From 30fd7198d063ea586fa4b333fd1a6c123f0d3e8b Mon Sep 17 00:00:00 2001 From: Niklas Dusenlund Date: Tue, 13 Aug 2024 15:06:21 +0200 Subject: [PATCH 1/3] Script for vendoring dependencies of rust std libs This commit creates a script `vendor.sh` that can be used to vendor our dependencies from crates.io. In addition to vendoring the direct dependencies of our rust crates, it also vendors the dependencies of the rust standard libraries. This script requires a minor update to the Dockerfile because we need to install the sources of the rust standard libraries and copy a file when we are the "root" user. --- .ci/run-container-ci | 2 +- Dockerfile | 9 +++++++++ src/rust/README.md | 5 +++++ src/rust/vendor.sh | 23 +++++++++++++++++++++++ 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100755 src/rust/vendor.sh diff --git a/.ci/run-container-ci b/.ci/run-container-ci index fb824f0a2..8fd5f0e62 100755 --- a/.ci/run-container-ci +++ b/.ci/run-container-ci @@ -25,7 +25,7 @@ set -e set -x -CONTAINER=shiftcrypto/firmware_v2:40 +CONTAINER=shiftcrypto/firmware_v2:41 if [ "$1" == "pull" ] ; then docker pull "$CONTAINER" diff --git a/Dockerfile b/Dockerfile index b091333c4..83c41a8ac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -129,9 +129,18 @@ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | CARGO_HOME=/opt/ RUN rustup target add thumbv7em-none-eabi RUN rustup component add rustfmt RUN rustup component add clippy +RUN rustup component add rust-src RUN CARGO_HOME=/opt/cargo cargo install cbindgen --version 0.26.0 --locked RUN CARGO_HOME=/opt/cargo cargo install bindgen-cli --version 0.69.4 --locked +# Until cargo vendor supports vendoring dependencies of the rust std libs we +# need a copy of this file next to the toml file. It also has to be world +# writable so that invocations of `cargo vendor` can update it. Below is the +# tracking issue for `cargo vendor` to support rust std libs. +# https://github.com/rust-lang/wg-cargo-std-aware/issues/23 +RUN cp "$(rustc --print=sysroot)/lib/rustlib/src/rust/Cargo.lock" "$(rustc --print=sysroot)/lib/rustlib/src/rust/library/test/" +RUN chmod 777 $(rustc --print=sysroot)/lib/rustlib/src/rust/library/test/Cargo.lock + COPY tools/prost-build-proto prost-build-proto RUN CARGO_HOME=/opt/cargo cargo install --path prost-build-proto --locked diff --git a/src/rust/README.md b/src/rust/README.md index b3f8b0a45..2bec49f9d 100644 --- a/src/rust/README.md +++ b/src/rust/README.md @@ -35,3 +35,8 @@ The bottom-most layer are bindings generated from C header files: We generate one header file `rust.h` and ever product specific function is `#ifdeffed` with `RUST_PRODUCT_*` macro. + +# Vendoring + +Run the vendoring script `vendor.sh` to vendor dependencies from crates.io. The +script will ensure that also rust std libs dependencies are vendored. diff --git a/src/rust/vendor.sh b/src/rust/vendor.sh new file mode 100755 index 000000000..f074a66b8 --- /dev/null +++ b/src/rust/vendor.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# +# Script for vendoring our dependencies, including the deps of core/alloc. +# +# This script must be called from the /src/rust directory. It will place the +# dependencies in a directory called "vendor" in the current working directory. +# +# For some reason Cargo needs to find the dependencies of all rust std libs. Since "test" depends +# on all the other ones, we take the toml-file from it. This means that we vendor libs that we +# don't use in the end (like hashbrown and getopts). +# +# The invocation below depends on the fact that rust std libs "Cargo.lock" has been manually copied +# to be next to the Cargo.toml file in the test directory. +# +# Copying the Cargo.lock file in the rust sysroot image requires root permissions. Therefore it is +# done in the Dockerfile in our setup. + +RUST_SYSROOT="$(rustc --print=sysroot)" + +RUSTC_BOOTSTRAP=1 cargo vendor \ + --manifest-path Cargo.toml \ + --sync "$RUST_SYSROOT/lib/rustlib/src/rust/library/test/Cargo.toml" \ + vendor From 858d6383d2e67473939238cf4e8a521f1c552e48 Mon Sep 17 00:00:00 2001 From: Niklas Dusenlund Date: Mon, 12 Aug 2024 16:04:39 +0200 Subject: [PATCH 2/3] Vendor stdlib dependencies --- .../allocator-api2/.cargo-checksum.json | 1 + src/rust/vendor/allocator-api2/CHANGELOG.md | 7 + src/rust/vendor/allocator-api2/Cargo.toml | 32 + src/rust/vendor/allocator-api2/LICENSE-APACHE | 176 + src/rust/vendor/allocator-api2/LICENSE-MIT | 23 + src/rust/vendor/allocator-api2/README.md | 53 + src/rust/vendor/allocator-api2/src/lib.rs | 19 + src/rust/vendor/allocator-api2/src/nightly.rs | 5 + .../allocator-api2/src/stable/alloc/global.rs | 187 + .../allocator-api2/src/stable/alloc/mod.rs | 416 + .../allocator-api2/src/stable/alloc/system.rs | 172 + .../vendor/allocator-api2/src/stable/boxed.rs | 2155 ++ .../allocator-api2/src/stable/macros.rs | 83 + .../vendor/allocator-api2/src/stable/mod.rs | 62 + .../allocator-api2/src/stable/raw_vec.rs | 642 + .../vendor/allocator-api2/src/stable/slice.rs | 171 + .../allocator-api2/src/stable/vec/drain.rs | 242 + .../src/stable/vec/into_iter.rs | 198 + .../allocator-api2/src/stable/vec/mod.rs | 3288 +++ .../src/stable/vec/partial_eq.rs | 43 + .../src/stable/vec/set_len_on_drop.rs | 31 + .../allocator-api2/src/stable/vec/splice.rs | 135 + .../compiler_builtins/.cargo-checksum.json | 1 + src/rust/vendor/compiler_builtins/Cargo.lock | 23 + src/rust/vendor/compiler_builtins/Cargo.toml | 74 + src/rust/vendor/compiler_builtins/LICENSE.txt | 91 + src/rust/vendor/compiler_builtins/README.md | 396 + src/rust/vendor/compiler_builtins/build.rs | 662 + .../compiler_builtins/examples/intrinsics.rs | 400 + .../compiler_builtins/libm/src/math/acos.rs | 112 + .../compiler_builtins/libm/src/math/acosf.rs | 79 + .../compiler_builtins/libm/src/math/acosh.rs | 27 + .../compiler_builtins/libm/src/math/acoshf.rs | 26 + .../compiler_builtins/libm/src/math/asin.rs | 119 + .../compiler_builtins/libm/src/math/asinf.rs | 72 + .../compiler_builtins/libm/src/math/asinh.rs | 40 + .../compiler_builtins/libm/src/math/asinhf.rs | 39 + .../compiler_builtins/libm/src/math/atan.rs | 184 + .../compiler_builtins/libm/src/math/atan2.rs | 126 + .../compiler_builtins/libm/src/math/atan2f.rs | 91 + .../compiler_builtins/libm/src/math/atanf.rs | 112 + .../compiler_builtins/libm/src/math/atanh.rs | 37 + .../compiler_builtins/libm/src/math/atanhf.rs | 37 + .../compiler_builtins/libm/src/math/cbrt.rs | 113 + .../compiler_builtins/libm/src/math/cbrtf.rs | 75 + .../compiler_builtins/libm/src/math/ceil.rs | 82 + .../compiler_builtins/libm/src/math/ceilf.rs | 65 + .../libm/src/math/copysign.rs | 12 + .../libm/src/math/copysignf.rs | 12 + .../compiler_builtins/libm/src/math/cos.rs | 73 + .../compiler_builtins/libm/src/math/cosf.rs | 83 + .../compiler_builtins/libm/src/math/cosh.rs | 38 + .../compiler_builtins/libm/src/math/coshf.rs | 38 + .../compiler_builtins/libm/src/math/erf.rs | 318 + .../compiler_builtins/libm/src/math/erff.rs | 230 + .../compiler_builtins/libm/src/math/exp.rs | 154 + .../compiler_builtins/libm/src/math/exp10.rs | 22 + .../compiler_builtins/libm/src/math/exp10f.rs | 22 + .../compiler_builtins/libm/src/math/exp2.rs | 394 + .../compiler_builtins/libm/src/math/exp2f.rs | 135 + .../compiler_builtins/libm/src/math/expf.rs | 101 + .../compiler_builtins/libm/src/math/expm1.rs | 144 + .../compiler_builtins/libm/src/math/expm1f.rs | 134 + .../compiler_builtins/libm/src/math/expo2.rs | 14 + .../compiler_builtins/libm/src/math/fabs.rs | 41 + .../compiler_builtins/libm/src/math/fabsf.rs | 41 + .../compiler_builtins/libm/src/math/fdim.rs | 22 + .../compiler_builtins/libm/src/math/fdimf.rs | 22 + .../compiler_builtins/libm/src/math/fenv.rs | 27 + .../compiler_builtins/libm/src/math/floor.rs | 81 + .../compiler_builtins/libm/src/math/floorf.rs | 66 + .../compiler_builtins/libm/src/math/fma.rs | 232 + .../compiler_builtins/libm/src/math/fmaf.rs | 117 + .../compiler_builtins/libm/src/math/fmax.rs | 12 + .../compiler_builtins/libm/src/math/fmaxf.rs | 12 + .../compiler_builtins/libm/src/math/fmin.rs | 12 + .../compiler_builtins/libm/src/math/fminf.rs | 12 + .../compiler_builtins/libm/src/math/fmod.rs | 80 + .../compiler_builtins/libm/src/math/fmodf.rs | 89 + .../compiler_builtins/libm/src/math/frexp.rs | 20 + .../compiler_builtins/libm/src/math/frexpf.rs | 21 + .../compiler_builtins/libm/src/math/hypot.rs | 74 + .../compiler_builtins/libm/src/math/hypotf.rs | 43 + .../compiler_builtins/libm/src/math/ilogb.rs | 32 + .../compiler_builtins/libm/src/math/ilogbf.rs | 32 + .../compiler_builtins/libm/src/math/j0.rs | 422 + .../compiler_builtins/libm/src/math/j0f.rs | 359 + .../compiler_builtins/libm/src/math/j1.rs | 414 + .../compiler_builtins/libm/src/math/j1f.rs | 380 + .../compiler_builtins/libm/src/math/jn.rs | 343 + .../compiler_builtins/libm/src/math/jnf.rs | 259 + .../compiler_builtins/libm/src/math/k_cos.rs | 62 + .../compiler_builtins/libm/src/math/k_cosf.rs | 29 + .../libm/src/math/k_expo2.rs | 14 + .../libm/src/math/k_expo2f.rs | 14 + .../compiler_builtins/libm/src/math/k_sin.rs | 57 + .../compiler_builtins/libm/src/math/k_sinf.rs | 30 + .../compiler_builtins/libm/src/math/k_tan.rs | 105 + .../compiler_builtins/libm/src/math/k_tanf.rs | 46 + .../compiler_builtins/libm/src/math/ldexp.rs | 4 + .../compiler_builtins/libm/src/math/ldexpf.rs | 4 + .../compiler_builtins/libm/src/math/lgamma.rs | 6 + .../libm/src/math/lgamma_r.rs | 320 + .../libm/src/math/lgammaf.rs | 6 + .../libm/src/math/lgammaf_r.rs | 255 + .../compiler_builtins/libm/src/math/log.rs | 117 + .../compiler_builtins/libm/src/math/log10.rs | 117 + .../compiler_builtins/libm/src/math/log10f.rs | 91 + .../compiler_builtins/libm/src/math/log1p.rs | 143 + .../compiler_builtins/libm/src/math/log1pf.rs | 98 + .../compiler_builtins/libm/src/math/log2.rs | 106 + .../compiler_builtins/libm/src/math/log2f.rs | 87 + .../compiler_builtins/libm/src/math/logf.rs | 65 + .../compiler_builtins/libm/src/math/mod.rs | 370 + .../compiler_builtins/libm/src/math/modf.rs | 34 + .../compiler_builtins/libm/src/math/modff.rs | 33 + .../libm/src/math/nextafter.rs | 37 + .../libm/src/math/nextafterf.rs | 37 + .../compiler_builtins/libm/src/math/pow.rs | 637 + .../compiler_builtins/libm/src/math/powf.rs | 342 + .../libm/src/math/rem_pio2.rs | 233 + .../libm/src/math/rem_pio2_large.rs | 470 + .../libm/src/math/rem_pio2f.rs | 67 + .../libm/src/math/remainder.rs | 5 + .../libm/src/math/remainderf.rs | 5 + .../compiler_builtins/libm/src/math/remquo.rs | 110 + .../libm/src/math/remquof.rs | 97 + .../compiler_builtins/libm/src/math/rint.rs | 58 + .../compiler_builtins/libm/src/math/rintf.rs | 58 + .../compiler_builtins/libm/src/math/round.rs | 28 + .../compiler_builtins/libm/src/math/roundf.rs | 30 + .../compiler_builtins/libm/src/math/scalbn.rs | 33 + .../libm/src/math/scalbnf.rs | 29 + .../compiler_builtins/libm/src/math/sin.rs | 88 + .../compiler_builtins/libm/src/math/sincos.rs | 134 + .../libm/src/math/sincosf.rs | 185 + .../compiler_builtins/libm/src/math/sinf.rs | 93 + .../compiler_builtins/libm/src/math/sinh.rs | 49 + .../compiler_builtins/libm/src/math/sinhf.rs | 30 + .../compiler_builtins/libm/src/math/sqrt.rs | 280 + .../compiler_builtins/libm/src/math/sqrtf.rs | 170 + .../compiler_builtins/libm/src/math/tan.rs | 70 + .../compiler_builtins/libm/src/math/tanf.rs | 78 + .../compiler_builtins/libm/src/math/tanh.rs | 53 + .../compiler_builtins/libm/src/math/tanhf.rs | 39 + .../compiler_builtins/libm/src/math/tgamma.rs | 208 + .../libm/src/math/tgammaf.rs | 6 + .../compiler_builtins/libm/src/math/trunc.rs | 40 + .../compiler_builtins/libm/src/math/truncf.rs | 42 + .../vendor/compiler_builtins/src/aarch64.rs | 22 + .../compiler_builtins/src/aarch64_linux.rs | 277 + src/rust/vendor/compiler_builtins/src/arm.rs | 187 + .../vendor/compiler_builtins/src/arm_linux.rs | 250 + .../vendor/compiler_builtins/src/float/add.rs | 213 + .../vendor/compiler_builtins/src/float/cmp.rs | 267 + .../compiler_builtins/src/float/conv.rs | 347 + .../vendor/compiler_builtins/src/float/div.rs | 926 + .../compiler_builtins/src/float/extend.rs | 84 + .../vendor/compiler_builtins/src/float/mod.rs | 175 + .../vendor/compiler_builtins/src/float/mul.rs | 211 + .../vendor/compiler_builtins/src/float/pow.rs | 38 + .../vendor/compiler_builtins/src/float/sub.rs | 27 + .../compiler_builtins/src/float/trunc.rs | 126 + .../vendor/compiler_builtins/src/hexagon.rs | 55 + .../compiler_builtins/src/hexagon/dfaddsub.s | 321 + .../compiler_builtins/src/hexagon/dfdiv.s | 372 + .../compiler_builtins/src/hexagon/dffma.s | 536 + .../compiler_builtins/src/hexagon/dfminmax.s | 51 + .../compiler_builtins/src/hexagon/dfmul.s | 309 + .../compiler_builtins/src/hexagon/dfsqrt.s | 277 + .../compiler_builtins/src/hexagon/divdi3.s | 64 + .../compiler_builtins/src/hexagon/divsi3.s | 53 + .../src/hexagon/fastmath2_dlib_asm.s | 266 + .../src/hexagon/fastmath2_ldlib_asm.s | 187 + .../src/hexagon/func_macro.s | 12 + .../src/hexagon/memcpy_forward_vp4cp4n2.s | 91 + .../src/hexagon/memcpy_likely_aligned.s | 42 + .../compiler_builtins/src/hexagon/moddi3.s | 63 + .../compiler_builtins/src/hexagon/modsi3.s | 44 + .../compiler_builtins/src/hexagon/sfdiv_opt.s | 42 + .../src/hexagon/sfsqrt_opt.s | 49 + .../compiler_builtins/src/hexagon/udivdi3.s | 50 + .../src/hexagon/udivmoddi4.s | 50 + .../src/hexagon/udivmodsi4.s | 39 + .../compiler_builtins/src/hexagon/udivsi3.s | 36 + .../compiler_builtins/src/hexagon/umoddi3.s | 53 + .../compiler_builtins/src/hexagon/umodsi3.s | 34 + .../compiler_builtins/src/int/addsub.rs | 96 + .../src/int/leading_zeros.rs | 149 + .../vendor/compiler_builtins/src/int/mod.rs | 390 + .../vendor/compiler_builtins/src/int/mul.rs | 138 + .../vendor/compiler_builtins/src/int/sdiv.rs | 169 + .../vendor/compiler_builtins/src/int/shift.rs | 125 + .../src/int/specialized_div_rem/asymmetric.rs | 69 + .../int/specialized_div_rem/binary_long.rs | 552 + .../src/int/specialized_div_rem/delegate.rs | 319 + .../src/int/specialized_div_rem/mod.rs | 311 + .../src/int/specialized_div_rem/norm_shift.rs | 106 + .../src/int/specialized_div_rem/trifecta.rs | 386 + .../vendor/compiler_builtins/src/int/udiv.rs | 106 + .../vendor/compiler_builtins/src/lib.miri.rs | 5 + src/rust/vendor/compiler_builtins/src/lib.rs | 87 + .../vendor/compiler_builtins/src/macros.rs | 555 + src/rust/vendor/compiler_builtins/src/math.rs | 108 + .../vendor/compiler_builtins/src/mem/impls.rs | 291 + .../vendor/compiler_builtins/src/mem/mod.rs | 196 + .../compiler_builtins/src/mem/x86_64.rs | 314 + .../compiler_builtins/src/probestack.rs | 350 + .../vendor/compiler_builtins/src/riscv.rs | 50 + src/rust/vendor/compiler_builtins/src/x86.rs | 55 + .../vendor/compiler_builtins/src/x86_64.rs | 47 + src/rust/vendor/dlmalloc/.cargo-checksum.json | 1 + src/rust/vendor/dlmalloc/Cargo.toml | 73 + .../{lazy_static => dlmalloc}/LICENSE-APACHE | 0 .../{lazy_static => dlmalloc}/LICENSE-MIT | 2 +- src/rust/vendor/dlmalloc/README.md | 40 + src/rust/vendor/dlmalloc/build.rs | 4 + src/rust/vendor/dlmalloc/src/dlmalloc.c | 6280 +++++ src/rust/vendor/dlmalloc/src/dlmalloc.rs | 1888 ++ src/rust/vendor/dlmalloc/src/dummy.rs | 42 + src/rust/vendor/dlmalloc/src/global.rs | 61 + src/rust/vendor/dlmalloc/src/lib.rs | 209 + src/rust/vendor/dlmalloc/src/unix.rs | 131 + src/rust/vendor/dlmalloc/src/wasm.rs | 75 + src/rust/vendor/dlmalloc/src/windows.rs | 88 + src/rust/vendor/dlmalloc/src/xous.rs | 117 + src/rust/vendor/dlmalloc/tests/global.rs | 31 + src/rust/vendor/dlmalloc/tests/smoke.rs | 36 + .../fortanix-sgx-abi/.cargo-checksum.json | 1 + src/rust/vendor/fortanix-sgx-abi/Cargo.toml | 55 + src/rust/vendor/fortanix-sgx-abi/src/lib.rs | 903 + src/rust/vendor/getopts/.cargo-checksum.json | 1 + src/rust/vendor/getopts/Cargo.toml | 40 + src/rust/vendor/getopts/LICENSE-APACHE | 201 + src/rust/vendor/getopts/LICENSE-MIT | 25 + src/rust/vendor/getopts/README.md | 15 + src/rust/vendor/getopts/src/lib.rs | 1046 + src/rust/vendor/getopts/src/tests/mod.rs | 1254 + src/rust/vendor/getopts/tests/smoke.rs | 8 + src/rust/vendor/gimli/.cargo-checksum.json | 1 + src/rust/vendor/gimli/CHANGELOG.md | 1022 + src/rust/vendor/gimli/Cargo.toml | 109 + src/rust/vendor/gimli/LICENSE-APACHE | 201 + src/rust/vendor/gimli/LICENSE-MIT | 25 + src/rust/vendor/gimli/README.md | 81 + src/rust/vendor/gimli/src/arch.rs | 839 + src/rust/vendor/gimli/src/common.rs | 391 + src/rust/vendor/gimli/src/constants.rs | 1435 ++ src/rust/vendor/gimli/src/endianity.rs | 256 + src/rust/vendor/gimli/src/leb128.rs | 612 + src/rust/vendor/gimli/src/lib.rs | 79 + src/rust/vendor/gimli/src/read/abbrev.rs | 1102 + src/rust/vendor/gimli/src/read/addr.rs | 128 + src/rust/vendor/gimli/src/read/aranges.rs | 660 + src/rust/vendor/gimli/src/read/cfi.rs | 7823 ++++++ src/rust/vendor/gimli/src/read/dwarf.rs | 1210 + .../vendor/gimli/src/read/endian_reader.rs | 639 + .../vendor/gimli/src/read/endian_slice.rs | 360 + src/rust/vendor/gimli/src/read/index.rs | 535 + src/rust/vendor/gimli/src/read/line.rs | 3130 +++ src/rust/vendor/gimli/src/read/lists.rs | 68 + src/rust/vendor/gimli/src/read/loclists.rs | 1627 ++ src/rust/vendor/gimli/src/read/lookup.rs | 202 + src/rust/vendor/gimli/src/read/mod.rs | 827 + src/rust/vendor/gimli/src/read/op.rs | 4140 +++ src/rust/vendor/gimli/src/read/pubnames.rs | 141 + src/rust/vendor/gimli/src/read/pubtypes.rs | 141 + src/rust/vendor/gimli/src/read/reader.rs | 502 + src/rust/vendor/gimli/src/read/rnglists.rs | 1458 ++ src/rust/vendor/gimli/src/read/str.rs | 321 + src/rust/vendor/gimli/src/read/unit.rs | 6139 +++++ src/rust/vendor/gimli/src/read/util.rs | 283 + src/rust/vendor/gimli/src/read/value.rs | 1621 ++ src/rust/vendor/gimli/src/test_util.rs | 53 + src/rust/vendor/gimli/src/write/abbrev.rs | 188 + src/rust/vendor/gimli/src/write/cfi.rs | 1050 + src/rust/vendor/gimli/src/write/dwarf.rs | 138 + src/rust/vendor/gimli/src/write/endian_vec.rs | 117 + src/rust/vendor/gimli/src/write/line.rs | 1957 ++ src/rust/vendor/gimli/src/write/loc.rs | 550 + src/rust/vendor/gimli/src/write/mod.rs | 425 + src/rust/vendor/gimli/src/write/op.rs | 1618 ++ src/rust/vendor/gimli/src/write/range.rs | 416 + src/rust/vendor/gimli/src/write/section.rs | 172 + src/rust/vendor/gimli/src/write/str.rs | 172 + src/rust/vendor/gimli/src/write/unit.rs | 3152 +++ src/rust/vendor/gimli/src/write/writer.rs | 494 + .../vendor/hashbrown/.cargo-checksum.json | 1 + src/rust/vendor/hashbrown/CHANGELOG.md | 532 + src/rust/vendor/hashbrown/Cargo.toml | 137 + src/rust/vendor/hashbrown/LICENSE-APACHE | 201 + src/rust/vendor/hashbrown/LICENSE-MIT | 25 + src/rust/vendor/hashbrown/README.md | 125 + src/rust/vendor/hashbrown/benches/bench.rs | 331 + .../benches/insert_unique_unchecked.rs | 32 + src/rust/vendor/hashbrown/clippy.toml | 1 + .../hashbrown/src/external_trait_impls/mod.rs | 6 + .../src/external_trait_impls/rayon/helpers.rs | 27 + .../src/external_trait_impls/rayon/map.rs | 721 + .../src/external_trait_impls/rayon/mod.rs | 5 + .../src/external_trait_impls/rayon/raw.rs | 230 + .../src/external_trait_impls/rayon/set.rs | 659 + .../src/external_trait_impls/rayon/table.rs | 252 + .../src/external_trait_impls/rkyv/hash_map.rs | 125 + .../src/external_trait_impls/rkyv/hash_set.rs | 123 + .../src/external_trait_impls/rkyv/mod.rs | 2 + .../src/external_trait_impls/serde.rs | 220 + src/rust/vendor/hashbrown/src/lib.rs | 188 + src/rust/vendor/hashbrown/src/macros.rs | 70 + src/rust/vendor/hashbrown/src/map.rs | 8960 +++++++ src/rust/vendor/hashbrown/src/raw/alloc.rs | 86 + src/rust/vendor/hashbrown/src/raw/bitmask.rs | 133 + src/rust/vendor/hashbrown/src/raw/generic.rs | 157 + src/rust/vendor/hashbrown/src/raw/mod.rs | 4817 ++++ src/rust/vendor/hashbrown/src/raw/neon.rs | 124 + src/rust/vendor/hashbrown/src/raw/sse2.rs | 149 + src/rust/vendor/hashbrown/src/rustc_entry.rs | 630 + src/rust/vendor/hashbrown/src/scopeguard.rs | 72 + src/rust/vendor/hashbrown/src/set.rs | 2970 +++ src/rust/vendor/hashbrown/src/table.rs | 2070 ++ .../hashbrown/tests/equivalent_trait.rs | 53 + src/rust/vendor/hashbrown/tests/hasher.rs | 65 + src/rust/vendor/hashbrown/tests/raw.rs | 11 + src/rust/vendor/hashbrown/tests/rayon.rs | 535 + src/rust/vendor/hashbrown/tests/serde.rs | 65 + src/rust/vendor/hashbrown/tests/set.rs | 34 + .../vendor/hermit-abi/.cargo-checksum.json | 1 + src/rust/vendor/hermit-abi/Cargo.toml | 47 + src/rust/vendor/hermit-abi/LICENSE-APACHE | 201 + src/rust/vendor/hermit-abi/LICENSE-MIT | 23 + src/rust/vendor/hermit-abi/README.md | 22 + src/rust/vendor/hermit-abi/src/errno.rs | 532 + src/rust/vendor/hermit-abi/src/lib.rs | 757 + src/rust/vendor/hermit-abi/src/tcplistener.rs | 13 + src/rust/vendor/hermit-abi/src/tcpstream.rs | 110 + .../vendor/lazy_static/.cargo-checksum.json | 1 - src/rust/vendor/lazy_static/Cargo.toml | 46 - src/rust/vendor/lazy_static/README.md | 79 - src/rust/vendor/lazy_static/src/core_lazy.rs | 31 - .../vendor/lazy_static/src/inline_lazy.rs | 57 - src/rust/vendor/lazy_static/src/lib.rs | 215 - src/rust/vendor/lazy_static/tests/no_std.rs | 20 - src/rust/vendor/lazy_static/tests/test.rs | 164 - .../vendor/libc-0.2.146/.cargo-checksum.json | 1 + src/rust/vendor/libc-0.2.146/CONTRIBUTING.md | 93 + src/rust/vendor/libc-0.2.146/Cargo.toml | 64 + src/rust/vendor/libc-0.2.146/LICENSE-APACHE | 176 + src/rust/vendor/libc-0.2.146/LICENSE-MIT | 25 + src/rust/vendor/libc-0.2.146/README.md | 110 + src/rust/vendor/libc-0.2.146/build.rs | 246 + src/rust/vendor/libc-0.2.146/rustfmt.toml | 1 + .../libc-0.2.146/src/fixed_width_ints.rs | 99 + .../libc-0.2.146/src/fuchsia/aarch64.rs | 67 + .../vendor/libc-0.2.146/src/fuchsia/align.rs | 142 + .../vendor/libc-0.2.146/src/fuchsia/mod.rs | 4300 ++++ .../libc-0.2.146/src/fuchsia/no_align.rs | 129 + .../libc-0.2.146/src/fuchsia/riscv64.rs | 44 + .../vendor/libc-0.2.146/src/fuchsia/x86_64.rs | 152 + .../src}/hermit/aarch64.rs | 0 .../vendor/libc-0.2.146/src/hermit/mod.rs | 64 + .../src}/hermit/x86_64.rs | 0 src/rust/vendor/libc-0.2.146/src/lib.rs | 163 + src/rust/vendor/libc-0.2.146/src/macros.rs | 343 + src/rust/vendor/libc-0.2.146/src/psp.rs | 4174 +++ src/rust/vendor/libc-0.2.146/src/sgx.rs | 47 + .../vendor/libc-0.2.146/src/solid/aarch64.rs | 4 + src/rust/vendor/libc-0.2.146/src/solid/arm.rs | 4 + src/rust/vendor/libc-0.2.146/src/solid/mod.rs | 904 + src/rust/vendor/libc-0.2.146/src/switch.rs | 49 + .../vendor/libc-0.2.146/src/unix/aix/mod.rs | 3355 +++ .../libc-0.2.146/src/unix/aix/powerpc64.rs | 644 + .../vendor/libc-0.2.146/src/unix/align.rs | 6 + .../src/unix/bsd/apple/b32/align.rs | 7 + .../src/unix/bsd/apple/b32/mod.rs | 119 + .../src/unix/bsd/apple/b64/aarch64/align.rs | 56 + .../src/unix/bsd/apple/b64/aarch64/mod.rs | 14 + .../src/unix/bsd/apple/b64/align.rs | 7 + .../src/unix/bsd/apple/b64/mod.rs | 124 + .../src/unix/bsd/apple/b64/x86_64/align.rs | 7 + .../src/unix/bsd/apple/b64/x86_64/mod.rs | 180 + .../src/unix/bsd/apple/long_array.rs | 8 + .../libc-0.2.146/src/unix/bsd/apple/mod.rs | 6125 +++++ .../unix/bsd/freebsdlike/dragonfly/errno.rs | 13 + .../src/unix/bsd/freebsdlike/dragonfly/mod.rs | 1726 ++ .../unix/bsd/freebsdlike/freebsd/aarch64.rs | 146 + .../src/unix/bsd/freebsdlike/freebsd/arm.rs | 50 + .../bsd/freebsdlike/freebsd/freebsd11/b64.rs | 32 + .../bsd/freebsdlike/freebsd/freebsd11/mod.rs | 488 + .../bsd/freebsdlike/freebsd/freebsd12/b64.rs | 34 + .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 505 + .../freebsdlike/freebsd/freebsd12/x86_64.rs | 5 + .../bsd/freebsdlike/freebsd/freebsd13/b64.rs | 34 + .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 546 + .../freebsdlike/freebsd/freebsd13/x86_64.rs | 5 + .../bsd/freebsdlike/freebsd/freebsd14/b64.rs | 34 + .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 546 + .../freebsdlike/freebsd/freebsd14/x86_64.rs | 12 + .../src/unix/bsd/freebsdlike/freebsd/mod.rs | 5692 +++++ .../unix/bsd/freebsdlike/freebsd/powerpc.rs | 47 + .../unix/bsd/freebsdlike/freebsd/powerpc64.rs | 47 + .../unix/bsd/freebsdlike/freebsd/riscv64.rs | 154 + .../src/unix/bsd/freebsdlike/freebsd/x86.rs | 201 + .../bsd/freebsdlike/freebsd/x86_64/align.rs | 197 + .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 334 + .../src/unix/bsd/freebsdlike/mod.rs | 1896 ++ .../vendor/libc-0.2.146/src/unix/bsd/mod.rs | 917 + .../src/unix/bsd/netbsdlike/mod.rs | 762 + .../src/unix/bsd/netbsdlike/netbsd/aarch64.rs | 103 + .../src/unix/bsd/netbsdlike/netbsd/arm.rs | 22 + .../src/unix/bsd/netbsdlike/netbsd/mod.rs | 3178 +++ .../src/unix/bsd/netbsdlike/netbsd/powerpc.rs | 21 + .../src/unix/bsd/netbsdlike/netbsd/sparc64.rs | 8 + .../src/unix/bsd/netbsdlike/netbsd/x86.rs | 15 + .../src/unix/bsd/netbsdlike/netbsd/x86_64.rs | 40 + .../unix/bsd/netbsdlike/openbsd/aarch64.rs | 30 + .../src/unix/bsd/netbsdlike/openbsd/arm.rs | 16 + .../src/unix/bsd/netbsdlike/openbsd/mips64.rs | 8 + .../src/unix/bsd/netbsdlike/openbsd/mod.rs | 1988 ++ .../unix/bsd/netbsdlike/openbsd/powerpc.rs | 16 + .../unix/bsd/netbsdlike/openbsd/powerpc64.rs | 16 + .../unix/bsd/netbsdlike/openbsd/riscv64.rs | 16 + .../unix/bsd/netbsdlike/openbsd/sparc64.rs | 8 + .../src/unix/bsd/netbsdlike/openbsd/x86.rs | 16 + .../src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 130 + .../vendor/libc-0.2.146/src/unix/haiku/b32.rs | 20 + .../vendor/libc-0.2.146/src/unix/haiku/b64.rs | 20 + .../vendor/libc-0.2.146/src/unix/haiku/mod.rs | 2094 ++ .../libc-0.2.146/src/unix/haiku/native.rs | 1366 + .../libc-0.2.146/src/unix/haiku/x86_64.rs | 264 + .../libc-0.2.146/src/unix/hermit/aarch64.rs | 2 + .../src/unix/hermit/mod.rs | 0 .../libc-0.2.146/src/unix/hermit/x86_64.rs | 2 + .../src/unix/linux_like/android/b32/arm.rs | 550 + .../src/unix/linux_like/android/b32/mod.rs | 244 + .../unix/linux_like/android/b32/x86/align.rs | 7 + .../unix/linux_like/android/b32/x86/mod.rs | 622 + .../linux_like/android/b64/aarch64/align.rs | 29 + .../linux_like/android/b64/aarch64/int128.rs | 7 + .../linux_like/android/b64/aarch64/mod.rs | 427 + .../src/unix/linux_like/android/b64/mod.rs | 355 + .../linux_like/android/b64/riscv64/align.rs | 7 + .../linux_like/android/b64/riscv64/mod.rs | 353 + .../linux_like/android/b64/x86_64/align.rs | 7 + .../unix/linux_like/android/b64/x86_64/mod.rs | 802 + .../src/unix/linux_like/android/mod.rs | 3659 +++ .../src/unix/linux_like/emscripten/align.rs | 74 + .../src/unix/linux_like/emscripten/mod.rs | 1898 ++ .../unix/linux_like/emscripten/no_align.rs | 63 + .../src/unix/linux_like/linux/align.rs | 192 + .../unix/linux_like/linux/arch/generic/mod.rs | 292 + .../unix/linux_like/linux/arch/mips/mod.rs | 288 + .../src/unix/linux_like/linux/arch/mod.rs | 15 + .../unix/linux_like/linux/arch/powerpc/mod.rs | 243 + .../unix/linux_like/linux/arch/sparc/mod.rs | 228 + .../src/unix/linux_like/linux/gnu/align.rs | 13 + .../linux_like/linux/gnu/b32/arm/align.rs | 53 + .../unix/linux_like/linux/gnu/b32/arm/mod.rs | 874 + .../linux_like/linux/gnu/b32/m68k/align.rs | 7 + .../unix/linux_like/linux/gnu/b32/m68k/mod.rs | 849 + .../linux_like/linux/gnu/b32/mips/align.rs | 7 + .../unix/linux_like/linux/gnu/b32/mips/mod.rs | 818 + .../src/unix/linux_like/linux/gnu/b32/mod.rs | 358 + .../unix/linux_like/linux/gnu/b32/powerpc.rs | 824 + .../linux_like/linux/gnu/b32/riscv32/align.rs | 44 + .../linux_like/linux/gnu/b32/riscv32/mod.rs | 812 + .../linux_like/linux/gnu/b32/sparc/align.rs | 7 + .../linux_like/linux/gnu/b32/sparc/mod.rs | 856 + .../linux_like/linux/gnu/b32/x86/align.rs | 7 + .../unix/linux_like/linux/gnu/b32/x86/mod.rs | 1109 + .../linux_like/linux/gnu/b64/aarch64/align.rs | 58 + .../linux_like/linux/gnu/b64/aarch64/ilp32.rs | 64 + .../linux/gnu/b64/aarch64/int128.rs | 7 + .../linux_like/linux/gnu/b64/aarch64/lp64.rs | 73 + .../linux_like/linux/gnu/b64/aarch64/mod.rs | 938 + .../linux/gnu/b64/loongarch64/align.rs | 40 + .../linux/gnu/b64/loongarch64/mod.rs | 885 + .../linux_like/linux/gnu/b64/mips64/align.rs | 7 + .../linux_like/linux/gnu/b64/mips64/mod.rs | 933 + .../src/unix/linux_like/linux/gnu/b64/mod.rs | 126 + .../linux/gnu/b64/powerpc64/align.rs | 7 + .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 978 + .../linux_like/linux/gnu/b64/riscv64/align.rs | 44 + .../linux_like/linux/gnu/b64/riscv64/mod.rs | 851 + .../unix/linux_like/linux/gnu/b64/s390x.rs | 963 + .../linux_like/linux/gnu/b64/sparc64/align.rs | 7 + .../linux_like/linux/gnu/b64/sparc64/mod.rs | 930 + .../linux_like/linux/gnu/b64/x86_64/align.rs | 24 + .../linux_like/linux/gnu/b64/x86_64/mod.rs | 834 + .../linux/gnu/b64/x86_64/not_x32.rs | 451 + .../linux_like/linux/gnu/b64/x86_64/x32.rs | 404 + .../src/unix/linux_like/linux/gnu/mod.rs | 1410 ++ .../src/unix/linux_like/linux/gnu/no_align.rs | 10 + .../src/unix/linux_like/linux/mod.rs | 4921 ++++ .../linux_like/linux/musl/b32/arm/align.rs | 7 + .../unix/linux_like/linux/musl/b32/arm/mod.rs | 858 + .../unix/linux_like/linux/musl/b32/hexagon.rs | 673 + .../linux_like/linux/musl/b32/mips/align.rs | 7 + .../linux_like/linux/musl/b32/mips/mod.rs | 793 + .../src/unix/linux_like/linux/musl/b32/mod.rs | 65 + .../unix/linux_like/linux/musl/b32/powerpc.rs | 809 + .../linux/musl/b32/riscv32/align.rs | 7 + .../linux_like/linux/musl/b32/riscv32/mod.rs | 794 + .../linux_like/linux/musl/b32/x86/align.rs | 7 + .../unix/linux_like/linux/musl/b32/x86/mod.rs | 899 + .../linux/musl/b64/aarch64/align.rs | 42 + .../linux/musl/b64/aarch64/int128.rs | 7 + .../linux_like/linux/musl/b64/aarch64/mod.rs | 660 + .../unix/linux_like/linux/musl/b64/mips64.rs | 690 + .../src/unix/linux_like/linux/musl/b64/mod.rs | 167 + .../linux_like/linux/musl/b64/powerpc64.rs | 697 + .../linux/musl/b64/riscv64/align.rs | 44 + .../linux_like/linux/musl/b64/riscv64/mod.rs | 726 + .../unix/linux_like/linux/musl/b64/s390x.rs | 726 + .../linux_like/linux/musl/b64/x86_64/align.rs | 25 + .../linux_like/linux/musl/b64/x86_64/mod.rs | 917 + .../src/unix/linux_like/linux/musl/lfs64.rs | 241 + .../src/unix/linux_like/linux/musl/mod.rs | 806 + .../src/unix/linux_like/linux/no_align.rs | 130 + .../unix/linux_like/linux/non_exhaustive.rs | 9 + .../src/unix/linux_like/linux/uclibc/align.rs | 28 + .../unix/linux_like/linux/uclibc/arm/align.rs | 13 + .../unix/linux_like/linux/uclibc/arm/mod.rs | 925 + .../linux_like/linux/uclibc/arm/no_align.rs | 10 + .../linux/uclibc/mips/mips32/align.rs | 13 + .../linux/uclibc/mips/mips32/mod.rs | 692 + .../linux/uclibc/mips/mips32/no_align.rs | 10 + .../linux/uclibc/mips/mips64/align.rs | 10 + .../linux/uclibc/mips/mips64/mod.rs | 207 + .../linux/uclibc/mips/mips64/no_align.rs | 7 + .../unix/linux_like/linux/uclibc/mips/mod.rs | 310 + .../src/unix/linux_like/linux/uclibc/mod.rs | 392 + .../unix/linux_like/linux/uclibc/no_align.rs | 53 + .../linux_like/linux/uclibc/x86_64/l4re.rs | 53 + .../linux_like/linux/uclibc/x86_64/mod.rs | 345 + .../linux_like/linux/uclibc/x86_64/other.rs | 5 + .../libc-0.2.146/src/unix/linux_like/mod.rs | 1901 ++ src/rust/vendor/libc-0.2.146/src/unix/mod.rs | 1625 ++ .../src/unix/newlib/aarch64/mod.rs | 54 + .../libc-0.2.146/src/unix/newlib/align.rs | 61 + .../libc-0.2.146/src/unix/newlib/arm/mod.rs | 56 + .../src/unix/newlib/espidf/mod.rs | 110 + .../libc-0.2.146/src/unix/newlib/generic.rs | 27 + .../src/unix/newlib/horizon/mod.rs | 268 + .../libc-0.2.146/src/unix/newlib/mod.rs | 789 + .../libc-0.2.146/src/unix/newlib/no_align.rs | 51 + .../src/unix/newlib/powerpc/mod.rs | 16 + .../libc-0.2.146/src/unix/newlib/vita/mod.rs | 201 + .../vendor/libc-0.2.146/src/unix/no_align.rs | 6 + .../libc-0.2.146/src/unix/nto/aarch64.rs | 36 + .../vendor/libc-0.2.146/src/unix/nto/mod.rs | 3285 +++ .../libc-0.2.146/src/unix/nto/neutrino.rs | 1288 + .../libc-0.2.146/src/unix/nto/x86_64.rs | 132 + .../vendor/libc-0.2.146/src/unix/redox/mod.rs | 1335 + .../libc-0.2.146/src/unix/solarish/compat.rs | 220 + .../libc-0.2.146/src/unix/solarish/illumos.rs | 88 + .../libc-0.2.146/src/unix/solarish/mod.rs | 3302 +++ .../libc-0.2.146/src/unix/solarish/solaris.rs | 101 + .../libc-0.2.146/src/unix/solarish/x86.rs | 29 + .../libc-0.2.146/src/unix/solarish/x86_64.rs | 190 + .../src/unix/solarish/x86_common.rs | 65 + .../libc-0.2.146/src/vxworks/aarch64.rs | 4 + .../vendor/libc-0.2.146/src/vxworks/arm.rs | 4 + .../vendor/libc-0.2.146/src/vxworks/mod.rs | 1930 ++ .../libc-0.2.146/src/vxworks/powerpc.rs | 4 + .../libc-0.2.146/src/vxworks/powerpc64.rs | 4 + .../vendor/libc-0.2.146/src/vxworks/x86.rs | 4 + .../vendor/libc-0.2.146/src/vxworks/x86_64.rs | 4 + src/rust/vendor/libc-0.2.146/src/wasi.rs | 830 + .../libc-0.2.146/src/windows/gnu/align.rs | 19 + .../libc-0.2.146/src/windows/gnu/mod.rs | 23 + .../vendor/libc-0.2.146/src/windows/mod.rs | 600 + .../libc-0.2.146/src/windows/msvc/mod.rs | 20 + src/rust/vendor/libc-0.2.146/src/xous.rs | 49 + .../vendor/libc-0.2.146/tests/const_fn.rs | 5 + src/rust/vendor/libc/.cargo-checksum.json | 2 +- src/rust/vendor/libc/CONTRIBUTING.md | 9 +- src/rust/vendor/libc/Cargo.toml | 125 +- src/rust/vendor/libc/README.md | 12 +- src/rust/vendor/libc/build.rs | 68 +- src/rust/vendor/libc/src/fuchsia/mod.rs | 95 +- src/rust/vendor/libc/src/hermit/mod.rs | 5 +- src/rust/vendor/libc/src/lib.rs | 10 +- src/rust/vendor/libc/src/macros.rs | 6 + src/rust/vendor/libc/src/psp.rs | 3 + src/rust/vendor/libc/src/teeos/mod.rs | 1385 + src/rust/vendor/libc/src/unix/aix/mod.rs | 17 +- .../src/unix/bsd/apple/b64/aarch64/align.rs | 1 - .../vendor/libc/src/unix/bsd/apple/mod.rs | 455 +- .../src/unix/bsd/freebsdlike/dragonfly/mod.rs | 6 + .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 2 +- .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 2 +- .../bsd/freebsdlike/freebsd/freebsd15/b64.rs | 34 + .../bsd/freebsdlike/freebsd/freebsd15/mod.rs | 546 + .../freebsdlike/freebsd/freebsd15/x86_64.rs | 12 + .../src/unix/bsd/freebsdlike/freebsd/mod.rs | 125 +- .../libc/src/unix/bsd/freebsdlike/mod.rs | 36 +- src/rust/vendor/libc/src/unix/bsd/mod.rs | 18 +- .../libc/src/unix/bsd/netbsdlike/mod.rs | 101 + .../src/unix/bsd/netbsdlike/netbsd/aarch64.rs | 59 + .../src/unix/bsd/netbsdlike/netbsd/arm.rs | 59 + .../src/unix/bsd/netbsdlike/netbsd/mips.rs | 21 + .../src/unix/bsd/netbsdlike/netbsd/mod.rs | 220 +- .../src/unix/bsd/netbsdlike/netbsd/riscv64.rs | 21 + .../src/unix/bsd/netbsdlike/netbsd/x86_64.rs | 27 + .../src/unix/bsd/netbsdlike/openbsd/mod.rs | 233 +- .../unix/bsd/netbsdlike/openbsd/riscv64.rs | 19 + src/rust/vendor/libc/src/unix/haiku/mod.rs | 101 +- src/rust/vendor/libc/src/unix/haiku/native.rs | 122 + src/rust/vendor/libc/src/unix/hurd/align.rs | 1 + src/rust/vendor/libc/src/unix/hurd/b32.rs | 93 + src/rust/vendor/libc/src/unix/hurd/b64.rs | 95 + src/rust/vendor/libc/src/unix/hurd/mod.rs | 4687 ++++ .../vendor/libc/src/unix/hurd/no_align.rs | 1 + .../linux_like/android/b64/aarch64/mod.rs | 5 + .../libc/src/unix/linux_like/android/mod.rs | 809 +- .../src/unix/linux_like/emscripten/lfs64.rs | 213 + .../src/unix/linux_like/emscripten/mod.rs | 152 +- .../libc/src/unix/linux_like/linux/align.rs | 13 + .../unix/linux_like/linux/arch/generic/mod.rs | 41 + .../unix/linux_like/linux/arch/mips/mod.rs | 39 +- .../src/unix/linux_like/linux/arch/mod.rs | 5 +- .../unix/linux_like/linux/arch/powerpc/mod.rs | 34 + .../unix/linux_like/linux/arch/sparc/mod.rs | 31 + .../unix/linux_like/linux/gnu/b32/arm/mod.rs | 12 +- .../linux_like/linux/gnu/b32/csky/align.rs | 7 + .../unix/linux_like/linux/gnu/b32/csky/mod.rs | 741 + .../unix/linux_like/linux/gnu/b32/m68k/mod.rs | 1 + .../unix/linux_like/linux/gnu/b32/mips/mod.rs | 1 + .../src/unix/linux_like/linux/gnu/b32/mod.rs | 41 +- .../unix/linux_like/linux/gnu/b32/powerpc.rs | 1 + .../linux_like/linux/gnu/b32/riscv32/mod.rs | 1 + .../linux_like/linux/gnu/b32/sparc/mod.rs | 1 + .../unix/linux_like/linux/gnu/b32/x86/mod.rs | 11 +- .../linux_like/linux/gnu/b64/aarch64/align.rs | 7 - .../linux/gnu/b64/aarch64/fallback.rs | 8 + .../linux_like/linux/gnu/b64/aarch64/mod.rs | 19 +- .../linux/gnu/b64/loongarch64/mod.rs | 15 + .../linux_like/linux/gnu/b64/mips64/mod.rs | 1 + .../src/unix/linux_like/linux/gnu/b64/mod.rs | 4 +- .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 1 + .../linux_like/linux/gnu/b64/riscv64/mod.rs | 9 + .../unix/linux_like/linux/gnu/b64/s390x.rs | 1 + .../linux_like/linux/gnu/b64/sparc64/mod.rs | 1 + .../linux_like/linux/gnu/b64/x86_64/mod.rs | 12 +- .../libc/src/unix/linux_like/linux/gnu/mod.rs | 202 +- .../libc/src/unix/linux_like/linux/mod.rs | 813 +- .../unix/linux_like/linux/musl/b32/arm/mod.rs | 7 +- .../unix/linux_like/linux/musl/b32/hexagon.rs | 6 - .../linux_like/linux/musl/b32/mips/mod.rs | 7 +- .../unix/linux_like/linux/musl/b32/powerpc.rs | 9 +- .../linux_like/linux/musl/b32/riscv32/mod.rs | 8 +- .../unix/linux_like/linux/musl/b32/x86/mod.rs | 81 +- .../linux_like/linux/musl/b64/aarch64/mod.rs | 4 +- .../linux/musl/b64/loongarch64/align.rs | 40 + .../linux/musl/b64/loongarch64/mod.rs | 669 + .../unix/linux_like/linux/musl/b64/mips64.rs | 4 +- .../src/unix/linux_like/linux/musl/b64/mod.rs | 7 +- .../linux_like/linux/musl/b64/powerpc64.rs | 4 +- .../linux_like/linux/musl/b64/riscv64/mod.rs | 7 +- .../unix/linux_like/linux/musl/b64/s390x.rs | 4 +- .../linux_like/linux/musl/b64/x86_64/mod.rs | 4 +- .../src/unix/linux_like/linux/musl/mod.rs | 135 +- .../src/unix/linux_like/linux/no_align.rs | 14 + .../src/unix/linux_like/linux/uclibc/mod.rs | 8 +- .../linux_like/linux/uclibc/x86_64/l4re.rs | 2 +- .../vendor/libc/src/unix/linux_like/mod.rs | 33 +- src/rust/vendor/libc/src/unix/mod.rs | 70 +- .../libc/src/unix/newlib/aarch64/mod.rs | 2 +- .../vendor/libc/src/unix/newlib/arm/mod.rs | 2 +- .../vendor/libc/src/unix/newlib/espidf/mod.rs | 12 +- .../vendor/libc/src/unix/newlib/generic.rs | 6 + .../libc/src/unix/newlib/horizon/mod.rs | 2 + src/rust/vendor/libc/src/unix/newlib/mod.rs | 63 +- .../libc/src/unix/newlib/powerpc/mod.rs | 2 +- .../vendor/libc/src/unix/newlib/vita/mod.rs | 39 +- src/rust/vendor/libc/src/unix/nto/mod.rs | 285 +- src/rust/vendor/libc/src/unix/nto/neutrino.rs | 20 +- src/rust/vendor/libc/src/unix/redox/mod.rs | 159 +- src/rust/vendor/libc/src/unix/solarish/mod.rs | 18 +- src/rust/vendor/libc/src/vxworks/mod.rs | 31 +- src/rust/vendor/libc/src/wasi.rs | 1 + src/rust/vendor/libc/src/windows/mod.rs | 1 + .../vendor/r-efi-alloc/.cargo-checksum.json | 1 + src/rust/vendor/r-efi-alloc/AUTHORS | 60 + src/rust/vendor/r-efi-alloc/Cargo.lock | 33 + src/rust/vendor/r-efi-alloc/Cargo.toml | 62 + src/rust/vendor/r-efi-alloc/README.md | 77 + .../r-efi-alloc/examples/hello-world.rs | 118 + src/rust/vendor/r-efi-alloc/src/alloc.rs | 144 + src/rust/vendor/r-efi-alloc/src/global.rs | 235 + src/rust/vendor/r-efi-alloc/src/lib.rs | 28 + src/rust/vendor/r-efi-alloc/src/raw.rs | 235 + src/rust/vendor/r-efi/.cargo-checksum.json | 1 + src/rust/vendor/r-efi/AUTHORS | 71 + src/rust/vendor/r-efi/Cargo.lock | 26 + src/rust/vendor/r-efi/Cargo.toml | 64 + src/rust/vendor/r-efi/Makefile | 85 + src/rust/vendor/r-efi/NEWS.md | 248 + src/rust/vendor/r-efi/README.md | 99 + .../vendor/r-efi/examples/freestanding.rs | 34 + src/rust/vendor/r-efi/examples/gop-query.rs | 188 + src/rust/vendor/r-efi/examples/hello-world.rs | 55 + src/rust/vendor/r-efi/src/base.rs | 923 + src/rust/vendor/r-efi/src/hii.rs | 1300 + src/rust/vendor/r-efi/src/lib.rs | 166 + src/rust/vendor/r-efi/src/protocols.rs | 53 + .../r-efi/src/protocols/absolute_pointer.rs | 69 + .../vendor/r-efi/src/protocols/block_io.rs | 70 + .../protocols/bus_specific_driver_override.rs | 32 + .../r-efi/src/protocols/debug_support.rs | 835 + .../vendor/r-efi/src/protocols/debugport.rs | 42 + .../vendor/r-efi/src/protocols/decompress.rs | 37 + .../vendor/r-efi/src/protocols/device_path.rs | 82 + .../src/protocols/device_path_from_text.rs | 26 + .../src/protocols/device_path_to_text.rs | 30 + .../src/protocols/device_path_utilities.rs | 63 + .../vendor/r-efi/src/protocols/disk_io.rs | 40 + .../vendor/r-efi/src/protocols/disk_io2.rs | 58 + .../r-efi/src/protocols/driver_binding.rs | 42 + .../src/protocols/driver_diagnostics2.rs | 38 + .../src/protocols/driver_family_override.rs | 23 + src/rust/vendor/r-efi/src/protocols/file.rs | 183 + .../r-efi/src/protocols/graphics_output.rs | 103 + .../r-efi/src/protocols/hii_database.rs | 299 + .../vendor/r-efi/src/protocols/hii_font.rs | 87 + .../vendor/r-efi/src/protocols/hii_font_ex.rs | 107 + .../r-efi/src/protocols/hii_package_list.rs | 14 + .../vendor/r-efi/src/protocols/hii_string.rs | 71 + src/rust/vendor/r-efi/src/protocols/ip4.rs | 202 + src/rust/vendor/r-efi/src/protocols/ip6.rs | 264 + .../vendor/r-efi/src/protocols/load_file.rs | 26 + .../vendor/r-efi/src/protocols/load_file2.rs | 15 + .../r-efi/src/protocols/loaded_image.rs | 39 + .../src/protocols/loaded_image_device_path.rs | 13 + .../r-efi/src/protocols/managed_network.rs | 147 + .../vendor/r-efi/src/protocols/mp_services.rs | 121 + src/rust/vendor/r-efi/src/protocols/pci_io.rs | 203 + .../src/protocols/platform_driver_override.rs | 46 + src/rust/vendor/r-efi/src/protocols/rng.rs | 83 + .../r-efi/src/protocols/service_binding.rs | 20 + src/rust/vendor/r-efi/src/protocols/shell.rs | 295 + .../src/protocols/shell_dynamic_command.rs | 33 + .../r-efi/src/protocols/shell_parameters.rs | 23 + .../r-efi/src/protocols/simple_file_system.rs | 26 + .../r-efi/src/protocols/simple_network.rs | 196 + .../r-efi/src/protocols/simple_text_input.rs | 38 + .../src/protocols/simple_text_input_ex.rs | 85 + .../r-efi/src/protocols/simple_text_output.rs | 86 + src/rust/vendor/r-efi/src/protocols/tcp4.rs | 224 + src/rust/vendor/r-efi/src/protocols/tcp6.rs | 202 + .../vendor/r-efi/src/protocols/timestamp.rs | 32 + src/rust/vendor/r-efi/src/protocols/udp4.rs | 151 + src/rust/vendor/r-efi/src/protocols/udp6.rs | 137 + src/rust/vendor/r-efi/src/system.rs | 1130 + src/rust/vendor/r-efi/src/vendor.rs | 10 + .../r-efi/src/vendor/intel/console_control.rs | 37 + .../rustc-demangle/.cargo-checksum.json | 1 + src/rust/vendor/rustc-demangle/Cargo.toml | 58 + src/rust/vendor/rustc-demangle/LICENSE-APACHE | 201 + src/rust/vendor/rustc-demangle/LICENSE-MIT | 25 + src/rust/vendor/rustc-demangle/README.md | 48 + src/rust/vendor/rustc-demangle/src/legacy.rs | 392 + src/rust/vendor/rustc-demangle/src/lib.rs | 588 + .../early-recursion-limit | 10 + src/rust/vendor/rustc-demangle/src/v0.rs | 1536 ++ .../.cargo-checksum.json | 1 + .../rustc-std-workspace-alloc/Cargo.toml | 21 + .../rustc-std-workspace-alloc/src/lib.rs | 0 .../.cargo-checksum.json | 1 + .../rustc-std-workspace-core/Cargo.toml | 20 + .../rustc-std-workspace-core/src/lib.rs | 0 .../.cargo-checksum.json | 1 + .../vendor/rustc-std-workspace-std/Cargo.toml | 21 + .../vendor/rustc-std-workspace-std/src/lib.rs | 1 + .../vendor/unicode-width/.cargo-checksum.json | 1 + src/rust/vendor/unicode-width/COPYRIGHT | 7 + src/rust/vendor/unicode-width/Cargo.toml | 68 + src/rust/vendor/unicode-width/LICENSE-APACHE | 201 + src/rust/vendor/unicode-width/LICENSE-MIT | 25 + src/rust/vendor/unicode-width/README.md | 56 + .../vendor/unicode-width/benches/benches.rs | 114 + .../vendor/unicode-width/scripts/unicode.py | 700 + src/rust/vendor/unicode-width/src/lib.rs | 177 + src/rust/vendor/unicode-width/src/tables.rs | 647 + src/rust/vendor/unicode-width/tests/tests.rs | 167 + .../vendor/unwinding/.cargo-checksum.json | 1 + src/rust/vendor/unwinding/Cargo.toml | 92 + src/rust/vendor/unwinding/LICENSE-APACHE | 176 + src/rust/vendor/unwinding/LICENSE-MIT | 23 + src/rust/vendor/unwinding/README.md | 75 + src/rust/vendor/unwinding/rust-toolchain | 2 + src/rust/vendor/unwinding/src/abi.rs | 172 + src/rust/vendor/unwinding/src/arch.rs | 80 + src/rust/vendor/unwinding/src/lib.rs | 57 + src/rust/vendor/unwinding/src/panic.rs | 88 + .../vendor/unwinding/src/panic_handler.rs | 103 + .../unwinding/src/panic_handler_dummy.rs | 6 + src/rust/vendor/unwinding/src/panicking.rs | 71 + src/rust/vendor/unwinding/src/personality.rs | 181 + .../vendor/unwinding/src/personality_dummy.rs | 16 + src/rust/vendor/unwinding/src/print.rs | 70 + src/rust/vendor/unwinding/src/system_alloc.rs | 63 + .../unwinding/src/unwinder/arch/aarch64.rs | 142 + .../vendor/unwinding/src/unwinder/arch/mod.rs | 33 + .../unwinding/src/unwinder/arch/riscv32.rs | 242 + .../unwinding/src/unwinder/arch/riscv64.rs | 242 + .../vendor/unwinding/src/unwinder/arch/x86.rs | 136 + .../unwinding/src/unwinder/arch/x86_64.rs | 140 + .../unwinding/src/unwinder/find_fde/custom.rs | 171 + .../unwinding/src/unwinder/find_fde/fixed.rs | 44 + .../src/unwinder/find_fde/gnu_eh_frame_hdr.rs | 66 + .../unwinding/src/unwinder/find_fde/mod.rs | 64 + .../unwinding/src/unwinder/find_fde/phdr.rs | 166 + .../src/unwinder/find_fde/registry.rs | 250 + .../vendor/unwinding/src/unwinder/frame.rs | 198 + src/rust/vendor/unwinding/src/unwinder/mod.rs | 430 + src/rust/vendor/unwinding/src/util.rs | 41 + .../vendor/unwinding/tests/compile_tests.rs | 20 + src/rust/vendor/wasi/.cargo-checksum.json | 1 + src/rust/vendor/wasi/CODE_OF_CONDUCT.md | 49 + src/rust/vendor/wasi/CONTRIBUTING.md | 8 + src/rust/vendor/wasi/Cargo.toml | 42 + src/rust/vendor/wasi/LICENSE-APACHE | 201 + .../LICENSE-Apache-2.0_WITH_LLVM-exception | 220 + src/rust/vendor/wasi/LICENSE-MIT | 23 + src/rust/vendor/wasi/ORG_CODE_OF_CONDUCT.md | 143 + src/rust/vendor/wasi/README.md | 94 + src/rust/vendor/wasi/SECURITY.md | 29 + src/rust/vendor/wasi/src/lib.rs | 47 + src/rust/vendor/wasi/src/lib_generated.rs | 2366 ++ .../vendor/windows-sys/.cargo-checksum.json | 1 + src/rust/vendor/windows-sys/Cargo.toml | 265 + .../vendor/windows-sys/license-apache-2.0 | 201 + src/rust/vendor/windows-sys/license-mit | 21 + src/rust/vendor/windows-sys/readme.md | 88 + .../src/Windows/Wdk/Foundation/mod.rs | 2224 ++ .../src/Windows/Wdk/Graphics/Direct3D/mod.rs | 17032 +++++++++++++ .../src/Windows/Wdk/Graphics/mod.rs | 3 + .../Wdk/Storage/FileSystem/Minifilters/mod.rs | 2077 ++ .../src/Windows/Wdk/Storage/FileSystem/mod.rs | 6233 +++++ .../src/Windows/Wdk/Storage/mod.rs | 3 + .../src/Windows/Wdk/System/IO/mod.rs | 2 + .../Windows/Wdk/System/OfflineRegistry/mod.rs | 49 + .../src/Windows/Wdk/System/Registry/mod.rs | 74 + .../Wdk/System/SystemInformation/mod.rs | 18 + .../Windows/Wdk/System/SystemServices/mod.rs | 21130 ++++++++++++++++ .../src/Windows/Wdk/System/Threading/mod.rs | 127 + .../windows-sys/src/Windows/Wdk/System/mod.rs | 18 + .../vendor/windows-sys/src/Windows/Wdk/mod.rs | 12 + .../src/Windows/Win32/Data/HtmlHelp/mod.rs | 558 + .../Win32/Data/RightsManagement/mod.rs | 279 + .../windows-sys/src/Windows/Win32/Data/mod.rs | 6 + .../src/Windows/Win32/Devices/AllJoyn/mod.rs | 1380 + .../Win32/Devices/BiometricFramework/mod.rs | 2356 ++ .../Windows/Win32/Devices/Bluetooth/mod.rs | 1850 ++ .../Win32/Devices/Communication/mod.rs | 375 + .../DeviceAndDriverInstallation/mod.rs | 5430 ++++ .../Windows/Win32/Devices/DeviceQuery/mod.rs | 182 + .../src/Windows/Win32/Devices/Display/mod.rs | 4802 ++++ .../Win32/Devices/Enumeration/Pnp/mod.rs | 131 + .../Windows/Win32/Devices/Enumeration/mod.rs | 3 + .../src/Windows/Win32/Devices/Fax/mod.rs | 1752 ++ .../Win32/Devices/HumanInterfaceDevice/mod.rs | 4489 ++++ .../Win32/Devices/PortableDevices/mod.rs | 2617 ++ .../Windows/Win32/Devices/Properties/mod.rs | 274 + .../src/Windows/Win32/Devices/Pwm/mod.rs | 122 + .../src/Windows/Win32/Devices/Sensors/mod.rs | 907 + .../Win32/Devices/SerialCommunication/mod.rs | 308 + .../src/Windows/Win32/Devices/Tapi/mod.rs | 4033 +++ .../src/Windows/Win32/Devices/Usb/mod.rs | 3981 +++ .../Win32/Devices/WebServicesOnDevices/mod.rs | 1091 + .../src/Windows/Win32/Devices/mod.rs | 54 + .../src/Windows/Win32/Foundation/mod.rs | 10367 ++++++++ .../src/Windows/Win32/Gaming/mod.rs | 117 + .../src/Windows/Win32/Globalization/mod.rs | 5559 ++++ .../src/Windows/Win32/Graphics/Dwm/mod.rs | 294 + .../src/Windows/Win32/Graphics/Gdi/mod.rs | 5221 ++++ .../src/Windows/Win32/Graphics/GdiPlus/mod.rs | 2639 ++ .../src/Windows/Win32/Graphics/Hlsl/mod.rs | 2 + .../src/Windows/Win32/Graphics/OpenGL/mod.rs | 1312 + .../Graphics/Printing/PrintTicket/mod.rs | 34 + .../Windows/Win32/Graphics/Printing/mod.rs | 5787 +++++ .../src/Windows/Win32/Graphics/mod.rs | 18 + .../MobileDeviceManagementRegistration/mod.rs | 121 + .../src/Windows/Win32/Management/mod.rs | 3 + .../src/Windows/Win32/Media/Audio/mod.rs | 2814 ++ .../Windows/Win32/Media/DxMediaObjects/mod.rs | 125 + .../Win32/Media/KernelStreaming/mod.rs | 7630 ++++++ .../src/Windows/Win32/Media/Multimedia/mod.rs | 7660 ++++++ .../src/Windows/Win32/Media/Streaming/mod.rs | 202 + .../Win32/Media/WindowsMediaFormat/mod.rs | 1237 + .../src/Windows/Win32/Media/mod.rs | 237 + .../Win32/NetworkManagement/Dhcp/mod.rs | 2878 +++ .../Win32/NetworkManagement/Dns/mod.rs | 2170 ++ .../InternetConnectionWizard/mod.rs | 22 + .../Win32/NetworkManagement/IpHelper/mod.rs | 4412 ++++ .../Win32/NetworkManagement/Multicast/mod.rs | 94 + .../Win32/NetworkManagement/Ndis/mod.rs | 3997 +++ .../Win32/NetworkManagement/NetBios/mod.rs | 274 + .../NetworkManagement/NetManagement/mod.rs | 6564 +++++ .../Win32/NetworkManagement/NetShell/mod.rs | 246 + .../NetworkDiagnosticsFramework/mod.rs | 326 + .../Win32/NetworkManagement/P2P/mod.rs | 1716 ++ .../Win32/NetworkManagement/QoS/mod.rs | 2110 ++ .../Win32/NetworkManagement/Rras/mod.rs | 4524 ++++ .../Win32/NetworkManagement/Snmp/mod.rs | 531 + .../Win32/NetworkManagement/WNet/mod.rs | 550 + .../Win32/NetworkManagement/WebDav/mod.rs | 74 + .../Win32/NetworkManagement/WiFi/mod.rs | 6327 +++++ .../WindowsConnectionManager/mod.rs | 194 + .../WindowsFilteringPlatform/mod.rs | 5625 ++++ .../NetworkManagement/WindowsFirewall/mod.rs | 385 + .../WindowsNetworkVirtualization/mod.rs | 179 + .../Windows/Win32/NetworkManagement/mod.rs | 63 + .../Win32/Networking/ActiveDirectory/mod.rs | 3338 +++ .../Win32/Networking/Clustering/mod.rs | 5031 ++++ .../Win32/Networking/HttpServer/mod.rs | 1861 ++ .../src/Windows/Win32/Networking/Ldap/mod.rs | 1070 + .../Windows/Win32/Networking/WebSocket/mod.rs | 113 + .../Windows/Win32/Networking/WinHttp/mod.rs | 1401 + .../Windows/Win32/Networking/WinInet/mod.rs | 3018 +++ .../Windows/Win32/Networking/WinSock/mod.rs | 6724 +++++ .../Networking/WindowsWebServices/mod.rs | 5175 ++++ .../src/Windows/Win32/Networking/mod.rs | 27 + .../Windows/Win32/Security/AppLocker/mod.rs | 240 + .../Security/Authentication/Identity/mod.rs | 8213 ++++++ .../Win32/Security/Authentication/mod.rs | 3 + .../Win32/Security/Authorization/mod.rs | 1362 + .../Windows/Win32/Security/Credentials/mod.rs | 1081 + .../Security/Cryptography/Catalog/mod.rs | 217 + .../Security/Cryptography/Certificates/mod.rs | 2494 ++ .../Win32/Security/Cryptography/Sip/mod.rs | 241 + .../Win32/Security/Cryptography/UI/mod.rs | 792 + .../Win32/Security/Cryptography/mod.rs | 10500 ++++++++ .../Win32/Security/DiagnosticDataQuery/mod.rs | 227 + .../Win32/Security/DirectoryServices/mod.rs | 33 + .../Win32/Security/EnterpriseData/mod.rs | 59 + .../ExtensibleAuthenticationProtocol/mod.rs | 1273 + .../Windows/Win32/Security/Isolation/mod.rs | 38 + .../Win32/Security/LicenseProtection/mod.rs | 9 + .../Security/NetworkAccessProtection/mod.rs | 244 + .../Windows/Win32/Security/WinTrust/mod.rs | 1284 + .../src/Windows/Win32/Security/WinWlx/mod.rs | 491 + .../src/Windows/Win32/Security/mod.rs | 1787 ++ .../src/Windows/Win32/Storage/Cabinets/mod.rs | 314 + .../Windows/Win32/Storage/CloudFilters/mod.rs | 943 + .../Windows/Win32/Storage/Compression/mod.rs | 52 + .../Storage/DistributedFileSystem/mod.rs | 529 + .../Windows/Win32/Storage/FileHistory/mod.rs | 107 + .../Windows/Win32/Storage/FileSystem/mod.rs | 5336 ++++ .../src/Windows/Win32/Storage/Imapi/mod.rs | 773 + .../Windows/Win32/Storage/IndexServer/mod.rs | 351 + .../Storage/InstallableFileSystems/mod.rs | 449 + .../Windows/Win32/Storage/IscsiDisc/mod.rs | 1840 ++ .../src/Windows/Win32/Storage/Jet/mod.rs | 3343 +++ .../src/Windows/Win32/Storage/Nvme/mod.rs | 5398 ++++ .../Windows/Win32/Storage/OfflineFiles/mod.rs | 314 + .../Win32/Storage/OperationRecorder/mod.rs | 32 + .../Win32/Storage/Packaging/Appx/mod.rs | 576 + .../Windows/Win32/Storage/Packaging/mod.rs | 3 + .../Win32/Storage/ProjectedFileSystem/mod.rs | 406 + .../Win32/Storage/StructuredStorage/mod.rs | 5 + .../src/Windows/Win32/Storage/Vhd/mod.rs | 1156 + .../src/Windows/Win32/Storage/Xps/mod.rs | 583 + .../src/Windows/Win32/Storage/mod.rs | 57 + .../Windows/Win32/System/AddressBook/mod.rs | 1445 ++ .../Windows/Win32/System/Antimalware/mod.rs | 162 + .../mod.rs | 2520 ++ .../Win32/System/ApplicationVerifier/mod.rs | 74 + .../Windows/Win32/System/ClrHosting/mod.rs | 450 + .../Windows/Win32/System/Com/Marshal/mod.rs | 191 + .../Win32/System/Com/StructuredStorage/mod.rs | 901 + .../Windows/Win32/System/Com/Urlmon/mod.rs | 1035 + .../src/Windows/Win32/System/Com/mod.rs | 1775 ++ .../Win32/System/ComponentServices/mod.rs | 791 + .../src/Windows/Win32/System/Console/mod.rs | 528 + .../Win32/System/CorrelationVector/mod.rs | 20 + .../Windows/Win32/System/DataExchange/mod.rs | 591 + .../Win32/System/DeploymentServices/mod.rs | 769 + .../Win32/System/DeveloperLicensing/mod.rs | 6 + .../Win32/System/Diagnostics/Ceip/mod.rs | 2 + .../Diagnostics/Debug/Extensions/mod.rs | 4712 ++++ .../Win32/System/Diagnostics/Debug/mod.rs | 7868 ++++++ .../Win32/System/Diagnostics/Etw/mod.rs | 3000 +++ .../Diagnostics/ProcessSnapshotting/mod.rs | 446 + .../Win32/System/Diagnostics/ToolHelp/mod.rs | 182 + .../Windows/Win32/System/Diagnostics/mod.rs | 15 + .../DistributedTransactionCoordinator/mod.rs | 423 + .../Windows/Win32/System/Environment/mod.rs | 279 + .../Win32/System/ErrorReporting/mod.rs | 523 + .../Win32/System/EventCollector/mod.rs | 148 + .../src/Windows/Win32/System/EventLog/mod.rs | 447 + .../System/EventNotificationService/mod.rs | 52 + .../Windows/Win32/System/GroupPolicy/mod.rs | 569 + .../Windows/Win32/System/HostCompute/mod.rs | 1 + .../Win32/System/HostComputeNetwork/mod.rs | 99 + .../Win32/System/HostComputeSystem/mod.rs | 200 + .../Windows/Win32/System/Hypervisor/mod.rs | 2796 ++ .../src/Windows/Win32/System/IO/mod.rs | 122 + .../src/Windows/Win32/System/Iis/mod.rs | 1712 ++ .../src/Windows/Win32/System/Ioctl/mod.rs | 9136 +++++++ .../Windows/Win32/System/JobObjects/mod.rs | 617 + .../src/Windows/Win32/System/Js/mod.rs | 161 + .../src/Windows/Win32/System/Kernel/mod.rs | 485 + .../Windows/Win32/System/LibraryLoader/mod.rs | 181 + .../src/Windows/Win32/System/Mailslots/mod.rs | 8 + .../src/Windows/Win32/System/Mapi/mod.rs | 185 + .../Win32/System/Memory/NonVolatile/mod.rs | 25 + .../src/Windows/Win32/System/Memory/mod.rs | 694 + .../Win32/System/MessageQueuing/mod.rs | 841 + .../Windows/Win32/System/MixedReality/mod.rs | 24 + .../src/Windows/Win32/System/Ole/mod.rs | 3354 +++ .../Win32/System/PasswordManagement/mod.rs | 44 + .../HardwareCounterProfiling/mod.rs | 41 + .../Windows/Win32/System/Performance/mod.rs | 1523 ++ .../src/Windows/Win32/System/Pipes/mod.rs | 59 + .../src/Windows/Win32/System/Power/mod.rs | 1899 ++ .../Windows/Win32/System/ProcessStatus/mod.rs | 308 + .../src/Windows/Win32/System/Recovery/mod.rs | 18 + .../src/Windows/Win32/System/Registry/mod.rs | 1240 + .../Windows/Win32/System/RemoteDesktop/mod.rs | 2478 ++ .../Win32/System/RemoteManagement/mod.rs | 1178 + .../Win32/System/RestartManager/mod.rs | 133 + .../src/Windows/Win32/System/Restore/mod.rs | 96 + .../src/Windows/Win32/System/Rpc/mod.rs | 3822 +++ .../Windows/Win32/System/Search/Common/mod.rs | 21 + .../src/Windows/Win32/System/Search/mod.rs | 7074 ++++++ .../Win32/System/SecurityCenter/mod.rs | 47 + .../src/Windows/Win32/System/Services/mod.rs | 841 + .../Win32/System/SetupAndMigration/mod.rs | 7 + .../src/Windows/Win32/System/Shutdown/mod.rs | 123 + .../Win32/System/StationsAndDesktops/mod.rs | 147 + .../Win32/System/SubsystemForLinux/mod.rs | 15 + .../Win32/System/SystemInformation/mod.rs | 950 + .../Win32/System/SystemServices/mod.rs | 5922 +++++ .../src/Windows/Win32/System/Threading/mod.rs | 1589 ++ .../src/Windows/Win32/System/Time/mod.rs | 83 + .../Win32/System/TpmBaseServices/mod.rs | 122 + .../Win32/System/UserAccessLogging/mod.rs | 25 + .../src/Windows/Win32/System/Variant/mod.rs | 363 + .../Win32/System/VirtualDosMachines/mod.rs | 438 + .../Win32/System/WindowsProgramming/mod.rs | 2231 ++ .../src/Windows/Win32/System/Wmi/mod.rs | 3354 +++ .../src/Windows/Win32/System/mod.rs | 198 + .../src/Windows/Win32/UI/Accessibility/mod.rs | 2166 ++ .../src/Windows/Win32/UI/ColorSystem/mod.rs | 985 + .../Windows/Win32/UI/Controls/Dialogs/mod.rs | 1614 ++ .../src/Windows/Win32/UI/Controls/mod.rs | 9429 +++++++ .../src/Windows/Win32/UI/HiDpi/mod.rs | 83 + .../src/Windows/Win32/UI/Input/Ime/mod.rs | 1802 ++ .../Win32/UI/Input/KeyboardAndMouse/mod.rs | 987 + .../src/Windows/Win32/UI/Input/Pointer/mod.rs | 219 + .../src/Windows/Win32/UI/Input/Touch/mod.rs | 134 + .../Win32/UI/Input/XboxController/mod.rs | 182 + .../src/Windows/Win32/UI/Input/mod.rs | 302 + .../Win32/UI/InteractionContext/mod.rs | 299 + .../src/Windows/Win32/UI/Magnification/mod.rs | 85 + .../Win32/UI/Shell/PropertiesSystem/mod.rs | 400 + .../src/Windows/Win32/UI/Shell/mod.rs | 8643 +++++++ .../src/Windows/Win32/UI/TabletPC/mod.rs | 1767 ++ .../src/Windows/Win32/UI/TextServices/mod.rs | 1103 + .../Win32/UI/WindowsAndMessaging/mod.rs | 4824 ++++ .../windows-sys/src/Windows/Win32/UI/mod.rs | 33 + .../Windows/Win32/Web/InternetExplorer/mod.rs | 751 + .../windows-sys/src/Windows/Win32/Web/mod.rs | 3 + .../windows-sys/src/Windows/Win32/mod.rs | 45 + .../vendor/windows-sys/src/Windows/mod.rs | 6 + .../vendor/windows-sys/src/core/literals.rs | 114 + src/rust/vendor/windows-sys/src/core/mod.rs | 36 + src/rust/vendor/windows-sys/src/lib.rs | 13 + .../windows-targets/.cargo-checksum.json | 1 + src/rust/vendor/windows-targets/Cargo.toml | 50 + .../vendor/windows-targets/license-apache-2.0 | 201 + src/rust/vendor/windows-targets/license-mit | 21 + src/rust/vendor/windows-targets/readme.md | 28 + src/rust/vendor/windows-targets/src/lib.rs | 55 + .../.cargo-checksum.json | 1 + .../vendor/windows_aarch64_gnullvm/Cargo.toml | 24 + .../vendor/windows_aarch64_gnullvm/build.rs | 5 + .../lib/libwindows.0.52.0.a | Bin 0 -> 3856190 bytes .../license-apache-2.0 | 201 + .../windows_aarch64_gnullvm/license-mit | 21 + .../vendor/windows_aarch64_gnullvm/src/lib.rs | 1 + .../windows_aarch64_msvc/.cargo-checksum.json | 1 + .../vendor/windows_aarch64_msvc/Cargo.toml | 24 + src/rust/vendor/windows_aarch64_msvc/build.rs | 5 + .../lib/windows.0.52.0.lib | Bin 0 -> 5181746 bytes .../windows_aarch64_msvc/license-apache-2.0 | 201 + .../vendor/windows_aarch64_msvc/license-mit | 21 + .../vendor/windows_aarch64_msvc/src/lib.rs | 1 + .../windows_i686_gnu/.cargo-checksum.json | 1 + src/rust/vendor/windows_i686_gnu/Cargo.toml | 24 + src/rust/vendor/windows_i686_gnu/build.rs | 5 + .../windows_i686_gnu/lib/libwindows.0.52.0.a | Bin 0 -> 13123844 bytes .../windows_i686_gnu/license-apache-2.0 | 201 + src/rust/vendor/windows_i686_gnu/license-mit | 21 + src/rust/vendor/windows_i686_gnu/src/lib.rs | 1 + .../windows_i686_gnullvm/.cargo-checksum.json | 1 + .../vendor/windows_i686_gnullvm/Cargo.toml | 24 + src/rust/vendor/windows_i686_gnullvm/build.rs | 5 + .../lib/libwindows.0.52.0.a | Bin 0 -> 4062250 bytes .../windows_i686_gnullvm/license-apache-2.0 | 201 + .../vendor/windows_i686_gnullvm/license-mit | 21 + .../vendor/windows_i686_gnullvm/src/lib.rs | 1 + .../windows_i686_msvc/.cargo-checksum.json | 1 + src/rust/vendor/windows_i686_msvc/Cargo.toml | 24 + src/rust/vendor/windows_i686_msvc/build.rs | 5 + .../windows_i686_msvc/lib/windows.0.52.0.lib | Bin 0 -> 5527122 bytes .../windows_i686_msvc/license-apache-2.0 | 201 + src/rust/vendor/windows_i686_msvc/license-mit | 21 + src/rust/vendor/windows_i686_msvc/src/lib.rs | 1 + .../windows_x86_64_gnu/.cargo-checksum.json | 1 + src/rust/vendor/windows_x86_64_gnu/Cargo.toml | 24 + src/rust/vendor/windows_x86_64_gnu/build.rs | 5 + .../lib/libwindows.0.52.0.a | Bin 0 -> 12617938 bytes .../windows_x86_64_gnu/license-apache-2.0 | 201 + .../vendor/windows_x86_64_gnu/license-mit | 21 + src/rust/vendor/windows_x86_64_gnu/src/lib.rs | 1 + .../.cargo-checksum.json | 1 + .../vendor/windows_x86_64_gnullvm/Cargo.toml | 24 + .../vendor/windows_x86_64_gnullvm/build.rs | 5 + .../lib/libwindows.0.52.0.a | Bin 0 -> 3856190 bytes .../windows_x86_64_gnullvm/license-apache-2.0 | 201 + .../vendor/windows_x86_64_gnullvm/license-mit | 21 + .../vendor/windows_x86_64_gnullvm/src/lib.rs | 1 + .../windows_x86_64_msvc/.cargo-checksum.json | 1 + .../vendor/windows_x86_64_msvc/Cargo.toml | 24 + src/rust/vendor/windows_x86_64_msvc/build.rs | 5 + .../lib/windows.0.52.0.lib | Bin 0 -> 5181746 bytes .../windows_x86_64_msvc/license-apache-2.0 | 201 + .../vendor/windows_x86_64_msvc/license-mit | 21 + .../vendor/windows_x86_64_msvc/src/lib.rs | 1 + 1132 files changed, 655024 insertions(+), 1453 deletions(-) create mode 100644 src/rust/vendor/allocator-api2/.cargo-checksum.json create mode 100644 src/rust/vendor/allocator-api2/CHANGELOG.md create mode 100644 src/rust/vendor/allocator-api2/Cargo.toml create mode 100644 src/rust/vendor/allocator-api2/LICENSE-APACHE create mode 100644 src/rust/vendor/allocator-api2/LICENSE-MIT create mode 100644 src/rust/vendor/allocator-api2/README.md create mode 100644 src/rust/vendor/allocator-api2/src/lib.rs create mode 100644 src/rust/vendor/allocator-api2/src/nightly.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/alloc/global.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/alloc/mod.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/alloc/system.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/boxed.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/macros.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/mod.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/raw_vec.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/slice.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/vec/drain.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/vec/into_iter.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/vec/mod.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/vec/partial_eq.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/vec/set_len_on_drop.rs create mode 100644 src/rust/vendor/allocator-api2/src/stable/vec/splice.rs create mode 100644 src/rust/vendor/compiler_builtins/.cargo-checksum.json create mode 100644 src/rust/vendor/compiler_builtins/Cargo.lock create mode 100644 src/rust/vendor/compiler_builtins/Cargo.toml create mode 100644 src/rust/vendor/compiler_builtins/LICENSE.txt create mode 100644 src/rust/vendor/compiler_builtins/README.md create mode 100644 src/rust/vendor/compiler_builtins/build.rs create mode 100644 src/rust/vendor/compiler_builtins/examples/intrinsics.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/acos.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/acosf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/acosh.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/acoshf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/asin.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/asinf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/asinh.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/asinhf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/atan.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/atan2.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/atan2f.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/atanf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/atanh.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/atanhf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/cbrt.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/cbrtf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/ceil.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/ceilf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/copysign.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/copysignf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/cos.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/cosf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/cosh.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/coshf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/erf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/erff.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/exp.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/exp10.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/exp10f.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/exp2.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/exp2f.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/expf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/expm1.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/expm1f.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/expo2.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/fabs.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/fabsf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/fdim.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/fdimf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/fenv.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/floor.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/floorf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/fma.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/fmaf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/fmax.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/fmaxf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/fmin.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/fminf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/fmod.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/fmodf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/frexp.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/frexpf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/hypot.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/hypotf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/ilogb.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/ilogbf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/j0.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/j0f.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/j1.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/j1f.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/jn.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/jnf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/k_cos.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/k_cosf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/k_expo2.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/k_expo2f.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/k_sin.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/k_sinf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/k_tan.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/k_tanf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/ldexp.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/ldexpf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/lgamma.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/lgamma_r.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/lgammaf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/lgammaf_r.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/log.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/log10.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/log10f.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/log1p.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/log1pf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/log2.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/log2f.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/logf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/mod.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/modf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/modff.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/nextafter.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/nextafterf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/pow.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/powf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/rem_pio2.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/rem_pio2_large.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/rem_pio2f.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/remainder.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/remainderf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/remquo.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/remquof.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/rint.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/rintf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/round.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/roundf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/scalbn.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/scalbnf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/sin.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/sincos.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/sincosf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/sinf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/sinh.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/sinhf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/sqrt.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/sqrtf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/tan.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/tanf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/tanh.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/tanhf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/tgamma.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/tgammaf.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/trunc.rs create mode 100644 src/rust/vendor/compiler_builtins/libm/src/math/truncf.rs create mode 100644 src/rust/vendor/compiler_builtins/src/aarch64.rs create mode 100644 src/rust/vendor/compiler_builtins/src/aarch64_linux.rs create mode 100644 src/rust/vendor/compiler_builtins/src/arm.rs create mode 100644 src/rust/vendor/compiler_builtins/src/arm_linux.rs create mode 100644 src/rust/vendor/compiler_builtins/src/float/add.rs create mode 100644 src/rust/vendor/compiler_builtins/src/float/cmp.rs create mode 100644 src/rust/vendor/compiler_builtins/src/float/conv.rs create mode 100644 src/rust/vendor/compiler_builtins/src/float/div.rs create mode 100644 src/rust/vendor/compiler_builtins/src/float/extend.rs create mode 100644 src/rust/vendor/compiler_builtins/src/float/mod.rs create mode 100644 src/rust/vendor/compiler_builtins/src/float/mul.rs create mode 100644 src/rust/vendor/compiler_builtins/src/float/pow.rs create mode 100644 src/rust/vendor/compiler_builtins/src/float/sub.rs create mode 100644 src/rust/vendor/compiler_builtins/src/float/trunc.rs create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon.rs create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/dfaddsub.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/dfdiv.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/dffma.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/dfminmax.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/dfmul.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/dfsqrt.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/divdi3.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/divsi3.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/fastmath2_dlib_asm.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/fastmath2_ldlib_asm.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/func_macro.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/memcpy_forward_vp4cp4n2.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/memcpy_likely_aligned.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/moddi3.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/modsi3.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/sfdiv_opt.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/sfsqrt_opt.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/udivdi3.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/udivmoddi4.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/udivmodsi4.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/udivsi3.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/umoddi3.s create mode 100644 src/rust/vendor/compiler_builtins/src/hexagon/umodsi3.s create mode 100644 src/rust/vendor/compiler_builtins/src/int/addsub.rs create mode 100644 src/rust/vendor/compiler_builtins/src/int/leading_zeros.rs create mode 100644 src/rust/vendor/compiler_builtins/src/int/mod.rs create mode 100644 src/rust/vendor/compiler_builtins/src/int/mul.rs create mode 100644 src/rust/vendor/compiler_builtins/src/int/sdiv.rs create mode 100644 src/rust/vendor/compiler_builtins/src/int/shift.rs create mode 100644 src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/asymmetric.rs create mode 100644 src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/binary_long.rs create mode 100644 src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/delegate.rs create mode 100644 src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/mod.rs create mode 100644 src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/norm_shift.rs create mode 100644 src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/trifecta.rs create mode 100644 src/rust/vendor/compiler_builtins/src/int/udiv.rs create mode 100644 src/rust/vendor/compiler_builtins/src/lib.miri.rs create mode 100644 src/rust/vendor/compiler_builtins/src/lib.rs create mode 100644 src/rust/vendor/compiler_builtins/src/macros.rs create mode 100644 src/rust/vendor/compiler_builtins/src/math.rs create mode 100644 src/rust/vendor/compiler_builtins/src/mem/impls.rs create mode 100644 src/rust/vendor/compiler_builtins/src/mem/mod.rs create mode 100644 src/rust/vendor/compiler_builtins/src/mem/x86_64.rs create mode 100644 src/rust/vendor/compiler_builtins/src/probestack.rs create mode 100644 src/rust/vendor/compiler_builtins/src/riscv.rs create mode 100644 src/rust/vendor/compiler_builtins/src/x86.rs create mode 100644 src/rust/vendor/compiler_builtins/src/x86_64.rs create mode 100644 src/rust/vendor/dlmalloc/.cargo-checksum.json create mode 100644 src/rust/vendor/dlmalloc/Cargo.toml rename src/rust/vendor/{lazy_static => dlmalloc}/LICENSE-APACHE (100%) rename src/rust/vendor/{lazy_static => dlmalloc}/LICENSE-MIT (95%) create mode 100644 src/rust/vendor/dlmalloc/README.md create mode 100644 src/rust/vendor/dlmalloc/build.rs create mode 100644 src/rust/vendor/dlmalloc/src/dlmalloc.c create mode 100644 src/rust/vendor/dlmalloc/src/dlmalloc.rs create mode 100644 src/rust/vendor/dlmalloc/src/dummy.rs create mode 100644 src/rust/vendor/dlmalloc/src/global.rs create mode 100644 src/rust/vendor/dlmalloc/src/lib.rs create mode 100644 src/rust/vendor/dlmalloc/src/unix.rs create mode 100644 src/rust/vendor/dlmalloc/src/wasm.rs create mode 100644 src/rust/vendor/dlmalloc/src/windows.rs create mode 100644 src/rust/vendor/dlmalloc/src/xous.rs create mode 100644 src/rust/vendor/dlmalloc/tests/global.rs create mode 100644 src/rust/vendor/dlmalloc/tests/smoke.rs create mode 100644 src/rust/vendor/fortanix-sgx-abi/.cargo-checksum.json create mode 100644 src/rust/vendor/fortanix-sgx-abi/Cargo.toml create mode 100644 src/rust/vendor/fortanix-sgx-abi/src/lib.rs create mode 100644 src/rust/vendor/getopts/.cargo-checksum.json create mode 100644 src/rust/vendor/getopts/Cargo.toml create mode 100644 src/rust/vendor/getopts/LICENSE-APACHE create mode 100644 src/rust/vendor/getopts/LICENSE-MIT create mode 100644 src/rust/vendor/getopts/README.md create mode 100644 src/rust/vendor/getopts/src/lib.rs create mode 100644 src/rust/vendor/getopts/src/tests/mod.rs create mode 100644 src/rust/vendor/getopts/tests/smoke.rs create mode 100644 src/rust/vendor/gimli/.cargo-checksum.json create mode 100644 src/rust/vendor/gimli/CHANGELOG.md create mode 100644 src/rust/vendor/gimli/Cargo.toml create mode 100644 src/rust/vendor/gimli/LICENSE-APACHE create mode 100644 src/rust/vendor/gimli/LICENSE-MIT create mode 100644 src/rust/vendor/gimli/README.md create mode 100644 src/rust/vendor/gimli/src/arch.rs create mode 100644 src/rust/vendor/gimli/src/common.rs create mode 100644 src/rust/vendor/gimli/src/constants.rs create mode 100644 src/rust/vendor/gimli/src/endianity.rs create mode 100644 src/rust/vendor/gimli/src/leb128.rs create mode 100644 src/rust/vendor/gimli/src/lib.rs create mode 100644 src/rust/vendor/gimli/src/read/abbrev.rs create mode 100644 src/rust/vendor/gimli/src/read/addr.rs create mode 100644 src/rust/vendor/gimli/src/read/aranges.rs create mode 100644 src/rust/vendor/gimli/src/read/cfi.rs create mode 100644 src/rust/vendor/gimli/src/read/dwarf.rs create mode 100644 src/rust/vendor/gimli/src/read/endian_reader.rs create mode 100644 src/rust/vendor/gimli/src/read/endian_slice.rs create mode 100644 src/rust/vendor/gimli/src/read/index.rs create mode 100644 src/rust/vendor/gimli/src/read/line.rs create mode 100644 src/rust/vendor/gimli/src/read/lists.rs create mode 100644 src/rust/vendor/gimli/src/read/loclists.rs create mode 100644 src/rust/vendor/gimli/src/read/lookup.rs create mode 100644 src/rust/vendor/gimli/src/read/mod.rs create mode 100644 src/rust/vendor/gimli/src/read/op.rs create mode 100644 src/rust/vendor/gimli/src/read/pubnames.rs create mode 100644 src/rust/vendor/gimli/src/read/pubtypes.rs create mode 100644 src/rust/vendor/gimli/src/read/reader.rs create mode 100644 src/rust/vendor/gimli/src/read/rnglists.rs create mode 100644 src/rust/vendor/gimli/src/read/str.rs create mode 100644 src/rust/vendor/gimli/src/read/unit.rs create mode 100644 src/rust/vendor/gimli/src/read/util.rs create mode 100644 src/rust/vendor/gimli/src/read/value.rs create mode 100644 src/rust/vendor/gimli/src/test_util.rs create mode 100644 src/rust/vendor/gimli/src/write/abbrev.rs create mode 100644 src/rust/vendor/gimli/src/write/cfi.rs create mode 100644 src/rust/vendor/gimli/src/write/dwarf.rs create mode 100644 src/rust/vendor/gimli/src/write/endian_vec.rs create mode 100644 src/rust/vendor/gimli/src/write/line.rs create mode 100644 src/rust/vendor/gimli/src/write/loc.rs create mode 100644 src/rust/vendor/gimli/src/write/mod.rs create mode 100644 src/rust/vendor/gimli/src/write/op.rs create mode 100644 src/rust/vendor/gimli/src/write/range.rs create mode 100644 src/rust/vendor/gimli/src/write/section.rs create mode 100644 src/rust/vendor/gimli/src/write/str.rs create mode 100644 src/rust/vendor/gimli/src/write/unit.rs create mode 100644 src/rust/vendor/gimli/src/write/writer.rs create mode 100644 src/rust/vendor/hashbrown/.cargo-checksum.json create mode 100644 src/rust/vendor/hashbrown/CHANGELOG.md create mode 100644 src/rust/vendor/hashbrown/Cargo.toml create mode 100644 src/rust/vendor/hashbrown/LICENSE-APACHE create mode 100644 src/rust/vendor/hashbrown/LICENSE-MIT create mode 100644 src/rust/vendor/hashbrown/README.md create mode 100644 src/rust/vendor/hashbrown/benches/bench.rs create mode 100644 src/rust/vendor/hashbrown/benches/insert_unique_unchecked.rs create mode 100644 src/rust/vendor/hashbrown/clippy.toml create mode 100644 src/rust/vendor/hashbrown/src/external_trait_impls/mod.rs create mode 100644 src/rust/vendor/hashbrown/src/external_trait_impls/rayon/helpers.rs create mode 100644 src/rust/vendor/hashbrown/src/external_trait_impls/rayon/map.rs create mode 100644 src/rust/vendor/hashbrown/src/external_trait_impls/rayon/mod.rs create mode 100644 src/rust/vendor/hashbrown/src/external_trait_impls/rayon/raw.rs create mode 100644 src/rust/vendor/hashbrown/src/external_trait_impls/rayon/set.rs create mode 100644 src/rust/vendor/hashbrown/src/external_trait_impls/rayon/table.rs create mode 100644 src/rust/vendor/hashbrown/src/external_trait_impls/rkyv/hash_map.rs create mode 100644 src/rust/vendor/hashbrown/src/external_trait_impls/rkyv/hash_set.rs create mode 100644 src/rust/vendor/hashbrown/src/external_trait_impls/rkyv/mod.rs create mode 100644 src/rust/vendor/hashbrown/src/external_trait_impls/serde.rs create mode 100644 src/rust/vendor/hashbrown/src/lib.rs create mode 100644 src/rust/vendor/hashbrown/src/macros.rs create mode 100644 src/rust/vendor/hashbrown/src/map.rs create mode 100644 src/rust/vendor/hashbrown/src/raw/alloc.rs create mode 100644 src/rust/vendor/hashbrown/src/raw/bitmask.rs create mode 100644 src/rust/vendor/hashbrown/src/raw/generic.rs create mode 100644 src/rust/vendor/hashbrown/src/raw/mod.rs create mode 100644 src/rust/vendor/hashbrown/src/raw/neon.rs create mode 100644 src/rust/vendor/hashbrown/src/raw/sse2.rs create mode 100644 src/rust/vendor/hashbrown/src/rustc_entry.rs create mode 100644 src/rust/vendor/hashbrown/src/scopeguard.rs create mode 100644 src/rust/vendor/hashbrown/src/set.rs create mode 100644 src/rust/vendor/hashbrown/src/table.rs create mode 100644 src/rust/vendor/hashbrown/tests/equivalent_trait.rs create mode 100644 src/rust/vendor/hashbrown/tests/hasher.rs create mode 100644 src/rust/vendor/hashbrown/tests/raw.rs create mode 100644 src/rust/vendor/hashbrown/tests/rayon.rs create mode 100644 src/rust/vendor/hashbrown/tests/serde.rs create mode 100644 src/rust/vendor/hashbrown/tests/set.rs create mode 100644 src/rust/vendor/hermit-abi/.cargo-checksum.json create mode 100644 src/rust/vendor/hermit-abi/Cargo.toml create mode 100644 src/rust/vendor/hermit-abi/LICENSE-APACHE create mode 100644 src/rust/vendor/hermit-abi/LICENSE-MIT create mode 100644 src/rust/vendor/hermit-abi/README.md create mode 100644 src/rust/vendor/hermit-abi/src/errno.rs create mode 100644 src/rust/vendor/hermit-abi/src/lib.rs create mode 100644 src/rust/vendor/hermit-abi/src/tcplistener.rs create mode 100644 src/rust/vendor/hermit-abi/src/tcpstream.rs delete mode 100644 src/rust/vendor/lazy_static/.cargo-checksum.json delete mode 100644 src/rust/vendor/lazy_static/Cargo.toml delete mode 100644 src/rust/vendor/lazy_static/README.md delete mode 100644 src/rust/vendor/lazy_static/src/core_lazy.rs delete mode 100644 src/rust/vendor/lazy_static/src/inline_lazy.rs delete mode 100644 src/rust/vendor/lazy_static/src/lib.rs delete mode 100644 src/rust/vendor/lazy_static/tests/no_std.rs delete mode 100644 src/rust/vendor/lazy_static/tests/test.rs create mode 100644 src/rust/vendor/libc-0.2.146/.cargo-checksum.json create mode 100644 src/rust/vendor/libc-0.2.146/CONTRIBUTING.md create mode 100644 src/rust/vendor/libc-0.2.146/Cargo.toml create mode 100644 src/rust/vendor/libc-0.2.146/LICENSE-APACHE create mode 100644 src/rust/vendor/libc-0.2.146/LICENSE-MIT create mode 100644 src/rust/vendor/libc-0.2.146/README.md create mode 100644 src/rust/vendor/libc-0.2.146/build.rs create mode 100644 src/rust/vendor/libc-0.2.146/rustfmt.toml create mode 100644 src/rust/vendor/libc-0.2.146/src/fixed_width_ints.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/fuchsia/aarch64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/fuchsia/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/fuchsia/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/fuchsia/no_align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/fuchsia/riscv64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/fuchsia/x86_64.rs rename src/rust/vendor/{libc/src/unix => libc-0.2.146/src}/hermit/aarch64.rs (100%) create mode 100644 src/rust/vendor/libc-0.2.146/src/hermit/mod.rs rename src/rust/vendor/{libc/src/unix => libc-0.2.146/src}/hermit/x86_64.rs (100%) create mode 100644 src/rust/vendor/libc-0.2.146/src/lib.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/macros.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/psp.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/sgx.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/solid/aarch64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/solid/arm.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/solid/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/switch.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/aix/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/aix/powerpc64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/long_array.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/errno.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/aarch64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/arm.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/riscv64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/aarch64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/arm.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/powerpc.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/sparc64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86_64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/aarch64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/arm.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mips64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/riscv64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/sparc64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86_64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/haiku/b32.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/haiku/b64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/haiku/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/haiku/native.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/haiku/x86_64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/hermit/aarch64.rs rename src/rust/vendor/{libc => libc-0.2.146}/src/unix/hermit/mod.rs (100%) create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/hermit/x86_64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/arm.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/int128.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/no_align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/generic/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mips/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/powerpc/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/sparc/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/powerpc.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/s390x.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/no_align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/hexagon.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/powerpc.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mips64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/powerpc64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/s390x.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/lfs64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/no_align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/non_exhaustive.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/no_align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/no_align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/other.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/aarch64/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/arm/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/espidf/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/generic.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/horizon/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/no_align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/powerpc/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/vita/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/no_align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/nto/aarch64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/nto/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/nto/neutrino.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/nto/x86_64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/redox/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/compat.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/illumos.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/solaris.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/x86.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_common.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/aarch64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/arm.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/powerpc.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/powerpc64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/x86.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/x86_64.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/wasi.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/windows/gnu/align.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/windows/gnu/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/windows/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/windows/msvc/mod.rs create mode 100644 src/rust/vendor/libc-0.2.146/src/xous.rs create mode 100644 src/rust/vendor/libc-0.2.146/tests/const_fn.rs create mode 100644 src/rust/vendor/libc/src/teeos/mod.rs create mode 100644 src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs create mode 100644 src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs create mode 100644 src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs create mode 100644 src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mips.rs create mode 100644 src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/riscv64.rs create mode 100644 src/rust/vendor/libc/src/unix/hurd/align.rs create mode 100644 src/rust/vendor/libc/src/unix/hurd/b32.rs create mode 100644 src/rust/vendor/libc/src/unix/hurd/b64.rs create mode 100644 src/rust/vendor/libc/src/unix/hurd/mod.rs create mode 100644 src/rust/vendor/libc/src/unix/hurd/no_align.rs create mode 100644 src/rust/vendor/libc/src/unix/linux_like/emscripten/lfs64.rs create mode 100644 src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/csky/align.rs create mode 100644 src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/csky/mod.rs create mode 100644 src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/fallback.rs create mode 100644 src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs create mode 100644 src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs create mode 100644 src/rust/vendor/r-efi-alloc/.cargo-checksum.json create mode 100644 src/rust/vendor/r-efi-alloc/AUTHORS create mode 100644 src/rust/vendor/r-efi-alloc/Cargo.lock create mode 100644 src/rust/vendor/r-efi-alloc/Cargo.toml create mode 100644 src/rust/vendor/r-efi-alloc/README.md create mode 100644 src/rust/vendor/r-efi-alloc/examples/hello-world.rs create mode 100644 src/rust/vendor/r-efi-alloc/src/alloc.rs create mode 100644 src/rust/vendor/r-efi-alloc/src/global.rs create mode 100644 src/rust/vendor/r-efi-alloc/src/lib.rs create mode 100644 src/rust/vendor/r-efi-alloc/src/raw.rs create mode 100644 src/rust/vendor/r-efi/.cargo-checksum.json create mode 100644 src/rust/vendor/r-efi/AUTHORS create mode 100644 src/rust/vendor/r-efi/Cargo.lock create mode 100644 src/rust/vendor/r-efi/Cargo.toml create mode 100644 src/rust/vendor/r-efi/Makefile create mode 100644 src/rust/vendor/r-efi/NEWS.md create mode 100644 src/rust/vendor/r-efi/README.md create mode 100644 src/rust/vendor/r-efi/examples/freestanding.rs create mode 100644 src/rust/vendor/r-efi/examples/gop-query.rs create mode 100644 src/rust/vendor/r-efi/examples/hello-world.rs create mode 100644 src/rust/vendor/r-efi/src/base.rs create mode 100644 src/rust/vendor/r-efi/src/hii.rs create mode 100644 src/rust/vendor/r-efi/src/lib.rs create mode 100644 src/rust/vendor/r-efi/src/protocols.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/absolute_pointer.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/block_io.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/bus_specific_driver_override.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/debug_support.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/debugport.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/decompress.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/device_path.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/device_path_from_text.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/device_path_to_text.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/device_path_utilities.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/disk_io.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/disk_io2.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/driver_binding.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/driver_diagnostics2.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/driver_family_override.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/file.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/graphics_output.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/hii_database.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/hii_font.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/hii_font_ex.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/hii_package_list.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/hii_string.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/ip4.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/ip6.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/load_file.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/load_file2.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/loaded_image.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/loaded_image_device_path.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/managed_network.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/mp_services.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/pci_io.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/platform_driver_override.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/rng.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/service_binding.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/shell.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/shell_dynamic_command.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/shell_parameters.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/simple_file_system.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/simple_network.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/simple_text_input.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/simple_text_input_ex.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/simple_text_output.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/tcp4.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/tcp6.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/timestamp.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/udp4.rs create mode 100644 src/rust/vendor/r-efi/src/protocols/udp6.rs create mode 100644 src/rust/vendor/r-efi/src/system.rs create mode 100644 src/rust/vendor/r-efi/src/vendor.rs create mode 100644 src/rust/vendor/r-efi/src/vendor/intel/console_control.rs create mode 100644 src/rust/vendor/rustc-demangle/.cargo-checksum.json create mode 100644 src/rust/vendor/rustc-demangle/Cargo.toml create mode 100644 src/rust/vendor/rustc-demangle/LICENSE-APACHE create mode 100644 src/rust/vendor/rustc-demangle/LICENSE-MIT create mode 100644 src/rust/vendor/rustc-demangle/README.md create mode 100644 src/rust/vendor/rustc-demangle/src/legacy.rs create mode 100644 src/rust/vendor/rustc-demangle/src/lib.rs create mode 100644 src/rust/vendor/rustc-demangle/src/v0-large-test-symbols/early-recursion-limit create mode 100644 src/rust/vendor/rustc-demangle/src/v0.rs create mode 100644 src/rust/vendor/rustc-std-workspace-alloc/.cargo-checksum.json create mode 100644 src/rust/vendor/rustc-std-workspace-alloc/Cargo.toml create mode 100644 src/rust/vendor/rustc-std-workspace-alloc/src/lib.rs create mode 100644 src/rust/vendor/rustc-std-workspace-core/.cargo-checksum.json create mode 100644 src/rust/vendor/rustc-std-workspace-core/Cargo.toml create mode 100644 src/rust/vendor/rustc-std-workspace-core/src/lib.rs create mode 100644 src/rust/vendor/rustc-std-workspace-std/.cargo-checksum.json create mode 100644 src/rust/vendor/rustc-std-workspace-std/Cargo.toml create mode 100644 src/rust/vendor/rustc-std-workspace-std/src/lib.rs create mode 100644 src/rust/vendor/unicode-width/.cargo-checksum.json create mode 100644 src/rust/vendor/unicode-width/COPYRIGHT create mode 100644 src/rust/vendor/unicode-width/Cargo.toml create mode 100644 src/rust/vendor/unicode-width/LICENSE-APACHE create mode 100644 src/rust/vendor/unicode-width/LICENSE-MIT create mode 100644 src/rust/vendor/unicode-width/README.md create mode 100644 src/rust/vendor/unicode-width/benches/benches.rs create mode 100755 src/rust/vendor/unicode-width/scripts/unicode.py create mode 100644 src/rust/vendor/unicode-width/src/lib.rs create mode 100644 src/rust/vendor/unicode-width/src/tables.rs create mode 100644 src/rust/vendor/unicode-width/tests/tests.rs create mode 100644 src/rust/vendor/unwinding/.cargo-checksum.json create mode 100644 src/rust/vendor/unwinding/Cargo.toml create mode 100644 src/rust/vendor/unwinding/LICENSE-APACHE create mode 100644 src/rust/vendor/unwinding/LICENSE-MIT create mode 100644 src/rust/vendor/unwinding/README.md create mode 100644 src/rust/vendor/unwinding/rust-toolchain create mode 100644 src/rust/vendor/unwinding/src/abi.rs create mode 100644 src/rust/vendor/unwinding/src/arch.rs create mode 100644 src/rust/vendor/unwinding/src/lib.rs create mode 100644 src/rust/vendor/unwinding/src/panic.rs create mode 100644 src/rust/vendor/unwinding/src/panic_handler.rs create mode 100644 src/rust/vendor/unwinding/src/panic_handler_dummy.rs create mode 100644 src/rust/vendor/unwinding/src/panicking.rs create mode 100644 src/rust/vendor/unwinding/src/personality.rs create mode 100644 src/rust/vendor/unwinding/src/personality_dummy.rs create mode 100644 src/rust/vendor/unwinding/src/print.rs create mode 100644 src/rust/vendor/unwinding/src/system_alloc.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/arch/aarch64.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/arch/mod.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/arch/riscv32.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/arch/riscv64.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/arch/x86.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/arch/x86_64.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/find_fde/custom.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/find_fde/fixed.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/find_fde/gnu_eh_frame_hdr.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/find_fde/mod.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/find_fde/phdr.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/find_fde/registry.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/frame.rs create mode 100644 src/rust/vendor/unwinding/src/unwinder/mod.rs create mode 100644 src/rust/vendor/unwinding/src/util.rs create mode 100644 src/rust/vendor/unwinding/tests/compile_tests.rs create mode 100644 src/rust/vendor/wasi/.cargo-checksum.json create mode 100644 src/rust/vendor/wasi/CODE_OF_CONDUCT.md create mode 100644 src/rust/vendor/wasi/CONTRIBUTING.md create mode 100644 src/rust/vendor/wasi/Cargo.toml create mode 100644 src/rust/vendor/wasi/LICENSE-APACHE create mode 100644 src/rust/vendor/wasi/LICENSE-Apache-2.0_WITH_LLVM-exception create mode 100644 src/rust/vendor/wasi/LICENSE-MIT create mode 100644 src/rust/vendor/wasi/ORG_CODE_OF_CONDUCT.md create mode 100644 src/rust/vendor/wasi/README.md create mode 100644 src/rust/vendor/wasi/SECURITY.md create mode 100644 src/rust/vendor/wasi/src/lib.rs create mode 100644 src/rust/vendor/wasi/src/lib_generated.rs create mode 100644 src/rust/vendor/windows-sys/.cargo-checksum.json create mode 100644 src/rust/vendor/windows-sys/Cargo.toml create mode 100644 src/rust/vendor/windows-sys/license-apache-2.0 create mode 100644 src/rust/vendor/windows-sys/license-mit create mode 100644 src/rust/vendor/windows-sys/readme.md create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/Foundation/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/Graphics/Direct3D/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/Graphics/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/Storage/FileSystem/Minifilters/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/Storage/FileSystem/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/Storage/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/System/IO/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/System/OfflineRegistry/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/System/Registry/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/System/SystemInformation/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/System/SystemServices/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/System/Threading/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/System/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Wdk/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Data/HtmlHelp/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Data/RightsManagement/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Data/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/AllJoyn/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/BiometricFramework/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Bluetooth/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Communication/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/DeviceAndDriverInstallation/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/DeviceQuery/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Display/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Enumeration/Pnp/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Enumeration/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Fax/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/HumanInterfaceDevice/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/PortableDevices/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Properties/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Pwm/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Sensors/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/SerialCommunication/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Tapi/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Usb/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/WebServicesOnDevices/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Devices/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Foundation/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Gaming/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Globalization/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Dwm/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Gdi/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/GdiPlus/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Hlsl/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/OpenGL/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Printing/PrintTicket/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Printing/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Management/MobileDeviceManagementRegistration/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Management/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Media/Audio/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Media/DxMediaObjects/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Media/KernelStreaming/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Media/Multimedia/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Media/Streaming/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Media/WindowsMediaFormat/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Media/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Dhcp/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Dns/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/InternetConnectionWizard/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/IpHelper/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Multicast/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Ndis/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetBios/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetManagement/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetShell/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetworkDiagnosticsFramework/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/P2P/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/QoS/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Rras/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Snmp/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WNet/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WebDav/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WiFi/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsConnectionManager/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsFilteringPlatform/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsFirewall/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsNetworkVirtualization/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Networking/ActiveDirectory/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Networking/Clustering/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Networking/HttpServer/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Networking/Ldap/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WebSocket/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WinHttp/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WinInet/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WinSock/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WindowsWebServices/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Networking/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/AppLocker/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/Authentication/Identity/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/Authentication/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/Authorization/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/Credentials/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/Catalog/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/Certificates/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/Sip/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/UI/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/DiagnosticDataQuery/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/DirectoryServices/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/EnterpriseData/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/ExtensibleAuthenticationProtocol/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/Isolation/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/LicenseProtection/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/NetworkAccessProtection/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/WinTrust/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/WinWlx/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Security/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Cabinets/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/CloudFilters/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Compression/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/DistributedFileSystem/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/FileHistory/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/FileSystem/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Imapi/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/IndexServer/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/InstallableFileSystems/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/IscsiDisc/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Jet/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Nvme/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/OfflineFiles/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/OperationRecorder/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Packaging/Appx/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Packaging/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/ProjectedFileSystem/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/StructuredStorage/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Vhd/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Xps/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Storage/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/AddressBook/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Antimalware/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/ApplicationInstallationAndServicing/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/ApplicationVerifier/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/ClrHosting/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/Marshal/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/StructuredStorage/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/Urlmon/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/ComponentServices/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Console/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/CorrelationVector/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/DataExchange/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/DeploymentServices/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/DeveloperLicensing/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Ceip/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Debug/Extensions/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Debug/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Etw/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/ProcessSnapshotting/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/ToolHelp/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/DistributedTransactionCoordinator/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Environment/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/ErrorReporting/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/EventCollector/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/EventLog/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/EventNotificationService/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/GroupPolicy/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/HostCompute/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/HostComputeNetwork/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/HostComputeSystem/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Hypervisor/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/IO/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Iis/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Ioctl/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/JobObjects/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Js/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Kernel/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/LibraryLoader/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Mailslots/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Mapi/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Memory/NonVolatile/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Memory/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/MessageQueuing/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/MixedReality/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Ole/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/PasswordManagement/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Performance/HardwareCounterProfiling/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Performance/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Pipes/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Power/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/ProcessStatus/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Recovery/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Registry/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/RemoteDesktop/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/RemoteManagement/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/RestartManager/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Restore/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Rpc/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Search/Common/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Search/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/SecurityCenter/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Services/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/SetupAndMigration/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Shutdown/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/StationsAndDesktops/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/SubsystemForLinux/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/SystemInformation/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/SystemServices/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Threading/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Time/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/TpmBaseServices/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/UserAccessLogging/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Variant/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/VirtualDosMachines/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/WindowsProgramming/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/Wmi/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/System/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/Accessibility/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/ColorSystem/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/Controls/Dialogs/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/Controls/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/HiDpi/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/Ime/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/Pointer/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/Touch/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/XboxController/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/InteractionContext/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/Magnification/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/Shell/PropertiesSystem/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/Shell/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/TabletPC/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/TextServices/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/UI/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Web/InternetExplorer/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/Web/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/Win32/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/Windows/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/core/literals.rs create mode 100644 src/rust/vendor/windows-sys/src/core/mod.rs create mode 100644 src/rust/vendor/windows-sys/src/lib.rs create mode 100644 src/rust/vendor/windows-targets/.cargo-checksum.json create mode 100644 src/rust/vendor/windows-targets/Cargo.toml create mode 100644 src/rust/vendor/windows-targets/license-apache-2.0 create mode 100644 src/rust/vendor/windows-targets/license-mit create mode 100644 src/rust/vendor/windows-targets/readme.md create mode 100644 src/rust/vendor/windows-targets/src/lib.rs create mode 100644 src/rust/vendor/windows_aarch64_gnullvm/.cargo-checksum.json create mode 100644 src/rust/vendor/windows_aarch64_gnullvm/Cargo.toml create mode 100644 src/rust/vendor/windows_aarch64_gnullvm/build.rs create mode 100644 src/rust/vendor/windows_aarch64_gnullvm/lib/libwindows.0.52.0.a create mode 100644 src/rust/vendor/windows_aarch64_gnullvm/license-apache-2.0 create mode 100644 src/rust/vendor/windows_aarch64_gnullvm/license-mit create mode 100644 src/rust/vendor/windows_aarch64_gnullvm/src/lib.rs create mode 100644 src/rust/vendor/windows_aarch64_msvc/.cargo-checksum.json create mode 100644 src/rust/vendor/windows_aarch64_msvc/Cargo.toml create mode 100644 src/rust/vendor/windows_aarch64_msvc/build.rs create mode 100644 src/rust/vendor/windows_aarch64_msvc/lib/windows.0.52.0.lib create mode 100644 src/rust/vendor/windows_aarch64_msvc/license-apache-2.0 create mode 100644 src/rust/vendor/windows_aarch64_msvc/license-mit create mode 100644 src/rust/vendor/windows_aarch64_msvc/src/lib.rs create mode 100644 src/rust/vendor/windows_i686_gnu/.cargo-checksum.json create mode 100644 src/rust/vendor/windows_i686_gnu/Cargo.toml create mode 100644 src/rust/vendor/windows_i686_gnu/build.rs create mode 100644 src/rust/vendor/windows_i686_gnu/lib/libwindows.0.52.0.a create mode 100644 src/rust/vendor/windows_i686_gnu/license-apache-2.0 create mode 100644 src/rust/vendor/windows_i686_gnu/license-mit create mode 100644 src/rust/vendor/windows_i686_gnu/src/lib.rs create mode 100644 src/rust/vendor/windows_i686_gnullvm/.cargo-checksum.json create mode 100644 src/rust/vendor/windows_i686_gnullvm/Cargo.toml create mode 100644 src/rust/vendor/windows_i686_gnullvm/build.rs create mode 100644 src/rust/vendor/windows_i686_gnullvm/lib/libwindows.0.52.0.a create mode 100644 src/rust/vendor/windows_i686_gnullvm/license-apache-2.0 create mode 100644 src/rust/vendor/windows_i686_gnullvm/license-mit create mode 100644 src/rust/vendor/windows_i686_gnullvm/src/lib.rs create mode 100644 src/rust/vendor/windows_i686_msvc/.cargo-checksum.json create mode 100644 src/rust/vendor/windows_i686_msvc/Cargo.toml create mode 100644 src/rust/vendor/windows_i686_msvc/build.rs create mode 100644 src/rust/vendor/windows_i686_msvc/lib/windows.0.52.0.lib create mode 100644 src/rust/vendor/windows_i686_msvc/license-apache-2.0 create mode 100644 src/rust/vendor/windows_i686_msvc/license-mit create mode 100644 src/rust/vendor/windows_i686_msvc/src/lib.rs create mode 100644 src/rust/vendor/windows_x86_64_gnu/.cargo-checksum.json create mode 100644 src/rust/vendor/windows_x86_64_gnu/Cargo.toml create mode 100644 src/rust/vendor/windows_x86_64_gnu/build.rs create mode 100644 src/rust/vendor/windows_x86_64_gnu/lib/libwindows.0.52.0.a create mode 100644 src/rust/vendor/windows_x86_64_gnu/license-apache-2.0 create mode 100644 src/rust/vendor/windows_x86_64_gnu/license-mit create mode 100644 src/rust/vendor/windows_x86_64_gnu/src/lib.rs create mode 100644 src/rust/vendor/windows_x86_64_gnullvm/.cargo-checksum.json create mode 100644 src/rust/vendor/windows_x86_64_gnullvm/Cargo.toml create mode 100644 src/rust/vendor/windows_x86_64_gnullvm/build.rs create mode 100644 src/rust/vendor/windows_x86_64_gnullvm/lib/libwindows.0.52.0.a create mode 100644 src/rust/vendor/windows_x86_64_gnullvm/license-apache-2.0 create mode 100644 src/rust/vendor/windows_x86_64_gnullvm/license-mit create mode 100644 src/rust/vendor/windows_x86_64_gnullvm/src/lib.rs create mode 100644 src/rust/vendor/windows_x86_64_msvc/.cargo-checksum.json create mode 100644 src/rust/vendor/windows_x86_64_msvc/Cargo.toml create mode 100644 src/rust/vendor/windows_x86_64_msvc/build.rs create mode 100644 src/rust/vendor/windows_x86_64_msvc/lib/windows.0.52.0.lib create mode 100644 src/rust/vendor/windows_x86_64_msvc/license-apache-2.0 create mode 100644 src/rust/vendor/windows_x86_64_msvc/license-mit create mode 100644 src/rust/vendor/windows_x86_64_msvc/src/lib.rs diff --git a/src/rust/vendor/allocator-api2/.cargo-checksum.json b/src/rust/vendor/allocator-api2/.cargo-checksum.json new file mode 100644 index 000000000..81eead005 --- /dev/null +++ b/src/rust/vendor/allocator-api2/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"CHANGELOG.md":"886f8c688db0c22d24b650df0dc30a39d05d54d0e562c00d9574bf31cbf73251","Cargo.toml":"8c0d2ca1b5a6063aedcd462337eeb4dfb755d81e8d132fe810419689e45eef42","LICENSE-APACHE":"20fe7b00e904ed690e3b9fd6073784d3fc428141dbd10b81c01fd143d0797f58","LICENSE-MIT":"36516aefdc84c5d5a1e7485425913a22dbda69eb1930c5e84d6ae4972b5194b9","README.md":"7bf09e77c1d8e9292992b717d88e33d031439aa31dc9e7bb617464270519b051","src/lib.rs":"c937309febe24f97bc637650137311d5b8097b8574b0e973f4d6fb591c3448f7","src/nightly.rs":"fcff4d236e23bc95b1ce2c00140807ba3698cc01233d910d65d74986bb36f161","src/stable/alloc/global.rs":"14836ad7d73a364474fc153b24a1f17ad0e60a69b90a8721dc1059eada8bf869","src/stable/alloc/mod.rs":"866dafd3984dd246e381d8ad1c2b3e02a60c3421b598ca493aa83f9b6422608d","src/stable/alloc/system.rs":"db5d5bf088eecac3fc5ff1281e1bf26ca36dd38f13cd52c49d95ff1bab064254","src/stable/boxed.rs":"8b9b7f4cebbc1629c478dce0dd8227db16508e1383f24490d32eab7aeb3a0cea","src/stable/macros.rs":"74490796a766338d0163f40a37612cd9ea2de58ae3d8e9abf6c7bcf81d9be4a6","src/stable/mod.rs":"a6a724e10e4db4e3b7960c65bac803152a1115af46b898ff8a61e486365c16c7","src/stable/raw_vec.rs":"8cc0e3e4d5fd21e0e83776ff21c576cbb87b69647903ee9b8f5372f8781a7328","src/stable/slice.rs":"089263b058e6c185467bad7ad14908479e5675408fc70a8291e5dddaef36035a","src/stable/vec/drain.rs":"740cd2e0f31eeb0146bbd0f645a14fe12bacd3912f003db433ddc6b3a178461f","src/stable/vec/into_iter.rs":"88c22b09682cd90c7362d702d0501566173b2d836cf82a2b92ae11fdef5b9435","src/stable/vec/mod.rs":"1561b75d0bbcdf64f47bd7f1661088b68796f0e7e02a4e9391d8a50010b86f6b","src/stable/vec/partial_eq.rs":"9f1b18605164a62b58d9e17914d573698735de31c51ceb8bd3666e83d32df370","src/stable/vec/set_len_on_drop.rs":"561342e22a194e515cc25c9a1bcd827ca24c4db033e9e2c4266fbdd2fb16e5bc","src/stable/vec/splice.rs":"95a460b3a7b4af60fdc9ba04d3a719b61a0c11786cd2d8823d022e22c397f9c9"},"package":"5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"} \ No newline at end of file diff --git a/src/rust/vendor/allocator-api2/CHANGELOG.md b/src/rust/vendor/allocator-api2/CHANGELOG.md new file mode 100644 index 000000000..1d8f11d32 --- /dev/null +++ b/src/rust/vendor/allocator-api2/CHANGELOG.md @@ -0,0 +1,7 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] diff --git a/src/rust/vendor/allocator-api2/Cargo.toml b/src/rust/vendor/allocator-api2/Cargo.toml new file mode 100644 index 000000000..af7d9a110 --- /dev/null +++ b/src/rust/vendor/allocator-api2/Cargo.toml @@ -0,0 +1,32 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2018" +name = "allocator-api2" +version = "0.2.18" +authors = ["Zakarum "] +description = "Mirror of Rust's allocator API" +homepage = "https://github.com/zakarumych/allocator-api2" +documentation = "https://docs.rs/allocator-api2" +readme = "README.md" +license = "MIT OR Apache-2.0" +repository = "https://github.com/zakarumych/allocator-api2" + +[dependencies.serde] +version = "1.0" +optional = true + +[features] +alloc = [] +default = ["std"] +nightly = [] +std = ["alloc"] diff --git a/src/rust/vendor/allocator-api2/LICENSE-APACHE b/src/rust/vendor/allocator-api2/LICENSE-APACHE new file mode 100644 index 000000000..a2ce4d97c --- /dev/null +++ b/src/rust/vendor/allocator-api2/LICENSE-APACHE @@ -0,0 +1,176 @@ + 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 diff --git a/src/rust/vendor/allocator-api2/LICENSE-MIT b/src/rust/vendor/allocator-api2/LICENSE-MIT new file mode 100644 index 000000000..458723b37 --- /dev/null +++ b/src/rust/vendor/allocator-api2/LICENSE-MIT @@ -0,0 +1,23 @@ +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. diff --git a/src/rust/vendor/allocator-api2/README.md b/src/rust/vendor/allocator-api2/README.md new file mode 100644 index 000000000..bd8d26cc8 --- /dev/null +++ b/src/rust/vendor/allocator-api2/README.md @@ -0,0 +1,53 @@ +# allocator-api2 + +[![crates](https://img.shields.io/crates/v/allocator-api2.svg?style=for-the-badge&label=allocator-api2)](https://crates.io/crates/allocator-api2) +[![docs](https://img.shields.io/badge/docs.rs-allocator--api2-66c2a5?style=for-the-badge&labelColor=555555&logoColor=white)](https://docs.rs/allocator-api2) +[![actions](https://img.shields.io/github/actions/workflow/status/zakarumych/allocator-api2/badge.yml?branch=main&style=for-the-badge)](https://github.com/zakarumych/allocator-api2/actions/workflows/badge.yml) +[![MIT/Apache](https://img.shields.io/badge/license-MIT%2FApache-blue.svg?style=for-the-badge)](COPYING) +![loc](https://img.shields.io/tokei/lines/github/zakarumych/allocator-api2?style=for-the-badge) + +This crate mirrors types and traits from Rust's unstable [`allocator_api`] +The intention of this crate is to serve as substitution for actual thing +for libs when build on stable and beta channels. +The target users are library authors who implement allocators or collection types +that use allocators, or anyone else who wants using [`allocator_api`] + +The crate should be frequently updated with minor version bump. +When [`allocator_api`] is stable this crate will get version `1.0` and simply +re-export from `core`, `alloc` and `std`. + +The code is mostly verbatim copy from rust repository. +Mostly attributes are removed. + +## Usage + +This paragraph describes how to use this crate correctly to ensure +compatibility and interoperability on both stable and nightly channels. + +If you are writing a library that interacts with allocators API, you can +add this crate as a dependency and use the types and traits from this +crate instead of the ones in `core` or `alloc`. +This will allow your library to compile on stable and beta channels. + +Your library *MAY* provide a feature that will enable "allocator-api2/nightly". +When this feature is enabled, your library *MUST* enable +unstable `#![feature(allocator_api)]` or it may not compile. +If feature is not provided, your library may not be compatible with the +rest of the users and cause compilation errors on nightly channel +when some other crate enables "allocator-api2/nightly" feature. + +## License + +Licensed under either of + +* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) +* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) + +at your option. + +## Contributions + +Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. + + +[`allocator_api`]: https://doc.rust-lang.org/unstable-book/library-features/allocator-api.html diff --git a/src/rust/vendor/allocator-api2/src/lib.rs b/src/rust/vendor/allocator-api2/src/lib.rs new file mode 100644 index 000000000..1c3d2bd06 --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/lib.rs @@ -0,0 +1,19 @@ +//! +//! allocator-api2 crate. +//! +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg(feature = "alloc")] +extern crate alloc as alloc_crate; + +#[cfg(not(feature = "nightly"))] +mod stable; + +#[cfg(feature = "nightly")] +mod nightly; + +#[cfg(not(feature = "nightly"))] +pub use self::stable::*; + +#[cfg(feature = "nightly")] +pub use self::nightly::*; diff --git a/src/rust/vendor/allocator-api2/src/nightly.rs b/src/rust/vendor/allocator-api2/src/nightly.rs new file mode 100644 index 000000000..683d062ce --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/nightly.rs @@ -0,0 +1,5 @@ +#[cfg(not(feature = "alloc"))] +pub use core::alloc; + +#[cfg(feature = "alloc")] +pub use alloc_crate::{alloc, boxed, vec}; diff --git a/src/rust/vendor/allocator-api2/src/stable/alloc/global.rs b/src/rust/vendor/allocator-api2/src/stable/alloc/global.rs new file mode 100644 index 000000000..161f3c2c3 --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/alloc/global.rs @@ -0,0 +1,187 @@ +use core::ptr::NonNull; + +use alloc_crate::alloc::{alloc, alloc_zeroed, dealloc, realloc}; + +use crate::stable::{assume, invalid_mut}; + +use super::{AllocError, Allocator, Layout}; + +/// The global memory allocator. +/// +/// This type implements the [`Allocator`] trait by forwarding calls +/// to the allocator registered with the `#[global_allocator]` attribute +/// if there is one, or the `std` crate’s default. +/// +/// Note: while this type is unstable, the functionality it provides can be +/// accessed through the [free functions in `alloc`](crate#functions). +#[derive(Copy, Clone, Default, Debug)] +pub struct Global; + +impl Global { + #[inline(always)] + fn alloc_impl(&self, layout: Layout, zeroed: bool) -> Result, AllocError> { + match layout.size() { + 0 => Ok(unsafe { + NonNull::new_unchecked(core::ptr::slice_from_raw_parts_mut( + invalid_mut(layout.align()), + 0, + )) + }), + // SAFETY: `layout` is non-zero in size, + size => unsafe { + let raw_ptr = if zeroed { + alloc_zeroed(layout) + } else { + alloc(layout) + }; + let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?; + Ok(NonNull::new_unchecked(core::ptr::slice_from_raw_parts_mut( + ptr.as_ptr(), + size, + ))) + }, + } + } + + // SAFETY: Same as `Allocator::grow` + #[inline(always)] + unsafe fn grow_impl( + &self, + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + zeroed: bool, + ) -> Result, AllocError> { + debug_assert!( + new_layout.size() >= old_layout.size(), + "`new_layout.size()` must be greater than or equal to `old_layout.size()`" + ); + + match old_layout.size() { + 0 => self.alloc_impl(new_layout, zeroed), + + // SAFETY: `new_size` is non-zero as `old_size` is greater than or equal to `new_size` + // as required by safety conditions. Other conditions must be upheld by the caller + old_size if old_layout.align() == new_layout.align() => unsafe { + let new_size = new_layout.size(); + + // `realloc` probably checks for `new_size >= old_layout.size()` or something similar. + assume(new_size >= old_layout.size()); + + let raw_ptr = realloc(ptr.as_ptr(), old_layout, new_size); + let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?; + if zeroed { + raw_ptr.add(old_size).write_bytes(0, new_size - old_size); + } + Ok(NonNull::new_unchecked(core::ptr::slice_from_raw_parts_mut( + ptr.as_ptr(), + new_size, + ))) + }, + + // SAFETY: because `new_layout.size()` must be greater than or equal to `old_size`, + // both the old and new memory allocation are valid for reads and writes for `old_size` + // bytes. Also, because the old allocation wasn't yet deallocated, it cannot overlap + // `new_ptr`. Thus, the call to `copy_nonoverlapping` is safe. The safety contract + // for `dealloc` must be upheld by the caller. + old_size => unsafe { + let new_ptr = self.alloc_impl(new_layout, zeroed)?; + core::ptr::copy_nonoverlapping(ptr.as_ptr(), new_ptr.as_ptr().cast(), old_size); + self.deallocate(ptr, old_layout); + Ok(new_ptr) + }, + } + } +} + +unsafe impl Allocator for Global { + #[inline(always)] + fn allocate(&self, layout: Layout) -> Result, AllocError> { + self.alloc_impl(layout, false) + } + + #[inline(always)] + fn allocate_zeroed(&self, layout: Layout) -> Result, AllocError> { + self.alloc_impl(layout, true) + } + + #[inline(always)] + unsafe fn deallocate(&self, ptr: NonNull, layout: Layout) { + if layout.size() != 0 { + // SAFETY: `layout` is non-zero in size, + // other conditions must be upheld by the caller + unsafe { dealloc(ptr.as_ptr(), layout) } + } + } + + #[inline(always)] + unsafe fn grow( + &self, + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + ) -> Result, AllocError> { + // SAFETY: all conditions must be upheld by the caller + unsafe { self.grow_impl(ptr, old_layout, new_layout, false) } + } + + #[inline(always)] + unsafe fn grow_zeroed( + &self, + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + ) -> Result, AllocError> { + // SAFETY: all conditions must be upheld by the caller + unsafe { self.grow_impl(ptr, old_layout, new_layout, true) } + } + + #[inline(always)] + unsafe fn shrink( + &self, + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + ) -> Result, AllocError> { + debug_assert!( + new_layout.size() <= old_layout.size(), + "`new_layout.size()` must be smaller than or equal to `old_layout.size()`" + ); + + match new_layout.size() { + // SAFETY: conditions must be upheld by the caller + 0 => unsafe { + self.deallocate(ptr, old_layout); + Ok(NonNull::new_unchecked(core::ptr::slice_from_raw_parts_mut( + invalid_mut(new_layout.align()), + 0, + ))) + }, + + // SAFETY: `new_size` is non-zero. Other conditions must be upheld by the caller + new_size if old_layout.align() == new_layout.align() => unsafe { + // `realloc` probably checks for `new_size <= old_layout.size()` or something similar. + assume(new_size <= old_layout.size()); + + let raw_ptr = realloc(ptr.as_ptr(), old_layout, new_size); + let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?; + Ok(NonNull::new_unchecked(core::ptr::slice_from_raw_parts_mut( + ptr.as_ptr(), + new_size, + ))) + }, + + // SAFETY: because `new_size` must be smaller than or equal to `old_layout.size()`, + // both the old and new memory allocation are valid for reads and writes for `new_size` + // bytes. Also, because the old allocation wasn't yet deallocated, it cannot overlap + // `new_ptr`. Thus, the call to `copy_nonoverlapping` is safe. The safety contract + // for `dealloc` must be upheld by the caller. + new_size => unsafe { + let new_ptr = self.allocate(new_layout)?; + core::ptr::copy_nonoverlapping(ptr.as_ptr(), new_ptr.as_ptr().cast(), new_size); + self.deallocate(ptr, old_layout); + Ok(new_ptr) + }, + } + } +} diff --git a/src/rust/vendor/allocator-api2/src/stable/alloc/mod.rs b/src/rust/vendor/allocator-api2/src/stable/alloc/mod.rs new file mode 100644 index 000000000..35b389b9a --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/alloc/mod.rs @@ -0,0 +1,416 @@ +//! Memory allocation APIs + +use core::{ + fmt, + ptr::{self, NonNull}, +}; + +#[cfg(feature = "alloc")] +mod global; + +#[cfg(feature = "std")] +mod system; + +pub use core::alloc::{GlobalAlloc, Layout, LayoutError}; + +#[cfg(feature = "alloc")] +pub use self::global::Global; + +#[cfg(feature = "std")] +pub use self::system::System; + +#[cfg(feature = "alloc")] +pub use alloc_crate::alloc::{alloc, alloc_zeroed, dealloc, realloc}; + +#[cfg(all(feature = "alloc", not(no_global_oom_handling)))] +pub use alloc_crate::alloc::handle_alloc_error; + +/// The `AllocError` error indicates an allocation failure +/// that may be due to resource exhaustion or to +/// something wrong when combining the given input arguments with this +/// allocator. +#[derive(Copy, Clone, PartialEq, Eq, Debug)] +pub struct AllocError; + +#[cfg(feature = "std")] +impl std::error::Error for AllocError {} + +// (we need this for downstream impl of trait Error) +impl fmt::Display for AllocError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.write_str("memory allocation failed") + } +} + +/// An implementation of `Allocator` can allocate, grow, shrink, and deallocate arbitrary blocks of +/// data described via [`Layout`][]. +/// +/// `Allocator` is designed to be implemented on ZSTs, references, or smart pointers because having +/// an allocator like `MyAlloc([u8; N])` cannot be moved, without updating the pointers to the +/// allocated memory. +/// +/// Unlike [`GlobalAlloc`][], zero-sized allocations are allowed in `Allocator`. If an underlying +/// allocator does not support this (like jemalloc) or return a null pointer (such as +/// `libc::malloc`), this must be caught by the implementation. +/// +/// ### Currently allocated memory +/// +/// Some of the methods require that a memory block be *currently allocated* via an allocator. This +/// means that: +/// +/// * the starting address for that memory block was previously returned by [`allocate`], [`grow`], or +/// [`shrink`], and +/// +/// * the memory block has not been subsequently deallocated, where blocks are either deallocated +/// directly by being passed to [`deallocate`] or were changed by being passed to [`grow`] or +/// [`shrink`] that returns `Ok`. If `grow` or `shrink` have returned `Err`, the passed pointer +/// remains valid. +/// +/// [`allocate`]: Allocator::allocate +/// [`grow`]: Allocator::grow +/// [`shrink`]: Allocator::shrink +/// [`deallocate`]: Allocator::deallocate +/// +/// ### Memory fitting +/// +/// Some of the methods require that a layout *fit* a memory block. What it means for a layout to +/// "fit" a memory block means (or equivalently, for a memory block to "fit" a layout) is that the +/// following conditions must hold: +/// +/// * The block must be allocated with the same alignment as [`layout.align()`], and +/// +/// * The provided [`layout.size()`] must fall in the range `min ..= max`, where: +/// - `min` is the size of the layout most recently used to allocate the block, and +/// - `max` is the latest actual size returned from [`allocate`], [`grow`], or [`shrink`]. +/// +/// [`layout.align()`]: Layout::align +/// [`layout.size()`]: Layout::size +/// +/// # Safety +/// +/// * Memory blocks returned from an allocator must point to valid memory and retain their validity +/// until the instance and all of its clones are dropped, +/// +/// * cloning or moving the allocator must not invalidate memory blocks returned from this +/// allocator. A cloned allocator must behave like the same allocator, and +/// +/// * any pointer to a memory block which is [*currently allocated*] may be passed to any other +/// method of the allocator. +/// +/// [*currently allocated*]: #currently-allocated-memory +pub unsafe trait Allocator { + /// Attempts to allocate a block of memory. + /// + /// On success, returns a [`NonNull<[u8]>`][NonNull] meeting the size and alignment guarantees of `layout`. + /// + /// The returned block may have a larger size than specified by `layout.size()`, and may or may + /// not have its contents initialized. + /// + /// # Errors + /// + /// Returning `Err` indicates that either memory is exhausted or `layout` does not meet + /// allocator's size or alignment constraints. + /// + /// Implementations are encouraged to return `Err` on memory exhaustion rather than panicking or + /// aborting, but this is not a strict requirement. (Specifically: it is *legal* to implement + /// this trait atop an underlying native allocation library that aborts on memory exhaustion.) + /// + /// Clients wishing to abort computation in response to an allocation error are encouraged to + /// call the [`handle_alloc_error`] function, rather than directly invoking `panic!` or similar. + /// + /// [`handle_alloc_error`]: ../../alloc/alloc/fn.handle_alloc_error.html + fn allocate(&self, layout: Layout) -> Result, AllocError>; + + /// Behaves like `allocate`, but also ensures that the returned memory is zero-initialized. + /// + /// # Errors + /// + /// Returning `Err` indicates that either memory is exhausted or `layout` does not meet + /// allocator's size or alignment constraints. + /// + /// Implementations are encouraged to return `Err` on memory exhaustion rather than panicking or + /// aborting, but this is not a strict requirement. (Specifically: it is *legal* to implement + /// this trait atop an underlying native allocation library that aborts on memory exhaustion.) + /// + /// Clients wishing to abort computation in response to an allocation error are encouraged to + /// call the [`handle_alloc_error`] function, rather than directly invoking `panic!` or similar. + /// + /// [`handle_alloc_error`]: ../../alloc/alloc/fn.handle_alloc_error.html + #[inline(always)] + fn allocate_zeroed(&self, layout: Layout) -> Result, AllocError> { + let ptr = self.allocate(layout)?; + // SAFETY: `alloc` returns a valid memory block + unsafe { ptr.cast::().as_ptr().write_bytes(0, ptr.len()) } + Ok(ptr) + } + + /// Deallocates the memory referenced by `ptr`. + /// + /// # Safety + /// + /// * `ptr` must denote a block of memory [*currently allocated*] via this allocator, and + /// * `layout` must [*fit*] that block of memory. + /// + /// [*currently allocated*]: #currently-allocated-memory + /// [*fit*]: #memory-fitting + unsafe fn deallocate(&self, ptr: NonNull, layout: Layout); + + /// Attempts to extend the memory block. + /// + /// Returns a new [`NonNull<[u8]>`][NonNull] containing a pointer and the actual size of the allocated + /// memory. The pointer is suitable for holding data described by `new_layout`. To accomplish + /// this, the allocator may extend the allocation referenced by `ptr` to fit the new layout. + /// + /// If this returns `Ok`, then ownership of the memory block referenced by `ptr` has been + /// transferred to this allocator. Any access to the old `ptr` is Undefined Behavior, even if the + /// allocation was grown in-place. The newly returned pointer is the only valid pointer + /// for accessing this memory now. + /// + /// If this method returns `Err`, then ownership of the memory block has not been transferred to + /// this allocator, and the contents of the memory block are unaltered. + /// + /// # Safety + /// + /// * `ptr` must denote a block of memory [*currently allocated*] via this allocator. + /// * `old_layout` must [*fit*] that block of memory (The `new_layout` argument need not fit it.). + /// * `new_layout.size()` must be greater than or equal to `old_layout.size()`. + /// + /// Note that `new_layout.align()` need not be the same as `old_layout.align()`. + /// + /// [*currently allocated*]: #currently-allocated-memory + /// [*fit*]: #memory-fitting + /// + /// # Errors + /// + /// Returns `Err` if the new layout does not meet the allocator's size and alignment + /// constraints of the allocator, or if growing otherwise fails. + /// + /// Implementations are encouraged to return `Err` on memory exhaustion rather than panicking or + /// aborting, but this is not a strict requirement. (Specifically: it is *legal* to implement + /// this trait atop an underlying native allocation library that aborts on memory exhaustion.) + /// + /// Clients wishing to abort computation in response to an allocation error are encouraged to + /// call the [`handle_alloc_error`] function, rather than directly invoking `panic!` or similar. + /// + /// [`handle_alloc_error`]: ../../alloc/alloc/fn.handle_alloc_error.html + #[inline(always)] + unsafe fn grow( + &self, + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + ) -> Result, AllocError> { + debug_assert!( + new_layout.size() >= old_layout.size(), + "`new_layout.size()` must be greater than or equal to `old_layout.size()`" + ); + + let new_ptr = self.allocate(new_layout)?; + + // SAFETY: because `new_layout.size()` must be greater than or equal to + // `old_layout.size()`, both the old and new memory allocation are valid for reads and + // writes for `old_layout.size()` bytes. Also, because the old allocation wasn't yet + // deallocated, it cannot overlap `new_ptr`. Thus, the call to `copy_nonoverlapping` is + // safe. The safety contract for `dealloc` must be upheld by the caller. + unsafe { + ptr::copy_nonoverlapping(ptr.as_ptr(), new_ptr.as_ptr().cast(), old_layout.size()); + self.deallocate(ptr, old_layout); + } + + Ok(new_ptr) + } + + /// Behaves like `grow`, but also ensures that the new contents are set to zero before being + /// returned. + /// + /// The memory block will contain the following contents after a successful call to + /// `grow_zeroed`: + /// * Bytes `0..old_layout.size()` are preserved from the original allocation. + /// * Bytes `old_layout.size()..old_size` will either be preserved or zeroed, depending on + /// the allocator implementation. `old_size` refers to the size of the memory block prior + /// to the `grow_zeroed` call, which may be larger than the size that was originally + /// requested when it was allocated. + /// * Bytes `old_size..new_size` are zeroed. `new_size` refers to the size of the memory + /// block returned by the `grow_zeroed` call. + /// + /// # Safety + /// + /// * `ptr` must denote a block of memory [*currently allocated*] via this allocator. + /// * `old_layout` must [*fit*] that block of memory (The `new_layout` argument need not fit it.). + /// * `new_layout.size()` must be greater than or equal to `old_layout.size()`. + /// + /// Note that `new_layout.align()` need not be the same as `old_layout.align()`. + /// + /// [*currently allocated*]: #currently-allocated-memory + /// [*fit*]: #memory-fitting + /// + /// # Errors + /// + /// Returns `Err` if the new layout does not meet the allocator's size and alignment + /// constraints of the allocator, or if growing otherwise fails. + /// + /// Implementations are encouraged to return `Err` on memory exhaustion rather than panicking or + /// aborting, but this is not a strict requirement. (Specifically: it is *legal* to implement + /// this trait atop an underlying native allocation library that aborts on memory exhaustion.) + /// + /// Clients wishing to abort computation in response to an allocation error are encouraged to + /// call the [`handle_alloc_error`] function, rather than directly invoking `panic!` or similar. + /// + /// [`handle_alloc_error`]: ../../alloc/alloc/fn.handle_alloc_error.html + #[inline(always)] + unsafe fn grow_zeroed( + &self, + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + ) -> Result, AllocError> { + debug_assert!( + new_layout.size() >= old_layout.size(), + "`new_layout.size()` must be greater than or equal to `old_layout.size()`" + ); + + let new_ptr = self.allocate_zeroed(new_layout)?; + + // SAFETY: because `new_layout.size()` must be greater than or equal to + // `old_layout.size()`, both the old and new memory allocation are valid for reads and + // writes for `old_layout.size()` bytes. Also, because the old allocation wasn't yet + // deallocated, it cannot overlap `new_ptr`. Thus, the call to `copy_nonoverlapping` is + // safe. The safety contract for `dealloc` must be upheld by the caller. + unsafe { + ptr::copy_nonoverlapping(ptr.as_ptr(), new_ptr.as_ptr().cast(), old_layout.size()); + self.deallocate(ptr, old_layout); + } + + Ok(new_ptr) + } + + /// Attempts to shrink the memory block. + /// + /// Returns a new [`NonNull<[u8]>`][NonNull] containing a pointer and the actual size of the allocated + /// memory. The pointer is suitable for holding data described by `new_layout`. To accomplish + /// this, the allocator may shrink the allocation referenced by `ptr` to fit the new layout. + /// + /// If this returns `Ok`, then ownership of the memory block referenced by `ptr` has been + /// transferred to this allocator. Any access to the old `ptr` is Undefined Behavior, even if the + /// allocation was shrunk in-place. The newly returned pointer is the only valid pointer + /// for accessing this memory now. + /// + /// If this method returns `Err`, then ownership of the memory block has not been transferred to + /// this allocator, and the contents of the memory block are unaltered. + /// + /// # Safety + /// + /// * `ptr` must denote a block of memory [*currently allocated*] via this allocator. + /// * `old_layout` must [*fit*] that block of memory (The `new_layout` argument need not fit it.). + /// * `new_layout.size()` must be smaller than or equal to `old_layout.size()`. + /// + /// Note that `new_layout.align()` need not be the same as `old_layout.align()`. + /// + /// [*currently allocated*]: #currently-allocated-memory + /// [*fit*]: #memory-fitting + /// + /// # Errors + /// + /// Returns `Err` if the new layout does not meet the allocator's size and alignment + /// constraints of the allocator, or if shrinking otherwise fails. + /// + /// Implementations are encouraged to return `Err` on memory exhaustion rather than panicking or + /// aborting, but this is not a strict requirement. (Specifically: it is *legal* to implement + /// this trait atop an underlying native allocation library that aborts on memory exhaustion.) + /// + /// Clients wishing to abort computation in response to an allocation error are encouraged to + /// call the [`handle_alloc_error`] function, rather than directly invoking `panic!` or similar. + /// + /// [`handle_alloc_error`]: ../../alloc/alloc/fn.handle_alloc_error.html + #[inline(always)] + unsafe fn shrink( + &self, + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + ) -> Result, AllocError> { + debug_assert!( + new_layout.size() <= old_layout.size(), + "`new_layout.size()` must be smaller than or equal to `old_layout.size()`" + ); + + let new_ptr = self.allocate(new_layout)?; + + // SAFETY: because `new_layout.size()` must be lower than or equal to + // `old_layout.size()`, both the old and new memory allocation are valid for reads and + // writes for `new_layout.size()` bytes. Also, because the old allocation wasn't yet + // deallocated, it cannot overlap `new_ptr`. Thus, the call to `copy_nonoverlapping` is + // safe. The safety contract for `dealloc` must be upheld by the caller. + unsafe { + ptr::copy_nonoverlapping(ptr.as_ptr(), new_ptr.as_ptr().cast(), new_layout.size()); + self.deallocate(ptr, old_layout); + } + + Ok(new_ptr) + } + + /// Creates a "by reference" adapter for this instance of `Allocator`. + /// + /// The returned adapter also implements `Allocator` and will simply borrow this. + #[inline(always)] + fn by_ref(&self) -> &Self + where + Self: Sized, + { + self + } +} + +unsafe impl Allocator for &A +where + A: Allocator + ?Sized, +{ + #[inline(always)] + fn allocate(&self, layout: Layout) -> Result, AllocError> { + (**self).allocate(layout) + } + + #[inline(always)] + fn allocate_zeroed(&self, layout: Layout) -> Result, AllocError> { + (**self).allocate_zeroed(layout) + } + + #[inline(always)] + unsafe fn deallocate(&self, ptr: NonNull, layout: Layout) { + // SAFETY: the safety contract must be upheld by the caller + unsafe { (**self).deallocate(ptr, layout) } + } + + #[inline(always)] + unsafe fn grow( + &self, + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + ) -> Result, AllocError> { + // SAFETY: the safety contract must be upheld by the caller + unsafe { (**self).grow(ptr, old_layout, new_layout) } + } + + #[inline(always)] + unsafe fn grow_zeroed( + &self, + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + ) -> Result, AllocError> { + // SAFETY: the safety contract must be upheld by the caller + unsafe { (**self).grow_zeroed(ptr, old_layout, new_layout) } + } + + #[inline(always)] + unsafe fn shrink( + &self, + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + ) -> Result, AllocError> { + // SAFETY: the safety contract must be upheld by the caller + unsafe { (**self).shrink(ptr, old_layout, new_layout) } + } +} diff --git a/src/rust/vendor/allocator-api2/src/stable/alloc/system.rs b/src/rust/vendor/allocator-api2/src/stable/alloc/system.rs new file mode 100644 index 000000000..3a0fe4c85 --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/alloc/system.rs @@ -0,0 +1,172 @@ +use core::ptr::NonNull; +pub use std::alloc::System; + +use crate::stable::{assume, invalid_mut}; + +use super::{AllocError, Allocator, GlobalAlloc as _, Layout}; + +unsafe impl Allocator for System { + #[inline(always)] + fn allocate(&self, layout: Layout) -> Result, AllocError> { + alloc_impl(layout, false) + } + + #[inline(always)] + fn allocate_zeroed(&self, layout: Layout) -> Result, AllocError> { + alloc_impl(layout, true) + } + + #[inline(always)] + unsafe fn deallocate(&self, ptr: NonNull, layout: Layout) { + if layout.size() != 0 { + // SAFETY: `layout` is non-zero in size, + // other conditions must be upheld by the caller + unsafe { System.dealloc(ptr.as_ptr(), layout) } + } + } + + #[inline(always)] + unsafe fn grow( + &self, + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + ) -> Result, AllocError> { + // SAFETY: all conditions must be upheld by the caller + unsafe { grow_impl(ptr, old_layout, new_layout, false) } + } + + #[inline(always)] + unsafe fn grow_zeroed( + &self, + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + ) -> Result, AllocError> { + // SAFETY: all conditions must be upheld by the caller + unsafe { grow_impl(ptr, old_layout, new_layout, true) } + } + + #[inline(always)] + unsafe fn shrink( + &self, + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + ) -> Result, AllocError> { + debug_assert!( + new_layout.size() <= old_layout.size(), + "`new_layout.size()` must be smaller than or equal to `old_layout.size()`" + ); + + match new_layout.size() { + // SAFETY: conditions must be upheld by the caller + 0 => unsafe { + self.deallocate(ptr, old_layout); + Ok(NonNull::new_unchecked(core::ptr::slice_from_raw_parts_mut( + invalid_mut(new_layout.align()), + 0, + ))) + }, + + // SAFETY: `new_size` is non-zero. Other conditions must be upheld by the caller + new_size if old_layout.align() == new_layout.align() => unsafe { + // `realloc` probably checks for `new_size <= old_layout.size()` or something similar. + assume(new_size <= old_layout.size()); + + let raw_ptr = System.realloc(ptr.as_ptr(), old_layout, new_size); + let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?; + Ok(NonNull::new_unchecked(core::ptr::slice_from_raw_parts_mut( + ptr.as_ptr(), + new_size, + ))) + }, + + // SAFETY: because `new_size` must be smaller than or equal to `old_layout.size()`, + // both the old and new memory allocation are valid for reads and writes for `new_size` + // bytes. Also, because the old allocation wasn't yet deallocated, it cannot overlap + // `new_ptr`. Thus, the call to `copy_nonoverlapping` is safe. The safety contract + // for `dealloc` must be upheld by the caller. + new_size => unsafe { + let new_ptr = self.allocate(new_layout)?; + core::ptr::copy_nonoverlapping(ptr.as_ptr(), new_ptr.as_ptr().cast(), new_size); + self.deallocate(ptr, old_layout); + Ok(new_ptr) + }, + } + } +} + +#[inline(always)] +fn alloc_impl(layout: Layout, zeroed: bool) -> Result, AllocError> { + match layout.size() { + 0 => Ok(unsafe { + NonNull::new_unchecked(core::ptr::slice_from_raw_parts_mut( + invalid_mut(layout.align()), + 0, + )) + }), + // SAFETY: `layout` is non-zero in size, + size => unsafe { + let raw_ptr = if zeroed { + System.alloc_zeroed(layout) + } else { + System.alloc(layout) + }; + let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?; + Ok(NonNull::new_unchecked(core::ptr::slice_from_raw_parts_mut( + ptr.as_ptr(), + size, + ))) + }, + } +} + +// SAFETY: Same as `Allocator::grow` +#[inline(always)] +unsafe fn grow_impl( + ptr: NonNull, + old_layout: Layout, + new_layout: Layout, + zeroed: bool, +) -> Result, AllocError> { + debug_assert!( + new_layout.size() >= old_layout.size(), + "`new_layout.size()` must be greater than or equal to `old_layout.size()`" + ); + + match old_layout.size() { + 0 => alloc_impl(new_layout, zeroed), + + // SAFETY: `new_size` is non-zero as `old_size` is greater than or equal to `new_size` + // as required by safety conditions. Other conditions must be upheld by the caller + old_size if old_layout.align() == new_layout.align() => unsafe { + let new_size = new_layout.size(); + + // `realloc` probably checks for `new_size >= old_layout.size()` or something similar. + assume(new_size >= old_layout.size()); + + let raw_ptr = System.realloc(ptr.as_ptr(), old_layout, new_size); + let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?; + if zeroed { + raw_ptr.add(old_size).write_bytes(0, new_size - old_size); + } + Ok(NonNull::new_unchecked(core::ptr::slice_from_raw_parts_mut( + ptr.as_ptr(), + new_size, + ))) + }, + + // SAFETY: because `new_layout.size()` must be greater than or equal to `old_size`, + // both the old and new memory allocation are valid for reads and writes for `old_size` + // bytes. Also, because the old allocation wasn't yet deallocated, it cannot overlap + // `new_ptr`. Thus, the call to `copy_nonoverlapping` is safe. The safety contract + // for `dealloc` must be upheld by the caller. + old_size => unsafe { + let new_ptr = alloc_impl(new_layout, zeroed)?; + core::ptr::copy_nonoverlapping(ptr.as_ptr(), new_ptr.as_ptr().cast(), old_size); + System.deallocate(ptr, old_layout); + Ok(new_ptr) + }, + } +} diff --git a/src/rust/vendor/allocator-api2/src/stable/boxed.rs b/src/rust/vendor/allocator-api2/src/stable/boxed.rs new file mode 100644 index 000000000..34a020cd8 --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/boxed.rs @@ -0,0 +1,2155 @@ +//! The `Box` type for heap allocation. +//! +//! [`Box`], casually referred to as a 'box', provides the simplest form of +//! heap allocation in Rust. Boxes provide ownership for this allocation, and +//! drop their contents when they go out of scope. Boxes also ensure that they +//! never allocate more than `isize::MAX` bytes. +//! +//! # Examples +//! +//! Move a value from the stack to the heap by creating a [`Box`]: +//! +//! ``` +//! let val: u8 = 5; +//! let boxed: Box = Box::new(val); +//! ``` +//! +//! Move a value from a [`Box`] back to the stack by [dereferencing]: +//! +//! ``` +//! let boxed: Box = Box::new(5); +//! let val: u8 = *boxed; +//! ``` +//! +//! Creating a recursive data structure: +//! +//! ``` +//! #[derive(Debug)] +//! enum List { +//! Cons(T, Box>), +//! Nil, +//! } +//! +//! let list: List = List::Cons(1, Box::new(List::Cons(2, Box::new(List::Nil)))); +//! println!("{list:?}"); +//! ``` +//! +//! This will print `Cons(1, Cons(2, Nil))`. +//! +//! Recursive structures must be boxed, because if the definition of `Cons` +//! looked like this: +//! +//! ```compile_fail,E0072 +//! # enum List { +//! Cons(T, List), +//! # } +//! ``` +//! +//! It wouldn't work. This is because the size of a `List` depends on how many +//! elements are in the list, and so we don't know how much memory to allocate +//! for a `Cons`. By introducing a [`Box`], which has a defined size, we know how +//! big `Cons` needs to be. +//! +//! # Memory layout +//! +//! For non-zero-sized values, a [`Box`] will use the [`Global`] allocator for +//! its allocation. It is valid to convert both ways between a [`Box`] and a +//! raw pointer allocated with the [`Global`] allocator, given that the +//! [`Layout`] used with the allocator is correct for the type. More precisely, +//! a `value: *mut T` that has been allocated with the [`Global`] allocator +//! with `Layout::for_value(&*value)` may be converted into a box using +//! [`Box::::from_raw(value)`]. Conversely, the memory backing a `value: *mut +//! T` obtained from [`Box::::into_raw`] may be deallocated using the +//! [`Global`] allocator with [`Layout::for_value(&*value)`]. +//! +//! For zero-sized values, the `Box` pointer still has to be [valid] for reads +//! and writes and sufficiently aligned. In particular, casting any aligned +//! non-zero integer literal to a raw pointer produces a valid pointer, but a +//! pointer pointing into previously allocated memory that since got freed is +//! not valid. The recommended way to build a Box to a ZST if `Box::new` cannot +//! be used is to use [`ptr::NonNull::dangling`]. +//! +//! So long as `T: Sized`, a `Box` is guaranteed to be represented +//! as a single pointer and is also ABI-compatible with C pointers +//! (i.e. the C type `T*`). This means that if you have extern "C" +//! Rust functions that will be called from C, you can define those +//! Rust functions using `Box` types, and use `T*` as corresponding +//! type on the C side. As an example, consider this C header which +//! declares functions that create and destroy some kind of `Foo` +//! value: +//! +//! ```c +//! /* C header */ +//! +//! /* Returns ownership to the caller */ +//! struct Foo* foo_new(void); +//! +//! /* Takes ownership from the caller; no-op when invoked with null */ +//! void foo_delete(struct Foo*); +//! ``` +//! +//! These two functions might be implemented in Rust as follows. Here, the +//! `struct Foo*` type from C is translated to `Box`, which captures +//! the ownership constraints. Note also that the nullable argument to +//! `foo_delete` is represented in Rust as `Option>`, since `Box` +//! cannot be null. +//! +//! ``` +//! #[repr(C)] +//! pub struct Foo; +//! +//! #[no_mangle] +//! pub extern "C" fn foo_new() -> Box { +//! Box::new(Foo) +//! } +//! +//! #[no_mangle] +//! pub extern "C" fn foo_delete(_: Option>) {} +//! ``` +//! +//! Even though `Box` has the same representation and C ABI as a C pointer, +//! this does not mean that you can convert an arbitrary `T*` into a `Box` +//! and expect things to work. `Box` values will always be fully aligned, +//! non-null pointers. Moreover, the destructor for `Box` will attempt to +//! free the value with the global allocator. In general, the best practice +//! is to only use `Box` for pointers that originated from the global +//! allocator. +//! +//! **Important.** At least at present, you should avoid using +//! `Box` types for functions that are defined in C but invoked +//! from Rust. In those cases, you should directly mirror the C types +//! as closely as possible. Using types like `Box` where the C +//! definition is just using `T*` can lead to undefined behavior, as +//! described in [rust-lang/unsafe-code-guidelines#198][ucg#198]. +//! +//! # Considerations for unsafe code +//! +//! **Warning: This section is not normative and is subject to change, possibly +//! being relaxed in the future! It is a simplified summary of the rules +//! currently implemented in the compiler.** +//! +//! The aliasing rules for `Box` are the same as for `&mut T`. `Box` +//! asserts uniqueness over its content. Using raw pointers derived from a box +//! after that box has been mutated through, moved or borrowed as `&mut T` +//! is not allowed. For more guidance on working with box from unsafe code, see +//! [rust-lang/unsafe-code-guidelines#326][ucg#326]. +//! +//! +//! [ucg#198]: https://github.com/rust-lang/unsafe-code-guidelines/issues/198 +//! [ucg#326]: https://github.com/rust-lang/unsafe-code-guidelines/issues/326 +//! [dereferencing]: core::ops::Deref +//! [`Box::::from_raw(value)`]: Box::from_raw +//! [`Global`]: crate::alloc::Global +//! [`Layout`]: crate::alloc::Layout +//! [`Layout::for_value(&*value)`]: crate::alloc::Layout::for_value +//! [valid]: ptr#safety + +use core::any::Any; +use core::borrow; +use core::cmp::Ordering; +use core::convert::{From, TryFrom}; + +// use core::error::Error; +use core::fmt; +use core::future::Future; +use core::hash::{Hash, Hasher}; +#[cfg(not(no_global_oom_handling))] +use core::iter::FromIterator; +use core::iter::{FusedIterator, Iterator}; +use core::marker::Unpin; +use core::mem; +use core::ops::{Deref, DerefMut}; +use core::pin::Pin; +use core::ptr::{self, NonNull}; +use core::task::{Context, Poll}; + +use super::alloc::{AllocError, Allocator, Global, Layout}; +use super::raw_vec::RawVec; +#[cfg(not(no_global_oom_handling))] +use super::vec::Vec; +#[cfg(not(no_global_oom_handling))] +use alloc_crate::alloc::handle_alloc_error; + +/// A pointer type for heap allocation. +/// +/// See the [module-level documentation](../../std/boxed/index.html) for more. +pub struct Box(NonNull, A); + +// Safety: Box owns both T and A, so sending is safe if +// sending is safe for T and A. +unsafe impl Send for Box +where + T: Send, + A: Send, +{ +} + +// Safety: Box owns both T and A, so sharing is safe if +// sharing is safe for T and A. +unsafe impl Sync for Box +where + T: Sync, + A: Sync, +{ +} + +impl Box { + /// Allocates memory on the heap and then places `x` into it. + /// + /// This doesn't actually allocate if `T` is zero-sized. + /// + /// # Examples + /// + /// ``` + /// let five = Box::new(5); + /// ``` + #[cfg(all(not(no_global_oom_handling)))] + #[inline(always)] + #[must_use] + pub fn new(x: T) -> Self { + Self::new_in(x, Global) + } + + /// Constructs a new box with uninitialized contents. + /// + /// # Examples + /// + /// ``` + /// #![feature(new_uninit)] + /// + /// let mut five = Box::::new_uninit(); + /// + /// let five = unsafe { + /// // Deferred initialization: + /// five.as_mut_ptr().write(5); + /// + /// five.assume_init() + /// }; + /// + /// assert_eq!(*five, 5) + /// ``` + #[cfg(not(no_global_oom_handling))] + #[must_use] + #[inline(always)] + pub fn new_uninit() -> Box> { + Self::new_uninit_in(Global) + } + + /// Constructs a new `Box` with uninitialized contents, with the memory + /// being filled with `0` bytes. + /// + /// See [`MaybeUninit::zeroed`][zeroed] for examples of correct and incorrect usage + /// of this method. + /// + /// # Examples + /// + /// ``` + /// #![feature(new_uninit)] + /// + /// let zero = Box::::new_zeroed(); + /// let zero = unsafe { zero.assume_init() }; + /// + /// assert_eq!(*zero, 0) + /// ``` + /// + /// [zeroed]: mem::MaybeUninit::zeroed + #[cfg(not(no_global_oom_handling))] + #[must_use] + #[inline(always)] + pub fn new_zeroed() -> Box> { + Self::new_zeroed_in(Global) + } + + /// Constructs a new `Pin>`. If `T` does not implement [`Unpin`], then + /// `x` will be pinned in memory and unable to be moved. + /// + /// Constructing and pinning of the `Box` can also be done in two steps: `Box::pin(x)` + /// does the same as [Box::into_pin]\([Box::new]\(x)). Consider using + /// [`into_pin`](Box::into_pin) if you already have a `Box`, or if you want to + /// construct a (pinned) `Box` in a different way than with [`Box::new`]. + #[cfg(not(no_global_oom_handling))] + #[must_use] + #[inline(always)] + pub fn pin(x: T) -> Pin> { + Box::new(x).into() + } + + /// Allocates memory on the heap then places `x` into it, + /// returning an error if the allocation fails + /// + /// This doesn't actually allocate if `T` is zero-sized. + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api)] + /// + /// let five = Box::try_new(5)?; + /// # Ok::<(), std::alloc::AllocError>(()) + /// ``` + #[inline(always)] + pub fn try_new(x: T) -> Result { + Self::try_new_in(x, Global) + } + + /// Constructs a new box with uninitialized contents on the heap, + /// returning an error if the allocation fails + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api, new_uninit)] + /// + /// let mut five = Box::::try_new_uninit()?; + /// + /// let five = unsafe { + /// // Deferred initialization: + /// five.as_mut_ptr().write(5); + /// + /// five.assume_init() + /// }; + /// + /// assert_eq!(*five, 5); + /// # Ok::<(), std::alloc::AllocError>(()) + /// ``` + #[inline(always)] + pub fn try_new_uninit() -> Result>, AllocError> { + Box::try_new_uninit_in(Global) + } + + /// Constructs a new `Box` with uninitialized contents, with the memory + /// being filled with `0` bytes on the heap + /// + /// See [`MaybeUninit::zeroed`][zeroed] for examples of correct and incorrect usage + /// of this method. + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api, new_uninit)] + /// + /// let zero = Box::::try_new_zeroed()?; + /// let zero = unsafe { zero.assume_init() }; + /// + /// assert_eq!(*zero, 0); + /// # Ok::<(), std::alloc::AllocError>(()) + /// ``` + /// + /// [zeroed]: mem::MaybeUninit::zeroed + #[inline(always)] + pub fn try_new_zeroed() -> Result>, AllocError> { + Box::try_new_zeroed_in(Global) + } +} + +impl Box { + /// Allocates memory in the given allocator then places `x` into it. + /// + /// This doesn't actually allocate if `T` is zero-sized. + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api)] + /// + /// use std::alloc::System; + /// + /// let five = Box::new_in(5, System); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[must_use] + #[inline(always)] + pub fn new_in(x: T, alloc: A) -> Self + where + A: Allocator, + { + let mut boxed = Self::new_uninit_in(alloc); + unsafe { + boxed.as_mut_ptr().write(x); + boxed.assume_init() + } + } + + /// Allocates memory in the given allocator then places `x` into it, + /// returning an error if the allocation fails + /// + /// This doesn't actually allocate if `T` is zero-sized. + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api)] + /// + /// use std::alloc::System; + /// + /// let five = Box::try_new_in(5, System)?; + /// # Ok::<(), std::alloc::AllocError>(()) + /// ``` + #[inline(always)] + pub fn try_new_in(x: T, alloc: A) -> Result + where + A: Allocator, + { + let mut boxed = Self::try_new_uninit_in(alloc)?; + unsafe { + boxed.as_mut_ptr().write(x); + Ok(boxed.assume_init()) + } + } + + /// Constructs a new box with uninitialized contents in the provided allocator. + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api, new_uninit)] + /// + /// use std::alloc::System; + /// + /// let mut five = Box::::new_uninit_in(System); + /// + /// let five = unsafe { + /// // Deferred initialization: + /// five.as_mut_ptr().write(5); + /// + /// five.assume_init() + /// }; + /// + /// assert_eq!(*five, 5) + /// ``` + #[cfg(not(no_global_oom_handling))] + #[must_use] + // #[unstable(feature = "new_uninit", issue = "63291")] + #[inline(always)] + pub fn new_uninit_in(alloc: A) -> Box, A> + where + A: Allocator, + { + let layout = Layout::new::>(); + // NOTE: Prefer match over unwrap_or_else since closure sometimes not inlineable. + // That would make code size bigger. + match Box::try_new_uninit_in(alloc) { + Ok(m) => m, + Err(_) => handle_alloc_error(layout), + } + } + + /// Constructs a new box with uninitialized contents in the provided allocator, + /// returning an error if the allocation fails + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api, new_uninit)] + /// + /// use std::alloc::System; + /// + /// let mut five = Box::::try_new_uninit_in(System)?; + /// + /// let five = unsafe { + /// // Deferred initialization: + /// five.as_mut_ptr().write(5); + /// + /// five.assume_init() + /// }; + /// + /// assert_eq!(*five, 5); + /// # Ok::<(), std::alloc::AllocError>(()) + /// ``` + #[inline(always)] + pub fn try_new_uninit_in(alloc: A) -> Result, A>, AllocError> + where + A: Allocator, + { + let layout = Layout::new::>(); + let ptr = alloc.allocate(layout)?.cast(); + unsafe { Ok(Box::from_raw_in(ptr.as_ptr(), alloc)) } + } + + /// Constructs a new `Box` with uninitialized contents, with the memory + /// being filled with `0` bytes in the provided allocator. + /// + /// See [`MaybeUninit::zeroed`][zeroed] for examples of correct and incorrect usage + /// of this method. + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api, new_uninit)] + /// + /// use std::alloc::System; + /// + /// let zero = Box::::new_zeroed_in(System); + /// let zero = unsafe { zero.assume_init() }; + /// + /// assert_eq!(*zero, 0) + /// ``` + /// + /// [zeroed]: mem::MaybeUninit::zeroed + #[cfg(not(no_global_oom_handling))] + // #[unstable(feature = "new_uninit", issue = "63291")] + #[must_use] + #[inline(always)] + pub fn new_zeroed_in(alloc: A) -> Box, A> + where + A: Allocator, + { + let layout = Layout::new::>(); + // NOTE: Prefer match over unwrap_or_else since closure sometimes not inlineable. + // That would make code size bigger. + match Box::try_new_zeroed_in(alloc) { + Ok(m) => m, + Err(_) => handle_alloc_error(layout), + } + } + + /// Constructs a new `Box` with uninitialized contents, with the memory + /// being filled with `0` bytes in the provided allocator, + /// returning an error if the allocation fails, + /// + /// See [`MaybeUninit::zeroed`][zeroed] for examples of correct and incorrect usage + /// of this method. + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api, new_uninit)] + /// + /// use std::alloc::System; + /// + /// let zero = Box::::try_new_zeroed_in(System)?; + /// let zero = unsafe { zero.assume_init() }; + /// + /// assert_eq!(*zero, 0); + /// # Ok::<(), std::alloc::AllocError>(()) + /// ``` + /// + /// [zeroed]: mem::MaybeUninit::zeroed + #[inline(always)] + pub fn try_new_zeroed_in(alloc: A) -> Result, A>, AllocError> + where + A: Allocator, + { + let layout = Layout::new::>(); + let ptr = alloc.allocate_zeroed(layout)?.cast(); + unsafe { Ok(Box::from_raw_in(ptr.as_ptr(), alloc)) } + } + + /// Constructs a new `Pin>`. If `T` does not implement [`Unpin`], then + /// `x` will be pinned in memory and unable to be moved. + /// + /// Constructing and pinning of the `Box` can also be done in two steps: `Box::pin_in(x, alloc)` + /// does the same as [Box::into_pin]\([Box::new_in]\(x, alloc)). Consider using + /// [`into_pin`](Box::into_pin) if you already have a `Box`, or if you want to + /// construct a (pinned) `Box` in a different way than with [`Box::new_in`]. + #[cfg(not(no_global_oom_handling))] + #[must_use] + #[inline(always)] + pub fn pin_in(x: T, alloc: A) -> Pin + where + A: 'static + Allocator, + { + Self::into_pin(Self::new_in(x, alloc)) + } + + /// Converts a `Box` into a `Box<[T]>` + /// + /// This conversion does not allocate on the heap and happens in place. + #[inline(always)] + pub fn into_boxed_slice(boxed: Self) -> Box<[T], A> { + let (raw, alloc) = Box::into_raw_with_allocator(boxed); + unsafe { Box::from_raw_in(raw as *mut [T; 1], alloc) } + } + + /// Consumes the `Box`, returning the wrapped value. + /// + /// # Examples + /// + /// ``` + /// #![feature(box_into_inner)] + /// + /// let c = Box::new(5); + /// + /// assert_eq!(Box::into_inner(c), 5); + /// ``` + #[inline(always)] + pub fn into_inner(boxed: Self) -> T { + let ptr = boxed.0; + let unboxed = unsafe { ptr.as_ptr().read() }; + unsafe { boxed.1.deallocate(ptr.cast(), Layout::new::()) }; + unboxed + } +} + +impl Box<[T]> { + /// Constructs a new boxed slice with uninitialized contents. + /// + /// # Examples + /// + /// ``` + /// #![feature(new_uninit)] + /// + /// let mut values = Box::<[u32]>::new_uninit_slice(3); + /// + /// let values = unsafe { + /// // Deferred initialization: + /// values[0].as_mut_ptr().write(1); + /// values[1].as_mut_ptr().write(2); + /// values[2].as_mut_ptr().write(3); + /// + /// values.assume_init() + /// }; + /// + /// assert_eq!(*values, [1, 2, 3]) + /// ``` + #[cfg(not(no_global_oom_handling))] + #[must_use] + #[inline(always)] + pub fn new_uninit_slice(len: usize) -> Box<[mem::MaybeUninit]> { + unsafe { RawVec::with_capacity(len).into_box(len) } + } + + /// Constructs a new boxed slice with uninitialized contents, with the memory + /// being filled with `0` bytes. + /// + /// See [`MaybeUninit::zeroed`][zeroed] for examples of correct and incorrect usage + /// of this method. + /// + /// # Examples + /// + /// ``` + /// #![feature(new_uninit)] + /// + /// let values = Box::<[u32]>::new_zeroed_slice(3); + /// let values = unsafe { values.assume_init() }; + /// + /// assert_eq!(*values, [0, 0, 0]) + /// ``` + /// + /// [zeroed]: mem::MaybeUninit::zeroed + #[cfg(not(no_global_oom_handling))] + #[must_use] + #[inline(always)] + pub fn new_zeroed_slice(len: usize) -> Box<[mem::MaybeUninit]> { + unsafe { RawVec::with_capacity_zeroed(len).into_box(len) } + } + + /// Constructs a new boxed slice with uninitialized contents. Returns an error if + /// the allocation fails + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api, new_uninit)] + /// + /// let mut values = Box::<[u32]>::try_new_uninit_slice(3)?; + /// let values = unsafe { + /// // Deferred initialization: + /// values[0].as_mut_ptr().write(1); + /// values[1].as_mut_ptr().write(2); + /// values[2].as_mut_ptr().write(3); + /// values.assume_init() + /// }; + /// + /// assert_eq!(*values, [1, 2, 3]); + /// # Ok::<(), std::alloc::AllocError>(()) + /// ``` + #[inline(always)] + pub fn try_new_uninit_slice(len: usize) -> Result]>, AllocError> { + unsafe { + let layout = match Layout::array::>(len) { + Ok(l) => l, + Err(_) => return Err(AllocError), + }; + let ptr = Global.allocate(layout)?; + Ok(RawVec::from_raw_parts_in(ptr.as_ptr() as *mut _, len, Global).into_box(len)) + } + } + + /// Constructs a new boxed slice with uninitialized contents, with the memory + /// being filled with `0` bytes. Returns an error if the allocation fails + /// + /// See [`MaybeUninit::zeroed`][zeroed] for examples of correct and incorrect usage + /// of this method. + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api, new_uninit)] + /// + /// let values = Box::<[u32]>::try_new_zeroed_slice(3)?; + /// let values = unsafe { values.assume_init() }; + /// + /// assert_eq!(*values, [0, 0, 0]); + /// # Ok::<(), std::alloc::AllocError>(()) + /// ``` + /// + /// [zeroed]: mem::MaybeUninit::zeroed + #[inline(always)] + pub fn try_new_zeroed_slice(len: usize) -> Result]>, AllocError> { + unsafe { + let layout = match Layout::array::>(len) { + Ok(l) => l, + Err(_) => return Err(AllocError), + }; + let ptr = Global.allocate_zeroed(layout)?; + Ok(RawVec::from_raw_parts_in(ptr.as_ptr() as *mut _, len, Global).into_box(len)) + } + } +} + +impl Box<[T], A> { + /// Constructs a new boxed slice with uninitialized contents in the provided allocator. + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api, new_uninit)] + /// + /// use std::alloc::System; + /// + /// let mut values = Box::<[u32], _>::new_uninit_slice_in(3, System); + /// + /// let values = unsafe { + /// // Deferred initialization: + /// values[0].as_mut_ptr().write(1); + /// values[1].as_mut_ptr().write(2); + /// values[2].as_mut_ptr().write(3); + /// + /// values.assume_init() + /// }; + /// + /// assert_eq!(*values, [1, 2, 3]) + /// ``` + #[cfg(not(no_global_oom_handling))] + #[must_use] + #[inline(always)] + pub fn new_uninit_slice_in(len: usize, alloc: A) -> Box<[mem::MaybeUninit], A> { + unsafe { RawVec::with_capacity_in(len, alloc).into_box(len) } + } + + /// Constructs a new boxed slice with uninitialized contents in the provided allocator, + /// with the memory being filled with `0` bytes. + /// + /// See [`MaybeUninit::zeroed`][zeroed] for examples of correct and incorrect usage + /// of this method. + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api, new_uninit)] + /// + /// use std::alloc::System; + /// + /// let values = Box::<[u32], _>::new_zeroed_slice_in(3, System); + /// let values = unsafe { values.assume_init() }; + /// + /// assert_eq!(*values, [0, 0, 0]) + /// ``` + /// + /// [zeroed]: mem::MaybeUninit::zeroed + #[cfg(not(no_global_oom_handling))] + #[must_use] + #[inline(always)] + pub fn new_zeroed_slice_in(len: usize, alloc: A) -> Box<[mem::MaybeUninit], A> { + unsafe { RawVec::with_capacity_zeroed_in(len, alloc).into_box(len) } + } + + pub fn into_vec(self) -> Vec + where + A: Allocator, + { + unsafe { + let len = self.len(); + let (b, alloc) = Box::into_raw_with_allocator(self); + Vec::from_raw_parts_in(b as *mut T, len, len, alloc) + } + } +} + +impl Box, A> { + /// Converts to `Box`. + /// + /// # Safety + /// + /// As with [`MaybeUninit::assume_init`], + /// it is up to the caller to guarantee that the value + /// really is in an initialized state. + /// Calling this when the content is not yet fully initialized + /// causes immediate undefined behavior. + /// + /// [`MaybeUninit::assume_init`]: mem::MaybeUninit::assume_init + /// + /// # Examples + /// + /// ``` + /// #![feature(new_uninit)] + /// + /// let mut five = Box::::new_uninit(); + /// + /// let five: Box = unsafe { + /// // Deferred initialization: + /// five.as_mut_ptr().write(5); + /// + /// five.assume_init() + /// }; + /// + /// assert_eq!(*five, 5) + /// ``` + #[inline(always)] + pub unsafe fn assume_init(self) -> Box { + let (raw, alloc) = Box::into_raw_with_allocator(self); + unsafe { Box::from_raw_in(raw as *mut T, alloc) } + } + + /// Writes the value and converts to `Box`. + /// + /// This method converts the box similarly to [`Box::assume_init`] but + /// writes `value` into it before conversion thus guaranteeing safety. + /// In some scenarios use of this method may improve performance because + /// the compiler may be able to optimize copying from stack. + /// + /// # Examples + /// + /// ``` + /// #![feature(new_uninit)] + /// + /// let big_box = Box::<[usize; 1024]>::new_uninit(); + /// + /// let mut array = [0; 1024]; + /// for (i, place) in array.iter_mut().enumerate() { + /// *place = i; + /// } + /// + /// // The optimizer may be able to elide this copy, so previous code writes + /// // to heap directly. + /// let big_box = Box::write(big_box, array); + /// + /// for (i, x) in big_box.iter().enumerate() { + /// assert_eq!(*x, i); + /// } + /// ``` + #[inline(always)] + pub fn write(mut boxed: Self, value: T) -> Box { + unsafe { + (*boxed).write(value); + boxed.assume_init() + } + } +} + +impl Box<[mem::MaybeUninit], A> { + /// Converts to `Box<[T], A>`. + /// + /// # Safety + /// + /// As with [`MaybeUninit::assume_init`], + /// it is up to the caller to guarantee that the values + /// really are in an initialized state. + /// Calling this when the content is not yet fully initialized + /// causes immediate undefined behavior. + /// + /// [`MaybeUninit::assume_init`]: mem::MaybeUninit::assume_init + /// + /// # Examples + /// + /// ``` + /// #![feature(new_uninit)] + /// + /// let mut values = Box::<[u32]>::new_uninit_slice(3); + /// + /// let values = unsafe { + /// // Deferred initialization: + /// values[0].as_mut_ptr().write(1); + /// values[1].as_mut_ptr().write(2); + /// values[2].as_mut_ptr().write(3); + /// + /// values.assume_init() + /// }; + /// + /// assert_eq!(*values, [1, 2, 3]) + /// ``` + #[inline(always)] + pub unsafe fn assume_init(self) -> Box<[T], A> { + let (raw, alloc) = Box::into_raw_with_allocator(self); + unsafe { Box::from_raw_in(raw as *mut [T], alloc) } + } +} + +impl Box { + /// Constructs a box from a raw pointer. + /// + /// After calling this function, the raw pointer is owned by the + /// resulting `Box`. Specifically, the `Box` destructor will call + /// the destructor of `T` and free the allocated memory. For this + /// to be safe, the memory must have been allocated in accordance + /// with the [memory layout] used by `Box` . + /// + /// # Safety + /// + /// This function is unsafe because improper use may lead to + /// memory problems. For example, a double-free may occur if the + /// function is called twice on the same raw pointer. + /// + /// The safety conditions are described in the [memory layout] section. + /// + /// # Examples + /// + /// Recreate a `Box` which was previously converted to a raw pointer + /// using [`Box::into_raw`]: + /// ``` + /// let x = Box::new(5); + /// let ptr = Box::into_raw(x); + /// let x = unsafe { Box::from_raw(ptr) }; + /// ``` + /// Manually create a `Box` from scratch by using the global allocator: + /// ``` + /// use std::alloc::{alloc, Layout}; + /// + /// unsafe { + /// let ptr = alloc(Layout::new::()) as *mut i32; + /// // In general .write is required to avoid attempting to destruct + /// // the (uninitialized) previous contents of `ptr`, though for this + /// // simple example `*ptr = 5` would have worked as well. + /// ptr.write(5); + /// let x = Box::from_raw(ptr); + /// } + /// ``` + /// + /// [memory layout]: self#memory-layout + /// [`Layout`]: crate::Layout + #[must_use = "call `drop(from_raw(ptr))` if you intend to drop the `Box`"] + #[inline(always)] + pub unsafe fn from_raw(raw: *mut T) -> Self { + unsafe { Self::from_raw_in(raw, Global) } + } +} + +impl Box { + /// Constructs a box from a raw pointer in the given allocator. + /// + /// After calling this function, the raw pointer is owned by the + /// resulting `Box`. Specifically, the `Box` destructor will call + /// the destructor of `T` and free the allocated memory. For this + /// to be safe, the memory must have been allocated in accordance + /// with the [memory layout] used by `Box` . + /// + /// # Safety + /// + /// This function is unsafe because improper use may lead to + /// memory problems. For example, a double-free may occur if the + /// function is called twice on the same raw pointer. + /// + /// + /// # Examples + /// + /// Recreate a `Box` which was previously converted to a raw pointer + /// using [`Box::into_raw_with_allocator`]: + /// ``` + /// use std::alloc::System; + /// # use allocator_api2::boxed::Box; + /// + /// let x = Box::new_in(5, System); + /// let (ptr, alloc) = Box::into_raw_with_allocator(x); + /// let x = unsafe { Box::from_raw_in(ptr, alloc) }; + /// ``` + /// Manually create a `Box` from scratch by using the system allocator: + /// ``` + /// use allocator_api2::alloc::{Allocator, Layout, System}; + /// # use allocator_api2::boxed::Box; + /// + /// unsafe { + /// let ptr = System.allocate(Layout::new::())?.as_ptr().cast::(); + /// // In general .write is required to avoid attempting to destruct + /// // the (uninitialized) previous contents of `ptr`, though for this + /// // simple example `*ptr = 5` would have worked as well. + /// ptr.write(5); + /// let x = Box::from_raw_in(ptr, System); + /// } + /// # Ok::<(), allocator_api2::alloc::AllocError>(()) + /// ``` + /// + /// [memory layout]: self#memory-layout + /// [`Layout`]: crate::Layout + #[inline(always)] + pub const unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Self { + Box(unsafe { NonNull::new_unchecked(raw) }, alloc) + } + + /// Consumes the `Box`, returning a wrapped raw pointer. + /// + /// The pointer will be properly aligned and non-null. + /// + /// After calling this function, the caller is responsible for the + /// memory previously managed by the `Box`. In particular, the + /// caller should properly destroy `T` and release the memory, taking + /// into account the [memory layout] used by `Box`. The easiest way to + /// do this is to convert the raw pointer back into a `Box` with the + /// [`Box::from_raw`] function, allowing the `Box` destructor to perform + /// the cleanup. + /// + /// Note: this is an associated function, which means that you have + /// to call it as `Box::into_raw(b)` instead of `b.into_raw()`. This + /// is so that there is no conflict with a method on the inner type. + /// + /// # Examples + /// Converting the raw pointer back into a `Box` with [`Box::from_raw`] + /// for automatic cleanup: + /// ``` + /// let x = Box::new(String::from("Hello")); + /// let ptr = Box::into_raw(x); + /// let x = unsafe { Box::from_raw(ptr) }; + /// ``` + /// Manual cleanup by explicitly running the destructor and deallocating + /// the memory: + /// ``` + /// use std::alloc::{dealloc, Layout}; + /// use std::ptr; + /// + /// let x = Box::new(String::from("Hello")); + /// let p = Box::into_raw(x); + /// unsafe { + /// ptr::drop_in_place(p); + /// dealloc(p as *mut u8, Layout::new::()); + /// } + /// ``` + /// + /// [memory layout]: self#memory-layout + #[inline(always)] + pub fn into_raw(b: Self) -> *mut T { + Self::into_raw_with_allocator(b).0 + } + + /// Consumes the `Box`, returning a wrapped raw pointer and the allocator. + /// + /// The pointer will be properly aligned and non-null. + /// + /// After calling this function, the caller is responsible for the + /// memory previously managed by the `Box`. In particular, the + /// caller should properly destroy `T` and release the memory, taking + /// into account the [memory layout] used by `Box`. The easiest way to + /// do this is to convert the raw pointer back into a `Box` with the + /// [`Box::from_raw_in`] function, allowing the `Box` destructor to perform + /// the cleanup. + /// + /// Note: this is an associated function, which means that you have + /// to call it as `Box::into_raw_with_allocator(b)` instead of `b.into_raw_with_allocator()`. This + /// is so that there is no conflict with a method on the inner type. + /// + /// # Examples + /// Converting the raw pointer back into a `Box` with [`Box::from_raw_in`] + /// for automatic cleanup: + /// ``` + /// #![feature(allocator_api)] + /// + /// use std::alloc::System; + /// + /// let x = Box::new_in(String::from("Hello"), System); + /// let (ptr, alloc) = Box::into_raw_with_allocator(x); + /// let x = unsafe { Box::from_raw_in(ptr, alloc) }; + /// ``` + /// Manual cleanup by explicitly running the destructor and deallocating + /// the memory: + /// ``` + /// #![feature(allocator_api)] + /// + /// use std::alloc::{Allocator, Layout, System}; + /// use std::ptr::{self, NonNull}; + /// + /// let x = Box::new_in(String::from("Hello"), System); + /// let (ptr, alloc) = Box::into_raw_with_allocator(x); + /// unsafe { + /// ptr::drop_in_place(ptr); + /// let non_null = NonNull::new_unchecked(ptr); + /// alloc.deallocate(non_null.cast(), Layout::new::()); + /// } + /// ``` + /// + /// [memory layout]: self#memory-layout + #[inline(always)] + pub fn into_raw_with_allocator(b: Self) -> (*mut T, A) { + let (leaked, alloc) = Box::into_non_null(b); + (leaked.as_ptr(), alloc) + } + + #[inline(always)] + pub fn into_non_null(b: Self) -> (NonNull, A) { + // Box is recognized as a "unique pointer" by Stacked Borrows, but internally it is a + // raw pointer for the type system. Turning it directly into a raw pointer would not be + // recognized as "releasing" the unique pointer to permit aliased raw accesses, + // so all raw pointer methods have to go through `Box::leak`. Turning *that* to a raw pointer + // behaves correctly. + let alloc = unsafe { ptr::read(&b.1) }; + (NonNull::from(Box::leak(b)), alloc) + } + + /// Returns a reference to the underlying allocator. + /// + /// Note: this is an associated function, which means that you have + /// to call it as `Box::allocator(&b)` instead of `b.allocator()`. This + /// is so that there is no conflict with a method on the inner type. + #[inline(always)] + pub const fn allocator(b: &Self) -> &A { + &b.1 + } + + /// Consumes and leaks the `Box`, returning a mutable reference, + /// `&'a mut T`. Note that the type `T` must outlive the chosen lifetime + /// `'a`. If the type has only static references, or none at all, then this + /// may be chosen to be `'static`. + /// + /// This function is mainly useful for data that lives for the remainder of + /// the program's life. Dropping the returned reference will cause a memory + /// leak. If this is not acceptable, the reference should first be wrapped + /// with the [`Box::from_raw`] function producing a `Box`. This `Box` can + /// then be dropped which will properly destroy `T` and release the + /// allocated memory. + /// + /// Note: this is an associated function, which means that you have + /// to call it as `Box::leak(b)` instead of `b.leak()`. This + /// is so that there is no conflict with a method on the inner type. + /// + /// # Examples + /// + /// Simple usage: + /// + /// ``` + /// let x = Box::new(41); + /// let static_ref: &'static mut usize = Box::leak(x); + /// *static_ref += 1; + /// assert_eq!(*static_ref, 42); + /// ``` + /// + /// Unsized data: + /// + /// ``` + /// let x = vec![1, 2, 3].into_boxed_slice(); + /// let static_ref = Box::leak(x); + /// static_ref[0] = 4; + /// assert_eq!(*static_ref, [4, 2, 3]); + /// ``` + #[inline(always)] + fn leak<'a>(b: Self) -> &'a mut T + where + A: 'a, + { + unsafe { &mut *mem::ManuallyDrop::new(b).0.as_ptr() } + } + + /// Converts a `Box` into a `Pin>`. If `T` does not implement [`Unpin`], then + /// `*boxed` will be pinned in memory and unable to be moved. + /// + /// This conversion does not allocate on the heap and happens in place. + /// + /// This is also available via [`From`]. + /// + /// Constructing and pinning a `Box` with Box::into_pin([Box::new]\(x)) + /// can also be written more concisely using [Box::pin]\(x). + /// This `into_pin` method is useful if you already have a `Box`, or you are + /// constructing a (pinned) `Box` in a different way than with [`Box::new`]. + /// + /// # Notes + /// + /// It's not recommended that crates add an impl like `From> for Pin`, + /// as it'll introduce an ambiguity when calling `Pin::from`. + /// A demonstration of such a poor impl is shown below. + /// + /// ```compile_fail + /// # use std::pin::Pin; + /// struct Foo; // A type defined in this crate. + /// impl From> for Pin { + /// fn from(_: Box<()>) -> Pin { + /// Pin::new(Foo) + /// } + /// } + /// + /// let foo = Box::new(()); + /// let bar = Pin::from(foo); + /// ``` + #[inline(always)] + pub fn into_pin(boxed: Self) -> Pin + where + A: 'static, + { + // It's not possible to move or replace the insides of a `Pin>` + // when `T: !Unpin`, so it's safe to pin it directly without any + // additional requirements. + unsafe { Pin::new_unchecked(boxed) } + } +} + +impl Drop for Box { + #[inline(always)] + fn drop(&mut self) { + let layout = Layout::for_value::(&**self); + unsafe { + ptr::drop_in_place(self.0.as_mut()); + self.1.deallocate(self.0.cast(), layout); + } + } +} + +#[cfg(not(no_global_oom_handling))] +impl Default for Box { + /// Creates a `Box`, with the `Default` value for T. + #[inline(always)] + fn default() -> Self { + Box::new(T::default()) + } +} + +impl Default for Box<[T], A> { + #[inline(always)] + fn default() -> Self { + let ptr: NonNull<[T]> = NonNull::<[T; 0]>::dangling(); + Box(ptr, A::default()) + } +} + +impl Default for Box { + #[inline(always)] + fn default() -> Self { + // SAFETY: This is the same as `Unique::cast` but with an unsized `U = str`. + let ptr: NonNull = unsafe { + let bytes: NonNull<[u8]> = NonNull::<[u8; 0]>::dangling(); + NonNull::new_unchecked(bytes.as_ptr() as *mut str) + }; + Box(ptr, A::default()) + } +} + +#[cfg(not(no_global_oom_handling))] +impl Clone for Box { + /// Returns a new box with a `clone()` of this box's contents. + /// + /// # Examples + /// + /// ``` + /// let x = Box::new(5); + /// let y = x.clone(); + /// + /// // The value is the same + /// assert_eq!(x, y); + /// + /// // But they are unique objects + /// assert_ne!(&*x as *const i32, &*y as *const i32); + /// ``` + #[inline(always)] + fn clone(&self) -> Self { + // Pre-allocate memory to allow writing the cloned value directly. + let mut boxed = Self::new_uninit_in(self.1.clone()); + unsafe { + boxed.write((**self).clone()); + boxed.assume_init() + } + } + + /// Copies `source`'s contents into `self` without creating a new allocation. + /// + /// # Examples + /// + /// ``` + /// let x = Box::new(5); + /// let mut y = Box::new(10); + /// let yp: *const i32 = &*y; + /// + /// y.clone_from(&x); + /// + /// // The value is the same + /// assert_eq!(x, y); + /// + /// // And no allocation occurred + /// assert_eq!(yp, &*y); + /// ``` + #[inline(always)] + fn clone_from(&mut self, source: &Self) { + (**self).clone_from(&(**source)); + } +} + +#[cfg(not(no_global_oom_handling))] +impl Clone for Box { + #[inline(always)] + fn clone(&self) -> Self { + // this makes a copy of the data + let buf: Box<[u8]> = self.as_bytes().into(); + unsafe { Box::from_raw(Box::into_raw(buf) as *mut str) } + } +} + +impl PartialEq for Box { + #[inline(always)] + fn eq(&self, other: &Self) -> bool { + PartialEq::eq(&**self, &**other) + } + #[inline(always)] + fn ne(&self, other: &Self) -> bool { + PartialEq::ne(&**self, &**other) + } +} + +impl PartialOrd for Box { + #[inline(always)] + fn partial_cmp(&self, other: &Self) -> Option { + PartialOrd::partial_cmp(&**self, &**other) + } + #[inline(always)] + fn lt(&self, other: &Self) -> bool { + PartialOrd::lt(&**self, &**other) + } + #[inline(always)] + fn le(&self, other: &Self) -> bool { + PartialOrd::le(&**self, &**other) + } + #[inline(always)] + fn ge(&self, other: &Self) -> bool { + PartialOrd::ge(&**self, &**other) + } + #[inline(always)] + fn gt(&self, other: &Self) -> bool { + PartialOrd::gt(&**self, &**other) + } +} + +impl Ord for Box { + #[inline(always)] + fn cmp(&self, other: &Self) -> Ordering { + Ord::cmp(&**self, &**other) + } +} + +impl Eq for Box {} + +impl Hash for Box { + #[inline(always)] + fn hash(&self, state: &mut H) { + (**self).hash(state); + } +} + +impl Hasher for Box { + #[inline(always)] + fn finish(&self) -> u64 { + (**self).finish() + } + #[inline(always)] + fn write(&mut self, bytes: &[u8]) { + (**self).write(bytes) + } + #[inline(always)] + fn write_u8(&mut self, i: u8) { + (**self).write_u8(i) + } + #[inline(always)] + fn write_u16(&mut self, i: u16) { + (**self).write_u16(i) + } + #[inline(always)] + fn write_u32(&mut self, i: u32) { + (**self).write_u32(i) + } + #[inline(always)] + fn write_u64(&mut self, i: u64) { + (**self).write_u64(i) + } + #[inline(always)] + fn write_u128(&mut self, i: u128) { + (**self).write_u128(i) + } + #[inline(always)] + fn write_usize(&mut self, i: usize) { + (**self).write_usize(i) + } + #[inline(always)] + fn write_i8(&mut self, i: i8) { + (**self).write_i8(i) + } + #[inline(always)] + fn write_i16(&mut self, i: i16) { + (**self).write_i16(i) + } + #[inline(always)] + fn write_i32(&mut self, i: i32) { + (**self).write_i32(i) + } + #[inline(always)] + fn write_i64(&mut self, i: i64) { + (**self).write_i64(i) + } + #[inline(always)] + fn write_i128(&mut self, i: i128) { + (**self).write_i128(i) + } + #[inline(always)] + fn write_isize(&mut self, i: isize) { + (**self).write_isize(i) + } +} + +#[cfg(not(no_global_oom_handling))] +impl From for Box { + /// Converts a `T` into a `Box` + /// + /// The conversion allocates on the heap and moves `t` + /// from the stack into it. + /// + /// # Examples + /// + /// ```rust + /// let x = 5; + /// let boxed = Box::new(5); + /// + /// assert_eq!(Box::from(x), boxed); + /// ``` + #[inline(always)] + fn from(t: T) -> Self { + Box::new(t) + } +} + +impl From> for Pin> +where + A: 'static, +{ + /// Converts a `Box` into a `Pin>`. If `T` does not implement [`Unpin`], then + /// `*boxed` will be pinned in memory and unable to be moved. + /// + /// This conversion does not allocate on the heap and happens in place. + /// + /// This is also available via [`Box::into_pin`]. + /// + /// Constructing and pinning a `Box` with >>::from([Box::new]\(x)) + /// can also be written more concisely using [Box::pin]\(x). + /// This `From` implementation is useful if you already have a `Box`, or you are + /// constructing a (pinned) `Box` in a different way than with [`Box::new`]. + #[inline(always)] + fn from(boxed: Box) -> Self { + Box::into_pin(boxed) + } +} + +#[cfg(not(no_global_oom_handling))] +impl From<&[T]> for Box<[T], A> { + /// Converts a `&[T]` into a `Box<[T]>` + /// + /// This conversion allocates on the heap + /// and performs a copy of `slice` and its contents. + /// + /// # Examples + /// ```rust + /// // create a &[u8] which will be used to create a Box<[u8]> + /// let slice: &[u8] = &[104, 101, 108, 108, 111]; + /// let boxed_slice: Box<[u8]> = Box::from(slice); + /// + /// println!("{boxed_slice:?}"); + /// ``` + #[inline(always)] + fn from(slice: &[T]) -> Box<[T], A> { + let len = slice.len(); + let buf = RawVec::with_capacity_in(len, A::default()); + unsafe { + ptr::copy_nonoverlapping(slice.as_ptr(), buf.ptr(), len); + buf.into_box(slice.len()).assume_init() + } + } +} + +#[cfg(not(no_global_oom_handling))] +impl From<&str> for Box { + /// Converts a `&str` into a `Box` + /// + /// This conversion allocates on the heap + /// and performs a copy of `s`. + /// + /// # Examples + /// + /// ```rust + /// let boxed: Box = Box::from("hello"); + /// println!("{boxed}"); + /// ``` + #[inline(always)] + fn from(s: &str) -> Box { + let (raw, alloc) = Box::into_raw_with_allocator(Box::<[u8], A>::from(s.as_bytes())); + unsafe { Box::from_raw_in(raw as *mut str, alloc) } + } +} + +impl From> for Box<[u8], A> { + /// Converts a `Box` into a `Box<[u8]>` + /// + /// This conversion does not allocate on the heap and happens in place. + /// + /// # Examples + /// ```rust + /// // create a Box which will be used to create a Box<[u8]> + /// let boxed: Box = Box::from("hello"); + /// let boxed_str: Box<[u8]> = Box::from(boxed); + /// + /// // create a &[u8] which will be used to create a Box<[u8]> + /// let slice: &[u8] = &[104, 101, 108, 108, 111]; + /// let boxed_slice = Box::from(slice); + /// + /// assert_eq!(boxed_slice, boxed_str); + /// ``` + #[inline(always)] + fn from(s: Box) -> Self { + let (raw, alloc) = Box::into_raw_with_allocator(s); + unsafe { Box::from_raw_in(raw as *mut [u8], alloc) } + } +} + +impl Box<[T; N], A> { + #[inline(always)] + pub fn slice(b: Self) -> Box<[T], A> { + let (ptr, alloc) = Box::into_raw_with_allocator(b); + unsafe { Box::from_raw_in(ptr, alloc) } + } + + pub fn into_vec(self) -> Vec + where + A: Allocator, + { + unsafe { + let (b, alloc) = Box::into_raw_with_allocator(self); + Vec::from_raw_parts_in(b as *mut T, N, N, alloc) + } + } +} + +#[cfg(not(no_global_oom_handling))] +impl From<[T; N]> for Box<[T]> { + /// Converts a `[T; N]` into a `Box<[T]>` + /// + /// This conversion moves the array to newly heap-allocated memory. + /// + /// # Examples + /// + /// ```rust + /// let boxed: Box<[u8]> = Box::from([4, 2]); + /// println!("{boxed:?}"); + /// ``` + #[inline(always)] + fn from(array: [T; N]) -> Box<[T]> { + Box::slice(Box::new(array)) + } +} + +impl TryFrom> for Box<[T; N], A> { + type Error = Box<[T], A>; + + /// Attempts to convert a `Box<[T]>` into a `Box<[T; N]>`. + /// + /// The conversion occurs in-place and does not require a + /// new memory allocation. + /// + /// # Errors + /// + /// Returns the old `Box<[T]>` in the `Err` variant if + /// `boxed_slice.len()` does not equal `N`. + #[inline(always)] + fn try_from(boxed_slice: Box<[T], A>) -> Result { + if boxed_slice.len() == N { + let (ptr, alloc) = Box::into_raw_with_allocator(boxed_slice); + Ok(unsafe { Box::from_raw_in(ptr as *mut [T; N], alloc) }) + } else { + Err(boxed_slice) + } + } +} + +impl Box { + /// Attempt to downcast the box to a concrete type. + /// + /// # Examples + /// + /// ``` + /// use std::any::Any; + /// + /// fn print_if_string(value: Box) { + /// if let Ok(string) = value.downcast::() { + /// println!("String ({}): {}", string.len(), string); + /// } + /// } + /// + /// let my_string = "Hello World".to_string(); + /// print_if_string(Box::new(my_string)); + /// print_if_string(Box::new(0i8)); + /// ``` + #[inline(always)] + pub fn downcast(self) -> Result, Self> { + if self.is::() { + unsafe { Ok(self.downcast_unchecked::()) } + } else { + Err(self) + } + } + + /// Downcasts the box to a concrete type. + /// + /// For a safe alternative see [`downcast`]. + /// + /// # Examples + /// + /// ``` + /// #![feature(downcast_unchecked)] + /// + /// use std::any::Any; + /// + /// let x: Box = Box::new(1_usize); + /// + /// unsafe { + /// assert_eq!(*x.downcast_unchecked::(), 1); + /// } + /// ``` + /// + /// # Safety + /// + /// The contained value must be of type `T`. Calling this method + /// with the incorrect type is *undefined behavior*. + /// + /// [`downcast`]: Self::downcast + #[inline(always)] + pub unsafe fn downcast_unchecked(self) -> Box { + debug_assert!(self.is::()); + unsafe { + let (raw, alloc): (*mut dyn Any, _) = Box::into_raw_with_allocator(self); + Box::from_raw_in(raw as *mut T, alloc) + } + } +} + +impl Box { + /// Attempt to downcast the box to a concrete type. + /// + /// # Examples + /// + /// ``` + /// use std::any::Any; + /// + /// fn print_if_string(value: Box) { + /// if let Ok(string) = value.downcast::() { + /// println!("String ({}): {}", string.len(), string); + /// } + /// } + /// + /// let my_string = "Hello World".to_string(); + /// print_if_string(Box::new(my_string)); + /// print_if_string(Box::new(0i8)); + /// ``` + #[inline(always)] + pub fn downcast(self) -> Result, Self> { + if self.is::() { + unsafe { Ok(self.downcast_unchecked::()) } + } else { + Err(self) + } + } + + /// Downcasts the box to a concrete type. + /// + /// For a safe alternative see [`downcast`]. + /// + /// # Examples + /// + /// ``` + /// #![feature(downcast_unchecked)] + /// + /// use std::any::Any; + /// + /// let x: Box = Box::new(1_usize); + /// + /// unsafe { + /// assert_eq!(*x.downcast_unchecked::(), 1); + /// } + /// ``` + /// + /// # Safety + /// + /// The contained value must be of type `T`. Calling this method + /// with the incorrect type is *undefined behavior*. + /// + /// [`downcast`]: Self::downcast + #[inline(always)] + pub unsafe fn downcast_unchecked(self) -> Box { + debug_assert!(self.is::()); + unsafe { + let (raw, alloc): (*mut (dyn Any + Send), _) = Box::into_raw_with_allocator(self); + Box::from_raw_in(raw as *mut T, alloc) + } + } +} + +impl Box { + /// Attempt to downcast the box to a concrete type. + /// + /// # Examples + /// + /// ``` + /// use std::any::Any; + /// + /// fn print_if_string(value: Box) { + /// if let Ok(string) = value.downcast::() { + /// println!("String ({}): {}", string.len(), string); + /// } + /// } + /// + /// let my_string = "Hello World".to_string(); + /// print_if_string(Box::new(my_string)); + /// print_if_string(Box::new(0i8)); + /// ``` + #[inline(always)] + pub fn downcast(self) -> Result, Self> { + if self.is::() { + unsafe { Ok(self.downcast_unchecked::()) } + } else { + Err(self) + } + } + + /// Downcasts the box to a concrete type. + /// + /// For a safe alternative see [`downcast`]. + /// + /// # Examples + /// + /// ``` + /// #![feature(downcast_unchecked)] + /// + /// use std::any::Any; + /// + /// let x: Box = Box::new(1_usize); + /// + /// unsafe { + /// assert_eq!(*x.downcast_unchecked::(), 1); + /// } + /// ``` + /// + /// # Safety + /// + /// The contained value must be of type `T`. Calling this method + /// with the incorrect type is *undefined behavior*. + /// + /// [`downcast`]: Self::downcast + #[inline(always)] + pub unsafe fn downcast_unchecked(self) -> Box { + debug_assert!(self.is::()); + unsafe { + let (raw, alloc): (*mut (dyn Any + Send + Sync), _) = + Box::into_raw_with_allocator(self); + Box::from_raw_in(raw as *mut T, alloc) + } + } +} + +impl fmt::Display for Box { + #[inline(always)] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt::Display::fmt(&**self, f) + } +} + +impl fmt::Debug for Box { + #[inline(always)] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt::Debug::fmt(&**self, f) + } +} + +impl fmt::Pointer for Box { + #[inline(always)] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + // It's not possible to extract the inner Uniq directly from the Box, + // instead we cast it to a *const which aliases the Unique + let ptr: *const T = &**self; + fmt::Pointer::fmt(&ptr, f) + } +} + +impl Deref for Box { + type Target = T; + + #[inline(always)] + fn deref(&self) -> &T { + unsafe { self.0.as_ref() } + } +} + +impl DerefMut for Box { + #[inline(always)] + fn deref_mut(&mut self) -> &mut T { + unsafe { self.0.as_mut() } + } +} + +impl Iterator for Box { + type Item = I::Item; + + #[inline(always)] + fn next(&mut self) -> Option { + (**self).next() + } + + #[inline(always)] + fn size_hint(&self) -> (usize, Option) { + (**self).size_hint() + } + + #[inline(always)] + fn nth(&mut self, n: usize) -> Option { + (**self).nth(n) + } + + #[inline(always)] + fn last(self) -> Option { + BoxIter::last(self) + } +} + +trait BoxIter { + type Item; + fn last(self) -> Option; +} + +impl BoxIter for Box { + type Item = I::Item; + + #[inline(always)] + fn last(self) -> Option { + #[inline(always)] + fn some(_: Option, x: T) -> Option { + Some(x) + } + + self.fold(None, some) + } +} + +impl DoubleEndedIterator for Box { + #[inline(always)] + fn next_back(&mut self) -> Option { + (**self).next_back() + } + #[inline(always)] + fn nth_back(&mut self, n: usize) -> Option { + (**self).nth_back(n) + } +} + +impl ExactSizeIterator for Box { + #[inline(always)] + fn len(&self) -> usize { + (**self).len() + } +} + +impl FusedIterator for Box {} + +#[cfg(not(no_global_oom_handling))] +impl FromIterator for Box<[I]> { + #[inline(always)] + fn from_iter>(iter: T) -> Self { + iter.into_iter().collect::>().into_boxed_slice() + } +} + +#[cfg(not(no_global_oom_handling))] +impl Clone for Box<[T], A> { + #[inline(always)] + fn clone(&self) -> Self { + let alloc = Box::allocator(self).clone(); + let mut vec = Vec::with_capacity_in(self.len(), alloc); + vec.extend_from_slice(self); + vec.into_boxed_slice() + } + + #[inline(always)] + fn clone_from(&mut self, other: &Self) { + if self.len() == other.len() { + self.clone_from_slice(other); + } else { + *self = other.clone(); + } + } +} + +impl borrow::Borrow for Box { + #[inline(always)] + fn borrow(&self) -> &T { + self + } +} + +impl borrow::BorrowMut for Box { + #[inline(always)] + fn borrow_mut(&mut self) -> &mut T { + self + } +} + +impl AsRef for Box { + #[inline(always)] + fn as_ref(&self) -> &T { + self + } +} + +impl AsMut for Box { + #[inline(always)] + fn as_mut(&mut self) -> &mut T { + self + } +} + +/* Nota bene + * + * We could have chosen not to add this impl, and instead have written a + * function of Pin> to Pin. Such a function would not be sound, + * because Box implements Unpin even when T does not, as a result of + * this impl. + * + * We chose this API instead of the alternative for a few reasons: + * - Logically, it is helpful to understand pinning in regard to the + * memory region being pointed to. For this reason none of the + * standard library pointer types support projecting through a pin + * (Box is the only pointer type in std for which this would be + * safe.) + * - It is in practice very useful to have Box be unconditionally + * Unpin because of trait objects, for which the structural auto + * trait functionality does not apply (e.g., Box would + * otherwise not be Unpin). + * + * Another type with the same semantics as Box but only a conditional + * implementation of `Unpin` (where `T: Unpin`) would be valid/safe, and + * could have a method to project a Pin from it. + */ +impl Unpin for Box where A: 'static {} + +impl Future for Box +where + A: 'static, +{ + type Output = F::Output; + + #[inline(always)] + fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + F::poll(Pin::new(&mut *self), cx) + } +} + +#[cfg(feature = "std")] +mod error { + use std::error::Error; + + use super::Box; + + #[cfg(not(no_global_oom_handling))] + impl<'a, E: Error + 'a> From for Box { + /// Converts a type of [`Error`] into a box of dyn [`Error`]. + /// + /// # Examples + /// + /// ``` + /// use std::error::Error; + /// use std::fmt; + /// use std::mem; + /// + /// #[derive(Debug)] + /// struct AnError; + /// + /// impl fmt::Display for AnError { + /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + /// write!(f, "An error") + /// } + /// } + /// + /// impl Error for AnError {} + /// + /// let an_error = AnError; + /// assert!(0 == mem::size_of_val(&an_error)); + /// let a_boxed_error = Box::::from(an_error); + /// assert!(mem::size_of::>() == mem::size_of_val(&a_boxed_error)) + /// ``` + #[inline(always)] + fn from(err: E) -> Box { + unsafe { Box::from_raw(Box::leak(Box::new(err))) } + } + } + + #[cfg(not(no_global_oom_handling))] + impl<'a, E: Error + Send + Sync + 'a> From for Box { + /// Converts a type of [`Error`] + [`Send`] + [`Sync`] into a box of + /// dyn [`Error`] + [`Send`] + [`Sync`]. + /// + /// # Examples + /// + /// ``` + /// use std::error::Error; + /// use std::fmt; + /// use std::mem; + /// + /// #[derive(Debug)] + /// struct AnError; + /// + /// impl fmt::Display for AnError { + /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + /// write!(f, "An error") + /// } + /// } + /// + /// impl Error for AnError {} + /// + /// unsafe impl Send for AnError {} + /// + /// unsafe impl Sync for AnError {} + /// + /// let an_error = AnError; + /// assert!(0 == mem::size_of_val(&an_error)); + /// let a_boxed_error = Box::::from(an_error); + /// assert!( + /// mem::size_of::>() == mem::size_of_val(&a_boxed_error)) + /// ``` + #[inline(always)] + fn from(err: E) -> Box { + unsafe { Box::from_raw(Box::leak(Box::new(err))) } + } + } + + impl Error for Box { + #[inline(always)] + fn source(&self) -> Option<&(dyn Error + 'static)> { + Error::source(&**self) + } + } +} + +#[cfg(feature = "std")] +impl std::io::Read for Box { + #[inline] + fn read(&mut self, buf: &mut [u8]) -> std::io::Result { + (**self).read(buf) + } + + #[inline] + fn read_to_end(&mut self, buf: &mut std::vec::Vec) -> std::io::Result { + (**self).read_to_end(buf) + } + + #[inline] + fn read_to_string(&mut self, buf: &mut String) -> std::io::Result { + (**self).read_to_string(buf) + } + + #[inline] + fn read_exact(&mut self, buf: &mut [u8]) -> std::io::Result<()> { + (**self).read_exact(buf) + } +} + +#[cfg(feature = "std")] +impl std::io::Write for Box { + #[inline] + fn write(&mut self, buf: &[u8]) -> std::io::Result { + (**self).write(buf) + } + + #[inline] + fn flush(&mut self) -> std::io::Result<()> { + (**self).flush() + } + + #[inline] + fn write_all(&mut self, buf: &[u8]) -> std::io::Result<()> { + (**self).write_all(buf) + } + + #[inline] + fn write_fmt(&mut self, fmt: fmt::Arguments<'_>) -> std::io::Result<()> { + (**self).write_fmt(fmt) + } +} + +#[cfg(feature = "std")] +impl std::io::Seek for Box { + #[inline] + fn seek(&mut self, pos: std::io::SeekFrom) -> std::io::Result { + (**self).seek(pos) + } + + #[inline] + fn stream_position(&mut self) -> std::io::Result { + (**self).stream_position() + } +} + +#[cfg(feature = "std")] +impl std::io::BufRead for Box { + #[inline] + fn fill_buf(&mut self) -> std::io::Result<&[u8]> { + (**self).fill_buf() + } + + #[inline] + fn consume(&mut self, amt: usize) { + (**self).consume(amt) + } + + #[inline] + fn read_until(&mut self, byte: u8, buf: &mut std::vec::Vec) -> std::io::Result { + (**self).read_until(byte, buf) + } + + #[inline] + fn read_line(&mut self, buf: &mut std::string::String) -> std::io::Result { + (**self).read_line(buf) + } +} + +#[cfg(feature = "alloc")] +impl Extend> for alloc_crate::string::String { + fn extend>>(&mut self, iter: I) { + iter.into_iter().for_each(move |s| self.push_str(&s)); + } +} + +#[cfg(not(no_global_oom_handling))] +impl Clone for Box { + #[inline] + fn clone(&self) -> Self { + (**self).into() + } +} + +#[cfg(not(no_global_oom_handling))] +impl From<&core::ffi::CStr> for Box { + /// Converts a `&CStr` into a `Box`, + /// by copying the contents into a newly allocated [`Box`]. + fn from(s: &core::ffi::CStr) -> Box { + let boxed: Box<[u8]> = Box::from(s.to_bytes_with_nul()); + unsafe { Box::from_raw(Box::into_raw(boxed) as *mut core::ffi::CStr) } + } +} + +#[cfg(feature = "serde")] +impl serde::Serialize for Box +where + T: serde::Serialize, + A: Allocator, +{ + #[inline(always)] + fn serialize(&self, serializer: S) -> Result { + (**self).serialize(serializer) + } +} + +#[cfg(feature = "serde")] +impl<'de, T, A> serde::Deserialize<'de> for Box +where + T: serde::Deserialize<'de>, + A: Allocator + Default, +{ + #[inline(always)] + fn deserialize>(deserializer: D) -> Result { + let value = T::deserialize(deserializer)?; + Ok(Box::new_in(value, A::default())) + } +} diff --git a/src/rust/vendor/allocator-api2/src/stable/macros.rs b/src/rust/vendor/allocator-api2/src/stable/macros.rs new file mode 100644 index 000000000..f67c58756 --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/macros.rs @@ -0,0 +1,83 @@ +/// Creates a [`Vec`] containing the arguments. +/// +/// `vec!` allows `Vec`s to be defined with the same syntax as array expressions. +/// There are two forms of this macro: +/// +/// - Create a [`Vec`] containing a given list of elements: +/// +/// ``` +/// use allocator_api2::vec; +/// let v = vec![1, 2, 3]; +/// assert_eq!(v[0], 1); +/// assert_eq!(v[1], 2); +/// assert_eq!(v[2], 3); +/// ``` +/// +/// +/// ``` +/// use allocator_api2::{vec, alloc::Global}; +/// let v = vec![in Global; 1, 2, 3]; +/// assert_eq!(v[0], 1); +/// assert_eq!(v[1], 2); +/// assert_eq!(v[2], 3); +/// ``` +/// +/// - Create a [`Vec`] from a given element and size: +/// +/// ``` +/// use allocator_api2::vec; +/// let v = vec![1; 3]; +/// assert_eq!(v, [1, 1, 1]); +/// ``` +/// +/// ``` +/// use allocator_api2::{vec, alloc::Global}; +/// let v = vec![in Global; 1; 3]; +/// assert_eq!(v, [1, 1, 1]); +/// ``` +/// +/// Note that unlike array expressions this syntax supports all elements +/// which implement [`Clone`] and the number of elements doesn't have to be +/// a constant. +/// +/// This will use `clone` to duplicate an expression, so one should be careful +/// using this with types having a nonstandard `Clone` implementation. For +/// example, `vec![Rc::new(1); 5]` will create a vector of five references +/// to the same boxed integer value, not five references pointing to independently +/// boxed integers. +/// +/// Also, note that `vec![expr; 0]` is allowed, and produces an empty vector. +/// This will still evaluate `expr`, however, and immediately drop the resulting value, so +/// be mindful of side effects. +/// +/// [`Vec`]: crate::vec::Vec +#[cfg(not(no_global_oom_handling))] +#[macro_export] +macro_rules! vec { + (in $alloc:expr $(;)?) => ( + $crate::vec::Vec::new_in($alloc) + ); + (in $alloc:expr; $elem:expr; $n:expr) => ( + $crate::vec::from_elem_in($elem, $n, $alloc) + ); + (in $alloc:expr; $($x:expr),+ $(,)?) => ( + $crate::boxed::Box::<[_]>::into_vec( + $crate::boxed::Box::slice( + $crate::boxed::Box::new_in([$($x),+], $alloc) + ) + ) + ); + () => ( + $crate::vec::Vec::new() + ); + ($elem:expr; $n:expr) => ( + $crate::vec::from_elem($elem, $n) + ); + ($($x:expr),+ $(,)?) => ( + $crate::boxed::Box::<[_]>::into_vec( + $crate::boxed::Box::slice( + $crate::boxed::Box::new([$($x),+]) + ) + ) + ); +} diff --git a/src/rust/vendor/allocator-api2/src/stable/mod.rs b/src/rust/vendor/allocator-api2/src/stable/mod.rs new file mode 100644 index 000000000..a2e3fd857 --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/mod.rs @@ -0,0 +1,62 @@ +#![deny(unsafe_op_in_unsafe_fn)] +#![allow(clippy::needless_doctest_main, clippy::partialeq_ne_impl)] + +#[cfg(feature = "alloc")] +pub use self::slice::SliceExt; + +pub mod alloc; + +#[cfg(feature = "alloc")] +pub mod boxed; + +#[cfg(feature = "alloc")] +mod raw_vec; + +#[cfg(feature = "alloc")] +pub mod vec; + +#[cfg(feature = "alloc")] +mod macros; + +#[cfg(feature = "alloc")] +mod slice; + +#[cfg(feature = "alloc")] +#[track_caller] +#[inline(always)] +#[cfg(debug_assertions)] +unsafe fn assume(v: bool) { + if !v { + core::unreachable!() + } +} + +#[cfg(feature = "alloc")] +#[track_caller] +#[inline(always)] +#[cfg(not(debug_assertions))] +unsafe fn assume(v: bool) { + if !v { + unsafe { + core::hint::unreachable_unchecked(); + } + } +} + +#[cfg(feature = "alloc")] +#[inline(always)] +fn addr(x: *const T) -> usize { + #[allow(clippy::useless_transmute, clippy::transmutes_expressible_as_ptr_casts)] + unsafe { + core::mem::transmute(x) + } +} + +#[cfg(feature = "alloc")] +#[inline(always)] +fn invalid_mut(addr: usize) -> *mut T { + #[allow(clippy::useless_transmute, clippy::transmutes_expressible_as_ptr_casts)] + unsafe { + core::mem::transmute(addr) + } +} diff --git a/src/rust/vendor/allocator-api2/src/stable/raw_vec.rs b/src/rust/vendor/allocator-api2/src/stable/raw_vec.rs new file mode 100644 index 000000000..b62bb554e --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/raw_vec.rs @@ -0,0 +1,642 @@ +use core::alloc::LayoutError; +use core::mem::{self, ManuallyDrop, MaybeUninit}; +use core::ops::Drop; +use core::ptr::{self, NonNull}; +use core::slice; +use core::{cmp, fmt}; + +use super::{ + alloc::{Allocator, Global, Layout}, + assume, + boxed::Box, +}; + +#[cfg(not(no_global_oom_handling))] +use super::alloc::handle_alloc_error; + +/// The error type for `try_reserve` methods. +#[derive(Clone, PartialEq, Eq, Debug)] +pub struct TryReserveError { + kind: TryReserveErrorKind, +} + +impl TryReserveError { + /// Details about the allocation that caused the error + pub fn kind(&self) -> TryReserveErrorKind { + self.kind.clone() + } +} + +/// Details of the allocation that caused a `TryReserveError` +#[derive(Clone, PartialEq, Eq, Debug)] +pub enum TryReserveErrorKind { + /// Error due to the computed capacity exceeding the collection's maximum + /// (usually `isize::MAX` bytes). + CapacityOverflow, + + /// The memory allocator returned an error + AllocError { + /// The layout of allocation request that failed + layout: Layout, + + #[doc(hidden)] + non_exhaustive: (), + }, +} + +use TryReserveErrorKind::*; + +impl From for TryReserveError { + #[inline(always)] + fn from(kind: TryReserveErrorKind) -> Self { + Self { kind } + } +} + +impl From for TryReserveErrorKind { + /// Always evaluates to [`TryReserveErrorKind::CapacityOverflow`]. + #[inline(always)] + fn from(_: LayoutError) -> Self { + TryReserveErrorKind::CapacityOverflow + } +} + +impl fmt::Display for TryReserveError { + fn fmt( + &self, + fmt: &mut core::fmt::Formatter<'_>, + ) -> core::result::Result<(), core::fmt::Error> { + fmt.write_str("memory allocation failed")?; + let reason = match self.kind { + TryReserveErrorKind::CapacityOverflow => { + " because the computed capacity exceeded the collection's maximum" + } + TryReserveErrorKind::AllocError { .. } => { + " because the memory allocator returned an error" + } + }; + fmt.write_str(reason) + } +} + +#[cfg(feature = "std")] +impl std::error::Error for TryReserveError {} + +#[cfg(not(no_global_oom_handling))] +enum AllocInit { + /// The contents of the new memory are uninitialized. + Uninitialized, + /// The new memory is guaranteed to be zeroed. + Zeroed, +} + +/// A low-level utility for more ergonomically allocating, reallocating, and deallocating +/// a buffer of memory on the heap without having to worry about all the corner cases +/// involved. This type is excellent for building your own data structures like Vec and VecDeque. +/// In particular: +/// +/// * Produces `NonNull::dangling()` on zero-sized types. +/// * Produces `NonNull::dangling()` on zero-length allocations. +/// * Avoids freeing `NonNull::dangling()`. +/// * Catches all overflows in capacity computations (promotes them to "capacity overflow" panics). +/// * Guards against 32-bit systems allocating more than isize::MAX bytes. +/// * Guards against overflowing your length. +/// * Calls `handle_alloc_error` for fallible allocations. +/// * Contains a `ptr::NonNull` and thus endows the user with all related benefits. +/// * Uses the excess returned from the allocator to use the largest available capacity. +/// +/// This type does not in anyway inspect the memory that it manages. When dropped it *will* +/// free its memory, but it *won't* try to drop its contents. It is up to the user of `RawVec` +/// to handle the actual things *stored* inside of a `RawVec`. +/// +/// Note that the excess of a zero-sized types is always infinite, so `capacity()` always returns +/// `usize::MAX`. This means that you need to be careful when round-tripping this type with a +/// `Box<[T]>`, since `capacity()` won't yield the length. +#[allow(missing_debug_implementations)] +pub(crate) struct RawVec { + ptr: NonNull, + cap: usize, + alloc: A, +} + +// Safety: RawVec owns both T and A, so sending is safe if +// sending is safe for T and A. +unsafe impl Send for RawVec +where + T: Send, + A: Send, +{ +} + +// Safety: RawVec owns both T and A, so sharing is safe if +// sharing is safe for T and A. +unsafe impl Sync for RawVec +where + T: Sync, + A: Sync, +{ +} + +impl RawVec { + /// Creates the biggest possible `RawVec` (on the system heap) + /// without allocating. If `T` has positive size, then this makes a + /// `RawVec` with capacity `0`. If `T` is zero-sized, then it makes a + /// `RawVec` with capacity `usize::MAX`. Useful for implementing + /// delayed allocation. + #[must_use] + pub const fn new() -> Self { + Self::new_in(Global) + } + + /// Creates a `RawVec` (on the system heap) with exactly the + /// capacity and alignment requirements for a `[T; capacity]`. This is + /// equivalent to calling `RawVec::new` when `capacity` is `0` or `T` is + /// zero-sized. Note that if `T` is zero-sized this means you will + /// *not* get a `RawVec` with the requested capacity. + /// + /// # Panics + /// + /// Panics if the requested capacity exceeds `isize::MAX` bytes. + /// + /// # Aborts + /// + /// Aborts on OOM. + #[cfg(not(no_global_oom_handling))] + #[must_use] + #[inline(always)] + pub fn with_capacity(capacity: usize) -> Self { + Self::with_capacity_in(capacity, Global) + } + + /// Like `with_capacity`, but guarantees the buffer is zeroed. + #[cfg(not(no_global_oom_handling))] + #[must_use] + #[inline(always)] + pub fn with_capacity_zeroed(capacity: usize) -> Self { + Self::with_capacity_zeroed_in(capacity, Global) + } +} + +impl RawVec { + // Tiny Vecs are dumb. Skip to: + // - 8 if the element size is 1, because any heap allocators is likely + // to round up a request of less than 8 bytes to at least 8 bytes. + // - 4 if elements are moderate-sized (<= 1 KiB). + // - 1 otherwise, to avoid wasting too much space for very short Vecs. + pub(crate) const MIN_NON_ZERO_CAP: usize = if mem::size_of::() == 1 { + 8 + } else if mem::size_of::() <= 1024 { + 4 + } else { + 1 + }; + + /// Like `new`, but parameterized over the choice of allocator for + /// the returned `RawVec`. + #[inline(always)] + pub const fn new_in(alloc: A) -> Self { + // `cap: 0` means "unallocated". zero-sized types are ignored. + Self { + ptr: NonNull::dangling(), + cap: 0, + alloc, + } + } + + /// Like `with_capacity`, but parameterized over the choice of + /// allocator for the returned `RawVec`. + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn with_capacity_in(capacity: usize, alloc: A) -> Self { + Self::allocate_in(capacity, AllocInit::Uninitialized, alloc) + } + + /// Like `with_capacity_zeroed`, but parameterized over the choice + /// of allocator for the returned `RawVec`. + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn with_capacity_zeroed_in(capacity: usize, alloc: A) -> Self { + Self::allocate_in(capacity, AllocInit::Zeroed, alloc) + } + + /// Converts the entire buffer into `Box<[MaybeUninit]>` with the specified `len`. + /// + /// Note that this will correctly reconstitute any `cap` changes + /// that may have been performed. (See description of type for details.) + /// + /// # Safety + /// + /// * `len` must be greater than or equal to the most recently requested capacity, and + /// * `len` must be less than or equal to `self.capacity()`. + /// + /// Note, that the requested capacity and `self.capacity()` could differ, as + /// an allocator could overallocate and return a greater memory block than requested. + #[inline(always)] + pub unsafe fn into_box(self, len: usize) -> Box<[MaybeUninit], A> { + // Sanity-check one half of the safety requirement (we cannot check the other half). + debug_assert!( + len <= self.capacity(), + "`len` must be smaller than or equal to `self.capacity()`" + ); + + let me = ManuallyDrop::new(self); + unsafe { + let slice = slice::from_raw_parts_mut(me.ptr() as *mut MaybeUninit, len); + Box::from_raw_in(slice, ptr::read(&me.alloc)) + } + } + + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + fn allocate_in(capacity: usize, init: AllocInit, alloc: A) -> Self { + // Don't allocate here because `Drop` will not deallocate when `capacity` is 0. + if mem::size_of::() == 0 || capacity == 0 { + Self::new_in(alloc) + } else { + // We avoid `unwrap_or_else` here because it bloats the amount of + // LLVM IR generated. + let layout = match Layout::array::(capacity) { + Ok(layout) => layout, + Err(_) => capacity_overflow(), + }; + match alloc_guard(layout.size()) { + Ok(_) => {} + Err(_) => capacity_overflow(), + } + let result = match init { + AllocInit::Uninitialized => alloc.allocate(layout), + AllocInit::Zeroed => alloc.allocate_zeroed(layout), + }; + let ptr = match result { + Ok(ptr) => ptr, + Err(_) => handle_alloc_error(layout), + }; + + // Allocators currently return a `NonNull<[u8]>` whose length + // matches the size requested. If that ever changes, the capacity + // here should change to `ptr.len() / mem::size_of::()`. + Self { + ptr: unsafe { NonNull::new_unchecked(ptr.cast().as_ptr()) }, + cap: capacity, + alloc, + } + } + } + + /// Reconstitutes a `RawVec` from a pointer, capacity, and allocator. + /// + /// # Safety + /// + /// The `ptr` must be allocated (via the given allocator `alloc`), and with the given + /// `capacity`. + /// The `capacity` cannot exceed `isize::MAX` for sized types. (only a concern on 32-bit + /// systems). ZST vectors may have a capacity up to `usize::MAX`. + /// If the `ptr` and `capacity` come from a `RawVec` created via `alloc`, then this is + /// guaranteed. + #[inline(always)] + pub unsafe fn from_raw_parts_in(ptr: *mut T, capacity: usize, alloc: A) -> Self { + Self { + ptr: unsafe { NonNull::new_unchecked(ptr) }, + cap: capacity, + alloc, + } + } + + /// Gets a raw pointer to the start of the allocation. Note that this is + /// `NonNull::dangling()` if `capacity == 0` or `T` is zero-sized. In the former case, you must + /// be careful. + #[inline(always)] + pub fn ptr(&self) -> *mut T { + self.ptr.as_ptr() + } + + /// Gets the capacity of the allocation. + /// + /// This will always be `usize::MAX` if `T` is zero-sized. + #[inline(always)] + pub fn capacity(&self) -> usize { + if mem::size_of::() == 0 { + usize::MAX + } else { + self.cap + } + } + + /// Returns a shared reference to the allocator backing this `RawVec`. + #[inline(always)] + pub fn allocator(&self) -> &A { + &self.alloc + } + + #[inline(always)] + fn current_memory(&self) -> Option<(NonNull, Layout)> { + if mem::size_of::() == 0 || self.cap == 0 { + None + } else { + // We have an allocated chunk of memory, so we can bypass runtime + // checks to get our current layout. + unsafe { + let layout = Layout::array::(self.cap).unwrap_unchecked(); + Some((self.ptr.cast(), layout)) + } + } + } + + /// Ensures that the buffer contains at least enough space to hold `len + + /// additional` elements. If it doesn't already have enough capacity, will + /// reallocate enough space plus comfortable slack space to get amortized + /// *O*(1) behavior. Will limit this behavior if it would needlessly cause + /// itself to panic. + /// + /// If `len` exceeds `self.capacity()`, this may fail to actually allocate + /// the requested space. This is not really unsafe, but the unsafe + /// code *you* write that relies on the behavior of this function may break. + /// + /// This is ideal for implementing a bulk-push operation like `extend`. + /// + /// # Panics + /// + /// Panics if the new capacity exceeds `isize::MAX` bytes. + /// + /// # Aborts + /// + /// Aborts on OOM. + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn reserve(&mut self, len: usize, additional: usize) { + // Callers expect this function to be very cheap when there is already sufficient capacity. + // Therefore, we move all the resizing and error-handling logic from grow_amortized and + // handle_reserve behind a call, while making sure that this function is likely to be + // inlined as just a comparison and a call if the comparison fails. + #[cold] + #[inline(always)] + fn do_reserve_and_handle( + slf: &mut RawVec, + len: usize, + additional: usize, + ) { + handle_reserve(slf.grow_amortized(len, additional)); + } + + if self.needs_to_grow(len, additional) { + do_reserve_and_handle(self, len, additional); + } + } + + /// A specialized version of `reserve()` used only by the hot and + /// oft-instantiated `Vec::push()`, which does its own capacity check. + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn reserve_for_push(&mut self, len: usize) { + handle_reserve(self.grow_amortized(len, 1)); + } + + /// The same as `reserve`, but returns on errors instead of panicking or aborting. + #[inline(always)] + pub fn try_reserve(&mut self, len: usize, additional: usize) -> Result<(), TryReserveError> { + if self.needs_to_grow(len, additional) { + self.grow_amortized(len, additional) + } else { + Ok(()) + } + } + + /// Ensures that the buffer contains at least enough space to hold `len + + /// additional` elements. If it doesn't already, will reallocate the + /// minimum possible amount of memory necessary. Generally this will be + /// exactly the amount of memory necessary, but in principle the allocator + /// is free to give back more than we asked for. + /// + /// If `len` exceeds `self.capacity()`, this may fail to actually allocate + /// the requested space. This is not really unsafe, but the unsafe code + /// *you* write that relies on the behavior of this function may break. + /// + /// # Panics + /// + /// Panics if the new capacity exceeds `isize::MAX` bytes. + /// + /// # Aborts + /// + /// Aborts on OOM. + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn reserve_exact(&mut self, len: usize, additional: usize) { + handle_reserve(self.try_reserve_exact(len, additional)); + } + + /// The same as `reserve_exact`, but returns on errors instead of panicking or aborting. + #[inline(always)] + pub fn try_reserve_exact( + &mut self, + len: usize, + additional: usize, + ) -> Result<(), TryReserveError> { + if self.needs_to_grow(len, additional) { + self.grow_exact(len, additional) + } else { + Ok(()) + } + } + + /// Shrinks the buffer down to the specified capacity. If the given amount + /// is 0, actually completely deallocates. + /// + /// # Panics + /// + /// Panics if the given amount is *larger* than the current capacity. + /// + /// # Aborts + /// + /// Aborts on OOM. + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn shrink_to_fit(&mut self, cap: usize) { + handle_reserve(self.shrink(cap)); + } +} + +impl RawVec { + /// Returns if the buffer needs to grow to fulfill the needed extra capacity. + /// Mainly used to make inlining reserve-calls possible without inlining `grow`. + #[inline(always)] + fn needs_to_grow(&self, len: usize, additional: usize) -> bool { + additional > self.capacity().wrapping_sub(len) + } + + #[inline(always)] + fn set_ptr_and_cap(&mut self, ptr: NonNull<[u8]>, cap: usize) { + // Allocators currently return a `NonNull<[u8]>` whose length matches + // the size requested. If that ever changes, the capacity here should + // change to `ptr.len() / mem::size_of::()`. + self.ptr = unsafe { NonNull::new_unchecked(ptr.cast().as_ptr()) }; + self.cap = cap; + } + + // This method is usually instantiated many times. So we want it to be as + // small as possible, to improve compile times. But we also want as much of + // its contents to be statically computable as possible, to make the + // generated code run faster. Therefore, this method is carefully written + // so that all of the code that depends on `T` is within it, while as much + // of the code that doesn't depend on `T` as possible is in functions that + // are non-generic over `T`. + #[inline(always)] + fn grow_amortized(&mut self, len: usize, additional: usize) -> Result<(), TryReserveError> { + // This is ensured by the calling contexts. + debug_assert!(additional > 0); + + if mem::size_of::() == 0 { + // Since we return a capacity of `usize::MAX` when `elem_size` is + // 0, getting to here necessarily means the `RawVec` is overfull. + return Err(CapacityOverflow.into()); + } + + // Nothing we can really do about these checks, sadly. + let required_cap = len.checked_add(additional).ok_or(CapacityOverflow)?; + + // This guarantees exponential growth. The doubling cannot overflow + // because `cap <= isize::MAX` and the type of `cap` is `usize`. + let cap = cmp::max(self.cap * 2, required_cap); + let cap = cmp::max(Self::MIN_NON_ZERO_CAP, cap); + + let new_layout = Layout::array::(cap); + + // `finish_grow` is non-generic over `T`. + let ptr = finish_grow(new_layout, self.current_memory(), &mut self.alloc)?; + self.set_ptr_and_cap(ptr, cap); + Ok(()) + } + + // The constraints on this method are much the same as those on + // `grow_amortized`, but this method is usually instantiated less often so + // it's less critical. + #[inline(always)] + fn grow_exact(&mut self, len: usize, additional: usize) -> Result<(), TryReserveError> { + if mem::size_of::() == 0 { + // Since we return a capacity of `usize::MAX` when the type size is + // 0, getting to here necessarily means the `RawVec` is overfull. + return Err(CapacityOverflow.into()); + } + + let cap = len.checked_add(additional).ok_or(CapacityOverflow)?; + let new_layout = Layout::array::(cap); + + // `finish_grow` is non-generic over `T`. + let ptr = finish_grow(new_layout, self.current_memory(), &mut self.alloc)?; + self.set_ptr_and_cap(ptr, cap); + Ok(()) + } + + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + fn shrink(&mut self, cap: usize) -> Result<(), TryReserveError> { + assert!( + cap <= self.capacity(), + "Tried to shrink to a larger capacity" + ); + + let (ptr, layout) = if let Some(mem) = self.current_memory() { + mem + } else { + return Ok(()); + }; + + let ptr = unsafe { + // `Layout::array` cannot overflow here because it would have + // overflowed earlier when capacity was larger. + let new_layout = Layout::array::(cap).unwrap_unchecked(); + self.alloc + .shrink(ptr, layout, new_layout) + .map_err(|_| AllocError { + layout: new_layout, + non_exhaustive: (), + })? + }; + self.set_ptr_and_cap(ptr, cap); + Ok(()) + } +} + +// This function is outside `RawVec` to minimize compile times. See the comment +// above `RawVec::grow_amortized` for details. (The `A` parameter isn't +// significant, because the number of different `A` types seen in practice is +// much smaller than the number of `T` types.) +#[inline(always)] +fn finish_grow( + new_layout: Result, + current_memory: Option<(NonNull, Layout)>, + alloc: &mut A, +) -> Result, TryReserveError> +where + A: Allocator, +{ + // Check for the error here to minimize the size of `RawVec::grow_*`. + let new_layout = new_layout.map_err(|_| CapacityOverflow)?; + + alloc_guard(new_layout.size())?; + + let memory = if let Some((ptr, old_layout)) = current_memory { + debug_assert_eq!(old_layout.align(), new_layout.align()); + unsafe { + // The allocator checks for alignment equality + assume(old_layout.align() == new_layout.align()); + alloc.grow(ptr, old_layout, new_layout) + } + } else { + alloc.allocate(new_layout) + }; + + memory.map_err(|_| { + AllocError { + layout: new_layout, + non_exhaustive: (), + } + .into() + }) +} + +impl Drop for RawVec { + /// Frees the memory owned by the `RawVec` *without* trying to drop its contents. + #[inline(always)] + fn drop(&mut self) { + if let Some((ptr, layout)) = self.current_memory() { + unsafe { self.alloc.deallocate(ptr, layout) } + } + } +} + +// Central function for reserve error handling. +#[cfg(not(no_global_oom_handling))] +#[inline(always)] +fn handle_reserve(result: Result<(), TryReserveError>) { + match result.map_err(|e| e.kind()) { + Err(CapacityOverflow) => capacity_overflow(), + Err(AllocError { layout, .. }) => handle_alloc_error(layout), + Ok(()) => { /* yay */ } + } +} + +// We need to guarantee the following: +// * We don't ever allocate `> isize::MAX` byte-size objects. +// * We don't overflow `usize::MAX` and actually allocate too little. +// +// On 64-bit we just need to check for overflow since trying to allocate +// `> isize::MAX` bytes will surely fail. On 32-bit and 16-bit we need to add +// an extra guard for this in case we're running on a platform which can use +// all 4GB in user-space, e.g., PAE or x32. + +#[inline(always)] +fn alloc_guard(alloc_size: usize) -> Result<(), TryReserveError> { + if usize::BITS < 64 && alloc_size > isize::MAX as usize { + Err(CapacityOverflow.into()) + } else { + Ok(()) + } +} + +// One central function responsible for reporting capacity overflows. This'll +// ensure that the code generation related to these panics is minimal as there's +// only one location which panics rather than a bunch throughout the module. +#[cfg(not(no_global_oom_handling))] +fn capacity_overflow() -> ! { + panic!("capacity overflow"); +} diff --git a/src/rust/vendor/allocator-api2/src/stable/slice.rs b/src/rust/vendor/allocator-api2/src/stable/slice.rs new file mode 100644 index 000000000..82b2d80d7 --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/slice.rs @@ -0,0 +1,171 @@ +use crate::{ + alloc::{Allocator, Global}, + vec::Vec, +}; + +/// Slice methods that use `Box` and `Vec` from this crate. +pub trait SliceExt { + /// Copies `self` into a new `Vec`. + /// + /// # Examples + /// + /// ``` + /// let s = [10, 40, 30]; + /// let x = s.to_vec(); + /// // Here, `s` and `x` can be modified independently. + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + fn to_vec(&self) -> Vec + where + T: Clone, + { + self.to_vec_in(Global) + } + + /// Copies `self` into a new `Vec` with an allocator. + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api)] + /// + /// use std::alloc::System; + /// + /// let s = [10, 40, 30]; + /// let x = s.to_vec_in(System); + /// // Here, `s` and `x` can be modified independently. + /// ``` + #[cfg(not(no_global_oom_handling))] + fn to_vec_in(&self, alloc: A) -> Vec + where + T: Clone; + + /// Creates a vector by copying a slice `n` times. + /// + /// # Panics + /// + /// This function will panic if the capacity would overflow. + /// + /// # Examples + /// + /// Basic usage: + /// + /// ``` + /// assert_eq!([1, 2].repeat(3), vec![1, 2, 1, 2, 1, 2]); + /// ``` + /// + /// A panic upon overflow: + /// + /// ```should_panic + /// // this will panic at runtime + /// b"0123456789abcdef".repeat(usize::MAX); + /// ``` + fn repeat(&self, n: usize) -> Vec + where + T: Copy; +} + +impl SliceExt for [T] { + #[cfg(not(no_global_oom_handling))] + #[inline] + fn to_vec_in(&self, alloc: A) -> Vec + where + T: Clone, + { + struct DropGuard<'a, T, A: Allocator> { + vec: &'a mut Vec, + num_init: usize, + } + impl<'a, T, A: Allocator> Drop for DropGuard<'a, T, A> { + #[inline] + fn drop(&mut self) { + // SAFETY: + // items were marked initialized in the loop below + unsafe { + self.vec.set_len(self.num_init); + } + } + } + + let mut vec = Vec::with_capacity_in(self.len(), alloc); + let mut guard = DropGuard { + vec: &mut vec, + num_init: 0, + }; + let slots = guard.vec.spare_capacity_mut(); + // .take(slots.len()) is necessary for LLVM to remove bounds checks + // and has better codegen than zip. + for (i, b) in self.iter().enumerate().take(slots.len()) { + guard.num_init = i; + slots[i].write(b.clone()); + } + core::mem::forget(guard); + // SAFETY: + // the vec was allocated and initialized above to at least this length. + unsafe { + vec.set_len(self.len()); + } + vec + } + + #[cfg(not(no_global_oom_handling))] + #[inline] + fn repeat(&self, n: usize) -> Vec + where + T: Copy, + { + if n == 0 { + return Vec::new(); + } + + // If `n` is larger than zero, it can be split as + // `n = 2^expn + rem (2^expn > rem, expn >= 0, rem >= 0)`. + // `2^expn` is the number represented by the leftmost '1' bit of `n`, + // and `rem` is the remaining part of `n`. + + // Using `Vec` to access `set_len()`. + let capacity = self.len().checked_mul(n).expect("capacity overflow"); + let mut buf = Vec::with_capacity(capacity); + + // `2^expn` repetition is done by doubling `buf` `expn`-times. + buf.extend(self); + { + let mut m = n >> 1; + // If `m > 0`, there are remaining bits up to the leftmost '1'. + while m > 0 { + // `buf.extend(buf)`: + unsafe { + core::ptr::copy_nonoverlapping( + buf.as_ptr(), + (buf.as_mut_ptr() as *mut T).add(buf.len()), + buf.len(), + ); + // `buf` has capacity of `self.len() * n`. + let buf_len = buf.len(); + buf.set_len(buf_len * 2); + } + + m >>= 1; + } + } + + // `rem` (`= n - 2^expn`) repetition is done by copying + // first `rem` repetitions from `buf` itself. + let rem_len = capacity - buf.len(); // `self.len() * rem` + if rem_len > 0 { + // `buf.extend(buf[0 .. rem_len])`: + unsafe { + // This is non-overlapping since `2^expn > rem`. + core::ptr::copy_nonoverlapping( + buf.as_ptr(), + (buf.as_mut_ptr() as *mut T).add(buf.len()), + rem_len, + ); + // `buf.len() + rem_len` equals to `buf.capacity()` (`= self.len() * n`). + buf.set_len(capacity); + } + } + buf + } +} diff --git a/src/rust/vendor/allocator-api2/src/stable/vec/drain.rs b/src/rust/vendor/allocator-api2/src/stable/vec/drain.rs new file mode 100644 index 000000000..d3b962f73 --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/vec/drain.rs @@ -0,0 +1,242 @@ +use core::fmt; +use core::iter::FusedIterator; +use core::mem::{self, size_of, ManuallyDrop}; +use core::ptr::{self, NonNull}; +use core::slice::{self}; + +use crate::stable::alloc::{Allocator, Global}; + +use super::Vec; + +/// A draining iterator for `Vec`. +/// +/// This `struct` is created by [`Vec::drain`]. +/// See its documentation for more. +/// +/// # Example +/// +/// ``` +/// let mut v = vec![0, 1, 2]; +/// let iter: std::vec::Drain<_> = v.drain(..); +/// ``` +pub struct Drain<'a, T: 'a, A: Allocator + 'a = Global> { + /// Index of tail to preserve + pub(super) tail_start: usize, + /// Length of tail + pub(super) tail_len: usize, + /// Current remaining range to remove + pub(super) iter: slice::Iter<'a, T>, + pub(super) vec: NonNull>, +} + +impl fmt::Debug for Drain<'_, T, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple("Drain").field(&self.iter.as_slice()).finish() + } +} + +impl<'a, T, A: Allocator> Drain<'a, T, A> { + /// Returns the remaining items of this iterator as a slice. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec!['a', 'b', 'c']; + /// let mut drain = vec.drain(..); + /// assert_eq!(drain.as_slice(), &['a', 'b', 'c']); + /// let _ = drain.next().unwrap(); + /// assert_eq!(drain.as_slice(), &['b', 'c']); + /// ``` + #[must_use] + #[inline(always)] + pub fn as_slice(&self) -> &[T] { + self.iter.as_slice() + } + + /// Returns a reference to the underlying allocator. + #[must_use] + #[inline(always)] + pub fn allocator(&self) -> &A { + unsafe { self.vec.as_ref().allocator() } + } + + /// Keep unyielded elements in the source `Vec`. + /// + /// # Examples + /// + /// ``` + /// #![feature(drain_keep_rest)] + /// + /// let mut vec = vec!['a', 'b', 'c']; + /// let mut drain = vec.drain(..); + /// + /// assert_eq!(drain.next().unwrap(), 'a'); + /// + /// // This call keeps 'b' and 'c' in the vec. + /// drain.keep_rest(); + /// + /// // If we wouldn't call `keep_rest()`, + /// // `vec` would be empty. + /// assert_eq!(vec, ['b', 'c']); + /// ``` + #[inline(always)] + pub fn keep_rest(self) { + // At this moment layout looks like this: + // + // [head] [yielded by next] [unyielded] [yielded by next_back] [tail] + // ^-- start \_________/-- unyielded_len \____/-- self.tail_len + // ^-- unyielded_ptr ^-- tail + // + // Normally `Drop` impl would drop [unyielded] and then move [tail] to the `start`. + // Here we want to + // 1. Move [unyielded] to `start` + // 2. Move [tail] to a new start at `start + len(unyielded)` + // 3. Update length of the original vec to `len(head) + len(unyielded) + len(tail)` + // a. In case of ZST, this is the only thing we want to do + // 4. Do *not* drop self, as everything is put in a consistent state already, there is nothing to do + let mut this = ManuallyDrop::new(self); + + unsafe { + let source_vec = this.vec.as_mut(); + + let start = source_vec.len(); + let tail = this.tail_start; + + let unyielded_len = this.iter.len(); + let unyielded_ptr = this.iter.as_slice().as_ptr(); + + // ZSTs have no identity, so we don't need to move them around. + let needs_move = mem::size_of::() != 0; + + if needs_move { + let start_ptr = source_vec.as_mut_ptr().add(start); + + // memmove back unyielded elements + if unyielded_ptr != start_ptr { + let src = unyielded_ptr; + let dst = start_ptr; + + ptr::copy(src, dst, unyielded_len); + } + + // memmove back untouched tail + if tail != (start + unyielded_len) { + let src = source_vec.as_ptr().add(tail); + let dst = start_ptr.add(unyielded_len); + ptr::copy(src, dst, this.tail_len); + } + } + + source_vec.set_len(start + unyielded_len + this.tail_len); + } + } +} + +impl<'a, T, A: Allocator> AsRef<[T]> for Drain<'a, T, A> { + #[inline(always)] + fn as_ref(&self) -> &[T] { + self.as_slice() + } +} + +unsafe impl Sync for Drain<'_, T, A> {} + +unsafe impl Send for Drain<'_, T, A> {} + +impl Iterator for Drain<'_, T, A> { + type Item = T; + + #[inline(always)] + fn next(&mut self) -> Option { + self.iter + .next() + .map(|elt| unsafe { ptr::read(elt as *const _) }) + } + + #[inline(always)] + fn size_hint(&self) -> (usize, Option) { + self.iter.size_hint() + } +} + +impl DoubleEndedIterator for Drain<'_, T, A> { + #[inline(always)] + fn next_back(&mut self) -> Option { + self.iter + .next_back() + .map(|elt| unsafe { ptr::read(elt as *const _) }) + } +} + +impl Drop for Drain<'_, T, A> { + #[inline] + fn drop(&mut self) { + /// Moves back the un-`Drain`ed elements to restore the original `Vec`. + struct DropGuard<'r, 'a, T, A: Allocator>(&'r mut Drain<'a, T, A>); + + impl<'r, 'a, T, A: Allocator> Drop for DropGuard<'r, 'a, T, A> { + fn drop(&mut self) { + if self.0.tail_len > 0 { + unsafe { + let source_vec = self.0.vec.as_mut(); + // memmove back untouched tail, update to new length + let start = source_vec.len(); + let tail = self.0.tail_start; + if tail != start { + let src = source_vec.as_ptr().add(tail); + let dst = source_vec.as_mut_ptr().add(start); + ptr::copy(src, dst, self.0.tail_len); + } + source_vec.set_len(start + self.0.tail_len); + } + } + } + } + + let iter = mem::replace(&mut self.iter, [].iter()); + let drop_len = iter.len(); + + let mut vec = self.vec; + + if size_of::() == 0 { + // ZSTs have no identity, so we don't need to move them around, we only need to drop the correct amount. + // this can be achieved by manipulating the Vec length instead of moving values out from `iter`. + unsafe { + let vec = vec.as_mut(); + let old_len = vec.len(); + vec.set_len(old_len + drop_len + self.tail_len); + vec.truncate(old_len + self.tail_len); + } + + return; + } + + // ensure elements are moved back into their appropriate places, even when drop_in_place panics + let _guard = DropGuard(self); + + if drop_len == 0 { + return; + } + + // as_slice() must only be called when iter.len() is > 0 because + // vec::Splice modifies vec::Drain fields and may grow the vec which would invalidate + // the iterator's internal pointers. Creating a reference to deallocated memory + // is invalid even when it is zero-length + let drop_ptr = iter.as_slice().as_ptr(); + + unsafe { + // drop_ptr comes from a slice::Iter which only gives us a &[T] but for drop_in_place + // a pointer with mutable provenance is necessary. Therefore we must reconstruct + // it from the original vec but also avoid creating a &mut to the front since that could + // invalidate raw pointers to it which some unsafe code might rely on. + let vec_ptr = vec.as_mut().as_mut_ptr(); + let drop_offset = drop_ptr.offset_from(vec_ptr) as usize; + let to_drop = ptr::slice_from_raw_parts_mut(vec_ptr.add(drop_offset), drop_len); + ptr::drop_in_place(to_drop); + } + } +} + +impl ExactSizeIterator for Drain<'_, T, A> {} + +impl FusedIterator for Drain<'_, T, A> {} diff --git a/src/rust/vendor/allocator-api2/src/stable/vec/into_iter.rs b/src/rust/vendor/allocator-api2/src/stable/vec/into_iter.rs new file mode 100644 index 000000000..8d9df229e --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/vec/into_iter.rs @@ -0,0 +1,198 @@ +use core::fmt; +use core::iter::FusedIterator; +use core::marker::PhantomData; +use core::mem::{self, size_of, ManuallyDrop}; + +use core::ptr::{self, NonNull}; +use core::slice::{self}; + +use crate::stable::addr; + +use super::{Allocator, Global, RawVec}; + +#[cfg(not(no_global_oom_handling))] +use super::Vec; + +/// An iterator that moves out of a vector. +/// +/// This `struct` is created by the `into_iter` method on [`Vec`](super::Vec) +/// (provided by the [`IntoIterator`] trait). +/// +/// # Example +/// +/// ``` +/// let v = vec![0, 1, 2]; +/// let iter: std::vec::IntoIter<_> = v.into_iter(); +/// ``` +pub struct IntoIter { + pub(super) buf: NonNull, + pub(super) phantom: PhantomData, + pub(super) cap: usize, + // the drop impl reconstructs a RawVec from buf, cap and alloc + // to avoid dropping the allocator twice we need to wrap it into ManuallyDrop + pub(super) alloc: ManuallyDrop, + pub(super) ptr: *const T, + pub(super) end: *const T, +} + +impl fmt::Debug for IntoIter { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple("IntoIter").field(&self.as_slice()).finish() + } +} + +impl IntoIter { + /// Returns the remaining items of this iterator as a slice. + /// + /// # Examples + /// + /// ``` + /// let vec = vec!['a', 'b', 'c']; + /// let mut into_iter = vec.into_iter(); + /// assert_eq!(into_iter.as_slice(), &['a', 'b', 'c']); + /// let _ = into_iter.next().unwrap(); + /// assert_eq!(into_iter.as_slice(), &['b', 'c']); + /// ``` + pub fn as_slice(&self) -> &[T] { + unsafe { slice::from_raw_parts(self.ptr, self.len()) } + } + + /// Returns the remaining items of this iterator as a mutable slice. + /// + /// # Examples + /// + /// ``` + /// let vec = vec!['a', 'b', 'c']; + /// let mut into_iter = vec.into_iter(); + /// assert_eq!(into_iter.as_slice(), &['a', 'b', 'c']); + /// into_iter.as_mut_slice()[2] = 'z'; + /// assert_eq!(into_iter.next().unwrap(), 'a'); + /// assert_eq!(into_iter.next().unwrap(), 'b'); + /// assert_eq!(into_iter.next().unwrap(), 'z'); + /// ``` + pub fn as_mut_slice(&mut self) -> &mut [T] { + unsafe { &mut *self.as_raw_mut_slice() } + } + + /// Returns a reference to the underlying allocator. + #[inline(always)] + pub fn allocator(&self) -> &A { + &self.alloc + } + + fn as_raw_mut_slice(&mut self) -> *mut [T] { + ptr::slice_from_raw_parts_mut(self.ptr as *mut T, self.len()) + } +} + +impl AsRef<[T]> for IntoIter { + fn as_ref(&self) -> &[T] { + self.as_slice() + } +} + +unsafe impl Send for IntoIter {} + +unsafe impl Sync for IntoIter {} + +impl Iterator for IntoIter { + type Item = T; + + #[inline(always)] + fn next(&mut self) -> Option { + if self.ptr == self.end { + None + } else if size_of::() == 0 { + // purposefully don't use 'ptr.offset' because for + // vectors with 0-size elements this would return the + // same pointer. + self.ptr = self.ptr.cast::().wrapping_add(1).cast(); + + // Make up a value of this ZST. + Some(unsafe { mem::zeroed() }) + } else { + let old = self.ptr; + self.ptr = unsafe { self.ptr.add(1) }; + + Some(unsafe { ptr::read(old) }) + } + } + + #[inline(always)] + fn size_hint(&self) -> (usize, Option) { + let exact = if size_of::() == 0 { + addr(self.end).wrapping_sub(addr(self.ptr)) + } else { + unsafe { self.end.offset_from(self.ptr) as usize } + }; + (exact, Some(exact)) + } + + #[inline(always)] + fn count(self) -> usize { + self.len() + } +} + +impl DoubleEndedIterator for IntoIter { + #[inline(always)] + fn next_back(&mut self) -> Option { + if self.end == self.ptr { + None + } else if size_of::() == 0 { + // See above for why 'ptr.offset' isn't used + self.end = self.end.cast::().wrapping_add(1).cast(); + + // Make up a value of this ZST. + Some(unsafe { mem::zeroed() }) + } else { + self.end = unsafe { self.end.sub(1) }; + + Some(unsafe { ptr::read(self.end) }) + } + } +} + +impl ExactSizeIterator for IntoIter {} + +impl FusedIterator for IntoIter {} + +#[doc(hidden)] +pub trait NonDrop {} + +// T: Copy as approximation for !Drop since get_unchecked does not advance self.ptr +// and thus we can't implement drop-handling +impl NonDrop for T {} + +#[cfg(not(no_global_oom_handling))] +impl Clone for IntoIter { + fn clone(&self) -> Self { + let mut vec = Vec::::with_capacity_in(self.len(), (*self.alloc).clone()); + vec.extend(self.as_slice().iter().cloned()); + vec.into_iter() + } +} + +impl Drop for IntoIter { + fn drop(&mut self) { + struct DropGuard<'a, T, A: Allocator>(&'a mut IntoIter); + + impl Drop for DropGuard<'_, T, A> { + fn drop(&mut self) { + unsafe { + // `IntoIter::alloc` is not used anymore after this and will be dropped by RawVec + let alloc = ManuallyDrop::take(&mut self.0.alloc); + // RawVec handles deallocation + let _ = RawVec::from_raw_parts_in(self.0.buf.as_ptr(), self.0.cap, alloc); + } + } + } + + let guard = DropGuard(self); + // destroy the remaining elements + unsafe { + ptr::drop_in_place(guard.0.as_raw_mut_slice()); + } + // now `guard` will be dropped and do the rest + } +} diff --git a/src/rust/vendor/allocator-api2/src/stable/vec/mod.rs b/src/rust/vendor/allocator-api2/src/stable/vec/mod.rs new file mode 100644 index 000000000..ec0e482a4 --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/vec/mod.rs @@ -0,0 +1,3288 @@ +//! A contiguous growable array type with heap-allocated contents, written +//! `Vec`. +//! +//! Vectors have *O*(1) indexing, amortized *O*(1) push (to the end) and +//! *O*(1) pop (from the end). +//! +//! Vectors ensure they never allocate more than `isize::MAX` bytes. +//! +//! # Examples +//! +//! You can explicitly create a [`Vec`] with [`Vec::new`]: +//! +//! ``` +//! let v: Vec = Vec::new(); +//! ``` +//! +//! ...or by using the [`vec!`] macro: +//! +//! ``` +//! let v: Vec = vec![]; +//! +//! let v = vec![1, 2, 3, 4, 5]; +//! +//! let v = vec![0; 10]; // ten zeroes +//! ``` +//! +//! You can [`push`] values onto the end of a vector (which will grow the vector +//! as needed): +//! +//! ``` +//! let mut v = vec![1, 2]; +//! +//! v.push(3); +//! ``` +//! +//! Popping values works in much the same way: +//! +//! ``` +//! let mut v = vec![1, 2]; +//! +//! let two = v.pop(); +//! ``` +//! +//! Vectors also support indexing (through the [`Index`] and [`IndexMut`] traits): +//! +//! ``` +//! let mut v = vec![1, 2, 3]; +//! let three = v[2]; +//! v[1] = v[1] + 5; +//! ``` +//! +//! [`push`]: Vec::push + +#[cfg(not(no_global_oom_handling))] +use core::cmp; +use core::cmp::Ordering; +use core::convert::TryFrom; +use core::fmt; +use core::hash::{Hash, Hasher}; +#[cfg(not(no_global_oom_handling))] +use core::iter; +#[cfg(not(no_global_oom_handling))] +use core::iter::FromIterator; +use core::marker::PhantomData; +use core::mem::{self, size_of, ManuallyDrop, MaybeUninit}; +use core::ops::{self, Bound, Index, IndexMut, Range, RangeBounds}; +use core::ptr::{self, NonNull}; +use core::slice::{self, SliceIndex}; + +#[cfg(feature = "std")] +use std::io; + +use super::{ + alloc::{Allocator, Global}, + assume, + boxed::Box, + raw_vec::{RawVec, TryReserveError}, +}; + +#[cfg(not(no_global_oom_handling))] +pub use self::splice::Splice; + +#[cfg(not(no_global_oom_handling))] +mod splice; + +pub use self::drain::Drain; + +mod drain; + +pub use self::into_iter::IntoIter; + +mod into_iter; + +mod partial_eq; + +#[cfg(not(no_global_oom_handling))] +mod set_len_on_drop; + +#[cfg(not(no_global_oom_handling))] +use self::set_len_on_drop::SetLenOnDrop; + +/// A contiguous growable array type, written as `Vec`, short for 'vector'. +/// +/// # Examples +/// +/// ``` +/// let mut vec = Vec::new(); +/// vec.push(1); +/// vec.push(2); +/// +/// assert_eq!(vec.len(), 2); +/// assert_eq!(vec[0], 1); +/// +/// assert_eq!(vec.pop(), Some(2)); +/// assert_eq!(vec.len(), 1); +/// +/// vec[0] = 7; +/// assert_eq!(vec[0], 7); +/// +/// vec.extend([1, 2, 3].iter().copied()); +/// +/// for x in &vec { +/// println!("{x}"); +/// } +/// assert_eq!(vec, [7, 1, 2, 3]); +/// ``` +/// +/// The [`vec!`] macro is provided for convenient initialization: +/// +/// ``` +/// let mut vec1 = vec![1, 2, 3]; +/// vec1.push(4); +/// let vec2 = Vec::from([1, 2, 3, 4]); +/// assert_eq!(vec1, vec2); +/// ``` +/// +/// It can also initialize each element of a `Vec` with a given value. +/// This may be more efficient than performing allocation and initialization +/// in separate steps, especially when initializing a vector of zeros: +/// +/// ``` +/// let vec = vec![0; 5]; +/// assert_eq!(vec, [0, 0, 0, 0, 0]); +/// +/// // The following is equivalent, but potentially slower: +/// let mut vec = Vec::with_capacity(5); +/// vec.resize(5, 0); +/// assert_eq!(vec, [0, 0, 0, 0, 0]); +/// ``` +/// +/// For more information, see +/// [Capacity and Reallocation](#capacity-and-reallocation). +/// +/// Use a `Vec` as an efficient stack: +/// +/// ``` +/// let mut stack = Vec::new(); +/// +/// stack.push(1); +/// stack.push(2); +/// stack.push(3); +/// +/// while let Some(top) = stack.pop() { +/// // Prints 3, 2, 1 +/// println!("{top}"); +/// } +/// ``` +/// +/// # Indexing +/// +/// The `Vec` type allows to access values by index, because it implements the +/// [`Index`] trait. An example will be more explicit: +/// +/// ``` +/// let v = vec![0, 2, 4, 6]; +/// println!("{}", v[1]); // it will display '2' +/// ``` +/// +/// However be careful: if you try to access an index which isn't in the `Vec`, +/// your software will panic! You cannot do this: +/// +/// ```should_panic +/// let v = vec![0, 2, 4, 6]; +/// println!("{}", v[6]); // it will panic! +/// ``` +/// +/// Use [`get`] and [`get_mut`] if you want to check whether the index is in +/// the `Vec`. +/// +/// # Slicing +/// +/// A `Vec` can be mutable. On the other hand, slices are read-only objects. +/// To get a [slice][prim@slice], use [`&`]. Example: +/// +/// ``` +/// fn read_slice(slice: &[usize]) { +/// // ... +/// } +/// +/// let v = vec![0, 1]; +/// read_slice(&v); +/// +/// // ... and that's all! +/// // you can also do it like this: +/// let u: &[usize] = &v; +/// // or like this: +/// let u: &[_] = &v; +/// ``` +/// +/// In Rust, it's more common to pass slices as arguments rather than vectors +/// when you just want to provide read access. The same goes for [`String`] and +/// [`&str`]. +/// +/// # Capacity and reallocation +/// +/// The capacity of a vector is the amount of space allocated for any future +/// elements that will be added onto the vector. This is not to be confused with +/// the *length* of a vector, which specifies the number of actual elements +/// within the vector. If a vector's length exceeds its capacity, its capacity +/// will automatically be increased, but its elements will have to be +/// reallocated. +/// +/// For example, a vector with capacity 10 and length 0 would be an empty vector +/// with space for 10 more elements. Pushing 10 or fewer elements onto the +/// vector will not change its capacity or cause reallocation to occur. However, +/// if the vector's length is increased to 11, it will have to reallocate, which +/// can be slow. For this reason, it is recommended to use [`Vec::with_capacity`] +/// whenever possible to specify how big the vector is expected to get. +/// +/// # Guarantees +/// +/// Due to its incredibly fundamental nature, `Vec` makes a lot of guarantees +/// about its design. This ensures that it's as low-overhead as possible in +/// the general case, and can be correctly manipulated in primitive ways +/// by unsafe code. Note that these guarantees refer to an unqualified `Vec`. +/// If additional type parameters are added (e.g., to support custom allocators), +/// overriding their defaults may change the behavior. +/// +/// Most fundamentally, `Vec` is and always will be a (pointer, capacity, length) +/// triplet. No more, no less. The order of these fields is completely +/// unspecified, and you should use the appropriate methods to modify these. +/// The pointer will never be null, so this type is null-pointer-optimized. +/// +/// However, the pointer might not actually point to allocated memory. In particular, +/// if you construct a `Vec` with capacity 0 via [`Vec::new`], [`vec![]`][`vec!`], +/// [`Vec::with_capacity(0)`][`Vec::with_capacity`], or by calling [`shrink_to_fit`] +/// on an empty Vec, it will not allocate memory. Similarly, if you store zero-sized +/// types inside a `Vec`, it will not allocate space for them. *Note that in this case +/// the `Vec` might not report a [`capacity`] of 0*. `Vec` will allocate if and only +/// if [mem::size_of::\]\() * [capacity]\() > 0. In general, `Vec`'s allocation +/// details are very subtle --- if you intend to allocate memory using a `Vec` +/// and use it for something else (either to pass to unsafe code, or to build your +/// own memory-backed collection), be sure to deallocate this memory by using +/// `from_raw_parts` to recover the `Vec` and then dropping it. +/// +/// If a `Vec` *has* allocated memory, then the memory it points to is on the heap +/// (as defined by the allocator Rust is configured to use by default), and its +/// pointer points to [`len`] initialized, contiguous elements in order (what +/// you would see if you coerced it to a slice), followed by [capacity] - [len] +/// logically uninitialized, contiguous elements. +/// +/// A vector containing the elements `'a'` and `'b'` with capacity 4 can be +/// visualized as below. The top part is the `Vec` struct, it contains a +/// pointer to the head of the allocation in the heap, length and capacity. +/// The bottom part is the allocation on the heap, a contiguous memory block. +/// +/// ```text +/// ptr len capacity +/// +--------+--------+--------+ +/// | 0x0123 | 2 | 4 | +/// +--------+--------+--------+ +/// | +/// v +/// Heap +--------+--------+--------+--------+ +/// | 'a' | 'b' | uninit | uninit | +/// +--------+--------+--------+--------+ +/// ``` +/// +/// - **uninit** represents memory that is not initialized, see [`MaybeUninit`]. +/// - Note: the ABI is not stable and `Vec` makes no guarantees about its memory +/// layout (including the order of fields). +/// +/// `Vec` will never perform a "small optimization" where elements are actually +/// stored on the stack for two reasons: +/// +/// * It would make it more difficult for unsafe code to correctly manipulate +/// a `Vec`. The contents of a `Vec` wouldn't have a stable address if it were +/// only moved, and it would be more difficult to determine if a `Vec` had +/// actually allocated memory. +/// +/// * It would penalize the general case, incurring an additional branch +/// on every access. +/// +/// `Vec` will never automatically shrink itself, even if completely empty. This +/// ensures no unnecessary allocations or deallocations occur. Emptying a `Vec` +/// and then filling it back up to the same [`len`] should incur no calls to +/// the allocator. If you wish to free up unused memory, use +/// [`shrink_to_fit`] or [`shrink_to`]. +/// +/// [`push`] and [`insert`] will never (re)allocate if the reported capacity is +/// sufficient. [`push`] and [`insert`] *will* (re)allocate if +/// [len] == [capacity]. That is, the reported capacity is completely +/// accurate, and can be relied on. It can even be used to manually free the memory +/// allocated by a `Vec` if desired. Bulk insertion methods *may* reallocate, even +/// when not necessary. +/// +/// `Vec` does not guarantee any particular growth strategy when reallocating +/// when full, nor when [`reserve`] is called. The current strategy is basic +/// and it may prove desirable to use a non-constant growth factor. Whatever +/// strategy is used will of course guarantee *O*(1) amortized [`push`]. +/// +/// `vec![x; n]`, `vec![a, b, c, d]`, and +/// [`Vec::with_capacity(n)`][`Vec::with_capacity`], will all produce a `Vec` +/// with exactly the requested capacity. If [len] == [capacity], +/// (as is the case for the [`vec!`] macro), then a `Vec` can be converted to +/// and from a [`Box<[T]>`][owned slice] without reallocating or moving the elements. +/// +/// `Vec` will not specifically overwrite any data that is removed from it, +/// but also won't specifically preserve it. Its uninitialized memory is +/// scratch space that it may use however it wants. It will generally just do +/// whatever is most efficient or otherwise easy to implement. Do not rely on +/// removed data to be erased for security purposes. Even if you drop a `Vec`, its +/// buffer may simply be reused by another allocation. Even if you zero a `Vec`'s memory +/// first, that might not actually happen because the optimizer does not consider +/// this a side-effect that must be preserved. There is one case which we will +/// not break, however: using `unsafe` code to write to the excess capacity, +/// and then increasing the length to match, is always valid. +/// +/// Currently, `Vec` does not guarantee the order in which elements are dropped. +/// The order has changed in the past and may change again. +/// +/// [`get`]: ../../std/vec/struct.Vec.html#method.get +/// [`get_mut`]: ../../std/vec/struct.Vec.html#method.get_mut +/// [`String`]: alloc_crate::string::String +/// [`&str`]: type@str +/// [`shrink_to_fit`]: Vec::shrink_to_fit +/// [`shrink_to`]: Vec::shrink_to +/// [capacity]: Vec::capacity +/// [`capacity`]: Vec::capacity +/// [mem::size_of::\]: core::mem::size_of +/// [len]: Vec::len +/// [`len`]: Vec::len +/// [`push`]: Vec::push +/// [`insert`]: Vec::insert +/// [`reserve`]: Vec::reserve +/// [`MaybeUninit`]: core::mem::MaybeUninit +/// [owned slice]: Box +pub struct Vec { + buf: RawVec, + len: usize, +} + +//////////////////////////////////////////////////////////////////////////////// +// Inherent methods +//////////////////////////////////////////////////////////////////////////////// + +impl Vec { + /// Constructs a new, empty `Vec`. + /// + /// The vector will not allocate until elements are pushed onto it. + /// + /// # Examples + /// + /// ``` + /// # #![allow(unused_mut)] + /// let mut vec: Vec = Vec::new(); + /// ``` + #[inline(always)] + #[must_use] + pub const fn new() -> Self { + Vec { + buf: RawVec::new(), + len: 0, + } + } + + /// Constructs a new, empty `Vec` with at least the specified capacity. + /// + /// The vector will be able to hold at least `capacity` elements without + /// reallocating. This method is allowed to allocate for more elements than + /// `capacity`. If `capacity` is 0, the vector will not allocate. + /// + /// It is important to note that although the returned vector has the + /// minimum *capacity* specified, the vector will have a zero *length*. For + /// an explanation of the difference between length and capacity, see + /// *[Capacity and reallocation]*. + /// + /// If it is important to know the exact allocated capacity of a `Vec`, + /// always use the [`capacity`] method after construction. + /// + /// For `Vec` where `T` is a zero-sized type, there will be no allocation + /// and the capacity will always be `usize::MAX`. + /// + /// [Capacity and reallocation]: #capacity-and-reallocation + /// [`capacity`]: Vec::capacity + /// + /// # Panics + /// + /// Panics if the new capacity exceeds `isize::MAX` bytes. + /// + /// # Examples + /// + /// ``` + /// let mut vec = Vec::with_capacity(10); + /// + /// // The vector contains no items, even though it has capacity for more + /// assert_eq!(vec.len(), 0); + /// assert!(vec.capacity() >= 10); + /// + /// // These are all done without reallocating... + /// for i in 0..10 { + /// vec.push(i); + /// } + /// assert_eq!(vec.len(), 10); + /// assert!(vec.capacity() >= 10); + /// + /// // ...but this may make the vector reallocate + /// vec.push(11); + /// assert_eq!(vec.len(), 11); + /// assert!(vec.capacity() >= 11); + /// + /// // A vector of a zero-sized type will always over-allocate, since no + /// // allocation is necessary + /// let vec_units = Vec::<()>::with_capacity(10); + /// assert_eq!(vec_units.capacity(), usize::MAX); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + #[must_use] + pub fn with_capacity(capacity: usize) -> Self { + Self::with_capacity_in(capacity, Global) + } + + /// Creates a `Vec` directly from a pointer, a capacity, and a length. + /// + /// # Safety + /// + /// This is highly unsafe, due to the number of invariants that aren't + /// checked: + /// + /// * `T` needs to have the same alignment as what `ptr` was allocated with. + /// (`T` having a less strict alignment is not sufficient, the alignment really + /// needs to be equal to satisfy the [`dealloc`] requirement that memory must be + /// allocated and deallocated with the same layout.) + /// * The size of `T` times the `capacity` (ie. the allocated size in bytes) needs + /// to be the same size as the pointer was allocated with. (Because similar to + /// alignment, [`dealloc`] must be called with the same layout `size`.) + /// * `length` needs to be less than or equal to `capacity`. + /// * The first `length` values must be properly initialized values of type `T`. + /// * `capacity` needs to be the capacity that the pointer was allocated with. + /// * The allocated size in bytes must be no larger than `isize::MAX`. + /// See the safety documentation of [`pointer::offset`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.offset). + /// + /// These requirements are always upheld by any `ptr` that has been allocated + /// via `Vec`. Other allocation sources are allowed if the invariants are + /// upheld. + /// + /// Violating these may cause problems like corrupting the allocator's + /// internal data structures. For example it is normally **not** safe + /// to build a `Vec` from a pointer to a C `char` array with length + /// `size_t`, doing so is only safe if the array was initially allocated by + /// a `Vec` or `String`. + /// It's also not safe to build one from a `Vec` and its length, because + /// the allocator cares about the alignment, and these two types have different + /// alignments. The buffer was allocated with alignment 2 (for `u16`), but after + /// turning it into a `Vec` it'll be deallocated with alignment 1. To avoid + /// these issues, it is often preferable to do casting/transmuting using + /// [`slice::from_raw_parts`] instead. + /// + /// The ownership of `ptr` is effectively transferred to the + /// `Vec` which may then deallocate, reallocate or change the + /// contents of memory pointed to by the pointer at will. Ensure + /// that nothing else uses the pointer after calling this + /// function. + /// + /// [`String`]: alloc_crate::string::String + /// [`dealloc`]: crate::alloc::GlobalAlloc::dealloc + /// + /// # Examples + /// + /// ``` + /// use std::ptr; + /// use std::mem; + /// + /// let v = vec![1, 2, 3]; + /// + // FIXME Update this when vec_into_raw_parts is stabilized + /// // Prevent running `v`'s destructor so we are in complete control + /// // of the allocation. + /// let mut v = mem::ManuallyDrop::new(v); + /// + /// // Pull out the various important pieces of information about `v` + /// let p = v.as_mut_ptr(); + /// let len = v.len(); + /// let cap = v.capacity(); + /// + /// unsafe { + /// // Overwrite memory with 4, 5, 6 + /// for i in 0..len { + /// ptr::write(p.add(i), 4 + i); + /// } + /// + /// // Put everything back together into a Vec + /// let rebuilt = Vec::from_raw_parts(p, len, cap); + /// assert_eq!(rebuilt, [4, 5, 6]); + /// } + /// ``` + /// + /// Using memory that was allocated elsewhere: + /// + /// ```rust + /// #![feature(allocator_api)] + /// + /// use std::alloc::{AllocError, Allocator, Global, Layout}; + /// + /// fn main() { + /// let layout = Layout::array::(16).expect("overflow cannot happen"); + /// + /// let vec = unsafe { + /// let mem = match Global.allocate(layout) { + /// Ok(mem) => mem.cast::().as_ptr(), + /// Err(AllocError) => return, + /// }; + /// + /// mem.write(1_000_000); + /// + /// Vec::from_raw_parts_in(mem, 1, 16, Global) + /// }; + /// + /// assert_eq!(vec, &[1_000_000]); + /// assert_eq!(vec.capacity(), 16); + /// } + /// ``` + #[inline(always)] + pub unsafe fn from_raw_parts(ptr: *mut T, length: usize, capacity: usize) -> Self { + unsafe { Self::from_raw_parts_in(ptr, length, capacity, Global) } + } +} + +impl Vec { + /// Constructs a new, empty `Vec`. + /// + /// The vector will not allocate until elements are pushed onto it. + /// + /// # Examples + /// + /// ``` + /// use std::alloc::System; + /// + /// # #[allow(unused_mut)] + /// let mut vec: Vec = Vec::new_in(System); + /// ``` + #[inline(always)] + pub const fn new_in(alloc: A) -> Self { + Vec { + buf: RawVec::new_in(alloc), + len: 0, + } + } + + /// Constructs a new, empty `Vec` with at least the specified capacity + /// with the provided allocator. + /// + /// The vector will be able to hold at least `capacity` elements without + /// reallocating. This method is allowed to allocate for more elements than + /// `capacity`. If `capacity` is 0, the vector will not allocate. + /// + /// It is important to note that although the returned vector has the + /// minimum *capacity* specified, the vector will have a zero *length*. For + /// an explanation of the difference between length and capacity, see + /// *[Capacity and reallocation]*. + /// + /// If it is important to know the exact allocated capacity of a `Vec`, + /// always use the [`capacity`] method after construction. + /// + /// For `Vec` where `T` is a zero-sized type, there will be no allocation + /// and the capacity will always be `usize::MAX`. + /// + /// [Capacity and reallocation]: #capacity-and-reallocation + /// [`capacity`]: Vec::capacity + /// + /// # Panics + /// + /// Panics if the new capacity exceeds `isize::MAX` bytes. + /// + /// # Examples + /// + /// ``` + /// use std::alloc::System; + /// + /// let mut vec = Vec::with_capacity_in(10, System); + /// + /// // The vector contains no items, even though it has capacity for more + /// assert_eq!(vec.len(), 0); + /// assert_eq!(vec.capacity(), 10); + /// + /// // These are all done without reallocating... + /// for i in 0..10 { + /// vec.push(i); + /// } + /// assert_eq!(vec.len(), 10); + /// assert_eq!(vec.capacity(), 10); + /// + /// // ...but this may make the vector reallocate + /// vec.push(11); + /// assert_eq!(vec.len(), 11); + /// assert!(vec.capacity() >= 11); + /// + /// // A vector of a zero-sized type will always over-allocate, since no + /// // allocation is necessary + /// let vec_units = Vec::<(), System>::with_capacity_in(10, System); + /// assert_eq!(vec_units.capacity(), usize::MAX); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn with_capacity_in(capacity: usize, alloc: A) -> Self { + Vec { + buf: RawVec::with_capacity_in(capacity, alloc), + len: 0, + } + } + + /// Creates a `Vec` directly from a pointer, a capacity, a length, + /// and an allocator. + /// + /// # Safety + /// + /// This is highly unsafe, due to the number of invariants that aren't + /// checked: + /// + /// * `T` needs to have the same alignment as what `ptr` was allocated with. + /// (`T` having a less strict alignment is not sufficient, the alignment really + /// needs to be equal to satisfy the [`dealloc`] requirement that memory must be + /// allocated and deallocated with the same layout.) + /// * The size of `T` times the `capacity` (ie. the allocated size in bytes) needs + /// to be the same size as the pointer was allocated with. (Because similar to + /// alignment, [`dealloc`] must be called with the same layout `size`.) + /// * `length` needs to be less than or equal to `capacity`. + /// * The first `length` values must be properly initialized values of type `T`. + /// * `capacity` needs to [*fit*] the layout size that the pointer was allocated with. + /// * The allocated size in bytes must be no larger than `isize::MAX`. + /// See the safety documentation of [`pointer::offset`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.offset). + /// + /// These requirements are always upheld by any `ptr` that has been allocated + /// via `Vec`. Other allocation sources are allowed if the invariants are + /// upheld. + /// + /// Violating these may cause problems like corrupting the allocator's + /// internal data structures. For example it is **not** safe + /// to build a `Vec` from a pointer to a C `char` array with length `size_t`. + /// It's also not safe to build one from a `Vec` and its length, because + /// the allocator cares about the alignment, and these two types have different + /// alignments. The buffer was allocated with alignment 2 (for `u16`), but after + /// turning it into a `Vec` it'll be deallocated with alignment 1. + /// + /// The ownership of `ptr` is effectively transferred to the + /// `Vec` which may then deallocate, reallocate or change the + /// contents of memory pointed to by the pointer at will. Ensure + /// that nothing else uses the pointer after calling this + /// function. + /// + /// [`String`]: alloc_crate::string::String + /// [`dealloc`]: crate::alloc::GlobalAlloc::dealloc + /// [*fit*]: crate::alloc::Allocator#memory-fitting + /// + /// # Examples + /// + /// ``` + /// use std::alloc::System; + /// + /// use std::ptr; + /// use std::mem; + /// + /// + /// # use allocator_api2::vec::Vec; + /// let mut v = Vec::with_capacity_in(3, System); + /// v.push(1); + /// v.push(2); + /// v.push(3); + /// + // FIXME Update this when vec_into_raw_parts is stabilized + /// // Prevent running `v`'s destructor so we are in complete control + /// // of the allocation. + /// let mut v = mem::ManuallyDrop::new(v); + /// + /// // Pull out the various important pieces of information about `v` + /// let p = v.as_mut_ptr(); + /// let len = v.len(); + /// let cap = v.capacity(); + /// let alloc = v.allocator(); + /// + /// unsafe { + /// // Overwrite memory with 4, 5, 6 + /// for i in 0..len { + /// ptr::write(p.add(i), 4 + i); + /// } + /// + /// // Put everything back together into a Vec + /// let rebuilt = Vec::from_raw_parts_in(p, len, cap, alloc.clone()); + /// assert_eq!(rebuilt, [4, 5, 6]); + /// } + /// ``` + /// + /// Using memory that was allocated elsewhere: + /// + /// ```rust + /// use std::alloc::{alloc, Layout}; + /// + /// fn main() { + /// let layout = Layout::array::(16).expect("overflow cannot happen"); + /// let vec = unsafe { + /// let mem = alloc(layout).cast::(); + /// if mem.is_null() { + /// return; + /// } + /// + /// mem.write(1_000_000); + /// + /// Vec::from_raw_parts(mem, 1, 16) + /// }; + /// + /// assert_eq!(vec, &[1_000_000]); + /// assert_eq!(vec.capacity(), 16); + /// } + /// ``` + #[inline(always)] + pub unsafe fn from_raw_parts_in(ptr: *mut T, length: usize, capacity: usize, alloc: A) -> Self { + unsafe { + Vec { + buf: RawVec::from_raw_parts_in(ptr, capacity, alloc), + len: length, + } + } + } + + /// Decomposes a `Vec` into its raw components. + /// + /// Returns the raw pointer to the underlying data, the length of + /// the vector (in elements), and the allocated capacity of the + /// data (in elements). These are the same arguments in the same + /// order as the arguments to [`from_raw_parts`]. + /// + /// After calling this function, the caller is responsible for the + /// memory previously managed by the `Vec`. The only way to do + /// this is to convert the raw pointer, length, and capacity back + /// into a `Vec` with the [`from_raw_parts`] function, allowing + /// the destructor to perform the cleanup. + /// + /// [`from_raw_parts`]: Vec::from_raw_parts + /// + /// # Examples + /// + /// ``` + /// #![feature(vec_into_raw_parts)] + /// let v: Vec = vec![-1, 0, 1]; + /// + /// let (ptr, len, cap) = v.into_raw_parts(); + /// + /// let rebuilt = unsafe { + /// // We can now make changes to the components, such as + /// // transmuting the raw pointer to a compatible type. + /// let ptr = ptr as *mut u32; + /// + /// Vec::from_raw_parts(ptr, len, cap) + /// }; + /// assert_eq!(rebuilt, [4294967295, 0, 1]); + /// ``` + pub fn into_raw_parts(self) -> (*mut T, usize, usize) { + let mut me = ManuallyDrop::new(self); + (me.as_mut_ptr(), me.len(), me.capacity()) + } + + /// Decomposes a `Vec` into its raw components. + /// + /// Returns the raw pointer to the underlying data, the length of the vector (in elements), + /// the allocated capacity of the data (in elements), and the allocator. These are the same + /// arguments in the same order as the arguments to [`from_raw_parts_in`]. + /// + /// After calling this function, the caller is responsible for the + /// memory previously managed by the `Vec`. The only way to do + /// this is to convert the raw pointer, length, and capacity back + /// into a `Vec` with the [`from_raw_parts_in`] function, allowing + /// the destructor to perform the cleanup. + /// + /// [`from_raw_parts_in`]: Vec::from_raw_parts_in + /// + /// # Examples + /// + /// ``` + /// #![feature(allocator_api, vec_into_raw_parts)] + /// + /// use std::alloc::System; + /// + /// let mut v: Vec = Vec::new_in(System); + /// v.push(-1); + /// v.push(0); + /// v.push(1); + /// + /// let (ptr, len, cap, alloc) = v.into_raw_parts_with_alloc(); + /// + /// let rebuilt = unsafe { + /// // We can now make changes to the components, such as + /// // transmuting the raw pointer to a compatible type. + /// let ptr = ptr as *mut u32; + /// + /// Vec::from_raw_parts_in(ptr, len, cap, alloc) + /// }; + /// assert_eq!(rebuilt, [4294967295, 0, 1]); + /// ``` + // #[unstable(feature = "vec_into_raw_parts", reason = "new API", issue = "65816")] + pub fn into_raw_parts_with_alloc(self) -> (*mut T, usize, usize, A) { + let mut me = ManuallyDrop::new(self); + let len = me.len(); + let capacity = me.capacity(); + let ptr = me.as_mut_ptr(); + let alloc = unsafe { ptr::read(me.allocator()) }; + (ptr, len, capacity, alloc) + } + + /// Returns the total number of elements the vector can hold without + /// reallocating. + /// + /// # Examples + /// + /// ``` + /// let mut vec: Vec = Vec::with_capacity(10); + /// vec.push(42); + /// assert_eq!(vec.capacity(), 10); + /// ``` + #[inline(always)] + pub fn capacity(&self) -> usize { + self.buf.capacity() + } + + /// Reserves capacity for at least `additional` more elements to be inserted + /// in the given `Vec`. The collection may reserve more space to + /// speculatively avoid frequent reallocations. After calling `reserve`, + /// capacity will be greater than or equal to `self.len() + additional`. + /// Does nothing if capacity is already sufficient. + /// + /// # Panics + /// + /// Panics if the new capacity exceeds `isize::MAX` bytes. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![1]; + /// vec.reserve(10); + /// assert!(vec.capacity() >= 11); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn reserve(&mut self, additional: usize) { + self.buf.reserve(self.len, additional); + } + + /// Reserves the minimum capacity for at least `additional` more elements to + /// be inserted in the given `Vec`. Unlike [`reserve`], this will not + /// deliberately over-allocate to speculatively avoid frequent allocations. + /// After calling `reserve_exact`, capacity will be greater than or equal to + /// `self.len() + additional`. Does nothing if the capacity is already + /// sufficient. + /// + /// Note that the allocator may give the collection more space than it + /// requests. Therefore, capacity can not be relied upon to be precisely + /// minimal. Prefer [`reserve`] if future insertions are expected. + /// + /// [`reserve`]: Vec::reserve + /// + /// # Panics + /// + /// Panics if the new capacity exceeds `isize::MAX` bytes. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![1]; + /// vec.reserve_exact(10); + /// assert!(vec.capacity() >= 11); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn reserve_exact(&mut self, additional: usize) { + self.buf.reserve_exact(self.len, additional); + } + + /// Tries to reserve capacity for at least `additional` more elements to be inserted + /// in the given `Vec`. The collection may reserve more space to speculatively avoid + /// frequent reallocations. After calling `try_reserve`, capacity will be + /// greater than or equal to `self.len() + additional` if it returns + /// `Ok(())`. Does nothing if capacity is already sufficient. This method + /// preserves the contents even if an error occurs. + /// + /// # Errors + /// + /// If the capacity overflows, or the allocator reports a failure, then an error + /// is returned. + /// + /// # Examples + /// + /// ``` + /// use std::collections::TryReserveError; + /// + /// fn process_data(data: &[u32]) -> Result, TryReserveError> { + /// let mut output = Vec::new(); + /// + /// // Pre-reserve the memory, exiting if we can't + /// output.try_reserve(data.len())?; + /// + /// // Now we know this can't OOM in the middle of our complex work + /// output.extend(data.iter().map(|&val| { + /// val * 2 + 5 // very complicated + /// })); + /// + /// Ok(output) + /// } + /// # process_data(&[1, 2, 3]).expect("why is the test harness OOMing on 12 bytes?"); + /// ``` + #[inline(always)] + pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError> { + self.buf.try_reserve(self.len, additional) + } + + /// Tries to reserve the minimum capacity for at least `additional` + /// elements to be inserted in the given `Vec`. Unlike [`try_reserve`], + /// this will not deliberately over-allocate to speculatively avoid frequent + /// allocations. After calling `try_reserve_exact`, capacity will be greater + /// than or equal to `self.len() + additional` if it returns `Ok(())`. + /// Does nothing if the capacity is already sufficient. + /// + /// Note that the allocator may give the collection more space than it + /// requests. Therefore, capacity can not be relied upon to be precisely + /// minimal. Prefer [`try_reserve`] if future insertions are expected. + /// + /// [`try_reserve`]: Vec::try_reserve + /// + /// # Errors + /// + /// If the capacity overflows, or the allocator reports a failure, then an error + /// is returned. + /// + /// # Examples + /// + /// ``` + /// use std::collections::TryReserveError; + /// + /// fn process_data(data: &[u32]) -> Result, TryReserveError> { + /// let mut output = Vec::new(); + /// + /// // Pre-reserve the memory, exiting if we can't + /// output.try_reserve_exact(data.len())?; + /// + /// // Now we know this can't OOM in the middle of our complex work + /// output.extend(data.iter().map(|&val| { + /// val * 2 + 5 // very complicated + /// })); + /// + /// Ok(output) + /// } + /// # process_data(&[1, 2, 3]).expect("why is the test harness OOMing on 12 bytes?"); + /// ``` + #[inline(always)] + pub fn try_reserve_exact(&mut self, additional: usize) -> Result<(), TryReserveError> { + self.buf.try_reserve_exact(self.len, additional) + } + + /// Shrinks the capacity of the vector as much as possible. + /// + /// It will drop down as close as possible to the length but the allocator + /// may still inform the vector that there is space for a few more elements. + /// + /// # Examples + /// + /// ``` + /// let mut vec = Vec::with_capacity(10); + /// vec.extend([1, 2, 3]); + /// assert_eq!(vec.capacity(), 10); + /// vec.shrink_to_fit(); + /// assert!(vec.capacity() >= 3); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn shrink_to_fit(&mut self) { + // The capacity is never less than the length, and there's nothing to do when + // they are equal, so we can avoid the panic case in `RawVec::shrink_to_fit` + // by only calling it with a greater capacity. + if self.capacity() > self.len { + self.buf.shrink_to_fit(self.len); + } + } + + /// Shrinks the capacity of the vector with a lower bound. + /// + /// The capacity will remain at least as large as both the length + /// and the supplied value. + /// + /// If the current capacity is less than the lower limit, this is a no-op. + /// + /// # Examples + /// + /// ``` + /// let mut vec = Vec::with_capacity(10); + /// vec.extend([1, 2, 3]); + /// assert_eq!(vec.capacity(), 10); + /// vec.shrink_to(4); + /// assert!(vec.capacity() >= 4); + /// vec.shrink_to(0); + /// assert!(vec.capacity() >= 3); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn shrink_to(&mut self, min_capacity: usize) { + if self.capacity() > min_capacity { + self.buf.shrink_to_fit(cmp::max(self.len, min_capacity)); + } + } + + /// Converts the vector into [`Box<[T]>`][owned slice]. + /// + /// If the vector has excess capacity, its items will be moved into a + /// newly-allocated buffer with exactly the right capacity. + /// + /// [owned slice]: Box + /// + /// # Examples + /// + /// ``` + /// let v = vec![1, 2, 3]; + /// + /// let slice = v.into_boxed_slice(); + /// ``` + /// + /// Any excess capacity is removed: + /// + /// ``` + /// let mut vec = Vec::with_capacity(10); + /// vec.extend([1, 2, 3]); + /// + /// assert_eq!(vec.capacity(), 10); + /// let slice = vec.into_boxed_slice(); + /// assert_eq!(slice.into_vec().capacity(), 3); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn into_boxed_slice(mut self) -> Box<[T], A> { + unsafe { + self.shrink_to_fit(); + let me = ManuallyDrop::new(self); + let buf = ptr::read(&me.buf); + let len = me.len(); + buf.into_box(len).assume_init() + } + } + + /// Shortens the vector, keeping the first `len` elements and dropping + /// the rest. + /// + /// If `len` is greater than the vector's current length, this has no + /// effect. + /// + /// The [`drain`] method can emulate `truncate`, but causes the excess + /// elements to be returned instead of dropped. + /// + /// Note that this method has no effect on the allocated capacity + /// of the vector. + /// + /// # Examples + /// + /// Truncating a five element vector to two elements: + /// + /// ``` + /// let mut vec = vec![1, 2, 3, 4, 5]; + /// vec.truncate(2); + /// assert_eq!(vec, [1, 2]); + /// ``` + /// + /// No truncation occurs when `len` is greater than the vector's current + /// length: + /// + /// ``` + /// let mut vec = vec![1, 2, 3]; + /// vec.truncate(8); + /// assert_eq!(vec, [1, 2, 3]); + /// ``` + /// + /// Truncating when `len == 0` is equivalent to calling the [`clear`] + /// method. + /// + /// ``` + /// let mut vec = vec![1, 2, 3]; + /// vec.truncate(0); + /// assert_eq!(vec, []); + /// ``` + /// + /// [`clear`]: Vec::clear + /// [`drain`]: Vec::drain + #[inline(always)] + pub fn truncate(&mut self, len: usize) { + // This is safe because: + // + // * the slice passed to `drop_in_place` is valid; the `len > self.len` + // case avoids creating an invalid slice, and + // * the `len` of the vector is shrunk before calling `drop_in_place`, + // such that no value will be dropped twice in case `drop_in_place` + // were to panic once (if it panics twice, the program aborts). + unsafe { + // Note: It's intentional that this is `>` and not `>=`. + // Changing it to `>=` has negative performance + // implications in some cases. See #78884 for more. + if len > self.len { + return; + } + let remaining_len = self.len - len; + let s = ptr::slice_from_raw_parts_mut(self.as_mut_ptr().add(len), remaining_len); + self.len = len; + ptr::drop_in_place(s); + } + } + + /// Extracts a slice containing the entire vector. + /// + /// Equivalent to `&s[..]`. + /// + /// # Examples + /// + /// ``` + /// use std::io::{self, Write}; + /// let buffer = vec![1, 2, 3, 5, 8]; + /// io::sink().write(buffer.as_slice()).unwrap(); + /// ``` + #[inline(always)] + pub fn as_slice(&self) -> &[T] { + self + } + + /// Extracts a mutable slice of the entire vector. + /// + /// Equivalent to `&mut s[..]`. + /// + /// # Examples + /// + /// ``` + /// use std::io::{self, Read}; + /// let mut buffer = vec![0; 3]; + /// io::repeat(0b101).read_exact(buffer.as_mut_slice()).unwrap(); + /// ``` + #[inline(always)] + pub fn as_mut_slice(&mut self) -> &mut [T] { + self + } + + /// Returns a raw pointer to the vector's buffer, or a dangling raw pointer + /// valid for zero sized reads if the vector didn't allocate. + /// + /// The caller must ensure that the vector outlives the pointer this + /// function returns, or else it will end up pointing to garbage. + /// Modifying the vector may cause its buffer to be reallocated, + /// which would also make any pointers to it invalid. + /// + /// The caller must also ensure that the memory the pointer (non-transitively) points to + /// is never written to (except inside an `UnsafeCell`) using this pointer or any pointer + /// derived from it. If you need to mutate the contents of the slice, use [`as_mut_ptr`]. + /// + /// # Examples + /// + /// ``` + /// let x = vec![1, 2, 4]; + /// let x_ptr = x.as_ptr(); + /// + /// unsafe { + /// for i in 0..x.len() { + /// assert_eq!(*x_ptr.add(i), 1 << i); + /// } + /// } + /// ``` + /// + /// [`as_mut_ptr`]: Vec::as_mut_ptr + #[inline(always)] + pub fn as_ptr(&self) -> *const T { + // We shadow the slice method of the same name to avoid going through + // `deref`, which creates an intermediate reference. + let ptr = self.buf.ptr(); + unsafe { + assume(!ptr.is_null()); + } + ptr + } + + /// Returns an unsafe mutable pointer to the vector's buffer, or a dangling + /// raw pointer valid for zero sized reads if the vector didn't allocate. + /// + /// The caller must ensure that the vector outlives the pointer this + /// function returns, or else it will end up pointing to garbage. + /// Modifying the vector may cause its buffer to be reallocated, + /// which would also make any pointers to it invalid. + /// + /// # Examples + /// + /// ``` + /// // Allocate vector big enough for 4 elements. + /// let size = 4; + /// let mut x: Vec = Vec::with_capacity(size); + /// let x_ptr = x.as_mut_ptr(); + /// + /// // Initialize elements via raw pointer writes, then set length. + /// unsafe { + /// for i in 0..size { + /// *x_ptr.add(i) = i as i32; + /// } + /// x.set_len(size); + /// } + /// assert_eq!(&*x, &[0, 1, 2, 3]); + /// ``` + #[inline(always)] + pub fn as_mut_ptr(&mut self) -> *mut T { + // We shadow the slice method of the same name to avoid going through + // `deref_mut`, which creates an intermediate reference. + let ptr = self.buf.ptr(); + unsafe { + assume(!ptr.is_null()); + } + ptr + } + + /// Returns a reference to the underlying allocator. + #[inline(always)] + pub fn allocator(&self) -> &A { + self.buf.allocator() + } + + /// Forces the length of the vector to `new_len`. + /// + /// This is a low-level operation that maintains none of the normal + /// invariants of the type. Normally changing the length of a vector + /// is done using one of the safe operations instead, such as + /// [`truncate`], [`resize`], [`extend`], or [`clear`]. + /// + /// [`truncate`]: Vec::truncate + /// [`resize`]: Vec::resize + /// [`extend`]: Extend::extend + /// [`clear`]: Vec::clear + /// + /// # Safety + /// + /// - `new_len` must be less than or equal to [`capacity()`]. + /// - The elements at `old_len..new_len` must be initialized. + /// + /// [`capacity()`]: Vec::capacity + /// + /// # Examples + /// + /// This method can be useful for situations in which the vector + /// is serving as a buffer for other code, particularly over FFI: + /// + /// ```no_run + /// # #![allow(dead_code)] + /// # // This is just a minimal skeleton for the doc example; + /// # // don't use this as a starting point for a real library. + /// # pub struct StreamWrapper { strm: *mut std::ffi::c_void } + /// # const Z_OK: i32 = 0; + /// # extern "C" { + /// # fn deflateGetDictionary( + /// # strm: *mut std::ffi::c_void, + /// # dictionary: *mut u8, + /// # dictLength: *mut usize, + /// # ) -> i32; + /// # } + /// # impl StreamWrapper { + /// pub fn get_dictionary(&self) -> Option> { + /// // Per the FFI method's docs, "32768 bytes is always enough". + /// let mut dict = Vec::with_capacity(32_768); + /// let mut dict_length = 0; + /// // SAFETY: When `deflateGetDictionary` returns `Z_OK`, it holds that: + /// // 1. `dict_length` elements were initialized. + /// // 2. `dict_length` <= the capacity (32_768) + /// // which makes `set_len` safe to call. + /// unsafe { + /// // Make the FFI call... + /// let r = deflateGetDictionary(self.strm, dict.as_mut_ptr(), &mut dict_length); + /// if r == Z_OK { + /// // ...and update the length to what was initialized. + /// dict.set_len(dict_length); + /// Some(dict) + /// } else { + /// None + /// } + /// } + /// } + /// # } + /// ``` + /// + /// While the following example is sound, there is a memory leak since + /// the inner vectors were not freed prior to the `set_len` call: + /// + /// ``` + /// let mut vec = vec![vec![1, 0, 0], + /// vec![0, 1, 0], + /// vec![0, 0, 1]]; + /// // SAFETY: + /// // 1. `old_len..0` is empty so no elements need to be initialized. + /// // 2. `0 <= capacity` always holds whatever `capacity` is. + /// unsafe { + /// vec.set_len(0); + /// } + /// ``` + /// + /// Normally, here, one would use [`clear`] instead to correctly drop + /// the contents and thus not leak memory. + #[inline(always)] + pub unsafe fn set_len(&mut self, new_len: usize) { + debug_assert!(new_len <= self.capacity()); + + self.len = new_len; + } + + /// Removes an element from the vector and returns it. + /// + /// The removed element is replaced by the last element of the vector. + /// + /// This does not preserve ordering, but is *O*(1). + /// If you need to preserve the element order, use [`remove`] instead. + /// + /// [`remove`]: Vec::remove + /// + /// # Panics + /// + /// Panics if `index` is out of bounds. + /// + /// # Examples + /// + /// ``` + /// let mut v = vec!["foo", "bar", "baz", "qux"]; + /// + /// assert_eq!(v.swap_remove(1), "bar"); + /// assert_eq!(v, ["foo", "qux", "baz"]); + /// + /// assert_eq!(v.swap_remove(0), "foo"); + /// assert_eq!(v, ["baz", "qux"]); + /// ``` + #[inline(always)] + pub fn swap_remove(&mut self, index: usize) -> T { + #[cold] + #[inline(never)] + fn assert_failed(index: usize, len: usize) -> ! { + panic!( + "swap_remove index (is {}) should be < len (is {})", + index, len + ); + } + + let len = self.len(); + if index >= len { + assert_failed(index, len); + } + unsafe { + // We replace self[index] with the last element. Note that if the + // bounds check above succeeds there must be a last element (which + // can be self[index] itself). + let value = ptr::read(self.as_ptr().add(index)); + let base_ptr = self.as_mut_ptr(); + ptr::copy(base_ptr.add(len - 1), base_ptr.add(index), 1); + self.set_len(len - 1); + value + } + } + + /// Inserts an element at position `index` within the vector, shifting all + /// elements after it to the right. + /// + /// # Panics + /// + /// Panics if `index > len`. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![1, 2, 3]; + /// vec.insert(1, 4); + /// assert_eq!(vec, [1, 4, 2, 3]); + /// vec.insert(4, 5); + /// assert_eq!(vec, [1, 4, 2, 3, 5]); + /// ``` + #[cfg(not(no_global_oom_handling))] + pub fn insert(&mut self, index: usize, element: T) { + #[cold] + #[inline(never)] + fn assert_failed(index: usize, len: usize) -> ! { + panic!( + "insertion index (is {}) should be <= len (is {})", + index, len + ); + } + + let len = self.len(); + + // space for the new element + if len == self.buf.capacity() { + self.reserve(1); + } + + unsafe { + // infallible + // The spot to put the new value + { + let p = self.as_mut_ptr().add(index); + match cmp::Ord::cmp(&index, &len) { + Ordering::Less => { + // Shift everything over to make space. (Duplicating the + // `index`th element into two consecutive places.) + ptr::copy(p, p.add(1), len - index); + } + Ordering::Equal => { + // No elements need shifting. + } + Ordering::Greater => { + assert_failed(index, len); + } + } + // Write it in, overwriting the first copy of the `index`th + // element. + ptr::write(p, element); + } + self.set_len(len + 1); + } + } + + /// Removes and returns the element at position `index` within the vector, + /// shifting all elements after it to the left. + /// + /// Note: Because this shifts over the remaining elements, it has a + /// worst-case performance of *O*(*n*). If you don't need the order of elements + /// to be preserved, use [`swap_remove`] instead. If you'd like to remove + /// elements from the beginning of the `Vec`, consider using + /// [`VecDeque::pop_front`] instead. + /// + /// [`swap_remove`]: Vec::swap_remove + /// [`VecDeque::pop_front`]: alloc_crate::collections::VecDeque::pop_front + /// + /// # Panics + /// + /// Panics if `index` is out of bounds. + /// + /// # Examples + /// + /// ``` + /// let mut v = vec![1, 2, 3]; + /// assert_eq!(v.remove(1), 2); + /// assert_eq!(v, [1, 3]); + /// ``` + #[track_caller] + #[inline(always)] + pub fn remove(&mut self, index: usize) -> T { + #[cold] + #[inline(never)] + #[track_caller] + fn assert_failed(index: usize, len: usize) -> ! { + panic!("removal index (is {}) should be < len (is {})", index, len); + } + + let len = self.len(); + if index >= len { + assert_failed(index, len); + } + unsafe { + // infallible + let ret; + { + // the place we are taking from. + let ptr = self.as_mut_ptr().add(index); + // copy it out, unsafely having a copy of the value on + // the stack and in the vector at the same time. + ret = ptr::read(ptr); + + // Shift everything down to fill in that spot. + ptr::copy(ptr.add(1), ptr, len - index - 1); + } + self.set_len(len - 1); + ret + } + } + + /// Retains only the elements specified by the predicate. + /// + /// In other words, remove all elements `e` for which `f(&e)` returns `false`. + /// This method operates in place, visiting each element exactly once in the + /// original order, and preserves the order of the retained elements. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![1, 2, 3, 4]; + /// vec.retain(|&x| x % 2 == 0); + /// assert_eq!(vec, [2, 4]); + /// ``` + /// + /// Because the elements are visited exactly once in the original order, + /// external state may be used to decide which elements to keep. + /// + /// ``` + /// let mut vec = vec![1, 2, 3, 4, 5]; + /// let keep = [false, true, true, false, true]; + /// let mut iter = keep.iter(); + /// vec.retain(|_| *iter.next().unwrap()); + /// assert_eq!(vec, [2, 3, 5]); + /// ``` + #[inline(always)] + pub fn retain(&mut self, mut f: F) + where + F: FnMut(&T) -> bool, + { + self.retain_mut(|elem| f(elem)); + } + + /// Retains only the elements specified by the predicate, passing a mutable reference to it. + /// + /// In other words, remove all elements `e` such that `f(&mut e)` returns `false`. + /// This method operates in place, visiting each element exactly once in the + /// original order, and preserves the order of the retained elements. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![1, 2, 3, 4]; + /// vec.retain_mut(|x| if *x <= 3 { + /// *x += 1; + /// true + /// } else { + /// false + /// }); + /// assert_eq!(vec, [2, 3, 4]); + /// ``` + #[inline] + pub fn retain_mut(&mut self, mut f: F) + where + F: FnMut(&mut T) -> bool, + { + let original_len = self.len(); + // Avoid double drop if the drop guard is not executed, + // since we may make some holes during the process. + unsafe { self.set_len(0) }; + + // Vec: [Kept, Kept, Hole, Hole, Hole, Hole, Unchecked, Unchecked] + // |<- processed len ->| ^- next to check + // |<- deleted cnt ->| + // |<- original_len ->| + // Kept: Elements which predicate returns true on. + // Hole: Moved or dropped element slot. + // Unchecked: Unchecked valid elements. + // + // This drop guard will be invoked when predicate or `drop` of element panicked. + // It shifts unchecked elements to cover holes and `set_len` to the correct length. + // In cases when predicate and `drop` never panick, it will be optimized out. + struct BackshiftOnDrop<'a, T, A: Allocator> { + v: &'a mut Vec, + processed_len: usize, + deleted_cnt: usize, + original_len: usize, + } + + impl Drop for BackshiftOnDrop<'_, T, A> { + fn drop(&mut self) { + if self.deleted_cnt > 0 { + // SAFETY: Trailing unchecked items must be valid since we never touch them. + unsafe { + ptr::copy( + self.v.as_ptr().add(self.processed_len), + self.v + .as_mut_ptr() + .add(self.processed_len - self.deleted_cnt), + self.original_len - self.processed_len, + ); + } + } + // SAFETY: After filling holes, all items are in contiguous memory. + unsafe { + self.v.set_len(self.original_len - self.deleted_cnt); + } + } + } + + let mut g = BackshiftOnDrop { + v: self, + processed_len: 0, + deleted_cnt: 0, + original_len, + }; + + fn process_loop( + original_len: usize, + f: &mut F, + g: &mut BackshiftOnDrop<'_, T, A>, + ) where + F: FnMut(&mut T) -> bool, + { + while g.processed_len != original_len { + // SAFETY: Unchecked element must be valid. + let cur = unsafe { &mut *g.v.as_mut_ptr().add(g.processed_len) }; + if !f(cur) { + // Advance early to avoid double drop if `drop_in_place` panicked. + g.processed_len += 1; + g.deleted_cnt += 1; + // SAFETY: We never touch this element again after dropped. + unsafe { ptr::drop_in_place(cur) }; + // We already advanced the counter. + if DELETED { + continue; + } else { + break; + } + } + if DELETED { + // SAFETY: `deleted_cnt` > 0, so the hole slot must not overlap with current element. + // We use copy for move, and never touch this element again. + unsafe { + let hole_slot = g.v.as_mut_ptr().add(g.processed_len - g.deleted_cnt); + ptr::copy_nonoverlapping(cur, hole_slot, 1); + } + } + g.processed_len += 1; + } + } + + // Stage 1: Nothing was deleted. + process_loop::(original_len, &mut f, &mut g); + + // Stage 2: Some elements were deleted. + process_loop::(original_len, &mut f, &mut g); + + // All item are processed. This can be optimized to `set_len` by LLVM. + drop(g); + } + + /// Removes all but the first of consecutive elements in the vector that resolve to the same + /// key. + /// + /// If the vector is sorted, this removes all duplicates. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![10, 20, 21, 30, 20]; + /// + /// vec.dedup_by_key(|i| *i / 10); + /// + /// assert_eq!(vec, [10, 20, 30, 20]); + /// ``` + #[inline(always)] + pub fn dedup_by_key(&mut self, mut key: F) + where + F: FnMut(&mut T) -> K, + K: PartialEq, + { + self.dedup_by(|a, b| key(a) == key(b)) + } + + /// Removes all but the first of consecutive elements in the vector satisfying a given equality + /// relation. + /// + /// The `same_bucket` function is passed references to two elements from the vector and + /// must determine if the elements compare equal. The elements are passed in opposite order + /// from their order in the slice, so if `same_bucket(a, b)` returns `true`, `a` is removed. + /// + /// If the vector is sorted, this removes all duplicates. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec!["foo", "bar", "Bar", "baz", "bar"]; + /// + /// vec.dedup_by(|a, b| a.eq_ignore_ascii_case(b)); + /// + /// assert_eq!(vec, ["foo", "bar", "baz", "bar"]); + /// ``` + #[inline] + pub fn dedup_by(&mut self, mut same_bucket: F) + where + F: FnMut(&mut T, &mut T) -> bool, + { + let len = self.len(); + if len <= 1 { + return; + } + + /* INVARIANT: vec.len() > read >= write > write-1 >= 0 */ + struct FillGapOnDrop<'a, T, A: Allocator> { + /* Offset of the element we want to check if it is duplicate */ + read: usize, + + /* Offset of the place where we want to place the non-duplicate + * when we find it. */ + write: usize, + + /* The Vec that would need correction if `same_bucket` panicked */ + vec: &'a mut Vec, + } + + impl<'a, T, A: Allocator> Drop for FillGapOnDrop<'a, T, A> { + fn drop(&mut self) { + /* This code gets executed when `same_bucket` panics */ + + /* SAFETY: invariant guarantees that `read - write` + * and `len - read` never overflow and that the copy is always + * in-bounds. */ + unsafe { + let ptr = self.vec.as_mut_ptr(); + let len = self.vec.len(); + + /* How many items were left when `same_bucket` panicked. + * Basically vec[read..].len() */ + let items_left = len.wrapping_sub(self.read); + + /* Pointer to first item in vec[write..write+items_left] slice */ + let dropped_ptr = ptr.add(self.write); + /* Pointer to first item in vec[read..] slice */ + let valid_ptr = ptr.add(self.read); + + /* Copy `vec[read..]` to `vec[write..write+items_left]`. + * The slices can overlap, so `copy_nonoverlapping` cannot be used */ + ptr::copy(valid_ptr, dropped_ptr, items_left); + + /* How many items have been already dropped + * Basically vec[read..write].len() */ + let dropped = self.read.wrapping_sub(self.write); + + self.vec.set_len(len - dropped); + } + } + } + + let mut gap = FillGapOnDrop { + read: 1, + write: 1, + vec: self, + }; + let ptr = gap.vec.as_mut_ptr(); + + /* Drop items while going through Vec, it should be more efficient than + * doing slice partition_dedup + truncate */ + + /* SAFETY: Because of the invariant, read_ptr, prev_ptr and write_ptr + * are always in-bounds and read_ptr never aliases prev_ptr */ + unsafe { + while gap.read < len { + let read_ptr = ptr.add(gap.read); + let prev_ptr = ptr.add(gap.write.wrapping_sub(1)); + + if same_bucket(&mut *read_ptr, &mut *prev_ptr) { + // Increase `gap.read` now since the drop may panic. + gap.read += 1; + /* We have found duplicate, drop it in-place */ + ptr::drop_in_place(read_ptr); + } else { + let write_ptr = ptr.add(gap.write); + + /* Because `read_ptr` can be equal to `write_ptr`, we either + * have to use `copy` or conditional `copy_nonoverlapping`. + * Looks like the first option is faster. */ + ptr::copy(read_ptr, write_ptr, 1); + + /* We have filled that place, so go further */ + gap.write += 1; + gap.read += 1; + } + } + + /* Technically we could let `gap` clean up with its Drop, but + * when `same_bucket` is guaranteed to not panic, this bloats a little + * the codegen, so we just do it manually */ + gap.vec.set_len(gap.write); + mem::forget(gap); + } + } + + /// Appends an element to the back of a collection. + /// + /// # Panics + /// + /// Panics if the new capacity exceeds `isize::MAX` bytes. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![1, 2]; + /// vec.push(3); + /// assert_eq!(vec, [1, 2, 3]); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn push(&mut self, value: T) { + // This will panic or abort if we would allocate > isize::MAX bytes + // or if the length increment would overflow for zero-sized types. + if self.len == self.buf.capacity() { + self.buf.reserve_for_push(self.len); + } + unsafe { + let end = self.as_mut_ptr().add(self.len); + ptr::write(end, value); + self.len += 1; + } + } + + /// Appends an element if there is sufficient spare capacity, otherwise an error is returned + /// with the element. + /// + /// Unlike [`push`] this method will not reallocate when there's insufficient capacity. + /// The caller should use [`reserve`] or [`try_reserve`] to ensure that there is enough capacity. + /// + /// [`push`]: Vec::push + /// [`reserve`]: Vec::reserve + /// [`try_reserve`]: Vec::try_reserve + /// + /// # Examples + /// + /// A manual, panic-free alternative to [`FromIterator`]: + /// + /// ``` + /// #![feature(vec_push_within_capacity)] + /// + /// use std::collections::TryReserveError; + /// fn from_iter_fallible(iter: impl Iterator) -> Result, TryReserveError> { + /// let mut vec = Vec::new(); + /// for value in iter { + /// if let Err(value) = vec.push_within_capacity(value) { + /// vec.try_reserve(1)?; + /// // this cannot fail, the previous line either returned or added at least 1 free slot + /// let _ = vec.push_within_capacity(value); + /// } + /// } + /// Ok(vec) + /// } + /// assert_eq!(from_iter_fallible(0..100), Ok(Vec::from_iter(0..100))); + /// ``` + #[inline(always)] + pub fn push_within_capacity(&mut self, value: T) -> Result<(), T> { + if self.len == self.buf.capacity() { + return Err(value); + } + unsafe { + let end = self.as_mut_ptr().add(self.len); + ptr::write(end, value); + self.len += 1; + } + Ok(()) + } + + /// Removes the last element from a vector and returns it, or [`None`] if it + /// is empty. + /// + /// If you'd like to pop the first element, consider using + /// [`VecDeque::pop_front`] instead. + /// + /// [`VecDeque::pop_front`]: alloc_crate::collections::VecDeque::pop_front + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![1, 2, 3]; + /// assert_eq!(vec.pop(), Some(3)); + /// assert_eq!(vec, [1, 2]); + /// ``` + #[inline(always)] + pub fn pop(&mut self) -> Option { + if self.len == 0 { + None + } else { + unsafe { + self.len -= 1; + Some(ptr::read(self.as_ptr().add(self.len()))) + } + } + } + + /// Moves all the elements of `other` into `self`, leaving `other` empty. + /// + /// # Panics + /// + /// Panics if the new capacity exceeds `isize::MAX` bytes. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![1, 2, 3]; + /// let mut vec2 = vec![4, 5, 6]; + /// vec.append(&mut vec2); + /// assert_eq!(vec, [1, 2, 3, 4, 5, 6]); + /// assert_eq!(vec2, []); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn append(&mut self, other: &mut Self) { + unsafe { + self.append_elements(other.as_slice() as _); + other.set_len(0); + } + } + + /// Appends elements to `self` from other buffer. + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + unsafe fn append_elements(&mut self, other: *const [T]) { + let count = unsafe { (*other).len() }; + self.reserve(count); + let len = self.len(); + unsafe { ptr::copy_nonoverlapping(other as *const T, self.as_mut_ptr().add(len), count) }; + self.len += count; + } + + /// Removes the specified range from the vector in bulk, returning all + /// removed elements as an iterator. If the iterator is dropped before + /// being fully consumed, it drops the remaining removed elements. + /// + /// The returned iterator keeps a mutable borrow on the vector to optimize + /// its implementation. + /// + /// # Panics + /// + /// Panics if the starting point is greater than the end point or if + /// the end point is greater than the length of the vector. + /// + /// # Leaking + /// + /// If the returned iterator goes out of scope without being dropped (due to + /// [`mem::forget`], for example), the vector may have lost and leaked + /// elements arbitrarily, including elements outside the range. + /// + /// # Examples + /// + /// ``` + /// let mut v = vec![1, 2, 3]; + /// let u: Vec<_> = v.drain(1..).collect(); + /// assert_eq!(v, &[1]); + /// assert_eq!(u, &[2, 3]); + /// + /// // A full range clears the vector, like `clear()` does + /// v.drain(..); + /// assert_eq!(v, &[]); + /// ``` + #[inline(always)] + pub fn drain(&mut self, range: R) -> Drain<'_, T, A> + where + R: RangeBounds, + { + // Memory safety + // + // When the Drain is first created, it shortens the length of + // the source vector to make sure no uninitialized or moved-from elements + // are accessible at all if the Drain's destructor never gets to run. + // + // Drain will ptr::read out the values to remove. + // When finished, remaining tail of the vec is copied back to cover + // the hole, and the vector length is restored to the new length. + // + let len = self.len(); + + // Replaced by code below + // let Range { start, end } = slice::range(range, ..len); + + // Panics if range is out of bounds + let _ = &self.as_slice()[(range.start_bound().cloned(), range.end_bound().cloned())]; + + let start = match range.start_bound() { + Bound::Included(&n) => n, + Bound::Excluded(&n) => n + 1, + Bound::Unbounded => 0, + }; + let end = match range.end_bound() { + Bound::Included(&n) => n + 1, + Bound::Excluded(&n) => n, + Bound::Unbounded => len, + }; + + unsafe { + // set self.vec length's to start, to be safe in case Drain is leaked + self.set_len(start); + let range_slice = slice::from_raw_parts(self.as_ptr().add(start), end - start); + Drain { + tail_start: end, + tail_len: len - end, + iter: range_slice.iter(), + vec: NonNull::from(self), + } + } + } + + /// Clears the vector, removing all values. + /// + /// Note that this method has no effect on the allocated capacity + /// of the vector. + /// + /// # Examples + /// + /// ``` + /// let mut v = vec![1, 2, 3]; + /// + /// v.clear(); + /// + /// assert!(v.is_empty()); + /// ``` + #[inline(always)] + pub fn clear(&mut self) { + let elems: *mut [T] = self.as_mut_slice(); + + // SAFETY: + // - `elems` comes directly from `as_mut_slice` and is therefore valid. + // - Setting `self.len` before calling `drop_in_place` means that, + // if an element's `Drop` impl panics, the vector's `Drop` impl will + // do nothing (leaking the rest of the elements) instead of dropping + // some twice. + unsafe { + self.len = 0; + ptr::drop_in_place(elems); + } + } + + /// Returns the number of elements in the vector, also referred to + /// as its 'length'. + /// + /// # Examples + /// + /// ``` + /// let a = vec![1, 2, 3]; + /// assert_eq!(a.len(), 3); + /// ``` + #[inline(always)] + pub fn len(&self) -> usize { + self.len + } + + /// Returns `true` if the vector contains no elements. + /// + /// # Examples + /// + /// ``` + /// let mut v = Vec::new(); + /// assert!(v.is_empty()); + /// + /// v.push(1); + /// assert!(!v.is_empty()); + /// ``` + #[inline(always)] + pub fn is_empty(&self) -> bool { + self.len() == 0 + } + + /// Splits the collection into two at the given index. + /// + /// Returns a newly allocated vector containing the elements in the range + /// `[at, len)`. After the call, the original vector will be left containing + /// the elements `[0, at)` with its previous capacity unchanged. + /// + /// # Panics + /// + /// Panics if `at > len`. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![1, 2, 3]; + /// let vec2 = vec.split_off(1); + /// assert_eq!(vec, [1]); + /// assert_eq!(vec2, [2, 3]); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + #[must_use = "use `.truncate()` if you don't need the other half"] + pub fn split_off(&mut self, at: usize) -> Self + where + A: Clone, + { + #[cold] + #[inline(never)] + fn assert_failed(at: usize, len: usize) -> ! { + panic!("`at` split index (is {}) should be <= len (is {})", at, len); + } + + if at > self.len() { + assert_failed(at, self.len()); + } + + if at == 0 { + // the new vector can take over the original buffer and avoid the copy + return mem::replace( + self, + Vec::with_capacity_in(self.capacity(), self.allocator().clone()), + ); + } + + let other_len = self.len - at; + let mut other = Vec::with_capacity_in(other_len, self.allocator().clone()); + + // Unsafely `set_len` and copy items to `other`. + unsafe { + self.set_len(at); + other.set_len(other_len); + + ptr::copy_nonoverlapping(self.as_ptr().add(at), other.as_mut_ptr(), other.len()); + } + other + } + + /// Resizes the `Vec` in-place so that `len` is equal to `new_len`. + /// + /// If `new_len` is greater than `len`, the `Vec` is extended by the + /// difference, with each additional slot filled with the result of + /// calling the closure `f`. The return values from `f` will end up + /// in the `Vec` in the order they have been generated. + /// + /// If `new_len` is less than `len`, the `Vec` is simply truncated. + /// + /// This method uses a closure to create new values on every push. If + /// you'd rather [`Clone`] a given value, use [`Vec::resize`]. If you + /// want to use the [`Default`] trait to generate values, you can + /// pass [`Default::default`] as the second argument. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![1, 2, 3]; + /// vec.resize_with(5, Default::default); + /// assert_eq!(vec, [1, 2, 3, 0, 0]); + /// + /// let mut vec = vec![]; + /// let mut p = 1; + /// vec.resize_with(4, || { p *= 2; p }); + /// assert_eq!(vec, [2, 4, 8, 16]); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn resize_with(&mut self, new_len: usize, f: F) + where + F: FnMut() -> T, + { + let len = self.len(); + if new_len > len { + self.extend(iter::repeat_with(f).take(new_len - len)); + } else { + self.truncate(new_len); + } + } + + /// Consumes and leaks the `Vec`, returning a mutable reference to the contents, + /// `&'a mut [T]`. Note that the type `T` must outlive the chosen lifetime + /// `'a`. If the type has only static references, or none at all, then this + /// may be chosen to be `'static`. + /// + /// As of Rust 1.57, this method does not reallocate or shrink the `Vec`, + /// so the leaked allocation may include unused capacity that is not part + /// of the returned slice. + /// + /// This function is mainly useful for data that lives for the remainder of + /// the program's life. Dropping the returned reference will cause a memory + /// leak. + /// + /// # Examples + /// + /// Simple usage: + /// + /// ``` + /// let x = vec![1, 2, 3]; + /// let static_ref: &'static mut [usize] = x.leak(); + /// static_ref[0] += 1; + /// assert_eq!(static_ref, &[2, 2, 3]); + /// ``` + #[inline(always)] + pub fn leak<'a>(self) -> &'a mut [T] + where + A: 'a, + { + let mut me = ManuallyDrop::new(self); + unsafe { slice::from_raw_parts_mut(me.as_mut_ptr(), me.len) } + } + + /// Returns the remaining spare capacity of the vector as a slice of + /// `MaybeUninit`. + /// + /// The returned slice can be used to fill the vector with data (e.g. by + /// reading from a file) before marking the data as initialized using the + /// [`set_len`] method. + /// + /// [`set_len`]: Vec::set_len + /// + /// # Examples + /// + /// ``` + /// // Allocate vector big enough for 10 elements. + /// let mut v = Vec::with_capacity(10); + /// + /// // Fill in the first 3 elements. + /// let uninit = v.spare_capacity_mut(); + /// uninit[0].write(0); + /// uninit[1].write(1); + /// uninit[2].write(2); + /// + /// // Mark the first 3 elements of the vector as being initialized. + /// unsafe { + /// v.set_len(3); + /// } + /// + /// assert_eq!(&v, &[0, 1, 2]); + /// ``` + #[inline(always)] + pub fn spare_capacity_mut(&mut self) -> &mut [MaybeUninit] { + // Note: + // This method is not implemented in terms of `split_at_spare_mut`, + // to prevent invalidation of pointers to the buffer. + unsafe { + slice::from_raw_parts_mut( + self.as_mut_ptr().add(self.len) as *mut MaybeUninit, + self.buf.capacity() - self.len, + ) + } + } + + /// Returns vector content as a slice of `T`, along with the remaining spare + /// capacity of the vector as a slice of `MaybeUninit`. + /// + /// The returned spare capacity slice can be used to fill the vector with data + /// (e.g. by reading from a file) before marking the data as initialized using + /// the [`set_len`] method. + /// + /// [`set_len`]: Vec::set_len + /// + /// Note that this is a low-level API, which should be used with care for + /// optimization purposes. If you need to append data to a `Vec` + /// you can use [`push`], [`extend`], [`extend_from_slice`], + /// [`extend_from_within`], [`insert`], [`append`], [`resize`] or + /// [`resize_with`], depending on your exact needs. + /// + /// [`push`]: Vec::push + /// [`extend`]: Vec::extend + /// [`extend_from_slice`]: Vec::extend_from_slice + /// [`extend_from_within`]: Vec::extend_from_within + /// [`insert`]: Vec::insert + /// [`append`]: Vec::append + /// [`resize`]: Vec::resize + /// [`resize_with`]: Vec::resize_with + /// + /// # Examples + /// + /// ``` + /// #![feature(vec_split_at_spare)] + /// + /// let mut v = vec![1, 1, 2]; + /// + /// // Reserve additional space big enough for 10 elements. + /// v.reserve(10); + /// + /// let (init, uninit) = v.split_at_spare_mut(); + /// let sum = init.iter().copied().sum::(); + /// + /// // Fill in the next 4 elements. + /// uninit[0].write(sum); + /// uninit[1].write(sum * 2); + /// uninit[2].write(sum * 3); + /// uninit[3].write(sum * 4); + /// + /// // Mark the 4 elements of the vector as being initialized. + /// unsafe { + /// let len = v.len(); + /// v.set_len(len + 4); + /// } + /// + /// assert_eq!(&v, &[1, 1, 2, 4, 8, 12, 16]); + /// ``` + #[inline(always)] + pub fn split_at_spare_mut(&mut self) -> (&mut [T], &mut [MaybeUninit]) { + // SAFETY: + // - len is ignored and so never changed + let (init, spare, _) = unsafe { self.split_at_spare_mut_with_len() }; + (init, spare) + } + + /// Safety: changing returned .2 (&mut usize) is considered the same as calling `.set_len(_)`. + /// + /// This method provides unique access to all vec parts at once in `extend_from_within`. + unsafe fn split_at_spare_mut_with_len( + &mut self, + ) -> (&mut [T], &mut [MaybeUninit], &mut usize) { + let ptr = self.as_mut_ptr(); + // SAFETY: + // - `ptr` is guaranteed to be valid for `self.len` elements + // - but the allocation extends out to `self.buf.capacity()` elements, possibly + // uninitialized + let spare_ptr = unsafe { ptr.add(self.len) }; + let spare_ptr = spare_ptr.cast::>(); + let spare_len = self.buf.capacity() - self.len; + + // SAFETY: + // - `ptr` is guaranteed to be valid for `self.len` elements + // - `spare_ptr` is pointing one element past the buffer, so it doesn't overlap with `initialized` + unsafe { + let initialized = slice::from_raw_parts_mut(ptr, self.len); + let spare = slice::from_raw_parts_mut(spare_ptr, spare_len); + + (initialized, spare, &mut self.len) + } + } +} + +impl Vec { + /// Resizes the `Vec` in-place so that `len` is equal to `new_len`. + /// + /// If `new_len` is greater than `len`, the `Vec` is extended by the + /// difference, with each additional slot filled with `value`. + /// If `new_len` is less than `len`, the `Vec` is simply truncated. + /// + /// This method requires `T` to implement [`Clone`], + /// in order to be able to clone the passed value. + /// If you need more flexibility (or want to rely on [`Default`] instead of + /// [`Clone`]), use [`Vec::resize_with`]. + /// If you only need to resize to a smaller size, use [`Vec::truncate`]. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec!["hello"]; + /// vec.resize(3, "world"); + /// assert_eq!(vec, ["hello", "world", "world"]); + /// + /// let mut vec = vec![1, 2, 3, 4]; + /// vec.resize(2, 0); + /// assert_eq!(vec, [1, 2]); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn resize(&mut self, new_len: usize, value: T) { + let len = self.len(); + + if new_len > len { + self.extend_with(new_len - len, ExtendElement(value)) + } else { + self.truncate(new_len); + } + } + + /// Clones and appends all elements in a slice to the `Vec`. + /// + /// Iterates over the slice `other`, clones each element, and then appends + /// it to this `Vec`. The `other` slice is traversed in-order. + /// + /// Note that this function is same as [`extend`] except that it is + /// specialized to work with slices instead. If and when Rust gets + /// specialization this function will likely be deprecated (but still + /// available). + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![1]; + /// vec.extend_from_slice(&[2, 3, 4]); + /// assert_eq!(vec, [1, 2, 3, 4]); + /// ``` + /// + /// [`extend`]: Vec::extend + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn extend_from_slice(&mut self, other: &[T]) { + self.extend(other.iter().cloned()) + } + + /// Copies elements from `src` range to the end of the vector. + /// + /// # Panics + /// + /// Panics if the starting point is greater than the end point or if + /// the end point is greater than the length of the vector. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![0, 1, 2, 3, 4]; + /// + /// vec.extend_from_within(2..); + /// assert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4]); + /// + /// vec.extend_from_within(..2); + /// assert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4, 0, 1]); + /// + /// vec.extend_from_within(4..8); + /// assert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4, 0, 1, 4, 2, 3, 4]); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn extend_from_within(&mut self, src: R) + where + R: RangeBounds, + { + // let range = slice::range(src, ..self.len()); + + let _ = &self.as_slice()[(src.start_bound().cloned(), src.end_bound().cloned())]; + + let len = self.len(); + + let start: ops::Bound<&usize> = src.start_bound(); + let start = match start { + ops::Bound::Included(&start) => start, + ops::Bound::Excluded(start) => start + 1, + ops::Bound::Unbounded => 0, + }; + + let end: ops::Bound<&usize> = src.end_bound(); + let end = match end { + ops::Bound::Included(end) => end + 1, + ops::Bound::Excluded(&end) => end, + ops::Bound::Unbounded => len, + }; + + let range = start..end; + + self.reserve(range.len()); + + // SAFETY: + // - len is increased only after initializing elements + let (this, spare, len) = unsafe { self.split_at_spare_mut_with_len() }; + + // SAFETY: + // - caller guarantees that src is a valid index + let to_clone = unsafe { this.get_unchecked(range) }; + + iter::zip(to_clone, spare) + .map(|(src, dst)| dst.write(src.clone())) + // Note: + // - Element was just initialized with `MaybeUninit::write`, so it's ok to increase len + // - len is increased after each element to prevent leaks (see issue #82533) + .for_each(|_| *len += 1); + } +} + +impl Vec<[T; N], A> { + /// Takes a `Vec<[T; N]>` and flattens it into a `Vec`. + /// + /// # Panics + /// + /// Panics if the length of the resulting vector would overflow a `usize`. + /// + /// This is only possible when flattening a vector of arrays of zero-sized + /// types, and thus tends to be irrelevant in practice. If + /// `size_of::() > 0`, this will never panic. + /// + /// # Examples + /// + /// ``` + /// #![feature(slice_flatten)] + /// + /// let mut vec = vec![[1, 2, 3], [4, 5, 6], [7, 8, 9]]; + /// assert_eq!(vec.pop(), Some([7, 8, 9])); + /// + /// let mut flattened = vec.into_flattened(); + /// assert_eq!(flattened.pop(), Some(6)); + /// ``` + #[inline(always)] + pub fn into_flattened(self) -> Vec { + let (ptr, len, cap, alloc) = self.into_raw_parts_with_alloc(); + let (new_len, new_cap) = if size_of::() == 0 { + (len.checked_mul(N).expect("vec len overflow"), usize::MAX) + } else { + // SAFETY: + // - `cap * N` cannot overflow because the allocation is already in + // the address space. + // - Each `[T; N]` has `N` valid elements, so there are `len * N` + // valid elements in the allocation. + (len * N, cap * N) + }; + // SAFETY: + // - `ptr` was allocated by `self` + // - `ptr` is well-aligned because `[T; N]` has the same alignment as `T`. + // - `new_cap` refers to the same sized allocation as `cap` because + // `new_cap * size_of::()` == `cap * size_of::<[T; N]>()` + // - `len` <= `cap`, so `len * N` <= `cap * N`. + unsafe { Vec::::from_raw_parts_in(ptr.cast(), new_len, new_cap, alloc) } + } +} + +// This code generalizes `extend_with_{element,default}`. +trait ExtendWith { + fn next(&mut self) -> T; + fn last(self) -> T; +} + +struct ExtendElement(T); +impl ExtendWith for ExtendElement { + #[inline(always)] + fn next(&mut self) -> T { + self.0.clone() + } + + #[inline(always)] + fn last(self) -> T { + self.0 + } +} + +impl Vec { + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + /// Extend the vector by `n` values, using the given generator. + fn extend_with>(&mut self, n: usize, mut value: E) { + self.reserve(n); + + unsafe { + let mut ptr = self.as_mut_ptr().add(self.len()); + // Use SetLenOnDrop to work around bug where compiler + // might not realize the store through `ptr` through self.set_len() + // don't alias. + let mut local_len = SetLenOnDrop::new(&mut self.len); + + // Write all elements except the last one + for _ in 1..n { + ptr::write(ptr, value.next()); + ptr = ptr.add(1); + // Increment the length in every step in case next() panics + local_len.increment_len(1); + } + + if n > 0 { + // We can write the last element directly without cloning needlessly + ptr::write(ptr, value.last()); + local_len.increment_len(1); + } + + // len set by scope guard + } + } +} + +impl Vec { + /// Removes consecutive repeated elements in the vector according to the + /// [`PartialEq`] trait implementation. + /// + /// If the vector is sorted, this removes all duplicates. + /// + /// # Examples + /// + /// ``` + /// let mut vec = vec![1, 2, 2, 3, 2]; + /// + /// vec.dedup(); + /// + /// assert_eq!(vec, [1, 2, 3, 2]); + /// ``` + #[inline(always)] + pub fn dedup(&mut self) { + self.dedup_by(|a, b| a == b) + } +} + +trait ExtendFromWithinSpec { + /// # Safety + /// + /// - `src` needs to be valid index + /// - `self.capacity() - self.len()` must be `>= src.len()` + unsafe fn spec_extend_from_within(&mut self, src: Range); +} + +// impl ExtendFromWithinSpec for Vec { +// default unsafe fn spec_extend_from_within(&mut self, src: Range) { +// // SAFETY: +// // - len is increased only after initializing elements +// let (this, spare, len) = unsafe { self.split_at_spare_mut_with_len() }; + +// // SAFETY: +// // - caller guarantees that src is a valid index +// let to_clone = unsafe { this.get_unchecked(src) }; + +// iter::zip(to_clone, spare) +// .map(|(src, dst)| dst.write(src.clone())) +// // Note: +// // - Element was just initialized with `MaybeUninit::write`, so it's ok to increase len +// // - len is increased after each element to prevent leaks (see issue #82533) +// .for_each(|_| *len += 1); +// } +// } + +impl ExtendFromWithinSpec for Vec { + #[inline(always)] + unsafe fn spec_extend_from_within(&mut self, src: Range) { + let count = src.len(); + { + let (init, spare) = self.split_at_spare_mut(); + + // SAFETY: + // - caller guarantees that `src` is a valid index + let source = unsafe { init.get_unchecked(src) }; + + // SAFETY: + // - Both pointers are created from unique slice references (`&mut [_]`) + // so they are valid and do not overlap. + // - Elements are :Copy so it's OK to copy them, without doing + // anything with the original values + // - `count` is equal to the len of `source`, so source is valid for + // `count` reads + // - `.reserve(count)` guarantees that `spare.len() >= count` so spare + // is valid for `count` writes + unsafe { ptr::copy_nonoverlapping(source.as_ptr(), spare.as_mut_ptr() as _, count) }; + } + + // SAFETY: + // - The elements were just initialized by `copy_nonoverlapping` + self.len += count; + } +} + +//////////////////////////////////////////////////////////////////////////////// +// Common trait implementations for Vec +//////////////////////////////////////////////////////////////////////////////// + +impl ops::Deref for Vec { + type Target = [T]; + + #[inline(always)] + fn deref(&self) -> &[T] { + unsafe { slice::from_raw_parts(self.as_ptr(), self.len) } + } +} + +impl ops::DerefMut for Vec { + #[inline(always)] + fn deref_mut(&mut self) -> &mut [T] { + unsafe { slice::from_raw_parts_mut(self.as_mut_ptr(), self.len) } + } +} + +#[cfg(not(no_global_oom_handling))] +impl Clone for Vec { + #[inline(always)] + fn clone(&self) -> Self { + let alloc = self.allocator().clone(); + let mut vec = Vec::with_capacity_in(self.len(), alloc); + vec.extend_from_slice(self); + vec + } + + #[inline(always)] + fn clone_from(&mut self, other: &Self) { + // drop anything that will not be overwritten + self.truncate(other.len()); + + // self.len <= other.len due to the truncate above, so the + // slices here are always in-bounds. + let (init, tail) = other.split_at(self.len()); + + // reuse the contained values' allocations/resources. + self.clone_from_slice(init); + self.extend_from_slice(tail); + } +} + +/// The hash of a vector is the same as that of the corresponding slice, +/// as required by the `core::borrow::Borrow` implementation. +/// +/// ``` +/// #![feature(build_hasher_simple_hash_one)] +/// use std::hash::BuildHasher; +/// +/// let b = std::collections::hash_map::RandomState::new(); +/// let v: Vec = vec![0xa8, 0x3c, 0x09]; +/// let s: &[u8] = &[0xa8, 0x3c, 0x09]; +/// assert_eq!(b.hash_one(v), b.hash_one(s)); +/// ``` +impl Hash for Vec { + #[inline(always)] + fn hash(&self, state: &mut H) { + Hash::hash(&**self, state) + } +} + +impl, A: Allocator> Index for Vec { + type Output = I::Output; + + #[inline(always)] + fn index(&self, index: I) -> &Self::Output { + Index::index(&**self, index) + } +} + +impl, A: Allocator> IndexMut for Vec { + #[inline(always)] + fn index_mut(&mut self, index: I) -> &mut Self::Output { + IndexMut::index_mut(&mut **self, index) + } +} + +#[cfg(not(no_global_oom_handling))] +impl FromIterator for Vec { + #[inline(always)] + fn from_iter>(iter: I) -> Vec { + let mut vec = Vec::new(); + vec.extend(iter); + vec + } +} + +impl IntoIterator for Vec { + type Item = T; + type IntoIter = IntoIter; + + /// Creates a consuming iterator, that is, one that moves each value out of + /// the vector (from start to end). The vector cannot be used after calling + /// this. + /// + /// # Examples + /// + /// ``` + /// let v = vec!["a".to_string(), "b".to_string()]; + /// let mut v_iter = v.into_iter(); + /// + /// let first_element: Option = v_iter.next(); + /// + /// assert_eq!(first_element, Some("a".to_string())); + /// assert_eq!(v_iter.next(), Some("b".to_string())); + /// assert_eq!(v_iter.next(), None); + /// ``` + #[inline(always)] + fn into_iter(self) -> Self::IntoIter { + unsafe { + let mut me = ManuallyDrop::new(self); + let alloc = ManuallyDrop::new(ptr::read(me.allocator())); + let begin = me.as_mut_ptr(); + let end = if size_of::() == 0 { + begin.cast::().wrapping_add(me.len()).cast() + } else { + begin.add(me.len()) as *const T + }; + let cap = me.buf.capacity(); + IntoIter { + buf: NonNull::new_unchecked(begin), + phantom: PhantomData, + cap, + alloc, + ptr: begin, + end, + } + } + } +} + +impl<'a, T, A: Allocator> IntoIterator for &'a Vec { + type Item = &'a T; + type IntoIter = slice::Iter<'a, T>; + + #[inline(always)] + fn into_iter(self) -> Self::IntoIter { + self.iter() + } +} + +impl<'a, T, A: Allocator> IntoIterator for &'a mut Vec { + type Item = &'a mut T; + type IntoIter = slice::IterMut<'a, T>; + + fn into_iter(self) -> Self::IntoIter { + self.iter_mut() + } +} + +#[cfg(not(no_global_oom_handling))] +impl Extend for Vec { + #[inline(always)] + fn extend>(&mut self, iter: I) { + // This is the case for a general iter. + // + // This function should be the moral equivalent of: + // + // for item in iter { + // self.push(item); + // } + + let mut iter = iter.into_iter(); + while let Some(element) = iter.next() { + let len = self.len(); + if len == self.capacity() { + let (lower, _) = iter.size_hint(); + self.reserve(lower.saturating_add(1)); + } + unsafe { + ptr::write(self.as_mut_ptr().add(len), element); + // Since next() executes user code which can panic we have to bump the length + // after each step. + // NB can't overflow since we would have had to alloc the address space + self.set_len(len + 1); + } + } + } +} + +impl Vec { + /// Creates a splicing iterator that replaces the specified range in the vector + /// with the given `replace_with` iterator and yields the removed items. + /// `replace_with` does not need to be the same length as `range`. + /// + /// `range` is removed even if the iterator is not consumed until the end. + /// + /// It is unspecified how many elements are removed from the vector + /// if the `Splice` value is leaked. + /// + /// The input iterator `replace_with` is only consumed when the `Splice` value is dropped. + /// + /// This is optimal if: + /// + /// * The tail (elements in the vector after `range`) is empty, + /// * or `replace_with` yields fewer or equal elements than `range`’s length + /// * or the lower bound of its `size_hint()` is exact. + /// + /// Otherwise, a temporary vector is allocated and the tail is moved twice. + /// + /// # Panics + /// + /// Panics if the starting point is greater than the end point or if + /// the end point is greater than the length of the vector. + /// + /// # Examples + /// + /// ``` + /// let mut v = vec![1, 2, 3, 4]; + /// let new = [7, 8, 9]; + /// let u: Vec<_> = v.splice(1..3, new).collect(); + /// assert_eq!(v, &[1, 7, 8, 9, 4]); + /// assert_eq!(u, &[2, 3]); + /// ``` + #[cfg(not(no_global_oom_handling))] + #[inline(always)] + pub fn splice(&mut self, range: R, replace_with: I) -> Splice<'_, I::IntoIter, A> + where + R: RangeBounds, + I: IntoIterator, + { + Splice { + drain: self.drain(range), + replace_with: replace_with.into_iter(), + } + } +} + +/// Extend implementation that copies elements out of references before pushing them onto the Vec. +/// +/// This implementation is specialized for slice iterators, where it uses [`copy_from_slice`] to +/// append the entire slice at once. +/// +/// [`copy_from_slice`]: slice::copy_from_slice +#[cfg(not(no_global_oom_handling))] +impl<'a, T: Copy + 'a, A: Allocator + 'a> Extend<&'a T> for Vec { + #[inline(always)] + fn extend>(&mut self, iter: I) { + let mut iter = iter.into_iter(); + while let Some(element) = iter.next() { + let len = self.len(); + if len == self.capacity() { + let (lower, _) = iter.size_hint(); + self.reserve(lower.saturating_add(1)); + } + unsafe { + ptr::write(self.as_mut_ptr().add(len), *element); + // Since next() executes user code which can panic we have to bump the length + // after each step. + // NB can't overflow since we would have had to alloc the address space + self.set_len(len + 1); + } + } + } +} + +/// Implements comparison of vectors, [lexicographically](core::cmp::Ord#lexicographical-comparison). +impl PartialOrd for Vec { + #[inline(always)] + fn partial_cmp(&self, other: &Self) -> Option { + PartialOrd::partial_cmp(&**self, &**other) + } +} + +impl Eq for Vec {} + +/// Implements ordering of vectors, [lexicographically](core::cmp::Ord#lexicographical-comparison). +impl Ord for Vec { + #[inline(always)] + fn cmp(&self, other: &Self) -> Ordering { + Ord::cmp(&**self, &**other) + } +} + +impl Drop for Vec { + #[inline(always)] + fn drop(&mut self) { + unsafe { + // use drop for [T] + // use a raw slice to refer to the elements of the vector as weakest necessary type; + // could avoid questions of validity in certain cases + ptr::drop_in_place(ptr::slice_from_raw_parts_mut(self.as_mut_ptr(), self.len)) + } + // RawVec handles deallocation + } +} + +impl Default for Vec { + /// Creates an empty `Vec`. + /// + /// The vector will not allocate until elements are pushed onto it. + #[inline(always)] + fn default() -> Vec { + Vec::new() + } +} + +impl fmt::Debug for Vec { + #[inline(always)] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt::Debug::fmt(&**self, f) + } +} + +impl AsRef> for Vec { + #[inline(always)] + fn as_ref(&self) -> &Vec { + self + } +} + +impl AsMut> for Vec { + #[inline(always)] + fn as_mut(&mut self) -> &mut Vec { + self + } +} + +impl AsRef<[T]> for Vec { + #[inline(always)] + fn as_ref(&self) -> &[T] { + self + } +} + +impl AsMut<[T]> for Vec { + #[inline(always)] + fn as_mut(&mut self) -> &mut [T] { + self + } +} + +#[cfg(not(no_global_oom_handling))] +impl From<&[T]> for Vec { + /// Allocate a `Vec` and fill it by cloning `s`'s items. + /// + /// # Examples + /// + /// ``` + /// assert_eq!(Vec::from(&[1, 2, 3][..]), vec![1, 2, 3]); + /// ``` + #[inline(always)] + fn from(s: &[T]) -> Vec { + let mut vec = Vec::with_capacity(s.len()); + vec.extend_from_slice(s); + vec + } +} + +#[cfg(not(no_global_oom_handling))] +impl From<&mut [T]> for Vec { + /// Allocate a `Vec` and fill it by cloning `s`'s items. + /// + /// # Examples + /// + /// ``` + /// assert_eq!(Vec::from(&mut [1, 2, 3][..]), vec![1, 2, 3]); + /// ``` + #[inline(always)] + fn from(s: &mut [T]) -> Vec { + let mut vec = Vec::with_capacity(s.len()); + vec.extend_from_slice(s); + vec + } +} + +#[cfg(not(no_global_oom_handling))] +impl From<[T; N]> for Vec { + #[inline(always)] + fn from(s: [T; N]) -> Vec { + Box::slice(Box::new(s)).into_vec() + } +} + +impl From> for Vec { + /// Convert a boxed slice into a vector by transferring ownership of + /// the existing heap allocation. + /// + /// # Examples + /// + /// ``` + /// let b: Box<[i32]> = vec![1, 2, 3].into_boxed_slice(); + /// assert_eq!(Vec::from(b), vec![1, 2, 3]); + /// ``` + #[inline(always)] + fn from(s: Box<[T], A>) -> Self { + s.into_vec() + } +} + +impl From> for Vec { + /// Convert a boxed array into a vector by transferring ownership of + /// the existing heap allocation. + /// + /// # Examples + /// + /// ``` + /// let b: Box<[i32; 3]> = Box::new([1, 2, 3]); + /// assert_eq!(Vec::from(b), vec![1, 2, 3]); + /// ``` + #[inline(always)] + fn from(s: Box<[T; N], A>) -> Self { + s.into_vec() + } +} + +// note: test pulls in libstd, which causes errors here +#[cfg(not(no_global_oom_handling))] +impl From> for Box<[T], A> { + /// Convert a vector into a boxed slice. + /// + /// If `v` has excess capacity, its items will be moved into a + /// newly-allocated buffer with exactly the right capacity. + /// + /// # Examples + /// + /// ``` + /// assert_eq!(Box::from(vec![1, 2, 3]), vec![1, 2, 3].into_boxed_slice()); + /// ``` + /// + /// Any excess capacity is removed: + /// ``` + /// let mut vec = Vec::with_capacity(10); + /// vec.extend([1, 2, 3]); + /// + /// assert_eq!(Box::from(vec), vec![1, 2, 3].into_boxed_slice()); + /// ``` + #[inline(always)] + fn from(v: Vec) -> Self { + v.into_boxed_slice() + } +} + +#[cfg(not(no_global_oom_handling))] +impl From<&str> for Vec { + /// Allocate a `Vec` and fill it with a UTF-8 string. + /// + /// # Examples + /// + /// ``` + /// assert_eq!(Vec::from("123"), vec![b'1', b'2', b'3']); + /// ``` + #[inline(always)] + fn from(s: &str) -> Vec { + From::from(s.as_bytes()) + } +} + +impl TryFrom> for [T; N] { + type Error = Vec; + + /// Gets the entire contents of the `Vec` as an array, + /// if its size exactly matches that of the requested array. + /// + /// # Examples + /// + /// ``` + /// assert_eq!(vec![1, 2, 3].try_into(), Ok([1, 2, 3])); + /// assert_eq!(>::new().try_into(), Ok([])); + /// ``` + /// + /// If the length doesn't match, the input comes back in `Err`: + /// ``` + /// let r: Result<[i32; 4], _> = (0..10).collect::>().try_into(); + /// assert_eq!(r, Err(vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9])); + /// ``` + /// + /// If you're fine with just getting a prefix of the `Vec`, + /// you can call [`.truncate(N)`](Vec::truncate) first. + /// ``` + /// let mut v = String::from("hello world").into_bytes(); + /// v.sort(); + /// v.truncate(2); + /// let [a, b]: [_; 2] = v.try_into().unwrap(); + /// assert_eq!(a, b' '); + /// assert_eq!(b, b'd'); + /// ``` + #[inline(always)] + fn try_from(mut vec: Vec) -> Result<[T; N], Vec> { + if vec.len() != N { + return Err(vec); + } + + // SAFETY: `.set_len(0)` is always sound. + unsafe { vec.set_len(0) }; + + // SAFETY: A `Vec`'s pointer is always aligned properly, and + // the alignment the array needs is the same as the items. + // We checked earlier that we have sufficient items. + // The items will not double-drop as the `set_len` + // tells the `Vec` not to also drop them. + let array = unsafe { ptr::read(vec.as_ptr() as *const [T; N]) }; + Ok(array) + } +} + +#[inline(always)] +#[cfg(not(no_global_oom_handling))] +#[doc(hidden)] +pub fn from_elem_in(elem: T, n: usize, alloc: A) -> Vec { + let mut v = Vec::with_capacity_in(n, alloc); + v.extend_with(n, ExtendElement(elem)); + v +} + +#[inline(always)] +#[cfg(not(no_global_oom_handling))] +#[doc(hidden)] +pub fn from_elem(elem: T, n: usize) -> Vec { + let mut v = Vec::with_capacity(n); + v.extend_with(n, ExtendElement(elem)); + v +} + +/// Write is implemented for `Vec` by appending to the vector. +/// The vector will grow as needed. +#[cfg(feature = "std")] +impl io::Write for Vec { + #[inline] + fn write(&mut self, buf: &[u8]) -> io::Result { + self.extend_from_slice(buf); + Ok(buf.len()) + } + + #[inline] + fn write_vectored(&mut self, bufs: &[io::IoSlice<'_>]) -> io::Result { + let len = bufs.iter().map(|b| b.len()).sum(); + self.reserve(len); + for buf in bufs { + self.extend_from_slice(buf); + } + Ok(len) + } + + #[inline] + fn write_all(&mut self, buf: &[u8]) -> io::Result<()> { + self.extend_from_slice(buf); + Ok(()) + } + + #[inline] + fn flush(&mut self) -> io::Result<()> { + Ok(()) + } +} + +#[cfg(feature = "serde")] +impl serde::Serialize for Vec +where + T: serde::Serialize, + A: Allocator, +{ + #[inline(always)] + fn serialize(&self, serializer: S) -> Result + where + S: serde::ser::Serializer, + { + serializer.collect_seq(self) + } +} + +#[cfg(feature = "serde")] +impl<'de, T, A> serde::de::Deserialize<'de> for Vec +where + T: serde::de::Deserialize<'de>, + A: Allocator + Default, +{ + #[inline(always)] + fn deserialize(deserializer: D) -> Result + where + D: serde::de::Deserializer<'de>, + { + struct VecVisitor { + marker: PhantomData<(T, A)>, + } + + impl<'de, T, A> serde::de::Visitor<'de> for VecVisitor + where + T: serde::de::Deserialize<'de>, + A: Allocator + Default, + { + type Value = Vec; + + fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + formatter.write_str("a sequence") + } + + fn visit_seq(self, mut seq: S) -> Result + where + S: serde::de::SeqAccess<'de>, + { + let mut values = Vec::with_capacity_in(cautious(seq.size_hint()), A::default()); + + while let Some(value) = seq.next_element()? { + values.push(value); + } + + Ok(values) + } + } + + let visitor = VecVisitor { + marker: PhantomData, + }; + deserializer.deserialize_seq(visitor) + } + + #[inline(always)] + fn deserialize_in_place(deserializer: D, place: &mut Self) -> Result<(), D::Error> + where + D: serde::de::Deserializer<'de>, + { + struct VecInPlaceVisitor<'a, T: 'a, A: Allocator + 'a>(&'a mut Vec); + + impl<'a, 'de, T, A> serde::de::Visitor<'de> for VecInPlaceVisitor<'a, T, A> + where + T: serde::de::Deserialize<'de>, + A: Allocator + Default, + { + type Value = (); + + fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + formatter.write_str("a sequence") + } + + fn visit_seq(self, mut seq: S) -> Result + where + S: serde::de::SeqAccess<'de>, + { + let hint = cautious(seq.size_hint()); + if let Some(additional) = hint.checked_sub(self.0.len()) { + self.0.reserve(additional); + } + + for i in 0..self.0.len() { + let next = { + let next_place = InPlaceSeed(&mut self.0[i]); + seq.next_element_seed(next_place)? + }; + if next.is_none() { + self.0.truncate(i); + return Ok(()); + } + } + + while let Some(value) = seq.next_element()? { + self.0.push(value); + } + + Ok(()) + } + } + + deserializer.deserialize_seq(VecInPlaceVisitor(place)) + } +} + +#[cfg(feature = "serde")] +pub fn cautious(hint: Option) -> usize { + cmp::min(hint.unwrap_or(0), 4096) +} + +/// A DeserializeSeed helper for implementing deserialize_in_place Visitors. +/// +/// Wraps a mutable reference and calls deserialize_in_place on it. + +#[cfg(feature = "serde")] +pub struct InPlaceSeed<'a, T: 'a>(pub &'a mut T); + +#[cfg(feature = "serde")] +impl<'a, 'de, T> serde::de::DeserializeSeed<'de> for InPlaceSeed<'a, T> +where + T: serde::de::Deserialize<'de>, +{ + type Value = (); + fn deserialize(self, deserializer: D) -> Result + where + D: serde::de::Deserializer<'de>, + { + T::deserialize_in_place(deserializer, self.0) + } +} diff --git a/src/rust/vendor/allocator-api2/src/stable/vec/partial_eq.rs b/src/rust/vendor/allocator-api2/src/stable/vec/partial_eq.rs new file mode 100644 index 000000000..a2e64fcd1 --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/vec/partial_eq.rs @@ -0,0 +1,43 @@ +#[cfg(not(no_global_oom_handling))] +use alloc_crate::borrow::Cow; + +use crate::stable::alloc::Allocator; + +use super::Vec; + +macro_rules! __impl_slice_eq1 { + ([$($vars:tt)*] $lhs:ty, $rhs:ty $(where $ty:ty: $bound:ident)?) => { + impl PartialEq<$rhs> for $lhs + where + T: PartialEq, + $($ty: $bound)? + { + #[inline(always)] + fn eq(&self, other: &$rhs) -> bool { self[..] == other[..] } + #[inline(always)] + fn ne(&self, other: &$rhs) -> bool { self[..] != other[..] } + } + } +} + +__impl_slice_eq1! { [A1: Allocator, A2: Allocator] Vec, Vec } +__impl_slice_eq1! { [A: Allocator] Vec, &[U] } +__impl_slice_eq1! { [A: Allocator] Vec, &mut [U] } +__impl_slice_eq1! { [A: Allocator] &[T], Vec } +__impl_slice_eq1! { [A: Allocator] &mut [T], Vec } +__impl_slice_eq1! { [A: Allocator] Vec, [U] } +__impl_slice_eq1! { [A: Allocator] [T], Vec } +#[cfg(not(no_global_oom_handling))] +__impl_slice_eq1! { [A: Allocator] Cow<'_, [T]>, Vec where T: Clone } +__impl_slice_eq1! { [A: Allocator, const N: usize] Vec, [U; N] } +__impl_slice_eq1! { [A: Allocator, const N: usize] Vec, &[U; N] } + +// NOTE: some less important impls are omitted to reduce code bloat +// FIXME(Centril): Reconsider this? +//__impl_slice_eq1! { [const N: usize] Vec, &mut [B; N], } +//__impl_slice_eq1! { [const N: usize] [A; N], Vec, } +//__impl_slice_eq1! { [const N: usize] &[A; N], Vec, } +//__impl_slice_eq1! { [const N: usize] &mut [A; N], Vec, } +//__impl_slice_eq1! { [const N: usize] Cow<'a, [A]>, [B; N], } +//__impl_slice_eq1! { [const N: usize] Cow<'a, [A]>, &[B; N], } +//__impl_slice_eq1! { [const N: usize] Cow<'a, [A]>, &mut [B; N], } diff --git a/src/rust/vendor/allocator-api2/src/stable/vec/set_len_on_drop.rs b/src/rust/vendor/allocator-api2/src/stable/vec/set_len_on_drop.rs new file mode 100644 index 000000000..bf08507f1 --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/vec/set_len_on_drop.rs @@ -0,0 +1,31 @@ +// Set the length of the vec when the `SetLenOnDrop` value goes out of scope. +// +// The idea is: The length field in SetLenOnDrop is a local variable +// that the optimizer will see does not alias with any stores through the Vec's data +// pointer. This is a workaround for alias analysis issue #32155 +pub(super) struct SetLenOnDrop<'a> { + len: &'a mut usize, + local_len: usize, +} + +impl<'a> SetLenOnDrop<'a> { + #[inline(always)] + pub(super) fn new(len: &'a mut usize) -> Self { + SetLenOnDrop { + local_len: *len, + len, + } + } + + #[inline(always)] + pub(super) fn increment_len(&mut self, increment: usize) { + self.local_len += increment; + } +} + +impl Drop for SetLenOnDrop<'_> { + #[inline(always)] + fn drop(&mut self) { + *self.len = self.local_len; + } +} diff --git a/src/rust/vendor/allocator-api2/src/stable/vec/splice.rs b/src/rust/vendor/allocator-api2/src/stable/vec/splice.rs new file mode 100644 index 000000000..06a712b84 --- /dev/null +++ b/src/rust/vendor/allocator-api2/src/stable/vec/splice.rs @@ -0,0 +1,135 @@ +use core::ptr::{self}; +use core::slice::{self}; + +use crate::stable::alloc::{Allocator, Global}; + +use super::{Drain, Vec}; + +/// A splicing iterator for `Vec`. +/// +/// This struct is created by [`Vec::splice()`]. +/// See its documentation for more. +/// +/// # Example +/// +/// ``` +/// let mut v = vec![0, 1, 2]; +/// let new = [7, 8]; +/// let iter: std::vec::Splice<_> = v.splice(1.., new); +/// ``` +#[derive(Debug)] +pub struct Splice<'a, I: Iterator + 'a, A: Allocator + 'a = Global> { + pub(super) drain: Drain<'a, I::Item, A>, + pub(super) replace_with: I, +} + +impl Iterator for Splice<'_, I, A> { + type Item = I::Item; + + #[inline(always)] + fn next(&mut self) -> Option { + self.drain.next() + } + + #[inline(always)] + fn size_hint(&self) -> (usize, Option) { + self.drain.size_hint() + } +} + +impl DoubleEndedIterator for Splice<'_, I, A> { + #[inline(always)] + fn next_back(&mut self) -> Option { + self.drain.next_back() + } +} + +impl ExactSizeIterator for Splice<'_, I, A> {} + +impl Drop for Splice<'_, I, A> { + #[inline] + fn drop(&mut self) { + self.drain.by_ref().for_each(drop); + + unsafe { + if self.drain.tail_len == 0 { + self.drain.vec.as_mut().extend(self.replace_with.by_ref()); + return; + } + + // First fill the range left by drain(). + if !self.drain.fill(&mut self.replace_with) { + return; + } + + // There may be more elements. Use the lower bound as an estimate. + // FIXME: Is the upper bound a better guess? Or something else? + let (lower_bound, _upper_bound) = self.replace_with.size_hint(); + if lower_bound > 0 { + self.drain.move_tail(lower_bound); + if !self.drain.fill(&mut self.replace_with) { + return; + } + } + + // Collect any remaining elements. + // This is a zero-length vector which does not allocate if `lower_bound` was exact. + let mut collected = self + .replace_with + .by_ref() + .collect::>() + .into_iter(); + // Now we have an exact count. + if collected.len() > 0 { + self.drain.move_tail(collected.len()); + let filled = self.drain.fill(&mut collected); + debug_assert!(filled); + debug_assert_eq!(collected.len(), 0); + } + } + // Let `Drain::drop` move the tail back if necessary and restore `vec.len`. + } +} + +/// Private helper methods for `Splice::drop` +impl Drain<'_, T, A> { + /// The range from `self.vec.len` to `self.tail_start` contains elements + /// that have been moved out. + /// Fill that range as much as possible with new elements from the `replace_with` iterator. + /// Returns `true` if we filled the entire range. (`replace_with.next()` didn’t return `None`.) + #[inline(always)] + unsafe fn fill>(&mut self, replace_with: &mut I) -> bool { + let vec = unsafe { self.vec.as_mut() }; + let range_start = vec.len; + let range_end = self.tail_start; + let range_slice = unsafe { + slice::from_raw_parts_mut(vec.as_mut_ptr().add(range_start), range_end - range_start) + }; + + for place in range_slice { + if let Some(new_item) = replace_with.next() { + unsafe { ptr::write(place, new_item) }; + vec.len += 1; + } else { + return false; + } + } + true + } + + /// Makes room for inserting more elements before the tail. + #[inline(always)] + unsafe fn move_tail(&mut self, additional: usize) { + let vec = unsafe { self.vec.as_mut() }; + let len = self.tail_start + self.tail_len; + vec.buf.reserve(len, additional); + + let new_tail_start = self.tail_start + additional; + unsafe { + let src = vec.as_ptr().add(self.tail_start); + let dst = vec.as_mut_ptr().add(new_tail_start); + ptr::copy(src, dst, self.tail_len); + } + self.tail_start = new_tail_start; + } +} diff --git a/src/rust/vendor/compiler_builtins/.cargo-checksum.json b/src/rust/vendor/compiler_builtins/.cargo-checksum.json new file mode 100644 index 000000000..c72b4abdc --- /dev/null +++ b/src/rust/vendor/compiler_builtins/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.lock":"f62fecd171943a3253e61bd0a0dff285b9d136a0ba9436cbfce898b77100dd2d","Cargo.toml":"9a9983c5182bb38056387db346f2a2816c4a130c108079db5faeacd0b1ae96d4","LICENSE.txt":"0e13fed90654e0bc677d624a2d770833a09541fe0c0bdb3d051b3d081207393a","README.md":"eb4b820d9ed114fc49f074338e0a81a22a794a75f2785d10dadd81c43b7ef30d","build.rs":"14d469045ff44fa399d2dc722fd526340b9b084c30e44ff5d5f661f6673132ec","examples/intrinsics.rs":"5a1b3dbebfb8bbf96a1e9001f04f31a6e408d0e384c6d2f71e2d79c0945e1be5","libm/src/math/acos.rs":"fb066ba84aba1372d706425ec14f35ff8d971756d15eeebd22ecf42a716493bb","libm/src/math/acosf.rs":"a112b82309bba1d35c4e3d6ad4d6c21ef305343d9ab601ddf4bc61d43bc9f1af","libm/src/math/acosh.rs":"99de01ded7922bb93a882ad5ad8b472b5cae0059dea0bdca2077f65e94483150","libm/src/math/acoshf.rs":"10750c4d39ef6717b20a15ef1ce43e15eb851682d2f820f7e94501adec98b9a5","libm/src/math/asin.rs":"095a1e98996daff45df0b154ca0ec35bbf31db964ee9fdda0207308cb20df441","libm/src/math/asinf.rs":"49cccb4db2881982643a4a7d5453f4f8daf527711bbb67313607a3c178856d61","libm/src/math/asinh.rs":"4dd51affa71cce34a192ad66154e248f8d1c4b40fb497f29052333e425bb740f","libm/src/math/asinhf.rs":"914bfecf449f5e2bce786aa12c056d419073c6011d41c1bab7c39ba765fa4c53","libm/src/math/atan.rs":"d4fe46e1c5739dd09997869dcfbc3c85f03c534af52e700d6c6bcf9c3fedda07","libm/src/math/atan2.rs":"2623bc8ca707d13a7092ce49adf68e9cbf4452ad1bf4a861dc40ca858606a747","libm/src/math/atan2f.rs":"dd01943e0e1f1955912e5c3ffc9467529cf64bd02ac0a6ad5ab31dbe6657f05d","libm/src/math/atanf.rs":"e41b41569474a59c970ede3538e00bda4072cf4d90040017101cc79d7dc28caa","libm/src/math/atanh.rs":"57a8fb3f0f116fa4a966ac6bc2abd5f80236ead8e79013f468bd3786921f7110","libm/src/math/atanhf.rs":"6f2e57aaec1b5fc7609cb3938b3d155f51b4237dbda530739c34a0448cd9beb9","libm/src/math/cbrt.rs":"f2c45612d2eecd93cfcdd9ebf824c754fc8f8dfd6d16862c0b9c4ccea78c2a0f","libm/src/math/cbrtf.rs":"ad0b483854aa9f17a44d36c049bf0e8ebab34c27e90b787c05f45cc230ec7d19","libm/src/math/ceil.rs":"57ba5b6e207a0ccbd34190d1aa544389ca12126be23821dfb5746497f620ce03","libm/src/math/ceilf.rs":"c922a0475a599b9ea5473e615f74700b99707cebd6927f24ea59cb2a3cb3bbc3","libm/src/math/copysign.rs":"8b6440a251f0f1509d87f18122f74d0d5c03d0b60517e89e441434a3c5d84591","libm/src/math/copysignf.rs":"87d35436d224852ada93a2e93f6730cf1a727b808dd10e7d49ab4585866e336b","libm/src/math/cos.rs":"74babdc13ede78e400c5ca1854c3e22d2e08cbdc5618aefa5bba6f9303ef65b6","libm/src/math/cosf.rs":"09c40f93c445b741e22477ceedf163ca33b6a47f973f7c9876cfba2692edb29c","libm/src/math/cosh.rs":"0d0a7cef18577f321996b8b87561963139f754ad7f2ea0a3b3883811f3f0693a","libm/src/math/coshf.rs":"be8ca8739e4cf1978425b349f941cb4838bba8c10cb559c7940b9fd4fdde21ad","libm/src/math/erf.rs":"de69e6669ce1014e5b5086a7a6d01c4755f2f0590e204d2a77bea455764114f7","libm/src/math/erff.rs":"6acdbb07f74296067bb0380b850918cfb5806a89f9ff04352a7a0b921d728944","libm/src/math/exp.rs":"ca7405ad0d1993fffcf9aae96f9256307bed3c4916545aaebd1cf1d2df1807fa","libm/src/math/exp10.rs":"2e136c6ecedd8e57a6c31796f57fae4546fcfd8bc6be66c836f553df9c74b907","libm/src/math/exp10f.rs":"9a3ce506ec587066a355ab74e0eb69a03a214ac405718087ae9772365050b20b","libm/src/math/exp2.rs":"94a9304a2ce3bc81f6d2aefd3cde6faa30f13260d46cb13692863cdea1c9a3a1","libm/src/math/exp2f.rs":"785f2630accd35118ec07bf60273e219ed91a215b956b1552eeea5bc2a708cc8","libm/src/math/expf.rs":"ec14c18f891a9e37735ec39e6fc2e9bf674a2c2e083f22e2533b481177359c98","libm/src/math/expm1.rs":"124069f456c8ad331f265c7509d9e223b2a300e461bbfd3d6adfdcdd2ee5b8ac","libm/src/math/expm1f.rs":"18e2116d31ea8410051cc709b9d04b754b0e3ba6758ee1bf0b48749f4999b840","libm/src/math/expo2.rs":"4f4f9fecfccb43f30c2784aa7c0bb656754a52b8ab431f7d1b551c673ab133f1","libm/src/math/fabs.rs":"e6c7db39f98508098cdf64ac0c2f53866c466149a7490afb9fe22b44c4dd81b3","libm/src/math/fabsf.rs":"83a1f5f4d9ca899ba2b701d7332e18b40258b83e111db4c5d8fab2cc1be58aa3","libm/src/math/fdim.rs":"8ec091996005207297c2389ae563e1b18dbc6a9eac951de29a976c5cd7bc32a7","libm/src/math/fdimf.rs":"c7f3f2269834d55be26b6580ddc07c42531577955fa4de35bad1e2a361085614","libm/src/math/fenv.rs":"916ae11e4763588518d64dee82afb41be9d1ee38ecc0679c821d4e7e22cd3dc5","libm/src/math/floor.rs":"5050804cae173af6775c0678d6c1aafb5ca2b744bc8a2f50d9d03b95dcee1fb0","libm/src/math/floorf.rs":"c903e0c57bc60a888c513eb7a873a87a4759ba68fc791b6b931652f8ee74cc03","libm/src/math/fma.rs":"d87963472cd5bfcb83eb4010c67f3653857cf28f11378e06d63abae14c723e5d","libm/src/math/fmaf.rs":"1db6ee0d47ddbdb441cfe167edf89b431239f5805708fd0376cf5c01349a4bd6","libm/src/math/fmax.rs":"f6c8e96a8b1a170648d2fa3513e7b6b459085d708c839869f82e305fe58fac37","libm/src/math/fmaxf.rs":"dff0025433232e8a5ec7bd54d847ccf596d762ea4e35f5c54fbaac9404d732fd","libm/src/math/fmin.rs":"95b6cb66ca0e0e22276f0bf88dbe8fb69796a69a196a7491bd4802efbcf2e298","libm/src/math/fminf.rs":"304bc839b15ea3d84e68d2af9f40524ec120d30a36a667b22fcb98a6c258f4c7","libm/src/math/fmod.rs":"a1c0550fc7df8164733d914e222ff0966a2ab886d6e75a1098f24fe0283ae227","libm/src/math/fmodf.rs":"ee51ed092c0eeb8195f35735ff725cfd46612e0d689a7c483538bd92fbe61828","libm/src/math/frexp.rs":"28af70026922a8ab979744c7ad4d8faba6079c4743b7eeb6d14c983a982fbbcc","libm/src/math/frexpf.rs":"2e2593ae8002ba420809ebfaf737ef001cdc912354be3d978a8c0cb930350d4d","libm/src/math/hypot.rs":"841131c4a0cea75bc8a86e29f3f6d0815a61fc99731c9984651ce83d3050d218","libm/src/math/hypotf.rs":"5f317323edc2eb699580fe54b074b7e570a7734d51a0a149c0b49b54470a836c","libm/src/math/ilogb.rs":"d178ad7ca3439f82d565962b143f20448e45b2e2c51357b127abaec683297e32","libm/src/math/ilogbf.rs":"00f2b1b0496e21c6a42d68aea74d7156fa2ff0a735741b9051f3ca1cf0f57586","libm/src/math/j0.rs":"9572b6396c489927d332d0e717920e61ec0618e5e9c31f7eeeec70f5e4abab06","libm/src/math/j0f.rs":"802c8254bded9b3afb6eea8b9af240038a5a4a5d811396729f69ca509e3e7d87","libm/src/math/j1.rs":"97b1af1611fa3d110c2b349ee8e4176100132ea1391b619086b47ac063b81803","libm/src/math/j1f.rs":"9c9b128752e8ea2e7d81b637ba84907ab54a545e7602c49167b313743927930b","libm/src/math/jn.rs":"847d122334e5707ad9627146cddccc082a1f2f5bcd3e5ef54399013a7007ce88","libm/src/math/jnf.rs":"4045076f7d1a1b89882ed60d4dd60a4cbbc66b85cfb90491378c8015effcc476","libm/src/math/k_cos.rs":"f34a69e44d6b8901b03b578a75972f438ab20a7b98a0903fc1903d6fde3899be","libm/src/math/k_cosf.rs":"8f7117ff21cebf8e890a5bcfd7ea858a94172f4172b79a66d53824c2cb0888b1","libm/src/math/k_expo2.rs":"eb4ca9e6a525b7ea6da868c3cb136896682cc46f8396ba2a2ebc3ae9e9ba54b0","libm/src/math/k_expo2f.rs":"d51ad5df61cb5d1258bdb90c52bfed4572bb446a9337de9c04411ed9454ae0cb","libm/src/math/k_sin.rs":"14b2aba6ca07150c92768b5a72acaf5cde6a11d6619e14896512a7ba242e289a","libm/src/math/k_sinf.rs":"2775fcc710807164e6f37a4f8da3c8143cd5f16e19ce7c31c5591522151d7a96","libm/src/math/k_tan.rs":"a72beae4ccd9631eeeb61d6365bbeecae81c8411f3120a999c515cca0d5ea5c5","libm/src/math/k_tanf.rs":"6a794be56fa4b2f60452b9bab19af01c388f174560acbf829a351378ea39495d","libm/src/math/ldexp.rs":"b647f0096e80e4d926d8dd18d294c892ee2cb1778effe2c5e1b2664ae5cb1a4e","libm/src/math/ldexpf.rs":"98743fad2cd97a7be496f40ba3157ac1438fce0d0c25d5ab90c3b8c71c3fd0ed","libm/src/math/lgamma.rs":"0edd18e4f96bfcbe8b1b5af3eeca5208cd6d2d479dfa5ad117c9dfeccecf614f","libm/src/math/lgamma_r.rs":"f44a37aeccd56559ef784ae8edf217d14ad5cc2d910f0a65e70ffc86d7dc23dd","libm/src/math/lgammaf.rs":"967845357758b868a571857ec001f9f9154001110b8e97c08b6d10586bed9c49","libm/src/math/lgammaf_r.rs":"7143016d60e11fa235d53968125e57231b1104ce52149b5e1eed39629e0d1ff0","libm/src/math/log.rs":"b5e0c5f30d9e94351488732801be3107c12b854c3f95ad37e256dd88eeca408f","libm/src/math/log10.rs":"3425ff8be001fd1646ba15e254eb6ef4bdc6ccaf0cbee27ddf1fa84e04178b90","libm/src/math/log10f.rs":"fee4f71879bc4c99259e68c0c641364901629fb29a8ebddfcc0d090102cceddd","libm/src/math/log1p.rs":"9cf400852f165e6be19b97036ae9521fb9ca857d0a9a91c117d9123221622185","libm/src/math/log1pf.rs":"2716e6d2afa271996b7c8f47fd9e4952c88f4c1fd8c07c3e8ce8c62794bf71d8","libm/src/math/log2.rs":"dbbbfbaaa8aa6a4dbefea554ea3983090a9691228b011910c751f6adca912c40","libm/src/math/log2f.rs":"92a90350d8edce21c31c285c3e620fca7c62a2366008921715945c2c73b5b79f","libm/src/math/logf.rs":"845342cffc34d3db1f5ec12d8e5b773cd5a79056e28662fcb9bcd80207596f50","libm/src/math/mod.rs":"d694260529d51d0bc17f88ad557d852b9bb0bc3f7466cf7f62b679dc95ebba42","libm/src/math/modf.rs":"d012ed5a708ef52b6d1313c22a46cadaf5764dde1220816e3df2f03a0fcc60ae","libm/src/math/modff.rs":"f8f1e4c27a85d2cdb3c8e74439d59ef64aa543b948f22c23227d02d8388d61c2","libm/src/math/nextafter.rs":"3282e7eef214a32736fb6928d490198ad394b26b402b45495115b104839eebfe","libm/src/math/nextafterf.rs":"0937dc8a8155c19842c12181e741cec1f7df1f7a00cee81fcb2475e2842761b7","libm/src/math/pow.rs":"17c38297c5bf99accd915f292b777f8716ecf328916297c8bb9dfde6fd8ce522","libm/src/math/powf.rs":"2c423a0ea57fdc4e20f3533f744c6e6288c998b4de8f2914fafaa0e78be81b04","libm/src/math/rem_pio2.rs":"3e53234977daf61c89c29c940791714aad2f676a6f38188c7d17543a2aa8806f","libm/src/math/rem_pio2_large.rs":"482f31ff4e4eacf885f6130ae26a1d59f76b382059d6c742f30e5036811d3ca8","libm/src/math/rem_pio2f.rs":"07fb48f6d5cbadfd32ce4124b2b74af98b8391a2a6f36ce2a7d32e4500cb65ac","libm/src/math/remainder.rs":"63865f4370853c476b45bb27a5c54a4072146aa4a626835ae5263871a4e7e5dc","libm/src/math/remainderf.rs":"dd3fa432dbda8f2135428198be7bd69c57f8d13df3f365b12f52bf6a82352ac4","libm/src/math/remquo.rs":"3cc0bf55069f165c4843f2c358b3a27279c01e8cdd99f9057a3f7f31f45408f2","libm/src/math/remquof.rs":"cc749e18ecb7e766b8b8eeabdbf89ac99087d3d587e71e30f690676a3d2c1f9b","libm/src/math/rint.rs":"3b3cbdbe9c9390990bd90e45b5c839ab65cf820cdf936feabd64b23422359942","libm/src/math/rintf.rs":"43d979c3be5ac8f9f06853a0a5b707dc8e20a9aba2cbbc3a132db84c95c37a11","libm/src/math/round.rs":"f10797ef15dd34a74e912ba8621d60bc0200c87b94308c9de3cc88d7aec4feb4","libm/src/math/roundf.rs":"27e37cfcf82373709e7debf9c0c18f7ed00ae0f5d97a214c388041f7a6996d35","libm/src/math/scalbn.rs":"b5c9d6d4177fe393cbfe1c634d75ce14b754f6cbce87c5bf979a9661491748a2","libm/src/math/scalbnf.rs":"4f198d06db1896386256fb9a5ac5b805b16b836226c18780a475cf18d7c1449c","libm/src/math/sin.rs":"bb483a2138ca779e03a191222636f0c60fd75a77a2a12f263bda4b6aa9136317","libm/src/math/sincos.rs":"1cf62a16c215e367f51078a3ba23a3f257682032a8f3c657293029a886b18d82","libm/src/math/sincosf.rs":"b0f589e6ada8215944d7784f420c6721c90387d799e349ce7676674f3c475e75","libm/src/math/sinf.rs":"dcddac1d56b084cbb8d0e019433c9c5fe2201d9b257a7dcf2f85c9a8f14b79cf","libm/src/math/sinh.rs":"d8ee4c7af883a526f36c1a6da13bb81fba9181b477e2f2538161a2bee97edc35","libm/src/math/sinhf.rs":"d06eb030ba9dbf7094df127262bfe99f149b4db49fa8ab8c15499660f1e46b26","libm/src/math/sqrt.rs":"5f3a0a582b174fcfccb9c5274899cb05b664ccb92bf1d42caa58890947b68256","libm/src/math/sqrtf.rs":"da926ac27af6eecdf8b62d8baeefcfe1627110592e44298f6b7f05b7ac12fe7e","libm/src/math/tan.rs":"930ecedaadc60f704c2dfa4e15186f59713c1ba7d948529d215223b424827db5","libm/src/math/tanf.rs":"894156a3b107aee08461eb4e7e412fc049aa237d176ae705c6e3e2d7060d94e3","libm/src/math/tanh.rs":"f1f08eb98ed959a17370a7aaf0177be36e3764543424e78feb033ed3f5e8ec98","libm/src/math/tanhf.rs":"74027b0c672a4e64bdef6d7a3069b90caec50e1e7dbb2c12d2828f310502f41e","libm/src/math/tgamma.rs":"c889cfa49bbeb4dbb0941fe9fac3b4da7d5879dcf04a3b9bb6e56de529baf374","libm/src/math/tgammaf.rs":"0737b34777095d0e4d07fe533e8f105082dd4e8ece411bba6ae5993b45b9388c","libm/src/math/trunc.rs":"642264897cc1505e720c8cf313be81aa9fd53aae866644a2e988d01dbc77fd8a","libm/src/math/truncf.rs":"dee3607baf1af0f01deae46e429e097234c50b268eaefebbe716f19f38597900","src/aarch64.rs":"c414ad2cd6af35bf0bfe1ddd0d2e6e07a7a0051490e11346ad689436711e385c","src/aarch64_linux.rs":"a4bf136ba1624f253132a8588aac438ce23244a16655149320338ac980ad48cc","src/arm.rs":"d26d44f9e9a8b79b6b3a44373c454da401ce2040348de55688bb637d18d7672b","src/arm_linux.rs":"35a4cb7b75015543feb15b0c692da0faf0e6037d3b97a4a18067ba416eae1a70","src/float/add.rs":"cfb03a04c339054463e63db643455e61313079061759a85823d7a4ce44823837","src/float/cmp.rs":"01fae56128e062c9581d53f90b7d110c9c5083093690227b25bd412c5e17362e","src/float/conv.rs":"8bf710288f88cfbf67e510f68abbb5a4f7173d2ea9ef32f98d594935fc051641","src/float/div.rs":"84168e25b0d54f88efc993fd26d2296bd67db6bb531e466805e1fd8b89d76670","src/float/extend.rs":"259d9dee49297a0e28efbc522fa2b411b613e04eccbbc8a7e2dc6657eb93ff39","src/float/mod.rs":"a91cf65abb6e715c5559e3e4bd87a69cd99a9552d54804d0b7137c02c513f158","src/float/mul.rs":"482078b7098a407c395e07077299da6860a02a2b79125803481f66eb1bc18979","src/float/pow.rs":"dc05e1692e29c8e2f3bc7d4e525bd6249b07f6079e14f7cd12772f844ffb9365","src/float/sub.rs":"0bde7c682cf95f18731fcdfdb48b9185da592522946ae64dd0c29a8f9972d744","src/float/trunc.rs":"d5b9204e5d93331996e6e87c8f034ce69f8c273e8cfdd6760275789b9894226f","src/hexagon.rs":"bc42fc9f4749cff1350bb19326bff97ae2f9cceedb72bf1e90d9b59a93727f82","src/hexagon/dfaddsub.s":"4d100ac8e15559d635a7a59db7883a418ab678325448561e1771e60e8be572b6","src/hexagon/dfdiv.s":"80357702ad05cd3e9e5d2e9de622a4deee79c0cfa08876f66d5abc7fe23bb914","src/hexagon/dffma.s":"784b891716112ab1f2f4ecb462fbf39ca7700f4f06c4518d91d8ac157a8e2786","src/hexagon/dfminmax.s":"4aee42cfcafe2df910d2de7ab0b8c7ca36173496220ee79bc1c02d6adcbdedbb","src/hexagon/dfmul.s":"c05a8ac061e3a923704688dd7b15fd35e6dfceef88761f48ab126c290a624cf0","src/hexagon/dfsqrt.s":"7ecc42449aa3c45e6c8b0cbaa8dbf7eb3bdd125f8b20320cf13a9b5668f86c99","src/hexagon/divdi3.s":"21ff6787df365f9dc6fa92be9ca0d5fce4adc55ce7d43da227d60c590f42f879","src/hexagon/divsi3.s":"14da4a289e3b18a3240ba8f313904bca42e7b912fa288dbeda2ad57beabc8400","src/hexagon/fastmath2_dlib_asm.s":"2713a0d45d6f8496d85e81dc6b55e5ca669ab3610f7bd3d4d8aa63c866e8336d","src/hexagon/fastmath2_ldlib_asm.s":"1e5027fd6ab713efb39a29aac37be1b7e3b5d71cc6d65302b16ac60fad3d137a","src/hexagon/func_macro.s":"4d6248a31cea3d60e790a706725d9e587d758c047cfd6d3d6952d5da4b0d035d","src/hexagon/memcpy_forward_vp4cp4n2.s":"2ca2c807831258ccb58dd0f52f76230ea3b79cafd10a5dcca05e851c14e7ff41","src/hexagon/memcpy_likely_aligned.s":"5a2d2e938cb5dc4bdae743f9806978c4b24295c8ff168d5c62d0d3c126a3e6b5","src/hexagon/moddi3.s":"6feac04ab63f0ca9d1198cee321eecda844ca8c19340830c084129f71d8ec724","src/hexagon/modsi3.s":"457d070dbff8d10ed950a6dbc20c52f9e6d4518f73e1855ea596997c0924adf3","src/hexagon/sfdiv_opt.s":"ca13c3b24cfc7e3f6a73045584cfeb6fa670440958a38a5c80ad387586f52157","src/hexagon/sfsqrt_opt.s":"d9bf0ba9948eefc62c095f28b7c6b18f60c70ccfa95fd4db932fdb12c660721b","src/hexagon/udivdi3.s":"6cb96d73b59246431bba37e1f4c4003a8c1d4a059449e897c1282bcd90bcb7c5","src/hexagon/udivmoddi4.s":"f6e6e2eaedc32b6ac84a81c5dec2c4b054d123cbc749b9a1fdc4efdf598cdcb5","src/hexagon/udivmodsi4.s":"7b06ef270c1bd1b03d36863a3dc2f1fa67c44aa21a192e7e647c829658da4a11","src/hexagon/udivsi3.s":"66c0a1e5548b9c5e1ed850a76ad0baf505f1f594cdbd6e3ed27c2e64f90e629e","src/hexagon/umoddi3.s":"51cac49914d511ea9fd827b599d07d5f97eff885b88ef85ca767ffdf98c94798","src/hexagon/umodsi3.s":"24142f8cafd2aa903358176bbd67ef01c0cce0aa3ddb9a5ff1fd797d46e4a54b","src/int/addsub.rs":"89d9687f662a5cb7a57c9b42d056775c33e4f935b7285f5f1558c7ca4b605133","src/int/leading_zeros.rs":"ccf5e9d098c80034dcf6e38437c9a2eb670fa8043558bbfb574f2293164729a6","src/int/mod.rs":"bab1b77535ceebdebb89fd4e59e7105f8c45347bb638351a626615b24544a0b1","src/int/mul.rs":"ead0733d605575eba996f94cdf804e5e6eaab290e213707a40278863b1889d30","src/int/sdiv.rs":"01d62e65f34ec0d3dbca41ea350e241367d4cf8dcc55882e09c701d4e84ae895","src/int/shift.rs":"ade15d5ede477e2cc21d7538ffe26efe45880bbfb6e3a2924e05c99b4b371b61","src/int/specialized_div_rem/asymmetric.rs":"27f5bf70a35109f9d4e4e1ad1e8003aa17da5a1e436bf3e63a493d7528a3a566","src/int/specialized_div_rem/binary_long.rs":"6bdb94c349705e68ca17ae6ac53a87658d2e0b1860ee72d73c53cc9d171062ae","src/int/specialized_div_rem/delegate.rs":"9df141af98e391361e25d71ae38d5e845a91d896edd2c041132fd46af8268e85","src/int/specialized_div_rem/mod.rs":"3f6c132fecf9bec02e403e38c1c93ab4dc604819bec690e9a83c573cea40339b","src/int/specialized_div_rem/norm_shift.rs":"3be7ee0dea545c1f702d9daf67dad2b624bf7b17b075c8b90d3d3f7b53df4c21","src/int/specialized_div_rem/trifecta.rs":"87eef69da255b809fd710b14f2eb3f9f59e3dac625f8564ebc8ba78f9763523b","src/int/udiv.rs":"e451ead3c1c8cf38c71288d7473d6fb47e567c33d07f68b39e91081b1dff346c","src/lib.miri.rs":"ce4d3d64f5e1bc4b9f639aacecdac1b5c00c70839611ec7e4e2bd03c9b5ad864","src/lib.rs":"7c16c060f00de6d5b71b30e71ab2e28108b5ff31598927f9d3e2afb6840d5c1a","src/macros.rs":"33166bf8978961cf0179baa1e52148345414cfe6217bded4fbaa909a99f1a6d1","src/math.rs":"d222f901876599e83bbe515deea8af38d3b62486e77e8b243c27e7137151b55b","src/mem/impls.rs":"8b389b9aeb43dd55351a86abd4b5fc311f7161e1a4023ca3c5a4c57b49650881","src/mem/mod.rs":"714763d045a20e0a68c04f929d14fb3d7b28662dda4a2622970416642af833dc","src/mem/x86_64.rs":"2f29fb392086b3f7e2e78fcfcbf0f0e205822eb4599f1bdf93e41833e1bd2766","src/probestack.rs":"ef5c07e9b95de7b2b77a937789fcfefd9846274317489ad6d623e377c9888601","src/riscv.rs":"50ddd6c732a9f810ab6e15a97b22fdc94cfc1dea09c45d87c833937f9206bee0","src/x86.rs":"0dbd91315f801608161a2f16f1903e1e80db81e101b05a7d20181e00e2e53ef0","src/x86_64.rs":"13b5e010a0d45164844fda4ada4d4e965f422f2a27768b3ce495c637714cf66f"},"package":"f11973008a8cf741fe6d22f339eba21fd0ca81e2760a769ba8243ed6c21edd7e"} \ No newline at end of file diff --git a/src/rust/vendor/compiler_builtins/Cargo.lock b/src/rust/vendor/compiler_builtins/Cargo.lock new file mode 100644 index 000000000..379cae04a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/Cargo.lock @@ -0,0 +1,23 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "cc" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db2f146208d7e0fbee761b09cd65a7f51ccc38705d4e7262dad4d73b12a76b1" + +[[package]] +name = "compiler_builtins" +version = "0.1.109" +dependencies = [ + "cc", + "rustc-std-workspace-core", +] + +[[package]] +name = "rustc-std-workspace-core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1956f5517128a2b6f23ab2dadf1a976f4f5b27962e7724c2bf3d45e539ec098c" diff --git a/src/rust/vendor/compiler_builtins/Cargo.toml b/src/rust/vendor/compiler_builtins/Cargo.toml new file mode 100644 index 000000000..4fca7c0d7 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/Cargo.toml @@ -0,0 +1,74 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2018" +name = "compiler_builtins" +version = "0.1.109" +authors = ["Jorge Aparicio "] +links = "compiler-rt" +include = [ + "/Cargo.toml", + "/build.rs", + "/src/*", + "/examples/*", + "/LICENSE.txt", + "/README.md", + "/compiler-rt/*", + "/libm/src/math/*", +] +description = """ +Compiler intrinsics used by the Rust compiler. Also available for other targets +if necessary! +""" +homepage = "https://github.com/rust-lang/compiler-builtins" +documentation = "https://docs.rs/compiler_builtins" +readme = "README.md" +license = "MIT/Apache-2.0" +repository = "https://github.com/rust-lang/compiler-builtins" + +[profile.dev] +panic = "abort" + +[profile.release] +panic = "abort" + +[lib] +test = false + +[[example]] +name = "intrinsics" +required-features = ["compiler-builtins"] + +[dependencies.core] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-core" + +[dev-dependencies] + +[build-dependencies.cc] +version = "1.0" +optional = true + +[features] +c = ["cc"] +compiler-builtins = [] +default = ["compiler-builtins"] +mangled-names = [] +mem = [] +no-asm = [] +public-test-deps = [] +rustc-dep-of-std = [ + "compiler-builtins", + "core", +] +weak-intrinsics = [] diff --git a/src/rust/vendor/compiler_builtins/LICENSE.txt b/src/rust/vendor/compiler_builtins/LICENSE.txt new file mode 100644 index 000000000..92bbe113a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/LICENSE.txt @@ -0,0 +1,91 @@ +============================================================================== +compiler-builtins License +============================================================================== + +The compiler-builtins crate is dual licensed under both the University of +Illinois "BSD-Like" license and the MIT license. As a user of this code you may +choose to use it under either license. As a contributor, you agree to allow +your code to be used under both. + +Full text of the relevant licenses is included below. + +============================================================================== + +University of Illinois/NCSA +Open Source License + +Copyright (c) 2009-2016 by the contributors listed in CREDITS.TXT + +All rights reserved. + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +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: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +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 +CONTRIBUTORS 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 WITH THE +SOFTWARE. + +============================================================================== + +Copyright (c) 2009-2015 by the contributors listed in CREDITS.TXT + +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. + +============================================================================== +Copyrights and Licenses for Third Party Software Distributed with LLVM: +============================================================================== +The LLVM software contains code written by third parties. Such software will +have its own individual LICENSE.TXT file in the directory in which it appears. +This file will describe the copyrights, license, and restrictions which apply +to that code. + +The disclaimer of warranty in the University of Illinois Open Source License +applies to all code in the LLVM Distribution, and nothing in any of the +other licenses gives permission to use the names of the LLVM Team or the +University of Illinois to endorse or promote products derived from this +Software. + diff --git a/src/rust/vendor/compiler_builtins/README.md b/src/rust/vendor/compiler_builtins/README.md new file mode 100644 index 000000000..ffef4e52c --- /dev/null +++ b/src/rust/vendor/compiler_builtins/README.md @@ -0,0 +1,396 @@ +# `compiler-builtins` + +> Porting `compiler-rt` intrinsics to Rust + +See [rust-lang/rust#35437][0]. + +[0]: https://github.com/rust-lang/rust/issues/35437 + +## When and how to use this crate? + +If you are working with a target that doesn't have binary releases of std +available via rustup (this probably means you are building the core crate +yourself) and need compiler-rt intrinsics (i.e. you are probably getting linker +errors when building an executable: `undefined reference to __aeabi_memcpy`), +you can use this crate to get those intrinsics and solve the linker errors. To +do that, add this crate somewhere in the dependency graph of the crate you are +building: + +``` toml +# Cargo.toml +[dependencies] +compiler_builtins = { git = "https://github.com/rust-lang/compiler-builtins" } +``` + +``` rust +extern crate compiler_builtins; + +// ... +``` + +If you still get an "undefined reference to $INTRINSIC" error after that change, +that means that we haven't ported `$INTRINSIC` to Rust yet! Please open [an +issue] with the name of the intrinsic and the LLVM triple (e.g. +thumbv7m-none-eabi) of the target you are using. That way we can prioritize +porting that particular intrinsic. + +If you've got a C compiler available for your target then while we implement +this intrinsic you can temporarily enable a fallback to the actual compiler-rt +implementation as well for unimplemented intrinsics: + +```toml +[dependencies.compiler_builtins] +git = "https://github.com/rust-lang/compiler-builtins" +features = ["c"] +``` + +[an issue]: https://github.com/rust-lang/compiler-builtins/issues + +## Contributing + +1. Pick one or more intrinsics from the [pending list](#progress). +2. Fork this repository. +3. Port the intrinsic(s) and their corresponding [unit tests][1] from their + [C implementation][2] to Rust. +4. Implement a [test generator][3] to compare the behavior of the ported intrinsic(s) + with their implementation on the testing host. Note that randomized compiler-builtin tests + should be run using `cargo test --features gen-tests`. +4. Send a Pull Request (PR). +5. Once the PR passes our extensive [testing infrastructure][4], we'll merge it! +6. Celebrate :tada: + +[1]: https://github.com/rust-lang/llvm-project/tree/9e3de9490ff580cd484fbfa2908292b4838d56e7/compiler-rt/test/builtins/Unit +[2]: https://github.com/rust-lang/llvm-project/tree/9e3de9490ff580cd484fbfa2908292b4838d56e7/compiler-rt/lib/builtins +[3]: https://github.com/rust-lang/compiler-builtins/blob/0ba07e49264a54cb5bbd4856fcea083bb3fbec15/build.rs#L180-L265 +[4]: https://github.com/rust-lang/compiler-builtins/actions + +### Porting Reminders + +1. [Rust][5a] and [C][5b] have slightly different operator precedence. C evaluates comparisons (`== !=`) before bitwise operations (`& | ^`), while Rust evaluates the other way. +2. C assumes wrapping operations everywhere. Rust panics on overflow when in debug mode. Consider using the [Wrapping][6] type or the explicit [wrapping_*][7] functions where applicable. +3. Note [C implicit casts][8], especially integer promotion. Rust is much more explicit about casting, so be sure that any cast which affects the output is ported to the Rust implementation. +4. Rust has [many functions][9] for integer or floating point manipulation in the standard library. Consider using one of these functions rather than porting a new one. + +[5a]: https://doc.rust-lang.org/reference/expressions.html#expression-precedence +[5b]: http://en.cppreference.com/w/c/language/operator_precedence +[6]: https://doc.rust-lang.org/core/num/struct.Wrapping.html +[7]: https://doc.rust-lang.org/std/primitive.i32.html#method.wrapping_add +[8]: http://en.cppreference.com/w/cpp/language/implicit_conversion +[9]: https://doc.rust-lang.org/std/primitive.i32.html + +## Progress + +- [x] adddf3.c +- [x] addsf3.c +- [x] arm/adddf3vfp.S +- [x] arm/addsf3vfp.S +- [x] arm/aeabi_dcmp.S +- [x] arm/aeabi_fcmp.S +- [x] arm/aeabi_idivmod.S +- [x] arm/aeabi_ldivmod.S +- [x] arm/aeabi_memcpy.S +- [x] arm/aeabi_memmove.S +- [x] arm/aeabi_memset.S +- [x] arm/aeabi_uidivmod.S +- [x] arm/aeabi_uldivmod.S +- [x] arm/divdf3vfp.S +- [ ] arm/divmodsi4.S (generic version is done) +- [x] arm/divsf3vfp.S +- [ ] arm/divsi3.S (generic version is done) +- [x] arm/eqdf2vfp.S +- [x] arm/eqsf2vfp.S +- [x] arm/extendsfdf2vfp.S +- [ ] arm/fixdfsivfp.S +- [ ] arm/fixsfsivfp.S +- [ ] arm/fixunsdfsivfp.S +- [ ] arm/fixunssfsivfp.S +- [ ] arm/floatsidfvfp.S +- [ ] arm/floatsisfvfp.S +- [ ] arm/floatunssidfvfp.S +- [ ] arm/floatunssisfvfp.S +- [x] arm/gedf2vfp.S +- [x] arm/gesf2vfp.S +- [x] arm/gtdf2vfp.S +- [x] arm/gtsf2vfp.S +- [x] arm/ledf2vfp.S +- [x] arm/lesf2vfp.S +- [x] arm/ltdf2vfp.S +- [x] arm/ltsf2vfp.S +- [ ] arm/modsi3.S (generic version is done) +- [x] arm/muldf3vfp.S +- [x] arm/mulsf3vfp.S +- [x] arm/nedf2vfp.S +- [ ] arm/negdf2vfp.S +- [ ] arm/negsf2vfp.S +- [x] arm/nesf2vfp.S +- [x] arm/softfloat-alias.list +- [x] arm/subdf3vfp.S +- [x] arm/subsf3vfp.S +- [x] arm/truncdfsf2vfp.S +- [ ] arm/udivmodsi4.S (generic version is done) +- [ ] arm/udivsi3.S (generic version is done) +- [ ] arm/umodsi3.S (generic version is done) +- [ ] arm/unorddf2vfp.S +- [ ] arm/unordsf2vfp.S +- [x] ashldi3.c +- [x] ashrdi3.c +- [x] comparedf2.c +- [x] comparesf2.c +- [x] divdf3.c +- [x] divdi3.c +- [x] divmoddi4.c +- [x] divmodsi4.c +- [x] divsf3.c +- [x] divsi3.c +- [ ] extendhfsf2.c +- [x] extendsfdf2.c +- [x] fixdfdi.c +- [x] fixdfsi.c +- [x] fixsfdi.c +- [x] fixsfsi.c +- [x] fixunsdfdi.c +- [x] fixunsdfsi.c +- [x] fixunssfdi.c +- [x] fixunssfsi.c +- [x] floatdidf.c +- [x] floatdisf.c +- [x] floatsidf.c +- [x] floatsisf.c +- [x] floatundidf.c +- [x] floatundisf.c +- [x] floatunsidf.c +- [x] floatunsisf.c +- [ ] i386/ashldi3.S +- [ ] i386/ashrdi3.S +- [x] i386/chkstk.S +- [ ] i386/divdi3.S +- [ ] i386/lshrdi3.S +- [ ] i386/moddi3.S +- [ ] i386/muldi3.S +- [ ] i386/udivdi3.S +- [ ] i386/umoddi3.S +- [x] lshrdi3.c +- [x] moddi3.c +- [x] modsi3.c +- [x] muldf3.c +- [x] muldi3.c +- [x] mulodi4.c +- [x] mulosi4.c +- [x] mulsf3.c +- [x] powidf2.c +- [x] powisf2.c +- [x] subdf3.c +- [x] subsf3.c +- [ ] truncdfhf2.c +- [x] truncdfsf2.c +- [ ] truncsfhf2.c +- [x] udivdi3.c +- [x] udivmoddi4.c +- [x] udivmodsi4.c +- [x] udivsi3.c +- [x] umoddi3.c +- [x] umodsi3.c +- [x] x86_64/chkstk.S + +These builtins are needed to support 128-bit integers, which are in the process of being added to Rust. + +- [x] ashlti3.c +- [x] ashrti3.c +- [x] divti3.c +- [x] fixdfti.c +- [x] fixsfti.c +- [x] fixunsdfti.c +- [x] fixunssfti.c +- [x] floattidf.c +- [x] floattisf.c +- [x] floatuntidf.c +- [x] floatuntisf.c +- [x] lshrti3.c +- [x] modti3.c +- [x] muloti4.c +- [x] multi3.c +- [x] udivmodti4.c +- [x] udivti3.c +- [x] umodti3.c + +## Unimplemented functions + +These builtins involve floating-point types ("`f128`", "`f80`" and complex numbers) that are not supported by Rust. + +- ~~addtf3.c~~ +- ~~comparetf2.c~~ +- ~~divdc3.c~~ +- ~~divsc3.c~~ +- ~~divtc3.c~~ +- ~~divtf3.c~~ +- ~~divxc3.c~~ +- ~~extenddftf2.c~~ +- ~~extendsftf2.c~~ +- ~~fixtfdi.c~~ +- ~~fixtfsi.c~~ +- ~~fixtfti.c~~ +- ~~fixunstfdi.c~~ +- ~~fixunstfsi.c~~ +- ~~fixunstfti.c~~ +- ~~fixunsxfdi.c~~ +- ~~fixunsxfsi.c~~ +- ~~fixunsxfti.c~~ +- ~~fixxfdi.c~~ +- ~~fixxfti.c~~ +- ~~floatditf.c~~ +- ~~floatdixf.c~~ +- ~~floatsitf.c~~ +- ~~floattixf.c~~ +- ~~floatunditf.c~~ +- ~~floatundixf.c~~ +- ~~floatunsitf.c~~ +- ~~floatuntixf.c~~ +- ~~i386/floatdixf.S~~ +- ~~i386/floatundixf.S~~ +- ~~muldc3.c~~ +- ~~mulsc3.c~~ +- ~~multc3.c~~ +- ~~multf3.c~~ +- ~~mulxc3.c~~ +- ~~powitf2.c~~ +- ~~powixf2.c~~ +- ~~ppc/divtc3.c~~ +- ~~ppc/fixtfdi.c~~ +- ~~ppc/fixunstfdi.c~~ +- ~~ppc/floatditf.c~~ +- ~~ppc/floatunditf.c~~ +- ~~ppc/gcc_qadd.c~~ +- ~~ppc/gcc_qdiv.c~~ +- ~~ppc/gcc_qmul.c~~ +- ~~ppc/gcc_qsub.c~~ +- ~~ppc/multc3.c~~ +- ~~subtf3.c~~ +- ~~trunctfdf2.c~~ +- ~~trunctfsf2.c~~ +- ~~x86_64/floatdixf.c~~ +- ~~x86_64/floatundixf.S~~ + +These builtins are never called by LLVM. + +- ~~absvdi2.c~~ +- ~~absvsi2.c~~ +- ~~absvti2.c~~ +- ~~addvdi3.c~~ +- ~~addvsi3.c~~ +- ~~addvti3.c~~ +- ~~arm/aeabi_cdcmp.S~~ +- ~~arm/aeabi_cdcmpeq_check_nan.c~~ +- ~~arm/aeabi_cfcmp.S~~ +- ~~arm/aeabi_cfcmpeq_check_nan.c~~ +- ~~arm/aeabi_div0.c~~ +- ~~arm/aeabi_drsub.c~~ +- ~~arm/aeabi_frsub.c~~ +- ~~arm/aeabi_memcmp.S~~ +- ~~arm/bswapdi2.S~~ +- ~~arm/bswapsi2.S~~ +- ~~arm/clzdi2.S~~ +- ~~arm/clzsi2.S~~ +- ~~arm/comparesf2.S~~ +- ~~arm/restore_vfp_d8_d15_regs.S~~ +- ~~arm/save_vfp_d8_d15_regs.S~~ +- ~~arm/switch16.S~~ +- ~~arm/switch32.S~~ +- ~~arm/switch8.S~~ +- ~~arm/switchu8.S~~ +- ~~clzdi2.c~~ +- ~~clzsi2.c~~ +- ~~clzti2.c~~ +- ~~cmpdi2.c~~ +- ~~cmpti2.c~~ +- ~~ctzdi2.c~~ +- ~~ctzsi2.c~~ +- ~~ctzti2.c~~ +- ~~ffsdi2.c~~ - this is [called by gcc][jemalloc-fail] though! +- ~~ffsti2.c~~ +- ~~mulvdi3.c~~ +- ~~mulvsi3.c~~ +- ~~mulvti3.c~~ +- ~~negdf2.c~~ +- ~~negdi2.c~~ +- ~~negsf2.c~~ +- ~~negti2.c~~ +- ~~negvdi2.c~~ +- ~~negvsi2.c~~ +- ~~negvti2.c~~ +- ~~paritydi2.c~~ +- ~~paritysi2.c~~ +- ~~parityti2.c~~ +- ~~popcountdi2.c~~ +- ~~popcountsi2.c~~ +- ~~popcountti2.c~~ +- ~~ppc/restFP.S~~ +- ~~ppc/saveFP.S~~ +- ~~subvdi3.c~~ +- ~~subvsi3.c~~ +- ~~subvti3.c~~ +- ~~ucmpdi2.c~~ +- ~~ucmpti2.c~~ +- ~~udivmodti4.c~~ + +[jemalloc-fail]: https://travis-ci.org/rust-lang/rust/jobs/249772758 + +Rust only exposes atomic types on platforms that support them, and therefore does not need to fall back to software implementations. + +- ~~arm/sync_fetch_and_add_4.S~~ +- ~~arm/sync_fetch_and_add_8.S~~ +- ~~arm/sync_fetch_and_and_4.S~~ +- ~~arm/sync_fetch_and_and_8.S~~ +- ~~arm/sync_fetch_and_max_4.S~~ +- ~~arm/sync_fetch_and_max_8.S~~ +- ~~arm/sync_fetch_and_min_4.S~~ +- ~~arm/sync_fetch_and_min_8.S~~ +- ~~arm/sync_fetch_and_nand_4.S~~ +- ~~arm/sync_fetch_and_nand_8.S~~ +- ~~arm/sync_fetch_and_or_4.S~~ +- ~~arm/sync_fetch_and_or_8.S~~ +- ~~arm/sync_fetch_and_sub_4.S~~ +- ~~arm/sync_fetch_and_sub_8.S~~ +- ~~arm/sync_fetch_and_umax_4.S~~ +- ~~arm/sync_fetch_and_umax_8.S~~ +- ~~arm/sync_fetch_and_umin_4.S~~ +- ~~arm/sync_fetch_and_umin_8.S~~ +- ~~arm/sync_fetch_and_xor_4.S~~ +- ~~arm/sync_fetch_and_xor_8.S~~ +- ~~arm/sync_synchronize.S~~ +- ~~atomic.c~~ +- ~~atomic_flag_clear.c~~ +- ~~atomic_flag_clear_explicit.c~~ +- ~~atomic_flag_test_and_set.c~~ +- ~~atomic_flag_test_and_set_explicit.c~~ +- ~~atomic_signal_fence.c~~ +- ~~atomic_thread_fence.c~~ + +Miscellaneous functionality that is not used by Rust. + +- ~~apple_versioning.c~~ +- ~~clear_cache.c~~ +- ~~emutls.c~~ +- ~~enable_execute_stack.c~~ +- ~~eprintf.c~~ +- ~~gcc_personality_v0.c~~ +- ~~trampoline_setup.c~~ + +Floating-point implementations of builtins that are only called from soft-float code. It would be better to simply use the generic soft-float versions in this case. + +- ~~i386/floatdidf.S~~ +- ~~i386/floatdisf.S~~ +- ~~i386/floatundidf.S~~ +- ~~i386/floatundisf.S~~ +- ~~x86_64/floatundidf.S~~ +- ~~x86_64/floatundisf.S~~ +- ~~x86_64/floatdidf.c~~ +- ~~x86_64/floatdisf.c~~ + +## License + +The compiler-builtins crate is dual licensed under both the University of +Illinois "BSD-Like" license and the MIT license. As a user of this code you may +choose to use it under either license. As a contributor, you agree to allow +your code to be used under both. + +Full text of the relevant licenses is in LICENSE.TXT. diff --git a/src/rust/vendor/compiler_builtins/build.rs b/src/rust/vendor/compiler_builtins/build.rs new file mode 100644 index 000000000..44946c124 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/build.rs @@ -0,0 +1,662 @@ +use std::{collections::BTreeMap, env, sync::atomic::Ordering}; + +fn main() { + println!("cargo:rerun-if-changed=build.rs"); + + let target = env::var("TARGET").unwrap(); + let cwd = env::current_dir().unwrap(); + + println!("cargo:compiler-rt={}", cwd.join("compiler-rt").display()); + + // Activate libm's unstable features to make full use of Nightly. + println!("cargo:rustc-cfg=feature=\"unstable\""); + + // Emscripten's runtime includes all the builtins + if target.contains("emscripten") { + return; + } + + // OpenBSD provides compiler_rt by default, use it instead of rebuilding it from source + if target.contains("openbsd") { + println!("cargo:rustc-link-search=native=/usr/lib"); + println!("cargo:rustc-link-lib=compiler_rt"); + return; + } + + // Forcibly enable memory intrinsics on wasm & SGX as we don't have a libc to + // provide them. + if (target.contains("wasm") && !target.contains("wasi")) + || (target.contains("sgx") && target.contains("fortanix")) + || target.contains("-none") + || target.contains("nvptx") + || target.contains("uefi") + || target.contains("xous") + { + println!("cargo:rustc-cfg=feature=\"mem\""); + } + + // These targets have hardware unaligned access support. + if target.contains("x86_64") + || target.contains("i686") + || target.contains("aarch64") + || target.contains("bpf") + { + println!("cargo:rustc-cfg=feature=\"mem-unaligned\""); + } + + // NOTE we are going to assume that llvm-target, what determines our codegen option, matches the + // target triple. This is usually correct for our built-in targets but can break in presence of + // custom targets, which can have arbitrary names. + let llvm_target = target.split('-').collect::>(); + + // Build missing intrinsics from compiler-rt C source code. If we're + // mangling names though we assume that we're also in test mode so we don't + // build anything and we rely on the upstream implementation of compiler-rt + // functions + if !cfg!(feature = "mangled-names") && cfg!(feature = "c") { + // Don't use a C compiler for these targets: + // + // * nvptx - everything is bitcode, not compatible with mixed C/Rust + if !target.contains("nvptx") { + #[cfg(feature = "c")] + c::compile(&llvm_target, &target); + } + } + + // To compile intrinsics.rs for thumb targets, where there is no libc + if llvm_target[0].starts_with("thumb") { + println!("cargo:rustc-cfg=thumb") + } + + // compiler-rt `cfg`s away some intrinsics for thumbv6m and thumbv8m.base because + // these targets do not have full Thumb-2 support but only original Thumb-1. + // We have to cfg our code accordingly. + if llvm_target[0] == "thumbv6m" || llvm_target[0] == "thumbv8m.base" { + println!("cargo:rustc-cfg=thumb_1") + } + + // Only emit the ARM Linux atomic emulation on pre-ARMv6 architectures. This + // includes the old androideabi. It is deprecated but it is available as a + // rustc target (arm-linux-androideabi). + if llvm_target[0] == "armv4t" + || llvm_target[0] == "armv5te" + || target == "arm-linux-androideabi" + { + println!("cargo:rustc-cfg=kernel_user_helpers") + } + + if llvm_target[0].starts_with("aarch64") { + generate_aarch64_outlined_atomics(); + } +} + +fn aarch64_symbol(ordering: Ordering) -> &'static str { + match ordering { + Ordering::Relaxed => "relax", + Ordering::Acquire => "acq", + Ordering::Release => "rel", + Ordering::AcqRel => "acq_rel", + _ => panic!("unknown symbol for {:?}", ordering), + } +} + +/// The `concat_idents` macro is extremely annoying and doesn't allow us to define new items. +/// Define them from the build script instead. +/// Note that the majority of the code is still defined in `aarch64.rs` through inline macros. +fn generate_aarch64_outlined_atomics() { + use std::fmt::Write; + // #[macro_export] so that we can use this in tests + let gen_macro = + |name| format!("#[macro_export] macro_rules! foreach_{name} {{ ($macro:path) => {{\n"); + + // Generate different macros for add/clr/eor/set so that we can test them separately. + let sym_names = ["cas", "ldadd", "ldclr", "ldeor", "ldset", "swp"]; + let mut macros = BTreeMap::new(); + for sym in sym_names { + macros.insert(sym, gen_macro(sym)); + } + + // Only CAS supports 16 bytes, and it has a different implementation that uses a different macro. + let mut cas16 = gen_macro("cas16"); + + for ordering in [ + Ordering::Relaxed, + Ordering::Acquire, + Ordering::Release, + Ordering::AcqRel, + ] { + let sym_ordering = aarch64_symbol(ordering); + for size in [1, 2, 4, 8] { + for (sym, macro_) in &mut macros { + let name = format!("__aarch64_{sym}{size}_{sym_ordering}"); + writeln!(macro_, "$macro!( {ordering:?}, {size}, {name} );").unwrap(); + } + } + let name = format!("__aarch64_cas16_{sym_ordering}"); + writeln!(cas16, "$macro!( {ordering:?}, {name} );").unwrap(); + } + + let mut buf = String::new(); + for macro_def in macros.values().chain(std::iter::once(&cas16)) { + buf += macro_def; + buf += "}; }\n"; + } + let dst = std::env::var("OUT_DIR").unwrap() + "/outlined_atomics.rs"; + std::fs::write(dst, buf).unwrap(); +} + +#[cfg(feature = "c")] +mod c { + extern crate cc; + + use std::collections::{BTreeMap, HashSet}; + use std::env; + use std::fs::{self, File}; + use std::io::Write; + use std::path::{Path, PathBuf}; + + struct Sources { + // SYMBOL -> PATH TO SOURCE + map: BTreeMap<&'static str, &'static str>, + } + + impl Sources { + fn new() -> Sources { + Sources { + map: BTreeMap::new(), + } + } + + fn extend(&mut self, sources: &[(&'static str, &'static str)]) { + // NOTE Some intrinsics have both a generic implementation (e.g. + // `floatdidf.c`) and an arch optimized implementation + // (`x86_64/floatdidf.c`). In those cases, we keep the arch optimized + // implementation and discard the generic implementation. If we don't + // and keep both implementations, the linker will yell at us about + // duplicate symbols! + for (symbol, src) in sources { + if src.contains("/") { + // Arch-optimized implementation (preferred) + self.map.insert(symbol, src); + } else { + // Generic implementation + if !self.map.contains_key(symbol) { + self.map.insert(symbol, src); + } + } + } + } + + fn remove(&mut self, symbols: &[&str]) { + for symbol in symbols { + self.map.remove(*symbol).unwrap(); + } + } + } + + /// Compile intrinsics from the compiler-rt C source code + pub fn compile(llvm_target: &[&str], target: &String) { + let target_arch = env::var("CARGO_CFG_TARGET_ARCH").unwrap(); + let target_env = env::var("CARGO_CFG_TARGET_ENV").unwrap(); + let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap(); + let target_vendor = env::var("CARGO_CFG_TARGET_VENDOR").unwrap(); + let mut consider_float_intrinsics = true; + let cfg = &mut cc::Build::new(); + + // AArch64 GCCs exit with an error condition when they encounter any kind of floating point + // code if the `nofp` and/or `nosimd` compiler flags have been set. + // + // Therefore, evaluate if those flags are present and set a boolean that causes any + // compiler-rt intrinsics that contain floating point source to be excluded for this target. + if target_arch == "aarch64" { + let cflags_key = String::from("CFLAGS_") + &(target.to_owned().replace("-", "_")); + if let Ok(cflags_value) = env::var(cflags_key) { + if cflags_value.contains("+nofp") || cflags_value.contains("+nosimd") { + consider_float_intrinsics = false; + } + } + } + + cfg.warnings(false); + + if target_env == "msvc" { + // Don't pull in extra libraries on MSVC + cfg.flag("/Zl"); + + // Emulate C99 and C++11's __func__ for MSVC prior to 2013 CTP + cfg.define("__func__", Some("__FUNCTION__")); + } else { + // Turn off various features of gcc and such, mostly copying + // compiler-rt's build system already + cfg.flag("-fno-builtin"); + cfg.flag("-fvisibility=hidden"); + cfg.flag("-ffreestanding"); + // Avoid the following warning appearing once **per file**: + // clang: warning: optimization flag '-fomit-frame-pointer' is not supported for target 'armv7' [-Wignored-optimization-argument] + // + // Note that compiler-rt's build system also checks + // + // `check_cxx_compiler_flag(-fomit-frame-pointer COMPILER_RT_HAS_FOMIT_FRAME_POINTER_FLAG)` + // + // in https://github.com/rust-lang/compiler-rt/blob/c8fbcb3/cmake/config-ix.cmake#L19. + cfg.flag_if_supported("-fomit-frame-pointer"); + cfg.define("VISIBILITY_HIDDEN", None); + } + + // int_util.c tries to include stdlib.h if `_WIN32` is defined, + // which it is when compiling UEFI targets with clang. This is + // at odds with compiling with `-ffreestanding`, as the header + // may be incompatible or not present. Create a minimal stub + // header to use instead. + if target_os == "uefi" { + let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap()); + let include_dir = out_dir.join("include"); + if !include_dir.exists() { + fs::create_dir(&include_dir).unwrap(); + } + fs::write(include_dir.join("stdlib.h"), "#include ").unwrap(); + cfg.flag(&format!("-I{}", include_dir.to_str().unwrap())); + } + + let mut sources = Sources::new(); + sources.extend(&[ + ("__absvdi2", "absvdi2.c"), + ("__absvsi2", "absvsi2.c"), + ("__addvdi3", "addvdi3.c"), + ("__addvsi3", "addvsi3.c"), + ("__clzdi2", "clzdi2.c"), + ("__clzsi2", "clzsi2.c"), + ("__cmpdi2", "cmpdi2.c"), + ("__ctzdi2", "ctzdi2.c"), + ("__ctzsi2", "ctzsi2.c"), + ("__int_util", "int_util.c"), + ("__mulvdi3", "mulvdi3.c"), + ("__mulvsi3", "mulvsi3.c"), + ("__negdi2", "negdi2.c"), + ("__negvdi2", "negvdi2.c"), + ("__negvsi2", "negvsi2.c"), + ("__paritydi2", "paritydi2.c"), + ("__paritysi2", "paritysi2.c"), + ("__popcountdi2", "popcountdi2.c"), + ("__popcountsi2", "popcountsi2.c"), + ("__subvdi3", "subvdi3.c"), + ("__subvsi3", "subvsi3.c"), + ("__ucmpdi2", "ucmpdi2.c"), + ]); + + if consider_float_intrinsics { + sources.extend(&[ + ("__divdc3", "divdc3.c"), + ("__divsc3", "divsc3.c"), + ("__extendhfsf2", "extendhfsf2.c"), + ("__muldc3", "muldc3.c"), + ("__mulsc3", "mulsc3.c"), + ("__negdf2", "negdf2.c"), + ("__negsf2", "negsf2.c"), + ("__truncdfhf2", "truncdfhf2.c"), + ("__truncsfhf2", "truncsfhf2.c"), + ]); + } + + // When compiling in rustbuild (the rust-lang/rust repo) this library + // also needs to satisfy intrinsics that jemalloc or C in general may + // need, so include a few more that aren't typically needed by + // LLVM/Rust. + if cfg!(feature = "rustbuild") { + sources.extend(&[("__ffsdi2", "ffsdi2.c")]); + } + + // On iOS and 32-bit OSX these are all just empty intrinsics, no need to + // include them. + if target_os != "ios" + && target_os != "watchos" + && target_os != "tvos" + && (target_vendor != "apple" || target_arch != "x86") + { + sources.extend(&[ + ("__absvti2", "absvti2.c"), + ("__addvti3", "addvti3.c"), + ("__clzti2", "clzti2.c"), + ("__cmpti2", "cmpti2.c"), + ("__ctzti2", "ctzti2.c"), + ("__ffsti2", "ffsti2.c"), + ("__mulvti3", "mulvti3.c"), + ("__negti2", "negti2.c"), + ("__parityti2", "parityti2.c"), + ("__popcountti2", "popcountti2.c"), + ("__subvti3", "subvti3.c"), + ("__ucmpti2", "ucmpti2.c"), + ]); + + if consider_float_intrinsics { + sources.extend(&[("__negvti2", "negvti2.c")]); + } + } + + if target_vendor == "apple" { + sources.extend(&[ + ("atomic_flag_clear", "atomic_flag_clear.c"), + ("atomic_flag_clear_explicit", "atomic_flag_clear_explicit.c"), + ("atomic_flag_test_and_set", "atomic_flag_test_and_set.c"), + ( + "atomic_flag_test_and_set_explicit", + "atomic_flag_test_and_set_explicit.c", + ), + ("atomic_signal_fence", "atomic_signal_fence.c"), + ("atomic_thread_fence", "atomic_thread_fence.c"), + ]); + } + + if target_env != "msvc" { + if target_arch == "x86" { + sources.extend(&[ + ("__ashldi3", "i386/ashldi3.S"), + ("__ashrdi3", "i386/ashrdi3.S"), + ("__divdi3", "i386/divdi3.S"), + ("__lshrdi3", "i386/lshrdi3.S"), + ("__moddi3", "i386/moddi3.S"), + ("__muldi3", "i386/muldi3.S"), + ("__udivdi3", "i386/udivdi3.S"), + ("__umoddi3", "i386/umoddi3.S"), + ]); + } + } + + if target_arch == "arm" + && target_os != "ios" + && target_os != "watchos" + && target_os != "tvos" + && target_env != "msvc" + { + sources.extend(&[ + ("__aeabi_div0", "arm/aeabi_div0.c"), + ("__aeabi_drsub", "arm/aeabi_drsub.c"), + ("__aeabi_frsub", "arm/aeabi_frsub.c"), + ("__bswapdi2", "arm/bswapdi2.S"), + ("__bswapsi2", "arm/bswapsi2.S"), + ("__clzdi2", "arm/clzdi2.S"), + ("__clzsi2", "arm/clzsi2.S"), + ("__divmodsi4", "arm/divmodsi4.S"), + ("__divsi3", "arm/divsi3.S"), + ("__modsi3", "arm/modsi3.S"), + ("__switch16", "arm/switch16.S"), + ("__switch32", "arm/switch32.S"), + ("__switch8", "arm/switch8.S"), + ("__switchu8", "arm/switchu8.S"), + ("__sync_synchronize", "arm/sync_synchronize.S"), + ("__udivmodsi4", "arm/udivmodsi4.S"), + ("__udivsi3", "arm/udivsi3.S"), + ("__umodsi3", "arm/umodsi3.S"), + ]); + + if target_os == "freebsd" { + sources.extend(&[("__clear_cache", "clear_cache.c")]); + } + + // First of all aeabi_cdcmp and aeabi_cfcmp are never called by LLVM. + // Second are little-endian only, so build fail on big-endian targets. + // Temporally workaround: exclude these files for big-endian targets. + if !llvm_target[0].starts_with("thumbeb") && !llvm_target[0].starts_with("armeb") { + sources.extend(&[ + ("__aeabi_cdcmp", "arm/aeabi_cdcmp.S"), + ("__aeabi_cdcmpeq_check_nan", "arm/aeabi_cdcmpeq_check_nan.c"), + ("__aeabi_cfcmp", "arm/aeabi_cfcmp.S"), + ("__aeabi_cfcmpeq_check_nan", "arm/aeabi_cfcmpeq_check_nan.c"), + ]); + } + } + + if llvm_target[0] == "armv7" { + sources.extend(&[ + ("__sync_fetch_and_add_4", "arm/sync_fetch_and_add_4.S"), + ("__sync_fetch_and_add_8", "arm/sync_fetch_and_add_8.S"), + ("__sync_fetch_and_and_4", "arm/sync_fetch_and_and_4.S"), + ("__sync_fetch_and_and_8", "arm/sync_fetch_and_and_8.S"), + ("__sync_fetch_and_max_4", "arm/sync_fetch_and_max_4.S"), + ("__sync_fetch_and_max_8", "arm/sync_fetch_and_max_8.S"), + ("__sync_fetch_and_min_4", "arm/sync_fetch_and_min_4.S"), + ("__sync_fetch_and_min_8", "arm/sync_fetch_and_min_8.S"), + ("__sync_fetch_and_nand_4", "arm/sync_fetch_and_nand_4.S"), + ("__sync_fetch_and_nand_8", "arm/sync_fetch_and_nand_8.S"), + ("__sync_fetch_and_or_4", "arm/sync_fetch_and_or_4.S"), + ("__sync_fetch_and_or_8", "arm/sync_fetch_and_or_8.S"), + ("__sync_fetch_and_sub_4", "arm/sync_fetch_and_sub_4.S"), + ("__sync_fetch_and_sub_8", "arm/sync_fetch_and_sub_8.S"), + ("__sync_fetch_and_umax_4", "arm/sync_fetch_and_umax_4.S"), + ("__sync_fetch_and_umax_8", "arm/sync_fetch_and_umax_8.S"), + ("__sync_fetch_and_umin_4", "arm/sync_fetch_and_umin_4.S"), + ("__sync_fetch_and_umin_8", "arm/sync_fetch_and_umin_8.S"), + ("__sync_fetch_and_xor_4", "arm/sync_fetch_and_xor_4.S"), + ("__sync_fetch_and_xor_8", "arm/sync_fetch_and_xor_8.S"), + ]); + } + + if llvm_target.last().unwrap().ends_with("eabihf") { + if !llvm_target[0].starts_with("thumbv7em") + && !llvm_target[0].starts_with("thumbv8m.main") + { + // The FPU option chosen for these architectures in cc-rs, ie: + // -mfpu=fpv4-sp-d16 for thumbv7em + // -mfpu=fpv5-sp-d16 for thumbv8m.main + // do not support double precision floating points conversions so the files + // that include such instructions are not included for these targets. + sources.extend(&[ + ("__fixdfsivfp", "arm/fixdfsivfp.S"), + ("__fixunsdfsivfp", "arm/fixunsdfsivfp.S"), + ("__floatsidfvfp", "arm/floatsidfvfp.S"), + ("__floatunssidfvfp", "arm/floatunssidfvfp.S"), + ]); + } + + sources.extend(&[ + ("__fixsfsivfp", "arm/fixsfsivfp.S"), + ("__fixunssfsivfp", "arm/fixunssfsivfp.S"), + ("__floatsisfvfp", "arm/floatsisfvfp.S"), + ("__floatunssisfvfp", "arm/floatunssisfvfp.S"), + ("__floatunssisfvfp", "arm/floatunssisfvfp.S"), + ("__restore_vfp_d8_d15_regs", "arm/restore_vfp_d8_d15_regs.S"), + ("__save_vfp_d8_d15_regs", "arm/save_vfp_d8_d15_regs.S"), + ("__negdf2vfp", "arm/negdf2vfp.S"), + ("__negsf2vfp", "arm/negsf2vfp.S"), + ]); + } + + if (target_arch == "aarch64" || target_arch == "arm64ec") && consider_float_intrinsics { + sources.extend(&[ + ("__comparetf2", "comparetf2.c"), + ("__extenddftf2", "extenddftf2.c"), + ("__extendsftf2", "extendsftf2.c"), + ("__fixtfdi", "fixtfdi.c"), + ("__fixtfsi", "fixtfsi.c"), + ("__fixtfti", "fixtfti.c"), + ("__fixunstfdi", "fixunstfdi.c"), + ("__fixunstfsi", "fixunstfsi.c"), + ("__fixunstfti", "fixunstfti.c"), + ("__floatditf", "floatditf.c"), + ("__floatsitf", "floatsitf.c"), + ("__floatunditf", "floatunditf.c"), + ("__floatunsitf", "floatunsitf.c"), + ("__trunctfdf2", "trunctfdf2.c"), + ("__trunctfsf2", "trunctfsf2.c"), + ("__addtf3", "addtf3.c"), + ("__multf3", "multf3.c"), + ("__subtf3", "subtf3.c"), + ("__divtf3", "divtf3.c"), + ("__powitf2", "powitf2.c"), + ("__fe_getround", "fp_mode.c"), + ("__fe_raise_inexact", "fp_mode.c"), + ]); + + if target_os != "windows" { + sources.extend(&[("__multc3", "multc3.c")]); + } + } + + if target_arch == "mips" || target_arch == "riscv32" || target_arch == "riscv64" { + sources.extend(&[("__bswapsi2", "bswapsi2.c")]); + } + + if target_arch == "mips64" { + sources.extend(&[ + ("__extenddftf2", "extenddftf2.c"), + ("__netf2", "comparetf2.c"), + ("__addtf3", "addtf3.c"), + ("__multf3", "multf3.c"), + ("__subtf3", "subtf3.c"), + ("__fixtfsi", "fixtfsi.c"), + ("__floatsitf", "floatsitf.c"), + ("__fixunstfsi", "fixunstfsi.c"), + ("__floatunsitf", "floatunsitf.c"), + ("__fe_getround", "fp_mode.c"), + ("__divtf3", "divtf3.c"), + ("__trunctfdf2", "trunctfdf2.c"), + ("__trunctfsf2", "trunctfsf2.c"), + ]); + } + + if target_arch == "loongarch64" { + sources.extend(&[ + ("__extenddftf2", "extenddftf2.c"), + ("__netf2", "comparetf2.c"), + ("__addtf3", "addtf3.c"), + ("__multf3", "multf3.c"), + ("__subtf3", "subtf3.c"), + ("__fixtfsi", "fixtfsi.c"), + ("__floatsitf", "floatsitf.c"), + ("__fixunstfsi", "fixunstfsi.c"), + ("__floatunsitf", "floatunsitf.c"), + ("__fe_getround", "fp_mode.c"), + ("__divtf3", "divtf3.c"), + ("__trunctfdf2", "trunctfdf2.c"), + ("__trunctfsf2", "trunctfsf2.c"), + ]); + } + + // Remove the assembly implementations that won't compile for the target + if llvm_target[0] == "thumbv6m" || llvm_target[0] == "thumbv8m.base" || target_os == "uefi" + { + let mut to_remove = Vec::new(); + for (k, v) in sources.map.iter() { + if v.ends_with(".S") { + to_remove.push(*k); + } + } + sources.remove(&to_remove); + + // But use some generic implementations where possible + sources.extend(&[("__clzdi2", "clzdi2.c"), ("__clzsi2", "clzsi2.c")]) + } + + if llvm_target[0] == "thumbv7m" || llvm_target[0] == "thumbv7em" { + sources.remove(&["__aeabi_cdcmp", "__aeabi_cfcmp"]); + } + + // Android uses emulated TLS so we need a runtime support function. + if target_os == "android" { + sources.extend(&[("__emutls_get_address", "emutls.c")]); + + // Work around a bug in the NDK headers (fixed in + // https://r.android.com/2038949 which will be released in a future + // NDK version) by providing a definition of LONG_BIT. + cfg.define("LONG_BIT", "(8 * sizeof(long))"); + } + + // OpenHarmony also uses emulated TLS. + if target_env == "ohos" { + sources.extend(&[("__emutls_get_address", "emutls.c")]); + } + + // When compiling the C code we require the user to tell us where the + // source code is, and this is largely done so when we're compiling as + // part of rust-lang/rust we can use the same llvm-project repository as + // rust-lang/rust. + let root = match env::var_os("RUST_COMPILER_RT_ROOT") { + Some(s) => PathBuf::from(s), + None => panic!("RUST_COMPILER_RT_ROOT is not set"), + }; + if !root.exists() { + panic!("RUST_COMPILER_RT_ROOT={} does not exist", root.display()); + } + + // Support deterministic builds by remapping the __FILE__ prefix if the + // compiler supports it. This fixes the nondeterminism caused by the + // use of that macro in lib/builtins/int_util.h in compiler-rt. + cfg.flag_if_supported(&format!("-ffile-prefix-map={}=.", root.display())); + + // Include out-of-line atomics for aarch64, which are all generated by supplying different + // sets of flags to the same source file. + // Note: Out-of-line aarch64 atomics are not supported by the msvc toolchain (#430). + let src_dir = root.join("lib/builtins"); + if target_arch == "aarch64" && target_env != "msvc" { + // See below for why we're building these as separate libraries. + build_aarch64_out_of_line_atomics_libraries(&src_dir, cfg); + + // Some run-time CPU feature detection is necessary, as well. + let cpu_model_src = if src_dir.join("cpu_model.c").exists() { + "cpu_model.c" + } else { + "cpu_model/aarch64.c" + }; + sources.extend(&[("__aarch64_have_lse_atomics", cpu_model_src)]); + } + + let mut added_sources = HashSet::new(); + for (sym, src) in sources.map.iter() { + let src = src_dir.join(src); + if added_sources.insert(src.clone()) { + cfg.file(&src); + println!("cargo:rerun-if-changed={}", src.display()); + } + println!("cargo:rustc-cfg={}=\"optimized-c\"", sym); + } + + cfg.compile("libcompiler-rt.a"); + } + + fn build_aarch64_out_of_line_atomics_libraries(builtins_dir: &Path, cfg: &mut cc::Build) { + let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap()); + let outlined_atomics_file = builtins_dir.join("aarch64/lse.S"); + println!("cargo:rerun-if-changed={}", outlined_atomics_file.display()); + + cfg.include(&builtins_dir); + + for instruction_type in &["cas", "swp", "ldadd", "ldclr", "ldeor", "ldset"] { + for size in &[1, 2, 4, 8, 16] { + if *size == 16 && *instruction_type != "cas" { + continue; + } + + for (model_number, model_name) in + &[(1, "relax"), (2, "acq"), (3, "rel"), (4, "acq_rel")] + { + // The original compiler-rt build system compiles the same + // source file multiple times with different compiler + // options. Here we do something slightly different: we + // create multiple .S files with the proper #defines and + // then include the original file. + // + // This is needed because the cc crate doesn't allow us to + // override the name of object files and libtool requires + // all objects in an archive to have unique names. + let path = + out_dir.join(format!("lse_{}{}_{}.S", instruction_type, size, model_name)); + let mut file = File::create(&path).unwrap(); + writeln!(file, "#define L_{}", instruction_type).unwrap(); + writeln!(file, "#define SIZE {}", size).unwrap(); + writeln!(file, "#define MODEL {}", model_number).unwrap(); + writeln!( + file, + "#include \"{}\"", + outlined_atomics_file.canonicalize().unwrap().display() + ) + .unwrap(); + drop(file); + cfg.file(path); + + let sym = format!("__aarch64_{}{}_{}", instruction_type, size, model_name); + println!("cargo:rustc-cfg={}=\"optimized-c\"", sym); + } + } + } + } +} diff --git a/src/rust/vendor/compiler_builtins/examples/intrinsics.rs b/src/rust/vendor/compiler_builtins/examples/intrinsics.rs new file mode 100644 index 000000000..54b703dfb --- /dev/null +++ b/src/rust/vendor/compiler_builtins/examples/intrinsics.rs @@ -0,0 +1,400 @@ +// By compiling this file we check that all the intrinsics we care about continue to be provided by +// the `compiler_builtins` crate regardless of the changes we make to it. If we, by mistake, stop +// compiling a C implementation and forget to implement that intrinsic in Rust, this file will fail +// to link due to the missing intrinsic (symbol). + +#![allow(unused_features)] +#![allow(stable_features)] // bench_black_box feature is stable, leaving for backcompat +#![allow(internal_features)] +#![cfg_attr(thumb, no_main)] +#![deny(dead_code)] +#![feature(bench_black_box)] +#![feature(lang_items)] +#![feature(start)] +#![feature(allocator_api)] +#![no_std] + +extern crate panic_handler; + +#[cfg(all(not(thumb), not(windows), not(target_arch = "wasm32")))] +#[link(name = "c")] +extern "C" {} + +// Every function in this module maps will be lowered to an intrinsic by LLVM, if the platform +// doesn't have native support for the operation used in the function. ARM has a naming convention +// convention for its intrinsics that's different from other architectures; that's why some function +// have an additional comment: the function name is the ARM name for the intrinsic and the comment +// in the non-ARM name for the intrinsic. +mod intrinsics { + // truncdfsf2 + pub fn aeabi_d2f(x: f64) -> f32 { + x as f32 + } + + // fixdfsi + pub fn aeabi_d2i(x: f64) -> i32 { + x as i32 + } + + // fixdfdi + pub fn aeabi_d2l(x: f64) -> i64 { + x as i64 + } + + // fixunsdfsi + pub fn aeabi_d2uiz(x: f64) -> u32 { + x as u32 + } + + // fixunsdfdi + pub fn aeabi_d2ulz(x: f64) -> u64 { + x as u64 + } + + // adddf3 + pub fn aeabi_dadd(a: f64, b: f64) -> f64 { + a + b + } + + // eqdf2 + pub fn aeabi_dcmpeq(a: f64, b: f64) -> bool { + a == b + } + + // gtdf2 + pub fn aeabi_dcmpgt(a: f64, b: f64) -> bool { + a > b + } + + // ltdf2 + pub fn aeabi_dcmplt(a: f64, b: f64) -> bool { + a < b + } + + // divdf3 + pub fn aeabi_ddiv(a: f64, b: f64) -> f64 { + a / b + } + + // muldf3 + pub fn aeabi_dmul(a: f64, b: f64) -> f64 { + a * b + } + + // subdf3 + pub fn aeabi_dsub(a: f64, b: f64) -> f64 { + a - b + } + + // extendsfdf2 + pub fn aeabi_f2d(x: f32) -> f64 { + x as f64 + } + + // fixsfsi + pub fn aeabi_f2iz(x: f32) -> i32 { + x as i32 + } + + // fixsfdi + pub fn aeabi_f2lz(x: f32) -> i64 { + x as i64 + } + + // fixunssfsi + pub fn aeabi_f2uiz(x: f32) -> u32 { + x as u32 + } + + // fixunssfdi + pub fn aeabi_f2ulz(x: f32) -> u64 { + x as u64 + } + + // addsf3 + pub fn aeabi_fadd(a: f32, b: f32) -> f32 { + a + b + } + + // eqsf2 + pub fn aeabi_fcmpeq(a: f32, b: f32) -> bool { + a == b + } + + // gtsf2 + pub fn aeabi_fcmpgt(a: f32, b: f32) -> bool { + a > b + } + + // ltsf2 + pub fn aeabi_fcmplt(a: f32, b: f32) -> bool { + a < b + } + + // divsf3 + pub fn aeabi_fdiv(a: f32, b: f32) -> f32 { + a / b + } + + // mulsf3 + pub fn aeabi_fmul(a: f32, b: f32) -> f32 { + a * b + } + + // subsf3 + pub fn aeabi_fsub(a: f32, b: f32) -> f32 { + a - b + } + + // floatsidf + pub fn aeabi_i2d(x: i32) -> f64 { + x as f64 + } + + // floatsisf + pub fn aeabi_i2f(x: i32) -> f32 { + x as f32 + } + + pub fn aeabi_idiv(a: i32, b: i32) -> i32 { + a.wrapping_div(b) + } + + pub fn aeabi_idivmod(a: i32, b: i32) -> i32 { + a % b + } + + // floatdidf + pub fn aeabi_l2d(x: i64) -> f64 { + x as f64 + } + + // floatdisf + pub fn aeabi_l2f(x: i64) -> f32 { + x as f32 + } + + // divdi3 + pub fn aeabi_ldivmod(a: i64, b: i64) -> i64 { + a / b + } + + // muldi3 + pub fn aeabi_lmul(a: i64, b: i64) -> i64 { + a.wrapping_mul(b) + } + + // floatunsidf + pub fn aeabi_ui2d(x: u32) -> f64 { + x as f64 + } + + // floatunsisf + pub fn aeabi_ui2f(x: u32) -> f32 { + x as f32 + } + + pub fn aeabi_uidiv(a: u32, b: u32) -> u32 { + a / b + } + + pub fn aeabi_uidivmod(a: u32, b: u32) -> u32 { + a % b + } + + // floatundidf + pub fn aeabi_ul2d(x: u64) -> f64 { + x as f64 + } + + // floatundisf + pub fn aeabi_ul2f(x: u64) -> f32 { + x as f32 + } + + // udivdi3 + pub fn aeabi_uldivmod(a: u64, b: u64) -> u64 { + a * b + } + + pub fn moddi3(a: i64, b: i64) -> i64 { + a % b + } + + pub fn mulodi4(a: i64, b: i64) -> i64 { + a * b + } + + pub fn umoddi3(a: u64, b: u64) -> u64 { + a % b + } + + pub fn muloti4(a: u128, b: u128) -> Option { + a.checked_mul(b) + } + + pub fn multi3(a: u128, b: u128) -> u128 { + a.wrapping_mul(b) + } + + pub fn ashlti3(a: u128, b: usize) -> u128 { + a >> b + } + + pub fn ashrti3(a: u128, b: usize) -> u128 { + a << b + } + + pub fn lshrti3(a: i128, b: usize) -> i128 { + a >> b + } + + pub fn udivti3(a: u128, b: u128) -> u128 { + a / b + } + + pub fn umodti3(a: u128, b: u128) -> u128 { + a % b + } + + pub fn divti3(a: i128, b: i128) -> i128 { + a / b + } + + pub fn modti3(a: i128, b: i128) -> i128 { + a % b + } + + pub fn udivsi3(a: u32, b: u32) -> u32 { + a / b + } +} + +fn run() { + use core::hint::black_box as bb; + use intrinsics::*; + + bb(aeabi_d2f(bb(2.))); + bb(aeabi_d2i(bb(2.))); + bb(aeabi_d2l(bb(2.))); + bb(aeabi_d2uiz(bb(2.))); + bb(aeabi_d2ulz(bb(2.))); + bb(aeabi_dadd(bb(2.), bb(3.))); + bb(aeabi_dcmpeq(bb(2.), bb(3.))); + bb(aeabi_dcmpgt(bb(2.), bb(3.))); + bb(aeabi_dcmplt(bb(2.), bb(3.))); + bb(aeabi_ddiv(bb(2.), bb(3.))); + bb(aeabi_dmul(bb(2.), bb(3.))); + bb(aeabi_dsub(bb(2.), bb(3.))); + bb(aeabi_f2d(bb(2.))); + bb(aeabi_f2iz(bb(2.))); + bb(aeabi_f2lz(bb(2.))); + bb(aeabi_f2uiz(bb(2.))); + bb(aeabi_f2ulz(bb(2.))); + bb(aeabi_fadd(bb(2.), bb(3.))); + bb(aeabi_fcmpeq(bb(2.), bb(3.))); + bb(aeabi_fcmpgt(bb(2.), bb(3.))); + bb(aeabi_fcmplt(bb(2.), bb(3.))); + bb(aeabi_fdiv(bb(2.), bb(3.))); + bb(aeabi_fmul(bb(2.), bb(3.))); + bb(aeabi_fsub(bb(2.), bb(3.))); + bb(aeabi_i2d(bb(2))); + bb(aeabi_i2f(bb(2))); + bb(aeabi_idiv(bb(2), bb(3))); + bb(aeabi_idivmod(bb(2), bb(3))); + bb(aeabi_l2d(bb(2))); + bb(aeabi_l2f(bb(2))); + bb(aeabi_ldivmod(bb(2), bb(3))); + bb(aeabi_lmul(bb(2), bb(3))); + bb(aeabi_ui2d(bb(2))); + bb(aeabi_ui2f(bb(2))); + bb(aeabi_uidiv(bb(2), bb(3))); + bb(aeabi_uidivmod(bb(2), bb(3))); + bb(aeabi_ul2d(bb(2))); + bb(aeabi_ul2f(bb(2))); + bb(aeabi_uldivmod(bb(2), bb(3))); + bb(moddi3(bb(2), bb(3))); + bb(mulodi4(bb(2), bb(3))); + bb(umoddi3(bb(2), bb(3))); + bb(muloti4(bb(2), bb(2))); + bb(multi3(bb(2), bb(2))); + bb(ashlti3(bb(2), bb(2))); + bb(ashrti3(bb(2), bb(2))); + bb(lshrti3(bb(2), bb(2))); + bb(udivti3(bb(2), bb(2))); + bb(umodti3(bb(2), bb(2))); + bb(divti3(bb(2), bb(2))); + bb(modti3(bb(2), bb(2))); + bb(udivsi3(bb(2), bb(2))); + + something_with_a_dtor(&|| assert_eq!(bb(1), 1)); + + extern "C" { + fn rust_begin_unwind(x: usize); + } + // if bb(false) { + unsafe { + rust_begin_unwind(0); + } + // } +} + +fn something_with_a_dtor(f: &dyn Fn()) { + struct A<'a>(&'a (dyn Fn() + 'a)); + + impl<'a> Drop for A<'a> { + fn drop(&mut self) { + (self.0)(); + } + } + let _a = A(f); + f(); +} + +#[cfg(not(thumb))] +#[start] +fn main(_: isize, _: *const *const u8) -> isize { + run(); + 0 +} + +#[cfg(thumb)] +#[no_mangle] +pub fn _start() -> ! { + run(); + loop {} +} + +#[cfg(windows)] +#[link(name = "kernel32")] +#[link(name = "msvcrt")] +extern "C" {} + +// ARM targets need these symbols +#[no_mangle] +pub fn __aeabi_unwind_cpp_pr0() {} + +#[no_mangle] +pub fn __aeabi_unwind_cpp_pr1() {} + +#[cfg(not(windows))] +#[allow(non_snake_case)] +#[no_mangle] +pub fn _Unwind_Resume() {} + +#[cfg(not(windows))] +#[lang = "eh_personality"] +#[no_mangle] +pub extern "C" fn eh_personality() {} + +#[cfg(all(windows, target_env = "gnu"))] +mod mingw_unwinding { + #[no_mangle] + pub fn rust_eh_personality() {} + #[no_mangle] + pub fn rust_eh_unwind_resume() {} + #[no_mangle] + pub fn rust_eh_register_frames() {} + #[no_mangle] + pub fn rust_eh_unregister_frames() {} +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/acos.rs b/src/rust/vendor/compiler_builtins/libm/src/math/acos.rs new file mode 100644 index 000000000..23b13251e --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/acos.rs @@ -0,0 +1,112 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_acos.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* acos(x) + * Method : + * acos(x) = pi/2 - asin(x) + * acos(-x) = pi/2 + asin(x) + * For |x|<=0.5 + * acos(x) = pi/2 - (x + x*x^2*R(x^2)) (see asin.c) + * For x>0.5 + * acos(x) = pi/2 - (pi/2 - 2asin(sqrt((1-x)/2))) + * = 2asin(sqrt((1-x)/2)) + * = 2s + 2s*z*R(z) ...z=(1-x)/2, s=sqrt(z) + * = 2f + (2c + 2s*z*R(z)) + * where f=hi part of s, and c = (z-f*f)/(s+f) is the correction term + * for f so that f+c ~ sqrt(z). + * For x<-0.5 + * acos(x) = pi - 2asin(sqrt((1-|x|)/2)) + * = pi - 0.5*(s+s*z*R(z)), where z=(1-|x|)/2,s=sqrt(z) + * + * Special cases: + * if x is NaN, return x itself; + * if |x|>1, return NaN with invalid signal. + * + * Function needed: sqrt + */ + +use super::sqrt; + +const PIO2_HI: f64 = 1.57079632679489655800e+00; /* 0x3FF921FB, 0x54442D18 */ +const PIO2_LO: f64 = 6.12323399573676603587e-17; /* 0x3C91A626, 0x33145C07 */ +const PS0: f64 = 1.66666666666666657415e-01; /* 0x3FC55555, 0x55555555 */ +const PS1: f64 = -3.25565818622400915405e-01; /* 0xBFD4D612, 0x03EB6F7D */ +const PS2: f64 = 2.01212532134862925881e-01; /* 0x3FC9C155, 0x0E884455 */ +const PS3: f64 = -4.00555345006794114027e-02; /* 0xBFA48228, 0xB5688F3B */ +const PS4: f64 = 7.91534994289814532176e-04; /* 0x3F49EFE0, 0x7501B288 */ +const PS5: f64 = 3.47933107596021167570e-05; /* 0x3F023DE1, 0x0DFDF709 */ +const QS1: f64 = -2.40339491173441421878e+00; /* 0xC0033A27, 0x1C8A2D4B */ +const QS2: f64 = 2.02094576023350569471e+00; /* 0x40002AE5, 0x9C598AC8 */ +const QS3: f64 = -6.88283971605453293030e-01; /* 0xBFE6066C, 0x1B8D0159 */ +const QS4: f64 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ + +fn r(z: f64) -> f64 { + let p: f64 = z * (PS0 + z * (PS1 + z * (PS2 + z * (PS3 + z * (PS4 + z * PS5))))); + let q: f64 = 1.0 + z * (QS1 + z * (QS2 + z * (QS3 + z * QS4))); + p / q +} + +/// Arccosine (f64) +/// +/// Computes the inverse cosine (arc cosine) of the input value. +/// Arguments must be in the range -1 to 1. +/// Returns values in radians, in the range of 0 to pi. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn acos(x: f64) -> f64 { + let x1p_120f = f64::from_bits(0x3870000000000000); // 0x1p-120 === 2 ^ -120 + let z: f64; + let w: f64; + let s: f64; + let c: f64; + let df: f64; + let hx: u32; + let ix: u32; + + hx = (x.to_bits() >> 32) as u32; + ix = hx & 0x7fffffff; + /* |x| >= 1 or nan */ + if ix >= 0x3ff00000 { + let lx: u32 = x.to_bits() as u32; + + if ((ix - 0x3ff00000) | lx) == 0 { + /* acos(1)=0, acos(-1)=pi */ + if (hx >> 31) != 0 { + return 2. * PIO2_HI + x1p_120f; + } + return 0.; + } + return 0. / (x - x); + } + /* |x| < 0.5 */ + if ix < 0x3fe00000 { + if ix <= 0x3c600000 { + /* |x| < 2**-57 */ + return PIO2_HI + x1p_120f; + } + return PIO2_HI - (x - (PIO2_LO - x * r(x * x))); + } + /* x < -0.5 */ + if (hx >> 31) != 0 { + z = (1.0 + x) * 0.5; + s = sqrt(z); + w = r(z) * s - PIO2_LO; + return 2. * (PIO2_HI - (s + w)); + } + /* x > 0.5 */ + z = (1.0 - x) * 0.5; + s = sqrt(z); + // Set the low 4 bytes to zero + df = f64::from_bits(s.to_bits() & 0xff_ff_ff_ff_00_00_00_00); + + c = (z - df * df) / (s + df); + w = r(z) * s + c; + 2. * (df + w) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/acosf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/acosf.rs new file mode 100644 index 000000000..1a60479e3 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/acosf.rs @@ -0,0 +1,79 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_acosf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::sqrtf::sqrtf; + +const PIO2_HI: f32 = 1.5707962513e+00; /* 0x3fc90fda */ +const PIO2_LO: f32 = 7.5497894159e-08; /* 0x33a22168 */ +const P_S0: f32 = 1.6666586697e-01; +const P_S1: f32 = -4.2743422091e-02; +const P_S2: f32 = -8.6563630030e-03; +const Q_S1: f32 = -7.0662963390e-01; + +fn r(z: f32) -> f32 { + let p = z * (P_S0 + z * (P_S1 + z * P_S2)); + let q = 1. + z * Q_S1; + p / q +} + +/// Arccosine (f32) +/// +/// Computes the inverse cosine (arc cosine) of the input value. +/// Arguments must be in the range -1 to 1. +/// Returns values in radians, in the range of 0 to pi. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn acosf(x: f32) -> f32 { + let x1p_120 = f32::from_bits(0x03800000); // 0x1p-120 === 2 ^ (-120) + + let z: f32; + let w: f32; + let s: f32; + + let mut hx = x.to_bits(); + let ix = hx & 0x7fffffff; + /* |x| >= 1 or nan */ + if ix >= 0x3f800000 { + if ix == 0x3f800000 { + if (hx >> 31) != 0 { + return 2. * PIO2_HI + x1p_120; + } + return 0.; + } + return 0. / (x - x); + } + /* |x| < 0.5 */ + if ix < 0x3f000000 { + if ix <= 0x32800000 { + /* |x| < 2**-26 */ + return PIO2_HI + x1p_120; + } + return PIO2_HI - (x - (PIO2_LO - x * r(x * x))); + } + /* x < -0.5 */ + if (hx >> 31) != 0 { + z = (1. + x) * 0.5; + s = sqrtf(z); + w = r(z) * s - PIO2_LO; + return 2. * (PIO2_HI - (s + w)); + } + /* x > 0.5 */ + z = (1. - x) * 0.5; + s = sqrtf(z); + hx = s.to_bits(); + let df = f32::from_bits(hx & 0xfffff000); + let c = (z - df * df) / (s + df); + w = r(z) * s + c; + 2. * (df + w) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/acosh.rs b/src/rust/vendor/compiler_builtins/libm/src/math/acosh.rs new file mode 100644 index 000000000..d1f5b9fa9 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/acosh.rs @@ -0,0 +1,27 @@ +use super::{log, log1p, sqrt}; + +const LN2: f64 = 0.693147180559945309417232121458176568; /* 0x3fe62e42, 0xfefa39ef*/ + +/// Inverse hyperbolic cosine (f64) +/// +/// Calculates the inverse hyperbolic cosine of `x`. +/// Is defined as `log(x + sqrt(x*x-1))`. +/// `x` must be a number greater than or equal to 1. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn acosh(x: f64) -> f64 { + let u = x.to_bits(); + let e = ((u >> 52) as usize) & 0x7ff; + + /* x < 1 domain error is handled in the called functions */ + + if e < 0x3ff + 1 { + /* |x| < 2, up to 2ulp error in [1,1.125] */ + return log1p(x - 1.0 + sqrt((x - 1.0) * (x - 1.0) + 2.0 * (x - 1.0))); + } + if e < 0x3ff + 26 { + /* |x| < 0x1p26 */ + return log(2.0 * x - 1.0 / (x + sqrt(x * x - 1.0))); + } + /* |x| >= 0x1p26 or nan */ + return log(x) + LN2; +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/acoshf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/acoshf.rs new file mode 100644 index 000000000..ad3455fdd --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/acoshf.rs @@ -0,0 +1,26 @@ +use super::{log1pf, logf, sqrtf}; + +const LN2: f32 = 0.693147180559945309417232121458176568; + +/// Inverse hyperbolic cosine (f32) +/// +/// Calculates the inverse hyperbolic cosine of `x`. +/// Is defined as `log(x + sqrt(x*x-1))`. +/// `x` must be a number greater than or equal to 1. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn acoshf(x: f32) -> f32 { + let u = x.to_bits(); + let a = u & 0x7fffffff; + + if a < 0x3f800000 + (1 << 23) { + /* |x| < 2, invalid if x < 1 or nan */ + /* up to 2ulp error in [1,1.125] */ + return log1pf(x - 1.0 + sqrtf((x - 1.0) * (x - 1.0) + 2.0 * (x - 1.0))); + } + if a < 0x3f800000 + (12 << 23) { + /* |x| < 0x1p12 */ + return logf(2.0 * x - 1.0 / (x + sqrtf(x * x - 1.0))); + } + /* x >= 0x1p12 */ + return logf(x) + LN2; +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/asin.rs b/src/rust/vendor/compiler_builtins/libm/src/math/asin.rs new file mode 100644 index 000000000..3e4b7c56e --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/asin.rs @@ -0,0 +1,119 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_asin.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* asin(x) + * Method : + * Since asin(x) = x + x^3/6 + x^5*3/40 + x^7*15/336 + ... + * we approximate asin(x) on [0,0.5] by + * asin(x) = x + x*x^2*R(x^2) + * where + * R(x^2) is a rational approximation of (asin(x)-x)/x^3 + * and its remez error is bounded by + * |(asin(x)-x)/x^3 - R(x^2)| < 2^(-58.75) + * + * For x in [0.5,1] + * asin(x) = pi/2-2*asin(sqrt((1-x)/2)) + * Let y = (1-x), z = y/2, s := sqrt(z), and pio2_hi+pio2_lo=pi/2; + * then for x>0.98 + * asin(x) = pi/2 - 2*(s+s*z*R(z)) + * = pio2_hi - (2*(s+s*z*R(z)) - pio2_lo) + * For x<=0.98, let pio4_hi = pio2_hi/2, then + * f = hi part of s; + * c = sqrt(z) - f = (z-f*f)/(s+f) ...f+c=sqrt(z) + * and + * asin(x) = pi/2 - 2*(s+s*z*R(z)) + * = pio4_hi+(pio4-2s)-(2s*z*R(z)-pio2_lo) + * = pio4_hi+(pio4-2f)-(2s*z*R(z)-(pio2_lo+2c)) + * + * Special cases: + * if x is NaN, return x itself; + * if |x|>1, return NaN with invalid signal. + * + */ + +use super::{fabs, get_high_word, get_low_word, sqrt, with_set_low_word}; + +const PIO2_HI: f64 = 1.57079632679489655800e+00; /* 0x3FF921FB, 0x54442D18 */ +const PIO2_LO: f64 = 6.12323399573676603587e-17; /* 0x3C91A626, 0x33145C07 */ +/* coefficients for R(x^2) */ +const P_S0: f64 = 1.66666666666666657415e-01; /* 0x3FC55555, 0x55555555 */ +const P_S1: f64 = -3.25565818622400915405e-01; /* 0xBFD4D612, 0x03EB6F7D */ +const P_S2: f64 = 2.01212532134862925881e-01; /* 0x3FC9C155, 0x0E884455 */ +const P_S3: f64 = -4.00555345006794114027e-02; /* 0xBFA48228, 0xB5688F3B */ +const P_S4: f64 = 7.91534994289814532176e-04; /* 0x3F49EFE0, 0x7501B288 */ +const P_S5: f64 = 3.47933107596021167570e-05; /* 0x3F023DE1, 0x0DFDF709 */ +const Q_S1: f64 = -2.40339491173441421878e+00; /* 0xC0033A27, 0x1C8A2D4B */ +const Q_S2: f64 = 2.02094576023350569471e+00; /* 0x40002AE5, 0x9C598AC8 */ +const Q_S3: f64 = -6.88283971605453293030e-01; /* 0xBFE6066C, 0x1B8D0159 */ +const Q_S4: f64 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ + +fn comp_r(z: f64) -> f64 { + let p = z * (P_S0 + z * (P_S1 + z * (P_S2 + z * (P_S3 + z * (P_S4 + z * P_S5))))); + let q = 1.0 + z * (Q_S1 + z * (Q_S2 + z * (Q_S3 + z * Q_S4))); + p / q +} + +/// Arcsine (f64) +/// +/// Computes the inverse sine (arc sine) of the argument `x`. +/// Arguments to asin must be in the range -1 to 1. +/// Returns values in radians, in the range of -pi/2 to pi/2. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn asin(mut x: f64) -> f64 { + let z: f64; + let r: f64; + let s: f64; + let hx: u32; + let ix: u32; + + hx = get_high_word(x); + ix = hx & 0x7fffffff; + /* |x| >= 1 or nan */ + if ix >= 0x3ff00000 { + let lx: u32; + lx = get_low_word(x); + if ((ix - 0x3ff00000) | lx) == 0 { + /* asin(1) = +-pi/2 with inexact */ + return x * PIO2_HI + f64::from_bits(0x3870000000000000); + } else { + return 0.0 / (x - x); + } + } + /* |x| < 0.5 */ + if ix < 0x3fe00000 { + /* if 0x1p-1022 <= |x| < 0x1p-26, avoid raising underflow */ + if ix < 0x3e500000 && ix >= 0x00100000 { + return x; + } else { + return x + x * comp_r(x * x); + } + } + /* 1 > |x| >= 0.5 */ + z = (1.0 - fabs(x)) * 0.5; + s = sqrt(z); + r = comp_r(z); + if ix >= 0x3fef3333 { + /* if |x| > 0.975 */ + x = PIO2_HI - (2. * (s + s * r) - PIO2_LO); + } else { + let f: f64; + let c: f64; + /* f+c = sqrt(z) */ + f = with_set_low_word(s, 0); + c = (z - f * f) / (s + f); + x = 0.5 * PIO2_HI - (2.0 * s * r - (PIO2_LO - 2.0 * c) - (0.5 * PIO2_HI - 2.0 * f)); + } + if hx >> 31 != 0 { + -x + } else { + x + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/asinf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/asinf.rs new file mode 100644 index 000000000..6ec61b629 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/asinf.rs @@ -0,0 +1,72 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_asinf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::fabsf::fabsf; +use super::sqrt::sqrt; + +const PIO2: f64 = 1.570796326794896558e+00; + +/* coefficients for R(x^2) */ +const P_S0: f32 = 1.6666586697e-01; +const P_S1: f32 = -4.2743422091e-02; +const P_S2: f32 = -8.6563630030e-03; +const Q_S1: f32 = -7.0662963390e-01; + +fn r(z: f32) -> f32 { + let p = z * (P_S0 + z * (P_S1 + z * P_S2)); + let q = 1. + z * Q_S1; + p / q +} + +/// Arcsine (f32) +/// +/// Computes the inverse sine (arc sine) of the argument `x`. +/// Arguments to asin must be in the range -1 to 1. +/// Returns values in radians, in the range of -pi/2 to pi/2. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn asinf(mut x: f32) -> f32 { + let x1p_120 = f64::from_bits(0x3870000000000000); // 0x1p-120 === 2 ^ (-120) + + let hx = x.to_bits(); + let ix = hx & 0x7fffffff; + + if ix >= 0x3f800000 { + /* |x| >= 1 */ + if ix == 0x3f800000 { + /* |x| == 1 */ + return ((x as f64) * PIO2 + x1p_120) as f32; /* asin(+-1) = +-pi/2 with inexact */ + } + return 0. / (x - x); /* asin(|x|>1) is NaN */ + } + + if ix < 0x3f000000 { + /* |x| < 0.5 */ + /* if 0x1p-126 <= |x| < 0x1p-12, avoid raising underflow */ + if (ix < 0x39800000) && (ix >= 0x00800000) { + return x; + } + return x + x * r(x * x); + } + + /* 1 > |x| >= 0.5 */ + let z = (1. - fabsf(x)) * 0.5; + let s = sqrt(z as f64); + x = (PIO2 - 2. * (s + s * (r(z) as f64))) as f32; + if (hx >> 31) != 0 { + -x + } else { + x + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/asinh.rs b/src/rust/vendor/compiler_builtins/libm/src/math/asinh.rs new file mode 100644 index 000000000..0abd80c2f --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/asinh.rs @@ -0,0 +1,40 @@ +use super::{log, log1p, sqrt}; + +const LN2: f64 = 0.693147180559945309417232121458176568; /* 0x3fe62e42, 0xfefa39ef*/ + +/* asinh(x) = sign(x)*log(|x|+sqrt(x*x+1)) ~= x - x^3/6 + o(x^5) */ +/// Inverse hyperbolic sine (f64) +/// +/// Calculates the inverse hyperbolic sine of `x`. +/// Is defined as `sgn(x)*log(|x|+sqrt(x*x+1))`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn asinh(mut x: f64) -> f64 { + let mut u = x.to_bits(); + let e = ((u >> 52) as usize) & 0x7ff; + let sign = (u >> 63) != 0; + + /* |x| */ + u &= (!0) >> 1; + x = f64::from_bits(u); + + if e >= 0x3ff + 26 { + /* |x| >= 0x1p26 or inf or nan */ + x = log(x) + LN2; + } else if e >= 0x3ff + 1 { + /* |x| >= 2 */ + x = log(2.0 * x + 1.0 / (sqrt(x * x + 1.0) + x)); + } else if e >= 0x3ff - 26 { + /* |x| >= 0x1p-26, up to 1.6ulp error in [0.125,0.5] */ + x = log1p(x + x * x / (sqrt(x * x + 1.0) + 1.0)); + } else { + /* |x| < 0x1p-26, raise inexact if x != 0 */ + let x1p120 = f64::from_bits(0x4770000000000000); + force_eval!(x + x1p120); + } + + if sign { + -x + } else { + x + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/asinhf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/asinhf.rs new file mode 100644 index 000000000..09c77823e --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/asinhf.rs @@ -0,0 +1,39 @@ +use super::{log1pf, logf, sqrtf}; + +const LN2: f32 = 0.693147180559945309417232121458176568; + +/* asinh(x) = sign(x)*log(|x|+sqrt(x*x+1)) ~= x - x^3/6 + o(x^5) */ +/// Inverse hyperbolic sine (f32) +/// +/// Calculates the inverse hyperbolic sine of `x`. +/// Is defined as `sgn(x)*log(|x|+sqrt(x*x+1))`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn asinhf(mut x: f32) -> f32 { + let u = x.to_bits(); + let i = u & 0x7fffffff; + let sign = (u >> 31) != 0; + + /* |x| */ + x = f32::from_bits(i); + + if i >= 0x3f800000 + (12 << 23) { + /* |x| >= 0x1p12 or inf or nan */ + x = logf(x) + LN2; + } else if i >= 0x3f800000 + (1 << 23) { + /* |x| >= 2 */ + x = logf(2.0 * x + 1.0 / (sqrtf(x * x + 1.0) + x)); + } else if i >= 0x3f800000 - (12 << 23) { + /* |x| >= 0x1p-12, up to 1.6ulp error in [0.125,0.5] */ + x = log1pf(x + x * x / (sqrtf(x * x + 1.0) + 1.0)); + } else { + /* |x| < 0x1p-12, raise inexact if x!=0 */ + let x1p120 = f32::from_bits(0x7b800000); + force_eval!(x + x1p120); + } + + if sign { + -x + } else { + x + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/atan.rs b/src/rust/vendor/compiler_builtins/libm/src/math/atan.rs new file mode 100644 index 000000000..4259dc71a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/atan.rs @@ -0,0 +1,184 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_atan.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* atan(x) + * Method + * 1. Reduce x to positive by atan(x) = -atan(-x). + * 2. According to the integer k=4t+0.25 chopped, t=x, the argument + * is further reduced to one of the following intervals and the + * arctangent of t is evaluated by the corresponding formula: + * + * [0,7/16] atan(x) = t-t^3*(a1+t^2*(a2+...(a10+t^2*a11)...) + * [7/16,11/16] atan(x) = atan(1/2) + atan( (t-0.5)/(1+t/2) ) + * [11/16.19/16] atan(x) = atan( 1 ) + atan( (t-1)/(1+t) ) + * [19/16,39/16] atan(x) = atan(3/2) + atan( (t-1.5)/(1+1.5t) ) + * [39/16,INF] atan(x) = atan(INF) + atan( -1/t ) + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +use super::fabs; +use core::f64; + +const ATANHI: [f64; 4] = [ + 4.63647609000806093515e-01, /* atan(0.5)hi 0x3FDDAC67, 0x0561BB4F */ + 7.85398163397448278999e-01, /* atan(1.0)hi 0x3FE921FB, 0x54442D18 */ + 9.82793723247329054082e-01, /* atan(1.5)hi 0x3FEF730B, 0xD281F69B */ + 1.57079632679489655800e+00, /* atan(inf)hi 0x3FF921FB, 0x54442D18 */ +]; + +const ATANLO: [f64; 4] = [ + 2.26987774529616870924e-17, /* atan(0.5)lo 0x3C7A2B7F, 0x222F65E2 */ + 3.06161699786838301793e-17, /* atan(1.0)lo 0x3C81A626, 0x33145C07 */ + 1.39033110312309984516e-17, /* atan(1.5)lo 0x3C700788, 0x7AF0CBBD */ + 6.12323399573676603587e-17, /* atan(inf)lo 0x3C91A626, 0x33145C07 */ +]; + +const AT: [f64; 11] = [ + 3.33333333333329318027e-01, /* 0x3FD55555, 0x5555550D */ + -1.99999999998764832476e-01, /* 0xBFC99999, 0x9998EBC4 */ + 1.42857142725034663711e-01, /* 0x3FC24924, 0x920083FF */ + -1.11111104054623557880e-01, /* 0xBFBC71C6, 0xFE231671 */ + 9.09088713343650656196e-02, /* 0x3FB745CD, 0xC54C206E */ + -7.69187620504482999495e-02, /* 0xBFB3B0F2, 0xAF749A6D */ + 6.66107313738753120669e-02, /* 0x3FB10D66, 0xA0D03D51 */ + -5.83357013379057348645e-02, /* 0xBFADDE2D, 0x52DEFD9A */ + 4.97687799461593236017e-02, /* 0x3FA97B4B, 0x24760DEB */ + -3.65315727442169155270e-02, /* 0xBFA2B444, 0x2C6A6C2F */ + 1.62858201153657823623e-02, /* 0x3F90AD3A, 0xE322DA11 */ +]; + +/// Arctangent (f64) +/// +/// Computes the inverse tangent (arc tangent) of the input value. +/// Returns a value in radians, in the range of -pi/2 to pi/2. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn atan(x: f64) -> f64 { + let mut x = x; + let mut ix = (x.to_bits() >> 32) as u32; + let sign = ix >> 31; + ix &= 0x7fff_ffff; + if ix >= 0x4410_0000 { + if x.is_nan() { + return x; + } + + let z = ATANHI[3] + f64::from_bits(0x0380_0000); // 0x1p-120f + return if sign != 0 { -z } else { z }; + } + + let id = if ix < 0x3fdc_0000 { + /* |x| < 0.4375 */ + if ix < 0x3e40_0000 { + /* |x| < 2^-27 */ + if ix < 0x0010_0000 { + /* raise underflow for subnormal x */ + force_eval!(x as f32); + } + + return x; + } + + -1 + } else { + x = fabs(x); + if ix < 0x3ff30000 { + /* |x| < 1.1875 */ + if ix < 0x3fe60000 { + /* 7/16 <= |x| < 11/16 */ + x = (2. * x - 1.) / (2. + x); + 0 + } else { + /* 11/16 <= |x| < 19/16 */ + x = (x - 1.) / (x + 1.); + 1 + } + } else if ix < 0x40038000 { + /* |x| < 2.4375 */ + x = (x - 1.5) / (1. + 1.5 * x); + 2 + } else { + /* 2.4375 <= |x| < 2^66 */ + x = -1. / x; + 3 + } + }; + + let z = x * x; + let w = z * z; + /* break sum from i=0 to 10 AT[i]z**(i+1) into odd and even poly */ + let s1 = z * (AT[0] + w * (AT[2] + w * (AT[4] + w * (AT[6] + w * (AT[8] + w * AT[10]))))); + let s2 = w * (AT[1] + w * (AT[3] + w * (AT[5] + w * (AT[7] + w * AT[9])))); + + if id < 0 { + return x - x * (s1 + s2); + } + + let z = i!(ATANHI, id as usize) - (x * (s1 + s2) - i!(ATANLO, id as usize) - x); + + if sign != 0 { + -z + } else { + z + } +} + +#[cfg(test)] +mod tests { + use super::atan; + use core::f64; + + #[test] + fn sanity_check() { + for (input, answer) in [ + (3.0_f64.sqrt() / 3.0, f64::consts::FRAC_PI_6), + (1.0, f64::consts::FRAC_PI_4), + (3.0_f64.sqrt(), f64::consts::FRAC_PI_3), + (-3.0_f64.sqrt() / 3.0, -f64::consts::FRAC_PI_6), + (-1.0, -f64::consts::FRAC_PI_4), + (-3.0_f64.sqrt(), -f64::consts::FRAC_PI_3), + ] + .iter() + { + assert!( + (atan(*input) - answer) / answer < 1e-5, + "\natan({:.4}/16) = {:.4}, actual: {}", + input * 16.0, + answer, + atan(*input) + ); + } + } + + #[test] + fn zero() { + assert_eq!(atan(0.0), 0.0); + } + + #[test] + fn infinity() { + assert_eq!(atan(f64::INFINITY), f64::consts::FRAC_PI_2); + } + + #[test] + fn minus_infinity() { + assert_eq!(atan(f64::NEG_INFINITY), -f64::consts::FRAC_PI_2); + } + + #[test] + fn nan() { + assert!(atan(f64::NAN).is_nan()); + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/atan2.rs b/src/rust/vendor/compiler_builtins/libm/src/math/atan2.rs new file mode 100644 index 000000000..fb2ea4eda --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/atan2.rs @@ -0,0 +1,126 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_atan2.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ +/* atan2(y,x) + * Method : + * 1. Reduce y to positive by atan2(y,x)=-atan2(-y,x). + * 2. Reduce x to positive by (if x and y are unexceptional): + * ARG (x+iy) = arctan(y/x) ... if x > 0, + * ARG (x+iy) = pi - arctan[y/(-x)] ... if x < 0, + * + * Special cases: + * + * ATAN2((anything), NaN ) is NaN; + * ATAN2(NAN , (anything) ) is NaN; + * ATAN2(+-0, +(anything but NaN)) is +-0 ; + * ATAN2(+-0, -(anything but NaN)) is +-pi ; + * ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2; + * ATAN2(+-(anything but INF and NaN), +INF) is +-0 ; + * ATAN2(+-(anything but INF and NaN), -INF) is +-pi; + * ATAN2(+-INF,+INF ) is +-pi/4 ; + * ATAN2(+-INF,-INF ) is +-3pi/4; + * ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2; + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +use super::atan; +use super::fabs; + +const PI: f64 = 3.1415926535897931160E+00; /* 0x400921FB, 0x54442D18 */ +const PI_LO: f64 = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ + +/// Arctangent of y/x (f64) +/// +/// Computes the inverse tangent (arc tangent) of `y/x`. +/// Produces the correct result even for angles near pi/2 or -pi/2 (that is, when `x` is near 0). +/// Returns a value in radians, in the range of -pi to pi. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn atan2(y: f64, x: f64) -> f64 { + if x.is_nan() || y.is_nan() { + return x + y; + } + let mut ix = (x.to_bits() >> 32) as u32; + let lx = x.to_bits() as u32; + let mut iy = (y.to_bits() >> 32) as u32; + let ly = y.to_bits() as u32; + if ((ix.wrapping_sub(0x3ff00000)) | lx) == 0 { + /* x = 1.0 */ + return atan(y); + } + let m = ((iy >> 31) & 1) | ((ix >> 30) & 2); /* 2*sign(x)+sign(y) */ + ix &= 0x7fffffff; + iy &= 0x7fffffff; + + /* when y = 0 */ + if (iy | ly) == 0 { + return match m { + 0 | 1 => y, /* atan(+-0,+anything)=+-0 */ + 2 => PI, /* atan(+0,-anything) = PI */ + _ => -PI, /* atan(-0,-anything) =-PI */ + }; + } + /* when x = 0 */ + if (ix | lx) == 0 { + return if m & 1 != 0 { -PI / 2.0 } else { PI / 2.0 }; + } + /* when x is INF */ + if ix == 0x7ff00000 { + if iy == 0x7ff00000 { + return match m { + 0 => PI / 4.0, /* atan(+INF,+INF) */ + 1 => -PI / 4.0, /* atan(-INF,+INF) */ + 2 => 3.0 * PI / 4.0, /* atan(+INF,-INF) */ + _ => -3.0 * PI / 4.0, /* atan(-INF,-INF) */ + }; + } else { + return match m { + 0 => 0.0, /* atan(+...,+INF) */ + 1 => -0.0, /* atan(-...,+INF) */ + 2 => PI, /* atan(+...,-INF) */ + _ => -PI, /* atan(-...,-INF) */ + }; + } + } + /* |y/x| > 0x1p64 */ + if ix.wrapping_add(64 << 20) < iy || iy == 0x7ff00000 { + return if m & 1 != 0 { -PI / 2.0 } else { PI / 2.0 }; + } + + /* z = atan(|y/x|) without spurious underflow */ + let z = if (m & 2 != 0) && iy.wrapping_add(64 << 20) < ix { + /* |y/x| < 0x1p-64, x<0 */ + 0.0 + } else { + atan(fabs(y / x)) + }; + match m { + 0 => z, /* atan(+,+) */ + 1 => -z, /* atan(-,+) */ + 2 => PI - (z - PI_LO), /* atan(+,-) */ + _ => (z - PI_LO) - PI, /* atan(-,-) */ + } +} + +#[test] +fn sanity_check() { + assert_eq!(atan2(0.0, 1.0), 0.0); + assert_eq!(atan2(0.0, -1.0), PI); + assert_eq!(atan2(-0.0, -1.0), -PI); + assert_eq!(atan2(3.0, 2.0), atan(3.0 / 2.0)); + assert_eq!(atan2(2.0, -1.0), atan(2.0 / -1.0) + PI); + assert_eq!(atan2(-2.0, -1.0), atan(-2.0 / -1.0) - PI); +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/atan2f.rs b/src/rust/vendor/compiler_builtins/libm/src/math/atan2f.rs new file mode 100644 index 000000000..eae3b002d --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/atan2f.rs @@ -0,0 +1,91 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_atan2f.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::atanf; +use super::fabsf; + +const PI: f32 = 3.1415927410e+00; /* 0x40490fdb */ +const PI_LO: f32 = -8.7422776573e-08; /* 0xb3bbbd2e */ + +/// Arctangent of y/x (f32) +/// +/// Computes the inverse tangent (arc tangent) of `y/x`. +/// Produces the correct result even for angles near pi/2 or -pi/2 (that is, when `x` is near 0). +/// Returns a value in radians, in the range of -pi to pi. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn atan2f(y: f32, x: f32) -> f32 { + if x.is_nan() || y.is_nan() { + return x + y; + } + let mut ix = x.to_bits(); + let mut iy = y.to_bits(); + + if ix == 0x3f800000 { + /* x=1.0 */ + return atanf(y); + } + let m = ((iy >> 31) & 1) | ((ix >> 30) & 2); /* 2*sign(x)+sign(y) */ + ix &= 0x7fffffff; + iy &= 0x7fffffff; + + /* when y = 0 */ + if iy == 0 { + return match m { + 0 | 1 => y, /* atan(+-0,+anything)=+-0 */ + 2 => PI, /* atan(+0,-anything) = pi */ + 3 | _ => -PI, /* atan(-0,-anything) =-pi */ + }; + } + /* when x = 0 */ + if ix == 0 { + return if m & 1 != 0 { -PI / 2. } else { PI / 2. }; + } + /* when x is INF */ + if ix == 0x7f800000 { + return if iy == 0x7f800000 { + match m { + 0 => PI / 4., /* atan(+INF,+INF) */ + 1 => -PI / 4., /* atan(-INF,+INF) */ + 2 => 3. * PI / 4., /* atan(+INF,-INF)*/ + 3 | _ => -3. * PI / 4., /* atan(-INF,-INF)*/ + } + } else { + match m { + 0 => 0., /* atan(+...,+INF) */ + 1 => -0., /* atan(-...,+INF) */ + 2 => PI, /* atan(+...,-INF) */ + 3 | _ => -PI, /* atan(-...,-INF) */ + } + }; + } + /* |y/x| > 0x1p26 */ + if (ix + (26 << 23) < iy) || (iy == 0x7f800000) { + return if m & 1 != 0 { -PI / 2. } else { PI / 2. }; + } + + /* z = atan(|y/x|) with correct underflow */ + let z = if (m & 2 != 0) && (iy + (26 << 23) < ix) { + /*|y/x| < 0x1p-26, x < 0 */ + 0. + } else { + atanf(fabsf(y / x)) + }; + match m { + 0 => z, /* atan(+,+) */ + 1 => -z, /* atan(-,+) */ + 2 => PI - (z - PI_LO), /* atan(+,-) */ + _ => (z - PI_LO) - PI, /* case 3 */ /* atan(-,-) */ + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/atanf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/atanf.rs new file mode 100644 index 000000000..d042b3bc0 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/atanf.rs @@ -0,0 +1,112 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_atanf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::fabsf; + +const ATAN_HI: [f32; 4] = [ + 4.6364760399e-01, /* atan(0.5)hi 0x3eed6338 */ + 7.8539812565e-01, /* atan(1.0)hi 0x3f490fda */ + 9.8279368877e-01, /* atan(1.5)hi 0x3f7b985e */ + 1.5707962513e+00, /* atan(inf)hi 0x3fc90fda */ +]; + +const ATAN_LO: [f32; 4] = [ + 5.0121582440e-09, /* atan(0.5)lo 0x31ac3769 */ + 3.7748947079e-08, /* atan(1.0)lo 0x33222168 */ + 3.4473217170e-08, /* atan(1.5)lo 0x33140fb4 */ + 7.5497894159e-08, /* atan(inf)lo 0x33a22168 */ +]; + +const A_T: [f32; 5] = [ + 3.3333328366e-01, + -1.9999158382e-01, + 1.4253635705e-01, + -1.0648017377e-01, + 6.1687607318e-02, +]; + +/// Arctangent (f32) +/// +/// Computes the inverse tangent (arc tangent) of the input value. +/// Returns a value in radians, in the range of -pi/2 to pi/2. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn atanf(mut x: f32) -> f32 { + let x1p_120 = f32::from_bits(0x03800000); // 0x1p-120 === 2 ^ (-120) + + let z: f32; + + let mut ix = x.to_bits(); + let sign = (ix >> 31) != 0; + ix &= 0x7fffffff; + + if ix >= 0x4c800000 { + /* if |x| >= 2**26 */ + if x.is_nan() { + return x; + } + z = i!(ATAN_HI, 3) + x1p_120; + return if sign { -z } else { z }; + } + let id = if ix < 0x3ee00000 { + /* |x| < 0.4375 */ + if ix < 0x39800000 { + /* |x| < 2**-12 */ + if ix < 0x00800000 { + /* raise underflow for subnormal x */ + force_eval!(x * x); + } + return x; + } + -1 + } else { + x = fabsf(x); + if ix < 0x3f980000 { + /* |x| < 1.1875 */ + if ix < 0x3f300000 { + /* 7/16 <= |x| < 11/16 */ + x = (2. * x - 1.) / (2. + x); + 0 + } else { + /* 11/16 <= |x| < 19/16 */ + x = (x - 1.) / (x + 1.); + 1 + } + } else if ix < 0x401c0000 { + /* |x| < 2.4375 */ + x = (x - 1.5) / (1. + 1.5 * x); + 2 + } else { + /* 2.4375 <= |x| < 2**26 */ + x = -1. / x; + 3 + } + }; + /* end of argument reduction */ + z = x * x; + let w = z * z; + /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ + let s1 = z * (i!(A_T, 0) + w * (i!(A_T, 2) + w * i!(A_T, 4))); + let s2 = w * (i!(A_T, 1) + w * i!(A_T, 3)); + if id < 0 { + return x - x * (s1 + s2); + } + let id = id as usize; + let z = i!(ATAN_HI, id) - ((x * (s1 + s2) - i!(ATAN_LO, id)) - x); + if sign { + -z + } else { + z + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/atanh.rs b/src/rust/vendor/compiler_builtins/libm/src/math/atanh.rs new file mode 100644 index 000000000..b984c4ac6 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/atanh.rs @@ -0,0 +1,37 @@ +use super::log1p; + +/* atanh(x) = log((1+x)/(1-x))/2 = log1p(2x/(1-x))/2 ~= x + x^3/3 + o(x^5) */ +/// Inverse hyperbolic tangent (f64) +/// +/// Calculates the inverse hyperbolic tangent of `x`. +/// Is defined as `log((1+x)/(1-x))/2 = log1p(2x/(1-x))/2`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn atanh(x: f64) -> f64 { + let u = x.to_bits(); + let e = ((u >> 52) as usize) & 0x7ff; + let sign = (u >> 63) != 0; + + /* |x| */ + let mut y = f64::from_bits(u & 0x7fff_ffff_ffff_ffff); + + if e < 0x3ff - 1 { + if e < 0x3ff - 32 { + /* handle underflow */ + if e == 0 { + force_eval!(y as f32); + } + } else { + /* |x| < 0.5, up to 1.7ulp error */ + y = 0.5 * log1p(2.0 * y + 2.0 * y * y / (1.0 - y)); + } + } else { + /* avoid overflow */ + y = 0.5 * log1p(2.0 * (y / (1.0 - y))); + } + + if sign { + -y + } else { + y + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/atanhf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/atanhf.rs new file mode 100644 index 000000000..a1aa314a5 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/atanhf.rs @@ -0,0 +1,37 @@ +use super::log1pf; + +/* atanh(x) = log((1+x)/(1-x))/2 = log1p(2x/(1-x))/2 ~= x + x^3/3 + o(x^5) */ +/// Inverse hyperbolic tangent (f32) +/// +/// Calculates the inverse hyperbolic tangent of `x`. +/// Is defined as `log((1+x)/(1-x))/2 = log1p(2x/(1-x))/2`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn atanhf(mut x: f32) -> f32 { + let mut u = x.to_bits(); + let sign = (u >> 31) != 0; + + /* |x| */ + u &= 0x7fffffff; + x = f32::from_bits(u); + + if u < 0x3f800000 - (1 << 23) { + if u < 0x3f800000 - (32 << 23) { + /* handle underflow */ + if u < (1 << 23) { + force_eval!((x * x) as f32); + } + } else { + /* |x| < 0.5, up to 1.7ulp error */ + x = 0.5 * log1pf(2.0 * x + 2.0 * x * x / (1.0 - x)); + } + } else { + /* avoid overflow */ + x = 0.5 * log1pf(2.0 * (x / (1.0 - x))); + } + + if sign { + -x + } else { + x + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/cbrt.rs b/src/rust/vendor/compiler_builtins/libm/src/math/cbrt.rs new file mode 100644 index 000000000..b4e77eaa2 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/cbrt.rs @@ -0,0 +1,113 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_cbrt.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + * Optimized by Bruce D. Evans. + */ +/* cbrt(x) + * Return cube root of x + */ + +use core::f64; + +const B1: u32 = 715094163; /* B1 = (1023-1023/3-0.03306235651)*2**20 */ +const B2: u32 = 696219795; /* B2 = (1023-1023/3-54/3-0.03306235651)*2**20 */ + +/* |1/cbrt(x) - p(x)| < 2**-23.5 (~[-7.93e-8, 7.929e-8]). */ +const P0: f64 = 1.87595182427177009643; /* 0x3ffe03e6, 0x0f61e692 */ +const P1: f64 = -1.88497979543377169875; /* 0xbffe28e0, 0x92f02420 */ +const P2: f64 = 1.621429720105354466140; /* 0x3ff9f160, 0x4a49d6c2 */ +const P3: f64 = -0.758397934778766047437; /* 0xbfe844cb, 0xbee751d9 */ +const P4: f64 = 0.145996192886612446982; /* 0x3fc2b000, 0xd4e4edd7 */ + +// Cube root (f64) +/// +/// Computes the cube root of the argument. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn cbrt(x: f64) -> f64 { + let x1p54 = f64::from_bits(0x4350000000000000); // 0x1p54 === 2 ^ 54 + + let mut ui: u64 = x.to_bits(); + let mut r: f64; + let s: f64; + let mut t: f64; + let w: f64; + let mut hx: u32 = (ui >> 32) as u32 & 0x7fffffff; + + if hx >= 0x7ff00000 { + /* cbrt(NaN,INF) is itself */ + return x + x; + } + + /* + * Rough cbrt to 5 bits: + * cbrt(2**e*(1+m) ~= 2**(e/3)*(1+(e%3+m)/3) + * where e is integral and >= 0, m is real and in [0, 1), and "/" and + * "%" are integer division and modulus with rounding towards minus + * infinity. The RHS is always >= the LHS and has a maximum relative + * error of about 1 in 16. Adding a bias of -0.03306235651 to the + * (e%3+m)/3 term reduces the error to about 1 in 32. With the IEEE + * floating point representation, for finite positive normal values, + * ordinary integer divison of the value in bits magically gives + * almost exactly the RHS of the above provided we first subtract the + * exponent bias (1023 for doubles) and later add it back. We do the + * subtraction virtually to keep e >= 0 so that ordinary integer + * division rounds towards minus infinity; this is also efficient. + */ + if hx < 0x00100000 { + /* zero or subnormal? */ + ui = (x * x1p54).to_bits(); + hx = (ui >> 32) as u32 & 0x7fffffff; + if hx == 0 { + return x; /* cbrt(0) is itself */ + } + hx = hx / 3 + B2; + } else { + hx = hx / 3 + B1; + } + ui &= 1 << 63; + ui |= (hx as u64) << 32; + t = f64::from_bits(ui); + + /* + * New cbrt to 23 bits: + * cbrt(x) = t*cbrt(x/t**3) ~= t*P(t**3/x) + * where P(r) is a polynomial of degree 4 that approximates 1/cbrt(r) + * to within 2**-23.5 when |r - 1| < 1/10. The rough approximation + * has produced t such than |t/cbrt(x) - 1| ~< 1/32, and cubing this + * gives us bounds for r = t**3/x. + * + * Try to optimize for parallel evaluation as in __tanf.c. + */ + r = (t * t) * (t / x); + t = t * ((P0 + r * (P1 + r * P2)) + ((r * r) * r) * (P3 + r * P4)); + + /* + * Round t away from zero to 23 bits (sloppily except for ensuring that + * the result is larger in magnitude than cbrt(x) but not much more than + * 2 23-bit ulps larger). With rounding towards zero, the error bound + * would be ~5/6 instead of ~4/6. With a maximum error of 2 23-bit ulps + * in the rounded t, the infinite-precision error in the Newton + * approximation barely affects third digit in the final error + * 0.667; the error in the rounded t can be up to about 3 23-bit ulps + * before the final error is larger than 0.667 ulps. + */ + ui = t.to_bits(); + ui = (ui + 0x80000000) & 0xffffffffc0000000; + t = f64::from_bits(ui); + + /* one step Newton iteration to 53 bits with error < 0.667 ulps */ + s = t * t; /* t*t is exact */ + r = x / s; /* error <= 0.5 ulps; |r| < |t| */ + w = t + t; /* t+t is exact */ + r = (r - t) / (w + r); /* r-t is exact; w+r ~= 3*t */ + t = t + t * r; /* error <= 0.5 + 0.5/3 + epsilon */ + t +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/cbrtf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/cbrtf.rs new file mode 100644 index 000000000..9d70305c6 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/cbrtf.rs @@ -0,0 +1,75 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_cbrtf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + * Debugged and optimized by Bruce D. Evans. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* cbrtf(x) + * Return cube root of x + */ + +use core::f32; + +const B1: u32 = 709958130; /* B1 = (127-127.0/3-0.03306235651)*2**23 */ +const B2: u32 = 642849266; /* B2 = (127-127.0/3-24/3-0.03306235651)*2**23 */ + +/// Cube root (f32) +/// +/// Computes the cube root of the argument. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn cbrtf(x: f32) -> f32 { + let x1p24 = f32::from_bits(0x4b800000); // 0x1p24f === 2 ^ 24 + + let mut r: f64; + let mut t: f64; + let mut ui: u32 = x.to_bits(); + let mut hx: u32 = ui & 0x7fffffff; + + if hx >= 0x7f800000 { + /* cbrt(NaN,INF) is itself */ + return x + x; + } + + /* rough cbrt to 5 bits */ + if hx < 0x00800000 { + /* zero or subnormal? */ + if hx == 0 { + return x; /* cbrt(+-0) is itself */ + } + ui = (x * x1p24).to_bits(); + hx = ui & 0x7fffffff; + hx = hx / 3 + B2; + } else { + hx = hx / 3 + B1; + } + ui &= 0x80000000; + ui |= hx; + + /* + * First step Newton iteration (solving t*t-x/t == 0) to 16 bits. In + * double precision so that its terms can be arranged for efficiency + * without causing overflow or underflow. + */ + t = f32::from_bits(ui) as f64; + r = t * t * t; + t = t * (x as f64 + x as f64 + r) / (x as f64 + r + r); + + /* + * Second step Newton iteration to 47 bits. In double precision for + * efficiency and accuracy. + */ + r = t * t * t; + t = t * (x as f64 + x as f64 + r) / (x as f64 + r + r); + + /* rounding to 24 bits is perfect in round-to-nearest mode */ + t as f32 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/ceil.rs b/src/rust/vendor/compiler_builtins/libm/src/math/ceil.rs new file mode 100644 index 000000000..22d892971 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/ceil.rs @@ -0,0 +1,82 @@ +#![allow(unreachable_code)] +use core::f64; + +const TOINT: f64 = 1. / f64::EPSILON; + +/// Ceil (f64) +/// +/// Finds the nearest integer greater than or equal to `x`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn ceil(x: f64) -> f64 { + // On wasm32 we know that LLVM's intrinsic will compile to an optimized + // `f64.ceil` native instruction, so we can leverage this for both code size + // and speed. + llvm_intrinsically_optimized! { + #[cfg(target_arch = "wasm32")] { + return unsafe { ::core::intrinsics::ceilf64(x) } + } + } + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + { + //use an alternative implementation on x86, because the + //main implementation fails with the x87 FPU used by + //debian i386, probablly due to excess precision issues. + //basic implementation taken from https://github.com/rust-lang/libm/issues/219 + use super::fabs; + if fabs(x).to_bits() < 4503599627370496.0_f64.to_bits() { + let truncated = x as i64 as f64; + if truncated < x { + return truncated + 1.0; + } else { + return truncated; + } + } else { + return x; + } + } + let u: u64 = x.to_bits(); + let e: i64 = (u >> 52 & 0x7ff) as i64; + let y: f64; + + if e >= 0x3ff + 52 || x == 0. { + return x; + } + // y = int(x) - x, where int(x) is an integer neighbor of x + y = if (u >> 63) != 0 { + x - TOINT + TOINT - x + } else { + x + TOINT - TOINT - x + }; + // special case because of non-nearest rounding modes + if e < 0x3ff { + force_eval!(y); + return if (u >> 63) != 0 { -0. } else { 1. }; + } + if y < 0. { + x + y + 1. + } else { + x + y + } +} + +#[cfg(test)] +mod tests { + use super::*; + use core::f64::*; + + #[test] + fn sanity_check() { + assert_eq!(ceil(1.1), 2.0); + assert_eq!(ceil(2.9), 3.0); + } + + /// The spec: https://en.cppreference.com/w/cpp/numeric/math/ceil + #[test] + fn spec_tests() { + // Not Asserted: that the current rounding mode has no effect. + assert!(ceil(NAN).is_nan()); + for f in [0.0, -0.0, INFINITY, NEG_INFINITY].iter().copied() { + assert_eq!(ceil(f), f); + } + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/ceilf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/ceilf.rs new file mode 100644 index 000000000..7bcc647ca --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/ceilf.rs @@ -0,0 +1,65 @@ +use core::f32; + +/// Ceil (f32) +/// +/// Finds the nearest integer greater than or equal to `x`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn ceilf(x: f32) -> f32 { + // On wasm32 we know that LLVM's intrinsic will compile to an optimized + // `f32.ceil` native instruction, so we can leverage this for both code size + // and speed. + llvm_intrinsically_optimized! { + #[cfg(target_arch = "wasm32")] { + return unsafe { ::core::intrinsics::ceilf32(x) } + } + } + let mut ui = x.to_bits(); + let e = (((ui >> 23) & 0xff).wrapping_sub(0x7f)) as i32; + + if e >= 23 { + return x; + } + if e >= 0 { + let m = 0x007fffff >> e; + if (ui & m) == 0 { + return x; + } + force_eval!(x + f32::from_bits(0x7b800000)); + if ui >> 31 == 0 { + ui += m; + } + ui &= !m; + } else { + force_eval!(x + f32::from_bits(0x7b800000)); + if ui >> 31 != 0 { + return -0.0; + } else if ui << 1 != 0 { + return 1.0; + } + } + f32::from_bits(ui) +} + +// PowerPC tests are failing on LLVM 13: https://github.com/rust-lang/rust/issues/88520 +#[cfg(not(target_arch = "powerpc64"))] +#[cfg(test)] +mod tests { + use super::*; + use core::f32::*; + + #[test] + fn sanity_check() { + assert_eq!(ceilf(1.1), 2.0); + assert_eq!(ceilf(2.9), 3.0); + } + + /// The spec: https://en.cppreference.com/w/cpp/numeric/math/ceil + #[test] + fn spec_tests() { + // Not Asserted: that the current rounding mode has no effect. + assert!(ceilf(NAN).is_nan()); + for f in [0.0, -0.0, INFINITY, NEG_INFINITY].iter().copied() { + assert_eq!(ceilf(f), f); + } + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/copysign.rs b/src/rust/vendor/compiler_builtins/libm/src/math/copysign.rs new file mode 100644 index 000000000..1f4a35a33 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/copysign.rs @@ -0,0 +1,12 @@ +/// Sign of Y, magnitude of X (f64) +/// +/// Constructs a number with the magnitude (absolute value) of its +/// first argument, `x`, and the sign of its second argument, `y`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn copysign(x: f64, y: f64) -> f64 { + let mut ux = x.to_bits(); + let uy = y.to_bits(); + ux &= (!0) >> 1; + ux |= uy & (1 << 63); + f64::from_bits(ux) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/copysignf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/copysignf.rs new file mode 100644 index 000000000..6c346e3a5 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/copysignf.rs @@ -0,0 +1,12 @@ +/// Sign of Y, magnitude of X (f32) +/// +/// Constructs a number with the magnitude (absolute value) of its +/// first argument, `x`, and the sign of its second argument, `y`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn copysignf(x: f32, y: f32) -> f32 { + let mut ux = x.to_bits(); + let uy = y.to_bits(); + ux &= 0x7fffffff; + ux |= uy & 0x80000000; + f32::from_bits(ux) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/cos.rs b/src/rust/vendor/compiler_builtins/libm/src/math/cos.rs new file mode 100644 index 000000000..db8bc4989 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/cos.rs @@ -0,0 +1,73 @@ +// origin: FreeBSD /usr/src/lib/msun/src/s_cos.c */ +// +// ==================================================== +// Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. +// +// Developed at SunPro, a Sun Microsystems, Inc. business. +// Permission to use, copy, modify, and distribute this +// software is freely granted, provided that this notice +// is preserved. +// ==================================================== + +use super::{k_cos, k_sin, rem_pio2}; + +// cos(x) +// Return cosine function of x. +// +// kernel function: +// k_sin ... sine function on [-pi/4,pi/4] +// k_cos ... cosine function on [-pi/4,pi/4] +// rem_pio2 ... argument reduction routine +// +// Method. +// Let S,C and T denote the sin, cos and tan respectively on +// [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 +// in [-pi/4 , +pi/4], and let n = k mod 4. +// We have +// +// n sin(x) cos(x) tan(x) +// ---------------------------------------------------------- +// 0 S C T +// 1 C -S -1/T +// 2 -S -C T +// 3 -C S -1/T +// ---------------------------------------------------------- +// +// Special cases: +// Let trig be any of sin, cos, or tan. +// trig(+-INF) is NaN, with signals; +// trig(NaN) is that NaN; +// +// Accuracy: +// TRIG(x) returns trig(x) nearly rounded +// +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn cos(x: f64) -> f64 { + let ix = (f64::to_bits(x) >> 32) as u32 & 0x7fffffff; + + /* |x| ~< pi/4 */ + if ix <= 0x3fe921fb { + if ix < 0x3e46a09e { + /* if x < 2**-27 * sqrt(2) */ + /* raise inexact if x != 0 */ + if x as i32 == 0 { + return 1.0; + } + } + return k_cos(x, 0.0); + } + + /* cos(Inf or NaN) is NaN */ + if ix >= 0x7ff00000 { + return x - x; + } + + /* argument reduction needed */ + let (n, y0, y1) = rem_pio2(x); + match n & 3 { + 0 => k_cos(y0, y1), + 1 => -k_sin(y0, y1, 1), + 2 => -k_cos(y0, y1), + _ => k_sin(y0, y1, 1), + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/cosf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/cosf.rs new file mode 100644 index 000000000..424fa42ed --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/cosf.rs @@ -0,0 +1,83 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_cosf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + * Optimized by Bruce D. Evans. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::{k_cosf, k_sinf, rem_pio2f}; + +use core::f64::consts::FRAC_PI_2; + +/* Small multiples of pi/2 rounded to double precision. */ +const C1_PIO2: f64 = 1. * FRAC_PI_2; /* 0x3FF921FB, 0x54442D18 */ +const C2_PIO2: f64 = 2. * FRAC_PI_2; /* 0x400921FB, 0x54442D18 */ +const C3_PIO2: f64 = 3. * FRAC_PI_2; /* 0x4012D97C, 0x7F3321D2 */ +const C4_PIO2: f64 = 4. * FRAC_PI_2; /* 0x401921FB, 0x54442D18 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn cosf(x: f32) -> f32 { + let x64 = x as f64; + + let x1p120 = f32::from_bits(0x7b800000); // 0x1p120f === 2 ^ 120 + + let mut ix = x.to_bits(); + let sign = (ix >> 31) != 0; + ix &= 0x7fffffff; + + if ix <= 0x3f490fda { + /* |x| ~<= pi/4 */ + if ix < 0x39800000 { + /* |x| < 2**-12 */ + /* raise inexact if x != 0 */ + force_eval!(x + x1p120); + return 1.; + } + return k_cosf(x64); + } + if ix <= 0x407b53d1 { + /* |x| ~<= 5*pi/4 */ + if ix > 0x4016cbe3 { + /* |x| ~> 3*pi/4 */ + return -k_cosf(if sign { x64 + C2_PIO2 } else { x64 - C2_PIO2 }); + } else if sign { + return k_sinf(x64 + C1_PIO2); + } else { + return k_sinf(C1_PIO2 - x64); + } + } + if ix <= 0x40e231d5 { + /* |x| ~<= 9*pi/4 */ + if ix > 0x40afeddf { + /* |x| ~> 7*pi/4 */ + return k_cosf(if sign { x64 + C4_PIO2 } else { x64 - C4_PIO2 }); + } else if sign { + return k_sinf(-x64 - C3_PIO2); + } else { + return k_sinf(x64 - C3_PIO2); + } + } + + /* cos(Inf or NaN) is NaN */ + if ix >= 0x7f800000 { + return x - x; + } + + /* general argument reduction needed */ + let (n, y) = rem_pio2f(x); + match n & 3 { + 0 => k_cosf(y), + 1 => k_sinf(-y), + 2 => -k_cosf(y), + _ => k_sinf(y), + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/cosh.rs b/src/rust/vendor/compiler_builtins/libm/src/math/cosh.rs new file mode 100644 index 000000000..2fb568ab3 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/cosh.rs @@ -0,0 +1,38 @@ +use super::exp; +use super::expm1; +use super::k_expo2; + +/// Hyperbolic cosine (f64) +/// +/// Computes the hyperbolic cosine of the argument x. +/// Is defined as `(exp(x) + exp(-x))/2` +/// Angles are specified in radians. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn cosh(mut x: f64) -> f64 { + /* |x| */ + let mut ix = x.to_bits(); + ix &= 0x7fffffffffffffff; + x = f64::from_bits(ix); + let w = ix >> 32; + + /* |x| < log(2) */ + if w < 0x3fe62e42 { + if w < 0x3ff00000 - (26 << 20) { + let x1p120 = f64::from_bits(0x4770000000000000); + force_eval!(x + x1p120); + return 1.; + } + let t = expm1(x); // exponential minus 1 + return 1. + t * t / (2. * (1. + t)); + } + + /* |x| < log(DBL_MAX) */ + if w < 0x40862e42 { + let t = exp(x); + /* note: if x>log(0x1p26) then the 1/t is not needed */ + return 0.5 * (t + 1. / t); + } + + /* |x| > log(DBL_MAX) or nan */ + k_expo2(x) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/coshf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/coshf.rs new file mode 100644 index 000000000..e7b684587 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/coshf.rs @@ -0,0 +1,38 @@ +use super::expf; +use super::expm1f; +use super::k_expo2f; + +/// Hyperbolic cosine (f64) +/// +/// Computes the hyperbolic cosine of the argument x. +/// Is defined as `(exp(x) + exp(-x))/2` +/// Angles are specified in radians. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn coshf(mut x: f32) -> f32 { + let x1p120 = f32::from_bits(0x7b800000); // 0x1p120f === 2 ^ 120 + + /* |x| */ + let mut ix = x.to_bits(); + ix &= 0x7fffffff; + x = f32::from_bits(ix); + let w = ix; + + /* |x| < log(2) */ + if w < 0x3f317217 { + if w < (0x3f800000 - (12 << 23)) { + force_eval!(x + x1p120); + return 1.; + } + let t = expm1f(x); + return 1. + t * t / (2. * (1. + t)); + } + + /* |x| < log(FLT_MAX) */ + if w < 0x42b17217 { + let t = expf(x); + return 0.5 * (t + 1. / t); + } + + /* |x| > log(FLT_MAX) or nan */ + k_expo2f(x) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/erf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/erf.rs new file mode 100644 index 000000000..55569affc --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/erf.rs @@ -0,0 +1,318 @@ +use super::{exp, fabs, get_high_word, with_set_low_word}; +/* origin: FreeBSD /usr/src/lib/msun/src/s_erf.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* double erf(double x) + * double erfc(double x) + * x + * 2 |\ + * erf(x) = --------- | exp(-t*t)dt + * sqrt(pi) \| + * 0 + * + * erfc(x) = 1-erf(x) + * Note that + * erf(-x) = -erf(x) + * erfc(-x) = 2 - erfc(x) + * + * Method: + * 1. For |x| in [0, 0.84375] + * erf(x) = x + x*R(x^2) + * erfc(x) = 1 - erf(x) if x in [-.84375,0.25] + * = 0.5 + ((0.5-x)-x*R) if x in [0.25,0.84375] + * where R = P/Q where P is an odd poly of degree 8 and + * Q is an odd poly of degree 10. + * -57.90 + * | R - (erf(x)-x)/x | <= 2 + * + * + * Remark. The formula is derived by noting + * erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....) + * and that + * 2/sqrt(pi) = 1.128379167095512573896158903121545171688 + * is close to one. The interval is chosen because the fix + * point of erf(x) is near 0.6174 (i.e., erf(x)=x when x is + * near 0.6174), and by some experiment, 0.84375 is chosen to + * guarantee the error is less than one ulp for erf. + * + * 2. For |x| in [0.84375,1.25], let s = |x| - 1, and + * c = 0.84506291151 rounded to single (24 bits) + * erf(x) = sign(x) * (c + P1(s)/Q1(s)) + * erfc(x) = (1-c) - P1(s)/Q1(s) if x > 0 + * 1+(c+P1(s)/Q1(s)) if x < 0 + * |P1/Q1 - (erf(|x|)-c)| <= 2**-59.06 + * Remark: here we use the taylor series expansion at x=1. + * erf(1+s) = erf(1) + s*Poly(s) + * = 0.845.. + P1(s)/Q1(s) + * That is, we use rational approximation to approximate + * erf(1+s) - (c = (single)0.84506291151) + * Note that |P1/Q1|< 0.078 for x in [0.84375,1.25] + * where + * P1(s) = degree 6 poly in s + * Q1(s) = degree 6 poly in s + * + * 3. For x in [1.25,1/0.35(~2.857143)], + * erfc(x) = (1/x)*exp(-x*x-0.5625+R1/S1) + * erf(x) = 1 - erfc(x) + * where + * R1(z) = degree 7 poly in z, (z=1/x^2) + * S1(z) = degree 8 poly in z + * + * 4. For x in [1/0.35,28] + * erfc(x) = (1/x)*exp(-x*x-0.5625+R2/S2) if x > 0 + * = 2.0 - (1/x)*exp(-x*x-0.5625+R2/S2) if -6 x >= 28 + * erf(x) = sign(x) *(1 - tiny) (raise inexact) + * erfc(x) = tiny*tiny (raise underflow) if x > 0 + * = 2 - tiny if x<0 + * + * 7. Special case: + * erf(0) = 0, erf(inf) = 1, erf(-inf) = -1, + * erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2, + * erfc/erf(NaN) is NaN + */ + +const ERX: f64 = 8.45062911510467529297e-01; /* 0x3FEB0AC1, 0x60000000 */ +/* + * Coefficients for approximation to erf on [0,0.84375] + */ +const EFX8: f64 = 1.02703333676410069053e+00; /* 0x3FF06EBA, 0x8214DB69 */ +const PP0: f64 = 1.28379167095512558561e-01; /* 0x3FC06EBA, 0x8214DB68 */ +const PP1: f64 = -3.25042107247001499370e-01; /* 0xBFD4CD7D, 0x691CB913 */ +const PP2: f64 = -2.84817495755985104766e-02; /* 0xBF9D2A51, 0xDBD7194F */ +const PP3: f64 = -5.77027029648944159157e-03; /* 0xBF77A291, 0x236668E4 */ +const PP4: f64 = -2.37630166566501626084e-05; /* 0xBEF8EAD6, 0x120016AC */ +const QQ1: f64 = 3.97917223959155352819e-01; /* 0x3FD97779, 0xCDDADC09 */ +const QQ2: f64 = 6.50222499887672944485e-02; /* 0x3FB0A54C, 0x5536CEBA */ +const QQ3: f64 = 5.08130628187576562776e-03; /* 0x3F74D022, 0xC4D36B0F */ +const QQ4: f64 = 1.32494738004321644526e-04; /* 0x3F215DC9, 0x221C1A10 */ +const QQ5: f64 = -3.96022827877536812320e-06; /* 0xBED09C43, 0x42A26120 */ +/* + * Coefficients for approximation to erf in [0.84375,1.25] + */ +const PA0: f64 = -2.36211856075265944077e-03; /* 0xBF6359B8, 0xBEF77538 */ +const PA1: f64 = 4.14856118683748331666e-01; /* 0x3FDA8D00, 0xAD92B34D */ +const PA2: f64 = -3.72207876035701323847e-01; /* 0xBFD7D240, 0xFBB8C3F1 */ +const PA3: f64 = 3.18346619901161753674e-01; /* 0x3FD45FCA, 0x805120E4 */ +const PA4: f64 = -1.10894694282396677476e-01; /* 0xBFBC6398, 0x3D3E28EC */ +const PA5: f64 = 3.54783043256182359371e-02; /* 0x3FA22A36, 0x599795EB */ +const PA6: f64 = -2.16637559486879084300e-03; /* 0xBF61BF38, 0x0A96073F */ +const QA1: f64 = 1.06420880400844228286e-01; /* 0x3FBB3E66, 0x18EEE323 */ +const QA2: f64 = 5.40397917702171048937e-01; /* 0x3FE14AF0, 0x92EB6F33 */ +const QA3: f64 = 7.18286544141962662868e-02; /* 0x3FB2635C, 0xD99FE9A7 */ +const QA4: f64 = 1.26171219808761642112e-01; /* 0x3FC02660, 0xE763351F */ +const QA5: f64 = 1.36370839120290507362e-02; /* 0x3F8BEDC2, 0x6B51DD1C */ +const QA6: f64 = 1.19844998467991074170e-02; /* 0x3F888B54, 0x5735151D */ +/* + * Coefficients for approximation to erfc in [1.25,1/0.35] + */ +const RA0: f64 = -9.86494403484714822705e-03; /* 0xBF843412, 0x600D6435 */ +const RA1: f64 = -6.93858572707181764372e-01; /* 0xBFE63416, 0xE4BA7360 */ +const RA2: f64 = -1.05586262253232909814e+01; /* 0xC0251E04, 0x41B0E726 */ +const RA3: f64 = -6.23753324503260060396e+01; /* 0xC04F300A, 0xE4CBA38D */ +const RA4: f64 = -1.62396669462573470355e+02; /* 0xC0644CB1, 0x84282266 */ +const RA5: f64 = -1.84605092906711035994e+02; /* 0xC067135C, 0xEBCCABB2 */ +const RA6: f64 = -8.12874355063065934246e+01; /* 0xC0545265, 0x57E4D2F2 */ +const RA7: f64 = -9.81432934416914548592e+00; /* 0xC023A0EF, 0xC69AC25C */ +const SA1: f64 = 1.96512716674392571292e+01; /* 0x4033A6B9, 0xBD707687 */ +const SA2: f64 = 1.37657754143519042600e+02; /* 0x4061350C, 0x526AE721 */ +const SA3: f64 = 4.34565877475229228821e+02; /* 0x407B290D, 0xD58A1A71 */ +const SA4: f64 = 6.45387271733267880336e+02; /* 0x40842B19, 0x21EC2868 */ +const SA5: f64 = 4.29008140027567833386e+02; /* 0x407AD021, 0x57700314 */ +const SA6: f64 = 1.08635005541779435134e+02; /* 0x405B28A3, 0xEE48AE2C */ +const SA7: f64 = 6.57024977031928170135e+00; /* 0x401A47EF, 0x8E484A93 */ +const SA8: f64 = -6.04244152148580987438e-02; /* 0xBFAEEFF2, 0xEE749A62 */ +/* + * Coefficients for approximation to erfc in [1/.35,28] + */ +const RB0: f64 = -9.86494292470009928597e-03; /* 0xBF843412, 0x39E86F4A */ +const RB1: f64 = -7.99283237680523006574e-01; /* 0xBFE993BA, 0x70C285DE */ +const RB2: f64 = -1.77579549177547519889e+01; /* 0xC031C209, 0x555F995A */ +const RB3: f64 = -1.60636384855821916062e+02; /* 0xC064145D, 0x43C5ED98 */ +const RB4: f64 = -6.37566443368389627722e+02; /* 0xC083EC88, 0x1375F228 */ +const RB5: f64 = -1.02509513161107724954e+03; /* 0xC0900461, 0x6A2E5992 */ +const RB6: f64 = -4.83519191608651397019e+02; /* 0xC07E384E, 0x9BDC383F */ +const SB1: f64 = 3.03380607434824582924e+01; /* 0x403E568B, 0x261D5190 */ +const SB2: f64 = 3.25792512996573918826e+02; /* 0x40745CAE, 0x221B9F0A */ +const SB3: f64 = 1.53672958608443695994e+03; /* 0x409802EB, 0x189D5118 */ +const SB4: f64 = 3.19985821950859553908e+03; /* 0x40A8FFB7, 0x688C246A */ +const SB5: f64 = 2.55305040643316442583e+03; /* 0x40A3F219, 0xCEDF3BE6 */ +const SB6: f64 = 4.74528541206955367215e+02; /* 0x407DA874, 0xE79FE763 */ +const SB7: f64 = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */ + +fn erfc1(x: f64) -> f64 { + let s: f64; + let p: f64; + let q: f64; + + s = fabs(x) - 1.0; + p = PA0 + s * (PA1 + s * (PA2 + s * (PA3 + s * (PA4 + s * (PA5 + s * PA6))))); + q = 1.0 + s * (QA1 + s * (QA2 + s * (QA3 + s * (QA4 + s * (QA5 + s * QA6))))); + + 1.0 - ERX - p / q +} + +fn erfc2(ix: u32, mut x: f64) -> f64 { + let s: f64; + let r: f64; + let big_s: f64; + let z: f64; + + if ix < 0x3ff40000 { + /* |x| < 1.25 */ + return erfc1(x); + } + + x = fabs(x); + s = 1.0 / (x * x); + if ix < 0x4006db6d { + /* |x| < 1/.35 ~ 2.85714 */ + r = RA0 + s * (RA1 + s * (RA2 + s * (RA3 + s * (RA4 + s * (RA5 + s * (RA6 + s * RA7)))))); + big_s = 1.0 + + s * (SA1 + + s * (SA2 + s * (SA3 + s * (SA4 + s * (SA5 + s * (SA6 + s * (SA7 + s * SA8))))))); + } else { + /* |x| > 1/.35 */ + r = RB0 + s * (RB1 + s * (RB2 + s * (RB3 + s * (RB4 + s * (RB5 + s * RB6))))); + big_s = + 1.0 + s * (SB1 + s * (SB2 + s * (SB3 + s * (SB4 + s * (SB5 + s * (SB6 + s * SB7)))))); + } + z = with_set_low_word(x, 0); + + exp(-z * z - 0.5625) * exp((z - x) * (z + x) + r / big_s) / x +} + +/// Error function (f64) +/// +/// Calculates an approximation to the “error function”, which estimates +/// the probability that an observation will fall within x standard +/// deviations of the mean (assuming a normal distribution). +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn erf(x: f64) -> f64 { + let r: f64; + let s: f64; + let z: f64; + let y: f64; + let mut ix: u32; + let sign: usize; + + ix = get_high_word(x); + sign = (ix >> 31) as usize; + ix &= 0x7fffffff; + if ix >= 0x7ff00000 { + /* erf(nan)=nan, erf(+-inf)=+-1 */ + return 1.0 - 2.0 * (sign as f64) + 1.0 / x; + } + if ix < 0x3feb0000 { + /* |x| < 0.84375 */ + if ix < 0x3e300000 { + /* |x| < 2**-28 */ + /* avoid underflow */ + return 0.125 * (8.0 * x + EFX8 * x); + } + z = x * x; + r = PP0 + z * (PP1 + z * (PP2 + z * (PP3 + z * PP4))); + s = 1.0 + z * (QQ1 + z * (QQ2 + z * (QQ3 + z * (QQ4 + z * QQ5)))); + y = r / s; + return x + x * y; + } + if ix < 0x40180000 { + /* 0.84375 <= |x| < 6 */ + y = 1.0 - erfc2(ix, x); + } else { + let x1p_1022 = f64::from_bits(0x0010000000000000); + y = 1.0 - x1p_1022; + } + + if sign != 0 { + -y + } else { + y + } +} + +/// Complementary error function (f64) +/// +/// Calculates the complementary probability. +/// Is `1 - erf(x)`. Is computed directly, so that you can use it to avoid +/// the loss of precision that would result from subtracting +/// large probabilities (on large `x`) from 1. +pub fn erfc(x: f64) -> f64 { + let r: f64; + let s: f64; + let z: f64; + let y: f64; + let mut ix: u32; + let sign: usize; + + ix = get_high_word(x); + sign = (ix >> 31) as usize; + ix &= 0x7fffffff; + if ix >= 0x7ff00000 { + /* erfc(nan)=nan, erfc(+-inf)=0,2 */ + return 2.0 * (sign as f64) + 1.0 / x; + } + if ix < 0x3feb0000 { + /* |x| < 0.84375 */ + if ix < 0x3c700000 { + /* |x| < 2**-56 */ + return 1.0 - x; + } + z = x * x; + r = PP0 + z * (PP1 + z * (PP2 + z * (PP3 + z * PP4))); + s = 1.0 + z * (QQ1 + z * (QQ2 + z * (QQ3 + z * (QQ4 + z * QQ5)))); + y = r / s; + if sign != 0 || ix < 0x3fd00000 { + /* x < 1/4 */ + return 1.0 - (x + x * y); + } + return 0.5 - (x - 0.5 + x * y); + } + if ix < 0x403c0000 { + /* 0.84375 <= |x| < 28 */ + if sign != 0 { + return 2.0 - erfc2(ix, x); + } else { + return erfc2(ix, x); + } + } + + let x1p_1022 = f64::from_bits(0x0010000000000000); + if sign != 0 { + 2.0 - x1p_1022 + } else { + x1p_1022 * x1p_1022 + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/erff.rs b/src/rust/vendor/compiler_builtins/libm/src/math/erff.rs new file mode 100644 index 000000000..7b25474f6 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/erff.rs @@ -0,0 +1,230 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_erff.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::{expf, fabsf}; + +const ERX: f32 = 8.4506291151e-01; /* 0x3f58560b */ +/* + * Coefficients for approximation to erf on [0,0.84375] + */ +const EFX8: f32 = 1.0270333290e+00; /* 0x3f8375d4 */ +const PP0: f32 = 1.2837916613e-01; /* 0x3e0375d4 */ +const PP1: f32 = -3.2504209876e-01; /* 0xbea66beb */ +const PP2: f32 = -2.8481749818e-02; /* 0xbce9528f */ +const PP3: f32 = -5.7702702470e-03; /* 0xbbbd1489 */ +const PP4: f32 = -2.3763017452e-05; /* 0xb7c756b1 */ +const QQ1: f32 = 3.9791721106e-01; /* 0x3ecbbbce */ +const QQ2: f32 = 6.5022252500e-02; /* 0x3d852a63 */ +const QQ3: f32 = 5.0813062117e-03; /* 0x3ba68116 */ +const QQ4: f32 = 1.3249473704e-04; /* 0x390aee49 */ +const QQ5: f32 = -3.9602282413e-06; /* 0xb684e21a */ +/* + * Coefficients for approximation to erf in [0.84375,1.25] + */ +const PA0: f32 = -2.3621185683e-03; /* 0xbb1acdc6 */ +const PA1: f32 = 4.1485610604e-01; /* 0x3ed46805 */ +const PA2: f32 = -3.7220788002e-01; /* 0xbebe9208 */ +const PA3: f32 = 3.1834661961e-01; /* 0x3ea2fe54 */ +const PA4: f32 = -1.1089469492e-01; /* 0xbde31cc2 */ +const PA5: f32 = 3.5478305072e-02; /* 0x3d1151b3 */ +const PA6: f32 = -2.1663755178e-03; /* 0xbb0df9c0 */ +const QA1: f32 = 1.0642088205e-01; /* 0x3dd9f331 */ +const QA2: f32 = 5.4039794207e-01; /* 0x3f0a5785 */ +const QA3: f32 = 7.1828655899e-02; /* 0x3d931ae7 */ +const QA4: f32 = 1.2617121637e-01; /* 0x3e013307 */ +const QA5: f32 = 1.3637083583e-02; /* 0x3c5f6e13 */ +const QA6: f32 = 1.1984500103e-02; /* 0x3c445aa3 */ +/* + * Coefficients for approximation to erfc in [1.25,1/0.35] + */ +const RA0: f32 = -9.8649440333e-03; /* 0xbc21a093 */ +const RA1: f32 = -6.9385856390e-01; /* 0xbf31a0b7 */ +const RA2: f32 = -1.0558626175e+01; /* 0xc128f022 */ +const RA3: f32 = -6.2375331879e+01; /* 0xc2798057 */ +const RA4: f32 = -1.6239666748e+02; /* 0xc322658c */ +const RA5: f32 = -1.8460508728e+02; /* 0xc3389ae7 */ +const RA6: f32 = -8.1287437439e+01; /* 0xc2a2932b */ +const RA7: f32 = -9.8143291473e+00; /* 0xc11d077e */ +const SA1: f32 = 1.9651271820e+01; /* 0x419d35ce */ +const SA2: f32 = 1.3765776062e+02; /* 0x4309a863 */ +const SA3: f32 = 4.3456588745e+02; /* 0x43d9486f */ +const SA4: f32 = 6.4538726807e+02; /* 0x442158c9 */ +const SA5: f32 = 4.2900814819e+02; /* 0x43d6810b */ +const SA6: f32 = 1.0863500214e+02; /* 0x42d9451f */ +const SA7: f32 = 6.5702495575e+00; /* 0x40d23f7c */ +const SA8: f32 = -6.0424413532e-02; /* 0xbd777f97 */ +/* + * Coefficients for approximation to erfc in [1/.35,28] + */ +const RB0: f32 = -9.8649431020e-03; /* 0xbc21a092 */ +const RB1: f32 = -7.9928326607e-01; /* 0xbf4c9dd4 */ +const RB2: f32 = -1.7757955551e+01; /* 0xc18e104b */ +const RB3: f32 = -1.6063638306e+02; /* 0xc320a2ea */ +const RB4: f32 = -6.3756646729e+02; /* 0xc41f6441 */ +const RB5: f32 = -1.0250950928e+03; /* 0xc480230b */ +const RB6: f32 = -4.8351919556e+02; /* 0xc3f1c275 */ +const SB1: f32 = 3.0338060379e+01; /* 0x41f2b459 */ +const SB2: f32 = 3.2579251099e+02; /* 0x43a2e571 */ +const SB3: f32 = 1.5367296143e+03; /* 0x44c01759 */ +const SB4: f32 = 3.1998581543e+03; /* 0x4547fdbb */ +const SB5: f32 = 2.5530502930e+03; /* 0x451f90ce */ +const SB6: f32 = 4.7452853394e+02; /* 0x43ed43a7 */ +const SB7: f32 = -2.2440952301e+01; /* 0xc1b38712 */ + +fn erfc1(x: f32) -> f32 { + let s: f32; + let p: f32; + let q: f32; + + s = fabsf(x) - 1.0; + p = PA0 + s * (PA1 + s * (PA2 + s * (PA3 + s * (PA4 + s * (PA5 + s * PA6))))); + q = 1.0 + s * (QA1 + s * (QA2 + s * (QA3 + s * (QA4 + s * (QA5 + s * QA6))))); + return 1.0 - ERX - p / q; +} + +fn erfc2(mut ix: u32, mut x: f32) -> f32 { + let s: f32; + let r: f32; + let big_s: f32; + let z: f32; + + if ix < 0x3fa00000 { + /* |x| < 1.25 */ + return erfc1(x); + } + + x = fabsf(x); + s = 1.0 / (x * x); + if ix < 0x4036db6d { + /* |x| < 1/0.35 */ + r = RA0 + s * (RA1 + s * (RA2 + s * (RA3 + s * (RA4 + s * (RA5 + s * (RA6 + s * RA7)))))); + big_s = 1.0 + + s * (SA1 + + s * (SA2 + s * (SA3 + s * (SA4 + s * (SA5 + s * (SA6 + s * (SA7 + s * SA8))))))); + } else { + /* |x| >= 1/0.35 */ + r = RB0 + s * (RB1 + s * (RB2 + s * (RB3 + s * (RB4 + s * (RB5 + s * RB6))))); + big_s = + 1.0 + s * (SB1 + s * (SB2 + s * (SB3 + s * (SB4 + s * (SB5 + s * (SB6 + s * SB7)))))); + } + ix = x.to_bits(); + z = f32::from_bits(ix & 0xffffe000); + + expf(-z * z - 0.5625) * expf((z - x) * (z + x) + r / big_s) / x +} + +/// Error function (f32) +/// +/// Calculates an approximation to the “error function”, which estimates +/// the probability that an observation will fall within x standard +/// deviations of the mean (assuming a normal distribution). +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn erff(x: f32) -> f32 { + let r: f32; + let s: f32; + let z: f32; + let y: f32; + let mut ix: u32; + let sign: usize; + + ix = x.to_bits(); + sign = (ix >> 31) as usize; + ix &= 0x7fffffff; + if ix >= 0x7f800000 { + /* erf(nan)=nan, erf(+-inf)=+-1 */ + return 1.0 - 2.0 * (sign as f32) + 1.0 / x; + } + if ix < 0x3f580000 { + /* |x| < 0.84375 */ + if ix < 0x31800000 { + /* |x| < 2**-28 */ + /*avoid underflow */ + return 0.125 * (8.0 * x + EFX8 * x); + } + z = x * x; + r = PP0 + z * (PP1 + z * (PP2 + z * (PP3 + z * PP4))); + s = 1.0 + z * (QQ1 + z * (QQ2 + z * (QQ3 + z * (QQ4 + z * QQ5)))); + y = r / s; + return x + x * y; + } + if ix < 0x40c00000 { + /* |x| < 6 */ + y = 1.0 - erfc2(ix, x); + } else { + let x1p_120 = f32::from_bits(0x03800000); + y = 1.0 - x1p_120; + } + + if sign != 0 { + -y + } else { + y + } +} + +/// Complementary error function (f32) +/// +/// Calculates the complementary probability. +/// Is `1 - erf(x)`. Is computed directly, so that you can use it to avoid +/// the loss of precision that would result from subtracting +/// large probabilities (on large `x`) from 1. +pub fn erfcf(x: f32) -> f32 { + let r: f32; + let s: f32; + let z: f32; + let y: f32; + let mut ix: u32; + let sign: usize; + + ix = x.to_bits(); + sign = (ix >> 31) as usize; + ix &= 0x7fffffff; + if ix >= 0x7f800000 { + /* erfc(nan)=nan, erfc(+-inf)=0,2 */ + return 2.0 * (sign as f32) + 1.0 / x; + } + + if ix < 0x3f580000 { + /* |x| < 0.84375 */ + if ix < 0x23800000 { + /* |x| < 2**-56 */ + return 1.0 - x; + } + z = x * x; + r = PP0 + z * (PP1 + z * (PP2 + z * (PP3 + z * PP4))); + s = 1.0 + z * (QQ1 + z * (QQ2 + z * (QQ3 + z * (QQ4 + z * QQ5)))); + y = r / s; + if sign != 0 || ix < 0x3e800000 { + /* x < 1/4 */ + return 1.0 - (x + x * y); + } + return 0.5 - (x - 0.5 + x * y); + } + if ix < 0x41e00000 { + /* |x| < 28 */ + if sign != 0 { + return 2.0 - erfc2(ix, x); + } else { + return erfc2(ix, x); + } + } + + let x1p_120 = f32::from_bits(0x03800000); + if sign != 0 { + 2.0 - x1p_120 + } else { + x1p_120 * x1p_120 + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/exp.rs b/src/rust/vendor/compiler_builtins/libm/src/math/exp.rs new file mode 100644 index 000000000..d4994277f --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/exp.rs @@ -0,0 +1,154 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_exp.c */ +/* + * ==================================================== + * Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* exp(x) + * Returns the exponential of x. + * + * Method + * 1. Argument reduction: + * Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658. + * Given x, find r and integer k such that + * + * x = k*ln2 + r, |r| <= 0.5*ln2. + * + * Here r will be represented as r = hi-lo for better + * accuracy. + * + * 2. Approximation of exp(r) by a special rational function on + * the interval [0,0.34658]: + * Write + * R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ... + * We use a special Remez algorithm on [0,0.34658] to generate + * a polynomial of degree 5 to approximate R. The maximum error + * of this polynomial approximation is bounded by 2**-59. In + * other words, + * R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5 + * (where z=r*r, and the values of P1 to P5 are listed below) + * and + * | 5 | -59 + * | 2.0+P1*z+...+P5*z - R(z) | <= 2 + * | | + * The computation of exp(r) thus becomes + * 2*r + * exp(r) = 1 + ---------- + * R(r) - r + * r*c(r) + * = 1 + r + ----------- (for better accuracy) + * 2 - c(r) + * where + * 2 4 10 + * c(r) = r - (P1*r + P2*r + ... + P5*r ). + * + * 3. Scale back to obtain exp(x): + * From step 1, we have + * exp(x) = 2^k * exp(r) + * + * Special cases: + * exp(INF) is INF, exp(NaN) is NaN; + * exp(-INF) is 0, and + * for finite argument, only exp(0)=1 is exact. + * + * Accuracy: + * according to an error analysis, the error is always less than + * 1 ulp (unit in the last place). + * + * Misc. info. + * For IEEE double + * if x > 709.782712893383973096 then exp(x) overflows + * if x < -745.133219101941108420 then exp(x) underflows + */ + +use super::scalbn; + +const HALF: [f64; 2] = [0.5, -0.5]; +const LN2HI: f64 = 6.93147180369123816490e-01; /* 0x3fe62e42, 0xfee00000 */ +const LN2LO: f64 = 1.90821492927058770002e-10; /* 0x3dea39ef, 0x35793c76 */ +const INVLN2: f64 = 1.44269504088896338700e+00; /* 0x3ff71547, 0x652b82fe */ +const P1: f64 = 1.66666666666666019037e-01; /* 0x3FC55555, 0x5555553E */ +const P2: f64 = -2.77777777770155933842e-03; /* 0xBF66C16C, 0x16BEBD93 */ +const P3: f64 = 6.61375632143793436117e-05; /* 0x3F11566A, 0xAF25DE2C */ +const P4: f64 = -1.65339022054652515390e-06; /* 0xBEBBBD41, 0xC5D26BF1 */ +const P5: f64 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */ + +/// Exponential, base *e* (f64) +/// +/// Calculate the exponential of `x`, that is, *e* raised to the power `x` +/// (where *e* is the base of the natural system of logarithms, approximately 2.71828). +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn exp(mut x: f64) -> f64 { + let x1p1023 = f64::from_bits(0x7fe0000000000000); // 0x1p1023 === 2 ^ 1023 + let x1p_149 = f64::from_bits(0x36a0000000000000); // 0x1p-149 === 2 ^ -149 + + let hi: f64; + let lo: f64; + let c: f64; + let xx: f64; + let y: f64; + let k: i32; + let sign: i32; + let mut hx: u32; + + hx = (x.to_bits() >> 32) as u32; + sign = (hx >> 31) as i32; + hx &= 0x7fffffff; /* high word of |x| */ + + /* special cases */ + if hx >= 0x4086232b { + /* if |x| >= 708.39... */ + if x.is_nan() { + return x; + } + if x > 709.782712893383973096 { + /* overflow if x!=inf */ + x *= x1p1023; + return x; + } + if x < -708.39641853226410622 { + /* underflow if x!=-inf */ + force_eval!((-x1p_149 / x) as f32); + if x < -745.13321910194110842 { + return 0.; + } + } + } + + /* argument reduction */ + if hx > 0x3fd62e42 { + /* if |x| > 0.5 ln2 */ + if hx >= 0x3ff0a2b2 { + /* if |x| >= 1.5 ln2 */ + k = (INVLN2 * x + i!(HALF, sign as usize)) as i32; + } else { + k = 1 - sign - sign; + } + hi = x - k as f64 * LN2HI; /* k*ln2hi is exact here */ + lo = k as f64 * LN2LO; + x = hi - lo; + } else if hx > 0x3e300000 { + /* if |x| > 2**-28 */ + k = 0; + hi = x; + lo = 0.; + } else { + /* inexact if x!=0 */ + force_eval!(x1p1023 + x); + return 1. + x; + } + + /* x is now in primary range */ + xx = x * x; + c = x - xx * (P1 + xx * (P2 + xx * (P3 + xx * (P4 + xx * P5)))); + y = 1. + (x * c / (2. - c) - lo + hi); + if k == 0 { + y + } else { + scalbn(y, k) + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/exp10.rs b/src/rust/vendor/compiler_builtins/libm/src/math/exp10.rs new file mode 100644 index 000000000..559930e10 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/exp10.rs @@ -0,0 +1,22 @@ +use super::{exp2, modf, pow}; + +const LN10: f64 = 3.32192809488736234787031942948939; +const P10: &[f64] = &[ + 1e-15, 1e-14, 1e-13, 1e-12, 1e-11, 1e-10, 1e-9, 1e-8, 1e-7, 1e-6, 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, + 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, +]; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn exp10(x: f64) -> f64 { + let (mut y, n) = modf(x); + let u: u64 = n.to_bits(); + /* fabs(n) < 16 without raising invalid on nan */ + if (u >> 52 & 0x7ff) < 0x3ff + 4 { + if y == 0.0 { + return i!(P10, ((n as isize) + 15) as usize); + } + y = exp2(LN10 * y); + return y * i!(P10, ((n as isize) + 15) as usize); + } + return pow(10.0, x); +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/exp10f.rs b/src/rust/vendor/compiler_builtins/libm/src/math/exp10f.rs new file mode 100644 index 000000000..1279bc6c5 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/exp10f.rs @@ -0,0 +1,22 @@ +use super::{exp2, exp2f, modff}; + +const LN10_F32: f32 = 3.32192809488736234787031942948939; +const LN10_F64: f64 = 3.32192809488736234787031942948939; +const P10: &[f32] = &[ + 1e-7, 1e-6, 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, +]; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn exp10f(x: f32) -> f32 { + let (mut y, n) = modff(x); + let u = n.to_bits(); + /* fabsf(n) < 8 without raising invalid on nan */ + if (u >> 23 & 0xff) < 0x7f + 3 { + if y == 0.0 { + return i!(P10, ((n as isize) + 7) as usize); + } + y = exp2f(LN10_F32 * y); + return y * i!(P10, ((n as isize) + 7) as usize); + } + return exp2(LN10_F64 * (x as f64)) as f32; +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/exp2.rs b/src/rust/vendor/compiler_builtins/libm/src/math/exp2.rs new file mode 100644 index 000000000..e0e385df2 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/exp2.rs @@ -0,0 +1,394 @@ +// origin: FreeBSD /usr/src/lib/msun/src/s_exp2.c */ +//- +// Copyright (c) 2005 David Schultz +// 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. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. + +use super::scalbn; + +const TBLSIZE: usize = 256; + +#[cfg_attr(rustfmt, rustfmt_skip)] +static TBL: [u64; TBLSIZE * 2] = [ + // exp2(z + eps) eps + 0x3fe6a09e667f3d5d, 0x3d39880000000000, + 0x3fe6b052fa751744, 0x3cd8000000000000, + 0x3fe6c012750bd9fe, 0xbd28780000000000, + 0x3fe6cfdcddd476bf, 0x3d1ec00000000000, + 0x3fe6dfb23c651a29, 0xbcd8000000000000, + 0x3fe6ef9298593ae3, 0xbcbc000000000000, + 0x3fe6ff7df9519386, 0xbd2fd80000000000, + 0x3fe70f7466f42da3, 0xbd2c880000000000, + 0x3fe71f75e8ec5fc3, 0x3d13c00000000000, + 0x3fe72f8286eacf05, 0xbd38300000000000, + 0x3fe73f9a48a58152, 0xbd00c00000000000, + 0x3fe74fbd35d7ccfc, 0x3d2f880000000000, + 0x3fe75feb564267f1, 0x3d03e00000000000, + 0x3fe77024b1ab6d48, 0xbd27d00000000000, + 0x3fe780694fde5d38, 0xbcdd000000000000, + 0x3fe790b938ac1d00, 0x3ce3000000000000, + 0x3fe7a11473eb0178, 0xbced000000000000, + 0x3fe7b17b0976d060, 0x3d20400000000000, + 0x3fe7c1ed0130c133, 0x3ca0000000000000, + 0x3fe7d26a62ff8636, 0xbd26900000000000, + 0x3fe7e2f336cf4e3b, 0xbd02e00000000000, + 0x3fe7f3878491c3e8, 0xbd24580000000000, + 0x3fe80427543e1b4e, 0x3d33000000000000, + 0x3fe814d2add1071a, 0x3d0f000000000000, + 0x3fe82589994ccd7e, 0xbd21c00000000000, + 0x3fe8364c1eb942d0, 0x3d29d00000000000, + 0x3fe8471a4623cab5, 0x3d47100000000000, + 0x3fe857f4179f5bbc, 0x3d22600000000000, + 0x3fe868d99b4491af, 0xbd32c40000000000, + 0x3fe879cad931a395, 0xbd23000000000000, + 0x3fe88ac7d98a65b8, 0xbd2a800000000000, + 0x3fe89bd0a4785800, 0xbced000000000000, + 0x3fe8ace5422aa223, 0x3d33280000000000, + 0x3fe8be05bad619fa, 0x3d42b40000000000, + 0x3fe8cf3216b54383, 0xbd2ed00000000000, + 0x3fe8e06a5e08664c, 0xbd20500000000000, + 0x3fe8f1ae99157807, 0x3d28280000000000, + 0x3fe902fed0282c0e, 0xbd1cb00000000000, + 0x3fe9145b0b91ff96, 0xbd05e00000000000, + 0x3fe925c353aa2ff9, 0x3cf5400000000000, + 0x3fe93737b0cdc64a, 0x3d17200000000000, + 0x3fe948b82b5f98ae, 0xbd09000000000000, + 0x3fe95a44cbc852cb, 0x3d25680000000000, + 0x3fe96bdd9a766f21, 0xbd36d00000000000, + 0x3fe97d829fde4e2a, 0xbd01000000000000, + 0x3fe98f33e47a23a3, 0x3d2d000000000000, + 0x3fe9a0f170ca0604, 0xbd38a40000000000, + 0x3fe9b2bb4d53ff89, 0x3d355c0000000000, + 0x3fe9c49182a3f15b, 0x3d26b80000000000, + 0x3fe9d674194bb8c5, 0xbcec000000000000, + 0x3fe9e86319e3238e, 0x3d17d00000000000, + 0x3fe9fa5e8d07f302, 0x3d16400000000000, + 0x3fea0c667b5de54d, 0xbcf5000000000000, + 0x3fea1e7aed8eb8f6, 0x3d09e00000000000, + 0x3fea309bec4a2e27, 0x3d2ad80000000000, + 0x3fea42c980460a5d, 0xbd1af00000000000, + 0x3fea5503b23e259b, 0x3d0b600000000000, + 0x3fea674a8af46213, 0x3d38880000000000, + 0x3fea799e1330b3a7, 0x3d11200000000000, + 0x3fea8bfe53c12e8d, 0x3d06c00000000000, + 0x3fea9e6b5579fcd2, 0xbd29b80000000000, + 0x3feab0e521356fb8, 0x3d2b700000000000, + 0x3feac36bbfd3f381, 0x3cd9000000000000, + 0x3fead5ff3a3c2780, 0x3ce4000000000000, + 0x3feae89f995ad2a3, 0xbd2c900000000000, + 0x3feafb4ce622f367, 0x3d16500000000000, + 0x3feb0e07298db790, 0x3d2fd40000000000, + 0x3feb20ce6c9a89a9, 0x3d12700000000000, + 0x3feb33a2b84f1a4b, 0x3d4d470000000000, + 0x3feb468415b747e7, 0xbd38380000000000, + 0x3feb59728de5593a, 0x3c98000000000000, + 0x3feb6c6e29f1c56a, 0x3d0ad00000000000, + 0x3feb7f76f2fb5e50, 0x3cde800000000000, + 0x3feb928cf22749b2, 0xbd04c00000000000, + 0x3feba5b030a10603, 0xbd0d700000000000, + 0x3febb8e0b79a6f66, 0x3d0d900000000000, + 0x3febcc1e904bc1ff, 0x3d02a00000000000, + 0x3febdf69c3f3a16f, 0xbd1f780000000000, + 0x3febf2c25bd71db8, 0xbd10a00000000000, + 0x3fec06286141b2e9, 0xbd11400000000000, + 0x3fec199bdd8552e0, 0x3d0be00000000000, + 0x3fec2d1cd9fa64ee, 0xbd09400000000000, + 0x3fec40ab5fffd02f, 0xbd0ed00000000000, + 0x3fec544778fafd15, 0x3d39660000000000, + 0x3fec67f12e57d0cb, 0xbd1a100000000000, + 0x3fec7ba88988c1b6, 0xbd58458000000000, + 0x3fec8f6d9406e733, 0xbd1a480000000000, + 0x3feca3405751c4df, 0x3ccb000000000000, + 0x3fecb720dcef9094, 0x3d01400000000000, + 0x3feccb0f2e6d1689, 0x3cf0200000000000, + 0x3fecdf0b555dc412, 0x3cf3600000000000, + 0x3fecf3155b5bab3b, 0xbd06900000000000, + 0x3fed072d4a0789bc, 0x3d09a00000000000, + 0x3fed1b532b08c8fa, 0xbd15e00000000000, + 0x3fed2f87080d8a85, 0x3d1d280000000000, + 0x3fed43c8eacaa203, 0x3d01a00000000000, + 0x3fed5818dcfba491, 0x3cdf000000000000, + 0x3fed6c76e862e6a1, 0xbd03a00000000000, + 0x3fed80e316c9834e, 0xbd0cd80000000000, + 0x3fed955d71ff6090, 0x3cf4c00000000000, + 0x3feda9e603db32ae, 0x3cff900000000000, + 0x3fedbe7cd63a8325, 0x3ce9800000000000, + 0x3fedd321f301b445, 0xbcf5200000000000, + 0x3fede7d5641c05bf, 0xbd1d700000000000, + 0x3fedfc97337b9aec, 0xbd16140000000000, + 0x3fee11676b197d5e, 0x3d0b480000000000, + 0x3fee264614f5a3e7, 0x3d40ce0000000000, + 0x3fee3b333b16ee5c, 0x3d0c680000000000, + 0x3fee502ee78b3fb4, 0xbd09300000000000, + 0x3fee653924676d68, 0xbce5000000000000, + 0x3fee7a51fbc74c44, 0xbd07f80000000000, + 0x3fee8f7977cdb726, 0xbcf3700000000000, + 0x3feea4afa2a490e8, 0x3ce5d00000000000, + 0x3feeb9f4867ccae4, 0x3d161a0000000000, + 0x3feecf482d8e680d, 0x3cf5500000000000, + 0x3feee4aaa2188514, 0x3cc6400000000000, + 0x3feefa1bee615a13, 0xbcee800000000000, + 0x3fef0f9c1cb64106, 0xbcfa880000000000, + 0x3fef252b376bb963, 0xbd2c900000000000, + 0x3fef3ac948dd7275, 0x3caa000000000000, + 0x3fef50765b6e4524, 0xbcf4f00000000000, + 0x3fef6632798844fd, 0x3cca800000000000, + 0x3fef7bfdad9cbe38, 0x3cfabc0000000000, + 0x3fef91d802243c82, 0xbcd4600000000000, + 0x3fefa7c1819e908e, 0xbd0b0c0000000000, + 0x3fefbdba3692d511, 0xbcc0e00000000000, + 0x3fefd3c22b8f7194, 0xbd10de8000000000, + 0x3fefe9d96b2a23ee, 0x3cee430000000000, + 0x3ff0000000000000, 0x0, + 0x3ff00b1afa5abcbe, 0xbcb3400000000000, + 0x3ff0163da9fb3303, 0xbd12170000000000, + 0x3ff02168143b0282, 0x3cba400000000000, + 0x3ff02c9a3e77806c, 0x3cef980000000000, + 0x3ff037d42e11bbca, 0xbcc7400000000000, + 0x3ff04315e86e7f89, 0x3cd8300000000000, + 0x3ff04e5f72f65467, 0xbd1a3f0000000000, + 0x3ff059b0d315855a, 0xbd02840000000000, + 0x3ff0650a0e3c1f95, 0x3cf1600000000000, + 0x3ff0706b29ddf71a, 0x3d15240000000000, + 0x3ff07bd42b72a82d, 0xbce9a00000000000, + 0x3ff0874518759bd0, 0x3ce6400000000000, + 0x3ff092bdf66607c8, 0xbd00780000000000, + 0x3ff09e3ecac6f383, 0xbc98000000000000, + 0x3ff0a9c79b1f3930, 0x3cffa00000000000, + 0x3ff0b5586cf988fc, 0xbcfac80000000000, + 0x3ff0c0f145e46c8a, 0x3cd9c00000000000, + 0x3ff0cc922b724816, 0x3d05200000000000, + 0x3ff0d83b23395dd8, 0xbcfad00000000000, + 0x3ff0e3ec32d3d1f3, 0x3d1bac0000000000, + 0x3ff0efa55fdfa9a6, 0xbd04e80000000000, + 0x3ff0fb66affed2f0, 0xbd0d300000000000, + 0x3ff1073028d7234b, 0x3cf1500000000000, + 0x3ff11301d0125b5b, 0x3cec000000000000, + 0x3ff11edbab5e2af9, 0x3d16bc0000000000, + 0x3ff12abdc06c31d5, 0x3ce8400000000000, + 0x3ff136a814f2047d, 0xbd0ed00000000000, + 0x3ff1429aaea92de9, 0x3ce8e00000000000, + 0x3ff14e95934f3138, 0x3ceb400000000000, + 0x3ff15a98c8a58e71, 0x3d05300000000000, + 0x3ff166a45471c3df, 0x3d03380000000000, + 0x3ff172b83c7d5211, 0x3d28d40000000000, + 0x3ff17ed48695bb9f, 0xbd05d00000000000, + 0x3ff18af9388c8d93, 0xbd1c880000000000, + 0x3ff1972658375d66, 0x3d11f00000000000, + 0x3ff1a35beb6fcba7, 0x3d10480000000000, + 0x3ff1af99f81387e3, 0xbd47390000000000, + 0x3ff1bbe084045d54, 0x3d24e40000000000, + 0x3ff1c82f95281c43, 0xbd0a200000000000, + 0x3ff1d4873168b9b2, 0x3ce3800000000000, + 0x3ff1e0e75eb44031, 0x3ceac00000000000, + 0x3ff1ed5022fcd938, 0x3d01900000000000, + 0x3ff1f9c18438cdf7, 0xbd1b780000000000, + 0x3ff2063b88628d8f, 0x3d2d940000000000, + 0x3ff212be3578a81e, 0x3cd8000000000000, + 0x3ff21f49917ddd41, 0x3d2b340000000000, + 0x3ff22bdda2791323, 0x3d19f80000000000, + 0x3ff2387a6e7561e7, 0xbd19c80000000000, + 0x3ff2451ffb821427, 0x3d02300000000000, + 0x3ff251ce4fb2a602, 0xbd13480000000000, + 0x3ff25e85711eceb0, 0x3d12700000000000, + 0x3ff26b4565e27d16, 0x3d11d00000000000, + 0x3ff2780e341de00f, 0x3d31ee0000000000, + 0x3ff284dfe1f5633e, 0xbd14c00000000000, + 0x3ff291ba7591bb30, 0xbd13d80000000000, + 0x3ff29e9df51fdf09, 0x3d08b00000000000, + 0x3ff2ab8a66d10e9b, 0xbd227c0000000000, + 0x3ff2b87fd0dada3a, 0x3d2a340000000000, + 0x3ff2c57e39771af9, 0xbd10800000000000, + 0x3ff2d285a6e402d9, 0xbd0ed00000000000, + 0x3ff2df961f641579, 0xbcf4200000000000, + 0x3ff2ecafa93e2ecf, 0xbd24980000000000, + 0x3ff2f9d24abd8822, 0xbd16300000000000, + 0x3ff306fe0a31b625, 0xbd32360000000000, + 0x3ff31432edeea50b, 0xbd70df8000000000, + 0x3ff32170fc4cd7b8, 0xbd22480000000000, + 0x3ff32eb83ba8e9a2, 0xbd25980000000000, + 0x3ff33c08b2641766, 0x3d1ed00000000000, + 0x3ff3496266e3fa27, 0xbcdc000000000000, + 0x3ff356c55f929f0f, 0xbd30d80000000000, + 0x3ff36431a2de88b9, 0x3d22c80000000000, + 0x3ff371a7373aaa39, 0x3d20600000000000, + 0x3ff37f26231e74fe, 0xbd16600000000000, + 0x3ff38cae6d05d838, 0xbd0ae00000000000, + 0x3ff39a401b713ec3, 0xbd44720000000000, + 0x3ff3a7db34e5a020, 0x3d08200000000000, + 0x3ff3b57fbfec6e95, 0x3d3e800000000000, + 0x3ff3c32dc313a8f2, 0x3cef800000000000, + 0x3ff3d0e544ede122, 0xbd17a00000000000, + 0x3ff3dea64c1234bb, 0x3d26300000000000, + 0x3ff3ec70df1c4ecc, 0xbd48a60000000000, + 0x3ff3fa4504ac7e8c, 0xbd3cdc0000000000, + 0x3ff40822c367a0bb, 0x3d25b80000000000, + 0x3ff4160a21f72e95, 0x3d1ec00000000000, + 0x3ff423fb27094646, 0xbd13600000000000, + 0x3ff431f5d950a920, 0x3d23980000000000, + 0x3ff43ffa3f84b9eb, 0x3cfa000000000000, + 0x3ff44e0860618919, 0xbcf6c00000000000, + 0x3ff45c2042a7d201, 0xbd0bc00000000000, + 0x3ff46a41ed1d0016, 0xbd12800000000000, + 0x3ff4786d668b3326, 0x3d30e00000000000, + 0x3ff486a2b5c13c00, 0xbd2d400000000000, + 0x3ff494e1e192af04, 0x3d0c200000000000, + 0x3ff4a32af0d7d372, 0xbd1e500000000000, + 0x3ff4b17dea6db801, 0x3d07800000000000, + 0x3ff4bfdad53629e1, 0xbd13800000000000, + 0x3ff4ce41b817c132, 0x3d00800000000000, + 0x3ff4dcb299fddddb, 0x3d2c700000000000, + 0x3ff4eb2d81d8ab96, 0xbd1ce00000000000, + 0x3ff4f9b2769d2d02, 0x3d19200000000000, + 0x3ff508417f4531c1, 0xbd08c00000000000, + 0x3ff516daa2cf662a, 0xbcfa000000000000, + 0x3ff5257de83f51ea, 0x3d4a080000000000, + 0x3ff5342b569d4eda, 0xbd26d80000000000, + 0x3ff542e2f4f6ac1a, 0xbd32440000000000, + 0x3ff551a4ca5d94db, 0x3d483c0000000000, + 0x3ff56070dde9116b, 0x3d24b00000000000, + 0x3ff56f4736b529de, 0x3d415a0000000000, + 0x3ff57e27dbe2c40e, 0xbd29e00000000000, + 0x3ff58d12d497c76f, 0xbd23080000000000, + 0x3ff59c0827ff0b4c, 0x3d4dec0000000000, + 0x3ff5ab07dd485427, 0xbcc4000000000000, + 0x3ff5ba11fba87af4, 0x3d30080000000000, + 0x3ff5c9268a59460b, 0xbd26c80000000000, + 0x3ff5d84590998e3f, 0x3d469a0000000000, + 0x3ff5e76f15ad20e1, 0xbd1b400000000000, + 0x3ff5f6a320dcebca, 0x3d17700000000000, + 0x3ff605e1b976dcb8, 0x3d26f80000000000, + 0x3ff6152ae6cdf715, 0x3d01000000000000, + 0x3ff6247eb03a5531, 0xbd15d00000000000, + 0x3ff633dd1d1929b5, 0xbd12d00000000000, + 0x3ff6434634ccc313, 0xbcea800000000000, + 0x3ff652b9febc8efa, 0xbd28600000000000, + 0x3ff6623882553397, 0x3d71fe0000000000, + 0x3ff671c1c708328e, 0xbd37200000000000, + 0x3ff68155d44ca97e, 0x3ce6800000000000, + 0x3ff690f4b19e9471, 0xbd29780000000000, +]; + +// exp2(x): compute the base 2 exponential of x +// +// Accuracy: Peak error < 0.503 ulp for normalized results. +// +// Method: (accurate tables) +// +// Reduce x: +// x = k + y, for integer k and |y| <= 1/2. +// Thus we have exp2(x) = 2**k * exp2(y). +// +// Reduce y: +// y = i/TBLSIZE + z - eps[i] for integer i near y * TBLSIZE. +// Thus we have exp2(y) = exp2(i/TBLSIZE) * exp2(z - eps[i]), +// with |z - eps[i]| <= 2**-9 + 2**-39 for the table used. +// +// We compute exp2(i/TBLSIZE) via table lookup and exp2(z - eps[i]) via +// a degree-5 minimax polynomial with maximum error under 1.3 * 2**-61. +// The values in exp2t[] and eps[] are chosen such that +// exp2t[i] = exp2(i/TBLSIZE + eps[i]), and eps[i] is a small offset such +// that exp2t[i] is accurate to 2**-64. +// +// Note that the range of i is +-TBLSIZE/2, so we actually index the tables +// by i0 = i + TBLSIZE/2. For cache efficiency, exp2t[] and eps[] are +// virtual tables, interleaved in the real table tbl[]. +// +// This method is due to Gal, with many details due to Gal and Bachelis: +// +// Gal, S. and Bachelis, B. An Accurate Elementary Mathematical Library +// for the IEEE Floating Point Standard. TOMS 17(1), 26-46 (1991). + +/// Exponential, base 2 (f64) +/// +/// Calculate `2^x`, that is, 2 raised to the power `x`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn exp2(mut x: f64) -> f64 { + let redux = f64::from_bits(0x4338000000000000) / TBLSIZE as f64; + let p1 = f64::from_bits(0x3fe62e42fefa39ef); + let p2 = f64::from_bits(0x3fcebfbdff82c575); + let p3 = f64::from_bits(0x3fac6b08d704a0a6); + let p4 = f64::from_bits(0x3f83b2ab88f70400); + let p5 = f64::from_bits(0x3f55d88003875c74); + + // double_t r, t, z; + // uint32_t ix, i0; + // union {double f; uint64_t i;} u = {x}; + // union {uint32_t u; int32_t i;} k; + let x1p1023 = f64::from_bits(0x7fe0000000000000); + let x1p52 = f64::from_bits(0x4330000000000000); + let _0x1p_149 = f64::from_bits(0xb6a0000000000000); + + /* Filter out exceptional cases. */ + let ui = f64::to_bits(x); + let ix = ui >> 32 & 0x7fffffff; + if ix >= 0x408ff000 { + /* |x| >= 1022 or nan */ + if ix >= 0x40900000 && ui >> 63 == 0 { + /* x >= 1024 or nan */ + /* overflow */ + x *= x1p1023; + return x; + } + if ix >= 0x7ff00000 { + /* -inf or -nan */ + return -1.0 / x; + } + if ui >> 63 != 0 { + /* x <= -1022 */ + /* underflow */ + if x <= -1075.0 || x - x1p52 + x1p52 != x { + force_eval!((_0x1p_149 / x) as f32); + } + if x <= -1075.0 { + return 0.0; + } + } + } else if ix < 0x3c900000 { + /* |x| < 0x1p-54 */ + return 1.0 + x; + } + + /* Reduce x, computing z, i0, and k. */ + let ui = f64::to_bits(x + redux); + let mut i0 = ui as u32; + i0 = i0.wrapping_add(TBLSIZE as u32 / 2); + let ku = i0 / TBLSIZE as u32 * TBLSIZE as u32; + let ki = div!(ku as i32, TBLSIZE as i32); + i0 %= TBLSIZE as u32; + let uf = f64::from_bits(ui) - redux; + let mut z = x - uf; + + /* Compute r = exp2(y) = exp2t[i0] * p(z - eps[i]). */ + let t = f64::from_bits(i!(TBL, 2 * i0 as usize)); /* exp2t[i0] */ + z -= f64::from_bits(i!(TBL, 2 * i0 as usize + 1)); /* eps[i0] */ + let r = t + t * z * (p1 + z * (p2 + z * (p3 + z * (p4 + z * p5)))); + + scalbn(r, ki) +} + +#[test] +fn i0_wrap_test() { + let x = -3.0 / 256.0; + assert_eq!(exp2(x), f64::from_bits(0x3fefbdba3692d514)); +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/exp2f.rs b/src/rust/vendor/compiler_builtins/libm/src/math/exp2f.rs new file mode 100644 index 000000000..f4867b80e --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/exp2f.rs @@ -0,0 +1,135 @@ +// origin: FreeBSD /usr/src/lib/msun/src/s_exp2f.c +//- +// Copyright (c) 2005 David Schultz +// 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. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. + +const TBLSIZE: usize = 16; + +static EXP2FT: [u64; TBLSIZE] = [ + 0x3fe6a09e667f3bcd, + 0x3fe7a11473eb0187, + 0x3fe8ace5422aa0db, + 0x3fe9c49182a3f090, + 0x3feae89f995ad3ad, + 0x3fec199bdd85529c, + 0x3fed5818dcfba487, + 0x3feea4afa2a490da, + 0x3ff0000000000000, + 0x3ff0b5586cf9890f, + 0x3ff172b83c7d517b, + 0x3ff2387a6e756238, + 0x3ff306fe0a31b715, + 0x3ff3dea64c123422, + 0x3ff4bfdad5362a27, + 0x3ff5ab07dd485429, +]; + +// exp2f(x): compute the base 2 exponential of x +// +// Accuracy: Peak error < 0.501 ulp; location of peak: -0.030110927. +// +// Method: (equally-spaced tables) +// +// Reduce x: +// x = k + y, for integer k and |y| <= 1/2. +// Thus we have exp2f(x) = 2**k * exp2(y). +// +// Reduce y: +// y = i/TBLSIZE + z for integer i near y * TBLSIZE. +// Thus we have exp2(y) = exp2(i/TBLSIZE) * exp2(z), +// with |z| <= 2**-(TBLSIZE+1). +// +// We compute exp2(i/TBLSIZE) via table lookup and exp2(z) via a +// degree-4 minimax polynomial with maximum error under 1.4 * 2**-33. +// Using double precision for everything except the reduction makes +// roundoff error insignificant and simplifies the scaling step. +// +// This method is due to Tang, but I do not use his suggested parameters: +// +// Tang, P. Table-driven Implementation of the Exponential Function +// in IEEE Floating-Point Arithmetic. TOMS 15(2), 144-157 (1989). + +/// Exponential, base 2 (f32) +/// +/// Calculate `2^x`, that is, 2 raised to the power `x`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn exp2f(mut x: f32) -> f32 { + let redux = f32::from_bits(0x4b400000) / TBLSIZE as f32; + let p1 = f32::from_bits(0x3f317218); + let p2 = f32::from_bits(0x3e75fdf0); + let p3 = f32::from_bits(0x3d6359a4); + let p4 = f32::from_bits(0x3c1d964e); + + // double_t t, r, z; + // uint32_t ix, i0, k; + + let x1p127 = f32::from_bits(0x7f000000); + + /* Filter out exceptional cases. */ + let ui = f32::to_bits(x); + let ix = ui & 0x7fffffff; + if ix > 0x42fc0000 { + /* |x| > 126 */ + if ix > 0x7f800000 { + /* NaN */ + return x; + } + if ui >= 0x43000000 && ui < 0x80000000 { + /* x >= 128 */ + x *= x1p127; + return x; + } + if ui >= 0x80000000 { + /* x < -126 */ + if ui >= 0xc3160000 || (ui & 0x0000ffff != 0) { + force_eval!(f32::from_bits(0x80000001) / x); + } + if ui >= 0xc3160000 { + /* x <= -150 */ + return 0.0; + } + } + } else if ix <= 0x33000000 { + /* |x| <= 0x1p-25 */ + return 1.0 + x; + } + + /* Reduce x, computing z, i0, and k. */ + let ui = f32::to_bits(x + redux); + let mut i0 = ui; + i0 += TBLSIZE as u32 / 2; + let k = i0 / TBLSIZE as u32; + let ukf = f64::from_bits(((0x3ff + k) as u64) << 52); + i0 &= TBLSIZE as u32 - 1; + let mut uf = f32::from_bits(ui); + uf -= redux; + let z: f64 = (x - uf) as f64; + /* Compute r = exp2(y) = exp2ft[i0] * p(z). */ + let r: f64 = f64::from_bits(i!(EXP2FT, i0 as usize)); + let t: f64 = r as f64 * z; + let r: f64 = r + t * (p1 as f64 + z * p2 as f64) + t * (z * z) * (p3 as f64 + z * p4 as f64); + + /* Scale by 2**k */ + (r * ukf) as f32 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/expf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/expf.rs new file mode 100644 index 000000000..a53aa90a6 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/expf.rs @@ -0,0 +1,101 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_expf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::scalbnf; + +const HALF: [f32; 2] = [0.5, -0.5]; +const LN2_HI: f32 = 6.9314575195e-01; /* 0x3f317200 */ +const LN2_LO: f32 = 1.4286067653e-06; /* 0x35bfbe8e */ +const INV_LN2: f32 = 1.4426950216e+00; /* 0x3fb8aa3b */ +/* + * Domain [-0.34568, 0.34568], range ~[-4.278e-9, 4.447e-9]: + * |x*(exp(x)+1)/(exp(x)-1) - p(x)| < 2**-27.74 + */ +const P1: f32 = 1.6666625440e-1; /* 0xaaaa8f.0p-26 */ +const P2: f32 = -2.7667332906e-3; /* -0xb55215.0p-32 */ + +/// Exponential, base *e* (f32) +/// +/// Calculate the exponential of `x`, that is, *e* raised to the power `x` +/// (where *e* is the base of the natural system of logarithms, approximately 2.71828). +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn expf(mut x: f32) -> f32 { + let x1p127 = f32::from_bits(0x7f000000); // 0x1p127f === 2 ^ 127 + let x1p_126 = f32::from_bits(0x800000); // 0x1p-126f === 2 ^ -126 /*original 0x1p-149f ??????????? */ + let mut hx = x.to_bits(); + let sign = (hx >> 31) as i32; /* sign bit of x */ + let signb: bool = sign != 0; + hx &= 0x7fffffff; /* high word of |x| */ + + /* special cases */ + if hx >= 0x42aeac50 { + /* if |x| >= -87.33655f or NaN */ + if hx > 0x7f800000 { + /* NaN */ + return x; + } + if (hx >= 0x42b17218) && (!signb) { + /* x >= 88.722839f */ + /* overflow */ + x *= x1p127; + return x; + } + if signb { + /* underflow */ + force_eval!(-x1p_126 / x); + if hx >= 0x42cff1b5 { + /* x <= -103.972084f */ + return 0.; + } + } + } + + /* argument reduction */ + let k: i32; + let hi: f32; + let lo: f32; + if hx > 0x3eb17218 { + /* if |x| > 0.5 ln2 */ + if hx > 0x3f851592 { + /* if |x| > 1.5 ln2 */ + k = (INV_LN2 * x + i!(HALF, sign as usize)) as i32; + } else { + k = 1 - sign - sign; + } + let kf = k as f32; + hi = x - kf * LN2_HI; /* k*ln2hi is exact here */ + lo = kf * LN2_LO; + x = hi - lo; + } else if hx > 0x39000000 { + /* |x| > 2**-14 */ + k = 0; + hi = x; + lo = 0.; + } else { + /* raise inexact */ + force_eval!(x1p127 + x); + return 1. + x; + } + + /* x is now in primary range */ + let xx = x * x; + let c = x - xx * (P1 + xx * P2); + let y = 1. + (x * c / (2. - c) - lo + hi); + if k == 0 { + y + } else { + scalbnf(y, k) + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/expm1.rs b/src/rust/vendor/compiler_builtins/libm/src/math/expm1.rs new file mode 100644 index 000000000..42608509a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/expm1.rs @@ -0,0 +1,144 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_expm1.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use core::f64; + +const O_THRESHOLD: f64 = 7.09782712893383973096e+02; /* 0x40862E42, 0xFEFA39EF */ +const LN2_HI: f64 = 6.93147180369123816490e-01; /* 0x3fe62e42, 0xfee00000 */ +const LN2_LO: f64 = 1.90821492927058770002e-10; /* 0x3dea39ef, 0x35793c76 */ +const INVLN2: f64 = 1.44269504088896338700e+00; /* 0x3ff71547, 0x652b82fe */ +/* Scaled Q's: Qn_here = 2**n * Qn_above, for R(2*z) where z = hxs = x*x/2: */ +const Q1: f64 = -3.33333333333331316428e-02; /* BFA11111 111110F4 */ +const Q2: f64 = 1.58730158725481460165e-03; /* 3F5A01A0 19FE5585 */ +const Q3: f64 = -7.93650757867487942473e-05; /* BF14CE19 9EAADBB7 */ +const Q4: f64 = 4.00821782732936239552e-06; /* 3ED0CFCA 86E65239 */ +const Q5: f64 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */ + +/// Exponential, base *e*, of x-1 (f64) +/// +/// Calculates the exponential of `x` and subtract 1, that is, *e* raised +/// to the power `x` minus 1 (where *e* is the base of the natural +/// system of logarithms, approximately 2.71828). +/// The result is accurate even for small values of `x`, +/// where using `exp(x)-1` would lose many significant digits. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn expm1(mut x: f64) -> f64 { + let hi: f64; + let lo: f64; + let k: i32; + let c: f64; + let mut t: f64; + let mut y: f64; + + let mut ui = x.to_bits(); + let hx = ((ui >> 32) & 0x7fffffff) as u32; + let sign = (ui >> 63) as i32; + + /* filter out huge and non-finite argument */ + if hx >= 0x4043687A { + /* if |x|>=56*ln2 */ + if x.is_nan() { + return x; + } + if sign != 0 { + return -1.0; + } + if x > O_THRESHOLD { + x *= f64::from_bits(0x7fe0000000000000); + return x; + } + } + + /* argument reduction */ + if hx > 0x3fd62e42 { + /* if |x| > 0.5 ln2 */ + if hx < 0x3FF0A2B2 { + /* and |x| < 1.5 ln2 */ + if sign == 0 { + hi = x - LN2_HI; + lo = LN2_LO; + k = 1; + } else { + hi = x + LN2_HI; + lo = -LN2_LO; + k = -1; + } + } else { + k = (INVLN2 * x + if sign != 0 { -0.5 } else { 0.5 }) as i32; + t = k as f64; + hi = x - t * LN2_HI; /* t*ln2_hi is exact here */ + lo = t * LN2_LO; + } + x = hi - lo; + c = (hi - x) - lo; + } else if hx < 0x3c900000 { + /* |x| < 2**-54, return x */ + if hx < 0x00100000 { + force_eval!(x); + } + return x; + } else { + c = 0.0; + k = 0; + } + + /* x is now in primary range */ + let hfx = 0.5 * x; + let hxs = x * hfx; + let r1 = 1.0 + hxs * (Q1 + hxs * (Q2 + hxs * (Q3 + hxs * (Q4 + hxs * Q5)))); + t = 3.0 - r1 * hfx; + let mut e = hxs * ((r1 - t) / (6.0 - x * t)); + if k == 0 { + /* c is 0 */ + return x - (x * e - hxs); + } + e = x * (e - c) - c; + e -= hxs; + /* exp(x) ~ 2^k (x_reduced - e + 1) */ + if k == -1 { + return 0.5 * (x - e) - 0.5; + } + if k == 1 { + if x < -0.25 { + return -2.0 * (e - (x + 0.5)); + } + return 1.0 + 2.0 * (x - e); + } + ui = ((0x3ff + k) as u64) << 52; /* 2^k */ + let twopk = f64::from_bits(ui); + if k < 0 || k > 56 { + /* suffice to return exp(x)-1 */ + y = x - e + 1.0; + if k == 1024 { + y = y * 2.0 * f64::from_bits(0x7fe0000000000000); + } else { + y = y * twopk; + } + return y - 1.0; + } + ui = ((0x3ff - k) as u64) << 52; /* 2^-k */ + let uf = f64::from_bits(ui); + if k < 20 { + y = (x - e + (1.0 - uf)) * twopk; + } else { + y = (x - (e + uf) + 1.0) * twopk; + } + y +} + +#[cfg(test)] +mod tests { + #[test] + fn sanity_check() { + assert_eq!(super::expm1(1.1), 2.0041660239464334); + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/expm1f.rs b/src/rust/vendor/compiler_builtins/libm/src/math/expm1f.rs new file mode 100644 index 000000000..3fc2a247b --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/expm1f.rs @@ -0,0 +1,134 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_expm1f.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +const O_THRESHOLD: f32 = 8.8721679688e+01; /* 0x42b17180 */ +const LN2_HI: f32 = 6.9313812256e-01; /* 0x3f317180 */ +const LN2_LO: f32 = 9.0580006145e-06; /* 0x3717f7d1 */ +const INV_LN2: f32 = 1.4426950216e+00; /* 0x3fb8aa3b */ +/* + * Domain [-0.34568, 0.34568], range ~[-6.694e-10, 6.696e-10]: + * |6 / x * (1 + 2 * (1 / (exp(x) - 1) - 1 / x)) - q(x)| < 2**-30.04 + * Scaled coefficients: Qn_here = 2**n * Qn_for_q (see s_expm1.c): + */ +const Q1: f32 = -3.3333212137e-2; /* -0x888868.0p-28 */ +const Q2: f32 = 1.5807170421e-3; /* 0xcf3010.0p-33 */ + +/// Exponential, base *e*, of x-1 (f32) +/// +/// Calculates the exponential of `x` and subtract 1, that is, *e* raised +/// to the power `x` minus 1 (where *e* is the base of the natural +/// system of logarithms, approximately 2.71828). +/// The result is accurate even for small values of `x`, +/// where using `exp(x)-1` would lose many significant digits. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn expm1f(mut x: f32) -> f32 { + let x1p127 = f32::from_bits(0x7f000000); // 0x1p127f === 2 ^ 127 + + let mut hx = x.to_bits(); + let sign = (hx >> 31) != 0; + hx &= 0x7fffffff; + + /* filter out huge and non-finite argument */ + if hx >= 0x4195b844 { + /* if |x|>=27*ln2 */ + if hx > 0x7f800000 { + /* NaN */ + return x; + } + if sign { + return -1.; + } + if x > O_THRESHOLD { + x *= x1p127; + return x; + } + } + + let k: i32; + let hi: f32; + let lo: f32; + let mut c = 0f32; + /* argument reduction */ + if hx > 0x3eb17218 { + /* if |x| > 0.5 ln2 */ + if hx < 0x3F851592 { + /* and |x| < 1.5 ln2 */ + if !sign { + hi = x - LN2_HI; + lo = LN2_LO; + k = 1; + } else { + hi = x + LN2_HI; + lo = -LN2_LO; + k = -1; + } + } else { + k = (INV_LN2 * x + (if sign { -0.5 } else { 0.5 })) as i32; + let t = k as f32; + hi = x - t * LN2_HI; /* t*ln2_hi is exact here */ + lo = t * LN2_LO; + } + x = hi - lo; + c = (hi - x) - lo; + } else if hx < 0x33000000 { + /* when |x|<2**-25, return x */ + if hx < 0x00800000 { + force_eval!(x * x); + } + return x; + } else { + k = 0; + } + + /* x is now in primary range */ + let hfx = 0.5 * x; + let hxs = x * hfx; + let r1 = 1. + hxs * (Q1 + hxs * Q2); + let t = 3. - r1 * hfx; + let mut e = hxs * ((r1 - t) / (6. - x * t)); + if k == 0 { + /* c is 0 */ + return x - (x * e - hxs); + } + e = x * (e - c) - c; + e -= hxs; + /* exp(x) ~ 2^k (x_reduced - e + 1) */ + if k == -1 { + return 0.5 * (x - e) - 0.5; + } + if k == 1 { + if x < -0.25 { + return -2. * (e - (x + 0.5)); + } + return 1. + 2. * (x - e); + } + let twopk = f32::from_bits(((0x7f + k) << 23) as u32); /* 2^k */ + if (k < 0) || (k > 56) { + /* suffice to return exp(x)-1 */ + let mut y = x - e + 1.; + if k == 128 { + y = y * 2. * x1p127; + } else { + y = y * twopk; + } + return y - 1.; + } + let uf = f32::from_bits(((0x7f - k) << 23) as u32); /* 2^-k */ + if k < 23 { + (x - e + (1. - uf)) * twopk + } else { + (x - (e + uf) + 1.) * twopk + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/expo2.rs b/src/rust/vendor/compiler_builtins/libm/src/math/expo2.rs new file mode 100644 index 000000000..82e9b360a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/expo2.rs @@ -0,0 +1,14 @@ +use super::{combine_words, exp}; + +/* exp(x)/2 for x >= log(DBL_MAX), slightly better than 0.5*exp(x/2)*exp(x/2) */ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub(crate) fn expo2(x: f64) -> f64 { + /* k is such that k*ln2 has minimal relative error and x - kln2 > log(DBL_MIN) */ + const K: i32 = 2043; + let kln2 = f64::from_bits(0x40962066151add8b); + + /* note that k is odd and scale*scale overflows */ + let scale = combine_words(((0x3ff + K / 2) as u32) << 20, 0); + /* exp(x - k ln2) * 2**(k-1) */ + exp(x - kln2) * scale * scale +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/fabs.rs b/src/rust/vendor/compiler_builtins/libm/src/math/fabs.rs new file mode 100644 index 000000000..b2255ad32 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/fabs.rs @@ -0,0 +1,41 @@ +use core::u64; + +/// Absolute value (magnitude) (f64) +/// Calculates the absolute value (magnitude) of the argument `x`, +/// by direct manipulation of the bit representation of `x`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn fabs(x: f64) -> f64 { + // On wasm32 we know that LLVM's intrinsic will compile to an optimized + // `f64.abs` native instruction, so we can leverage this for both code size + // and speed. + llvm_intrinsically_optimized! { + #[cfg(target_arch = "wasm32")] { + return unsafe { ::core::intrinsics::fabsf64(x) } + } + } + f64::from_bits(x.to_bits() & (u64::MAX / 2)) +} + +#[cfg(test)] +mod tests { + use super::*; + use core::f64::*; + + #[test] + fn sanity_check() { + assert_eq!(fabs(-1.0), 1.0); + assert_eq!(fabs(2.8), 2.8); + } + + /// The spec: https://en.cppreference.com/w/cpp/numeric/math/fabs + #[test] + fn spec_tests() { + assert!(fabs(NAN).is_nan()); + for f in [0.0, -0.0].iter().copied() { + assert_eq!(fabs(f), 0.0); + } + for f in [INFINITY, NEG_INFINITY].iter().copied() { + assert_eq!(fabs(f), INFINITY); + } + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/fabsf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/fabsf.rs new file mode 100644 index 000000000..23f3646dc --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/fabsf.rs @@ -0,0 +1,41 @@ +/// Absolute value (magnitude) (f32) +/// Calculates the absolute value (magnitude) of the argument `x`, +/// by direct manipulation of the bit representation of `x`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn fabsf(x: f32) -> f32 { + // On wasm32 we know that LLVM's intrinsic will compile to an optimized + // `f32.abs` native instruction, so we can leverage this for both code size + // and speed. + llvm_intrinsically_optimized! { + #[cfg(target_arch = "wasm32")] { + return unsafe { ::core::intrinsics::fabsf32(x) } + } + } + f32::from_bits(x.to_bits() & 0x7fffffff) +} + +// PowerPC tests are failing on LLVM 13: https://github.com/rust-lang/rust/issues/88520 +#[cfg(not(target_arch = "powerpc64"))] +#[cfg(test)] +mod tests { + use super::*; + use core::f32::*; + + #[test] + fn sanity_check() { + assert_eq!(fabsf(-1.0), 1.0); + assert_eq!(fabsf(2.8), 2.8); + } + + /// The spec: https://en.cppreference.com/w/cpp/numeric/math/fabs + #[test] + fn spec_tests() { + assert!(fabsf(NAN).is_nan()); + for f in [0.0, -0.0].iter().copied() { + assert_eq!(fabsf(f), 0.0); + } + for f in [INFINITY, NEG_INFINITY].iter().copied() { + assert_eq!(fabsf(f), INFINITY); + } + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/fdim.rs b/src/rust/vendor/compiler_builtins/libm/src/math/fdim.rs new file mode 100644 index 000000000..014930097 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/fdim.rs @@ -0,0 +1,22 @@ +use core::f64; + +/// Positive difference (f64) +/// +/// Determines the positive difference between arguments, returning: +/// * x - y if x > y, or +/// * +0 if x <= y, or +/// * NAN if either argument is NAN. +/// +/// A range error may occur. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn fdim(x: f64, y: f64) -> f64 { + if x.is_nan() { + x + } else if y.is_nan() { + y + } else if x > y { + x - y + } else { + 0.0 + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/fdimf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/fdimf.rs new file mode 100644 index 000000000..ea0b592d7 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/fdimf.rs @@ -0,0 +1,22 @@ +use core::f32; + +/// Positive difference (f32) +/// +/// Determines the positive difference between arguments, returning: +/// * x - y if x > y, or +/// * +0 if x <= y, or +/// * NAN if either argument is NAN. +/// +/// A range error may occur. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn fdimf(x: f32, y: f32) -> f32 { + if x.is_nan() { + x + } else if y.is_nan() { + y + } else if x > y { + x - y + } else { + 0.0 + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/fenv.rs b/src/rust/vendor/compiler_builtins/libm/src/math/fenv.rs new file mode 100644 index 000000000..c91272e82 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/fenv.rs @@ -0,0 +1,27 @@ +// src: musl/src/fenv/fenv.c +/* Dummy functions for archs lacking fenv implementation */ + +pub(crate) const FE_UNDERFLOW: i32 = 0; +pub(crate) const FE_INEXACT: i32 = 0; + +pub(crate) const FE_TONEAREST: i32 = 0; + +#[inline] +pub(crate) fn feclearexcept(_mask: i32) -> i32 { + 0 +} + +#[inline] +pub(crate) fn feraiseexcept(_mask: i32) -> i32 { + 0 +} + +#[inline] +pub(crate) fn fetestexcept(_mask: i32) -> i32 { + 0 +} + +#[inline] +pub(crate) fn fegetround() -> i32 { + FE_TONEAREST +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/floor.rs b/src/rust/vendor/compiler_builtins/libm/src/math/floor.rs new file mode 100644 index 000000000..d09f9a1a1 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/floor.rs @@ -0,0 +1,81 @@ +#![allow(unreachable_code)] +use core::f64; + +const TOINT: f64 = 1. / f64::EPSILON; + +/// Floor (f64) +/// +/// Finds the nearest integer less than or equal to `x`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn floor(x: f64) -> f64 { + // On wasm32 we know that LLVM's intrinsic will compile to an optimized + // `f64.floor` native instruction, so we can leverage this for both code size + // and speed. + llvm_intrinsically_optimized! { + #[cfg(target_arch = "wasm32")] { + return unsafe { ::core::intrinsics::floorf64(x) } + } + } + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + { + //use an alternative implementation on x86, because the + //main implementation fails with the x87 FPU used by + //debian i386, probablly due to excess precision issues. + //basic implementation taken from https://github.com/rust-lang/libm/issues/219 + use super::fabs; + if fabs(x).to_bits() < 4503599627370496.0_f64.to_bits() { + let truncated = x as i64 as f64; + if truncated > x { + return truncated - 1.0; + } else { + return truncated; + } + } else { + return x; + } + } + let ui = x.to_bits(); + let e = ((ui >> 52) & 0x7ff) as i32; + + if (e >= 0x3ff + 52) || (x == 0.) { + return x; + } + /* y = int(x) - x, where int(x) is an integer neighbor of x */ + let y = if (ui >> 63) != 0 { + x - TOINT + TOINT - x + } else { + x + TOINT - TOINT - x + }; + /* special case because of non-nearest rounding modes */ + if e < 0x3ff { + force_eval!(y); + return if (ui >> 63) != 0 { -1. } else { 0. }; + } + if y > 0. { + x + y - 1. + } else { + x + y + } +} + +#[cfg(test)] +mod tests { + use super::*; + use core::f64::*; + + #[test] + fn sanity_check() { + assert_eq!(floor(1.1), 1.0); + assert_eq!(floor(2.9), 2.0); + } + + /// The spec: https://en.cppreference.com/w/cpp/numeric/math/floor + #[test] + fn spec_tests() { + // Not Asserted: that the current rounding mode has no effect. + assert!(floor(NAN).is_nan()); + for f in [0.0, -0.0, INFINITY, NEG_INFINITY].iter().copied() { + assert_eq!(floor(f), f); + } + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/floorf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/floorf.rs new file mode 100644 index 000000000..dfdab91a0 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/floorf.rs @@ -0,0 +1,66 @@ +use core::f32; + +/// Floor (f32) +/// +/// Finds the nearest integer less than or equal to `x`. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn floorf(x: f32) -> f32 { + // On wasm32 we know that LLVM's intrinsic will compile to an optimized + // `f32.floor` native instruction, so we can leverage this for both code size + // and speed. + llvm_intrinsically_optimized! { + #[cfg(target_arch = "wasm32")] { + return unsafe { ::core::intrinsics::floorf32(x) } + } + } + let mut ui = x.to_bits(); + let e = (((ui >> 23) as i32) & 0xff) - 0x7f; + + if e >= 23 { + return x; + } + if e >= 0 { + let m: u32 = 0x007fffff >> e; + if (ui & m) == 0 { + return x; + } + force_eval!(x + f32::from_bits(0x7b800000)); + if ui >> 31 != 0 { + ui += m; + } + ui &= !m; + } else { + force_eval!(x + f32::from_bits(0x7b800000)); + if ui >> 31 == 0 { + ui = 0; + } else if ui << 1 != 0 { + return -1.0; + } + } + f32::from_bits(ui) +} + +// PowerPC tests are failing on LLVM 13: https://github.com/rust-lang/rust/issues/88520 +#[cfg(not(target_arch = "powerpc64"))] +#[cfg(test)] +mod tests { + use super::*; + use core::f32::*; + + #[test] + fn sanity_check() { + assert_eq!(floorf(0.5), 0.0); + assert_eq!(floorf(1.1), 1.0); + assert_eq!(floorf(2.9), 2.0); + } + + /// The spec: https://en.cppreference.com/w/cpp/numeric/math/floor + #[test] + fn spec_tests() { + // Not Asserted: that the current rounding mode has no effect. + assert!(floorf(NAN).is_nan()); + for f in [0.0, -0.0, INFINITY, NEG_INFINITY].iter().copied() { + assert_eq!(floorf(f), f); + } + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/fma.rs b/src/rust/vendor/compiler_builtins/libm/src/math/fma.rs new file mode 100644 index 000000000..940ee2db9 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/fma.rs @@ -0,0 +1,232 @@ +use core::{f32, f64}; + +use super::scalbn; + +const ZEROINFNAN: i32 = 0x7ff - 0x3ff - 52 - 1; + +struct Num { + m: u64, + e: i32, + sign: i32, +} + +fn normalize(x: f64) -> Num { + let x1p63: f64 = f64::from_bits(0x43e0000000000000); // 0x1p63 === 2 ^ 63 + + let mut ix: u64 = x.to_bits(); + let mut e: i32 = (ix >> 52) as i32; + let sign: i32 = e & 0x800; + e &= 0x7ff; + if e == 0 { + ix = (x * x1p63).to_bits(); + e = (ix >> 52) as i32 & 0x7ff; + e = if e != 0 { e - 63 } else { 0x800 }; + } + ix &= (1 << 52) - 1; + ix |= 1 << 52; + ix <<= 1; + e -= 0x3ff + 52 + 1; + Num { m: ix, e, sign } +} + +#[inline] +fn mul(x: u64, y: u64) -> (u64, u64) { + let t = (x as u128).wrapping_mul(y as u128); + ((t >> 64) as u64, t as u64) +} + +/// Floating multiply add (f64) +/// +/// Computes `(x*y)+z`, rounded as one ternary operation: +/// Computes the value (as if) to infinite precision and rounds once to the result format, +/// according to the rounding mode characterized by the value of FLT_ROUNDS. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn fma(x: f64, y: f64, z: f64) -> f64 { + let x1p63: f64 = f64::from_bits(0x43e0000000000000); // 0x1p63 === 2 ^ 63 + let x0_ffffff8p_63 = f64::from_bits(0x3bfffffff0000000); // 0x0.ffffff8p-63 + + /* normalize so top 10bits and last bit are 0 */ + let nx = normalize(x); + let ny = normalize(y); + let nz = normalize(z); + + if nx.e >= ZEROINFNAN || ny.e >= ZEROINFNAN { + return x * y + z; + } + if nz.e >= ZEROINFNAN { + if nz.e > ZEROINFNAN { + /* z==0 */ + return x * y + z; + } + return z; + } + + /* mul: r = x*y */ + let zhi: u64; + let zlo: u64; + let (mut rhi, mut rlo) = mul(nx.m, ny.m); + /* either top 20 or 21 bits of rhi and last 2 bits of rlo are 0 */ + + /* align exponents */ + let mut e: i32 = nx.e + ny.e; + let mut d: i32 = nz.e - e; + /* shift bits z<<=kz, r>>=kr, so kz+kr == d, set e = e+kr (== ez-kz) */ + if d > 0 { + if d < 64 { + zlo = nz.m << d; + zhi = nz.m >> (64 - d); + } else { + zlo = 0; + zhi = nz.m; + e = nz.e - 64; + d -= 64; + if d == 0 { + } else if d < 64 { + rlo = rhi << (64 - d) | rlo >> d | ((rlo << (64 - d)) != 0) as u64; + rhi = rhi >> d; + } else { + rlo = 1; + rhi = 0; + } + } + } else { + zhi = 0; + d = -d; + if d == 0 { + zlo = nz.m; + } else if d < 64 { + zlo = nz.m >> d | ((nz.m << (64 - d)) != 0) as u64; + } else { + zlo = 1; + } + } + + /* add */ + let mut sign: i32 = nx.sign ^ ny.sign; + let samesign: bool = (sign ^ nz.sign) == 0; + let mut nonzero: i32 = 1; + if samesign { + /* r += z */ + rlo = rlo.wrapping_add(zlo); + rhi += zhi + (rlo < zlo) as u64; + } else { + /* r -= z */ + let (res, borrow) = rlo.overflowing_sub(zlo); + rlo = res; + rhi = rhi.wrapping_sub(zhi.wrapping_add(borrow as u64)); + if (rhi >> 63) != 0 { + rlo = (rlo as i64).wrapping_neg() as u64; + rhi = (rhi as i64).wrapping_neg() as u64 - (rlo != 0) as u64; + sign = (sign == 0) as i32; + } + nonzero = (rhi != 0) as i32; + } + + /* set rhi to top 63bit of the result (last bit is sticky) */ + if nonzero != 0 { + e += 64; + d = rhi.leading_zeros() as i32 - 1; + /* note: d > 0 */ + rhi = rhi << d | rlo >> (64 - d) | ((rlo << d) != 0) as u64; + } else if rlo != 0 { + d = rlo.leading_zeros() as i32 - 1; + if d < 0 { + rhi = rlo >> 1 | (rlo & 1); + } else { + rhi = rlo << d; + } + } else { + /* exact +-0 */ + return x * y + z; + } + e -= d; + + /* convert to double */ + let mut i: i64 = rhi as i64; /* i is in [1<<62,(1<<63)-1] */ + if sign != 0 { + i = -i; + } + let mut r: f64 = i as f64; /* |r| is in [0x1p62,0x1p63] */ + + if e < -1022 - 62 { + /* result is subnormal before rounding */ + if e == -1022 - 63 { + let mut c: f64 = x1p63; + if sign != 0 { + c = -c; + } + if r == c { + /* min normal after rounding, underflow depends + on arch behaviour which can be imitated by + a double to float conversion */ + let fltmin: f32 = (x0_ffffff8p_63 * f32::MIN_POSITIVE as f64 * r) as f32; + return f64::MIN_POSITIVE / f32::MIN_POSITIVE as f64 * fltmin as f64; + } + /* one bit is lost when scaled, add another top bit to + only round once at conversion if it is inexact */ + if (rhi << 53) != 0 { + i = (rhi >> 1 | (rhi & 1) | 1 << 62) as i64; + if sign != 0 { + i = -i; + } + r = i as f64; + r = 2. * r - c; /* remove top bit */ + + /* raise underflow portably, such that it + cannot be optimized away */ + { + let tiny: f64 = f64::MIN_POSITIVE / f32::MIN_POSITIVE as f64 * r; + r += (tiny * tiny) * (r - r); + } + } + } else { + /* only round once when scaled */ + d = 10; + i = ((rhi >> d | ((rhi << (64 - d)) != 0) as u64) << d) as i64; + if sign != 0 { + i = -i; + } + r = i as f64; + } + } + scalbn(r, e) +} + +#[cfg(test)] +mod tests { + use super::*; + #[test] + fn fma_segfault() { + // These two inputs cause fma to segfault on release due to overflow: + assert_eq!( + fma( + -0.0000000000000002220446049250313, + -0.0000000000000002220446049250313, + -0.0000000000000002220446049250313 + ), + -0.00000000000000022204460492503126, + ); + + let result = fma(-0.992, -0.992, -0.992); + //force rounding to storage format on x87 to prevent superious errors. + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let result = force_eval!(result); + assert_eq!(result, -0.007936000000000007,); + } + + #[test] + fn fma_sbb() { + assert_eq!( + fma(-(1.0 - f64::EPSILON), f64::MIN, f64::MIN), + -3991680619069439e277 + ); + } + + #[test] + fn fma_underflow() { + assert_eq!( + fma(1.1102230246251565e-16, -9.812526705433188e-305, 1.0894e-320), + 0.0, + ); + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/fmaf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/fmaf.rs new file mode 100644 index 000000000..2848f2aee --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/fmaf.rs @@ -0,0 +1,117 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_fmaf.c */ +/*- + * Copyright (c) 2005-2011 David Schultz + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. + */ + +use core::f32; +use core::ptr::read_volatile; + +use super::fenv::{ + feclearexcept, fegetround, feraiseexcept, fetestexcept, FE_INEXACT, FE_TONEAREST, FE_UNDERFLOW, +}; + +/* + * Fused multiply-add: Compute x * y + z with a single rounding error. + * + * A double has more than twice as much precision than a float, so + * direct double-precision arithmetic suffices, except where double + * rounding occurs. + */ + +/// Floating multiply add (f32) +/// +/// Computes `(x*y)+z`, rounded as one ternary operation: +/// Computes the value (as if) to infinite precision and rounds once to the result format, +/// according to the rounding mode characterized by the value of FLT_ROUNDS. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn fmaf(x: f32, y: f32, mut z: f32) -> f32 { + let xy: f64; + let mut result: f64; + let mut ui: u64; + let e: i32; + + xy = x as f64 * y as f64; + result = xy + z as f64; + ui = result.to_bits(); + e = (ui >> 52) as i32 & 0x7ff; + /* Common case: The double precision result is fine. */ + if ( + /* not a halfway case */ + ui & 0x1fffffff) != 0x10000000 || + /* NaN */ + e == 0x7ff || + /* exact */ + (result - xy == z as f64 && result - z as f64 == xy) || + /* not round-to-nearest */ + fegetround() != FE_TONEAREST + { + /* + underflow may not be raised correctly, example: + fmaf(0x1p-120f, 0x1p-120f, 0x1p-149f) + */ + if e < 0x3ff - 126 && e >= 0x3ff - 149 && fetestexcept(FE_INEXACT) != 0 { + feclearexcept(FE_INEXACT); + // prevent `xy + vz` from being CSE'd with `xy + z` above + let vz: f32 = unsafe { read_volatile(&z) }; + result = xy + vz as f64; + if fetestexcept(FE_INEXACT) != 0 { + feraiseexcept(FE_UNDERFLOW); + } else { + feraiseexcept(FE_INEXACT); + } + } + z = result as f32; + return z; + } + + /* + * If result is inexact, and exactly halfway between two float values, + * we need to adjust the low-order bit in the direction of the error. + */ + let neg = ui >> 63 != 0; + let err = if neg == (z as f64 > xy) { + xy - result + z as f64 + } else { + z as f64 - result + xy + }; + if neg == (err < 0.0) { + ui += 1; + } else { + ui -= 1; + } + f64::from_bits(ui) as f32 +} + +#[cfg(test)] +mod tests { + #[test] + fn issue_263() { + let a = f32::from_bits(1266679807); + let b = f32::from_bits(1300234242); + let c = f32::from_bits(1115553792); + let expected = f32::from_bits(1501560833); + assert_eq!(super::fmaf(a, b, c), expected); + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/fmax.rs b/src/rust/vendor/compiler_builtins/libm/src/math/fmax.rs new file mode 100644 index 000000000..93c97bc61 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/fmax.rs @@ -0,0 +1,12 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn fmax(x: f64, y: f64) -> f64 { + // IEEE754 says: maxNum(x, y) is the canonicalized number y if x < y, x if y < x, the + // canonicalized number if one operand is a number and the other a quiet NaN. Otherwise it + // is either x or y, canonicalized (this means results might differ among implementations). + // When either x or y is a signalingNaN, then the result is according to 6.2. + // + // Since we do not support sNaN in Rust yet, we do not need to handle them. + // FIXME(nagisa): due to https://bugs.llvm.org/show_bug.cgi?id=33303 we canonicalize by + // multiplying by 1.0. Should switch to the `canonicalize` when it works. + (if x.is_nan() || x < y { y } else { x }) * 1.0 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/fmaxf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/fmaxf.rs new file mode 100644 index 000000000..607746647 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/fmaxf.rs @@ -0,0 +1,12 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn fmaxf(x: f32, y: f32) -> f32 { + // IEEE754 says: maxNum(x, y) is the canonicalized number y if x < y, x if y < x, the + // canonicalized number if one operand is a number and the other a quiet NaN. Otherwise it + // is either x or y, canonicalized (this means results might differ among implementations). + // When either x or y is a signalingNaN, then the result is according to 6.2. + // + // Since we do not support sNaN in Rust yet, we do not need to handle them. + // FIXME(nagisa): due to https://bugs.llvm.org/show_bug.cgi?id=33303 we canonicalize by + // multiplying by 1.0. Should switch to the `canonicalize` when it works. + (if x.is_nan() || x < y { y } else { x }) * 1.0 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/fmin.rs b/src/rust/vendor/compiler_builtins/libm/src/math/fmin.rs new file mode 100644 index 000000000..ab1509f34 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/fmin.rs @@ -0,0 +1,12 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn fmin(x: f64, y: f64) -> f64 { + // IEEE754 says: minNum(x, y) is the canonicalized number x if x < y, y if y < x, the + // canonicalized number if one operand is a number and the other a quiet NaN. Otherwise it + // is either x or y, canonicalized (this means results might differ among implementations). + // When either x or y is a signalingNaN, then the result is according to 6.2. + // + // Since we do not support sNaN in Rust yet, we do not need to handle them. + // FIXME(nagisa): due to https://bugs.llvm.org/show_bug.cgi?id=33303 we canonicalize by + // multiplying by 1.0. Should switch to the `canonicalize` when it works. + (if y.is_nan() || x < y { x } else { y }) * 1.0 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/fminf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/fminf.rs new file mode 100644 index 000000000..0049e7117 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/fminf.rs @@ -0,0 +1,12 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn fminf(x: f32, y: f32) -> f32 { + // IEEE754 says: minNum(x, y) is the canonicalized number x if x < y, y if y < x, the + // canonicalized number if one operand is a number and the other a quiet NaN. Otherwise it + // is either x or y, canonicalized (this means results might differ among implementations). + // When either x or y is a signalingNaN, then the result is according to 6.2. + // + // Since we do not support sNaN in Rust yet, we do not need to handle them. + // FIXME(nagisa): due to https://bugs.llvm.org/show_bug.cgi?id=33303 we canonicalize by + // multiplying by 1.0. Should switch to the `canonicalize` when it works. + (if y.is_nan() || x < y { x } else { y }) * 1.0 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/fmod.rs b/src/rust/vendor/compiler_builtins/libm/src/math/fmod.rs new file mode 100644 index 000000000..d892ffd8b --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/fmod.rs @@ -0,0 +1,80 @@ +use core::u64; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn fmod(x: f64, y: f64) -> f64 { + let mut uxi = x.to_bits(); + let mut uyi = y.to_bits(); + let mut ex = (uxi >> 52 & 0x7ff) as i64; + let mut ey = (uyi >> 52 & 0x7ff) as i64; + let sx = uxi >> 63; + let mut i; + + if uyi << 1 == 0 || y.is_nan() || ex == 0x7ff { + return (x * y) / (x * y); + } + if uxi << 1 <= uyi << 1 { + if uxi << 1 == uyi << 1 { + return 0.0 * x; + } + return x; + } + + /* normalize x and y */ + if ex == 0 { + i = uxi << 12; + while i >> 63 == 0 { + ex -= 1; + i <<= 1; + } + uxi <<= -ex + 1; + } else { + uxi &= u64::MAX >> 12; + uxi |= 1 << 52; + } + if ey == 0 { + i = uyi << 12; + while i >> 63 == 0 { + ey -= 1; + i <<= 1; + } + uyi <<= -ey + 1; + } else { + uyi &= u64::MAX >> 12; + uyi |= 1 << 52; + } + + /* x mod y */ + while ex > ey { + i = uxi.wrapping_sub(uyi); + if i >> 63 == 0 { + if i == 0 { + return 0.0 * x; + } + uxi = i; + } + uxi <<= 1; + ex -= 1; + } + i = uxi.wrapping_sub(uyi); + if i >> 63 == 0 { + if i == 0 { + return 0.0 * x; + } + uxi = i; + } + while uxi >> 52 == 0 { + uxi <<= 1; + ex -= 1; + } + + /* scale result */ + if ex > 0 { + uxi -= 1 << 52; + uxi |= (ex as u64) << 52; + } else { + uxi >>= -ex + 1; + } + uxi |= (sx as u64) << 63; + + f64::from_bits(uxi) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/fmodf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/fmodf.rs new file mode 100644 index 000000000..c53dc186a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/fmodf.rs @@ -0,0 +1,89 @@ +use core::f32; +use core::u32; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn fmodf(x: f32, y: f32) -> f32 { + let mut uxi = x.to_bits(); + let mut uyi = y.to_bits(); + let mut ex = (uxi >> 23 & 0xff) as i32; + let mut ey = (uyi >> 23 & 0xff) as i32; + let sx = uxi & 0x80000000; + let mut i; + + if uyi << 1 == 0 || y.is_nan() || ex == 0xff { + return (x * y) / (x * y); + } + + if uxi << 1 <= uyi << 1 { + if uxi << 1 == uyi << 1 { + return 0.0 * x; + } + + return x; + } + + /* normalize x and y */ + if ex == 0 { + i = uxi << 9; + while i >> 31 == 0 { + ex -= 1; + i <<= 1; + } + + uxi <<= -ex + 1; + } else { + uxi &= u32::MAX >> 9; + uxi |= 1 << 23; + } + + if ey == 0 { + i = uyi << 9; + while i >> 31 == 0 { + ey -= 1; + i <<= 1; + } + + uyi <<= -ey + 1; + } else { + uyi &= u32::MAX >> 9; + uyi |= 1 << 23; + } + + /* x mod y */ + while ex > ey { + i = uxi.wrapping_sub(uyi); + if i >> 31 == 0 { + if i == 0 { + return 0.0 * x; + } + uxi = i; + } + uxi <<= 1; + + ex -= 1; + } + + i = uxi.wrapping_sub(uyi); + if i >> 31 == 0 { + if i == 0 { + return 0.0 * x; + } + uxi = i; + } + + while uxi >> 23 == 0 { + uxi <<= 1; + ex -= 1; + } + + /* scale result up */ + if ex > 0 { + uxi -= 1 << 23; + uxi |= (ex as u32) << 23; + } else { + uxi >>= -ex + 1; + } + uxi |= sx; + + f32::from_bits(uxi) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/frexp.rs b/src/rust/vendor/compiler_builtins/libm/src/math/frexp.rs new file mode 100644 index 000000000..badad786a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/frexp.rs @@ -0,0 +1,20 @@ +pub fn frexp(x: f64) -> (f64, i32) { + let mut y = x.to_bits(); + let ee = ((y >> 52) & 0x7ff) as i32; + + if ee == 0 { + if x != 0.0 { + let x1p64 = f64::from_bits(0x43f0000000000000); + let (x, e) = frexp(x * x1p64); + return (x, e - 64); + } + return (x, 0); + } else if ee == 0x7ff { + return (x, 0); + } + + let e = ee - 0x3fe; + y &= 0x800fffffffffffff; + y |= 0x3fe0000000000000; + return (f64::from_bits(y), e); +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/frexpf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/frexpf.rs new file mode 100644 index 000000000..2919c0ab0 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/frexpf.rs @@ -0,0 +1,21 @@ +pub fn frexpf(x: f32) -> (f32, i32) { + let mut y = x.to_bits(); + let ee: i32 = ((y >> 23) & 0xff) as i32; + + if ee == 0 { + if x != 0.0 { + let x1p64 = f32::from_bits(0x5f800000); + let (x, e) = frexpf(x * x1p64); + return (x, e - 64); + } else { + return (x, 0); + } + } else if ee == 0xff { + return (x, 0); + } + + let e = ee - 0x7e; + y &= 0x807fffff; + y |= 0x3f000000; + (f32::from_bits(y), e) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/hypot.rs b/src/rust/vendor/compiler_builtins/libm/src/math/hypot.rs new file mode 100644 index 000000000..da458ea1d --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/hypot.rs @@ -0,0 +1,74 @@ +use core::f64; + +use super::sqrt; + +const SPLIT: f64 = 134217728. + 1.; // 0x1p27 + 1 === (2 ^ 27) + 1 + +fn sq(x: f64) -> (f64, f64) { + let xh: f64; + let xl: f64; + let xc: f64; + + xc = x * SPLIT; + xh = x - xc + xc; + xl = x - xh; + let hi = x * x; + let lo = xh * xh - hi + 2. * xh * xl + xl * xl; + (hi, lo) +} + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn hypot(mut x: f64, mut y: f64) -> f64 { + let x1p700 = f64::from_bits(0x6bb0000000000000); // 0x1p700 === 2 ^ 700 + let x1p_700 = f64::from_bits(0x1430000000000000); // 0x1p-700 === 2 ^ -700 + + let mut uxi = x.to_bits(); + let mut uyi = y.to_bits(); + let uti; + let ex: i64; + let ey: i64; + let mut z: f64; + + /* arrange |x| >= |y| */ + uxi &= -1i64 as u64 >> 1; + uyi &= -1i64 as u64 >> 1; + if uxi < uyi { + uti = uxi; + uxi = uyi; + uyi = uti; + } + + /* special cases */ + ex = (uxi >> 52) as i64; + ey = (uyi >> 52) as i64; + x = f64::from_bits(uxi); + y = f64::from_bits(uyi); + /* note: hypot(inf,nan) == inf */ + if ey == 0x7ff { + return y; + } + if ex == 0x7ff || uyi == 0 { + return x; + } + /* note: hypot(x,y) ~= x + y*y/x/2 with inexact for small y/x */ + /* 64 difference is enough for ld80 double_t */ + if ex - ey > 64 { + return x + y; + } + + /* precise sqrt argument in nearest rounding mode without overflow */ + /* xh*xh must not overflow and xl*xl must not underflow in sq */ + z = 1.; + if ex > 0x3ff + 510 { + z = x1p700; + x *= x1p_700; + y *= x1p_700; + } else if ey < 0x3ff - 450 { + z = x1p_700; + x *= x1p700; + y *= x1p700; + } + let (hx, lx) = sq(x); + let (hy, ly) = sq(y); + z * sqrt(ly + lx + hy + hx) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/hypotf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/hypotf.rs new file mode 100644 index 000000000..576eebb33 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/hypotf.rs @@ -0,0 +1,43 @@ +use core::f32; + +use super::sqrtf; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn hypotf(mut x: f32, mut y: f32) -> f32 { + let x1p90 = f32::from_bits(0x6c800000); // 0x1p90f === 2 ^ 90 + let x1p_90 = f32::from_bits(0x12800000); // 0x1p-90f === 2 ^ -90 + + let mut uxi = x.to_bits(); + let mut uyi = y.to_bits(); + let uti; + let mut z: f32; + + uxi &= -1i32 as u32 >> 1; + uyi &= -1i32 as u32 >> 1; + if uxi < uyi { + uti = uxi; + uxi = uyi; + uyi = uti; + } + + x = f32::from_bits(uxi); + y = f32::from_bits(uyi); + if uyi == 0xff << 23 { + return y; + } + if uxi >= 0xff << 23 || uyi == 0 || uxi - uyi >= 25 << 23 { + return x + y; + } + + z = 1.; + if uxi >= (0x7f + 60) << 23 { + z = x1p90; + x *= x1p_90; + y *= x1p_90; + } else if uyi < (0x7f - 60) << 23 { + z = x1p_90; + x *= x1p90; + y *= x1p90; + } + z * sqrtf((x as f64 * x as f64 + y as f64 * y as f64) as f32) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/ilogb.rs b/src/rust/vendor/compiler_builtins/libm/src/math/ilogb.rs new file mode 100644 index 000000000..7d74dcfb6 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/ilogb.rs @@ -0,0 +1,32 @@ +const FP_ILOGBNAN: i32 = -1 - 0x7fffffff; +const FP_ILOGB0: i32 = FP_ILOGBNAN; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn ilogb(x: f64) -> i32 { + let mut i: u64 = x.to_bits(); + let e = ((i >> 52) & 0x7ff) as i32; + + if e == 0 { + i <<= 12; + if i == 0 { + force_eval!(0.0 / 0.0); + return FP_ILOGB0; + } + /* subnormal x */ + let mut e = -0x3ff; + while (i >> 63) == 0 { + e -= 1; + i <<= 1; + } + e + } else if e == 0x7ff { + force_eval!(0.0 / 0.0); + if (i << 12) != 0 { + FP_ILOGBNAN + } else { + i32::max_value() + } + } else { + e - 0x3ff + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/ilogbf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/ilogbf.rs new file mode 100644 index 000000000..0fa58748c --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/ilogbf.rs @@ -0,0 +1,32 @@ +const FP_ILOGBNAN: i32 = -1 - 0x7fffffff; +const FP_ILOGB0: i32 = FP_ILOGBNAN; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn ilogbf(x: f32) -> i32 { + let mut i = x.to_bits(); + let e = ((i >> 23) & 0xff) as i32; + + if e == 0 { + i <<= 9; + if i == 0 { + force_eval!(0.0 / 0.0); + return FP_ILOGB0; + } + /* subnormal x */ + let mut e = -0x7f; + while (i >> 31) == 0 { + e -= 1; + i <<= 1; + } + e + } else if e == 0xff { + force_eval!(0.0 / 0.0); + if (i << 9) != 0 { + FP_ILOGBNAN + } else { + i32::max_value() + } + } else { + e - 0x7f + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/j0.rs b/src/rust/vendor/compiler_builtins/libm/src/math/j0.rs new file mode 100644 index 000000000..c4258ccca --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/j0.rs @@ -0,0 +1,422 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_j0.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* j0(x), y0(x) + * Bessel function of the first and second kinds of order zero. + * Method -- j0(x): + * 1. For tiny x, we use j0(x) = 1 - x^2/4 + x^4/64 - ... + * 2. Reduce x to |x| since j0(x)=j0(-x), and + * for x in (0,2) + * j0(x) = 1-z/4+ z^2*R0/S0, where z = x*x; + * (precision: |j0-1+z/4-z^2R0/S0 |<2**-63.67 ) + * for x in (2,inf) + * j0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)-q0(x)*sin(x0)) + * where x0 = x-pi/4. It is better to compute sin(x0),cos(x0) + * as follow: + * cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4) + * = 1/sqrt(2) * (cos(x) + sin(x)) + * sin(x0) = sin(x)cos(pi/4)-cos(x)sin(pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * (To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one.) + * + * 3 Special cases + * j0(nan)= nan + * j0(0) = 1 + * j0(inf) = 0 + * + * Method -- y0(x): + * 1. For x<2. + * Since + * y0(x) = 2/pi*(j0(x)*(ln(x/2)+Euler) + x^2/4 - ...) + * therefore y0(x)-2/pi*j0(x)*ln(x) is an even function. + * We use the following function to approximate y0, + * y0(x) = U(z)/V(z) + (2/pi)*(j0(x)*ln(x)), z= x^2 + * where + * U(z) = u00 + u01*z + ... + u06*z^6 + * V(z) = 1 + v01*z + ... + v04*z^4 + * with absolute approximation error bounded by 2**-72. + * Note: For tiny x, U/V = u0 and j0(x)~1, hence + * y0(tiny) = u0 + (2/pi)*ln(tiny), (choose tiny<2**-27) + * 2. For x>=2. + * y0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)+q0(x)*sin(x0)) + * where x0 = x-pi/4. It is better to compute sin(x0),cos(x0) + * by the method mentioned above. + * 3. Special cases: y0(0)=-inf, y0(x<0)=NaN, y0(inf)=0. + */ + +use super::{cos, fabs, get_high_word, get_low_word, log, sin, sqrt}; +const INVSQRTPI: f64 = 5.64189583547756279280e-01; /* 0x3FE20DD7, 0x50429B6D */ +const TPI: f64 = 6.36619772367581382433e-01; /* 0x3FE45F30, 0x6DC9C883 */ + +/* common method when |x|>=2 */ +fn common(ix: u32, x: f64, y0: bool) -> f64 { + let s: f64; + let mut c: f64; + let mut ss: f64; + let mut cc: f64; + let z: f64; + + /* + * j0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x-pi/4)-q0(x)*sin(x-pi/4)) + * y0(x) = sqrt(2/(pi*x))*(p0(x)*sin(x-pi/4)+q0(x)*cos(x-pi/4)) + * + * sin(x-pi/4) = (sin(x) - cos(x))/sqrt(2) + * cos(x-pi/4) = (sin(x) + cos(x))/sqrt(2) + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + */ + s = sin(x); + c = cos(x); + if y0 { + c = -c; + } + cc = s + c; + /* avoid overflow in 2*x, big ulp error when x>=0x1p1023 */ + if ix < 0x7fe00000 { + ss = s - c; + z = -cos(2.0 * x); + if s * c < 0.0 { + cc = z / ss; + } else { + ss = z / cc; + } + if ix < 0x48000000 { + if y0 { + ss = -ss; + } + cc = pzero(x) * cc - qzero(x) * ss; + } + } + return INVSQRTPI * cc / sqrt(x); +} + +/* R0/S0 on [0, 2.00] */ +const R02: f64 = 1.56249999999999947958e-02; /* 0x3F8FFFFF, 0xFFFFFFFD */ +const R03: f64 = -1.89979294238854721751e-04; /* 0xBF28E6A5, 0xB61AC6E9 */ +const R04: f64 = 1.82954049532700665670e-06; /* 0x3EBEB1D1, 0x0C503919 */ +const R05: f64 = -4.61832688532103189199e-09; /* 0xBE33D5E7, 0x73D63FCE */ +const S01: f64 = 1.56191029464890010492e-02; /* 0x3F8FFCE8, 0x82C8C2A4 */ +const S02: f64 = 1.16926784663337450260e-04; /* 0x3F1EA6D2, 0xDD57DBF4 */ +const S03: f64 = 5.13546550207318111446e-07; /* 0x3EA13B54, 0xCE84D5A9 */ +const S04: f64 = 1.16614003333790000205e-09; /* 0x3E1408BC, 0xF4745D8F */ + +pub fn j0(mut x: f64) -> f64 { + let z: f64; + let r: f64; + let s: f64; + let mut ix: u32; + + ix = get_high_word(x); + ix &= 0x7fffffff; + + /* j0(+-inf)=0, j0(nan)=nan */ + if ix >= 0x7ff00000 { + return 1.0 / (x * x); + } + x = fabs(x); + + if ix >= 0x40000000 { + /* |x| >= 2 */ + /* large ulp error near zeros: 2.4, 5.52, 8.6537,.. */ + return common(ix, x, false); + } + + /* 1 - x*x/4 + x*x*R(x^2)/S(x^2) */ + if ix >= 0x3f200000 { + /* |x| >= 2**-13 */ + /* up to 4ulp error close to 2 */ + z = x * x; + r = z * (R02 + z * (R03 + z * (R04 + z * R05))); + s = 1.0 + z * (S01 + z * (S02 + z * (S03 + z * S04))); + return (1.0 + x / 2.0) * (1.0 - x / 2.0) + z * (r / s); + } + + /* 1 - x*x/4 */ + /* prevent underflow */ + /* inexact should be raised when x!=0, this is not done correctly */ + if ix >= 0x38000000 { + /* |x| >= 2**-127 */ + x = 0.25 * x * x; + } + return 1.0 - x; +} + +const U00: f64 = -7.38042951086872317523e-02; /* 0xBFB2E4D6, 0x99CBD01F */ +const U01: f64 = 1.76666452509181115538e-01; /* 0x3FC69D01, 0x9DE9E3FC */ +const U02: f64 = -1.38185671945596898896e-02; /* 0xBF8C4CE8, 0xB16CFA97 */ +const U03: f64 = 3.47453432093683650238e-04; /* 0x3F36C54D, 0x20B29B6B */ +const U04: f64 = -3.81407053724364161125e-06; /* 0xBECFFEA7, 0x73D25CAD */ +const U05: f64 = 1.95590137035022920206e-08; /* 0x3E550057, 0x3B4EABD4 */ +const U06: f64 = -3.98205194132103398453e-11; /* 0xBDC5E43D, 0x693FB3C8 */ +const V01: f64 = 1.27304834834123699328e-02; /* 0x3F8A1270, 0x91C9C71A */ +const V02: f64 = 7.60068627350353253702e-05; /* 0x3F13ECBB, 0xF578C6C1 */ +const V03: f64 = 2.59150851840457805467e-07; /* 0x3E91642D, 0x7FF202FD */ +const V04: f64 = 4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */ + +pub fn y0(x: f64) -> f64 { + let z: f64; + let u: f64; + let v: f64; + let ix: u32; + let lx: u32; + + ix = get_high_word(x); + lx = get_low_word(x); + + /* y0(nan)=nan, y0(<0)=nan, y0(0)=-inf, y0(inf)=0 */ + if ((ix << 1) | lx) == 0 { + return -1.0 / 0.0; + } + if (ix >> 31) != 0 { + return 0.0 / 0.0; + } + if ix >= 0x7ff00000 { + return 1.0 / x; + } + + if ix >= 0x40000000 { + /* x >= 2 */ + /* large ulp errors near zeros: 3.958, 7.086,.. */ + return common(ix, x, true); + } + + /* U(x^2)/V(x^2) + (2/pi)*j0(x)*log(x) */ + if ix >= 0x3e400000 { + /* x >= 2**-27 */ + /* large ulp error near the first zero, x ~= 0.89 */ + z = x * x; + u = U00 + z * (U01 + z * (U02 + z * (U03 + z * (U04 + z * (U05 + z * U06))))); + v = 1.0 + z * (V01 + z * (V02 + z * (V03 + z * V04))); + return u / v + TPI * (j0(x) * log(x)); + } + return U00 + TPI * log(x); +} + +/* The asymptotic expansions of pzero is + * 1 - 9/128 s^2 + 11025/98304 s^4 - ..., where s = 1/x. + * For x >= 2, We approximate pzero by + * pzero(x) = 1 + (R/S) + * where R = pR0 + pR1*s^2 + pR2*s^4 + ... + pR5*s^10 + * S = 1 + pS0*s^2 + ... + pS4*s^10 + * and + * | pzero(x)-1-R/S | <= 2 ** ( -60.26) + */ +const PR8: [f64; 6] = [ + /* for x in [inf, 8]=1/[0,0.125] */ + 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ + -7.03124999999900357484e-02, /* 0xBFB1FFFF, 0xFFFFFD32 */ + -8.08167041275349795626e+00, /* 0xC02029D0, 0xB44FA779 */ + -2.57063105679704847262e+02, /* 0xC0701102, 0x7B19E863 */ + -2.48521641009428822144e+03, /* 0xC0A36A6E, 0xCD4DCAFC */ + -5.25304380490729545272e+03, /* 0xC0B4850B, 0x36CC643D */ +]; +const PS8: [f64; 5] = [ + 1.16534364619668181717e+02, /* 0x405D2233, 0x07A96751 */ + 3.83374475364121826715e+03, /* 0x40ADF37D, 0x50596938 */ + 4.05978572648472545552e+04, /* 0x40E3D2BB, 0x6EB6B05F */ + 1.16752972564375915681e+05, /* 0x40FC810F, 0x8F9FA9BD */ + 4.76277284146730962675e+04, /* 0x40E74177, 0x4F2C49DC */ +]; + +const PR5: [f64; 6] = [ + /* for x in [8,4.5454]=1/[0.125,0.22001] */ + -1.14125464691894502584e-11, /* 0xBDA918B1, 0x47E495CC */ + -7.03124940873599280078e-02, /* 0xBFB1FFFF, 0xE69AFBC6 */ + -4.15961064470587782438e+00, /* 0xC010A370, 0xF90C6BBF */ + -6.76747652265167261021e+01, /* 0xC050EB2F, 0x5A7D1783 */ + -3.31231299649172967747e+02, /* 0xC074B3B3, 0x6742CC63 */ + -3.46433388365604912451e+02, /* 0xC075A6EF, 0x28A38BD7 */ +]; +const PS5: [f64; 5] = [ + 6.07539382692300335975e+01, /* 0x404E6081, 0x0C98C5DE */ + 1.05125230595704579173e+03, /* 0x40906D02, 0x5C7E2864 */ + 5.97897094333855784498e+03, /* 0x40B75AF8, 0x8FBE1D60 */ + 9.62544514357774460223e+03, /* 0x40C2CCB8, 0xFA76FA38 */ + 2.40605815922939109441e+03, /* 0x40A2CC1D, 0xC70BE864 */ +]; + +const PR3: [f64; 6] = [ + /* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ + -2.54704601771951915620e-09, /* 0xBE25E103, 0x6FE1AA86 */ + -7.03119616381481654654e-02, /* 0xBFB1FFF6, 0xF7C0E24B */ + -2.40903221549529611423e+00, /* 0xC00345B2, 0xAEA48074 */ + -2.19659774734883086467e+01, /* 0xC035F74A, 0x4CB94E14 */ + -5.80791704701737572236e+01, /* 0xC04D0A22, 0x420A1A45 */ + -3.14479470594888503854e+01, /* 0xC03F72AC, 0xA892D80F */ +]; +const PS3: [f64; 5] = [ + 3.58560338055209726349e+01, /* 0x4041ED92, 0x84077DD3 */ + 3.61513983050303863820e+02, /* 0x40769839, 0x464A7C0E */ + 1.19360783792111533330e+03, /* 0x4092A66E, 0x6D1061D6 */ + 1.12799679856907414432e+03, /* 0x40919FFC, 0xB8C39B7E */ + 1.73580930813335754692e+02, /* 0x4065B296, 0xFC379081 */ +]; + +const PR2: [f64; 6] = [ + /* for x in [2.8570,2]=1/[0.3499,0.5] */ + -8.87534333032526411254e-08, /* 0xBE77D316, 0xE927026D */ + -7.03030995483624743247e-02, /* 0xBFB1FF62, 0x495E1E42 */ + -1.45073846780952986357e+00, /* 0xBFF73639, 0x8A24A843 */ + -7.63569613823527770791e+00, /* 0xC01E8AF3, 0xEDAFA7F3 */ + -1.11931668860356747786e+01, /* 0xC02662E6, 0xC5246303 */ + -3.23364579351335335033e+00, /* 0xC009DE81, 0xAF8FE70F */ +]; +const PS2: [f64; 5] = [ + 2.22202997532088808441e+01, /* 0x40363865, 0x908B5959 */ + 1.36206794218215208048e+02, /* 0x4061069E, 0x0EE8878F */ + 2.70470278658083486789e+02, /* 0x4070E786, 0x42EA079B */ + 1.53875394208320329881e+02, /* 0x40633C03, 0x3AB6FAFF */ + 1.46576176948256193810e+01, /* 0x402D50B3, 0x44391809 */ +]; + +fn pzero(x: f64) -> f64 { + let p: &[f64; 6]; + let q: &[f64; 5]; + let z: f64; + let r: f64; + let s: f64; + let mut ix: u32; + + ix = get_high_word(x); + ix &= 0x7fffffff; + if ix >= 0x40200000 { + p = &PR8; + q = &PS8; + } else if ix >= 0x40122E8B { + p = &PR5; + q = &PS5; + } else if ix >= 0x4006DB6D { + p = &PR3; + q = &PS3; + } else + /*ix >= 0x40000000*/ + { + p = &PR2; + q = &PS2; + } + z = 1.0 / (x * x); + r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5])))); + s = 1.0 + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * q[4])))); + return 1.0 + r / s; +} + +/* For x >= 8, the asymptotic expansions of qzero is + * -1/8 s + 75/1024 s^3 - ..., where s = 1/x. + * We approximate pzero by + * qzero(x) = s*(-1.25 + (R/S)) + * where R = qR0 + qR1*s^2 + qR2*s^4 + ... + qR5*s^10 + * S = 1 + qS0*s^2 + ... + qS5*s^12 + * and + * | qzero(x)/s +1.25-R/S | <= 2 ** ( -61.22) + */ +const QR8: [f64; 6] = [ + /* for x in [inf, 8]=1/[0,0.125] */ + 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ + 7.32421874999935051953e-02, /* 0x3FB2BFFF, 0xFFFFFE2C */ + 1.17682064682252693899e+01, /* 0x40278952, 0x5BB334D6 */ + 5.57673380256401856059e+02, /* 0x40816D63, 0x15301825 */ + 8.85919720756468632317e+03, /* 0x40C14D99, 0x3E18F46D */ + 3.70146267776887834771e+04, /* 0x40E212D4, 0x0E901566 */ +]; +const QS8: [f64; 6] = [ + 1.63776026895689824414e+02, /* 0x406478D5, 0x365B39BC */ + 8.09834494656449805916e+03, /* 0x40BFA258, 0x4E6B0563 */ + 1.42538291419120476348e+05, /* 0x41016652, 0x54D38C3F */ + 8.03309257119514397345e+05, /* 0x412883DA, 0x83A52B43 */ + 8.40501579819060512818e+05, /* 0x4129A66B, 0x28DE0B3D */ + -3.43899293537866615225e+05, /* 0xC114FD6D, 0x2C9530C5 */ +]; + +const QR5: [f64; 6] = [ + /* for x in [8,4.5454]=1/[0.125,0.22001] */ + 1.84085963594515531381e-11, /* 0x3DB43D8F, 0x29CC8CD9 */ + 7.32421766612684765896e-02, /* 0x3FB2BFFF, 0xD172B04C */ + 5.83563508962056953777e+00, /* 0x401757B0, 0xB9953DD3 */ + 1.35111577286449829671e+02, /* 0x4060E392, 0x0A8788E9 */ + 1.02724376596164097464e+03, /* 0x40900CF9, 0x9DC8C481 */ + 1.98997785864605384631e+03, /* 0x409F17E9, 0x53C6E3A6 */ +]; +const QS5: [f64; 6] = [ + 8.27766102236537761883e+01, /* 0x4054B1B3, 0xFB5E1543 */ + 2.07781416421392987104e+03, /* 0x40A03BA0, 0xDA21C0CE */ + 1.88472887785718085070e+04, /* 0x40D267D2, 0x7B591E6D */ + 5.67511122894947329769e+04, /* 0x40EBB5E3, 0x97E02372 */ + 3.59767538425114471465e+04, /* 0x40E19118, 0x1F7A54A0 */ + -5.35434275601944773371e+03, /* 0xC0B4EA57, 0xBEDBC609 */ +]; + +const QR3: [f64; 6] = [ + /* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ + 4.37741014089738620906e-09, /* 0x3E32CD03, 0x6ADECB82 */ + 7.32411180042911447163e-02, /* 0x3FB2BFEE, 0x0E8D0842 */ + 3.34423137516170720929e+00, /* 0x400AC0FC, 0x61149CF5 */ + 4.26218440745412650017e+01, /* 0x40454F98, 0x962DAEDD */ + 1.70808091340565596283e+02, /* 0x406559DB, 0xE25EFD1F */ + 1.66733948696651168575e+02, /* 0x4064D77C, 0x81FA21E0 */ +]; +const QS3: [f64; 6] = [ + 4.87588729724587182091e+01, /* 0x40486122, 0xBFE343A6 */ + 7.09689221056606015736e+02, /* 0x40862D83, 0x86544EB3 */ + 3.70414822620111362994e+03, /* 0x40ACF04B, 0xE44DFC63 */ + 6.46042516752568917582e+03, /* 0x40B93C6C, 0xD7C76A28 */ + 2.51633368920368957333e+03, /* 0x40A3A8AA, 0xD94FB1C0 */ + -1.49247451836156386662e+02, /* 0xC062A7EB, 0x201CF40F */ +]; + +const QR2: [f64; 6] = [ + /* for x in [2.8570,2]=1/[0.3499,0.5] */ + 1.50444444886983272379e-07, /* 0x3E84313B, 0x54F76BDB */ + 7.32234265963079278272e-02, /* 0x3FB2BEC5, 0x3E883E34 */ + 1.99819174093815998816e+00, /* 0x3FFFF897, 0xE727779C */ + 1.44956029347885735348e+01, /* 0x402CFDBF, 0xAAF96FE5 */ + 3.16662317504781540833e+01, /* 0x403FAA8E, 0x29FBDC4A */ + 1.62527075710929267416e+01, /* 0x403040B1, 0x71814BB4 */ +]; +const QS2: [f64; 6] = [ + 3.03655848355219184498e+01, /* 0x403E5D96, 0xF7C07AED */ + 2.69348118608049844624e+02, /* 0x4070D591, 0xE4D14B40 */ + 8.44783757595320139444e+02, /* 0x408A6645, 0x22B3BF22 */ + 8.82935845112488550512e+02, /* 0x408B977C, 0x9C5CC214 */ + 2.12666388511798828631e+02, /* 0x406A9553, 0x0E001365 */ + -5.31095493882666946917e+00, /* 0xC0153E6A, 0xF8B32931 */ +]; + +fn qzero(x: f64) -> f64 { + let p: &[f64; 6]; + let q: &[f64; 6]; + let s: f64; + let r: f64; + let z: f64; + let mut ix: u32; + + ix = get_high_word(x); + ix &= 0x7fffffff; + if ix >= 0x40200000 { + p = &QR8; + q = &QS8; + } else if ix >= 0x40122E8B { + p = &QR5; + q = &QS5; + } else if ix >= 0x4006DB6D { + p = &QR3; + q = &QS3; + } else + /*ix >= 0x40000000*/ + { + p = &QR2; + q = &QS2; + } + z = 1.0 / (x * x); + r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5])))); + s = 1.0 + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * q[5]))))); + return (-0.125 + r / s) / x; +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/j0f.rs b/src/rust/vendor/compiler_builtins/libm/src/math/j0f.rs new file mode 100644 index 000000000..91c03dbbc --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/j0f.rs @@ -0,0 +1,359 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_j0f.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::{cosf, fabsf, logf, sinf, sqrtf}; + +const INVSQRTPI: f32 = 5.6418961287e-01; /* 0x3f106ebb */ +const TPI: f32 = 6.3661974669e-01; /* 0x3f22f983 */ + +fn common(ix: u32, x: f32, y0: bool) -> f32 { + let z: f32; + let s: f32; + let mut c: f32; + let mut ss: f32; + let mut cc: f32; + /* + * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x) + * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x) + */ + s = sinf(x); + c = cosf(x); + if y0 { + c = -c; + } + cc = s + c; + if ix < 0x7f000000 { + ss = s - c; + z = -cosf(2.0 * x); + if s * c < 0.0 { + cc = z / ss; + } else { + ss = z / cc; + } + if ix < 0x58800000 { + if y0 { + ss = -ss; + } + cc = pzerof(x) * cc - qzerof(x) * ss; + } + } + return INVSQRTPI * cc / sqrtf(x); +} + +/* R0/S0 on [0, 2.00] */ +const R02: f32 = 1.5625000000e-02; /* 0x3c800000 */ +const R03: f32 = -1.8997929874e-04; /* 0xb947352e */ +const R04: f32 = 1.8295404516e-06; /* 0x35f58e88 */ +const R05: f32 = -4.6183270541e-09; /* 0xb19eaf3c */ +const S01: f32 = 1.5619102865e-02; /* 0x3c7fe744 */ +const S02: f32 = 1.1692678527e-04; /* 0x38f53697 */ +const S03: f32 = 5.1354652442e-07; /* 0x3509daa6 */ +const S04: f32 = 1.1661400734e-09; /* 0x30a045e8 */ + +pub fn j0f(mut x: f32) -> f32 { + let z: f32; + let r: f32; + let s: f32; + let mut ix: u32; + + ix = x.to_bits(); + ix &= 0x7fffffff; + if ix >= 0x7f800000 { + return 1.0 / (x * x); + } + x = fabsf(x); + + if ix >= 0x40000000 { + /* |x| >= 2 */ + /* large ulp error near zeros */ + return common(ix, x, false); + } + if ix >= 0x3a000000 { + /* |x| >= 2**-11 */ + /* up to 4ulp error near 2 */ + z = x * x; + r = z * (R02 + z * (R03 + z * (R04 + z * R05))); + s = 1.0 + z * (S01 + z * (S02 + z * (S03 + z * S04))); + return (1.0 + x / 2.0) * (1.0 - x / 2.0) + z * (r / s); + } + if ix >= 0x21800000 { + /* |x| >= 2**-60 */ + x = 0.25 * x * x; + } + return 1.0 - x; +} + +const U00: f32 = -7.3804296553e-02; /* 0xbd9726b5 */ +const U01: f32 = 1.7666645348e-01; /* 0x3e34e80d */ +const U02: f32 = -1.3818567619e-02; /* 0xbc626746 */ +const U03: f32 = 3.4745343146e-04; /* 0x39b62a69 */ +const U04: f32 = -3.8140706238e-06; /* 0xb67ff53c */ +const U05: f32 = 1.9559013964e-08; /* 0x32a802ba */ +const U06: f32 = -3.9820518410e-11; /* 0xae2f21eb */ +const V01: f32 = 1.2730483897e-02; /* 0x3c509385 */ +const V02: f32 = 7.6006865129e-05; /* 0x389f65e0 */ +const V03: f32 = 2.5915085189e-07; /* 0x348b216c */ +const V04: f32 = 4.4111031494e-10; /* 0x2ff280c2 */ + +pub fn y0f(x: f32) -> f32 { + let z: f32; + let u: f32; + let v: f32; + let ix: u32; + + ix = x.to_bits(); + if (ix & 0x7fffffff) == 0 { + return -1.0 / 0.0; + } + if (ix >> 31) != 0 { + return 0.0 / 0.0; + } + if ix >= 0x7f800000 { + return 1.0 / x; + } + if ix >= 0x40000000 { + /* |x| >= 2.0 */ + /* large ulp error near zeros */ + return common(ix, x, true); + } + if ix >= 0x39000000 { + /* x >= 2**-13 */ + /* large ulp error at x ~= 0.89 */ + z = x * x; + u = U00 + z * (U01 + z * (U02 + z * (U03 + z * (U04 + z * (U05 + z * U06))))); + v = 1.0 + z * (V01 + z * (V02 + z * (V03 + z * V04))); + return u / v + TPI * (j0f(x) * logf(x)); + } + return U00 + TPI * logf(x); +} + +/* The asymptotic expansions of pzero is + * 1 - 9/128 s^2 + 11025/98304 s^4 - ..., where s = 1/x. + * For x >= 2, We approximate pzero by + * pzero(x) = 1 + (R/S) + * where R = pR0 + pR1*s^2 + pR2*s^4 + ... + pR5*s^10 + * S = 1 + pS0*s^2 + ... + pS4*s^10 + * and + * | pzero(x)-1-R/S | <= 2 ** ( -60.26) + */ +const PR8: [f32; 6] = [ + /* for x in [inf, 8]=1/[0,0.125] */ + 0.0000000000e+00, /* 0x00000000 */ + -7.0312500000e-02, /* 0xbd900000 */ + -8.0816707611e+00, /* 0xc1014e86 */ + -2.5706311035e+02, /* 0xc3808814 */ + -2.4852163086e+03, /* 0xc51b5376 */ + -5.2530439453e+03, /* 0xc5a4285a */ +]; +const PS8: [f32; 5] = [ + 1.1653436279e+02, /* 0x42e91198 */ + 3.8337448730e+03, /* 0x456f9beb */ + 4.0597855469e+04, /* 0x471e95db */ + 1.1675296875e+05, /* 0x47e4087c */ + 4.7627726562e+04, /* 0x473a0bba */ +]; +const PR5: [f32; 6] = [ + /* for x in [8,4.5454]=1/[0.125,0.22001] */ + -1.1412546255e-11, /* 0xad48c58a */ + -7.0312492549e-02, /* 0xbd8fffff */ + -4.1596107483e+00, /* 0xc0851b88 */ + -6.7674766541e+01, /* 0xc287597b */ + -3.3123129272e+02, /* 0xc3a59d9b */ + -3.4643338013e+02, /* 0xc3ad3779 */ +]; +const PS5: [f32; 5] = [ + 6.0753936768e+01, /* 0x42730408 */ + 1.0512523193e+03, /* 0x44836813 */ + 5.9789707031e+03, /* 0x45bad7c4 */ + 9.6254453125e+03, /* 0x461665c8 */ + 2.4060581055e+03, /* 0x451660ee */ +]; + +const PR3: [f32; 6] = [ + /* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ + -2.5470459075e-09, /* 0xb12f081b */ + -7.0311963558e-02, /* 0xbd8fffb8 */ + -2.4090321064e+00, /* 0xc01a2d95 */ + -2.1965976715e+01, /* 0xc1afba52 */ + -5.8079170227e+01, /* 0xc2685112 */ + -3.1447946548e+01, /* 0xc1fb9565 */ +]; +const PS3: [f32; 5] = [ + 3.5856033325e+01, /* 0x420f6c94 */ + 3.6151397705e+02, /* 0x43b4c1ca */ + 1.1936077881e+03, /* 0x44953373 */ + 1.1279968262e+03, /* 0x448cffe6 */ + 1.7358093262e+02, /* 0x432d94b8 */ +]; + +const PR2: [f32; 6] = [ + /* for x in [2.8570,2]=1/[0.3499,0.5] */ + -8.8753431271e-08, /* 0xb3be98b7 */ + -7.0303097367e-02, /* 0xbd8ffb12 */ + -1.4507384300e+00, /* 0xbfb9b1cc */ + -7.6356959343e+00, /* 0xc0f4579f */ + -1.1193166733e+01, /* 0xc1331736 */ + -3.2336456776e+00, /* 0xc04ef40d */ +]; +const PS2: [f32; 5] = [ + 2.2220300674e+01, /* 0x41b1c32d */ + 1.3620678711e+02, /* 0x430834f0 */ + 2.7047027588e+02, /* 0x43873c32 */ + 1.5387539673e+02, /* 0x4319e01a */ + 1.4657617569e+01, /* 0x416a859a */ +]; + +fn pzerof(x: f32) -> f32 { + let p: &[f32; 6]; + let q: &[f32; 5]; + let z: f32; + let r: f32; + let s: f32; + let mut ix: u32; + + ix = x.to_bits(); + ix &= 0x7fffffff; + if ix >= 0x41000000 { + p = &PR8; + q = &PS8; + } else if ix >= 0x409173eb { + p = &PR5; + q = &PS5; + } else if ix >= 0x4036d917 { + p = &PR3; + q = &PS3; + } else + /*ix >= 0x40000000*/ + { + p = &PR2; + q = &PS2; + } + z = 1.0 / (x * x); + r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5])))); + s = 1.0 + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * q[4])))); + return 1.0 + r / s; +} + +/* For x >= 8, the asymptotic expansions of qzero is + * -1/8 s + 75/1024 s^3 - ..., where s = 1/x. + * We approximate pzero by + * qzero(x) = s*(-1.25 + (R/S)) + * where R = qR0 + qR1*s^2 + qR2*s^4 + ... + qR5*s^10 + * S = 1 + qS0*s^2 + ... + qS5*s^12 + * and + * | qzero(x)/s +1.25-R/S | <= 2 ** ( -61.22) + */ +const QR8: [f32; 6] = [ + /* for x in [inf, 8]=1/[0,0.125] */ + 0.0000000000e+00, /* 0x00000000 */ + 7.3242187500e-02, /* 0x3d960000 */ + 1.1768206596e+01, /* 0x413c4a93 */ + 5.5767340088e+02, /* 0x440b6b19 */ + 8.8591972656e+03, /* 0x460a6cca */ + 3.7014625000e+04, /* 0x471096a0 */ +]; +const QS8: [f32; 6] = [ + 1.6377603149e+02, /* 0x4323c6aa */ + 8.0983447266e+03, /* 0x45fd12c2 */ + 1.4253829688e+05, /* 0x480b3293 */ + 8.0330925000e+05, /* 0x49441ed4 */ + 8.4050156250e+05, /* 0x494d3359 */ + -3.4389928125e+05, /* 0xc8a7eb69 */ +]; + +const QR5: [f32; 6] = [ + /* for x in [8,4.5454]=1/[0.125,0.22001] */ + 1.8408595828e-11, /* 0x2da1ec79 */ + 7.3242180049e-02, /* 0x3d95ffff */ + 5.8356351852e+00, /* 0x40babd86 */ + 1.3511157227e+02, /* 0x43071c90 */ + 1.0272437744e+03, /* 0x448067cd */ + 1.9899779053e+03, /* 0x44f8bf4b */ +]; +const QS5: [f32; 6] = [ + 8.2776611328e+01, /* 0x42a58da0 */ + 2.0778142090e+03, /* 0x4501dd07 */ + 1.8847289062e+04, /* 0x46933e94 */ + 5.6751113281e+04, /* 0x475daf1d */ + 3.5976753906e+04, /* 0x470c88c1 */ + -5.3543427734e+03, /* 0xc5a752be */ +]; + +const QR3: [f32; 6] = [ + /* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ + 4.3774099900e-09, /* 0x3196681b */ + 7.3241114616e-02, /* 0x3d95ff70 */ + 3.3442313671e+00, /* 0x405607e3 */ + 4.2621845245e+01, /* 0x422a7cc5 */ + 1.7080809021e+02, /* 0x432acedf */ + 1.6673394775e+02, /* 0x4326bbe4 */ +]; +const QS3: [f32; 6] = [ + 4.8758872986e+01, /* 0x42430916 */ + 7.0968920898e+02, /* 0x44316c1c */ + 3.7041481934e+03, /* 0x4567825f */ + 6.4604252930e+03, /* 0x45c9e367 */ + 2.5163337402e+03, /* 0x451d4557 */ + -1.4924745178e+02, /* 0xc3153f59 */ +]; + +const QR2: [f32; 6] = [ + /* for x in [2.8570,2]=1/[0.3499,0.5] */ + 1.5044444979e-07, /* 0x342189db */ + 7.3223426938e-02, /* 0x3d95f62a */ + 1.9981917143e+00, /* 0x3fffc4bf */ + 1.4495602608e+01, /* 0x4167edfd */ + 3.1666231155e+01, /* 0x41fd5471 */ + 1.6252708435e+01, /* 0x4182058c */ +]; +const QS2: [f32; 6] = [ + 3.0365585327e+01, /* 0x41f2ecb8 */ + 2.6934811401e+02, /* 0x4386ac8f */ + 8.4478375244e+02, /* 0x44533229 */ + 8.8293585205e+02, /* 0x445cbbe5 */ + 2.1266638184e+02, /* 0x4354aa98 */ + -5.3109550476e+00, /* 0xc0a9f358 */ +]; + +fn qzerof(x: f32) -> f32 { + let p: &[f32; 6]; + let q: &[f32; 6]; + let s: f32; + let r: f32; + let z: f32; + let mut ix: u32; + + ix = x.to_bits(); + ix &= 0x7fffffff; + if ix >= 0x41000000 { + p = &QR8; + q = &QS8; + } else if ix >= 0x409173eb { + p = &QR5; + q = &QS5; + } else if ix >= 0x4036d917 { + p = &QR3; + q = &QS3; + } else + /*ix >= 0x40000000*/ + { + p = &QR2; + q = &QS2; + } + z = 1.0 / (x * x); + r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5])))); + s = 1.0 + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * q[5]))))); + return (-0.125 + r / s) / x; +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/j1.rs b/src/rust/vendor/compiler_builtins/libm/src/math/j1.rs new file mode 100644 index 000000000..02a65ca5a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/j1.rs @@ -0,0 +1,414 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_j1.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* j1(x), y1(x) + * Bessel function of the first and second kinds of order zero. + * Method -- j1(x): + * 1. For tiny x, we use j1(x) = x/2 - x^3/16 + x^5/384 - ... + * 2. Reduce x to |x| since j1(x)=-j1(-x), and + * for x in (0,2) + * j1(x) = x/2 + x*z*R0/S0, where z = x*x; + * (precision: |j1/x - 1/2 - R0/S0 |<2**-61.51 ) + * for x in (2,inf) + * j1(x) = sqrt(2/(pi*x))*(p1(x)*cos(x1)-q1(x)*sin(x1)) + * y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x1)+q1(x)*cos(x1)) + * where x1 = x-3*pi/4. It is better to compute sin(x1),cos(x1) + * as follow: + * cos(x1) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * sin(x1) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4) + * = -1/sqrt(2) * (sin(x) + cos(x)) + * (To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one.) + * + * 3 Special cases + * j1(nan)= nan + * j1(0) = 0 + * j1(inf) = 0 + * + * Method -- y1(x): + * 1. screen out x<=0 cases: y1(0)=-inf, y1(x<0)=NaN + * 2. For x<2. + * Since + * y1(x) = 2/pi*(j1(x)*(ln(x/2)+Euler)-1/x-x/2+5/64*x^3-...) + * therefore y1(x)-2/pi*j1(x)*ln(x)-1/x is an odd function. + * We use the following function to approximate y1, + * y1(x) = x*U(z)/V(z) + (2/pi)*(j1(x)*ln(x)-1/x), z= x^2 + * where for x in [0,2] (abs err less than 2**-65.89) + * U(z) = U0[0] + U0[1]*z + ... + U0[4]*z^4 + * V(z) = 1 + v0[0]*z + ... + v0[4]*z^5 + * Note: For tiny x, 1/x dominate y1 and hence + * y1(tiny) = -2/pi/tiny, (choose tiny<2**-54) + * 3. For x>=2. + * y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x1)+q1(x)*cos(x1)) + * where x1 = x-3*pi/4. It is better to compute sin(x1),cos(x1) + * by method mentioned above. + */ + +use super::{cos, fabs, get_high_word, get_low_word, log, sin, sqrt}; + +const INVSQRTPI: f64 = 5.64189583547756279280e-01; /* 0x3FE20DD7, 0x50429B6D */ +const TPI: f64 = 6.36619772367581382433e-01; /* 0x3FE45F30, 0x6DC9C883 */ + +fn common(ix: u32, x: f64, y1: bool, sign: bool) -> f64 { + let z: f64; + let mut s: f64; + let c: f64; + let mut ss: f64; + let mut cc: f64; + + /* + * j1(x) = sqrt(2/(pi*x))*(p1(x)*cos(x-3pi/4)-q1(x)*sin(x-3pi/4)) + * y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x-3pi/4)+q1(x)*cos(x-3pi/4)) + * + * sin(x-3pi/4) = -(sin(x) + cos(x))/sqrt(2) + * cos(x-3pi/4) = (sin(x) - cos(x))/sqrt(2) + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + */ + s = sin(x); + if y1 { + s = -s; + } + c = cos(x); + cc = s - c; + if ix < 0x7fe00000 { + /* avoid overflow in 2*x */ + ss = -s - c; + z = cos(2.0 * x); + if s * c > 0.0 { + cc = z / ss; + } else { + ss = z / cc; + } + if ix < 0x48000000 { + if y1 { + ss = -ss; + } + cc = pone(x) * cc - qone(x) * ss; + } + } + if sign { + cc = -cc; + } + return INVSQRTPI * cc / sqrt(x); +} + +/* R0/S0 on [0,2] */ +const R00: f64 = -6.25000000000000000000e-02; /* 0xBFB00000, 0x00000000 */ +const R01: f64 = 1.40705666955189706048e-03; /* 0x3F570D9F, 0x98472C61 */ +const R02: f64 = -1.59955631084035597520e-05; /* 0xBEF0C5C6, 0xBA169668 */ +const R03: f64 = 4.96727999609584448412e-08; /* 0x3E6AAAFA, 0x46CA0BD9 */ +const S01: f64 = 1.91537599538363460805e-02; /* 0x3F939D0B, 0x12637E53 */ +const S02: f64 = 1.85946785588630915560e-04; /* 0x3F285F56, 0xB9CDF664 */ +const S03: f64 = 1.17718464042623683263e-06; /* 0x3EB3BFF8, 0x333F8498 */ +const S04: f64 = 5.04636257076217042715e-09; /* 0x3E35AC88, 0xC97DFF2C */ +const S05: f64 = 1.23542274426137913908e-11; /* 0x3DAB2ACF, 0xCFB97ED8 */ + +pub fn j1(x: f64) -> f64 { + let mut z: f64; + let r: f64; + let s: f64; + let mut ix: u32; + let sign: bool; + + ix = get_high_word(x); + sign = (ix >> 31) != 0; + ix &= 0x7fffffff; + if ix >= 0x7ff00000 { + return 1.0 / (x * x); + } + if ix >= 0x40000000 { + /* |x| >= 2 */ + return common(ix, fabs(x), false, sign); + } + if ix >= 0x38000000 { + /* |x| >= 2**-127 */ + z = x * x; + r = z * (R00 + z * (R01 + z * (R02 + z * R03))); + s = 1.0 + z * (S01 + z * (S02 + z * (S03 + z * (S04 + z * S05)))); + z = r / s; + } else { + /* avoid underflow, raise inexact if x!=0 */ + z = x; + } + return (0.5 + z) * x; +} + +const U0: [f64; 5] = [ + -1.96057090646238940668e-01, /* 0xBFC91866, 0x143CBC8A */ + 5.04438716639811282616e-02, /* 0x3FA9D3C7, 0x76292CD1 */ + -1.91256895875763547298e-03, /* 0xBF5F55E5, 0x4844F50F */ + 2.35252600561610495928e-05, /* 0x3EF8AB03, 0x8FA6B88E */ + -9.19099158039878874504e-08, /* 0xBE78AC00, 0x569105B8 */ +]; +const V0: [f64; 5] = [ + 1.99167318236649903973e-02, /* 0x3F94650D, 0x3F4DA9F0 */ + 2.02552581025135171496e-04, /* 0x3F2A8C89, 0x6C257764 */ + 1.35608801097516229404e-06, /* 0x3EB6C05A, 0x894E8CA6 */ + 6.22741452364621501295e-09, /* 0x3E3ABF1D, 0x5BA69A86 */ + 1.66559246207992079114e-11, /* 0x3DB25039, 0xDACA772A */ +]; + +pub fn y1(x: f64) -> f64 { + let z: f64; + let u: f64; + let v: f64; + let ix: u32; + let lx: u32; + + ix = get_high_word(x); + lx = get_low_word(x); + + /* y1(nan)=nan, y1(<0)=nan, y1(0)=-inf, y1(inf)=0 */ + if (ix << 1 | lx) == 0 { + return -1.0 / 0.0; + } + if (ix >> 31) != 0 { + return 0.0 / 0.0; + } + if ix >= 0x7ff00000 { + return 1.0 / x; + } + + if ix >= 0x40000000 { + /* x >= 2 */ + return common(ix, x, true, false); + } + if ix < 0x3c900000 { + /* x < 2**-54 */ + return -TPI / x; + } + z = x * x; + u = U0[0] + z * (U0[1] + z * (U0[2] + z * (U0[3] + z * U0[4]))); + v = 1.0 + z * (V0[0] + z * (V0[1] + z * (V0[2] + z * (V0[3] + z * V0[4])))); + return x * (u / v) + TPI * (j1(x) * log(x) - 1.0 / x); +} + +/* For x >= 8, the asymptotic expansions of pone is + * 1 + 15/128 s^2 - 4725/2^15 s^4 - ..., where s = 1/x. + * We approximate pone by + * pone(x) = 1 + (R/S) + * where R = pr0 + pr1*s^2 + pr2*s^4 + ... + pr5*s^10 + * S = 1 + ps0*s^2 + ... + ps4*s^10 + * and + * | pone(x)-1-R/S | <= 2 ** ( -60.06) + */ + +const PR8: [f64; 6] = [ + /* for x in [inf, 8]=1/[0,0.125] */ + 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ + 1.17187499999988647970e-01, /* 0x3FBDFFFF, 0xFFFFFCCE */ + 1.32394806593073575129e+01, /* 0x402A7A9D, 0x357F7FCE */ + 4.12051854307378562225e+02, /* 0x4079C0D4, 0x652EA590 */ + 3.87474538913960532227e+03, /* 0x40AE457D, 0xA3A532CC */ + 7.91447954031891731574e+03, /* 0x40BEEA7A, 0xC32782DD */ +]; +const PS8: [f64; 5] = [ + 1.14207370375678408436e+02, /* 0x405C8D45, 0x8E656CAC */ + 3.65093083420853463394e+03, /* 0x40AC85DC, 0x964D274F */ + 3.69562060269033463555e+04, /* 0x40E20B86, 0x97C5BB7F */ + 9.76027935934950801311e+04, /* 0x40F7D42C, 0xB28F17BB */ + 3.08042720627888811578e+04, /* 0x40DE1511, 0x697A0B2D */ +]; + +const PR5: [f64; 6] = [ + /* for x in [8,4.5454]=1/[0.125,0.22001] */ + 1.31990519556243522749e-11, /* 0x3DAD0667, 0xDAE1CA7D */ + 1.17187493190614097638e-01, /* 0x3FBDFFFF, 0xE2C10043 */ + 6.80275127868432871736e+00, /* 0x401B3604, 0x6E6315E3 */ + 1.08308182990189109773e+02, /* 0x405B13B9, 0x452602ED */ + 5.17636139533199752805e+02, /* 0x40802D16, 0xD052D649 */ + 5.28715201363337541807e+02, /* 0x408085B8, 0xBB7E0CB7 */ +]; +const PS5: [f64; 5] = [ + 5.92805987221131331921e+01, /* 0x404DA3EA, 0xA8AF633D */ + 9.91401418733614377743e+02, /* 0x408EFB36, 0x1B066701 */ + 5.35326695291487976647e+03, /* 0x40B4E944, 0x5706B6FB */ + 7.84469031749551231769e+03, /* 0x40BEA4B0, 0xB8A5BB15 */ + 1.50404688810361062679e+03, /* 0x40978030, 0x036F5E51 */ +]; + +const PR3: [f64; 6] = [ + 3.02503916137373618024e-09, /* 0x3E29FC21, 0xA7AD9EDD */ + 1.17186865567253592491e-01, /* 0x3FBDFFF5, 0x5B21D17B */ + 3.93297750033315640650e+00, /* 0x400F76BC, 0xE85EAD8A */ + 3.51194035591636932736e+01, /* 0x40418F48, 0x9DA6D129 */ + 9.10550110750781271918e+01, /* 0x4056C385, 0x4D2C1837 */ + 4.85590685197364919645e+01, /* 0x4048478F, 0x8EA83EE5 */ +]; +const PS3: [f64; 5] = [ + 3.47913095001251519989e+01, /* 0x40416549, 0xA134069C */ + 3.36762458747825746741e+02, /* 0x40750C33, 0x07F1A75F */ + 1.04687139975775130551e+03, /* 0x40905B7C, 0x5037D523 */ + 8.90811346398256432622e+02, /* 0x408BD67D, 0xA32E31E9 */ + 1.03787932439639277504e+02, /* 0x4059F26D, 0x7C2EED53 */ +]; + +const PR2: [f64; 6] = [ + /* for x in [2.8570,2]=1/[0.3499,0.5] */ + 1.07710830106873743082e-07, /* 0x3E7CE9D4, 0xF65544F4 */ + 1.17176219462683348094e-01, /* 0x3FBDFF42, 0xBE760D83 */ + 2.36851496667608785174e+00, /* 0x4002F2B7, 0xF98FAEC0 */ + 1.22426109148261232917e+01, /* 0x40287C37, 0x7F71A964 */ + 1.76939711271687727390e+01, /* 0x4031B1A8, 0x177F8EE2 */ + 5.07352312588818499250e+00, /* 0x40144B49, 0xA574C1FE */ +]; +const PS2: [f64; 5] = [ + 2.14364859363821409488e+01, /* 0x40356FBD, 0x8AD5ECDC */ + 1.25290227168402751090e+02, /* 0x405F5293, 0x14F92CD5 */ + 2.32276469057162813669e+02, /* 0x406D08D8, 0xD5A2DBD9 */ + 1.17679373287147100768e+02, /* 0x405D6B7A, 0xDA1884A9 */ + 8.36463893371618283368e+00, /* 0x4020BAB1, 0xF44E5192 */ +]; + +fn pone(x: f64) -> f64 { + let p: &[f64; 6]; + let q: &[f64; 5]; + let z: f64; + let r: f64; + let s: f64; + let mut ix: u32; + + ix = get_high_word(x); + ix &= 0x7fffffff; + if ix >= 0x40200000 { + p = &PR8; + q = &PS8; + } else if ix >= 0x40122E8B { + p = &PR5; + q = &PS5; + } else if ix >= 0x4006DB6D { + p = &PR3; + q = &PS3; + } else + /*ix >= 0x40000000*/ + { + p = &PR2; + q = &PS2; + } + z = 1.0 / (x * x); + r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5])))); + s = 1.0 + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * q[4])))); + return 1.0 + r / s; +} + +/* For x >= 8, the asymptotic expansions of qone is + * 3/8 s - 105/1024 s^3 - ..., where s = 1/x. + * We approximate pone by + * qone(x) = s*(0.375 + (R/S)) + * where R = qr1*s^2 + qr2*s^4 + ... + qr5*s^10 + * S = 1 + qs1*s^2 + ... + qs6*s^12 + * and + * | qone(x)/s -0.375-R/S | <= 2 ** ( -61.13) + */ + +const QR8: [f64; 6] = [ + /* for x in [inf, 8]=1/[0,0.125] */ + 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ + -1.02539062499992714161e-01, /* 0xBFBA3FFF, 0xFFFFFDF3 */ + -1.62717534544589987888e+01, /* 0xC0304591, 0xA26779F7 */ + -7.59601722513950107896e+02, /* 0xC087BCD0, 0x53E4B576 */ + -1.18498066702429587167e+04, /* 0xC0C724E7, 0x40F87415 */ + -4.84385124285750353010e+04, /* 0xC0E7A6D0, 0x65D09C6A */ +]; +const QS8: [f64; 6] = [ + 1.61395369700722909556e+02, /* 0x40642CA6, 0xDE5BCDE5 */ + 7.82538599923348465381e+03, /* 0x40BE9162, 0xD0D88419 */ + 1.33875336287249578163e+05, /* 0x4100579A, 0xB0B75E98 */ + 7.19657723683240939863e+05, /* 0x4125F653, 0x72869C19 */ + 6.66601232617776375264e+05, /* 0x412457D2, 0x7719AD5C */ + -2.94490264303834643215e+05, /* 0xC111F969, 0x0EA5AA18 */ +]; + +const QR5: [f64; 6] = [ + /* for x in [8,4.5454]=1/[0.125,0.22001] */ + -2.08979931141764104297e-11, /* 0xBDB6FA43, 0x1AA1A098 */ + -1.02539050241375426231e-01, /* 0xBFBA3FFF, 0xCB597FEF */ + -8.05644828123936029840e+00, /* 0xC0201CE6, 0xCA03AD4B */ + -1.83669607474888380239e+02, /* 0xC066F56D, 0x6CA7B9B0 */ + -1.37319376065508163265e+03, /* 0xC09574C6, 0x6931734F */ + -2.61244440453215656817e+03, /* 0xC0A468E3, 0x88FDA79D */ +]; +const QS5: [f64; 6] = [ + 8.12765501384335777857e+01, /* 0x405451B2, 0xFF5A11B2 */ + 1.99179873460485964642e+03, /* 0x409F1F31, 0xE77BF839 */ + 1.74684851924908907677e+04, /* 0x40D10F1F, 0x0D64CE29 */ + 4.98514270910352279316e+04, /* 0x40E8576D, 0xAABAD197 */ + 2.79480751638918118260e+04, /* 0x40DB4B04, 0xCF7C364B */ + -4.71918354795128470869e+03, /* 0xC0B26F2E, 0xFCFFA004 */ +]; + +const QR3: [f64; 6] = [ + -5.07831226461766561369e-09, /* 0xBE35CFA9, 0xD38FC84F */ + -1.02537829820837089745e-01, /* 0xBFBA3FEB, 0x51AEED54 */ + -4.61011581139473403113e+00, /* 0xC01270C2, 0x3302D9FF */ + -5.78472216562783643212e+01, /* 0xC04CEC71, 0xC25D16DA */ + -2.28244540737631695038e+02, /* 0xC06C87D3, 0x4718D55F */ + -2.19210128478909325622e+02, /* 0xC06B66B9, 0x5F5C1BF6 */ +]; +const QS3: [f64; 6] = [ + 4.76651550323729509273e+01, /* 0x4047D523, 0xCCD367E4 */ + 6.73865112676699709482e+02, /* 0x40850EEB, 0xC031EE3E */ + 3.38015286679526343505e+03, /* 0x40AA684E, 0x448E7C9A */ + 5.54772909720722782367e+03, /* 0x40B5ABBA, 0xA61D54A6 */ + 1.90311919338810798763e+03, /* 0x409DBC7A, 0x0DD4DF4B */ + -1.35201191444307340817e+02, /* 0xC060E670, 0x290A311F */ +]; + +const QR2: [f64; 6] = [ + /* for x in [2.8570,2]=1/[0.3499,0.5] */ + -1.78381727510958865572e-07, /* 0xBE87F126, 0x44C626D2 */ + -1.02517042607985553460e-01, /* 0xBFBA3E8E, 0x9148B010 */ + -2.75220568278187460720e+00, /* 0xC0060484, 0x69BB4EDA */ + -1.96636162643703720221e+01, /* 0xC033A9E2, 0xC168907F */ + -4.23253133372830490089e+01, /* 0xC04529A3, 0xDE104AAA */ + -2.13719211703704061733e+01, /* 0xC0355F36, 0x39CF6E52 */ +]; +const QS2: [f64; 6] = [ + 2.95333629060523854548e+01, /* 0x403D888A, 0x78AE64FF */ + 2.52981549982190529136e+02, /* 0x406F9F68, 0xDB821CBA */ + 7.57502834868645436472e+02, /* 0x4087AC05, 0xCE49A0F7 */ + 7.39393205320467245656e+02, /* 0x40871B25, 0x48D4C029 */ + 1.55949003336666123687e+02, /* 0x40637E5E, 0x3C3ED8D4 */ + -4.95949898822628210127e+00, /* 0xC013D686, 0xE71BE86B */ +]; + +fn qone(x: f64) -> f64 { + let p: &[f64; 6]; + let q: &[f64; 6]; + let s: f64; + let r: f64; + let z: f64; + let mut ix: u32; + + ix = get_high_word(x); + ix &= 0x7fffffff; + if ix >= 0x40200000 { + p = &QR8; + q = &QS8; + } else if ix >= 0x40122E8B { + p = &QR5; + q = &QS5; + } else if ix >= 0x4006DB6D { + p = &QR3; + q = &QS3; + } else + /*ix >= 0x40000000*/ + { + p = &QR2; + q = &QS2; + } + z = 1.0 / (x * x); + r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5])))); + s = 1.0 + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * q[5]))))); + return (0.375 + r / s) / x; +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/j1f.rs b/src/rust/vendor/compiler_builtins/libm/src/math/j1f.rs new file mode 100644 index 000000000..c39f8ff7e --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/j1f.rs @@ -0,0 +1,380 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_j1f.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::{cosf, fabsf, logf, sinf, sqrtf}; + +const INVSQRTPI: f32 = 5.6418961287e-01; /* 0x3f106ebb */ +const TPI: f32 = 6.3661974669e-01; /* 0x3f22f983 */ + +fn common(ix: u32, x: f32, y1: bool, sign: bool) -> f32 { + let z: f64; + let mut s: f64; + let c: f64; + let mut ss: f64; + let mut cc: f64; + + s = sinf(x) as f64; + if y1 { + s = -s; + } + c = cosf(x) as f64; + cc = s - c; + if ix < 0x7f000000 { + ss = -s - c; + z = cosf(2.0 * x) as f64; + if s * c > 0.0 { + cc = z / ss; + } else { + ss = z / cc; + } + if ix < 0x58800000 { + if y1 { + ss = -ss; + } + cc = (ponef(x) as f64) * cc - (qonef(x) as f64) * ss; + } + } + if sign { + cc = -cc; + } + return (((INVSQRTPI as f64) * cc) / (sqrtf(x) as f64)) as f32; +} + +/* R0/S0 on [0,2] */ +const R00: f32 = -6.2500000000e-02; /* 0xbd800000 */ +const R01: f32 = 1.4070566976e-03; /* 0x3ab86cfd */ +const R02: f32 = -1.5995563444e-05; /* 0xb7862e36 */ +const R03: f32 = 4.9672799207e-08; /* 0x335557d2 */ +const S01: f32 = 1.9153760746e-02; /* 0x3c9ce859 */ +const S02: f32 = 1.8594678841e-04; /* 0x3942fab6 */ +const S03: f32 = 1.1771846857e-06; /* 0x359dffc2 */ +const S04: f32 = 5.0463624390e-09; /* 0x31ad6446 */ +const S05: f32 = 1.2354227016e-11; /* 0x2d59567e */ + +pub fn j1f(x: f32) -> f32 { + let mut z: f32; + let r: f32; + let s: f32; + let mut ix: u32; + let sign: bool; + + ix = x.to_bits(); + sign = (ix >> 31) != 0; + ix &= 0x7fffffff; + if ix >= 0x7f800000 { + return 1.0 / (x * x); + } + if ix >= 0x40000000 { + /* |x| >= 2 */ + return common(ix, fabsf(x), false, sign); + } + if ix >= 0x39000000 { + /* |x| >= 2**-13 */ + z = x * x; + r = z * (R00 + z * (R01 + z * (R02 + z * R03))); + s = 1.0 + z * (S01 + z * (S02 + z * (S03 + z * (S04 + z * S05)))); + z = 0.5 + r / s; + } else { + z = 0.5; + } + return z * x; +} + +const U0: [f32; 5] = [ + -1.9605709612e-01, /* 0xbe48c331 */ + 5.0443872809e-02, /* 0x3d4e9e3c */ + -1.9125689287e-03, /* 0xbafaaf2a */ + 2.3525259166e-05, /* 0x37c5581c */ + -9.1909917899e-08, /* 0xb3c56003 */ +]; +const V0: [f32; 5] = [ + 1.9916731864e-02, /* 0x3ca3286a */ + 2.0255257550e-04, /* 0x3954644b */ + 1.3560879779e-06, /* 0x35b602d4 */ + 6.2274145840e-09, /* 0x31d5f8eb */ + 1.6655924903e-11, /* 0x2d9281cf */ +]; + +pub fn y1f(x: f32) -> f32 { + let z: f32; + let u: f32; + let v: f32; + let ix: u32; + + ix = x.to_bits(); + if (ix & 0x7fffffff) == 0 { + return -1.0 / 0.0; + } + if (ix >> 31) != 0 { + return 0.0 / 0.0; + } + if ix >= 0x7f800000 { + return 1.0 / x; + } + if ix >= 0x40000000 { + /* |x| >= 2.0 */ + return common(ix, x, true, false); + } + if ix < 0x33000000 { + /* x < 2**-25 */ + return -TPI / x; + } + z = x * x; + u = U0[0] + z * (U0[1] + z * (U0[2] + z * (U0[3] + z * U0[4]))); + v = 1.0 + z * (V0[0] + z * (V0[1] + z * (V0[2] + z * (V0[3] + z * V0[4])))); + return x * (u / v) + TPI * (j1f(x) * logf(x) - 1.0 / x); +} + +/* For x >= 8, the asymptotic expansions of pone is + * 1 + 15/128 s^2 - 4725/2^15 s^4 - ..., where s = 1/x. + * We approximate pone by + * pone(x) = 1 + (R/S) + * where R = pr0 + pr1*s^2 + pr2*s^4 + ... + pr5*s^10 + * S = 1 + ps0*s^2 + ... + ps4*s^10 + * and + * | pone(x)-1-R/S | <= 2 ** ( -60.06) + */ + +const PR8: [f32; 6] = [ + /* for x in [inf, 8]=1/[0,0.125] */ + 0.0000000000e+00, /* 0x00000000 */ + 1.1718750000e-01, /* 0x3df00000 */ + 1.3239480972e+01, /* 0x4153d4ea */ + 4.1205184937e+02, /* 0x43ce06a3 */ + 3.8747453613e+03, /* 0x45722bed */ + 7.9144794922e+03, /* 0x45f753d6 */ +]; +const PS8: [f32; 5] = [ + 1.1420736694e+02, /* 0x42e46a2c */ + 3.6509309082e+03, /* 0x45642ee5 */ + 3.6956207031e+04, /* 0x47105c35 */ + 9.7602796875e+04, /* 0x47bea166 */ + 3.0804271484e+04, /* 0x46f0a88b */ +]; + +const PR5: [f32; 6] = [ + /* for x in [8,4.5454]=1/[0.125,0.22001] */ + 1.3199052094e-11, /* 0x2d68333f */ + 1.1718749255e-01, /* 0x3defffff */ + 6.8027510643e+00, /* 0x40d9b023 */ + 1.0830818176e+02, /* 0x42d89dca */ + 5.1763616943e+02, /* 0x440168b7 */ + 5.2871520996e+02, /* 0x44042dc6 */ +]; +const PS5: [f32; 5] = [ + 5.9280597687e+01, /* 0x426d1f55 */ + 9.9140142822e+02, /* 0x4477d9b1 */ + 5.3532670898e+03, /* 0x45a74a23 */ + 7.8446904297e+03, /* 0x45f52586 */ + 1.5040468750e+03, /* 0x44bc0180 */ +]; + +const PR3: [f32; 6] = [ + 3.0250391081e-09, /* 0x314fe10d */ + 1.1718686670e-01, /* 0x3defffab */ + 3.9329774380e+00, /* 0x407bb5e7 */ + 3.5119403839e+01, /* 0x420c7a45 */ + 9.1055007935e+01, /* 0x42b61c2a */ + 4.8559066772e+01, /* 0x42423c7c */ +]; +const PS3: [f32; 5] = [ + 3.4791309357e+01, /* 0x420b2a4d */ + 3.3676245117e+02, /* 0x43a86198 */ + 1.0468714600e+03, /* 0x4482dbe3 */ + 8.9081134033e+02, /* 0x445eb3ed */ + 1.0378793335e+02, /* 0x42cf936c */ +]; + +const PR2: [f32; 6] = [ + /* for x in [2.8570,2]=1/[0.3499,0.5] */ + 1.0771083225e-07, /* 0x33e74ea8 */ + 1.1717621982e-01, /* 0x3deffa16 */ + 2.3685150146e+00, /* 0x401795c0 */ + 1.2242610931e+01, /* 0x4143e1bc */ + 1.7693971634e+01, /* 0x418d8d41 */ + 5.0735230446e+00, /* 0x40a25a4d */ +]; +const PS2: [f32; 5] = [ + 2.1436485291e+01, /* 0x41ab7dec */ + 1.2529022980e+02, /* 0x42fa9499 */ + 2.3227647400e+02, /* 0x436846c7 */ + 1.1767937469e+02, /* 0x42eb5bd7 */ + 8.3646392822e+00, /* 0x4105d590 */ +]; + +fn ponef(x: f32) -> f32 { + let p: &[f32; 6]; + let q: &[f32; 5]; + let z: f32; + let r: f32; + let s: f32; + let mut ix: u32; + + ix = x.to_bits(); + ix &= 0x7fffffff; + if ix >= 0x41000000 { + p = &PR8; + q = &PS8; + } else if ix >= 0x409173eb { + p = &PR5; + q = &PS5; + } else if ix >= 0x4036d917 { + p = &PR3; + q = &PS3; + } else + /*ix >= 0x40000000*/ + { + p = &PR2; + q = &PS2; + } + z = 1.0 / (x * x); + r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5])))); + s = 1.0 + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * q[4])))); + return 1.0 + r / s; +} + +/* For x >= 8, the asymptotic expansions of qone is + * 3/8 s - 105/1024 s^3 - ..., where s = 1/x. + * We approximate pone by + * qone(x) = s*(0.375 + (R/S)) + * where R = qr1*s^2 + qr2*s^4 + ... + qr5*s^10 + * S = 1 + qs1*s^2 + ... + qs6*s^12 + * and + * | qone(x)/s -0.375-R/S | <= 2 ** ( -61.13) + */ + +const QR8: [f32; 6] = [ + /* for x in [inf, 8]=1/[0,0.125] */ + 0.0000000000e+00, /* 0x00000000 */ + -1.0253906250e-01, /* 0xbdd20000 */ + -1.6271753311e+01, /* 0xc1822c8d */ + -7.5960174561e+02, /* 0xc43de683 */ + -1.1849806641e+04, /* 0xc639273a */ + -4.8438511719e+04, /* 0xc73d3683 */ +]; +const QS8: [f32; 6] = [ + 1.6139537048e+02, /* 0x43216537 */ + 7.8253862305e+03, /* 0x45f48b17 */ + 1.3387534375e+05, /* 0x4802bcd6 */ + 7.1965775000e+05, /* 0x492fb29c */ + 6.6660125000e+05, /* 0x4922be94 */ + -2.9449025000e+05, /* 0xc88fcb48 */ +]; + +const QR5: [f32; 6] = [ + /* for x in [8,4.5454]=1/[0.125,0.22001] */ + -2.0897993405e-11, /* 0xadb7d219 */ + -1.0253904760e-01, /* 0xbdd1fffe */ + -8.0564479828e+00, /* 0xc100e736 */ + -1.8366960144e+02, /* 0xc337ab6b */ + -1.3731937256e+03, /* 0xc4aba633 */ + -2.6124443359e+03, /* 0xc523471c */ +]; +const QS5: [f32; 6] = [ + 8.1276550293e+01, /* 0x42a28d98 */ + 1.9917987061e+03, /* 0x44f8f98f */ + 1.7468484375e+04, /* 0x468878f8 */ + 4.9851425781e+04, /* 0x4742bb6d */ + 2.7948074219e+04, /* 0x46da5826 */ + -4.7191835938e+03, /* 0xc5937978 */ +]; + +const QR3: [f32; 6] = [ + -5.0783124372e-09, /* 0xb1ae7d4f */ + -1.0253783315e-01, /* 0xbdd1ff5b */ + -4.6101160049e+00, /* 0xc0938612 */ + -5.7847221375e+01, /* 0xc267638e */ + -2.2824453735e+02, /* 0xc3643e9a */ + -2.1921012878e+02, /* 0xc35b35cb */ +]; +const QS3: [f32; 6] = [ + 4.7665153503e+01, /* 0x423ea91e */ + 6.7386511230e+02, /* 0x4428775e */ + 3.3801528320e+03, /* 0x45534272 */ + 5.5477290039e+03, /* 0x45ad5dd5 */ + 1.9031191406e+03, /* 0x44ede3d0 */ + -1.3520118713e+02, /* 0xc3073381 */ +]; + +const QR2: [f32; 6] = [ + /* for x in [2.8570,2]=1/[0.3499,0.5] */ + -1.7838172539e-07, /* 0xb43f8932 */ + -1.0251704603e-01, /* 0xbdd1f475 */ + -2.7522056103e+00, /* 0xc0302423 */ + -1.9663616180e+01, /* 0xc19d4f16 */ + -4.2325313568e+01, /* 0xc2294d1f */ + -2.1371921539e+01, /* 0xc1aaf9b2 */ +]; +const QS2: [f32; 6] = [ + 2.9533363342e+01, /* 0x41ec4454 */ + 2.5298155212e+02, /* 0x437cfb47 */ + 7.5750280762e+02, /* 0x443d602e */ + 7.3939318848e+02, /* 0x4438d92a */ + 1.5594900513e+02, /* 0x431bf2f2 */ + -4.9594988823e+00, /* 0xc09eb437 */ +]; + +fn qonef(x: f32) -> f32 { + let p: &[f32; 6]; + let q: &[f32; 6]; + let s: f32; + let r: f32; + let z: f32; + let mut ix: u32; + + ix = x.to_bits(); + ix &= 0x7fffffff; + if ix >= 0x41000000 { + p = &QR8; + q = &QS8; + } else if ix >= 0x409173eb { + p = &QR5; + q = &QS5; + } else if ix >= 0x4036d917 { + p = &QR3; + q = &QS3; + } else + /*ix >= 0x40000000*/ + { + p = &QR2; + q = &QS2; + } + z = 1.0 / (x * x); + r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5])))); + s = 1.0 + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * q[5]))))); + return (0.375 + r / s) / x; +} + +// PowerPC tests are failing on LLVM 13: https://github.com/rust-lang/rust/issues/88520 +#[cfg(not(target_arch = "powerpc64"))] +#[cfg(test)] +mod tests { + use super::{j1f, y1f}; + #[test] + fn test_j1f_2488() { + // 0x401F3E49 + assert_eq!(j1f(2.4881766_f32), 0.49999475_f32); + } + #[test] + fn test_y1f_2002() { + //allow slightly different result on x87 + let res = y1f(2.0000002_f32); + if cfg!(all(target_arch = "x86", not(target_feature = "sse2"))) && (res == -0.10703231_f32) + { + return; + } + assert_eq!(res, -0.10703229_f32); + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/jn.rs b/src/rust/vendor/compiler_builtins/libm/src/math/jn.rs new file mode 100644 index 000000000..1be167f84 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/jn.rs @@ -0,0 +1,343 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_jn.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* + * jn(n, x), yn(n, x) + * floating point Bessel's function of the 1st and 2nd kind + * of order n + * + * Special cases: + * y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal; + * y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal. + * Note 2. About jn(n,x), yn(n,x) + * For n=0, j0(x) is called, + * for n=1, j1(x) is called, + * for n<=x, forward recursion is used starting + * from values of j0(x) and j1(x). + * for n>x, a continued fraction approximation to + * j(n,x)/j(n-1,x) is evaluated and then backward + * recursion is used starting from a supposed value + * for j(n,x). The resulting value of j(0,x) is + * compared with the actual value to correct the + * supposed value of j(n,x). + * + * yn(n,x) is similar in all respects, except + * that forward recursion is used for all + * values of n>1. + */ + +use super::{cos, fabs, get_high_word, get_low_word, j0, j1, log, sin, sqrt, y0, y1}; + +const INVSQRTPI: f64 = 5.64189583547756279280e-01; /* 0x3FE20DD7, 0x50429B6D */ + +pub fn jn(n: i32, mut x: f64) -> f64 { + let mut ix: u32; + let lx: u32; + let nm1: i32; + let mut i: i32; + let mut sign: bool; + let mut a: f64; + let mut b: f64; + let mut temp: f64; + + ix = get_high_word(x); + lx = get_low_word(x); + sign = (ix >> 31) != 0; + ix &= 0x7fffffff; + + // -lx == !lx + 1 + if (ix | (lx | ((!lx).wrapping_add(1))) >> 31) > 0x7ff00000 { + /* nan */ + return x; + } + + /* J(-n,x) = (-1)^n * J(n, x), J(n, -x) = (-1)^n * J(n, x) + * Thus, J(-n,x) = J(n,-x) + */ + /* nm1 = |n|-1 is used instead of |n| to handle n==INT_MIN */ + if n == 0 { + return j0(x); + } + if n < 0 { + nm1 = -(n + 1); + x = -x; + sign = !sign; + } else { + nm1 = n - 1; + } + if nm1 == 0 { + return j1(x); + } + + sign &= (n & 1) != 0; /* even n: 0, odd n: signbit(x) */ + x = fabs(x); + if (ix | lx) == 0 || ix == 0x7ff00000 { + /* if x is 0 or inf */ + b = 0.0; + } else if (nm1 as f64) < x { + /* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */ + if ix >= 0x52d00000 { + /* x > 2**302 */ + /* (x >> n**2) + * Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi) + * Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi) + * Let s=sin(x), c=cos(x), + * xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then + * + * n sin(xn)*sqt2 cos(xn)*sqt2 + * ---------------------------------- + * 0 s-c c+s + * 1 -s-c -c+s + * 2 -s+c -c-s + * 3 s+c c-s + */ + temp = match nm1 & 3 { + 0 => -cos(x) + sin(x), + 1 => -cos(x) - sin(x), + 2 => cos(x) - sin(x), + 3 | _ => cos(x) + sin(x), + }; + b = INVSQRTPI * temp / sqrt(x); + } else { + a = j0(x); + b = j1(x); + i = 0; + while i < nm1 { + i += 1; + temp = b; + b = b * (2.0 * (i as f64) / x) - a; /* avoid underflow */ + a = temp; + } + } + } else { + if ix < 0x3e100000 { + /* x < 2**-29 */ + /* x is tiny, return the first Taylor expansion of J(n,x) + * J(n,x) = 1/n!*(x/2)^n - ... + */ + if nm1 > 32 { + /* underflow */ + b = 0.0; + } else { + temp = x * 0.5; + b = temp; + a = 1.0; + i = 2; + while i <= nm1 + 1 { + a *= i as f64; /* a = n! */ + b *= temp; /* b = (x/2)^n */ + i += 1; + } + b = b / a; + } + } else { + /* use backward recurrence */ + /* x x^2 x^2 + * J(n,x)/J(n-1,x) = ---- ------ ------ ..... + * 2n - 2(n+1) - 2(n+2) + * + * 1 1 1 + * (for large x) = ---- ------ ------ ..... + * 2n 2(n+1) 2(n+2) + * -- - ------ - ------ - + * x x x + * + * Let w = 2n/x and h=2/x, then the above quotient + * is equal to the continued fraction: + * 1 + * = ----------------------- + * 1 + * w - ----------------- + * 1 + * w+h - --------- + * w+2h - ... + * + * To determine how many terms needed, let + * Q(0) = w, Q(1) = w(w+h) - 1, + * Q(k) = (w+k*h)*Q(k-1) - Q(k-2), + * When Q(k) > 1e4 good for single + * When Q(k) > 1e9 good for double + * When Q(k) > 1e17 good for quadruple + */ + /* determine k */ + let mut t: f64; + let mut q0: f64; + let mut q1: f64; + let mut w: f64; + let h: f64; + let mut z: f64; + let mut tmp: f64; + let nf: f64; + + let mut k: i32; + + nf = (nm1 as f64) + 1.0; + w = 2.0 * nf / x; + h = 2.0 / x; + z = w + h; + q0 = w; + q1 = w * z - 1.0; + k = 1; + while q1 < 1.0e9 { + k += 1; + z += h; + tmp = z * q1 - q0; + q0 = q1; + q1 = tmp; + } + t = 0.0; + i = k; + while i >= 0 { + t = 1.0 / (2.0 * ((i as f64) + nf) / x - t); + i -= 1; + } + a = t; + b = 1.0; + /* estimate log((2/x)^n*n!) = n*log(2/x)+n*ln(n) + * Hence, if n*(log(2n/x)) > ... + * single 8.8722839355e+01 + * double 7.09782712893383973096e+02 + * long double 1.1356523406294143949491931077970765006170e+04 + * then recurrent value may overflow and the result is + * likely underflow to zero + */ + tmp = nf * log(fabs(w)); + if tmp < 7.09782712893383973096e+02 { + i = nm1; + while i > 0 { + temp = b; + b = b * (2.0 * (i as f64)) / x - a; + a = temp; + i -= 1; + } + } else { + i = nm1; + while i > 0 { + temp = b; + b = b * (2.0 * (i as f64)) / x - a; + a = temp; + /* scale b to avoid spurious overflow */ + let x1p500 = f64::from_bits(0x5f30000000000000); // 0x1p500 == 2^500 + if b > x1p500 { + a /= b; + t /= b; + b = 1.0; + } + i -= 1; + } + } + z = j0(x); + w = j1(x); + if fabs(z) >= fabs(w) { + b = t * z / b; + } else { + b = t * w / a; + } + } + } + + if sign { + -b + } else { + b + } +} + +pub fn yn(n: i32, x: f64) -> f64 { + let mut ix: u32; + let lx: u32; + let mut ib: u32; + let nm1: i32; + let mut sign: bool; + let mut i: i32; + let mut a: f64; + let mut b: f64; + let mut temp: f64; + + ix = get_high_word(x); + lx = get_low_word(x); + sign = (ix >> 31) != 0; + ix &= 0x7fffffff; + + // -lx == !lx + 1 + if (ix | (lx | ((!lx).wrapping_add(1))) >> 31) > 0x7ff00000 { + /* nan */ + return x; + } + if sign && (ix | lx) != 0 { + /* x < 0 */ + return 0.0 / 0.0; + } + if ix == 0x7ff00000 { + return 0.0; + } + + if n == 0 { + return y0(x); + } + if n < 0 { + nm1 = -(n + 1); + sign = (n & 1) != 0; + } else { + nm1 = n - 1; + sign = false; + } + if nm1 == 0 { + if sign { + return -y1(x); + } else { + return y1(x); + } + } + + if ix >= 0x52d00000 { + /* x > 2**302 */ + /* (x >> n**2) + * Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi) + * Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi) + * Let s=sin(x), c=cos(x), + * xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then + * + * n sin(xn)*sqt2 cos(xn)*sqt2 + * ---------------------------------- + * 0 s-c c+s + * 1 -s-c -c+s + * 2 -s+c -c-s + * 3 s+c c-s + */ + temp = match nm1 & 3 { + 0 => -sin(x) - cos(x), + 1 => -sin(x) + cos(x), + 2 => sin(x) + cos(x), + 3 | _ => sin(x) - cos(x), + }; + b = INVSQRTPI * temp / sqrt(x); + } else { + a = y0(x); + b = y1(x); + /* quit if b is -inf */ + ib = get_high_word(b); + i = 0; + while i < nm1 && ib != 0xfff00000 { + i += 1; + temp = b; + b = (2.0 * (i as f64) / x) * b - a; + ib = get_high_word(b); + a = temp; + } + } + + if sign { + -b + } else { + b + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/jnf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/jnf.rs new file mode 100644 index 000000000..360f62e20 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/jnf.rs @@ -0,0 +1,259 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_jnf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::{fabsf, j0f, j1f, logf, y0f, y1f}; + +pub fn jnf(n: i32, mut x: f32) -> f32 { + let mut ix: u32; + let mut nm1: i32; + let mut sign: bool; + let mut i: i32; + let mut a: f32; + let mut b: f32; + let mut temp: f32; + + ix = x.to_bits(); + sign = (ix >> 31) != 0; + ix &= 0x7fffffff; + if ix > 0x7f800000 { + /* nan */ + return x; + } + + /* J(-n,x) = J(n,-x), use |n|-1 to avoid overflow in -n */ + if n == 0 { + return j0f(x); + } + if n < 0 { + nm1 = -(n + 1); + x = -x; + sign = !sign; + } else { + nm1 = n - 1; + } + if nm1 == 0 { + return j1f(x); + } + + sign &= (n & 1) != 0; /* even n: 0, odd n: signbit(x) */ + x = fabsf(x); + if ix == 0 || ix == 0x7f800000 { + /* if x is 0 or inf */ + b = 0.0; + } else if (nm1 as f32) < x { + /* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */ + a = j0f(x); + b = j1f(x); + i = 0; + while i < nm1 { + i += 1; + temp = b; + b = b * (2.0 * (i as f32) / x) - a; + a = temp; + } + } else { + if ix < 0x35800000 { + /* x < 2**-20 */ + /* x is tiny, return the first Taylor expansion of J(n,x) + * J(n,x) = 1/n!*(x/2)^n - ... + */ + if nm1 > 8 { + /* underflow */ + nm1 = 8; + } + temp = 0.5 * x; + b = temp; + a = 1.0; + i = 2; + while i <= nm1 + 1 { + a *= i as f32; /* a = n! */ + b *= temp; /* b = (x/2)^n */ + i += 1; + } + b = b / a; + } else { + /* use backward recurrence */ + /* x x^2 x^2 + * J(n,x)/J(n-1,x) = ---- ------ ------ ..... + * 2n - 2(n+1) - 2(n+2) + * + * 1 1 1 + * (for large x) = ---- ------ ------ ..... + * 2n 2(n+1) 2(n+2) + * -- - ------ - ------ - + * x x x + * + * Let w = 2n/x and h=2/x, then the above quotient + * is equal to the continued fraction: + * 1 + * = ----------------------- + * 1 + * w - ----------------- + * 1 + * w+h - --------- + * w+2h - ... + * + * To determine how many terms needed, let + * Q(0) = w, Q(1) = w(w+h) - 1, + * Q(k) = (w+k*h)*Q(k-1) - Q(k-2), + * When Q(k) > 1e4 good for single + * When Q(k) > 1e9 good for double + * When Q(k) > 1e17 good for quadruple + */ + /* determine k */ + let mut t: f32; + let mut q0: f32; + let mut q1: f32; + let mut w: f32; + let h: f32; + let mut z: f32; + let mut tmp: f32; + let nf: f32; + let mut k: i32; + + nf = (nm1 as f32) + 1.0; + w = 2.0 * (nf as f32) / x; + h = 2.0 / x; + z = w + h; + q0 = w; + q1 = w * z - 1.0; + k = 1; + while q1 < 1.0e4 { + k += 1; + z += h; + tmp = z * q1 - q0; + q0 = q1; + q1 = tmp; + } + t = 0.0; + i = k; + while i >= 0 { + t = 1.0 / (2.0 * ((i as f32) + nf) / x - t); + i -= 1; + } + a = t; + b = 1.0; + /* estimate log((2/x)^n*n!) = n*log(2/x)+n*ln(n) + * Hence, if n*(log(2n/x)) > ... + * single 8.8722839355e+01 + * double 7.09782712893383973096e+02 + * long double 1.1356523406294143949491931077970765006170e+04 + * then recurrent value may overflow and the result is + * likely underflow to zero + */ + tmp = nf * logf(fabsf(w)); + if tmp < 88.721679688 { + i = nm1; + while i > 0 { + temp = b; + b = 2.0 * (i as f32) * b / x - a; + a = temp; + i -= 1; + } + } else { + i = nm1; + while i > 0 { + temp = b; + b = 2.0 * (i as f32) * b / x - a; + a = temp; + /* scale b to avoid spurious overflow */ + let x1p60 = f32::from_bits(0x5d800000); // 0x1p60 == 2^60 + if b > x1p60 { + a /= b; + t /= b; + b = 1.0; + } + i -= 1; + } + } + z = j0f(x); + w = j1f(x); + if fabsf(z) >= fabsf(w) { + b = t * z / b; + } else { + b = t * w / a; + } + } + } + + if sign { + -b + } else { + b + } +} + +pub fn ynf(n: i32, x: f32) -> f32 { + let mut ix: u32; + let mut ib: u32; + let nm1: i32; + let mut sign: bool; + let mut i: i32; + let mut a: f32; + let mut b: f32; + let mut temp: f32; + + ix = x.to_bits(); + sign = (ix >> 31) != 0; + ix &= 0x7fffffff; + if ix > 0x7f800000 { + /* nan */ + return x; + } + if sign && ix != 0 { + /* x < 0 */ + return 0.0 / 0.0; + } + if ix == 0x7f800000 { + return 0.0; + } + + if n == 0 { + return y0f(x); + } + if n < 0 { + nm1 = -(n + 1); + sign = (n & 1) != 0; + } else { + nm1 = n - 1; + sign = false; + } + if nm1 == 0 { + if sign { + return -y1f(x); + } else { + return y1f(x); + } + } + + a = y0f(x); + b = y1f(x); + /* quit if b is -inf */ + ib = b.to_bits(); + i = 0; + while i < nm1 && ib != 0xff800000 { + i += 1; + temp = b; + b = (2.0 * (i as f32) / x) * b - a; + ib = b.to_bits(); + a = temp; + } + + if sign { + -b + } else { + b + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/k_cos.rs b/src/rust/vendor/compiler_builtins/libm/src/math/k_cos.rs new file mode 100644 index 000000000..49b2fc64d --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/k_cos.rs @@ -0,0 +1,62 @@ +// origin: FreeBSD /usr/src/lib/msun/src/k_cos.c +// +// ==================================================== +// Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. +// +// Developed at SunSoft, a Sun Microsystems, Inc. business. +// Permission to use, copy, modify, and distribute this +// software is freely granted, provided that this notice +// is preserved. +// ==================================================== + +const C1: f64 = 4.16666666666666019037e-02; /* 0x3FA55555, 0x5555554C */ +const C2: f64 = -1.38888888888741095749e-03; /* 0xBF56C16C, 0x16C15177 */ +const C3: f64 = 2.48015872894767294178e-05; /* 0x3EFA01A0, 0x19CB1590 */ +const C4: f64 = -2.75573143513906633035e-07; /* 0xBE927E4F, 0x809C52AD */ +const C5: f64 = 2.08757232129817482790e-09; /* 0x3E21EE9E, 0xBDB4B1C4 */ +const C6: f64 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ + +// kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164 +// Input x is assumed to be bounded by ~pi/4 in magnitude. +// Input y is the tail of x. +// +// Algorithm +// 1. Since cos(-x) = cos(x), we need only to consider positive x. +// 2. if x < 2^-27 (hx<0x3e400000 0), return 1 with inexact if x!=0. +// 3. cos(x) is approximated by a polynomial of degree 14 on +// [0,pi/4] +// 4 14 +// cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x +// where the remez error is +// +// | 2 4 6 8 10 12 14 | -58 +// |cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x +C6*x )| <= 2 +// | | +// +// 4 6 8 10 12 14 +// 4. let r = C1*x +C2*x +C3*x +C4*x +C5*x +C6*x , then +// cos(x) ~ 1 - x*x/2 + r +// since cos(x+y) ~ cos(x) - sin(x)*y +// ~ cos(x) - x*y, +// a correction term is necessary in cos(x) and hence +// cos(x+y) = 1 - (x*x/2 - (r - x*y)) +// For better accuracy, rearrange to +// cos(x+y) ~ w + (tmp + (r-x*y)) +// where w = 1 - x*x/2 and tmp is a tiny correction term +// (1 - x*x/2 == w + tmp exactly in infinite precision). +// The exactness of w + tmp in infinite precision depends on w +// and tmp having the same precision as x. If they have extra +// precision due to compiler bugs, then the extra precision is +// only good provided it is retained in all terms of the final +// expression for cos(). Retention happens in all cases tested +// under FreeBSD, so don't pessimize things by forcibly clipping +// any extra precision in w. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub(crate) fn k_cos(x: f64, y: f64) -> f64 { + let z = x * x; + let w = z * z; + let r = z * (C1 + z * (C2 + z * C3)) + w * w * (C4 + z * (C5 + z * C6)); + let hz = 0.5 * z; + let w = 1.0 - hz; + w + (((1.0 - w) - hz) + (z * r - x * y)) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/k_cosf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/k_cosf.rs new file mode 100644 index 000000000..e99f2348c --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/k_cosf.rs @@ -0,0 +1,29 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/k_cosf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + * Debugged and optimized by Bruce D. Evans. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* |cos(x) - c(x)| < 2**-34.1 (~[-5.37e-11, 5.295e-11]). */ +const C0: f64 = -0.499999997251031003120; /* -0x1ffffffd0c5e81.0p-54 */ +const C1: f64 = 0.0416666233237390631894; /* 0x155553e1053a42.0p-57 */ +const C2: f64 = -0.00138867637746099294692; /* -0x16c087e80f1e27.0p-62 */ +const C3: f64 = 0.0000243904487962774090654; /* 0x199342e0ee5069.0p-68 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub(crate) fn k_cosf(x: f64) -> f32 { + let z = x * x; + let w = z * z; + let r = C2 + z * C3; + (((1.0 + z * C0) + w * C1) + (w * z) * r) as f32 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/k_expo2.rs b/src/rust/vendor/compiler_builtins/libm/src/math/k_expo2.rs new file mode 100644 index 000000000..7345075f3 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/k_expo2.rs @@ -0,0 +1,14 @@ +use super::exp; + +/* k is such that k*ln2 has minimal relative error and x - kln2 > log(FLT_MIN) */ +const K: i32 = 2043; + +/* expf(x)/2 for x >= log(FLT_MAX), slightly better than 0.5f*expf(x/2)*expf(x/2) */ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub(crate) fn k_expo2(x: f64) -> f64 { + let k_ln2 = f64::from_bits(0x40962066151add8b); + /* note that k is odd and scale*scale overflows */ + let scale = f64::from_bits(((((0x3ff + K / 2) as u32) << 20) as u64) << 32); + /* exp(x - k ln2) * 2**(k-1) */ + exp(x - k_ln2) * scale * scale +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/k_expo2f.rs b/src/rust/vendor/compiler_builtins/libm/src/math/k_expo2f.rs new file mode 100644 index 000000000..fbd7b27d5 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/k_expo2f.rs @@ -0,0 +1,14 @@ +use super::expf; + +/* k is such that k*ln2 has minimal relative error and x - kln2 > log(FLT_MIN) */ +const K: i32 = 235; + +/* expf(x)/2 for x >= log(FLT_MAX), slightly better than 0.5f*expf(x/2)*expf(x/2) */ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub(crate) fn k_expo2f(x: f32) -> f32 { + let k_ln2 = f32::from_bits(0x4322e3bc); + /* note that k is odd and scale*scale overflows */ + let scale = f32::from_bits(((0x7f + K / 2) as u32) << 23); + /* exp(x - k ln2) * 2**(k-1) */ + expf(x - k_ln2) * scale * scale +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/k_sin.rs b/src/rust/vendor/compiler_builtins/libm/src/math/k_sin.rs new file mode 100644 index 000000000..9dd96c944 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/k_sin.rs @@ -0,0 +1,57 @@ +// origin: FreeBSD /usr/src/lib/msun/src/k_sin.c +// +// ==================================================== +// Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. +// +// Developed at SunSoft, a Sun Microsystems, Inc. business. +// Permission to use, copy, modify, and distribute this +// software is freely granted, provided that this notice +// is preserved. +// ==================================================== + +const S1: f64 = -1.66666666666666324348e-01; /* 0xBFC55555, 0x55555549 */ +const S2: f64 = 8.33333333332248946124e-03; /* 0x3F811111, 0x1110F8A6 */ +const S3: f64 = -1.98412698298579493134e-04; /* 0xBF2A01A0, 0x19C161D5 */ +const S4: f64 = 2.75573137070700676789e-06; /* 0x3EC71DE3, 0x57B1FE7D */ +const S5: f64 = -2.50507602534068634195e-08; /* 0xBE5AE5E6, 0x8A2B9CEB */ +const S6: f64 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ + +// kernel sin function on ~[-pi/4, pi/4] (except on -0), pi/4 ~ 0.7854 +// Input x is assumed to be bounded by ~pi/4 in magnitude. +// Input y is the tail of x. +// Input iy indicates whether y is 0. (if iy=0, y assume to be 0). +// +// Algorithm +// 1. Since sin(-x) = -sin(x), we need only to consider positive x. +// 2. Callers must return sin(-0) = -0 without calling here since our +// odd polynomial is not evaluated in a way that preserves -0. +// Callers may do the optimization sin(x) ~ x for tiny x. +// 3. sin(x) is approximated by a polynomial of degree 13 on +// [0,pi/4] +// 3 13 +// sin(x) ~ x + S1*x + ... + S6*x +// where +// +// |sin(x) 2 4 6 8 10 12 | -58 +// |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x +S6*x )| <= 2 +// | x | +// +// 4. sin(x+y) = sin(x) + sin'(x')*y +// ~ sin(x) + (1-x*x/2)*y +// For better accuracy, let +// 3 2 2 2 2 +// r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6)))) +// then 3 2 +// sin(x) = x + (S1*x + (x *(r-y/2)+y)) +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub(crate) fn k_sin(x: f64, y: f64, iy: i32) -> f64 { + let z = x * x; + let w = z * z; + let r = S2 + z * (S3 + z * S4) + z * w * (S5 + z * S6); + let v = z * x; + if iy == 0 { + x + v * (S1 + z * r) + } else { + x - ((z * (0.5 * y - v * r) - y) - v * S1) + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/k_sinf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/k_sinf.rs new file mode 100644 index 000000000..88d10caba --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/k_sinf.rs @@ -0,0 +1,30 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/k_sinf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + * Optimized by Bruce D. Evans. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* |sin(x)/x - s(x)| < 2**-37.5 (~[-4.89e-12, 4.824e-12]). */ +const S1: f64 = -0.166666666416265235595; /* -0x15555554cbac77.0p-55 */ +const S2: f64 = 0.0083333293858894631756; /* 0x111110896efbb2.0p-59 */ +const S3: f64 = -0.000198393348360966317347; /* -0x1a00f9e2cae774.0p-65 */ +const S4: f64 = 0.0000027183114939898219064; /* 0x16cd878c3b46a7.0p-71 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub(crate) fn k_sinf(x: f64) -> f32 { + let z = x * x; + let w = z * z; + let r = S3 + z * S4; + let s = z * x; + ((x + s * (S1 + z * S2)) + s * w * r) as f32 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/k_tan.rs b/src/rust/vendor/compiler_builtins/libm/src/math/k_tan.rs new file mode 100644 index 000000000..d177010bb --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/k_tan.rs @@ -0,0 +1,105 @@ +// origin: FreeBSD /usr/src/lib/msun/src/k_tan.c */ +// +// ==================================================== +// Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. +// +// Permission to use, copy, modify, and distribute this +// software is freely granted, provided that this notice +// is preserved. +// ==================================================== + +// kernel tan function on ~[-pi/4, pi/4] (except on -0), pi/4 ~ 0.7854 +// Input x is assumed to be bounded by ~pi/4 in magnitude. +// Input y is the tail of x. +// Input odd indicates whether tan (if odd = 0) or -1/tan (if odd = 1) is returned. +// +// Algorithm +// 1. Since tan(-x) = -tan(x), we need only to consider positive x. +// 2. Callers must return tan(-0) = -0 without calling here since our +// odd polynomial is not evaluated in a way that preserves -0. +// Callers may do the optimization tan(x) ~ x for tiny x. +// 3. tan(x) is approximated by a odd polynomial of degree 27 on +// [0,0.67434] +// 3 27 +// tan(x) ~ x + T1*x + ... + T13*x +// where +// +// |tan(x) 2 4 26 | -59.2 +// |----- - (1+T1*x +T2*x +.... +T13*x )| <= 2 +// | x | +// +// Note: tan(x+y) = tan(x) + tan'(x)*y +// ~ tan(x) + (1+x*x)*y +// Therefore, for better accuracy in computing tan(x+y), let +// 3 2 2 2 2 +// r = x *(T2+x *(T3+x *(...+x *(T12+x *T13)))) +// then +// 3 2 +// tan(x+y) = x + (T1*x + (x *(r+y)+y)) +// +// 4. For x in [0.67434,pi/4], let y = pi/4 - x, then +// tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y)) +// = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y))) +static T: [f64; 13] = [ + 3.33333333333334091986e-01, /* 3FD55555, 55555563 */ + 1.33333333333201242699e-01, /* 3FC11111, 1110FE7A */ + 5.39682539762260521377e-02, /* 3FABA1BA, 1BB341FE */ + 2.18694882948595424599e-02, /* 3F9664F4, 8406D637 */ + 8.86323982359930005737e-03, /* 3F8226E3, E96E8493 */ + 3.59207910759131235356e-03, /* 3F6D6D22, C9560328 */ + 1.45620945432529025516e-03, /* 3F57DBC8, FEE08315 */ + 5.88041240820264096874e-04, /* 3F4344D8, F2F26501 */ + 2.46463134818469906812e-04, /* 3F3026F7, 1A8D1068 */ + 7.81794442939557092300e-05, /* 3F147E88, A03792A6 */ + 7.14072491382608190305e-05, /* 3F12B80F, 32F0A7E9 */ + -1.85586374855275456654e-05, /* BEF375CB, DB605373 */ + 2.59073051863633712884e-05, /* 3EFB2A70, 74BF7AD4 */ +]; +const PIO4: f64 = 7.85398163397448278999e-01; /* 3FE921FB, 54442D18 */ +const PIO4_LO: f64 = 3.06161699786838301793e-17; /* 3C81A626, 33145C07 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub(crate) fn k_tan(mut x: f64, mut y: f64, odd: i32) -> f64 { + let hx = (f64::to_bits(x) >> 32) as u32; + let big = (hx & 0x7fffffff) >= 0x3FE59428; /* |x| >= 0.6744 */ + if big { + let sign = hx >> 31; + if sign != 0 { + x = -x; + y = -y; + } + x = (PIO4 - x) + (PIO4_LO - y); + y = 0.0; + } + let z = x * x; + let w = z * z; + /* + * Break x^5*(T[1]+x^2*T[2]+...) into + * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) + + * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12])) + */ + let r = T[1] + w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] + w * T[11])))); + let v = z * (T[2] + w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] + w * T[12]))))); + let s = z * x; + let r = y + z * (s * (r + v) + y) + s * T[0]; + let w = x + r; + if big { + let sign = hx >> 31; + let s = 1.0 - 2.0 * odd as f64; + let v = s - 2.0 * (x + (r - w * w / (w + s))); + return if sign != 0 { -v } else { v }; + } + if odd == 0 { + return w; + } + /* -1.0/(x+r) has up to 2ulp error, so compute it accurately */ + let w0 = zero_low_word(w); + let v = r - (w0 - x); /* w0+v = r+x */ + let a = -1.0 / w; + let a0 = zero_low_word(a); + a0 + a * (1.0 + a0 * w0 + a0 * v) +} + +fn zero_low_word(x: f64) -> f64 { + f64::from_bits(f64::to_bits(x) & 0xFFFF_FFFF_0000_0000) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/k_tanf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/k_tanf.rs new file mode 100644 index 000000000..af8db539d --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/k_tanf.rs @@ -0,0 +1,46 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/k_tan.c */ +/* + * ==================================================== + * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* |tan(x)/x - t(x)| < 2**-25.5 (~[-2e-08, 2e-08]). */ +const T: [f64; 6] = [ + 0.333331395030791399758, /* 0x15554d3418c99f.0p-54 */ + 0.133392002712976742718, /* 0x1112fd38999f72.0p-55 */ + 0.0533812378445670393523, /* 0x1b54c91d865afe.0p-57 */ + 0.0245283181166547278873, /* 0x191df3908c33ce.0p-58 */ + 0.00297435743359967304927, /* 0x185dadfcecf44e.0p-61 */ + 0.00946564784943673166728, /* 0x1362b9bf971bcd.0p-59 */ +]; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub(crate) fn k_tanf(x: f64, odd: bool) -> f32 { + let z = x * x; + /* + * Split up the polynomial into small independent terms to give + * opportunities for parallel evaluation. The chosen splitting is + * micro-optimized for Athlons (XP, X64). It costs 2 multiplications + * relative to Horner's method on sequential machines. + * + * We add the small terms from lowest degree up for efficiency on + * non-sequential machines (the lowest degree terms tend to be ready + * earlier). Apart from this, we don't care about order of + * operations, and don't need to to care since we have precision to + * spare. However, the chosen splitting is good for accuracy too, + * and would give results as accurate as Horner's method if the + * small terms were added from highest degree down. + */ + let mut r = T[4] + z * T[5]; + let t = T[2] + z * T[3]; + let w = z * z; + let s = z * x; + let u = T[0] + z * T[1]; + r = (x + s * u) + (s * w) * (t + w * r); + (if odd { -1. / r } else { r }) as f32 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/ldexp.rs b/src/rust/vendor/compiler_builtins/libm/src/math/ldexp.rs new file mode 100644 index 000000000..e46242e55 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/ldexp.rs @@ -0,0 +1,4 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn ldexp(x: f64, n: i32) -> f64 { + super::scalbn(x, n) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/ldexpf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/ldexpf.rs new file mode 100644 index 000000000..95b27fc49 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/ldexpf.rs @@ -0,0 +1,4 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn ldexpf(x: f32, n: i32) -> f32 { + super::scalbnf(x, n) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/lgamma.rs b/src/rust/vendor/compiler_builtins/libm/src/math/lgamma.rs new file mode 100644 index 000000000..a08bc5b64 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/lgamma.rs @@ -0,0 +1,6 @@ +use super::lgamma_r; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn lgamma(x: f64) -> f64 { + lgamma_r(x).0 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/lgamma_r.rs b/src/rust/vendor/compiler_builtins/libm/src/math/lgamma_r.rs new file mode 100644 index 000000000..b26177e6e --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/lgamma_r.rs @@ -0,0 +1,320 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_lgamma_r.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ +/* lgamma_r(x, signgamp) + * Reentrant version of the logarithm of the Gamma function + * with user provide pointer for the sign of Gamma(x). + * + * Method: + * 1. Argument Reduction for 0 < x <= 8 + * Since gamma(1+s)=s*gamma(s), for x in [0,8], we may + * reduce x to a number in [1.5,2.5] by + * lgamma(1+s) = log(s) + lgamma(s) + * for example, + * lgamma(7.3) = log(6.3) + lgamma(6.3) + * = log(6.3*5.3) + lgamma(5.3) + * = log(6.3*5.3*4.3*3.3*2.3) + lgamma(2.3) + * 2. Polynomial approximation of lgamma around its + * minimun ymin=1.461632144968362245 to maintain monotonicity. + * On [ymin-0.23, ymin+0.27] (i.e., [1.23164,1.73163]), use + * Let z = x-ymin; + * lgamma(x) = -1.214862905358496078218 + z^2*poly(z) + * where + * poly(z) is a 14 degree polynomial. + * 2. Rational approximation in the primary interval [2,3] + * We use the following approximation: + * s = x-2.0; + * lgamma(x) = 0.5*s + s*P(s)/Q(s) + * with accuracy + * |P/Q - (lgamma(x)-0.5s)| < 2**-61.71 + * Our algorithms are based on the following observation + * + * zeta(2)-1 2 zeta(3)-1 3 + * lgamma(2+s) = s*(1-Euler) + --------- * s - --------- * s + ... + * 2 3 + * + * where Euler = 0.5771... is the Euler constant, which is very + * close to 0.5. + * + * 3. For x>=8, we have + * lgamma(x)~(x-0.5)log(x)-x+0.5*log(2pi)+1/(12x)-1/(360x**3)+.... + * (better formula: + * lgamma(x)~(x-0.5)*(log(x)-1)-.5*(log(2pi)-1) + ...) + * Let z = 1/x, then we approximation + * f(z) = lgamma(x) - (x-0.5)(log(x)-1) + * by + * 3 5 11 + * w = w0 + w1*z + w2*z + w3*z + ... + w6*z + * where + * |w - f(z)| < 2**-58.74 + * + * 4. For negative x, since (G is gamma function) + * -x*G(-x)*G(x) = PI/sin(PI*x), + * we have + * G(x) = PI/(sin(PI*x)*(-x)*G(-x)) + * since G(-x) is positive, sign(G(x)) = sign(sin(PI*x)) for x<0 + * Hence, for x<0, signgam = sign(sin(PI*x)) and + * lgamma(x) = log(|Gamma(x)|) + * = log(PI/(|x*sin(PI*x)|)) - lgamma(-x); + * Note: one should avoid compute PI*(-x) directly in the + * computation of sin(PI*(-x)). + * + * 5. Special Cases + * lgamma(2+s) ~ s*(1-Euler) for tiny s + * lgamma(1) = lgamma(2) = 0 + * lgamma(x) ~ -log(|x|) for tiny x + * lgamma(0) = lgamma(neg.integer) = inf and raise divide-by-zero + * lgamma(inf) = inf + * lgamma(-inf) = inf (bug for bug compatible with C99!?) + * + */ + +use super::{floor, k_cos, k_sin, log}; + +const PI: f64 = 3.14159265358979311600e+00; /* 0x400921FB, 0x54442D18 */ +const A0: f64 = 7.72156649015328655494e-02; /* 0x3FB3C467, 0xE37DB0C8 */ +const A1: f64 = 3.22467033424113591611e-01; /* 0x3FD4A34C, 0xC4A60FAD */ +const A2: f64 = 6.73523010531292681824e-02; /* 0x3FB13E00, 0x1A5562A7 */ +const A3: f64 = 2.05808084325167332806e-02; /* 0x3F951322, 0xAC92547B */ +const A4: f64 = 7.38555086081402883957e-03; /* 0x3F7E404F, 0xB68FEFE8 */ +const A5: f64 = 2.89051383673415629091e-03; /* 0x3F67ADD8, 0xCCB7926B */ +const A6: f64 = 1.19270763183362067845e-03; /* 0x3F538A94, 0x116F3F5D */ +const A7: f64 = 5.10069792153511336608e-04; /* 0x3F40B6C6, 0x89B99C00 */ +const A8: f64 = 2.20862790713908385557e-04; /* 0x3F2CF2EC, 0xED10E54D */ +const A9: f64 = 1.08011567247583939954e-04; /* 0x3F1C5088, 0x987DFB07 */ +const A10: f64 = 2.52144565451257326939e-05; /* 0x3EFA7074, 0x428CFA52 */ +const A11: f64 = 4.48640949618915160150e-05; /* 0x3F07858E, 0x90A45837 */ +const TC: f64 = 1.46163214496836224576e+00; /* 0x3FF762D8, 0x6356BE3F */ +const TF: f64 = -1.21486290535849611461e-01; /* 0xBFBF19B9, 0xBCC38A42 */ +/* tt = -(tail of TF) */ +const TT: f64 = -3.63867699703950536541e-18; /* 0xBC50C7CA, 0xA48A971F */ +const T0: f64 = 4.83836122723810047042e-01; /* 0x3FDEF72B, 0xC8EE38A2 */ +const T1: f64 = -1.47587722994593911752e-01; /* 0xBFC2E427, 0x8DC6C509 */ +const T2: f64 = 6.46249402391333854778e-02; /* 0x3FB08B42, 0x94D5419B */ +const T3: f64 = -3.27885410759859649565e-02; /* 0xBFA0C9A8, 0xDF35B713 */ +const T4: f64 = 1.79706750811820387126e-02; /* 0x3F9266E7, 0x970AF9EC */ +const T5: f64 = -1.03142241298341437450e-02; /* 0xBF851F9F, 0xBA91EC6A */ +const T6: f64 = 6.10053870246291332635e-03; /* 0x3F78FCE0, 0xE370E344 */ +const T7: f64 = -3.68452016781138256760e-03; /* 0xBF6E2EFF, 0xB3E914D7 */ +const T8: f64 = 2.25964780900612472250e-03; /* 0x3F6282D3, 0x2E15C915 */ +const T9: f64 = -1.40346469989232843813e-03; /* 0xBF56FE8E, 0xBF2D1AF1 */ +const T10: f64 = 8.81081882437654011382e-04; /* 0x3F4CDF0C, 0xEF61A8E9 */ +const T11: f64 = -5.38595305356740546715e-04; /* 0xBF41A610, 0x9C73E0EC */ +const T12: f64 = 3.15632070903625950361e-04; /* 0x3F34AF6D, 0x6C0EBBF7 */ +const T13: f64 = -3.12754168375120860518e-04; /* 0xBF347F24, 0xECC38C38 */ +const T14: f64 = 3.35529192635519073543e-04; /* 0x3F35FD3E, 0xE8C2D3F4 */ +const U0: f64 = -7.72156649015328655494e-02; /* 0xBFB3C467, 0xE37DB0C8 */ +const U1: f64 = 6.32827064025093366517e-01; /* 0x3FE4401E, 0x8B005DFF */ +const U2: f64 = 1.45492250137234768737e+00; /* 0x3FF7475C, 0xD119BD6F */ +const U3: f64 = 9.77717527963372745603e-01; /* 0x3FEF4976, 0x44EA8450 */ +const U4: f64 = 2.28963728064692451092e-01; /* 0x3FCD4EAE, 0xF6010924 */ +const U5: f64 = 1.33810918536787660377e-02; /* 0x3F8B678B, 0xBF2BAB09 */ +const V1: f64 = 2.45597793713041134822e+00; /* 0x4003A5D7, 0xC2BD619C */ +const V2: f64 = 2.12848976379893395361e+00; /* 0x40010725, 0xA42B18F5 */ +const V3: f64 = 7.69285150456672783825e-01; /* 0x3FE89DFB, 0xE45050AF */ +const V4: f64 = 1.04222645593369134254e-01; /* 0x3FBAAE55, 0xD6537C88 */ +const V5: f64 = 3.21709242282423911810e-03; /* 0x3F6A5ABB, 0x57D0CF61 */ +const S0: f64 = -7.72156649015328655494e-02; /* 0xBFB3C467, 0xE37DB0C8 */ +const S1: f64 = 2.14982415960608852501e-01; /* 0x3FCB848B, 0x36E20878 */ +const S2: f64 = 3.25778796408930981787e-01; /* 0x3FD4D98F, 0x4F139F59 */ +const S3: f64 = 1.46350472652464452805e-01; /* 0x3FC2BB9C, 0xBEE5F2F7 */ +const S4: f64 = 2.66422703033638609560e-02; /* 0x3F9B481C, 0x7E939961 */ +const S5: f64 = 1.84028451407337715652e-03; /* 0x3F5E26B6, 0x7368F239 */ +const S6: f64 = 3.19475326584100867617e-05; /* 0x3F00BFEC, 0xDD17E945 */ +const R1: f64 = 1.39200533467621045958e+00; /* 0x3FF645A7, 0x62C4AB74 */ +const R2: f64 = 7.21935547567138069525e-01; /* 0x3FE71A18, 0x93D3DCDC */ +const R3: f64 = 1.71933865632803078993e-01; /* 0x3FC601ED, 0xCCFBDF27 */ +const R4: f64 = 1.86459191715652901344e-02; /* 0x3F9317EA, 0x742ED475 */ +const R5: f64 = 7.77942496381893596434e-04; /* 0x3F497DDA, 0xCA41A95B */ +const R6: f64 = 7.32668430744625636189e-06; /* 0x3EDEBAF7, 0xA5B38140 */ +const W0: f64 = 4.18938533204672725052e-01; /* 0x3FDACFE3, 0x90C97D69 */ +const W1: f64 = 8.33333333333329678849e-02; /* 0x3FB55555, 0x5555553B */ +const W2: f64 = -2.77777777728775536470e-03; /* 0xBF66C16C, 0x16B02E5C */ +const W3: f64 = 7.93650558643019558500e-04; /* 0x3F4A019F, 0x98CF38B6 */ +const W4: f64 = -5.95187557450339963135e-04; /* 0xBF4380CB, 0x8C0FE741 */ +const W5: f64 = 8.36339918996282139126e-04; /* 0x3F4B67BA, 0x4CDAD5D1 */ +const W6: f64 = -1.63092934096575273989e-03; /* 0xBF5AB89D, 0x0B9E43E4 */ + +/* sin(PI*x) assuming x > 2^-100, if sin(PI*x)==0 the sign is arbitrary */ +fn sin_pi(mut x: f64) -> f64 { + let mut n: i32; + + /* spurious inexact if odd int */ + x = 2.0 * (x * 0.5 - floor(x * 0.5)); /* x mod 2.0 */ + + n = (x * 4.0) as i32; + n = div!(n + 1, 2); + x -= (n as f64) * 0.5; + x *= PI; + + match n { + 1 => k_cos(x, 0.0), + 2 => k_sin(-x, 0.0, 0), + 3 => -k_cos(x, 0.0), + 0 | _ => k_sin(x, 0.0, 0), + } +} + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn lgamma_r(mut x: f64) -> (f64, i32) { + let u: u64 = x.to_bits(); + let mut t: f64; + let y: f64; + let mut z: f64; + let nadj: f64; + let p: f64; + let p1: f64; + let p2: f64; + let p3: f64; + let q: f64; + let mut r: f64; + let w: f64; + let ix: u32; + let sign: bool; + let i: i32; + let mut signgam: i32; + + /* purge off +-inf, NaN, +-0, tiny and negative arguments */ + signgam = 1; + sign = (u >> 63) != 0; + ix = ((u >> 32) as u32) & 0x7fffffff; + if ix >= 0x7ff00000 { + return (x * x, signgam); + } + if ix < (0x3ff - 70) << 20 { + /* |x|<2**-70, return -log(|x|) */ + if sign { + x = -x; + signgam = -1; + } + return (-log(x), signgam); + } + if sign { + x = -x; + t = sin_pi(x); + if t == 0.0 { + /* -integer */ + return (1.0 / (x - x), signgam); + } + if t > 0.0 { + signgam = -1; + } else { + t = -t; + } + nadj = log(PI / (t * x)); + } else { + nadj = 0.0; + } + + /* purge off 1 and 2 */ + if (ix == 0x3ff00000 || ix == 0x40000000) && (u & 0xffffffff) == 0 { + r = 0.0; + } + /* for x < 2.0 */ + else if ix < 0x40000000 { + if ix <= 0x3feccccc { + /* lgamma(x) = lgamma(x+1)-log(x) */ + r = -log(x); + if ix >= 0x3FE76944 { + y = 1.0 - x; + i = 0; + } else if ix >= 0x3FCDA661 { + y = x - (TC - 1.0); + i = 1; + } else { + y = x; + i = 2; + } + } else { + r = 0.0; + if ix >= 0x3FFBB4C3 { + /* [1.7316,2] */ + y = 2.0 - x; + i = 0; + } else if ix >= 0x3FF3B4C4 { + /* [1.23,1.73] */ + y = x - TC; + i = 1; + } else { + y = x - 1.0; + i = 2; + } + } + match i { + 0 => { + z = y * y; + p1 = A0 + z * (A2 + z * (A4 + z * (A6 + z * (A8 + z * A10)))); + p2 = z * (A1 + z * (A3 + z * (A5 + z * (A7 + z * (A9 + z * A11))))); + p = y * p1 + p2; + r += p - 0.5 * y; + } + 1 => { + z = y * y; + w = z * y; + p1 = T0 + w * (T3 + w * (T6 + w * (T9 + w * T12))); /* parallel comp */ + p2 = T1 + w * (T4 + w * (T7 + w * (T10 + w * T13))); + p3 = T2 + w * (T5 + w * (T8 + w * (T11 + w * T14))); + p = z * p1 - (TT - w * (p2 + y * p3)); + r += TF + p; + } + 2 => { + p1 = y * (U0 + y * (U1 + y * (U2 + y * (U3 + y * (U4 + y * U5))))); + p2 = 1.0 + y * (V1 + y * (V2 + y * (V3 + y * (V4 + y * V5)))); + r += -0.5 * y + p1 / p2; + } + #[cfg(debug_assertions)] + _ => unreachable!(), + #[cfg(not(debug_assertions))] + _ => {} + } + } else if ix < 0x40200000 { + /* x < 8.0 */ + i = x as i32; + y = x - (i as f64); + p = y * (S0 + y * (S1 + y * (S2 + y * (S3 + y * (S4 + y * (S5 + y * S6)))))); + q = 1.0 + y * (R1 + y * (R2 + y * (R3 + y * (R4 + y * (R5 + y * R6))))); + r = 0.5 * y + p / q; + z = 1.0; /* lgamma(1+s) = log(s) + lgamma(s) */ + // TODO: In C, this was implemented using switch jumps with fallthrough. + // Does this implementation have performance problems? + if i >= 7 { + z *= y + 6.0; + } + if i >= 6 { + z *= y + 5.0; + } + if i >= 5 { + z *= y + 4.0; + } + if i >= 4 { + z *= y + 3.0; + } + if i >= 3 { + z *= y + 2.0; + r += log(z); + } + } else if ix < 0x43900000 { + /* 8.0 <= x < 2**58 */ + t = log(x); + z = 1.0 / x; + y = z * z; + w = W0 + z * (W1 + y * (W2 + y * (W3 + y * (W4 + y * (W5 + y * W6))))); + r = (x - 0.5) * (t - 1.0) + w; + } else { + /* 2**58 <= x <= inf */ + r = x * (log(x) - 1.0); + } + if sign { + r = nadj - r; + } + return (r, signgam); +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/lgammaf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/lgammaf.rs new file mode 100644 index 000000000..a9c2da75b --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/lgammaf.rs @@ -0,0 +1,6 @@ +use super::lgammaf_r; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn lgammaf(x: f32) -> f32 { + lgammaf_r(x).0 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/lgammaf_r.rs b/src/rust/vendor/compiler_builtins/libm/src/math/lgammaf_r.rs new file mode 100644 index 000000000..723c90daf --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/lgammaf_r.rs @@ -0,0 +1,255 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_lgammaf_r.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::{floorf, k_cosf, k_sinf, logf}; + +const PI: f32 = 3.1415927410e+00; /* 0x40490fdb */ +const A0: f32 = 7.7215664089e-02; /* 0x3d9e233f */ +const A1: f32 = 3.2246702909e-01; /* 0x3ea51a66 */ +const A2: f32 = 6.7352302372e-02; /* 0x3d89f001 */ +const A3: f32 = 2.0580807701e-02; /* 0x3ca89915 */ +const A4: f32 = 7.3855509982e-03; /* 0x3bf2027e */ +const A5: f32 = 2.8905137442e-03; /* 0x3b3d6ec6 */ +const A6: f32 = 1.1927076848e-03; /* 0x3a9c54a1 */ +const A7: f32 = 5.1006977446e-04; /* 0x3a05b634 */ +const A8: f32 = 2.2086278477e-04; /* 0x39679767 */ +const A9: f32 = 1.0801156895e-04; /* 0x38e28445 */ +const A10: f32 = 2.5214456400e-05; /* 0x37d383a2 */ +const A11: f32 = 4.4864096708e-05; /* 0x383c2c75 */ +const TC: f32 = 1.4616321325e+00; /* 0x3fbb16c3 */ +const TF: f32 = -1.2148628384e-01; /* 0xbdf8cdcd */ +/* TT = -(tail of TF) */ +const TT: f32 = 6.6971006518e-09; /* 0x31e61c52 */ +const T0: f32 = 4.8383611441e-01; /* 0x3ef7b95e */ +const T1: f32 = -1.4758771658e-01; /* 0xbe17213c */ +const T2: f32 = 6.4624942839e-02; /* 0x3d845a15 */ +const T3: f32 = -3.2788541168e-02; /* 0xbd064d47 */ +const T4: f32 = 1.7970675603e-02; /* 0x3c93373d */ +const T5: f32 = -1.0314224288e-02; /* 0xbc28fcfe */ +const T6: f32 = 6.1005386524e-03; /* 0x3bc7e707 */ +const T7: f32 = -3.6845202558e-03; /* 0xbb7177fe */ +const T8: f32 = 2.2596477065e-03; /* 0x3b141699 */ +const T9: f32 = -1.4034647029e-03; /* 0xbab7f476 */ +const T10: f32 = 8.8108185446e-04; /* 0x3a66f867 */ +const T11: f32 = -5.3859531181e-04; /* 0xba0d3085 */ +const T12: f32 = 3.1563205994e-04; /* 0x39a57b6b */ +const T13: f32 = -3.1275415677e-04; /* 0xb9a3f927 */ +const T14: f32 = 3.3552918467e-04; /* 0x39afe9f7 */ +const U0: f32 = -7.7215664089e-02; /* 0xbd9e233f */ +const U1: f32 = 6.3282704353e-01; /* 0x3f2200f4 */ +const U2: f32 = 1.4549225569e+00; /* 0x3fba3ae7 */ +const U3: f32 = 9.7771751881e-01; /* 0x3f7a4bb2 */ +const U4: f32 = 2.2896373272e-01; /* 0x3e6a7578 */ +const U5: f32 = 1.3381091878e-02; /* 0x3c5b3c5e */ +const V1: f32 = 2.4559779167e+00; /* 0x401d2ebe */ +const V2: f32 = 2.1284897327e+00; /* 0x4008392d */ +const V3: f32 = 7.6928514242e-01; /* 0x3f44efdf */ +const V4: f32 = 1.0422264785e-01; /* 0x3dd572af */ +const V5: f32 = 3.2170924824e-03; /* 0x3b52d5db */ +const S0: f32 = -7.7215664089e-02; /* 0xbd9e233f */ +const S1: f32 = 2.1498242021e-01; /* 0x3e5c245a */ +const S2: f32 = 3.2577878237e-01; /* 0x3ea6cc7a */ +const S3: f32 = 1.4635047317e-01; /* 0x3e15dce6 */ +const S4: f32 = 2.6642270386e-02; /* 0x3cda40e4 */ +const S5: f32 = 1.8402845599e-03; /* 0x3af135b4 */ +const S6: f32 = 3.1947532989e-05; /* 0x3805ff67 */ +const R1: f32 = 1.3920053244e+00; /* 0x3fb22d3b */ +const R2: f32 = 7.2193557024e-01; /* 0x3f38d0c5 */ +const R3: f32 = 1.7193385959e-01; /* 0x3e300f6e */ +const R4: f32 = 1.8645919859e-02; /* 0x3c98bf54 */ +const R5: f32 = 7.7794247773e-04; /* 0x3a4beed6 */ +const R6: f32 = 7.3266842264e-06; /* 0x36f5d7bd */ +const W0: f32 = 4.1893854737e-01; /* 0x3ed67f1d */ +const W1: f32 = 8.3333335817e-02; /* 0x3daaaaab */ +const W2: f32 = -2.7777778450e-03; /* 0xbb360b61 */ +const W3: f32 = 7.9365057172e-04; /* 0x3a500cfd */ +const W4: f32 = -5.9518753551e-04; /* 0xba1c065c */ +const W5: f32 = 8.3633989561e-04; /* 0x3a5b3dd2 */ +const W6: f32 = -1.6309292987e-03; /* 0xbad5c4e8 */ + +/* sin(PI*x) assuming x > 2^-100, if sin(PI*x)==0 the sign is arbitrary */ +fn sin_pi(mut x: f32) -> f32 { + let mut y: f64; + let mut n: isize; + + /* spurious inexact if odd int */ + x = 2.0 * (x * 0.5 - floorf(x * 0.5)); /* x mod 2.0 */ + + n = (x * 4.0) as isize; + n = div!(n + 1, 2); + y = (x as f64) - (n as f64) * 0.5; + y *= 3.14159265358979323846; + match n { + 1 => k_cosf(y), + 2 => k_sinf(-y), + 3 => -k_cosf(y), + 0 | _ => k_sinf(y), + } +} + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn lgammaf_r(mut x: f32) -> (f32, i32) { + let u = x.to_bits(); + let mut t: f32; + let y: f32; + let mut z: f32; + let nadj: f32; + let p: f32; + let p1: f32; + let p2: f32; + let p3: f32; + let q: f32; + let mut r: f32; + let w: f32; + let ix: u32; + let i: i32; + let sign: bool; + let mut signgam: i32; + + /* purge off +-inf, NaN, +-0, tiny and negative arguments */ + signgam = 1; + sign = (u >> 31) != 0; + ix = u & 0x7fffffff; + if ix >= 0x7f800000 { + return (x * x, signgam); + } + if ix < 0x35000000 { + /* |x| < 2**-21, return -log(|x|) */ + if sign { + signgam = -1; + x = -x; + } + return (-logf(x), signgam); + } + if sign { + x = -x; + t = sin_pi(x); + if t == 0.0 { + /* -integer */ + return (1.0 / (x - x), signgam); + } + if t > 0.0 { + signgam = -1; + } else { + t = -t; + } + nadj = logf(PI / (t * x)); + } else { + nadj = 0.0; + } + + /* purge off 1 and 2 */ + if ix == 0x3f800000 || ix == 0x40000000 { + r = 0.0; + } + /* for x < 2.0 */ + else if ix < 0x40000000 { + if ix <= 0x3f666666 { + /* lgamma(x) = lgamma(x+1)-log(x) */ + r = -logf(x); + if ix >= 0x3f3b4a20 { + y = 1.0 - x; + i = 0; + } else if ix >= 0x3e6d3308 { + y = x - (TC - 1.0); + i = 1; + } else { + y = x; + i = 2; + } + } else { + r = 0.0; + if ix >= 0x3fdda618 { + /* [1.7316,2] */ + y = 2.0 - x; + i = 0; + } else if ix >= 0x3F9da620 { + /* [1.23,1.73] */ + y = x - TC; + i = 1; + } else { + y = x - 1.0; + i = 2; + } + } + match i { + 0 => { + z = y * y; + p1 = A0 + z * (A2 + z * (A4 + z * (A6 + z * (A8 + z * A10)))); + p2 = z * (A1 + z * (A3 + z * (A5 + z * (A7 + z * (A9 + z * A11))))); + p = y * p1 + p2; + r += p - 0.5 * y; + } + 1 => { + z = y * y; + w = z * y; + p1 = T0 + w * (T3 + w * (T6 + w * (T9 + w * T12))); /* parallel comp */ + p2 = T1 + w * (T4 + w * (T7 + w * (T10 + w * T13))); + p3 = T2 + w * (T5 + w * (T8 + w * (T11 + w * T14))); + p = z * p1 - (TT - w * (p2 + y * p3)); + r += TF + p; + } + 2 => { + p1 = y * (U0 + y * (U1 + y * (U2 + y * (U3 + y * (U4 + y * U5))))); + p2 = 1.0 + y * (V1 + y * (V2 + y * (V3 + y * (V4 + y * V5)))); + r += -0.5 * y + p1 / p2; + } + #[cfg(debug_assertions)] + _ => unreachable!(), + #[cfg(not(debug_assertions))] + _ => {} + } + } else if ix < 0x41000000 { + /* x < 8.0 */ + i = x as i32; + y = x - (i as f32); + p = y * (S0 + y * (S1 + y * (S2 + y * (S3 + y * (S4 + y * (S5 + y * S6)))))); + q = 1.0 + y * (R1 + y * (R2 + y * (R3 + y * (R4 + y * (R5 + y * R6))))); + r = 0.5 * y + p / q; + z = 1.0; /* lgamma(1+s) = log(s) + lgamma(s) */ + // TODO: In C, this was implemented using switch jumps with fallthrough. + // Does this implementation have performance problems? + if i >= 7 { + z *= y + 6.0; + } + if i >= 6 { + z *= y + 5.0; + } + if i >= 5 { + z *= y + 4.0; + } + if i >= 4 { + z *= y + 3.0; + } + if i >= 3 { + z *= y + 2.0; + r += logf(z); + } + } else if ix < 0x5c800000 { + /* 8.0 <= x < 2**58 */ + t = logf(x); + z = 1.0 / x; + y = z * z; + w = W0 + z * (W1 + y * (W2 + y * (W3 + y * (W4 + y * (W5 + y * W6))))); + r = (x - 0.5) * (t - 1.0) + w; + } else { + /* 2**58 <= x <= inf */ + r = x * (logf(x) - 1.0); + } + if sign { + r = nadj - r; + } + return (r, signgam); +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/log.rs b/src/rust/vendor/compiler_builtins/libm/src/math/log.rs new file mode 100644 index 000000000..27a26da60 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/log.rs @@ -0,0 +1,117 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_log.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* log(x) + * Return the logarithm of x + * + * Method : + * 1. Argument Reduction: find k and f such that + * x = 2^k * (1+f), + * where sqrt(2)/2 < 1+f < sqrt(2) . + * + * 2. Approximation of log(1+f). + * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) + * = 2s + 2/3 s**3 + 2/5 s**5 + ....., + * = 2s + s*R + * We use a special Remez algorithm on [0,0.1716] to generate + * a polynomial of degree 14 to approximate R The maximum error + * of this polynomial approximation is bounded by 2**-58.45. In + * other words, + * 2 4 6 8 10 12 14 + * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s + * (the values of Lg1 to Lg7 are listed in the program) + * and + * | 2 14 | -58.45 + * | Lg1*s +...+Lg7*s - R(z) | <= 2 + * | | + * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. + * In order to guarantee error in log below 1ulp, we compute log + * by + * log(1+f) = f - s*(f - R) (if f is not too large) + * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy) + * + * 3. Finally, log(x) = k*ln2 + log(1+f). + * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) + * Here ln2 is split into two floating point number: + * ln2_hi + ln2_lo, + * where n*ln2_hi is always exact for |n| < 2000. + * + * Special cases: + * log(x) is NaN with signal if x < 0 (including -INF) ; + * log(+INF) is +INF; log(0) is -INF with signal; + * log(NaN) is that NaN with no signal. + * + * Accuracy: + * according to an error analysis, the error is always less than + * 1 ulp (unit in the last place). + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +const LN2_HI: f64 = 6.93147180369123816490e-01; /* 3fe62e42 fee00000 */ +const LN2_LO: f64 = 1.90821492927058770002e-10; /* 3dea39ef 35793c76 */ +const LG1: f64 = 6.666666666666735130e-01; /* 3FE55555 55555593 */ +const LG2: f64 = 3.999999999940941908e-01; /* 3FD99999 9997FA04 */ +const LG3: f64 = 2.857142874366239149e-01; /* 3FD24924 94229359 */ +const LG4: f64 = 2.222219843214978396e-01; /* 3FCC71C5 1D8E78AF */ +const LG5: f64 = 1.818357216161805012e-01; /* 3FC74664 96CB03DE */ +const LG6: f64 = 1.531383769920937332e-01; /* 3FC39A09 D078C69F */ +const LG7: f64 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn log(mut x: f64) -> f64 { + let x1p54 = f64::from_bits(0x4350000000000000); // 0x1p54 === 2 ^ 54 + + let mut ui = x.to_bits(); + let mut hx: u32 = (ui >> 32) as u32; + let mut k: i32 = 0; + + if (hx < 0x00100000) || ((hx >> 31) != 0) { + /* x < 2**-126 */ + if ui << 1 == 0 { + return -1. / (x * x); /* log(+-0)=-inf */ + } + if hx >> 31 != 0 { + return (x - x) / 0.0; /* log(-#) = NaN */ + } + /* subnormal number, scale x up */ + k -= 54; + x *= x1p54; + ui = x.to_bits(); + hx = (ui >> 32) as u32; + } else if hx >= 0x7ff00000 { + return x; + } else if hx == 0x3ff00000 && ui << 32 == 0 { + return 0.; + } + + /* reduce x into [sqrt(2)/2, sqrt(2)] */ + hx += 0x3ff00000 - 0x3fe6a09e; + k += ((hx >> 20) as i32) - 0x3ff; + hx = (hx & 0x000fffff) + 0x3fe6a09e; + ui = ((hx as u64) << 32) | (ui & 0xffffffff); + x = f64::from_bits(ui); + + let f: f64 = x - 1.0; + let hfsq: f64 = 0.5 * f * f; + let s: f64 = f / (2.0 + f); + let z: f64 = s * s; + let w: f64 = z * z; + let t1: f64 = w * (LG2 + w * (LG4 + w * LG6)); + let t2: f64 = z * (LG1 + w * (LG3 + w * (LG5 + w * LG7))); + let r: f64 = t2 + t1; + let dk: f64 = k as f64; + s * (hfsq + r) + dk * LN2_LO - hfsq + f + dk * LN2_HI +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/log10.rs b/src/rust/vendor/compiler_builtins/libm/src/math/log10.rs new file mode 100644 index 000000000..40dacf2c9 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/log10.rs @@ -0,0 +1,117 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_log10.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* + * Return the base 10 logarithm of x. See log.c for most comments. + * + * Reduce x to 2^k (1+f) and calculate r = log(1+f) - f + f*f/2 + * as in log.c, then combine and scale in extra precision: + * log10(x) = (f - f*f/2 + r)/log(10) + k*log10(2) + */ + +use core::f64; + +const IVLN10HI: f64 = 4.34294481878168880939e-01; /* 0x3fdbcb7b, 0x15200000 */ +const IVLN10LO: f64 = 2.50829467116452752298e-11; /* 0x3dbb9438, 0xca9aadd5 */ +const LOG10_2HI: f64 = 3.01029995663611771306e-01; /* 0x3FD34413, 0x509F6000 */ +const LOG10_2LO: f64 = 3.69423907715893078616e-13; /* 0x3D59FEF3, 0x11F12B36 */ +const LG1: f64 = 6.666666666666735130e-01; /* 3FE55555 55555593 */ +const LG2: f64 = 3.999999999940941908e-01; /* 3FD99999 9997FA04 */ +const LG3: f64 = 2.857142874366239149e-01; /* 3FD24924 94229359 */ +const LG4: f64 = 2.222219843214978396e-01; /* 3FCC71C5 1D8E78AF */ +const LG5: f64 = 1.818357216161805012e-01; /* 3FC74664 96CB03DE */ +const LG6: f64 = 1.531383769920937332e-01; /* 3FC39A09 D078C69F */ +const LG7: f64 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn log10(mut x: f64) -> f64 { + let x1p54 = f64::from_bits(0x4350000000000000); // 0x1p54 === 2 ^ 54 + + let mut ui: u64 = x.to_bits(); + let hfsq: f64; + let f: f64; + let s: f64; + let z: f64; + let r: f64; + let mut w: f64; + let t1: f64; + let t2: f64; + let dk: f64; + let y: f64; + let mut hi: f64; + let lo: f64; + let mut val_hi: f64; + let mut val_lo: f64; + let mut hx: u32; + let mut k: i32; + + hx = (ui >> 32) as u32; + k = 0; + if hx < 0x00100000 || (hx >> 31) > 0 { + if ui << 1 == 0 { + return -1. / (x * x); /* log(+-0)=-inf */ + } + if (hx >> 31) > 0 { + return (x - x) / 0.0; /* log(-#) = NaN */ + } + /* subnormal number, scale x up */ + k -= 54; + x *= x1p54; + ui = x.to_bits(); + hx = (ui >> 32) as u32; + } else if hx >= 0x7ff00000 { + return x; + } else if hx == 0x3ff00000 && ui << 32 == 0 { + return 0.; + } + + /* reduce x into [sqrt(2)/2, sqrt(2)] */ + hx += 0x3ff00000 - 0x3fe6a09e; + k += (hx >> 20) as i32 - 0x3ff; + hx = (hx & 0x000fffff) + 0x3fe6a09e; + ui = (hx as u64) << 32 | (ui & 0xffffffff); + x = f64::from_bits(ui); + + f = x - 1.0; + hfsq = 0.5 * f * f; + s = f / (2.0 + f); + z = s * s; + w = z * z; + t1 = w * (LG2 + w * (LG4 + w * LG6)); + t2 = z * (LG1 + w * (LG3 + w * (LG5 + w * LG7))); + r = t2 + t1; + + /* See log2.c for details. */ + /* hi+lo = f - hfsq + s*(hfsq+R) ~ log(1+f) */ + hi = f - hfsq; + ui = hi.to_bits(); + ui &= (-1i64 as u64) << 32; + hi = f64::from_bits(ui); + lo = f - hi - hfsq + s * (hfsq + r); + + /* val_hi+val_lo ~ log10(1+f) + k*log10(2) */ + val_hi = hi * IVLN10HI; + dk = k as f64; + y = dk * LOG10_2HI; + val_lo = dk * LOG10_2LO + (lo + hi) * IVLN10LO + lo * IVLN10HI; + + /* + * Extra precision in for adding y is not strictly needed + * since there is no very large cancellation near x = sqrt(2) or + * x = 1/sqrt(2), but we do it anyway since it costs little on CPUs + * with some parallelism and it reduces the error for many args. + */ + w = y + val_hi; + val_lo += (y - w) + val_hi; + val_hi = w; + + val_lo + val_hi +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/log10f.rs b/src/rust/vendor/compiler_builtins/libm/src/math/log10f.rs new file mode 100644 index 000000000..108dfa8b5 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/log10f.rs @@ -0,0 +1,91 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_log10f.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* + * See comments in log10.c. + */ + +use core::f32; + +const IVLN10HI: f32 = 4.3432617188e-01; /* 0x3ede6000 */ +const IVLN10LO: f32 = -3.1689971365e-05; /* 0xb804ead9 */ +const LOG10_2HI: f32 = 3.0102920532e-01; /* 0x3e9a2080 */ +const LOG10_2LO: f32 = 7.9034151668e-07; /* 0x355427db */ +/* |(log(1+s)-log(1-s))/s - Lg(s)| < 2**-34.24 (~[-4.95e-11, 4.97e-11]). */ +const LG1: f32 = 0.66666662693; /* 0xaaaaaa.0p-24 */ +const LG2: f32 = 0.40000972152; /* 0xccce13.0p-25 */ +const LG3: f32 = 0.28498786688; /* 0x91e9ee.0p-25 */ +const LG4: f32 = 0.24279078841; /* 0xf89e26.0p-26 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn log10f(mut x: f32) -> f32 { + let x1p25f = f32::from_bits(0x4c000000); // 0x1p25f === 2 ^ 25 + + let mut ui: u32 = x.to_bits(); + let hfsq: f32; + let f: f32; + let s: f32; + let z: f32; + let r: f32; + let w: f32; + let t1: f32; + let t2: f32; + let dk: f32; + let mut hi: f32; + let lo: f32; + let mut ix: u32; + let mut k: i32; + + ix = ui; + k = 0; + if ix < 0x00800000 || (ix >> 31) > 0 { + /* x < 2**-126 */ + if ix << 1 == 0 { + return -1. / (x * x); /* log(+-0)=-inf */ + } + if (ix >> 31) > 0 { + return (x - x) / 0.0; /* log(-#) = NaN */ + } + /* subnormal number, scale up x */ + k -= 25; + x *= x1p25f; + ui = x.to_bits(); + ix = ui; + } else if ix >= 0x7f800000 { + return x; + } else if ix == 0x3f800000 { + return 0.; + } + + /* reduce x into [sqrt(2)/2, sqrt(2)] */ + ix += 0x3f800000 - 0x3f3504f3; + k += (ix >> 23) as i32 - 0x7f; + ix = (ix & 0x007fffff) + 0x3f3504f3; + ui = ix; + x = f32::from_bits(ui); + + f = x - 1.0; + s = f / (2.0 + f); + z = s * s; + w = z * z; + t1 = w * (LG2 + w * LG4); + t2 = z * (LG1 + w * LG3); + r = t2 + t1; + hfsq = 0.5 * f * f; + + hi = f - hfsq; + ui = hi.to_bits(); + ui &= 0xfffff000; + hi = f32::from_bits(ui); + lo = f - hi - hfsq + s * (hfsq + r); + dk = k as f32; + dk * LOG10_2LO + (lo + hi) * IVLN10LO + lo * IVLN10HI + hi * IVLN10HI + dk * LOG10_2HI +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/log1p.rs b/src/rust/vendor/compiler_builtins/libm/src/math/log1p.rs new file mode 100644 index 000000000..4fd1c73eb --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/log1p.rs @@ -0,0 +1,143 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_log1p.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* double log1p(double x) + * Return the natural logarithm of 1+x. + * + * Method : + * 1. Argument Reduction: find k and f such that + * 1+x = 2^k * (1+f), + * where sqrt(2)/2 < 1+f < sqrt(2) . + * + * Note. If k=0, then f=x is exact. However, if k!=0, then f + * may not be representable exactly. In that case, a correction + * term is need. Let u=1+x rounded. Let c = (1+x)-u, then + * log(1+x) - log(u) ~ c/u. Thus, we proceed to compute log(u), + * and add back the correction term c/u. + * (Note: when x > 2**53, one can simply return log(x)) + * + * 2. Approximation of log(1+f): See log.c + * + * 3. Finally, log1p(x) = k*ln2 + log(1+f) + c/u. See log.c + * + * Special cases: + * log1p(x) is NaN with signal if x < -1 (including -INF) ; + * log1p(+INF) is +INF; log1p(-1) is -INF with signal; + * log1p(NaN) is that NaN with no signal. + * + * Accuracy: + * according to an error analysis, the error is always less than + * 1 ulp (unit in the last place). + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + * + * Note: Assuming log() return accurate answer, the following + * algorithm can be used to compute log1p(x) to within a few ULP: + * + * u = 1+x; + * if(u==1.0) return x ; else + * return log(u)*(x/(u-1.0)); + * + * See HP-15C Advanced Functions Handbook, p.193. + */ + +use core::f64; + +const LN2_HI: f64 = 6.93147180369123816490e-01; /* 3fe62e42 fee00000 */ +const LN2_LO: f64 = 1.90821492927058770002e-10; /* 3dea39ef 35793c76 */ +const LG1: f64 = 6.666666666666735130e-01; /* 3FE55555 55555593 */ +const LG2: f64 = 3.999999999940941908e-01; /* 3FD99999 9997FA04 */ +const LG3: f64 = 2.857142874366239149e-01; /* 3FD24924 94229359 */ +const LG4: f64 = 2.222219843214978396e-01; /* 3FCC71C5 1D8E78AF */ +const LG5: f64 = 1.818357216161805012e-01; /* 3FC74664 96CB03DE */ +const LG6: f64 = 1.531383769920937332e-01; /* 3FC39A09 D078C69F */ +const LG7: f64 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn log1p(x: f64) -> f64 { + let mut ui: u64 = x.to_bits(); + let hfsq: f64; + let mut f: f64 = 0.; + let mut c: f64 = 0.; + let s: f64; + let z: f64; + let r: f64; + let w: f64; + let t1: f64; + let t2: f64; + let dk: f64; + let hx: u32; + let mut hu: u32; + let mut k: i32; + + hx = (ui >> 32) as u32; + k = 1; + if hx < 0x3fda827a || (hx >> 31) > 0 { + /* 1+x < sqrt(2)+ */ + if hx >= 0xbff00000 { + /* x <= -1.0 */ + if x == -1. { + return x / 0.0; /* log1p(-1) = -inf */ + } + return (x - x) / 0.0; /* log1p(x<-1) = NaN */ + } + if hx << 1 < 0x3ca00000 << 1 { + /* |x| < 2**-53 */ + /* underflow if subnormal */ + if (hx & 0x7ff00000) == 0 { + force_eval!(x as f32); + } + return x; + } + if hx <= 0xbfd2bec4 { + /* sqrt(2)/2- <= 1+x < sqrt(2)+ */ + k = 0; + c = 0.; + f = x; + } + } else if hx >= 0x7ff00000 { + return x; + } + if k > 0 { + ui = (1. + x).to_bits(); + hu = (ui >> 32) as u32; + hu += 0x3ff00000 - 0x3fe6a09e; + k = (hu >> 20) as i32 - 0x3ff; + /* correction term ~ log(1+x)-log(u), avoid underflow in c/u */ + if k < 54 { + c = if k >= 2 { + 1. - (f64::from_bits(ui) - x) + } else { + x - (f64::from_bits(ui) - 1.) + }; + c /= f64::from_bits(ui); + } else { + c = 0.; + } + /* reduce u into [sqrt(2)/2, sqrt(2)] */ + hu = (hu & 0x000fffff) + 0x3fe6a09e; + ui = (hu as u64) << 32 | (ui & 0xffffffff); + f = f64::from_bits(ui) - 1.; + } + hfsq = 0.5 * f * f; + s = f / (2.0 + f); + z = s * s; + w = z * z; + t1 = w * (LG2 + w * (LG4 + w * LG6)); + t2 = z * (LG1 + w * (LG3 + w * (LG5 + w * LG7))); + r = t2 + t1; + dk = k as f64; + s * (hfsq + r) + (dk * LN2_LO + c) - hfsq + f + dk * LN2_HI +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/log1pf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/log1pf.rs new file mode 100644 index 000000000..500e8eeaa --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/log1pf.rs @@ -0,0 +1,98 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_log1pf.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use core::f32; + +const LN2_HI: f32 = 6.9313812256e-01; /* 0x3f317180 */ +const LN2_LO: f32 = 9.0580006145e-06; /* 0x3717f7d1 */ +/* |(log(1+s)-log(1-s))/s - Lg(s)| < 2**-34.24 (~[-4.95e-11, 4.97e-11]). */ +const LG1: f32 = 0.66666662693; /* 0xaaaaaa.0p-24 */ +const LG2: f32 = 0.40000972152; /* 0xccce13.0p-25 */ +const LG3: f32 = 0.28498786688; /* 0x91e9ee.0p-25 */ +const LG4: f32 = 0.24279078841; /* 0xf89e26.0p-26 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn log1pf(x: f32) -> f32 { + let mut ui: u32 = x.to_bits(); + let hfsq: f32; + let mut f: f32 = 0.; + let mut c: f32 = 0.; + let s: f32; + let z: f32; + let r: f32; + let w: f32; + let t1: f32; + let t2: f32; + let dk: f32; + let ix: u32; + let mut iu: u32; + let mut k: i32; + + ix = ui; + k = 1; + if ix < 0x3ed413d0 || (ix >> 31) > 0 { + /* 1+x < sqrt(2)+ */ + if ix >= 0xbf800000 { + /* x <= -1.0 */ + if x == -1. { + return x / 0.0; /* log1p(-1)=+inf */ + } + return (x - x) / 0.0; /* log1p(x<-1)=NaN */ + } + if ix << 1 < 0x33800000 << 1 { + /* |x| < 2**-24 */ + /* underflow if subnormal */ + if (ix & 0x7f800000) == 0 { + force_eval!(x * x); + } + return x; + } + if ix <= 0xbe95f619 { + /* sqrt(2)/2- <= 1+x < sqrt(2)+ */ + k = 0; + c = 0.; + f = x; + } + } else if ix >= 0x7f800000 { + return x; + } + if k > 0 { + ui = (1. + x).to_bits(); + iu = ui; + iu += 0x3f800000 - 0x3f3504f3; + k = (iu >> 23) as i32 - 0x7f; + /* correction term ~ log(1+x)-log(u), avoid underflow in c/u */ + if k < 25 { + c = if k >= 2 { + 1. - (f32::from_bits(ui) - x) + } else { + x - (f32::from_bits(ui) - 1.) + }; + c /= f32::from_bits(ui); + } else { + c = 0.; + } + /* reduce u into [sqrt(2)/2, sqrt(2)] */ + iu = (iu & 0x007fffff) + 0x3f3504f3; + ui = iu; + f = f32::from_bits(ui) - 1.; + } + s = f / (2.0 + f); + z = s * s; + w = z * z; + t1 = w * (LG2 + w * LG4); + t2 = z * (LG1 + w * LG3); + r = t2 + t1; + hfsq = 0.5 * f * f; + dk = k as f32; + s * (hfsq + r) + (dk * LN2_LO + c) - hfsq + f + dk * LN2_HI +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/log2.rs b/src/rust/vendor/compiler_builtins/libm/src/math/log2.rs new file mode 100644 index 000000000..83da3a193 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/log2.rs @@ -0,0 +1,106 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_log2.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* + * Return the base 2 logarithm of x. See log.c for most comments. + * + * Reduce x to 2^k (1+f) and calculate r = log(1+f) - f + f*f/2 + * as in log.c, then combine and scale in extra precision: + * log2(x) = (f - f*f/2 + r)/log(2) + k + */ + +use core::f64; + +const IVLN2HI: f64 = 1.44269504072144627571e+00; /* 0x3ff71547, 0x65200000 */ +const IVLN2LO: f64 = 1.67517131648865118353e-10; /* 0x3de705fc, 0x2eefa200 */ +const LG1: f64 = 6.666666666666735130e-01; /* 3FE55555 55555593 */ +const LG2: f64 = 3.999999999940941908e-01; /* 3FD99999 9997FA04 */ +const LG3: f64 = 2.857142874366239149e-01; /* 3FD24924 94229359 */ +const LG4: f64 = 2.222219843214978396e-01; /* 3FCC71C5 1D8E78AF */ +const LG5: f64 = 1.818357216161805012e-01; /* 3FC74664 96CB03DE */ +const LG6: f64 = 1.531383769920937332e-01; /* 3FC39A09 D078C69F */ +const LG7: f64 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn log2(mut x: f64) -> f64 { + let x1p54 = f64::from_bits(0x4350000000000000); // 0x1p54 === 2 ^ 54 + + let mut ui: u64 = x.to_bits(); + let hfsq: f64; + let f: f64; + let s: f64; + let z: f64; + let r: f64; + let mut w: f64; + let t1: f64; + let t2: f64; + let y: f64; + let mut hi: f64; + let lo: f64; + let mut val_hi: f64; + let mut val_lo: f64; + let mut hx: u32; + let mut k: i32; + + hx = (ui >> 32) as u32; + k = 0; + if hx < 0x00100000 || (hx >> 31) > 0 { + if ui << 1 == 0 { + return -1. / (x * x); /* log(+-0)=-inf */ + } + if (hx >> 31) > 0 { + return (x - x) / 0.0; /* log(-#) = NaN */ + } + /* subnormal number, scale x up */ + k -= 54; + x *= x1p54; + ui = x.to_bits(); + hx = (ui >> 32) as u32; + } else if hx >= 0x7ff00000 { + return x; + } else if hx == 0x3ff00000 && ui << 32 == 0 { + return 0.; + } + + /* reduce x into [sqrt(2)/2, sqrt(2)] */ + hx += 0x3ff00000 - 0x3fe6a09e; + k += (hx >> 20) as i32 - 0x3ff; + hx = (hx & 0x000fffff) + 0x3fe6a09e; + ui = (hx as u64) << 32 | (ui & 0xffffffff); + x = f64::from_bits(ui); + + f = x - 1.0; + hfsq = 0.5 * f * f; + s = f / (2.0 + f); + z = s * s; + w = z * z; + t1 = w * (LG2 + w * (LG4 + w * LG6)); + t2 = z * (LG1 + w * (LG3 + w * (LG5 + w * LG7))); + r = t2 + t1; + + /* hi+lo = f - hfsq + s*(hfsq+R) ~ log(1+f) */ + hi = f - hfsq; + ui = hi.to_bits(); + ui &= (-1i64 as u64) << 32; + hi = f64::from_bits(ui); + lo = f - hi - hfsq + s * (hfsq + r); + + val_hi = hi * IVLN2HI; + val_lo = (lo + hi) * IVLN2LO + lo * IVLN2HI; + + /* spadd(val_hi, val_lo, y), except for not using double_t: */ + y = k.into(); + w = y + val_hi; + val_lo += (y - w) + val_hi; + val_hi = w; + + val_lo + val_hi +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/log2f.rs b/src/rust/vendor/compiler_builtins/libm/src/math/log2f.rs new file mode 100644 index 000000000..3a20fb15b --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/log2f.rs @@ -0,0 +1,87 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_log2f.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* + * See comments in log2.c. + */ + +use core::f32; + +const IVLN2HI: f32 = 1.4428710938e+00; /* 0x3fb8b000 */ +const IVLN2LO: f32 = -1.7605285393e-04; /* 0xb9389ad4 */ +/* |(log(1+s)-log(1-s))/s - Lg(s)| < 2**-34.24 (~[-4.95e-11, 4.97e-11]). */ +const LG1: f32 = 0.66666662693; /* 0xaaaaaa.0p-24 */ +const LG2: f32 = 0.40000972152; /* 0xccce13.0p-25 */ +const LG3: f32 = 0.28498786688; /* 0x91e9ee.0p-25 */ +const LG4: f32 = 0.24279078841; /* 0xf89e26.0p-26 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn log2f(mut x: f32) -> f32 { + let x1p25f = f32::from_bits(0x4c000000); // 0x1p25f === 2 ^ 25 + + let mut ui: u32 = x.to_bits(); + let hfsq: f32; + let f: f32; + let s: f32; + let z: f32; + let r: f32; + let w: f32; + let t1: f32; + let t2: f32; + let mut hi: f32; + let lo: f32; + let mut ix: u32; + let mut k: i32; + + ix = ui; + k = 0; + if ix < 0x00800000 || (ix >> 31) > 0 { + /* x < 2**-126 */ + if ix << 1 == 0 { + return -1. / (x * x); /* log(+-0)=-inf */ + } + if (ix >> 31) > 0 { + return (x - x) / 0.0; /* log(-#) = NaN */ + } + /* subnormal number, scale up x */ + k -= 25; + x *= x1p25f; + ui = x.to_bits(); + ix = ui; + } else if ix >= 0x7f800000 { + return x; + } else if ix == 0x3f800000 { + return 0.; + } + + /* reduce x into [sqrt(2)/2, sqrt(2)] */ + ix += 0x3f800000 - 0x3f3504f3; + k += (ix >> 23) as i32 - 0x7f; + ix = (ix & 0x007fffff) + 0x3f3504f3; + ui = ix; + x = f32::from_bits(ui); + + f = x - 1.0; + s = f / (2.0 + f); + z = s * s; + w = z * z; + t1 = w * (LG2 + w * LG4); + t2 = z * (LG1 + w * LG3); + r = t2 + t1; + hfsq = 0.5 * f * f; + + hi = f - hfsq; + ui = hi.to_bits(); + ui &= 0xfffff000; + hi = f32::from_bits(ui); + lo = f - hi - hfsq + s * (hfsq + r); + (lo + hi) * IVLN2LO + lo * IVLN2HI + hi * IVLN2HI + k as f32 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/logf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/logf.rs new file mode 100644 index 000000000..2b57b934f --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/logf.rs @@ -0,0 +1,65 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_logf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +const LN2_HI: f32 = 6.9313812256e-01; /* 0x3f317180 */ +const LN2_LO: f32 = 9.0580006145e-06; /* 0x3717f7d1 */ +/* |(log(1+s)-log(1-s))/s - Lg(s)| < 2**-34.24 (~[-4.95e-11, 4.97e-11]). */ +const LG1: f32 = 0.66666662693; /* 0xaaaaaa.0p-24*/ +const LG2: f32 = 0.40000972152; /* 0xccce13.0p-25 */ +const LG3: f32 = 0.28498786688; /* 0x91e9ee.0p-25 */ +const LG4: f32 = 0.24279078841; /* 0xf89e26.0p-26 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn logf(mut x: f32) -> f32 { + let x1p25 = f32::from_bits(0x4c000000); // 0x1p25f === 2 ^ 25 + + let mut ix = x.to_bits(); + let mut k = 0i32; + + if (ix < 0x00800000) || ((ix >> 31) != 0) { + /* x < 2**-126 */ + if ix << 1 == 0 { + return -1. / (x * x); /* log(+-0)=-inf */ + } + if (ix >> 31) != 0 { + return (x - x) / 0.; /* log(-#) = NaN */ + } + /* subnormal number, scale up x */ + k -= 25; + x *= x1p25; + ix = x.to_bits(); + } else if ix >= 0x7f800000 { + return x; + } else if ix == 0x3f800000 { + return 0.; + } + + /* reduce x into [sqrt(2)/2, sqrt(2)] */ + ix += 0x3f800000 - 0x3f3504f3; + k += ((ix >> 23) as i32) - 0x7f; + ix = (ix & 0x007fffff) + 0x3f3504f3; + x = f32::from_bits(ix); + + let f = x - 1.; + let s = f / (2. + f); + let z = s * s; + let w = z * z; + let t1 = w * (LG2 + w * LG4); + let t2 = z * (LG1 + w * LG3); + let r = t2 + t1; + let hfsq = 0.5 * f * f; + let dk = k as f32; + s * (hfsq + r) + dk * LN2_LO - hfsq + f + dk * LN2_HI +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/mod.rs b/src/rust/vendor/compiler_builtins/libm/src/math/mod.rs new file mode 100644 index 000000000..05ebb708c --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/mod.rs @@ -0,0 +1,370 @@ +macro_rules! force_eval { + ($e:expr) => { + unsafe { ::core::ptr::read_volatile(&$e) } + }; +} + +#[cfg(not(debug_assertions))] +macro_rules! i { + ($array:expr, $index:expr) => { + unsafe { *$array.get_unchecked($index) } + }; + ($array:expr, $index:expr, = , $rhs:expr) => { + unsafe { + *$array.get_unchecked_mut($index) = $rhs; + } + }; + ($array:expr, $index:expr, += , $rhs:expr) => { + unsafe { + *$array.get_unchecked_mut($index) += $rhs; + } + }; + ($array:expr, $index:expr, -= , $rhs:expr) => { + unsafe { + *$array.get_unchecked_mut($index) -= $rhs; + } + }; + ($array:expr, $index:expr, &= , $rhs:expr) => { + unsafe { + *$array.get_unchecked_mut($index) &= $rhs; + } + }; + ($array:expr, $index:expr, == , $rhs:expr) => { + unsafe { *$array.get_unchecked_mut($index) == $rhs } + }; +} + +#[cfg(debug_assertions)] +macro_rules! i { + ($array:expr, $index:expr) => { + *$array.get($index).unwrap() + }; + ($array:expr, $index:expr, = , $rhs:expr) => { + *$array.get_mut($index).unwrap() = $rhs; + }; + ($array:expr, $index:expr, -= , $rhs:expr) => { + *$array.get_mut($index).unwrap() -= $rhs; + }; + ($array:expr, $index:expr, += , $rhs:expr) => { + *$array.get_mut($index).unwrap() += $rhs; + }; + ($array:expr, $index:expr, &= , $rhs:expr) => { + *$array.get_mut($index).unwrap() &= $rhs; + }; + ($array:expr, $index:expr, == , $rhs:expr) => { + *$array.get_mut($index).unwrap() == $rhs + }; +} + +// Temporary macro to avoid panic codegen for division (in debug mode too). At +// the time of this writing this is only used in a few places, and once +// rust-lang/rust#72751 is fixed then this macro will no longer be necessary and +// the native `/` operator can be used and panics won't be codegen'd. +#[cfg(any(debug_assertions, not(feature = "unstable")))] +macro_rules! div { + ($a:expr, $b:expr) => { + $a / $b + }; +} + +#[cfg(all(not(debug_assertions), feature = "unstable"))] +macro_rules! div { + ($a:expr, $b:expr) => { + unsafe { core::intrinsics::unchecked_div($a, $b) } + }; +} + +macro_rules! llvm_intrinsically_optimized { + (#[cfg($($clause:tt)*)] $e:expr) => { + #[cfg(all(feature = "unstable", $($clause)*))] + { + if true { // thwart the dead code lint + $e + } + } + }; +} + +// Public modules +mod acos; +mod acosf; +mod acosh; +mod acoshf; +mod asin; +mod asinf; +mod asinh; +mod asinhf; +mod atan; +mod atan2; +mod atan2f; +mod atanf; +mod atanh; +mod atanhf; +mod cbrt; +mod cbrtf; +mod ceil; +mod ceilf; +mod copysign; +mod copysignf; +mod cos; +mod cosf; +mod cosh; +mod coshf; +mod erf; +mod erff; +mod exp; +mod exp10; +mod exp10f; +mod exp2; +mod exp2f; +mod expf; +mod expm1; +mod expm1f; +mod fabs; +mod fabsf; +mod fdim; +mod fdimf; +mod floor; +mod floorf; +mod fma; +mod fmaf; +mod fmax; +mod fmaxf; +mod fmin; +mod fminf; +mod fmod; +mod fmodf; +mod frexp; +mod frexpf; +mod hypot; +mod hypotf; +mod ilogb; +mod ilogbf; +mod j0; +mod j0f; +mod j1; +mod j1f; +mod jn; +mod jnf; +mod ldexp; +mod ldexpf; +mod lgamma; +mod lgamma_r; +mod lgammaf; +mod lgammaf_r; +mod log; +mod log10; +mod log10f; +mod log1p; +mod log1pf; +mod log2; +mod log2f; +mod logf; +mod modf; +mod modff; +mod nextafter; +mod nextafterf; +mod pow; +mod powf; +mod remainder; +mod remainderf; +mod remquo; +mod remquof; +mod rint; +mod rintf; +mod round; +mod roundf; +mod scalbn; +mod scalbnf; +mod sin; +mod sincos; +mod sincosf; +mod sinf; +mod sinh; +mod sinhf; +mod sqrt; +mod sqrtf; +mod tan; +mod tanf; +mod tanh; +mod tanhf; +mod tgamma; +mod tgammaf; +mod trunc; +mod truncf; + +// Use separated imports instead of {}-grouped imports for easier merging. +pub use self::acos::acos; +pub use self::acosf::acosf; +pub use self::acosh::acosh; +pub use self::acoshf::acoshf; +pub use self::asin::asin; +pub use self::asinf::asinf; +pub use self::asinh::asinh; +pub use self::asinhf::asinhf; +pub use self::atan::atan; +pub use self::atan2::atan2; +pub use self::atan2f::atan2f; +pub use self::atanf::atanf; +pub use self::atanh::atanh; +pub use self::atanhf::atanhf; +pub use self::cbrt::cbrt; +pub use self::cbrtf::cbrtf; +pub use self::ceil::ceil; +pub use self::ceilf::ceilf; +pub use self::copysign::copysign; +pub use self::copysignf::copysignf; +pub use self::cos::cos; +pub use self::cosf::cosf; +pub use self::cosh::cosh; +pub use self::coshf::coshf; +pub use self::erf::erf; +pub use self::erf::erfc; +pub use self::erff::erfcf; +pub use self::erff::erff; +pub use self::exp::exp; +pub use self::exp10::exp10; +pub use self::exp10f::exp10f; +pub use self::exp2::exp2; +pub use self::exp2f::exp2f; +pub use self::expf::expf; +pub use self::expm1::expm1; +pub use self::expm1f::expm1f; +pub use self::fabs::fabs; +pub use self::fabsf::fabsf; +pub use self::fdim::fdim; +pub use self::fdimf::fdimf; +pub use self::floor::floor; +pub use self::floorf::floorf; +pub use self::fma::fma; +pub use self::fmaf::fmaf; +pub use self::fmax::fmax; +pub use self::fmaxf::fmaxf; +pub use self::fmin::fmin; +pub use self::fminf::fminf; +pub use self::fmod::fmod; +pub use self::fmodf::fmodf; +pub use self::frexp::frexp; +pub use self::frexpf::frexpf; +pub use self::hypot::hypot; +pub use self::hypotf::hypotf; +pub use self::ilogb::ilogb; +pub use self::ilogbf::ilogbf; +pub use self::j0::j0; +pub use self::j0::y0; +pub use self::j0f::j0f; +pub use self::j0f::y0f; +pub use self::j1::j1; +pub use self::j1::y1; +pub use self::j1f::j1f; +pub use self::j1f::y1f; +pub use self::jn::jn; +pub use self::jn::yn; +pub use self::jnf::jnf; +pub use self::jnf::ynf; +pub use self::ldexp::ldexp; +pub use self::ldexpf::ldexpf; +pub use self::lgamma::lgamma; +pub use self::lgamma_r::lgamma_r; +pub use self::lgammaf::lgammaf; +pub use self::lgammaf_r::lgammaf_r; +pub use self::log::log; +pub use self::log10::log10; +pub use self::log10f::log10f; +pub use self::log1p::log1p; +pub use self::log1pf::log1pf; +pub use self::log2::log2; +pub use self::log2f::log2f; +pub use self::logf::logf; +pub use self::modf::modf; +pub use self::modff::modff; +pub use self::nextafter::nextafter; +pub use self::nextafterf::nextafterf; +pub use self::pow::pow; +pub use self::powf::powf; +pub use self::remainder::remainder; +pub use self::remainderf::remainderf; +pub use self::remquo::remquo; +pub use self::remquof::remquof; +pub use self::rint::rint; +pub use self::rintf::rintf; +pub use self::round::round; +pub use self::roundf::roundf; +pub use self::scalbn::scalbn; +pub use self::scalbnf::scalbnf; +pub use self::sin::sin; +pub use self::sincos::sincos; +pub use self::sincosf::sincosf; +pub use self::sinf::sinf; +pub use self::sinh::sinh; +pub use self::sinhf::sinhf; +pub use self::sqrt::sqrt; +pub use self::sqrtf::sqrtf; +pub use self::tan::tan; +pub use self::tanf::tanf; +pub use self::tanh::tanh; +pub use self::tanhf::tanhf; +pub use self::tgamma::tgamma; +pub use self::tgammaf::tgammaf; +pub use self::trunc::trunc; +pub use self::truncf::truncf; + +// Private modules +mod expo2; +mod fenv; +mod k_cos; +mod k_cosf; +mod k_expo2; +mod k_expo2f; +mod k_sin; +mod k_sinf; +mod k_tan; +mod k_tanf; +mod rem_pio2; +mod rem_pio2_large; +mod rem_pio2f; + +// Private re-imports +use self::expo2::expo2; +use self::k_cos::k_cos; +use self::k_cosf::k_cosf; +use self::k_expo2::k_expo2; +use self::k_expo2f::k_expo2f; +use self::k_sin::k_sin; +use self::k_sinf::k_sinf; +use self::k_tan::k_tan; +use self::k_tanf::k_tanf; +use self::rem_pio2::rem_pio2; +use self::rem_pio2_large::rem_pio2_large; +use self::rem_pio2f::rem_pio2f; + +#[inline] +fn get_high_word(x: f64) -> u32 { + (x.to_bits() >> 32) as u32 +} + +#[inline] +fn get_low_word(x: f64) -> u32 { + x.to_bits() as u32 +} + +#[inline] +fn with_set_high_word(f: f64, hi: u32) -> f64 { + let mut tmp = f.to_bits(); + tmp &= 0x00000000_ffffffff; + tmp |= (hi as u64) << 32; + f64::from_bits(tmp) +} + +#[inline] +fn with_set_low_word(f: f64, lo: u32) -> f64 { + let mut tmp = f.to_bits(); + tmp &= 0xffffffff_00000000; + tmp |= lo as u64; + f64::from_bits(tmp) +} + +#[inline] +fn combine_words(hi: u32, lo: u32) -> f64 { + f64::from_bits((hi as u64) << 32 | lo as u64) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/modf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/modf.rs new file mode 100644 index 000000000..bcab33a81 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/modf.rs @@ -0,0 +1,34 @@ +pub fn modf(x: f64) -> (f64, f64) { + let rv2: f64; + let mut u = x.to_bits(); + let mask: u64; + let e = ((u >> 52 & 0x7ff) as i32) - 0x3ff; + + /* no fractional part */ + if e >= 52 { + rv2 = x; + if e == 0x400 && (u << 12) != 0 { + /* nan */ + return (x, rv2); + } + u &= 1 << 63; + return (f64::from_bits(u), rv2); + } + + /* no integral part*/ + if e < 0 { + u &= 1 << 63; + rv2 = f64::from_bits(u); + return (x, rv2); + } + + mask = ((!0) >> 12) >> e; + if (u & mask) == 0 { + rv2 = x; + u &= 1 << 63; + return (f64::from_bits(u), rv2); + } + u &= !mask; + rv2 = f64::from_bits(u); + return (x - rv2, rv2); +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/modff.rs b/src/rust/vendor/compiler_builtins/libm/src/math/modff.rs new file mode 100644 index 000000000..56ece12e3 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/modff.rs @@ -0,0 +1,33 @@ +pub fn modff(x: f32) -> (f32, f32) { + let rv2: f32; + let mut u: u32 = x.to_bits(); + let mask: u32; + let e = ((u >> 23 & 0xff) as i32) - 0x7f; + + /* no fractional part */ + if e >= 23 { + rv2 = x; + if e == 0x80 && (u << 9) != 0 { + /* nan */ + return (x, rv2); + } + u &= 0x80000000; + return (f32::from_bits(u), rv2); + } + /* no integral part */ + if e < 0 { + u &= 0x80000000; + rv2 = f32::from_bits(u); + return (x, rv2); + } + + mask = 0x007fffff >> e; + if (u & mask) == 0 { + rv2 = x; + u &= 0x80000000; + return (f32::from_bits(u), rv2); + } + u &= !mask; + rv2 = f32::from_bits(u); + return (x - rv2, rv2); +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/nextafter.rs b/src/rust/vendor/compiler_builtins/libm/src/math/nextafter.rs new file mode 100644 index 000000000..13094a17c --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/nextafter.rs @@ -0,0 +1,37 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn nextafter(x: f64, y: f64) -> f64 { + if x.is_nan() || y.is_nan() { + return x + y; + } + + let mut ux_i = x.to_bits(); + let uy_i = y.to_bits(); + if ux_i == uy_i { + return y; + } + + let ax = ux_i & !1_u64 / 2; + let ay = uy_i & !1_u64 / 2; + if ax == 0 { + if ay == 0 { + return y; + } + ux_i = (uy_i & 1_u64 << 63) | 1; + } else if ax > ay || ((ux_i ^ uy_i) & 1_u64 << 63) != 0 { + ux_i -= 1; + } else { + ux_i += 1; + } + + let e = ux_i.wrapping_shr(52 & 0x7ff); + // raise overflow if ux.f is infinite and x is finite + if e == 0x7ff { + force_eval!(x + x); + } + let ux_f = f64::from_bits(ux_i); + // raise underflow if ux.f is subnormal or zero + if e == 0 { + force_eval!(x * x + ux_f * ux_f); + } + ux_f +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/nextafterf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/nextafterf.rs new file mode 100644 index 000000000..df9b10829 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/nextafterf.rs @@ -0,0 +1,37 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn nextafterf(x: f32, y: f32) -> f32 { + if x.is_nan() || y.is_nan() { + return x + y; + } + + let mut ux_i = x.to_bits(); + let uy_i = y.to_bits(); + if ux_i == uy_i { + return y; + } + + let ax = ux_i & 0x7fff_ffff_u32; + let ay = uy_i & 0x7fff_ffff_u32; + if ax == 0 { + if ay == 0 { + return y; + } + ux_i = (uy_i & 0x8000_0000_u32) | 1; + } else if ax > ay || ((ux_i ^ uy_i) & 0x8000_0000_u32) != 0 { + ux_i -= 1; + } else { + ux_i += 1; + } + + let e = ux_i.wrapping_shr(0x7f80_0000_u32); + // raise overflow if ux_f is infinite and x is finite + if e == 0x7f80_0000_u32 { + force_eval!(x + x); + } + let ux_f = f32::from_bits(ux_i); + // raise underflow if ux_f is subnormal or zero + if e == 0 { + force_eval!(x * x + ux_f * ux_f); + } + ux_f +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/pow.rs b/src/rust/vendor/compiler_builtins/libm/src/math/pow.rs new file mode 100644 index 000000000..6a19ae601 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/pow.rs @@ -0,0 +1,637 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_pow.c */ +/* + * ==================================================== + * Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +// pow(x,y) return x**y +// +// n +// Method: Let x = 2 * (1+f) +// 1. Compute and return log2(x) in two pieces: +// log2(x) = w1 + w2, +// where w1 has 53-24 = 29 bit trailing zeros. +// 2. Perform y*log2(x) = n+y' by simulating muti-precision +// arithmetic, where |y'|<=0.5. +// 3. Return x**y = 2**n*exp(y'*log2) +// +// Special cases: +// 1. (anything) ** 0 is 1 +// 2. 1 ** (anything) is 1 +// 3. (anything except 1) ** NAN is NAN +// 4. NAN ** (anything except 0) is NAN +// 5. +-(|x| > 1) ** +INF is +INF +// 6. +-(|x| > 1) ** -INF is +0 +// 7. +-(|x| < 1) ** +INF is +0 +// 8. +-(|x| < 1) ** -INF is +INF +// 9. -1 ** +-INF is 1 +// 10. +0 ** (+anything except 0, NAN) is +0 +// 11. -0 ** (+anything except 0, NAN, odd integer) is +0 +// 12. +0 ** (-anything except 0, NAN) is +INF, raise divbyzero +// 13. -0 ** (-anything except 0, NAN, odd integer) is +INF, raise divbyzero +// 14. -0 ** (+odd integer) is -0 +// 15. -0 ** (-odd integer) is -INF, raise divbyzero +// 16. +INF ** (+anything except 0,NAN) is +INF +// 17. +INF ** (-anything except 0,NAN) is +0 +// 18. -INF ** (+odd integer) is -INF +// 19. -INF ** (anything) = -0 ** (-anything), (anything except odd integer) +// 20. (anything) ** 1 is (anything) +// 21. (anything) ** -1 is 1/(anything) +// 22. (-anything) ** (integer) is (-1)**(integer)*(+anything**integer) +// 23. (-anything except 0 and inf) ** (non-integer) is NAN +// +// Accuracy: +// pow(x,y) returns x**y nearly rounded. In particular +// pow(integer,integer) +// always returns the correct integer provided it is +// representable. +// +// Constants : +// The hexadecimal values are the intended ones for the following +// constants. The decimal values may be used, provided that the +// compiler will convert from decimal to binary accurately enough +// to produce the hexadecimal values shown. +// +use super::{fabs, get_high_word, scalbn, sqrt, with_set_high_word, with_set_low_word}; + +const BP: [f64; 2] = [1.0, 1.5]; +const DP_H: [f64; 2] = [0.0, 5.84962487220764160156e-01]; /* 0x3fe2b803_40000000 */ +const DP_L: [f64; 2] = [0.0, 1.35003920212974897128e-08]; /* 0x3E4CFDEB, 0x43CFD006 */ +const TWO53: f64 = 9007199254740992.0; /* 0x43400000_00000000 */ +const HUGE: f64 = 1.0e300; +const TINY: f64 = 1.0e-300; + +// poly coefs for (3/2)*(log(x)-2s-2/3*s**3: +const L1: f64 = 5.99999999999994648725e-01; /* 0x3fe33333_33333303 */ +const L2: f64 = 4.28571428578550184252e-01; /* 0x3fdb6db6_db6fabff */ +const L3: f64 = 3.33333329818377432918e-01; /* 0x3fd55555_518f264d */ +const L4: f64 = 2.72728123808534006489e-01; /* 0x3fd17460_a91d4101 */ +const L5: f64 = 2.30660745775561754067e-01; /* 0x3fcd864a_93c9db65 */ +const L6: f64 = 2.06975017800338417784e-01; /* 0x3fca7e28_4a454eef */ +const P1: f64 = 1.66666666666666019037e-01; /* 0x3fc55555_5555553e */ +const P2: f64 = -2.77777777770155933842e-03; /* 0xbf66c16c_16bebd93 */ +const P3: f64 = 6.61375632143793436117e-05; /* 0x3f11566a_af25de2c */ +const P4: f64 = -1.65339022054652515390e-06; /* 0xbebbbd41_c5d26bf1 */ +const P5: f64 = 4.13813679705723846039e-08; /* 0x3e663769_72bea4d0 */ +const LG2: f64 = 6.93147180559945286227e-01; /* 0x3fe62e42_fefa39ef */ +const LG2_H: f64 = 6.93147182464599609375e-01; /* 0x3fe62e43_00000000 */ +const LG2_L: f64 = -1.90465429995776804525e-09; /* 0xbe205c61_0ca86c39 */ +const OVT: f64 = 8.0085662595372944372e-017; /* -(1024-log2(ovfl+.5ulp)) */ +const CP: f64 = 9.61796693925975554329e-01; /* 0x3feec709_dc3a03fd =2/(3ln2) */ +const CP_H: f64 = 9.61796700954437255859e-01; /* 0x3feec709_e0000000 =(float)cp */ +const CP_L: f64 = -7.02846165095275826516e-09; /* 0xbe3e2fe0_145b01f5 =tail of cp_h*/ +const IVLN2: f64 = 1.44269504088896338700e+00; /* 0x3ff71547_652b82fe =1/ln2 */ +const IVLN2_H: f64 = 1.44269502162933349609e+00; /* 0x3ff71547_60000000 =24b 1/ln2*/ +const IVLN2_L: f64 = 1.92596299112661746887e-08; /* 0x3e54ae0b_f85ddf44 =1/ln2 tail*/ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn pow(x: f64, y: f64) -> f64 { + let t1: f64; + let t2: f64; + + let (hx, lx): (i32, u32) = ((x.to_bits() >> 32) as i32, x.to_bits() as u32); + let (hy, ly): (i32, u32) = ((y.to_bits() >> 32) as i32, y.to_bits() as u32); + + let mut ix: i32 = (hx & 0x7fffffff) as i32; + let iy: i32 = (hy & 0x7fffffff) as i32; + + /* x**0 = 1, even if x is NaN */ + if ((iy as u32) | ly) == 0 { + return 1.0; + } + + /* 1**y = 1, even if y is NaN */ + if hx == 0x3ff00000 && lx == 0 { + return 1.0; + } + + /* NaN if either arg is NaN */ + if ix > 0x7ff00000 + || (ix == 0x7ff00000 && lx != 0) + || iy > 0x7ff00000 + || (iy == 0x7ff00000 && ly != 0) + { + return x + y; + } + + /* determine if y is an odd int when x < 0 + * yisint = 0 ... y is not an integer + * yisint = 1 ... y is an odd int + * yisint = 2 ... y is an even int + */ + let mut yisint: i32 = 0; + let mut k: i32; + let mut j: i32; + if hx < 0 { + if iy >= 0x43400000 { + yisint = 2; /* even integer y */ + } else if iy >= 0x3ff00000 { + k = (iy >> 20) - 0x3ff; /* exponent */ + + if k > 20 { + j = (ly >> (52 - k)) as i32; + + if (j << (52 - k)) == (ly as i32) { + yisint = 2 - (j & 1); + } + } else if ly == 0 { + j = iy >> (20 - k); + + if (j << (20 - k)) == iy { + yisint = 2 - (j & 1); + } + } + } + } + + if ly == 0 { + /* special value of y */ + if iy == 0x7ff00000 { + /* y is +-inf */ + + return if ((ix - 0x3ff00000) | (lx as i32)) == 0 { + /* (-1)**+-inf is 1 */ + 1.0 + } else if ix >= 0x3ff00000 { + /* (|x|>1)**+-inf = inf,0 */ + if hy >= 0 { + y + } else { + 0.0 + } + } else { + /* (|x|<1)**+-inf = 0,inf */ + if hy >= 0 { + 0.0 + } else { + -y + } + }; + } + + if iy == 0x3ff00000 { + /* y is +-1 */ + return if hy >= 0 { x } else { 1.0 / x }; + } + + if hy == 0x40000000 { + /* y is 2 */ + return x * x; + } + + if hy == 0x3fe00000 { + /* y is 0.5 */ + if hx >= 0 { + /* x >= +0 */ + return sqrt(x); + } + } + } + + let mut ax: f64 = fabs(x); + if lx == 0 { + /* special value of x */ + if ix == 0x7ff00000 || ix == 0 || ix == 0x3ff00000 { + /* x is +-0,+-inf,+-1 */ + let mut z: f64 = ax; + + if hy < 0 { + /* z = (1/|x|) */ + z = 1.0 / z; + } + + if hx < 0 { + if ((ix - 0x3ff00000) | yisint) == 0 { + z = (z - z) / (z - z); /* (-1)**non-int is NaN */ + } else if yisint == 1 { + z = -z; /* (x<0)**odd = -(|x|**odd) */ + } + } + + return z; + } + } + + let mut s: f64 = 1.0; /* sign of result */ + if hx < 0 { + if yisint == 0 { + /* (x<0)**(non-int) is NaN */ + return (x - x) / (x - x); + } + + if yisint == 1 { + /* (x<0)**(odd int) */ + s = -1.0; + } + } + + /* |y| is HUGE */ + if iy > 0x41e00000 { + /* if |y| > 2**31 */ + if iy > 0x43f00000 { + /* if |y| > 2**64, must o/uflow */ + if ix <= 0x3fefffff { + return if hy < 0 { HUGE * HUGE } else { TINY * TINY }; + } + + if ix >= 0x3ff00000 { + return if hy > 0 { HUGE * HUGE } else { TINY * TINY }; + } + } + + /* over/underflow if x is not close to one */ + if ix < 0x3fefffff { + return if hy < 0 { + s * HUGE * HUGE + } else { + s * TINY * TINY + }; + } + if ix > 0x3ff00000 { + return if hy > 0 { + s * HUGE * HUGE + } else { + s * TINY * TINY + }; + } + + /* now |1-x| is TINY <= 2**-20, suffice to compute + log(x) by x-x^2/2+x^3/3-x^4/4 */ + let t: f64 = ax - 1.0; /* t has 20 trailing zeros */ + let w: f64 = (t * t) * (0.5 - t * (0.3333333333333333333333 - t * 0.25)); + let u: f64 = IVLN2_H * t; /* ivln2_h has 21 sig. bits */ + let v: f64 = t * IVLN2_L - w * IVLN2; + t1 = with_set_low_word(u + v, 0); + t2 = v - (t1 - u); + } else { + // double ss,s2,s_h,s_l,t_h,t_l; + let mut n: i32 = 0; + + if ix < 0x00100000 { + /* take care subnormal number */ + ax *= TWO53; + n -= 53; + ix = get_high_word(ax) as i32; + } + + n += (ix >> 20) - 0x3ff; + j = ix & 0x000fffff; + + /* determine interval */ + let k: i32; + ix = j | 0x3ff00000; /* normalize ix */ + if j <= 0x3988E { + /* |x|> 1) | 0x20000000) + 0x00080000 + ((k as u32) << 18), + ); + let t_l: f64 = ax - (t_h - i!(BP, k as usize)); + let s_l: f64 = v * ((u - s_h * t_h) - s_h * t_l); + + /* compute log(ax) */ + let s2: f64 = ss * ss; + let mut r: f64 = s2 * s2 * (L1 + s2 * (L2 + s2 * (L3 + s2 * (L4 + s2 * (L5 + s2 * L6))))); + r += s_l * (s_h + ss); + let s2: f64 = s_h * s_h; + let t_h: f64 = with_set_low_word(3.0 + s2 + r, 0); + let t_l: f64 = r - ((t_h - 3.0) - s2); + + /* u+v = ss*(1+...) */ + let u: f64 = s_h * t_h; + let v: f64 = s_l * t_h + t_l * ss; + + /* 2/(3log2)*(ss+...) */ + let p_h: f64 = with_set_low_word(u + v, 0); + let p_l = v - (p_h - u); + let z_h: f64 = CP_H * p_h; /* cp_h+cp_l = 2/(3*log2) */ + let z_l: f64 = CP_L * p_h + p_l * CP + i!(DP_L, k as usize); + + /* log2(ax) = (ss+..)*2/(3*log2) = n + dp_h + z_h + z_l */ + let t: f64 = n as f64; + t1 = with_set_low_word(((z_h + z_l) + i!(DP_H, k as usize)) + t, 0); + t2 = z_l - (((t1 - t) - i!(DP_H, k as usize)) - z_h); + } + + /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */ + let y1: f64 = with_set_low_word(y, 0); + let p_l: f64 = (y - y1) * t1 + y * t2; + let mut p_h: f64 = y1 * t1; + let z: f64 = p_l + p_h; + let mut j: i32 = (z.to_bits() >> 32) as i32; + let i: i32 = z.to_bits() as i32; + // let (j, i): (i32, i32) = ((z.to_bits() >> 32) as i32, z.to_bits() as i32); + + if j >= 0x40900000 { + /* z >= 1024 */ + if (j - 0x40900000) | i != 0 { + /* if z > 1024 */ + return s * HUGE * HUGE; /* overflow */ + } + + if p_l + OVT > z - p_h { + return s * HUGE * HUGE; /* overflow */ + } + } else if (j & 0x7fffffff) >= 0x4090cc00 { + /* z <= -1075 */ + // FIXME: instead of abs(j) use unsigned j + + if (((j as u32) - 0xc090cc00) | (i as u32)) != 0 { + /* z < -1075 */ + return s * TINY * TINY; /* underflow */ + } + + if p_l <= z - p_h { + return s * TINY * TINY; /* underflow */ + } + } + + /* compute 2**(p_h+p_l) */ + let i: i32 = j & (0x7fffffff as i32); + k = (i >> 20) - 0x3ff; + let mut n: i32 = 0; + + if i > 0x3fe00000 { + /* if |z| > 0.5, set n = [z+0.5] */ + n = j + (0x00100000 >> (k + 1)); + k = ((n & 0x7fffffff) >> 20) - 0x3ff; /* new k for n */ + let t: f64 = with_set_high_word(0.0, (n & !(0x000fffff >> k)) as u32); + n = ((n & 0x000fffff) | 0x00100000) >> (20 - k); + if j < 0 { + n = -n; + } + p_h -= t; + } + + let t: f64 = with_set_low_word(p_l + p_h, 0); + let u: f64 = t * LG2_H; + let v: f64 = (p_l - (t - p_h)) * LG2 + t * LG2_L; + let mut z: f64 = u + v; + let w: f64 = v - (z - u); + let t: f64 = z * z; + let t1: f64 = z - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5)))); + let r: f64 = (z * t1) / (t1 - 2.0) - (w + z * w); + z = 1.0 - (r - z); + j = get_high_word(z) as i32; + j += n << 20; + + if (j >> 20) <= 0 { + /* subnormal output */ + z = scalbn(z, n); + } else { + z = with_set_high_word(z, j as u32); + } + + s * z +} + +#[cfg(test)] +mod tests { + extern crate core; + + use self::core::f64::consts::{E, PI}; + use self::core::f64::{EPSILON, INFINITY, MAX, MIN, MIN_POSITIVE, NAN, NEG_INFINITY}; + use super::pow; + + const POS_ZERO: &[f64] = &[0.0]; + const NEG_ZERO: &[f64] = &[-0.0]; + const POS_ONE: &[f64] = &[1.0]; + const NEG_ONE: &[f64] = &[-1.0]; + const POS_FLOATS: &[f64] = &[99.0 / 70.0, E, PI]; + const NEG_FLOATS: &[f64] = &[-99.0 / 70.0, -E, -PI]; + const POS_SMALL_FLOATS: &[f64] = &[(1.0 / 2.0), MIN_POSITIVE, EPSILON]; + const NEG_SMALL_FLOATS: &[f64] = &[-(1.0 / 2.0), -MIN_POSITIVE, -EPSILON]; + const POS_EVENS: &[f64] = &[2.0, 6.0, 8.0, 10.0, 22.0, 100.0, MAX]; + const NEG_EVENS: &[f64] = &[MIN, -100.0, -22.0, -10.0, -8.0, -6.0, -2.0]; + const POS_ODDS: &[f64] = &[3.0, 7.0]; + const NEG_ODDS: &[f64] = &[-7.0, -3.0]; + const NANS: &[f64] = &[NAN]; + const POS_INF: &[f64] = &[INFINITY]; + const NEG_INF: &[f64] = &[NEG_INFINITY]; + + const ALL: &[&[f64]] = &[ + POS_ZERO, + NEG_ZERO, + NANS, + NEG_SMALL_FLOATS, + POS_SMALL_FLOATS, + NEG_FLOATS, + POS_FLOATS, + NEG_EVENS, + POS_EVENS, + NEG_ODDS, + POS_ODDS, + NEG_INF, + POS_INF, + NEG_ONE, + POS_ONE, + ]; + const POS: &[&[f64]] = &[POS_ZERO, POS_ODDS, POS_ONE, POS_FLOATS, POS_EVENS, POS_INF]; + const NEG: &[&[f64]] = &[NEG_ZERO, NEG_ODDS, NEG_ONE, NEG_FLOATS, NEG_EVENS, NEG_INF]; + + fn pow_test(base: f64, exponent: f64, expected: f64) { + let res = pow(base, exponent); + assert!( + if expected.is_nan() { + res.is_nan() + } else { + pow(base, exponent) == expected + }, + "{} ** {} was {} instead of {}", + base, + exponent, + res, + expected + ); + } + + fn test_sets_as_base(sets: &[&[f64]], exponent: f64, expected: f64) { + sets.iter() + .for_each(|s| s.iter().for_each(|val| pow_test(*val, exponent, expected))); + } + + fn test_sets_as_exponent(base: f64, sets: &[&[f64]], expected: f64) { + sets.iter() + .for_each(|s| s.iter().for_each(|val| pow_test(base, *val, expected))); + } + + fn test_sets(sets: &[&[f64]], computed: &dyn Fn(f64) -> f64, expected: &dyn Fn(f64) -> f64) { + sets.iter().for_each(|s| { + s.iter().for_each(|val| { + let exp = expected(*val); + let res = computed(*val); + + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let exp = force_eval!(exp); + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let res = force_eval!(res); + assert!( + if exp.is_nan() { + res.is_nan() + } else { + exp == res + }, + "test for {} was {} instead of {}", + val, + res, + exp + ); + }) + }); + } + + #[test] + fn zero_as_exponent() { + test_sets_as_base(ALL, 0.0, 1.0); + test_sets_as_base(ALL, -0.0, 1.0); + } + + #[test] + fn one_as_base() { + test_sets_as_exponent(1.0, ALL, 1.0); + } + + #[test] + fn nan_inputs() { + // NAN as the base: + // (NAN ^ anything *but 0* should be NAN) + test_sets_as_exponent(NAN, &ALL[2..], NAN); + + // NAN as the exponent: + // (anything *but 1* ^ NAN should be NAN) + test_sets_as_base(&ALL[..(ALL.len() - 2)], NAN, NAN); + } + + #[test] + fn infinity_as_base() { + // Positive Infinity as the base: + // (+Infinity ^ positive anything but 0 and NAN should be +Infinity) + test_sets_as_exponent(INFINITY, &POS[1..], INFINITY); + + // (+Infinity ^ negative anything except 0 and NAN should be 0.0) + test_sets_as_exponent(INFINITY, &NEG[1..], 0.0); + + // Negative Infinity as the base: + // (-Infinity ^ positive odd ints should be -Infinity) + test_sets_as_exponent(NEG_INFINITY, &[POS_ODDS], NEG_INFINITY); + + // (-Infinity ^ anything but odd ints should be == -0 ^ (-anything)) + // We can lump in pos/neg odd ints here because they don't seem to + // cause panics (div by zero) in release mode (I think). + test_sets(ALL, &|v: f64| pow(NEG_INFINITY, v), &|v: f64| pow(-0.0, -v)); + } + + #[test] + fn infinity_as_exponent() { + // Positive/Negative base greater than 1: + // (pos/neg > 1 ^ Infinity should be Infinity - note this excludes NAN as the base) + test_sets_as_base(&ALL[5..(ALL.len() - 2)], INFINITY, INFINITY); + + // (pos/neg > 1 ^ -Infinity should be 0.0) + test_sets_as_base(&ALL[5..ALL.len() - 2], NEG_INFINITY, 0.0); + + // Positive/Negative base less than 1: + let base_below_one = &[POS_ZERO, NEG_ZERO, NEG_SMALL_FLOATS, POS_SMALL_FLOATS]; + + // (pos/neg < 1 ^ Infinity should be 0.0 - this also excludes NAN as the base) + test_sets_as_base(base_below_one, INFINITY, 0.0); + + // (pos/neg < 1 ^ -Infinity should be Infinity) + test_sets_as_base(base_below_one, NEG_INFINITY, INFINITY); + + // Positive/Negative 1 as the base: + // (pos/neg 1 ^ Infinity should be 1) + test_sets_as_base(&[NEG_ONE, POS_ONE], INFINITY, 1.0); + + // (pos/neg 1 ^ -Infinity should be 1) + test_sets_as_base(&[NEG_ONE, POS_ONE], NEG_INFINITY, 1.0); + } + + #[test] + fn zero_as_base() { + // Positive Zero as the base: + // (+0 ^ anything positive but 0 and NAN should be +0) + test_sets_as_exponent(0.0, &POS[1..], 0.0); + + // (+0 ^ anything negative but 0 and NAN should be Infinity) + // (this should panic because we're dividing by zero) + test_sets_as_exponent(0.0, &NEG[1..], INFINITY); + + // Negative Zero as the base: + // (-0 ^ anything positive but 0, NAN, and odd ints should be +0) + test_sets_as_exponent(-0.0, &POS[3..], 0.0); + + // (-0 ^ anything negative but 0, NAN, and odd ints should be Infinity) + // (should panic because of divide by zero) + test_sets_as_exponent(-0.0, &NEG[3..], INFINITY); + + // (-0 ^ positive odd ints should be -0) + test_sets_as_exponent(-0.0, &[POS_ODDS], -0.0); + + // (-0 ^ negative odd ints should be -Infinity) + // (should panic because of divide by zero) + test_sets_as_exponent(-0.0, &[NEG_ODDS], NEG_INFINITY); + } + + #[test] + fn special_cases() { + // One as the exponent: + // (anything ^ 1 should be anything - i.e. the base) + test_sets(ALL, &|v: f64| pow(v, 1.0), &|v: f64| v); + + // Negative One as the exponent: + // (anything ^ -1 should be 1/anything) + test_sets(ALL, &|v: f64| pow(v, -1.0), &|v: f64| 1.0 / v); + + // Factoring -1 out: + // (negative anything ^ integer should be (-1 ^ integer) * (positive anything ^ integer)) + (&[POS_ZERO, NEG_ZERO, POS_ONE, NEG_ONE, POS_EVENS, NEG_EVENS]) + .iter() + .for_each(|int_set| { + int_set.iter().for_each(|int| { + test_sets(ALL, &|v: f64| pow(-v, *int), &|v: f64| { + pow(-1.0, *int) * pow(v, *int) + }); + }) + }); + + // Negative base (imaginary results): + // (-anything except 0 and Infinity ^ non-integer should be NAN) + (&NEG[1..(NEG.len() - 1)]).iter().for_each(|set| { + set.iter().for_each(|val| { + test_sets(&ALL[3..7], &|v: f64| pow(*val, v), &|_| NAN); + }) + }); + } + + #[test] + fn normal_cases() { + assert_eq!(pow(2.0, 20.0), (1 << 20) as f64); + assert_eq!(pow(-1.0, 9.0), -1.0); + assert!(pow(-1.0, 2.2).is_nan()); + assert!(pow(-1.0, -1.14).is_nan()); + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/powf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/powf.rs new file mode 100644 index 000000000..68d2083bb --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/powf.rs @@ -0,0 +1,342 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_powf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::{fabsf, scalbnf, sqrtf}; + +const BP: [f32; 2] = [1.0, 1.5]; +const DP_H: [f32; 2] = [0.0, 5.84960938e-01]; /* 0x3f15c000 */ +const DP_L: [f32; 2] = [0.0, 1.56322085e-06]; /* 0x35d1cfdc */ +const TWO24: f32 = 16777216.0; /* 0x4b800000 */ +const HUGE: f32 = 1.0e30; +const TINY: f32 = 1.0e-30; +const L1: f32 = 6.0000002384e-01; /* 0x3f19999a */ +const L2: f32 = 4.2857143283e-01; /* 0x3edb6db7 */ +const L3: f32 = 3.3333334327e-01; /* 0x3eaaaaab */ +const L4: f32 = 2.7272811532e-01; /* 0x3e8ba305 */ +const L5: f32 = 2.3066075146e-01; /* 0x3e6c3255 */ +const L6: f32 = 2.0697501302e-01; /* 0x3e53f142 */ +const P1: f32 = 1.6666667163e-01; /* 0x3e2aaaab */ +const P2: f32 = -2.7777778450e-03; /* 0xbb360b61 */ +const P3: f32 = 6.6137559770e-05; /* 0x388ab355 */ +const P4: f32 = -1.6533901999e-06; /* 0xb5ddea0e */ +const P5: f32 = 4.1381369442e-08; /* 0x3331bb4c */ +const LG2: f32 = 6.9314718246e-01; /* 0x3f317218 */ +const LG2_H: f32 = 6.93145752e-01; /* 0x3f317200 */ +const LG2_L: f32 = 1.42860654e-06; /* 0x35bfbe8c */ +const OVT: f32 = 4.2995665694e-08; /* -(128-log2(ovfl+.5ulp)) */ +const CP: f32 = 9.6179670095e-01; /* 0x3f76384f =2/(3ln2) */ +const CP_H: f32 = 9.6191406250e-01; /* 0x3f764000 =12b cp */ +const CP_L: f32 = -1.1736857402e-04; /* 0xb8f623c6 =tail of cp_h */ +const IVLN2: f32 = 1.4426950216e+00; +const IVLN2_H: f32 = 1.4426879883e+00; +const IVLN2_L: f32 = 7.0526075433e-06; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn powf(x: f32, y: f32) -> f32 { + let mut z: f32; + let mut ax: f32; + let z_h: f32; + let z_l: f32; + let mut p_h: f32; + let mut p_l: f32; + let y1: f32; + let mut t1: f32; + let t2: f32; + let mut r: f32; + let s: f32; + let mut sn: f32; + let mut t: f32; + let mut u: f32; + let mut v: f32; + let mut w: f32; + let i: i32; + let mut j: i32; + let mut k: i32; + let mut yisint: i32; + let mut n: i32; + let hx: i32; + let hy: i32; + let mut ix: i32; + let iy: i32; + let mut is: i32; + + hx = x.to_bits() as i32; + hy = y.to_bits() as i32; + + ix = hx & 0x7fffffff; + iy = hy & 0x7fffffff; + + /* x**0 = 1, even if x is NaN */ + if iy == 0 { + return 1.0; + } + + /* 1**y = 1, even if y is NaN */ + if hx == 0x3f800000 { + return 1.0; + } + + /* NaN if either arg is NaN */ + if ix > 0x7f800000 || iy > 0x7f800000 { + return x + y; + } + + /* determine if y is an odd int when x < 0 + * yisint = 0 ... y is not an integer + * yisint = 1 ... y is an odd int + * yisint = 2 ... y is an even int + */ + yisint = 0; + if hx < 0 { + if iy >= 0x4b800000 { + yisint = 2; /* even integer y */ + } else if iy >= 0x3f800000 { + k = (iy >> 23) - 0x7f; /* exponent */ + j = iy >> (23 - k); + if (j << (23 - k)) == iy { + yisint = 2 - (j & 1); + } + } + } + + /* special value of y */ + if iy == 0x7f800000 { + /* y is +-inf */ + if ix == 0x3f800000 { + /* (-1)**+-inf is 1 */ + return 1.0; + } else if ix > 0x3f800000 { + /* (|x|>1)**+-inf = inf,0 */ + return if hy >= 0 { y } else { 0.0 }; + } else { + /* (|x|<1)**+-inf = 0,inf */ + return if hy >= 0 { 0.0 } else { -y }; + } + } + if iy == 0x3f800000 { + /* y is +-1 */ + return if hy >= 0 { x } else { 1.0 / x }; + } + + if hy == 0x40000000 { + /* y is 2 */ + return x * x; + } + + if hy == 0x3f000000 + /* y is 0.5 */ + && hx >= 0 + { + /* x >= +0 */ + return sqrtf(x); + } + + ax = fabsf(x); + /* special value of x */ + if ix == 0x7f800000 || ix == 0 || ix == 0x3f800000 { + /* x is +-0,+-inf,+-1 */ + z = ax; + if hy < 0 { + /* z = (1/|x|) */ + z = 1.0 / z; + } + + if hx < 0 { + if ((ix - 0x3f800000) | yisint) == 0 { + z = (z - z) / (z - z); /* (-1)**non-int is NaN */ + } else if yisint == 1 { + z = -z; /* (x<0)**odd = -(|x|**odd) */ + } + } + return z; + } + + sn = 1.0; /* sign of result */ + if hx < 0 { + if yisint == 0 { + /* (x<0)**(non-int) is NaN */ + return (x - x) / (x - x); + } + + if yisint == 1 { + /* (x<0)**(odd int) */ + sn = -1.0; + } + } + + /* |y| is HUGE */ + if iy > 0x4d000000 { + /* if |y| > 2**27 */ + /* over/underflow if x is not close to one */ + if ix < 0x3f7ffff8 { + return if hy < 0 { + sn * HUGE * HUGE + } else { + sn * TINY * TINY + }; + } + + if ix > 0x3f800007 { + return if hy > 0 { + sn * HUGE * HUGE + } else { + sn * TINY * TINY + }; + } + + /* now |1-x| is TINY <= 2**-20, suffice to compute + log(x) by x-x^2/2+x^3/3-x^4/4 */ + t = ax - 1.; /* t has 20 trailing zeros */ + w = (t * t) * (0.5 - t * (0.333333333333 - t * 0.25)); + u = IVLN2_H * t; /* IVLN2_H has 16 sig. bits */ + v = t * IVLN2_L - w * IVLN2; + t1 = u + v; + is = t1.to_bits() as i32; + t1 = f32::from_bits(is as u32 & 0xfffff000); + t2 = v - (t1 - u); + } else { + let mut s2: f32; + let mut s_h: f32; + let s_l: f32; + let mut t_h: f32; + let mut t_l: f32; + + n = 0; + /* take care subnormal number */ + if ix < 0x00800000 { + ax *= TWO24; + n -= 24; + ix = ax.to_bits() as i32; + } + n += ((ix) >> 23) - 0x7f; + j = ix & 0x007fffff; + /* determine interval */ + ix = j | 0x3f800000; /* normalize ix */ + if j <= 0x1cc471 { + /* |x|> 1) & 0xfffff000) | 0x20000000) as i32; + t_h = f32::from_bits(is as u32 + 0x00400000 + ((k as u32) << 21)); + t_l = ax - (t_h - i!(BP, k as usize)); + s_l = v * ((u - s_h * t_h) - s_h * t_l); + /* compute log(ax) */ + s2 = s * s; + r = s2 * s2 * (L1 + s2 * (L2 + s2 * (L3 + s2 * (L4 + s2 * (L5 + s2 * L6))))); + r += s_l * (s_h + s); + s2 = s_h * s_h; + t_h = 3.0 + s2 + r; + is = t_h.to_bits() as i32; + t_h = f32::from_bits(is as u32 & 0xfffff000); + t_l = r - ((t_h - 3.0) - s2); + /* u+v = s*(1+...) */ + u = s_h * t_h; + v = s_l * t_h + t_l * s; + /* 2/(3log2)*(s+...) */ + p_h = u + v; + is = p_h.to_bits() as i32; + p_h = f32::from_bits(is as u32 & 0xfffff000); + p_l = v - (p_h - u); + z_h = CP_H * p_h; /* cp_h+cp_l = 2/(3*log2) */ + z_l = CP_L * p_h + p_l * CP + i!(DP_L, k as usize); + /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */ + t = n as f32; + t1 = ((z_h + z_l) + i!(DP_H, k as usize)) + t; + is = t1.to_bits() as i32; + t1 = f32::from_bits(is as u32 & 0xfffff000); + t2 = z_l - (((t1 - t) - i!(DP_H, k as usize)) - z_h); + }; + + /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */ + is = y.to_bits() as i32; + y1 = f32::from_bits(is as u32 & 0xfffff000); + p_l = (y - y1) * t1 + y * t2; + p_h = y1 * t1; + z = p_l + p_h; + j = z.to_bits() as i32; + if j > 0x43000000 { + /* if z > 128 */ + return sn * HUGE * HUGE; /* overflow */ + } else if j == 0x43000000 { + /* if z == 128 */ + if p_l + OVT > z - p_h { + return sn * HUGE * HUGE; /* overflow */ + } + } else if (j & 0x7fffffff) > 0x43160000 { + /* z < -150 */ + // FIXME: check should be (uint32_t)j > 0xc3160000 + return sn * TINY * TINY; /* underflow */ + } else if j as u32 == 0xc3160000 + /* z == -150 */ + && p_l <= z - p_h + { + return sn * TINY * TINY; /* underflow */ + } + + /* + * compute 2**(p_h+p_l) + */ + i = j & 0x7fffffff; + k = (i >> 23) - 0x7f; + n = 0; + if i > 0x3f000000 { + /* if |z| > 0.5, set n = [z+0.5] */ + n = j + (0x00800000 >> (k + 1)); + k = ((n & 0x7fffffff) >> 23) - 0x7f; /* new k for n */ + t = f32::from_bits(n as u32 & !(0x007fffff >> k)); + n = ((n & 0x007fffff) | 0x00800000) >> (23 - k); + if j < 0 { + n = -n; + } + p_h -= t; + } + t = p_l + p_h; + is = t.to_bits() as i32; + t = f32::from_bits(is as u32 & 0xffff8000); + u = t * LG2_H; + v = (p_l - (t - p_h)) * LG2 + t * LG2_L; + z = u + v; + w = v - (z - u); + t = z * z; + t1 = z - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5)))); + r = (z * t1) / (t1 - 2.0) - (w + z * w); + z = 1.0 - (r - z); + j = z.to_bits() as i32; + j += n << 23; + if (j >> 23) <= 0 { + /* subnormal output */ + z = scalbnf(z, n); + } else { + z = f32::from_bits(j as u32); + } + sn * z +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/rem_pio2.rs b/src/rust/vendor/compiler_builtins/libm/src/math/rem_pio2.rs new file mode 100644 index 000000000..644616f2d --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/rem_pio2.rs @@ -0,0 +1,233 @@ +// origin: FreeBSD /usr/src/lib/msun/src/e_rem_pio2.c +// +// ==================================================== +// Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. +// +// Developed at SunPro, a Sun Microsystems, Inc. business. +// Permission to use, copy, modify, and distribute this +// software is freely granted, provided that this notice +// is preserved. +// ==================================================== +// +// Optimized by Bruce D. Evans. */ +use super::rem_pio2_large; + +// #if FLT_EVAL_METHOD==0 || FLT_EVAL_METHOD==1 +// #define EPS DBL_EPSILON +const EPS: f64 = 2.2204460492503131e-16; +// #elif FLT_EVAL_METHOD==2 +// #define EPS LDBL_EPSILON +// #endif + +// TODO: Support FLT_EVAL_METHOD? + +const TO_INT: f64 = 1.5 / EPS; +/// 53 bits of 2/pi +const INV_PIO2: f64 = 6.36619772367581382433e-01; /* 0x3FE45F30, 0x6DC9C883 */ +/// first 33 bits of pi/2 +const PIO2_1: f64 = 1.57079632673412561417e+00; /* 0x3FF921FB, 0x54400000 */ +/// pi/2 - PIO2_1 +const PIO2_1T: f64 = 6.07710050650619224932e-11; /* 0x3DD0B461, 0x1A626331 */ +/// second 33 bits of pi/2 +const PIO2_2: f64 = 6.07710050630396597660e-11; /* 0x3DD0B461, 0x1A600000 */ +/// pi/2 - (PIO2_1+PIO2_2) +const PIO2_2T: f64 = 2.02226624879595063154e-21; /* 0x3BA3198A, 0x2E037073 */ +/// third 33 bits of pi/2 +const PIO2_3: f64 = 2.02226624871116645580e-21; /* 0x3BA3198A, 0x2E000000 */ +/// pi/2 - (PIO2_1+PIO2_2+PIO2_3) +const PIO2_3T: f64 = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */ + +// return the remainder of x rem pi/2 in y[0]+y[1] +// use rem_pio2_large() for large x +// +// caller must handle the case when reduction is not needed: |x| ~<= pi/4 */ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub(crate) fn rem_pio2(x: f64) -> (i32, f64, f64) { + let x1p24 = f64::from_bits(0x4170000000000000); + + let sign = (f64::to_bits(x) >> 63) as i32; + let ix = (f64::to_bits(x) >> 32) as u32 & 0x7fffffff; + + fn medium(x: f64, ix: u32) -> (i32, f64, f64) { + /* rint(x/(pi/2)), Assume round-to-nearest. */ + let tmp = x as f64 * INV_PIO2 + TO_INT; + // force rounding of tmp to it's storage format on x87 to avoid + // excess precision issues. + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let tmp = force_eval!(tmp); + let f_n = tmp - TO_INT; + let n = f_n as i32; + let mut r = x - f_n * PIO2_1; + let mut w = f_n * PIO2_1T; /* 1st round, good to 85 bits */ + let mut y0 = r - w; + let ui = f64::to_bits(y0); + let ey = (ui >> 52) as i32 & 0x7ff; + let ex = (ix >> 20) as i32; + if ex - ey > 16 { + /* 2nd round, good to 118 bits */ + let t = r; + w = f_n * PIO2_2; + r = t - w; + w = f_n * PIO2_2T - ((t - r) - w); + y0 = r - w; + let ey = (f64::to_bits(y0) >> 52) as i32 & 0x7ff; + if ex - ey > 49 { + /* 3rd round, good to 151 bits, covers all cases */ + let t = r; + w = f_n * PIO2_3; + r = t - w; + w = f_n * PIO2_3T - ((t - r) - w); + y0 = r - w; + } + } + let y1 = (r - y0) - w; + (n, y0, y1) + } + + if ix <= 0x400f6a7a { + /* |x| ~<= 5pi/4 */ + if (ix & 0xfffff) == 0x921fb { + /* |x| ~= pi/2 or 2pi/2 */ + return medium(x, ix); /* cancellation -- use medium case */ + } + if ix <= 0x4002d97c { + /* |x| ~<= 3pi/4 */ + if sign == 0 { + let z = x - PIO2_1; /* one round good to 85 bits */ + let y0 = z - PIO2_1T; + let y1 = (z - y0) - PIO2_1T; + return (1, y0, y1); + } else { + let z = x + PIO2_1; + let y0 = z + PIO2_1T; + let y1 = (z - y0) + PIO2_1T; + return (-1, y0, y1); + } + } else if sign == 0 { + let z = x - 2.0 * PIO2_1; + let y0 = z - 2.0 * PIO2_1T; + let y1 = (z - y0) - 2.0 * PIO2_1T; + return (2, y0, y1); + } else { + let z = x + 2.0 * PIO2_1; + let y0 = z + 2.0 * PIO2_1T; + let y1 = (z - y0) + 2.0 * PIO2_1T; + return (-2, y0, y1); + } + } + if ix <= 0x401c463b { + /* |x| ~<= 9pi/4 */ + if ix <= 0x4015fdbc { + /* |x| ~<= 7pi/4 */ + if ix == 0x4012d97c { + /* |x| ~= 3pi/2 */ + return medium(x, ix); + } + if sign == 0 { + let z = x - 3.0 * PIO2_1; + let y0 = z - 3.0 * PIO2_1T; + let y1 = (z - y0) - 3.0 * PIO2_1T; + return (3, y0, y1); + } else { + let z = x + 3.0 * PIO2_1; + let y0 = z + 3.0 * PIO2_1T; + let y1 = (z - y0) + 3.0 * PIO2_1T; + return (-3, y0, y1); + } + } else { + if ix == 0x401921fb { + /* |x| ~= 4pi/2 */ + return medium(x, ix); + } + if sign == 0 { + let z = x - 4.0 * PIO2_1; + let y0 = z - 4.0 * PIO2_1T; + let y1 = (z - y0) - 4.0 * PIO2_1T; + return (4, y0, y1); + } else { + let z = x + 4.0 * PIO2_1; + let y0 = z + 4.0 * PIO2_1T; + let y1 = (z - y0) + 4.0 * PIO2_1T; + return (-4, y0, y1); + } + } + } + if ix < 0x413921fb { + /* |x| ~< 2^20*(pi/2), medium size */ + return medium(x, ix); + } + /* + * all other (large) arguments + */ + if ix >= 0x7ff00000 { + /* x is inf or NaN */ + let y0 = x - x; + let y1 = y0; + return (0, y0, y1); + } + /* set z = scalbn(|x|,-ilogb(x)+23) */ + let mut ui = f64::to_bits(x); + ui &= (!1) >> 12; + ui |= (0x3ff + 23) << 52; + let mut z = f64::from_bits(ui); + let mut tx = [0.0; 3]; + for i in 0..2 { + i!(tx,i, =, z as i32 as f64); + z = (z - i!(tx, i)) * x1p24; + } + i!(tx,2, =, z); + /* skip zero terms, first term is non-zero */ + let mut i = 2; + while i != 0 && i!(tx, i) == 0.0 { + i -= 1; + } + let mut ty = [0.0; 3]; + let n = rem_pio2_large(&tx[..=i], &mut ty, ((ix as i32) >> 20) - (0x3ff + 23), 1); + if sign != 0 { + return (-n, -i!(ty, 0), -i!(ty, 1)); + } + (n, i!(ty, 0), i!(ty, 1)) +} + +#[cfg(test)] +mod tests { + use super::rem_pio2; + + #[test] + fn test_near_pi() { + let arg = 3.141592025756836; + let arg = force_eval!(arg); + assert_eq!( + rem_pio2(arg), + (2, -6.278329573009626e-7, -2.1125998133974653e-23) + ); + let arg = 3.141592033207416; + let arg = force_eval!(arg); + assert_eq!( + rem_pio2(arg), + (2, -6.20382377148128e-7, -2.1125998133974653e-23) + ); + let arg = 3.141592144966125; + let arg = force_eval!(arg); + assert_eq!( + rem_pio2(arg), + (2, -5.086236681942706e-7, -2.1125998133974653e-23) + ); + let arg = 3.141592979431152; + let arg = force_eval!(arg); + assert_eq!( + rem_pio2(arg), + (2, 3.2584135866119817e-7, -2.1125998133974653e-23) + ); + } + + #[test] + fn test_overflow_b9b847() { + let _ = rem_pio2(-3054214.5490637687); + } + + #[test] + fn test_overflow_4747b9() { + let _ = rem_pio2(917340800458.2274); + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/rem_pio2_large.rs b/src/rust/vendor/compiler_builtins/libm/src/math/rem_pio2_large.rs new file mode 100644 index 000000000..db97a39d4 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/rem_pio2_large.rs @@ -0,0 +1,470 @@ +#![allow(unused_unsafe)] +/* origin: FreeBSD /usr/src/lib/msun/src/k_rem_pio2.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::floor; +use super::scalbn; + +// initial value for jk +const INIT_JK: [usize; 4] = [3, 4, 4, 6]; + +// Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi +// +// integer array, contains the (24*i)-th to (24*i+23)-th +// bit of 2/pi after binary point. The corresponding +// floating value is +// +// ipio2[i] * 2^(-24(i+1)). +// +// NB: This table must have at least (e0-3)/24 + jk terms. +// For quad precision (e0 <= 16360, jk = 6), this is 686. +#[cfg(any(target_pointer_width = "32", target_pointer_width = "16"))] +const IPIO2: [i32; 66] = [ + 0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, 0x95993C, 0x439041, 0xFE5163, + 0xABDEBB, 0xC561B7, 0x246E3A, 0x424DD2, 0xE00649, 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, + 0xA73EE8, 0x8235F5, 0x2EBB44, 0x84E99C, 0x7026B4, 0x5F7E41, 0x3991D6, 0x398353, 0x39F49C, + 0x845F8B, 0xBDF928, 0x3B1FF8, 0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, 0x367ECF, + 0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5, 0xF17B3D, 0x0739F7, 0x8A5292, + 0xEA6BFB, 0x5FB11F, 0x8D5D08, 0x560330, 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, + 0x91615E, 0xE61B08, 0x659985, 0x5F14A0, 0x68408D, 0xFFD880, 0x4D7327, 0x310606, 0x1556CA, + 0x73A8C9, 0x60E27B, 0xC08C6B, +]; + +#[cfg(target_pointer_width = "64")] +const IPIO2: [i32; 690] = [ + 0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, 0x95993C, 0x439041, 0xFE5163, + 0xABDEBB, 0xC561B7, 0x246E3A, 0x424DD2, 0xE00649, 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, + 0xA73EE8, 0x8235F5, 0x2EBB44, 0x84E99C, 0x7026B4, 0x5F7E41, 0x3991D6, 0x398353, 0x39F49C, + 0x845F8B, 0xBDF928, 0x3B1FF8, 0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, 0x367ECF, + 0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5, 0xF17B3D, 0x0739F7, 0x8A5292, + 0xEA6BFB, 0x5FB11F, 0x8D5D08, 0x560330, 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, + 0x91615E, 0xE61B08, 0x659985, 0x5F14A0, 0x68408D, 0xFFD880, 0x4D7327, 0x310606, 0x1556CA, + 0x73A8C9, 0x60E27B, 0xC08C6B, 0x47C419, 0xC367CD, 0xDCE809, 0x2A8359, 0xC4768B, 0x961CA6, + 0xDDAF44, 0xD15719, 0x053EA5, 0xFF0705, 0x3F7E33, 0xE832C2, 0xDE4F98, 0x327DBB, 0xC33D26, + 0xEF6B1E, 0x5EF89F, 0x3A1F35, 0xCAF27F, 0x1D87F1, 0x21907C, 0x7C246A, 0xFA6ED5, 0x772D30, + 0x433B15, 0xC614B5, 0x9D19C3, 0xC2C4AD, 0x414D2C, 0x5D000C, 0x467D86, 0x2D71E3, 0x9AC69B, + 0x006233, 0x7CD2B4, 0x97A7B4, 0xD55537, 0xF63ED7, 0x1810A3, 0xFC764D, 0x2A9D64, 0xABD770, + 0xF87C63, 0x57B07A, 0xE71517, 0x5649C0, 0xD9D63B, 0x3884A7, 0xCB2324, 0x778AD6, 0x23545A, + 0xB91F00, 0x1B0AF1, 0xDFCE19, 0xFF319F, 0x6A1E66, 0x615799, 0x47FBAC, 0xD87F7E, 0xB76522, + 0x89E832, 0x60BFE6, 0xCDC4EF, 0x09366C, 0xD43F5D, 0xD7DE16, 0xDE3B58, 0x929BDE, 0x2822D2, + 0xE88628, 0x4D58E2, 0x32CAC6, 0x16E308, 0xCB7DE0, 0x50C017, 0xA71DF3, 0x5BE018, 0x34132E, + 0x621283, 0x014883, 0x5B8EF5, 0x7FB0AD, 0xF2E91E, 0x434A48, 0xD36710, 0xD8DDAA, 0x425FAE, + 0xCE616A, 0xA4280A, 0xB499D3, 0xF2A606, 0x7F775C, 0x83C2A3, 0x883C61, 0x78738A, 0x5A8CAF, + 0xBDD76F, 0x63A62D, 0xCBBFF4, 0xEF818D, 0x67C126, 0x45CA55, 0x36D9CA, 0xD2A828, 0x8D61C2, + 0x77C912, 0x142604, 0x9B4612, 0xC459C4, 0x44C5C8, 0x91B24D, 0xF31700, 0xAD43D4, 0xE54929, + 0x10D5FD, 0xFCBE00, 0xCC941E, 0xEECE70, 0xF53E13, 0x80F1EC, 0xC3E7B3, 0x28F8C7, 0x940593, + 0x3E71C1, 0xB3092E, 0xF3450B, 0x9C1288, 0x7B20AB, 0x9FB52E, 0xC29247, 0x2F327B, 0x6D550C, + 0x90A772, 0x1FE76B, 0x96CB31, 0x4A1679, 0xE27941, 0x89DFF4, 0x9794E8, 0x84E6E2, 0x973199, + 0x6BED88, 0x365F5F, 0x0EFDBB, 0xB49A48, 0x6CA467, 0x427271, 0x325D8D, 0xB8159F, 0x09E5BC, + 0x25318D, 0x3974F7, 0x1C0530, 0x010C0D, 0x68084B, 0x58EE2C, 0x90AA47, 0x02E774, 0x24D6BD, + 0xA67DF7, 0x72486E, 0xEF169F, 0xA6948E, 0xF691B4, 0x5153D1, 0xF20ACF, 0x339820, 0x7E4BF5, + 0x6863B2, 0x5F3EDD, 0x035D40, 0x7F8985, 0x295255, 0xC06437, 0x10D86D, 0x324832, 0x754C5B, + 0xD4714E, 0x6E5445, 0xC1090B, 0x69F52A, 0xD56614, 0x9D0727, 0x50045D, 0xDB3BB4, 0xC576EA, + 0x17F987, 0x7D6B49, 0xBA271D, 0x296996, 0xACCCC6, 0x5414AD, 0x6AE290, 0x89D988, 0x50722C, + 0xBEA404, 0x940777, 0x7030F3, 0x27FC00, 0xA871EA, 0x49C266, 0x3DE064, 0x83DD97, 0x973FA3, + 0xFD9443, 0x8C860D, 0xDE4131, 0x9D3992, 0x8C70DD, 0xE7B717, 0x3BDF08, 0x2B3715, 0xA0805C, + 0x93805A, 0x921110, 0xD8E80F, 0xAF806C, 0x4BFFDB, 0x0F9038, 0x761859, 0x15A562, 0xBBCB61, + 0xB989C7, 0xBD4010, 0x04F2D2, 0x277549, 0xF6B6EB, 0xBB22DB, 0xAA140A, 0x2F2689, 0x768364, + 0x333B09, 0x1A940E, 0xAA3A51, 0xC2A31D, 0xAEEDAF, 0x12265C, 0x4DC26D, 0x9C7A2D, 0x9756C0, + 0x833F03, 0xF6F009, 0x8C402B, 0x99316D, 0x07B439, 0x15200C, 0x5BC3D8, 0xC492F5, 0x4BADC6, + 0xA5CA4E, 0xCD37A7, 0x36A9E6, 0x9492AB, 0x6842DD, 0xDE6319, 0xEF8C76, 0x528B68, 0x37DBFC, + 0xABA1AE, 0x3115DF, 0xA1AE00, 0xDAFB0C, 0x664D64, 0xB705ED, 0x306529, 0xBF5657, 0x3AFF47, + 0xB9F96A, 0xF3BE75, 0xDF9328, 0x3080AB, 0xF68C66, 0x15CB04, 0x0622FA, 0x1DE4D9, 0xA4B33D, + 0x8F1B57, 0x09CD36, 0xE9424E, 0xA4BE13, 0xB52333, 0x1AAAF0, 0xA8654F, 0xA5C1D2, 0x0F3F0B, + 0xCD785B, 0x76F923, 0x048B7B, 0x721789, 0x53A6C6, 0xE26E6F, 0x00EBEF, 0x584A9B, 0xB7DAC4, + 0xBA66AA, 0xCFCF76, 0x1D02D1, 0x2DF1B1, 0xC1998C, 0x77ADC3, 0xDA4886, 0xA05DF7, 0xF480C6, + 0x2FF0AC, 0x9AECDD, 0xBC5C3F, 0x6DDED0, 0x1FC790, 0xB6DB2A, 0x3A25A3, 0x9AAF00, 0x9353AD, + 0x0457B6, 0xB42D29, 0x7E804B, 0xA707DA, 0x0EAA76, 0xA1597B, 0x2A1216, 0x2DB7DC, 0xFDE5FA, + 0xFEDB89, 0xFDBE89, 0x6C76E4, 0xFCA906, 0x70803E, 0x156E85, 0xFF87FD, 0x073E28, 0x336761, + 0x86182A, 0xEABD4D, 0xAFE7B3, 0x6E6D8F, 0x396795, 0x5BBF31, 0x48D784, 0x16DF30, 0x432DC7, + 0x356125, 0xCE70C9, 0xB8CB30, 0xFD6CBF, 0xA200A4, 0xE46C05, 0xA0DD5A, 0x476F21, 0xD21262, + 0x845CB9, 0x496170, 0xE0566B, 0x015299, 0x375550, 0xB7D51E, 0xC4F133, 0x5F6E13, 0xE4305D, + 0xA92E85, 0xC3B21D, 0x3632A1, 0xA4B708, 0xD4B1EA, 0x21F716, 0xE4698F, 0x77FF27, 0x80030C, + 0x2D408D, 0xA0CD4F, 0x99A520, 0xD3A2B3, 0x0A5D2F, 0x42F9B4, 0xCBDA11, 0xD0BE7D, 0xC1DB9B, + 0xBD17AB, 0x81A2CA, 0x5C6A08, 0x17552E, 0x550027, 0xF0147F, 0x8607E1, 0x640B14, 0x8D4196, + 0xDEBE87, 0x2AFDDA, 0xB6256B, 0x34897B, 0xFEF305, 0x9EBFB9, 0x4F6A68, 0xA82A4A, 0x5AC44F, + 0xBCF82D, 0x985AD7, 0x95C7F4, 0x8D4D0D, 0xA63A20, 0x5F57A4, 0xB13F14, 0x953880, 0x0120CC, + 0x86DD71, 0xB6DEC9, 0xF560BF, 0x11654D, 0x6B0701, 0xACB08C, 0xD0C0B2, 0x485551, 0x0EFB1E, + 0xC37295, 0x3B06A3, 0x3540C0, 0x7BDC06, 0xCC45E0, 0xFA294E, 0xC8CAD6, 0x41F3E8, 0xDE647C, + 0xD8649B, 0x31BED9, 0xC397A4, 0xD45877, 0xC5E369, 0x13DAF0, 0x3C3ABA, 0x461846, 0x5F7555, + 0xF5BDD2, 0xC6926E, 0x5D2EAC, 0xED440E, 0x423E1C, 0x87C461, 0xE9FD29, 0xF3D6E7, 0xCA7C22, + 0x35916F, 0xC5E008, 0x8DD7FF, 0xE26A6E, 0xC6FDB0, 0xC10893, 0x745D7C, 0xB2AD6B, 0x9D6ECD, + 0x7B723E, 0x6A11C6, 0xA9CFF7, 0xDF7329, 0xBAC9B5, 0x5100B7, 0x0DB2E2, 0x24BA74, 0x607DE5, + 0x8AD874, 0x2C150D, 0x0C1881, 0x94667E, 0x162901, 0x767A9F, 0xBEFDFD, 0xEF4556, 0x367ED9, + 0x13D9EC, 0xB9BA8B, 0xFC97C4, 0x27A831, 0xC36EF1, 0x36C594, 0x56A8D8, 0xB5A8B4, 0x0ECCCF, + 0x2D8912, 0x34576F, 0x89562C, 0xE3CE99, 0xB920D6, 0xAA5E6B, 0x9C2A3E, 0xCC5F11, 0x4A0BFD, + 0xFBF4E1, 0x6D3B8E, 0x2C86E2, 0x84D4E9, 0xA9B4FC, 0xD1EEEF, 0xC9352E, 0x61392F, 0x442138, + 0xC8D91B, 0x0AFC81, 0x6A4AFB, 0xD81C2F, 0x84B453, 0x8C994E, 0xCC2254, 0xDC552A, 0xD6C6C0, + 0x96190B, 0xB8701A, 0x649569, 0x605A26, 0xEE523F, 0x0F117F, 0x11B5F4, 0xF5CBFC, 0x2DBC34, + 0xEEBC34, 0xCC5DE8, 0x605EDD, 0x9B8E67, 0xEF3392, 0xB817C9, 0x9B5861, 0xBC57E1, 0xC68351, + 0x103ED8, 0x4871DD, 0xDD1C2D, 0xA118AF, 0x462C21, 0xD7F359, 0x987AD9, 0xC0549E, 0xFA864F, + 0xFC0656, 0xAE79E5, 0x362289, 0x22AD38, 0xDC9367, 0xAAE855, 0x382682, 0x9BE7CA, 0xA40D51, + 0xB13399, 0x0ED7A9, 0x480569, 0xF0B265, 0xA7887F, 0x974C88, 0x36D1F9, 0xB39221, 0x4A827B, + 0x21CF98, 0xDC9F40, 0x5547DC, 0x3A74E1, 0x42EB67, 0xDF9DFE, 0x5FD45E, 0xA4677B, 0x7AACBA, + 0xA2F655, 0x23882B, 0x55BA41, 0x086E59, 0x862A21, 0x834739, 0xE6E389, 0xD49EE5, 0x40FB49, + 0xE956FF, 0xCA0F1C, 0x8A59C5, 0x2BFA94, 0xC5C1D3, 0xCFC50F, 0xAE5ADB, 0x86C547, 0x624385, + 0x3B8621, 0x94792C, 0x876110, 0x7B4C2A, 0x1A2C80, 0x12BF43, 0x902688, 0x893C78, 0xE4C4A8, + 0x7BDBE5, 0xC23AC4, 0xEAF426, 0x8A67F7, 0xBF920D, 0x2BA365, 0xB1933D, 0x0B7CBD, 0xDC51A4, + 0x63DD27, 0xDDE169, 0x19949A, 0x9529A8, 0x28CE68, 0xB4ED09, 0x209F44, 0xCA984E, 0x638270, + 0x237C7E, 0x32B90F, 0x8EF5A7, 0xE75614, 0x08F121, 0x2A9DB5, 0x4D7E6F, 0x5119A5, 0xABF9B5, + 0xD6DF82, 0x61DD96, 0x023616, 0x9F3AC4, 0xA1A283, 0x6DED72, 0x7A8D39, 0xA9B882, 0x5C326B, + 0x5B2746, 0xED3400, 0x7700D2, 0x55F4FC, 0x4D5901, 0x8071E0, +]; + +const PIO2: [f64; 8] = [ + 1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */ + 7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */ + 5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */ + 3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */ + 1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */ + 1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */ + 2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */ + 2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */ +]; + +// fn rem_pio2_large(x : &[f64], y : &mut [f64], e0 : i32, prec : usize) -> i32 +// +// Input parameters: +// x[] The input value (must be positive) is broken into nx +// pieces of 24-bit integers in double precision format. +// x[i] will be the i-th 24 bit of x. The scaled exponent +// of x[0] is given in input parameter e0 (i.e., x[0]*2^e0 +// match x's up to 24 bits. +// +// Example of breaking a double positive z into x[0]+x[1]+x[2]: +// e0 = ilogb(z)-23 +// z = scalbn(z,-e0) +// for i = 0,1,2 +// x[i] = floor(z) +// z = (z-x[i])*2**24 +// +// y[] ouput result in an array of double precision numbers. +// The dimension of y[] is: +// 24-bit precision 1 +// 53-bit precision 2 +// 64-bit precision 2 +// 113-bit precision 3 +// The actual value is the sum of them. Thus for 113-bit +// precison, one may have to do something like: +// +// long double t,w,r_head, r_tail; +// t = (long double)y[2] + (long double)y[1]; +// w = (long double)y[0]; +// r_head = t+w; +// r_tail = w - (r_head - t); +// +// e0 The exponent of x[0]. Must be <= 16360 or you need to +// expand the ipio2 table. +// +// prec an integer indicating the precision: +// 0 24 bits (single) +// 1 53 bits (double) +// 2 64 bits (extended) +// 3 113 bits (quad) +// +// Here is the description of some local variables: +// +// jk jk+1 is the initial number of terms of ipio2[] needed +// in the computation. The minimum and recommended value +// for jk is 3,4,4,6 for single, double, extended, and quad. +// jk+1 must be 2 larger than you might expect so that our +// recomputation test works. (Up to 24 bits in the integer +// part (the 24 bits of it that we compute) and 23 bits in +// the fraction part may be lost to cancelation before we +// recompute.) +// +// jz local integer variable indicating the number of +// terms of ipio2[] used. +// +// jx nx - 1 +// +// jv index for pointing to the suitable ipio2[] for the +// computation. In general, we want +// ( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8 +// is an integer. Thus +// e0-3-24*jv >= 0 or (e0-3)/24 >= jv +// Hence jv = max(0,(e0-3)/24). +// +// jp jp+1 is the number of terms in PIo2[] needed, jp = jk. +// +// q[] double array with integral value, representing the +// 24-bits chunk of the product of x and 2/pi. +// +// q0 the corresponding exponent of q[0]. Note that the +// exponent for q[i] would be q0-24*i. +// +// PIo2[] double precision array, obtained by cutting pi/2 +// into 24 bits chunks. +// +// f[] ipio2[] in floating point +// +// iq[] integer array by breaking up q[] in 24-bits chunk. +// +// fq[] final product of x*(2/pi) in fq[0],..,fq[jk] +// +// ih integer. If >0 it indicates q[] is >= 0.5, hence +// it also indicates the *sign* of the result. + +/// Return the last three digits of N with y = x - N*pi/2 +/// so that |y| < pi/2. +/// +/// The method is to compute the integer (mod 8) and fraction parts of +/// (2/pi)*x without doing the full multiplication. In general we +/// skip the part of the product that are known to be a huge integer ( +/// more accurately, = 0 mod 8 ). Thus the number of operations are +/// independent of the exponent of the input. +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub(crate) fn rem_pio2_large(x: &[f64], y: &mut [f64], e0: i32, prec: usize) -> i32 { + let x1p24 = f64::from_bits(0x4170000000000000); // 0x1p24 === 2 ^ 24 + let x1p_24 = f64::from_bits(0x3e70000000000000); // 0x1p_24 === 2 ^ (-24) + + #[cfg(all(target_pointer_width = "64", feature = "checked"))] + assert!(e0 <= 16360); + + let nx = x.len(); + + let mut fw: f64; + let mut n: i32; + let mut ih: i32; + let mut z: f64; + let mut f: [f64; 20] = [0.; 20]; + let mut fq: [f64; 20] = [0.; 20]; + let mut q: [f64; 20] = [0.; 20]; + let mut iq: [i32; 20] = [0; 20]; + + /* initialize jk*/ + let jk = i!(INIT_JK, prec); + let jp = jk; + + /* determine jx,jv,q0, note that 3>q0 */ + let jx = nx - 1; + let mut jv = div!(e0 - 3, 24); + if jv < 0 { + jv = 0; + } + let mut q0 = e0 - 24 * (jv + 1); + let jv = jv as usize; + + /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */ + let mut j = (jv as i32) - (jx as i32); + let m = jx + jk; + for i in 0..=m { + i!(f, i, =, if j < 0 { + 0. + } else { + i!(IPIO2, j as usize) as f64 + }); + j += 1; + } + + /* compute q[0],q[1],...q[jk] */ + for i in 0..=jk { + fw = 0f64; + for j in 0..=jx { + fw += i!(x, j) * i!(f, jx + i - j); + } + i!(q, i, =, fw); + } + + let mut jz = jk; + + 'recompute: loop { + /* distill q[] into iq[] reversingly */ + let mut i = 0i32; + z = i!(q, jz); + for j in (1..=jz).rev() { + fw = (x1p_24 * z) as i32 as f64; + i!(iq, i as usize, =, (z - x1p24 * fw) as i32); + z = i!(q, j - 1) + fw; + i += 1; + } + + /* compute n */ + z = scalbn(z, q0); /* actual value of z */ + z -= 8.0 * floor(z * 0.125); /* trim off integer >= 8 */ + n = z as i32; + z -= n as f64; + ih = 0; + if q0 > 0 { + /* need iq[jz-1] to determine n */ + i = i!(iq, jz - 1) >> (24 - q0); + n += i; + i!(iq, jz - 1, -=, i << (24 - q0)); + ih = i!(iq, jz - 1) >> (23 - q0); + } else if q0 == 0 { + ih = i!(iq, jz - 1) >> 23; + } else if z >= 0.5 { + ih = 2; + } + + if ih > 0 { + /* q > 0.5 */ + n += 1; + let mut carry = 0i32; + for i in 0..jz { + /* compute 1-q */ + let j = i!(iq, i); + if carry == 0 { + if j != 0 { + carry = 1; + i!(iq, i, =, 0x1000000 - j); + } + } else { + i!(iq, i, =, 0xffffff - j); + } + } + if q0 > 0 { + /* rare case: chance is 1 in 12 */ + match q0 { + 1 => { + i!(iq, jz - 1, &=, 0x7fffff); + } + 2 => { + i!(iq, jz - 1, &=, 0x3fffff); + } + _ => {} + } + } + if ih == 2 { + z = 1. - z; + if carry != 0 { + z -= scalbn(1., q0); + } + } + } + + /* check if recomputation is needed */ + if z == 0. { + let mut j = 0; + for i in (jk..=jz - 1).rev() { + j |= i!(iq, i); + } + if j == 0 { + /* need recomputation */ + let mut k = 1; + while i!(iq, jk - k, ==, 0) { + k += 1; /* k = no. of terms needed */ + } + + for i in (jz + 1)..=(jz + k) { + /* add q[jz+1] to q[jz+k] */ + i!(f, jx + i, =, i!(IPIO2, jv + i) as f64); + fw = 0f64; + for j in 0..=jx { + fw += i!(x, j) * i!(f, jx + i - j); + } + i!(q, i, =, fw); + } + jz += k; + continue 'recompute; + } + } + + break; + } + + /* chop off zero terms */ + if z == 0. { + jz -= 1; + q0 -= 24; + while i!(iq, jz) == 0 { + jz -= 1; + q0 -= 24; + } + } else { + /* break z into 24-bit if necessary */ + z = scalbn(z, -q0); + if z >= x1p24 { + fw = (x1p_24 * z) as i32 as f64; + i!(iq, jz, =, (z - x1p24 * fw) as i32); + jz += 1; + q0 += 24; + i!(iq, jz, =, fw as i32); + } else { + i!(iq, jz, =, z as i32); + } + } + + /* convert integer "bit" chunk to floating-point value */ + fw = scalbn(1., q0); + for i in (0..=jz).rev() { + i!(q, i, =, fw * (i!(iq, i) as f64)); + fw *= x1p_24; + } + + /* compute PIo2[0,...,jp]*q[jz,...,0] */ + for i in (0..=jz).rev() { + fw = 0f64; + let mut k = 0; + while (k <= jp) && (k <= jz - i) { + fw += i!(PIO2, k) * i!(q, i + k); + k += 1; + } + i!(fq, jz - i, =, fw); + } + + /* compress fq[] into y[] */ + match prec { + 0 => { + fw = 0f64; + for i in (0..=jz).rev() { + fw += i!(fq, i); + } + i!(y, 0, =, if ih == 0 { fw } else { -fw }); + } + 1 | 2 => { + fw = 0f64; + for i in (0..=jz).rev() { + fw += i!(fq, i); + } + // TODO: drop excess precision here once double_t is used + fw = fw as f64; + i!(y, 0, =, if ih == 0 { fw } else { -fw }); + fw = i!(fq, 0) - fw; + for i in 1..=jz { + fw += i!(fq, i); + } + i!(y, 1, =, if ih == 0 { fw } else { -fw }); + } + 3 => { + /* painful */ + for i in (1..=jz).rev() { + fw = i!(fq, i - 1) + i!(fq, i); + i!(fq, i, +=, i!(fq, i - 1) - fw); + i!(fq, i - 1, =, fw); + } + for i in (2..=jz).rev() { + fw = i!(fq, i - 1) + i!(fq, i); + i!(fq, i, +=, i!(fq, i - 1) - fw); + i!(fq, i - 1, =, fw); + } + fw = 0f64; + for i in (2..=jz).rev() { + fw += i!(fq, i); + } + if ih == 0 { + i!(y, 0, =, i!(fq, 0)); + i!(y, 1, =, i!(fq, 1)); + i!(y, 2, =, fw); + } else { + i!(y, 0, =, -i!(fq, 0)); + i!(y, 1, =, -i!(fq, 1)); + i!(y, 2, =, -fw); + } + } + #[cfg(debug_assertions)] + _ => unreachable!(), + #[cfg(not(debug_assertions))] + _ => {} + } + n & 7 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/rem_pio2f.rs b/src/rust/vendor/compiler_builtins/libm/src/math/rem_pio2f.rs new file mode 100644 index 000000000..775f5d750 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/rem_pio2f.rs @@ -0,0 +1,67 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_rem_pio2f.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + * Debugged and optimized by Bruce D. Evans. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::rem_pio2_large; + +use core::f64; + +const TOINT: f64 = 1.5 / f64::EPSILON; + +/// 53 bits of 2/pi +const INV_PIO2: f64 = 6.36619772367581382433e-01; /* 0x3FE45F30, 0x6DC9C883 */ +/// first 25 bits of pi/2 +const PIO2_1: f64 = 1.57079631090164184570e+00; /* 0x3FF921FB, 0x50000000 */ +/// pi/2 - pio2_1 +const PIO2_1T: f64 = 1.58932547735281966916e-08; /* 0x3E5110b4, 0x611A6263 */ + +/// Return the remainder of x rem pi/2 in *y +/// +/// use double precision for everything except passing x +/// use __rem_pio2_large() for large x +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub(crate) fn rem_pio2f(x: f32) -> (i32, f64) { + let x64 = x as f64; + + let mut tx: [f64; 1] = [0.]; + let mut ty: [f64; 1] = [0.]; + + let ix = x.to_bits() & 0x7fffffff; + /* 25+53 bit pi is good enough for medium size */ + if ix < 0x4dc90fdb { + /* |x| ~< 2^28*(pi/2), medium size */ + /* Use a specialized rint() to get fn. Assume round-to-nearest. */ + let tmp = x64 * INV_PIO2 + TOINT; + // force rounding of tmp to it's storage format on x87 to avoid + // excess precision issues. + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let tmp = force_eval!(tmp); + let f_n = tmp - TOINT; + return (f_n as i32, x64 - f_n * PIO2_1 - f_n * PIO2_1T); + } + if ix >= 0x7f800000 { + /* x is inf or NaN */ + return (0, x64 - x64); + } + /* scale x into [2^23, 2^24-1] */ + let sign = (x.to_bits() >> 31) != 0; + let e0 = ((ix >> 23) - (0x7f + 23)) as i32; /* e0 = ilogb(|x|)-23, positive */ + tx[0] = f32::from_bits(ix - (e0 << 23) as u32) as f64; + let n = rem_pio2_large(&tx, &mut ty, e0, 0); + if sign { + return (-n, -ty[0]); + } + (n, ty[0]) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/remainder.rs b/src/rust/vendor/compiler_builtins/libm/src/math/remainder.rs new file mode 100644 index 000000000..9e966c9ed --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/remainder.rs @@ -0,0 +1,5 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn remainder(x: f64, y: f64) -> f64 { + let (result, _) = super::remquo(x, y); + result +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/remainderf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/remainderf.rs new file mode 100644 index 000000000..b1407cf2a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/remainderf.rs @@ -0,0 +1,5 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn remainderf(x: f32, y: f32) -> f32 { + let (result, _) = super::remquof(x, y); + result +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/remquo.rs b/src/rust/vendor/compiler_builtins/libm/src/math/remquo.rs new file mode 100644 index 000000000..0afd1f7f5 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/remquo.rs @@ -0,0 +1,110 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn remquo(mut x: f64, mut y: f64) -> (f64, i32) { + let ux: u64 = x.to_bits(); + let mut uy: u64 = y.to_bits(); + let mut ex = ((ux >> 52) & 0x7ff) as i32; + let mut ey = ((uy >> 52) & 0x7ff) as i32; + let sx = (ux >> 63) != 0; + let sy = (uy >> 63) != 0; + let mut q: u32; + let mut i: u64; + let mut uxi: u64 = ux; + + if (uy << 1) == 0 || y.is_nan() || ex == 0x7ff { + return ((x * y) / (x * y), 0); + } + if (ux << 1) == 0 { + return (x, 0); + } + + /* normalize x and y */ + if ex == 0 { + i = uxi << 12; + while (i >> 63) == 0 { + ex -= 1; + i <<= 1; + } + uxi <<= -ex + 1; + } else { + uxi &= (!0) >> 12; + uxi |= 1 << 52; + } + if ey == 0 { + i = uy << 12; + while (i >> 63) == 0 { + ey -= 1; + i <<= 1; + } + uy <<= -ey + 1; + } else { + uy &= (!0) >> 12; + uy |= 1 << 52; + } + + q = 0; + + if ex + 1 != ey { + if ex < ey { + return (x, 0); + } + /* x mod y */ + while ex > ey { + i = uxi.wrapping_sub(uy); + if (i >> 63) == 0 { + uxi = i; + q += 1; + } + uxi <<= 1; + q <<= 1; + ex -= 1; + } + i = uxi.wrapping_sub(uy); + if (i >> 63) == 0 { + uxi = i; + q += 1; + } + if uxi == 0 { + ex = -60; + } else { + while (uxi >> 52) == 0 { + uxi <<= 1; + ex -= 1; + } + } + } + + /* scale result and decide between |x| and |x|-|y| */ + if ex > 0 { + uxi -= 1 << 52; + uxi |= (ex as u64) << 52; + } else { + uxi >>= -ex + 1; + } + x = f64::from_bits(uxi); + if sy { + y = -y; + } + if ex == ey || (ex + 1 == ey && (2.0 * x > y || (2.0 * x == y && (q % 2) != 0))) { + x -= y; + // TODO: this matches musl behavior, but it is incorrect + q = q.wrapping_add(1); + } + q &= 0x7fffffff; + let quo = if sx ^ sy { -(q as i32) } else { q as i32 }; + if sx { + (-x, quo) + } else { + (x, quo) + } +} + +#[cfg(test)] +mod tests { + use super::remquo; + + #[test] + fn test_q_overflow() { + // 0xc000000000000001, 0x04c0000000000004 + let _ = remquo(-2.0000000000000004, 8.406091369059082e-286); + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/remquof.rs b/src/rust/vendor/compiler_builtins/libm/src/math/remquof.rs new file mode 100644 index 000000000..d71bd38e3 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/remquof.rs @@ -0,0 +1,97 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn remquof(mut x: f32, mut y: f32) -> (f32, i32) { + let ux: u32 = x.to_bits(); + let mut uy: u32 = y.to_bits(); + let mut ex = ((ux >> 23) & 0xff) as i32; + let mut ey = ((uy >> 23) & 0xff) as i32; + let sx = (ux >> 31) != 0; + let sy = (uy >> 31) != 0; + let mut q: u32; + let mut i: u32; + let mut uxi: u32 = ux; + + if (uy << 1) == 0 || y.is_nan() || ex == 0xff { + return ((x * y) / (x * y), 0); + } + if (ux << 1) == 0 { + return (x, 0); + } + + /* normalize x and y */ + if ex == 0 { + i = uxi << 9; + while (i >> 31) == 0 { + ex -= 1; + i <<= 1; + } + uxi <<= -ex + 1; + } else { + uxi &= (!0) >> 9; + uxi |= 1 << 23; + } + if ey == 0 { + i = uy << 9; + while (i >> 31) == 0 { + ey -= 1; + i <<= 1; + } + uy <<= -ey + 1; + } else { + uy &= (!0) >> 9; + uy |= 1 << 23; + } + + q = 0; + if ex + 1 != ey { + if ex < ey { + return (x, 0); + } + /* x mod y */ + while ex > ey { + i = uxi.wrapping_sub(uy); + if (i >> 31) == 0 { + uxi = i; + q += 1; + } + uxi <<= 1; + q <<= 1; + ex -= 1; + } + i = uxi.wrapping_sub(uy); + if (i >> 31) == 0 { + uxi = i; + q += 1; + } + if uxi == 0 { + ex = -30; + } else { + while (uxi >> 23) == 0 { + uxi <<= 1; + ex -= 1; + } + } + } + + /* scale result and decide between |x| and |x|-|y| */ + if ex > 0 { + uxi -= 1 << 23; + uxi |= (ex as u32) << 23; + } else { + uxi >>= -ex + 1; + } + x = f32::from_bits(uxi); + if sy { + y = -y; + } + if ex == ey || (ex + 1 == ey && (2.0 * x > y || (2.0 * x == y && (q % 2) != 0))) { + x -= y; + q += 1; + } + q &= 0x7fffffff; + let quo = if sx ^ sy { -(q as i32) } else { q as i32 }; + if sx { + (-x, quo) + } else { + (x, quo) + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/rint.rs b/src/rust/vendor/compiler_builtins/libm/src/math/rint.rs new file mode 100644 index 000000000..8edbe3440 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/rint.rs @@ -0,0 +1,58 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn rint(x: f64) -> f64 { + let one_over_e = 1.0 / f64::EPSILON; + let as_u64: u64 = x.to_bits(); + let exponent: u64 = as_u64 >> 52 & 0x7ff; + let is_positive = (as_u64 >> 63) == 0; + if exponent >= 0x3ff + 52 { + x + } else { + let ans = if is_positive { + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let x = force_eval!(x); + let xplusoneovere = x + one_over_e; + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let xplusoneovere = force_eval!(xplusoneovere); + xplusoneovere - one_over_e + } else { + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let x = force_eval!(x); + let xminusoneovere = x - one_over_e; + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let xminusoneovere = force_eval!(xminusoneovere); + xminusoneovere + one_over_e + }; + + if ans == 0.0 { + if is_positive { + 0.0 + } else { + -0.0 + } + } else { + ans + } + } +} + +// PowerPC tests are failing on LLVM 13: https://github.com/rust-lang/rust/issues/88520 +#[cfg(not(target_arch = "powerpc64"))] +#[cfg(test)] +mod tests { + use super::rint; + + #[test] + fn negative_zero() { + assert_eq!(rint(-0.0_f64).to_bits(), (-0.0_f64).to_bits()); + } + + #[test] + fn sanity_check() { + assert_eq!(rint(-1.0), -1.0); + assert_eq!(rint(2.8), 3.0); + assert_eq!(rint(-0.5), -0.0); + assert_eq!(rint(0.5), 0.0); + assert_eq!(rint(-1.5), -2.0); + assert_eq!(rint(1.5), 2.0); + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/rintf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/rintf.rs new file mode 100644 index 000000000..7a7da618a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/rintf.rs @@ -0,0 +1,58 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn rintf(x: f32) -> f32 { + let one_over_e = 1.0 / f32::EPSILON; + let as_u32: u32 = x.to_bits(); + let exponent: u32 = as_u32 >> 23 & 0xff; + let is_positive = (as_u32 >> 31) == 0; + if exponent >= 0x7f + 23 { + x + } else { + let ans = if is_positive { + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let x = force_eval!(x); + let xplusoneovere = x + one_over_e; + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let xplusoneovere = force_eval!(xplusoneovere); + xplusoneovere - one_over_e + } else { + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let x = force_eval!(x); + let xminusoneovere = x - one_over_e; + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let xminusoneovere = force_eval!(xminusoneovere); + xminusoneovere + one_over_e + }; + + if ans == 0.0 { + if is_positive { + 0.0 + } else { + -0.0 + } + } else { + ans + } + } +} + +// PowerPC tests are failing on LLVM 13: https://github.com/rust-lang/rust/issues/88520 +#[cfg(not(target_arch = "powerpc64"))] +#[cfg(test)] +mod tests { + use super::rintf; + + #[test] + fn negative_zero() { + assert_eq!(rintf(-0.0_f32).to_bits(), (-0.0_f32).to_bits()); + } + + #[test] + fn sanity_check() { + assert_eq!(rintf(-1.0), -1.0); + assert_eq!(rintf(2.8), 3.0); + assert_eq!(rintf(-0.5), -0.0); + assert_eq!(rintf(0.5), 0.0); + assert_eq!(rintf(-1.5), -2.0); + assert_eq!(rintf(1.5), 2.0); + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/round.rs b/src/rust/vendor/compiler_builtins/libm/src/math/round.rs new file mode 100644 index 000000000..46fabc90f --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/round.rs @@ -0,0 +1,28 @@ +use super::copysign; +use super::trunc; +use core::f64; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn round(x: f64) -> f64 { + trunc(x + copysign(0.5 - 0.25 * f64::EPSILON, x)) +} + +#[cfg(test)] +mod tests { + use super::round; + + #[test] + fn negative_zero() { + assert_eq!(round(-0.0_f64).to_bits(), (-0.0_f64).to_bits()); + } + + #[test] + fn sanity_check() { + assert_eq!(round(-1.0), -1.0); + assert_eq!(round(2.8), 3.0); + assert_eq!(round(-0.5), -1.0); + assert_eq!(round(0.5), 1.0); + assert_eq!(round(-1.5), -2.0); + assert_eq!(round(1.5), 2.0); + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/roundf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/roundf.rs new file mode 100644 index 000000000..becdb5620 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/roundf.rs @@ -0,0 +1,30 @@ +use super::copysignf; +use super::truncf; +use core::f32; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn roundf(x: f32) -> f32 { + truncf(x + copysignf(0.5 - 0.25 * f32::EPSILON, x)) +} + +// PowerPC tests are failing on LLVM 13: https://github.com/rust-lang/rust/issues/88520 +#[cfg(not(target_arch = "powerpc64"))] +#[cfg(test)] +mod tests { + use super::roundf; + + #[test] + fn negative_zero() { + assert_eq!(roundf(-0.0_f32).to_bits(), (-0.0_f32).to_bits()); + } + + #[test] + fn sanity_check() { + assert_eq!(roundf(-1.0), -1.0); + assert_eq!(roundf(2.8), 3.0); + assert_eq!(roundf(-0.5), -1.0); + assert_eq!(roundf(0.5), 1.0); + assert_eq!(roundf(-1.5), -2.0); + assert_eq!(roundf(1.5), 2.0); + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/scalbn.rs b/src/rust/vendor/compiler_builtins/libm/src/math/scalbn.rs new file mode 100644 index 000000000..00c455a10 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/scalbn.rs @@ -0,0 +1,33 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn scalbn(x: f64, mut n: i32) -> f64 { + let x1p1023 = f64::from_bits(0x7fe0000000000000); // 0x1p1023 === 2 ^ 1023 + let x1p53 = f64::from_bits(0x4340000000000000); // 0x1p53 === 2 ^ 53 + let x1p_1022 = f64::from_bits(0x0010000000000000); // 0x1p-1022 === 2 ^ (-1022) + + let mut y = x; + + if n > 1023 { + y *= x1p1023; + n -= 1023; + if n > 1023 { + y *= x1p1023; + n -= 1023; + if n > 1023 { + n = 1023; + } + } + } else if n < -1022 { + /* make sure final n < -53 to avoid double + rounding in the subnormal range */ + y *= x1p_1022 * x1p53; + n += 1022 - 53; + if n < -1022 { + y *= x1p_1022 * x1p53; + n += 1022 - 53; + if n < -1022 { + n = -1022; + } + } + } + y * f64::from_bits(((0x3ff + n) as u64) << 52) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/scalbnf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/scalbnf.rs new file mode 100644 index 000000000..73f4bb57a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/scalbnf.rs @@ -0,0 +1,29 @@ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn scalbnf(mut x: f32, mut n: i32) -> f32 { + let x1p127 = f32::from_bits(0x7f000000); // 0x1p127f === 2 ^ 127 + let x1p_126 = f32::from_bits(0x800000); // 0x1p-126f === 2 ^ -126 + let x1p24 = f32::from_bits(0x4b800000); // 0x1p24f === 2 ^ 24 + + if n > 127 { + x *= x1p127; + n -= 127; + if n > 127 { + x *= x1p127; + n -= 127; + if n > 127 { + n = 127; + } + } + } else if n < -126 { + x *= x1p_126 * x1p24; + n += 126 - 24; + if n < -126 { + x *= x1p_126 * x1p24; + n += 126 - 24; + if n < -126 { + n = -126; + } + } + } + x * f32::from_bits(((0x7f + n) as u32) << 23) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/sin.rs b/src/rust/vendor/compiler_builtins/libm/src/math/sin.rs new file mode 100644 index 000000000..a53843dcd --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/sin.rs @@ -0,0 +1,88 @@ +// origin: FreeBSD /usr/src/lib/msun/src/s_sin.c */ +// +// ==================================================== +// Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. +// +// Developed at SunPro, a Sun Microsystems, Inc. business. +// Permission to use, copy, modify, and distribute this +// software is freely granted, provided that this notice +// is preserved. +// ==================================================== + +use super::{k_cos, k_sin, rem_pio2}; + +// sin(x) +// Return sine function of x. +// +// kernel function: +// k_sin ... sine function on [-pi/4,pi/4] +// k_cos ... cose function on [-pi/4,pi/4] +// rem_pio2 ... argument reduction routine +// +// Method. +// Let S,C and T denote the sin, cos and tan respectively on +// [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 +// in [-pi/4 , +pi/4], and let n = k mod 4. +// We have +// +// n sin(x) cos(x) tan(x) +// ---------------------------------------------------------- +// 0 S C T +// 1 C -S -1/T +// 2 -S -C T +// 3 -C S -1/T +// ---------------------------------------------------------- +// +// Special cases: +// Let trig be any of sin, cos, or tan. +// trig(+-INF) is NaN, with signals; +// trig(NaN) is that NaN; +// +// Accuracy: +// TRIG(x) returns trig(x) nearly rounded +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn sin(x: f64) -> f64 { + let x1p120 = f64::from_bits(0x4770000000000000); // 0x1p120f === 2 ^ 120 + + /* High word of x. */ + let ix = (f64::to_bits(x) >> 32) as u32 & 0x7fffffff; + + /* |x| ~< pi/4 */ + if ix <= 0x3fe921fb { + if ix < 0x3e500000 { + /* |x| < 2**-26 */ + /* raise inexact if x != 0 and underflow if subnormal*/ + if ix < 0x00100000 { + force_eval!(x / x1p120); + } else { + force_eval!(x + x1p120); + } + return x; + } + return k_sin(x, 0.0, 0); + } + + /* sin(Inf or NaN) is NaN */ + if ix >= 0x7ff00000 { + return x - x; + } + + /* argument reduction needed */ + let (n, y0, y1) = rem_pio2(x); + match n & 3 { + 0 => k_sin(y0, y1, 1), + 1 => k_cos(y0, y1), + 2 => -k_sin(y0, y1, 1), + _ => -k_cos(y0, y1), + } +} + +#[test] +fn test_near_pi() { + let x = f64::from_bits(0x400921fb000FD5DD); // 3.141592026217707 + let sx = f64::from_bits(0x3ea50d15ced1a4a2); // 6.273720864039205e-7 + let result = sin(x); + #[cfg(all(target_arch = "x86", not(target_feature = "sse2")))] + let result = force_eval!(result); + assert_eq!(result, sx); +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/sincos.rs b/src/rust/vendor/compiler_builtins/libm/src/math/sincos.rs new file mode 100644 index 000000000..ff5d87a1c --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/sincos.rs @@ -0,0 +1,134 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_sin.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::{get_high_word, k_cos, k_sin, rem_pio2}; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn sincos(x: f64) -> (f64, f64) { + let s: f64; + let c: f64; + let mut ix: u32; + + ix = get_high_word(x); + ix &= 0x7fffffff; + + /* |x| ~< pi/4 */ + if ix <= 0x3fe921fb { + /* if |x| < 2**-27 * sqrt(2) */ + if ix < 0x3e46a09e { + /* raise inexact if x!=0 and underflow if subnormal */ + let x1p120 = f64::from_bits(0x4770000000000000); // 0x1p120 == 2^120 + if ix < 0x00100000 { + force_eval!(x / x1p120); + } else { + force_eval!(x + x1p120); + } + return (x, 1.0); + } + return (k_sin(x, 0.0, 0), k_cos(x, 0.0)); + } + + /* sincos(Inf or NaN) is NaN */ + if ix >= 0x7ff00000 { + let rv = x - x; + return (rv, rv); + } + + /* argument reduction needed */ + let (n, y0, y1) = rem_pio2(x); + s = k_sin(y0, y1, 1); + c = k_cos(y0, y1); + match n & 3 { + 0 => (s, c), + 1 => (c, -s), + 2 => (-s, -c), + 3 => (-c, s), + #[cfg(debug_assertions)] + _ => unreachable!(), + #[cfg(not(debug_assertions))] + _ => (0.0, 1.0), + } +} + +// These tests are based on those from sincosf.rs +#[cfg(test)] +mod tests { + use super::sincos; + + const TOLERANCE: f64 = 1e-6; + + #[test] + fn with_pi() { + let (s, c) = sincos(core::f64::consts::PI); + assert!( + (s - 0.0).abs() < TOLERANCE, + "|{} - {}| = {} >= {}", + s, + 0.0, + (s - 0.0).abs(), + TOLERANCE + ); + assert!( + (c + 1.0).abs() < TOLERANCE, + "|{} + {}| = {} >= {}", + c, + 1.0, + (s + 1.0).abs(), + TOLERANCE + ); + } + + #[test] + fn rotational_symmetry() { + use core::f64::consts::PI; + const N: usize = 24; + for n in 0..N { + let theta = 2. * PI * (n as f64) / (N as f64); + let (s, c) = sincos(theta); + let (s_plus, c_plus) = sincos(theta + 2. * PI); + let (s_minus, c_minus) = sincos(theta - 2. * PI); + + assert!( + (s - s_plus).abs() < TOLERANCE, + "|{} - {}| = {} >= {}", + s, + s_plus, + (s - s_plus).abs(), + TOLERANCE + ); + assert!( + (s - s_minus).abs() < TOLERANCE, + "|{} - {}| = {} >= {}", + s, + s_minus, + (s - s_minus).abs(), + TOLERANCE + ); + assert!( + (c - c_plus).abs() < TOLERANCE, + "|{} - {}| = {} >= {}", + c, + c_plus, + (c - c_plus).abs(), + TOLERANCE + ); + assert!( + (c - c_minus).abs() < TOLERANCE, + "|{} - {}| = {} >= {}", + c, + c_minus, + (c - c_minus).abs(), + TOLERANCE + ); + } + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/sincosf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/sincosf.rs new file mode 100644 index 000000000..9a4c36104 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/sincosf.rs @@ -0,0 +1,185 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_sinf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + * Optimized by Bruce D. Evans. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::{k_cosf, k_sinf, rem_pio2f}; + +/* Small multiples of pi/2 rounded to double precision. */ +const PI_2: f32 = 0.5 * 3.1415926535897931160E+00; +const S1PIO2: f32 = 1.0 * PI_2; /* 0x3FF921FB, 0x54442D18 */ +const S2PIO2: f32 = 2.0 * PI_2; /* 0x400921FB, 0x54442D18 */ +const S3PIO2: f32 = 3.0 * PI_2; /* 0x4012D97C, 0x7F3321D2 */ +const S4PIO2: f32 = 4.0 * PI_2; /* 0x401921FB, 0x54442D18 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn sincosf(x: f32) -> (f32, f32) { + let s: f32; + let c: f32; + let mut ix: u32; + let sign: bool; + + ix = x.to_bits(); + sign = (ix >> 31) != 0; + ix &= 0x7fffffff; + + /* |x| ~<= pi/4 */ + if ix <= 0x3f490fda { + /* |x| < 2**-12 */ + if ix < 0x39800000 { + /* raise inexact if x!=0 and underflow if subnormal */ + + let x1p120 = f32::from_bits(0x7b800000); // 0x1p120 == 2^120 + if ix < 0x00100000 { + force_eval!(x / x1p120); + } else { + force_eval!(x + x1p120); + } + return (x, 1.0); + } + return (k_sinf(x as f64), k_cosf(x as f64)); + } + + /* |x| ~<= 5*pi/4 */ + if ix <= 0x407b53d1 { + if ix <= 0x4016cbe3 { + /* |x| ~<= 3pi/4 */ + if sign { + s = -k_cosf((x + S1PIO2) as f64); + c = k_sinf((x + S1PIO2) as f64); + } else { + s = k_cosf((S1PIO2 - x) as f64); + c = k_sinf((S1PIO2 - x) as f64); + } + } + /* -sin(x+c) is not correct if x+c could be 0: -0 vs +0 */ + else { + if sign { + s = -k_sinf((x + S2PIO2) as f64); + c = -k_cosf((x + S2PIO2) as f64); + } else { + s = -k_sinf((x - S2PIO2) as f64); + c = -k_cosf((x - S2PIO2) as f64); + } + } + + return (s, c); + } + + /* |x| ~<= 9*pi/4 */ + if ix <= 0x40e231d5 { + if ix <= 0x40afeddf { + /* |x| ~<= 7*pi/4 */ + if sign { + s = k_cosf((x + S3PIO2) as f64); + c = -k_sinf((x + S3PIO2) as f64); + } else { + s = -k_cosf((x - S3PIO2) as f64); + c = k_sinf((x - S3PIO2) as f64); + } + } else { + if sign { + s = k_sinf((x + S4PIO2) as f64); + c = k_cosf((x + S4PIO2) as f64); + } else { + s = k_sinf((x - S4PIO2) as f64); + c = k_cosf((x - S4PIO2) as f64); + } + } + + return (s, c); + } + + /* sin(Inf or NaN) is NaN */ + if ix >= 0x7f800000 { + let rv = x - x; + return (rv, rv); + } + + /* general argument reduction needed */ + let (n, y) = rem_pio2f(x); + s = k_sinf(y); + c = k_cosf(y); + match n & 3 { + 0 => (s, c), + 1 => (c, -s), + 2 => (-s, -c), + 3 => (-c, s), + #[cfg(debug_assertions)] + _ => unreachable!(), + #[cfg(not(debug_assertions))] + _ => (0.0, 1.0), + } +} + +// PowerPC tests are failing on LLVM 13: https://github.com/rust-lang/rust/issues/88520 +#[cfg(not(target_arch = "powerpc64"))] +#[cfg(test)] +mod tests { + use super::sincosf; + use crate::_eqf; + + #[test] + fn with_pi() { + let (s, c) = sincosf(core::f32::consts::PI); + _eqf(s.abs(), 0.0).unwrap(); + _eqf(c, -1.0).unwrap(); + } + + #[test] + fn rotational_symmetry() { + use core::f32::consts::PI; + const N: usize = 24; + for n in 0..N { + let theta = 2. * PI * (n as f32) / (N as f32); + let (s, c) = sincosf(theta); + let (s_plus, c_plus) = sincosf(theta + 2. * PI); + let (s_minus, c_minus) = sincosf(theta - 2. * PI); + + const TOLERANCE: f32 = 1e-6; + assert!( + (s - s_plus).abs() < TOLERANCE, + "|{} - {}| = {} >= {}", + s, + s_plus, + (s - s_plus).abs(), + TOLERANCE + ); + assert!( + (s - s_minus).abs() < TOLERANCE, + "|{} - {}| = {} >= {}", + s, + s_minus, + (s - s_minus).abs(), + TOLERANCE + ); + assert!( + (c - c_plus).abs() < TOLERANCE, + "|{} - {}| = {} >= {}", + c, + c_plus, + (c - c_plus).abs(), + TOLERANCE + ); + assert!( + (c - c_minus).abs() < TOLERANCE, + "|{} - {}| = {} >= {}", + c, + c_minus, + (c - c_minus).abs(), + TOLERANCE + ); + } + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/sinf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/sinf.rs new file mode 100644 index 000000000..6e20be2ae --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/sinf.rs @@ -0,0 +1,93 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_sinf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + * Optimized by Bruce D. Evans. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::{k_cosf, k_sinf, rem_pio2f}; + +use core::f64::consts::FRAC_PI_2; + +/* Small multiples of pi/2 rounded to double precision. */ +const S1_PIO2: f64 = 1. * FRAC_PI_2; /* 0x3FF921FB, 0x54442D18 */ +const S2_PIO2: f64 = 2. * FRAC_PI_2; /* 0x400921FB, 0x54442D18 */ +const S3_PIO2: f64 = 3. * FRAC_PI_2; /* 0x4012D97C, 0x7F3321D2 */ +const S4_PIO2: f64 = 4. * FRAC_PI_2; /* 0x401921FB, 0x54442D18 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn sinf(x: f32) -> f32 { + let x64 = x as f64; + + let x1p120 = f32::from_bits(0x7b800000); // 0x1p120f === 2 ^ 120 + + let mut ix = x.to_bits(); + let sign = (ix >> 31) != 0; + ix &= 0x7fffffff; + + if ix <= 0x3f490fda { + /* |x| ~<= pi/4 */ + if ix < 0x39800000 { + /* |x| < 2**-12 */ + /* raise inexact if x!=0 and underflow if subnormal */ + force_eval!(if ix < 0x00800000 { + x / x1p120 + } else { + x + x1p120 + }); + return x; + } + return k_sinf(x64); + } + if ix <= 0x407b53d1 { + /* |x| ~<= 5*pi/4 */ + if ix <= 0x4016cbe3 { + /* |x| ~<= 3pi/4 */ + if sign { + return -k_cosf(x64 + S1_PIO2); + } else { + return k_cosf(x64 - S1_PIO2); + } + } + return k_sinf(if sign { + -(x64 + S2_PIO2) + } else { + -(x64 - S2_PIO2) + }); + } + if ix <= 0x40e231d5 { + /* |x| ~<= 9*pi/4 */ + if ix <= 0x40afeddf { + /* |x| ~<= 7*pi/4 */ + if sign { + return k_cosf(x64 + S3_PIO2); + } else { + return -k_cosf(x64 - S3_PIO2); + } + } + return k_sinf(if sign { x64 + S4_PIO2 } else { x64 - S4_PIO2 }); + } + + /* sin(Inf or NaN) is NaN */ + if ix >= 0x7f800000 { + return x - x; + } + + /* general argument reduction needed */ + let (n, y) = rem_pio2f(x); + match n & 3 { + 0 => k_sinf(y), + 1 => k_cosf(y), + 2 => k_sinf(-y), + _ => -k_cosf(y), + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/sinh.rs b/src/rust/vendor/compiler_builtins/libm/src/math/sinh.rs new file mode 100644 index 000000000..fd24fd20c --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/sinh.rs @@ -0,0 +1,49 @@ +use super::{expm1, expo2}; + +// sinh(x) = (exp(x) - 1/exp(x))/2 +// = (exp(x)-1 + (exp(x)-1)/exp(x))/2 +// = x + x^3/6 + o(x^5) +// +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn sinh(x: f64) -> f64 { + // union {double f; uint64_t i;} u = {.f = x}; + // uint32_t w; + // double t, h, absx; + + let mut uf: f64 = x; + let mut ui: u64 = f64::to_bits(uf); + let w: u32; + let t: f64; + let mut h: f64; + let absx: f64; + + h = 0.5; + if ui >> 63 != 0 { + h = -h; + } + /* |x| */ + ui &= !1 / 2; + uf = f64::from_bits(ui); + absx = uf; + w = (ui >> 32) as u32; + + /* |x| < log(DBL_MAX) */ + if w < 0x40862e42 { + t = expm1(absx); + if w < 0x3ff00000 { + if w < 0x3ff00000 - (26 << 20) { + /* note: inexact and underflow are raised by expm1 */ + /* note: this branch avoids spurious underflow */ + return x; + } + return h * (2.0 * t - t * t / (t + 1.0)); + } + /* note: |x|>log(0x1p26)+eps could be just h*exp(x) */ + return h * (t + t / (t + 1.0)); + } + + /* |x| > log(DBL_MAX) or nan */ + /* note: the result is stored to handle overflow */ + t = 2.0 * h * expo2(absx); + t +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/sinhf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/sinhf.rs new file mode 100644 index 000000000..24f863c44 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/sinhf.rs @@ -0,0 +1,30 @@ +use super::expm1f; +use super::k_expo2f; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn sinhf(x: f32) -> f32 { + let mut h = 0.5f32; + let mut ix = x.to_bits(); + if (ix >> 31) != 0 { + h = -h; + } + /* |x| */ + ix &= 0x7fffffff; + let absx = f32::from_bits(ix); + let w = ix; + + /* |x| < log(FLT_MAX) */ + if w < 0x42b17217 { + let t = expm1f(absx); + if w < 0x3f800000 { + if w < (0x3f800000 - (12 << 23)) { + return x; + } + return h * (2. * t - t * t / (t + 1.)); + } + return h * (t + t / (t + 1.)); + } + + /* |x| > logf(FLT_MAX) or nan */ + 2. * h * k_expo2f(absx) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/sqrt.rs b/src/rust/vendor/compiler_builtins/libm/src/math/sqrt.rs new file mode 100644 index 000000000..3733ba040 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/sqrt.rs @@ -0,0 +1,280 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_sqrt.c */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* sqrt(x) + * Return correctly rounded sqrt. + * ------------------------------------------ + * | Use the hardware sqrt if you have one | + * ------------------------------------------ + * Method: + * Bit by bit method using integer arithmetic. (Slow, but portable) + * 1. Normalization + * Scale x to y in [1,4) with even powers of 2: + * find an integer k such that 1 <= (y=x*2^(2k)) < 4, then + * sqrt(x) = 2^k * sqrt(y) + * 2. Bit by bit computation + * Let q = sqrt(y) truncated to i bit after binary point (q = 1), + * i 0 + * i+1 2 + * s = 2*q , and y = 2 * ( y - q ). (1) + * i i i i + * + * To compute q from q , one checks whether + * i+1 i + * + * -(i+1) 2 + * (q + 2 ) <= y. (2) + * i + * -(i+1) + * If (2) is false, then q = q ; otherwise q = q + 2 . + * i+1 i i+1 i + * + * With some algebraic manipulation, it is not difficult to see + * that (2) is equivalent to + * -(i+1) + * s + 2 <= y (3) + * i i + * + * The advantage of (3) is that s and y can be computed by + * i i + * the following recurrence formula: + * if (3) is false + * + * s = s , y = y ; (4) + * i+1 i i+1 i + * + * otherwise, + * -i -(i+1) + * s = s + 2 , y = y - s - 2 (5) + * i+1 i i+1 i i + * + * One may easily use induction to prove (4) and (5). + * Note. Since the left hand side of (3) contain only i+2 bits, + * it does not necessary to do a full (53-bit) comparison + * in (3). + * 3. Final rounding + * After generating the 53 bits result, we compute one more bit. + * Together with the remainder, we can decide whether the + * result is exact, bigger than 1/2ulp, or less than 1/2ulp + * (it will never equal to 1/2ulp). + * The rounding mode can be detected by checking whether + * huge + tiny is equal to huge, and whether huge - tiny is + * equal to huge for some floating point number "huge" and "tiny". + * + * Special cases: + * sqrt(+-0) = +-0 ... exact + * sqrt(inf) = inf + * sqrt(-ve) = NaN ... with invalid signal + * sqrt(NaN) = NaN ... with invalid signal for signaling NaN + */ + +use core::f64; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn sqrt(x: f64) -> f64 { + // On wasm32 we know that LLVM's intrinsic will compile to an optimized + // `f64.sqrt` native instruction, so we can leverage this for both code size + // and speed. + llvm_intrinsically_optimized! { + #[cfg(target_arch = "wasm32")] { + return if x < 0.0 { + f64::NAN + } else { + unsafe { ::core::intrinsics::sqrtf64(x) } + } + } + } + #[cfg(target_feature = "sse2")] + { + // Note: This path is unlikely since LLVM will usually have already + // optimized sqrt calls into hardware instructions if sse2 is available, + // but if someone does end up here they'll apprected the speed increase. + #[cfg(target_arch = "x86")] + use core::arch::x86::*; + #[cfg(target_arch = "x86_64")] + use core::arch::x86_64::*; + unsafe { + let m = _mm_set_sd(x); + let m_sqrt = _mm_sqrt_pd(m); + _mm_cvtsd_f64(m_sqrt) + } + } + #[cfg(not(target_feature = "sse2"))] + { + use core::num::Wrapping; + + const TINY: f64 = 1.0e-300; + + let mut z: f64; + let sign: Wrapping = Wrapping(0x80000000); + let mut ix0: i32; + let mut s0: i32; + let mut q: i32; + let mut m: i32; + let mut t: i32; + let mut i: i32; + let mut r: Wrapping; + let mut t1: Wrapping; + let mut s1: Wrapping; + let mut ix1: Wrapping; + let mut q1: Wrapping; + + ix0 = (x.to_bits() >> 32) as i32; + ix1 = Wrapping(x.to_bits() as u32); + + /* take care of Inf and NaN */ + if (ix0 & 0x7ff00000) == 0x7ff00000 { + return x * x + x; /* sqrt(NaN)=NaN, sqrt(+inf)=+inf, sqrt(-inf)=sNaN */ + } + /* take care of zero */ + if ix0 <= 0 { + if ((ix0 & !(sign.0 as i32)) | ix1.0 as i32) == 0 { + return x; /* sqrt(+-0) = +-0 */ + } + if ix0 < 0 { + return (x - x) / (x - x); /* sqrt(-ve) = sNaN */ + } + } + /* normalize x */ + m = ix0 >> 20; + if m == 0 { + /* subnormal x */ + while ix0 == 0 { + m -= 21; + ix0 |= (ix1 >> 11).0 as i32; + ix1 <<= 21; + } + i = 0; + while (ix0 & 0x00100000) == 0 { + i += 1; + ix0 <<= 1; + } + m -= i - 1; + ix0 |= (ix1 >> (32 - i) as usize).0 as i32; + ix1 = ix1 << i as usize; + } + m -= 1023; /* unbias exponent */ + ix0 = (ix0 & 0x000fffff) | 0x00100000; + if (m & 1) == 1 { + /* odd m, double x to make it even */ + ix0 += ix0 + ((ix1 & sign) >> 31).0 as i32; + ix1 += ix1; + } + m >>= 1; /* m = [m/2] */ + + /* generate sqrt(x) bit by bit */ + ix0 += ix0 + ((ix1 & sign) >> 31).0 as i32; + ix1 += ix1; + q = 0; /* [q,q1] = sqrt(x) */ + q1 = Wrapping(0); + s0 = 0; + s1 = Wrapping(0); + r = Wrapping(0x00200000); /* r = moving bit from right to left */ + + while r != Wrapping(0) { + t = s0 + r.0 as i32; + if t <= ix0 { + s0 = t + r.0 as i32; + ix0 -= t; + q += r.0 as i32; + } + ix0 += ix0 + ((ix1 & sign) >> 31).0 as i32; + ix1 += ix1; + r >>= 1; + } + + r = sign; + while r != Wrapping(0) { + t1 = s1 + r; + t = s0; + if t < ix0 || (t == ix0 && t1 <= ix1) { + s1 = t1 + r; + if (t1 & sign) == sign && (s1 & sign) == Wrapping(0) { + s0 += 1; + } + ix0 -= t; + if ix1 < t1 { + ix0 -= 1; + } + ix1 -= t1; + q1 += r; + } + ix0 += ix0 + ((ix1 & sign) >> 31).0 as i32; + ix1 += ix1; + r >>= 1; + } + + /* use floating add to find out rounding direction */ + if (ix0 as u32 | ix1.0) != 0 { + z = 1.0 - TINY; /* raise inexact flag */ + if z >= 1.0 { + z = 1.0 + TINY; + if q1.0 == 0xffffffff { + q1 = Wrapping(0); + q += 1; + } else if z > 1.0 { + if q1.0 == 0xfffffffe { + q += 1; + } + q1 += Wrapping(2); + } else { + q1 += q1 & Wrapping(1); + } + } + } + ix0 = (q >> 1) + 0x3fe00000; + ix1 = q1 >> 1; + if (q & 1) == 1 { + ix1 |= sign; + } + ix0 += m << 20; + f64::from_bits((ix0 as u64) << 32 | ix1.0 as u64) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use core::f64::*; + + #[test] + fn sanity_check() { + assert_eq!(sqrt(100.0), 10.0); + assert_eq!(sqrt(4.0), 2.0); + } + + /// The spec: https://en.cppreference.com/w/cpp/numeric/math/sqrt + #[test] + fn spec_tests() { + // Not Asserted: FE_INVALID exception is raised if argument is negative. + assert!(sqrt(-1.0).is_nan()); + assert!(sqrt(NAN).is_nan()); + for f in [0.0, -0.0, INFINITY].iter().copied() { + assert_eq!(sqrt(f), f); + } + } + + #[test] + fn conformance_tests() { + let values = [3.14159265359, 10000.0, f64::from_bits(0x0000000f), INFINITY]; + let results = [ + 4610661241675116657u64, + 4636737291354636288u64, + 2197470602079456986u64, + 9218868437227405312u64, + ]; + + for i in 0..values.len() { + let bits = f64::to_bits(sqrt(values[i])); + assert_eq!(results[i], bits); + } + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/sqrtf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/sqrtf.rs new file mode 100644 index 000000000..8ec72fbf7 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/sqrtf.rs @@ -0,0 +1,170 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/e_sqrtf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn sqrtf(x: f32) -> f32 { + // On wasm32 we know that LLVM's intrinsic will compile to an optimized + // `f32.sqrt` native instruction, so we can leverage this for both code size + // and speed. + llvm_intrinsically_optimized! { + #[cfg(target_arch = "wasm32")] { + return if x < 0.0 { + ::core::f32::NAN + } else { + unsafe { ::core::intrinsics::sqrtf32(x) } + } + } + } + #[cfg(target_feature = "sse")] + { + // Note: This path is unlikely since LLVM will usually have already + // optimized sqrt calls into hardware instructions if sse is available, + // but if someone does end up here they'll apprected the speed increase. + #[cfg(target_arch = "x86")] + use core::arch::x86::*; + #[cfg(target_arch = "x86_64")] + use core::arch::x86_64::*; + unsafe { + let m = _mm_set_ss(x); + let m_sqrt = _mm_sqrt_ss(m); + _mm_cvtss_f32(m_sqrt) + } + } + #[cfg(not(target_feature = "sse"))] + { + const TINY: f32 = 1.0e-30; + + let mut z: f32; + let sign: i32 = 0x80000000u32 as i32; + let mut ix: i32; + let mut s: i32; + let mut q: i32; + let mut m: i32; + let mut t: i32; + let mut i: i32; + let mut r: u32; + + ix = x.to_bits() as i32; + + /* take care of Inf and NaN */ + if (ix as u32 & 0x7f800000) == 0x7f800000 { + return x * x + x; /* sqrt(NaN)=NaN, sqrt(+inf)=+inf, sqrt(-inf)=sNaN */ + } + + /* take care of zero */ + if ix <= 0 { + if (ix & !sign) == 0 { + return x; /* sqrt(+-0) = +-0 */ + } + if ix < 0 { + return (x - x) / (x - x); /* sqrt(-ve) = sNaN */ + } + } + + /* normalize x */ + m = ix >> 23; + if m == 0 { + /* subnormal x */ + i = 0; + while ix & 0x00800000 == 0 { + ix <<= 1; + i = i + 1; + } + m -= i - 1; + } + m -= 127; /* unbias exponent */ + ix = (ix & 0x007fffff) | 0x00800000; + if m & 1 == 1 { + /* odd m, double x to make it even */ + ix += ix; + } + m >>= 1; /* m = [m/2] */ + + /* generate sqrt(x) bit by bit */ + ix += ix; + q = 0; + s = 0; + r = 0x01000000; /* r = moving bit from right to left */ + + while r != 0 { + t = s + r as i32; + if t <= ix { + s = t + r as i32; + ix -= t; + q += r as i32; + } + ix += ix; + r >>= 1; + } + + /* use floating add to find out rounding direction */ + if ix != 0 { + z = 1.0 - TINY; /* raise inexact flag */ + if z >= 1.0 { + z = 1.0 + TINY; + if z > 1.0 { + q += 2; + } else { + q += q & 1; + } + } + } + + ix = (q >> 1) + 0x3f000000; + ix += m << 23; + f32::from_bits(ix as u32) + } +} + +// PowerPC tests are failing on LLVM 13: https://github.com/rust-lang/rust/issues/88520 +#[cfg(not(target_arch = "powerpc64"))] +#[cfg(test)] +mod tests { + use super::*; + use core::f32::*; + + #[test] + fn sanity_check() { + assert_eq!(sqrtf(100.0), 10.0); + assert_eq!(sqrtf(4.0), 2.0); + } + + /// The spec: https://en.cppreference.com/w/cpp/numeric/math/sqrt + #[test] + fn spec_tests() { + // Not Asserted: FE_INVALID exception is raised if argument is negative. + assert!(sqrtf(-1.0).is_nan()); + assert!(sqrtf(NAN).is_nan()); + for f in [0.0, -0.0, INFINITY].iter().copied() { + assert_eq!(sqrtf(f), f); + } + } + + #[test] + fn conformance_tests() { + let values = [ + 3.14159265359f32, + 10000.0f32, + f32::from_bits(0x0000000f), + INFINITY, + ]; + let results = [1071833029u32, 1120403456u32, 456082799u32, 2139095040u32]; + + for i in 0..values.len() { + let bits = f32::to_bits(sqrtf(values[i])); + assert_eq!(results[i], bits); + } + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/tan.rs b/src/rust/vendor/compiler_builtins/libm/src/math/tan.rs new file mode 100644 index 000000000..5a72f6801 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/tan.rs @@ -0,0 +1,70 @@ +// origin: FreeBSD /usr/src/lib/msun/src/s_tan.c */ +// +// ==================================================== +// Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. +// +// Developed at SunPro, a Sun Microsystems, Inc. business. +// Permission to use, copy, modify, and distribute this +// software is freely granted, provided that this notice +// is preserved. +// ==================================================== + +use super::{k_tan, rem_pio2}; + +// tan(x) +// Return tangent function of x. +// +// kernel function: +// k_tan ... tangent function on [-pi/4,pi/4] +// rem_pio2 ... argument reduction routine +// +// Method. +// Let S,C and T denote the sin, cos and tan respectively on +// [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 +// in [-pi/4 , +pi/4], and let n = k mod 4. +// We have +// +// n sin(x) cos(x) tan(x) +// ---------------------------------------------------------- +// 0 S C T +// 1 C -S -1/T +// 2 -S -C T +// 3 -C S -1/T +// ---------------------------------------------------------- +// +// Special cases: +// Let trig be any of sin, cos, or tan. +// trig(+-INF) is NaN, with signals; +// trig(NaN) is that NaN; +// +// Accuracy: +// TRIG(x) returns trig(x) nearly rounded +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn tan(x: f64) -> f64 { + let x1p120 = f32::from_bits(0x7b800000); // 0x1p120f === 2 ^ 120 + + let ix = (f64::to_bits(x) >> 32) as u32 & 0x7fffffff; + /* |x| ~< pi/4 */ + if ix <= 0x3fe921fb { + if ix < 0x3e400000 { + /* |x| < 2**-27 */ + /* raise inexact if x!=0 and underflow if subnormal */ + force_eval!(if ix < 0x00100000 { + x / x1p120 as f64 + } else { + x + x1p120 as f64 + }); + return x; + } + return k_tan(x, 0.0, 0); + } + + /* tan(Inf or NaN) is NaN */ + if ix >= 0x7ff00000 { + return x - x; + } + + /* argument reduction */ + let (n, y0, y1) = rem_pio2(x); + k_tan(y0, y1, n & 1) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/tanf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/tanf.rs new file mode 100644 index 000000000..10de59c39 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/tanf.rs @@ -0,0 +1,78 @@ +/* origin: FreeBSD /usr/src/lib/msun/src/s_tanf.c */ +/* + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + * Optimized by Bruce D. Evans. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +use super::{k_tanf, rem_pio2f}; + +use core::f64::consts::FRAC_PI_2; + +/* Small multiples of pi/2 rounded to double precision. */ +const T1_PIO2: f64 = 1. * FRAC_PI_2; /* 0x3FF921FB, 0x54442D18 */ +const T2_PIO2: f64 = 2. * FRAC_PI_2; /* 0x400921FB, 0x54442D18 */ +const T3_PIO2: f64 = 3. * FRAC_PI_2; /* 0x4012D97C, 0x7F3321D2 */ +const T4_PIO2: f64 = 4. * FRAC_PI_2; /* 0x401921FB, 0x54442D18 */ + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn tanf(x: f32) -> f32 { + let x64 = x as f64; + + let x1p120 = f32::from_bits(0x7b800000); // 0x1p120f === 2 ^ 120 + + let mut ix = x.to_bits(); + let sign = (ix >> 31) != 0; + ix &= 0x7fffffff; + + if ix <= 0x3f490fda { + /* |x| ~<= pi/4 */ + if ix < 0x39800000 { + /* |x| < 2**-12 */ + /* raise inexact if x!=0 and underflow if subnormal */ + force_eval!(if ix < 0x00800000 { + x / x1p120 + } else { + x + x1p120 + }); + return x; + } + return k_tanf(x64, false); + } + if ix <= 0x407b53d1 { + /* |x| ~<= 5*pi/4 */ + if ix <= 0x4016cbe3 { + /* |x| ~<= 3pi/4 */ + return k_tanf(if sign { x64 + T1_PIO2 } else { x64 - T1_PIO2 }, true); + } else { + return k_tanf(if sign { x64 + T2_PIO2 } else { x64 - T2_PIO2 }, false); + } + } + if ix <= 0x40e231d5 { + /* |x| ~<= 9*pi/4 */ + if ix <= 0x40afeddf { + /* |x| ~<= 7*pi/4 */ + return k_tanf(if sign { x64 + T3_PIO2 } else { x64 - T3_PIO2 }, true); + } else { + return k_tanf(if sign { x64 + T4_PIO2 } else { x64 - T4_PIO2 }, false); + } + } + + /* tan(Inf or NaN) is NaN */ + if ix >= 0x7f800000 { + return x - x; + } + + /* argument reduction */ + let (n, y) = rem_pio2f(x); + k_tanf(y, n & 1 != 0) +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/tanh.rs b/src/rust/vendor/compiler_builtins/libm/src/math/tanh.rs new file mode 100644 index 000000000..980c68554 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/tanh.rs @@ -0,0 +1,53 @@ +use super::expm1; + +/* tanh(x) = (exp(x) - exp(-x))/(exp(x) + exp(-x)) + * = (exp(2*x) - 1)/(exp(2*x) - 1 + 2) + * = (1 - exp(-2*x))/(exp(-2*x) - 1 + 2) + */ +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn tanh(mut x: f64) -> f64 { + let mut uf: f64 = x; + let mut ui: u64 = f64::to_bits(uf); + + let w: u32; + let sign: bool; + let mut t: f64; + + /* x = |x| */ + sign = ui >> 63 != 0; + ui &= !1 / 2; + uf = f64::from_bits(ui); + x = uf; + w = (ui >> 32) as u32; + + if w > 0x3fe193ea { + /* |x| > log(3)/2 ~= 0.5493 or nan */ + if w > 0x40340000 { + /* |x| > 20 or nan */ + /* note: this branch avoids raising overflow */ + t = 1.0 - 0.0 / x; + } else { + t = expm1(2.0 * x); + t = 1.0 - 2.0 / (t + 2.0); + } + } else if w > 0x3fd058ae { + /* |x| > log(5/3)/2 ~= 0.2554 */ + t = expm1(2.0 * x); + t = t / (t + 2.0); + } else if w >= 0x00100000 { + /* |x| >= 0x1p-1022, up to 2ulp error in [0.1,0.2554] */ + t = expm1(-2.0 * x); + t = -t / (t + 2.0); + } else { + /* |x| is subnormal */ + /* note: the branch above would not raise underflow in [0x1p-1023,0x1p-1022) */ + force_eval!(x as f32); + t = x; + } + + if sign { + -t + } else { + t + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/tanhf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/tanhf.rs new file mode 100644 index 000000000..fc94e3ddd --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/tanhf.rs @@ -0,0 +1,39 @@ +use super::expm1f; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn tanhf(mut x: f32) -> f32 { + /* x = |x| */ + let mut ix = x.to_bits(); + let sign = (ix >> 31) != 0; + ix &= 0x7fffffff; + x = f32::from_bits(ix); + let w = ix; + + let tt = if w > 0x3f0c9f54 { + /* |x| > log(3)/2 ~= 0.5493 or nan */ + if w > 0x41200000 { + /* |x| > 10 */ + 1. + 0. / x + } else { + let t = expm1f(2. * x); + 1. - 2. / (t + 2.) + } + } else if w > 0x3e82c578 { + /* |x| > log(5/3)/2 ~= 0.2554 */ + let t = expm1f(2. * x); + t / (t + 2.) + } else if w >= 0x00800000 { + /* |x| >= 0x1p-126 */ + let t = expm1f(-2. * x); + -t / (t + 2.) + } else { + /* |x| is subnormal */ + force_eval!(x * x); + x + }; + if sign { + -tt + } else { + tt + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/tgamma.rs b/src/rust/vendor/compiler_builtins/libm/src/math/tgamma.rs new file mode 100644 index 000000000..e64eff61f --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/tgamma.rs @@ -0,0 +1,208 @@ +/* +"A Precision Approximation of the Gamma Function" - Cornelius Lanczos (1964) +"Lanczos Implementation of the Gamma Function" - Paul Godfrey (2001) +"An Analysis of the Lanczos Gamma Approximation" - Glendon Ralph Pugh (2004) + +approximation method: + + (x - 0.5) S(x) +Gamma(x) = (x + g - 0.5) * ---------------- + exp(x + g - 0.5) + +with + a1 a2 a3 aN +S(x) ~= [ a0 + ----- + ----- + ----- + ... + ----- ] + x + 1 x + 2 x + 3 x + N + +with a0, a1, a2, a3,.. aN constants which depend on g. + +for x < 0 the following reflection formula is used: + +Gamma(x)*Gamma(-x) = -pi/(x sin(pi x)) + +most ideas and constants are from boost and python +*/ +extern crate core; +use super::{exp, floor, k_cos, k_sin, pow}; + +const PI: f64 = 3.141592653589793238462643383279502884; + +/* sin(pi x) with x > 0x1p-100, if sin(pi*x)==0 the sign is arbitrary */ +fn sinpi(mut x: f64) -> f64 { + let mut n: isize; + + /* argument reduction: x = |x| mod 2 */ + /* spurious inexact when x is odd int */ + x = x * 0.5; + x = 2.0 * (x - floor(x)); + + /* reduce x into [-.25,.25] */ + n = (4.0 * x) as isize; + n = div!(n + 1, 2); + x -= (n as f64) * 0.5; + + x *= PI; + match n { + 1 => k_cos(x, 0.0), + 2 => k_sin(-x, 0.0, 0), + 3 => -k_cos(x, 0.0), + 0 | _ => k_sin(x, 0.0, 0), + } +} + +const N: usize = 12; +//static const double g = 6.024680040776729583740234375; +const GMHALF: f64 = 5.524680040776729583740234375; +const SNUM: [f64; N + 1] = [ + 23531376880.410759688572007674451636754734846804940, + 42919803642.649098768957899047001988850926355848959, + 35711959237.355668049440185451547166705960488635843, + 17921034426.037209699919755754458931112671403265390, + 6039542586.3520280050642916443072979210699388420708, + 1439720407.3117216736632230727949123939715485786772, + 248874557.86205415651146038641322942321632125127801, + 31426415.585400194380614231628318205362874684987640, + 2876370.6289353724412254090516208496135991145378768, + 186056.26539522349504029498971604569928220784236328, + 8071.6720023658162106380029022722506138218516325024, + 210.82427775157934587250973392071336271166969580291, + 2.5066282746310002701649081771338373386264310793408, +]; +const SDEN: [f64; N + 1] = [ + 0.0, + 39916800.0, + 120543840.0, + 150917976.0, + 105258076.0, + 45995730.0, + 13339535.0, + 2637558.0, + 357423.0, + 32670.0, + 1925.0, + 66.0, + 1.0, +]; +/* n! for small integer n */ +const FACT: [f64; 23] = [ + 1.0, + 1.0, + 2.0, + 6.0, + 24.0, + 120.0, + 720.0, + 5040.0, + 40320.0, + 362880.0, + 3628800.0, + 39916800.0, + 479001600.0, + 6227020800.0, + 87178291200.0, + 1307674368000.0, + 20922789888000.0, + 355687428096000.0, + 6402373705728000.0, + 121645100408832000.0, + 2432902008176640000.0, + 51090942171709440000.0, + 1124000727777607680000.0, +]; + +/* S(x) rational function for positive x */ +fn s(x: f64) -> f64 { + let mut num: f64 = 0.0; + let mut den: f64 = 0.0; + + /* to avoid overflow handle large x differently */ + if x < 8.0 { + for i in (0..=N).rev() { + num = num * x + i!(SNUM, i); + den = den * x + i!(SDEN, i); + } + } else { + for i in 0..=N { + num = num / x + i!(SNUM, i); + den = den / x + i!(SDEN, i); + } + } + return num / den; +} + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn tgamma(mut x: f64) -> f64 { + let u: u64 = x.to_bits(); + let absx: f64; + let mut y: f64; + let mut dy: f64; + let mut z: f64; + let mut r: f64; + let ix: u32 = ((u >> 32) as u32) & 0x7fffffff; + let sign: bool = (u >> 63) != 0; + + /* special cases */ + if ix >= 0x7ff00000 { + /* tgamma(nan)=nan, tgamma(inf)=inf, tgamma(-inf)=nan with invalid */ + return x + core::f64::INFINITY; + } + if ix < ((0x3ff - 54) << 20) { + /* |x| < 2^-54: tgamma(x) ~ 1/x, +-0 raises div-by-zero */ + return 1.0 / x; + } + + /* integer arguments */ + /* raise inexact when non-integer */ + if x == floor(x) { + if sign { + return 0.0 / 0.0; + } + if x <= FACT.len() as f64 { + return i!(FACT, (x as usize) - 1); + } + } + + /* x >= 172: tgamma(x)=inf with overflow */ + /* x =< -184: tgamma(x)=+-0 with underflow */ + if ix >= 0x40670000 { + /* |x| >= 184 */ + if sign { + let x1p_126 = f64::from_bits(0x3810000000000000); // 0x1p-126 == 2^-126 + force_eval!((x1p_126 / x) as f32); + if floor(x) * 0.5 == floor(x * 0.5) { + return 0.0; + } else { + return -0.0; + } + } + let x1p1023 = f64::from_bits(0x7fe0000000000000); // 0x1p1023 == 2^1023 + x *= x1p1023; + return x; + } + + absx = if sign { -x } else { x }; + + /* handle the error of x + g - 0.5 */ + y = absx + GMHALF; + if absx > GMHALF { + dy = y - absx; + dy -= GMHALF; + } else { + dy = y - GMHALF; + dy -= absx; + } + + z = absx - 0.5; + r = s(absx) * exp(-y); + if x < 0.0 { + /* reflection formula for negative x */ + /* sinpi(absx) is not 0, integers are already handled */ + r = -PI / (sinpi(absx) * absx * r); + dy = -dy; + z = -z; + } + r += dy * (GMHALF + 0.5) * r / y; + z = pow(y, 0.5 * z); + y = r * z * z; + return y; +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/tgammaf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/tgammaf.rs new file mode 100644 index 000000000..23e3814f9 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/tgammaf.rs @@ -0,0 +1,6 @@ +use super::tgamma; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn tgammaf(x: f32) -> f32 { + tgamma(x as f64) as f32 +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/trunc.rs b/src/rust/vendor/compiler_builtins/libm/src/math/trunc.rs new file mode 100644 index 000000000..f7892a2c5 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/trunc.rs @@ -0,0 +1,40 @@ +use core::f64; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn trunc(x: f64) -> f64 { + // On wasm32 we know that LLVM's intrinsic will compile to an optimized + // `f64.trunc` native instruction, so we can leverage this for both code size + // and speed. + llvm_intrinsically_optimized! { + #[cfg(target_arch = "wasm32")] { + return unsafe { ::core::intrinsics::truncf64(x) } + } + } + let x1p120 = f64::from_bits(0x4770000000000000); // 0x1p120f === 2 ^ 120 + + let mut i: u64 = x.to_bits(); + let mut e: i64 = (i >> 52 & 0x7ff) as i64 - 0x3ff + 12; + let m: u64; + + if e >= 52 + 12 { + return x; + } + if e < 12 { + e = 1; + } + m = -1i64 as u64 >> e; + if (i & m) == 0 { + return x; + } + force_eval!(x + x1p120); + i &= !m; + f64::from_bits(i) +} + +#[cfg(test)] +mod tests { + #[test] + fn sanity_check() { + assert_eq!(super::trunc(1.1), 1.0); + } +} diff --git a/src/rust/vendor/compiler_builtins/libm/src/math/truncf.rs b/src/rust/vendor/compiler_builtins/libm/src/math/truncf.rs new file mode 100644 index 000000000..20d5b73bd --- /dev/null +++ b/src/rust/vendor/compiler_builtins/libm/src/math/truncf.rs @@ -0,0 +1,42 @@ +use core::f32; + +#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] +pub fn truncf(x: f32) -> f32 { + // On wasm32 we know that LLVM's intrinsic will compile to an optimized + // `f32.trunc` native instruction, so we can leverage this for both code size + // and speed. + llvm_intrinsically_optimized! { + #[cfg(target_arch = "wasm32")] { + return unsafe { ::core::intrinsics::truncf32(x) } + } + } + let x1p120 = f32::from_bits(0x7b800000); // 0x1p120f === 2 ^ 120 + + let mut i: u32 = x.to_bits(); + let mut e: i32 = (i >> 23 & 0xff) as i32 - 0x7f + 9; + let m: u32; + + if e >= 23 + 9 { + return x; + } + if e < 9 { + e = 1; + } + m = -1i32 as u32 >> e; + if (i & m) == 0 { + return x; + } + force_eval!(x + x1p120); + i &= !m; + f32::from_bits(i) +} + +// PowerPC tests are failing on LLVM 13: https://github.com/rust-lang/rust/issues/88520 +#[cfg(not(target_arch = "powerpc64"))] +#[cfg(test)] +mod tests { + #[test] + fn sanity_check() { + assert_eq!(super::truncf(1.1), 1.0); + } +} diff --git a/src/rust/vendor/compiler_builtins/src/aarch64.rs b/src/rust/vendor/compiler_builtins/src/aarch64.rs new file mode 100644 index 000000000..e5747d525 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/aarch64.rs @@ -0,0 +1,22 @@ +#![allow(unused_imports)] + +use core::intrinsics; + +intrinsics! { + #[naked] + #[cfg(all(target_os = "uefi", not(feature = "no-asm")))] + pub unsafe extern "C" fn __chkstk() { + core::arch::asm!( + ".p2align 2", + "lsl x16, x15, #4", + "mov x17, sp", + "1:", + "sub x17, x17, 4096", + "subs x16, x16, 4096", + "ldr xzr, [x17]", + "b.gt 1b", + "ret", + options(noreturn) + ); + } +} diff --git a/src/rust/vendor/compiler_builtins/src/aarch64_linux.rs b/src/rust/vendor/compiler_builtins/src/aarch64_linux.rs new file mode 100644 index 000000000..62144e531 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/aarch64_linux.rs @@ -0,0 +1,277 @@ +//! Aarch64 targets have two possible implementations for atomics: +//! 1. Load-Locked, Store-Conditional (LL/SC), older and slower. +//! 2. Large System Extensions (LSE), newer and faster. +//! To avoid breaking backwards compat, C toolchains introduced a concept of "outlined atomics", +//! where atomic operations call into the compiler runtime to dispatch between two depending on +//! which is supported on the current CPU. +//! See https://community.arm.com/arm-community-blogs/b/tools-software-ides-blog/posts/making-the-most-of-the-arm-architecture-in-gcc-10#:~:text=out%20of%20line%20atomics for more discussion. +//! +//! Currently we only support LL/SC, because LSE requires `getauxval` from libc in order to do runtime detection. +//! Use the `compiler-rt` intrinsics if you want LSE support. +//! +//! Ported from `aarch64/lse.S` in LLVM's compiler-rt. +//! +//! Generate functions for each of the following symbols: +//! __aarch64_casM_ORDER +//! __aarch64_swpN_ORDER +//! __aarch64_ldaddN_ORDER +//! __aarch64_ldclrN_ORDER +//! __aarch64_ldeorN_ORDER +//! __aarch64_ldsetN_ORDER +//! for N = {1, 2, 4, 8}, M = {1, 2, 4, 8, 16}, ORDER = { relax, acq, rel, acq_rel } +//! +//! The original `lse.S` has some truly horrifying code that expects to be compiled multiple times with different constants. +//! We do something similar, but with macro arguments. +#![cfg_attr(feature = "c", allow(unused_macros))] // avoid putting the macros into a submodule + +// We don't do runtime dispatch so we don't have to worry about the `__aarch64_have_lse_atomics` global ctor. + +/// Translate a byte size to a Rust type. +#[rustfmt::skip] +macro_rules! int_ty { + (1) => { i8 }; + (2) => { i16 }; + (4) => { i32 }; + (8) => { i64 }; + (16) => { i128 }; +} + +/// Given a byte size and a register number, return a register of the appropriate size. +/// +/// See . +#[rustfmt::skip] +macro_rules! reg { + (1, $num:literal) => { concat!("w", $num) }; + (2, $num:literal) => { concat!("w", $num) }; + (4, $num:literal) => { concat!("w", $num) }; + (8, $num:literal) => { concat!("x", $num) }; +} + +/// Given an atomic ordering, translate it to the acquire suffix for the lxdr aarch64 ASM instruction. +#[rustfmt::skip] +macro_rules! acquire { + (Relaxed) => { "" }; + (Acquire) => { "a" }; + (Release) => { "" }; + (AcqRel) => { "a" }; +} + +/// Given an atomic ordering, translate it to the release suffix for the stxr aarch64 ASM instruction. +#[rustfmt::skip] +macro_rules! release { + (Relaxed) => { "" }; + (Acquire) => { "" }; + (Release) => { "l" }; + (AcqRel) => { "l" }; +} + +/// Given a size in bytes, translate it to the byte suffix for an aarch64 ASM instruction. +#[rustfmt::skip] +macro_rules! size { + (1) => { "b" }; + (2) => { "h" }; + (4) => { "" }; + (8) => { "" }; + (16) => { "" }; +} + +/// Given a byte size, translate it to an Unsigned eXTend instruction +/// with the correct semantics. +/// +/// See +#[rustfmt::skip] +macro_rules! uxt { + (1) => { "uxtb" }; + (2) => { "uxth" }; + ($_:tt) => { "mov" }; +} + +/// Given an atomic ordering and byte size, translate it to a LoaD eXclusive Register instruction +/// with the correct semantics. +/// +/// See . +macro_rules! ldxr { + ($ordering:ident, $bytes:tt) => { + concat!("ld", acquire!($ordering), "xr", size!($bytes)) + }; +} + +/// Given an atomic ordering and byte size, translate it to a STore eXclusive Register instruction +/// with the correct semantics. +/// +/// See . +macro_rules! stxr { + ($ordering:ident, $bytes:tt) => { + concat!("st", release!($ordering), "xr", size!($bytes)) + }; +} + +/// Given an atomic ordering and byte size, translate it to a LoaD eXclusive Pair of registers instruction +/// with the correct semantics. +/// +/// See +macro_rules! ldxp { + ($ordering:ident) => { + concat!("ld", acquire!($ordering), "xp") + }; +} + +/// Given an atomic ordering and byte size, translate it to a STore eXclusive Pair of registers instruction +/// with the correct semantics. +/// +/// See . +macro_rules! stxp { + ($ordering:ident) => { + concat!("st", release!($ordering), "xp") + }; +} + +/// See . +macro_rules! compare_and_swap { + ($ordering:ident, $bytes:tt, $name:ident) => { + intrinsics! { + #[maybe_use_optimized_c_shim] + #[naked] + pub unsafe extern "C" fn $name ( + expected: int_ty!($bytes), desired: int_ty!($bytes), ptr: *mut int_ty!($bytes) + ) -> int_ty!($bytes) { + // We can't use `AtomicI8::compare_and_swap`; we *are* compare_and_swap. + unsafe { core::arch::asm! { + // UXT s(tmp0), s(0) + concat!(uxt!($bytes), " ", reg!($bytes, 16), ", ", reg!($bytes, 0)), + "0:", + // LDXR s(0), [x2] + concat!(ldxr!($ordering, $bytes), " ", reg!($bytes, 0), ", [x2]"), + // cmp s(0), s(tmp0) + concat!("cmp ", reg!($bytes, 0), ", ", reg!($bytes, 16)), + "bne 1f", + // STXR w(tmp1), s(1), [x2] + concat!(stxr!($ordering, $bytes), " w17, ", reg!($bytes, 1), ", [x2]"), + "cbnz w17, 0b", + "1:", + "ret", + options(noreturn) + } } + } + } + }; +} + +// i128 uses a completely different impl, so it has its own macro. +macro_rules! compare_and_swap_i128 { + ($ordering:ident, $name:ident) => { + intrinsics! { + #[maybe_use_optimized_c_shim] + #[naked] + pub unsafe extern "C" fn $name ( + expected: i128, desired: i128, ptr: *mut i128 + ) -> i128 { + unsafe { core::arch::asm! { + "mov x16, x0", + "mov x17, x1", + "0:", + // LDXP x0, x1, [x4] + concat!(ldxp!($ordering), " x0, x1, [x4]"), + "cmp x0, x16", + "ccmp x1, x17, #0, eq", + "bne 1f", + // STXP w(tmp2), x2, x3, [x4] + concat!(stxp!($ordering), " w15, x2, x3, [x4]"), + "cbnz w15, 0b", + "1:", + "ret", + options(noreturn) + } } + } + } + }; +} + +/// See . +macro_rules! swap { + ($ordering:ident, $bytes:tt, $name:ident) => { + intrinsics! { + #[maybe_use_optimized_c_shim] + #[naked] + pub unsafe extern "C" fn $name ( + left: int_ty!($bytes), right_ptr: *mut int_ty!($bytes) + ) -> int_ty!($bytes) { + unsafe { core::arch::asm! { + // mov s(tmp0), s(0) + concat!("mov ", reg!($bytes, 16), ", ", reg!($bytes, 0)), + "0:", + // LDXR s(0), [x1] + concat!(ldxr!($ordering, $bytes), " ", reg!($bytes, 0), ", [x1]"), + // STXR w(tmp1), s(tmp0), [x1] + concat!(stxr!($ordering, $bytes), " w17, ", reg!($bytes, 16), ", [x1]"), + "cbnz w17, 0b", + "ret", + options(noreturn) + } } + } + } + }; +} + +/// See (e.g.) . +macro_rules! fetch_op { + ($ordering:ident, $bytes:tt, $name:ident, $op:literal) => { + intrinsics! { + #[maybe_use_optimized_c_shim] + #[naked] + pub unsafe extern "C" fn $name ( + val: int_ty!($bytes), ptr: *mut int_ty!($bytes) + ) -> int_ty!($bytes) { + unsafe { core::arch::asm! { + // mov s(tmp0), s(0) + concat!("mov ", reg!($bytes, 16), ", ", reg!($bytes, 0)), + "0:", + // LDXR s(0), [x1] + concat!(ldxr!($ordering, $bytes), " ", reg!($bytes, 0), ", [x1]"), + // OP s(tmp1), s(0), s(tmp0) + concat!($op, " ", reg!($bytes, 17), ", ", reg!($bytes, 0), ", ", reg!($bytes, 16)), + // STXR w(tmp2), s(tmp1), [x1] + concat!(stxr!($ordering, $bytes), " w15, ", reg!($bytes, 17), ", [x1]"), + "cbnz w15, 0b", + "ret", + options(noreturn) + } } + } + } + } +} + +// We need a single macro to pass to `foreach_ldadd`. +macro_rules! add { + ($ordering:ident, $bytes:tt, $name:ident) => { + fetch_op! { $ordering, $bytes, $name, "add" } + }; +} + +macro_rules! and { + ($ordering:ident, $bytes:tt, $name:ident) => { + fetch_op! { $ordering, $bytes, $name, "bic" } + }; +} + +macro_rules! xor { + ($ordering:ident, $bytes:tt, $name:ident) => { + fetch_op! { $ordering, $bytes, $name, "eor" } + }; +} + +macro_rules! or { + ($ordering:ident, $bytes:tt, $name:ident) => { + fetch_op! { $ordering, $bytes, $name, "orr" } + }; +} + +// See `generate_aarch64_outlined_atomics` in build.rs. +include!(concat!(env!("OUT_DIR"), "/outlined_atomics.rs")); +foreach_cas!(compare_and_swap); +foreach_cas16!(compare_and_swap_i128); +foreach_swp!(swap); +foreach_ldadd!(add); +foreach_ldclr!(and); +foreach_ldeor!(xor); +foreach_ldset!(or); diff --git a/src/rust/vendor/compiler_builtins/src/arm.rs b/src/rust/vendor/compiler_builtins/src/arm.rs new file mode 100644 index 000000000..cc67642e1 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/arm.rs @@ -0,0 +1,187 @@ +#![cfg(not(feature = "no-asm"))] +#![allow(unused_imports)] + +use core::intrinsics; + +// iOS symbols have a leading underscore. +#[cfg(target_os = "ios")] +macro_rules! bl { + ($func:literal) => { + concat!("bl _", $func) + }; +} +#[cfg(not(target_os = "ios"))] +macro_rules! bl { + ($func:literal) => { + concat!("bl ", $func) + }; +} + +intrinsics! { + // NOTE This function and the ones below are implemented using assembly because they are using a + // custom calling convention which can't be implemented using a normal Rust function. + #[cfg_attr(all(not(windows), not(target_vendor="apple")), weak)] + #[naked] + #[cfg(not(target_env = "msvc"))] + pub unsafe extern "C" fn __aeabi_uidivmod() { + core::arch::asm!( + "push {{lr}}", + "sub sp, sp, #4", + "mov r2, sp", + bl!("__udivmodsi4"), + "ldr r1, [sp]", + "add sp, sp, #4", + "pop {{pc}}", + options(noreturn) + ); + } + + #[cfg_attr(all(not(windows), not(target_vendor="apple")), weak)] + #[naked] + pub unsafe extern "C" fn __aeabi_uldivmod() { + core::arch::asm!( + "push {{r4, lr}}", + "sub sp, sp, #16", + "add r4, sp, #8", + "str r4, [sp]", + bl!("__udivmoddi4"), + "ldr r2, [sp, #8]", + "ldr r3, [sp, #12]", + "add sp, sp, #16", + "pop {{r4, pc}}", + options(noreturn) + ); + } + + #[cfg_attr(all(not(windows), not(target_vendor="apple")), weak)] + #[naked] + pub unsafe extern "C" fn __aeabi_idivmod() { + core::arch::asm!( + "push {{r0, r1, r4, lr}}", + bl!("__aeabi_idiv"), + "pop {{r1, r2}}", + "muls r2, r2, r0", + "subs r1, r1, r2", + "pop {{r4, pc}}", + options(noreturn) + ); + } + + #[cfg_attr(all(not(windows), not(target_vendor="apple")), weak)] + #[naked] + pub unsafe extern "C" fn __aeabi_ldivmod() { + core::arch::asm!( + "push {{r4, lr}}", + "sub sp, sp, #16", + "add r4, sp, #8", + "str r4, [sp]", + bl!("__divmoddi4"), + "ldr r2, [sp, #8]", + "ldr r3, [sp, #12]", + "add sp, sp, #16", + "pop {{r4, pc}}", + options(noreturn) + ); + } + + // The following functions use weak linkage to allow users to override + // with custom implementation. + // FIXME: The `*4` and `*8` variants should be defined as aliases. + + #[weak] + #[cfg(not(target_os = "ios"))] + pub unsafe extern "aapcs" fn __aeabi_memcpy(dest: *mut u8, src: *const u8, n: usize) { + crate::mem::memcpy(dest, src, n); + } + + #[weak] + #[cfg(not(target_os = "ios"))] + pub unsafe extern "aapcs" fn __aeabi_memcpy4(dest: *mut u8, src: *const u8, n: usize) { + // We are guaranteed 4-alignment, so accessing at u32 is okay. + let mut dest = dest as *mut u32; + let mut src = src as *mut u32; + let mut n = n; + + while n >= 4 { + *dest = *src; + dest = dest.offset(1); + src = src.offset(1); + n -= 4; + } + + __aeabi_memcpy(dest as *mut u8, src as *const u8, n); + } + + #[weak] + #[cfg(not(target_os = "ios"))] + pub unsafe extern "aapcs" fn __aeabi_memcpy8(dest: *mut u8, src: *const u8, n: usize) { + __aeabi_memcpy4(dest, src, n); + } + + #[weak] + #[cfg(not(target_os = "ios"))] + pub unsafe extern "aapcs" fn __aeabi_memmove(dest: *mut u8, src: *const u8, n: usize) { + crate::mem::memmove(dest, src, n); + } + + #[weak] + #[cfg(not(any(target_os = "ios", target_env = "msvc")))] + pub unsafe extern "aapcs" fn __aeabi_memmove4(dest: *mut u8, src: *const u8, n: usize) { + __aeabi_memmove(dest, src, n); + } + + #[weak] + #[cfg(not(any(target_os = "ios", target_env = "msvc")))] + pub unsafe extern "aapcs" fn __aeabi_memmove8(dest: *mut u8, src: *const u8, n: usize) { + __aeabi_memmove(dest, src, n); + } + + #[weak] + #[cfg(not(target_os = "ios"))] + pub unsafe extern "aapcs" fn __aeabi_memset(dest: *mut u8, n: usize, c: i32) { + // Note the different argument order + crate::mem::memset(dest, c, n); + } + + #[weak] + #[cfg(not(target_os = "ios"))] + pub unsafe extern "aapcs" fn __aeabi_memset4(dest: *mut u8, n: usize, c: i32) { + let mut dest = dest as *mut u32; + let mut n = n; + + let byte = (c as u32) & 0xff; + let c = (byte << 24) | (byte << 16) | (byte << 8) | byte; + + while n >= 4 { + *dest = c; + dest = dest.offset(1); + n -= 4; + } + + __aeabi_memset(dest as *mut u8, n, byte as i32); + } + + #[weak] + #[cfg(not(target_os = "ios"))] + pub unsafe extern "aapcs" fn __aeabi_memset8(dest: *mut u8, n: usize, c: i32) { + __aeabi_memset4(dest, n, c); + } + + #[weak] + #[cfg(not(target_os = "ios"))] + pub unsafe extern "aapcs" fn __aeabi_memclr(dest: *mut u8, n: usize) { + __aeabi_memset(dest, n, 0); + } + + #[weak] + #[cfg(not(any(target_os = "ios", target_env = "msvc")))] + pub unsafe extern "aapcs" fn __aeabi_memclr4(dest: *mut u8, n: usize) { + __aeabi_memset4(dest, n, 0); + } + + #[weak] + #[cfg(not(any(target_os = "ios", target_env = "msvc")))] + pub unsafe extern "aapcs" fn __aeabi_memclr8(dest: *mut u8, n: usize) { + __aeabi_memset4(dest, n, 0); + } +} diff --git a/src/rust/vendor/compiler_builtins/src/arm_linux.rs b/src/rust/vendor/compiler_builtins/src/arm_linux.rs new file mode 100644 index 000000000..8f22eb628 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/arm_linux.rs @@ -0,0 +1,250 @@ +use core::intrinsics; +use core::mem; + +// Kernel-provided user-mode helper functions: +// https://www.kernel.org/doc/Documentation/arm/kernel_user_helpers.txt +unsafe fn __kuser_cmpxchg(oldval: u32, newval: u32, ptr: *mut u32) -> bool { + let f: extern "C" fn(u32, u32, *mut u32) -> u32 = mem::transmute(0xffff0fc0usize as *const ()); + f(oldval, newval, ptr) == 0 +} +unsafe fn __kuser_memory_barrier() { + let f: extern "C" fn() = mem::transmute(0xffff0fa0usize as *const ()); + f(); +} + +// Word-align a pointer +fn align_ptr(ptr: *mut T) -> *mut u32 { + // This gives us a mask of 0 when T == u32 since the pointer is already + // supposed to be aligned, which avoids any masking in that case. + let ptr_mask = 3 & (4 - mem::size_of::()); + (ptr as usize & !ptr_mask) as *mut u32 +} + +// Calculate the shift and mask of a value inside an aligned word +fn get_shift_mask(ptr: *mut T) -> (u32, u32) { + // Mask to get the low byte/halfword/word + let mask = match mem::size_of::() { + 1 => 0xff, + 2 => 0xffff, + 4 => 0xffffffff, + _ => unreachable!(), + }; + + // If we are on big-endian then we need to adjust the shift accordingly + let endian_adjust = if cfg!(target_endian = "little") { + 0 + } else { + 4 - mem::size_of::() as u32 + }; + + // Shift to get the desired element in the word + let ptr_mask = 3 & (4 - mem::size_of::()); + let shift = ((ptr as usize & ptr_mask) as u32 ^ endian_adjust) * 8; + + (shift, mask) +} + +// Extract a value from an aligned word +fn extract_aligned(aligned: u32, shift: u32, mask: u32) -> u32 { + (aligned >> shift) & mask +} + +// Insert a value into an aligned word +fn insert_aligned(aligned: u32, val: u32, shift: u32, mask: u32) -> u32 { + (aligned & !(mask << shift)) | ((val & mask) << shift) +} + +// Generic atomic read-modify-write operation +unsafe fn atomic_rmw u32, G: Fn(u32, u32) -> u32>(ptr: *mut T, f: F, g: G) -> u32 { + let aligned_ptr = align_ptr(ptr); + let (shift, mask) = get_shift_mask(ptr); + + loop { + let curval_aligned = intrinsics::atomic_load_unordered(aligned_ptr); + let curval = extract_aligned(curval_aligned, shift, mask); + let newval = f(curval); + let newval_aligned = insert_aligned(curval_aligned, newval, shift, mask); + if __kuser_cmpxchg(curval_aligned, newval_aligned, aligned_ptr) { + return g(curval, newval); + } + } +} + +// Generic atomic compare-exchange operation +unsafe fn atomic_cmpxchg(ptr: *mut T, oldval: u32, newval: u32) -> u32 { + let aligned_ptr = align_ptr(ptr); + let (shift, mask) = get_shift_mask(ptr); + + loop { + let curval_aligned = intrinsics::atomic_load_unordered(aligned_ptr); + let curval = extract_aligned(curval_aligned, shift, mask); + if curval != oldval { + return curval; + } + let newval_aligned = insert_aligned(curval_aligned, newval, shift, mask); + if __kuser_cmpxchg(curval_aligned, newval_aligned, aligned_ptr) { + return oldval; + } + } +} + +macro_rules! atomic_rmw { + ($name:ident, $ty:ty, $op:expr, $fetch:expr) => { + intrinsics! { + pub unsafe extern "C" fn $name(ptr: *mut $ty, val: $ty) -> $ty { + atomic_rmw(ptr, |x| $op(x as $ty, val) as u32, |old, new| $fetch(old, new)) as $ty + } + } + }; + + (@old $name:ident, $ty:ty, $op:expr) => { + atomic_rmw!($name, $ty, $op, |old, _| old); + }; + + (@new $name:ident, $ty:ty, $op:expr) => { + atomic_rmw!($name, $ty, $op, |_, new| new); + }; +} +macro_rules! atomic_cmpxchg { + ($name:ident, $ty:ty) => { + intrinsics! { + pub unsafe extern "C" fn $name(ptr: *mut $ty, oldval: $ty, newval: $ty) -> $ty { + atomic_cmpxchg(ptr, oldval as u32, newval as u32) as $ty + } + } + }; +} + +atomic_rmw!(@old __sync_fetch_and_add_1, u8, |a: u8, b: u8| a.wrapping_add(b)); +atomic_rmw!(@old __sync_fetch_and_add_2, u16, |a: u16, b: u16| a + .wrapping_add(b)); +atomic_rmw!(@old __sync_fetch_and_add_4, u32, |a: u32, b: u32| a + .wrapping_add(b)); + +atomic_rmw!(@new __sync_add_and_fetch_1, u8, |a: u8, b: u8| a.wrapping_add(b)); +atomic_rmw!(@new __sync_add_and_fetch_2, u16, |a: u16, b: u16| a + .wrapping_add(b)); +atomic_rmw!(@new __sync_add_and_fetch_4, u32, |a: u32, b: u32| a + .wrapping_add(b)); + +atomic_rmw!(@old __sync_fetch_and_sub_1, u8, |a: u8, b: u8| a.wrapping_sub(b)); +atomic_rmw!(@old __sync_fetch_and_sub_2, u16, |a: u16, b: u16| a + .wrapping_sub(b)); +atomic_rmw!(@old __sync_fetch_and_sub_4, u32, |a: u32, b: u32| a + .wrapping_sub(b)); + +atomic_rmw!(@new __sync_sub_and_fetch_1, u8, |a: u8, b: u8| a.wrapping_sub(b)); +atomic_rmw!(@new __sync_sub_and_fetch_2, u16, |a: u16, b: u16| a + .wrapping_sub(b)); +atomic_rmw!(@new __sync_sub_and_fetch_4, u32, |a: u32, b: u32| a + .wrapping_sub(b)); + +atomic_rmw!(@old __sync_fetch_and_and_1, u8, |a: u8, b: u8| a & b); +atomic_rmw!(@old __sync_fetch_and_and_2, u16, |a: u16, b: u16| a & b); +atomic_rmw!(@old __sync_fetch_and_and_4, u32, |a: u32, b: u32| a & b); + +atomic_rmw!(@new __sync_and_and_fetch_1, u8, |a: u8, b: u8| a & b); +atomic_rmw!(@new __sync_and_and_fetch_2, u16, |a: u16, b: u16| a & b); +atomic_rmw!(@new __sync_and_and_fetch_4, u32, |a: u32, b: u32| a & b); + +atomic_rmw!(@old __sync_fetch_and_or_1, u8, |a: u8, b: u8| a | b); +atomic_rmw!(@old __sync_fetch_and_or_2, u16, |a: u16, b: u16| a | b); +atomic_rmw!(@old __sync_fetch_and_or_4, u32, |a: u32, b: u32| a | b); + +atomic_rmw!(@new __sync_or_and_fetch_1, u8, |a: u8, b: u8| a | b); +atomic_rmw!(@new __sync_or_and_fetch_2, u16, |a: u16, b: u16| a | b); +atomic_rmw!(@new __sync_or_and_fetch_4, u32, |a: u32, b: u32| a | b); + +atomic_rmw!(@old __sync_fetch_and_xor_1, u8, |a: u8, b: u8| a ^ b); +atomic_rmw!(@old __sync_fetch_and_xor_2, u16, |a: u16, b: u16| a ^ b); +atomic_rmw!(@old __sync_fetch_and_xor_4, u32, |a: u32, b: u32| a ^ b); + +atomic_rmw!(@new __sync_xor_and_fetch_1, u8, |a: u8, b: u8| a ^ b); +atomic_rmw!(@new __sync_xor_and_fetch_2, u16, |a: u16, b: u16| a ^ b); +atomic_rmw!(@new __sync_xor_and_fetch_4, u32, |a: u32, b: u32| a ^ b); + +atomic_rmw!(@old __sync_fetch_and_nand_1, u8, |a: u8, b: u8| !(a & b)); +atomic_rmw!(@old __sync_fetch_and_nand_2, u16, |a: u16, b: u16| !(a & b)); +atomic_rmw!(@old __sync_fetch_and_nand_4, u32, |a: u32, b: u32| !(a & b)); + +atomic_rmw!(@new __sync_nand_and_fetch_1, u8, |a: u8, b: u8| !(a & b)); +atomic_rmw!(@new __sync_nand_and_fetch_2, u16, |a: u16, b: u16| !(a & b)); +atomic_rmw!(@new __sync_nand_and_fetch_4, u32, |a: u32, b: u32| !(a & b)); + +atomic_rmw!(@old __sync_fetch_and_max_1, i8, |a: i8, b: i8| if a > b { + a +} else { + b +}); +atomic_rmw!(@old __sync_fetch_and_max_2, i16, |a: i16, b: i16| if a > b { + a +} else { + b +}); +atomic_rmw!(@old __sync_fetch_and_max_4, i32, |a: i32, b: i32| if a > b { + a +} else { + b +}); + +atomic_rmw!(@old __sync_fetch_and_umax_1, u8, |a: u8, b: u8| if a > b { + a +} else { + b +}); +atomic_rmw!(@old __sync_fetch_and_umax_2, u16, |a: u16, b: u16| if a > b { + a +} else { + b +}); +atomic_rmw!(@old __sync_fetch_and_umax_4, u32, |a: u32, b: u32| if a > b { + a +} else { + b +}); + +atomic_rmw!(@old __sync_fetch_and_min_1, i8, |a: i8, b: i8| if a < b { + a +} else { + b +}); +atomic_rmw!(@old __sync_fetch_and_min_2, i16, |a: i16, b: i16| if a < b { + a +} else { + b +}); +atomic_rmw!(@old __sync_fetch_and_min_4, i32, |a: i32, b: i32| if a < b { + a +} else { + b +}); + +atomic_rmw!(@old __sync_fetch_and_umin_1, u8, |a: u8, b: u8| if a < b { + a +} else { + b +}); +atomic_rmw!(@old __sync_fetch_and_umin_2, u16, |a: u16, b: u16| if a < b { + a +} else { + b +}); +atomic_rmw!(@old __sync_fetch_and_umin_4, u32, |a: u32, b: u32| if a < b { + a +} else { + b +}); + +atomic_rmw!(@old __sync_lock_test_and_set_1, u8, |_: u8, b: u8| b); +atomic_rmw!(@old __sync_lock_test_and_set_2, u16, |_: u16, b: u16| b); +atomic_rmw!(@old __sync_lock_test_and_set_4, u32, |_: u32, b: u32| b); + +atomic_cmpxchg!(__sync_val_compare_and_swap_1, u8); +atomic_cmpxchg!(__sync_val_compare_and_swap_2, u16); +atomic_cmpxchg!(__sync_val_compare_and_swap_4, u32); + +intrinsics! { + pub unsafe extern "C" fn __sync_synchronize() { + __kuser_memory_barrier(); + } +} diff --git a/src/rust/vendor/compiler_builtins/src/float/add.rs b/src/rust/vendor/compiler_builtins/src/float/add.rs new file mode 100644 index 000000000..804f4b510 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/float/add.rs @@ -0,0 +1,213 @@ +use crate::float::Float; +use crate::int::{CastInto, Int}; + +/// Returns `a + b` +fn add(a: F, b: F) -> F +where + u32: CastInto, + F::Int: CastInto, + i32: CastInto, + F::Int: CastInto, +{ + let one = F::Int::ONE; + let zero = F::Int::ZERO; + + let bits = F::BITS.cast(); + let significand_bits = F::SIGNIFICAND_BITS; + let max_exponent = F::EXPONENT_MAX; + + let implicit_bit = F::IMPLICIT_BIT; + let significand_mask = F::SIGNIFICAND_MASK; + let sign_bit = F::SIGN_MASK as F::Int; + let abs_mask = sign_bit - one; + let exponent_mask = F::EXPONENT_MASK; + let inf_rep = exponent_mask; + let quiet_bit = implicit_bit >> 1; + let qnan_rep = exponent_mask | quiet_bit; + + let mut a_rep = a.repr(); + let mut b_rep = b.repr(); + let a_abs = a_rep & abs_mask; + let b_abs = b_rep & abs_mask; + + // Detect if a or b is zero, infinity, or NaN. + if a_abs.wrapping_sub(one) >= inf_rep - one || b_abs.wrapping_sub(one) >= inf_rep - one { + // NaN + anything = qNaN + if a_abs > inf_rep { + return F::from_repr(a_abs | quiet_bit); + } + // anything + NaN = qNaN + if b_abs > inf_rep { + return F::from_repr(b_abs | quiet_bit); + } + + if a_abs == inf_rep { + // +/-infinity + -/+infinity = qNaN + if (a.repr() ^ b.repr()) == sign_bit { + return F::from_repr(qnan_rep); + } else { + // +/-infinity + anything remaining = +/- infinity + return a; + } + } + + // anything remaining + +/-infinity = +/-infinity + if b_abs == inf_rep { + return b; + } + + // zero + anything = anything + if a_abs == Int::ZERO { + // but we need to get the sign right for zero + zero + if b_abs == Int::ZERO { + return F::from_repr(a.repr() & b.repr()); + } else { + return b; + } + } + + // anything + zero = anything + if b_abs == Int::ZERO { + return a; + } + } + + // Swap a and b if necessary so that a has the larger absolute value. + if b_abs > a_abs { + // Don't use mem::swap because it may generate references to memcpy in unoptimized code. + let tmp = a_rep; + a_rep = b_rep; + b_rep = tmp; + } + + // Extract the exponent and significand from the (possibly swapped) a and b. + let mut a_exponent: i32 = ((a_rep & exponent_mask) >> significand_bits).cast(); + let mut b_exponent: i32 = ((b_rep & exponent_mask) >> significand_bits).cast(); + let mut a_significand = a_rep & significand_mask; + let mut b_significand = b_rep & significand_mask; + + // normalize any denormals, and adjust the exponent accordingly. + if a_exponent == 0 { + let (exponent, significand) = F::normalize(a_significand); + a_exponent = exponent; + a_significand = significand; + } + if b_exponent == 0 { + let (exponent, significand) = F::normalize(b_significand); + b_exponent = exponent; + b_significand = significand; + } + + // The sign of the result is the sign of the larger operand, a. If they + // have opposite signs, we are performing a subtraction; otherwise addition. + let result_sign = a_rep & sign_bit; + let subtraction = ((a_rep ^ b_rep) & sign_bit) != zero; + + // Shift the significands to give us round, guard and sticky, and or in the + // implicit significand bit. (If we fell through from the denormal path it + // was already set by normalize(), but setting it twice won't hurt + // anything.) + a_significand = (a_significand | implicit_bit) << 3; + b_significand = (b_significand | implicit_bit) << 3; + + // Shift the significand of b by the difference in exponents, with a sticky + // bottom bit to get rounding correct. + let align = a_exponent.wrapping_sub(b_exponent).cast(); + if align != Int::ZERO { + if align < bits { + let sticky = + F::Int::from_bool(b_significand << bits.wrapping_sub(align).cast() != Int::ZERO); + b_significand = (b_significand >> align.cast()) | sticky; + } else { + b_significand = one; // sticky; b is known to be non-zero. + } + } + if subtraction { + a_significand = a_significand.wrapping_sub(b_significand); + // If a == -b, return +zero. + if a_significand == Int::ZERO { + return F::from_repr(Int::ZERO); + } + + // If partial cancellation occured, we need to left-shift the result + // and adjust the exponent: + if a_significand < implicit_bit << 3 { + let shift = + a_significand.leading_zeros() as i32 - (implicit_bit << 3).leading_zeros() as i32; + a_significand <<= shift; + a_exponent -= shift; + } + } else { + // addition + a_significand += b_significand; + + // If the addition carried up, we need to right-shift the result and + // adjust the exponent: + if a_significand & implicit_bit << 4 != Int::ZERO { + let sticky = F::Int::from_bool(a_significand & one != Int::ZERO); + a_significand = a_significand >> 1 | sticky; + a_exponent += 1; + } + } + + // If we have overflowed the type, return +/- infinity: + if a_exponent >= max_exponent as i32 { + return F::from_repr(inf_rep | result_sign); + } + + if a_exponent <= 0 { + // Result is denormal before rounding; the exponent is zero and we + // need to shift the significand. + let shift = (1 - a_exponent).cast(); + let sticky = + F::Int::from_bool((a_significand << bits.wrapping_sub(shift).cast()) != Int::ZERO); + a_significand = a_significand >> shift.cast() | sticky; + a_exponent = 0; + } + + // Low three bits are round, guard, and sticky. + let a_significand_i32: i32 = a_significand.cast(); + let round_guard_sticky: i32 = a_significand_i32 & 0x7; + + // Shift the significand into place, and mask off the implicit bit. + let mut result = a_significand >> 3 & significand_mask; + + // Insert the exponent and sign. + result |= a_exponent.cast() << significand_bits; + result |= result_sign; + + // Final rounding. The result may overflow to infinity, but that is the + // correct result in that case. + if round_guard_sticky > 0x4 { + result += one; + } + if round_guard_sticky == 0x4 { + result += result & one; + } + + F::from_repr(result) +} + +intrinsics! { + #[aapcs_on_arm] + #[arm_aeabi_alias = __aeabi_fadd] + pub extern "C" fn __addsf3(a: f32, b: f32) -> f32 { + add(a, b) + } + + #[aapcs_on_arm] + #[arm_aeabi_alias = __aeabi_dadd] + pub extern "C" fn __adddf3(a: f64, b: f64) -> f64 { + add(a, b) + } + + #[cfg(target_arch = "arm")] + pub extern "C" fn __addsf3vfp(a: f32, b: f32) -> f32 { + a + b + } + + #[cfg(target_arch = "arm")] + pub extern "C" fn __adddf3vfp(a: f64, b: f64) -> f64 { + a + b + } +} diff --git a/src/rust/vendor/compiler_builtins/src/float/cmp.rs b/src/rust/vendor/compiler_builtins/src/float/cmp.rs new file mode 100644 index 000000000..1c8917af8 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/float/cmp.rs @@ -0,0 +1,267 @@ +#![allow(unreachable_code)] + +use crate::float::Float; +use crate::int::Int; + +#[derive(Clone, Copy)] +enum Result { + Less, + Equal, + Greater, + Unordered, +} + +impl Result { + fn to_le_abi(self) -> i32 { + match self { + Result::Less => -1, + Result::Equal => 0, + Result::Greater => 1, + Result::Unordered => 1, + } + } + + fn to_ge_abi(self) -> i32 { + match self { + Result::Less => -1, + Result::Equal => 0, + Result::Greater => 1, + Result::Unordered => -1, + } + } +} + +fn cmp(a: F, b: F) -> Result { + let one = F::Int::ONE; + let zero = F::Int::ZERO; + let szero = F::SignedInt::ZERO; + + let sign_bit = F::SIGN_MASK as F::Int; + let abs_mask = sign_bit - one; + let exponent_mask = F::EXPONENT_MASK; + let inf_rep = exponent_mask; + + let a_rep = a.repr(); + let b_rep = b.repr(); + let a_abs = a_rep & abs_mask; + let b_abs = b_rep & abs_mask; + + // If either a or b is NaN, they are unordered. + if a_abs > inf_rep || b_abs > inf_rep { + return Result::Unordered; + } + + // If a and b are both zeros, they are equal. + if a_abs | b_abs == zero { + return Result::Equal; + } + + let a_srep = a.signed_repr(); + let b_srep = b.signed_repr(); + + // If at least one of a and b is positive, we get the same result comparing + // a and b as signed integers as we would with a fp_ting-point compare. + if a_srep & b_srep >= szero { + if a_srep < b_srep { + Result::Less + } else if a_srep == b_srep { + Result::Equal + } else { + Result::Greater + } + // Otherwise, both are negative, so we need to flip the sense of the + // comparison to get the correct result. (This assumes a twos- or ones- + // complement integer representation; if integers are represented in a + // sign-magnitude representation, then this flip is incorrect). + } else if a_srep > b_srep { + Result::Less + } else if a_srep == b_srep { + Result::Equal + } else { + Result::Greater + } +} + +fn unord(a: F, b: F) -> bool { + let one = F::Int::ONE; + + let sign_bit = F::SIGN_MASK as F::Int; + let abs_mask = sign_bit - one; + let exponent_mask = F::EXPONENT_MASK; + let inf_rep = exponent_mask; + + let a_rep = a.repr(); + let b_rep = b.repr(); + let a_abs = a_rep & abs_mask; + let b_abs = b_rep & abs_mask; + + a_abs > inf_rep || b_abs > inf_rep +} + +intrinsics! { + #[avr_skip] + pub extern "C" fn __lesf2(a: f32, b: f32) -> i32 { + cmp(a, b).to_le_abi() + } + + #[avr_skip] + pub extern "C" fn __gesf2(a: f32, b: f32) -> i32 { + cmp(a, b).to_ge_abi() + } + + #[avr_skip] + #[arm_aeabi_alias = __aeabi_fcmpun] + pub extern "C" fn __unordsf2(a: f32, b: f32) -> i32 { + unord(a, b) as i32 + } + + #[avr_skip] + pub extern "C" fn __eqsf2(a: f32, b: f32) -> i32 { + cmp(a, b).to_le_abi() + } + + #[avr_skip] + pub extern "C" fn __ltsf2(a: f32, b: f32) -> i32 { + cmp(a, b).to_le_abi() + } + + #[avr_skip] + pub extern "C" fn __nesf2(a: f32, b: f32) -> i32 { + cmp(a, b).to_le_abi() + } + + #[avr_skip] + pub extern "C" fn __gtsf2(a: f32, b: f32) -> i32 { + cmp(a, b).to_ge_abi() + } + + #[avr_skip] + pub extern "C" fn __ledf2(a: f64, b: f64) -> i32 { + cmp(a, b).to_le_abi() + } + + #[avr_skip] + pub extern "C" fn __gedf2(a: f64, b: f64) -> i32 { + cmp(a, b).to_ge_abi() + } + + #[avr_skip] + #[arm_aeabi_alias = __aeabi_dcmpun] + pub extern "C" fn __unorddf2(a: f64, b: f64) -> i32 { + unord(a, b) as i32 + } + + #[avr_skip] + pub extern "C" fn __eqdf2(a: f64, b: f64) -> i32 { + cmp(a, b).to_le_abi() + } + + #[avr_skip] + pub extern "C" fn __ltdf2(a: f64, b: f64) -> i32 { + cmp(a, b).to_le_abi() + } + + #[avr_skip] + pub extern "C" fn __nedf2(a: f64, b: f64) -> i32 { + cmp(a, b).to_le_abi() + } + + #[avr_skip] + pub extern "C" fn __gtdf2(a: f64, b: f64) -> i32 { + cmp(a, b).to_ge_abi() + } +} + +#[cfg(target_arch = "arm")] +intrinsics! { + pub extern "aapcs" fn __aeabi_fcmple(a: f32, b: f32) -> i32 { + (__lesf2(a, b) <= 0) as i32 + } + + pub extern "aapcs" fn __aeabi_fcmpge(a: f32, b: f32) -> i32 { + (__gesf2(a, b) >= 0) as i32 + } + + pub extern "aapcs" fn __aeabi_fcmpeq(a: f32, b: f32) -> i32 { + (__eqsf2(a, b) == 0) as i32 + } + + pub extern "aapcs" fn __aeabi_fcmplt(a: f32, b: f32) -> i32 { + (__ltsf2(a, b) < 0) as i32 + } + + pub extern "aapcs" fn __aeabi_fcmpgt(a: f32, b: f32) -> i32 { + (__gtsf2(a, b) > 0) as i32 + } + + pub extern "aapcs" fn __aeabi_dcmple(a: f64, b: f64) -> i32 { + (__ledf2(a, b) <= 0) as i32 + } + + pub extern "aapcs" fn __aeabi_dcmpge(a: f64, b: f64) -> i32 { + (__gedf2(a, b) >= 0) as i32 + } + + pub extern "aapcs" fn __aeabi_dcmpeq(a: f64, b: f64) -> i32 { + (__eqdf2(a, b) == 0) as i32 + } + + pub extern "aapcs" fn __aeabi_dcmplt(a: f64, b: f64) -> i32 { + (__ltdf2(a, b) < 0) as i32 + } + + pub extern "aapcs" fn __aeabi_dcmpgt(a: f64, b: f64) -> i32 { + (__gtdf2(a, b) > 0) as i32 + } + + // On hard-float targets LLVM will use native instructions + // for all VFP intrinsics below + + pub extern "C" fn __gesf2vfp(a: f32, b: f32) -> i32 { + (a >= b) as i32 + } + + pub extern "C" fn __gedf2vfp(a: f64, b: f64) -> i32 { + (a >= b) as i32 + } + + pub extern "C" fn __gtsf2vfp(a: f32, b: f32) -> i32 { + (a > b) as i32 + } + + pub extern "C" fn __gtdf2vfp(a: f64, b: f64) -> i32 { + (a > b) as i32 + } + + pub extern "C" fn __ltsf2vfp(a: f32, b: f32) -> i32 { + (a < b) as i32 + } + + pub extern "C" fn __ltdf2vfp(a: f64, b: f64) -> i32 { + (a < b) as i32 + } + + pub extern "C" fn __lesf2vfp(a: f32, b: f32) -> i32 { + (a <= b) as i32 + } + + pub extern "C" fn __ledf2vfp(a: f64, b: f64) -> i32 { + (a <= b) as i32 + } + + pub extern "C" fn __nesf2vfp(a: f32, b: f32) -> i32 { + (a != b) as i32 + } + + pub extern "C" fn __nedf2vfp(a: f64, b: f64) -> i32 { + (a != b) as i32 + } + + pub extern "C" fn __eqsf2vfp(a: f32, b: f32) -> i32 { + (a == b) as i32 + } + + pub extern "C" fn __eqdf2vfp(a: f64, b: f64) -> i32 { + (a == b) as i32 + } +} diff --git a/src/rust/vendor/compiler_builtins/src/float/conv.rs b/src/rust/vendor/compiler_builtins/src/float/conv.rs new file mode 100644 index 000000000..790c0ab9f --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/float/conv.rs @@ -0,0 +1,347 @@ +/// Conversions from integers to floats. +/// +/// These are hand-optimized bit twiddling code, +/// which unfortunately isn't the easiest kind of code to read. +/// +/// The algorithm is explained here: +mod int_to_float { + pub fn u32_to_f32_bits(i: u32) -> u32 { + if i == 0 { + return 0; + } + let n = i.leading_zeros(); + let a = (i << n) >> 8; // Significant bits, with bit 24 still in tact. + let b = (i << n) << 24; // Insignificant bits, only relevant for rounding. + let m = a + ((b - (b >> 31 & !a)) >> 31); // Add one when we need to round up. Break ties to even. + let e = 157 - n; // Exponent plus 127, minus one. + (e << 23) + m // + not |, so the mantissa can overflow into the exponent. + } + + pub fn u32_to_f64_bits(i: u32) -> u64 { + if i == 0 { + return 0; + } + let n = i.leading_zeros(); + let m = (i as u64) << (21 + n); // Significant bits, with bit 53 still in tact. + let e = 1053 - n as u64; // Exponent plus 1023, minus one. + (e << 52) + m // Bit 53 of m will overflow into e. + } + + pub fn u64_to_f32_bits(i: u64) -> u32 { + let n = i.leading_zeros(); + let y = i.wrapping_shl(n); + let a = (y >> 40) as u32; // Significant bits, with bit 24 still in tact. + let b = (y >> 8 | y & 0xFFFF) as u32; // Insignificant bits, only relevant for rounding. + let m = a + ((b - (b >> 31 & !a)) >> 31); // Add one when we need to round up. Break ties to even. + let e = if i == 0 { 0 } else { 189 - n }; // Exponent plus 127, minus one, except for zero. + (e << 23) + m // + not |, so the mantissa can overflow into the exponent. + } + + pub fn u64_to_f64_bits(i: u64) -> u64 { + if i == 0 { + return 0; + } + let n = i.leading_zeros(); + let a = (i << n) >> 11; // Significant bits, with bit 53 still in tact. + let b = (i << n) << 53; // Insignificant bits, only relevant for rounding. + let m = a + ((b - (b >> 63 & !a)) >> 63); // Add one when we need to round up. Break ties to even. + let e = 1085 - n as u64; // Exponent plus 1023, minus one. + (e << 52) + m // + not |, so the mantissa can overflow into the exponent. + } + + pub fn u128_to_f32_bits(i: u128) -> u32 { + let n = i.leading_zeros(); + let y = i.wrapping_shl(n); + let a = (y >> 104) as u32; // Significant bits, with bit 24 still in tact. + let b = (y >> 72) as u32 | ((y << 32) >> 32 != 0) as u32; // Insignificant bits, only relevant for rounding. + let m = a + ((b - (b >> 31 & !a)) >> 31); // Add one when we need to round up. Break ties to even. + let e = if i == 0 { 0 } else { 253 - n }; // Exponent plus 127, minus one, except for zero. + (e << 23) + m // + not |, so the mantissa can overflow into the exponent. + } + + pub fn u128_to_f64_bits(i: u128) -> u64 { + let n = i.leading_zeros(); + let y = i.wrapping_shl(n); + let a = (y >> 75) as u64; // Significant bits, with bit 53 still in tact. + let b = (y >> 11 | y & 0xFFFF_FFFF) as u64; // Insignificant bits, only relevant for rounding. + let m = a + ((b - (b >> 63 & !a)) >> 63); // Add one when we need to round up. Break ties to even. + let e = if i == 0 { 0 } else { 1149 - n as u64 }; // Exponent plus 1023, minus one, except for zero. + (e << 52) + m // + not |, so the mantissa can overflow into the exponent. + } +} + +// Conversions from unsigned integers to floats. +intrinsics! { + #[arm_aeabi_alias = __aeabi_ui2f] + pub extern "C" fn __floatunsisf(i: u32) -> f32 { + f32::from_bits(int_to_float::u32_to_f32_bits(i)) + } + + #[arm_aeabi_alias = __aeabi_ui2d] + pub extern "C" fn __floatunsidf(i: u32) -> f64 { + f64::from_bits(int_to_float::u32_to_f64_bits(i)) + } + + #[arm_aeabi_alias = __aeabi_ul2f] + pub extern "C" fn __floatundisf(i: u64) -> f32 { + f32::from_bits(int_to_float::u64_to_f32_bits(i)) + } + + #[arm_aeabi_alias = __aeabi_ul2d] + pub extern "C" fn __floatundidf(i: u64) -> f64 { + f64::from_bits(int_to_float::u64_to_f64_bits(i)) + } + + #[cfg_attr(target_os = "uefi", unadjusted_on_win64)] + pub extern "C" fn __floatuntisf(i: u128) -> f32 { + f32::from_bits(int_to_float::u128_to_f32_bits(i)) + } + + #[cfg_attr(target_os = "uefi", unadjusted_on_win64)] + pub extern "C" fn __floatuntidf(i: u128) -> f64 { + f64::from_bits(int_to_float::u128_to_f64_bits(i)) + } +} + +// Conversions from signed integers to floats. +intrinsics! { + #[arm_aeabi_alias = __aeabi_i2f] + pub extern "C" fn __floatsisf(i: i32) -> f32 { + let sign_bit = ((i >> 31) as u32) << 31; + f32::from_bits(int_to_float::u32_to_f32_bits(i.unsigned_abs()) | sign_bit) + } + + #[arm_aeabi_alias = __aeabi_i2d] + pub extern "C" fn __floatsidf(i: i32) -> f64 { + let sign_bit = ((i >> 31) as u64) << 63; + f64::from_bits(int_to_float::u32_to_f64_bits(i.unsigned_abs()) | sign_bit) + } + + #[arm_aeabi_alias = __aeabi_l2f] + pub extern "C" fn __floatdisf(i: i64) -> f32 { + let sign_bit = ((i >> 63) as u32) << 31; + f32::from_bits(int_to_float::u64_to_f32_bits(i.unsigned_abs()) | sign_bit) + } + + #[arm_aeabi_alias = __aeabi_l2d] + pub extern "C" fn __floatdidf(i: i64) -> f64 { + let sign_bit = ((i >> 63) as u64) << 63; + f64::from_bits(int_to_float::u64_to_f64_bits(i.unsigned_abs()) | sign_bit) + } + + #[cfg_attr(target_os = "uefi", unadjusted_on_win64)] + pub extern "C" fn __floattisf(i: i128) -> f32 { + let sign_bit = ((i >> 127) as u32) << 31; + f32::from_bits(int_to_float::u128_to_f32_bits(i.unsigned_abs()) | sign_bit) + } + + #[cfg_attr(target_os = "uefi", unadjusted_on_win64)] + pub extern "C" fn __floattidf(i: i128) -> f64 { + let sign_bit = ((i >> 127) as u64) << 63; + f64::from_bits(int_to_float::u128_to_f64_bits(i.unsigned_abs()) | sign_bit) + } +} + +// Conversions from floats to unsigned integers. +intrinsics! { + #[arm_aeabi_alias = __aeabi_f2uiz] + pub extern "C" fn __fixunssfsi(f: f32) -> u32 { + let fbits = f.to_bits(); + if fbits < 127 << 23 { // >= 0, < 1 + 0 + } else if fbits < 159 << 23 { // >= 1, < max + let m = 1 << 31 | fbits << 8; // Mantissa and the implicit 1-bit. + let s = 158 - (fbits >> 23); // Shift based on the exponent and bias. + m >> s + } else if fbits <= 255 << 23 { // >= max (incl. inf) + u32::MAX + } else { // Negative or NaN + 0 + } + } + + #[arm_aeabi_alias = __aeabi_f2ulz] + pub extern "C" fn __fixunssfdi(f: f32) -> u64 { + let fbits = f.to_bits(); + if fbits < 127 << 23 { // >= 0, < 1 + 0 + } else if fbits < 191 << 23 { // >= 1, < max + let m = 1 << 63 | (fbits as u64) << 40; // Mantissa and the implicit 1-bit. + let s = 190 - (fbits >> 23); // Shift based on the exponent and bias. + m >> s + } else if fbits <= 255 << 23 { // >= max (incl. inf) + u64::MAX + } else { // Negative or NaN + 0 + } + } + + #[win64_128bit_abi_hack] + pub extern "C" fn __fixunssfti(f: f32) -> u128 { + let fbits = f.to_bits(); + if fbits < 127 << 23 { // >= 0, < 1 + 0 + } else if fbits < 255 << 23 { // >= 1, < inf + let m = 1 << 127 | (fbits as u128) << 104; // Mantissa and the implicit 1-bit. + let s = 254 - (fbits >> 23); // Shift based on the exponent and bias. + m >> s + } else if fbits == 255 << 23 { // == inf + u128::MAX + } else { // Negative or NaN + 0 + } + } + + #[arm_aeabi_alias = __aeabi_d2uiz] + pub extern "C" fn __fixunsdfsi(f: f64) -> u32 { + let fbits = f.to_bits(); + if fbits < 1023 << 52 { // >= 0, < 1 + 0 + } else if fbits < 1055 << 52 { // >= 1, < max + let m = 1 << 31 | (fbits >> 21) as u32; // Mantissa and the implicit 1-bit. + let s = 1054 - (fbits >> 52); // Shift based on the exponent and bias. + m >> s + } else if fbits <= 2047 << 52 { // >= max (incl. inf) + u32::MAX + } else { // Negative or NaN + 0 + } + } + + #[arm_aeabi_alias = __aeabi_d2ulz] + pub extern "C" fn __fixunsdfdi(f: f64) -> u64 { + let fbits = f.to_bits(); + if fbits < 1023 << 52 { // >= 0, < 1 + 0 + } else if fbits < 1087 << 52 { // >= 1, < max + let m = 1 << 63 | fbits << 11; // Mantissa and the implicit 1-bit. + let s = 1086 - (fbits >> 52); // Shift based on the exponent and bias. + m >> s + } else if fbits <= 2047 << 52 { // >= max (incl. inf) + u64::MAX + } else { // Negative or NaN + 0 + } + } + + #[win64_128bit_abi_hack] + pub extern "C" fn __fixunsdfti(f: f64) -> u128 { + let fbits = f.to_bits(); + if fbits < 1023 << 52 { // >= 0, < 1 + 0 + } else if fbits < 1151 << 52 { // >= 1, < max + let m = 1 << 127 | (fbits as u128) << 75; // Mantissa and the implicit 1-bit. + let s = 1150 - (fbits >> 52); // Shift based on the exponent and bias. + m >> s + } else if fbits <= 2047 << 52 { // >= max (incl. inf) + u128::MAX + } else { // Negative or NaN + 0 + } + } +} + +// Conversions from floats to signed integers. +intrinsics! { + #[arm_aeabi_alias = __aeabi_f2iz] + pub extern "C" fn __fixsfsi(f: f32) -> i32 { + let fbits = f.to_bits() & !0 >> 1; // Remove sign bit. + if fbits < 127 << 23 { // >= 0, < 1 + 0 + } else if fbits < 158 << 23 { // >= 1, < max + let m = 1 << 31 | fbits << 8; // Mantissa and the implicit 1-bit. + let s = 158 - (fbits >> 23); // Shift based on the exponent and bias. + let u = (m >> s) as i32; // Unsigned result. + if f.is_sign_negative() { -u } else { u } + } else if fbits <= 255 << 23 { // >= max (incl. inf) + if f.is_sign_negative() { i32::MIN } else { i32::MAX } + } else { // NaN + 0 + } + } + + #[arm_aeabi_alias = __aeabi_f2lz] + pub extern "C" fn __fixsfdi(f: f32) -> i64 { + let fbits = f.to_bits() & !0 >> 1; // Remove sign bit. + if fbits < 127 << 23 { // >= 0, < 1 + 0 + } else if fbits < 190 << 23 { // >= 1, < max + let m = 1 << 63 | (fbits as u64) << 40; // Mantissa and the implicit 1-bit. + let s = 190 - (fbits >> 23); // Shift based on the exponent and bias. + let u = (m >> s) as i64; // Unsigned result. + if f.is_sign_negative() { -u } else { u } + } else if fbits <= 255 << 23 { // >= max (incl. inf) + if f.is_sign_negative() { i64::MIN } else { i64::MAX } + } else { // NaN + 0 + } + } + + #[win64_128bit_abi_hack] + pub extern "C" fn __fixsfti(f: f32) -> i128 { + let fbits = f.to_bits() & !0 >> 1; // Remove sign bit. + if fbits < 127 << 23 { // >= 0, < 1 + 0 + } else if fbits < 254 << 23 { // >= 1, < max + let m = 1 << 127 | (fbits as u128) << 104; // Mantissa and the implicit 1-bit. + let s = 254 - (fbits >> 23); // Shift based on the exponent and bias. + let u = (m >> s) as i128; // Unsigned result. + if f.is_sign_negative() { -u } else { u } + } else if fbits <= 255 << 23 { // >= max (incl. inf) + if f.is_sign_negative() { i128::MIN } else { i128::MAX } + } else { // NaN + 0 + } + } + + #[arm_aeabi_alias = __aeabi_d2iz] + pub extern "C" fn __fixdfsi(f: f64) -> i32 { + let fbits = f.to_bits() & !0 >> 1; // Remove sign bit. + if fbits < 1023 << 52 { // >= 0, < 1 + 0 + } else if fbits < 1054 << 52 { // >= 1, < max + let m = 1 << 31 | (fbits >> 21) as u32; // Mantissa and the implicit 1-bit. + let s = 1054 - (fbits >> 52); // Shift based on the exponent and bias. + let u = (m >> s) as i32; // Unsigned result. + if f.is_sign_negative() { -u } else { u } + } else if fbits <= 2047 << 52 { // >= max (incl. inf) + if f.is_sign_negative() { i32::MIN } else { i32::MAX } + } else { // NaN + 0 + } + } + + #[arm_aeabi_alias = __aeabi_d2lz] + pub extern "C" fn __fixdfdi(f: f64) -> i64 { + let fbits = f.to_bits() & !0 >> 1; // Remove sign bit. + if fbits < 1023 << 52 { // >= 0, < 1 + 0 + } else if fbits < 1086 << 52 { // >= 1, < max + let m = 1 << 63 | fbits << 11; // Mantissa and the implicit 1-bit. + let s = 1086 - (fbits >> 52); // Shift based on the exponent and bias. + let u = (m >> s) as i64; // Unsigned result. + if f.is_sign_negative() { -u } else { u } + } else if fbits <= 2047 << 52 { // >= max (incl. inf) + if f.is_sign_negative() { i64::MIN } else { i64::MAX } + } else { // NaN + 0 + } + } + + #[win64_128bit_abi_hack] + pub extern "C" fn __fixdfti(f: f64) -> i128 { + let fbits = f.to_bits() & !0 >> 1; // Remove sign bit. + if fbits < 1023 << 52 { // >= 0, < 1 + 0 + } else if fbits < 1150 << 52 { // >= 1, < max + let m = 1 << 127 | (fbits as u128) << 75; // Mantissa and the implicit 1-bit. + let s = 1150 - (fbits >> 52); // Shift based on the exponent and bias. + let u = (m >> s) as i128; // Unsigned result. + if f.is_sign_negative() { -u } else { u } + } else if fbits <= 2047 << 52 { // >= max (incl. inf) + if f.is_sign_negative() { i128::MIN } else { i128::MAX } + } else { // NaN + 0 + } + } +} diff --git a/src/rust/vendor/compiler_builtins/src/float/div.rs b/src/rust/vendor/compiler_builtins/src/float/div.rs new file mode 100644 index 000000000..d587fe4f9 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/float/div.rs @@ -0,0 +1,926 @@ +// The functions are complex with many branches, and explicit +// `return`s makes it clear where function exit points are +#![allow(clippy::needless_return)] + +use crate::float::Float; +use crate::int::{CastInto, DInt, HInt, Int}; + +fn div32(a: F, b: F) -> F +where + u32: CastInto, + F::Int: CastInto, + i32: CastInto, + F::Int: CastInto, + F::Int: HInt, + ::Int: core::ops::Mul, +{ + const NUMBER_OF_HALF_ITERATIONS: usize = 0; + const NUMBER_OF_FULL_ITERATIONS: usize = 3; + const USE_NATIVE_FULL_ITERATIONS: bool = true; + + let one = F::Int::ONE; + let zero = F::Int::ZERO; + let hw = F::BITS / 2; + let lo_mask = u32::MAX >> hw; + + let significand_bits = F::SIGNIFICAND_BITS; + let max_exponent = F::EXPONENT_MAX; + + let exponent_bias = F::EXPONENT_BIAS; + + let implicit_bit = F::IMPLICIT_BIT; + let significand_mask = F::SIGNIFICAND_MASK; + let sign_bit = F::SIGN_MASK as F::Int; + let abs_mask = sign_bit - one; + let exponent_mask = F::EXPONENT_MASK; + let inf_rep = exponent_mask; + let quiet_bit = implicit_bit >> 1; + let qnan_rep = exponent_mask | quiet_bit; + + #[inline(always)] + fn negate_u32(a: u32) -> u32 { + (::wrapping_neg(a as i32)) as u32 + } + + let a_rep = a.repr(); + let b_rep = b.repr(); + + let a_exponent = (a_rep >> significand_bits) & max_exponent.cast(); + let b_exponent = (b_rep >> significand_bits) & max_exponent.cast(); + let quotient_sign = (a_rep ^ b_rep) & sign_bit; + + let mut a_significand = a_rep & significand_mask; + let mut b_significand = b_rep & significand_mask; + let mut scale = 0; + + // Detect if a or b is zero, denormal, infinity, or NaN. + if a_exponent.wrapping_sub(one) >= (max_exponent - 1).cast() + || b_exponent.wrapping_sub(one) >= (max_exponent - 1).cast() + { + let a_abs = a_rep & abs_mask; + let b_abs = b_rep & abs_mask; + + // NaN / anything = qNaN + if a_abs > inf_rep { + return F::from_repr(a_rep | quiet_bit); + } + // anything / NaN = qNaN + if b_abs > inf_rep { + return F::from_repr(b_rep | quiet_bit); + } + + if a_abs == inf_rep { + if b_abs == inf_rep { + // infinity / infinity = NaN + return F::from_repr(qnan_rep); + } else { + // infinity / anything else = +/- infinity + return F::from_repr(a_abs | quotient_sign); + } + } + + // anything else / infinity = +/- 0 + if b_abs == inf_rep { + return F::from_repr(quotient_sign); + } + + if a_abs == zero { + if b_abs == zero { + // zero / zero = NaN + return F::from_repr(qnan_rep); + } else { + // zero / anything else = +/- zero + return F::from_repr(quotient_sign); + } + } + + // anything else / zero = +/- infinity + if b_abs == zero { + return F::from_repr(inf_rep | quotient_sign); + } + + // one or both of a or b is denormal, the other (if applicable) is a + // normal number. Renormalize one or both of a and b, and set scale to + // include the necessary exponent adjustment. + if a_abs < implicit_bit { + let (exponent, significand) = F::normalize(a_significand); + scale += exponent; + a_significand = significand; + } + + if b_abs < implicit_bit { + let (exponent, significand) = F::normalize(b_significand); + scale -= exponent; + b_significand = significand; + } + } + + // Set the implicit significand bit. If we fell through from the + // denormal path it was already set by normalize( ), but setting it twice + // won't hurt anything. + a_significand |= implicit_bit; + b_significand |= implicit_bit; + + let written_exponent: i32 = CastInto::::cast( + a_exponent + .wrapping_sub(b_exponent) + .wrapping_add(scale.cast()), + ) + .wrapping_add(exponent_bias) as i32; + let b_uq1 = b_significand << (F::BITS - significand_bits - 1); + + // Align the significand of b as a UQ1.(n-1) fixed-point number in the range + // [1.0, 2.0) and get a UQ0.n approximate reciprocal using a small minimax + // polynomial approximation: x0 = 3/4 + 1/sqrt(2) - b/2. + // The max error for this approximation is achieved at endpoints, so + // abs(x0(b) - 1/b) <= abs(x0(1) - 1/1) = 3/4 - 1/sqrt(2) = 0.04289..., + // which is about 4.5 bits. + // The initial approximation is between x0(1.0) = 0.9571... and x0(2.0) = 0.4571... + + // Then, refine the reciprocal estimate using a quadratically converging + // Newton-Raphson iteration: + // x_{n+1} = x_n * (2 - x_n * b) + // + // Let b be the original divisor considered "in infinite precision" and + // obtained from IEEE754 representation of function argument (with the + // implicit bit set). Corresponds to rep_t-sized b_UQ1 represented in + // UQ1.(W-1). + // + // Let b_hw be an infinitely precise number obtained from the highest (HW-1) + // bits of divisor significand (with the implicit bit set). Corresponds to + // half_rep_t-sized b_UQ1_hw represented in UQ1.(HW-1) that is a **truncated** + // version of b_UQ1. + // + // Let e_n := x_n - 1/b_hw + // E_n := x_n - 1/b + // abs(E_n) <= abs(e_n) + (1/b_hw - 1/b) + // = abs(e_n) + (b - b_hw) / (b*b_hw) + // <= abs(e_n) + 2 * 2^-HW + + // rep_t-sized iterations may be slower than the corresponding half-width + // variant depending on the handware and whether single/double/quad precision + // is selected. + // NB: Using half-width iterations increases computation errors due to + // rounding, so error estimations have to be computed taking the selected + // mode into account! + + #[allow(clippy::absurd_extreme_comparisons)] + let mut x_uq0 = if NUMBER_OF_HALF_ITERATIONS > 0 { + // Starting with (n-1) half-width iterations + let b_uq1_hw: u16 = + (CastInto::::cast(b_significand) >> (significand_bits + 1 - hw)) as u16; + + // C is (3/4 + 1/sqrt(2)) - 1 truncated to W0 fractional bits as UQ0.HW + // with W0 being either 16 or 32 and W0 <= HW. + // That is, C is the aforementioned 3/4 + 1/sqrt(2) constant (from which + // b/2 is subtracted to obtain x0) wrapped to [0, 1) range. + + // HW is at least 32. Shifting into the highest bits if needed. + let c_hw = (0x7504_u32 as u16).wrapping_shl(hw.wrapping_sub(32)); + + // b >= 1, thus an upper bound for 3/4 + 1/sqrt(2) - b/2 is about 0.9572, + // so x0 fits to UQ0.HW without wrapping. + let x_uq0_hw: u16 = { + let mut x_uq0_hw: u16 = c_hw.wrapping_sub(b_uq1_hw /* exact b_hw/2 as UQ0.HW */); + // An e_0 error is comprised of errors due to + // * x0 being an inherently imprecise first approximation of 1/b_hw + // * C_hw being some (irrational) number **truncated** to W0 bits + // Please note that e_0 is calculated against the infinitely precise + // reciprocal of b_hw (that is, **truncated** version of b). + // + // e_0 <= 3/4 - 1/sqrt(2) + 2^-W0 + + // By construction, 1 <= b < 2 + // f(x) = x * (2 - b*x) = 2*x - b*x^2 + // f'(x) = 2 * (1 - b*x) + // + // On the [0, 1] interval, f(0) = 0, + // then it increses until f(1/b) = 1 / b, maximum on (0, 1), + // then it decreses to f(1) = 2 - b + // + // Let g(x) = x - f(x) = b*x^2 - x. + // On (0, 1/b), g(x) < 0 <=> f(x) > x + // On (1/b, 1], g(x) > 0 <=> f(x) < x + // + // For half-width iterations, b_hw is used instead of b. + #[allow(clippy::reversed_empty_ranges)] + for _ in 0..NUMBER_OF_HALF_ITERATIONS { + // corr_UQ1_hw can be **larger** than 2 - b_hw*x by at most 1*Ulp + // of corr_UQ1_hw. + // "0.0 - (...)" is equivalent to "2.0 - (...)" in UQ1.(HW-1). + // On the other hand, corr_UQ1_hw should not overflow from 2.0 to 0.0 provided + // no overflow occurred earlier: ((rep_t)x_UQ0_hw * b_UQ1_hw >> HW) is + // expected to be strictly positive because b_UQ1_hw has its highest bit set + // and x_UQ0_hw should be rather large (it converges to 1/2 < 1/b_hw <= 1). + let corr_uq1_hw: u16 = + 0.wrapping_sub((x_uq0_hw as u32).wrapping_mul(b_uq1_hw.cast()) >> hw) as u16; + + // Now, we should multiply UQ0.HW and UQ1.(HW-1) numbers, naturally + // obtaining an UQ1.(HW-1) number and proving its highest bit could be + // considered to be 0 to be able to represent it in UQ0.HW. + // From the above analysis of f(x), if corr_UQ1_hw would be represented + // without any intermediate loss of precision (that is, in twice_rep_t) + // x_UQ0_hw could be at most [1.]000... if b_hw is exactly 1.0 and strictly + // less otherwise. On the other hand, to obtain [1.]000..., one have to pass + // 1/b_hw == 1.0 to f(x), so this cannot occur at all without overflow (due + // to 1.0 being not representable as UQ0.HW). + // The fact corr_UQ1_hw was virtually round up (due to result of + // multiplication being **first** truncated, then negated - to improve + // error estimations) can increase x_UQ0_hw by up to 2*Ulp of x_UQ0_hw. + x_uq0_hw = ((x_uq0_hw as u32).wrapping_mul(corr_uq1_hw as u32) >> (hw - 1)) as u16; + // Now, either no overflow occurred or x_UQ0_hw is 0 or 1 in its half_rep_t + // representation. In the latter case, x_UQ0_hw will be either 0 or 1 after + // any number of iterations, so just subtract 2 from the reciprocal + // approximation after last iteration. + + // In infinite precision, with 0 <= eps1, eps2 <= U = 2^-HW: + // corr_UQ1_hw = 2 - (1/b_hw + e_n) * b_hw + 2*eps1 + // = 1 - e_n * b_hw + 2*eps1 + // x_UQ0_hw = (1/b_hw + e_n) * (1 - e_n*b_hw + 2*eps1) - eps2 + // = 1/b_hw - e_n + 2*eps1/b_hw + e_n - e_n^2*b_hw + 2*e_n*eps1 - eps2 + // = 1/b_hw + 2*eps1/b_hw - e_n^2*b_hw + 2*e_n*eps1 - eps2 + // e_{n+1} = -e_n^2*b_hw + 2*eps1/b_hw + 2*e_n*eps1 - eps2 + // = 2*e_n*eps1 - (e_n^2*b_hw + eps2) + 2*eps1/b_hw + // \------ >0 -------/ \-- >0 ---/ + // abs(e_{n+1}) <= 2*abs(e_n)*U + max(2*e_n^2 + U, 2 * U) + } + // For initial half-width iterations, U = 2^-HW + // Let abs(e_n) <= u_n * U, + // then abs(e_{n+1}) <= 2 * u_n * U^2 + max(2 * u_n^2 * U^2 + U, 2 * U) + // u_{n+1} <= 2 * u_n * U + max(2 * u_n^2 * U + 1, 2) + + // Account for possible overflow (see above). For an overflow to occur for the + // first time, for "ideal" corr_UQ1_hw (that is, without intermediate + // truncation), the result of x_UQ0_hw * corr_UQ1_hw should be either maximum + // value representable in UQ0.HW or less by 1. This means that 1/b_hw have to + // be not below that value (see g(x) above), so it is safe to decrement just + // once after the final iteration. On the other hand, an effective value of + // divisor changes after this point (from b_hw to b), so adjust here. + x_uq0_hw.wrapping_sub(1_u16) + }; + + // Error estimations for full-precision iterations are calculated just + // as above, but with U := 2^-W and taking extra decrementing into account. + // We need at least one such iteration. + + // Simulating operations on a twice_rep_t to perform a single final full-width + // iteration. Using ad-hoc multiplication implementations to take advantage + // of particular structure of operands. + + let blo: u32 = (CastInto::::cast(b_uq1)) & lo_mask; + // x_UQ0 = x_UQ0_hw * 2^HW - 1 + // x_UQ0 * b_UQ1 = (x_UQ0_hw * 2^HW) * (b_UQ1_hw * 2^HW + blo) - b_UQ1 + // + // <--- higher half ---><--- lower half ---> + // [x_UQ0_hw * b_UQ1_hw] + // + [ x_UQ0_hw * blo ] + // - [ b_UQ1 ] + // = [ result ][.... discarded ...] + let corr_uq1 = negate_u32( + (x_uq0_hw as u32) * (b_uq1_hw as u32) + (((x_uq0_hw as u32) * (blo)) >> hw) - 1, + ); // account for *possible* carry + let lo_corr = corr_uq1 & lo_mask; + let hi_corr = corr_uq1 >> hw; + // x_UQ0 * corr_UQ1 = (x_UQ0_hw * 2^HW) * (hi_corr * 2^HW + lo_corr) - corr_UQ1 + let mut x_uq0: ::Int = ((((x_uq0_hw as u32) * hi_corr) << 1) + .wrapping_add(((x_uq0_hw as u32) * lo_corr) >> (hw - 1)) + .wrapping_sub(2)) + .cast(); // 1 to account for the highest bit of corr_UQ1 can be 1 + // 1 to account for possible carry + // Just like the case of half-width iterations but with possibility + // of overflowing by one extra Ulp of x_UQ0. + x_uq0 -= one; + // ... and then traditional fixup by 2 should work + + // On error estimation: + // abs(E_{N-1}) <= (u_{N-1} + 2 /* due to conversion e_n -> E_n */) * 2^-HW + // + (2^-HW + 2^-W)) + // abs(E_{N-1}) <= (u_{N-1} + 3.01) * 2^-HW + + // Then like for the half-width iterations: + // With 0 <= eps1, eps2 < 2^-W + // E_N = 4 * E_{N-1} * eps1 - (E_{N-1}^2 * b + 4 * eps2) + 4 * eps1 / b + // abs(E_N) <= 2^-W * [ 4 * abs(E_{N-1}) + max(2 * abs(E_{N-1})^2 * 2^W + 4, 8)) ] + // abs(E_N) <= 2^-W * [ 4 * (u_{N-1} + 3.01) * 2^-HW + max(4 + 2 * (u_{N-1} + 3.01)^2, 8) ] + x_uq0 + } else { + // C is (3/4 + 1/sqrt(2)) - 1 truncated to 32 fractional bits as UQ0.n + let c: ::Int = (0x7504F333 << (F::BITS - 32)).cast(); + let x_uq0: ::Int = c.wrapping_sub(b_uq1); + // E_0 <= 3/4 - 1/sqrt(2) + 2 * 2^-32 + x_uq0 + }; + + let mut x_uq0 = if USE_NATIVE_FULL_ITERATIONS { + for _ in 0..NUMBER_OF_FULL_ITERATIONS { + let corr_uq1: u32 = 0.wrapping_sub( + ((CastInto::::cast(x_uq0) as u64) * (CastInto::::cast(b_uq1) as u64)) + >> F::BITS, + ) as u32; + x_uq0 = ((((CastInto::::cast(x_uq0) as u64) * (corr_uq1 as u64)) >> (F::BITS - 1)) + as u32) + .cast(); + } + x_uq0 + } else { + // not using native full iterations + x_uq0 + }; + + // Finally, account for possible overflow, as explained above. + x_uq0 = x_uq0.wrapping_sub(2.cast()); + + // u_n for different precisions (with N-1 half-width iterations): + // W0 is the precision of C + // u_0 = (3/4 - 1/sqrt(2) + 2^-W0) * 2^HW + + // Estimated with bc: + // define half1(un) { return 2.0 * (un + un^2) / 2.0^hw + 1.0; } + // define half2(un) { return 2.0 * un / 2.0^hw + 2.0; } + // define full1(un) { return 4.0 * (un + 3.01) / 2.0^hw + 2.0 * (un + 3.01)^2 + 4.0; } + // define full2(un) { return 4.0 * (un + 3.01) / 2.0^hw + 8.0; } + + // | f32 (0 + 3) | f32 (2 + 1) | f64 (3 + 1) | f128 (4 + 1) + // u_0 | < 184224974 | < 2812.1 | < 184224974 | < 791240234244348797 + // u_1 | < 15804007 | < 242.7 | < 15804007 | < 67877681371350440 + // u_2 | < 116308 | < 2.81 | < 116308 | < 499533100252317 + // u_3 | < 7.31 | | < 7.31 | < 27054456580 + // u_4 | | | | < 80.4 + // Final (U_N) | same as u_3 | < 72 | < 218 | < 13920 + + // Add 2 to U_N due to final decrement. + + let reciprocal_precision: ::Int = 10.cast(); + + // Suppose 1/b - P * 2^-W < x < 1/b + P * 2^-W + let x_uq0 = x_uq0 - reciprocal_precision; + // Now 1/b - (2*P) * 2^-W < x < 1/b + // FIXME Is x_UQ0 still >= 0.5? + + let mut quotient: ::Int = x_uq0.widen_mul(a_significand << 1).hi(); + // Now, a/b - 4*P * 2^-W < q < a/b for q= in UQ1.(SB+1+W). + + // quotient_UQ1 is in [0.5, 2.0) as UQ1.(SB+1), + // adjust it to be in [1.0, 2.0) as UQ1.SB. + let (mut residual, written_exponent) = if quotient < (implicit_bit << 1) { + // Highest bit is 0, so just reinterpret quotient_UQ1 as UQ1.SB, + // effectively doubling its value as well as its error estimation. + let residual_lo = (a_significand << (significand_bits + 1)).wrapping_sub( + (CastInto::::cast(quotient).wrapping_mul(CastInto::::cast(b_significand))) + .cast(), + ); + a_significand <<= 1; + (residual_lo, written_exponent.wrapping_sub(1)) + } else { + // Highest bit is 1 (the UQ1.(SB+1) value is in [1, 2)), convert it + // to UQ1.SB by right shifting by 1. Least significant bit is omitted. + quotient >>= 1; + let residual_lo = (a_significand << significand_bits).wrapping_sub( + (CastInto::::cast(quotient).wrapping_mul(CastInto::::cast(b_significand))) + .cast(), + ); + (residual_lo, written_exponent) + }; + + //drop mutability + let quotient = quotient; + + // NB: residualLo is calculated above for the normal result case. + // It is re-computed on denormal path that is expected to be not so + // performance-sensitive. + + // Now, q cannot be greater than a/b and can differ by at most 8*P * 2^-W + 2^-SB + // Each NextAfter() increments the floating point value by at least 2^-SB + // (more, if exponent was incremented). + // Different cases (<---> is of 2^-SB length, * = a/b that is shown as a midpoint): + // q + // | | * | | | | | + // <---> 2^t + // | | | | | * | | + // q + // To require at most one NextAfter(), an error should be less than 1.5 * 2^-SB. + // (8*P) * 2^-W + 2^-SB < 1.5 * 2^-SB + // (8*P) * 2^-W < 0.5 * 2^-SB + // P < 2^(W-4-SB) + // Generally, for at most R NextAfter() to be enough, + // P < (2*R - 1) * 2^(W-4-SB) + // For f32 (0+3): 10 < 32 (OK) + // For f32 (2+1): 32 < 74 < 32 * 3, so two NextAfter() are required + // For f64: 220 < 256 (OK) + // For f128: 4096 * 3 < 13922 < 4096 * 5 (three NextAfter() are required) + + // If we have overflowed the exponent, return infinity + if written_exponent >= max_exponent as i32 { + return F::from_repr(inf_rep | quotient_sign); + } + + // Now, quotient <= the correctly-rounded result + // and may need taking NextAfter() up to 3 times (see error estimates above) + // r = a - b * q + let abs_result = if written_exponent > 0 { + let mut ret = quotient & significand_mask; + ret |= ((written_exponent as u32) << significand_bits).cast(); + residual <<= 1; + ret + } else { + if (significand_bits as i32 + written_exponent) < 0 { + return F::from_repr(quotient_sign); + } + let ret = quotient.wrapping_shr(negate_u32(CastInto::::cast(written_exponent)) + 1); + residual = (CastInto::::cast( + a_significand.wrapping_shl( + significand_bits.wrapping_add(CastInto::::cast(written_exponent)), + ), + ) + .wrapping_sub( + (CastInto::::cast(ret).wrapping_mul(CastInto::::cast(b_significand))) << 1, + )) + .cast(); + ret + }; + // Round + let abs_result = { + residual += abs_result & one; // tie to even + // The above line conditionally turns the below LT comparison into LTE + + if residual > b_significand { + abs_result + one + } else { + abs_result + } + }; + F::from_repr(abs_result | quotient_sign) +} + +fn div64(a: F, b: F) -> F +where + u32: CastInto, + F::Int: CastInto, + i32: CastInto, + F::Int: CastInto, + u64: CastInto, + F::Int: CastInto, + i64: CastInto, + F::Int: CastInto, + F::Int: HInt, +{ + const NUMBER_OF_HALF_ITERATIONS: usize = 3; + const NUMBER_OF_FULL_ITERATIONS: usize = 1; + const USE_NATIVE_FULL_ITERATIONS: bool = false; + + let one = F::Int::ONE; + let zero = F::Int::ZERO; + let hw = F::BITS / 2; + let lo_mask = u64::MAX >> hw; + + let significand_bits = F::SIGNIFICAND_BITS; + let max_exponent = F::EXPONENT_MAX; + + let exponent_bias = F::EXPONENT_BIAS; + + let implicit_bit = F::IMPLICIT_BIT; + let significand_mask = F::SIGNIFICAND_MASK; + let sign_bit = F::SIGN_MASK as F::Int; + let abs_mask = sign_bit - one; + let exponent_mask = F::EXPONENT_MASK; + let inf_rep = exponent_mask; + let quiet_bit = implicit_bit >> 1; + let qnan_rep = exponent_mask | quiet_bit; + + #[inline(always)] + fn negate_u64(a: u64) -> u64 { + (::wrapping_neg(a as i64)) as u64 + } + + let a_rep = a.repr(); + let b_rep = b.repr(); + + let a_exponent = (a_rep >> significand_bits) & max_exponent.cast(); + let b_exponent = (b_rep >> significand_bits) & max_exponent.cast(); + let quotient_sign = (a_rep ^ b_rep) & sign_bit; + + let mut a_significand = a_rep & significand_mask; + let mut b_significand = b_rep & significand_mask; + let mut scale = 0; + + // Detect if a or b is zero, denormal, infinity, or NaN. + if a_exponent.wrapping_sub(one) >= (max_exponent - 1).cast() + || b_exponent.wrapping_sub(one) >= (max_exponent - 1).cast() + { + let a_abs = a_rep & abs_mask; + let b_abs = b_rep & abs_mask; + + // NaN / anything = qNaN + if a_abs > inf_rep { + return F::from_repr(a_rep | quiet_bit); + } + // anything / NaN = qNaN + if b_abs > inf_rep { + return F::from_repr(b_rep | quiet_bit); + } + + if a_abs == inf_rep { + if b_abs == inf_rep { + // infinity / infinity = NaN + return F::from_repr(qnan_rep); + } else { + // infinity / anything else = +/- infinity + return F::from_repr(a_abs | quotient_sign); + } + } + + // anything else / infinity = +/- 0 + if b_abs == inf_rep { + return F::from_repr(quotient_sign); + } + + if a_abs == zero { + if b_abs == zero { + // zero / zero = NaN + return F::from_repr(qnan_rep); + } else { + // zero / anything else = +/- zero + return F::from_repr(quotient_sign); + } + } + + // anything else / zero = +/- infinity + if b_abs == zero { + return F::from_repr(inf_rep | quotient_sign); + } + + // one or both of a or b is denormal, the other (if applicable) is a + // normal number. Renormalize one or both of a and b, and set scale to + // include the necessary exponent adjustment. + if a_abs < implicit_bit { + let (exponent, significand) = F::normalize(a_significand); + scale += exponent; + a_significand = significand; + } + + if b_abs < implicit_bit { + let (exponent, significand) = F::normalize(b_significand); + scale -= exponent; + b_significand = significand; + } + } + + // Set the implicit significand bit. If we fell through from the + // denormal path it was already set by normalize( ), but setting it twice + // won't hurt anything. + a_significand |= implicit_bit; + b_significand |= implicit_bit; + + let written_exponent: i64 = CastInto::::cast( + a_exponent + .wrapping_sub(b_exponent) + .wrapping_add(scale.cast()), + ) + .wrapping_add(exponent_bias as u64) as i64; + let b_uq1 = b_significand << (F::BITS - significand_bits - 1); + + // Align the significand of b as a UQ1.(n-1) fixed-point number in the range + // [1.0, 2.0) and get a UQ0.n approximate reciprocal using a small minimax + // polynomial approximation: x0 = 3/4 + 1/sqrt(2) - b/2. + // The max error for this approximation is achieved at endpoints, so + // abs(x0(b) - 1/b) <= abs(x0(1) - 1/1) = 3/4 - 1/sqrt(2) = 0.04289..., + // which is about 4.5 bits. + // The initial approximation is between x0(1.0) = 0.9571... and x0(2.0) = 0.4571... + + // Then, refine the reciprocal estimate using a quadratically converging + // Newton-Raphson iteration: + // x_{n+1} = x_n * (2 - x_n * b) + // + // Let b be the original divisor considered "in infinite precision" and + // obtained from IEEE754 representation of function argument (with the + // implicit bit set). Corresponds to rep_t-sized b_UQ1 represented in + // UQ1.(W-1). + // + // Let b_hw be an infinitely precise number obtained from the highest (HW-1) + // bits of divisor significand (with the implicit bit set). Corresponds to + // half_rep_t-sized b_UQ1_hw represented in UQ1.(HW-1) that is a **truncated** + // version of b_UQ1. + // + // Let e_n := x_n - 1/b_hw + // E_n := x_n - 1/b + // abs(E_n) <= abs(e_n) + (1/b_hw - 1/b) + // = abs(e_n) + (b - b_hw) / (b*b_hw) + // <= abs(e_n) + 2 * 2^-HW + + // rep_t-sized iterations may be slower than the corresponding half-width + // variant depending on the handware and whether single/double/quad precision + // is selected. + // NB: Using half-width iterations increases computation errors due to + // rounding, so error estimations have to be computed taking the selected + // mode into account! + + let mut x_uq0 = if NUMBER_OF_HALF_ITERATIONS > 0 { + // Starting with (n-1) half-width iterations + let b_uq1_hw: u32 = + (CastInto::::cast(b_significand) >> (significand_bits + 1 - hw)) as u32; + + // C is (3/4 + 1/sqrt(2)) - 1 truncated to W0 fractional bits as UQ0.HW + // with W0 being either 16 or 32 and W0 <= HW. + // That is, C is the aforementioned 3/4 + 1/sqrt(2) constant (from which + // b/2 is subtracted to obtain x0) wrapped to [0, 1) range. + + // HW is at least 32. Shifting into the highest bits if needed. + let c_hw = (0x7504F333_u64 as u32).wrapping_shl(hw.wrapping_sub(32)); + + // b >= 1, thus an upper bound for 3/4 + 1/sqrt(2) - b/2 is about 0.9572, + // so x0 fits to UQ0.HW without wrapping. + let x_uq0_hw: u32 = { + let mut x_uq0_hw: u32 = c_hw.wrapping_sub(b_uq1_hw /* exact b_hw/2 as UQ0.HW */); + // dbg!(x_uq0_hw); + // An e_0 error is comprised of errors due to + // * x0 being an inherently imprecise first approximation of 1/b_hw + // * C_hw being some (irrational) number **truncated** to W0 bits + // Please note that e_0 is calculated against the infinitely precise + // reciprocal of b_hw (that is, **truncated** version of b). + // + // e_0 <= 3/4 - 1/sqrt(2) + 2^-W0 + + // By construction, 1 <= b < 2 + // f(x) = x * (2 - b*x) = 2*x - b*x^2 + // f'(x) = 2 * (1 - b*x) + // + // On the [0, 1] interval, f(0) = 0, + // then it increses until f(1/b) = 1 / b, maximum on (0, 1), + // then it decreses to f(1) = 2 - b + // + // Let g(x) = x - f(x) = b*x^2 - x. + // On (0, 1/b), g(x) < 0 <=> f(x) > x + // On (1/b, 1], g(x) > 0 <=> f(x) < x + // + // For half-width iterations, b_hw is used instead of b. + for _ in 0..NUMBER_OF_HALF_ITERATIONS { + // corr_UQ1_hw can be **larger** than 2 - b_hw*x by at most 1*Ulp + // of corr_UQ1_hw. + // "0.0 - (...)" is equivalent to "2.0 - (...)" in UQ1.(HW-1). + // On the other hand, corr_UQ1_hw should not overflow from 2.0 to 0.0 provided + // no overflow occurred earlier: ((rep_t)x_UQ0_hw * b_UQ1_hw >> HW) is + // expected to be strictly positive because b_UQ1_hw has its highest bit set + // and x_UQ0_hw should be rather large (it converges to 1/2 < 1/b_hw <= 1). + let corr_uq1_hw: u32 = + 0.wrapping_sub(((x_uq0_hw as u64).wrapping_mul(b_uq1_hw as u64)) >> hw) as u32; + // dbg!(corr_uq1_hw); + + // Now, we should multiply UQ0.HW and UQ1.(HW-1) numbers, naturally + // obtaining an UQ1.(HW-1) number and proving its highest bit could be + // considered to be 0 to be able to represent it in UQ0.HW. + // From the above analysis of f(x), if corr_UQ1_hw would be represented + // without any intermediate loss of precision (that is, in twice_rep_t) + // x_UQ0_hw could be at most [1.]000... if b_hw is exactly 1.0 and strictly + // less otherwise. On the other hand, to obtain [1.]000..., one have to pass + // 1/b_hw == 1.0 to f(x), so this cannot occur at all without overflow (due + // to 1.0 being not representable as UQ0.HW). + // The fact corr_UQ1_hw was virtually round up (due to result of + // multiplication being **first** truncated, then negated - to improve + // error estimations) can increase x_UQ0_hw by up to 2*Ulp of x_UQ0_hw. + x_uq0_hw = ((x_uq0_hw as u64).wrapping_mul(corr_uq1_hw as u64) >> (hw - 1)) as u32; + // dbg!(x_uq0_hw); + // Now, either no overflow occurred or x_UQ0_hw is 0 or 1 in its half_rep_t + // representation. In the latter case, x_UQ0_hw will be either 0 or 1 after + // any number of iterations, so just subtract 2 from the reciprocal + // approximation after last iteration. + + // In infinite precision, with 0 <= eps1, eps2 <= U = 2^-HW: + // corr_UQ1_hw = 2 - (1/b_hw + e_n) * b_hw + 2*eps1 + // = 1 - e_n * b_hw + 2*eps1 + // x_UQ0_hw = (1/b_hw + e_n) * (1 - e_n*b_hw + 2*eps1) - eps2 + // = 1/b_hw - e_n + 2*eps1/b_hw + e_n - e_n^2*b_hw + 2*e_n*eps1 - eps2 + // = 1/b_hw + 2*eps1/b_hw - e_n^2*b_hw + 2*e_n*eps1 - eps2 + // e_{n+1} = -e_n^2*b_hw + 2*eps1/b_hw + 2*e_n*eps1 - eps2 + // = 2*e_n*eps1 - (e_n^2*b_hw + eps2) + 2*eps1/b_hw + // \------ >0 -------/ \-- >0 ---/ + // abs(e_{n+1}) <= 2*abs(e_n)*U + max(2*e_n^2 + U, 2 * U) + } + // For initial half-width iterations, U = 2^-HW + // Let abs(e_n) <= u_n * U, + // then abs(e_{n+1}) <= 2 * u_n * U^2 + max(2 * u_n^2 * U^2 + U, 2 * U) + // u_{n+1} <= 2 * u_n * U + max(2 * u_n^2 * U + 1, 2) + + // Account for possible overflow (see above). For an overflow to occur for the + // first time, for "ideal" corr_UQ1_hw (that is, without intermediate + // truncation), the result of x_UQ0_hw * corr_UQ1_hw should be either maximum + // value representable in UQ0.HW or less by 1. This means that 1/b_hw have to + // be not below that value (see g(x) above), so it is safe to decrement just + // once after the final iteration. On the other hand, an effective value of + // divisor changes after this point (from b_hw to b), so adjust here. + x_uq0_hw.wrapping_sub(1_u32) + }; + + // Error estimations for full-precision iterations are calculated just + // as above, but with U := 2^-W and taking extra decrementing into account. + // We need at least one such iteration. + + // Simulating operations on a twice_rep_t to perform a single final full-width + // iteration. Using ad-hoc multiplication implementations to take advantage + // of particular structure of operands. + let blo: u64 = (CastInto::::cast(b_uq1)) & lo_mask; + // x_UQ0 = x_UQ0_hw * 2^HW - 1 + // x_UQ0 * b_UQ1 = (x_UQ0_hw * 2^HW) * (b_UQ1_hw * 2^HW + blo) - b_UQ1 + // + // <--- higher half ---><--- lower half ---> + // [x_UQ0_hw * b_UQ1_hw] + // + [ x_UQ0_hw * blo ] + // - [ b_UQ1 ] + // = [ result ][.... discarded ...] + let corr_uq1 = negate_u64( + (x_uq0_hw as u64) * (b_uq1_hw as u64) + (((x_uq0_hw as u64) * (blo)) >> hw) - 1, + ); // account for *possible* carry + let lo_corr = corr_uq1 & lo_mask; + let hi_corr = corr_uq1 >> hw; + // x_UQ0 * corr_UQ1 = (x_UQ0_hw * 2^HW) * (hi_corr * 2^HW + lo_corr) - corr_UQ1 + let mut x_uq0: ::Int = ((((x_uq0_hw as u64) * hi_corr) << 1) + .wrapping_add(((x_uq0_hw as u64) * lo_corr) >> (hw - 1)) + .wrapping_sub(2)) + .cast(); // 1 to account for the highest bit of corr_UQ1 can be 1 + // 1 to account for possible carry + // Just like the case of half-width iterations but with possibility + // of overflowing by one extra Ulp of x_UQ0. + x_uq0 -= one; + // ... and then traditional fixup by 2 should work + + // On error estimation: + // abs(E_{N-1}) <= (u_{N-1} + 2 /* due to conversion e_n -> E_n */) * 2^-HW + // + (2^-HW + 2^-W)) + // abs(E_{N-1}) <= (u_{N-1} + 3.01) * 2^-HW + + // Then like for the half-width iterations: + // With 0 <= eps1, eps2 < 2^-W + // E_N = 4 * E_{N-1} * eps1 - (E_{N-1}^2 * b + 4 * eps2) + 4 * eps1 / b + // abs(E_N) <= 2^-W * [ 4 * abs(E_{N-1}) + max(2 * abs(E_{N-1})^2 * 2^W + 4, 8)) ] + // abs(E_N) <= 2^-W * [ 4 * (u_{N-1} + 3.01) * 2^-HW + max(4 + 2 * (u_{N-1} + 3.01)^2, 8) ] + x_uq0 + } else { + // C is (3/4 + 1/sqrt(2)) - 1 truncated to 64 fractional bits as UQ0.n + let c: ::Int = (0x7504F333 << (F::BITS - 32)).cast(); + let x_uq0: ::Int = c.wrapping_sub(b_uq1); + // E_0 <= 3/4 - 1/sqrt(2) + 2 * 2^-64 + x_uq0 + }; + + let mut x_uq0 = if USE_NATIVE_FULL_ITERATIONS { + for _ in 0..NUMBER_OF_FULL_ITERATIONS { + let corr_uq1: u64 = 0.wrapping_sub( + (CastInto::::cast(x_uq0) * (CastInto::::cast(b_uq1))) >> F::BITS, + ); + x_uq0 = ((((CastInto::::cast(x_uq0) as u128) * (corr_uq1 as u128)) + >> (F::BITS - 1)) as u64) + .cast(); + } + x_uq0 + } else { + // not using native full iterations + x_uq0 + }; + + // Finally, account for possible overflow, as explained above. + x_uq0 = x_uq0.wrapping_sub(2.cast()); + + // u_n for different precisions (with N-1 half-width iterations): + // W0 is the precision of C + // u_0 = (3/4 - 1/sqrt(2) + 2^-W0) * 2^HW + + // Estimated with bc: + // define half1(un) { return 2.0 * (un + un^2) / 2.0^hw + 1.0; } + // define half2(un) { return 2.0 * un / 2.0^hw + 2.0; } + // define full1(un) { return 4.0 * (un + 3.01) / 2.0^hw + 2.0 * (un + 3.01)^2 + 4.0; } + // define full2(un) { return 4.0 * (un + 3.01) / 2.0^hw + 8.0; } + + // | f32 (0 + 3) | f32 (2 + 1) | f64 (3 + 1) | f128 (4 + 1) + // u_0 | < 184224974 | < 2812.1 | < 184224974 | < 791240234244348797 + // u_1 | < 15804007 | < 242.7 | < 15804007 | < 67877681371350440 + // u_2 | < 116308 | < 2.81 | < 116308 | < 499533100252317 + // u_3 | < 7.31 | | < 7.31 | < 27054456580 + // u_4 | | | | < 80.4 + // Final (U_N) | same as u_3 | < 72 | < 218 | < 13920 + + // Add 2 to U_N due to final decrement. + + let reciprocal_precision: ::Int = 220.cast(); + + // Suppose 1/b - P * 2^-W < x < 1/b + P * 2^-W + let x_uq0 = x_uq0 - reciprocal_precision; + // Now 1/b - (2*P) * 2^-W < x < 1/b + // FIXME Is x_UQ0 still >= 0.5? + + let mut quotient: ::Int = x_uq0.widen_mul(a_significand << 1).hi(); + // Now, a/b - 4*P * 2^-W < q < a/b for q= in UQ1.(SB+1+W). + + // quotient_UQ1 is in [0.5, 2.0) as UQ1.(SB+1), + // adjust it to be in [1.0, 2.0) as UQ1.SB. + let (mut residual, written_exponent) = if quotient < (implicit_bit << 1) { + // Highest bit is 0, so just reinterpret quotient_UQ1 as UQ1.SB, + // effectively doubling its value as well as its error estimation. + let residual_lo = (a_significand << (significand_bits + 1)).wrapping_sub( + (CastInto::::cast(quotient).wrapping_mul(CastInto::::cast(b_significand))) + .cast(), + ); + a_significand <<= 1; + (residual_lo, written_exponent.wrapping_sub(1)) + } else { + // Highest bit is 1 (the UQ1.(SB+1) value is in [1, 2)), convert it + // to UQ1.SB by right shifting by 1. Least significant bit is omitted. + quotient >>= 1; + let residual_lo = (a_significand << significand_bits).wrapping_sub( + (CastInto::::cast(quotient).wrapping_mul(CastInto::::cast(b_significand))) + .cast(), + ); + (residual_lo, written_exponent) + }; + + //drop mutability + let quotient = quotient; + + // NB: residualLo is calculated above for the normal result case. + // It is re-computed on denormal path that is expected to be not so + // performance-sensitive. + + // Now, q cannot be greater than a/b and can differ by at most 8*P * 2^-W + 2^-SB + // Each NextAfter() increments the floating point value by at least 2^-SB + // (more, if exponent was incremented). + // Different cases (<---> is of 2^-SB length, * = a/b that is shown as a midpoint): + // q + // | | * | | | | | + // <---> 2^t + // | | | | | * | | + // q + // To require at most one NextAfter(), an error should be less than 1.5 * 2^-SB. + // (8*P) * 2^-W + 2^-SB < 1.5 * 2^-SB + // (8*P) * 2^-W < 0.5 * 2^-SB + // P < 2^(W-4-SB) + // Generally, for at most R NextAfter() to be enough, + // P < (2*R - 1) * 2^(W-4-SB) + // For f32 (0+3): 10 < 32 (OK) + // For f32 (2+1): 32 < 74 < 32 * 3, so two NextAfter() are required + // For f64: 220 < 256 (OK) + // For f128: 4096 * 3 < 13922 < 4096 * 5 (three NextAfter() are required) + + // If we have overflowed the exponent, return infinity + if written_exponent >= max_exponent as i64 { + return F::from_repr(inf_rep | quotient_sign); + } + + // Now, quotient <= the correctly-rounded result + // and may need taking NextAfter() up to 3 times (see error estimates above) + // r = a - b * q + let abs_result = if written_exponent > 0 { + let mut ret = quotient & significand_mask; + ret |= ((written_exponent as u64) << significand_bits).cast(); + residual <<= 1; + ret + } else { + if (significand_bits as i64 + written_exponent) < 0 { + return F::from_repr(quotient_sign); + } + let ret = + quotient.wrapping_shr((negate_u64(CastInto::::cast(written_exponent)) + 1) as u32); + residual = (CastInto::::cast( + a_significand.wrapping_shl( + significand_bits.wrapping_add(CastInto::::cast(written_exponent)), + ), + ) + .wrapping_sub( + (CastInto::::cast(ret).wrapping_mul(CastInto::::cast(b_significand))) << 1, + )) + .cast(); + ret + }; + // Round + let abs_result = { + residual += abs_result & one; // tie to even + // conditionally turns the below LT comparison into LTE + if residual > b_significand { + abs_result + one + } else { + abs_result + } + }; + F::from_repr(abs_result | quotient_sign) +} + +intrinsics! { + #[avr_skip] + #[arm_aeabi_alias = __aeabi_fdiv] + pub extern "C" fn __divsf3(a: f32, b: f32) -> f32 { + div32(a, b) + } + + #[avr_skip] + #[arm_aeabi_alias = __aeabi_ddiv] + pub extern "C" fn __divdf3(a: f64, b: f64) -> f64 { + div64(a, b) + } + + #[cfg(target_arch = "arm")] + pub extern "C" fn __divsf3vfp(a: f32, b: f32) -> f32 { + a / b + } + + #[cfg(target_arch = "arm")] + pub extern "C" fn __divdf3vfp(a: f64, b: f64) -> f64 { + a / b + } +} diff --git a/src/rust/vendor/compiler_builtins/src/float/extend.rs b/src/rust/vendor/compiler_builtins/src/float/extend.rs new file mode 100644 index 000000000..0e6673b9c --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/float/extend.rs @@ -0,0 +1,84 @@ +use crate::float::Float; +use crate::int::{CastInto, Int}; + +/// Generic conversion from a narrower to a wider IEEE-754 floating-point type +fn extend(a: F) -> R +where + F::Int: CastInto, + u64: CastInto, + u32: CastInto, + R::Int: CastInto, + R::Int: CastInto, + u64: CastInto, + F::Int: CastInto, +{ + let src_zero = F::Int::ZERO; + let src_one = F::Int::ONE; + let src_bits = F::BITS; + let src_sign_bits = F::SIGNIFICAND_BITS; + let src_exp_bias = F::EXPONENT_BIAS; + let src_min_normal = F::IMPLICIT_BIT; + let src_infinity = F::EXPONENT_MASK; + let src_sign_mask = F::SIGN_MASK as F::Int; + let src_abs_mask = src_sign_mask - src_one; + let src_qnan = F::SIGNIFICAND_MASK; + let src_nan_code = src_qnan - src_one; + + let dst_bits = R::BITS; + let dst_sign_bits = R::SIGNIFICAND_BITS; + let dst_inf_exp = R::EXPONENT_MAX; + let dst_exp_bias = R::EXPONENT_BIAS; + let dst_min_normal = R::IMPLICIT_BIT; + + let sign_bits_delta = dst_sign_bits - src_sign_bits; + let exp_bias_delta = dst_exp_bias - src_exp_bias; + let a_abs = a.repr() & src_abs_mask; + let mut abs_result = R::Int::ZERO; + + if a_abs.wrapping_sub(src_min_normal) < src_infinity.wrapping_sub(src_min_normal) { + // a is a normal number. + // Extend to the destination type by shifting the significand and + // exponent into the proper position and rebiasing the exponent. + let abs_dst: R::Int = a_abs.cast(); + let bias_dst: R::Int = exp_bias_delta.cast(); + abs_result = abs_dst.wrapping_shl(sign_bits_delta); + abs_result += bias_dst.wrapping_shl(dst_sign_bits); + } else if a_abs >= src_infinity { + // a is NaN or infinity. + // Conjure the result by beginning with infinity, then setting the qNaN + // bit (if needed) and right-aligning the rest of the trailing NaN + // payload field. + let qnan_dst: R::Int = (a_abs & src_qnan).cast(); + let nan_code_dst: R::Int = (a_abs & src_nan_code).cast(); + let inf_exp_dst: R::Int = dst_inf_exp.cast(); + abs_result = inf_exp_dst.wrapping_shl(dst_sign_bits); + abs_result |= qnan_dst.wrapping_shl(sign_bits_delta); + abs_result |= nan_code_dst.wrapping_shl(sign_bits_delta); + } else if a_abs != src_zero { + // a is denormal. + // Renormalize the significand and clear the leading bit, then insert + // the correct adjusted exponent in the destination type. + let scale = a_abs.leading_zeros() - src_min_normal.leading_zeros(); + let abs_dst: R::Int = a_abs.cast(); + let bias_dst: R::Int = (exp_bias_delta - scale + 1).cast(); + abs_result = abs_dst.wrapping_shl(sign_bits_delta + scale); + abs_result = (abs_result ^ dst_min_normal) | (bias_dst.wrapping_shl(dst_sign_bits)); + } + + let sign_result: R::Int = (a.repr() & src_sign_mask).cast(); + R::from_repr(abs_result | (sign_result.wrapping_shl(dst_bits - src_bits))) +} + +intrinsics! { + #[avr_skip] + #[aapcs_on_arm] + #[arm_aeabi_alias = __aeabi_f2d] + pub extern "C" fn __extendsfdf2(a: f32) -> f64 { + extend(a) + } + + #[cfg(target_arch = "arm")] + pub extern "C" fn __extendsfdf2vfp(a: f32) -> f64 { + a as f64 // LLVM generate 'fcvtds' + } +} diff --git a/src/rust/vendor/compiler_builtins/src/float/mod.rs b/src/rust/vendor/compiler_builtins/src/float/mod.rs new file mode 100644 index 000000000..fdbe9dde3 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/float/mod.rs @@ -0,0 +1,175 @@ +use core::ops; + +use super::int::Int; + +pub mod add; +pub mod cmp; +pub mod conv; +pub mod div; +pub mod extend; +pub mod mul; +pub mod pow; +pub mod sub; +pub mod trunc; + +public_test_dep! { +/// Trait for some basic operations on floats +pub(crate) trait Float: + Copy + + core::fmt::Debug + + PartialEq + + PartialOrd + + ops::AddAssign + + ops::MulAssign + + ops::Add + + ops::Sub + + ops::Div + + ops::Rem +{ + /// A uint of the same width as the float + type Int: Int; + + /// A int of the same width as the float + type SignedInt: Int; + + /// An int capable of containing the exponent bits plus a sign bit. This is signed. + type ExpInt: Int; + + const ZERO: Self; + const ONE: Self; + + /// The bitwidth of the float type + const BITS: u32; + + /// The bitwidth of the significand + const SIGNIFICAND_BITS: u32; + + /// The bitwidth of the exponent + const EXPONENT_BITS: u32 = Self::BITS - Self::SIGNIFICAND_BITS - 1; + + /// The maximum value of the exponent + const EXPONENT_MAX: u32 = (1 << Self::EXPONENT_BITS) - 1; + + /// The exponent bias value + const EXPONENT_BIAS: u32 = Self::EXPONENT_MAX >> 1; + + /// A mask for the sign bit + const SIGN_MASK: Self::Int; + + /// A mask for the significand + const SIGNIFICAND_MASK: Self::Int; + + // The implicit bit of the float format + const IMPLICIT_BIT: Self::Int; + + /// A mask for the exponent + const EXPONENT_MASK: Self::Int; + + /// Returns `self` transmuted to `Self::Int` + fn repr(self) -> Self::Int; + + /// Returns `self` transmuted to `Self::SignedInt` + fn signed_repr(self) -> Self::SignedInt; + + /// Checks if two floats have the same bit representation. *Except* for NaNs! NaN can be + /// represented in multiple different ways. This method returns `true` if two NaNs are + /// compared. + fn eq_repr(self, rhs: Self) -> bool; + + /// Returns the sign bit + fn sign(self) -> bool; + + /// Returns the exponent with bias + fn exp(self) -> Self::ExpInt; + + /// Returns the significand with no implicit bit (or the "fractional" part) + fn frac(self) -> Self::Int; + + /// Returns the significand with implicit bit + fn imp_frac(self) -> Self::Int; + + /// Returns a `Self::Int` transmuted back to `Self` + fn from_repr(a: Self::Int) -> Self; + + /// Constructs a `Self` from its parts. Inputs are treated as bits and shifted into position. + fn from_parts(sign: bool, exponent: Self::Int, significand: Self::Int) -> Self; + + /// Returns (normalized exponent, normalized significand) + fn normalize(significand: Self::Int) -> (i32, Self::Int); + + /// Returns if `self` is subnormal + fn is_subnormal(self) -> bool; +} +} + +macro_rules! float_impl { + ($ty:ident, $ity:ident, $sity:ident, $expty:ident, $bits:expr, $significand_bits:expr) => { + impl Float for $ty { + type Int = $ity; + type SignedInt = $sity; + type ExpInt = $expty; + + const ZERO: Self = 0.0; + const ONE: Self = 1.0; + + const BITS: u32 = $bits; + const SIGNIFICAND_BITS: u32 = $significand_bits; + + const SIGN_MASK: Self::Int = 1 << (Self::BITS - 1); + const SIGNIFICAND_MASK: Self::Int = (1 << Self::SIGNIFICAND_BITS) - 1; + const IMPLICIT_BIT: Self::Int = 1 << Self::SIGNIFICAND_BITS; + const EXPONENT_MASK: Self::Int = !(Self::SIGN_MASK | Self::SIGNIFICAND_MASK); + + fn repr(self) -> Self::Int { + self.to_bits() + } + fn signed_repr(self) -> Self::SignedInt { + self.to_bits() as Self::SignedInt + } + fn eq_repr(self, rhs: Self) -> bool { + if self.is_nan() && rhs.is_nan() { + true + } else { + self.repr() == rhs.repr() + } + } + fn sign(self) -> bool { + self.signed_repr() < Self::SignedInt::ZERO + } + fn exp(self) -> Self::ExpInt { + ((self.to_bits() & Self::EXPONENT_MASK) >> Self::SIGNIFICAND_BITS) as Self::ExpInt + } + fn frac(self) -> Self::Int { + self.to_bits() & Self::SIGNIFICAND_MASK + } + fn imp_frac(self) -> Self::Int { + self.frac() | Self::IMPLICIT_BIT + } + fn from_repr(a: Self::Int) -> Self { + Self::from_bits(a) + } + fn from_parts(sign: bool, exponent: Self::Int, significand: Self::Int) -> Self { + Self::from_repr( + ((sign as Self::Int) << (Self::BITS - 1)) + | ((exponent << Self::SIGNIFICAND_BITS) & Self::EXPONENT_MASK) + | (significand & Self::SIGNIFICAND_MASK), + ) + } + fn normalize(significand: Self::Int) -> (i32, Self::Int) { + let shift = significand + .leading_zeros() + .wrapping_sub((Self::Int::ONE << Self::SIGNIFICAND_BITS).leading_zeros()); + ( + 1i32.wrapping_sub(shift as i32), + significand << shift as Self::Int, + ) + } + fn is_subnormal(self) -> bool { + (self.repr() & Self::EXPONENT_MASK) == Self::Int::ZERO + } + } + }; +} + +float_impl!(f32, u32, i32, i16, 32, 23); +float_impl!(f64, u64, i64, i16, 64, 52); diff --git a/src/rust/vendor/compiler_builtins/src/float/mul.rs b/src/rust/vendor/compiler_builtins/src/float/mul.rs new file mode 100644 index 000000000..378fa9701 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/float/mul.rs @@ -0,0 +1,211 @@ +use crate::float::Float; +use crate::int::{CastInto, DInt, HInt, Int}; + +fn mul(a: F, b: F) -> F +where + u32: CastInto, + F::Int: CastInto, + i32: CastInto, + F::Int: CastInto, + F::Int: HInt, +{ + let one = F::Int::ONE; + let zero = F::Int::ZERO; + + let bits = F::BITS; + let significand_bits = F::SIGNIFICAND_BITS; + let max_exponent = F::EXPONENT_MAX; + + let exponent_bias = F::EXPONENT_BIAS; + + let implicit_bit = F::IMPLICIT_BIT; + let significand_mask = F::SIGNIFICAND_MASK; + let sign_bit = F::SIGN_MASK as F::Int; + let abs_mask = sign_bit - one; + let exponent_mask = F::EXPONENT_MASK; + let inf_rep = exponent_mask; + let quiet_bit = implicit_bit >> 1; + let qnan_rep = exponent_mask | quiet_bit; + let exponent_bits = F::EXPONENT_BITS; + + let a_rep = a.repr(); + let b_rep = b.repr(); + + let a_exponent = (a_rep >> significand_bits) & max_exponent.cast(); + let b_exponent = (b_rep >> significand_bits) & max_exponent.cast(); + let product_sign = (a_rep ^ b_rep) & sign_bit; + + let mut a_significand = a_rep & significand_mask; + let mut b_significand = b_rep & significand_mask; + let mut scale = 0; + + // Detect if a or b is zero, denormal, infinity, or NaN. + if a_exponent.wrapping_sub(one) >= (max_exponent - 1).cast() + || b_exponent.wrapping_sub(one) >= (max_exponent - 1).cast() + { + let a_abs = a_rep & abs_mask; + let b_abs = b_rep & abs_mask; + + // NaN + anything = qNaN + if a_abs > inf_rep { + return F::from_repr(a_rep | quiet_bit); + } + // anything + NaN = qNaN + if b_abs > inf_rep { + return F::from_repr(b_rep | quiet_bit); + } + + if a_abs == inf_rep { + if b_abs != zero { + // infinity * non-zero = +/- infinity + return F::from_repr(a_abs | product_sign); + } else { + // infinity * zero = NaN + return F::from_repr(qnan_rep); + } + } + + if b_abs == inf_rep { + if a_abs != zero { + // infinity * non-zero = +/- infinity + return F::from_repr(b_abs | product_sign); + } else { + // infinity * zero = NaN + return F::from_repr(qnan_rep); + } + } + + // zero * anything = +/- zero + if a_abs == zero { + return F::from_repr(product_sign); + } + + // anything * zero = +/- zero + if b_abs == zero { + return F::from_repr(product_sign); + } + + // one or both of a or b is denormal, the other (if applicable) is a + // normal number. Renormalize one or both of a and b, and set scale to + // include the necessary exponent adjustment. + if a_abs < implicit_bit { + let (exponent, significand) = F::normalize(a_significand); + scale += exponent; + a_significand = significand; + } + + if b_abs < implicit_bit { + let (exponent, significand) = F::normalize(b_significand); + scale += exponent; + b_significand = significand; + } + } + + // Or in the implicit significand bit. (If we fell through from the + // denormal path it was already set by normalize( ), but setting it twice + // won't hurt anything.) + a_significand |= implicit_bit; + b_significand |= implicit_bit; + + // Get the significand of a*b. Before multiplying the significands, shift + // one of them left to left-align it in the field. Thus, the product will + // have (exponentBits + 2) integral digits, all but two of which must be + // zero. Normalizing this result is just a conditional left-shift by one + // and bumping the exponent accordingly. + let (mut product_low, mut product_high) = a_significand + .widen_mul(b_significand << exponent_bits) + .lo_hi(); + + let a_exponent_i32: i32 = a_exponent.cast(); + let b_exponent_i32: i32 = b_exponent.cast(); + let mut product_exponent: i32 = a_exponent_i32 + .wrapping_add(b_exponent_i32) + .wrapping_add(scale) + .wrapping_sub(exponent_bias as i32); + + // Normalize the significand, adjust exponent if needed. + if (product_high & implicit_bit) != zero { + product_exponent = product_exponent.wrapping_add(1); + } else { + product_high = (product_high << 1) | (product_low >> (bits - 1)); + product_low <<= 1; + } + + // If we have overflowed the type, return +/- infinity. + if product_exponent >= max_exponent as i32 { + return F::from_repr(inf_rep | product_sign); + } + + if product_exponent <= 0 { + // Result is denormal before rounding + // + // If the result is so small that it just underflows to zero, return + // a zero of the appropriate sign. Mathematically there is no need to + // handle this case separately, but we make it a special case to + // simplify the shift logic. + let shift = one.wrapping_sub(product_exponent.cast()).cast(); + if shift >= bits { + return F::from_repr(product_sign); + } + + // Otherwise, shift the significand of the result so that the round + // bit is the high bit of productLo. + if shift < bits { + let sticky = product_low << (bits - shift); + product_low = product_high << (bits - shift) | product_low >> shift | sticky; + product_high >>= shift; + } else if shift < (2 * bits) { + let sticky = product_high << (2 * bits - shift) | product_low; + product_low = product_high >> (shift - bits) | sticky; + product_high = zero; + } else { + product_high = zero; + } + } else { + // Result is normal before rounding; insert the exponent. + product_high &= significand_mask; + product_high |= product_exponent.cast() << significand_bits; + } + + // Insert the sign of the result: + product_high |= product_sign; + + // Final rounding. The final result may overflow to infinity, or underflow + // to zero, but those are the correct results in those cases. We use the + // default IEEE-754 round-to-nearest, ties-to-even rounding mode. + if product_low > sign_bit { + product_high += one; + } + + if product_low == sign_bit { + product_high += product_high & one; + } + + F::from_repr(product_high) +} + +intrinsics! { + #[avr_skip] + #[aapcs_on_arm] + #[arm_aeabi_alias = __aeabi_fmul] + pub extern "C" fn __mulsf3(a: f32, b: f32) -> f32 { + mul(a, b) + } + + #[avr_skip] + #[aapcs_on_arm] + #[arm_aeabi_alias = __aeabi_dmul] + pub extern "C" fn __muldf3(a: f64, b: f64) -> f64 { + mul(a, b) + } + + #[cfg(target_arch = "arm")] + pub extern "C" fn __mulsf3vfp(a: f32, b: f32) -> f32 { + a * b + } + + #[cfg(target_arch = "arm")] + pub extern "C" fn __muldf3vfp(a: f64, b: f64) -> f64 { + a * b + } +} diff --git a/src/rust/vendor/compiler_builtins/src/float/pow.rs b/src/rust/vendor/compiler_builtins/src/float/pow.rs new file mode 100644 index 000000000..3103fe6f6 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/float/pow.rs @@ -0,0 +1,38 @@ +use crate::float::Float; +use crate::int::Int; + +/// Returns `a` raised to the power `b` +fn pow(a: F, b: i32) -> F { + let mut a = a; + let recip = b < 0; + let mut pow = Int::abs_diff(b, 0); + let mut mul = F::ONE; + loop { + if (pow & 1) != 0 { + mul *= a; + } + pow >>= 1; + if pow == 0 { + break; + } + a *= a; + } + + if recip { + F::ONE / mul + } else { + mul + } +} + +intrinsics! { + #[avr_skip] + pub extern "C" fn __powisf2(a: f32, b: i32) -> f32 { + pow(a, b) + } + + #[avr_skip] + pub extern "C" fn __powidf2(a: f64, b: i32) -> f64 { + pow(a, b) + } +} diff --git a/src/rust/vendor/compiler_builtins/src/float/sub.rs b/src/rust/vendor/compiler_builtins/src/float/sub.rs new file mode 100644 index 000000000..64653ee25 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/float/sub.rs @@ -0,0 +1,27 @@ +use crate::float::add::__adddf3; +use crate::float::add::__addsf3; +use crate::float::Float; + +intrinsics! { + #[avr_skip] + #[arm_aeabi_alias = __aeabi_fsub] + pub extern "C" fn __subsf3(a: f32, b: f32) -> f32 { + __addsf3(a, f32::from_repr(b.repr() ^ f32::SIGN_MASK)) + } + + #[avr_skip] + #[arm_aeabi_alias = __aeabi_dsub] + pub extern "C" fn __subdf3(a: f64, b: f64) -> f64 { + __adddf3(a, f64::from_repr(b.repr() ^ f64::SIGN_MASK)) + } + + #[cfg(target_arch = "arm")] + pub extern "C" fn __subsf3vfp(a: f32, b: f32) -> f32 { + a - b + } + + #[cfg(target_arch = "arm")] + pub extern "C" fn __subdf3vfp(a: f64, b: f64) -> f64 { + a - b + } +} diff --git a/src/rust/vendor/compiler_builtins/src/float/trunc.rs b/src/rust/vendor/compiler_builtins/src/float/trunc.rs new file mode 100644 index 000000000..0beeb9f98 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/float/trunc.rs @@ -0,0 +1,126 @@ +use crate::float::Float; +use crate::int::{CastInto, Int}; + +fn trunc(a: F) -> R +where + F::Int: CastInto, + F::Int: CastInto, + u64: CastInto, + u32: CastInto, + + R::Int: CastInto, + u32: CastInto, + F::Int: CastInto, +{ + let src_zero = F::Int::ZERO; + let src_one = F::Int::ONE; + let src_bits = F::BITS; + let src_exp_bias = F::EXPONENT_BIAS; + + let src_min_normal = F::IMPLICIT_BIT; + let src_significand_mask = F::SIGNIFICAND_MASK; + let src_infinity = F::EXPONENT_MASK; + let src_sign_mask = F::SIGN_MASK; + let src_abs_mask = src_sign_mask - src_one; + let round_mask = (src_one << (F::SIGNIFICAND_BITS - R::SIGNIFICAND_BITS)) - src_one; + let halfway = src_one << (F::SIGNIFICAND_BITS - R::SIGNIFICAND_BITS - 1); + let src_qnan = src_one << (F::SIGNIFICAND_BITS - 1); + let src_nan_code = src_qnan - src_one; + + let dst_zero = R::Int::ZERO; + let dst_one = R::Int::ONE; + let dst_bits = R::BITS; + let dst_inf_exp = R::EXPONENT_MAX; + let dst_exp_bias = R::EXPONENT_BIAS; + + let underflow_exponent: F::Int = (src_exp_bias + 1 - dst_exp_bias).cast(); + let overflow_exponent: F::Int = (src_exp_bias + dst_inf_exp - dst_exp_bias).cast(); + let underflow: F::Int = underflow_exponent << F::SIGNIFICAND_BITS; + let overflow: F::Int = overflow_exponent << F::SIGNIFICAND_BITS; + + let dst_qnan = R::Int::ONE << (R::SIGNIFICAND_BITS - 1); + let dst_nan_code = dst_qnan - dst_one; + + let sign_bits_delta = F::SIGNIFICAND_BITS - R::SIGNIFICAND_BITS; + // Break a into a sign and representation of the absolute value. + let a_abs = a.repr() & src_abs_mask; + let sign = a.repr() & src_sign_mask; + let mut abs_result: R::Int; + + if a_abs.wrapping_sub(underflow) < a_abs.wrapping_sub(overflow) { + // The exponent of a is within the range of normal numbers in the + // destination format. We can convert by simply right-shifting with + // rounding and adjusting the exponent. + abs_result = (a_abs >> sign_bits_delta).cast(); + let tmp = src_exp_bias.wrapping_sub(dst_exp_bias) << R::SIGNIFICAND_BITS; + abs_result = abs_result.wrapping_sub(tmp.cast()); + + let round_bits = a_abs & round_mask; + if round_bits > halfway { + // Round to nearest. + abs_result += dst_one; + } else if round_bits == halfway { + // Tie to even. + abs_result += abs_result & dst_one; + }; + } else if a_abs > src_infinity { + // a is NaN. + // Conjure the result by beginning with infinity, setting the qNaN + // bit and inserting the (truncated) trailing NaN field. + abs_result = (dst_inf_exp << R::SIGNIFICAND_BITS).cast(); + abs_result |= dst_qnan; + abs_result |= dst_nan_code + & ((a_abs & src_nan_code) >> (F::SIGNIFICAND_BITS - R::SIGNIFICAND_BITS)).cast(); + } else if a_abs >= overflow { + // a overflows to infinity. + abs_result = (dst_inf_exp << R::SIGNIFICAND_BITS).cast(); + } else { + // a underflows on conversion to the destination type or is an exact + // zero. The result may be a denormal or zero. Extract the exponent + // to get the shift amount for the denormalization. + let a_exp: u32 = (a_abs >> F::SIGNIFICAND_BITS).cast(); + let shift = src_exp_bias - dst_exp_bias - a_exp + 1; + + let significand = (a.repr() & src_significand_mask) | src_min_normal; + + // Right shift by the denormalization amount with sticky. + if shift > F::SIGNIFICAND_BITS { + abs_result = dst_zero; + } else { + let sticky = if (significand << (src_bits - shift)) != src_zero { + src_one + } else { + src_zero + }; + let denormalized_significand: F::Int = significand >> shift | sticky; + abs_result = + (denormalized_significand >> (F::SIGNIFICAND_BITS - R::SIGNIFICAND_BITS)).cast(); + let round_bits = denormalized_significand & round_mask; + // Round to nearest + if round_bits > halfway { + abs_result += dst_one; + } + // Ties to even + else if round_bits == halfway { + abs_result += abs_result & dst_one; + }; + } + } + + // Apply the signbit to the absolute value. + R::from_repr(abs_result | sign.wrapping_shr(src_bits - dst_bits).cast()) +} + +intrinsics! { + #[avr_skip] + #[aapcs_on_arm] + #[arm_aeabi_alias = __aeabi_d2f] + pub extern "C" fn __truncdfsf2(a: f64) -> f32 { + trunc(a) + } + + #[cfg(target_arch = "arm")] + pub extern "C" fn __truncdfsf2vfp(a: f64) -> f32 { + a as f32 + } +} diff --git a/src/rust/vendor/compiler_builtins/src/hexagon.rs b/src/rust/vendor/compiler_builtins/src/hexagon.rs new file mode 100644 index 000000000..91cf91c31 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon.rs @@ -0,0 +1,55 @@ +#![cfg(not(feature = "no-asm"))] + +use core::arch::global_asm; + +global_asm!(include_str!("hexagon/func_macro.s"), options(raw)); + +global_asm!(include_str!("hexagon/dfaddsub.s"), options(raw)); + +global_asm!(include_str!("hexagon/dfdiv.s"), options(raw)); + +global_asm!(include_str!("hexagon/dffma.s"), options(raw)); + +global_asm!(include_str!("hexagon/dfminmax.s"), options(raw)); + +global_asm!(include_str!("hexagon/dfmul.s"), options(raw)); + +global_asm!(include_str!("hexagon/dfsqrt.s"), options(raw)); + +global_asm!(include_str!("hexagon/divdi3.s"), options(raw)); + +global_asm!(include_str!("hexagon/divsi3.s"), options(raw)); + +global_asm!(include_str!("hexagon/fastmath2_dlib_asm.s"), options(raw)); + +global_asm!(include_str!("hexagon/fastmath2_ldlib_asm.s"), options(raw)); + +global_asm!( + include_str!("hexagon/memcpy_forward_vp4cp4n2.s"), + options(raw) +); + +global_asm!( + include_str!("hexagon/memcpy_likely_aligned.s"), + options(raw) +); + +global_asm!(include_str!("hexagon/moddi3.s"), options(raw)); + +global_asm!(include_str!("hexagon/modsi3.s"), options(raw)); + +global_asm!(include_str!("hexagon/sfdiv_opt.s"), options(raw)); + +global_asm!(include_str!("hexagon/sfsqrt_opt.s"), options(raw)); + +global_asm!(include_str!("hexagon/udivdi3.s"), options(raw)); + +global_asm!(include_str!("hexagon/udivmoddi4.s"), options(raw)); + +global_asm!(include_str!("hexagon/udivmodsi4.s"), options(raw)); + +global_asm!(include_str!("hexagon/udivsi3.s"), options(raw)); + +global_asm!(include_str!("hexagon/umoddi3.s"), options(raw)); + +global_asm!(include_str!("hexagon/umodsi3.s"), options(raw)); diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/dfaddsub.s b/src/rust/vendor/compiler_builtins/src/hexagon/dfaddsub.s new file mode 100644 index 000000000..1f59e460b --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/dfaddsub.s @@ -0,0 +1,321 @@ + .text + .global __hexagon_adddf3 + .global __hexagon_subdf3 + .type __hexagon_adddf3, @function + .type __hexagon_subdf3, @function + +.global __qdsp_adddf3 ; .set __qdsp_adddf3, __hexagon_adddf3 +.global __hexagon_fast_adddf3 ; .set __hexagon_fast_adddf3, __hexagon_adddf3 +.global __hexagon_fast2_adddf3 ; .set __hexagon_fast2_adddf3, __hexagon_adddf3 +.global __qdsp_subdf3 ; .set __qdsp_subdf3, __hexagon_subdf3 +.global __hexagon_fast_subdf3 ; .set __hexagon_fast_subdf3, __hexagon_subdf3 +.global __hexagon_fast2_subdf3 ; .set __hexagon_fast2_subdf3, __hexagon_subdf3 + + .p2align 5 +__hexagon_adddf3: + { + r4 = extractu(r1,#11,#20) + r5 = extractu(r3,#11,#20) + r13:12 = combine(##0x20000000,#0) + } + { + p3 = dfclass(r1:0,#2) + p3 = dfclass(r3:2,#2) + r9:8 = r13:12 + p2 = cmp.gtu(r5,r4) + } + { + if (!p3) jump .Ladd_abnormal + if (p2) r1:0 = r3:2 + if (p2) r3:2 = r1:0 + if (p2) r5:4 = combine(r4,r5) + } + { + r13:12 = insert(r1:0,#52,#11 -2) + r9:8 = insert(r3:2,#52,#11 -2) + r15 = sub(r4,r5) + r7:6 = combine(#62,#1) + } + + + + + +.Ladd_continue: + { + r15 = min(r15,r7) + + r11:10 = neg(r13:12) + p2 = cmp.gt(r1,#-1) + r14 = #0 + } + { + if (!p2) r13:12 = r11:10 + r11:10 = extractu(r9:8,r15:14) + r9:8 = ASR(r9:8,r15) + + + + + r15:14 = #0 + } + { + p1 = cmp.eq(r11:10,r15:14) + if (!p1.new) r8 = or(r8,r6) + r5 = add(r4,#-1024 -60) + p3 = cmp.gt(r3,#-1) + } + { + r13:12 = add(r13:12,r9:8) + r11:10 = sub(r13:12,r9:8) + r7:6 = combine(#54,##2045) + } + { + p0 = cmp.gtu(r4,r7) + p0 = !cmp.gtu(r4,r6) + if (!p0.new) jump:nt .Ladd_ovf_unf + if (!p3) r13:12 = r11:10 + } + { + r1:0 = convert_d2df(r13:12) + p0 = cmp.eq(r13,#0) + p0 = cmp.eq(r12,#0) + if (p0.new) jump:nt .Ladd_zero + } + { + r1 += asl(r5,#20) + jumpr r31 + } + .falign +__hexagon_subdf3: + { + r3 = togglebit(r3,#31) + jump __qdsp_adddf3 + } + + + .falign +.Ladd_zero: + + + { + r28 = USR + r1:0 = #0 + r3 = #1 + } + { + r28 = extractu(r28,#2,#22) + r3 = asl(r3,#31) + } + { + p0 = cmp.eq(r28,#2) + if (p0.new) r1 = xor(r1,r3) + jumpr r31 + } + .falign +.Ladd_ovf_unf: + { + r1:0 = convert_d2df(r13:12) + p0 = cmp.eq(r13,#0) + p0 = cmp.eq(r12,#0) + if (p0.new) jump:nt .Ladd_zero + } + { + r28 = extractu(r1,#11,#20) + r1 += asl(r5,#20) + } + { + r5 = add(r5,r28) + r3:2 = combine(##0x00100000,#0) + } + { + p0 = cmp.gt(r5,##1024 +1024 -2) + if (p0.new) jump:nt .Ladd_ovf + } + { + p0 = cmp.gt(r5,#0) + if (p0.new) jumpr:t r31 + r28 = sub(#1,r5) + } + { + r3:2 = insert(r1:0,#52,#0) + r1:0 = r13:12 + } + { + r3:2 = lsr(r3:2,r28) + } + { + r1:0 = insert(r3:2,#63,#0) + jumpr r31 + } + .falign +.Ladd_ovf: + + { + r1:0 = r13:12 + r28 = USR + r13:12 = combine(##0x7fefffff,#-1) + } + { + r5 = extractu(r28,#2,#22) + r28 = or(r28,#0x28) + r9:8 = combine(##0x7ff00000,#0) + } + { + USR = r28 + r5 ^= lsr(r1,#31) + r28 = r5 + } + { + p0 = !cmp.eq(r28,#1) + p0 = !cmp.eq(r5,#2) + if (p0.new) r13:12 = r9:8 + } + { + r1:0 = insert(r13:12,#63,#0) + } + { + p0 = dfcmp.eq(r1:0,r1:0) + jumpr r31 + } + +.Ladd_abnormal: + { + r13:12 = extractu(r1:0,#63,#0) + r9:8 = extractu(r3:2,#63,#0) + } + { + p3 = cmp.gtu(r13:12,r9:8) + if (!p3.new) r1:0 = r3:2 + if (!p3.new) r3:2 = r1:0 + } + { + + p0 = dfclass(r1:0,#0x0f) + if (!p0.new) jump:nt .Linvalid_nan_add + if (!p3) r13:12 = r9:8 + if (!p3) r9:8 = r13:12 + } + { + + + p1 = dfclass(r1:0,#0x08) + if (p1.new) jump:nt .Linf_add + } + { + p2 = dfclass(r3:2,#0x01) + if (p2.new) jump:nt .LB_zero + r13:12 = #0 + } + + { + p0 = dfclass(r1:0,#4) + if (p0.new) jump:nt .Ladd_two_subnormal + r13:12 = combine(##0x20000000,#0) + } + { + r4 = extractu(r1,#11,#20) + r5 = #1 + + r9:8 = asl(r9:8,#11 -2) + } + + + + { + r13:12 = insert(r1:0,#52,#11 -2) + r15 = sub(r4,r5) + r7:6 = combine(#62,#1) + jump .Ladd_continue + } + +.Ladd_two_subnormal: + { + r13:12 = extractu(r1:0,#63,#0) + r9:8 = extractu(r3:2,#63,#0) + } + { + r13:12 = neg(r13:12) + r9:8 = neg(r9:8) + p0 = cmp.gt(r1,#-1) + p1 = cmp.gt(r3,#-1) + } + { + if (p0) r13:12 = r1:0 + if (p1) r9:8 = r3:2 + } + { + r13:12 = add(r13:12,r9:8) + } + { + r9:8 = neg(r13:12) + p0 = cmp.gt(r13,#-1) + r3:2 = #0 + } + { + if (!p0) r1:0 = r9:8 + if (p0) r1:0 = r13:12 + r3 = ##0x80000000 + } + { + if (!p0) r1 = or(r1,r3) + p0 = dfcmp.eq(r1:0,r3:2) + if (p0.new) jump:nt .Lzero_plus_zero + } + { + jumpr r31 + } + +.Linvalid_nan_add: + { + r28 = convert_df2sf(r1:0) + p0 = dfclass(r3:2,#0x0f) + if (p0.new) r3:2 = r1:0 + } + { + r2 = convert_df2sf(r3:2) + r1:0 = #-1 + jumpr r31 + } + .falign +.LB_zero: + { + p0 = dfcmp.eq(r13:12,r1:0) + if (!p0.new) jumpr:t r31 + } + + + + +.Lzero_plus_zero: + { + p0 = cmp.eq(r1:0,r3:2) + if (p0.new) jumpr:t r31 + } + { + r28 = USR + } + { + r28 = extractu(r28,#2,#22) + r1:0 = #0 + } + { + p0 = cmp.eq(r28,#2) + if (p0.new) r1 = ##0x80000000 + jumpr r31 + } +.Linf_add: + + { + p0 = !cmp.eq(r1,r3) + p0 = dfclass(r3:2,#8) + if (!p0.new) jumpr:t r31 + } + { + r2 = ##0x7f800001 + } + { + r1:0 = convert_sf2df(r2) + jumpr r31 + } +.size __hexagon_adddf3,.-__hexagon_adddf3 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/dfdiv.s b/src/rust/vendor/compiler_builtins/src/hexagon/dfdiv.s new file mode 100644 index 000000000..6d65dbfc4 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/dfdiv.s @@ -0,0 +1,372 @@ + .text + .global __hexagon_divdf3 + .type __hexagon_divdf3,@function + .global __qdsp_divdf3 ; .set __qdsp_divdf3, __hexagon_divdf3 + .global __hexagon_fast_divdf3 ; .set __hexagon_fast_divdf3, __hexagon_divdf3 + .global __hexagon_fast2_divdf3 ; .set __hexagon_fast2_divdf3, __hexagon_divdf3 + .p2align 5 +__hexagon_divdf3: + { + p2 = dfclass(r1:0,#0x02) + p2 = dfclass(r3:2,#0x02) + r13:12 = combine(r3,r1) + r28 = xor(r1,r3) + } + { + if (!p2) jump .Ldiv_abnormal + r7:6 = extractu(r3:2,#23,#52 -23) + r8 = ##0x3f800001 + } + { + r9 = or(r8,r6) + r13 = extractu(r13,#11,#52 -32) + r12 = extractu(r12,#11,#52 -32) + p3 = cmp.gt(r28,#-1) + } + + +.Ldenorm_continue: + { + r11,p0 = sfrecipa(r8,r9) + r10 = and(r8,#-2) + r28 = #1 + r12 = sub(r12,r13) + } + + + { + r10 -= sfmpy(r11,r9):lib + r1 = insert(r28,#11 +1,#52 -32) + r13 = ##0x00800000 << 3 + } + { + r11 += sfmpy(r11,r10):lib + r3 = insert(r28,#11 +1,#52 -32) + r10 = and(r8,#-2) + } + { + r10 -= sfmpy(r11,r9):lib + r5 = #-0x3ff +1 + r4 = #0x3ff -1 + } + { + r11 += sfmpy(r11,r10):lib + p1 = cmp.gt(r12,r5) + p1 = !cmp.gt(r12,r4) + } + { + r13 = insert(r11,#23,#3) + r5:4 = #0 + r12 = add(r12,#-61) + } + + + + + { + r13 = add(r13,#((-3) << 3)) + } + { r7:6 = mpyu(r13,r1); r1:0 = asl(r1:0,# ( 15 )); }; { r6 = # 0; r1:0 -= mpyu(r7,r2); r15:14 = mpyu(r7,r3); }; { r5:4 += ASL(r7:6, # ( 14 )); r1:0 -= asl(r15:14, # 32); } + { r7:6 = mpyu(r13,r1); r1:0 = asl(r1:0,# ( 15 )); }; { r6 = # 0; r1:0 -= mpyu(r7,r2); r15:14 = mpyu(r7,r3); }; { r5:4 += ASR(r7:6, # ( 1 )); r1:0 -= asl(r15:14, # 32); } + { r7:6 = mpyu(r13,r1); r1:0 = asl(r1:0,# ( 15 )); }; { r6 = # 0; r1:0 -= mpyu(r7,r2); r15:14 = mpyu(r7,r3); }; { r5:4 += ASR(r7:6, # ( 16 )); r1:0 -= asl(r15:14, # 32); } + { r7:6 = mpyu(r13,r1); r1:0 = asl(r1:0,# ( 15 )); }; { r6 = # 0; r1:0 -= mpyu(r7,r2); r15:14 = mpyu(r7,r3); }; { r5:4 += ASR(r7:6, # ( 31 )); r1:0 -= asl(r15:14, # 32); r7:6=# ( 0 ); } + + + + + + + + { + + r15:14 = sub(r1:0,r3:2) + p0 = cmp.gtu(r3:2,r1:0) + + if (!p0.new) r6 = #2 + } + { + r5:4 = add(r5:4,r7:6) + if (!p0) r1:0 = r15:14 + r15:14 = #0 + } + { + p0 = cmp.eq(r1:0,r15:14) + if (!p0.new) r4 = or(r4,r28) + } + { + r7:6 = neg(r5:4) + } + { + if (!p3) r5:4 = r7:6 + } + { + r1:0 = convert_d2df(r5:4) + if (!p1) jump .Ldiv_ovf_unf + } + { + r1 += asl(r12,#52 -32) + jumpr r31 + } + +.Ldiv_ovf_unf: + { + r1 += asl(r12,#52 -32) + r13 = extractu(r1,#11,#52 -32) + } + { + r7:6 = abs(r5:4) + r12 = add(r12,r13) + } + { + p0 = cmp.gt(r12,##0x3ff +0x3ff) + if (p0.new) jump:nt .Ldiv_ovf + } + { + p0 = cmp.gt(r12,#0) + if (p0.new) jump:nt .Lpossible_unf2 + } + { + r13 = add(clb(r7:6),#-1) + r12 = sub(#7,r12) + r10 = USR + r11 = #63 + } + { + r13 = min(r12,r11) + r11 = or(r10,#0x030) + r7:6 = asl(r7:6,r13) + r12 = #0 + } + { + r15:14 = extractu(r7:6,r13:12) + r7:6 = lsr(r7:6,r13) + r3:2 = #1 + } + { + p0 = cmp.gtu(r3:2,r15:14) + if (!p0.new) r6 = or(r2,r6) + r7 = setbit(r7,#52 -32+4) + } + { + r5:4 = neg(r7:6) + p0 = bitsclr(r6,#(1<<4)-1) + if (!p0.new) r10 = r11 + } + { + USR = r10 + if (p3) r5:4 = r7:6 + r10 = #-0x3ff -(52 +4) + } + { + r1:0 = convert_d2df(r5:4) + } + { + r1 += asl(r10,#52 -32) + jumpr r31 + } + + +.Lpossible_unf2: + + + { + r3:2 = extractu(r1:0,#63,#0) + r15:14 = combine(##0x00100000,#0) + r10 = #0x7FFF + } + { + p0 = dfcmp.eq(r15:14,r3:2) + p0 = bitsset(r7,r10) + } + + + + + + + { + if (!p0) jumpr r31 + r10 = USR + } + + { + r10 = or(r10,#0x30) + } + { + USR = r10 + } + { + p0 = dfcmp.eq(r1:0,r1:0) + jumpr r31 + } + +.Ldiv_ovf: + + + + { + r10 = USR + r3:2 = combine(##0x7fefffff,#-1) + r1 = mux(p3,#0,#-1) + } + { + r7:6 = combine(##0x7ff00000,#0) + r5 = extractu(r10,#2,#22) + r10 = or(r10,#0x28) + } + { + USR = r10 + r5 ^= lsr(r1,#31) + r4 = r5 + } + { + p0 = !cmp.eq(r4,#1) + p0 = !cmp.eq(r5,#2) + if (p0.new) r3:2 = r7:6 + p0 = dfcmp.eq(r3:2,r3:2) + } + { + r1:0 = insert(r3:2,#63,#0) + jumpr r31 + } + + + + + + + +.Ldiv_abnormal: + { + p0 = dfclass(r1:0,#0x0F) + p0 = dfclass(r3:2,#0x0F) + p3 = cmp.gt(r28,#-1) + } + { + p1 = dfclass(r1:0,#0x08) + p1 = dfclass(r3:2,#0x08) + } + { + p2 = dfclass(r1:0,#0x01) + p2 = dfclass(r3:2,#0x01) + } + { + if (!p0) jump .Ldiv_nan + if (p1) jump .Ldiv_invalid + } + { + if (p2) jump .Ldiv_invalid + } + { + p2 = dfclass(r1:0,#(0x0F ^ 0x01)) + p2 = dfclass(r3:2,#(0x0F ^ 0x08)) + } + { + p1 = dfclass(r1:0,#(0x0F ^ 0x08)) + p1 = dfclass(r3:2,#(0x0F ^ 0x01)) + } + { + if (!p2) jump .Ldiv_zero_result + if (!p1) jump .Ldiv_inf_result + } + + + + + + { + p0 = dfclass(r1:0,#0x02) + p1 = dfclass(r3:2,#0x02) + r10 = ##0x00100000 + } + { + r13:12 = combine(r3,r1) + r1 = insert(r10,#11 +1,#52 -32) + r3 = insert(r10,#11 +1,#52 -32) + } + { + if (p0) r1 = or(r1,r10) + if (p1) r3 = or(r3,r10) + } + { + r5 = add(clb(r1:0),#-11) + r4 = add(clb(r3:2),#-11) + r10 = #1 + } + { + r12 = extractu(r12,#11,#52 -32) + r13 = extractu(r13,#11,#52 -32) + } + { + r1:0 = asl(r1:0,r5) + r3:2 = asl(r3:2,r4) + if (!p0) r12 = sub(r10,r5) + if (!p1) r13 = sub(r10,r4) + } + { + r7:6 = extractu(r3:2,#23,#52 -23) + } + { + r9 = or(r8,r6) + jump .Ldenorm_continue + } + +.Ldiv_zero_result: + { + r1 = xor(r1,r3) + r3:2 = #0 + } + { + r1:0 = insert(r3:2,#63,#0) + jumpr r31 + } +.Ldiv_inf_result: + { + p2 = dfclass(r3:2,#0x01) + p2 = dfclass(r1:0,#(0x0F ^ 0x08)) + } + { + r10 = USR + if (!p2) jump 1f + r1 = xor(r1,r3) + } + { + r10 = or(r10,#0x04) + } + { + USR = r10 + } +1: + { + r3:2 = combine(##0x7ff00000,#0) + p0 = dfcmp.uo(r3:2,r3:2) + } + { + r1:0 = insert(r3:2,#63,#0) + jumpr r31 + } +.Ldiv_nan: + { + p0 = dfclass(r1:0,#0x10) + p1 = dfclass(r3:2,#0x10) + if (!p0.new) r1:0 = r3:2 + if (!p1.new) r3:2 = r1:0 + } + { + r5 = convert_df2sf(r1:0) + r4 = convert_df2sf(r3:2) + } + { + r1:0 = #-1 + jumpr r31 + } + +.Ldiv_invalid: + { + r10 = ##0x7f800001 + } + { + r1:0 = convert_sf2df(r10) + jumpr r31 + } +.size __hexagon_divdf3,.-__hexagon_divdf3 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/dffma.s b/src/rust/vendor/compiler_builtins/src/hexagon/dffma.s new file mode 100644 index 000000000..043a1d294 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/dffma.s @@ -0,0 +1,536 @@ + .text + .global __hexagon_fmadf4 + .type __hexagon_fmadf4,@function + .global __hexagon_fmadf5 + .type __hexagon_fmadf5,@function + .global fma + .type fma,@function + .global __qdsp_fmadf5 ; .set __qdsp_fmadf5, __hexagon_fmadf5 + .p2align 5 +__hexagon_fmadf4: +__hexagon_fmadf5: +fma: + { + p0 = dfclass(r1:0,#2) + p0 = dfclass(r3:2,#2) + r13:12 = #0 + r15:14 = #0 + } + { + r13:12 = insert(r1:0,#52,#11 -3) + r15:14 = insert(r3:2,#52,#11 -3) + r7 = ##0x10000000 + allocframe(#32) + } + { + r9:8 = mpyu(r12,r14) + if (!p0) jump .Lfma_abnormal_ab + r13 = or(r13,r7) + r15 = or(r15,r7) + } + { + p0 = dfclass(r5:4,#2) + if (!p0.new) jump:nt .Lfma_abnormal_c + r11:10 = combine(r7,#0) + r7:6 = combine(#0,r9) + } +.Lfma_abnormal_c_restart: + { + r7:6 += mpyu(r14,r13) + r11:10 = insert(r5:4,#52,#11 -3) + memd(r29+#0) = r17:16 + memd(r29+#8) = r19:18 + } + { + r7:6 += mpyu(r12,r15) + r19:18 = neg(r11:10) + p0 = cmp.gt(r5,#-1) + r28 = xor(r1,r3) + } + { + r18 = extractu(r1,#11,#20) + r19 = extractu(r3,#11,#20) + r17:16 = combine(#0,r7) + if (!p0) r11:10 = r19:18 + } + { + r17:16 += mpyu(r13,r15) + r9:8 = combine(r6,r8) + r18 = add(r18,r19) + + + + + r19 = extractu(r5,#11,#20) + } + { + r18 = add(r18,#-1023 +(4)) + p3 = !cmp.gt(r28,#-1) + r7:6 = #0 + r15:14 = #0 + } + { + r7:6 = sub(r7:6,r9:8,p3):carry + p0 = !cmp.gt(r28,#-1) + p1 = cmp.gt(r19,r18) + if (p1.new) r19:18 = combine(r18,r19) + } + { + r15:14 = sub(r15:14,r17:16,p3):carry + if (p0) r9:8 = r7:6 + + + + + r7:6 = #0 + r19 = sub(r18,r19) + } + { + if (p0) r17:16 = r15:14 + p0 = cmp.gt(r19,#63) + if (p1) r9:8 = r7:6 + if (p1) r7:6 = r9:8 + } + + + + + + + + { + if (p1) r17:16 = r11:10 + if (p1) r11:10 = r17:16 + if (p0) r19 = add(r19,#-64) + r28 = #63 + } + { + + if (p0) r7:6 = r11:10 + r28 = asr(r11,#31) + r13 = min(r19,r28) + r12 = #0 + } + + + + + + + { + if (p0) r11:10 = combine(r28,r28) + r5:4 = extract(r7:6,r13:12) + r7:6 = lsr(r7:6,r13) + r12 = sub(#64,r13) + } + { + r15:14 = #0 + r28 = #-2 + r7:6 |= lsl(r11:10,r12) + r11:10 = asr(r11:10,r13) + } + { + p3 = cmp.gtu(r5:4,r15:14) + if (p3.new) r6 = and(r6,r28) + + + + r15:14 = #1 + r5:4 = #0 + } + { + r9:8 = add(r7:6,r9:8,p3):carry + } + { + r17:16 = add(r11:10,r17:16,p3):carry + r28 = #62 + } + + + + + + + + { + r12 = add(clb(r17:16),#-2) + if (!cmp.eq(r12.new,r28)) jump:t 1f + } + + { + r11:10 = extractu(r9:8,#62,#2) + r9:8 = asl(r9:8,#62) + r18 = add(r18,#-62) + } + { + r17:16 = insert(r11:10,#62,#0) + } + { + r12 = add(clb(r17:16),#-2) + } + .falign +1: + { + r11:10 = asl(r17:16,r12) + r5:4 |= asl(r9:8,r12) + r13 = sub(#64,r12) + r18 = sub(r18,r12) + } + { + r11:10 |= lsr(r9:8,r13) + p2 = cmp.gtu(r15:14,r5:4) + r28 = #1023 +1023 -2 + } + { + if (!p2) r10 = or(r10,r14) + + p0 = !cmp.gt(r18,r28) + p0 = cmp.gt(r18,#1) + if (!p0.new) jump:nt .Lfma_ovf_unf + } + { + + p0 = cmp.gtu(r15:14,r11:10) + r1:0 = convert_d2df(r11:10) + r18 = add(r18,#-1023 -60) + r17:16 = memd(r29+#0) + } + { + r1 += asl(r18,#20) + r19:18 = memd(r29+#8) + if (!p0) dealloc_return + } +.Ladd_yields_zero: + + { + r28 = USR + r1:0 = #0 + } + { + r28 = extractu(r28,#2,#22) + r17:16 = memd(r29+#0) + r19:18 = memd(r29+#8) + } + { + p0 = cmp.eq(r28,#2) + if (p0.new) r1 = ##0x80000000 + dealloc_return + } +.Lfma_ovf_unf: + { + p0 = cmp.gtu(r15:14,r11:10) + if (p0.new) jump:nt .Ladd_yields_zero + } + { + r1:0 = convert_d2df(r11:10) + r18 = add(r18,#-1023 -60) + r28 = r18 + } + + + { + r1 += asl(r18,#20) + r7 = extractu(r1,#11,#20) + } + { + r6 = add(r18,r7) + r17:16 = memd(r29+#0) + r19:18 = memd(r29+#8) + r9:8 = abs(r11:10) + } + { + p0 = cmp.gt(r6,##1023 +1023) + if (p0.new) jump:nt .Lfma_ovf + } + { + p0 = cmp.gt(r6,#0) + if (p0.new) jump:nt .Lpossible_unf0 + } + { + + + + r7 = add(clb(r9:8),#-2) + r6 = sub(#1+5,r28) + p3 = cmp.gt(r11,#-1) + } + + + + { + r6 = add(r6,r7) + r9:8 = asl(r9:8,r7) + r1 = USR + r28 = #63 + } + { + r7 = min(r6,r28) + r6 = #0 + r0 = #0x0030 + } + { + r3:2 = extractu(r9:8,r7:6) + r9:8 = asr(r9:8,r7) + } + { + p0 = cmp.gtu(r15:14,r3:2) + if (!p0.new) r8 = or(r8,r14) + r9 = setbit(r9,#20 +3) + } + { + r11:10 = neg(r9:8) + p1 = bitsclr(r8,#(1<<3)-1) + if (!p1.new) r1 = or(r1,r0) + r3:2 = #0 + } + { + if (p3) r11:10 = r9:8 + USR = r1 + r28 = #-1023 -(52 +3) + } + { + r1:0 = convert_d2df(r11:10) + } + { + r1 += asl(r28,#20) + dealloc_return + } +.Lpossible_unf0: + { + r28 = ##0x7fefffff + r9:8 = abs(r11:10) + } + { + p0 = cmp.eq(r0,#0) + p0 = bitsclr(r1,r28) + if (!p0.new) dealloc_return:t + r28 = #0x7fff + } + { + p0 = bitsset(r9,r28) + r3 = USR + r2 = #0x0030 + } + { + if (p0) r3 = or(r3,r2) + } + { + USR = r3 + } + { + p0 = dfcmp.eq(r1:0,r1:0) + dealloc_return + } +.Lfma_ovf: + { + r28 = USR + r11:10 = combine(##0x7fefffff,#-1) + r1:0 = r11:10 + } + { + r9:8 = combine(##0x7ff00000,#0) + r3 = extractu(r28,#2,#22) + r28 = or(r28,#0x28) + } + { + USR = r28 + r3 ^= lsr(r1,#31) + r2 = r3 + } + { + p0 = !cmp.eq(r2,#1) + p0 = !cmp.eq(r3,#2) + } + { + p0 = dfcmp.eq(r9:8,r9:8) + if (p0.new) r11:10 = r9:8 + } + { + r1:0 = insert(r11:10,#63,#0) + dealloc_return + } +.Lfma_abnormal_ab: + { + r9:8 = extractu(r1:0,#63,#0) + r11:10 = extractu(r3:2,#63,#0) + deallocframe + } + { + p3 = cmp.gtu(r9:8,r11:10) + if (!p3.new) r1:0 = r3:2 + if (!p3.new) r3:2 = r1:0 + } + { + p0 = dfclass(r1:0,#0x0f) + if (!p0.new) jump:nt .Lnan + if (!p3) r9:8 = r11:10 + if (!p3) r11:10 = r9:8 + } + { + p1 = dfclass(r1:0,#0x08) + p1 = dfclass(r3:2,#0x0e) + } + { + p0 = dfclass(r1:0,#0x08) + p0 = dfclass(r3:2,#0x01) + } + { + if (p1) jump .Lab_inf + p2 = dfclass(r3:2,#0x01) + } + { + if (p0) jump .Linvalid + if (p2) jump .Lab_true_zero + r28 = ##0x7c000000 + } + + + + + + { + p0 = bitsclr(r1,r28) + if (p0.new) jump:nt .Lfma_ab_tiny + } + { + r28 = add(clb(r11:10),#-11) + } + { + r11:10 = asl(r11:10,r28) + } + { + r3:2 = insert(r11:10,#63,#0) + r1 -= asl(r28,#20) + } + jump fma + +.Lfma_ab_tiny: + r9:8 = combine(##0x00100000,#0) + { + r1:0 = insert(r9:8,#63,#0) + r3:2 = insert(r9:8,#63,#0) + } + jump fma + +.Lab_inf: + { + r3:2 = lsr(r3:2,#63) + p0 = dfclass(r5:4,#0x10) + } + { + r1:0 ^= asl(r3:2,#63) + if (p0) jump .Lnan + } + { + p1 = dfclass(r5:4,#0x08) + if (p1.new) jump:nt .Lfma_inf_plus_inf + } + + { + jumpr r31 + } + .falign +.Lfma_inf_plus_inf: + { + p0 = dfcmp.eq(r1:0,r5:4) + if (!p0.new) jump:nt .Linvalid + } + { + jumpr r31 + } + +.Lnan: + { + p0 = dfclass(r3:2,#0x10) + p1 = dfclass(r5:4,#0x10) + if (!p0.new) r3:2 = r1:0 + if (!p1.new) r5:4 = r1:0 + } + { + r3 = convert_df2sf(r3:2) + r2 = convert_df2sf(r5:4) + } + { + r3 = convert_df2sf(r1:0) + r1:0 = #-1 + jumpr r31 + } + +.Linvalid: + { + r28 = ##0x7f800001 + } + { + r1:0 = convert_sf2df(r28) + jumpr r31 + } + +.Lab_true_zero: + + { + p0 = dfclass(r5:4,#0x10) + if (p0.new) jump:nt .Lnan + if (p0.new) r1:0 = r5:4 + } + { + p0 = dfcmp.eq(r3:2,r5:4) + r1 = lsr(r1,#31) + } + { + r3 ^= asl(r1,#31) + if (!p0) r1:0 = r5:4 + if (!p0) jumpr r31 + } + + { + p0 = cmp.eq(r3:2,r5:4) + if (p0.new) jumpr:t r31 + r1:0 = r3:2 + } + { + r28 = USR + } + { + r28 = extractu(r28,#2,#22) + r1:0 = #0 + } + { + p0 = cmp.eq(r28,#2) + if (p0.new) r1 = ##0x80000000 + jumpr r31 + } + + + + + .falign +.Lfma_abnormal_c: + + + { + p0 = dfclass(r5:4,#0x10) + if (p0.new) jump:nt .Lnan + if (p0.new) r1:0 = r5:4 + deallocframe + } + { + p0 = dfclass(r5:4,#0x08) + if (p0.new) r1:0 = r5:4 + if (p0.new) jumpr:nt r31 + } + + + { + p0 = dfclass(r5:4,#0x01) + if (p0.new) jump:nt __hexagon_muldf3 + r28 = #1 + } + + + { + allocframe(#32) + r11:10 = #0 + r5 = insert(r28,#11,#20) + jump .Lfma_abnormal_c_restart + } +.size fma,.-fma diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/dfminmax.s b/src/rust/vendor/compiler_builtins/src/hexagon/dfminmax.s new file mode 100644 index 000000000..3337a3223 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/dfminmax.s @@ -0,0 +1,51 @@ + .text + .global __hexagon_mindf3 + .global __hexagon_maxdf3 + .global fmin + .type fmin,@function + .global fmax + .type fmax,@function + .type __hexagon_mindf3,@function + .type __hexagon_maxdf3,@function + .global __qdsp_mindf3 ; .set __qdsp_mindf3, __hexagon_mindf3 + .global __qdsp_maxdf3 ; .set __qdsp_maxdf3, __hexagon_maxdf3 + .p2align 5 +__hexagon_mindf3: +fmin: + { + p0 = dfclass(r1:0,#0x10) + p1 = dfcmp.gt(r1:0,r3:2) + r5:4 = r1:0 + } + { + if (p0) r1:0 = r3:2 + if (p1) r1:0 = r3:2 + p2 = dfcmp.eq(r1:0,r3:2) + if (!p2.new) jumpr:t r31 + } + + { + r1:0 = or(r5:4,r3:2) + jumpr r31 + } +.size __hexagon_mindf3,.-__hexagon_mindf3 + .falign +__hexagon_maxdf3: +fmax: + { + p0 = dfclass(r1:0,#0x10) + p1 = dfcmp.gt(r3:2,r1:0) + r5:4 = r1:0 + } + { + if (p0) r1:0 = r3:2 + if (p1) r1:0 = r3:2 + p2 = dfcmp.eq(r1:0,r3:2) + if (!p2.new) jumpr:t r31 + } + + { + r1:0 = and(r5:4,r3:2) + jumpr r31 + } +.size __hexagon_maxdf3,.-__hexagon_maxdf3 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/dfmul.s b/src/rust/vendor/compiler_builtins/src/hexagon/dfmul.s new file mode 100644 index 000000000..32fc674f9 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/dfmul.s @@ -0,0 +1,309 @@ + .text + .global __hexagon_muldf3 + .type __hexagon_muldf3,@function + .global __qdsp_muldf3 ; .set __qdsp_muldf3, __hexagon_muldf3 + .global __hexagon_fast_muldf3 ; .set __hexagon_fast_muldf3, __hexagon_muldf3 + .global __hexagon_fast2_muldf3 ; .set __hexagon_fast2_muldf3, __hexagon_muldf3 + .p2align 5 +__hexagon_muldf3: + { + p0 = dfclass(r1:0,#2) + p0 = dfclass(r3:2,#2) + r13:12 = combine(##0x40000000,#0) + } + { + r13:12 = insert(r1:0,#52,#11 -1) + r5:4 = asl(r3:2,#11 -1) + r28 = #-1024 + r9:8 = #1 + } + { + r7:6 = mpyu(r4,r13) + r5:4 = insert(r9:8,#2,#62) + } + + + + + { + r15:14 = mpyu(r12,r4) + r7:6 += mpyu(r12,r5) + } + { + r7:6 += lsr(r15:14,#32) + r11:10 = mpyu(r13,r5) + r5:4 = combine(##1024 +1024 -4,#0) + } + { + r11:10 += lsr(r7:6,#32) + if (!p0) jump .Lmul_abnormal + p1 = cmp.eq(r14,#0) + p1 = cmp.eq(r6,#0) + } + { + if (!p1) r10 = or(r10,r8) + r6 = extractu(r1,#11,#20) + r7 = extractu(r3,#11,#20) + } + { + r15:14 = neg(r11:10) + r6 += add(r28,r7) + r28 = xor(r1,r3) + } + { + if (!p2.new) r11:10 = r15:14 + p2 = cmp.gt(r28,#-1) + p0 = !cmp.gt(r6,r5) + p0 = cmp.gt(r6,r4) + if (!p0.new) jump:nt .Lmul_ovf_unf + } + { + r1:0 = convert_d2df(r11:10) + r6 = add(r6,#-1024 -58) + } + { + r1 += asl(r6,#20) + jumpr r31 + } + + .falign +.Lpossible_unf1: + { + p0 = cmp.eq(r0,#0) + p0 = bitsclr(r1,r4) + if (!p0.new) jumpr:t r31 + r5 = #0x7fff + } + { + p0 = bitsset(r13,r5) + r4 = USR + r5 = #0x030 + } + { + if (p0) r4 = or(r4,r5) + } + { + USR = r4 + } + { + p0 = dfcmp.eq(r1:0,r1:0) + jumpr r31 + } + .falign +.Lmul_ovf_unf: + { + r1:0 = convert_d2df(r11:10) + r13:12 = abs(r11:10) + r7 = add(r6,#-1024 -58) + } + { + r1 += asl(r7,#20) + r7 = extractu(r1,#11,#20) + r4 = ##0x7FEFFFFF + } + { + r7 += add(r6,##-1024 -58) + + r5 = #0 + } + { + p0 = cmp.gt(r7,##1024 +1024 -2) + if (p0.new) jump:nt .Lmul_ovf + } + { + p0 = cmp.gt(r7,#0) + if (p0.new) jump:nt .Lpossible_unf1 + r5 = sub(r6,r5) + r28 = #63 + } + { + r4 = #0 + r5 = sub(#5,r5) + } + { + p3 = cmp.gt(r11,#-1) + r5 = min(r5,r28) + r11:10 = r13:12 + } + { + r28 = USR + r15:14 = extractu(r11:10,r5:4) + } + { + r11:10 = asr(r11:10,r5) + r4 = #0x0030 + r1 = insert(r9,#11,#20) + } + { + p0 = cmp.gtu(r9:8,r15:14) + if (!p0.new) r10 = or(r10,r8) + r11 = setbit(r11,#20 +3) + } + { + r15:14 = neg(r11:10) + p1 = bitsclr(r10,#0x7) + if (!p1.new) r28 = or(r4,r28) + } + { + if (!p3) r11:10 = r15:14 + USR = r28 + } + { + r1:0 = convert_d2df(r11:10) + p0 = dfcmp.eq(r1:0,r1:0) + } + { + r1 = insert(r9,#11 -1,#20 +1) + jumpr r31 + } + .falign +.Lmul_ovf: + + { + r28 = USR + r13:12 = combine(##0x7fefffff,#-1) + r1:0 = r11:10 + } + { + r14 = extractu(r28,#2,#22) + r28 = or(r28,#0x28) + r5:4 = combine(##0x7ff00000,#0) + } + { + USR = r28 + r14 ^= lsr(r1,#31) + r28 = r14 + } + { + p0 = !cmp.eq(r28,#1) + p0 = !cmp.eq(r14,#2) + if (p0.new) r13:12 = r5:4 + p0 = dfcmp.eq(r1:0,r1:0) + } + { + r1:0 = insert(r13:12,#63,#0) + jumpr r31 + } + +.Lmul_abnormal: + { + r13:12 = extractu(r1:0,#63,#0) + r5:4 = extractu(r3:2,#63,#0) + } + { + p3 = cmp.gtu(r13:12,r5:4) + if (!p3.new) r1:0 = r3:2 + if (!p3.new) r3:2 = r1:0 + } + { + + p0 = dfclass(r1:0,#0x0f) + if (!p0.new) jump:nt .Linvalid_nan + if (!p3) r13:12 = r5:4 + if (!p3) r5:4 = r13:12 + } + { + + p1 = dfclass(r1:0,#0x08) + p1 = dfclass(r3:2,#0x0e) + } + { + + + p0 = dfclass(r1:0,#0x08) + p0 = dfclass(r3:2,#0x01) + } + { + if (p1) jump .Ltrue_inf + p2 = dfclass(r3:2,#0x01) + } + { + if (p0) jump .Linvalid_zeroinf + if (p2) jump .Ltrue_zero + r28 = ##0x7c000000 + } + + + + + + { + p0 = bitsclr(r1,r28) + if (p0.new) jump:nt .Lmul_tiny + } + { + r28 = cl0(r5:4) + } + { + r28 = add(r28,#-11) + } + { + r5:4 = asl(r5:4,r28) + } + { + r3:2 = insert(r5:4,#63,#0) + r1 -= asl(r28,#20) + } + jump __hexagon_muldf3 +.Lmul_tiny: + { + r28 = USR + r1:0 = xor(r1:0,r3:2) + } + { + r28 = or(r28,#0x30) + r1:0 = insert(r9:8,#63,#0) + r5 = extractu(r28,#2,#22) + } + { + USR = r28 + p0 = cmp.gt(r5,#1) + if (!p0.new) r0 = #0 + r5 ^= lsr(r1,#31) + } + { + p0 = cmp.eq(r5,#3) + if (!p0.new) r0 = #0 + jumpr r31 + } +.Linvalid_zeroinf: + { + r28 = USR + } + { + r1:0 = #-1 + r28 = or(r28,#2) + } + { + USR = r28 + } + { + p0 = dfcmp.uo(r1:0,r1:0) + jumpr r31 + } +.Linvalid_nan: + { + p0 = dfclass(r3:2,#0x0f) + r28 = convert_df2sf(r1:0) + if (p0.new) r3:2 = r1:0 + } + { + r2 = convert_df2sf(r3:2) + r1:0 = #-1 + jumpr r31 + } + .falign +.Ltrue_zero: + { + r1:0 = r3:2 + r3:2 = r1:0 + } +.Ltrue_inf: + { + r3 = extract(r3,#1,#31) + } + { + r1 ^= asl(r3,#31) + jumpr r31 + } +.size __hexagon_muldf3,.-__hexagon_muldf3 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/dfsqrt.s b/src/rust/vendor/compiler_builtins/src/hexagon/dfsqrt.s new file mode 100644 index 000000000..14f584a11 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/dfsqrt.s @@ -0,0 +1,277 @@ + .text + .global __hexagon_sqrtdf2 + .type __hexagon_sqrtdf2,@function + .global __hexagon_sqrt + .type __hexagon_sqrt,@function + .global __qdsp_sqrtdf2 ; .set __qdsp_sqrtdf2, __hexagon_sqrtdf2; .type __qdsp_sqrtdf2,@function + .global __qdsp_sqrt ; .set __qdsp_sqrt, __hexagon_sqrt; .type __qdsp_sqrt,@function + .global __hexagon_fast_sqrtdf2 ; .set __hexagon_fast_sqrtdf2, __hexagon_sqrtdf2; .type __hexagon_fast_sqrtdf2,@function + .global __hexagon_fast_sqrt ; .set __hexagon_fast_sqrt, __hexagon_sqrt; .type __hexagon_fast_sqrt,@function + .global __hexagon_fast2_sqrtdf2 ; .set __hexagon_fast2_sqrtdf2, __hexagon_sqrtdf2; .type __hexagon_fast2_sqrtdf2,@function + .global __hexagon_fast2_sqrt ; .set __hexagon_fast2_sqrt, __hexagon_sqrt; .type __hexagon_fast2_sqrt,@function + .type sqrt,@function + .p2align 5 +__hexagon_sqrtdf2: +__hexagon_sqrt: + { + r15:14 = extractu(r1:0,#23 +1,#52 -23) + r28 = extractu(r1,#11,#52 -32) + r5:4 = combine(##0x3f000004,#1) + } + { + p2 = dfclass(r1:0,#0x02) + p2 = cmp.gt(r1,#-1) + if (!p2.new) jump:nt .Lsqrt_abnormal + r9 = or(r5,r14) + } + +.Ldenormal_restart: + { + r11:10 = r1:0 + r7,p0 = sfinvsqrta(r9) + r5 = and(r5,#-16) + r3:2 = #0 + } + { + r3 += sfmpy(r7,r9):lib + r2 += sfmpy(r7,r5):lib + r6 = r5 + + + r9 = and(r28,#1) + } + { + r6 -= sfmpy(r3,r2):lib + r11 = insert(r4,#11 +1,#52 -32) + p1 = cmp.gtu(r9,#0) + } + { + r3 += sfmpy(r3,r6):lib + r2 += sfmpy(r2,r6):lib + r6 = r5 + r9 = mux(p1,#8,#9) + } + { + r6 -= sfmpy(r3,r2):lib + r11:10 = asl(r11:10,r9) + r9 = mux(p1,#3,#2) + } + { + r2 += sfmpy(r2,r6):lib + + r15:14 = asl(r11:10,r9) + } + { + r2 = and(r2,##0x007fffff) + } + { + r2 = add(r2,##0x00800000 - 3) + r9 = mux(p1,#7,#8) + } + { + r8 = asl(r2,r9) + r9 = mux(p1,#15-(1+1),#15-(1+0)) + } + { + r13:12 = mpyu(r8,r15) + } + { + r1:0 = asl(r11:10,#15) + r15:14 = mpyu(r13,r13) + p1 = cmp.eq(r0,r0) + } + { + r1:0 -= asl(r15:14,#15) + r15:14 = mpyu(r13,r12) + p2 = cmp.eq(r0,r0) + } + { + r1:0 -= lsr(r15:14,#16) + p3 = cmp.eq(r0,r0) + } + { + r1:0 = mpyu(r1,r8) + } + { + r13:12 += lsr(r1:0,r9) + r9 = add(r9,#16) + r1:0 = asl(r11:10,#31) + } + + { + r15:14 = mpyu(r13,r13) + r1:0 -= mpyu(r13,r12) + } + { + r1:0 -= asl(r15:14,#31) + r15:14 = mpyu(r12,r12) + } + { + r1:0 -= lsr(r15:14,#33) + } + { + r1:0 = mpyu(r1,r8) + } + { + r13:12 += lsr(r1:0,r9) + r9 = add(r9,#16) + r1:0 = asl(r11:10,#47) + } + + { + r15:14 = mpyu(r13,r13) + } + { + r1:0 -= asl(r15:14,#47) + r15:14 = mpyu(r13,r12) + } + { + r1:0 -= asl(r15:14,#16) + r15:14 = mpyu(r12,r12) + } + { + r1:0 -= lsr(r15:14,#17) + } + { + r1:0 = mpyu(r1,r8) + } + { + r13:12 += lsr(r1:0,r9) + } + { + r3:2 = mpyu(r13,r12) + r5:4 = mpyu(r12,r12) + r15:14 = #0 + r1:0 = #0 + } + { + r3:2 += lsr(r5:4,#33) + r5:4 += asl(r3:2,#33) + p1 = cmp.eq(r0,r0) + } + { + r7:6 = mpyu(r13,r13) + r1:0 = sub(r1:0,r5:4,p1):carry + r9:8 = #1 + } + { + r7:6 += lsr(r3:2,#31) + r9:8 += asl(r13:12,#1) + } + + + + + + { + r15:14 = sub(r11:10,r7:6,p1):carry + r5:4 = sub(r1:0,r9:8,p2):carry + + + + + r7:6 = #1 + r11:10 = #0 + } + { + r3:2 = sub(r15:14,r11:10,p2):carry + r7:6 = add(r13:12,r7:6) + r28 = add(r28,#-0x3ff) + } + { + + if (p2) r13:12 = r7:6 + if (p2) r1:0 = r5:4 + if (p2) r15:14 = r3:2 + } + { + r5:4 = sub(r1:0,r9:8,p3):carry + r7:6 = #1 + r28 = asr(r28,#1) + } + { + r3:2 = sub(r15:14,r11:10,p3):carry + r7:6 = add(r13:12,r7:6) + } + { + if (p3) r13:12 = r7:6 + if (p3) r1:0 = r5:4 + + + + + + r2 = #1 + } + { + p0 = cmp.eq(r1:0,r11:10) + if (!p0.new) r12 = or(r12,r2) + r3 = cl0(r13:12) + r28 = add(r28,#-63) + } + + + + { + r1:0 = convert_ud2df(r13:12) + r28 = add(r28,r3) + } + { + r1 += asl(r28,#52 -32) + jumpr r31 + } +.Lsqrt_abnormal: + { + p0 = dfclass(r1:0,#0x01) + if (p0.new) jumpr:t r31 + } + { + p0 = dfclass(r1:0,#0x10) + if (p0.new) jump:nt .Lsqrt_nan + } + { + p0 = cmp.gt(r1,#-1) + if (!p0.new) jump:nt .Lsqrt_invalid_neg + if (!p0.new) r28 = ##0x7F800001 + } + { + p0 = dfclass(r1:0,#0x08) + if (p0.new) jumpr:nt r31 + } + + + { + r1:0 = extractu(r1:0,#52,#0) + } + { + r28 = add(clb(r1:0),#-11) + } + { + r1:0 = asl(r1:0,r28) + r28 = sub(#1,r28) + } + { + r1 = insert(r28,#1,#52 -32) + } + { + r3:2 = extractu(r1:0,#23 +1,#52 -23) + r5 = ##0x3f000004 + } + { + r9 = or(r5,r2) + r5 = and(r5,#-16) + jump .Ldenormal_restart + } +.Lsqrt_nan: + { + r28 = convert_df2sf(r1:0) + r1:0 = #-1 + jumpr r31 + } +.Lsqrt_invalid_neg: + { + r1:0 = convert_sf2df(r28) + jumpr r31 + } +.size __hexagon_sqrt,.-__hexagon_sqrt +.size __hexagon_sqrtdf2,.-__hexagon_sqrtdf2 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/divdi3.s b/src/rust/vendor/compiler_builtins/src/hexagon/divdi3.s new file mode 100644 index 000000000..0fee6e70f --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/divdi3.s @@ -0,0 +1,64 @@ + +FUNCTION_BEGIN __hexagon_divdi3 + { + p2 = tstbit(r1,#31) + p3 = tstbit(r3,#31) + } + { + r1:0 = abs(r1:0) + r3:2 = abs(r3:2) + } + { + r6 = cl0(r1:0) + r7 = cl0(r3:2) + r5:4 = r3:2 + r3:2 = r1:0 + } + { + p3 = xor(p2,p3) + r10 = sub(r7,r6) + r1:0 = #0 + r15:14 = #1 + } + { + r11 = add(r10,#1) + r13:12 = lsl(r5:4,r10) + r15:14 = lsl(r15:14,r10) + } + { + p0 = cmp.gtu(r5:4,r3:2) + loop0(1f,r11) + } + { + if (p0) jump .hexagon_divdi3_return + } + .falign +1: + { + p0 = cmp.gtu(r13:12,r3:2) + } + { + r7:6 = sub(r3:2, r13:12) + r9:8 = add(r1:0, r15:14) + } + { + r1:0 = vmux(p0, r1:0, r9:8) + r3:2 = vmux(p0, r3:2, r7:6) + } + { + r15:14 = lsr(r15:14, #1) + r13:12 = lsr(r13:12, #1) + }:endloop0 + +.hexagon_divdi3_return: + { + r3:2 = neg(r1:0) + } + { + r1:0 = vmux(p3,r3:2,r1:0) + jumpr r31 + } +FUNCTION_END __hexagon_divdi3 + + .globl __qdsp_divdi3 + .set __qdsp_divdi3, __hexagon_divdi3 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/divsi3.s b/src/rust/vendor/compiler_builtins/src/hexagon/divsi3.s new file mode 100644 index 000000000..fc957a431 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/divsi3.s @@ -0,0 +1,53 @@ + +FUNCTION_BEGIN __hexagon_divsi3 + { + p0 = cmp.ge(r0,#0) + p1 = cmp.ge(r1,#0) + r1 = abs(r0) + r2 = abs(r1) + } + { + r3 = cl0(r1) + r4 = cl0(r2) + r5 = sub(r1,r2) + p2 = cmp.gtu(r2,r1) + } + { + r0 = #0 + p1 = xor(p0,p1) + p0 = cmp.gtu(r2,r5) + if (p2) jumpr r31 + } + + { + r0 = mux(p1,#-1,#1) + if (p0) jumpr r31 + r4 = sub(r4,r3) + r3 = #1 + } + { + r0 = #0 + r3:2 = vlslw(r3:2,r4) + loop0(1f,r4) + } + .falign +1: + { + p0 = cmp.gtu(r2,r1) + if (!p0.new) r1 = sub(r1,r2) + if (!p0.new) r0 = add(r0,r3) + r3:2 = vlsrw(r3:2,#1) + }:endloop0 + { + p0 = cmp.gtu(r2,r1) + if (!p0.new) r0 = add(r0,r3) + if (!p1) jumpr r31 + } + { + r0 = neg(r0) + jumpr r31 + } +FUNCTION_END __hexagon_divsi3 + + .globl __qdsp_divsi3 + .set __qdsp_divsi3, __hexagon_divsi3 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/fastmath2_dlib_asm.s b/src/rust/vendor/compiler_builtins/src/hexagon/fastmath2_dlib_asm.s new file mode 100644 index 000000000..15c387846 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/fastmath2_dlib_asm.s @@ -0,0 +1,266 @@ + .text + .global fast2_dadd_asm + .type fast2_dadd_asm, @function +fast2_dadd_asm: + .falign + { + R7:6 = VABSDIFFH(R1:0, R3:2) + R9 = #62 + R4 = SXTH(R0) + R5 = SXTH(R2) + } { + R6 = SXTH(R6) + P0 = CMP.GT(R4, R5); + if ( P0.new) R8 = add(R4, #1) + if (!P0.new) R8 = add(R5, #1) + } { + if ( P0) R4 = #1 + if (!P0) R5 = #1 + R0.L = #0 + R6 = MIN(R6, R9) + } { + if (!P0) R4 = add(R6, #1) + if ( P0) R5 = add(R6, #1) + R2.L = #0 + R11:10 = #0 + } { + R1:0 = ASR(R1:0, R4) + R3:2 = ASR(R3:2, R5) + } { + R1:0 = add(R1:0, R3:2) + R10.L = #0x8001 + } { + R4 = clb(R1:0) + R9 = #58 + } { + R4 = add(R4, #-1) + p0 = cmp.gt(R4, R9) + } { + R1:0 = ASL(R1:0, R4) + R8 = SUB(R8, R4) + if(p0) jump .Ldenorma + } { + R0 = insert(R8, #16, #0) + jumpr r31 + } +.Ldenorma: + { + R1:0 = R11:10 + jumpr r31 + } + .text + .global fast2_dsub_asm + .type fast2_dsub_asm, @function +fast2_dsub_asm: + .falign + { + R7:6 = VABSDIFFH(R1:0, R3:2) + R9 = #62 + R4 = SXTH(R0) + R5 = SXTH(R2) + } { + R6 = SXTH(R6) + P0 = CMP.GT(R4, R5); + if ( P0.new) R8 = add(R4, #1) + if (!P0.new) R8 = add(R5, #1) + } { + if ( P0) R4 = #1 + if (!P0) R5 = #1 + R0.L = #0 + R6 = MIN(R6, R9) + } { + if (!P0) R4 = add(R6, #1) + if ( P0) R5 = add(R6, #1) + R2.L = #0 + R11:10 = #0 + } { + R1:0 = ASR(R1:0, R4) + R3:2 = ASR(R3:2, R5) + } { + R1:0 = sub(R1:0, R3:2) + R10.L = #0x8001 + } { + R4 = clb(R1:0) + R9 = #58 + } { + R4 = add(R4, #-1) + p0 = cmp.gt(R4, R9) + } { + R1:0 = ASL(R1:0, R4) + R8 = SUB(R8, R4) + if(p0) jump .Ldenorm + } { + R0 = insert(R8, #16, #0) + jumpr r31 + } +.Ldenorm: + { + R1:0 = R11:10 + jumpr r31 + } + .text + .global fast2_dmpy_asm + .type fast2_dmpy_asm, @function +fast2_dmpy_asm: + .falign + { + R13= lsr(R2, #16) + R5 = sxth(R2) + R4 = sxth(R0) + R12= lsr(R0, #16) + } + { + R11:10 = mpy(R1, R3) + R7:6 = mpy(R1, R13) + R0.L = #0x0 + R15:14 = #0 + } + { + R11:10 = add(R11:10, R11:10) + R7:6 += mpy(R3, R12) + R2.L = #0x0 + R15.H = #0x8000 + } + { + R7:6 = asr(R7:6, #15) + R12.L = #0x8001 + p1 = cmp.eq(R1:0, R3:2) + } + { + R7:6 = add(R7:6, R11:10) + R8 = add(R4, R5) + p2 = cmp.eq(R1:0, R15:14) + } + { + R9 = clb(R7:6) + R3:2 = abs(R7:6) + R11 = #58 + } + { + p1 = and(p1, p2) + R8 = sub(R8, R9) + R9 = add(R9, #-1) + p0 = cmp.gt(R9, R11) + } + { + R8 = add(R8, #1) + R1:0 = asl(R7:6, R9) + if(p1) jump .Lsat + } + { + R0 = insert(R8,#16, #0) + if(!p0) jumpr r31 + } + { + R0 = insert(R12,#16, #0) + jumpr r31 + } +.Lsat: + { + R1:0 = #-1 + } + { + R1:0 = lsr(R1:0, #1) + } + { + R0 = insert(R8,#16, #0) + jumpr r31 + } + .text + .global fast2_qd2f_asm + .type fast2_qd2f_asm, @function +fast2_qd2f_asm: + .falign + { + R3 = abs(R1):sat + R4 = sxth(R0) + R5 = #0x40 + R6.L = #0xffc0 + } + { + R0 = extractu(R3, #8, #0) + p2 = cmp.gt(R4, #126) + p3 = cmp.ge(R4, #-126) + R6.H = #0x7fff + } + { + p1 = cmp.eq(R0,#0x40) + if(p1.new) R5 = #0 + R4 = add(R4, #126) + if(!p3) jump .Lmin + } + { + p0 = bitsset(R3, R6) + R0.L = #0x0000 + R2 = add(R3, R5) + R7 = lsr(R6, #8) + } + { + if(p0) R4 = add(R4, #1) + if(p0) R3 = #0 + R2 = lsr(R2, #7) + R0.H = #0x8000 + } + { + R0 = and(R0, R1) + R6 &= asl(R4, #23) + if(!p0) R3 = and(R2, R7) + if(p2) jump .Lmax + } + { + R0 += add(R6, R3) + jumpr r31 + } +.Lmax: + { + R0.L = #0xffff; + } + { + R0.H = #0x7f7f; + jumpr r31 + } +.Lmin: + { + R0 = #0x0 + jumpr r31 + } + .text + .global fast2_f2qd_asm + .type fast2_f2qd_asm, @function +fast2_f2qd_asm: + + + + + + + + .falign + { + R1 = asl(R0, #7) + p0 = tstbit(R0, #31) + R5:4 = #0 + R3 = add(R0,R0) + } + { + R1 = setbit(R1, #30) + R0= extractu(R0,#8,#23) + R4.L = #0x8001 + p1 = cmp.eq(R3, #0) + } + { + R1= extractu(R1, #31, #0) + R0= add(R0, #-126) + R2 = #0 + if(p1) jump .Lminqd + } + { + R0 = zxth(R0) + if(p0) R1= sub(R2, R1) + jumpr r31 + } +.Lminqd: + { + R1:0 = R5:4 + jumpr r31 + } diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/fastmath2_ldlib_asm.s b/src/rust/vendor/compiler_builtins/src/hexagon/fastmath2_ldlib_asm.s new file mode 100644 index 000000000..b72b7550a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/fastmath2_ldlib_asm.s @@ -0,0 +1,187 @@ + .text + .global fast2_ldadd_asm + .type fast2_ldadd_asm, @function +fast2_ldadd_asm: + .falign + { + R4 = memw(r29+#8) + R5 = memw(r29+#24) + r7 = r0 + } + { + R6 = sub(R4, R5):sat + P0 = CMP.GT(R4, R5); + if ( P0.new) R8 = add(R4, #1) + if (!P0.new) R8 = add(R5, #1) + } { + R6 = abs(R6):sat + if ( P0) R4 = #1 + if (!P0) R5 = #1 + R9 = #62 + } { + R6 = MIN(R6, R9) + R1:0 = memd(r29+#0) + R3:2 = memd(r29+#16) + } { + if (!P0) R4 = add(R6, #1) + if ( P0) R5 = add(R6, #1) + } { + R1:0 = ASR(R1:0, R4) + R3:2 = ASR(R3:2, R5) + } { + R1:0 = add(R1:0, R3:2) + R3:2 = #0 + } { + R4 = clb(R1:0) + R9.L =#0x0001 + } { + R8 -= add(R4, #-1) + R4 = add(R4, #-1) + p0 = cmp.gt(R4, #58) + R9.H =#0x8000 + } { + if(!p0)memw(r7+#8) = R8 + R1:0 = ASL(R1:0, R4) + if(p0) jump .Ldenorma1 + } { + memd(r7+#0) = R1:0 + jumpr r31 + } +.Ldenorma1: + memd(r7+#0) = R3:2 + { + memw(r7+#8) = R9 + jumpr r31 + } + .text + .global fast2_ldsub_asm + .type fast2_ldsub_asm, @function +fast2_ldsub_asm: + .falign + { + R4 = memw(r29+#8) + R5 = memw(r29+#24) + r7 = r0 + } + { + R6 = sub(R4, R5):sat + P0 = CMP.GT(R4, R5); + if ( P0.new) R8 = add(R4, #1) + if (!P0.new) R8 = add(R5, #1) + } { + R6 = abs(R6):sat + if ( P0) R4 = #1 + if (!P0) R5 = #1 + R9 = #62 + } { + R6 = min(R6, R9) + R1:0 = memd(r29+#0) + R3:2 = memd(r29+#16) + } { + if (!P0) R4 = add(R6, #1) + if ( P0) R5 = add(R6, #1) + } { + R1:0 = ASR(R1:0, R4) + R3:2 = ASR(R3:2, R5) + } { + R1:0 = sub(R1:0, R3:2) + R3:2 = #0 + } { + R4 = clb(R1:0) + R9.L =#0x0001 + } { + R8 -= add(R4, #-1) + R4 = add(R4, #-1) + p0 = cmp.gt(R4, #58) + R9.H =#0x8000 + } { + if(!p0)memw(r7+#8) = R8 + R1:0 = asl(R1:0, R4) + if(p0) jump .Ldenorma_s + } { + memd(r7+#0) = R1:0 + jumpr r31 + } +.Ldenorma_s: + memd(r7+#0) = R3:2 + { + memw(r7+#8) = R9 + jumpr r31 + } + .text + .global fast2_ldmpy_asm + .type fast2_ldmpy_asm, @function +fast2_ldmpy_asm: + .falign + { + R15:14 = memd(r29+#0) + R3:2 = memd(r29+#16) + R13:12 = #0 + } + { + R8= extractu(R2, #31, #1) + R9= extractu(R14, #31, #1) + R13.H = #0x8000 + } + { + R11:10 = mpy(R15, R3) + R7:6 = mpy(R15, R8) + R4 = memw(r29+#8) + R5 = memw(r29+#24) + } + { + R11:10 = add(R11:10, R11:10) + R7:6 += mpy(R3, R9) + } + { + R7:6 = asr(R7:6, #30) + R8.L = #0x0001 + p1 = cmp.eq(R15:14, R3:2) + } + { + R7:6 = add(R7:6, R11:10) + R4= add(R4, R5) + p2 = cmp.eq(R3:2, R13:12) + } + { + R9 = clb(R7:6) + R8.H = #0x8000 + p1 = and(p1, p2) + } + { + R4-= add(R9, #-1) + R9 = add(R9, #-1) + if(p1) jump .Lsat1 + } + { + R7:6 = asl(R7:6, R9) + memw(R0+#8) = R4 + p0 = cmp.gt(R9, #58) + if(p0.new) jump:NT .Ldenorm1 + } + { + memd(R0+#0) = R7:6 + jumpr r31 + } +.Lsat1: + { + R13:12 = #0 + R4+= add(R9, #1) + } + { + R13.H = #0x4000 + memw(R0+#8) = R4 + } + { + memd(R0+#0) = R13:12 + jumpr r31 + } +.Ldenorm1: + { + memw(R0+#8) = R8 + R15:14 = #0 + } + { + memd(R0+#0) = R15:14 + jumpr r31 + } diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/func_macro.s b/src/rust/vendor/compiler_builtins/src/hexagon/func_macro.s new file mode 100644 index 000000000..9a1e11aeb --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/func_macro.s @@ -0,0 +1,12 @@ + .macro FUNCTION_BEGIN name + .text + .p2align 5 + .globl \name + .type \name, @function +\name: + .endm + + .macro FUNCTION_END name + .size \name, . - \name + .endm + diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/memcpy_forward_vp4cp4n2.s b/src/rust/vendor/compiler_builtins/src/hexagon/memcpy_forward_vp4cp4n2.s new file mode 100644 index 000000000..89f69010a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/memcpy_forward_vp4cp4n2.s @@ -0,0 +1,91 @@ + .text + + + + + + + .globl hexagon_memcpy_forward_vp4cp4n2 + .balign 32 + .type hexagon_memcpy_forward_vp4cp4n2,@function +hexagon_memcpy_forward_vp4cp4n2: + + + + + { + r3 = sub(##4096, r1) + r5 = lsr(r2, #3) + } + { + + + r3 = extractu(r3, #10, #2) + r4 = extractu(r3, #7, #5) + } + { + r3 = minu(r2, r3) + r4 = minu(r5, r4) + } + { + r4 = or(r4, ##2105344) + p0 = cmp.eq(r3, #0) + if (p0.new) jump:nt .Lskipprolog + } + l2fetch(r1, r4) + { + loop0(.Lprolog, r3) + r2 = sub(r2, r3) + } + .falign +.Lprolog: + { + r4 = memw(r1++#4) + memw(r0++#4) = r4.new + } :endloop0 +.Lskipprolog: + { + + r3 = lsr(r2, #10) + if (cmp.eq(r3.new, #0)) jump:nt .Lskipmain + } + { + loop1(.Lout, r3) + r2 = extractu(r2, #10, #0) + r3 = ##2105472 + } + + .falign +.Lout: + + l2fetch(r1, r3) + loop0(.Lpage, #512) + .falign +.Lpage: + r5:4 = memd(r1++#8) + { + memw(r0++#8) = r4 + memw(r0+#4) = r5 + } :endloop0:endloop1 +.Lskipmain: + { + r3 = ##2105344 + r4 = lsr(r2, #3) + p0 = cmp.eq(r2, #0) + if (p0.new) jumpr:nt r31 + } + { + r3 = or(r3, r4) + loop0(.Lepilog, r2) + } + l2fetch(r1, r3) + .falign +.Lepilog: + { + r4 = memw(r1++#4) + memw(r0++#4) = r4.new + } :endloop0 + + jumpr r31 + +.size hexagon_memcpy_forward_vp4cp4n2, . - hexagon_memcpy_forward_vp4cp4n2 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/memcpy_likely_aligned.s b/src/rust/vendor/compiler_builtins/src/hexagon/memcpy_likely_aligned.s new file mode 100644 index 000000000..7e9b62f6a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/memcpy_likely_aligned.s @@ -0,0 +1,42 @@ + +FUNCTION_BEGIN __hexagon_memcpy_likely_aligned_min32bytes_mult8bytes + { + p0 = bitsclr(r1,#7) + p0 = bitsclr(r0,#7) + if (p0.new) r5:4 = memd(r1) + r3 = #-3 + } + { + if (!p0) jump .Lmemcpy_call + if (p0) memd(r0++#8) = r5:4 + if (p0) r5:4 = memd(r1+#8) + r3 += lsr(r2,#3) + } + { + memd(r0++#8) = r5:4 + r5:4 = memd(r1+#16) + r1 = add(r1,#24) + loop0(1f,r3) + } + .falign +1: + { + memd(r0++#8) = r5:4 + r5:4 = memd(r1++#8) + }:endloop0 + { + memd(r0) = r5:4 + r0 -= add(r2,#-8) + jumpr r31 + } +FUNCTION_END __hexagon_memcpy_likely_aligned_min32bytes_mult8bytes + +.Lmemcpy_call: + + jump memcpy@PLT + + + + + .globl __qdsp_memcpy_likely_aligned_min32bytes_mult8bytes + .set __qdsp_memcpy_likely_aligned_min32bytes_mult8bytes, __hexagon_memcpy_likely_aligned_min32bytes_mult8bytes diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/moddi3.s b/src/rust/vendor/compiler_builtins/src/hexagon/moddi3.s new file mode 100644 index 000000000..53ea6d52a --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/moddi3.s @@ -0,0 +1,63 @@ + + +FUNCTION_BEGIN __hexagon_moddi3 + { + p3 = tstbit(r1,#31) + } + { + r1:0 = abs(r1:0) + r3:2 = abs(r3:2) + } + { + r6 = cl0(r1:0) + r7 = cl0(r3:2) + r5:4 = r3:2 + r3:2 = r1:0 + } + { + r10 = sub(r7,r6) + r1:0 = #0 + r15:14 = #1 + } + { + r11 = add(r10,#1) + r13:12 = lsl(r5:4,r10) + r15:14 = lsl(r15:14,r10) + } + { + p0 = cmp.gtu(r5:4,r3:2) + loop0(1f,r11) + } + { + if (p0) jump .hexagon_moddi3_return + } + .falign +1: + { + p0 = cmp.gtu(r13:12,r3:2) + } + { + r7:6 = sub(r3:2, r13:12) + r9:8 = add(r1:0, r15:14) + } + { + r1:0 = vmux(p0, r1:0, r9:8) + r3:2 = vmux(p0, r3:2, r7:6) + } + { + r15:14 = lsr(r15:14, #1) + r13:12 = lsr(r13:12, #1) + }:endloop0 + +.hexagon_moddi3_return: + { + r1:0 = neg(r3:2) + } + { + r1:0 = vmux(p3,r1:0,r3:2) + jumpr r31 + } +FUNCTION_END __hexagon_moddi3 + + .globl __qdsp_moddi3 + .set __qdsp_moddi3, __hexagon_moddi3 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/modsi3.s b/src/rust/vendor/compiler_builtins/src/hexagon/modsi3.s new file mode 100644 index 000000000..c4ae7e59e --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/modsi3.s @@ -0,0 +1,44 @@ + + +FUNCTION_BEGIN __hexagon_modsi3 + { + p2 = cmp.ge(r0,#0) + r2 = abs(r0) + r1 = abs(r1) + } + { + r3 = cl0(r2) + r4 = cl0(r1) + p0 = cmp.gtu(r1,r2) + } + { + r3 = sub(r4,r3) + if (p0) jumpr r31 + } + { + p1 = cmp.eq(r3,#0) + loop0(1f,r3) + r0 = r2 + r2 = lsl(r1,r3) + } + .falign +1: + { + p0 = cmp.gtu(r2,r0) + if (!p0.new) r0 = sub(r0,r2) + r2 = lsr(r2,#1) + if (p1) r1 = #0 + }:endloop0 + { + p0 = cmp.gtu(r2,r0) + if (!p0.new) r0 = sub(r0,r1) + if (p2) jumpr r31 + } + { + r0 = neg(r0) + jumpr r31 + } +FUNCTION_END __hexagon_modsi3 + + .globl __qdsp_modsi3 + .set __qdsp_modsi3, __hexagon_modsi3 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/sfdiv_opt.s b/src/rust/vendor/compiler_builtins/src/hexagon/sfdiv_opt.s new file mode 100644 index 000000000..26c91f15c --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/sfdiv_opt.s @@ -0,0 +1,42 @@ + +FUNCTION_BEGIN __hexagon_divsf3 + { + r2,p0 = sfrecipa(r0,r1) + r4 = sffixupd(r0,r1) + r3 = ##0x3f800000 + } + { + r5 = sffixupn(r0,r1) + r3 -= sfmpy(r4,r2):lib + r6 = ##0x80000000 + r7 = r3 + } + { + r2 += sfmpy(r3,r2):lib + r3 = r7 + r6 = r5 + r0 = and(r6,r5) + } + { + r3 -= sfmpy(r4,r2):lib + r0 += sfmpy(r5,r2):lib + } + { + r2 += sfmpy(r3,r2):lib + r6 -= sfmpy(r0,r4):lib + } + { + r0 += sfmpy(r6,r2):lib + } + { + r5 -= sfmpy(r0,r4):lib + } + { + r0 += sfmpy(r5,r2,p0):scale + jumpr r31 + } +FUNCTION_END __hexagon_divsf3 + +.global __qdsp_divsf3 ; .set __qdsp_divsf3, __hexagon_divsf3 +.global __hexagon_fast_divsf3 ; .set __hexagon_fast_divsf3, __hexagon_divsf3 +.global __hexagon_fast2_divsf3 ; .set __hexagon_fast2_divsf3, __hexagon_divsf3 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/sfsqrt_opt.s b/src/rust/vendor/compiler_builtins/src/hexagon/sfsqrt_opt.s new file mode 100644 index 000000000..c90af1797 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/sfsqrt_opt.s @@ -0,0 +1,49 @@ +FUNCTION_BEGIN __hexagon_sqrtf + { + r3,p0 = sfinvsqrta(r0) + r5 = sffixupr(r0) + r4 = ##0x3f000000 + r1:0 = combine(#0,#0) + } + { + r0 += sfmpy(r3,r5):lib + r1 += sfmpy(r3,r4):lib + r2 = r4 + r3 = r5 + } + { + r2 -= sfmpy(r0,r1):lib + p1 = sfclass(r5,#1) + + } + { + r0 += sfmpy(r0,r2):lib + r1 += sfmpy(r1,r2):lib + r2 = r4 + r3 = r5 + } + { + r2 -= sfmpy(r0,r1):lib + r3 -= sfmpy(r0,r0):lib + } + { + r0 += sfmpy(r1,r3):lib + r1 += sfmpy(r1,r2):lib + r2 = r4 + r3 = r5 + } + { + + r3 -= sfmpy(r0,r0):lib + if (p1) r0 = or(r0,r5) + } + { + r0 += sfmpy(r1,r3,p0):scale + jumpr r31 + } + +FUNCTION_END __hexagon_sqrtf + +.global __qdsp_sqrtf ; .set __qdsp_sqrtf, __hexagon_sqrtf +.global __hexagon_fast_sqrtf ; .set __hexagon_fast_sqrtf, __hexagon_sqrtf +.global __hexagon_fast2_sqrtf ; .set __hexagon_fast2_sqrtf, __hexagon_sqrtf diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/udivdi3.s b/src/rust/vendor/compiler_builtins/src/hexagon/udivdi3.s new file mode 100644 index 000000000..f0fffc23d --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/udivdi3.s @@ -0,0 +1,50 @@ + + +FUNCTION_BEGIN __hexagon_udivdi3 + { + r6 = cl0(r1:0) + r7 = cl0(r3:2) + r5:4 = r3:2 + r3:2 = r1:0 + } + { + r10 = sub(r7,r6) + r1:0 = #0 + r15:14 = #1 + } + { + r11 = add(r10,#1) + r13:12 = lsl(r5:4,r10) + r15:14 = lsl(r15:14,r10) + } + { + p0 = cmp.gtu(r5:4,r3:2) + loop0(1f,r11) + } + { + if (p0) jumpr r31 + } + .falign +1: + { + p0 = cmp.gtu(r13:12,r3:2) + } + { + r7:6 = sub(r3:2, r13:12) + r9:8 = add(r1:0, r15:14) + } + { + r1:0 = vmux(p0, r1:0, r9:8) + r3:2 = vmux(p0, r3:2, r7:6) + } + { + r15:14 = lsr(r15:14, #1) + r13:12 = lsr(r13:12, #1) + }:endloop0 + { + jumpr r31 + } +FUNCTION_END __hexagon_udivdi3 + + .globl __qdsp_udivdi3 + .set __qdsp_udivdi3, __hexagon_udivdi3 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/udivmoddi4.s b/src/rust/vendor/compiler_builtins/src/hexagon/udivmoddi4.s new file mode 100644 index 000000000..cbfb3987d --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/udivmoddi4.s @@ -0,0 +1,50 @@ + + +FUNCTION_BEGIN __hexagon_udivmoddi4 + { + r6 = cl0(r1:0) + r7 = cl0(r3:2) + r5:4 = r3:2 + r3:2 = r1:0 + } + { + r10 = sub(r7,r6) + r1:0 = #0 + r15:14 = #1 + } + { + r11 = add(r10,#1) + r13:12 = lsl(r5:4,r10) + r15:14 = lsl(r15:14,r10) + } + { + p0 = cmp.gtu(r5:4,r3:2) + loop0(1f,r11) + } + { + if (p0) jumpr r31 + } + .falign +1: + { + p0 = cmp.gtu(r13:12,r3:2) + } + { + r7:6 = sub(r3:2, r13:12) + r9:8 = add(r1:0, r15:14) + } + { + r1:0 = vmux(p0, r1:0, r9:8) + r3:2 = vmux(p0, r3:2, r7:6) + } + { + r15:14 = lsr(r15:14, #1) + r13:12 = lsr(r13:12, #1) + }:endloop0 + { + jumpr r31 + } +FUNCTION_END __hexagon_udivmoddi4 + + .globl __qdsp_udivmoddi4 + .set __qdsp_udivmoddi4, __hexagon_udivmoddi4 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/udivmodsi4.s b/src/rust/vendor/compiler_builtins/src/hexagon/udivmodsi4.s new file mode 100644 index 000000000..83489c514 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/udivmodsi4.s @@ -0,0 +1,39 @@ + + +FUNCTION_BEGIN __hexagon_udivmodsi4 + { + r2 = cl0(r0) + r3 = cl0(r1) + r5:4 = combine(#1,#0) + p0 = cmp.gtu(r1,r0) + } + { + r6 = sub(r3,r2) + r4 = r1 + r1:0 = combine(r0,r4) + if (p0) jumpr r31 + } + { + r3:2 = vlslw(r5:4,r6) + loop0(1f,r6) + p0 = cmp.eq(r6,#0) + if (p0.new) r4 = #0 + } + .falign +1: + { + p0 = cmp.gtu(r2,r1) + if (!p0.new) r1 = sub(r1,r2) + if (!p0.new) r0 = add(r0,r3) + r3:2 = vlsrw(r3:2,#1) + }:endloop0 + { + p0 = cmp.gtu(r2,r1) + if (!p0.new) r1 = sub(r1,r4) + if (!p0.new) r0 = add(r0,r3) + jumpr r31 + } +FUNCTION_END __hexagon_udivmodsi4 + + .globl __qdsp_udivmodsi4 + .set __qdsp_udivmodsi4, __hexagon_udivmodsi4 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/udivsi3.s b/src/rust/vendor/compiler_builtins/src/hexagon/udivsi3.s new file mode 100644 index 000000000..e0b94aa99 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/udivsi3.s @@ -0,0 +1,36 @@ + + +FUNCTION_BEGIN __hexagon_udivsi3 + { + r2 = cl0(r0) + r3 = cl0(r1) + r5:4 = combine(#1,#0) + p0 = cmp.gtu(r1,r0) + } + { + r6 = sub(r3,r2) + r4 = r1 + r1:0 = combine(r0,r4) + if (p0) jumpr r31 + } + { + r3:2 = vlslw(r5:4,r6) + loop0(1f,r6) + } + .falign +1: + { + p0 = cmp.gtu(r2,r1) + if (!p0.new) r1 = sub(r1,r2) + if (!p0.new) r0 = add(r0,r3) + r3:2 = vlsrw(r3:2,#1) + }:endloop0 + { + p0 = cmp.gtu(r2,r1) + if (!p0.new) r0 = add(r0,r3) + jumpr r31 + } +FUNCTION_END __hexagon_udivsi3 + + .globl __qdsp_udivsi3 + .set __qdsp_udivsi3, __hexagon_udivsi3 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/umoddi3.s b/src/rust/vendor/compiler_builtins/src/hexagon/umoddi3.s new file mode 100644 index 000000000..c76011c3e --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/umoddi3.s @@ -0,0 +1,53 @@ + + +FUNCTION_BEGIN __hexagon_umoddi3 + { + r6 = cl0(r1:0) + r7 = cl0(r3:2) + r5:4 = r3:2 + r3:2 = r1:0 + } + { + r10 = sub(r7,r6) + r1:0 = #0 + r15:14 = #1 + } + { + r11 = add(r10,#1) + r13:12 = lsl(r5:4,r10) + r15:14 = lsl(r15:14,r10) + } + { + p0 = cmp.gtu(r5:4,r3:2) + loop0(1f,r11) + } + { + if (p0) jump .hexagon_umoddi3_return + } + .falign +1: + { + p0 = cmp.gtu(r13:12,r3:2) + } + { + r7:6 = sub(r3:2, r13:12) + r9:8 = add(r1:0, r15:14) + } + { + r1:0 = vmux(p0, r1:0, r9:8) + r3:2 = vmux(p0, r3:2, r7:6) + } + { + r15:14 = lsr(r15:14, #1) + r13:12 = lsr(r13:12, #1) + }:endloop0 + +.hexagon_umoddi3_return: + { + r1:0 = r3:2 + jumpr r31 + } +FUNCTION_END __hexagon_umoddi3 + + .globl __qdsp_umoddi3 + .set __qdsp_umoddi3, __hexagon_umoddi3 diff --git a/src/rust/vendor/compiler_builtins/src/hexagon/umodsi3.s b/src/rust/vendor/compiler_builtins/src/hexagon/umodsi3.s new file mode 100644 index 000000000..1b592a7c5 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/hexagon/umodsi3.s @@ -0,0 +1,34 @@ + + +FUNCTION_BEGIN __hexagon_umodsi3 + { + r2 = cl0(r0) + r3 = cl0(r1) + p0 = cmp.gtu(r1,r0) + } + { + r2 = sub(r3,r2) + if (p0) jumpr r31 + } + { + loop0(1f,r2) + p1 = cmp.eq(r2,#0) + r2 = lsl(r1,r2) + } + .falign +1: + { + p0 = cmp.gtu(r2,r0) + if (!p0.new) r0 = sub(r0,r2) + r2 = lsr(r2,#1) + if (p1) r1 = #0 + }:endloop0 + { + p0 = cmp.gtu(r2,r0) + if (!p0.new) r0 = sub(r0,r1) + jumpr r31 + } +FUNCTION_END __hexagon_umodsi3 + + .globl __qdsp_umodsi3 + .set __qdsp_umodsi3, __hexagon_umodsi3 diff --git a/src/rust/vendor/compiler_builtins/src/int/addsub.rs b/src/rust/vendor/compiler_builtins/src/int/addsub.rs new file mode 100644 index 000000000..f31eff4bd --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/int/addsub.rs @@ -0,0 +1,96 @@ +use crate::int::{DInt, Int}; + +trait UAddSub: DInt { + fn uadd(self, other: Self) -> Self { + let (lo, carry) = self.lo().overflowing_add(other.lo()); + let hi = self.hi().wrapping_add(other.hi()); + let carry = if carry { Self::H::ONE } else { Self::H::ZERO }; + Self::from_lo_hi(lo, hi.wrapping_add(carry)) + } + fn uadd_one(self) -> Self { + let (lo, carry) = self.lo().overflowing_add(Self::H::ONE); + let carry = if carry { Self::H::ONE } else { Self::H::ZERO }; + Self::from_lo_hi(lo, self.hi().wrapping_add(carry)) + } + fn usub(self, other: Self) -> Self { + let uneg = (!other).uadd_one(); + self.uadd(uneg) + } +} + +impl UAddSub for u128 {} + +trait AddSub: Int +where + ::UnsignedInt: UAddSub, +{ + fn add(self, other: Self) -> Self { + Self::from_unsigned(self.unsigned().uadd(other.unsigned())) + } + fn sub(self, other: Self) -> Self { + Self::from_unsigned(self.unsigned().usub(other.unsigned())) + } +} + +impl AddSub for u128 {} +impl AddSub for i128 {} + +trait Addo: AddSub +where + ::UnsignedInt: UAddSub, +{ + fn addo(self, other: Self) -> (Self, bool) { + let sum = AddSub::add(self, other); + (sum, (other < Self::ZERO) != (sum < self)) + } +} + +impl Addo for i128 {} +impl Addo for u128 {} + +trait Subo: AddSub +where + ::UnsignedInt: UAddSub, +{ + fn subo(self, other: Self) -> (Self, bool) { + let sum = AddSub::sub(self, other); + (sum, (other < Self::ZERO) != (self < sum)) + } +} + +impl Subo for i128 {} +impl Subo for u128 {} + +intrinsics! { + pub extern "C" fn __rust_i128_add(a: i128, b: i128) -> i128 { + AddSub::add(a,b) + } + + pub extern "C" fn __rust_i128_addo(a: i128, b: i128) -> (i128, bool) { + a.addo(b) + } + + pub extern "C" fn __rust_u128_add(a: u128, b: u128) -> u128 { + AddSub::add(a,b) + } + + pub extern "C" fn __rust_u128_addo(a: u128, b: u128) -> (u128, bool) { + a.addo(b) + } + + pub extern "C" fn __rust_i128_sub(a: i128, b: i128) -> i128 { + AddSub::sub(a,b) + } + + pub extern "C" fn __rust_i128_subo(a: i128, b: i128) -> (i128, bool) { + a.subo(b) + } + + pub extern "C" fn __rust_u128_sub(a: u128, b: u128) -> u128 { + AddSub::sub(a,b) + } + + pub extern "C" fn __rust_u128_subo(a: u128, b: u128) -> (u128, bool) { + a.subo(b) + } +} diff --git a/src/rust/vendor/compiler_builtins/src/int/leading_zeros.rs b/src/rust/vendor/compiler_builtins/src/int/leading_zeros.rs new file mode 100644 index 000000000..9e60ab0d7 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/int/leading_zeros.rs @@ -0,0 +1,149 @@ +// Note: these functions happen to produce the correct `usize::leading_zeros(0)` value +// without a explicit zero check. Zero is probably common enough that it could warrant +// adding a zero check at the beginning, but `__clzsi2` has a precondition that `x != 0`. +// Compilers will insert the check for zero in cases where it is needed. + +public_test_dep! { +/// Returns the number of leading binary zeros in `x`. +#[allow(dead_code)] +pub(crate) fn usize_leading_zeros_default(x: usize) -> usize { + // The basic idea is to test if the higher bits of `x` are zero and bisect the number + // of leading zeros. It is possible for all branches of the bisection to use the same + // code path by conditionally shifting the higher parts down to let the next bisection + // step work on the higher or lower parts of `x`. Instead of starting with `z == 0` + // and adding to the number of zeros, it is slightly faster to start with + // `z == usize::MAX.count_ones()` and subtract from the potential number of zeros, + // because it simplifies the final bisection step. + let mut x = x; + // the number of potential leading zeros + let mut z = usize::MAX.count_ones() as usize; + // a temporary + let mut t: usize; + #[cfg(target_pointer_width = "64")] + { + t = x >> 32; + if t != 0 { + z -= 32; + x = t; + } + } + #[cfg(any(target_pointer_width = "32", target_pointer_width = "64"))] + { + t = x >> 16; + if t != 0 { + z -= 16; + x = t; + } + } + t = x >> 8; + if t != 0 { + z -= 8; + x = t; + } + t = x >> 4; + if t != 0 { + z -= 4; + x = t; + } + t = x >> 2; + if t != 0 { + z -= 2; + x = t; + } + // the last two bisections are combined into one conditional + t = x >> 1; + if t != 0 { + z - 2 + } else { + z - x + } + + // We could potentially save a few cycles by using the LUT trick from + // "https://embeddedgurus.com/state-space/2014/09/ + // fast-deterministic-and-portable-counting-leading-zeros/". + // However, 256 bytes for a LUT is too large for embedded use cases. We could remove + // the last 3 bisections and use this 16 byte LUT for the rest of the work: + //const LUT: [u8; 16] = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4]; + //z -= LUT[x] as usize; + //z + // However, it ends up generating about the same number of instructions. When benchmarked + // on x86_64, it is slightly faster to use the LUT, but this is probably because of OOO + // execution effects. Changing to using a LUT and branching is risky for smaller cores. +} +} + +// The above method does not compile well on RISC-V (because of the lack of predicated +// instructions), producing code with many branches or using an excessively long +// branchless solution. This method takes advantage of the set-if-less-than instruction on +// RISC-V that allows `(x >= power-of-two) as usize` to be branchless. + +public_test_dep! { +/// Returns the number of leading binary zeros in `x`. +#[allow(dead_code)] +pub(crate) fn usize_leading_zeros_riscv(x: usize) -> usize { + let mut x = x; + // the number of potential leading zeros + let mut z = usize::MAX.count_ones() as usize; + // a temporary + let mut t: usize; + + // RISC-V does not have a set-if-greater-than-or-equal instruction and + // `(x >= power-of-two) as usize` will get compiled into two instructions, but this is + // still the most optimal method. A conditional set can only be turned into a single + // immediate instruction if `x` is compared with an immediate `imm` (that can fit into + // 12 bits) like `x < imm` but not `imm < x` (because the immediate is always on the + // right). If we try to save an instruction by using `x < imm` for each bisection, we + // have to shift `x` left and compare with powers of two approaching `usize::MAX + 1`, + // but the immediate will never fit into 12 bits and never save an instruction. + #[cfg(target_pointer_width = "64")] + { + // If the upper 32 bits of `x` are not all 0, `t` is set to `1 << 5`, otherwise + // `t` is set to 0. + t = ((x >= (1 << 32)) as usize) << 5; + // If `t` was set to `1 << 5`, then the upper 32 bits are shifted down for the + // next step to process. + x >>= t; + // If `t` was set to `1 << 5`, then we subtract 32 from the number of potential + // leading zeros + z -= t; + } + #[cfg(any(target_pointer_width = "32", target_pointer_width = "64"))] + { + t = ((x >= (1 << 16)) as usize) << 4; + x >>= t; + z -= t; + } + t = ((x >= (1 << 8)) as usize) << 3; + x >>= t; + z -= t; + t = ((x >= (1 << 4)) as usize) << 2; + x >>= t; + z -= t; + t = ((x >= (1 << 2)) as usize) << 1; + x >>= t; + z -= t; + t = (x >= (1 << 1)) as usize; + x >>= t; + z -= t; + // All bits except the LSB are guaranteed to be zero for this final bisection step. + // If `x != 0` then `x == 1` and subtracts one potential zero from `z`. + z - x +} +} + +intrinsics! { + #[maybe_use_optimized_c_shim] + #[cfg(any( + target_pointer_width = "16", + target_pointer_width = "32", + target_pointer_width = "64" + ))] + /// Returns the number of leading binary zeros in `x`. + pub extern "C" fn __clzsi2(x: usize) -> usize { + if cfg!(any(target_arch = "riscv32", target_arch = "riscv64")) { + usize_leading_zeros_riscv(x) + } else { + usize_leading_zeros_default(x) + } + } +} diff --git a/src/rust/vendor/compiler_builtins/src/int/mod.rs b/src/rust/vendor/compiler_builtins/src/int/mod.rs new file mode 100644 index 000000000..509f9fdae --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/int/mod.rs @@ -0,0 +1,390 @@ +use core::ops; + +mod specialized_div_rem; + +pub mod addsub; +pub mod leading_zeros; +pub mod mul; +pub mod sdiv; +pub mod shift; +pub mod udiv; + +pub use self::leading_zeros::__clzsi2; + +public_test_dep! { +/// Trait for some basic operations on integers +pub(crate) trait Int: + Copy + + core::fmt::Debug + + PartialEq + + PartialOrd + + ops::AddAssign + + ops::SubAssign + + ops::BitAndAssign + + ops::BitOrAssign + + ops::BitXorAssign + + ops::ShlAssign + + ops::ShrAssign + + ops::Add + + ops::Sub + + ops::Div + + ops::Shl + + ops::Shr + + ops::BitOr + + ops::BitXor + + ops::BitAnd + + ops::Not +{ + /// Type with the same width but other signedness + type OtherSign: Int; + /// Unsigned version of Self + type UnsignedInt: Int; + + /// If `Self` is a signed integer + const SIGNED: bool; + + /// The bitwidth of the int type + const BITS: u32; + + const ZERO: Self; + const ONE: Self; + const MIN: Self; + const MAX: Self; + + /// LUT used for maximizing the space covered and minimizing the computational cost of fuzzing + /// in `testcrate`. For example, Self = u128 produces [0,1,2,7,8,15,16,31,32,63,64,95,96,111, + /// 112,119,120,125,126,127]. + const FUZZ_LENGTHS: [u8; 20]; + /// The number of entries of `FUZZ_LENGTHS` actually used. The maximum is 20 for u128. + const FUZZ_NUM: usize; + + fn unsigned(self) -> Self::UnsignedInt; + fn from_unsigned(unsigned: Self::UnsignedInt) -> Self; + + fn from_bool(b: bool) -> Self; + + /// Prevents the need for excessive conversions between signed and unsigned + fn logical_shr(self, other: u32) -> Self; + + /// Absolute difference between two integers. + fn abs_diff(self, other: Self) -> Self::UnsignedInt; + + // copied from primitive integers, but put in a trait + fn is_zero(self) -> bool; + fn wrapping_neg(self) -> Self; + fn wrapping_add(self, other: Self) -> Self; + fn wrapping_mul(self, other: Self) -> Self; + fn wrapping_sub(self, other: Self) -> Self; + fn wrapping_shl(self, other: u32) -> Self; + fn wrapping_shr(self, other: u32) -> Self; + fn rotate_left(self, other: u32) -> Self; + fn overflowing_add(self, other: Self) -> (Self, bool); + fn leading_zeros(self) -> u32; +} +} + +macro_rules! int_impl_common { + ($ty:ty) => { + const BITS: u32 = ::ZERO.count_zeros(); + const SIGNED: bool = Self::MIN != Self::ZERO; + + const ZERO: Self = 0; + const ONE: Self = 1; + const MIN: Self = ::MIN; + const MAX: Self = ::MAX; + + const FUZZ_LENGTHS: [u8; 20] = { + let bits = ::BITS; + let mut v = [0u8; 20]; + v[0] = 0; + v[1] = 1; + v[2] = 2; // important for parity and the iX::MIN case when reversed + let mut i = 3; + // No need for any more until the byte boundary, because there should be no algorithms + // that are sensitive to anything not next to byte boundaries after 2. We also scale + // in powers of two, which is important to prevent u128 corner tests from getting too + // big. + let mut l = 8; + loop { + if l >= ((bits / 2) as u8) { + break; + } + // get both sides of the byte boundary + v[i] = l - 1; + i += 1; + v[i] = l; + i += 1; + l *= 2; + } + + if bits != 8 { + // add the lower side of the middle boundary + v[i] = ((bits / 2) - 1) as u8; + i += 1; + } + + // We do not want to jump directly from the Self::BITS/2 boundary to the Self::BITS + // boundary because of algorithms that split the high part up. We reverse the scaling + // as we go to Self::BITS. + let mid = i; + let mut j = 1; + loop { + v[i] = (bits as u8) - (v[mid - j]) - 1; + if j == mid { + break; + } + i += 1; + j += 1; + } + v + }; + + const FUZZ_NUM: usize = { + let log2 = (::BITS - 1).count_ones() as usize; + if log2 == 3 { + // case for u8 + 6 + } else { + // 3 entries on each extreme, 2 in the middle, and 4 for each scale of intermediate + // boundaries. + 8 + (4 * (log2 - 4)) + } + }; + + fn from_bool(b: bool) -> Self { + b as $ty + } + + fn logical_shr(self, other: u32) -> Self { + Self::from_unsigned(self.unsigned().wrapping_shr(other)) + } + + fn is_zero(self) -> bool { + self == Self::ZERO + } + + fn wrapping_neg(self) -> Self { + ::wrapping_neg(self) + } + + fn wrapping_add(self, other: Self) -> Self { + ::wrapping_add(self, other) + } + + fn wrapping_mul(self, other: Self) -> Self { + ::wrapping_mul(self, other) + } + + fn wrapping_sub(self, other: Self) -> Self { + ::wrapping_sub(self, other) + } + + fn wrapping_shl(self, other: u32) -> Self { + ::wrapping_shl(self, other) + } + + fn wrapping_shr(self, other: u32) -> Self { + ::wrapping_shr(self, other) + } + + fn rotate_left(self, other: u32) -> Self { + ::rotate_left(self, other) + } + + fn overflowing_add(self, other: Self) -> (Self, bool) { + ::overflowing_add(self, other) + } + + fn leading_zeros(self) -> u32 { + ::leading_zeros(self) + } + }; +} + +macro_rules! int_impl { + ($ity:ty, $uty:ty) => { + impl Int for $uty { + type OtherSign = $ity; + type UnsignedInt = $uty; + + fn unsigned(self) -> $uty { + self + } + + // It makes writing macros easier if this is implemented for both signed and unsigned + #[allow(clippy::wrong_self_convention)] + fn from_unsigned(me: $uty) -> Self { + me + } + + fn abs_diff(self, other: Self) -> Self { + if self < other { + other.wrapping_sub(self) + } else { + self.wrapping_sub(other) + } + } + + int_impl_common!($uty); + } + + impl Int for $ity { + type OtherSign = $uty; + type UnsignedInt = $uty; + + fn unsigned(self) -> $uty { + self as $uty + } + + fn from_unsigned(me: $uty) -> Self { + me as $ity + } + + fn abs_diff(self, other: Self) -> $uty { + self.wrapping_sub(other).wrapping_abs() as $uty + } + + int_impl_common!($ity); + } + }; +} + +int_impl!(isize, usize); +int_impl!(i8, u8); +int_impl!(i16, u16); +int_impl!(i32, u32); +int_impl!(i64, u64); +int_impl!(i128, u128); + +public_test_dep! { +/// Trait for integers twice the bit width of another integer. This is implemented for all +/// primitives except for `u8`, because there is not a smaller primitive. +pub(crate) trait DInt: Int { + /// Integer that is half the bit width of the integer this trait is implemented for + type H: HInt + Int; + + /// Returns the low half of `self` + fn lo(self) -> Self::H; + /// Returns the high half of `self` + fn hi(self) -> Self::H; + /// Returns the low and high halves of `self` as a tuple + fn lo_hi(self) -> (Self::H, Self::H); + /// Constructs an integer using lower and higher half parts + fn from_lo_hi(lo: Self::H, hi: Self::H) -> Self; +} +} + +public_test_dep! { +/// Trait for integers half the bit width of another integer. This is implemented for all +/// primitives except for `u128`, because it there is not a larger primitive. +pub(crate) trait HInt: Int { + /// Integer that is double the bit width of the integer this trait is implemented for + type D: DInt + Int; + + /// Widens (using default extension) the integer to have double bit width + fn widen(self) -> Self::D; + /// Widens (zero extension only) the integer to have double bit width. This is needed to get + /// around problems with associated type bounds (such as `Int`) being unstable + fn zero_widen(self) -> Self::D; + /// Widens the integer to have double bit width and shifts the integer into the higher bits + fn widen_hi(self) -> Self::D; + /// Widening multiplication with zero widening. This cannot overflow. + fn zero_widen_mul(self, rhs: Self) -> Self::D; + /// Widening multiplication. This cannot overflow. + fn widen_mul(self, rhs: Self) -> Self::D; +} +} + +macro_rules! impl_d_int { + ($($X:ident $D:ident),*) => { + $( + impl DInt for $D { + type H = $X; + + fn lo(self) -> Self::H { + self as $X + } + fn hi(self) -> Self::H { + (self >> <$X as Int>::BITS) as $X + } + fn lo_hi(self) -> (Self::H, Self::H) { + (self.lo(), self.hi()) + } + fn from_lo_hi(lo: Self::H, hi: Self::H) -> Self { + lo.zero_widen() | hi.widen_hi() + } + } + )* + }; +} + +macro_rules! impl_h_int { + ($($H:ident $uH:ident $X:ident),*) => { + $( + impl HInt for $H { + type D = $X; + + fn widen(self) -> Self::D { + self as $X + } + fn zero_widen(self) -> Self::D { + (self as $uH) as $X + } + fn widen_hi(self) -> Self::D { + (self as $X) << <$H as Int>::BITS + } + fn zero_widen_mul(self, rhs: Self) -> Self::D { + self.zero_widen().wrapping_mul(rhs.zero_widen()) + } + fn widen_mul(self, rhs: Self) -> Self::D { + self.widen().wrapping_mul(rhs.widen()) + } + } + )* + }; +} + +impl_d_int!(u8 u16, u16 u32, u32 u64, u64 u128, i8 i16, i16 i32, i32 i64, i64 i128); +impl_h_int!( + u8 u8 u16, + u16 u16 u32, + u32 u32 u64, + u64 u64 u128, + i8 u8 i16, + i16 u16 i32, + i32 u32 i64, + i64 u64 i128 +); + +public_test_dep! { +/// Trait to express (possibly lossy) casting of integers +pub(crate) trait CastInto: Copy { + fn cast(self) -> T; +} +} + +macro_rules! cast_into { + ($ty:ty) => { + cast_into!($ty; usize, isize, u8, i8, u16, i16, u32, i32, u64, i64, u128, i128); + }; + ($ty:ty; $($into:ty),*) => {$( + impl CastInto<$into> for $ty { + fn cast(self) -> $into { + self as $into + } + } + )*}; +} + +cast_into!(usize); +cast_into!(isize); +cast_into!(u8); +cast_into!(i8); +cast_into!(u16); +cast_into!(i16); +cast_into!(u32); +cast_into!(i32); +cast_into!(u64); +cast_into!(i64); +cast_into!(u128); +cast_into!(i128); diff --git a/src/rust/vendor/compiler_builtins/src/int/mul.rs b/src/rust/vendor/compiler_builtins/src/int/mul.rs new file mode 100644 index 000000000..2538e2f41 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/int/mul.rs @@ -0,0 +1,138 @@ +use crate::int::{DInt, HInt, Int}; + +trait Mul: DInt +where + Self::H: DInt, +{ + fn mul(self, rhs: Self) -> Self { + // In order to prevent infinite recursion, we cannot use the `widen_mul` in this: + //self.lo().widen_mul(rhs.lo()) + // .wrapping_add(self.lo().wrapping_mul(rhs.hi()).widen_hi()) + // .wrapping_add(self.hi().wrapping_mul(rhs.lo()).widen_hi()) + + let lhs_lo = self.lo(); + let rhs_lo = rhs.lo(); + // construct the widening multiplication using only `Self::H` sized multiplications + let tmp_0 = lhs_lo.lo().zero_widen_mul(rhs_lo.lo()); + let tmp_1 = lhs_lo.lo().zero_widen_mul(rhs_lo.hi()); + let tmp_2 = lhs_lo.hi().zero_widen_mul(rhs_lo.lo()); + let tmp_3 = lhs_lo.hi().zero_widen_mul(rhs_lo.hi()); + // sum up all widening partials + let mul = Self::from_lo_hi(tmp_0, tmp_3) + .wrapping_add(tmp_1.zero_widen() << (Self::BITS / 4)) + .wrapping_add(tmp_2.zero_widen() << (Self::BITS / 4)); + // add the higher partials + mul.wrapping_add(lhs_lo.wrapping_mul(rhs.hi()).widen_hi()) + .wrapping_add(self.hi().wrapping_mul(rhs_lo).widen_hi()) + } +} + +impl Mul for u64 {} +impl Mul for i128 {} + +pub(crate) trait UMulo: Int + DInt { + fn mulo(self, rhs: Self) -> (Self, bool) { + match (self.hi().is_zero(), rhs.hi().is_zero()) { + // overflow is guaranteed + (false, false) => (self.wrapping_mul(rhs), true), + (true, false) => { + let mul_lo = self.lo().widen_mul(rhs.lo()); + let mul_hi = self.lo().widen_mul(rhs.hi()); + let (mul, o) = mul_lo.overflowing_add(mul_hi.lo().widen_hi()); + (mul, o || !mul_hi.hi().is_zero()) + } + (false, true) => { + let mul_lo = rhs.lo().widen_mul(self.lo()); + let mul_hi = rhs.lo().widen_mul(self.hi()); + let (mul, o) = mul_lo.overflowing_add(mul_hi.lo().widen_hi()); + (mul, o || !mul_hi.hi().is_zero()) + } + // overflow is guaranteed to not happen, and use a smaller widening multiplication + (true, true) => (self.lo().widen_mul(rhs.lo()), false), + } + } +} + +impl UMulo for u32 {} +impl UMulo for u64 {} +impl UMulo for u128 {} + +macro_rules! impl_signed_mulo { + ($fn:ident, $iD:ident, $uD:ident) => { + fn $fn(lhs: $iD, rhs: $iD) -> ($iD, bool) { + let mut lhs = lhs; + let mut rhs = rhs; + // the test against `mul_neg` below fails without this early return + if lhs == 0 || rhs == 0 { + return (0, false); + } + + let lhs_neg = lhs < 0; + let rhs_neg = rhs < 0; + if lhs_neg { + lhs = lhs.wrapping_neg(); + } + if rhs_neg { + rhs = rhs.wrapping_neg(); + } + let mul_neg = lhs_neg != rhs_neg; + + let (mul, o) = (lhs as $uD).mulo(rhs as $uD); + let mut mul = mul as $iD; + + if mul_neg { + mul = mul.wrapping_neg(); + } + if (mul < 0) != mul_neg { + // this one check happens to catch all edge cases related to `$iD::MIN` + (mul, true) + } else { + (mul, o) + } + } + }; +} + +impl_signed_mulo!(i32_overflowing_mul, i32, u32); +impl_signed_mulo!(i64_overflowing_mul, i64, u64); +impl_signed_mulo!(i128_overflowing_mul, i128, u128); + +intrinsics! { + #[maybe_use_optimized_c_shim] + #[arm_aeabi_alias = __aeabi_lmul] + #[cfg(any(not(any(target_arch = "riscv32", target_arch = "riscv64")), target_feature = "m"))] + pub extern "C" fn __muldi3(a: u64, b: u64) -> u64 { + a.mul(b) + } + + pub extern "C" fn __multi3(a: i128, b: i128) -> i128 { + a.mul(b) + } + + pub extern "C" fn __mulosi4(a: i32, b: i32, oflow: &mut i32) -> i32 { + let (mul, o) = i32_overflowing_mul(a, b); + *oflow = o as i32; + mul + } + + pub extern "C" fn __mulodi4(a: i64, b: i64, oflow: &mut i32) -> i64 { + let (mul, o) = i64_overflowing_mul(a, b); + *oflow = o as i32; + mul + } + + #[unadjusted_on_win64] + pub extern "C" fn __muloti4(a: i128, b: i128, oflow: &mut i32) -> i128 { + let (mul, o) = i128_overflowing_mul(a, b); + *oflow = o as i32; + mul + } + + pub extern "C" fn __rust_i128_mulo(a: i128, b: i128) -> (i128, bool) { + i128_overflowing_mul(a, b) + } + + pub extern "C" fn __rust_u128_mulo(a: u128, b: u128) -> (u128, bool) { + a.mulo(b) + } +} diff --git a/src/rust/vendor/compiler_builtins/src/int/sdiv.rs b/src/rust/vendor/compiler_builtins/src/int/sdiv.rs new file mode 100644 index 000000000..9d316c76e --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/int/sdiv.rs @@ -0,0 +1,169 @@ +use crate::int::udiv::*; + +macro_rules! sdivmod { + ( + $unsigned_fn:ident, // name of the unsigned division function + $signed_fn:ident, // name of the signed division function + $uX:ident, // unsigned integer type for the inputs and outputs of `$unsigned_name` + $iX:ident, // signed integer type for the inputs and outputs of `$signed_name` + $($attr:tt),* // attributes + ) => { + intrinsics! { + #[avr_skip] + $( + #[$attr] + )* + /// Returns `n / d` and sets `*rem = n % d` + pub extern "C" fn $signed_fn(a: $iX, b: $iX, rem: &mut $iX) -> $iX { + let a_neg = a < 0; + let b_neg = b < 0; + let mut a = a; + let mut b = b; + if a_neg { + a = a.wrapping_neg(); + } + if b_neg { + b = b.wrapping_neg(); + } + let mut r = *rem as $uX; + let t = $unsigned_fn(a as $uX, b as $uX, Some(&mut r)) as $iX; + let mut r = r as $iX; + if a_neg { + r = r.wrapping_neg(); + } + *rem = r; + if a_neg != b_neg { + t.wrapping_neg() + } else { + t + } + } + } + } +} + +macro_rules! sdiv { + ( + $unsigned_fn:ident, // name of the unsigned division function + $signed_fn:ident, // name of the signed division function + $uX:ident, // unsigned integer type for the inputs and outputs of `$unsigned_name` + $iX:ident, // signed integer type for the inputs and outputs of `$signed_name` + $($attr:tt),* // attributes + ) => { + intrinsics! { + #[avr_skip] + $( + #[$attr] + )* + /// Returns `n / d` + pub extern "C" fn $signed_fn(a: $iX, b: $iX) -> $iX { + let a_neg = a < 0; + let b_neg = b < 0; + let mut a = a; + let mut b = b; + if a_neg { + a = a.wrapping_neg(); + } + if b_neg { + b = b.wrapping_neg(); + } + let t = $unsigned_fn(a as $uX, b as $uX) as $iX; + if a_neg != b_neg { + t.wrapping_neg() + } else { + t + } + } + } + } +} + +macro_rules! smod { + ( + $unsigned_fn:ident, // name of the unsigned division function + $signed_fn:ident, // name of the signed division function + $uX:ident, // unsigned integer type for the inputs and outputs of `$unsigned_name` + $iX:ident, // signed integer type for the inputs and outputs of `$signed_name` + $($attr:tt),* // attributes + ) => { + intrinsics! { + #[avr_skip] + $( + #[$attr] + )* + /// Returns `n % d` + pub extern "C" fn $signed_fn(a: $iX, b: $iX) -> $iX { + let a_neg = a < 0; + let b_neg = b < 0; + let mut a = a; + let mut b = b; + if a_neg { + a = a.wrapping_neg(); + } + if b_neg { + b = b.wrapping_neg(); + } + let r = $unsigned_fn(a as $uX, b as $uX) as $iX; + if a_neg { + r.wrapping_neg() + } else { + r + } + } + } + } +} + +sdivmod!( + __udivmodsi4, + __divmodsi4, + u32, + i32, + maybe_use_optimized_c_shim +); +// The `#[arm_aeabi_alias = __aeabi_idiv]` attribute cannot be made to work with `intrinsics!` in macros +intrinsics! { + #[maybe_use_optimized_c_shim] + #[arm_aeabi_alias = __aeabi_idiv] + /// Returns `n / d` + pub extern "C" fn __divsi3(a: i32, b: i32) -> i32 { + let a_neg = a < 0; + let b_neg = b < 0; + let mut a = a; + let mut b = b; + if a_neg { + a = a.wrapping_neg(); + } + if b_neg { + b = b.wrapping_neg(); + } + let t = __udivsi3(a as u32, b as u32) as i32; + if a_neg != b_neg { + t.wrapping_neg() + } else { + t + } + } +} +smod!(__umodsi3, __modsi3, u32, i32, maybe_use_optimized_c_shim); + +sdivmod!( + __udivmoddi4, + __divmoddi4, + u64, + i64, + maybe_use_optimized_c_shim +); +sdiv!(__udivdi3, __divdi3, u64, i64, maybe_use_optimized_c_shim); +smod!(__umoddi3, __moddi3, u64, i64, maybe_use_optimized_c_shim); + +// LLVM does not currently have a `__divmodti4` function, but GCC does +sdivmod!( + __udivmodti4, + __divmodti4, + u128, + i128, + maybe_use_optimized_c_shim +); +sdiv!(__udivti3, __divti3, u128, i128, win64_128bit_abi_hack); +smod!(__umodti3, __modti3, u128, i128, win64_128bit_abi_hack); diff --git a/src/rust/vendor/compiler_builtins/src/int/shift.rs b/src/rust/vendor/compiler_builtins/src/int/shift.rs new file mode 100644 index 000000000..dbd040187 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/int/shift.rs @@ -0,0 +1,125 @@ +use crate::int::{DInt, HInt, Int}; + +trait Ashl: DInt { + /// Returns `a << b`, requires `b < Self::BITS` + fn ashl(self, shl: u32) -> Self { + let n_h = Self::H::BITS; + if shl & n_h != 0 { + // we only need `self.lo()` because `self.hi()` will be shifted out entirely + self.lo().wrapping_shl(shl - n_h).widen_hi() + } else if shl == 0 { + self + } else { + Self::from_lo_hi( + self.lo().wrapping_shl(shl), + self.lo().logical_shr(n_h.wrapping_sub(shl)) | self.hi().wrapping_shl(shl), + ) + } + } +} + +impl Ashl for u32 {} +impl Ashl for u64 {} +impl Ashl for u128 {} + +trait Ashr: DInt { + /// Returns arithmetic `a >> b`, requires `b < Self::BITS` + fn ashr(self, shr: u32) -> Self { + let n_h = Self::H::BITS; + if shr & n_h != 0 { + Self::from_lo_hi( + self.hi().wrapping_shr(shr - n_h), + // smear the sign bit + self.hi().wrapping_shr(n_h - 1), + ) + } else if shr == 0 { + self + } else { + Self::from_lo_hi( + self.lo().logical_shr(shr) | self.hi().wrapping_shl(n_h.wrapping_sub(shr)), + self.hi().wrapping_shr(shr), + ) + } + } +} + +impl Ashr for i32 {} +impl Ashr for i64 {} +impl Ashr for i128 {} + +trait Lshr: DInt { + /// Returns logical `a >> b`, requires `b < Self::BITS` + fn lshr(self, shr: u32) -> Self { + let n_h = Self::H::BITS; + if shr & n_h != 0 { + self.hi().logical_shr(shr - n_h).zero_widen() + } else if shr == 0 { + self + } else { + Self::from_lo_hi( + self.lo().logical_shr(shr) | self.hi().wrapping_shl(n_h.wrapping_sub(shr)), + self.hi().logical_shr(shr), + ) + } + } +} + +impl Lshr for u32 {} +impl Lshr for u64 {} +impl Lshr for u128 {} + +intrinsics! { + #[avr_skip] + #[maybe_use_optimized_c_shim] + pub extern "C" fn __ashlsi3(a: u32, b: u32) -> u32 { + a.ashl(b) + } + + #[avr_skip] + #[maybe_use_optimized_c_shim] + #[arm_aeabi_alias = __aeabi_llsl] + pub extern "C" fn __ashldi3(a: u64, b: core::ffi::c_uint) -> u64 { + a.ashl(b as u32) + } + + #[avr_skip] + pub extern "C" fn __ashlti3(a: u128, b: u32) -> u128 { + a.ashl(b) + } + + #[avr_skip] + #[maybe_use_optimized_c_shim] + pub extern "C" fn __ashrsi3(a: i32, b: u32) -> i32 { + a.ashr(b) + } + + #[avr_skip] + #[maybe_use_optimized_c_shim] + #[arm_aeabi_alias = __aeabi_lasr] + pub extern "C" fn __ashrdi3(a: i64, b: core::ffi::c_uint) -> i64 { + a.ashr(b as u32) + } + + #[avr_skip] + pub extern "C" fn __ashrti3(a: i128, b: u32) -> i128 { + a.ashr(b) + } + + #[avr_skip] + #[maybe_use_optimized_c_shim] + pub extern "C" fn __lshrsi3(a: u32, b: u32) -> u32 { + a.lshr(b) + } + + #[avr_skip] + #[maybe_use_optimized_c_shim] + #[arm_aeabi_alias = __aeabi_llsr] + pub extern "C" fn __lshrdi3(a: u64, b: core::ffi::c_uint) -> u64 { + a.lshr(b as u32) + } + + #[avr_skip] + pub extern "C" fn __lshrti3(a: u128, b: u32) -> u128 { + a.lshr(b) + } +} diff --git a/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/asymmetric.rs b/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/asymmetric.rs new file mode 100644 index 000000000..56ce188a3 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/asymmetric.rs @@ -0,0 +1,69 @@ +/// Creates an unsigned division function optimized for dividing integers with the same +/// bitwidth as the largest operand in an asymmetrically sized division. For example, x86-64 has an +/// assembly instruction that can divide a 128 bit integer by a 64 bit integer if the quotient fits +/// in 64 bits. The 128 bit version of this algorithm would use that fast hardware division to +/// construct a full 128 bit by 128 bit division. +#[allow(unused_macros)] +macro_rules! impl_asymmetric { + ( + $fn:ident, // name of the unsigned division function + $zero_div_fn:ident, // function called when division by zero is attempted + $half_division:ident, // function for division of a $uX by a $uX + $asymmetric_division:ident, // function for division of a $uD by a $uX + $n_h:expr, // the number of bits in a $iH or $uH + $uH:ident, // unsigned integer with half the bit width of $uX + $uX:ident, // unsigned integer with half the bit width of $uD + $uD:ident // unsigned integer type for the inputs and outputs of `$fn` + ) => { + /// Computes the quotient and remainder of `duo` divided by `div` and returns them as a + /// tuple. + pub fn $fn(duo: $uD, div: $uD) -> ($uD, $uD) { + let n: u32 = $n_h * 2; + + let duo_lo = duo as $uX; + let duo_hi = (duo >> n) as $uX; + let div_lo = div as $uX; + let div_hi = (div >> n) as $uX; + if div_hi == 0 { + if div_lo == 0 { + $zero_div_fn() + } + if duo_hi < div_lo { + // `$uD` by `$uX` division with a quotient that will fit into a `$uX` + let (quo, rem) = unsafe { $asymmetric_division(duo, div_lo) }; + return (quo as $uD, rem as $uD); + } else { + // Short division using the $uD by $uX division + let (quo_hi, rem_hi) = $half_division(duo_hi, div_lo); + let tmp = unsafe { + $asymmetric_division((duo_lo as $uD) | ((rem_hi as $uD) << n), div_lo) + }; + return ((tmp.0 as $uD) | ((quo_hi as $uD) << n), tmp.1 as $uD); + } + } + + // This has been adapted from + // https://www.codeproject.com/tips/785014/uint-division-modulus which was in turn + // adapted from Hacker's Delight. This is similar to the two possibility algorithm + // in that it uses only more significant parts of `duo` and `div` to divide a large + // integer with a smaller division instruction. + let div_lz = div_hi.leading_zeros(); + let div_extra = n - div_lz; + let div_sig_n = (div >> div_extra) as $uX; + let tmp = unsafe { $asymmetric_division(duo >> 1, div_sig_n) }; + + let mut quo = tmp.0 >> ((n - 1) - div_lz); + if quo != 0 { + quo -= 1; + } + + // Note that this is a full `$uD` multiplication being used here + let mut rem = duo - (quo as $uD).wrapping_mul(div); + if div <= rem { + quo += 1; + rem -= div; + } + return (quo as $uD, rem); + } + }; +} diff --git a/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/binary_long.rs b/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/binary_long.rs new file mode 100644 index 000000000..2c61a45e0 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/binary_long.rs @@ -0,0 +1,552 @@ +/// Creates an unsigned division function that uses binary long division, designed for +/// computer architectures without division instructions. These functions have good performance for +/// microarchitectures with large branch miss penalties and architectures without the ability to +/// predicate instructions. For architectures with predicated instructions, one of the algorithms +/// described in the documentation of these functions probably has higher performance, and a custom +/// assembly routine should be used instead. +#[allow(unused_macros)] +macro_rules! impl_binary_long { + ( + $fn:ident, // name of the unsigned division function + $zero_div_fn:ident, // function called when division by zero is attempted + $normalization_shift:ident, // function for finding the normalization shift + $n:tt, // the number of bits in a $iX or $uX + $uX:ident, // unsigned integer type for the inputs and outputs of `$fn` + $iX:ident // signed integer type with same bitwidth as `$uX` + $(, $fun_attr:meta)* // attributes for the function + ) => { + /// Computes the quotient and remainder of `duo` divided by `div` and returns them as a + /// tuple. + $( + #[$fun_attr] + )* + pub fn $fn(duo: $uX, div: $uX) -> ($uX, $uX) { + let mut duo = duo; + // handle edge cases before calling `$normalization_shift` + if div == 0 { + $zero_div_fn() + } + if duo < div { + return (0, duo); + } + + // There are many variations of binary division algorithm that could be used. This + // documentation gives a tour of different methods so that future readers wanting to + // optimize further do not have to painstakingly derive them. The SWAR variation is + // especially hard to understand without reading the less convoluted methods first. + + // You may notice that a `duo < div_original` check is included in many these + // algorithms. A critical optimization that many algorithms miss is handling of + // quotients that will turn out to have many trailing zeros or many leading zeros. This + // happens in cases of exact or close-to-exact divisions, divisions by power of two, and + // in cases where the quotient is small. The `duo < div_original` check handles these + // cases of early returns and ends up replacing other kinds of mundane checks that + // normally terminate a binary division algorithm. + // + // Something you may see in other algorithms that is not special-cased here is checks + // for division by powers of two. The `duo < div_original` check handles this case and + // more, however it can be checked up front before the bisection using the + // `((div > 0) && ((div & (div - 1)) == 0))` trick. This is not special-cased because + // compilers should handle most cases where divisions by power of two occur, and we do + // not want to add on a few cycles for every division operation just to save a few + // cycles rarely. + + // The following example is the most straightforward translation from the way binary + // long division is typically visualized: + // Dividing 178u8 (0b10110010) by 6u8 (0b110). `div` is shifted left by 5, according to + // the result from `$normalization_shift(duo, div, false)`. + // + // Step 0: `sub` is negative, so there is not full normalization, so no `quo` bit is set + // and `duo` is kept unchanged. + // duo:10110010, div_shifted:11000000, sub:11110010, quo:00000000, shl:5 + // + // Step 1: `sub` is positive, set a `quo` bit and update `duo` for next step. + // duo:10110010, div_shifted:01100000, sub:01010010, quo:00010000, shl:4 + // + // Step 2: Continue based on `sub`. The `quo` bits start accumulating. + // duo:01010010, div_shifted:00110000, sub:00100010, quo:00011000, shl:3 + // duo:00100010, div_shifted:00011000, sub:00001010, quo:00011100, shl:2 + // duo:00001010, div_shifted:00001100, sub:11111110, quo:00011100, shl:1 + // duo:00001010, div_shifted:00000110, sub:00000100, quo:00011100, shl:0 + // The `duo < div_original` check terminates the algorithm with the correct quotient of + // 29u8 and remainder of 4u8 + /* + let div_original = div; + let mut shl = $normalization_shift(duo, div, false); + let mut quo = 0; + loop { + let div_shifted = div << shl; + let sub = duo.wrapping_sub(div_shifted); + // it is recommended to use `println!`s like this if functionality is unclear + /* + println!("duo:{:08b}, div_shifted:{:08b}, sub:{:08b}, quo:{:08b}, shl:{}", + duo, + div_shifted, + sub, + quo, + shl + ); + */ + if 0 <= (sub as $iX) { + duo = sub; + quo += 1 << shl; + if duo < div_original { + // this branch is optional + return (quo, duo) + } + } + if shl == 0 { + return (quo, duo) + } + shl -= 1; + } + */ + + // This restoring binary long division algorithm reduces the number of operations + // overall via: + // - `pow` can be shifted right instead of recalculating from `shl` + // - starting `div` shifted left and shifting it right for each step instead of + // recalculating from `shl` + // - The `duo < div_original` branch is used to terminate the algorithm instead of the + // `shl == 0` branch. This check is strong enough to prevent set bits of `pow` and + // `div` from being shifted off the end. This check also only occurs on half of steps + // on average, since it is behind the `(sub as $iX) >= 0` branch. + // - `shl` is now not needed by any aspect of of the loop and thus only 3 variables are + // being updated between steps + // + // There are many variations of this algorithm, but this encompases the largest number + // of architectures and does not rely on carry flags, add-with-carry, or SWAR + // complications to be decently fast. + /* + let div_original = div; + let shl = $normalization_shift(duo, div, false); + let mut div: $uX = div << shl; + let mut pow: $uX = 1 << shl; + let mut quo: $uX = 0; + loop { + let sub = duo.wrapping_sub(div); + if 0 <= (sub as $iX) { + duo = sub; + quo |= pow; + if duo < div_original { + return (quo, duo) + } + } + div >>= 1; + pow >>= 1; + } + */ + + // If the architecture has flags and predicated arithmetic instructions, it is possible + // to do binary long division without branching and in only 3 or 4 instructions. This is + // a variation of a 3 instruction central loop from + // http://www.chiark.greenend.org.uk/~theom/riscos/docs/ultimate/a252div.txt. + // + // What allows doing division in only 3 instructions is realizing that instead of + // keeping `duo` in place and shifting `div` right to align bits, `div` can be kept in + // place and `duo` can be shifted left. This means `div` does not have to be updated, + // but causes edge case problems and makes `duo < div_original` tests harder. Some + // architectures have an option to shift an argument in an arithmetic operation, which + // means `duo` can be shifted left and subtracted from in one instruction. The other two + // instructions are updating `quo` and undoing the subtraction if it turns out things + // were not normalized. + + /* + // Perform one binary long division step on the already normalized arguments, because + // the main. Note that this does a full normalization since the central loop needs + // `duo.leading_zeros()` to be at least 1 more than `div.leading_zeros()`. The original + // variation only did normalization to the nearest 4 steps, but this makes handling edge + // cases much harder. We do a full normalization and perform a binary long division + // step. In the edge case where the msbs of `duo` and `div` are set, it clears the msb + // of `duo`, then the edge case handler shifts `div` right and does another long + // division step to always insure `duo.leading_zeros() + 1 >= div.leading_zeros()`. + let div_original = div; + let mut shl = $normalization_shift(duo, div, true); + let mut div: $uX = (div << shl); + let mut quo: $uX = 1; + duo = duo.wrapping_sub(div); + if duo < div_original { + return (1 << shl, duo); + } + let div_neg: $uX; + if (div as $iX) < 0 { + // A very ugly edge case where the most significant bit of `div` is set (after + // shifting to match `duo` when its most significant bit is at the sign bit), which + // leads to the sign bit of `div_neg` being cut off and carries not happening when + // they should. This branch performs a long division step that keeps `duo` in place + // and shifts `div` down. + div >>= 1; + div_neg = div.wrapping_neg(); + let (sub, carry) = duo.overflowing_add(div_neg); + duo = sub; + quo = quo.wrapping_add(quo).wrapping_add(carry as $uX); + if !carry { + duo = duo.wrapping_add(div); + } + shl -= 1; + } else { + div_neg = div.wrapping_neg(); + } + // The add-with-carry that updates `quo` needs to have the carry set when a normalized + // subtract happens. Using `duo.wrapping_shl(1).overflowing_sub(div)` to do the + // subtraction generates a carry when an unnormalized subtract happens, which is the + // opposite of what we want. Instead, we use + // `duo.wrapping_shl(1).overflowing_add(div_neg)`, where `div_neg` is negative `div`. + let mut i = shl; + loop { + if i == 0 { + break; + } + i -= 1; + // `ADDS duo, div, duo, LSL #1` + // (add `div` to `duo << 1` and set flags) + let (sub, carry) = duo.wrapping_shl(1).overflowing_add(div_neg); + duo = sub; + // `ADC quo, quo, quo` + // (add with carry). Effectively shifts `quo` left by 1 and sets the least + // significant bit to the carry. + quo = quo.wrapping_add(quo).wrapping_add(carry as $uX); + // `ADDCC duo, duo, div` + // (add if carry clear). Undoes the subtraction if no carry was generated. + if !carry { + duo = duo.wrapping_add(div); + } + } + return (quo, duo >> shl); + */ + + // This is the SWAR (SIMD within in a register) restoring division algorithm. + // This combines several ideas of the above algorithms: + // - If `duo` is shifted left instead of shifting `div` right like in the 3 instruction + // restoring division algorithm, some architectures can do the shifting and + // subtraction step in one instruction. + // - `quo` can be constructed by adding powers-of-two to it or shifting it left by one + // and adding one. + // - Every time `duo` is shifted left, there is another unused 0 bit shifted into the + // LSB, so what if we use those bits to store `quo`? + // Through a complex setup, it is possible to manage `duo` and `quo` in the same + // register, and perform one step with 2 or 3 instructions. The only major downsides are + // that there is significant setup (it is only saves instructions if `shl` is + // approximately more than 4), `duo < div_original` checks are impractical once SWAR is + // initiated, and the number of division steps taken has to be exact (we cannot do more + // division steps than `shl`, because it introduces edge cases where quotient bits in + // `duo` start to collide with the real part of `div`. + /* + // first step. The quotient bit is stored in `quo` for now + let div_original = div; + let mut shl = $normalization_shift(duo, div, true); + let mut div: $uX = (div << shl); + duo = duo.wrapping_sub(div); + let mut quo: $uX = 1 << shl; + if duo < div_original { + return (quo, duo); + } + + let mask: $uX; + if (div as $iX) < 0 { + // deal with same edge case as the 3 instruction restoring division algorithm, but + // the quotient bit from this step also has to be stored in `quo` + div >>= 1; + shl -= 1; + let tmp = 1 << shl; + mask = tmp - 1; + let sub = duo.wrapping_sub(div); + if (sub as $iX) >= 0 { + // restore + duo = sub; + quo |= tmp; + } + if duo < div_original { + return (quo, duo); + } + } else { + mask = quo - 1; + } + // There is now room for quotient bits in `duo`. + + // Note that `div` is already shifted left and has `shl` unset bits. We subtract 1 from + // `div` and end up with the subset of `shl` bits being all being set. This subset acts + // just like a two's complement negative one. The subset of `div` containing the divisor + // had 1 subtracted from it, but a carry will always be generated from the `shl` subset + // as long as the quotient stays positive. + // + // When the modified `div` is subtracted from `duo.wrapping_shl(1)`, the `shl` subset + // adds a quotient bit to the least significant bit. + // For example, 89 (0b01011001) divided by 3 (0b11): + // + // shl:4, div:0b00110000 + // first step: + // duo:0b01011001 + // + div_neg:0b11010000 + // ____________________ + // 0b00101001 + // quo is set to 0b00010000 and mask is set to 0b00001111 for later + // + // 1 is subtracted from `div`. I will differentiate the `shl` part of `div` and the + // quotient part of `duo` with `^`s. + // chars. + // div:0b00110000 + // ^^^^ + // + 0b11111111 + // ________________ + // 0b00101111 + // ^^^^ + // div_neg:0b11010001 + // + // first SWAR step: + // duo_shl1:0b01010010 + // ^ + // + div_neg:0b11010001 + // ____________________ + // 0b00100011 + // ^ + // second: + // duo_shl1:0b01000110 + // ^^ + // + div_neg:0b11010001 + // ____________________ + // 0b00010111 + // ^^ + // third: + // duo_shl1:0b00101110 + // ^^^ + // + div_neg:0b11010001 + // ____________________ + // 0b11111111 + // ^^^ + // 3 steps resulted in the quotient with 3 set bits as expected, but currently the real + // part of `duo` is negative and the third step was an unnormalized step. The restore + // branch then restores `duo`. Note that the restore branch does not shift `duo` left. + // + // duo:0b11111111 + // ^^^ + // + div:0b00101111 + // ^^^^ + // ________________ + // 0b00101110 + // ^^^ + // `duo` is now back in the `duo_shl1` state it was at in the the third step, with an + // unset quotient bit. + // + // final step (`shl` was 4, so exactly 4 steps must be taken) + // duo_shl1:0b01011100 + // ^^^^ + // + div_neg:0b11010001 + // ____________________ + // 0b00101101 + // ^^^^ + // The quotient includes the `^` bits added with the `quo` bits from the beginning that + // contained the first step and potential edge case step, + // `quo:0b00010000 + (duo:0b00101101 & mask:0b00001111) == 0b00011101 == 29u8`. + // The remainder is the bits remaining in `duo` that are not part of the quotient bits, + // `duo:0b00101101 >> shl == 0b0010 == 2u8`. + let div: $uX = div.wrapping_sub(1); + let mut i = shl; + loop { + if i == 0 { + break; + } + i -= 1; + duo = duo.wrapping_shl(1).wrapping_sub(div); + if (duo as $iX) < 0 { + // restore + duo = duo.wrapping_add(div); + } + } + // unpack the results of SWAR + return ((duo & mask) | quo, duo >> shl); + */ + + // The problem with the conditional restoring SWAR algorithm above is that, in practice, + // it requires assembly code to bring out its full unrolled potential (It seems that + // LLVM can't use unrolled conditionals optimally and ends up erasing all the benefit + // that my algorithm intends. On architectures without predicated instructions, the code + // gen is especially bad. We need a default software division algorithm that is + // guaranteed to get decent code gen for the central loop. + + // For non-SWAR algorithms, there is a way to do binary long division without + // predication or even branching. This involves creating a mask from the sign bit and + // performing different kinds of steps using that. + /* + let shl = $normalization_shift(duo, div, true); + let mut div: $uX = div << shl; + let mut pow: $uX = 1 << shl; + let mut quo: $uX = 0; + loop { + let sub = duo.wrapping_sub(div); + let sign_mask = !((sub as $iX).wrapping_shr($n - 1) as $uX); + duo -= div & sign_mask; + quo |= pow & sign_mask; + div >>= 1; + pow >>= 1; + if pow == 0 { + break; + } + } + return (quo, duo); + */ + // However, it requires about 4 extra operations (smearing the sign bit, negating the + // mask, and applying the mask twice) on top of the operations done by the actual + // algorithm. With SWAR however, just 2 extra operations are needed, making it + // practical and even the most optimal algorithm for some architectures. + + // What we do is use custom assembly for predicated architectures that need software + // division, and for the default algorithm use a mask based restoring SWAR algorithm + // without conditionals or branches. On almost all architectures, this Rust code is + // guaranteed to compile down to 5 assembly instructions or less for each step, and LLVM + // will unroll it in a decent way. + + // standard opening for SWAR algorithm with first step and edge case handling + let div_original = div; + let mut shl = $normalization_shift(duo, div, true); + let mut div: $uX = (div << shl); + duo = duo.wrapping_sub(div); + let mut quo: $uX = 1 << shl; + if duo < div_original { + return (quo, duo); + } + let mask: $uX; + if (div as $iX) < 0 { + div >>= 1; + shl -= 1; + let tmp = 1 << shl; + mask = tmp - 1; + let sub = duo.wrapping_sub(div); + if (sub as $iX) >= 0 { + duo = sub; + quo |= tmp; + } + if duo < div_original { + return (quo, duo); + } + } else { + mask = quo - 1; + } + + // central loop + div = div.wrapping_sub(1); + let mut i = shl; + loop { + if i == 0 { + break; + } + i -= 1; + // shift left 1 and subtract + duo = duo.wrapping_shl(1).wrapping_sub(div); + // create mask + let mask = (duo as $iX).wrapping_shr($n - 1) as $uX; + // restore + duo = duo.wrapping_add(div & mask); + } + // unpack + return ((duo & mask) | quo, duo >> shl); + + // miscellanious binary long division algorithms that might be better for specific + // architectures + + // Another kind of long division uses an interesting fact that `div` and `pow` can be + // negated when `duo` is negative to perform a "negated" division step that works in + // place of any normalization mechanism. This is a non-restoring division algorithm that + // is very similar to the non-restoring division algorithms that can be found on the + // internet, except there is only one test for `duo < 0`. The subtraction from `quo` can + // be viewed as shifting the least significant set bit right (e.x. if we enter a series + // of negated binary long division steps starting with `quo == 0b1011_0000` and + // `pow == 0b0000_1000`, `quo` will progress like this: 0b1010_1000, 0b1010_0100, + // 0b1010_0010, 0b1010_0001). + /* + let div_original = div; + let shl = $normalization_shift(duo, div, true); + let mut div: $uX = (div << shl); + let mut pow: $uX = 1 << shl; + let mut quo: $uX = pow; + duo = duo.wrapping_sub(div); + if duo < div_original { + return (quo, duo); + } + div >>= 1; + pow >>= 1; + loop { + if (duo as $iX) < 0 { + // Negated binary long division step. + duo = duo.wrapping_add(div); + quo = quo.wrapping_sub(pow); + } else { + // Normal long division step. + if duo < div_original { + return (quo, duo) + } + duo = duo.wrapping_sub(div); + quo = quo.wrapping_add(pow); + } + pow >>= 1; + div >>= 1; + } + */ + + // This is the Nonrestoring SWAR algorithm, combining the nonrestoring algorithm with + // SWAR techniques that makes the only difference between steps be negation of `div`. + // If there was an architecture with an instruction that negated inputs to an adder + // based on conditionals, and in place shifting (or a three input addition operation + // that can have `duo` as two of the inputs to effectively shift it left by 1), then a + // single instruction central loop is possible. Microarchitectures often have inputs to + // their ALU that can invert the arguments and carry in of adders, but the architectures + // unfortunately do not have an instruction to dynamically invert this input based on + // conditionals. + /* + // SWAR opening + let div_original = div; + let mut shl = $normalization_shift(duo, div, true); + let mut div: $uX = (div << shl); + duo = duo.wrapping_sub(div); + let mut quo: $uX = 1 << shl; + if duo < div_original { + return (quo, duo); + } + let mask: $uX; + if (div as $iX) < 0 { + div >>= 1; + shl -= 1; + let tmp = 1 << shl; + let sub = duo.wrapping_sub(div); + if (sub as $iX) >= 0 { + // restore + duo = sub; + quo |= tmp; + } + if duo < div_original { + return (quo, duo); + } + mask = tmp - 1; + } else { + mask = quo - 1; + } + + // central loop + let div: $uX = div.wrapping_sub(1); + let mut i = shl; + loop { + if i == 0 { + break; + } + i -= 1; + // note: the `wrapping_shl(1)` can be factored out, but would require another + // restoring division step to prevent `(duo as $iX)` from overflowing + if (duo as $iX) < 0 { + // Negated binary long division step. + duo = duo.wrapping_shl(1).wrapping_add(div); + } else { + // Normal long division step. + duo = duo.wrapping_shl(1).wrapping_sub(div); + } + } + if (duo as $iX) < 0 { + // Restore. This was not needed in the original nonrestoring algorithm because of + // the `duo < div_original` checks. + duo = duo.wrapping_add(div); + } + // unpack + return ((duo & mask) | quo, duo >> shl); + */ + } + }; +} diff --git a/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/delegate.rs b/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/delegate.rs new file mode 100644 index 000000000..330c6e4f8 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/delegate.rs @@ -0,0 +1,319 @@ +/// Creates an unsigned division function that uses a combination of hardware division and +/// binary long division to divide integers larger than what hardware division by itself can do. This +/// function is intended for microarchitectures that have division hardware, but not fast enough +/// multiplication hardware for `impl_trifecta` to be faster. +#[allow(unused_macros)] +macro_rules! impl_delegate { + ( + $fn:ident, // name of the unsigned division function + $zero_div_fn:ident, // function called when division by zero is attempted + $half_normalization_shift:ident, // function for finding the normalization shift of $uX + $half_division:ident, // function for division of a $uX by a $uX + $n_h:expr, // the number of bits in $iH or $uH + $uH:ident, // unsigned integer with half the bit width of $uX + $uX:ident, // unsigned integer with half the bit width of $uD. + $uD:ident, // unsigned integer type for the inputs and outputs of `$fn` + $iD:ident // signed integer type with the same bitwidth as `$uD` + ) => { + /// Computes the quotient and remainder of `duo` divided by `div` and returns them as a + /// tuple. + pub fn $fn(duo: $uD, div: $uD) -> ($uD, $uD) { + // The two possibility algorithm, undersubtracting long division algorithm, or any kind + // of reciprocal based algorithm will not be fastest, because they involve large + // multiplications that we assume to not be fast enough relative to the divisions to + // outweigh setup times. + + // the number of bits in a $uX + let n = $n_h * 2; + + let duo_lo = duo as $uX; + let duo_hi = (duo >> n) as $uX; + let div_lo = div as $uX; + let div_hi = (div >> n) as $uX; + + match (div_lo == 0, div_hi == 0, duo_hi == 0) { + (true, true, _) => $zero_div_fn(), + (_, false, true) => { + // `duo` < `div` + return (0, duo); + } + (false, true, true) => { + // delegate to smaller division + let tmp = $half_division(duo_lo, div_lo); + return (tmp.0 as $uD, tmp.1 as $uD); + } + (false, true, false) => { + if duo_hi < div_lo { + // `quo_hi` will always be 0. This performs a binary long division algorithm + // to zero `duo_hi` followed by a half division. + + // We can calculate the normalization shift using only `$uX` size functions. + // If we calculated the normalization shift using + // `$half_normalization_shift(duo_hi, div_lo false)`, it would break the + // assumption the function has that the first argument is more than the + // second argument. If the arguments are switched, the assumption holds true + // since `duo_hi < div_lo`. + let norm_shift = $half_normalization_shift(div_lo, duo_hi, false); + let shl = if norm_shift == 0 { + // Consider what happens if the msbs of `duo_hi` and `div_lo` align with + // no shifting. The normalization shift will always return + // `norm_shift == 0` regardless of whether it is fully normalized, + // because `duo_hi < div_lo`. In that edge case, `n - norm_shift` would + // result in shift overflow down the line. For the edge case, because + // both `duo_hi < div_lo` and we are comparing all the significant bits + // of `duo_hi` and `div`, we can make `shl = n - 1`. + n - 1 + } else { + // We also cannot just use `shl = n - norm_shift - 1` in the general + // case, because when we are not in the edge case comparing all the + // significant bits, then the full `duo < div` may not be true and thus + // breaks the division algorithm. + n - norm_shift + }; + + // The 3 variable restoring division algorithm (see binary_long.rs) is ideal + // for this task, since `pow` and `quo` can be `$uX` and the delegation + // check is simple. + let mut div: $uD = div << shl; + let mut pow_lo: $uX = 1 << shl; + let mut quo_lo: $uX = 0; + let mut duo = duo; + loop { + let sub = duo.wrapping_sub(div); + if 0 <= (sub as $iD) { + duo = sub; + quo_lo |= pow_lo; + let duo_hi = (duo >> n) as $uX; + if duo_hi == 0 { + // Delegate to get the rest of the quotient. Note that the + // `div_lo` here is the original unshifted `div`. + let tmp = $half_division(duo as $uX, div_lo); + return ((quo_lo | tmp.0) as $uD, tmp.1 as $uD); + } + } + div >>= 1; + pow_lo >>= 1; + } + } else if duo_hi == div_lo { + // `quo_hi == 1`. This branch is cheap and helps with edge cases. + let tmp = $half_division(duo as $uX, div as $uX); + return ((1 << n) | (tmp.0 as $uD), tmp.1 as $uD); + } else { + // `div_lo < duo_hi` + // `rem_hi == 0` + if (div_lo >> $n_h) == 0 { + // Short division of $uD by a $uH, using $uX by $uX division + let div_0 = div_lo as $uH as $uX; + let (quo_hi, rem_3) = $half_division(duo_hi, div_0); + + let duo_mid = ((duo >> $n_h) as $uH as $uX) | (rem_3 << $n_h); + let (quo_1, rem_2) = $half_division(duo_mid, div_0); + + let duo_lo = (duo as $uH as $uX) | (rem_2 << $n_h); + let (quo_0, rem_1) = $half_division(duo_lo, div_0); + + return ( + (quo_0 as $uD) | ((quo_1 as $uD) << $n_h) | ((quo_hi as $uD) << n), + rem_1 as $uD, + ); + } + + // This is basically a short division composed of a half division for the hi + // part, specialized 3 variable binary long division in the middle, and + // another half division for the lo part. + let duo_lo = duo as $uX; + let tmp = $half_division(duo_hi, div_lo); + let quo_hi = tmp.0; + let mut duo = (duo_lo as $uD) | ((tmp.1 as $uD) << n); + // This check is required to avoid breaking the long division below. + if duo < div { + return ((quo_hi as $uD) << n, duo); + } + + // The half division handled all shift alignments down to `n`, so this + // division can continue with a shift of `n - 1`. + let mut div: $uD = div << (n - 1); + let mut pow_lo: $uX = 1 << (n - 1); + let mut quo_lo: $uX = 0; + loop { + let sub = duo.wrapping_sub(div); + if 0 <= (sub as $iD) { + duo = sub; + quo_lo |= pow_lo; + let duo_hi = (duo >> n) as $uX; + if duo_hi == 0 { + // Delegate to get the rest of the quotient. Note that the + // `div_lo` here is the original unshifted `div`. + let tmp = $half_division(duo as $uX, div_lo); + return ( + (tmp.0) as $uD | (quo_lo as $uD) | ((quo_hi as $uD) << n), + tmp.1 as $uD, + ); + } + } + div >>= 1; + pow_lo >>= 1; + } + } + } + (_, false, false) => { + // Full $uD by $uD binary long division. `quo_hi` will always be 0. + if duo < div { + return (0, duo); + } + let div_original = div; + let shl = $half_normalization_shift(duo_hi, div_hi, false); + let mut duo = duo; + let mut div: $uD = div << shl; + let mut pow_lo: $uX = 1 << shl; + let mut quo_lo: $uX = 0; + loop { + let sub = duo.wrapping_sub(div); + if 0 <= (sub as $iD) { + duo = sub; + quo_lo |= pow_lo; + if duo < div_original { + return (quo_lo as $uD, duo); + } + } + div >>= 1; + pow_lo >>= 1; + } + } + } + } + }; +} + +public_test_dep! { +/// Returns `n / d` and sets `*rem = n % d`. +/// +/// This specialization exists because: +/// - The LLVM backend for 32-bit SPARC cannot compile functions that return `(u128, u128)`, +/// so we have to use an old fashioned `&mut u128` argument to return the remainder. +/// - 64-bit SPARC does not have u64 * u64 => u128 widening multiplication, which makes the +/// delegate algorithm strategy the only reasonably fast way to perform `u128` division. +// used on SPARC +#[allow(dead_code)] +pub(crate) fn u128_divide_sparc(duo: u128, div: u128, rem: &mut u128) -> u128 { + use super::*; + let duo_lo = duo as u64; + let duo_hi = (duo >> 64) as u64; + let div_lo = div as u64; + let div_hi = (div >> 64) as u64; + + match (div_lo == 0, div_hi == 0, duo_hi == 0) { + (true, true, _) => zero_div_fn(), + (_, false, true) => { + *rem = duo; + return 0; + } + (false, true, true) => { + let tmp = u64_by_u64_div_rem(duo_lo, div_lo); + *rem = tmp.1 as u128; + return tmp.0 as u128; + } + (false, true, false) => { + if duo_hi < div_lo { + let norm_shift = u64_normalization_shift(div_lo, duo_hi, false); + let shl = if norm_shift == 0 { + 64 - 1 + } else { + 64 - norm_shift + }; + + let mut div: u128 = div << shl; + let mut pow_lo: u64 = 1 << shl; + let mut quo_lo: u64 = 0; + let mut duo = duo; + loop { + let sub = duo.wrapping_sub(div); + if 0 <= (sub as i128) { + duo = sub; + quo_lo |= pow_lo; + let duo_hi = (duo >> 64) as u64; + if duo_hi == 0 { + let tmp = u64_by_u64_div_rem(duo as u64, div_lo); + *rem = tmp.1 as u128; + return (quo_lo | tmp.0) as u128; + } + } + div >>= 1; + pow_lo >>= 1; + } + } else if duo_hi == div_lo { + let tmp = u64_by_u64_div_rem(duo as u64, div as u64); + *rem = tmp.1 as u128; + return (1 << 64) | (tmp.0 as u128); + } else { + if (div_lo >> 32) == 0 { + let div_0 = div_lo as u32 as u64; + let (quo_hi, rem_3) = u64_by_u64_div_rem(duo_hi, div_0); + + let duo_mid = ((duo >> 32) as u32 as u64) | (rem_3 << 32); + let (quo_1, rem_2) = u64_by_u64_div_rem(duo_mid, div_0); + + let duo_lo = (duo as u32 as u64) | (rem_2 << 32); + let (quo_0, rem_1) = u64_by_u64_div_rem(duo_lo, div_0); + + *rem = rem_1 as u128; + return (quo_0 as u128) | ((quo_1 as u128) << 32) | ((quo_hi as u128) << 64); + } + + let duo_lo = duo as u64; + let tmp = u64_by_u64_div_rem(duo_hi, div_lo); + let quo_hi = tmp.0; + let mut duo = (duo_lo as u128) | ((tmp.1 as u128) << 64); + if duo < div { + *rem = duo; + return (quo_hi as u128) << 64; + } + + let mut div: u128 = div << (64 - 1); + let mut pow_lo: u64 = 1 << (64 - 1); + let mut quo_lo: u64 = 0; + loop { + let sub = duo.wrapping_sub(div); + if 0 <= (sub as i128) { + duo = sub; + quo_lo |= pow_lo; + let duo_hi = (duo >> 64) as u64; + if duo_hi == 0 { + let tmp = u64_by_u64_div_rem(duo as u64, div_lo); + *rem = tmp.1 as u128; + return (tmp.0) as u128 | (quo_lo as u128) | ((quo_hi as u128) << 64); + } + } + div >>= 1; + pow_lo >>= 1; + } + } + } + (_, false, false) => { + if duo < div { + *rem = duo; + return 0; + } + let div_original = div; + let shl = u64_normalization_shift(duo_hi, div_hi, false); + let mut duo = duo; + let mut div: u128 = div << shl; + let mut pow_lo: u64 = 1 << shl; + let mut quo_lo: u64 = 0; + loop { + let sub = duo.wrapping_sub(div); + if 0 <= (sub as i128) { + duo = sub; + quo_lo |= pow_lo; + if duo < div_original { + *rem = duo; + return quo_lo as u128; + } + } + div >>= 1; + pow_lo >>= 1; + } + } + } +} +} diff --git a/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/mod.rs b/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/mod.rs new file mode 100644 index 000000000..760f5f5b7 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/mod.rs @@ -0,0 +1,311 @@ +// TODO: when `unsafe_block_in_unsafe_fn` is stabilized, remove this +#![allow(unused_unsafe)] +// The functions are complex with many branches, and explicit +// `return`s makes it clear where function exit points are +#![allow(clippy::needless_return)] +#![allow(clippy::comparison_chain)] +// Clippy is confused by the complex configuration +#![allow(clippy::if_same_then_else)] +#![allow(clippy::needless_bool)] + +//! This `specialized_div_rem` module is originally from version 1.0.0 of the +//! `specialized-div-rem` crate. Note that `for` loops with ranges are not used in this +//! module, since unoptimized compilation may generate references to `memcpy`. +//! +//! The purpose of these macros is to easily change the both the division algorithm used +//! for a given integer size and the half division used by that algorithm. The way +//! functions call each other is also constructed such that linkers will find the chain of +//! software and hardware divisions needed for every size of signed and unsigned division. +//! For example, most target compilations do the following: +//! +//! - Many 128 bit division functions like `u128::wrapping_div` use +//! `std::intrinsics::unchecked_div`, which gets replaced by `__udivti3` because there +//! is not a 128 bit by 128 bit hardware division function in most architectures. +//! `__udivti3` uses `u128_div_rem` (this extra level of function calls exists because +//! `__umodti3` and `__udivmodti4` also exist, and `specialized_div_rem` supplies just +//! one function to calculate both the quotient and remainder. If configuration flags +//! enable it, `impl_trifecta!` defines `u128_div_rem` to use the trifecta algorithm, +//! which requires the half sized division `u64_by_u64_div_rem`. If the architecture +//! supplies a 64 bit hardware division instruction, `u64_by_u64_div_rem` will be +//! reduced to those instructions. Note that we do not specify the half size division +//! directly to be `__udivdi3`, because hardware division would never be introduced. +//! - If the architecture does not supply a 64 bit hardware division instruction, u64 +//! divisions will use functions such as `__udivdi3`. This will call `u64_div_rem` +//! which is defined by `impl_delegate!`. The half division for this algorithm is +//! `u32_by_u32_div_rem` which in turn becomes hardware division instructions or more +//! software division algorithms. +//! - If the architecture does not supply a 32 bit hardware instruction, linkers will +//! look for `__udivsi3`. `impl_binary_long!` is used, but this algorithm uses no half +//! division, so the chain of calls ends here. +//! +//! On some architectures like x86_64, an asymmetrically sized division is supplied, in +//! which 128 bit numbers can be divided by 64 bit numbers. `impl_asymmetric!` is used to +//! extend the 128 by 64 bit division to a full 128 by 128 bit division. + +// `allow(dead_code)` is used in various places, because the configuration code would otherwise be +// ridiculously complex + +#[macro_use] +mod norm_shift; + +#[macro_use] +mod binary_long; + +#[macro_use] +mod delegate; + +// used on SPARC +#[allow(unused_imports)] +#[cfg(not(feature = "public-test-deps"))] +pub(crate) use self::delegate::u128_divide_sparc; + +#[cfg(feature = "public-test-deps")] +pub use self::delegate::u128_divide_sparc; + +#[macro_use] +mod trifecta; + +#[macro_use] +mod asymmetric; + +/// The behavior of all divisions by zero is controlled by this function. This function should be +/// impossible to reach by Rust users, unless `compiler-builtins` public division functions or +/// `core/std::unchecked_div/rem` are directly used without a zero check in front. +fn zero_div_fn() -> ! { + // Calling the intrinsic directly, to avoid the `assert_unsafe_precondition` that cannot be used + // here because it involves non-`inline` functions + // (https://github.com/rust-lang/compiler-builtins/issues/491). + unsafe { core::intrinsics::unreachable() } +} + +const USE_LZ: bool = { + if cfg!(target_arch = "arm") { + if cfg!(target_feature = "thumb-mode") { + // ARM thumb targets have CLZ instructions if the instruction set of ARMv6T2 is + // supported. This is needed to successfully differentiate between targets like + // `thumbv8.base` and `thumbv8.main`. + cfg!(target_feature = "v6t2") + } else { + // Regular ARM targets have CLZ instructions if the ARMv5TE instruction set is + // supported. Technically, ARMv5T was the first to have CLZ, but the "v5t" target + // feature does not seem to work. + cfg!(target_feature = "v5te") + } + } else if cfg!(any(target_arch = "sparc", target_arch = "sparc64")) { + // LZD or LZCNT on SPARC only exists for the VIS 3 extension and later. + cfg!(target_feature = "vis3") + } else if cfg!(any(target_arch = "riscv32", target_arch = "riscv64")) { + // The 'Zbb' Basic Bit-Manipulation extension on RISC-V + // determines if a CLZ assembly instruction exists + cfg!(target_feature = "zbb") + } else { + // All other common targets Rust supports should have CLZ instructions + true + } +}; + +impl_normalization_shift!( + u32_normalization_shift, + USE_LZ, + 32, + u32, + i32, + allow(dead_code) +); +impl_normalization_shift!( + u64_normalization_shift, + USE_LZ, + 64, + u64, + i64, + allow(dead_code) +); + +/// Divides `duo` by `div` and returns a tuple of the quotient and the remainder. +/// `checked_div` and `checked_rem` are used to avoid bringing in panic function +/// dependencies. +#[inline] +fn u64_by_u64_div_rem(duo: u64, div: u64) -> (u64, u64) { + if let Some(quo) = duo.checked_div(div) { + if let Some(rem) = duo.checked_rem(div) { + return (quo, rem); + } + } + zero_div_fn() +} + +// Whether `trifecta` or `delegate` is faster for 128 bit division depends on the speed at which a +// microarchitecture can multiply and divide. We decide to be optimistic and assume `trifecta` is +// faster if the target pointer width is at least 64. +#[cfg(all( + not(any(target_pointer_width = "16", target_pointer_width = "32")), + not(all(not(feature = "no-asm"), target_arch = "x86_64")), + not(any(target_arch = "sparc", target_arch = "sparc64")) +))] +impl_trifecta!( + u128_div_rem, + zero_div_fn, + u64_by_u64_div_rem, + 32, + u32, + u64, + u128 +); + +// If the pointer width less than 64, then the target architecture almost certainly does not have +// the fast 64 to 128 bit widening multiplication needed for `trifecta` to be faster. +#[cfg(all( + any(target_pointer_width = "16", target_pointer_width = "32"), + not(all(not(feature = "no-asm"), target_arch = "x86_64")), + not(any(target_arch = "sparc", target_arch = "sparc64")) +))] +impl_delegate!( + u128_div_rem, + zero_div_fn, + u64_normalization_shift, + u64_by_u64_div_rem, + 32, + u32, + u64, + u128, + i128 +); + +/// Divides `duo` by `div` and returns a tuple of the quotient and the remainder. +/// +/// # Safety +/// +/// If the quotient does not fit in a `u64`, a floating point exception occurs. +/// If `div == 0`, then a division by zero exception occurs. +#[cfg(all(not(feature = "no-asm"), target_arch = "x86_64"))] +#[inline] +unsafe fn u128_by_u64_div_rem(duo: u128, div: u64) -> (u64, u64) { + let duo_lo = duo as u64; + let duo_hi = (duo >> 64) as u64; + let quo: u64; + let rem: u64; + unsafe { + // divides the combined registers rdx:rax (`duo` is split into two 64 bit parts to do this) + // by `div`. The quotient is stored in rax and the remainder in rdx. + // FIXME: Use the Intel syntax once we drop LLVM 9 support on rust-lang/rust. + core::arch::asm!( + "div {0}", + in(reg) div, + inlateout("rax") duo_lo => quo, + inlateout("rdx") duo_hi => rem, + options(att_syntax, pure, nomem, nostack) + ); + } + (quo, rem) +} + +// use `asymmetric` instead of `trifecta` on x86_64 +#[cfg(all(not(feature = "no-asm"), target_arch = "x86_64"))] +impl_asymmetric!( + u128_div_rem, + zero_div_fn, + u64_by_u64_div_rem, + u128_by_u64_div_rem, + 32, + u32, + u64, + u128 +); + +/// Divides `duo` by `div` and returns a tuple of the quotient and the remainder. +/// `checked_div` and `checked_rem` are used to avoid bringing in panic function +/// dependencies. +#[inline] +#[allow(dead_code)] +fn u32_by_u32_div_rem(duo: u32, div: u32) -> (u32, u32) { + if let Some(quo) = duo.checked_div(div) { + if let Some(rem) = duo.checked_rem(div) { + return (quo, rem); + } + } + zero_div_fn() +} + +// When not on x86 and the pointer width is not 64, use `delegate` since the division size is larger +// than register size. +#[cfg(all( + not(all(not(feature = "no-asm"), target_arch = "x86")), + not(target_pointer_width = "64") +))] +impl_delegate!( + u64_div_rem, + zero_div_fn, + u32_normalization_shift, + u32_by_u32_div_rem, + 16, + u16, + u32, + u64, + i64 +); + +// When not on x86 and the pointer width is 64, use `binary_long`. +#[cfg(all( + not(all(not(feature = "no-asm"), target_arch = "x86")), + target_pointer_width = "64" +))] +impl_binary_long!( + u64_div_rem, + zero_div_fn, + u64_normalization_shift, + 64, + u64, + i64 +); + +/// Divides `duo` by `div` and returns a tuple of the quotient and the remainder. +/// +/// # Safety +/// +/// If the quotient does not fit in a `u32`, a floating point exception occurs. +/// If `div == 0`, then a division by zero exception occurs. +#[cfg(all(not(feature = "no-asm"), target_arch = "x86"))] +#[inline] +unsafe fn u64_by_u32_div_rem(duo: u64, div: u32) -> (u32, u32) { + let duo_lo = duo as u32; + let duo_hi = (duo >> 32) as u32; + let quo: u32; + let rem: u32; + unsafe { + // divides the combined registers rdx:rax (`duo` is split into two 32 bit parts to do this) + // by `div`. The quotient is stored in rax and the remainder in rdx. + // FIXME: Use the Intel syntax once we drop LLVM 9 support on rust-lang/rust. + core::arch::asm!( + "div {0}", + in(reg) div, + inlateout("rax") duo_lo => quo, + inlateout("rdx") duo_hi => rem, + options(att_syntax, pure, nomem, nostack) + ); + } + (quo, rem) +} + +// use `asymmetric` instead of `delegate` on x86 +#[cfg(all(not(feature = "no-asm"), target_arch = "x86"))] +impl_asymmetric!( + u64_div_rem, + zero_div_fn, + u32_by_u32_div_rem, + u64_by_u32_div_rem, + 16, + u16, + u32, + u64 +); + +// 32 bits is the smallest division used by `compiler-builtins`, so we end with binary long division +impl_binary_long!( + u32_div_rem, + zero_div_fn, + u32_normalization_shift, + 32, + u32, + i32, + allow(dead_code) +); diff --git a/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/norm_shift.rs b/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/norm_shift.rs new file mode 100644 index 000000000..61b67b6bc --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/norm_shift.rs @@ -0,0 +1,106 @@ +/// Creates a function used by some division algorithms to compute the "normalization shift". +#[allow(unused_macros)] +macro_rules! impl_normalization_shift { + ( + $name:ident, // name of the normalization shift function + // boolean for if `$uX::leading_zeros` should be used (if an architecture does not have a + // hardware instruction for `usize::leading_zeros`, then this should be `true`) + $use_lz:ident, + $n:tt, // the number of bits in a $iX or $uX + $uX:ident, // unsigned integer type for the inputs of `$name` + $iX:ident, // signed integer type for the inputs of `$name` + $($unsigned_attr:meta),* // attributes for the function + ) => { + /// Finds the shift left that the divisor `div` would need to be normalized for a binary + /// long division step with the dividend `duo`. NOTE: This function assumes that these edge + /// cases have been handled before reaching it: + /// ` + /// if div == 0 { + /// panic!("attempt to divide by zero") + /// } + /// if duo < div { + /// return (0, duo) + /// } + /// ` + /// + /// Normalization is defined as (where `shl` is the output of this function): + /// ` + /// if duo.leading_zeros() != (div << shl).leading_zeros() { + /// // If the most significant bits of `duo` and `div << shl` are not in the same place, + /// // then `div << shl` has one more leading zero than `duo`. + /// assert_eq!(duo.leading_zeros() + 1, (div << shl).leading_zeros()); + /// // Also, `2*(div << shl)` is not more than `duo` (otherwise the first division step + /// // would not be able to clear the msb of `duo`) + /// assert!(duo < (div << (shl + 1))); + /// } + /// if full_normalization { + /// // Some algorithms do not need "full" normalization, which means that `duo` is + /// // larger than `div << shl` when the most significant bits are aligned. + /// assert!((div << shl) <= duo); + /// } + /// ` + /// + /// Note: If the software bisection algorithm is being used in this function, it happens + /// that full normalization always occurs, so be careful that new algorithms are not + /// invisibly depending on this invariant when `full_normalization` is set to `false`. + $( + #[$unsigned_attr] + )* + fn $name(duo: $uX, div: $uX, full_normalization: bool) -> usize { + // We have to find the leading zeros of `div` to know where its msb (most significant + // set bit) is to even begin binary long division. It is also good to know where the msb + // of `duo` is so that useful work can be started instead of shifting `div` for all + // possible quotients (many division steps are wasted if `duo.leading_zeros()` is large + // and `div` starts out being shifted all the way to the msb). Aligning the msbs of + // `div` and `duo` could be done by shifting `div` left by + // `div.leading_zeros() - duo.leading_zeros()`, but some CPUs without division hardware + // also do not have single instructions for calculating `leading_zeros`. Instead of + // software doing two bisections to find the two `leading_zeros`, we do one bisection to + // find `div.leading_zeros() - duo.leading_zeros()` without actually knowing either of + // the leading zeros values. + + let mut shl: usize; + if $use_lz { + shl = (div.leading_zeros() - duo.leading_zeros()) as usize; + if full_normalization { + if duo < (div << shl) { + // when the msb of `duo` and `div` are aligned, the resulting `div` may be + // larger than `duo`, so we decrease the shift by 1. + shl -= 1; + } + } + } else { + let mut test = duo; + shl = 0usize; + let mut lvl = $n >> 1; + loop { + let tmp = test >> lvl; + // It happens that a final `duo < (div << shl)` check is not needed, because the + // `div <= tmp` check insures that the msb of `test` never passes the msb of + // `div`, and any set bits shifted off the end of `test` would still keep + // `div <= tmp` true. + if div <= tmp { + test = tmp; + shl += lvl; + } + // narrow down bisection + lvl >>= 1; + if lvl == 0 { + break + } + } + } + // tests the invariants that should hold before beginning binary long division + /* + if full_normalization { + assert!((div << shl) <= duo); + } + if duo.leading_zeros() != (div << shl).leading_zeros() { + assert_eq!(duo.leading_zeros() + 1, (div << shl).leading_zeros()); + assert!(duo < (div << (shl + 1))); + } + */ + shl + } + } +} diff --git a/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/trifecta.rs b/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/trifecta.rs new file mode 100644 index 000000000..7e104053b --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/int/specialized_div_rem/trifecta.rs @@ -0,0 +1,386 @@ +/// Creates an unsigned division function optimized for division of integers with bitwidths +/// larger than the largest hardware integer division supported. These functions use large radix +/// division algorithms that require both fast division and very fast widening multiplication on the +/// target microarchitecture. Otherwise, `impl_delegate` should be used instead. +#[allow(unused_macros)] +macro_rules! impl_trifecta { + ( + $fn:ident, // name of the unsigned division function + $zero_div_fn:ident, // function called when division by zero is attempted + $half_division:ident, // function for division of a $uX by a $uX + $n_h:expr, // the number of bits in $iH or $uH + $uH:ident, // unsigned integer with half the bit width of $uX + $uX:ident, // unsigned integer with half the bit width of $uD + $uD:ident // unsigned integer type for the inputs and outputs of `$unsigned_name` + ) => { + /// Computes the quotient and remainder of `duo` divided by `div` and returns them as a + /// tuple. + pub fn $fn(duo: $uD, div: $uD) -> ($uD, $uD) { + // This is called the trifecta algorithm because it uses three main algorithms: short + // division for small divisors, the two possibility algorithm for large divisors, and an + // undersubtracting long division algorithm for intermediate cases. + + // This replicates `carrying_mul` (rust-lang rfc #2417). LLVM correctly optimizes this + // to use a widening multiply to 128 bits on the relevant architectures. + fn carrying_mul(lhs: $uX, rhs: $uX) -> ($uX, $uX) { + let tmp = (lhs as $uD).wrapping_mul(rhs as $uD); + (tmp as $uX, (tmp >> ($n_h * 2)) as $uX) + } + fn carrying_mul_add(lhs: $uX, mul: $uX, add: $uX) -> ($uX, $uX) { + let tmp = (lhs as $uD) + .wrapping_mul(mul as $uD) + .wrapping_add(add as $uD); + (tmp as $uX, (tmp >> ($n_h * 2)) as $uX) + } + + // the number of bits in a $uX + let n = $n_h * 2; + + if div == 0 { + $zero_div_fn() + } + + // Trying to use a normalization shift function will cause inelegancies in the code and + // inefficiencies for architectures with a native count leading zeros instruction. The + // undersubtracting algorithm needs both values (keeping the original `div_lz` but + // updating `duo_lz` multiple times), so we assume hardware support for fast + // `leading_zeros` calculation. + let div_lz = div.leading_zeros(); + let mut duo_lz = duo.leading_zeros(); + + // the possible ranges of `duo` and `div` at this point: + // `0 <= duo < 2^n_d` + // `1 <= div < 2^n_d` + + // quotient is 0 or 1 branch + if div_lz <= duo_lz { + // The quotient cannot be more than 1. The highest set bit of `duo` needs to be at + // least one place higher than `div` for the quotient to be more than 1. + if duo >= div { + return (1, duo - div); + } else { + return (0, duo); + } + } + + // `_sb` is the number of significant bits (from the ones place to the highest set bit) + // `{2, 2^div_sb} <= duo < 2^n_d` + // `1 <= div < {2^duo_sb, 2^(n_d - 1)}` + // smaller division branch + if duo_lz >= n { + // `duo < 2^n` so it will fit in a $uX. `div` will also fit in a $uX (because of the + // `div_lz <= duo_lz` branch) so no numerical error. + let (quo, rem) = $half_division(duo as $uX, div as $uX); + return (quo as $uD, rem as $uD); + } + + // `{2^n, 2^div_sb} <= duo < 2^n_d` + // `1 <= div < {2^duo_sb, 2^(n_d - 1)}` + // short division branch + if div_lz >= (n + $n_h) { + // `1 <= div < {2^duo_sb, 2^n_h}` + + // It is barely possible to improve the performance of this by calculating the + // reciprocal and removing one `$half_division`, but only if the CPU can do fast + // multiplications in parallel. Other reciprocal based methods can remove two + // `$half_division`s, but have multiplications that cannot be done in parallel and + // reduce performance. I have decided to use this trivial short division method and + // rely on the CPU having quick divisions. + + let duo_hi = (duo >> n) as $uX; + let div_0 = div as $uH as $uX; + let (quo_hi, rem_3) = $half_division(duo_hi, div_0); + + let duo_mid = ((duo >> $n_h) as $uH as $uX) | (rem_3 << $n_h); + let (quo_1, rem_2) = $half_division(duo_mid, div_0); + + let duo_lo = (duo as $uH as $uX) | (rem_2 << $n_h); + let (quo_0, rem_1) = $half_division(duo_lo, div_0); + + return ( + (quo_0 as $uD) | ((quo_1 as $uD) << $n_h) | ((quo_hi as $uD) << n), + rem_1 as $uD, + ); + } + + // relative leading significant bits, cannot overflow because of above branches + let lz_diff = div_lz - duo_lz; + + // `{2^n, 2^div_sb} <= duo < 2^n_d` + // `2^n_h <= div < {2^duo_sb, 2^(n_d - 1)}` + // `mul` or `mul - 1` branch + if lz_diff < $n_h { + // Two possibility division algorithm + + // The most significant bits of `duo` and `div` are within `$n_h` bits of each + // other. If we take the `n` most significant bits of `duo` and divide them by the + // corresponding bits in `div`, it produces a quotient value `quo`. It happens that + // `quo` or `quo - 1` will always be the correct quotient for the whole number. In + // other words, the bits less significant than the `n` most significant bits of + // `duo` and `div` can only influence the quotient to be one of two values. + // Because there are only two possibilities, there only needs to be one `$uH` sized + // division, a `$uH` by `$uD` multiplication, and only one branch with a few simple + // operations. + // + // Proof that the true quotient can only be `quo` or `quo - 1`. + // All `/` operators here are floored divisions. + // + // `shift` is the number of bits not in the higher `n` significant bits of `duo`. + // (definitions) + // 0. shift = n - duo_lz + // 1. duo_sig_n == duo / 2^shift + // 2. div_sig_n == div / 2^shift + // 3. quo == duo_sig_n / div_sig_n + // + // + // We are trying to find the true quotient, `true_quo`. + // 4. true_quo = duo / div. (definition) + // + // This is true because of the bits that are cut off during the bit shift. + // 5. duo_sig_n * 2^shift <= duo < (duo_sig_n + 1) * 2^shift. + // 6. div_sig_n * 2^shift <= div < (div_sig_n + 1) * 2^shift. + // + // Dividing each bound of (5) by each bound of (6) gives 4 possibilities for what + // `true_quo == duo / div` is bounded by: + // (duo_sig_n * 2^shift) / (div_sig_n * 2^shift) + // (duo_sig_n * 2^shift) / ((div_sig_n + 1) * 2^shift) + // ((duo_sig_n + 1) * 2^shift) / (div_sig_n * 2^shift) + // ((duo_sig_n + 1) * 2^shift) / ((div_sig_n + 1) * 2^shift) + // + // Simplifying each of these four: + // duo_sig_n / div_sig_n + // duo_sig_n / (div_sig_n + 1) + // (duo_sig_n + 1) / div_sig_n + // (duo_sig_n + 1) / (div_sig_n + 1) + // + // Taking the smallest and the largest of these as the low and high bounds + // and replacing `duo / div` with `true_quo`: + // 7. duo_sig_n / (div_sig_n + 1) <= true_quo < (duo_sig_n + 1) / div_sig_n + // + // The `lz_diff < n_h` conditional on this branch makes sure that `div_sig_n` is at + // least `2^n_h`, and the `div_lz <= duo_lz` branch makes sure that the highest bit + // of `div_sig_n` is not the `2^(n - 1)` bit. + // 8. `2^(n - 1) <= duo_sig_n < 2^n` + // 9. `2^n_h <= div_sig_n < 2^(n - 1)` + // + // We want to prove that either + // `(duo_sig_n + 1) / div_sig_n == duo_sig_n / (div_sig_n + 1)` or that + // `(duo_sig_n + 1) / div_sig_n == duo_sig_n / (div_sig_n + 1) + 1`. + // + // We also want to prove that `quo` is one of these: + // `duo_sig_n / div_sig_n == duo_sig_n / (div_sig_n + 1)` or + // `duo_sig_n / div_sig_n == (duo_sig_n + 1) / div_sig_n`. + // + // When 1 is added to the numerator of `duo_sig_n / div_sig_n` to produce + // `(duo_sig_n + 1) / div_sig_n`, it is not possible that the value increases by + // more than 1 with floored integer arithmetic and `div_sig_n != 0`. Consider + // `x/y + 1 < (x + 1)/y` <=> `x/y + 1 < x/y + 1/y` <=> `1 < 1/y` <=> `y < 1`. + // `div_sig_n` is a nonzero integer. Thus, + // 10. `duo_sig_n / div_sig_n == (duo_sig_n + 1) / div_sig_n` or + // `(duo_sig_n / div_sig_n) + 1 == (duo_sig_n + 1) / div_sig_n. + // + // When 1 is added to the denominator of `duo_sig_n / div_sig_n` to produce + // `duo_sig_n / (div_sig_n + 1)`, it is not possible that the value decreases by + // more than 1 with the bounds (8) and (9). Consider `x/y - 1 <= x/(y + 1)` <=> + // `(x - y)/y < x/(y + 1)` <=> `(y + 1)*(x - y) < x*y` <=> `x*y - y*y + x - y < x*y` + // <=> `x < y*y + y`. The smallest value of `div_sig_n` is `2^n_h` and the largest + // value of `duo_sig_n` is `2^n - 1`. Substituting reveals `2^n - 1 < 2^n + 2^n_h`. + // Thus, + // 11. `duo_sig_n / div_sig_n == duo_sig_n / (div_sig_n + 1)` or + // `(duo_sig_n / div_sig_n) - 1` == duo_sig_n / (div_sig_n + 1)` + // + // Combining both (10) and (11), we know that + // `quo - 1 <= duo_sig_n / (div_sig_n + 1) <= true_quo + // < (duo_sig_n + 1) / div_sig_n <= quo + 1` and therefore: + // 12. quo - 1 <= true_quo < quo + 1 + // + // In a lot of division algorithms using smaller divisions to construct a larger + // division, we often encounter a situation where the approximate `quo` value + // calculated from a smaller division is multiple increments away from the true + // `quo` value. In those algorithms, multiple correction steps have to be applied. + // Those correction steps may need more multiplications to test `duo - (quo*div)` + // again. Because of the fact that our `quo` can only be one of two values, we can + // see if `duo - (quo*div)` overflows. If it did overflow, then we know that we have + // the larger of the two values (since the true quotient is unique, and any larger + // quotient will cause `duo - (quo*div)` to be negative). Also because there is only + // one correction needed, we can calculate the remainder `duo - (true_quo*div) == + // duo - ((quo - 1)*div) == duo - (quo*div - div) == duo + div - quo*div`. + // If `duo - (quo*div)` did not overflow, then we have the correct answer. + let shift = n - duo_lz; + let duo_sig_n = (duo >> shift) as $uX; + let div_sig_n = (div >> shift) as $uX; + let quo = $half_division(duo_sig_n, div_sig_n).0; + + // The larger `quo` value can overflow `$uD` in the right circumstances. This is a + // manual `carrying_mul_add` with overflow checking. + let div_lo = div as $uX; + let div_hi = (div >> n) as $uX; + let (tmp_lo, carry) = carrying_mul(quo, div_lo); + let (tmp_hi, overflow) = carrying_mul_add(quo, div_hi, carry); + let tmp = (tmp_lo as $uD) | ((tmp_hi as $uD) << n); + if (overflow != 0) || (duo < tmp) { + return ( + (quo - 1) as $uD, + // Both the addition and subtraction can overflow, but when combined end up + // as a correct positive number. + duo.wrapping_add(div).wrapping_sub(tmp), + ); + } else { + return (quo as $uD, duo - tmp); + } + } + + // Undersubtracting long division algorithm. + // Instead of clearing a minimum of 1 bit from `duo` per iteration via binary long + // division, `n_h - 1` bits are cleared per iteration with this algorithm. It is a more + // complicated version of regular long division. Most integer division algorithms tend + // to guess a part of the quotient, and may have a larger quotient than the true + // quotient (which when multiplied by `div` will "oversubtract" the original dividend). + // They then check if the quotient was in fact too large and then have to correct it. + // This long division algorithm has been carefully constructed to always underguess the + // quotient by slim margins. This allows different subalgorithms to be blindly jumped to + // without needing an extra correction step. + // + // The only problem is that this subalgorithm will not work for many ranges of `duo` and + // `div`. Fortunately, the short division, two possibility algorithm, and other simple + // cases happen to exactly fill these gaps. + // + // For an example, consider the division of 76543210 by 213 and assume that `n_h` is + // equal to two decimal digits (note: we are working with base 10 here for readability). + // The first `sig_n_h` part of the divisor (21) is taken and is incremented by 1 to + // prevent oversubtraction. We also record the number of extra places not a part of + // the `sig_n` or `sig_n_h` parts. + // + // sig_n_h == 2 digits, sig_n == 4 digits + // + // vvvv <- `duo_sig_n` + // 76543210 + // ^^^^ <- extra places in duo, `duo_extra == 4` + // + // vv <- `div_sig_n_h` + // 213 + // ^ <- extra places in div, `div_extra == 1` + // + // The difference in extra places, `duo_extra - div_extra == extra_shl == 3`, is used + // for shifting partial sums in the long division. + // + // In the first step, the first `sig_n` part of duo (7654) is divided by + // `div_sig_n_h_add_1` (22), which results in a partial quotient of 347. This is + // multiplied by the whole divisor to make 73911, which is shifted left by `extra_shl` + // and subtracted from duo. The partial quotient is also shifted left by `extra_shl` to + // be added to `quo`. + // + // 347 + // ________ + // |76543210 + // -73911 + // 2632210 + // + // Variables dependent on duo have to be updated: + // + // vvvv <- `duo_sig_n == 2632` + // 2632210 + // ^^^ <- `duo_extra == 3` + // + // `extra_shl == 2` + // + // Two more steps are taken after this and then duo fits into `n` bits, and then a final + // normal long division step is made. The partial quotients are all progressively added + // to each other in the actual algorithm, but here I have left them all in a tower that + // can be added together to produce the quotient, 359357. + // + // 14 + // 443 + // 119 + // 347 + // ________ + // |76543210 + // -73911 + // 2632210 + // -25347 + // 97510 + // -94359 + // 3151 + // -2982 + // 169 <- the remainder + + let mut duo = duo; + let mut quo: $uD = 0; + + // The number of lesser significant bits not a part of `div_sig_n_h` + let div_extra = (n + $n_h) - div_lz; + + // The most significant `n_h` bits of div + let div_sig_n_h = (div >> div_extra) as $uH; + + // This needs to be a `$uX` in case of overflow from the increment + let div_sig_n_h_add1 = (div_sig_n_h as $uX) + 1; + + // `{2^n, 2^(div_sb + n_h)} <= duo < 2^n_d` + // `2^n_h <= div < {2^(duo_sb - n_h), 2^n}` + loop { + // The number of lesser significant bits not a part of `duo_sig_n` + let duo_extra = n - duo_lz; + + // The most significant `n` bits of `duo` + let duo_sig_n = (duo >> duo_extra) as $uX; + + // the two possibility algorithm requires that the difference between msbs is less + // than `n_h`, so the comparison is `<=` here. + if div_extra <= duo_extra { + // Undersubtracting long division step + let quo_part = $half_division(duo_sig_n, div_sig_n_h_add1).0 as $uD; + let extra_shl = duo_extra - div_extra; + + // Addition to the quotient. + quo += (quo_part << extra_shl); + + // Subtraction from `duo`. At least `n_h - 1` bits are cleared from `duo` here. + duo -= (div.wrapping_mul(quo_part) << extra_shl); + } else { + // Two possibility algorithm + let shift = n - duo_lz; + let duo_sig_n = (duo >> shift) as $uX; + let div_sig_n = (div >> shift) as $uX; + let quo_part = $half_division(duo_sig_n, div_sig_n).0; + let div_lo = div as $uX; + let div_hi = (div >> n) as $uX; + + let (tmp_lo, carry) = carrying_mul(quo_part, div_lo); + // The undersubtracting long division algorithm has already run once, so + // overflow beyond `$uD` bits is not possible here + let (tmp_hi, _) = carrying_mul_add(quo_part, div_hi, carry); + let tmp = (tmp_lo as $uD) | ((tmp_hi as $uD) << n); + + if duo < tmp { + return ( + quo + ((quo_part - 1) as $uD), + duo.wrapping_add(div).wrapping_sub(tmp), + ); + } else { + return (quo + (quo_part as $uD), duo - tmp); + } + } + + duo_lz = duo.leading_zeros(); + + if div_lz <= duo_lz { + // quotient can have 0 or 1 added to it + if div <= duo { + return (quo + 1, duo - div); + } else { + return (quo, duo); + } + } + + // This can only happen if `div_sd < n` (because of previous "quo = 0 or 1" + // branches), but it is not worth it to unroll further. + if n <= duo_lz { + // simple division and addition + let tmp = $half_division(duo as $uX, div as $uX); + return (quo + (tmp.0 as $uD), tmp.1 as $uD); + } + } + } + }; +} diff --git a/src/rust/vendor/compiler_builtins/src/int/udiv.rs b/src/rust/vendor/compiler_builtins/src/int/udiv.rs new file mode 100644 index 000000000..c891eede4 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/int/udiv.rs @@ -0,0 +1,106 @@ +#[cfg(not(feature = "public-test-deps"))] +pub(crate) use crate::int::specialized_div_rem::*; + +#[cfg(feature = "public-test-deps")] +pub use crate::int::specialized_div_rem::*; + +intrinsics! { + #[maybe_use_optimized_c_shim] + #[arm_aeabi_alias = __aeabi_uidiv] + /// Returns `n / d` + pub extern "C" fn __udivsi3(n: u32, d: u32) -> u32 { + u32_div_rem(n, d).0 + } + + #[maybe_use_optimized_c_shim] + /// Returns `n % d` + pub extern "C" fn __umodsi3(n: u32, d: u32) -> u32 { + u32_div_rem(n, d).1 + } + + #[avr_skip] + #[maybe_use_optimized_c_shim] + /// Returns `n / d` and sets `*rem = n % d` + pub extern "C" fn __udivmodsi4(n: u32, d: u32, rem: Option<&mut u32>) -> u32 { + let quo_rem = u32_div_rem(n, d); + if let Some(rem) = rem { + *rem = quo_rem.1; + } + quo_rem.0 + } + + #[avr_skip] + #[maybe_use_optimized_c_shim] + /// Returns `n / d` + pub extern "C" fn __udivdi3(n: u64, d: u64) -> u64 { + u64_div_rem(n, d).0 + } + + #[avr_skip] + #[maybe_use_optimized_c_shim] + /// Returns `n % d` + pub extern "C" fn __umoddi3(n: u64, d: u64) -> u64 { + u64_div_rem(n, d).1 + } + + #[avr_skip] + #[maybe_use_optimized_c_shim] + /// Returns `n / d` and sets `*rem = n % d` + pub extern "C" fn __udivmoddi4(n: u64, d: u64, rem: Option<&mut u64>) -> u64 { + let quo_rem = u64_div_rem(n, d); + if let Some(rem) = rem { + *rem = quo_rem.1; + } + quo_rem.0 + } + + // Note: we use block configuration and not `if cfg!(...)`, because we need to entirely disable + // the existence of `u128_div_rem` to get 32-bit SPARC to compile, see `u128_divide_sparc` docs. + + #[avr_skip] + #[win64_128bit_abi_hack] + /// Returns `n / d` + pub extern "C" fn __udivti3(n: u128, d: u128) -> u128 { + #[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))] { + u128_div_rem(n, d).0 + } + #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] { + u128_divide_sparc(n, d, &mut 0) + } + } + + #[avr_skip] + #[win64_128bit_abi_hack] + /// Returns `n % d` + pub extern "C" fn __umodti3(n: u128, d: u128) -> u128 { + #[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))] { + u128_div_rem(n, d).1 + } + #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] { + let mut rem = 0; + u128_divide_sparc(n, d, &mut rem); + rem + } + } + + #[avr_skip] + #[win64_128bit_abi_hack] + /// Returns `n / d` and sets `*rem = n % d` + pub extern "C" fn __udivmodti4(n: u128, d: u128, rem: Option<&mut u128>) -> u128 { + #[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))] { + let quo_rem = u128_div_rem(n, d); + if let Some(rem) = rem { + *rem = quo_rem.1; + } + quo_rem.0 + } + #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] { + let mut tmp = 0; + let quo = u128_divide_sparc(n, d, &mut tmp); + if let Some(rem) = rem { + *rem = tmp; + } + quo + } + } +} diff --git a/src/rust/vendor/compiler_builtins/src/lib.miri.rs b/src/rust/vendor/compiler_builtins/src/lib.miri.rs new file mode 100644 index 000000000..17288058e --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/lib.miri.rs @@ -0,0 +1,5 @@ +//! Grep bootstrap for `MIRI_REPLACE_LIBRS_IF_NOT_TEST` to learn what this is about. +#![no_std] +#![feature(rustc_private)] +extern crate compiler_builtins as real; +pub use real::*; diff --git a/src/rust/vendor/compiler_builtins/src/lib.rs b/src/rust/vendor/compiler_builtins/src/lib.rs new file mode 100644 index 000000000..a414efde0 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/lib.rs @@ -0,0 +1,87 @@ +#![cfg_attr(feature = "compiler-builtins", compiler_builtins)] +#![cfg_attr(not(feature = "no-asm"), feature(asm))] +#![feature(abi_unadjusted)] +#![feature(asm_experimental_arch)] +#![cfg_attr(not(feature = "no-asm"), feature(global_asm))] +#![feature(cfg_target_has_atomic)] +#![feature(compiler_builtins)] +#![feature(core_ffi_c)] +#![feature(core_intrinsics)] +#![feature(inline_const)] +#![feature(lang_items)] +#![feature(linkage)] +#![feature(naked_functions)] +#![feature(repr_simd)] +#![feature(c_unwind)] +#![no_builtins] +#![no_std] +#![allow(unused_features)] +#![allow(internal_features)] +// We use `u128` in a whole bunch of places which we currently agree with the +// compiler on ABIs and such, so we should be "good enough" for now and changes +// to the `u128` ABI will be reflected here. +#![allow(improper_ctypes, improper_ctypes_definitions)] +// `mem::swap` cannot be used because it may generate references to memcpy in unoptimized code. +#![allow(clippy::manual_swap)] +// Support compiling on both stage0 and stage1 which may differ in supported stable features. +#![allow(stable_features)] + +// We disable #[no_mangle] for tests so that we can verify the test results +// against the native compiler-rt implementations of the builtins. + +// NOTE cfg(all(feature = "c", ..)) indicate that compiler-rt provides an arch optimized +// implementation of that intrinsic and we'll prefer to use that + +// NOTE(aapcs, aeabi, arm) ARM targets use intrinsics named __aeabi_* instead of the intrinsics +// that follow "x86 naming convention" (e.g. addsf3). Those aeabi intrinsics must adhere to the +// AAPCS calling convention (`extern "aapcs"`) because that's how LLVM will call them. + +#[cfg(test)] +extern crate core; + +#[macro_use] +mod macros; + +pub mod float; +pub mod int; + +#[cfg(any( + all(target_family = "wasm", target_os = "unknown"), + target_os = "uefi", + target_os = "none", + target_os = "xous", + all(target_vendor = "fortanix", target_env = "sgx"), + target_os = "windows" +))] +pub mod math; +pub mod mem; + +#[cfg(target_arch = "arm")] +pub mod arm; + +#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))] +pub mod aarch64; + +#[cfg(all(target_arch = "aarch64", target_os = "linux", not(feature = "no-asm"),))] +pub mod aarch64_linux; + +#[cfg(all( + kernel_user_helpers, + any(target_os = "linux", target_os = "android"), + target_arch = "arm" +))] +pub mod arm_linux; + +#[cfg(target_arch = "hexagon")] +pub mod hexagon; + +#[cfg(any(target_arch = "riscv32", target_arch = "riscv64"))] +pub mod riscv; + +#[cfg(target_arch = "x86")] +pub mod x86; + +#[cfg(target_arch = "x86_64")] +pub mod x86_64; + +pub mod probestack; diff --git a/src/rust/vendor/compiler_builtins/src/macros.rs b/src/rust/vendor/compiler_builtins/src/macros.rs new file mode 100644 index 000000000..2aa9a742c --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/macros.rs @@ -0,0 +1,555 @@ +//! Macros shared throughout the compiler-builtins implementation + +/// Changes the visibility to `pub` if feature "public-test-deps" is set +#[cfg(not(feature = "public-test-deps"))] +macro_rules! public_test_dep { + ($(#[$($meta:meta)*])* pub(crate) $ident:ident $($tokens:tt)*) => { + $(#[$($meta)*])* pub(crate) $ident $($tokens)* + }; +} + +/// Changes the visibility to `pub` if feature "public-test-deps" is set +#[cfg(feature = "public-test-deps")] +macro_rules! public_test_dep { + {$(#[$($meta:meta)*])* pub(crate) $ident:ident $($tokens:tt)*} => { + $(#[$($meta)*])* pub $ident $($tokens)* + }; +} + +/// The "main macro" used for defining intrinsics. +/// +/// The compiler-builtins library is super platform-specific with tons of crazy +/// little tweaks for various platforms. As a result it *could* involve a lot of +/// #[cfg] and macro soup, but the intention is that this macro alleviates a lot +/// of that complexity. Ideally this macro has all the weird ABI things +/// platforms need and elsewhere in this library it just looks like normal Rust +/// code. +/// +/// When the weak-intrinsics feature is enabled, all intrinsics functions are +/// marked with #[linkage = "weak"] so that they can be replaced by another +/// implementation at link time. This is particularly useful for mixed Rust/C++ +/// binaries that want to use the C++ intrinsics, otherwise linking against the +/// Rust stdlib will replace those from the compiler-rt library. +/// +/// This macro is structured to be invoked with a bunch of functions that looks +/// like: +/// ```ignore +/// intrinsics! { +/// pub extern "C" fn foo(a: i32) -> u32 { +/// // ... +/// } +/// +/// #[nonstandard_attribute] +/// pub extern "C" fn bar(a: i32) -> u32 { +/// // ... +/// } +/// } +/// ``` +/// +/// Each function is defined in a manner that looks like a normal Rust function. +/// The macro then accepts a few nonstandard attributes that can decorate +/// various functions. Each of the attributes is documented below with what it +/// can do, and each of them slightly tweaks how further expansion happens. +/// +/// A quick overview of attributes supported right now are: +/// +/// * `weak` - indicates that the function should always be given weak linkage. +/// This attribute must come before other attributes, as the other attributes +/// will generate the final output function and need to have `weak` modify +/// them. +/// * `maybe_use_optimized_c_shim` - indicates that the Rust implementation is +/// ignored if an optimized C version was compiled. +/// * `aapcs_on_arm` - forces the ABI of the function to be `"aapcs"` on ARM and +/// the specified ABI everywhere else. +/// * `unadjusted_on_win64` - like `aapcs_on_arm` this switches to the +/// `"unadjusted"` abi on Win64 and the specified abi elsewhere. +/// * `win64_128bit_abi_hack` - this attribute is used for 128-bit integer +/// intrinsics where the ABI is slightly tweaked on Windows platforms, but +/// it's a normal ABI elsewhere for returning a 128 bit integer. +/// * `arm_aeabi_alias` - handles the "aliasing" of various intrinsics on ARM +/// their otherwise typical names to other prefixed ones. +macro_rules! intrinsics { + () => (); + + // Support cfg_attr: + ( + #[cfg_attr($e:meta, $($attr:tt)*)] + $(#[$($attrs:tt)*])* + pub extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + $($rest:tt)* + ) => ( + #[cfg($e)] + intrinsics! { + #[$($attr)*] + $(#[$($attrs)*])* + pub extern $abi fn $name($($argname: $ty),*) $(-> $ret)? { + $($body)* + } + } + + #[cfg(not($e))] + intrinsics! { + $(#[$($attrs)*])* + pub extern $abi fn $name($($argname: $ty),*) $(-> $ret)? { + $($body)* + } + } + + intrinsics!($($rest)*); + ); + // Same as above but for unsafe. + ( + #[cfg_attr($e:meta, $($attr:tt)*)] + $(#[$($attrs:tt)*])* + pub unsafe extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + $($rest:tt)* + ) => ( + #[cfg($e)] + intrinsics! { + #[$($attr)*] + $(#[$($attrs)*])* + pub unsafe extern $abi fn $name($($argname: $ty),*) $(-> $ret)? { + $($body)* + } + } + + #[cfg(not($e))] + intrinsics! { + $(#[$($attrs)*])* + pub unsafe extern $abi fn $name($($argname: $ty),*) $(-> $ret)? { + $($body)* + } + } + + intrinsics!($($rest)*); + ); + + // Explicit weak linkage gets dropped when weak-intrinsics is on since it + // will be added unconditionally to all intrinsics and would conflict + // otherwise. + ( + #[weak] + $(#[$($attr:tt)*])* + pub extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + + $($rest:tt)* + ) => ( + #[cfg(feature = "weak-intrinsics")] + intrinsics! { + $(#[$($attr)*])* + pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + } + + #[cfg(not(feature = "weak-intrinsics"))] + intrinsics! { + $(#[$($attr)*])* + #[linkage = "weak"] + pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + } + + intrinsics!($($rest)*); + ); + // Same as above but for unsafe. + ( + #[weak] + $(#[$($attr:tt)*])* + pub unsafe extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + + $($rest:tt)* + ) => ( + #[cfg(feature = "weak-intrinsics")] + intrinsics! { + $(#[$($attr)*])* + pub unsafe extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + } + + #[cfg(not(feature = "weak-intrinsics"))] + intrinsics! { + $(#[$($attr)*])* + #[linkage = "weak"] + pub unsafe extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + } + + intrinsics!($($rest)*); + ); + + // Right now there's a bunch of architecture-optimized intrinsics in the + // stock compiler-rt implementation. Not all of these have been ported over + // to Rust yet so when the `c` feature of this crate is enabled we fall back + // to the architecture-specific versions which should be more optimized. The + // purpose of this macro is to easily allow specifying this. + // + // The `#[maybe_use_optimized_c_shim]` attribute indicates that this + // intrinsic may have an optimized C version. In these situations the build + // script, if the C code is enabled and compiled, will emit a cfg directive + // to get passed to rustc for our compilation. If that cfg is set we skip + // the Rust implementation, but if the attribute is not enabled then we + // compile in the Rust implementation. + ( + #[maybe_use_optimized_c_shim] + $(#[$($attr:tt)*])* + pub $(unsafe $(@ $empty:tt)? )? extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + + $($rest:tt)* + ) => ( + #[cfg($name = "optimized-c")] + #[cfg_attr(feature = "weak-intrinsics", linkage = "weak")] + pub $(unsafe $($empty)? )? extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + extern $abi { + fn $name($($argname: $ty),*) $(-> $ret)?; + } + unsafe { + $name($($argname),*) + } + } + + #[cfg(not($name = "optimized-c"))] + intrinsics! { + $(#[$($attr)*])* + pub $(unsafe $($empty)? )? extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + } + + intrinsics!($($rest)*); + ); + + // We recognize the `#[aapcs_on_arm]` attribute here and generate the + // same intrinsic but force it to have the `"aapcs"` calling convention on + // ARM and `"C"` elsewhere. + ( + #[aapcs_on_arm] + $(#[$($attr:tt)*])* + pub extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + + $($rest:tt)* + ) => ( + #[cfg(target_arch = "arm")] + intrinsics! { + $(#[$($attr)*])* + pub extern "aapcs" fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + } + + #[cfg(not(target_arch = "arm"))] + intrinsics! { + $(#[$($attr)*])* + pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + } + + intrinsics!($($rest)*); + ); + + // Like aapcs above we recognize an attribute for the "unadjusted" abi on + // win64 for some methods. + ( + #[unadjusted_on_win64] + $(#[$($attr:tt)*])* + pub extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + + $($rest:tt)* + ) => ( + #[cfg(all(any(windows, all(target_os = "uefi", target_arch = "x86_64")), target_pointer_width = "64"))] + intrinsics! { + $(#[$($attr)*])* + pub extern "unadjusted" fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + } + + #[cfg(not(all(any(windows, all(target_os = "uefi", target_arch = "x86_64")), target_pointer_width = "64")))] + intrinsics! { + $(#[$($attr)*])* + pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + } + + intrinsics!($($rest)*); + ); + + // Some intrinsics on win64 which return a 128-bit integer have an.. unusual + // calling convention. That's managed here with this "abi hack" which alters + // the generated symbol's ABI. + // + // This will still define a function in this crate with the given name and + // signature, but the actual symbol for the intrinsic may have a slightly + // different ABI on win64. + ( + #[win64_128bit_abi_hack] + $(#[$($attr:tt)*])* + pub extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + + $($rest:tt)* + ) => ( + #[cfg(all(any(windows, target_os = "uefi"), target_arch = "x86_64"))] + $(#[$($attr)*])* + #[cfg_attr(feature = "weak-intrinsics", linkage = "weak")] + pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + + #[cfg(all(any(windows, target_os = "uefi"), target_arch = "x86_64"))] + pub mod $name { + #[cfg_attr(not(feature = "mangled-names"), no_mangle)] + #[cfg_attr(feature = "weak-intrinsics", linkage = "weak")] + pub extern $abi fn $name( $($argname: $ty),* ) + -> $crate::macros::win64_128bit_abi_hack::U64x2 + { + let e: $($ret)? = super::$name($($argname),*); + $crate::macros::win64_128bit_abi_hack::U64x2::from(e) + } + } + + #[cfg(not(all(any(windows, target_os = "uefi"), target_arch = "x86_64")))] + intrinsics! { + $(#[$($attr)*])* + pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + } + + intrinsics!($($rest)*); + ); + + // A bunch of intrinsics on ARM are aliased in the standard compiler-rt + // build under `__aeabi_*` aliases, and LLVM will call these instead of the + // original function. The aliasing here is used to generate these symbols in + // the object file. + ( + #[arm_aeabi_alias = $alias:ident] + $(#[$($attr:tt)*])* + pub extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + + $($rest:tt)* + ) => ( + #[cfg(target_arch = "arm")] + pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + + #[cfg(target_arch = "arm")] + pub mod $name { + #[cfg_attr(not(feature = "mangled-names"), no_mangle)] + #[cfg_attr(feature = "weak-intrinsics", linkage = "weak")] + pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + super::$name($($argname),*) + } + } + + #[cfg(target_arch = "arm")] + pub mod $alias { + #[cfg_attr(not(feature = "mangled-names"), no_mangle)] + #[cfg_attr(any(all(not(windows), not(target_vendor="apple")), feature = "weak-intrinsics"), linkage = "weak")] + pub extern "aapcs" fn $alias( $($argname: $ty),* ) $(-> $ret)? { + super::$name($($argname),*) + } + } + + #[cfg(not(target_arch = "arm"))] + intrinsics! { + $(#[$($attr)*])* + pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + } + + intrinsics!($($rest)*); + ); + + // C mem* functions are only generated when the "mem" feature is enabled. + ( + #[mem_builtin] + $(#[$($attr:tt)*])* + pub unsafe extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + + $($rest:tt)* + ) => ( + $(#[$($attr)*])* + pub unsafe extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + + #[cfg(feature = "mem")] + pub mod $name { + $(#[$($attr)*])* + #[cfg_attr(not(feature = "mangled-names"), no_mangle)] + #[cfg_attr(feature = "weak-intrinsics", linkage = "weak")] + pub unsafe extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + super::$name($($argname),*) + } + } + + intrinsics!($($rest)*); + ); + + // Naked functions are special: we can't generate wrappers for them since + // they use a custom calling convention. + ( + #[naked] + $(#[$($attr:tt)*])* + pub unsafe extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + + $($rest:tt)* + ) => ( + pub mod $name { + #[naked] + $(#[$($attr)*])* + #[cfg_attr(not(feature = "mangled-names"), no_mangle)] + #[cfg_attr(feature = "weak-intrinsics", linkage = "weak")] + pub unsafe extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + } + + intrinsics!($($rest)*); + ); + + // For some intrinsics, AVR uses a custom calling convention¹ that does not + // match our definitions here. Ideally we would just use hand-written naked + // functions, but that's quite a lot of code to port² - so for the time + // being we are just ignoring the problematic functions, letting avr-gcc + // (which is required to compile to AVR anyway) link them from libgcc. + // + // ¹ https://gcc.gnu.org/wiki/avr-gcc (see "Exceptions to the Calling + // Convention") + // ² https://github.com/gcc-mirror/gcc/blob/31048012db98f5ec9c2ba537bfd850374bdd771f/libgcc/config/avr/lib1funcs.S + ( + #[avr_skip] + $(#[$($attr:tt)*])* + pub extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + + $($rest:tt)* + ) => ( + #[cfg(not(target_arch = "avr"))] + intrinsics! { + $(#[$($attr)*])* + pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + } + + intrinsics!($($rest)*); + ); + + // This is the final catch-all rule. At this point we generate an + // intrinsic with a conditional `#[no_mangle]` directive to avoid + // interfering with duplicate symbols and whatnot during testing. + // + // The implementation is placed in a separate module, to take advantage + // of the fact that rustc partitions functions into code generation + // units based on module they are defined in. As a result we will have + // a separate object file for each intrinsic. For further details see + // corresponding PR in rustc https://github.com/rust-lang/rust/pull/70846 + // + // After the intrinsic is defined we just continue with the rest of the + // input we were given. + ( + $(#[$($attr:tt)*])* + pub extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + + $($rest:tt)* + ) => ( + $(#[$($attr)*])* + pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + + pub mod $name { + $(#[$($attr)*])* + #[cfg_attr(not(feature = "mangled-names"), no_mangle)] + #[cfg_attr(feature = "weak-intrinsics", linkage = "weak")] + pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + super::$name($($argname),*) + } + } + + intrinsics!($($rest)*); + ); + + // Same as the above for unsafe functions. + ( + $(#[$($attr:tt)*])* + pub unsafe extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? { + $($body:tt)* + } + + $($rest:tt)* + ) => ( + $(#[$($attr)*])* + pub unsafe extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + $($body)* + } + + pub mod $name { + $(#[$($attr)*])* + #[cfg_attr(not(feature = "mangled-names"), no_mangle)] + #[cfg_attr(feature = "weak-intrinsics", linkage = "weak")] + pub unsafe extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? { + super::$name($($argname),*) + } + } + + intrinsics!($($rest)*); + ); +} + +// Hack for LLVM expectations for ABI on windows. This is used by the +// `#[win64_128bit_abi_hack]` attribute recognized above +#[cfg(all(any(windows, target_os = "uefi"), target_pointer_width = "64"))] +pub mod win64_128bit_abi_hack { + #[repr(simd)] + pub struct U64x2(u64, u64); + + impl From for U64x2 { + fn from(i: i128) -> U64x2 { + use crate::int::DInt; + let j = i as u128; + U64x2(j.lo(), j.hi()) + } + } + + impl From for U64x2 { + fn from(i: u128) -> U64x2 { + use crate::int::DInt; + U64x2(i.lo(), i.hi()) + } + } +} diff --git a/src/rust/vendor/compiler_builtins/src/math.rs b/src/rust/vendor/compiler_builtins/src/math.rs new file mode 100644 index 000000000..593a1a19c --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/math.rs @@ -0,0 +1,108 @@ +#[allow(dead_code)] +#[path = "../libm/src/math/mod.rs"] +mod libm; + +#[allow(unused_macros)] +macro_rules! no_mangle { + ($(fn $fun:ident($($iid:ident : $ity:ty),+) -> $oty:ty;)+) => { + intrinsics! { + $( + #[cfg_attr(all(not(windows), not(target_vendor = "apple")), weak)] + pub extern "C" fn $fun($($iid: $ity),+) -> $oty { + self::libm::$fun($($iid),+) + } + )+ + } + } +} + +#[cfg(all(not(windows), not(target_vendor = "apple")))] +no_mangle! { + fn acos(x: f64) -> f64; + fn asin(x: f64) -> f64; + fn cbrt(x: f64) -> f64; + fn expm1(x: f64) -> f64; + fn hypot(x: f64, y: f64) -> f64; + fn tan(x: f64) -> f64; + fn cos(x: f64) -> f64; + fn expf(x: f32) -> f32; + fn log2(x: f64) -> f64; + fn log2f(x: f32) -> f32; + fn log10(x: f64) -> f64; + fn log10f(x: f32) -> f32; + fn log(x: f64) -> f64; + fn logf(x: f32) -> f32; + fn round(x: f64) -> f64; + fn roundf(x: f32) -> f32; + fn rint(x: f64) -> f64; + fn rintf(x: f32) -> f32; + fn sin(x: f64) -> f64; + fn pow(x: f64, y: f64) -> f64; + fn powf(x: f32, y: f32) -> f32; + fn acosf(n: f32) -> f32; + fn atan2f(a: f32, b: f32) -> f32; + fn atanf(n: f32) -> f32; + fn coshf(n: f32) -> f32; + fn expm1f(n: f32) -> f32; + fn fdim(a: f64, b: f64) -> f64; + fn fdimf(a: f32, b: f32) -> f32; + fn log1pf(n: f32) -> f32; + fn sinhf(n: f32) -> f32; + fn tanhf(n: f32) -> f32; + fn ldexp(f: f64, n: i32) -> f64; + fn ldexpf(f: f32, n: i32) -> f32; + fn tgamma(x: f64) -> f64; + fn tgammaf(x: f32) -> f32; + fn atan(x: f64) -> f64; + fn atan2(x: f64, y: f64) -> f64; + fn cosh(x: f64) -> f64; + fn log1p(x: f64) -> f64; + fn sinh(x: f64) -> f64; + fn tanh(x: f64) -> f64; + fn cosf(x: f32) -> f32; + fn exp(x: f64) -> f64; + fn sinf(x: f32) -> f32; + fn exp2(x: f64) -> f64; + fn exp2f(x: f32) -> f32; + fn fma(x: f64, y: f64, z: f64) -> f64; + fn fmaf(x: f32, y: f32, z: f32) -> f32; + fn asinf(n: f32) -> f32; + fn cbrtf(n: f32) -> f32; + fn hypotf(x: f32, y: f32) -> f32; + fn tanf(n: f32) -> f32; + + fn sqrtf(x: f32) -> f32; + fn sqrt(x: f64) -> f64; + + fn ceil(x: f64) -> f64; + fn ceilf(x: f32) -> f32; + fn floor(x: f64) -> f64; + fn floorf(x: f32) -> f32; + fn trunc(x: f64) -> f64; + fn truncf(x: f32) -> f32; + + fn fmin(x: f64, y: f64) -> f64; + fn fminf(x: f32, y: f32) -> f32; + fn fmax(x: f64, y: f64) -> f64; + fn fmaxf(x: f32, y: f32) -> f32; + // `f64 % f64` + fn fmod(x: f64, y: f64) -> f64; + // `f32 % f32` + fn fmodf(x: f32, y: f32) -> f32; +} + +intrinsics! { + #[cfg_attr(all(not(windows), not(target_vendor = "apple")), weak)] + pub extern "C" fn lgamma_r(x: f64, s: &mut i32) -> f64 { + let r = self::libm::lgamma_r(x); + *s = r.1; + r.0 + } + + #[cfg_attr(all(not(windows), not(target_vendor = "apple")), weak)] + pub extern "C" fn lgammaf_r(x: f32, s: &mut i32) -> f32 { + let r = self::libm::lgammaf_r(x); + *s = r.1; + r.0 + } +} diff --git a/src/rust/vendor/compiler_builtins/src/mem/impls.rs b/src/rust/vendor/compiler_builtins/src/mem/impls.rs new file mode 100644 index 000000000..23c9d8d32 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/mem/impls.rs @@ -0,0 +1,291 @@ +use core::intrinsics::likely; + +const WORD_SIZE: usize = core::mem::size_of::(); +const WORD_MASK: usize = WORD_SIZE - 1; + +// If the number of bytes involved exceed this threshold we will opt in word-wise copy. +// The value here selected is max(2 * WORD_SIZE, 16): +// * We need at least 2 * WORD_SIZE bytes to guarantee that at least 1 word will be copied through +// word-wise copy. +// * The word-wise copy logic needs to perform some checks so it has some small overhead. +// ensures that even on 32-bit platforms we have copied at least 8 bytes through +// word-wise copy so the saving of word-wise copy outweights the fixed overhead. +const WORD_COPY_THRESHOLD: usize = if 2 * WORD_SIZE > 16 { + 2 * WORD_SIZE +} else { + 16 +}; + +#[cfg(feature = "mem-unaligned")] +unsafe fn read_usize_unaligned(x: *const usize) -> usize { + // Do not use `core::ptr::read_unaligned` here, since it calls `copy_nonoverlapping` which + // is translated to memcpy in LLVM. + let x_read = (x as *const [u8; core::mem::size_of::()]).read(); + core::mem::transmute(x_read) +} + +#[inline(always)] +pub unsafe fn copy_forward(mut dest: *mut u8, mut src: *const u8, mut n: usize) { + #[inline(always)] + unsafe fn copy_forward_bytes(mut dest: *mut u8, mut src: *const u8, n: usize) { + let dest_end = dest.add(n); + while dest < dest_end { + *dest = *src; + dest = dest.add(1); + src = src.add(1); + } + } + + #[inline(always)] + unsafe fn copy_forward_aligned_words(dest: *mut u8, src: *const u8, n: usize) { + let mut dest_usize = dest as *mut usize; + let mut src_usize = src as *mut usize; + let dest_end = dest.add(n) as *mut usize; + + while dest_usize < dest_end { + *dest_usize = *src_usize; + dest_usize = dest_usize.add(1); + src_usize = src_usize.add(1); + } + } + + #[cfg(not(feature = "mem-unaligned"))] + #[inline(always)] + unsafe fn copy_forward_misaligned_words(dest: *mut u8, src: *const u8, n: usize) { + let mut dest_usize = dest as *mut usize; + let dest_end = dest.add(n) as *mut usize; + + // Calculate the misalignment offset and shift needed to reassemble value. + let offset = src as usize & WORD_MASK; + let shift = offset * 8; + + // Realign src + let mut src_aligned = (src as usize & !WORD_MASK) as *mut usize; + // This will read (but won't use) bytes out of bound. + // cfg needed because not all targets will have atomic loads that can be lowered + // (e.g. BPF, MSP430), or provided by an external library (e.g. RV32I) + #[cfg(target_has_atomic_load_store = "ptr")] + let mut prev_word = core::intrinsics::atomic_load_unordered(src_aligned); + #[cfg(not(target_has_atomic_load_store = "ptr"))] + let mut prev_word = core::ptr::read_volatile(src_aligned); + + while dest_usize < dest_end { + src_aligned = src_aligned.add(1); + let cur_word = *src_aligned; + #[cfg(target_endian = "little")] + let resembled = prev_word >> shift | cur_word << (WORD_SIZE * 8 - shift); + #[cfg(target_endian = "big")] + let resembled = prev_word << shift | cur_word >> (WORD_SIZE * 8 - shift); + prev_word = cur_word; + + *dest_usize = resembled; + dest_usize = dest_usize.add(1); + } + } + + #[cfg(feature = "mem-unaligned")] + #[inline(always)] + unsafe fn copy_forward_misaligned_words(dest: *mut u8, src: *const u8, n: usize) { + let mut dest_usize = dest as *mut usize; + let mut src_usize = src as *mut usize; + let dest_end = dest.add(n) as *mut usize; + + while dest_usize < dest_end { + *dest_usize = read_usize_unaligned(src_usize); + dest_usize = dest_usize.add(1); + src_usize = src_usize.add(1); + } + } + + if n >= WORD_COPY_THRESHOLD { + // Align dest + // Because of n >= 2 * WORD_SIZE, dst_misalignment < n + let dest_misalignment = (dest as usize).wrapping_neg() & WORD_MASK; + copy_forward_bytes(dest, src, dest_misalignment); + dest = dest.add(dest_misalignment); + src = src.add(dest_misalignment); + n -= dest_misalignment; + + let n_words = n & !WORD_MASK; + let src_misalignment = src as usize & WORD_MASK; + if likely(src_misalignment == 0) { + copy_forward_aligned_words(dest, src, n_words); + } else { + copy_forward_misaligned_words(dest, src, n_words); + } + dest = dest.add(n_words); + src = src.add(n_words); + n -= n_words; + } + copy_forward_bytes(dest, src, n); +} + +#[inline(always)] +pub unsafe fn copy_backward(dest: *mut u8, src: *const u8, mut n: usize) { + // The following backward copy helper functions uses the pointers past the end + // as their inputs instead of pointers to the start! + #[inline(always)] + unsafe fn copy_backward_bytes(mut dest: *mut u8, mut src: *const u8, n: usize) { + let dest_start = dest.sub(n); + while dest_start < dest { + dest = dest.sub(1); + src = src.sub(1); + *dest = *src; + } + } + + #[inline(always)] + unsafe fn copy_backward_aligned_words(dest: *mut u8, src: *const u8, n: usize) { + let mut dest_usize = dest as *mut usize; + let mut src_usize = src as *mut usize; + let dest_start = dest.sub(n) as *mut usize; + + while dest_start < dest_usize { + dest_usize = dest_usize.sub(1); + src_usize = src_usize.sub(1); + *dest_usize = *src_usize; + } + } + + #[cfg(not(feature = "mem-unaligned"))] + #[inline(always)] + unsafe fn copy_backward_misaligned_words(dest: *mut u8, src: *const u8, n: usize) { + let mut dest_usize = dest as *mut usize; + let dest_start = dest.sub(n) as *mut usize; + + // Calculate the misalignment offset and shift needed to reassemble value. + let offset = src as usize & WORD_MASK; + let shift = offset * 8; + + // Realign src_aligned + let mut src_aligned = (src as usize & !WORD_MASK) as *mut usize; + // This will read (but won't use) bytes out of bound. + // cfg needed because not all targets will have atomic loads that can be lowered + // (e.g. BPF, MSP430), or provided by an external library (e.g. RV32I) + #[cfg(target_has_atomic_load_store = "ptr")] + let mut prev_word = core::intrinsics::atomic_load_unordered(src_aligned); + #[cfg(not(target_has_atomic_load_store = "ptr"))] + let mut prev_word = core::ptr::read_volatile(src_aligned); + + while dest_start < dest_usize { + src_aligned = src_aligned.sub(1); + let cur_word = *src_aligned; + #[cfg(target_endian = "little")] + let resembled = prev_word << (WORD_SIZE * 8 - shift) | cur_word >> shift; + #[cfg(target_endian = "big")] + let resembled = prev_word >> (WORD_SIZE * 8 - shift) | cur_word << shift; + prev_word = cur_word; + + dest_usize = dest_usize.sub(1); + *dest_usize = resembled; + } + } + + #[cfg(feature = "mem-unaligned")] + #[inline(always)] + unsafe fn copy_backward_misaligned_words(dest: *mut u8, src: *const u8, n: usize) { + let mut dest_usize = dest as *mut usize; + let mut src_usize = src as *mut usize; + let dest_start = dest.sub(n) as *mut usize; + + while dest_start < dest_usize { + dest_usize = dest_usize.sub(1); + src_usize = src_usize.sub(1); + *dest_usize = read_usize_unaligned(src_usize); + } + } + + let mut dest = dest.add(n); + let mut src = src.add(n); + + if n >= WORD_COPY_THRESHOLD { + // Align dest + // Because of n >= 2 * WORD_SIZE, dst_misalignment < n + let dest_misalignment = dest as usize & WORD_MASK; + copy_backward_bytes(dest, src, dest_misalignment); + dest = dest.sub(dest_misalignment); + src = src.sub(dest_misalignment); + n -= dest_misalignment; + + let n_words = n & !WORD_MASK; + let src_misalignment = src as usize & WORD_MASK; + if likely(src_misalignment == 0) { + copy_backward_aligned_words(dest, src, n_words); + } else { + copy_backward_misaligned_words(dest, src, n_words); + } + dest = dest.sub(n_words); + src = src.sub(n_words); + n -= n_words; + } + copy_backward_bytes(dest, src, n); +} + +#[inline(always)] +pub unsafe fn set_bytes(mut s: *mut u8, c: u8, mut n: usize) { + #[inline(always)] + pub unsafe fn set_bytes_bytes(mut s: *mut u8, c: u8, n: usize) { + let end = s.add(n); + while s < end { + *s = c; + s = s.add(1); + } + } + + #[inline(always)] + pub unsafe fn set_bytes_words(s: *mut u8, c: u8, n: usize) { + let mut broadcast = c as usize; + let mut bits = 8; + while bits < WORD_SIZE * 8 { + broadcast |= broadcast << bits; + bits *= 2; + } + + let mut s_usize = s as *mut usize; + let end = s.add(n) as *mut usize; + + while s_usize < end { + *s_usize = broadcast; + s_usize = s_usize.add(1); + } + } + + if likely(n >= WORD_COPY_THRESHOLD) { + // Align s + // Because of n >= 2 * WORD_SIZE, dst_misalignment < n + let misalignment = (s as usize).wrapping_neg() & WORD_MASK; + set_bytes_bytes(s, c, misalignment); + s = s.add(misalignment); + n -= misalignment; + + let n_words = n & !WORD_MASK; + set_bytes_words(s, c, n_words); + s = s.add(n_words); + n -= n_words; + } + set_bytes_bytes(s, c, n); +} + +#[inline(always)] +pub unsafe fn compare_bytes(s1: *const u8, s2: *const u8, n: usize) -> i32 { + let mut i = 0; + while i < n { + let a = *s1.add(i); + let b = *s2.add(i); + if a != b { + return a as i32 - b as i32; + } + i += 1; + } + 0 +} + +#[inline(always)] +pub unsafe fn c_string_length(mut s: *const core::ffi::c_char) -> usize { + let mut n = 0; + while *s != 0 { + n += 1; + s = s.add(1); + } + n +} diff --git a/src/rust/vendor/compiler_builtins/src/mem/mod.rs b/src/rust/vendor/compiler_builtins/src/mem/mod.rs new file mode 100644 index 000000000..ccf191779 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/mem/mod.rs @@ -0,0 +1,196 @@ +// Trying to satisfy clippy here is hopeless +#![allow(clippy::style)] + +#[allow(warnings)] +#[cfg(target_pointer_width = "16")] +type c_int = i16; +#[allow(warnings)] +#[cfg(not(target_pointer_width = "16"))] +type c_int = i32; + +use core::intrinsics::{atomic_load_unordered, atomic_store_unordered, exact_div}; +use core::mem; +use core::ops::{BitOr, Shl}; + +// memcpy/memmove/memset have optimized implementations on some architectures +#[cfg_attr( + all(not(feature = "no-asm"), target_arch = "x86_64"), + path = "x86_64.rs" +)] +mod impls; + +intrinsics! { + #[cfg_attr(not(all(target_os = "windows", target_env = "gnu")), weak)] + #[mem_builtin] + pub unsafe extern "C" fn memcpy(dest: *mut u8, src: *const u8, n: usize) -> *mut u8 { + impls::copy_forward(dest, src, n); + dest + } + + #[cfg_attr(not(all(target_os = "windows", target_env = "gnu")), weak)] + #[mem_builtin] + pub unsafe extern "C" fn memmove(dest: *mut u8, src: *const u8, n: usize) -> *mut u8 { + let delta = (dest as usize).wrapping_sub(src as usize); + if delta >= n { + // We can copy forwards because either dest is far enough ahead of src, + // or src is ahead of dest (and delta overflowed). + impls::copy_forward(dest, src, n); + } else { + impls::copy_backward(dest, src, n); + } + dest + } + + #[cfg_attr(not(all(target_os = "windows", target_env = "gnu")), weak)] + #[mem_builtin] + pub unsafe extern "C" fn memset(s: *mut u8, c: crate::mem::c_int, n: usize) -> *mut u8 { + impls::set_bytes(s, c as u8, n); + s + } + + #[cfg_attr(not(all(target_os = "windows", target_env = "gnu")), weak)] + #[mem_builtin] + pub unsafe extern "C" fn memcmp(s1: *const u8, s2: *const u8, n: usize) -> i32 { + impls::compare_bytes(s1, s2, n) + } + + #[cfg_attr(not(all(target_os = "windows", target_env = "gnu")), weak)] + #[mem_builtin] + pub unsafe extern "C" fn bcmp(s1: *const u8, s2: *const u8, n: usize) -> i32 { + memcmp(s1, s2, n) + } + + #[cfg_attr(not(all(target_os = "windows", target_env = "gnu")), weak)] + #[mem_builtin] + pub unsafe extern "C" fn strlen(s: *const core::ffi::c_char) -> usize { + impls::c_string_length(s) + } +} + +// `bytes` must be a multiple of `mem::size_of::()` +#[cfg_attr(not(target_has_atomic_load_store = "8"), allow(dead_code))] +fn memcpy_element_unordered_atomic(dest: *mut T, src: *const T, bytes: usize) { + unsafe { + let n = exact_div(bytes, mem::size_of::()); + let mut i = 0; + while i < n { + atomic_store_unordered(dest.add(i), atomic_load_unordered(src.add(i))); + i += 1; + } + } +} + +// `bytes` must be a multiple of `mem::size_of::()` +#[cfg_attr(not(target_has_atomic_load_store = "8"), allow(dead_code))] +fn memmove_element_unordered_atomic(dest: *mut T, src: *const T, bytes: usize) { + unsafe { + let n = exact_div(bytes, mem::size_of::()); + if src < dest as *const T { + // copy from end + let mut i = n; + while i != 0 { + i -= 1; + atomic_store_unordered(dest.add(i), atomic_load_unordered(src.add(i))); + } + } else { + // copy from beginning + let mut i = 0; + while i < n { + atomic_store_unordered(dest.add(i), atomic_load_unordered(src.add(i))); + i += 1; + } + } + } +} + +// `T` must be a primitive integer type, and `bytes` must be a multiple of `mem::size_of::()` +#[cfg_attr(not(target_has_atomic_load_store = "8"), allow(dead_code))] +fn memset_element_unordered_atomic(s: *mut T, c: u8, bytes: usize) +where + T: Copy + From + Shl + BitOr, +{ + unsafe { + let n = exact_div(bytes, mem::size_of::()); + + // Construct a value of type `T` consisting of repeated `c` + // bytes, to let us ensure we write each `T` atomically. + let mut x = T::from(c); + let mut i = 1; + while i < mem::size_of::() { + x = x << 8 | T::from(c); + i += 1; + } + + // Write it to `s` + let mut i = 0; + while i < n { + atomic_store_unordered(s.add(i), x); + i += 1; + } + } +} + +intrinsics! { + #[cfg(target_has_atomic_load_store = "8")] + pub unsafe extern "C" fn __llvm_memcpy_element_unordered_atomic_1(dest: *mut u8, src: *const u8, bytes: usize) -> () { + memcpy_element_unordered_atomic(dest, src, bytes); + } + #[cfg(target_has_atomic_load_store = "16")] + pub unsafe extern "C" fn __llvm_memcpy_element_unordered_atomic_2(dest: *mut u16, src: *const u16, bytes: usize) -> () { + memcpy_element_unordered_atomic(dest, src, bytes); + } + #[cfg(target_has_atomic_load_store = "32")] + pub unsafe extern "C" fn __llvm_memcpy_element_unordered_atomic_4(dest: *mut u32, src: *const u32, bytes: usize) -> () { + memcpy_element_unordered_atomic(dest, src, bytes); + } + #[cfg(target_has_atomic_load_store = "64")] + pub unsafe extern "C" fn __llvm_memcpy_element_unordered_atomic_8(dest: *mut u64, src: *const u64, bytes: usize) -> () { + memcpy_element_unordered_atomic(dest, src, bytes); + } + #[cfg(target_has_atomic_load_store = "128")] + pub unsafe extern "C" fn __llvm_memcpy_element_unordered_atomic_16(dest: *mut u128, src: *const u128, bytes: usize) -> () { + memcpy_element_unordered_atomic(dest, src, bytes); + } + + #[cfg(target_has_atomic_load_store = "8")] + pub unsafe extern "C" fn __llvm_memmove_element_unordered_atomic_1(dest: *mut u8, src: *const u8, bytes: usize) -> () { + memmove_element_unordered_atomic(dest, src, bytes); + } + #[cfg(target_has_atomic_load_store = "16")] + pub unsafe extern "C" fn __llvm_memmove_element_unordered_atomic_2(dest: *mut u16, src: *const u16, bytes: usize) -> () { + memmove_element_unordered_atomic(dest, src, bytes); + } + #[cfg(target_has_atomic_load_store = "32")] + pub unsafe extern "C" fn __llvm_memmove_element_unordered_atomic_4(dest: *mut u32, src: *const u32, bytes: usize) -> () { + memmove_element_unordered_atomic(dest, src, bytes); + } + #[cfg(target_has_atomic_load_store = "64")] + pub unsafe extern "C" fn __llvm_memmove_element_unordered_atomic_8(dest: *mut u64, src: *const u64, bytes: usize) -> () { + memmove_element_unordered_atomic(dest, src, bytes); + } + #[cfg(target_has_atomic_load_store = "128")] + pub unsafe extern "C" fn __llvm_memmove_element_unordered_atomic_16(dest: *mut u128, src: *const u128, bytes: usize) -> () { + memmove_element_unordered_atomic(dest, src, bytes); + } + + #[cfg(target_has_atomic_load_store = "8")] + pub unsafe extern "C" fn __llvm_memset_element_unordered_atomic_1(s: *mut u8, c: u8, bytes: usize) -> () { + memset_element_unordered_atomic(s, c, bytes); + } + #[cfg(target_has_atomic_load_store = "16")] + pub unsafe extern "C" fn __llvm_memset_element_unordered_atomic_2(s: *mut u16, c: u8, bytes: usize) -> () { + memset_element_unordered_atomic(s, c, bytes); + } + #[cfg(target_has_atomic_load_store = "32")] + pub unsafe extern "C" fn __llvm_memset_element_unordered_atomic_4(s: *mut u32, c: u8, bytes: usize) -> () { + memset_element_unordered_atomic(s, c, bytes); + } + #[cfg(target_has_atomic_load_store = "64")] + pub unsafe extern "C" fn __llvm_memset_element_unordered_atomic_8(s: *mut u64, c: u8, bytes: usize) -> () { + memset_element_unordered_atomic(s, c, bytes); + } + #[cfg(target_has_atomic_load_store = "128")] + pub unsafe extern "C" fn __llvm_memset_element_unordered_atomic_16(s: *mut u128, c: u8, bytes: usize) -> () { + memset_element_unordered_atomic(s, c, bytes); + } +} diff --git a/src/rust/vendor/compiler_builtins/src/mem/x86_64.rs b/src/rust/vendor/compiler_builtins/src/mem/x86_64.rs new file mode 100644 index 000000000..40b67093f --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/mem/x86_64.rs @@ -0,0 +1,314 @@ +// On most modern Intel and AMD processors, "rep movsq" and "rep stosq" have +// been enhanced to perform better than an simple qword loop, making them ideal +// for implementing memcpy/memset. Note that "rep cmps" has received no such +// enhancement, so it is not used to implement memcmp. +// +// On certain recent Intel processors, "rep movsb" and "rep stosb" have been +// further enhanced to automatically select the best microarchitectural +// implementation based on length and alignment. See the following features from +// the "Intel® 64 and IA-32 Architectures Optimization Reference Manual": +// - ERMSB - Enhanced REP MOVSB and STOSB (Ivy Bridge and later) +// - FSRM - Fast Short REP MOV (Ice Lake and later) +// - Fast Zero-Length MOVSB (On no current hardware) +// - Fast Short STOSB (On no current hardware) +// +// To simplify things, we switch to using the byte-based variants if the "ermsb" +// feature is present at compile-time. We don't bother detecting other features. +// Note that ERMSB does not enhance the backwards (DF=1) "rep movsb". + +use core::arch::asm; +use core::intrinsics; +use core::mem; + +#[inline(always)] +#[cfg(target_feature = "ermsb")] +pub unsafe fn copy_forward(dest: *mut u8, src: *const u8, count: usize) { + // FIXME: Use the Intel syntax once we drop LLVM 9 support on rust-lang/rust. + core::arch::asm!( + "repe movsb (%rsi), (%rdi)", + inout("rcx") count => _, + inout("rdi") dest => _, + inout("rsi") src => _, + options(att_syntax, nostack, preserves_flags) + ); +} + +#[inline(always)] +#[cfg(not(target_feature = "ermsb"))] +pub unsafe fn copy_forward(mut dest: *mut u8, mut src: *const u8, count: usize) { + let (pre_byte_count, qword_count, byte_count) = rep_param(dest, count); + // Separating the blocks gives the compiler more freedom to reorder instructions. + asm!( + "rep movsb", + inout("ecx") pre_byte_count => _, + inout("rdi") dest => dest, + inout("rsi") src => src, + options(att_syntax, nostack, preserves_flags) + ); + asm!( + "rep movsq", + inout("rcx") qword_count => _, + inout("rdi") dest => dest, + inout("rsi") src => src, + options(att_syntax, nostack, preserves_flags) + ); + asm!( + "rep movsb", + inout("ecx") byte_count => _, + inout("rdi") dest => _, + inout("rsi") src => _, + options(att_syntax, nostack, preserves_flags) + ); +} + +#[inline(always)] +pub unsafe fn copy_backward(dest: *mut u8, src: *const u8, count: usize) { + let (pre_byte_count, qword_count, byte_count) = rep_param(dest, count); + // We can't separate this block due to std/cld + asm!( + "std", + "rep movsb", + "sub $7, %rsi", + "sub $7, %rdi", + "mov {qword_count}, %rcx", + "rep movsq", + "test {pre_byte_count:e}, {pre_byte_count:e}", + "add $7, %rsi", + "add $7, %rdi", + "mov {pre_byte_count:e}, %ecx", + "rep movsb", + "cld", + pre_byte_count = in(reg) pre_byte_count, + qword_count = in(reg) qword_count, + inout("ecx") byte_count => _, + inout("rdi") dest.add(count - 1) => _, + inout("rsi") src.add(count - 1) => _, + // We modify flags, but we restore it afterwards + options(att_syntax, nostack, preserves_flags) + ); +} + +#[inline(always)] +#[cfg(target_feature = "ermsb")] +pub unsafe fn set_bytes(dest: *mut u8, c: u8, count: usize) { + // FIXME: Use the Intel syntax once we drop LLVM 9 support on rust-lang/rust. + core::arch::asm!( + "repe stosb %al, (%rdi)", + inout("rcx") count => _, + inout("rdi") dest => _, + inout("al") c => _, + options(att_syntax, nostack, preserves_flags) + ) +} + +#[inline(always)] +#[cfg(not(target_feature = "ermsb"))] +pub unsafe fn set_bytes(mut dest: *mut u8, c: u8, count: usize) { + let c = c as u64 * 0x0101_0101_0101_0101; + let (pre_byte_count, qword_count, byte_count) = rep_param(dest, count); + // Separating the blocks gives the compiler more freedom to reorder instructions. + asm!( + "rep stosb", + inout("ecx") pre_byte_count => _, + inout("rdi") dest => dest, + in("rax") c, + options(att_syntax, nostack, preserves_flags) + ); + asm!( + "rep stosq", + inout("rcx") qword_count => _, + inout("rdi") dest => dest, + in("rax") c, + options(att_syntax, nostack, preserves_flags) + ); + asm!( + "rep stosb", + inout("ecx") byte_count => _, + inout("rdi") dest => _, + in("rax") c, + options(att_syntax, nostack, preserves_flags) + ); +} + +#[inline(always)] +pub unsafe fn compare_bytes(a: *const u8, b: *const u8, n: usize) -> i32 { + #[inline(always)] + unsafe fn cmp(mut a: *const T, mut b: *const T, n: usize, f: F) -> i32 + where + T: Clone + Copy + Eq, + U: Clone + Copy + Eq, + F: FnOnce(*const U, *const U, usize) -> i32, + { + // Ensure T is not a ZST. + const { assert!(mem::size_of::() != 0) }; + + let end = a.add(intrinsics::unchecked_div(n, mem::size_of::())); + while a != end { + if a.read_unaligned() != b.read_unaligned() { + return f(a.cast(), b.cast(), mem::size_of::()); + } + a = a.add(1); + b = b.add(1); + } + f( + a.cast(), + b.cast(), + intrinsics::unchecked_rem(n, mem::size_of::()), + ) + } + let c1 = |mut a: *const u8, mut b: *const u8, n| { + for _ in 0..n { + if a.read() != b.read() { + return i32::from(a.read()) - i32::from(b.read()); + } + a = a.add(1); + b = b.add(1); + } + 0 + }; + let c2 = |a: *const u16, b, n| cmp(a, b, n, c1); + let c4 = |a: *const u32, b, n| cmp(a, b, n, c2); + let c8 = |a: *const u64, b, n| cmp(a, b, n, c4); + let c16 = |a: *const u128, b, n| cmp(a, b, n, c8); + c16(a.cast(), b.cast(), n) +} + +// In order to process more than on byte simultaneously when executing strlen, +// two things must be considered: +// * An n byte read with an n-byte aligned address will never cross +// a page boundary and will always succeed. Any smaller alignment +// may result in a read that will cross a page boundary, which may +// trigger an access violation. +// * Surface Rust considers any kind of out-of-bounds read as undefined +// behaviour. To dodge this, memory access operations are written +// using inline assembly. + +#[cfg(target_feature = "sse2")] +#[inline(always)] +pub unsafe fn c_string_length(mut s: *const core::ffi::c_char) -> usize { + use core::arch::x86_64::{__m128i, _mm_cmpeq_epi8, _mm_movemask_epi8, _mm_set1_epi8}; + + let mut n = 0; + + // The use of _mm_movemask_epi8 and company allow for speedups, + // but they aren't cheap by themselves. Thus, possibly small strings + // are handled in simple loops. + + for _ in 0..4 { + if *s == 0 { + return n; + } + + n += 1; + s = s.add(1); + } + + // Shave of the least significand bits to align the address to a 16 + // byte boundary. The shaved of bits are used to correct the first iteration. + + let align = s as usize & 15; + let mut s = ((s as usize) - align) as *const __m128i; + let zero = _mm_set1_epi8(0); + + let x = { + let r; + asm!( + "movdqa ({addr}), {dest}", + addr = in(reg) s, + dest = out(xmm_reg) r, + options(att_syntax, nostack), + ); + r + }; + let cmp = _mm_movemask_epi8(_mm_cmpeq_epi8(x, zero)) >> align; + + if cmp != 0 { + return n + cmp.trailing_zeros() as usize; + } + + n += 16 - align; + s = s.add(1); + + loop { + let x = { + let r; + asm!( + "movdqa ({addr}), {dest}", + addr = in(reg) s, + dest = out(xmm_reg) r, + options(att_syntax, nostack), + ); + r + }; + let cmp = _mm_movemask_epi8(_mm_cmpeq_epi8(x, zero)) as u32; + if cmp == 0 { + n += 16; + s = s.add(1); + } else { + return n + cmp.trailing_zeros() as usize; + } + } +} + +// Provided for scenarios like kernel development, where SSE might not +// be available. +#[cfg(not(target_feature = "sse2"))] +#[inline(always)] +pub unsafe fn c_string_length(mut s: *const core::ffi::c_char) -> usize { + let mut n = 0; + + // Check bytes in steps of one until + // either a zero byte is discovered or + // pointer is aligned to an eight byte boundary. + + while s as usize & 7 != 0 { + if *s == 0 { + return n; + } + n += 1; + s = s.add(1); + } + + // Check bytes in steps of eight until a zero + // byte is discovered. + + let mut s = s as *const u64; + + loop { + let mut cs = { + let r: u64; + asm!( + "mov ({addr}), {dest}", + addr = in(reg) s, + dest = out(reg) r, + options(att_syntax, nostack), + ); + r + }; + // Detect if a word has a zero byte, taken from + // https://graphics.stanford.edu/~seander/bithacks.html + if (cs.wrapping_sub(0x0101010101010101) & !cs & 0x8080808080808080) != 0 { + loop { + if cs & 255 == 0 { + return n; + } else { + cs >>= 8; + n += 1; + } + } + } else { + n += 8; + s = s.add(1); + } + } +} + +/// Determine optimal parameters for a `rep` instruction. +fn rep_param(dest: *mut u8, mut count: usize) -> (usize, usize, usize) { + // Unaligned writes are still slow on modern processors, so align the destination address. + let pre_byte_count = ((8 - (dest as usize & 0b111)) & 0b111).min(count); + count -= pre_byte_count; + let qword_count = count >> 3; + let byte_count = count & 0b111; + (pre_byte_count, qword_count, byte_count) +} diff --git a/src/rust/vendor/compiler_builtins/src/probestack.rs b/src/rust/vendor/compiler_builtins/src/probestack.rs new file mode 100644 index 000000000..0c30384db --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/probestack.rs @@ -0,0 +1,350 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +//! This module defines the `__rust_probestack` intrinsic which is used in the +//! implementation of "stack probes" on certain platforms. +//! +//! The purpose of a stack probe is to provide a static guarantee that if a +//! thread has a guard page then a stack overflow is guaranteed to hit that +//! guard page. If a function did not have a stack probe then there's a risk of +//! having a stack frame *larger* than the guard page, so a function call could +//! skip over the guard page entirely and then later hit maybe the heap or +//! another thread, possibly leading to security vulnerabilities such as [The +//! Stack Clash], for example. +//! +//! [The Stack Clash]: https://blog.qualys.com/securitylabs/2017/06/19/the-stack-clash +//! +//! The `__rust_probestack` is called in the prologue of functions whose stack +//! size is larger than the guard page, for example larger than 4096 bytes on +//! x86. This function is then responsible for "touching" all pages relevant to +//! the stack to ensure that that if any of them are the guard page we'll hit +//! them guaranteed. +//! +//! The precise ABI for how this function operates is defined by LLVM. There's +//! no real documentation as to what this is, so you'd basically need to read +//! the LLVM source code for reference. Often though the test cases can be +//! illuminating as to the ABI that's generated, or just looking at the output +//! of `llc`. +//! +//! Note that `#[naked]` is typically used here for the stack probe because the +//! ABI corresponds to no actual ABI. +//! +//! Finally it's worth noting that at the time of this writing LLVM only has +//! support for stack probes on x86 and x86_64. There's no support for stack +//! probes on any other architecture like ARM or PowerPC64. LLVM I'm sure would +//! be more than welcome to accept such a change! + +#![cfg(not(feature = "mangled-names"))] +// Windows already has builtins to do this. +#![cfg(not(windows))] +// All these builtins require assembly +#![cfg(not(feature = "no-asm"))] +// We only define stack probing for these architectures today. +#![cfg(any(target_arch = "x86_64", target_arch = "x86"))] + +extern "C" { + pub fn __rust_probestack(); +} + +// A wrapper for our implementation of __rust_probestack, which allows us to +// keep the assembly inline while controlling all CFI directives in the assembly +// emitted for the function. +// +// This is the ELF version. +#[cfg(not(any(target_vendor = "apple", target_os = "uefi")))] +macro_rules! define_rust_probestack { + ($body: expr) => { + concat!( + " + .pushsection .text.__rust_probestack + .globl __rust_probestack + .type __rust_probestack, @function + .hidden __rust_probestack + __rust_probestack: + ", + $body, + " + .size __rust_probestack, . - __rust_probestack + .popsection + " + ) + }; +} + +#[cfg(all(target_os = "uefi", target_arch = "x86_64"))] +macro_rules! define_rust_probestack { + ($body: expr) => { + concat!( + " + .globl __rust_probestack + __rust_probestack: + ", + $body + ) + }; +} + +// Same as above, but for Mach-O. Note that the triple underscore +// is deliberate +#[cfg(target_vendor = "apple")] +macro_rules! define_rust_probestack { + ($body: expr) => { + concat!( + " + .globl ___rust_probestack + ___rust_probestack: + ", + $body + ) + }; +} + +// In UEFI x86 arch, triple underscore is deliberate. +#[cfg(all(target_os = "uefi", target_arch = "x86"))] +macro_rules! define_rust_probestack { + ($body: expr) => { + concat!( + " + .globl ___rust_probestack + ___rust_probestack: + ", + $body + ) + }; +} + +// Our goal here is to touch each page between %rsp+8 and %rsp+8-%rax, +// ensuring that if any pages are unmapped we'll make a page fault. +// +// The ABI here is that the stack frame size is located in `%rax`. Upon +// return we're not supposed to modify `%rsp` or `%rax`. +// +// Any changes to this function should be replicated to the SGX version below. +#[cfg(all( + target_arch = "x86_64", + not(all(target_env = "sgx", target_vendor = "fortanix")) +))] +core::arch::global_asm!( + define_rust_probestack!( + " + .cfi_startproc + pushq %rbp + .cfi_adjust_cfa_offset 8 + .cfi_offset %rbp, -16 + movq %rsp, %rbp + .cfi_def_cfa_register %rbp + + mov %rax,%r11 // duplicate %rax as we're clobbering %r11 + + // Main loop, taken in one page increments. We're decrementing rsp by + // a page each time until there's less than a page remaining. We're + // guaranteed that this function isn't called unless there's more than a + // page needed. + // + // Note that we're also testing against `8(%rsp)` to account for the 8 + // bytes pushed on the stack orginally with our return address. Using + // `8(%rsp)` simulates us testing the stack pointer in the caller's + // context. + + // It's usually called when %rax >= 0x1000, but that's not always true. + // Dynamic stack allocation, which is needed to implement unsized + // rvalues, triggers stackprobe even if %rax < 0x1000. + // Thus we have to check %r11 first to avoid segfault. + cmp $0x1000,%r11 + jna 3f +2: + sub $0x1000,%rsp + test %rsp,8(%rsp) + sub $0x1000,%r11 + cmp $0x1000,%r11 + ja 2b + +3: + // Finish up the last remaining stack space requested, getting the last + // bits out of r11 + sub %r11,%rsp + test %rsp,8(%rsp) + + // Restore the stack pointer to what it previously was when entering + // this function. The caller will readjust the stack pointer after we + // return. + add %rax,%rsp + + leave + .cfi_def_cfa_register %rsp + .cfi_adjust_cfa_offset -8 + ret + .cfi_endproc + " + ), + options(att_syntax) +); + +// This function is the same as above, except that some instructions are +// [manually patched for LVI]. +// +// [manually patched for LVI]: https://software.intel.com/security-software-guidance/insights/deep-dive-load-value-injection#specialinstructions +#[cfg(all( + target_arch = "x86_64", + all(target_env = "sgx", target_vendor = "fortanix") +))] +core::arch::global_asm!( + define_rust_probestack!( + " + .cfi_startproc + pushq %rbp + .cfi_adjust_cfa_offset 8 + .cfi_offset %rbp, -16 + movq %rsp, %rbp + .cfi_def_cfa_register %rbp + + mov %rax,%r11 // duplicate %rax as we're clobbering %r11 + + // Main loop, taken in one page increments. We're decrementing rsp by + // a page each time until there's less than a page remaining. We're + // guaranteed that this function isn't called unless there's more than a + // page needed. + // + // Note that we're also testing against `8(%rsp)` to account for the 8 + // bytes pushed on the stack orginally with our return address. Using + // `8(%rsp)` simulates us testing the stack pointer in the caller's + // context. + + // It's usually called when %rax >= 0x1000, but that's not always true. + // Dynamic stack allocation, which is needed to implement unsized + // rvalues, triggers stackprobe even if %rax < 0x1000. + // Thus we have to check %r11 first to avoid segfault. + cmp $0x1000,%r11 + jna 3f +2: + sub $0x1000,%rsp + test %rsp,8(%rsp) + sub $0x1000,%r11 + cmp $0x1000,%r11 + ja 2b + +3: + // Finish up the last remaining stack space requested, getting the last + // bits out of r11 + sub %r11,%rsp + test %rsp,8(%rsp) + + // Restore the stack pointer to what it previously was when entering + // this function. The caller will readjust the stack pointer after we + // return. + add %rax,%rsp + + leave + .cfi_def_cfa_register %rsp + .cfi_adjust_cfa_offset -8 + pop %r11 + lfence + jmp *%r11 + .cfi_endproc + " + ), + options(att_syntax) +); + +#[cfg(all(target_arch = "x86", not(target_os = "uefi")))] +// This is the same as x86_64 above, only translated for 32-bit sizes. Note +// that on Unix we're expected to restore everything as it was, this +// function basically can't tamper with anything. +// +// The ABI here is the same as x86_64, except everything is 32-bits large. +core::arch::global_asm!( + define_rust_probestack!( + " + .cfi_startproc + push %ebp + .cfi_adjust_cfa_offset 4 + .cfi_offset %ebp, -8 + mov %esp, %ebp + .cfi_def_cfa_register %ebp + push %ecx + mov %eax,%ecx + + cmp $0x1000,%ecx + jna 3f +2: + sub $0x1000,%esp + test %esp,8(%esp) + sub $0x1000,%ecx + cmp $0x1000,%ecx + ja 2b + +3: + sub %ecx,%esp + test %esp,8(%esp) + + add %eax,%esp + pop %ecx + leave + .cfi_def_cfa_register %esp + .cfi_adjust_cfa_offset -4 + ret + .cfi_endproc + " + ), + options(att_syntax) +); + +#[cfg(all(target_arch = "x86", target_os = "uefi"))] +// UEFI target is windows like target. LLVM will do _chkstk things like windows. +// probestack function will also do things like _chkstk in MSVC. +// So we need to sub %ax %sp in probestack when arch is x86. +// +// REF: Rust commit(74e80468347) +// rust\src\llvm-project\llvm\lib\Target\X86\X86FrameLowering.cpp: 805 +// Comments in LLVM: +// MSVC x32's _chkstk and cygwin/mingw's _alloca adjust %esp themselves. +// MSVC x64's __chkstk and cygwin/mingw's ___chkstk_ms do not adjust %rsp +// themselves. +core::arch::global_asm!( + define_rust_probestack!( + " + .cfi_startproc + push %ebp + .cfi_adjust_cfa_offset 4 + .cfi_offset %ebp, -8 + mov %esp, %ebp + .cfi_def_cfa_register %ebp + push %ecx + push %edx + mov %eax,%ecx + + cmp $0x1000,%ecx + jna 3f +2: + sub $0x1000,%esp + test %esp,8(%esp) + sub $0x1000,%ecx + cmp $0x1000,%ecx + ja 2b + +3: + sub %ecx,%esp + test %esp,8(%esp) + mov 4(%ebp),%edx + mov %edx, 12(%esp) + add %eax,%esp + pop %edx + pop %ecx + leave + + sub %eax, %esp + .cfi_def_cfa_register %esp + .cfi_adjust_cfa_offset -4 + ret + .cfi_endproc + " + ), + options(att_syntax) +); diff --git a/src/rust/vendor/compiler_builtins/src/riscv.rs b/src/rust/vendor/compiler_builtins/src/riscv.rs new file mode 100644 index 000000000..bf3125533 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/riscv.rs @@ -0,0 +1,50 @@ +intrinsics! { + // Ancient Egyptian/Ethiopian/Russian multiplication method + // see https://en.wikipedia.org/wiki/Ancient_Egyptian_multiplication + // + // This is a long-available stock algorithm; e.g. it is documented in + // Knuth's "The Art of Computer Programming" volume 2 (under the section + // "Evaluation of Powers") since at least the 2nd edition (1981). + // + // The main attraction of this method is that it implements (software) + // multiplication atop four simple operations: doubling, halving, checking + // if a value is even/odd, and addition. This is *not* considered to be the + // fastest multiplication method, but it may be amongst the simplest (and + // smallest with respect to code size). + // + // for reference, see also implementation from gcc + // https://raw.githubusercontent.com/gcc-mirror/gcc/master/libgcc/config/epiphany/mulsi3.c + // + // and from LLVM (in relatively readable RISC-V assembly): + // https://github.com/llvm/llvm-project/blob/main/compiler-rt/lib/builtins/riscv/int_mul_impl.inc + pub extern "C" fn __mulsi3(a: u32, b: u32) -> u32 { + let (mut a, mut b) = (a, b); + let mut r: u32 = 0; + + while a > 0 { + if a & 1 > 0 { + r = r.wrapping_add(b); + } + a >>= 1; + b <<= 1; + } + + r + } + + #[cfg(not(target_feature = "m"))] + pub extern "C" fn __muldi3(a: u64, b: u64) -> u64 { + let (mut a, mut b) = (a, b); + let mut r: u64 = 0; + + while a > 0 { + if a & 1 > 0 { + r = r.wrapping_add(b); + } + a >>= 1; + b <<= 1; + } + + r + } +} diff --git a/src/rust/vendor/compiler_builtins/src/x86.rs b/src/rust/vendor/compiler_builtins/src/x86.rs new file mode 100644 index 000000000..c348d082d --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/x86.rs @@ -0,0 +1,55 @@ +#![allow(unused_imports)] + +use core::intrinsics; + +// NOTE These functions are implemented using assembly because they using a custom +// calling convention which can't be implemented using a normal Rust function + +// NOTE These functions are never mangled as they are not tested against compiler-rt + +intrinsics! { + #[naked] + #[cfg(all( + windows, + target_env = "gnu", + not(feature = "no-asm") + ))] + pub unsafe extern "C" fn __chkstk() { + core::arch::asm!( + "jmp __alloca", // Jump to __alloca since fallthrough may be unreliable" + options(noreturn, att_syntax) + ); + } + + #[naked] + #[cfg(all( + windows, + target_env = "gnu", + not(feature = "no-asm") + ))] + pub unsafe extern "C" fn _alloca() { + // __chkstk and _alloca are the same function + core::arch::asm!( + "push %ecx", + "cmp $0x1000,%eax", + "lea 8(%esp),%ecx", // esp before calling this routine -> ecx + "jb 1f", + "2:", + "sub $0x1000,%ecx", + "test %ecx,(%ecx)", + "sub $0x1000,%eax", + "cmp $0x1000,%eax", + "ja 2b", + "1:", + "sub %eax,%ecx", + "test %ecx,(%ecx)", + "lea 4(%esp),%eax", // load pointer to the return address into eax + "mov %ecx,%esp", // install the new top of stack pointer into esp + "mov -4(%eax),%ecx", // restore ecx + "push (%eax)", // push return address onto the stack + "sub %esp,%eax", // restore the original value in eax + "ret", + options(noreturn, att_syntax) + ); + } +} diff --git a/src/rust/vendor/compiler_builtins/src/x86_64.rs b/src/rust/vendor/compiler_builtins/src/x86_64.rs new file mode 100644 index 000000000..8048f85c8 --- /dev/null +++ b/src/rust/vendor/compiler_builtins/src/x86_64.rs @@ -0,0 +1,47 @@ +#![allow(unused_imports)] + +use core::intrinsics; + +// NOTE These functions are implemented using assembly because they using a custom +// calling convention which can't be implemented using a normal Rust function + +// NOTE These functions are never mangled as they are not tested against compiler-rt + +intrinsics! { + #[naked] + #[cfg(all( + any(all(windows, target_env = "gnu"), target_os = "uefi"), + not(feature = "no-asm") + ))] + pub unsafe extern "C" fn ___chkstk_ms() { + core::arch::asm!( + "push %rcx", + "push %rax", + "cmp $0x1000,%rax", + "lea 24(%rsp),%rcx", + "jb 1f", + "2:", + "sub $0x1000,%rcx", + "test %rcx,(%rcx)", + "sub $0x1000,%rax", + "cmp $0x1000,%rax", + "ja 2b", + "1:", + "sub %rax,%rcx", + "test %rcx,(%rcx)", + "pop %rax", + "pop %rcx", + "ret", + options(noreturn, att_syntax) + ); + } +} + +// HACK(https://github.com/rust-lang/rust/issues/62785): x86_64-unknown-uefi needs special LLVM +// support unless we emit the _fltused +mod _fltused { + #[no_mangle] + #[used] + #[cfg(target_os = "uefi")] + static _fltused: i32 = 0; +} diff --git a/src/rust/vendor/dlmalloc/.cargo-checksum.json b/src/rust/vendor/dlmalloc/.cargo-checksum.json new file mode 100644 index 000000000..1391e404e --- /dev/null +++ b/src/rust/vendor/dlmalloc/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"d472c00493f9f7b56e9ed5e15434c57c2cd4e57835a74c01303847060f7d4511","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"97852fca5cb6bcabfa438404355bd13cb45b228a1527f0e441b05161b6704f03","build.rs":"1423186016b6fecf4dc2c3a7d506face8f644ec9c3dda035fe485d25a7e6a02d","src/dlmalloc.c":"103602c3fcbe200d5e257cdd7353d84bcc033d887bea3b245321319bf5401f47","src/dlmalloc.rs":"09171d38610348166a189cead2d5f26460fcf1675dd7355c6b1a1e096568ecb1","src/dummy.rs":"31b838ec75742c6c199e9ed2247c2eaf74d41caddcd1466eb3d646598d8ba34e","src/global.rs":"ff319c7ff9dff06fdccbca64457315f97fbb345b6e8dcc68e0257caac6a36648","src/lib.rs":"8dfca0e85539be3e5ea98c473ab12382fd5b85d53d95f3eb02276ef8adb726af","src/unix.rs":"890e0079d8286c6334b193479f2cf686d6f99f7b5d0e06fe54a10f9a74f0d77d","src/wasm.rs":"d24bed51091e75f95e6f5445eaf09eeabeb979e1605bcaa5a905505d3fd841c2","src/windows.rs":"dc37a4c06e24288f9ab6a1990afc5f9efcf0e0938c3f17520548a11aeba011d3","src/xous.rs":"09939afb4f9b1082d8ca89e625a5429508040854a0aeb2b56525a1dcfaacb74f","tests/global.rs":"6f3ca05b44fb60fd7967d2ca1d11338e177b0266d75454410b82ea704c246892","tests/smoke.rs":"c723cf69db87da795fda9d7c3f91c85d892857f07b13484eaec1c8a3e2fcd0ae"},"package":"3264b043b8e977326c1ee9e723da2c1f8d09a99df52cacf00b4dbce5ac54414d"} \ No newline at end of file diff --git a/src/rust/vendor/dlmalloc/Cargo.toml b/src/rust/vendor/dlmalloc/Cargo.toml new file mode 100644 index 000000000..dbc517bb4 --- /dev/null +++ b/src/rust/vendor/dlmalloc/Cargo.toml @@ -0,0 +1,73 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +name = "dlmalloc" +version = "0.2.6" +authors = ["Alex Crichton "] +description = """ +A Rust port of the dlmalloc allocator +""" +homepage = "https://github.com/alexcrichton/dlmalloc-rs" +documentation = "https://docs.rs/dlmalloc" +readme = "README.md" +license = "MIT/Apache-2.0" +repository = "https://github.com/alexcrichton/dlmalloc-rs" + +[package.metadata.docs.rs] +features = ["global"] + +[profile.release] +debug-assertions = true + +[lib] +doctest = false + +[dependencies.cfg-if] +version = "1.0" + +[dependencies.compiler_builtins] +version = "0.1.0" +optional = true + +[dependencies.core] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-core" + +[dev-dependencies.arbitrary] +version = "1.3.2" + +[dev-dependencies.rand] +version = "0.8" +features = ["small_rng"] + +[features] +debug = [] +global = [] +rustc-dep-of-std = [ + "core", + "compiler_builtins/rustc-dep-of-std", +] + +[target."cfg(all(unix, not(target_arch = \"wasm32\")))".dependencies.libc] +version = "0.2" +default-features = false + +[target."cfg(target_os = \"windows\")".dependencies.windows-sys] +version = "0.52.0" +features = [ + "Win32_Foundation", + "Win32_System_Memory", + "Win32_System_Threading", + "Win32_System_SystemInformation", +] diff --git a/src/rust/vendor/lazy_static/LICENSE-APACHE b/src/rust/vendor/dlmalloc/LICENSE-APACHE similarity index 100% rename from src/rust/vendor/lazy_static/LICENSE-APACHE rename to src/rust/vendor/dlmalloc/LICENSE-APACHE diff --git a/src/rust/vendor/lazy_static/LICENSE-MIT b/src/rust/vendor/dlmalloc/LICENSE-MIT similarity index 95% rename from src/rust/vendor/lazy_static/LICENSE-MIT rename to src/rust/vendor/dlmalloc/LICENSE-MIT index 25597d583..39e0ed660 100644 --- a/src/rust/vendor/lazy_static/LICENSE-MIT +++ b/src/rust/vendor/dlmalloc/LICENSE-MIT @@ -1,4 +1,4 @@ -Copyright (c) 2010 The Rust Project Developers +Copyright (c) 2014 Alex Crichton Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated diff --git a/src/rust/vendor/dlmalloc/README.md b/src/rust/vendor/dlmalloc/README.md new file mode 100644 index 000000000..317d8c8bf --- /dev/null +++ b/src/rust/vendor/dlmalloc/README.md @@ -0,0 +1,40 @@ +# dlmalloc-rs + +A port of [dlmalloc] to Rust. + +[Documentation](https://docs.rs/dlmalloc) + +[dlmalloc]: https://gee.cs.oswego.edu/dl/html/malloc.html + +## Why dlmalloc? + +This crate is a port of [dlmalloc] to Rust, and doesn't rely on C. The primary +purpose of this crate is to serve as the default allocator for Rust on the +`wasm32-unknown-unknown` target. At the time this was written the wasm target +didn't support C code, so it was required to have a Rust-only solution. + +This allocator is not the most performant by a longshot. It is primarily, I +think, intended for being easy to port and easy to learn. I didn't dive too deep +into the implementation when writing it, it's just a straight port of the C +version. + +It's unlikely that Rust code needs to worry/interact with this allocator in +general. Most of the time you'll be manually switching to a different allocator +:) + +# License + +This project is licensed under either of + + * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or + http://www.apache.org/licenses/LICENSE-2.0) + * MIT license ([LICENSE-MIT](LICENSE-MIT) or + http://opensource.org/licenses/MIT) + +at your option. + +### Contribution + +Unless you explicitly state otherwise, any contribution intentionally submitted +for inclusion in this project by you, as defined in the Apache-2.0 license, +shall be dual licensed as above, without any additional terms or conditions. diff --git a/src/rust/vendor/dlmalloc/build.rs b/src/rust/vendor/dlmalloc/build.rs new file mode 100644 index 000000000..20aaa4f85 --- /dev/null +++ b/src/rust/vendor/dlmalloc/build.rs @@ -0,0 +1,4 @@ +fn main() { + #[cfg(feature = "debug")] + println!("cargo:rustc-cfg=debug_assertions"); +} diff --git a/src/rust/vendor/dlmalloc/src/dlmalloc.c b/src/rust/vendor/dlmalloc/src/dlmalloc.c new file mode 100644 index 000000000..649cfbc70 --- /dev/null +++ b/src/rust/vendor/dlmalloc/src/dlmalloc.c @@ -0,0 +1,6280 @@ +/* + This is a version (aka dlmalloc) of malloc/free/realloc written by + Doug Lea and released to the public domain, as explained at + http://creativecommons.org/publicdomain/zero/1.0/ Send questions, + comments, complaints, performance data, etc to dl@cs.oswego.edu + +* Version 2.8.6 Wed Aug 29 06:57:58 2012 Doug Lea + Note: There may be an updated version of this malloc obtainable at + ftp://gee.cs.oswego.edu/pub/misc/malloc.c + Check before installing! + +* Quickstart + + This library is all in one file to simplify the most common usage: + ftp it, compile it (-O3), and link it into another program. All of + the compile-time options default to reasonable values for use on + most platforms. You might later want to step through various + compile-time and dynamic tuning options. + + For convenience, an include file for code using this malloc is at: + ftp://gee.cs.oswego.edu/pub/misc/malloc-2.8.6.h + You don't really need this .h file unless you call functions not + defined in your system include files. The .h file contains only the + excerpts from this file needed for using this malloc on ANSI C/C++ + systems, so long as you haven't changed compile-time options about + naming and tuning parameters. If you do, then you can create your + own malloc.h that does include all settings by cutting at the point + indicated below. Note that you may already by default be using a C + library containing a malloc that is based on some version of this + malloc (for example in linux). You might still want to use the one + in this file to customize settings or to avoid overheads associated + with library versions. + +* Vital statistics: + + Supported pointer/size_t representation: 4 or 8 bytes + size_t MUST be an unsigned type of the same width as + pointers. (If you are using an ancient system that declares + size_t as a signed type, or need it to be a different width + than pointers, you can use a previous release of this malloc + (e.g. 2.7.2) supporting these.) + + Alignment: 8 bytes (minimum) + This suffices for nearly all current machines and C compilers. + However, you can define MALLOC_ALIGNMENT to be wider than this + if necessary (up to 128bytes), at the expense of using more space. + + Minimum overhead per allocated chunk: 4 or 8 bytes (if 4byte sizes) + 8 or 16 bytes (if 8byte sizes) + Each malloced chunk has a hidden word of overhead holding size + and status information, and additional cross-check word + if FOOTERS is defined. + + Minimum allocated size: 4-byte ptrs: 16 bytes (including overhead) + 8-byte ptrs: 32 bytes (including overhead) + + Even a request for zero bytes (i.e., malloc(0)) returns a + pointer to something of the minimum allocatable size. + The maximum overhead wastage (i.e., number of extra bytes + allocated than were requested in malloc) is less than or equal + to the minimum size, except for requests >= mmap_threshold that + are serviced via mmap(), where the worst case wastage is about + 32 bytes plus the remainder from a system page (the minimal + mmap unit); typically 4096 or 8192 bytes. + + Security: static-safe; optionally more or less + The "security" of malloc refers to the ability of malicious + code to accentuate the effects of errors (for example, freeing + space that is not currently malloc'ed or overwriting past the + ends of chunks) in code that calls malloc. This malloc + guarantees not to modify any memory locations below the base of + heap, i.e., static variables, even in the presence of usage + errors. The routines additionally detect most improper frees + and reallocs. All this holds as long as the static bookkeeping + for malloc itself is not corrupted by some other means. This + is only one aspect of security -- these checks do not, and + cannot, detect all possible programming errors. + + If FOOTERS is defined nonzero, then each allocated chunk + carries an additional check word to verify that it was malloced + from its space. These check words are the same within each + execution of a program using malloc, but differ across + executions, so externally crafted fake chunks cannot be + freed. This improves security by rejecting frees/reallocs that + could corrupt heap memory, in addition to the checks preventing + writes to statics that are always on. This may further improve + security at the expense of time and space overhead. (Note that + FOOTERS may also be worth using with MSPACES.) + + By default detected errors cause the program to abort (calling + "abort()"). You can override this to instead proceed past + errors by defining PROCEED_ON_ERROR. In this case, a bad free + has no effect, and a malloc that encounters a bad address + caused by user overwrites will ignore the bad address by + dropping pointers and indices to all known memory. This may + be appropriate for programs that should continue if at all + possible in the face of programming errors, although they may + run out of memory because dropped memory is never reclaimed. + + If you don't like either of these options, you can define + CORRUPTION_ERROR_ACTION and USAGE_ERROR_ACTION to do anything + else. And if if you are sure that your program using malloc has + no errors or vulnerabilities, you can define INSECURE to 1, + which might (or might not) provide a small performance improvement. + + It is also possible to limit the maximum total allocatable + space, using malloc_set_footprint_limit. This is not + designed as a security feature in itself (calls to set limits + are not screened or privileged), but may be useful as one + aspect of a secure implementation. + + Thread-safety: NOT thread-safe unless USE_LOCKS defined non-zero + When USE_LOCKS is defined, each public call to malloc, free, + etc is surrounded with a lock. By default, this uses a plain + pthread mutex, win32 critical section, or a spin-lock if if + available for the platform and not disabled by setting + USE_SPIN_LOCKS=0. However, if USE_RECURSIVE_LOCKS is defined, + recursive versions are used instead (which are not required for + base functionality but may be needed in layered extensions). + Using a global lock is not especially fast, and can be a major + bottleneck. It is designed only to provide minimal protection + in concurrent environments, and to provide a basis for + extensions. If you are using malloc in a concurrent program, + consider instead using nedmalloc + (http://www.nedprod.com/programs/portable/nedmalloc/) or + ptmalloc (See http://www.malloc.de), which are derived from + versions of this malloc. + + System requirements: Any combination of MORECORE and/or MMAP/MUNMAP + This malloc can use unix sbrk or any emulation (invoked using + the CALL_MORECORE macro) and/or mmap/munmap or any emulation + (invoked using CALL_MMAP/CALL_MUNMAP) to get and release system + memory. On most unix systems, it tends to work best if both + MORECORE and MMAP are enabled. On Win32, it uses emulations + based on VirtualAlloc. It also uses common C library functions + like memset. + + Compliance: I believe it is compliant with the Single Unix Specification + (See http://www.unix.org). Also SVID/XPG, ANSI C, and probably + others as well. + +* Overview of algorithms + + This is not the fastest, most space-conserving, most portable, or + most tunable malloc ever written. However it is among the fastest + while also being among the most space-conserving, portable and + tunable. Consistent balance across these factors results in a good + general-purpose allocator for malloc-intensive programs. + + In most ways, this malloc is a best-fit allocator. Generally, it + chooses the best-fitting existing chunk for a request, with ties + broken in approximately least-recently-used order. (This strategy + normally maintains low fragmentation.) However, for requests less + than 256bytes, it deviates from best-fit when there is not an + exactly fitting available chunk by preferring to use space adjacent + to that used for the previous small request, as well as by breaking + ties in approximately most-recently-used order. (These enhance + locality of series of small allocations.) And for very large requests + (>= 256Kb by default), it relies on system memory mapping + facilities, if supported. (This helps avoid carrying around and + possibly fragmenting memory used only for large chunks.) + + All operations (except malloc_stats and mallinfo) have execution + times that are bounded by a constant factor of the number of bits in + a size_t, not counting any clearing in calloc or copying in realloc, + or actions surrounding MORECORE and MMAP that have times + proportional to the number of non-contiguous regions returned by + system allocation routines, which is often just 1. In real-time + applications, you can optionally suppress segment traversals using + NO_SEGMENT_TRAVERSAL, which assures bounded execution even when + system allocators return non-contiguous spaces, at the typical + expense of carrying around more memory and increased fragmentation. + + The implementation is not very modular and seriously overuses + macros. Perhaps someday all C compilers will do as good a job + inlining modular code as can now be done by brute-force expansion, + but now, enough of them seem not to. + + Some compilers issue a lot of warnings about code that is + dead/unreachable only on some platforms, and also about intentional + uses of negation on unsigned types. All known cases of each can be + ignored. + + For a longer but out of date high-level description, see + http://gee.cs.oswego.edu/dl/html/malloc.html + +* MSPACES + If MSPACES is defined, then in addition to malloc, free, etc., + this file also defines mspace_malloc, mspace_free, etc. These + are versions of malloc routines that take an "mspace" argument + obtained using create_mspace, to control all internal bookkeeping. + If ONLY_MSPACES is defined, only these versions are compiled. + So if you would like to use this allocator for only some allocations, + and your system malloc for others, you can compile with + ONLY_MSPACES and then do something like... + static mspace mymspace = create_mspace(0,0); // for example + #define mymalloc(bytes) mspace_malloc(mymspace, bytes) + + (Note: If you only need one instance of an mspace, you can instead + use "USE_DL_PREFIX" to relabel the global malloc.) + + You can similarly create thread-local allocators by storing + mspaces as thread-locals. For example: + static __thread mspace tlms = 0; + void* tlmalloc(size_t bytes) { + if (tlms == 0) tlms = create_mspace(0, 0); + return mspace_malloc(tlms, bytes); + } + void tlfree(void* mem) { mspace_free(tlms, mem); } + + Unless FOOTERS is defined, each mspace is completely independent. + You cannot allocate from one and free to another (although + conformance is only weakly checked, so usage errors are not always + caught). If FOOTERS is defined, then each chunk carries around a tag + indicating its originating mspace, and frees are directed to their + originating spaces. Normally, this requires use of locks. + + ------------------------- Compile-time options --------------------------- + +Be careful in setting #define values for numerical constants of type +size_t. On some systems, literal values are not automatically extended +to size_t precision unless they are explicitly casted. You can also +use the symbolic values MAX_SIZE_T, SIZE_T_ONE, etc below. + +WIN32 default: defined if _WIN32 defined + Defining WIN32 sets up defaults for MS environment and compilers. + Otherwise defaults are for unix. Beware that there seem to be some + cases where this malloc might not be a pure drop-in replacement for + Win32 malloc: Random-looking failures from Win32 GDI API's (eg; + SetDIBits()) may be due to bugs in some video driver implementations + when pixel buffers are malloc()ed, and the region spans more than + one VirtualAlloc()ed region. Because dlmalloc uses a small (64Kb) + default granularity, pixel buffers may straddle virtual allocation + regions more often than when using the Microsoft allocator. You can + avoid this by using VirtualAlloc() and VirtualFree() for all pixel + buffers rather than using malloc(). If this is not possible, + recompile this malloc with a larger DEFAULT_GRANULARITY. Note: + in cases where MSC and gcc (cygwin) are known to differ on WIN32, + conditions use _MSC_VER to distinguish them. + +DLMALLOC_EXPORT default: extern + Defines how public APIs are declared. If you want to export via a + Windows DLL, you might define this as + #define DLMALLOC_EXPORT extern __declspec(dllexport) + If you want a POSIX ELF shared object, you might use + #define DLMALLOC_EXPORT extern __attribute__((visibility("default"))) + +MALLOC_ALIGNMENT default: (size_t)(2 * sizeof(void *)) + Controls the minimum alignment for malloc'ed chunks. It must be a + power of two and at least 8, even on machines for which smaller + alignments would suffice. It may be defined as larger than this + though. Note however that code and data structures are optimized for + the case of 8-byte alignment. + +MSPACES default: 0 (false) + If true, compile in support for independent allocation spaces. + This is only supported if HAVE_MMAP is true. + +ONLY_MSPACES default: 0 (false) + If true, only compile in mspace versions, not regular versions. + +USE_LOCKS default: 0 (false) + Causes each call to each public routine to be surrounded with + pthread or WIN32 mutex lock/unlock. (If set true, this can be + overridden on a per-mspace basis for mspace versions.) If set to a + non-zero value other than 1, locks are used, but their + implementation is left out, so lock functions must be supplied manually, + as described below. + +USE_SPIN_LOCKS default: 1 iff USE_LOCKS and spin locks available + If true, uses custom spin locks for locking. This is currently + supported only gcc >= 4.1, older gccs on x86 platforms, and recent + MS compilers. Otherwise, posix locks or win32 critical sections are + used. + +USE_RECURSIVE_LOCKS default: not defined + If defined nonzero, uses recursive (aka reentrant) locks, otherwise + uses plain mutexes. This is not required for malloc proper, but may + be needed for layered allocators such as nedmalloc. + +LOCK_AT_FORK default: not defined + If defined nonzero, performs pthread_atfork upon initialization + to initialize child lock while holding parent lock. The implementation + assumes that pthread locks (not custom locks) are being used. In other + cases, you may need to customize the implementation. + +FOOTERS default: 0 + If true, provide extra checking and dispatching by placing + information in the footers of allocated chunks. This adds + space and time overhead. + +INSECURE default: 0 + If true, omit checks for usage errors and heap space overwrites. + +USE_DL_PREFIX default: NOT defined + Causes compiler to prefix all public routines with the string 'dl'. + This can be useful when you only want to use this malloc in one part + of a program, using your regular system malloc elsewhere. + +MALLOC_INSPECT_ALL default: NOT defined + If defined, compiles malloc_inspect_all and mspace_inspect_all, that + perform traversal of all heap space. Unless access to these + functions is otherwise restricted, you probably do not want to + include them in secure implementations. + +ABORT default: defined as abort() + Defines how to abort on failed checks. On most systems, a failed + check cannot die with an "assert" or even print an informative + message, because the underlying print routines in turn call malloc, + which will fail again. Generally, the best policy is to simply call + abort(). It's not very useful to do more than this because many + errors due to overwriting will show up as address faults (null, odd + addresses etc) rather than malloc-triggered checks, so will also + abort. Also, most compilers know that abort() does not return, so + can better optimize code conditionally calling it. + +PROCEED_ON_ERROR default: defined as 0 (false) + Controls whether detected bad addresses cause them to bypassed + rather than aborting. If set, detected bad arguments to free and + realloc are ignored. And all bookkeeping information is zeroed out + upon a detected overwrite of freed heap space, thus losing the + ability to ever return it from malloc again, but enabling the + application to proceed. If PROCEED_ON_ERROR is defined, the + static variable malloc_corruption_error_count is compiled in + and can be examined to see if errors have occurred. This option + generates slower code than the default abort policy. + +DEBUG default: NOT defined + The DEBUG setting is mainly intended for people trying to modify + this code or diagnose problems when porting to new platforms. + However, it may also be able to better isolate user errors than just + using runtime checks. The assertions in the check routines spell + out in more detail the assumptions and invariants underlying the + algorithms. The checking is fairly extensive, and will slow down + execution noticeably. Calling malloc_stats or mallinfo with DEBUG + set will attempt to check every non-mmapped allocated and free chunk + in the course of computing the summaries. + +ABORT_ON_ASSERT_FAILURE default: defined as 1 (true) + Debugging assertion failures can be nearly impossible if your + version of the assert macro causes malloc to be called, which will + lead to a cascade of further failures, blowing the runtime stack. + ABORT_ON_ASSERT_FAILURE cause assertions failures to call abort(), + which will usually make debugging easier. + +MALLOC_FAILURE_ACTION default: sets errno to ENOMEM, or no-op on win32 + The action to take before "return 0" when malloc fails to be able to + return memory because there is none available. + +HAVE_MORECORE default: 1 (true) unless win32 or ONLY_MSPACES + True if this system supports sbrk or an emulation of it. + +MORECORE default: sbrk + The name of the sbrk-style system routine to call to obtain more + memory. See below for guidance on writing custom MORECORE + functions. The type of the argument to sbrk/MORECORE varies across + systems. It cannot be size_t, because it supports negative + arguments, so it is normally the signed type of the same width as + size_t (sometimes declared as "intptr_t"). It doesn't much matter + though. Internally, we only call it with arguments less than half + the max value of a size_t, which should work across all reasonable + possibilities, although sometimes generating compiler warnings. + +MORECORE_CONTIGUOUS default: 1 (true) if HAVE_MORECORE + If true, take advantage of fact that consecutive calls to MORECORE + with positive arguments always return contiguous increasing + addresses. This is true of unix sbrk. It does not hurt too much to + set it true anyway, since malloc copes with non-contiguities. + Setting it false when definitely non-contiguous saves time + and possibly wasted space it would take to discover this though. + +MORECORE_CANNOT_TRIM default: NOT defined + True if MORECORE cannot release space back to the system when given + negative arguments. This is generally necessary only if you are + using a hand-crafted MORECORE function that cannot handle negative + arguments. + +NO_SEGMENT_TRAVERSAL default: 0 + If non-zero, suppresses traversals of memory segments + returned by either MORECORE or CALL_MMAP. This disables + merging of segments that are contiguous, and selectively + releasing them to the OS if unused, but bounds execution times. + +HAVE_MMAP default: 1 (true) + True if this system supports mmap or an emulation of it. If so, and + HAVE_MORECORE is not true, MMAP is used for all system + allocation. If set and HAVE_MORECORE is true as well, MMAP is + primarily used to directly allocate very large blocks. It is also + used as a backup strategy in cases where MORECORE fails to provide + space from system. Note: A single call to MUNMAP is assumed to be + able to unmap memory that may have be allocated using multiple calls + to MMAP, so long as they are adjacent. + +HAVE_MREMAP default: 1 on linux, else 0 + If true realloc() uses mremap() to re-allocate large blocks and + extend or shrink allocation spaces. + +MMAP_CLEARS default: 1 except on WINCE. + True if mmap clears memory so calloc doesn't need to. This is true + for standard unix mmap using /dev/zero and on WIN32 except for WINCE. + +USE_BUILTIN_FFS default: 0 (i.e., not used) + Causes malloc to use the builtin ffs() function to compute indices. + Some compilers may recognize and intrinsify ffs to be faster than the + supplied C version. Also, the case of x86 using gcc is special-cased + to an asm instruction, so is already as fast as it can be, and so + this setting has no effect. Similarly for Win32 under recent MS compilers. + (On most x86s, the asm version is only slightly faster than the C version.) + +malloc_getpagesize default: derive from system includes, or 4096. + The system page size. To the extent possible, this malloc manages + memory from the system in page-size units. This may be (and + usually is) a function rather than a constant. This is ignored + if WIN32, where page size is determined using getSystemInfo during + initialization. + +USE_DEV_RANDOM default: 0 (i.e., not used) + Causes malloc to use /dev/random to initialize secure magic seed for + stamping footers. Otherwise, the current time is used. + +NO_MALLINFO default: 0 + If defined, don't compile "mallinfo". This can be a simple way + of dealing with mismatches between system declarations and + those in this file. + +MALLINFO_FIELD_TYPE default: size_t + The type of the fields in the mallinfo struct. This was originally + defined as "int" in SVID etc, but is more usefully defined as + size_t. The value is used only if HAVE_USR_INCLUDE_MALLOC_H is not set + +NO_MALLOC_STATS default: 0 + If defined, don't compile "malloc_stats". This avoids calls to + fprintf and bringing in stdio dependencies you might not want. + +REALLOC_ZERO_BYTES_FREES default: not defined + This should be set if a call to realloc with zero bytes should + be the same as a call to free. Some people think it should. Otherwise, + since this malloc returns a unique pointer for malloc(0), so does + realloc(p, 0). + +LACKS_UNISTD_H, LACKS_FCNTL_H, LACKS_SYS_PARAM_H, LACKS_SYS_MMAN_H +LACKS_STRINGS_H, LACKS_STRING_H, LACKS_SYS_TYPES_H, LACKS_ERRNO_H +LACKS_STDLIB_H LACKS_SCHED_H LACKS_TIME_H default: NOT defined unless on WIN32 + Define these if your system does not have these header files. + You might need to manually insert some of the declarations they provide. + +DEFAULT_GRANULARITY default: page size if MORECORE_CONTIGUOUS, + system_info.dwAllocationGranularity in WIN32, + otherwise 64K. + Also settable using mallopt(M_GRANULARITY, x) + The unit for allocating and deallocating memory from the system. On + most systems with contiguous MORECORE, there is no reason to + make this more than a page. However, systems with MMAP tend to + either require or encourage larger granularities. You can increase + this value to prevent system allocation functions to be called so + often, especially if they are slow. The value must be at least one + page and must be a power of two. Setting to 0 causes initialization + to either page size or win32 region size. (Note: In previous + versions of malloc, the equivalent of this option was called + "TOP_PAD") + +DEFAULT_TRIM_THRESHOLD default: 2MB + Also settable using mallopt(M_TRIM_THRESHOLD, x) + The maximum amount of unused top-most memory to keep before + releasing via malloc_trim in free(). Automatic trimming is mainly + useful in long-lived programs using contiguous MORECORE. Because + trimming via sbrk can be slow on some systems, and can sometimes be + wasteful (in cases where programs immediately afterward allocate + more large chunks) the value should be high enough so that your + overall system performance would improve by releasing this much + memory. As a rough guide, you might set to a value close to the + average size of a process (program) running on your system. + Releasing this much memory would allow such a process to run in + memory. Generally, it is worth tuning trim thresholds when a + program undergoes phases where several large chunks are allocated + and released in ways that can reuse each other's storage, perhaps + mixed with phases where there are no such chunks at all. The trim + value must be greater than page size to have any useful effect. To + disable trimming completely, you can set to MAX_SIZE_T. Note that the trick + some people use of mallocing a huge space and then freeing it at + program startup, in an attempt to reserve system memory, doesn't + have the intended effect under automatic trimming, since that memory + will immediately be returned to the system. + +DEFAULT_MMAP_THRESHOLD default: 256K + Also settable using mallopt(M_MMAP_THRESHOLD, x) + The request size threshold for using MMAP to directly service a + request. Requests of at least this size that cannot be allocated + using already-existing space will be serviced via mmap. (If enough + normal freed space already exists it is used instead.) Using mmap + segregates relatively large chunks of memory so that they can be + individually obtained and released from the host system. A request + serviced through mmap is never reused by any other request (at least + not directly; the system may just so happen to remap successive + requests to the same locations). Segregating space in this way has + the benefits that: Mmapped space can always be individually released + back to the system, which helps keep the system level memory demands + of a long-lived program low. Also, mapped memory doesn't become + `locked' between other chunks, as can happen with normally allocated + chunks, which means that even trimming via malloc_trim would not + release them. However, it has the disadvantage that the space + cannot be reclaimed, consolidated, and then used to service later + requests, as happens with normal chunks. The advantages of mmap + nearly always outweigh disadvantages for "large" chunks, but the + value of "large" may vary across systems. The default is an + empirically derived value that works well in most systems. You can + disable mmap by setting to MAX_SIZE_T. + +MAX_RELEASE_CHECK_RATE default: 4095 unless not HAVE_MMAP + The number of consolidated frees between checks to release + unused segments when freeing. When using non-contiguous segments, + especially with multiple mspaces, checking only for topmost space + doesn't always suffice to trigger trimming. To compensate for this, + free() will, with a period of MAX_RELEASE_CHECK_RATE (or the + current number of segments, if greater) try to release unused + segments to the OS when freeing chunks that result in + consolidation. The best value for this parameter is a compromise + between slowing down frees with relatively costly checks that + rarely trigger versus holding on to unused memory. To effectively + disable, set to MAX_SIZE_T. This may lead to a very slight speed + improvement at the expense of carrying around more memory. +*/ + +/* Version identifier to allow people to support multiple versions */ +#ifndef DLMALLOC_VERSION +#define DLMALLOC_VERSION 20806 +#endif /* DLMALLOC_VERSION */ + +#ifndef DLMALLOC_EXPORT +#define DLMALLOC_EXPORT extern +#endif + +#ifndef WIN32 +#ifdef _WIN32 +#define WIN32 1 +#endif /* _WIN32 */ +#ifdef _WIN32_WCE +#define LACKS_FCNTL_H +#define WIN32 1 +#endif /* _WIN32_WCE */ +#endif /* WIN32 */ +#ifdef WIN32 +#define WIN32_LEAN_AND_MEAN +#include +#include +#define HAVE_MMAP 1 +#define HAVE_MORECORE 0 +#define LACKS_UNISTD_H +#define LACKS_SYS_PARAM_H +#define LACKS_SYS_MMAN_H +#define LACKS_STRING_H +#define LACKS_STRINGS_H +#define LACKS_SYS_TYPES_H +#define LACKS_ERRNO_H +#define LACKS_SCHED_H +#ifndef MALLOC_FAILURE_ACTION +#define MALLOC_FAILURE_ACTION +#endif /* MALLOC_FAILURE_ACTION */ +#ifndef MMAP_CLEARS +#ifdef _WIN32_WCE /* WINCE reportedly does not clear */ +#define MMAP_CLEARS 0 +#else +#define MMAP_CLEARS 1 +#endif /* _WIN32_WCE */ +#endif /*MMAP_CLEARS */ +#endif /* WIN32 */ + +#if defined(DARWIN) || defined(_DARWIN) +/* Mac OSX docs advise not to use sbrk; it seems better to use mmap */ +#ifndef HAVE_MORECORE +#define HAVE_MORECORE 0 +#define HAVE_MMAP 1 +/* OSX allocators provide 16 byte alignment */ +#ifndef MALLOC_ALIGNMENT +#define MALLOC_ALIGNMENT ((size_t)16U) +#endif +#endif /* HAVE_MORECORE */ +#endif /* DARWIN */ + +#ifndef LACKS_SYS_TYPES_H +#include /* For size_t */ +#endif /* LACKS_SYS_TYPES_H */ + +/* The maximum possible size_t value has all bits set */ +#define MAX_SIZE_T (~(size_t)0) + +#ifndef USE_LOCKS /* ensure true if spin or recursive locks set */ +#define USE_LOCKS ((defined(USE_SPIN_LOCKS) && USE_SPIN_LOCKS != 0) || \ + (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0)) +#endif /* USE_LOCKS */ + +#if USE_LOCKS /* Spin locks for gcc >= 4.1, older gcc on x86, MSC >= 1310 */ +#if ((defined(__GNUC__) && \ + ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) || \ + defined(__i386__) || defined(__x86_64__))) || \ + (defined(_MSC_VER) && _MSC_VER>=1310)) +#ifndef USE_SPIN_LOCKS +#define USE_SPIN_LOCKS 1 +#endif /* USE_SPIN_LOCKS */ +#elif USE_SPIN_LOCKS +#error "USE_SPIN_LOCKS defined without implementation" +#endif /* ... locks available... */ +#elif !defined(USE_SPIN_LOCKS) +#define USE_SPIN_LOCKS 0 +#endif /* USE_LOCKS */ + +#ifndef ONLY_MSPACES +#define ONLY_MSPACES 0 +#endif /* ONLY_MSPACES */ +#ifndef MSPACES +#if ONLY_MSPACES +#define MSPACES 1 +#else /* ONLY_MSPACES */ +#define MSPACES 0 +#endif /* ONLY_MSPACES */ +#endif /* MSPACES */ +#ifndef MALLOC_ALIGNMENT +#define MALLOC_ALIGNMENT ((size_t)(2 * sizeof(void *))) +#endif /* MALLOC_ALIGNMENT */ +#ifndef FOOTERS +#define FOOTERS 0 +#endif /* FOOTERS */ +#ifndef ABORT +#define ABORT abort() +#endif /* ABORT */ +#ifndef ABORT_ON_ASSERT_FAILURE +#define ABORT_ON_ASSERT_FAILURE 1 +#endif /* ABORT_ON_ASSERT_FAILURE */ +#ifndef PROCEED_ON_ERROR +#define PROCEED_ON_ERROR 0 +#endif /* PROCEED_ON_ERROR */ + +#ifndef INSECURE +#define INSECURE 0 +#endif /* INSECURE */ +#ifndef MALLOC_INSPECT_ALL +#define MALLOC_INSPECT_ALL 0 +#endif /* MALLOC_INSPECT_ALL */ +#ifndef HAVE_MMAP +#define HAVE_MMAP 1 +#endif /* HAVE_MMAP */ +#ifndef MMAP_CLEARS +#define MMAP_CLEARS 1 +#endif /* MMAP_CLEARS */ +#ifndef HAVE_MREMAP +#ifdef linux +#define HAVE_MREMAP 1 +#define _GNU_SOURCE /* Turns on mremap() definition */ +#else /* linux */ +#define HAVE_MREMAP 0 +#endif /* linux */ +#endif /* HAVE_MREMAP */ +#ifndef MALLOC_FAILURE_ACTION +#define MALLOC_FAILURE_ACTION errno = ENOMEM; +#endif /* MALLOC_FAILURE_ACTION */ +#ifndef HAVE_MORECORE +#if ONLY_MSPACES +#define HAVE_MORECORE 0 +#else /* ONLY_MSPACES */ +#define HAVE_MORECORE 1 +#endif /* ONLY_MSPACES */ +#endif /* HAVE_MORECORE */ +#if !HAVE_MORECORE +#define MORECORE_CONTIGUOUS 0 +#else /* !HAVE_MORECORE */ +#define MORECORE_DEFAULT sbrk +#ifndef MORECORE_CONTIGUOUS +#define MORECORE_CONTIGUOUS 1 +#endif /* MORECORE_CONTIGUOUS */ +#endif /* HAVE_MORECORE */ +#ifndef DEFAULT_GRANULARITY +#if (MORECORE_CONTIGUOUS || defined(WIN32)) +#define DEFAULT_GRANULARITY (0) /* 0 means to compute in init_mparams */ +#else /* MORECORE_CONTIGUOUS */ +#define DEFAULT_GRANULARITY ((size_t)64U * (size_t)1024U) +#endif /* MORECORE_CONTIGUOUS */ +#endif /* DEFAULT_GRANULARITY */ +#ifndef DEFAULT_TRIM_THRESHOLD +#ifndef MORECORE_CANNOT_TRIM +#define DEFAULT_TRIM_THRESHOLD ((size_t)2U * (size_t)1024U * (size_t)1024U) +#else /* MORECORE_CANNOT_TRIM */ +#define DEFAULT_TRIM_THRESHOLD MAX_SIZE_T +#endif /* MORECORE_CANNOT_TRIM */ +#endif /* DEFAULT_TRIM_THRESHOLD */ +#ifndef DEFAULT_MMAP_THRESHOLD +#if HAVE_MMAP +#define DEFAULT_MMAP_THRESHOLD ((size_t)256U * (size_t)1024U) +#else /* HAVE_MMAP */ +#define DEFAULT_MMAP_THRESHOLD MAX_SIZE_T +#endif /* HAVE_MMAP */ +#endif /* DEFAULT_MMAP_THRESHOLD */ +#ifndef MAX_RELEASE_CHECK_RATE +#if HAVE_MMAP +#define MAX_RELEASE_CHECK_RATE 4095 +#else +#define MAX_RELEASE_CHECK_RATE MAX_SIZE_T +#endif /* HAVE_MMAP */ +#endif /* MAX_RELEASE_CHECK_RATE */ +#ifndef USE_BUILTIN_FFS +#define USE_BUILTIN_FFS 0 +#endif /* USE_BUILTIN_FFS */ +#ifndef USE_DEV_RANDOM +#define USE_DEV_RANDOM 0 +#endif /* USE_DEV_RANDOM */ +#ifndef NO_MALLINFO +#define NO_MALLINFO 0 +#endif /* NO_MALLINFO */ +#ifndef MALLINFO_FIELD_TYPE +#define MALLINFO_FIELD_TYPE size_t +#endif /* MALLINFO_FIELD_TYPE */ +#ifndef NO_MALLOC_STATS +#define NO_MALLOC_STATS 0 +#endif /* NO_MALLOC_STATS */ +#ifndef NO_SEGMENT_TRAVERSAL +#define NO_SEGMENT_TRAVERSAL 0 +#endif /* NO_SEGMENT_TRAVERSAL */ + +/* + mallopt tuning options. SVID/XPG defines four standard parameter + numbers for mallopt, normally defined in malloc.h. None of these + are used in this malloc, so setting them has no effect. But this + malloc does support the following options. +*/ + +#define M_TRIM_THRESHOLD (-1) +#define M_GRANULARITY (-2) +#define M_MMAP_THRESHOLD (-3) + +/* ------------------------ Mallinfo declarations ------------------------ */ + +#if !NO_MALLINFO +/* + This version of malloc supports the standard SVID/XPG mallinfo + routine that returns a struct containing usage properties and + statistics. It should work on any system that has a + /usr/include/malloc.h defining struct mallinfo. The main + declaration needed is the mallinfo struct that is returned (by-copy) + by mallinfo(). The malloinfo struct contains a bunch of fields that + are not even meaningful in this version of malloc. These fields are + are instead filled by mallinfo() with other numbers that might be of + interest. + + HAVE_USR_INCLUDE_MALLOC_H should be set if you have a + /usr/include/malloc.h file that includes a declaration of struct + mallinfo. If so, it is included; else a compliant version is + declared below. These must be precisely the same for mallinfo() to + work. The original SVID version of this struct, defined on most + systems with mallinfo, declares all fields as ints. But some others + define as unsigned long. If your system defines the fields using a + type of different width than listed here, you MUST #include your + system version and #define HAVE_USR_INCLUDE_MALLOC_H. +*/ + +/* #define HAVE_USR_INCLUDE_MALLOC_H */ + +#ifdef HAVE_USR_INCLUDE_MALLOC_H +#include "/usr/include/malloc.h" +#else /* HAVE_USR_INCLUDE_MALLOC_H */ +#ifndef STRUCT_MALLINFO_DECLARED +/* HP-UX (and others?) redefines mallinfo unless _STRUCT_MALLINFO is defined */ +#define _STRUCT_MALLINFO +#define STRUCT_MALLINFO_DECLARED 1 +struct mallinfo { + MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */ + MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */ + MALLINFO_FIELD_TYPE smblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblkhd; /* space in mmapped regions */ + MALLINFO_FIELD_TYPE usmblks; /* maximum total allocated space */ + MALLINFO_FIELD_TYPE fsmblks; /* always 0 */ + MALLINFO_FIELD_TYPE uordblks; /* total allocated space */ + MALLINFO_FIELD_TYPE fordblks; /* total free space */ + MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */ +}; +#endif /* STRUCT_MALLINFO_DECLARED */ +#endif /* HAVE_USR_INCLUDE_MALLOC_H */ +#endif /* NO_MALLINFO */ + +/* + Try to persuade compilers to inline. The most critical functions for + inlining are defined as macros, so these aren't used for them. +*/ + +#ifndef FORCEINLINE + #if defined(__GNUC__) +#define FORCEINLINE __inline __attribute__ ((always_inline)) + #elif defined(_MSC_VER) + #define FORCEINLINE __forceinline + #endif +#endif +#ifndef NOINLINE + #if defined(__GNUC__) + #define NOINLINE __attribute__ ((noinline)) + #elif defined(_MSC_VER) + #define NOINLINE __declspec(noinline) + #else + #define NOINLINE + #endif +#endif + +#ifdef __cplusplus +extern "C" { +#ifndef FORCEINLINE + #define FORCEINLINE inline +#endif +#endif /* __cplusplus */ +#ifndef FORCEINLINE + #define FORCEINLINE +#endif + +#if !ONLY_MSPACES + +/* ------------------- Declarations of public routines ------------------- */ + +#ifndef USE_DL_PREFIX +#define dlcalloc calloc +#define dlfree free +#define dlmalloc malloc +#define dlmemalign memalign +#define dlposix_memalign posix_memalign +#define dlrealloc realloc +#define dlrealloc_in_place realloc_in_place +#define dlvalloc valloc +#define dlpvalloc pvalloc +#define dlmallinfo mallinfo +#define dlmallopt mallopt +#define dlmalloc_trim malloc_trim +#define dlmalloc_stats malloc_stats +#define dlmalloc_usable_size malloc_usable_size +#define dlmalloc_footprint malloc_footprint +#define dlmalloc_max_footprint malloc_max_footprint +#define dlmalloc_footprint_limit malloc_footprint_limit +#define dlmalloc_set_footprint_limit malloc_set_footprint_limit +#define dlmalloc_inspect_all malloc_inspect_all +#define dlindependent_calloc independent_calloc +#define dlindependent_comalloc independent_comalloc +#define dlbulk_free bulk_free +#endif /* USE_DL_PREFIX */ + +/* + malloc(size_t n) + Returns a pointer to a newly allocated chunk of at least n bytes, or + null if no space is available, in which case errno is set to ENOMEM + on ANSI C systems. + + If n is zero, malloc returns a minimum-sized chunk. (The minimum + size is 16 bytes on most 32bit systems, and 32 bytes on 64bit + systems.) Note that size_t is an unsigned type, so calls with + arguments that would be negative if signed are interpreted as + requests for huge amounts of space, which will often fail. The + maximum supported value of n differs across systems, but is in all + cases less than the maximum representable value of a size_t. +*/ +DLMALLOC_EXPORT void* dlmalloc(size_t); + +/* + free(void* p) + Releases the chunk of memory pointed to by p, that had been previously + allocated using malloc or a related routine such as realloc. + It has no effect if p is null. If p was not malloced or already + freed, free(p) will by default cause the current program to abort. +*/ +DLMALLOC_EXPORT void dlfree(void*); + +/* + calloc(size_t n_elements, size_t element_size); + Returns a pointer to n_elements * element_size bytes, with all locations + set to zero. +*/ +DLMALLOC_EXPORT void* dlcalloc(size_t, size_t); + +/* + realloc(void* p, size_t n) + Returns a pointer to a chunk of size n that contains the same data + as does chunk p up to the minimum of (n, p's size) bytes, or null + if no space is available. + + The returned pointer may or may not be the same as p. The algorithm + prefers extending p in most cases when possible, otherwise it + employs the equivalent of a malloc-copy-free sequence. + + If p is null, realloc is equivalent to malloc. + + If space is not available, realloc returns null, errno is set (if on + ANSI) and p is NOT freed. + + if n is for fewer bytes than already held by p, the newly unused + space is lopped off and freed if possible. realloc with a size + argument of zero (re)allocates a minimum-sized chunk. + + The old unix realloc convention of allowing the last-free'd chunk + to be used as an argument to realloc is not supported. +*/ +DLMALLOC_EXPORT void* dlrealloc(void*, size_t); + +/* + realloc_in_place(void* p, size_t n) + Resizes the space allocated for p to size n, only if this can be + done without moving p (i.e., only if there is adjacent space + available if n is greater than p's current allocated size, or n is + less than or equal to p's size). This may be used instead of plain + realloc if an alternative allocation strategy is needed upon failure + to expand space; for example, reallocation of a buffer that must be + memory-aligned or cleared. You can use realloc_in_place to trigger + these alternatives only when needed. + + Returns p if successful; otherwise null. +*/ +DLMALLOC_EXPORT void* dlrealloc_in_place(void*, size_t); + +/* + memalign(size_t alignment, size_t n); + Returns a pointer to a newly allocated chunk of n bytes, aligned + in accord with the alignment argument. + + The alignment argument should be a power of two. If the argument is + not a power of two, the nearest greater power is used. + 8-byte alignment is guaranteed by normal malloc calls, so don't + bother calling memalign with an argument of 8 or less. + + Overreliance on memalign is a sure way to fragment space. +*/ +DLMALLOC_EXPORT void* dlmemalign(size_t, size_t); + +/* + int posix_memalign(void** pp, size_t alignment, size_t n); + Allocates a chunk of n bytes, aligned in accord with the alignment + argument. Differs from memalign only in that it (1) assigns the + allocated memory to *pp rather than returning it, (2) fails and + returns EINVAL if the alignment is not a power of two (3) fails and + returns ENOMEM if memory cannot be allocated. +*/ +DLMALLOC_EXPORT int dlposix_memalign(void**, size_t, size_t); + +/* + valloc(size_t n); + Equivalent to memalign(pagesize, n), where pagesize is the page + size of the system. If the pagesize is unknown, 4096 is used. +*/ +DLMALLOC_EXPORT void* dlvalloc(size_t); + +/* + mallopt(int parameter_number, int parameter_value) + Sets tunable parameters The format is to provide a + (parameter-number, parameter-value) pair. mallopt then sets the + corresponding parameter to the argument value if it can (i.e., so + long as the value is meaningful), and returns 1 if successful else + 0. To workaround the fact that mallopt is specified to use int, + not size_t parameters, the value -1 is specially treated as the + maximum unsigned size_t value. + + SVID/XPG/ANSI defines four standard param numbers for mallopt, + normally defined in malloc.h. None of these are use in this malloc, + so setting them has no effect. But this malloc also supports other + options in mallopt. See below for details. Briefly, supported + parameters are as follows (listed defaults are for "typical" + configurations). + + Symbol param # default allowed param values + M_TRIM_THRESHOLD -1 2*1024*1024 any (-1 disables) + M_GRANULARITY -2 page size any power of 2 >= page size + M_MMAP_THRESHOLD -3 256*1024 any (or 0 if no MMAP support) +*/ +DLMALLOC_EXPORT int dlmallopt(int, int); + +/* + malloc_footprint(); + Returns the number of bytes obtained from the system. The total + number of bytes allocated by malloc, realloc etc., is less than this + value. Unlike mallinfo, this function returns only a precomputed + result, so can be called frequently to monitor memory consumption. + Even if locks are otherwise defined, this function does not use them, + so results might not be up to date. +*/ +DLMALLOC_EXPORT size_t dlmalloc_footprint(void); + +/* + malloc_max_footprint(); + Returns the maximum number of bytes obtained from the system. This + value will be greater than current footprint if deallocated space + has been reclaimed by the system. The peak number of bytes allocated + by malloc, realloc etc., is less than this value. Unlike mallinfo, + this function returns only a precomputed result, so can be called + frequently to monitor memory consumption. Even if locks are + otherwise defined, this function does not use them, so results might + not be up to date. +*/ +DLMALLOC_EXPORT size_t dlmalloc_max_footprint(void); + +/* + malloc_footprint_limit(); + Returns the number of bytes that the heap is allowed to obtain from + the system, returning the last value returned by + malloc_set_footprint_limit, or the maximum size_t value if + never set. The returned value reflects a permission. There is no + guarantee that this number of bytes can actually be obtained from + the system. +*/ +DLMALLOC_EXPORT size_t dlmalloc_footprint_limit(); + +/* + malloc_set_footprint_limit(); + Sets the maximum number of bytes to obtain from the system, causing + failure returns from malloc and related functions upon attempts to + exceed this value. The argument value may be subject to page + rounding to an enforceable limit; this actual value is returned. + Using an argument of the maximum possible size_t effectively + disables checks. If the argument is less than or equal to the + current malloc_footprint, then all future allocations that require + additional system memory will fail. However, invocation cannot + retroactively deallocate existing used memory. +*/ +DLMALLOC_EXPORT size_t dlmalloc_set_footprint_limit(size_t bytes); + +#if MALLOC_INSPECT_ALL +/* + malloc_inspect_all(void(*handler)(void *start, + void *end, + size_t used_bytes, + void* callback_arg), + void* arg); + Traverses the heap and calls the given handler for each managed + region, skipping all bytes that are (or may be) used for bookkeeping + purposes. Traversal does not include include chunks that have been + directly memory mapped. Each reported region begins at the start + address, and continues up to but not including the end address. The + first used_bytes of the region contain allocated data. If + used_bytes is zero, the region is unallocated. The handler is + invoked with the given callback argument. If locks are defined, they + are held during the entire traversal. It is a bad idea to invoke + other malloc functions from within the handler. + + For example, to count the number of in-use chunks with size greater + than 1000, you could write: + static int count = 0; + void count_chunks(void* start, void* end, size_t used, void* arg) { + if (used >= 1000) ++count; + } + then: + malloc_inspect_all(count_chunks, NULL); + + malloc_inspect_all is compiled only if MALLOC_INSPECT_ALL is defined. +*/ +DLMALLOC_EXPORT void dlmalloc_inspect_all(void(*handler)(void*, void *, size_t, void*), + void* arg); + +#endif /* MALLOC_INSPECT_ALL */ + +#if !NO_MALLINFO +/* + mallinfo() + Returns (by copy) a struct containing various summary statistics: + + arena: current total non-mmapped bytes allocated from system + ordblks: the number of free chunks + smblks: always zero. + hblks: current number of mmapped regions + hblkhd: total bytes held in mmapped regions + usmblks: the maximum total allocated space. This will be greater + than current total if trimming has occurred. + fsmblks: always zero + uordblks: current total allocated space (normal or mmapped) + fordblks: total free space + keepcost: the maximum number of bytes that could ideally be released + back to system via malloc_trim. ("ideally" means that + it ignores page restrictions etc.) + + Because these fields are ints, but internal bookkeeping may + be kept as longs, the reported values may wrap around zero and + thus be inaccurate. +*/ +DLMALLOC_EXPORT struct mallinfo dlmallinfo(void); +#endif /* NO_MALLINFO */ + +/* + independent_calloc(size_t n_elements, size_t element_size, void* chunks[]); + + independent_calloc is similar to calloc, but instead of returning a + single cleared space, it returns an array of pointers to n_elements + independent elements that can hold contents of size elem_size, each + of which starts out cleared, and can be independently freed, + realloc'ed etc. The elements are guaranteed to be adjacently + allocated (this is not guaranteed to occur with multiple callocs or + mallocs), which may also improve cache locality in some + applications. + + The "chunks" argument is optional (i.e., may be null, which is + probably the most typical usage). If it is null, the returned array + is itself dynamically allocated and should also be freed when it is + no longer needed. Otherwise, the chunks array must be of at least + n_elements in length. It is filled in with the pointers to the + chunks. + + In either case, independent_calloc returns this pointer array, or + null if the allocation failed. If n_elements is zero and "chunks" + is null, it returns a chunk representing an array with zero elements + (which should be freed if not wanted). + + Each element must be freed when it is no longer needed. This can be + done all at once using bulk_free. + + independent_calloc simplifies and speeds up implementations of many + kinds of pools. It may also be useful when constructing large data + structures that initially have a fixed number of fixed-sized nodes, + but the number is not known at compile time, and some of the nodes + may later need to be freed. For example: + + struct Node { int item; struct Node* next; }; + + struct Node* build_list() { + struct Node** pool; + int n = read_number_of_nodes_needed(); + if (n <= 0) return 0; + pool = (struct Node**)(independent_calloc(n, sizeof(struct Node), 0); + if (pool == 0) die(); + // organize into a linked list... + struct Node* first = pool[0]; + for (i = 0; i < n-1; ++i) + pool[i]->next = pool[i+1]; + free(pool); // Can now free the array (or not, if it is needed later) + return first; + } +*/ +DLMALLOC_EXPORT void** dlindependent_calloc(size_t, size_t, void**); + +/* + independent_comalloc(size_t n_elements, size_t sizes[], void* chunks[]); + + independent_comalloc allocates, all at once, a set of n_elements + chunks with sizes indicated in the "sizes" array. It returns + an array of pointers to these elements, each of which can be + independently freed, realloc'ed etc. The elements are guaranteed to + be adjacently allocated (this is not guaranteed to occur with + multiple callocs or mallocs), which may also improve cache locality + in some applications. + + The "chunks" argument is optional (i.e., may be null). If it is null + the returned array is itself dynamically allocated and should also + be freed when it is no longer needed. Otherwise, the chunks array + must be of at least n_elements in length. It is filled in with the + pointers to the chunks. + + In either case, independent_comalloc returns this pointer array, or + null if the allocation failed. If n_elements is zero and chunks is + null, it returns a chunk representing an array with zero elements + (which should be freed if not wanted). + + Each element must be freed when it is no longer needed. This can be + done all at once using bulk_free. + + independent_comallac differs from independent_calloc in that each + element may have a different size, and also that it does not + automatically clear elements. + + independent_comalloc can be used to speed up allocation in cases + where several structs or objects must always be allocated at the + same time. For example: + + struct Head { ... } + struct Foot { ... } + + void send_message(char* msg) { + int msglen = strlen(msg); + size_t sizes[3] = { sizeof(struct Head), msglen, sizeof(struct Foot) }; + void* chunks[3]; + if (independent_comalloc(3, sizes, chunks) == 0) + die(); + struct Head* head = (struct Head*)(chunks[0]); + char* body = (char*)(chunks[1]); + struct Foot* foot = (struct Foot*)(chunks[2]); + // ... + } + + In general though, independent_comalloc is worth using only for + larger values of n_elements. For small values, you probably won't + detect enough difference from series of malloc calls to bother. + + Overuse of independent_comalloc can increase overall memory usage, + since it cannot reuse existing noncontiguous small chunks that + might be available for some of the elements. +*/ +DLMALLOC_EXPORT void** dlindependent_comalloc(size_t, size_t*, void**); + +/* + bulk_free(void* array[], size_t n_elements) + Frees and clears (sets to null) each non-null pointer in the given + array. This is likely to be faster than freeing them one-by-one. + If footers are used, pointers that have been allocated in different + mspaces are not freed or cleared, and the count of all such pointers + is returned. For large arrays of pointers with poor locality, it + may be worthwhile to sort this array before calling bulk_free. +*/ +DLMALLOC_EXPORT size_t dlbulk_free(void**, size_t n_elements); + +/* + pvalloc(size_t n); + Equivalent to valloc(minimum-page-that-holds(n)), that is, + round up n to nearest pagesize. + */ +DLMALLOC_EXPORT void* dlpvalloc(size_t); + +/* + malloc_trim(size_t pad); + + If possible, gives memory back to the system (via negative arguments + to sbrk) if there is unused memory at the `high' end of the malloc + pool or in unused MMAP segments. You can call this after freeing + large blocks of memory to potentially reduce the system-level memory + requirements of a program. However, it cannot guarantee to reduce + memory. Under some allocation patterns, some large free blocks of + memory will be locked between two used chunks, so they cannot be + given back to the system. + + The `pad' argument to malloc_trim represents the amount of free + trailing space to leave untrimmed. If this argument is zero, only + the minimum amount of memory to maintain internal data structures + will be left. Non-zero arguments can be supplied to maintain enough + trailing space to service future expected allocations without having + to re-obtain memory from the system. + + Malloc_trim returns 1 if it actually released any memory, else 0. +*/ +DLMALLOC_EXPORT int dlmalloc_trim(size_t); + +/* + malloc_stats(); + Prints on stderr the amount of space obtained from the system (both + via sbrk and mmap), the maximum amount (which may be more than + current if malloc_trim and/or munmap got called), and the current + number of bytes allocated via malloc (or realloc, etc) but not yet + freed. Note that this is the number of bytes allocated, not the + number requested. It will be larger than the number requested + because of alignment and bookkeeping overhead. Because it includes + alignment wastage as being in use, this figure may be greater than + zero even when no user-level chunks are allocated. + + The reported current and maximum system memory can be inaccurate if + a program makes other calls to system memory allocation functions + (normally sbrk) outside of malloc. + + malloc_stats prints only the most commonly interesting statistics. + More information can be obtained by calling mallinfo. +*/ +DLMALLOC_EXPORT void dlmalloc_stats(void); + +/* + malloc_usable_size(void* p); + + Returns the number of bytes you can actually use in + an allocated chunk, which may be more than you requested (although + often not) due to alignment and minimum size constraints. + You can use this many bytes without worrying about + overwriting other allocated objects. This is not a particularly great + programming practice. malloc_usable_size can be more useful in + debugging and assertions, for example: + + p = malloc(n); + assert(malloc_usable_size(p) >= 256); +*/ +size_t dlmalloc_usable_size(void*); + +#endif /* ONLY_MSPACES */ + +#if MSPACES + +/* + mspace is an opaque type representing an independent + region of space that supports mspace_malloc, etc. +*/ +typedef void* mspace; + +/* + create_mspace creates and returns a new independent space with the + given initial capacity, or, if 0, the default granularity size. It + returns null if there is no system memory available to create the + space. If argument locked is non-zero, the space uses a separate + lock to control access. The capacity of the space will grow + dynamically as needed to service mspace_malloc requests. You can + control the sizes of incremental increases of this space by + compiling with a different DEFAULT_GRANULARITY or dynamically + setting with mallopt(M_GRANULARITY, value). +*/ +DLMALLOC_EXPORT mspace create_mspace(size_t capacity, int locked); + +/* + destroy_mspace destroys the given space, and attempts to return all + of its memory back to the system, returning the total number of + bytes freed. After destruction, the results of access to all memory + used by the space become undefined. +*/ +DLMALLOC_EXPORT size_t destroy_mspace(mspace msp); + +/* + create_mspace_with_base uses the memory supplied as the initial base + of a new mspace. Part (less than 128*sizeof(size_t) bytes) of this + space is used for bookkeeping, so the capacity must be at least this + large. (Otherwise 0 is returned.) When this initial space is + exhausted, additional memory will be obtained from the system. + Destroying this space will deallocate all additionally allocated + space (if possible) but not the initial base. +*/ +DLMALLOC_EXPORT mspace create_mspace_with_base(void* base, size_t capacity, int locked); + +/* + mspace_track_large_chunks controls whether requests for large chunks + are allocated in their own untracked mmapped regions, separate from + others in this mspace. By default large chunks are not tracked, + which reduces fragmentation. However, such chunks are not + necessarily released to the system upon destroy_mspace. Enabling + tracking by setting to true may increase fragmentation, but avoids + leakage when relying on destroy_mspace to release all memory + allocated using this space. The function returns the previous + setting. +*/ +DLMALLOC_EXPORT int mspace_track_large_chunks(mspace msp, int enable); + + +/* + mspace_malloc behaves as malloc, but operates within + the given space. +*/ +DLMALLOC_EXPORT void* mspace_malloc(mspace msp, size_t bytes); + +/* + mspace_free behaves as free, but operates within + the given space. + + If compiled with FOOTERS==1, mspace_free is not actually needed. + free may be called instead of mspace_free because freed chunks from + any space are handled by their originating spaces. +*/ +DLMALLOC_EXPORT void mspace_free(mspace msp, void* mem); + +/* + mspace_realloc behaves as realloc, but operates within + the given space. + + If compiled with FOOTERS==1, mspace_realloc is not actually + needed. realloc may be called instead of mspace_realloc because + realloced chunks from any space are handled by their originating + spaces. +*/ +DLMALLOC_EXPORT void* mspace_realloc(mspace msp, void* mem, size_t newsize); + +/* + mspace_calloc behaves as calloc, but operates within + the given space. +*/ +DLMALLOC_EXPORT void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size); + +/* + mspace_memalign behaves as memalign, but operates within + the given space. +*/ +DLMALLOC_EXPORT void* mspace_memalign(mspace msp, size_t alignment, size_t bytes); + +/* + mspace_independent_calloc behaves as independent_calloc, but + operates within the given space. +*/ +DLMALLOC_EXPORT void** mspace_independent_calloc(mspace msp, size_t n_elements, + size_t elem_size, void* chunks[]); + +/* + mspace_independent_comalloc behaves as independent_comalloc, but + operates within the given space. +*/ +DLMALLOC_EXPORT void** mspace_independent_comalloc(mspace msp, size_t n_elements, + size_t sizes[], void* chunks[]); + +/* + mspace_footprint() returns the number of bytes obtained from the + system for this space. +*/ +DLMALLOC_EXPORT size_t mspace_footprint(mspace msp); + +/* + mspace_max_footprint() returns the peak number of bytes obtained from the + system for this space. +*/ +DLMALLOC_EXPORT size_t mspace_max_footprint(mspace msp); + + +#if !NO_MALLINFO +/* + mspace_mallinfo behaves as mallinfo, but reports properties of + the given space. +*/ +DLMALLOC_EXPORT struct mallinfo mspace_mallinfo(mspace msp); +#endif /* NO_MALLINFO */ + +/* + malloc_usable_size(void* p) behaves the same as malloc_usable_size; +*/ +DLMALLOC_EXPORT size_t mspace_usable_size(const void* mem); + +/* + mspace_malloc_stats behaves as malloc_stats, but reports + properties of the given space. +*/ +DLMALLOC_EXPORT void mspace_malloc_stats(mspace msp); + +/* + mspace_trim behaves as malloc_trim, but + operates within the given space. +*/ +DLMALLOC_EXPORT int mspace_trim(mspace msp, size_t pad); + +/* + An alias for mallopt. +*/ +DLMALLOC_EXPORT int mspace_mallopt(int, int); + +#endif /* MSPACES */ + +#ifdef __cplusplus +} /* end of extern "C" */ +#endif /* __cplusplus */ + +/* + ======================================================================== + To make a fully customizable malloc.h header file, cut everything + above this line, put into file malloc.h, edit to suit, and #include it + on the next line, as well as in programs that use this malloc. + ======================================================================== +*/ + +/* #include "malloc.h" */ + +/*------------------------------ internal #includes ---------------------- */ + +#ifdef _MSC_VER +#pragma warning( disable : 4146 ) /* no "unsigned" warnings */ +#endif /* _MSC_VER */ +#if !NO_MALLOC_STATS +#include /* for printing in malloc_stats */ +#endif /* NO_MALLOC_STATS */ +#ifndef LACKS_ERRNO_H +#include /* for MALLOC_FAILURE_ACTION */ +#endif /* LACKS_ERRNO_H */ +#ifdef DEBUG +#if ABORT_ON_ASSERT_FAILURE +#undef assert +#define assert(x) if(!(x)) ABORT +#else /* ABORT_ON_ASSERT_FAILURE */ +#include +#endif /* ABORT_ON_ASSERT_FAILURE */ +#else /* DEBUG */ +#ifndef assert +#define assert(x) +#endif +#define DEBUG 0 +#endif /* DEBUG */ +#if !defined(WIN32) && !defined(LACKS_TIME_H) +#include /* for magic initialization */ +#endif /* WIN32 */ +#ifndef LACKS_STDLIB_H +#include /* for abort() */ +#endif /* LACKS_STDLIB_H */ +#ifndef LACKS_STRING_H +#include /* for memset etc */ +#endif /* LACKS_STRING_H */ +#if USE_BUILTIN_FFS +#ifndef LACKS_STRINGS_H +#include /* for ffs */ +#endif /* LACKS_STRINGS_H */ +#endif /* USE_BUILTIN_FFS */ +#if HAVE_MMAP +#ifndef LACKS_SYS_MMAN_H +/* On some versions of linux, mremap decl in mman.h needs __USE_GNU set */ +#if (defined(linux) && !defined(__USE_GNU)) +#define __USE_GNU 1 +#include /* for mmap */ +#undef __USE_GNU +#else +#include /* for mmap */ +#endif /* linux */ +#endif /* LACKS_SYS_MMAN_H */ +#ifndef LACKS_FCNTL_H +#include +#endif /* LACKS_FCNTL_H */ +#endif /* HAVE_MMAP */ +#ifndef LACKS_UNISTD_H +#include /* for sbrk, sysconf */ +#else /* LACKS_UNISTD_H */ +#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) +extern void* sbrk(ptrdiff_t); +#endif /* FreeBSD etc */ +#endif /* LACKS_UNISTD_H */ + +/* Declarations for locking */ +#if USE_LOCKS +#ifndef WIN32 +#if defined (__SVR4) && defined (__sun) /* solaris */ +#include +#elif !defined(LACKS_SCHED_H) +#include +#endif /* solaris or LACKS_SCHED_H */ +#if (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0) || !USE_SPIN_LOCKS +#include +#endif /* USE_RECURSIVE_LOCKS ... */ +#elif defined(_MSC_VER) +#ifndef _M_AMD64 +/* These are already defined on AMD64 builds */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ +LONG __cdecl _InterlockedCompareExchange(LONG volatile *Dest, LONG Exchange, LONG Comp); +LONG __cdecl _InterlockedExchange(LONG volatile *Target, LONG Value); +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif /* _M_AMD64 */ +#pragma intrinsic (_InterlockedCompareExchange) +#pragma intrinsic (_InterlockedExchange) +#define interlockedcompareexchange _InterlockedCompareExchange +#define interlockedexchange _InterlockedExchange +#elif defined(WIN32) && defined(__GNUC__) +#define interlockedcompareexchange(a, b, c) __sync_val_compare_and_swap(a, c, b) +#define interlockedexchange __sync_lock_test_and_set +#endif /* Win32 */ +#else /* USE_LOCKS */ +#endif /* USE_LOCKS */ + +#ifndef LOCK_AT_FORK +#define LOCK_AT_FORK 0 +#endif + +/* Declarations for bit scanning on win32 */ +#if defined(_MSC_VER) && _MSC_VER>=1300 +#ifndef BitScanForward /* Try to avoid pulling in WinNT.h */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ +unsigned char _BitScanForward(unsigned long *index, unsigned long mask); +unsigned char _BitScanReverse(unsigned long *index, unsigned long mask); +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#define BitScanForward _BitScanForward +#define BitScanReverse _BitScanReverse +#pragma intrinsic(_BitScanForward) +#pragma intrinsic(_BitScanReverse) +#endif /* BitScanForward */ +#endif /* defined(_MSC_VER) && _MSC_VER>=1300 */ + +#ifndef WIN32 +#ifndef malloc_getpagesize +# ifdef _SC_PAGESIZE /* some SVR4 systems omit an underscore */ +# ifndef _SC_PAGE_SIZE +# define _SC_PAGE_SIZE _SC_PAGESIZE +# endif +# endif +# ifdef _SC_PAGE_SIZE +# define malloc_getpagesize sysconf(_SC_PAGE_SIZE) +# else +# if defined(BSD) || defined(DGUX) || defined(HAVE_GETPAGESIZE) + extern size_t getpagesize(); +# define malloc_getpagesize getpagesize() +# else +# ifdef WIN32 /* use supplied emulation of getpagesize */ +# define malloc_getpagesize getpagesize() +# else +# ifndef LACKS_SYS_PARAM_H +# include +# endif +# ifdef EXEC_PAGESIZE +# define malloc_getpagesize EXEC_PAGESIZE +# else +# ifdef NBPG +# ifndef CLSIZE +# define malloc_getpagesize NBPG +# else +# define malloc_getpagesize (NBPG * CLSIZE) +# endif +# else +# ifdef NBPC +# define malloc_getpagesize NBPC +# else +# ifdef PAGESIZE +# define malloc_getpagesize PAGESIZE +# else /* just guess */ +# define malloc_getpagesize ((size_t)4096U) +# endif +# endif +# endif +# endif +# endif +# endif +# endif +#endif +#endif + +/* ------------------- size_t and alignment properties -------------------- */ + +/* The byte and bit size of a size_t */ +#define SIZE_T_SIZE (sizeof(size_t)) +#define SIZE_T_BITSIZE (sizeof(size_t) << 3) + +/* Some constants coerced to size_t */ +/* Annoying but necessary to avoid errors on some platforms */ +#define SIZE_T_ZERO ((size_t)0) +#define SIZE_T_ONE ((size_t)1) +#define SIZE_T_TWO ((size_t)2) +#define SIZE_T_FOUR ((size_t)4) +#define TWO_SIZE_T_SIZES (SIZE_T_SIZE<<1) +#define FOUR_SIZE_T_SIZES (SIZE_T_SIZE<<2) +#define SIX_SIZE_T_SIZES (FOUR_SIZE_T_SIZES+TWO_SIZE_T_SIZES) +#define HALF_MAX_SIZE_T (MAX_SIZE_T / 2U) + +/* The bit mask value corresponding to MALLOC_ALIGNMENT */ +#define CHUNK_ALIGN_MASK (MALLOC_ALIGNMENT - SIZE_T_ONE) + +/* True if address a has acceptable alignment */ +#define is_aligned(A) (((size_t)((A)) & (CHUNK_ALIGN_MASK)) == 0) + +/* the number of bytes to offset an address to align it */ +#define align_offset(A)\ + ((((size_t)(A) & CHUNK_ALIGN_MASK) == 0)? 0 :\ + ((MALLOC_ALIGNMENT - ((size_t)(A) & CHUNK_ALIGN_MASK)) & CHUNK_ALIGN_MASK)) + +/* -------------------------- MMAP preliminaries ------------------------- */ + +/* + If HAVE_MORECORE or HAVE_MMAP are false, we just define calls and + checks to fail so compiler optimizer can delete code rather than + using so many "#if"s. +*/ + + +/* MORECORE and MMAP must return MFAIL on failure */ +#define MFAIL ((void*)(MAX_SIZE_T)) +#define CMFAIL ((char*)(MFAIL)) /* defined for convenience */ + +#if HAVE_MMAP + +#ifndef WIN32 +#define MUNMAP_DEFAULT(a, s) munmap((a), (s)) +#define MMAP_PROT (PROT_READ|PROT_WRITE) +#if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) +#define MAP_ANONYMOUS MAP_ANON +#endif /* MAP_ANON */ +#ifdef MAP_ANONYMOUS +#define MMAP_FLAGS (MAP_PRIVATE|MAP_ANONYMOUS) +#define MMAP_DEFAULT(s) mmap(0, (s), MMAP_PROT, MMAP_FLAGS, -1, 0) +#else /* MAP_ANONYMOUS */ +/* + Nearly all versions of mmap support MAP_ANONYMOUS, so the following + is unlikely to be needed, but is supplied just in case. +*/ +#define MMAP_FLAGS (MAP_PRIVATE) +static int dev_zero_fd = -1; /* Cached file descriptor for /dev/zero. */ +#define MMAP_DEFAULT(s) ((dev_zero_fd < 0) ? \ + (dev_zero_fd = open("/dev/zero", O_RDWR), \ + mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0)) : \ + mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0)) +#endif /* MAP_ANONYMOUS */ + +#define DIRECT_MMAP_DEFAULT(s) MMAP_DEFAULT(s) + +#else /* WIN32 */ + +/* Win32 MMAP via VirtualAlloc */ +static FORCEINLINE void* win32mmap(size_t size) { + void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE); + return (ptr != 0)? ptr: MFAIL; +} + +/* For direct MMAP, use MEM_TOP_DOWN to minimize interference */ +static FORCEINLINE void* win32direct_mmap(size_t size) { + void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT|MEM_TOP_DOWN, + PAGE_READWRITE); + return (ptr != 0)? ptr: MFAIL; +} + +/* This function supports releasing coalesed segments */ +static FORCEINLINE int win32munmap(void* ptr, size_t size) { + MEMORY_BASIC_INFORMATION minfo; + char* cptr = (char*)ptr; + while (size) { + if (VirtualQuery(cptr, &minfo, sizeof(minfo)) == 0) + return -1; + if (minfo.BaseAddress != cptr || minfo.AllocationBase != cptr || + minfo.State != MEM_COMMIT || minfo.RegionSize > size) + return -1; + if (VirtualFree(cptr, 0, MEM_RELEASE) == 0) + return -1; + cptr += minfo.RegionSize; + size -= minfo.RegionSize; + } + return 0; +} + +#define MMAP_DEFAULT(s) win32mmap(s) +#define MUNMAP_DEFAULT(a, s) win32munmap((a), (s)) +#define DIRECT_MMAP_DEFAULT(s) win32direct_mmap(s) +#endif /* WIN32 */ +#endif /* HAVE_MMAP */ + +#if HAVE_MREMAP +#ifndef WIN32 +#define MREMAP_DEFAULT(addr, osz, nsz, mv) mremap((addr), (osz), (nsz), (mv)) +#endif /* WIN32 */ +#endif /* HAVE_MREMAP */ + +/** + * Define CALL_MORECORE + */ +#if HAVE_MORECORE + #ifdef MORECORE + #define CALL_MORECORE(S) MORECORE(S) + #else /* MORECORE */ + #define CALL_MORECORE(S) MORECORE_DEFAULT(S) + #endif /* MORECORE */ +#else /* HAVE_MORECORE */ + #define CALL_MORECORE(S) MFAIL +#endif /* HAVE_MORECORE */ + +/** + * Define CALL_MMAP/CALL_MUNMAP/CALL_DIRECT_MMAP + */ +#if HAVE_MMAP + #define USE_MMAP_BIT (SIZE_T_ONE) + + #ifdef MMAP + #define CALL_MMAP(s) MMAP(s) + #else /* MMAP */ + #define CALL_MMAP(s) MMAP_DEFAULT(s) + #endif /* MMAP */ + #ifdef MUNMAP + #define CALL_MUNMAP(a, s) MUNMAP((a), (s)) + #else /* MUNMAP */ + #define CALL_MUNMAP(a, s) MUNMAP_DEFAULT((a), (s)) + #endif /* MUNMAP */ + #ifdef DIRECT_MMAP + #define CALL_DIRECT_MMAP(s) DIRECT_MMAP(s) + #else /* DIRECT_MMAP */ + #define CALL_DIRECT_MMAP(s) DIRECT_MMAP_DEFAULT(s) + #endif /* DIRECT_MMAP */ +#else /* HAVE_MMAP */ + #define USE_MMAP_BIT (SIZE_T_ZERO) + + #define MMAP(s) MFAIL + #define MUNMAP(a, s) (-1) + #define DIRECT_MMAP(s) MFAIL + #define CALL_DIRECT_MMAP(s) DIRECT_MMAP(s) + #define CALL_MMAP(s) MMAP(s) + #define CALL_MUNMAP(a, s) MUNMAP((a), (s)) +#endif /* HAVE_MMAP */ + +/** + * Define CALL_MREMAP + */ +#if HAVE_MMAP && HAVE_MREMAP + #ifdef MREMAP + #define CALL_MREMAP(addr, osz, nsz, mv) MREMAP((addr), (osz), (nsz), (mv)) + #else /* MREMAP */ + #define CALL_MREMAP(addr, osz, nsz, mv) MREMAP_DEFAULT((addr), (osz), (nsz), (mv)) + #endif /* MREMAP */ +#else /* HAVE_MMAP && HAVE_MREMAP */ + #define CALL_MREMAP(addr, osz, nsz, mv) MFAIL +#endif /* HAVE_MMAP && HAVE_MREMAP */ + +/* mstate bit set if continguous morecore disabled or failed */ +#define USE_NONCONTIGUOUS_BIT (4U) + +/* segment bit set in create_mspace_with_base */ +#define EXTERN_BIT (8U) + + +/* --------------------------- Lock preliminaries ------------------------ */ + +/* + When locks are defined, there is one global lock, plus + one per-mspace lock. + + The global lock_ensures that mparams.magic and other unique + mparams values are initialized only once. It also protects + sequences of calls to MORECORE. In many cases sys_alloc requires + two calls, that should not be interleaved with calls by other + threads. This does not protect against direct calls to MORECORE + by other threads not using this lock, so there is still code to + cope the best we can on interference. + + Per-mspace locks surround calls to malloc, free, etc. + By default, locks are simple non-reentrant mutexes. + + Because lock-protected regions generally have bounded times, it is + OK to use the supplied simple spinlocks. Spinlocks are likely to + improve performance for lightly contended applications, but worsen + performance under heavy contention. + + If USE_LOCKS is > 1, the definitions of lock routines here are + bypassed, in which case you will need to define the type MLOCK_T, + and at least INITIAL_LOCK, DESTROY_LOCK, ACQUIRE_LOCK, RELEASE_LOCK + and TRY_LOCK. You must also declare a + static MLOCK_T malloc_global_mutex = { initialization values };. + +*/ + +#if !USE_LOCKS +#define USE_LOCK_BIT (0U) +#define INITIAL_LOCK(l) (0) +#define DESTROY_LOCK(l) (0) +#define ACQUIRE_MALLOC_GLOBAL_LOCK() +#define RELEASE_MALLOC_GLOBAL_LOCK() + +#else +#if USE_LOCKS > 1 +/* ----------------------- User-defined locks ------------------------ */ +/* Define your own lock implementation here */ +/* #define INITIAL_LOCK(lk) ... */ +/* #define DESTROY_LOCK(lk) ... */ +/* #define ACQUIRE_LOCK(lk) ... */ +/* #define RELEASE_LOCK(lk) ... */ +/* #define TRY_LOCK(lk) ... */ +/* static MLOCK_T malloc_global_mutex = ... */ + +#elif USE_SPIN_LOCKS + +/* First, define CAS_LOCK and CLEAR_LOCK on ints */ +/* Note CAS_LOCK defined to return 0 on success */ + +#if defined(__GNUC__)&& (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) +#define CAS_LOCK(sl) __sync_lock_test_and_set(sl, 1) +#define CLEAR_LOCK(sl) __sync_lock_release(sl) + +#elif (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))) +/* Custom spin locks for older gcc on x86 */ +static FORCEINLINE int x86_cas_lock(int *sl) { + int ret; + int val = 1; + int cmp = 0; + __asm__ __volatile__ ("lock; cmpxchgl %1, %2" + : "=a" (ret) + : "r" (val), "m" (*(sl)), "0"(cmp) + : "memory", "cc"); + return ret; +} + +static FORCEINLINE void x86_clear_lock(int* sl) { + assert(*sl != 0); + int prev = 0; + int ret; + __asm__ __volatile__ ("lock; xchgl %0, %1" + : "=r" (ret) + : "m" (*(sl)), "0"(prev) + : "memory"); +} + +#define CAS_LOCK(sl) x86_cas_lock(sl) +#define CLEAR_LOCK(sl) x86_clear_lock(sl) + +#else /* Win32 MSC */ +#define CAS_LOCK(sl) interlockedexchange(sl, (LONG)1) +#define CLEAR_LOCK(sl) interlockedexchange (sl, (LONG)0) + +#endif /* ... gcc spins locks ... */ + +/* How to yield for a spin lock */ +#define SPINS_PER_YIELD 63 +#if defined(_MSC_VER) +#define SLEEP_EX_DURATION 50 /* delay for yield/sleep */ +#define SPIN_LOCK_YIELD SleepEx(SLEEP_EX_DURATION, FALSE) +#elif defined (__SVR4) && defined (__sun) /* solaris */ +#define SPIN_LOCK_YIELD thr_yield(); +#elif !defined(LACKS_SCHED_H) +#define SPIN_LOCK_YIELD sched_yield(); +#else +#define SPIN_LOCK_YIELD +#endif /* ... yield ... */ + +#if !defined(USE_RECURSIVE_LOCKS) || USE_RECURSIVE_LOCKS == 0 +/* Plain spin locks use single word (embedded in malloc_states) */ +static int spin_acquire_lock(int *sl) { + int spins = 0; + while (*(volatile int *)sl != 0 || CAS_LOCK(sl)) { + if ((++spins & SPINS_PER_YIELD) == 0) { + SPIN_LOCK_YIELD; + } + } + return 0; +} + +#define MLOCK_T int +#define TRY_LOCK(sl) !CAS_LOCK(sl) +#define RELEASE_LOCK(sl) CLEAR_LOCK(sl) +#define ACQUIRE_LOCK(sl) (CAS_LOCK(sl)? spin_acquire_lock(sl) : 0) +#define INITIAL_LOCK(sl) (*sl = 0) +#define DESTROY_LOCK(sl) (0) +static MLOCK_T malloc_global_mutex = 0; + +#else /* USE_RECURSIVE_LOCKS */ +/* types for lock owners */ +#ifdef WIN32 +#define THREAD_ID_T DWORD +#define CURRENT_THREAD GetCurrentThreadId() +#define EQ_OWNER(X,Y) ((X) == (Y)) +#else +/* + Note: the following assume that pthread_t is a type that can be + initialized to (casted) zero. If this is not the case, you will need to + somehow redefine these or not use spin locks. +*/ +#define THREAD_ID_T pthread_t +#define CURRENT_THREAD pthread_self() +#define EQ_OWNER(X,Y) pthread_equal(X, Y) +#endif + +struct malloc_recursive_lock { + int sl; + unsigned int c; + THREAD_ID_T threadid; +}; + +#define MLOCK_T struct malloc_recursive_lock +static MLOCK_T malloc_global_mutex = { 0, 0, (THREAD_ID_T)0}; + +static FORCEINLINE void recursive_release_lock(MLOCK_T *lk) { + assert(lk->sl != 0); + if (--lk->c == 0) { + CLEAR_LOCK(&lk->sl); + } +} + +static FORCEINLINE int recursive_acquire_lock(MLOCK_T *lk) { + THREAD_ID_T mythreadid = CURRENT_THREAD; + int spins = 0; + for (;;) { + if (*((volatile int *)(&lk->sl)) == 0) { + if (!CAS_LOCK(&lk->sl)) { + lk->threadid = mythreadid; + lk->c = 1; + return 0; + } + } + else if (EQ_OWNER(lk->threadid, mythreadid)) { + ++lk->c; + return 0; + } + if ((++spins & SPINS_PER_YIELD) == 0) { + SPIN_LOCK_YIELD; + } + } +} + +static FORCEINLINE int recursive_try_lock(MLOCK_T *lk) { + THREAD_ID_T mythreadid = CURRENT_THREAD; + if (*((volatile int *)(&lk->sl)) == 0) { + if (!CAS_LOCK(&lk->sl)) { + lk->threadid = mythreadid; + lk->c = 1; + return 1; + } + } + else if (EQ_OWNER(lk->threadid, mythreadid)) { + ++lk->c; + return 1; + } + return 0; +} + +#define RELEASE_LOCK(lk) recursive_release_lock(lk) +#define TRY_LOCK(lk) recursive_try_lock(lk) +#define ACQUIRE_LOCK(lk) recursive_acquire_lock(lk) +#define INITIAL_LOCK(lk) ((lk)->threadid = (THREAD_ID_T)0, (lk)->sl = 0, (lk)->c = 0) +#define DESTROY_LOCK(lk) (0) +#endif /* USE_RECURSIVE_LOCKS */ + +#elif defined(WIN32) /* Win32 critical sections */ +#define MLOCK_T CRITICAL_SECTION +#define ACQUIRE_LOCK(lk) (EnterCriticalSection(lk), 0) +#define RELEASE_LOCK(lk) LeaveCriticalSection(lk) +#define TRY_LOCK(lk) TryEnterCriticalSection(lk) +#define INITIAL_LOCK(lk) (!InitializeCriticalSectionAndSpinCount((lk), 0x80000000|4000)) +#define DESTROY_LOCK(lk) (DeleteCriticalSection(lk), 0) +#define NEED_GLOBAL_LOCK_INIT + +static MLOCK_T malloc_global_mutex; +static volatile LONG malloc_global_mutex_status; + +/* Use spin loop to initialize global lock */ +static void init_malloc_global_mutex() { + for (;;) { + long stat = malloc_global_mutex_status; + if (stat > 0) + return; + /* transition to < 0 while initializing, then to > 0) */ + if (stat == 0 && + interlockedcompareexchange(&malloc_global_mutex_status, (LONG)-1, (LONG)0) == 0) { + InitializeCriticalSection(&malloc_global_mutex); + interlockedexchange(&malloc_global_mutex_status, (LONG)1); + return; + } + SleepEx(0, FALSE); + } +} + +#else /* pthreads-based locks */ +#define MLOCK_T pthread_mutex_t +#define ACQUIRE_LOCK(lk) pthread_mutex_lock(lk) +#define RELEASE_LOCK(lk) pthread_mutex_unlock(lk) +#define TRY_LOCK(lk) (!pthread_mutex_trylock(lk)) +#define INITIAL_LOCK(lk) pthread_init_lock(lk) +#define DESTROY_LOCK(lk) pthread_mutex_destroy(lk) + +#if defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0 && defined(linux) && !defined(PTHREAD_MUTEX_RECURSIVE) +/* Cope with old-style linux recursive lock initialization by adding */ +/* skipped internal declaration from pthread.h */ +extern int pthread_mutexattr_setkind_np __P ((pthread_mutexattr_t *__attr, + int __kind)); +#define PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP +#define pthread_mutexattr_settype(x,y) pthread_mutexattr_setkind_np(x,y) +#endif /* USE_RECURSIVE_LOCKS ... */ + +static MLOCK_T malloc_global_mutex = PTHREAD_MUTEX_INITIALIZER; + +static int pthread_init_lock (MLOCK_T *lk) { + pthread_mutexattr_t attr; + if (pthread_mutexattr_init(&attr)) return 1; +#if defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0 + if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE)) return 1; +#endif + if (pthread_mutex_init(lk, &attr)) return 1; + if (pthread_mutexattr_destroy(&attr)) return 1; + return 0; +} + +#endif /* ... lock types ... */ + +/* Common code for all lock types */ +#define USE_LOCK_BIT (2U) + +#ifndef ACQUIRE_MALLOC_GLOBAL_LOCK +#define ACQUIRE_MALLOC_GLOBAL_LOCK() ACQUIRE_LOCK(&malloc_global_mutex); +#endif + +#ifndef RELEASE_MALLOC_GLOBAL_LOCK +#define RELEASE_MALLOC_GLOBAL_LOCK() RELEASE_LOCK(&malloc_global_mutex); +#endif + +#endif /* USE_LOCKS */ + +/* ----------------------- Chunk representations ------------------------ */ + +/* + (The following includes lightly edited explanations by Colin Plumb.) + + The malloc_chunk declaration below is misleading (but accurate and + necessary). It declares a "view" into memory allowing access to + necessary fields at known offsets from a given base. + + Chunks of memory are maintained using a `boundary tag' method as + originally described by Knuth. (See the paper by Paul Wilson + ftp://ftp.cs.utexas.edu/pub/garbage/allocsrv.ps for a survey of such + techniques.) Sizes of free chunks are stored both in the front of + each chunk and at the end. This makes consolidating fragmented + chunks into bigger chunks fast. The head fields also hold bits + representing whether chunks are free or in use. + + Here are some pictures to make it clearer. They are "exploded" to + show that the state of a chunk can be thought of as extending from + the high 31 bits of the head field of its header through the + prev_foot and PINUSE_BIT bit of the following chunk header. + + A chunk that's in use looks like: + + chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Size of previous chunk (if P = 0) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P| + | Size of this chunk 1| +-+ + mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + +- -+ + | | + +- -+ + | : + +- size - sizeof(size_t) available payload bytes -+ + : | + chunk-> +- -+ + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1| + | Size of next chunk (may or may not be in use) | +-+ + mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + And if it's free, it looks like this: + + chunk-> +- -+ + | User payload (must be in use, or we would have merged!) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P| + | Size of this chunk 0| +-+ + mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Next pointer | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Prev pointer | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | : + +- size - sizeof(struct chunk) unused bytes -+ + : | + chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Size of this chunk | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0| + | Size of next chunk (must be in use, or we would have merged)| +-+ + mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | : + +- User payload -+ + : | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |0| + +-+ + Note that since we always merge adjacent free chunks, the chunks + adjacent to a free chunk must be in use. + + Given a pointer to a chunk (which can be derived trivially from the + payload pointer) we can, in O(1) time, find out whether the adjacent + chunks are free, and if so, unlink them from the lists that they + are on and merge them with the current chunk. + + Chunks always begin on even word boundaries, so the mem portion + (which is returned to the user) is also on an even word boundary, and + thus at least double-word aligned. + + The P (PINUSE_BIT) bit, stored in the unused low-order bit of the + chunk size (which is always a multiple of two words), is an in-use + bit for the *previous* chunk. If that bit is *clear*, then the + word before the current chunk size contains the previous chunk + size, and can be used to find the front of the previous chunk. + The very first chunk allocated always has this bit set, preventing + access to non-existent (or non-owned) memory. If pinuse is set for + any given chunk, then you CANNOT determine the size of the + previous chunk, and might even get a memory addressing fault when + trying to do so. + + The C (CINUSE_BIT) bit, stored in the unused second-lowest bit of + the chunk size redundantly records whether the current chunk is + inuse (unless the chunk is mmapped). This redundancy enables usage + checks within free and realloc, and reduces indirection when freeing + and consolidating chunks. + + Each freshly allocated chunk must have both cinuse and pinuse set. + That is, each allocated chunk borders either a previously allocated + and still in-use chunk, or the base of its memory arena. This is + ensured by making all allocations from the `lowest' part of any + found chunk. Further, no free chunk physically borders another one, + so each free chunk is known to be preceded and followed by either + inuse chunks or the ends of memory. + + Note that the `foot' of the current chunk is actually represented + as the prev_foot of the NEXT chunk. This makes it easier to + deal with alignments etc but can be very confusing when trying + to extend or adapt this code. + + The exceptions to all this are + + 1. The special chunk `top' is the top-most available chunk (i.e., + the one bordering the end of available memory). It is treated + specially. Top is never included in any bin, is used only if + no other chunk is available, and is released back to the + system if it is very large (see M_TRIM_THRESHOLD). In effect, + the top chunk is treated as larger (and thus less well + fitting) than any other available chunk. The top chunk + doesn't update its trailing size field since there is no next + contiguous chunk that would have to index off it. However, + space is still allocated for it (TOP_FOOT_SIZE) to enable + separation or merging when space is extended. + + 3. Chunks allocated via mmap, have both cinuse and pinuse bits + cleared in their head fields. Because they are allocated + one-by-one, each must carry its own prev_foot field, which is + also used to hold the offset this chunk has within its mmapped + region, which is needed to preserve alignment. Each mmapped + chunk is trailed by the first two fields of a fake next-chunk + for sake of usage checks. + +*/ + +struct malloc_chunk { + size_t prev_foot; /* Size of previous chunk (if free). */ + size_t head; /* Size and inuse bits. */ + struct malloc_chunk* fd; /* double links -- used only if free. */ + struct malloc_chunk* bk; +}; + +typedef struct malloc_chunk mchunk; +typedef struct malloc_chunk* mchunkptr; +typedef struct malloc_chunk* sbinptr; /* The type of bins of chunks */ +typedef unsigned int bindex_t; /* Described below */ +typedef unsigned int binmap_t; /* Described below */ +typedef unsigned int flag_t; /* The type of various bit flag sets */ + +/* ------------------- Chunks sizes and alignments ----------------------- */ + +#define MCHUNK_SIZE (sizeof(mchunk)) + +#if FOOTERS +#define CHUNK_OVERHEAD (TWO_SIZE_T_SIZES) +#else /* FOOTERS */ +#define CHUNK_OVERHEAD (SIZE_T_SIZE) +#endif /* FOOTERS */ + +/* MMapped chunks need a second word of overhead ... */ +#define MMAP_CHUNK_OVERHEAD (TWO_SIZE_T_SIZES) +/* ... and additional padding for fake next-chunk at foot */ +#define MMAP_FOOT_PAD (FOUR_SIZE_T_SIZES) + +/* The smallest size we can malloc is an aligned minimal chunk */ +#define MIN_CHUNK_SIZE\ + ((MCHUNK_SIZE + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK) + +/* conversion from malloc headers to user pointers, and back */ +#define chunk2mem(p) ((void*)((char*)(p) + TWO_SIZE_T_SIZES)) +#define mem2chunk(mem) ((mchunkptr)((char*)(mem) - TWO_SIZE_T_SIZES)) +/* chunk associated with aligned address A */ +#define align_as_chunk(A) (mchunkptr)((A) + align_offset(chunk2mem(A))) + +/* Bounds on request (not chunk) sizes. */ +#define MAX_REQUEST ((-MIN_CHUNK_SIZE) << 2) +#define MIN_REQUEST (MIN_CHUNK_SIZE - CHUNK_OVERHEAD - SIZE_T_ONE) + +/* pad request bytes into a usable size */ +#define pad_request(req) \ + (((req) + CHUNK_OVERHEAD + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK) + +/* pad request, checking for minimum (but not maximum) */ +#define request2size(req) \ + (((req) < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(req)) + + +/* ------------------ Operations on head and foot fields ----------------- */ + +/* + The head field of a chunk is or'ed with PINUSE_BIT when previous + adjacent chunk in use, and or'ed with CINUSE_BIT if this chunk is in + use, unless mmapped, in which case both bits are cleared. + + FLAG4_BIT is not used by this malloc, but might be useful in extensions. +*/ + +#define PINUSE_BIT (SIZE_T_ONE) +#define CINUSE_BIT (SIZE_T_TWO) +#define FLAG4_BIT (SIZE_T_FOUR) +#define INUSE_BITS (PINUSE_BIT|CINUSE_BIT) +#define FLAG_BITS (PINUSE_BIT|CINUSE_BIT|FLAG4_BIT) + +/* Head value for fenceposts */ +#define FENCEPOST_HEAD (INUSE_BITS|SIZE_T_SIZE) + +/* extraction of fields from head words */ +#define cinuse(p) ((p)->head & CINUSE_BIT) +#define pinuse(p) ((p)->head & PINUSE_BIT) +#define flag4inuse(p) ((p)->head & FLAG4_BIT) +#define is_inuse(p) (((p)->head & INUSE_BITS) != PINUSE_BIT) +#define is_mmapped(p) (((p)->head & INUSE_BITS) == 0) + +#define chunksize(p) ((p)->head & ~(FLAG_BITS)) + +#define clear_pinuse(p) ((p)->head &= ~PINUSE_BIT) +#define set_flag4(p) ((p)->head |= FLAG4_BIT) +#define clear_flag4(p) ((p)->head &= ~FLAG4_BIT) + +/* Treat space at ptr +/- offset as a chunk */ +#define chunk_plus_offset(p, s) ((mchunkptr)(((char*)(p)) + (s))) +#define chunk_minus_offset(p, s) ((mchunkptr)(((char*)(p)) - (s))) + +/* Ptr to next or previous physical malloc_chunk. */ +#define next_chunk(p) ((mchunkptr)( ((char*)(p)) + ((p)->head & ~FLAG_BITS))) +#define prev_chunk(p) ((mchunkptr)( ((char*)(p)) - ((p)->prev_foot) )) + +/* extract next chunk's pinuse bit */ +#define next_pinuse(p) ((next_chunk(p)->head) & PINUSE_BIT) + +/* Get/set size at footer */ +#define get_foot(p, s) (((mchunkptr)((char*)(p) + (s)))->prev_foot) +#define set_foot(p, s) (((mchunkptr)((char*)(p) + (s)))->prev_foot = (s)) + +/* Set size, pinuse bit, and foot */ +#define set_size_and_pinuse_of_free_chunk(p, s)\ + ((p)->head = (s|PINUSE_BIT), set_foot(p, s)) + +/* Set size, pinuse bit, foot, and clear next pinuse */ +#define set_free_with_pinuse(p, s, n)\ + (clear_pinuse(n), set_size_and_pinuse_of_free_chunk(p, s)) + +/* Get the internal overhead associated with chunk p */ +#define overhead_for(p)\ + (is_mmapped(p)? MMAP_CHUNK_OVERHEAD : CHUNK_OVERHEAD) + +/* Return true if malloced space is not necessarily cleared */ +#if MMAP_CLEARS +#define calloc_must_clear(p) (!is_mmapped(p)) +#else /* MMAP_CLEARS */ +#define calloc_must_clear(p) (1) +#endif /* MMAP_CLEARS */ + +/* ---------------------- Overlaid data structures ----------------------- */ + +/* + When chunks are not in use, they are treated as nodes of either + lists or trees. + + "Small" chunks are stored in circular doubly-linked lists, and look + like this: + + chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Size of previous chunk | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + `head:' | Size of chunk, in bytes |P| + mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Forward pointer to next chunk in list | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Back pointer to previous chunk in list | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Unused space (may be 0 bytes long) . + . . + . | +nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + `foot:' | Size of chunk, in bytes | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Larger chunks are kept in a form of bitwise digital trees (aka + tries) keyed on chunksizes. Because malloc_tree_chunks are only for + free chunks greater than 256 bytes, their size doesn't impose any + constraints on user chunk sizes. Each node looks like: + + chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Size of previous chunk | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + `head:' | Size of chunk, in bytes |P| + mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Forward pointer to next chunk of same size | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Back pointer to previous chunk of same size | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Pointer to left child (child[0]) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Pointer to right child (child[1]) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Pointer to parent | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | bin index of this chunk | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Unused space . + . | +nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + `foot:' | Size of chunk, in bytes | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Each tree holding treenodes is a tree of unique chunk sizes. Chunks + of the same size are arranged in a circularly-linked list, with only + the oldest chunk (the next to be used, in our FIFO ordering) + actually in the tree. (Tree members are distinguished by a non-null + parent pointer.) If a chunk with the same size an an existing node + is inserted, it is linked off the existing node using pointers that + work in the same way as fd/bk pointers of small chunks. + + Each tree contains a power of 2 sized range of chunk sizes (the + smallest is 0x100 <= x < 0x180), which is is divided in half at each + tree level, with the chunks in the smaller half of the range (0x100 + <= x < 0x140 for the top nose) in the left subtree and the larger + half (0x140 <= x < 0x180) in the right subtree. This is, of course, + done by inspecting individual bits. + + Using these rules, each node's left subtree contains all smaller + sizes than its right subtree. However, the node at the root of each + subtree has no particular ordering relationship to either. (The + dividing line between the subtree sizes is based on trie relation.) + If we remove the last chunk of a given size from the interior of the + tree, we need to replace it with a leaf node. The tree ordering + rules permit a node to be replaced by any leaf below it. + + The smallest chunk in a tree (a common operation in a best-fit + allocator) can be found by walking a path to the leftmost leaf in + the tree. Unlike a usual binary tree, where we follow left child + pointers until we reach a null, here we follow the right child + pointer any time the left one is null, until we reach a leaf with + both child pointers null. The smallest chunk in the tree will be + somewhere along that path. + + The worst case number of steps to add, find, or remove a node is + bounded by the number of bits differentiating chunks within + bins. Under current bin calculations, this ranges from 6 up to 21 + (for 32 bit sizes) or up to 53 (for 64 bit sizes). The typical case + is of course much better. +*/ + +struct malloc_tree_chunk { + /* The first four fields must be compatible with malloc_chunk */ + size_t prev_foot; + size_t head; + struct malloc_tree_chunk* fd; + struct malloc_tree_chunk* bk; + + struct malloc_tree_chunk* child[2]; + struct malloc_tree_chunk* parent; + bindex_t index; +}; + +typedef struct malloc_tree_chunk tchunk; +typedef struct malloc_tree_chunk* tchunkptr; +typedef struct malloc_tree_chunk* tbinptr; /* The type of bins of trees */ + +/* A little helper macro for trees */ +#define leftmost_child(t) ((t)->child[0] != 0? (t)->child[0] : (t)->child[1]) + +/* ----------------------------- Segments -------------------------------- */ + +/* + Each malloc space may include non-contiguous segments, held in a + list headed by an embedded malloc_segment record representing the + top-most space. Segments also include flags holding properties of + the space. Large chunks that are directly allocated by mmap are not + included in this list. They are instead independently created and + destroyed without otherwise keeping track of them. + + Segment management mainly comes into play for spaces allocated by + MMAP. Any call to MMAP might or might not return memory that is + adjacent to an existing segment. MORECORE normally contiguously + extends the current space, so this space is almost always adjacent, + which is simpler and faster to deal with. (This is why MORECORE is + used preferentially to MMAP when both are available -- see + sys_alloc.) When allocating using MMAP, we don't use any of the + hinting mechanisms (inconsistently) supported in various + implementations of unix mmap, or distinguish reserving from + committing memory. Instead, we just ask for space, and exploit + contiguity when we get it. It is probably possible to do + better than this on some systems, but no general scheme seems + to be significantly better. + + Management entails a simpler variant of the consolidation scheme + used for chunks to reduce fragmentation -- new adjacent memory is + normally prepended or appended to an existing segment. However, + there are limitations compared to chunk consolidation that mostly + reflect the fact that segment processing is relatively infrequent + (occurring only when getting memory from system) and that we + don't expect to have huge numbers of segments: + + * Segments are not indexed, so traversal requires linear scans. (It + would be possible to index these, but is not worth the extra + overhead and complexity for most programs on most platforms.) + * New segments are only appended to old ones when holding top-most + memory; if they cannot be prepended to others, they are held in + different segments. + + Except for the top-most segment of an mstate, each segment record + is kept at the tail of its segment. Segments are added by pushing + segment records onto the list headed by &mstate.seg for the + containing mstate. + + Segment flags control allocation/merge/deallocation policies: + * If EXTERN_BIT set, then we did not allocate this segment, + and so should not try to deallocate or merge with others. + (This currently holds only for the initial segment passed + into create_mspace_with_base.) + * If USE_MMAP_BIT set, the segment may be merged with + other surrounding mmapped segments and trimmed/de-allocated + using munmap. + * If neither bit is set, then the segment was obtained using + MORECORE so can be merged with surrounding MORECORE'd segments + and deallocated/trimmed using MORECORE with negative arguments. +*/ + +struct malloc_segment { + char* base; /* base address */ + size_t size; /* allocated size */ + struct malloc_segment* next; /* ptr to next segment */ + flag_t sflags; /* mmap and extern flag */ +}; + +#define is_mmapped_segment(S) ((S)->sflags & USE_MMAP_BIT) +#define is_extern_segment(S) ((S)->sflags & EXTERN_BIT) + +typedef struct malloc_segment msegment; +typedef struct malloc_segment* msegmentptr; + +/* ---------------------------- malloc_state ----------------------------- */ + +/* + A malloc_state holds all of the bookkeeping for a space. + The main fields are: + + Top + The topmost chunk of the currently active segment. Its size is + cached in topsize. The actual size of topmost space is + topsize+TOP_FOOT_SIZE, which includes space reserved for adding + fenceposts and segment records if necessary when getting more + space from the system. The size at which to autotrim top is + cached from mparams in trim_check, except that it is disabled if + an autotrim fails. + + Designated victim (dv) + This is the preferred chunk for servicing small requests that + don't have exact fits. It is normally the chunk split off most + recently to service another small request. Its size is cached in + dvsize. The link fields of this chunk are not maintained since it + is not kept in a bin. + + SmallBins + An array of bin headers for free chunks. These bins hold chunks + with sizes less than MIN_LARGE_SIZE bytes. Each bin contains + chunks of all the same size, spaced 8 bytes apart. To simplify + use in double-linked lists, each bin header acts as a malloc_chunk + pointing to the real first node, if it exists (else pointing to + itself). This avoids special-casing for headers. But to avoid + waste, we allocate only the fd/bk pointers of bins, and then use + repositioning tricks to treat these as the fields of a chunk. + + TreeBins + Treebins are pointers to the roots of trees holding a range of + sizes. There are 2 equally spaced treebins for each power of two + from TREE_SHIFT to TREE_SHIFT+16. The last bin holds anything + larger. + + Bin maps + There is one bit map for small bins ("smallmap") and one for + treebins ("treemap). Each bin sets its bit when non-empty, and + clears the bit when empty. Bit operations are then used to avoid + bin-by-bin searching -- nearly all "search" is done without ever + looking at bins that won't be selected. The bit maps + conservatively use 32 bits per map word, even if on 64bit system. + For a good description of some of the bit-based techniques used + here, see Henry S. Warren Jr's book "Hacker's Delight" (and + supplement at http://hackersdelight.org/). Many of these are + intended to reduce the branchiness of paths through malloc etc, as + well as to reduce the number of memory locations read or written. + + Segments + A list of segments headed by an embedded malloc_segment record + representing the initial space. + + Address check support + The least_addr field is the least address ever obtained from + MORECORE or MMAP. Attempted frees and reallocs of any address less + than this are trapped (unless INSECURE is defined). + + Magic tag + A cross-check field that should always hold same value as mparams.magic. + + Max allowed footprint + The maximum allowed bytes to allocate from system (zero means no limit) + + Flags + Bits recording whether to use MMAP, locks, or contiguous MORECORE + + Statistics + Each space keeps track of current and maximum system memory + obtained via MORECORE or MMAP. + + Trim support + Fields holding the amount of unused topmost memory that should trigger + trimming, and a counter to force periodic scanning to release unused + non-topmost segments. + + Locking + If USE_LOCKS is defined, the "mutex" lock is acquired and released + around every public call using this mspace. + + Extension support + A void* pointer and a size_t field that can be used to help implement + extensions to this malloc. +*/ + +/* Bin types, widths and sizes */ +#define NSMALLBINS (32U) +#define NTREEBINS (32U) +#define SMALLBIN_SHIFT (3U) +#define SMALLBIN_WIDTH (SIZE_T_ONE << SMALLBIN_SHIFT) +#define TREEBIN_SHIFT (8U) +#define MIN_LARGE_SIZE (SIZE_T_ONE << TREEBIN_SHIFT) +#define MAX_SMALL_SIZE (MIN_LARGE_SIZE - SIZE_T_ONE) +#define MAX_SMALL_REQUEST (MAX_SMALL_SIZE - CHUNK_ALIGN_MASK - CHUNK_OVERHEAD) + +struct malloc_state { + binmap_t smallmap; + binmap_t treemap; + size_t dvsize; + size_t topsize; + char* least_addr; + mchunkptr dv; + mchunkptr top; + size_t trim_check; + size_t release_checks; + size_t magic; + mchunkptr smallbins[(NSMALLBINS+1)*2]; + tbinptr treebins[NTREEBINS]; + size_t footprint; + size_t max_footprint; + size_t footprint_limit; /* zero means no limit */ + flag_t mflags; +#if USE_LOCKS + MLOCK_T mutex; /* locate lock among fields that rarely change */ +#endif /* USE_LOCKS */ + msegment seg; + void* extp; /* Unused but available for extensions */ + size_t exts; +}; + +typedef struct malloc_state* mstate; + +/* ------------- Global malloc_state and malloc_params ------------------- */ + +/* + malloc_params holds global properties, including those that can be + dynamically set using mallopt. There is a single instance, mparams, + initialized in init_mparams. Note that the non-zeroness of "magic" + also serves as an initialization flag. +*/ + +struct malloc_params { + size_t magic; + size_t page_size; + size_t granularity; + size_t mmap_threshold; + size_t trim_threshold; + flag_t default_mflags; +}; + +static struct malloc_params mparams; + +/* Ensure mparams initialized */ +#define ensure_initialization() (void)(mparams.magic != 0 || init_mparams()) + +#if !ONLY_MSPACES + +/* The global malloc_state used for all non-"mspace" calls */ +static struct malloc_state _gm_; +#define gm (&_gm_) +#define is_global(M) ((M) == &_gm_) + +#endif /* !ONLY_MSPACES */ + +#define is_initialized(M) ((M)->top != 0) + +/* -------------------------- system alloc setup ------------------------- */ + +/* Operations on mflags */ + +#define use_lock(M) ((M)->mflags & USE_LOCK_BIT) +#define enable_lock(M) ((M)->mflags |= USE_LOCK_BIT) +#if USE_LOCKS +#define disable_lock(M) ((M)->mflags &= ~USE_LOCK_BIT) +#else +#define disable_lock(M) +#endif + +#define use_mmap(M) ((M)->mflags & USE_MMAP_BIT) +#define enable_mmap(M) ((M)->mflags |= USE_MMAP_BIT) +#if HAVE_MMAP +#define disable_mmap(M) ((M)->mflags &= ~USE_MMAP_BIT) +#else +#define disable_mmap(M) +#endif + +#define use_noncontiguous(M) ((M)->mflags & USE_NONCONTIGUOUS_BIT) +#define disable_contiguous(M) ((M)->mflags |= USE_NONCONTIGUOUS_BIT) + +#define set_lock(M,L)\ + ((M)->mflags = (L)?\ + ((M)->mflags | USE_LOCK_BIT) :\ + ((M)->mflags & ~USE_LOCK_BIT)) + +/* page-align a size */ +#define page_align(S)\ + (((S) + (mparams.page_size - SIZE_T_ONE)) & ~(mparams.page_size - SIZE_T_ONE)) + +/* granularity-align a size */ +#define granularity_align(S)\ + (((S) + (mparams.granularity - SIZE_T_ONE))\ + & ~(mparams.granularity - SIZE_T_ONE)) + + +/* For mmap, use granularity alignment on windows, else page-align */ +#ifdef WIN32 +#define mmap_align(S) granularity_align(S) +#else +#define mmap_align(S) page_align(S) +#endif + +/* For sys_alloc, enough padding to ensure can malloc request on success */ +#define SYS_ALLOC_PADDING (TOP_FOOT_SIZE + MALLOC_ALIGNMENT) + +#define is_page_aligned(S)\ + (((size_t)(S) & (mparams.page_size - SIZE_T_ONE)) == 0) +#define is_granularity_aligned(S)\ + (((size_t)(S) & (mparams.granularity - SIZE_T_ONE)) == 0) + +/* True if segment S holds address A */ +#define segment_holds(S, A)\ + ((char*)(A) >= S->base && (char*)(A) < S->base + S->size) + +/* Return segment holding given address */ +static msegmentptr segment_holding(mstate m, char* addr) { + msegmentptr sp = &m->seg; + for (;;) { + if (addr >= sp->base && addr < sp->base + sp->size) + return sp; + if ((sp = sp->next) == 0) + return 0; + } +} + +/* Return true if segment contains a segment link */ +static int has_segment_link(mstate m, msegmentptr ss) { + msegmentptr sp = &m->seg; + for (;;) { + if ((char*)sp >= ss->base && (char*)sp < ss->base + ss->size) + return 1; + if ((sp = sp->next) == 0) + return 0; + } +} + +#ifndef MORECORE_CANNOT_TRIM +#define should_trim(M,s) ((s) > (M)->trim_check) +#else /* MORECORE_CANNOT_TRIM */ +#define should_trim(M,s) (0) +#endif /* MORECORE_CANNOT_TRIM */ + +/* + TOP_FOOT_SIZE is padding at the end of a segment, including space + that may be needed to place segment records and fenceposts when new + noncontiguous segments are added. +*/ +#define TOP_FOOT_SIZE\ + (align_offset(chunk2mem(0))+pad_request(sizeof(struct malloc_segment))+MIN_CHUNK_SIZE) + + +/* ------------------------------- Hooks -------------------------------- */ + +/* + PREACTION should be defined to return 0 on success, and nonzero on + failure. If you are not using locking, you can redefine these to do + anything you like. +*/ + +#if USE_LOCKS +#define PREACTION(M) ((use_lock(M))? ACQUIRE_LOCK(&(M)->mutex) : 0) +#define POSTACTION(M) { if (use_lock(M)) RELEASE_LOCK(&(M)->mutex); } +#else /* USE_LOCKS */ + +#ifndef PREACTION +#define PREACTION(M) (0) +#endif /* PREACTION */ + +#ifndef POSTACTION +#define POSTACTION(M) +#endif /* POSTACTION */ + +#endif /* USE_LOCKS */ + +/* + CORRUPTION_ERROR_ACTION is triggered upon detected bad addresses. + USAGE_ERROR_ACTION is triggered on detected bad frees and + reallocs. The argument p is an address that might have triggered the + fault. It is ignored by the two predefined actions, but might be + useful in custom actions that try to help diagnose errors. +*/ + +#if PROCEED_ON_ERROR + +/* A count of the number of corruption errors causing resets */ +int malloc_corruption_error_count; + +/* default corruption action */ +static void reset_on_error(mstate m); + +#define CORRUPTION_ERROR_ACTION(m) reset_on_error(m) +#define USAGE_ERROR_ACTION(m, p) + +#else /* PROCEED_ON_ERROR */ + +#ifndef CORRUPTION_ERROR_ACTION +#define CORRUPTION_ERROR_ACTION(m) ABORT +#endif /* CORRUPTION_ERROR_ACTION */ + +#ifndef USAGE_ERROR_ACTION +#define USAGE_ERROR_ACTION(m,p) ABORT +#endif /* USAGE_ERROR_ACTION */ + +#endif /* PROCEED_ON_ERROR */ + + +/* -------------------------- Debugging setup ---------------------------- */ + +#if ! DEBUG + +#define check_free_chunk(M,P) +#define check_inuse_chunk(M,P) +#define check_malloced_chunk(M,P,N) +#define check_mmapped_chunk(M,P) +#define check_malloc_state(M) +#define check_top_chunk(M,P) + +#else /* DEBUG */ +#define check_free_chunk(M,P) do_check_free_chunk(M,P) +#define check_inuse_chunk(M,P) do_check_inuse_chunk(M,P) +#define check_top_chunk(M,P) do_check_top_chunk(M,P) +#define check_malloced_chunk(M,P,N) do_check_malloced_chunk(M,P,N) +#define check_mmapped_chunk(M,P) do_check_mmapped_chunk(M,P) +#define check_malloc_state(M) do_check_malloc_state(M) + +static void do_check_any_chunk(mstate m, mchunkptr p); +static void do_check_top_chunk(mstate m, mchunkptr p); +static void do_check_mmapped_chunk(mstate m, mchunkptr p); +static void do_check_inuse_chunk(mstate m, mchunkptr p); +static void do_check_free_chunk(mstate m, mchunkptr p); +static void do_check_malloced_chunk(mstate m, void* mem, size_t s); +static void do_check_tree(mstate m, tchunkptr t); +static void do_check_treebin(mstate m, bindex_t i); +static void do_check_smallbin(mstate m, bindex_t i); +static void do_check_malloc_state(mstate m); +static int bin_find(mstate m, mchunkptr x); +static size_t traverse_and_check(mstate m); +#endif /* DEBUG */ + +/* ---------------------------- Indexing Bins ---------------------------- */ + +#define is_small(s) (((s) >> SMALLBIN_SHIFT) < NSMALLBINS) +#define small_index(s) (bindex_t)((s) >> SMALLBIN_SHIFT) +#define small_index2size(i) ((i) << SMALLBIN_SHIFT) +#define MIN_SMALL_INDEX (small_index(MIN_CHUNK_SIZE)) + +/* addressing by index. See above about smallbin repositioning */ +#define smallbin_at(M, i) ((sbinptr)((char*)&((M)->smallbins[(i)<<1]))) +#define treebin_at(M,i) (&((M)->treebins[i])) + +/* assign tree index for size S to variable I. Use x86 asm if possible */ +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +#define compute_tree_index(S, I)\ +{\ + unsigned int X = S >> TREEBIN_SHIFT;\ + if (X == 0)\ + I = 0;\ + else if (X > 0xFFFF)\ + I = NTREEBINS-1;\ + else {\ + unsigned int K = (unsigned) sizeof(X)*__CHAR_BIT__ - 1 - (unsigned) __builtin_clz(X); \ + I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\ + }\ +} + +#elif defined (__INTEL_COMPILER) +#define compute_tree_index(S, I)\ +{\ + size_t X = S >> TREEBIN_SHIFT;\ + if (X == 0)\ + I = 0;\ + else if (X > 0xFFFF)\ + I = NTREEBINS-1;\ + else {\ + unsigned int K = _bit_scan_reverse (X); \ + I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\ + }\ +} + +#elif defined(_MSC_VER) && _MSC_VER>=1300 +#define compute_tree_index(S, I)\ +{\ + size_t X = S >> TREEBIN_SHIFT;\ + if (X == 0)\ + I = 0;\ + else if (X > 0xFFFF)\ + I = NTREEBINS-1;\ + else {\ + unsigned int K;\ + _BitScanReverse((DWORD *) &K, (DWORD) X);\ + I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\ + }\ +} + +#else /* GNUC */ +#define compute_tree_index(S, I)\ +{\ + size_t X = S >> TREEBIN_SHIFT;\ + if (X == 0)\ + I = 0;\ + else if (X > 0xFFFF)\ + I = NTREEBINS-1;\ + else {\ + unsigned int Y = (unsigned int)X;\ + unsigned int N = ((Y - 0x100) >> 16) & 8;\ + unsigned int K = (((Y <<= N) - 0x1000) >> 16) & 4;\ + N += K;\ + N += K = (((Y <<= K) - 0x4000) >> 16) & 2;\ + K = 14 - N + ((Y <<= K) >> 15);\ + I = (K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1));\ + }\ +} +#endif /* GNUC */ + +/* Bit representing maximum resolved size in a treebin at i */ +#define bit_for_tree_index(i) \ + (i == NTREEBINS-1)? (SIZE_T_BITSIZE-1) : (((i) >> 1) + TREEBIN_SHIFT - 2) + +/* Shift placing maximum resolved bit in a treebin at i as sign bit */ +#define leftshift_for_tree_index(i) \ + ((i == NTREEBINS-1)? 0 : \ + ((SIZE_T_BITSIZE-SIZE_T_ONE) - (((i) >> 1) + TREEBIN_SHIFT - 2))) + +/* The size of the smallest chunk held in bin with index i */ +#define minsize_for_tree_index(i) \ + ((SIZE_T_ONE << (((i) >> 1) + TREEBIN_SHIFT)) | \ + (((size_t)((i) & SIZE_T_ONE)) << (((i) >> 1) + TREEBIN_SHIFT - 1))) + + +/* ------------------------ Operations on bin maps ----------------------- */ + +/* bit corresponding to given index */ +#define idx2bit(i) ((binmap_t)(1) << (i)) + +/* Mark/Clear bits with given index */ +#define mark_smallmap(M,i) ((M)->smallmap |= idx2bit(i)) +#define clear_smallmap(M,i) ((M)->smallmap &= ~idx2bit(i)) +#define smallmap_is_marked(M,i) ((M)->smallmap & idx2bit(i)) + +#define mark_treemap(M,i) ((M)->treemap |= idx2bit(i)) +#define clear_treemap(M,i) ((M)->treemap &= ~idx2bit(i)) +#define treemap_is_marked(M,i) ((M)->treemap & idx2bit(i)) + +/* isolate the least set bit of a bitmap */ +#define least_bit(x) ((x) & -(x)) + +/* mask with all bits to left of least bit of x on */ +#define left_bits(x) ((x<<1) | -(x<<1)) + +/* mask with all bits to left of or equal to least bit of x on */ +#define same_or_left_bits(x) ((x) | -(x)) + +/* index corresponding to given bit. Use x86 asm if possible */ + +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +#define compute_bit2idx(X, I)\ +{\ + unsigned int J;\ + J = __builtin_ctz(X); \ + I = (bindex_t)J;\ +} + +#elif defined (__INTEL_COMPILER) +#define compute_bit2idx(X, I)\ +{\ + unsigned int J;\ + J = _bit_scan_forward (X); \ + I = (bindex_t)J;\ +} + +#elif defined(_MSC_VER) && _MSC_VER>=1300 +#define compute_bit2idx(X, I)\ +{\ + unsigned int J;\ + _BitScanForward((DWORD *) &J, X);\ + I = (bindex_t)J;\ +} + +#elif USE_BUILTIN_FFS +#define compute_bit2idx(X, I) I = ffs(X)-1 + +#else +#define compute_bit2idx(X, I)\ +{\ + unsigned int Y = X - 1;\ + unsigned int K = Y >> (16-4) & 16;\ + unsigned int N = K; Y >>= K;\ + N += K = Y >> (8-3) & 8; Y >>= K;\ + N += K = Y >> (4-2) & 4; Y >>= K;\ + N += K = Y >> (2-1) & 2; Y >>= K;\ + N += K = Y >> (1-0) & 1; Y >>= K;\ + I = (bindex_t)(N + Y);\ +} +#endif /* GNUC */ + + +/* ----------------------- Runtime Check Support ------------------------- */ + +/* + For security, the main invariant is that malloc/free/etc never + writes to a static address other than malloc_state, unless static + malloc_state itself has been corrupted, which cannot occur via + malloc (because of these checks). In essence this means that we + believe all pointers, sizes, maps etc held in malloc_state, but + check all of those linked or offsetted from other embedded data + structures. These checks are interspersed with main code in a way + that tends to minimize their run-time cost. + + When FOOTERS is defined, in addition to range checking, we also + verify footer fields of inuse chunks, which can be used guarantee + that the mstate controlling malloc/free is intact. This is a + streamlined version of the approach described by William Robertson + et al in "Run-time Detection of Heap-based Overflows" LISA'03 + http://www.usenix.org/events/lisa03/tech/robertson.html The footer + of an inuse chunk holds the xor of its mstate and a random seed, + that is checked upon calls to free() and realloc(). This is + (probabalistically) unguessable from outside the program, but can be + computed by any code successfully malloc'ing any chunk, so does not + itself provide protection against code that has already broken + security through some other means. Unlike Robertson et al, we + always dynamically check addresses of all offset chunks (previous, + next, etc). This turns out to be cheaper than relying on hashes. +*/ + +#if !INSECURE +/* Check if address a is at least as high as any from MORECORE or MMAP */ +#define ok_address(M, a) ((char*)(a) >= (M)->least_addr) +/* Check if address of next chunk n is higher than base chunk p */ +#define ok_next(p, n) ((char*)(p) < (char*)(n)) +/* Check if p has inuse status */ +#define ok_inuse(p) is_inuse(p) +/* Check if p has its pinuse bit on */ +#define ok_pinuse(p) pinuse(p) + +#else /* !INSECURE */ +#define ok_address(M, a) (1) +#define ok_next(b, n) (1) +#define ok_inuse(p) (1) +#define ok_pinuse(p) (1) +#endif /* !INSECURE */ + +#if (FOOTERS && !INSECURE) +/* Check if (alleged) mstate m has expected magic field */ +#define ok_magic(M) ((M)->magic == mparams.magic) +#else /* (FOOTERS && !INSECURE) */ +#define ok_magic(M) (1) +#endif /* (FOOTERS && !INSECURE) */ + +/* In gcc, use __builtin_expect to minimize impact of checks */ +#if !INSECURE +#if defined(__GNUC__) && __GNUC__ >= 3 +#define RTCHECK(e) __builtin_expect(e, 1) +#else /* GNUC */ +#define RTCHECK(e) (e) +#endif /* GNUC */ +#else /* !INSECURE */ +#define RTCHECK(e) (1) +#endif /* !INSECURE */ + +/* macros to set up inuse chunks with or without footers */ + +#if !FOOTERS + +#define mark_inuse_foot(M,p,s) + +/* Macros for setting head/foot of non-mmapped chunks */ + +/* Set cinuse bit and pinuse bit of next chunk */ +#define set_inuse(M,p,s)\ + ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),\ + ((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT) + +/* Set cinuse and pinuse of this chunk and pinuse of next chunk */ +#define set_inuse_and_pinuse(M,p,s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\ + ((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT) + +/* Set size, cinuse and pinuse bit of this chunk */ +#define set_size_and_pinuse_of_inuse_chunk(M, p, s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT)) + +#else /* FOOTERS */ + +/* Set foot of inuse chunk to be xor of mstate and seed */ +#define mark_inuse_foot(M,p,s)\ + (((mchunkptr)((char*)(p) + (s)))->prev_foot = ((size_t)(M) ^ mparams.magic)) + +#define get_mstate_for(p)\ + ((mstate)(((mchunkptr)((char*)(p) +\ + (chunksize(p))))->prev_foot ^ mparams.magic)) + +#define set_inuse(M,p,s)\ + ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),\ + (((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT), \ + mark_inuse_foot(M,p,s)) + +#define set_inuse_and_pinuse(M,p,s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\ + (((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT),\ + mark_inuse_foot(M,p,s)) + +#define set_size_and_pinuse_of_inuse_chunk(M, p, s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\ + mark_inuse_foot(M, p, s)) + +#endif /* !FOOTERS */ + +/* ---------------------------- setting mparams -------------------------- */ + +#if LOCK_AT_FORK +static void pre_fork(void) { ACQUIRE_LOCK(&(gm)->mutex); } +static void post_fork_parent(void) { RELEASE_LOCK(&(gm)->mutex); } +static void post_fork_child(void) { INITIAL_LOCK(&(gm)->mutex); } +#endif /* LOCK_AT_FORK */ + +/* Initialize mparams */ +static int init_mparams(void) { +#ifdef NEED_GLOBAL_LOCK_INIT + if (malloc_global_mutex_status <= 0) + init_malloc_global_mutex(); +#endif + + ACQUIRE_MALLOC_GLOBAL_LOCK(); + if (mparams.magic == 0) { + size_t magic; + size_t psize; + size_t gsize; + +#ifndef WIN32 + psize = malloc_getpagesize; + gsize = ((DEFAULT_GRANULARITY != 0)? DEFAULT_GRANULARITY : psize); +#else /* WIN32 */ + { + SYSTEM_INFO system_info; + GetSystemInfo(&system_info); + psize = system_info.dwPageSize; + gsize = ((DEFAULT_GRANULARITY != 0)? + DEFAULT_GRANULARITY : system_info.dwAllocationGranularity); + } +#endif /* WIN32 */ + + /* Sanity-check configuration: + size_t must be unsigned and as wide as pointer type. + ints must be at least 4 bytes. + alignment must be at least 8. + Alignment, min chunk size, and page size must all be powers of 2. + */ + if ((sizeof(size_t) != sizeof(char*)) || + (MAX_SIZE_T < MIN_CHUNK_SIZE) || + (sizeof(int) < 4) || + (MALLOC_ALIGNMENT < (size_t)8U) || + ((MALLOC_ALIGNMENT & (MALLOC_ALIGNMENT-SIZE_T_ONE)) != 0) || + ((MCHUNK_SIZE & (MCHUNK_SIZE-SIZE_T_ONE)) != 0) || + ((gsize & (gsize-SIZE_T_ONE)) != 0) || + ((psize & (psize-SIZE_T_ONE)) != 0)) + ABORT; + mparams.granularity = gsize; + mparams.page_size = psize; + mparams.mmap_threshold = DEFAULT_MMAP_THRESHOLD; + mparams.trim_threshold = DEFAULT_TRIM_THRESHOLD; +#if MORECORE_CONTIGUOUS + mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT; +#else /* MORECORE_CONTIGUOUS */ + mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT|USE_NONCONTIGUOUS_BIT; +#endif /* MORECORE_CONTIGUOUS */ + +#if !ONLY_MSPACES + /* Set up lock for main malloc area */ + gm->mflags = mparams.default_mflags; + (void)INITIAL_LOCK(&gm->mutex); +#endif +#if LOCK_AT_FORK + pthread_atfork(&pre_fork, &post_fork_parent, &post_fork_child); +#endif + + { +#if USE_DEV_RANDOM + int fd; + unsigned char buf[sizeof(size_t)]; + /* Try to use /dev/urandom, else fall back on using time */ + if ((fd = open("/dev/urandom", O_RDONLY)) >= 0 && + read(fd, buf, sizeof(buf)) == sizeof(buf)) { + magic = *((size_t *) buf); + close(fd); + } + else +#endif /* USE_DEV_RANDOM */ +#ifdef WIN32 + magic = (size_t)(GetTickCount() ^ (size_t)0x55555555U); +#elif defined(LACKS_TIME_H) + magic = (size_t)&magic ^ (size_t)0x55555555U; +#else + magic = (size_t)(time(0) ^ (size_t)0x55555555U); +#endif + magic |= (size_t)8U; /* ensure nonzero */ + magic &= ~(size_t)7U; /* improve chances of fault for bad values */ + /* Until memory modes commonly available, use volatile-write */ + (*(volatile size_t *)(&(mparams.magic))) = magic; + } + } + + RELEASE_MALLOC_GLOBAL_LOCK(); + return 1; +} + +/* support for mallopt */ +static int change_mparam(int param_number, int value) { + size_t val; + ensure_initialization(); + val = (value == -1)? MAX_SIZE_T : (size_t)value; + switch(param_number) { + case M_TRIM_THRESHOLD: + mparams.trim_threshold = val; + return 1; + case M_GRANULARITY: + if (val >= mparams.page_size && ((val & (val-1)) == 0)) { + mparams.granularity = val; + return 1; + } + else + return 0; + case M_MMAP_THRESHOLD: + mparams.mmap_threshold = val; + return 1; + default: + return 0; + } +} + +#if DEBUG +/* ------------------------- Debugging Support --------------------------- */ + +/* Check properties of any chunk, whether free, inuse, mmapped etc */ +static void do_check_any_chunk(mstate m, mchunkptr p) { + assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD)); + assert(ok_address(m, p)); +} + +/* Check properties of top chunk */ +static void do_check_top_chunk(mstate m, mchunkptr p) { + msegmentptr sp = segment_holding(m, (char*)p); + size_t sz = p->head & ~INUSE_BITS; /* third-lowest bit can be set! */ + assert(sp != 0); + assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD)); + assert(ok_address(m, p)); + assert(sz == m->topsize); + assert(sz > 0); + assert(sz == ((sp->base + sp->size) - (char*)p) - TOP_FOOT_SIZE); + assert(pinuse(p)); + assert(!pinuse(chunk_plus_offset(p, sz))); +} + +/* Check properties of (inuse) mmapped chunks */ +static void do_check_mmapped_chunk(mstate m, mchunkptr p) { + size_t sz = chunksize(p); + size_t len = (sz + (p->prev_foot) + MMAP_FOOT_PAD); + assert(is_mmapped(p)); + assert(use_mmap(m)); + assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD)); + assert(ok_address(m, p)); + assert(!is_small(sz)); + assert((len & (mparams.page_size-SIZE_T_ONE)) == 0); + assert(chunk_plus_offset(p, sz)->head == FENCEPOST_HEAD); + assert(chunk_plus_offset(p, sz+SIZE_T_SIZE)->head == 0); +} + +/* Check properties of inuse chunks */ +static void do_check_inuse_chunk(mstate m, mchunkptr p) { + do_check_any_chunk(m, p); + assert(is_inuse(p)); + assert(next_pinuse(p)); + /* If not pinuse and not mmapped, previous chunk has OK offset */ + assert(is_mmapped(p) || pinuse(p) || next_chunk(prev_chunk(p)) == p); + if (is_mmapped(p)) + do_check_mmapped_chunk(m, p); +} + +/* Check properties of free chunks */ +static void do_check_free_chunk(mstate m, mchunkptr p) { + size_t sz = chunksize(p); + mchunkptr next = chunk_plus_offset(p, sz); + do_check_any_chunk(m, p); + assert(!is_inuse(p)); + assert(!next_pinuse(p)); + assert (!is_mmapped(p)); + if (p != m->dv && p != m->top) { + if (sz >= MIN_CHUNK_SIZE) { + assert((sz & CHUNK_ALIGN_MASK) == 0); + assert(is_aligned(chunk2mem(p))); + assert(next->prev_foot == sz); + assert(pinuse(p)); + assert (next == m->top || is_inuse(next)); + assert(p->fd->bk == p); + assert(p->bk->fd == p); + } + else /* markers are always of size SIZE_T_SIZE */ + assert(sz == SIZE_T_SIZE); + } +} + +/* Check properties of malloced chunks at the point they are malloced */ +static void do_check_malloced_chunk(mstate m, void* mem, size_t s) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); + size_t sz = p->head & ~INUSE_BITS; + do_check_inuse_chunk(m, p); + assert((sz & CHUNK_ALIGN_MASK) == 0); + assert(sz >= MIN_CHUNK_SIZE); + assert(sz >= s); + /* unless mmapped, size is less than MIN_CHUNK_SIZE more than request */ + assert(is_mmapped(p) || sz < (s + MIN_CHUNK_SIZE)); + } +} + +/* Check a tree and its subtrees. */ +static void do_check_tree(mstate m, tchunkptr t) { + tchunkptr head = 0; + tchunkptr u = t; + bindex_t tindex = t->index; + size_t tsize = chunksize(t); + bindex_t idx; + compute_tree_index(tsize, idx); + assert(tindex == idx); + assert(tsize >= MIN_LARGE_SIZE); + assert(tsize >= minsize_for_tree_index(idx)); + assert((idx == NTREEBINS-1) || (tsize < minsize_for_tree_index((idx+1)))); + + do { /* traverse through chain of same-sized nodes */ + do_check_any_chunk(m, ((mchunkptr)u)); + assert(u->index == tindex); + assert(chunksize(u) == tsize); + assert(!is_inuse(u)); + assert(!next_pinuse(u)); + assert(u->fd->bk == u); + assert(u->bk->fd == u); + if (u->parent == 0) { + assert(u->child[0] == 0); + assert(u->child[1] == 0); + } + else { + assert(head == 0); /* only one node on chain has parent */ + head = u; + assert(u->parent != u); + assert (u->parent->child[0] == u || + u->parent->child[1] == u || + *((tbinptr*)(u->parent)) == u); + if (u->child[0] != 0) { + assert(u->child[0]->parent == u); + assert(u->child[0] != u); + do_check_tree(m, u->child[0]); + } + if (u->child[1] != 0) { + assert(u->child[1]->parent == u); + assert(u->child[1] != u); + do_check_tree(m, u->child[1]); + } + if (u->child[0] != 0 && u->child[1] != 0) { + assert(chunksize(u->child[0]) < chunksize(u->child[1])); + } + } + u = u->fd; + } while (u != t); + assert(head != 0); +} + +/* Check all the chunks in a treebin. */ +static void do_check_treebin(mstate m, bindex_t i) { + tbinptr* tb = treebin_at(m, i); + tchunkptr t = *tb; + int empty = (m->treemap & (1U << i)) == 0; + if (t == 0) + assert(empty); + if (!empty) + do_check_tree(m, t); +} + +/* Check all the chunks in a smallbin. */ +static void do_check_smallbin(mstate m, bindex_t i) { + sbinptr b = smallbin_at(m, i); + mchunkptr p = b->bk; + unsigned int empty = (m->smallmap & (1U << i)) == 0; + if (p == b) + assert(empty); + if (!empty) { + for (; p != b; p = p->bk) { + size_t size = chunksize(p); + mchunkptr q; + /* each chunk claims to be free */ + do_check_free_chunk(m, p); + /* chunk belongs in bin */ + assert(small_index(size) == i); + assert(p->bk == b || chunksize(p->bk) == chunksize(p)); + /* chunk is followed by an inuse chunk */ + q = next_chunk(p); + if (q->head != FENCEPOST_HEAD) + do_check_inuse_chunk(m, q); + } + } +} + +/* Find x in a bin. Used in other check functions. */ +static int bin_find(mstate m, mchunkptr x) { + size_t size = chunksize(x); + if (is_small(size)) { + bindex_t sidx = small_index(size); + sbinptr b = smallbin_at(m, sidx); + if (smallmap_is_marked(m, sidx)) { + mchunkptr p = b; + do { + if (p == x) + return 1; + } while ((p = p->fd) != b); + } + } + else { + bindex_t tidx; + compute_tree_index(size, tidx); + if (treemap_is_marked(m, tidx)) { + tchunkptr t = *treebin_at(m, tidx); + size_t sizebits = size << leftshift_for_tree_index(tidx); + while (t != 0 && chunksize(t) != size) { + t = t->child[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]; + sizebits <<= 1; + } + if (t != 0) { + tchunkptr u = t; + do { + if (u == (tchunkptr)x) + return 1; + } while ((u = u->fd) != t); + } + } + } + return 0; +} + +/* Traverse each chunk and check it; return total */ +static size_t traverse_and_check(mstate m) { + size_t sum = 0; + if (is_initialized(m)) { + msegmentptr s = &m->seg; + sum += m->topsize + TOP_FOOT_SIZE; + while (s != 0) { + mchunkptr q = align_as_chunk(s->base); + mchunkptr lastq = 0; + assert(pinuse(q)); + while (segment_holds(s, q) && + q != m->top && q->head != FENCEPOST_HEAD) { + sum += chunksize(q); + if (is_inuse(q)) { + assert(!bin_find(m, q)); + do_check_inuse_chunk(m, q); + } + else { + assert(q == m->dv || bin_find(m, q)); + assert(lastq == 0 || is_inuse(lastq)); /* Not 2 consecutive free */ + do_check_free_chunk(m, q); + } + lastq = q; + q = next_chunk(q); + } + s = s->next; + } + } + return sum; +} + + +/* Check all properties of malloc_state. */ +static void do_check_malloc_state(mstate m) { + bindex_t i; + size_t total; + /* check bins */ + for (i = 0; i < NSMALLBINS; ++i) + do_check_smallbin(m, i); + for (i = 0; i < NTREEBINS; ++i) + do_check_treebin(m, i); + + if (m->dvsize != 0) { /* check dv chunk */ + do_check_any_chunk(m, m->dv); + assert(m->dvsize == chunksize(m->dv)); + assert(m->dvsize >= MIN_CHUNK_SIZE); + assert(bin_find(m, m->dv) == 0); + } + + if (m->top != 0) { /* check top chunk */ + do_check_top_chunk(m, m->top); + /*assert(m->topsize == chunksize(m->top)); redundant */ + assert(m->topsize > 0); + assert(bin_find(m, m->top) == 0); + } + + total = traverse_and_check(m); + assert(total <= m->footprint); + assert(m->footprint <= m->max_footprint); +} +#endif /* DEBUG */ + +/* ----------------------------- statistics ------------------------------ */ + +#if !NO_MALLINFO +static struct mallinfo internal_mallinfo(mstate m) { + struct mallinfo nm = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + ensure_initialization(); + if (!PREACTION(m)) { + check_malloc_state(m); + if (is_initialized(m)) { + size_t nfree = SIZE_T_ONE; /* top always free */ + size_t mfree = m->topsize + TOP_FOOT_SIZE; + size_t sum = mfree; + msegmentptr s = &m->seg; + while (s != 0) { + mchunkptr q = align_as_chunk(s->base); + while (segment_holds(s, q) && + q != m->top && q->head != FENCEPOST_HEAD) { + size_t sz = chunksize(q); + sum += sz; + if (!is_inuse(q)) { + mfree += sz; + ++nfree; + } + q = next_chunk(q); + } + s = s->next; + } + + nm.arena = sum; + nm.ordblks = nfree; + nm.hblkhd = m->footprint - sum; + nm.usmblks = m->max_footprint; + nm.uordblks = m->footprint - mfree; + nm.fordblks = mfree; + nm.keepcost = m->topsize; + } + + POSTACTION(m); + } + return nm; +} +#endif /* !NO_MALLINFO */ + +#if !NO_MALLOC_STATS +static void internal_malloc_stats(mstate m) { + ensure_initialization(); + if (!PREACTION(m)) { + size_t maxfp = 0; + size_t fp = 0; + size_t used = 0; + check_malloc_state(m); + if (is_initialized(m)) { + msegmentptr s = &m->seg; + maxfp = m->max_footprint; + fp = m->footprint; + used = fp - (m->topsize + TOP_FOOT_SIZE); + + while (s != 0) { + mchunkptr q = align_as_chunk(s->base); + while (segment_holds(s, q) && + q != m->top && q->head != FENCEPOST_HEAD) { + if (!is_inuse(q)) + used -= chunksize(q); + q = next_chunk(q); + } + s = s->next; + } + } + POSTACTION(m); /* drop lock */ + fprintf(stderr, "max system bytes = %10lu\n", (unsigned long)(maxfp)); + fprintf(stderr, "system bytes = %10lu\n", (unsigned long)(fp)); + fprintf(stderr, "in use bytes = %10lu\n", (unsigned long)(used)); + } +} +#endif /* NO_MALLOC_STATS */ + +/* ----------------------- Operations on smallbins ----------------------- */ + +/* + Various forms of linking and unlinking are defined as macros. Even + the ones for trees, which are very long but have very short typical + paths. This is ugly but reduces reliance on inlining support of + compilers. +*/ + +/* Link a free chunk into a smallbin */ +#define insert_small_chunk(M, P, S) {\ + bindex_t I = small_index(S);\ + mchunkptr B = smallbin_at(M, I);\ + mchunkptr F = B;\ + assert(S >= MIN_CHUNK_SIZE);\ + if (!smallmap_is_marked(M, I))\ + mark_smallmap(M, I);\ + else if (RTCHECK(ok_address(M, B->fd)))\ + F = B->fd;\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ + }\ + B->fd = P;\ + F->bk = P;\ + P->fd = F;\ + P->bk = B;\ +} + +/* Unlink a chunk from a smallbin */ +#define unlink_small_chunk(M, P, S) {\ + mchunkptr F = P->fd;\ + mchunkptr B = P->bk;\ + bindex_t I = small_index(S);\ + assert(P != B);\ + assert(P != F);\ + assert(chunksize(P) == small_index2size(I));\ + if (RTCHECK(F == smallbin_at(M,I) || (ok_address(M, F) && F->bk == P))) { \ + if (B == F) {\ + clear_smallmap(M, I);\ + }\ + else if (RTCHECK(B == smallbin_at(M,I) ||\ + (ok_address(M, B) && B->fd == P))) {\ + F->bk = B;\ + B->fd = F;\ + }\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ + }\ + }\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ + }\ +} + +/* Unlink the first chunk from a smallbin */ +#define unlink_first_small_chunk(M, B, P, I) {\ + mchunkptr F = P->fd;\ + assert(P != B);\ + assert(P != F);\ + assert(chunksize(P) == small_index2size(I));\ + if (B == F) {\ + clear_smallmap(M, I);\ + }\ + else if (RTCHECK(ok_address(M, F) && F->bk == P)) {\ + F->bk = B;\ + B->fd = F;\ + }\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ + }\ +} + +/* Replace dv node, binning the old one */ +/* Used only when dvsize known to be small */ +#define replace_dv(M, P, S) {\ + size_t DVS = M->dvsize;\ + assert(is_small(DVS));\ + if (DVS != 0) {\ + mchunkptr DV = M->dv;\ + insert_small_chunk(M, DV, DVS);\ + }\ + M->dvsize = S;\ + M->dv = P;\ +} + +/* ------------------------- Operations on trees ------------------------- */ + +/* Insert chunk into tree */ +#define insert_large_chunk(M, X, S) {\ + tbinptr* H;\ + bindex_t I;\ + compute_tree_index(S, I);\ + H = treebin_at(M, I);\ + X->index = I;\ + X->child[0] = X->child[1] = 0;\ + if (!treemap_is_marked(M, I)) {\ + mark_treemap(M, I);\ + *H = X;\ + X->parent = (tchunkptr)H;\ + X->fd = X->bk = X;\ + }\ + else {\ + tchunkptr T = *H;\ + size_t K = S << leftshift_for_tree_index(I);\ + for (;;) {\ + if (chunksize(T) != S) {\ + tchunkptr* C = &(T->child[(K >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]);\ + K <<= 1;\ + if (*C != 0)\ + T = *C;\ + else if (RTCHECK(ok_address(M, C))) {\ + *C = X;\ + X->parent = T;\ + X->fd = X->bk = X;\ + break;\ + }\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ + break;\ + }\ + }\ + else {\ + tchunkptr F = T->fd;\ + if (RTCHECK(ok_address(M, T) && ok_address(M, F))) {\ + T->fd = F->bk = X;\ + X->fd = F;\ + X->bk = T;\ + X->parent = 0;\ + break;\ + }\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ + break;\ + }\ + }\ + }\ + }\ +} + +/* + Unlink steps: + + 1. If x is a chained node, unlink it from its same-sized fd/bk links + and choose its bk node as its replacement. + 2. If x was the last node of its size, but not a leaf node, it must + be replaced with a leaf node (not merely one with an open left or + right), to make sure that lefts and rights of descendents + correspond properly to bit masks. We use the rightmost descendent + of x. We could use any other leaf, but this is easy to locate and + tends to counteract removal of leftmosts elsewhere, and so keeps + paths shorter than minimally guaranteed. This doesn't loop much + because on average a node in a tree is near the bottom. + 3. If x is the base of a chain (i.e., has parent links) relink + x's parent and children to x's replacement (or null if none). +*/ + +#define unlink_large_chunk(M, X) {\ + tchunkptr XP = X->parent;\ + tchunkptr R;\ + if (X->bk != X) {\ + tchunkptr F = X->fd;\ + R = X->bk;\ + if (RTCHECK(ok_address(M, F) && F->bk == X && R->fd == X)) {\ + F->bk = R;\ + R->fd = F;\ + }\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ + }\ + }\ + else {\ + tchunkptr* RP;\ + if (((R = *(RP = &(X->child[1]))) != 0) ||\ + ((R = *(RP = &(X->child[0]))) != 0)) {\ + tchunkptr* CP;\ + while ((*(CP = &(R->child[1])) != 0) ||\ + (*(CP = &(R->child[0])) != 0)) {\ + R = *(RP = CP);\ + }\ + if (RTCHECK(ok_address(M, RP)))\ + *RP = 0;\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ + }\ + }\ + }\ + if (XP != 0) {\ + tbinptr* H = treebin_at(M, X->index);\ + if (X == *H) {\ + if ((*H = R) == 0) \ + clear_treemap(M, X->index);\ + }\ + else if (RTCHECK(ok_address(M, XP))) {\ + if (XP->child[0] == X) \ + XP->child[0] = R;\ + else \ + XP->child[1] = R;\ + }\ + else\ + CORRUPTION_ERROR_ACTION(M);\ + if (R != 0) {\ + if (RTCHECK(ok_address(M, R))) {\ + tchunkptr C0, C1;\ + R->parent = XP;\ + if ((C0 = X->child[0]) != 0) {\ + if (RTCHECK(ok_address(M, C0))) {\ + R->child[0] = C0;\ + C0->parent = R;\ + }\ + else\ + CORRUPTION_ERROR_ACTION(M);\ + }\ + if ((C1 = X->child[1]) != 0) {\ + if (RTCHECK(ok_address(M, C1))) {\ + R->child[1] = C1;\ + C1->parent = R;\ + }\ + else\ + CORRUPTION_ERROR_ACTION(M);\ + }\ + }\ + else\ + CORRUPTION_ERROR_ACTION(M);\ + }\ + }\ +} + +/* Relays to large vs small bin operations */ + +#define insert_chunk(M, P, S)\ + if (is_small(S)) insert_small_chunk(M, P, S)\ + else { tchunkptr TP = (tchunkptr)(P); insert_large_chunk(M, TP, S); } + +#define unlink_chunk(M, P, S)\ + if (is_small(S)) unlink_small_chunk(M, P, S)\ + else { tchunkptr TP = (tchunkptr)(P); unlink_large_chunk(M, TP); } + + +/* Relays to internal calls to malloc/free from realloc, memalign etc */ + +#if ONLY_MSPACES +#define internal_malloc(m, b) mspace_malloc(m, b) +#define internal_free(m, mem) mspace_free(m,mem); +#else /* ONLY_MSPACES */ +#if MSPACES +#define internal_malloc(m, b)\ + ((m == gm)? dlmalloc(b) : mspace_malloc(m, b)) +#define internal_free(m, mem)\ + if (m == gm) dlfree(mem); else mspace_free(m,mem); +#else /* MSPACES */ +#define internal_malloc(m, b) dlmalloc(b) +#define internal_free(m, mem) dlfree(mem) +#endif /* MSPACES */ +#endif /* ONLY_MSPACES */ + +/* ----------------------- Direct-mmapping chunks ----------------------- */ + +/* + Directly mmapped chunks are set up with an offset to the start of + the mmapped region stored in the prev_foot field of the chunk. This + allows reconstruction of the required argument to MUNMAP when freed, + and also allows adjustment of the returned chunk to meet alignment + requirements (especially in memalign). +*/ + +/* Malloc using mmap */ +static void* mmap_alloc(mstate m, size_t nb) { + size_t mmsize = mmap_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK); + if (m->footprint_limit != 0) { + size_t fp = m->footprint + mmsize; + if (fp <= m->footprint || fp > m->footprint_limit) + return 0; + } + if (mmsize > nb) { /* Check for wrap around 0 */ + char* mm = (char*)(CALL_DIRECT_MMAP(mmsize)); + if (mm != CMFAIL) { + size_t offset = align_offset(chunk2mem(mm)); + size_t psize = mmsize - offset - MMAP_FOOT_PAD; + mchunkptr p = (mchunkptr)(mm + offset); + p->prev_foot = offset; + p->head = psize; + mark_inuse_foot(m, p, psize); + chunk_plus_offset(p, psize)->head = FENCEPOST_HEAD; + chunk_plus_offset(p, psize+SIZE_T_SIZE)->head = 0; + + if (m->least_addr == 0 || mm < m->least_addr) + m->least_addr = mm; + if ((m->footprint += mmsize) > m->max_footprint) + m->max_footprint = m->footprint; + assert(is_aligned(chunk2mem(p))); + check_mmapped_chunk(m, p); + return chunk2mem(p); + } + } + return 0; +} + +/* Realloc using mmap */ +static mchunkptr mmap_resize(mstate m, mchunkptr oldp, size_t nb, int flags) { + size_t oldsize = chunksize(oldp); + (void)flags; /* placate people compiling -Wunused */ + if (is_small(nb)) /* Can't shrink mmap regions below small size */ + return 0; + /* Keep old chunk if big enough but not too big */ + if (oldsize >= nb + SIZE_T_SIZE && + (oldsize - nb) <= (mparams.granularity << 1)) + return oldp; + else { + size_t offset = oldp->prev_foot; + size_t oldmmsize = oldsize + offset + MMAP_FOOT_PAD; + size_t newmmsize = mmap_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK); + char* cp = (char*)CALL_MREMAP((char*)oldp - offset, + oldmmsize, newmmsize, flags); + if (cp != CMFAIL) { + mchunkptr newp = (mchunkptr)(cp + offset); + size_t psize = newmmsize - offset - MMAP_FOOT_PAD; + newp->head = psize; + mark_inuse_foot(m, newp, psize); + chunk_plus_offset(newp, psize)->head = FENCEPOST_HEAD; + chunk_plus_offset(newp, psize+SIZE_T_SIZE)->head = 0; + + if (cp < m->least_addr) + m->least_addr = cp; + if ((m->footprint += newmmsize - oldmmsize) > m->max_footprint) + m->max_footprint = m->footprint; + check_mmapped_chunk(m, newp); + return newp; + } + } + return 0; +} + + +/* -------------------------- mspace management -------------------------- */ + +/* Initialize top chunk and its size */ +static void init_top(mstate m, mchunkptr p, size_t psize) { + /* Ensure alignment */ + size_t offset = align_offset(chunk2mem(p)); + p = (mchunkptr)((char*)p + offset); + psize -= offset; + + m->top = p; + m->topsize = psize; + p->head = psize | PINUSE_BIT; + /* set size of fake trailing chunk holding overhead space only once */ + chunk_plus_offset(p, psize)->head = TOP_FOOT_SIZE; + m->trim_check = mparams.trim_threshold; /* reset on each update */ +} + +/* Initialize bins for a new mstate that is otherwise zeroed out */ +static void init_bins(mstate m) { + /* Establish circular links for smallbins */ + bindex_t i; + for (i = 0; i < NSMALLBINS; ++i) { + sbinptr bin = smallbin_at(m,i); + bin->fd = bin->bk = bin; + } +} + +#if PROCEED_ON_ERROR + +/* default corruption action */ +static void reset_on_error(mstate m) { + int i; + ++malloc_corruption_error_count; + /* Reinitialize fields to forget about all memory */ + m->smallmap = m->treemap = 0; + m->dvsize = m->topsize = 0; + m->seg.base = 0; + m->seg.size = 0; + m->seg.next = 0; + m->top = m->dv = 0; + for (i = 0; i < NTREEBINS; ++i) + *treebin_at(m, i) = 0; + init_bins(m); +} +#endif /* PROCEED_ON_ERROR */ + +/* Allocate chunk and prepend remainder with chunk in successor base. */ +static void* prepend_alloc(mstate m, char* newbase, char* oldbase, + size_t nb) { + mchunkptr p = align_as_chunk(newbase); + mchunkptr oldfirst = align_as_chunk(oldbase); + size_t psize = (char*)oldfirst - (char*)p; + mchunkptr q = chunk_plus_offset(p, nb); + size_t qsize = psize - nb; + set_size_and_pinuse_of_inuse_chunk(m, p, nb); + + assert((char*)oldfirst > (char*)q); + assert(pinuse(oldfirst)); + assert(qsize >= MIN_CHUNK_SIZE); + + /* consolidate remainder with first chunk of old base */ + if (oldfirst == m->top) { + size_t tsize = m->topsize += qsize; + m->top = q; + q->head = tsize | PINUSE_BIT; + check_top_chunk(m, q); + } + else if (oldfirst == m->dv) { + size_t dsize = m->dvsize += qsize; + m->dv = q; + set_size_and_pinuse_of_free_chunk(q, dsize); + } + else { + if (!is_inuse(oldfirst)) { + size_t nsize = chunksize(oldfirst); + unlink_chunk(m, oldfirst, nsize); + oldfirst = chunk_plus_offset(oldfirst, nsize); + qsize += nsize; + } + set_free_with_pinuse(q, qsize, oldfirst); + insert_chunk(m, q, qsize); + check_free_chunk(m, q); + } + + check_malloced_chunk(m, chunk2mem(p), nb); + return chunk2mem(p); +} + +/* Add a segment to hold a new noncontiguous region */ +static void add_segment(mstate m, char* tbase, size_t tsize, flag_t mmapped) { + /* Determine locations and sizes of segment, fenceposts, old top */ + char* old_top = (char*)m->top; + msegmentptr oldsp = segment_holding(m, old_top); + char* old_end = oldsp->base + oldsp->size; + size_t ssize = pad_request(sizeof(struct malloc_segment)); + char* rawsp = old_end - (ssize + FOUR_SIZE_T_SIZES + CHUNK_ALIGN_MASK); + size_t offset = align_offset(chunk2mem(rawsp)); + char* asp = rawsp + offset; + char* csp = (asp < (old_top + MIN_CHUNK_SIZE))? old_top : asp; + mchunkptr sp = (mchunkptr)csp; + msegmentptr ss = (msegmentptr)(chunk2mem(sp)); + mchunkptr tnext = chunk_plus_offset(sp, ssize); + mchunkptr p = tnext; + int nfences = 0; + + /* reset top to new space */ + init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE); + + /* Set up segment record */ + assert(is_aligned(ss)); + set_size_and_pinuse_of_inuse_chunk(m, sp, ssize); + *ss = m->seg; /* Push current record */ + m->seg.base = tbase; + m->seg.size = tsize; + m->seg.sflags = mmapped; + m->seg.next = ss; + + /* Insert trailing fenceposts */ + for (;;) { + mchunkptr nextp = chunk_plus_offset(p, SIZE_T_SIZE); + p->head = FENCEPOST_HEAD; + ++nfences; + if ((char*)(&(nextp->head)) < old_end) + p = nextp; + else + break; + } + assert(nfences >= 2); + + /* Insert the rest of old top into a bin as an ordinary free chunk */ + if (csp != old_top) { + mchunkptr q = (mchunkptr)old_top; + size_t psize = csp - old_top; + mchunkptr tn = chunk_plus_offset(q, psize); + set_free_with_pinuse(q, psize, tn); + insert_chunk(m, q, psize); + } + + check_top_chunk(m, m->top); +} + +/* -------------------------- System allocation -------------------------- */ + +/* Get memory from system using MORECORE or MMAP */ +static void* sys_alloc(mstate m, size_t nb) { + char* tbase = CMFAIL; + size_t tsize = 0; + flag_t mmap_flag = 0; + size_t asize; /* allocation size */ + + ensure_initialization(); + + /* Directly map large chunks, but only if already initialized */ + if (use_mmap(m) && nb >= mparams.mmap_threshold && m->topsize != 0) { + void* mem = mmap_alloc(m, nb); + if (mem != 0) + return mem; + } + + asize = granularity_align(nb + SYS_ALLOC_PADDING); + if (asize <= nb) + return 0; /* wraparound */ + if (m->footprint_limit != 0) { + size_t fp = m->footprint + asize; + if (fp <= m->footprint || fp > m->footprint_limit) + return 0; + } + + /* + Try getting memory in any of three ways (in most-preferred to + least-preferred order): + 1. A call to MORECORE that can normally contiguously extend memory. + (disabled if not MORECORE_CONTIGUOUS or not HAVE_MORECORE or + or main space is mmapped or a previous contiguous call failed) + 2. A call to MMAP new space (disabled if not HAVE_MMAP). + Note that under the default settings, if MORECORE is unable to + fulfill a request, and HAVE_MMAP is true, then mmap is + used as a noncontiguous system allocator. This is a useful backup + strategy for systems with holes in address spaces -- in this case + sbrk cannot contiguously expand the heap, but mmap may be able to + find space. + 3. A call to MORECORE that cannot usually contiguously extend memory. + (disabled if not HAVE_MORECORE) + + In all cases, we need to request enough bytes from system to ensure + we can malloc nb bytes upon success, so pad with enough space for + top_foot, plus alignment-pad to make sure we don't lose bytes if + not on boundary, and round this up to a granularity unit. + */ + + if (MORECORE_CONTIGUOUS && !use_noncontiguous(m)) { + char* br = CMFAIL; + size_t ssize = asize; /* sbrk call size */ + msegmentptr ss = (m->top == 0)? 0 : segment_holding(m, (char*)m->top); + ACQUIRE_MALLOC_GLOBAL_LOCK(); + + if (ss == 0) { /* First time through or recovery */ + char* base = (char*)CALL_MORECORE(0); + if (base != CMFAIL) { + size_t fp; + /* Adjust to end on a page boundary */ + if (!is_page_aligned(base)) + ssize += (page_align((size_t)base) - (size_t)base); + fp = m->footprint + ssize; /* recheck limits */ + if (ssize > nb && ssize < HALF_MAX_SIZE_T && + (m->footprint_limit == 0 || + (fp > m->footprint && fp <= m->footprint_limit)) && + (br = (char*)(CALL_MORECORE(ssize))) == base) { + tbase = base; + tsize = ssize; + } + } + } + else { + /* Subtract out existing available top space from MORECORE request. */ + ssize = granularity_align(nb - m->topsize + SYS_ALLOC_PADDING); + /* Use mem here only if it did continuously extend old space */ + if (ssize < HALF_MAX_SIZE_T && + (br = (char*)(CALL_MORECORE(ssize))) == ss->base+ss->size) { + tbase = br; + tsize = ssize; + } + } + + if (tbase == CMFAIL) { /* Cope with partial failure */ + if (br != CMFAIL) { /* Try to use/extend the space we did get */ + if (ssize < HALF_MAX_SIZE_T && + ssize < nb + SYS_ALLOC_PADDING) { + size_t esize = granularity_align(nb + SYS_ALLOC_PADDING - ssize); + if (esize < HALF_MAX_SIZE_T) { + char* end = (char*)CALL_MORECORE(esize); + if (end != CMFAIL) + ssize += esize; + else { /* Can't use; try to release */ + (void) CALL_MORECORE(-ssize); + br = CMFAIL; + } + } + } + } + if (br != CMFAIL) { /* Use the space we did get */ + tbase = br; + tsize = ssize; + } + else + disable_contiguous(m); /* Don't try contiguous path in the future */ + } + + RELEASE_MALLOC_GLOBAL_LOCK(); + } + + if (HAVE_MMAP && tbase == CMFAIL) { /* Try MMAP */ + char* mp = (char*)(CALL_MMAP(asize)); + if (mp != CMFAIL) { + tbase = mp; + tsize = asize; + mmap_flag = USE_MMAP_BIT; + } + } + + if (HAVE_MORECORE && tbase == CMFAIL) { /* Try noncontiguous MORECORE */ + if (asize < HALF_MAX_SIZE_T) { + char* br = CMFAIL; + char* end = CMFAIL; + ACQUIRE_MALLOC_GLOBAL_LOCK(); + br = (char*)(CALL_MORECORE(asize)); + end = (char*)(CALL_MORECORE(0)); + RELEASE_MALLOC_GLOBAL_LOCK(); + if (br != CMFAIL && end != CMFAIL && br < end) { + size_t ssize = end - br; + if (ssize > nb + TOP_FOOT_SIZE) { + tbase = br; + tsize = ssize; + } + } + } + } + + if (tbase != CMFAIL) { + + if ((m->footprint += tsize) > m->max_footprint) + m->max_footprint = m->footprint; + + if (!is_initialized(m)) { /* first-time initialization */ + if (m->least_addr == 0 || tbase < m->least_addr) + m->least_addr = tbase; + m->seg.base = tbase; + m->seg.size = tsize; + m->seg.sflags = mmap_flag; + m->magic = mparams.magic; + m->release_checks = MAX_RELEASE_CHECK_RATE; + init_bins(m); +#if !ONLY_MSPACES + if (is_global(m)) + init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE); + else +#endif + { + /* Offset top by embedded malloc_state */ + mchunkptr mn = next_chunk(mem2chunk(m)); + init_top(m, mn, (size_t)((tbase + tsize) - (char*)mn) -TOP_FOOT_SIZE); + } + } + + else { + /* Try to merge with an existing segment */ + msegmentptr sp = &m->seg; + /* Only consider most recent segment if traversal suppressed */ + while (sp != 0 && tbase != sp->base + sp->size) + sp = (NO_SEGMENT_TRAVERSAL) ? 0 : sp->next; + if (sp != 0 && + !is_extern_segment(sp) && + (sp->sflags & USE_MMAP_BIT) == mmap_flag && + segment_holds(sp, m->top)) { /* append */ + sp->size += tsize; + init_top(m, m->top, m->topsize + tsize); + } + else { + if (tbase < m->least_addr) + m->least_addr = tbase; + sp = &m->seg; + while (sp != 0 && sp->base != tbase + tsize) + sp = (NO_SEGMENT_TRAVERSAL) ? 0 : sp->next; + if (sp != 0 && + !is_extern_segment(sp) && + (sp->sflags & USE_MMAP_BIT) == mmap_flag) { + char* oldbase = sp->base; + sp->base = tbase; + sp->size += tsize; + return prepend_alloc(m, tbase, oldbase, nb); + } + else + add_segment(m, tbase, tsize, mmap_flag); + } + } + + if (nb < m->topsize) { /* Allocate from new or extended top space */ + size_t rsize = m->topsize -= nb; + mchunkptr p = m->top; + mchunkptr r = m->top = chunk_plus_offset(p, nb); + r->head = rsize | PINUSE_BIT; + set_size_and_pinuse_of_inuse_chunk(m, p, nb); + check_top_chunk(m, m->top); + check_malloced_chunk(m, chunk2mem(p), nb); + return chunk2mem(p); + } + } + + MALLOC_FAILURE_ACTION; + return 0; +} + +/* ----------------------- system deallocation -------------------------- */ + +/* Unmap and unlink any mmapped segments that don't contain used chunks */ +static size_t release_unused_segments(mstate m) { + size_t released = 0; + int nsegs = 0; + msegmentptr pred = &m->seg; + msegmentptr sp = pred->next; + while (sp != 0) { + char* base = sp->base; + size_t size = sp->size; + msegmentptr next = sp->next; + ++nsegs; + if (is_mmapped_segment(sp) && !is_extern_segment(sp)) { + mchunkptr p = align_as_chunk(base); + size_t psize = chunksize(p); + /* Can unmap if first chunk holds entire segment and not pinned */ + if (!is_inuse(p) && (char*)p + psize >= base + size - TOP_FOOT_SIZE) { + tchunkptr tp = (tchunkptr)p; + assert(segment_holds(sp, (char*)sp)); + if (p == m->dv) { + m->dv = 0; + m->dvsize = 0; + } + else { + unlink_large_chunk(m, tp); + } + if (CALL_MUNMAP(base, size) == 0) { + released += size; + m->footprint -= size; + /* unlink obsoleted record */ + sp = pred; + sp->next = next; + } + else { /* back out if cannot unmap */ + insert_large_chunk(m, tp, psize); + } + } + } + if (NO_SEGMENT_TRAVERSAL) /* scan only first segment */ + break; + pred = sp; + sp = next; + } + /* Reset check counter */ + m->release_checks = (((size_t) nsegs > (size_t) MAX_RELEASE_CHECK_RATE)? + (size_t) nsegs : (size_t) MAX_RELEASE_CHECK_RATE); + return released; +} + +static int sys_trim(mstate m, size_t pad) { + size_t released = 0; + ensure_initialization(); + if (pad < MAX_REQUEST && is_initialized(m)) { + pad += TOP_FOOT_SIZE; /* ensure enough room for segment overhead */ + + if (m->topsize > pad) { + /* Shrink top space in granularity-size units, keeping at least one */ + size_t unit = mparams.granularity; + size_t extra = ((m->topsize - pad + (unit - SIZE_T_ONE)) / unit - + SIZE_T_ONE) * unit; + msegmentptr sp = segment_holding(m, (char*)m->top); + + if (!is_extern_segment(sp)) { + if (is_mmapped_segment(sp)) { + if (HAVE_MMAP && + sp->size >= extra && + !has_segment_link(m, sp)) { /* can't shrink if pinned */ + size_t newsize = sp->size - extra; + (void)newsize; /* placate people compiling -Wunused-variable */ + /* Prefer mremap, fall back to munmap */ + if ((CALL_MREMAP(sp->base, sp->size, newsize, 0) != MFAIL) || + (CALL_MUNMAP(sp->base + newsize, extra) == 0)) { + released = extra; + } + } + } + else if (HAVE_MORECORE) { + if (extra >= HALF_MAX_SIZE_T) /* Avoid wrapping negative */ + extra = (HALF_MAX_SIZE_T) + SIZE_T_ONE - unit; + ACQUIRE_MALLOC_GLOBAL_LOCK(); + { + /* Make sure end of memory is where we last set it. */ + char* old_br = (char*)(CALL_MORECORE(0)); + if (old_br == sp->base + sp->size) { + char* rel_br = (char*)(CALL_MORECORE(-extra)); + char* new_br = (char*)(CALL_MORECORE(0)); + if (rel_br != CMFAIL && new_br < old_br) + released = old_br - new_br; + } + } + RELEASE_MALLOC_GLOBAL_LOCK(); + } + } + + if (released != 0) { + sp->size -= released; + m->footprint -= released; + init_top(m, m->top, m->topsize - released); + check_top_chunk(m, m->top); + } + } + + /* Unmap any unused mmapped segments */ + if (HAVE_MMAP) + released += release_unused_segments(m); + + /* On failure, disable autotrim to avoid repeated failed future calls */ + if (released == 0 && m->topsize > m->trim_check) + m->trim_check = MAX_SIZE_T; + } + + return (released != 0)? 1 : 0; +} + +/* Consolidate and bin a chunk. Differs from exported versions + of free mainly in that the chunk need not be marked as inuse. +*/ +static void dispose_chunk(mstate m, mchunkptr p, size_t psize) { + mchunkptr next = chunk_plus_offset(p, psize); + if (!pinuse(p)) { + mchunkptr prev; + size_t prevsize = p->prev_foot; + if (is_mmapped(p)) { + psize += prevsize + MMAP_FOOT_PAD; + if (CALL_MUNMAP((char*)p - prevsize, psize) == 0) + m->footprint -= psize; + return; + } + prev = chunk_minus_offset(p, prevsize); + psize += prevsize; + p = prev; + if (RTCHECK(ok_address(m, prev))) { /* consolidate backward */ + if (p != m->dv) { + unlink_chunk(m, p, prevsize); + } + else if ((next->head & INUSE_BITS) == INUSE_BITS) { + m->dvsize = psize; + set_free_with_pinuse(p, psize, next); + return; + } + } + else { + CORRUPTION_ERROR_ACTION(m); + return; + } + } + if (RTCHECK(ok_address(m, next))) { + if (!cinuse(next)) { /* consolidate forward */ + if (next == m->top) { + size_t tsize = m->topsize += psize; + m->top = p; + p->head = tsize | PINUSE_BIT; + if (p == m->dv) { + m->dv = 0; + m->dvsize = 0; + } + return; + } + else if (next == m->dv) { + size_t dsize = m->dvsize += psize; + m->dv = p; + set_size_and_pinuse_of_free_chunk(p, dsize); + return; + } + else { + size_t nsize = chunksize(next); + psize += nsize; + unlink_chunk(m, next, nsize); + set_size_and_pinuse_of_free_chunk(p, psize); + if (p == m->dv) { + m->dvsize = psize; + return; + } + } + } + else { + set_free_with_pinuse(p, psize, next); + } + insert_chunk(m, p, psize); + } + else { + CORRUPTION_ERROR_ACTION(m); + } +} + +/* ---------------------------- malloc --------------------------- */ + +/* allocate a large request from the best fitting chunk in a treebin */ +static void* tmalloc_large(mstate m, size_t nb) { + tchunkptr v = 0; + size_t rsize = -nb; /* Unsigned negation */ + tchunkptr t; + bindex_t idx; + compute_tree_index(nb, idx); + if ((t = *treebin_at(m, idx)) != 0) { + /* Traverse tree for this bin looking for node with size == nb */ + size_t sizebits = nb << leftshift_for_tree_index(idx); + tchunkptr rst = 0; /* The deepest untaken right subtree */ + for (;;) { + tchunkptr rt; + size_t trem = chunksize(t) - nb; + if (trem < rsize) { + v = t; + if ((rsize = trem) == 0) + break; + } + rt = t->child[1]; + t = t->child[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]; + if (rt != 0 && rt != t) + rst = rt; + if (t == 0) { + t = rst; /* set t to least subtree holding sizes > nb */ + break; + } + sizebits <<= 1; + } + } + if (t == 0 && v == 0) { /* set t to root of next non-empty treebin */ + binmap_t leftbits = left_bits(idx2bit(idx)) & m->treemap; + if (leftbits != 0) { + bindex_t i; + binmap_t leastbit = least_bit(leftbits); + compute_bit2idx(leastbit, i); + t = *treebin_at(m, i); + } + } + + while (t != 0) { /* find smallest of tree or subtree */ + size_t trem = chunksize(t) - nb; + if (trem < rsize) { + rsize = trem; + v = t; + } + t = leftmost_child(t); + } + + /* If dv is a better fit, return 0 so malloc will use it */ + if (v != 0 && rsize < (size_t)(m->dvsize - nb)) { + if (RTCHECK(ok_address(m, v))) { /* split */ + mchunkptr r = chunk_plus_offset(v, nb); + assert(chunksize(v) == rsize + nb); + if (RTCHECK(ok_next(v, r))) { + unlink_large_chunk(m, v); + if (rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(m, v, (rsize + nb)); + else { + set_size_and_pinuse_of_inuse_chunk(m, v, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + insert_chunk(m, r, rsize); + } + return chunk2mem(v); + } + } + CORRUPTION_ERROR_ACTION(m); + } + return 0; +} + +/* allocate a small request from the best fitting chunk in a treebin */ +static void* tmalloc_small(mstate m, size_t nb) { + tchunkptr t, v; + size_t rsize; + bindex_t i; + binmap_t leastbit = least_bit(m->treemap); + compute_bit2idx(leastbit, i); + v = t = *treebin_at(m, i); + rsize = chunksize(t) - nb; + + while ((t = leftmost_child(t)) != 0) { + size_t trem = chunksize(t) - nb; + if (trem < rsize) { + rsize = trem; + v = t; + } + } + + if (RTCHECK(ok_address(m, v))) { + mchunkptr r = chunk_plus_offset(v, nb); + assert(chunksize(v) == rsize + nb); + if (RTCHECK(ok_next(v, r))) { + unlink_large_chunk(m, v); + if (rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(m, v, (rsize + nb)); + else { + set_size_and_pinuse_of_inuse_chunk(m, v, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + replace_dv(m, r, rsize); + } + return chunk2mem(v); + } + } + + CORRUPTION_ERROR_ACTION(m); + return 0; +} + +#if !ONLY_MSPACES + +void* dlmalloc(size_t bytes) { + /* + Basic algorithm: + If a small request (< 256 bytes minus per-chunk overhead): + 1. If one exists, use a remainderless chunk in associated smallbin. + (Remainderless means that there are too few excess bytes to + represent as a chunk.) + 2. If it is big enough, use the dv chunk, which is normally the + chunk adjacent to the one used for the most recent small request. + 3. If one exists, split the smallest available chunk in a bin, + saving remainder in dv. + 4. If it is big enough, use the top chunk. + 5. If available, get memory from system and use it + Otherwise, for a large request: + 1. Find the smallest available binned chunk that fits, and use it + if it is better fitting than dv chunk, splitting if necessary. + 2. If better fitting than any binned chunk, use the dv chunk. + 3. If it is big enough, use the top chunk. + 4. If request size >= mmap threshold, try to directly mmap this chunk. + 5. If available, get memory from system and use it + + The ugly goto's here ensure that postaction occurs along all paths. + */ + +#if USE_LOCKS + ensure_initialization(); /* initialize in sys_alloc if not using locks */ +#endif + + if (!PREACTION(gm)) { + void* mem; + size_t nb; + if (bytes <= MAX_SMALL_REQUEST) { + bindex_t idx; + binmap_t smallbits; + nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes); + idx = small_index(nb); + smallbits = gm->smallmap >> idx; + + if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */ + mchunkptr b, p; + idx += ~smallbits & 1; /* Uses next bin if idx empty */ + b = smallbin_at(gm, idx); + p = b->fd; + assert(chunksize(p) == small_index2size(idx)); + unlink_first_small_chunk(gm, b, p, idx); + set_inuse_and_pinuse(gm, p, small_index2size(idx)); + mem = chunk2mem(p); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + else if (nb > gm->dvsize) { + if (smallbits != 0) { /* Use chunk in next nonempty smallbin */ + mchunkptr b, p, r; + size_t rsize; + bindex_t i; + binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx)); + binmap_t leastbit = least_bit(leftbits); + compute_bit2idx(leastbit, i); + b = smallbin_at(gm, i); + p = b->fd; + assert(chunksize(p) == small_index2size(i)); + unlink_first_small_chunk(gm, b, p, i); + rsize = small_index2size(i) - nb; + /* Fit here cannot be remainderless if 4byte sizes */ + if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(gm, p, small_index2size(i)); + else { + set_size_and_pinuse_of_inuse_chunk(gm, p, nb); + r = chunk_plus_offset(p, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + replace_dv(gm, r, rsize); + } + mem = chunk2mem(p); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + else if (gm->treemap != 0 && (mem = tmalloc_small(gm, nb)) != 0) { + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + } + } + else if (bytes >= MAX_REQUEST) + nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */ + else { + nb = pad_request(bytes); + if (gm->treemap != 0 && (mem = tmalloc_large(gm, nb)) != 0) { + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + } + + if (nb <= gm->dvsize) { + size_t rsize = gm->dvsize - nb; + mchunkptr p = gm->dv; + if (rsize >= MIN_CHUNK_SIZE) { /* split dv */ + mchunkptr r = gm->dv = chunk_plus_offset(p, nb); + gm->dvsize = rsize; + set_size_and_pinuse_of_free_chunk(r, rsize); + set_size_and_pinuse_of_inuse_chunk(gm, p, nb); + } + else { /* exhaust dv */ + size_t dvs = gm->dvsize; + gm->dvsize = 0; + gm->dv = 0; + set_inuse_and_pinuse(gm, p, dvs); + } + mem = chunk2mem(p); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + else if (nb < gm->topsize) { /* Split top */ + size_t rsize = gm->topsize -= nb; + mchunkptr p = gm->top; + mchunkptr r = gm->top = chunk_plus_offset(p, nb); + r->head = rsize | PINUSE_BIT; + set_size_and_pinuse_of_inuse_chunk(gm, p, nb); + mem = chunk2mem(p); + check_top_chunk(gm, gm->top); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + mem = sys_alloc(gm, nb); + + postaction: + POSTACTION(gm); + return mem; + } + + return 0; +} + +/* ---------------------------- free --------------------------- */ + +void dlfree(void* mem) { + /* + Consolidate freed chunks with preceeding or succeeding bordering + free chunks, if they exist, and then place in a bin. Intermixed + with special cases for top, dv, mmapped chunks, and usage errors. + */ + + if (mem != 0) { + mchunkptr p = mem2chunk(mem); +#if FOOTERS + mstate fm = get_mstate_for(p); + if (!ok_magic(fm)) { + USAGE_ERROR_ACTION(fm, p); + return; + } +#else /* FOOTERS */ +#define fm gm +#endif /* FOOTERS */ + if (!PREACTION(fm)) { + check_inuse_chunk(fm, p); + if (RTCHECK(ok_address(fm, p) && ok_inuse(p))) { + size_t psize = chunksize(p); + mchunkptr next = chunk_plus_offset(p, psize); + if (!pinuse(p)) { + size_t prevsize = p->prev_foot; + if (is_mmapped(p)) { + psize += prevsize + MMAP_FOOT_PAD; + if (CALL_MUNMAP((char*)p - prevsize, psize) == 0) + fm->footprint -= psize; + goto postaction; + } + else { + mchunkptr prev = chunk_minus_offset(p, prevsize); + psize += prevsize; + p = prev; + if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */ + if (p != fm->dv) { + unlink_chunk(fm, p, prevsize); + } + else if ((next->head & INUSE_BITS) == INUSE_BITS) { + fm->dvsize = psize; + set_free_with_pinuse(p, psize, next); + goto postaction; + } + } + else + goto erroraction; + } + } + + if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) { + if (!cinuse(next)) { /* consolidate forward */ + if (next == fm->top) { + size_t tsize = fm->topsize += psize; + fm->top = p; + p->head = tsize | PINUSE_BIT; + if (p == fm->dv) { + fm->dv = 0; + fm->dvsize = 0; + } + if (should_trim(fm, tsize)) + sys_trim(fm, 0); + goto postaction; + } + else if (next == fm->dv) { + size_t dsize = fm->dvsize += psize; + fm->dv = p; + set_size_and_pinuse_of_free_chunk(p, dsize); + goto postaction; + } + else { + size_t nsize = chunksize(next); + psize += nsize; + unlink_chunk(fm, next, nsize); + set_size_and_pinuse_of_free_chunk(p, psize); + if (p == fm->dv) { + fm->dvsize = psize; + goto postaction; + } + } + } + else + set_free_with_pinuse(p, psize, next); + + if (is_small(psize)) { + insert_small_chunk(fm, p, psize); + check_free_chunk(fm, p); + } + else { + tchunkptr tp = (tchunkptr)p; + insert_large_chunk(fm, tp, psize); + check_free_chunk(fm, p); + if (--fm->release_checks == 0) + release_unused_segments(fm); + } + goto postaction; + } + } + erroraction: + USAGE_ERROR_ACTION(fm, p); + postaction: + POSTACTION(fm); + } + } +#if !FOOTERS +#undef fm +#endif /* FOOTERS */ +} + +void* dlcalloc(size_t n_elements, size_t elem_size) { + void* mem; + size_t req = 0; + if (n_elements != 0) { + req = n_elements * elem_size; + if (((n_elements | elem_size) & ~(size_t)0xffff) && + (req / n_elements != elem_size)) + req = MAX_SIZE_T; /* force downstream failure on overflow */ + } + mem = dlmalloc(req); + if (mem != 0 && calloc_must_clear(mem2chunk(mem))) + memset(mem, 0, req); + return mem; +} + +#endif /* !ONLY_MSPACES */ + +/* ------------ Internal support for realloc, memalign, etc -------------- */ + +/* Try to realloc; only in-place unless can_move true */ +static mchunkptr try_realloc_chunk(mstate m, mchunkptr p, size_t nb, + int can_move) { + mchunkptr newp = 0; + size_t oldsize = chunksize(p); + mchunkptr next = chunk_plus_offset(p, oldsize); + if (RTCHECK(ok_address(m, p) && ok_inuse(p) && + ok_next(p, next) && ok_pinuse(next))) { + if (is_mmapped(p)) { + newp = mmap_resize(m, p, nb, can_move); + } + else if (oldsize >= nb) { /* already big enough */ + size_t rsize = oldsize - nb; + if (rsize >= MIN_CHUNK_SIZE) { /* split off remainder */ + mchunkptr r = chunk_plus_offset(p, nb); + set_inuse(m, p, nb); + set_inuse(m, r, rsize); + dispose_chunk(m, r, rsize); + } + newp = p; + } + else if (next == m->top) { /* extend into top */ + if (oldsize + m->topsize > nb) { + size_t newsize = oldsize + m->topsize; + size_t newtopsize = newsize - nb; + mchunkptr newtop = chunk_plus_offset(p, nb); + set_inuse(m, p, nb); + newtop->head = newtopsize |PINUSE_BIT; + m->top = newtop; + m->topsize = newtopsize; + newp = p; + } + } + else if (next == m->dv) { /* extend into dv */ + size_t dvs = m->dvsize; + if (oldsize + dvs >= nb) { + size_t dsize = oldsize + dvs - nb; + if (dsize >= MIN_CHUNK_SIZE) { + mchunkptr r = chunk_plus_offset(p, nb); + mchunkptr n = chunk_plus_offset(r, dsize); + set_inuse(m, p, nb); + set_size_and_pinuse_of_free_chunk(r, dsize); + clear_pinuse(n); + m->dvsize = dsize; + m->dv = r; + } + else { /* exhaust dv */ + size_t newsize = oldsize + dvs; + set_inuse(m, p, newsize); + m->dvsize = 0; + m->dv = 0; + } + newp = p; + } + } + else if (!cinuse(next)) { /* extend into next free chunk */ + size_t nextsize = chunksize(next); + if (oldsize + nextsize >= nb) { + size_t rsize = oldsize + nextsize - nb; + unlink_chunk(m, next, nextsize); + if (rsize < MIN_CHUNK_SIZE) { + size_t newsize = oldsize + nextsize; + set_inuse(m, p, newsize); + } + else { + mchunkptr r = chunk_plus_offset(p, nb); + set_inuse(m, p, nb); + set_inuse(m, r, rsize); + dispose_chunk(m, r, rsize); + } + newp = p; + } + } + } + else { + USAGE_ERROR_ACTION(m, chunk2mem(p)); + } + return newp; +} + +static void* internal_memalign(mstate m, size_t alignment, size_t bytes) { + void* mem = 0; + if (alignment < MIN_CHUNK_SIZE) /* must be at least a minimum chunk size */ + alignment = MIN_CHUNK_SIZE; + if ((alignment & (alignment-SIZE_T_ONE)) != 0) {/* Ensure a power of 2 */ + size_t a = MALLOC_ALIGNMENT << 1; + while (a < alignment) a <<= 1; + alignment = a; + } + if (bytes >= MAX_REQUEST - alignment) { + if (m != 0) { /* Test isn't needed but avoids compiler warning */ + MALLOC_FAILURE_ACTION; + } + } + else { + size_t nb = request2size(bytes); + size_t req = nb + alignment + MIN_CHUNK_SIZE - CHUNK_OVERHEAD; + mem = internal_malloc(m, req); + if (mem != 0) { + mchunkptr p = mem2chunk(mem); + if (PREACTION(m)) + return 0; + if ((((size_t)(mem)) & (alignment - 1)) != 0) { /* misaligned */ + /* + Find an aligned spot inside chunk. Since we need to give + back leading space in a chunk of at least MIN_CHUNK_SIZE, if + the first calculation places us at a spot with less than + MIN_CHUNK_SIZE leader, we can move to the next aligned spot. + We've allocated enough total room so that this is always + possible. + */ + char* br = (char*)mem2chunk((size_t)(((size_t)((char*)mem + alignment - + SIZE_T_ONE)) & + -alignment)); + char* pos = ((size_t)(br - (char*)(p)) >= MIN_CHUNK_SIZE)? + br : br+alignment; + mchunkptr newp = (mchunkptr)pos; + size_t leadsize = pos - (char*)(p); + size_t newsize = chunksize(p) - leadsize; + + if (is_mmapped(p)) { /* For mmapped chunks, just adjust offset */ + newp->prev_foot = p->prev_foot + leadsize; + newp->head = newsize; + } + else { /* Otherwise, give back leader, use the rest */ + set_inuse(m, newp, newsize); + set_inuse(m, p, leadsize); + dispose_chunk(m, p, leadsize); + } + p = newp; + } + + /* Give back spare room at the end */ + if (!is_mmapped(p)) { + size_t size = chunksize(p); + if (size > nb + MIN_CHUNK_SIZE) { + size_t remainder_size = size - nb; + mchunkptr remainder = chunk_plus_offset(p, nb); + set_inuse(m, p, nb); + set_inuse(m, remainder, remainder_size); + dispose_chunk(m, remainder, remainder_size); + } + } + + mem = chunk2mem(p); + assert (chunksize(p) >= nb); + assert(((size_t)mem & (alignment - 1)) == 0); + check_inuse_chunk(m, p); + POSTACTION(m); + } + } + return mem; +} + +/* + Common support for independent_X routines, handling + all of the combinations that can result. + The opts arg has: + bit 0 set if all elements are same size (using sizes[0]) + bit 1 set if elements should be zeroed +*/ +static void** ialloc(mstate m, + size_t n_elements, + size_t* sizes, + int opts, + void* chunks[]) { + + size_t element_size; /* chunksize of each element, if all same */ + size_t contents_size; /* total size of elements */ + size_t array_size; /* request size of pointer array */ + void* mem; /* malloced aggregate space */ + mchunkptr p; /* corresponding chunk */ + size_t remainder_size; /* remaining bytes while splitting */ + void** marray; /* either "chunks" or malloced ptr array */ + mchunkptr array_chunk; /* chunk for malloced ptr array */ + flag_t was_enabled; /* to disable mmap */ + size_t size; + size_t i; + + ensure_initialization(); + /* compute array length, if needed */ + if (chunks != 0) { + if (n_elements == 0) + return chunks; /* nothing to do */ + marray = chunks; + array_size = 0; + } + else { + /* if empty req, must still return chunk representing empty array */ + if (n_elements == 0) + return (void**)internal_malloc(m, 0); + marray = 0; + array_size = request2size(n_elements * (sizeof(void*))); + } + + /* compute total element size */ + if (opts & 0x1) { /* all-same-size */ + element_size = request2size(*sizes); + contents_size = n_elements * element_size; + } + else { /* add up all the sizes */ + element_size = 0; + contents_size = 0; + for (i = 0; i != n_elements; ++i) + contents_size += request2size(sizes[i]); + } + + size = contents_size + array_size; + + /* + Allocate the aggregate chunk. First disable direct-mmapping so + malloc won't use it, since we would not be able to later + free/realloc space internal to a segregated mmap region. + */ + was_enabled = use_mmap(m); + disable_mmap(m); + mem = internal_malloc(m, size - CHUNK_OVERHEAD); + if (was_enabled) + enable_mmap(m); + if (mem == 0) + return 0; + + if (PREACTION(m)) return 0; + p = mem2chunk(mem); + remainder_size = chunksize(p); + + assert(!is_mmapped(p)); + + if (opts & 0x2) { /* optionally clear the elements */ + memset((size_t*)mem, 0, remainder_size - SIZE_T_SIZE - array_size); + } + + /* If not provided, allocate the pointer array as final part of chunk */ + if (marray == 0) { + size_t array_chunk_size; + array_chunk = chunk_plus_offset(p, contents_size); + array_chunk_size = remainder_size - contents_size; + marray = (void**) (chunk2mem(array_chunk)); + set_size_and_pinuse_of_inuse_chunk(m, array_chunk, array_chunk_size); + remainder_size = contents_size; + } + + /* split out elements */ + for (i = 0; ; ++i) { + marray[i] = chunk2mem(p); + if (i != n_elements-1) { + if (element_size != 0) + size = element_size; + else + size = request2size(sizes[i]); + remainder_size -= size; + set_size_and_pinuse_of_inuse_chunk(m, p, size); + p = chunk_plus_offset(p, size); + } + else { /* the final element absorbs any overallocation slop */ + set_size_and_pinuse_of_inuse_chunk(m, p, remainder_size); + break; + } + } + +#if DEBUG + if (marray != chunks) { + /* final element must have exactly exhausted chunk */ + if (element_size != 0) { + assert(remainder_size == element_size); + } + else { + assert(remainder_size == request2size(sizes[i])); + } + check_inuse_chunk(m, mem2chunk(marray)); + } + for (i = 0; i != n_elements; ++i) + check_inuse_chunk(m, mem2chunk(marray[i])); + +#endif /* DEBUG */ + + POSTACTION(m); + return marray; +} + +/* Try to free all pointers in the given array. + Note: this could be made faster, by delaying consolidation, + at the price of disabling some user integrity checks, We + still optimize some consolidations by combining adjacent + chunks before freeing, which will occur often if allocated + with ialloc or the array is sorted. +*/ +static size_t internal_bulk_free(mstate m, void* array[], size_t nelem) { + size_t unfreed = 0; + if (!PREACTION(m)) { + void** a; + void** fence = &(array[nelem]); + for (a = array; a != fence; ++a) { + void* mem = *a; + if (mem != 0) { + mchunkptr p = mem2chunk(mem); + size_t psize = chunksize(p); +#if FOOTERS + if (get_mstate_for(p) != m) { + ++unfreed; + continue; + } +#endif + check_inuse_chunk(m, p); + *a = 0; + if (RTCHECK(ok_address(m, p) && ok_inuse(p))) { + void ** b = a + 1; /* try to merge with next chunk */ + mchunkptr next = next_chunk(p); + if (b != fence && *b == chunk2mem(next)) { + size_t newsize = chunksize(next) + psize; + set_inuse(m, p, newsize); + *b = chunk2mem(p); + } + else + dispose_chunk(m, p, psize); + } + else { + CORRUPTION_ERROR_ACTION(m); + break; + } + } + } + if (should_trim(m, m->topsize)) + sys_trim(m, 0); + POSTACTION(m); + } + return unfreed; +} + +/* Traversal */ +#if MALLOC_INSPECT_ALL +static void internal_inspect_all(mstate m, + void(*handler)(void *start, + void *end, + size_t used_bytes, + void* callback_arg), + void* arg) { + if (is_initialized(m)) { + mchunkptr top = m->top; + msegmentptr s; + for (s = &m->seg; s != 0; s = s->next) { + mchunkptr q = align_as_chunk(s->base); + while (segment_holds(s, q) && q->head != FENCEPOST_HEAD) { + mchunkptr next = next_chunk(q); + size_t sz = chunksize(q); + size_t used; + void* start; + if (is_inuse(q)) { + used = sz - CHUNK_OVERHEAD; /* must not be mmapped */ + start = chunk2mem(q); + } + else { + used = 0; + if (is_small(sz)) { /* offset by possible bookkeeping */ + start = (void*)((char*)q + sizeof(struct malloc_chunk)); + } + else { + start = (void*)((char*)q + sizeof(struct malloc_tree_chunk)); + } + } + if (start < (void*)next) /* skip if all space is bookkeeping */ + handler(start, next, used, arg); + if (q == top) + break; + q = next; + } + } + } +} +#endif /* MALLOC_INSPECT_ALL */ + +/* ------------------ Exported realloc, memalign, etc -------------------- */ + +#if !ONLY_MSPACES + +void* dlrealloc(void* oldmem, size_t bytes) { + void* mem = 0; + if (oldmem == 0) { + mem = dlmalloc(bytes); + } + else if (bytes >= MAX_REQUEST) { + MALLOC_FAILURE_ACTION; + } +#ifdef REALLOC_ZERO_BYTES_FREES + else if (bytes == 0) { + dlfree(oldmem); + } +#endif /* REALLOC_ZERO_BYTES_FREES */ + else { + size_t nb = request2size(bytes); + mchunkptr oldp = mem2chunk(oldmem); +#if ! FOOTERS + mstate m = gm; +#else /* FOOTERS */ + mstate m = get_mstate_for(oldp); + if (!ok_magic(m)) { + USAGE_ERROR_ACTION(m, oldmem); + return 0; + } +#endif /* FOOTERS */ + if (!PREACTION(m)) { + mchunkptr newp = try_realloc_chunk(m, oldp, nb, 1); + POSTACTION(m); + if (newp != 0) { + check_inuse_chunk(m, newp); + mem = chunk2mem(newp); + } + else { + mem = internal_malloc(m, bytes); + if (mem != 0) { + size_t oc = chunksize(oldp) - overhead_for(oldp); + memcpy(mem, oldmem, (oc < bytes)? oc : bytes); + internal_free(m, oldmem); + } + } + } + } + return mem; +} + +void* dlrealloc_in_place(void* oldmem, size_t bytes) { + void* mem = 0; + if (oldmem != 0) { + if (bytes >= MAX_REQUEST) { + MALLOC_FAILURE_ACTION; + } + else { + size_t nb = request2size(bytes); + mchunkptr oldp = mem2chunk(oldmem); +#if ! FOOTERS + mstate m = gm; +#else /* FOOTERS */ + mstate m = get_mstate_for(oldp); + if (!ok_magic(m)) { + USAGE_ERROR_ACTION(m, oldmem); + return 0; + } +#endif /* FOOTERS */ + if (!PREACTION(m)) { + mchunkptr newp = try_realloc_chunk(m, oldp, nb, 0); + POSTACTION(m); + if (newp == oldp) { + check_inuse_chunk(m, newp); + mem = oldmem; + } + } + } + } + return mem; +} + +void* dlmemalign(size_t alignment, size_t bytes) { + if (alignment <= MALLOC_ALIGNMENT) { + return dlmalloc(bytes); + } + return internal_memalign(gm, alignment, bytes); +} + +int dlposix_memalign(void** pp, size_t alignment, size_t bytes) { + void* mem = 0; + if (alignment == MALLOC_ALIGNMENT) + mem = dlmalloc(bytes); + else { + size_t d = alignment / sizeof(void*); + size_t r = alignment % sizeof(void*); + if (r != 0 || d == 0 || (d & (d-SIZE_T_ONE)) != 0) + return EINVAL; + else if (bytes <= MAX_REQUEST - alignment) { + if (alignment < MIN_CHUNK_SIZE) + alignment = MIN_CHUNK_SIZE; + mem = internal_memalign(gm, alignment, bytes); + } + } + if (mem == 0) + return ENOMEM; + else { + *pp = mem; + return 0; + } +} + +void* dlvalloc(size_t bytes) { + size_t pagesz; + ensure_initialization(); + pagesz = mparams.page_size; + return dlmemalign(pagesz, bytes); +} + +void* dlpvalloc(size_t bytes) { + size_t pagesz; + ensure_initialization(); + pagesz = mparams.page_size; + return dlmemalign(pagesz, (bytes + pagesz - SIZE_T_ONE) & ~(pagesz - SIZE_T_ONE)); +} + +void** dlindependent_calloc(size_t n_elements, size_t elem_size, + void* chunks[]) { + size_t sz = elem_size; /* serves as 1-element array */ + return ialloc(gm, n_elements, &sz, 3, chunks); +} + +void** dlindependent_comalloc(size_t n_elements, size_t sizes[], + void* chunks[]) { + return ialloc(gm, n_elements, sizes, 0, chunks); +} + +size_t dlbulk_free(void* array[], size_t nelem) { + return internal_bulk_free(gm, array, nelem); +} + +#if MALLOC_INSPECT_ALL +void dlmalloc_inspect_all(void(*handler)(void *start, + void *end, + size_t used_bytes, + void* callback_arg), + void* arg) { + ensure_initialization(); + if (!PREACTION(gm)) { + internal_inspect_all(gm, handler, arg); + POSTACTION(gm); + } +} +#endif /* MALLOC_INSPECT_ALL */ + +int dlmalloc_trim(size_t pad) { + int result = 0; + ensure_initialization(); + if (!PREACTION(gm)) { + result = sys_trim(gm, pad); + POSTACTION(gm); + } + return result; +} + +size_t dlmalloc_footprint(void) { + return gm->footprint; +} + +size_t dlmalloc_max_footprint(void) { + return gm->max_footprint; +} + +size_t dlmalloc_footprint_limit(void) { + size_t maf = gm->footprint_limit; + return maf == 0 ? MAX_SIZE_T : maf; +} + +size_t dlmalloc_set_footprint_limit(size_t bytes) { + size_t result; /* invert sense of 0 */ + if (bytes == 0) + result = granularity_align(1); /* Use minimal size */ + if (bytes == MAX_SIZE_T) + result = 0; /* disable */ + else + result = granularity_align(bytes); + return gm->footprint_limit = result; +} + +#if !NO_MALLINFO +struct mallinfo dlmallinfo(void) { + return internal_mallinfo(gm); +} +#endif /* NO_MALLINFO */ + +#if !NO_MALLOC_STATS +void dlmalloc_stats() { + internal_malloc_stats(gm); +} +#endif /* NO_MALLOC_STATS */ + +int dlmallopt(int param_number, int value) { + return change_mparam(param_number, value); +} + +size_t dlmalloc_usable_size(void* mem) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); + if (is_inuse(p)) + return chunksize(p) - overhead_for(p); + } + return 0; +} + +#endif /* !ONLY_MSPACES */ + +/* ----------------------------- user mspaces ---------------------------- */ + +#if MSPACES + +static mstate init_user_mstate(char* tbase, size_t tsize) { + size_t msize = pad_request(sizeof(struct malloc_state)); + mchunkptr mn; + mchunkptr msp = align_as_chunk(tbase); + mstate m = (mstate)(chunk2mem(msp)); + memset(m, 0, msize); + (void)INITIAL_LOCK(&m->mutex); + msp->head = (msize|INUSE_BITS); + m->seg.base = m->least_addr = tbase; + m->seg.size = m->footprint = m->max_footprint = tsize; + m->magic = mparams.magic; + m->release_checks = MAX_RELEASE_CHECK_RATE; + m->mflags = mparams.default_mflags; + m->extp = 0; + m->exts = 0; + disable_contiguous(m); + init_bins(m); + mn = next_chunk(mem2chunk(m)); + init_top(m, mn, (size_t)((tbase + tsize) - (char*)mn) - TOP_FOOT_SIZE); + check_top_chunk(m, m->top); + return m; +} + +mspace create_mspace(size_t capacity, int locked) { + mstate m = 0; + size_t msize; + ensure_initialization(); + msize = pad_request(sizeof(struct malloc_state)); + if (capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) { + size_t rs = ((capacity == 0)? mparams.granularity : + (capacity + TOP_FOOT_SIZE + msize)); + size_t tsize = granularity_align(rs); + char* tbase = (char*)(CALL_MMAP(tsize)); + if (tbase != CMFAIL) { + m = init_user_mstate(tbase, tsize); + m->seg.sflags = USE_MMAP_BIT; + set_lock(m, locked); + } + } + return (mspace)m; +} + +mspace create_mspace_with_base(void* base, size_t capacity, int locked) { + mstate m = 0; + size_t msize; + ensure_initialization(); + msize = pad_request(sizeof(struct malloc_state)); + if (capacity > msize + TOP_FOOT_SIZE && + capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) { + m = init_user_mstate((char*)base, capacity); + m->seg.sflags = EXTERN_BIT; + set_lock(m, locked); + } + return (mspace)m; +} + +int mspace_track_large_chunks(mspace msp, int enable) { + int ret = 0; + mstate ms = (mstate)msp; + if (!PREACTION(ms)) { + if (!use_mmap(ms)) { + ret = 1; + } + if (!enable) { + enable_mmap(ms); + } else { + disable_mmap(ms); + } + POSTACTION(ms); + } + return ret; +} + +size_t destroy_mspace(mspace msp) { + size_t freed = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + msegmentptr sp = &ms->seg; + (void)DESTROY_LOCK(&ms->mutex); /* destroy before unmapped */ + while (sp != 0) { + char* base = sp->base; + size_t size = sp->size; + flag_t flag = sp->sflags; + (void)base; /* placate people compiling -Wunused-variable */ + sp = sp->next; + if ((flag & USE_MMAP_BIT) && !(flag & EXTERN_BIT) && + CALL_MUNMAP(base, size) == 0) + freed += size; + } + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return freed; +} + +/* + mspace versions of routines are near-clones of the global + versions. This is not so nice but better than the alternatives. +*/ + +void* mspace_malloc(mspace msp, size_t bytes) { + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + if (!PREACTION(ms)) { + void* mem; + size_t nb; + if (bytes <= MAX_SMALL_REQUEST) { + bindex_t idx; + binmap_t smallbits; + nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes); + idx = small_index(nb); + smallbits = ms->smallmap >> idx; + + if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */ + mchunkptr b, p; + idx += ~smallbits & 1; /* Uses next bin if idx empty */ + b = smallbin_at(ms, idx); + p = b->fd; + assert(chunksize(p) == small_index2size(idx)); + unlink_first_small_chunk(ms, b, p, idx); + set_inuse_and_pinuse(ms, p, small_index2size(idx)); + mem = chunk2mem(p); + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + + else if (nb > ms->dvsize) { + if (smallbits != 0) { /* Use chunk in next nonempty smallbin */ + mchunkptr b, p, r; + size_t rsize; + bindex_t i; + binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx)); + binmap_t leastbit = least_bit(leftbits); + compute_bit2idx(leastbit, i); + b = smallbin_at(ms, i); + p = b->fd; + assert(chunksize(p) == small_index2size(i)); + unlink_first_small_chunk(ms, b, p, i); + rsize = small_index2size(i) - nb; + /* Fit here cannot be remainderless if 4byte sizes */ + if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(ms, p, small_index2size(i)); + else { + set_size_and_pinuse_of_inuse_chunk(ms, p, nb); + r = chunk_plus_offset(p, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + replace_dv(ms, r, rsize); + } + mem = chunk2mem(p); + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + + else if (ms->treemap != 0 && (mem = tmalloc_small(ms, nb)) != 0) { + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + } + } + else if (bytes >= MAX_REQUEST) + nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */ + else { + nb = pad_request(bytes); + if (ms->treemap != 0 && (mem = tmalloc_large(ms, nb)) != 0) { + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + } + + if (nb <= ms->dvsize) { + size_t rsize = ms->dvsize - nb; + mchunkptr p = ms->dv; + if (rsize >= MIN_CHUNK_SIZE) { /* split dv */ + mchunkptr r = ms->dv = chunk_plus_offset(p, nb); + ms->dvsize = rsize; + set_size_and_pinuse_of_free_chunk(r, rsize); + set_size_and_pinuse_of_inuse_chunk(ms, p, nb); + } + else { /* exhaust dv */ + size_t dvs = ms->dvsize; + ms->dvsize = 0; + ms->dv = 0; + set_inuse_and_pinuse(ms, p, dvs); + } + mem = chunk2mem(p); + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + + else if (nb < ms->topsize) { /* Split top */ + size_t rsize = ms->topsize -= nb; + mchunkptr p = ms->top; + mchunkptr r = ms->top = chunk_plus_offset(p, nb); + r->head = rsize | PINUSE_BIT; + set_size_and_pinuse_of_inuse_chunk(ms, p, nb); + mem = chunk2mem(p); + check_top_chunk(ms, ms->top); + check_malloced_chunk(ms, mem, nb); + goto postaction; + } + + mem = sys_alloc(ms, nb); + + postaction: + POSTACTION(ms); + return mem; + } + + return 0; +} + +void mspace_free(mspace msp, void* mem) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); +#if FOOTERS + mstate fm = get_mstate_for(p); + (void)msp; /* placate people compiling -Wunused */ +#else /* FOOTERS */ + mstate fm = (mstate)msp; +#endif /* FOOTERS */ + if (!ok_magic(fm)) { + USAGE_ERROR_ACTION(fm, p); + return; + } + if (!PREACTION(fm)) { + check_inuse_chunk(fm, p); + if (RTCHECK(ok_address(fm, p) && ok_inuse(p))) { + size_t psize = chunksize(p); + mchunkptr next = chunk_plus_offset(p, psize); + if (!pinuse(p)) { + size_t prevsize = p->prev_foot; + if (is_mmapped(p)) { + psize += prevsize + MMAP_FOOT_PAD; + if (CALL_MUNMAP((char*)p - prevsize, psize) == 0) + fm->footprint -= psize; + goto postaction; + } + else { + mchunkptr prev = chunk_minus_offset(p, prevsize); + psize += prevsize; + p = prev; + if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */ + if (p != fm->dv) { + unlink_chunk(fm, p, prevsize); + } + else if ((next->head & INUSE_BITS) == INUSE_BITS) { + fm->dvsize = psize; + set_free_with_pinuse(p, psize, next); + goto postaction; + } + } + else + goto erroraction; + } + } + + if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) { + if (!cinuse(next)) { /* consolidate forward */ + if (next == fm->top) { + size_t tsize = fm->topsize += psize; + fm->top = p; + p->head = tsize | PINUSE_BIT; + if (p == fm->dv) { + fm->dv = 0; + fm->dvsize = 0; + } + if (should_trim(fm, tsize)) + sys_trim(fm, 0); + goto postaction; + } + else if (next == fm->dv) { + size_t dsize = fm->dvsize += psize; + fm->dv = p; + set_size_and_pinuse_of_free_chunk(p, dsize); + goto postaction; + } + else { + size_t nsize = chunksize(next); + psize += nsize; + unlink_chunk(fm, next, nsize); + set_size_and_pinuse_of_free_chunk(p, psize); + if (p == fm->dv) { + fm->dvsize = psize; + goto postaction; + } + } + } + else + set_free_with_pinuse(p, psize, next); + + if (is_small(psize)) { + insert_small_chunk(fm, p, psize); + check_free_chunk(fm, p); + } + else { + tchunkptr tp = (tchunkptr)p; + insert_large_chunk(fm, tp, psize); + check_free_chunk(fm, p); + if (--fm->release_checks == 0) + release_unused_segments(fm); + } + goto postaction; + } + } + erroraction: + USAGE_ERROR_ACTION(fm, p); + postaction: + POSTACTION(fm); + } + } +} + +void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size) { + void* mem; + size_t req = 0; + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + if (n_elements != 0) { + req = n_elements * elem_size; + if (((n_elements | elem_size) & ~(size_t)0xffff) && + (req / n_elements != elem_size)) + req = MAX_SIZE_T; /* force downstream failure on overflow */ + } + mem = internal_malloc(ms, req); + if (mem != 0 && calloc_must_clear(mem2chunk(mem))) + memset(mem, 0, req); + return mem; +} + +void* mspace_realloc(mspace msp, void* oldmem, size_t bytes) { + void* mem = 0; + if (oldmem == 0) { + mem = mspace_malloc(msp, bytes); + } + else if (bytes >= MAX_REQUEST) { + MALLOC_FAILURE_ACTION; + } +#ifdef REALLOC_ZERO_BYTES_FREES + else if (bytes == 0) { + mspace_free(msp, oldmem); + } +#endif /* REALLOC_ZERO_BYTES_FREES */ + else { + size_t nb = request2size(bytes); + mchunkptr oldp = mem2chunk(oldmem); +#if ! FOOTERS + mstate m = (mstate)msp; +#else /* FOOTERS */ + mstate m = get_mstate_for(oldp); + if (!ok_magic(m)) { + USAGE_ERROR_ACTION(m, oldmem); + return 0; + } +#endif /* FOOTERS */ + if (!PREACTION(m)) { + mchunkptr newp = try_realloc_chunk(m, oldp, nb, 1); + POSTACTION(m); + if (newp != 0) { + check_inuse_chunk(m, newp); + mem = chunk2mem(newp); + } + else { + mem = mspace_malloc(m, bytes); + if (mem != 0) { + size_t oc = chunksize(oldp) - overhead_for(oldp); + memcpy(mem, oldmem, (oc < bytes)? oc : bytes); + mspace_free(m, oldmem); + } + } + } + } + return mem; +} + +void* mspace_realloc_in_place(mspace msp, void* oldmem, size_t bytes) { + void* mem = 0; + if (oldmem != 0) { + if (bytes >= MAX_REQUEST) { + MALLOC_FAILURE_ACTION; + } + else { + size_t nb = request2size(bytes); + mchunkptr oldp = mem2chunk(oldmem); +#if ! FOOTERS + mstate m = (mstate)msp; +#else /* FOOTERS */ + mstate m = get_mstate_for(oldp); + (void)msp; /* placate people compiling -Wunused */ + if (!ok_magic(m)) { + USAGE_ERROR_ACTION(m, oldmem); + return 0; + } +#endif /* FOOTERS */ + if (!PREACTION(m)) { + mchunkptr newp = try_realloc_chunk(m, oldp, nb, 0); + POSTACTION(m); + if (newp == oldp) { + check_inuse_chunk(m, newp); + mem = oldmem; + } + } + } + } + return mem; +} + +void* mspace_memalign(mspace msp, size_t alignment, size_t bytes) { + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + if (alignment <= MALLOC_ALIGNMENT) + return mspace_malloc(msp, bytes); + return internal_memalign(ms, alignment, bytes); +} + +void** mspace_independent_calloc(mspace msp, size_t n_elements, + size_t elem_size, void* chunks[]) { + size_t sz = elem_size; /* serves as 1-element array */ + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + return ialloc(ms, n_elements, &sz, 3, chunks); +} + +void** mspace_independent_comalloc(mspace msp, size_t n_elements, + size_t sizes[], void* chunks[]) { + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } + return ialloc(ms, n_elements, sizes, 0, chunks); +} + +size_t mspace_bulk_free(mspace msp, void* array[], size_t nelem) { + return internal_bulk_free((mstate)msp, array, nelem); +} + +#if MALLOC_INSPECT_ALL +void mspace_inspect_all(mspace msp, + void(*handler)(void *start, + void *end, + size_t used_bytes, + void* callback_arg), + void* arg) { + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + if (!PREACTION(ms)) { + internal_inspect_all(ms, handler, arg); + POSTACTION(ms); + } + } + else { + USAGE_ERROR_ACTION(ms,ms); + } +} +#endif /* MALLOC_INSPECT_ALL */ + +int mspace_trim(mspace msp, size_t pad) { + int result = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + if (!PREACTION(ms)) { + result = sys_trim(ms, pad); + POSTACTION(ms); + } + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return result; +} + +#if !NO_MALLOC_STATS +void mspace_malloc_stats(mspace msp) { + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + internal_malloc_stats(ms); + } + else { + USAGE_ERROR_ACTION(ms,ms); + } +} +#endif /* NO_MALLOC_STATS */ + +size_t mspace_footprint(mspace msp) { + size_t result = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + result = ms->footprint; + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return result; +} + +size_t mspace_max_footprint(mspace msp) { + size_t result = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + result = ms->max_footprint; + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return result; +} + +size_t mspace_footprint_limit(mspace msp) { + size_t result = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + size_t maf = ms->footprint_limit; + result = (maf == 0) ? MAX_SIZE_T : maf; + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return result; +} + +size_t mspace_set_footprint_limit(mspace msp, size_t bytes) { + size_t result = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + if (bytes == 0) + result = granularity_align(1); /* Use minimal size */ + if (bytes == MAX_SIZE_T) + result = 0; /* disable */ + else + result = granularity_align(bytes); + ms->footprint_limit = result; + } + else { + USAGE_ERROR_ACTION(ms,ms); + } + return result; +} + +#if !NO_MALLINFO +struct mallinfo mspace_mallinfo(mspace msp) { + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { + USAGE_ERROR_ACTION(ms,ms); + } + return internal_mallinfo(ms); +} +#endif /* NO_MALLINFO */ + +size_t mspace_usable_size(const void* mem) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); + if (is_inuse(p)) + return chunksize(p) - overhead_for(p); + } + return 0; +} + +int mspace_mallopt(int param_number, int value) { + return change_mparam(param_number, value); +} + +#endif /* MSPACES */ + + +/* -------------------- Alternative MORECORE functions ------------------- */ + +/* + Guidelines for creating a custom version of MORECORE: + + * For best performance, MORECORE should allocate in multiples of pagesize. + * MORECORE may allocate more memory than requested. (Or even less, + but this will usually result in a malloc failure.) + * MORECORE must not allocate memory when given argument zero, but + instead return one past the end address of memory from previous + nonzero call. + * For best performance, consecutive calls to MORECORE with positive + arguments should return increasing addresses, indicating that + space has been contiguously extended. + * Even though consecutive calls to MORECORE need not return contiguous + addresses, it must be OK for malloc'ed chunks to span multiple + regions in those cases where they do happen to be contiguous. + * MORECORE need not handle negative arguments -- it may instead + just return MFAIL when given negative arguments. + Negative arguments are always multiples of pagesize. MORECORE + must not misinterpret negative args as large positive unsigned + args. You can suppress all such calls from even occurring by defining + MORECORE_CANNOT_TRIM, + + As an example alternative MORECORE, here is a custom allocator + kindly contributed for pre-OSX macOS. It uses virtually but not + necessarily physically contiguous non-paged memory (locked in, + present and won't get swapped out). You can use it by uncommenting + this section, adding some #includes, and setting up the appropriate + defines above: + + #define MORECORE osMoreCore + + There is also a shutdown routine that should somehow be called for + cleanup upon program exit. + + #define MAX_POOL_ENTRIES 100 + #define MINIMUM_MORECORE_SIZE (64 * 1024U) + static int next_os_pool; + void *our_os_pools[MAX_POOL_ENTRIES]; + + void *osMoreCore(int size) + { + void *ptr = 0; + static void *sbrk_top = 0; + + if (size > 0) + { + if (size < MINIMUM_MORECORE_SIZE) + size = MINIMUM_MORECORE_SIZE; + if (CurrentExecutionLevel() == kTaskLevel) + ptr = PoolAllocateResident(size + RM_PAGE_SIZE, 0); + if (ptr == 0) + { + return (void *) MFAIL; + } + // save ptrs so they can be freed during cleanup + our_os_pools[next_os_pool] = ptr; + next_os_pool++; + ptr = (void *) ((((size_t) ptr) + RM_PAGE_MASK) & ~RM_PAGE_MASK); + sbrk_top = (char *) ptr + size; + return ptr; + } + else if (size < 0) + { + // we don't currently support shrink behavior + return (void *) MFAIL; + } + else + { + return sbrk_top; + } + } + + // cleanup any allocated memory pools + // called as last thing before shutting down driver + + void osCleanupMem(void) + { + void **ptr; + + for (ptr = our_os_pools; ptr < &our_os_pools[MAX_POOL_ENTRIES]; ptr++) + if (*ptr) + { + PoolDeallocate(*ptr); + *ptr = 0; + } + } + +*/ + + +/* ----------------------------------------------------------------------- +History: + v2.8.6 Wed Aug 29 06:57:58 2012 Doug Lea + * fix bad comparison in dlposix_memalign + * don't reuse adjusted asize in sys_alloc + * add LOCK_AT_FORK -- thanks to Kirill Artamonov for the suggestion + * reduce compiler warnings -- thanks to all who reported/suggested these + + v2.8.5 Sun May 22 10:26:02 2011 Doug Lea (dl at gee) + * Always perform unlink checks unless INSECURE + * Add posix_memalign. + * Improve realloc to expand in more cases; expose realloc_in_place. + Thanks to Peter Buhr for the suggestion. + * Add footprint_limit, inspect_all, bulk_free. Thanks + to Barry Hayes and others for the suggestions. + * Internal refactorings to avoid calls while holding locks + * Use non-reentrant locks by default. Thanks to Roland McGrath + for the suggestion. + * Small fixes to mspace_destroy, reset_on_error. + * Various configuration extensions/changes. Thanks + to all who contributed these. + + V2.8.4a Thu Apr 28 14:39:43 2011 (dl at gee.cs.oswego.edu) + * Update Creative Commons URL + + V2.8.4 Wed May 27 09:56:23 2009 Doug Lea (dl at gee) + * Use zeros instead of prev foot for is_mmapped + * Add mspace_track_large_chunks; thanks to Jean Brouwers + * Fix set_inuse in internal_realloc; thanks to Jean Brouwers + * Fix insufficient sys_alloc padding when using 16byte alignment + * Fix bad error check in mspace_footprint + * Adaptations for ptmalloc; thanks to Wolfram Gloger. + * Reentrant spin locks; thanks to Earl Chew and others + * Win32 improvements; thanks to Niall Douglas and Earl Chew + * Add NO_SEGMENT_TRAVERSAL and MAX_RELEASE_CHECK_RATE options + * Extension hook in malloc_state + * Various small adjustments to reduce warnings on some compilers + * Various configuration extensions/changes for more platforms. Thanks + to all who contributed these. + + V2.8.3 Thu Sep 22 11:16:32 2005 Doug Lea (dl at gee) + * Add max_footprint functions + * Ensure all appropriate literals are size_t + * Fix conditional compilation problem for some #define settings + * Avoid concatenating segments with the one provided + in create_mspace_with_base + * Rename some variables to avoid compiler shadowing warnings + * Use explicit lock initialization. + * Better handling of sbrk interference. + * Simplify and fix segment insertion, trimming and mspace_destroy + * Reinstate REALLOC_ZERO_BYTES_FREES option from 2.7.x + * Thanks especially to Dennis Flanagan for help on these. + + V2.8.2 Sun Jun 12 16:01:10 2005 Doug Lea (dl at gee) + * Fix memalign brace error. + + V2.8.1 Wed Jun 8 16:11:46 2005 Doug Lea (dl at gee) + * Fix improper #endif nesting in C++ + * Add explicit casts needed for C++ + + V2.8.0 Mon May 30 14:09:02 2005 Doug Lea (dl at gee) + * Use trees for large bins + * Support mspaces + * Use segments to unify sbrk-based and mmap-based system allocation, + removing need for emulation on most platforms without sbrk. + * Default safety checks + * Optional footer checks. Thanks to William Robertson for the idea. + * Internal code refactoring + * Incorporate suggestions and platform-specific changes. + Thanks to Dennis Flanagan, Colin Plumb, Niall Douglas, + Aaron Bachmann, Emery Berger, and others. + * Speed up non-fastbin processing enough to remove fastbins. + * Remove useless cfree() to avoid conflicts with other apps. + * Remove internal memcpy, memset. Compilers handle builtins better. + * Remove some options that no one ever used and rename others. + + V2.7.2 Sat Aug 17 09:07:30 2002 Doug Lea (dl at gee) + * Fix malloc_state bitmap array misdeclaration + + V2.7.1 Thu Jul 25 10:58:03 2002 Doug Lea (dl at gee) + * Allow tuning of FIRST_SORTED_BIN_SIZE + * Use PTR_UINT as type for all ptr->int casts. Thanks to John Belmonte. + * Better detection and support for non-contiguousness of MORECORE. + Thanks to Andreas Mueller, Conal Walsh, and Wolfram Gloger + * Bypass most of malloc if no frees. Thanks To Emery Berger. + * Fix freeing of old top non-contiguous chunk im sysmalloc. + * Raised default trim and map thresholds to 256K. + * Fix mmap-related #defines. Thanks to Lubos Lunak. + * Fix copy macros; added LACKS_FCNTL_H. Thanks to Neal Walfield. + * Branch-free bin calculation + * Default trim and mmap thresholds now 256K. + + V2.7.0 Sun Mar 11 14:14:06 2001 Doug Lea (dl at gee) + * Introduce independent_comalloc and independent_calloc. + Thanks to Michael Pachos for motivation and help. + * Make optional .h file available + * Allow > 2GB requests on 32bit systems. + * new WIN32 sbrk, mmap, munmap, lock code from . + Thanks also to Andreas Mueller , + and Anonymous. + * Allow override of MALLOC_ALIGNMENT (Thanks to Ruud Waij for + helping test this.) + * memalign: check alignment arg + * realloc: don't try to shift chunks backwards, since this + leads to more fragmentation in some programs and doesn't + seem to help in any others. + * Collect all cases in malloc requiring system memory into sysmalloc + * Use mmap as backup to sbrk + * Place all internal state in malloc_state + * Introduce fastbins (although similar to 2.5.1) + * Many minor tunings and cosmetic improvements + * Introduce USE_PUBLIC_MALLOC_WRAPPERS, USE_MALLOC_LOCK + * Introduce MALLOC_FAILURE_ACTION, MORECORE_CONTIGUOUS + Thanks to Tony E. Bennett and others. + * Include errno.h to support default failure action. + + V2.6.6 Sun Dec 5 07:42:19 1999 Doug Lea (dl at gee) + * return null for negative arguments + * Added Several WIN32 cleanups from Martin C. Fong + * Add 'LACKS_SYS_PARAM_H' for those systems without 'sys/param.h' + (e.g. WIN32 platforms) + * Cleanup header file inclusion for WIN32 platforms + * Cleanup code to avoid Microsoft Visual C++ compiler complaints + * Add 'USE_DL_PREFIX' to quickly allow co-existence with existing + memory allocation routines + * Set 'malloc_getpagesize' for WIN32 platforms (needs more work) + * Use 'assert' rather than 'ASSERT' in WIN32 code to conform to + usage of 'assert' in non-WIN32 code + * Improve WIN32 'sbrk()' emulation's 'findRegion()' routine to + avoid infinite loop + * Always call 'fREe()' rather than 'free()' + + V2.6.5 Wed Jun 17 15:57:31 1998 Doug Lea (dl at gee) + * Fixed ordering problem with boundary-stamping + + V2.6.3 Sun May 19 08:17:58 1996 Doug Lea (dl at gee) + * Added pvalloc, as recommended by H.J. Liu + * Added 64bit pointer support mainly from Wolfram Gloger + * Added anonymously donated WIN32 sbrk emulation + * Malloc, calloc, getpagesize: add optimizations from Raymond Nijssen + * malloc_extend_top: fix mask error that caused wastage after + foreign sbrks + * Add linux mremap support code from HJ Liu + + V2.6.2 Tue Dec 5 06:52:55 1995 Doug Lea (dl at gee) + * Integrated most documentation with the code. + * Add support for mmap, with help from + Wolfram Gloger (Gloger@lrz.uni-muenchen.de). + * Use last_remainder in more cases. + * Pack bins using idea from colin@nyx10.cs.du.edu + * Use ordered bins instead of best-fit threshhold + * Eliminate block-local decls to simplify tracing and debugging. + * Support another case of realloc via move into top + * Fix error occuring when initial sbrk_base not word-aligned. + * Rely on page size for units instead of SBRK_UNIT to + avoid surprises about sbrk alignment conventions. + * Add mallinfo, mallopt. Thanks to Raymond Nijssen + (raymond@es.ele.tue.nl) for the suggestion. + * Add `pad' argument to malloc_trim and top_pad mallopt parameter. + * More precautions for cases where other routines call sbrk, + courtesy of Wolfram Gloger (Gloger@lrz.uni-muenchen.de). + * Added macros etc., allowing use in linux libc from + H.J. Lu (hjl@gnu.ai.mit.edu) + * Inverted this history list + + V2.6.1 Sat Dec 2 14:10:57 1995 Doug Lea (dl at gee) + * Re-tuned and fixed to behave more nicely with V2.6.0 changes. + * Removed all preallocation code since under current scheme + the work required to undo bad preallocations exceeds + the work saved in good cases for most test programs. + * No longer use return list or unconsolidated bins since + no scheme using them consistently outperforms those that don't + given above changes. + * Use best fit for very large chunks to prevent some worst-cases. + * Added some support for debugging + + V2.6.0 Sat Nov 4 07:05:23 1995 Doug Lea (dl at gee) + * Removed footers when chunks are in use. Thanks to + Paul Wilson (wilson@cs.texas.edu) for the suggestion. + + V2.5.4 Wed Nov 1 07:54:51 1995 Doug Lea (dl at gee) + * Added malloc_trim, with help from Wolfram Gloger + (wmglo@Dent.MED.Uni-Muenchen.DE). + + V2.5.3 Tue Apr 26 10:16:01 1994 Doug Lea (dl at g) + + V2.5.2 Tue Apr 5 16:20:40 1994 Doug Lea (dl at g) + * realloc: try to expand in both directions + * malloc: swap order of clean-bin strategy; + * realloc: only conditionally expand backwards + * Try not to scavenge used bins + * Use bin counts as a guide to preallocation + * Occasionally bin return list chunks in first scan + * Add a few optimizations from colin@nyx10.cs.du.edu + + V2.5.1 Sat Aug 14 15:40:43 1993 Doug Lea (dl at g) + * faster bin computation & slightly different binning + * merged all consolidations to one part of malloc proper + (eliminating old malloc_find_space & malloc_clean_bin) + * Scan 2 returns chunks (not just 1) + * Propagate failure in realloc if malloc returns 0 + * Add stuff to allow compilation on non-ANSI compilers + from kpv@research.att.com + + V2.5 Sat Aug 7 07:41:59 1993 Doug Lea (dl at g.oswego.edu) + * removed potential for odd address access in prev_chunk + * removed dependency on getpagesize.h + * misc cosmetics and a bit more internal documentation + * anticosmetics: mangled names in macros to evade debugger strangeness + * tested on sparc, hp-700, dec-mips, rs6000 + with gcc & native cc (hp, dec only) allowing + Detlefs & Zorn comparison study (in SIGPLAN Notices.) + + Trial version Fri Aug 28 13:14:29 1992 Doug Lea (dl at g.oswego.edu) + * Based loosely on libg++-1.2X malloc. (It retains some of the overall + structure of old version, but most details differ.) + +*/ diff --git a/src/rust/vendor/dlmalloc/src/dlmalloc.rs b/src/rust/vendor/dlmalloc/src/dlmalloc.rs new file mode 100644 index 000000000..2649deb68 --- /dev/null +++ b/src/rust/vendor/dlmalloc/src/dlmalloc.rs @@ -0,0 +1,1888 @@ +// This is a version of dlmalloc.c ported to Rust. You can find the original +// source at ftp://g.oswego.edu/pub/misc/malloc.c +// +// The original source was written by Doug Lea and released to the public domain + +macro_rules! debug_assert { + ($($arg:tt)*) => { + if cfg!(all(feature = "debug", debug_assertions)) { + assert!($($arg)*); + } + }; +} + +macro_rules! debug_assert_eq { + ($($arg:tt)*) => { + if cfg!(all(feature = "debug", debug_assertions)) { + assert_eq!($($arg)*); + } + }; +} + +use core::cmp; +use core::mem; +use core::ptr; + +use crate::Allocator; + +pub struct Dlmalloc { + smallmap: u32, + treemap: u32, + smallbins: [*mut Chunk; (NSMALLBINS + 1) * 2], + treebins: [*mut TreeChunk; NTREEBINS], + dvsize: usize, + topsize: usize, + dv: *mut Chunk, + top: *mut Chunk, + footprint: usize, + max_footprint: usize, + seg: Segment, + trim_check: usize, + least_addr: *mut u8, + release_checks: usize, + system_allocator: A, +} +unsafe impl Send for Dlmalloc {} + +// TODO: document this +const NSMALLBINS: usize = 32; +const NTREEBINS: usize = 32; +const SMALLBIN_SHIFT: usize = 3; +const TREEBIN_SHIFT: usize = 8; + +const NSMALLBINS_U32: u32 = NSMALLBINS as u32; +const NTREEBINS_U32: u32 = NTREEBINS as u32; + +// TODO: runtime configurable? documentation? +const DEFAULT_GRANULARITY: usize = 64 * 1024; +const DEFAULT_TRIM_THRESHOLD: usize = 2 * 1024 * 1024; +const MAX_RELEASE_CHECK_RATE: usize = 4095; + +#[repr(C)] +struct Chunk { + prev_foot: usize, + head: usize, + prev: *mut Chunk, + next: *mut Chunk, +} + +#[repr(C)] +struct TreeChunk { + chunk: Chunk, + child: [*mut TreeChunk; 2], + parent: *mut TreeChunk, + index: u32, +} + +#[repr(C)] +#[derive(Clone, Copy)] +struct Segment { + base: *mut u8, + size: usize, + next: *mut Segment, + flags: u32, +} + +fn align_up(a: usize, alignment: usize) -> usize { + debug_assert!(alignment.is_power_of_two()); + (a + (alignment - 1)) & !(alignment - 1) +} + +fn left_bits(x: u32) -> u32 { + (x << 1) | (!(x << 1)).wrapping_add(1) +} + +fn least_bit(x: u32) -> u32 { + x & (!x + 1) +} + +fn leftshift_for_tree_index(x: u32) -> u32 { + let x = usize::try_from(x).unwrap(); + if x == NTREEBINS - 1 { + 0 + } else { + (mem::size_of::() * 8 - 1 - ((x >> 1) + TREEBIN_SHIFT - 2)) as u32 + } +} + +impl Dlmalloc { + pub const fn new(system_allocator: A) -> Dlmalloc { + Dlmalloc { + smallmap: 0, + treemap: 0, + smallbins: [ptr::null_mut(); (NSMALLBINS + 1) * 2], + treebins: [ptr::null_mut(); NTREEBINS], + dvsize: 0, + topsize: 0, + dv: ptr::null_mut(), + top: ptr::null_mut(), + footprint: 0, + max_footprint: 0, + seg: Segment { + base: ptr::null_mut(), + size: 0, + next: ptr::null_mut(), + flags: 0, + }, + trim_check: 0, + least_addr: ptr::null_mut(), + release_checks: 0, + system_allocator, + } + } +} + +impl Dlmalloc { + // TODO: can we get rid of this? + pub fn malloc_alignment(&self) -> usize { + mem::size_of::() * 2 + } + + // TODO: dox + fn chunk_overhead(&self) -> usize { + mem::size_of::() + } + + fn mmap_chunk_overhead(&self) -> usize { + 2 * mem::size_of::() + } + + // TODO: dox + fn min_large_size(&self) -> usize { + 1 << TREEBIN_SHIFT + } + + // TODO: dox + fn max_small_size(&self) -> usize { + self.min_large_size() - 1 + } + + // TODO: dox + fn max_small_request(&self) -> usize { + self.max_small_size() - (self.malloc_alignment() - 1) - self.chunk_overhead() + } + + // TODO: dox + fn min_chunk_size(&self) -> usize { + align_up(mem::size_of::(), self.malloc_alignment()) + } + + // TODO: dox + fn min_request(&self) -> usize { + self.min_chunk_size() - self.chunk_overhead() - 1 + } + + // TODO: dox + fn max_request(&self) -> usize { + // min_sys_alloc_space: the largest `X` such that + // pad_request(X - 1) -- minus 1, because requests of exactly + // `max_request` will not be honored + // + self.top_foot_size() + // + self.malloc_alignment() + // + DEFAULT_GRANULARITY + // == + // usize::MAX + let min_sys_alloc_space = + ((!0 - (DEFAULT_GRANULARITY + self.top_foot_size() + self.malloc_alignment()) + 1) + & !self.malloc_alignment()) + - self.chunk_overhead() + + 1; + + cmp::min((!self.min_chunk_size() + 1) << 2, min_sys_alloc_space) + } + + fn pad_request(&self, amt: usize) -> usize { + align_up(amt + self.chunk_overhead(), self.malloc_alignment()) + } + + fn small_index(&self, size: usize) -> u32 { + (size >> SMALLBIN_SHIFT) as u32 + } + + fn small_index2size(&self, idx: u32) -> usize { + usize::try_from(idx).unwrap() << SMALLBIN_SHIFT + } + + fn is_small(&self, s: usize) -> bool { + s >> SMALLBIN_SHIFT < NSMALLBINS + } + + fn is_aligned(&self, a: usize) -> bool { + a & (self.malloc_alignment() - 1) == 0 + } + + fn align_offset(&self, addr: *mut u8) -> usize { + addr.align_offset(self.malloc_alignment()) + } + + fn align_offset_usize(&self, addr: usize) -> usize { + align_up(addr, self.malloc_alignment()) - addr + } + + fn top_foot_size(&self) -> usize { + self.align_offset_usize(Chunk::mem_offset()) + + self.pad_request(mem::size_of::()) + + self.min_chunk_size() + } + + fn mmap_foot_pad(&self) -> usize { + 4 * mem::size_of::() + } + + fn align_as_chunk(&self, ptr: *mut u8) -> *mut Chunk { + unsafe { + let chunk = Chunk::to_mem(ptr.cast()); + ptr.add(self.align_offset(chunk)).cast() + } + } + + fn request2size(&self, req: usize) -> usize { + if req < self.min_request() { + self.min_chunk_size() + } else { + self.pad_request(req) + } + } + + unsafe fn overhead_for(&self, p: *mut Chunk) -> usize { + if Chunk::mmapped(p) { + self.mmap_chunk_overhead() + } else { + self.chunk_overhead() + } + } + + pub unsafe fn calloc_must_clear(&self, ptr: *mut u8) -> bool { + !self.system_allocator.allocates_zeros() || !Chunk::mmapped(Chunk::from_mem(ptr)) + } + + pub unsafe fn malloc(&mut self, size: usize) -> *mut u8 { + self.check_malloc_state(); + + let nb; + if size <= self.max_small_request() { + nb = self.request2size(size); + let mut idx = self.small_index(nb); + let smallbits = self.smallmap >> idx; + + // Check the bin for `idx` (the lowest bit) but also check the next + // bin up to use that to satisfy our request, if needed. + if smallbits & 0b11 != 0 { + // If our the lowest bit, our `idx`, is unset then bump up the + // index as we'll be using the next bucket up. + idx += !smallbits & 1; + + let b = self.smallbin_at(idx); + let p = (*b).prev; + self.unlink_first_small_chunk(b, p, idx); + let smallsize = self.small_index2size(idx); + Chunk::set_inuse_and_pinuse(p, smallsize); + let ret = Chunk::to_mem(p); + self.check_malloced_chunk(ret, nb); + return ret; + } + + if nb > self.dvsize { + // If there's some other bin with some memory, then we just use + // the next smallest bin + if smallbits != 0 { + let leftbits = (smallbits << idx) & left_bits(1 << idx); + let leastbit = least_bit(leftbits); + let i = leastbit.trailing_zeros(); + let b = self.smallbin_at(i); + let p = (*b).prev; + debug_assert_eq!(Chunk::size(p), self.small_index2size(i)); + self.unlink_first_small_chunk(b, p, i); + let smallsize = self.small_index2size(i); + let rsize = smallsize - nb; + if mem::size_of::() != 4 && rsize < self.min_chunk_size() { + Chunk::set_inuse_and_pinuse(p, smallsize); + } else { + Chunk::set_size_and_pinuse_of_inuse_chunk(p, nb); + let r = Chunk::plus_offset(p, nb); + Chunk::set_size_and_pinuse_of_free_chunk(r, rsize); + self.replace_dv(r, rsize); + } + let ret = Chunk::to_mem(p); + self.check_malloced_chunk(ret, nb); + return ret; + } else if self.treemap != 0 { + let mem = self.tmalloc_small(nb); + if !mem.is_null() { + self.check_malloced_chunk(mem, nb); + self.check_malloc_state(); + return mem; + } + } + } + } else if size >= self.max_request() { + // TODO: translate this to unsupported + return ptr::null_mut(); + } else { + nb = self.pad_request(size); + if self.treemap != 0 { + let mem = self.tmalloc_large(nb); + if !mem.is_null() { + self.check_malloced_chunk(mem, nb); + self.check_malloc_state(); + return mem; + } + } + } + + // use the `dv` node if we can, splitting it if necessary or otherwise + // exhausting the entire chunk + if nb <= self.dvsize { + let rsize = self.dvsize - nb; + let p = self.dv; + if rsize >= self.min_chunk_size() { + self.dv = Chunk::plus_offset(p, nb); + self.dvsize = rsize; + let r = self.dv; + Chunk::set_size_and_pinuse_of_free_chunk(r, rsize); + Chunk::set_size_and_pinuse_of_inuse_chunk(p, nb); + } else { + let dvs = self.dvsize; + self.dvsize = 0; + self.dv = ptr::null_mut(); + Chunk::set_inuse_and_pinuse(p, dvs); + } + let ret = Chunk::to_mem(p); + self.check_malloced_chunk(ret, nb); + self.check_malloc_state(); + return ret; + } + + // Split the top node if we can + if nb < self.topsize { + self.topsize -= nb; + let rsize = self.topsize; + let p = self.top; + self.top = Chunk::plus_offset(p, nb); + let r = self.top; + (*r).head = rsize | PINUSE; + Chunk::set_size_and_pinuse_of_inuse_chunk(p, nb); + self.check_top_chunk(self.top); + let ret = Chunk::to_mem(p); + self.check_malloced_chunk(ret, nb); + self.check_malloc_state(); + return ret; + } + + self.sys_alloc(nb) + } + + /// allocates system resources + unsafe fn sys_alloc(&mut self, size: usize) -> *mut u8 { + self.check_malloc_state(); + // keep in sync with max_request + let asize = align_up( + size + self.top_foot_size() + self.malloc_alignment(), + DEFAULT_GRANULARITY, + ); + + let (tbase, tsize, flags) = self.system_allocator.alloc(asize); + if tbase.is_null() { + return tbase; + } + + self.footprint += tsize; + self.max_footprint = cmp::max(self.max_footprint, self.footprint); + + if self.top.is_null() { + if self.least_addr.is_null() || tbase < self.least_addr { + self.least_addr = tbase; + } + self.seg.base = tbase; + self.seg.size = tsize; + self.seg.flags = flags; + self.release_checks = MAX_RELEASE_CHECK_RATE; + self.init_bins(); + let tsize = tsize - self.top_foot_size(); + self.init_top(tbase.cast(), tsize); + // let mn = Chunk::next(Chunk::from_mem(self as *mut _ as *mut u8)); + // let top_foot_size = self.top_foot_size(); + // self.init_top(mn, tbase as usize + tsize - mn as usize - top_foot_size); + } else { + let mut sp: *mut Segment = &mut self.seg; + while !sp.is_null() && tbase != Segment::top(sp) { + sp = (*sp).next; + } + if !sp.is_null() + && !Segment::is_extern(sp) + && Segment::sys_flags(sp) == flags + && Segment::holds(sp, self.top.cast()) + { + (*sp).size += tsize; + let ptr = self.top; + let size = self.topsize + tsize; + self.init_top(ptr, size); + } else { + self.least_addr = cmp::min(tbase, self.least_addr); + let mut sp: *mut Segment = &mut self.seg; + while !sp.is_null() && (*sp).base != tbase.add(tsize) { + sp = (*sp).next; + } + if !sp.is_null() && !Segment::is_extern(sp) && Segment::sys_flags(sp) == flags { + let oldbase = (*sp).base; + (*sp).base = tbase; + (*sp).size += tsize; + return self.prepend_alloc(tbase, oldbase, size); + } else { + self.add_segment(tbase, tsize, flags); + } + } + } + + if size < self.topsize { + self.topsize -= size; + let rsize = self.topsize; + let p = self.top; + self.top = Chunk::plus_offset(p, size); + let r = self.top; + (*r).head = rsize | PINUSE; + Chunk::set_size_and_pinuse_of_inuse_chunk(p, size); + let ret = Chunk::to_mem(p); + self.check_top_chunk(self.top); + self.check_malloced_chunk(ret, size); + self.check_malloc_state(); + return ret; + } + + return ptr::null_mut(); + } + + pub unsafe fn realloc(&mut self, oldmem: *mut u8, bytes: usize) -> *mut u8 { + if bytes >= self.max_request() { + return ptr::null_mut(); + } + let nb = self.request2size(bytes); + let oldp = Chunk::from_mem(oldmem); + let newp = self.try_realloc_chunk(oldp, nb, true); + if !newp.is_null() { + self.check_inuse_chunk(newp); + return Chunk::to_mem(newp); + } + let ptr = self.malloc(bytes); + if !ptr.is_null() { + let oc = Chunk::size(oldp) - self.overhead_for(oldp); + ptr::copy_nonoverlapping(oldmem, ptr, cmp::min(oc, bytes)); + self.free(oldmem); + } + return ptr; + } + + unsafe fn try_realloc_chunk(&mut self, p: *mut Chunk, nb: usize, can_move: bool) -> *mut Chunk { + let oldsize = Chunk::size(p); + let next = Chunk::plus_offset(p, oldsize); + + if Chunk::mmapped(p) { + self.mmap_resize(p, nb, can_move) + } else if oldsize >= nb { + let rsize = oldsize - nb; + if rsize >= self.min_chunk_size() { + let r = Chunk::plus_offset(p, nb); + Chunk::set_inuse(p, nb); + Chunk::set_inuse(r, rsize); + self.dispose_chunk(r, rsize); + } + p + } else if next == self.top { + // extend into top + if oldsize + self.topsize <= nb { + return ptr::null_mut(); + } + let newsize = oldsize + self.topsize; + let newtopsize = newsize - nb; + let newtop = Chunk::plus_offset(p, nb); + Chunk::set_inuse(p, nb); + (*newtop).head = newtopsize | PINUSE; + self.top = newtop; + self.topsize = newtopsize; + p + } else if next == self.dv { + // extend into dv + let dvs = self.dvsize; + if oldsize + dvs < nb { + return ptr::null_mut(); + } + let dsize = oldsize + dvs - nb; + if dsize >= self.min_chunk_size() { + let r = Chunk::plus_offset(p, nb); + let n = Chunk::plus_offset(r, dsize); + Chunk::set_inuse(p, nb); + Chunk::set_size_and_pinuse_of_free_chunk(r, dsize); + Chunk::clear_pinuse(n); + self.dvsize = dsize; + self.dv = r; + } else { + // exhaust dv + let newsize = oldsize + dvs; + Chunk::set_inuse(p, newsize); + self.dvsize = 0; + self.dv = ptr::null_mut(); + } + return p; + } else if !Chunk::cinuse(next) { + // extend into the next free chunk + let nextsize = Chunk::size(next); + if oldsize + nextsize < nb { + return ptr::null_mut(); + } + let rsize = oldsize + nextsize - nb; + self.unlink_chunk(next, nextsize); + if rsize < self.min_chunk_size() { + let newsize = oldsize + nextsize; + Chunk::set_inuse(p, newsize); + } else { + let r = Chunk::plus_offset(p, nb); + Chunk::set_inuse(p, nb); + Chunk::set_inuse(r, rsize); + self.dispose_chunk(r, rsize); + } + p + } else { + ptr::null_mut() + } + } + + unsafe fn mmap_resize(&mut self, oldp: *mut Chunk, nb: usize, can_move: bool) -> *mut Chunk { + let oldsize = Chunk::size(oldp); + // Can't shrink mmap regions below a small size + if self.is_small(nb) { + return ptr::null_mut(); + } + + // Keep the old chunk if it's big enough but not too big + if oldsize >= nb + mem::size_of::() && (oldsize - nb) <= (DEFAULT_GRANULARITY << 1) { + return oldp; + } + + let offset = (*oldp).prev_foot; + let oldmmsize = oldsize + offset + self.mmap_foot_pad(); + let newmmsize = + self.mmap_align(nb + 6 * mem::size_of::() + self.malloc_alignment() - 1); + let ptr = self.system_allocator.remap( + oldp.cast::().sub(offset), + oldmmsize, + newmmsize, + can_move, + ); + if ptr.is_null() { + return ptr::null_mut(); + } + let newp = ptr.add(offset).cast::(); + let psize = newmmsize - offset - self.mmap_foot_pad(); + (*newp).head = psize; + (*Chunk::plus_offset(newp, psize)).head = Chunk::fencepost_head(); + (*Chunk::plus_offset(newp, psize + mem::size_of::())).head = 0; + self.least_addr = cmp::min(ptr, self.least_addr); + self.footprint = self.footprint + newmmsize - oldmmsize; + self.max_footprint = cmp::max(self.max_footprint, self.footprint); + self.check_mmapped_chunk(newp); + return newp; + } + + fn mmap_align(&self, a: usize) -> usize { + align_up(a, self.system_allocator.page_size()) + } + + // Only call this with power-of-two alignment and alignment > + // `self.malloc_alignment()` + pub unsafe fn memalign(&mut self, mut alignment: usize, bytes: usize) -> *mut u8 { + if alignment < self.min_chunk_size() { + alignment = self.min_chunk_size(); + } + if bytes >= self.max_request() - alignment { + return ptr::null_mut(); + } + let nb = self.request2size(bytes); + let req = nb + alignment + self.min_chunk_size() - self.chunk_overhead(); + let mem = self.malloc(req); + if mem.is_null() { + return mem; + } + let mut p = Chunk::from_mem(mem); + if mem as usize & (alignment - 1) != 0 { + // Here we find an aligned sopt inside the chunk. Since we need to + // give back leading space in a chunk of at least `min_chunk_size`, + // if the first calculation places us at a spot with less than + // `min_chunk_size` leader we can move to the next aligned spot. + // we've allocated enough total room so that this is always possible + let br = + Chunk::from_mem(((mem as usize + alignment - 1) & (!alignment + 1)) as *mut u8); + let pos = if (br as usize - p as usize) > self.min_chunk_size() { + br.cast::() + } else { + br.cast::().add(alignment) + }; + let newp = pos.cast::(); + let leadsize = pos as usize - p as usize; + let newsize = Chunk::size(p) - leadsize; + + // for mmapped chunks just adjust the offset + if Chunk::mmapped(p) { + (*newp).prev_foot = (*p).prev_foot + leadsize; + (*newp).head = newsize; + } else { + // give back the leader, use the rest + Chunk::set_inuse(newp, newsize); + Chunk::set_inuse(p, leadsize); + self.dispose_chunk(p, leadsize); + } + p = newp; + } + + // give back spare room at the end + if !Chunk::mmapped(p) { + let size = Chunk::size(p); + if size > nb + self.min_chunk_size() { + let remainder_size = size - nb; + let remainder = Chunk::plus_offset(p, nb); + Chunk::set_inuse(p, nb); + Chunk::set_inuse(remainder, remainder_size); + self.dispose_chunk(remainder, remainder_size); + } + } + + let mem = Chunk::to_mem(p); + debug_assert!(Chunk::size(p) >= nb); + debug_assert_eq!(align_up(mem as usize, alignment), mem as usize); + self.check_inuse_chunk(p); + return mem; + } + + // consolidate and bin a chunk, differs from exported versions of free + // mainly in that the chunk need not be marked as inuse + unsafe fn dispose_chunk(&mut self, mut p: *mut Chunk, mut psize: usize) { + let next = Chunk::plus_offset(p, psize); + if !Chunk::pinuse(p) { + let prevsize = (*p).prev_foot; + if Chunk::mmapped(p) { + psize += prevsize + self.mmap_foot_pad(); + if self + .system_allocator + .free(p.cast::().sub(prevsize), psize) + { + self.footprint -= psize; + } + return; + } + let prev = Chunk::minus_offset(p, prevsize); + psize += prevsize; + p = prev; + if p != self.dv { + self.unlink_chunk(p, prevsize); + } else if (*next).head & INUSE == INUSE { + self.dvsize = psize; + Chunk::set_free_with_pinuse(p, psize, next); + return; + } + } + + if !Chunk::cinuse(next) { + // consolidate forward + if next == self.top { + self.topsize += psize; + let tsize = self.topsize; + self.top = p; + (*p).head = tsize | PINUSE; + if p == self.dv { + self.dv = ptr::null_mut(); + self.dvsize = 0; + } + return; + } else if next == self.dv { + self.dvsize += psize; + let dsize = self.dvsize; + self.dv = p; + Chunk::set_size_and_pinuse_of_free_chunk(p, dsize); + return; + } else { + let nsize = Chunk::size(next); + psize += nsize; + self.unlink_chunk(next, nsize); + Chunk::set_size_and_pinuse_of_free_chunk(p, psize); + if p == self.dv { + self.dvsize = psize; + return; + } + } + } else { + Chunk::set_free_with_pinuse(p, psize, next); + } + self.insert_chunk(p, psize); + } + + unsafe fn init_top(&mut self, ptr: *mut Chunk, size: usize) { + let offset = self.align_offset(Chunk::to_mem(ptr)); + let p = Chunk::plus_offset(ptr, offset); + let size = size - offset; + + self.top = p; + self.topsize = size; + (*p).head = size | PINUSE; + (*Chunk::plus_offset(p, size)).head = self.top_foot_size(); + self.trim_check = DEFAULT_TRIM_THRESHOLD; + } + + unsafe fn init_bins(&mut self) { + for i in 0..NSMALLBINS_U32 { + let bin = self.smallbin_at(i); + (*bin).next = bin; + (*bin).prev = bin; + } + } + + unsafe fn prepend_alloc(&mut self, newbase: *mut u8, oldbase: *mut u8, size: usize) -> *mut u8 { + let p = self.align_as_chunk(newbase); + let mut oldfirst = self.align_as_chunk(oldbase); + let psize = oldfirst as usize - p as usize; + let q = Chunk::plus_offset(p, size); + let mut qsize = psize - size; + Chunk::set_size_and_pinuse_of_inuse_chunk(p, size); + + debug_assert!(oldfirst > q); + debug_assert!(Chunk::pinuse(oldfirst)); + debug_assert!(qsize >= self.min_chunk_size()); + + // consolidate the remainder with the first chunk of the old base + if oldfirst == self.top { + self.topsize += qsize; + let tsize = self.topsize; + self.top = q; + (*q).head = tsize | PINUSE; + self.check_top_chunk(q); + } else if oldfirst == self.dv { + self.dvsize += qsize; + let dsize = self.dvsize; + self.dv = q; + Chunk::set_size_and_pinuse_of_free_chunk(q, dsize); + } else { + if !Chunk::inuse(oldfirst) { + let nsize = Chunk::size(oldfirst); + self.unlink_chunk(oldfirst, nsize); + oldfirst = Chunk::plus_offset(oldfirst, nsize); + qsize += nsize; + } + Chunk::set_free_with_pinuse(q, qsize, oldfirst); + self.insert_chunk(q, qsize); + self.check_free_chunk(q); + } + + let ret = Chunk::to_mem(p); + self.check_malloced_chunk(ret, size); + self.check_malloc_state(); + return ret; + } + + // add a segment to hold a new noncontiguous region + unsafe fn add_segment(&mut self, tbase: *mut u8, tsize: usize, flags: u32) { + // TODO: what in the world is this function doing + + // Determine locations and sizes of segment, fenceposts, and the old top + let old_top = self.top.cast::(); + let oldsp = self.segment_holding(old_top); + let old_end = Segment::top(oldsp); + let ssize = self.pad_request(mem::size_of::()); + let offset = ssize + mem::size_of::() * 4 + self.malloc_alignment() - 1; + let rawsp = old_end.sub(offset); + let offset = self.align_offset(Chunk::to_mem(rawsp.cast())); + let asp = rawsp.add(offset); + let csp = if asp < old_top.add(self.min_chunk_size()) { + old_top + } else { + asp + }; + let sp = csp.cast::(); + let ss = Chunk::to_mem(sp).cast::(); + let tnext = Chunk::plus_offset(sp, ssize); + let mut p = tnext; + let mut nfences = 0; + + // reset the top to our new space + let size = tsize - self.top_foot_size(); + self.init_top(tbase.cast(), size); + + // set up our segment record + debug_assert!(self.is_aligned(ss as usize)); + Chunk::set_size_and_pinuse_of_inuse_chunk(sp, ssize); + *ss = self.seg; // push our current record + self.seg.base = tbase; + self.seg.size = tsize; + self.seg.flags = flags; + self.seg.next = ss; + + // insert trailing fences + loop { + let nextp = Chunk::plus_offset(p, mem::size_of::()); + (*p).head = Chunk::fencepost_head(); + nfences += 1; + if ptr::addr_of!((*nextp).head).cast::() < old_end { + p = nextp; + } else { + break; + } + } + debug_assert!(nfences >= 2); + + // insert the rest of the old top into a bin as an ordinary free chunk + if csp != old_top { + let q = old_top.cast::(); + let psize = csp as usize - old_top as usize; + let tn = Chunk::plus_offset(q, psize); + Chunk::set_free_with_pinuse(q, psize, tn); + self.insert_chunk(q, psize); + } + + self.check_top_chunk(self.top); + self.check_malloc_state(); + } + + unsafe fn segment_holding(&self, ptr: *mut u8) -> *mut Segment { + let mut sp = &self.seg as *const Segment as *mut Segment; + while !sp.is_null() { + if (*sp).base <= ptr && ptr < Segment::top(sp) { + return sp; + } + sp = (*sp).next; + } + ptr::null_mut() + } + + unsafe fn tmalloc_small(&mut self, size: usize) -> *mut u8 { + let leastbit = least_bit(self.treemap); + let i = leastbit.trailing_zeros(); + let mut v = *self.treebin_at(i); + let mut t = v; + let mut rsize = Chunk::size(TreeChunk::chunk(t)) - size; + + loop { + t = TreeChunk::leftmost_child(t); + if t.is_null() { + break; + } + let trem = Chunk::size(TreeChunk::chunk(t)) - size; + if trem < rsize { + rsize = trem; + v = t; + } + } + + let vc = TreeChunk::chunk(v); + let r = Chunk::plus_offset(vc, size).cast::(); + debug_assert_eq!(Chunk::size(vc), rsize + size); + self.unlink_large_chunk(v); + if rsize < self.min_chunk_size() { + Chunk::set_inuse_and_pinuse(vc, rsize + size); + } else { + let rc = TreeChunk::chunk(r); + Chunk::set_size_and_pinuse_of_inuse_chunk(vc, size); + Chunk::set_size_and_pinuse_of_free_chunk(rc, rsize); + self.replace_dv(rc, rsize); + } + Chunk::to_mem(vc) + } + + unsafe fn tmalloc_large(&mut self, size: usize) -> *mut u8 { + let mut v = ptr::null_mut(); + let mut rsize = !size + 1; + let idx = self.compute_tree_index(size); + let mut t = *self.treebin_at(idx); + if !t.is_null() { + // Traverse thre tree for this bin looking for a node with size + // equal to the `size` above. + let mut sizebits = size << leftshift_for_tree_index(idx); + // Keep track of the deepest untaken right subtree + let mut rst = ptr::null_mut(); + loop { + let csize = Chunk::size(TreeChunk::chunk(t)); + if csize >= size && csize - size < rsize { + v = t; + rsize = csize - size; + if rsize == 0 { + break; + } + } + let rt = (*t).child[1]; + t = (*t).child[(sizebits >> (mem::size_of::() * 8 - 1)) & 1]; + if !rt.is_null() && rt != t { + rst = rt; + } + if t.is_null() { + // Reset `t` to the least subtree holding sizes greater than + // the `size` above, breaking out + t = rst; + break; + } + sizebits <<= 1; + } + } + + // Set t to the root of the next non-empty treebin + if t.is_null() && v.is_null() { + let leftbits = left_bits(1 << idx) & self.treemap; + if leftbits != 0 { + let leastbit = least_bit(leftbits); + let i = leastbit.trailing_zeros(); + t = *self.treebin_at(i); + } + } + + // Find the smallest of this tree or subtree + while !t.is_null() { + let csize = Chunk::size(TreeChunk::chunk(t)); + if csize >= size && csize - size < rsize { + rsize = csize - size; + v = t; + } + t = TreeChunk::leftmost_child(t); + } + + // If dv is a better fit, then return null so malloc will use it + if v.is_null() || (self.dvsize >= size && !(rsize < self.dvsize - size)) { + return ptr::null_mut(); + } + + let vc = TreeChunk::chunk(v); + let r = Chunk::plus_offset(vc, size); + debug_assert_eq!(Chunk::size(vc), rsize + size); + self.unlink_large_chunk(v); + if rsize < self.min_chunk_size() { + Chunk::set_inuse_and_pinuse(vc, rsize + size); + } else { + Chunk::set_size_and_pinuse_of_inuse_chunk(vc, size); + Chunk::set_size_and_pinuse_of_free_chunk(r, rsize); + self.insert_chunk(r, rsize); + } + Chunk::to_mem(vc) + } + + unsafe fn smallbin_at(&mut self, idx: u32) -> *mut Chunk { + let idx = usize::try_from(idx * 2).unwrap(); + debug_assert!(idx < self.smallbins.len()); + self.smallbins.as_mut_ptr().add(idx).cast() + } + + unsafe fn treebin_at(&mut self, idx: u32) -> *mut *mut TreeChunk { + let idx = usize::try_from(idx).unwrap(); + debug_assert!(idx < self.treebins.len()); + self.treebins.as_mut_ptr().add(idx) + } + + fn compute_tree_index(&self, size: usize) -> u32 { + let x = size >> TREEBIN_SHIFT; + if x == 0 { + 0 + } else if x > 0xffff { + NTREEBINS_U32 - 1 + } else { + let k = mem::size_of_val(&x) * 8 - 1 - (x.leading_zeros() as usize); + ((k << 1) + (size >> (k + TREEBIN_SHIFT - 1) & 1)) as u32 + } + } + + unsafe fn unlink_first_small_chunk(&mut self, head: *mut Chunk, next: *mut Chunk, idx: u32) { + let ptr = (*next).prev; + debug_assert!(next != head); + debug_assert!(next != ptr); + debug_assert_eq!(Chunk::size(next), self.small_index2size(idx)); + if head == ptr { + self.clear_smallmap(idx); + } else { + (*ptr).next = head; + (*head).prev = ptr; + } + } + + unsafe fn replace_dv(&mut self, chunk: *mut Chunk, size: usize) { + let dvs = self.dvsize; + debug_assert!(self.is_small(dvs)); + if dvs != 0 { + let dv = self.dv; + self.insert_small_chunk(dv, dvs); + } + self.dvsize = size; + self.dv = chunk; + } + + unsafe fn insert_chunk(&mut self, chunk: *mut Chunk, size: usize) { + if self.is_small(size) { + self.insert_small_chunk(chunk, size); + } else { + self.insert_large_chunk(chunk.cast(), size); + } + } + + unsafe fn insert_small_chunk(&mut self, chunk: *mut Chunk, size: usize) { + let idx = self.small_index(size); + let head = self.smallbin_at(idx); + let mut f = head; + debug_assert!(size >= self.min_chunk_size()); + if !self.smallmap_is_marked(idx) { + self.mark_smallmap(idx); + } else { + f = (*head).prev; + } + + (*head).prev = chunk; + (*f).next = chunk; + (*chunk).prev = f; + (*chunk).next = head; + } + + unsafe fn insert_large_chunk(&mut self, chunk: *mut TreeChunk, size: usize) { + let idx = self.compute_tree_index(size); + let h = self.treebin_at(idx); + (*chunk).index = idx; + (*chunk).child[0] = ptr::null_mut(); + (*chunk).child[1] = ptr::null_mut(); + let chunkc = TreeChunk::chunk(chunk); + if !self.treemap_is_marked(idx) { + *h = chunk; + (*chunk).parent = h.cast(); // TODO: dubious? + (*chunkc).next = chunkc; + (*chunkc).prev = chunkc; + self.mark_treemap(idx); + } else { + let mut t = *h; + let mut k = size << leftshift_for_tree_index(idx); + loop { + if Chunk::size(TreeChunk::chunk(t)) != size { + let c = &mut (*t).child[(k >> mem::size_of::() * 8 - 1) & 1]; + k <<= 1; + if !c.is_null() { + t = *c; + } else { + *c = chunk; + (*chunk).parent = t; + (*chunkc).next = chunkc; + (*chunkc).prev = chunkc; + break; + } + } else { + let tc = TreeChunk::chunk(t); + let f = (*tc).prev; + (*f).next = chunkc; + (*tc).prev = chunkc; + (*chunkc).prev = f; + (*chunkc).next = tc; + (*chunk).parent = ptr::null_mut(); + break; + } + } + } + } + + unsafe fn smallmap_is_marked(&self, idx: u32) -> bool { + self.smallmap & (1 << idx) != 0 + } + + unsafe fn mark_smallmap(&mut self, idx: u32) { + self.smallmap |= 1 << idx; + } + + unsafe fn clear_smallmap(&mut self, idx: u32) { + self.smallmap &= !(1 << idx); + } + + unsafe fn treemap_is_marked(&self, idx: u32) -> bool { + self.treemap & (1 << idx) != 0 + } + + unsafe fn mark_treemap(&mut self, idx: u32) { + self.treemap |= 1 << idx; + } + + unsafe fn clear_treemap(&mut self, idx: u32) { + self.treemap &= !(1 << idx); + } + + unsafe fn unlink_chunk(&mut self, chunk: *mut Chunk, size: usize) { + if self.is_small(size) { + self.unlink_small_chunk(chunk, size) + } else { + self.unlink_large_chunk(chunk.cast()); + } + } + + unsafe fn unlink_small_chunk(&mut self, chunk: *mut Chunk, size: usize) { + let f = (*chunk).prev; + let b = (*chunk).next; + let idx = self.small_index(size); + debug_assert!(chunk != b); + debug_assert!(chunk != f); + debug_assert_eq!(Chunk::size(chunk), self.small_index2size(idx)); + if b == f { + self.clear_smallmap(idx); + } else { + (*f).next = b; + (*b).prev = f; + } + } + + unsafe fn unlink_large_chunk(&mut self, chunk: *mut TreeChunk) { + let xp = (*chunk).parent; + let mut r; + if TreeChunk::next(chunk) != chunk { + let f = TreeChunk::prev(chunk); + r = TreeChunk::next(chunk); + (*f).chunk.next = TreeChunk::chunk(r); + (*r).chunk.prev = TreeChunk::chunk(f); + } else { + let mut rp = &mut (*chunk).child[1]; + if rp.is_null() { + rp = &mut (*chunk).child[0]; + } + r = *rp; + if !rp.is_null() { + loop { + let mut cp = &mut (**rp).child[1]; + if cp.is_null() { + cp = &mut (**rp).child[0]; + } + if cp.is_null() { + break; + } + rp = cp; + } + r = *rp; + *rp = ptr::null_mut(); + } + } + + if xp.is_null() { + return; + } + + let h = self.treebin_at((*chunk).index); + if chunk == *h { + *h = r; + if r.is_null() { + self.clear_treemap((*chunk).index); + } + } else { + if (*xp).child[0] == chunk { + (*xp).child[0] = r; + } else { + (*xp).child[1] = r; + } + } + + if !r.is_null() { + (*r).parent = xp; + let c0 = (*chunk).child[0]; + if !c0.is_null() { + (*r).child[0] = c0; + (*c0).parent = r; + } + let c1 = (*chunk).child[1]; + if !c1.is_null() { + (*r).child[1] = c1; + (*c1).parent = r; + } + } + } + + pub unsafe fn validate_size(&mut self, ptr: *mut u8, size: usize) { + let p = Chunk::from_mem(ptr); + let psize = Chunk::size(p); + + let min_overhead = self.overhead_for(p); + assert!(psize >= size + min_overhead); + + if !Chunk::mmapped(p) { + let max_overhead = + min_overhead + self.min_chunk_size() * 2 + mem::align_of::() - 1; + + assert!(psize <= size + max_overhead); + } + } + + pub unsafe fn free(&mut self, mem: *mut u8) { + self.check_malloc_state(); + + let mut p = Chunk::from_mem(mem); + let mut psize = Chunk::size(p); + let next = Chunk::plus_offset(p, psize); + if !Chunk::pinuse(p) { + let prevsize = (*p).prev_foot; + + if Chunk::mmapped(p) { + psize += prevsize + self.mmap_foot_pad(); + if self + .system_allocator + .free(p.cast::().sub(prevsize), psize) + { + self.footprint -= psize; + } + return; + } + + let prev = Chunk::minus_offset(p, prevsize); + psize += prevsize; + p = prev; + if p != self.dv { + self.unlink_chunk(p, prevsize); + } else if (*next).head & INUSE == INUSE { + self.dvsize = psize; + Chunk::set_free_with_pinuse(p, psize, next); + return; + } + } + + // Consolidate forward if we can + if !Chunk::cinuse(next) { + if next == self.top { + self.topsize += psize; + let tsize = self.topsize; + self.top = p; + (*p).head = tsize | PINUSE; + if p == self.dv { + self.dv = ptr::null_mut(); + self.dvsize = 0; + } + if self.should_trim(tsize) { + self.sys_trim(0); + } + return; + } else if next == self.dv { + self.dvsize += psize; + let dsize = self.dvsize; + self.dv = p; + Chunk::set_size_and_pinuse_of_free_chunk(p, dsize); + return; + } else { + let nsize = Chunk::size(next); + psize += nsize; + self.unlink_chunk(next, nsize); + Chunk::set_size_and_pinuse_of_free_chunk(p, psize); + if p == self.dv { + self.dvsize = psize; + return; + } + } + } else { + Chunk::set_free_with_pinuse(p, psize, next); + } + + if self.is_small(psize) { + self.insert_small_chunk(p, psize); + self.check_free_chunk(p); + } else { + self.insert_large_chunk(p.cast(), psize); + self.check_free_chunk(p); + self.release_checks -= 1; + if self.release_checks == 0 { + self.release_unused_segments(); + } + } + } + + fn should_trim(&self, size: usize) -> bool { + size > self.trim_check + } + + unsafe fn sys_trim(&mut self, mut pad: usize) -> bool { + let mut released = 0; + if pad < self.max_request() && !self.top.is_null() { + pad += self.top_foot_size(); + if self.topsize > pad { + let unit = DEFAULT_GRANULARITY; + let extra = ((self.topsize - pad + unit - 1) / unit - 1) * unit; + let sp = self.segment_holding(self.top.cast()); + debug_assert!(!sp.is_null()); + + if !Segment::is_extern(sp) { + if Segment::can_release_part(&self.system_allocator, sp) { + if (*sp).size >= extra && !self.has_segment_link(sp) { + let newsize = (*sp).size - extra; + if self + .system_allocator + .free_part((*sp).base, (*sp).size, newsize) + { + released = extra; + } + } + } + } + + if released != 0 { + (*sp).size -= released; + self.footprint -= released; + let top = self.top; + let topsize = self.topsize - released; + self.init_top(top, topsize); + self.check_top_chunk(self.top); + } + } + + released += self.release_unused_segments(); + + if released == 0 && self.topsize > self.trim_check { + self.trim_check = usize::max_value(); + } + } + + released != 0 + } + + unsafe fn has_segment_link(&self, ptr: *mut Segment) -> bool { + let mut sp = &self.seg as *const Segment as *mut Segment; + while !sp.is_null() { + if Segment::holds(ptr, sp.cast()) { + return true; + } + sp = (*sp).next; + } + false + } + + /// Unmap and unlink any mapped segments that don't contain used chunks + unsafe fn release_unused_segments(&mut self) -> usize { + let mut released = 0; + let mut nsegs = 0; + let mut pred: *mut Segment = &mut self.seg; + let mut sp = (*pred).next; + while !sp.is_null() { + let base = (*sp).base; + let size = (*sp).size; + let next = (*sp).next; + nsegs += 1; + + if Segment::can_release_part(&self.system_allocator, sp) && !Segment::is_extern(sp) { + let p = self.align_as_chunk(base); + let psize = Chunk::size(p); + // We can unmap if the first chunk holds the entire segment and + // isn't pinned. + let chunk_top = p.cast::().add(psize); + let top = base.add(size - self.top_foot_size()); + if !Chunk::inuse(p) && chunk_top >= top { + let tp = p.cast::(); + debug_assert!(Segment::holds(sp, sp.cast())); + if p == self.dv { + self.dv = ptr::null_mut(); + self.dvsize = 0; + } else { + self.unlink_large_chunk(tp); + } + if self.system_allocator.free(base, size) { + released += size; + self.footprint -= size; + // unlink our obsolete record + sp = pred; + (*sp).next = next; + } else { + // back out if we can't unmap + self.insert_large_chunk(tp, psize); + } + } + } + pred = sp; + sp = next; + } + self.release_checks = if nsegs > MAX_RELEASE_CHECK_RATE { + nsegs + } else { + MAX_RELEASE_CHECK_RATE + }; + return released; + } + + // Sanity checks + + unsafe fn check_any_chunk(&self, p: *mut Chunk) { + if !cfg!(all(feature = "debug", debug_assertions)) { + return; + } + debug_assert!( + self.is_aligned(Chunk::to_mem(p) as usize) || (*p).head == Chunk::fencepost_head() + ); + debug_assert!(p as *mut u8 >= self.least_addr); + } + + unsafe fn check_top_chunk(&self, p: *mut Chunk) { + if !cfg!(all(feature = "debug", debug_assertions)) { + return; + } + let sp = self.segment_holding(p.cast()); + let sz = (*p).head & !INUSE; + debug_assert!(!sp.is_null()); + debug_assert!( + self.is_aligned(Chunk::to_mem(p) as usize) || (*p).head == Chunk::fencepost_head() + ); + debug_assert!(p as *mut u8 >= self.least_addr); + debug_assert_eq!(sz, self.topsize); + debug_assert!(sz > 0); + debug_assert_eq!( + sz, + (*sp).base as usize + (*sp).size - p as usize - self.top_foot_size() + ); + debug_assert!(Chunk::pinuse(p)); + debug_assert!(!Chunk::pinuse(Chunk::plus_offset(p, sz))); + } + + unsafe fn check_malloced_chunk(&self, mem: *mut u8, s: usize) { + if !cfg!(all(feature = "debug", debug_assertions)) { + return; + } + if mem.is_null() { + return; + } + let p = Chunk::from_mem(mem); + let sz = (*p).head & !INUSE; + self.check_inuse_chunk(p); + debug_assert_eq!(align_up(sz, self.malloc_alignment()), sz); + debug_assert!(sz >= self.min_chunk_size()); + debug_assert!(sz >= s); + debug_assert!(Chunk::mmapped(p) || sz < (s + self.min_chunk_size())); + } + + unsafe fn check_inuse_chunk(&self, p: *mut Chunk) { + self.check_any_chunk(p); + debug_assert!(Chunk::inuse(p)); + debug_assert!(Chunk::pinuse(Chunk::next(p))); + debug_assert!(Chunk::mmapped(p) || Chunk::pinuse(p) || Chunk::next(Chunk::prev(p)) == p); + if Chunk::mmapped(p) { + self.check_mmapped_chunk(p); + } + } + + unsafe fn check_mmapped_chunk(&self, p: *mut Chunk) { + if !cfg!(all(feature = "debug", debug_assertions)) { + return; + } + let sz = Chunk::size(p); + let len = sz + (*p).prev_foot + self.mmap_foot_pad(); + debug_assert!(Chunk::mmapped(p)); + debug_assert!( + self.is_aligned(Chunk::to_mem(p) as usize) || (*p).head == Chunk::fencepost_head() + ); + debug_assert!(p as *mut u8 >= self.least_addr); + debug_assert!(!self.is_small(sz)); + debug_assert_eq!(align_up(len, self.system_allocator.page_size()), len); + debug_assert_eq!((*Chunk::plus_offset(p, sz)).head, Chunk::fencepost_head()); + debug_assert_eq!( + (*Chunk::plus_offset(p, sz + mem::size_of::())).head, + 0 + ); + } + + unsafe fn check_free_chunk(&self, p: *mut Chunk) { + if !cfg!(all(feature = "debug", debug_assertions)) { + return; + } + let sz = Chunk::size(p); + let next = Chunk::plus_offset(p, sz); + self.check_any_chunk(p); + debug_assert!(!Chunk::inuse(p)); + debug_assert!(!Chunk::pinuse(Chunk::next(p))); + debug_assert!(!Chunk::mmapped(p)); + if p != self.dv && p != self.top { + if sz >= self.min_chunk_size() { + debug_assert_eq!(align_up(sz, self.malloc_alignment()), sz); + debug_assert!(self.is_aligned(Chunk::to_mem(p) as usize)); + debug_assert_eq!((*next).prev_foot, sz); + debug_assert!(Chunk::pinuse(p)); + debug_assert!(next == self.top || Chunk::inuse(next)); + debug_assert_eq!((*(*p).next).prev, p); + debug_assert_eq!((*(*p).prev).next, p); + } else { + debug_assert_eq!(sz, mem::size_of::()); + } + } + } + + unsafe fn check_malloc_state(&mut self) { + if !cfg!(all(feature = "debug", debug_assertions)) { + return; + } + for i in 0..NSMALLBINS_U32 { + self.check_smallbin(i); + } + for i in 0..NTREEBINS_U32 { + self.check_treebin(i); + } + if self.dvsize != 0 { + self.check_any_chunk(self.dv); + debug_assert_eq!(self.dvsize, Chunk::size(self.dv)); + debug_assert!(self.dvsize >= self.min_chunk_size()); + let dv = self.dv; + debug_assert!(!self.bin_find(dv)); + } + if !self.top.is_null() { + self.check_top_chunk(self.top); + debug_assert!(self.topsize > 0); + let top = self.top; + debug_assert!(!self.bin_find(top)); + } + let total = self.traverse_and_check(); + debug_assert!(total <= self.footprint); + debug_assert!(self.footprint <= self.max_footprint); + } + + unsafe fn check_smallbin(&mut self, idx: u32) { + if !cfg!(all(feature = "debug", debug_assertions)) { + return; + } + let b = self.smallbin_at(idx); + let mut p = (*b).next; + let empty = self.smallmap & (1 << idx) == 0; + if p == b { + debug_assert!(empty) + } + if !empty { + while p != b { + let size = Chunk::size(p); + self.check_free_chunk(p); + debug_assert_eq!(self.small_index(size), idx); + debug_assert!((*p).next == b || Chunk::size((*p).next) == Chunk::size(p)); + let q = Chunk::next(p); + if (*q).head != Chunk::fencepost_head() { + self.check_inuse_chunk(q); + } + p = (*p).next; + } + } + } + + unsafe fn check_treebin(&mut self, idx: u32) { + if !cfg!(all(feature = "debug", debug_assertions)) { + return; + } + let t = *self.treebin_at(idx); + let empty = self.treemap & (1 << idx) == 0; + if t.is_null() { + debug_assert!(empty); + } + if !empty { + self.check_tree(t); + } + } + + unsafe fn check_tree(&mut self, t: *mut TreeChunk) { + if !cfg!(all(feature = "debug", debug_assertions)) { + return; + } + let tc = TreeChunk::chunk(t); + let tindex = (*t).index; + let tsize = Chunk::size(tc); + let idx = self.compute_tree_index(tsize); + debug_assert_eq!(tindex, idx); + debug_assert!(tsize >= self.min_large_size()); + debug_assert!(tsize >= self.min_size_for_tree_index(idx)); + debug_assert!(idx == NTREEBINS_U32 - 1 || tsize < self.min_size_for_tree_index(idx + 1)); + + let mut u = t; + let mut head = ptr::null_mut::(); + loop { + let uc = TreeChunk::chunk(u); + self.check_any_chunk(uc); + debug_assert_eq!((*u).index, tindex); + debug_assert_eq!(Chunk::size(uc), tsize); + debug_assert!(!Chunk::inuse(uc)); + debug_assert!(!Chunk::pinuse(Chunk::next(uc))); + debug_assert_eq!((*(*uc).next).prev, uc); + debug_assert_eq!((*(*uc).prev).next, uc); + let left = (*u).child[0]; + let right = (*u).child[1]; + if (*u).parent.is_null() { + debug_assert!(left.is_null()); + debug_assert!(right.is_null()); + } else { + debug_assert!(head.is_null()); + head = u; + debug_assert!((*u).parent != u); + // TODO: unsure why this triggers UB in stacked borrows in MIRI + // (works in tree borrows though) + #[cfg(not(miri))] + debug_assert!( + (*(*u).parent).child[0] == u + || (*(*u).parent).child[1] == u + || *((*u).parent as *mut *mut TreeChunk) == u + ); + if !left.is_null() { + debug_assert_eq!((*left).parent, u); + debug_assert!(left != u); + self.check_tree(left); + } + if !right.is_null() { + debug_assert_eq!((*right).parent, u); + debug_assert!(right != u); + self.check_tree(right); + } + if !left.is_null() && !right.is_null() { + debug_assert!( + Chunk::size(TreeChunk::chunk(left)) < Chunk::size(TreeChunk::chunk(right)) + ); + } + } + + u = TreeChunk::prev(u); + if u == t { + break; + } + } + debug_assert!(!head.is_null()); + } + + fn min_size_for_tree_index(&self, idx: u32) -> usize { + let idx = usize::try_from(idx).unwrap(); + (1 << ((idx >> 1) + TREEBIN_SHIFT)) | ((idx & 1) << ((idx >> 1) + TREEBIN_SHIFT - 1)) + } + + unsafe fn bin_find(&mut self, chunk: *mut Chunk) -> bool { + let size = Chunk::size(chunk); + if self.is_small(size) { + let sidx = self.small_index(size); + let b = self.smallbin_at(sidx); + if !self.smallmap_is_marked(sidx) { + return false; + } + let mut p = b; + loop { + if p == chunk { + return true; + } + p = (*p).prev; + if p == b { + return false; + } + } + } else { + let tidx = self.compute_tree_index(size); + if !self.treemap_is_marked(tidx) { + return false; + } + let mut t = *self.treebin_at(tidx); + let mut sizebits = size << leftshift_for_tree_index(tidx); + while !t.is_null() && Chunk::size(TreeChunk::chunk(t)) != size { + t = (*t).child[(sizebits >> (mem::size_of::() * 8 - 1)) & 1]; + sizebits <<= 1; + } + if t.is_null() { + return false; + } + let mut u = t; + let chunk = chunk.cast(); + loop { + if u == chunk { + return true; + } + u = TreeChunk::prev(u); + if u == t { + return false; + } + } + } + } + + unsafe fn traverse_and_check(&self) -> usize { + 0 + } + + pub unsafe fn trim(&mut self, pad: usize) -> bool { + self.sys_trim(pad) + } + + pub unsafe fn destroy(mut self) -> usize { + let mut freed = 0; + let mut sp: *mut Segment = &mut self.seg; + while !sp.is_null() { + let base = (*sp).base; + let size = (*sp).size; + let can_free = !base.is_null() && !Segment::is_extern(sp); + sp = (*sp).next; + + if can_free && self.system_allocator.free(base, size) { + freed += size; + } + } + freed + } +} + +const PINUSE: usize = 1 << 0; +const CINUSE: usize = 1 << 1; +const FLAG4: usize = 1 << 2; +const INUSE: usize = PINUSE | CINUSE; +const FLAG_BITS: usize = PINUSE | CINUSE | FLAG4; + +impl Chunk { + unsafe fn fencepost_head() -> usize { + INUSE | mem::size_of::() + } + + unsafe fn size(me: *mut Chunk) -> usize { + (*me).head & !FLAG_BITS + } + + unsafe fn next(me: *mut Chunk) -> *mut Chunk { + me.cast::().add((*me).head & !FLAG_BITS).cast() + } + + unsafe fn prev(me: *mut Chunk) -> *mut Chunk { + me.cast::().sub((*me).prev_foot).cast() + } + + unsafe fn cinuse(me: *mut Chunk) -> bool { + (*me).head & CINUSE != 0 + } + + unsafe fn pinuse(me: *mut Chunk) -> bool { + (*me).head & PINUSE != 0 + } + + unsafe fn clear_pinuse(me: *mut Chunk) { + (*me).head &= !PINUSE; + } + + unsafe fn inuse(me: *mut Chunk) -> bool { + (*me).head & INUSE != PINUSE + } + + unsafe fn mmapped(me: *mut Chunk) -> bool { + (*me).head & INUSE == 0 + } + + unsafe fn set_inuse(me: *mut Chunk, size: usize) { + (*me).head = ((*me).head & PINUSE) | size | CINUSE; + let next = Chunk::plus_offset(me, size); + (*next).head |= PINUSE; + } + + unsafe fn set_inuse_and_pinuse(me: *mut Chunk, size: usize) { + (*me).head = PINUSE | size | CINUSE; + let next = Chunk::plus_offset(me, size); + (*next).head |= PINUSE; + } + + unsafe fn set_size_and_pinuse_of_inuse_chunk(me: *mut Chunk, size: usize) { + (*me).head = size | PINUSE | CINUSE; + } + + unsafe fn set_size_and_pinuse_of_free_chunk(me: *mut Chunk, size: usize) { + (*me).head = size | PINUSE; + Chunk::set_foot(me, size); + } + + unsafe fn set_free_with_pinuse(p: *mut Chunk, size: usize, n: *mut Chunk) { + Chunk::clear_pinuse(n); + Chunk::set_size_and_pinuse_of_free_chunk(p, size); + } + + unsafe fn set_foot(me: *mut Chunk, size: usize) { + let next = Chunk::plus_offset(me, size); + (*next).prev_foot = size; + } + + unsafe fn plus_offset(me: *mut Chunk, offset: usize) -> *mut Chunk { + me.cast::().add(offset).cast() + } + + unsafe fn minus_offset(me: *mut Chunk, offset: usize) -> *mut Chunk { + me.cast::().sub(offset).cast() + } + + unsafe fn to_mem(me: *mut Chunk) -> *mut u8 { + me.cast::().add(Chunk::mem_offset()) + } + + fn mem_offset() -> usize { + 2 * mem::size_of::() + } + + unsafe fn from_mem(mem: *mut u8) -> *mut Chunk { + mem.sub(2 * mem::size_of::()).cast() + } +} + +impl TreeChunk { + unsafe fn leftmost_child(me: *mut TreeChunk) -> *mut TreeChunk { + let left = (*me).child[0]; + if left.is_null() { + (*me).child[1] + } else { + left + } + } + + unsafe fn chunk(me: *mut TreeChunk) -> *mut Chunk { + ptr::addr_of_mut!((*me).chunk) + } + + unsafe fn next(me: *mut TreeChunk) -> *mut TreeChunk { + (*TreeChunk::chunk(me)).next.cast() + } + + unsafe fn prev(me: *mut TreeChunk) -> *mut TreeChunk { + (*TreeChunk::chunk(me)).prev.cast() + } +} + +const EXTERN: u32 = 1 << 0; + +impl Segment { + unsafe fn is_extern(seg: *mut Segment) -> bool { + (*seg).flags & EXTERN != 0 + } + + unsafe fn can_release_part(system_allocator: &A, seg: *mut Segment) -> bool { + system_allocator.can_release_part((*seg).flags >> 1) + } + + unsafe fn sys_flags(seg: *mut Segment) -> u32 { + (*seg).flags >> 1 + } + + unsafe fn holds(seg: *mut Segment, addr: *mut u8) -> bool { + (*seg).base <= addr && addr < Segment::top(seg) + } + + unsafe fn top(seg: *mut Segment) -> *mut u8 { + (*seg).base.add((*seg).size) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::System; + + // Prime the allocator with some allocations such that there will be free + // chunks in the treemap + unsafe fn setup_treemap(a: &mut Dlmalloc) { + let large_request_size = NSMALLBINS * (1 << SMALLBIN_SHIFT); + assert!(!a.is_small(large_request_size)); + let large_request1 = a.malloc(large_request_size); + assert_ne!(large_request1, ptr::null_mut()); + let large_request2 = a.malloc(large_request_size); + assert_ne!(large_request2, ptr::null_mut()); + a.free(large_request1); + assert_ne!(a.treemap, 0); + } + + #[test] + // Test allocating, with a non-empty treemap, a specific size that used to + // trigger an integer overflow bug + fn treemap_alloc_overflow_minimal() { + let mut a = Dlmalloc::new(System::new()); + unsafe { + setup_treemap(&mut a); + let min_idx31_size = (0xc000 << TREEBIN_SHIFT) - a.chunk_overhead() + 1; + assert_ne!(a.malloc(min_idx31_size), ptr::null_mut()); + } + } + + #[test] + #[cfg(not(miri))] + // Test allocating the maximum request size with a non-empty treemap + fn treemap_alloc_max() { + let mut a = Dlmalloc::new(System::new()); + unsafe { + setup_treemap(&mut a); + let max_request_size = a.max_request() - 1; + assert_eq!(a.malloc(max_request_size), ptr::null_mut()); + } + } +} diff --git a/src/rust/vendor/dlmalloc/src/dummy.rs b/src/rust/vendor/dlmalloc/src/dummy.rs new file mode 100644 index 000000000..865451863 --- /dev/null +++ b/src/rust/vendor/dlmalloc/src/dummy.rs @@ -0,0 +1,42 @@ +use crate::Allocator; +use core::ptr; + +pub struct System { + _priv: (), +} + +impl System { + pub const fn new() -> System { + System { _priv: () } + } +} + +unsafe impl Allocator for System { + fn alloc(&self, _size: usize) -> (*mut u8, usize, u32) { + (ptr::null_mut(), 0, 0) + } + + fn remap(&self, _ptr: *mut u8, _oldsize: usize, _newsize: usize, _can_move: bool) -> *mut u8 { + ptr::null_mut() + } + + fn free_part(&self, _ptr: *mut u8, _oldsize: usize, _newsize: usize) -> bool { + false + } + + fn free(&self, _ptr: *mut u8, _size: usize) -> bool { + false + } + + fn can_release_part(&self, _flags: u32) -> bool { + false + } + + fn allocates_zeros(&self) -> bool { + false + } + + fn page_size(&self) -> usize { + 1 + } +} diff --git a/src/rust/vendor/dlmalloc/src/global.rs b/src/rust/vendor/dlmalloc/src/global.rs new file mode 100644 index 000000000..c2ce47696 --- /dev/null +++ b/src/rust/vendor/dlmalloc/src/global.rs @@ -0,0 +1,61 @@ +use crate::Dlmalloc; +use core::alloc::{GlobalAlloc, Layout}; +use core::ops::{Deref, DerefMut}; + +pub use crate::sys::enable_alloc_after_fork; + +/// An instance of a "global allocator" backed by `Dlmalloc` +/// +/// This API requires the `global` feature is activated, and this type +/// implements the `GlobalAlloc` trait in the standard library. +pub struct GlobalDlmalloc; + +unsafe impl GlobalAlloc for GlobalDlmalloc { + #[inline] + unsafe fn alloc(&self, layout: Layout) -> *mut u8 { + ::malloc(&mut get(), layout.size(), layout.align()) + } + + #[inline] + unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { + ::free(&mut get(), ptr, layout.size(), layout.align()) + } + + #[inline] + unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 { + ::calloc(&mut get(), layout.size(), layout.align()) + } + + #[inline] + unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 { + ::realloc(&mut get(), ptr, layout.size(), layout.align(), new_size) + } +} + +static mut DLMALLOC: Dlmalloc = Dlmalloc::new(); + +struct Instance; + +unsafe fn get() -> Instance { + crate::sys::acquire_global_lock(); + Instance +} + +impl Deref for Instance { + type Target = Dlmalloc; + fn deref(&self) -> &Dlmalloc { + unsafe { &DLMALLOC } + } +} + +impl DerefMut for Instance { + fn deref_mut(&mut self) -> &mut Dlmalloc { + unsafe { &mut DLMALLOC } + } +} + +impl Drop for Instance { + fn drop(&mut self) { + crate::sys::release_global_lock() + } +} diff --git a/src/rust/vendor/dlmalloc/src/lib.rs b/src/rust/vendor/dlmalloc/src/lib.rs new file mode 100644 index 000000000..f17e5dbb1 --- /dev/null +++ b/src/rust/vendor/dlmalloc/src/lib.rs @@ -0,0 +1,209 @@ +//! A Rust port of the `dlmalloc` allocator. +//! +//! The `dlmalloc` allocator is described at +//! and this Rust crate is a straight +//! port of the C code for the allocator into Rust. The implementation is +//! wrapped up in a `Dlmalloc` type and has support for Linux, OSX, and Wasm +//! currently. +//! +//! The primary purpose of this crate is that it serves as the default memory +//! allocator for the `wasm32-unknown-unknown` target in the standard library. +//! Support for other platforms is largely untested and unused, but is used when +//! testing this crate. + +#![allow(dead_code)] +#![no_std] +#![deny(missing_docs)] +#![cfg_attr(target_arch = "wasm64", feature(simd_wasm64))] + +use core::cmp; +use core::ptr; +use sys::System; + +#[cfg(feature = "global")] +pub use self::global::{enable_alloc_after_fork, GlobalDlmalloc}; + +mod dlmalloc; +#[cfg(feature = "global")] +mod global; + +/// In order for this crate to efficiently manage memory, it needs a way to communicate with the +/// underlying platform. This `Allocator` trait provides an interface for this communication. +pub unsafe trait Allocator: Send { + /// Allocates system memory region of at least `size` bytes + /// Returns a triple of `(base, size, flags)` where `base` is a pointer to the beginning of the + /// allocated memory region. `size` is the actual size of the region while `flags` specifies + /// properties of the allocated region. If `EXTERN_BIT` (bit 0) set in flags, then we did not + /// allocate this segment and so should not try to deallocate or merge with others. + /// This function can return a `std::ptr::null_mut()` when allocation fails (other values of + /// the triple will be ignored). + fn alloc(&self, size: usize) -> (*mut u8, usize, u32); + + /// Remaps system memory region at `ptr` with size `oldsize` to a potential new location with + /// size `newsize`. `can_move` indicates if the location is allowed to move to a completely new + /// location, or that it is only allowed to change in size. Returns a pointer to the new + /// location in memory. + /// This function can return a `std::ptr::null_mut()` to signal an error. + fn remap(&self, ptr: *mut u8, oldsize: usize, newsize: usize, can_move: bool) -> *mut u8; + + /// Frees a part of a memory chunk. The original memory chunk starts at `ptr` with size `oldsize` + /// and is turned into a memory region starting at the same address but with `newsize` bytes. + /// Returns `true` iff the access memory region could be freed. + fn free_part(&self, ptr: *mut u8, oldsize: usize, newsize: usize) -> bool; + + /// Frees an entire memory region. Returns `true` iff the operation succeeded. When `false` is + /// returned, the `dlmalloc` may re-use the location on future allocation requests + fn free(&self, ptr: *mut u8, size: usize) -> bool; + + /// Indicates if the system can release a part of memory. For the `flags` argument, see + /// `Allocator::alloc` + fn can_release_part(&self, flags: u32) -> bool; + + /// Indicates whether newly allocated regions contain zeros. + fn allocates_zeros(&self) -> bool; + + /// Returns the page size. Must be a power of two + fn page_size(&self) -> usize; +} + +/// An allocator instance +/// +/// Instances of this type are used to allocate blocks of memory. For best +/// results only use one of these. Currently doesn't implement `Drop` to release +/// lingering memory back to the OS. That may happen eventually though! +pub struct Dlmalloc(dlmalloc::Dlmalloc); + +cfg_if::cfg_if! { + if #[cfg(target_family = "wasm")] { + #[path = "wasm.rs"] + mod sys; + } else if #[cfg(target_os = "windows")] { + #[path = "windows.rs"] + mod sys; + } else if #[cfg(target_os = "xous")] { + #[path = "xous.rs"] + mod sys; + } else if #[cfg(any(target_os = "linux", target_os = "macos"))] { + #[path = "unix.rs"] + mod sys; + } else { + #[path = "dummy.rs"] + mod sys; + } +} + +impl Dlmalloc { + /// Creates a new instance of an allocator + pub const fn new() -> Dlmalloc { + Dlmalloc(dlmalloc::Dlmalloc::new(System::new())) + } +} + +impl Dlmalloc { + /// Creates a new instance of an allocator + pub const fn new_with_allocator(sys_allocator: A) -> Dlmalloc { + Dlmalloc(dlmalloc::Dlmalloc::new(sys_allocator)) + } +} + +impl Dlmalloc { + /// Allocates `size` bytes with `align` align. + /// + /// Returns a null pointer if allocation fails. Returns a valid pointer + /// otherwise. + /// + /// Safety and contracts are largely governed by the `GlobalAlloc::alloc` + /// method contracts. + #[inline] + pub unsafe fn malloc(&mut self, size: usize, align: usize) -> *mut u8 { + if align <= self.0.malloc_alignment() { + self.0.malloc(size) + } else { + self.0.memalign(align, size) + } + } + + /// Same as `malloc`, except if the allocation succeeds it's guaranteed to + /// point to `size` bytes of zeros. + #[inline] + pub unsafe fn calloc(&mut self, size: usize, align: usize) -> *mut u8 { + let ptr = self.malloc(size, align); + if !ptr.is_null() && self.0.calloc_must_clear(ptr) { + ptr::write_bytes(ptr, 0, size); + } + ptr + } + + /// Deallocates a `ptr` with `size` and `align` as the previous request used + /// to allocate it. + /// + /// Safety and contracts are largely governed by the `GlobalAlloc::dealloc` + /// method contracts. + #[inline] + pub unsafe fn free(&mut self, ptr: *mut u8, size: usize, align: usize) { + let _ = align; + self.0.validate_size(ptr, size); + self.0.free(ptr) + } + + /// Reallocates `ptr`, a previous allocation with `old_size` and + /// `old_align`, to have `new_size` and the same alignment as before. + /// + /// Returns a null pointer if the memory couldn't be reallocated, but `ptr` + /// is still valid. Returns a valid pointer and frees `ptr` if the request + /// is satisfied. + /// + /// Safety and contracts are largely governed by the `GlobalAlloc::realloc` + /// method contracts. + #[inline] + pub unsafe fn realloc( + &mut self, + ptr: *mut u8, + old_size: usize, + old_align: usize, + new_size: usize, + ) -> *mut u8 { + self.0.validate_size(ptr, old_size); + + if old_align <= self.0.malloc_alignment() { + self.0.realloc(ptr, new_size) + } else { + let res = self.malloc(new_size, old_align); + if !res.is_null() { + let size = cmp::min(old_size, new_size); + ptr::copy_nonoverlapping(ptr, res, size); + self.free(ptr, old_size, old_align); + } + res + } + } + + /// If possible, gives memory back to the system if there is unused memory + /// at the high end of the malloc pool or in unused segments. + /// + /// You can call this after freeing large blocks of memory to potentially + /// reduce the system-level memory requirements of a program. However, it + /// cannot guarantee to reduce memory. Under some allocation patterns, some + /// large free blocks of memory will be locked between two used chunks, so + /// they cannot be given back to the system. + /// + /// The `pad` argument represents the amount of free trailing space to + /// leave untrimmed. If this argument is zero, only the minimum amount of + /// memory to maintain internal data structures will be left. Non-zero + /// arguments can be supplied to maintain enough trailing space to service + /// future expected allocations without having to re-obtain memory from the + /// system. + /// + /// Returns `true` if it actually released any memory, else `false`. + pub unsafe fn trim(&mut self, pad: usize) -> bool { + self.0.trim(pad) + } + + /// Releases all allocations in this allocator back to the system, + /// consuming self and preventing further use. + /// + /// Returns the number of bytes released to the system. + pub unsafe fn destroy(self) -> usize { + self.0.destroy() + } +} diff --git a/src/rust/vendor/dlmalloc/src/unix.rs b/src/rust/vendor/dlmalloc/src/unix.rs new file mode 100644 index 000000000..e6eb0fd46 --- /dev/null +++ b/src/rust/vendor/dlmalloc/src/unix.rs @@ -0,0 +1,131 @@ +use crate::Allocator; +use core::ptr; + +/// System setting for Linux +pub struct System { + _priv: (), +} + +impl System { + pub const fn new() -> System { + System { _priv: () } + } +} + +#[cfg(feature = "global")] +static mut LOCK: libc::pthread_mutex_t = libc::PTHREAD_MUTEX_INITIALIZER; + +unsafe impl Allocator for System { + fn alloc(&self, size: usize) -> (*mut u8, usize, u32) { + let addr = unsafe { + libc::mmap( + ptr::null_mut(), + size, + libc::PROT_WRITE | libc::PROT_READ, + libc::MAP_ANON | libc::MAP_PRIVATE, + -1, + 0, + ) + }; + if addr == libc::MAP_FAILED { + (ptr::null_mut(), 0, 0) + } else { + (addr.cast(), size, 0) + } + } + + #[cfg(target_os = "linux")] + fn remap(&self, ptr: *mut u8, oldsize: usize, newsize: usize, can_move: bool) -> *mut u8 { + let flags = if can_move { libc::MREMAP_MAYMOVE } else { 0 }; + let ptr = unsafe { libc::mremap(ptr.cast(), oldsize, newsize, flags) }; + if ptr == libc::MAP_FAILED { + ptr::null_mut() + } else { + ptr.cast() + } + } + + #[cfg(target_os = "macos")] + fn remap(&self, _ptr: *mut u8, _oldsize: usize, _newsize: usize, _can_move: bool) -> *mut u8 { + ptr::null_mut() + } + + #[cfg(target_os = "linux")] + fn free_part(&self, ptr: *mut u8, oldsize: usize, newsize: usize) -> bool { + unsafe { + let rc = libc::mremap(ptr.cast(), oldsize, newsize, 0); + if rc != libc::MAP_FAILED { + return true; + } + libc::munmap(ptr.add(newsize).cast(), oldsize - newsize) == 0 + } + } + + #[cfg(target_os = "macos")] + fn free_part(&self, ptr: *mut u8, oldsize: usize, newsize: usize) -> bool { + unsafe { libc::munmap(ptr.add(newsize).cast(), oldsize - newsize) == 0 } + } + + fn free(&self, ptr: *mut u8, size: usize) -> bool { + unsafe { libc::munmap(ptr.cast(), size) == 0 } + } + + fn can_release_part(&self, _flags: u32) -> bool { + true + } + + fn allocates_zeros(&self) -> bool { + true + } + + fn page_size(&self) -> usize { + 4096 + } +} + +#[cfg(feature = "global")] +pub fn acquire_global_lock() { + unsafe { assert_eq!(libc::pthread_mutex_lock(ptr::addr_of_mut!(LOCK)), 0) } +} + +#[cfg(feature = "global")] +pub fn release_global_lock() { + unsafe { assert_eq!(libc::pthread_mutex_unlock(ptr::addr_of_mut!(LOCK)), 0) } +} + +#[cfg(feature = "global")] +/// allows the allocator to remain unsable in the child process, +/// after a call to `fork(2)` +/// +/// #Safety +/// +/// if used, this function must be called, +/// before any allocations are made with the global allocator. +pub unsafe fn enable_alloc_after_fork() { + // atfork must only be called once, to avoid a deadlock, + // where the handler attempts to acquire the global lock twice + static mut FORK_PROTECTED: bool = false; + + unsafe extern "C" fn _acquire_global_lock() { + acquire_global_lock() + } + + unsafe extern "C" fn _release_global_lock() { + release_global_lock() + } + + acquire_global_lock(); + // if a process forks, + // it will acquire the lock before any other thread, + // protecting it from deadlock, + // due to the child being created with only the calling thread. + if !FORK_PROTECTED { + libc::pthread_atfork( + Some(_acquire_global_lock), + Some(_release_global_lock), + Some(_release_global_lock), + ); + FORK_PROTECTED = true; + } + release_global_lock(); +} diff --git a/src/rust/vendor/dlmalloc/src/wasm.rs b/src/rust/vendor/dlmalloc/src/wasm.rs new file mode 100644 index 000000000..b45e2756e --- /dev/null +++ b/src/rust/vendor/dlmalloc/src/wasm.rs @@ -0,0 +1,75 @@ +use crate::Allocator; +#[cfg(target_arch = "wasm32")] +use core::arch::wasm32 as wasm; +#[cfg(target_arch = "wasm64")] +use core::arch::wasm64 as wasm; +use core::ptr; + +/// System setting for Wasm +pub struct System { + _priv: (), +} + +impl System { + pub const fn new() -> System { + System { _priv: () } + } +} + +unsafe impl Allocator for System { + fn alloc(&self, size: usize) -> (*mut u8, usize, u32) { + let pages = size / self.page_size(); + let prev = wasm::memory_grow(0, pages); + if prev == usize::max_value() { + return (ptr::null_mut(), 0, 0); + } + ( + (prev * self.page_size()) as *mut u8, + pages * self.page_size(), + 0, + ) + } + + fn remap(&self, _ptr: *mut u8, _oldsize: usize, _newsize: usize, _can_move: bool) -> *mut u8 { + // TODO: I think this can be implemented near the end? + ptr::null_mut() + } + + fn free_part(&self, _ptr: *mut u8, _oldsize: usize, _newsize: usize) -> bool { + false + } + + fn free(&self, _ptr: *mut u8, _size: usize) -> bool { + false + } + + fn can_release_part(&self, _flags: u32) -> bool { + false + } + + fn allocates_zeros(&self) -> bool { + true + } + + fn page_size(&self) -> usize { + 64 * 1024 + } +} + +#[cfg(feature = "global")] +pub fn acquire_global_lock() { + // single threaded, no need! + assert!(!cfg!(target_feature = "atomics")); +} + +#[cfg(feature = "global")] +pub fn release_global_lock() { + // single threaded, no need! + assert!(!cfg!(target_feature = "atomics")); +} + +#[cfg(feature = "global")] +pub unsafe fn enable_alloc_after_fork() { + // single threaded, no need! + assert!(!cfg!(target_feature = "atomics")); +} diff --git a/src/rust/vendor/dlmalloc/src/windows.rs b/src/rust/vendor/dlmalloc/src/windows.rs new file mode 100644 index 000000000..ba88adca6 --- /dev/null +++ b/src/rust/vendor/dlmalloc/src/windows.rs @@ -0,0 +1,88 @@ +use crate::Allocator; +use core::mem::MaybeUninit; +use core::ptr; +use windows_sys::Win32::System::Memory::*; +use windows_sys::Win32::System::SystemInformation::*; +#[cfg(feature = "global")] +use windows_sys::Win32::System::Threading::*; + +pub struct System { + _priv: (), +} + +impl System { + pub const fn new() -> System { + System { _priv: () } + } +} + +unsafe impl Allocator for System { + fn alloc(&self, size: usize) -> (*mut u8, usize, u32) { + let addr = unsafe { + VirtualAlloc( + ptr::null_mut(), + size, + MEM_RESERVE | MEM_COMMIT, + PAGE_READWRITE, + ) + }; + + if addr.is_null() { + (ptr::null_mut(), 0, 0) + } else { + (addr.cast(), size, 0) + } + } + + fn remap(&self, _ptr: *mut u8, _oldsize: usize, _newsize: usize, _can_move: bool) -> *mut u8 { + ptr::null_mut() + } + + fn free_part(&self, ptr: *mut u8, oldsize: usize, newsize: usize) -> bool { + unsafe { VirtualFree(ptr.add(newsize).cast(), oldsize - newsize, MEM_DECOMMIT) != 0 } + } + + fn free(&self, ptr: *mut u8, _size: usize) -> bool { + unsafe { VirtualFree(ptr.cast(), 0, MEM_DECOMMIT) != 0 } + } + + fn can_release_part(&self, _flags: u32) -> bool { + true + } + + fn allocates_zeros(&self) -> bool { + true + } + + fn page_size(&self) -> usize { + unsafe { + let mut info = MaybeUninit::uninit(); + GetSystemInfo(info.as_mut_ptr()); + info.assume_init_ref().dwPageSize as usize + } + } +} + +// NB: `SRWLOCK_INIT` doesn't appear to be in `windows-sys` +#[cfg(feature = "global")] +static mut LOCK: SRWLOCK = SRWLOCK { + Ptr: ptr::null_mut(), +}; + +#[cfg(feature = "global")] +pub fn acquire_global_lock() { + unsafe { + AcquireSRWLockExclusive(ptr::addr_of_mut!(LOCK)); + } +} + +#[cfg(feature = "global")] +pub fn release_global_lock() { + unsafe { + ReleaseSRWLockExclusive(ptr::addr_of_mut!(LOCK)); + } +} + +/// Not needed on Windows +#[cfg(feature = "global")] +pub unsafe fn enable_alloc_after_fork() {} diff --git a/src/rust/vendor/dlmalloc/src/xous.rs b/src/rust/vendor/dlmalloc/src/xous.rs new file mode 100644 index 000000000..14dbfa1bc --- /dev/null +++ b/src/rust/vendor/dlmalloc/src/xous.rs @@ -0,0 +1,117 @@ +use crate::Allocator; +use core::ptr; + +pub struct System { + _priv: (), +} + +impl System { + pub const fn new() -> System { + System { _priv: () } + } +} + +#[cfg(target_arch = "riscv32")] +mod sys { + use core::arch::asm; + + pub fn increase_heap(length: usize) -> Result<(usize, usize), ()> { + let syscall_no_increase_heap = 10usize; + let memory_flags_read_write = 2usize | 4usize; + + let mut a0 = syscall_no_increase_heap; + let mut a1 = length; + let mut a2 = memory_flags_read_write; + + unsafe { + asm!( + "ecall", + inlateout("a0") a0, + inlateout("a1") a1, + inlateout("a2") a2, + out("a3") _, + out("a4") _, + out("a5") _, + out("a6") _, + out("a7") _, + ) + }; + + let result = a0; + let address = a1; + let length = a2; + + // 3 is the "MemoryRange" type, and the result is only valid + // if we get nonzero address and length. + if result == 3 && address != 0 && length != 0 { + Ok((address, length)) + } else { + Err(()) + } + } +} + +unsafe impl Allocator for System { + /// Allocate an additional `size` bytes on the heap, and return a new + /// chunk of memory, as well as the size of the allocation and some + /// flags. Since flags are unused on this platform, they will always + /// be `0`. + fn alloc(&self, size: usize) -> (*mut u8, usize, u32) { + let size = if size == 0 { + 4096 + } else if size & 4095 == 0 { + size + } else { + size + (4096 - (size & 4095)) + }; + + if let Ok((address, length)) = sys::increase_heap(size) { + let start = address - size + length; + (start as *mut u8, size, 0) + } else { + (ptr::null_mut(), 0, 0) + } + } + + fn remap(&self, _ptr: *mut u8, _oldsize: usize, _newsize: usize, _can_move: bool) -> *mut u8 { + // TODO + ptr::null_mut() + } + + fn free_part(&self, _ptr: *mut u8, _oldsize: usize, _newsize: usize) -> bool { + false + } + + fn free(&self, _ptr: *mut u8, _size: usize) -> bool { + false + } + + fn can_release_part(&self, _flags: u32) -> bool { + false + } + + fn allocates_zeros(&self) -> bool { + true + } + + fn page_size(&self) -> usize { + 4 * 1024 + } +} + +#[cfg(feature = "global")] +pub fn acquire_global_lock() { + // global feature should not be enabled + unimplemented!() +} + +#[cfg(feature = "global")] +pub fn release_global_lock() { + // global feature should not be enabled + unimplemented!() +} + +#[cfg(feature = "global")] +pub unsafe fn enable_alloc_after_fork() { + // platform does not support `fork()` call +} diff --git a/src/rust/vendor/dlmalloc/tests/global.rs b/src/rust/vendor/dlmalloc/tests/global.rs new file mode 100644 index 000000000..1e9bc66ec --- /dev/null +++ b/src/rust/vendor/dlmalloc/tests/global.rs @@ -0,0 +1,31 @@ +extern crate dlmalloc; + +use std::collections::HashMap; +use std::thread; + +#[global_allocator] +#[cfg(feature = "global")] +static A: dlmalloc::GlobalDlmalloc = dlmalloc::GlobalDlmalloc; + +#[test] +fn foo() { + println!("hello"); +} + +#[test] +fn map() { + let mut m = HashMap::new(); + m.insert(1, 2); + m.insert(5, 3); + drop(m); +} + +#[test] +fn strings() { + format!("foo, bar, {}", "baz"); +} + +#[test] +fn threads() { + assert!(thread::spawn(|| panic!()).join().is_err()); +} diff --git a/src/rust/vendor/dlmalloc/tests/smoke.rs b/src/rust/vendor/dlmalloc/tests/smoke.rs new file mode 100644 index 000000000..8bcb5d7e4 --- /dev/null +++ b/src/rust/vendor/dlmalloc/tests/smoke.rs @@ -0,0 +1,36 @@ +use arbitrary::Unstructured; +use dlmalloc::Dlmalloc; +use rand::{rngs::SmallRng, RngCore, SeedableRng}; + +#[test] +fn smoke() { + let mut a = Dlmalloc::new(); + unsafe { + let ptr = a.malloc(1, 1); + assert!(!ptr.is_null()); + *ptr = 9; + assert_eq!(*ptr, 9); + a.free(ptr, 1, 1); + + let ptr = a.malloc(1, 1); + assert!(!ptr.is_null()); + *ptr = 10; + assert_eq!(*ptr, 10); + a.free(ptr, 1, 1); + } +} + +#[path = "../fuzz/src/lib.rs"] +mod fuzz; + +#[test] +fn stress() { + let mut rng = SmallRng::seed_from_u64(0); + let mut buf = vec![0; 4096]; + let iters = if cfg!(miri) { 5 } else { 2000 }; + for _ in 0..iters { + rng.fill_bytes(&mut buf); + let mut u = Unstructured::new(&buf); + let _ = fuzz::run(&mut u); + } +} diff --git a/src/rust/vendor/fortanix-sgx-abi/.cargo-checksum.json b/src/rust/vendor/fortanix-sgx-abi/.cargo-checksum.json new file mode 100644 index 000000000..71c7c4425 --- /dev/null +++ b/src/rust/vendor/fortanix-sgx-abi/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"5ef38d3c4329644a02d5fe6019ea401cdd64d31c1a26fd16cf30c7d2dd87873f","src/lib.rs":"2da4a01e8baae15069a6ea32610602f1741e8deccad696f7f7d3e69035da2962"},"package":"57cafc2274c10fab234f176b25903ce17e690fca7597090d50880e047a0389c5"} \ No newline at end of file diff --git a/src/rust/vendor/fortanix-sgx-abi/Cargo.toml b/src/rust/vendor/fortanix-sgx-abi/Cargo.toml new file mode 100644 index 000000000..28e2993bb --- /dev/null +++ b/src/rust/vendor/fortanix-sgx-abi/Cargo.toml @@ -0,0 +1,55 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +name = "fortanix-sgx-abi" +version = "0.5.0" +authors = ["Fortanix, Inc."] +description = """ +An interface for Intel SGX enclaves. This is the interface for the +`x86_64-fortanix-unknown-sgx` target. + +This is a small yet functional interface suitable for writing larger enclaves. +In contrast to other enclave interfaces, this interface is primarly designed +for running entire applications in an enclave. + +This crate fully describes the type-level interface complete with +documentation. For implementors, this crate contains all the type definitions +and a macro with the function definitions. +""" +homepage = "https://edp.fortanix.com/" +documentation = "https://edp.fortanix.com/docs/api/fortanix_sgx_abi/" +keywords = [ + "sgx", + "enclave", +] +categories = ["os"] +license = "MPL-2.0" +repository = "https://github.com/fortanix/rust-sgx" + +[package.metadata.docs.rs] +features = ["docs"] + +[dependencies.compiler_builtins] +version = "0.1.0" +optional = true + +[dependencies.core] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-core" + +[features] +docs = [] +rustc-dep-of-std = [ + "core", + "compiler_builtins/rustc-dep-of-std", +] diff --git a/src/rust/vendor/fortanix-sgx-abi/src/lib.rs b/src/rust/vendor/fortanix-sgx-abi/src/lib.rs new file mode 100644 index 000000000..3511ae34b --- /dev/null +++ b/src/rust/vendor/fortanix-sgx-abi/src/lib.rs @@ -0,0 +1,903 @@ +/* Copyright (c) Fortanix, Inc. + * + * 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/. */ +#![cfg_attr( + not(feature = "docs"), + doc = "**You are viewing the internals documentation." +)] +#![cfg_attr( + not(feature = "docs"), + doc = "You probably want to compile the documentation with the “docs” feature.**" +)] +#![cfg_attr(not(feature = "docs"), doc = "---")] +//! The Fortanix SGX ABI (compiler target `x86_64-fortanix-unknown-sgx`) is an +//! interface for Intel SGX enclaves. It is a small yet functional interface +//! suitable for writing larger enclaves. In contrast to other enclave +//! interfaces, this interface is primarily designed for running entire +//! applications in an enclave. +//! +//! The Fortanix SGX ABI specification consists of two parts: +//! +//! 1. The calling convention (see FORTANIX-SGX-ABI.md) +//! 2. The execution environment and [usercalls](struct.Usercalls.html) (this document) +//! +//! Whereas the calling convention describes how information is passed to and +//! from the enclave, this document ascribes meaning to those values. +//! +//! The execution environment and usercalls have been designed with the +//! following goals in mind: +//! +//! 1. *Compatible with most Rust code:* Rust code that doesn't link to other C +//! libraries and that doesn't use files (see no. 5) should compile out of +//! the box. +//! 2. *Designed for SGX:* The SGX environment is unique and not compatible +//! with other application environments out there. The primitives specified +//! in this document are designed to work well with SGX, not to be similar +//! to or compatible with primitives known from other environments. +//! 3. *Designed for network services:* The most interesting usecase for SGX is +//! to run applications remotely in an untrusted environment, e.g. the +//! cloud. Therefore, there is a primary focus on supporting functionality +//! needed in those situations. +//! 4. *No filesystem:* Encrypted filesystems are hard. Especially in SGX, +//! consistency and freshness are big concerns. In this initial version, +//! there is no filesystem support, which is fine for most network services, +//! which would want to keep their state with a database service anyway. +//! Support might be added in the future. +//! 5. *Not POSIX:* The POSIX API is huge and contains many elements that are +//! not directly supported by the SGX instruction set, such as fork and +//! mmap. It is explicitly a non-goal of this specification to support all +//! of POSIX. +//! 6. *Designed to be portable:* Enclaves don't interact directly with the OS, +//! so there should be no need to recompile an enclave when running it with +//! a different OS. This specification does not require any particular +//! primitives or behavior from the OS. +//! +//! Like on regular operating systems, there are two types of enclaves: +//! *executable*-type and *library*-type. The main difference between the two +//! different types is how the enclave may be entered. Once an enclave TCS is +//! entered, the different types act virtually identically. More information on +//! the two different types, TCSs, and enclave entry may be found in the +//! [`entry`](entry/index.html) module. +//! +//! Once an enclave TCS is entered, it may performs *synchronous usercalls* as +//! described in the calling convention. The TCS maintains its execution state +//! between doing a usercall and returning from the usercall. Only when the TCS +//! exits, either through a non-usercall exit or through the +//! [`exit`](struct.Usercalls.html#method.exit) usercall, is the TCS state +//! destroyed. This is depicted in the following diagram. +//! +//! ![Enclave execution lifecycle](https://edp.fortanix.com/img/docs/enclave-execution-lifecycle.png) +//! +//! Enclaves may also perform *asynchronous usercalls*. This is detailed in the +//! [`async`](async/index.html) module. Most usercalls can be submitted either +//! synchronously or asynchronously. +#![allow(unused)] +#![no_std] +#![cfg_attr(feature = "rustc-dep-of-std", feature(staged_api))] +#![cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +#![doc(html_logo_url = "https://edp.fortanix.com/img/docs/edp-logo.svg", + html_favicon_url = "https://edp.fortanix.com/favicon.ico", + html_root_url = "https://edp.fortanix.com/docs/api/")] + +use core::ptr::NonNull; +use core::sync::atomic::{AtomicU64, AtomicUsize}; + +macro_rules! invoke_with_abi_spec [ + ( $m:ident ) => [ $m![ + +/// Specification of TCS and entry function requirements. +/// +/// Once an enclave has called the +/// [`exit`](../../struct.Usercalls.html#method.exit) usercall, if userspace +/// enters a TCS normally, the enclave must panic. If userspace returns a +/// usercall on a TCS, the enclave may decide whether to handle it normally or +/// to panic. +pub mod entry { + /// Specifies the entry points for libraries. + /// + /// The specification for library support is **experimental** and is + /// subject to change. + /// + /// When a user application wishes to call into the enclave library, + /// userspace may use any available TCS. Libraries may keep state between + /// invocations, but the library must not assume that subsequent calls will + /// go to the same TCS. + /// + /// The use of asynchronous usercalls with libraries is not recommended, as + /// userspace will not be able to wake up the appropriate thread in a + /// multi-threaded library scenario. + /// + /// Automatically launching threads using the + /// [`launch_thread`](../../struct.Usercalls.html#method.launch_thread) + /// usercall is not supported. Libraries that want to leverage + /// multi-threading must rely on application support to call into the + /// enclave from different threads. + pub mod library { + /// The entry point of every TCS. + /// + /// If a library wishes to expose multiple different functions, it must + /// implement this by multiplexing on one of the input parameters. It + /// is recommended to use `p1` for this purpose. + /// + /// The `_ignore` parameter may be set to any value by userspace. The + /// value observed by the enclave may be different from the value + /// passed by userspace and must therefore be ignored by the enclave. + pub fn entry(p1: u64, p2: u64, p3: u64, _ignore: u64, p4: u64, p5: u64) -> (u64, u64) { unimplemented!() } + } + + /// Specifies the entry points for executables. + pub mod executable { + use ByteBuffer; + + /// The main entry point of the enclave. This will be the entry point + /// of the first TCS. + /// + /// The enclave must not return from this entry. Instead, it must call + /// the [`exit`](../../struct.Usercalls.html#method.exit) usercall. If + /// the enclave does return from this TCS, and userspace subsequently + /// re-enters this TCS, the enclave must panic. + /// + /// Arbitrary “command-line arguments” may be passed in from userspace. + /// The enclave must ensure that the all buffers pointed to are + /// outside the enclave. The enclave should deallocate each + /// [`ByteBuffer`] as specified by the type. The enclave should + /// deallocate the main buffer by calling + /// [`free`]`(args, len * size_of::, 1)`. + /// + /// [`free`]: ../../struct.Usercalls.html#method.free + /// [`ByteBuffer`]: ../../struct.ByteBuffer.html + pub fn main_entry(args: *const ByteBuffer, len: usize) -> ! { unimplemented!() } + + /// The entry point of additional threads of the enclave, for non-first + /// TCSs. + /// + /// When returning from this TCS, userspace may re-enter this TCS after + /// another call to [`launch_thread`]. + /// + /// The enclave must keep track of whether it expects another thread to + /// be launched, e.g. by keeping track of how many times it called + /// [`launch_thread`]. If a TCS with this entry point is entered even + /// though the enclave didn't request it, the enclave must panic. + /// + /// [`launch_thread`]: ../../struct.Usercalls.html#method.launch_thread + pub fn thread_entry() { unimplemented!() } + } +} + +/// An arbitrary-sized buffer of bytes in userspace, allocated by userspace. +/// +/// This type is used when userspace may return arbitrary-sized data from a +/// usercall. When reading from the buffer, if `len` is not `0`, the enclave +/// must ensure the entire buffer is in the user memory range. Once the enclave +/// is done with the buffer, it should deallocate the buffer buffer by calling +/// [`free`]`(data, len, 1)`. +/// +/// If `len` is `0`, the enclave should ignore `data`. It should not call +/// `free`. +/// +/// [`free`]: ./struct.Usercalls.html#method.launch_thread +#[repr(C)] +#[derive(Copy, Clone)] +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub struct ByteBuffer { + pub data: *const u8, + pub len: usize +} + +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +unsafe impl Send for ByteBuffer {} + +/// Error code definitions and space allocation. +/// +/// Only non-zero positive values are valid errors. The variants are designed +/// to map to [std::io::ErrorKind]. See the source for the value mapping. +/// +/// [std::io::ErrorKind]: https://doc.rust-lang.org/std/io/enum.ErrorKind.html +#[repr(i32)] +#[derive(Copy, Clone, Eq, PartialEq)] +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub enum Error { + PermissionDenied = 0x01, + NotFound = 0x02, + Interrupted = 0x04, + WouldBlock = 0x0b, + AlreadyExists = 0x11, + InvalidInput = 0x16, + BrokenPipe = 0x20, + AddrInUse = 0x62, + AddrNotAvailable = 0x63, + ConnectionAborted = 0x67, + ConnectionReset = 0x68, + NotConnected = 0x6b, + TimedOut = 0x6e, + ConnectionRefused = 0x6f, + InvalidData = 0x2000_0000, + WriteZero = 0x2000_0001, + UnexpectedEof = 0x2000_0002, + /// This value is reserved for `Other`, but all undefined values also map + /// to `Other`. + Other = 0x3fff_ffff, + /// Start of the range of values reserved for user-defined errors. + UserRangeStart = 0x4000_0000, + /// End (inclusive) of the range of values reserved for user-defined errors. + UserRangeEnd = 0x7fff_ffff, +} + +/// A value indicating that the operation was successful. +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub const RESULT_SUCCESS: Result = 0; + +/// The first return value of usercalls that might fail. +/// +/// [`RESULT_SUCCESS`](constant.RESULT_SUCCESS.html) or an error code from the +/// [`Error`](enum.Error.html) type. +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub type Result = i32; + +/// The list of all usercalls. +/// +/// *This is not a real structure, it's just a convenient way to group +/// functions with `rustdoc`.* +/// +/// The usercall number is passed in the first register. Up to 4 arguments may +/// be passed in the remaining registers. Unspecified arguments and return +/// values must be 0. Userspace must check the arguments and the enclave must +/// check the return value. +/// +/// The usercall number may be one of the predefined numbers associated with +/// one of the usercalls defined below, or, if bit +/// [`USERCALL_USER_DEFINED`](constant.USERCALL_USER_DEFINED.html) is set, an +/// otherwise arbitrary number with an application-defined meaning. +/// +/// Raw pointers must always point to user memory. When receiving raw pointers +/// from userspace, the enclave must verify that the entire pointed-to memory +/// space is outside the enclave memory range. It must then copy all data in +/// user memory to enclave memory before operating on it. +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub struct Usercalls; + +/// Usercall numbers with this bit set will never be defined by this specification. +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub const USERCALL_USER_DEFINED: u64 = 0x8000_0000; + +/// A file descriptor. +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub type Fd = u64; + +/// Standard input file descriptor. Input read this way is not secure. +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub const FD_STDIN: Fd = 0; +/// Standard output file descriptor. This is not a secure output channel. +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub const FD_STDOUT: Fd = 1; +/// Standard error file descriptor. This is not a secure output channel. +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub const FD_STDERR: Fd = 2; + +/// # Streams +/// +/// The enclave must not assume anything about data read or written using these +/// calls. Data written may be piped directly to `/dev/null` by userspace, or +/// it may be published in the local newspaper. Similarly, data read may be +/// arbitrarily deleted, inserted, or changed. The enclave must use additional +/// security primitives such as sealing or TLS to obtain stronger guarantees. +/// +/// When a stream is read from by multiple threads simultaneously, the read +/// calls may be serialized in any order. This means the data returned by a +/// read call appeared that way in the stream, and every single byte in the +/// stream will be read and be read only once. However, the order in which all +/// stream data is returned is not defined. The same applies when +/// simultaneously submitting multiple read calls for the same stream +/// asynchronously. This all applies similarly to writing to a stream. +/// +/// To make sure to be able to re-assemble the stream, the enclave can take one +/// of the following approaches: +/// +/// 1. Submit all read calls to a single stream on a single thread. +/// 2. Serializing read calls by synchronizing access to a single stream. +/// +/// In addition, the enclave should use cryptographic integrity protection of +/// the stream data to ensure the stream data has not been tampered with. +impl Usercalls { + /// Read up to `len` bytes from stream `fd`. + /// + /// `buf` must point to a buffer in userspace with a size of at least + /// `len`. On a successful return, the number of bytes written is returned. + /// The enclave must check that the returned length is no more than `len`. + /// If `len` is `0`, this call should block until the stream is ready for + /// reading. If `len` is `0` or end of stream is reached, `0` may be + /// returned. + /// + /// The enclave may mix calls to [`read`](#method.read) and + /// [`read_alloc`](#method.read_alloc). + pub fn read(fd: Fd, buf: *mut u8, len: usize) -> (Result, usize) { unimplemented!() } + + /// Read some data from stream `fd`, letting the callee choose the amount. + /// + /// `buf` must point to a [`ByteBuffer`] in userspace, and `buf.data` must + /// contain `null`. On success, userspace will allocate memory for the read + /// data and populate `ByteBuffer` appropriately. The enclave must handle + /// and deallocate the buffer according to the `ByteBuffer` documentation. + /// + /// Since every read operation using this usercall requires two usercalls, + /// it is recommended to only call this usercall asynchronously. + /// + /// The enclave may mix calls to [`read`](#method.read) and + /// [`read_alloc`](#method.read_alloc). + /// + /// [`ByteBuffer`]: ./struct.ByteBuffer.html + pub fn read_alloc(fd: Fd, buf: *mut ByteBuffer) -> Result { unimplemented!() } + + /// Write up to `len` bytes to stream `fd`. + /// + /// `buf` must point to a buffer in userspace with a size of at least + /// `len`. On a successful return, the number of bytes written is returned. + /// The enclave must check that the returned length is no more than `len`. + /// If `len` is `0`, this call should block until the stream is ready for + /// writing. If `len` is `0` or the stream is closed, `0` may be returned. + pub fn write(fd: Fd, buf: *const u8, len: usize) -> (Result, usize) { unimplemented!() } + + /// Flush stream `fd`, ensuring that all intermediately buffered contents + /// reach their destination. + pub fn flush(fd: Fd) -> Result { unimplemented!() } + + /// Close stream `fd`. + /// + /// Once the stream is closed, no further data may be read or written. + /// Userspace may reuse the `fd` in the future for a different stream. + pub fn close(fd: Fd) { unimplemented!() } +} + +/// # Networking +/// +/// In keeping with the design goals for this specification, the +/// networking/socket interface doesn't use `sockaddr` types and doesn't +/// have a separate API for name resolution. Userspace can't be trusted to +/// do name resolution correctly, and even if it did, *userspace can't be +/// trusted to actually connect streams to the correct address* specified by +/// the enclave. Therefore, addresses specified should merely be treated as a +/// suggestion, and additional measures must be taken by an enclave to verify +/// the stream is connected to the correct peer, e.g. TLS. +/// +/// The networking API works with strings as addresses. All byte buffers +/// representing network addresses should contain a valid UTF-8 string. The +/// enclave should panic if it is passed an invalid string by userspace. It is +/// suggested that userspace supports at least the following notations: +/// +/// * `hostname:port-number` (e.g. `example.com:123`) +/// * `dotted-octet-ipv4-address:port-number` (e.g. `192.0.2.1:123`) +/// * `[ipv6-address]:port-number` (e.g. `[2001:db8::1]:123`) +/// +/// Additionally, other forms may be accepted, for example service names: +/// +/// * `fully-qualified-service-name` (e.g. `_example._tcp.example.com`) +/// * `address:service-name` (e.g. `address:example`) +/// +/// # Errors +/// +/// Networking calls taking an address may return the [`InvalidInput`] error if +/// the address could not be interpreted by userspace. +/// +/// [`InvalidInput`]: enum.Error.html#variant.InvalidInput +impl Usercalls { + /// Setup a listening socket. + /// + /// The socket is bound to the address specified in `addr`. `addr` must be + /// a buffer in user memory with a size of at least `len`. + /// + /// On success, a file descriptor is returned which may be passed to + /// [`accept_stream`](#method.accept_stream) or [`close`](#method.close). + /// + /// The enclave may optionally request the local socket address be returned + /// in `local_addr`. On success, if `local_addr` is not NULL, userspace + /// will allocate memory for the address and populate [`ByteBuffer`] + /// appropriately. The enclave must handle and deallocate the buffer + /// according to the `ByteBuffer` documentation. + /// + /// The enclave must not make any security decisions based on the local + /// address received. + /// + /// [`ByteBuffer`]: ./struct.ByteBuffer.html + pub fn bind_stream(addr: *const u8, len: usize, local_addr: *mut ByteBuffer) -> (Result, Fd) { unimplemented!() } + + /// Accept a new connection from a listening socket. + /// + /// `fd` should be a file descriptor previously returned from + /// [`bind_stream`](#method.bind_stream). + /// + /// The enclave may optionally request the local or peer socket addresses + /// be returned in `local_addr` or `peer_addr`, respectively. On success, + /// if `local_addr` and/or `peer_addr` is not NULL, userspace will allocate + /// memory for the address and populate the respective [`ByteBuffer`] + /// appropriately. + /// + /// The enclave must handle and deallocate each buffer according to the + /// `ByteBuffer` documentation. + /// + /// The enclave must not make any security decisions based on the local or + /// peer address received. + /// + /// [`ByteBuffer`]: ./struct.ByteBuffer.html + pub fn accept_stream(fd: Fd, local_addr: *mut ByteBuffer, peer_addr: *mut ByteBuffer) -> (Result, Fd) { unimplemented!() } + + /// Create a new stream connection to the specified address. + /// + /// The enclave may optionally request the local or peer socket addresses + /// be returned in `local_addr` or `peer_addr`, respectively. On success, + /// if `local_addr` and/or `peer_addr` is not NULL, userspace will allocate + /// memory for the address and populate the respective [`ByteBuffer`] + /// appropriately. + /// + /// The enclave must handle and deallocate each buffer according to the + /// `ByteBuffer` documentation. + /// + /// The enclave must not make any security decisions based on the local or + /// peer address received. + /// + /// [`ByteBuffer`]: ./struct.ByteBuffer.html + pub fn connect_stream(addr: *const u8, len: usize, local_addr: *mut ByteBuffer, peer_addr: *mut ByteBuffer) -> (Result, Fd) { unimplemented!() } +} + +/// The absolute address of a TCS in the current enclave. +// FIXME: `u8` should be some `extern type` instead. +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub type Tcs = NonNull; + +/// An event that will be triggered by userspace when the usercall queue is not +/// or no longer full. +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub const EV_USERCALLQ_NOT_FULL: u64 = 0b0000_0000_0000_0001; +/// An event that will be triggered by userspace when the return queue is not +/// or no longer empty. +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub const EV_RETURNQ_NOT_EMPTY: u64 = 0b0000_0000_0000_0010; +/// An event that enclaves can use for synchronization. +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub const EV_UNPARK: u64 = 0b0000_0000_0000_0100; +/// An event that will be triggered by userspace when the cancel queue is not +/// or no longer full. +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub const EV_CANCELQ_NOT_FULL: u64 = 0b0000_0000_0000_1000; + +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub const WAIT_NO: u64 = 0; +#[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] +pub const WAIT_INDEFINITE: u64 = !0; + +/// # Execution control +/// +/// ## TCS event queues +/// +/// Userspace will maintain a queue for each running TCS with events to be +/// delivered. Each event is characterized by a bitset with at least one bit +/// set. Userspace or the enclave (using the `send` usercall) can put events on +/// this queue. +/// If the enclave isn't waiting for an event when an event is queued, the event +/// remains on the queue until it delivered to the enclave in a later `wait` +/// usercall. If an enclave is waiting for an event, and the queue contains an +/// event that is a subset of the waited-for event mask, that event is removed +/// from the queue and execution control is returned to the enclave. +/// +/// Events not defined in this specification should not be generated. +impl Usercalls { + /// In [executables](entry/executable/index.html), this will instruct + /// userspace to enter another TCS in another thread. This TCS should have + /// the [`thread_entry`] entrypoint. As documented in [`thread_entry`], the + /// enclave should keep track of how many threads it launched and reconcile + /// this with the number of entries into [`thread_entry`]. If no free TCSes + /// are immediately available, this may return an error. + /// + /// This function will never be successful in [libraries]. See the + /// [`library`] documentation on how to use threads with libraries. + /// + /// [`thread_entry`]: entry/executable/fn.thread_entry.html + /// [libraries]: entry/library/index.html + /// [`library`]: entry/library/index.html + pub fn launch_thread() -> Result { unimplemented!() } + + /// Signals to userspace that this enclave needs to be destroyed. + /// + /// The enclave must not rely on userspace to terminate other threads still + /// running. Similarly, the enclave must not trust that it will no longer + /// be entered by userspace, and it must safeguard against that in the + /// entrypoints. + /// + /// If `panic` is set to `true`, the enclave has exited due to a panic + /// condition. If the enclave was running in debug mode, the enclave may + /// have output a debug message according to the calling convention. + pub fn exit(panic: bool) -> ! { unimplemented!() } + + /// Wait for an event to occur, or check if an event is currently pending. + /// + /// `timeout` must be [`WAIT_NO`] or [`WAIT_INDEFINITE`] or a positive + /// value smaller than u64::MAX specifying number of nanoseconds to wait. + /// + /// If `timeout` is [`WAIT_INDEFINITE`], this call will block and return + /// once a matching event is queued on this TCS. If `timeout` is + /// [`WAIT_NO`], this call will return immediately, and the return value + /// will indicate if an event was pending. If it was, it has been dequeued. + /// If not, the [`WouldBlock`] error value will be returned. If `timeout` + /// is a value other than [`WAIT_NO`] and [`WAIT_INDEFINITE`], this call + /// will block until either a matching event is queued in which case the + /// return value will indicate the event, or the timeout is reached in + /// which case the [`TimedOut`] error value will be returned. + /// + /// A matching event is one whose bits are equal to or a subset of + /// `event_mask`. If `event_mask` is `0`, this call will never return due + /// to an event. If `timeout` is also [`WAIT_INDEFINITE`], this call will + /// simply never return. + /// + /// Enclaves must not assume that this call only returns in response to + /// valid events generated by the enclave. This call may return for invalid + /// event sets, or before `timeout` has expired even though no event is + /// pending. + /// + /// When executed synchronously, this gives userspace an opportunity to + /// schedule something else in a cooperative multitasking environment. + /// + /// When executed asynchronously, this may trigger an + /// [`EV_RETURNQ_NOT_EMPTY`] event on this or other TCSes. It is not + /// recommended to execute this call asynchronously with a `timeout` value + /// other than [`WAIT_NO`]. + /// + /// [`WAIT_NO`]: constant.WAIT_NO.html + /// [`WAIT_INDEFINITE`]: constant.WAIT_INDEFINITE.html + /// [`EV_RETURNQ_NOT_EMPTY`]: constant.EV_RETURNQ_NOT_EMPTY.html + /// [`WouldBlock`]: enum.Error.html#variant.WouldBlock + /// [`TimedOut`]: enum.Error.html#variant.TimedOut + pub fn wait(event_mask: u64, timeout: u64) -> (Result, u64) { unimplemented!() } + + /// Send an event to one or all TCSes. + /// + /// If `tcs` is `None`, send the event `event_set` to all TCSes of this + /// enclave, otherwise, send it to the TCS specified in `tcs`. + /// + /// # Error + /// + /// This will return the [`InvalidInput`] error if `tcs` is set but doesn't + /// specify a valid TCS address. + /// + /// [`InvalidInput`]: enum.Error.html#variant.InvalidInput + pub fn send(event_set: u64, tcs: Option) -> Result { unimplemented!() } +} + +/// # Miscellaneous +impl Usercalls { + /// This returns the number of nanoseconds since midnight UTC on January 1, + /// 1970\. The enclave must not rely on the accuracy of this time for + /// security purposes, such as checking credential expiry or preventing + /// rollback. + pub fn insecure_time() -> u64 { unimplemented!() } +} + +/// # Memory +/// +/// The enclave must not use any memory outside the enclave, except for memory +/// explicitly returned from usercalls. You can obtain arbitrary memory in +/// userspace using [`alloc`](#method.alloc). +impl Usercalls { + /// Request user memory. + /// + /// Request an allocation in user memory of size `size` and with alignment + /// `align`. If successful, a pointer to this memory will be returned. The + /// enclave must check the pointer is correctly aligned and that the entire + /// range of memory pointed to is outside the enclave. + /// + /// It is an error to call this function with `size` equal to `0`. + pub fn alloc(size: usize, alignment: usize) -> (Result, *mut u8) { unimplemented!() } + + /// Free user memory. + /// + /// This must be called to deallocate memory in userspace. The pointer + /// `ptr` must have previously been returned by a usercall. The `size` and + /// `alignment` specified must exactly match what was allocated. This + /// function must be called exactly once for each user memory buffer. + /// + /// Calling this function with `size` equal to `0` is a no-op. + pub fn free(ptr: *mut u8, size: usize, alignment: usize) { unimplemented!() } +} + +/// Asynchronous usercall specification. +/// +/// An asynchronous usercall allows an enclave to submit a usercall without +/// exiting the enclave. This is necessary since enclave entries and exits are +/// slow (see academic work on [SCONE], [HotCalls]). In addition, the enclave +/// can perform other tasks while it waits for the usercall to complete. Those +/// tasks may include issuing other usercalls, either synchronously or +/// asynchronously. +/// +/// Two [MPSC queues] are [allocated per enclave]. One queue is used by any +/// enclave thread to submit usercalls to userspace. Userspace will read the +/// calls from this queue and handle them. Another queue is used by userspace +/// to return completed usercalls to the enclave. +/// +/// Each call is identified by an enclave-specified `id`. Userspace must +/// provide the same `id` when returning. The enclave must not submit multiple +/// concurrent usercalls with the same `id`, but it may reuse an `id` once the +/// original usercall with that `id` has returned. +/// +/// An optional third queue can be used to cancel usercalls. To cancel an async +/// usercall, the enclave should send the usercall's id and number on this +/// queue. If the usercall has already been processed, the enclave may still +/// receive a successful result for the usercall. Otherwise, the userspace will +/// cancel the usercall's execution and return an [`Interrupted`] error on the +/// return queue to notify the enclave of the cancellation. Note that usercalls +/// that do not return [`Result`] cannot be cancelled and if the enclave sends +/// a cancellation for such a usercall, the userspace should simply ignore it. +/// Additionally, userspace may choose to ignore cancellations for non-blocking +/// usercalls. Userspace should be able to cancel a usercall that has been sent +/// by the enclave but not yet received by the userspace, i.e. if cancellation +/// is received before the usercall itself. To avoid keeping such cancellations +/// forever and preventing the enclave from re-using usercall ids, userspace +/// should synchronize cancel queue with the usercall queue such that the +/// following invariant is maintained: whenever the enclave writes an id to the +/// usercall or cancel queue, the enclave will not reuse that id until the +/// usercall queue's read pointer has advanced to the write pointer at the time +/// the id was written. +/// +/// *TODO*: Add diagram. +/// +/// [MPSC queues]: struct.FifoDescriptor.html +/// [allocated per enclave]: ../struct.Usercalls.html#method.async_queues +/// [SCONE]: https://www.usenix.org/conference/osdi16/technical-sessions/presentation/arnautov +/// [HotCalls]: http://www.ofirweisse.com/ISCA17_Ofir_Weisse.pdf +/// [`Interrupted`]: enum.Error.html#variant.Interrupted +/// [`Result`]: type.Result.html +/// +/// # Enclave/userspace synchronization +/// +/// When the enclave needs to wait on a queue, it executes the [`wait()`] +/// usercall synchronously, specifying [`EV_USERCALLQ_NOT_FULL`], +/// [`EV_RETURNQ_NOT_EMPTY`], [`EV_CANCELQ_NOT_FULL`], or any combination +/// thereof in the `event_mask`. Userspace will wake +/// any or all threads waiting on the appropriate event when it is triggered. +/// +/// When userspace needs to wait on a queue, it will park the current thread +/// (or do whatever else is appropriate for the synchronization model currently +/// in use by userspace). Any synchronous usercall will wake the blocked thread +/// (or otherwise signal that either queue is ready). +/// +/// [`wait()`]: ../struct.Usercalls.html#method.wait +/// [`EV_USERCALLQ_NOT_FULL`]: ../constant.EV_USERCALLQ_NOT_FULL.html +/// [`EV_RETURNQ_NOT_EMPTY`]: ../constant.EV_RETURNQ_NOT_EMPTY.html +/// [`EV_CANCELQ_NOT_FULL`]: ../constant.EV_CANCELQ_NOT_FULL.html +pub mod async { + use super::*; + use core::sync::atomic::{AtomicU64, AtomicUsize}; + + #[repr(C)] + #[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] + pub struct WithId { + pub id: AtomicU64, + pub data: T, + } + + /// A usercall. + /// The elements correspond to the RDI, RSI, RDX, R8, and R9 registers + /// in the synchronous calling convention. + #[repr(C)] + #[derive(Copy, Clone, Default)] + #[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] + pub struct Usercall(pub u64, pub u64, pub u64, pub u64, pub u64); + + #[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] + impl From for (u64, u64, u64, u64, u64) { + fn from(u: Usercall) -> Self { + let Usercall(p1, p2, p3, p4, p5) = u; + (p1, p2, p3, p4, p5) + } + } + + #[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] + impl From<(u64, u64, u64, u64, u64)> for Usercall { + fn from(p: (u64, u64, u64, u64, u64)) -> Self { + Usercall(p.0, p.1, p.2, p.3, p.4) + } + } + + /// The return value of a usercall. + /// The elements correspond to the RSI and RDX registers in the + /// synchronous calling convention. + #[repr(C)] + #[derive(Copy, Clone, Default)] + #[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] + pub struct Return(pub u64, pub u64); + + #[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] + impl From for (u64, u64) { + fn from(r: Return) -> Self { + let Return(r1, r2) = r; + (r1, r2) + } + } + + #[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] + impl From<(u64, u64)> for Return { + fn from(r: (u64, u64)) -> Self { + Return(r.0, r.1) + } + } + + /// Cancel a usercall previously sent to userspace. + #[repr(C)] + #[derive(Copy, Clone, Default)] + #[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] + pub struct Cancel; + + /// A circular buffer used as a FIFO queue with atomic reads and writes. + /// + /// The read offset is the element that was most recently read by the + /// receiving end of the queue. The write offset is the element that was + /// most recently written by the sending end. If the two offsets are equal, + /// the queue is either empty or full. + /// + /// The size of the buffer is such that not all the bits of the offset are + /// necessary to encode the current offset. The next highest unused bit is + /// used to keep track of the number of times the offset has wrapped + /// around. If the offsets are the same and the bit is the same in the read + /// and write offsets, the queue is empty. If the bit is different in the + /// read and write offsets, the queue is full. + /// + /// The following procedures will operate the queues in a multiple producer + /// single consumer (MPSC) fashion. + /// + /// ## Push operation + /// + /// To push an element onto the queue: + /// + /// 1. Load the current offsets. + /// 2. If the queue is full, wait, then go to step 1. + /// 3. Add 1 to the write offset and do an atomic compare-and-swap (CAS) + /// with the current offsets. If the CAS was not successful, go to step + /// 1\. + /// 4. Write the data, then the `id`. + /// 5. If the queue was empty in step 1, signal the reader to wake up. + /// + /// ## Pop operation + /// + /// To pop an element off the queue: + /// + /// 1. Load the current offsets. + /// 2. If the queue is empty, wait, then go to step 1. + /// 3. Add 1 to the read offset. + /// 4. Read the `id` at the new read offset. + /// 5. If `id` is `0`, go to step 4 (spin). Spinning is OK because data is + /// expected to be written imminently. + /// 6. Read the data, then store `0` in the `id`. + /// 7. Store the new read offset, retrieving the old offsets. + /// 8. If the queue was full before step 7, signal the writer to wake up. + #[repr(C)] + #[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] + pub struct FifoDescriptor { + /// Pointer to the queue memory. Must have a size of + /// `len * size_of::>()` bytes and have alignment + /// `align_of::>`. + pub data: *mut WithId, + /// The number of elements pointed to by `data`. Must be a power of two + /// less than or equal to 2³¹. + pub len: usize, + /// Actually a `(u32, u32)` tuple, aligned to allow atomic operations + /// on both halves simultaneously. The first element (low dword) is + /// the read offset and the second element (high dword) is the write + /// offset. + pub offsets: *const AtomicUsize, + } + + // not using `#[derive]` because that would require T: Clone + #[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] + impl Clone for FifoDescriptor { + fn clone(&self) -> Self { + *self + } + } + + // not using `#[derive]` because that would require T: Copy + #[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] + impl Copy for FifoDescriptor {} + + /// # Asynchronous usercalls + /// + /// *Due to `rustdoc`, this section may appear at the top of the + /// `Usercalls` documentation. You might want to read the other sections + /// first and then come back to this one.* + /// + /// See also the [`async` module](async/index.html) documentation. + impl Usercalls { + /// Request FIFO queues for asynchronous usercalls. `usercall_queue` + /// and `return_queue` must point to valid user memory with the correct + /// size and alignment for their types. `cancel_queue` is optional, but + /// if specified (not null) it must point to valid user memory with + /// correct size and alignment. + /// On return, userspace will have filled these structures with + /// information about the queues. A single set of queues will be + /// allocated per enclave. Once this usercall has returned successfully, + /// calling this usercall again is equivalent to calling `exit(true)`. + /// + /// May fail if the platform does not support asynchronous usercalls. + /// + /// The enclave must ensure that the data pointed to in the fields of + /// [`FifoDescriptor`] is outside the enclave. + /// + /// [`FifoDescriptor`]: async/struct.FifoDescriptor.html + pub fn async_queues( + usercall_queue: *mut FifoDescriptor, + return_queue: *mut FifoDescriptor, + cancel_queue: *mut FifoDescriptor + ) -> Result { unimplemented!() } + } +} + +]; ] ]; + +// docs: Just render the docs verbatim +macro_rules! docs { + ($($tt:tt)*) => ($($tt)*) +} + +#[cfg(feature = "docs")] +invoke_with_abi_spec!(docs); + +// types: flatten the module structure and ignore any items that are not types. +macro_rules! types { + // flatten modules + ($(#[$meta:meta])* pub mod $modname:ident { $($contents:tt)* } $($remainder:tt)*) => + { types!($($contents)*); types!($($remainder)*); }; + // ignore impls + ($(#[$meta:meta])* impl Usercalls { $($contents:tt)* } $($remainder:tt)* ) => + { types!($($remainder)*); }; + // ignore `struct Usercalls` + ($(#[$meta:meta])* pub struct Usercalls; $($remainder:tt)* ) => + { types!($($remainder)*); }; + // ignore free functions + ($(#[$meta:meta])* pub fn $f:ident($($n:ident: $t:ty),*) $(-> $r:ty)* { unimplemented!() } $($remainder:tt)* ) => + { types!($($remainder)*); }; + // ignore use statements + (use $($tt:tt)::*; $($remainder:tt)* ) => + { types!($($remainder)*); }; + // copy all other items verbatim + ($item:item $($remainder:tt)*) => + { $item types!($($remainder)*); }; + () => {}; +} + +#[cfg(not(feature = "docs"))] +invoke_with_abi_spec!(types); + +// Define a macro that will call a second macro providing the list of all +// function declarations inside all `impl Usercalls` blocks. +macro_rules! define_invoke_with_usercalls { + // collect all usercall function declarations in a list + (@ [$($accumulated:tt)*] $(#[$meta1:meta])* impl Usercalls { $($(#[$meta2:meta])* pub fn $f:ident($($n:ident: $t:ty),*) $(-> $r:ty)* { unimplemented!() } )* } $($remainder:tt)* ) => + { define_invoke_with_usercalls!(@ [$($accumulated)* $(fn $f($($n: $t),*) $(-> $r)*;)*] $($remainder)*); }; + // visit modules + (@ $accumulated:tt $(#[$meta:meta])* pub mod $modname:ident { $($contents:tt)* } $($remainder:tt)*) => + { define_invoke_with_usercalls!(@ $accumulated $($contents)* $($remainder)*); }; + // ignore all other items + (@ $accumulated:tt $item:item $($remainder:tt)*) => + { define_invoke_with_usercalls!(@ $accumulated $($remainder)*); }; + // Define the macro + (@ $accumulated:tt) => { + /// Call the macro `$m`, passing a semicolon-separated list of usercall + /// function declarations. + /// + /// The passed in macro could for example use the following pattern: + /// + /// ```text + /// ($(fn $f:ident($($n:ident: $t:ty),*) $(-> $r:tt)*; )*) + /// ``` + #[macro_export] + #[cfg_attr(feature = "rustc-dep-of-std", unstable(feature = "sgx_platform", issue = "56975"))] + macro_rules! invoke_with_usercalls { + ($m:ident) => { $m! $accumulated; } + } + }; + // start collection with an empty list + ($($tt:tt)*) => { + define_invoke_with_usercalls!(@ [] $($tt)*); + } +} + +#[cfg(not(feature = "docs"))] +invoke_with_abi_spec!(define_invoke_with_usercalls); diff --git a/src/rust/vendor/getopts/.cargo-checksum.json b/src/rust/vendor/getopts/.cargo-checksum.json new file mode 100644 index 000000000..26d98808b --- /dev/null +++ b/src/rust/vendor/getopts/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"eb778be71513b195b13c40e7f04ebce631ec4af5858a49693a71270000288791","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"5632a44cbb0f3727207a5ba5df3e8ce5229fab6882402285e7c1f50585d2cc69","src/lib.rs":"2c482a91d2adba4cc3abf84b6be812d5ed35f86f8fe6247201bb1511724eb850","src/tests/mod.rs":"e7a92033e4bb5b31a60b3db01c0c6d8d5498fdeb2d612990d2c44eae87552257","tests/smoke.rs":"26a95ac42e42b766ae752fe8531fb740fd147d5cdff352dec0763d175ce91806"},"package":"14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"} \ No newline at end of file diff --git a/src/rust/vendor/getopts/Cargo.toml b/src/rust/vendor/getopts/Cargo.toml new file mode 100644 index 000000000..db224fcf5 --- /dev/null +++ b/src/rust/vendor/getopts/Cargo.toml @@ -0,0 +1,40 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies +# +# If you believe there's an error in this file please file an +# issue against the rust-lang/cargo repository. If you're +# editing this file be aware that the upstream Cargo.toml +# will likely look very different (and much more reasonable) + +[package] +name = "getopts" +version = "0.2.21" +authors = ["The Rust Project Developers"] +description = "getopts-like option parsing.\n" +homepage = "https://github.com/rust-lang/getopts" +documentation = "https://doc.rust-lang.org/getopts" +readme = "README.md" +categories = ["command-line-interface"] +license = "MIT/Apache-2.0" +repository = "https://github.com/rust-lang/getopts" +[dependencies.core] +version = "1.0" +optional = true +package = "rustc-std-workspace-core" + +[dependencies.std] +version = "1.0" +optional = true +package = "rustc-std-workspace-std" + +[dependencies.unicode-width] +version = "0.1.5" +[dev-dependencies.log] +version = "0.4" + +[features] +rustc-dep-of-std = ["unicode-width/rustc-dep-of-std", "std", "core"] diff --git a/src/rust/vendor/getopts/LICENSE-APACHE b/src/rust/vendor/getopts/LICENSE-APACHE new file mode 100644 index 000000000..16fe87b06 --- /dev/null +++ b/src/rust/vendor/getopts/LICENSE-APACHE @@ -0,0 +1,201 @@ + 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. diff --git a/src/rust/vendor/getopts/LICENSE-MIT b/src/rust/vendor/getopts/LICENSE-MIT new file mode 100644 index 000000000..39d4bdb5a --- /dev/null +++ b/src/rust/vendor/getopts/LICENSE-MIT @@ -0,0 +1,25 @@ +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. diff --git a/src/rust/vendor/getopts/README.md b/src/rust/vendor/getopts/README.md new file mode 100644 index 000000000..065a05638 --- /dev/null +++ b/src/rust/vendor/getopts/README.md @@ -0,0 +1,15 @@ +getopts +=== + +A Rust library for option parsing for CLI utilities. + +[Documentation](https://docs.rs/getopts) + +## Usage + +Add this to your `Cargo.toml`: + +```toml +[dependencies] +getopts = "0.2" +``` diff --git a/src/rust/vendor/getopts/src/lib.rs b/src/rust/vendor/getopts/src/lib.rs new file mode 100644 index 000000000..fd45b9508 --- /dev/null +++ b/src/rust/vendor/getopts/src/lib.rs @@ -0,0 +1,1046 @@ +// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. +// +// ignore-lexer-test FIXME #15677 + +//! Simple getopt alternative. +//! +//! Construct a vector of options, either by using `reqopt`, `optopt`, and +//! `optflag` or by building them from components yourself, and pass them to +//! `getopts`, along with a vector of actual arguments (not including +//! `argv[0]`). You'll either get a failure code back, or a match. You'll have +//! to verify whether the amount of 'free' arguments in the match is what you +//! expect. Use `opt_*` accessors to get argument values out of the matches +//! object. +//! +//! Single-character options are expected to appear on the command line with a +//! single preceding dash; multiple-character options are expected to be +//! proceeded by two dashes. Options that expect an argument accept their +//! argument following either a space or an equals sign. Single-character +//! options don't require the space. +//! +//! # Usage +//! +//! This crate is [on crates.io](https://crates.io/crates/getopts) and can be +//! used by adding `getopts` to the dependencies in your project's `Cargo.toml`. +//! +//! ```toml +//! [dependencies] +//! getopts = "0.2" +//! ``` +//! +//! and this to your crate root: +//! +//! ```rust +//! extern crate getopts; +//! ``` +//! +//! # Example +//! +//! The following example shows simple command line parsing for an application +//! that requires an input file to be specified, accepts an optional output file +//! name following `-o`, and accepts both `-h` and `--help` as optional flags. +//! +//! ```{.rust} +//! extern crate getopts; +//! use getopts::Options; +//! use std::env; +//! +//! fn do_work(inp: &str, out: Option) { +//! println!("{}", inp); +//! match out { +//! Some(x) => println!("{}", x), +//! None => println!("No Output"), +//! } +//! } +//! +//! fn print_usage(program: &str, opts: Options) { +//! let brief = format!("Usage: {} FILE [options]", program); +//! print!("{}", opts.usage(&brief)); +//! } +//! +//! fn main() { +//! let args: Vec = env::args().collect(); +//! let program = args[0].clone(); +//! +//! let mut opts = Options::new(); +//! opts.optopt("o", "", "set output file name", "NAME"); +//! opts.optflag("h", "help", "print this help menu"); +//! let matches = match opts.parse(&args[1..]) { +//! Ok(m) => { m } +//! Err(f) => { panic!(f.to_string()) } +//! }; +//! if matches.opt_present("h") { +//! print_usage(&program, opts); +//! return; +//! } +//! let output = matches.opt_str("o"); +//! let input = if !matches.free.is_empty() { +//! matches.free[0].clone() +//! } else { +//! print_usage(&program, opts); +//! return; +//! }; +//! do_work(&input, output); +//! } +//! ``` + +#![doc( + html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png", + html_favicon_url = "https://www.rust-lang.org/favicon.ico", + html_root_url = "https://docs.rs/getopts/0.2.20" +)] +#![deny(missing_docs)] +#![cfg_attr(test, deny(warnings))] + +#[cfg(test)] +#[macro_use] +extern crate log; +extern crate unicode_width; + +use self::Fail::*; +use self::HasArg::*; +use self::Name::*; +use self::Occur::*; +use self::Optval::*; + +use std::error::Error; +use std::ffi::OsStr; +use std::fmt; +use std::iter::{repeat, IntoIterator}; +use std::result; +use std::str::FromStr; + +use unicode_width::UnicodeWidthStr; + +#[cfg(test)] +mod tests; + +/// A description of the options that a program can handle. +pub struct Options { + grps: Vec, + parsing_style: ParsingStyle, + long_only: bool, +} + +impl Default for Options { + fn default() -> Self { + Self::new() + } +} + +impl Options { + /// Create a blank set of options. + pub fn new() -> Options { + Options { + grps: Vec::new(), + parsing_style: ParsingStyle::FloatingFrees, + long_only: false, + } + } + + /// Set the parsing style. + pub fn parsing_style(&mut self, style: ParsingStyle) -> &mut Options { + self.parsing_style = style; + self + } + + /// Set or clear "long options only" mode. + /// + /// In "long options only" mode, short options cannot be clustered + /// together, and long options can be given with either a single + /// "-" or the customary "--". This mode also changes the meaning + /// of "-a=b"; in the ordinary mode this will parse a short option + /// "-a" with argument "=b"; whereas in long-options-only mode the + /// argument will be simply "b". + pub fn long_only(&mut self, long_only: bool) -> &mut Options { + self.long_only = long_only; + self + } + + /// Create a generic option group, stating all parameters explicitly. + pub fn opt( + &mut self, + short_name: &str, + long_name: &str, + desc: &str, + hint: &str, + hasarg: HasArg, + occur: Occur, + ) -> &mut Options { + validate_names(short_name, long_name); + self.grps.push(OptGroup { + short_name: short_name.to_string(), + long_name: long_name.to_string(), + hint: hint.to_string(), + desc: desc.to_string(), + hasarg, + occur, + }); + self + } + + /// Create a long option that is optional and does not take an argument. + /// + /// * `short_name` - e.g. `"h"` for a `-h` option, or `""` for none + /// * `long_name` - e.g. `"help"` for a `--help` option, or `""` for none + /// * `desc` - Description for usage help + pub fn optflag(&mut self, short_name: &str, long_name: &str, desc: &str) -> &mut Options { + validate_names(short_name, long_name); + self.grps.push(OptGroup { + short_name: short_name.to_string(), + long_name: long_name.to_string(), + hint: "".to_string(), + desc: desc.to_string(), + hasarg: No, + occur: Optional, + }); + self + } + + /// Create a long option that can occur more than once and does not + /// take an argument. + /// + /// * `short_name` - e.g. `"h"` for a `-h` option, or `""` for none + /// * `long_name` - e.g. `"help"` for a `--help` option, or `""` for none + /// * `desc` - Description for usage help + pub fn optflagmulti(&mut self, short_name: &str, long_name: &str, desc: &str) -> &mut Options { + validate_names(short_name, long_name); + self.grps.push(OptGroup { + short_name: short_name.to_string(), + long_name: long_name.to_string(), + hint: "".to_string(), + desc: desc.to_string(), + hasarg: No, + occur: Multi, + }); + self + } + + /// Create a long option that is optional and takes an optional argument. + /// + /// * `short_name` - e.g. `"h"` for a `-h` option, or `""` for none + /// * `long_name` - e.g. `"help"` for a `--help` option, or `""` for none + /// * `desc` - Description for usage help + /// * `hint` - Hint that is used in place of the argument in the usage help, + /// e.g. `"FILE"` for a `-o FILE` option + pub fn optflagopt( + &mut self, + short_name: &str, + long_name: &str, + desc: &str, + hint: &str, + ) -> &mut Options { + validate_names(short_name, long_name); + self.grps.push(OptGroup { + short_name: short_name.to_string(), + long_name: long_name.to_string(), + hint: hint.to_string(), + desc: desc.to_string(), + hasarg: Maybe, + occur: Optional, + }); + self + } + + /// Create a long option that is optional, takes an argument, and may occur + /// multiple times. + /// + /// * `short_name` - e.g. `"h"` for a `-h` option, or `""` for none + /// * `long_name` - e.g. `"help"` for a `--help` option, or `""` for none + /// * `desc` - Description for usage help + /// * `hint` - Hint that is used in place of the argument in the usage help, + /// e.g. `"FILE"` for a `-o FILE` option + pub fn optmulti( + &mut self, + short_name: &str, + long_name: &str, + desc: &str, + hint: &str, + ) -> &mut Options { + validate_names(short_name, long_name); + self.grps.push(OptGroup { + short_name: short_name.to_string(), + long_name: long_name.to_string(), + hint: hint.to_string(), + desc: desc.to_string(), + hasarg: Yes, + occur: Multi, + }); + self + } + + /// Create a long option that is optional and takes an argument. + /// + /// * `short_name` - e.g. `"h"` for a `-h` option, or `""` for none + /// * `long_name` - e.g. `"help"` for a `--help` option, or `""` for none + /// * `desc` - Description for usage help + /// * `hint` - Hint that is used in place of the argument in the usage help, + /// e.g. `"FILE"` for a `-o FILE` option + pub fn optopt( + &mut self, + short_name: &str, + long_name: &str, + desc: &str, + hint: &str, + ) -> &mut Options { + validate_names(short_name, long_name); + self.grps.push(OptGroup { + short_name: short_name.to_string(), + long_name: long_name.to_string(), + hint: hint.to_string(), + desc: desc.to_string(), + hasarg: Yes, + occur: Optional, + }); + self + } + + /// Create a long option that is required and takes an argument. + /// + /// * `short_name` - e.g. `"h"` for a `-h` option, or `""` for none + /// * `long_name` - e.g. `"help"` for a `--help` option, or `""` for none + /// * `desc` - Description for usage help + /// * `hint` - Hint that is used in place of the argument in the usage help, + /// e.g. `"FILE"` for a `-o FILE` option + pub fn reqopt( + &mut self, + short_name: &str, + long_name: &str, + desc: &str, + hint: &str, + ) -> &mut Options { + validate_names(short_name, long_name); + self.grps.push(OptGroup { + short_name: short_name.to_string(), + long_name: long_name.to_string(), + hint: hint.to_string(), + desc: desc.to_string(), + hasarg: Yes, + occur: Req, + }); + self + } + + /// Parse command line arguments according to the provided options. + /// + /// On success returns `Ok(Matches)`. Use methods such as `opt_present` + /// `opt_str`, etc. to interrogate results. + /// # Panics + /// + /// Returns `Err(Fail)` on failure: use the `Debug` implementation of `Fail` + /// to display information about it. + pub fn parse(&self, args: C) -> Result + where + C::Item: AsRef, + { + let opts: Vec = self.grps.iter().map(|x| x.long_to_short()).collect(); + + let mut vals = (0..opts.len()) + .map(|_| Vec::new()) + .collect::>>(); + let mut free: Vec = Vec::new(); + let args = args + .into_iter() + .map(|i| { + i.as_ref() + .to_str() + .ok_or_else(|| Fail::UnrecognizedOption(format!("{:?}", i.as_ref()))) + .map(|s| s.to_owned()) + }) + .collect::<::std::result::Result, _>>()?; + let mut args = args.into_iter().peekable(); + let mut arg_pos = 0; + while let Some(cur) = args.next() { + if !is_arg(&cur) { + free.push(cur); + match self.parsing_style { + ParsingStyle::FloatingFrees => {} + ParsingStyle::StopAtFirstFree => { + free.extend(args); + break; + } + } + } else if cur == "--" { + free.extend(args); + break; + } else { + let mut names; + let mut i_arg = None; + let mut was_long = true; + if cur.as_bytes()[1] == b'-' || self.long_only { + let tail = if cur.as_bytes()[1] == b'-' { + &cur[2..] + } else { + assert!(self.long_only); + &cur[1..] + }; + let mut parts = tail.splitn(2, '='); + names = vec![Name::from_str(parts.next().unwrap())]; + if let Some(rest) = parts.next() { + i_arg = Some(rest.to_string()); + } + } else { + was_long = false; + names = Vec::new(); + for (j, ch) in cur.char_indices().skip(1) { + let opt = Short(ch); + + /* In a series of potential options (eg. -aheJ), if we + see one which takes an argument, we assume all + subsequent characters make up the argument. This + allows options such as -L/usr/local/lib/foo to be + interpreted correctly + */ + + let opt_id = match find_opt(&opts, &opt) { + Some(id) => id, + None => return Err(UnrecognizedOption(opt.to_string())), + }; + + names.push(opt); + + let arg_follows = match opts[opt_id].hasarg { + Yes | Maybe => true, + No => false, + }; + + if arg_follows { + let next = j + ch.len_utf8(); + if next < cur.len() { + i_arg = Some(cur[next..].to_string()); + break; + } + } + } + } + let mut name_pos = 0; + for nm in names.iter() { + name_pos += 1; + let optid = match find_opt(&opts, &nm) { + Some(id) => id, + None => return Err(UnrecognizedOption(nm.to_string())), + }; + match opts[optid].hasarg { + No => { + if name_pos == names.len() && i_arg.is_some() { + return Err(UnexpectedArgument(nm.to_string())); + } + vals[optid].push((arg_pos, Given)); + } + Maybe => { + // Note that here we do not handle `--arg value`. + // This matches GNU getopt behavior; but also + // makes sense, because if this were accepted, + // then users could only write a "Maybe" long + // option at the end of the arguments when + // FloatingFrees is in use. + if let Some(i_arg) = i_arg.take() { + vals[optid].push((arg_pos, Val(i_arg))); + } else if was_long + || name_pos < names.len() + || args.peek().map_or(true, |n| is_arg(&n)) + { + vals[optid].push((arg_pos, Given)); + } else { + vals[optid].push((arg_pos, Val(args.next().unwrap()))); + } + } + Yes => { + if let Some(i_arg) = i_arg.take() { + vals[optid].push((arg_pos, Val(i_arg))); + } else if let Some(n) = args.next() { + vals[optid].push((arg_pos, Val(n))); + } else { + return Err(ArgumentMissing(nm.to_string())); + } + } + } + } + } + arg_pos += 1; + } + debug_assert_eq!(vals.len(), opts.len()); + for (vals, opt) in vals.iter().zip(opts.iter()) { + if opt.occur == Req && vals.is_empty() { + return Err(OptionMissing(opt.name.to_string())); + } + if opt.occur != Multi && vals.len() > 1 { + return Err(OptionDuplicated(opt.name.to_string())); + } + } + Ok(Matches { opts, vals, free }) + } + + /// Derive a short one-line usage summary from a set of long options. + pub fn short_usage(&self, program_name: &str) -> String { + let mut line = format!("Usage: {} ", program_name); + line.push_str( + &self + .grps + .iter() + .map(format_option) + .collect::>() + .join(" "), + ); + line + } + + /// Derive a formatted message from a set of options. + pub fn usage(&self, brief: &str) -> String { + self.usage_with_format(|opts| { + format!( + "{}\n\nOptions:\n{}\n", + brief, + opts.collect::>().join("\n") + ) + }) + } + + /// Derive a custom formatted message from a set of options. The formatted options provided to + /// a closure as an iterator. + pub fn usage_with_format) -> String>( + &self, + mut formatter: F, + ) -> String { + formatter(&mut self.usage_items()) + } + + /// Derive usage items from a set of options. + fn usage_items<'a>(&'a self) -> Box + 'a> { + let desc_sep = format!("\n{}", repeat(" ").take(24).collect::()); + + let any_short = self.grps.iter().any(|optref| !optref.short_name.is_empty()); + + let rows = self.grps.iter().map(move |optref| { + let OptGroup { + short_name, + long_name, + hint, + desc, + hasarg, + .. + } = (*optref).clone(); + + let mut row = " ".to_string(); + + // short option + match short_name.width() { + 0 => { + if any_short { + row.push_str(" "); + } + } + 1 => { + row.push('-'); + row.push_str(&short_name); + if long_name.width() > 0 { + row.push_str(", "); + } else { + // Only a single space here, so that any + // argument is printed in the correct spot. + row.push(' '); + } + } + // FIXME: refer issue #7. + _ => panic!("the short name should only be 1 ascii char long"), + } + + // long option + match long_name.width() { + 0 => {} + _ => { + row.push_str(if self.long_only { "-" } else { "--" }); + row.push_str(&long_name); + row.push(' '); + } + } + + // arg + match hasarg { + No => {} + Yes => row.push_str(&hint), + Maybe => { + row.push('['); + row.push_str(&hint); + row.push(']'); + } + } + + let rowlen = row.width(); + if rowlen < 24 { + for _ in 0..24 - rowlen { + row.push(' '); + } + } else { + row.push_str(&desc_sep) + } + + let desc_rows = each_split_within(&desc, 54); + row.push_str(&desc_rows.join(&desc_sep)); + + row + }); + + Box::new(rows) + } +} + +fn validate_names(short_name: &str, long_name: &str) { + let len = short_name.len(); + assert!( + len == 1 || len == 0, + "the short_name (first argument) should be a single character, \ + or an empty string for none" + ); + let len = long_name.len(); + assert!( + len == 0 || len > 1, + "the long_name (second argument) should be longer than a single \ + character, or an empty string for none" + ); +} + +/// What parsing style to use when parsing arguments. +#[derive(Clone, Copy, PartialEq, Eq)] +pub enum ParsingStyle { + /// Flags and "free" arguments can be freely inter-mixed. + FloatingFrees, + /// As soon as a "free" argument (i.e. non-flag) is encountered, stop + /// considering any remaining arguments as flags. + StopAtFirstFree, +} + +/// Name of an option. Either a string or a single char. +#[derive(Clone, Debug, PartialEq, Eq)] +enum Name { + /// A string representing the long name of an option. + /// For example: "help" + Long(String), + /// A char representing the short name of an option. + /// For example: 'h' + Short(char), +} + +/// Describes whether an option has an argument. +#[derive(Clone, Debug, Copy, PartialEq, Eq)] +pub enum HasArg { + /// The option requires an argument. + Yes, + /// The option takes no argument. + No, + /// The option argument is optional. + Maybe, +} + +/// Describes how often an option may occur. +#[derive(Clone, Debug, Copy, PartialEq, Eq)] +pub enum Occur { + /// The option occurs once. + Req, + /// The option occurs at most once. + Optional, + /// The option occurs zero or more times. + Multi, +} + +/// A description of a possible option. +#[derive(Clone, Debug, PartialEq, Eq)] +struct Opt { + /// Name of the option + name: Name, + /// Whether it has an argument + hasarg: HasArg, + /// How often it can occur + occur: Occur, + /// Which options it aliases + aliases: Vec, +} + +/// One group of options, e.g., both `-h` and `--help`, along with +/// their shared description and properties. +#[derive(Clone, PartialEq, Eq)] +struct OptGroup { + /// Short name of the option, e.g. `h` for a `-h` option + short_name: String, + /// Long name of the option, e.g. `help` for a `--help` option + long_name: String, + /// Hint for argument, e.g. `FILE` for a `-o FILE` option + hint: String, + /// Description for usage help text + desc: String, + /// Whether option has an argument + hasarg: HasArg, + /// How often it can occur + occur: Occur, +} + +/// Describes whether an option is given at all or has a value. +#[derive(Clone, Debug, PartialEq, Eq)] +enum Optval { + Val(String), + Given, +} + +/// The result of checking command line arguments. Contains a vector +/// of matches and a vector of free strings. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Matches { + /// Options that matched + opts: Vec, + /// Values of the Options that matched and their positions + vals: Vec>, + /// Free string fragments + pub free: Vec, +} + +/// The type returned when the command line does not conform to the +/// expected format. Use the `Debug` implementation to output detailed +/// information. +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum Fail { + /// The option requires an argument but none was passed. + ArgumentMissing(String), + /// The passed option is not declared among the possible options. + UnrecognizedOption(String), + /// A required option is not present. + OptionMissing(String), + /// A single occurrence option is being used multiple times. + OptionDuplicated(String), + /// There's an argument being passed to a non-argument option. + UnexpectedArgument(String), +} + +impl Error for Fail { + fn description(&self) -> &str { + match *self { + ArgumentMissing(_) => "missing argument", + UnrecognizedOption(_) => "unrecognized option", + OptionMissing(_) => "missing option", + OptionDuplicated(_) => "duplicated option", + UnexpectedArgument(_) => "unexpected argument", + } + } +} + +/// The result of parsing a command line with a set of options. +pub type Result = result::Result; + +impl Name { + fn from_str(nm: &str) -> Name { + if nm.len() == 1 { + Short(nm.as_bytes()[0] as char) + } else { + Long(nm.to_string()) + } + } + + fn to_string(&self) -> String { + match *self { + Short(ch) => ch.to_string(), + Long(ref s) => s.to_string(), + } + } +} + +impl OptGroup { + /// Translate OptGroup into Opt. + /// (Both short and long names correspond to different Opts). + fn long_to_short(&self) -> Opt { + let OptGroup { + short_name, + long_name, + hasarg, + occur, + .. + } = (*self).clone(); + + match (short_name.len(), long_name.len()) { + (0, 0) => panic!("this long-format option was given no name"), + (0, _) => Opt { + name: Long(long_name), + hasarg, + occur, + aliases: Vec::new(), + }, + (1, 0) => Opt { + name: Short(short_name.as_bytes()[0] as char), + hasarg, + occur, + aliases: Vec::new(), + }, + (1, _) => Opt { + name: Long(long_name), + hasarg, + occur, + aliases: vec![Opt { + name: Short(short_name.as_bytes()[0] as char), + hasarg: hasarg, + occur: occur, + aliases: Vec::new(), + }], + }, + (_, _) => panic!("something is wrong with the long-form opt"), + } + } +} + +impl Matches { + fn opt_vals(&self, nm: &str) -> Vec<(usize, Optval)> { + match find_opt(&self.opts, &Name::from_str(nm)) { + Some(id) => self.vals[id].clone(), + None => panic!("No option '{}' defined", nm), + } + } + + fn opt_val(&self, nm: &str) -> Option { + self.opt_vals(nm).into_iter().map(|(_, o)| o).next() + } + /// Returns true if an option was defined + pub fn opt_defined(&self, nm: &str) -> bool { + find_opt(&self.opts, &Name::from_str(nm)).is_some() + } + + /// Returns true if an option was matched. + pub fn opt_present(&self, nm: &str) -> bool { + !self.opt_vals(nm).is_empty() + } + + /// Returns the number of times an option was matched. + pub fn opt_count(&self, nm: &str) -> usize { + self.opt_vals(nm).len() + } + + /// Returns a vector of all the positions in which an option was matched. + pub fn opt_positions(&self, nm: &str) -> Vec { + self.opt_vals(nm).into_iter().map(|(pos, _)| pos).collect() + } + + /// Returns true if any of several options were matched. + pub fn opts_present(&self, names: &[String]) -> bool { + names + .iter() + .any(|nm| match find_opt(&self.opts, &Name::from_str(&nm)) { + Some(id) if !self.vals[id].is_empty() => true, + _ => false, + }) + } + + /// Returns the string argument supplied to one of several matching options or `None`. + pub fn opts_str(&self, names: &[String]) -> Option { + names + .iter() + .filter_map(|nm| match self.opt_val(&nm) { + Some(Val(s)) => Some(s), + _ => None, + }) + .next() + } + + /// Returns a vector of the arguments provided to all matches of the given + /// option. + /// + /// Used when an option accepts multiple values. + pub fn opt_strs(&self, nm: &str) -> Vec { + self.opt_vals(nm) + .into_iter() + .filter_map(|(_, v)| match v { + Val(s) => Some(s), + _ => None, + }) + .collect() + } + + /// Returns a vector of the arguments provided to all matches of the given + /// option, together with their positions. + /// + /// Used when an option accepts multiple values. + pub fn opt_strs_pos(&self, nm: &str) -> Vec<(usize, String)> { + self.opt_vals(nm) + .into_iter() + .filter_map(|(p, v)| match v { + Val(s) => Some((p, s)), + _ => None, + }) + .collect() + } + + /// Returns the string argument supplied to a matching option or `None`. + pub fn opt_str(&self, nm: &str) -> Option { + match self.opt_val(nm) { + Some(Val(s)) => Some(s), + _ => None, + } + } + + /// Returns the matching string, a default, or `None`. + /// + /// Returns `None` if the option was not present, `def` if the option was + /// present but no argument was provided, and the argument if the option was + /// present and an argument was provided. + pub fn opt_default(&self, nm: &str, def: &str) -> Option { + match self.opt_val(nm) { + Some(Val(s)) => Some(s), + Some(_) => Some(def.to_string()), + None => None, + } + } + + /// Returns some matching value or `None`. + /// + /// Similar to opt_str, also converts matching argument using FromStr. + pub fn opt_get(&self, nm: &str) -> result::Result, T::Err> + where + T: FromStr, + { + match self.opt_val(nm) { + Some(Val(s)) => Ok(Some(s.parse()?)), + Some(Given) => Ok(None), + None => Ok(None), + } + } + + /// Returns a matching value or default. + /// + /// Similar to opt_default, except the two differences. + /// Instead of returning None when argument was not present, return `def`. + /// Instead of returning &str return type T, parsed using str::parse(). + pub fn opt_get_default(&self, nm: &str, def: T) -> result::Result + where + T: FromStr, + { + match self.opt_val(nm) { + Some(Val(s)) => s.parse(), + Some(Given) => Ok(def), + None => Ok(def), + } + } +} + +fn is_arg(arg: &str) -> bool { + arg.as_bytes().get(0) == Some(&b'-') && arg.len() > 1 +} + +fn find_opt(opts: &[Opt], nm: &Name) -> Option { + // Search main options. + let pos = opts.iter().position(|opt| &opt.name == nm); + if pos.is_some() { + return pos; + } + + // Search in aliases. + for candidate in opts.iter() { + if candidate.aliases.iter().any(|opt| &opt.name == nm) { + return opts.iter().position(|opt| opt.name == candidate.name); + } + } + + None +} + +impl fmt::Display for Fail { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match *self { + ArgumentMissing(ref nm) => write!(f, "Argument to option '{}' missing", *nm), + UnrecognizedOption(ref nm) => write!(f, "Unrecognized option: '{}'", *nm), + OptionMissing(ref nm) => write!(f, "Required option '{}' missing", *nm), + OptionDuplicated(ref nm) => write!(f, "Option '{}' given more than once", *nm), + UnexpectedArgument(ref nm) => write!(f, "Option '{}' does not take an argument", *nm), + } + } +} + +fn format_option(opt: &OptGroup) -> String { + let mut line = String::new(); + + if opt.occur != Req { + line.push('['); + } + + // Use short_name if possible, but fall back to long_name. + if !opt.short_name.is_empty() { + line.push('-'); + line.push_str(&opt.short_name); + } else { + line.push_str("--"); + line.push_str(&opt.long_name); + } + + if opt.hasarg != No { + line.push(' '); + if opt.hasarg == Maybe { + line.push('['); + } + line.push_str(&opt.hint); + if opt.hasarg == Maybe { + line.push(']'); + } + } + + if opt.occur != Req { + line.push(']'); + } + if opt.occur == Multi { + line.push_str(".."); + } + + line +} + +/// Splits a string into substrings with possibly internal whitespace, +/// each of them at most `lim` bytes long, if possible. The substrings +/// have leading and trailing whitespace removed, and are only cut at +/// whitespace boundaries. +fn each_split_within(desc: &str, lim: usize) -> Vec { + let mut rows = Vec::new(); + for line in desc.trim().lines() { + let line_chars = line.chars().chain(Some(' ')); + let words = line_chars + .fold((Vec::new(), 0, 0), |(mut words, a, z), c| { + let idx = z + c.len_utf8(); // Get the current byte offset + + // If the char is whitespace, advance the word start and maybe push a word + if c.is_whitespace() { + if a != z { + words.push(&line[a..z]); + } + (words, idx, idx) + } + // If the char is not whitespace, continue, retaining the current + else { + (words, a, idx) + } + }) + .0; + + let mut row = String::new(); + for word in words.iter() { + let sep = if !row.is_empty() { Some(" ") } else { None }; + let width = row.width() + word.width() + sep.map(UnicodeWidthStr::width).unwrap_or(0); + + if width <= lim { + if let Some(sep) = sep { + row.push_str(sep) + } + row.push_str(word); + continue; + } + if !row.is_empty() { + rows.push(row.clone()); + row.clear(); + } + row.push_str(word); + } + if !row.is_empty() { + rows.push(row); + } + } + rows +} diff --git a/src/rust/vendor/getopts/src/tests/mod.rs b/src/rust/vendor/getopts/src/tests/mod.rs new file mode 100644 index 000000000..f1fb39098 --- /dev/null +++ b/src/rust/vendor/getopts/src/tests/mod.rs @@ -0,0 +1,1254 @@ +use super::each_split_within; +use super::Fail::*; +use super::{HasArg, Name, Occur, Opt, Options, ParsingStyle}; + +#[test] +fn test_split_within() { + fn t(s: &str, i: usize, u: &[String]) { + let v = each_split_within(&(s.to_string()), i); + assert!(v.iter().zip(u.iter()).all(|(a, b)| a == b)); + } + t("", 0, &[]); + t("", 15, &[]); + t("hello", 15, &["hello".to_string()]); + t( + "\nMary had a little lamb\nLittle lamb\n", + 15, + &[ + "Mary had a".to_string(), + "little lamb".to_string(), + "Little lamb".to_string(), + ], + ); + t( + "\nMary had a little lamb\nLittle lamb\n", + ::std::usize::MAX, + &[ + "Mary had a little lamb".to_string(), + "Little lamb".to_string(), + ], + ); +} + +// Tests for reqopt +#[test] +fn test_reqopt() { + let long_args = vec!["--test=20".to_string()]; + let mut opts = Options::new(); + opts.reqopt("t", "test", "testing", "TEST"); + match opts.parse(&long_args) { + Ok(ref m) => { + assert!(m.opt_present("test")); + assert_eq!(m.opt_str("test").unwrap(), "20"); + assert!(m.opt_present("t")); + assert_eq!(m.opt_str("t").unwrap(), "20"); + } + _ => { + panic!("test_reqopt failed (long arg)"); + } + } + let short_args = vec!["-t".to_string(), "20".to_string()]; + match opts.parse(&short_args) { + Ok(ref m) => { + assert!((m.opt_present("test"))); + assert_eq!(m.opt_str("test").unwrap(), "20"); + assert!((m.opt_present("t"))); + assert_eq!(m.opt_str("t").unwrap(), "20"); + } + _ => { + panic!("test_reqopt failed (short arg)"); + } + } +} + +#[test] +fn test_reqopt_missing() { + let args = vec!["blah".to_string()]; + match Options::new() + .reqopt("t", "test", "testing", "TEST") + .parse(&args) + { + Err(OptionMissing(_)) => {} + _ => panic!(), + } +} + +#[test] +fn test_reqopt_no_arg() { + let long_args = vec!["--test".to_string()]; + let mut opts = Options::new(); + opts.reqopt("t", "test", "testing", "TEST"); + match opts.parse(&long_args) { + Err(ArgumentMissing(_)) => {} + _ => panic!(), + } + let short_args = vec!["-t".to_string()]; + match opts.parse(&short_args) { + Err(ArgumentMissing(_)) => {} + _ => panic!(), + } +} + +#[test] +fn test_reqopt_multi() { + let args = vec!["--test=20".to_string(), "-t".to_string(), "30".to_string()]; + match Options::new() + .reqopt("t", "test", "testing", "TEST") + .parse(&args) + { + Err(OptionDuplicated(_)) => {} + _ => panic!(), + } +} + +// Tests for optopt +#[test] +fn test_optopt() { + let long_args = vec!["--test=20".to_string()]; + let mut opts = Options::new(); + opts.optopt("t", "test", "testing", "TEST"); + match opts.parse(&long_args) { + Ok(ref m) => { + assert!(m.opt_present("test")); + assert_eq!(m.opt_str("test").unwrap(), "20"); + assert!((m.opt_present("t"))); + assert_eq!(m.opt_str("t").unwrap(), "20"); + } + _ => panic!(), + } + let short_args = vec!["-t".to_string(), "20".to_string()]; + match opts.parse(&short_args) { + Ok(ref m) => { + assert!((m.opt_present("test"))); + assert_eq!(m.opt_str("test").unwrap(), "20"); + assert!((m.opt_present("t"))); + assert_eq!(m.opt_str("t").unwrap(), "20"); + } + _ => panic!(), + } +} + +#[test] +fn test_optopt_missing() { + let args = vec!["blah".to_string()]; + match Options::new() + .optopt("t", "test", "testing", "TEST") + .parse(&args) + { + Ok(ref m) => { + assert!(!m.opt_present("test")); + assert!(!m.opt_present("t")); + } + _ => panic!(), + } +} + +#[test] +fn test_optopt_no_arg() { + let long_args = vec!["--test".to_string()]; + let mut opts = Options::new(); + opts.optopt("t", "test", "testing", "TEST"); + match opts.parse(&long_args) { + Err(ArgumentMissing(_)) => {} + _ => panic!(), + } + let short_args = vec!["-t".to_string()]; + match opts.parse(&short_args) { + Err(ArgumentMissing(_)) => {} + _ => panic!(), + } +} + +#[test] +fn test_optopt_multi() { + let args = vec!["--test=20".to_string(), "-t".to_string(), "30".to_string()]; + match Options::new() + .optopt("t", "test", "testing", "TEST") + .parse(&args) + { + Err(OptionDuplicated(_)) => {} + _ => panic!(), + } +} + +// Tests for optflag +#[test] +fn test_optflag() { + let long_args = vec!["--test".to_string()]; + let mut opts = Options::new(); + opts.optflag("t", "test", "testing"); + match opts.parse(&long_args) { + Ok(ref m) => { + assert!(m.opt_present("test")); + assert!(m.opt_present("t")); + } + _ => panic!(), + } + let short_args = vec!["-t".to_string()]; + match opts.parse(&short_args) { + Ok(ref m) => { + assert!(m.opt_present("test")); + assert!(m.opt_present("t")); + } + _ => panic!(), + } +} + +#[test] +fn test_optflag_missing() { + let args = vec!["blah".to_string()]; + match Options::new().optflag("t", "test", "testing").parse(&args) { + Ok(ref m) => { + assert!(!m.opt_present("test")); + assert!(!m.opt_present("t")); + } + _ => panic!(), + } +} + +#[test] +fn test_opt_end() { + let args = vec!["--".to_owned(), "-t".to_owned()]; + match Options::new().optflag("t", "test", "testing").parse(&args) { + Ok(ref m) => { + assert!(!m.opt_present("test")); + assert!(!m.opt_present("t")); + assert_eq!(m.free.len(), 1); + assert_eq!(m.free[0], "-t"); + } + _ => panic!(), + } +} + +#[test] +fn test_opt_only_end() { + let args = vec!["--".to_owned()]; + match Options::new().optflag("t", "test", "testing").parse(&args) { + Ok(ref m) => { + assert!(!m.opt_present("test")); + assert!(!m.opt_present("t")); + assert_eq!(m.free.len(), 0); + } + _ => panic!(), + } +} + +#[test] +fn test_optflag_long_arg() { + let args = vec!["--test=20".to_string()]; + match Options::new().optflag("t", "test", "testing").parse(&args) { + Err(UnexpectedArgument(_)) => {} + _ => panic!(), + } +} + +#[test] +fn test_optflag_multi() { + let args = vec!["--test".to_string(), "-t".to_string()]; + match Options::new().optflag("t", "test", "testing").parse(&args) { + Err(OptionDuplicated(_)) => {} + _ => panic!(), + } +} + +#[test] +fn test_optflag_short_arg() { + let args = vec!["-t".to_string(), "20".to_string()]; + match Options::new().optflag("t", "test", "testing").parse(&args) { + Ok(ref m) => { + // The next variable after the flag is just a free argument + + assert!(m.free[0] == "20"); + } + _ => panic!(), + } +} + +// Tests for optflagmulti +#[test] +fn test_optflagmulti_short1() { + let args = vec!["-v".to_string()]; + match Options::new() + .optflagmulti("v", "verbose", "verbosity") + .parse(&args) + { + Ok(ref m) => { + assert_eq!(m.opt_count("v"), 1); + } + _ => panic!(), + } +} + +#[test] +fn test_optflagmulti_short2a() { + let args = vec!["-v".to_string(), "-v".to_string()]; + match Options::new() + .optflagmulti("v", "verbose", "verbosity") + .parse(&args) + { + Ok(ref m) => { + assert_eq!(m.opt_count("v"), 2); + } + _ => panic!(), + } +} + +#[test] +fn test_optflagmulti_short2b() { + let args = vec!["-vv".to_string()]; + match Options::new() + .optflagmulti("v", "verbose", "verbosity") + .parse(&args) + { + Ok(ref m) => { + assert_eq!(m.opt_count("v"), 2); + } + _ => panic!(), + } +} + +#[test] +fn test_optflagmulti_long1() { + let args = vec!["--verbose".to_string()]; + match Options::new() + .optflagmulti("v", "verbose", "verbosity") + .parse(&args) + { + Ok(ref m) => { + assert_eq!(m.opt_count("verbose"), 1); + } + _ => panic!(), + } +} + +#[test] +fn test_optflagmulti_long2() { + let args = vec!["--verbose".to_string(), "--verbose".to_string()]; + match Options::new() + .optflagmulti("v", "verbose", "verbosity") + .parse(&args) + { + Ok(ref m) => { + assert_eq!(m.opt_count("verbose"), 2); + } + _ => panic!(), + } +} + +#[test] +fn test_optflagmulti_mix() { + let args = vec![ + "--verbose".to_string(), + "-v".to_string(), + "-vv".to_string(), + "verbose".to_string(), + ]; + match Options::new() + .optflagmulti("v", "verbose", "verbosity") + .parse(&args) + { + Ok(ref m) => { + assert_eq!(m.opt_count("verbose"), 4); + assert_eq!(m.opt_count("v"), 4); + } + _ => panic!(), + } +} + +// Tests for optflagopt +#[test] +fn test_optflagopt() { + let long_args = vec!["--test".to_string()]; + let mut opts = Options::new(); + opts.optflagopt("t", "test", "testing", "ARG"); + match opts.parse(&long_args) { + Ok(ref m) => { + assert!(m.opt_present("test")); + assert!(m.opt_present("t")); + } + _ => panic!(), + } + let short_args = vec!["-t".to_string()]; + match opts.parse(&short_args) { + Ok(ref m) => { + assert!(m.opt_present("test")); + assert!(m.opt_present("t")); + } + _ => panic!(), + } + let short_args = vec!["-t".to_string(), "x".to_string()]; + match opts.parse(&short_args) { + Ok(ref m) => { + assert_eq!(m.opt_str("t").unwrap(), "x"); + assert_eq!(m.opt_str("test").unwrap(), "x"); + } + _ => panic!(), + } + let long_args = vec!["--test=x".to_string()]; + match opts.parse(&long_args) { + Ok(ref m) => { + assert_eq!(m.opt_str("t").unwrap(), "x"); + assert_eq!(m.opt_str("test").unwrap(), "x"); + } + _ => panic!(), + } + let long_args = vec!["--test".to_string(), "x".to_string()]; + match opts.parse(&long_args) { + Ok(ref m) => { + assert_eq!(m.opt_str("t"), None); + assert_eq!(m.opt_str("test"), None); + } + _ => panic!(), + } + let no_args: Vec = vec![]; + match opts.parse(&no_args) { + Ok(ref m) => { + assert!(!m.opt_present("test")); + assert!(!m.opt_present("t")); + } + _ => panic!(), + } +} + +// Tests for optmulti +#[test] +fn test_optmulti() { + let long_args = vec!["--test=20".to_string()]; + let mut opts = Options::new(); + opts.optmulti("t", "test", "testing", "TEST"); + match opts.parse(&long_args) { + Ok(ref m) => { + assert!((m.opt_present("test"))); + assert_eq!(m.opt_str("test").unwrap(), "20"); + assert!((m.opt_present("t"))); + assert_eq!(m.opt_str("t").unwrap(), "20"); + } + _ => panic!(), + } + let short_args = vec!["-t".to_string(), "20".to_string()]; + match opts.parse(&short_args) { + Ok(ref m) => { + assert!((m.opt_present("test"))); + assert_eq!(m.opt_str("test").unwrap(), "20"); + assert!((m.opt_present("t"))); + assert_eq!(m.opt_str("t").unwrap(), "20"); + } + _ => panic!(), + } +} + +#[test] +fn test_optmulti_missing() { + let args = vec!["blah".to_string()]; + match Options::new() + .optmulti("t", "test", "testing", "TEST") + .parse(&args) + { + Ok(ref m) => { + assert!(!m.opt_present("test")); + assert!(!m.opt_present("t")); + } + _ => panic!(), + } +} + +#[test] +fn test_optmulti_no_arg() { + let long_args = vec!["--test".to_string()]; + let mut opts = Options::new(); + opts.optmulti("t", "test", "testing", "TEST"); + match opts.parse(&long_args) { + Err(ArgumentMissing(_)) => {} + _ => panic!(), + } + let short_args = vec!["-t".to_string()]; + match opts.parse(&short_args) { + Err(ArgumentMissing(_)) => {} + _ => panic!(), + } +} + +#[test] +fn test_optmulti_multi() { + let args = vec!["--test=20".to_string(), "-t".to_string(), "30".to_string()]; + match Options::new() + .optmulti("t", "test", "testing", "TEST") + .parse(&args) + { + Ok(ref m) => { + assert!(m.opt_present("test")); + assert_eq!(m.opt_str("test").unwrap(), "20"); + assert!(m.opt_present("t")); + assert_eq!(m.opt_str("t").unwrap(), "20"); + let pair = m.opt_strs("test"); + assert!(pair[0] == "20"); + assert!(pair[1] == "30"); + } + _ => panic!(), + } +} + +#[test] +fn test_free_argument_is_hyphen() { + let args = vec!["-".to_string()]; + match Options::new().parse(&args) { + Ok(ref m) => { + assert_eq!(m.free.len(), 1); + assert_eq!(m.free[0], "-"); + } + _ => panic!(), + } +} + +#[test] +fn test_unrecognized_option() { + let long_args = vec!["--untest".to_string()]; + let mut opts = Options::new(); + opts.optmulti("t", "test", "testing", "TEST"); + match opts.parse(&long_args) { + Err(UnrecognizedOption(_)) => {} + _ => panic!(), + } + let short_args = vec!["-u".to_string()]; + match opts.parse(&short_args) { + Err(UnrecognizedOption(_)) => {} + _ => panic!(), + } +} + +#[test] +fn test_combined() { + let args = vec![ + "prog".to_string(), + "free1".to_string(), + "-s".to_string(), + "20".to_string(), + "free2".to_string(), + "--flag".to_string(), + "--long=30".to_string(), + "-f".to_string(), + "-m".to_string(), + "40".to_string(), + "-m".to_string(), + "50".to_string(), + "-n".to_string(), + "-A B".to_string(), + "-n".to_string(), + "-60 70".to_string(), + ]; + match Options::new() + .optopt("s", "something", "something", "SOMETHING") + .optflag("", "flag", "a flag") + .reqopt("", "long", "hi", "LONG") + .optflag("f", "", "another flag") + .optmulti("m", "", "mmmmmm", "YUM") + .optmulti("n", "", "nothing", "NOTHING") + .optopt("", "notpresent", "nothing to see here", "NOPE") + .parse(&args) + { + Ok(ref m) => { + assert!(m.free[0] == "prog"); + assert!(m.free[1] == "free1"); + assert_eq!(m.opt_str("s").unwrap(), "20"); + assert!(m.free[2] == "free2"); + assert!((m.opt_present("flag"))); + assert_eq!(m.opt_str("long").unwrap(), "30"); + assert!((m.opt_present("f"))); + let pair = m.opt_strs("m"); + assert!(pair[0] == "40"); + assert!(pair[1] == "50"); + let pair = m.opt_strs("n"); + assert!(pair[0] == "-A B"); + assert!(pair[1] == "-60 70"); + assert!((!m.opt_present("notpresent"))); + } + _ => panic!(), + } +} + +#[test] +fn test_mixed_stop() { + let args = vec![ + "-a".to_string(), + "b".to_string(), + "-c".to_string(), + "d".to_string(), + ]; + match Options::new() + .parsing_style(ParsingStyle::StopAtFirstFree) + .optflag("a", "", "") + .optopt("c", "", "", "") + .parse(&args) + { + Ok(ref m) => { + println!("{}", m.opt_present("c")); + assert!(m.opt_present("a")); + assert!(!m.opt_present("c")); + assert_eq!(m.free.len(), 3); + assert_eq!(m.free[0], "b"); + assert_eq!(m.free[1], "-c"); + assert_eq!(m.free[2], "d"); + } + _ => panic!(), + } +} + +#[test] +fn test_mixed_stop_hyphen() { + let args = vec![ + "-a".to_string(), + "-".to_string(), + "-c".to_string(), + "d".to_string(), + ]; + match Options::new() + .parsing_style(ParsingStyle::StopAtFirstFree) + .optflag("a", "", "") + .optopt("c", "", "", "") + .parse(&args) + { + Ok(ref m) => { + println!("{}", m.opt_present("c")); + assert!(m.opt_present("a")); + assert!(!m.opt_present("c")); + assert_eq!(m.free.len(), 3); + assert_eq!(m.free[0], "-"); + assert_eq!(m.free[1], "-c"); + assert_eq!(m.free[2], "d"); + } + _ => panic!(), + } +} + +#[test] +fn test_multi() { + let mut opts = Options::new(); + opts.optopt("e", "", "encrypt", "ENCRYPT"); + opts.optopt("", "encrypt", "encrypt", "ENCRYPT"); + opts.optopt("f", "", "flag", "FLAG"); + + let args_single = vec!["-e".to_string(), "foo".to_string()]; + let matches_single = &match opts.parse(&args_single) { + Ok(m) => m, + _ => panic!(), + }; + assert!(matches_single.opts_present(&["e".to_string()])); + assert!(matches_single.opts_present(&["encrypt".to_string(), "e".to_string()])); + assert!(matches_single.opts_present(&["e".to_string(), "encrypt".to_string()])); + assert!(!matches_single.opts_present(&["encrypt".to_string()])); + assert!(!matches_single.opts_present(&["thing".to_string()])); + assert!(!matches_single.opts_present(&[])); + + assert_eq!(matches_single.opts_str(&["e".to_string()]).unwrap(), "foo"); + assert_eq!( + matches_single + .opts_str(&["e".to_string(), "encrypt".to_string()]) + .unwrap(), + "foo" + ); + assert_eq!( + matches_single + .opts_str(&["encrypt".to_string(), "e".to_string()]) + .unwrap(), + "foo" + ); + + let args_both = vec![ + "-e".to_string(), + "foo".to_string(), + "--encrypt".to_string(), + "foo".to_string(), + ]; + let matches_both = &match opts.parse(&args_both) { + Ok(m) => m, + _ => panic!(), + }; + assert!(matches_both.opts_present(&["e".to_string()])); + assert!(matches_both.opts_present(&["encrypt".to_string()])); + assert!(matches_both.opts_present(&["encrypt".to_string(), "e".to_string()])); + assert!(matches_both.opts_present(&["e".to_string(), "encrypt".to_string()])); + assert!(!matches_both.opts_present(&["f".to_string()])); + assert!(!matches_both.opts_present(&["thing".to_string()])); + assert!(!matches_both.opts_present(&[])); + + assert_eq!(matches_both.opts_str(&["e".to_string()]).unwrap(), "foo"); + assert_eq!( + matches_both.opts_str(&["encrypt".to_string()]).unwrap(), + "foo" + ); + assert_eq!( + matches_both + .opts_str(&["e".to_string(), "encrypt".to_string()]) + .unwrap(), + "foo" + ); + assert_eq!( + matches_both + .opts_str(&["encrypt".to_string(), "e".to_string()]) + .unwrap(), + "foo" + ); +} + +#[test] +fn test_nospace() { + let args = vec!["-Lfoo".to_string(), "-M.".to_string()]; + let matches = &match Options::new() + .optmulti("L", "", "library directory", "LIB") + .optmulti("M", "", "something", "MMMM") + .parse(&args) + { + Ok(m) => m, + _ => panic!(), + }; + assert!(matches.opts_present(&["L".to_string()])); + assert_eq!(matches.opts_str(&["L".to_string()]).unwrap(), "foo"); + assert!(matches.opts_present(&["M".to_string()])); + assert_eq!(matches.opts_str(&["M".to_string()]).unwrap(), "."); +} + +#[test] +fn test_nospace_conflict() { + let args = vec!["-vvLverbose".to_string(), "-v".to_string()]; + let matches = &match Options::new() + .optmulti("L", "", "library directory", "LIB") + .optflagmulti("v", "verbose", "Verbose") + .parse(&args) + { + Ok(m) => m, + Err(e) => panic!("{}", e), + }; + assert!(matches.opts_present(&["L".to_string()])); + assert_eq!(matches.opts_str(&["L".to_string()]).unwrap(), "verbose"); + assert!(matches.opts_present(&["v".to_string()])); + assert_eq!(3, matches.opt_count("v")); +} + +#[test] +fn test_long_to_short() { + let mut short = Opt { + name: Name::Long("banana".to_string()), + hasarg: HasArg::Yes, + occur: Occur::Req, + aliases: Vec::new(), + }; + short.aliases = vec![Opt { + name: Name::Short('b'), + hasarg: HasArg::Yes, + occur: Occur::Req, + aliases: Vec::new(), + }]; + let mut opts = Options::new(); + opts.reqopt("b", "banana", "some bananas", "VAL"); + let verbose = &opts.grps[0]; + assert!(verbose.long_to_short() == short); +} + +#[test] +fn test_aliases_long_and_short() { + let args = vec!["-a".to_string(), "--apple".to_string(), "-a".to_string()]; + + let matches = Options::new() + .optflagmulti("a", "apple", "Desc") + .parse(&args) + .unwrap(); + assert_eq!(3, matches.opt_count("a")); + assert_eq!(3, matches.opt_count("apple")); +} + +#[test] +fn test_usage() { + let mut opts = Options::new(); + opts.reqopt("b", "banana", "Desc", "VAL"); + opts.optopt("a", "012345678901234567890123456789", "Desc", "VAL"); + opts.optflag("k", "kiwi", "Desc"); + opts.optflagopt("p", "", "Desc", "VAL"); + opts.optmulti("l", "", "Desc", "VAL"); + opts.optflag("", "starfruit", "Starfruit"); + + let expected = "Usage: fruits + +Options: + -b, --banana VAL Desc + -a, --012345678901234567890123456789 VAL + Desc + -k, --kiwi Desc + -p [VAL] Desc + -l VAL Desc + --starfruit Starfruit +"; + + let generated_usage = opts.usage("Usage: fruits"); + + debug!("expected: <<{}>>", expected); + debug!("generated: <<{}>>", generated_usage); + assert_eq!(generated_usage, expected); +} + +#[test] +fn test_usage_description_wrapping() { + // indentation should be 24 spaces + // lines wrap after 78: or rather descriptions wrap after 54 + + let mut opts = Options::new(); + opts.optflag( + "k", + "kiwi", + "This is a long description which won't be wrapped..+..", + ); // 54 + opts.optflag( + "a", + "apple", + "This is a long description which _will_ be wrapped..+..", + ); + opts.optflag( + "b", + "banana", + "HereWeNeedOneSingleWordThatIsLongerThanTheWrappingLengthAndThisIsIt", + ); + + let expected = "Usage: fruits + +Options: + -k, --kiwi This is a long description which won't be wrapped..+.. + -a, --apple This is a long description which _will_ be + wrapped..+.. + -b, --banana HereWeNeedOneSingleWordThatIsLongerThanTheWrappingLengthAndThisIsIt +"; + + let usage = opts.usage("Usage: fruits"); + + debug!("expected: <<{}>>", expected); + debug!("generated: <<{}>>", usage); + assert!(usage == expected) +} + +#[test] +fn test_usage_description_multibyte_handling() { + let mut opts = Options::new(); + opts.optflag( + "k", + "k\u{2013}w\u{2013}", + "The word kiwi is normally spelled with two i's", + ); + opts.optflag( + "a", + "apple", + "This \u{201C}description\u{201D} has some characters that could \ + confuse the line wrapping; an apple costs 0.51€ in some parts of Europe.", + ); + + let expected = "Usage: fruits + +Options: + -k, --k–w– The word kiwi is normally spelled with two i's + -a, --apple This “description” has some characters that could + confuse the line wrapping; an apple costs 0.51€ in + some parts of Europe. +"; + + let usage = opts.usage("Usage: fruits"); + + debug!("expected: <<{}>>", expected); + debug!("generated: <<{}>>", usage); + assert!(usage == expected) +} + +#[test] +fn test_usage_description_newline_handling() { + let mut opts = Options::new(); + opts.optflag( + "k", + "k\u{2013}w\u{2013}", + "The word kiwi is normally spelled with two i's", + ); + opts.optflag( + "a", + "apple", + "This description forces a new line.\n Here is a premature\n\ + newline", + ); + + let expected = "Usage: fruits + +Options: + -k, --k–w– The word kiwi is normally spelled with two i's + -a, --apple This description forces a new line. + Here is a premature + newline +"; + + let usage = opts.usage("Usage: fruits"); + + debug!("expected: <<{}>>", expected); + debug!("generated: <<{}>>", usage); + assert!(usage == expected) +} + +#[test] +fn test_usage_multiwidth() { + let mut opts = Options::new(); + opts.optflag("a", "apple", "apple description"); + opts.optflag("b", "banana\u{00AB}", "banana description"); + opts.optflag("c", "brûlée", "brûlée quite long description"); + opts.optflag("k", "kiwi\u{20AC}", "kiwi description"); + opts.optflag("o", "orange\u{2039}", "orange description"); + opts.optflag( + "r", + "raspberry-but-making-this-option-way-too-long", + "raspberry description is also quite long indeed longer than \ + every other piece of text we might encounter here and thus will \ + be automatically broken up", + ); + + let expected = "Usage: fruits + +Options: + -a, --apple apple description + -b, --banana« banana description + -c, --brûlée brûlée quite long description + -k, --kiwi€ kiwi description + -o, --orange‹ orange description + -r, --raspberry-but-making-this-option-way-too-long\u{0020} + raspberry description is also quite long indeed longer + than every other piece of text we might encounter here + and thus will be automatically broken up +"; + + let usage = opts.usage("Usage: fruits"); + + debug!("expected: <<{}>>", expected); + debug!("generated: <<{}>>", usage); + assert!(usage == expected) +} + +#[test] +fn test_usage_short_only() { + let mut opts = Options::new(); + opts.optopt("k", "", "Kiwi", "VAL"); + opts.optflag("s", "", "Starfruit"); + opts.optflagopt("a", "", "Apple", "TYPE"); + + let expected = "Usage: fruits + +Options: + -k VAL Kiwi + -s Starfruit + -a [TYPE] Apple +"; + + let usage = opts.usage("Usage: fruits"); + debug!("expected: <<{}>>", expected); + debug!("generated: <<{}>>", usage); + assert!(usage == expected) +} + +#[test] +fn test_usage_long_only() { + let mut opts = Options::new(); + opts.optopt("", "kiwi", "Kiwi", "VAL"); + opts.optflag("", "starfruit", "Starfruit"); + opts.optflagopt("", "apple", "Apple", "TYPE"); + + let expected = "Usage: fruits + +Options: + --kiwi VAL Kiwi + --starfruit Starfruit + --apple [TYPE] Apple +"; + + let usage = opts.usage("Usage: fruits"); + debug!("expected: <<{}>>", expected); + debug!("generated: <<{}>>", usage); + assert!(usage == expected) +} + +#[test] +fn test_short_usage() { + let mut opts = Options::new(); + opts.reqopt("b", "banana", "Desc", "VAL"); + opts.optopt("a", "012345678901234567890123456789", "Desc", "VAL"); + opts.optflag("k", "kiwi", "Desc"); + opts.optflagopt("p", "", "Desc", "VAL"); + opts.optmulti("l", "", "Desc", "VAL"); + + let expected = "Usage: fruits -b VAL [-a VAL] [-k] [-p [VAL]] [-l VAL]..".to_string(); + let generated_usage = opts.short_usage("fruits"); + + debug!("expected: <<{}>>", expected); + debug!("generated: <<{}>>", generated_usage); + assert_eq!(generated_usage, expected); +} +#[test] +fn test_nonexistant_opt() { + let mut opts = Options::new(); + opts.optflag("b", "bar", "Desc"); + let args: Vec = Vec::new(); + let matches = opts.parse(&args).unwrap(); + assert_eq!(matches.opt_defined("foo"), false); + assert_eq!(matches.opt_defined("bar"), true); +} +#[test] +fn test_args_with_equals() { + let mut opts = Options::new(); + opts.optopt("o", "one", "One", "INFO"); + opts.optopt("t", "two", "Two", "INFO"); + + let args = vec![ + "--one".to_string(), + "A=B".to_string(), + "--two=C=D".to_string(), + ]; + let matches = &match opts.parse(&args) { + Ok(m) => m, + Err(e) => panic!("{}", e), + }; + assert_eq!(matches.opts_str(&["o".to_string()]).unwrap(), "A=B"); + assert_eq!(matches.opts_str(&["t".to_string()]).unwrap(), "C=D"); +} + +#[test] +fn test_long_only_usage() { + let mut opts = Options::new(); + opts.long_only(true); + opts.optflag("k", "kiwi", "Description"); + opts.optflag("a", "apple", "Description"); + + let expected = "Usage: fruits + +Options: + -k, -kiwi Description + -a, -apple Description +"; + + let usage = opts.usage("Usage: fruits"); + + debug!("expected: <<{}>>", expected); + debug!("generated: <<{}>>", usage); + assert!(usage == expected) +} + +#[test] +fn test_long_only_mode() { + let mut opts = Options::new(); + opts.long_only(true); + opts.optopt("a", "apple", "Description", "X"); + opts.optopt("b", "banana", "Description", "X"); + opts.optopt("c", "currant", "Description", "X"); + opts.optopt("", "durian", "Description", "X"); + opts.optopt("e", "", "Description", "X"); + opts.optopt("", "fruit", "Description", "X"); + + let args = vec![ + "-a", + "A", + "-b=B", + "--c=C", + "-durian", + "D", + "--e", + "E", + "-fruit=any", + ]; + let matches = &match opts.parse(&args) { + Ok(m) => m, + Err(e) => panic!("{}", e), + }; + assert_eq!(matches.opts_str(&["a".to_string()]).unwrap(), "A"); + assert_eq!(matches.opts_str(&["b".to_string()]).unwrap(), "B"); + assert_eq!(matches.opts_str(&["c".to_string()]).unwrap(), "C"); + assert_eq!(matches.opts_str(&["durian".to_string()]).unwrap(), "D"); + assert_eq!(matches.opts_str(&["e".to_string()]).unwrap(), "E"); + assert_eq!(matches.opts_str(&["fruit".to_string()]).unwrap(), "any"); +} + +#[test] +fn test_long_only_mode_no_short_parse() { + let mut opts = Options::new(); + opts.long_only(true); + opts.optflag("h", "help", "Description"); + opts.optflag("i", "ignore", "Description"); + opts.optflag("", "hi", "Description"); + + let args = vec!["-hi"]; + let matches = &match opts.parse(&args) { + Ok(m) => m, + Err(e) => panic!("{}", e), + }; + assert!(matches.opt_present("hi")); + assert!(!matches.opt_present("h")); + assert!(!matches.opt_present("i")); +} + +#[test] +fn test_normal_mode_no_long_parse() { + // Like test_long_only_mode_no_short_parse, but we make sure + // that long_only can be disabled, and the right thing + // happens. + let mut opts = Options::new(); + opts.long_only(true); + opts.optflag("h", "help", "Description"); + opts.optflag("i", "ignore", "Description"); + opts.optflag("", "hi", "Description"); + opts.long_only(false); + + let args = vec!["-hi"]; + let matches = &match opts.parse(&args) { + Ok(m) => m, + Err(e) => panic!("{}", e), + }; + assert!(!matches.opt_present("hi")); + assert!(matches.opt_present("h")); + assert!(matches.opt_present("i")); +} + +#[test] +#[should_panic] +fn test_long_name_too_short() { + let mut opts = Options::new(); + opts.optflag("", "a", "Oops, long option too short"); +} + +#[test] +#[should_panic] +fn test_undefined_opt_present() { + let mut opts = Options::new(); + opts.optflag("h", "help", "Description"); + let args = vec!["-h"]; + match opts.parse(args) { + Ok(matches) => assert!(!matches.opt_present("undefined")), + Err(e) => panic!("{}", e), + } +} + +#[test] +fn test_opt_default() { + let mut opts = Options::new(); + opts.optflag("h", "help", "Description"); + opts.optflag("i", "ignore", "Description"); + opts.optflag("r", "run", "Description"); + opts.long_only(false); + + let args: Vec = ["-i", "-r", "10"].iter().map(|x| x.to_string()).collect(); + let matches = &match opts.parse(&args) { + Ok(m) => m, + Err(e) => panic!("{}", e), + }; + assert_eq!(matches.opt_default("help", ""), None); + assert_eq!(matches.opt_default("i", "def"), Some("def".to_string())); +} + +#[test] +fn test_opt_get() { + let mut opts = Options::new(); + opts.optflag("h", "help", "Description"); + opts.optflagopt("i", "ignore", "Description", "true | false"); + opts.optflagopt("r", "run", "Description", "0 .. 10"); + opts.optflagopt("p", "percent", "Description", "0.0 .. 10.0"); + opts.long_only(false); + + let args: Vec = ["-i", "true", "-p", "1.1"] + .iter() + .map(|x| x.to_string()) + .collect(); + let matches = &match opts.parse(&args) { + Ok(m) => m, + Err(e) => panic!("{}", e), + }; + let h_arg = matches.opt_get::("help"); + assert_eq!(h_arg, Ok(None)); + let i_arg = matches.opt_get("i"); + assert_eq!(i_arg, Ok(Some(true))); + let p_arg = matches.opt_get("p"); + assert_eq!(p_arg, Ok(Some(1.1))); +} + +#[test] +fn test_opt_get_default() { + let mut opts = Options::new(); + opts.optflag("h", "help", "Description"); + opts.optflagopt("i", "ignore", "Description", "true | false"); + opts.optflagopt("r", "run", "Description", "0 .. 10"); + opts.optflagopt("p", "percent", "Description", "0.0 .. 10.0"); + opts.long_only(false); + + let args: Vec = ["-i", "true", "-p", "1.1"] + .iter() + .map(|x| x.to_string()) + .collect(); + let matches = &match opts.parse(&args) { + Ok(m) => m, + Err(e) => panic!("{}", e), + }; + let h_arg = matches.opt_get_default("help", 10); + assert_eq!(h_arg, Ok(10)); + let i_arg = matches.opt_get_default("i", false); + assert_eq!(i_arg, Ok(true)); + let p_arg = matches.opt_get_default("p", 10.2); + assert_eq!(p_arg, Ok(1.1)); +} + +#[test] +fn test_opt_positions() { + let mut opts = Options::new(); + opts.optflagmulti("a", "act", "Description"); + opts.optflagmulti("e", "enact", "Description"); + opts.optflagmulti("r", "react", "Description"); + + let args: Vec = ["-a", "-a", "-r", "-a", "-r", "-r"] + .iter() + .map(|x| x.to_string()) + .collect(); + + let matches = &match opts.parse(&args) { + Ok(m) => m, + Err(e) => panic!("{}", e), + }; + + let a_pos = matches.opt_positions("a"); + assert_eq!(a_pos, vec![0, 1, 3]); + let e_pos = matches.opt_positions("e"); + assert_eq!(e_pos, vec![]); + let r_pos = matches.opt_positions("r"); + assert_eq!(r_pos, vec![2, 4, 5]); +} + +#[test] +fn test_opt_strs_pos() { + let mut opts = Options::new(); + opts.optmulti("a", "act", "Description", "NUM"); + opts.optmulti("e", "enact", "Description", "NUM"); + opts.optmulti("r", "react", "Description", "NUM"); + + let args: Vec = ["-a1", "-a2", "-r3", "-a4", "-r5", "-r6"] + .iter() + .map(|x| x.to_string()) + .collect(); + + let matches = &match opts.parse(&args) { + Ok(m) => m, + Err(e) => panic!("{}", e), + }; + + let a_pos = matches.opt_strs_pos("a"); + assert_eq!( + a_pos, + vec![ + (0, "1".to_string()), + (1, "2".to_string()), + (3, "4".to_string()) + ] + ); + let e_pos = matches.opt_strs_pos("e"); + assert_eq!(e_pos, vec![]); + let r_pos = matches.opt_strs_pos("r"); + assert_eq!( + r_pos, + vec![ + (2, "3".to_string()), + (4, "5".to_string()), + (5, "6".to_string()) + ] + ); +} diff --git a/src/rust/vendor/getopts/tests/smoke.rs b/src/rust/vendor/getopts/tests/smoke.rs new file mode 100644 index 000000000..a46f9c016 --- /dev/null +++ b/src/rust/vendor/getopts/tests/smoke.rs @@ -0,0 +1,8 @@ +extern crate getopts; + +use std::env; + +#[test] +fn main() { + getopts::Options::new().parse(env::args()).unwrap(); +} diff --git a/src/rust/vendor/gimli/.cargo-checksum.json b/src/rust/vendor/gimli/.cargo-checksum.json new file mode 100644 index 000000000..231fc1a01 --- /dev/null +++ b/src/rust/vendor/gimli/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"CHANGELOG.md":"8c5e124875aaba1b8ff61ab55e64164d866486874dd408cf90d9a22b659e0afe","Cargo.toml":"bf0b2be9dd65dbf7a867d52aa57affed9080d081e96cd9236a02d6294633359a","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0","README.md":"847d6fe37773df4748bc20e9e810c6d378d3d9320a0a35f6a03feee630b99558","src/arch.rs":"7b5037bc1fa263c51b37bcab337e8a94ef82b6d4b70c0158e43a3c4154e61d58","src/common.rs":"301ec88e624ea0ab28a0b4c6819712feacc2886a3640b159f1a8b7eb007ac634","src/constants.rs":"cf37acb6703a3f7cbb5b26467721560a074a03f2a8dfd1a6104d916cb5255117","src/endianity.rs":"1f7e62ae34f540c06bedf1e7948739211556eea7dd83731a5ca52c7d687ed0fc","src/leb128.rs":"996d5c79d027f97c010ca487bc4ff5f8265f4b9e63d62b4e4fa291383c259ee9","src/lib.rs":"0dd6cff2e1fa56a79188b3b83c738b747af3288ef37f5e867e2a53971190818c","src/read/abbrev.rs":"4fc0efffe69e291dda890f0a66c12ae27053618119eefd7ec7303137364be18a","src/read/addr.rs":"f63f289edf889e87107bb2090fb1c50b48af7015f31b7c39c3d6ea09630a38e9","src/read/aranges.rs":"ba3302f87cffb7ee15f48b0530ebd707f45ad056934223078d25ae2a1b034f1c","src/read/cfi.rs":"c1d7977921128721ecebafc56b86dac27a49664f9a0defb6dcfb50c4c4ff4dcf","src/read/dwarf.rs":"17c5daba222a268d48621fbacb451082fdc63891fc356e94fdc3c95616fe3b8b","src/read/endian_reader.rs":"320983a859c2bb0dd44a3e6fae55ff0a84dba3fa80c2edbc64aa8135c44eddf0","src/read/endian_slice.rs":"c3e153a8a786498ee63a2d11b87371c7edb85d0e144242fe887c126250be80e3","src/read/index.rs":"e79b8d591b8e2007a37f5ea85a6d71b69d56ca3739a85cf7bf361724c5b829fa","src/read/line.rs":"19d38cbd27645885c59c41f7b8e7a509e0be1d701e4b30be13780744384c674b","src/read/lists.rs":"67ca9e1a36a91feb4996d035211de845205212bfda02163685d217818567ff93","src/read/loclists.rs":"857701a9e86aee809bfca3fd661e283b4f05038764dfc9c3cb1a349acc00bc47","src/read/lookup.rs":"0cf89ba12b9d48b1fe035dd3a497730323acb9427a9457abbc2f7c58c4c71165","src/read/mod.rs":"35ba9167bbfbe38a82996fc343f79e22d6c83eba9daff6d048587ef6feb6baaa","src/read/op.rs":"2305f90e6cdf48ed7fbe67814d99d7a14662d030515b51aaad198807c13433e3","src/read/pubnames.rs":"ed752ee1a7017e6d3be42d81e4ddaaac960ef08081463a19106c9f041526d4a3","src/read/pubtypes.rs":"5e75b32c0923e827aff0bb2db456797a0e8d38ba46be992558a7990b3196bcf5","src/read/reader.rs":"3e8ce504b651e14b839ef63c080c705ba7aef956ac2c7a74e298c015b791e2d2","src/read/rnglists.rs":"4ec166e73fdfc85efa97b3b005b514bb64d454edb1ba0f201c45df4f2127e745","src/read/str.rs":"4c2f50014451621fea45969cd313f6840fcd3a99d7a2d081bfa1f8e0e434133a","src/read/unit.rs":"60ecb8099d9386d85119b45ab92d628f3d3409b04669489b76e732d338b27f65","src/read/util.rs":"61e41212f1c8336988c9a7a1523c2913af8c8a66d2dd59d3631ba179e801e3bd","src/read/value.rs":"5ce8ef633f5af47bd367a5e4cde2c71bcef297c91a8d567192e460c890aef6de","src/test_util.rs":"291eefa6b51c6d934ba2f4a4c9bc7c403046fc1cccf4d43487820f0154bb89e2","src/write/abbrev.rs":"fa02163389e92e804d139cf84f833ab6af932083f0eb2d74464b4a70bd3237ff","src/write/cfi.rs":"e274b8b28f4e58c49ce530a5c630a26c6074be12f0faffed09709b700748afd7","src/write/dwarf.rs":"8a1a0893e31134ad68993994594f3024ad0c8af7c1188b29e0ffc26b42edef21","src/write/endian_vec.rs":"1d5811986648816a677580b22630f5059757a381487d73e9adbb3008c9ae0c58","src/write/line.rs":"73bf3bab57433fe1dc891c48303cbc4e482306a1b9425f3483ad2985a9676ee9","src/write/loc.rs":"5c1f8d97d8e871a6663ad704f5e15694bddd54b85f2d801b52a520522f1258fd","src/write/mod.rs":"d8aa1da854cdee629d470d00d87e00dc6998e4bec1ca951f8d2f277730ab9d69","src/write/op.rs":"08fec7613aaa9061aae6e31d8b49933c812a6b7609f69e611a2a953af09aa18a","src/write/range.rs":"259e21e32bebbf7cdd8027d401862dee95cb5111e45bc4ff30bf54e3306d0262","src/write/section.rs":"effefef0d5e4557cb099431a20a7304392e6bf4ce04941d72b8bd2df9100e297","src/write/str.rs":"4850cc2fee55980f9cbb6b4169f9861ab9d05c2b28a85c2b790480b83a66f514","src/write/unit.rs":"4a96a5f302b3bdf03faf3ff404bbcbed60d295080853ab8dabff5efa53f9ba37","src/write/writer.rs":"7d5dd07b82ec3becebb060c106d4ea697cbd8b9b64a5de78403511a5244e08b1"},"package":"4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"} \ No newline at end of file diff --git a/src/rust/vendor/gimli/CHANGELOG.md b/src/rust/vendor/gimli/CHANGELOG.md new file mode 100644 index 000000000..dfa30743f --- /dev/null +++ b/src/rust/vendor/gimli/CHANGELOG.md @@ -0,0 +1,1022 @@ +# `gimli` Change Log + +-------------------------------------------------------------------------------- + +## 0.28.1 + +Released 2023/11/24. + +### Changed + +* Changed `read::AbbreviationsCache` to require manual population using + `Dwarf::populate_abbreviations_cache`. + [#679](https://github.com/gimli-rs/gimli/pull/679) + +* Changed the default `read::UnwindContextStorage` to use `Box` instead of `Vec` + so that its memory usage is limited. + [#687](https://github.com/gimli-rs/gimli/pull/687) + +* Changed `read::UnwindTable::new` to always reset the context, because + previous errors may have left the context in an invalid state. + [#684](https://github.com/gimli-rs/gimli/pull/684) + +* Changed the `Debug` implementation for `read::EndianSlice` to limit the number + of bytes it displays. + [#686](https://github.com/gimli-rs/gimli/pull/686) + +### Added + +* Added more AArch64 register definitions. + [#680](https://github.com/gimli-rs/gimli/pull/680) + +* Added `read::Unit::new_with_abbreviations`. + [#677](https://github.com/gimli-rs/gimli/pull/677) + +* Added `read::Evaluation::value_result`. + [#676](https://github.com/gimli-rs/gimli/pull/676) + +-------------------------------------------------------------------------------- + +## 0.28.0 + +Released 2023/08/12. + +### Breaking changes + +* Deleted `impl From for &[u8]`. Use `EndianSlice::slice` instead. + [#669](https://github.com/gimli-rs/gimli/pull/669) + +* Deleted `impl Index for EndianSlice` and + `impl Index> for EndianSlice`. + [#669](https://github.com/gimli-rs/gimli/pull/669) + +* Replaced `impl From for u64` with `Pointer::pointer`. + [#670](https://github.com/gimli-rs/gimli/pull/670) + +* Updated `fallible-iterator` to 0.3.0. + [#672](https://github.com/gimli-rs/gimli/pull/672) + +* Changed some optional dependencies to use the `dep:` feature syntax. + [#672](https://github.com/gimli-rs/gimli/pull/672) + +* Added `non_exhaustive` attribute to `read::RegisterRule`, + `read::CallFrameInstruction`, and `write::CallFrameInstruction`. + [#673](https://github.com/gimli-rs/gimli/pull/673) + +### Changed + +* The minimum supported rust version for the `read` feature and its dependencies + increased to 1.60.0. + +* The minimum supported rust version for other features increased to 1.65.0. + +### Added + +* Added `Vendor`, `read::DebugFrame::set_vendor`, and `read::EhFrame::set_vendor`. + [#673](https://github.com/gimli-rs/gimli/pull/673) + +* Added more ARM and AArch64 register definitions, and + `DW_CFA_AARCH64_negate_ra_state` support. + [#673](https://github.com/gimli-rs/gimli/pull/673) + +-------------------------------------------------------------------------------- + +## 0.27.3 + +Released 2023/06/14. + +### Changed + +* Excluded test fixtures from published package. + [#661](https://github.com/gimli-rs/gimli/pull/661) + +### Added + +* Added `FallibleIterator` implementation for `read::OperationIter`. + [#649](https://github.com/gimli-rs/gimli/pull/649) + +* Added `DW_AT_GNU_deleted` constant. + [#658](https://github.com/gimli-rs/gimli/pull/658) + +-------------------------------------------------------------------------------- + +## 0.27.2 + +Released 2023/02/15. + +### Added + +* Added support for tombstones in `read::LineRows`. + [#642](https://github.com/gimli-rs/gimli/pull/642) + +-------------------------------------------------------------------------------- + +## 0.27.1 + +Released 2023/01/23. + +### Added + +* Added `SectionId::xcoff_name` and `read::Section::xcoff_section_name`. + [#635](https://github.com/gimli-rs/gimli/pull/635) + +* Added `read::Dwarf::make_dwo` and `read::Unit::dwo_name`. + [#637](https://github.com/gimli-rs/gimli/pull/637) + +### Changed + +* Changed `read::DwarfPackage::sections` to handle supplementary files. + [#638](https://github.com/gimli-rs/gimli/pull/638) + +-------------------------------------------------------------------------------- + +## 0.27.0 + +Released 2022/11/23. + +### Breaking changes + +* Added `read::Dwarf::abbreviations_cache` to cache abbreviations at offset 0. + Changed `read::Dwarf::abbreviations` to return `Result>`, + and changed `read::Unit::abbreviations` to `Arc`. + [#628](https://github.com/gimli-rs/gimli/pull/628) + +### Added + +* Added LoongArch register definitions. + [#624](https://github.com/gimli-rs/gimli/pull/624) + +* Added support for tombstones in `read::LocListIter` and `read::RngListIter`. + [#631](https://github.com/gimli-rs/gimli/pull/631) + +-------------------------------------------------------------------------------- + +## 0.26.2 + +Released 2022/07/16. + +### Changed + +* Fixed CFI personality encoding when writing. + [#609](https://github.com/gimli-rs/gimli/pull/609) + +* Fixed use of raw pointer for mutation, detected by Miri. + [#614](https://github.com/gimli-rs/gimli/pull/614) + +* Fixed `DW_OP_GNU_implicit_pointer` handling for DWARF version 2. + [#618](https://github.com/gimli-rs/gimli/pull/618) + +### Added + +* Added `read::EhHdrTable::iter`. + [#619](https://github.com/gimli-rs/gimli/pull/619) + +-------------------------------------------------------------------------------- + +## 0.26.1 + +Released 2021/11/02. + +### Changed + +* Fixed segmentation fault in `ArrayVec>::into_vec`, which may be used by + `read::Evaluation::result`. This regression was introduced in 0.26.0. + [#601](https://github.com/gimli-rs/gimli/pull/601) + +-------------------------------------------------------------------------------- + +## 0.26.0 + +Released 2021/10/24. + +### Breaking changes + +* Removed `read::UninitializedUnwindContext`. Use `Box` instead. + [#593](https://github.com/gimli-rs/gimli/pull/593) + +* Renamed `read::Error::CfiStackFull` to `StackFull`. + [#595](https://github.com/gimli-rs/gimli/pull/595) + +* Added `UnwindContextStorage` type parameter to `read::UnwindContext`, `read::UnwindTable`, + `read::UnwindTableRow`, and `read::RegisterRuleMap`. + [#595](https://github.com/gimli-rs/gimli/pull/595) + +* Added `EvaluationStorage` type parameter to `read::Evaluation`. + [#595](https://github.com/gimli-rs/gimli/pull/595) + +* Added `read::SectionId::DebugCuIndex` and `read::SectionId::DebugTuIndex`. + [#588](https://github.com/gimli-rs/gimli/pull/588) + +### Changed + +* Fixed `DW_EH_PE_pcrel` handling in default `write::Writer::write_eh_pointer` implementation. + [#576](https://github.com/gimli-rs/gimli/pull/576) + +* Fixed `read::AttributeSpecification::size` for some forms. + [#597](https://github.com/gimli-rs/gimli/pull/597) + +* Display more unit details in dwarfdump. + [#584](https://github.com/gimli-rs/gimli/pull/584) + +### Added + +* Added `write::DebuggingInformationEntry::delete_child`. + [#570](https://github.com/gimli-rs/gimli/pull/570) + +* Added ARM and AArch64 register definitions. + [#574](https://github.com/gimli-rs/gimli/pull/574) + [#577](https://github.com/gimli-rs/gimli/pull/577) + +* Added RISC-V register definitions. + [#579](https://github.com/gimli-rs/gimli/pull/579) + +* Added `read::DwarfPackage`, `read::DebugCuIndex`, and `read::DebugTuIndex`. + [#588](https://github.com/gimli-rs/gimli/pull/588) + +* Added `read-core` feature to allow building without `liballoc`. + [#596](https://github.com/gimli-rs/gimli/pull/596) + +* Added `read::EntriesRaw::skip_attributes`. + [#597](https://github.com/gimli-rs/gimli/pull/597) + +-------------------------------------------------------------------------------- + +## 0.25.0 + +Released 2021/07/26. + +### Breaking changes + +* `read::FrameDescriptionEntry::unwind_info_for_address` now returns a reference + instead of cloning. + [#557](https://github.com/gimli-rs/gimli/pull/557) + +* `read::AttributeValue::RangeListsRef` now contains a `RawRangeListsOffset` + to allow handling of GNU split DWARF extensions. + Use `read::Dwarf::ranges_offset_from_raw` to handle it. + [#568](https://github.com/gimli-rs/gimli/pull/568) + [#569](https://github.com/gimli-rs/gimli/pull/569) + +* Added `read::Unit::dwo_id`. + [#569](https://github.com/gimli-rs/gimli/pull/569) + +### Changed + +* `.debug_aranges` parsing now accepts version 3. + [#560](https://github.com/gimli-rs/gimli/pull/560) + +* `read::Dwarf::attr_ranges_offset` and its callers now handle GNU split DWARF extensions. + [#568](https://github.com/gimli-rs/gimli/pull/568) + [#569](https://github.com/gimli-rs/gimli/pull/569) + +### Added + +* Added `read::DebugLineStr::new`. + [#556](https://github.com/gimli-rs/gimli/pull/556) + +* Added `read::UnwindTable::into_current_row`. + [#557](https://github.com/gimli-rs/gimli/pull/557) + +* Added more `DW_LANG` constants. + [#565](https://github.com/gimli-rs/gimli/pull/565) + +* dwarfdump: added DWO parent support. + [#568](https://github.com/gimli-rs/gimli/pull/568) + +* Added `read::Dwarf` methods: `ranges_offset_from_raw`, `raw_ranges`, and `raw_locations`. + [#568](https://github.com/gimli-rs/gimli/pull/568) + [#569](https://github.com/gimli-rs/gimli/pull/569) + +-------------------------------------------------------------------------------- + +## 0.24.0 + +Released 2021/05/01. + +### Breaking changes + +* Minimum Rust version increased to 1.42.0. + +* Added `read::Dwarf::debug_aranges`. + [#539](https://github.com/gimli-rs/gimli/pull/539) + +* Replaced `read::DebugAranges::items` with `read::DebugAranges::headers`. + [#539](https://github.com/gimli-rs/gimli/pull/539) + +* Added `read::Operation::Wasm*`. + [#546](https://github.com/gimli-rs/gimli/pull/546) + +* `read::LineRow::line` now returns `Option`. + The `read::ColumnType::Column` variant now contains a `NonZeroU64`. + [#551](https://github.com/gimli-rs/gimli/pull/551) + +* Replaced `read::Dwarf::debug_str_sup` with `read::Dwarf::sup`. + Deleted `sup` parameter of `read::Dwarf::load`. + Added `read::Dwarf::load_sup`. + [#554](https://github.com/gimli-rs/gimli/pull/554) + +### Added + +* dwarfdump: Supplementary object file support. + [#552](https://github.com/gimli-rs/gimli/pull/552) + +### Changed + +* Support `DW_FORM_addrx*` for `DW_AT_low_pc`/`DW_AT_high_pc` in `read::Dwarf`. + [#541](https://github.com/gimli-rs/gimli/pull/541) + +* Performance improvement in `EndianReader`. + [#549](https://github.com/gimli-rs/gimli/pull/549) + +-------------------------------------------------------------------------------- + +## 0.23.0 + +Released 2020/10/27. + +### Breaking changes + +* Added more variants to `read::UnitType`. + Added `read::AttributeValue::DwoId` + [#521](https://github.com/gimli-rs/gimli/pull/521) + +* Replaced `CompilationUnitHeader` and `TypeUnitHeader` with `UnitHeader`. + Replaced `CompilationUnitHeadersIter` with `DebugInfoUnitHeadersIter`. + Replaced `TypeUnitHeadersIter` with `DebugTypesUnitHeadersIter`. + [#523](https://github.com/gimli-rs/gimli/pull/523) + + +### Added + +* Added read support for split DWARF. + [#527](https://github.com/gimli-rs/gimli/pull/527) + [#529](https://github.com/gimli-rs/gimli/pull/529) + +* Added `read::Dwarf::attr_address`. + [#524](https://github.com/gimli-rs/gimli/pull/524) + +* Added read support for `DW_AT_GNU_addr_base` and `DW_AT_GNU_ranges_base`. + [#525](https://github.com/gimli-rs/gimli/pull/525) + +* dwarfdump: Display index values for attributes. + [#526](https://github.com/gimli-rs/gimli/pull/526) + +* Added `name_to_register`. + [#532](https://github.com/gimli-rs/gimli/pull/532) + +-------------------------------------------------------------------------------- + +## 0.22.0 + +Released 2020/07/03. + +### Breaking changes + +* Fixed `UnitHeader::size_of_header` for DWARF 5 units. + [#518](https://github.com/gimli-rs/gimli/pull/518) + +### Added + +* Added fuzz targets in CI. + [#512](https://github.com/gimli-rs/gimli/pull/512) + +* Added read support for `DW_OP_GNU_addr_index` and `DW_OP_GNU_const_index`. + [#516](https://github.com/gimli-rs/gimli/pull/516) + +* Added `.dwo` support to dwarfdump. + [#516](https://github.com/gimli-rs/gimli/pull/516) + +* Added `SectionId::dwo_name` and `Section::dwo_section_name`. + [#517](https://github.com/gimli-rs/gimli/pull/517) + +### Fixed + +* Fixed panic when reading `DW_FORM_indirect` combined with `DW_FORM_implicit_const`. + [#502](https://github.com/gimli-rs/gimli/pull/502) + +* Fixed panic for `read::Abbreviations::get(0)`. + [#505](https://github.com/gimli-rs/gimli/pull/505) + +* Fixed arithmetic overflow when reading `.debug_line`. + [#508](https://github.com/gimli-rs/gimli/pull/508) + +* Fixed arithmetic overflow when reading CFI. + [#509](https://github.com/gimli-rs/gimli/pull/509) + +* Fixed arithmetic overflow and division by zero when reading `.debug_aranges`. + [#510](https://github.com/gimli-rs/gimli/pull/510) + +* Don't return error from `read::Unit::new` when `DW_AT_name` or `DW_AT_comp_dir` is missing. + [#515](https://github.com/gimli-rs/gimli/pull/515) + +-------------------------------------------------------------------------------- + +## 0.21.0 + +Released 2020/05/12. + +### Breaking changes + +* Minimum Rust version increased to 1.38.0. + +* Replaced `read::Operation::Literal` with `Operation::UnsignedConstant` and `Operation::SignedConstant`. + Changed `read::Operation::Bra` and `read::Operation::Skip` to contain the target offset instead of the bytecode. + [#479](https://github.com/gimli-rs/gimli/pull/479) + +* Changed `write::Expression` to support references. Existing users can convert to use `Expression::raw`. + [#479](https://github.com/gimli-rs/gimli/pull/479) + +* Replaced `write::AttributeValue::AnyUnitEntryRef` with `DebugInfoRef`. + Renamed `write::AttributeValue::ThisUnitEntryRef` to `UnitRef`. + [#479](https://github.com/gimli-rs/gimli/pull/479) + +* Added more optional features: `endian-reader` and `fallible-iterator`. + [#495](https://github.com/gimli-rs/gimli/pull/495) + [#498](https://github.com/gimli-rs/gimli/pull/498) + +### Added + +* Added `read::Expression::operations` + [#479](https://github.com/gimli-rs/gimli/pull/479) + +### Fixed + +* Fixed newlines in `dwarfdump` example. + [#470](https://github.com/gimli-rs/gimli/pull/470) + +* Ignore zero terminators when reading `.debug_frame` sections. + [#486](https://github.com/gimli-rs/gimli/pull/486) + +* Increase the number of CFI register rules supported by `read::UnwindContext`. + [#487](https://github.com/gimli-rs/gimli/pull/487) + +* Fixed version handling and return register encoding when reading `.eh_frame` sections. + [#493](https://github.com/gimli-rs/gimli/pull/493) + +### Changed + +* Added `EhFrame` and `DebugFrame` to `write::Sections`. + [#492](https://github.com/gimli-rs/gimli/pull/492) + +* Improved performance of `write::LineProgram::generate_row`. + [#476](https://github.com/gimli-rs/gimli/pull/476) + +* Removed use of the `byteorder`, `arrayvec` and `smallvec` crates. + [#494](https://github.com/gimli-rs/gimli/pull/494) + [#496](https://github.com/gimli-rs/gimli/pull/496) + [#497](https://github.com/gimli-rs/gimli/pull/497) + +-------------------------------------------------------------------------------- + +## 0.20.0 + +Released 2020/01/11. + +### Breaking changes + +* Changed type of `DwTag`, `DwAt`, and `DwForm` constants. + [#451](https://github.com/gimli-rs/gimli/pull/451) + +* Added `read/write::AttributeValue::DebugMacroRef`, and returned where + required in `read::Attribute::value`. Added `SectionId::DebugMacro`. + [#454](https://github.com/gimli-rs/gimli/pull/454) + +* Deleted `alloc` feature, and fixed `no-std` builds with stable rust. + [#459](https://github.com/gimli-rs/gimli/pull/459) + +* Deleted `read::Error::description`, and changed `` + to display what was previously the description. + [#462](https://github.com/gimli-rs/gimli/pull/462) + +### Added + +* Added GNU view constants. + [#434](https://github.com/gimli-rs/gimli/pull/434) + +* Added `read::EntriesRaw` for low level DIE parsing. + [#455](https://github.com/gimli-rs/gimli/pull/455) + +* Added `examples/simple-line.rs`. + [#460](https://github.com/gimli-rs/gimli/pull/460) + +### Fixed + +* Fixed handling of CFI augmentations without data. + [#438](https://github.com/gimli-rs/gimli/pull/438) + +* dwarfdump: fix panic for malformed expressions. + [#447](https://github.com/gimli-rs/gimli/pull/447) + +* dwarfdump: fix handling of Mach-O relocations. + [#449](https://github.com/gimli-rs/gimli/pull/449) + +### Changed + +* Improved abbreviation parsing performance. + [#451](https://github.com/gimli-rs/gimli/pull/451) + +-------------------------------------------------------------------------------- + +## 0.19.0 + +Released 2019/07/08. + +### Breaking changes + +* Small API changes related to `.debug_loc` and `.debug_loclists`: + added `read::RawLocListEntry::AddressOrOffsetPair` enum variant, + added `write::Sections::debug_loc/debug_loclists` public members, + and replaced `write::AttributeValue::LocationListsRef` with `LocationListRef`. + [#425](https://github.com/gimli-rs/gimli/pull/425) + +### Added + +* Added `read::Attribute::exprloc_value` and `read::AttributeValue::exprloc_value`. + [#422](https://github.com/gimli-rs/gimli/pull/422) + +* Added support for writing `.debug_loc` and `.debug_loclists` sections. + [#425](https://github.com/gimli-rs/gimli/pull/425) + +* Added `-G` flag to `dwarfdump` example to display global offsets. + [#427](https://github.com/gimli-rs/gimli/pull/427) + +* Added `examples/simple.rs`. + [#429](https://github.com/gimli-rs/gimli/pull/429) + +### Fixed + +* `write::LineProgram::from` no longer requires `DW_AT_name` or `DW_AT_comp_dir` + attributes to be present in the unit DIE. + [#430](https://github.com/gimli-rs/gimli/pull/430) + +-------------------------------------------------------------------------------- + +## 0.18.0 + +Released 2019/04/25. + +The focus of this release has been on improving support for reading CFI, +and adding support for writing CFI. + +### Breaking changes + +* For types which have an `Offset` type parameter, the default `Offset` + has changed from `usize` to `R::Offset`. + [#392](https://github.com/gimli-rs/gimli/pull/392) + +* Added an `Offset` type parameter to the `read::Unit` type to allow variance. + [#393](https://github.com/gimli-rs/gimli/pull/393) + +* Changed the `UninitializedUnwindContext::initialize` method to borrow `self`, + and return `&mut UnwindContext`. Deleted the `InitializedUnwindContext` type. + [#395](https://github.com/gimli-rs/gimli/pull/395) + +* Deleted the `UnwindSection` type parameters from the `CommonInformationEntry`, + `FrameDescriptionEntry`, `UninitializedUnwindContext`, + `UnwindContext`, and `UnwindTable` types. + [#399](https://github.com/gimli-rs/gimli/pull/399) + +* Changed the signature of the `get_cie` callback parameter for various functions. + The signature now matches the `UnwindSection::cie_from_offset` method, so + that method can be used as the parameter. + [#400](https://github.com/gimli-rs/gimli/pull/400) + +* Reduced the number of lifetime parameters for the `UnwindTable` type. + [#400](https://github.com/gimli-rs/gimli/pull/400) + +* Updated `fallible-iterator` to version 0.2.0. + [#407](https://github.com/gimli-rs/gimli/pull/407) + +* Added a parameter to the `Error::UnexpectedEof` enum variant. + [#408](https://github.com/gimli-rs/gimli/pull/408) + +### Added + +* Update to 2018 edition. + [#391](https://github.com/gimli-rs/gimli/pull/391) + +* Added the `FrameDescriptionEntry::unwind_info_for_address` method. + [#396](https://github.com/gimli-rs/gimli/pull/396) + +* Added the `FrameDescriptionEntry::rows` method. + [#396](https://github.com/gimli-rs/gimli/pull/396) + +* Added the `EhHdrTable::unwind_info_for_address` method. + [#400](https://github.com/gimli-rs/gimli/pull/400) + +* Added the `EhHdrTable::fde_for_address` method and deprecated the + `EhHdrTable::lookup_and_parse` method. + [#400](https://github.com/gimli-rs/gimli/pull/400) + +* Added the `EhHdrTable::pointer_to_offset` method. + [#400](https://github.com/gimli-rs/gimli/pull/400) + +* Added the `UnwindSection::fde_for_address` method. + [#396](https://github.com/gimli-rs/gimli/pull/396) + +* Added the `UnwindSection::fde_from_offset` method. + [#400](https://github.com/gimli-rs/gimli/pull/400) + +* Added the `UnwindSection::partial_fde_from_offset` method. + [#400](https://github.com/gimli-rs/gimli/pull/400) + +* Added the `Section::id` method. + [#406](https://github.com/gimli-rs/gimli/pull/406) + +* Added the `Dwarf::load` method, and corresponding methods for individual sections. + [#406](https://github.com/gimli-rs/gimli/pull/406) + +* Added the `Dwarf::borrow` method, and corresponding methods for individual sections. + [#406](https://github.com/gimli-rs/gimli/pull/406) + +* Added the `Dwarf::format_error` method. + [#408](https://github.com/gimli-rs/gimli/pull/408) + +* Added the `Dwarf::die_ranges` method. + [#417](https://github.com/gimli-rs/gimli/pull/417) + +* Added the `Dwarf::unit_ranges` method. + [#417](https://github.com/gimli-rs/gimli/pull/417) + +* Added support for writing `.debug_frame` and `.eh_frame` sections. + [#412](https://github.com/gimli-rs/gimli/pull/412) + [#419](https://github.com/gimli-rs/gimli/pull/419) + +### Fixed + +* The `code_alignment_factor` is now used when evaluating CFI instructions + that advance the location. + [#401](https://github.com/gimli-rs/gimli/pull/401) + +* Fixed parsing of pointers encoded with `DW_EH_PE_funcrel`. + [#402](https://github.com/gimli-rs/gimli/pull/402) + +* Use the FDE address encoding from the augmentation when parsing `DW_CFA_set_loc`. + [#403](https://github.com/gimli-rs/gimli/pull/403) + +* Fixed setting of `.eh_frame` base addresses in dwarfdump. + [#410](https://github.com/gimli-rs/gimli/pull/410) + +## 0.17.0 + +Released 2019/02/21. + +The focus of this release has been on improving DWARF 5 support, and +adding support for writing DWARF. + +### Breaking changes + +* Changed register values to a `Register` type instead of `u8`/`u64`. + [#328](https://github.com/gimli-rs/gimli/pull/328) + +* Replaced `BaseAddresses::set_cfi` with `set_eh_frame_hdr` and `set_eh_frame`. + Replaced `BaseAddresses::set_data` with `set_got`. + You should now use the same `BaseAddresses` value for parsing both + `.eh_frame` and `.eh_frame_hdr`. + [#351](https://github.com/gimli-rs/gimli/pull/351) + +* Renamed many types and functions related to `.debug_line`. + Renamed `LineNumberProgram` to `LineProgram`. + Renamed `IncompleteLineNumberProgram` to `IncompleteLineProgram`. + Renamed `CompleteLineNumberProgram` to `CompleteLineProgram`. + Renamed `LineNumberProgramHeader` to `LineProgramHeader`. + Renamed `LineNumberRow` to `LineRow`. + Renamed `StateMachine` to `LineRows`. + Renamed `Opcode` to `LineInstruction`. + Renamed `OpcodesIter` to `LineInstructions`. + Renamed `LineNumberSequence` to `LineSequence`. + [#359](https://github.com/gimli-rs/gimli/pull/359) + +* Added `Offset` type parameter to `AttributeValue`, `LineProgram`, + `IncompleteLineProgram`, `CompleteLineProgram`, `LineRows`, `LineInstruction`, + and `FileEntry`. + [#324](https://github.com/gimli-rs/gimli/pull/324) + +* Changed `FileEntry::path_name`, `FileEntry::directory`, and + `LineProgramHeader::directory` to return an `AttributeValue` instead + of a `Reader`. + [#366](https://github.com/gimli-rs/gimli/pull/366) + +* Renamed `FileEntry::last_modification` to `FileEntry::timestamp` + and renamed `FileEntry::length` to `FileEntry::size`. + [#366](https://github.com/gimli-rs/gimli/pull/366) + +* Added an `Encoding` type. Changed many functions that previously accepted + `Format`, version or address size parameters to accept an `Encoding` + parameter instead. + Notable changes are `LocationLists::locations`, `RangeLists::ranges`, + and `Expression::evaluation`. + [#364](https://github.com/gimli-rs/gimli/pull/364) + +* Changed return type of `LocationLists::new` and `RangeLists::new`. + [#370](https://github.com/gimli-rs/gimli/pull/370) + +* Added parameters to `LocationsLists::locations` and `RangeLists::ranges` + to support `.debug_addr`. + [#358](https://github.com/gimli-rs/gimli/pull/358) + +* Added more `AttributeValue` variants: `DebugAddrBase`, `DebugAddrIndex`, + `DebugLocListsBase`, `DebugLocListsIndex`, `DebugRngListsBase`, `DebugRngListsIndex`, + `DebugStrOffsetsBase`, `DebugStrOffsetsIndex`, `DebugLineStrRef`. + [#358](https://github.com/gimli-rs/gimli/pull/358) + +* Changed `AttributeValue::Data*` attributes to native endian integers instead + of byte arrays. + [#365](https://github.com/gimli-rs/gimli/pull/365) + +* Replaced `EvaluationResult::TextBase` with + `EvaluationResult::RequiresRelocatedAddress`. The handling of `TextBase` + was incorrect. + [#335](https://github.com/gimli-rs/gimli/pull/335) + +* Added `EvaluationResult::IndexedAddress` for operations that require an + address from `.debug_addr`. + [#358](https://github.com/gimli-rs/gimli/pull/358) + +* Added `Reader::read_slice`. Added a default implementation of + `Reader::read_u8_array` which uses this. + [#358](https://github.com/gimli-rs/gimli/pull/358) + +### Added + +* Added initial support for writing DWARF. This is targeted at supporting + line number information only. + [#340](https://github.com/gimli-rs/gimli/pull/340) + [#344](https://github.com/gimli-rs/gimli/pull/344) + [#346](https://github.com/gimli-rs/gimli/pull/346) + [#361](https://github.com/gimli-rs/gimli/pull/361) + [#362](https://github.com/gimli-rs/gimli/pull/362) + [#365](https://github.com/gimli-rs/gimli/pull/365) + [#368](https://github.com/gimli-rs/gimli/pull/368) + [#382](https://github.com/gimli-rs/gimli/pull/382) + +* Added `read` and `write` Cargo features. Both are enabled by default. + [#343](https://github.com/gimli-rs/gimli/pull/343) + +* Added support for reading DWARF 5 `.debug_line` and `.debug_line_str` sections. + [#366](https://github.com/gimli-rs/gimli/pull/366) + +* Added support for reading DWARF 5 `.debug_str_offsets` sections, including + parsing `DW_FORM_strx*` attributes. + [#358](https://github.com/gimli-rs/gimli/pull/358) + +* Added support for reading DWARF 5 `.debug_addr` sections, including parsing + `DW_FORM_addrx*` attributes and evaluating `DW_OP_addrx` and `DW_OP_constx` + operations. + [#358](https://github.com/gimli-rs/gimli/pull/358) + +* Added support for reading DWARF 5 indexed addresses and offsets in + `.debug_loclists` and `.debug_rnglists`, including parsing `DW_FORM_rnglistx` + and `DW_FORM_loclistx` attributes. + [#358](https://github.com/gimli-rs/gimli/pull/358) + +* Added high level `Dwarf` and `Unit` types. Existing code does not need to + switch to using these types, but doing so will make DWARF 5 support simpler. + [#352](https://github.com/gimli-rs/gimli/pull/352) + [#380](https://github.com/gimli-rs/gimli/pull/380) + [#381](https://github.com/gimli-rs/gimli/pull/381) + +* Added `EhFrame::set_address_size` and `DebugFrame::set_address_size` methods + to allow parsing non-native CFI sections. The default address size is still + the native size. + [#325](https://github.com/gimli-rs/gimli/pull/325) + +* Added architecture specific definitions for `Register` values and names. + Changed dwarfdump to print them. + [#328](https://github.com/gimli-rs/gimli/pull/328) + +* Added support for reading relocatable DWARF sections. + [#337](https://github.com/gimli-rs/gimli/pull/337) + +* Added parsing of `DW_FORM_data16`. + [#366](https://github.com/gimli-rs/gimli/pull/366) + +### Fixed + +* Fixed parsing DWARF 5 ranges with `start == end == 0`. + [#323](https://github.com/gimli-rs/gimli/pull/323) + +* Changed `LineRows` to be covariant in its `Reader` type parameter. + [#324](https://github.com/gimli-rs/gimli/pull/324) + +* Fixed handling of empty units in dwarfdump. + [#330](https://github.com/gimli-rs/gimli/pull/330) + +* Fixed `UnitHeader::length_including_self` for `Dwarf64`. + [#342](https://github.com/gimli-rs/gimli/pull/342) + +* Fixed parsing of `DW_CFA_set_loc`. + [#355](https://github.com/gimli-rs/gimli/pull/355) + +* Fixed handling of multiple headers in `.debug_loclists` and `.debug_rnglists`. + [#370](https://github.com/gimli-rs/gimli/pull/370) + +-------------------------------------------------------------------------------- + +## 0.16.1 + +Released 2018/08/28. + +### Added + +* Added `EhFrameHdr::lookup_and_parse`. [#316][] +* Added support for `DW_CFA_GNU_args_size`. [#319][] + +### Fixed + +* Implement `Send`/`Sync` for `SubRange`. [#305][] +* Fixed `alloc` support on nightly. [#306][] [#310][] + +[#305]: https://github.com/gimli-rs/gimli/pull/305 +[#306]: https://github.com/gimli-rs/gimli/pull/306 +[#310]: https://github.com/gimli-rs/gimli/pull/310 +[#316]: https://github.com/gimli-rs/gimli/pull/316 +[#319]: https://github.com/gimli-rs/gimli/pull/319 + +-------------------------------------------------------------------------------- + +## 0.16.0 + +Released 2018/06/01. + +### Added + +* Added support for building in `#![no_std]` environments, when the `alloc` + crate is available. Disable the "std" feature and enable the "alloc" + feature. [#138][] [#271][] + +* Added support for DWARF 5 `.debug_rnglists` and `.debug_loclists` + sections. [#272][] + +* Added support for DWARF 5 `DW_FORM_ref_sup` and `DW_FORM_strp_sup` attribute + forms. [#288][] + +* Added support for DWARF 5 operations on typed values. [#293][] + +* A `dwarf-validate` example program that checks the integrity of the given + DWARF and its references between sections. [#290][] + +* Added the `EndianReader` type, an easy way to define a custom `Reader` + implementation with a reference to a generic buffer of bytes and an associated + endianity. [#298][] [#302][] + +### Changed + +* Various speed improvements for evaluating `.debug_line` line number + programs. [#276][] + +* The example `dwarfdump` clone is a [whole lot faster + now][dwarfdump-faster]. [#282][] [#284][] [#285][] + +### Deprecated + +* `EndianBuf` has been renamed to `EndianSlice`, use that name instead. [#295][] + +### Fixed + +* Evaluating the `DW_CFA_restore_state` opcode properly maintains the current + location. Previously it would incorrectly restore the old location when + popping from evaluation stack. [#274][] + +[#271]: https://github.com/gimli-rs/gimli/issues/271 +[#138]: https://github.com/gimli-rs/gimli/issues/138 +[#274]: https://github.com/gimli-rs/gimli/issues/274 +[#272]: https://github.com/gimli-rs/gimli/issues/272 +[#276]: https://github.com/gimli-rs/gimli/issues/276 +[#282]: https://github.com/gimli-rs/gimli/issues/282 +[#285]: https://github.com/gimli-rs/gimli/issues/285 +[#284]: https://github.com/gimli-rs/gimli/issues/284 +[#288]: https://github.com/gimli-rs/gimli/issues/288 +[#290]: https://github.com/gimli-rs/gimli/issues/290 +[#293]: https://github.com/gimli-rs/gimli/issues/293 +[#295]: https://github.com/gimli-rs/gimli/issues/295 +[#298]: https://github.com/gimli-rs/gimli/issues/298 +[#302]: https://github.com/gimli-rs/gimli/issues/302 +[dwarfdump-faster]: https://robert.ocallahan.org/2018/03/speeding-up-dwarfdump-with-rust.html + +-------------------------------------------------------------------------------- + +## 0.15.0 + +Released 2017/12/01. + +### Added + +* Added the `EndianBuf::to_string()` method. [#233][] + +* Added more robust error handling in our example `dwarfdump` clone. [#234][] + +* Added `FrameDescriptionEntry::initial_address` method. [#237][] + +* Added `FrameDescriptionEntry::len` method. [#237][] + +* Added the `FrameDescriptionEntry::entry_len` method. [#241][] + +* Added the `CommonInformationEntry::offset` method. [#241][] + +* Added the `CommonInformationEntry::entry_len` method. [#241][] + +* Added the `CommonInformationEntry::version` method. [#241][] + +* Added the `CommonInformationEntry::augmentation` method. [#241][] + +* Added the `CommonInformationEntry::code_alignment_factor` method. [#241][] + +* Added the `CommonInformationEntry::data_alignment_factor` method. [#241][] + +* Added the `CommonInformationEntry::return_address_register` method. [#241][] + +* Added support for printing `.eh_frame` sections to our example `dwarfdump` + clone. [#241][] + +* Added support for parsing the `.eh_frame_hdr` section. On Linux, the + `.eh_frame_hdr` section provides a pointer to the already-mapped-in-memory + `.eh_frame` data, so that it doesn't need to be duplicated, and a binary + search table of its entries for faster unwinding information lookups. [#250][] + +* Added support for parsing DWARF 5 compilation unit headers. [#257][] + +* Added support for DWARF 5's `DW_FORM_implicit_const`. [#257][] + +### Changed + +* Unwinding methods now give ownership of the unwinding context back to the + caller if errors are encountered, not just on the success path. This allows + recovering from errors in signal-safe code, where constructing a new unwinding + context is not an option because it requires allocation. This is a **breaking + change** affecting `UnwindSection::unwind_info_for_address` and + `UninitializedUnwindContext::initialize`. [#241][] + +* `CfaRule` and `RegisterRule` now expose their `DW_OP` expressions as + `Expression`. This is a minor **breaking change**. [#241][] + +* The `Error::UnknownVersion` variant now contains the unknown version + number. This is a minor **breaking change**. [#245][] + +* `EvaluationResult::RequiresEntryValue` requires an `Expression` instead of a + `Reader` now. This is a minor **breaking change**. [#256][] + + +[#233]: https://github.com/gimli-rs/gimli/pull/233 +[#234]: https://github.com/gimli-rs/gimli/pull/234 +[#237]: https://github.com/gimli-rs/gimli/pull/237 +[#241]: https://github.com/gimli-rs/gimli/pull/241 +[#245]: https://github.com/gimli-rs/gimli/pull/245 +[#250]: https://github.com/gimli-rs/gimli/pull/250 +[#256]: https://github.com/gimli-rs/gimli/pull/256 +[#257]: https://github.com/gimli-rs/gimli/pull/257 + +-------------------------------------------------------------------------------- + +## 0.14.0 + +Released 2017/08/08. + +### Added + +* All `pub` types now `derive(Hash)`. [#192][] + +* All the constants from DWARF 5 are now defined. [#193][] + +* Added support for the `DW_OP_GNU_parameter_ref` GNU extension to parsing and + evaluation DWARF opcodes. [#208][] + +* Improved LEB128 parsing performance. [#216][] + +* Improved `.debug_{aranges,pubnames,pubtypes}` parsing performance. [#218][] + +* Added the ability to choose endianity dynamically at run time, rather than + only statically at compile time. [#219][] + +### Changed + +* The biggest change of this release is that `gimli` no longer requires the + object file's section be fully loaded into memory. This enables using `gimli` + on 32 bit platforms where there often isn't enough contiguous virtual memory + address space to load debugging information into. The default behavior is + still geared for 64 bit platforms, where address space overfloweth, and you + can still load the whole sections of the object file (or the entire object + file) into memory. This is abstracted over with the `gimli::Reader` + trait. This manifests as small (but many) breaking changes to much of the + public API. [#182][] + +### Fixed + +* The `DW_END_*` constants for defining endianity of a compilation unit were + previously incorrect. [#193][] + +* The `DW_OP_addr` opcode is relative to the base address of the `.text` section + of the binary, but we were incorrectly treating it as an absolute value. [#210][] + +[GitHub]: https://github.com/gimli-rs/gimli +[crates.io]: https://crates.io/crates/gimli +[contributing]: https://github.com/gimli-rs/gimli/blob/master/CONTRIBUTING.md +[easy]: https://github.com/gimli-rs/gimli/issues?q=is%3Aopen+is%3Aissue+label%3Aeasy +[#192]: https://github.com/gimli-rs/gimli/pull/192 +[#193]: https://github.com/gimli-rs/gimli/pull/193 +[#182]: https://github.com/gimli-rs/gimli/issues/182 +[#208]: https://github.com/gimli-rs/gimli/pull/208 +[#210]: https://github.com/gimli-rs/gimli/pull/210 +[#216]: https://github.com/gimli-rs/gimli/pull/216 +[#218]: https://github.com/gimli-rs/gimli/pull/218 +[#219]: https://github.com/gimli-rs/gimli/pull/219 diff --git a/src/rust/vendor/gimli/Cargo.toml b/src/rust/vendor/gimli/Cargo.toml new file mode 100644 index 000000000..4abd00994 --- /dev/null +++ b/src/rust/vendor/gimli/Cargo.toml @@ -0,0 +1,109 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2018" +rust-version = "1.60" +name = "gimli" +version = "0.28.1" +include = [ + "/CHANGELOG.md", + "/Cargo.toml", + "/LICENSE-APACHE", + "/LICENSE-MIT", + "/README.md", + "/src", +] +description = "A library for reading and writing the DWARF debugging format." +documentation = "https://docs.rs/gimli" +readme = "./README.md" +keywords = [ + "DWARF", + "debug", + "ELF", + "eh_frame", +] +categories = [ + "development-tools::debugging", + "development-tools::profiling", + "parser-implementations", +] +license = "MIT OR Apache-2.0" +repository = "https://github.com/gimli-rs/gimli" +resolver = "2" + +[profile.bench] +codegen-units = 1 +debug = 2 +split-debuginfo = "packed" + +[profile.test] +split-debuginfo = "packed" + +[dependencies.alloc] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-alloc" + +[dependencies.compiler_builtins] +version = "0.1.2" +optional = true + +[dependencies.core] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-core" + +[dependencies.fallible-iterator] +version = "0.3.0" +optional = true +default-features = false + +[dependencies.indexmap] +version = "2.0.0" +optional = true + +[dependencies.stable_deref_trait] +version = "1.1.0" +optional = true +default-features = false + +[dev-dependencies.test-assembler] +version = "0.1.3" + +[features] +default = [ + "read-all", + "write", +] +endian-reader = [ + "read", + "dep:stable_deref_trait", +] +fallible-iterator = ["dep:fallible-iterator"] +read = ["read-core"] +read-all = [ + "read", + "std", + "fallible-iterator", + "endian-reader", +] +read-core = [] +rustc-dep-of-std = [ + "dep:core", + "dep:alloc", + "dep:compiler_builtins", +] +std = [ + "fallible-iterator?/std", + "stable_deref_trait?/std", +] +write = ["dep:indexmap"] diff --git a/src/rust/vendor/gimli/LICENSE-APACHE b/src/rust/vendor/gimli/LICENSE-APACHE new file mode 100644 index 000000000..16fe87b06 --- /dev/null +++ b/src/rust/vendor/gimli/LICENSE-APACHE @@ -0,0 +1,201 @@ + 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. diff --git a/src/rust/vendor/gimli/LICENSE-MIT b/src/rust/vendor/gimli/LICENSE-MIT new file mode 100644 index 000000000..e69282e38 --- /dev/null +++ b/src/rust/vendor/gimli/LICENSE-MIT @@ -0,0 +1,25 @@ +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. diff --git a/src/rust/vendor/gimli/README.md b/src/rust/vendor/gimli/README.md new file mode 100644 index 000000000..5e9ba9d19 --- /dev/null +++ b/src/rust/vendor/gimli/README.md @@ -0,0 +1,81 @@ +# `gimli` + +[![](https://img.shields.io/crates/v/gimli.svg) ![](https://img.shields.io/crates/d/gimli.svg)](https://crates.io/crates/gimli) +[![](https://docs.rs/gimli/badge.svg)](https://docs.rs/gimli/) +[![Build Status](https://github.com/gimli-rs/gimli/workflows/Rust/badge.svg)](https://github.com/gimli-rs/gimli/actions) +[![Coverage Status](https://coveralls.io/repos/github/gimli-rs/gimli/badge.svg?branch=master)](https://coveralls.io/github/gimli-rs/gimli?branch=master) + +`gimli` is a library for reading and writing the +[DWARF debugging format](https://dwarfstd.org/). + +* **Zero copy:** everything is just a reference to the original input buffer. No + copies of the input data get made. + +* **Lazy:** you can iterate compilation units without parsing their + contents. Parse only as many debugging information entry (DIE) trees as you + iterate over. `gimli` also uses `DW_AT_sibling` references to avoid parsing a + DIE's children to find its next sibling, when possible. + +* **Cross-platform:** `gimli` makes no assumptions about what kind of object + file you're working with. The flipside to that is that it's up to you to + provide an ELF loader on Linux or Mach-O loader on macOS. + + * Unsure which object file parser to use? Try the cross-platform + [`object`](https://github.com/gimli-rs/object) crate. See the + [`gimli-examples`](./crates/examples/src/bin) crate for usage with `gimli`. + +## Install + +Add this to your `Cargo.toml`: + +```toml +[dependencies] +gimli = "0.28.1" +``` + +The minimum supported Rust version is: + +* 1.60.0 for the `read` feature and its dependencies. +* 1.65.0 for other features. + +## Documentation + +* [Documentation on docs.rs](https://docs.rs/gimli/) + +* Example programs: + + * [A simple `.debug_info` parser](./crates/examples/src/bin/simple.rs) + + * [A simple `.debug_line` parser](./crates/examples/src/bin/simple_line.rs) + + * [A `dwarfdump` clone](./crates/examples/src/bin/dwarfdump.rs) + + * [An `addr2line` clone](https://github.com/gimli-rs/addr2line) + + * [`ddbug`](https://github.com/gimli-rs/ddbug), a utility giving insight into + code generation by making debugging information readable. + + * [`dwprod`](https://github.com/fitzgen/dwprod), a tiny utility to list the + compilers used to create each compilation unit within a shared library or + executable (via `DW_AT_producer`). + + * [`dwarf-validate`](./crates/examples/src/bin/dwarf-validate.rs), a program to validate the + integrity of some DWARF and its references between sections and compilation + units. + +## License + +Licensed under either of + + * Apache License, Version 2.0 ([`LICENSE-APACHE`](./LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0) + * MIT license ([`LICENSE-MIT`](./LICENSE-MIT) or https://opensource.org/licenses/MIT) + +at your option. + +## Contribution + +See [CONTRIBUTING.md](./CONTRIBUTING.md) for hacking. + +Unless you explicitly state otherwise, any contribution intentionally submitted +for inclusion in the work by you, as defined in the Apache-2.0 license, shall be +dual licensed as above, without any additional terms or conditions. diff --git a/src/rust/vendor/gimli/src/arch.rs b/src/rust/vendor/gimli/src/arch.rs new file mode 100644 index 000000000..af5d4ba40 --- /dev/null +++ b/src/rust/vendor/gimli/src/arch.rs @@ -0,0 +1,839 @@ +use crate::common::Register; + +macro_rules! registers { + ($struct_name:ident, { $($name:ident = ($val:expr, $disp:expr)),+ $(,)? } + $(, aliases { $($alias_name:ident = ($alias_val:expr, $alias_disp:expr)),+ $(,)? })?) => { + #[allow(missing_docs)] + impl $struct_name { + $( + pub const $name: Register = Register($val); + )+ + $( + $(pub const $alias_name: Register = Register($alias_val);)+ + )* + } + + impl $struct_name { + /// The name of a register, or `None` if the register number is unknown. + /// + /// Only returns the primary name for registers that alias with others. + pub fn register_name(register: Register) -> Option<&'static str> { + match register { + $( + Self::$name => Some($disp), + )+ + _ => return None, + } + } + + /// Converts a register name into a register number. + pub fn name_to_register(value: &str) -> Option { + match value { + $( + $disp => Some(Self::$name), + )+ + $( + $($alias_disp => Some(Self::$alias_name),)+ + )* + _ => return None, + } + } + } + }; +} + +/// ARM architecture specific definitions. +/// +/// See [DWARF for the ARM Architecture]( +/// https://github.com/ARM-software/abi-aa/blob/main/aadwarf32/aadwarf32.rst). +#[derive(Debug, Clone, Copy)] +pub struct Arm; + +registers!(Arm, { + R0 = (0, "R0"), + R1 = (1, "R1"), + R2 = (2, "R2"), + R3 = (3, "R3"), + R4 = (4, "R4"), + R5 = (5, "R5"), + R6 = (6, "R6"), + R7 = (7, "R7"), + R8 = (8, "R8"), + R9 = (9, "R9"), + R10 = (10, "R10"), + R11 = (11, "R11"), + R12 = (12, "R12"), + R13 = (13, "R13"), + R14 = (14, "R14"), + R15 = (15, "R15"), + + WCGR0 = (104, "wCGR0"), + WCGR1 = (105, "wCGR1"), + WCGR2 = (106, "wCGR2"), + WCGR3 = (107, "wCGR3"), + WCGR4 = (108, "wCGR4"), + WCGR5 = (109, "wCGR5"), + WCGR6 = (110, "wCGR6"), + WCGR7 = (111, "wCGR7"), + + WR0 = (112, "wR0"), + WR1 = (113, "wR1"), + WR2 = (114, "wR2"), + WR3 = (115, "wR3"), + WR4 = (116, "wR4"), + WR5 = (117, "wR5"), + WR6 = (118, "wR6"), + WR7 = (119, "wR7"), + WR8 = (120, "wR8"), + WR9 = (121, "wR9"), + WR10 = (122, "wR10"), + WR11 = (123, "wR11"), + WR12 = (124, "wR12"), + WR13 = (125, "wR13"), + WR14 = (126, "wR14"), + WR15 = (127, "wR15"), + + SPSR = (128, "SPSR"), + SPSR_FIQ = (129, "SPSR_FIQ"), + SPSR_IRQ = (130, "SPSR_IRQ"), + SPSR_ABT = (131, "SPSR_ABT"), + SPSR_UND = (132, "SPSR_UND"), + SPSR_SVC = (133, "SPSR_SVC"), + + RA_AUTH_CODE = (143, "RA_AUTH_CODE"), + + R8_USR = (144, "R8_USR"), + R9_USR = (145, "R9_USR"), + R10_USR = (146, "R10_USR"), + R11_USR = (147, "R11_USR"), + R12_USR = (148, "R12_USR"), + R13_USR = (149, "R13_USR"), + R14_USR = (150, "R14_USR"), + + R8_FIQ = (151, "R8_FIQ"), + R9_FIQ = (152, "R9_FIQ"), + R10_FIQ = (153, "R10_FIQ"), + R11_FIQ = (154, "R11_FIQ"), + R12_FIQ = (155, "R12_FIQ"), + R13_FIQ = (156, "R13_FIQ"), + R14_FIQ = (157, "R14_FIQ"), + + R13_IRQ = (158, "R13_IRQ"), + R14_IRQ = (159, "R14_IRQ"), + + R13_ABT = (160, "R13_ABT"), + R14_ABT = (161, "R14_ABT"), + + R13_UND = (162, "R13_UND"), + R14_UND = (163, "R14_UND"), + + R13_SVC = (164, "R13_SVC"), + R14_SVC = (165, "R14_SVC"), + + WC0 = (192, "wC0"), + WC1 = (193, "wC1"), + WC2 = (194, "wC2"), + WC3 = (195, "wC3"), + WC4 = (196, "wC4"), + WC5 = (197, "wC5"), + WC6 = (198, "wC6"), + WC7 = (199, "wC7"), + + D0 = (256, "D0"), + D1 = (257, "D1"), + D2 = (258, "D2"), + D3 = (259, "D3"), + D4 = (260, "D4"), + D5 = (261, "D5"), + D6 = (262, "D6"), + D7 = (263, "D7"), + D8 = (264, "D8"), + D9 = (265, "D9"), + D10 = (266, "D10"), + D11 = (267, "D11"), + D12 = (268, "D12"), + D13 = (269, "D13"), + D14 = (270, "D14"), + D15 = (271, "D15"), + D16 = (272, "D16"), + D17 = (273, "D17"), + D18 = (274, "D18"), + D19 = (275, "D19"), + D20 = (276, "D20"), + D21 = (277, "D21"), + D22 = (278, "D22"), + D23 = (279, "D23"), + D24 = (280, "D24"), + D25 = (281, "D25"), + D26 = (282, "D26"), + D27 = (283, "D27"), + D28 = (284, "D28"), + D29 = (285, "D29"), + D30 = (286, "D30"), + D31 = (287, "D31"), + + TPIDRURO = (320, "TPIDRURO"), + TPIDRURW = (321, "TPIDRURW"), + TPIDPR = (322, "TPIDPR"), + HTPIDPR = (323, "HTPIDPR"), +}, +aliases { + SP = (13, "SP"), + LR = (14, "LR"), + PC = (15, "PC"), + + ACC0 = (104, "ACC0"), + ACC1 = (105, "ACC1"), + ACC2 = (106, "ACC2"), + ACC3 = (107, "ACC3"), + ACC4 = (108, "ACC4"), + ACC5 = (109, "ACC5"), + ACC6 = (110, "ACC6"), + ACC7 = (111, "ACC7"), + + S0 = (256, "S0"), + S1 = (256, "S1"), + S2 = (257, "S2"), + S3 = (257, "S3"), + S4 = (258, "S4"), + S5 = (258, "S5"), + S6 = (259, "S6"), + S7 = (259, "S7"), + S8 = (260, "S8"), + S9 = (260, "S9"), + S10 = (261, "S10"), + S11 = (261, "S11"), + S12 = (262, "S12"), + S13 = (262, "S13"), + S14 = (263, "S14"), + S15 = (263, "S15"), + S16 = (264, "S16"), + S17 = (264, "S17"), + S18 = (265, "S18"), + S19 = (265, "S19"), + S20 = (266, "S20"), + S21 = (266, "S21"), + S22 = (267, "S22"), + S23 = (267, "S23"), + S24 = (268, "S24"), + S25 = (268, "S25"), + S26 = (269, "S26"), + S27 = (269, "S27"), + S28 = (270, "S28"), + S29 = (270, "S29"), + S30 = (271, "S30"), + S31 = (271, "S31"), +}); + +/// ARM 64-bit (AArch64) architecture specific definitions. +/// +/// See [DWARF for the ARM 64-bit Architecture]( +/// https://github.com/ARM-software/abi-aa/blob/main/aadwarf64/aadwarf64.rst). +#[derive(Debug, Clone, Copy)] +pub struct AArch64; + +registers!(AArch64, { + X0 = (0, "X0"), + X1 = (1, "X1"), + X2 = (2, "X2"), + X3 = (3, "X3"), + X4 = (4, "X4"), + X5 = (5, "X5"), + X6 = (6, "X6"), + X7 = (7, "X7"), + X8 = (8, "X8"), + X9 = (9, "X9"), + X10 = (10, "X10"), + X11 = (11, "X11"), + X12 = (12, "X12"), + X13 = (13, "X13"), + X14 = (14, "X14"), + X15 = (15, "X15"), + X16 = (16, "X16"), + X17 = (17, "X17"), + X18 = (18, "X18"), + X19 = (19, "X19"), + X20 = (20, "X20"), + X21 = (21, "X21"), + X22 = (22, "X22"), + X23 = (23, "X23"), + X24 = (24, "X24"), + X25 = (25, "X25"), + X26 = (26, "X26"), + X27 = (27, "X27"), + X28 = (28, "X28"), + X29 = (29, "X29"), + X30 = (30, "X30"), + SP = (31, "SP"), + PC = (32, "PC"), + ELR_MODE = (33, "ELR_mode"), + RA_SIGN_STATE = (34, "RA_SIGN_STATE"), + TPIDRRO_EL0 = (35, "TPIDRRO_EL0"), + TPIDR_EL0 = (36, "TPIDR_EL0"), + TPIDR_EL1 = (37, "TPIDR_EL1"), + TPIDR_EL2 = (38, "TPIDR_EL2"), + TPIDR_EL3 = (39, "TPIDR_EL3"), + + VG = (46, "VG"), + FFR = (47, "FFR"), + + P0 = (48, "P0"), + P1 = (49, "P1"), + P2 = (50, "P2"), + P3 = (51, "P3"), + P4 = (52, "P4"), + P5 = (53, "P5"), + P6 = (54, "P6"), + P7 = (55, "P7"), + P8 = (56, "P8"), + P9 = (57, "P9"), + P10 = (58, "P10"), + P11 = (59, "P11"), + P12 = (60, "P12"), + P13 = (61, "P13"), + P14 = (62, "P14"), + P15 = (63, "P15"), + + V0 = (64, "V0"), + V1 = (65, "V1"), + V2 = (66, "V2"), + V3 = (67, "V3"), + V4 = (68, "V4"), + V5 = (69, "V5"), + V6 = (70, "V6"), + V7 = (71, "V7"), + V8 = (72, "V8"), + V9 = (73, "V9"), + V10 = (74, "V10"), + V11 = (75, "V11"), + V12 = (76, "V12"), + V13 = (77, "V13"), + V14 = (78, "V14"), + V15 = (79, "V15"), + V16 = (80, "V16"), + V17 = (81, "V17"), + V18 = (82, "V18"), + V19 = (83, "V19"), + V20 = (84, "V20"), + V21 = (85, "V21"), + V22 = (86, "V22"), + V23 = (87, "V23"), + V24 = (88, "V24"), + V25 = (89, "V25"), + V26 = (90, "V26"), + V27 = (91, "V27"), + V28 = (92, "V28"), + V29 = (93, "V29"), + V30 = (94, "V30"), + V31 = (95, "V31"), + + Z0 = (96, "Z0"), + Z1 = (97, "Z1"), + Z2 = (98, "Z2"), + Z3 = (99, "Z3"), + Z4 = (100, "Z4"), + Z5 = (101, "Z5"), + Z6 = (102, "Z6"), + Z7 = (103, "Z7"), + Z8 = (104, "Z8"), + Z9 = (105, "Z9"), + Z10 = (106, "Z10"), + Z11 = (107, "Z11"), + Z12 = (108, "Z12"), + Z13 = (109, "Z13"), + Z14 = (110, "Z14"), + Z15 = (111, "Z15"), + Z16 = (112, "Z16"), + Z17 = (113, "Z17"), + Z18 = (114, "Z18"), + Z19 = (115, "Z19"), + Z20 = (116, "Z20"), + Z21 = (117, "Z21"), + Z22 = (118, "Z22"), + Z23 = (119, "Z23"), + Z24 = (120, "Z24"), + Z25 = (121, "Z25"), + Z26 = (122, "Z26"), + Z27 = (123, "Z27"), + Z28 = (124, "Z28"), + Z29 = (125, "Z29"), + Z30 = (126, "Z30"), + Z31 = (127, "Z31"), +}); + +/// LoongArch architecture specific definitions. +/// +/// See [LoongArch ELF psABI specification](https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html). +#[derive(Debug, Clone, Copy)] +pub struct LoongArch; + +registers!(LoongArch, { + R0 = (0, "$r0"), + R1 = (1, "$r1"), + R2 = (2, "$r2"), + R3 = (3, "$r3"), + R4 = (4, "$r4"), + R5 = (5, "$r5"), + R6 = (6, "$r6"), + R7 = (7, "$r7"), + R8 = (8, "$r8"), + R9 = (9, "$r9"), + R10 = (10, "$r10"), + R11 = (11, "$r11"), + R12 = (12, "$r12"), + R13 = (13, "$r13"), + R14 = (14, "$r14"), + R15 = (15, "$r15"), + R16 = (16, "$r16"), + R17 = (17, "$r17"), + R18 = (18, "$r18"), + R19 = (19, "$r19"), + R20 = (20, "$r20"), + R21 = (21, "$r21"), + R22 = (22, "$r22"), + R23 = (23, "$r23"), + R24 = (24, "$r24"), + R25 = (25, "$r25"), + R26 = (26, "$r26"), + R27 = (27, "$r27"), + R28 = (28, "$r28"), + R29 = (29, "$r29"), + R30 = (30, "$r30"), + R31 = (31, "$r31"), + + F0 = (32, "$f0"), + F1 = (33, "$f1"), + F2 = (34, "$f2"), + F3 = (35, "$f3"), + F4 = (36, "$f4"), + F5 = (37, "$f5"), + F6 = (38, "$f6"), + F7 = (39, "$f7"), + F8 = (40, "$f8"), + F9 = (41, "$f9"), + F10 = (42, "$f10"), + F11 = (43, "$f11"), + F12 = (44, "$f12"), + F13 = (45, "$f13"), + F14 = (46, "$f14"), + F15 = (47, "$f15"), + F16 = (48, "$f16"), + F17 = (49, "$f17"), + F18 = (50, "$f18"), + F19 = (51, "$f19"), + F20 = (52, "$f20"), + F21 = (53, "$f21"), + F22 = (54, "$f22"), + F23 = (55, "$f23"), + F24 = (56, "$f24"), + F25 = (57, "$f25"), + F26 = (58, "$f26"), + F27 = (59, "$f27"), + F28 = (60, "$f28"), + F29 = (61, "$f29"), + F30 = (62, "$f30"), + F31 = (63, "$f31"), + FCC0 = (64, "$fcc0"), + FCC1 = (65, "$fcc1"), + FCC2 = (66, "$fcc2"), + FCC3 = (67, "$fcc3"), + FCC4 = (68, "$fcc4"), + FCC5 = (69, "$fcc5"), + FCC6 = (70, "$fcc6"), + FCC7 = (71, "$fcc7"), +}, +aliases { + ZERO = (0, "$zero"), + RA = (1, "$ra"), + TP = (2, "$tp"), + SP = (3, "$sp"), + A0 = (4, "$a0"), + A1 = (5, "$a1"), + A2 = (6, "$a2"), + A3 = (7, "$a3"), + A4 = (8, "$a4"), + A5 = (9, "$a5"), + A6 = (10, "$a6"), + A7 = (11, "$a7"), + T0 = (12, "$t0"), + T1 = (13, "$t1"), + T2 = (14, "$t2"), + T3 = (15, "$t3"), + T4 = (16, "$t4"), + T5 = (17, "$t5"), + T6 = (18, "$t6"), + T7 = (19, "$t7"), + T8 = (20, "$t8"), + FP = (22, "$fp"), + S0 = (23, "$s0"), + S1 = (24, "$s1"), + S2 = (25, "$s2"), + S3 = (26, "$s3"), + S4 = (27, "$s4"), + S5 = (28, "$s5"), + S6 = (29, "$s6"), + S7 = (30, "$s7"), + S8 = (31, "$s8"), + + FA0 = (32, "$fa0"), + FA1 = (33, "$fa1"), + FA2 = (34, "$fa2"), + FA3 = (35, "$fa3"), + FA4 = (36, "$fa4"), + FA5 = (37, "$fa5"), + FA6 = (38, "$fa6"), + FA7 = (39, "$fa7"), + FT0 = (40, "$ft0"), + FT1 = (41, "$ft1"), + FT2 = (42, "$ft2"), + FT3 = (43, "$ft3"), + FT4 = (44, "$ft4"), + FT5 = (45, "$ft5"), + FT6 = (46, "$ft6"), + FT7 = (47, "$ft7"), + FT8 = (48, "$ft8"), + FT9 = (49, "$ft9"), + FT10 = (50, "$ft10"), + FT11 = (51, "$ft11"), + FT12 = (52, "$ft12"), + FT13 = (53, "$ft13"), + FT14 = (54, "$ft14"), + FT15 = (55, "$ft15"), + FS0 = (56, "$fs0"), + FS1 = (57, "$fs1"), + FS2 = (58, "$fs2"), + FS3 = (59, "$fs3"), + FS4 = (60, "$fs4"), + FS5 = (61, "$fs5"), + FS6 = (62, "$fs6"), + FS7 = (63, "$fs7"), +}); + +/// RISC-V architecture specific definitions. +/// +/// See [RISC-V ELF psABI specification](https://github.com/riscv/riscv-elf-psabi-doc). +#[derive(Debug, Clone, Copy)] +pub struct RiscV; + +registers!(RiscV, { + X0 = (0, "x0"), + X1 = (1, "x1"), + X2 = (2, "x2"), + X3 = (3, "x3"), + X4 = (4, "x4"), + X5 = (5, "x5"), + X6 = (6, "x6"), + X7 = (7, "x7"), + X8 = (8, "x8"), + X9 = (9, "x9"), + X10 = (10, "x10"), + X11 = (11, "x11"), + X12 = (12, "x12"), + X13 = (13, "x13"), + X14 = (14, "x14"), + X15 = (15, "x15"), + X16 = (16, "x16"), + X17 = (17, "x17"), + X18 = (18, "x18"), + X19 = (19, "x19"), + X20 = (20, "x20"), + X21 = (21, "x21"), + X22 = (22, "x22"), + X23 = (23, "x23"), + X24 = (24, "x24"), + X25 = (25, "x25"), + X26 = (26, "x26"), + X27 = (27, "x27"), + X28 = (28, "x28"), + X29 = (29, "x29"), + X30 = (30, "x30"), + X31 = (31, "x31"), + + F0 = (32, "f0"), + F1 = (33, "f1"), + F2 = (34, "f2"), + F3 = (35, "f3"), + F4 = (36, "f4"), + F5 = (37, "f5"), + F6 = (38, "f6"), + F7 = (39, "f7"), + F8 = (40, "f8"), + F9 = (41, "f9"), + F10 = (42, "f10"), + F11 = (43, "f11"), + F12 = (44, "f12"), + F13 = (45, "f13"), + F14 = (46, "f14"), + F15 = (47, "f15"), + F16 = (48, "f16"), + F17 = (49, "f17"), + F18 = (50, "f18"), + F19 = (51, "f19"), + F20 = (52, "f20"), + F21 = (53, "f21"), + F22 = (54, "f22"), + F23 = (55, "f23"), + F24 = (56, "f24"), + F25 = (57, "f25"), + F26 = (58, "f26"), + F27 = (59, "f27"), + F28 = (60, "f28"), + F29 = (61, "f29"), + F30 = (62, "f30"), + F31 = (63, "f31"), +}, +aliases { + ZERO = (0, "zero"), + RA = (1, "ra"), + SP = (2, "sp"), + GP = (3, "gp"), + TP = (4, "tp"), + T0 = (5, "t0"), + T1 = (6, "t1"), + T2 = (7, "t2"), + S0 = (8, "s0"), + S1 = (9, "s1"), + A0 = (10, "a0"), + A1 = (11, "a1"), + A2 = (12, "a2"), + A3 = (13, "a3"), + A4 = (14, "a4"), + A5 = (15, "a5"), + A6 = (16, "a6"), + A7 = (17, "a7"), + S2 = (18, "s2"), + S3 = (19, "s3"), + S4 = (20, "s4"), + S5 = (21, "s5"), + S6 = (22, "s6"), + S7 = (23, "s7"), + S8 = (24, "s8"), + S9 = (25, "s9"), + S10 = (26, "s10"), + S11 = (27, "s11"), + T3 = (28, "t3"), + T4 = (29, "t4"), + T5 = (30, "t5"), + T6 = (31, "t6"), + + FT0 = (32, "ft0"), + FT1 = (33, "ft1"), + FT2 = (34, "ft2"), + FT3 = (35, "ft3"), + FT4 = (36, "ft4"), + FT5 = (37, "ft5"), + FT6 = (38, "ft6"), + FT7 = (39, "ft7"), + FS0 = (40, "fs0"), + FS1 = (41, "fs1"), + FA0 = (42, "fa0"), + FA1 = (43, "fa1"), + FA2 = (44, "fa2"), + FA3 = (45, "fa3"), + FA4 = (46, "fa4"), + FA5 = (47, "fa5"), + FA6 = (48, "fa6"), + FA7 = (49, "fa7"), + FS2 = (50, "fs2"), + FS3 = (51, "fs3"), + FS4 = (52, "fs4"), + FS5 = (53, "fs5"), + FS6 = (54, "fs6"), + FS7 = (55, "fs7"), + FS8 = (56, "fs8"), + FS9 = (57, "fs9"), + FS10 = (58, "fs10"), + FS11 = (59, "fs11"), + FT8 = (60, "ft8"), + FT9 = (61, "ft9"), + FT10 = (62, "ft10"), + FT11 = (63, "ft11"), +}); + +/// Intel i386 architecture specific definitions. +/// +/// See Intel386 psABi version 1.1 at the [X86 psABI wiki](https://github.com/hjl-tools/x86-psABI/wiki/X86-psABI). +#[derive(Debug, Clone, Copy)] +pub struct X86; + +registers!(X86, { + EAX = (0, "eax"), + ECX = (1, "ecx"), + EDX = (2, "edx"), + EBX = (3, "ebx"), + ESP = (4, "esp"), + EBP = (5, "ebp"), + ESI = (6, "esi"), + EDI = (7, "edi"), + + // Return Address register. This is stored in `0(%esp, "")` and is not a physical register. + RA = (8, "RA"), + + ST0 = (11, "st0"), + ST1 = (12, "st1"), + ST2 = (13, "st2"), + ST3 = (14, "st3"), + ST4 = (15, "st4"), + ST5 = (16, "st5"), + ST6 = (17, "st6"), + ST7 = (18, "st7"), + + XMM0 = (21, "xmm0"), + XMM1 = (22, "xmm1"), + XMM2 = (23, "xmm2"), + XMM3 = (24, "xmm3"), + XMM4 = (25, "xmm4"), + XMM5 = (26, "xmm5"), + XMM6 = (27, "xmm6"), + XMM7 = (28, "xmm7"), + + MM0 = (29, "mm0"), + MM1 = (30, "mm1"), + MM2 = (31, "mm2"), + MM3 = (32, "mm3"), + MM4 = (33, "mm4"), + MM5 = (34, "mm5"), + MM6 = (35, "mm6"), + MM7 = (36, "mm7"), + + MXCSR = (39, "mxcsr"), + + ES = (40, "es"), + CS = (41, "cs"), + SS = (42, "ss"), + DS = (43, "ds"), + FS = (44, "fs"), + GS = (45, "gs"), + + TR = (48, "tr"), + LDTR = (49, "ldtr"), + + FS_BASE = (93, "fs.base"), + GS_BASE = (94, "gs.base"), +}); + +/// AMD64 architecture specific definitions. +/// +/// See x86-64 psABI version 1.0 at the [X86 psABI wiki](https://github.com/hjl-tools/x86-psABI/wiki/X86-psABI). +#[derive(Debug, Clone, Copy)] +pub struct X86_64; + +registers!(X86_64, { + RAX = (0, "rax"), + RDX = (1, "rdx"), + RCX = (2, "rcx"), + RBX = (3, "rbx"), + RSI = (4, "rsi"), + RDI = (5, "rdi"), + RBP = (6, "rbp"), + RSP = (7, "rsp"), + + R8 = (8, "r8"), + R9 = (9, "r9"), + R10 = (10, "r10"), + R11 = (11, "r11"), + R12 = (12, "r12"), + R13 = (13, "r13"), + R14 = (14, "r14"), + R15 = (15, "r15"), + + // Return Address register. This is stored in `0(%rsp, "")` and is not a physical register. + RA = (16, "RA"), + + XMM0 = (17, "xmm0"), + XMM1 = (18, "xmm1"), + XMM2 = (19, "xmm2"), + XMM3 = (20, "xmm3"), + XMM4 = (21, "xmm4"), + XMM5 = (22, "xmm5"), + XMM6 = (23, "xmm6"), + XMM7 = (24, "xmm7"), + + XMM8 = (25, "xmm8"), + XMM9 = (26, "xmm9"), + XMM10 = (27, "xmm10"), + XMM11 = (28, "xmm11"), + XMM12 = (29, "xmm12"), + XMM13 = (30, "xmm13"), + XMM14 = (31, "xmm14"), + XMM15 = (32, "xmm15"), + + ST0 = (33, "st0"), + ST1 = (34, "st1"), + ST2 = (35, "st2"), + ST3 = (36, "st3"), + ST4 = (37, "st4"), + ST5 = (38, "st5"), + ST6 = (39, "st6"), + ST7 = (40, "st7"), + + MM0 = (41, "mm0"), + MM1 = (42, "mm1"), + MM2 = (43, "mm2"), + MM3 = (44, "mm3"), + MM4 = (45, "mm4"), + MM5 = (46, "mm5"), + MM6 = (47, "mm6"), + MM7 = (48, "mm7"), + + RFLAGS = (49, "rFLAGS"), + ES = (50, "es"), + CS = (51, "cs"), + SS = (52, "ss"), + DS = (53, "ds"), + FS = (54, "fs"), + GS = (55, "gs"), + + FS_BASE = (58, "fs.base"), + GS_BASE = (59, "gs.base"), + + TR = (62, "tr"), + LDTR = (63, "ldtr"), + MXCSR = (64, "mxcsr"), + FCW = (65, "fcw"), + FSW = (66, "fsw"), + + XMM16 = (67, "xmm16"), + XMM17 = (68, "xmm17"), + XMM18 = (69, "xmm18"), + XMM19 = (70, "xmm19"), + XMM20 = (71, "xmm20"), + XMM21 = (72, "xmm21"), + XMM22 = (73, "xmm22"), + XMM23 = (74, "xmm23"), + XMM24 = (75, "xmm24"), + XMM25 = (76, "xmm25"), + XMM26 = (77, "xmm26"), + XMM27 = (78, "xmm27"), + XMM28 = (79, "xmm28"), + XMM29 = (80, "xmm29"), + XMM30 = (81, "xmm30"), + XMM31 = (82, "xmm31"), + + K0 = (118, "k0"), + K1 = (119, "k1"), + K2 = (120, "k2"), + K3 = (121, "k3"), + K4 = (122, "k4"), + K5 = (123, "k5"), + K6 = (124, "k6"), + K7 = (125, "k7"), +}); + +#[cfg(test)] +mod tests { + + #[test] + #[cfg(feature = "std")] + fn test_aarch64_registers() { + use super::*; + use std::collections::HashSet; + + let mut names = HashSet::new(); + for n in (0..=39).chain(46..=127) { + let name = AArch64::register_name(Register(n)) + .unwrap_or_else(|| panic!("Register {} should have a name.", n)); + assert!(names.insert(name)); + } + } +} diff --git a/src/rust/vendor/gimli/src/common.rs b/src/rust/vendor/gimli/src/common.rs new file mode 100644 index 000000000..fc6693d1c --- /dev/null +++ b/src/rust/vendor/gimli/src/common.rs @@ -0,0 +1,391 @@ +/// Whether the format of a compilation unit is 32- or 64-bit. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum Format { + /// 64-bit DWARF + Dwarf64 = 8, + /// 32-bit DWARF + Dwarf32 = 4, +} + +impl Format { + /// Return the serialized size of an initial length field for the format. + #[inline] + pub fn initial_length_size(self) -> u8 { + match self { + Format::Dwarf32 => 4, + Format::Dwarf64 => 12, + } + } + + /// Return the natural word size for the format + #[inline] + pub fn word_size(self) -> u8 { + match self { + Format::Dwarf32 => 4, + Format::Dwarf64 => 8, + } + } +} + +/// Which vendor extensions to support. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[non_exhaustive] +pub enum Vendor { + /// A default set of extensions, including some common GNU extensions. + Default, + /// AAarch64 extensions. + AArch64, +} + +/// Encoding parameters that are commonly used for multiple DWARF sections. +/// +/// This is intended to be small enough to pass by value. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +// `address_size` and `format` are used more often than `version`, so keep +// them first. +#[repr(C)] +pub struct Encoding { + /// The size of an address. + pub address_size: u8, + + // The size of a segment selector. + // TODO: pub segment_size: u8, + /// Whether the DWARF format is 32- or 64-bit. + pub format: Format, + + /// The DWARF version of the header. + pub version: u16, +} + +/// Encoding parameters for a line number program. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct LineEncoding { + /// The size in bytes of the smallest target machine instruction. + pub minimum_instruction_length: u8, + + /// The maximum number of individual operations that may be encoded in an + /// instruction. + pub maximum_operations_per_instruction: u8, + + /// The initial value of the `is_stmt` register. + pub default_is_stmt: bool, + + /// The minimum value which a special opcode can add to the line register. + pub line_base: i8, + + /// The range of values which a special opcode can add to the line register. + pub line_range: u8, +} + +impl Default for LineEncoding { + fn default() -> Self { + // Values from LLVM. + LineEncoding { + minimum_instruction_length: 1, + maximum_operations_per_instruction: 1, + default_is_stmt: true, + line_base: -5, + line_range: 14, + } + } +} + +/// A DWARF register number. +/// +/// The meaning of this value is ABI dependent. This is generally encoded as +/// a ULEB128, but supported architectures need 16 bits at most. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct Register(pub u16); + +/// An offset into the `.debug_abbrev` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct DebugAbbrevOffset(pub T); + +/// An offset to a set of entries in the `.debug_addr` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct DebugAddrBase(pub T); + +/// An index into a set of addresses in the `.debug_addr` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct DebugAddrIndex(pub T); + +/// An offset into the `.debug_aranges` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct DebugArangesOffset(pub T); + +/// An offset into the `.debug_info` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd, Hash)] +pub struct DebugInfoOffset(pub T); + +/// An offset into the `.debug_line` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct DebugLineOffset(pub T); + +/// An offset into the `.debug_line_str` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct DebugLineStrOffset(pub T); + +/// An offset into either the `.debug_loc` section or the `.debug_loclists` section, +/// depending on the version of the unit the offset was contained in. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct LocationListsOffset(pub T); + +/// An offset to a set of location list offsets in the `.debug_loclists` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct DebugLocListsBase(pub T); + +/// An index into a set of location list offsets in the `.debug_loclists` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct DebugLocListsIndex(pub T); + +/// An offset into the `.debug_macinfo` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct DebugMacinfoOffset(pub T); + +/// An offset into the `.debug_macro` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct DebugMacroOffset(pub T); + +/// An offset into either the `.debug_ranges` section or the `.debug_rnglists` section, +/// depending on the version of the unit the offset was contained in. +/// +/// If this is from a DWARF 4 DWO file, then it must additionally be offset by the +/// value of `DW_AT_GNU_ranges_base`. You can use `Dwarf::ranges_offset_from_raw` to do this. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct RawRangeListsOffset(pub T); + +/// An offset into either the `.debug_ranges` section or the `.debug_rnglists` section, +/// depending on the version of the unit the offset was contained in. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct RangeListsOffset(pub T); + +/// An offset to a set of range list offsets in the `.debug_rnglists` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct DebugRngListsBase(pub T); + +/// An index into a set of range list offsets in the `.debug_rnglists` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct DebugRngListsIndex(pub T); + +/// An offset into the `.debug_str` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct DebugStrOffset(pub T); + +/// An offset to a set of entries in the `.debug_str_offsets` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct DebugStrOffsetsBase(pub T); + +/// An index into a set of entries in the `.debug_str_offsets` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct DebugStrOffsetsIndex(pub T); + +/// An offset into the `.debug_types` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd, Hash)] +pub struct DebugTypesOffset(pub T); + +/// A type signature as used in the `.debug_types` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct DebugTypeSignature(pub u64); + +/// An offset into the `.debug_frame` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct DebugFrameOffset(pub T); + +impl From for DebugFrameOffset { + #[inline] + fn from(o: T) -> Self { + DebugFrameOffset(o) + } +} + +/// An offset into the `.eh_frame` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct EhFrameOffset(pub T); + +impl From for EhFrameOffset { + #[inline] + fn from(o: T) -> Self { + EhFrameOffset(o) + } +} + +/// An offset into the `.debug_info` or `.debug_types` sections. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd, Hash)] +pub enum UnitSectionOffset { + /// An offset into the `.debug_info` section. + DebugInfoOffset(DebugInfoOffset), + /// An offset into the `.debug_types` section. + DebugTypesOffset(DebugTypesOffset), +} + +impl From> for UnitSectionOffset { + fn from(offset: DebugInfoOffset) -> Self { + UnitSectionOffset::DebugInfoOffset(offset) + } +} + +impl From> for UnitSectionOffset { + fn from(offset: DebugTypesOffset) -> Self { + UnitSectionOffset::DebugTypesOffset(offset) + } +} + +impl UnitSectionOffset +where + T: Clone, +{ + /// Returns the `DebugInfoOffset` inside, or `None` otherwise. + pub fn as_debug_info_offset(&self) -> Option> { + match self { + UnitSectionOffset::DebugInfoOffset(offset) => Some(offset.clone()), + UnitSectionOffset::DebugTypesOffset(_) => None, + } + } + /// Returns the `DebugTypesOffset` inside, or `None` otherwise. + pub fn as_debug_types_offset(&self) -> Option> { + match self { + UnitSectionOffset::DebugInfoOffset(_) => None, + UnitSectionOffset::DebugTypesOffset(offset) => Some(offset.clone()), + } + } +} + +/// An identifier for a DWARF section. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd, Hash)] +pub enum SectionId { + /// The `.debug_abbrev` section. + DebugAbbrev, + /// The `.debug_addr` section. + DebugAddr, + /// The `.debug_aranges` section. + DebugAranges, + /// The `.debug_cu_index` section. + DebugCuIndex, + /// The `.debug_frame` section. + DebugFrame, + /// The `.eh_frame` section. + EhFrame, + /// The `.eh_frame_hdr` section. + EhFrameHdr, + /// The `.debug_info` section. + DebugInfo, + /// The `.debug_line` section. + DebugLine, + /// The `.debug_line_str` section. + DebugLineStr, + /// The `.debug_loc` section. + DebugLoc, + /// The `.debug_loclists` section. + DebugLocLists, + /// The `.debug_macinfo` section. + DebugMacinfo, + /// The `.debug_macro` section. + DebugMacro, + /// The `.debug_pubnames` section. + DebugPubNames, + /// The `.debug_pubtypes` section. + DebugPubTypes, + /// The `.debug_ranges` section. + DebugRanges, + /// The `.debug_rnglists` section. + DebugRngLists, + /// The `.debug_str` section. + DebugStr, + /// The `.debug_str_offsets` section. + DebugStrOffsets, + /// The `.debug_tu_index` section. + DebugTuIndex, + /// The `.debug_types` section. + DebugTypes, +} + +impl SectionId { + /// Returns the ELF section name for this kind. + pub fn name(self) -> &'static str { + match self { + SectionId::DebugAbbrev => ".debug_abbrev", + SectionId::DebugAddr => ".debug_addr", + SectionId::DebugAranges => ".debug_aranges", + SectionId::DebugCuIndex => ".debug_cu_index", + SectionId::DebugFrame => ".debug_frame", + SectionId::EhFrame => ".eh_frame", + SectionId::EhFrameHdr => ".eh_frame_hdr", + SectionId::DebugInfo => ".debug_info", + SectionId::DebugLine => ".debug_line", + SectionId::DebugLineStr => ".debug_line_str", + SectionId::DebugLoc => ".debug_loc", + SectionId::DebugLocLists => ".debug_loclists", + SectionId::DebugMacinfo => ".debug_macinfo", + SectionId::DebugMacro => ".debug_macro", + SectionId::DebugPubNames => ".debug_pubnames", + SectionId::DebugPubTypes => ".debug_pubtypes", + SectionId::DebugRanges => ".debug_ranges", + SectionId::DebugRngLists => ".debug_rnglists", + SectionId::DebugStr => ".debug_str", + SectionId::DebugStrOffsets => ".debug_str_offsets", + SectionId::DebugTuIndex => ".debug_tu_index", + SectionId::DebugTypes => ".debug_types", + } + } + + /// Returns the ELF section name for this kind, when found in a .dwo or .dwp file. + pub fn dwo_name(self) -> Option<&'static str> { + Some(match self { + SectionId::DebugAbbrev => ".debug_abbrev.dwo", + SectionId::DebugCuIndex => ".debug_cu_index", + SectionId::DebugInfo => ".debug_info.dwo", + SectionId::DebugLine => ".debug_line.dwo", + // The debug_loc section can be present in the dwo when using the + // GNU split-dwarf extension to DWARF4. + SectionId::DebugLoc => ".debug_loc.dwo", + SectionId::DebugLocLists => ".debug_loclists.dwo", + SectionId::DebugMacro => ".debug_macro.dwo", + SectionId::DebugRngLists => ".debug_rnglists.dwo", + SectionId::DebugStr => ".debug_str.dwo", + SectionId::DebugStrOffsets => ".debug_str_offsets.dwo", + SectionId::DebugTuIndex => ".debug_tu_index", + SectionId::DebugTypes => ".debug_types.dwo", + _ => return None, + }) + } + + /// Returns the XCOFF section name for this kind. + pub fn xcoff_name(self) -> Option<&'static str> { + Some(match self { + SectionId::DebugAbbrev => ".dwabrev", + SectionId::DebugAranges => ".dwarnge", + SectionId::DebugFrame => ".dwframe", + SectionId::DebugInfo => ".dwinfo", + SectionId::DebugLine => ".dwline", + SectionId::DebugLoc => ".dwloc", + SectionId::DebugMacinfo => ".dwmac", + SectionId::DebugPubNames => ".dwpbnms", + SectionId::DebugPubTypes => ".dwpbtyp", + SectionId::DebugRanges => ".dwrnges", + SectionId::DebugStr => ".dwstr", + _ => return None, + }) + } +} + +/// An optionally-provided implementation-defined compilation unit ID to enable +/// split DWARF and linking a split compilation unit back together. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct DwoId(pub u64); + +/// The "type" of file with DWARF debugging information. This determines, among other things, +/// which files DWARF sections should be loaded from. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum DwarfFileType { + /// A normal executable or object file. + Main, + /// A .dwo split DWARF file. + Dwo, + // TODO: Supplementary files, .dwps? +} + +impl Default for DwarfFileType { + fn default() -> Self { + DwarfFileType::Main + } +} diff --git a/src/rust/vendor/gimli/src/constants.rs b/src/rust/vendor/gimli/src/constants.rs new file mode 100644 index 000000000..e58050ba0 --- /dev/null +++ b/src/rust/vendor/gimli/src/constants.rs @@ -0,0 +1,1435 @@ +// This file originally from https://github.com/philipc/rust-dwarf/ and +// distributed under either MIT or Apache 2.0 licenses. +// +// Copyright 2016 The rust-dwarf Developers +// +// 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. + +//! Constant definitions. +//! +//! The DWARF spec's `DW_AT_*` type is represented as `struct DwAt(u16)`, +//! `DW_FORM_*` as `DwForm(u16)`, etc. +//! +//! There are also exported const definitions for each constant. + +#![allow(non_upper_case_globals)] +#![allow(missing_docs)] + +use core::fmt; + +// The `dw!` macro turns this: +// +// dw!(DwFoo(u32) { +// DW_FOO_bar = 0, +// DW_FOO_baz = 1, +// DW_FOO_bang = 2, +// }); +// +// into this: +// +// #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)] +// pub struct DwFoo(pub u32); +// +// pub const DW_FOO_bar: DwFoo = DwFoo(0); +// pub const DW_FOO_baz: DwFoo = DwFoo(1); +// pub const DW_FOO_bang: DwFoo = DwFoo(2); +// +// impl DwFoo { +// pub fn static_string(&self) -> Option<&'static str> { +// ... +// } +// } +// +// impl fmt::Display for DwFoo { +// fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { +// ... +// } +// } +macro_rules! dw { + ($(#[$meta:meta])* $struct_name:ident($struct_type:ty) + { $($name:ident = $val:expr),+ $(,)? } + $(, aliases { $($alias_name:ident = $alias_val:expr),+ $(,)? })? + ) => { + $(#[$meta])* + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)] + pub struct $struct_name(pub $struct_type); + + $( + pub const $name: $struct_name = $struct_name($val); + )+ + $($( + pub const $alias_name: $struct_name = $struct_name($alias_val); + )+)* + + impl $struct_name { + pub fn static_string(&self) -> Option<&'static str> { + Some(match *self { + $( + $name => stringify!($name), + )+ + _ => return None, + }) + } + } + + impl fmt::Display for $struct_name { + fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { + if let Some(s) = self.static_string() { + f.pad(s) + } else { + #[cfg(feature = "read")] + { + f.pad(&format!("Unknown {}: {}", stringify!($struct_name), self.0)) + } + #[cfg(not(feature = "read"))] + { + write!(f, "Unknown {}: {}", stringify!($struct_name), self.0) + } + } + } + } + }; +} + +dw!( +/// The section type field in a `.dwp` unit index. +/// +/// This is used for version 5 and later. +/// +/// See Section 7.3.5. +DwSect(u32) { + DW_SECT_INFO = 1, + DW_SECT_ABBREV = 3, + DW_SECT_LINE = 4, + DW_SECT_LOCLISTS = 5, + DW_SECT_STR_OFFSETS = 6, + DW_SECT_MACRO = 7, + DW_SECT_RNGLISTS = 8, +}); + +dw!( +/// The section type field in a `.dwp` unit index with version 2. +DwSectV2(u32) { + DW_SECT_V2_INFO = 1, + DW_SECT_V2_TYPES = 2, + DW_SECT_V2_ABBREV = 3, + DW_SECT_V2_LINE = 4, + DW_SECT_V2_LOC = 5, + DW_SECT_V2_STR_OFFSETS = 6, + DW_SECT_V2_MACINFO = 7, + DW_SECT_V2_MACRO = 8, +}); + +dw!( +/// The unit type field in a unit header. +/// +/// See Section 7.5.1, Table 7.2. +DwUt(u8) { + DW_UT_compile = 0x01, + DW_UT_type = 0x02, + DW_UT_partial = 0x03, + DW_UT_skeleton = 0x04, + DW_UT_split_compile = 0x05, + DW_UT_split_type = 0x06, + DW_UT_lo_user = 0x80, + DW_UT_hi_user = 0xff, +}); + +dw!( +/// The opcode for a call frame instruction. +/// +/// Section 7.24: +/// > Call frame instructions are encoded in one or more bytes. The primary +/// > opcode is encoded in the high order two bits of the first byte (that is, +/// > opcode = byte >> 6). An operand or extended opcode may be encoded in the +/// > low order 6 bits. Additional operands are encoded in subsequent bytes. +DwCfa(u8) { + DW_CFA_advance_loc = 0x01 << 6, + DW_CFA_offset = 0x02 << 6, + DW_CFA_restore = 0x03 << 6, + DW_CFA_nop = 0, + DW_CFA_set_loc = 0x01, + DW_CFA_advance_loc1 = 0x02, + DW_CFA_advance_loc2 = 0x03, + DW_CFA_advance_loc4 = 0x04, + DW_CFA_offset_extended = 0x05, + DW_CFA_restore_extended = 0x06, + DW_CFA_undefined = 0x07, + DW_CFA_same_value = 0x08, + DW_CFA_register = 0x09, + DW_CFA_remember_state = 0x0a, + DW_CFA_restore_state = 0x0b, + DW_CFA_def_cfa = 0x0c, + DW_CFA_def_cfa_register = 0x0d, + DW_CFA_def_cfa_offset = 0x0e, + DW_CFA_def_cfa_expression = 0x0f, + DW_CFA_expression = 0x10, + DW_CFA_offset_extended_sf = 0x11, + DW_CFA_def_cfa_sf = 0x12, + DW_CFA_def_cfa_offset_sf = 0x13, + DW_CFA_val_offset = 0x14, + DW_CFA_val_offset_sf = 0x15, + DW_CFA_val_expression = 0x16, + + DW_CFA_lo_user = 0x1c, + DW_CFA_hi_user = 0x3f, + + DW_CFA_MIPS_advance_loc8 = 0x1d, + DW_CFA_GNU_window_save = 0x2d, + DW_CFA_GNU_args_size = 0x2e, + DW_CFA_GNU_negative_offset_extended = 0x2f, +}, +aliases { + DW_CFA_AARCH64_negate_ra_state = 0x2d, +}); + +dw!( +/// The child determination encodings for DIE attributes. +/// +/// See Section 7.5.3, Table 7.4. +DwChildren(u8) { + DW_CHILDREN_no = 0, + DW_CHILDREN_yes = 1, +}); + +dw!( +/// The tag encodings for DIE attributes. +/// +/// See Section 7.5.3, Table 7.3. +DwTag(u16) { + DW_TAG_null = 0x00, + + DW_TAG_array_type = 0x01, + DW_TAG_class_type = 0x02, + DW_TAG_entry_point = 0x03, + DW_TAG_enumeration_type = 0x04, + DW_TAG_formal_parameter = 0x05, + DW_TAG_imported_declaration = 0x08, + DW_TAG_label = 0x0a, + DW_TAG_lexical_block = 0x0b, + DW_TAG_member = 0x0d, + DW_TAG_pointer_type = 0x0f, + DW_TAG_reference_type = 0x10, + DW_TAG_compile_unit = 0x11, + DW_TAG_string_type = 0x12, + DW_TAG_structure_type = 0x13, + DW_TAG_subroutine_type = 0x15, + DW_TAG_typedef = 0x16, + DW_TAG_union_type = 0x17, + DW_TAG_unspecified_parameters = 0x18, + DW_TAG_variant = 0x19, + DW_TAG_common_block = 0x1a, + DW_TAG_common_inclusion = 0x1b, + DW_TAG_inheritance = 0x1c, + DW_TAG_inlined_subroutine = 0x1d, + DW_TAG_module = 0x1e, + DW_TAG_ptr_to_member_type = 0x1f, + DW_TAG_set_type = 0x20, + DW_TAG_subrange_type = 0x21, + DW_TAG_with_stmt = 0x22, + DW_TAG_access_declaration = 0x23, + DW_TAG_base_type = 0x24, + DW_TAG_catch_block = 0x25, + DW_TAG_const_type = 0x26, + DW_TAG_constant = 0x27, + DW_TAG_enumerator = 0x28, + DW_TAG_file_type = 0x29, + DW_TAG_friend = 0x2a, + DW_TAG_namelist = 0x2b, + DW_TAG_namelist_item = 0x2c, + DW_TAG_packed_type = 0x2d, + DW_TAG_subprogram = 0x2e, + DW_TAG_template_type_parameter = 0x2f, + DW_TAG_template_value_parameter = 0x30, + DW_TAG_thrown_type = 0x31, + DW_TAG_try_block = 0x32, + DW_TAG_variant_part = 0x33, + DW_TAG_variable = 0x34, + DW_TAG_volatile_type = 0x35, + +// DWARF 3. + DW_TAG_dwarf_procedure = 0x36, + DW_TAG_restrict_type = 0x37, + DW_TAG_interface_type = 0x38, + DW_TAG_namespace = 0x39, + DW_TAG_imported_module = 0x3a, + DW_TAG_unspecified_type = 0x3b, + DW_TAG_partial_unit = 0x3c, + DW_TAG_imported_unit = 0x3d, + DW_TAG_condition = 0x3f, + DW_TAG_shared_type = 0x40, + +// DWARF 4. + DW_TAG_type_unit = 0x41, + DW_TAG_rvalue_reference_type = 0x42, + DW_TAG_template_alias = 0x43, + +// DWARF 5. + DW_TAG_coarray_type = 0x44, + DW_TAG_generic_subrange = 0x45, + DW_TAG_dynamic_type = 0x46, + DW_TAG_atomic_type = 0x47, + DW_TAG_call_site = 0x48, + DW_TAG_call_site_parameter = 0x49, + DW_TAG_skeleton_unit = 0x4a, + DW_TAG_immutable_type = 0x4b, + + DW_TAG_lo_user = 0x4080, + DW_TAG_hi_user = 0xffff, + +// SGI/MIPS extensions. + DW_TAG_MIPS_loop = 0x4081, + +// HP extensions. + DW_TAG_HP_array_descriptor = 0x4090, + DW_TAG_HP_Bliss_field = 0x4091, + DW_TAG_HP_Bliss_field_set = 0x4092, + +// GNU extensions. + DW_TAG_format_label = 0x4101, + DW_TAG_function_template = 0x4102, + DW_TAG_class_template = 0x4103, + DW_TAG_GNU_BINCL = 0x4104, + DW_TAG_GNU_EINCL = 0x4105, + DW_TAG_GNU_template_template_param = 0x4106, + DW_TAG_GNU_template_parameter_pack = 0x4107, + DW_TAG_GNU_formal_parameter_pack = 0x4108, + DW_TAG_GNU_call_site = 0x4109, + DW_TAG_GNU_call_site_parameter = 0x410a, + + DW_TAG_APPLE_property = 0x4200, + +// SUN extensions. + DW_TAG_SUN_function_template = 0x4201, + DW_TAG_SUN_class_template = 0x4202, + DW_TAG_SUN_struct_template = 0x4203, + DW_TAG_SUN_union_template = 0x4204, + DW_TAG_SUN_indirect_inheritance = 0x4205, + DW_TAG_SUN_codeflags = 0x4206, + DW_TAG_SUN_memop_info = 0x4207, + DW_TAG_SUN_omp_child_func = 0x4208, + DW_TAG_SUN_rtti_descriptor = 0x4209, + DW_TAG_SUN_dtor_info = 0x420a, + DW_TAG_SUN_dtor = 0x420b, + DW_TAG_SUN_f90_interface = 0x420c, + DW_TAG_SUN_fortran_vax_structure = 0x420d, + +// ALTIUM extensions. + DW_TAG_ALTIUM_circ_type = 0x5101, + DW_TAG_ALTIUM_mwa_circ_type = 0x5102, + DW_TAG_ALTIUM_rev_carry_type = 0x5103, + DW_TAG_ALTIUM_rom = 0x5111, + +// Extensions for UPC. + DW_TAG_upc_shared_type = 0x8765, + DW_TAG_upc_strict_type = 0x8766, + DW_TAG_upc_relaxed_type = 0x8767, + +// PGI (STMicroelectronics) extensions. + DW_TAG_PGI_kanji_type = 0xa000, + DW_TAG_PGI_interface_block = 0xa020, + +// Borland extensions. + DW_TAG_BORLAND_property = 0xb000, + DW_TAG_BORLAND_Delphi_string = 0xb001, + DW_TAG_BORLAND_Delphi_dynamic_array = 0xb002, + DW_TAG_BORLAND_Delphi_set = 0xb003, + DW_TAG_BORLAND_Delphi_variant = 0xb004, +}); + +dw!( +/// The attribute encodings for DIE attributes. +/// +/// See Section 7.5.4, Table 7.5. +DwAt(u16) { + DW_AT_null = 0x00, + + DW_AT_sibling = 0x01, + DW_AT_location = 0x02, + DW_AT_name = 0x03, + DW_AT_ordering = 0x09, + DW_AT_byte_size = 0x0b, + DW_AT_bit_offset = 0x0c, + DW_AT_bit_size = 0x0d, + DW_AT_stmt_list = 0x10, + DW_AT_low_pc = 0x11, + DW_AT_high_pc = 0x12, + DW_AT_language = 0x13, + DW_AT_discr = 0x15, + DW_AT_discr_value = 0x16, + DW_AT_visibility = 0x17, + DW_AT_import = 0x18, + DW_AT_string_length = 0x19, + DW_AT_common_reference = 0x1a, + DW_AT_comp_dir = 0x1b, + DW_AT_const_value = 0x1c, + DW_AT_containing_type = 0x1d, + DW_AT_default_value = 0x1e, + DW_AT_inline = 0x20, + DW_AT_is_optional = 0x21, + DW_AT_lower_bound = 0x22, + DW_AT_producer = 0x25, + DW_AT_prototyped = 0x27, + DW_AT_return_addr = 0x2a, + DW_AT_start_scope = 0x2c, + DW_AT_bit_stride = 0x2e, + DW_AT_upper_bound = 0x2f, + DW_AT_abstract_origin = 0x31, + DW_AT_accessibility = 0x32, + DW_AT_address_class = 0x33, + DW_AT_artificial = 0x34, + DW_AT_base_types = 0x35, + DW_AT_calling_convention = 0x36, + DW_AT_count = 0x37, + DW_AT_data_member_location = 0x38, + DW_AT_decl_column = 0x39, + DW_AT_decl_file = 0x3a, + DW_AT_decl_line = 0x3b, + DW_AT_declaration = 0x3c, + DW_AT_discr_list = 0x3d, + DW_AT_encoding = 0x3e, + DW_AT_external = 0x3f, + DW_AT_frame_base = 0x40, + DW_AT_friend = 0x41, + DW_AT_identifier_case = 0x42, + DW_AT_macro_info = 0x43, + DW_AT_namelist_item = 0x44, + DW_AT_priority = 0x45, + DW_AT_segment = 0x46, + DW_AT_specification = 0x47, + DW_AT_static_link = 0x48, + DW_AT_type = 0x49, + DW_AT_use_location = 0x4a, + DW_AT_variable_parameter = 0x4b, + DW_AT_virtuality = 0x4c, + DW_AT_vtable_elem_location = 0x4d, + +// DWARF 3. + DW_AT_allocated = 0x4e, + DW_AT_associated = 0x4f, + DW_AT_data_location = 0x50, + DW_AT_byte_stride = 0x51, + DW_AT_entry_pc = 0x52, + DW_AT_use_UTF8 = 0x53, + DW_AT_extension = 0x54, + DW_AT_ranges = 0x55, + DW_AT_trampoline = 0x56, + DW_AT_call_column = 0x57, + DW_AT_call_file = 0x58, + DW_AT_call_line = 0x59, + DW_AT_description = 0x5a, + DW_AT_binary_scale = 0x5b, + DW_AT_decimal_scale = 0x5c, + DW_AT_small = 0x5d, + DW_AT_decimal_sign = 0x5e, + DW_AT_digit_count = 0x5f, + DW_AT_picture_string = 0x60, + DW_AT_mutable = 0x61, + DW_AT_threads_scaled = 0x62, + DW_AT_explicit = 0x63, + DW_AT_object_pointer = 0x64, + DW_AT_endianity = 0x65, + DW_AT_elemental = 0x66, + DW_AT_pure = 0x67, + DW_AT_recursive = 0x68, + +// DWARF 4. + DW_AT_signature = 0x69, + DW_AT_main_subprogram = 0x6a, + DW_AT_data_bit_offset = 0x6b, + DW_AT_const_expr = 0x6c, + DW_AT_enum_class = 0x6d, + DW_AT_linkage_name = 0x6e, + +// DWARF 5. + DW_AT_string_length_bit_size = 0x6f, + DW_AT_string_length_byte_size = 0x70, + DW_AT_rank = 0x71, + DW_AT_str_offsets_base = 0x72, + DW_AT_addr_base = 0x73, + DW_AT_rnglists_base = 0x74, + DW_AT_dwo_name = 0x76, + DW_AT_reference = 0x77, + DW_AT_rvalue_reference = 0x78, + DW_AT_macros = 0x79, + DW_AT_call_all_calls = 0x7a, + DW_AT_call_all_source_calls = 0x7b, + DW_AT_call_all_tail_calls = 0x7c, + DW_AT_call_return_pc = 0x7d, + DW_AT_call_value = 0x7e, + DW_AT_call_origin = 0x7f, + DW_AT_call_parameter = 0x80, + DW_AT_call_pc = 0x81, + DW_AT_call_tail_call = 0x82, + DW_AT_call_target = 0x83, + DW_AT_call_target_clobbered = 0x84, + DW_AT_call_data_location = 0x85, + DW_AT_call_data_value = 0x86, + DW_AT_noreturn = 0x87, + DW_AT_alignment = 0x88, + DW_AT_export_symbols = 0x89, + DW_AT_deleted = 0x8a, + DW_AT_defaulted = 0x8b, + DW_AT_loclists_base = 0x8c, + + DW_AT_lo_user = 0x2000, + DW_AT_hi_user = 0x3fff, + +// SGI/MIPS extensions. + DW_AT_MIPS_fde = 0x2001, + DW_AT_MIPS_loop_begin = 0x2002, + DW_AT_MIPS_tail_loop_begin = 0x2003, + DW_AT_MIPS_epilog_begin = 0x2004, + DW_AT_MIPS_loop_unroll_factor = 0x2005, + DW_AT_MIPS_software_pipeline_depth = 0x2006, + DW_AT_MIPS_linkage_name = 0x2007, + DW_AT_MIPS_stride = 0x2008, + DW_AT_MIPS_abstract_name = 0x2009, + DW_AT_MIPS_clone_origin = 0x200a, + DW_AT_MIPS_has_inlines = 0x200b, + DW_AT_MIPS_stride_byte = 0x200c, + DW_AT_MIPS_stride_elem = 0x200d, + DW_AT_MIPS_ptr_dopetype = 0x200e, + DW_AT_MIPS_allocatable_dopetype = 0x200f, + DW_AT_MIPS_assumed_shape_dopetype = 0x2010, + +// This one appears to have only been implemented by Open64 for +// fortran and may conflict with other extensions. + DW_AT_MIPS_assumed_size = 0x2011, + +// TODO: HP/CPQ extensions. +// These conflict with the MIPS extensions. + + DW_AT_INTEL_other_endian = 0x2026, + +// GNU extensions + DW_AT_sf_names = 0x2101, + DW_AT_src_info = 0x2102, + DW_AT_mac_info = 0x2103, + DW_AT_src_coords = 0x2104, + DW_AT_body_begin = 0x2105, + DW_AT_body_end = 0x2106, + DW_AT_GNU_vector = 0x2107, + DW_AT_GNU_guarded_by = 0x2108, + DW_AT_GNU_pt_guarded_by = 0x2109, + DW_AT_GNU_guarded = 0x210a, + DW_AT_GNU_pt_guarded = 0x210b, + DW_AT_GNU_locks_excluded = 0x210c, + DW_AT_GNU_exclusive_locks_required = 0x210d, + DW_AT_GNU_shared_locks_required = 0x210e, + DW_AT_GNU_odr_signature = 0x210f, + DW_AT_GNU_template_name = 0x2110, + DW_AT_GNU_call_site_value = 0x2111, + DW_AT_GNU_call_site_data_value = 0x2112, + DW_AT_GNU_call_site_target = 0x2113, + DW_AT_GNU_call_site_target_clobbered = 0x2114, + DW_AT_GNU_tail_call = 0x2115, + DW_AT_GNU_all_tail_call_sites = 0x2116, + DW_AT_GNU_all_call_sites = 0x2117, + DW_AT_GNU_all_source_call_sites = 0x2118, + DW_AT_GNU_macros = 0x2119, + DW_AT_GNU_deleted = 0x211a, + +// Extensions for Fission proposal. + DW_AT_GNU_dwo_name = 0x2130, + DW_AT_GNU_dwo_id = 0x2131, + DW_AT_GNU_ranges_base = 0x2132, + DW_AT_GNU_addr_base = 0x2133, + DW_AT_GNU_pubnames = 0x2134, + DW_AT_GNU_pubtypes = 0x2135, + DW_AT_GNU_discriminator = 0x2136, + DW_AT_GNU_locviews = 0x2137, + DW_AT_GNU_entry_view = 0x2138, + +// Conflict with Sun. +// DW_AT_VMS_rtnbeg_pd_address = 0x2201, + +// Sun extensions. + DW_AT_SUN_template = 0x2201, + DW_AT_SUN_alignment = 0x2202, + DW_AT_SUN_vtable = 0x2203, + DW_AT_SUN_count_guarantee = 0x2204, + DW_AT_SUN_command_line = 0x2205, + DW_AT_SUN_vbase = 0x2206, + DW_AT_SUN_compile_options = 0x2207, + DW_AT_SUN_language = 0x2208, + DW_AT_SUN_browser_file = 0x2209, + DW_AT_SUN_vtable_abi = 0x2210, + DW_AT_SUN_func_offsets = 0x2211, + DW_AT_SUN_cf_kind = 0x2212, + DW_AT_SUN_vtable_index = 0x2213, + DW_AT_SUN_omp_tpriv_addr = 0x2214, + DW_AT_SUN_omp_child_func = 0x2215, + DW_AT_SUN_func_offset = 0x2216, + DW_AT_SUN_memop_type_ref = 0x2217, + DW_AT_SUN_profile_id = 0x2218, + DW_AT_SUN_memop_signature = 0x2219, + DW_AT_SUN_obj_dir = 0x2220, + DW_AT_SUN_obj_file = 0x2221, + DW_AT_SUN_original_name = 0x2222, + DW_AT_SUN_hwcprof_signature = 0x2223, + DW_AT_SUN_amd64_parmdump = 0x2224, + DW_AT_SUN_part_link_name = 0x2225, + DW_AT_SUN_link_name = 0x2226, + DW_AT_SUN_pass_with_const = 0x2227, + DW_AT_SUN_return_with_const = 0x2228, + DW_AT_SUN_import_by_name = 0x2229, + DW_AT_SUN_f90_pointer = 0x222a, + DW_AT_SUN_pass_by_ref = 0x222b, + DW_AT_SUN_f90_allocatable = 0x222c, + DW_AT_SUN_f90_assumed_shape_array = 0x222d, + DW_AT_SUN_c_vla = 0x222e, + DW_AT_SUN_return_value_ptr = 0x2230, + DW_AT_SUN_dtor_start = 0x2231, + DW_AT_SUN_dtor_length = 0x2232, + DW_AT_SUN_dtor_state_initial = 0x2233, + DW_AT_SUN_dtor_state_final = 0x2234, + DW_AT_SUN_dtor_state_deltas = 0x2235, + DW_AT_SUN_import_by_lname = 0x2236, + DW_AT_SUN_f90_use_only = 0x2237, + DW_AT_SUN_namelist_spec = 0x2238, + DW_AT_SUN_is_omp_child_func = 0x2239, + DW_AT_SUN_fortran_main_alias = 0x223a, + DW_AT_SUN_fortran_based = 0x223b, + + DW_AT_ALTIUM_loclist = 0x2300, + + DW_AT_use_GNAT_descriptive_type = 0x2301, + DW_AT_GNAT_descriptive_type = 0x2302, + DW_AT_GNU_numerator = 0x2303, + DW_AT_GNU_denominator = 0x2304, + DW_AT_GNU_bias = 0x2305, + + DW_AT_upc_threads_scaled = 0x3210, + +// PGI (STMicroelectronics) extensions. + DW_AT_PGI_lbase = 0x3a00, + DW_AT_PGI_soffset = 0x3a01, + DW_AT_PGI_lstride = 0x3a02, + +// Borland extensions. + DW_AT_BORLAND_property_read = 0x3b11, + DW_AT_BORLAND_property_write = 0x3b12, + DW_AT_BORLAND_property_implements = 0x3b13, + DW_AT_BORLAND_property_index = 0x3b14, + DW_AT_BORLAND_property_default = 0x3b15, + DW_AT_BORLAND_Delphi_unit = 0x3b20, + DW_AT_BORLAND_Delphi_class = 0x3b21, + DW_AT_BORLAND_Delphi_record = 0x3b22, + DW_AT_BORLAND_Delphi_metaclass = 0x3b23, + DW_AT_BORLAND_Delphi_constructor = 0x3b24, + DW_AT_BORLAND_Delphi_destructor = 0x3b25, + DW_AT_BORLAND_Delphi_anonymous_method = 0x3b26, + DW_AT_BORLAND_Delphi_interface = 0x3b27, + DW_AT_BORLAND_Delphi_ABI = 0x3b28, + DW_AT_BORLAND_Delphi_return = 0x3b29, + DW_AT_BORLAND_Delphi_frameptr = 0x3b30, + DW_AT_BORLAND_closure = 0x3b31, + +// LLVM project extensions. + DW_AT_LLVM_include_path = 0x3e00, + DW_AT_LLVM_config_macros = 0x3e01, + DW_AT_LLVM_isysroot = 0x3e02, + +// Apple extensions. + DW_AT_APPLE_optimized = 0x3fe1, + DW_AT_APPLE_flags = 0x3fe2, + DW_AT_APPLE_isa = 0x3fe3, + DW_AT_APPLE_block = 0x3fe4, + DW_AT_APPLE_major_runtime_vers = 0x3fe5, + DW_AT_APPLE_runtime_class = 0x3fe6, + DW_AT_APPLE_omit_frame_ptr = 0x3fe7, + DW_AT_APPLE_property_name = 0x3fe8, + DW_AT_APPLE_property_getter = 0x3fe9, + DW_AT_APPLE_property_setter = 0x3fea, + DW_AT_APPLE_property_attribute = 0x3feb, + DW_AT_APPLE_objc_complete_type = 0x3fec, + DW_AT_APPLE_property = 0x3fed +}); + +dw!( +/// The attribute form encodings for DIE attributes. +/// +/// See Section 7.5.6, Table 7.6. +DwForm(u16) { + DW_FORM_null = 0x00, + + DW_FORM_addr = 0x01, + DW_FORM_block2 = 0x03, + DW_FORM_block4 = 0x04, + DW_FORM_data2 = 0x05, + DW_FORM_data4 = 0x06, + DW_FORM_data8 = 0x07, + DW_FORM_string = 0x08, + DW_FORM_block = 0x09, + DW_FORM_block1 = 0x0a, + DW_FORM_data1 = 0x0b, + DW_FORM_flag = 0x0c, + DW_FORM_sdata = 0x0d, + DW_FORM_strp = 0x0e, + DW_FORM_udata = 0x0f, + DW_FORM_ref_addr = 0x10, + DW_FORM_ref1 = 0x11, + DW_FORM_ref2 = 0x12, + DW_FORM_ref4 = 0x13, + DW_FORM_ref8 = 0x14, + DW_FORM_ref_udata = 0x15, + DW_FORM_indirect = 0x16, + +// DWARF 4. + DW_FORM_sec_offset = 0x17, + DW_FORM_exprloc = 0x18, + DW_FORM_flag_present = 0x19, + DW_FORM_ref_sig8 = 0x20, + +// DWARF 5. + DW_FORM_strx = 0x1a, + DW_FORM_addrx = 0x1b, + DW_FORM_ref_sup4 = 0x1c, + DW_FORM_strp_sup = 0x1d, + DW_FORM_data16 = 0x1e, + DW_FORM_line_strp = 0x1f, + DW_FORM_implicit_const = 0x21, + DW_FORM_loclistx = 0x22, + DW_FORM_rnglistx = 0x23, + DW_FORM_ref_sup8 = 0x24, + DW_FORM_strx1 = 0x25, + DW_FORM_strx2 = 0x26, + DW_FORM_strx3 = 0x27, + DW_FORM_strx4 = 0x28, + DW_FORM_addrx1 = 0x29, + DW_FORM_addrx2 = 0x2a, + DW_FORM_addrx3 = 0x2b, + DW_FORM_addrx4 = 0x2c, + +// Extensions for Fission proposal + DW_FORM_GNU_addr_index = 0x1f01, + DW_FORM_GNU_str_index = 0x1f02, + +// Alternate debug sections proposal (output of "dwz" tool). + DW_FORM_GNU_ref_alt = 0x1f20, + DW_FORM_GNU_strp_alt = 0x1f21 +}); + +dw!( +/// The encodings of the constants used in the `DW_AT_encoding` attribute. +/// +/// See Section 7.8, Table 7.11. +DwAte(u8) { + DW_ATE_address = 0x01, + DW_ATE_boolean = 0x02, + DW_ATE_complex_float = 0x03, + DW_ATE_float = 0x04, + DW_ATE_signed = 0x05, + DW_ATE_signed_char = 0x06, + DW_ATE_unsigned = 0x07, + DW_ATE_unsigned_char = 0x08, + +// DWARF 3. + DW_ATE_imaginary_float = 0x09, + DW_ATE_packed_decimal = 0x0a, + DW_ATE_numeric_string = 0x0b, + DW_ATE_edited = 0x0c, + DW_ATE_signed_fixed = 0x0d, + DW_ATE_unsigned_fixed = 0x0e, + DW_ATE_decimal_float = 0x0f , + +// DWARF 4. + DW_ATE_UTF = 0x10, + DW_ATE_UCS = 0x11, + DW_ATE_ASCII = 0x12, + + DW_ATE_lo_user = 0x80, + DW_ATE_hi_user = 0xff, +}); + +dw!( +/// The encodings of the constants used in location list entries. +/// +/// See Section 7.7.3, Table 7.10. +DwLle(u8) { + DW_LLE_end_of_list = 0x00, + DW_LLE_base_addressx = 0x01, + DW_LLE_startx_endx = 0x02, + DW_LLE_startx_length = 0x03, + DW_LLE_offset_pair = 0x04, + DW_LLE_default_location = 0x05, + DW_LLE_base_address = 0x06, + DW_LLE_start_end = 0x07, + DW_LLE_start_length = 0x08, + DW_LLE_GNU_view_pair = 0x09, +}); + +dw!( +/// The encodings of the constants used in the `DW_AT_decimal_sign` attribute. +/// +/// See Section 7.8, Table 7.12. +DwDs(u8) { + DW_DS_unsigned = 0x01, + DW_DS_leading_overpunch = 0x02, + DW_DS_trailing_overpunch = 0x03, + DW_DS_leading_separate = 0x04, + DW_DS_trailing_separate = 0x05, +}); + +dw!( +/// The encodings of the constants used in the `DW_AT_endianity` attribute. +/// +/// See Section 7.8, Table 7.13. +DwEnd(u8) { + DW_END_default = 0x00, + DW_END_big = 0x01, + DW_END_little = 0x02, + DW_END_lo_user = 0x40, + DW_END_hi_user = 0xff, +}); + +dw!( +/// The encodings of the constants used in the `DW_AT_accessibility` attribute. +/// +/// See Section 7.9, Table 7.14. +DwAccess(u8) { + DW_ACCESS_public = 0x01, + DW_ACCESS_protected = 0x02, + DW_ACCESS_private = 0x03, +}); + +dw!( +/// The encodings of the constants used in the `DW_AT_visibility` attribute. +/// +/// See Section 7.10, Table 7.15. +DwVis(u8) { + DW_VIS_local = 0x01, + DW_VIS_exported = 0x02, + DW_VIS_qualified = 0x03, +}); + +dw!( +/// The encodings of the constants used in the `DW_AT_virtuality` attribute. +/// +/// See Section 7.11, Table 7.16. +DwVirtuality(u8) { + DW_VIRTUALITY_none = 0x00, + DW_VIRTUALITY_virtual = 0x01, + DW_VIRTUALITY_pure_virtual = 0x02, +}); + +dw!( +/// The encodings of the constants used in the `DW_AT_language` attribute. +/// +/// See Section 7.12, Table 7.17. +DwLang(u16) { + DW_LANG_C89 = 0x0001, + DW_LANG_C = 0x0002, + DW_LANG_Ada83 = 0x0003, + DW_LANG_C_plus_plus = 0x0004, + DW_LANG_Cobol74 = 0x0005, + DW_LANG_Cobol85 = 0x0006, + DW_LANG_Fortran77 = 0x0007, + DW_LANG_Fortran90 = 0x0008, + DW_LANG_Pascal83 = 0x0009, + DW_LANG_Modula2 = 0x000a, + DW_LANG_Java = 0x000b, + DW_LANG_C99 = 0x000c, + DW_LANG_Ada95 = 0x000d, + DW_LANG_Fortran95 = 0x000e, + DW_LANG_PLI = 0x000f, + DW_LANG_ObjC = 0x0010, + DW_LANG_ObjC_plus_plus = 0x0011, + DW_LANG_UPC = 0x0012, + DW_LANG_D = 0x0013, + DW_LANG_Python = 0x0014, + DW_LANG_OpenCL = 0x0015, + DW_LANG_Go = 0x0016, + DW_LANG_Modula3 = 0x0017, + DW_LANG_Haskell = 0x0018, + DW_LANG_C_plus_plus_03 = 0x0019, + DW_LANG_C_plus_plus_11 = 0x001a, + DW_LANG_OCaml = 0x001b, + DW_LANG_Rust = 0x001c, + DW_LANG_C11 = 0x001d, + DW_LANG_Swift = 0x001e, + DW_LANG_Julia = 0x001f, + DW_LANG_Dylan = 0x0020, + DW_LANG_C_plus_plus_14 = 0x0021, + DW_LANG_Fortran03 = 0x0022, + DW_LANG_Fortran08 = 0x0023, + DW_LANG_RenderScript = 0x0024, + DW_LANG_BLISS = 0x0025, + DW_LANG_Kotlin = 0x0026, + DW_LANG_Zig = 0x0027, + DW_LANG_Crystal = 0x0028, + DW_LANG_C_plus_plus_17 = 0x002a, + DW_LANG_C_plus_plus_20 = 0x002b, + DW_LANG_C17 = 0x002c, + DW_LANG_Fortran18 = 0x002d, + DW_LANG_Ada2005 = 0x002e, + DW_LANG_Ada2012 = 0x002f, + + DW_LANG_lo_user = 0x8000, + DW_LANG_hi_user = 0xffff, + + DW_LANG_Mips_Assembler = 0x8001, + DW_LANG_GOOGLE_RenderScript = 0x8e57, + DW_LANG_SUN_Assembler = 0x9001, + DW_LANG_ALTIUM_Assembler = 0x9101, + DW_LANG_BORLAND_Delphi = 0xb000, +}); + +impl DwLang { + /// Get the default DW_AT_lower_bound for this language. + pub fn default_lower_bound(self) -> Option { + match self { + DW_LANG_C89 + | DW_LANG_C + | DW_LANG_C_plus_plus + | DW_LANG_Java + | DW_LANG_C99 + | DW_LANG_ObjC + | DW_LANG_ObjC_plus_plus + | DW_LANG_UPC + | DW_LANG_D + | DW_LANG_Python + | DW_LANG_OpenCL + | DW_LANG_Go + | DW_LANG_Haskell + | DW_LANG_C_plus_plus_03 + | DW_LANG_C_plus_plus_11 + | DW_LANG_OCaml + | DW_LANG_Rust + | DW_LANG_C11 + | DW_LANG_Swift + | DW_LANG_Dylan + | DW_LANG_C_plus_plus_14 + | DW_LANG_RenderScript + | DW_LANG_BLISS => Some(0), + DW_LANG_Ada83 | DW_LANG_Cobol74 | DW_LANG_Cobol85 | DW_LANG_Fortran77 + | DW_LANG_Fortran90 | DW_LANG_Pascal83 | DW_LANG_Modula2 | DW_LANG_Ada95 + | DW_LANG_Fortran95 | DW_LANG_PLI | DW_LANG_Modula3 | DW_LANG_Julia + | DW_LANG_Fortran03 | DW_LANG_Fortran08 => Some(1), + _ => None, + } + } +} + +dw!( +/// The encodings of the constants used in the `DW_AT_address_class` attribute. +/// +/// There is only one value that is common to all target architectures. +/// See Section 7.13. +DwAddr(u64) { + DW_ADDR_none = 0x00, +}); + +dw!( +/// The encodings of the constants used in the `DW_AT_identifier_case` attribute. +/// +/// See Section 7.14, Table 7.18. +DwId(u8) { + DW_ID_case_sensitive = 0x00, + DW_ID_up_case = 0x01, + DW_ID_down_case = 0x02, + DW_ID_case_insensitive = 0x03, +}); + +dw!( +/// The encodings of the constants used in the `DW_AT_calling_convention` attribute. +/// +/// See Section 7.15, Table 7.19. +DwCc(u8) { + DW_CC_normal = 0x01, + DW_CC_program = 0x02, + DW_CC_nocall = 0x03, + DW_CC_pass_by_reference = 0x04, + DW_CC_pass_by_value = 0x05, + DW_CC_lo_user = 0x40, + DW_CC_hi_user = 0xff, +}); + +dw!( +/// The encodings of the constants used in the `DW_AT_inline` attribute. +/// +/// See Section 7.16, Table 7.20. +DwInl(u8) { + DW_INL_not_inlined = 0x00, + DW_INL_inlined = 0x01, + DW_INL_declared_not_inlined = 0x02, + DW_INL_declared_inlined = 0x03, +}); + +dw!( +/// The encodings of the constants used in the `DW_AT_ordering` attribute. +/// +/// See Section 7.17, Table 7.17. +DwOrd(u8) { + DW_ORD_row_major = 0x00, + DW_ORD_col_major = 0x01, +}); + +dw!( +/// The encodings of the constants used in the `DW_AT_discr_list` attribute. +/// +/// See Section 7.18, Table 7.22. +DwDsc(u8) { + DW_DSC_label = 0x00, + DW_DSC_range = 0x01, +}); + +dw!( +/// Name index attribute encodings. +/// +/// See Section 7.19, Table 7.23. +DwIdx(u16) { + DW_IDX_compile_unit = 1, + DW_IDX_type_unit = 2, + DW_IDX_die_offset = 3, + DW_IDX_parent = 4, + DW_IDX_type_hash = 5, + DW_IDX_lo_user = 0x2000, + DW_IDX_hi_user = 0x3fff, +}); + +dw!( +/// The encodings of the constants used in the `DW_AT_defaulted` attribute. +/// +/// See Section 7.20, Table 7.24. +DwDefaulted(u8) { + DW_DEFAULTED_no = 0x00, + DW_DEFAULTED_in_class = 0x01, + DW_DEFAULTED_out_of_class = 0x02, +}); + +dw!( +/// The encodings for the standard opcodes for line number information. +/// +/// See Section 7.22, Table 7.25. +DwLns(u8) { + DW_LNS_copy = 0x01, + DW_LNS_advance_pc = 0x02, + DW_LNS_advance_line = 0x03, + DW_LNS_set_file = 0x04, + DW_LNS_set_column = 0x05, + DW_LNS_negate_stmt = 0x06, + DW_LNS_set_basic_block = 0x07, + DW_LNS_const_add_pc = 0x08, + DW_LNS_fixed_advance_pc = 0x09, + DW_LNS_set_prologue_end = 0x0a, + DW_LNS_set_epilogue_begin = 0x0b, + DW_LNS_set_isa = 0x0c, +}); + +dw!( +/// The encodings for the extended opcodes for line number information. +/// +/// See Section 7.22, Table 7.26. +DwLne(u8) { + DW_LNE_end_sequence = 0x01, + DW_LNE_set_address = 0x02, + DW_LNE_define_file = 0x03, + DW_LNE_set_discriminator = 0x04, + + DW_LNE_lo_user = 0x80, + DW_LNE_hi_user = 0xff, +}); + +dw!( +/// The encodings for the line number header entry formats. +/// +/// See Section 7.22, Table 7.27. +DwLnct(u16) { + DW_LNCT_path = 0x1, + DW_LNCT_directory_index = 0x2, + DW_LNCT_timestamp = 0x3, + DW_LNCT_size = 0x4, + DW_LNCT_MD5 = 0x5, + DW_LNCT_lo_user = 0x2000, + DW_LNCT_hi_user = 0x3fff, +}); + +dw!( +/// The encodings for macro information entry types. +/// +/// See Section 7.23, Table 7.28. +DwMacro(u8) { + DW_MACRO_define = 0x01, + DW_MACRO_undef = 0x02, + DW_MACRO_start_file = 0x03, + DW_MACRO_end_file = 0x04, + DW_MACRO_define_strp = 0x05, + DW_MACRO_undef_strp = 0x06, + DW_MACRO_import = 0x07, + DW_MACRO_define_sup = 0x08, + DW_MACRO_undef_sup = 0x09, + DW_MACRO_import_sup = 0x0a, + DW_MACRO_define_strx = 0x0b, + DW_MACRO_undef_strx = 0x0c, + DW_MACRO_lo_user = 0xe0, + DW_MACRO_hi_user = 0xff, +}); + +dw!( +/// Range list entry encoding values. +/// +/// See Section 7.25, Table 7.30. +DwRle(u8) { + DW_RLE_end_of_list = 0x00, + DW_RLE_base_addressx = 0x01, + DW_RLE_startx_endx = 0x02, + DW_RLE_startx_length = 0x03, + DW_RLE_offset_pair = 0x04, + DW_RLE_base_address = 0x05, + DW_RLE_start_end = 0x06, + DW_RLE_start_length = 0x07, +}); + +dw!( +/// The encodings for DWARF expression operations. +/// +/// See Section 7.7.1, Table 7.9. +DwOp(u8) { + DW_OP_addr = 0x03, + DW_OP_deref = 0x06, + DW_OP_const1u = 0x08, + DW_OP_const1s = 0x09, + DW_OP_const2u = 0x0a, + DW_OP_const2s = 0x0b, + DW_OP_const4u = 0x0c, + DW_OP_const4s = 0x0d, + DW_OP_const8u = 0x0e, + DW_OP_const8s = 0x0f, + DW_OP_constu = 0x10, + DW_OP_consts = 0x11, + DW_OP_dup = 0x12, + DW_OP_drop = 0x13, + DW_OP_over = 0x14, + DW_OP_pick = 0x15, + DW_OP_swap = 0x16, + DW_OP_rot = 0x17, + DW_OP_xderef = 0x18, + DW_OP_abs = 0x19, + DW_OP_and = 0x1a, + DW_OP_div = 0x1b, + DW_OP_minus = 0x1c, + DW_OP_mod = 0x1d, + DW_OP_mul = 0x1e, + DW_OP_neg = 0x1f, + DW_OP_not = 0x20, + DW_OP_or = 0x21, + DW_OP_plus = 0x22, + DW_OP_plus_uconst = 0x23, + DW_OP_shl = 0x24, + DW_OP_shr = 0x25, + DW_OP_shra = 0x26, + DW_OP_xor = 0x27, + DW_OP_bra = 0x28, + DW_OP_eq = 0x29, + DW_OP_ge = 0x2a, + DW_OP_gt = 0x2b, + DW_OP_le = 0x2c, + DW_OP_lt = 0x2d, + DW_OP_ne = 0x2e, + DW_OP_skip = 0x2f, + DW_OP_lit0 = 0x30, + DW_OP_lit1 = 0x31, + DW_OP_lit2 = 0x32, + DW_OP_lit3 = 0x33, + DW_OP_lit4 = 0x34, + DW_OP_lit5 = 0x35, + DW_OP_lit6 = 0x36, + DW_OP_lit7 = 0x37, + DW_OP_lit8 = 0x38, + DW_OP_lit9 = 0x39, + DW_OP_lit10 = 0x3a, + DW_OP_lit11 = 0x3b, + DW_OP_lit12 = 0x3c, + DW_OP_lit13 = 0x3d, + DW_OP_lit14 = 0x3e, + DW_OP_lit15 = 0x3f, + DW_OP_lit16 = 0x40, + DW_OP_lit17 = 0x41, + DW_OP_lit18 = 0x42, + DW_OP_lit19 = 0x43, + DW_OP_lit20 = 0x44, + DW_OP_lit21 = 0x45, + DW_OP_lit22 = 0x46, + DW_OP_lit23 = 0x47, + DW_OP_lit24 = 0x48, + DW_OP_lit25 = 0x49, + DW_OP_lit26 = 0x4a, + DW_OP_lit27 = 0x4b, + DW_OP_lit28 = 0x4c, + DW_OP_lit29 = 0x4d, + DW_OP_lit30 = 0x4e, + DW_OP_lit31 = 0x4f, + DW_OP_reg0 = 0x50, + DW_OP_reg1 = 0x51, + DW_OP_reg2 = 0x52, + DW_OP_reg3 = 0x53, + DW_OP_reg4 = 0x54, + DW_OP_reg5 = 0x55, + DW_OP_reg6 = 0x56, + DW_OP_reg7 = 0x57, + DW_OP_reg8 = 0x58, + DW_OP_reg9 = 0x59, + DW_OP_reg10 = 0x5a, + DW_OP_reg11 = 0x5b, + DW_OP_reg12 = 0x5c, + DW_OP_reg13 = 0x5d, + DW_OP_reg14 = 0x5e, + DW_OP_reg15 = 0x5f, + DW_OP_reg16 = 0x60, + DW_OP_reg17 = 0x61, + DW_OP_reg18 = 0x62, + DW_OP_reg19 = 0x63, + DW_OP_reg20 = 0x64, + DW_OP_reg21 = 0x65, + DW_OP_reg22 = 0x66, + DW_OP_reg23 = 0x67, + DW_OP_reg24 = 0x68, + DW_OP_reg25 = 0x69, + DW_OP_reg26 = 0x6a, + DW_OP_reg27 = 0x6b, + DW_OP_reg28 = 0x6c, + DW_OP_reg29 = 0x6d, + DW_OP_reg30 = 0x6e, + DW_OP_reg31 = 0x6f, + DW_OP_breg0 = 0x70, + DW_OP_breg1 = 0x71, + DW_OP_breg2 = 0x72, + DW_OP_breg3 = 0x73, + DW_OP_breg4 = 0x74, + DW_OP_breg5 = 0x75, + DW_OP_breg6 = 0x76, + DW_OP_breg7 = 0x77, + DW_OP_breg8 = 0x78, + DW_OP_breg9 = 0x79, + DW_OP_breg10 = 0x7a, + DW_OP_breg11 = 0x7b, + DW_OP_breg12 = 0x7c, + DW_OP_breg13 = 0x7d, + DW_OP_breg14 = 0x7e, + DW_OP_breg15 = 0x7f, + DW_OP_breg16 = 0x80, + DW_OP_breg17 = 0x81, + DW_OP_breg18 = 0x82, + DW_OP_breg19 = 0x83, + DW_OP_breg20 = 0x84, + DW_OP_breg21 = 0x85, + DW_OP_breg22 = 0x86, + DW_OP_breg23 = 0x87, + DW_OP_breg24 = 0x88, + DW_OP_breg25 = 0x89, + DW_OP_breg26 = 0x8a, + DW_OP_breg27 = 0x8b, + DW_OP_breg28 = 0x8c, + DW_OP_breg29 = 0x8d, + DW_OP_breg30 = 0x8e, + DW_OP_breg31 = 0x8f, + DW_OP_regx = 0x90, + DW_OP_fbreg = 0x91, + DW_OP_bregx = 0x92, + DW_OP_piece = 0x93, + DW_OP_deref_size = 0x94, + DW_OP_xderef_size = 0x95, + DW_OP_nop = 0x96, + DW_OP_push_object_address = 0x97, + DW_OP_call2 = 0x98, + DW_OP_call4 = 0x99, + DW_OP_call_ref = 0x9a, + DW_OP_form_tls_address = 0x9b, + DW_OP_call_frame_cfa = 0x9c, + DW_OP_bit_piece = 0x9d, + DW_OP_implicit_value = 0x9e, + DW_OP_stack_value = 0x9f, + DW_OP_implicit_pointer = 0xa0, + DW_OP_addrx = 0xa1, + DW_OP_constx = 0xa2, + DW_OP_entry_value = 0xa3, + DW_OP_const_type = 0xa4, + DW_OP_regval_type = 0xa5, + DW_OP_deref_type = 0xa6, + DW_OP_xderef_type = 0xa7, + DW_OP_convert = 0xa8, + DW_OP_reinterpret = 0xa9, + + // GNU extensions + DW_OP_GNU_push_tls_address = 0xe0, + DW_OP_GNU_implicit_pointer = 0xf2, + DW_OP_GNU_entry_value = 0xf3, + DW_OP_GNU_const_type = 0xf4, + DW_OP_GNU_regval_type = 0xf5, + DW_OP_GNU_deref_type = 0xf6, + DW_OP_GNU_convert = 0xf7, + DW_OP_GNU_reinterpret = 0xf9, + DW_OP_GNU_parameter_ref = 0xfa, + DW_OP_GNU_addr_index = 0xfb, + DW_OP_GNU_const_index = 0xfc, + + // Wasm extensions + DW_OP_WASM_location = 0xed, +}); + +dw!( +/// Pointer encoding used by `.eh_frame`. +/// +/// The four lower bits describe the +/// format of the pointer, the upper four bits describe how the encoding should +/// be applied. +/// +/// Defined in `` +DwEhPe(u8) { +// Format of pointer encoding. + +// "Unsigned value is encoded using the Little Endian Base 128" + DW_EH_PE_uleb128 = 0x1, +// "A 2 bytes unsigned value." + DW_EH_PE_udata2 = 0x2, +// "A 4 bytes unsigned value." + DW_EH_PE_udata4 = 0x3, +// "An 8 bytes unsigned value." + DW_EH_PE_udata8 = 0x4, +// "Signed value is encoded using the Little Endian Base 128" + DW_EH_PE_sleb128 = 0x9, +// "A 2 bytes signed value." + DW_EH_PE_sdata2 = 0x0a, +// "A 4 bytes signed value." + DW_EH_PE_sdata4 = 0x0b, +// "An 8 bytes signed value." + DW_EH_PE_sdata8 = 0x0c, + +// How the pointer encoding should be applied. + +// `DW_EH_PE_pcrel` pointers are relative to their own location. + DW_EH_PE_pcrel = 0x10, +// "Value is relative to the beginning of the .text section." + DW_EH_PE_textrel = 0x20, +// "Value is relative to the beginning of the .got or .eh_frame_hdr section." + DW_EH_PE_datarel = 0x30, +// "Value is relative to the beginning of the function." + DW_EH_PE_funcrel = 0x40, +// "Value is aligned to an address unit sized boundary." + DW_EH_PE_aligned = 0x50, + +// This bit can be set for any of the above encoding applications. When set, +// the encoded value is the address of the real pointer result, not the +// pointer result itself. +// +// This isn't defined in the DWARF or the `.eh_frame` standards, but is +// generated by both GNU/Linux and macOS tooling. + DW_EH_PE_indirect = 0x80, + +// These constants apply to both the lower and upper bits. + +// "The Value is a literal pointer whose size is determined by the +// architecture." + DW_EH_PE_absptr = 0x0, +// The absence of a pointer and encoding. + DW_EH_PE_omit = 0xff, +}); + +const DW_EH_PE_FORMAT_MASK: u8 = 0b0000_1111; + +// Ignores indirection bit. +const DW_EH_PE_APPLICATION_MASK: u8 = 0b0111_0000; + +impl DwEhPe { + /// Get the pointer encoding's format. + #[inline] + pub fn format(self) -> DwEhPe { + DwEhPe(self.0 & DW_EH_PE_FORMAT_MASK) + } + + /// Get the pointer encoding's application. + #[inline] + pub fn application(self) -> DwEhPe { + DwEhPe(self.0 & DW_EH_PE_APPLICATION_MASK) + } + + /// Is this encoding the absent pointer encoding? + #[inline] + pub fn is_absent(self) -> bool { + self == DW_EH_PE_omit + } + + /// Is this coding indirect? If so, its encoded value is the address of the + /// real pointer result, not the pointer result itself. + #[inline] + pub fn is_indirect(self) -> bool { + self.0 & DW_EH_PE_indirect.0 != 0 + } + + /// Is this a known, valid pointer encoding? + pub fn is_valid_encoding(self) -> bool { + if self.is_absent() { + return true; + } + + match self.format() { + DW_EH_PE_absptr | DW_EH_PE_uleb128 | DW_EH_PE_udata2 | DW_EH_PE_udata4 + | DW_EH_PE_udata8 | DW_EH_PE_sleb128 | DW_EH_PE_sdata2 | DW_EH_PE_sdata4 + | DW_EH_PE_sdata8 => {} + _ => return false, + } + + match self.application() { + DW_EH_PE_absptr | DW_EH_PE_pcrel | DW_EH_PE_textrel | DW_EH_PE_datarel + | DW_EH_PE_funcrel | DW_EH_PE_aligned => {} + _ => return false, + } + + true + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_dw_eh_pe_format() { + let encoding = DwEhPe(DW_EH_PE_pcrel.0 | DW_EH_PE_uleb128.0); + assert_eq!(encoding.format(), DW_EH_PE_uleb128); + } + + #[test] + fn test_dw_eh_pe_application() { + let encoding = DwEhPe(DW_EH_PE_pcrel.0 | DW_EH_PE_uleb128.0); + assert_eq!(encoding.application(), DW_EH_PE_pcrel); + } + + #[test] + fn test_dw_eh_pe_is_absent() { + assert_eq!(DW_EH_PE_absptr.is_absent(), false); + assert_eq!(DW_EH_PE_omit.is_absent(), true); + } + + #[test] + fn test_dw_eh_pe_is_valid_encoding_ok() { + let encoding = DwEhPe(DW_EH_PE_uleb128.0 | DW_EH_PE_pcrel.0); + assert!(encoding.is_valid_encoding()); + assert!(DW_EH_PE_absptr.is_valid_encoding()); + assert!(DW_EH_PE_omit.is_valid_encoding()); + } + + #[test] + fn test_dw_eh_pe_is_valid_encoding_bad_format() { + let encoding = DwEhPe((DW_EH_PE_sdata8.0 + 1) | DW_EH_PE_pcrel.0); + assert_eq!(encoding.is_valid_encoding(), false); + } + + #[test] + fn test_dw_eh_pe_is_valid_encoding_bad_application() { + let encoding = DwEhPe(DW_EH_PE_sdata8.0 | (DW_EH_PE_aligned.0 + 1)); + assert_eq!(encoding.is_valid_encoding(), false); + } +} diff --git a/src/rust/vendor/gimli/src/endianity.rs b/src/rust/vendor/gimli/src/endianity.rs new file mode 100644 index 000000000..3201551f1 --- /dev/null +++ b/src/rust/vendor/gimli/src/endianity.rs @@ -0,0 +1,256 @@ +//! Types for compile-time and run-time endianity. + +use core::convert::TryInto; +use core::fmt::Debug; + +/// A trait describing the endianity of some buffer. +pub trait Endianity: Debug + Default + Clone + Copy + PartialEq + Eq { + /// Return true for big endian byte order. + fn is_big_endian(self) -> bool; + + /// Return true for little endian byte order. + #[inline] + fn is_little_endian(self) -> bool { + !self.is_big_endian() + } + + /// Reads an unsigned 16 bit integer from `buf`. + /// + /// # Panics + /// + /// Panics when `buf.len() < 2`. + #[inline] + fn read_u16(self, buf: &[u8]) -> u16 { + let bytes: &[u8; 2] = buf[..2].try_into().unwrap(); + if self.is_big_endian() { + u16::from_be_bytes(*bytes) + } else { + u16::from_le_bytes(*bytes) + } + } + + /// Reads an unsigned 32 bit integer from `buf`. + /// + /// # Panics + /// + /// Panics when `buf.len() < 4`. + #[inline] + fn read_u32(self, buf: &[u8]) -> u32 { + let bytes: &[u8; 4] = buf[..4].try_into().unwrap(); + if self.is_big_endian() { + u32::from_be_bytes(*bytes) + } else { + u32::from_le_bytes(*bytes) + } + } + + /// Reads an unsigned 64 bit integer from `buf`. + /// + /// # Panics + /// + /// Panics when `buf.len() < 8`. + #[inline] + fn read_u64(self, buf: &[u8]) -> u64 { + let bytes: &[u8; 8] = buf[..8].try_into().unwrap(); + if self.is_big_endian() { + u64::from_be_bytes(*bytes) + } else { + u64::from_le_bytes(*bytes) + } + } + + /// Read an unsigned n-bytes integer u64. + /// + /// # Panics + /// + /// Panics when `buf.len() < 1` or `buf.len() > 8`. + #[inline] + fn read_uint(&mut self, buf: &[u8]) -> u64 { + let mut tmp = [0; 8]; + if self.is_big_endian() { + tmp[8 - buf.len()..].copy_from_slice(buf); + } else { + tmp[..buf.len()].copy_from_slice(buf); + } + self.read_u64(&tmp) + } + + /// Reads a signed 16 bit integer from `buf`. + /// + /// # Panics + /// + /// Panics when `buf.len() < 2`. + #[inline] + fn read_i16(self, buf: &[u8]) -> i16 { + self.read_u16(buf) as i16 + } + + /// Reads a signed 32 bit integer from `buf`. + /// + /// # Panics + /// + /// Panics when `buf.len() < 4`. + #[inline] + fn read_i32(self, buf: &[u8]) -> i32 { + self.read_u32(buf) as i32 + } + + /// Reads a signed 64 bit integer from `buf`. + /// + /// # Panics + /// + /// Panics when `buf.len() < 8`. + #[inline] + fn read_i64(self, buf: &[u8]) -> i64 { + self.read_u64(buf) as i64 + } + + /// Reads a 32 bit floating point number from `buf`. + /// + /// # Panics + /// + /// Panics when `buf.len() < 8`. + #[inline] + fn read_f32(self, buf: &[u8]) -> f32 { + f32::from_bits(self.read_u32(buf)) + } + + /// Reads a 32 bit floating point number from `buf`. + /// + /// # Panics + /// + /// Panics when `buf.len() < 8`. + #[inline] + fn read_f64(self, buf: &[u8]) -> f64 { + f64::from_bits(self.read_u64(buf)) + } + + /// Writes an unsigned 16 bit integer `n` to `buf`. + /// + /// # Panics + /// + /// Panics when `buf.len() < 2`. + #[inline] + fn write_u16(self, buf: &mut [u8], n: u16) { + let bytes = if self.is_big_endian() { + n.to_be_bytes() + } else { + n.to_le_bytes() + }; + buf[..2].copy_from_slice(&bytes); + } + + /// Writes an unsigned 32 bit integer `n` to `buf`. + /// + /// # Panics + /// + /// Panics when `buf.len() < 4`. + #[inline] + fn write_u32(self, buf: &mut [u8], n: u32) { + let bytes = if self.is_big_endian() { + n.to_be_bytes() + } else { + n.to_le_bytes() + }; + buf[..4].copy_from_slice(&bytes); + } + + /// Writes an unsigned 64 bit integer `n` to `buf`. + /// + /// # Panics + /// + /// Panics when `buf.len() < 8`. + #[inline] + fn write_u64(self, buf: &mut [u8], n: u64) { + let bytes = if self.is_big_endian() { + n.to_be_bytes() + } else { + n.to_le_bytes() + }; + buf[..8].copy_from_slice(&bytes); + } +} + +/// Byte order that is selectable at runtime. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum RunTimeEndian { + /// Little endian byte order. + Little, + /// Big endian byte order. + Big, +} + +impl Default for RunTimeEndian { + #[cfg(target_endian = "little")] + #[inline] + fn default() -> RunTimeEndian { + RunTimeEndian::Little + } + + #[cfg(target_endian = "big")] + #[inline] + fn default() -> RunTimeEndian { + RunTimeEndian::Big + } +} + +impl Endianity for RunTimeEndian { + #[inline] + fn is_big_endian(self) -> bool { + self != RunTimeEndian::Little + } +} + +/// Little endian byte order. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct LittleEndian; + +impl Default for LittleEndian { + #[inline] + fn default() -> LittleEndian { + LittleEndian + } +} + +impl Endianity for LittleEndian { + #[inline] + fn is_big_endian(self) -> bool { + false + } +} + +/// Big endian byte order. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct BigEndian; + +impl Default for BigEndian { + #[inline] + fn default() -> BigEndian { + BigEndian + } +} + +impl Endianity for BigEndian { + #[inline] + fn is_big_endian(self) -> bool { + true + } +} + +/// The native endianity for the target platform. +#[cfg(target_endian = "little")] +pub type NativeEndian = LittleEndian; + +#[cfg(target_endian = "little")] +#[allow(non_upper_case_globals)] +#[doc(hidden)] +pub const NativeEndian: LittleEndian = LittleEndian; + +/// The native endianity for the target platform. +#[cfg(target_endian = "big")] +pub type NativeEndian = BigEndian; + +#[cfg(target_endian = "big")] +#[allow(non_upper_case_globals)] +#[doc(hidden)] +pub const NativeEndian: BigEndian = BigEndian; diff --git a/src/rust/vendor/gimli/src/leb128.rs b/src/rust/vendor/gimli/src/leb128.rs new file mode 100644 index 000000000..de81cfdcf --- /dev/null +++ b/src/rust/vendor/gimli/src/leb128.rs @@ -0,0 +1,612 @@ +//! Read and write DWARF's "Little Endian Base 128" (LEB128) variable length +//! integer encoding. +//! +//! The implementation is a direct translation of the psuedocode in the DWARF 4 +//! standard's appendix C. +//! +//! Read and write signed integers: +//! +//! ``` +//! # #[cfg(all(feature = "read", feature = "write"))] { +//! use gimli::{EndianSlice, NativeEndian, leb128}; +//! +//! let mut buf = [0; 1024]; +//! +//! // Write to anything that implements `std::io::Write`. +//! { +//! let mut writable = &mut buf[..]; +//! leb128::write::signed(&mut writable, -12345).expect("Should write number"); +//! } +//! +//! // Read from anything that implements `gimli::Reader`. +//! let mut readable = EndianSlice::new(&buf[..], NativeEndian); +//! let val = leb128::read::signed(&mut readable).expect("Should read number"); +//! assert_eq!(val, -12345); +//! # } +//! ``` +//! +//! Or read and write unsigned integers: +//! +//! ``` +//! # #[cfg(all(feature = "read", feature = "write"))] { +//! use gimli::{EndianSlice, NativeEndian, leb128}; +//! +//! let mut buf = [0; 1024]; +//! +//! { +//! let mut writable = &mut buf[..]; +//! leb128::write::unsigned(&mut writable, 98765).expect("Should write number"); +//! } +//! +//! let mut readable = EndianSlice::new(&buf[..], NativeEndian); +//! let val = leb128::read::unsigned(&mut readable).expect("Should read number"); +//! assert_eq!(val, 98765); +//! # } +//! ``` + +const CONTINUATION_BIT: u8 = 1 << 7; +#[cfg(feature = "read-core")] +const SIGN_BIT: u8 = 1 << 6; + +#[inline] +fn low_bits_of_byte(byte: u8) -> u8 { + byte & !CONTINUATION_BIT +} + +#[inline] +#[allow(dead_code)] +fn low_bits_of_u64(val: u64) -> u8 { + let byte = val & u64::from(core::u8::MAX); + low_bits_of_byte(byte as u8) +} + +/// A module for reading signed and unsigned integers that have been LEB128 +/// encoded. +#[cfg(feature = "read-core")] +pub mod read { + use super::{low_bits_of_byte, CONTINUATION_BIT, SIGN_BIT}; + use crate::read::{Error, Reader, Result}; + + /// Read bytes until the LEB128 continuation bit is not set. + pub fn skip(r: &mut R) -> Result<()> { + loop { + let byte = r.read_u8()?; + if byte & CONTINUATION_BIT == 0 { + return Ok(()); + } + } + } + + /// Read an unsigned LEB128 number from the given `Reader` and + /// return it or an error if reading failed. + pub fn unsigned(r: &mut R) -> Result { + let mut result = 0; + let mut shift = 0; + + loop { + let byte = r.read_u8()?; + if shift == 63 && byte != 0x00 && byte != 0x01 { + return Err(Error::BadUnsignedLeb128); + } + + let low_bits = u64::from(low_bits_of_byte(byte)); + result |= low_bits << shift; + + if byte & CONTINUATION_BIT == 0 { + return Ok(result); + } + + shift += 7; + } + } + + /// Read an LEB128 u16 from the given `Reader` and + /// return it or an error if reading failed. + pub fn u16(r: &mut R) -> Result { + let byte = r.read_u8()?; + let mut result = u16::from(low_bits_of_byte(byte)); + if byte & CONTINUATION_BIT == 0 { + return Ok(result); + } + + let byte = r.read_u8()?; + result |= u16::from(low_bits_of_byte(byte)) << 7; + if byte & CONTINUATION_BIT == 0 { + return Ok(result); + } + + let byte = r.read_u8()?; + if byte > 0x03 { + return Err(Error::BadUnsignedLeb128); + } + result += u16::from(byte) << 14; + Ok(result) + } + + /// Read a signed LEB128 number from the given `Reader` and + /// return it or an error if reading failed. + pub fn signed(r: &mut R) -> Result { + let mut result = 0; + let mut shift = 0; + let size = 64; + let mut byte; + + loop { + byte = r.read_u8()?; + if shift == 63 && byte != 0x00 && byte != 0x7f { + return Err(Error::BadSignedLeb128); + } + + let low_bits = i64::from(low_bits_of_byte(byte)); + result |= low_bits << shift; + shift += 7; + + if byte & CONTINUATION_BIT == 0 { + break; + } + } + + if shift < size && (SIGN_BIT & byte) == SIGN_BIT { + // Sign extend the result. + result |= !0 << shift; + } + + Ok(result) + } +} + +/// A module for writing integers encoded as LEB128. +#[cfg(feature = "write")] +pub mod write { + use super::{low_bits_of_u64, CONTINUATION_BIT}; + use std::io; + + /// Write the given unsigned number using the LEB128 encoding to the given + /// `std::io::Write`able. Returns the number of bytes written to `w`, or an + /// error if writing failed. + pub fn unsigned(w: &mut W, mut val: u64) -> Result + where + W: io::Write, + { + let mut bytes_written = 0; + loop { + let mut byte = low_bits_of_u64(val); + val >>= 7; + if val != 0 { + // More bytes to come, so set the continuation bit. + byte |= CONTINUATION_BIT; + } + + let buf = [byte]; + w.write_all(&buf)?; + bytes_written += 1; + + if val == 0 { + return Ok(bytes_written); + } + } + } + + /// Return the size of the LEB128 encoding of the given unsigned number. + pub fn uleb128_size(mut val: u64) -> usize { + let mut size = 0; + loop { + val >>= 7; + size += 1; + if val == 0 { + return size; + } + } + } + + /// Write the given signed number using the LEB128 encoding to the given + /// `std::io::Write`able. Returns the number of bytes written to `w`, or an + /// error if writing failed. + pub fn signed(w: &mut W, mut val: i64) -> Result + where + W: io::Write, + { + let mut bytes_written = 0; + loop { + let mut byte = val as u8; + // Keep the sign bit for testing + val >>= 6; + let done = val == 0 || val == -1; + if done { + byte &= !CONTINUATION_BIT; + } else { + // Remove the sign bit + val >>= 1; + // More bytes to come, so set the continuation bit. + byte |= CONTINUATION_BIT; + } + + let buf = [byte]; + w.write_all(&buf)?; + bytes_written += 1; + + if done { + return Ok(bytes_written); + } + } + } + + /// Return the size of the LEB128 encoding of the given signed number. + pub fn sleb128_size(mut val: i64) -> usize { + let mut size = 0; + loop { + val >>= 6; + let done = val == 0 || val == -1; + val >>= 1; + size += 1; + if done { + return size; + } + } + } +} + +#[cfg(test)] +#[cfg(all(feature = "read", feature = "write"))] +mod tests { + use super::{low_bits_of_byte, low_bits_of_u64, read, write, CONTINUATION_BIT}; + use crate::endianity::NativeEndian; + use crate::read::{EndianSlice, Error, ReaderOffsetId}; + + trait ResultExt { + fn map_eof(self, input: &[u8]) -> Self; + } + + impl ResultExt for Result { + fn map_eof(self, input: &[u8]) -> Self { + match self { + Err(Error::UnexpectedEof(id)) => { + let id = ReaderOffsetId(id.0 - input.as_ptr() as u64); + Err(Error::UnexpectedEof(id)) + } + r => r, + } + } + } + + #[test] + fn test_low_bits_of_byte() { + for i in 0..127 { + assert_eq!(i, low_bits_of_byte(i)); + assert_eq!(i, low_bits_of_byte(i | CONTINUATION_BIT)); + } + } + + #[test] + fn test_low_bits_of_u64() { + for i in 0u64..127 { + assert_eq!(i as u8, low_bits_of_u64(1 << 16 | i)); + assert_eq!( + i as u8, + low_bits_of_u64(i << 16 | i | (u64::from(CONTINUATION_BIT))) + ); + } + } + + // Examples from the DWARF 4 standard, section 7.6, figure 22. + #[test] + fn test_read_unsigned() { + let buf = [2u8]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + 2, + read::unsigned(&mut readable).expect("Should read number") + ); + + let buf = [127u8]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + 127, + read::unsigned(&mut readable).expect("Should read number") + ); + + let buf = [CONTINUATION_BIT, 1]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + 128, + read::unsigned(&mut readable).expect("Should read number") + ); + + let buf = [1u8 | CONTINUATION_BIT, 1]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + 129, + read::unsigned(&mut readable).expect("Should read number") + ); + + let buf = [2u8 | CONTINUATION_BIT, 1]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + 130, + read::unsigned(&mut readable).expect("Should read number") + ); + + let buf = [57u8 | CONTINUATION_BIT, 100]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + 12857, + read::unsigned(&mut readable).expect("Should read number") + ); + } + + // Examples from the DWARF 4 standard, section 7.6, figure 23. + #[test] + fn test_read_signed() { + let buf = [2u8]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!(2, read::signed(&mut readable).expect("Should read number")); + + let buf = [0x7eu8]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!(-2, read::signed(&mut readable).expect("Should read number")); + + let buf = [127u8 | CONTINUATION_BIT, 0]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + 127, + read::signed(&mut readable).expect("Should read number") + ); + + let buf = [1u8 | CONTINUATION_BIT, 0x7f]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + -127, + read::signed(&mut readable).expect("Should read number") + ); + + let buf = [CONTINUATION_BIT, 1]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + 128, + read::signed(&mut readable).expect("Should read number") + ); + + let buf = [CONTINUATION_BIT, 0x7f]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + -128, + read::signed(&mut readable).expect("Should read number") + ); + + let buf = [1u8 | CONTINUATION_BIT, 1]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + 129, + read::signed(&mut readable).expect("Should read number") + ); + + let buf = [0x7fu8 | CONTINUATION_BIT, 0x7e]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + -129, + read::signed(&mut readable).expect("Should read number") + ); + } + + #[test] + fn test_read_signed_63_bits() { + let buf = [ + CONTINUATION_BIT, + CONTINUATION_BIT, + CONTINUATION_BIT, + CONTINUATION_BIT, + CONTINUATION_BIT, + CONTINUATION_BIT, + CONTINUATION_BIT, + CONTINUATION_BIT, + 0x40, + ]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + -0x4000_0000_0000_0000, + read::signed(&mut readable).expect("Should read number") + ); + } + + #[test] + fn test_read_unsigned_not_enough_data() { + let buf = [CONTINUATION_BIT]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + read::unsigned(&mut readable).map_eof(&buf), + Err(Error::UnexpectedEof(ReaderOffsetId(1))) + ); + } + + #[test] + fn test_read_signed_not_enough_data() { + let buf = [CONTINUATION_BIT]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + read::signed(&mut readable).map_eof(&buf), + Err(Error::UnexpectedEof(ReaderOffsetId(1))) + ); + } + + #[test] + fn test_write_unsigned_not_enough_space() { + let mut buf = [0; 1]; + let mut writable = &mut buf[..]; + match write::unsigned(&mut writable, 128) { + Err(e) => assert_eq!(e.kind(), std::io::ErrorKind::WriteZero), + otherwise => panic!("Unexpected: {:?}", otherwise), + } + } + + #[test] + fn test_write_signed_not_enough_space() { + let mut buf = [0; 1]; + let mut writable = &mut buf[..]; + match write::signed(&mut writable, 128) { + Err(e) => assert_eq!(e.kind(), std::io::ErrorKind::WriteZero), + otherwise => panic!("Unexpected: {:?}", otherwise), + } + } + + #[test] + fn dogfood_signed() { + fn inner(i: i64) { + let mut buf = [0u8; 1024]; + + { + let mut writable = &mut buf[..]; + write::signed(&mut writable, i).expect("Should write signed number"); + } + + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + let result = read::signed(&mut readable).expect("Should be able to read it back again"); + assert_eq!(i, result); + } + for i in -513..513 { + inner(i); + } + inner(core::i64::MIN); + } + + #[test] + fn dogfood_unsigned() { + for i in 0..1025 { + let mut buf = [0u8; 1024]; + + { + let mut writable = &mut buf[..]; + write::unsigned(&mut writable, i).expect("Should write signed number"); + } + + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + let result = + read::unsigned(&mut readable).expect("Should be able to read it back again"); + assert_eq!(i, result); + } + } + + #[test] + fn test_read_unsigned_overflow() { + let buf = [ + 2u8 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 1, + ]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert!(read::unsigned(&mut readable).is_err()); + } + + #[test] + fn test_read_signed_overflow() { + let buf = [ + 2u8 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 2 | CONTINUATION_BIT, + 1, + ]; + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert!(read::signed(&mut readable).is_err()); + } + + #[test] + fn test_read_multiple() { + let buf = [2u8 | CONTINUATION_BIT, 1u8, 1u8]; + + let mut readable = EndianSlice::new(&buf[..], NativeEndian); + assert_eq!( + read::unsigned(&mut readable).expect("Should read first number"), + 130u64 + ); + assert_eq!( + read::unsigned(&mut readable).expect("Should read first number"), + 1u64 + ); + } + + #[test] + fn test_read_u16() { + for (buf, val) in [ + (&[2][..], 2), + (&[0x7f][..], 0x7f), + (&[0x80, 1][..], 0x80), + (&[0x81, 1][..], 0x81), + (&[0x82, 1][..], 0x82), + (&[0xff, 0x7f][..], 0x3fff), + (&[0x80, 0x80, 1][..], 0x4000), + (&[0xff, 0xff, 1][..], 0x7fff), + (&[0xff, 0xff, 3][..], 0xffff), + ] + .iter() + { + let mut readable = EndianSlice::new(buf, NativeEndian); + assert_eq!(*val, read::u16(&mut readable).expect("Should read number")); + } + + for buf in [ + &[0x80][..], + &[0x80, 0x80][..], + &[0x80, 0x80, 4][..], + &[0x80, 0x80, 0x80, 3][..], + ] + .iter() + { + let mut readable = EndianSlice::new(buf, NativeEndian); + assert!(read::u16(&mut readable).is_err(), "{:?}", buf); + } + } +} diff --git a/src/rust/vendor/gimli/src/lib.rs b/src/rust/vendor/gimli/src/lib.rs new file mode 100644 index 000000000..5dea34439 --- /dev/null +++ b/src/rust/vendor/gimli/src/lib.rs @@ -0,0 +1,79 @@ +//! `gimli` is a library for reading and writing the +//! [DWARF debugging format](https://dwarfstd.org/). +//! +//! See the [read](./read/index.html) and [write](./write/index.html) modules +//! for examples and API documentation. +//! +//! ## Cargo Features +//! +//! Cargo features that can be enabled with `gimli`: +//! +//! * `std`: Enabled by default. Use the `std` library. Disabling this feature +//! allows using `gimli` in embedded environments that do not have access to +//! `std`. Note that even when `std` is disabled, `gimli` still requires an +//! implementation of the `alloc` crate. +//! +//! * `read`: Enabled by default. Enables the `read` module. Use of `std` is +//! optional. +//! +//! * `write`: Enabled by default. Enables the `write` module. Always uses +//! the `std` library. +#![deny(missing_docs)] +#![deny(missing_debug_implementations)] +// Selectively enable rust 2018 warnings +#![warn(bare_trait_objects)] +#![warn(unused_extern_crates)] +#![warn(ellipsis_inclusive_range_patterns)] +//#![warn(elided_lifetimes_in_paths)] +#![warn(explicit_outlives_requirements)] +// Style. +#![allow(clippy::bool_to_int_with_if)] +#![allow(clippy::collapsible_else_if)] +#![allow(clippy::comparison_chain)] +#![allow(clippy::manual_range_contains)] +#![allow(clippy::needless_late_init)] +#![allow(clippy::too_many_arguments)] +// False positives with `fallible_iterator`. +#![allow(clippy::should_implement_trait)] +// False positives. +#![allow(clippy::derive_partial_eq_without_eq)] +#![no_std] + +#[allow(unused_imports)] +#[cfg(any(feature = "read", feature = "write"))] +#[macro_use] +extern crate alloc; + +#[cfg(any(feature = "std", feature = "write"))] +#[macro_use] +extern crate std; + +#[cfg(feature = "endian-reader")] +pub use stable_deref_trait::{CloneStableDeref, StableDeref}; + +mod common; +pub use crate::common::*; + +mod arch; +pub use crate::arch::*; + +pub mod constants; +// For backwards compat. +pub use crate::constants::*; + +mod endianity; +pub use crate::endianity::*; + +pub mod leb128; + +#[cfg(feature = "read-core")] +pub mod read; +// For backwards compat. +#[cfg(feature = "read-core")] +pub use crate::read::*; + +#[cfg(feature = "write")] +pub mod write; + +#[cfg(test)] +mod test_util; diff --git a/src/rust/vendor/gimli/src/read/abbrev.rs b/src/rust/vendor/gimli/src/read/abbrev.rs new file mode 100644 index 000000000..1162583b5 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/abbrev.rs @@ -0,0 +1,1102 @@ +//! Functions for parsing DWARF debugging abbreviations. + +use alloc::collections::btree_map; +use alloc::sync::Arc; +use alloc::vec::Vec; +use core::convert::TryFrom; +use core::fmt::{self, Debug}; +use core::iter::FromIterator; +use core::ops::Deref; + +use crate::common::{DebugAbbrevOffset, Encoding, SectionId}; +use crate::constants; +use crate::endianity::Endianity; +use crate::read::{ + DebugInfoUnitHeadersIter, EndianSlice, Error, Reader, ReaderOffset, Result, Section, UnitHeader, +}; + +/// The `DebugAbbrev` struct represents the abbreviations describing +/// `DebuggingInformationEntry`s' attribute names and forms found in the +/// `.debug_abbrev` section. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugAbbrev { + debug_abbrev_section: R, +} + +impl<'input, Endian> DebugAbbrev> +where + Endian: Endianity, +{ + /// Construct a new `DebugAbbrev` instance from the data in the `.debug_abbrev` + /// section. + /// + /// It is the caller's responsibility to read the `.debug_abbrev` section and + /// present it as a `&[u8]` slice. That means using some ELF loader on + /// Linux, a Mach-O loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugAbbrev, LittleEndian}; + /// + /// # let buf = [0x00, 0x01, 0x02, 0x03]; + /// # let read_debug_abbrev_section_somehow = || &buf; + /// let debug_abbrev = DebugAbbrev::new(read_debug_abbrev_section_somehow(), LittleEndian); + /// ``` + pub fn new(debug_abbrev_section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(debug_abbrev_section, endian)) + } +} + +impl DebugAbbrev { + /// Parse the abbreviations at the given `offset` within this + /// `.debug_abbrev` section. + /// + /// The `offset` should generally be retrieved from a unit header. + pub fn abbreviations( + &self, + debug_abbrev_offset: DebugAbbrevOffset, + ) -> Result { + let input = &mut self.debug_abbrev_section.clone(); + input.skip(debug_abbrev_offset.0)?; + Abbreviations::parse(input) + } +} + +impl DebugAbbrev { + /// Create a `DebugAbbrev` section that references the data in `self`. + /// + /// This is useful when `R` implements `Reader` but `T` does not. + /// + /// ## Example Usage + /// + /// ```rust,no_run + /// # let load_section = || unimplemented!(); + /// // Read the DWARF section into a `Vec` with whatever object loader you're using. + /// let owned_section: gimli::DebugAbbrev> = load_section(); + /// // Create a reference to the DWARF section. + /// let section = owned_section.borrow(|section| { + /// gimli::EndianSlice::new(§ion, gimli::LittleEndian) + /// }); + /// ``` + pub fn borrow<'a, F, R>(&'a self, mut borrow: F) -> DebugAbbrev + where + F: FnMut(&'a T) -> R, + { + borrow(&self.debug_abbrev_section).into() + } +} + +impl Section for DebugAbbrev { + fn id() -> SectionId { + SectionId::DebugAbbrev + } + + fn reader(&self) -> &R { + &self.debug_abbrev_section + } +} + +impl From for DebugAbbrev { + fn from(debug_abbrev_section: R) -> Self { + DebugAbbrev { + debug_abbrev_section, + } + } +} + +/// The strategy to use for caching abbreviations. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[non_exhaustive] +pub enum AbbreviationsCacheStrategy { + /// Cache abbreviations that are used more than once. + /// + /// This is useful if the units in the `.debug_info` section will be parsed only once. + Duplicates, + /// Cache all abbreviations. + /// + /// This is useful if the units in the `.debug_info` section will be parsed more than once. + All, +} + +/// A cache of previously parsed `Abbreviations`. +#[derive(Debug, Default)] +pub struct AbbreviationsCache { + abbreviations: btree_map::BTreeMap>>, +} + +impl AbbreviationsCache { + /// Create an empty abbreviations cache. + pub fn new() -> Self { + Self::default() + } + + /// Parse abbreviations and store them in the cache. + /// + /// This will iterate over the given units to determine the abbreviations + /// offsets. Any existing cache entries are discarded. + /// + /// Errors during parsing abbreviations are also stored in the cache. + /// Errors during iterating over the units are ignored. + pub fn populate( + &mut self, + strategy: AbbreviationsCacheStrategy, + debug_abbrev: &DebugAbbrev, + mut units: DebugInfoUnitHeadersIter, + ) { + let mut offsets = Vec::new(); + match strategy { + AbbreviationsCacheStrategy::Duplicates => { + while let Ok(Some(unit)) = units.next() { + offsets.push(unit.debug_abbrev_offset()); + } + offsets.sort_unstable_by_key(|offset| offset.0); + let mut prev_offset = R::Offset::from_u8(0); + let mut count = 0; + offsets.retain(|offset| { + if count == 0 || prev_offset != offset.0 { + prev_offset = offset.0; + count = 1; + } else { + count += 1; + } + count == 2 + }); + } + AbbreviationsCacheStrategy::All => { + while let Ok(Some(unit)) = units.next() { + offsets.push(unit.debug_abbrev_offset()); + } + offsets.sort_unstable_by_key(|offset| offset.0); + offsets.dedup(); + } + } + self.abbreviations = offsets + .into_iter() + .map(|offset| { + ( + offset.0.into_u64(), + debug_abbrev.abbreviations(offset).map(Arc::new), + ) + }) + .collect(); + } + + /// Set an entry in the abbreviations cache. + /// + /// This is only required if you want to manually populate the cache. + pub fn set( + &mut self, + offset: DebugAbbrevOffset, + abbreviations: Arc, + ) { + self.abbreviations + .insert(offset.0.into_u64(), Ok(abbreviations)); + } + + /// Parse the abbreviations at the given offset. + /// + /// This uses the cache if possible, but does not update it. + pub fn get( + &self, + debug_abbrev: &DebugAbbrev, + offset: DebugAbbrevOffset, + ) -> Result> { + match self.abbreviations.get(&offset.0.into_u64()) { + Some(entry) => entry.clone(), + None => debug_abbrev.abbreviations(offset).map(Arc::new), + } + } +} + +/// A set of type abbreviations. +/// +/// Construct an `Abbreviations` instance with the +/// [`abbreviations()`](struct.UnitHeader.html#method.abbreviations) +/// method. +#[derive(Debug, Default, Clone)] +pub struct Abbreviations { + vec: Vec, + map: btree_map::BTreeMap, +} + +impl Abbreviations { + /// Construct a new, empty set of abbreviations. + fn empty() -> Abbreviations { + Abbreviations { + vec: Vec::new(), + map: btree_map::BTreeMap::new(), + } + } + + /// Insert an abbreviation into the set. + /// + /// Returns `Ok` if it is the first abbreviation in the set with its code, + /// `Err` if the code is a duplicate and there already exists an + /// abbreviation in the set with the given abbreviation's code. + fn insert(&mut self, abbrev: Abbreviation) -> ::core::result::Result<(), ()> { + let code_usize = abbrev.code as usize; + if code_usize as u64 == abbrev.code { + // Optimize for sequential abbreviation codes by storing them + // in a Vec, as long as the map doesn't already contain them. + // A potential further optimization would be to allow some + // holes in the Vec, but there's no need for that yet. + if code_usize - 1 < self.vec.len() { + return Err(()); + } else if code_usize - 1 == self.vec.len() { + if !self.map.is_empty() && self.map.contains_key(&abbrev.code) { + return Err(()); + } else { + self.vec.push(abbrev); + return Ok(()); + } + } + } + match self.map.entry(abbrev.code) { + btree_map::Entry::Occupied(_) => Err(()), + btree_map::Entry::Vacant(entry) => { + entry.insert(abbrev); + Ok(()) + } + } + } + + /// Get the abbreviation associated with the given code. + #[inline] + pub fn get(&self, code: u64) -> Option<&Abbreviation> { + if let Ok(code) = usize::try_from(code) { + let index = code.checked_sub(1)?; + if index < self.vec.len() { + return Some(&self.vec[index]); + } + } + + self.map.get(&code) + } + + /// Parse a series of abbreviations, terminated by a null abbreviation. + fn parse(input: &mut R) -> Result { + let mut abbrevs = Abbreviations::empty(); + + while let Some(abbrev) = Abbreviation::parse(input)? { + if abbrevs.insert(abbrev).is_err() { + return Err(Error::DuplicateAbbreviationCode); + } + } + + Ok(abbrevs) + } +} + +/// An abbreviation describes the shape of a `DebuggingInformationEntry`'s type: +/// its code, tag type, whether it has children, and its set of attributes. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Abbreviation { + code: u64, + tag: constants::DwTag, + has_children: constants::DwChildren, + attributes: Attributes, +} + +impl Abbreviation { + /// Construct a new `Abbreviation`. + /// + /// ### Panics + /// + /// Panics if `code` is `0`. + pub(crate) fn new( + code: u64, + tag: constants::DwTag, + has_children: constants::DwChildren, + attributes: Attributes, + ) -> Abbreviation { + assert_ne!(code, 0); + Abbreviation { + code, + tag, + has_children, + attributes, + } + } + + /// Get this abbreviation's code. + #[inline] + pub fn code(&self) -> u64 { + self.code + } + + /// Get this abbreviation's tag. + #[inline] + pub fn tag(&self) -> constants::DwTag { + self.tag + } + + /// Return true if this abbreviation's type has children, false otherwise. + #[inline] + pub fn has_children(&self) -> bool { + self.has_children == constants::DW_CHILDREN_yes + } + + /// Get this abbreviation's attributes. + #[inline] + pub fn attributes(&self) -> &[AttributeSpecification] { + &self.attributes[..] + } + + /// Parse an abbreviation's tag. + fn parse_tag(input: &mut R) -> Result { + let val = input.read_uleb128_u16()?; + if val == 0 { + Err(Error::AbbreviationTagZero) + } else { + Ok(constants::DwTag(val)) + } + } + + /// Parse an abbreviation's "does the type have children?" byte. + fn parse_has_children(input: &mut R) -> Result { + let val = input.read_u8()?; + let val = constants::DwChildren(val); + if val == constants::DW_CHILDREN_no || val == constants::DW_CHILDREN_yes { + Ok(val) + } else { + Err(Error::BadHasChildren) + } + } + + /// Parse a series of attribute specifications, terminated by a null attribute + /// specification. + fn parse_attributes(input: &mut R) -> Result { + let mut attrs = Attributes::new(); + + while let Some(attr) = AttributeSpecification::parse(input)? { + attrs.push(attr); + } + + Ok(attrs) + } + + /// Parse an abbreviation. Return `None` for the null abbreviation, `Some` + /// for an actual abbreviation. + fn parse(input: &mut R) -> Result> { + let code = input.read_uleb128()?; + if code == 0 { + return Ok(None); + } + + let tag = Self::parse_tag(input)?; + let has_children = Self::parse_has_children(input)?; + let attributes = Self::parse_attributes(input)?; + let abbrev = Abbreviation::new(code, tag, has_children, attributes); + Ok(Some(abbrev)) + } +} + +/// A list of attributes found in an `Abbreviation` +#[derive(Clone)] +pub(crate) enum Attributes { + Inline { + buf: [AttributeSpecification; MAX_ATTRIBUTES_INLINE], + len: usize, + }, + Heap(Vec), +} + +// Length of 5 based on benchmark results for both x86-64 and i686. +const MAX_ATTRIBUTES_INLINE: usize = 5; + +impl Attributes { + /// Returns a new empty list of attributes + fn new() -> Attributes { + let default = + AttributeSpecification::new(constants::DW_AT_null, constants::DW_FORM_null, None); + Attributes::Inline { + buf: [default; 5], + len: 0, + } + } + + /// Pushes a new value onto this list of attributes. + fn push(&mut self, attr: AttributeSpecification) { + match self { + Attributes::Heap(list) => list.push(attr), + Attributes::Inline { + buf, + len: MAX_ATTRIBUTES_INLINE, + } => { + let mut list = buf.to_vec(); + list.push(attr); + *self = Attributes::Heap(list); + } + Attributes::Inline { buf, len } => { + buf[*len] = attr; + *len += 1; + } + } + } +} + +impl Debug for Attributes { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + (**self).fmt(f) + } +} + +impl PartialEq for Attributes { + fn eq(&self, other: &Attributes) -> bool { + **self == **other + } +} + +impl Eq for Attributes {} + +impl Deref for Attributes { + type Target = [AttributeSpecification]; + fn deref(&self) -> &[AttributeSpecification] { + match self { + Attributes::Inline { buf, len } => &buf[..*len], + Attributes::Heap(list) => list, + } + } +} + +impl FromIterator for Attributes { + fn from_iter(iter: I) -> Attributes + where + I: IntoIterator, + { + let mut list = Attributes::new(); + for item in iter { + list.push(item); + } + list + } +} + +impl From> for Attributes { + fn from(list: Vec) -> Attributes { + Attributes::Heap(list) + } +} + +/// The description of an attribute in an abbreviated type. It is a pair of name +/// and form. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct AttributeSpecification { + name: constants::DwAt, + form: constants::DwForm, + implicit_const_value: i64, +} + +impl AttributeSpecification { + /// Construct a new `AttributeSpecification` from the given name and form + /// and implicit const value. + #[inline] + pub fn new( + name: constants::DwAt, + form: constants::DwForm, + implicit_const_value: Option, + ) -> AttributeSpecification { + debug_assert!( + (form == constants::DW_FORM_implicit_const && implicit_const_value.is_some()) + || (form != constants::DW_FORM_implicit_const && implicit_const_value.is_none()) + ); + AttributeSpecification { + name, + form, + implicit_const_value: implicit_const_value.unwrap_or(0), + } + } + + /// Get the attribute's name. + #[inline] + pub fn name(&self) -> constants::DwAt { + self.name + } + + /// Get the attribute's form. + #[inline] + pub fn form(&self) -> constants::DwForm { + self.form + } + + /// Get the attribute's implicit const value. + #[inline] + pub fn implicit_const_value(&self) -> Option { + if self.form == constants::DW_FORM_implicit_const { + Some(self.implicit_const_value) + } else { + None + } + } + + /// Return the size of the attribute, in bytes. + /// + /// Note that because some attributes are variably sized, the size cannot + /// always be known without parsing, in which case we return `None`. + pub fn size(&self, header: &UnitHeader) -> Option { + get_attribute_size(self.form, header.encoding()).map(usize::from) + } + + /// Parse an attribute's form. + fn parse_form(input: &mut R) -> Result { + let val = input.read_uleb128_u16()?; + if val == 0 { + Err(Error::AttributeFormZero) + } else { + Ok(constants::DwForm(val)) + } + } + + /// Parse an attribute specification. Returns `None` for the null attribute + /// specification, `Some` for an actual attribute specification. + fn parse(input: &mut R) -> Result> { + let name = input.read_uleb128_u16()?; + if name == 0 { + // Parse the null attribute specification. + let form = input.read_uleb128_u16()?; + return if form == 0 { + Ok(None) + } else { + Err(Error::ExpectedZero) + }; + } + + let name = constants::DwAt(name); + let form = Self::parse_form(input)?; + let implicit_const_value = if form == constants::DW_FORM_implicit_const { + Some(input.read_sleb128()?) + } else { + None + }; + let spec = AttributeSpecification::new(name, form, implicit_const_value); + Ok(Some(spec)) + } +} + +#[inline] +pub(crate) fn get_attribute_size(form: constants::DwForm, encoding: Encoding) -> Option { + match form { + constants::DW_FORM_addr => Some(encoding.address_size), + + constants::DW_FORM_implicit_const | constants::DW_FORM_flag_present => Some(0), + + constants::DW_FORM_data1 + | constants::DW_FORM_flag + | constants::DW_FORM_strx1 + | constants::DW_FORM_ref1 + | constants::DW_FORM_addrx1 => Some(1), + + constants::DW_FORM_data2 + | constants::DW_FORM_ref2 + | constants::DW_FORM_addrx2 + | constants::DW_FORM_strx2 => Some(2), + + constants::DW_FORM_addrx3 | constants::DW_FORM_strx3 => Some(3), + + constants::DW_FORM_data4 + | constants::DW_FORM_ref_sup4 + | constants::DW_FORM_ref4 + | constants::DW_FORM_strx4 + | constants::DW_FORM_addrx4 => Some(4), + + constants::DW_FORM_data8 + | constants::DW_FORM_ref8 + | constants::DW_FORM_ref_sig8 + | constants::DW_FORM_ref_sup8 => Some(8), + + constants::DW_FORM_data16 => Some(16), + + constants::DW_FORM_sec_offset + | constants::DW_FORM_GNU_ref_alt + | constants::DW_FORM_strp + | constants::DW_FORM_strp_sup + | constants::DW_FORM_GNU_strp_alt + | constants::DW_FORM_line_strp => Some(encoding.format.word_size()), + + constants::DW_FORM_ref_addr => { + // This is an offset, but DWARF version 2 specifies that DW_FORM_ref_addr + // has the same size as an address on the target system. This was changed + // in DWARF version 3. + Some(if encoding.version == 2 { + encoding.address_size + } else { + encoding.format.word_size() + }) + } + + // Variably sized forms. + constants::DW_FORM_block + | constants::DW_FORM_block1 + | constants::DW_FORM_block2 + | constants::DW_FORM_block4 + | constants::DW_FORM_exprloc + | constants::DW_FORM_ref_udata + | constants::DW_FORM_string + | constants::DW_FORM_sdata + | constants::DW_FORM_udata + | constants::DW_FORM_indirect => None, + + // We don't know the size of unknown forms. + _ => None, + } +} + +#[cfg(test)] +pub mod tests { + use super::*; + use crate::constants; + use crate::endianity::LittleEndian; + use crate::read::{EndianSlice, Error}; + use crate::test_util::GimliSectionMethods; + #[cfg(target_pointer_width = "32")] + use core::u32; + use test_assembler::Section; + + pub trait AbbrevSectionMethods { + fn abbrev(self, code: u64, tag: constants::DwTag, children: constants::DwChildren) -> Self; + fn abbrev_null(self) -> Self; + fn abbrev_attr(self, name: constants::DwAt, form: constants::DwForm) -> Self; + fn abbrev_attr_implicit_const(self, name: constants::DwAt, value: i64) -> Self; + fn abbrev_attr_null(self) -> Self; + } + + impl AbbrevSectionMethods for Section { + fn abbrev(self, code: u64, tag: constants::DwTag, children: constants::DwChildren) -> Self { + self.uleb(code).uleb(tag.0.into()).D8(children.0) + } + + fn abbrev_null(self) -> Self { + self.D8(0) + } + + fn abbrev_attr(self, name: constants::DwAt, form: constants::DwForm) -> Self { + self.uleb(name.0.into()).uleb(form.0.into()) + } + + fn abbrev_attr_implicit_const(self, name: constants::DwAt, value: i64) -> Self { + self.uleb(name.0.into()) + .uleb(constants::DW_FORM_implicit_const.0.into()) + .sleb(value) + } + + fn abbrev_attr_null(self) -> Self { + self.D8(0).D8(0) + } + } + + #[test] + fn test_debug_abbrev_ok() { + let extra_start = [1, 2, 3, 4]; + let expected_rest = [5, 6, 7, 8]; + #[rustfmt::skip] + let buf = Section::new() + .append_bytes(&extra_start) + .abbrev(2, constants::DW_TAG_subprogram, constants::DW_CHILDREN_no) + .abbrev_attr(constants::DW_AT_name, constants::DW_FORM_string) + .abbrev_attr_null() + .abbrev(1, constants::DW_TAG_compile_unit, constants::DW_CHILDREN_yes) + .abbrev_attr(constants::DW_AT_producer, constants::DW_FORM_strp) + .abbrev_attr(constants::DW_AT_language, constants::DW_FORM_data2) + .abbrev_attr_null() + .abbrev_null() + .append_bytes(&expected_rest) + .get_contents() + .unwrap(); + + let abbrev1 = Abbreviation::new( + 1, + constants::DW_TAG_compile_unit, + constants::DW_CHILDREN_yes, + vec![ + AttributeSpecification::new( + constants::DW_AT_producer, + constants::DW_FORM_strp, + None, + ), + AttributeSpecification::new( + constants::DW_AT_language, + constants::DW_FORM_data2, + None, + ), + ] + .into(), + ); + + let abbrev2 = Abbreviation::new( + 2, + constants::DW_TAG_subprogram, + constants::DW_CHILDREN_no, + vec![AttributeSpecification::new( + constants::DW_AT_name, + constants::DW_FORM_string, + None, + )] + .into(), + ); + + let debug_abbrev = DebugAbbrev::new(&buf, LittleEndian); + let debug_abbrev_offset = DebugAbbrevOffset(extra_start.len()); + let abbrevs = debug_abbrev + .abbreviations(debug_abbrev_offset) + .expect("Should parse abbreviations"); + assert_eq!(abbrevs.get(1), Some(&abbrev1)); + assert_eq!(abbrevs.get(2), Some(&abbrev2)); + } + + #[test] + fn test_abbreviations_insert() { + fn abbrev(code: u16) -> Abbreviation { + Abbreviation::new( + code.into(), + constants::DwTag(code), + constants::DW_CHILDREN_no, + vec![].into(), + ) + } + + fn assert_abbrev(abbrevs: &Abbreviations, code: u16) { + let abbrev = abbrevs.get(code.into()).unwrap(); + assert_eq!(abbrev.tag(), constants::DwTag(code)); + } + + // Sequential insert. + let mut abbrevs = Abbreviations::empty(); + abbrevs.insert(abbrev(1)).unwrap(); + abbrevs.insert(abbrev(2)).unwrap(); + assert_eq!(abbrevs.vec.len(), 2); + assert!(abbrevs.map.is_empty()); + assert_abbrev(&abbrevs, 1); + assert_abbrev(&abbrevs, 2); + + // Out of order insert. + let mut abbrevs = Abbreviations::empty(); + abbrevs.insert(abbrev(2)).unwrap(); + abbrevs.insert(abbrev(3)).unwrap(); + assert!(abbrevs.vec.is_empty()); + assert_abbrev(&abbrevs, 2); + assert_abbrev(&abbrevs, 3); + + // Mixed order insert. + let mut abbrevs = Abbreviations::empty(); + abbrevs.insert(abbrev(1)).unwrap(); + abbrevs.insert(abbrev(3)).unwrap(); + abbrevs.insert(abbrev(2)).unwrap(); + assert_eq!(abbrevs.vec.len(), 2); + assert_abbrev(&abbrevs, 1); + assert_abbrev(&abbrevs, 2); + assert_abbrev(&abbrevs, 3); + + // Duplicate code in vec. + let mut abbrevs = Abbreviations::empty(); + abbrevs.insert(abbrev(1)).unwrap(); + abbrevs.insert(abbrev(2)).unwrap(); + assert_eq!(abbrevs.insert(abbrev(1)), Err(())); + assert_eq!(abbrevs.insert(abbrev(2)), Err(())); + + // Duplicate code in map when adding to map. + let mut abbrevs = Abbreviations::empty(); + abbrevs.insert(abbrev(2)).unwrap(); + assert_eq!(abbrevs.insert(abbrev(2)), Err(())); + + // Duplicate code in map when adding to vec. + let mut abbrevs = Abbreviations::empty(); + abbrevs.insert(abbrev(2)).unwrap(); + abbrevs.insert(abbrev(1)).unwrap(); + assert_eq!(abbrevs.insert(abbrev(2)), Err(())); + + // 32-bit usize conversions. + let mut abbrevs = Abbreviations::empty(); + abbrevs.insert(abbrev(2)).unwrap(); + } + + #[test] + #[cfg(target_pointer_width = "32")] + fn test_abbreviations_insert_32() { + fn abbrev(code: u64) -> Abbreviation { + Abbreviation::new( + code, + constants::DwTag(code as u16), + constants::DW_CHILDREN_no, + vec![].into(), + ) + } + + fn assert_abbrev(abbrevs: &Abbreviations, code: u64) { + let abbrev = abbrevs.get(code).unwrap(); + assert_eq!(abbrev.tag(), constants::DwTag(code as u16)); + } + + let mut abbrevs = Abbreviations::empty(); + abbrevs.insert(abbrev(1)).unwrap(); + + let wrap_code = (u32::MAX as u64 + 1) + 1; + // `get` should not treat the wrapped code as `1`. + assert_eq!(abbrevs.get(wrap_code), None); + // `insert` should not treat the wrapped code as `1`. + abbrevs.insert(abbrev(wrap_code)).unwrap(); + assert_abbrev(&abbrevs, 1); + assert_abbrev(&abbrevs, wrap_code); + } + + #[test] + fn test_parse_abbreviations_ok() { + let expected_rest = [1, 2, 3, 4]; + #[rustfmt::skip] + let buf = Section::new() + .abbrev(2, constants::DW_TAG_subprogram, constants::DW_CHILDREN_no) + .abbrev_attr(constants::DW_AT_name, constants::DW_FORM_string) + .abbrev_attr_null() + .abbrev(1, constants::DW_TAG_compile_unit, constants::DW_CHILDREN_yes) + .abbrev_attr(constants::DW_AT_producer, constants::DW_FORM_strp) + .abbrev_attr(constants::DW_AT_language, constants::DW_FORM_data2) + .abbrev_attr_null() + .abbrev_null() + .append_bytes(&expected_rest) + .get_contents() + .unwrap(); + let rest = &mut EndianSlice::new(&*buf, LittleEndian); + + let abbrev1 = Abbreviation::new( + 1, + constants::DW_TAG_compile_unit, + constants::DW_CHILDREN_yes, + vec![ + AttributeSpecification::new( + constants::DW_AT_producer, + constants::DW_FORM_strp, + None, + ), + AttributeSpecification::new( + constants::DW_AT_language, + constants::DW_FORM_data2, + None, + ), + ] + .into(), + ); + + let abbrev2 = Abbreviation::new( + 2, + constants::DW_TAG_subprogram, + constants::DW_CHILDREN_no, + vec![AttributeSpecification::new( + constants::DW_AT_name, + constants::DW_FORM_string, + None, + )] + .into(), + ); + + let abbrevs = Abbreviations::parse(rest).expect("Should parse abbreviations"); + assert_eq!(abbrevs.get(1), Some(&abbrev1)); + assert_eq!(abbrevs.get(2), Some(&abbrev2)); + assert_eq!(*rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_abbreviations_duplicate() { + let expected_rest = [1, 2, 3, 4]; + #[rustfmt::skip] + let buf = Section::new() + .abbrev(1, constants::DW_TAG_subprogram, constants::DW_CHILDREN_no) + .abbrev_attr(constants::DW_AT_name, constants::DW_FORM_string) + .abbrev_attr_null() + .abbrev(1, constants::DW_TAG_compile_unit, constants::DW_CHILDREN_yes) + .abbrev_attr(constants::DW_AT_producer, constants::DW_FORM_strp) + .abbrev_attr(constants::DW_AT_language, constants::DW_FORM_data2) + .abbrev_attr_null() + .abbrev_null() + .append_bytes(&expected_rest) + .get_contents() + .unwrap(); + let buf = &mut EndianSlice::new(&*buf, LittleEndian); + + match Abbreviations::parse(buf) { + Err(Error::DuplicateAbbreviationCode) => {} + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_abbreviation_tag_ok() { + let buf = [0x01, 0x02]; + let rest = &mut EndianSlice::new(&buf, LittleEndian); + let tag = Abbreviation::parse_tag(rest).expect("Should parse tag"); + assert_eq!(tag, constants::DW_TAG_array_type); + assert_eq!(*rest, EndianSlice::new(&buf[1..], LittleEndian)); + } + + #[test] + fn test_parse_abbreviation_tag_zero() { + let buf = [0x00]; + let buf = &mut EndianSlice::new(&buf, LittleEndian); + match Abbreviation::parse_tag(buf) { + Err(Error::AbbreviationTagZero) => {} + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_abbreviation_has_children() { + let buf = [0x00, 0x01, 0x02]; + let rest = &mut EndianSlice::new(&buf, LittleEndian); + let val = Abbreviation::parse_has_children(rest).expect("Should parse children"); + assert_eq!(val, constants::DW_CHILDREN_no); + let val = Abbreviation::parse_has_children(rest).expect("Should parse children"); + assert_eq!(val, constants::DW_CHILDREN_yes); + match Abbreviation::parse_has_children(rest) { + Err(Error::BadHasChildren) => {} + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_abbreviation_ok() { + let expected_rest = [0x01, 0x02, 0x03, 0x04]; + let buf = Section::new() + .abbrev(1, constants::DW_TAG_subprogram, constants::DW_CHILDREN_no) + .abbrev_attr(constants::DW_AT_name, constants::DW_FORM_string) + .abbrev_attr_null() + .append_bytes(&expected_rest) + .get_contents() + .unwrap(); + let rest = &mut EndianSlice::new(&*buf, LittleEndian); + + let expect = Some(Abbreviation::new( + 1, + constants::DW_TAG_subprogram, + constants::DW_CHILDREN_no, + vec![AttributeSpecification::new( + constants::DW_AT_name, + constants::DW_FORM_string, + None, + )] + .into(), + )); + + let abbrev = Abbreviation::parse(rest).expect("Should parse abbreviation"); + assert_eq!(abbrev, expect); + assert_eq!(*rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_abbreviation_implicit_const_ok() { + let expected_rest = [0x01, 0x02, 0x03, 0x04]; + let buf = Section::new() + .abbrev(1, constants::DW_TAG_subprogram, constants::DW_CHILDREN_no) + .abbrev_attr_implicit_const(constants::DW_AT_name, -42) + .abbrev_attr_null() + .append_bytes(&expected_rest) + .get_contents() + .unwrap(); + let rest = &mut EndianSlice::new(&*buf, LittleEndian); + + let expect = Some(Abbreviation::new( + 1, + constants::DW_TAG_subprogram, + constants::DW_CHILDREN_no, + vec![AttributeSpecification::new( + constants::DW_AT_name, + constants::DW_FORM_implicit_const, + Some(-42), + )] + .into(), + )); + + let abbrev = Abbreviation::parse(rest).expect("Should parse abbreviation"); + assert_eq!(abbrev, expect); + assert_eq!(*rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_abbreviation_implicit_const_no_const() { + let buf = Section::new() + .abbrev(1, constants::DW_TAG_subprogram, constants::DW_CHILDREN_no) + .abbrev_attr(constants::DW_AT_name, constants::DW_FORM_implicit_const) + .get_contents() + .unwrap(); + let buf = &mut EndianSlice::new(&*buf, LittleEndian); + + match Abbreviation::parse(buf) { + Err(Error::UnexpectedEof(_)) => {} + otherwise => panic!("Unexpected result: {:?}", otherwise), + } + } + + #[test] + fn test_parse_null_abbreviation_ok() { + let expected_rest = [0x01, 0x02, 0x03, 0x04]; + let buf = Section::new() + .abbrev_null() + .append_bytes(&expected_rest) + .get_contents() + .unwrap(); + let rest = &mut EndianSlice::new(&*buf, LittleEndian); + + let abbrev = Abbreviation::parse(rest).expect("Should parse null abbreviation"); + assert!(abbrev.is_none()); + assert_eq!(*rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_attribute_form_ok() { + let buf = [0x01, 0x02]; + let rest = &mut EndianSlice::new(&buf, LittleEndian); + let tag = AttributeSpecification::parse_form(rest).expect("Should parse form"); + assert_eq!(tag, constants::DW_FORM_addr); + assert_eq!(*rest, EndianSlice::new(&buf[1..], LittleEndian)); + } + + #[test] + fn test_parse_attribute_form_zero() { + let buf = [0x00]; + let buf = &mut EndianSlice::new(&buf, LittleEndian); + match AttributeSpecification::parse_form(buf) { + Err(Error::AttributeFormZero) => {} + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_null_attribute_specification_ok() { + let buf = [0x00, 0x00, 0x01]; + let rest = &mut EndianSlice::new(&buf, LittleEndian); + let attr = + AttributeSpecification::parse(rest).expect("Should parse null attribute specification"); + assert!(attr.is_none()); + assert_eq!(*rest, EndianSlice::new(&buf[2..], LittleEndian)); + } + + #[test] + fn test_parse_attribute_specifications_name_zero() { + let buf = [0x00, 0x01, 0x00, 0x00]; + let buf = &mut EndianSlice::new(&buf, LittleEndian); + match AttributeSpecification::parse(buf) { + Err(Error::ExpectedZero) => {} + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_attribute_specifications_form_zero() { + let buf = [0x01, 0x00, 0x00, 0x00]; + let buf = &mut EndianSlice::new(&buf, LittleEndian); + match AttributeSpecification::parse(buf) { + Err(Error::AttributeFormZero) => {} + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_get_abbrev_zero() { + let mut abbrevs = Abbreviations::empty(); + abbrevs + .insert(Abbreviation::new( + 1, + constants::DwTag(1), + constants::DW_CHILDREN_no, + vec![].into(), + )) + .unwrap(); + assert!(abbrevs.get(0).is_none()); + } +} diff --git a/src/rust/vendor/gimli/src/read/addr.rs b/src/rust/vendor/gimli/src/read/addr.rs new file mode 100644 index 000000000..593f9fe3c --- /dev/null +++ b/src/rust/vendor/gimli/src/read/addr.rs @@ -0,0 +1,128 @@ +use crate::common::{DebugAddrBase, DebugAddrIndex, SectionId}; +use crate::read::{Reader, ReaderOffset, Result, Section}; + +/// The raw contents of the `.debug_addr` section. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugAddr { + section: R, +} + +impl DebugAddr { + // TODO: add an iterator over the sets of addresses in the section. + // This is not needed for common usage of the section though. + + /// Returns the address at the given `base` and `index`. + /// + /// A set of addresses in the `.debug_addr` section consists of a header + /// followed by a series of addresses. + /// + /// The `base` must be the `DW_AT_addr_base` value from the compilation unit DIE. + /// This is an offset that points to the first address following the header. + /// + /// The `index` is the value of a `DW_FORM_addrx` attribute. + /// + /// The `address_size` must be the size of the address for the compilation unit. + /// This value must also match the header. However, note that we do not parse the + /// header to validate this, since locating the header is unreliable, and the GNU + /// extensions do not emit it. + pub fn get_address( + &self, + address_size: u8, + base: DebugAddrBase, + index: DebugAddrIndex, + ) -> Result { + let input = &mut self.section.clone(); + input.skip(base.0)?; + input.skip(R::Offset::from_u64( + index.0.into_u64() * u64::from(address_size), + )?)?; + input.read_address(address_size) + } +} + +impl DebugAddr { + /// Create a `DebugAddr` section that references the data in `self`. + /// + /// This is useful when `R` implements `Reader` but `T` does not. + /// + /// ## Example Usage + /// + /// ```rust,no_run + /// # let load_section = || unimplemented!(); + /// // Read the DWARF section into a `Vec` with whatever object loader you're using. + /// let owned_section: gimli::DebugAddr> = load_section(); + /// // Create a reference to the DWARF section. + /// let section = owned_section.borrow(|section| { + /// gimli::EndianSlice::new(§ion, gimli::LittleEndian) + /// }); + /// ``` + pub fn borrow<'a, F, R>(&'a self, mut borrow: F) -> DebugAddr + where + F: FnMut(&'a T) -> R, + { + borrow(&self.section).into() + } +} + +impl Section for DebugAddr { + fn id() -> SectionId { + SectionId::DebugAddr + } + + fn reader(&self) -> &R { + &self.section + } +} + +impl From for DebugAddr { + fn from(section: R) -> Self { + DebugAddr { section } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::read::EndianSlice; + use crate::test_util::GimliSectionMethods; + use crate::{Format, LittleEndian}; + use test_assembler::{Endian, Label, LabelMaker, Section}; + + #[test] + fn test_get_address() { + for format in vec![Format::Dwarf32, Format::Dwarf64] { + for address_size in vec![4, 8] { + let zero = Label::new(); + let length = Label::new(); + let start = Label::new(); + let first = Label::new(); + let end = Label::new(); + let mut section = Section::with_endian(Endian::Little) + .mark(&zero) + .initial_length(format, &length, &start) + .D16(5) + .D8(address_size) + .D8(0) + .mark(&first); + for i in 0..20 { + section = section.word(address_size, 1000 + i); + } + section = section.mark(&end); + length.set_const((&end - &start) as u64); + + let section = section.get_contents().unwrap(); + let debug_addr = DebugAddr::from(EndianSlice::new(§ion, LittleEndian)); + let base = DebugAddrBase((&first - &zero) as usize); + + assert_eq!( + debug_addr.get_address(address_size, base, DebugAddrIndex(0)), + Ok(1000) + ); + assert_eq!( + debug_addr.get_address(address_size, base, DebugAddrIndex(19)), + Ok(1019) + ); + } + } + } +} diff --git a/src/rust/vendor/gimli/src/read/aranges.rs b/src/rust/vendor/gimli/src/read/aranges.rs new file mode 100644 index 000000000..83159b69b --- /dev/null +++ b/src/rust/vendor/gimli/src/read/aranges.rs @@ -0,0 +1,660 @@ +use crate::common::{DebugArangesOffset, DebugInfoOffset, Encoding, SectionId}; +use crate::endianity::Endianity; +use crate::read::{EndianSlice, Error, Range, Reader, ReaderOffset, Result, Section}; + +/// The `DebugAranges` struct represents the DWARF address range information +/// found in the `.debug_aranges` section. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugAranges { + section: R, +} + +impl<'input, Endian> DebugAranges> +where + Endian: Endianity, +{ + /// Construct a new `DebugAranges` instance from the data in the `.debug_aranges` + /// section. + /// + /// It is the caller's responsibility to read the `.debug_aranges` section and + /// present it as a `&[u8]` slice. That means using some ELF loader on + /// Linux, a Mach-O loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugAranges, LittleEndian}; + /// + /// # let buf = []; + /// # let read_debug_aranges_section = || &buf; + /// let debug_aranges = + /// DebugAranges::new(read_debug_aranges_section(), LittleEndian); + /// ``` + pub fn new(section: &'input [u8], endian: Endian) -> Self { + DebugAranges { + section: EndianSlice::new(section, endian), + } + } +} + +impl DebugAranges { + /// Iterate the sets of entries in the `.debug_aranges` section. + /// + /// Each set of entries belongs to a single unit. + pub fn headers(&self) -> ArangeHeaderIter { + ArangeHeaderIter { + input: self.section.clone(), + offset: DebugArangesOffset(R::Offset::from_u8(0)), + } + } + + /// Get the header at the given offset. + pub fn header(&self, offset: DebugArangesOffset) -> Result> { + let mut input = self.section.clone(); + input.skip(offset.0)?; + ArangeHeader::parse(&mut input, offset) + } +} + +impl DebugAranges { + /// Create a `DebugAranges` section that references the data in `self`. + /// + /// This is useful when `R` implements `Reader` but `T` does not. + /// + /// ## Example Usage + /// + /// ```rust,no_run + /// # let load_section = || unimplemented!(); + /// // Read the DWARF section into a `Vec` with whatever object loader you're using. + /// let owned_section: gimli::DebugAranges> = load_section(); + /// // Create a reference to the DWARF section. + /// let section = owned_section.borrow(|section| { + /// gimli::EndianSlice::new(§ion, gimli::LittleEndian) + /// }); + /// ``` + pub fn borrow<'a, F, R>(&'a self, mut borrow: F) -> DebugAranges + where + F: FnMut(&'a T) -> R, + { + borrow(&self.section).into() + } +} + +impl Section for DebugAranges { + fn id() -> SectionId { + SectionId::DebugAranges + } + + fn reader(&self) -> &R { + &self.section + } +} + +impl From for DebugAranges { + fn from(section: R) -> Self { + DebugAranges { section } + } +} + +/// An iterator over the headers of a `.debug_aranges` section. +#[derive(Clone, Debug)] +pub struct ArangeHeaderIter { + input: R, + offset: DebugArangesOffset, +} + +impl ArangeHeaderIter { + /// Advance the iterator to the next header. + pub fn next(&mut self) -> Result>> { + if self.input.is_empty() { + return Ok(None); + } + + let len = self.input.len(); + match ArangeHeader::parse(&mut self.input, self.offset) { + Ok(header) => { + self.offset.0 += len - self.input.len(); + Ok(Some(header)) + } + Err(e) => { + self.input.empty(); + Err(e) + } + } + } +} + +#[cfg(feature = "fallible-iterator")] +impl fallible_iterator::FallibleIterator for ArangeHeaderIter { + type Item = ArangeHeader; + type Error = Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + ArangeHeaderIter::next(self) + } +} + +/// A header for a set of entries in the `.debug_arange` section. +/// +/// These entries all belong to a single unit. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ArangeHeader::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + offset: DebugArangesOffset, + encoding: Encoding, + length: Offset, + debug_info_offset: DebugInfoOffset, + segment_size: u8, + entries: R, +} + +impl ArangeHeader +where + R: Reader, + Offset: ReaderOffset, +{ + fn parse(input: &mut R, offset: DebugArangesOffset) -> Result { + let (length, format) = input.read_initial_length()?; + let mut rest = input.split(length)?; + + // Check the version. The DWARF 5 spec says that this is always 2, but version 3 + // has been observed in the wild, potentially due to a bug; see + // https://github.com/gimli-rs/gimli/issues/559 for more information. + // lldb allows versions 2 through 5, possibly by mistake. + let version = rest.read_u16()?; + if version != 2 && version != 3 { + return Err(Error::UnknownVersion(u64::from(version))); + } + + let debug_info_offset = rest.read_offset(format).map(DebugInfoOffset)?; + let address_size = rest.read_u8()?; + let segment_size = rest.read_u8()?; + + // unit_length + version + offset + address_size + segment_size + let header_length = format.initial_length_size() + 2 + format.word_size() + 1 + 1; + + // The first tuple following the header in each set begins at an offset that is + // a multiple of the size of a single tuple (that is, the size of a segment selector + // plus twice the size of an address). + let tuple_length = address_size + .checked_mul(2) + .and_then(|x| x.checked_add(segment_size)) + .ok_or(Error::InvalidAddressRange)?; + if tuple_length == 0 { + return Err(Error::InvalidAddressRange)?; + } + let padding = if header_length % tuple_length == 0 { + 0 + } else { + tuple_length - header_length % tuple_length + }; + rest.skip(R::Offset::from_u8(padding))?; + + let encoding = Encoding { + format, + version, + address_size, + // TODO: segment_size + }; + Ok(ArangeHeader { + offset, + encoding, + length, + debug_info_offset, + segment_size, + entries: rest, + }) + } + + /// Return the offset of this header within the `.debug_aranges` section. + #[inline] + pub fn offset(&self) -> DebugArangesOffset { + self.offset + } + + /// Return the length of this set of entries, including the header. + #[inline] + pub fn length(&self) -> Offset { + self.length + } + + /// Return the encoding parameters for this set of entries. + #[inline] + pub fn encoding(&self) -> Encoding { + self.encoding + } + + /// Return the segment size for this set of entries. + #[inline] + pub fn segment_size(&self) -> u8 { + self.segment_size + } + + /// Return the offset into the .debug_info section for this set of arange entries. + #[inline] + pub fn debug_info_offset(&self) -> DebugInfoOffset { + self.debug_info_offset + } + + /// Return the arange entries in this set. + #[inline] + pub fn entries(&self) -> ArangeEntryIter { + ArangeEntryIter { + input: self.entries.clone(), + encoding: self.encoding, + segment_size: self.segment_size, + } + } +} + +/// An iterator over the aranges from a `.debug_aranges` section. +/// +/// Can be [used with +/// `FallibleIterator`](./index.html#using-with-fallibleiterator). +#[derive(Debug, Clone)] +pub struct ArangeEntryIter { + input: R, + encoding: Encoding, + segment_size: u8, +} + +impl ArangeEntryIter { + /// Advance the iterator and return the next arange. + /// + /// Returns the newly parsed arange as `Ok(Some(arange))`. Returns `Ok(None)` + /// when iteration is complete and all aranges have already been parsed and + /// yielded. If an error occurs while parsing the next arange, then this error + /// is returned as `Err(e)`, and all subsequent calls return `Ok(None)`. + pub fn next(&mut self) -> Result> { + if self.input.is_empty() { + return Ok(None); + } + + match ArangeEntry::parse(&mut self.input, self.encoding, self.segment_size) { + Ok(Some(entry)) => Ok(Some(entry)), + Ok(None) => { + self.input.empty(); + Ok(None) + } + Err(e) => { + self.input.empty(); + Err(e) + } + } + } +} + +#[cfg(feature = "fallible-iterator")] +impl fallible_iterator::FallibleIterator for ArangeEntryIter { + type Item = ArangeEntry; + type Error = Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + ArangeEntryIter::next(self) + } +} + +/// A single parsed arange. +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +pub struct ArangeEntry { + segment: Option, + address: u64, + length: u64, +} + +impl ArangeEntry { + /// Parse a single arange. Return `None` for the null arange, `Some` for an actual arange. + fn parse( + input: &mut R, + encoding: Encoding, + segment_size: u8, + ) -> Result> { + let address_size = encoding.address_size; + + let tuple_length = R::Offset::from_u8(2 * address_size + segment_size); + if tuple_length > input.len() { + input.empty(); + return Ok(None); + } + + let segment = if segment_size != 0 { + input.read_address(segment_size)? + } else { + 0 + }; + let address = input.read_address(address_size)?; + let length = input.read_address(address_size)?; + + match (segment, address, length) { + // This is meant to be a null terminator, but in practice it can occur + // before the end, possibly due to a linker omitting a function and + // leaving an unrelocated entry. + (0, 0, 0) => Self::parse(input, encoding, segment_size), + _ => Ok(Some(ArangeEntry { + segment: if segment_size != 0 { + Some(segment) + } else { + None + }, + address, + length, + })), + } + } + + /// Return the segment selector of this arange. + #[inline] + pub fn segment(&self) -> Option { + self.segment + } + + /// Return the beginning address of this arange. + #[inline] + pub fn address(&self) -> u64 { + self.address + } + + /// Return the length of this arange. + #[inline] + pub fn length(&self) -> u64 { + self.length + } + + /// Return the range. + #[inline] + pub fn range(&self) -> Range { + Range { + begin: self.address, + end: self.address.wrapping_add(self.length), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::common::{DebugInfoOffset, Format}; + use crate::endianity::LittleEndian; + use crate::read::EndianSlice; + + #[test] + fn test_iterate_headers() { + #[rustfmt::skip] + let buf = [ + // 32-bit length = 28. + 0x1c, 0x00, 0x00, 0x00, + // Version. + 0x02, 0x00, + // Offset. + 0x01, 0x02, 0x03, 0x04, + // Address size. + 0x04, + // Segment size. + 0x00, + // Dummy padding and arange tuples. + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + // 32-bit length = 36. + 0x24, 0x00, 0x00, 0x00, + // Version. + 0x02, 0x00, + // Offset. + 0x11, 0x12, 0x13, 0x14, + // Address size. + 0x04, + // Segment size. + 0x00, + // Dummy padding and arange tuples. + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ]; + + let debug_aranges = DebugAranges::new(&buf, LittleEndian); + let mut headers = debug_aranges.headers(); + + let header = headers + .next() + .expect("should parse header ok") + .expect("should have a header"); + assert_eq!(header.offset(), DebugArangesOffset(0)); + assert_eq!(header.debug_info_offset(), DebugInfoOffset(0x0403_0201)); + + let header = headers + .next() + .expect("should parse header ok") + .expect("should have a header"); + assert_eq!(header.offset(), DebugArangesOffset(0x20)); + assert_eq!(header.debug_info_offset(), DebugInfoOffset(0x1413_1211)); + } + + #[test] + fn test_parse_header_ok() { + #[rustfmt::skip] + let buf = [ + // 32-bit length = 32. + 0x20, 0x00, 0x00, 0x00, + // Version. + 0x02, 0x00, + // Offset. + 0x01, 0x02, 0x03, 0x04, + // Address size. + 0x08, + // Segment size. + 0x04, + // Length to here = 12, tuple length = 20. + // Padding to tuple length multiple = 4. + 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + + // Dummy arange tuple data. + 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + + // Dummy next arange. + 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + ]; + + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + let header = + ArangeHeader::parse(rest, DebugArangesOffset(0x10)).expect("should parse header ok"); + + assert_eq!( + *rest, + EndianSlice::new(&buf[buf.len() - 16..], LittleEndian) + ); + assert_eq!( + header, + ArangeHeader { + offset: DebugArangesOffset(0x10), + encoding: Encoding { + format: Format::Dwarf32, + version: 2, + address_size: 8, + }, + length: 0x20, + debug_info_offset: DebugInfoOffset(0x0403_0201), + segment_size: 4, + entries: EndianSlice::new(&buf[buf.len() - 32..buf.len() - 16], LittleEndian), + } + ); + } + + #[test] + fn test_parse_header_overflow_error() { + #[rustfmt::skip] + let buf = [ + // 32-bit length = 32. + 0x20, 0x00, 0x00, 0x00, + // Version. + 0x02, 0x00, + // Offset. + 0x01, 0x02, 0x03, 0x04, + // Address size. + 0xff, + // Segment size. + 0xff, + // Length to here = 12, tuple length = 20. + // Padding to tuple length multiple = 4. + 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + + // Dummy arange tuple data. + 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + + // Dummy next arange. + 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + ]; + + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + let error = ArangeHeader::parse(rest, DebugArangesOffset(0x10)) + .expect_err("should fail to parse header"); + assert_eq!(error, Error::InvalidAddressRange); + } + + #[test] + fn test_parse_header_div_by_zero_error() { + #[rustfmt::skip] + let buf = [ + // 32-bit length = 32. + 0x20, 0x00, 0x00, 0x00, + // Version. + 0x02, 0x00, + // Offset. + 0x01, 0x02, 0x03, 0x04, + // Address size = 0. Could cause a division by zero if we aren't + // careful. + 0x00, + // Segment size. + 0x00, + // Length to here = 12, tuple length = 20. + // Padding to tuple length multiple = 4. + 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + + // Dummy arange tuple data. + 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + + // Dummy next arange. + 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + ]; + + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + let error = ArangeHeader::parse(rest, DebugArangesOffset(0x10)) + .expect_err("should fail to parse header"); + assert_eq!(error, Error::InvalidAddressRange); + } + + #[test] + fn test_parse_entry_ok() { + let encoding = Encoding { + format: Format::Dwarf32, + version: 2, + address_size: 4, + }; + let segment_size = 0; + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09]; + let rest = &mut EndianSlice::new(&buf, LittleEndian); + let entry = + ArangeEntry::parse(rest, encoding, segment_size).expect("should parse entry ok"); + assert_eq!(*rest, EndianSlice::new(&buf[buf.len() - 1..], LittleEndian)); + assert_eq!( + entry, + Some(ArangeEntry { + segment: None, + address: 0x0403_0201, + length: 0x0807_0605, + }) + ); + } + + #[test] + fn test_parse_entry_segment() { + let encoding = Encoding { + format: Format::Dwarf32, + version: 2, + address_size: 4, + }; + let segment_size = 8; + #[rustfmt::skip] + let buf = [ + // Segment. + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + // Address. + 0x01, 0x02, 0x03, 0x04, + // Length. + 0x05, 0x06, 0x07, 0x08, + // Next tuple. + 0x09 + ]; + let rest = &mut EndianSlice::new(&buf, LittleEndian); + let entry = + ArangeEntry::parse(rest, encoding, segment_size).expect("should parse entry ok"); + assert_eq!(*rest, EndianSlice::new(&buf[buf.len() - 1..], LittleEndian)); + assert_eq!( + entry, + Some(ArangeEntry { + segment: Some(0x1817_1615_1413_1211), + address: 0x0403_0201, + length: 0x0807_0605, + }) + ); + } + + #[test] + fn test_parse_entry_zero() { + let encoding = Encoding { + format: Format::Dwarf32, + version: 2, + address_size: 4, + }; + let segment_size = 0; + #[rustfmt::skip] + let buf = [ + // Zero tuple. + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Address. + 0x01, 0x02, 0x03, 0x04, + // Length. + 0x05, 0x06, 0x07, 0x08, + // Next tuple. + 0x09 + ]; + let rest = &mut EndianSlice::new(&buf, LittleEndian); + let entry = + ArangeEntry::parse(rest, encoding, segment_size).expect("should parse entry ok"); + assert_eq!(*rest, EndianSlice::new(&buf[buf.len() - 1..], LittleEndian)); + assert_eq!( + entry, + Some(ArangeEntry { + segment: None, + address: 0x0403_0201, + length: 0x0807_0605, + }) + ); + } +} diff --git a/src/rust/vendor/gimli/src/read/cfi.rs b/src/rust/vendor/gimli/src/read/cfi.rs new file mode 100644 index 000000000..d92c8b250 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/cfi.rs @@ -0,0 +1,7823 @@ +#[cfg(feature = "read")] +use alloc::boxed::Box; + +use core::cmp::{Ord, Ordering}; +use core::fmt::{self, Debug}; +use core::iter::FromIterator; +use core::mem; +use core::num::Wrapping; + +use super::util::{ArrayLike, ArrayVec}; +use crate::common::{ + DebugFrameOffset, EhFrameOffset, Encoding, Format, Register, SectionId, Vendor, +}; +use crate::constants::{self, DwEhPe}; +use crate::endianity::Endianity; +use crate::read::{ + EndianSlice, Error, Expression, Reader, ReaderOffset, Result, Section, StoreOnHeap, +}; + +/// `DebugFrame` contains the `.debug_frame` section's frame unwinding +/// information required to unwind to and recover registers from older frames on +/// the stack. For example, this is useful for a debugger that wants to print +/// locals in a backtrace. +/// +/// Most interesting methods are defined in the +/// [`UnwindSection`](trait.UnwindSection.html) trait. +/// +/// ### Differences between `.debug_frame` and `.eh_frame` +/// +/// While the `.debug_frame` section's information has a lot of overlap with the +/// `.eh_frame` section's information, the `.eh_frame` information tends to only +/// encode the subset of information needed for exception handling. Often, only +/// one of `.eh_frame` or `.debug_frame` will be present in an object file. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct DebugFrame { + section: R, + address_size: u8, + segment_size: u8, + vendor: Vendor, +} + +impl DebugFrame { + /// Set the size of a target address in bytes. + /// + /// This defaults to the native word size. + /// This is only used if the CIE version is less than 4. + pub fn set_address_size(&mut self, address_size: u8) { + self.address_size = address_size + } + + /// Set the size of a segment selector in bytes. + /// + /// This defaults to 0. + /// This is only used if the CIE version is less than 4. + pub fn set_segment_size(&mut self, segment_size: u8) { + self.segment_size = segment_size + } + + /// Set the vendor extensions to use. + /// + /// This defaults to `Vendor::Default`. + pub fn set_vendor(&mut self, vendor: Vendor) { + self.vendor = vendor; + } +} + +impl<'input, Endian> DebugFrame> +where + Endian: Endianity, +{ + /// Construct a new `DebugFrame` instance from the data in the + /// `.debug_frame` section. + /// + /// It is the caller's responsibility to read the section and present it as + /// a `&[u8]` slice. That means using some ELF loader on Linux, a Mach-O + /// loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugFrame, NativeEndian}; + /// + /// // Use with `.debug_frame` + /// # let buf = [0x00, 0x01, 0x02, 0x03]; + /// # let read_debug_frame_section_somehow = || &buf; + /// let debug_frame = DebugFrame::new(read_debug_frame_section_somehow(), NativeEndian); + /// ``` + pub fn new(section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(section, endian)) + } +} + +impl Section for DebugFrame { + fn id() -> SectionId { + SectionId::DebugFrame + } + + fn reader(&self) -> &R { + &self.section + } +} + +impl From for DebugFrame { + fn from(section: R) -> Self { + // Default to no segments and native word size. + DebugFrame { + section, + address_size: mem::size_of::() as u8, + segment_size: 0, + vendor: Vendor::Default, + } + } +} + +/// `EhFrameHdr` contains the information about the `.eh_frame_hdr` section. +/// +/// A pointer to the start of the `.eh_frame` data, and optionally, a binary +/// search table of pointers to the `.eh_frame` records that are found in this section. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct EhFrameHdr(R); + +/// `ParsedEhFrameHdr` contains the parsed information from the `.eh_frame_hdr` section. +#[derive(Clone, Debug)] +pub struct ParsedEhFrameHdr { + address_size: u8, + section: R, + + eh_frame_ptr: Pointer, + fde_count: u64, + table_enc: DwEhPe, + table: R, +} + +impl<'input, Endian> EhFrameHdr> +where + Endian: Endianity, +{ + /// Constructs a new `EhFrameHdr` instance from the data in the `.eh_frame_hdr` section. + pub fn new(section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(section, endian)) + } +} + +impl EhFrameHdr { + /// Parses this `EhFrameHdr` to a `ParsedEhFrameHdr`. + pub fn parse(&self, bases: &BaseAddresses, address_size: u8) -> Result> { + let mut reader = self.0.clone(); + let version = reader.read_u8()?; + if version != 1 { + return Err(Error::UnknownVersion(u64::from(version))); + } + + let eh_frame_ptr_enc = parse_pointer_encoding(&mut reader)?; + let fde_count_enc = parse_pointer_encoding(&mut reader)?; + let table_enc = parse_pointer_encoding(&mut reader)?; + + let parameters = PointerEncodingParameters { + bases: &bases.eh_frame_hdr, + func_base: None, + address_size, + section: &self.0, + }; + + // Omitting this pointer is not valid (defeats the purpose of .eh_frame_hdr entirely) + if eh_frame_ptr_enc == constants::DW_EH_PE_omit { + return Err(Error::CannotParseOmitPointerEncoding); + } + let eh_frame_ptr = parse_encoded_pointer(eh_frame_ptr_enc, ¶meters, &mut reader)?; + + let fde_count; + if fde_count_enc == constants::DW_EH_PE_omit || table_enc == constants::DW_EH_PE_omit { + fde_count = 0 + } else { + fde_count = parse_encoded_pointer(fde_count_enc, ¶meters, &mut reader)?.direct()?; + } + + Ok(ParsedEhFrameHdr { + address_size, + section: self.0.clone(), + + eh_frame_ptr, + fde_count, + table_enc, + table: reader, + }) + } +} + +impl Section for EhFrameHdr { + fn id() -> SectionId { + SectionId::EhFrameHdr + } + + fn reader(&self) -> &R { + &self.0 + } +} + +impl From for EhFrameHdr { + fn from(section: R) -> Self { + EhFrameHdr(section) + } +} + +impl ParsedEhFrameHdr { + /// Returns the address of the binary's `.eh_frame` section. + pub fn eh_frame_ptr(&self) -> Pointer { + self.eh_frame_ptr + } + + /// Retrieves the CFI binary search table, if there is one. + pub fn table(&self) -> Option> { + // There are two big edge cases here: + // * You search the table for an invalid address. As this is just a binary + // search table, we always have to return a valid result for that (unless + // you specify an address that is lower than the first address in the + // table). Since this means that you have to recheck that the FDE contains + // your address anyways, we just return the first FDE even when the address + // is too low. After all, we're just doing a normal binary search. + // * This falls apart when the table is empty - there is no entry we could + // return. We conclude that an empty table is not really a table at all. + if self.fde_count == 0 { + None + } else { + Some(EhHdrTable { hdr: self }) + } + } +} + +/// An iterator for `.eh_frame_hdr` section's binary search table. +/// +/// Each table entry consists of a tuple containing an `initial_location` and `address`. +/// The `initial location` represents the first address that the targeted FDE +/// is able to decode. The `address` is the address of the FDE in the `.eh_frame` section. +/// The `address` can be converted with `EhHdrTable::pointer_to_offset` and `EhFrame::fde_from_offset` to an FDE. +#[derive(Debug)] +pub struct EhHdrTableIter<'a, 'bases, R: Reader> { + hdr: &'a ParsedEhFrameHdr, + table: R, + bases: &'bases BaseAddresses, + remain: u64, +} + +impl<'a, 'bases, R: Reader> EhHdrTableIter<'a, 'bases, R> { + /// Yield the next entry in the `EhHdrTableIter`. + pub fn next(&mut self) -> Result> { + if self.remain == 0 { + return Ok(None); + } + + let parameters = PointerEncodingParameters { + bases: &self.bases.eh_frame_hdr, + func_base: None, + address_size: self.hdr.address_size, + section: &self.hdr.section, + }; + + self.remain -= 1; + let from = parse_encoded_pointer(self.hdr.table_enc, ¶meters, &mut self.table)?; + let to = parse_encoded_pointer(self.hdr.table_enc, ¶meters, &mut self.table)?; + Ok(Some((from, to))) + } + /// Yield the nth entry in the `EhHdrTableIter` + pub fn nth(&mut self, n: usize) -> Result> { + use core::convert::TryFrom; + let size = match self.hdr.table_enc.format() { + constants::DW_EH_PE_uleb128 | constants::DW_EH_PE_sleb128 => { + return Err(Error::VariableLengthSearchTable); + } + constants::DW_EH_PE_sdata2 | constants::DW_EH_PE_udata2 => 2, + constants::DW_EH_PE_sdata4 | constants::DW_EH_PE_udata4 => 4, + constants::DW_EH_PE_sdata8 | constants::DW_EH_PE_udata8 => 8, + _ => return Err(Error::UnknownPointerEncoding), + }; + + let row_size = size * 2; + let n = u64::try_from(n).map_err(|_| Error::UnsupportedOffset)?; + self.remain = self.remain.saturating_sub(n); + self.table.skip(R::Offset::from_u64(n * row_size)?)?; + self.next() + } +} + +#[cfg(feature = "fallible-iterator")] +impl<'a, 'bases, R: Reader> fallible_iterator::FallibleIterator for EhHdrTableIter<'a, 'bases, R> { + type Item = (Pointer, Pointer); + type Error = Error; + fn next(&mut self) -> Result> { + EhHdrTableIter::next(self) + } + + fn size_hint(&self) -> (usize, Option) { + use core::convert::TryInto; + ( + self.remain.try_into().unwrap_or(0), + self.remain.try_into().ok(), + ) + } + + fn nth(&mut self, n: usize) -> Result> { + EhHdrTableIter::nth(self, n) + } +} + +/// The CFI binary search table that is an optional part of the `.eh_frame_hdr` section. +#[derive(Debug, Clone)] +pub struct EhHdrTable<'a, R: Reader> { + hdr: &'a ParsedEhFrameHdr, +} + +impl<'a, R: Reader + 'a> EhHdrTable<'a, R> { + /// Return an iterator that can walk the `.eh_frame_hdr` table. + /// + /// Each table entry consists of a tuple containing an `initial_location` and `address`. + /// The `initial location` represents the first address that the targeted FDE + /// is able to decode. The `address` is the address of the FDE in the `.eh_frame` section. + /// The `address` can be converted with `EhHdrTable::pointer_to_offset` and `EhFrame::fde_from_offset` to an FDE. + pub fn iter<'bases>(&self, bases: &'bases BaseAddresses) -> EhHdrTableIter<'_, 'bases, R> { + EhHdrTableIter { + hdr: self.hdr, + bases, + remain: self.hdr.fde_count, + table: self.hdr.table.clone(), + } + } + /// *Probably* returns a pointer to the FDE for the given address. + /// + /// This performs a binary search, so if there is no FDE for the given address, + /// this function **will** return a pointer to any other FDE that's close by. + /// + /// To be sure, you **must** call `contains` on the FDE. + pub fn lookup(&self, address: u64, bases: &BaseAddresses) -> Result { + let size = match self.hdr.table_enc.format() { + constants::DW_EH_PE_uleb128 | constants::DW_EH_PE_sleb128 => { + return Err(Error::VariableLengthSearchTable); + } + constants::DW_EH_PE_sdata2 | constants::DW_EH_PE_udata2 => 2, + constants::DW_EH_PE_sdata4 | constants::DW_EH_PE_udata4 => 4, + constants::DW_EH_PE_sdata8 | constants::DW_EH_PE_udata8 => 8, + _ => return Err(Error::UnknownPointerEncoding), + }; + + let row_size = size * 2; + + let mut len = self.hdr.fde_count; + + let mut reader = self.hdr.table.clone(); + + let parameters = PointerEncodingParameters { + bases: &bases.eh_frame_hdr, + func_base: None, + address_size: self.hdr.address_size, + section: &self.hdr.section, + }; + + while len > 1 { + let head = reader.split(R::Offset::from_u64((len / 2) * row_size)?)?; + let tail = reader.clone(); + + let pivot = + parse_encoded_pointer(self.hdr.table_enc, ¶meters, &mut reader)?.direct()?; + + match pivot.cmp(&address) { + Ordering::Equal => { + reader = tail; + break; + } + Ordering::Less => { + reader = tail; + len = len - (len / 2); + } + Ordering::Greater => { + reader = head; + len /= 2; + } + } + } + + reader.skip(R::Offset::from_u64(size)?)?; + + parse_encoded_pointer(self.hdr.table_enc, ¶meters, &mut reader) + } + + /// Convert a `Pointer` to a section offset. + /// + /// This does not support indirect pointers. + pub fn pointer_to_offset(&self, ptr: Pointer) -> Result> { + let ptr = ptr.direct()?; + let eh_frame_ptr = self.hdr.eh_frame_ptr().direct()?; + + // Calculate the offset in the EhFrame section + R::Offset::from_u64(ptr - eh_frame_ptr).map(EhFrameOffset) + } + + /// Returns a parsed FDE for the given address, or `NoUnwindInfoForAddress` + /// if there are none. + /// + /// You must provide a function to get its associated CIE. See + /// `PartialFrameDescriptionEntry::parse` for more information. + /// + /// # Example + /// + /// ``` + /// # use gimli::{BaseAddresses, EhFrame, ParsedEhFrameHdr, EndianSlice, NativeEndian, Error, UnwindSection}; + /// # fn foo() -> Result<(), Error> { + /// # let eh_frame: EhFrame> = unreachable!(); + /// # let eh_frame_hdr: ParsedEhFrameHdr> = unimplemented!(); + /// # let addr = 0; + /// # let bases = unimplemented!(); + /// let table = eh_frame_hdr.table().unwrap(); + /// let fde = table.fde_for_address(&eh_frame, &bases, addr, EhFrame::cie_from_offset)?; + /// # Ok(()) + /// # } + /// ``` + pub fn fde_for_address( + &self, + frame: &EhFrame, + bases: &BaseAddresses, + address: u64, + get_cie: F, + ) -> Result> + where + F: FnMut( + &EhFrame, + &BaseAddresses, + EhFrameOffset, + ) -> Result>, + { + let fdeptr = self.lookup(address, bases)?; + let offset = self.pointer_to_offset(fdeptr)?; + let entry = frame.fde_from_offset(bases, offset, get_cie)?; + if entry.contains(address) { + Ok(entry) + } else { + Err(Error::NoUnwindInfoForAddress) + } + } + + #[inline] + #[doc(hidden)] + #[deprecated(note = "Method renamed to fde_for_address; use that instead.")] + pub fn lookup_and_parse( + &self, + address: u64, + bases: &BaseAddresses, + frame: EhFrame, + get_cie: F, + ) -> Result> + where + F: FnMut( + &EhFrame, + &BaseAddresses, + EhFrameOffset, + ) -> Result>, + { + self.fde_for_address(&frame, bases, address, get_cie) + } + + /// Returns the frame unwind information for the given address, + /// or `NoUnwindInfoForAddress` if there are none. + /// + /// You must provide a function to get the associated CIE. See + /// `PartialFrameDescriptionEntry::parse` for more information. + pub fn unwind_info_for_address<'ctx, F, A: UnwindContextStorage>( + &self, + frame: &EhFrame, + bases: &BaseAddresses, + ctx: &'ctx mut UnwindContext, + address: u64, + get_cie: F, + ) -> Result<&'ctx UnwindTableRow> + where + F: FnMut( + &EhFrame, + &BaseAddresses, + EhFrameOffset, + ) -> Result>, + { + let fde = self.fde_for_address(frame, bases, address, get_cie)?; + fde.unwind_info_for_address(frame, bases, ctx, address) + } +} + +/// `EhFrame` contains the frame unwinding information needed during exception +/// handling found in the `.eh_frame` section. +/// +/// Most interesting methods are defined in the +/// [`UnwindSection`](trait.UnwindSection.html) trait. +/// +/// See +/// [`DebugFrame`](./struct.DebugFrame.html#differences-between-debug_frame-and-eh_frame) +/// for some discussion on the differences between `.debug_frame` and +/// `.eh_frame`. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct EhFrame { + section: R, + address_size: u8, + vendor: Vendor, +} + +impl EhFrame { + /// Set the size of a target address in bytes. + /// + /// This defaults to the native word size. + pub fn set_address_size(&mut self, address_size: u8) { + self.address_size = address_size + } + + /// Set the vendor extensions to use. + /// + /// This defaults to `Vendor::Default`. + pub fn set_vendor(&mut self, vendor: Vendor) { + self.vendor = vendor; + } +} + +impl<'input, Endian> EhFrame> +where + Endian: Endianity, +{ + /// Construct a new `EhFrame` instance from the data in the + /// `.eh_frame` section. + /// + /// It is the caller's responsibility to read the section and present it as + /// a `&[u8]` slice. That means using some ELF loader on Linux, a Mach-O + /// loader on macOS, etc. + /// + /// ``` + /// use gimli::{EhFrame, EndianSlice, NativeEndian}; + /// + /// // Use with `.eh_frame` + /// # let buf = [0x00, 0x01, 0x02, 0x03]; + /// # let read_eh_frame_section_somehow = || &buf; + /// let eh_frame = EhFrame::new(read_eh_frame_section_somehow(), NativeEndian); + /// ``` + pub fn new(section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(section, endian)) + } +} + +impl Section for EhFrame { + fn id() -> SectionId { + SectionId::EhFrame + } + + fn reader(&self) -> &R { + &self.section + } +} + +impl From for EhFrame { + fn from(section: R) -> Self { + // Default to native word size. + EhFrame { + section, + address_size: mem::size_of::() as u8, + vendor: Vendor::Default, + } + } +} + +// This has to be `pub` to silence a warning (that is deny(..)'d by default) in +// rustc. Eventually, not having this `pub` will become a hard error. +#[doc(hidden)] +#[allow(missing_docs)] +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum CieOffsetEncoding { + U32, + U64, +} + +/// An offset into an `UnwindSection`. +// +// Needed to avoid conflicting implementations of `Into`. +pub trait UnwindOffset: Copy + Debug + Eq + From +where + T: ReaderOffset, +{ + /// Convert an `UnwindOffset` into a `T`. + fn into(self) -> T; +} + +impl UnwindOffset for DebugFrameOffset +where + T: ReaderOffset, +{ + #[inline] + fn into(self) -> T { + self.0 + } +} + +impl UnwindOffset for EhFrameOffset +where + T: ReaderOffset, +{ + #[inline] + fn into(self) -> T { + self.0 + } +} + +/// This trait completely encapsulates everything that is different between +/// `.eh_frame` and `.debug_frame`, as well as all the bits that can change +/// between DWARF versions. +#[doc(hidden)] +pub trait _UnwindSectionPrivate { + /// Get the underlying section data. + fn section(&self) -> &R; + + /// Returns true if the given length value should be considered an + /// end-of-entries sentinel. + fn length_value_is_end_of_entries(length: R::Offset) -> bool; + + /// Return true if the given offset if the CIE sentinel, false otherwise. + fn is_cie(format: Format, id: u64) -> bool; + + /// Return the CIE offset/ID encoding used by this unwind section with the + /// given DWARF format. + fn cie_offset_encoding(format: Format) -> CieOffsetEncoding; + + /// For `.eh_frame`, CIE offsets are relative to the current position. For + /// `.debug_frame`, they are relative to the start of the section. We always + /// internally store them relative to the section, so we handle translating + /// `.eh_frame`'s relative offsets in this method. If the offset calculation + /// underflows, return `None`. + fn resolve_cie_offset(&self, base: R::Offset, offset: R::Offset) -> Option; + + /// Does this version of this unwind section encode address and segment + /// sizes in its CIEs? + fn has_address_and_segment_sizes(version: u8) -> bool; + + /// The address size to use if `has_address_and_segment_sizes` returns false. + fn address_size(&self) -> u8; + + /// The segment size to use if `has_address_and_segment_sizes` returns false. + fn segment_size(&self) -> u8; + + /// The vendor extensions to use. + fn vendor(&self) -> Vendor; +} + +/// A section holding unwind information: either `.debug_frame` or +/// `.eh_frame`. See [`DebugFrame`](./struct.DebugFrame.html) and +/// [`EhFrame`](./struct.EhFrame.html) respectively. +pub trait UnwindSection: Clone + Debug + _UnwindSectionPrivate { + /// The offset type associated with this CFI section. Either + /// `DebugFrameOffset` or `EhFrameOffset`. + type Offset: UnwindOffset; + + /// Iterate over the `CommonInformationEntry`s and `FrameDescriptionEntry`s + /// in this `.debug_frame` section. + /// + /// Can be [used with + /// `FallibleIterator`](./index.html#using-with-fallibleiterator). + fn entries<'bases>(&self, bases: &'bases BaseAddresses) -> CfiEntriesIter<'bases, Self, R> { + CfiEntriesIter { + section: self.clone(), + bases, + input: self.section().clone(), + } + } + + /// Parse the `CommonInformationEntry` at the given offset. + fn cie_from_offset( + &self, + bases: &BaseAddresses, + offset: Self::Offset, + ) -> Result> { + let offset = UnwindOffset::into(offset); + let input = &mut self.section().clone(); + input.skip(offset)?; + CommonInformationEntry::parse(bases, self, input) + } + + /// Parse the `PartialFrameDescriptionEntry` at the given offset. + fn partial_fde_from_offset<'bases>( + &self, + bases: &'bases BaseAddresses, + offset: Self::Offset, + ) -> Result> { + let offset = UnwindOffset::into(offset); + let input = &mut self.section().clone(); + input.skip(offset)?; + PartialFrameDescriptionEntry::parse_partial(self, bases, input) + } + + /// Parse the `FrameDescriptionEntry` at the given offset. + fn fde_from_offset( + &self, + bases: &BaseAddresses, + offset: Self::Offset, + get_cie: F, + ) -> Result> + where + F: FnMut(&Self, &BaseAddresses, Self::Offset) -> Result>, + { + let partial = self.partial_fde_from_offset(bases, offset)?; + partial.parse(get_cie) + } + + /// Find the `FrameDescriptionEntry` for the given address. + /// + /// If found, the FDE is returned. If not found, + /// `Err(gimli::Error::NoUnwindInfoForAddress)` is returned. + /// If parsing fails, the error is returned. + /// + /// You must provide a function to get its associated CIE. See + /// `PartialFrameDescriptionEntry::parse` for more information. + /// + /// Note: this iterates over all FDEs. If available, it is possible + /// to do a binary search with `EhFrameHdr::fde_for_address` instead. + fn fde_for_address( + &self, + bases: &BaseAddresses, + address: u64, + mut get_cie: F, + ) -> Result> + where + F: FnMut(&Self, &BaseAddresses, Self::Offset) -> Result>, + { + let mut entries = self.entries(bases); + while let Some(entry) = entries.next()? { + match entry { + CieOrFde::Cie(_) => {} + CieOrFde::Fde(partial) => { + let fde = partial.parse(&mut get_cie)?; + if fde.contains(address) { + return Ok(fde); + } + } + } + } + Err(Error::NoUnwindInfoForAddress) + } + + /// Find the frame unwind information for the given address. + /// + /// If found, the unwind information is returned. If not found, + /// `Err(gimli::Error::NoUnwindInfoForAddress)` is returned. If parsing or + /// CFI evaluation fails, the error is returned. + /// + /// ``` + /// use gimli::{BaseAddresses, EhFrame, EndianSlice, NativeEndian, UnwindContext, + /// UnwindSection}; + /// + /// # fn foo() -> gimli::Result<()> { + /// # let read_eh_frame_section = || unimplemented!(); + /// // Get the `.eh_frame` section from the object file. Alternatively, + /// // use `EhFrame` with the `.eh_frame` section of the object file. + /// let eh_frame = EhFrame::new(read_eh_frame_section(), NativeEndian); + /// + /// # let get_frame_pc = || unimplemented!(); + /// // Get the address of the PC for a frame you'd like to unwind. + /// let address = get_frame_pc(); + /// + /// // This context is reusable, which cuts down on heap allocations. + /// let ctx = UnwindContext::new(); + /// + /// // Optionally provide base addresses for any relative pointers. If a + /// // base address isn't provided and a pointer is found that is relative to + /// // it, we will return an `Err`. + /// # let address_of_text_section_in_memory = unimplemented!(); + /// # let address_of_got_section_in_memory = unimplemented!(); + /// let bases = BaseAddresses::default() + /// .set_text(address_of_text_section_in_memory) + /// .set_got(address_of_got_section_in_memory); + /// + /// let unwind_info = eh_frame.unwind_info_for_address( + /// &bases, + /// &mut ctx, + /// address, + /// EhFrame::cie_from_offset, + /// )?; + /// + /// # let do_stuff_with = |_| unimplemented!(); + /// do_stuff_with(unwind_info); + /// # let _ = ctx; + /// # unreachable!() + /// # } + /// ``` + #[inline] + fn unwind_info_for_address<'ctx, F, A: UnwindContextStorage>( + &self, + bases: &BaseAddresses, + ctx: &'ctx mut UnwindContext, + address: u64, + get_cie: F, + ) -> Result<&'ctx UnwindTableRow> + where + F: FnMut(&Self, &BaseAddresses, Self::Offset) -> Result>, + { + let fde = self.fde_for_address(bases, address, get_cie)?; + fde.unwind_info_for_address(self, bases, ctx, address) + } +} + +impl _UnwindSectionPrivate for DebugFrame { + fn section(&self) -> &R { + &self.section + } + + fn length_value_is_end_of_entries(_: R::Offset) -> bool { + false + } + + fn is_cie(format: Format, id: u64) -> bool { + match format { + Format::Dwarf32 => id == 0xffff_ffff, + Format::Dwarf64 => id == 0xffff_ffff_ffff_ffff, + } + } + + fn cie_offset_encoding(format: Format) -> CieOffsetEncoding { + match format { + Format::Dwarf32 => CieOffsetEncoding::U32, + Format::Dwarf64 => CieOffsetEncoding::U64, + } + } + + fn resolve_cie_offset(&self, _: R::Offset, offset: R::Offset) -> Option { + Some(offset) + } + + fn has_address_and_segment_sizes(version: u8) -> bool { + version == 4 + } + + fn address_size(&self) -> u8 { + self.address_size + } + + fn segment_size(&self) -> u8 { + self.segment_size + } + + fn vendor(&self) -> Vendor { + self.vendor + } +} + +impl UnwindSection for DebugFrame { + type Offset = DebugFrameOffset; +} + +impl _UnwindSectionPrivate for EhFrame { + fn section(&self) -> &R { + &self.section + } + + fn length_value_is_end_of_entries(length: R::Offset) -> bool { + length.into_u64() == 0 + } + + fn is_cie(_: Format, id: u64) -> bool { + id == 0 + } + + fn cie_offset_encoding(_format: Format) -> CieOffsetEncoding { + // `.eh_frame` offsets are always 4 bytes, regardless of the DWARF + // format. + CieOffsetEncoding::U32 + } + + fn resolve_cie_offset(&self, base: R::Offset, offset: R::Offset) -> Option { + base.checked_sub(offset) + } + + fn has_address_and_segment_sizes(_version: u8) -> bool { + false + } + + fn address_size(&self) -> u8 { + self.address_size + } + + fn segment_size(&self) -> u8 { + 0 + } + + fn vendor(&self) -> Vendor { + self.vendor + } +} + +impl UnwindSection for EhFrame { + type Offset = EhFrameOffset; +} + +/// Optional base addresses for the relative `DW_EH_PE_*` encoded pointers. +/// +/// During CIE/FDE parsing, if a relative pointer is encountered for a base +/// address that is unknown, an Err will be returned. +/// +/// ``` +/// use gimli::BaseAddresses; +/// +/// # fn foo() { +/// # let address_of_eh_frame_hdr_section_in_memory = unimplemented!(); +/// # let address_of_eh_frame_section_in_memory = unimplemented!(); +/// # let address_of_text_section_in_memory = unimplemented!(); +/// # let address_of_got_section_in_memory = unimplemented!(); +/// # let address_of_the_start_of_current_func = unimplemented!(); +/// let bases = BaseAddresses::default() +/// .set_eh_frame_hdr(address_of_eh_frame_hdr_section_in_memory) +/// .set_eh_frame(address_of_eh_frame_section_in_memory) +/// .set_text(address_of_text_section_in_memory) +/// .set_got(address_of_got_section_in_memory); +/// # let _ = bases; +/// # } +/// ``` +#[derive(Clone, Default, Debug, PartialEq, Eq)] +pub struct BaseAddresses { + /// The base addresses to use for pointers in the `.eh_frame_hdr` section. + pub eh_frame_hdr: SectionBaseAddresses, + + /// The base addresses to use for pointers in the `.eh_frame` section. + pub eh_frame: SectionBaseAddresses, +} + +/// Optional base addresses for the relative `DW_EH_PE_*` encoded pointers +/// in a particular section. +/// +/// See `BaseAddresses` for methods that are helpful in setting these addresses. +#[derive(Clone, Default, Debug, PartialEq, Eq)] +pub struct SectionBaseAddresses { + /// The address of the section containing the pointer. + pub section: Option, + + /// The base address for text relative pointers. + /// This is generally the address of the `.text` section. + pub text: Option, + + /// The base address for data relative pointers. + /// + /// For pointers in the `.eh_frame_hdr` section, this is the address + /// of the `.eh_frame_hdr` section + /// + /// For pointers in the `.eh_frame` section, this is generally the + /// global pointer, such as the address of the `.got` section. + pub data: Option, +} + +impl BaseAddresses { + /// Set the `.eh_frame_hdr` section base address. + #[inline] + pub fn set_eh_frame_hdr(mut self, addr: u64) -> Self { + self.eh_frame_hdr.section = Some(addr); + self.eh_frame_hdr.data = Some(addr); + self + } + + /// Set the `.eh_frame` section base address. + #[inline] + pub fn set_eh_frame(mut self, addr: u64) -> Self { + self.eh_frame.section = Some(addr); + self + } + + /// Set the `.text` section base address. + #[inline] + pub fn set_text(mut self, addr: u64) -> Self { + self.eh_frame_hdr.text = Some(addr); + self.eh_frame.text = Some(addr); + self + } + + /// Set the `.got` section base address. + #[inline] + pub fn set_got(mut self, addr: u64) -> Self { + self.eh_frame.data = Some(addr); + self + } +} + +/// An iterator over CIE and FDE entries in a `.debug_frame` or `.eh_frame` +/// section. +/// +/// Some pointers may be encoded relative to various base addresses. Use the +/// [`BaseAddresses`](./struct.BaseAddresses.html) parameter to provide them. By +/// default, none are provided. If a relative pointer is encountered for a base +/// address that is unknown, an `Err` will be returned and iteration will abort. +/// +/// Can be [used with +/// `FallibleIterator`](./index.html#using-with-fallibleiterator). +/// +/// ``` +/// use gimli::{BaseAddresses, EhFrame, EndianSlice, NativeEndian, UnwindSection}; +/// +/// # fn foo() -> gimli::Result<()> { +/// # let read_eh_frame_somehow = || unimplemented!(); +/// let eh_frame = EhFrame::new(read_eh_frame_somehow(), NativeEndian); +/// +/// # let address_of_eh_frame_hdr_section_in_memory = unimplemented!(); +/// # let address_of_eh_frame_section_in_memory = unimplemented!(); +/// # let address_of_text_section_in_memory = unimplemented!(); +/// # let address_of_got_section_in_memory = unimplemented!(); +/// # let address_of_the_start_of_current_func = unimplemented!(); +/// // Provide base addresses for relative pointers. +/// let bases = BaseAddresses::default() +/// .set_eh_frame_hdr(address_of_eh_frame_hdr_section_in_memory) +/// .set_eh_frame(address_of_eh_frame_section_in_memory) +/// .set_text(address_of_text_section_in_memory) +/// .set_got(address_of_got_section_in_memory); +/// +/// let mut entries = eh_frame.entries(&bases); +/// +/// # let do_stuff_with = |_| unimplemented!(); +/// while let Some(entry) = entries.next()? { +/// do_stuff_with(entry) +/// } +/// # unreachable!() +/// # } +/// ``` +#[derive(Clone, Debug)] +pub struct CfiEntriesIter<'bases, Section, R> +where + R: Reader, + Section: UnwindSection, +{ + section: Section, + bases: &'bases BaseAddresses, + input: R, +} + +impl<'bases, Section, R> CfiEntriesIter<'bases, Section, R> +where + R: Reader, + Section: UnwindSection, +{ + /// Advance the iterator to the next entry. + pub fn next(&mut self) -> Result>> { + if self.input.is_empty() { + return Ok(None); + } + + match parse_cfi_entry(self.bases, &self.section, &mut self.input) { + Err(e) => { + self.input.empty(); + Err(e) + } + Ok(None) => { + self.input.empty(); + Ok(None) + } + Ok(Some(entry)) => Ok(Some(entry)), + } + } +} + +#[cfg(feature = "fallible-iterator")] +impl<'bases, Section, R> fallible_iterator::FallibleIterator for CfiEntriesIter<'bases, Section, R> +where + R: Reader, + Section: UnwindSection, +{ + type Item = CieOrFde<'bases, Section, R>; + type Error = Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + CfiEntriesIter::next(self) + } +} + +/// Either a `CommonInformationEntry` (CIE) or a `FrameDescriptionEntry` (FDE). +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum CieOrFde<'bases, Section, R> +where + R: Reader, + Section: UnwindSection, +{ + /// This CFI entry is a `CommonInformationEntry`. + Cie(CommonInformationEntry), + /// This CFI entry is a `FrameDescriptionEntry`, however fully parsing it + /// requires parsing its CIE first, so it is left in a partially parsed + /// state. + Fde(PartialFrameDescriptionEntry<'bases, Section, R>), +} + +fn parse_cfi_entry<'bases, Section, R>( + bases: &'bases BaseAddresses, + section: &Section, + input: &mut R, +) -> Result>> +where + R: Reader, + Section: UnwindSection, +{ + let (offset, length, format) = loop { + let offset = input.offset_from(section.section()); + let (length, format) = input.read_initial_length()?; + + if Section::length_value_is_end_of_entries(length) { + return Ok(None); + } + + // Hack: skip zero padding inserted by buggy compilers/linkers. + // We require that the padding is a multiple of 32-bits, otherwise + // there is no reliable way to determine when the padding ends. This + // should be okay since CFI entries must be aligned to the address size. + + if length.into_u64() != 0 || format != Format::Dwarf32 { + break (offset, length, format); + } + }; + + let mut rest = input.split(length)?; + let cie_offset_base = rest.offset_from(section.section()); + let cie_id_or_offset = match Section::cie_offset_encoding(format) { + CieOffsetEncoding::U32 => rest.read_u32().map(u64::from)?, + CieOffsetEncoding::U64 => rest.read_u64()?, + }; + + if Section::is_cie(format, cie_id_or_offset) { + let cie = CommonInformationEntry::parse_rest(offset, length, format, bases, section, rest)?; + Ok(Some(CieOrFde::Cie(cie))) + } else { + let cie_offset = R::Offset::from_u64(cie_id_or_offset)?; + let cie_offset = match section.resolve_cie_offset(cie_offset_base, cie_offset) { + None => return Err(Error::OffsetOutOfBounds), + Some(cie_offset) => cie_offset, + }; + + let fde = PartialFrameDescriptionEntry { + offset, + length, + format, + cie_offset: cie_offset.into(), + rest, + section: section.clone(), + bases, + }; + + Ok(Some(CieOrFde::Fde(fde))) + } +} + +/// We support the z-style augmentation [defined by `.eh_frame`][ehframe]. +/// +/// [ehframe]: https://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html +#[derive(Copy, Clone, Debug, Default, PartialEq, Eq)] +pub struct Augmentation { + /// > A 'L' may be present at any position after the first character of the + /// > string. This character may only be present if 'z' is the first character + /// > of the string. If present, it indicates the presence of one argument in + /// > the Augmentation Data of the CIE, and a corresponding argument in the + /// > Augmentation Data of the FDE. The argument in the Augmentation Data of + /// > the CIE is 1-byte and represents the pointer encoding used for the + /// > argument in the Augmentation Data of the FDE, which is the address of a + /// > language-specific data area (LSDA). The size of the LSDA pointer is + /// > specified by the pointer encoding used. + lsda: Option, + + /// > A 'P' may be present at any position after the first character of the + /// > string. This character may only be present if 'z' is the first character + /// > of the string. If present, it indicates the presence of two arguments in + /// > the Augmentation Data of the CIE. The first argument is 1-byte and + /// > represents the pointer encoding used for the second argument, which is + /// > the address of a personality routine handler. The size of the + /// > personality routine pointer is specified by the pointer encoding used. + personality: Option<(constants::DwEhPe, Pointer)>, + + /// > A 'R' may be present at any position after the first character of the + /// > string. This character may only be present if 'z' is the first character + /// > of the string. If present, The Augmentation Data shall include a 1 byte + /// > argument that represents the pointer encoding for the address pointers + /// > used in the FDE. + fde_address_encoding: Option, + + /// True if this CIE's FDEs are trampolines for signal handlers. + is_signal_trampoline: bool, +} + +impl Augmentation { + fn parse( + augmentation_str: &mut R, + bases: &BaseAddresses, + address_size: u8, + section: &Section, + input: &mut R, + ) -> Result + where + R: Reader, + Section: UnwindSection, + { + debug_assert!( + !augmentation_str.is_empty(), + "Augmentation::parse should only be called if we have an augmentation" + ); + + let mut augmentation = Augmentation::default(); + + let mut parsed_first = false; + let mut data = None; + + while !augmentation_str.is_empty() { + let ch = augmentation_str.read_u8()?; + match ch { + b'z' => { + if parsed_first { + return Err(Error::UnknownAugmentation); + } + + let augmentation_length = input.read_uleb128().and_then(R::Offset::from_u64)?; + data = Some(input.split(augmentation_length)?); + } + b'L' => { + let rest = data.as_mut().ok_or(Error::UnknownAugmentation)?; + let encoding = parse_pointer_encoding(rest)?; + augmentation.lsda = Some(encoding); + } + b'P' => { + let rest = data.as_mut().ok_or(Error::UnknownAugmentation)?; + let encoding = parse_pointer_encoding(rest)?; + let parameters = PointerEncodingParameters { + bases: &bases.eh_frame, + func_base: None, + address_size, + section: section.section(), + }; + + let personality = parse_encoded_pointer(encoding, ¶meters, rest)?; + augmentation.personality = Some((encoding, personality)); + } + b'R' => { + let rest = data.as_mut().ok_or(Error::UnknownAugmentation)?; + let encoding = parse_pointer_encoding(rest)?; + augmentation.fde_address_encoding = Some(encoding); + } + b'S' => augmentation.is_signal_trampoline = true, + _ => return Err(Error::UnknownAugmentation), + } + + parsed_first = true; + } + + Ok(augmentation) + } +} + +/// Parsed augmentation data for a `FrameDescriptEntry`. +#[derive(Clone, Debug, Default, PartialEq, Eq)] +struct AugmentationData { + lsda: Option, +} + +impl AugmentationData { + fn parse( + augmentation: &Augmentation, + encoding_parameters: &PointerEncodingParameters, + input: &mut R, + ) -> Result { + // In theory, we should be iterating over the original augmentation + // string, interpreting each character, and reading the appropriate bits + // out of the augmentation data as we go. However, the only character + // that defines augmentation data in the FDE is the 'L' character, so we + // can just check for its presence directly. + + let aug_data_len = input.read_uleb128().and_then(R::Offset::from_u64)?; + let rest = &mut input.split(aug_data_len)?; + let mut augmentation_data = AugmentationData::default(); + if let Some(encoding) = augmentation.lsda { + let lsda = parse_encoded_pointer(encoding, encoding_parameters, rest)?; + augmentation_data.lsda = Some(lsda); + } + Ok(augmentation_data) + } +} + +/// > A Common Information Entry holds information that is shared among many +/// > Frame Description Entries. There is at least one CIE in every non-empty +/// > `.debug_frame` section. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct CommonInformationEntry::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + /// The offset of this entry from the start of its containing section. + offset: Offset, + + /// > A constant that gives the number of bytes of the CIE structure, not + /// > including the length field itself (see Section 7.2.2). The size of the + /// > length field plus the value of length must be an integral multiple of + /// > the address size. + length: Offset, + + format: Format, + + /// > A version number (see Section 7.23). This number is specific to the + /// > call frame information and is independent of the DWARF version number. + version: u8, + + /// The parsed augmentation, if any. + augmentation: Option, + + /// > The size of a target address in this CIE and any FDEs that use it, in + /// > bytes. If a compilation unit exists for this frame, its address size + /// > must match the address size here. + address_size: u8, + + /// "The size of a segment selector in this CIE and any FDEs that use it, in + /// bytes." + segment_size: u8, + + /// "A constant that is factored out of all advance location instructions + /// (see Section 6.4.2.1)." + code_alignment_factor: u64, + + /// > A constant that is factored out of certain offset instructions (see + /// > below). The resulting value is (operand * data_alignment_factor). + data_alignment_factor: i64, + + /// > An unsigned LEB128 constant that indicates which column in the rule + /// > table represents the return address of the function. Note that this + /// > column might not correspond to an actual machine register. + return_address_register: Register, + + /// > A sequence of rules that are interpreted to create the initial setting + /// > of each column in the table. + /// + /// > The default rule for all columns before interpretation of the initial + /// > instructions is the undefined rule. However, an ABI authoring body or a + /// > compilation system authoring body may specify an alternate default + /// > value for any or all columns. + /// + /// This is followed by `DW_CFA_nop` padding until the end of `length` bytes + /// in the input. + initial_instructions: R, +} + +impl CommonInformationEntry { + fn parse>( + bases: &BaseAddresses, + section: &Section, + input: &mut R, + ) -> Result> { + match parse_cfi_entry(bases, section, input)? { + Some(CieOrFde::Cie(cie)) => Ok(cie), + Some(CieOrFde::Fde(_)) => Err(Error::NotCieId), + None => Err(Error::NoEntryAtGivenOffset), + } + } + + fn parse_rest>( + offset: R::Offset, + length: R::Offset, + format: Format, + bases: &BaseAddresses, + section: &Section, + mut rest: R, + ) -> Result> { + let version = rest.read_u8()?; + + // Version 1 of `.debug_frame` corresponds to DWARF 2, and then for + // DWARF 3 and 4, I think they decided to just match the standard's + // version. + match version { + 1 | 3 | 4 => (), + _ => return Err(Error::UnknownVersion(u64::from(version))), + } + + let mut augmentation_string = rest.read_null_terminated_slice()?; + + let (address_size, segment_size) = if Section::has_address_and_segment_sizes(version) { + let address_size = rest.read_u8()?; + let segment_size = rest.read_u8()?; + (address_size, segment_size) + } else { + (section.address_size(), section.segment_size()) + }; + + let code_alignment_factor = rest.read_uleb128()?; + let data_alignment_factor = rest.read_sleb128()?; + + let return_address_register = if version == 1 { + Register(rest.read_u8()?.into()) + } else { + rest.read_uleb128().and_then(Register::from_u64)? + }; + + let augmentation = if augmentation_string.is_empty() { + None + } else { + Some(Augmentation::parse( + &mut augmentation_string, + bases, + address_size, + section, + &mut rest, + )?) + }; + + let entry = CommonInformationEntry { + offset, + length, + format, + version, + augmentation, + address_size, + segment_size, + code_alignment_factor, + data_alignment_factor, + return_address_register, + initial_instructions: rest, + }; + + Ok(entry) + } +} + +/// # Signal Safe Methods +/// +/// These methods are guaranteed not to allocate, acquire locks, or perform any +/// other signal-unsafe operations. +impl CommonInformationEntry { + /// Get the offset of this entry from the start of its containing section. + pub fn offset(&self) -> R::Offset { + self.offset + } + + /// Return the encoding parameters for this CIE. + pub fn encoding(&self) -> Encoding { + Encoding { + format: self.format, + version: u16::from(self.version), + address_size: self.address_size, + } + } + + /// The size of addresses (in bytes) in this CIE. + pub fn address_size(&self) -> u8 { + self.address_size + } + + /// Iterate over this CIE's initial instructions. + /// + /// Can be [used with + /// `FallibleIterator`](./index.html#using-with-fallibleiterator). + pub fn instructions<'a, Section>( + &self, + section: &'a Section, + bases: &'a BaseAddresses, + ) -> CallFrameInstructionIter<'a, R> + where + Section: UnwindSection, + { + CallFrameInstructionIter { + input: self.initial_instructions.clone(), + address_encoding: None, + parameters: PointerEncodingParameters { + bases: &bases.eh_frame, + func_base: None, + address_size: self.address_size, + section: section.section(), + }, + vendor: section.vendor(), + } + } + + /// > A constant that gives the number of bytes of the CIE structure, not + /// > including the length field itself (see Section 7.2.2). The size of the + /// > length field plus the value of length must be an integral multiple of + /// > the address size. + pub fn entry_len(&self) -> R::Offset { + self.length + } + + /// > A version number (see Section 7.23). This number is specific to the + /// > call frame information and is independent of the DWARF version number. + pub fn version(&self) -> u8 { + self.version + } + + /// Get the augmentation data, if any exists. + /// + /// The only augmentation understood by `gimli` is that which is defined by + /// `.eh_frame`. + pub fn augmentation(&self) -> Option<&Augmentation> { + self.augmentation.as_ref() + } + + /// True if this CIE's FDEs have a LSDA. + pub fn has_lsda(&self) -> bool { + self.augmentation.map_or(false, |a| a.lsda.is_some()) + } + + /// Return the encoding of the LSDA address for this CIE's FDEs. + pub fn lsda_encoding(&self) -> Option { + self.augmentation.and_then(|a| a.lsda) + } + + /// Return the encoding and address of the personality routine handler + /// for this CIE's FDEs. + pub fn personality_with_encoding(&self) -> Option<(constants::DwEhPe, Pointer)> { + self.augmentation.as_ref().and_then(|a| a.personality) + } + + /// Return the address of the personality routine handler + /// for this CIE's FDEs. + pub fn personality(&self) -> Option { + self.augmentation + .as_ref() + .and_then(|a| a.personality) + .map(|(_, p)| p) + } + + /// Return the encoding of the addresses for this CIE's FDEs. + pub fn fde_address_encoding(&self) -> Option { + self.augmentation.and_then(|a| a.fde_address_encoding) + } + + /// True if this CIE's FDEs are trampolines for signal handlers. + pub fn is_signal_trampoline(&self) -> bool { + self.augmentation.map_or(false, |a| a.is_signal_trampoline) + } + + /// > A constant that is factored out of all advance location instructions + /// > (see Section 6.4.2.1). + pub fn code_alignment_factor(&self) -> u64 { + self.code_alignment_factor + } + + /// > A constant that is factored out of certain offset instructions (see + /// > below). The resulting value is (operand * data_alignment_factor). + pub fn data_alignment_factor(&self) -> i64 { + self.data_alignment_factor + } + + /// > An unsigned ... constant that indicates which column in the rule + /// > table represents the return address of the function. Note that this + /// > column might not correspond to an actual machine register. + pub fn return_address_register(&self) -> Register { + self.return_address_register + } +} + +/// A partially parsed `FrameDescriptionEntry`. +/// +/// Fully parsing this FDE requires first parsing its CIE. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct PartialFrameDescriptionEntry<'bases, Section, R> +where + R: Reader, + Section: UnwindSection, +{ + offset: R::Offset, + length: R::Offset, + format: Format, + cie_offset: Section::Offset, + rest: R, + section: Section, + bases: &'bases BaseAddresses, +} + +impl<'bases, Section, R> PartialFrameDescriptionEntry<'bases, Section, R> +where + R: Reader, + Section: UnwindSection, +{ + fn parse_partial( + section: &Section, + bases: &'bases BaseAddresses, + input: &mut R, + ) -> Result> { + match parse_cfi_entry(bases, section, input)? { + Some(CieOrFde::Cie(_)) => Err(Error::NotFdePointer), + Some(CieOrFde::Fde(partial)) => Ok(partial), + None => Err(Error::NoEntryAtGivenOffset), + } + } + + /// Fully parse this FDE. + /// + /// You must provide a function get its associated CIE (either by parsing it + /// on demand, or looking it up in some table mapping offsets to CIEs that + /// you've already parsed, etc.) + pub fn parse(&self, get_cie: F) -> Result> + where + F: FnMut(&Section, &BaseAddresses, Section::Offset) -> Result>, + { + FrameDescriptionEntry::parse_rest( + self.offset, + self.length, + self.format, + self.cie_offset, + self.rest.clone(), + &self.section, + self.bases, + get_cie, + ) + } + + /// Get the offset of this entry from the start of its containing section. + pub fn offset(&self) -> R::Offset { + self.offset + } + + /// Get the offset of this FDE's CIE. + pub fn cie_offset(&self) -> Section::Offset { + self.cie_offset + } + + /// > A constant that gives the number of bytes of the header and + /// > instruction stream for this function, not including the length field + /// > itself (see Section 7.2.2). The size of the length field plus the value + /// > of length must be an integral multiple of the address size. + pub fn entry_len(&self) -> R::Offset { + self.length + } +} + +/// A `FrameDescriptionEntry` is a set of CFA instructions for an address range. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct FrameDescriptionEntry::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + /// The start of this entry within its containing section. + offset: Offset, + + /// > A constant that gives the number of bytes of the header and + /// > instruction stream for this function, not including the length field + /// > itself (see Section 7.2.2). The size of the length field plus the value + /// > of length must be an integral multiple of the address size. + length: Offset, + + format: Format, + + /// "A constant offset into the .debug_frame section that denotes the CIE + /// that is associated with this FDE." + /// + /// This is the CIE at that offset. + cie: CommonInformationEntry, + + /// > The address of the first location associated with this table entry. If + /// > the segment_size field of this FDE's CIE is non-zero, the initial + /// > location is preceded by a segment selector of the given length. + initial_segment: u64, + initial_address: u64, + + /// "The number of bytes of program instructions described by this entry." + address_range: u64, + + /// The parsed augmentation data, if we have any. + augmentation: Option, + + /// "A sequence of table defining instructions that are described below." + /// + /// This is followed by `DW_CFA_nop` padding until `length` bytes of the + /// input are consumed. + instructions: R, +} + +impl FrameDescriptionEntry { + fn parse_rest( + offset: R::Offset, + length: R::Offset, + format: Format, + cie_pointer: Section::Offset, + mut rest: R, + section: &Section, + bases: &BaseAddresses, + mut get_cie: F, + ) -> Result> + where + Section: UnwindSection, + F: FnMut(&Section, &BaseAddresses, Section::Offset) -> Result>, + { + let cie = get_cie(section, bases, cie_pointer)?; + + let initial_segment = if cie.segment_size > 0 { + rest.read_address(cie.segment_size)? + } else { + 0 + }; + + let mut parameters = PointerEncodingParameters { + bases: &bases.eh_frame, + func_base: None, + address_size: cie.address_size, + section: section.section(), + }; + + let (initial_address, address_range) = Self::parse_addresses(&mut rest, &cie, ¶meters)?; + parameters.func_base = Some(initial_address); + + let aug_data = if let Some(ref augmentation) = cie.augmentation { + Some(AugmentationData::parse( + augmentation, + ¶meters, + &mut rest, + )?) + } else { + None + }; + + let entry = FrameDescriptionEntry { + offset, + length, + format, + cie, + initial_segment, + initial_address, + address_range, + augmentation: aug_data, + instructions: rest, + }; + + Ok(entry) + } + + fn parse_addresses( + input: &mut R, + cie: &CommonInformationEntry, + parameters: &PointerEncodingParameters, + ) -> Result<(u64, u64)> { + let encoding = cie.augmentation().and_then(|a| a.fde_address_encoding); + if let Some(encoding) = encoding { + let initial_address = parse_encoded_pointer(encoding, parameters, input)?; + + // Ignore indirection. + let initial_address = initial_address.pointer(); + + // Address ranges cannot be relative to anything, so just grab the + // data format bits from the encoding. + let address_range = parse_encoded_pointer(encoding.format(), parameters, input)?; + Ok((initial_address, address_range.pointer())) + } else { + let initial_address = input.read_address(cie.address_size)?; + let address_range = input.read_address(cie.address_size)?; + Ok((initial_address, address_range)) + } + } + + /// Return the table of unwind information for this FDE. + #[inline] + pub fn rows<'a, 'ctx, Section: UnwindSection, A: UnwindContextStorage>( + &self, + section: &'a Section, + bases: &'a BaseAddresses, + ctx: &'ctx mut UnwindContext, + ) -> Result> { + UnwindTable::new(section, bases, ctx, self) + } + + /// Find the frame unwind information for the given address. + /// + /// If found, the unwind information is returned along with the reset + /// context in the form `Ok((unwind_info, context))`. If not found, + /// `Err(gimli::Error::NoUnwindInfoForAddress)` is returned. If parsing or + /// CFI evaluation fails, the error is returned. + pub fn unwind_info_for_address<'ctx, Section: UnwindSection, A: UnwindContextStorage>( + &self, + section: &Section, + bases: &BaseAddresses, + ctx: &'ctx mut UnwindContext, + address: u64, + ) -> Result<&'ctx UnwindTableRow> { + let mut table = self.rows(section, bases, ctx)?; + while let Some(row) = table.next_row()? { + if row.contains(address) { + return Ok(table.ctx.row()); + } + } + Err(Error::NoUnwindInfoForAddress) + } +} + +/// # Signal Safe Methods +/// +/// These methods are guaranteed not to allocate, acquire locks, or perform any +/// other signal-unsafe operations. +#[allow(clippy::len_without_is_empty)] +impl FrameDescriptionEntry { + /// Get the offset of this entry from the start of its containing section. + pub fn offset(&self) -> R::Offset { + self.offset + } + + /// Get a reference to this FDE's CIE. + pub fn cie(&self) -> &CommonInformationEntry { + &self.cie + } + + /// > A constant that gives the number of bytes of the header and + /// > instruction stream for this function, not including the length field + /// > itself (see Section 7.2.2). The size of the length field plus the value + /// > of length must be an integral multiple of the address size. + pub fn entry_len(&self) -> R::Offset { + self.length + } + + /// Iterate over this FDE's instructions. + /// + /// Will not include the CIE's initial instructions, if you want those do + /// `fde.cie().instructions()` first. + /// + /// Can be [used with + /// `FallibleIterator`](./index.html#using-with-fallibleiterator). + pub fn instructions<'a, Section>( + &self, + section: &'a Section, + bases: &'a BaseAddresses, + ) -> CallFrameInstructionIter<'a, R> + where + Section: UnwindSection, + { + CallFrameInstructionIter { + input: self.instructions.clone(), + address_encoding: self.cie.augmentation().and_then(|a| a.fde_address_encoding), + parameters: PointerEncodingParameters { + bases: &bases.eh_frame, + func_base: None, + address_size: self.cie.address_size, + section: section.section(), + }, + vendor: section.vendor(), + } + } + + /// The first address for which this entry has unwind information for. + pub fn initial_address(&self) -> u64 { + self.initial_address + } + + /// The number of bytes of instructions that this entry has unwind + /// information for. + pub fn len(&self) -> u64 { + self.address_range + } + + /// Return `true` if the given address is within this FDE, `false` + /// otherwise. + /// + /// This is equivalent to `entry.initial_address() <= address < + /// entry.initial_address() + entry.len()`. + pub fn contains(&self, address: u64) -> bool { + let start = self.initial_address(); + let end = start + self.len(); + start <= address && address < end + } + + /// The address of this FDE's language-specific data area (LSDA), if it has + /// any. + pub fn lsda(&self) -> Option { + self.augmentation.as_ref().and_then(|a| a.lsda) + } + + /// Return true if this FDE's function is a trampoline for a signal handler. + #[inline] + pub fn is_signal_trampoline(&self) -> bool { + self.cie().is_signal_trampoline() + } + + /// Return the address of the FDE's function's personality routine + /// handler. The personality routine does language-specific clean up when + /// unwinding the stack frames with the intent to not run them again. + #[inline] + pub fn personality(&self) -> Option { + self.cie().personality() + } +} + +/// Specification of what storage should be used for [`UnwindContext`]. +/// +#[cfg_attr( + feature = "read", + doc = " +Normally you would only need to use [`StoreOnHeap`], which places the stack +on the heap using [`Vec`]. This is the default storage type parameter for [`UnwindContext`]. +" +)] +/// +/// If you need to avoid [`UnwindContext`] from allocating memory, e.g. for signal safety, +/// you can provide you own storage specification: +/// ```rust,no_run +/// # use gimli::*; +/// # +/// # fn foo<'a>(some_fde: gimli::FrameDescriptionEntry>) +/// # -> gimli::Result<()> { +/// # let eh_frame: gimli::EhFrame<_> = unreachable!(); +/// # let bases = unimplemented!(); +/// # +/// struct StoreOnStack; +/// +/// impl UnwindContextStorage for StoreOnStack { +/// type Rules = [(Register, RegisterRule); 192]; +/// type Stack = [UnwindTableRow; 4]; +/// } +/// +/// let mut ctx = UnwindContext::<_, StoreOnStack>::new_in(); +/// +/// // Initialize the context by evaluating the CIE's initial instruction program, +/// // and generate the unwind table. +/// let mut table = some_fde.rows(&eh_frame, &bases, &mut ctx)?; +/// while let Some(row) = table.next_row()? { +/// // Do stuff with each row... +/// # let _ = row; +/// } +/// # unreachable!() +/// # } +/// ``` +pub trait UnwindContextStorage: Sized { + /// The storage used for register rules in a unwind table row. + /// + /// Note that this is nested within the stack. + type Rules: ArrayLike)>; + + /// The storage used for unwind table row stack. + type Stack: ArrayLike>; +} + +#[cfg(feature = "read")] +const MAX_RULES: usize = 192; +#[cfg(feature = "read")] +const MAX_UNWIND_STACK_DEPTH: usize = 4; + +#[cfg(feature = "read")] +impl UnwindContextStorage for StoreOnHeap { + type Rules = [(Register, RegisterRule); MAX_RULES]; + type Stack = Box<[UnwindTableRow; MAX_UNWIND_STACK_DEPTH]>; +} + +/// Common context needed when evaluating the call frame unwinding information. +/// +/// This structure can be large so it is advisable to place it on the heap. +/// To avoid re-allocating the context multiple times when evaluating multiple +/// CFI programs, it can be reused. +/// +/// ``` +/// use gimli::{UnwindContext, UnwindTable}; +/// +/// # fn foo<'a>(some_fde: gimli::FrameDescriptionEntry>) +/// # -> gimli::Result<()> { +/// # let eh_frame: gimli::EhFrame<_> = unreachable!(); +/// # let bases = unimplemented!(); +/// // An uninitialized context. +/// let mut ctx = Box::new(UnwindContext::new()); +/// +/// // Initialize the context by evaluating the CIE's initial instruction program, +/// // and generate the unwind table. +/// let mut table = some_fde.rows(&eh_frame, &bases, &mut ctx)?; +/// while let Some(row) = table.next_row()? { +/// // Do stuff with each row... +/// # let _ = row; +/// } +/// # unreachable!() +/// # } +/// ``` +#[derive(Clone, PartialEq, Eq)] +pub struct UnwindContext = StoreOnHeap> { + // Stack of rows. The last row is the row currently being built by the + // program. There is always at least one row. The vast majority of CFI + // programs will only ever have one row on the stack. + stack: ArrayVec, + + // If we are evaluating an FDE's instructions, then `is_initialized` will be + // `true`. If `initial_rule` is `Some`, then the initial register rules are either + // all default rules or have just 1 non-default rule, stored in `initial_rule`. + // If it's `None`, `stack[0]` will contain the initial register rules + // described by the CIE's initial instructions. These rules are used by + // `DW_CFA_restore`. Otherwise, when we are currently evaluating a CIE's + // initial instructions, `is_initialized` will be `false` and initial rules + // cannot be read. + initial_rule: Option<(Register, RegisterRule)>, + + is_initialized: bool, +} + +impl> Debug for UnwindContext { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.debug_struct("UnwindContext") + .field("stack", &self.stack) + .field("initial_rule", &self.initial_rule) + .field("is_initialized", &self.is_initialized) + .finish() + } +} + +impl> Default for UnwindContext { + fn default() -> Self { + Self::new_in() + } +} + +#[cfg(feature = "read")] +impl UnwindContext { + /// Construct a new call frame unwinding context. + pub fn new() -> Self { + Self::new_in() + } +} + +/// # Signal Safe Methods +/// +/// These methods are guaranteed not to allocate, acquire locks, or perform any +/// other signal-unsafe operations, if an non-allocating storage is used. +impl> UnwindContext { + /// Construct a new call frame unwinding context. + pub fn new_in() -> Self { + let mut ctx = UnwindContext { + stack: Default::default(), + initial_rule: None, + is_initialized: false, + }; + ctx.reset(); + ctx + } + + /// Run the CIE's initial instructions and initialize this `UnwindContext`. + fn initialize>( + &mut self, + section: &Section, + bases: &BaseAddresses, + cie: &CommonInformationEntry, + ) -> Result<()> { + // Always reset because previous initialization failure may leave dirty state. + self.reset(); + + let mut table = UnwindTable::new_for_cie(section, bases, self, cie); + while table.next_row()?.is_some() {} + + self.save_initial_rules()?; + Ok(()) + } + + fn reset(&mut self) { + self.stack.clear(); + self.stack.try_push(UnwindTableRow::default()).unwrap(); + debug_assert!(self.stack[0].is_default()); + self.initial_rule = None; + self.is_initialized = false; + } + + fn row(&self) -> &UnwindTableRow { + self.stack.last().unwrap() + } + + fn row_mut(&mut self) -> &mut UnwindTableRow { + self.stack.last_mut().unwrap() + } + + fn save_initial_rules(&mut self) -> Result<()> { + debug_assert!(!self.is_initialized); + self.initial_rule = match *self.stack.last().unwrap().registers.rules { + // All rules are default (undefined). In this case just synthesize + // an undefined rule. + [] => Some((Register(0), RegisterRule::Undefined)), + [ref rule] => Some(rule.clone()), + _ => { + let rules = self.stack.last().unwrap().clone(); + self.stack + .try_insert(0, rules) + .map_err(|_| Error::StackFull)?; + None + } + }; + self.is_initialized = true; + Ok(()) + } + + fn start_address(&self) -> u64 { + self.row().start_address + } + + fn set_start_address(&mut self, start_address: u64) { + let row = self.row_mut(); + row.start_address = start_address; + } + + fn set_register_rule(&mut self, register: Register, rule: RegisterRule) -> Result<()> { + let row = self.row_mut(); + row.registers.set(register, rule) + } + + /// Returns `None` if we have not completed evaluation of a CIE's initial + /// instructions. + fn get_initial_rule(&self, register: Register) -> Option> { + if !self.is_initialized { + return None; + } + Some(match self.initial_rule { + None => self.stack[0].registers.get(register), + Some((r, ref rule)) if r == register => rule.clone(), + _ => RegisterRule::Undefined, + }) + } + + fn set_cfa(&mut self, cfa: CfaRule) { + self.row_mut().cfa = cfa; + } + + fn cfa_mut(&mut self) -> &mut CfaRule { + &mut self.row_mut().cfa + } + + fn push_row(&mut self) -> Result<()> { + let new_row = self.row().clone(); + self.stack.try_push(new_row).map_err(|_| Error::StackFull) + } + + fn pop_row(&mut self) -> Result<()> { + let min_size = if self.is_initialized && self.initial_rule.is_none() { + 2 + } else { + 1 + }; + if self.stack.len() <= min_size { + return Err(Error::PopWithEmptyStack); + } + self.stack.pop().unwrap(); + Ok(()) + } +} + +/// The `UnwindTable` iteratively evaluates a `FrameDescriptionEntry`'s +/// `CallFrameInstruction` program, yielding the each row one at a time. +/// +/// > 6.4.1 Structure of Call Frame Information +/// > +/// > DWARF supports virtual unwinding by defining an architecture independent +/// > basis for recording how procedures save and restore registers during their +/// > lifetimes. This basis must be augmented on some machines with specific +/// > information that is defined by an architecture specific ABI authoring +/// > committee, a hardware vendor, or a compiler producer. The body defining a +/// > specific augmentation is referred to below as the “augmenter.” +/// > +/// > Abstractly, this mechanism describes a very large table that has the +/// > following structure: +/// > +/// > +/// > +/// > +/// > +/// > +/// > +/// > +/// > +/// > +/// > +/// > +/// > +/// > +/// > +/// > +/// > +/// >
LOCCFAR0R1...RN
L0
L1
...
LN
+/// > +/// > The first column indicates an address for every location that contains code +/// > in a program. (In shared objects, this is an object-relative offset.) The +/// > remaining columns contain virtual unwinding rules that are associated with +/// > the indicated location. +/// > +/// > The CFA column defines the rule which computes the Canonical Frame Address +/// > value; it may be either a register and a signed offset that are added +/// > together, or a DWARF expression that is evaluated. +/// > +/// > The remaining columns are labeled by register number. This includes some +/// > registers that have special designation on some architectures such as the PC +/// > and the stack pointer register. (The actual mapping of registers for a +/// > particular architecture is defined by the augmenter.) The register columns +/// > contain rules that describe whether a given register has been saved and the +/// > rule to find the value for the register in the previous frame. +/// > +/// > ... +/// > +/// > This table would be extremely large if actually constructed as +/// > described. Most of the entries at any point in the table are identical to +/// > the ones above them. The whole table can be represented quite compactly by +/// > recording just the differences starting at the beginning address of each +/// > subroutine in the program. +#[derive(Debug)] +pub struct UnwindTable<'a, 'ctx, R: Reader, A: UnwindContextStorage = StoreOnHeap> { + code_alignment_factor: Wrapping, + data_alignment_factor: Wrapping, + next_start_address: u64, + last_end_address: u64, + returned_last_row: bool, + current_row_valid: bool, + instructions: CallFrameInstructionIter<'a, R>, + ctx: &'ctx mut UnwindContext, +} + +/// # Signal Safe Methods +/// +/// These methods are guaranteed not to allocate, acquire locks, or perform any +/// other signal-unsafe operations. +impl<'a, 'ctx, R: Reader, A: UnwindContextStorage> UnwindTable<'a, 'ctx, R, A> { + /// Construct a new `UnwindTable` for the given + /// `FrameDescriptionEntry`'s CFI unwinding program. + pub fn new>( + section: &'a Section, + bases: &'a BaseAddresses, + ctx: &'ctx mut UnwindContext, + fde: &FrameDescriptionEntry, + ) -> Result { + ctx.initialize(section, bases, fde.cie())?; + Ok(Self::new_for_fde(section, bases, ctx, fde)) + } + + fn new_for_fde>( + section: &'a Section, + bases: &'a BaseAddresses, + ctx: &'ctx mut UnwindContext, + fde: &FrameDescriptionEntry, + ) -> Self { + assert!(ctx.stack.len() >= 1); + UnwindTable { + code_alignment_factor: Wrapping(fde.cie().code_alignment_factor()), + data_alignment_factor: Wrapping(fde.cie().data_alignment_factor()), + next_start_address: fde.initial_address(), + last_end_address: fde.initial_address().wrapping_add(fde.len()), + returned_last_row: false, + current_row_valid: false, + instructions: fde.instructions(section, bases), + ctx, + } + } + + fn new_for_cie>( + section: &'a Section, + bases: &'a BaseAddresses, + ctx: &'ctx mut UnwindContext, + cie: &CommonInformationEntry, + ) -> Self { + assert!(ctx.stack.len() >= 1); + UnwindTable { + code_alignment_factor: Wrapping(cie.code_alignment_factor()), + data_alignment_factor: Wrapping(cie.data_alignment_factor()), + next_start_address: 0, + last_end_address: 0, + returned_last_row: false, + current_row_valid: false, + instructions: cie.instructions(section, bases), + ctx, + } + } + + /// Evaluate call frame instructions until the next row of the table is + /// completed, and return it. + /// + /// Unfortunately, this cannot be used with `FallibleIterator` because of + /// the restricted lifetime of the yielded item. + pub fn next_row(&mut self) -> Result>> { + assert!(self.ctx.stack.len() >= 1); + self.ctx.set_start_address(self.next_start_address); + self.current_row_valid = false; + + loop { + match self.instructions.next() { + Err(e) => return Err(e), + + Ok(None) => { + if self.returned_last_row { + return Ok(None); + } + + let row = self.ctx.row_mut(); + row.end_address = self.last_end_address; + + self.returned_last_row = true; + self.current_row_valid = true; + return Ok(Some(row)); + } + + Ok(Some(instruction)) => { + if self.evaluate(instruction)? { + self.current_row_valid = true; + return Ok(Some(self.ctx.row())); + } + } + }; + } + } + + /// Returns the current row with the lifetime of the context. + pub fn into_current_row(self) -> Option<&'ctx UnwindTableRow> { + if self.current_row_valid { + Some(self.ctx.row()) + } else { + None + } + } + + /// Evaluate one call frame instruction. Return `Ok(true)` if the row is + /// complete, `Ok(false)` otherwise. + fn evaluate(&mut self, instruction: CallFrameInstruction) -> Result { + use crate::CallFrameInstruction::*; + + match instruction { + // Instructions that complete the current row and advance the + // address for the next row. + SetLoc { address } => { + if address < self.ctx.start_address() { + return Err(Error::InvalidAddressRange); + } + + self.next_start_address = address; + self.ctx.row_mut().end_address = self.next_start_address; + return Ok(true); + } + AdvanceLoc { delta } => { + let delta = Wrapping(u64::from(delta)) * self.code_alignment_factor; + self.next_start_address = (Wrapping(self.ctx.start_address()) + delta).0; + self.ctx.row_mut().end_address = self.next_start_address; + return Ok(true); + } + + // Instructions that modify the CFA. + DefCfa { register, offset } => { + self.ctx.set_cfa(CfaRule::RegisterAndOffset { + register, + offset: offset as i64, + }); + } + DefCfaSf { + register, + factored_offset, + } => { + let data_align = self.data_alignment_factor; + self.ctx.set_cfa(CfaRule::RegisterAndOffset { + register, + offset: (Wrapping(factored_offset) * data_align).0, + }); + } + DefCfaRegister { register } => { + if let CfaRule::RegisterAndOffset { + register: ref mut reg, + .. + } = *self.ctx.cfa_mut() + { + *reg = register; + } else { + return Err(Error::CfiInstructionInInvalidContext); + } + } + DefCfaOffset { offset } => { + if let CfaRule::RegisterAndOffset { + offset: ref mut off, + .. + } = *self.ctx.cfa_mut() + { + *off = offset as i64; + } else { + return Err(Error::CfiInstructionInInvalidContext); + } + } + DefCfaOffsetSf { factored_offset } => { + if let CfaRule::RegisterAndOffset { + offset: ref mut off, + .. + } = *self.ctx.cfa_mut() + { + let data_align = self.data_alignment_factor; + *off = (Wrapping(factored_offset) * data_align).0; + } else { + return Err(Error::CfiInstructionInInvalidContext); + } + } + DefCfaExpression { expression } => { + self.ctx.set_cfa(CfaRule::Expression(expression)); + } + + // Instructions that define register rules. + Undefined { register } => { + self.ctx + .set_register_rule(register, RegisterRule::Undefined)?; + } + SameValue { register } => { + self.ctx + .set_register_rule(register, RegisterRule::SameValue)?; + } + Offset { + register, + factored_offset, + } => { + let offset = Wrapping(factored_offset as i64) * self.data_alignment_factor; + self.ctx + .set_register_rule(register, RegisterRule::Offset(offset.0))?; + } + OffsetExtendedSf { + register, + factored_offset, + } => { + let offset = Wrapping(factored_offset) * self.data_alignment_factor; + self.ctx + .set_register_rule(register, RegisterRule::Offset(offset.0))?; + } + ValOffset { + register, + factored_offset, + } => { + let offset = Wrapping(factored_offset as i64) * self.data_alignment_factor; + self.ctx + .set_register_rule(register, RegisterRule::ValOffset(offset.0))?; + } + ValOffsetSf { + register, + factored_offset, + } => { + let offset = Wrapping(factored_offset) * self.data_alignment_factor; + self.ctx + .set_register_rule(register, RegisterRule::ValOffset(offset.0))?; + } + Register { + dest_register, + src_register, + } => { + self.ctx + .set_register_rule(dest_register, RegisterRule::Register(src_register))?; + } + Expression { + register, + expression, + } => { + let expression = RegisterRule::Expression(expression); + self.ctx.set_register_rule(register, expression)?; + } + ValExpression { + register, + expression, + } => { + let expression = RegisterRule::ValExpression(expression); + self.ctx.set_register_rule(register, expression)?; + } + Restore { register } => { + let initial_rule = if let Some(rule) = self.ctx.get_initial_rule(register) { + rule + } else { + // Can't restore the initial rule when we are + // evaluating the initial rules! + return Err(Error::CfiInstructionInInvalidContext); + }; + + self.ctx.set_register_rule(register, initial_rule)?; + } + + // Row push and pop instructions. + RememberState => { + self.ctx.push_row()?; + } + RestoreState => { + // Pop state while preserving current location. + let start_address = self.ctx.start_address(); + self.ctx.pop_row()?; + self.ctx.set_start_address(start_address); + } + + // GNU Extension. Save the size somewhere so the unwinder can use + // it when restoring IP + ArgsSize { size } => { + self.ctx.row_mut().saved_args_size = size; + } + + // AArch64 extension. + NegateRaState => { + let register = crate::AArch64::RA_SIGN_STATE; + let value = match self.ctx.row().register(register) { + RegisterRule::Undefined => 0, + RegisterRule::Constant(value) => value, + _ => return Err(Error::CfiInstructionInInvalidContext), + }; + self.ctx + .set_register_rule(register, RegisterRule::Constant(value ^ 1))?; + } + + // No operation. + Nop => {} + }; + + Ok(false) + } +} + +// We tend to have very few register rules: usually only a couple. Even if we +// have a rule for every register, on x86-64 with SSE and everything we're +// talking about ~100 rules. So rather than keeping the rules in a hash map, or +// a vector indexed by register number (which would lead to filling lots of +// empty entries), we store them as a vec of (register number, register rule) +// pairs. +// +// Additionally, because every register's default rule is implicitly +// `RegisterRule::Undefined`, we never store a register's rule in this vec if it +// is undefined and save a little bit more space and do a little fewer +// comparisons that way. +// +// The maximum number of rules preallocated by libunwind is 97 for AArch64, 128 +// for ARM, and even 188 for MIPS. It is extremely unlikely to encounter this +// many register rules in practice. +// +// See: +// - https://github.com/libunwind/libunwind/blob/11fd461095ea98f4b3e3a361f5a8a558519363fa/include/tdep-x86_64/dwarf-config.h#L36 +// - https://github.com/libunwind/libunwind/blob/11fd461095ea98f4b3e3a361f5a8a558519363fa/include/tdep-aarch64/dwarf-config.h#L32 +// - https://github.com/libunwind/libunwind/blob/11fd461095ea98f4b3e3a361f5a8a558519363fa/include/tdep-arm/dwarf-config.h#L31 +// - https://github.com/libunwind/libunwind/blob/11fd461095ea98f4b3e3a361f5a8a558519363fa/include/tdep-mips/dwarf-config.h#L31 +struct RegisterRuleMap = StoreOnHeap> { + rules: ArrayVec, +} + +impl> Debug for RegisterRuleMap { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.debug_struct("RegisterRuleMap") + .field("rules", &self.rules) + .finish() + } +} + +impl> Clone for RegisterRuleMap { + fn clone(&self) -> Self { + Self { + rules: self.rules.clone(), + } + } +} + +impl> Default for RegisterRuleMap { + fn default() -> Self { + RegisterRuleMap { + rules: Default::default(), + } + } +} + +/// # Signal Safe Methods +/// +/// These methods are guaranteed not to allocate, acquire locks, or perform any +/// other signal-unsafe operations. +impl> RegisterRuleMap { + fn is_default(&self) -> bool { + self.rules.is_empty() + } + + fn get(&self, register: Register) -> RegisterRule { + self.rules + .iter() + .find(|rule| rule.0 == register) + .map(|r| { + debug_assert!(r.1.is_defined()); + r.1.clone() + }) + .unwrap_or(RegisterRule::Undefined) + } + + fn set(&mut self, register: Register, rule: RegisterRule) -> Result<()> { + if !rule.is_defined() { + let idx = self + .rules + .iter() + .enumerate() + .find(|&(_, r)| r.0 == register) + .map(|(i, _)| i); + if let Some(idx) = idx { + self.rules.swap_remove(idx); + } + return Ok(()); + } + + for &mut (reg, ref mut old_rule) in &mut *self.rules { + debug_assert!(old_rule.is_defined()); + if reg == register { + *old_rule = rule; + return Ok(()); + } + } + + self.rules + .try_push((register, rule)) + .map_err(|_| Error::TooManyRegisterRules) + } + + fn iter(&self) -> RegisterRuleIter { + RegisterRuleIter(self.rules.iter()) + } +} + +impl<'a, R, S: UnwindContextStorage> FromIterator<&'a (Register, RegisterRule)> + for RegisterRuleMap +where + R: 'a + Reader, +{ + fn from_iter(iter: T) -> Self + where + T: IntoIterator)>, + { + let iter = iter.into_iter(); + let mut rules = RegisterRuleMap::default(); + for &(reg, ref rule) in iter.filter(|r| r.1.is_defined()) { + rules.set(reg, rule.clone()).expect( + "This is only used in tests, impl isn't exposed publicly. + If you trip this, fix your test", + ); + } + rules + } +} + +impl> PartialEq for RegisterRuleMap +where + R: Reader + PartialEq, +{ + fn eq(&self, rhs: &Self) -> bool { + for &(reg, ref rule) in &*self.rules { + debug_assert!(rule.is_defined()); + if *rule != rhs.get(reg) { + return false; + } + } + + for &(reg, ref rhs_rule) in &*rhs.rules { + debug_assert!(rhs_rule.is_defined()); + if *rhs_rule != self.get(reg) { + return false; + } + } + + true + } +} + +impl> Eq for RegisterRuleMap where R: Reader + Eq {} + +/// An unordered iterator for register rules. +#[derive(Debug, Clone)] +pub struct RegisterRuleIter<'iter, R>(::core::slice::Iter<'iter, (Register, RegisterRule)>) +where + R: Reader; + +impl<'iter, R: Reader> Iterator for RegisterRuleIter<'iter, R> { + type Item = &'iter (Register, RegisterRule); + + fn next(&mut self) -> Option { + self.0.next() + } +} + +/// A row in the virtual unwind table that describes how to find the values of +/// the registers in the *previous* frame for a range of PC addresses. +#[derive(PartialEq, Eq)] +pub struct UnwindTableRow = StoreOnHeap> { + start_address: u64, + end_address: u64, + saved_args_size: u64, + cfa: CfaRule, + registers: RegisterRuleMap, +} + +impl> Debug for UnwindTableRow { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.debug_struct("UnwindTableRow") + .field("start_address", &self.start_address) + .field("end_address", &self.end_address) + .field("saved_args_size", &self.saved_args_size) + .field("cfa", &self.cfa) + .field("registers", &self.registers) + .finish() + } +} + +impl> Clone for UnwindTableRow { + fn clone(&self) -> Self { + Self { + start_address: self.start_address, + end_address: self.end_address, + saved_args_size: self.saved_args_size, + cfa: self.cfa.clone(), + registers: self.registers.clone(), + } + } +} + +impl> Default for UnwindTableRow { + fn default() -> Self { + UnwindTableRow { + start_address: 0, + end_address: 0, + saved_args_size: 0, + cfa: Default::default(), + registers: Default::default(), + } + } +} + +impl> UnwindTableRow { + fn is_default(&self) -> bool { + self.start_address == 0 + && self.end_address == 0 + && self.cfa.is_default() + && self.registers.is_default() + } + + /// Get the starting PC address that this row applies to. + pub fn start_address(&self) -> u64 { + self.start_address + } + + /// Get the end PC address where this row's register rules become + /// unapplicable. + /// + /// In other words, this row describes how to recover the last frame's + /// registers for all PCs where `row.start_address() <= PC < + /// row.end_address()`. This row does NOT describe how to recover registers + /// when `PC == row.end_address()`. + pub fn end_address(&self) -> u64 { + self.end_address + } + + /// Return `true` if the given `address` is within this row's address range, + /// `false` otherwise. + pub fn contains(&self, address: u64) -> bool { + self.start_address <= address && address < self.end_address + } + + /// Returns the amount of args currently on the stack. + /// + /// When unwinding, if the personality function requested a change in IP, + /// the SP needs to be adjusted by saved_args_size. + pub fn saved_args_size(&self) -> u64 { + self.saved_args_size + } + + /// Get the canonical frame address (CFA) recovery rule for this row. + pub fn cfa(&self) -> &CfaRule { + &self.cfa + } + + /// Get the register recovery rule for the given register number. + /// + /// The register number mapping is architecture dependent. For example, in + /// the x86-64 ABI the register number mapping is defined in Figure 3.36: + /// + /// > Figure 3.36: DWARF Register Number Mapping + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// > + /// >
Register Name Number Abbreviation
General Purpose Register RAX 0 %rax
General Purpose Register RDX 1 %rdx
General Purpose Register RCX 2 %rcx
General Purpose Register RBX 3 %rbx
General Purpose Register RSI 4 %rsi
General Purpose Register RDI 5 %rdi
General Purpose Register RBP 6 %rbp
Stack Pointer Register RSP 7 %rsp
Extended Integer Registers 8-15 8-15 %r8-%r15
Return Address RA 16
Vector Registers 0–7 17-24 %xmm0–%xmm7
Extended Vector Registers 8–15 25-32 %xmm8–%xmm15
Floating Point Registers 0–7 33-40 %st0–%st7
MMX Registers 0–7 41-48 %mm0–%mm7
Flag Register 49 %rFLAGS
Segment Register ES 50 %es
Segment Register CS 51 %cs
Segment Register SS 52 %ss
Segment Register DS 53 %ds
Segment Register FS 54 %fs
Segment Register GS 55 %gs
Reserved 56-57
FS Base address 58 %fs.base
GS Base address 59 %gs.base
Reserved 60-61
Task Register 62 %tr
LDT Register 63 %ldtr
128-bit Media Control and Status 64 %mxcsr
x87 Control Word 65 %fcw
x87 Status Word 66 %fsw
Upper Vector Registers 16–31 67-82 %xmm16–%xmm31
Reserved 83-117
Vector Mask Registers 0–7 118-125 %k0–%k7
Reserved 126-129
+ pub fn register(&self, register: Register) -> RegisterRule { + self.registers.get(register) + } + + /// Iterate over all defined register `(number, rule)` pairs. + /// + /// The rules are not iterated in any guaranteed order. Any register that + /// does not make an appearance in the iterator implicitly has the rule + /// `RegisterRule::Undefined`. + /// + /// ``` + /// # use gimli::{EndianSlice, LittleEndian, UnwindTableRow}; + /// # fn foo<'input>(unwind_table_row: UnwindTableRow>) { + /// for &(register, ref rule) in unwind_table_row.registers() { + /// // ... + /// # drop(register); drop(rule); + /// } + /// # } + /// ``` + pub fn registers(&self) -> RegisterRuleIter { + self.registers.iter() + } +} + +/// The canonical frame address (CFA) recovery rules. +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum CfaRule { + /// The CFA is given offset from the given register's value. + RegisterAndOffset { + /// The register containing the base value. + register: Register, + /// The offset from the register's base value. + offset: i64, + }, + /// The CFA is obtained by evaluating this `Reader` as a DWARF expression + /// program. + Expression(Expression), +} + +impl Default for CfaRule { + fn default() -> Self { + CfaRule::RegisterAndOffset { + register: Register(0), + offset: 0, + } + } +} + +impl CfaRule { + fn is_default(&self) -> bool { + match *self { + CfaRule::RegisterAndOffset { register, offset } => { + register == Register(0) && offset == 0 + } + _ => false, + } + } +} + +/// An entry in the abstract CFI table that describes how to find the value of a +/// register. +/// +/// "The register columns contain rules that describe whether a given register +/// has been saved and the rule to find the value for the register in the +/// previous frame." +#[derive(Clone, Debug, PartialEq, Eq)] +#[non_exhaustive] +pub enum RegisterRule { + /// > A register that has this rule has no recoverable value in the previous + /// > frame. (By convention, it is not preserved by a callee.) + Undefined, + + /// > This register has not been modified from the previous frame. (By + /// > convention, it is preserved by the callee, but the callee has not + /// > modified it.) + SameValue, + + /// "The previous value of this register is saved at the address CFA+N where + /// CFA is the current CFA value and N is a signed offset." + Offset(i64), + + /// "The previous value of this register is the value CFA+N where CFA is the + /// current CFA value and N is a signed offset." + ValOffset(i64), + + /// "The previous value of this register is stored in another register + /// numbered R." + Register(Register), + + /// "The previous value of this register is located at the address produced + /// by executing the DWARF expression." + Expression(Expression), + + /// "The previous value of this register is the value produced by executing + /// the DWARF expression." + ValExpression(Expression), + + /// "The rule is defined externally to this specification by the augmenter." + Architectural, + + /// This is a pseudo-register with a constant value. + Constant(u64), +} + +impl RegisterRule { + fn is_defined(&self) -> bool { + !matches!(*self, RegisterRule::Undefined) + } +} + +/// A parsed call frame instruction. +#[derive(Clone, Debug, PartialEq, Eq)] +#[non_exhaustive] +pub enum CallFrameInstruction { + // 6.4.2.1 Row Creation Methods + /// > 1. DW_CFA_set_loc + /// > + /// > The DW_CFA_set_loc instruction takes a single operand that represents + /// > a target address. The required action is to create a new table row + /// > using the specified address as the location. All other values in the + /// > new row are initially identical to the current row. The new location + /// > value is always greater than the current one. If the segment_size + /// > field of this FDE's CIE is non- zero, the initial location is preceded + /// > by a segment selector of the given length. + SetLoc { + /// The target address. + address: u64, + }, + + /// The `AdvanceLoc` instruction is used for all of `DW_CFA_advance_loc` and + /// `DW_CFA_advance_loc{1,2,4}`. + /// + /// > 2. DW_CFA_advance_loc + /// > + /// > The DW_CFA_advance instruction takes a single operand (encoded with + /// > the opcode) that represents a constant delta. The required action is + /// > to create a new table row with a location value that is computed by + /// > taking the current entry’s location value and adding the value of + /// > delta * code_alignment_factor. All other values in the new row are + /// > initially identical to the current row. + AdvanceLoc { + /// The delta to be added to the current address. + delta: u32, + }, + + // 6.4.2.2 CFA Definition Methods + /// > 1. DW_CFA_def_cfa + /// > + /// > The DW_CFA_def_cfa instruction takes two unsigned LEB128 operands + /// > representing a register number and a (non-factored) offset. The + /// > required action is to define the current CFA rule to use the provided + /// > register and offset. + DefCfa { + /// The target register's number. + register: Register, + /// The non-factored offset. + offset: u64, + }, + + /// > 2. DW_CFA_def_cfa_sf + /// > + /// > The DW_CFA_def_cfa_sf instruction takes two operands: an unsigned + /// > LEB128 value representing a register number and a signed LEB128 + /// > factored offset. This instruction is identical to DW_CFA_def_cfa + /// > except that the second operand is signed and factored. The resulting + /// > offset is factored_offset * data_alignment_factor. + DefCfaSf { + /// The target register's number. + register: Register, + /// The factored offset. + factored_offset: i64, + }, + + /// > 3. DW_CFA_def_cfa_register + /// > + /// > The DW_CFA_def_cfa_register instruction takes a single unsigned LEB128 + /// > operand representing a register number. The required action is to + /// > define the current CFA rule to use the provided register (but to keep + /// > the old offset). This operation is valid only if the current CFA rule + /// > is defined to use a register and offset. + DefCfaRegister { + /// The target register's number. + register: Register, + }, + + /// > 4. DW_CFA_def_cfa_offset + /// > + /// > The DW_CFA_def_cfa_offset instruction takes a single unsigned LEB128 + /// > operand representing a (non-factored) offset. The required action is + /// > to define the current CFA rule to use the provided offset (but to keep + /// > the old register). This operation is valid only if the current CFA + /// > rule is defined to use a register and offset. + DefCfaOffset { + /// The non-factored offset. + offset: u64, + }, + + /// > 5. DW_CFA_def_cfa_offset_sf + /// > + /// > The DW_CFA_def_cfa_offset_sf instruction takes a signed LEB128 operand + /// > representing a factored offset. This instruction is identical to + /// > DW_CFA_def_cfa_offset except that the operand is signed and + /// > factored. The resulting offset is factored_offset * + /// > data_alignment_factor. This operation is valid only if the current CFA + /// > rule is defined to use a register and offset. + DefCfaOffsetSf { + /// The factored offset. + factored_offset: i64, + }, + + /// > 6. DW_CFA_def_cfa_expression + /// > + /// > The DW_CFA_def_cfa_expression instruction takes a single operand + /// > encoded as a DW_FORM_exprloc value representing a DWARF + /// > expression. The required action is to establish that expression as the + /// > means by which the current CFA is computed. + DefCfaExpression { + /// The DWARF expression. + expression: Expression, + }, + + // 6.4.2.3 Register Rule Instructions + /// > 1. DW_CFA_undefined + /// > + /// > The DW_CFA_undefined instruction takes a single unsigned LEB128 + /// > operand that represents a register number. The required action is to + /// > set the rule for the specified register to “undefined.” + Undefined { + /// The target register's number. + register: Register, + }, + + /// > 2. DW_CFA_same_value + /// > + /// > The DW_CFA_same_value instruction takes a single unsigned LEB128 + /// > operand that represents a register number. The required action is to + /// > set the rule for the specified register to “same value.” + SameValue { + /// The target register's number. + register: Register, + }, + + /// The `Offset` instruction represents both `DW_CFA_offset` and + /// `DW_CFA_offset_extended`. + /// + /// > 3. DW_CFA_offset + /// > + /// > The DW_CFA_offset instruction takes two operands: a register number + /// > (encoded with the opcode) and an unsigned LEB128 constant representing + /// > a factored offset. The required action is to change the rule for the + /// > register indicated by the register number to be an offset(N) rule + /// > where the value of N is factored offset * data_alignment_factor. + Offset { + /// The target register's number. + register: Register, + /// The factored offset. + factored_offset: u64, + }, + + /// > 5. DW_CFA_offset_extended_sf + /// > + /// > The DW_CFA_offset_extended_sf instruction takes two operands: an + /// > unsigned LEB128 value representing a register number and a signed + /// > LEB128 factored offset. This instruction is identical to + /// > DW_CFA_offset_extended except that the second operand is signed and + /// > factored. The resulting offset is factored_offset * + /// > data_alignment_factor. + OffsetExtendedSf { + /// The target register's number. + register: Register, + /// The factored offset. + factored_offset: i64, + }, + + /// > 6. DW_CFA_val_offset + /// > + /// > The DW_CFA_val_offset instruction takes two unsigned LEB128 operands + /// > representing a register number and a factored offset. The required + /// > action is to change the rule for the register indicated by the + /// > register number to be a val_offset(N) rule where the value of N is + /// > factored_offset * data_alignment_factor. + ValOffset { + /// The target register's number. + register: Register, + /// The factored offset. + factored_offset: u64, + }, + + /// > 7. DW_CFA_val_offset_sf + /// > + /// > The DW_CFA_val_offset_sf instruction takes two operands: an unsigned + /// > LEB128 value representing a register number and a signed LEB128 + /// > factored offset. This instruction is identical to DW_CFA_val_offset + /// > except that the second operand is signed and factored. The resulting + /// > offset is factored_offset * data_alignment_factor. + ValOffsetSf { + /// The target register's number. + register: Register, + /// The factored offset. + factored_offset: i64, + }, + + /// > 8. DW_CFA_register + /// > + /// > The DW_CFA_register instruction takes two unsigned LEB128 operands + /// > representing register numbers. The required action is to set the rule + /// > for the first register to be register(R) where R is the second + /// > register. + Register { + /// The number of the register whose rule is being changed. + dest_register: Register, + /// The number of the register where the other register's value can be + /// found. + src_register: Register, + }, + + /// > 9. DW_CFA_expression + /// > + /// > The DW_CFA_expression instruction takes two operands: an unsigned + /// > LEB128 value representing a register number, and a DW_FORM_block value + /// > representing a DWARF expression. The required action is to change the + /// > rule for the register indicated by the register number to be an + /// > expression(E) rule where E is the DWARF expression. That is, the DWARF + /// > expression computes the address. The value of the CFA is pushed on the + /// > DWARF evaluation stack prior to execution of the DWARF expression. + Expression { + /// The target register's number. + register: Register, + /// The DWARF expression. + expression: Expression, + }, + + /// > 10. DW_CFA_val_expression + /// > + /// > The DW_CFA_val_expression instruction takes two operands: an unsigned + /// > LEB128 value representing a register number, and a DW_FORM_block value + /// > representing a DWARF expression. The required action is to change the + /// > rule for the register indicated by the register number to be a + /// > val_expression(E) rule where E is the DWARF expression. That is, the + /// > DWARF expression computes the value of the given register. The value + /// > of the CFA is pushed on the DWARF evaluation stack prior to execution + /// > of the DWARF expression. + ValExpression { + /// The target register's number. + register: Register, + /// The DWARF expression. + expression: Expression, + }, + + /// The `Restore` instruction represents both `DW_CFA_restore` and + /// `DW_CFA_restore_extended`. + /// + /// > 11. DW_CFA_restore + /// > + /// > The DW_CFA_restore instruction takes a single operand (encoded with + /// > the opcode) that represents a register number. The required action is + /// > to change the rule for the indicated register to the rule assigned it + /// > by the initial_instructions in the CIE. + Restore { + /// The register to be reset. + register: Register, + }, + + // 6.4.2.4 Row State Instructions + /// > 1. DW_CFA_remember_state + /// > + /// > The DW_CFA_remember_state instruction takes no operands. The required + /// > action is to push the set of rules for every register onto an implicit + /// > stack. + RememberState, + + /// > 2. DW_CFA_restore_state + /// > + /// > The DW_CFA_restore_state instruction takes no operands. The required + /// > action is to pop the set of rules off the implicit stack and place + /// > them in the current row. + RestoreState, + + /// > DW_CFA_GNU_args_size + /// > + /// > GNU Extension + /// > + /// > The DW_CFA_GNU_args_size instruction takes an unsigned LEB128 operand + /// > representing an argument size. This instruction specifies the total of + /// > the size of the arguments which have been pushed onto the stack. + ArgsSize { + /// The size of the arguments which have been pushed onto the stack + size: u64, + }, + + /// > DW_CFA_AARCH64_negate_ra_state + /// > + /// > AArch64 Extension + /// > + /// > The DW_CFA_AARCH64_negate_ra_state operation negates bit 0 of the + /// > RA_SIGN_STATE pseudo-register. It does not take any operands. The + /// > DW_CFA_AARCH64_negate_ra_state must not be mixed with other DWARF Register + /// > Rule Instructions on the RA_SIGN_STATE pseudo-register in one Common + /// > Information Entry (CIE) and Frame Descriptor Entry (FDE) program sequence. + NegateRaState, + + // 6.4.2.5 Padding Instruction + /// > 1. DW_CFA_nop + /// > + /// > The DW_CFA_nop instruction has no operands and no required actions. It + /// > is used as padding to make a CIE or FDE an appropriate size. + Nop, +} + +const CFI_INSTRUCTION_HIGH_BITS_MASK: u8 = 0b1100_0000; +const CFI_INSTRUCTION_LOW_BITS_MASK: u8 = !CFI_INSTRUCTION_HIGH_BITS_MASK; + +impl CallFrameInstruction { + fn parse( + input: &mut R, + address_encoding: Option, + parameters: &PointerEncodingParameters, + vendor: Vendor, + ) -> Result> { + let instruction = input.read_u8()?; + let high_bits = instruction & CFI_INSTRUCTION_HIGH_BITS_MASK; + + if high_bits == constants::DW_CFA_advance_loc.0 { + let delta = instruction & CFI_INSTRUCTION_LOW_BITS_MASK; + return Ok(CallFrameInstruction::AdvanceLoc { + delta: u32::from(delta), + }); + } + + if high_bits == constants::DW_CFA_offset.0 { + let register = Register((instruction & CFI_INSTRUCTION_LOW_BITS_MASK).into()); + let offset = input.read_uleb128()?; + return Ok(CallFrameInstruction::Offset { + register, + factored_offset: offset, + }); + } + + if high_bits == constants::DW_CFA_restore.0 { + let register = Register((instruction & CFI_INSTRUCTION_LOW_BITS_MASK).into()); + return Ok(CallFrameInstruction::Restore { register }); + } + + debug_assert_eq!(high_bits, 0); + let instruction = constants::DwCfa(instruction); + + match instruction { + constants::DW_CFA_nop => Ok(CallFrameInstruction::Nop), + + constants::DW_CFA_set_loc => { + let address = if let Some(encoding) = address_encoding { + parse_encoded_pointer(encoding, parameters, input)?.direct()? + } else { + input.read_address(parameters.address_size)? + }; + Ok(CallFrameInstruction::SetLoc { address }) + } + + constants::DW_CFA_advance_loc1 => { + let delta = input.read_u8()?; + Ok(CallFrameInstruction::AdvanceLoc { + delta: u32::from(delta), + }) + } + + constants::DW_CFA_advance_loc2 => { + let delta = input.read_u16()?; + Ok(CallFrameInstruction::AdvanceLoc { + delta: u32::from(delta), + }) + } + + constants::DW_CFA_advance_loc4 => { + let delta = input.read_u32()?; + Ok(CallFrameInstruction::AdvanceLoc { delta }) + } + + constants::DW_CFA_offset_extended => { + let register = input.read_uleb128().and_then(Register::from_u64)?; + let offset = input.read_uleb128()?; + Ok(CallFrameInstruction::Offset { + register, + factored_offset: offset, + }) + } + + constants::DW_CFA_restore_extended => { + let register = input.read_uleb128().and_then(Register::from_u64)?; + Ok(CallFrameInstruction::Restore { register }) + } + + constants::DW_CFA_undefined => { + let register = input.read_uleb128().and_then(Register::from_u64)?; + Ok(CallFrameInstruction::Undefined { register }) + } + + constants::DW_CFA_same_value => { + let register = input.read_uleb128().and_then(Register::from_u64)?; + Ok(CallFrameInstruction::SameValue { register }) + } + + constants::DW_CFA_register => { + let dest = input.read_uleb128().and_then(Register::from_u64)?; + let src = input.read_uleb128().and_then(Register::from_u64)?; + Ok(CallFrameInstruction::Register { + dest_register: dest, + src_register: src, + }) + } + + constants::DW_CFA_remember_state => Ok(CallFrameInstruction::RememberState), + + constants::DW_CFA_restore_state => Ok(CallFrameInstruction::RestoreState), + + constants::DW_CFA_def_cfa => { + let register = input.read_uleb128().and_then(Register::from_u64)?; + let offset = input.read_uleb128()?; + Ok(CallFrameInstruction::DefCfa { register, offset }) + } + + constants::DW_CFA_def_cfa_register => { + let register = input.read_uleb128().and_then(Register::from_u64)?; + Ok(CallFrameInstruction::DefCfaRegister { register }) + } + + constants::DW_CFA_def_cfa_offset => { + let offset = input.read_uleb128()?; + Ok(CallFrameInstruction::DefCfaOffset { offset }) + } + + constants::DW_CFA_def_cfa_expression => { + let len = input.read_uleb128().and_then(R::Offset::from_u64)?; + let expression = input.split(len)?; + Ok(CallFrameInstruction::DefCfaExpression { + expression: Expression(expression), + }) + } + + constants::DW_CFA_expression => { + let register = input.read_uleb128().and_then(Register::from_u64)?; + let len = input.read_uleb128().and_then(R::Offset::from_u64)?; + let expression = input.split(len)?; + Ok(CallFrameInstruction::Expression { + register, + expression: Expression(expression), + }) + } + + constants::DW_CFA_offset_extended_sf => { + let register = input.read_uleb128().and_then(Register::from_u64)?; + let offset = input.read_sleb128()?; + Ok(CallFrameInstruction::OffsetExtendedSf { + register, + factored_offset: offset, + }) + } + + constants::DW_CFA_def_cfa_sf => { + let register = input.read_uleb128().and_then(Register::from_u64)?; + let offset = input.read_sleb128()?; + Ok(CallFrameInstruction::DefCfaSf { + register, + factored_offset: offset, + }) + } + + constants::DW_CFA_def_cfa_offset_sf => { + let offset = input.read_sleb128()?; + Ok(CallFrameInstruction::DefCfaOffsetSf { + factored_offset: offset, + }) + } + + constants::DW_CFA_val_offset => { + let register = input.read_uleb128().and_then(Register::from_u64)?; + let offset = input.read_uleb128()?; + Ok(CallFrameInstruction::ValOffset { + register, + factored_offset: offset, + }) + } + + constants::DW_CFA_val_offset_sf => { + let register = input.read_uleb128().and_then(Register::from_u64)?; + let offset = input.read_sleb128()?; + Ok(CallFrameInstruction::ValOffsetSf { + register, + factored_offset: offset, + }) + } + + constants::DW_CFA_val_expression => { + let register = input.read_uleb128().and_then(Register::from_u64)?; + let len = input.read_uleb128().and_then(R::Offset::from_u64)?; + let expression = input.split(len)?; + Ok(CallFrameInstruction::ValExpression { + register, + expression: Expression(expression), + }) + } + + constants::DW_CFA_GNU_args_size => { + let size = input.read_uleb128()?; + Ok(CallFrameInstruction::ArgsSize { size }) + } + + constants::DW_CFA_AARCH64_negate_ra_state if vendor == Vendor::AArch64 => { + Ok(CallFrameInstruction::NegateRaState) + } + + otherwise => Err(Error::UnknownCallFrameInstruction(otherwise)), + } + } +} + +/// A lazy iterator parsing call frame instructions. +/// +/// Can be [used with +/// `FallibleIterator`](./index.html#using-with-fallibleiterator). +#[derive(Clone, Debug)] +pub struct CallFrameInstructionIter<'a, R: Reader> { + input: R, + address_encoding: Option, + parameters: PointerEncodingParameters<'a, R>, + vendor: Vendor, +} + +impl<'a, R: Reader> CallFrameInstructionIter<'a, R> { + /// Parse the next call frame instruction. + pub fn next(&mut self) -> Result>> { + if self.input.is_empty() { + return Ok(None); + } + + match CallFrameInstruction::parse( + &mut self.input, + self.address_encoding, + &self.parameters, + self.vendor, + ) { + Ok(instruction) => Ok(Some(instruction)), + Err(e) => { + self.input.empty(); + Err(e) + } + } + } +} + +#[cfg(feature = "fallible-iterator")] +impl<'a, R: Reader> fallible_iterator::FallibleIterator for CallFrameInstructionIter<'a, R> { + type Item = CallFrameInstruction; + type Error = Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + CallFrameInstructionIter::next(self) + } +} + +/// Parse a `DW_EH_PE_*` pointer encoding. +#[doc(hidden)] +#[inline] +fn parse_pointer_encoding(input: &mut R) -> Result { + let eh_pe = input.read_u8()?; + let eh_pe = constants::DwEhPe(eh_pe); + + if eh_pe.is_valid_encoding() { + Ok(eh_pe) + } else { + Err(Error::UnknownPointerEncoding) + } +} + +/// A decoded pointer. +#[derive(Copy, Clone, Debug, PartialEq, Eq)] +pub enum Pointer { + /// This value is the decoded pointer value. + Direct(u64), + + /// This value is *not* the pointer value, but points to the address of + /// where the real pointer value lives. In other words, deref this pointer + /// to get the real pointer value. + /// + /// Chase this pointer at your own risk: do you trust the DWARF data it came + /// from? + Indirect(u64), +} + +impl Default for Pointer { + #[inline] + fn default() -> Self { + Pointer::Direct(0) + } +} + +impl Pointer { + #[inline] + fn new(encoding: constants::DwEhPe, address: u64) -> Pointer { + if encoding.is_indirect() { + Pointer::Indirect(address) + } else { + Pointer::Direct(address) + } + } + + /// Return the direct pointer value. + #[inline] + pub fn direct(self) -> Result { + match self { + Pointer::Direct(p) => Ok(p), + Pointer::Indirect(_) => Err(Error::UnsupportedPointerEncoding), + } + } + + /// Return the pointer value, discarding indirectness information. + #[inline] + pub fn pointer(self) -> u64 { + match self { + Pointer::Direct(p) | Pointer::Indirect(p) => p, + } + } +} + +#[derive(Clone, Debug)] +struct PointerEncodingParameters<'a, R: Reader> { + bases: &'a SectionBaseAddresses, + func_base: Option, + address_size: u8, + section: &'a R, +} + +fn parse_encoded_pointer( + encoding: constants::DwEhPe, + parameters: &PointerEncodingParameters, + input: &mut R, +) -> Result { + // TODO: check this once only in parse_pointer_encoding + if !encoding.is_valid_encoding() { + return Err(Error::UnknownPointerEncoding); + } + + if encoding == constants::DW_EH_PE_omit { + return Err(Error::CannotParseOmitPointerEncoding); + } + + let base = match encoding.application() { + constants::DW_EH_PE_absptr => 0, + constants::DW_EH_PE_pcrel => { + if let Some(section_base) = parameters.bases.section { + let offset_from_section = input.offset_from(parameters.section); + section_base.wrapping_add(offset_from_section.into_u64()) + } else { + return Err(Error::PcRelativePointerButSectionBaseIsUndefined); + } + } + constants::DW_EH_PE_textrel => { + if let Some(text) = parameters.bases.text { + text + } else { + return Err(Error::TextRelativePointerButTextBaseIsUndefined); + } + } + constants::DW_EH_PE_datarel => { + if let Some(data) = parameters.bases.data { + data + } else { + return Err(Error::DataRelativePointerButDataBaseIsUndefined); + } + } + constants::DW_EH_PE_funcrel => { + if let Some(func) = parameters.func_base { + func + } else { + return Err(Error::FuncRelativePointerInBadContext); + } + } + constants::DW_EH_PE_aligned => return Err(Error::UnsupportedPointerEncoding), + _ => unreachable!(), + }; + + let offset = match encoding.format() { + // Unsigned variants. + constants::DW_EH_PE_absptr => input.read_address(parameters.address_size), + constants::DW_EH_PE_uleb128 => input.read_uleb128(), + constants::DW_EH_PE_udata2 => input.read_u16().map(u64::from), + constants::DW_EH_PE_udata4 => input.read_u32().map(u64::from), + constants::DW_EH_PE_udata8 => input.read_u64(), + + // Signed variants. Here we sign extend the values (happens by + // default when casting a signed integer to a larger range integer + // in Rust), return them as u64, and rely on wrapping addition to do + // the right thing when adding these offsets to their bases. + constants::DW_EH_PE_sleb128 => input.read_sleb128().map(|a| a as u64), + constants::DW_EH_PE_sdata2 => input.read_i16().map(|a| a as u64), + constants::DW_EH_PE_sdata4 => input.read_i32().map(|a| a as u64), + constants::DW_EH_PE_sdata8 => input.read_i64().map(|a| a as u64), + + // That was all of the valid encoding formats. + _ => unreachable!(), + }?; + + Ok(Pointer::new(encoding, base.wrapping_add(offset))) +} + +#[cfg(test)] +mod tests { + use super::*; + use super::{parse_cfi_entry, AugmentationData, RegisterRuleMap, UnwindContext}; + use crate::common::Format; + use crate::constants; + use crate::endianity::{BigEndian, Endianity, LittleEndian, NativeEndian}; + use crate::read::{ + EndianSlice, Error, Expression, Pointer, ReaderOffsetId, Result, Section as ReadSection, + }; + use crate::test_util::GimliSectionMethods; + use alloc::boxed::Box; + use alloc::vec::Vec; + use core::marker::PhantomData; + use core::mem; + use core::u64; + use test_assembler::{Endian, Label, LabelMaker, LabelOrNum, Section, ToLabelOrNum}; + + // Ensure each test tries to read the same section kind that it wrote. + #[derive(Clone, Copy)] + struct SectionKind
(PhantomData
); + + impl SectionKind { + fn endian<'input, E>(self) -> Endian + where + E: Endianity, + T: UnwindSection>, + T::Offset: UnwindOffset, + { + if E::default().is_big_endian() { + Endian::Big + } else { + Endian::Little + } + } + + fn section<'input, E>(self, contents: &'input [u8]) -> T + where + E: Endianity, + T: UnwindSection> + ReadSection>, + T::Offset: UnwindOffset, + { + EndianSlice::new(contents, E::default()).into() + } + } + + fn debug_frame_le<'a>() -> SectionKind>> { + SectionKind(PhantomData) + } + + fn debug_frame_be<'a>() -> SectionKind>> { + SectionKind(PhantomData) + } + + fn eh_frame_le<'a>() -> SectionKind>> { + SectionKind(PhantomData) + } + + fn parse_fde( + section: Section, + input: &mut R, + get_cie: F, + ) -> Result> + where + R: Reader, + Section: UnwindSection, + O: UnwindOffset, + F: FnMut(&Section, &BaseAddresses, O) -> Result>, + { + let bases = Default::default(); + match parse_cfi_entry(&bases, §ion, input) { + Ok(Some(CieOrFde::Fde(partial))) => partial.parse(get_cie), + Ok(_) => Err(Error::NoEntryAtGivenOffset), + Err(e) => Err(e), + } + } + + // Mixin methods for `Section` to help define binary test data. + + trait CfiSectionMethods: GimliSectionMethods { + fn cie<'aug, 'input, E, T>( + self, + _kind: SectionKind, + augmentation: Option<&'aug str>, + cie: &mut CommonInformationEntry>, + ) -> Self + where + E: Endianity, + T: UnwindSection>, + T::Offset: UnwindOffset; + fn fde<'a, 'input, E, T, L>( + self, + _kind: SectionKind, + cie_offset: L, + fde: &mut FrameDescriptionEntry>, + ) -> Self + where + E: Endianity, + T: UnwindSection>, + T::Offset: UnwindOffset, + L: ToLabelOrNum<'a, u64>; + } + + impl CfiSectionMethods for Section { + fn cie<'aug, 'input, E, T>( + self, + _kind: SectionKind, + augmentation: Option<&'aug str>, + cie: &mut CommonInformationEntry>, + ) -> Self + where + E: Endianity, + T: UnwindSection>, + T::Offset: UnwindOffset, + { + cie.offset = self.size() as _; + let length = Label::new(); + let start = Label::new(); + let end = Label::new(); + + let section = match cie.format { + Format::Dwarf32 => self.D32(&length).mark(&start).D32(0xffff_ffff), + Format::Dwarf64 => { + let section = self.D32(0xffff_ffff); + section.D64(&length).mark(&start).D64(0xffff_ffff_ffff_ffff) + } + }; + + let mut section = section.D8(cie.version); + + if let Some(augmentation) = augmentation { + section = section.append_bytes(augmentation.as_bytes()); + } + + // Null terminator for augmentation string. + let section = section.D8(0); + + let section = if T::has_address_and_segment_sizes(cie.version) { + section.D8(cie.address_size).D8(cie.segment_size) + } else { + section + }; + + let section = section + .uleb(cie.code_alignment_factor) + .sleb(cie.data_alignment_factor) + .uleb(cie.return_address_register.0.into()) + .append_bytes(cie.initial_instructions.slice()) + .mark(&end); + + cie.length = (&end - &start) as usize; + length.set_const(cie.length as u64); + + section + } + + fn fde<'a, 'input, E, T, L>( + self, + _kind: SectionKind, + cie_offset: L, + fde: &mut FrameDescriptionEntry>, + ) -> Self + where + E: Endianity, + T: UnwindSection>, + T::Offset: UnwindOffset, + L: ToLabelOrNum<'a, u64>, + { + fde.offset = self.size() as _; + let length = Label::new(); + let start = Label::new(); + let end = Label::new(); + + assert_eq!(fde.format, fde.cie.format); + + let section = match T::cie_offset_encoding(fde.format) { + CieOffsetEncoding::U32 => { + let section = self.D32(&length).mark(&start); + match cie_offset.to_labelornum() { + LabelOrNum::Label(ref l) => section.D32(l), + LabelOrNum::Num(o) => section.D32(o as u32), + } + } + CieOffsetEncoding::U64 => { + let section = self.D32(0xffff_ffff); + section.D64(&length).mark(&start).D64(cie_offset) + } + }; + + let section = match fde.cie.segment_size { + 0 => section, + 4 => section.D32(fde.initial_segment as u32), + 8 => section.D64(fde.initial_segment), + x => panic!("Unsupported test segment size: {}", x), + }; + + let section = match fde.cie.address_size { + 4 => section + .D32(fde.initial_address() as u32) + .D32(fde.len() as u32), + 8 => section.D64(fde.initial_address()).D64(fde.len()), + x => panic!("Unsupported address size: {}", x), + }; + + let section = if let Some(ref augmentation) = fde.augmentation { + let cie_aug = fde + .cie + .augmentation + .expect("FDE has augmentation, but CIE doesn't"); + + if let Some(lsda) = augmentation.lsda { + // We only support writing `DW_EH_PE_absptr` here. + assert_eq!( + cie_aug + .lsda + .expect("FDE has lsda, but CIE doesn't") + .format(), + constants::DW_EH_PE_absptr + ); + + // Augmentation data length + let section = section.uleb(u64::from(fde.cie.address_size)); + match fde.cie.address_size { + 4 => section.D32({ + let x: u64 = lsda.pointer(); + x as u32 + }), + 8 => section.D64({ + let x: u64 = lsda.pointer(); + x + }), + x => panic!("Unsupported address size: {}", x), + } + } else { + // Even if we don't have any augmentation data, if there is + // an augmentation defined, we need to put the length in. + section.uleb(0) + } + } else { + section + }; + + let section = section.append_bytes(fde.instructions.slice()).mark(&end); + + fde.length = (&end - &start) as usize; + length.set_const(fde.length as u64); + + section + } + } + + trait ResultExt { + fn map_eof(self, input: &[u8]) -> Self; + } + + impl ResultExt for Result { + fn map_eof(self, input: &[u8]) -> Self { + match self { + Err(Error::UnexpectedEof(id)) => { + let id = ReaderOffsetId(id.0 - input.as_ptr() as u64); + Err(Error::UnexpectedEof(id)) + } + r => r, + } + } + } + + fn assert_parse_cie<'input, E>( + kind: SectionKind>>, + section: Section, + address_size: u8, + expected: Result<( + EndianSlice<'input, E>, + CommonInformationEntry>, + )>, + ) where + E: Endianity, + { + let section = section.get_contents().unwrap(); + let mut debug_frame = kind.section(§ion); + debug_frame.set_address_size(address_size); + let input = &mut EndianSlice::new(§ion, E::default()); + let bases = Default::default(); + let result = CommonInformationEntry::parse(&bases, &debug_frame, input); + let result = result.map(|cie| (*input, cie)).map_eof(§ion); + assert_eq!(result, expected); + } + + #[test] + fn test_parse_cie_incomplete_length_32() { + let kind = debug_frame_le(); + let section = Section::with_endian(kind.endian()).L16(5); + assert_parse_cie( + kind, + section, + 8, + Err(Error::UnexpectedEof(ReaderOffsetId(0))), + ); + } + + #[test] + fn test_parse_cie_incomplete_length_64() { + let kind = debug_frame_le(); + let section = Section::with_endian(kind.endian()) + .L32(0xffff_ffff) + .L32(12345); + assert_parse_cie( + kind, + section, + 8, + Err(Error::UnexpectedEof(ReaderOffsetId(4))), + ); + } + + #[test] + fn test_parse_cie_incomplete_id_32() { + let kind = debug_frame_be(); + let section = Section::with_endian(kind.endian()) + // The length is not large enough to contain the ID. + .B32(3) + .B32(0xffff_ffff); + assert_parse_cie( + kind, + section, + 8, + Err(Error::UnexpectedEof(ReaderOffsetId(4))), + ); + } + + #[test] + fn test_parse_cie_bad_id_32() { + let kind = debug_frame_be(); + let section = Section::with_endian(kind.endian()) + // Initial length + .B32(4) + // Not the CIE Id. + .B32(0xbad1_bad2); + assert_parse_cie(kind, section, 8, Err(Error::NotCieId)); + } + + #[test] + fn test_parse_cie_32_bad_version() { + let mut cie = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + version: 99, + augmentation: None, + address_size: 4, + segment_size: 0, + code_alignment_factor: 1, + data_alignment_factor: 2, + return_address_register: Register(3), + initial_instructions: EndianSlice::new(&[], LittleEndian), + }; + + let kind = debug_frame_le(); + let section = Section::with_endian(kind.endian()).cie(kind, None, &mut cie); + assert_parse_cie(kind, section, 4, Err(Error::UnknownVersion(99))); + } + + #[test] + fn test_parse_cie_unknown_augmentation() { + let length = Label::new(); + let start = Label::new(); + let end = Label::new(); + + let augmentation = Some("replicant"); + let expected_rest = [1, 2, 3]; + + let kind = debug_frame_le(); + let section = Section::with_endian(kind.endian()) + // Initial length + .L32(&length) + .mark(&start) + // CIE Id + .L32(0xffff_ffff) + // Version + .D8(4) + // Augmentation + .append_bytes(augmentation.unwrap().as_bytes()) + // Null terminator + .D8(0) + // Extra augmented data that we can't understand. + .L32(1) + .L32(2) + .L32(3) + .L32(4) + .L32(5) + .L32(6) + .mark(&end) + .append_bytes(&expected_rest); + + let expected_length = (&end - &start) as u64; + length.set_const(expected_length); + + assert_parse_cie(kind, section, 8, Err(Error::UnknownAugmentation)); + } + + fn test_parse_cie(format: Format, version: u8, address_size: u8) { + let expected_rest = [1, 2, 3, 4, 5, 6, 7, 8, 9]; + let expected_instrs: Vec<_> = (0..4).map(|_| constants::DW_CFA_nop.0).collect(); + + let mut cie = CommonInformationEntry { + offset: 0, + length: 0, + format, + version, + augmentation: None, + address_size, + segment_size: 0, + code_alignment_factor: 16, + data_alignment_factor: 32, + return_address_register: Register(1), + initial_instructions: EndianSlice::new(&expected_instrs, LittleEndian), + }; + + let kind = debug_frame_le(); + let section = Section::with_endian(kind.endian()) + .cie(kind, None, &mut cie) + .append_bytes(&expected_rest); + + assert_parse_cie( + kind, + section, + address_size, + Ok((EndianSlice::new(&expected_rest, LittleEndian), cie)), + ); + } + + #[test] + fn test_parse_cie_32_ok() { + test_parse_cie(Format::Dwarf32, 1, 4); + test_parse_cie(Format::Dwarf32, 1, 8); + test_parse_cie(Format::Dwarf32, 4, 4); + test_parse_cie(Format::Dwarf32, 4, 8); + } + + #[test] + fn test_parse_cie_64_ok() { + test_parse_cie(Format::Dwarf64, 1, 4); + test_parse_cie(Format::Dwarf64, 1, 8); + test_parse_cie(Format::Dwarf64, 4, 4); + test_parse_cie(Format::Dwarf64, 4, 8); + } + + #[test] + fn test_parse_cie_length_too_big() { + let expected_instrs: Vec<_> = (0..13).map(|_| constants::DW_CFA_nop.0).collect(); + + let mut cie = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + version: 4, + augmentation: None, + address_size: 4, + segment_size: 0, + code_alignment_factor: 0, + data_alignment_factor: 0, + return_address_register: Register(3), + initial_instructions: EndianSlice::new(&expected_instrs, LittleEndian), + }; + + let kind = debug_frame_le(); + let section = Section::with_endian(kind.endian()).cie(kind, None, &mut cie); + + let mut contents = section.get_contents().unwrap(); + + // Overwrite the length to be too big. + contents[0] = 0; + contents[1] = 0; + contents[2] = 0; + contents[3] = 255; + + let debug_frame = DebugFrame::new(&contents, LittleEndian); + let bases = Default::default(); + assert_eq!( + CommonInformationEntry::parse( + &bases, + &debug_frame, + &mut EndianSlice::new(&contents, LittleEndian) + ) + .map_eof(&contents), + Err(Error::UnexpectedEof(ReaderOffsetId(4))) + ); + } + + #[test] + fn test_parse_fde_incomplete_length_32() { + let kind = debug_frame_le(); + let section = Section::with_endian(kind.endian()).L16(5); + let section = section.get_contents().unwrap(); + let debug_frame = kind.section(§ion); + let rest = &mut EndianSlice::new(§ion, LittleEndian); + assert_eq!( + parse_fde(debug_frame, rest, UnwindSection::cie_from_offset).map_eof(§ion), + Err(Error::UnexpectedEof(ReaderOffsetId(0))) + ); + } + + #[test] + fn test_parse_fde_incomplete_length_64() { + let kind = debug_frame_le(); + let section = Section::with_endian(kind.endian()) + .L32(0xffff_ffff) + .L32(12345); + let section = section.get_contents().unwrap(); + let debug_frame = kind.section(§ion); + let rest = &mut EndianSlice::new(§ion, LittleEndian); + assert_eq!( + parse_fde(debug_frame, rest, UnwindSection::cie_from_offset).map_eof(§ion), + Err(Error::UnexpectedEof(ReaderOffsetId(4))) + ); + } + + #[test] + fn test_parse_fde_incomplete_cie_pointer_32() { + let kind = debug_frame_be(); + let section = Section::with_endian(kind.endian()) + // The length is not large enough to contain the CIE pointer. + .B32(3) + .B32(1994); + let section = section.get_contents().unwrap(); + let debug_frame = kind.section(§ion); + let rest = &mut EndianSlice::new(§ion, BigEndian); + assert_eq!( + parse_fde(debug_frame, rest, UnwindSection::cie_from_offset).map_eof(§ion), + Err(Error::UnexpectedEof(ReaderOffsetId(4))) + ); + } + + #[test] + fn test_parse_fde_32_ok() { + let expected_rest = [1, 2, 3, 4, 5, 6, 7, 8, 9]; + let cie_offset = 0xbad0_bad1; + let expected_instrs: Vec<_> = (0..7).map(|_| constants::DW_CFA_nop.0).collect(); + + let cie = CommonInformationEntry { + offset: 0, + length: 100, + format: Format::Dwarf32, + version: 4, + augmentation: None, + // DWARF32 with a 64 bit address size! Holy moly! + address_size: 8, + segment_size: 0, + code_alignment_factor: 3, + data_alignment_factor: 2, + return_address_register: Register(1), + initial_instructions: EndianSlice::new(&[], LittleEndian), + }; + + let mut fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie.clone(), + initial_segment: 0, + initial_address: 0xfeed_beef, + address_range: 39, + augmentation: None, + instructions: EndianSlice::new(&expected_instrs, LittleEndian), + }; + + let kind = debug_frame_le(); + let section = Section::with_endian(kind.endian()) + .fde(kind, cie_offset, &mut fde) + .append_bytes(&expected_rest); + + let section = section.get_contents().unwrap(); + let debug_frame = kind.section(§ion); + let rest = &mut EndianSlice::new(§ion, LittleEndian); + + let get_cie = |_: &_, _: &_, offset| { + assert_eq!(offset, DebugFrameOffset(cie_offset as usize)); + Ok(cie.clone()) + }; + + assert_eq!(parse_fde(debug_frame, rest, get_cie), Ok(fde)); + assert_eq!(*rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_fde_32_with_segment_ok() { + let expected_rest = [1, 2, 3, 4, 5, 6, 7, 8, 9]; + let cie_offset = 0xbad0_bad1; + let expected_instrs: Vec<_> = (0..92).map(|_| constants::DW_CFA_nop.0).collect(); + + let cie = CommonInformationEntry { + offset: 0, + length: 100, + format: Format::Dwarf32, + version: 4, + augmentation: None, + address_size: 4, + segment_size: 4, + code_alignment_factor: 3, + data_alignment_factor: 2, + return_address_register: Register(1), + initial_instructions: EndianSlice::new(&[], LittleEndian), + }; + + let mut fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie.clone(), + initial_segment: 0xbadb_ad11, + initial_address: 0xfeed_beef, + address_range: 999, + augmentation: None, + instructions: EndianSlice::new(&expected_instrs, LittleEndian), + }; + + let kind = debug_frame_le(); + let section = Section::with_endian(kind.endian()) + .fde(kind, cie_offset, &mut fde) + .append_bytes(&expected_rest); + + let section = section.get_contents().unwrap(); + let debug_frame = kind.section(§ion); + let rest = &mut EndianSlice::new(§ion, LittleEndian); + + let get_cie = |_: &_, _: &_, offset| { + assert_eq!(offset, DebugFrameOffset(cie_offset as usize)); + Ok(cie.clone()) + }; + + assert_eq!(parse_fde(debug_frame, rest, get_cie), Ok(fde)); + assert_eq!(*rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_fde_64_ok() { + let expected_rest = [1, 2, 3, 4, 5, 6, 7, 8, 9]; + let cie_offset = 0xbad0_bad1; + let expected_instrs: Vec<_> = (0..7).map(|_| constants::DW_CFA_nop.0).collect(); + + let cie = CommonInformationEntry { + offset: 0, + length: 100, + format: Format::Dwarf64, + version: 4, + augmentation: None, + address_size: 8, + segment_size: 0, + code_alignment_factor: 3, + data_alignment_factor: 2, + return_address_register: Register(1), + initial_instructions: EndianSlice::new(&[], LittleEndian), + }; + + let mut fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf64, + cie: cie.clone(), + initial_segment: 0, + initial_address: 0xfeed_beef, + address_range: 999, + augmentation: None, + instructions: EndianSlice::new(&expected_instrs, LittleEndian), + }; + + let kind = debug_frame_le(); + let section = Section::with_endian(kind.endian()) + .fde(kind, cie_offset, &mut fde) + .append_bytes(&expected_rest); + + let section = section.get_contents().unwrap(); + let debug_frame = kind.section(§ion); + let rest = &mut EndianSlice::new(§ion, LittleEndian); + + let get_cie = |_: &_, _: &_, offset| { + assert_eq!(offset, DebugFrameOffset(cie_offset as usize)); + Ok(cie.clone()) + }; + + assert_eq!(parse_fde(debug_frame, rest, get_cie), Ok(fde)); + assert_eq!(*rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_entry_on_cie_32_ok() { + let expected_rest = [1, 2, 3, 4, 5, 6, 7, 8, 9]; + let expected_instrs: Vec<_> = (0..4).map(|_| constants::DW_CFA_nop.0).collect(); + + let mut cie = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + version: 4, + augmentation: None, + address_size: 4, + segment_size: 0, + code_alignment_factor: 16, + data_alignment_factor: 32, + return_address_register: Register(1), + initial_instructions: EndianSlice::new(&expected_instrs, BigEndian), + }; + + let kind = debug_frame_be(); + let section = Section::with_endian(kind.endian()) + .cie(kind, None, &mut cie) + .append_bytes(&expected_rest); + let section = section.get_contents().unwrap(); + let debug_frame = kind.section(§ion); + let rest = &mut EndianSlice::new(§ion, BigEndian); + + let bases = Default::default(); + assert_eq!( + parse_cfi_entry(&bases, &debug_frame, rest), + Ok(Some(CieOrFde::Cie(cie))) + ); + assert_eq!(*rest, EndianSlice::new(&expected_rest, BigEndian)); + } + + #[test] + fn test_parse_cfi_entry_on_fde_32_ok() { + let cie_offset = 0x1234_5678; + let expected_rest = [1, 2, 3, 4, 5, 6, 7, 8, 9]; + let expected_instrs: Vec<_> = (0..4).map(|_| constants::DW_CFA_nop.0).collect(); + + let cie = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + version: 4, + augmentation: None, + address_size: 4, + segment_size: 0, + code_alignment_factor: 16, + data_alignment_factor: 32, + return_address_register: Register(1), + initial_instructions: EndianSlice::new(&[], BigEndian), + }; + + let mut fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie.clone(), + initial_segment: 0, + initial_address: 0xfeed_beef, + address_range: 39, + augmentation: None, + instructions: EndianSlice::new(&expected_instrs, BigEndian), + }; + + let kind = debug_frame_be(); + let section = Section::with_endian(kind.endian()) + .fde(kind, cie_offset, &mut fde) + .append_bytes(&expected_rest); + + let section = section.get_contents().unwrap(); + let debug_frame = kind.section(§ion); + let rest = &mut EndianSlice::new(§ion, BigEndian); + + let bases = Default::default(); + match parse_cfi_entry(&bases, &debug_frame, rest) { + Ok(Some(CieOrFde::Fde(partial))) => { + assert_eq!(*rest, EndianSlice::new(&expected_rest, BigEndian)); + + assert_eq!(partial.length, fde.length); + assert_eq!(partial.format, fde.format); + assert_eq!(partial.cie_offset, DebugFrameOffset(cie_offset as usize)); + + let get_cie = |_: &_, _: &_, offset| { + assert_eq!(offset, DebugFrameOffset(cie_offset as usize)); + Ok(cie.clone()) + }; + + assert_eq!(partial.parse(get_cie), Ok(fde)); + } + otherwise => panic!("Unexpected result: {:#?}", otherwise), + } + } + + #[test] + fn test_cfi_entries_iter() { + let expected_instrs1: Vec<_> = (0..4).map(|_| constants::DW_CFA_nop.0).collect(); + + let expected_instrs2: Vec<_> = (0..8).map(|_| constants::DW_CFA_nop.0).collect(); + + let expected_instrs3: Vec<_> = (0..12).map(|_| constants::DW_CFA_nop.0).collect(); + + let expected_instrs4: Vec<_> = (0..16).map(|_| constants::DW_CFA_nop.0).collect(); + + let mut cie1 = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + version: 4, + augmentation: None, + address_size: 4, + segment_size: 0, + code_alignment_factor: 1, + data_alignment_factor: 2, + return_address_register: Register(3), + initial_instructions: EndianSlice::new(&expected_instrs1, BigEndian), + }; + + let mut cie2 = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + version: 4, + augmentation: None, + address_size: 4, + segment_size: 0, + code_alignment_factor: 3, + data_alignment_factor: 2, + return_address_register: Register(1), + initial_instructions: EndianSlice::new(&expected_instrs2, BigEndian), + }; + + let cie1_location = Label::new(); + let cie2_location = Label::new(); + + // Write the CIEs first so that their length gets set before we clone + // them into the FDEs and our equality assertions down the line end up + // with all the CIEs always having he correct length. + let kind = debug_frame_be(); + let section = Section::with_endian(kind.endian()) + .mark(&cie1_location) + .cie(kind, None, &mut cie1) + .mark(&cie2_location) + .cie(kind, None, &mut cie2); + + let mut fde1 = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie1.clone(), + initial_segment: 0, + initial_address: 0xfeed_beef, + address_range: 39, + augmentation: None, + instructions: EndianSlice::new(&expected_instrs3, BigEndian), + }; + + let mut fde2 = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie2.clone(), + initial_segment: 0, + initial_address: 0xfeed_face, + address_range: 9000, + augmentation: None, + instructions: EndianSlice::new(&expected_instrs4, BigEndian), + }; + + let section = + section + .fde(kind, &cie1_location, &mut fde1) + .fde(kind, &cie2_location, &mut fde2); + + section.start().set_const(0); + + let cie1_offset = cie1_location.value().unwrap() as usize; + let cie2_offset = cie2_location.value().unwrap() as usize; + + let contents = section.get_contents().unwrap(); + let debug_frame = kind.section(&contents); + + let bases = Default::default(); + let mut entries = debug_frame.entries(&bases); + + assert_eq!(entries.next(), Ok(Some(CieOrFde::Cie(cie1.clone())))); + assert_eq!(entries.next(), Ok(Some(CieOrFde::Cie(cie2.clone())))); + + match entries.next() { + Ok(Some(CieOrFde::Fde(partial))) => { + assert_eq!(partial.length, fde1.length); + assert_eq!(partial.format, fde1.format); + assert_eq!(partial.cie_offset, DebugFrameOffset(cie1_offset)); + + let get_cie = |_: &_, _: &_, offset| { + assert_eq!(offset, DebugFrameOffset(cie1_offset)); + Ok(cie1.clone()) + }; + assert_eq!(partial.parse(get_cie), Ok(fde1)); + } + otherwise => panic!("Unexpected result: {:#?}", otherwise), + } + + match entries.next() { + Ok(Some(CieOrFde::Fde(partial))) => { + assert_eq!(partial.length, fde2.length); + assert_eq!(partial.format, fde2.format); + assert_eq!(partial.cie_offset, DebugFrameOffset(cie2_offset)); + + let get_cie = |_: &_, _: &_, offset| { + assert_eq!(offset, DebugFrameOffset(cie2_offset)); + Ok(cie2.clone()) + }; + assert_eq!(partial.parse(get_cie), Ok(fde2)); + } + otherwise => panic!("Unexpected result: {:#?}", otherwise), + } + + assert_eq!(entries.next(), Ok(None)); + } + + #[test] + fn test_parse_cie_from_offset() { + let filler = [1, 2, 3, 4, 5, 6, 7, 8, 9]; + let instrs: Vec<_> = (0..5).map(|_| constants::DW_CFA_nop.0).collect(); + + let mut cie = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf64, + version: 4, + augmentation: None, + address_size: 4, + segment_size: 0, + code_alignment_factor: 4, + data_alignment_factor: 8, + return_address_register: Register(12), + initial_instructions: EndianSlice::new(&instrs, LittleEndian), + }; + + let cie_location = Label::new(); + + let kind = debug_frame_le(); + let section = Section::with_endian(kind.endian()) + .append_bytes(&filler) + .mark(&cie_location) + .cie(kind, None, &mut cie) + .append_bytes(&filler); + + section.start().set_const(0); + + let cie_offset = DebugFrameOffset(cie_location.value().unwrap() as usize); + + let contents = section.get_contents().unwrap(); + let debug_frame = kind.section(&contents); + let bases = Default::default(); + + assert_eq!(debug_frame.cie_from_offset(&bases, cie_offset), Ok(cie)); + } + + fn parse_cfi_instruction( + input: &mut R, + address_size: u8, + ) -> Result> { + let parameters = &PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size, + section: &R::default(), + }; + CallFrameInstruction::parse(input, None, parameters, Vendor::Default) + } + + #[test] + fn test_parse_cfi_instruction_advance_loc() { + let expected_rest = [1, 2, 3, 4]; + let expected_delta = 42; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_advance_loc.0 | expected_delta) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::AdvanceLoc { + delta: u32::from(expected_delta), + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_offset() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 3; + let expected_offset = 1997; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_offset.0 | expected_reg) + .uleb(expected_offset) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::Offset { + register: Register(expected_reg.into()), + factored_offset: expected_offset, + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_restore() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 3; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_restore.0 | expected_reg) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::Restore { + register: Register(expected_reg.into()), + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_nop() { + let expected_rest = [1, 2, 3, 4]; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_nop.0) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::Nop) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_set_loc() { + let expected_rest = [1, 2, 3, 4]; + let expected_addr = 0xdead_beef; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_set_loc.0) + .L64(expected_addr) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::SetLoc { + address: expected_addr, + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_set_loc_encoding() { + let text_base = 0xfeed_face; + let addr_offset = 0xbeef; + let expected_addr = text_base + addr_offset; + let expected_rest = [1, 2, 3, 4]; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_set_loc.0) + .L64(addr_offset) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + let parameters = &PointerEncodingParameters { + bases: &BaseAddresses::default().set_text(text_base).eh_frame, + func_base: None, + address_size: 8, + section: &EndianSlice::new(&[], LittleEndian), + }; + assert_eq!( + CallFrameInstruction::parse( + input, + Some(constants::DW_EH_PE_textrel), + parameters, + Vendor::Default + ), + Ok(CallFrameInstruction::SetLoc { + address: expected_addr, + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_advance_loc1() { + let expected_rest = [1, 2, 3, 4]; + let expected_delta = 8; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_advance_loc1.0) + .D8(expected_delta) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::AdvanceLoc { + delta: u32::from(expected_delta), + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_advance_loc2() { + let expected_rest = [1, 2, 3, 4]; + let expected_delta = 500; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_advance_loc2.0) + .L16(expected_delta) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::AdvanceLoc { + delta: u32::from(expected_delta), + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_advance_loc4() { + let expected_rest = [1, 2, 3, 4]; + let expected_delta = 1 << 20; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_advance_loc4.0) + .L32(expected_delta) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::AdvanceLoc { + delta: expected_delta, + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_offset_extended() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 7; + let expected_offset = 33; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_offset_extended.0) + .uleb(expected_reg.into()) + .uleb(expected_offset) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::Offset { + register: Register(expected_reg), + factored_offset: expected_offset, + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_restore_extended() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 7; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_restore_extended.0) + .uleb(expected_reg.into()) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::Restore { + register: Register(expected_reg), + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_undefined() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 7; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_undefined.0) + .uleb(expected_reg.into()) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::Undefined { + register: Register(expected_reg), + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_same_value() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 7; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_same_value.0) + .uleb(expected_reg.into()) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::SameValue { + register: Register(expected_reg), + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_register() { + let expected_rest = [1, 2, 3, 4]; + let expected_dest_reg = 7; + let expected_src_reg = 8; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_register.0) + .uleb(expected_dest_reg.into()) + .uleb(expected_src_reg.into()) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::Register { + dest_register: Register(expected_dest_reg), + src_register: Register(expected_src_reg), + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_remember_state() { + let expected_rest = [1, 2, 3, 4]; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_remember_state.0) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::RememberState) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_restore_state() { + let expected_rest = [1, 2, 3, 4]; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_restore_state.0) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::RestoreState) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_def_cfa() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 2; + let expected_offset = 0; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_def_cfa.0) + .uleb(expected_reg.into()) + .uleb(expected_offset) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::DefCfa { + register: Register(expected_reg), + offset: expected_offset, + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_def_cfa_register() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 2; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_def_cfa_register.0) + .uleb(expected_reg.into()) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::DefCfaRegister { + register: Register(expected_reg), + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_def_cfa_offset() { + let expected_rest = [1, 2, 3, 4]; + let expected_offset = 23; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_def_cfa_offset.0) + .uleb(expected_offset) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::DefCfaOffset { + offset: expected_offset, + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_def_cfa_expression() { + let expected_rest = [1, 2, 3, 4]; + let expected_expr = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]; + + let length = Label::new(); + let start = Label::new(); + let end = Label::new(); + + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_def_cfa_expression.0) + .D8(&length) + .mark(&start) + .append_bytes(&expected_expr) + .mark(&end) + .append_bytes(&expected_rest); + + length.set_const((&end - &start) as u64); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::DefCfaExpression { + expression: Expression(EndianSlice::new(&expected_expr, LittleEndian)), + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_expression() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 99; + let expected_expr = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]; + + let length = Label::new(); + let start = Label::new(); + let end = Label::new(); + + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_expression.0) + .uleb(expected_reg.into()) + .D8(&length) + .mark(&start) + .append_bytes(&expected_expr) + .mark(&end) + .append_bytes(&expected_rest); + + length.set_const((&end - &start) as u64); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::Expression { + register: Register(expected_reg), + expression: Expression(EndianSlice::new(&expected_expr, LittleEndian)), + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_offset_extended_sf() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 7; + let expected_offset = -33; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_offset_extended_sf.0) + .uleb(expected_reg.into()) + .sleb(expected_offset) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::OffsetExtendedSf { + register: Register(expected_reg), + factored_offset: expected_offset, + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_def_cfa_sf() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 2; + let expected_offset = -9999; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_def_cfa_sf.0) + .uleb(expected_reg.into()) + .sleb(expected_offset) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::DefCfaSf { + register: Register(expected_reg), + factored_offset: expected_offset, + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_def_cfa_offset_sf() { + let expected_rest = [1, 2, 3, 4]; + let expected_offset = -123; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_def_cfa_offset_sf.0) + .sleb(expected_offset) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::DefCfaOffsetSf { + factored_offset: expected_offset, + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_val_offset() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 50; + let expected_offset = 23; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_val_offset.0) + .uleb(expected_reg.into()) + .uleb(expected_offset) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::ValOffset { + register: Register(expected_reg), + factored_offset: expected_offset, + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_val_offset_sf() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 50; + let expected_offset = -23; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_val_offset_sf.0) + .uleb(expected_reg.into()) + .sleb(expected_offset) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::ValOffsetSf { + register: Register(expected_reg), + factored_offset: expected_offset, + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_val_expression() { + let expected_rest = [1, 2, 3, 4]; + let expected_reg = 50; + let expected_expr = [2, 2, 1, 1, 5, 5]; + + let length = Label::new(); + let start = Label::new(); + let end = Label::new(); + + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_val_expression.0) + .uleb(expected_reg.into()) + .D8(&length) + .mark(&start) + .append_bytes(&expected_expr) + .mark(&end) + .append_bytes(&expected_rest); + + length.set_const((&end - &start) as u64); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + + assert_eq!( + parse_cfi_instruction(input, 8), + Ok(CallFrameInstruction::ValExpression { + register: Register(expected_reg), + expression: Expression(EndianSlice::new(&expected_expr, LittleEndian)), + }) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_negate_ra_state() { + let expected_rest = [1, 2, 3, 4]; + let section = Section::with_endian(Endian::Little) + .D8(constants::DW_CFA_AARCH64_negate_ra_state.0) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + let parameters = &PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 8, + section: &EndianSlice::default(), + }; + assert_eq!( + CallFrameInstruction::parse(input, None, parameters, Vendor::AArch64), + Ok(CallFrameInstruction::NegateRaState) + ); + assert_eq!(*input, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_cfi_instruction_unknown_instruction() { + let expected_rest = [1, 2, 3, 4]; + let unknown_instr = constants::DwCfa(0b0011_1111); + let section = Section::with_endian(Endian::Little) + .D8(unknown_instr.0) + .append_bytes(&expected_rest); + let contents = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&contents, LittleEndian); + assert_eq!( + parse_cfi_instruction(input, 8), + Err(Error::UnknownCallFrameInstruction(unknown_instr)) + ); + } + + #[test] + fn test_call_frame_instruction_iter_ok() { + let expected_reg = 50; + let expected_expr = [2, 2, 1, 1, 5, 5]; + let expected_delta = 230; + + let length = Label::new(); + let start = Label::new(); + let end = Label::new(); + + let section = Section::with_endian(Endian::Big) + .D8(constants::DW_CFA_val_expression.0) + .uleb(expected_reg.into()) + .D8(&length) + .mark(&start) + .append_bytes(&expected_expr) + .mark(&end) + .D8(constants::DW_CFA_advance_loc1.0) + .D8(expected_delta); + + length.set_const((&end - &start) as u64); + let contents = section.get_contents().unwrap(); + let input = EndianSlice::new(&contents, BigEndian); + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 8, + section: &EndianSlice::default(), + }; + let mut iter = CallFrameInstructionIter { + input, + address_encoding: None, + parameters, + vendor: Vendor::Default, + }; + + assert_eq!( + iter.next(), + Ok(Some(CallFrameInstruction::ValExpression { + register: Register(expected_reg), + expression: Expression(EndianSlice::new(&expected_expr, BigEndian)), + })) + ); + + assert_eq!( + iter.next(), + Ok(Some(CallFrameInstruction::AdvanceLoc { + delta: u32::from(expected_delta), + })) + ); + + assert_eq!(iter.next(), Ok(None)); + } + + #[test] + fn test_call_frame_instruction_iter_err() { + // DW_CFA_advance_loc1 without an operand. + let section = Section::with_endian(Endian::Big).D8(constants::DW_CFA_advance_loc1.0); + + let contents = section.get_contents().unwrap(); + let input = EndianSlice::new(&contents, BigEndian); + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 8, + section: &EndianSlice::default(), + }; + let mut iter = CallFrameInstructionIter { + input, + address_encoding: None, + parameters, + vendor: Vendor::Default, + }; + + assert_eq!( + iter.next().map_eof(&contents), + Err(Error::UnexpectedEof(ReaderOffsetId(1))) + ); + assert_eq!(iter.next(), Ok(None)); + } + + fn assert_eval<'a, I>( + mut initial_ctx: UnwindContext>, + expected_ctx: UnwindContext>, + cie: CommonInformationEntry>, + fde: Option>>, + instructions: I, + ) where + I: AsRef< + [( + Result, + CallFrameInstruction>, + )], + >, + { + { + let section = &DebugFrame::from(EndianSlice::default()); + let bases = &BaseAddresses::default(); + let mut table = match fde { + Some(fde) => UnwindTable::new_for_fde(section, bases, &mut initial_ctx, &fde), + None => UnwindTable::new_for_cie(section, bases, &mut initial_ctx, &cie), + }; + for &(ref expected_result, ref instruction) in instructions.as_ref() { + assert_eq!(*expected_result, table.evaluate(instruction.clone())); + } + } + + assert_eq!(expected_ctx, initial_ctx); + } + + fn make_test_cie<'a>() -> CommonInformationEntry> { + CommonInformationEntry { + offset: 0, + format: Format::Dwarf64, + length: 0, + return_address_register: Register(0), + version: 4, + address_size: mem::size_of::() as u8, + initial_instructions: EndianSlice::new(&[], LittleEndian), + augmentation: None, + segment_size: 0, + data_alignment_factor: 2, + code_alignment_factor: 3, + } + } + + #[test] + fn test_eval_set_loc() { + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected.row_mut().end_address = 42; + let instructions = [(Ok(true), CallFrameInstruction::SetLoc { address: 42 })]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_set_loc_backwards() { + let cie = make_test_cie(); + let mut ctx = UnwindContext::new(); + ctx.row_mut().start_address = 999; + let expected = ctx.clone(); + let instructions = [( + Err(Error::InvalidAddressRange), + CallFrameInstruction::SetLoc { address: 42 }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_advance_loc() { + let cie = make_test_cie(); + let mut ctx = UnwindContext::new(); + ctx.row_mut().start_address = 3; + let mut expected = ctx.clone(); + expected.row_mut().end_address = 3 + 2 * cie.code_alignment_factor; + let instructions = [(Ok(true), CallFrameInstruction::AdvanceLoc { delta: 2 })]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_advance_loc_overflow() { + let cie = make_test_cie(); + let mut ctx = UnwindContext::new(); + ctx.row_mut().start_address = u64::MAX; + let mut expected = ctx.clone(); + expected.row_mut().end_address = 42 * cie.code_alignment_factor - 1; + let instructions = [(Ok(true), CallFrameInstruction::AdvanceLoc { delta: 42 })]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_def_cfa() { + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected.set_cfa(CfaRule::RegisterAndOffset { + register: Register(42), + offset: 36, + }); + let instructions = [( + Ok(false), + CallFrameInstruction::DefCfa { + register: Register(42), + offset: 36, + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_def_cfa_sf() { + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected.set_cfa(CfaRule::RegisterAndOffset { + register: Register(42), + offset: 36 * cie.data_alignment_factor as i64, + }); + let instructions = [( + Ok(false), + CallFrameInstruction::DefCfaSf { + register: Register(42), + factored_offset: 36, + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_def_cfa_register() { + let cie = make_test_cie(); + let mut ctx = UnwindContext::new(); + ctx.set_cfa(CfaRule::RegisterAndOffset { + register: Register(3), + offset: 8, + }); + let mut expected = ctx.clone(); + expected.set_cfa(CfaRule::RegisterAndOffset { + register: Register(42), + offset: 8, + }); + let instructions = [( + Ok(false), + CallFrameInstruction::DefCfaRegister { + register: Register(42), + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_def_cfa_register_invalid_context() { + let cie = make_test_cie(); + let mut ctx = UnwindContext::new(); + ctx.set_cfa(CfaRule::Expression(Expression(EndianSlice::new( + &[], + LittleEndian, + )))); + let expected = ctx.clone(); + let instructions = [( + Err(Error::CfiInstructionInInvalidContext), + CallFrameInstruction::DefCfaRegister { + register: Register(42), + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_def_cfa_offset() { + let cie = make_test_cie(); + let mut ctx = UnwindContext::new(); + ctx.set_cfa(CfaRule::RegisterAndOffset { + register: Register(3), + offset: 8, + }); + let mut expected = ctx.clone(); + expected.set_cfa(CfaRule::RegisterAndOffset { + register: Register(3), + offset: 42, + }); + let instructions = [(Ok(false), CallFrameInstruction::DefCfaOffset { offset: 42 })]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_def_cfa_offset_invalid_context() { + let cie = make_test_cie(); + let mut ctx = UnwindContext::new(); + ctx.set_cfa(CfaRule::Expression(Expression(EndianSlice::new( + &[], + LittleEndian, + )))); + let expected = ctx.clone(); + let instructions = [( + Err(Error::CfiInstructionInInvalidContext), + CallFrameInstruction::DefCfaOffset { offset: 1993 }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_def_cfa_expression() { + let expr = [1, 2, 3, 4]; + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected.set_cfa(CfaRule::Expression(Expression(EndianSlice::new( + &expr, + LittleEndian, + )))); + let instructions = [( + Ok(false), + CallFrameInstruction::DefCfaExpression { + expression: Expression(EndianSlice::new(&expr, LittleEndian)), + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_undefined() { + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected + .set_register_rule(Register(5), RegisterRule::Undefined) + .unwrap(); + let instructions = [( + Ok(false), + CallFrameInstruction::Undefined { + register: Register(5), + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_same_value() { + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected + .set_register_rule(Register(0), RegisterRule::SameValue) + .unwrap(); + let instructions = [( + Ok(false), + CallFrameInstruction::SameValue { + register: Register(0), + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_offset() { + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected + .set_register_rule( + Register(2), + RegisterRule::Offset(3 * cie.data_alignment_factor), + ) + .unwrap(); + let instructions = [( + Ok(false), + CallFrameInstruction::Offset { + register: Register(2), + factored_offset: 3, + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_offset_extended_sf() { + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected + .set_register_rule( + Register(4), + RegisterRule::Offset(-3 * cie.data_alignment_factor), + ) + .unwrap(); + let instructions = [( + Ok(false), + CallFrameInstruction::OffsetExtendedSf { + register: Register(4), + factored_offset: -3, + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_val_offset() { + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected + .set_register_rule( + Register(5), + RegisterRule::ValOffset(7 * cie.data_alignment_factor), + ) + .unwrap(); + let instructions = [( + Ok(false), + CallFrameInstruction::ValOffset { + register: Register(5), + factored_offset: 7, + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_val_offset_sf() { + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected + .set_register_rule( + Register(5), + RegisterRule::ValOffset(-7 * cie.data_alignment_factor), + ) + .unwrap(); + let instructions = [( + Ok(false), + CallFrameInstruction::ValOffsetSf { + register: Register(5), + factored_offset: -7, + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_expression() { + let expr = [1, 2, 3, 4]; + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected + .set_register_rule( + Register(9), + RegisterRule::Expression(Expression(EndianSlice::new(&expr, LittleEndian))), + ) + .unwrap(); + let instructions = [( + Ok(false), + CallFrameInstruction::Expression { + register: Register(9), + expression: Expression(EndianSlice::new(&expr, LittleEndian)), + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_val_expression() { + let expr = [1, 2, 3, 4]; + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected + .set_register_rule( + Register(9), + RegisterRule::ValExpression(Expression(EndianSlice::new(&expr, LittleEndian))), + ) + .unwrap(); + let instructions = [( + Ok(false), + CallFrameInstruction::ValExpression { + register: Register(9), + expression: Expression(EndianSlice::new(&expr, LittleEndian)), + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_restore() { + let cie = make_test_cie(); + let fde = FrameDescriptionEntry { + offset: 0, + format: Format::Dwarf64, + length: 0, + address_range: 0, + augmentation: None, + initial_address: 0, + initial_segment: 0, + cie: cie.clone(), + instructions: EndianSlice::new(&[], LittleEndian), + }; + + let mut ctx = UnwindContext::new(); + ctx.set_register_rule(Register(0), RegisterRule::Offset(1)) + .unwrap(); + ctx.save_initial_rules().unwrap(); + let expected = ctx.clone(); + ctx.set_register_rule(Register(0), RegisterRule::Offset(2)) + .unwrap(); + + let instructions = [( + Ok(false), + CallFrameInstruction::Restore { + register: Register(0), + }, + )]; + assert_eval(ctx, expected, cie, Some(fde), instructions); + } + + #[test] + fn test_eval_restore_havent_saved_initial_context() { + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let expected = ctx.clone(); + let instructions = [( + Err(Error::CfiInstructionInInvalidContext), + CallFrameInstruction::Restore { + register: Register(0), + }, + )]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_remember_state() { + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected.push_row().unwrap(); + let instructions = [(Ok(false), CallFrameInstruction::RememberState)]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_restore_state() { + let cie = make_test_cie(); + + let mut ctx = UnwindContext::new(); + ctx.set_start_address(1); + ctx.set_register_rule(Register(0), RegisterRule::SameValue) + .unwrap(); + let mut expected = ctx.clone(); + ctx.push_row().unwrap(); + ctx.set_start_address(2); + ctx.set_register_rule(Register(0), RegisterRule::Offset(16)) + .unwrap(); + + // Restore state should preserve current location. + expected.set_start_address(2); + + let instructions = [ + // First one pops just fine. + (Ok(false), CallFrameInstruction::RestoreState), + // Second pop would try to pop out of bounds. + ( + Err(Error::PopWithEmptyStack), + CallFrameInstruction::RestoreState, + ), + ]; + + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_negate_ra_state() { + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected + .set_register_rule(crate::AArch64::RA_SIGN_STATE, RegisterRule::Constant(1)) + .unwrap(); + let instructions = [(Ok(false), CallFrameInstruction::NegateRaState)]; + assert_eval(ctx, expected, cie, None, instructions); + + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected + .set_register_rule(crate::AArch64::RA_SIGN_STATE, RegisterRule::Constant(0)) + .unwrap(); + let instructions = [ + (Ok(false), CallFrameInstruction::NegateRaState), + (Ok(false), CallFrameInstruction::NegateRaState), + ]; + assert_eval(ctx, expected, cie, None, instructions); + + // NegateRaState can't be used with other instructions. + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let mut expected = ctx.clone(); + expected + .set_register_rule( + crate::AArch64::RA_SIGN_STATE, + RegisterRule::Offset(cie.data_alignment_factor as i64), + ) + .unwrap(); + let instructions = [ + ( + Ok(false), + CallFrameInstruction::Offset { + register: crate::AArch64::RA_SIGN_STATE, + factored_offset: 1, + }, + ), + ( + Err(Error::CfiInstructionInInvalidContext), + CallFrameInstruction::NegateRaState, + ), + ]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_eval_nop() { + let cie = make_test_cie(); + let ctx = UnwindContext::new(); + let expected = ctx.clone(); + let instructions = [(Ok(false), CallFrameInstruction::Nop)]; + assert_eval(ctx, expected, cie, None, instructions); + } + + #[test] + fn test_unwind_table_cie_no_rule() { + let initial_instructions = Section::with_endian(Endian::Little) + // The CFA is -12 from register 4. + .D8(constants::DW_CFA_def_cfa_sf.0) + .uleb(4) + .sleb(-12) + .append_repeated(constants::DW_CFA_nop.0, 4); + let initial_instructions = initial_instructions.get_contents().unwrap(); + + let cie = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + version: 4, + augmentation: None, + address_size: 8, + segment_size: 0, + code_alignment_factor: 1, + data_alignment_factor: 1, + return_address_register: Register(3), + initial_instructions: EndianSlice::new(&initial_instructions, LittleEndian), + }; + + let instructions = Section::with_endian(Endian::Little) + // A bunch of nop padding. + .append_repeated(constants::DW_CFA_nop.0, 8); + let instructions = instructions.get_contents().unwrap(); + + let fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie.clone(), + initial_segment: 0, + initial_address: 0, + address_range: 100, + augmentation: None, + instructions: EndianSlice::new(&instructions, LittleEndian), + }; + + let section = &DebugFrame::from(EndianSlice::default()); + let bases = &BaseAddresses::default(); + let mut ctx = Box::new(UnwindContext::new()); + + let mut table = fde + .rows(section, bases, &mut ctx) + .expect("Should run initial program OK"); + assert!(table.ctx.is_initialized); + let expected_initial_rule = (Register(0), RegisterRule::Undefined); + assert_eq!(table.ctx.initial_rule, Some(expected_initial_rule)); + + { + let row = table.next_row().expect("Should evaluate first row OK"); + let expected = UnwindTableRow { + start_address: 0, + end_address: 100, + saved_args_size: 0, + cfa: CfaRule::RegisterAndOffset { + register: Register(4), + offset: -12, + }, + registers: [].iter().collect(), + }; + assert_eq!(Some(&expected), row); + } + + // All done! + assert_eq!(Ok(None), table.next_row()); + assert_eq!(Ok(None), table.next_row()); + } + + #[test] + fn test_unwind_table_cie_single_rule() { + let initial_instructions = Section::with_endian(Endian::Little) + // The CFA is -12 from register 4. + .D8(constants::DW_CFA_def_cfa_sf.0) + .uleb(4) + .sleb(-12) + // Register 3 is 4 from the CFA. + .D8(constants::DW_CFA_offset.0 | 3) + .uleb(4) + .append_repeated(constants::DW_CFA_nop.0, 4); + let initial_instructions = initial_instructions.get_contents().unwrap(); + + let cie = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + version: 4, + augmentation: None, + address_size: 8, + segment_size: 0, + code_alignment_factor: 1, + data_alignment_factor: 1, + return_address_register: Register(3), + initial_instructions: EndianSlice::new(&initial_instructions, LittleEndian), + }; + + let instructions = Section::with_endian(Endian::Little) + // A bunch of nop padding. + .append_repeated(constants::DW_CFA_nop.0, 8); + let instructions = instructions.get_contents().unwrap(); + + let fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie.clone(), + initial_segment: 0, + initial_address: 0, + address_range: 100, + augmentation: None, + instructions: EndianSlice::new(&instructions, LittleEndian), + }; + + let section = &DebugFrame::from(EndianSlice::default()); + let bases = &BaseAddresses::default(); + let mut ctx = Box::new(UnwindContext::new()); + + let mut table = fde + .rows(section, bases, &mut ctx) + .expect("Should run initial program OK"); + assert!(table.ctx.is_initialized); + let expected_initial_rule = (Register(3), RegisterRule::Offset(4)); + assert_eq!(table.ctx.initial_rule, Some(expected_initial_rule)); + + { + let row = table.next_row().expect("Should evaluate first row OK"); + let expected = UnwindTableRow { + start_address: 0, + end_address: 100, + saved_args_size: 0, + cfa: CfaRule::RegisterAndOffset { + register: Register(4), + offset: -12, + }, + registers: [(Register(3), RegisterRule::Offset(4))].iter().collect(), + }; + assert_eq!(Some(&expected), row); + } + + // All done! + assert_eq!(Ok(None), table.next_row()); + assert_eq!(Ok(None), table.next_row()); + } + + #[test] + fn test_unwind_table_cie_invalid_rule() { + let initial_instructions1 = Section::with_endian(Endian::Little) + // Test that stack length is reset. + .D8(constants::DW_CFA_remember_state.0) + // Test that stack value is reset (different register from that used later). + .D8(constants::DW_CFA_offset.0 | 4) + .uleb(8) + // Invalid due to missing operands. + .D8(constants::DW_CFA_offset.0); + let initial_instructions1 = initial_instructions1.get_contents().unwrap(); + + let cie1 = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + version: 4, + augmentation: None, + address_size: 8, + segment_size: 0, + code_alignment_factor: 1, + data_alignment_factor: 1, + return_address_register: Register(3), + initial_instructions: EndianSlice::new(&initial_instructions1, LittleEndian), + }; + + let initial_instructions2 = Section::with_endian(Endian::Little) + // Register 3 is 4 from the CFA. + .D8(constants::DW_CFA_offset.0 | 3) + .uleb(4) + .append_repeated(constants::DW_CFA_nop.0, 4); + let initial_instructions2 = initial_instructions2.get_contents().unwrap(); + + let cie2 = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + version: 4, + augmentation: None, + address_size: 8, + segment_size: 0, + code_alignment_factor: 1, + data_alignment_factor: 1, + return_address_register: Register(3), + initial_instructions: EndianSlice::new(&initial_instructions2, LittleEndian), + }; + + let fde1 = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie1.clone(), + initial_segment: 0, + initial_address: 0, + address_range: 100, + augmentation: None, + instructions: EndianSlice::new(&[], LittleEndian), + }; + + let fde2 = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie2.clone(), + initial_segment: 0, + initial_address: 0, + address_range: 100, + augmentation: None, + instructions: EndianSlice::new(&[], LittleEndian), + }; + + let section = &DebugFrame::from(EndianSlice::default()); + let bases = &BaseAddresses::default(); + let mut ctx = Box::new(UnwindContext::new()); + + let table = fde1 + .rows(section, bases, &mut ctx) + .map_eof(&initial_instructions1); + assert_eq!(table.err(), Some(Error::UnexpectedEof(ReaderOffsetId(4)))); + assert!(!ctx.is_initialized); + assert_eq!(ctx.stack.len(), 2); + assert_eq!(ctx.initial_rule, None); + + let _table = fde2 + .rows(section, bases, &mut ctx) + .expect("Should run initial program OK"); + assert!(ctx.is_initialized); + assert_eq!(ctx.stack.len(), 1); + let expected_initial_rule = (Register(3), RegisterRule::Offset(4)); + assert_eq!(ctx.initial_rule, Some(expected_initial_rule)); + } + + #[test] + fn test_unwind_table_next_row() { + let initial_instructions = Section::with_endian(Endian::Little) + // The CFA is -12 from register 4. + .D8(constants::DW_CFA_def_cfa_sf.0) + .uleb(4) + .sleb(-12) + // Register 0 is 8 from the CFA. + .D8(constants::DW_CFA_offset.0 | 0) + .uleb(8) + // Register 3 is 4 from the CFA. + .D8(constants::DW_CFA_offset.0 | 3) + .uleb(4) + .append_repeated(constants::DW_CFA_nop.0, 4); + let initial_instructions = initial_instructions.get_contents().unwrap(); + + let cie = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + version: 4, + augmentation: None, + address_size: 8, + segment_size: 0, + code_alignment_factor: 1, + data_alignment_factor: 1, + return_address_register: Register(3), + initial_instructions: EndianSlice::new(&initial_instructions, LittleEndian), + }; + + let instructions = Section::with_endian(Endian::Little) + // Initial instructions form a row, advance the address by 1. + .D8(constants::DW_CFA_advance_loc1.0) + .D8(1) + // Register 0 is -16 from the CFA. + .D8(constants::DW_CFA_offset_extended_sf.0) + .uleb(0) + .sleb(-16) + // Finish this row, advance the address by 32. + .D8(constants::DW_CFA_advance_loc1.0) + .D8(32) + // Register 3 is -4 from the CFA. + .D8(constants::DW_CFA_offset_extended_sf.0) + .uleb(3) + .sleb(-4) + // Finish this row, advance the address by 64. + .D8(constants::DW_CFA_advance_loc1.0) + .D8(64) + // Register 5 is 4 from the CFA. + .D8(constants::DW_CFA_offset.0 | 5) + .uleb(4) + // A bunch of nop padding. + .append_repeated(constants::DW_CFA_nop.0, 8); + let instructions = instructions.get_contents().unwrap(); + + let fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie.clone(), + initial_segment: 0, + initial_address: 0, + address_range: 100, + augmentation: None, + instructions: EndianSlice::new(&instructions, LittleEndian), + }; + + let section = &DebugFrame::from(EndianSlice::default()); + let bases = &BaseAddresses::default(); + let mut ctx = Box::new(UnwindContext::new()); + + let mut table = fde + .rows(section, bases, &mut ctx) + .expect("Should run initial program OK"); + assert!(table.ctx.is_initialized); + assert!(table.ctx.initial_rule.is_none()); + let expected_initial_rules: RegisterRuleMap<_> = [ + (Register(0), RegisterRule::Offset(8)), + (Register(3), RegisterRule::Offset(4)), + ] + .iter() + .collect(); + assert_eq!(table.ctx.stack[0].registers, expected_initial_rules); + + { + let row = table.next_row().expect("Should evaluate first row OK"); + let expected = UnwindTableRow { + start_address: 0, + end_address: 1, + saved_args_size: 0, + cfa: CfaRule::RegisterAndOffset { + register: Register(4), + offset: -12, + }, + registers: [ + (Register(0), RegisterRule::Offset(8)), + (Register(3), RegisterRule::Offset(4)), + ] + .iter() + .collect(), + }; + assert_eq!(Some(&expected), row); + } + + { + let row = table.next_row().expect("Should evaluate second row OK"); + let expected = UnwindTableRow { + start_address: 1, + end_address: 33, + saved_args_size: 0, + cfa: CfaRule::RegisterAndOffset { + register: Register(4), + offset: -12, + }, + registers: [ + (Register(0), RegisterRule::Offset(-16)), + (Register(3), RegisterRule::Offset(4)), + ] + .iter() + .collect(), + }; + assert_eq!(Some(&expected), row); + } + + { + let row = table.next_row().expect("Should evaluate third row OK"); + let expected = UnwindTableRow { + start_address: 33, + end_address: 97, + saved_args_size: 0, + cfa: CfaRule::RegisterAndOffset { + register: Register(4), + offset: -12, + }, + registers: [ + (Register(0), RegisterRule::Offset(-16)), + (Register(3), RegisterRule::Offset(-4)), + ] + .iter() + .collect(), + }; + assert_eq!(Some(&expected), row); + } + + { + let row = table.next_row().expect("Should evaluate fourth row OK"); + let expected = UnwindTableRow { + start_address: 97, + end_address: 100, + saved_args_size: 0, + cfa: CfaRule::RegisterAndOffset { + register: Register(4), + offset: -12, + }, + registers: [ + (Register(0), RegisterRule::Offset(-16)), + (Register(3), RegisterRule::Offset(-4)), + (Register(5), RegisterRule::Offset(4)), + ] + .iter() + .collect(), + }; + assert_eq!(Some(&expected), row); + } + + // All done! + assert_eq!(Ok(None), table.next_row()); + assert_eq!(Ok(None), table.next_row()); + } + + #[test] + fn test_unwind_info_for_address_ok() { + let instrs1 = Section::with_endian(Endian::Big) + // The CFA is -12 from register 4. + .D8(constants::DW_CFA_def_cfa_sf.0) + .uleb(4) + .sleb(-12); + let instrs1 = instrs1.get_contents().unwrap(); + + let instrs2: Vec<_> = (0..8).map(|_| constants::DW_CFA_nop.0).collect(); + + let instrs3 = Section::with_endian(Endian::Big) + // Initial instructions form a row, advance the address by 100. + .D8(constants::DW_CFA_advance_loc1.0) + .D8(100) + // Register 0 is -16 from the CFA. + .D8(constants::DW_CFA_offset_extended_sf.0) + .uleb(0) + .sleb(-16); + let instrs3 = instrs3.get_contents().unwrap(); + + let instrs4: Vec<_> = (0..16).map(|_| constants::DW_CFA_nop.0).collect(); + + let mut cie1 = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + version: 4, + augmentation: None, + address_size: 8, + segment_size: 0, + code_alignment_factor: 1, + data_alignment_factor: 1, + return_address_register: Register(3), + initial_instructions: EndianSlice::new(&instrs1, BigEndian), + }; + + let mut cie2 = CommonInformationEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + version: 4, + augmentation: None, + address_size: 4, + segment_size: 0, + code_alignment_factor: 1, + data_alignment_factor: 1, + return_address_register: Register(1), + initial_instructions: EndianSlice::new(&instrs2, BigEndian), + }; + + let cie1_location = Label::new(); + let cie2_location = Label::new(); + + // Write the CIEs first so that their length gets set before we clone + // them into the FDEs and our equality assertions down the line end up + // with all the CIEs always having he correct length. + let kind = debug_frame_be(); + let section = Section::with_endian(kind.endian()) + .mark(&cie1_location) + .cie(kind, None, &mut cie1) + .mark(&cie2_location) + .cie(kind, None, &mut cie2); + + let mut fde1 = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie1.clone(), + initial_segment: 0, + initial_address: 0xfeed_beef, + address_range: 200, + augmentation: None, + instructions: EndianSlice::new(&instrs3, BigEndian), + }; + + let mut fde2 = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie2.clone(), + initial_segment: 0, + initial_address: 0xfeed_face, + address_range: 9000, + augmentation: None, + instructions: EndianSlice::new(&instrs4, BigEndian), + }; + + let section = + section + .fde(kind, &cie1_location, &mut fde1) + .fde(kind, &cie2_location, &mut fde2); + section.start().set_const(0); + + let contents = section.get_contents().unwrap(); + let debug_frame = kind.section(&contents); + + // Get the second row of the unwind table in `instrs3`. + let bases = Default::default(); + let mut ctx = Box::new(UnwindContext::new()); + let result = debug_frame.unwind_info_for_address( + &bases, + &mut ctx, + 0xfeed_beef + 150, + DebugFrame::cie_from_offset, + ); + assert!(result.is_ok()); + let unwind_info = result.unwrap(); + + assert_eq!( + *unwind_info, + UnwindTableRow { + start_address: fde1.initial_address() + 100, + end_address: fde1.initial_address() + fde1.len(), + saved_args_size: 0, + cfa: CfaRule::RegisterAndOffset { + register: Register(4), + offset: -12, + }, + registers: [(Register(0), RegisterRule::Offset(-16))].iter().collect(), + } + ); + } + + #[test] + fn test_unwind_info_for_address_not_found() { + let debug_frame = DebugFrame::new(&[], NativeEndian); + let bases = Default::default(); + let mut ctx = Box::new(UnwindContext::new()); + let result = debug_frame.unwind_info_for_address( + &bases, + &mut ctx, + 0xbadb_ad99, + DebugFrame::cie_from_offset, + ); + assert!(result.is_err()); + assert_eq!(result.unwrap_err(), Error::NoUnwindInfoForAddress); + } + + #[test] + fn test_eh_frame_hdr_unknown_version() { + let bases = BaseAddresses::default(); + let buf = &[42]; + let result = EhFrameHdr::new(buf, NativeEndian).parse(&bases, 8); + assert!(result.is_err()); + assert_eq!(result.unwrap_err(), Error::UnknownVersion(42)); + } + + #[test] + fn test_eh_frame_hdr_omit_ehptr() { + let section = Section::with_endian(Endian::Little) + .L8(1) + .L8(0xff) + .L8(0x03) + .L8(0x0b) + .L32(2) + .L32(10) + .L32(1) + .L32(20) + .L32(2) + .L32(0); + let section = section.get_contents().unwrap(); + let bases = BaseAddresses::default(); + let result = EhFrameHdr::new(§ion, LittleEndian).parse(&bases, 8); + assert!(result.is_err()); + assert_eq!(result.unwrap_err(), Error::CannotParseOmitPointerEncoding); + } + + #[test] + fn test_eh_frame_hdr_omit_count() { + let section = Section::with_endian(Endian::Little) + .L8(1) + .L8(0x0b) + .L8(0xff) + .L8(0x0b) + .L32(0x12345); + let section = section.get_contents().unwrap(); + let bases = BaseAddresses::default(); + let result = EhFrameHdr::new(§ion, LittleEndian).parse(&bases, 8); + assert!(result.is_ok()); + let result = result.unwrap(); + assert_eq!(result.eh_frame_ptr(), Pointer::Direct(0x12345)); + assert!(result.table().is_none()); + } + + #[test] + fn test_eh_frame_hdr_omit_table() { + let section = Section::with_endian(Endian::Little) + .L8(1) + .L8(0x0b) + .L8(0x03) + .L8(0xff) + .L32(0x12345) + .L32(2); + let section = section.get_contents().unwrap(); + let bases = BaseAddresses::default(); + let result = EhFrameHdr::new(§ion, LittleEndian).parse(&bases, 8); + assert!(result.is_ok()); + let result = result.unwrap(); + assert_eq!(result.eh_frame_ptr(), Pointer::Direct(0x12345)); + assert!(result.table().is_none()); + } + + #[test] + fn test_eh_frame_hdr_varlen_table() { + let section = Section::with_endian(Endian::Little) + .L8(1) + .L8(0x0b) + .L8(0x03) + .L8(0x01) + .L32(0x12345) + .L32(2); + let section = section.get_contents().unwrap(); + let bases = BaseAddresses::default(); + let result = EhFrameHdr::new(§ion, LittleEndian).parse(&bases, 8); + assert!(result.is_ok()); + let result = result.unwrap(); + assert_eq!(result.eh_frame_ptr(), Pointer::Direct(0x12345)); + let table = result.table(); + assert!(table.is_some()); + let table = table.unwrap(); + assert_eq!( + table.lookup(0, &bases), + Err(Error::VariableLengthSearchTable) + ); + } + + #[test] + fn test_eh_frame_hdr_indirect_length() { + let section = Section::with_endian(Endian::Little) + .L8(1) + .L8(0x0b) + .L8(0x83) + .L8(0x0b) + .L32(0x12345) + .L32(2); + let section = section.get_contents().unwrap(); + let bases = BaseAddresses::default(); + let result = EhFrameHdr::new(§ion, LittleEndian).parse(&bases, 8); + assert!(result.is_err()); + assert_eq!(result.unwrap_err(), Error::UnsupportedPointerEncoding); + } + + #[test] + fn test_eh_frame_hdr_indirect_ptrs() { + let section = Section::with_endian(Endian::Little) + .L8(1) + .L8(0x8b) + .L8(0x03) + .L8(0x8b) + .L32(0x12345) + .L32(2) + .L32(10) + .L32(1) + .L32(20) + .L32(2); + let section = section.get_contents().unwrap(); + let bases = BaseAddresses::default(); + let result = EhFrameHdr::new(§ion, LittleEndian).parse(&bases, 8); + assert!(result.is_ok()); + let result = result.unwrap(); + assert_eq!(result.eh_frame_ptr(), Pointer::Indirect(0x12345)); + let table = result.table(); + assert!(table.is_some()); + let table = table.unwrap(); + assert_eq!( + table.lookup(0, &bases), + Err(Error::UnsupportedPointerEncoding) + ); + } + + #[test] + fn test_eh_frame_hdr_good() { + let section = Section::with_endian(Endian::Little) + .L8(1) + .L8(0x0b) + .L8(0x03) + .L8(0x0b) + .L32(0x12345) + .L32(2) + .L32(10) + .L32(1) + .L32(20) + .L32(2); + let section = section.get_contents().unwrap(); + let bases = BaseAddresses::default(); + let result = EhFrameHdr::new(§ion, LittleEndian).parse(&bases, 8); + assert!(result.is_ok()); + let result = result.unwrap(); + assert_eq!(result.eh_frame_ptr(), Pointer::Direct(0x12345)); + let table = result.table(); + assert!(table.is_some()); + let table = table.unwrap(); + assert_eq!(table.lookup(0, &bases), Ok(Pointer::Direct(1))); + assert_eq!(table.lookup(9, &bases), Ok(Pointer::Direct(1))); + assert_eq!(table.lookup(10, &bases), Ok(Pointer::Direct(1))); + assert_eq!(table.lookup(11, &bases), Ok(Pointer::Direct(1))); + assert_eq!(table.lookup(19, &bases), Ok(Pointer::Direct(1))); + assert_eq!(table.lookup(20, &bases), Ok(Pointer::Direct(2))); + assert_eq!(table.lookup(21, &bases), Ok(Pointer::Direct(2))); + assert_eq!(table.lookup(100_000, &bases), Ok(Pointer::Direct(2))); + } + + #[test] + fn test_eh_frame_fde_for_address_good() { + // First, setup eh_frame + // Write the CIE first so that its length gets set before we clone it + // into the FDE. + let mut cie = make_test_cie(); + cie.format = Format::Dwarf32; + cie.version = 1; + + let start_of_cie = Label::new(); + let end_of_cie = Label::new(); + + let kind = eh_frame_le(); + let section = Section::with_endian(kind.endian()) + .append_repeated(0, 16) + .mark(&start_of_cie) + .cie(kind, None, &mut cie) + .mark(&end_of_cie); + + let mut fde1 = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie.clone(), + initial_segment: 0, + initial_address: 9, + address_range: 4, + augmentation: None, + instructions: EndianSlice::new(&[], LittleEndian), + }; + let mut fde2 = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie.clone(), + initial_segment: 0, + initial_address: 20, + address_range: 8, + augmentation: None, + instructions: EndianSlice::new(&[], LittleEndian), + }; + + let start_of_fde1 = Label::new(); + let start_of_fde2 = Label::new(); + + let section = section + // +4 for the FDE length before the CIE offset. + .mark(&start_of_fde1) + .fde(kind, (&start_of_fde1 - &start_of_cie + 4) as u64, &mut fde1) + .mark(&start_of_fde2) + .fde(kind, (&start_of_fde2 - &start_of_cie + 4) as u64, &mut fde2); + + section.start().set_const(0); + let section = section.get_contents().unwrap(); + let eh_frame = kind.section(§ion); + + // Setup eh_frame_hdr + let section = Section::with_endian(kind.endian()) + .L8(1) + .L8(0x0b) + .L8(0x03) + .L8(0x0b) + .L32(0x12345) + .L32(2) + .L32(10) + .L32(0x12345 + start_of_fde1.value().unwrap() as u32) + .L32(20) + .L32(0x12345 + start_of_fde2.value().unwrap() as u32); + + let section = section.get_contents().unwrap(); + let bases = BaseAddresses::default(); + let eh_frame_hdr = EhFrameHdr::new(§ion, LittleEndian).parse(&bases, 8); + assert!(eh_frame_hdr.is_ok()); + let eh_frame_hdr = eh_frame_hdr.unwrap(); + + let table = eh_frame_hdr.table(); + assert!(table.is_some()); + let table = table.unwrap(); + + let bases = Default::default(); + let mut iter = table.iter(&bases); + assert_eq!( + iter.next(), + Ok(Some(( + Pointer::Direct(10), + Pointer::Direct(0x12345 + start_of_fde1.value().unwrap() as u64) + ))) + ); + assert_eq!( + iter.next(), + Ok(Some(( + Pointer::Direct(20), + Pointer::Direct(0x12345 + start_of_fde2.value().unwrap() as u64) + ))) + ); + assert_eq!(iter.next(), Ok(None)); + + assert_eq!( + table.iter(&bases).nth(0), + Ok(Some(( + Pointer::Direct(10), + Pointer::Direct(0x12345 + start_of_fde1.value().unwrap() as u64) + ))) + ); + + assert_eq!( + table.iter(&bases).nth(1), + Ok(Some(( + Pointer::Direct(20), + Pointer::Direct(0x12345 + start_of_fde2.value().unwrap() as u64) + ))) + ); + assert_eq!(table.iter(&bases).nth(2), Ok(None)); + + let f = |_: &_, _: &_, o: EhFrameOffset| { + assert_eq!(o, EhFrameOffset(start_of_cie.value().unwrap() as usize)); + Ok(cie.clone()) + }; + assert_eq!( + table.fde_for_address(&eh_frame, &bases, 9, f), + Ok(fde1.clone()) + ); + assert_eq!( + table.fde_for_address(&eh_frame, &bases, 10, f), + Ok(fde1.clone()) + ); + assert_eq!(table.fde_for_address(&eh_frame, &bases, 11, f), Ok(fde1)); + assert_eq!( + table.fde_for_address(&eh_frame, &bases, 19, f), + Err(Error::NoUnwindInfoForAddress) + ); + assert_eq!( + table.fde_for_address(&eh_frame, &bases, 20, f), + Ok(fde2.clone()) + ); + assert_eq!(table.fde_for_address(&eh_frame, &bases, 21, f), Ok(fde2)); + assert_eq!( + table.fde_for_address(&eh_frame, &bases, 100_000, f), + Err(Error::NoUnwindInfoForAddress) + ); + } + + #[test] + fn test_eh_frame_stops_at_zero_length() { + let section = Section::with_endian(Endian::Little).L32(0); + let section = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(§ion, LittleEndian); + let bases = Default::default(); + + assert_eq!( + parse_cfi_entry(&bases, &EhFrame::new(&*section, LittleEndian), rest), + Ok(None) + ); + + assert_eq!( + EhFrame::new(§ion, LittleEndian).cie_from_offset(&bases, EhFrameOffset(0)), + Err(Error::NoEntryAtGivenOffset) + ); + } + + fn resolve_cie_offset(buf: &[u8], cie_offset: usize) -> Result { + let mut fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf64, + cie: make_test_cie(), + initial_segment: 0, + initial_address: 0xfeed_beef, + address_range: 39, + augmentation: None, + instructions: EndianSlice::new(&[], LittleEndian), + }; + + let kind = eh_frame_le(); + let section = Section::with_endian(kind.endian()) + .append_bytes(&buf) + .fde(kind, cie_offset as u64, &mut fde) + .append_bytes(&buf); + + let section = section.get_contents().unwrap(); + let eh_frame = kind.section(§ion); + let input = &mut EndianSlice::new(§ion[buf.len()..], LittleEndian); + + let bases = Default::default(); + match parse_cfi_entry(&bases, &eh_frame, input) { + Ok(Some(CieOrFde::Fde(partial))) => Ok(partial.cie_offset.0), + Err(e) => Err(e), + otherwise => panic!("Unexpected result: {:#?}", otherwise), + } + } + + #[test] + fn test_eh_frame_resolve_cie_offset_ok() { + let buf = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; + let cie_offset = 2; + // + 4 for size of length field + assert_eq!( + resolve_cie_offset(&buf, buf.len() + 4 - cie_offset), + Ok(cie_offset) + ); + } + + #[test] + fn test_eh_frame_resolve_cie_offset_out_of_bounds() { + let buf = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; + assert_eq!( + resolve_cie_offset(&buf, buf.len() + 4 + 2), + Err(Error::OffsetOutOfBounds) + ); + } + + #[test] + fn test_eh_frame_resolve_cie_offset_underflow() { + let buf = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; + assert_eq!( + resolve_cie_offset(&buf, ::core::usize::MAX), + Err(Error::OffsetOutOfBounds) + ); + } + + #[test] + fn test_eh_frame_fde_ok() { + let mut cie = make_test_cie(); + cie.format = Format::Dwarf32; + cie.version = 1; + + let start_of_cie = Label::new(); + let end_of_cie = Label::new(); + + // Write the CIE first so that its length gets set before we clone it + // into the FDE. + let kind = eh_frame_le(); + let section = Section::with_endian(kind.endian()) + .append_repeated(0, 16) + .mark(&start_of_cie) + .cie(kind, None, &mut cie) + .mark(&end_of_cie); + + let mut fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie.clone(), + initial_segment: 0, + initial_address: 0xfeed_beef, + address_range: 999, + augmentation: None, + instructions: EndianSlice::new(&[], LittleEndian), + }; + + let section = section + // +4 for the FDE length before the CIE offset. + .fde(kind, (&end_of_cie - &start_of_cie + 4) as u64, &mut fde); + + section.start().set_const(0); + let section = section.get_contents().unwrap(); + let eh_frame = kind.section(§ion); + let section = EndianSlice::new(§ion, LittleEndian); + + let mut offset = None; + match parse_fde( + eh_frame, + &mut section.range_from(end_of_cie.value().unwrap() as usize..), + |_, _, o| { + offset = Some(o); + assert_eq!(o, EhFrameOffset(start_of_cie.value().unwrap() as usize)); + Ok(cie.clone()) + }, + ) { + Ok(actual) => assert_eq!(actual, fde), + otherwise => panic!("Unexpected result {:?}", otherwise), + } + assert!(offset.is_some()); + } + + #[test] + fn test_eh_frame_fde_out_of_bounds() { + let mut cie = make_test_cie(); + cie.version = 1; + + let end_of_cie = Label::new(); + + let mut fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf64, + cie: cie.clone(), + initial_segment: 0, + initial_address: 0xfeed_beef, + address_range: 999, + augmentation: None, + instructions: EndianSlice::new(&[], LittleEndian), + }; + + let kind = eh_frame_le(); + let section = Section::with_endian(kind.endian()) + .cie(kind, None, &mut cie) + .mark(&end_of_cie) + .fde(kind, 99_999_999_999_999, &mut fde); + + section.start().set_const(0); + let section = section.get_contents().unwrap(); + let eh_frame = kind.section(§ion); + let section = EndianSlice::new(§ion, LittleEndian); + + let result = parse_fde( + eh_frame, + &mut section.range_from(end_of_cie.value().unwrap() as usize..), + UnwindSection::cie_from_offset, + ); + assert_eq!(result, Err(Error::OffsetOutOfBounds)); + } + + #[test] + fn test_augmentation_parse_not_z_augmentation() { + let augmentation = &mut EndianSlice::new(b"wtf", NativeEndian); + let bases = Default::default(); + let address_size = 8; + let section = EhFrame::new(&[], NativeEndian); + let input = &mut EndianSlice::new(&[], NativeEndian); + assert_eq!( + Augmentation::parse(augmentation, &bases, address_size, §ion, input), + Err(Error::UnknownAugmentation) + ); + } + + #[test] + fn test_augmentation_parse_just_signal_trampoline() { + let aug_str = &mut EndianSlice::new(b"S", LittleEndian); + let bases = Default::default(); + let address_size = 8; + let section = EhFrame::new(&[], LittleEndian); + let input = &mut EndianSlice::new(&[], LittleEndian); + + let mut augmentation = Augmentation::default(); + augmentation.is_signal_trampoline = true; + + assert_eq!( + Augmentation::parse(aug_str, &bases, address_size, §ion, input), + Ok(augmentation) + ); + } + + #[test] + fn test_augmentation_parse_unknown_part_of_z_augmentation() { + // The 'Z' character is not defined by the z-style augmentation. + let bases = Default::default(); + let address_size = 8; + let section = Section::with_endian(Endian::Little) + .uleb(4) + .append_repeated(4, 4) + .get_contents() + .unwrap(); + let section = EhFrame::new(§ion, LittleEndian); + let input = &mut section.section().clone(); + let augmentation = &mut EndianSlice::new(b"zZ", LittleEndian); + assert_eq!( + Augmentation::parse(augmentation, &bases, address_size, §ion, input), + Err(Error::UnknownAugmentation) + ); + } + + #[test] + #[allow(non_snake_case)] + fn test_augmentation_parse_L() { + let bases = Default::default(); + let address_size = 8; + let rest = [9, 8, 7, 6, 5, 4, 3, 2, 1]; + + let section = Section::with_endian(Endian::Little) + .uleb(1) + .D8(constants::DW_EH_PE_uleb128.0) + .append_bytes(&rest) + .get_contents() + .unwrap(); + let section = EhFrame::new(§ion, LittleEndian); + let input = &mut section.section().clone(); + let aug_str = &mut EndianSlice::new(b"zL", LittleEndian); + + let mut augmentation = Augmentation::default(); + augmentation.lsda = Some(constants::DW_EH_PE_uleb128); + + assert_eq!( + Augmentation::parse(aug_str, &bases, address_size, §ion, input), + Ok(augmentation) + ); + assert_eq!(*input, EndianSlice::new(&rest, LittleEndian)); + } + + #[test] + #[allow(non_snake_case)] + fn test_augmentation_parse_P() { + let bases = Default::default(); + let address_size = 8; + let rest = [9, 8, 7, 6, 5, 4, 3, 2, 1]; + + let section = Section::with_endian(Endian::Little) + .uleb(9) + .D8(constants::DW_EH_PE_udata8.0) + .L64(0xf00d_f00d) + .append_bytes(&rest) + .get_contents() + .unwrap(); + let section = EhFrame::new(§ion, LittleEndian); + let input = &mut section.section().clone(); + let aug_str = &mut EndianSlice::new(b"zP", LittleEndian); + + let mut augmentation = Augmentation::default(); + augmentation.personality = Some((constants::DW_EH_PE_udata8, Pointer::Direct(0xf00d_f00d))); + + assert_eq!( + Augmentation::parse(aug_str, &bases, address_size, §ion, input), + Ok(augmentation) + ); + assert_eq!(*input, EndianSlice::new(&rest, LittleEndian)); + } + + #[test] + #[allow(non_snake_case)] + fn test_augmentation_parse_R() { + let bases = Default::default(); + let address_size = 8; + let rest = [9, 8, 7, 6, 5, 4, 3, 2, 1]; + + let section = Section::with_endian(Endian::Little) + .uleb(1) + .D8(constants::DW_EH_PE_udata4.0) + .append_bytes(&rest) + .get_contents() + .unwrap(); + let section = EhFrame::new(§ion, LittleEndian); + let input = &mut section.section().clone(); + let aug_str = &mut EndianSlice::new(b"zR", LittleEndian); + + let mut augmentation = Augmentation::default(); + augmentation.fde_address_encoding = Some(constants::DW_EH_PE_udata4); + + assert_eq!( + Augmentation::parse(aug_str, &bases, address_size, §ion, input), + Ok(augmentation) + ); + assert_eq!(*input, EndianSlice::new(&rest, LittleEndian)); + } + + #[test] + #[allow(non_snake_case)] + fn test_augmentation_parse_S() { + let bases = Default::default(); + let address_size = 8; + let rest = [9, 8, 7, 6, 5, 4, 3, 2, 1]; + + let section = Section::with_endian(Endian::Little) + .uleb(0) + .append_bytes(&rest) + .get_contents() + .unwrap(); + let section = EhFrame::new(§ion, LittleEndian); + let input = &mut section.section().clone(); + let aug_str = &mut EndianSlice::new(b"zS", LittleEndian); + + let mut augmentation = Augmentation::default(); + augmentation.is_signal_trampoline = true; + + assert_eq!( + Augmentation::parse(aug_str, &bases, address_size, §ion, input), + Ok(augmentation) + ); + assert_eq!(*input, EndianSlice::new(&rest, LittleEndian)); + } + + #[test] + fn test_augmentation_parse_all() { + let bases = Default::default(); + let address_size = 8; + let rest = [9, 8, 7, 6, 5, 4, 3, 2, 1]; + + let section = Section::with_endian(Endian::Little) + .uleb(1 + 9 + 1) + // L + .D8(constants::DW_EH_PE_uleb128.0) + // P + .D8(constants::DW_EH_PE_udata8.0) + .L64(0x1bad_f00d) + // R + .D8(constants::DW_EH_PE_uleb128.0) + .append_bytes(&rest) + .get_contents() + .unwrap(); + let section = EhFrame::new(§ion, LittleEndian); + let input = &mut section.section().clone(); + let aug_str = &mut EndianSlice::new(b"zLPRS", LittleEndian); + + let augmentation = Augmentation { + lsda: Some(constants::DW_EH_PE_uleb128), + personality: Some((constants::DW_EH_PE_udata8, Pointer::Direct(0x1bad_f00d))), + fde_address_encoding: Some(constants::DW_EH_PE_uleb128), + is_signal_trampoline: true, + }; + + assert_eq!( + Augmentation::parse(aug_str, &bases, address_size, §ion, input), + Ok(augmentation) + ); + assert_eq!(*input, EndianSlice::new(&rest, LittleEndian)); + } + + #[test] + fn test_eh_frame_fde_no_augmentation() { + let instrs = [1, 2, 3, 4]; + let cie_offset = 1; + + let mut cie = make_test_cie(); + cie.format = Format::Dwarf32; + cie.version = 1; + + let mut fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie.clone(), + initial_segment: 0, + initial_address: 0xfeed_face, + address_range: 9000, + augmentation: None, + instructions: EndianSlice::new(&instrs, LittleEndian), + }; + + let rest = [1, 2, 3, 4]; + + let kind = eh_frame_le(); + let section = Section::with_endian(kind.endian()) + .fde(kind, cie_offset, &mut fde) + .append_bytes(&rest) + .get_contents() + .unwrap(); + let section = kind.section(§ion); + let input = &mut section.section().clone(); + + let result = parse_fde(section, input, |_, _, _| Ok(cie.clone())); + assert_eq!(result, Ok(fde)); + assert_eq!(*input, EndianSlice::new(&rest, LittleEndian)); + } + + #[test] + fn test_eh_frame_fde_empty_augmentation() { + let instrs = [1, 2, 3, 4]; + let cie_offset = 1; + + let mut cie = make_test_cie(); + cie.format = Format::Dwarf32; + cie.version = 1; + cie.augmentation = Some(Augmentation::default()); + + let mut fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie.clone(), + initial_segment: 0, + initial_address: 0xfeed_face, + address_range: 9000, + augmentation: Some(AugmentationData::default()), + instructions: EndianSlice::new(&instrs, LittleEndian), + }; + + let rest = [1, 2, 3, 4]; + + let kind = eh_frame_le(); + let section = Section::with_endian(kind.endian()) + .fde(kind, cie_offset, &mut fde) + .append_bytes(&rest) + .get_contents() + .unwrap(); + let section = kind.section(§ion); + let input = &mut section.section().clone(); + + let result = parse_fde(section, input, |_, _, _| Ok(cie.clone())); + assert_eq!(result, Ok(fde)); + assert_eq!(*input, EndianSlice::new(&rest, LittleEndian)); + } + + #[test] + fn test_eh_frame_fde_lsda_augmentation() { + let instrs = [1, 2, 3, 4]; + let cie_offset = 1; + + let mut cie = make_test_cie(); + cie.format = Format::Dwarf32; + cie.version = 1; + cie.augmentation = Some(Augmentation::default()); + cie.augmentation.as_mut().unwrap().lsda = Some(constants::DW_EH_PE_absptr); + + let mut fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie.clone(), + initial_segment: 0, + initial_address: 0xfeed_face, + address_range: 9000, + augmentation: Some(AugmentationData { + lsda: Some(Pointer::Direct(0x1122_3344)), + }), + instructions: EndianSlice::new(&instrs, LittleEndian), + }; + + let rest = [1, 2, 3, 4]; + + let kind = eh_frame_le(); + let section = Section::with_endian(kind.endian()) + .fde(kind, cie_offset, &mut fde) + .append_bytes(&rest) + .get_contents() + .unwrap(); + let section = kind.section(§ion); + let input = &mut section.section().clone(); + + let result = parse_fde(section, input, |_, _, _| Ok(cie.clone())); + assert_eq!(result, Ok(fde)); + assert_eq!(*input, EndianSlice::new(&rest, LittleEndian)); + } + + #[test] + fn test_eh_frame_fde_lsda_function_relative() { + let instrs = [1, 2, 3, 4]; + let cie_offset = 1; + + let mut cie = make_test_cie(); + cie.format = Format::Dwarf32; + cie.version = 1; + cie.augmentation = Some(Augmentation::default()); + cie.augmentation.as_mut().unwrap().lsda = Some(constants::DwEhPe( + constants::DW_EH_PE_funcrel.0 | constants::DW_EH_PE_absptr.0, + )); + + let mut fde = FrameDescriptionEntry { + offset: 0, + length: 0, + format: Format::Dwarf32, + cie: cie.clone(), + initial_segment: 0, + initial_address: 0xfeed_face, + address_range: 9000, + augmentation: Some(AugmentationData { + lsda: Some(Pointer::Direct(0xbeef)), + }), + instructions: EndianSlice::new(&instrs, LittleEndian), + }; + + let rest = [1, 2, 3, 4]; + + let kind = eh_frame_le(); + let section = Section::with_endian(kind.endian()) + .append_repeated(10, 10) + .fde(kind, cie_offset, &mut fde) + .append_bytes(&rest) + .get_contents() + .unwrap(); + let section = kind.section(§ion); + let input = &mut section.section().range_from(10..); + + // Adjust the FDE's augmentation to be relative to the function. + fde.augmentation.as_mut().unwrap().lsda = Some(Pointer::Direct(0xfeed_face + 0xbeef)); + + let result = parse_fde(section, input, |_, _, _| Ok(cie.clone())); + assert_eq!(result, Ok(fde)); + assert_eq!(*input, EndianSlice::new(&rest, LittleEndian)); + } + + #[test] + fn test_eh_frame_cie_personality_function_relative_bad_context() { + let instrs = [1, 2, 3, 4]; + + let length = Label::new(); + let start = Label::new(); + let end = Label::new(); + + let aug_len = Label::new(); + let aug_start = Label::new(); + let aug_end = Label::new(); + + let section = Section::with_endian(Endian::Little) + // Length + .L32(&length) + .mark(&start) + // CIE ID + .L32(0) + // Version + .D8(1) + // Augmentation + .append_bytes(b"zP\0") + // Code alignment factor + .uleb(1) + // Data alignment factor + .sleb(1) + // Return address register + .uleb(1) + // Augmentation data length. This is a uleb, be we rely on the value + // being less than 2^7 and therefore a valid uleb (can't use Label + // with uleb). + .D8(&aug_len) + .mark(&aug_start) + // Augmentation data. Personality encoding and then encoded pointer. + .D8(constants::DW_EH_PE_funcrel.0 | constants::DW_EH_PE_uleb128.0) + .uleb(1) + .mark(&aug_end) + // Initial instructions + .append_bytes(&instrs) + .mark(&end); + + length.set_const((&end - &start) as u64); + aug_len.set_const((&aug_end - &aug_start) as u64); + + let section = section.get_contents().unwrap(); + let section = EhFrame::new(§ion, LittleEndian); + + let bases = BaseAddresses::default(); + let mut iter = section.entries(&bases); + assert_eq!(iter.next(), Err(Error::FuncRelativePointerInBadContext)); + } + + #[test] + fn register_rule_map_eq() { + // Different order, but still equal. + let map1: RegisterRuleMap> = [ + (Register(0), RegisterRule::SameValue), + (Register(3), RegisterRule::Offset(1)), + ] + .iter() + .collect(); + let map2: RegisterRuleMap> = [ + (Register(3), RegisterRule::Offset(1)), + (Register(0), RegisterRule::SameValue), + ] + .iter() + .collect(); + assert_eq!(map1, map2); + assert_eq!(map2, map1); + + // Not equal. + let map3: RegisterRuleMap> = [ + (Register(0), RegisterRule::SameValue), + (Register(2), RegisterRule::Offset(1)), + ] + .iter() + .collect(); + let map4: RegisterRuleMap> = [ + (Register(3), RegisterRule::Offset(1)), + (Register(0), RegisterRule::SameValue), + ] + .iter() + .collect(); + assert!(map3 != map4); + assert!(map4 != map3); + + // One has undefined explicitly set, other implicitly has undefined. + let mut map5 = RegisterRuleMap::>::default(); + map5.set(Register(0), RegisterRule::SameValue).unwrap(); + map5.set(Register(0), RegisterRule::Undefined).unwrap(); + let map6 = RegisterRuleMap::>::default(); + assert_eq!(map5, map6); + assert_eq!(map6, map5); + } + + #[test] + fn iter_register_rules() { + let mut row = UnwindTableRow::>::default(); + row.registers = [ + (Register(0), RegisterRule::SameValue), + (Register(1), RegisterRule::Offset(1)), + (Register(2), RegisterRule::ValOffset(2)), + ] + .iter() + .collect(); + + let mut found0 = false; + let mut found1 = false; + let mut found2 = false; + + for &(register, ref rule) in row.registers() { + match register.0 { + 0 => { + assert_eq!(found0, false); + found0 = true; + assert_eq!(*rule, RegisterRule::SameValue); + } + 1 => { + assert_eq!(found1, false); + found1 = true; + assert_eq!(*rule, RegisterRule::Offset(1)); + } + 2 => { + assert_eq!(found2, false); + found2 = true; + assert_eq!(*rule, RegisterRule::ValOffset(2)); + } + x => panic!("Unexpected register rule: ({}, {:?})", x, rule), + } + } + + assert_eq!(found0, true); + assert_eq!(found1, true); + assert_eq!(found2, true); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn size_of_unwind_ctx() { + use core::mem; + let size = mem::size_of::>>(); + let max_size = 30968; + if size > max_size { + assert_eq!(size, max_size); + } + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn size_of_register_rule_map() { + use core::mem; + let size = mem::size_of::>>(); + let max_size = 6152; + if size > max_size { + assert_eq!(size, max_size); + } + } + + #[test] + fn test_parse_pointer_encoding_ok() { + use crate::endianity::NativeEndian; + let expected = + constants::DwEhPe(constants::DW_EH_PE_uleb128.0 | constants::DW_EH_PE_pcrel.0); + let input = [expected.0, 1, 2, 3, 4]; + let input = &mut EndianSlice::new(&input, NativeEndian); + assert_eq!(parse_pointer_encoding(input), Ok(expected)); + assert_eq!(*input, EndianSlice::new(&[1, 2, 3, 4], NativeEndian)); + } + + #[test] + fn test_parse_pointer_encoding_bad_encoding() { + use crate::endianity::NativeEndian; + let expected = + constants::DwEhPe((constants::DW_EH_PE_sdata8.0 + 1) | constants::DW_EH_PE_pcrel.0); + let input = [expected.0, 1, 2, 3, 4]; + let input = &mut EndianSlice::new(&input, NativeEndian); + assert_eq!( + Err(Error::UnknownPointerEncoding), + parse_pointer_encoding(input) + ); + } + + #[test] + fn test_parse_encoded_pointer_absptr() { + let encoding = constants::DW_EH_PE_absptr; + let expected_rest = [1, 2, 3, 4]; + + let input = Section::with_endian(Endian::Little) + .L32(0xf00d_f00d) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Direct(0xf00d_f00d)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_encoded_pointer_pcrel() { + let encoding = constants::DW_EH_PE_pcrel; + let expected_rest = [1, 2, 3, 4]; + + let input = Section::with_endian(Endian::Little) + .append_repeated(0, 0x10) + .L32(0x1) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input.range_from(0x10..); + + let parameters = PointerEncodingParameters { + bases: &BaseAddresses::default().set_eh_frame(0x100).eh_frame, + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Direct(0x111)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_encoded_pointer_pcrel_undefined() { + let encoding = constants::DW_EH_PE_pcrel; + + let input = Section::with_endian(Endian::Little).L32(0x1); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Err(Error::PcRelativePointerButSectionBaseIsUndefined) + ); + } + + #[test] + fn test_parse_encoded_pointer_textrel() { + let encoding = constants::DW_EH_PE_textrel; + let expected_rest = [1, 2, 3, 4]; + + let input = Section::with_endian(Endian::Little) + .L32(0x1) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &BaseAddresses::default().set_text(0x10).eh_frame, + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Direct(0x11)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_encoded_pointer_textrel_undefined() { + let encoding = constants::DW_EH_PE_textrel; + + let input = Section::with_endian(Endian::Little).L32(0x1); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Err(Error::TextRelativePointerButTextBaseIsUndefined) + ); + } + + #[test] + fn test_parse_encoded_pointer_datarel() { + let encoding = constants::DW_EH_PE_datarel; + let expected_rest = [1, 2, 3, 4]; + + let input = Section::with_endian(Endian::Little) + .L32(0x1) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &BaseAddresses::default().set_got(0x10).eh_frame, + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Direct(0x11)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_encoded_pointer_datarel_undefined() { + let encoding = constants::DW_EH_PE_datarel; + + let input = Section::with_endian(Endian::Little).L32(0x1); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Err(Error::DataRelativePointerButDataBaseIsUndefined) + ); + } + + #[test] + fn test_parse_encoded_pointer_funcrel() { + let encoding = constants::DW_EH_PE_funcrel; + let expected_rest = [1, 2, 3, 4]; + + let input = Section::with_endian(Endian::Little) + .L32(0x1) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: Some(0x10), + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Direct(0x11)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_encoded_pointer_funcrel_undefined() { + let encoding = constants::DW_EH_PE_funcrel; + + let input = Section::with_endian(Endian::Little).L32(0x1); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Err(Error::FuncRelativePointerInBadContext) + ); + } + + #[test] + fn test_parse_encoded_pointer_uleb128() { + let encoding = + constants::DwEhPe(constants::DW_EH_PE_absptr.0 | constants::DW_EH_PE_uleb128.0); + let expected_rest = [1, 2, 3, 4]; + + let input = Section::with_endian(Endian::Little) + .uleb(0x12_3456) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Direct(0x12_3456)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_encoded_pointer_udata2() { + let encoding = + constants::DwEhPe(constants::DW_EH_PE_absptr.0 | constants::DW_EH_PE_udata2.0); + let expected_rest = [1, 2, 3, 4]; + + let input = Section::with_endian(Endian::Little) + .L16(0x1234) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Direct(0x1234)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_encoded_pointer_udata4() { + let encoding = + constants::DwEhPe(constants::DW_EH_PE_absptr.0 | constants::DW_EH_PE_udata4.0); + let expected_rest = [1, 2, 3, 4]; + + let input = Section::with_endian(Endian::Little) + .L32(0x1234_5678) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Direct(0x1234_5678)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_encoded_pointer_udata8() { + let encoding = + constants::DwEhPe(constants::DW_EH_PE_absptr.0 | constants::DW_EH_PE_udata8.0); + let expected_rest = [1, 2, 3, 4]; + + let input = Section::with_endian(Endian::Little) + .L64(0x1234_5678_1234_5678) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Direct(0x1234_5678_1234_5678)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_encoded_pointer_sleb128() { + let encoding = + constants::DwEhPe(constants::DW_EH_PE_textrel.0 | constants::DW_EH_PE_sleb128.0); + let expected_rest = [1, 2, 3, 4]; + + let input = Section::with_endian(Endian::Little) + .sleb(-0x1111) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &BaseAddresses::default().set_text(0x1111_1111).eh_frame, + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Direct(0x1111_0000)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_encoded_pointer_sdata2() { + let encoding = + constants::DwEhPe(constants::DW_EH_PE_absptr.0 | constants::DW_EH_PE_sdata2.0); + let expected_rest = [1, 2, 3, 4]; + let expected = 0x111 as i16; + + let input = Section::with_endian(Endian::Little) + .L16(expected as u16) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Direct(expected as u64)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_encoded_pointer_sdata4() { + let encoding = + constants::DwEhPe(constants::DW_EH_PE_absptr.0 | constants::DW_EH_PE_sdata4.0); + let expected_rest = [1, 2, 3, 4]; + let expected = 0x111_1111 as i32; + + let input = Section::with_endian(Endian::Little) + .L32(expected as u32) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Direct(expected as u64)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_encoded_pointer_sdata8() { + let encoding = + constants::DwEhPe(constants::DW_EH_PE_absptr.0 | constants::DW_EH_PE_sdata8.0); + let expected_rest = [1, 2, 3, 4]; + let expected = -0x11_1111_1222_2222 as i64; + + let input = Section::with_endian(Endian::Little) + .L64(expected as u64) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Direct(expected as u64)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_encoded_pointer_omit() { + let encoding = constants::DW_EH_PE_omit; + + let input = Section::with_endian(Endian::Little).L32(0x1); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Err(Error::CannotParseOmitPointerEncoding) + ); + assert_eq!(rest, input); + } + + #[test] + fn test_parse_encoded_pointer_bad_encoding() { + let encoding = constants::DwEhPe(constants::DW_EH_PE_sdata8.0 + 1); + + let input = Section::with_endian(Endian::Little).L32(0x1); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Err(Error::UnknownPointerEncoding) + ); + } + + #[test] + fn test_parse_encoded_pointer_aligned() { + // FIXME: support this encoding! + + let encoding = constants::DW_EH_PE_aligned; + + let input = Section::with_endian(Endian::Little).L32(0x1); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Err(Error::UnsupportedPointerEncoding) + ); + } + + #[test] + fn test_parse_encoded_pointer_indirect() { + let expected_rest = [1, 2, 3, 4]; + let encoding = constants::DW_EH_PE_indirect; + + let input = Section::with_endian(Endian::Little) + .L32(0x1234_5678) + .append_bytes(&expected_rest); + let input = input.get_contents().unwrap(); + let input = EndianSlice::new(&input, LittleEndian); + let mut rest = input; + + let parameters = PointerEncodingParameters { + bases: &SectionBaseAddresses::default(), + func_base: None, + address_size: 4, + section: &input, + }; + assert_eq!( + parse_encoded_pointer(encoding, ¶meters, &mut rest), + Ok(Pointer::Indirect(0x1234_5678)) + ); + assert_eq!(rest, EndianSlice::new(&expected_rest, LittleEndian)); + } +} diff --git a/src/rust/vendor/gimli/src/read/dwarf.rs b/src/rust/vendor/gimli/src/read/dwarf.rs new file mode 100644 index 000000000..2f8dcb363 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/dwarf.rs @@ -0,0 +1,1210 @@ +use alloc::string::String; +use alloc::sync::Arc; + +use crate::common::{ + DebugAddrBase, DebugAddrIndex, DebugInfoOffset, DebugLineStrOffset, DebugLocListsBase, + DebugLocListsIndex, DebugRngListsBase, DebugRngListsIndex, DebugStrOffset, DebugStrOffsetsBase, + DebugStrOffsetsIndex, DebugTypeSignature, DebugTypesOffset, DwarfFileType, DwoId, Encoding, + LocationListsOffset, RangeListsOffset, RawRangeListsOffset, SectionId, UnitSectionOffset, +}; +use crate::constants; +use crate::read::{ + Abbreviations, AbbreviationsCache, AbbreviationsCacheStrategy, AttributeValue, DebugAbbrev, + DebugAddr, DebugAranges, DebugCuIndex, DebugInfo, DebugInfoUnitHeadersIter, DebugLine, + DebugLineStr, DebugLoc, DebugLocLists, DebugRngLists, DebugStr, DebugStrOffsets, DebugTuIndex, + DebugTypes, DebugTypesUnitHeadersIter, DebuggingInformationEntry, EntriesCursor, EntriesRaw, + EntriesTree, Error, IncompleteLineProgram, LocListIter, LocationLists, Range, RangeLists, + RawLocListIter, RawRngListIter, Reader, ReaderOffset, ReaderOffsetId, Result, RngListIter, + Section, UnitHeader, UnitIndex, UnitIndexSectionIterator, UnitOffset, UnitType, +}; + +/// All of the commonly used DWARF sections, and other common information. +#[derive(Debug, Default)] +pub struct Dwarf { + /// The `.debug_abbrev` section. + pub debug_abbrev: DebugAbbrev, + + /// The `.debug_addr` section. + pub debug_addr: DebugAddr, + + /// The `.debug_aranges` section. + pub debug_aranges: DebugAranges, + + /// The `.debug_info` section. + pub debug_info: DebugInfo, + + /// The `.debug_line` section. + pub debug_line: DebugLine, + + /// The `.debug_line_str` section. + pub debug_line_str: DebugLineStr, + + /// The `.debug_str` section. + pub debug_str: DebugStr, + + /// The `.debug_str_offsets` section. + pub debug_str_offsets: DebugStrOffsets, + + /// The `.debug_types` section. + pub debug_types: DebugTypes, + + /// The location lists in the `.debug_loc` and `.debug_loclists` sections. + pub locations: LocationLists, + + /// The range lists in the `.debug_ranges` and `.debug_rnglists` sections. + pub ranges: RangeLists, + + /// The type of this file. + pub file_type: DwarfFileType, + + /// The DWARF sections for a supplementary object file. + pub sup: Option>>, + + /// A cache of previously parsed abbreviations for units in this file. + pub abbreviations_cache: AbbreviationsCache, +} + +impl Dwarf { + /// Try to load the DWARF sections using the given loader function. + /// + /// `section` loads a DWARF section from the object file. + /// It should return an empty section if the section does not exist. + /// + /// `section` may either directly return a `Reader` instance (such as + /// `EndianSlice`), or it may return some other type and then convert + /// that type into a `Reader` using `Dwarf::borrow`. + /// + /// After loading, the user should set the `file_type` field and + /// call `load_sup` if required. + pub fn load(mut section: F) -> core::result::Result + where + F: FnMut(SectionId) -> core::result::Result, + { + // Section types are inferred. + let debug_loc = Section::load(&mut section)?; + let debug_loclists = Section::load(&mut section)?; + let debug_ranges = Section::load(&mut section)?; + let debug_rnglists = Section::load(&mut section)?; + Ok(Dwarf { + debug_abbrev: Section::load(&mut section)?, + debug_addr: Section::load(&mut section)?, + debug_aranges: Section::load(&mut section)?, + debug_info: Section::load(&mut section)?, + debug_line: Section::load(&mut section)?, + debug_line_str: Section::load(&mut section)?, + debug_str: Section::load(&mut section)?, + debug_str_offsets: Section::load(&mut section)?, + debug_types: Section::load(&mut section)?, + locations: LocationLists::new(debug_loc, debug_loclists), + ranges: RangeLists::new(debug_ranges, debug_rnglists), + file_type: DwarfFileType::Main, + sup: None, + abbreviations_cache: AbbreviationsCache::new(), + }) + } + + /// Load the DWARF sections from the supplementary object file. + /// + /// `section` operates the same as for `load`. + /// + /// Sets `self.sup`, replacing any previous value. + pub fn load_sup(&mut self, section: F) -> core::result::Result<(), E> + where + F: FnMut(SectionId) -> core::result::Result, + { + self.sup = Some(Arc::new(Self::load(section)?)); + Ok(()) + } + + /// Create a `Dwarf` structure that references the data in `self`. + /// + /// This is useful when `R` implements `Reader` but `T` does not. + /// + /// ## Example Usage + /// + /// It can be useful to load DWARF sections into owned data structures, + /// such as `Vec`. However, we do not implement the `Reader` trait + /// for `Vec`, because it would be very inefficient, but this trait + /// is required for all of the methods that parse the DWARF data. + /// So we first load the DWARF sections into `Vec`s, and then use + /// `borrow` to create `Reader`s that reference the data. + /// + /// ```rust,no_run + /// # fn example() -> Result<(), gimli::Error> { + /// # let loader = |name| -> Result<_, gimli::Error> { unimplemented!() }; + /// # let sup_loader = |name| -> Result<_, gimli::Error> { unimplemented!() }; + /// // Read the DWARF sections into `Vec`s with whatever object loader you're using. + /// let mut owned_dwarf: gimli::Dwarf> = gimli::Dwarf::load(loader)?; + /// owned_dwarf.load_sup(sup_loader)?; + /// // Create references to the DWARF sections. + /// let dwarf = owned_dwarf.borrow(|section| { + /// gimli::EndianSlice::new(§ion, gimli::LittleEndian) + /// }); + /// # unreachable!() + /// # } + /// ``` + pub fn borrow<'a, F, R>(&'a self, mut borrow: F) -> Dwarf + where + F: FnMut(&'a T) -> R, + { + Dwarf { + debug_abbrev: self.debug_abbrev.borrow(&mut borrow), + debug_addr: self.debug_addr.borrow(&mut borrow), + debug_aranges: self.debug_aranges.borrow(&mut borrow), + debug_info: self.debug_info.borrow(&mut borrow), + debug_line: self.debug_line.borrow(&mut borrow), + debug_line_str: self.debug_line_str.borrow(&mut borrow), + debug_str: self.debug_str.borrow(&mut borrow), + debug_str_offsets: self.debug_str_offsets.borrow(&mut borrow), + debug_types: self.debug_types.borrow(&mut borrow), + locations: self.locations.borrow(&mut borrow), + ranges: self.ranges.borrow(&mut borrow), + file_type: self.file_type, + sup: self.sup().map(|sup| Arc::new(sup.borrow(borrow))), + abbreviations_cache: AbbreviationsCache::new(), + } + } + + /// Return a reference to the DWARF sections for supplementary object file. + pub fn sup(&self) -> Option<&Dwarf> { + self.sup.as_ref().map(Arc::as_ref) + } +} + +impl Dwarf { + /// Parse abbreviations and store them in the cache. + /// + /// This will iterate over the units in `self.debug_info` to determine the + /// abbreviations offsets. + /// + /// Errors during parsing abbreviations are also stored in the cache. + /// Errors during iterating over the units are ignored. + pub fn populate_abbreviations_cache(&mut self, strategy: AbbreviationsCacheStrategy) { + self.abbreviations_cache + .populate(strategy, &self.debug_abbrev, self.debug_info.units()); + } + + /// Iterate the unit headers in the `.debug_info` section. + /// + /// Can be [used with + /// `FallibleIterator`](./index.html#using-with-fallibleiterator). + #[inline] + pub fn units(&self) -> DebugInfoUnitHeadersIter { + self.debug_info.units() + } + + /// Construct a new `Unit` from the given unit header. + #[inline] + pub fn unit(&self, header: UnitHeader) -> Result> { + Unit::new(self, header) + } + + /// Iterate the type-unit headers in the `.debug_types` section. + /// + /// Can be [used with + /// `FallibleIterator`](./index.html#using-with-fallibleiterator). + #[inline] + pub fn type_units(&self) -> DebugTypesUnitHeadersIter { + self.debug_types.units() + } + + /// Parse the abbreviations for a compilation unit. + #[inline] + pub fn abbreviations(&self, unit: &UnitHeader) -> Result> { + self.abbreviations_cache + .get(&self.debug_abbrev, unit.debug_abbrev_offset()) + } + + /// Return the string offset at the given index. + #[inline] + pub fn string_offset( + &self, + unit: &Unit, + index: DebugStrOffsetsIndex, + ) -> Result> { + self.debug_str_offsets + .get_str_offset(unit.header.format(), unit.str_offsets_base, index) + } + + /// Return the string at the given offset in `.debug_str`. + #[inline] + pub fn string(&self, offset: DebugStrOffset) -> Result { + self.debug_str.get_str(offset) + } + + /// Return the string at the given offset in `.debug_line_str`. + #[inline] + pub fn line_string(&self, offset: DebugLineStrOffset) -> Result { + self.debug_line_str.get_str(offset) + } + + /// Return an attribute value as a string slice. + /// + /// If the attribute value is one of: + /// + /// - an inline `DW_FORM_string` string + /// - a `DW_FORM_strp` reference to an offset into the `.debug_str` section + /// - a `DW_FORM_strp_sup` reference to an offset into a supplementary + /// object file + /// - a `DW_FORM_line_strp` reference to an offset into the `.debug_line_str` + /// section + /// - a `DW_FORM_strx` index into the `.debug_str_offsets` entries for the unit + /// + /// then return the attribute's string value. Returns an error if the attribute + /// value does not have a string form, or if a string form has an invalid value. + pub fn attr_string(&self, unit: &Unit, attr: AttributeValue) -> Result { + match attr { + AttributeValue::String(string) => Ok(string), + AttributeValue::DebugStrRef(offset) => self.debug_str.get_str(offset), + AttributeValue::DebugStrRefSup(offset) => { + if let Some(sup) = self.sup() { + sup.debug_str.get_str(offset) + } else { + Err(Error::ExpectedStringAttributeValue) + } + } + AttributeValue::DebugLineStrRef(offset) => self.debug_line_str.get_str(offset), + AttributeValue::DebugStrOffsetsIndex(index) => { + let offset = self.debug_str_offsets.get_str_offset( + unit.header.format(), + unit.str_offsets_base, + index, + )?; + self.debug_str.get_str(offset) + } + _ => Err(Error::ExpectedStringAttributeValue), + } + } + + /// Return the address at the given index. + pub fn address(&self, unit: &Unit, index: DebugAddrIndex) -> Result { + self.debug_addr + .get_address(unit.encoding().address_size, unit.addr_base, index) + } + + /// Try to return an attribute value as an address. + /// + /// If the attribute value is one of: + /// + /// - a `DW_FORM_addr` + /// - a `DW_FORM_addrx` index into the `.debug_addr` entries for the unit + /// + /// then return the address. + /// Returns `None` for other forms. + pub fn attr_address(&self, unit: &Unit, attr: AttributeValue) -> Result> { + match attr { + AttributeValue::Addr(addr) => Ok(Some(addr)), + AttributeValue::DebugAddrIndex(index) => self.address(unit, index).map(Some), + _ => Ok(None), + } + } + + /// Return the range list offset for the given raw offset. + /// + /// This handles adding `DW_AT_GNU_ranges_base` if required. + pub fn ranges_offset_from_raw( + &self, + unit: &Unit, + offset: RawRangeListsOffset, + ) -> RangeListsOffset { + if self.file_type == DwarfFileType::Dwo && unit.header.version() < 5 { + RangeListsOffset(offset.0.wrapping_add(unit.rnglists_base.0)) + } else { + RangeListsOffset(offset.0) + } + } + + /// Return the range list offset at the given index. + pub fn ranges_offset( + &self, + unit: &Unit, + index: DebugRngListsIndex, + ) -> Result> { + self.ranges + .get_offset(unit.encoding(), unit.rnglists_base, index) + } + + /// Iterate over the `RangeListEntry`s starting at the given offset. + pub fn ranges( + &self, + unit: &Unit, + offset: RangeListsOffset, + ) -> Result> { + self.ranges.ranges( + offset, + unit.encoding(), + unit.low_pc, + &self.debug_addr, + unit.addr_base, + ) + } + + /// Iterate over the `RawRngListEntry`ies starting at the given offset. + pub fn raw_ranges( + &self, + unit: &Unit, + offset: RangeListsOffset, + ) -> Result> { + self.ranges.raw_ranges(offset, unit.encoding()) + } + + /// Try to return an attribute value as a range list offset. + /// + /// If the attribute value is one of: + /// + /// - a `DW_FORM_sec_offset` reference to the `.debug_ranges` or `.debug_rnglists` sections + /// - a `DW_FORM_rnglistx` index into the `.debug_rnglists` entries for the unit + /// + /// then return the range list offset of the range list. + /// Returns `None` for other forms. + pub fn attr_ranges_offset( + &self, + unit: &Unit, + attr: AttributeValue, + ) -> Result>> { + match attr { + AttributeValue::RangeListsRef(offset) => { + Ok(Some(self.ranges_offset_from_raw(unit, offset))) + } + AttributeValue::DebugRngListsIndex(index) => self.ranges_offset(unit, index).map(Some), + _ => Ok(None), + } + } + + /// Try to return an attribute value as a range list entry iterator. + /// + /// If the attribute value is one of: + /// + /// - a `DW_FORM_sec_offset` reference to the `.debug_ranges` or `.debug_rnglists` sections + /// - a `DW_FORM_rnglistx` index into the `.debug_rnglists` entries for the unit + /// + /// then return an iterator over the entries in the range list. + /// Returns `None` for other forms. + pub fn attr_ranges( + &self, + unit: &Unit, + attr: AttributeValue, + ) -> Result>> { + match self.attr_ranges_offset(unit, attr)? { + Some(offset) => Ok(Some(self.ranges(unit, offset)?)), + None => Ok(None), + } + } + + /// Return an iterator for the address ranges of a `DebuggingInformationEntry`. + /// + /// This uses `DW_AT_low_pc`, `DW_AT_high_pc` and `DW_AT_ranges`. + pub fn die_ranges( + &self, + unit: &Unit, + entry: &DebuggingInformationEntry, + ) -> Result> { + let mut low_pc = None; + let mut high_pc = None; + let mut size = None; + let mut attrs = entry.attrs(); + while let Some(attr) = attrs.next()? { + match attr.name() { + constants::DW_AT_low_pc => { + low_pc = Some( + self.attr_address(unit, attr.value())? + .ok_or(Error::UnsupportedAttributeForm)?, + ); + } + constants::DW_AT_high_pc => match attr.value() { + AttributeValue::Udata(val) => size = Some(val), + attr => { + high_pc = Some( + self.attr_address(unit, attr)? + .ok_or(Error::UnsupportedAttributeForm)?, + ); + } + }, + constants::DW_AT_ranges => { + if let Some(list) = self.attr_ranges(unit, attr.value())? { + return Ok(RangeIter(RangeIterInner::List(list))); + } + } + _ => {} + } + } + let range = low_pc.and_then(|begin| { + let end = size.map(|size| begin + size).or(high_pc); + // TODO: perhaps return an error if `end` is `None` + end.map(|end| Range { begin, end }) + }); + Ok(RangeIter(RangeIterInner::Single(range))) + } + + /// Return an iterator for the address ranges of a `Unit`. + /// + /// This uses `DW_AT_low_pc`, `DW_AT_high_pc` and `DW_AT_ranges` of the + /// root `DebuggingInformationEntry`. + pub fn unit_ranges(&self, unit: &Unit) -> Result> { + let mut cursor = unit.header.entries(&unit.abbreviations); + cursor.next_dfs()?; + let root = cursor.current().ok_or(Error::MissingUnitDie)?; + self.die_ranges(unit, root) + } + + /// Return the location list offset at the given index. + pub fn locations_offset( + &self, + unit: &Unit, + index: DebugLocListsIndex, + ) -> Result> { + self.locations + .get_offset(unit.encoding(), unit.loclists_base, index) + } + + /// Iterate over the `LocationListEntry`s starting at the given offset. + pub fn locations( + &self, + unit: &Unit, + offset: LocationListsOffset, + ) -> Result> { + match self.file_type { + DwarfFileType::Main => self.locations.locations( + offset, + unit.encoding(), + unit.low_pc, + &self.debug_addr, + unit.addr_base, + ), + DwarfFileType::Dwo => self.locations.locations_dwo( + offset, + unit.encoding(), + unit.low_pc, + &self.debug_addr, + unit.addr_base, + ), + } + } + + /// Iterate over the raw `LocationListEntry`s starting at the given offset. + pub fn raw_locations( + &self, + unit: &Unit, + offset: LocationListsOffset, + ) -> Result> { + match self.file_type { + DwarfFileType::Main => self.locations.raw_locations(offset, unit.encoding()), + DwarfFileType::Dwo => self.locations.raw_locations_dwo(offset, unit.encoding()), + } + } + + /// Try to return an attribute value as a location list offset. + /// + /// If the attribute value is one of: + /// + /// - a `DW_FORM_sec_offset` reference to the `.debug_loc` or `.debug_loclists` sections + /// - a `DW_FORM_loclistx` index into the `.debug_loclists` entries for the unit + /// + /// then return the location list offset of the location list. + /// Returns `None` for other forms. + pub fn attr_locations_offset( + &self, + unit: &Unit, + attr: AttributeValue, + ) -> Result>> { + match attr { + AttributeValue::LocationListsRef(offset) => Ok(Some(offset)), + AttributeValue::DebugLocListsIndex(index) => { + self.locations_offset(unit, index).map(Some) + } + _ => Ok(None), + } + } + + /// Try to return an attribute value as a location list entry iterator. + /// + /// If the attribute value is one of: + /// + /// - a `DW_FORM_sec_offset` reference to the `.debug_loc` or `.debug_loclists` sections + /// - a `DW_FORM_loclistx` index into the `.debug_loclists` entries for the unit + /// + /// then return an iterator over the entries in the location list. + /// Returns `None` for other forms. + pub fn attr_locations( + &self, + unit: &Unit, + attr: AttributeValue, + ) -> Result>> { + match self.attr_locations_offset(unit, attr)? { + Some(offset) => Ok(Some(self.locations(unit, offset)?)), + None => Ok(None), + } + } + + /// Call `Reader::lookup_offset_id` for each section, and return the first match. + /// + /// The first element of the tuple is `true` for supplementary sections. + pub fn lookup_offset_id(&self, id: ReaderOffsetId) -> Option<(bool, SectionId, R::Offset)> { + None.or_else(|| self.debug_abbrev.lookup_offset_id(id)) + .or_else(|| self.debug_addr.lookup_offset_id(id)) + .or_else(|| self.debug_aranges.lookup_offset_id(id)) + .or_else(|| self.debug_info.lookup_offset_id(id)) + .or_else(|| self.debug_line.lookup_offset_id(id)) + .or_else(|| self.debug_line_str.lookup_offset_id(id)) + .or_else(|| self.debug_str.lookup_offset_id(id)) + .or_else(|| self.debug_str_offsets.lookup_offset_id(id)) + .or_else(|| self.debug_types.lookup_offset_id(id)) + .or_else(|| self.locations.lookup_offset_id(id)) + .or_else(|| self.ranges.lookup_offset_id(id)) + .map(|(id, offset)| (false, id, offset)) + .or_else(|| { + self.sup() + .and_then(|sup| sup.lookup_offset_id(id)) + .map(|(_, id, offset)| (true, id, offset)) + }) + } + + /// Returns a string representation of the given error. + /// + /// This uses information from the DWARF sections to provide more information in some cases. + pub fn format_error(&self, err: Error) -> String { + #[allow(clippy::single_match)] + match err { + Error::UnexpectedEof(id) => match self.lookup_offset_id(id) { + Some((sup, section, offset)) => { + return format!( + "{} at {}{}+0x{:x}", + err, + section.name(), + if sup { "(sup)" } else { "" }, + offset.into_u64(), + ); + } + None => {} + }, + _ => {} + } + err.description().into() + } +} + +impl Dwarf { + /// Assuming `self` was loaded from a .dwo, take the appropriate + /// sections from `parent` (which contains the skeleton unit for this + /// dwo) such as `.debug_addr` and merge them into this `Dwarf`. + pub fn make_dwo(&mut self, parent: &Dwarf) { + self.file_type = DwarfFileType::Dwo; + // These sections are always taken from the parent file and not the dwo. + self.debug_addr = parent.debug_addr.clone(); + // .debug_rnglists comes from the DWO, .debug_ranges comes from the + // parent file. + self.ranges + .set_debug_ranges(parent.ranges.debug_ranges().clone()); + self.sup = parent.sup.clone(); + } +} + +/// The sections from a `.dwp` file. +#[derive(Debug)] +pub struct DwarfPackage { + /// The compilation unit index in the `.debug_cu_index` section. + pub cu_index: UnitIndex, + + /// The type unit index in the `.debug_tu_index` section. + pub tu_index: UnitIndex, + + /// The `.debug_abbrev.dwo` section. + pub debug_abbrev: DebugAbbrev, + + /// The `.debug_info.dwo` section. + pub debug_info: DebugInfo, + + /// The `.debug_line.dwo` section. + pub debug_line: DebugLine, + + /// The `.debug_str.dwo` section. + pub debug_str: DebugStr, + + /// The `.debug_str_offsets.dwo` section. + pub debug_str_offsets: DebugStrOffsets, + + /// The `.debug_loc.dwo` section. + /// + /// Only present when using GNU split-dwarf extension to DWARF 4. + pub debug_loc: DebugLoc, + + /// The `.debug_loclists.dwo` section. + pub debug_loclists: DebugLocLists, + + /// The `.debug_rnglists.dwo` section. + pub debug_rnglists: DebugRngLists, + + /// The `.debug_types.dwo` section. + /// + /// Only present when using GNU split-dwarf extension to DWARF 4. + pub debug_types: DebugTypes, + + /// An empty section. + /// + /// Used when creating `Dwarf`. + pub empty: R, +} + +impl DwarfPackage { + /// Try to load the `.dwp` sections using the given loader function. + /// + /// `section` loads a DWARF section from the object file. + /// It should return an empty section if the section does not exist. + pub fn load(mut section: F, empty: R) -> core::result::Result + where + F: FnMut(SectionId) -> core::result::Result, + E: From, + { + Ok(DwarfPackage { + cu_index: DebugCuIndex::load(&mut section)?.index()?, + tu_index: DebugTuIndex::load(&mut section)?.index()?, + // Section types are inferred. + debug_abbrev: Section::load(&mut section)?, + debug_info: Section::load(&mut section)?, + debug_line: Section::load(&mut section)?, + debug_str: Section::load(&mut section)?, + debug_str_offsets: Section::load(&mut section)?, + debug_loc: Section::load(&mut section)?, + debug_loclists: Section::load(&mut section)?, + debug_rnglists: Section::load(&mut section)?, + debug_types: Section::load(&mut section)?, + empty, + }) + } + + /// Find the compilation unit with the given DWO identifier and return its section + /// contributions. + pub fn find_cu(&self, id: DwoId, parent: &Dwarf) -> Result>> { + let row = match self.cu_index.find(id.0) { + Some(row) => row, + None => return Ok(None), + }; + self.cu_sections(row, parent).map(Some) + } + + /// Find the type unit with the given type signature and return its section + /// contributions. + pub fn find_tu( + &self, + signature: DebugTypeSignature, + parent: &Dwarf, + ) -> Result>> { + let row = match self.tu_index.find(signature.0) { + Some(row) => row, + None => return Ok(None), + }; + self.tu_sections(row, parent).map(Some) + } + + /// Return the section contributions of the compilation unit at the given index. + /// + /// The index must be in the range `1..cu_index.unit_count`. + /// + /// This function should only be needed by low level parsers. + pub fn cu_sections(&self, index: u32, parent: &Dwarf) -> Result> { + self.sections(self.cu_index.sections(index)?, parent) + } + + /// Return the section contributions of the compilation unit at the given index. + /// + /// The index must be in the range `1..tu_index.unit_count`. + /// + /// This function should only be needed by low level parsers. + pub fn tu_sections(&self, index: u32, parent: &Dwarf) -> Result> { + self.sections(self.tu_index.sections(index)?, parent) + } + + /// Return the section contributions of a unit. + /// + /// This function should only be needed by low level parsers. + pub fn sections( + &self, + sections: UnitIndexSectionIterator, + parent: &Dwarf, + ) -> Result> { + let mut abbrev_offset = 0; + let mut abbrev_size = 0; + let mut info_offset = 0; + let mut info_size = 0; + let mut line_offset = 0; + let mut line_size = 0; + let mut loc_offset = 0; + let mut loc_size = 0; + let mut loclists_offset = 0; + let mut loclists_size = 0; + let mut str_offsets_offset = 0; + let mut str_offsets_size = 0; + let mut rnglists_offset = 0; + let mut rnglists_size = 0; + let mut types_offset = 0; + let mut types_size = 0; + for section in sections { + match section.section { + SectionId::DebugAbbrev => { + abbrev_offset = section.offset; + abbrev_size = section.size; + } + SectionId::DebugInfo => { + info_offset = section.offset; + info_size = section.size; + } + SectionId::DebugLine => { + line_offset = section.offset; + line_size = section.size; + } + SectionId::DebugLoc => { + loc_offset = section.offset; + loc_size = section.size; + } + SectionId::DebugLocLists => { + loclists_offset = section.offset; + loclists_size = section.size; + } + SectionId::DebugStrOffsets => { + str_offsets_offset = section.offset; + str_offsets_size = section.size; + } + SectionId::DebugRngLists => { + rnglists_offset = section.offset; + rnglists_size = section.size; + } + SectionId::DebugTypes => { + types_offset = section.offset; + types_size = section.size; + } + SectionId::DebugMacro | SectionId::DebugMacinfo => { + // These are valid but we can't parse these yet. + } + _ => return Err(Error::UnknownIndexSection), + } + } + + let debug_abbrev = self.debug_abbrev.dwp_range(abbrev_offset, abbrev_size)?; + let debug_info = self.debug_info.dwp_range(info_offset, info_size)?; + let debug_line = self.debug_line.dwp_range(line_offset, line_size)?; + let debug_loc = self.debug_loc.dwp_range(loc_offset, loc_size)?; + let debug_loclists = self + .debug_loclists + .dwp_range(loclists_offset, loclists_size)?; + let debug_str_offsets = self + .debug_str_offsets + .dwp_range(str_offsets_offset, str_offsets_size)?; + let debug_rnglists = self + .debug_rnglists + .dwp_range(rnglists_offset, rnglists_size)?; + let debug_types = self.debug_types.dwp_range(types_offset, types_size)?; + + let debug_str = self.debug_str.clone(); + + let debug_addr = parent.debug_addr.clone(); + let debug_ranges = parent.ranges.debug_ranges().clone(); + + let debug_aranges = self.empty.clone().into(); + let debug_line_str = self.empty.clone().into(); + + Ok(Dwarf { + debug_abbrev, + debug_addr, + debug_aranges, + debug_info, + debug_line, + debug_line_str, + debug_str, + debug_str_offsets, + debug_types, + locations: LocationLists::new(debug_loc, debug_loclists), + ranges: RangeLists::new(debug_ranges, debug_rnglists), + file_type: DwarfFileType::Dwo, + sup: parent.sup.clone(), + abbreviations_cache: AbbreviationsCache::new(), + }) + } +} + +/// All of the commonly used information for a unit in the `.debug_info` or `.debug_types` +/// sections. +#[derive(Debug)] +pub struct Unit::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + /// The header of the unit. + pub header: UnitHeader, + + /// The parsed abbreviations for the unit. + pub abbreviations: Arc, + + /// The `DW_AT_name` attribute of the unit. + pub name: Option, + + /// The `DW_AT_comp_dir` attribute of the unit. + pub comp_dir: Option, + + /// The `DW_AT_low_pc` attribute of the unit. Defaults to 0. + pub low_pc: u64, + + /// The `DW_AT_str_offsets_base` attribute of the unit. Defaults to 0. + pub str_offsets_base: DebugStrOffsetsBase, + + /// The `DW_AT_addr_base` attribute of the unit. Defaults to 0. + pub addr_base: DebugAddrBase, + + /// The `DW_AT_loclists_base` attribute of the unit. Defaults to 0. + pub loclists_base: DebugLocListsBase, + + /// The `DW_AT_rnglists_base` attribute of the unit. Defaults to 0. + pub rnglists_base: DebugRngListsBase, + + /// The line number program of the unit. + pub line_program: Option>, + + /// The DWO ID of a skeleton unit or split compilation unit. + pub dwo_id: Option, +} + +impl Unit { + /// Construct a new `Unit` from the given unit header. + #[inline] + pub fn new(dwarf: &Dwarf, header: UnitHeader) -> Result { + let abbreviations = dwarf.abbreviations(&header)?; + Self::new_with_abbreviations(dwarf, header, abbreviations) + } + + /// Construct a new `Unit` from the given unit header and abbreviations. + /// + /// The abbreviations for this call can be obtained using `dwarf.abbreviations(&header)`. + /// The caller may implement caching to reuse the `Abbreviations` across units with the + /// same `header.debug_abbrev_offset()` value. + #[inline] + pub fn new_with_abbreviations( + dwarf: &Dwarf, + header: UnitHeader, + abbreviations: Arc, + ) -> Result { + let mut unit = Unit { + abbreviations, + name: None, + comp_dir: None, + low_pc: 0, + str_offsets_base: DebugStrOffsetsBase::default_for_encoding_and_file( + header.encoding(), + dwarf.file_type, + ), + // NB: Because the .debug_addr section never lives in a .dwo, we can assume its base is always 0 or provided. + addr_base: DebugAddrBase(R::Offset::from_u8(0)), + loclists_base: DebugLocListsBase::default_for_encoding_and_file( + header.encoding(), + dwarf.file_type, + ), + rnglists_base: DebugRngListsBase::default_for_encoding_and_file( + header.encoding(), + dwarf.file_type, + ), + line_program: None, + dwo_id: match header.type_() { + UnitType::Skeleton(dwo_id) | UnitType::SplitCompilation(dwo_id) => Some(dwo_id), + _ => None, + }, + header, + }; + let mut name = None; + let mut comp_dir = None; + let mut line_program_offset = None; + let mut low_pc_attr = None; + + { + let mut cursor = unit.header.entries(&unit.abbreviations); + cursor.next_dfs()?; + let root = cursor.current().ok_or(Error::MissingUnitDie)?; + let mut attrs = root.attrs(); + while let Some(attr) = attrs.next()? { + match attr.name() { + constants::DW_AT_name => { + name = Some(attr.value()); + } + constants::DW_AT_comp_dir => { + comp_dir = Some(attr.value()); + } + constants::DW_AT_low_pc => { + low_pc_attr = Some(attr.value()); + } + constants::DW_AT_stmt_list => { + if let AttributeValue::DebugLineRef(offset) = attr.value() { + line_program_offset = Some(offset); + } + } + constants::DW_AT_str_offsets_base => { + if let AttributeValue::DebugStrOffsetsBase(base) = attr.value() { + unit.str_offsets_base = base; + } + } + constants::DW_AT_addr_base | constants::DW_AT_GNU_addr_base => { + if let AttributeValue::DebugAddrBase(base) = attr.value() { + unit.addr_base = base; + } + } + constants::DW_AT_loclists_base => { + if let AttributeValue::DebugLocListsBase(base) = attr.value() { + unit.loclists_base = base; + } + } + constants::DW_AT_rnglists_base | constants::DW_AT_GNU_ranges_base => { + if let AttributeValue::DebugRngListsBase(base) = attr.value() { + unit.rnglists_base = base; + } + } + constants::DW_AT_GNU_dwo_id => { + if unit.dwo_id.is_none() { + if let AttributeValue::DwoId(dwo_id) = attr.value() { + unit.dwo_id = Some(dwo_id); + } + } + } + _ => {} + } + } + } + + unit.name = match name { + Some(val) => dwarf.attr_string(&unit, val).ok(), + None => None, + }; + unit.comp_dir = match comp_dir { + Some(val) => dwarf.attr_string(&unit, val).ok(), + None => None, + }; + unit.line_program = match line_program_offset { + Some(offset) => Some(dwarf.debug_line.program( + offset, + unit.header.address_size(), + unit.comp_dir.clone(), + unit.name.clone(), + )?), + None => None, + }; + if let Some(low_pc_attr) = low_pc_attr { + if let Some(addr) = dwarf.attr_address(&unit, low_pc_attr)? { + unit.low_pc = addr; + } + } + Ok(unit) + } + + /// Return the encoding parameters for this unit. + #[inline] + pub fn encoding(&self) -> Encoding { + self.header.encoding() + } + + /// Read the `DebuggingInformationEntry` at the given offset. + pub fn entry(&self, offset: UnitOffset) -> Result> { + self.header.entry(&self.abbreviations, offset) + } + + /// Navigate this unit's `DebuggingInformationEntry`s. + #[inline] + pub fn entries(&self) -> EntriesCursor { + self.header.entries(&self.abbreviations) + } + + /// Navigate this unit's `DebuggingInformationEntry`s + /// starting at the given offset. + #[inline] + pub fn entries_at_offset(&self, offset: UnitOffset) -> Result> { + self.header.entries_at_offset(&self.abbreviations, offset) + } + + /// Navigate this unit's `DebuggingInformationEntry`s as a tree + /// starting at the given offset. + #[inline] + pub fn entries_tree(&self, offset: Option>) -> Result> { + self.header.entries_tree(&self.abbreviations, offset) + } + + /// Read the raw data that defines the Debugging Information Entries. + #[inline] + pub fn entries_raw(&self, offset: Option>) -> Result> { + self.header.entries_raw(&self.abbreviations, offset) + } + + /// Copy attributes that are subject to relocation from another unit. This is intended + /// to be used to copy attributes from a skeleton compilation unit to the corresponding + /// split compilation unit. + pub fn copy_relocated_attributes(&mut self, other: &Unit) { + self.low_pc = other.low_pc; + self.addr_base = other.addr_base; + if self.header.version() < 5 { + self.rnglists_base = other.rnglists_base; + } + } + + /// Find the dwo name (if any) for this unit, automatically handling the differences + /// between the standardized DWARF 5 split DWARF format and the pre-DWARF 5 GNU + /// extension. + /// + /// The returned value is relative to this unit's `comp_dir`. + pub fn dwo_name(&self) -> Result>> { + let mut entries = self.entries(); + if let None = entries.next_entry()? { + return Ok(None); + } + + let entry = entries.current().unwrap(); + if self.header.version() < 5 { + entry.attr_value(constants::DW_AT_GNU_dwo_name) + } else { + entry.attr_value(constants::DW_AT_dwo_name) + } + } +} + +impl UnitSectionOffset { + /// Convert an offset to be relative to the start of the given unit, + /// instead of relative to the start of the section. + /// Returns `None` if the offset is not within the unit entries. + pub fn to_unit_offset(&self, unit: &Unit) -> Option> + where + R: Reader, + { + let (offset, unit_offset) = match (self, unit.header.offset()) { + ( + UnitSectionOffset::DebugInfoOffset(offset), + UnitSectionOffset::DebugInfoOffset(unit_offset), + ) => (offset.0, unit_offset.0), + ( + UnitSectionOffset::DebugTypesOffset(offset), + UnitSectionOffset::DebugTypesOffset(unit_offset), + ) => (offset.0, unit_offset.0), + _ => return None, + }; + let offset = match offset.checked_sub(unit_offset) { + Some(offset) => UnitOffset(offset), + None => return None, + }; + if !unit.header.is_valid_offset(offset) { + return None; + } + Some(offset) + } +} + +impl UnitOffset { + /// Convert an offset to be relative to the start of the .debug_info section, + /// instead of relative to the start of the given compilation unit. + /// + /// Does not check that the offset is valid. + pub fn to_unit_section_offset(&self, unit: &Unit) -> UnitSectionOffset + where + R: Reader, + { + match unit.header.offset() { + UnitSectionOffset::DebugInfoOffset(unit_offset) => { + DebugInfoOffset(unit_offset.0 + self.0).into() + } + UnitSectionOffset::DebugTypesOffset(unit_offset) => { + DebugTypesOffset(unit_offset.0 + self.0).into() + } + } + } +} + +/// An iterator for the address ranges of a `DebuggingInformationEntry`. +/// +/// Returned by `Dwarf::die_ranges` and `Dwarf::unit_ranges`. +#[derive(Debug)] +pub struct RangeIter(RangeIterInner); + +#[derive(Debug)] +enum RangeIterInner { + Single(Option), + List(RngListIter), +} + +impl Default for RangeIter { + fn default() -> Self { + RangeIter(RangeIterInner::Single(None)) + } +} + +impl RangeIter { + /// Advance the iterator to the next range. + pub fn next(&mut self) -> Result> { + match self.0 { + RangeIterInner::Single(ref mut range) => Ok(range.take()), + RangeIterInner::List(ref mut list) => list.next(), + } + } +} + +#[cfg(feature = "fallible-iterator")] +impl fallible_iterator::FallibleIterator for RangeIter { + type Item = Range; + type Error = Error; + + #[inline] + fn next(&mut self) -> ::core::result::Result, Self::Error> { + RangeIter::next(self) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::read::EndianSlice; + use crate::{Endianity, LittleEndian}; + + /// Ensure that `Dwarf` is covariant wrt R. + #[test] + fn test_dwarf_variance() { + /// This only needs to compile. + fn _f<'a: 'b, 'b, E: Endianity>(x: Dwarf>) -> Dwarf> { + x + } + } + + /// Ensure that `Unit` is covariant wrt R. + #[test] + fn test_dwarf_unit_variance() { + /// This only needs to compile. + fn _f<'a: 'b, 'b, E: Endianity>(x: Unit>) -> Unit> { + x + } + } + + #[test] + fn test_send() { + fn assert_is_send() {} + assert_is_send::>>(); + assert_is_send::>>(); + } + + #[test] + fn test_format_error() { + let mut owned_dwarf = Dwarf::load(|_| -> Result<_> { Ok(vec![1, 2]) }).unwrap(); + owned_dwarf + .load_sup(|_| -> Result<_> { Ok(vec![1, 2]) }) + .unwrap(); + let dwarf = owned_dwarf.borrow(|section| EndianSlice::new(§ion, LittleEndian)); + + match dwarf.debug_str.get_str(DebugStrOffset(1)) { + Ok(r) => panic!("Unexpected str {:?}", r), + Err(e) => { + assert_eq!( + dwarf.format_error(e), + "Hit the end of input before it was expected at .debug_str+0x1" + ); + } + } + match dwarf.sup().unwrap().debug_str.get_str(DebugStrOffset(1)) { + Ok(r) => panic!("Unexpected str {:?}", r), + Err(e) => { + assert_eq!( + dwarf.format_error(e), + "Hit the end of input before it was expected at .debug_str(sup)+0x1" + ); + } + } + assert_eq!(dwarf.format_error(Error::Io), Error::Io.description()); + } +} diff --git a/src/rust/vendor/gimli/src/read/endian_reader.rs b/src/rust/vendor/gimli/src/read/endian_reader.rs new file mode 100644 index 000000000..8852b3804 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/endian_reader.rs @@ -0,0 +1,639 @@ +//! Defining custom `Reader`s quickly. + +use alloc::borrow::Cow; +use alloc::rc::Rc; +use alloc::string::String; +use alloc::sync::Arc; +use core::fmt::Debug; +use core::ops::{Deref, Index, Range, RangeFrom, RangeTo}; +use core::slice; +use core::str; +use stable_deref_trait::CloneStableDeref; + +use crate::endianity::Endianity; +use crate::read::{Error, Reader, ReaderOffsetId, Result}; + +/// A reference counted, non-thread-safe slice of bytes and associated +/// endianity. +/// +/// ``` +/// # #[cfg(feature = "std")] { +/// use std::rc::Rc; +/// +/// let buf = Rc::from(&[1, 2, 3, 4][..]); +/// let reader = gimli::EndianRcSlice::new(buf, gimli::NativeEndian); +/// # let _ = reader; +/// # } +/// ``` +pub type EndianRcSlice = EndianReader>; + +/// An atomically reference counted, thread-safe slice of bytes and associated +/// endianity. +/// +/// ``` +/// # #[cfg(feature = "std")] { +/// use std::sync::Arc; +/// +/// let buf = Arc::from(&[1, 2, 3, 4][..]); +/// let reader = gimli::EndianArcSlice::new(buf, gimli::NativeEndian); +/// # let _ = reader; +/// # } +/// ``` +pub type EndianArcSlice = EndianReader>; + +/// An easy way to define a custom `Reader` implementation with a reference to a +/// generic buffer of bytes and an associated endianity. +/// +/// Note that the whole original buffer is kept alive in memory even if there is +/// only one reader that references only a handful of bytes from that original +/// buffer. That is, `EndianReader` will not do any copying, moving, or +/// compacting in order to free up unused regions of the original buffer. If you +/// require this kind of behavior, it is up to you to implement `Reader` +/// directly by-hand. +/// +/// # Example +/// +/// Say you have an `mmap`ed file that you want to serve as a `gimli::Reader`. +/// You can wrap that `mmap`ed file up in a `MmapFile` type and use +/// `EndianReader>` or `EndianReader>` as readers as +/// long as `MmapFile` dereferences to the underlying `[u8]` data. +/// +/// ``` +/// use std::io; +/// use std::ops::Deref; +/// use std::path::Path; +/// use std::slice; +/// use std::sync::Arc; +/// +/// /// A type that represents an `mmap`ed file. +/// #[derive(Debug)] +/// pub struct MmapFile { +/// ptr: *const u8, +/// len: usize, +/// } +/// +/// impl MmapFile { +/// pub fn new(path: &Path) -> io::Result { +/// // Call `mmap` and check for errors and all that... +/// # unimplemented!() +/// } +/// } +/// +/// impl Drop for MmapFile { +/// fn drop(&mut self) { +/// // Call `munmap` to clean up after ourselves... +/// # unimplemented!() +/// } +/// } +/// +/// // And `MmapFile` can deref to a slice of the `mmap`ed region of memory. +/// impl Deref for MmapFile { +/// type Target = [u8]; +/// fn deref(&self) -> &[u8] { +/// unsafe { +/// slice::from_raw_parts(self.ptr, self.len) +/// } +/// } +/// } +/// +/// /// A type that represents a shared `mmap`ed file. +/// #[derive(Debug, Clone)] +/// pub struct ArcMmapFile(Arc); +/// +/// // And `ArcMmapFile` can deref to a slice of the `mmap`ed region of memory. +/// impl Deref for ArcMmapFile { +/// type Target = [u8]; +/// fn deref(&self) -> &[u8] { +/// &self.0 +/// } +/// } +/// +/// // These are both valid for any `Rc` or `Arc`. +/// unsafe impl gimli::StableDeref for ArcMmapFile {} +/// unsafe impl gimli::CloneStableDeref for ArcMmapFile {} +/// +/// /// A `gimli::Reader` that is backed by an `mmap`ed file! +/// pub type MmapFileReader = gimli::EndianReader; +/// # fn test(_: &MmapFileReader) { } +/// ``` +#[derive(Debug, Clone, Copy, Hash)] +pub struct EndianReader +where + Endian: Endianity, + T: CloneStableDeref + Debug, +{ + range: SubRange, + endian: Endian, +} + +impl PartialEq> for EndianReader +where + Endian: Endianity, + T1: CloneStableDeref + Debug, + T2: CloneStableDeref + Debug, +{ + fn eq(&self, rhs: &EndianReader) -> bool { + self.bytes() == rhs.bytes() + } +} + +impl Eq for EndianReader +where + Endian: Endianity, + T: CloneStableDeref + Debug, +{ +} + +// This is separated out from `EndianReader` so that we can avoid running afoul +// of borrowck. We need to `read_slice(&mut self, ...) -> &[u8]` and then call +// `self.endian.read_whatever` on the result. The problem is that the returned +// slice keeps the `&mut self` borrow active, so we wouldn't be able to access +// `self.endian`. Splitting the sub-range out from the endian lets us work +// around this, making it so that only the `self.range` borrow is held active, +// not all of `self`. +// +// This also serves to encapsulate the unsafe code concerning `CloneStableDeref`. +// The `bytes` member is held so that the bytes live long enough, and the +// `CloneStableDeref` ensures these bytes never move. The `ptr` and `len` +// members point inside `bytes`, and are updated during read operations. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +struct SubRange +where + T: CloneStableDeref + Debug, +{ + bytes: T, + ptr: *const u8, + len: usize, +} + +unsafe impl Send for SubRange where T: CloneStableDeref + Debug + Send {} + +unsafe impl Sync for SubRange where T: CloneStableDeref + Debug + Sync {} + +impl SubRange +where + T: CloneStableDeref + Debug, +{ + #[inline] + fn new(bytes: T) -> Self { + let ptr = bytes.as_ptr(); + let len = bytes.len(); + SubRange { bytes, ptr, len } + } + + #[inline] + fn bytes(&self) -> &[u8] { + // Safe because `T` implements `CloneStableDeref`, `bytes` can't be modified, + // and all operations that modify `ptr` and `len` ensure they stay in range. + unsafe { slice::from_raw_parts(self.ptr, self.len) } + } + + #[inline] + fn len(&self) -> usize { + self.len + } + + #[inline] + fn truncate(&mut self, len: usize) { + assert!(len <= self.len); + self.len = len; + } + + #[inline] + fn skip(&mut self, len: usize) { + assert!(len <= self.len); + self.ptr = unsafe { self.ptr.add(len) }; + self.len -= len; + } + + #[inline] + fn read_slice(&mut self, len: usize) -> Option<&[u8]> { + if self.len() < len { + None + } else { + // Same as for `bytes()`. + let bytes = unsafe { slice::from_raw_parts(self.ptr, len) }; + self.skip(len); + Some(bytes) + } + } +} + +impl EndianReader +where + Endian: Endianity, + T: CloneStableDeref + Debug, +{ + /// Construct a new `EndianReader` with the given bytes. + #[inline] + pub fn new(bytes: T, endian: Endian) -> EndianReader { + EndianReader { + range: SubRange::new(bytes), + endian, + } + } + + /// Return a reference to the raw bytes underlying this reader. + #[inline] + pub fn bytes(&self) -> &[u8] { + self.range.bytes() + } +} + +/// # Range Methods +/// +/// Unfortunately, `std::ops::Index` *must* return a reference, so we can't +/// implement `Index>` to return a new `EndianReader` the way we +/// would like to. Instead, we abandon fancy indexing operators and have these +/// plain old methods. +impl EndianReader +where + Endian: Endianity, + T: CloneStableDeref + Debug, +{ + /// Take the given `start..end` range of the underlying buffer and return a + /// new `EndianReader`. + /// + /// ``` + /// # #[cfg(feature = "std")] { + /// use gimli::{EndianReader, LittleEndian}; + /// use std::sync::Arc; + /// + /// let buf = Arc::<[u8]>::from(&[0x01, 0x02, 0x03, 0x04][..]); + /// let reader = EndianReader::new(buf.clone(), LittleEndian); + /// assert_eq!(reader.range(1..3), + /// EndianReader::new(&buf[1..3], LittleEndian)); + /// # } + /// ``` + /// + /// # Panics + /// + /// Panics if the range is out of bounds. + pub fn range(&self, idx: Range) -> EndianReader { + let mut r = self.clone(); + r.range.skip(idx.start); + r.range.truncate(idx.len()); + r + } + + /// Take the given `start..` range of the underlying buffer and return a new + /// `EndianReader`. + /// + /// ``` + /// # #[cfg(feature = "std")] { + /// use gimli::{EndianReader, LittleEndian}; + /// use std::sync::Arc; + /// + /// let buf = Arc::<[u8]>::from(&[0x01, 0x02, 0x03, 0x04][..]); + /// let reader = EndianReader::new(buf.clone(), LittleEndian); + /// assert_eq!(reader.range_from(2..), + /// EndianReader::new(&buf[2..], LittleEndian)); + /// # } + /// ``` + /// + /// # Panics + /// + /// Panics if the range is out of bounds. + pub fn range_from(&self, idx: RangeFrom) -> EndianReader { + let mut r = self.clone(); + r.range.skip(idx.start); + r + } + + /// Take the given `..end` range of the underlying buffer and return a new + /// `EndianReader`. + /// + /// ``` + /// # #[cfg(feature = "std")] { + /// use gimli::{EndianReader, LittleEndian}; + /// use std::sync::Arc; + /// + /// let buf = Arc::<[u8]>::from(&[0x01, 0x02, 0x03, 0x04][..]); + /// let reader = EndianReader::new(buf.clone(), LittleEndian); + /// assert_eq!(reader.range_to(..3), + /// EndianReader::new(&buf[..3], LittleEndian)); + /// # } + /// ``` + /// + /// # Panics + /// + /// Panics if the range is out of bounds. + pub fn range_to(&self, idx: RangeTo) -> EndianReader { + let mut r = self.clone(); + r.range.truncate(idx.end); + r + } +} + +impl Index for EndianReader +where + Endian: Endianity, + T: CloneStableDeref + Debug, +{ + type Output = u8; + fn index(&self, idx: usize) -> &Self::Output { + &self.bytes()[idx] + } +} + +impl Index> for EndianReader +where + Endian: Endianity, + T: CloneStableDeref + Debug, +{ + type Output = [u8]; + fn index(&self, idx: RangeFrom) -> &Self::Output { + &self.bytes()[idx] + } +} + +impl Deref for EndianReader +where + Endian: Endianity, + T: CloneStableDeref + Debug, +{ + type Target = [u8]; + fn deref(&self) -> &Self::Target { + self.bytes() + } +} + +impl Reader for EndianReader +where + Endian: Endianity, + T: CloneStableDeref + Debug, +{ + type Endian = Endian; + type Offset = usize; + + #[inline] + fn endian(&self) -> Endian { + self.endian + } + + #[inline] + fn len(&self) -> usize { + self.range.len() + } + + #[inline] + fn empty(&mut self) { + self.range.truncate(0); + } + + #[inline] + fn truncate(&mut self, len: usize) -> Result<()> { + if self.len() < len { + Err(Error::UnexpectedEof(self.offset_id())) + } else { + self.range.truncate(len); + Ok(()) + } + } + + #[inline] + fn offset_from(&self, base: &EndianReader) -> usize { + let base_ptr = base.bytes().as_ptr() as *const u8 as usize; + let ptr = self.bytes().as_ptr() as *const u8 as usize; + debug_assert!(base_ptr <= ptr); + debug_assert!(ptr + self.bytes().len() <= base_ptr + base.bytes().len()); + ptr - base_ptr + } + + #[inline] + fn offset_id(&self) -> ReaderOffsetId { + ReaderOffsetId(self.bytes().as_ptr() as u64) + } + + #[inline] + fn lookup_offset_id(&self, id: ReaderOffsetId) -> Option { + let id = id.0; + let self_id = self.bytes().as_ptr() as u64; + let self_len = self.bytes().len() as u64; + if id >= self_id && id <= self_id + self_len { + Some((id - self_id) as usize) + } else { + None + } + } + + #[inline] + fn find(&self, byte: u8) -> Result { + self.bytes() + .iter() + .position(|x| *x == byte) + .ok_or_else(|| Error::UnexpectedEof(self.offset_id())) + } + + #[inline] + fn skip(&mut self, len: usize) -> Result<()> { + if self.len() < len { + Err(Error::UnexpectedEof(self.offset_id())) + } else { + self.range.skip(len); + Ok(()) + } + } + + #[inline] + fn split(&mut self, len: usize) -> Result { + if self.len() < len { + Err(Error::UnexpectedEof(self.offset_id())) + } else { + let mut r = self.clone(); + r.range.truncate(len); + self.range.skip(len); + Ok(r) + } + } + + #[inline] + fn to_slice(&self) -> Result> { + Ok(self.bytes().into()) + } + + #[inline] + fn to_string(&self) -> Result> { + match str::from_utf8(self.bytes()) { + Ok(s) => Ok(s.into()), + _ => Err(Error::BadUtf8), + } + } + + #[inline] + fn to_string_lossy(&self) -> Result> { + Ok(String::from_utf8_lossy(self.bytes())) + } + + #[inline] + fn read_slice(&mut self, buf: &mut [u8]) -> Result<()> { + match self.range.read_slice(buf.len()) { + Some(slice) => { + buf.copy_from_slice(slice); + Ok(()) + } + None => Err(Error::UnexpectedEof(self.offset_id())), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::endianity::NativeEndian; + use crate::read::Reader; + + fn native_reader + Debug>( + bytes: T, + ) -> EndianReader { + EndianReader::new(bytes, NativeEndian) + } + + const BUF: &[u8] = &[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]; + + #[test] + fn test_reader_split() { + let mut reader = native_reader(BUF); + let left = reader.split(3).unwrap(); + assert_eq!(left, native_reader(&BUF[..3])); + assert_eq!(reader, native_reader(&BUF[3..])); + } + + #[test] + fn test_reader_split_out_of_bounds() { + let mut reader = native_reader(BUF); + assert!(reader.split(30).is_err()); + } + + #[test] + fn bytes_and_len_and_range_and_eq() { + let reader = native_reader(BUF); + assert_eq!(reader.len(), BUF.len()); + assert_eq!(reader.bytes(), BUF); + assert_eq!(reader, native_reader(BUF)); + + let range = reader.range(2..8); + let buf_range = &BUF[2..8]; + assert_eq!(range.len(), buf_range.len()); + assert_eq!(range.bytes(), buf_range); + assert_ne!(range, native_reader(BUF)); + assert_eq!(range, native_reader(buf_range)); + + let range_from = range.range_from(1..); + let buf_range_from = &buf_range[1..]; + assert_eq!(range_from.len(), buf_range_from.len()); + assert_eq!(range_from.bytes(), buf_range_from); + assert_ne!(range_from, native_reader(BUF)); + assert_eq!(range_from, native_reader(buf_range_from)); + + let range_to = range_from.range_to(..4); + let buf_range_to = &buf_range_from[..4]; + assert_eq!(range_to.len(), buf_range_to.len()); + assert_eq!(range_to.bytes(), buf_range_to); + assert_ne!(range_to, native_reader(BUF)); + assert_eq!(range_to, native_reader(buf_range_to)); + } + + #[test] + fn find() { + let mut reader = native_reader(BUF); + reader.skip(2).unwrap(); + assert_eq!( + reader.find(5), + Ok(BUF[2..].iter().position(|x| *x == 5).unwrap()) + ); + } + + #[test] + fn indexing() { + let mut reader = native_reader(BUF); + reader.skip(2).unwrap(); + assert_eq!(reader[0], BUF[2]); + } + + #[test] + #[should_panic] + fn indexing_out_of_bounds() { + let mut reader = native_reader(BUF); + reader.skip(2).unwrap(); + let _ = reader[900]; + } + + #[test] + fn endian() { + let reader = native_reader(BUF); + assert_eq!(reader.endian(), NativeEndian); + } + + #[test] + fn empty() { + let mut reader = native_reader(BUF); + assert!(!reader.is_empty()); + reader.empty(); + assert!(reader.is_empty()); + assert!(reader.bytes().is_empty()); + } + + #[test] + fn truncate() { + let reader = native_reader(BUF); + let mut reader = reader.range(2..8); + reader.truncate(2).unwrap(); + assert_eq!(reader.bytes(), &BUF[2..4]); + } + + #[test] + fn offset_from() { + let reader = native_reader(BUF); + let sub = reader.range(2..8); + assert_eq!(sub.offset_from(&reader), 2); + } + + #[test] + fn skip() { + let mut reader = native_reader(BUF); + reader.skip(2).unwrap(); + assert_eq!(reader.bytes(), &BUF[2..]); + } + + #[test] + fn to_slice() { + assert_eq!( + native_reader(BUF).range(2..5).to_slice(), + Ok(Cow::from(&BUF[2..5])) + ); + } + + #[test] + fn to_string_ok() { + let buf = b"hello, world!"; + let reader = native_reader(&buf[..]); + let reader = reader.range_from(7..); + assert_eq!(reader.to_string(), Ok(Cow::from("world!"))); + } + + // The rocket emoji (🚀 = [0xf0, 0x9f, 0x9a, 0x80]) but rotated left by one + // to make it invalid UTF-8. + const BAD_UTF8: &[u8] = &[0x9f, 0x9a, 0x80, 0xf0]; + + #[test] + fn to_string_err() { + let reader = native_reader(BAD_UTF8); + assert!(reader.to_string().is_err()); + } + + #[test] + fn to_string_lossy() { + let reader = native_reader(BAD_UTF8); + assert_eq!(reader.to_string_lossy(), Ok(Cow::from("����"))); + } + + #[test] + fn read_u8_array() { + let mut reader = native_reader(BAD_UTF8); + reader.skip(1).unwrap(); + let arr: [u8; 2] = reader.read_u8_array().unwrap(); + assert_eq!(arr, &BAD_UTF8[1..3]); + assert_eq!(reader.bytes(), &BAD_UTF8[3..]); + } +} diff --git a/src/rust/vendor/gimli/src/read/endian_slice.rs b/src/rust/vendor/gimli/src/read/endian_slice.rs new file mode 100644 index 000000000..0db28dac6 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/endian_slice.rs @@ -0,0 +1,360 @@ +//! Working with byte slices that have an associated endianity. + +#[cfg(feature = "read")] +use alloc::borrow::Cow; +#[cfg(feature = "read")] +use alloc::string::String; +use core::fmt; +use core::ops::{Deref, Range, RangeFrom, RangeTo}; +use core::str; + +use crate::endianity::Endianity; +use crate::read::{Error, Reader, ReaderOffsetId, Result}; + +/// A `&[u8]` slice with endianity metadata. +/// +/// This implements the `Reader` trait, which is used for all reading of DWARF sections. +#[derive(Default, Clone, Copy, PartialEq, Eq, Hash)] +pub struct EndianSlice<'input, Endian> +where + Endian: Endianity, +{ + slice: &'input [u8], + endian: Endian, +} + +impl<'input, Endian> EndianSlice<'input, Endian> +where + Endian: Endianity, +{ + /// Construct a new `EndianSlice` with the given slice and endianity. + #[inline] + pub fn new(slice: &'input [u8], endian: Endian) -> EndianSlice<'input, Endian> { + EndianSlice { slice, endian } + } + + /// Return a reference to the raw slice. + #[inline] + #[doc(hidden)] + #[deprecated(note = "Method renamed to EndianSlice::slice; use that instead.")] + pub fn buf(&self) -> &'input [u8] { + self.slice + } + + /// Return a reference to the raw slice. + #[inline] + pub fn slice(&self) -> &'input [u8] { + self.slice + } + + /// Split the slice in two at the given index, resulting in the tuple where + /// the first item has range [0, idx), and the second has range [idx, + /// len). Panics if the index is out of bounds. + #[inline] + pub fn split_at( + &self, + idx: usize, + ) -> (EndianSlice<'input, Endian>, EndianSlice<'input, Endian>) { + (self.range_to(..idx), self.range_from(idx..)) + } + + /// Find the first occurrence of a byte in the slice, and return its index. + #[inline] + pub fn find(&self, byte: u8) -> Option { + self.slice.iter().position(|ch| *ch == byte) + } + + /// Return the offset of the start of the slice relative to the start + /// of the given slice. + #[inline] + pub fn offset_from(&self, base: EndianSlice<'input, Endian>) -> usize { + let base_ptr = base.slice.as_ptr() as *const u8 as usize; + let ptr = self.slice.as_ptr() as *const u8 as usize; + debug_assert!(base_ptr <= ptr); + debug_assert!(ptr + self.slice.len() <= base_ptr + base.slice.len()); + ptr - base_ptr + } + + /// Converts the slice to a string using `str::from_utf8`. + /// + /// Returns an error if the slice contains invalid characters. + #[inline] + pub fn to_string(&self) -> Result<&'input str> { + str::from_utf8(self.slice).map_err(|_| Error::BadUtf8) + } + + /// Converts the slice to a string, including invalid characters, + /// using `String::from_utf8_lossy`. + #[cfg(feature = "read")] + #[inline] + pub fn to_string_lossy(&self) -> Cow<'input, str> { + String::from_utf8_lossy(self.slice) + } + + #[inline] + fn read_slice(&mut self, len: usize) -> Result<&'input [u8]> { + if self.slice.len() < len { + Err(Error::UnexpectedEof(self.offset_id())) + } else { + let val = &self.slice[..len]; + self.slice = &self.slice[len..]; + Ok(val) + } + } +} + +/// # Range Methods +/// +/// Unfortunately, `std::ops::Index` *must* return a reference, so we can't +/// implement `Index>` to return a new `EndianSlice` the way we would +/// like to. Instead, we abandon fancy indexing operators and have these plain +/// old methods. +impl<'input, Endian> EndianSlice<'input, Endian> +where + Endian: Endianity, +{ + /// Take the given `start..end` range of the underlying slice and return a + /// new `EndianSlice`. + /// + /// ``` + /// use gimli::{EndianSlice, LittleEndian}; + /// + /// let slice = &[0x01, 0x02, 0x03, 0x04]; + /// let endian_slice = EndianSlice::new(slice, LittleEndian); + /// assert_eq!(endian_slice.range(1..3), + /// EndianSlice::new(&slice[1..3], LittleEndian)); + /// ``` + pub fn range(&self, idx: Range) -> EndianSlice<'input, Endian> { + EndianSlice { + slice: &self.slice[idx], + endian: self.endian, + } + } + + /// Take the given `start..` range of the underlying slice and return a new + /// `EndianSlice`. + /// + /// ``` + /// use gimli::{EndianSlice, LittleEndian}; + /// + /// let slice = &[0x01, 0x02, 0x03, 0x04]; + /// let endian_slice = EndianSlice::new(slice, LittleEndian); + /// assert_eq!(endian_slice.range_from(2..), + /// EndianSlice::new(&slice[2..], LittleEndian)); + /// ``` + pub fn range_from(&self, idx: RangeFrom) -> EndianSlice<'input, Endian> { + EndianSlice { + slice: &self.slice[idx], + endian: self.endian, + } + } + + /// Take the given `..end` range of the underlying slice and return a new + /// `EndianSlice`. + /// + /// ``` + /// use gimli::{EndianSlice, LittleEndian}; + /// + /// let slice = &[0x01, 0x02, 0x03, 0x04]; + /// let endian_slice = EndianSlice::new(slice, LittleEndian); + /// assert_eq!(endian_slice.range_to(..3), + /// EndianSlice::new(&slice[..3], LittleEndian)); + /// ``` + pub fn range_to(&self, idx: RangeTo) -> EndianSlice<'input, Endian> { + EndianSlice { + slice: &self.slice[idx], + endian: self.endian, + } + } +} + +impl<'input, Endian> Deref for EndianSlice<'input, Endian> +where + Endian: Endianity, +{ + type Target = [u8]; + fn deref(&self) -> &Self::Target { + self.slice + } +} + +impl<'input, Endian: Endianity> fmt::Debug for EndianSlice<'input, Endian> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> core::result::Result<(), fmt::Error> { + fmt.debug_tuple("EndianSlice") + .field(&self.endian) + .field(&DebugBytes(self.slice)) + .finish() + } +} + +struct DebugBytes<'input>(&'input [u8]); + +impl<'input> core::fmt::Debug for DebugBytes<'input> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> core::result::Result<(), fmt::Error> { + let mut list = fmt.debug_list(); + list.entries(self.0.iter().take(8).copied().map(DebugByte)); + if self.0.len() > 8 { + list.entry(&DebugLen(self.0.len())); + } + list.finish() + } +} + +struct DebugByte(u8); + +impl fmt::Debug for DebugByte { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(fmt, "0x{:02x}", self.0) + } +} + +struct DebugLen(usize); + +impl fmt::Debug for DebugLen { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(fmt, "...; {}", self.0) + } +} + +impl<'input, Endian> Reader for EndianSlice<'input, Endian> +where + Endian: Endianity, +{ + type Endian = Endian; + type Offset = usize; + + #[inline] + fn endian(&self) -> Endian { + self.endian + } + + #[inline] + fn len(&self) -> usize { + self.slice.len() + } + + #[inline] + fn is_empty(&self) -> bool { + self.slice.is_empty() + } + + #[inline] + fn empty(&mut self) { + self.slice = &[]; + } + + #[inline] + fn truncate(&mut self, len: usize) -> Result<()> { + if self.slice.len() < len { + Err(Error::UnexpectedEof(self.offset_id())) + } else { + self.slice = &self.slice[..len]; + Ok(()) + } + } + + #[inline] + fn offset_from(&self, base: &Self) -> usize { + self.offset_from(*base) + } + + #[inline] + fn offset_id(&self) -> ReaderOffsetId { + ReaderOffsetId(self.slice.as_ptr() as u64) + } + + #[inline] + fn lookup_offset_id(&self, id: ReaderOffsetId) -> Option { + let id = id.0; + let self_id = self.slice.as_ptr() as u64; + let self_len = self.slice.len() as u64; + if id >= self_id && id <= self_id + self_len { + Some((id - self_id) as usize) + } else { + None + } + } + + #[inline] + fn find(&self, byte: u8) -> Result { + self.find(byte) + .ok_or_else(|| Error::UnexpectedEof(self.offset_id())) + } + + #[inline] + fn skip(&mut self, len: usize) -> Result<()> { + if self.slice.len() < len { + Err(Error::UnexpectedEof(self.offset_id())) + } else { + self.slice = &self.slice[len..]; + Ok(()) + } + } + + #[inline] + fn split(&mut self, len: usize) -> Result { + let slice = self.read_slice(len)?; + Ok(EndianSlice::new(slice, self.endian)) + } + + #[cfg(not(feature = "read"))] + fn cannot_implement() -> super::reader::seal_if_no_alloc::Sealed { + super::reader::seal_if_no_alloc::Sealed + } + + #[cfg(feature = "read")] + #[inline] + fn to_slice(&self) -> Result> { + Ok(self.slice.into()) + } + + #[cfg(feature = "read")] + #[inline] + fn to_string(&self) -> Result> { + match str::from_utf8(self.slice) { + Ok(s) => Ok(s.into()), + _ => Err(Error::BadUtf8), + } + } + + #[cfg(feature = "read")] + #[inline] + fn to_string_lossy(&self) -> Result> { + Ok(String::from_utf8_lossy(self.slice)) + } + + #[inline] + fn read_slice(&mut self, buf: &mut [u8]) -> Result<()> { + let slice = self.read_slice(buf.len())?; + buf.copy_from_slice(slice); + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::endianity::NativeEndian; + + #[test] + fn test_endian_slice_split_at() { + let endian = NativeEndian; + let slice = &[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]; + let eb = EndianSlice::new(slice, endian); + assert_eq!( + eb.split_at(3), + ( + EndianSlice::new(&slice[..3], endian), + EndianSlice::new(&slice[3..], endian) + ) + ); + } + + #[test] + #[should_panic] + fn test_endian_slice_split_at_out_of_bounds() { + let slice = &[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]; + let eb = EndianSlice::new(slice, NativeEndian); + eb.split_at(30); + } +} diff --git a/src/rust/vendor/gimli/src/read/index.rs b/src/rust/vendor/gimli/src/read/index.rs new file mode 100644 index 000000000..129eb2fb1 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/index.rs @@ -0,0 +1,535 @@ +use core::slice; + +use crate::common::SectionId; +use crate::constants; +use crate::endianity::Endianity; +use crate::read::{EndianSlice, Error, Reader, ReaderOffset, Result, Section}; + +/// The data in the `.debug_cu_index` section of a `.dwp` file. +/// +/// This section contains the compilation unit index. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugCuIndex { + section: R, +} + +impl<'input, Endian> DebugCuIndex> +where + Endian: Endianity, +{ + /// Construct a new `DebugCuIndex` instance from the data in the `.debug_cu_index` + /// section. + pub fn new(section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(section, endian)) + } +} + +impl Section for DebugCuIndex { + fn id() -> SectionId { + SectionId::DebugCuIndex + } + + fn reader(&self) -> &R { + &self.section + } +} + +impl From for DebugCuIndex { + fn from(section: R) -> Self { + DebugCuIndex { section } + } +} + +impl DebugCuIndex { + /// Parse the index header. + pub fn index(self) -> Result> { + UnitIndex::parse(self.section) + } +} + +/// The data in the `.debug_tu_index` section of a `.dwp` file. +/// +/// This section contains the type unit index. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugTuIndex { + section: R, +} + +impl<'input, Endian> DebugTuIndex> +where + Endian: Endianity, +{ + /// Construct a new `DebugTuIndex` instance from the data in the `.debug_tu_index` + /// section. + pub fn new(section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(section, endian)) + } +} + +impl Section for DebugTuIndex { + fn id() -> SectionId { + SectionId::DebugTuIndex + } + + fn reader(&self) -> &R { + &self.section + } +} + +impl From for DebugTuIndex { + fn from(section: R) -> Self { + DebugTuIndex { section } + } +} + +impl DebugTuIndex { + /// Parse the index header. + pub fn index(self) -> Result> { + UnitIndex::parse(self.section) + } +} + +const SECTION_COUNT_MAX: u8 = 8; + +/// The partially parsed index from a `DebugCuIndex` or `DebugTuIndex`. +#[derive(Debug, Clone)] +pub struct UnitIndex { + version: u16, + section_count: u32, + unit_count: u32, + slot_count: u32, + hash_ids: R, + hash_rows: R, + // Only `section_count` values are valid. + sections: [SectionId; SECTION_COUNT_MAX as usize], + offsets: R, + sizes: R, +} + +impl UnitIndex { + fn parse(mut input: R) -> Result> { + if input.is_empty() { + return Ok(UnitIndex { + version: 5, + section_count: 0, + unit_count: 0, + slot_count: 0, + hash_ids: input.clone(), + hash_rows: input.clone(), + sections: [SectionId::DebugAbbrev; SECTION_COUNT_MAX as usize], + offsets: input.clone(), + sizes: input.clone(), + }); + } + + // GNU split-dwarf extension to DWARF 4 uses a 32-bit version, + // but DWARF 5 uses a 16-bit version followed by 16-bit padding. + let mut original_input = input.clone(); + let version; + if input.read_u32()? == 2 { + version = 2 + } else { + version = original_input.read_u16()?; + if version != 5 { + return Err(Error::UnknownVersion(version.into())); + } + } + + let section_count = input.read_u32()?; + let unit_count = input.read_u32()?; + let slot_count = input.read_u32()?; + if slot_count == 0 || slot_count & (slot_count - 1) != 0 || slot_count <= unit_count { + return Err(Error::InvalidIndexSlotCount); + } + + let hash_ids = input.split(R::Offset::from_u64(u64::from(slot_count) * 8)?)?; + let hash_rows = input.split(R::Offset::from_u64(u64::from(slot_count) * 4)?)?; + + let mut sections = [SectionId::DebugAbbrev; SECTION_COUNT_MAX as usize]; + if section_count > SECTION_COUNT_MAX.into() { + return Err(Error::InvalidIndexSectionCount); + } + for i in 0..section_count { + let section = input.read_u32()?; + sections[i as usize] = if version == 2 { + match constants::DwSectV2(section) { + constants::DW_SECT_V2_INFO => SectionId::DebugInfo, + constants::DW_SECT_V2_TYPES => SectionId::DebugTypes, + constants::DW_SECT_V2_ABBREV => SectionId::DebugAbbrev, + constants::DW_SECT_V2_LINE => SectionId::DebugLine, + constants::DW_SECT_V2_LOC => SectionId::DebugLoc, + constants::DW_SECT_V2_STR_OFFSETS => SectionId::DebugStrOffsets, + constants::DW_SECT_V2_MACINFO => SectionId::DebugMacinfo, + constants::DW_SECT_V2_MACRO => SectionId::DebugMacro, + _ => return Err(Error::UnknownIndexSection), + } + } else { + match constants::DwSect(section) { + constants::DW_SECT_INFO => SectionId::DebugInfo, + constants::DW_SECT_ABBREV => SectionId::DebugAbbrev, + constants::DW_SECT_LINE => SectionId::DebugLine, + constants::DW_SECT_LOCLISTS => SectionId::DebugLocLists, + constants::DW_SECT_STR_OFFSETS => SectionId::DebugStrOffsets, + constants::DW_SECT_MACRO => SectionId::DebugMacro, + constants::DW_SECT_RNGLISTS => SectionId::DebugRngLists, + _ => return Err(Error::UnknownIndexSection), + } + }; + } + + let offsets = input.split(R::Offset::from_u64( + u64::from(unit_count) * u64::from(section_count) * 4, + )?)?; + let sizes = input.split(R::Offset::from_u64( + u64::from(unit_count) * u64::from(section_count) * 4, + )?)?; + + Ok(UnitIndex { + version, + section_count, + unit_count, + slot_count, + hash_ids, + hash_rows, + sections, + offsets, + sizes, + }) + } + + /// Find `id` in the index hash table, and return the row index. + /// + /// `id` may be a compilation unit ID if this index is from `.debug_cu_index`, + /// or a type signature if this index is from `.debug_tu_index`. + pub fn find(&self, id: u64) -> Option { + if self.slot_count == 0 { + return None; + } + let mask = u64::from(self.slot_count - 1); + let mut hash1 = id & mask; + let hash2 = ((id >> 32) & mask) | 1; + for _ in 0..self.slot_count { + // The length of these arrays was validated in `UnitIndex::parse`. + let mut hash_ids = self.hash_ids.clone(); + hash_ids.skip(R::Offset::from_u64(hash1 * 8).ok()?).ok()?; + let hash_id = hash_ids.read_u64().ok()?; + if hash_id == id { + let mut hash_rows = self.hash_rows.clone(); + hash_rows.skip(R::Offset::from_u64(hash1 * 4).ok()?).ok()?; + let hash_row = hash_rows.read_u32().ok()?; + return Some(hash_row); + } + if hash_id == 0 { + return None; + } + hash1 = (hash1 + hash2) & mask; + } + None + } + + /// Return the section offsets and sizes for the given row index. + pub fn sections(&self, mut row: u32) -> Result> { + if row == 0 { + return Err(Error::InvalidIndexRow); + } + row -= 1; + if row >= self.unit_count { + return Err(Error::InvalidIndexRow); + } + let mut offsets = self.offsets.clone(); + offsets.skip(R::Offset::from_u64( + u64::from(row) * u64::from(self.section_count) * 4, + )?)?; + let mut sizes = self.sizes.clone(); + sizes.skip(R::Offset::from_u64( + u64::from(row) * u64::from(self.section_count) * 4, + )?)?; + Ok(UnitIndexSectionIterator { + sections: self.sections[..self.section_count as usize].iter(), + offsets, + sizes, + }) + } + + /// Return the version. + pub fn version(&self) -> u16 { + self.version + } + + /// Return the number of sections. + pub fn section_count(&self) -> u32 { + self.section_count + } + + /// Return the number of units. + pub fn unit_count(&self) -> u32 { + self.unit_count + } + + /// Return the number of slots. + pub fn slot_count(&self) -> u32 { + self.slot_count + } +} + +/// An iterator over the section offsets and sizes for a row in a `UnitIndex`. +#[derive(Debug, Clone)] +pub struct UnitIndexSectionIterator<'index, R: Reader> { + sections: slice::Iter<'index, SectionId>, + offsets: R, + sizes: R, +} + +impl<'index, R: Reader> Iterator for UnitIndexSectionIterator<'index, R> { + type Item = UnitIndexSection; + + fn next(&mut self) -> Option { + let section = *self.sections.next()?; + // The length of these arrays was validated in `UnitIndex::parse`. + let offset = self.offsets.read_u32().ok()?; + let size = self.sizes.read_u32().ok()?; + Some(UnitIndexSection { + section, + offset, + size, + }) + } +} + +/// Information about a unit's contribution to a section in a `.dwp` file. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct UnitIndexSection { + /// The section kind. + pub section: SectionId, + /// The base offset of the unit's contribution to the section. + pub offset: u32, + /// The size of the unit's contribution to the section. + pub size: u32, +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::endianity::BigEndian; + use test_assembler::{Endian, Section}; + + #[test] + fn test_empty() { + let buf = EndianSlice::new(&[], BigEndian); + let index = UnitIndex::parse(buf).unwrap(); + assert!(index.find(0).is_none()); + } + + #[test] + fn test_version_2() { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Big) + // Header. + .D32(2).D32(0).D32(0).D32(1) + // Slots. + .D64(0).D32(0); + let buf = section.get_contents().unwrap(); + let buf = EndianSlice::new(&buf, BigEndian); + let index = UnitIndex::parse(buf).unwrap(); + assert_eq!(index.version, 2); + } + + #[test] + fn test_version_5() { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Big) + // Header. + .D16(5).D16(0).D32(0).D32(0).D32(1) + // Slots. + .D64(0).D32(0); + let buf = section.get_contents().unwrap(); + let buf = EndianSlice::new(&buf, BigEndian); + let index = UnitIndex::parse(buf).unwrap(); + assert_eq!(index.version, 5); + } + + #[test] + fn test_version_5_invalid() { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Big) + // Header. + .D32(5).D32(0).D32(0).D32(1) + // Slots. + .D64(0).D32(0); + let buf = section.get_contents().unwrap(); + let buf = EndianSlice::new(&buf, BigEndian); + assert!(UnitIndex::parse(buf).is_err()); + } + + #[test] + fn test_version_2_sections() { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Big) + // Header. + .D32(2).D32(8).D32(1).D32(2) + // Slots. + .D64(0).D64(0).D32(0).D32(0) + // Sections. + .D32(constants::DW_SECT_V2_INFO.0) + .D32(constants::DW_SECT_V2_TYPES.0) + .D32(constants::DW_SECT_V2_ABBREV.0) + .D32(constants::DW_SECT_V2_LINE.0) + .D32(constants::DW_SECT_V2_LOC.0) + .D32(constants::DW_SECT_V2_STR_OFFSETS.0) + .D32(constants::DW_SECT_V2_MACINFO.0) + .D32(constants::DW_SECT_V2_MACRO.0) + // Offsets. + .D32(11).D32(12).D32(13).D32(14).D32(15).D32(16).D32(17).D32(18) + // Sizes. + .D32(21).D32(22).D32(23).D32(24).D32(25).D32(26).D32(27).D32(28); + let buf = section.get_contents().unwrap(); + let buf = EndianSlice::new(&buf, BigEndian); + let index = UnitIndex::parse(buf).unwrap(); + assert_eq!(index.section_count, 8); + assert_eq!( + index.sections, + [ + SectionId::DebugInfo, + SectionId::DebugTypes, + SectionId::DebugAbbrev, + SectionId::DebugLine, + SectionId::DebugLoc, + SectionId::DebugStrOffsets, + SectionId::DebugMacinfo, + SectionId::DebugMacro, + ] + ); + #[rustfmt::skip] + let expect = [ + UnitIndexSection { section: SectionId::DebugInfo, offset: 11, size: 21 }, + UnitIndexSection { section: SectionId::DebugTypes, offset: 12, size: 22 }, + UnitIndexSection { section: SectionId::DebugAbbrev, offset: 13, size: 23 }, + UnitIndexSection { section: SectionId::DebugLine, offset: 14, size: 24 }, + UnitIndexSection { section: SectionId::DebugLoc, offset: 15, size: 25 }, + UnitIndexSection { section: SectionId::DebugStrOffsets, offset: 16, size: 26 }, + UnitIndexSection { section: SectionId::DebugMacinfo, offset: 17, size: 27 }, + UnitIndexSection { section: SectionId::DebugMacro, offset: 18, size: 28 }, + ]; + let mut sections = index.sections(1).unwrap(); + for section in &expect { + assert_eq!(*section, sections.next().unwrap()); + } + assert!(sections.next().is_none()); + } + + #[test] + fn test_version_5_sections() { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Big) + // Header. + .D16(5).D16(0).D32(7).D32(1).D32(2) + // Slots. + .D64(0).D64(0).D32(0).D32(0) + // Sections. + .D32(constants::DW_SECT_INFO.0) + .D32(constants::DW_SECT_ABBREV.0) + .D32(constants::DW_SECT_LINE.0) + .D32(constants::DW_SECT_LOCLISTS.0) + .D32(constants::DW_SECT_STR_OFFSETS.0) + .D32(constants::DW_SECT_MACRO.0) + .D32(constants::DW_SECT_RNGLISTS.0) + // Offsets. + .D32(11).D32(12).D32(13).D32(14).D32(15).D32(16).D32(17) + // Sizes. + .D32(21).D32(22).D32(23).D32(24).D32(25).D32(26).D32(27); + let buf = section.get_contents().unwrap(); + let buf = EndianSlice::new(&buf, BigEndian); + let index = UnitIndex::parse(buf).unwrap(); + assert_eq!(index.section_count, 7); + assert_eq!( + index.sections[..7], + [ + SectionId::DebugInfo, + SectionId::DebugAbbrev, + SectionId::DebugLine, + SectionId::DebugLocLists, + SectionId::DebugStrOffsets, + SectionId::DebugMacro, + SectionId::DebugRngLists, + ] + ); + #[rustfmt::skip] + let expect = [ + UnitIndexSection { section: SectionId::DebugInfo, offset: 11, size: 21 }, + UnitIndexSection { section: SectionId::DebugAbbrev, offset: 12, size: 22 }, + UnitIndexSection { section: SectionId::DebugLine, offset: 13, size: 23 }, + UnitIndexSection { section: SectionId::DebugLocLists, offset: 14, size: 24 }, + UnitIndexSection { section: SectionId::DebugStrOffsets, offset: 15, size: 25 }, + UnitIndexSection { section: SectionId::DebugMacro, offset: 16, size: 26 }, + UnitIndexSection { section: SectionId::DebugRngLists, offset: 17, size: 27 }, + ]; + let mut sections = index.sections(1).unwrap(); + for section in &expect { + assert_eq!(*section, sections.next().unwrap()); + } + assert!(sections.next().is_none()); + + assert!(index.sections(0).is_err()); + assert!(index.sections(2).is_err()); + } + + #[test] + fn test_hash() { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Big) + // Header. + .D16(5).D16(0).D32(2).D32(3).D32(4) + // Slots. + .D64(0xffff_fff2_ffff_fff1) + .D64(0xffff_fff0_ffff_fff1) + .D64(0xffff_fff1_ffff_fff1) + .D64(0) + .D32(3).D32(1).D32(2).D32(0) + // Sections. + .D32(constants::DW_SECT_INFO.0) + .D32(constants::DW_SECT_ABBREV.0) + // Offsets. + .D32(0).D32(0).D32(0).D32(0).D32(0).D32(0) + // Sizes. + .D32(0).D32(0).D32(0).D32(0).D32(0).D32(0); + let buf = section.get_contents().unwrap(); + let buf = EndianSlice::new(&buf, BigEndian); + let index = UnitIndex::parse(buf).unwrap(); + assert_eq!(index.version(), 5); + assert_eq!(index.slot_count(), 4); + assert_eq!(index.unit_count(), 3); + assert_eq!(index.section_count(), 2); + assert_eq!(index.find(0xffff_fff0_ffff_fff1), Some(1)); + assert_eq!(index.find(0xffff_fff1_ffff_fff1), Some(2)); + assert_eq!(index.find(0xffff_fff2_ffff_fff1), Some(3)); + assert_eq!(index.find(0xffff_fff3_ffff_fff1), None); + } + + #[test] + fn test_cu_index() { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Big) + // Header. + .D16(5).D16(0).D32(0).D32(0).D32(1) + // Slots. + .D64(0).D32(0); + let buf = section.get_contents().unwrap(); + let cu_index = DebugCuIndex::new(&buf, BigEndian); + let index = cu_index.index().unwrap(); + assert_eq!(index.version, 5); + } + + #[test] + fn test_tu_index() { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Big) + // Header. + .D16(5).D16(0).D32(0).D32(0).D32(1) + // Slots. + .D64(0).D32(0); + let buf = section.get_contents().unwrap(); + let tu_index = DebugTuIndex::new(&buf, BigEndian); + let index = tu_index.index().unwrap(); + assert_eq!(index.version, 5); + } +} diff --git a/src/rust/vendor/gimli/src/read/line.rs b/src/rust/vendor/gimli/src/read/line.rs new file mode 100644 index 000000000..47eae92e6 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/line.rs @@ -0,0 +1,3130 @@ +use alloc::vec::Vec; +use core::fmt; +use core::num::{NonZeroU64, Wrapping}; +use core::result; + +use crate::common::{ + DebugLineOffset, DebugLineStrOffset, DebugStrOffset, DebugStrOffsetsIndex, Encoding, Format, + LineEncoding, SectionId, +}; +use crate::constants; +use crate::endianity::Endianity; +use crate::read::{AttributeValue, EndianSlice, Error, Reader, ReaderOffset, Result, Section}; + +/// The `DebugLine` struct contains the source location to instruction mapping +/// found in the `.debug_line` section. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugLine { + debug_line_section: R, +} + +impl<'input, Endian> DebugLine> +where + Endian: Endianity, +{ + /// Construct a new `DebugLine` instance from the data in the `.debug_line` + /// section. + /// + /// It is the caller's responsibility to read the `.debug_line` section and + /// present it as a `&[u8]` slice. That means using some ELF loader on + /// Linux, a Mach-O loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugLine, LittleEndian}; + /// + /// # let buf = [0x00, 0x01, 0x02, 0x03]; + /// # let read_debug_line_section_somehow = || &buf; + /// let debug_line = DebugLine::new(read_debug_line_section_somehow(), LittleEndian); + /// ``` + pub fn new(debug_line_section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(debug_line_section, endian)) + } +} + +impl DebugLine { + /// Parse the line number program whose header is at the given `offset` in the + /// `.debug_line` section. + /// + /// The `address_size` must match the compilation unit that the lines apply to. + /// The `comp_dir` should be from the `DW_AT_comp_dir` attribute of the compilation + /// unit. The `comp_name` should be from the `DW_AT_name` attribute of the + /// compilation unit. + /// + /// ```rust,no_run + /// use gimli::{DebugLine, DebugLineOffset, IncompleteLineProgram, EndianSlice, LittleEndian}; + /// + /// # let buf = []; + /// # let read_debug_line_section_somehow = || &buf; + /// let debug_line = DebugLine::new(read_debug_line_section_somehow(), LittleEndian); + /// + /// // In a real example, we'd grab the offset via a compilation unit + /// // entry's `DW_AT_stmt_list` attribute, and the address size from that + /// // unit directly. + /// let offset = DebugLineOffset(0); + /// let address_size = 8; + /// + /// let program = debug_line.program(offset, address_size, None, None) + /// .expect("should have found a header at that offset, and parsed it OK"); + /// ``` + pub fn program( + &self, + offset: DebugLineOffset, + address_size: u8, + comp_dir: Option, + comp_name: Option, + ) -> Result> { + let input = &mut self.debug_line_section.clone(); + input.skip(offset.0)?; + let header = LineProgramHeader::parse(input, offset, address_size, comp_dir, comp_name)?; + let program = IncompleteLineProgram { header }; + Ok(program) + } +} + +impl DebugLine { + /// Create a `DebugLine` section that references the data in `self`. + /// + /// This is useful when `R` implements `Reader` but `T` does not. + /// + /// ## Example Usage + /// + /// ```rust,no_run + /// # let load_section = || unimplemented!(); + /// // Read the DWARF section into a `Vec` with whatever object loader you're using. + /// let owned_section: gimli::DebugLine> = load_section(); + /// // Create a reference to the DWARF section. + /// let section = owned_section.borrow(|section| { + /// gimli::EndianSlice::new(§ion, gimli::LittleEndian) + /// }); + /// ``` + pub fn borrow<'a, F, R>(&'a self, mut borrow: F) -> DebugLine + where + F: FnMut(&'a T) -> R, + { + borrow(&self.debug_line_section).into() + } +} + +impl Section for DebugLine { + fn id() -> SectionId { + SectionId::DebugLine + } + + fn reader(&self) -> &R { + &self.debug_line_section + } +} + +impl From for DebugLine { + fn from(debug_line_section: R) -> Self { + DebugLine { debug_line_section } + } +} + +/// Deprecated. `LineNumberProgram` has been renamed to `LineProgram`. +#[deprecated(note = "LineNumberProgram has been renamed to LineProgram, use that instead.")] +pub type LineNumberProgram = dyn LineProgram; + +/// A `LineProgram` provides access to a `LineProgramHeader` and +/// a way to add files to the files table if necessary. Gimli consumers should +/// never need to use or see this trait. +pub trait LineProgram::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + /// Get a reference to the held `LineProgramHeader`. + fn header(&self) -> &LineProgramHeader; + /// Add a file to the file table if necessary. + fn add_file(&mut self, file: FileEntry); +} + +impl LineProgram for IncompleteLineProgram +where + R: Reader, + Offset: ReaderOffset, +{ + fn header(&self) -> &LineProgramHeader { + &self.header + } + fn add_file(&mut self, file: FileEntry) { + self.header.file_names.push(file); + } +} + +impl<'program, R, Offset> LineProgram for &'program CompleteLineProgram +where + R: Reader, + Offset: ReaderOffset, +{ + fn header(&self) -> &LineProgramHeader { + &self.header + } + fn add_file(&mut self, _: FileEntry) { + // Nop. Our file table is already complete. + } +} + +/// Deprecated. `StateMachine` has been renamed to `LineRows`. +#[deprecated(note = "StateMachine has been renamed to LineRows, use that instead.")] +pub type StateMachine = LineRows; + +/// Executes a `LineProgram` to iterate over the rows in the matrix of line number information. +/// +/// "The hypothetical machine used by a consumer of the line number information +/// to expand the byte-coded instruction stream into a matrix of line number +/// information." -- Section 6.2.1 +#[derive(Debug, Clone)] +pub struct LineRows::Offset> +where + Program: LineProgram, + R: Reader, + Offset: ReaderOffset, +{ + program: Program, + row: LineRow, + instructions: LineInstructions, +} + +type OneShotLineRows::Offset> = + LineRows, Offset>; + +type ResumedLineRows<'program, R, Offset = ::Offset> = + LineRows, Offset>; + +impl LineRows +where + Program: LineProgram, + R: Reader, + Offset: ReaderOffset, +{ + fn new(program: IncompleteLineProgram) -> OneShotLineRows { + let row = LineRow::new(program.header()); + let instructions = LineInstructions { + input: program.header().program_buf.clone(), + }; + LineRows { + program, + row, + instructions, + } + } + + fn resume<'program>( + program: &'program CompleteLineProgram, + sequence: &LineSequence, + ) -> ResumedLineRows<'program, R, Offset> { + let row = LineRow::new(program.header()); + let instructions = sequence.instructions.clone(); + LineRows { + program, + row, + instructions, + } + } + + /// Get a reference to the header for this state machine's line number + /// program. + #[inline] + pub fn header(&self) -> &LineProgramHeader { + self.program.header() + } + + /// Parse and execute the next instructions in the line number program until + /// another row in the line number matrix is computed. + /// + /// The freshly computed row is returned as `Ok(Some((header, row)))`. + /// If the matrix is complete, and there are no more new rows in the line + /// number matrix, then `Ok(None)` is returned. If there was an error parsing + /// an instruction, then `Err(e)` is returned. + /// + /// Unfortunately, the references mean that this cannot be a + /// `FallibleIterator`. + pub fn next_row(&mut self) -> Result, &LineRow)>> { + // Perform any reset that was required after copying the previous row. + self.row.reset(self.program.header()); + + loop { + // Split the borrow here, rather than calling `self.header()`. + match self.instructions.next_instruction(self.program.header()) { + Err(err) => return Err(err), + Ok(None) => return Ok(None), + Ok(Some(instruction)) => { + if self.row.execute(instruction, &mut self.program) { + if self.row.tombstone { + // Perform any reset that was required for the tombstone row. + // Normally this is done when `next_row` is called again, but for + // tombstones we loop immediately. + self.row.reset(self.program.header()); + } else { + return Ok(Some((self.header(), &self.row))); + } + } + // Fall through, parse the next instruction, and see if that + // yields a row. + } + } + } + } +} + +/// Deprecated. `Opcode` has been renamed to `LineInstruction`. +#[deprecated(note = "Opcode has been renamed to LineInstruction, use that instead.")] +pub type Opcode = LineInstruction::Offset>; + +/// A parsed line number program instruction. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum LineInstruction::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + /// > ### 6.2.5.1 Special Opcodes + /// > + /// > Each ubyte special opcode has the following effect on the state machine: + /// > + /// > 1. Add a signed integer to the line register. + /// > + /// > 2. Modify the operation pointer by incrementing the address and + /// > op_index registers as described below. + /// > + /// > 3. Append a row to the matrix using the current values of the state + /// > machine registers. + /// > + /// > 4. Set the basic_block register to “false.” + /// > + /// > 5. Set the prologue_end register to “false.” + /// > + /// > 6. Set the epilogue_begin register to “false.” + /// > + /// > 7. Set the discriminator register to 0. + /// > + /// > All of the special opcodes do those same seven things; they differ from + /// > one another only in what values they add to the line, address and + /// > op_index registers. + Special(u8), + + /// "[`LineInstruction::Copy`] appends a row to the matrix using the current + /// values of the state machine registers. Then it sets the discriminator + /// register to 0, and sets the basic_block, prologue_end and epilogue_begin + /// registers to “false.”" + Copy, + + /// "The DW_LNS_advance_pc opcode takes a single unsigned LEB128 operand as + /// the operation advance and modifies the address and op_index registers + /// [the same as `LineInstruction::Special`]" + AdvancePc(u64), + + /// "The DW_LNS_advance_line opcode takes a single signed LEB128 operand and + /// adds that value to the line register of the state machine." + AdvanceLine(i64), + + /// "The DW_LNS_set_file opcode takes a single unsigned LEB128 operand and + /// stores it in the file register of the state machine." + SetFile(u64), + + /// "The DW_LNS_set_column opcode takes a single unsigned LEB128 operand and + /// stores it in the column register of the state machine." + SetColumn(u64), + + /// "The DW_LNS_negate_stmt opcode takes no operands. It sets the is_stmt + /// register of the state machine to the logical negation of its current + /// value." + NegateStatement, + + /// "The DW_LNS_set_basic_block opcode takes no operands. It sets the + /// basic_block register of the state machine to “true.”" + SetBasicBlock, + + /// > The DW_LNS_const_add_pc opcode takes no operands. It advances the + /// > address and op_index registers by the increments corresponding to + /// > special opcode 255. + /// > + /// > When the line number program needs to advance the address by a small + /// > amount, it can use a single special opcode, which occupies a single + /// > byte. When it needs to advance the address by up to twice the range of + /// > the last special opcode, it can use DW_LNS_const_add_pc followed by a + /// > special opcode, for a total of two bytes. Only if it needs to advance + /// > the address by more than twice that range will it need to use both + /// > DW_LNS_advance_pc and a special opcode, requiring three or more bytes. + ConstAddPc, + + /// > The DW_LNS_fixed_advance_pc opcode takes a single uhalf (unencoded) + /// > operand and adds it to the address register of the state machine and + /// > sets the op_index register to 0. This is the only standard opcode whose + /// > operand is not a variable length number. It also does not multiply the + /// > operand by the minimum_instruction_length field of the header. + FixedAddPc(u16), + + /// "[`LineInstruction::SetPrologueEnd`] sets the prologue_end register to “true”." + SetPrologueEnd, + + /// "[`LineInstruction::SetEpilogueBegin`] sets the epilogue_begin register to + /// “true”." + SetEpilogueBegin, + + /// "The DW_LNS_set_isa opcode takes a single unsigned LEB128 operand and + /// stores that value in the isa register of the state machine." + SetIsa(u64), + + /// An unknown standard opcode with zero operands. + UnknownStandard0(constants::DwLns), + + /// An unknown standard opcode with one operand. + UnknownStandard1(constants::DwLns, u64), + + /// An unknown standard opcode with multiple operands. + UnknownStandardN(constants::DwLns, R), + + /// > [`LineInstruction::EndSequence`] sets the end_sequence register of the state + /// > machine to “true” and appends a row to the matrix using the current + /// > values of the state-machine registers. Then it resets the registers to + /// > the initial values specified above (see Section 6.2.2). Every line + /// > number program sequence must end with a DW_LNE_end_sequence instruction + /// > which creates a row whose address is that of the byte after the last + /// > target machine instruction of the sequence. + EndSequence, + + /// > The DW_LNE_set_address opcode takes a single relocatable address as an + /// > operand. The size of the operand is the size of an address on the target + /// > machine. It sets the address register to the value given by the + /// > relocatable address and sets the op_index register to 0. + /// > + /// > All of the other line number program opcodes that affect the address + /// > register add a delta to it. This instruction stores a relocatable value + /// > into it instead. + SetAddress(u64), + + /// Defines a new source file in the line number program and appends it to + /// the line number program header's list of source files. + DefineFile(FileEntry), + + /// "The DW_LNE_set_discriminator opcode takes a single parameter, an + /// unsigned LEB128 integer. It sets the discriminator register to the new + /// value." + SetDiscriminator(u64), + + /// An unknown extended opcode and the slice of its unparsed operands. + UnknownExtended(constants::DwLne, R), +} + +impl LineInstruction +where + R: Reader, + Offset: ReaderOffset, +{ + fn parse<'header>( + header: &'header LineProgramHeader, + input: &mut R, + ) -> Result> + where + R: 'header, + { + let opcode = input.read_u8()?; + if opcode == 0 { + let length = input.read_uleb128().and_then(R::Offset::from_u64)?; + let mut instr_rest = input.split(length)?; + let opcode = instr_rest.read_u8()?; + + match constants::DwLne(opcode) { + constants::DW_LNE_end_sequence => Ok(LineInstruction::EndSequence), + + constants::DW_LNE_set_address => { + let address = instr_rest.read_address(header.address_size())?; + Ok(LineInstruction::SetAddress(address)) + } + + constants::DW_LNE_define_file => { + if header.version() <= 4 { + let path_name = instr_rest.read_null_terminated_slice()?; + let entry = FileEntry::parse(&mut instr_rest, path_name)?; + Ok(LineInstruction::DefineFile(entry)) + } else { + Ok(LineInstruction::UnknownExtended( + constants::DW_LNE_define_file, + instr_rest, + )) + } + } + + constants::DW_LNE_set_discriminator => { + let discriminator = instr_rest.read_uleb128()?; + Ok(LineInstruction::SetDiscriminator(discriminator)) + } + + otherwise => Ok(LineInstruction::UnknownExtended(otherwise, instr_rest)), + } + } else if opcode >= header.opcode_base { + Ok(LineInstruction::Special(opcode)) + } else { + match constants::DwLns(opcode) { + constants::DW_LNS_copy => Ok(LineInstruction::Copy), + + constants::DW_LNS_advance_pc => { + let advance = input.read_uleb128()?; + Ok(LineInstruction::AdvancePc(advance)) + } + + constants::DW_LNS_advance_line => { + let increment = input.read_sleb128()?; + Ok(LineInstruction::AdvanceLine(increment)) + } + + constants::DW_LNS_set_file => { + let file = input.read_uleb128()?; + Ok(LineInstruction::SetFile(file)) + } + + constants::DW_LNS_set_column => { + let column = input.read_uleb128()?; + Ok(LineInstruction::SetColumn(column)) + } + + constants::DW_LNS_negate_stmt => Ok(LineInstruction::NegateStatement), + + constants::DW_LNS_set_basic_block => Ok(LineInstruction::SetBasicBlock), + + constants::DW_LNS_const_add_pc => Ok(LineInstruction::ConstAddPc), + + constants::DW_LNS_fixed_advance_pc => { + let advance = input.read_u16()?; + Ok(LineInstruction::FixedAddPc(advance)) + } + + constants::DW_LNS_set_prologue_end => Ok(LineInstruction::SetPrologueEnd), + + constants::DW_LNS_set_epilogue_begin => Ok(LineInstruction::SetEpilogueBegin), + + constants::DW_LNS_set_isa => { + let isa = input.read_uleb128()?; + Ok(LineInstruction::SetIsa(isa)) + } + + otherwise => { + let mut opcode_lengths = header.standard_opcode_lengths().clone(); + opcode_lengths.skip(R::Offset::from_u8(opcode - 1))?; + let num_args = opcode_lengths.read_u8()? as usize; + match num_args { + 0 => Ok(LineInstruction::UnknownStandard0(otherwise)), + 1 => { + let arg = input.read_uleb128()?; + Ok(LineInstruction::UnknownStandard1(otherwise, arg)) + } + _ => { + let mut args = input.clone(); + for _ in 0..num_args { + input.read_uleb128()?; + } + let len = input.offset_from(&args); + args.truncate(len)?; + Ok(LineInstruction::UnknownStandardN(otherwise, args)) + } + } + } + } + } + } +} + +impl fmt::Display for LineInstruction +where + R: Reader, + Offset: ReaderOffset, +{ + fn fmt(&self, f: &mut fmt::Formatter) -> result::Result<(), fmt::Error> { + match *self { + LineInstruction::Special(opcode) => write!(f, "Special opcode {}", opcode), + LineInstruction::Copy => write!(f, "{}", constants::DW_LNS_copy), + LineInstruction::AdvancePc(advance) => { + write!(f, "{} by {}", constants::DW_LNS_advance_pc, advance) + } + LineInstruction::AdvanceLine(increment) => { + write!(f, "{} by {}", constants::DW_LNS_advance_line, increment) + } + LineInstruction::SetFile(file) => { + write!(f, "{} to {}", constants::DW_LNS_set_file, file) + } + LineInstruction::SetColumn(column) => { + write!(f, "{} to {}", constants::DW_LNS_set_column, column) + } + LineInstruction::NegateStatement => write!(f, "{}", constants::DW_LNS_negate_stmt), + LineInstruction::SetBasicBlock => write!(f, "{}", constants::DW_LNS_set_basic_block), + LineInstruction::ConstAddPc => write!(f, "{}", constants::DW_LNS_const_add_pc), + LineInstruction::FixedAddPc(advance) => { + write!(f, "{} by {}", constants::DW_LNS_fixed_advance_pc, advance) + } + LineInstruction::SetPrologueEnd => write!(f, "{}", constants::DW_LNS_set_prologue_end), + LineInstruction::SetEpilogueBegin => { + write!(f, "{}", constants::DW_LNS_set_epilogue_begin) + } + LineInstruction::SetIsa(isa) => write!(f, "{} to {}", constants::DW_LNS_set_isa, isa), + LineInstruction::UnknownStandard0(opcode) => write!(f, "Unknown {}", opcode), + LineInstruction::UnknownStandard1(opcode, arg) => { + write!(f, "Unknown {} with operand {}", opcode, arg) + } + LineInstruction::UnknownStandardN(opcode, ref args) => { + write!(f, "Unknown {} with operands {:?}", opcode, args) + } + LineInstruction::EndSequence => write!(f, "{}", constants::DW_LNE_end_sequence), + LineInstruction::SetAddress(address) => { + write!(f, "{} to {}", constants::DW_LNE_set_address, address) + } + LineInstruction::DefineFile(_) => write!(f, "{}", constants::DW_LNE_define_file), + LineInstruction::SetDiscriminator(discr) => { + write!(f, "{} to {}", constants::DW_LNE_set_discriminator, discr) + } + LineInstruction::UnknownExtended(opcode, _) => write!(f, "Unknown {}", opcode), + } + } +} + +/// Deprecated. `OpcodesIter` has been renamed to `LineInstructions`. +#[deprecated(note = "OpcodesIter has been renamed to LineInstructions, use that instead.")] +pub type OpcodesIter = LineInstructions; + +/// An iterator yielding parsed instructions. +/// +/// See +/// [`LineProgramHeader::instructions`](./struct.LineProgramHeader.html#method.instructions) +/// for more details. +#[derive(Clone, Debug)] +pub struct LineInstructions { + input: R, +} + +impl LineInstructions { + fn remove_trailing(&self, other: &LineInstructions) -> Result> { + let offset = other.input.offset_from(&self.input); + let mut input = self.input.clone(); + input.truncate(offset)?; + Ok(LineInstructions { input }) + } +} + +impl LineInstructions { + /// Advance the iterator and return the next instruction. + /// + /// Returns the newly parsed instruction as `Ok(Some(instruction))`. Returns + /// `Ok(None)` when iteration is complete and all instructions have already been + /// parsed and yielded. If an error occurs while parsing the next attribute, + /// then this error is returned as `Err(e)`, and all subsequent calls return + /// `Ok(None)`. + /// + /// Unfortunately, the `header` parameter means that this cannot be a + /// `FallibleIterator`. + #[inline(always)] + pub fn next_instruction( + &mut self, + header: &LineProgramHeader, + ) -> Result>> { + if self.input.is_empty() { + return Ok(None); + } + + match LineInstruction::parse(header, &mut self.input) { + Ok(instruction) => Ok(Some(instruction)), + Err(e) => { + self.input.empty(); + Err(e) + } + } + } +} + +/// Deprecated. `LineNumberRow` has been renamed to `LineRow`. +#[deprecated(note = "LineNumberRow has been renamed to LineRow, use that instead.")] +pub type LineNumberRow = LineRow; + +/// A row in the line number program's resulting matrix. +/// +/// Each row is a copy of the registers of the state machine, as defined in section 6.2.2. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct LineRow { + tombstone: bool, + address: Wrapping, + op_index: Wrapping, + file: u64, + line: Wrapping, + column: u64, + is_stmt: bool, + basic_block: bool, + end_sequence: bool, + prologue_end: bool, + epilogue_begin: bool, + isa: u64, + discriminator: u64, +} + +impl LineRow { + /// Create a line number row in the initial state for the given program. + pub fn new(header: &LineProgramHeader) -> Self { + LineRow { + // "At the beginning of each sequence within a line number program, the + // state of the registers is:" -- Section 6.2.2 + tombstone: false, + address: Wrapping(0), + op_index: Wrapping(0), + file: 1, + line: Wrapping(1), + column: 0, + // "determined by default_is_stmt in the line number program header" + is_stmt: header.line_encoding.default_is_stmt, + basic_block: false, + end_sequence: false, + prologue_end: false, + epilogue_begin: false, + // "The isa value 0 specifies that the instruction set is the + // architecturally determined default instruction set. This may be fixed + // by the ABI, or it may be specified by other means, for example, by + // the object file description." + isa: 0, + discriminator: 0, + } + } + + /// "The program-counter value corresponding to a machine instruction + /// generated by the compiler." + #[inline] + pub fn address(&self) -> u64 { + self.address.0 + } + + /// > An unsigned integer representing the index of an operation within a VLIW + /// > instruction. The index of the first operation is 0. For non-VLIW + /// > architectures, this register will always be 0. + /// > + /// > The address and op_index registers, taken together, form an operation + /// > pointer that can reference any individual operation with the + /// > instruction stream. + #[inline] + pub fn op_index(&self) -> u64 { + self.op_index.0 + } + + /// "An unsigned integer indicating the identity of the source file + /// corresponding to a machine instruction." + #[inline] + pub fn file_index(&self) -> u64 { + self.file + } + + /// The source file corresponding to the current machine instruction. + #[inline] + pub fn file<'header, R: Reader>( + &self, + header: &'header LineProgramHeader, + ) -> Option<&'header FileEntry> { + header.file(self.file) + } + + /// "An unsigned integer indicating a source line number. Lines are numbered + /// beginning at 1. The compiler may emit the value 0 in cases where an + /// instruction cannot be attributed to any source line." + /// Line number values of 0 are represented as `None`. + #[inline] + pub fn line(&self) -> Option { + NonZeroU64::new(self.line.0) + } + + /// "An unsigned integer indicating a column number within a source + /// line. Columns are numbered beginning at 1. The value 0 is reserved to + /// indicate that a statement begins at the “left edge” of the line." + #[inline] + pub fn column(&self) -> ColumnType { + NonZeroU64::new(self.column) + .map(ColumnType::Column) + .unwrap_or(ColumnType::LeftEdge) + } + + /// "A boolean indicating that the current instruction is a recommended + /// breakpoint location. A recommended breakpoint location is intended to + /// “represent” a line, a statement and/or a semantically distinct subpart + /// of a statement." + #[inline] + pub fn is_stmt(&self) -> bool { + self.is_stmt + } + + /// "A boolean indicating that the current instruction is the beginning of a + /// basic block." + #[inline] + pub fn basic_block(&self) -> bool { + self.basic_block + } + + /// "A boolean indicating that the current address is that of the first byte + /// after the end of a sequence of target machine instructions. end_sequence + /// terminates a sequence of lines; therefore other information in the same + /// row is not meaningful." + #[inline] + pub fn end_sequence(&self) -> bool { + self.end_sequence + } + + /// "A boolean indicating that the current address is one (of possibly many) + /// where execution should be suspended for an entry breakpoint of a + /// function." + #[inline] + pub fn prologue_end(&self) -> bool { + self.prologue_end + } + + /// "A boolean indicating that the current address is one (of possibly many) + /// where execution should be suspended for an exit breakpoint of a + /// function." + #[inline] + pub fn epilogue_begin(&self) -> bool { + self.epilogue_begin + } + + /// Tag for the current instruction set architecture. + /// + /// > An unsigned integer whose value encodes the applicable instruction set + /// > architecture for the current instruction. + /// > + /// > The encoding of instruction sets should be shared by all users of a + /// > given architecture. It is recommended that this encoding be defined by + /// > the ABI authoring committee for each architecture. + #[inline] + pub fn isa(&self) -> u64 { + self.isa + } + + /// "An unsigned integer identifying the block to which the current + /// instruction belongs. Discriminator values are assigned arbitrarily by + /// the DWARF producer and serve to distinguish among multiple blocks that + /// may all be associated with the same source file, line, and column. Where + /// only one block exists for a given source position, the discriminator + /// value should be zero." + #[inline] + pub fn discriminator(&self) -> u64 { + self.discriminator + } + + /// Execute the given instruction, and return true if a new row in the + /// line number matrix needs to be generated. + /// + /// Unknown opcodes are treated as no-ops. + #[inline] + pub fn execute( + &mut self, + instruction: LineInstruction, + program: &mut Program, + ) -> bool + where + Program: LineProgram, + R: Reader, + { + match instruction { + LineInstruction::Special(opcode) => { + self.exec_special_opcode(opcode, program.header()); + true + } + + LineInstruction::Copy => true, + + LineInstruction::AdvancePc(operation_advance) => { + self.apply_operation_advance(operation_advance, program.header()); + false + } + + LineInstruction::AdvanceLine(line_increment) => { + self.apply_line_advance(line_increment); + false + } + + LineInstruction::SetFile(file) => { + self.file = file; + false + } + + LineInstruction::SetColumn(column) => { + self.column = column; + false + } + + LineInstruction::NegateStatement => { + self.is_stmt = !self.is_stmt; + false + } + + LineInstruction::SetBasicBlock => { + self.basic_block = true; + false + } + + LineInstruction::ConstAddPc => { + let adjusted = self.adjust_opcode(255, program.header()); + let operation_advance = adjusted / program.header().line_encoding.line_range; + self.apply_operation_advance(u64::from(operation_advance), program.header()); + false + } + + LineInstruction::FixedAddPc(operand) => { + self.address += Wrapping(u64::from(operand)); + self.op_index.0 = 0; + false + } + + LineInstruction::SetPrologueEnd => { + self.prologue_end = true; + false + } + + LineInstruction::SetEpilogueBegin => { + self.epilogue_begin = true; + false + } + + LineInstruction::SetIsa(isa) => { + self.isa = isa; + false + } + + LineInstruction::EndSequence => { + self.end_sequence = true; + true + } + + LineInstruction::SetAddress(address) => { + let tombstone_address = !0 >> (64 - program.header().encoding.address_size * 8); + self.tombstone = address == tombstone_address; + self.address.0 = address; + self.op_index.0 = 0; + false + } + + LineInstruction::DefineFile(entry) => { + program.add_file(entry); + false + } + + LineInstruction::SetDiscriminator(discriminator) => { + self.discriminator = discriminator; + false + } + + // Compatibility with future opcodes. + LineInstruction::UnknownStandard0(_) + | LineInstruction::UnknownStandard1(_, _) + | LineInstruction::UnknownStandardN(_, _) + | LineInstruction::UnknownExtended(_, _) => false, + } + } + + /// Perform any reset that was required after copying the previous row. + #[inline] + pub fn reset(&mut self, header: &LineProgramHeader) { + if self.end_sequence { + // Previous instruction was EndSequence, so reset everything + // as specified in Section 6.2.5.3. + *self = Self::new(header); + } else { + // Previous instruction was one of: + // - Special - specified in Section 6.2.5.1, steps 4-7 + // - Copy - specified in Section 6.2.5.2 + // The reset behaviour is the same in both cases. + self.discriminator = 0; + self.basic_block = false; + self.prologue_end = false; + self.epilogue_begin = false; + } + } + + /// Step 1 of section 6.2.5.1 + fn apply_line_advance(&mut self, line_increment: i64) { + if line_increment < 0 { + let decrement = -line_increment as u64; + if decrement <= self.line.0 { + self.line.0 -= decrement; + } else { + self.line.0 = 0; + } + } else { + self.line += Wrapping(line_increment as u64); + } + } + + /// Step 2 of section 6.2.5.1 + fn apply_operation_advance( + &mut self, + operation_advance: u64, + header: &LineProgramHeader, + ) { + let operation_advance = Wrapping(operation_advance); + + let minimum_instruction_length = u64::from(header.line_encoding.minimum_instruction_length); + let minimum_instruction_length = Wrapping(minimum_instruction_length); + + let maximum_operations_per_instruction = + u64::from(header.line_encoding.maximum_operations_per_instruction); + let maximum_operations_per_instruction = Wrapping(maximum_operations_per_instruction); + + if maximum_operations_per_instruction.0 == 1 { + self.address += minimum_instruction_length * operation_advance; + self.op_index.0 = 0; + } else { + let op_index_with_advance = self.op_index + operation_advance; + self.address += minimum_instruction_length + * (op_index_with_advance / maximum_operations_per_instruction); + self.op_index = op_index_with_advance % maximum_operations_per_instruction; + } + } + + #[inline] + fn adjust_opcode(&self, opcode: u8, header: &LineProgramHeader) -> u8 { + opcode - header.opcode_base + } + + /// Section 6.2.5.1 + fn exec_special_opcode(&mut self, opcode: u8, header: &LineProgramHeader) { + let adjusted_opcode = self.adjust_opcode(opcode, header); + + let line_range = header.line_encoding.line_range; + let line_advance = adjusted_opcode % line_range; + let operation_advance = adjusted_opcode / line_range; + + // Step 1 + let line_base = i64::from(header.line_encoding.line_base); + self.apply_line_advance(line_base + i64::from(line_advance)); + + // Step 2 + self.apply_operation_advance(u64::from(operation_advance), header); + } +} + +/// The type of column that a row is referring to. +#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub enum ColumnType { + /// The `LeftEdge` means that the statement begins at the start of the new + /// line. + LeftEdge, + /// A column number, whose range begins at 1. + Column(NonZeroU64), +} + +/// Deprecated. `LineNumberSequence` has been renamed to `LineSequence`. +#[deprecated(note = "LineNumberSequence has been renamed to LineSequence, use that instead.")] +pub type LineNumberSequence = LineSequence; + +/// A sequence within a line number program. A sequence, as defined in section +/// 6.2.5 of the standard, is a linear subset of a line number program within +/// which addresses are monotonically increasing. +#[derive(Clone, Debug)] +pub struct LineSequence { + /// The first address that is covered by this sequence within the line number + /// program. + pub start: u64, + /// The first address that is *not* covered by this sequence within the line + /// number program. + pub end: u64, + instructions: LineInstructions, +} + +/// Deprecated. `LineNumberProgramHeader` has been renamed to `LineProgramHeader`. +#[deprecated( + note = "LineNumberProgramHeader has been renamed to LineProgramHeader, use that instead." +)] +pub type LineNumberProgramHeader = LineProgramHeader; + +/// A header for a line number program in the `.debug_line` section, as defined +/// in section 6.2.4 of the standard. +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct LineProgramHeader::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + encoding: Encoding, + offset: DebugLineOffset, + unit_length: Offset, + + header_length: Offset, + + line_encoding: LineEncoding, + + /// "The number assigned to the first special opcode." + opcode_base: u8, + + /// "This array specifies the number of LEB128 operands for each of the + /// standard opcodes. The first element of the array corresponds to the + /// opcode whose value is 1, and the last element corresponds to the opcode + /// whose value is `opcode_base - 1`." + standard_opcode_lengths: R, + + /// "A sequence of directory entry format descriptions." + directory_entry_format: Vec, + + /// > Entries in this sequence describe each path that was searched for + /// > included source files in this compilation. (The paths include those + /// > directories specified explicitly by the user for the compiler to search + /// > and those the compiler searches without explicit direction.) Each path + /// > entry is either a full path name or is relative to the current directory + /// > of the compilation. + /// > + /// > The last entry is followed by a single null byte. + include_directories: Vec>, + + /// "A sequence of file entry format descriptions." + file_name_entry_format: Vec, + + /// "Entries in this sequence describe source files that contribute to the + /// line number information for this compilation unit or is used in other + /// contexts." + file_names: Vec>, + + /// The encoded line program instructions. + program_buf: R, + + /// The current directory of the compilation. + comp_dir: Option, + + /// The primary source file. + comp_file: Option>, +} + +impl LineProgramHeader +where + R: Reader, + Offset: ReaderOffset, +{ + /// Return the offset of the line number program header in the `.debug_line` section. + pub fn offset(&self) -> DebugLineOffset { + self.offset + } + + /// Return the length of the line number program and header, not including + /// the length of the encoded length itself. + pub fn unit_length(&self) -> R::Offset { + self.unit_length + } + + /// Return the encoding parameters for this header's line program. + pub fn encoding(&self) -> Encoding { + self.encoding + } + + /// Get the version of this header's line program. + pub fn version(&self) -> u16 { + self.encoding.version + } + + /// Get the length of the encoded line number program header, not including + /// the length of the encoded length itself. + pub fn header_length(&self) -> R::Offset { + self.header_length + } + + /// Get the size in bytes of a target machine address. + pub fn address_size(&self) -> u8 { + self.encoding.address_size + } + + /// Whether this line program is encoded in 64- or 32-bit DWARF. + pub fn format(&self) -> Format { + self.encoding.format + } + + /// Get the line encoding parameters for this header's line program. + pub fn line_encoding(&self) -> LineEncoding { + self.line_encoding + } + + /// Get the minimum instruction length any instruction in this header's line + /// program may have. + pub fn minimum_instruction_length(&self) -> u8 { + self.line_encoding.minimum_instruction_length + } + + /// Get the maximum number of operations each instruction in this header's + /// line program may have. + pub fn maximum_operations_per_instruction(&self) -> u8 { + self.line_encoding.maximum_operations_per_instruction + } + + /// Get the default value of the `is_stmt` register for this header's line + /// program. + pub fn default_is_stmt(&self) -> bool { + self.line_encoding.default_is_stmt + } + + /// Get the line base for this header's line program. + pub fn line_base(&self) -> i8 { + self.line_encoding.line_base + } + + /// Get the line range for this header's line program. + pub fn line_range(&self) -> u8 { + self.line_encoding.line_range + } + + /// Get opcode base for this header's line program. + pub fn opcode_base(&self) -> u8 { + self.opcode_base + } + + /// An array of `u8` that specifies the number of LEB128 operands for + /// each of the standard opcodes. + pub fn standard_opcode_lengths(&self) -> &R { + &self.standard_opcode_lengths + } + + /// Get the format of a directory entry. + pub fn directory_entry_format(&self) -> &[FileEntryFormat] { + &self.directory_entry_format[..] + } + + /// Get the set of include directories for this header's line program. + /// + /// For DWARF version <= 4, the compilation's current directory is not included + /// in the return value, but is implicitly considered to be in the set per spec. + pub fn include_directories(&self) -> &[AttributeValue] { + &self.include_directories[..] + } + + /// The include directory with the given directory index. + /// + /// A directory index of 0 corresponds to the compilation unit directory. + pub fn directory(&self, directory: u64) -> Option> { + if self.encoding.version <= 4 { + if directory == 0 { + self.comp_dir.clone().map(AttributeValue::String) + } else { + let directory = directory as usize - 1; + self.include_directories.get(directory).cloned() + } + } else { + self.include_directories.get(directory as usize).cloned() + } + } + + /// Get the format of a file name entry. + pub fn file_name_entry_format(&self) -> &[FileEntryFormat] { + &self.file_name_entry_format[..] + } + + /// Return true if the file entries may have valid timestamps. + /// + /// Only returns false if we definitely know that all timestamp fields + /// are invalid. + pub fn file_has_timestamp(&self) -> bool { + self.encoding.version <= 4 + || self + .file_name_entry_format + .iter() + .any(|x| x.content_type == constants::DW_LNCT_timestamp) + } + + /// Return true if the file entries may have valid sizes. + /// + /// Only returns false if we definitely know that all size fields + /// are invalid. + pub fn file_has_size(&self) -> bool { + self.encoding.version <= 4 + || self + .file_name_entry_format + .iter() + .any(|x| x.content_type == constants::DW_LNCT_size) + } + + /// Return true if the file name entry format contains an MD5 field. + pub fn file_has_md5(&self) -> bool { + self.file_name_entry_format + .iter() + .any(|x| x.content_type == constants::DW_LNCT_MD5) + } + + /// Get the list of source files that appear in this header's line program. + pub fn file_names(&self) -> &[FileEntry] { + &self.file_names[..] + } + + /// The source file with the given file index. + /// + /// A file index of 0 corresponds to the compilation unit file. + /// Note that a file index of 0 is invalid for DWARF version <= 4, + /// but we support it anyway. + pub fn file(&self, file: u64) -> Option<&FileEntry> { + if self.encoding.version <= 4 { + if file == 0 { + self.comp_file.as_ref() + } else { + let file = file as usize - 1; + self.file_names.get(file) + } + } else { + self.file_names.get(file as usize) + } + } + + /// Get the raw, un-parsed `EndianSlice` containing this header's line number + /// program. + /// + /// ``` + /// # fn foo() { + /// use gimli::{LineProgramHeader, EndianSlice, NativeEndian}; + /// + /// fn get_line_number_program_header<'a>() -> LineProgramHeader> { + /// // Get a line number program header from some offset in a + /// // `.debug_line` section... + /// # unimplemented!() + /// } + /// + /// let header = get_line_number_program_header(); + /// let raw_program = header.raw_program_buf(); + /// println!("The length of the raw program in bytes is {}", raw_program.len()); + /// # } + /// ``` + pub fn raw_program_buf(&self) -> R { + self.program_buf.clone() + } + + /// Iterate over the instructions in this header's line number program, parsing + /// them as we go. + pub fn instructions(&self) -> LineInstructions { + LineInstructions { + input: self.program_buf.clone(), + } + } + + fn parse( + input: &mut R, + offset: DebugLineOffset, + mut address_size: u8, + mut comp_dir: Option, + comp_name: Option, + ) -> Result> { + let (unit_length, format) = input.read_initial_length()?; + let rest = &mut input.split(unit_length)?; + + let version = rest.read_u16()?; + if version < 2 || version > 5 { + return Err(Error::UnknownVersion(u64::from(version))); + } + + if version >= 5 { + address_size = rest.read_u8()?; + let segment_selector_size = rest.read_u8()?; + if segment_selector_size != 0 { + return Err(Error::UnsupportedSegmentSize); + } + } + + let encoding = Encoding { + format, + version, + address_size, + }; + + let header_length = rest.read_length(format)?; + + let mut program_buf = rest.clone(); + program_buf.skip(header_length)?; + rest.truncate(header_length)?; + + let minimum_instruction_length = rest.read_u8()?; + if minimum_instruction_length == 0 { + return Err(Error::MinimumInstructionLengthZero); + } + + // This field did not exist before DWARF 4, but is specified to be 1 for + // non-VLIW architectures, which makes it a no-op. + let maximum_operations_per_instruction = if version >= 4 { rest.read_u8()? } else { 1 }; + if maximum_operations_per_instruction == 0 { + return Err(Error::MaximumOperationsPerInstructionZero); + } + + let default_is_stmt = rest.read_u8()? != 0; + let line_base = rest.read_i8()?; + let line_range = rest.read_u8()?; + if line_range == 0 { + return Err(Error::LineRangeZero); + } + let line_encoding = LineEncoding { + minimum_instruction_length, + maximum_operations_per_instruction, + default_is_stmt, + line_base, + line_range, + }; + + let opcode_base = rest.read_u8()?; + if opcode_base == 0 { + return Err(Error::OpcodeBaseZero); + } + + let standard_opcode_count = R::Offset::from_u8(opcode_base - 1); + let standard_opcode_lengths = rest.split(standard_opcode_count)?; + + let directory_entry_format; + let mut include_directories = Vec::new(); + if version <= 4 { + directory_entry_format = Vec::new(); + loop { + let directory = rest.read_null_terminated_slice()?; + if directory.is_empty() { + break; + } + include_directories.push(AttributeValue::String(directory)); + } + } else { + comp_dir = None; + directory_entry_format = FileEntryFormat::parse(rest)?; + let count = rest.read_uleb128()?; + for _ in 0..count { + include_directories.push(parse_directory_v5( + rest, + encoding, + &directory_entry_format, + )?); + } + } + + let comp_file; + let file_name_entry_format; + let mut file_names = Vec::new(); + if version <= 4 { + comp_file = comp_name.map(|name| FileEntry { + path_name: AttributeValue::String(name), + directory_index: 0, + timestamp: 0, + size: 0, + md5: [0; 16], + }); + + file_name_entry_format = Vec::new(); + loop { + let path_name = rest.read_null_terminated_slice()?; + if path_name.is_empty() { + break; + } + file_names.push(FileEntry::parse(rest, path_name)?); + } + } else { + comp_file = None; + file_name_entry_format = FileEntryFormat::parse(rest)?; + let count = rest.read_uleb128()?; + for _ in 0..count { + file_names.push(parse_file_v5(rest, encoding, &file_name_entry_format)?); + } + } + + let header = LineProgramHeader { + encoding, + offset, + unit_length, + header_length, + line_encoding, + opcode_base, + standard_opcode_lengths, + directory_entry_format, + include_directories, + file_name_entry_format, + file_names, + program_buf, + comp_dir, + comp_file, + }; + Ok(header) + } +} + +/// Deprecated. `IncompleteLineNumberProgram` has been renamed to `IncompleteLineProgram`. +#[deprecated( + note = "IncompleteLineNumberProgram has been renamed to IncompleteLineProgram, use that instead." +)] +pub type IncompleteLineNumberProgram = IncompleteLineProgram; + +/// A line number program that has not been run to completion. +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct IncompleteLineProgram::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + header: LineProgramHeader, +} + +impl IncompleteLineProgram +where + R: Reader, + Offset: ReaderOffset, +{ + /// Retrieve the `LineProgramHeader` for this program. + pub fn header(&self) -> &LineProgramHeader { + &self.header + } + + /// Construct a new `LineRows` for executing this program to iterate + /// over rows in the line information matrix. + pub fn rows(self) -> OneShotLineRows { + OneShotLineRows::new(self) + } + + /// Execute the line number program, completing the `IncompleteLineProgram` + /// into a `CompleteLineProgram` and producing an array of sequences within + /// the line number program that can later be used with + /// `CompleteLineProgram::resume_from`. + /// + /// ``` + /// # fn foo() { + /// use gimli::{IncompleteLineProgram, EndianSlice, NativeEndian}; + /// + /// fn get_line_number_program<'a>() -> IncompleteLineProgram> { + /// // Get a line number program from some offset in a + /// // `.debug_line` section... + /// # unimplemented!() + /// } + /// + /// let program = get_line_number_program(); + /// let (program, sequences) = program.sequences().unwrap(); + /// println!("There are {} sequences in this line number program", sequences.len()); + /// # } + /// ``` + #[allow(clippy::type_complexity)] + pub fn sequences(self) -> Result<(CompleteLineProgram, Vec>)> { + let mut sequences = Vec::new(); + let mut rows = self.rows(); + let mut instructions = rows.instructions.clone(); + let mut sequence_start_addr = None; + loop { + let sequence_end_addr; + if rows.next_row()?.is_none() { + break; + } + + let row = &rows.row; + if row.end_sequence() { + sequence_end_addr = row.address(); + } else if sequence_start_addr.is_none() { + sequence_start_addr = Some(row.address()); + continue; + } else { + continue; + } + + // We just finished a sequence. + sequences.push(LineSequence { + // In theory one could have multiple DW_LNE_end_sequence instructions + // in a row. + start: sequence_start_addr.unwrap_or(0), + end: sequence_end_addr, + instructions: instructions.remove_trailing(&rows.instructions)?, + }); + sequence_start_addr = None; + instructions = rows.instructions.clone(); + } + + let program = CompleteLineProgram { + header: rows.program.header, + }; + Ok((program, sequences)) + } +} + +/// Deprecated. `CompleteLineNumberProgram` has been renamed to `CompleteLineProgram`. +#[deprecated( + note = "CompleteLineNumberProgram has been renamed to CompleteLineProgram, use that instead." +)] +pub type CompleteLineNumberProgram = CompleteLineProgram; + +/// A line number program that has previously been run to completion. +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct CompleteLineProgram::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + header: LineProgramHeader, +} + +impl CompleteLineProgram +where + R: Reader, + Offset: ReaderOffset, +{ + /// Retrieve the `LineProgramHeader` for this program. + pub fn header(&self) -> &LineProgramHeader { + &self.header + } + + /// Construct a new `LineRows` for executing the subset of the line + /// number program identified by 'sequence' and generating the line information + /// matrix. + /// + /// ``` + /// # fn foo() { + /// use gimli::{IncompleteLineProgram, EndianSlice, NativeEndian}; + /// + /// fn get_line_number_program<'a>() -> IncompleteLineProgram> { + /// // Get a line number program from some offset in a + /// // `.debug_line` section... + /// # unimplemented!() + /// } + /// + /// let program = get_line_number_program(); + /// let (program, sequences) = program.sequences().unwrap(); + /// for sequence in &sequences { + /// let mut sm = program.resume_from(sequence); + /// } + /// # } + /// ``` + pub fn resume_from<'program>( + &'program self, + sequence: &LineSequence, + ) -> ResumedLineRows<'program, R, Offset> { + ResumedLineRows::resume(self, sequence) + } +} + +/// An entry in the `LineProgramHeader`'s `file_names` set. +#[derive(Copy, Clone, Debug, PartialEq, Eq)] +pub struct FileEntry::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + path_name: AttributeValue, + directory_index: u64, + timestamp: u64, + size: u64, + md5: [u8; 16], +} + +impl FileEntry +where + R: Reader, + Offset: ReaderOffset, +{ + // version 2-4 + fn parse(input: &mut R, path_name: R) -> Result> { + let directory_index = input.read_uleb128()?; + let timestamp = input.read_uleb128()?; + let size = input.read_uleb128()?; + + let entry = FileEntry { + path_name: AttributeValue::String(path_name), + directory_index, + timestamp, + size, + md5: [0; 16], + }; + + Ok(entry) + } + + /// > A slice containing the full or relative path name of + /// > a source file. If the entry contains a file name or a relative path + /// > name, the file is located relative to either the compilation directory + /// > (as specified by the DW_AT_comp_dir attribute given in the compilation + /// > unit) or one of the directories in the include_directories section. + pub fn path_name(&self) -> AttributeValue { + self.path_name.clone() + } + + /// > An unsigned LEB128 number representing the directory index of the + /// > directory in which the file was found. + /// > + /// > ... + /// > + /// > The directory index represents an entry in the include_directories + /// > section of the line number program header. The index is 0 if the file + /// > was found in the current directory of the compilation, 1 if it was found + /// > in the first directory in the include_directories section, and so + /// > on. The directory index is ignored for file names that represent full + /// > path names. + pub fn directory_index(&self) -> u64 { + self.directory_index + } + + /// Get this file's directory. + /// + /// A directory index of 0 corresponds to the compilation unit directory. + pub fn directory(&self, header: &LineProgramHeader) -> Option> { + header.directory(self.directory_index) + } + + /// The implementation-defined time of last modification of the file, + /// or 0 if not available. + pub fn timestamp(&self) -> u64 { + self.timestamp + } + + /// "An unsigned LEB128 number representing the time of last modification of + /// the file, or 0 if not available." + // Terminology changed in DWARF version 5. + #[doc(hidden)] + pub fn last_modification(&self) -> u64 { + self.timestamp + } + + /// The size of the file in bytes, or 0 if not available. + pub fn size(&self) -> u64 { + self.size + } + + /// "An unsigned LEB128 number representing the length in bytes of the file, + /// or 0 if not available." + // Terminology changed in DWARF version 5. + #[doc(hidden)] + pub fn length(&self) -> u64 { + self.size + } + + /// A 16-byte MD5 digest of the file contents. + /// + /// Only valid if `LineProgramHeader::file_has_md5` returns `true`. + pub fn md5(&self) -> &[u8; 16] { + &self.md5 + } +} + +/// The format of a component of an include directory or file name entry. +#[derive(Copy, Clone, Debug, PartialEq, Eq)] +pub struct FileEntryFormat { + /// The type of information that is represented by the component. + pub content_type: constants::DwLnct, + + /// The encoding form of the component value. + pub form: constants::DwForm, +} + +impl FileEntryFormat { + fn parse(input: &mut R) -> Result> { + let format_count = input.read_u8()? as usize; + let mut format = Vec::with_capacity(format_count); + let mut path_count = 0; + for _ in 0..format_count { + let content_type = input.read_uleb128()?; + let content_type = if content_type > u64::from(u16::max_value()) { + constants::DwLnct(u16::max_value()) + } else { + constants::DwLnct(content_type as u16) + }; + if content_type == constants::DW_LNCT_path { + path_count += 1; + } + + let form = constants::DwForm(input.read_uleb128_u16()?); + + format.push(FileEntryFormat { content_type, form }); + } + if path_count != 1 { + return Err(Error::MissingFileEntryFormatPath); + } + Ok(format) + } +} + +fn parse_directory_v5( + input: &mut R, + encoding: Encoding, + formats: &[FileEntryFormat], +) -> Result> { + let mut path_name = None; + + for format in formats { + let value = parse_attribute(input, encoding, format.form)?; + if format.content_type == constants::DW_LNCT_path { + path_name = Some(value); + } + } + + Ok(path_name.unwrap()) +} + +fn parse_file_v5( + input: &mut R, + encoding: Encoding, + formats: &[FileEntryFormat], +) -> Result> { + let mut path_name = None; + let mut directory_index = 0; + let mut timestamp = 0; + let mut size = 0; + let mut md5 = [0; 16]; + + for format in formats { + let value = parse_attribute(input, encoding, format.form)?; + match format.content_type { + constants::DW_LNCT_path => path_name = Some(value), + constants::DW_LNCT_directory_index => { + if let Some(value) = value.udata_value() { + directory_index = value; + } + } + constants::DW_LNCT_timestamp => { + if let Some(value) = value.udata_value() { + timestamp = value; + } + } + constants::DW_LNCT_size => { + if let Some(value) = value.udata_value() { + size = value; + } + } + constants::DW_LNCT_MD5 => { + if let AttributeValue::Block(mut value) = value { + if value.len().into_u64() == 16 { + md5 = value.read_u8_array()?; + } + } + } + // Ignore unknown content types. + _ => {} + } + } + + Ok(FileEntry { + path_name: path_name.unwrap(), + directory_index, + timestamp, + size, + md5, + }) +} + +// TODO: this should be shared with unit::parse_attribute(), but that is hard to do. +fn parse_attribute( + input: &mut R, + encoding: Encoding, + form: constants::DwForm, +) -> Result> { + Ok(match form { + constants::DW_FORM_block1 => { + let len = input.read_u8().map(R::Offset::from_u8)?; + let block = input.split(len)?; + AttributeValue::Block(block) + } + constants::DW_FORM_block2 => { + let len = input.read_u16().map(R::Offset::from_u16)?; + let block = input.split(len)?; + AttributeValue::Block(block) + } + constants::DW_FORM_block4 => { + let len = input.read_u32().map(R::Offset::from_u32)?; + let block = input.split(len)?; + AttributeValue::Block(block) + } + constants::DW_FORM_block => { + let len = input.read_uleb128().and_then(R::Offset::from_u64)?; + let block = input.split(len)?; + AttributeValue::Block(block) + } + constants::DW_FORM_data1 => { + let data = input.read_u8()?; + AttributeValue::Data1(data) + } + constants::DW_FORM_data2 => { + let data = input.read_u16()?; + AttributeValue::Data2(data) + } + constants::DW_FORM_data4 => { + let data = input.read_u32()?; + AttributeValue::Data4(data) + } + constants::DW_FORM_data8 => { + let data = input.read_u64()?; + AttributeValue::Data8(data) + } + constants::DW_FORM_data16 => { + let block = input.split(R::Offset::from_u8(16))?; + AttributeValue::Block(block) + } + constants::DW_FORM_udata => { + let data = input.read_uleb128()?; + AttributeValue::Udata(data) + } + constants::DW_FORM_sdata => { + let data = input.read_sleb128()?; + AttributeValue::Sdata(data) + } + constants::DW_FORM_flag => { + let present = input.read_u8()?; + AttributeValue::Flag(present != 0) + } + constants::DW_FORM_sec_offset => { + let offset = input.read_offset(encoding.format)?; + AttributeValue::SecOffset(offset) + } + constants::DW_FORM_string => { + let string = input.read_null_terminated_slice()?; + AttributeValue::String(string) + } + constants::DW_FORM_strp => { + let offset = input.read_offset(encoding.format)?; + AttributeValue::DebugStrRef(DebugStrOffset(offset)) + } + constants::DW_FORM_strp_sup | constants::DW_FORM_GNU_strp_alt => { + let offset = input.read_offset(encoding.format)?; + AttributeValue::DebugStrRefSup(DebugStrOffset(offset)) + } + constants::DW_FORM_line_strp => { + let offset = input.read_offset(encoding.format)?; + AttributeValue::DebugLineStrRef(DebugLineStrOffset(offset)) + } + constants::DW_FORM_strx | constants::DW_FORM_GNU_str_index => { + let index = input.read_uleb128().and_then(R::Offset::from_u64)?; + AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(index)) + } + constants::DW_FORM_strx1 => { + let index = input.read_u8().map(R::Offset::from_u8)?; + AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(index)) + } + constants::DW_FORM_strx2 => { + let index = input.read_u16().map(R::Offset::from_u16)?; + AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(index)) + } + constants::DW_FORM_strx3 => { + let index = input.read_uint(3).and_then(R::Offset::from_u64)?; + AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(index)) + } + constants::DW_FORM_strx4 => { + let index = input.read_u32().map(R::Offset::from_u32)?; + AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(index)) + } + _ => { + return Err(Error::UnknownForm); + } + }) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::constants; + use crate::endianity::LittleEndian; + use crate::read::{EndianSlice, Error}; + use crate::test_util::GimliSectionMethods; + use core::u64; + use core::u8; + use test_assembler::{Endian, Label, LabelMaker, Section}; + + #[test] + fn test_parse_debug_line_32_ok() { + #[rustfmt::skip] + let buf = [ + // 32-bit length = 62. + 0x3e, 0x00, 0x00, 0x00, + // Version. + 0x04, 0x00, + // Header length = 40. + 0x28, 0x00, 0x00, 0x00, + // Minimum instruction length. + 0x01, + // Maximum operations per byte. + 0x01, + // Default is_stmt. + 0x01, + // Line base. + 0x00, + // Line range. + 0x01, + // Opcode base. + 0x03, + // Standard opcode lengths for opcodes 1 .. opcode base - 1. + 0x01, 0x02, + // Include directories = '/', 'i', 'n', 'c', '\0', '/', 'i', 'n', 'c', '2', '\0', '\0' + 0x2f, 0x69, 0x6e, 0x63, 0x00, 0x2f, 0x69, 0x6e, 0x63, 0x32, 0x00, 0x00, + // File names + // foo.rs + 0x66, 0x6f, 0x6f, 0x2e, 0x72, 0x73, 0x00, + 0x00, + 0x00, + 0x00, + // bar.h + 0x62, 0x61, 0x72, 0x2e, 0x68, 0x00, + 0x01, + 0x00, + 0x00, + // End file names. + 0x00, + + // Dummy line program data. + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + + // Dummy next line program. + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + ]; + + let rest = &mut EndianSlice::new(&buf, LittleEndian); + let comp_dir = EndianSlice::new(b"/comp_dir", LittleEndian); + let comp_name = EndianSlice::new(b"/comp_name", LittleEndian); + + let header = + LineProgramHeader::parse(rest, DebugLineOffset(0), 4, Some(comp_dir), Some(comp_name)) + .expect("should parse header ok"); + + assert_eq!( + *rest, + EndianSlice::new(&buf[buf.len() - 16..], LittleEndian) + ); + + assert_eq!(header.offset, DebugLineOffset(0)); + assert_eq!(header.version(), 4); + assert_eq!(header.minimum_instruction_length(), 1); + assert_eq!(header.maximum_operations_per_instruction(), 1); + assert_eq!(header.default_is_stmt(), true); + assert_eq!(header.line_base(), 0); + assert_eq!(header.line_range(), 1); + assert_eq!(header.opcode_base(), 3); + assert_eq!(header.directory(0), Some(AttributeValue::String(comp_dir))); + assert_eq!( + header.file(0).unwrap().path_name, + AttributeValue::String(comp_name) + ); + + let expected_lengths = [1, 2]; + assert_eq!(header.standard_opcode_lengths().slice(), &expected_lengths); + + let expected_include_directories = [ + AttributeValue::String(EndianSlice::new(b"/inc", LittleEndian)), + AttributeValue::String(EndianSlice::new(b"/inc2", LittleEndian)), + ]; + assert_eq!(header.include_directories(), &expected_include_directories); + + let expected_file_names = [ + FileEntry { + path_name: AttributeValue::String(EndianSlice::new(b"foo.rs", LittleEndian)), + directory_index: 0, + timestamp: 0, + size: 0, + md5: [0; 16], + }, + FileEntry { + path_name: AttributeValue::String(EndianSlice::new(b"bar.h", LittleEndian)), + directory_index: 1, + timestamp: 0, + size: 0, + md5: [0; 16], + }, + ]; + assert_eq!(&*header.file_names(), &expected_file_names); + } + + #[test] + fn test_parse_debug_line_header_length_too_short() { + #[rustfmt::skip] + let buf = [ + // 32-bit length = 62. + 0x3e, 0x00, 0x00, 0x00, + // Version. + 0x04, 0x00, + // Header length = 20. TOO SHORT!!! + 0x15, 0x00, 0x00, 0x00, + // Minimum instruction length. + 0x01, + // Maximum operations per byte. + 0x01, + // Default is_stmt. + 0x01, + // Line base. + 0x00, + // Line range. + 0x01, + // Opcode base. + 0x03, + // Standard opcode lengths for opcodes 1 .. opcode base - 1. + 0x01, 0x02, + // Include directories = '/', 'i', 'n', 'c', '\0', '/', 'i', 'n', 'c', '2', '\0', '\0' + 0x2f, 0x69, 0x6e, 0x63, 0x00, 0x2f, 0x69, 0x6e, 0x63, 0x32, 0x00, 0x00, + // File names + // foo.rs + 0x66, 0x6f, 0x6f, 0x2e, 0x72, 0x73, 0x00, + 0x00, + 0x00, + 0x00, + // bar.h + 0x62, 0x61, 0x72, 0x2e, 0x68, 0x00, + 0x01, + 0x00, + 0x00, + // End file names. + 0x00, + + // Dummy line program data. + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + + // Dummy next line program. + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + ]; + + let input = &mut EndianSlice::new(&buf, LittleEndian); + + match LineProgramHeader::parse(input, DebugLineOffset(0), 4, None, None) { + Err(Error::UnexpectedEof(_)) => return, + otherwise => panic!("Unexpected result: {:?}", otherwise), + } + } + + #[test] + fn test_parse_debug_line_unit_length_too_short() { + #[rustfmt::skip] + let buf = [ + // 32-bit length = 40. TOO SHORT!!! + 0x28, 0x00, 0x00, 0x00, + // Version. + 0x04, 0x00, + // Header length = 40. + 0x28, 0x00, 0x00, 0x00, + // Minimum instruction length. + 0x01, + // Maximum operations per byte. + 0x01, + // Default is_stmt. + 0x01, + // Line base. + 0x00, + // Line range. + 0x01, + // Opcode base. + 0x03, + // Standard opcode lengths for opcodes 1 .. opcode base - 1. + 0x01, 0x02, + // Include directories = '/', 'i', 'n', 'c', '\0', '/', 'i', 'n', 'c', '2', '\0', '\0' + 0x2f, 0x69, 0x6e, 0x63, 0x00, 0x2f, 0x69, 0x6e, 0x63, 0x32, 0x00, 0x00, + // File names + // foo.rs + 0x66, 0x6f, 0x6f, 0x2e, 0x72, 0x73, 0x00, + 0x00, + 0x00, + 0x00, + // bar.h + 0x62, 0x61, 0x72, 0x2e, 0x68, 0x00, + 0x01, + 0x00, + 0x00, + // End file names. + 0x00, + + // Dummy line program data. + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + + // Dummy next line program. + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + ]; + + let input = &mut EndianSlice::new(&buf, LittleEndian); + + match LineProgramHeader::parse(input, DebugLineOffset(0), 4, None, None) { + Err(Error::UnexpectedEof(_)) => return, + otherwise => panic!("Unexpected result: {:?}", otherwise), + } + } + + const OPCODE_BASE: u8 = 13; + const STANDARD_OPCODE_LENGTHS: &[u8] = &[0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1]; + + fn make_test_header( + buf: EndianSlice, + ) -> LineProgramHeader> { + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 8, + }; + let line_encoding = LineEncoding { + line_base: -3, + line_range: 12, + ..Default::default() + }; + LineProgramHeader { + encoding, + offset: DebugLineOffset(0), + unit_length: 1, + header_length: 1, + line_encoding, + opcode_base: OPCODE_BASE, + standard_opcode_lengths: EndianSlice::new(STANDARD_OPCODE_LENGTHS, LittleEndian), + file_names: vec![ + FileEntry { + path_name: AttributeValue::String(EndianSlice::new(b"foo.c", LittleEndian)), + directory_index: 0, + timestamp: 0, + size: 0, + md5: [0; 16], + }, + FileEntry { + path_name: AttributeValue::String(EndianSlice::new(b"bar.rs", LittleEndian)), + directory_index: 0, + timestamp: 0, + size: 0, + md5: [0; 16], + }, + ], + include_directories: vec![], + directory_entry_format: vec![], + file_name_entry_format: vec![], + program_buf: buf, + comp_dir: None, + comp_file: None, + } + } + + fn make_test_program( + buf: EndianSlice, + ) -> IncompleteLineProgram> { + IncompleteLineProgram { + header: make_test_header(buf), + } + } + + #[test] + fn test_parse_special_opcodes() { + for i in OPCODE_BASE..u8::MAX { + let input = [i, 0, 0, 0]; + let input = EndianSlice::new(&input, LittleEndian); + let header = make_test_header(input); + + let mut rest = input; + let opcode = + LineInstruction::parse(&header, &mut rest).expect("Should parse the opcode OK"); + + assert_eq!(*rest, *input.range_from(1..)); + assert_eq!(opcode, LineInstruction::Special(i)); + } + } + + #[test] + fn test_parse_standard_opcodes() { + fn test( + raw: constants::DwLns, + operands: Operands, + expected: LineInstruction>, + ) where + Operands: AsRef<[u8]>, + { + let mut input = Vec::new(); + input.push(raw.0); + input.extend_from_slice(operands.as_ref()); + + let expected_rest = [0, 1, 2, 3, 4]; + input.extend_from_slice(&expected_rest); + + let input = EndianSlice::new(&*input, LittleEndian); + let header = make_test_header(input); + + let mut rest = input; + let opcode = + LineInstruction::parse(&header, &mut rest).expect("Should parse the opcode OK"); + + assert_eq!(opcode, expected); + assert_eq!(*rest, expected_rest); + } + + test(constants::DW_LNS_copy, [], LineInstruction::Copy); + test( + constants::DW_LNS_advance_pc, + [42], + LineInstruction::AdvancePc(42), + ); + test( + constants::DW_LNS_advance_line, + [9], + LineInstruction::AdvanceLine(9), + ); + test(constants::DW_LNS_set_file, [7], LineInstruction::SetFile(7)); + test( + constants::DW_LNS_set_column, + [1], + LineInstruction::SetColumn(1), + ); + test( + constants::DW_LNS_negate_stmt, + [], + LineInstruction::NegateStatement, + ); + test( + constants::DW_LNS_set_basic_block, + [], + LineInstruction::SetBasicBlock, + ); + test( + constants::DW_LNS_const_add_pc, + [], + LineInstruction::ConstAddPc, + ); + test( + constants::DW_LNS_fixed_advance_pc, + [42, 0], + LineInstruction::FixedAddPc(42), + ); + test( + constants::DW_LNS_set_prologue_end, + [], + LineInstruction::SetPrologueEnd, + ); + test( + constants::DW_LNS_set_isa, + [57 + 0x80, 100], + LineInstruction::SetIsa(12857), + ); + } + + #[test] + fn test_parse_unknown_standard_opcode_no_args() { + let input = [OPCODE_BASE, 1, 2, 3]; + let input = EndianSlice::new(&input, LittleEndian); + let mut standard_opcode_lengths = Vec::new(); + let mut header = make_test_header(input); + standard_opcode_lengths.extend(header.standard_opcode_lengths.slice()); + standard_opcode_lengths.push(0); + header.opcode_base += 1; + header.standard_opcode_lengths = EndianSlice::new(&standard_opcode_lengths, LittleEndian); + + let mut rest = input; + let opcode = + LineInstruction::parse(&header, &mut rest).expect("Should parse the opcode OK"); + + assert_eq!( + opcode, + LineInstruction::UnknownStandard0(constants::DwLns(OPCODE_BASE)) + ); + assert_eq!(*rest, *input.range_from(1..)); + } + + #[test] + fn test_parse_unknown_standard_opcode_one_arg() { + let input = [OPCODE_BASE, 1, 2, 3]; + let input = EndianSlice::new(&input, LittleEndian); + let mut standard_opcode_lengths = Vec::new(); + let mut header = make_test_header(input); + standard_opcode_lengths.extend(header.standard_opcode_lengths.slice()); + standard_opcode_lengths.push(1); + header.opcode_base += 1; + header.standard_opcode_lengths = EndianSlice::new(&standard_opcode_lengths, LittleEndian); + + let mut rest = input; + let opcode = + LineInstruction::parse(&header, &mut rest).expect("Should parse the opcode OK"); + + assert_eq!( + opcode, + LineInstruction::UnknownStandard1(constants::DwLns(OPCODE_BASE), 1) + ); + assert_eq!(*rest, *input.range_from(2..)); + } + + #[test] + fn test_parse_unknown_standard_opcode_many_args() { + let input = [OPCODE_BASE, 1, 2, 3]; + let input = EndianSlice::new(&input, LittleEndian); + let args = input.range_from(1..); + let mut standard_opcode_lengths = Vec::new(); + let mut header = make_test_header(input); + standard_opcode_lengths.extend(header.standard_opcode_lengths.slice()); + standard_opcode_lengths.push(3); + header.opcode_base += 1; + header.standard_opcode_lengths = EndianSlice::new(&standard_opcode_lengths, LittleEndian); + + let mut rest = input; + let opcode = + LineInstruction::parse(&header, &mut rest).expect("Should parse the opcode OK"); + + assert_eq!( + opcode, + LineInstruction::UnknownStandardN(constants::DwLns(OPCODE_BASE), args) + ); + assert_eq!(*rest, []); + } + + #[test] + fn test_parse_extended_opcodes() { + fn test( + raw: constants::DwLne, + operands: Operands, + expected: LineInstruction>, + ) where + Operands: AsRef<[u8]>, + { + let mut input = Vec::new(); + input.push(0); + + let operands = operands.as_ref(); + input.push(1 + operands.len() as u8); + + input.push(raw.0); + input.extend_from_slice(operands); + + let expected_rest = [0, 1, 2, 3, 4]; + input.extend_from_slice(&expected_rest); + + let input = EndianSlice::new(&input, LittleEndian); + let header = make_test_header(input); + + let mut rest = input; + let opcode = + LineInstruction::parse(&header, &mut rest).expect("Should parse the opcode OK"); + + assert_eq!(opcode, expected); + assert_eq!(*rest, expected_rest); + } + + test( + constants::DW_LNE_end_sequence, + [], + LineInstruction::EndSequence, + ); + test( + constants::DW_LNE_set_address, + [1, 2, 3, 4, 5, 6, 7, 8], + LineInstruction::SetAddress(578_437_695_752_307_201), + ); + test( + constants::DW_LNE_set_discriminator, + [42], + LineInstruction::SetDiscriminator(42), + ); + + let mut file = Vec::new(); + // "foo.c" + let path_name = [b'f', b'o', b'o', b'.', b'c', 0]; + file.extend_from_slice(&path_name); + // Directory index. + file.push(0); + // Last modification of file. + file.push(1); + // Size of file. + file.push(2); + + test( + constants::DW_LNE_define_file, + file, + LineInstruction::DefineFile(FileEntry { + path_name: AttributeValue::String(EndianSlice::new(b"foo.c", LittleEndian)), + directory_index: 0, + timestamp: 1, + size: 2, + md5: [0; 16], + }), + ); + + // Unknown extended opcode. + let operands = [1, 2, 3, 4, 5, 6]; + let opcode = constants::DwLne(99); + test( + opcode, + operands, + LineInstruction::UnknownExtended(opcode, EndianSlice::new(&operands, LittleEndian)), + ); + } + + #[test] + fn test_file_entry_directory() { + let path_name = [b'f', b'o', b'o', b'.', b'r', b's', 0]; + + let mut file = FileEntry { + path_name: AttributeValue::String(EndianSlice::new(&path_name, LittleEndian)), + directory_index: 1, + timestamp: 0, + size: 0, + md5: [0; 16], + }; + + let mut header = make_test_header(EndianSlice::new(&[], LittleEndian)); + + let dir = AttributeValue::String(EndianSlice::new(b"dir", LittleEndian)); + header.include_directories.push(dir); + + assert_eq!(file.directory(&header), Some(dir)); + + // Now test the compilation's current directory. + file.directory_index = 0; + assert_eq!(file.directory(&header), None); + } + + fn assert_exec_opcode<'input>( + header: LineProgramHeader>, + mut registers: LineRow, + opcode: LineInstruction>, + expected_registers: LineRow, + expect_new_row: bool, + ) { + let mut program = IncompleteLineProgram { header }; + let is_new_row = registers.execute(opcode, &mut program); + + assert_eq!(is_new_row, expect_new_row); + assert_eq!(registers, expected_registers); + } + + #[test] + fn test_exec_special_noop() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::Special(16); + let expected_registers = initial_registers; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, true); + } + + #[test] + fn test_exec_special_negative_line_advance() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + + let mut initial_registers = LineRow::new(&header); + initial_registers.line.0 = 10; + + let opcode = LineInstruction::Special(13); + + let mut expected_registers = initial_registers; + expected_registers.line.0 -= 3; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, true); + } + + #[test] + fn test_exec_special_positive_line_advance() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + + let initial_registers = LineRow::new(&header); + + let opcode = LineInstruction::Special(19); + + let mut expected_registers = initial_registers; + expected_registers.line.0 += 3; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, true); + } + + #[test] + fn test_exec_special_positive_address_advance() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + + let initial_registers = LineRow::new(&header); + + let opcode = LineInstruction::Special(52); + + let mut expected_registers = initial_registers; + expected_registers.address.0 += 3; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, true); + } + + #[test] + fn test_exec_special_positive_address_and_line_advance() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + + let initial_registers = LineRow::new(&header); + + let opcode = LineInstruction::Special(55); + + let mut expected_registers = initial_registers; + expected_registers.address.0 += 3; + expected_registers.line.0 += 3; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, true); + } + + #[test] + fn test_exec_special_positive_address_and_negative_line_advance() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + + let mut initial_registers = LineRow::new(&header); + initial_registers.line.0 = 10; + + let opcode = LineInstruction::Special(49); + + let mut expected_registers = initial_registers; + expected_registers.address.0 += 3; + expected_registers.line.0 -= 3; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, true); + } + + #[test] + fn test_exec_special_line_underflow() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + + let mut initial_registers = LineRow::new(&header); + initial_registers.line.0 = 2; + + // -3 line advance. + let opcode = LineInstruction::Special(13); + + let mut expected_registers = initial_registers; + // Clamp at 0. No idea if this is the best way to handle this situation + // or not... + expected_registers.line.0 = 0; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, true); + } + + #[test] + fn test_exec_copy() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + + let mut initial_registers = LineRow::new(&header); + initial_registers.address.0 = 1337; + initial_registers.line.0 = 42; + + let opcode = LineInstruction::Copy; + + let expected_registers = initial_registers; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, true); + } + + #[test] + fn test_exec_advance_pc() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::AdvancePc(42); + + let mut expected_registers = initial_registers; + expected_registers.address.0 += 42; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_advance_pc_overflow() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let opcode = LineInstruction::AdvancePc(42); + + let mut initial_registers = LineRow::new(&header); + initial_registers.address.0 = u64::MAX; + + let mut expected_registers = initial_registers; + expected_registers.address.0 = 41; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_advance_line() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::AdvanceLine(42); + + let mut expected_registers = initial_registers; + expected_registers.line.0 += 42; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_advance_line_overflow() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let opcode = LineInstruction::AdvanceLine(42); + + let mut initial_registers = LineRow::new(&header); + initial_registers.line.0 = u64::MAX; + + let mut expected_registers = initial_registers; + expected_registers.line.0 = 41; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_set_file_in_bounds() { + for file_idx in 1..3 { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::SetFile(file_idx); + + let mut expected_registers = initial_registers; + expected_registers.file = file_idx; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + } + + #[test] + fn test_exec_set_file_out_of_bounds() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::SetFile(100); + + // The spec doesn't say anything about rejecting input programs + // that set the file register out of bounds of the actual number + // of files that have been defined. Instead, we cross our + // fingers and hope that one gets defined before + // `LineRow::file` gets called and handle the error at + // that time if need be. + let mut expected_registers = initial_registers; + expected_registers.file = 100; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_file_entry_file_index_out_of_bounds() { + // These indices are 1-based, so 0 is invalid. 100 is way more than the + // number of files defined in the header. + let out_of_bounds_indices = [0, 100]; + + for file_idx in &out_of_bounds_indices[..] { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let mut row = LineRow::new(&header); + + row.file = *file_idx; + + assert_eq!(row.file(&header), None); + } + } + + #[test] + fn test_file_entry_file_index_in_bounds() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let mut row = LineRow::new(&header); + + row.file = 2; + + assert_eq!(row.file(&header), Some(&header.file_names()[1])); + } + + #[test] + fn test_exec_set_column() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::SetColumn(42); + + let mut expected_registers = initial_registers; + expected_registers.column = 42; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_negate_statement() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::NegateStatement; + + let mut expected_registers = initial_registers; + expected_registers.is_stmt = !initial_registers.is_stmt; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_set_basic_block() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + + let mut initial_registers = LineRow::new(&header); + initial_registers.basic_block = false; + + let opcode = LineInstruction::SetBasicBlock; + + let mut expected_registers = initial_registers; + expected_registers.basic_block = true; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_const_add_pc() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::ConstAddPc; + + let mut expected_registers = initial_registers; + expected_registers.address.0 += 20; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_fixed_add_pc() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + + let mut initial_registers = LineRow::new(&header); + initial_registers.op_index.0 = 1; + + let opcode = LineInstruction::FixedAddPc(10); + + let mut expected_registers = initial_registers; + expected_registers.address.0 += 10; + expected_registers.op_index.0 = 0; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_set_prologue_end() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + + let mut initial_registers = LineRow::new(&header); + initial_registers.prologue_end = false; + + let opcode = LineInstruction::SetPrologueEnd; + + let mut expected_registers = initial_registers; + expected_registers.prologue_end = true; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_set_isa() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::SetIsa(1993); + + let mut expected_registers = initial_registers; + expected_registers.isa = 1993; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_unknown_standard_0() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::UnknownStandard0(constants::DwLns(111)); + let expected_registers = initial_registers; + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_unknown_standard_1() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::UnknownStandard1(constants::DwLns(111), 2); + let expected_registers = initial_registers; + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_unknown_standard_n() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::UnknownStandardN( + constants::DwLns(111), + EndianSlice::new(&[2, 2, 2], LittleEndian), + ); + let expected_registers = initial_registers; + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_end_sequence() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::EndSequence; + + let mut expected_registers = initial_registers; + expected_registers.end_sequence = true; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, true); + } + + #[test] + fn test_exec_set_address() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::SetAddress(3030); + + let mut expected_registers = initial_registers; + expected_registers.address.0 = 3030; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_set_address_tombstone() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::SetAddress(!0); + + let mut expected_registers = initial_registers; + expected_registers.tombstone = true; + expected_registers.address.0 = !0; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_define_file() { + let mut program = make_test_program(EndianSlice::new(&[], LittleEndian)); + let mut row = LineRow::new(program.header()); + + let file = FileEntry { + path_name: AttributeValue::String(EndianSlice::new(b"test.cpp", LittleEndian)), + directory_index: 0, + timestamp: 0, + size: 0, + md5: [0; 16], + }; + + let opcode = LineInstruction::DefineFile(file); + let is_new_row = row.execute(opcode, &mut program); + + assert_eq!(is_new_row, false); + assert_eq!(Some(&file), program.header().file_names.last()); + } + + #[test] + fn test_exec_set_discriminator() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::SetDiscriminator(9); + + let mut expected_registers = initial_registers; + expected_registers.discriminator = 9; + + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + #[test] + fn test_exec_unknown_extended() { + let header = make_test_header(EndianSlice::new(&[], LittleEndian)); + let initial_registers = LineRow::new(&header); + let opcode = LineInstruction::UnknownExtended( + constants::DwLne(74), + EndianSlice::new(&[], LittleEndian), + ); + let expected_registers = initial_registers; + assert_exec_opcode(header, initial_registers, opcode, expected_registers, false); + } + + /// Ensure that `LineRows` is covariant wrt R. + /// This only needs to compile. + #[allow(dead_code, unreachable_code, unused_variables)] + fn test_line_rows_variance<'a, 'b>(_: &'a [u8], _: &'b [u8]) + where + 'a: 'b, + { + let a: &OneShotLineRows> = unimplemented!(); + let _: &OneShotLineRows> = a; + } + + #[test] + fn test_parse_debug_line_v5_ok() { + let expected_lengths = &[1, 2]; + let expected_program = &[0, 1, 2, 3, 4]; + let expected_rest = &[5, 6, 7, 8, 9]; + let expected_include_directories = [ + AttributeValue::String(EndianSlice::new(b"dir1", LittleEndian)), + AttributeValue::String(EndianSlice::new(b"dir2", LittleEndian)), + ]; + let expected_file_names = [ + FileEntry { + path_name: AttributeValue::String(EndianSlice::new(b"file1", LittleEndian)), + directory_index: 0, + timestamp: 0, + size: 0, + md5: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], + }, + FileEntry { + path_name: AttributeValue::String(EndianSlice::new(b"file2", LittleEndian)), + directory_index: 1, + timestamp: 0, + size: 0, + md5: [ + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + ], + }, + ]; + + for format in vec![Format::Dwarf32, Format::Dwarf64] { + let length = Label::new(); + let header_length = Label::new(); + let start = Label::new(); + let header_start = Label::new(); + let end = Label::new(); + let header_end = Label::new(); + let section = Section::with_endian(Endian::Little) + .initial_length(format, &length, &start) + .D16(5) + // Address size. + .D8(4) + // Segment selector size. + .D8(0) + .word_label(format.word_size(), &header_length) + .mark(&header_start) + // Minimum instruction length. + .D8(1) + // Maximum operations per byte. + .D8(1) + // Default is_stmt. + .D8(1) + // Line base. + .D8(0) + // Line range. + .D8(1) + // Opcode base. + .D8(expected_lengths.len() as u8 + 1) + // Standard opcode lengths for opcodes 1 .. opcode base - 1. + .append_bytes(expected_lengths) + // Directory entry format count. + .D8(1) + .uleb(constants::DW_LNCT_path.0 as u64) + .uleb(constants::DW_FORM_string.0 as u64) + // Directory count. + .D8(2) + .append_bytes(b"dir1\0") + .append_bytes(b"dir2\0") + // File entry format count. + .D8(3) + .uleb(constants::DW_LNCT_path.0 as u64) + .uleb(constants::DW_FORM_string.0 as u64) + .uleb(constants::DW_LNCT_directory_index.0 as u64) + .uleb(constants::DW_FORM_data1.0 as u64) + .uleb(constants::DW_LNCT_MD5.0 as u64) + .uleb(constants::DW_FORM_data16.0 as u64) + // File count. + .D8(2) + .append_bytes(b"file1\0") + .D8(0) + .append_bytes(&expected_file_names[0].md5) + .append_bytes(b"file2\0") + .D8(1) + .append_bytes(&expected_file_names[1].md5) + .mark(&header_end) + // Dummy line program data. + .append_bytes(expected_program) + .mark(&end) + // Dummy trailing data. + .append_bytes(expected_rest); + length.set_const((&end - &start) as u64); + header_length.set_const((&header_end - &header_start) as u64); + let section = section.get_contents().unwrap(); + + let input = &mut EndianSlice::new(§ion, LittleEndian); + + let header = LineProgramHeader::parse(input, DebugLineOffset(0), 0, None, None) + .expect("should parse header ok"); + + assert_eq!(header.raw_program_buf().slice(), expected_program); + assert_eq!(input.slice(), expected_rest); + + assert_eq!(header.offset, DebugLineOffset(0)); + assert_eq!(header.version(), 5); + assert_eq!(header.address_size(), 4); + assert_eq!(header.minimum_instruction_length(), 1); + assert_eq!(header.maximum_operations_per_instruction(), 1); + assert_eq!(header.default_is_stmt(), true); + assert_eq!(header.line_base(), 0); + assert_eq!(header.line_range(), 1); + assert_eq!(header.opcode_base(), expected_lengths.len() as u8 + 1); + assert_eq!(header.standard_opcode_lengths().slice(), expected_lengths); + assert_eq!( + header.directory_entry_format(), + &[FileEntryFormat { + content_type: constants::DW_LNCT_path, + form: constants::DW_FORM_string, + }] + ); + assert_eq!(header.include_directories(), expected_include_directories); + assert_eq!(header.directory(0), Some(expected_include_directories[0])); + assert_eq!( + header.file_name_entry_format(), + &[ + FileEntryFormat { + content_type: constants::DW_LNCT_path, + form: constants::DW_FORM_string, + }, + FileEntryFormat { + content_type: constants::DW_LNCT_directory_index, + form: constants::DW_FORM_data1, + }, + FileEntryFormat { + content_type: constants::DW_LNCT_MD5, + form: constants::DW_FORM_data16, + } + ] + ); + assert_eq!(header.file_names(), expected_file_names); + assert_eq!(header.file(0), Some(&expected_file_names[0])); + } + } + + #[test] + fn test_sequences() { + #[rustfmt::skip] + let buf = [ + // 32-bit length + 94, 0x00, 0x00, 0x00, + // Version. + 0x04, 0x00, + // Header length = 40. + 0x28, 0x00, 0x00, 0x00, + // Minimum instruction length. + 0x01, + // Maximum operations per byte. + 0x01, + // Default is_stmt. + 0x01, + // Line base. + 0x00, + // Line range. + 0x01, + // Opcode base. + 0x03, + // Standard opcode lengths for opcodes 1 .. opcode base - 1. + 0x01, 0x02, + // Include directories = '/', 'i', 'n', 'c', '\0', '/', 'i', 'n', 'c', '2', '\0', '\0' + 0x2f, 0x69, 0x6e, 0x63, 0x00, 0x2f, 0x69, 0x6e, 0x63, 0x32, 0x00, 0x00, + // File names + // foo.rs + 0x66, 0x6f, 0x6f, 0x2e, 0x72, 0x73, 0x00, + 0x00, + 0x00, + 0x00, + // bar.h + 0x62, 0x61, 0x72, 0x2e, 0x68, 0x00, + 0x01, + 0x00, + 0x00, + // End file names. + 0x00, + + 0, 5, constants::DW_LNE_set_address.0, 1, 0, 0, 0, + constants::DW_LNS_copy.0, + constants::DW_LNS_advance_pc.0, 1, + constants::DW_LNS_copy.0, + constants::DW_LNS_advance_pc.0, 2, + 0, 1, constants::DW_LNE_end_sequence.0, + + // Tombstone + 0, 5, constants::DW_LNE_set_address.0, 0xff, 0xff, 0xff, 0xff, + constants::DW_LNS_copy.0, + constants::DW_LNS_advance_pc.0, 1, + constants::DW_LNS_copy.0, + constants::DW_LNS_advance_pc.0, 2, + 0, 1, constants::DW_LNE_end_sequence.0, + + 0, 5, constants::DW_LNE_set_address.0, 11, 0, 0, 0, + constants::DW_LNS_copy.0, + constants::DW_LNS_advance_pc.0, 1, + constants::DW_LNS_copy.0, + constants::DW_LNS_advance_pc.0, 2, + 0, 1, constants::DW_LNE_end_sequence.0, + ]; + assert_eq!(buf[0] as usize, buf.len() - 4); + + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + let header = LineProgramHeader::parse(rest, DebugLineOffset(0), 4, None, None) + .expect("should parse header ok"); + let program = IncompleteLineProgram { header }; + + let sequences = program.sequences().unwrap().1; + assert_eq!(sequences.len(), 2); + assert_eq!(sequences[0].start, 1); + assert_eq!(sequences[0].end, 4); + assert_eq!(sequences[1].start, 11); + assert_eq!(sequences[1].end, 14); + } +} diff --git a/src/rust/vendor/gimli/src/read/lists.rs b/src/rust/vendor/gimli/src/read/lists.rs new file mode 100644 index 000000000..898a757d3 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/lists.rs @@ -0,0 +1,68 @@ +use crate::common::{Encoding, Format}; +use crate::read::{Error, Reader, Result}; + +#[derive(Debug, Clone, Copy)] +pub(crate) struct ListsHeader { + encoding: Encoding, + #[allow(dead_code)] + offset_entry_count: u32, +} + +impl Default for ListsHeader { + fn default() -> Self { + ListsHeader { + encoding: Encoding { + format: Format::Dwarf32, + version: 5, + address_size: 0, + }, + offset_entry_count: 0, + } + } +} + +impl ListsHeader { + /// Return the serialized size of the table header. + #[allow(dead_code)] + #[inline] + fn size(self) -> u8 { + // initial_length + version + address_size + segment_selector_size + offset_entry_count + ListsHeader::size_for_encoding(self.encoding) + } + + /// Return the serialized size of the table header. + #[inline] + pub(crate) fn size_for_encoding(encoding: Encoding) -> u8 { + // initial_length + version + address_size + segment_selector_size + offset_entry_count + encoding.format.initial_length_size() + 2 + 1 + 1 + 4 + } +} + +// TODO: add an iterator over headers in the appropriate sections section +#[allow(dead_code)] +fn parse_header(input: &mut R) -> Result { + let (length, format) = input.read_initial_length()?; + input.truncate(length)?; + + let version = input.read_u16()?; + if version != 5 { + return Err(Error::UnknownVersion(u64::from(version))); + } + + let address_size = input.read_u8()?; + let segment_selector_size = input.read_u8()?; + if segment_selector_size != 0 { + return Err(Error::UnsupportedSegmentSize); + } + let offset_entry_count = input.read_u32()?; + + let encoding = Encoding { + format, + version, + address_size, + }; + Ok(ListsHeader { + encoding, + offset_entry_count, + }) +} diff --git a/src/rust/vendor/gimli/src/read/loclists.rs b/src/rust/vendor/gimli/src/read/loclists.rs new file mode 100644 index 000000000..5cba675d2 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/loclists.rs @@ -0,0 +1,1627 @@ +use crate::common::{ + DebugAddrBase, DebugAddrIndex, DebugLocListsBase, DebugLocListsIndex, DwarfFileType, Encoding, + LocationListsOffset, SectionId, +}; +use crate::constants; +use crate::endianity::Endianity; +use crate::read::{ + lists::ListsHeader, DebugAddr, EndianSlice, Error, Expression, Range, RawRange, Reader, + ReaderOffset, ReaderOffsetId, Result, Section, +}; + +/// The raw contents of the `.debug_loc` section. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugLoc { + pub(crate) section: R, +} + +impl<'input, Endian> DebugLoc> +where + Endian: Endianity, +{ + /// Construct a new `DebugLoc` instance from the data in the `.debug_loc` + /// section. + /// + /// It is the caller's responsibility to read the `.debug_loc` section and + /// present it as a `&[u8]` slice. That means using some ELF loader on + /// Linux, a Mach-O loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugLoc, LittleEndian}; + /// + /// # let buf = [0x00, 0x01, 0x02, 0x03]; + /// # let read_debug_loc_section_somehow = || &buf; + /// let debug_loc = DebugLoc::new(read_debug_loc_section_somehow(), LittleEndian); + /// ``` + pub fn new(section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(section, endian)) + } +} + +impl Section for DebugLoc { + fn id() -> SectionId { + SectionId::DebugLoc + } + + fn reader(&self) -> &R { + &self.section + } +} + +impl From for DebugLoc { + fn from(section: R) -> Self { + DebugLoc { section } + } +} + +/// The `DebugLocLists` struct represents the DWARF data +/// found in the `.debug_loclists` section. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugLocLists { + section: R, +} + +impl<'input, Endian> DebugLocLists> +where + Endian: Endianity, +{ + /// Construct a new `DebugLocLists` instance from the data in the `.debug_loclists` + /// section. + /// + /// It is the caller's responsibility to read the `.debug_loclists` section and + /// present it as a `&[u8]` slice. That means using some ELF loader on + /// Linux, a Mach-O loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugLocLists, LittleEndian}; + /// + /// # let buf = [0x00, 0x01, 0x02, 0x03]; + /// # let read_debug_loclists_section_somehow = || &buf; + /// let debug_loclists = DebugLocLists::new(read_debug_loclists_section_somehow(), LittleEndian); + /// ``` + pub fn new(section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(section, endian)) + } +} + +impl Section for DebugLocLists { + fn id() -> SectionId { + SectionId::DebugLocLists + } + + fn reader(&self) -> &R { + &self.section + } +} + +impl From for DebugLocLists { + fn from(section: R) -> Self { + DebugLocLists { section } + } +} + +pub(crate) type LocListsHeader = ListsHeader; + +impl DebugLocListsBase +where + Offset: ReaderOffset, +{ + /// Returns a `DebugLocListsBase` with the default value of DW_AT_loclists_base + /// for the given `Encoding` and `DwarfFileType`. + pub fn default_for_encoding_and_file( + encoding: Encoding, + file_type: DwarfFileType, + ) -> DebugLocListsBase { + if encoding.version >= 5 && file_type == DwarfFileType::Dwo { + // In .dwo files, the compiler omits the DW_AT_loclists_base attribute (because there is + // only a single unit in the file) but we must skip past the header, which the attribute + // would normally do for us. + DebugLocListsBase(Offset::from_u8(LocListsHeader::size_for_encoding(encoding))) + } else { + DebugLocListsBase(Offset::from_u8(0)) + } + } +} + +/// The DWARF data found in `.debug_loc` and `.debug_loclists` sections. +#[derive(Debug, Default, Clone, Copy)] +pub struct LocationLists { + debug_loc: DebugLoc, + debug_loclists: DebugLocLists, +} + +impl LocationLists { + /// Construct a new `LocationLists` instance from the data in the `.debug_loc` and + /// `.debug_loclists` sections. + pub fn new(debug_loc: DebugLoc, debug_loclists: DebugLocLists) -> LocationLists { + LocationLists { + debug_loc, + debug_loclists, + } + } +} + +impl LocationLists { + /// Create a `LocationLists` that references the data in `self`. + /// + /// This is useful when `R` implements `Reader` but `T` does not. + /// + /// ## Example Usage + /// + /// ```rust,no_run + /// # let load_section = || unimplemented!(); + /// // Read the DWARF section into a `Vec` with whatever object loader you're using. + /// let owned_section: gimli::LocationLists> = load_section(); + /// // Create a reference to the DWARF section. + /// let section = owned_section.borrow(|section| { + /// gimli::EndianSlice::new(§ion, gimli::LittleEndian) + /// }); + /// ``` + pub fn borrow<'a, F, R>(&'a self, mut borrow: F) -> LocationLists + where + F: FnMut(&'a T) -> R, + { + LocationLists { + debug_loc: borrow(&self.debug_loc.section).into(), + debug_loclists: borrow(&self.debug_loclists.section).into(), + } + } +} + +impl LocationLists { + /// Iterate over the `LocationListEntry`s starting at the given offset. + /// + /// The `unit_encoding` must match the compilation unit that the + /// offset was contained in. + /// + /// The `base_address` should be obtained from the `DW_AT_low_pc` attribute in the + /// `DW_TAG_compile_unit` entry for the compilation unit that contains this location + /// list. + /// + /// Can be [used with + /// `FallibleIterator`](./index.html#using-with-fallibleiterator). + pub fn locations( + &self, + offset: LocationListsOffset, + unit_encoding: Encoding, + base_address: u64, + debug_addr: &DebugAddr, + debug_addr_base: DebugAddrBase, + ) -> Result> { + Ok(LocListIter::new( + self.raw_locations(offset, unit_encoding)?, + base_address, + debug_addr.clone(), + debug_addr_base, + )) + } + + /// Similar to `locations`, but with special handling for .dwo files. + /// This should only been used when this `LocationLists` was loaded from a + /// .dwo file. + pub fn locations_dwo( + &self, + offset: LocationListsOffset, + unit_encoding: Encoding, + base_address: u64, + debug_addr: &DebugAddr, + debug_addr_base: DebugAddrBase, + ) -> Result> { + Ok(LocListIter::new( + self.raw_locations_dwo(offset, unit_encoding)?, + base_address, + debug_addr.clone(), + debug_addr_base, + )) + } + + /// Iterate over the raw `LocationListEntry`s starting at the given offset. + /// + /// The `unit_encoding` must match the compilation unit that the + /// offset was contained in. + /// + /// This iterator does not perform any processing of the location entries, + /// such as handling base addresses. + /// + /// Can be [used with + /// `FallibleIterator`](./index.html#using-with-fallibleiterator). + pub fn raw_locations( + &self, + offset: LocationListsOffset, + unit_encoding: Encoding, + ) -> Result> { + let (mut input, format) = if unit_encoding.version <= 4 { + (self.debug_loc.section.clone(), LocListsFormat::Bare) + } else { + (self.debug_loclists.section.clone(), LocListsFormat::Lle) + }; + input.skip(offset.0)?; + Ok(RawLocListIter::new(input, unit_encoding, format)) + } + + /// Similar to `raw_locations`, but with special handling for .dwo files. + /// This should only been used when this `LocationLists` was loaded from a + /// .dwo file. + pub fn raw_locations_dwo( + &self, + offset: LocationListsOffset, + unit_encoding: Encoding, + ) -> Result> { + let mut input = if unit_encoding.version <= 4 { + // In the GNU split dwarf extension the locations are present in the + // .debug_loc section but are encoded with the DW_LLE values used + // for the DWARF 5 .debug_loclists section. + self.debug_loc.section.clone() + } else { + self.debug_loclists.section.clone() + }; + input.skip(offset.0)?; + Ok(RawLocListIter::new( + input, + unit_encoding, + LocListsFormat::Lle, + )) + } + + /// Returns the `.debug_loclists` offset at the given `base` and `index`. + /// + /// The `base` must be the `DW_AT_loclists_base` value from the compilation unit DIE. + /// This is an offset that points to the first entry following the header. + /// + /// The `index` is the value of a `DW_FORM_loclistx` attribute. + pub fn get_offset( + &self, + unit_encoding: Encoding, + base: DebugLocListsBase, + index: DebugLocListsIndex, + ) -> Result> { + let format = unit_encoding.format; + let input = &mut self.debug_loclists.section.clone(); + input.skip(base.0)?; + input.skip(R::Offset::from_u64( + index.0.into_u64() * u64::from(format.word_size()), + )?)?; + input + .read_offset(format) + .map(|x| LocationListsOffset(base.0 + x)) + } + + /// Call `Reader::lookup_offset_id` for each section, and return the first match. + pub fn lookup_offset_id(&self, id: ReaderOffsetId) -> Option<(SectionId, R::Offset)> { + self.debug_loc + .lookup_offset_id(id) + .or_else(|| self.debug_loclists.lookup_offset_id(id)) + } +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum LocListsFormat { + /// The bare location list format used before DWARF 5. + Bare, + /// The DW_LLE encoded range list format used in DWARF 5 and the non-standard GNU + /// split dwarf extension. + Lle, +} + +/// A raw iterator over a location list. +/// +/// This iterator does not perform any processing of the location entries, +/// such as handling base addresses. +#[derive(Debug)] +pub struct RawLocListIter { + input: R, + encoding: Encoding, + format: LocListsFormat, +} + +/// A raw entry in .debug_loclists. +#[derive(Clone, Debug)] +pub enum RawLocListEntry { + /// A location from DWARF version <= 4. + AddressOrOffsetPair { + /// Start of range. May be an address or an offset. + begin: u64, + /// End of range. May be an address or an offset. + end: u64, + /// expression + data: Expression, + }, + /// DW_LLE_base_address + BaseAddress { + /// base address + addr: u64, + }, + /// DW_LLE_base_addressx + BaseAddressx { + /// base address + addr: DebugAddrIndex, + }, + /// DW_LLE_startx_endx + StartxEndx { + /// start of range + begin: DebugAddrIndex, + /// end of range + end: DebugAddrIndex, + /// expression + data: Expression, + }, + /// DW_LLE_startx_length + StartxLength { + /// start of range + begin: DebugAddrIndex, + /// length of range + length: u64, + /// expression + data: Expression, + }, + /// DW_LLE_offset_pair + OffsetPair { + /// start of range + begin: u64, + /// end of range + end: u64, + /// expression + data: Expression, + }, + /// DW_LLE_default_location + DefaultLocation { + /// expression + data: Expression, + }, + /// DW_LLE_start_end + StartEnd { + /// start of range + begin: u64, + /// end of range + end: u64, + /// expression + data: Expression, + }, + /// DW_LLE_start_length + StartLength { + /// start of range + begin: u64, + /// length of range + length: u64, + /// expression + data: Expression, + }, +} + +fn parse_data(input: &mut R, encoding: Encoding) -> Result> { + if encoding.version >= 5 { + let len = R::Offset::from_u64(input.read_uleb128()?)?; + Ok(Expression(input.split(len)?)) + } else { + // In the GNU split-dwarf extension this is a fixed 2 byte value. + let len = R::Offset::from_u16(input.read_u16()?); + Ok(Expression(input.split(len)?)) + } +} + +impl RawLocListEntry { + /// Parse a location list entry from `.debug_loclists` + fn parse(input: &mut R, encoding: Encoding, format: LocListsFormat) -> Result> { + Ok(match format { + LocListsFormat::Bare => { + let range = RawRange::parse(input, encoding.address_size)?; + if range.is_end() { + None + } else if range.is_base_address(encoding.address_size) { + Some(RawLocListEntry::BaseAddress { addr: range.end }) + } else { + let len = R::Offset::from_u16(input.read_u16()?); + let data = Expression(input.split(len)?); + Some(RawLocListEntry::AddressOrOffsetPair { + begin: range.begin, + end: range.end, + data, + }) + } + } + LocListsFormat::Lle => match constants::DwLle(input.read_u8()?) { + constants::DW_LLE_end_of_list => None, + constants::DW_LLE_base_addressx => Some(RawLocListEntry::BaseAddressx { + addr: DebugAddrIndex(input.read_uleb128().and_then(R::Offset::from_u64)?), + }), + constants::DW_LLE_startx_endx => Some(RawLocListEntry::StartxEndx { + begin: DebugAddrIndex(input.read_uleb128().and_then(R::Offset::from_u64)?), + end: DebugAddrIndex(input.read_uleb128().and_then(R::Offset::from_u64)?), + data: parse_data(input, encoding)?, + }), + constants::DW_LLE_startx_length => Some(RawLocListEntry::StartxLength { + begin: DebugAddrIndex(input.read_uleb128().and_then(R::Offset::from_u64)?), + length: if encoding.version >= 5 { + input.read_uleb128()? + } else { + // In the GNU split-dwarf extension this is a fixed 4 byte value. + input.read_u32()? as u64 + }, + data: parse_data(input, encoding)?, + }), + constants::DW_LLE_offset_pair => Some(RawLocListEntry::OffsetPair { + begin: input.read_uleb128()?, + end: input.read_uleb128()?, + data: parse_data(input, encoding)?, + }), + constants::DW_LLE_default_location => Some(RawLocListEntry::DefaultLocation { + data: parse_data(input, encoding)?, + }), + constants::DW_LLE_base_address => Some(RawLocListEntry::BaseAddress { + addr: input.read_address(encoding.address_size)?, + }), + constants::DW_LLE_start_end => Some(RawLocListEntry::StartEnd { + begin: input.read_address(encoding.address_size)?, + end: input.read_address(encoding.address_size)?, + data: parse_data(input, encoding)?, + }), + constants::DW_LLE_start_length => Some(RawLocListEntry::StartLength { + begin: input.read_address(encoding.address_size)?, + length: input.read_uleb128()?, + data: parse_data(input, encoding)?, + }), + _ => { + return Err(Error::InvalidAddressRange); + } + }, + }) + } +} + +impl RawLocListIter { + /// Construct a `RawLocListIter`. + fn new(input: R, encoding: Encoding, format: LocListsFormat) -> RawLocListIter { + RawLocListIter { + input, + encoding, + format, + } + } + + /// Advance the iterator to the next location. + pub fn next(&mut self) -> Result>> { + if self.input.is_empty() { + return Ok(None); + } + + match RawLocListEntry::parse(&mut self.input, self.encoding, self.format) { + Ok(entry) => { + if entry.is_none() { + self.input.empty(); + } + Ok(entry) + } + Err(e) => { + self.input.empty(); + Err(e) + } + } + } +} + +#[cfg(feature = "fallible-iterator")] +impl fallible_iterator::FallibleIterator for RawLocListIter { + type Item = RawLocListEntry; + type Error = Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + RawLocListIter::next(self) + } +} + +/// An iterator over a location list. +/// +/// This iterator internally handles processing of base address selection entries +/// and list end entries. Thus, it only returns location entries that are valid +/// and already adjusted for the base address. +#[derive(Debug)] +pub struct LocListIter { + raw: RawLocListIter, + base_address: u64, + debug_addr: DebugAddr, + debug_addr_base: DebugAddrBase, +} + +impl LocListIter { + /// Construct a `LocListIter`. + fn new( + raw: RawLocListIter, + base_address: u64, + debug_addr: DebugAddr, + debug_addr_base: DebugAddrBase, + ) -> LocListIter { + LocListIter { + raw, + base_address, + debug_addr, + debug_addr_base, + } + } + + #[inline] + fn get_address(&self, index: DebugAddrIndex) -> Result { + self.debug_addr + .get_address(self.raw.encoding.address_size, self.debug_addr_base, index) + } + + /// Advance the iterator to the next location. + pub fn next(&mut self) -> Result>> { + loop { + let raw_loc = match self.raw.next()? { + Some(loc) => loc, + None => return Ok(None), + }; + + let loc = self.convert_raw(raw_loc)?; + if loc.is_some() { + return Ok(loc); + } + } + } + + /// Return the next raw location. + /// + /// The raw location should be passed to `convert_raw`. + #[doc(hidden)] + pub fn next_raw(&mut self) -> Result>> { + self.raw.next() + } + + /// Convert a raw location into a location, and update the state of the iterator. + /// + /// The raw location should have been obtained from `next_raw`. + #[doc(hidden)] + pub fn convert_raw( + &mut self, + raw_loc: RawLocListEntry, + ) -> Result>> { + let mask = !0 >> (64 - self.raw.encoding.address_size * 8); + let tombstone = if self.raw.encoding.version <= 4 { + mask - 1 + } else { + mask + }; + + let (range, data) = match raw_loc { + RawLocListEntry::BaseAddress { addr } => { + self.base_address = addr; + return Ok(None); + } + RawLocListEntry::BaseAddressx { addr } => { + self.base_address = self.get_address(addr)?; + return Ok(None); + } + RawLocListEntry::StartxEndx { begin, end, data } => { + let begin = self.get_address(begin)?; + let end = self.get_address(end)?; + (Range { begin, end }, data) + } + RawLocListEntry::StartxLength { + begin, + length, + data, + } => { + let begin = self.get_address(begin)?; + let end = begin.wrapping_add(length) & mask; + (Range { begin, end }, data) + } + RawLocListEntry::DefaultLocation { data } => ( + Range { + begin: 0, + end: u64::max_value(), + }, + data, + ), + RawLocListEntry::AddressOrOffsetPair { begin, end, data } + | RawLocListEntry::OffsetPair { begin, end, data } => { + if self.base_address == tombstone { + return Ok(None); + } + let mut range = Range { begin, end }; + range.add_base_address(self.base_address, self.raw.encoding.address_size); + (range, data) + } + RawLocListEntry::StartEnd { begin, end, data } => (Range { begin, end }, data), + RawLocListEntry::StartLength { + begin, + length, + data, + } => { + let end = begin.wrapping_add(length) & mask; + (Range { begin, end }, data) + } + }; + + if range.begin == tombstone { + return Ok(None); + } + + if range.begin > range.end { + self.raw.input.empty(); + return Err(Error::InvalidLocationAddressRange); + } + + Ok(Some(LocationListEntry { range, data })) + } +} + +#[cfg(feature = "fallible-iterator")] +impl fallible_iterator::FallibleIterator for LocListIter { + type Item = LocationListEntry; + type Error = Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + LocListIter::next(self) + } +} + +/// A location list entry from the `.debug_loc` or `.debug_loclists` sections. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct LocationListEntry { + /// The address range that this location is valid for. + pub range: Range, + + /// The data containing a single location description. + pub data: Expression, +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::common::Format; + use crate::endianity::LittleEndian; + use crate::read::{EndianSlice, Range}; + use crate::test_util::GimliSectionMethods; + use test_assembler::{Endian, Label, LabelMaker, Section}; + + #[test] + fn test_loclists_32() { + let tombstone = !0u32; + let encoding = Encoding { + format: Format::Dwarf32, + version: 5, + address_size: 4, + }; + + let section = Section::with_endian(Endian::Little) + .L32(0x0300_0000) + .L32(0x0301_0300) + .L32(0x0301_0400) + .L32(0x0301_0500) + .L32(tombstone) + .L32(0x0301_0600); + let buf = section.get_contents().unwrap(); + let debug_addr = &DebugAddr::from(EndianSlice::new(&buf, LittleEndian)); + let debug_addr_base = DebugAddrBase(0); + + let start = Label::new(); + let first = Label::new(); + let size = Label::new(); + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + // Header + .mark(&start) + .L32(&size) + .L16(encoding.version) + .L8(encoding.address_size) + .L8(0) + .L32(0) + .mark(&first) + // OffsetPair + .L8(4).uleb(0x10200).uleb(0x10300).uleb(4).L32(2) + // A base address selection followed by an OffsetPair. + .L8(6).L32(0x0200_0000) + .L8(4).uleb(0x10400).uleb(0x10500).uleb(4).L32(3) + // An empty OffsetPair followed by a normal OffsetPair. + .L8(4).uleb(0x10600).uleb(0x10600).uleb(4).L32(4) + .L8(4).uleb(0x10800).uleb(0x10900).uleb(4).L32(5) + // A StartEnd + .L8(7).L32(0x201_0a00).L32(0x201_0b00).uleb(4).L32(6) + // A StartLength + .L8(8).L32(0x201_0c00).uleb(0x100).uleb(4).L32(7) + // An OffsetPair that starts at 0. + .L8(4).uleb(0).uleb(1).uleb(4).L32(8) + // An OffsetPair that ends at -1. + .L8(6).L32(0) + .L8(4).uleb(0).uleb(0xffff_ffff).uleb(4).L32(9) + // A DefaultLocation + .L8(5).uleb(4).L32(10) + // A BaseAddressx + OffsetPair + .L8(1).uleb(0) + .L8(4).uleb(0x10100).uleb(0x10200).uleb(4).L32(11) + // A StartxEndx + .L8(2).uleb(1).uleb(2).uleb(4).L32(12) + // A StartxLength + .L8(3).uleb(3).uleb(0x100).uleb(4).L32(13) + + // Tombstone entries, all of which should be ignored. + // A BaseAddressx that is a tombstone. + .L8(1).uleb(4) + .L8(4).uleb(0x11100).uleb(0x11200).uleb(4).L32(20) + // A BaseAddress that is a tombstone. + .L8(6).L32(tombstone) + .L8(4).uleb(0x11300).uleb(0x11400).uleb(4).L32(21) + // A StartxEndx that is a tombstone. + .L8(2).uleb(4).uleb(5).uleb(4).L32(22) + // A StartxLength that is a tombstone. + .L8(3).uleb(4).uleb(0x100).uleb(4).L32(23) + // A StartEnd that is a tombstone. + .L8(7).L32(tombstone).L32(0x201_1500).uleb(4).L32(24) + // A StartLength that is a tombstone. + .L8(8).L32(tombstone).uleb(0x100).uleb(4).L32(25) + // A StartEnd (not ignored) + .L8(7).L32(0x201_1600).L32(0x201_1700).uleb(4).L32(26) + + // A range end. + .L8(0) + // Some extra data. + .L32(0xffff_ffff); + size.set_const((§ion.here() - &start - 4) as u64); + + let buf = section.get_contents().unwrap(); + let debug_loc = DebugLoc::new(&[], LittleEndian); + let debug_loclists = DebugLocLists::new(&buf, LittleEndian); + let loclists = LocationLists::new(debug_loc, debug_loclists); + let offset = LocationListsOffset((&first - &start) as usize); + let mut locations = loclists + .locations(offset, encoding, 0x0100_0000, debug_addr, debug_addr_base) + .unwrap(); + + // A normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0101_0200, + end: 0x0101_0300, + }, + data: Expression(EndianSlice::new(&[2, 0, 0, 0], LittleEndian)), + })) + ); + + // A base address selection followed by a normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0400, + end: 0x0201_0500, + }, + data: Expression(EndianSlice::new(&[3, 0, 0, 0], LittleEndian)), + })) + ); + + // An empty location range followed by a normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0600, + end: 0x0201_0600, + }, + data: Expression(EndianSlice::new(&[4, 0, 0, 0], LittleEndian)), + })) + ); + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0800, + end: 0x0201_0900, + }, + data: Expression(EndianSlice::new(&[5, 0, 0, 0], LittleEndian)), + })) + ); + + // A normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0a00, + end: 0x0201_0b00, + }, + data: Expression(EndianSlice::new(&[6, 0, 0, 0], LittleEndian)), + })) + ); + + // A normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0c00, + end: 0x0201_0d00, + }, + data: Expression(EndianSlice::new(&[7, 0, 0, 0], LittleEndian)), + })) + ); + + // A location range that starts at 0. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0200_0000, + end: 0x0200_0001, + }, + data: Expression(EndianSlice::new(&[8, 0, 0, 0], LittleEndian)), + })) + ); + + // A location range that ends at -1. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0000_0000, + end: 0xffff_ffff, + }, + data: Expression(EndianSlice::new(&[9, 0, 0, 0], LittleEndian)), + })) + ); + + // A DefaultLocation. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0, + end: u64::max_value(), + }, + data: Expression(EndianSlice::new(&[10, 0, 0, 0], LittleEndian)), + })) + ); + + // A BaseAddressx + OffsetPair + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0301_0100, + end: 0x0301_0200, + }, + data: Expression(EndianSlice::new(&[11, 0, 0, 0], LittleEndian)), + })) + ); + + // A StartxEndx + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0301_0300, + end: 0x0301_0400, + }, + data: Expression(EndianSlice::new(&[12, 0, 0, 0], LittleEndian)), + })) + ); + + // A StartxLength + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0301_0500, + end: 0x0301_0600, + }, + data: Expression(EndianSlice::new(&[13, 0, 0, 0], LittleEndian)), + })) + ); + + // A StartEnd location following the tombstones + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_1600, + end: 0x0201_1700, + }, + data: Expression(EndianSlice::new(&[26, 0, 0, 0], LittleEndian)), + })) + ); + + // A location list end. + assert_eq!(locations.next(), Ok(None)); + + // An offset at the end of buf. + let mut locations = loclists + .locations( + LocationListsOffset(buf.len()), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) + .unwrap(); + assert_eq!(locations.next(), Ok(None)); + } + + #[test] + fn test_loclists_64() { + let tombstone = !0u64; + let encoding = Encoding { + format: Format::Dwarf64, + version: 5, + address_size: 8, + }; + + let section = Section::with_endian(Endian::Little) + .L64(0x0300_0000) + .L64(0x0301_0300) + .L64(0x0301_0400) + .L64(0x0301_0500) + .L64(tombstone) + .L64(0x0301_0600); + let buf = section.get_contents().unwrap(); + let debug_addr = &DebugAddr::from(EndianSlice::new(&buf, LittleEndian)); + let debug_addr_base = DebugAddrBase(0); + + let start = Label::new(); + let first = Label::new(); + let size = Label::new(); + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + // Header + .mark(&start) + .L32(0xffff_ffff) + .L64(&size) + .L16(encoding.version) + .L8(encoding.address_size) + .L8(0) + .L32(0) + .mark(&first) + // OffsetPair + .L8(4).uleb(0x10200).uleb(0x10300).uleb(4).L32(2) + // A base address selection followed by an OffsetPair. + .L8(6).L64(0x0200_0000) + .L8(4).uleb(0x10400).uleb(0x10500).uleb(4).L32(3) + // An empty OffsetPair followed by a normal OffsetPair. + .L8(4).uleb(0x10600).uleb(0x10600).uleb(4).L32(4) + .L8(4).uleb(0x10800).uleb(0x10900).uleb(4).L32(5) + // A StartEnd + .L8(7).L64(0x201_0a00).L64(0x201_0b00).uleb(4).L32(6) + // A StartLength + .L8(8).L64(0x201_0c00).uleb(0x100).uleb(4).L32(7) + // An OffsetPair that starts at 0. + .L8(4).uleb(0).uleb(1).uleb(4).L32(8) + // An OffsetPair that ends at -1. + .L8(6).L64(0) + .L8(4).uleb(0).uleb(0xffff_ffff).uleb(4).L32(9) + // A DefaultLocation + .L8(5).uleb(4).L32(10) + // A BaseAddressx + OffsetPair + .L8(1).uleb(0) + .L8(4).uleb(0x10100).uleb(0x10200).uleb(4).L32(11) + // A StartxEndx + .L8(2).uleb(1).uleb(2).uleb(4).L32(12) + // A StartxLength + .L8(3).uleb(3).uleb(0x100).uleb(4).L32(13) + + // Tombstone entries, all of which should be ignored. + // A BaseAddressx that is a tombstone. + .L8(1).uleb(4) + .L8(4).uleb(0x11100).uleb(0x11200).uleb(4).L32(20) + // A BaseAddress that is a tombstone. + .L8(6).L64(tombstone) + .L8(4).uleb(0x11300).uleb(0x11400).uleb(4).L32(21) + // A StartxEndx that is a tombstone. + .L8(2).uleb(4).uleb(5).uleb(4).L32(22) + // A StartxLength that is a tombstone. + .L8(3).uleb(4).uleb(0x100).uleb(4).L32(23) + // A StartEnd that is a tombstone. + .L8(7).L64(tombstone).L64(0x201_1500).uleb(4).L32(24) + // A StartLength that is a tombstone. + .L8(8).L64(tombstone).uleb(0x100).uleb(4).L32(25) + // A StartEnd (not ignored) + .L8(7).L64(0x201_1600).L64(0x201_1700).uleb(4).L32(26) + + // A range end. + .L8(0) + // Some extra data. + .L32(0xffff_ffff); + size.set_const((§ion.here() - &start - 12) as u64); + + let buf = section.get_contents().unwrap(); + let debug_loc = DebugLoc::new(&[], LittleEndian); + let debug_loclists = DebugLocLists::new(&buf, LittleEndian); + let loclists = LocationLists::new(debug_loc, debug_loclists); + let offset = LocationListsOffset((&first - &start) as usize); + let mut locations = loclists + .locations(offset, encoding, 0x0100_0000, debug_addr, debug_addr_base) + .unwrap(); + + // A normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0101_0200, + end: 0x0101_0300, + }, + data: Expression(EndianSlice::new(&[2, 0, 0, 0], LittleEndian)), + })) + ); + + // A base address selection followed by a normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0400, + end: 0x0201_0500, + }, + data: Expression(EndianSlice::new(&[3, 0, 0, 0], LittleEndian)), + })) + ); + + // An empty location range followed by a normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0600, + end: 0x0201_0600, + }, + data: Expression(EndianSlice::new(&[4, 0, 0, 0], LittleEndian)), + })) + ); + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0800, + end: 0x0201_0900, + }, + data: Expression(EndianSlice::new(&[5, 0, 0, 0], LittleEndian)), + })) + ); + + // A normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0a00, + end: 0x0201_0b00, + }, + data: Expression(EndianSlice::new(&[6, 0, 0, 0], LittleEndian)), + })) + ); + + // A normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0c00, + end: 0x0201_0d00, + }, + data: Expression(EndianSlice::new(&[7, 0, 0, 0], LittleEndian)), + })) + ); + + // A location range that starts at 0. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0200_0000, + end: 0x0200_0001, + }, + data: Expression(EndianSlice::new(&[8, 0, 0, 0], LittleEndian)), + })) + ); + + // A location range that ends at -1. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0000_0000, + end: 0xffff_ffff, + }, + data: Expression(EndianSlice::new(&[9, 0, 0, 0], LittleEndian)), + })) + ); + + // A DefaultLocation. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0, + end: u64::max_value(), + }, + data: Expression(EndianSlice::new(&[10, 0, 0, 0], LittleEndian)), + })) + ); + + // A BaseAddressx + OffsetPair + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0301_0100, + end: 0x0301_0200, + }, + data: Expression(EndianSlice::new(&[11, 0, 0, 0], LittleEndian)), + })) + ); + + // A StartxEndx + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0301_0300, + end: 0x0301_0400, + }, + data: Expression(EndianSlice::new(&[12, 0, 0, 0], LittleEndian)), + })) + ); + + // A StartxLength + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0301_0500, + end: 0x0301_0600, + }, + data: Expression(EndianSlice::new(&[13, 0, 0, 0], LittleEndian)), + })) + ); + + // A StartEnd location following the tombstones + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_1600, + end: 0x0201_1700, + }, + data: Expression(EndianSlice::new(&[26, 0, 0, 0], LittleEndian)), + })) + ); + + // A location list end. + assert_eq!(locations.next(), Ok(None)); + + // An offset at the end of buf. + let mut locations = loclists + .locations( + LocationListsOffset(buf.len()), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) + .unwrap(); + assert_eq!(locations.next(), Ok(None)); + } + + #[test] + fn test_location_list_32() { + let tombstone = !0u32 - 1; + let start = Label::new(); + let first = Label::new(); + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + // A location before the offset. + .mark(&start) + .L32(0x10000).L32(0x10100).L16(4).L32(1) + .mark(&first) + // A normal location. + .L32(0x10200).L32(0x10300).L16(4).L32(2) + // A base address selection followed by a normal location. + .L32(0xffff_ffff).L32(0x0200_0000) + .L32(0x10400).L32(0x10500).L16(4).L32(3) + // An empty location range followed by a normal location. + .L32(0x10600).L32(0x10600).L16(4).L32(4) + .L32(0x10800).L32(0x10900).L16(4).L32(5) + // A location range that starts at 0. + .L32(0).L32(1).L16(4).L32(6) + // A location range that ends at -1. + .L32(0xffff_ffff).L32(0x0000_0000) + .L32(0).L32(0xffff_ffff).L16(4).L32(7) + // A normal location with tombstone. + .L32(tombstone).L32(tombstone).L16(4).L32(8) + // A base address selection with tombstone followed by a normal location. + .L32(0xffff_ffff).L32(tombstone) + .L32(0x10a00).L32(0x10b00).L16(4).L32(9) + // A location list end. + .L32(0).L32(0) + // Some extra data. + .L32(0); + + let buf = section.get_contents().unwrap(); + let debug_loc = DebugLoc::new(&buf, LittleEndian); + let debug_loclists = DebugLocLists::new(&[], LittleEndian); + let loclists = LocationLists::new(debug_loc, debug_loclists); + let offset = LocationListsOffset((&first - &start) as usize); + let debug_addr = &DebugAddr::from(EndianSlice::new(&[], LittleEndian)); + let debug_addr_base = DebugAddrBase(0); + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let mut locations = loclists + .locations(offset, encoding, 0x0100_0000, debug_addr, debug_addr_base) + .unwrap(); + + // A normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0101_0200, + end: 0x0101_0300, + }, + data: Expression(EndianSlice::new(&[2, 0, 0, 0], LittleEndian)), + })) + ); + + // A base address selection followed by a normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0400, + end: 0x0201_0500, + }, + data: Expression(EndianSlice::new(&[3, 0, 0, 0], LittleEndian)), + })) + ); + + // An empty location range followed by a normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0600, + end: 0x0201_0600, + }, + data: Expression(EndianSlice::new(&[4, 0, 0, 0], LittleEndian)), + })) + ); + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0800, + end: 0x0201_0900, + }, + data: Expression(EndianSlice::new(&[5, 0, 0, 0], LittleEndian)), + })) + ); + + // A location range that starts at 0. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0200_0000, + end: 0x0200_0001, + }, + data: Expression(EndianSlice::new(&[6, 0, 0, 0], LittleEndian)), + })) + ); + + // A location range that ends at -1. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0000_0000, + end: 0xffff_ffff, + }, + data: Expression(EndianSlice::new(&[7, 0, 0, 0], LittleEndian)), + })) + ); + + // A location list end. + assert_eq!(locations.next(), Ok(None)); + + // An offset at the end of buf. + let mut locations = loclists + .locations( + LocationListsOffset(buf.len()), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) + .unwrap(); + assert_eq!(locations.next(), Ok(None)); + } + + #[test] + fn test_location_list_64() { + let tombstone = !0u64 - 1; + let start = Label::new(); + let first = Label::new(); + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + // A location before the offset. + .mark(&start) + .L64(0x10000).L64(0x10100).L16(4).L32(1) + .mark(&first) + // A normal location. + .L64(0x10200).L64(0x10300).L16(4).L32(2) + // A base address selection followed by a normal location. + .L64(0xffff_ffff_ffff_ffff).L64(0x0200_0000) + .L64(0x10400).L64(0x10500).L16(4).L32(3) + // An empty location range followed by a normal location. + .L64(0x10600).L64(0x10600).L16(4).L32(4) + .L64(0x10800).L64(0x10900).L16(4).L32(5) + // A location range that starts at 0. + .L64(0).L64(1).L16(4).L32(6) + // A location range that ends at -1. + .L64(0xffff_ffff_ffff_ffff).L64(0x0000_0000) + .L64(0).L64(0xffff_ffff_ffff_ffff).L16(4).L32(7) + // A normal location with tombstone. + .L64(tombstone).L64(tombstone).L16(4).L32(8) + // A base address selection with tombstone followed by a normal location. + .L64(0xffff_ffff_ffff_ffff).L64(tombstone) + .L64(0x10a00).L64(0x10b00).L16(4).L32(9) + // A location list end. + .L64(0).L64(0) + // Some extra data. + .L64(0); + + let buf = section.get_contents().unwrap(); + let debug_loc = DebugLoc::new(&buf, LittleEndian); + let debug_loclists = DebugLocLists::new(&[], LittleEndian); + let loclists = LocationLists::new(debug_loc, debug_loclists); + let offset = LocationListsOffset((&first - &start) as usize); + let debug_addr = &DebugAddr::from(EndianSlice::new(&[], LittleEndian)); + let debug_addr_base = DebugAddrBase(0); + let encoding = Encoding { + format: Format::Dwarf64, + version: 4, + address_size: 8, + }; + let mut locations = loclists + .locations(offset, encoding, 0x0100_0000, debug_addr, debug_addr_base) + .unwrap(); + + // A normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0101_0200, + end: 0x0101_0300, + }, + data: Expression(EndianSlice::new(&[2, 0, 0, 0], LittleEndian)), + })) + ); + + // A base address selection followed by a normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0400, + end: 0x0201_0500, + }, + data: Expression(EndianSlice::new(&[3, 0, 0, 0], LittleEndian)), + })) + ); + + // An empty location range followed by a normal location. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0600, + end: 0x0201_0600, + }, + data: Expression(EndianSlice::new(&[4, 0, 0, 0], LittleEndian)), + })) + ); + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0201_0800, + end: 0x0201_0900, + }, + data: Expression(EndianSlice::new(&[5, 0, 0, 0], LittleEndian)), + })) + ); + + // A location range that starts at 0. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0200_0000, + end: 0x0200_0001, + }, + data: Expression(EndianSlice::new(&[6, 0, 0, 0], LittleEndian)), + })) + ); + + // A location range that ends at -1. + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0, + end: 0xffff_ffff_ffff_ffff, + }, + data: Expression(EndianSlice::new(&[7, 0, 0, 0], LittleEndian)), + })) + ); + + // A location list end. + assert_eq!(locations.next(), Ok(None)); + + // An offset at the end of buf. + let mut locations = loclists + .locations( + LocationListsOffset(buf.len()), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) + .unwrap(); + assert_eq!(locations.next(), Ok(None)); + } + + #[test] + fn test_locations_invalid() { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + // An invalid location range. + .L32(0x20000).L32(0x10000).L16(4).L32(1) + // An invalid range after wrapping. + .L32(0x20000).L32(0xff01_0000).L16(4).L32(2); + + let buf = section.get_contents().unwrap(); + let debug_loc = DebugLoc::new(&buf, LittleEndian); + let debug_loclists = DebugLocLists::new(&[], LittleEndian); + let loclists = LocationLists::new(debug_loc, debug_loclists); + let debug_addr = &DebugAddr::from(EndianSlice::new(&[], LittleEndian)); + let debug_addr_base = DebugAddrBase(0); + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + + // An invalid location range. + let mut locations = loclists + .locations( + LocationListsOffset(0x0), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) + .unwrap(); + assert_eq!(locations.next(), Err(Error::InvalidLocationAddressRange)); + + // An invalid location range after wrapping. + let mut locations = loclists + .locations( + LocationListsOffset(14), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) + .unwrap(); + assert_eq!(locations.next(), Err(Error::InvalidLocationAddressRange)); + + // An invalid offset. + match loclists.locations( + LocationListsOffset(buf.len() + 1), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) { + Err(Error::UnexpectedEof(_)) => {} + otherwise => panic!("Unexpected result: {:?}", otherwise), + } + } + + #[test] + fn test_get_offset() { + for format in vec![Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version: 5, + address_size: 4, + }; + + let zero = Label::new(); + let length = Label::new(); + let start = Label::new(); + let first = Label::new(); + let end = Label::new(); + let mut section = Section::with_endian(Endian::Little) + .mark(&zero) + .initial_length(format, &length, &start) + .D16(encoding.version) + .D8(encoding.address_size) + .D8(0) + .D32(20) + .mark(&first); + for i in 0..20 { + section = section.word(format.word_size(), 1000 + i); + } + section = section.mark(&end); + length.set_const((&end - &start) as u64); + let section = section.get_contents().unwrap(); + + let debug_loc = DebugLoc::from(EndianSlice::new(&[], LittleEndian)); + let debug_loclists = DebugLocLists::from(EndianSlice::new(§ion, LittleEndian)); + let locations = LocationLists::new(debug_loc, debug_loclists); + + let base = DebugLocListsBase((&first - &zero) as usize); + assert_eq!( + locations.get_offset(encoding, base, DebugLocListsIndex(0)), + Ok(LocationListsOffset(base.0 + 1000)) + ); + assert_eq!( + locations.get_offset(encoding, base, DebugLocListsIndex(19)), + Ok(LocationListsOffset(base.0 + 1019)) + ); + } + } + + #[test] + fn test_loclists_gnu_v4_split_dwarf() { + #[rustfmt::skip] + let buf = [ + 0x03, // DW_LLE_startx_length + 0x00, // ULEB encoded b7 + 0x08, 0x00, 0x00, 0x00, // Fixed 4 byte length of 8 + 0x03, 0x00, // Fixed two byte length of the location + 0x11, 0x00, // DW_OP_constu 0 + 0x9f, // DW_OP_stack_value + // Padding data + //0x99, 0x99, 0x99, 0x99 + ]; + let data_buf = [0x11, 0x00, 0x9f]; + let expected_data = EndianSlice::new(&data_buf, LittleEndian); + let debug_loc = DebugLoc::new(&buf, LittleEndian); + let debug_loclists = DebugLocLists::new(&[], LittleEndian); + let loclists = LocationLists::new(debug_loc, debug_loclists); + let debug_addr = + &DebugAddr::from(EndianSlice::new(&[0x01, 0x02, 0x03, 0x04], LittleEndian)); + let debug_addr_base = DebugAddrBase(0); + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + + // An invalid location range. + let mut locations = loclists + .locations_dwo( + LocationListsOffset(0x0), + encoding, + 0, + debug_addr, + debug_addr_base, + ) + .unwrap(); + assert_eq!( + locations.next(), + Ok(Some(LocationListEntry { + range: Range { + begin: 0x0403_0201, + end: 0x0403_0209 + }, + data: Expression(expected_data), + })) + ); + } +} diff --git a/src/rust/vendor/gimli/src/read/lookup.rs b/src/rust/vendor/gimli/src/read/lookup.rs new file mode 100644 index 000000000..1d082f24f --- /dev/null +++ b/src/rust/vendor/gimli/src/read/lookup.rs @@ -0,0 +1,202 @@ +use core::marker::PhantomData; + +use crate::common::{DebugInfoOffset, Format}; +use crate::read::{parse_debug_info_offset, Error, Reader, ReaderOffset, Result, UnitOffset}; + +// The various "Accelerated Access" sections (DWARF standard v4 Section 6.1) all have +// similar structures. They consist of a header with metadata and an offset into the +// .debug_info section for the entire compilation unit, and a series +// of following entries that list addresses (for .debug_aranges) or names +// (for .debug_pubnames and .debug_pubtypes) that are covered. +// +// Because these three tables all have similar structures, we abstract out some of +// the parsing mechanics. + +pub trait LookupParser { + /// The type of the produced header. + type Header; + /// The type of the produced entry. + type Entry; + + /// Parse a header from `input`. Returns a tuple of `input` sliced to contain just the entries + /// corresponding to this header (without the header itself), and the parsed representation of + /// the header itself. + fn parse_header(input: &mut R) -> Result<(R, Self::Header)>; + + /// Parse a single entry from `input`. Returns either a parsed representation of the entry + /// or None if `input` is exhausted. + fn parse_entry(input: &mut R, header: &Self::Header) -> Result>; +} + +#[derive(Clone, Debug)] +pub struct DebugLookup +where + R: Reader, + Parser: LookupParser, +{ + input_buffer: R, + phantom: PhantomData, +} + +impl From for DebugLookup +where + R: Reader, + Parser: LookupParser, +{ + fn from(input_buffer: R) -> Self { + DebugLookup { + input_buffer, + phantom: PhantomData, + } + } +} + +impl DebugLookup +where + R: Reader, + Parser: LookupParser, +{ + pub fn items(&self) -> LookupEntryIter { + LookupEntryIter { + current_set: None, + remaining_input: self.input_buffer.clone(), + } + } + + pub fn reader(&self) -> &R { + &self.input_buffer + } +} + +#[derive(Clone, Debug)] +pub struct LookupEntryIter +where + R: Reader, + Parser: LookupParser, +{ + current_set: Option<(R, Parser::Header)>, // Only none at the very beginning and end. + remaining_input: R, +} + +impl LookupEntryIter +where + R: Reader, + Parser: LookupParser, +{ + /// Advance the iterator and return the next entry. + /// + /// Returns the newly parsed entry as `Ok(Some(Parser::Entry))`. Returns + /// `Ok(None)` when iteration is complete and all entries have already been + /// parsed and yielded. If an error occurs while parsing the next entry, + /// then this error is returned as `Err(e)`, and all subsequent calls return + /// `Ok(None)`. + /// + /// Can be [used with `FallibleIterator`](./index.html#using-with-fallibleiterator). + pub fn next(&mut self) -> Result> { + loop { + if let Some((ref mut input, ref header)) = self.current_set { + if !input.is_empty() { + match Parser::parse_entry(input, header) { + Ok(Some(entry)) => return Ok(Some(entry)), + Ok(None) => {} + Err(e) => { + input.empty(); + self.remaining_input.empty(); + return Err(e); + } + } + } + } + if self.remaining_input.is_empty() { + self.current_set = None; + return Ok(None); + } + match Parser::parse_header(&mut self.remaining_input) { + Ok(set) => { + self.current_set = Some(set); + } + Err(e) => { + self.current_set = None; + self.remaining_input.empty(); + return Err(e); + } + } + } + } +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct PubStuffHeader { + format: Format, + length: T, + version: u16, + unit_offset: DebugInfoOffset, + unit_length: T, +} + +pub trait PubStuffEntry { + fn new( + die_offset: UnitOffset, + name: R, + unit_header_offset: DebugInfoOffset, + ) -> Self; +} + +#[derive(Clone, Debug)] +pub struct PubStuffParser +where + R: Reader, + Entry: PubStuffEntry, +{ + // This struct is never instantiated. + phantom: PhantomData<(R, Entry)>, +} + +impl LookupParser for PubStuffParser +where + R: Reader, + Entry: PubStuffEntry, +{ + type Header = PubStuffHeader; + type Entry = Entry; + + /// Parse an pubthings set header. Returns a tuple of the + /// pubthings to be parsed for this set, and the newly created PubThingHeader struct. + fn parse_header(input: &mut R) -> Result<(R, Self::Header)> { + let (length, format) = input.read_initial_length()?; + let mut rest = input.split(length)?; + + let version = rest.read_u16()?; + if version != 2 { + return Err(Error::UnknownVersion(u64::from(version))); + } + + let unit_offset = parse_debug_info_offset(&mut rest, format)?; + let unit_length = rest.read_length(format)?; + + let header = PubStuffHeader { + format, + length, + version, + unit_offset, + unit_length, + }; + Ok((rest, header)) + } + + /// Parse a single pubthing. Return `None` for the null pubthing, `Some` for an actual pubthing. + fn parse_entry(input: &mut R, header: &Self::Header) -> Result> { + let offset = input.read_offset(header.format)?; + if offset.into_u64() == 0 { + input.empty(); + Ok(None) + } else { + let name = input.read_null_terminated_slice()?; + Ok(Some(Self::Entry::new( + UnitOffset(offset), + name, + header.unit_offset, + ))) + } + } +} diff --git a/src/rust/vendor/gimli/src/read/mod.rs b/src/rust/vendor/gimli/src/read/mod.rs new file mode 100644 index 000000000..2ad7f6aea --- /dev/null +++ b/src/rust/vendor/gimli/src/read/mod.rs @@ -0,0 +1,827 @@ +//! Read DWARF debugging information. +//! +//! * [Example Usage](#example-usage) +//! * [API Structure](#api-structure) +//! * [Using with `FallibleIterator`](#using-with-fallibleiterator) +//! +//! ## Example Usage +//! +//! Print out all of the functions in the debuggee program: +//! +//! ```rust,no_run +//! # fn example() -> Result<(), gimli::Error> { +//! # type R = gimli::EndianSlice<'static, gimli::LittleEndian>; +//! # let get_file_section_reader = |name| -> Result { unimplemented!() }; +//! # let get_sup_file_section_reader = |name| -> Result { unimplemented!() }; +//! // Read the DWARF sections with whatever object loader you're using. +//! // These closures should return a `Reader` instance (e.g. `EndianSlice`). +//! let loader = |section: gimli::SectionId| { get_file_section_reader(section.name()) }; +//! let sup_loader = |section: gimli::SectionId| { get_sup_file_section_reader(section.name()) }; +//! let mut dwarf = gimli::Dwarf::load(loader)?; +//! dwarf.load_sup(sup_loader)?; +//! +//! // Iterate over all compilation units. +//! let mut iter = dwarf.units(); +//! while let Some(header) = iter.next()? { +//! // Parse the abbreviations and other information for this compilation unit. +//! let unit = dwarf.unit(header)?; +//! +//! // Iterate over all of this compilation unit's entries. +//! let mut entries = unit.entries(); +//! while let Some((_, entry)) = entries.next_dfs()? { +//! // If we find an entry for a function, print it. +//! if entry.tag() == gimli::DW_TAG_subprogram { +//! println!("Found a function: {:?}", entry); +//! } +//! } +//! } +//! # unreachable!() +//! # } +//! ``` +//! +//! Full example programs: +//! +//! * [A simple parser](https://github.com/gimli-rs/gimli/blob/master/crates/examples/src/bin/simple.rs) +//! +//! * [A `dwarfdump` +//! clone](https://github.com/gimli-rs/gimli/blob/master/crates/examples/src/bin/dwarfdump.rs) +//! +//! * [An `addr2line` clone](https://github.com/gimli-rs/addr2line) +//! +//! * [`ddbug`](https://github.com/gimli-rs/ddbug), a utility giving insight into +//! code generation by making debugging information readable +//! +//! * [`dwprod`](https://github.com/fitzgen/dwprod), a tiny utility to list the +//! compilers used to create each compilation unit within a shared library or +//! executable (via `DW_AT_producer`) +//! +//! * [`dwarf-validate`](https://github.com/gimli-rs/gimli/blob/master/crates/examples/src/bin/dwarf-validate.rs), +//! a program to validate the integrity of some DWARF and its references +//! between sections and compilation units. +//! +//! ## API Structure +//! +//! * Basic familiarity with DWARF is assumed. +//! +//! * The [`Dwarf`](./struct.Dwarf.html) type contains the commonly used DWARF +//! sections. It has methods that simplify access to debugging data that spans +//! multiple sections. Use of this type is optional, but recommended. +//! +//! * Each section gets its own type. Consider these types the entry points to +//! the library: +//! +//! * [`DebugAbbrev`](./struct.DebugAbbrev.html): The `.debug_abbrev` section. +//! +//! * [`DebugAddr`](./struct.DebugAddr.html): The `.debug_addr` section. +//! +//! * [`DebugAranges`](./struct.DebugAranges.html): The `.debug_aranges` +//! section. +//! +//! * [`DebugFrame`](./struct.DebugFrame.html): The `.debug_frame` section. +//! +//! * [`DebugInfo`](./struct.DebugInfo.html): The `.debug_info` section. +//! +//! * [`DebugLine`](./struct.DebugLine.html): The `.debug_line` section. +//! +//! * [`DebugLineStr`](./struct.DebugLineStr.html): The `.debug_line_str` section. +//! +//! * [`DebugLoc`](./struct.DebugLoc.html): The `.debug_loc` section. +//! +//! * [`DebugLocLists`](./struct.DebugLocLists.html): The `.debug_loclists` section. +//! +//! * [`DebugPubNames`](./struct.DebugPubNames.html): The `.debug_pubnames` +//! section. +//! +//! * [`DebugPubTypes`](./struct.DebugPubTypes.html): The `.debug_pubtypes` +//! section. +//! +//! * [`DebugRanges`](./struct.DebugRanges.html): The `.debug_ranges` section. +//! +//! * [`DebugRngLists`](./struct.DebugRngLists.html): The `.debug_rnglists` section. +//! +//! * [`DebugStr`](./struct.DebugStr.html): The `.debug_str` section. +//! +//! * [`DebugStrOffsets`](./struct.DebugStrOffsets.html): The `.debug_str_offsets` section. +//! +//! * [`DebugTypes`](./struct.DebugTypes.html): The `.debug_types` section. +//! +//! * [`DebugCuIndex`](./struct.DebugCuIndex.html): The `.debug_cu_index` section. +//! +//! * [`DebugTuIndex`](./struct.DebugTuIndex.html): The `.debug_tu_index` section. +//! +//! * [`EhFrame`](./struct.EhFrame.html): The `.eh_frame` section. +//! +//! * [`EhFrameHdr`](./struct.EhFrameHdr.html): The `.eh_frame_hdr` section. +//! +//! * Each section type exposes methods for accessing the debugging data encoded +//! in that section. For example, the [`DebugInfo`](./struct.DebugInfo.html) +//! struct has the [`units`](./struct.DebugInfo.html#method.units) method for +//! iterating over the compilation units defined within it. +//! +//! * Offsets into a section are strongly typed: an offset into `.debug_info` is +//! the [`DebugInfoOffset`](./struct.DebugInfoOffset.html) type. It cannot be +//! used to index into the [`DebugLine`](./struct.DebugLine.html) type because +//! `DebugLine` represents the `.debug_line` section. There are similar types +//! for offsets relative to a compilation unit rather than a section. +//! +//! ## Using with `FallibleIterator` +//! +//! The standard library's `Iterator` trait and related APIs do not play well +//! with iterators where the `next` operation is fallible. One can make the +//! `Iterator`'s associated `Item` type be a `Result`, however the +//! provided methods cannot gracefully handle the case when an `Err` is +//! returned. +//! +//! This situation led to the +//! [`fallible-iterator`](https://crates.io/crates/fallible-iterator) crate's +//! existence. You can read more of the rationale for its existence in its +//! docs. The crate provides the helpers you have come to expect (eg `map`, +//! `filter`, etc) for iterators that can fail. +//! +//! `gimli`'s many lazy parsing iterators are a perfect match for the +//! `fallible-iterator` crate's `FallibleIterator` trait because parsing is not +//! done eagerly. Parse errors later in the input might only be discovered after +//! having iterated through many items. +//! +//! To use `gimli` iterators with `FallibleIterator`, import the crate and trait +//! into your code: +//! +//! ``` +//! # #[cfg(feature = "fallible-iterator")] +//! # fn foo() { +//! // Use the `FallibleIterator` trait so its methods are in scope! +//! use fallible_iterator::FallibleIterator; +//! use gimli::{DebugAranges, EndianSlice, LittleEndian}; +//! +//! fn find_sum_of_address_range_lengths(aranges: DebugAranges>) +//! -> gimli::Result +//! { +//! // `DebugAranges::headers` returns a `FallibleIterator`! +//! aranges.headers() +//! // `flat_map` is provided by `FallibleIterator`! +//! .flat_map(|header| Ok(header.entries())) +//! // `map` is provided by `FallibleIterator`! +//! .map(|arange| Ok(arange.length())) +//! // `fold` is provided by `FallibleIterator`! +//! .fold(0, |sum, len| Ok(sum + len)) +//! } +//! # } +//! # fn main() {} +//! ``` + +use core::fmt::{self, Debug}; +use core::result; +#[cfg(feature = "std")] +use std::{error, io}; + +use crate::common::{Register, SectionId}; +use crate::constants; + +mod util; +pub use util::*; + +mod addr; +pub use self::addr::*; + +mod cfi; +pub use self::cfi::*; + +#[cfg(feature = "read")] +mod dwarf; +#[cfg(feature = "read")] +pub use self::dwarf::*; + +mod endian_slice; +pub use self::endian_slice::*; + +#[cfg(feature = "endian-reader")] +mod endian_reader; +#[cfg(feature = "endian-reader")] +pub use self::endian_reader::*; + +mod reader; +pub use self::reader::*; + +#[cfg(feature = "read")] +mod abbrev; +#[cfg(feature = "read")] +pub use self::abbrev::*; + +mod aranges; +pub use self::aranges::*; + +mod index; +pub use self::index::*; + +#[cfg(feature = "read")] +mod line; +#[cfg(feature = "read")] +pub use self::line::*; + +mod lists; + +mod loclists; +pub use self::loclists::*; + +#[cfg(feature = "read")] +mod lookup; + +mod op; +pub use self::op::*; + +#[cfg(feature = "read")] +mod pubnames; +#[cfg(feature = "read")] +pub use self::pubnames::*; + +#[cfg(feature = "read")] +mod pubtypes; +#[cfg(feature = "read")] +pub use self::pubtypes::*; + +mod rnglists; +pub use self::rnglists::*; + +mod str; +pub use self::str::*; + +/// An offset into the current compilation or type unit. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd, Hash)] +pub struct UnitOffset(pub T); + +#[cfg(feature = "read")] +mod unit; +#[cfg(feature = "read")] +pub use self::unit::*; + +mod value; +pub use self::value::*; + +/// Indicates that storage should be allocated on heap. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct StoreOnHeap; + +/// `EndianBuf` has been renamed to `EndianSlice`. For ease of upgrading across +/// `gimli` versions, we export this type alias. +#[deprecated(note = "EndianBuf has been renamed to EndianSlice, use that instead.")] +pub type EndianBuf<'input, Endian> = EndianSlice<'input, Endian>; + +/// An error that occurred when parsing. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum Error { + /// An I/O error occurred while reading. + Io, + /// Found a PC relative pointer, but the section base is undefined. + PcRelativePointerButSectionBaseIsUndefined, + /// Found a `.text` relative pointer, but the `.text` base is undefined. + TextRelativePointerButTextBaseIsUndefined, + /// Found a data relative pointer, but the data base is undefined. + DataRelativePointerButDataBaseIsUndefined, + /// Found a function relative pointer in a context that does not have a + /// function base. + FuncRelativePointerInBadContext, + /// Cannot parse a pointer with a `DW_EH_PE_omit` encoding. + CannotParseOmitPointerEncoding, + /// An error parsing an unsigned LEB128 value. + BadUnsignedLeb128, + /// An error parsing a signed LEB128 value. + BadSignedLeb128, + /// An abbreviation declared that its tag is zero, but zero is reserved for + /// null records. + AbbreviationTagZero, + /// An attribute specification declared that its form is zero, but zero is + /// reserved for null records. + AttributeFormZero, + /// The abbreviation's has-children byte was not one of + /// `DW_CHILDREN_{yes,no}`. + BadHasChildren, + /// The specified length is impossible. + BadLength, + /// Found an unknown `DW_FORM_*` type. + UnknownForm, + /// Expected a zero, found something else. + ExpectedZero, + /// Found an abbreviation code that has already been used. + DuplicateAbbreviationCode, + /// Found a duplicate arange. + DuplicateArange, + /// Found an unknown reserved length value. + UnknownReservedLength, + /// Found an unknown DWARF version. + UnknownVersion(u64), + /// Found a record with an unknown abbreviation code. + UnknownAbbreviation, + /// Hit the end of input before it was expected. + UnexpectedEof(ReaderOffsetId), + /// Read a null entry before it was expected. + UnexpectedNull, + /// Found an unknown standard opcode. + UnknownStandardOpcode(constants::DwLns), + /// Found an unknown extended opcode. + UnknownExtendedOpcode(constants::DwLne), + /// The specified address size is not supported. + UnsupportedAddressSize(u8), + /// The specified offset size is not supported. + UnsupportedOffsetSize(u8), + /// The specified field size is not supported. + UnsupportedFieldSize(u8), + /// The minimum instruction length must not be zero. + MinimumInstructionLengthZero, + /// The maximum operations per instruction must not be zero. + MaximumOperationsPerInstructionZero, + /// The line range must not be zero. + LineRangeZero, + /// The opcode base must not be zero. + OpcodeBaseZero, + /// Found an invalid UTF-8 string. + BadUtf8, + /// Expected to find the CIE ID, but found something else. + NotCieId, + /// Expected to find a pointer to a CIE, but found the CIE ID instead. + NotCiePointer, + /// Expected to find a pointer to an FDE, but found a CIE instead. + NotFdePointer, + /// Invalid branch target for a DW_OP_bra or DW_OP_skip. + BadBranchTarget(u64), + /// DW_OP_push_object_address used but no address passed in. + InvalidPushObjectAddress, + /// Not enough items on the stack when evaluating an expression. + NotEnoughStackItems, + /// Too many iterations to compute the expression. + TooManyIterations, + /// An unrecognized operation was found while parsing a DWARF + /// expression. + InvalidExpression(constants::DwOp), + /// An unsupported operation was found while evaluating a DWARF expression. + UnsupportedEvaluation, + /// The expression had a piece followed by an expression + /// terminator without a piece. + InvalidPiece, + /// An expression-terminating operation was followed by something + /// other than the end of the expression or a piece operation. + InvalidExpressionTerminator(u64), + /// Division or modulus by zero when evaluating an expression. + DivisionByZero, + /// An expression operation used mismatching types. + TypeMismatch, + /// An expression operation required an integral type but saw a + /// floating point type. + IntegralTypeRequired, + /// An expression operation used types that are not supported. + UnsupportedTypeOperation, + /// The shift value in an expression must be a non-negative integer. + InvalidShiftExpression, + /// An unknown DW_CFA_* instruction. + UnknownCallFrameInstruction(constants::DwCfa), + /// The end of an address range was before the beginning. + InvalidAddressRange, + /// The end offset of a loc list entry was before the beginning. + InvalidLocationAddressRange, + /// Encountered a call frame instruction in a context in which it is not + /// valid. + CfiInstructionInInvalidContext, + /// When evaluating call frame instructions, found a `DW_CFA_restore_state` + /// stack pop instruction, but the stack was empty, and had nothing to pop. + PopWithEmptyStack, + /// Do not have unwind info for the given address. + NoUnwindInfoForAddress, + /// An offset value was larger than the maximum supported value. + UnsupportedOffset, + /// The given pointer encoding is either unknown or invalid. + UnknownPointerEncoding, + /// Did not find an entry at the given offset. + NoEntryAtGivenOffset, + /// The given offset is out of bounds. + OffsetOutOfBounds, + /// Found an unknown CFI augmentation. + UnknownAugmentation, + /// We do not support the given pointer encoding yet. + UnsupportedPointerEncoding, + /// Registers larger than `u16` are not supported. + UnsupportedRegister(u64), + /// The CFI program defined more register rules than we have storage for. + TooManyRegisterRules, + /// Attempted to push onto the CFI or evaluation stack, but it was already + /// at full capacity. + StackFull, + /// The `.eh_frame_hdr` binary search table claims to be variable-length encoded, + /// which makes binary search impossible. + VariableLengthSearchTable, + /// The `DW_UT_*` value for this unit is not supported yet. + UnsupportedUnitType, + /// Ranges using AddressIndex are not supported yet. + UnsupportedAddressIndex, + /// Nonzero segment selector sizes aren't supported yet. + UnsupportedSegmentSize, + /// A compilation unit or type unit is missing its top level DIE. + MissingUnitDie, + /// A DIE attribute used an unsupported form. + UnsupportedAttributeForm, + /// Missing DW_LNCT_path in file entry format. + MissingFileEntryFormatPath, + /// Expected an attribute value to be a string form. + ExpectedStringAttributeValue, + /// `DW_FORM_implicit_const` used in an invalid context. + InvalidImplicitConst, + /// Invalid section count in `.dwp` index. + InvalidIndexSectionCount, + /// Invalid slot count in `.dwp` index. + InvalidIndexSlotCount, + /// Invalid hash row in `.dwp` index. + InvalidIndexRow, + /// Unknown section type in `.dwp` index. + UnknownIndexSection, +} + +impl fmt::Display for Error { + #[inline] + fn fmt(&self, f: &mut fmt::Formatter) -> ::core::result::Result<(), fmt::Error> { + write!(f, "{}", self.description()) + } +} + +impl Error { + /// A short description of the error. + pub fn description(&self) -> &str { + match *self { + Error::Io => "An I/O error occurred while reading.", + Error::PcRelativePointerButSectionBaseIsUndefined => { + "Found a PC relative pointer, but the section base is undefined." + } + Error::TextRelativePointerButTextBaseIsUndefined => { + "Found a `.text` relative pointer, but the `.text` base is undefined." + } + Error::DataRelativePointerButDataBaseIsUndefined => { + "Found a data relative pointer, but the data base is undefined." + } + Error::FuncRelativePointerInBadContext => { + "Found a function relative pointer in a context that does not have a function base." + } + Error::CannotParseOmitPointerEncoding => { + "Cannot parse a pointer with a `DW_EH_PE_omit` encoding." + } + Error::BadUnsignedLeb128 => "An error parsing an unsigned LEB128 value", + Error::BadSignedLeb128 => "An error parsing a signed LEB128 value", + Error::AbbreviationTagZero => { + "An abbreviation declared that its tag is zero, + but zero is reserved for null records" + } + Error::AttributeFormZero => { + "An attribute specification declared that its form is zero, + but zero is reserved for null records" + } + Error::BadHasChildren => { + "The abbreviation's has-children byte was not one of + `DW_CHILDREN_{yes,no}`" + } + Error::BadLength => "The specified length is impossible", + Error::UnknownForm => "Found an unknown `DW_FORM_*` type", + Error::ExpectedZero => "Expected a zero, found something else", + Error::DuplicateAbbreviationCode => { + "Found an abbreviation code that has already been used" + } + Error::DuplicateArange => "Found a duplicate arange", + Error::UnknownReservedLength => "Found an unknown reserved length value", + Error::UnknownVersion(_) => "Found an unknown DWARF version", + Error::UnknownAbbreviation => "Found a record with an unknown abbreviation code", + Error::UnexpectedEof(_) => "Hit the end of input before it was expected", + Error::UnexpectedNull => "Read a null entry before it was expected.", + Error::UnknownStandardOpcode(_) => "Found an unknown standard opcode", + Error::UnknownExtendedOpcode(_) => "Found an unknown extended opcode", + Error::UnsupportedAddressSize(_) => "The specified address size is not supported", + Error::UnsupportedOffsetSize(_) => "The specified offset size is not supported", + Error::UnsupportedFieldSize(_) => "The specified field size is not supported", + Error::MinimumInstructionLengthZero => { + "The minimum instruction length must not be zero." + } + Error::MaximumOperationsPerInstructionZero => { + "The maximum operations per instruction must not be zero." + } + Error::LineRangeZero => "The line range must not be zero.", + Error::OpcodeBaseZero => "The opcode base must not be zero.", + Error::BadUtf8 => "Found an invalid UTF-8 string.", + Error::NotCieId => "Expected to find the CIE ID, but found something else.", + Error::NotCiePointer => "Expected to find a CIE pointer, but found the CIE ID instead.", + Error::NotFdePointer => { + "Expected to find an FDE pointer, but found a CIE pointer instead." + } + Error::BadBranchTarget(_) => "Invalid branch target in DWARF expression", + Error::InvalidPushObjectAddress => { + "DW_OP_push_object_address used but no object address given" + } + Error::NotEnoughStackItems => "Not enough items on stack when evaluating expression", + Error::TooManyIterations => "Too many iterations to evaluate DWARF expression", + Error::InvalidExpression(_) => "Invalid opcode in DWARF expression", + Error::UnsupportedEvaluation => "Unsupported operation when evaluating expression", + Error::InvalidPiece => { + "DWARF expression has piece followed by non-piece expression at end" + } + Error::InvalidExpressionTerminator(_) => "Expected DW_OP_piece or DW_OP_bit_piece", + Error::DivisionByZero => "Division or modulus by zero when evaluating expression", + Error::TypeMismatch => "Type mismatch when evaluating expression", + Error::IntegralTypeRequired => "Integral type expected when evaluating expression", + Error::UnsupportedTypeOperation => { + "An expression operation used types that are not supported" + } + Error::InvalidShiftExpression => { + "The shift value in an expression must be a non-negative integer." + } + Error::UnknownCallFrameInstruction(_) => "An unknown DW_CFA_* instructiion", + Error::InvalidAddressRange => { + "The end of an address range must not be before the beginning." + } + Error::InvalidLocationAddressRange => { + "The end offset of a location list entry must not be before the beginning." + } + Error::CfiInstructionInInvalidContext => { + "Encountered a call frame instruction in a context in which it is not valid." + } + Error::PopWithEmptyStack => { + "When evaluating call frame instructions, found a `DW_CFA_restore_state` stack pop \ + instruction, but the stack was empty, and had nothing to pop." + } + Error::NoUnwindInfoForAddress => "Do not have unwind info for the given address.", + Error::UnsupportedOffset => { + "An offset value was larger than the maximum supported value." + } + Error::UnknownPointerEncoding => { + "The given pointer encoding is either unknown or invalid." + } + Error::NoEntryAtGivenOffset => "Did not find an entry at the given offset.", + Error::OffsetOutOfBounds => "The given offset is out of bounds.", + Error::UnknownAugmentation => "Found an unknown CFI augmentation.", + Error::UnsupportedPointerEncoding => { + "We do not support the given pointer encoding yet." + } + Error::UnsupportedRegister(_) => "Registers larger than `u16` are not supported.", + Error::TooManyRegisterRules => { + "The CFI program defined more register rules than we have storage for." + } + Error::StackFull => { + "Attempted to push onto the CFI stack, but it was already at full capacity." + } + Error::VariableLengthSearchTable => { + "The `.eh_frame_hdr` binary search table claims to be variable-length encoded, \ + which makes binary search impossible." + } + Error::UnsupportedUnitType => "The `DW_UT_*` value for this unit is not supported yet", + Error::UnsupportedAddressIndex => "Ranges involving AddressIndex are not supported yet", + Error::UnsupportedSegmentSize => "Nonzero segment size not supported yet", + Error::MissingUnitDie => { + "A compilation unit or type unit is missing its top level DIE." + } + Error::UnsupportedAttributeForm => "A DIE attribute used an unsupported form.", + Error::MissingFileEntryFormatPath => "Missing DW_LNCT_path in file entry format.", + Error::ExpectedStringAttributeValue => { + "Expected an attribute value to be a string form." + } + Error::InvalidImplicitConst => "DW_FORM_implicit_const used in an invalid context.", + Error::InvalidIndexSectionCount => "Invalid section count in `.dwp` index.", + Error::InvalidIndexSlotCount => "Invalid slot count in `.dwp` index.", + Error::InvalidIndexRow => "Invalid hash row in `.dwp` index.", + Error::UnknownIndexSection => "Unknown section type in `.dwp` index.", + } + } +} + +#[cfg(feature = "std")] +impl error::Error for Error {} + +#[cfg(feature = "std")] +impl From for Error { + fn from(_: io::Error) -> Self { + Error::Io + } +} + +/// The result of a parse. +pub type Result = result::Result; + +/// A convenience trait for loading DWARF sections from object files. To be +/// used like: +/// +/// ``` +/// use gimli::{DebugInfo, EndianSlice, LittleEndian, Reader, Section}; +/// +/// let buf = [0x00, 0x01, 0x02, 0x03]; +/// let reader = EndianSlice::new(&buf, LittleEndian); +/// let loader = |name| -> Result<_, ()> { Ok(reader) }; +/// +/// let debug_info: DebugInfo<_> = Section::load(loader).unwrap(); +/// ``` +pub trait Section: From { + /// Returns the section id for this type. + fn id() -> SectionId; + + /// Returns the ELF section name for this type. + fn section_name() -> &'static str { + Self::id().name() + } + + /// Returns the ELF section name (if any) for this type when used in a dwo + /// file. + fn dwo_section_name() -> Option<&'static str> { + Self::id().dwo_name() + } + + /// Returns the XCOFF section name (if any) for this type when used in a XCOFF + /// file. + fn xcoff_section_name() -> Option<&'static str> { + Self::id().xcoff_name() + } + + /// Try to load the section using the given loader function. + fn load(f: F) -> core::result::Result + where + F: FnOnce(SectionId) -> core::result::Result, + { + f(Self::id()).map(From::from) + } + + /// Returns the `Reader` for this section. + fn reader(&self) -> &R + where + R: Reader; + + /// Returns the subrange of the section that is the contribution of + /// a unit in a `.dwp` file. + fn dwp_range(&self, offset: u32, size: u32) -> Result + where + R: Reader, + { + let mut data = self.reader().clone(); + data.skip(R::Offset::from_u32(offset))?; + data.truncate(R::Offset::from_u32(size))?; + Ok(data.into()) + } + + /// Returns the `Reader` for this section. + fn lookup_offset_id(&self, id: ReaderOffsetId) -> Option<(SectionId, R::Offset)> + where + R: Reader, + { + self.reader() + .lookup_offset_id(id) + .map(|offset| (Self::id(), offset)) + } +} + +impl Register { + pub(crate) fn from_u64(x: u64) -> Result { + let y = x as u16; + if u64::from(y) == x { + Ok(Register(y)) + } else { + Err(Error::UnsupportedRegister(x)) + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::common::Format; + use crate::endianity::LittleEndian; + use test_assembler::{Endian, Section}; + + #[test] + fn test_parse_initial_length_32_ok() { + let section = Section::with_endian(Endian::Little).L32(0x7856_3412); + let buf = section.get_contents().unwrap(); + + let input = &mut EndianSlice::new(&buf, LittleEndian); + match input.read_initial_length() { + Ok((length, format)) => { + assert_eq!(input.len(), 0); + assert_eq!(format, Format::Dwarf32); + assert_eq!(0x7856_3412, length); + } + otherwise => panic!("Unexpected result: {:?}", otherwise), + } + } + + #[test] + fn test_parse_initial_length_64_ok() { + let section = Section::with_endian(Endian::Little) + // Dwarf_64_INITIAL_UNIT_LENGTH + .L32(0xffff_ffff) + // Actual length + .L64(0xffde_bc9a_7856_3412); + let buf = section.get_contents().unwrap(); + let input = &mut EndianSlice::new(&buf, LittleEndian); + + #[cfg(target_pointer_width = "64")] + match input.read_initial_length() { + Ok((length, format)) => { + assert_eq!(input.len(), 0); + assert_eq!(format, Format::Dwarf64); + assert_eq!(0xffde_bc9a_7856_3412, length); + } + otherwise => panic!("Unexpected result: {:?}", otherwise), + } + + #[cfg(target_pointer_width = "32")] + match input.read_initial_length() { + Err(Error::UnsupportedOffset) => {} + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_initial_length_unknown_reserved_value() { + let section = Section::with_endian(Endian::Little).L32(0xffff_fffe); + let buf = section.get_contents().unwrap(); + + let input = &mut EndianSlice::new(&buf, LittleEndian); + match input.read_initial_length() { + Err(Error::UnknownReservedLength) => assert!(true), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_initial_length_incomplete() { + let buf = [0xff, 0xff, 0xff]; // Need at least 4 bytes. + + let input = &mut EndianSlice::new(&buf, LittleEndian); + match input.read_initial_length() { + Err(Error::UnexpectedEof(_)) => assert!(true), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_initial_length_64_incomplete() { + let section = Section::with_endian(Endian::Little) + // Dwarf_64_INITIAL_UNIT_LENGTH + .L32(0xffff_ffff) + // Actual length is not long enough. + .L32(0x7856_3412); + let buf = section.get_contents().unwrap(); + + let input = &mut EndianSlice::new(&buf, LittleEndian); + match input.read_initial_length() { + Err(Error::UnexpectedEof(_)) => assert!(true), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_offset_32() { + let section = Section::with_endian(Endian::Little).L32(0x0123_4567); + let buf = section.get_contents().unwrap(); + + let input = &mut EndianSlice::new(&buf, LittleEndian); + match input.read_offset(Format::Dwarf32) { + Ok(val) => { + assert_eq!(input.len(), 0); + assert_eq!(val, 0x0123_4567); + } + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_offset_64_small() { + let section = Section::with_endian(Endian::Little).L64(0x0123_4567); + let buf = section.get_contents().unwrap(); + + let input = &mut EndianSlice::new(&buf, LittleEndian); + match input.read_offset(Format::Dwarf64) { + Ok(val) => { + assert_eq!(input.len(), 0); + assert_eq!(val, 0x0123_4567); + } + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_offset_64_large() { + let section = Section::with_endian(Endian::Little).L64(0x0123_4567_89ab_cdef); + let buf = section.get_contents().unwrap(); + + let input = &mut EndianSlice::new(&buf, LittleEndian); + match input.read_offset(Format::Dwarf64) { + Ok(val) => { + assert_eq!(input.len(), 0); + assert_eq!(val, 0x0123_4567_89ab_cdef); + } + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + #[cfg(target_pointer_width = "32")] + fn test_parse_offset_64_large() { + let section = Section::with_endian(Endian::Little).L64(0x0123_4567_89ab_cdef); + let buf = section.get_contents().unwrap(); + + let input = &mut EndianSlice::new(&buf, LittleEndian); + match input.read_offset(Format::Dwarf64) { + Err(Error::UnsupportedOffset) => assert!(true), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } +} diff --git a/src/rust/vendor/gimli/src/read/op.rs b/src/rust/vendor/gimli/src/read/op.rs new file mode 100644 index 000000000..4cb681ea7 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/op.rs @@ -0,0 +1,4140 @@ +//! Functions for parsing and evaluating DWARF expressions. + +#[cfg(feature = "read")] +use alloc::vec::Vec; +use core::mem; + +use super::util::{ArrayLike, ArrayVec}; +use crate::common::{DebugAddrIndex, DebugInfoOffset, Encoding, Register}; +use crate::constants; +use crate::read::{Error, Reader, ReaderOffset, Result, StoreOnHeap, UnitOffset, Value, ValueType}; + +/// A reference to a DIE, either relative to the current CU or +/// relative to the section. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum DieReference { + /// A CU-relative reference. + UnitRef(UnitOffset), + /// A section-relative reference. + DebugInfoRef(DebugInfoOffset), +} + +/// A single decoded DWARF expression operation. +/// +/// DWARF expression evaluation is done in two parts: first the raw +/// bytes of the next part of the expression are decoded; and then the +/// decoded operation is evaluated. This approach lets other +/// consumers inspect the DWARF expression without reimplementing the +/// decoding operation. +/// +/// Multiple DWARF opcodes may decode into a single `Operation`. For +/// example, both `DW_OP_deref` and `DW_OP_xderef` are represented +/// using `Operation::Deref`. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum Operation::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + /// Dereference the topmost value of the stack. + Deref { + /// The DIE of the base type or 0 to indicate the generic type + base_type: UnitOffset, + /// The size of the data to dereference. + size: u8, + /// True if the dereference operation takes an address space + /// argument from the stack; false otherwise. + space: bool, + }, + /// Drop an item from the stack. + Drop, + /// Pick an item from the stack and push it on top of the stack. + /// This operation handles `DW_OP_pick`, `DW_OP_dup`, and + /// `DW_OP_over`. + Pick { + /// The index, from the top of the stack, of the item to copy. + index: u8, + }, + /// Swap the top two stack items. + Swap, + /// Rotate the top three stack items. + Rot, + /// Take the absolute value of the top of the stack. + Abs, + /// Bitwise `and` of the top two values on the stack. + And, + /// Divide the top two values on the stack. + Div, + /// Subtract the top two values on the stack. + Minus, + /// Modulus of the top two values on the stack. + Mod, + /// Multiply the top two values on the stack. + Mul, + /// Negate the top of the stack. + Neg, + /// Bitwise `not` of the top of the stack. + Not, + /// Bitwise `or` of the top two values on the stack. + Or, + /// Add the top two values on the stack. + Plus, + /// Add a constant to the topmost value on the stack. + PlusConstant { + /// The value to add. + value: u64, + }, + /// Logical left shift of the 2nd value on the stack by the number + /// of bits given by the topmost value on the stack. + Shl, + /// Right shift of the 2nd value on the stack by the number of + /// bits given by the topmost value on the stack. + Shr, + /// Arithmetic left shift of the 2nd value on the stack by the + /// number of bits given by the topmost value on the stack. + Shra, + /// Bitwise `xor` of the top two values on the stack. + Xor, + /// Branch to the target location if the top of stack is nonzero. + Bra { + /// The relative offset to the target bytecode. + target: i16, + }, + /// Compare the top two stack values for equality. + Eq, + /// Compare the top two stack values using `>=`. + Ge, + /// Compare the top two stack values using `>`. + Gt, + /// Compare the top two stack values using `<=`. + Le, + /// Compare the top two stack values using `<`. + Lt, + /// Compare the top two stack values using `!=`. + Ne, + /// Unconditional branch to the target location. + Skip { + /// The relative offset to the target bytecode. + target: i16, + }, + /// Push an unsigned constant value on the stack. This handles multiple + /// DWARF opcodes. + UnsignedConstant { + /// The value to push. + value: u64, + }, + /// Push a signed constant value on the stack. This handles multiple + /// DWARF opcodes. + SignedConstant { + /// The value to push. + value: i64, + }, + /// Indicate that this piece's location is in the given register. + /// + /// Completes the piece or expression. + Register { + /// The register number. + register: Register, + }, + /// Find the value of the given register, add the offset, and then + /// push the resulting sum on the stack. + RegisterOffset { + /// The register number. + register: Register, + /// The offset to add. + offset: i64, + /// The DIE of the base type or 0 to indicate the generic type + base_type: UnitOffset, + }, + /// Compute the frame base (using `DW_AT_frame_base`), add the + /// given offset, and then push the resulting sum on the stack. + FrameOffset { + /// The offset to add. + offset: i64, + }, + /// No operation. + Nop, + /// Push the object address on the stack. + PushObjectAddress, + /// Evaluate a DWARF expression as a subroutine. The expression + /// comes from the `DW_AT_location` attribute of the indicated + /// DIE. + Call { + /// The DIE to use. + offset: DieReference, + }, + /// Compute the address of a thread-local variable and push it on + /// the stack. + TLS, + /// Compute the call frame CFA and push it on the stack. + CallFrameCFA, + /// Terminate a piece. + Piece { + /// The size of this piece in bits. + size_in_bits: u64, + /// The bit offset of this piece. If `None`, then this piece + /// was specified using `DW_OP_piece` and should start at the + /// next byte boundary. + bit_offset: Option, + }, + /// The object has no location, but has a known constant value. + /// + /// Represents `DW_OP_implicit_value`. + /// Completes the piece or expression. + ImplicitValue { + /// The implicit value to use. + data: R, + }, + /// The object has no location, but its value is at the top of the stack. + /// + /// Represents `DW_OP_stack_value`. + /// Completes the piece or expression. + StackValue, + /// The object is a pointer to a value which has no actual location, + /// such as an implicit value or a stack value. + /// + /// Represents `DW_OP_implicit_pointer`. + /// Completes the piece or expression. + ImplicitPointer { + /// The `.debug_info` offset of the value that this is an implicit pointer into. + value: DebugInfoOffset, + /// The byte offset into the value that the implicit pointer points to. + byte_offset: i64, + }, + /// Evaluate an expression at the entry to the current subprogram, and push it on the stack. + /// + /// Represents `DW_OP_entry_value`. + EntryValue { + /// The expression to be evaluated. + expression: R, + }, + /// This represents a parameter that was optimized out. + /// + /// The offset points to the definition of the parameter, and is + /// matched to the `DW_TAG_GNU_call_site_parameter` in the caller that also + /// points to the same definition of the parameter. + /// + /// Represents `DW_OP_GNU_parameter_ref`. + ParameterRef { + /// The DIE to use. + offset: UnitOffset, + }, + /// Relocate the address if needed, and push it on the stack. + /// + /// Represents `DW_OP_addr`. + Address { + /// The offset to add. + address: u64, + }, + /// Read the address at the given index in `.debug_addr, relocate the address if needed, + /// and push it on the stack. + /// + /// Represents `DW_OP_addrx`. + AddressIndex { + /// The index of the address in `.debug_addr`. + index: DebugAddrIndex, + }, + /// Read the address at the given index in `.debug_addr, and push it on the stack. + /// Do not relocate the address. + /// + /// Represents `DW_OP_constx`. + ConstantIndex { + /// The index of the address in `.debug_addr`. + index: DebugAddrIndex, + }, + /// Interpret the value bytes as a constant of a given type, and push it on the stack. + /// + /// Represents `DW_OP_const_type`. + TypedLiteral { + /// The DIE of the base type. + base_type: UnitOffset, + /// The value bytes. + value: R, + }, + /// Pop the top stack entry, convert it to a different type, and push it on the stack. + /// + /// Represents `DW_OP_convert`. + Convert { + /// The DIE of the base type. + base_type: UnitOffset, + }, + /// Pop the top stack entry, reinterpret the bits in its value as a different type, + /// and push it on the stack. + /// + /// Represents `DW_OP_reinterpret`. + Reinterpret { + /// The DIE of the base type. + base_type: UnitOffset, + }, + /// The index of a local in the currently executing function. + /// + /// Represents `DW_OP_WASM_location 0x00`. + /// Completes the piece or expression. + WasmLocal { + /// The index of the local. + index: u32, + }, + /// The index of a global. + /// + /// Represents `DW_OP_WASM_location 0x01` or `DW_OP_WASM_location 0x03`. + /// Completes the piece or expression. + WasmGlobal { + /// The index of the global. + index: u32, + }, + /// The index of an item on the operand stack. + /// + /// Represents `DW_OP_WASM_location 0x02`. + /// Completes the piece or expression. + WasmStack { + /// The index of the stack item. 0 is the bottom of the operand stack. + index: u32, + }, +} + +#[derive(Debug)] +enum OperationEvaluationResult { + Piece, + Incomplete, + Complete { location: Location }, + Waiting(EvaluationWaiting, EvaluationResult), +} + +/// A single location of a piece of the result of a DWARF expression. +#[derive(Debug, Clone, Copy, PartialEq)] +pub enum Location::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + /// The piece is empty. Ordinarily this means the piece has been + /// optimized away. + Empty, + /// The piece is found in a register. + Register { + /// The register number. + register: Register, + }, + /// The piece is found in memory. + Address { + /// The address. + address: u64, + }, + /// The piece has no location but its value is known. + Value { + /// The value. + value: Value, + }, + /// The piece is represented by some constant bytes. + Bytes { + /// The value. + value: R, + }, + /// The piece is a pointer to a value which has no actual location. + ImplicitPointer { + /// The `.debug_info` offset of the value that this is an implicit pointer into. + value: DebugInfoOffset, + /// The byte offset into the value that the implicit pointer points to. + byte_offset: i64, + }, +} + +impl Location +where + R: Reader, + Offset: ReaderOffset, +{ + /// Return true if the piece is empty. + pub fn is_empty(&self) -> bool { + matches!(*self, Location::Empty) + } +} + +/// The description of a single piece of the result of a DWARF +/// expression. +#[derive(Debug, Clone, Copy, PartialEq)] +pub struct Piece::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + /// If given, the size of the piece in bits. If `None`, there + /// must be only one piece whose size is all of the object. + pub size_in_bits: Option, + /// If given, the bit offset of the piece within the location. + /// If the location is a `Location::Register` or `Location::Value`, + /// then this offset is from the least significant bit end of + /// the register or value. + /// If the location is a `Location::Address` then the offset uses + /// the bit numbering and direction conventions of the language + /// and target system. + /// + /// If `None`, the piece starts at the location. If the + /// location is a register whose size is larger than the piece, + /// then placement within the register is defined by the ABI. + pub bit_offset: Option, + /// Where this piece is to be found. + pub location: Location, +} + +// A helper function to handle branch offsets. +fn compute_pc(pc: &R, bytecode: &R, offset: i16) -> Result { + let pc_offset = pc.offset_from(bytecode); + let new_pc_offset = pc_offset.wrapping_add(R::Offset::from_i16(offset)); + if new_pc_offset > bytecode.len() { + Err(Error::BadBranchTarget(new_pc_offset.into_u64())) + } else { + let mut new_pc = bytecode.clone(); + new_pc.skip(new_pc_offset)?; + Ok(new_pc) + } +} + +fn generic_type() -> UnitOffset { + UnitOffset(O::from_u64(0).unwrap()) +} + +impl Operation +where + R: Reader, + Offset: ReaderOffset, +{ + /// Parse a single DWARF expression operation. + /// + /// This is useful when examining a DWARF expression for reasons other + /// than direct evaluation. + /// + /// `bytes` points to a the operation to decode. It should point into + /// the same array as `bytecode`, which should be the entire + /// expression. + pub fn parse(bytes: &mut R, encoding: Encoding) -> Result> { + let opcode = bytes.read_u8()?; + let name = constants::DwOp(opcode); + match name { + constants::DW_OP_addr => { + let address = bytes.read_address(encoding.address_size)?; + Ok(Operation::Address { address }) + } + constants::DW_OP_deref => Ok(Operation::Deref { + base_type: generic_type(), + size: encoding.address_size, + space: false, + }), + constants::DW_OP_const1u => { + let value = bytes.read_u8()?; + Ok(Operation::UnsignedConstant { + value: u64::from(value), + }) + } + constants::DW_OP_const1s => { + let value = bytes.read_i8()?; + Ok(Operation::SignedConstant { + value: i64::from(value), + }) + } + constants::DW_OP_const2u => { + let value = bytes.read_u16()?; + Ok(Operation::UnsignedConstant { + value: u64::from(value), + }) + } + constants::DW_OP_const2s => { + let value = bytes.read_i16()?; + Ok(Operation::SignedConstant { + value: i64::from(value), + }) + } + constants::DW_OP_const4u => { + let value = bytes.read_u32()?; + Ok(Operation::UnsignedConstant { + value: u64::from(value), + }) + } + constants::DW_OP_const4s => { + let value = bytes.read_i32()?; + Ok(Operation::SignedConstant { + value: i64::from(value), + }) + } + constants::DW_OP_const8u => { + let value = bytes.read_u64()?; + Ok(Operation::UnsignedConstant { value }) + } + constants::DW_OP_const8s => { + let value = bytes.read_i64()?; + Ok(Operation::SignedConstant { value }) + } + constants::DW_OP_constu => { + let value = bytes.read_uleb128()?; + Ok(Operation::UnsignedConstant { value }) + } + constants::DW_OP_consts => { + let value = bytes.read_sleb128()?; + Ok(Operation::SignedConstant { value }) + } + constants::DW_OP_dup => Ok(Operation::Pick { index: 0 }), + constants::DW_OP_drop => Ok(Operation::Drop), + constants::DW_OP_over => Ok(Operation::Pick { index: 1 }), + constants::DW_OP_pick => { + let value = bytes.read_u8()?; + Ok(Operation::Pick { index: value }) + } + constants::DW_OP_swap => Ok(Operation::Swap), + constants::DW_OP_rot => Ok(Operation::Rot), + constants::DW_OP_xderef => Ok(Operation::Deref { + base_type: generic_type(), + size: encoding.address_size, + space: true, + }), + constants::DW_OP_abs => Ok(Operation::Abs), + constants::DW_OP_and => Ok(Operation::And), + constants::DW_OP_div => Ok(Operation::Div), + constants::DW_OP_minus => Ok(Operation::Minus), + constants::DW_OP_mod => Ok(Operation::Mod), + constants::DW_OP_mul => Ok(Operation::Mul), + constants::DW_OP_neg => Ok(Operation::Neg), + constants::DW_OP_not => Ok(Operation::Not), + constants::DW_OP_or => Ok(Operation::Or), + constants::DW_OP_plus => Ok(Operation::Plus), + constants::DW_OP_plus_uconst => { + let value = bytes.read_uleb128()?; + Ok(Operation::PlusConstant { value }) + } + constants::DW_OP_shl => Ok(Operation::Shl), + constants::DW_OP_shr => Ok(Operation::Shr), + constants::DW_OP_shra => Ok(Operation::Shra), + constants::DW_OP_xor => Ok(Operation::Xor), + constants::DW_OP_bra => { + let target = bytes.read_i16()?; + Ok(Operation::Bra { target }) + } + constants::DW_OP_eq => Ok(Operation::Eq), + constants::DW_OP_ge => Ok(Operation::Ge), + constants::DW_OP_gt => Ok(Operation::Gt), + constants::DW_OP_le => Ok(Operation::Le), + constants::DW_OP_lt => Ok(Operation::Lt), + constants::DW_OP_ne => Ok(Operation::Ne), + constants::DW_OP_skip => { + let target = bytes.read_i16()?; + Ok(Operation::Skip { target }) + } + constants::DW_OP_lit0 + | constants::DW_OP_lit1 + | constants::DW_OP_lit2 + | constants::DW_OP_lit3 + | constants::DW_OP_lit4 + | constants::DW_OP_lit5 + | constants::DW_OP_lit6 + | constants::DW_OP_lit7 + | constants::DW_OP_lit8 + | constants::DW_OP_lit9 + | constants::DW_OP_lit10 + | constants::DW_OP_lit11 + | constants::DW_OP_lit12 + | constants::DW_OP_lit13 + | constants::DW_OP_lit14 + | constants::DW_OP_lit15 + | constants::DW_OP_lit16 + | constants::DW_OP_lit17 + | constants::DW_OP_lit18 + | constants::DW_OP_lit19 + | constants::DW_OP_lit20 + | constants::DW_OP_lit21 + | constants::DW_OP_lit22 + | constants::DW_OP_lit23 + | constants::DW_OP_lit24 + | constants::DW_OP_lit25 + | constants::DW_OP_lit26 + | constants::DW_OP_lit27 + | constants::DW_OP_lit28 + | constants::DW_OP_lit29 + | constants::DW_OP_lit30 + | constants::DW_OP_lit31 => Ok(Operation::UnsignedConstant { + value: (opcode - constants::DW_OP_lit0.0).into(), + }), + constants::DW_OP_reg0 + | constants::DW_OP_reg1 + | constants::DW_OP_reg2 + | constants::DW_OP_reg3 + | constants::DW_OP_reg4 + | constants::DW_OP_reg5 + | constants::DW_OP_reg6 + | constants::DW_OP_reg7 + | constants::DW_OP_reg8 + | constants::DW_OP_reg9 + | constants::DW_OP_reg10 + | constants::DW_OP_reg11 + | constants::DW_OP_reg12 + | constants::DW_OP_reg13 + | constants::DW_OP_reg14 + | constants::DW_OP_reg15 + | constants::DW_OP_reg16 + | constants::DW_OP_reg17 + | constants::DW_OP_reg18 + | constants::DW_OP_reg19 + | constants::DW_OP_reg20 + | constants::DW_OP_reg21 + | constants::DW_OP_reg22 + | constants::DW_OP_reg23 + | constants::DW_OP_reg24 + | constants::DW_OP_reg25 + | constants::DW_OP_reg26 + | constants::DW_OP_reg27 + | constants::DW_OP_reg28 + | constants::DW_OP_reg29 + | constants::DW_OP_reg30 + | constants::DW_OP_reg31 => Ok(Operation::Register { + register: Register((opcode - constants::DW_OP_reg0.0).into()), + }), + constants::DW_OP_breg0 + | constants::DW_OP_breg1 + | constants::DW_OP_breg2 + | constants::DW_OP_breg3 + | constants::DW_OP_breg4 + | constants::DW_OP_breg5 + | constants::DW_OP_breg6 + | constants::DW_OP_breg7 + | constants::DW_OP_breg8 + | constants::DW_OP_breg9 + | constants::DW_OP_breg10 + | constants::DW_OP_breg11 + | constants::DW_OP_breg12 + | constants::DW_OP_breg13 + | constants::DW_OP_breg14 + | constants::DW_OP_breg15 + | constants::DW_OP_breg16 + | constants::DW_OP_breg17 + | constants::DW_OP_breg18 + | constants::DW_OP_breg19 + | constants::DW_OP_breg20 + | constants::DW_OP_breg21 + | constants::DW_OP_breg22 + | constants::DW_OP_breg23 + | constants::DW_OP_breg24 + | constants::DW_OP_breg25 + | constants::DW_OP_breg26 + | constants::DW_OP_breg27 + | constants::DW_OP_breg28 + | constants::DW_OP_breg29 + | constants::DW_OP_breg30 + | constants::DW_OP_breg31 => { + let value = bytes.read_sleb128()?; + Ok(Operation::RegisterOffset { + register: Register((opcode - constants::DW_OP_breg0.0).into()), + offset: value, + base_type: generic_type(), + }) + } + constants::DW_OP_regx => { + let register = bytes.read_uleb128().and_then(Register::from_u64)?; + Ok(Operation::Register { register }) + } + constants::DW_OP_fbreg => { + let value = bytes.read_sleb128()?; + Ok(Operation::FrameOffset { offset: value }) + } + constants::DW_OP_bregx => { + let register = bytes.read_uleb128().and_then(Register::from_u64)?; + let offset = bytes.read_sleb128()?; + Ok(Operation::RegisterOffset { + register, + offset, + base_type: generic_type(), + }) + } + constants::DW_OP_piece => { + let size = bytes.read_uleb128()?; + Ok(Operation::Piece { + size_in_bits: 8 * size, + bit_offset: None, + }) + } + constants::DW_OP_deref_size => { + let size = bytes.read_u8()?; + Ok(Operation::Deref { + base_type: generic_type(), + size, + space: false, + }) + } + constants::DW_OP_xderef_size => { + let size = bytes.read_u8()?; + Ok(Operation::Deref { + base_type: generic_type(), + size, + space: true, + }) + } + constants::DW_OP_nop => Ok(Operation::Nop), + constants::DW_OP_push_object_address => Ok(Operation::PushObjectAddress), + constants::DW_OP_call2 => { + let value = bytes.read_u16().map(R::Offset::from_u16)?; + Ok(Operation::Call { + offset: DieReference::UnitRef(UnitOffset(value)), + }) + } + constants::DW_OP_call4 => { + let value = bytes.read_u32().map(R::Offset::from_u32)?; + Ok(Operation::Call { + offset: DieReference::UnitRef(UnitOffset(value)), + }) + } + constants::DW_OP_call_ref => { + let value = bytes.read_offset(encoding.format)?; + Ok(Operation::Call { + offset: DieReference::DebugInfoRef(DebugInfoOffset(value)), + }) + } + constants::DW_OP_form_tls_address | constants::DW_OP_GNU_push_tls_address => { + Ok(Operation::TLS) + } + constants::DW_OP_call_frame_cfa => Ok(Operation::CallFrameCFA), + constants::DW_OP_bit_piece => { + let size = bytes.read_uleb128()?; + let offset = bytes.read_uleb128()?; + Ok(Operation::Piece { + size_in_bits: size, + bit_offset: Some(offset), + }) + } + constants::DW_OP_implicit_value => { + let len = bytes.read_uleb128().and_then(R::Offset::from_u64)?; + let data = bytes.split(len)?; + Ok(Operation::ImplicitValue { data }) + } + constants::DW_OP_stack_value => Ok(Operation::StackValue), + constants::DW_OP_implicit_pointer | constants::DW_OP_GNU_implicit_pointer => { + let value = if encoding.version == 2 { + bytes + .read_address(encoding.address_size) + .and_then(Offset::from_u64)? + } else { + bytes.read_offset(encoding.format)? + }; + let byte_offset = bytes.read_sleb128()?; + Ok(Operation::ImplicitPointer { + value: DebugInfoOffset(value), + byte_offset, + }) + } + constants::DW_OP_addrx | constants::DW_OP_GNU_addr_index => { + let index = bytes.read_uleb128().and_then(R::Offset::from_u64)?; + Ok(Operation::AddressIndex { + index: DebugAddrIndex(index), + }) + } + constants::DW_OP_constx | constants::DW_OP_GNU_const_index => { + let index = bytes.read_uleb128().and_then(R::Offset::from_u64)?; + Ok(Operation::ConstantIndex { + index: DebugAddrIndex(index), + }) + } + constants::DW_OP_entry_value | constants::DW_OP_GNU_entry_value => { + let len = bytes.read_uleb128().and_then(R::Offset::from_u64)?; + let expression = bytes.split(len)?; + Ok(Operation::EntryValue { expression }) + } + constants::DW_OP_GNU_parameter_ref => { + let value = bytes.read_u32().map(R::Offset::from_u32)?; + Ok(Operation::ParameterRef { + offset: UnitOffset(value), + }) + } + constants::DW_OP_const_type | constants::DW_OP_GNU_const_type => { + let base_type = bytes.read_uleb128().and_then(R::Offset::from_u64)?; + let len = bytes.read_u8()?; + let value = bytes.split(R::Offset::from_u8(len))?; + Ok(Operation::TypedLiteral { + base_type: UnitOffset(base_type), + value, + }) + } + constants::DW_OP_regval_type | constants::DW_OP_GNU_regval_type => { + let register = bytes.read_uleb128().and_then(Register::from_u64)?; + let base_type = bytes.read_uleb128().and_then(R::Offset::from_u64)?; + Ok(Operation::RegisterOffset { + register, + offset: 0, + base_type: UnitOffset(base_type), + }) + } + constants::DW_OP_deref_type | constants::DW_OP_GNU_deref_type => { + let size = bytes.read_u8()?; + let base_type = bytes.read_uleb128().and_then(R::Offset::from_u64)?; + Ok(Operation::Deref { + base_type: UnitOffset(base_type), + size, + space: false, + }) + } + constants::DW_OP_xderef_type => { + let size = bytes.read_u8()?; + let base_type = bytes.read_uleb128().and_then(R::Offset::from_u64)?; + Ok(Operation::Deref { + base_type: UnitOffset(base_type), + size, + space: true, + }) + } + constants::DW_OP_convert | constants::DW_OP_GNU_convert => { + let base_type = bytes.read_uleb128().and_then(R::Offset::from_u64)?; + Ok(Operation::Convert { + base_type: UnitOffset(base_type), + }) + } + constants::DW_OP_reinterpret | constants::DW_OP_GNU_reinterpret => { + let base_type = bytes.read_uleb128().and_then(R::Offset::from_u64)?; + Ok(Operation::Reinterpret { + base_type: UnitOffset(base_type), + }) + } + constants::DW_OP_WASM_location => match bytes.read_u8()? { + 0x0 => { + let index = bytes.read_uleb128_u32()?; + Ok(Operation::WasmLocal { index }) + } + 0x1 => { + let index = bytes.read_uleb128_u32()?; + Ok(Operation::WasmGlobal { index }) + } + 0x2 => { + let index = bytes.read_uleb128_u32()?; + Ok(Operation::WasmStack { index }) + } + 0x3 => { + let index = bytes.read_u32()?; + Ok(Operation::WasmGlobal { index }) + } + _ => Err(Error::InvalidExpression(name)), + }, + _ => Err(Error::InvalidExpression(name)), + } + } +} + +#[derive(Debug)] +enum EvaluationState { + Start(Option), + Ready, + Error(Error), + Complete, + Waiting(EvaluationWaiting), +} + +#[derive(Debug)] +enum EvaluationWaiting { + Memory, + Register { offset: i64 }, + FrameBase { offset: i64 }, + Tls, + Cfa, + AtLocation, + EntryValue, + ParameterRef, + RelocatedAddress, + IndexedAddress, + TypedLiteral { value: R }, + Convert, + Reinterpret, +} + +/// The state of an `Evaluation` after evaluating a DWARF expression. +/// The evaluation is either `Complete`, or it requires more data +/// to continue, as described by the variant. +#[derive(Debug, PartialEq)] +pub enum EvaluationResult { + /// The `Evaluation` is complete, and `Evaluation::result()` can be called. + Complete, + /// The `Evaluation` needs a value from memory to proceed further. Once the + /// caller determines what value to provide it should resume the `Evaluation` + /// by calling `Evaluation::resume_with_memory`. + RequiresMemory { + /// The address of the value required. + address: u64, + /// The size of the value required. This is guaranteed to be at most the + /// word size of the target architecture. + size: u8, + /// If not `None`, a target-specific address space value. + space: Option, + /// The DIE of the base type or 0 to indicate the generic type + base_type: UnitOffset, + }, + /// The `Evaluation` needs a value from a register to proceed further. Once + /// the caller determines what value to provide it should resume the + /// `Evaluation` by calling `Evaluation::resume_with_register`. + RequiresRegister { + /// The register number. + register: Register, + /// The DIE of the base type or 0 to indicate the generic type + base_type: UnitOffset, + }, + /// The `Evaluation` needs the frame base address to proceed further. Once + /// the caller determines what value to provide it should resume the + /// `Evaluation` by calling `Evaluation::resume_with_frame_base`. The frame + /// base address is the address produced by the location description in the + /// `DW_AT_frame_base` attribute of the current function. + RequiresFrameBase, + /// The `Evaluation` needs a value from TLS to proceed further. Once the + /// caller determines what value to provide it should resume the + /// `Evaluation` by calling `Evaluation::resume_with_tls`. + RequiresTls(u64), + /// The `Evaluation` needs the CFA to proceed further. Once the caller + /// determines what value to provide it should resume the `Evaluation` by + /// calling `Evaluation::resume_with_call_frame_cfa`. + RequiresCallFrameCfa, + /// The `Evaluation` needs the DWARF expression at the given location to + /// proceed further. Once the caller determines what value to provide it + /// should resume the `Evaluation` by calling + /// `Evaluation::resume_with_at_location`. + RequiresAtLocation(DieReference), + /// The `Evaluation` needs the value produced by evaluating a DWARF + /// expression at the entry point of the current subprogram. Once the + /// caller determines what value to provide it should resume the + /// `Evaluation` by calling `Evaluation::resume_with_entry_value`. + RequiresEntryValue(Expression), + /// The `Evaluation` needs the value of the parameter at the given location + /// in the current function's caller. Once the caller determines what value + /// to provide it should resume the `Evaluation` by calling + /// `Evaluation::resume_with_parameter_ref`. + RequiresParameterRef(UnitOffset), + /// The `Evaluation` needs an address to be relocated to proceed further. + /// Once the caller determines what value to provide it should resume the + /// `Evaluation` by calling `Evaluation::resume_with_relocated_address`. + RequiresRelocatedAddress(u64), + /// The `Evaluation` needs an address from the `.debug_addr` section. + /// This address may also need to be relocated. + /// Once the caller determines what value to provide it should resume the + /// `Evaluation` by calling `Evaluation::resume_with_indexed_address`. + RequiresIndexedAddress { + /// The index of the address in the `.debug_addr` section, + /// relative to the `DW_AT_addr_base` of the compilation unit. + index: DebugAddrIndex, + /// Whether the address also needs to be relocated. + relocate: bool, + }, + /// The `Evaluation` needs the `ValueType` for the base type DIE at + /// the give unit offset. Once the caller determines what value to provide it + /// should resume the `Evaluation` by calling + /// `Evaluation::resume_with_base_type`. + RequiresBaseType(UnitOffset), +} + +/// The bytecode for a DWARF expression or location description. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct Expression(pub R); + +impl Expression { + /// Create an evaluation for this expression. + /// + /// The `encoding` is determined by the + /// [`CompilationUnitHeader`](struct.CompilationUnitHeader.html) or + /// [`TypeUnitHeader`](struct.TypeUnitHeader.html) that this expression + /// relates to. + /// + /// # Examples + /// ```rust,no_run + /// use gimli::Expression; + /// # let endian = gimli::LittleEndian; + /// # let debug_info = gimli::DebugInfo::from(gimli::EndianSlice::new(&[], endian)); + /// # let unit = debug_info.units().next().unwrap().unwrap(); + /// # let bytecode = gimli::EndianSlice::new(&[], endian); + /// let expression = gimli::Expression(bytecode); + /// let mut eval = expression.evaluation(unit.encoding()); + /// let mut result = eval.evaluate().unwrap(); + /// ``` + #[cfg(feature = "read")] + #[inline] + pub fn evaluation(self, encoding: Encoding) -> Evaluation { + Evaluation::new(self.0, encoding) + } + + /// Return an iterator for the operations in the expression. + pub fn operations(self, encoding: Encoding) -> OperationIter { + OperationIter { + input: self.0, + encoding, + } + } +} + +/// An iterator for the operations in an expression. +#[derive(Debug, Clone, Copy)] +pub struct OperationIter { + input: R, + encoding: Encoding, +} + +impl OperationIter { + /// Read the next operation in an expression. + pub fn next(&mut self) -> Result>> { + if self.input.is_empty() { + return Ok(None); + } + match Operation::parse(&mut self.input, self.encoding) { + Ok(op) => Ok(Some(op)), + Err(e) => { + self.input.empty(); + Err(e) + } + } + } + + /// Return the current byte offset of the iterator. + pub fn offset_from(&self, expression: &Expression) -> R::Offset { + self.input.offset_from(&expression.0) + } +} + +#[cfg(feature = "fallible-iterator")] +impl fallible_iterator::FallibleIterator for OperationIter { + type Item = Operation; + type Error = Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + OperationIter::next(self) + } +} + +/// Specification of what storage should be used for [`Evaluation`]. +/// +#[cfg_attr( + feature = "read", + doc = " +Normally you would only need to use [`StoreOnHeap`], which places the stacks and the results +on the heap using [`Vec`]. This is the default storage type parameter for [`Evaluation`]. +" +)] +/// +/// If you need to avoid [`Evaluation`] from allocating memory, e.g. for signal safety, +/// you can provide you own storage specification: +/// ```rust,no_run +/// # use gimli::*; +/// # let bytecode = EndianSlice::new(&[], LittleEndian); +/// # let encoding = unimplemented!(); +/// # let get_register_value = |_, _| Value::Generic(42); +/// # let get_frame_base = || 0xdeadbeef; +/// # +/// struct StoreOnStack; +/// +/// impl EvaluationStorage for StoreOnStack { +/// type Stack = [Value; 64]; +/// type ExpressionStack = [(R, R); 4]; +/// type Result = [Piece; 1]; +/// } +/// +/// let mut eval = Evaluation::<_, StoreOnStack>::new_in(bytecode, encoding); +/// let mut result = eval.evaluate().unwrap(); +/// while result != EvaluationResult::Complete { +/// match result { +/// EvaluationResult::RequiresRegister { register, base_type } => { +/// let value = get_register_value(register, base_type); +/// result = eval.resume_with_register(value).unwrap(); +/// }, +/// EvaluationResult::RequiresFrameBase => { +/// let frame_base = get_frame_base(); +/// result = eval.resume_with_frame_base(frame_base).unwrap(); +/// }, +/// _ => unimplemented!(), +/// }; +/// } +/// +/// let result = eval.as_result(); +/// println!("{:?}", result); +/// ``` +pub trait EvaluationStorage { + /// The storage used for the evaluation stack. + type Stack: ArrayLike; + /// The storage used for the expression stack. + type ExpressionStack: ArrayLike; + /// The storage used for the results. + type Result: ArrayLike>; +} + +#[cfg(feature = "read")] +impl EvaluationStorage for StoreOnHeap { + type Stack = Vec; + type ExpressionStack = Vec<(R, R)>; + type Result = Vec>; +} + +/// A DWARF expression evaluator. +/// +/// # Usage +/// A DWARF expression may require additional data to produce a final result, +/// such as the value of a register or a memory location. Once initial setup +/// is complete (i.e. `set_initial_value()`, `set_object_address()`) the +/// consumer calls the `evaluate()` method. That returns an `EvaluationResult`, +/// which is either `EvaluationResult::Complete` or a value indicating what +/// data is needed to resume the `Evaluation`. The consumer is responsible for +/// producing that data and resuming the computation with the correct method, +/// as documented for `EvaluationResult`. Only once an `EvaluationResult::Complete` +/// is returned can the consumer call `result()`. +/// +/// This design allows the consumer of `Evaluation` to decide how and when to +/// produce the required data and resume the computation. The `Evaluation` can +/// be driven synchronously (as shown below) or by some asynchronous mechanism +/// such as futures. +/// +/// # Examples +/// ```rust,no_run +/// use gimli::{Evaluation, EvaluationResult, Expression}; +/// # let bytecode = gimli::EndianSlice::new(&[], gimli::LittleEndian); +/// # let encoding = unimplemented!(); +/// # let get_register_value = |_, _| gimli::Value::Generic(42); +/// # let get_frame_base = || 0xdeadbeef; +/// +/// let mut eval = Evaluation::new(bytecode, encoding); +/// let mut result = eval.evaluate().unwrap(); +/// while result != EvaluationResult::Complete { +/// match result { +/// EvaluationResult::RequiresRegister { register, base_type } => { +/// let value = get_register_value(register, base_type); +/// result = eval.resume_with_register(value).unwrap(); +/// }, +/// EvaluationResult::RequiresFrameBase => { +/// let frame_base = get_frame_base(); +/// result = eval.resume_with_frame_base(frame_base).unwrap(); +/// }, +/// _ => unimplemented!(), +/// }; +/// } +/// +/// let result = eval.result(); +/// println!("{:?}", result); +/// ``` +#[derive(Debug)] +pub struct Evaluation = StoreOnHeap> { + bytecode: R, + encoding: Encoding, + object_address: Option, + max_iterations: Option, + iteration: u32, + state: EvaluationState, + + // Stack operations are done on word-sized values. We do all + // operations on 64-bit values, and then mask the results + // appropriately when popping. + addr_mask: u64, + + // The stack. + stack: ArrayVec, + + // The next operation to decode and evaluate. + pc: R, + + // If we see a DW_OP_call* operation, the previous PC and bytecode + // is stored here while evaluating the subroutine. + expression_stack: ArrayVec, + + value_result: Option, + result: ArrayVec, +} + +#[cfg(feature = "read")] +impl Evaluation { + /// Create a new DWARF expression evaluator. + /// + /// The new evaluator is created without an initial value, without + /// an object address, and without a maximum number of iterations. + pub fn new(bytecode: R, encoding: Encoding) -> Self { + Self::new_in(bytecode, encoding) + } + + /// Get the result of this `Evaluation`. + /// + /// # Panics + /// Panics if this `Evaluation` has not been driven to completion. + pub fn result(self) -> Vec> { + match self.state { + EvaluationState::Complete => self.result.into_vec(), + _ => { + panic!("Called `Evaluation::result` on an `Evaluation` that has not been completed") + } + } + } +} + +impl> Evaluation { + /// Create a new DWARF expression evaluator. + /// + /// The new evaluator is created without an initial value, without + /// an object address, and without a maximum number of iterations. + pub fn new_in(bytecode: R, encoding: Encoding) -> Self { + let pc = bytecode.clone(); + Evaluation { + bytecode, + encoding, + object_address: None, + max_iterations: None, + iteration: 0, + state: EvaluationState::Start(None), + addr_mask: if encoding.address_size == 8 { + !0u64 + } else { + (1 << (8 * u64::from(encoding.address_size))) - 1 + }, + stack: Default::default(), + expression_stack: Default::default(), + pc, + value_result: None, + result: Default::default(), + } + } + + /// Set an initial value to be pushed on the DWARF expression + /// evaluator's stack. This can be used in cases like + /// `DW_AT_vtable_elem_location`, which require a value on the + /// stack before evaluation commences. If no initial value is + /// set, and the expression uses an opcode requiring the initial + /// value, then evaluation will fail with an error. + /// + /// # Panics + /// Panics if `set_initial_value()` has already been called, or if + /// `evaluate()` has already been called. + pub fn set_initial_value(&mut self, value: u64) { + match self.state { + EvaluationState::Start(None) => { + self.state = EvaluationState::Start(Some(value)); + } + _ => panic!( + "`Evaluation::set_initial_value` was called twice, or after evaluation began." + ), + }; + } + + /// Set the enclosing object's address, as used by + /// `DW_OP_push_object_address`. If no object address is set, and + /// the expression uses an opcode requiring the object address, + /// then evaluation will fail with an error. + pub fn set_object_address(&mut self, value: u64) { + self.object_address = Some(value); + } + + /// Set the maximum number of iterations to be allowed by the + /// expression evaluator. + /// + /// An iteration corresponds approximately to the evaluation of a + /// single operation in an expression ("approximately" because the + /// implementation may allow two such operations in some cases). + /// The default is not to have a maximum; once set, it's not + /// possible to go back to this default state. This value can be + /// set to avoid denial of service attacks by bad DWARF bytecode. + pub fn set_max_iterations(&mut self, value: u32) { + self.max_iterations = Some(value); + } + + fn pop(&mut self) -> Result { + match self.stack.pop() { + Some(value) => Ok(value), + None => Err(Error::NotEnoughStackItems), + } + } + + fn push(&mut self, value: Value) -> Result<()> { + self.stack.try_push(value).map_err(|_| Error::StackFull) + } + + fn evaluate_one_operation(&mut self) -> Result> { + let operation = Operation::parse(&mut self.pc, self.encoding)?; + + match operation { + Operation::Deref { + base_type, + size, + space, + } => { + let entry = self.pop()?; + let addr = entry.to_u64(self.addr_mask)?; + let addr_space = if space { + let entry = self.pop()?; + let value = entry.to_u64(self.addr_mask)?; + Some(value) + } else { + None + }; + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::Memory, + EvaluationResult::RequiresMemory { + address: addr, + size, + space: addr_space, + base_type, + }, + )); + } + + Operation::Drop => { + self.pop()?; + } + Operation::Pick { index } => { + let len = self.stack.len(); + let index = index as usize; + if index >= len { + return Err(Error::NotEnoughStackItems); + } + let value = self.stack[len - index - 1]; + self.push(value)?; + } + Operation::Swap => { + let top = self.pop()?; + let next = self.pop()?; + self.push(top)?; + self.push(next)?; + } + Operation::Rot => { + let one = self.pop()?; + let two = self.pop()?; + let three = self.pop()?; + self.push(one)?; + self.push(three)?; + self.push(two)?; + } + + Operation::Abs => { + let value = self.pop()?; + let result = value.abs(self.addr_mask)?; + self.push(result)?; + } + Operation::And => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.and(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Div => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.div(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Minus => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.sub(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Mod => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.rem(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Mul => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.mul(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Neg => { + let v = self.pop()?; + let result = v.neg(self.addr_mask)?; + self.push(result)?; + } + Operation::Not => { + let value = self.pop()?; + let result = value.not(self.addr_mask)?; + self.push(result)?; + } + Operation::Or => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.or(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Plus => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.add(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::PlusConstant { value } => { + let lhs = self.pop()?; + let rhs = Value::from_u64(lhs.value_type(), value)?; + let result = lhs.add(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Shl => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.shl(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Shr => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.shr(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Shra => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.shra(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Xor => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.xor(rhs, self.addr_mask)?; + self.push(result)?; + } + + Operation::Bra { target } => { + let entry = self.pop()?; + let v = entry.to_u64(self.addr_mask)?; + if v != 0 { + self.pc = compute_pc(&self.pc, &self.bytecode, target)?; + } + } + + Operation::Eq => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.eq(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Ge => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.ge(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Gt => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.gt(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Le => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.le(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Lt => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.lt(rhs, self.addr_mask)?; + self.push(result)?; + } + Operation::Ne => { + let rhs = self.pop()?; + let lhs = self.pop()?; + let result = lhs.ne(rhs, self.addr_mask)?; + self.push(result)?; + } + + Operation::Skip { target } => { + self.pc = compute_pc(&self.pc, &self.bytecode, target)?; + } + + Operation::UnsignedConstant { value } => { + self.push(Value::Generic(value))?; + } + + Operation::SignedConstant { value } => { + self.push(Value::Generic(value as u64))?; + } + + Operation::RegisterOffset { + register, + offset, + base_type, + } => { + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::Register { offset }, + EvaluationResult::RequiresRegister { + register, + base_type, + }, + )); + } + + Operation::FrameOffset { offset } => { + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::FrameBase { offset }, + EvaluationResult::RequiresFrameBase, + )); + } + + Operation::Nop => {} + + Operation::PushObjectAddress => { + if let Some(value) = self.object_address { + self.push(Value::Generic(value))?; + } else { + return Err(Error::InvalidPushObjectAddress); + } + } + + Operation::Call { offset } => { + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::AtLocation, + EvaluationResult::RequiresAtLocation(offset), + )); + } + + Operation::TLS => { + let entry = self.pop()?; + let index = entry.to_u64(self.addr_mask)?; + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::Tls, + EvaluationResult::RequiresTls(index), + )); + } + + Operation::CallFrameCFA => { + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::Cfa, + EvaluationResult::RequiresCallFrameCfa, + )); + } + + Operation::Register { register } => { + let location = Location::Register { register }; + return Ok(OperationEvaluationResult::Complete { location }); + } + + Operation::ImplicitValue { ref data } => { + let location = Location::Bytes { + value: data.clone(), + }; + return Ok(OperationEvaluationResult::Complete { location }); + } + + Operation::StackValue => { + let value = self.pop()?; + let location = Location::Value { value }; + return Ok(OperationEvaluationResult::Complete { location }); + } + + Operation::ImplicitPointer { value, byte_offset } => { + let location = Location::ImplicitPointer { value, byte_offset }; + return Ok(OperationEvaluationResult::Complete { location }); + } + + Operation::EntryValue { ref expression } => { + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::EntryValue, + EvaluationResult::RequiresEntryValue(Expression(expression.clone())), + )); + } + + Operation::ParameterRef { offset } => { + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::ParameterRef, + EvaluationResult::RequiresParameterRef(offset), + )); + } + + Operation::Address { address } => { + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::RelocatedAddress, + EvaluationResult::RequiresRelocatedAddress(address), + )); + } + + Operation::AddressIndex { index } => { + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::IndexedAddress, + EvaluationResult::RequiresIndexedAddress { + index, + relocate: true, + }, + )); + } + + Operation::ConstantIndex { index } => { + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::IndexedAddress, + EvaluationResult::RequiresIndexedAddress { + index, + relocate: false, + }, + )); + } + + Operation::Piece { + size_in_bits, + bit_offset, + } => { + let location = if self.stack.is_empty() { + Location::Empty + } else { + let entry = self.pop()?; + let address = entry.to_u64(self.addr_mask)?; + Location::Address { address } + }; + self.result + .try_push(Piece { + size_in_bits: Some(size_in_bits), + bit_offset, + location, + }) + .map_err(|_| Error::StackFull)?; + return Ok(OperationEvaluationResult::Piece); + } + + Operation::TypedLiteral { base_type, value } => { + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::TypedLiteral { value }, + EvaluationResult::RequiresBaseType(base_type), + )); + } + Operation::Convert { base_type } => { + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::Convert, + EvaluationResult::RequiresBaseType(base_type), + )); + } + Operation::Reinterpret { base_type } => { + return Ok(OperationEvaluationResult::Waiting( + EvaluationWaiting::Reinterpret, + EvaluationResult::RequiresBaseType(base_type), + )); + } + Operation::WasmLocal { .. } + | Operation::WasmGlobal { .. } + | Operation::WasmStack { .. } => { + return Err(Error::UnsupportedEvaluation); + } + } + + Ok(OperationEvaluationResult::Incomplete) + } + + /// Get the result if this is an evaluation for a value. + /// + /// Returns `None` if the evaluation contained operations that are only + /// valid for location descriptions. + /// + /// # Panics + /// Panics if this `Evaluation` has not been driven to completion. + pub fn value_result(&self) -> Option { + match self.state { + EvaluationState::Complete => self.value_result, + _ => { + panic!("Called `Evaluation::value_result` on an `Evaluation` that has not been completed") + } + } + } + + /// Get the result of this `Evaluation`. + /// + /// # Panics + /// Panics if this `Evaluation` has not been driven to completion. + pub fn as_result(&self) -> &[Piece] { + match self.state { + EvaluationState::Complete => &self.result, + _ => { + panic!( + "Called `Evaluation::as_result` on an `Evaluation` that has not been completed" + ) + } + } + } + + /// Evaluate a DWARF expression. This method should only ever be called + /// once. If the returned `EvaluationResult` is not + /// `EvaluationResult::Complete`, the caller should provide the required + /// value and resume the evaluation by calling the appropriate resume_with + /// method on `Evaluation`. + pub fn evaluate(&mut self) -> Result> { + match self.state { + EvaluationState::Start(initial_value) => { + if let Some(value) = initial_value { + self.push(Value::Generic(value))?; + } + self.state = EvaluationState::Ready; + } + EvaluationState::Ready => {} + EvaluationState::Error(err) => return Err(err), + EvaluationState::Complete => return Ok(EvaluationResult::Complete), + EvaluationState::Waiting(_) => panic!(), + }; + + match self.evaluate_internal() { + Ok(r) => Ok(r), + Err(e) => { + self.state = EvaluationState::Error(e); + Err(e) + } + } + } + + /// Resume the `Evaluation` with the provided memory `value`. This will apply + /// the provided memory value to the evaluation and continue evaluating + /// opcodes until the evaluation is completed, reaches an error, or needs + /// more information again. + /// + /// # Panics + /// Panics if this `Evaluation` did not previously stop with `EvaluationResult::RequiresMemory`. + pub fn resume_with_memory(&mut self, value: Value) -> Result> { + match self.state { + EvaluationState::Error(err) => return Err(err), + EvaluationState::Waiting(EvaluationWaiting::Memory) => { + self.push(value)?; + } + _ => panic!( + "Called `Evaluation::resume_with_memory` without a preceding `EvaluationResult::RequiresMemory`" + ), + }; + + self.evaluate_internal() + } + + /// Resume the `Evaluation` with the provided `register` value. This will apply + /// the provided register value to the evaluation and continue evaluating + /// opcodes until the evaluation is completed, reaches an error, or needs + /// more information again. + /// + /// # Panics + /// Panics if this `Evaluation` did not previously stop with `EvaluationResult::RequiresRegister`. + pub fn resume_with_register(&mut self, value: Value) -> Result> { + match self.state { + EvaluationState::Error(err) => return Err(err), + EvaluationState::Waiting(EvaluationWaiting::Register { offset }) => { + let offset = Value::from_u64(value.value_type(), offset as u64)?; + let value = value.add(offset, self.addr_mask)?; + self.push(value)?; + } + _ => panic!( + "Called `Evaluation::resume_with_register` without a preceding `EvaluationResult::RequiresRegister`" + ), + }; + + self.evaluate_internal() + } + + /// Resume the `Evaluation` with the provided `frame_base`. This will + /// apply the provided frame base value to the evaluation and continue + /// evaluating opcodes until the evaluation is completed, reaches an error, + /// or needs more information again. + /// + /// # Panics + /// Panics if this `Evaluation` did not previously stop with `EvaluationResult::RequiresFrameBase`. + pub fn resume_with_frame_base(&mut self, frame_base: u64) -> Result> { + match self.state { + EvaluationState::Error(err) => return Err(err), + EvaluationState::Waiting(EvaluationWaiting::FrameBase { offset }) => { + self.push(Value::Generic(frame_base.wrapping_add(offset as u64)))?; + } + _ => panic!( + "Called `Evaluation::resume_with_frame_base` without a preceding `EvaluationResult::RequiresFrameBase`" + ), + }; + + self.evaluate_internal() + } + + /// Resume the `Evaluation` with the provided `value`. This will apply + /// the provided TLS value to the evaluation and continue evaluating + /// opcodes until the evaluation is completed, reaches an error, or needs + /// more information again. + /// + /// # Panics + /// Panics if this `Evaluation` did not previously stop with `EvaluationResult::RequiresTls`. + pub fn resume_with_tls(&mut self, value: u64) -> Result> { + match self.state { + EvaluationState::Error(err) => return Err(err), + EvaluationState::Waiting(EvaluationWaiting::Tls) => { + self.push(Value::Generic(value))?; + } + _ => panic!( + "Called `Evaluation::resume_with_tls` without a preceding `EvaluationResult::RequiresTls`" + ), + }; + + self.evaluate_internal() + } + + /// Resume the `Evaluation` with the provided `cfa`. This will + /// apply the provided CFA value to the evaluation and continue evaluating + /// opcodes until the evaluation is completed, reaches an error, or needs + /// more information again. + /// + /// # Panics + /// Panics if this `Evaluation` did not previously stop with `EvaluationResult::RequiresCallFrameCfa`. + pub fn resume_with_call_frame_cfa(&mut self, cfa: u64) -> Result> { + match self.state { + EvaluationState::Error(err) => return Err(err), + EvaluationState::Waiting(EvaluationWaiting::Cfa) => { + self.push(Value::Generic(cfa))?; + } + _ => panic!( + "Called `Evaluation::resume_with_call_frame_cfa` without a preceding `EvaluationResult::RequiresCallFrameCfa`" + ), + }; + + self.evaluate_internal() + } + + /// Resume the `Evaluation` with the provided `bytes`. This will + /// continue processing the evaluation with the new expression provided + /// until the evaluation is completed, reaches an error, or needs more + /// information again. + /// + /// # Panics + /// Panics if this `Evaluation` did not previously stop with `EvaluationResult::RequiresAtLocation`. + pub fn resume_with_at_location(&mut self, mut bytes: R) -> Result> { + match self.state { + EvaluationState::Error(err) => return Err(err), + EvaluationState::Waiting(EvaluationWaiting::AtLocation) => { + if !bytes.is_empty() { + let mut pc = bytes.clone(); + mem::swap(&mut pc, &mut self.pc); + mem::swap(&mut bytes, &mut self.bytecode); + self.expression_stack.try_push((pc, bytes)).map_err(|_| Error::StackFull)?; + } + } + _ => panic!( + "Called `Evaluation::resume_with_at_location` without a precedeing `EvaluationResult::RequiresAtLocation`" + ), + }; + + self.evaluate_internal() + } + + /// Resume the `Evaluation` with the provided `entry_value`. This will + /// apply the provided entry value to the evaluation and continue evaluating + /// opcodes until the evaluation is completed, reaches an error, or needs + /// more information again. + /// + /// # Panics + /// Panics if this `Evaluation` did not previously stop with `EvaluationResult::RequiresEntryValue`. + pub fn resume_with_entry_value(&mut self, entry_value: Value) -> Result> { + match self.state { + EvaluationState::Error(err) => return Err(err), + EvaluationState::Waiting(EvaluationWaiting::EntryValue) => { + self.push(entry_value)?; + } + _ => panic!( + "Called `Evaluation::resume_with_entry_value` without a preceding `EvaluationResult::RequiresEntryValue`" + ), + }; + + self.evaluate_internal() + } + + /// Resume the `Evaluation` with the provided `parameter_value`. This will + /// apply the provided parameter value to the evaluation and continue evaluating + /// opcodes until the evaluation is completed, reaches an error, or needs + /// more information again. + /// + /// # Panics + /// Panics if this `Evaluation` did not previously stop with `EvaluationResult::RequiresParameterRef`. + pub fn resume_with_parameter_ref( + &mut self, + parameter_value: u64, + ) -> Result> { + match self.state { + EvaluationState::Error(err) => return Err(err), + EvaluationState::Waiting(EvaluationWaiting::ParameterRef) => { + self.push(Value::Generic(parameter_value))?; + } + _ => panic!( + "Called `Evaluation::resume_with_parameter_ref` without a preceding `EvaluationResult::RequiresParameterRef`" + ), + }; + + self.evaluate_internal() + } + + /// Resume the `Evaluation` with the provided relocated `address`. This will use the + /// provided relocated address for the operation that required it, and continue evaluating + /// opcodes until the evaluation is completed, reaches an error, or needs + /// more information again. + /// + /// # Panics + /// Panics if this `Evaluation` did not previously stop with + /// `EvaluationResult::RequiresRelocatedAddress`. + pub fn resume_with_relocated_address(&mut self, address: u64) -> Result> { + match self.state { + EvaluationState::Error(err) => return Err(err), + EvaluationState::Waiting(EvaluationWaiting::RelocatedAddress) => { + self.push(Value::Generic(address))?; + } + _ => panic!( + "Called `Evaluation::resume_with_relocated_address` without a preceding `EvaluationResult::RequiresRelocatedAddress`" + ), + }; + + self.evaluate_internal() + } + + /// Resume the `Evaluation` with the provided indexed `address`. This will use the + /// provided indexed address for the operation that required it, and continue evaluating + /// opcodes until the evaluation is completed, reaches an error, or needs + /// more information again. + /// + /// # Panics + /// Panics if this `Evaluation` did not previously stop with + /// `EvaluationResult::RequiresIndexedAddress`. + pub fn resume_with_indexed_address(&mut self, address: u64) -> Result> { + match self.state { + EvaluationState::Error(err) => return Err(err), + EvaluationState::Waiting(EvaluationWaiting::IndexedAddress) => { + self.push(Value::Generic(address))?; + } + _ => panic!( + "Called `Evaluation::resume_with_indexed_address` without a preceding `EvaluationResult::RequiresIndexedAddress`" + ), + }; + + self.evaluate_internal() + } + + /// Resume the `Evaluation` with the provided `base_type`. This will use the + /// provided base type for the operation that required it, and continue evaluating + /// opcodes until the evaluation is completed, reaches an error, or needs + /// more information again. + /// + /// # Panics + /// Panics if this `Evaluation` did not previously stop with `EvaluationResult::RequiresBaseType`. + pub fn resume_with_base_type(&mut self, base_type: ValueType) -> Result> { + let value = match self.state { + EvaluationState::Error(err) => return Err(err), + EvaluationState::Waiting(EvaluationWaiting::TypedLiteral { ref value }) => { + Value::parse(base_type, value.clone())? + } + EvaluationState::Waiting(EvaluationWaiting::Convert) => { + let entry = self.pop()?; + entry.convert(base_type, self.addr_mask)? + } + EvaluationState::Waiting(EvaluationWaiting::Reinterpret) => { + let entry = self.pop()?; + entry.reinterpret(base_type, self.addr_mask)? + } + _ => panic!( + "Called `Evaluation::resume_with_base_type` without a preceding `EvaluationResult::RequiresBaseType`" + ), + }; + self.push(value)?; + self.evaluate_internal() + } + + fn end_of_expression(&mut self) -> bool { + while self.pc.is_empty() { + match self.expression_stack.pop() { + Some((newpc, newbytes)) => { + self.pc = newpc; + self.bytecode = newbytes; + } + None => return true, + } + } + false + } + + fn evaluate_internal(&mut self) -> Result> { + while !self.end_of_expression() { + self.iteration += 1; + if let Some(max_iterations) = self.max_iterations { + if self.iteration > max_iterations { + return Err(Error::TooManyIterations); + } + } + + let op_result = self.evaluate_one_operation()?; + match op_result { + OperationEvaluationResult::Piece => {} + OperationEvaluationResult::Incomplete => { + if self.end_of_expression() && !self.result.is_empty() { + // We saw a piece earlier and then some + // unterminated piece. It's not clear this is + // well-defined. + return Err(Error::InvalidPiece); + } + } + OperationEvaluationResult::Complete { location } => { + if self.end_of_expression() { + if !self.result.is_empty() { + // We saw a piece earlier and then some + // unterminated piece. It's not clear this is + // well-defined. + return Err(Error::InvalidPiece); + } + self.result + .try_push(Piece { + size_in_bits: None, + bit_offset: None, + location, + }) + .map_err(|_| Error::StackFull)?; + } else { + // If there are more operations, then the next operation must + // be a Piece. + match Operation::parse(&mut self.pc, self.encoding)? { + Operation::Piece { + size_in_bits, + bit_offset, + } => { + self.result + .try_push(Piece { + size_in_bits: Some(size_in_bits), + bit_offset, + location, + }) + .map_err(|_| Error::StackFull)?; + } + _ => { + let value = + self.bytecode.len().into_u64() - self.pc.len().into_u64() - 1; + return Err(Error::InvalidExpressionTerminator(value)); + } + } + } + } + OperationEvaluationResult::Waiting(waiting, result) => { + self.state = EvaluationState::Waiting(waiting); + return Ok(result); + } + } + } + + // If no pieces have been seen, use the stack top as the + // result. + if self.result.is_empty() { + let entry = self.pop()?; + self.value_result = Some(entry); + let addr = entry.to_u64(self.addr_mask)?; + self.result + .try_push(Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Address { address: addr }, + }) + .map_err(|_| Error::StackFull)?; + } + + self.state = EvaluationState::Complete; + Ok(EvaluationResult::Complete) + } +} + +#[cfg(test)] +// Tests require leb128::write. +#[cfg(feature = "write")] +mod tests { + use super::*; + use crate::common::Format; + use crate::constants; + use crate::endianity::LittleEndian; + use crate::leb128; + use crate::read::{EndianSlice, Error, Result, UnitOffset}; + use crate::test_util::GimliSectionMethods; + use core::usize; + use test_assembler::{Endian, Section}; + + fn encoding4() -> Encoding { + Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + } + } + + fn encoding8() -> Encoding { + Encoding { + format: Format::Dwarf64, + version: 4, + address_size: 8, + } + } + + #[test] + fn test_compute_pc() { + // Contents don't matter for this test, just length. + let bytes = [0, 1, 2, 3, 4]; + let bytecode = &bytes[..]; + let ebuf = &EndianSlice::new(bytecode, LittleEndian); + + assert_eq!(compute_pc(ebuf, ebuf, 0), Ok(*ebuf)); + assert_eq!( + compute_pc(ebuf, ebuf, -1), + Err(Error::BadBranchTarget(usize::MAX as u64)) + ); + assert_eq!(compute_pc(ebuf, ebuf, 5), Ok(ebuf.range_from(5..))); + assert_eq!( + compute_pc(&ebuf.range_from(3..), ebuf, -2), + Ok(ebuf.range_from(1..)) + ); + assert_eq!( + compute_pc(&ebuf.range_from(2..), ebuf, 2), + Ok(ebuf.range_from(4..)) + ); + } + + fn check_op_parse_simple<'input>( + input: &'input [u8], + expect: &Operation>, + encoding: Encoding, + ) { + let buf = EndianSlice::new(input, LittleEndian); + let mut pc = buf; + let value = Operation::parse(&mut pc, encoding); + match value { + Ok(val) => { + assert_eq!(val, *expect); + assert_eq!(pc.len(), 0); + } + _ => panic!("Unexpected result"), + } + } + + fn check_op_parse_eof(input: &[u8], encoding: Encoding) { + let buf = EndianSlice::new(input, LittleEndian); + let mut pc = buf; + match Operation::parse(&mut pc, encoding) { + Err(Error::UnexpectedEof(id)) => { + assert!(buf.lookup_offset_id(id).is_some()); + } + + _ => panic!("Unexpected result"), + } + } + + fn check_op_parse( + input: F, + expect: &Operation>, + encoding: Encoding, + ) where + F: Fn(Section) -> Section, + { + let input = input(Section::with_endian(Endian::Little)) + .get_contents() + .unwrap(); + for i in 1..input.len() { + check_op_parse_eof(&input[..i], encoding); + } + check_op_parse_simple(&input, expect, encoding); + } + + #[test] + fn test_op_parse_onebyte() { + // Doesn't matter for this test. + let encoding = encoding4(); + + // Test all single-byte opcodes. + #[rustfmt::skip] + let inputs = [ + ( + constants::DW_OP_deref, + Operation::Deref { + base_type: generic_type(), + size: encoding.address_size, + space: false, + }, + ), + (constants::DW_OP_dup, Operation::Pick { index: 0 }), + (constants::DW_OP_drop, Operation::Drop), + (constants::DW_OP_over, Operation::Pick { index: 1 }), + (constants::DW_OP_swap, Operation::Swap), + (constants::DW_OP_rot, Operation::Rot), + ( + constants::DW_OP_xderef, + Operation::Deref { + base_type: generic_type(), + size: encoding.address_size, + space: true, + }, + ), + (constants::DW_OP_abs, Operation::Abs), + (constants::DW_OP_and, Operation::And), + (constants::DW_OP_div, Operation::Div), + (constants::DW_OP_minus, Operation::Minus), + (constants::DW_OP_mod, Operation::Mod), + (constants::DW_OP_mul, Operation::Mul), + (constants::DW_OP_neg, Operation::Neg), + (constants::DW_OP_not, Operation::Not), + (constants::DW_OP_or, Operation::Or), + (constants::DW_OP_plus, Operation::Plus), + (constants::DW_OP_shl, Operation::Shl), + (constants::DW_OP_shr, Operation::Shr), + (constants::DW_OP_shra, Operation::Shra), + (constants::DW_OP_xor, Operation::Xor), + (constants::DW_OP_eq, Operation::Eq), + (constants::DW_OP_ge, Operation::Ge), + (constants::DW_OP_gt, Operation::Gt), + (constants::DW_OP_le, Operation::Le), + (constants::DW_OP_lt, Operation::Lt), + (constants::DW_OP_ne, Operation::Ne), + (constants::DW_OP_lit0, Operation::UnsignedConstant { value: 0 }), + (constants::DW_OP_lit1, Operation::UnsignedConstant { value: 1 }), + (constants::DW_OP_lit2, Operation::UnsignedConstant { value: 2 }), + (constants::DW_OP_lit3, Operation::UnsignedConstant { value: 3 }), + (constants::DW_OP_lit4, Operation::UnsignedConstant { value: 4 }), + (constants::DW_OP_lit5, Operation::UnsignedConstant { value: 5 }), + (constants::DW_OP_lit6, Operation::UnsignedConstant { value: 6 }), + (constants::DW_OP_lit7, Operation::UnsignedConstant { value: 7 }), + (constants::DW_OP_lit8, Operation::UnsignedConstant { value: 8 }), + (constants::DW_OP_lit9, Operation::UnsignedConstant { value: 9 }), + (constants::DW_OP_lit10, Operation::UnsignedConstant { value: 10 }), + (constants::DW_OP_lit11, Operation::UnsignedConstant { value: 11 }), + (constants::DW_OP_lit12, Operation::UnsignedConstant { value: 12 }), + (constants::DW_OP_lit13, Operation::UnsignedConstant { value: 13 }), + (constants::DW_OP_lit14, Operation::UnsignedConstant { value: 14 }), + (constants::DW_OP_lit15, Operation::UnsignedConstant { value: 15 }), + (constants::DW_OP_lit16, Operation::UnsignedConstant { value: 16 }), + (constants::DW_OP_lit17, Operation::UnsignedConstant { value: 17 }), + (constants::DW_OP_lit18, Operation::UnsignedConstant { value: 18 }), + (constants::DW_OP_lit19, Operation::UnsignedConstant { value: 19 }), + (constants::DW_OP_lit20, Operation::UnsignedConstant { value: 20 }), + (constants::DW_OP_lit21, Operation::UnsignedConstant { value: 21 }), + (constants::DW_OP_lit22, Operation::UnsignedConstant { value: 22 }), + (constants::DW_OP_lit23, Operation::UnsignedConstant { value: 23 }), + (constants::DW_OP_lit24, Operation::UnsignedConstant { value: 24 }), + (constants::DW_OP_lit25, Operation::UnsignedConstant { value: 25 }), + (constants::DW_OP_lit26, Operation::UnsignedConstant { value: 26 }), + (constants::DW_OP_lit27, Operation::UnsignedConstant { value: 27 }), + (constants::DW_OP_lit28, Operation::UnsignedConstant { value: 28 }), + (constants::DW_OP_lit29, Operation::UnsignedConstant { value: 29 }), + (constants::DW_OP_lit30, Operation::UnsignedConstant { value: 30 }), + (constants::DW_OP_lit31, Operation::UnsignedConstant { value: 31 }), + (constants::DW_OP_reg0, Operation::Register { register: Register(0) }), + (constants::DW_OP_reg1, Operation::Register { register: Register(1) }), + (constants::DW_OP_reg2, Operation::Register { register: Register(2) }), + (constants::DW_OP_reg3, Operation::Register { register: Register(3) }), + (constants::DW_OP_reg4, Operation::Register { register: Register(4) }), + (constants::DW_OP_reg5, Operation::Register { register: Register(5) }), + (constants::DW_OP_reg6, Operation::Register { register: Register(6) }), + (constants::DW_OP_reg7, Operation::Register { register: Register(7) }), + (constants::DW_OP_reg8, Operation::Register { register: Register(8) }), + (constants::DW_OP_reg9, Operation::Register { register: Register(9) }), + (constants::DW_OP_reg10, Operation::Register { register: Register(10) }), + (constants::DW_OP_reg11, Operation::Register { register: Register(11) }), + (constants::DW_OP_reg12, Operation::Register { register: Register(12) }), + (constants::DW_OP_reg13, Operation::Register { register: Register(13) }), + (constants::DW_OP_reg14, Operation::Register { register: Register(14) }), + (constants::DW_OP_reg15, Operation::Register { register: Register(15) }), + (constants::DW_OP_reg16, Operation::Register { register: Register(16) }), + (constants::DW_OP_reg17, Operation::Register { register: Register(17) }), + (constants::DW_OP_reg18, Operation::Register { register: Register(18) }), + (constants::DW_OP_reg19, Operation::Register { register: Register(19) }), + (constants::DW_OP_reg20, Operation::Register { register: Register(20) }), + (constants::DW_OP_reg21, Operation::Register { register: Register(21) }), + (constants::DW_OP_reg22, Operation::Register { register: Register(22) }), + (constants::DW_OP_reg23, Operation::Register { register: Register(23) }), + (constants::DW_OP_reg24, Operation::Register { register: Register(24) }), + (constants::DW_OP_reg25, Operation::Register { register: Register(25) }), + (constants::DW_OP_reg26, Operation::Register { register: Register(26) }), + (constants::DW_OP_reg27, Operation::Register { register: Register(27) }), + (constants::DW_OP_reg28, Operation::Register { register: Register(28) }), + (constants::DW_OP_reg29, Operation::Register { register: Register(29) }), + (constants::DW_OP_reg30, Operation::Register { register: Register(30) }), + (constants::DW_OP_reg31, Operation::Register { register: Register(31) }), + (constants::DW_OP_nop, Operation::Nop), + (constants::DW_OP_push_object_address, Operation::PushObjectAddress), + (constants::DW_OP_form_tls_address, Operation::TLS), + (constants::DW_OP_GNU_push_tls_address, Operation::TLS), + (constants::DW_OP_call_frame_cfa, Operation::CallFrameCFA), + (constants::DW_OP_stack_value, Operation::StackValue), + ]; + + let input = []; + check_op_parse_eof(&input[..], encoding); + + for item in inputs.iter() { + let (opcode, ref result) = *item; + check_op_parse(|s| s.D8(opcode.0), result, encoding); + } + } + + #[test] + fn test_op_parse_twobyte() { + // Doesn't matter for this test. + let encoding = encoding4(); + + let inputs = [ + ( + constants::DW_OP_const1u, + 23, + Operation::UnsignedConstant { value: 23 }, + ), + ( + constants::DW_OP_const1s, + (-23i8) as u8, + Operation::SignedConstant { value: -23 }, + ), + (constants::DW_OP_pick, 7, Operation::Pick { index: 7 }), + ( + constants::DW_OP_deref_size, + 19, + Operation::Deref { + base_type: generic_type(), + size: 19, + space: false, + }, + ), + ( + constants::DW_OP_xderef_size, + 19, + Operation::Deref { + base_type: generic_type(), + size: 19, + space: true, + }, + ), + ]; + + for item in inputs.iter() { + let (opcode, arg, ref result) = *item; + check_op_parse(|s| s.D8(opcode.0).D8(arg), result, encoding); + } + } + + #[test] + fn test_op_parse_threebyte() { + // Doesn't matter for this test. + let encoding = encoding4(); + + // While bra and skip are 3-byte opcodes, they aren't tested here, + // but rather specially in their own function. + let inputs = [ + ( + constants::DW_OP_const2u, + 23, + Operation::UnsignedConstant { value: 23 }, + ), + ( + constants::DW_OP_const2s, + (-23i16) as u16, + Operation::SignedConstant { value: -23 }, + ), + ( + constants::DW_OP_call2, + 1138, + Operation::Call { + offset: DieReference::UnitRef(UnitOffset(1138)), + }, + ), + ( + constants::DW_OP_bra, + (-23i16) as u16, + Operation::Bra { target: -23 }, + ), + ( + constants::DW_OP_skip, + (-23i16) as u16, + Operation::Skip { target: -23 }, + ), + ]; + + for item in inputs.iter() { + let (opcode, arg, ref result) = *item; + check_op_parse(|s| s.D8(opcode.0).L16(arg), result, encoding); + } + } + + #[test] + fn test_op_parse_fivebyte() { + // There are some tests here that depend on address size. + let encoding = encoding4(); + + let inputs = [ + ( + constants::DW_OP_addr, + 0x1234_5678, + Operation::Address { + address: 0x1234_5678, + }, + ), + ( + constants::DW_OP_const4u, + 0x1234_5678, + Operation::UnsignedConstant { value: 0x1234_5678 }, + ), + ( + constants::DW_OP_const4s, + (-23i32) as u32, + Operation::SignedConstant { value: -23 }, + ), + ( + constants::DW_OP_call4, + 0x1234_5678, + Operation::Call { + offset: DieReference::UnitRef(UnitOffset(0x1234_5678)), + }, + ), + ( + constants::DW_OP_call_ref, + 0x1234_5678, + Operation::Call { + offset: DieReference::DebugInfoRef(DebugInfoOffset(0x1234_5678)), + }, + ), + ]; + + for item in inputs.iter() { + let (op, arg, ref expect) = *item; + check_op_parse(|s| s.D8(op.0).L32(arg), expect, encoding); + } + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_op_parse_ninebyte() { + // There are some tests here that depend on address size. + let encoding = encoding8(); + + let inputs = [ + ( + constants::DW_OP_addr, + 0x1234_5678_1234_5678, + Operation::Address { + address: 0x1234_5678_1234_5678, + }, + ), + ( + constants::DW_OP_const8u, + 0x1234_5678_1234_5678, + Operation::UnsignedConstant { + value: 0x1234_5678_1234_5678, + }, + ), + ( + constants::DW_OP_const8s, + (-23i64) as u64, + Operation::SignedConstant { value: -23 }, + ), + ( + constants::DW_OP_call_ref, + 0x1234_5678_1234_5678, + Operation::Call { + offset: DieReference::DebugInfoRef(DebugInfoOffset(0x1234_5678_1234_5678)), + }, + ), + ]; + + for item in inputs.iter() { + let (op, arg, ref expect) = *item; + check_op_parse(|s| s.D8(op.0).L64(arg), expect, encoding); + } + } + + #[test] + fn test_op_parse_sleb() { + // Doesn't matter for this test. + let encoding = encoding4(); + + let values = [ + -1i64, + 0, + 1, + 0x100, + 0x1eee_eeee, + 0x7fff_ffff_ffff_ffff, + -0x100, + -0x1eee_eeee, + -0x7fff_ffff_ffff_ffff, + ]; + for value in values.iter() { + let mut inputs = vec![ + ( + constants::DW_OP_consts.0, + Operation::SignedConstant { value: *value }, + ), + ( + constants::DW_OP_fbreg.0, + Operation::FrameOffset { offset: *value }, + ), + ]; + + for i in 0..32 { + inputs.push(( + constants::DW_OP_breg0.0 + i, + Operation::RegisterOffset { + register: Register(i.into()), + offset: *value, + base_type: UnitOffset(0), + }, + )); + } + + for item in inputs.iter() { + let (op, ref expect) = *item; + check_op_parse(|s| s.D8(op).sleb(*value), expect, encoding); + } + } + } + + #[test] + fn test_op_parse_uleb() { + // Doesn't matter for this test. + let encoding = encoding4(); + + let values = [ + 0, + 1, + 0x100, + (!0u16).into(), + 0x1eee_eeee, + 0x7fff_ffff_ffff_ffff, + !0u64, + ]; + for value in values.iter() { + let mut inputs = vec![ + ( + constants::DW_OP_constu, + Operation::UnsignedConstant { value: *value }, + ), + ( + constants::DW_OP_plus_uconst, + Operation::PlusConstant { value: *value }, + ), + ]; + + if *value <= (!0u16).into() { + inputs.push(( + constants::DW_OP_regx, + Operation::Register { + register: Register::from_u64(*value).unwrap(), + }, + )); + } + + if *value <= (!0u32).into() { + inputs.extend(&[ + ( + constants::DW_OP_addrx, + Operation::AddressIndex { + index: DebugAddrIndex(*value as usize), + }, + ), + ( + constants::DW_OP_constx, + Operation::ConstantIndex { + index: DebugAddrIndex(*value as usize), + }, + ), + ]); + } + + // FIXME + if *value < !0u64 / 8 { + inputs.push(( + constants::DW_OP_piece, + Operation::Piece { + size_in_bits: 8 * value, + bit_offset: None, + }, + )); + } + + for item in inputs.iter() { + let (op, ref expect) = *item; + let input = Section::with_endian(Endian::Little) + .D8(op.0) + .uleb(*value) + .get_contents() + .unwrap(); + check_op_parse_simple(&input, expect, encoding); + } + } + } + + #[test] + fn test_op_parse_bregx() { + // Doesn't matter for this test. + let encoding = encoding4(); + + let uvalues = [0, 1, 0x100, !0u16]; + let svalues = [ + -1i64, + 0, + 1, + 0x100, + 0x1eee_eeee, + 0x7fff_ffff_ffff_ffff, + -0x100, + -0x1eee_eeee, + -0x7fff_ffff_ffff_ffff, + ]; + + for v1 in uvalues.iter() { + for v2 in svalues.iter() { + check_op_parse( + |s| s.D8(constants::DW_OP_bregx.0).uleb((*v1).into()).sleb(*v2), + &Operation::RegisterOffset { + register: Register(*v1), + offset: *v2, + base_type: UnitOffset(0), + }, + encoding, + ); + } + } + } + + #[test] + fn test_op_parse_bit_piece() { + // Doesn't matter for this test. + let encoding = encoding4(); + + let values = [0, 1, 0x100, 0x1eee_eeee, 0x7fff_ffff_ffff_ffff, !0u64]; + + for v1 in values.iter() { + for v2 in values.iter() { + let input = Section::with_endian(Endian::Little) + .D8(constants::DW_OP_bit_piece.0) + .uleb(*v1) + .uleb(*v2) + .get_contents() + .unwrap(); + check_op_parse_simple( + &input, + &Operation::Piece { + size_in_bits: *v1, + bit_offset: Some(*v2), + }, + encoding, + ); + } + } + } + + #[test] + fn test_op_parse_implicit_value() { + // Doesn't matter for this test. + let encoding = encoding4(); + + let data = b"hello"; + + check_op_parse( + |s| { + s.D8(constants::DW_OP_implicit_value.0) + .uleb(data.len() as u64) + .append_bytes(&data[..]) + }, + &Operation::ImplicitValue { + data: EndianSlice::new(&data[..], LittleEndian), + }, + encoding, + ); + } + + #[test] + fn test_op_parse_const_type() { + // Doesn't matter for this test. + let encoding = encoding4(); + + let data = b"hello"; + + check_op_parse( + |s| { + s.D8(constants::DW_OP_const_type.0) + .uleb(100) + .D8(data.len() as u8) + .append_bytes(&data[..]) + }, + &Operation::TypedLiteral { + base_type: UnitOffset(100), + value: EndianSlice::new(&data[..], LittleEndian), + }, + encoding, + ); + check_op_parse( + |s| { + s.D8(constants::DW_OP_GNU_const_type.0) + .uleb(100) + .D8(data.len() as u8) + .append_bytes(&data[..]) + }, + &Operation::TypedLiteral { + base_type: UnitOffset(100), + value: EndianSlice::new(&data[..], LittleEndian), + }, + encoding, + ); + } + + #[test] + fn test_op_parse_regval_type() { + // Doesn't matter for this test. + let encoding = encoding4(); + + check_op_parse( + |s| s.D8(constants::DW_OP_regval_type.0).uleb(1).uleb(100), + &Operation::RegisterOffset { + register: Register(1), + offset: 0, + base_type: UnitOffset(100), + }, + encoding, + ); + check_op_parse( + |s| s.D8(constants::DW_OP_GNU_regval_type.0).uleb(1).uleb(100), + &Operation::RegisterOffset { + register: Register(1), + offset: 0, + base_type: UnitOffset(100), + }, + encoding, + ); + } + + #[test] + fn test_op_parse_deref_type() { + // Doesn't matter for this test. + let encoding = encoding4(); + + check_op_parse( + |s| s.D8(constants::DW_OP_deref_type.0).D8(8).uleb(100), + &Operation::Deref { + base_type: UnitOffset(100), + size: 8, + space: false, + }, + encoding, + ); + check_op_parse( + |s| s.D8(constants::DW_OP_GNU_deref_type.0).D8(8).uleb(100), + &Operation::Deref { + base_type: UnitOffset(100), + size: 8, + space: false, + }, + encoding, + ); + check_op_parse( + |s| s.D8(constants::DW_OP_xderef_type.0).D8(8).uleb(100), + &Operation::Deref { + base_type: UnitOffset(100), + size: 8, + space: true, + }, + encoding, + ); + } + + #[test] + fn test_op_convert() { + // Doesn't matter for this test. + let encoding = encoding4(); + + check_op_parse( + |s| s.D8(constants::DW_OP_convert.0).uleb(100), + &Operation::Convert { + base_type: UnitOffset(100), + }, + encoding, + ); + check_op_parse( + |s| s.D8(constants::DW_OP_GNU_convert.0).uleb(100), + &Operation::Convert { + base_type: UnitOffset(100), + }, + encoding, + ); + } + + #[test] + fn test_op_reinterpret() { + // Doesn't matter for this test. + let encoding = encoding4(); + + check_op_parse( + |s| s.D8(constants::DW_OP_reinterpret.0).uleb(100), + &Operation::Reinterpret { + base_type: UnitOffset(100), + }, + encoding, + ); + check_op_parse( + |s| s.D8(constants::DW_OP_GNU_reinterpret.0).uleb(100), + &Operation::Reinterpret { + base_type: UnitOffset(100), + }, + encoding, + ); + } + + #[test] + fn test_op_parse_implicit_pointer() { + for op in &[ + constants::DW_OP_implicit_pointer, + constants::DW_OP_GNU_implicit_pointer, + ] { + check_op_parse( + |s| s.D8(op.0).D32(0x1234_5678).sleb(0x123), + &Operation::ImplicitPointer { + value: DebugInfoOffset(0x1234_5678), + byte_offset: 0x123, + }, + encoding4(), + ); + + check_op_parse( + |s| s.D8(op.0).D64(0x1234_5678).sleb(0x123), + &Operation::ImplicitPointer { + value: DebugInfoOffset(0x1234_5678), + byte_offset: 0x123, + }, + encoding8(), + ); + + check_op_parse( + |s| s.D8(op.0).D64(0x1234_5678).sleb(0x123), + &Operation::ImplicitPointer { + value: DebugInfoOffset(0x1234_5678), + byte_offset: 0x123, + }, + Encoding { + format: Format::Dwarf32, + version: 2, + address_size: 8, + }, + ) + } + } + + #[test] + fn test_op_parse_entry_value() { + for op in &[ + constants::DW_OP_entry_value, + constants::DW_OP_GNU_entry_value, + ] { + let data = b"hello"; + check_op_parse( + |s| s.D8(op.0).uleb(data.len() as u64).append_bytes(&data[..]), + &Operation::EntryValue { + expression: EndianSlice::new(&data[..], LittleEndian), + }, + encoding4(), + ); + } + } + + #[test] + fn test_op_parse_gnu_parameter_ref() { + check_op_parse( + |s| s.D8(constants::DW_OP_GNU_parameter_ref.0).D32(0x1234_5678), + &Operation::ParameterRef { + offset: UnitOffset(0x1234_5678), + }, + encoding4(), + ) + } + + #[test] + fn test_op_wasm() { + // Doesn't matter for this test. + let encoding = encoding4(); + + check_op_parse( + |s| s.D8(constants::DW_OP_WASM_location.0).D8(0).uleb(1000), + &Operation::WasmLocal { index: 1000 }, + encoding, + ); + check_op_parse( + |s| s.D8(constants::DW_OP_WASM_location.0).D8(1).uleb(1000), + &Operation::WasmGlobal { index: 1000 }, + encoding, + ); + check_op_parse( + |s| s.D8(constants::DW_OP_WASM_location.0).D8(2).uleb(1000), + &Operation::WasmStack { index: 1000 }, + encoding, + ); + check_op_parse( + |s| s.D8(constants::DW_OP_WASM_location.0).D8(3).D32(1000), + &Operation::WasmGlobal { index: 1000 }, + encoding, + ); + } + + enum AssemblerEntry { + Op(constants::DwOp), + Mark(u8), + Branch(u8), + U8(u8), + U16(u16), + U32(u32), + U64(u64), + Uleb(u64), + Sleb(u64), + } + + fn assemble(entries: &[AssemblerEntry]) -> Vec { + let mut result = Vec::new(); + + struct Marker(Option, Vec); + + let mut markers = Vec::new(); + for _ in 0..256 { + markers.push(Marker(None, Vec::new())); + } + + fn write(stack: &mut Vec, index: usize, mut num: u64, nbytes: u8) { + for i in 0..nbytes as usize { + stack[index + i] = (num & 0xff) as u8; + num >>= 8; + } + } + + fn push(stack: &mut Vec, num: u64, nbytes: u8) { + let index = stack.len(); + for _ in 0..nbytes { + stack.push(0); + } + write(stack, index, num, nbytes); + } + + for item in entries { + match *item { + AssemblerEntry::Op(op) => result.push(op.0), + AssemblerEntry::Mark(num) => { + assert!(markers[num as usize].0.is_none()); + markers[num as usize].0 = Some(result.len()); + } + AssemblerEntry::Branch(num) => { + markers[num as usize].1.push(result.len()); + push(&mut result, 0, 2); + } + AssemblerEntry::U8(num) => result.push(num), + AssemblerEntry::U16(num) => push(&mut result, u64::from(num), 2), + AssemblerEntry::U32(num) => push(&mut result, u64::from(num), 4), + AssemblerEntry::U64(num) => push(&mut result, num, 8), + AssemblerEntry::Uleb(num) => { + leb128::write::unsigned(&mut result, num).unwrap(); + } + AssemblerEntry::Sleb(num) => { + leb128::write::signed(&mut result, num as i64).unwrap(); + } + } + } + + // Update all the branches. + for marker in markers { + if let Some(offset) = marker.0 { + for branch_offset in marker.1 { + let delta = offset.wrapping_sub(branch_offset + 2) as u64; + write(&mut result, branch_offset, delta, 2); + } + } + } + + result + } + + fn check_eval_with_args( + program: &[AssemblerEntry], + expect: Result<&[Piece>]>, + encoding: Encoding, + object_address: Option, + initial_value: Option, + max_iterations: Option, + f: F, + ) where + for<'a> F: Fn( + &mut Evaluation>, + EvaluationResult>, + ) -> Result>>, + { + let bytes = assemble(program); + let bytes = EndianSlice::new(&bytes, LittleEndian); + + let mut eval = Evaluation::new(bytes, encoding); + + if let Some(val) = object_address { + eval.set_object_address(val); + } + if let Some(val) = initial_value { + eval.set_initial_value(val); + } + if let Some(val) = max_iterations { + eval.set_max_iterations(val); + } + + let result = match eval.evaluate() { + Err(e) => Err(e), + Ok(r) => f(&mut eval, r), + }; + + match (result, expect) { + (Ok(EvaluationResult::Complete), Ok(pieces)) => { + let vec = eval.result(); + assert_eq!(vec.len(), pieces.len()); + for i in 0..pieces.len() { + assert_eq!(vec[i], pieces[i]); + } + } + (Err(f1), Err(f2)) => { + assert_eq!(f1, f2); + } + otherwise => panic!("Unexpected result: {:?}", otherwise), + } + } + + fn check_eval( + program: &[AssemblerEntry], + expect: Result<&[Piece>]>, + encoding: Encoding, + ) { + check_eval_with_args(program, expect, encoding, None, None, None, |_, result| { + Ok(result) + }); + } + + #[test] + fn test_eval_arith() { + // It's nice if an operation and its arguments can fit on a single + // line in the test program. + use self::AssemblerEntry::*; + use crate::constants::*; + + // Indices of marks in the assembly. + let done = 0; + let fail = 1; + + #[rustfmt::skip] + let program = [ + Op(DW_OP_const1u), U8(23), + Op(DW_OP_const1s), U8((-23i8) as u8), + Op(DW_OP_plus), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const2u), U16(23), + Op(DW_OP_const2s), U16((-23i16) as u16), + Op(DW_OP_plus), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const4u), U32(0x1111_2222), + Op(DW_OP_const4s), U32((-0x1111_2222i32) as u32), + Op(DW_OP_plus), + Op(DW_OP_bra), Branch(fail), + + // Plus should overflow. + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_const1u), U8(1), + Op(DW_OP_plus), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_plus_uconst), Uleb(1), + Op(DW_OP_bra), Branch(fail), + + // Minus should underflow. + Op(DW_OP_const1s), U8(0), + Op(DW_OP_const1u), U8(1), + Op(DW_OP_minus), + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_abs), + Op(DW_OP_const1u), U8(1), + Op(DW_OP_minus), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const4u), U32(0xf078_fffe), + Op(DW_OP_const4u), U32(0x0f87_0001), + Op(DW_OP_and), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const4u), U32(0xf078_fffe), + Op(DW_OP_const4u), U32(0xf000_00fe), + Op(DW_OP_and), + Op(DW_OP_const4u), U32(0xf000_00fe), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + // Division is signed. + Op(DW_OP_const1s), U8(0xfe), + Op(DW_OP_const1s), U8(2), + Op(DW_OP_div), + Op(DW_OP_plus_uconst), Uleb(1), + Op(DW_OP_bra), Branch(fail), + + // Mod is unsigned. + Op(DW_OP_const1s), U8(0xfd), + Op(DW_OP_const1s), U8(2), + Op(DW_OP_mod), + Op(DW_OP_neg), + Op(DW_OP_plus_uconst), Uleb(1), + Op(DW_OP_bra), Branch(fail), + + // Overflow is defined for multiplication. + Op(DW_OP_const4u), U32(0x8000_0001), + Op(DW_OP_lit2), + Op(DW_OP_mul), + Op(DW_OP_lit2), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const4u), U32(0xf0f0_f0f0), + Op(DW_OP_const4u), U32(0xf0f0_f0f0), + Op(DW_OP_xor), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const4u), U32(0xf0f0_f0f0), + Op(DW_OP_const4u), U32(0x0f0f_0f0f), + Op(DW_OP_or), + Op(DW_OP_not), + Op(DW_OP_bra), Branch(fail), + + // In 32 bit mode, values are truncated. + Op(DW_OP_const8u), U64(0xffff_ffff_0000_0000), + Op(DW_OP_lit2), + Op(DW_OP_div), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const1u), U8(0xff), + Op(DW_OP_lit1), + Op(DW_OP_shl), + Op(DW_OP_const2u), U16(0x1fe), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const1u), U8(0xff), + Op(DW_OP_const1u), U8(50), + Op(DW_OP_shl), + Op(DW_OP_bra), Branch(fail), + + // Absurd shift. + Op(DW_OP_const1u), U8(0xff), + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_shl), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_lit1), + Op(DW_OP_shr), + Op(DW_OP_const4u), U32(0x7fff_ffff), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_const1u), U8(0xff), + Op(DW_OP_shr), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_lit1), + Op(DW_OP_shra), + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_const1u), U8(0xff), + Op(DW_OP_shra), + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + // Success. + Op(DW_OP_lit0), + Op(DW_OP_nop), + Op(DW_OP_skip), Branch(done), + + Mark(fail), + Op(DW_OP_lit1), + + Mark(done), + Op(DW_OP_stack_value), + ]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Value { + value: Value::Generic(0), + }, + }]; + + check_eval(&program, Ok(&result), encoding4()); + } + + #[test] + fn test_eval_arith64() { + // It's nice if an operation and its arguments can fit on a single + // line in the test program. + use self::AssemblerEntry::*; + use crate::constants::*; + + // Indices of marks in the assembly. + let done = 0; + let fail = 1; + + #[rustfmt::skip] + let program = [ + Op(DW_OP_const8u), U64(0x1111_2222_3333_4444), + Op(DW_OP_const8s), U64((-0x1111_2222_3333_4444i64) as u64), + Op(DW_OP_plus), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_constu), Uleb(0x1111_2222_3333_4444), + Op(DW_OP_consts), Sleb((-0x1111_2222_3333_4444i64) as u64), + Op(DW_OP_plus), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_lit1), + Op(DW_OP_plus_uconst), Uleb(!0u64), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_lit1), + Op(DW_OP_neg), + Op(DW_OP_not), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const8u), U64(0x8000_0000_0000_0000), + Op(DW_OP_const1u), U8(63), + Op(DW_OP_shr), + Op(DW_OP_lit1), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const8u), U64(0x8000_0000_0000_0000), + Op(DW_OP_const1u), U8(62), + Op(DW_OP_shra), + Op(DW_OP_plus_uconst), Uleb(2), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_lit1), + Op(DW_OP_const1u), U8(63), + Op(DW_OP_shl), + Op(DW_OP_const8u), U64(0x8000_0000_0000_0000), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + // Success. + Op(DW_OP_lit0), + Op(DW_OP_nop), + Op(DW_OP_skip), Branch(done), + + Mark(fail), + Op(DW_OP_lit1), + + Mark(done), + Op(DW_OP_stack_value), + ]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Value { + value: Value::Generic(0), + }, + }]; + + check_eval(&program, Ok(&result), encoding8()); + } + + #[test] + fn test_eval_compare() { + // It's nice if an operation and its arguments can fit on a single + // line in the test program. + use self::AssemblerEntry::*; + use crate::constants::*; + + // Indices of marks in the assembly. + let done = 0; + let fail = 1; + + #[rustfmt::skip] + let program = [ + // Comparisons are signed. + Op(DW_OP_const1s), U8(1), + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_lt), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_const1s), U8(1), + Op(DW_OP_gt), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const1s), U8(1), + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_le), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_const1s), U8(1), + Op(DW_OP_ge), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const1s), U8(0xff), + Op(DW_OP_const1s), U8(1), + Op(DW_OP_eq), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_const4s), U32(1), + Op(DW_OP_const1s), U8(1), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + // Success. + Op(DW_OP_lit0), + Op(DW_OP_nop), + Op(DW_OP_skip), Branch(done), + + Mark(fail), + Op(DW_OP_lit1), + + Mark(done), + Op(DW_OP_stack_value), + ]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Value { + value: Value::Generic(0), + }, + }]; + + check_eval(&program, Ok(&result), encoding4()); + } + + #[test] + fn test_eval_stack() { + // It's nice if an operation and its arguments can fit on a single + // line in the test program. + use self::AssemblerEntry::*; + use crate::constants::*; + + #[rustfmt::skip] + let program = [ + Op(DW_OP_lit17), // -- 17 + Op(DW_OP_dup), // -- 17 17 + Op(DW_OP_over), // -- 17 17 17 + Op(DW_OP_minus), // -- 17 0 + Op(DW_OP_swap), // -- 0 17 + Op(DW_OP_dup), // -- 0 17 17 + Op(DW_OP_plus_uconst), Uleb(1), // -- 0 17 18 + Op(DW_OP_rot), // -- 18 0 17 + Op(DW_OP_pick), U8(2), // -- 18 0 17 18 + Op(DW_OP_pick), U8(3), // -- 18 0 17 18 18 + Op(DW_OP_minus), // -- 18 0 17 0 + Op(DW_OP_drop), // -- 18 0 17 + Op(DW_OP_swap), // -- 18 17 0 + Op(DW_OP_drop), // -- 18 17 + Op(DW_OP_minus), // -- 1 + Op(DW_OP_stack_value), + ]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Value { + value: Value::Generic(1), + }, + }]; + + check_eval(&program, Ok(&result), encoding4()); + } + + #[test] + fn test_eval_lit_and_reg() { + // It's nice if an operation and its arguments can fit on a single + // line in the test program. + use self::AssemblerEntry::*; + use crate::constants::*; + + let mut program = Vec::new(); + program.push(Op(DW_OP_lit0)); + for i in 0..32 { + program.push(Op(DwOp(DW_OP_lit0.0 + i))); + program.push(Op(DwOp(DW_OP_breg0.0 + i))); + program.push(Sleb(u64::from(i))); + program.push(Op(DW_OP_plus)); + program.push(Op(DW_OP_plus)); + } + + program.push(Op(DW_OP_bregx)); + program.push(Uleb(0x1234)); + program.push(Sleb(0x1234)); + program.push(Op(DW_OP_plus)); + + program.push(Op(DW_OP_stack_value)); + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Value { + value: Value::Generic(496), + }, + }]; + + check_eval_with_args( + &program, + Ok(&result), + encoding4(), + None, + None, + None, + |eval, mut result| { + while result != EvaluationResult::Complete { + result = eval.resume_with_register(match result { + EvaluationResult::RequiresRegister { + register, + base_type, + } => { + assert_eq!(base_type, UnitOffset(0)); + Value::Generic(u64::from(register.0).wrapping_neg()) + } + _ => panic!(), + })?; + } + Ok(result) + }, + ); + } + + #[test] + fn test_eval_memory() { + // It's nice if an operation and its arguments can fit on a single + // line in the test program. + use self::AssemblerEntry::*; + use crate::constants::*; + + // Indices of marks in the assembly. + let done = 0; + let fail = 1; + + #[rustfmt::skip] + let program = [ + Op(DW_OP_addr), U32(0x7fff_ffff), + Op(DW_OP_deref), + Op(DW_OP_const4u), U32(0xffff_fffc), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_addr), U32(0x7fff_ffff), + Op(DW_OP_deref_size), U8(2), + Op(DW_OP_const4u), U32(0xfffc), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_lit1), + Op(DW_OP_addr), U32(0x7fff_ffff), + Op(DW_OP_xderef), + Op(DW_OP_const4u), U32(0xffff_fffd), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_lit1), + Op(DW_OP_addr), U32(0x7fff_ffff), + Op(DW_OP_xderef_size), U8(2), + Op(DW_OP_const4u), U32(0xfffd), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_lit17), + Op(DW_OP_form_tls_address), + Op(DW_OP_constu), Uleb(!17), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_lit17), + Op(DW_OP_GNU_push_tls_address), + Op(DW_OP_constu), Uleb(!17), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_addrx), Uleb(0x10), + Op(DW_OP_deref), + Op(DW_OP_const4u), U32(0x4040), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + Op(DW_OP_constx), Uleb(17), + Op(DW_OP_form_tls_address), + Op(DW_OP_constu), Uleb(!27), + Op(DW_OP_ne), + Op(DW_OP_bra), Branch(fail), + + // Success. + Op(DW_OP_lit0), + Op(DW_OP_nop), + Op(DW_OP_skip), Branch(done), + + Mark(fail), + Op(DW_OP_lit1), + + Mark(done), + Op(DW_OP_stack_value), + ]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Value { + value: Value::Generic(0), + }, + }]; + + check_eval_with_args( + &program, + Ok(&result), + encoding4(), + None, + None, + None, + |eval, mut result| { + while result != EvaluationResult::Complete { + result = match result { + EvaluationResult::RequiresMemory { + address, + size, + space, + base_type, + } => { + assert_eq!(base_type, UnitOffset(0)); + let mut v = address << 2; + if let Some(value) = space { + v += value; + } + v &= (1u64 << (8 * size)) - 1; + eval.resume_with_memory(Value::Generic(v))? + } + EvaluationResult::RequiresTls(slot) => eval.resume_with_tls(!slot)?, + EvaluationResult::RequiresRelocatedAddress(address) => { + eval.resume_with_relocated_address(address)? + } + EvaluationResult::RequiresIndexedAddress { index, relocate } => { + if relocate { + eval.resume_with_indexed_address(0x1000 + index.0 as u64)? + } else { + eval.resume_with_indexed_address(10 + index.0 as u64)? + } + } + _ => panic!(), + }; + } + + Ok(result) + }, + ); + } + + #[test] + fn test_eval_register() { + // It's nice if an operation and its arguments can fit on a single + // line in the test program. + use self::AssemblerEntry::*; + use crate::constants::*; + + for i in 0..32 { + #[rustfmt::skip] + let program = [ + Op(DwOp(DW_OP_reg0.0 + i)), + // Included only in the "bad" run. + Op(DW_OP_lit23), + ]; + let ok_result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Register { + register: Register(i.into()), + }, + }]; + + check_eval(&program[..1], Ok(&ok_result), encoding4()); + + check_eval( + &program, + Err(Error::InvalidExpressionTerminator(1)), + encoding4(), + ); + } + + #[rustfmt::skip] + let program = [ + Op(DW_OP_regx), Uleb(0x1234) + ]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Register { + register: Register(0x1234), + }, + }]; + + check_eval(&program, Ok(&result), encoding4()); + } + + #[test] + fn test_eval_context() { + // It's nice if an operation and its arguments can fit on a single + // line in the test program. + use self::AssemblerEntry::*; + use crate::constants::*; + + // Test `frame_base` and `call_frame_cfa` callbacks. + #[rustfmt::skip] + let program = [ + Op(DW_OP_fbreg), Sleb((-8i8) as u64), + Op(DW_OP_call_frame_cfa), + Op(DW_OP_plus), + Op(DW_OP_neg), + Op(DW_OP_stack_value) + ]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Value { + value: Value::Generic(9), + }, + }]; + + check_eval_with_args( + &program, + Ok(&result), + encoding8(), + None, + None, + None, + |eval, result| { + match result { + EvaluationResult::RequiresFrameBase => {} + _ => panic!(), + }; + match eval.resume_with_frame_base(0x0123_4567_89ab_cdef)? { + EvaluationResult::RequiresCallFrameCfa => {} + _ => panic!(), + }; + eval.resume_with_call_frame_cfa(0xfedc_ba98_7654_3210) + }, + ); + + // Test `evaluate_entry_value` callback. + #[rustfmt::skip] + let program = [ + Op(DW_OP_entry_value), Uleb(8), U64(0x1234_5678), + Op(DW_OP_stack_value) + ]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Value { + value: Value::Generic(0x1234_5678), + }, + }]; + + check_eval_with_args( + &program, + Ok(&result), + encoding8(), + None, + None, + None, + |eval, result| { + let entry_value = match result { + EvaluationResult::RequiresEntryValue(mut expression) => { + expression.0.read_u64()? + } + _ => panic!(), + }; + eval.resume_with_entry_value(Value::Generic(entry_value)) + }, + ); + + // Test missing `object_address` field. + #[rustfmt::skip] + let program = [ + Op(DW_OP_push_object_address), + ]; + + check_eval_with_args( + &program, + Err(Error::InvalidPushObjectAddress), + encoding4(), + None, + None, + None, + |_, _| panic!(), + ); + + // Test `object_address` field. + #[rustfmt::skip] + let program = [ + Op(DW_OP_push_object_address), + Op(DW_OP_stack_value), + ]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Value { + value: Value::Generic(0xff), + }, + }]; + + check_eval_with_args( + &program, + Ok(&result), + encoding8(), + Some(0xff), + None, + None, + |_, result| Ok(result), + ); + + // Test `initial_value` field. + #[rustfmt::skip] + let program = [ + ]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Address { + address: 0x1234_5678, + }, + }]; + + check_eval_with_args( + &program, + Ok(&result), + encoding8(), + None, + Some(0x1234_5678), + None, + |_, result| Ok(result), + ); + } + + #[test] + fn test_eval_empty_stack() { + // It's nice if an operation and its arguments can fit on a single + // line in the test program. + use self::AssemblerEntry::*; + use crate::constants::*; + + #[rustfmt::skip] + let program = [ + Op(DW_OP_stack_value) + ]; + + check_eval(&program, Err(Error::NotEnoughStackItems), encoding4()); + } + + #[test] + fn test_eval_call() { + // It's nice if an operation and its arguments can fit on a single + // line in the test program. + use self::AssemblerEntry::*; + use crate::constants::*; + + #[rustfmt::skip] + let program = [ + Op(DW_OP_lit23), + Op(DW_OP_call2), U16(0x7755), + Op(DW_OP_call4), U32(0x7755_aaee), + Op(DW_OP_call_ref), U32(0x7755_aaee), + Op(DW_OP_stack_value) + ]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Value { + value: Value::Generic(23), + }, + }]; + + check_eval_with_args( + &program, + Ok(&result), + encoding4(), + None, + None, + None, + |eval, result| { + let buf = EndianSlice::new(&[], LittleEndian); + match result { + EvaluationResult::RequiresAtLocation(_) => {} + _ => panic!(), + }; + + eval.resume_with_at_location(buf)?; + + match result { + EvaluationResult::RequiresAtLocation(_) => {} + _ => panic!(), + }; + + eval.resume_with_at_location(buf)?; + + match result { + EvaluationResult::RequiresAtLocation(_) => {} + _ => panic!(), + }; + + eval.resume_with_at_location(buf) + }, + ); + + // DW_OP_lit2 DW_OP_mul + const SUBR: &[u8] = &[0x32, 0x1e]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Value { + value: Value::Generic(184), + }, + }]; + + check_eval_with_args( + &program, + Ok(&result), + encoding4(), + None, + None, + None, + |eval, result| { + let buf = EndianSlice::new(SUBR, LittleEndian); + match result { + EvaluationResult::RequiresAtLocation(_) => {} + _ => panic!(), + }; + + eval.resume_with_at_location(buf)?; + + match result { + EvaluationResult::RequiresAtLocation(_) => {} + _ => panic!(), + }; + + eval.resume_with_at_location(buf)?; + + match result { + EvaluationResult::RequiresAtLocation(_) => {} + _ => panic!(), + }; + + eval.resume_with_at_location(buf) + }, + ); + } + + #[test] + fn test_eval_pieces() { + // It's nice if an operation and its arguments can fit on a single + // line in the test program. + use self::AssemblerEntry::*; + use crate::constants::*; + + // Example from DWARF 2.6.1.3. + #[rustfmt::skip] + let program = [ + Op(DW_OP_reg3), + Op(DW_OP_piece), Uleb(4), + Op(DW_OP_reg4), + Op(DW_OP_piece), Uleb(2), + ]; + + let result = [ + Piece { + size_in_bits: Some(32), + bit_offset: None, + location: Location::Register { + register: Register(3), + }, + }, + Piece { + size_in_bits: Some(16), + bit_offset: None, + location: Location::Register { + register: Register(4), + }, + }, + ]; + + check_eval(&program, Ok(&result), encoding4()); + + // Example from DWARF 2.6.1.3 (but hacked since dealing with fbreg + // in the tests is a pain). + #[rustfmt::skip] + let program = [ + Op(DW_OP_reg0), + Op(DW_OP_piece), Uleb(4), + Op(DW_OP_piece), Uleb(4), + Op(DW_OP_addr), U32(0x7fff_ffff), + Op(DW_OP_piece), Uleb(4), + ]; + + let result = [ + Piece { + size_in_bits: Some(32), + bit_offset: None, + location: Location::Register { + register: Register(0), + }, + }, + Piece { + size_in_bits: Some(32), + bit_offset: None, + location: Location::Empty, + }, + Piece { + size_in_bits: Some(32), + bit_offset: None, + location: Location::Address { + address: 0x7fff_ffff, + }, + }, + ]; + + check_eval_with_args( + &program, + Ok(&result), + encoding4(), + None, + None, + None, + |eval, mut result| { + while result != EvaluationResult::Complete { + result = match result { + EvaluationResult::RequiresRelocatedAddress(address) => { + eval.resume_with_relocated_address(address)? + } + _ => panic!(), + }; + } + + Ok(result) + }, + ); + + #[rustfmt::skip] + let program = [ + Op(DW_OP_implicit_value), Uleb(5), + U8(23), U8(24), U8(25), U8(26), U8(0), + ]; + + const BYTES: &[u8] = &[23, 24, 25, 26, 0]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Bytes { + value: EndianSlice::new(BYTES, LittleEndian), + }, + }]; + + check_eval(&program, Ok(&result), encoding4()); + + #[rustfmt::skip] + let program = [ + Op(DW_OP_lit7), + Op(DW_OP_stack_value), + Op(DW_OP_bit_piece), Uleb(5), Uleb(0), + Op(DW_OP_bit_piece), Uleb(3), Uleb(0), + ]; + + let result = [ + Piece { + size_in_bits: Some(5), + bit_offset: Some(0), + location: Location::Value { + value: Value::Generic(7), + }, + }, + Piece { + size_in_bits: Some(3), + bit_offset: Some(0), + location: Location::Empty, + }, + ]; + + check_eval(&program, Ok(&result), encoding4()); + + #[rustfmt::skip] + let program = [ + Op(DW_OP_lit7), + ]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Address { address: 7 }, + }]; + + check_eval(&program, Ok(&result), encoding4()); + + #[rustfmt::skip] + let program = [ + Op(DW_OP_implicit_pointer), U32(0x1234_5678), Sleb(0x123), + ]; + + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::ImplicitPointer { + value: DebugInfoOffset(0x1234_5678), + byte_offset: 0x123, + }, + }]; + + check_eval(&program, Ok(&result), encoding4()); + + #[rustfmt::skip] + let program = [ + Op(DW_OP_reg3), + Op(DW_OP_piece), Uleb(4), + Op(DW_OP_reg4), + ]; + + check_eval(&program, Err(Error::InvalidPiece), encoding4()); + + #[rustfmt::skip] + let program = [ + Op(DW_OP_reg3), + Op(DW_OP_piece), Uleb(4), + Op(DW_OP_lit0), + ]; + + check_eval(&program, Err(Error::InvalidPiece), encoding4()); + } + + #[test] + fn test_eval_max_iterations() { + // It's nice if an operation and its arguments can fit on a single + // line in the test program. + use self::AssemblerEntry::*; + use crate::constants::*; + + #[rustfmt::skip] + let program = [ + Mark(1), + Op(DW_OP_skip), Branch(1), + ]; + + check_eval_with_args( + &program, + Err(Error::TooManyIterations), + encoding4(), + None, + None, + Some(150), + |_, _| panic!(), + ); + } + + #[test] + fn test_eval_typed_stack() { + use self::AssemblerEntry::*; + use crate::constants::*; + + let base_types = [ + ValueType::Generic, + ValueType::U16, + ValueType::U32, + ValueType::F32, + ]; + + // TODO: convert, reinterpret + #[rustfmt::skip] + let tests = [ + ( + &[ + Op(DW_OP_const_type), Uleb(1), U8(2), U16(0x1234), + Op(DW_OP_stack_value), + ][..], + Value::U16(0x1234), + ), + ( + &[ + Op(DW_OP_regval_type), Uleb(0x1234), Uleb(1), + Op(DW_OP_stack_value), + ][..], + Value::U16(0x2340), + ), + ( + &[ + Op(DW_OP_addr), U32(0x7fff_ffff), + Op(DW_OP_deref_type), U8(2), Uleb(1), + Op(DW_OP_stack_value), + ][..], + Value::U16(0xfff0), + ), + ( + &[ + Op(DW_OP_lit1), + Op(DW_OP_addr), U32(0x7fff_ffff), + Op(DW_OP_xderef_type), U8(2), Uleb(1), + Op(DW_OP_stack_value), + ][..], + Value::U16(0xfff1), + ), + ( + &[ + Op(DW_OP_const_type), Uleb(1), U8(2), U16(0x1234), + Op(DW_OP_convert), Uleb(2), + Op(DW_OP_stack_value), + ][..], + Value::U32(0x1234), + ), + ( + &[ + Op(DW_OP_const_type), Uleb(2), U8(4), U32(0x3f80_0000), + Op(DW_OP_reinterpret), Uleb(3), + Op(DW_OP_stack_value), + ][..], + Value::F32(1.0), + ), + ]; + for &(program, value) in &tests { + let result = [Piece { + size_in_bits: None, + bit_offset: None, + location: Location::Value { value }, + }]; + + check_eval_with_args( + program, + Ok(&result), + encoding4(), + None, + None, + None, + |eval, mut result| { + while result != EvaluationResult::Complete { + result = match result { + EvaluationResult::RequiresMemory { + address, + size, + space, + base_type, + } => { + let mut v = address << 4; + if let Some(value) = space { + v += value; + } + v &= (1u64 << (8 * size)) - 1; + let v = Value::from_u64(base_types[base_type.0], v)?; + eval.resume_with_memory(v)? + } + EvaluationResult::RequiresRegister { + register, + base_type, + } => { + let v = Value::from_u64( + base_types[base_type.0], + u64::from(register.0) << 4, + )?; + eval.resume_with_register(v)? + } + EvaluationResult::RequiresBaseType(offset) => { + eval.resume_with_base_type(base_types[offset.0])? + } + EvaluationResult::RequiresRelocatedAddress(address) => { + eval.resume_with_relocated_address(address)? + } + _ => panic!("Unexpected result {:?}", result), + } + } + Ok(result) + }, + ); + } + } +} diff --git a/src/rust/vendor/gimli/src/read/pubnames.rs b/src/rust/vendor/gimli/src/read/pubnames.rs new file mode 100644 index 000000000..e8b7e5528 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/pubnames.rs @@ -0,0 +1,141 @@ +use crate::common::{DebugInfoOffset, SectionId}; +use crate::endianity::Endianity; +use crate::read::lookup::{DebugLookup, LookupEntryIter, PubStuffEntry, PubStuffParser}; +use crate::read::{EndianSlice, Reader, Result, Section, UnitOffset}; + +/// A single parsed pubname. +#[derive(Debug, Clone)] +pub struct PubNamesEntry { + unit_header_offset: DebugInfoOffset, + die_offset: UnitOffset, + name: R, +} + +impl PubNamesEntry { + /// Returns the name this entry refers to. + pub fn name(&self) -> &R { + &self.name + } + + /// Returns the offset into the .debug_info section for the header of the compilation unit + /// which contains this name. + pub fn unit_header_offset(&self) -> DebugInfoOffset { + self.unit_header_offset + } + + /// Returns the offset into the compilation unit for the debugging information entry which + /// has this name. + pub fn die_offset(&self) -> UnitOffset { + self.die_offset + } +} + +impl PubStuffEntry for PubNamesEntry { + fn new( + die_offset: UnitOffset, + name: R, + unit_header_offset: DebugInfoOffset, + ) -> Self { + PubNamesEntry { + unit_header_offset, + die_offset, + name, + } + } +} + +/// The `DebugPubNames` struct represents the DWARF public names information +/// found in the `.debug_pubnames` section. +#[derive(Debug, Clone)] +pub struct DebugPubNames(DebugLookup>>); + +impl<'input, Endian> DebugPubNames> +where + Endian: Endianity, +{ + /// Construct a new `DebugPubNames` instance from the data in the `.debug_pubnames` + /// section. + /// + /// It is the caller's responsibility to read the `.debug_pubnames` section and + /// present it as a `&[u8]` slice. That means using some ELF loader on + /// Linux, a Mach-O loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugPubNames, LittleEndian}; + /// + /// # let buf = []; + /// # let read_debug_pubnames_section_somehow = || &buf; + /// let debug_pubnames = + /// DebugPubNames::new(read_debug_pubnames_section_somehow(), LittleEndian); + /// ``` + pub fn new(debug_pubnames_section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(debug_pubnames_section, endian)) + } +} + +impl DebugPubNames { + /// Iterate the pubnames in the `.debug_pubnames` section. + /// + /// ``` + /// use gimli::{DebugPubNames, EndianSlice, LittleEndian}; + /// + /// # let buf = []; + /// # let read_debug_pubnames_section_somehow = || &buf; + /// let debug_pubnames = + /// DebugPubNames::new(read_debug_pubnames_section_somehow(), LittleEndian); + /// + /// let mut iter = debug_pubnames.items(); + /// while let Some(pubname) = iter.next().unwrap() { + /// println!("pubname {} found!", pubname.name().to_string_lossy()); + /// } + /// ``` + pub fn items(&self) -> PubNamesEntryIter { + PubNamesEntryIter(self.0.items()) + } +} + +impl Section for DebugPubNames { + fn id() -> SectionId { + SectionId::DebugPubNames + } + + fn reader(&self) -> &R { + self.0.reader() + } +} + +impl From for DebugPubNames { + fn from(debug_pubnames_section: R) -> Self { + DebugPubNames(DebugLookup::from(debug_pubnames_section)) + } +} + +/// An iterator over the pubnames from a `.debug_pubnames` section. +/// +/// Can be [used with +/// `FallibleIterator`](./index.html#using-with-fallibleiterator). +#[derive(Debug, Clone)] +pub struct PubNamesEntryIter(LookupEntryIter>>); + +impl PubNamesEntryIter { + /// Advance the iterator and return the next pubname. + /// + /// Returns the newly parsed pubname as `Ok(Some(pubname))`. Returns + /// `Ok(None)` when iteration is complete and all pubnames have already been + /// parsed and yielded. If an error occurs while parsing the next pubname, + /// then this error is returned as `Err(e)`, and all subsequent calls return + /// `Ok(None)`. + pub fn next(&mut self) -> Result>> { + self.0.next() + } +} + +#[cfg(feature = "fallible-iterator")] +impl fallible_iterator::FallibleIterator for PubNamesEntryIter { + type Item = PubNamesEntry; + type Error = crate::read::Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + self.0.next() + } +} diff --git a/src/rust/vendor/gimli/src/read/pubtypes.rs b/src/rust/vendor/gimli/src/read/pubtypes.rs new file mode 100644 index 000000000..6723b4222 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/pubtypes.rs @@ -0,0 +1,141 @@ +use crate::common::{DebugInfoOffset, SectionId}; +use crate::endianity::Endianity; +use crate::read::lookup::{DebugLookup, LookupEntryIter, PubStuffEntry, PubStuffParser}; +use crate::read::{EndianSlice, Reader, Result, Section, UnitOffset}; + +/// A single parsed pubtype. +#[derive(Debug, Clone)] +pub struct PubTypesEntry { + unit_header_offset: DebugInfoOffset, + die_offset: UnitOffset, + name: R, +} + +impl PubTypesEntry { + /// Returns the name of the type this entry refers to. + pub fn name(&self) -> &R { + &self.name + } + + /// Returns the offset into the .debug_info section for the header of the compilation unit + /// which contains the type with this name. + pub fn unit_header_offset(&self) -> DebugInfoOffset { + self.unit_header_offset + } + + /// Returns the offset into the compilation unit for the debugging information entry which + /// the type with this name. + pub fn die_offset(&self) -> UnitOffset { + self.die_offset + } +} + +impl PubStuffEntry for PubTypesEntry { + fn new( + die_offset: UnitOffset, + name: R, + unit_header_offset: DebugInfoOffset, + ) -> Self { + PubTypesEntry { + unit_header_offset, + die_offset, + name, + } + } +} + +/// The `DebugPubTypes` struct represents the DWARF public types information +/// found in the `.debug_info` section. +#[derive(Debug, Clone)] +pub struct DebugPubTypes(DebugLookup>>); + +impl<'input, Endian> DebugPubTypes> +where + Endian: Endianity, +{ + /// Construct a new `DebugPubTypes` instance from the data in the `.debug_pubtypes` + /// section. + /// + /// It is the caller's responsibility to read the `.debug_pubtypes` section and + /// present it as a `&[u8]` slice. That means using some ELF loader on + /// Linux, a Mach-O loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugPubTypes, LittleEndian}; + /// + /// # let buf = []; + /// # let read_debug_pubtypes_somehow = || &buf; + /// let debug_pubtypes = + /// DebugPubTypes::new(read_debug_pubtypes_somehow(), LittleEndian); + /// ``` + pub fn new(debug_pubtypes_section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(debug_pubtypes_section, endian)) + } +} + +impl DebugPubTypes { + /// Iterate the pubtypes in the `.debug_pubtypes` section. + /// + /// ``` + /// use gimli::{DebugPubTypes, EndianSlice, LittleEndian}; + /// + /// # let buf = []; + /// # let read_debug_pubtypes_section_somehow = || &buf; + /// let debug_pubtypes = + /// DebugPubTypes::new(read_debug_pubtypes_section_somehow(), LittleEndian); + /// + /// let mut iter = debug_pubtypes.items(); + /// while let Some(pubtype) = iter.next().unwrap() { + /// println!("pubtype {} found!", pubtype.name().to_string_lossy()); + /// } + /// ``` + pub fn items(&self) -> PubTypesEntryIter { + PubTypesEntryIter(self.0.items()) + } +} + +impl Section for DebugPubTypes { + fn id() -> SectionId { + SectionId::DebugPubTypes + } + + fn reader(&self) -> &R { + self.0.reader() + } +} + +impl From for DebugPubTypes { + fn from(debug_pubtypes_section: R) -> Self { + DebugPubTypes(DebugLookup::from(debug_pubtypes_section)) + } +} + +/// An iterator over the pubtypes from a `.debug_pubtypes` section. +/// +/// Can be [used with +/// `FallibleIterator`](./index.html#using-with-fallibleiterator). +#[derive(Debug, Clone)] +pub struct PubTypesEntryIter(LookupEntryIter>>); + +impl PubTypesEntryIter { + /// Advance the iterator and return the next pubtype. + /// + /// Returns the newly parsed pubtype as `Ok(Some(pubtype))`. Returns + /// `Ok(None)` when iteration is complete and all pubtypes have already been + /// parsed and yielded. If an error occurs while parsing the next pubtype, + /// then this error is returned as `Err(e)`, and all subsequent calls return + /// `Ok(None)`. + pub fn next(&mut self) -> Result>> { + self.0.next() + } +} + +#[cfg(feature = "fallible-iterator")] +impl fallible_iterator::FallibleIterator for PubTypesEntryIter { + type Item = PubTypesEntry; + type Error = crate::read::Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + self.0.next() + } +} diff --git a/src/rust/vendor/gimli/src/read/reader.rs b/src/rust/vendor/gimli/src/read/reader.rs new file mode 100644 index 000000000..e7dd4772c --- /dev/null +++ b/src/rust/vendor/gimli/src/read/reader.rs @@ -0,0 +1,502 @@ +#[cfg(feature = "read")] +use alloc::borrow::Cow; +use core::convert::TryInto; +use core::fmt::Debug; +use core::hash::Hash; +use core::ops::{Add, AddAssign, Sub}; + +use crate::common::Format; +use crate::endianity::Endianity; +use crate::leb128; +use crate::read::{Error, Result}; + +/// An identifier for an offset within a section reader. +/// +/// This is used for error reporting. The meaning of this value is specific to +/// each reader implementation. The values should be chosen to be unique amongst +/// all readers. If values are not unique then errors may point to the wrong reader. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct ReaderOffsetId(pub u64); + +/// A trait for offsets with a DWARF section. +/// +/// This allows consumers to choose a size that is appropriate for their address space. +pub trait ReaderOffset: + Debug + Copy + Eq + Ord + Hash + Add + AddAssign + Sub +{ + /// Convert a u8 to an offset. + fn from_u8(offset: u8) -> Self; + + /// Convert a u16 to an offset. + fn from_u16(offset: u16) -> Self; + + /// Convert an i16 to an offset. + fn from_i16(offset: i16) -> Self; + + /// Convert a u32 to an offset. + fn from_u32(offset: u32) -> Self; + + /// Convert a u64 to an offset. + /// + /// Returns `Error::UnsupportedOffset` if the value is too large. + fn from_u64(offset: u64) -> Result; + + /// Convert an offset to a u64. + fn into_u64(self) -> u64; + + /// Wrapping (modular) addition. Computes `self + other`. + fn wrapping_add(self, other: Self) -> Self; + + /// Checked subtraction. Computes `self - other`. + fn checked_sub(self, other: Self) -> Option; +} + +impl ReaderOffset for u64 { + #[inline] + fn from_u8(offset: u8) -> Self { + u64::from(offset) + } + + #[inline] + fn from_u16(offset: u16) -> Self { + u64::from(offset) + } + + #[inline] + fn from_i16(offset: i16) -> Self { + offset as u64 + } + + #[inline] + fn from_u32(offset: u32) -> Self { + u64::from(offset) + } + + #[inline] + fn from_u64(offset: u64) -> Result { + Ok(offset) + } + + #[inline] + fn into_u64(self) -> u64 { + self + } + + #[inline] + fn wrapping_add(self, other: Self) -> Self { + self.wrapping_add(other) + } + + #[inline] + fn checked_sub(self, other: Self) -> Option { + self.checked_sub(other) + } +} + +impl ReaderOffset for u32 { + #[inline] + fn from_u8(offset: u8) -> Self { + u32::from(offset) + } + + #[inline] + fn from_u16(offset: u16) -> Self { + u32::from(offset) + } + + #[inline] + fn from_i16(offset: i16) -> Self { + offset as u32 + } + + #[inline] + fn from_u32(offset: u32) -> Self { + offset + } + + #[inline] + fn from_u64(offset64: u64) -> Result { + let offset = offset64 as u32; + if u64::from(offset) == offset64 { + Ok(offset) + } else { + Err(Error::UnsupportedOffset) + } + } + + #[inline] + fn into_u64(self) -> u64 { + u64::from(self) + } + + #[inline] + fn wrapping_add(self, other: Self) -> Self { + self.wrapping_add(other) + } + + #[inline] + fn checked_sub(self, other: Self) -> Option { + self.checked_sub(other) + } +} + +impl ReaderOffset for usize { + #[inline] + fn from_u8(offset: u8) -> Self { + offset as usize + } + + #[inline] + fn from_u16(offset: u16) -> Self { + offset as usize + } + + #[inline] + fn from_i16(offset: i16) -> Self { + offset as usize + } + + #[inline] + fn from_u32(offset: u32) -> Self { + offset as usize + } + + #[inline] + fn from_u64(offset64: u64) -> Result { + let offset = offset64 as usize; + if offset as u64 == offset64 { + Ok(offset) + } else { + Err(Error::UnsupportedOffset) + } + } + + #[inline] + fn into_u64(self) -> u64 { + self as u64 + } + + #[inline] + fn wrapping_add(self, other: Self) -> Self { + self.wrapping_add(other) + } + + #[inline] + fn checked_sub(self, other: Self) -> Option { + self.checked_sub(other) + } +} + +#[cfg(not(feature = "read"))] +pub(crate) mod seal_if_no_alloc { + #[derive(Debug)] + pub struct Sealed; +} + +/// A trait for reading the data from a DWARF section. +/// +/// All read operations advance the section offset of the reader +/// unless specified otherwise. +/// +/// ## Choosing a `Reader` Implementation +/// +/// `gimli` comes with a few different `Reader` implementations and lets you +/// choose the one that is right for your use case. A `Reader` is essentially a +/// view into the raw bytes that make up some DWARF, but this view might borrow +/// the underlying data or use reference counting ownership, and it might be +/// thread safe or not. +/// +/// | Implementation | Ownership | Thread Safe | Notes | +/// |:------------------|:------------------|:------------|:------| +/// | [`EndianSlice`](./struct.EndianSlice.html) | Borrowed | Yes | Fastest, but requires that all of your code work with borrows. | +/// | [`EndianRcSlice`](./struct.EndianRcSlice.html) | Reference counted | No | Shared ownership via reference counting, which alleviates the borrow restrictions of `EndianSlice` but imposes reference counting increments and decrements. Cannot be sent across threads, because the reference count is not atomic. | +/// | [`EndianArcSlice`](./struct.EndianArcSlice.html) | Reference counted | Yes | The same as `EndianRcSlice`, but uses atomic reference counting, and therefore reference counting operations are slower but `EndianArcSlice`s may be sent across threads. | +/// | [`EndianReader`](./struct.EndianReader.html) | Same as `T` | Same as `T` | Escape hatch for easily defining your own type of `Reader`. | +pub trait Reader: Debug + Clone { + /// The endianity of bytes that are read. + type Endian: Endianity; + + /// The type used for offsets and lengths. + type Offset: ReaderOffset; + + /// Return the endianity of bytes that are read. + fn endian(&self) -> Self::Endian; + + /// Return the number of bytes remaining. + fn len(&self) -> Self::Offset; + + /// Set the number of bytes remaining to zero. + fn empty(&mut self); + + /// Set the number of bytes remaining to the specified length. + fn truncate(&mut self, len: Self::Offset) -> Result<()>; + + /// Return the offset of this reader's data relative to the start of + /// the given base reader's data. + /// + /// May panic if this reader's data is not contained within the given + /// base reader's data. + fn offset_from(&self, base: &Self) -> Self::Offset; + + /// Return an identifier for the current reader offset. + fn offset_id(&self) -> ReaderOffsetId; + + /// Return the offset corresponding to the given `id` if + /// it is associated with this reader. + fn lookup_offset_id(&self, id: ReaderOffsetId) -> Option; + + /// Find the index of the first occurrence of the given byte. + /// The offset of the reader is not changed. + fn find(&self, byte: u8) -> Result; + + /// Discard the specified number of bytes. + fn skip(&mut self, len: Self::Offset) -> Result<()>; + + /// Split a reader in two. + /// + /// A new reader is returned that can be used to read the next + /// `len` bytes, and `self` is advanced so that it reads the remainder. + fn split(&mut self, len: Self::Offset) -> Result; + + /// This trait cannot be implemented if "read" feature is not enabled. + /// + /// `Reader` trait has a few methods that depend on `alloc` crate. + /// Disallowing `Reader` trait implementation prevents a crate that only depends on + /// "read-core" from being broken if another crate depending on `gimli` enables + /// "read" feature. + #[cfg(not(feature = "read"))] + fn cannot_implement() -> seal_if_no_alloc::Sealed; + + /// Return all remaining data as a clone-on-write slice. + /// + /// The slice will be borrowed where possible, but some readers may + /// always return an owned vector. + /// + /// Does not advance the reader. + #[cfg(feature = "read")] + fn to_slice(&self) -> Result>; + + /// Convert all remaining data to a clone-on-write string. + /// + /// The string will be borrowed where possible, but some readers may + /// always return an owned string. + /// + /// Does not advance the reader. + /// + /// Returns an error if the data contains invalid characters. + #[cfg(feature = "read")] + fn to_string(&self) -> Result>; + + /// Convert all remaining data to a clone-on-write string, including invalid characters. + /// + /// The string will be borrowed where possible, but some readers may + /// always return an owned string. + /// + /// Does not advance the reader. + #[cfg(feature = "read")] + fn to_string_lossy(&self) -> Result>; + + /// Read exactly `buf.len()` bytes into `buf`. + fn read_slice(&mut self, buf: &mut [u8]) -> Result<()>; + + /// Read a u8 array. + #[inline] + fn read_u8_array(&mut self) -> Result + where + A: Sized + Default + AsMut<[u8]>, + { + let mut val = Default::default(); + self.read_slice(>::as_mut(&mut val))?; + Ok(val) + } + + /// Return true if the number of bytes remaining is zero. + #[inline] + fn is_empty(&self) -> bool { + self.len() == Self::Offset::from_u8(0) + } + + /// Read a u8. + #[inline] + fn read_u8(&mut self) -> Result { + let a: [u8; 1] = self.read_u8_array()?; + Ok(a[0]) + } + + /// Read an i8. + #[inline] + fn read_i8(&mut self) -> Result { + let a: [u8; 1] = self.read_u8_array()?; + Ok(a[0] as i8) + } + + /// Read a u16. + #[inline] + fn read_u16(&mut self) -> Result { + let a: [u8; 2] = self.read_u8_array()?; + Ok(self.endian().read_u16(&a)) + } + + /// Read an i16. + #[inline] + fn read_i16(&mut self) -> Result { + let a: [u8; 2] = self.read_u8_array()?; + Ok(self.endian().read_i16(&a)) + } + + /// Read a u32. + #[inline] + fn read_u32(&mut self) -> Result { + let a: [u8; 4] = self.read_u8_array()?; + Ok(self.endian().read_u32(&a)) + } + + /// Read an i32. + #[inline] + fn read_i32(&mut self) -> Result { + let a: [u8; 4] = self.read_u8_array()?; + Ok(self.endian().read_i32(&a)) + } + + /// Read a u64. + #[inline] + fn read_u64(&mut self) -> Result { + let a: [u8; 8] = self.read_u8_array()?; + Ok(self.endian().read_u64(&a)) + } + + /// Read an i64. + #[inline] + fn read_i64(&mut self) -> Result { + let a: [u8; 8] = self.read_u8_array()?; + Ok(self.endian().read_i64(&a)) + } + + /// Read a f32. + #[inline] + fn read_f32(&mut self) -> Result { + let a: [u8; 4] = self.read_u8_array()?; + Ok(self.endian().read_f32(&a)) + } + + /// Read a f64. + #[inline] + fn read_f64(&mut self) -> Result { + let a: [u8; 8] = self.read_u8_array()?; + Ok(self.endian().read_f64(&a)) + } + + /// Read an unsigned n-bytes integer u64. + /// + /// # Panics + /// + /// Panics when nbytes < 1 or nbytes > 8 + #[inline] + fn read_uint(&mut self, n: usize) -> Result { + let mut buf = [0; 8]; + self.read_slice(&mut buf[..n])?; + Ok(self.endian().read_uint(&buf[..n])) + } + + /// Read a null-terminated slice, and return it (excluding the null). + fn read_null_terminated_slice(&mut self) -> Result { + let idx = self.find(0)?; + let val = self.split(idx)?; + self.skip(Self::Offset::from_u8(1))?; + Ok(val) + } + + /// Skip a LEB128 encoded integer. + fn skip_leb128(&mut self) -> Result<()> { + leb128::read::skip(self) + } + + /// Read an unsigned LEB128 encoded integer. + fn read_uleb128(&mut self) -> Result { + leb128::read::unsigned(self) + } + + /// Read an unsigned LEB128 encoded u32. + fn read_uleb128_u32(&mut self) -> Result { + leb128::read::unsigned(self)? + .try_into() + .map_err(|_| Error::BadUnsignedLeb128) + } + + /// Read an unsigned LEB128 encoded u16. + fn read_uleb128_u16(&mut self) -> Result { + leb128::read::u16(self) + } + + /// Read a signed LEB128 encoded integer. + fn read_sleb128(&mut self) -> Result { + leb128::read::signed(self) + } + + /// Read an initial length field. + /// + /// This field is encoded as either a 32-bit length or + /// a 64-bit length, and the returned `Format` indicates which. + fn read_initial_length(&mut self) -> Result<(Self::Offset, Format)> { + const MAX_DWARF_32_UNIT_LENGTH: u32 = 0xffff_fff0; + const DWARF_64_INITIAL_UNIT_LENGTH: u32 = 0xffff_ffff; + + let val = self.read_u32()?; + if val < MAX_DWARF_32_UNIT_LENGTH { + Ok((Self::Offset::from_u32(val), Format::Dwarf32)) + } else if val == DWARF_64_INITIAL_UNIT_LENGTH { + let val = self.read_u64().and_then(Self::Offset::from_u64)?; + Ok((val, Format::Dwarf64)) + } else { + Err(Error::UnknownReservedLength) + } + } + + /// Read an address-sized integer, and return it as a `u64`. + fn read_address(&mut self, address_size: u8) -> Result { + match address_size { + 1 => self.read_u8().map(u64::from), + 2 => self.read_u16().map(u64::from), + 4 => self.read_u32().map(u64::from), + 8 => self.read_u64(), + otherwise => Err(Error::UnsupportedAddressSize(otherwise)), + } + } + + /// Parse a word-sized integer according to the DWARF format. + /// + /// These are always used to encode section offsets or lengths, + /// and so have a type of `Self::Offset`. + fn read_word(&mut self, format: Format) -> Result { + match format { + Format::Dwarf32 => self.read_u32().map(Self::Offset::from_u32), + Format::Dwarf64 => self.read_u64().and_then(Self::Offset::from_u64), + } + } + + /// Parse a word-sized section length according to the DWARF format. + #[inline] + fn read_length(&mut self, format: Format) -> Result { + self.read_word(format) + } + + /// Parse a word-sized section offset according to the DWARF format. + #[inline] + fn read_offset(&mut self, format: Format) -> Result { + self.read_word(format) + } + + /// Parse a section offset of the given size. + /// + /// This is used for `DW_FORM_ref_addr` values in DWARF version 2. + fn read_sized_offset(&mut self, size: u8) -> Result { + match size { + 1 => self.read_u8().map(u64::from), + 2 => self.read_u16().map(u64::from), + 4 => self.read_u32().map(u64::from), + 8 => self.read_u64(), + otherwise => Err(Error::UnsupportedOffsetSize(otherwise)), + } + .and_then(Self::Offset::from_u64) + } +} diff --git a/src/rust/vendor/gimli/src/read/rnglists.rs b/src/rust/vendor/gimli/src/read/rnglists.rs new file mode 100644 index 000000000..12e3e04ee --- /dev/null +++ b/src/rust/vendor/gimli/src/read/rnglists.rs @@ -0,0 +1,1458 @@ +use crate::common::{ + DebugAddrBase, DebugAddrIndex, DebugRngListsBase, DebugRngListsIndex, DwarfFileType, Encoding, + RangeListsOffset, SectionId, +}; +use crate::constants; +use crate::endianity::Endianity; +use crate::read::{ + lists::ListsHeader, DebugAddr, EndianSlice, Error, Reader, ReaderOffset, ReaderOffsetId, + Result, Section, +}; + +/// The raw contents of the `.debug_ranges` section. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugRanges { + pub(crate) section: R, +} + +impl<'input, Endian> DebugRanges> +where + Endian: Endianity, +{ + /// Construct a new `DebugRanges` instance from the data in the `.debug_ranges` + /// section. + /// + /// It is the caller's responsibility to read the `.debug_ranges` section and + /// present it as a `&[u8]` slice. That means using some ELF loader on + /// Linux, a Mach-O loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugRanges, LittleEndian}; + /// + /// # let buf = [0x00, 0x01, 0x02, 0x03]; + /// # let read_debug_ranges_section_somehow = || &buf; + /// let debug_ranges = DebugRanges::new(read_debug_ranges_section_somehow(), LittleEndian); + /// ``` + pub fn new(section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(section, endian)) + } +} + +impl Section for DebugRanges { + fn id() -> SectionId { + SectionId::DebugRanges + } + + fn reader(&self) -> &R { + &self.section + } +} + +impl From for DebugRanges { + fn from(section: R) -> Self { + DebugRanges { section } + } +} + +/// The `DebugRngLists` struct represents the contents of the +/// `.debug_rnglists` section. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugRngLists { + section: R, +} + +impl<'input, Endian> DebugRngLists> +where + Endian: Endianity, +{ + /// Construct a new `DebugRngLists` instance from the data in the + /// `.debug_rnglists` section. + /// + /// It is the caller's responsibility to read the `.debug_rnglists` + /// section and present it as a `&[u8]` slice. That means using some ELF + /// loader on Linux, a Mach-O loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugRngLists, LittleEndian}; + /// + /// # let buf = [0x00, 0x01, 0x02, 0x03]; + /// # let read_debug_rnglists_section_somehow = || &buf; + /// let debug_rnglists = + /// DebugRngLists::new(read_debug_rnglists_section_somehow(), LittleEndian); + /// ``` + pub fn new(section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(section, endian)) + } +} + +impl Section for DebugRngLists { + fn id() -> SectionId { + SectionId::DebugRngLists + } + + fn reader(&self) -> &R { + &self.section + } +} + +impl From for DebugRngLists { + fn from(section: R) -> Self { + DebugRngLists { section } + } +} + +#[allow(unused)] +pub(crate) type RngListsHeader = ListsHeader; + +impl DebugRngListsBase +where + Offset: ReaderOffset, +{ + /// Returns a `DebugRngListsBase` with the default value of DW_AT_rnglists_base + /// for the given `Encoding` and `DwarfFileType`. + pub fn default_for_encoding_and_file( + encoding: Encoding, + file_type: DwarfFileType, + ) -> DebugRngListsBase { + if encoding.version >= 5 && file_type == DwarfFileType::Dwo { + // In .dwo files, the compiler omits the DW_AT_rnglists_base attribute (because there is + // only a single unit in the file) but we must skip past the header, which the attribute + // would normally do for us. + DebugRngListsBase(Offset::from_u8(RngListsHeader::size_for_encoding(encoding))) + } else { + DebugRngListsBase(Offset::from_u8(0)) + } + } +} + +/// The DWARF data found in `.debug_ranges` and `.debug_rnglists` sections. +#[derive(Debug, Default, Clone, Copy)] +pub struct RangeLists { + debug_ranges: DebugRanges, + debug_rnglists: DebugRngLists, +} + +impl RangeLists { + /// Construct a new `RangeLists` instance from the data in the `.debug_ranges` and + /// `.debug_rnglists` sections. + pub fn new(debug_ranges: DebugRanges, debug_rnglists: DebugRngLists) -> RangeLists { + RangeLists { + debug_ranges, + debug_rnglists, + } + } + + /// Return the `.debug_ranges` section. + pub fn debug_ranges(&self) -> &DebugRanges { + &self.debug_ranges + } + + /// Replace the `.debug_ranges` section. + /// + /// This is useful for `.dwo` files when using the GNU split-dwarf extension to DWARF 4. + pub fn set_debug_ranges(&mut self, debug_ranges: DebugRanges) { + self.debug_ranges = debug_ranges; + } + + /// Return the `.debug_rnglists` section. + pub fn debug_rnglists(&self) -> &DebugRngLists { + &self.debug_rnglists + } +} + +impl RangeLists { + /// Create a `RangeLists` that references the data in `self`. + /// + /// This is useful when `R` implements `Reader` but `T` does not. + /// + /// ## Example Usage + /// + /// ```rust,no_run + /// # let load_section = || unimplemented!(); + /// // Read the DWARF section into a `Vec` with whatever object loader you're using. + /// let owned_section: gimli::RangeLists> = load_section(); + /// // Create a reference to the DWARF section. + /// let section = owned_section.borrow(|section| { + /// gimli::EndianSlice::new(§ion, gimli::LittleEndian) + /// }); + /// ``` + pub fn borrow<'a, F, R>(&'a self, mut borrow: F) -> RangeLists + where + F: FnMut(&'a T) -> R, + { + RangeLists { + debug_ranges: borrow(&self.debug_ranges.section).into(), + debug_rnglists: borrow(&self.debug_rnglists.section).into(), + } + } +} + +impl RangeLists { + /// Iterate over the `Range` list entries starting at the given offset. + /// + /// The `unit_version` and `address_size` must match the compilation unit that the + /// offset was contained in. + /// + /// The `base_address` should be obtained from the `DW_AT_low_pc` attribute in the + /// `DW_TAG_compile_unit` entry for the compilation unit that contains this range list. + /// + /// Can be [used with + /// `FallibleIterator`](./index.html#using-with-fallibleiterator). + pub fn ranges( + &self, + offset: RangeListsOffset, + unit_encoding: Encoding, + base_address: u64, + debug_addr: &DebugAddr, + debug_addr_base: DebugAddrBase, + ) -> Result> { + Ok(RngListIter::new( + self.raw_ranges(offset, unit_encoding)?, + base_address, + debug_addr.clone(), + debug_addr_base, + )) + } + + /// Iterate over the `RawRngListEntry`ies starting at the given offset. + /// + /// The `unit_encoding` must match the compilation unit that the + /// offset was contained in. + /// + /// This iterator does not perform any processing of the range entries, + /// such as handling base addresses. + /// + /// Can be [used with + /// `FallibleIterator`](./index.html#using-with-fallibleiterator). + pub fn raw_ranges( + &self, + offset: RangeListsOffset, + unit_encoding: Encoding, + ) -> Result> { + let (mut input, format) = if unit_encoding.version <= 4 { + (self.debug_ranges.section.clone(), RangeListsFormat::Bare) + } else { + (self.debug_rnglists.section.clone(), RangeListsFormat::Rle) + }; + input.skip(offset.0)?; + Ok(RawRngListIter::new(input, unit_encoding, format)) + } + + /// Returns the `.debug_rnglists` offset at the given `base` and `index`. + /// + /// The `base` must be the `DW_AT_rnglists_base` value from the compilation unit DIE. + /// This is an offset that points to the first entry following the header. + /// + /// The `index` is the value of a `DW_FORM_rnglistx` attribute. + /// + /// The `unit_encoding` must match the compilation unit that the + /// index was contained in. + pub fn get_offset( + &self, + unit_encoding: Encoding, + base: DebugRngListsBase, + index: DebugRngListsIndex, + ) -> Result> { + let format = unit_encoding.format; + let input = &mut self.debug_rnglists.section.clone(); + input.skip(base.0)?; + input.skip(R::Offset::from_u64( + index.0.into_u64() * u64::from(format.word_size()), + )?)?; + input + .read_offset(format) + .map(|x| RangeListsOffset(base.0 + x)) + } + + /// Call `Reader::lookup_offset_id` for each section, and return the first match. + pub fn lookup_offset_id(&self, id: ReaderOffsetId) -> Option<(SectionId, R::Offset)> { + self.debug_ranges + .lookup_offset_id(id) + .or_else(|| self.debug_rnglists.lookup_offset_id(id)) + } +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum RangeListsFormat { + /// The bare range list format used before DWARF 5. + Bare, + /// The DW_RLE encoded range list format used in DWARF 5. + Rle, +} + +/// A raw iterator over an address range list. +/// +/// This iterator does not perform any processing of the range entries, +/// such as handling base addresses. +#[derive(Debug)] +pub struct RawRngListIter { + input: R, + encoding: Encoding, + format: RangeListsFormat, +} + +/// A raw entry in .debug_rnglists +#[derive(Clone, Debug)] +pub enum RawRngListEntry { + /// A range from DWARF version <= 4. + AddressOrOffsetPair { + /// Start of range. May be an address or an offset. + begin: u64, + /// End of range. May be an address or an offset. + end: u64, + }, + /// DW_RLE_base_address + BaseAddress { + /// base address + addr: u64, + }, + /// DW_RLE_base_addressx + BaseAddressx { + /// base address + addr: DebugAddrIndex, + }, + /// DW_RLE_startx_endx + StartxEndx { + /// start of range + begin: DebugAddrIndex, + /// end of range + end: DebugAddrIndex, + }, + /// DW_RLE_startx_length + StartxLength { + /// start of range + begin: DebugAddrIndex, + /// length of range + length: u64, + }, + /// DW_RLE_offset_pair + OffsetPair { + /// start of range + begin: u64, + /// end of range + end: u64, + }, + /// DW_RLE_start_end + StartEnd { + /// start of range + begin: u64, + /// end of range + end: u64, + }, + /// DW_RLE_start_length + StartLength { + /// start of range + begin: u64, + /// length of range + length: u64, + }, +} + +impl RawRngListEntry { + /// Parse a range entry from `.debug_rnglists` + fn parse>( + input: &mut R, + encoding: Encoding, + format: RangeListsFormat, + ) -> Result> { + Ok(match format { + RangeListsFormat::Bare => { + let range = RawRange::parse(input, encoding.address_size)?; + if range.is_end() { + None + } else if range.is_base_address(encoding.address_size) { + Some(RawRngListEntry::BaseAddress { addr: range.end }) + } else { + Some(RawRngListEntry::AddressOrOffsetPair { + begin: range.begin, + end: range.end, + }) + } + } + RangeListsFormat::Rle => match constants::DwRle(input.read_u8()?) { + constants::DW_RLE_end_of_list => None, + constants::DW_RLE_base_addressx => Some(RawRngListEntry::BaseAddressx { + addr: DebugAddrIndex(input.read_uleb128().and_then(R::Offset::from_u64)?), + }), + constants::DW_RLE_startx_endx => Some(RawRngListEntry::StartxEndx { + begin: DebugAddrIndex(input.read_uleb128().and_then(R::Offset::from_u64)?), + end: DebugAddrIndex(input.read_uleb128().and_then(R::Offset::from_u64)?), + }), + constants::DW_RLE_startx_length => Some(RawRngListEntry::StartxLength { + begin: DebugAddrIndex(input.read_uleb128().and_then(R::Offset::from_u64)?), + length: input.read_uleb128()?, + }), + constants::DW_RLE_offset_pair => Some(RawRngListEntry::OffsetPair { + begin: input.read_uleb128()?, + end: input.read_uleb128()?, + }), + constants::DW_RLE_base_address => Some(RawRngListEntry::BaseAddress { + addr: input.read_address(encoding.address_size)?, + }), + constants::DW_RLE_start_end => Some(RawRngListEntry::StartEnd { + begin: input.read_address(encoding.address_size)?, + end: input.read_address(encoding.address_size)?, + }), + constants::DW_RLE_start_length => Some(RawRngListEntry::StartLength { + begin: input.read_address(encoding.address_size)?, + length: input.read_uleb128()?, + }), + _ => { + return Err(Error::InvalidAddressRange); + } + }, + }) + } +} + +impl RawRngListIter { + /// Construct a `RawRngListIter`. + fn new(input: R, encoding: Encoding, format: RangeListsFormat) -> RawRngListIter { + RawRngListIter { + input, + encoding, + format, + } + } + + /// Advance the iterator to the next range. + pub fn next(&mut self) -> Result>> { + if self.input.is_empty() { + return Ok(None); + } + + match RawRngListEntry::parse(&mut self.input, self.encoding, self.format) { + Ok(range) => { + if range.is_none() { + self.input.empty(); + } + Ok(range) + } + Err(e) => { + self.input.empty(); + Err(e) + } + } + } +} + +#[cfg(feature = "fallible-iterator")] +impl fallible_iterator::FallibleIterator for RawRngListIter { + type Item = RawRngListEntry; + type Error = Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + RawRngListIter::next(self) + } +} + +/// An iterator over an address range list. +/// +/// This iterator internally handles processing of base addresses and different +/// entry types. Thus, it only returns range entries that are valid +/// and already adjusted for the base address. +#[derive(Debug)] +pub struct RngListIter { + raw: RawRngListIter, + base_address: u64, + debug_addr: DebugAddr, + debug_addr_base: DebugAddrBase, +} + +impl RngListIter { + /// Construct a `RngListIter`. + fn new( + raw: RawRngListIter, + base_address: u64, + debug_addr: DebugAddr, + debug_addr_base: DebugAddrBase, + ) -> RngListIter { + RngListIter { + raw, + base_address, + debug_addr, + debug_addr_base, + } + } + + #[inline] + fn get_address(&self, index: DebugAddrIndex) -> Result { + self.debug_addr + .get_address(self.raw.encoding.address_size, self.debug_addr_base, index) + } + + /// Advance the iterator to the next range. + pub fn next(&mut self) -> Result> { + loop { + let raw_range = match self.raw.next()? { + Some(range) => range, + None => return Ok(None), + }; + + let range = self.convert_raw(raw_range)?; + if range.is_some() { + return Ok(range); + } + } + } + + /// Return the next raw range. + /// + /// The raw range should be passed to `convert_range`. + #[doc(hidden)] + pub fn next_raw(&mut self) -> Result>> { + self.raw.next() + } + + /// Convert a raw range into a range, and update the state of the iterator. + /// + /// The raw range should have been obtained from `next_raw`. + #[doc(hidden)] + pub fn convert_raw(&mut self, raw_range: RawRngListEntry) -> Result> { + let mask = !0 >> (64 - self.raw.encoding.address_size * 8); + let tombstone = if self.raw.encoding.version <= 4 { + mask - 1 + } else { + mask + }; + + let range = match raw_range { + RawRngListEntry::BaseAddress { addr } => { + self.base_address = addr; + return Ok(None); + } + RawRngListEntry::BaseAddressx { addr } => { + self.base_address = self.get_address(addr)?; + return Ok(None); + } + RawRngListEntry::StartxEndx { begin, end } => { + let begin = self.get_address(begin)?; + let end = self.get_address(end)?; + Range { begin, end } + } + RawRngListEntry::StartxLength { begin, length } => { + let begin = self.get_address(begin)?; + let end = begin.wrapping_add(length) & mask; + Range { begin, end } + } + RawRngListEntry::AddressOrOffsetPair { begin, end } + | RawRngListEntry::OffsetPair { begin, end } => { + if self.base_address == tombstone { + return Ok(None); + } + let mut range = Range { begin, end }; + range.add_base_address(self.base_address, self.raw.encoding.address_size); + range + } + RawRngListEntry::StartEnd { begin, end } => Range { begin, end }, + RawRngListEntry::StartLength { begin, length } => { + let end = begin.wrapping_add(length) & mask; + Range { begin, end } + } + }; + + if range.begin == tombstone { + return Ok(None); + } + + if range.begin > range.end { + self.raw.input.empty(); + return Err(Error::InvalidAddressRange); + } + + Ok(Some(range)) + } +} + +#[cfg(feature = "fallible-iterator")] +impl fallible_iterator::FallibleIterator for RngListIter { + type Item = Range; + type Error = Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + RngListIter::next(self) + } +} + +/// A raw address range from the `.debug_ranges` section. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub(crate) struct RawRange { + /// The beginning address of the range. + pub begin: u64, + + /// The first address past the end of the range. + pub end: u64, +} + +impl RawRange { + /// Check if this is a range end entry. + #[inline] + pub fn is_end(&self) -> bool { + self.begin == 0 && self.end == 0 + } + + /// Check if this is a base address selection entry. + /// + /// A base address selection entry changes the base address that subsequent + /// range entries are relative to. + #[inline] + pub fn is_base_address(&self, address_size: u8) -> bool { + self.begin == !0 >> (64 - address_size * 8) + } + + /// Parse an address range entry from `.debug_ranges` or `.debug_loc`. + #[inline] + pub fn parse(input: &mut R, address_size: u8) -> Result { + let begin = input.read_address(address_size)?; + let end = input.read_address(address_size)?; + let range = RawRange { begin, end }; + Ok(range) + } +} + +/// An address range from the `.debug_ranges`, `.debug_rnglists`, or `.debug_aranges` sections. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct Range { + /// The beginning address of the range. + pub begin: u64, + + /// The first address past the end of the range. + pub end: u64, +} + +impl Range { + /// Add a base address to this range. + #[inline] + pub(crate) fn add_base_address(&mut self, base_address: u64, address_size: u8) { + let mask = !0 >> (64 - address_size * 8); + self.begin = base_address.wrapping_add(self.begin) & mask; + self.end = base_address.wrapping_add(self.end) & mask; + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::common::Format; + use crate::endianity::LittleEndian; + use crate::test_util::GimliSectionMethods; + use test_assembler::{Endian, Label, LabelMaker, Section}; + + #[test] + fn test_rnglists_32() { + let tombstone = !0u32; + let encoding = Encoding { + format: Format::Dwarf32, + version: 5, + address_size: 4, + }; + let section = Section::with_endian(Endian::Little) + .L32(0x0300_0000) + .L32(0x0301_0300) + .L32(0x0301_0400) + .L32(0x0301_0500) + .L32(tombstone) + .L32(0x0301_0600); + let buf = section.get_contents().unwrap(); + let debug_addr = &DebugAddr::from(EndianSlice::new(&buf, LittleEndian)); + let debug_addr_base = DebugAddrBase(0); + + let start = Label::new(); + let first = Label::new(); + let size = Label::new(); + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + // Header + .mark(&start) + .L32(&size) + .L16(encoding.version) + .L8(encoding.address_size) + .L8(0) + .L32(0) + .mark(&first) + // An OffsetPair using the unit base address. + .L8(4).uleb(0x10200).uleb(0x10300) + // A base address selection followed by an OffsetPair. + .L8(5).L32(0x0200_0000) + .L8(4).uleb(0x10400).uleb(0x10500) + // An empty OffsetPair followed by a normal OffsetPair. + .L8(4).uleb(0x10600).uleb(0x10600) + .L8(4).uleb(0x10800).uleb(0x10900) + // A StartEnd + .L8(6).L32(0x201_0a00).L32(0x201_0b00) + // A StartLength + .L8(7).L32(0x201_0c00).uleb(0x100) + // An OffsetPair that starts at 0. + .L8(4).uleb(0).uleb(1) + // An OffsetPair that starts and ends at 0. + .L8(4).uleb(0).uleb(0) + // An OffsetPair that ends at -1. + .L8(5).L32(0) + .L8(4).uleb(0).uleb(0xffff_ffff) + // A BaseAddressx + OffsetPair + .L8(1).uleb(0) + .L8(4).uleb(0x10100).uleb(0x10200) + // A StartxEndx + .L8(2).uleb(1).uleb(2) + // A StartxLength + .L8(3).uleb(3).uleb(0x100) + + // Tombstone entries, all of which should be ignored. + // A BaseAddressx that is a tombstone. + .L8(1).uleb(4) + .L8(4).uleb(0x11100).uleb(0x11200) + // A BaseAddress that is a tombstone. + .L8(5).L32(tombstone) + .L8(4).uleb(0x11300).uleb(0x11400) + // A StartxEndx that is a tombstone. + .L8(2).uleb(4).uleb(5) + // A StartxLength that is a tombstone. + .L8(3).uleb(4).uleb(0x100) + // A StartEnd that is a tombstone. + .L8(6).L32(tombstone).L32(0x201_1500) + // A StartLength that is a tombstone. + .L8(7).L32(tombstone).uleb(0x100) + // A StartEnd (not ignored) + .L8(6).L32(0x201_1600).L32(0x201_1700) + + // A range end. + .L8(0) + // Some extra data. + .L32(0xffff_ffff); + size.set_const((§ion.here() - &start - 4) as u64); + + let buf = section.get_contents().unwrap(); + let debug_ranges = DebugRanges::new(&[], LittleEndian); + let debug_rnglists = DebugRngLists::new(&buf, LittleEndian); + let rnglists = RangeLists::new(debug_ranges, debug_rnglists); + let offset = RangeListsOffset((&first - &start) as usize); + let mut ranges = rnglists + .ranges(offset, encoding, 0x0100_0000, debug_addr, debug_addr_base) + .unwrap(); + + // A normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0101_0200, + end: 0x0101_0300, + })) + ); + + // A base address selection followed by a normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0400, + end: 0x0201_0500, + })) + ); + + // An empty range followed by a normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0600, + end: 0x0201_0600, + })) + ); + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0800, + end: 0x0201_0900, + })) + ); + + // A normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0a00, + end: 0x0201_0b00, + })) + ); + + // A normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0c00, + end: 0x0201_0d00, + })) + ); + + // A range that starts at 0. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0200_0000, + end: 0x0200_0001, + })) + ); + + // A range that starts and ends at 0. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0200_0000, + end: 0x0200_0000, + })) + ); + + // A range that ends at -1. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0000_0000, + end: 0xffff_ffff, + })) + ); + + // A BaseAddressx + OffsetPair + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0301_0100, + end: 0x0301_0200, + })) + ); + + // A StartxEndx + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0301_0300, + end: 0x0301_0400, + })) + ); + + // A StartxLength + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0301_0500, + end: 0x0301_0600, + })) + ); + + // A StartEnd range following the tombstones + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_1600, + end: 0x0201_1700, + })) + ); + + // A range end. + assert_eq!(ranges.next(), Ok(None)); + + // An offset at the end of buf. + let mut ranges = rnglists + .ranges( + RangeListsOffset(buf.len()), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) + .unwrap(); + assert_eq!(ranges.next(), Ok(None)); + } + + #[test] + fn test_rnglists_64() { + let tombstone = !0u64; + let encoding = Encoding { + format: Format::Dwarf64, + version: 5, + address_size: 8, + }; + let section = Section::with_endian(Endian::Little) + .L64(0x0300_0000) + .L64(0x0301_0300) + .L64(0x0301_0400) + .L64(0x0301_0500) + .L64(tombstone) + .L64(0x0301_0600); + let buf = section.get_contents().unwrap(); + let debug_addr = &DebugAddr::from(EndianSlice::new(&buf, LittleEndian)); + let debug_addr_base = DebugAddrBase(0); + + let start = Label::new(); + let first = Label::new(); + let size = Label::new(); + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + // Header + .mark(&start) + .L32(0xffff_ffff) + .L64(&size) + .L16(encoding.version) + .L8(encoding.address_size) + .L8(0) + .L32(0) + .mark(&first) + // An OffsetPair using the unit base address. + .L8(4).uleb(0x10200).uleb(0x10300) + // A base address selection followed by an OffsetPair. + .L8(5).L64(0x0200_0000) + .L8(4).uleb(0x10400).uleb(0x10500) + // An empty OffsetPair followed by a normal OffsetPair. + .L8(4).uleb(0x10600).uleb(0x10600) + .L8(4).uleb(0x10800).uleb(0x10900) + // A StartEnd + .L8(6).L64(0x201_0a00).L64(0x201_0b00) + // A StartLength + .L8(7).L64(0x201_0c00).uleb(0x100) + // An OffsetPair that starts at 0. + .L8(4).uleb(0).uleb(1) + // An OffsetPair that starts and ends at 0. + .L8(4).uleb(0).uleb(0) + // An OffsetPair that ends at -1. + .L8(5).L64(0) + .L8(4).uleb(0).uleb(0xffff_ffff) + // A BaseAddressx + OffsetPair + .L8(1).uleb(0) + .L8(4).uleb(0x10100).uleb(0x10200) + // A StartxEndx + .L8(2).uleb(1).uleb(2) + // A StartxLength + .L8(3).uleb(3).uleb(0x100) + + // Tombstone entries, all of which should be ignored. + // A BaseAddressx that is a tombstone. + .L8(1).uleb(4) + .L8(4).uleb(0x11100).uleb(0x11200) + // A BaseAddress that is a tombstone. + .L8(5).L64(tombstone) + .L8(4).uleb(0x11300).uleb(0x11400) + // A StartxEndx that is a tombstone. + .L8(2).uleb(4).uleb(5) + // A StartxLength that is a tombstone. + .L8(3).uleb(4).uleb(0x100) + // A StartEnd that is a tombstone. + .L8(6).L64(tombstone).L64(0x201_1500) + // A StartLength that is a tombstone. + .L8(7).L64(tombstone).uleb(0x100) + // A StartEnd (not ignored) + .L8(6).L64(0x201_1600).L64(0x201_1700) + + // A range end. + .L8(0) + // Some extra data. + .L32(0xffff_ffff); + size.set_const((§ion.here() - &start - 12) as u64); + + let buf = section.get_contents().unwrap(); + let debug_ranges = DebugRanges::new(&[], LittleEndian); + let debug_rnglists = DebugRngLists::new(&buf, LittleEndian); + let rnglists = RangeLists::new(debug_ranges, debug_rnglists); + let offset = RangeListsOffset((&first - &start) as usize); + let mut ranges = rnglists + .ranges(offset, encoding, 0x0100_0000, debug_addr, debug_addr_base) + .unwrap(); + + // A normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0101_0200, + end: 0x0101_0300, + })) + ); + + // A base address selection followed by a normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0400, + end: 0x0201_0500, + })) + ); + + // An empty range followed by a normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0600, + end: 0x0201_0600, + })) + ); + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0800, + end: 0x0201_0900, + })) + ); + + // A normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0a00, + end: 0x0201_0b00, + })) + ); + + // A normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0c00, + end: 0x0201_0d00, + })) + ); + + // A range that starts at 0. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0200_0000, + end: 0x0200_0001, + })) + ); + + // A range that starts and ends at 0. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0200_0000, + end: 0x0200_0000, + })) + ); + + // A range that ends at -1. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0000_0000, + end: 0xffff_ffff, + })) + ); + + // A BaseAddressx + OffsetPair + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0301_0100, + end: 0x0301_0200, + })) + ); + + // A StartxEndx + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0301_0300, + end: 0x0301_0400, + })) + ); + + // A StartxLength + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0301_0500, + end: 0x0301_0600, + })) + ); + + // A StartEnd range following the tombstones + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_1600, + end: 0x0201_1700, + })) + ); + + // A range end. + assert_eq!(ranges.next(), Ok(None)); + + // An offset at the end of buf. + let mut ranges = rnglists + .ranges( + RangeListsOffset(buf.len()), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) + .unwrap(); + assert_eq!(ranges.next(), Ok(None)); + } + + #[test] + fn test_raw_range() { + let range = RawRange { + begin: 0, + end: 0xffff_ffff, + }; + assert!(!range.is_end()); + assert!(!range.is_base_address(4)); + assert!(!range.is_base_address(8)); + + let range = RawRange { begin: 0, end: 0 }; + assert!(range.is_end()); + assert!(!range.is_base_address(4)); + assert!(!range.is_base_address(8)); + + let range = RawRange { + begin: 0xffff_ffff, + end: 0, + }; + assert!(!range.is_end()); + assert!(range.is_base_address(4)); + assert!(!range.is_base_address(8)); + + let range = RawRange { + begin: 0xffff_ffff_ffff_ffff, + end: 0, + }; + assert!(!range.is_end()); + assert!(!range.is_base_address(4)); + assert!(range.is_base_address(8)); + } + + #[test] + fn test_ranges_32() { + let tombstone = !0u32 - 1; + let start = Label::new(); + let first = Label::new(); + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + // A range before the offset. + .mark(&start) + .L32(0x10000).L32(0x10100) + .mark(&first) + // A normal range. + .L32(0x10200).L32(0x10300) + // A base address selection followed by a normal range. + .L32(0xffff_ffff).L32(0x0200_0000) + .L32(0x10400).L32(0x10500) + // An empty range followed by a normal range. + .L32(0x10600).L32(0x10600) + .L32(0x10800).L32(0x10900) + // A range that starts at 0. + .L32(0).L32(1) + // A range that ends at -1. + .L32(0xffff_ffff).L32(0x0000_0000) + .L32(0).L32(0xffff_ffff) + // A normal range with tombstone. + .L32(tombstone).L32(tombstone) + // A base address selection with tombstone followed by a normal range. + .L32(0xffff_ffff).L32(tombstone) + .L32(0x10a00).L32(0x10b00) + // A range end. + .L32(0).L32(0) + // Some extra data. + .L32(0); + + let buf = section.get_contents().unwrap(); + let debug_ranges = DebugRanges::new(&buf, LittleEndian); + let debug_rnglists = DebugRngLists::new(&[], LittleEndian); + let rnglists = RangeLists::new(debug_ranges, debug_rnglists); + let offset = RangeListsOffset((&first - &start) as usize); + let debug_addr = &DebugAddr::from(EndianSlice::new(&[], LittleEndian)); + let debug_addr_base = DebugAddrBase(0); + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let mut ranges = rnglists + .ranges(offset, encoding, 0x0100_0000, debug_addr, debug_addr_base) + .unwrap(); + + // A normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0101_0200, + end: 0x0101_0300, + })) + ); + + // A base address selection followed by a normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0400, + end: 0x0201_0500, + })) + ); + + // An empty range followed by a normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0600, + end: 0x0201_0600, + })) + ); + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0800, + end: 0x0201_0900, + })) + ); + + // A range that starts at 0. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0200_0000, + end: 0x0200_0001, + })) + ); + + // A range that ends at -1. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0000_0000, + end: 0xffff_ffff, + })) + ); + + // A range end. + assert_eq!(ranges.next(), Ok(None)); + + // An offset at the end of buf. + let mut ranges = rnglists + .ranges( + RangeListsOffset(buf.len()), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) + .unwrap(); + assert_eq!(ranges.next(), Ok(None)); + } + + #[test] + fn test_ranges_64() { + let tombstone = !0u64 - 1; + let start = Label::new(); + let first = Label::new(); + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + // A range before the offset. + .mark(&start) + .L64(0x10000).L64(0x10100) + .mark(&first) + // A normal range. + .L64(0x10200).L64(0x10300) + // A base address selection followed by a normal range. + .L64(0xffff_ffff_ffff_ffff).L64(0x0200_0000) + .L64(0x10400).L64(0x10500) + // An empty range followed by a normal range. + .L64(0x10600).L64(0x10600) + .L64(0x10800).L64(0x10900) + // A range that starts at 0. + .L64(0).L64(1) + // A range that ends at -1. + .L64(0xffff_ffff_ffff_ffff).L64(0x0000_0000) + .L64(0).L64(0xffff_ffff_ffff_ffff) + // A normal range with tombstone. + .L64(tombstone).L64(tombstone) + // A base address selection with tombstone followed by a normal range. + .L64(0xffff_ffff_ffff_ffff).L64(tombstone) + .L64(0x10a00).L64(0x10b00) + // A range end. + .L64(0).L64(0) + // Some extra data. + .L64(0); + + let buf = section.get_contents().unwrap(); + let debug_ranges = DebugRanges::new(&buf, LittleEndian); + let debug_rnglists = DebugRngLists::new(&[], LittleEndian); + let rnglists = RangeLists::new(debug_ranges, debug_rnglists); + let offset = RangeListsOffset((&first - &start) as usize); + let debug_addr = &DebugAddr::from(EndianSlice::new(&[], LittleEndian)); + let debug_addr_base = DebugAddrBase(0); + let encoding = Encoding { + format: Format::Dwarf64, + version: 4, + address_size: 8, + }; + let mut ranges = rnglists + .ranges(offset, encoding, 0x0100_0000, debug_addr, debug_addr_base) + .unwrap(); + + // A normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0101_0200, + end: 0x0101_0300, + })) + ); + + // A base address selection followed by a normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0400, + end: 0x0201_0500, + })) + ); + + // An empty range followed by a normal range. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0600, + end: 0x0201_0600, + })) + ); + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0201_0800, + end: 0x0201_0900, + })) + ); + + // A range that starts at 0. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0200_0000, + end: 0x0200_0001, + })) + ); + + // A range that ends at -1. + assert_eq!( + ranges.next(), + Ok(Some(Range { + begin: 0x0, + end: 0xffff_ffff_ffff_ffff, + })) + ); + + // A range end. + assert_eq!(ranges.next(), Ok(None)); + + // An offset at the end of buf. + let mut ranges = rnglists + .ranges( + RangeListsOffset(buf.len()), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) + .unwrap(); + assert_eq!(ranges.next(), Ok(None)); + } + + #[test] + fn test_ranges_invalid() { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + // An invalid range. + .L32(0x20000).L32(0x10000) + // An invalid range after wrapping. + .L32(0x20000).L32(0xff01_0000); + + let buf = section.get_contents().unwrap(); + let debug_ranges = DebugRanges::new(&buf, LittleEndian); + let debug_rnglists = DebugRngLists::new(&[], LittleEndian); + let rnglists = RangeLists::new(debug_ranges, debug_rnglists); + let debug_addr = &DebugAddr::from(EndianSlice::new(&[], LittleEndian)); + let debug_addr_base = DebugAddrBase(0); + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + + // An invalid range. + let mut ranges = rnglists + .ranges( + RangeListsOffset(0x0), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) + .unwrap(); + assert_eq!(ranges.next(), Err(Error::InvalidAddressRange)); + + // An invalid range after wrapping. + let mut ranges = rnglists + .ranges( + RangeListsOffset(0x8), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) + .unwrap(); + assert_eq!(ranges.next(), Err(Error::InvalidAddressRange)); + + // An invalid offset. + match rnglists.ranges( + RangeListsOffset(buf.len() + 1), + encoding, + 0x0100_0000, + debug_addr, + debug_addr_base, + ) { + Err(Error::UnexpectedEof(_)) => {} + otherwise => panic!("Unexpected result: {:?}", otherwise), + } + } + + #[test] + fn test_get_offset() { + for format in vec![Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version: 5, + address_size: 4, + }; + + let zero = Label::new(); + let length = Label::new(); + let start = Label::new(); + let first = Label::new(); + let end = Label::new(); + let mut section = Section::with_endian(Endian::Little) + .mark(&zero) + .initial_length(format, &length, &start) + .D16(encoding.version) + .D8(encoding.address_size) + .D8(0) + .D32(20) + .mark(&first); + for i in 0..20 { + section = section.word(format.word_size(), 1000 + i); + } + section = section.mark(&end); + length.set_const((&end - &start) as u64); + let section = section.get_contents().unwrap(); + + let debug_ranges = DebugRanges::from(EndianSlice::new(&[], LittleEndian)); + let debug_rnglists = DebugRngLists::from(EndianSlice::new(§ion, LittleEndian)); + let ranges = RangeLists::new(debug_ranges, debug_rnglists); + + let base = DebugRngListsBase((&first - &zero) as usize); + assert_eq!( + ranges.get_offset(encoding, base, DebugRngListsIndex(0)), + Ok(RangeListsOffset(base.0 + 1000)) + ); + assert_eq!( + ranges.get_offset(encoding, base, DebugRngListsIndex(19)), + Ok(RangeListsOffset(base.0 + 1019)) + ); + } + } +} diff --git a/src/rust/vendor/gimli/src/read/str.rs b/src/rust/vendor/gimli/src/read/str.rs new file mode 100644 index 000000000..c6b87d8f9 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/str.rs @@ -0,0 +1,321 @@ +use crate::common::{ + DebugLineStrOffset, DebugStrOffset, DebugStrOffsetsBase, DebugStrOffsetsIndex, DwarfFileType, + Encoding, SectionId, +}; +use crate::endianity::Endianity; +use crate::read::{EndianSlice, Reader, ReaderOffset, Result, Section}; +use crate::Format; + +/// The `DebugStr` struct represents the DWARF strings +/// found in the `.debug_str` section. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugStr { + debug_str_section: R, +} + +impl<'input, Endian> DebugStr> +where + Endian: Endianity, +{ + /// Construct a new `DebugStr` instance from the data in the `.debug_str` + /// section. + /// + /// It is the caller's responsibility to read the `.debug_str` section and + /// present it as a `&[u8]` slice. That means using some ELF loader on + /// Linux, a Mach-O loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugStr, LittleEndian}; + /// + /// # let buf = [0x00, 0x01, 0x02, 0x03]; + /// # let read_debug_str_section_somehow = || &buf; + /// let debug_str = DebugStr::new(read_debug_str_section_somehow(), LittleEndian); + /// ``` + pub fn new(debug_str_section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(debug_str_section, endian)) + } +} + +impl DebugStr { + /// Lookup a string from the `.debug_str` section by DebugStrOffset. + /// + /// ``` + /// use gimli::{DebugStr, DebugStrOffset, LittleEndian}; + /// + /// # let buf = [0x01, 0x02, 0x00]; + /// # let offset = DebugStrOffset(0); + /// # let read_debug_str_section_somehow = || &buf; + /// # let debug_str_offset_somehow = || offset; + /// let debug_str = DebugStr::new(read_debug_str_section_somehow(), LittleEndian); + /// println!("Found string {:?}", debug_str.get_str(debug_str_offset_somehow())); + /// ``` + pub fn get_str(&self, offset: DebugStrOffset) -> Result { + let input = &mut self.debug_str_section.clone(); + input.skip(offset.0)?; + input.read_null_terminated_slice() + } +} + +impl DebugStr { + /// Create a `DebugStr` section that references the data in `self`. + /// + /// This is useful when `R` implements `Reader` but `T` does not. + /// + /// ## Example Usage + /// + /// ```rust,no_run + /// # let load_section = || unimplemented!(); + /// // Read the DWARF section into a `Vec` with whatever object loader you're using. + /// let owned_section: gimli::DebugStr> = load_section(); + /// // Create a reference to the DWARF section. + /// let section = owned_section.borrow(|section| { + /// gimli::EndianSlice::new(§ion, gimli::LittleEndian) + /// }); + /// ``` + pub fn borrow<'a, F, R>(&'a self, mut borrow: F) -> DebugStr + where + F: FnMut(&'a T) -> R, + { + borrow(&self.debug_str_section).into() + } +} + +impl Section for DebugStr { + fn id() -> SectionId { + SectionId::DebugStr + } + + fn reader(&self) -> &R { + &self.debug_str_section + } +} + +impl From for DebugStr { + fn from(debug_str_section: R) -> Self { + DebugStr { debug_str_section } + } +} + +/// The raw contents of the `.debug_str_offsets` section. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugStrOffsets { + section: R, +} + +impl DebugStrOffsets { + // TODO: add an iterator over the sets of entries in the section. + // This is not needed for common usage of the section though. + + /// Returns the `.debug_str` offset at the given `base` and `index`. + /// + /// A set of entries in the `.debug_str_offsets` section consists of a header + /// followed by a series of string table offsets. + /// + /// The `base` must be the `DW_AT_str_offsets_base` value from the compilation unit DIE. + /// This is an offset that points to the first entry following the header. + /// + /// The `index` is the value of a `DW_FORM_strx` attribute. + /// + /// The `format` must be the DWARF format of the compilation unit. This format must + /// match the header. However, note that we do not parse the header to validate this, + /// since locating the header is unreliable, and the GNU extensions do not emit it. + pub fn get_str_offset( + &self, + format: Format, + base: DebugStrOffsetsBase, + index: DebugStrOffsetsIndex, + ) -> Result> { + let input = &mut self.section.clone(); + input.skip(base.0)?; + input.skip(R::Offset::from_u64( + index.0.into_u64() * u64::from(format.word_size()), + )?)?; + input.read_offset(format).map(DebugStrOffset) + } +} + +impl DebugStrOffsets { + /// Create a `DebugStrOffsets` section that references the data in `self`. + /// + /// This is useful when `R` implements `Reader` but `T` does not. + /// + /// ## Example Usage + /// + /// ```rust,no_run + /// # let load_section = || unimplemented!(); + /// // Read the DWARF section into a `Vec` with whatever object loader you're using. + /// let owned_section: gimli::DebugStrOffsets> = load_section(); + /// // Create a reference to the DWARF section. + /// let section = owned_section.borrow(|section| { + /// gimli::EndianSlice::new(§ion, gimli::LittleEndian) + /// }); + /// ``` + pub fn borrow<'a, F, R>(&'a self, mut borrow: F) -> DebugStrOffsets + where + F: FnMut(&'a T) -> R, + { + borrow(&self.section).into() + } +} + +impl Section for DebugStrOffsets { + fn id() -> SectionId { + SectionId::DebugStrOffsets + } + + fn reader(&self) -> &R { + &self.section + } +} + +impl From for DebugStrOffsets { + fn from(section: R) -> Self { + DebugStrOffsets { section } + } +} + +impl DebugStrOffsetsBase +where + Offset: ReaderOffset, +{ + /// Returns a `DebugStrOffsetsBase` with the default value of DW_AT_str_offsets_base + /// for the given `Encoding` and `DwarfFileType`. + pub fn default_for_encoding_and_file( + encoding: Encoding, + file_type: DwarfFileType, + ) -> DebugStrOffsetsBase { + if encoding.version >= 5 && file_type == DwarfFileType::Dwo { + // In .dwo files, the compiler omits the DW_AT_str_offsets_base attribute (because there is + // only a single unit in the file) but we must skip past the header, which the attribute + // would normally do for us. + // initial_length_size + version + 2 bytes of padding. + DebugStrOffsetsBase(Offset::from_u8( + encoding.format.initial_length_size() + 2 + 2, + )) + } else { + DebugStrOffsetsBase(Offset::from_u8(0)) + } + } +} + +/// The `DebugLineStr` struct represents the DWARF strings +/// found in the `.debug_line_str` section. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugLineStr { + section: R, +} + +impl<'input, Endian> DebugLineStr> +where + Endian: Endianity, +{ + /// Construct a new `DebugLineStr` instance from the data in the `.debug_line_str` + /// section. + /// + /// It is the caller's responsibility to read the `.debug_line_str` section and + /// present it as a `&[u8]` slice. That means using some ELF loader on + /// Linux, a Mach-O loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugLineStr, LittleEndian}; + /// + /// # let buf = [0x00, 0x01, 0x02, 0x03]; + /// # let read_debug_line_str_section_somehow = || &buf; + /// let debug_str = DebugLineStr::new(read_debug_line_str_section_somehow(), LittleEndian); + /// ``` + pub fn new(debug_line_str_section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(debug_line_str_section, endian)) + } +} + +impl DebugLineStr { + /// Lookup a string from the `.debug_line_str` section by DebugLineStrOffset. + pub fn get_str(&self, offset: DebugLineStrOffset) -> Result { + let input = &mut self.section.clone(); + input.skip(offset.0)?; + input.read_null_terminated_slice() + } +} + +impl DebugLineStr { + /// Create a `DebugLineStr` section that references the data in `self`. + /// + /// This is useful when `R` implements `Reader` but `T` does not. + /// + /// ## Example Usage + /// + /// ```rust,no_run + /// # let load_section = || unimplemented!(); + /// // Read the DWARF section into a `Vec` with whatever object loader you're using. + /// let owned_section: gimli::DebugLineStr> = load_section(); + /// // Create a reference to the DWARF section. + /// let section = owned_section.borrow(|section| { + /// gimli::EndianSlice::new(§ion, gimli::LittleEndian) + /// }); + /// ``` + pub fn borrow<'a, F, R>(&'a self, mut borrow: F) -> DebugLineStr + where + F: FnMut(&'a T) -> R, + { + borrow(&self.section).into() + } +} + +impl Section for DebugLineStr { + fn id() -> SectionId { + SectionId::DebugLineStr + } + + fn reader(&self) -> &R { + &self.section + } +} + +impl From for DebugLineStr { + fn from(section: R) -> Self { + DebugLineStr { section } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::test_util::GimliSectionMethods; + use crate::LittleEndian; + use test_assembler::{Endian, Label, LabelMaker, Section}; + + #[test] + fn test_get_str_offset() { + for format in vec![Format::Dwarf32, Format::Dwarf64] { + let zero = Label::new(); + let length = Label::new(); + let start = Label::new(); + let first = Label::new(); + let end = Label::new(); + let mut section = Section::with_endian(Endian::Little) + .mark(&zero) + .initial_length(format, &length, &start) + .D16(5) + .D16(0) + .mark(&first); + for i in 0..20 { + section = section.word(format.word_size(), 1000 + i); + } + section = section.mark(&end); + length.set_const((&end - &start) as u64); + + let section = section.get_contents().unwrap(); + let debug_str_offsets = DebugStrOffsets::from(EndianSlice::new(§ion, LittleEndian)); + let base = DebugStrOffsetsBase((&first - &zero) as usize); + + assert_eq!( + debug_str_offsets.get_str_offset(format, base, DebugStrOffsetsIndex(0)), + Ok(DebugStrOffset(1000)) + ); + assert_eq!( + debug_str_offsets.get_str_offset(format, base, DebugStrOffsetsIndex(19)), + Ok(DebugStrOffset(1019)) + ); + } + } +} diff --git a/src/rust/vendor/gimli/src/read/unit.rs b/src/rust/vendor/gimli/src/read/unit.rs new file mode 100644 index 000000000..d799f0f07 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/unit.rs @@ -0,0 +1,6139 @@ +//! Functions for parsing DWARF `.debug_info` and `.debug_types` sections. + +use core::cell::Cell; +use core::ops::{Range, RangeFrom, RangeTo}; +use core::{u16, u8}; + +use crate::common::{ + DebugAbbrevOffset, DebugAddrBase, DebugAddrIndex, DebugInfoOffset, DebugLineOffset, + DebugLineStrOffset, DebugLocListsBase, DebugLocListsIndex, DebugMacinfoOffset, + DebugMacroOffset, DebugRngListsBase, DebugRngListsIndex, DebugStrOffset, DebugStrOffsetsBase, + DebugStrOffsetsIndex, DebugTypeSignature, DebugTypesOffset, DwoId, Encoding, Format, + LocationListsOffset, RawRangeListsOffset, SectionId, UnitSectionOffset, +}; +use crate::constants; +use crate::endianity::Endianity; +use crate::read::abbrev::get_attribute_size; +use crate::read::{ + Abbreviation, Abbreviations, AttributeSpecification, DebugAbbrev, DebugStr, EndianSlice, Error, + Expression, Reader, ReaderOffset, Result, Section, UnitOffset, +}; + +impl DebugTypesOffset { + /// Convert an offset to be relative to the start of the given unit, + /// instead of relative to the start of the .debug_types section. + /// Returns `None` if the offset is not within the unit entries. + pub fn to_unit_offset(&self, unit: &UnitHeader) -> Option> + where + R: Reader, + { + let unit_offset = unit.offset().as_debug_types_offset()?; + let offset = UnitOffset(self.0.checked_sub(unit_offset.0)?); + if !unit.is_valid_offset(offset) { + return None; + } + Some(offset) + } +} + +impl DebugInfoOffset { + /// Convert an offset to be relative to the start of the given unit, + /// instead of relative to the start of the .debug_info section. + /// Returns `None` if the offset is not within this unit entries. + pub fn to_unit_offset(&self, unit: &UnitHeader) -> Option> + where + R: Reader, + { + let unit_offset = unit.offset().as_debug_info_offset()?; + let offset = UnitOffset(self.0.checked_sub(unit_offset.0)?); + if !unit.is_valid_offset(offset) { + return None; + } + Some(offset) + } +} + +impl UnitOffset { + /// Convert an offset to be relative to the start of the .debug_info section, + /// instead of relative to the start of the given unit. Returns None if the + /// provided unit lives in the .debug_types section. + pub fn to_debug_info_offset(&self, unit: &UnitHeader) -> Option> + where + R: Reader, + { + let unit_offset = unit.offset().as_debug_info_offset()?; + Some(DebugInfoOffset(unit_offset.0 + self.0)) + } + + /// Convert an offset to be relative to the start of the .debug_types section, + /// instead of relative to the start of the given unit. Returns None if the + /// provided unit lives in the .debug_info section. + pub fn to_debug_types_offset(&self, unit: &UnitHeader) -> Option> + where + R: Reader, + { + let unit_offset = unit.offset().as_debug_types_offset()?; + Some(DebugTypesOffset(unit_offset.0 + self.0)) + } +} + +/// The `DebugInfo` struct represents the DWARF debugging information found in +/// the `.debug_info` section. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugInfo { + debug_info_section: R, +} + +impl<'input, Endian> DebugInfo> +where + Endian: Endianity, +{ + /// Construct a new `DebugInfo` instance from the data in the `.debug_info` + /// section. + /// + /// It is the caller's responsibility to read the `.debug_info` section and + /// present it as a `&[u8]` slice. That means using some ELF loader on + /// Linux, a Mach-O loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugInfo, LittleEndian}; + /// + /// # let buf = [0x00, 0x01, 0x02, 0x03]; + /// # let read_debug_info_section_somehow = || &buf; + /// let debug_info = DebugInfo::new(read_debug_info_section_somehow(), LittleEndian); + /// ``` + pub fn new(debug_info_section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(debug_info_section, endian)) + } +} + +impl DebugInfo { + /// Iterate the units in this `.debug_info` section. + /// + /// ``` + /// use gimli::{DebugInfo, LittleEndian}; + /// + /// # let buf = []; + /// # let read_debug_info_section_somehow = || &buf; + /// let debug_info = DebugInfo::new(read_debug_info_section_somehow(), LittleEndian); + /// + /// let mut iter = debug_info.units(); + /// while let Some(unit) = iter.next().unwrap() { + /// println!("unit's length is {}", unit.unit_length()); + /// } + /// ``` + /// + /// Can be [used with + /// `FallibleIterator`](./index.html#using-with-fallibleiterator). + pub fn units(&self) -> DebugInfoUnitHeadersIter { + DebugInfoUnitHeadersIter { + input: self.debug_info_section.clone(), + offset: DebugInfoOffset(R::Offset::from_u8(0)), + } + } + + /// Get the UnitHeader located at offset from this .debug_info section. + /// + /// + pub fn header_from_offset(&self, offset: DebugInfoOffset) -> Result> { + let input = &mut self.debug_info_section.clone(); + input.skip(offset.0)?; + parse_unit_header(input, offset.into()) + } +} + +impl DebugInfo { + /// Create a `DebugInfo` section that references the data in `self`. + /// + /// This is useful when `R` implements `Reader` but `T` does not. + /// + /// ## Example Usage + /// + /// ```rust,no_run + /// # let load_section = || unimplemented!(); + /// // Read the DWARF section into a `Vec` with whatever object loader you're using. + /// let owned_section: gimli::DebugInfo> = load_section(); + /// // Create a reference to the DWARF section. + /// let section = owned_section.borrow(|section| { + /// gimli::EndianSlice::new(§ion, gimli::LittleEndian) + /// }); + /// ``` + pub fn borrow<'a, F, R>(&'a self, mut borrow: F) -> DebugInfo + where + F: FnMut(&'a T) -> R, + { + borrow(&self.debug_info_section).into() + } +} + +impl Section for DebugInfo { + fn id() -> SectionId { + SectionId::DebugInfo + } + + fn reader(&self) -> &R { + &self.debug_info_section + } +} + +impl From for DebugInfo { + fn from(debug_info_section: R) -> Self { + DebugInfo { debug_info_section } + } +} + +/// An iterator over the units of a .debug_info section. +/// +/// See the [documentation on +/// `DebugInfo::units`](./struct.DebugInfo.html#method.units) for more detail. +#[derive(Clone, Debug)] +pub struct DebugInfoUnitHeadersIter { + input: R, + offset: DebugInfoOffset, +} + +impl DebugInfoUnitHeadersIter { + /// Advance the iterator to the next unit header. + pub fn next(&mut self) -> Result>> { + if self.input.is_empty() { + Ok(None) + } else { + let len = self.input.len(); + match parse_unit_header(&mut self.input, self.offset.into()) { + Ok(header) => { + self.offset.0 += len - self.input.len(); + Ok(Some(header)) + } + Err(e) => { + self.input.empty(); + Err(e) + } + } + } + } +} + +#[cfg(feature = "fallible-iterator")] +impl fallible_iterator::FallibleIterator for DebugInfoUnitHeadersIter { + type Item = UnitHeader; + type Error = Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + DebugInfoUnitHeadersIter::next(self) + } +} + +/// Parse the unit type from the unit header. +fn parse_unit_type(input: &mut R) -> Result { + let val = input.read_u8()?; + Ok(constants::DwUt(val)) +} + +/// Parse the `debug_abbrev_offset` in the compilation unit header. +fn parse_debug_abbrev_offset( + input: &mut R, + format: Format, +) -> Result> { + input.read_offset(format).map(DebugAbbrevOffset) +} + +/// Parse the `debug_info_offset` in the arange header. +pub(crate) fn parse_debug_info_offset( + input: &mut R, + format: Format, +) -> Result> { + input.read_offset(format).map(DebugInfoOffset) +} + +/// This enum specifies the type of the unit and any type +/// specific data carried in the header (e.g. the type +/// signature/type offset of a type unit). +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum UnitType +where + Offset: ReaderOffset, +{ + /// In DWARF5, a unit with type `DW_UT_compile`. In previous DWARF versions, + /// any unit appearing in the .debug_info section. + Compilation, + /// In DWARF5, a unit with type `DW_UT_type`. In DWARF4, any unit appearing + /// in the .debug_types section. + Type { + /// The unique type signature for this type unit. + type_signature: DebugTypeSignature, + /// The offset within this type unit where the type is defined. + type_offset: UnitOffset, + }, + /// A unit with type `DW_UT_partial`. The root DIE of this unit should be a + /// `DW_TAG_partial_unit`. + Partial, + /// A unit with type `DW_UT_skeleton`. The enclosed dwo_id can be used to + /// link this with the corresponding `SplitCompilation` unit in a dwo file. + /// NB: The non-standard GNU split DWARF extension to DWARF 4 will instead + /// be a `Compilation` unit with the dwo_id present as an attribute on the + /// root DIE. + Skeleton(DwoId), + /// A unit with type `DW_UT_split_compile`. The enclosed dwo_id can be used to + /// link this with the corresponding `Skeleton` unit in the original binary. + /// NB: The non-standard GNU split DWARF extension to DWARF 4 will instead + /// be a `Compilation` unit with the dwo_id present as an attribute on the + /// root DIE. + SplitCompilation(DwoId), + /// A unit with type `DW_UT_split_type`. A split type unit is identical to a + /// conventional type unit except for the section in which it appears. + SplitType { + /// The unique type signature for this type unit. + type_signature: DebugTypeSignature, + /// The offset within this type unit where the type is defined. + type_offset: UnitOffset, + }, +} + +impl UnitType +where + Offset: ReaderOffset, +{ + // TODO: This will be used by the DWARF writing code once it + // supports unit types other than simple compilation units. + #[allow(unused)] + pub(crate) fn dw_ut(&self) -> constants::DwUt { + match self { + UnitType::Compilation => constants::DW_UT_compile, + UnitType::Type { .. } => constants::DW_UT_type, + UnitType::Partial => constants::DW_UT_partial, + UnitType::Skeleton(_) => constants::DW_UT_skeleton, + UnitType::SplitCompilation(_) => constants::DW_UT_split_compile, + UnitType::SplitType { .. } => constants::DW_UT_split_type, + } + } +} + +/// The common fields for the headers of compilation units and +/// type units. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct UnitHeader::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + encoding: Encoding, + unit_length: Offset, + unit_type: UnitType, + debug_abbrev_offset: DebugAbbrevOffset, + unit_offset: UnitSectionOffset, + entries_buf: R, +} + +/// Static methods. +impl UnitHeader +where + R: Reader, + Offset: ReaderOffset, +{ + /// Construct a new `UnitHeader`. + pub fn new( + encoding: Encoding, + unit_length: Offset, + unit_type: UnitType, + debug_abbrev_offset: DebugAbbrevOffset, + unit_offset: UnitSectionOffset, + entries_buf: R, + ) -> Self { + UnitHeader { + encoding, + unit_length, + unit_type, + debug_abbrev_offset, + unit_offset, + entries_buf, + } + } +} + +/// Instance methods. +impl UnitHeader +where + R: Reader, + Offset: ReaderOffset, +{ + /// Get the offset of this unit within its section. + pub fn offset(&self) -> UnitSectionOffset { + self.unit_offset + } + + /// Return the serialized size of the common unit header for the given + /// DWARF format. + pub fn size_of_header(&self) -> usize { + let unit_length_size = self.encoding.format.initial_length_size() as usize; + let version_size = 2; + let debug_abbrev_offset_size = self.encoding.format.word_size() as usize; + let address_size_size = 1; + let unit_type_size = if self.encoding.version == 5 { 1 } else { 0 }; + let type_specific_size = match self.unit_type { + UnitType::Compilation | UnitType::Partial => 0, + UnitType::Type { .. } | UnitType::SplitType { .. } => { + let type_signature_size = 8; + let type_offset_size = self.encoding.format.word_size() as usize; + type_signature_size + type_offset_size + } + UnitType::Skeleton(_) | UnitType::SplitCompilation(_) => 8, + }; + + unit_length_size + + version_size + + debug_abbrev_offset_size + + address_size_size + + unit_type_size + + type_specific_size + } + + /// Get the length of the debugging info for this compilation unit, not + /// including the byte length of the encoded length itself. + pub fn unit_length(&self) -> Offset { + self.unit_length + } + + /// Get the length of the debugging info for this compilation unit, + /// including the byte length of the encoded length itself. + pub fn length_including_self(&self) -> Offset { + Offset::from_u8(self.format().initial_length_size()) + self.unit_length + } + + /// Return the encoding parameters for this unit. + pub fn encoding(&self) -> Encoding { + self.encoding + } + + /// Get the DWARF version of the debugging info for this compilation unit. + pub fn version(&self) -> u16 { + self.encoding.version + } + + /// Get the UnitType of this unit. + pub fn type_(&self) -> UnitType { + self.unit_type + } + + /// The offset into the `.debug_abbrev` section for this compilation unit's + /// debugging information entries' abbreviations. + pub fn debug_abbrev_offset(&self) -> DebugAbbrevOffset { + self.debug_abbrev_offset + } + + /// The size of addresses (in bytes) in this compilation unit. + pub fn address_size(&self) -> u8 { + self.encoding.address_size + } + + /// Whether this compilation unit is encoded in 64- or 32-bit DWARF. + pub fn format(&self) -> Format { + self.encoding.format + } + + /// The serialized size of the header for this compilation unit. + pub fn header_size(&self) -> Offset { + self.length_including_self() - self.entries_buf.len() + } + + pub(crate) fn is_valid_offset(&self, offset: UnitOffset) -> bool { + let size_of_header = self.header_size(); + if offset.0 < size_of_header { + return false; + } + + let relative_to_entries_buf = offset.0 - size_of_header; + relative_to_entries_buf < self.entries_buf.len() + } + + /// Get the underlying bytes for the supplied range. + pub fn range(&self, idx: Range>) -> Result { + if !self.is_valid_offset(idx.start) { + return Err(Error::OffsetOutOfBounds); + } + if !self.is_valid_offset(idx.end) { + return Err(Error::OffsetOutOfBounds); + } + assert!(idx.start <= idx.end); + let size_of_header = self.header_size(); + let start = idx.start.0 - size_of_header; + let end = idx.end.0 - size_of_header; + let mut input = self.entries_buf.clone(); + input.skip(start)?; + input.truncate(end - start)?; + Ok(input) + } + + /// Get the underlying bytes for the supplied range. + pub fn range_from(&self, idx: RangeFrom>) -> Result { + if !self.is_valid_offset(idx.start) { + return Err(Error::OffsetOutOfBounds); + } + let start = idx.start.0 - self.header_size(); + let mut input = self.entries_buf.clone(); + input.skip(start)?; + Ok(input) + } + + /// Get the underlying bytes for the supplied range. + pub fn range_to(&self, idx: RangeTo>) -> Result { + if !self.is_valid_offset(idx.end) { + return Err(Error::OffsetOutOfBounds); + } + let end = idx.end.0 - self.header_size(); + let mut input = self.entries_buf.clone(); + input.truncate(end)?; + Ok(input) + } + + /// Read the `DebuggingInformationEntry` at the given offset. + pub fn entry<'me, 'abbrev>( + &'me self, + abbreviations: &'abbrev Abbreviations, + offset: UnitOffset, + ) -> Result> { + let mut input = self.range_from(offset..)?; + let entry = DebuggingInformationEntry::parse(&mut input, self, abbreviations)?; + entry.ok_or(Error::NoEntryAtGivenOffset) + } + + /// Navigate this unit's `DebuggingInformationEntry`s. + pub fn entries<'me, 'abbrev>( + &'me self, + abbreviations: &'abbrev Abbreviations, + ) -> EntriesCursor<'abbrev, 'me, R> { + EntriesCursor { + unit: self, + input: self.entries_buf.clone(), + abbreviations, + cached_current: None, + delta_depth: 0, + } + } + + /// Navigate this compilation unit's `DebuggingInformationEntry`s + /// starting at the given offset. + pub fn entries_at_offset<'me, 'abbrev>( + &'me self, + abbreviations: &'abbrev Abbreviations, + offset: UnitOffset, + ) -> Result> { + let input = self.range_from(offset..)?; + Ok(EntriesCursor { + unit: self, + input, + abbreviations, + cached_current: None, + delta_depth: 0, + }) + } + + /// Navigate this unit's `DebuggingInformationEntry`s as a tree + /// starting at the given offset. + pub fn entries_tree<'me, 'abbrev>( + &'me self, + abbreviations: &'abbrev Abbreviations, + offset: Option>, + ) -> Result> { + let input = match offset { + Some(offset) => self.range_from(offset..)?, + None => self.entries_buf.clone(), + }; + Ok(EntriesTree::new(input, self, abbreviations)) + } + + /// Read the raw data that defines the Debugging Information Entries. + pub fn entries_raw<'me, 'abbrev>( + &'me self, + abbreviations: &'abbrev Abbreviations, + offset: Option>, + ) -> Result> { + let input = match offset { + Some(offset) => self.range_from(offset..)?, + None => self.entries_buf.clone(), + }; + Ok(EntriesRaw { + input, + unit: self, + abbreviations, + depth: 0, + }) + } + + /// Parse this unit's abbreviations. + pub fn abbreviations(&self, debug_abbrev: &DebugAbbrev) -> Result { + debug_abbrev.abbreviations(self.debug_abbrev_offset()) + } +} + +/// Parse a unit header. +fn parse_unit_header( + input: &mut R, + unit_offset: UnitSectionOffset, +) -> Result> +where + R: Reader, + Offset: ReaderOffset, +{ + let (unit_length, format) = input.read_initial_length()?; + let mut rest = input.split(unit_length)?; + + let version = rest.read_u16()?; + let abbrev_offset; + let address_size; + let unit_type; + // DWARF 1 was very different, and is obsolete, so isn't supported by this + // reader. + if 2 <= version && version <= 4 { + abbrev_offset = parse_debug_abbrev_offset(&mut rest, format)?; + address_size = rest.read_u8()?; + // Before DWARF5, all units in the .debug_info section are compilation + // units, and all units in the .debug_types section are type units. + unit_type = match unit_offset { + UnitSectionOffset::DebugInfoOffset(_) => constants::DW_UT_compile, + UnitSectionOffset::DebugTypesOffset(_) => constants::DW_UT_type, + }; + } else if version == 5 { + unit_type = parse_unit_type(&mut rest)?; + address_size = rest.read_u8()?; + abbrev_offset = parse_debug_abbrev_offset(&mut rest, format)?; + } else { + return Err(Error::UnknownVersion(u64::from(version))); + } + let encoding = Encoding { + format, + version, + address_size, + }; + + // Parse any data specific to this type of unit. + let unit_type = match unit_type { + constants::DW_UT_compile => UnitType::Compilation, + constants::DW_UT_type => { + let type_signature = parse_type_signature(&mut rest)?; + let type_offset = parse_type_offset(&mut rest, format)?; + UnitType::Type { + type_signature, + type_offset, + } + } + constants::DW_UT_partial => UnitType::Partial, + constants::DW_UT_skeleton => { + let dwo_id = parse_dwo_id(&mut rest)?; + UnitType::Skeleton(dwo_id) + } + constants::DW_UT_split_compile => { + let dwo_id = parse_dwo_id(&mut rest)?; + UnitType::SplitCompilation(dwo_id) + } + constants::DW_UT_split_type => { + let type_signature = parse_type_signature(&mut rest)?; + let type_offset = parse_type_offset(&mut rest, format)?; + UnitType::SplitType { + type_signature, + type_offset, + } + } + _ => return Err(Error::UnsupportedUnitType), + }; + + Ok(UnitHeader::new( + encoding, + unit_length, + unit_type, + abbrev_offset, + unit_offset, + rest, + )) +} + +/// Parse a dwo_id from a header +fn parse_dwo_id(input: &mut R) -> Result { + Ok(DwoId(input.read_u64()?)) +} + +/// A Debugging Information Entry (DIE). +/// +/// DIEs have a set of attributes and optionally have children DIEs as well. +#[derive(Clone, Debug)] +pub struct DebuggingInformationEntry<'abbrev, 'unit, R, Offset = ::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + offset: UnitOffset, + attrs_slice: R, + attrs_len: Cell>, + abbrev: &'abbrev Abbreviation, + unit: &'unit UnitHeader, +} + +impl<'abbrev, 'unit, R, Offset> DebuggingInformationEntry<'abbrev, 'unit, R, Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + /// Construct a new `DebuggingInformationEntry`. + pub fn new( + offset: UnitOffset, + attrs_slice: R, + abbrev: &'abbrev Abbreviation, + unit: &'unit UnitHeader, + ) -> Self { + DebuggingInformationEntry { + offset, + attrs_slice, + attrs_len: Cell::new(None), + abbrev, + unit, + } + } + + /// Get this entry's code. + pub fn code(&self) -> u64 { + self.abbrev.code() + } + + /// Get this entry's offset. + pub fn offset(&self) -> UnitOffset { + self.offset + } + + /// Get this entry's `DW_TAG_whatever` tag. + /// + /// ``` + /// # use gimli::{DebugAbbrev, DebugInfo, LittleEndian}; + /// # let info_buf = [ + /// # // Comilation unit header + /// # + /// # // 32-bit unit length = 12 + /// # 0x0c, 0x00, 0x00, 0x00, + /// # // Version 4 + /// # 0x04, 0x00, + /// # // debug_abbrev_offset + /// # 0x00, 0x00, 0x00, 0x00, + /// # // Address size + /// # 0x04, + /// # + /// # // DIEs + /// # + /// # // Abbreviation code + /// # 0x01, + /// # // Attribute of form DW_FORM_string = "foo\0" + /// # 0x66, 0x6f, 0x6f, 0x00, + /// # ]; + /// # let debug_info = DebugInfo::new(&info_buf, LittleEndian); + /// # let abbrev_buf = [ + /// # // Code + /// # 0x01, + /// # // DW_TAG_subprogram + /// # 0x2e, + /// # // DW_CHILDREN_no + /// # 0x00, + /// # // Begin attributes + /// # // Attribute name = DW_AT_name + /// # 0x03, + /// # // Attribute form = DW_FORM_string + /// # 0x08, + /// # // End attributes + /// # 0x00, + /// # 0x00, + /// # // Null terminator + /// # 0x00 + /// # ]; + /// # let debug_abbrev = DebugAbbrev::new(&abbrev_buf, LittleEndian); + /// # let unit = debug_info.units().next().unwrap().unwrap(); + /// # let abbrevs = unit.abbreviations(&debug_abbrev).unwrap(); + /// # let mut cursor = unit.entries(&abbrevs); + /// # let (_, entry) = cursor.next_dfs().unwrap().unwrap(); + /// # let mut get_some_entry = || entry; + /// let entry = get_some_entry(); + /// + /// match entry.tag() { + /// gimli::DW_TAG_subprogram => + /// println!("this entry contains debug info about a function"), + /// gimli::DW_TAG_inlined_subroutine => + /// println!("this entry contains debug info about a particular instance of inlining"), + /// gimli::DW_TAG_variable => + /// println!("this entry contains debug info about a local variable"), + /// gimli::DW_TAG_formal_parameter => + /// println!("this entry contains debug info about a function parameter"), + /// otherwise => + /// println!("this entry is some other kind of data: {:?}", otherwise), + /// }; + /// ``` + pub fn tag(&self) -> constants::DwTag { + self.abbrev.tag() + } + + /// Return true if this entry's type can have children, false otherwise. + pub fn has_children(&self) -> bool { + self.abbrev.has_children() + } + + /// Iterate over this entry's set of attributes. + /// + /// ``` + /// use gimli::{DebugAbbrev, DebugInfo, LittleEndian}; + /// + /// // Read the `.debug_info` section. + /// + /// # let info_buf = [ + /// # // Comilation unit header + /// # + /// # // 32-bit unit length = 12 + /// # 0x0c, 0x00, 0x00, 0x00, + /// # // Version 4 + /// # 0x04, 0x00, + /// # // debug_abbrev_offset + /// # 0x00, 0x00, 0x00, 0x00, + /// # // Address size + /// # 0x04, + /// # + /// # // DIEs + /// # + /// # // Abbreviation code + /// # 0x01, + /// # // Attribute of form DW_FORM_string = "foo\0" + /// # 0x66, 0x6f, 0x6f, 0x00, + /// # ]; + /// # let read_debug_info_section_somehow = || &info_buf; + /// let debug_info = DebugInfo::new(read_debug_info_section_somehow(), LittleEndian); + /// + /// // Get the data about the first compilation unit out of the `.debug_info`. + /// + /// let unit = debug_info.units().next() + /// .expect("Should have at least one compilation unit") + /// .expect("and it should parse ok"); + /// + /// // Read the `.debug_abbrev` section and parse the + /// // abbreviations for our compilation unit. + /// + /// # let abbrev_buf = [ + /// # // Code + /// # 0x01, + /// # // DW_TAG_subprogram + /// # 0x2e, + /// # // DW_CHILDREN_no + /// # 0x00, + /// # // Begin attributes + /// # // Attribute name = DW_AT_name + /// # 0x03, + /// # // Attribute form = DW_FORM_string + /// # 0x08, + /// # // End attributes + /// # 0x00, + /// # 0x00, + /// # // Null terminator + /// # 0x00 + /// # ]; + /// # let read_debug_abbrev_section_somehow = || &abbrev_buf; + /// let debug_abbrev = DebugAbbrev::new(read_debug_abbrev_section_somehow(), LittleEndian); + /// let abbrevs = unit.abbreviations(&debug_abbrev).unwrap(); + /// + /// // Get the first entry from that compilation unit. + /// + /// let mut cursor = unit.entries(&abbrevs); + /// let (_, entry) = cursor.next_dfs() + /// .expect("Should parse next entry") + /// .expect("Should have at least one entry"); + /// + /// // Finally, print the first entry's attributes. + /// + /// let mut attrs = entry.attrs(); + /// while let Some(attr) = attrs.next().unwrap() { + /// println!("Attribute name = {:?}", attr.name()); + /// println!("Attribute value = {:?}", attr.value()); + /// } + /// ``` + /// + /// Can be [used with + /// `FallibleIterator`](./index.html#using-with-fallibleiterator). + pub fn attrs<'me>(&'me self) -> AttrsIter<'abbrev, 'me, 'unit, R> { + AttrsIter { + input: self.attrs_slice.clone(), + attributes: self.abbrev.attributes(), + entry: self, + } + } + + /// Find the first attribute in this entry which has the given name, + /// and return it. Returns `Ok(None)` if no attribute is found. + pub fn attr(&self, name: constants::DwAt) -> Result>> { + let mut attrs = self.attrs(); + while let Some(attr) = attrs.next()? { + if attr.name() == name { + return Ok(Some(attr)); + } + } + Ok(None) + } + + /// Find the first attribute in this entry which has the given name, + /// and return its raw value. Returns `Ok(None)` if no attribute is found. + pub fn attr_value_raw(&self, name: constants::DwAt) -> Result>> { + self.attr(name) + .map(|attr| attr.map(|attr| attr.raw_value())) + } + + /// Find the first attribute in this entry which has the given name, + /// and return its normalized value. Returns `Ok(None)` if no + /// attribute is found. + pub fn attr_value(&self, name: constants::DwAt) -> Result>> { + self.attr(name).map(|attr| attr.map(|attr| attr.value())) + } + + /// Return the input buffer after the last attribute. + #[inline(always)] + fn after_attrs(&self) -> Result { + if let Some(attrs_len) = self.attrs_len.get() { + let mut input = self.attrs_slice.clone(); + input.skip(attrs_len)?; + Ok(input) + } else { + let mut attrs = self.attrs(); + while attrs.next()?.is_some() {} + Ok(attrs.input) + } + } + + /// Use the `DW_AT_sibling` attribute to find the input buffer for the + /// next sibling. Returns `None` if the attribute is missing or invalid. + fn sibling(&self) -> Option { + let attr = self.attr_value(constants::DW_AT_sibling); + if let Ok(Some(AttributeValue::UnitRef(offset))) = attr { + if offset.0 > self.offset.0 { + if let Ok(input) = self.unit.range_from(offset..) { + return Some(input); + } + } + } + None + } + + /// Parse an entry. Returns `Ok(None)` for null entries. + #[inline(always)] + fn parse( + input: &mut R, + unit: &'unit UnitHeader, + abbreviations: &'abbrev Abbreviations, + ) -> Result> { + let offset = unit.header_size() + input.offset_from(&unit.entries_buf); + let code = input.read_uleb128()?; + if code == 0 { + return Ok(None); + }; + let abbrev = abbreviations.get(code).ok_or(Error::UnknownAbbreviation)?; + Ok(Some(DebuggingInformationEntry { + offset: UnitOffset(offset), + attrs_slice: input.clone(), + attrs_len: Cell::new(None), + abbrev, + unit, + })) + } +} + +/// The value of an attribute in a `DebuggingInformationEntry`. +// +// Set the discriminant size so that all variants use the same alignment +// for their data. This gives better code generation in `parse_attribute`. +#[repr(u64)] +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub enum AttributeValue::Offset> +where + R: Reader, + Offset: ReaderOffset, +{ + /// "Refers to some location in the address space of the described program." + Addr(u64), + + /// A slice of an arbitrary number of bytes. + Block(R), + + /// A one byte constant data value. How to interpret the byte depends on context. + /// + /// From section 7 of the standard: "Depending on context, it may be a + /// signed integer, an unsigned integer, a floating-point constant, or + /// anything else." + Data1(u8), + + /// A two byte constant data value. How to interpret the bytes depends on context. + /// + /// These bytes have been converted from `R::Endian`. This may need to be reversed + /// if this was not required. + /// + /// From section 7 of the standard: "Depending on context, it may be a + /// signed integer, an unsigned integer, a floating-point constant, or + /// anything else." + Data2(u16), + + /// A four byte constant data value. How to interpret the bytes depends on context. + /// + /// These bytes have been converted from `R::Endian`. This may need to be reversed + /// if this was not required. + /// + /// From section 7 of the standard: "Depending on context, it may be a + /// signed integer, an unsigned integer, a floating-point constant, or + /// anything else." + Data4(u32), + + /// An eight byte constant data value. How to interpret the bytes depends on context. + /// + /// These bytes have been converted from `R::Endian`. This may need to be reversed + /// if this was not required. + /// + /// From section 7 of the standard: "Depending on context, it may be a + /// signed integer, an unsigned integer, a floating-point constant, or + /// anything else." + Data8(u64), + + /// A signed integer constant. + Sdata(i64), + + /// An unsigned integer constant. + Udata(u64), + + /// "The information bytes contain a DWARF expression (see Section 2.5) or + /// location description (see Section 2.6)." + Exprloc(Expression), + + /// A boolean that indicates presence or absence of the attribute. + Flag(bool), + + /// An offset into another section. Which section this is an offset into + /// depends on context. + SecOffset(Offset), + + /// An offset to a set of addresses in the `.debug_addr` section. + DebugAddrBase(DebugAddrBase), + + /// An index into a set of addresses in the `.debug_addr` section. + DebugAddrIndex(DebugAddrIndex), + + /// An offset into the current compilation unit. + UnitRef(UnitOffset), + + /// An offset into the current `.debug_info` section, but possibly a + /// different compilation unit from the current one. + DebugInfoRef(DebugInfoOffset), + + /// An offset into the `.debug_info` section of the supplementary object file. + DebugInfoRefSup(DebugInfoOffset), + + /// An offset into the `.debug_line` section. + DebugLineRef(DebugLineOffset), + + /// An offset into either the `.debug_loc` section or the `.debug_loclists` section. + LocationListsRef(LocationListsOffset), + + /// An offset to a set of offsets in the `.debug_loclists` section. + DebugLocListsBase(DebugLocListsBase), + + /// An index into a set of offsets in the `.debug_loclists` section. + DebugLocListsIndex(DebugLocListsIndex), + + /// An offset into the `.debug_macinfo` section. + DebugMacinfoRef(DebugMacinfoOffset), + + /// An offset into the `.debug_macro` section. + DebugMacroRef(DebugMacroOffset), + + /// An offset into the `.debug_ranges` section. + RangeListsRef(RawRangeListsOffset), + + /// An offset to a set of offsets in the `.debug_rnglists` section. + DebugRngListsBase(DebugRngListsBase), + + /// An index into a set of offsets in the `.debug_rnglists` section. + DebugRngListsIndex(DebugRngListsIndex), + + /// A type signature. + DebugTypesRef(DebugTypeSignature), + + /// An offset into the `.debug_str` section. + DebugStrRef(DebugStrOffset), + + /// An offset into the `.debug_str` section of the supplementary object file. + DebugStrRefSup(DebugStrOffset), + + /// An offset to a set of entries in the `.debug_str_offsets` section. + DebugStrOffsetsBase(DebugStrOffsetsBase), + + /// An index into a set of entries in the `.debug_str_offsets` section. + DebugStrOffsetsIndex(DebugStrOffsetsIndex), + + /// An offset into the `.debug_line_str` section. + DebugLineStrRef(DebugLineStrOffset), + + /// A slice of bytes representing a string. Does not include a final null byte. + /// Not guaranteed to be UTF-8 or anything like that. + String(R), + + /// The value of a `DW_AT_encoding` attribute. + Encoding(constants::DwAte), + + /// The value of a `DW_AT_decimal_sign` attribute. + DecimalSign(constants::DwDs), + + /// The value of a `DW_AT_endianity` attribute. + Endianity(constants::DwEnd), + + /// The value of a `DW_AT_accessibility` attribute. + Accessibility(constants::DwAccess), + + /// The value of a `DW_AT_visibility` attribute. + Visibility(constants::DwVis), + + /// The value of a `DW_AT_virtuality` attribute. + Virtuality(constants::DwVirtuality), + + /// The value of a `DW_AT_language` attribute. + Language(constants::DwLang), + + /// The value of a `DW_AT_address_class` attribute. + AddressClass(constants::DwAddr), + + /// The value of a `DW_AT_identifier_case` attribute. + IdentifierCase(constants::DwId), + + /// The value of a `DW_AT_calling_convention` attribute. + CallingConvention(constants::DwCc), + + /// The value of a `DW_AT_inline` attribute. + Inline(constants::DwInl), + + /// The value of a `DW_AT_ordering` attribute. + Ordering(constants::DwOrd), + + /// An index into the filename entries from the line number information + /// table for the compilation unit containing this value. + FileIndex(u64), + + /// An implementation-defined identifier uniquely identifying a compilation + /// unit. + DwoId(DwoId), +} + +/// An attribute in a `DebuggingInformationEntry`, consisting of a name and +/// associated value. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +pub struct Attribute { + name: constants::DwAt, + value: AttributeValue, +} + +impl Attribute { + /// Get this attribute's name. + pub fn name(&self) -> constants::DwAt { + self.name + } + + /// Get this attribute's raw value. + pub fn raw_value(&self) -> AttributeValue { + self.value.clone() + } + + /// Get this attribute's normalized value. + /// + /// Attribute values can potentially be encoded in multiple equivalent forms, + /// and may have special meaning depending on the attribute name. This method + /// converts the attribute value to a normalized form based on the attribute + /// name. + /// + /// See "Table 7.5: Attribute encodings" and "Table 7.6: Attribute form encodings". + pub fn value(&self) -> AttributeValue { + // Table 7.5 shows the possible attribute classes for each name. + // Table 7.6 shows the possible attribute classes for each form. + // For each attribute name, we need to match on the form, and + // convert it to one of the classes that is allowed for both + // the name and the form. + // + // The individual class conversions rarely vary for each name, + // so for each class conversion we define a macro that matches + // on the allowed forms for that class. + // + // For some classes, we don't need to do any conversion, so their + // macro is empty. In the future we may want to fill them in to + // provide strict checking of the forms for each class. For now, + // they simply provide a way to document the allowed classes for + // each name. + + // DW_FORM_addr + // DW_FORM_addrx + // DW_FORM_addrx1 + // DW_FORM_addrx2 + // DW_FORM_addrx3 + // DW_FORM_addrx4 + macro_rules! address { + () => {}; + } + // DW_FORM_sec_offset + macro_rules! addrptr { + () => { + if let Some(offset) = self.offset_value() { + return AttributeValue::DebugAddrBase(DebugAddrBase(offset)); + } + }; + } + // DW_FORM_block + // DW_FORM_block1 + // DW_FORM_block2 + // DW_FORM_block4 + macro_rules! block { + () => {}; + } + // DW_FORM_sdata + // DW_FORM_udata + // DW_FORM_data1 + // DW_FORM_data2 + // DW_FORM_data4 + // DW_FORM_data8 + // DW_FORM_data16 + // DW_FORM_implicit_const + macro_rules! constant { + ($value:ident, $variant:ident) => { + if let Some(value) = self.$value() { + return AttributeValue::$variant(value); + } + }; + ($value:ident, $variant:ident, $constant:ident) => { + if let Some(value) = self.$value() { + return AttributeValue::$variant(constants::$constant(value)); + } + }; + } + // DW_FORM_exprloc + macro_rules! exprloc { + () => { + if let Some(value) = self.exprloc_value() { + return AttributeValue::Exprloc(value); + } + }; + } + // DW_FORM_flag + // DW_FORM_flag_present + macro_rules! flag { + () => {}; + } + // DW_FORM_sec_offset + macro_rules! lineptr { + () => { + if let Some(offset) = self.offset_value() { + return AttributeValue::DebugLineRef(DebugLineOffset(offset)); + } + }; + } + // This also covers `loclist` in DWARF version 5. + // DW_FORM_sec_offset + // DW_FORM_loclistx + macro_rules! loclistptr { + () => { + // DebugLocListsIndex is also an allowed form in DWARF version 5. + if let Some(offset) = self.offset_value() { + return AttributeValue::LocationListsRef(LocationListsOffset(offset)); + } + }; + } + // DW_FORM_sec_offset + macro_rules! loclistsptr { + () => { + if let Some(offset) = self.offset_value() { + return AttributeValue::DebugLocListsBase(DebugLocListsBase(offset)); + } + }; + } + // DWARF version <= 4. + // DW_FORM_sec_offset + macro_rules! macinfoptr { + () => { + if let Some(offset) = self.offset_value() { + return AttributeValue::DebugMacinfoRef(DebugMacinfoOffset(offset)); + } + }; + } + // DWARF version >= 5. + // DW_FORM_sec_offset + macro_rules! macroptr { + () => { + if let Some(offset) = self.offset_value() { + return AttributeValue::DebugMacroRef(DebugMacroOffset(offset)); + } + }; + } + // DW_FORM_ref_addr + // DW_FORM_ref1 + // DW_FORM_ref2 + // DW_FORM_ref4 + // DW_FORM_ref8 + // DW_FORM_ref_udata + // DW_FORM_ref_sig8 + // DW_FORM_ref_sup4 + // DW_FORM_ref_sup8 + macro_rules! reference { + () => {}; + } + // This also covers `rnglist` in DWARF version 5. + // DW_FORM_sec_offset + // DW_FORM_rnglistx + macro_rules! rangelistptr { + () => { + // DebugRngListsIndex is also an allowed form in DWARF version 5. + if let Some(offset) = self.offset_value() { + return AttributeValue::RangeListsRef(RawRangeListsOffset(offset)); + } + }; + } + // DW_FORM_sec_offset + macro_rules! rnglistsptr { + () => { + if let Some(offset) = self.offset_value() { + return AttributeValue::DebugRngListsBase(DebugRngListsBase(offset)); + } + }; + } + // DW_FORM_string + // DW_FORM_strp + // DW_FORM_strx + // DW_FORM_strx1 + // DW_FORM_strx2 + // DW_FORM_strx3 + // DW_FORM_strx4 + // DW_FORM_strp_sup + // DW_FORM_line_strp + macro_rules! string { + () => {}; + } + // DW_FORM_sec_offset + macro_rules! stroffsetsptr { + () => { + if let Some(offset) = self.offset_value() { + return AttributeValue::DebugStrOffsetsBase(DebugStrOffsetsBase(offset)); + } + }; + } + // This isn't a separate form but it's useful to distinguish it from a generic udata. + macro_rules! dwoid { + () => { + if let Some(value) = self.udata_value() { + return AttributeValue::DwoId(DwoId(value)); + } + }; + } + + // Perform the allowed class conversions for each attribute name. + match self.name { + constants::DW_AT_sibling => { + reference!(); + } + constants::DW_AT_location => { + exprloc!(); + loclistptr!(); + } + constants::DW_AT_name => { + string!(); + } + constants::DW_AT_ordering => { + constant!(u8_value, Ordering, DwOrd); + } + constants::DW_AT_byte_size + | constants::DW_AT_bit_offset + | constants::DW_AT_bit_size => { + constant!(udata_value, Udata); + exprloc!(); + reference!(); + } + constants::DW_AT_stmt_list => { + lineptr!(); + } + constants::DW_AT_low_pc => { + address!(); + } + constants::DW_AT_high_pc => { + address!(); + constant!(udata_value, Udata); + } + constants::DW_AT_language => { + constant!(u16_value, Language, DwLang); + } + constants::DW_AT_discr => { + reference!(); + } + constants::DW_AT_discr_value => { + // constant: depends on type of DW_TAG_variant_part, + // so caller must normalize. + } + constants::DW_AT_visibility => { + constant!(u8_value, Visibility, DwVis); + } + constants::DW_AT_import => { + reference!(); + } + constants::DW_AT_string_length => { + exprloc!(); + loclistptr!(); + reference!(); + } + constants::DW_AT_common_reference => { + reference!(); + } + constants::DW_AT_comp_dir => { + string!(); + } + constants::DW_AT_const_value => { + // TODO: constant: sign depends on DW_AT_type. + block!(); + string!(); + } + constants::DW_AT_containing_type => { + reference!(); + } + constants::DW_AT_default_value => { + // TODO: constant: sign depends on DW_AT_type. + reference!(); + flag!(); + } + constants::DW_AT_inline => { + constant!(u8_value, Inline, DwInl); + } + constants::DW_AT_is_optional => { + flag!(); + } + constants::DW_AT_lower_bound => { + // TODO: constant: sign depends on DW_AT_type. + exprloc!(); + reference!(); + } + constants::DW_AT_producer => { + string!(); + } + constants::DW_AT_prototyped => { + flag!(); + } + constants::DW_AT_return_addr => { + exprloc!(); + loclistptr!(); + } + constants::DW_AT_start_scope => { + // TODO: constant + rangelistptr!(); + } + constants::DW_AT_bit_stride => { + constant!(udata_value, Udata); + exprloc!(); + reference!(); + } + constants::DW_AT_upper_bound => { + // TODO: constant: sign depends on DW_AT_type. + exprloc!(); + reference!(); + } + constants::DW_AT_abstract_origin => { + reference!(); + } + constants::DW_AT_accessibility => { + constant!(u8_value, Accessibility, DwAccess); + } + constants::DW_AT_address_class => { + constant!(udata_value, AddressClass, DwAddr); + } + constants::DW_AT_artificial => { + flag!(); + } + constants::DW_AT_base_types => { + reference!(); + } + constants::DW_AT_calling_convention => { + constant!(u8_value, CallingConvention, DwCc); + } + constants::DW_AT_count => { + // TODO: constant + exprloc!(); + reference!(); + } + constants::DW_AT_data_member_location => { + // Constants must be handled before loclistptr so that DW_FORM_data4/8 + // are correctly interpreted for DWARF version 4+. + constant!(udata_value, Udata); + exprloc!(); + loclistptr!(); + } + constants::DW_AT_decl_column => { + constant!(udata_value, Udata); + } + constants::DW_AT_decl_file => { + constant!(udata_value, FileIndex); + } + constants::DW_AT_decl_line => { + constant!(udata_value, Udata); + } + constants::DW_AT_declaration => { + flag!(); + } + constants::DW_AT_discr_list => { + block!(); + } + constants::DW_AT_encoding => { + constant!(u8_value, Encoding, DwAte); + } + constants::DW_AT_external => { + flag!(); + } + constants::DW_AT_frame_base => { + exprloc!(); + loclistptr!(); + } + constants::DW_AT_friend => { + reference!(); + } + constants::DW_AT_identifier_case => { + constant!(u8_value, IdentifierCase, DwId); + } + constants::DW_AT_macro_info => { + macinfoptr!(); + } + constants::DW_AT_namelist_item => { + reference!(); + } + constants::DW_AT_priority => { + reference!(); + } + constants::DW_AT_segment => { + exprloc!(); + loclistptr!(); + } + constants::DW_AT_specification => { + reference!(); + } + constants::DW_AT_static_link => { + exprloc!(); + loclistptr!(); + } + constants::DW_AT_type => { + reference!(); + } + constants::DW_AT_use_location => { + exprloc!(); + loclistptr!(); + } + constants::DW_AT_variable_parameter => { + flag!(); + } + constants::DW_AT_virtuality => { + constant!(u8_value, Virtuality, DwVirtuality); + } + constants::DW_AT_vtable_elem_location => { + exprloc!(); + loclistptr!(); + } + constants::DW_AT_allocated => { + // TODO: constant + exprloc!(); + reference!(); + } + constants::DW_AT_associated => { + // TODO: constant + exprloc!(); + reference!(); + } + constants::DW_AT_data_location => { + exprloc!(); + } + constants::DW_AT_byte_stride => { + constant!(udata_value, Udata); + exprloc!(); + reference!(); + } + constants::DW_AT_entry_pc => { + // TODO: constant + address!(); + } + constants::DW_AT_use_UTF8 => { + flag!(); + } + constants::DW_AT_extension => { + reference!(); + } + constants::DW_AT_ranges => { + rangelistptr!(); + } + constants::DW_AT_trampoline => { + address!(); + flag!(); + reference!(); + string!(); + } + constants::DW_AT_call_column => { + constant!(udata_value, Udata); + } + constants::DW_AT_call_file => { + constant!(udata_value, FileIndex); + } + constants::DW_AT_call_line => { + constant!(udata_value, Udata); + } + constants::DW_AT_description => { + string!(); + } + constants::DW_AT_binary_scale => { + // TODO: constant + } + constants::DW_AT_decimal_scale => { + // TODO: constant + } + constants::DW_AT_small => { + reference!(); + } + constants::DW_AT_decimal_sign => { + constant!(u8_value, DecimalSign, DwDs); + } + constants::DW_AT_digit_count => { + // TODO: constant + } + constants::DW_AT_picture_string => { + string!(); + } + constants::DW_AT_mutable => { + flag!(); + } + constants::DW_AT_threads_scaled => { + flag!(); + } + constants::DW_AT_explicit => { + flag!(); + } + constants::DW_AT_object_pointer => { + reference!(); + } + constants::DW_AT_endianity => { + constant!(u8_value, Endianity, DwEnd); + } + constants::DW_AT_elemental => { + flag!(); + } + constants::DW_AT_pure => { + flag!(); + } + constants::DW_AT_recursive => { + flag!(); + } + constants::DW_AT_signature => { + reference!(); + } + constants::DW_AT_main_subprogram => { + flag!(); + } + constants::DW_AT_data_bit_offset => { + // TODO: constant + } + constants::DW_AT_const_expr => { + flag!(); + } + constants::DW_AT_enum_class => { + flag!(); + } + constants::DW_AT_linkage_name => { + string!(); + } + constants::DW_AT_string_length_bit_size => { + // TODO: constant + } + constants::DW_AT_string_length_byte_size => { + // TODO: constant + } + constants::DW_AT_rank => { + // TODO: constant + exprloc!(); + } + constants::DW_AT_str_offsets_base => { + stroffsetsptr!(); + } + constants::DW_AT_addr_base | constants::DW_AT_GNU_addr_base => { + addrptr!(); + } + constants::DW_AT_rnglists_base | constants::DW_AT_GNU_ranges_base => { + rnglistsptr!(); + } + constants::DW_AT_dwo_name => { + string!(); + } + constants::DW_AT_reference => { + flag!(); + } + constants::DW_AT_rvalue_reference => { + flag!(); + } + constants::DW_AT_macros => { + macroptr!(); + } + constants::DW_AT_call_all_calls => { + flag!(); + } + constants::DW_AT_call_all_source_calls => { + flag!(); + } + constants::DW_AT_call_all_tail_calls => { + flag!(); + } + constants::DW_AT_call_return_pc => { + address!(); + } + constants::DW_AT_call_value => { + exprloc!(); + } + constants::DW_AT_call_origin => { + exprloc!(); + } + constants::DW_AT_call_parameter => { + reference!(); + } + constants::DW_AT_call_pc => { + address!(); + } + constants::DW_AT_call_tail_call => { + flag!(); + } + constants::DW_AT_call_target => { + exprloc!(); + } + constants::DW_AT_call_target_clobbered => { + exprloc!(); + } + constants::DW_AT_call_data_location => { + exprloc!(); + } + constants::DW_AT_call_data_value => { + exprloc!(); + } + constants::DW_AT_noreturn => { + flag!(); + } + constants::DW_AT_alignment => { + // TODO: constant + } + constants::DW_AT_export_symbols => { + flag!(); + } + constants::DW_AT_deleted => { + flag!(); + } + constants::DW_AT_defaulted => { + // TODO: constant + } + constants::DW_AT_loclists_base => { + loclistsptr!(); + } + constants::DW_AT_GNU_dwo_id => { + dwoid!(); + } + _ => {} + } + self.value.clone() + } + + /// Try to convert this attribute's value to a u8. + #[inline] + pub fn u8_value(&self) -> Option { + self.value.u8_value() + } + + /// Try to convert this attribute's value to a u16. + #[inline] + pub fn u16_value(&self) -> Option { + self.value.u16_value() + } + + /// Try to convert this attribute's value to an unsigned integer. + #[inline] + pub fn udata_value(&self) -> Option { + self.value.udata_value() + } + + /// Try to convert this attribute's value to a signed integer. + #[inline] + pub fn sdata_value(&self) -> Option { + self.value.sdata_value() + } + + /// Try to convert this attribute's value to an offset. + #[inline] + pub fn offset_value(&self) -> Option { + self.value.offset_value() + } + + /// Try to convert this attribute's value to an expression or location buffer. + /// + /// Expressions and locations may be `DW_FORM_block*` or `DW_FORM_exprloc`. + /// The standard doesn't mention `DW_FORM_block*` as a possible form, but + /// it is encountered in practice. + #[inline] + pub fn exprloc_value(&self) -> Option> { + self.value.exprloc_value() + } + + /// Try to return this attribute's value as a string slice. + /// + /// If this attribute's value is either an inline `DW_FORM_string` string, + /// or a `DW_FORM_strp` reference to an offset into the `.debug_str` + /// section, return the attribute's string value as `Some`. Other attribute + /// value forms are returned as `None`. + /// + /// Warning: this function does not handle all possible string forms. + /// Use `Dwarf::attr_string` instead. + #[inline] + pub fn string_value(&self, debug_str: &DebugStr) -> Option { + self.value.string_value(debug_str) + } + + /// Try to return this attribute's value as a string slice. + /// + /// If this attribute's value is either an inline `DW_FORM_string` string, + /// or a `DW_FORM_strp` reference to an offset into the `.debug_str` + /// section, or a `DW_FORM_strp_sup` reference to an offset into a supplementary + /// object file, return the attribute's string value as `Some`. Other attribute + /// value forms are returned as `None`. + /// + /// Warning: this function does not handle all possible string forms. + /// Use `Dwarf::attr_string` instead. + #[inline] + pub fn string_value_sup( + &self, + debug_str: &DebugStr, + debug_str_sup: Option<&DebugStr>, + ) -> Option { + self.value.string_value_sup(debug_str, debug_str_sup) + } +} + +impl AttributeValue +where + R: Reader, + Offset: ReaderOffset, +{ + /// Try to convert this attribute's value to a u8. + pub fn u8_value(&self) -> Option { + if let Some(value) = self.udata_value() { + if value <= u64::from(u8::MAX) { + return Some(value as u8); + } + } + None + } + + /// Try to convert this attribute's value to a u16. + pub fn u16_value(&self) -> Option { + if let Some(value) = self.udata_value() { + if value <= u64::from(u16::MAX) { + return Some(value as u16); + } + } + None + } + + /// Try to convert this attribute's value to an unsigned integer. + pub fn udata_value(&self) -> Option { + Some(match *self { + AttributeValue::Data1(data) => u64::from(data), + AttributeValue::Data2(data) => u64::from(data), + AttributeValue::Data4(data) => u64::from(data), + AttributeValue::Data8(data) => data, + AttributeValue::Udata(data) => data, + AttributeValue::Sdata(data) => { + if data < 0 { + // Maybe we should emit a warning here + return None; + } + data as u64 + } + _ => return None, + }) + } + + /// Try to convert this attribute's value to a signed integer. + pub fn sdata_value(&self) -> Option { + Some(match *self { + AttributeValue::Data1(data) => i64::from(data as i8), + AttributeValue::Data2(data) => i64::from(data as i16), + AttributeValue::Data4(data) => i64::from(data as i32), + AttributeValue::Data8(data) => data as i64, + AttributeValue::Sdata(data) => data, + AttributeValue::Udata(data) => { + if data > i64::max_value() as u64 { + // Maybe we should emit a warning here + return None; + } + data as i64 + } + _ => return None, + }) + } + + /// Try to convert this attribute's value to an offset. + pub fn offset_value(&self) -> Option { + // While offsets will be DW_FORM_data4/8 in DWARF version 2/3, + // these have already been converted to `SecOffset. + if let AttributeValue::SecOffset(offset) = *self { + Some(offset) + } else { + None + } + } + + /// Try to convert this attribute's value to an expression or location buffer. + /// + /// Expressions and locations may be `DW_FORM_block*` or `DW_FORM_exprloc`. + /// The standard doesn't mention `DW_FORM_block*` as a possible form, but + /// it is encountered in practice. + pub fn exprloc_value(&self) -> Option> { + Some(match *self { + AttributeValue::Block(ref data) => Expression(data.clone()), + AttributeValue::Exprloc(ref data) => data.clone(), + _ => return None, + }) + } + + /// Try to return this attribute's value as a string slice. + /// + /// If this attribute's value is either an inline `DW_FORM_string` string, + /// or a `DW_FORM_strp` reference to an offset into the `.debug_str` + /// section, return the attribute's string value as `Some`. Other attribute + /// value forms are returned as `None`. + /// + /// Warning: this function does not handle all possible string forms. + /// Use `Dwarf::attr_string` instead. + pub fn string_value(&self, debug_str: &DebugStr) -> Option { + match *self { + AttributeValue::String(ref string) => Some(string.clone()), + AttributeValue::DebugStrRef(offset) => debug_str.get_str(offset).ok(), + _ => None, + } + } + + /// Try to return this attribute's value as a string slice. + /// + /// If this attribute's value is either an inline `DW_FORM_string` string, + /// or a `DW_FORM_strp` reference to an offset into the `.debug_str` + /// section, or a `DW_FORM_strp_sup` reference to an offset into a supplementary + /// object file, return the attribute's string value as `Some`. Other attribute + /// value forms are returned as `None`. + /// + /// Warning: this function does not handle all possible string forms. + /// Use `Dwarf::attr_string` instead. + pub fn string_value_sup( + &self, + debug_str: &DebugStr, + debug_str_sup: Option<&DebugStr>, + ) -> Option { + match *self { + AttributeValue::String(ref string) => Some(string.clone()), + AttributeValue::DebugStrRef(offset) => debug_str.get_str(offset).ok(), + AttributeValue::DebugStrRefSup(offset) => { + debug_str_sup.and_then(|s| s.get_str(offset).ok()) + } + _ => None, + } + } +} + +fn length_u8_value(input: &mut R) -> Result { + let len = input.read_u8().map(R::Offset::from_u8)?; + input.split(len) +} + +fn length_u16_value(input: &mut R) -> Result { + let len = input.read_u16().map(R::Offset::from_u16)?; + input.split(len) +} + +fn length_u32_value(input: &mut R) -> Result { + let len = input.read_u32().map(R::Offset::from_u32)?; + input.split(len) +} + +fn length_uleb128_value(input: &mut R) -> Result { + let len = input.read_uleb128().and_then(R::Offset::from_u64)?; + input.split(len) +} + +// Return true if the given `name` can be a section offset in DWARF version 2/3. +// This is required to correctly handle relocations. +fn allow_section_offset(name: constants::DwAt, version: u16) -> bool { + match name { + constants::DW_AT_location + | constants::DW_AT_stmt_list + | constants::DW_AT_string_length + | constants::DW_AT_return_addr + | constants::DW_AT_start_scope + | constants::DW_AT_frame_base + | constants::DW_AT_macro_info + | constants::DW_AT_macros + | constants::DW_AT_segment + | constants::DW_AT_static_link + | constants::DW_AT_use_location + | constants::DW_AT_vtable_elem_location + | constants::DW_AT_ranges => true, + constants::DW_AT_data_member_location => version == 2 || version == 3, + _ => false, + } +} + +pub(crate) fn parse_attribute( + input: &mut R, + encoding: Encoding, + spec: AttributeSpecification, +) -> Result> { + let mut form = spec.form(); + loop { + let value = match form { + constants::DW_FORM_indirect => { + let dynamic_form = input.read_uleb128_u16()?; + form = constants::DwForm(dynamic_form); + continue; + } + constants::DW_FORM_addr => { + let addr = input.read_address(encoding.address_size)?; + AttributeValue::Addr(addr) + } + constants::DW_FORM_block1 => { + let block = length_u8_value(input)?; + AttributeValue::Block(block) + } + constants::DW_FORM_block2 => { + let block = length_u16_value(input)?; + AttributeValue::Block(block) + } + constants::DW_FORM_block4 => { + let block = length_u32_value(input)?; + AttributeValue::Block(block) + } + constants::DW_FORM_block => { + let block = length_uleb128_value(input)?; + AttributeValue::Block(block) + } + constants::DW_FORM_data1 => { + let data = input.read_u8()?; + AttributeValue::Data1(data) + } + constants::DW_FORM_data2 => { + let data = input.read_u16()?; + AttributeValue::Data2(data) + } + constants::DW_FORM_data4 => { + // DWARF version 2/3 may use DW_FORM_data4/8 for section offsets. + // Ensure we handle relocations here. + if encoding.format == Format::Dwarf32 + && allow_section_offset(spec.name(), encoding.version) + { + let offset = input.read_offset(Format::Dwarf32)?; + AttributeValue::SecOffset(offset) + } else { + let data = input.read_u32()?; + AttributeValue::Data4(data) + } + } + constants::DW_FORM_data8 => { + // DWARF version 2/3 may use DW_FORM_data4/8 for section offsets. + // Ensure we handle relocations here. + if encoding.format == Format::Dwarf64 + && allow_section_offset(spec.name(), encoding.version) + { + let offset = input.read_offset(Format::Dwarf64)?; + AttributeValue::SecOffset(offset) + } else { + let data = input.read_u64()?; + AttributeValue::Data8(data) + } + } + constants::DW_FORM_data16 => { + let block = input.split(R::Offset::from_u8(16))?; + AttributeValue::Block(block) + } + constants::DW_FORM_udata => { + let data = input.read_uleb128()?; + AttributeValue::Udata(data) + } + constants::DW_FORM_sdata => { + let data = input.read_sleb128()?; + AttributeValue::Sdata(data) + } + constants::DW_FORM_exprloc => { + let block = length_uleb128_value(input)?; + AttributeValue::Exprloc(Expression(block)) + } + constants::DW_FORM_flag => { + let present = input.read_u8()?; + AttributeValue::Flag(present != 0) + } + constants::DW_FORM_flag_present => { + // FlagPresent is this weird compile time always true thing that + // isn't actually present in the serialized DIEs, only in the abbreviation. + AttributeValue::Flag(true) + } + constants::DW_FORM_sec_offset => { + let offset = input.read_offset(encoding.format)?; + AttributeValue::SecOffset(offset) + } + constants::DW_FORM_ref1 => { + let reference = input.read_u8().map(R::Offset::from_u8)?; + AttributeValue::UnitRef(UnitOffset(reference)) + } + constants::DW_FORM_ref2 => { + let reference = input.read_u16().map(R::Offset::from_u16)?; + AttributeValue::UnitRef(UnitOffset(reference)) + } + constants::DW_FORM_ref4 => { + let reference = input.read_u32().map(R::Offset::from_u32)?; + AttributeValue::UnitRef(UnitOffset(reference)) + } + constants::DW_FORM_ref8 => { + let reference = input.read_u64().and_then(R::Offset::from_u64)?; + AttributeValue::UnitRef(UnitOffset(reference)) + } + constants::DW_FORM_ref_udata => { + let reference = input.read_uleb128().and_then(R::Offset::from_u64)?; + AttributeValue::UnitRef(UnitOffset(reference)) + } + constants::DW_FORM_ref_addr => { + // This is an offset, but DWARF version 2 specifies that DW_FORM_ref_addr + // has the same size as an address on the target system. This was changed + // in DWARF version 3. + let offset = if encoding.version == 2 { + input.read_sized_offset(encoding.address_size)? + } else { + input.read_offset(encoding.format)? + }; + AttributeValue::DebugInfoRef(DebugInfoOffset(offset)) + } + constants::DW_FORM_ref_sig8 => { + let signature = input.read_u64()?; + AttributeValue::DebugTypesRef(DebugTypeSignature(signature)) + } + constants::DW_FORM_ref_sup4 => { + let offset = input.read_u32().map(R::Offset::from_u32)?; + AttributeValue::DebugInfoRefSup(DebugInfoOffset(offset)) + } + constants::DW_FORM_ref_sup8 => { + let offset = input.read_u64().and_then(R::Offset::from_u64)?; + AttributeValue::DebugInfoRefSup(DebugInfoOffset(offset)) + } + constants::DW_FORM_GNU_ref_alt => { + let offset = input.read_offset(encoding.format)?; + AttributeValue::DebugInfoRefSup(DebugInfoOffset(offset)) + } + constants::DW_FORM_string => { + let string = input.read_null_terminated_slice()?; + AttributeValue::String(string) + } + constants::DW_FORM_strp => { + let offset = input.read_offset(encoding.format)?; + AttributeValue::DebugStrRef(DebugStrOffset(offset)) + } + constants::DW_FORM_strp_sup | constants::DW_FORM_GNU_strp_alt => { + let offset = input.read_offset(encoding.format)?; + AttributeValue::DebugStrRefSup(DebugStrOffset(offset)) + } + constants::DW_FORM_line_strp => { + let offset = input.read_offset(encoding.format)?; + AttributeValue::DebugLineStrRef(DebugLineStrOffset(offset)) + } + constants::DW_FORM_implicit_const => { + let data = spec + .implicit_const_value() + .ok_or(Error::InvalidImplicitConst)?; + AttributeValue::Sdata(data) + } + constants::DW_FORM_strx | constants::DW_FORM_GNU_str_index => { + let index = input.read_uleb128().and_then(R::Offset::from_u64)?; + AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(index)) + } + constants::DW_FORM_strx1 => { + let index = input.read_u8().map(R::Offset::from_u8)?; + AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(index)) + } + constants::DW_FORM_strx2 => { + let index = input.read_u16().map(R::Offset::from_u16)?; + AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(index)) + } + constants::DW_FORM_strx3 => { + let index = input.read_uint(3).and_then(R::Offset::from_u64)?; + AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(index)) + } + constants::DW_FORM_strx4 => { + let index = input.read_u32().map(R::Offset::from_u32)?; + AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(index)) + } + constants::DW_FORM_addrx | constants::DW_FORM_GNU_addr_index => { + let index = input.read_uleb128().and_then(R::Offset::from_u64)?; + AttributeValue::DebugAddrIndex(DebugAddrIndex(index)) + } + constants::DW_FORM_addrx1 => { + let index = input.read_u8().map(R::Offset::from_u8)?; + AttributeValue::DebugAddrIndex(DebugAddrIndex(index)) + } + constants::DW_FORM_addrx2 => { + let index = input.read_u16().map(R::Offset::from_u16)?; + AttributeValue::DebugAddrIndex(DebugAddrIndex(index)) + } + constants::DW_FORM_addrx3 => { + let index = input.read_uint(3).and_then(R::Offset::from_u64)?; + AttributeValue::DebugAddrIndex(DebugAddrIndex(index)) + } + constants::DW_FORM_addrx4 => { + let index = input.read_u32().map(R::Offset::from_u32)?; + AttributeValue::DebugAddrIndex(DebugAddrIndex(index)) + } + constants::DW_FORM_loclistx => { + let index = input.read_uleb128().and_then(R::Offset::from_u64)?; + AttributeValue::DebugLocListsIndex(DebugLocListsIndex(index)) + } + constants::DW_FORM_rnglistx => { + let index = input.read_uleb128().and_then(R::Offset::from_u64)?; + AttributeValue::DebugRngListsIndex(DebugRngListsIndex(index)) + } + _ => { + return Err(Error::UnknownForm); + } + }; + let attr = Attribute { + name: spec.name(), + value, + }; + return Ok(attr); + } +} + +pub(crate) fn skip_attributes( + input: &mut R, + encoding: Encoding, + specs: &[AttributeSpecification], +) -> Result<()> { + let mut skip_bytes = R::Offset::from_u8(0); + for spec in specs { + let mut form = spec.form(); + loop { + if let Some(len) = get_attribute_size(form, encoding) { + // We know the length of this attribute. Accumulate that length. + skip_bytes += R::Offset::from_u8(len); + break; + } + + // We have encountered a variable-length attribute. + if skip_bytes != R::Offset::from_u8(0) { + // Skip the accumulated skip bytes and then read the attribute normally. + input.skip(skip_bytes)?; + skip_bytes = R::Offset::from_u8(0); + } + + match form { + constants::DW_FORM_indirect => { + let dynamic_form = input.read_uleb128_u16()?; + form = constants::DwForm(dynamic_form); + continue; + } + constants::DW_FORM_block1 => { + skip_bytes = input.read_u8().map(R::Offset::from_u8)?; + } + constants::DW_FORM_block2 => { + skip_bytes = input.read_u16().map(R::Offset::from_u16)?; + } + constants::DW_FORM_block4 => { + skip_bytes = input.read_u32().map(R::Offset::from_u32)?; + } + constants::DW_FORM_block | constants::DW_FORM_exprloc => { + skip_bytes = input.read_uleb128().and_then(R::Offset::from_u64)?; + } + constants::DW_FORM_string => { + let _ = input.read_null_terminated_slice()?; + } + constants::DW_FORM_udata + | constants::DW_FORM_sdata + | constants::DW_FORM_ref_udata + | constants::DW_FORM_strx + | constants::DW_FORM_GNU_str_index + | constants::DW_FORM_addrx + | constants::DW_FORM_GNU_addr_index + | constants::DW_FORM_loclistx + | constants::DW_FORM_rnglistx => { + input.skip_leb128()?; + } + _ => { + return Err(Error::UnknownForm); + } + }; + break; + } + } + if skip_bytes != R::Offset::from_u8(0) { + // Skip the remaining accumulated skip bytes. + input.skip(skip_bytes)?; + } + Ok(()) +} + +/// An iterator over a particular entry's attributes. +/// +/// See [the documentation for +/// `DebuggingInformationEntry::attrs()`](./struct.DebuggingInformationEntry.html#method.attrs) +/// for details. +/// +/// Can be [used with +/// `FallibleIterator`](./index.html#using-with-fallibleiterator). +#[derive(Clone, Copy, Debug)] +pub struct AttrsIter<'abbrev, 'entry, 'unit, R: Reader> { + input: R, + attributes: &'abbrev [AttributeSpecification], + entry: &'entry DebuggingInformationEntry<'abbrev, 'unit, R>, +} + +impl<'abbrev, 'entry, 'unit, R: Reader> AttrsIter<'abbrev, 'entry, 'unit, R> { + /// Advance the iterator and return the next attribute. + /// + /// Returns `None` when iteration is finished. If an error + /// occurs while parsing the next attribute, then this error + /// is returned, and all subsequent calls return `None`. + #[inline(always)] + pub fn next(&mut self) -> Result>> { + if self.attributes.is_empty() { + // Now that we have parsed all of the attributes, we know where + // either (1) this entry's children start, if the abbreviation says + // this entry has children; or (2) where this entry's siblings + // begin. + if let Some(end) = self.entry.attrs_len.get() { + debug_assert_eq!(end, self.input.offset_from(&self.entry.attrs_slice)); + } else { + self.entry + .attrs_len + .set(Some(self.input.offset_from(&self.entry.attrs_slice))); + } + + return Ok(None); + } + + let spec = self.attributes[0]; + let rest_spec = &self.attributes[1..]; + match parse_attribute(&mut self.input, self.entry.unit.encoding(), spec) { + Ok(attr) => { + self.attributes = rest_spec; + Ok(Some(attr)) + } + Err(e) => { + self.input.empty(); + Err(e) + } + } + } +} + +#[cfg(feature = "fallible-iterator")] +impl<'abbrev, 'entry, 'unit, R: Reader> fallible_iterator::FallibleIterator + for AttrsIter<'abbrev, 'entry, 'unit, R> +{ + type Item = Attribute; + type Error = Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + AttrsIter::next(self) + } +} + +/// A raw reader of the data that defines the Debugging Information Entries. +/// +/// `EntriesRaw` provides primitives to read the components of Debugging Information +/// Entries (DIEs). A DIE consists of an abbreviation code (read with `read_abbreviation`) +/// followed by a number of attributes (read with `read_attribute`). +/// The user must provide the control flow to read these correctly. +/// In particular, all attributes must always be read before reading another +/// abbreviation code. +/// +/// `EntriesRaw` lacks some features of `EntriesCursor`, such as the ability to skip +/// to the next sibling DIE. However, this also allows it to optimize better, since it +/// does not need to perform the extra bookkeeping required to support these features, +/// and thus it is suitable for cases where performance is important. +/// +/// ## Example Usage +/// ```rust,no_run +/// # fn example() -> Result<(), gimli::Error> { +/// # let debug_info = gimli::DebugInfo::new(&[], gimli::LittleEndian); +/// # let get_some_unit = || debug_info.units().next().unwrap().unwrap(); +/// let unit = get_some_unit(); +/// # let debug_abbrev = gimli::DebugAbbrev::new(&[], gimli::LittleEndian); +/// # let get_abbrevs_for_unit = |_| unit.abbreviations(&debug_abbrev).unwrap(); +/// let abbrevs = get_abbrevs_for_unit(&unit); +/// +/// let mut entries = unit.entries_raw(&abbrevs, None)?; +/// while !entries.is_empty() { +/// let abbrev = if let Some(abbrev) = entries.read_abbreviation()? { +/// abbrev +/// } else { +/// // Null entry with no attributes. +/// continue +/// }; +/// match abbrev.tag() { +/// gimli::DW_TAG_subprogram => { +/// // Loop over attributes for DIEs we care about. +/// for spec in abbrev.attributes() { +/// let attr = entries.read_attribute(*spec)?; +/// match attr.name() { +/// // Handle attributes. +/// _ => {} +/// } +/// } +/// } +/// _ => { +/// // Skip attributes for DIEs we don't care about. +/// entries.skip_attributes(abbrev.attributes()); +/// } +/// } +/// } +/// # unreachable!() +/// # } +/// ``` +#[derive(Clone, Debug)] +pub struct EntriesRaw<'abbrev, 'unit, R> +where + R: Reader, +{ + input: R, + unit: &'unit UnitHeader, + abbreviations: &'abbrev Abbreviations, + depth: isize, +} + +impl<'abbrev, 'unit, R: Reader> EntriesRaw<'abbrev, 'unit, R> { + /// Return true if there is no more input. + #[inline] + pub fn is_empty(&self) -> bool { + self.input.is_empty() + } + + /// Return the unit offset at which the reader will read next. + /// + /// If you want the offset of the next entry, then this must be called prior to reading + /// the next entry. + pub fn next_offset(&self) -> UnitOffset { + UnitOffset(self.unit.header_size() + self.input.offset_from(&self.unit.entries_buf)) + } + + /// Return the depth of the next entry. + /// + /// This depth is updated when `read_abbreviation` is called, and is updated + /// based on null entries and the `has_children` field in the abbreviation. + #[inline] + pub fn next_depth(&self) -> isize { + self.depth + } + + /// Read an abbreviation code and lookup the corresponding `Abbreviation`. + /// + /// Returns `Ok(None)` for null entries. + #[inline] + pub fn read_abbreviation(&mut self) -> Result> { + let code = self.input.read_uleb128()?; + if code == 0 { + self.depth -= 1; + return Ok(None); + }; + let abbrev = self + .abbreviations + .get(code) + .ok_or(Error::UnknownAbbreviation)?; + if abbrev.has_children() { + self.depth += 1; + } + Ok(Some(abbrev)) + } + + /// Read an attribute. + #[inline] + pub fn read_attribute(&mut self, spec: AttributeSpecification) -> Result> { + parse_attribute(&mut self.input, self.unit.encoding(), spec) + } + + /// Skip all the attributes of an abbreviation. + #[inline] + pub fn skip_attributes(&mut self, specs: &[AttributeSpecification]) -> Result<()> { + skip_attributes(&mut self.input, self.unit.encoding(), specs) + } +} + +/// A cursor into the Debugging Information Entries tree for a compilation unit. +/// +/// The `EntriesCursor` can traverse the DIE tree in DFS order using `next_dfs()`, +/// or skip to the next sibling of the entry the cursor is currently pointing to +/// using `next_sibling()`. +/// +/// It is also possible to traverse the DIE tree at a lower abstraction level +/// using `next_entry()`. This method does not skip over null entries, or provide +/// any indication of the current tree depth. In this case, you must use `current()` +/// to obtain the current entry, and `current().has_children()` to determine if +/// the entry following the current entry will be a sibling or child. `current()` +/// will return `None` if the current entry is a null entry, which signifies the +/// end of the current tree depth. +#[derive(Clone, Debug)] +pub struct EntriesCursor<'abbrev, 'unit, R> +where + R: Reader, +{ + input: R, + unit: &'unit UnitHeader, + abbreviations: &'abbrev Abbreviations, + cached_current: Option>, + delta_depth: isize, +} + +impl<'abbrev, 'unit, R: Reader> EntriesCursor<'abbrev, 'unit, R> { + /// Get a reference to the entry that the cursor is currently pointing to. + /// + /// If the cursor is not pointing at an entry, or if the current entry is a + /// null entry, then `None` is returned. + #[inline] + pub fn current(&self) -> Option<&DebuggingInformationEntry<'abbrev, 'unit, R>> { + self.cached_current.as_ref() + } + + /// Move the cursor to the next DIE in the tree. + /// + /// Returns `Some` if there is a next entry, even if this entry is null. + /// If there is no next entry, then `None` is returned. + pub fn next_entry(&mut self) -> Result> { + if let Some(ref current) = self.cached_current { + self.input = current.after_attrs()?; + } + + if self.input.is_empty() { + self.cached_current = None; + self.delta_depth = 0; + return Ok(None); + } + + match DebuggingInformationEntry::parse(&mut self.input, self.unit, self.abbreviations) { + Ok(Some(entry)) => { + self.delta_depth = entry.has_children() as isize; + self.cached_current = Some(entry); + Ok(Some(())) + } + Ok(None) => { + self.delta_depth = -1; + self.cached_current = None; + Ok(Some(())) + } + Err(e) => { + self.input.empty(); + self.delta_depth = 0; + self.cached_current = None; + Err(e) + } + } + } + + /// Move the cursor to the next DIE in the tree in DFS order. + /// + /// Upon successful movement of the cursor, return the delta traversal + /// depth and the entry: + /// + /// * If we moved down into the previous current entry's children, we get + /// `Some((1, entry))`. + /// + /// * If we moved to the previous current entry's sibling, we get + /// `Some((0, entry))`. + /// + /// * If the previous entry does not have any siblings and we move up to + /// its parent's next sibling, then we get `Some((-1, entry))`. Note that + /// if the parent doesn't have a next sibling, then it could go up to the + /// parent's parent's next sibling and return `Some((-2, entry))`, etc. + /// + /// If there is no next entry, then `None` is returned. + /// + /// Here is an example that finds the first entry in a compilation unit that + /// does not have any children. + /// + /// ``` + /// # use gimli::{DebugAbbrev, DebugInfo, LittleEndian}; + /// # let info_buf = [ + /// # // Comilation unit header + /// # + /// # // 32-bit unit length = 25 + /// # 0x19, 0x00, 0x00, 0x00, + /// # // Version 4 + /// # 0x04, 0x00, + /// # // debug_abbrev_offset + /// # 0x00, 0x00, 0x00, 0x00, + /// # // Address size + /// # 0x04, + /// # + /// # // DIEs + /// # + /// # // Abbreviation code + /// # 0x01, + /// # // Attribute of form DW_FORM_string = "foo\0" + /// # 0x66, 0x6f, 0x6f, 0x00, + /// # + /// # // Children + /// # + /// # // Abbreviation code + /// # 0x01, + /// # // Attribute of form DW_FORM_string = "foo\0" + /// # 0x66, 0x6f, 0x6f, 0x00, + /// # + /// # // Children + /// # + /// # // Abbreviation code + /// # 0x01, + /// # // Attribute of form DW_FORM_string = "foo\0" + /// # 0x66, 0x6f, 0x6f, 0x00, + /// # + /// # // Children + /// # + /// # // End of children + /// # 0x00, + /// # + /// # // End of children + /// # 0x00, + /// # + /// # // End of children + /// # 0x00, + /// # ]; + /// # let debug_info = DebugInfo::new(&info_buf, LittleEndian); + /// # + /// # let abbrev_buf = [ + /// # // Code + /// # 0x01, + /// # // DW_TAG_subprogram + /// # 0x2e, + /// # // DW_CHILDREN_yes + /// # 0x01, + /// # // Begin attributes + /// # // Attribute name = DW_AT_name + /// # 0x03, + /// # // Attribute form = DW_FORM_string + /// # 0x08, + /// # // End attributes + /// # 0x00, + /// # 0x00, + /// # // Null terminator + /// # 0x00 + /// # ]; + /// # let debug_abbrev = DebugAbbrev::new(&abbrev_buf, LittleEndian); + /// # + /// # let get_some_unit = || debug_info.units().next().unwrap().unwrap(); + /// + /// let unit = get_some_unit(); + /// # let get_abbrevs_for_unit = |_| unit.abbreviations(&debug_abbrev).unwrap(); + /// let abbrevs = get_abbrevs_for_unit(&unit); + /// + /// let mut first_entry_with_no_children = None; + /// let mut cursor = unit.entries(&abbrevs); + /// + /// // Move the cursor to the root. + /// assert!(cursor.next_dfs().unwrap().is_some()); + /// + /// // Traverse the DIE tree in depth-first search order. + /// let mut depth = 0; + /// while let Some((delta_depth, current)) = cursor.next_dfs().expect("Should parse next dfs") { + /// // Update depth value, and break out of the loop when we + /// // return to the original starting position. + /// depth += delta_depth; + /// if depth <= 0 { + /// break; + /// } + /// + /// first_entry_with_no_children = Some(current.clone()); + /// } + /// + /// println!("The first entry with no children is {:?}", + /// first_entry_with_no_children.unwrap()); + /// ``` + pub fn next_dfs( + &mut self, + ) -> Result)>> { + let mut delta_depth = self.delta_depth; + loop { + // The next entry should be the one we want. + if self.next_entry()?.is_some() { + if let Some(ref entry) = self.cached_current { + return Ok(Some((delta_depth, entry))); + } + + // next_entry() read a null entry. + delta_depth += self.delta_depth; + } else { + return Ok(None); + } + } + } + + /// Move the cursor to the next sibling DIE of the current one. + /// + /// Returns `Ok(Some(entry))` when the cursor has been moved to + /// the next sibling, `Ok(None)` when there is no next sibling. + /// + /// The depth of the cursor is never changed if this method returns `Ok`. + /// Once `Ok(None)` is returned, this method will continue to return + /// `Ok(None)` until either `next_entry` or `next_dfs` is called. + /// + /// Here is an example that iterates over all of the direct children of the + /// root entry: + /// + /// ``` + /// # use gimli::{DebugAbbrev, DebugInfo, LittleEndian}; + /// # let info_buf = [ + /// # // Comilation unit header + /// # + /// # // 32-bit unit length = 25 + /// # 0x19, 0x00, 0x00, 0x00, + /// # // Version 4 + /// # 0x04, 0x00, + /// # // debug_abbrev_offset + /// # 0x00, 0x00, 0x00, 0x00, + /// # // Address size + /// # 0x04, + /// # + /// # // DIEs + /// # + /// # // Abbreviation code + /// # 0x01, + /// # // Attribute of form DW_FORM_string = "foo\0" + /// # 0x66, 0x6f, 0x6f, 0x00, + /// # + /// # // Children + /// # + /// # // Abbreviation code + /// # 0x01, + /// # // Attribute of form DW_FORM_string = "foo\0" + /// # 0x66, 0x6f, 0x6f, 0x00, + /// # + /// # // Children + /// # + /// # // Abbreviation code + /// # 0x01, + /// # // Attribute of form DW_FORM_string = "foo\0" + /// # 0x66, 0x6f, 0x6f, 0x00, + /// # + /// # // Children + /// # + /// # // End of children + /// # 0x00, + /// # + /// # // End of children + /// # 0x00, + /// # + /// # // End of children + /// # 0x00, + /// # ]; + /// # let debug_info = DebugInfo::new(&info_buf, LittleEndian); + /// # + /// # let get_some_unit = || debug_info.units().next().unwrap().unwrap(); + /// + /// # let abbrev_buf = [ + /// # // Code + /// # 0x01, + /// # // DW_TAG_subprogram + /// # 0x2e, + /// # // DW_CHILDREN_yes + /// # 0x01, + /// # // Begin attributes + /// # // Attribute name = DW_AT_name + /// # 0x03, + /// # // Attribute form = DW_FORM_string + /// # 0x08, + /// # // End attributes + /// # 0x00, + /// # 0x00, + /// # // Null terminator + /// # 0x00 + /// # ]; + /// # let debug_abbrev = DebugAbbrev::new(&abbrev_buf, LittleEndian); + /// # + /// let unit = get_some_unit(); + /// # let get_abbrevs_for_unit = |_| unit.abbreviations(&debug_abbrev).unwrap(); + /// let abbrevs = get_abbrevs_for_unit(&unit); + /// + /// let mut cursor = unit.entries(&abbrevs); + /// + /// // Move the cursor to the root. + /// assert!(cursor.next_dfs().unwrap().is_some()); + /// + /// // Move the cursor to the root's first child. + /// assert!(cursor.next_dfs().unwrap().is_some()); + /// + /// // Iterate the root's children. + /// loop { + /// { + /// let current = cursor.current().expect("Should be at an entry"); + /// println!("{:?} is a child of the root", current); + /// } + /// + /// if cursor.next_sibling().expect("Should parse next sibling").is_none() { + /// break; + /// } + /// } + /// ``` + pub fn next_sibling( + &mut self, + ) -> Result>> { + if self.current().is_none() { + // We're already at the null for the end of the sibling list. + return Ok(None); + } + + // Loop until we find an entry at the current level. + let mut depth = 0; + loop { + // Use is_some() and unwrap() to keep borrow checker happy. + if self.current().is_some() && self.current().unwrap().has_children() { + if let Some(sibling_input) = self.current().unwrap().sibling() { + // Fast path: this entry has a DW_AT_sibling + // attribute pointing to its sibling, so jump + // to it (which keeps us at the same depth). + self.input = sibling_input; + self.cached_current = None; + } else { + // This entry has children, so the next entry is + // down one level. + depth += 1; + } + } + + if self.next_entry()?.is_none() { + // End of input. + return Ok(None); + } + + if depth == 0 { + // Found an entry at the current level. + return Ok(self.current()); + } + + if self.current().is_none() { + // A null entry means the end of a child list, so we're + // back up a level. + depth -= 1; + } + } + } +} + +/// The state information for a tree view of the Debugging Information Entries. +/// +/// The `EntriesTree` can be used to recursively iterate through the DIE +/// tree, following the parent/child relationships. The `EntriesTree` contains +/// shared state for all nodes in the tree, avoiding any duplicate parsing of +/// entries during the traversal. +/// +/// ## Example Usage +/// ```rust,no_run +/// # fn example() -> Result<(), gimli::Error> { +/// # let debug_info = gimli::DebugInfo::new(&[], gimli::LittleEndian); +/// # let get_some_unit = || debug_info.units().next().unwrap().unwrap(); +/// let unit = get_some_unit(); +/// # let debug_abbrev = gimli::DebugAbbrev::new(&[], gimli::LittleEndian); +/// # let get_abbrevs_for_unit = |_| unit.abbreviations(&debug_abbrev).unwrap(); +/// let abbrevs = get_abbrevs_for_unit(&unit); +/// +/// let mut tree = unit.entries_tree(&abbrevs, None)?; +/// let root = tree.root()?; +/// process_tree(root)?; +/// # unreachable!() +/// # } +/// +/// fn process_tree(mut node: gimli::EntriesTreeNode) -> gimli::Result<()> +/// where R: gimli::Reader +/// { +/// { +/// // Examine the entry attributes. +/// let mut attrs = node.entry().attrs(); +/// while let Some(attr) = attrs.next()? { +/// } +/// } +/// let mut children = node.children(); +/// while let Some(child) = children.next()? { +/// // Recursively process a child. +/// process_tree(child); +/// } +/// Ok(()) +/// } +/// ``` +#[derive(Clone, Debug)] +pub struct EntriesTree<'abbrev, 'unit, R> +where + R: Reader, +{ + root: R, + unit: &'unit UnitHeader, + abbreviations: &'abbrev Abbreviations, + input: R, + entry: Option>, + depth: isize, +} + +impl<'abbrev, 'unit, R: Reader> EntriesTree<'abbrev, 'unit, R> { + fn new(root: R, unit: &'unit UnitHeader, abbreviations: &'abbrev Abbreviations) -> Self { + let input = root.clone(); + EntriesTree { + root, + unit, + abbreviations, + input, + entry: None, + depth: 0, + } + } + + /// Returns the root node of the tree. + pub fn root<'me>(&'me mut self) -> Result> { + self.input = self.root.clone(); + self.entry = + DebuggingInformationEntry::parse(&mut self.input, self.unit, self.abbreviations)?; + if self.entry.is_none() { + return Err(Error::UnexpectedNull); + } + self.depth = 0; + Ok(EntriesTreeNode::new(self, 1)) + } + + /// Move the cursor to the next entry at the specified depth. + /// + /// Requires `depth <= self.depth + 1`. + /// + /// Returns `true` if successful. + fn next(&mut self, depth: isize) -> Result { + if self.depth < depth { + debug_assert_eq!(self.depth + 1, depth); + + match self.entry { + Some(ref entry) => { + if !entry.has_children() { + return Ok(false); + } + self.depth += 1; + self.input = entry.after_attrs()?; + } + None => return Ok(false), + } + + if self.input.is_empty() { + self.entry = None; + return Ok(false); + } + + return match DebuggingInformationEntry::parse( + &mut self.input, + self.unit, + self.abbreviations, + ) { + Ok(entry) => { + self.entry = entry; + Ok(self.entry.is_some()) + } + Err(e) => { + self.input.empty(); + self.entry = None; + Err(e) + } + }; + } + + loop { + match self.entry { + Some(ref entry) => { + if entry.has_children() { + if let Some(sibling_input) = entry.sibling() { + // Fast path: this entry has a DW_AT_sibling + // attribute pointing to its sibling, so jump + // to it (which keeps us at the same depth). + self.input = sibling_input; + } else { + // This entry has children, so the next entry is + // down one level. + self.depth += 1; + self.input = entry.after_attrs()?; + } + } else { + // This entry has no children, so next entry is at same depth. + self.input = entry.after_attrs()?; + } + } + None => { + // This entry is a null, so next entry is up one level. + self.depth -= 1; + } + } + + if self.input.is_empty() { + self.entry = None; + return Ok(false); + } + + match DebuggingInformationEntry::parse(&mut self.input, self.unit, self.abbreviations) { + Ok(entry) => { + self.entry = entry; + if self.depth == depth { + return Ok(self.entry.is_some()); + } + } + Err(e) => { + self.input.empty(); + self.entry = None; + return Err(e); + } + } + } + } +} + +/// A node in the Debugging Information Entry tree. +/// +/// The root node of a tree can be obtained +/// via [`EntriesTree::root`](./struct.EntriesTree.html#method.root). +#[derive(Debug)] +pub struct EntriesTreeNode<'abbrev, 'unit, 'tree, R: Reader> { + tree: &'tree mut EntriesTree<'abbrev, 'unit, R>, + depth: isize, +} + +impl<'abbrev, 'unit, 'tree, R: Reader> EntriesTreeNode<'abbrev, 'unit, 'tree, R> { + fn new( + tree: &'tree mut EntriesTree<'abbrev, 'unit, R>, + depth: isize, + ) -> EntriesTreeNode<'abbrev, 'unit, 'tree, R> { + debug_assert!(tree.entry.is_some()); + EntriesTreeNode { tree, depth } + } + + /// Returns the current entry in the tree. + pub fn entry(&self) -> &DebuggingInformationEntry<'abbrev, 'unit, R> { + // We never create a node without an entry. + self.tree.entry.as_ref().unwrap() + } + + /// Create an iterator for the children of the current entry. + /// + /// The current entry can no longer be accessed after creating the + /// iterator. + pub fn children(self) -> EntriesTreeIter<'abbrev, 'unit, 'tree, R> { + EntriesTreeIter::new(self.tree, self.depth) + } +} + +/// An iterator that allows traversal of the children of an +/// `EntriesTreeNode`. +/// +/// The items returned by this iterator are also `EntriesTreeNode`s, +/// which allow recursive traversal of grandchildren, etc. +#[derive(Debug)] +pub struct EntriesTreeIter<'abbrev, 'unit, 'tree, R: Reader> { + tree: &'tree mut EntriesTree<'abbrev, 'unit, R>, + depth: isize, + empty: bool, +} + +impl<'abbrev, 'unit, 'tree, R: Reader> EntriesTreeIter<'abbrev, 'unit, 'tree, R> { + fn new( + tree: &'tree mut EntriesTree<'abbrev, 'unit, R>, + depth: isize, + ) -> EntriesTreeIter<'abbrev, 'unit, 'tree, R> { + EntriesTreeIter { + tree, + depth, + empty: false, + } + } + + /// Returns an `EntriesTreeNode` for the next child entry. + /// + /// Returns `None` if there are no more children. + pub fn next<'me>(&'me mut self) -> Result>> { + if self.empty { + Ok(None) + } else if self.tree.next(self.depth)? { + Ok(Some(EntriesTreeNode::new(self.tree, self.depth + 1))) + } else { + self.empty = true; + Ok(None) + } + } +} + +/// Parse a type unit header's unique type signature. Callers should handle +/// unique-ness checking. +fn parse_type_signature(input: &mut R) -> Result { + input.read_u64().map(DebugTypeSignature) +} + +/// Parse a type unit header's type offset. +fn parse_type_offset(input: &mut R, format: Format) -> Result> { + input.read_offset(format).map(UnitOffset) +} + +/// The `DebugTypes` struct represents the DWARF type information +/// found in the `.debug_types` section. +#[derive(Debug, Default, Clone, Copy)] +pub struct DebugTypes { + debug_types_section: R, +} + +impl<'input, Endian> DebugTypes> +where + Endian: Endianity, +{ + /// Construct a new `DebugTypes` instance from the data in the `.debug_types` + /// section. + /// + /// It is the caller's responsibility to read the `.debug_types` section and + /// present it as a `&[u8]` slice. That means using some ELF loader on + /// Linux, a Mach-O loader on macOS, etc. + /// + /// ``` + /// use gimli::{DebugTypes, LittleEndian}; + /// + /// # let buf = [0x00, 0x01, 0x02, 0x03]; + /// # let read_debug_types_section_somehow = || &buf; + /// let debug_types = DebugTypes::new(read_debug_types_section_somehow(), LittleEndian); + /// ``` + pub fn new(debug_types_section: &'input [u8], endian: Endian) -> Self { + Self::from(EndianSlice::new(debug_types_section, endian)) + } +} + +impl DebugTypes { + /// Create a `DebugTypes` section that references the data in `self`. + /// + /// This is useful when `R` implements `Reader` but `T` does not. + /// + /// ## Example Usage + /// + /// ```rust,no_run + /// # let load_section = || unimplemented!(); + /// // Read the DWARF section into a `Vec` with whatever object loader you're using. + /// let owned_section: gimli::DebugTypes> = load_section(); + /// // Create a reference to the DWARF section. + /// let section = owned_section.borrow(|section| { + /// gimli::EndianSlice::new(§ion, gimli::LittleEndian) + /// }); + /// ``` + pub fn borrow<'a, F, R>(&'a self, mut borrow: F) -> DebugTypes + where + F: FnMut(&'a T) -> R, + { + borrow(&self.debug_types_section).into() + } +} + +impl Section for DebugTypes { + fn id() -> SectionId { + SectionId::DebugTypes + } + + fn reader(&self) -> &R { + &self.debug_types_section + } +} + +impl From for DebugTypes { + fn from(debug_types_section: R) -> Self { + DebugTypes { + debug_types_section, + } + } +} + +impl DebugTypes { + /// Iterate the type-units in this `.debug_types` section. + /// + /// ``` + /// use gimli::{DebugTypes, LittleEndian}; + /// + /// # let buf = []; + /// # let read_debug_types_section_somehow = || &buf; + /// let debug_types = DebugTypes::new(read_debug_types_section_somehow(), LittleEndian); + /// + /// let mut iter = debug_types.units(); + /// while let Some(unit) = iter.next().unwrap() { + /// println!("unit's length is {}", unit.unit_length()); + /// } + /// ``` + /// + /// Can be [used with + /// `FallibleIterator`](./index.html#using-with-fallibleiterator). + pub fn units(&self) -> DebugTypesUnitHeadersIter { + DebugTypesUnitHeadersIter { + input: self.debug_types_section.clone(), + offset: DebugTypesOffset(R::Offset::from_u8(0)), + } + } +} + +/// An iterator over the type-units of this `.debug_types` section. +/// +/// See the [documentation on +/// `DebugTypes::units`](./struct.DebugTypes.html#method.units) for +/// more detail. +#[derive(Clone, Debug)] +pub struct DebugTypesUnitHeadersIter { + input: R, + offset: DebugTypesOffset, +} + +impl DebugTypesUnitHeadersIter { + /// Advance the iterator to the next type unit header. + pub fn next(&mut self) -> Result>> { + if self.input.is_empty() { + Ok(None) + } else { + let len = self.input.len(); + match parse_unit_header(&mut self.input, self.offset.into()) { + Ok(header) => { + self.offset.0 += len - self.input.len(); + Ok(Some(header)) + } + Err(e) => { + self.input.empty(); + Err(e) + } + } + } + } +} + +#[cfg(feature = "fallible-iterator")] +impl fallible_iterator::FallibleIterator for DebugTypesUnitHeadersIter { + type Item = UnitHeader; + type Error = Error; + + fn next(&mut self) -> ::core::result::Result, Self::Error> { + DebugTypesUnitHeadersIter::next(self) + } +} + +#[cfg(test)] +// Tests require leb128::write. +#[cfg(feature = "write")] +mod tests { + use super::*; + use crate::constants; + use crate::constants::*; + use crate::endianity::{Endianity, LittleEndian}; + use crate::leb128; + use crate::read::abbrev::tests::AbbrevSectionMethods; + use crate::read::{ + Abbreviation, AttributeSpecification, DebugAbbrev, EndianSlice, Error, Result, + }; + use crate::test_util::GimliSectionMethods; + use alloc::vec::Vec; + use core::cell::Cell; + use test_assembler::{Endian, Label, LabelMaker, Section}; + + // Mixin methods for `Section` to help define binary test data. + + trait UnitSectionMethods { + fn unit<'input, E>(self, unit: &mut UnitHeader>) -> Self + where + E: Endianity; + fn die(self, code: u64, attr: F) -> Self + where + F: Fn(Section) -> Section; + fn die_null(self) -> Self; + fn attr_string(self, s: &str) -> Self; + fn attr_ref1(self, o: u8) -> Self; + fn offset(self, offset: usize, format: Format) -> Self; + } + + impl UnitSectionMethods for Section { + fn unit<'input, E>(self, unit: &mut UnitHeader>) -> Self + where + E: Endianity, + { + let size = self.size(); + let length = Label::new(); + let start = Label::new(); + let end = Label::new(); + + let section = match unit.format() { + Format::Dwarf32 => self.L32(&length), + Format::Dwarf64 => self.L32(0xffff_ffff).L64(&length), + }; + + let section = match unit.version() { + 2 | 3 | 4 => section + .mark(&start) + .L16(unit.version()) + .offset(unit.debug_abbrev_offset.0, unit.format()) + .D8(unit.address_size()), + 5 => section + .mark(&start) + .L16(unit.version()) + .D8(unit.type_().dw_ut().0) + .D8(unit.address_size()) + .offset(unit.debug_abbrev_offset.0, unit.format()), + _ => unreachable!(), + }; + + let section = match unit.type_() { + UnitType::Compilation | UnitType::Partial => { + unit.unit_offset = DebugInfoOffset(size as usize).into(); + section + } + UnitType::Type { + type_signature, + type_offset, + } + | UnitType::SplitType { + type_signature, + type_offset, + } => { + if unit.version() == 5 { + unit.unit_offset = DebugInfoOffset(size as usize).into(); + } else { + unit.unit_offset = DebugTypesOffset(size as usize).into(); + } + section + .L64(type_signature.0) + .offset(type_offset.0, unit.format()) + } + UnitType::Skeleton(dwo_id) | UnitType::SplitCompilation(dwo_id) => { + unit.unit_offset = DebugInfoOffset(size as usize).into(); + section.L64(dwo_id.0) + } + }; + + let section = section.append_bytes(unit.entries_buf.slice()).mark(&end); + + unit.unit_length = (&end - &start) as usize; + length.set_const(unit.unit_length as u64); + + section + } + + fn die(self, code: u64, attr: F) -> Self + where + F: Fn(Section) -> Section, + { + let section = self.uleb(code); + attr(section) + } + + fn die_null(self) -> Self { + self.D8(0) + } + + fn attr_string(self, attr: &str) -> Self { + self.append_bytes(attr.as_bytes()).D8(0) + } + + fn attr_ref1(self, attr: u8) -> Self { + self.D8(attr) + } + + fn offset(self, offset: usize, format: Format) -> Self { + match format { + Format::Dwarf32 => self.L32(offset as u32), + Format::Dwarf64 => self.L64(offset as u64), + } + } + } + + /// Ensure that `UnitHeader` is covariant wrt R. + #[test] + fn test_unit_header_variance() { + /// This only needs to compile. + fn _f<'a: 'b, 'b, E: Endianity>( + x: UnitHeader>, + ) -> UnitHeader> { + x + } + } + + #[test] + fn test_parse_debug_abbrev_offset_32() { + let section = Section::with_endian(Endian::Little).L32(0x0403_0201); + let buf = section.get_contents().unwrap(); + let buf = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_debug_abbrev_offset(buf, Format::Dwarf32) { + Ok(val) => assert_eq!(val, DebugAbbrevOffset(0x0403_0201)), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_debug_abbrev_offset_32_incomplete() { + let buf = [0x01, 0x02]; + let buf = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_debug_abbrev_offset(buf, Format::Dwarf32) { + Err(Error::UnexpectedEof(_)) => assert!(true), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_debug_abbrev_offset_64() { + let section = Section::with_endian(Endian::Little).L64(0x0807_0605_0403_0201); + let buf = section.get_contents().unwrap(); + let buf = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_debug_abbrev_offset(buf, Format::Dwarf64) { + Ok(val) => assert_eq!(val, DebugAbbrevOffset(0x0807_0605_0403_0201)), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_debug_abbrev_offset_64_incomplete() { + let buf = [0x01, 0x02]; + let buf = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_debug_abbrev_offset(buf, Format::Dwarf64) { + Err(Error::UnexpectedEof(_)) => assert!(true), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_debug_info_offset_32() { + let section = Section::with_endian(Endian::Little).L32(0x0403_0201); + let buf = section.get_contents().unwrap(); + let buf = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_debug_info_offset(buf, Format::Dwarf32) { + Ok(val) => assert_eq!(val, DebugInfoOffset(0x0403_0201)), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_debug_info_offset_32_incomplete() { + let buf = [0x01, 0x02]; + let buf = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_debug_info_offset(buf, Format::Dwarf32) { + Err(Error::UnexpectedEof(_)) => assert!(true), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_debug_info_offset_64() { + let section = Section::with_endian(Endian::Little).L64(0x0807_0605_0403_0201); + let buf = section.get_contents().unwrap(); + let buf = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_debug_info_offset(buf, Format::Dwarf64) { + Ok(val) => assert_eq!(val, DebugInfoOffset(0x0807_0605_0403_0201)), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_debug_info_offset_64_incomplete() { + let buf = [0x01, 0x02]; + let buf = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_debug_info_offset(buf, Format::Dwarf64) { + Err(Error::UnexpectedEof(_)) => assert!(true), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_units() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let mut unit64 = UnitHeader { + encoding: Encoding { + format: Format::Dwarf64, + version: 4, + address_size: 8, + }, + unit_length: 0, + unit_type: UnitType::Compilation, + debug_abbrev_offset: DebugAbbrevOffset(0x0102_0304_0506_0708), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let mut unit32 = UnitHeader { + encoding: Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }, + unit_length: 0, + unit_type: UnitType::Compilation, + debug_abbrev_offset: DebugAbbrevOffset(0x0807_0605), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut unit64) + .unit(&mut unit32); + let buf = section.get_contents().unwrap(); + + let debug_info = DebugInfo::new(&buf, LittleEndian); + let mut units = debug_info.units(); + + assert_eq!(units.next(), Ok(Some(unit64))); + assert_eq!(units.next(), Ok(Some(unit32))); + assert_eq!(units.next(), Ok(None)); + } + + #[test] + fn test_unit_version_unknown_version() { + let buf = [0x02, 0x00, 0x00, 0x00, 0xab, 0xcd]; + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_unit_header(rest, DebugInfoOffset(0).into()) { + Err(Error::UnknownVersion(0xcdab)) => assert!(true), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + + let buf = [0x02, 0x00, 0x00, 0x00, 0x1, 0x0]; + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_unit_header(rest, DebugInfoOffset(0).into()) { + Err(Error::UnknownVersion(1)) => assert!(true), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_unit_version_incomplete() { + let buf = [0x01, 0x00, 0x00, 0x00, 0x04]; + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_unit_header(rest, DebugInfoOffset(0).into()) { + Err(Error::UnexpectedEof(_)) => assert!(true), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_unit_header_32_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Compilation, + debug_abbrev_offset: DebugAbbrevOffset(0x0807_0605), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_unit_header_64_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf64, + version: 4, + address_size: 8, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Compilation, + debug_abbrev_offset: DebugAbbrevOffset(0x0102_0304_0506_0708), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_v5_unit_header_32_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf32, + version: 5, + address_size: 4, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Compilation, + debug_abbrev_offset: DebugAbbrevOffset(0x0807_0605), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_v5_unit_header_64_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf64, + version: 5, + address_size: 8, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Compilation, + debug_abbrev_offset: DebugAbbrevOffset(0x0102_0304_0506_0708), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_v5_partial_unit_header_32_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf32, + version: 5, + address_size: 4, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Partial, + debug_abbrev_offset: DebugAbbrevOffset(0x0807_0605), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_v5_partial_unit_header_64_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf64, + version: 5, + address_size: 8, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Partial, + debug_abbrev_offset: DebugAbbrevOffset(0x0102_0304_0506_0708), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_v5_skeleton_unit_header_32_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf32, + version: 5, + address_size: 4, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Skeleton(DwoId(0x0706_5040_0302_1000)), + debug_abbrev_offset: DebugAbbrevOffset(0x0807_0605), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_v5_skeleton_unit_header_64_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf64, + version: 5, + address_size: 8, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Skeleton(DwoId(0x0706_5040_0302_1000)), + debug_abbrev_offset: DebugAbbrevOffset(0x0102_0304_0506_0708), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_v5_split_compilation_unit_header_32_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf32, + version: 5, + address_size: 4, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::SplitCompilation(DwoId(0x0706_5040_0302_1000)), + debug_abbrev_offset: DebugAbbrevOffset(0x0807_0605), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_v5_split_compilation_unit_header_64_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf64, + version: 5, + address_size: 8, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::SplitCompilation(DwoId(0x0706_5040_0302_1000)), + debug_abbrev_offset: DebugAbbrevOffset(0x0102_0304_0506_0708), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_type_offset_32_ok() { + let buf = [0x12, 0x34, 0x56, 0x78, 0x00]; + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_type_offset(rest, Format::Dwarf32) { + Ok(offset) => { + assert_eq!(rest.len(), 1); + assert_eq!(UnitOffset(0x7856_3412), offset); + } + otherwise => panic!("Unexpected result: {:?}", otherwise), + } + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_type_offset_64_ok() { + let buf = [0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xff, 0x00]; + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_type_offset(rest, Format::Dwarf64) { + Ok(offset) => { + assert_eq!(rest.len(), 1); + assert_eq!(UnitOffset(0xffde_bc9a_7856_3412), offset); + } + otherwise => panic!("Unexpected result: {:?}", otherwise), + } + } + + #[test] + fn test_parse_type_offset_incomplete() { + // Need at least 4 bytes. + let buf = [0xff, 0xff, 0xff]; + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + match parse_type_offset(rest, Format::Dwarf32) { + Err(Error::UnexpectedEof(_)) => assert!(true), + otherwise => panic!("Unexpected result: {:?}", otherwise), + }; + } + + #[test] + fn test_parse_type_unit_header_32_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 8, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Type { + type_signature: DebugTypeSignature(0xdead_beef_dead_beef), + type_offset: UnitOffset(0x7856_3412), + }, + debug_abbrev_offset: DebugAbbrevOffset(0x0807_0605), + unit_offset: DebugTypesOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugTypesOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_type_unit_header_64_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf64, + version: 4, + address_size: 8, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Type { + type_signature: DebugTypeSignature(0xdead_beef_dead_beef), + type_offset: UnitOffset(0x7856_3412_7856_3412), + }, + debug_abbrev_offset: DebugAbbrevOffset(0x0807_0605), + unit_offset: DebugTypesOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugTypesOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_v5_type_unit_header_32_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf32, + version: 5, + address_size: 8, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Type { + type_signature: DebugTypeSignature(0xdead_beef_dead_beef), + type_offset: UnitOffset(0x7856_3412), + }, + debug_abbrev_offset: DebugAbbrevOffset(0x0807_0605), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_v5_type_unit_header_64_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf64, + version: 5, + address_size: 8, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Type { + type_signature: DebugTypeSignature(0xdead_beef_dead_beef), + type_offset: UnitOffset(0x7856_3412_7856_3412), + }, + debug_abbrev_offset: DebugAbbrevOffset(0x0807_0605), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + fn test_parse_v5_split_type_unit_header_32_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf32, + version: 5, + address_size: 8, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::SplitType { + type_signature: DebugTypeSignature(0xdead_beef_dead_beef), + type_offset: UnitOffset(0x7856_3412), + }, + debug_abbrev_offset: DebugAbbrevOffset(0x0807_0605), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_v5_split_type_unit_header_64_ok() { + let expected_rest = &[1, 2, 3, 4, 5, 6, 7, 8, 9]; + let encoding = Encoding { + format: Format::Dwarf64, + version: 5, + address_size: 8, + }; + let mut expected_unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::SplitType { + type_signature: DebugTypeSignature(0xdead_beef_dead_beef), + type_offset: UnitOffset(0x7856_3412_7856_3412), + }, + debug_abbrev_offset: DebugAbbrevOffset(0x0807_0605), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(expected_rest, LittleEndian), + }; + let section = Section::with_endian(Endian::Little) + .unit(&mut expected_unit) + .append_bytes(expected_rest); + let buf = section.get_contents().unwrap(); + let rest = &mut EndianSlice::new(&buf, LittleEndian); + + assert_eq!( + parse_unit_header(rest, DebugInfoOffset(0).into()), + Ok(expected_unit) + ); + assert_eq!(*rest, EndianSlice::new(expected_rest, LittleEndian)); + } + + fn section_contents(f: F) -> Vec + where + F: Fn(Section) -> Section, + { + f(Section::with_endian(Endian::Little)) + .get_contents() + .unwrap() + } + + #[test] + fn test_attribute_value() { + let mut unit = test_parse_attribute_unit_default(); + let endian = unit.entries_buf.endian(); + + let block_data = &[1, 2, 3, 4]; + let buf = section_contents(|s| s.uleb(block_data.len() as u64).append_bytes(block_data)); + let block = EndianSlice::new(&buf, endian); + + let buf = section_contents(|s| s.L32(0x0102_0304)); + let data4 = EndianSlice::new(&buf, endian); + + let buf = section_contents(|s| s.L64(0x0102_0304_0506_0708)); + let data8 = EndianSlice::new(&buf, endian); + + let tests = [ + ( + Format::Dwarf32, + 2, + constants::DW_AT_data_member_location, + constants::DW_FORM_block, + block, + AttributeValue::Block(EndianSlice::new(block_data, endian)), + AttributeValue::Exprloc(Expression(EndianSlice::new(block_data, endian))), + ), + ( + Format::Dwarf32, + 2, + constants::DW_AT_data_member_location, + constants::DW_FORM_data4, + data4, + AttributeValue::SecOffset(0x0102_0304), + AttributeValue::LocationListsRef(LocationListsOffset(0x0102_0304)), + ), + ( + Format::Dwarf64, + 2, + constants::DW_AT_data_member_location, + constants::DW_FORM_data4, + data4, + AttributeValue::Data4(0x0102_0304), + AttributeValue::Udata(0x0102_0304), + ), + ( + Format::Dwarf32, + 4, + constants::DW_AT_data_member_location, + constants::DW_FORM_data4, + data4, + AttributeValue::Data4(0x0102_0304), + AttributeValue::Udata(0x0102_0304), + ), + ( + Format::Dwarf32, + 2, + constants::DW_AT_data_member_location, + constants::DW_FORM_data8, + data8, + AttributeValue::Data8(0x0102_0304_0506_0708), + AttributeValue::Udata(0x0102_0304_0506_0708), + ), + #[cfg(target_pointer_width = "64")] + ( + Format::Dwarf64, + 2, + constants::DW_AT_data_member_location, + constants::DW_FORM_data8, + data8, + AttributeValue::SecOffset(0x0102_0304_0506_0708), + AttributeValue::LocationListsRef(LocationListsOffset(0x0102_0304_0506_0708)), + ), + ( + Format::Dwarf64, + 4, + constants::DW_AT_data_member_location, + constants::DW_FORM_data8, + data8, + AttributeValue::Data8(0x0102_0304_0506_0708), + AttributeValue::Udata(0x0102_0304_0506_0708), + ), + ( + Format::Dwarf32, + 4, + constants::DW_AT_location, + constants::DW_FORM_data4, + data4, + AttributeValue::SecOffset(0x0102_0304), + AttributeValue::LocationListsRef(LocationListsOffset(0x0102_0304)), + ), + #[cfg(target_pointer_width = "64")] + ( + Format::Dwarf64, + 4, + constants::DW_AT_location, + constants::DW_FORM_data8, + data8, + AttributeValue::SecOffset(0x0102_0304_0506_0708), + AttributeValue::LocationListsRef(LocationListsOffset(0x0102_0304_0506_0708)), + ), + ( + Format::Dwarf32, + 4, + constants::DW_AT_str_offsets_base, + constants::DW_FORM_sec_offset, + data4, + AttributeValue::SecOffset(0x0102_0304), + AttributeValue::DebugStrOffsetsBase(DebugStrOffsetsBase(0x0102_0304)), + ), + ( + Format::Dwarf32, + 4, + constants::DW_AT_stmt_list, + constants::DW_FORM_sec_offset, + data4, + AttributeValue::SecOffset(0x0102_0304), + AttributeValue::DebugLineRef(DebugLineOffset(0x0102_0304)), + ), + ( + Format::Dwarf32, + 4, + constants::DW_AT_addr_base, + constants::DW_FORM_sec_offset, + data4, + AttributeValue::SecOffset(0x0102_0304), + AttributeValue::DebugAddrBase(DebugAddrBase(0x0102_0304)), + ), + ( + Format::Dwarf32, + 4, + constants::DW_AT_rnglists_base, + constants::DW_FORM_sec_offset, + data4, + AttributeValue::SecOffset(0x0102_0304), + AttributeValue::DebugRngListsBase(DebugRngListsBase(0x0102_0304)), + ), + ( + Format::Dwarf32, + 4, + constants::DW_AT_loclists_base, + constants::DW_FORM_sec_offset, + data4, + AttributeValue::SecOffset(0x0102_0304), + AttributeValue::DebugLocListsBase(DebugLocListsBase(0x0102_0304)), + ), + ]; + + for test in tests.iter() { + let (format, version, name, form, mut input, expect_raw, expect_value) = *test; + unit.encoding.format = format; + unit.encoding.version = version; + let spec = AttributeSpecification::new(name, form, None); + let attribute = + parse_attribute(&mut input, unit.encoding(), spec).expect("Should parse attribute"); + assert_eq!(attribute.raw_value(), expect_raw); + assert_eq!(attribute.value(), expect_value); + } + } + + #[test] + fn test_attribute_udata_sdata_value() { + let tests: &[( + AttributeValue>, + Option, + Option, + )] = &[ + (AttributeValue::Data1(1), Some(1), Some(1)), + ( + AttributeValue::Data1(core::u8::MAX), + Some(u64::from(std::u8::MAX)), + Some(-1), + ), + (AttributeValue::Data2(1), Some(1), Some(1)), + ( + AttributeValue::Data2(core::u16::MAX), + Some(u64::from(std::u16::MAX)), + Some(-1), + ), + (AttributeValue::Data4(1), Some(1), Some(1)), + ( + AttributeValue::Data4(core::u32::MAX), + Some(u64::from(std::u32::MAX)), + Some(-1), + ), + (AttributeValue::Data8(1), Some(1), Some(1)), + ( + AttributeValue::Data8(core::u64::MAX), + Some(core::u64::MAX), + Some(-1), + ), + (AttributeValue::Sdata(1), Some(1), Some(1)), + (AttributeValue::Sdata(-1), None, Some(-1)), + (AttributeValue::Udata(1), Some(1), Some(1)), + (AttributeValue::Udata(1u64 << 63), Some(1u64 << 63), None), + ]; + for test in tests.iter() { + let (value, expect_udata, expect_sdata) = *test; + let attribute = Attribute { + name: DW_AT_data_member_location, + value, + }; + assert_eq!(attribute.udata_value(), expect_udata); + assert_eq!(attribute.sdata_value(), expect_sdata); + } + } + + fn test_parse_attribute_unit( + address_size: u8, + format: Format, + endian: Endian, + ) -> UnitHeader> + where + Endian: Endianity, + { + let encoding = Encoding { + format, + version: 4, + address_size, + }; + UnitHeader::new( + encoding, + 7, + UnitType::Compilation, + DebugAbbrevOffset(0x0807_0605), + DebugInfoOffset(0).into(), + EndianSlice::new(&[], endian), + ) + } + + fn test_parse_attribute_unit_default() -> UnitHeader> { + test_parse_attribute_unit(4, Format::Dwarf32, LittleEndian) + } + + fn test_parse_attribute<'input, Endian>( + buf: &'input [u8], + len: usize, + unit: &UnitHeader>, + form: constants::DwForm, + value: AttributeValue>, + ) where + Endian: Endianity, + { + let spec = AttributeSpecification::new(constants::DW_AT_low_pc, form, None); + + let expect = Attribute { + name: constants::DW_AT_low_pc, + value, + }; + + let rest = &mut EndianSlice::new(buf, Endian::default()); + match parse_attribute(rest, unit.encoding(), spec) { + Ok(attr) => { + assert_eq!(attr, expect); + assert_eq!(*rest, EndianSlice::new(&buf[len..], Endian::default())); + if let Some(size) = spec.size(unit) { + assert_eq!(rest.len() + size, buf.len()); + } + } + otherwise => { + assert!(false, "Unexpected parse result = {:#?}", otherwise); + } + }; + } + + #[test] + fn test_parse_attribute_addr() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]; + let unit = test_parse_attribute_unit(4, Format::Dwarf32, LittleEndian); + let form = constants::DW_FORM_addr; + let value = AttributeValue::Addr(0x0403_0201); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + fn test_parse_attribute_addr8() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]; + let unit = test_parse_attribute_unit(8, Format::Dwarf32, LittleEndian); + let form = constants::DW_FORM_addr; + let value = AttributeValue::Addr(0x0807_0605_0403_0201); + test_parse_attribute(&buf, 8, &unit, form, value); + } + + #[test] + fn test_parse_attribute_block1() { + // Length of data (3), three bytes of data, two bytes of left over input. + let buf = [0x03, 0x09, 0x09, 0x09, 0x00, 0x00]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_block1; + let value = AttributeValue::Block(EndianSlice::new(&buf[1..4], LittleEndian)); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + fn test_parse_attribute_block2() { + // Two byte length of data (2), two bytes of data, two bytes of left over input. + let buf = [0x02, 0x00, 0x09, 0x09, 0x00, 0x00]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_block2; + let value = AttributeValue::Block(EndianSlice::new(&buf[2..4], LittleEndian)); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + fn test_parse_attribute_block4() { + // Four byte length of data (2), two bytes of data, no left over input. + let buf = [0x02, 0x00, 0x00, 0x00, 0x99, 0x99]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_block4; + let value = AttributeValue::Block(EndianSlice::new(&buf[4..], LittleEndian)); + test_parse_attribute(&buf, 6, &unit, form, value); + } + + #[test] + fn test_parse_attribute_block() { + // LEB length of data (2, one byte), two bytes of data, no left over input. + let buf = [0x02, 0x99, 0x99]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_block; + let value = AttributeValue::Block(EndianSlice::new(&buf[1..], LittleEndian)); + test_parse_attribute(&buf, 3, &unit, form, value); + } + + #[test] + fn test_parse_attribute_data1() { + let buf = [0x03]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_data1; + let value = AttributeValue::Data1(0x03); + test_parse_attribute(&buf, 1, &unit, form, value); + } + + #[test] + fn test_parse_attribute_data2() { + let buf = [0x02, 0x01, 0x0]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_data2; + let value = AttributeValue::Data2(0x0102); + test_parse_attribute(&buf, 2, &unit, form, value); + } + + #[test] + fn test_parse_attribute_data4() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x99, 0x99]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_data4; + let value = AttributeValue::Data4(0x0403_0201); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + fn test_parse_attribute_data8() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_data8; + let value = AttributeValue::Data8(0x0807_0605_0403_0201); + test_parse_attribute(&buf, 8, &unit, form, value); + } + + #[test] + fn test_parse_attribute_udata() { + let mut buf = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + + let bytes_written = { + let mut writable = &mut buf[..]; + leb128::write::unsigned(&mut writable, 4097).expect("should write ok") + }; + + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_udata; + let value = AttributeValue::Udata(4097); + test_parse_attribute(&buf, bytes_written, &unit, form, value); + } + + #[test] + fn test_parse_attribute_sdata() { + let mut buf = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + + let bytes_written = { + let mut writable = &mut buf[..]; + leb128::write::signed(&mut writable, -4097).expect("should write ok") + }; + + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_sdata; + let value = AttributeValue::Sdata(-4097); + test_parse_attribute(&buf, bytes_written, &unit, form, value); + } + + #[test] + fn test_parse_attribute_exprloc() { + // LEB length of data (2, one byte), two bytes of data, one byte left over input. + let buf = [0x02, 0x99, 0x99, 0x11]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_exprloc; + let value = AttributeValue::Exprloc(Expression(EndianSlice::new(&buf[1..3], LittleEndian))); + test_parse_attribute(&buf, 3, &unit, form, value); + } + + #[test] + fn test_parse_attribute_flag_true() { + let buf = [0x42]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_flag; + let value = AttributeValue::Flag(true); + test_parse_attribute(&buf, 1, &unit, form, value); + } + + #[test] + fn test_parse_attribute_flag_false() { + let buf = [0x00]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_flag; + let value = AttributeValue::Flag(false); + test_parse_attribute(&buf, 1, &unit, form, value); + } + + #[test] + fn test_parse_attribute_flag_present() { + let buf = [0x01, 0x02, 0x03, 0x04]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_flag_present; + let value = AttributeValue::Flag(true); + // DW_FORM_flag_present does not consume any bytes of the input stream. + test_parse_attribute(&buf, 0, &unit, form, value); + } + + #[test] + fn test_parse_attribute_sec_offset_32() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10]; + let unit = test_parse_attribute_unit(4, Format::Dwarf32, LittleEndian); + let form = constants::DW_FORM_sec_offset; + let value = AttributeValue::SecOffset(0x0403_0201); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_attribute_sec_offset_64() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_sec_offset; + let value = AttributeValue::SecOffset(0x0807_0605_0403_0201); + test_parse_attribute(&buf, 8, &unit, form, value); + } + + #[test] + fn test_parse_attribute_ref1() { + let buf = [0x03]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_ref1; + let value = AttributeValue::UnitRef(UnitOffset(3)); + test_parse_attribute(&buf, 1, &unit, form, value); + } + + #[test] + fn test_parse_attribute_ref2() { + let buf = [0x02, 0x01, 0x0]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_ref2; + let value = AttributeValue::UnitRef(UnitOffset(258)); + test_parse_attribute(&buf, 2, &unit, form, value); + } + + #[test] + fn test_parse_attribute_ref4() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x99, 0x99]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_ref4; + let value = AttributeValue::UnitRef(UnitOffset(0x0403_0201)); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_attribute_ref8() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_ref8; + let value = AttributeValue::UnitRef(UnitOffset(0x0807_0605_0403_0201)); + test_parse_attribute(&buf, 8, &unit, form, value); + } + + #[test] + fn test_parse_attribute_ref_sup4() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x99, 0x99]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_ref_sup4; + let value = AttributeValue::DebugInfoRefSup(DebugInfoOffset(0x0403_0201)); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_attribute_ref_sup8() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_ref_sup8; + let value = AttributeValue::DebugInfoRefSup(DebugInfoOffset(0x0807_0605_0403_0201)); + test_parse_attribute(&buf, 8, &unit, form, value); + } + + #[test] + fn test_parse_attribute_refudata() { + let mut buf = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + + let bytes_written = { + let mut writable = &mut buf[..]; + leb128::write::unsigned(&mut writable, 4097).expect("should write ok") + }; + + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_ref_udata; + let value = AttributeValue::UnitRef(UnitOffset(4097)); + test_parse_attribute(&buf, bytes_written, &unit, form, value); + } + + #[test] + fn test_parse_attribute_refaddr_32() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf32, LittleEndian); + let form = constants::DW_FORM_ref_addr; + let value = AttributeValue::DebugInfoRef(DebugInfoOffset(0x0403_0201)); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_attribute_refaddr_64() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_ref_addr; + let value = AttributeValue::DebugInfoRef(DebugInfoOffset(0x0807_0605_0403_0201)); + test_parse_attribute(&buf, 8, &unit, form, value); + } + + #[test] + fn test_parse_attribute_refaddr_version2() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let mut unit = test_parse_attribute_unit(4, Format::Dwarf32, LittleEndian); + unit.encoding.version = 2; + let form = constants::DW_FORM_ref_addr; + let value = AttributeValue::DebugInfoRef(DebugInfoOffset(0x0403_0201)); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_attribute_refaddr8_version2() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let mut unit = test_parse_attribute_unit(8, Format::Dwarf32, LittleEndian); + unit.encoding.version = 2; + let form = constants::DW_FORM_ref_addr; + let value = AttributeValue::DebugInfoRef(DebugInfoOffset(0x0807_0605_0403_0201)); + test_parse_attribute(&buf, 8, &unit, form, value); + } + + #[test] + fn test_parse_attribute_gnu_ref_alt_32() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf32, LittleEndian); + let form = constants::DW_FORM_GNU_ref_alt; + let value = AttributeValue::DebugInfoRefSup(DebugInfoOffset(0x0403_0201)); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_attribute_gnu_ref_alt_64() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_GNU_ref_alt; + let value = AttributeValue::DebugInfoRefSup(DebugInfoOffset(0x0807_0605_0403_0201)); + test_parse_attribute(&buf, 8, &unit, form, value); + } + + #[test] + fn test_parse_attribute_refsig8() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_ref_sig8; + let value = AttributeValue::DebugTypesRef(DebugTypeSignature(0x0807_0605_0403_0201)); + test_parse_attribute(&buf, 8, &unit, form, value); + } + + #[test] + fn test_parse_attribute_string() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x0, 0x99, 0x99]; + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_string; + let value = AttributeValue::String(EndianSlice::new(&buf[..5], LittleEndian)); + test_parse_attribute(&buf, 6, &unit, form, value); + } + + #[test] + fn test_parse_attribute_strp_32() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf32, LittleEndian); + let form = constants::DW_FORM_strp; + let value = AttributeValue::DebugStrRef(DebugStrOffset(0x0403_0201)); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_attribute_strp_64() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_strp; + let value = AttributeValue::DebugStrRef(DebugStrOffset(0x0807_0605_0403_0201)); + test_parse_attribute(&buf, 8, &unit, form, value); + } + + #[test] + fn test_parse_attribute_strp_sup_32() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf32, LittleEndian); + let form = constants::DW_FORM_strp_sup; + let value = AttributeValue::DebugStrRefSup(DebugStrOffset(0x0403_0201)); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_attribute_strp_sup_64() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_strp_sup; + let value = AttributeValue::DebugStrRefSup(DebugStrOffset(0x0807_0605_0403_0201)); + test_parse_attribute(&buf, 8, &unit, form, value); + } + + #[test] + fn test_parse_attribute_gnu_strp_alt_32() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf32, LittleEndian); + let form = constants::DW_FORM_GNU_strp_alt; + let value = AttributeValue::DebugStrRefSup(DebugStrOffset(0x0403_0201)); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + #[cfg(target_pointer_width = "64")] + fn test_parse_attribute_gnu_strp_alt_64() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_GNU_strp_alt; + let value = AttributeValue::DebugStrRefSup(DebugStrOffset(0x0807_0605_0403_0201)); + test_parse_attribute(&buf, 8, &unit, form, value); + } + + #[test] + fn test_parse_attribute_strx() { + let mut buf = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + + let bytes_written = { + let mut writable = &mut buf[..]; + leb128::write::unsigned(&mut writable, 4097).expect("should write ok") + }; + + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_strx; + let value = AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(4097)); + test_parse_attribute(&buf, bytes_written, &unit, form, value); + } + + #[test] + fn test_parse_attribute_strx1() { + let buf = [0x01, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_strx1; + let value = AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(0x01)); + test_parse_attribute(&buf, 1, &unit, form, value); + } + + #[test] + fn test_parse_attribute_strx2() { + let buf = [0x01, 0x02, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_strx2; + let value = AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(0x0201)); + test_parse_attribute(&buf, 2, &unit, form, value); + } + + #[test] + fn test_parse_attribute_strx3() { + let buf = [0x01, 0x02, 0x03, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_strx3; + let value = AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(0x03_0201)); + test_parse_attribute(&buf, 3, &unit, form, value); + } + + #[test] + fn test_parse_attribute_strx4() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_strx4; + let value = AttributeValue::DebugStrOffsetsIndex(DebugStrOffsetsIndex(0x0403_0201)); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + fn test_parse_attribute_addrx() { + let mut buf = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + + let bytes_written = { + let mut writable = &mut buf[..]; + leb128::write::unsigned(&mut writable, 4097).expect("should write ok") + }; + + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_addrx; + let value = AttributeValue::DebugAddrIndex(DebugAddrIndex(4097)); + test_parse_attribute(&buf, bytes_written, &unit, form, value); + } + + #[test] + fn test_parse_attribute_addrx1() { + let buf = [0x01, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_addrx1; + let value = AttributeValue::DebugAddrIndex(DebugAddrIndex(0x01)); + test_parse_attribute(&buf, 1, &unit, form, value); + } + + #[test] + fn test_parse_attribute_addrx2() { + let buf = [0x01, 0x02, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_addrx2; + let value = AttributeValue::DebugAddrIndex(DebugAddrIndex(0x0201)); + test_parse_attribute(&buf, 2, &unit, form, value); + } + + #[test] + fn test_parse_attribute_addrx3() { + let buf = [0x01, 0x02, 0x03, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_addrx3; + let value = AttributeValue::DebugAddrIndex(DebugAddrIndex(0x03_0201)); + test_parse_attribute(&buf, 3, &unit, form, value); + } + + #[test] + fn test_parse_attribute_addrx4() { + let buf = [0x01, 0x02, 0x03, 0x04, 0x99, 0x99]; + let unit = test_parse_attribute_unit(4, Format::Dwarf64, LittleEndian); + let form = constants::DW_FORM_addrx4; + let value = AttributeValue::DebugAddrIndex(DebugAddrIndex(0x0403_0201)); + test_parse_attribute(&buf, 4, &unit, form, value); + } + + #[test] + fn test_parse_attribute_loclistx() { + let mut buf = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + + let bytes_written = { + let mut writable = &mut buf[..]; + leb128::write::unsigned(&mut writable, 4097).expect("should write ok") + }; + + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_loclistx; + let value = AttributeValue::DebugLocListsIndex(DebugLocListsIndex(4097)); + test_parse_attribute(&buf, bytes_written, &unit, form, value); + } + + #[test] + fn test_parse_attribute_rnglistx() { + let mut buf = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + + let bytes_written = { + let mut writable = &mut buf[..]; + leb128::write::unsigned(&mut writable, 4097).expect("should write ok") + }; + + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_rnglistx; + let value = AttributeValue::DebugRngListsIndex(DebugRngListsIndex(4097)); + test_parse_attribute(&buf, bytes_written, &unit, form, value); + } + + #[test] + fn test_parse_attribute_indirect() { + let mut buf = [0; 100]; + + let bytes_written = { + let mut writable = &mut buf[..]; + leb128::write::unsigned(&mut writable, constants::DW_FORM_udata.0.into()) + .expect("should write udata") + + leb128::write::unsigned(&mut writable, 9_999_999).expect("should write value") + }; + + let unit = test_parse_attribute_unit_default(); + let form = constants::DW_FORM_indirect; + let value = AttributeValue::Udata(9_999_999); + test_parse_attribute(&buf, bytes_written, &unit, form, value); + } + + #[test] + fn test_parse_attribute_indirect_implicit_const() { + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let mut buf = [0; 100]; + let mut writable = &mut buf[..]; + leb128::write::unsigned(&mut writable, constants::DW_FORM_implicit_const.0.into()) + .expect("should write implicit_const"); + + let input = &mut EndianSlice::new(&buf, LittleEndian); + let spec = + AttributeSpecification::new(constants::DW_AT_low_pc, constants::DW_FORM_indirect, None); + assert_eq!( + parse_attribute(input, encoding, spec), + Err(Error::InvalidImplicitConst) + ); + } + + #[test] + fn test_attrs_iter() { + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let unit = UnitHeader::new( + encoding, + 7, + UnitType::Compilation, + DebugAbbrevOffset(0x0807_0605), + DebugInfoOffset(0).into(), + EndianSlice::new(&[], LittleEndian), + ); + + let abbrev = Abbreviation::new( + 42, + constants::DW_TAG_subprogram, + constants::DW_CHILDREN_yes, + vec![ + AttributeSpecification::new(constants::DW_AT_name, constants::DW_FORM_string, None), + AttributeSpecification::new(constants::DW_AT_low_pc, constants::DW_FORM_addr, None), + AttributeSpecification::new( + constants::DW_AT_high_pc, + constants::DW_FORM_addr, + None, + ), + ] + .into(), + ); + + // "foo", 42, 1337, 4 dangling bytes of 0xaa where children would be + let buf = [ + 0x66, 0x6f, 0x6f, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x39, 0x05, 0x00, 0x00, 0xaa, 0xaa, + 0xaa, 0xaa, + ]; + + let entry = DebuggingInformationEntry { + offset: UnitOffset(0), + attrs_slice: EndianSlice::new(&buf, LittleEndian), + attrs_len: Cell::new(None), + abbrev: &abbrev, + unit: &unit, + }; + + let mut attrs = AttrsIter { + input: EndianSlice::new(&buf, LittleEndian), + attributes: abbrev.attributes(), + entry: &entry, + }; + + match attrs.next() { + Ok(Some(attr)) => { + assert_eq!( + attr, + Attribute { + name: constants::DW_AT_name, + value: AttributeValue::String(EndianSlice::new(b"foo", LittleEndian)), + } + ); + } + otherwise => { + assert!(false, "Unexpected parse result = {:#?}", otherwise); + } + } + + assert!(entry.attrs_len.get().is_none()); + + match attrs.next() { + Ok(Some(attr)) => { + assert_eq!( + attr, + Attribute { + name: constants::DW_AT_low_pc, + value: AttributeValue::Addr(0x2a), + } + ); + } + otherwise => { + assert!(false, "Unexpected parse result = {:#?}", otherwise); + } + } + + assert!(entry.attrs_len.get().is_none()); + + match attrs.next() { + Ok(Some(attr)) => { + assert_eq!( + attr, + Attribute { + name: constants::DW_AT_high_pc, + value: AttributeValue::Addr(0x539), + } + ); + } + otherwise => { + assert!(false, "Unexpected parse result = {:#?}", otherwise); + } + } + + assert!(entry.attrs_len.get().is_none()); + + assert!(attrs.next().expect("should parse next").is_none()); + assert!(entry.attrs_len.get().is_some()); + assert_eq!( + entry.attrs_len.get().expect("should have entry.attrs_len"), + buf.len() - 4 + ) + } + + #[test] + fn test_attrs_iter_incomplete() { + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let unit = UnitHeader::new( + encoding, + 7, + UnitType::Compilation, + DebugAbbrevOffset(0x0807_0605), + DebugInfoOffset(0).into(), + EndianSlice::new(&[], LittleEndian), + ); + + let abbrev = Abbreviation::new( + 42, + constants::DW_TAG_subprogram, + constants::DW_CHILDREN_yes, + vec![ + AttributeSpecification::new(constants::DW_AT_name, constants::DW_FORM_string, None), + AttributeSpecification::new(constants::DW_AT_low_pc, constants::DW_FORM_addr, None), + AttributeSpecification::new( + constants::DW_AT_high_pc, + constants::DW_FORM_addr, + None, + ), + ] + .into(), + ); + + // "foo" + let buf = [0x66, 0x6f, 0x6f, 0x00]; + + let entry = DebuggingInformationEntry { + offset: UnitOffset(0), + attrs_slice: EndianSlice::new(&buf, LittleEndian), + attrs_len: Cell::new(None), + abbrev: &abbrev, + unit: &unit, + }; + + let mut attrs = AttrsIter { + input: EndianSlice::new(&buf, LittleEndian), + attributes: abbrev.attributes(), + entry: &entry, + }; + + match attrs.next() { + Ok(Some(attr)) => { + assert_eq!( + attr, + Attribute { + name: constants::DW_AT_name, + value: AttributeValue::String(EndianSlice::new(b"foo", LittleEndian)), + } + ); + } + otherwise => { + assert!(false, "Unexpected parse result = {:#?}", otherwise); + } + } + + assert!(entry.attrs_len.get().is_none()); + + // Return error for incomplete attribute. + assert!(attrs.next().is_err()); + assert!(entry.attrs_len.get().is_none()); + + // Return error for all subsequent calls. + assert!(attrs.next().is_err()); + assert!(attrs.next().is_err()); + assert!(attrs.next().is_err()); + assert!(attrs.next().is_err()); + assert!(entry.attrs_len.get().is_none()); + } + + fn assert_entry_name(entry: &DebuggingInformationEntry>, name: &str) + where + Endian: Endianity, + { + let value = entry + .attr_value(constants::DW_AT_name) + .expect("Should have parsed the name attribute") + .expect("Should have found the name attribute"); + + assert_eq!( + value, + AttributeValue::String(EndianSlice::new(name.as_bytes(), Endian::default())) + ); + } + + fn assert_current_name(cursor: &EntriesCursor>, name: &str) + where + Endian: Endianity, + { + let entry = cursor.current().expect("Should have an entry result"); + assert_entry_name(entry, name); + } + + fn assert_next_entry(cursor: &mut EntriesCursor>, name: &str) + where + Endian: Endianity, + { + cursor + .next_entry() + .expect("Should parse next entry") + .expect("Should have an entry"); + assert_current_name(cursor, name); + } + + fn assert_next_entry_null(cursor: &mut EntriesCursor>) + where + Endian: Endianity, + { + cursor + .next_entry() + .expect("Should parse next entry") + .expect("Should have an entry"); + assert!(cursor.current().is_none()); + } + + fn assert_next_dfs( + cursor: &mut EntriesCursor>, + name: &str, + depth: isize, + ) where + Endian: Endianity, + { + { + let (val, entry) = cursor + .next_dfs() + .expect("Should parse next dfs") + .expect("Should not be done with traversal"); + assert_eq!(val, depth); + assert_entry_name(entry, name); + } + assert_current_name(cursor, name); + } + + fn assert_next_sibling(cursor: &mut EntriesCursor>, name: &str) + where + Endian: Endianity, + { + { + let entry = cursor + .next_sibling() + .expect("Should parse next sibling") + .expect("Should not be done with traversal"); + assert_entry_name(entry, name); + } + assert_current_name(cursor, name); + } + + fn assert_valid_sibling_ptr(cursor: &EntriesCursor>) + where + Endian: Endianity, + { + let sibling_ptr = cursor + .current() + .expect("Should have current entry") + .attr_value(constants::DW_AT_sibling); + match sibling_ptr { + Ok(Some(AttributeValue::UnitRef(offset))) => { + cursor + .unit + .range_from(offset..) + .expect("Sibling offset should be valid"); + } + _ => panic!("Invalid sibling pointer {:?}", sibling_ptr), + } + } + + fn entries_cursor_tests_abbrev_buf() -> Vec { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + .abbrev(1, DW_TAG_subprogram, DW_CHILDREN_yes) + .abbrev_attr(DW_AT_name, DW_FORM_string) + .abbrev_attr_null() + .abbrev_null(); + section.get_contents().unwrap() + } + + fn entries_cursor_tests_debug_info_buf() -> Vec { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + .die(1, |s| s.attr_string("001")) + .die(1, |s| s.attr_string("002")) + .die(1, |s| s.attr_string("003")) + .die_null() + .die_null() + .die(1, |s| s.attr_string("004")) + .die(1, |s| s.attr_string("005")) + .die_null() + .die(1, |s| s.attr_string("006")) + .die_null() + .die_null() + .die(1, |s| s.attr_string("007")) + .die(1, |s| s.attr_string("008")) + .die(1, |s| s.attr_string("009")) + .die_null() + .die_null() + .die_null() + .die(1, |s| s.attr_string("010")) + .die_null() + .die_null(); + let entries_buf = section.get_contents().unwrap(); + + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let mut unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Compilation, + debug_abbrev_offset: DebugAbbrevOffset(0), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(&entries_buf, LittleEndian), + }; + let section = Section::with_endian(Endian::Little).unit(&mut unit); + section.get_contents().unwrap() + } + + #[test] + fn test_cursor_next_entry_incomplete() { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + .die(1, |s| s.attr_string("001")) + .die(1, |s| s.attr_string("002")) + .die(1, |s| s); + let entries_buf = section.get_contents().unwrap(); + + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let mut unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Compilation, + debug_abbrev_offset: DebugAbbrevOffset(0), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(&entries_buf, LittleEndian), + }; + let section = Section::with_endian(Endian::Little).unit(&mut unit); + let info_buf = §ion.get_contents().unwrap(); + let debug_info = DebugInfo::new(info_buf, LittleEndian); + + let unit = debug_info + .units() + .next() + .expect("should have a unit result") + .expect("and it should be ok"); + + let abbrevs_buf = &entries_cursor_tests_abbrev_buf(); + let debug_abbrev = DebugAbbrev::new(abbrevs_buf, LittleEndian); + + let abbrevs = unit + .abbreviations(&debug_abbrev) + .expect("Should parse abbreviations"); + + let mut cursor = unit.entries(&abbrevs); + + assert_next_entry(&mut cursor, "001"); + assert_next_entry(&mut cursor, "002"); + + { + // Entry code is present, but none of the attributes. + cursor + .next_entry() + .expect("Should parse next entry") + .expect("Should have an entry"); + let entry = cursor.current().expect("Should have an entry result"); + assert!(entry.attrs().next().is_err()); + } + + assert!(cursor.next_entry().is_err()); + assert!(cursor.next_entry().is_err()); + } + + #[test] + fn test_cursor_next_entry() { + let info_buf = &entries_cursor_tests_debug_info_buf(); + let debug_info = DebugInfo::new(info_buf, LittleEndian); + + let unit = debug_info + .units() + .next() + .expect("should have a unit result") + .expect("and it should be ok"); + + let abbrevs_buf = &entries_cursor_tests_abbrev_buf(); + let debug_abbrev = DebugAbbrev::new(abbrevs_buf, LittleEndian); + + let abbrevs = unit + .abbreviations(&debug_abbrev) + .expect("Should parse abbreviations"); + + let mut cursor = unit.entries(&abbrevs); + + assert_next_entry(&mut cursor, "001"); + assert_next_entry(&mut cursor, "002"); + assert_next_entry(&mut cursor, "003"); + assert_next_entry_null(&mut cursor); + assert_next_entry_null(&mut cursor); + assert_next_entry(&mut cursor, "004"); + assert_next_entry(&mut cursor, "005"); + assert_next_entry_null(&mut cursor); + assert_next_entry(&mut cursor, "006"); + assert_next_entry_null(&mut cursor); + assert_next_entry_null(&mut cursor); + assert_next_entry(&mut cursor, "007"); + assert_next_entry(&mut cursor, "008"); + assert_next_entry(&mut cursor, "009"); + assert_next_entry_null(&mut cursor); + assert_next_entry_null(&mut cursor); + assert_next_entry_null(&mut cursor); + assert_next_entry(&mut cursor, "010"); + assert_next_entry_null(&mut cursor); + assert_next_entry_null(&mut cursor); + + assert!(cursor + .next_entry() + .expect("Should parse next entry") + .is_none()); + assert!(cursor.current().is_none()); + } + + #[test] + fn test_cursor_next_dfs() { + let info_buf = &entries_cursor_tests_debug_info_buf(); + let debug_info = DebugInfo::new(info_buf, LittleEndian); + + let unit = debug_info + .units() + .next() + .expect("should have a unit result") + .expect("and it should be ok"); + + let abbrevs_buf = &entries_cursor_tests_abbrev_buf(); + let debug_abbrev = DebugAbbrev::new(abbrevs_buf, LittleEndian); + + let abbrevs = unit + .abbreviations(&debug_abbrev) + .expect("Should parse abbreviations"); + + let mut cursor = unit.entries(&abbrevs); + + assert_next_dfs(&mut cursor, "001", 0); + assert_next_dfs(&mut cursor, "002", 1); + assert_next_dfs(&mut cursor, "003", 1); + assert_next_dfs(&mut cursor, "004", -1); + assert_next_dfs(&mut cursor, "005", 1); + assert_next_dfs(&mut cursor, "006", 0); + assert_next_dfs(&mut cursor, "007", -1); + assert_next_dfs(&mut cursor, "008", 1); + assert_next_dfs(&mut cursor, "009", 1); + assert_next_dfs(&mut cursor, "010", -2); + + assert!(cursor.next_dfs().expect("Should parse next dfs").is_none()); + assert!(cursor.current().is_none()); + } + + #[test] + fn test_cursor_next_sibling_no_sibling_ptr() { + let info_buf = &entries_cursor_tests_debug_info_buf(); + let debug_info = DebugInfo::new(info_buf, LittleEndian); + + let unit = debug_info + .units() + .next() + .expect("should have a unit result") + .expect("and it should be ok"); + + let abbrevs_buf = &entries_cursor_tests_abbrev_buf(); + let debug_abbrev = DebugAbbrev::new(abbrevs_buf, LittleEndian); + + let abbrevs = unit + .abbreviations(&debug_abbrev) + .expect("Should parse abbreviations"); + + let mut cursor = unit.entries(&abbrevs); + + assert_next_dfs(&mut cursor, "001", 0); + + // Down to the first child of the root entry. + + assert_next_dfs(&mut cursor, "002", 1); + + // Now iterate all children of the root via `next_sibling`. + + assert_next_sibling(&mut cursor, "004"); + assert_next_sibling(&mut cursor, "007"); + assert_next_sibling(&mut cursor, "010"); + + // There should be no more siblings. + + assert!(cursor + .next_sibling() + .expect("Should parse next sibling") + .is_none()); + assert!(cursor.current().is_none()); + } + + #[test] + fn test_cursor_next_sibling_continuation() { + let info_buf = &entries_cursor_tests_debug_info_buf(); + let debug_info = DebugInfo::new(info_buf, LittleEndian); + + let unit = debug_info + .units() + .next() + .expect("should have a unit result") + .expect("and it should be ok"); + + let abbrevs_buf = &entries_cursor_tests_abbrev_buf(); + let debug_abbrev = DebugAbbrev::new(abbrevs_buf, LittleEndian); + + let abbrevs = unit + .abbreviations(&debug_abbrev) + .expect("Should parse abbreviations"); + + let mut cursor = unit.entries(&abbrevs); + + assert_next_dfs(&mut cursor, "001", 0); + + // Down to the first child of the root entry. + + assert_next_dfs(&mut cursor, "002", 1); + + // Get the next sibling, then iterate its children + + assert_next_sibling(&mut cursor, "004"); + assert_next_dfs(&mut cursor, "005", 1); + assert_next_sibling(&mut cursor, "006"); + assert!(cursor + .next_sibling() + .expect("Should parse next sibling") + .is_none()); + assert!(cursor + .next_sibling() + .expect("Should parse next sibling") + .is_none()); + assert!(cursor + .next_sibling() + .expect("Should parse next sibling") + .is_none()); + assert!(cursor + .next_sibling() + .expect("Should parse next sibling") + .is_none()); + + // And we should be able to continue with the children of the root entry. + + assert_next_dfs(&mut cursor, "007", -1); + assert_next_sibling(&mut cursor, "010"); + + // There should be no more siblings. + + assert!(cursor + .next_sibling() + .expect("Should parse next sibling") + .is_none()); + assert!(cursor.current().is_none()); + } + + fn entries_cursor_sibling_abbrev_buf() -> Vec { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + .abbrev(1, DW_TAG_subprogram, DW_CHILDREN_yes) + .abbrev_attr(DW_AT_name, DW_FORM_string) + .abbrev_attr(DW_AT_sibling, DW_FORM_ref1) + .abbrev_attr_null() + .abbrev(2, DW_TAG_subprogram, DW_CHILDREN_yes) + .abbrev_attr(DW_AT_name, DW_FORM_string) + .abbrev_attr_null() + .abbrev_null(); + section.get_contents().unwrap() + } + + fn entries_cursor_sibling_entries_buf(header_size: usize) -> Vec { + let start = Label::new(); + let sibling004_ref = Label::new(); + let sibling004 = Label::new(); + let sibling009_ref = Label::new(); + let sibling009 = Label::new(); + + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + .mark(&start) + .die(2, |s| s.attr_string("001")) + // Valid sibling attribute. + .die(1, |s| s.attr_string("002").D8(&sibling004_ref)) + // Invalid code to ensure the sibling attribute was used. + .die(10, |s| s.attr_string("003")) + .die_null() + .die_null() + .mark(&sibling004) + // Invalid sibling attribute. + .die(1, |s| s.attr_string("004").attr_ref1(255)) + .die(2, |s| s.attr_string("005")) + .die_null() + .die_null() + // Sibling attribute in child only. + .die(2, |s| s.attr_string("006")) + // Valid sibling attribute. + .die(1, |s| s.attr_string("007").D8(&sibling009_ref)) + // Invalid code to ensure the sibling attribute was used. + .die(10, |s| s.attr_string("008")) + .die_null() + .die_null() + .mark(&sibling009) + .die(2, |s| s.attr_string("009")) + .die_null() + .die_null() + // No sibling attribute. + .die(2, |s| s.attr_string("010")) + .die(2, |s| s.attr_string("011")) + .die_null() + .die_null() + .die_null(); + + let offset = header_size as u64 + (&sibling004 - &start) as u64; + sibling004_ref.set_const(offset); + + let offset = header_size as u64 + (&sibling009 - &start) as u64; + sibling009_ref.set_const(offset); + + section.get_contents().unwrap() + } + + fn test_cursor_next_sibling_with_ptr(cursor: &mut EntriesCursor>) { + assert_next_dfs(cursor, "001", 0); + + // Down to the first child of the root. + + assert_next_dfs(cursor, "002", 1); + + // Now iterate all children of the root via `next_sibling`. + + assert_valid_sibling_ptr(&cursor); + assert_next_sibling(cursor, "004"); + assert_next_sibling(cursor, "006"); + assert_next_sibling(cursor, "010"); + + // There should be no more siblings. + + assert!(cursor + .next_sibling() + .expect("Should parse next sibling") + .is_none()); + assert!(cursor.current().is_none()); + } + + #[test] + fn test_debug_info_next_sibling_with_ptr() { + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + + let mut unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Compilation, + debug_abbrev_offset: DebugAbbrevOffset(0), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(&[], LittleEndian), + }; + let header_size = unit.size_of_header(); + let entries_buf = entries_cursor_sibling_entries_buf(header_size); + unit.entries_buf = EndianSlice::new(&entries_buf, LittleEndian); + let section = Section::with_endian(Endian::Little).unit(&mut unit); + let info_buf = section.get_contents().unwrap(); + let debug_info = DebugInfo::new(&info_buf, LittleEndian); + + let unit = debug_info + .units() + .next() + .expect("should have a unit result") + .expect("and it should be ok"); + + let abbrev_buf = entries_cursor_sibling_abbrev_buf(); + let debug_abbrev = DebugAbbrev::new(&abbrev_buf, LittleEndian); + + let abbrevs = unit + .abbreviations(&debug_abbrev) + .expect("Should parse abbreviations"); + + let mut cursor = unit.entries(&abbrevs); + test_cursor_next_sibling_with_ptr(&mut cursor); + } + + #[test] + fn test_debug_types_next_sibling_with_ptr() { + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let mut unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Type { + type_signature: DebugTypeSignature(0), + type_offset: UnitOffset(0), + }, + debug_abbrev_offset: DebugAbbrevOffset(0), + unit_offset: DebugTypesOffset(0).into(), + entries_buf: EndianSlice::new(&[], LittleEndian), + }; + let header_size = unit.size_of_header(); + let entries_buf = entries_cursor_sibling_entries_buf(header_size); + unit.entries_buf = EndianSlice::new(&entries_buf, LittleEndian); + let section = Section::with_endian(Endian::Little).unit(&mut unit); + let info_buf = section.get_contents().unwrap(); + let debug_types = DebugTypes::new(&info_buf, LittleEndian); + + let unit = debug_types + .units() + .next() + .expect("should have a unit result") + .expect("and it should be ok"); + + let abbrev_buf = entries_cursor_sibling_abbrev_buf(); + let debug_abbrev = DebugAbbrev::new(&abbrev_buf, LittleEndian); + + let abbrevs = unit + .abbreviations(&debug_abbrev) + .expect("Should parse abbreviations"); + + let mut cursor = unit.entries(&abbrevs); + test_cursor_next_sibling_with_ptr(&mut cursor); + } + + #[test] + fn test_entries_at_offset() { + let info_buf = &entries_cursor_tests_debug_info_buf(); + let debug_info = DebugInfo::new(info_buf, LittleEndian); + + let unit = debug_info + .units() + .next() + .expect("should have a unit result") + .expect("and it should be ok"); + + let abbrevs_buf = &entries_cursor_tests_abbrev_buf(); + let debug_abbrev = DebugAbbrev::new(abbrevs_buf, LittleEndian); + + let abbrevs = unit + .abbreviations(&debug_abbrev) + .expect("Should parse abbreviations"); + + let mut cursor = unit + .entries_at_offset(&abbrevs, UnitOffset(unit.header_size())) + .unwrap(); + assert_next_entry(&mut cursor, "001"); + + let cursor = unit.entries_at_offset(&abbrevs, UnitOffset(0)); + match cursor { + Err(Error::OffsetOutOfBounds) => {} + otherwise => { + assert!(false, "Unexpected parse result = {:#?}", otherwise); + } + } + } + + fn entries_tree_tests_debug_abbrevs_buf() -> Vec { + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + .abbrev(1, DW_TAG_subprogram, DW_CHILDREN_yes) + .abbrev_attr(DW_AT_name, DW_FORM_string) + .abbrev_attr_null() + .abbrev(2, DW_TAG_subprogram, DW_CHILDREN_no) + .abbrev_attr(DW_AT_name, DW_FORM_string) + .abbrev_attr_null() + .abbrev_null() + .get_contents() + .unwrap(); + section + } + + fn entries_tree_tests_debug_info_buf(header_size: usize) -> (Vec, UnitOffset) { + let start = Label::new(); + let entry2 = Label::new(); + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + .mark(&start) + .die(1, |s| s.attr_string("root")) + .die(1, |s| s.attr_string("1")) + .die(1, |s| s.attr_string("1a")) + .die_null() + .die(2, |s| s.attr_string("1b")) + .die_null() + .mark(&entry2) + .die(1, |s| s.attr_string("2")) + .die(1, |s| s.attr_string("2a")) + .die(1, |s| s.attr_string("2a1")) + .die_null() + .die_null() + .die(1, |s| s.attr_string("2b")) + .die(2, |s| s.attr_string("2b1")) + .die_null() + .die_null() + .die(1, |s| s.attr_string("3")) + .die(1, |s| s.attr_string("3a")) + .die(2, |s| s.attr_string("3a1")) + .die(2, |s| s.attr_string("3a2")) + .die_null() + .die(2, |s| s.attr_string("3b")) + .die_null() + .die(2, |s| s.attr_string("final")) + .die_null() + .get_contents() + .unwrap(); + let entry2 = UnitOffset(header_size + (&entry2 - &start) as usize); + (section, entry2) + } + + #[test] + fn test_entries_tree() { + fn assert_entry<'input, 'abbrev, 'unit, 'tree, Endian>( + node: Result< + Option>>, + >, + name: &str, + ) -> EntriesTreeIter<'abbrev, 'unit, 'tree, EndianSlice<'input, Endian>> + where + Endian: Endianity, + { + let node = node + .expect("Should parse entry") + .expect("Should have entry"); + assert_entry_name(node.entry(), name); + node.children() + } + + fn assert_null(node: Result>>>) { + match node { + Ok(None) => {} + otherwise => { + assert!(false, "Unexpected parse result = {:#?}", otherwise); + } + } + } + + let abbrevs_buf = entries_tree_tests_debug_abbrevs_buf(); + let debug_abbrev = DebugAbbrev::new(&abbrevs_buf, LittleEndian); + + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let mut unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Compilation, + debug_abbrev_offset: DebugAbbrevOffset(0), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(&[], LittleEndian), + }; + let header_size = unit.size_of_header(); + let (entries_buf, entry2) = entries_tree_tests_debug_info_buf(header_size); + unit.entries_buf = EndianSlice::new(&entries_buf, LittleEndian); + let info_buf = Section::with_endian(Endian::Little) + .unit(&mut unit) + .get_contents() + .unwrap(); + let debug_info = DebugInfo::new(&info_buf, LittleEndian); + + let unit = debug_info + .units() + .next() + .expect("Should parse unit") + .expect("and it should be some"); + let abbrevs = unit + .abbreviations(&debug_abbrev) + .expect("Should parse abbreviations"); + let mut tree = unit + .entries_tree(&abbrevs, None) + .expect("Should have entries tree"); + + // Test we can restart iteration of the tree. + { + let mut iter = assert_entry(tree.root().map(Some), "root"); + assert_entry(iter.next(), "1"); + } + { + let mut iter = assert_entry(tree.root().map(Some), "root"); + assert_entry(iter.next(), "1"); + } + + let mut iter = assert_entry(tree.root().map(Some), "root"); + { + // Test iteration with children. + let mut iter = assert_entry(iter.next(), "1"); + { + // Test iteration with children flag, but no children. + let mut iter = assert_entry(iter.next(), "1a"); + assert_null(iter.next()); + assert_null(iter.next()); + } + { + // Test iteration without children flag. + let mut iter = assert_entry(iter.next(), "1b"); + assert_null(iter.next()); + assert_null(iter.next()); + } + assert_null(iter.next()); + assert_null(iter.next()); + } + { + // Test skipping over children. + let mut iter = assert_entry(iter.next(), "2"); + assert_entry(iter.next(), "2a"); + assert_entry(iter.next(), "2b"); + assert_null(iter.next()); + } + { + // Test skipping after partial iteration. + let mut iter = assert_entry(iter.next(), "3"); + { + let mut iter = assert_entry(iter.next(), "3a"); + assert_entry(iter.next(), "3a1"); + // Parent iter should be able to skip over "3a2". + } + assert_entry(iter.next(), "3b"); + assert_null(iter.next()); + } + assert_entry(iter.next(), "final"); + assert_null(iter.next()); + + // Test starting at an offset. + let mut tree = unit + .entries_tree(&abbrevs, Some(entry2)) + .expect("Should have entries tree"); + let mut iter = assert_entry(tree.root().map(Some), "2"); + assert_entry(iter.next(), "2a"); + assert_entry(iter.next(), "2b"); + assert_null(iter.next()); + } + + #[test] + fn test_entries_raw() { + fn assert_abbrev<'input, 'abbrev, 'unit, Endian>( + entries: &mut EntriesRaw<'abbrev, 'unit, EndianSlice<'input, Endian>>, + tag: DwTag, + ) -> &'abbrev Abbreviation + where + Endian: Endianity, + { + let abbrev = entries + .read_abbreviation() + .expect("Should parse abbrev") + .expect("Should have abbrev"); + assert_eq!(abbrev.tag(), tag); + abbrev + } + + fn assert_null<'input, 'abbrev, 'unit, Endian>( + entries: &mut EntriesRaw<'abbrev, 'unit, EndianSlice<'input, Endian>>, + ) where + Endian: Endianity, + { + match entries.read_abbreviation() { + Ok(None) => {} + otherwise => { + assert!(false, "Unexpected parse result = {:#?}", otherwise); + } + } + } + + fn assert_attr<'input, 'abbrev, 'unit, Endian>( + entries: &mut EntriesRaw<'abbrev, 'unit, EndianSlice<'input, Endian>>, + spec: Option, + name: DwAt, + value: &str, + ) where + Endian: Endianity, + { + let spec = spec.expect("Should have attribute specification"); + let attr = entries + .read_attribute(spec) + .expect("Should parse attribute"); + assert_eq!(attr.name(), name); + assert_eq!( + attr.value(), + AttributeValue::String(EndianSlice::new(value.as_bytes(), Endian::default())) + ); + } + + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + .abbrev(1, DW_TAG_subprogram, DW_CHILDREN_yes) + .abbrev_attr(DW_AT_name, DW_FORM_string) + .abbrev_attr(DW_AT_linkage_name, DW_FORM_string) + .abbrev_attr_null() + .abbrev(2, DW_TAG_variable, DW_CHILDREN_no) + .abbrev_attr(DW_AT_name, DW_FORM_string) + .abbrev_attr_null() + .abbrev_null(); + let abbrevs_buf = section.get_contents().unwrap(); + let debug_abbrev = DebugAbbrev::new(&abbrevs_buf, LittleEndian); + + #[rustfmt::skip] + let section = Section::with_endian(Endian::Little) + .die(1, |s| s.attr_string("f1").attr_string("l1")) + .die(2, |s| s.attr_string("v1")) + .die(2, |s| s.attr_string("v2")) + .die(1, |s| s.attr_string("f2").attr_string("l2")) + .die_null() + .die_null(); + let entries_buf = section.get_contents().unwrap(); + + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let mut unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Compilation, + debug_abbrev_offset: DebugAbbrevOffset(0), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(&entries_buf, LittleEndian), + }; + let section = Section::with_endian(Endian::Little).unit(&mut unit); + let info_buf = section.get_contents().unwrap(); + let debug_info = DebugInfo::new(&info_buf, LittleEndian); + + let unit = debug_info + .units() + .next() + .expect("should have a unit result") + .expect("and it should be ok"); + + let abbrevs = unit + .abbreviations(&debug_abbrev) + .expect("Should parse abbreviations"); + + let mut entries = unit + .entries_raw(&abbrevs, None) + .expect("Should have entries"); + + assert_eq!(entries.next_depth(), 0); + let abbrev = assert_abbrev(&mut entries, DW_TAG_subprogram); + let mut attrs = abbrev.attributes().iter().copied(); + assert_attr(&mut entries, attrs.next(), DW_AT_name, "f1"); + assert_attr(&mut entries, attrs.next(), DW_AT_linkage_name, "l1"); + assert!(attrs.next().is_none()); + + assert_eq!(entries.next_depth(), 1); + let abbrev = assert_abbrev(&mut entries, DW_TAG_variable); + let mut attrs = abbrev.attributes().iter().copied(); + assert_attr(&mut entries, attrs.next(), DW_AT_name, "v1"); + assert!(attrs.next().is_none()); + + assert_eq!(entries.next_depth(), 1); + let abbrev = assert_abbrev(&mut entries, DW_TAG_variable); + let mut attrs = abbrev.attributes().iter().copied(); + assert_attr(&mut entries, attrs.next(), DW_AT_name, "v2"); + assert!(attrs.next().is_none()); + + assert_eq!(entries.next_depth(), 1); + let abbrev = assert_abbrev(&mut entries, DW_TAG_subprogram); + let mut attrs = abbrev.attributes().iter().copied(); + assert_attr(&mut entries, attrs.next(), DW_AT_name, "f2"); + assert_attr(&mut entries, attrs.next(), DW_AT_linkage_name, "l2"); + assert!(attrs.next().is_none()); + + assert_eq!(entries.next_depth(), 2); + assert_null(&mut entries); + + assert_eq!(entries.next_depth(), 1); + assert_null(&mut entries); + + assert_eq!(entries.next_depth(), 0); + assert!(entries.is_empty()); + } + + #[test] + fn test_debug_info_offset() { + let padding = &[0; 10]; + let entries = &[0; 20]; + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let mut unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Compilation, + debug_abbrev_offset: DebugAbbrevOffset(0), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(entries, LittleEndian), + }; + Section::with_endian(Endian::Little) + .append_bytes(padding) + .unit(&mut unit); + let offset = padding.len(); + let header_length = unit.size_of_header(); + let length = unit.length_including_self(); + assert_eq!(DebugInfoOffset(0).to_unit_offset(&unit), None); + assert_eq!(DebugInfoOffset(offset - 1).to_unit_offset(&unit), None); + assert_eq!(DebugInfoOffset(offset).to_unit_offset(&unit), None); + assert_eq!( + DebugInfoOffset(offset + header_length - 1).to_unit_offset(&unit), + None + ); + assert_eq!( + DebugInfoOffset(offset + header_length).to_unit_offset(&unit), + Some(UnitOffset(header_length)) + ); + assert_eq!( + DebugInfoOffset(offset + length - 1).to_unit_offset(&unit), + Some(UnitOffset(length - 1)) + ); + assert_eq!(DebugInfoOffset(offset + length).to_unit_offset(&unit), None); + assert_eq!( + UnitOffset(header_length).to_debug_info_offset(&unit), + Some(DebugInfoOffset(offset + header_length)) + ); + assert_eq!( + UnitOffset(length - 1).to_debug_info_offset(&unit), + Some(DebugInfoOffset(offset + length - 1)) + ); + } + + #[test] + fn test_debug_types_offset() { + let padding = &[0; 10]; + let entries = &[0; 20]; + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let mut unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Type { + type_signature: DebugTypeSignature(0), + type_offset: UnitOffset(0), + }, + debug_abbrev_offset: DebugAbbrevOffset(0), + unit_offset: DebugTypesOffset(0).into(), + entries_buf: EndianSlice::new(entries, LittleEndian), + }; + Section::with_endian(Endian::Little) + .append_bytes(padding) + .unit(&mut unit); + let offset = padding.len(); + let header_length = unit.size_of_header(); + let length = unit.length_including_self(); + assert_eq!(DebugTypesOffset(0).to_unit_offset(&unit), None); + assert_eq!(DebugTypesOffset(offset - 1).to_unit_offset(&unit), None); + assert_eq!(DebugTypesOffset(offset).to_unit_offset(&unit), None); + assert_eq!( + DebugTypesOffset(offset + header_length - 1).to_unit_offset(&unit), + None + ); + assert_eq!( + DebugTypesOffset(offset + header_length).to_unit_offset(&unit), + Some(UnitOffset(header_length)) + ); + assert_eq!( + DebugTypesOffset(offset + length - 1).to_unit_offset(&unit), + Some(UnitOffset(length - 1)) + ); + assert_eq!( + DebugTypesOffset(offset + length).to_unit_offset(&unit), + None + ); + assert_eq!( + UnitOffset(header_length).to_debug_types_offset(&unit), + Some(DebugTypesOffset(offset + header_length)) + ); + assert_eq!( + UnitOffset(length - 1).to_debug_types_offset(&unit), + Some(DebugTypesOffset(offset + length - 1)) + ); + } + + #[test] + fn test_length_including_self() { + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let mut unit = UnitHeader { + encoding, + unit_length: 0, + unit_type: UnitType::Compilation, + debug_abbrev_offset: DebugAbbrevOffset(0), + unit_offset: DebugInfoOffset(0).into(), + entries_buf: EndianSlice::new(&[], LittleEndian), + }; + unit.encoding.format = Format::Dwarf32; + assert_eq!(unit.length_including_self(), 4); + unit.encoding.format = Format::Dwarf64; + assert_eq!(unit.length_including_self(), 12); + unit.unit_length = 10; + assert_eq!(unit.length_including_self(), 22); + } + + #[test] + fn test_parse_type_unit_abbrevs() { + let types_buf = [ + // Type unit header + 0x25, 0x00, 0x00, 0x00, // 32-bit unit length = 37 + 0x04, 0x00, // Version 4 + 0x00, 0x00, 0x00, 0x00, // debug_abbrev_offset + 0x04, // Address size + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, // Type signature + 0x01, 0x02, 0x03, 0x04, // Type offset + // DIEs + // Abbreviation code + 0x01, // Attribute of form DW_FORM_string = "foo\0" + 0x66, 0x6f, 0x6f, 0x00, // Children + // Abbreviation code + 0x01, // Attribute of form DW_FORM_string = "foo\0" + 0x66, 0x6f, 0x6f, 0x00, // Children + // Abbreviation code + 0x01, // Attribute of form DW_FORM_string = "foo\0" + 0x66, 0x6f, 0x6f, 0x00, // Children + 0x00, // End of children + 0x00, // End of children + 0x00, // End of children + ]; + let debug_types = DebugTypes::new(&types_buf, LittleEndian); + + let abbrev_buf = [ + // Code + 0x01, // DW_TAG_subprogram + 0x2e, // DW_CHILDREN_yes + 0x01, // Begin attributes + 0x03, // Attribute name = DW_AT_name + 0x08, // Attribute form = DW_FORM_string + 0x00, 0x00, // End attributes + 0x00, // Null terminator + ]; + + let get_some_type_unit = || debug_types.units().next().unwrap().unwrap(); + + let unit = get_some_type_unit(); + + let read_debug_abbrev_section_somehow = || &abbrev_buf; + let debug_abbrev = DebugAbbrev::new(read_debug_abbrev_section_somehow(), LittleEndian); + let _abbrevs_for_unit = unit.abbreviations(&debug_abbrev).unwrap(); + } +} diff --git a/src/rust/vendor/gimli/src/read/util.rs b/src/rust/vendor/gimli/src/read/util.rs new file mode 100644 index 000000000..041ca5af9 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/util.rs @@ -0,0 +1,283 @@ +#[cfg(feature = "read")] +use alloc::boxed::Box; +#[cfg(feature = "read")] +use alloc::vec::Vec; +use core::fmt; +use core::mem::MaybeUninit; +use core::ops; +use core::ptr; +use core::slice; + +mod sealed { + /// # Safety + /// Implementer must not modify the content in storage. + pub unsafe trait Sealed { + type Storage; + + fn new_storage() -> Self::Storage; + + fn grow(_storage: &mut Self::Storage, _additional: usize) -> Result<(), CapacityFull> { + Err(CapacityFull) + } + } + + #[derive(Clone, Copy, Debug)] + pub struct CapacityFull; +} + +use sealed::*; + +/// Marker trait for types that can be used as backing storage when a growable array type is needed. +/// +/// This trait is sealed and cannot be implemented for types outside this crate. +pub trait ArrayLike: Sealed { + /// Type of the elements being stored. + type Item; + + #[doc(hidden)] + fn as_slice(storage: &Self::Storage) -> &[MaybeUninit]; + + #[doc(hidden)] + fn as_mut_slice(storage: &mut Self::Storage) -> &mut [MaybeUninit]; +} + +// Use macro since const generics can't be used due to MSRV. +macro_rules! impl_array { + () => {}; + ($n:literal $($rest:tt)*) => { + // SAFETY: does not modify the content in storage. + unsafe impl Sealed for [T; $n] { + type Storage = [MaybeUninit; $n]; + + fn new_storage() -> Self::Storage { + // SAFETY: An uninitialized `[MaybeUninit<_>; _]` is valid. + unsafe { MaybeUninit::uninit().assume_init() } + } + } + + impl ArrayLike for [T; $n] { + type Item = T; + + fn as_slice(storage: &Self::Storage) -> &[MaybeUninit] { + storage + } + + fn as_mut_slice(storage: &mut Self::Storage) -> &mut [MaybeUninit] { + storage + } + } + + impl_array!($($rest)*); + } +} + +#[cfg(feature = "read")] +macro_rules! impl_box { + () => {}; + ($n:literal $($rest:tt)*) => { + // SAFETY: does not modify the content in storage. + unsafe impl Sealed for Box<[T; $n]> { + type Storage = Box<[MaybeUninit; $n]>; + + fn new_storage() -> Self::Storage { + // SAFETY: An uninitialized `[MaybeUninit<_>; _]` is valid. + Box::new(unsafe { MaybeUninit::uninit().assume_init() }) + } + } + + impl ArrayLike for Box<[T; $n]> { + type Item = T; + + fn as_slice(storage: &Self::Storage) -> &[MaybeUninit] { + &storage[..] + } + + fn as_mut_slice(storage: &mut Self::Storage) -> &mut [MaybeUninit] { + &mut storage[..] + } + } + + impl_box!($($rest)*); + } +} + +impl_array!(0 1 2 3 4 8 16 32 64 128 192); +#[cfg(feature = "read")] +impl_box!(0 1 2 3 4 8 16 32 64 128 192); + +#[cfg(feature = "read")] +unsafe impl Sealed for Vec { + type Storage = Box<[MaybeUninit]>; + + fn new_storage() -> Self::Storage { + Box::new([]) + } + + fn grow(storage: &mut Self::Storage, additional: usize) -> Result<(), CapacityFull> { + let mut vec: Vec<_> = core::mem::replace(storage, Box::new([])).into(); + vec.reserve(additional); + // SAFETY: This is a `Vec` of `MaybeUninit`. + unsafe { vec.set_len(vec.capacity()) }; + *storage = vec.into_boxed_slice(); + Ok(()) + } +} + +#[cfg(feature = "read")] +impl ArrayLike for Vec { + type Item = T; + + fn as_slice(storage: &Self::Storage) -> &[MaybeUninit] { + storage + } + + fn as_mut_slice(storage: &mut Self::Storage) -> &mut [MaybeUninit] { + storage + } +} + +pub(crate) struct ArrayVec { + storage: A::Storage, + len: usize, +} + +impl ArrayVec { + pub fn new() -> Self { + Self { + storage: A::new_storage(), + len: 0, + } + } + + pub fn clear(&mut self) { + let ptr: *mut [A::Item] = &mut **self; + // Set length first so the type invariant is upheld even if `drop_in_place` panicks. + self.len = 0; + // SAFETY: `ptr` contains valid elements only and we "forget" them by setting the length. + unsafe { ptr::drop_in_place(ptr) }; + } + + pub fn try_push(&mut self, value: A::Item) -> Result<(), CapacityFull> { + let mut storage = A::as_mut_slice(&mut self.storage); + if self.len >= storage.len() { + A::grow(&mut self.storage, 1)?; + storage = A::as_mut_slice(&mut self.storage); + } + + storage[self.len] = MaybeUninit::new(value); + self.len += 1; + Ok(()) + } + + pub fn try_insert(&mut self, index: usize, element: A::Item) -> Result<(), CapacityFull> { + assert!(index <= self.len); + + let mut storage = A::as_mut_slice(&mut self.storage); + if self.len >= storage.len() { + A::grow(&mut self.storage, 1)?; + storage = A::as_mut_slice(&mut self.storage); + } + + // SAFETY: storage[index] is filled later. + unsafe { + let p = storage.as_mut_ptr().add(index); + core::ptr::copy(p as *const _, p.add(1), self.len - index); + } + storage[index] = MaybeUninit::new(element); + self.len += 1; + Ok(()) + } + + pub fn pop(&mut self) -> Option { + if self.len == 0 { + None + } else { + self.len -= 1; + // SAFETY: this element is valid and we "forget" it by setting the length. + Some(unsafe { A::as_slice(&self.storage)[self.len].as_ptr().read() }) + } + } + + pub fn swap_remove(&mut self, index: usize) -> A::Item { + assert!(self.len > 0); + A::as_mut_slice(&mut self.storage).swap(index, self.len - 1); + self.pop().unwrap() + } +} + +#[cfg(feature = "read")] +impl ArrayVec> { + pub fn into_vec(mut self) -> Vec { + let len = core::mem::replace(&mut self.len, 0); + let storage = core::mem::replace(&mut self.storage, Box::new([])); + let slice = Box::leak(storage); + debug_assert!(len <= slice.len()); + // SAFETY: valid elements. + unsafe { Vec::from_raw_parts(slice.as_mut_ptr() as *mut T, len, slice.len()) } + } +} + +impl Drop for ArrayVec { + fn drop(&mut self) { + self.clear(); + } +} + +impl Default for ArrayVec { + fn default() -> Self { + Self::new() + } +} + +impl ops::Deref for ArrayVec { + type Target = [A::Item]; + + fn deref(&self) -> &[A::Item] { + let slice = &A::as_slice(&self.storage); + debug_assert!(self.len <= slice.len()); + // SAFETY: valid elements. + unsafe { slice::from_raw_parts(slice.as_ptr() as _, self.len) } + } +} + +impl ops::DerefMut for ArrayVec { + fn deref_mut(&mut self) -> &mut [A::Item] { + let slice = &mut A::as_mut_slice(&mut self.storage); + debug_assert!(self.len <= slice.len()); + // SAFETY: valid elements. + unsafe { slice::from_raw_parts_mut(slice.as_mut_ptr() as _, self.len) } + } +} + +impl Clone for ArrayVec +where + A::Item: Clone, +{ + fn clone(&self) -> Self { + let mut new = Self::default(); + for value in &**self { + new.try_push(value.clone()).unwrap(); + } + new + } +} + +impl PartialEq for ArrayVec +where + A::Item: PartialEq, +{ + fn eq(&self, other: &Self) -> bool { + **self == **other + } +} + +impl Eq for ArrayVec where A::Item: Eq {} + +impl fmt::Debug for ArrayVec +where + A::Item: fmt::Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt::Debug::fmt(&**self, f) + } +} diff --git a/src/rust/vendor/gimli/src/read/value.rs b/src/rust/vendor/gimli/src/read/value.rs new file mode 100644 index 000000000..77b08eda5 --- /dev/null +++ b/src/rust/vendor/gimli/src/read/value.rs @@ -0,0 +1,1621 @@ +//! Definitions for values used in DWARF expressions. + +use crate::constants; +#[cfg(feature = "read")] +use crate::read::{AttributeValue, DebuggingInformationEntry}; +use crate::read::{Error, Reader, Result}; + +/// Convert a u64 to an i64, with sign extension if required. +/// +/// This is primarily used when needing to treat `Value::Generic` +/// as a signed value. +#[inline] +fn sign_extend(value: u64, mask: u64) -> i64 { + let value = (value & mask) as i64; + let sign = ((mask >> 1) + 1) as i64; + (value ^ sign).wrapping_sub(sign) +} + +#[inline] +fn mask_bit_size(addr_mask: u64) -> u32 { + 64 - addr_mask.leading_zeros() +} + +/// The type of an entry on the DWARF stack. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum ValueType { + /// The generic type, which is address-sized and of unspecified sign, + /// as specified in the DWARF 5 standard, section 2.5.1. + /// This type is also used to represent address base types. + Generic, + /// Signed 8-bit integer type. + I8, + /// Unsigned 8-bit integer type. + U8, + /// Signed 16-bit integer type. + I16, + /// Unsigned 16-bit integer type. + U16, + /// Signed 32-bit integer type. + I32, + /// Unsigned 32-bit integer type. + U32, + /// Signed 64-bit integer type. + I64, + /// Unsigned 64-bit integer type. + U64, + /// 32-bit floating point type. + F32, + /// 64-bit floating point type. + F64, +} + +/// The value of an entry on the DWARF stack. +#[derive(Debug, Clone, Copy, PartialEq)] +pub enum Value { + /// A generic value, which is address-sized and of unspecified sign. + Generic(u64), + /// A signed 8-bit integer value. + I8(i8), + /// An unsigned 8-bit integer value. + U8(u8), + /// A signed 16-bit integer value. + I16(i16), + /// An unsigned 16-bit integer value. + U16(u16), + /// A signed 32-bit integer value. + I32(i32), + /// An unsigned 32-bit integer value. + U32(u32), + /// A signed 64-bit integer value. + I64(i64), + /// An unsigned 64-bit integer value. + U64(u64), + /// A 32-bit floating point value. + F32(f32), + /// A 64-bit floating point value. + F64(f64), +} + +impl ValueType { + /// The size in bits of a value for this type. + pub fn bit_size(self, addr_mask: u64) -> u32 { + match self { + ValueType::Generic => mask_bit_size(addr_mask), + ValueType::I8 | ValueType::U8 => 8, + ValueType::I16 | ValueType::U16 => 16, + ValueType::I32 | ValueType::U32 | ValueType::F32 => 32, + ValueType::I64 | ValueType::U64 | ValueType::F64 => 64, + } + } + + /// Construct a `ValueType` from the attributes of a base type DIE. + pub fn from_encoding(encoding: constants::DwAte, byte_size: u64) -> Option { + Some(match (encoding, byte_size) { + (constants::DW_ATE_signed, 1) => ValueType::I8, + (constants::DW_ATE_signed, 2) => ValueType::I16, + (constants::DW_ATE_signed, 4) => ValueType::I32, + (constants::DW_ATE_signed, 8) => ValueType::I64, + (constants::DW_ATE_unsigned, 1) => ValueType::U8, + (constants::DW_ATE_unsigned, 2) => ValueType::U16, + (constants::DW_ATE_unsigned, 4) => ValueType::U32, + (constants::DW_ATE_unsigned, 8) => ValueType::U64, + (constants::DW_ATE_float, 4) => ValueType::F32, + (constants::DW_ATE_float, 8) => ValueType::F64, + _ => return None, + }) + } + + /// Construct a `ValueType` from a base type DIE. + #[cfg(feature = "read")] + pub fn from_entry( + entry: &DebuggingInformationEntry, + ) -> Result> { + if entry.tag() != constants::DW_TAG_base_type { + return Ok(None); + } + let mut encoding = None; + let mut byte_size = None; + let mut endianity = constants::DW_END_default; + let mut attrs = entry.attrs(); + while let Some(attr) = attrs.next()? { + match attr.name() { + constants::DW_AT_byte_size => byte_size = attr.udata_value(), + constants::DW_AT_encoding => { + if let AttributeValue::Encoding(x) = attr.value() { + encoding = Some(x); + } + } + constants::DW_AT_endianity => { + if let AttributeValue::Endianity(x) = attr.value() { + endianity = x; + } + } + _ => {} + } + } + + if endianity != constants::DW_END_default { + // TODO: we could check if it matches the reader endianity, + // but normally it would use DW_END_default in that case. + return Ok(None); + } + + if let (Some(encoding), Some(byte_size)) = (encoding, byte_size) { + Ok(ValueType::from_encoding(encoding, byte_size)) + } else { + Ok(None) + } + } +} + +impl Value { + /// Return the `ValueType` corresponding to this `Value`. + pub fn value_type(&self) -> ValueType { + match *self { + Value::Generic(_) => ValueType::Generic, + Value::I8(_) => ValueType::I8, + Value::U8(_) => ValueType::U8, + Value::I16(_) => ValueType::I16, + Value::U16(_) => ValueType::U16, + Value::I32(_) => ValueType::I32, + Value::U32(_) => ValueType::U32, + Value::I64(_) => ValueType::I64, + Value::U64(_) => ValueType::U64, + Value::F32(_) => ValueType::F32, + Value::F64(_) => ValueType::F64, + } + } + + /// Read a `Value` with the given `value_type` from a `Reader`. + pub fn parse(value_type: ValueType, mut bytes: R) -> Result { + let value = match value_type { + ValueType::I8 => Value::I8(bytes.read_i8()?), + ValueType::U8 => Value::U8(bytes.read_u8()?), + ValueType::I16 => Value::I16(bytes.read_i16()?), + ValueType::U16 => Value::U16(bytes.read_u16()?), + ValueType::I32 => Value::I32(bytes.read_i32()?), + ValueType::U32 => Value::U32(bytes.read_u32()?), + ValueType::I64 => Value::I64(bytes.read_i64()?), + ValueType::U64 => Value::U64(bytes.read_u64()?), + ValueType::F32 => Value::F32(bytes.read_f32()?), + ValueType::F64 => Value::F64(bytes.read_f64()?), + _ => return Err(Error::UnsupportedTypeOperation), + }; + Ok(value) + } + + /// Convert a `Value` to a `u64`. + /// + /// The `ValueType` of `self` must be integral. + /// Values are sign extended if the source value is signed. + pub fn to_u64(self, addr_mask: u64) -> Result { + let value = match self { + Value::Generic(value) => value & addr_mask, + Value::I8(value) => value as u64, + Value::U8(value) => u64::from(value), + Value::I16(value) => value as u64, + Value::U16(value) => u64::from(value), + Value::I32(value) => value as u64, + Value::U32(value) => u64::from(value), + Value::I64(value) => value as u64, + Value::U64(value) => value as u64, + _ => return Err(Error::IntegralTypeRequired), + }; + Ok(value) + } + + /// Create a `Value` with the given `value_type` from a `u64` value. + /// + /// The `value_type` may be integral or floating point. + /// The result is truncated if the `u64` value does + /// not fit the bounds of the `value_type`. + pub fn from_u64(value_type: ValueType, value: u64) -> Result { + let value = match value_type { + ValueType::Generic => Value::Generic(value), + ValueType::I8 => Value::I8(value as i8), + ValueType::U8 => Value::U8(value as u8), + ValueType::I16 => Value::I16(value as i16), + ValueType::U16 => Value::U16(value as u16), + ValueType::I32 => Value::I32(value as i32), + ValueType::U32 => Value::U32(value as u32), + ValueType::I64 => Value::I64(value as i64), + ValueType::U64 => Value::U64(value), + ValueType::F32 => Value::F32(value as f32), + ValueType::F64 => Value::F64(value as f64), + }; + Ok(value) + } + + /// Create a `Value` with the given `value_type` from a `f32` value. + /// + /// The `value_type` may be integral or floating point. + /// The result is not defined if the `f32` value does + /// not fit the bounds of the `value_type`. + fn from_f32(value_type: ValueType, value: f32) -> Result { + let value = match value_type { + ValueType::Generic => Value::Generic(value as u64), + ValueType::I8 => Value::I8(value as i8), + ValueType::U8 => Value::U8(value as u8), + ValueType::I16 => Value::I16(value as i16), + ValueType::U16 => Value::U16(value as u16), + ValueType::I32 => Value::I32(value as i32), + ValueType::U32 => Value::U32(value as u32), + ValueType::I64 => Value::I64(value as i64), + ValueType::U64 => Value::U64(value as u64), + ValueType::F32 => Value::F32(value), + ValueType::F64 => Value::F64(f64::from(value)), + }; + Ok(value) + } + + /// Create a `Value` with the given `value_type` from a `f64` value. + /// + /// The `value_type` may be integral or floating point. + /// The result is not defined if the `f64` value does + /// not fit the bounds of the `value_type`. + fn from_f64(value_type: ValueType, value: f64) -> Result { + let value = match value_type { + ValueType::Generic => Value::Generic(value as u64), + ValueType::I8 => Value::I8(value as i8), + ValueType::U8 => Value::U8(value as u8), + ValueType::I16 => Value::I16(value as i16), + ValueType::U16 => Value::U16(value as u16), + ValueType::I32 => Value::I32(value as i32), + ValueType::U32 => Value::U32(value as u32), + ValueType::I64 => Value::I64(value as i64), + ValueType::U64 => Value::U64(value as u64), + ValueType::F32 => Value::F32(value as f32), + ValueType::F64 => Value::F64(value), + }; + Ok(value) + } + + /// Convert a `Value` to the given `value_type`. + /// + /// When converting between integral types, the result is truncated + /// if the source value does not fit the bounds of the `value_type`. + /// When converting from floating point types, the result is not defined + /// if the source value does not fit the bounds of the `value_type`. + /// + /// This corresponds to the DWARF `DW_OP_convert` operation. + pub fn convert(self, value_type: ValueType, addr_mask: u64) -> Result { + match self { + Value::F32(value) => Value::from_f32(value_type, value), + Value::F64(value) => Value::from_f64(value_type, value), + _ => Value::from_u64(value_type, self.to_u64(addr_mask)?), + } + } + + /// Reinterpret the bits in a `Value` as the given `value_type`. + /// + /// The source and result value types must have equal sizes. + /// + /// This corresponds to the DWARF `DW_OP_reinterpret` operation. + pub fn reinterpret(self, value_type: ValueType, addr_mask: u64) -> Result { + if self.value_type().bit_size(addr_mask) != value_type.bit_size(addr_mask) { + return Err(Error::TypeMismatch); + } + let bits = match self { + Value::Generic(value) => value, + Value::I8(value) => value as u64, + Value::U8(value) => u64::from(value), + Value::I16(value) => value as u64, + Value::U16(value) => u64::from(value), + Value::I32(value) => value as u64, + Value::U32(value) => u64::from(value), + Value::I64(value) => value as u64, + Value::U64(value) => value, + Value::F32(value) => u64::from(f32::to_bits(value)), + Value::F64(value) => f64::to_bits(value), + }; + let value = match value_type { + ValueType::Generic => Value::Generic(bits), + ValueType::I8 => Value::I8(bits as i8), + ValueType::U8 => Value::U8(bits as u8), + ValueType::I16 => Value::I16(bits as i16), + ValueType::U16 => Value::U16(bits as u16), + ValueType::I32 => Value::I32(bits as i32), + ValueType::U32 => Value::U32(bits as u32), + ValueType::I64 => Value::I64(bits as i64), + ValueType::U64 => Value::U64(bits), + ValueType::F32 => Value::F32(f32::from_bits(bits as u32)), + ValueType::F64 => Value::F64(f64::from_bits(bits)), + }; + Ok(value) + } + + /// Perform an absolute value operation. + /// + /// If the value type is `Generic`, then it is interpreted as a signed value. + /// + /// This corresponds to the DWARF `DW_OP_abs` operation. + pub fn abs(self, addr_mask: u64) -> Result { + // wrapping_abs() can be used because DWARF specifies that the result is undefined + // for negative minimal values. + let value = match self { + Value::Generic(value) => { + Value::Generic(sign_extend(value, addr_mask).wrapping_abs() as u64) + } + Value::I8(value) => Value::I8(value.wrapping_abs()), + Value::I16(value) => Value::I16(value.wrapping_abs()), + Value::I32(value) => Value::I32(value.wrapping_abs()), + Value::I64(value) => Value::I64(value.wrapping_abs()), + // f32/f64::abs() is not available in libcore + Value::F32(value) => Value::F32(if value < 0. { -value } else { value }), + Value::F64(value) => Value::F64(if value < 0. { -value } else { value }), + Value::U8(_) | Value::U16(_) | Value::U32(_) | Value::U64(_) => self, + }; + Ok(value) + } + + /// Perform a negation operation. + /// + /// If the value type is `Generic`, then it is interpreted as a signed value. + /// + /// This corresponds to the DWARF `DW_OP_neg` operation. + pub fn neg(self, addr_mask: u64) -> Result { + // wrapping_neg() can be used because DWARF specifies that the result is undefined + // for negative minimal values. + let value = match self { + Value::Generic(value) => { + Value::Generic(sign_extend(value, addr_mask).wrapping_neg() as u64) + } + Value::I8(value) => Value::I8(value.wrapping_neg()), + Value::I16(value) => Value::I16(value.wrapping_neg()), + Value::I32(value) => Value::I32(value.wrapping_neg()), + Value::I64(value) => Value::I64(value.wrapping_neg()), + Value::F32(value) => Value::F32(-value), + Value::F64(value) => Value::F64(-value), + // It's unclear if these should implicitly convert to a signed value. + // For now, we don't support them. + Value::U8(_) | Value::U16(_) | Value::U32(_) | Value::U64(_) => { + return Err(Error::UnsupportedTypeOperation); + } + }; + Ok(value) + } + + /// Perform an addition operation. + /// + /// This operation requires matching types. + /// + /// This corresponds to the DWARF `DW_OP_plus` operation. + pub fn add(self, rhs: Value, addr_mask: u64) -> Result { + let value = match (self, rhs) { + (Value::Generic(v1), Value::Generic(v2)) => { + Value::Generic(v1.wrapping_add(v2) & addr_mask) + } + (Value::I8(v1), Value::I8(v2)) => Value::I8(v1.wrapping_add(v2)), + (Value::U8(v1), Value::U8(v2)) => Value::U8(v1.wrapping_add(v2)), + (Value::I16(v1), Value::I16(v2)) => Value::I16(v1.wrapping_add(v2)), + (Value::U16(v1), Value::U16(v2)) => Value::U16(v1.wrapping_add(v2)), + (Value::I32(v1), Value::I32(v2)) => Value::I32(v1.wrapping_add(v2)), + (Value::U32(v1), Value::U32(v2)) => Value::U32(v1.wrapping_add(v2)), + (Value::I64(v1), Value::I64(v2)) => Value::I64(v1.wrapping_add(v2)), + (Value::U64(v1), Value::U64(v2)) => Value::U64(v1.wrapping_add(v2)), + (Value::F32(v1), Value::F32(v2)) => Value::F32(v1 + v2), + (Value::F64(v1), Value::F64(v2)) => Value::F64(v1 + v2), + _ => return Err(Error::TypeMismatch), + }; + Ok(value) + } + + /// Perform a subtraction operation. + /// + /// This operation requires matching types. + /// + /// This corresponds to the DWARF `DW_OP_minus` operation. + pub fn sub(self, rhs: Value, addr_mask: u64) -> Result { + let value = match (self, rhs) { + (Value::Generic(v1), Value::Generic(v2)) => { + Value::Generic(v1.wrapping_sub(v2) & addr_mask) + } + (Value::I8(v1), Value::I8(v2)) => Value::I8(v1.wrapping_sub(v2)), + (Value::U8(v1), Value::U8(v2)) => Value::U8(v1.wrapping_sub(v2)), + (Value::I16(v1), Value::I16(v2)) => Value::I16(v1.wrapping_sub(v2)), + (Value::U16(v1), Value::U16(v2)) => Value::U16(v1.wrapping_sub(v2)), + (Value::I32(v1), Value::I32(v2)) => Value::I32(v1.wrapping_sub(v2)), + (Value::U32(v1), Value::U32(v2)) => Value::U32(v1.wrapping_sub(v2)), + (Value::I64(v1), Value::I64(v2)) => Value::I64(v1.wrapping_sub(v2)), + (Value::U64(v1), Value::U64(v2)) => Value::U64(v1.wrapping_sub(v2)), + (Value::F32(v1), Value::F32(v2)) => Value::F32(v1 - v2), + (Value::F64(v1), Value::F64(v2)) => Value::F64(v1 - v2), + _ => return Err(Error::TypeMismatch), + }; + Ok(value) + } + + /// Perform a multiplication operation. + /// + /// This operation requires matching types. + /// + /// This corresponds to the DWARF `DW_OP_mul` operation. + pub fn mul(self, rhs: Value, addr_mask: u64) -> Result { + let value = match (self, rhs) { + (Value::Generic(v1), Value::Generic(v2)) => { + Value::Generic(v1.wrapping_mul(v2) & addr_mask) + } + (Value::I8(v1), Value::I8(v2)) => Value::I8(v1.wrapping_mul(v2)), + (Value::U8(v1), Value::U8(v2)) => Value::U8(v1.wrapping_mul(v2)), + (Value::I16(v1), Value::I16(v2)) => Value::I16(v1.wrapping_mul(v2)), + (Value::U16(v1), Value::U16(v2)) => Value::U16(v1.wrapping_mul(v2)), + (Value::I32(v1), Value::I32(v2)) => Value::I32(v1.wrapping_mul(v2)), + (Value::U32(v1), Value::U32(v2)) => Value::U32(v1.wrapping_mul(v2)), + (Value::I64(v1), Value::I64(v2)) => Value::I64(v1.wrapping_mul(v2)), + (Value::U64(v1), Value::U64(v2)) => Value::U64(v1.wrapping_mul(v2)), + (Value::F32(v1), Value::F32(v2)) => Value::F32(v1 * v2), + (Value::F64(v1), Value::F64(v2)) => Value::F64(v1 * v2), + _ => return Err(Error::TypeMismatch), + }; + Ok(value) + } + + /// Perform a division operation. + /// + /// This operation requires matching types. + /// If the value type is `Generic`, then it is interpreted as a signed value. + /// + /// This corresponds to the DWARF `DW_OP_div` operation. + pub fn div(self, rhs: Value, addr_mask: u64) -> Result { + match rhs { + Value::Generic(v2) if sign_extend(v2, addr_mask) == 0 => { + return Err(Error::DivisionByZero); + } + Value::I8(0) + | Value::U8(0) + | Value::I16(0) + | Value::U16(0) + | Value::I32(0) + | Value::U32(0) + | Value::I64(0) + | Value::U64(0) => { + return Err(Error::DivisionByZero); + } + _ => {} + } + let value = match (self, rhs) { + (Value::Generic(v1), Value::Generic(v2)) => { + // Signed division + Value::Generic( + sign_extend(v1, addr_mask).wrapping_div(sign_extend(v2, addr_mask)) as u64, + ) + } + (Value::I8(v1), Value::I8(v2)) => Value::I8(v1.wrapping_div(v2)), + (Value::U8(v1), Value::U8(v2)) => Value::U8(v1.wrapping_div(v2)), + (Value::I16(v1), Value::I16(v2)) => Value::I16(v1.wrapping_div(v2)), + (Value::U16(v1), Value::U16(v2)) => Value::U16(v1.wrapping_div(v2)), + (Value::I32(v1), Value::I32(v2)) => Value::I32(v1.wrapping_div(v2)), + (Value::U32(v1), Value::U32(v2)) => Value::U32(v1.wrapping_div(v2)), + (Value::I64(v1), Value::I64(v2)) => Value::I64(v1.wrapping_div(v2)), + (Value::U64(v1), Value::U64(v2)) => Value::U64(v1.wrapping_div(v2)), + (Value::F32(v1), Value::F32(v2)) => Value::F32(v1 / v2), + (Value::F64(v1), Value::F64(v2)) => Value::F64(v1 / v2), + _ => return Err(Error::TypeMismatch), + }; + Ok(value) + } + + /// Perform a remainder operation. + /// + /// This operation requires matching integral types. + /// If the value type is `Generic`, then it is interpreted as an unsigned value. + /// + /// This corresponds to the DWARF `DW_OP_mod` operation. + pub fn rem(self, rhs: Value, addr_mask: u64) -> Result { + match rhs { + Value::Generic(rhs) if (rhs & addr_mask) == 0 => { + return Err(Error::DivisionByZero); + } + Value::I8(0) + | Value::U8(0) + | Value::I16(0) + | Value::U16(0) + | Value::I32(0) + | Value::U32(0) + | Value::I64(0) + | Value::U64(0) => { + return Err(Error::DivisionByZero); + } + _ => {} + } + let value = match (self, rhs) { + (Value::Generic(v1), Value::Generic(v2)) => { + // Unsigned modulus + Value::Generic((v1 & addr_mask).wrapping_rem(v2 & addr_mask)) + } + (Value::I8(v1), Value::I8(v2)) => Value::I8(v1.wrapping_rem(v2)), + (Value::U8(v1), Value::U8(v2)) => Value::U8(v1.wrapping_rem(v2)), + (Value::I16(v1), Value::I16(v2)) => Value::I16(v1.wrapping_rem(v2)), + (Value::U16(v1), Value::U16(v2)) => Value::U16(v1.wrapping_rem(v2)), + (Value::I32(v1), Value::I32(v2)) => Value::I32(v1.wrapping_rem(v2)), + (Value::U32(v1), Value::U32(v2)) => Value::U32(v1.wrapping_rem(v2)), + (Value::I64(v1), Value::I64(v2)) => Value::I64(v1.wrapping_rem(v2)), + (Value::U64(v1), Value::U64(v2)) => Value::U64(v1.wrapping_rem(v2)), + (Value::F32(_), Value::F32(_)) => return Err(Error::IntegralTypeRequired), + (Value::F64(_), Value::F64(_)) => return Err(Error::IntegralTypeRequired), + _ => return Err(Error::TypeMismatch), + }; + Ok(value) + } + + /// Perform a bitwise not operation. + /// + /// This operation requires matching integral types. + /// + /// This corresponds to the DWARF `DW_OP_not` operation. + pub fn not(self, addr_mask: u64) -> Result { + let value_type = self.value_type(); + let v = self.to_u64(addr_mask)?; + Value::from_u64(value_type, !v) + } + + /// Perform a bitwise and operation. + /// + /// This operation requires matching integral types. + /// + /// This corresponds to the DWARF `DW_OP_and` operation. + pub fn and(self, rhs: Value, addr_mask: u64) -> Result { + let value_type = self.value_type(); + if value_type != rhs.value_type() { + return Err(Error::TypeMismatch); + } + let v1 = self.to_u64(addr_mask)?; + let v2 = rhs.to_u64(addr_mask)?; + Value::from_u64(value_type, v1 & v2) + } + + /// Perform a bitwise or operation. + /// + /// This operation requires matching integral types. + /// + /// This corresponds to the DWARF `DW_OP_or` operation. + pub fn or(self, rhs: Value, addr_mask: u64) -> Result { + let value_type = self.value_type(); + if value_type != rhs.value_type() { + return Err(Error::TypeMismatch); + } + let v1 = self.to_u64(addr_mask)?; + let v2 = rhs.to_u64(addr_mask)?; + Value::from_u64(value_type, v1 | v2) + } + + /// Perform a bitwise exclusive-or operation. + /// + /// This operation requires matching integral types. + /// + /// This corresponds to the DWARF `DW_OP_xor` operation. + pub fn xor(self, rhs: Value, addr_mask: u64) -> Result { + let value_type = self.value_type(); + if value_type != rhs.value_type() { + return Err(Error::TypeMismatch); + } + let v1 = self.to_u64(addr_mask)?; + let v2 = rhs.to_u64(addr_mask)?; + Value::from_u64(value_type, v1 ^ v2) + } + + /// Convert value to bit length suitable for a shift operation. + /// + /// If the value is negative then an error is returned. + fn shift_length(self) -> Result { + let value = match self { + Value::Generic(value) => value, + Value::I8(value) if value >= 0 => value as u64, + Value::U8(value) => u64::from(value), + Value::I16(value) if value >= 0 => value as u64, + Value::U16(value) => u64::from(value), + Value::I32(value) if value >= 0 => value as u64, + Value::U32(value) => u64::from(value), + Value::I64(value) if value >= 0 => value as u64, + Value::U64(value) => value, + _ => return Err(Error::InvalidShiftExpression), + }; + Ok(value) + } + + /// Perform a shift left operation. + /// + /// This operation requires integral types. + /// If the shift length exceeds the type size, then 0 is returned. + /// If the shift length is negative then an error is returned. + /// + /// This corresponds to the DWARF `DW_OP_shl` operation. + pub fn shl(self, rhs: Value, addr_mask: u64) -> Result { + let v2 = rhs.shift_length()?; + let value = match self { + Value::Generic(v1) => Value::Generic(if v2 >= u64::from(mask_bit_size(addr_mask)) { + 0 + } else { + (v1 & addr_mask) << v2 + }), + Value::I8(v1) => Value::I8(if v2 >= 8 { 0 } else { v1 << v2 }), + Value::U8(v1) => Value::U8(if v2 >= 8 { 0 } else { v1 << v2 }), + Value::I16(v1) => Value::I16(if v2 >= 16 { 0 } else { v1 << v2 }), + Value::U16(v1) => Value::U16(if v2 >= 16 { 0 } else { v1 << v2 }), + Value::I32(v1) => Value::I32(if v2 >= 32 { 0 } else { v1 << v2 }), + Value::U32(v1) => Value::U32(if v2 >= 32 { 0 } else { v1 << v2 }), + Value::I64(v1) => Value::I64(if v2 >= 64 { 0 } else { v1 << v2 }), + Value::U64(v1) => Value::U64(if v2 >= 64 { 0 } else { v1 << v2 }), + _ => return Err(Error::IntegralTypeRequired), + }; + Ok(value) + } + + /// Perform a logical shift right operation. + /// + /// This operation requires an unsigned integral type for the value. + /// If the value type is `Generic`, then it is interpreted as an unsigned value. + /// + /// This operation requires an integral type for the shift length. + /// If the shift length exceeds the type size, then 0 is returned. + /// If the shift length is negative then an error is returned. + /// + /// This corresponds to the DWARF `DW_OP_shr` operation. + pub fn shr(self, rhs: Value, addr_mask: u64) -> Result { + let v2 = rhs.shift_length()?; + let value = match self { + Value::Generic(v1) => Value::Generic(if v2 >= u64::from(mask_bit_size(addr_mask)) { + 0 + } else { + (v1 & addr_mask) >> v2 + }), + Value::U8(v1) => Value::U8(if v2 >= 8 { 0 } else { v1 >> v2 }), + Value::U16(v1) => Value::U16(if v2 >= 16 { 0 } else { v1 >> v2 }), + Value::U32(v1) => Value::U32(if v2 >= 32 { 0 } else { v1 >> v2 }), + Value::U64(v1) => Value::U64(if v2 >= 64 { 0 } else { v1 >> v2 }), + // It's unclear if signed values should implicitly convert to an unsigned value. + // For now, we don't support them. + Value::I8(_) | Value::I16(_) | Value::I32(_) | Value::I64(_) => { + return Err(Error::UnsupportedTypeOperation); + } + _ => return Err(Error::IntegralTypeRequired), + }; + Ok(value) + } + + /// Perform an arithmetic shift right operation. + /// + /// This operation requires a signed integral type for the value. + /// If the value type is `Generic`, then it is interpreted as a signed value. + /// + /// This operation requires an integral type for the shift length. + /// If the shift length exceeds the type size, then 0 is returned for positive values, + /// and -1 is returned for negative values. + /// If the shift length is negative then an error is returned. + /// + /// This corresponds to the DWARF `DW_OP_shra` operation. + pub fn shra(self, rhs: Value, addr_mask: u64) -> Result { + let v2 = rhs.shift_length()?; + let value = match self { + Value::Generic(v1) => { + let v1 = sign_extend(v1, addr_mask); + let value = if v2 >= u64::from(mask_bit_size(addr_mask)) { + if v1 < 0 { + !0 + } else { + 0 + } + } else { + (v1 >> v2) as u64 + }; + Value::Generic(value) + } + Value::I8(v1) => Value::I8(if v2 >= 8 { + if v1 < 0 { + !0 + } else { + 0 + } + } else { + v1 >> v2 + }), + Value::I16(v1) => Value::I16(if v2 >= 16 { + if v1 < 0 { + !0 + } else { + 0 + } + } else { + v1 >> v2 + }), + Value::I32(v1) => Value::I32(if v2 >= 32 { + if v1 < 0 { + !0 + } else { + 0 + } + } else { + v1 >> v2 + }), + Value::I64(v1) => Value::I64(if v2 >= 64 { + if v1 < 0 { + !0 + } else { + 0 + } + } else { + v1 >> v2 + }), + // It's unclear if unsigned values should implicitly convert to a signed value. + // For now, we don't support them. + Value::U8(_) | Value::U16(_) | Value::U32(_) | Value::U64(_) => { + return Err(Error::UnsupportedTypeOperation); + } + _ => return Err(Error::IntegralTypeRequired), + }; + Ok(value) + } + + /// Perform the `==` relational operation. + /// + /// This operation requires matching integral types. + /// If the value type is `Generic`, then it is interpreted as a signed value. + /// + /// This corresponds to the DWARF `DW_OP_eq` operation. + pub fn eq(self, rhs: Value, addr_mask: u64) -> Result { + let value = match (self, rhs) { + (Value::Generic(v1), Value::Generic(v2)) => { + sign_extend(v1, addr_mask) == sign_extend(v2, addr_mask) + } + (Value::I8(v1), Value::I8(v2)) => v1 == v2, + (Value::U8(v1), Value::U8(v2)) => v1 == v2, + (Value::I16(v1), Value::I16(v2)) => v1 == v2, + (Value::U16(v1), Value::U16(v2)) => v1 == v2, + (Value::I32(v1), Value::I32(v2)) => v1 == v2, + (Value::U32(v1), Value::U32(v2)) => v1 == v2, + (Value::I64(v1), Value::I64(v2)) => v1 == v2, + (Value::U64(v1), Value::U64(v2)) => v1 == v2, + (Value::F32(v1), Value::F32(v2)) => v1 == v2, + (Value::F64(v1), Value::F64(v2)) => v1 == v2, + _ => return Err(Error::TypeMismatch), + }; + Ok(Value::Generic(value as u64)) + } + + /// Perform the `>=` relational operation. + /// + /// This operation requires matching integral types. + /// If the value type is `Generic`, then it is interpreted as a signed value. + /// + /// This corresponds to the DWARF `DW_OP_ge` operation. + pub fn ge(self, rhs: Value, addr_mask: u64) -> Result { + let value = match (self, rhs) { + (Value::Generic(v1), Value::Generic(v2)) => { + sign_extend(v1, addr_mask) >= sign_extend(v2, addr_mask) + } + (Value::I8(v1), Value::I8(v2)) => v1 >= v2, + (Value::U8(v1), Value::U8(v2)) => v1 >= v2, + (Value::I16(v1), Value::I16(v2)) => v1 >= v2, + (Value::U16(v1), Value::U16(v2)) => v1 >= v2, + (Value::I32(v1), Value::I32(v2)) => v1 >= v2, + (Value::U32(v1), Value::U32(v2)) => v1 >= v2, + (Value::I64(v1), Value::I64(v2)) => v1 >= v2, + (Value::U64(v1), Value::U64(v2)) => v1 >= v2, + (Value::F32(v1), Value::F32(v2)) => v1 >= v2, + (Value::F64(v1), Value::F64(v2)) => v1 >= v2, + _ => return Err(Error::TypeMismatch), + }; + Ok(Value::Generic(value as u64)) + } + + /// Perform the `>` relational operation. + /// + /// This operation requires matching integral types. + /// If the value type is `Generic`, then it is interpreted as a signed value. + /// + /// This corresponds to the DWARF `DW_OP_gt` operation. + pub fn gt(self, rhs: Value, addr_mask: u64) -> Result { + let value = match (self, rhs) { + (Value::Generic(v1), Value::Generic(v2)) => { + sign_extend(v1, addr_mask) > sign_extend(v2, addr_mask) + } + (Value::I8(v1), Value::I8(v2)) => v1 > v2, + (Value::U8(v1), Value::U8(v2)) => v1 > v2, + (Value::I16(v1), Value::I16(v2)) => v1 > v2, + (Value::U16(v1), Value::U16(v2)) => v1 > v2, + (Value::I32(v1), Value::I32(v2)) => v1 > v2, + (Value::U32(v1), Value::U32(v2)) => v1 > v2, + (Value::I64(v1), Value::I64(v2)) => v1 > v2, + (Value::U64(v1), Value::U64(v2)) => v1 > v2, + (Value::F32(v1), Value::F32(v2)) => v1 > v2, + (Value::F64(v1), Value::F64(v2)) => v1 > v2, + _ => return Err(Error::TypeMismatch), + }; + Ok(Value::Generic(value as u64)) + } + + /// Perform the `<= relational operation. + /// + /// This operation requires matching integral types. + /// If the value type is `Generic`, then it is interpreted as a signed value. + /// + /// This corresponds to the DWARF `DW_OP_le` operation. + pub fn le(self, rhs: Value, addr_mask: u64) -> Result { + let value = match (self, rhs) { + (Value::Generic(v1), Value::Generic(v2)) => { + sign_extend(v1, addr_mask) <= sign_extend(v2, addr_mask) + } + (Value::I8(v1), Value::I8(v2)) => v1 <= v2, + (Value::U8(v1), Value::U8(v2)) => v1 <= v2, + (Value::I16(v1), Value::I16(v2)) => v1 <= v2, + (Value::U16(v1), Value::U16(v2)) => v1 <= v2, + (Value::I32(v1), Value::I32(v2)) => v1 <= v2, + (Value::U32(v1), Value::U32(v2)) => v1 <= v2, + (Value::I64(v1), Value::I64(v2)) => v1 <= v2, + (Value::U64(v1), Value::U64(v2)) => v1 <= v2, + (Value::F32(v1), Value::F32(v2)) => v1 <= v2, + (Value::F64(v1), Value::F64(v2)) => v1 <= v2, + _ => return Err(Error::TypeMismatch), + }; + Ok(Value::Generic(value as u64)) + } + + /// Perform the `< relational operation. + /// + /// This operation requires matching integral types. + /// If the value type is `Generic`, then it is interpreted as a signed value. + /// + /// This corresponds to the DWARF `DW_OP_lt` operation. + pub fn lt(self, rhs: Value, addr_mask: u64) -> Result { + let value = match (self, rhs) { + (Value::Generic(v1), Value::Generic(v2)) => { + sign_extend(v1, addr_mask) < sign_extend(v2, addr_mask) + } + (Value::I8(v1), Value::I8(v2)) => v1 < v2, + (Value::U8(v1), Value::U8(v2)) => v1 < v2, + (Value::I16(v1), Value::I16(v2)) => v1 < v2, + (Value::U16(v1), Value::U16(v2)) => v1 < v2, + (Value::I32(v1), Value::I32(v2)) => v1 < v2, + (Value::U32(v1), Value::U32(v2)) => v1 < v2, + (Value::I64(v1), Value::I64(v2)) => v1 < v2, + (Value::U64(v1), Value::U64(v2)) => v1 < v2, + (Value::F32(v1), Value::F32(v2)) => v1 < v2, + (Value::F64(v1), Value::F64(v2)) => v1 < v2, + _ => return Err(Error::TypeMismatch), + }; + Ok(Value::Generic(value as u64)) + } + + /// Perform the `!= relational operation. + /// + /// This operation requires matching integral types. + /// If the value type is `Generic`, then it is interpreted as a signed value. + /// + /// This corresponds to the DWARF `DW_OP_ne` operation. + pub fn ne(self, rhs: Value, addr_mask: u64) -> Result { + let value = match (self, rhs) { + (Value::Generic(v1), Value::Generic(v2)) => { + sign_extend(v1, addr_mask) != sign_extend(v2, addr_mask) + } + (Value::I8(v1), Value::I8(v2)) => v1 != v2, + (Value::U8(v1), Value::U8(v2)) => v1 != v2, + (Value::I16(v1), Value::I16(v2)) => v1 != v2, + (Value::U16(v1), Value::U16(v2)) => v1 != v2, + (Value::I32(v1), Value::I32(v2)) => v1 != v2, + (Value::U32(v1), Value::U32(v2)) => v1 != v2, + (Value::I64(v1), Value::I64(v2)) => v1 != v2, + (Value::U64(v1), Value::U64(v2)) => v1 != v2, + (Value::F32(v1), Value::F32(v2)) => v1 != v2, + (Value::F64(v1), Value::F64(v2)) => v1 != v2, + _ => return Err(Error::TypeMismatch), + }; + Ok(Value::Generic(value as u64)) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::common::{DebugAbbrevOffset, DebugInfoOffset, Encoding, Format}; + use crate::endianity::LittleEndian; + use crate::read::{ + Abbreviation, AttributeSpecification, DebuggingInformationEntry, EndianSlice, UnitHeader, + UnitOffset, UnitType, + }; + + #[test] + #[rustfmt::skip] + fn valuetype_from_encoding() { + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 4, + }; + let unit = UnitHeader::new( + encoding, + 7, + UnitType::Compilation, + DebugAbbrevOffset(0), + DebugInfoOffset(0).into(), + EndianSlice::new(&[], LittleEndian), + ); + + let abbrev = Abbreviation::new( + 42, + constants::DW_TAG_base_type, + constants::DW_CHILDREN_no, + vec![ + AttributeSpecification::new( + constants::DW_AT_byte_size, + constants::DW_FORM_udata, + None, + ), + AttributeSpecification::new( + constants::DW_AT_encoding, + constants::DW_FORM_udata, + None, + ), + AttributeSpecification::new( + constants::DW_AT_endianity, + constants::DW_FORM_udata, + None, + ), + ].into(), + ); + + for &(attrs, result) in &[ + ([0x01, constants::DW_ATE_signed.0, constants::DW_END_default.0], ValueType::I8), + ([0x02, constants::DW_ATE_signed.0, constants::DW_END_default.0], ValueType::I16), + ([0x04, constants::DW_ATE_signed.0, constants::DW_END_default.0], ValueType::I32), + ([0x08, constants::DW_ATE_signed.0, constants::DW_END_default.0], ValueType::I64), + ([0x01, constants::DW_ATE_unsigned.0, constants::DW_END_default.0], ValueType::U8), + ([0x02, constants::DW_ATE_unsigned.0, constants::DW_END_default.0], ValueType::U16), + ([0x04, constants::DW_ATE_unsigned.0, constants::DW_END_default.0], ValueType::U32), + ([0x08, constants::DW_ATE_unsigned.0, constants::DW_END_default.0], ValueType::U64), + ([0x04, constants::DW_ATE_float.0, constants::DW_END_default.0], ValueType::F32), + ([0x08, constants::DW_ATE_float.0, constants::DW_END_default.0], ValueType::F64), + ] { + let entry = DebuggingInformationEntry::new( + UnitOffset(0), + EndianSlice::new(&attrs, LittleEndian), + &abbrev, + &unit, + ); + assert_eq!(ValueType::from_entry(&entry), Ok(Some(result))); + } + + for attrs in &[ + [0x03, constants::DW_ATE_signed.0, constants::DW_END_default.0], + [0x02, constants::DW_ATE_signed.0, constants::DW_END_big.0], + ] { + let entry = DebuggingInformationEntry::new( + UnitOffset(0), + EndianSlice::new(attrs, LittleEndian), + &abbrev, + &unit, + ); + assert_eq!(ValueType::from_entry(&entry), Ok(None)); + } + } + + #[test] + fn value_convert() { + let addr_mask = !0 >> 32; + for &(v, t, result) in &[ + (Value::Generic(1), ValueType::I8, Ok(Value::I8(1))), + (Value::I8(1), ValueType::U8, Ok(Value::U8(1))), + (Value::U8(1), ValueType::I16, Ok(Value::I16(1))), + (Value::I16(1), ValueType::U16, Ok(Value::U16(1))), + (Value::U16(1), ValueType::I32, Ok(Value::I32(1))), + (Value::I32(1), ValueType::U32, Ok(Value::U32(1))), + (Value::U32(1), ValueType::F32, Ok(Value::F32(1.))), + (Value::F32(1.), ValueType::I64, Ok(Value::I64(1))), + (Value::I64(1), ValueType::U64, Ok(Value::U64(1))), + (Value::U64(1), ValueType::F64, Ok(Value::F64(1.))), + (Value::F64(1.), ValueType::Generic, Ok(Value::Generic(1))), + ] { + assert_eq!(v.convert(t, addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_reinterpret() { + let addr_mask = !0 >> 32; + for &(v, t, result) in &[ + // 8-bit + (Value::I8(-1), ValueType::U8, Ok(Value::U8(0xff))), + (Value::U8(0xff), ValueType::I8, Ok(Value::I8(-1))), + // 16-bit + (Value::I16(1), ValueType::U16, Ok(Value::U16(1))), + (Value::U16(1), ValueType::I16, Ok(Value::I16(1))), + // 32-bit + (Value::Generic(1), ValueType::I32, Ok(Value::I32(1))), + (Value::I32(1), ValueType::U32, Ok(Value::U32(1))), + (Value::U32(0x3f80_0000), ValueType::F32, Ok(Value::F32(1.0))), + (Value::F32(1.0), ValueType::Generic, Ok(Value::Generic(0x3f80_0000))), + // Type mismatches + (Value::Generic(1), ValueType::U8, Err(Error::TypeMismatch)), + (Value::U8(1), ValueType::U16, Err(Error::TypeMismatch)), + (Value::U16(1), ValueType::U32, Err(Error::TypeMismatch)), + (Value::U32(1), ValueType::U64, Err(Error::TypeMismatch)), + (Value::U64(1), ValueType::Generic, Err(Error::TypeMismatch)), + ] { + assert_eq!(v.reinterpret(t, addr_mask), result); + } + + let addr_mask = !0; + for &(v, t, result) in &[ + // 64-bit + (Value::Generic(1), ValueType::I64, Ok(Value::I64(1))), + (Value::I64(1), ValueType::U64, Ok(Value::U64(1))), + (Value::U64(0x3ff0_0000_0000_0000), ValueType::F64, Ok(Value::F64(1.0))), + (Value::F64(1.0), ValueType::Generic, Ok(Value::Generic(0x3ff0_0000_0000_0000))), + ] { + assert_eq!(v.reinterpret(t, addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_abs() { + let addr_mask = 0xffff_ffff; + for &(v, result) in &[ + (Value::Generic(0xffff_ffff), Ok(Value::Generic(1))), + (Value::I8(-1), Ok(Value::I8(1))), + (Value::U8(1), Ok(Value::U8(1))), + (Value::I16(-1), Ok(Value::I16(1))), + (Value::U16(1), Ok(Value::U16(1))), + (Value::I32(-1), Ok(Value::I32(1))), + (Value::U32(1), Ok(Value::U32(1))), + (Value::I64(-1), Ok(Value::I64(1))), + (Value::U64(1), Ok(Value::U64(1))), + (Value::F32(-1.), Ok(Value::F32(1.))), + (Value::F64(-1.), Ok(Value::F64(1.))), + ] { + assert_eq!(v.abs(addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_neg() { + let addr_mask = 0xffff_ffff; + for &(v, result) in &[ + (Value::Generic(0xffff_ffff), Ok(Value::Generic(1))), + (Value::I8(1), Ok(Value::I8(-1))), + (Value::U8(1), Err(Error::UnsupportedTypeOperation)), + (Value::I16(1), Ok(Value::I16(-1))), + (Value::U16(1), Err(Error::UnsupportedTypeOperation)), + (Value::I32(1), Ok(Value::I32(-1))), + (Value::U32(1), Err(Error::UnsupportedTypeOperation)), + (Value::I64(1), Ok(Value::I64(-1))), + (Value::U64(1), Err(Error::UnsupportedTypeOperation)), + (Value::F32(1.), Ok(Value::F32(-1.))), + (Value::F64(1.), Ok(Value::F64(-1.))), + ] { + assert_eq!(v.neg(addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_add() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(1), Value::Generic(2), Ok(Value::Generic(3))), + (Value::I8(-1), Value::I8(2), Ok(Value::I8(1))), + (Value::U8(1), Value::U8(2), Ok(Value::U8(3))), + (Value::I16(-1), Value::I16(2), Ok(Value::I16(1))), + (Value::U16(1), Value::U16(2), Ok(Value::U16(3))), + (Value::I32(-1), Value::I32(2), Ok(Value::I32(1))), + (Value::U32(1), Value::U32(2), Ok(Value::U32(3))), + (Value::I64(-1), Value::I64(2), Ok(Value::I64(1))), + (Value::U64(1), Value::U64(2), Ok(Value::U64(3))), + (Value::F32(-1.), Value::F32(2.), Ok(Value::F32(1.))), + (Value::F64(-1.), Value::F64(2.), Ok(Value::F64(1.))), + (Value::Generic(1), Value::U32(2), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.add(v2, addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_sub() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(3), Value::Generic(2), Ok(Value::Generic(1))), + (Value::I8(-1), Value::I8(2), Ok(Value::I8(-3))), + (Value::U8(3), Value::U8(2), Ok(Value::U8(1))), + (Value::I16(-1), Value::I16(2), Ok(Value::I16(-3))), + (Value::U16(3), Value::U16(2), Ok(Value::U16(1))), + (Value::I32(-1), Value::I32(2), Ok(Value::I32(-3))), + (Value::U32(3), Value::U32(2), Ok(Value::U32(1))), + (Value::I64(-1), Value::I64(2), Ok(Value::I64(-3))), + (Value::U64(3), Value::U64(2), Ok(Value::U64(1))), + (Value::F32(-1.), Value::F32(2.), Ok(Value::F32(-3.))), + (Value::F64(-1.), Value::F64(2.), Ok(Value::F64(-3.))), + (Value::Generic(3), Value::U32(2), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.sub(v2, addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_mul() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(2), Value::Generic(3), Ok(Value::Generic(6))), + (Value::I8(-2), Value::I8(3), Ok(Value::I8(-6))), + (Value::U8(2), Value::U8(3), Ok(Value::U8(6))), + (Value::I16(-2), Value::I16(3), Ok(Value::I16(-6))), + (Value::U16(2), Value::U16(3), Ok(Value::U16(6))), + (Value::I32(-2), Value::I32(3), Ok(Value::I32(-6))), + (Value::U32(2), Value::U32(3), Ok(Value::U32(6))), + (Value::I64(-2), Value::I64(3), Ok(Value::I64(-6))), + (Value::U64(2), Value::U64(3), Ok(Value::U64(6))), + (Value::F32(-2.), Value::F32(3.), Ok(Value::F32(-6.))), + (Value::F64(-2.), Value::F64(3.), Ok(Value::F64(-6.))), + (Value::Generic(2), Value::U32(3), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.mul(v2, addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_div() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(6), Value::Generic(3), Ok(Value::Generic(2))), + (Value::I8(-6), Value::I8(3), Ok(Value::I8(-2))), + (Value::U8(6), Value::U8(3), Ok(Value::U8(2))), + (Value::I16(-6), Value::I16(3), Ok(Value::I16(-2))), + (Value::U16(6), Value::U16(3), Ok(Value::U16(2))), + (Value::I32(-6), Value::I32(3), Ok(Value::I32(-2))), + (Value::U32(6), Value::U32(3), Ok(Value::U32(2))), + (Value::I64(-6), Value::I64(3), Ok(Value::I64(-2))), + (Value::U64(6), Value::U64(3), Ok(Value::U64(2))), + (Value::F32(-6.), Value::F32(3.), Ok(Value::F32(-2.))), + (Value::F64(-6.), Value::F64(3.), Ok(Value::F64(-2.))), + (Value::Generic(6), Value::U32(3), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.div(v2, addr_mask), result); + } + for &(v1, v2, result) in &[ + (Value::Generic(6), Value::Generic(0), Err(Error::DivisionByZero)), + (Value::I8(-6), Value::I8(0), Err(Error::DivisionByZero)), + (Value::U8(6), Value::U8(0), Err(Error::DivisionByZero)), + (Value::I16(-6), Value::I16(0), Err(Error::DivisionByZero)), + (Value::U16(6), Value::U16(0), Err(Error::DivisionByZero)), + (Value::I32(-6), Value::I32(0), Err(Error::DivisionByZero)), + (Value::U32(6), Value::U32(0), Err(Error::DivisionByZero)), + (Value::I64(-6), Value::I64(0), Err(Error::DivisionByZero)), + (Value::U64(6), Value::U64(0), Err(Error::DivisionByZero)), + (Value::F32(-6.), Value::F32(0.), Ok(Value::F32(-6. / 0.))), + (Value::F64(-6.), Value::F64(0.), Ok(Value::F64(-6. / 0.))), + ] { + assert_eq!(v1.div(v2, addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_rem() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(3), Value::Generic(2), Ok(Value::Generic(1))), + (Value::I8(-3), Value::I8(2), Ok(Value::I8(-1))), + (Value::U8(3), Value::U8(2), Ok(Value::U8(1))), + (Value::I16(-3), Value::I16(2), Ok(Value::I16(-1))), + (Value::U16(3), Value::U16(2), Ok(Value::U16(1))), + (Value::I32(-3), Value::I32(2), Ok(Value::I32(-1))), + (Value::U32(3), Value::U32(2), Ok(Value::U32(1))), + (Value::I64(-3), Value::I64(2), Ok(Value::I64(-1))), + (Value::U64(3), Value::U64(2), Ok(Value::U64(1))), + (Value::F32(-3.), Value::F32(2.), Err(Error::IntegralTypeRequired)), + (Value::F64(-3.), Value::F64(2.), Err(Error::IntegralTypeRequired)), + (Value::Generic(3), Value::U32(2), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.rem(v2, addr_mask), result); + } + for &(v1, v2, result) in &[ + (Value::Generic(3), Value::Generic(0), Err(Error::DivisionByZero)), + (Value::I8(-3), Value::I8(0), Err(Error::DivisionByZero)), + (Value::U8(3), Value::U8(0), Err(Error::DivisionByZero)), + (Value::I16(-3), Value::I16(0), Err(Error::DivisionByZero)), + (Value::U16(3), Value::U16(0), Err(Error::DivisionByZero)), + (Value::I32(-3), Value::I32(0), Err(Error::DivisionByZero)), + (Value::U32(3), Value::U32(0), Err(Error::DivisionByZero)), + (Value::I64(-3), Value::I64(0), Err(Error::DivisionByZero)), + (Value::U64(3), Value::U64(0), Err(Error::DivisionByZero)), + ] { + assert_eq!(v1.rem(v2, addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_not() { + let addr_mask = 0xffff_ffff; + for &(v, result) in &[ + (Value::Generic(1), Ok(Value::Generic(!1))), + (Value::I8(1), Ok(Value::I8(!1))), + (Value::U8(1), Ok(Value::U8(!1))), + (Value::I16(1), Ok(Value::I16(!1))), + (Value::U16(1), Ok(Value::U16(!1))), + (Value::I32(1), Ok(Value::I32(!1))), + (Value::U32(1), Ok(Value::U32(!1))), + (Value::I64(1), Ok(Value::I64(!1))), + (Value::U64(1), Ok(Value::U64(!1))), + (Value::F32(1.), Err(Error::IntegralTypeRequired)), + (Value::F64(1.), Err(Error::IntegralTypeRequired)), + ] { + assert_eq!(v.not(addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_and() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(3), Value::Generic(5), Ok(Value::Generic(1))), + (Value::I8(3), Value::I8(5), Ok(Value::I8(1))), + (Value::U8(3), Value::U8(5), Ok(Value::U8(1))), + (Value::I16(3), Value::I16(5), Ok(Value::I16(1))), + (Value::U16(3), Value::U16(5), Ok(Value::U16(1))), + (Value::I32(3), Value::I32(5), Ok(Value::I32(1))), + (Value::U32(3), Value::U32(5), Ok(Value::U32(1))), + (Value::I64(3), Value::I64(5), Ok(Value::I64(1))), + (Value::U64(3), Value::U64(5), Ok(Value::U64(1))), + (Value::F32(3.), Value::F32(5.), Err(Error::IntegralTypeRequired)), + (Value::F64(3.), Value::F64(5.), Err(Error::IntegralTypeRequired)), + (Value::Generic(3), Value::U32(5), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.and(v2, addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_or() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(3), Value::Generic(5), Ok(Value::Generic(7))), + (Value::I8(3), Value::I8(5), Ok(Value::I8(7))), + (Value::U8(3), Value::U8(5), Ok(Value::U8(7))), + (Value::I16(3), Value::I16(5), Ok(Value::I16(7))), + (Value::U16(3), Value::U16(5), Ok(Value::U16(7))), + (Value::I32(3), Value::I32(5), Ok(Value::I32(7))), + (Value::U32(3), Value::U32(5), Ok(Value::U32(7))), + (Value::I64(3), Value::I64(5), Ok(Value::I64(7))), + (Value::U64(3), Value::U64(5), Ok(Value::U64(7))), + (Value::F32(3.), Value::F32(5.), Err(Error::IntegralTypeRequired)), + (Value::F64(3.), Value::F64(5.), Err(Error::IntegralTypeRequired)), + (Value::Generic(3), Value::U32(5), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.or(v2, addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_xor() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(3), Value::Generic(5), Ok(Value::Generic(6))), + (Value::I8(3), Value::I8(5), Ok(Value::I8(6))), + (Value::U8(3), Value::U8(5), Ok(Value::U8(6))), + (Value::I16(3), Value::I16(5), Ok(Value::I16(6))), + (Value::U16(3), Value::U16(5), Ok(Value::U16(6))), + (Value::I32(3), Value::I32(5), Ok(Value::I32(6))), + (Value::U32(3), Value::U32(5), Ok(Value::U32(6))), + (Value::I64(3), Value::I64(5), Ok(Value::I64(6))), + (Value::U64(3), Value::U64(5), Ok(Value::U64(6))), + (Value::F32(3.), Value::F32(5.), Err(Error::IntegralTypeRequired)), + (Value::F64(3.), Value::F64(5.), Err(Error::IntegralTypeRequired)), + (Value::Generic(3), Value::U32(5), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.xor(v2, addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_shl() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + // One of each type + (Value::Generic(3), Value::Generic(5), Ok(Value::Generic(96))), + (Value::I8(3), Value::U8(5), Ok(Value::I8(96))), + (Value::U8(3), Value::I8(5), Ok(Value::U8(96))), + (Value::I16(3), Value::U16(5), Ok(Value::I16(96))), + (Value::U16(3), Value::I16(5), Ok(Value::U16(96))), + (Value::I32(3), Value::U32(5), Ok(Value::I32(96))), + (Value::U32(3), Value::I32(5), Ok(Value::U32(96))), + (Value::I64(3), Value::U64(5), Ok(Value::I64(96))), + (Value::U64(3), Value::I64(5), Ok(Value::U64(96))), + (Value::F32(3.), Value::U8(5), Err(Error::IntegralTypeRequired)), + (Value::F64(3.), Value::U8(5), Err(Error::IntegralTypeRequired)), + // Invalid shifts + (Value::U8(3), Value::I8(-5), Err(Error::InvalidShiftExpression)), + (Value::U8(3), Value::I16(-5), Err(Error::InvalidShiftExpression)), + (Value::U8(3), Value::I32(-5), Err(Error::InvalidShiftExpression)), + (Value::U8(3), Value::I64(-5), Err(Error::InvalidShiftExpression)), + (Value::U8(3), Value::F32(5.), Err(Error::InvalidShiftExpression)), + (Value::U8(3), Value::F64(5.), Err(Error::InvalidShiftExpression)), + // Large shifts + (Value::Generic(3), Value::Generic(32), Ok(Value::Generic(0))), + (Value::I8(3), Value::U8(8), Ok(Value::I8(0))), + (Value::U8(3), Value::I8(9), Ok(Value::U8(0))), + (Value::I16(3), Value::U16(17), Ok(Value::I16(0))), + (Value::U16(3), Value::I16(16), Ok(Value::U16(0))), + (Value::I32(3), Value::U32(32), Ok(Value::I32(0))), + (Value::U32(3), Value::I32(33), Ok(Value::U32(0))), + (Value::I64(3), Value::U64(65), Ok(Value::I64(0))), + (Value::U64(3), Value::I64(64), Ok(Value::U64(0))), + ] { + assert_eq!(v1.shl(v2, addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_shr() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + // One of each type + (Value::Generic(96), Value::Generic(5), Ok(Value::Generic(3))), + (Value::I8(96), Value::U8(5), Err(Error::UnsupportedTypeOperation)), + (Value::U8(96), Value::I8(5), Ok(Value::U8(3))), + (Value::I16(96), Value::U16(5), Err(Error::UnsupportedTypeOperation)), + (Value::U16(96), Value::I16(5), Ok(Value::U16(3))), + (Value::I32(96), Value::U32(5), Err(Error::UnsupportedTypeOperation)), + (Value::U32(96), Value::I32(5), Ok(Value::U32(3))), + (Value::I64(96), Value::U64(5), Err(Error::UnsupportedTypeOperation)), + (Value::U64(96), Value::I64(5), Ok(Value::U64(3))), + (Value::F32(96.), Value::U8(5), Err(Error::IntegralTypeRequired)), + (Value::F64(96.), Value::U8(5), Err(Error::IntegralTypeRequired)), + // Invalid shifts + (Value::U8(96), Value::I8(-5), Err(Error::InvalidShiftExpression)), + (Value::U8(96), Value::I16(-5), Err(Error::InvalidShiftExpression)), + (Value::U8(96), Value::I32(-5), Err(Error::InvalidShiftExpression)), + (Value::U8(96), Value::I64(-5), Err(Error::InvalidShiftExpression)), + (Value::U8(96), Value::F32(5.), Err(Error::InvalidShiftExpression)), + (Value::U8(96), Value::F64(5.), Err(Error::InvalidShiftExpression)), + // Large shifts + (Value::Generic(96), Value::Generic(32), Ok(Value::Generic(0))), + (Value::U8(96), Value::I8(9), Ok(Value::U8(0))), + (Value::U16(96), Value::I16(16), Ok(Value::U16(0))), + (Value::U32(96), Value::I32(33), Ok(Value::U32(0))), + (Value::U64(96), Value::I64(64), Ok(Value::U64(0))), + ] { + assert_eq!(v1.shr(v2, addr_mask), result); + } + } + + #[test] + #[rustfmt::skip] + fn value_shra() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + // One of each type + (Value::Generic(u64::from(-96i32 as u32)), Value::Generic(5), Ok(Value::Generic(-3i64 as u64))), + (Value::I8(-96), Value::U8(5), Ok(Value::I8(-3))), + (Value::U8(96), Value::I8(5), Err(Error::UnsupportedTypeOperation)), + (Value::I16(-96), Value::U16(5), Ok(Value::I16(-3))), + (Value::U16(96), Value::I16(5), Err(Error::UnsupportedTypeOperation)), + (Value::I32(-96), Value::U32(5), Ok(Value::I32(-3))), + (Value::U32(96), Value::I32(5), Err(Error::UnsupportedTypeOperation)), + (Value::I64(-96), Value::U64(5), Ok(Value::I64(-3))), + (Value::U64(96), Value::I64(5), Err(Error::UnsupportedTypeOperation)), + (Value::F32(96.), Value::U8(5), Err(Error::IntegralTypeRequired)), + (Value::F64(96.), Value::U8(5), Err(Error::IntegralTypeRequired)), + // Invalid shifts + (Value::U8(96), Value::I8(-5), Err(Error::InvalidShiftExpression)), + (Value::U8(96), Value::I16(-5), Err(Error::InvalidShiftExpression)), + (Value::U8(96), Value::I32(-5), Err(Error::InvalidShiftExpression)), + (Value::U8(96), Value::I64(-5), Err(Error::InvalidShiftExpression)), + (Value::U8(96), Value::F32(5.), Err(Error::InvalidShiftExpression)), + (Value::U8(96), Value::F64(5.), Err(Error::InvalidShiftExpression)), + // Large shifts + (Value::Generic(96), Value::Generic(32), Ok(Value::Generic(0))), + (Value::I8(96), Value::U8(8), Ok(Value::I8(0))), + (Value::I8(-96), Value::U8(8), Ok(Value::I8(-1))), + (Value::I16(96), Value::U16(17), Ok(Value::I16(0))), + (Value::I16(-96), Value::U16(17), Ok(Value::I16(-1))), + (Value::I32(96), Value::U32(32), Ok(Value::I32(0))), + (Value::I32(-96), Value::U32(32), Ok(Value::I32(-1))), + (Value::I64(96), Value::U64(65), Ok(Value::I64(0))), + (Value::I64(-96), Value::U64(65), Ok(Value::I64(-1))), + ] { + assert_eq!(v1.shra(v2, addr_mask), result); + } + } + + #[test] + fn value_eq() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(3), Value::Generic(3), Ok(Value::Generic(1))), + (Value::Generic(!3), Value::Generic(3), Ok(Value::Generic(0))), + (Value::I8(3), Value::I8(3), Ok(Value::Generic(1))), + (Value::I8(!3), Value::I8(3), Ok(Value::Generic(0))), + (Value::U8(3), Value::U8(3), Ok(Value::Generic(1))), + (Value::U8(!3), Value::U8(3), Ok(Value::Generic(0))), + (Value::I16(3), Value::I16(3), Ok(Value::Generic(1))), + (Value::I16(!3), Value::I16(3), Ok(Value::Generic(0))), + (Value::U16(3), Value::U16(3), Ok(Value::Generic(1))), + (Value::U16(!3), Value::U16(3), Ok(Value::Generic(0))), + (Value::I32(3), Value::I32(3), Ok(Value::Generic(1))), + (Value::I32(!3), Value::I32(3), Ok(Value::Generic(0))), + (Value::U32(3), Value::U32(3), Ok(Value::Generic(1))), + (Value::U32(!3), Value::U32(3), Ok(Value::Generic(0))), + (Value::I64(3), Value::I64(3), Ok(Value::Generic(1))), + (Value::I64(!3), Value::I64(3), Ok(Value::Generic(0))), + (Value::U64(3), Value::U64(3), Ok(Value::Generic(1))), + (Value::U64(!3), Value::U64(3), Ok(Value::Generic(0))), + (Value::F32(3.), Value::F32(3.), Ok(Value::Generic(1))), + (Value::F32(-3.), Value::F32(3.), Ok(Value::Generic(0))), + (Value::F64(3.), Value::F64(3.), Ok(Value::Generic(1))), + (Value::F64(-3.), Value::F64(3.), Ok(Value::Generic(0))), + (Value::Generic(3), Value::U32(3), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.eq(v2, addr_mask), result); + } + } + + #[test] + fn value_ne() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(3), Value::Generic(3), Ok(Value::Generic(0))), + (Value::Generic(!3), Value::Generic(3), Ok(Value::Generic(1))), + (Value::I8(3), Value::I8(3), Ok(Value::Generic(0))), + (Value::I8(!3), Value::I8(3), Ok(Value::Generic(1))), + (Value::U8(3), Value::U8(3), Ok(Value::Generic(0))), + (Value::U8(!3), Value::U8(3), Ok(Value::Generic(1))), + (Value::I16(3), Value::I16(3), Ok(Value::Generic(0))), + (Value::I16(!3), Value::I16(3), Ok(Value::Generic(1))), + (Value::U16(3), Value::U16(3), Ok(Value::Generic(0))), + (Value::U16(!3), Value::U16(3), Ok(Value::Generic(1))), + (Value::I32(3), Value::I32(3), Ok(Value::Generic(0))), + (Value::I32(!3), Value::I32(3), Ok(Value::Generic(1))), + (Value::U32(3), Value::U32(3), Ok(Value::Generic(0))), + (Value::U32(!3), Value::U32(3), Ok(Value::Generic(1))), + (Value::I64(3), Value::I64(3), Ok(Value::Generic(0))), + (Value::I64(!3), Value::I64(3), Ok(Value::Generic(1))), + (Value::U64(3), Value::U64(3), Ok(Value::Generic(0))), + (Value::U64(!3), Value::U64(3), Ok(Value::Generic(1))), + (Value::F32(3.), Value::F32(3.), Ok(Value::Generic(0))), + (Value::F32(-3.), Value::F32(3.), Ok(Value::Generic(1))), + (Value::F64(3.), Value::F64(3.), Ok(Value::Generic(0))), + (Value::F64(-3.), Value::F64(3.), Ok(Value::Generic(1))), + (Value::Generic(3), Value::U32(3), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.ne(v2, addr_mask), result); + } + } + + #[test] + fn value_ge() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(3), Value::Generic(!3), Ok(Value::Generic(1))), + (Value::Generic(!3), Value::Generic(3), Ok(Value::Generic(0))), + (Value::I8(3), Value::I8(!3), Ok(Value::Generic(1))), + (Value::I8(!3), Value::I8(3), Ok(Value::Generic(0))), + (Value::U8(3), Value::U8(!3), Ok(Value::Generic(0))), + (Value::U8(!3), Value::U8(3), Ok(Value::Generic(1))), + (Value::I16(3), Value::I16(!3), Ok(Value::Generic(1))), + (Value::I16(!3), Value::I16(3), Ok(Value::Generic(0))), + (Value::U16(3), Value::U16(!3), Ok(Value::Generic(0))), + (Value::U16(!3), Value::U16(3), Ok(Value::Generic(1))), + (Value::I32(3), Value::I32(!3), Ok(Value::Generic(1))), + (Value::I32(!3), Value::I32(3), Ok(Value::Generic(0))), + (Value::U32(3), Value::U32(!3), Ok(Value::Generic(0))), + (Value::U32(!3), Value::U32(3), Ok(Value::Generic(1))), + (Value::I64(3), Value::I64(!3), Ok(Value::Generic(1))), + (Value::I64(!3), Value::I64(3), Ok(Value::Generic(0))), + (Value::U64(3), Value::U64(!3), Ok(Value::Generic(0))), + (Value::U64(!3), Value::U64(3), Ok(Value::Generic(1))), + (Value::F32(3.), Value::F32(-3.), Ok(Value::Generic(1))), + (Value::F32(-3.), Value::F32(3.), Ok(Value::Generic(0))), + (Value::F64(3.), Value::F64(-3.), Ok(Value::Generic(1))), + (Value::F64(-3.), Value::F64(3.), Ok(Value::Generic(0))), + (Value::Generic(3), Value::U32(3), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.ge(v2, addr_mask), result); + } + } + + #[test] + fn value_gt() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(3), Value::Generic(!3), Ok(Value::Generic(1))), + (Value::Generic(!3), Value::Generic(3), Ok(Value::Generic(0))), + (Value::I8(3), Value::I8(!3), Ok(Value::Generic(1))), + (Value::I8(!3), Value::I8(3), Ok(Value::Generic(0))), + (Value::U8(3), Value::U8(!3), Ok(Value::Generic(0))), + (Value::U8(!3), Value::U8(3), Ok(Value::Generic(1))), + (Value::I16(3), Value::I16(!3), Ok(Value::Generic(1))), + (Value::I16(!3), Value::I16(3), Ok(Value::Generic(0))), + (Value::U16(3), Value::U16(!3), Ok(Value::Generic(0))), + (Value::U16(!3), Value::U16(3), Ok(Value::Generic(1))), + (Value::I32(3), Value::I32(!3), Ok(Value::Generic(1))), + (Value::I32(!3), Value::I32(3), Ok(Value::Generic(0))), + (Value::U32(3), Value::U32(!3), Ok(Value::Generic(0))), + (Value::U32(!3), Value::U32(3), Ok(Value::Generic(1))), + (Value::I64(3), Value::I64(!3), Ok(Value::Generic(1))), + (Value::I64(!3), Value::I64(3), Ok(Value::Generic(0))), + (Value::U64(3), Value::U64(!3), Ok(Value::Generic(0))), + (Value::U64(!3), Value::U64(3), Ok(Value::Generic(1))), + (Value::F32(3.), Value::F32(-3.), Ok(Value::Generic(1))), + (Value::F32(-3.), Value::F32(3.), Ok(Value::Generic(0))), + (Value::F64(3.), Value::F64(-3.), Ok(Value::Generic(1))), + (Value::F64(-3.), Value::F64(3.), Ok(Value::Generic(0))), + (Value::Generic(3), Value::U32(3), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.gt(v2, addr_mask), result); + } + } + + #[test] + fn value_le() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(3), Value::Generic(!3), Ok(Value::Generic(0))), + (Value::Generic(!3), Value::Generic(3), Ok(Value::Generic(1))), + (Value::I8(3), Value::I8(!3), Ok(Value::Generic(0))), + (Value::I8(!3), Value::I8(3), Ok(Value::Generic(1))), + (Value::U8(3), Value::U8(!3), Ok(Value::Generic(1))), + (Value::U8(!3), Value::U8(3), Ok(Value::Generic(0))), + (Value::I16(3), Value::I16(!3), Ok(Value::Generic(0))), + (Value::I16(!3), Value::I16(3), Ok(Value::Generic(1))), + (Value::U16(3), Value::U16(!3), Ok(Value::Generic(1))), + (Value::U16(!3), Value::U16(3), Ok(Value::Generic(0))), + (Value::I32(3), Value::I32(!3), Ok(Value::Generic(0))), + (Value::I32(!3), Value::I32(3), Ok(Value::Generic(1))), + (Value::U32(3), Value::U32(!3), Ok(Value::Generic(1))), + (Value::U32(!3), Value::U32(3), Ok(Value::Generic(0))), + (Value::I64(3), Value::I64(!3), Ok(Value::Generic(0))), + (Value::I64(!3), Value::I64(3), Ok(Value::Generic(1))), + (Value::U64(3), Value::U64(!3), Ok(Value::Generic(1))), + (Value::U64(!3), Value::U64(3), Ok(Value::Generic(0))), + (Value::F32(3.), Value::F32(-3.), Ok(Value::Generic(0))), + (Value::F32(-3.), Value::F32(3.), Ok(Value::Generic(1))), + (Value::F64(3.), Value::F64(-3.), Ok(Value::Generic(0))), + (Value::F64(-3.), Value::F64(3.), Ok(Value::Generic(1))), + (Value::Generic(3), Value::U32(3), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.le(v2, addr_mask), result); + } + } + + #[test] + fn value_lt() { + let addr_mask = 0xffff_ffff; + for &(v1, v2, result) in &[ + (Value::Generic(3), Value::Generic(!3), Ok(Value::Generic(0))), + (Value::Generic(!3), Value::Generic(3), Ok(Value::Generic(1))), + (Value::I8(3), Value::I8(!3), Ok(Value::Generic(0))), + (Value::I8(!3), Value::I8(3), Ok(Value::Generic(1))), + (Value::U8(3), Value::U8(!3), Ok(Value::Generic(1))), + (Value::U8(!3), Value::U8(3), Ok(Value::Generic(0))), + (Value::I16(3), Value::I16(!3), Ok(Value::Generic(0))), + (Value::I16(!3), Value::I16(3), Ok(Value::Generic(1))), + (Value::U16(3), Value::U16(!3), Ok(Value::Generic(1))), + (Value::U16(!3), Value::U16(3), Ok(Value::Generic(0))), + (Value::I32(3), Value::I32(!3), Ok(Value::Generic(0))), + (Value::I32(!3), Value::I32(3), Ok(Value::Generic(1))), + (Value::U32(3), Value::U32(!3), Ok(Value::Generic(1))), + (Value::U32(!3), Value::U32(3), Ok(Value::Generic(0))), + (Value::I64(3), Value::I64(!3), Ok(Value::Generic(0))), + (Value::I64(!3), Value::I64(3), Ok(Value::Generic(1))), + (Value::U64(3), Value::U64(!3), Ok(Value::Generic(1))), + (Value::U64(!3), Value::U64(3), Ok(Value::Generic(0))), + (Value::F32(3.), Value::F32(-3.), Ok(Value::Generic(0))), + (Value::F32(-3.), Value::F32(3.), Ok(Value::Generic(1))), + (Value::F64(3.), Value::F64(-3.), Ok(Value::Generic(0))), + (Value::F64(-3.), Value::F64(3.), Ok(Value::Generic(1))), + (Value::Generic(3), Value::U32(3), Err(Error::TypeMismatch)), + ] { + assert_eq!(v1.lt(v2, addr_mask), result); + } + } +} diff --git a/src/rust/vendor/gimli/src/test_util.rs b/src/rust/vendor/gimli/src/test_util.rs new file mode 100644 index 000000000..706aaf934 --- /dev/null +++ b/src/rust/vendor/gimli/src/test_util.rs @@ -0,0 +1,53 @@ +#![allow(missing_docs)] + +use crate::Format; +use test_assembler::{Label, Section}; + +pub trait GimliSectionMethods { + fn sleb(self, val: i64) -> Self; + fn uleb(self, val: u64) -> Self; + fn initial_length(self, format: Format, length: &Label, start: &Label) -> Self; + fn word(self, size: u8, val: u64) -> Self; + fn word_label(self, size: u8, val: &Label) -> Self; +} + +impl GimliSectionMethods for Section { + fn sleb(mut self, mut val: i64) -> Self { + while val & !0x3f != 0 && val | 0x3f != -1 { + self = self.D8(val as u8 | 0x80); + val >>= 7; + } + self.D8(val as u8 & 0x7f) + } + + fn uleb(mut self, mut val: u64) -> Self { + while val & !0x7f != 0 { + self = self.D8(val as u8 | 0x80); + val >>= 7; + } + self.D8(val as u8) + } + + fn initial_length(self, format: Format, length: &Label, start: &Label) -> Self { + match format { + Format::Dwarf32 => self.D32(length).mark(start), + Format::Dwarf64 => self.D32(0xffff_ffff).D64(length).mark(start), + } + } + + fn word(self, size: u8, val: u64) -> Self { + match size { + 4 => self.D32(val as u32), + 8 => self.D64(val), + _ => panic!("unsupported word size"), + } + } + + fn word_label(self, size: u8, val: &Label) -> Self { + match size { + 4 => self.D32(val), + 8 => self.D64(val), + _ => panic!("unsupported word size"), + } + } +} diff --git a/src/rust/vendor/gimli/src/write/abbrev.rs b/src/rust/vendor/gimli/src/write/abbrev.rs new file mode 100644 index 000000000..7cdfa969c --- /dev/null +++ b/src/rust/vendor/gimli/src/write/abbrev.rs @@ -0,0 +1,188 @@ +use alloc::vec::Vec; +use indexmap::IndexSet; +use std::ops::{Deref, DerefMut}; + +use crate::common::{DebugAbbrevOffset, SectionId}; +use crate::constants; +use crate::write::{Result, Section, Writer}; + +/// A table of abbreviations that will be stored in a `.debug_abbrev` section. +// Requirements: +// - values are `Abbreviation` +// - insertion returns an abbreviation code for use in writing a DIE +// - inserting a duplicate returns the code of the existing value +#[derive(Debug, Default)] +pub(crate) struct AbbreviationTable { + abbrevs: IndexSet, +} + +impl AbbreviationTable { + /// Add an abbreviation to the table and return its code. + pub fn add(&mut self, abbrev: Abbreviation) -> u64 { + let (code, _) = self.abbrevs.insert_full(abbrev); + // Code must be non-zero + (code + 1) as u64 + } + + /// Write the abbreviation table to the `.debug_abbrev` section. + pub fn write(&self, w: &mut DebugAbbrev) -> Result<()> { + for (code, abbrev) in self.abbrevs.iter().enumerate() { + w.write_uleb128((code + 1) as u64)?; + abbrev.write(w)?; + } + // Null abbreviation code + w.write_u8(0) + } +} + +/// An abbreviation describes the shape of a `DebuggingInformationEntry`'s type: +/// its tag type, whether it has children, and its set of attributes. +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub(crate) struct Abbreviation { + tag: constants::DwTag, + has_children: bool, + attributes: Vec, +} + +impl Abbreviation { + /// Construct a new `Abbreviation`. + #[inline] + pub fn new( + tag: constants::DwTag, + has_children: bool, + attributes: Vec, + ) -> Abbreviation { + Abbreviation { + tag, + has_children, + attributes, + } + } + + /// Write the abbreviation to the `.debug_abbrev` section. + pub fn write(&self, w: &mut DebugAbbrev) -> Result<()> { + w.write_uleb128(self.tag.0.into())?; + w.write_u8(if self.has_children { + constants::DW_CHILDREN_yes.0 + } else { + constants::DW_CHILDREN_no.0 + })?; + for attr in &self.attributes { + attr.write(w)?; + } + // Null name and form + w.write_u8(0)?; + w.write_u8(0) + } +} + +/// The description of an attribute in an abbreviated type. +// TODO: support implicit const +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub(crate) struct AttributeSpecification { + name: constants::DwAt, + form: constants::DwForm, +} + +impl AttributeSpecification { + /// Construct a new `AttributeSpecification`. + #[inline] + pub fn new(name: constants::DwAt, form: constants::DwForm) -> AttributeSpecification { + AttributeSpecification { name, form } + } + + /// Write the attribute specification to the `.debug_abbrev` section. + #[inline] + pub fn write(&self, w: &mut DebugAbbrev) -> Result<()> { + w.write_uleb128(self.name.0.into())?; + w.write_uleb128(self.form.0.into()) + } +} + +define_section!( + DebugAbbrev, + DebugAbbrevOffset, + "A writable `.debug_abbrev` section." +); + +#[cfg(test)] +#[cfg(feature = "read")] +mod tests { + use super::*; + use crate::constants; + use crate::read; + use crate::write::EndianVec; + use crate::LittleEndian; + + #[test] + fn test_abbreviation_table() { + let mut abbrevs = AbbreviationTable::default(); + let abbrev1 = Abbreviation::new( + constants::DW_TAG_subprogram, + false, + vec![AttributeSpecification::new( + constants::DW_AT_name, + constants::DW_FORM_string, + )], + ); + let abbrev2 = Abbreviation::new( + constants::DW_TAG_compile_unit, + true, + vec![ + AttributeSpecification::new(constants::DW_AT_producer, constants::DW_FORM_strp), + AttributeSpecification::new(constants::DW_AT_language, constants::DW_FORM_data2), + ], + ); + let code1 = abbrevs.add(abbrev1.clone()); + assert_eq!(code1, 1); + let code2 = abbrevs.add(abbrev2.clone()); + assert_eq!(code2, 2); + assert_eq!(abbrevs.add(abbrev1.clone()), code1); + assert_eq!(abbrevs.add(abbrev2.clone()), code2); + + let mut debug_abbrev = DebugAbbrev::from(EndianVec::new(LittleEndian)); + let debug_abbrev_offset = debug_abbrev.offset(); + assert_eq!(debug_abbrev_offset, DebugAbbrevOffset(0)); + abbrevs.write(&mut debug_abbrev).unwrap(); + assert_eq!(debug_abbrev.offset(), DebugAbbrevOffset(17)); + + let read_debug_abbrev = read::DebugAbbrev::new(debug_abbrev.slice(), LittleEndian); + let read_abbrevs = read_debug_abbrev + .abbreviations(debug_abbrev_offset) + .unwrap(); + + let read_abbrev1 = read_abbrevs.get(code1).unwrap(); + assert_eq!(abbrev1.tag, read_abbrev1.tag()); + assert_eq!(abbrev1.has_children, read_abbrev1.has_children()); + assert_eq!(abbrev1.attributes.len(), read_abbrev1.attributes().len()); + assert_eq!( + abbrev1.attributes[0].name, + read_abbrev1.attributes()[0].name() + ); + assert_eq!( + abbrev1.attributes[0].form, + read_abbrev1.attributes()[0].form() + ); + + let read_abbrev2 = read_abbrevs.get(code2).unwrap(); + assert_eq!(abbrev2.tag, read_abbrev2.tag()); + assert_eq!(abbrev2.has_children, read_abbrev2.has_children()); + assert_eq!(abbrev2.attributes.len(), read_abbrev2.attributes().len()); + assert_eq!( + abbrev2.attributes[0].name, + read_abbrev2.attributes()[0].name() + ); + assert_eq!( + abbrev2.attributes[0].form, + read_abbrev2.attributes()[0].form() + ); + assert_eq!( + abbrev2.attributes[1].name, + read_abbrev2.attributes()[1].name() + ); + assert_eq!( + abbrev2.attributes[1].form, + read_abbrev2.attributes()[1].form() + ); + } +} diff --git a/src/rust/vendor/gimli/src/write/cfi.rs b/src/rust/vendor/gimli/src/write/cfi.rs new file mode 100644 index 000000000..5e108f15a --- /dev/null +++ b/src/rust/vendor/gimli/src/write/cfi.rs @@ -0,0 +1,1050 @@ +use alloc::vec::Vec; +use indexmap::IndexSet; +use std::ops::{Deref, DerefMut}; + +use crate::common::{DebugFrameOffset, EhFrameOffset, Encoding, Format, Register, SectionId}; +use crate::constants; +use crate::write::{Address, BaseId, Error, Expression, Result, Section, Writer}; + +define_section!( + DebugFrame, + DebugFrameOffset, + "A writable `.debug_frame` section." +); + +define_section!(EhFrame, EhFrameOffset, "A writable `.eh_frame` section."); + +define_id!(CieId, "An identifier for a CIE in a `FrameTable`."); + +/// A table of frame description entries. +#[derive(Debug, Default)] +pub struct FrameTable { + /// Base id for CIEs. + base_id: BaseId, + /// The common information entries. + cies: IndexSet, + /// The frame description entries. + fdes: Vec<(CieId, FrameDescriptionEntry)>, +} + +impl FrameTable { + /// Add a CIE and return its id. + /// + /// If the CIE already exists, then return the id of the existing CIE. + pub fn add_cie(&mut self, cie: CommonInformationEntry) -> CieId { + let (index, _) = self.cies.insert_full(cie); + CieId::new(self.base_id, index) + } + + /// The number of CIEs. + pub fn cie_count(&self) -> usize { + self.cies.len() + } + + /// Add a FDE. + /// + /// Does not check for duplicates. + /// + /// # Panics + /// + /// Panics if the CIE id is invalid. + pub fn add_fde(&mut self, cie: CieId, fde: FrameDescriptionEntry) { + debug_assert_eq!(self.base_id, cie.base_id); + self.fdes.push((cie, fde)); + } + + /// The number of FDEs. + pub fn fde_count(&self) -> usize { + self.fdes.len() + } + + /// Write the frame table entries to the given `.debug_frame` section. + pub fn write_debug_frame(&self, w: &mut DebugFrame) -> Result<()> { + self.write(&mut w.0, false) + } + + /// Write the frame table entries to the given `.eh_frame` section. + pub fn write_eh_frame(&self, w: &mut EhFrame) -> Result<()> { + self.write(&mut w.0, true) + } + + fn write(&self, w: &mut W, eh_frame: bool) -> Result<()> { + let mut cie_offsets = vec![None; self.cies.len()]; + for (cie_id, fde) in &self.fdes { + let cie_index = cie_id.index; + let cie = self.cies.get_index(cie_index).unwrap(); + let cie_offset = match cie_offsets[cie_index] { + Some(offset) => offset, + None => { + // Only write CIEs as they are referenced. + let offset = cie.write(w, eh_frame)?; + cie_offsets[cie_index] = Some(offset); + offset + } + }; + + fde.write(w, eh_frame, cie_offset, cie)?; + } + // TODO: write length 0 terminator for eh_frame? + Ok(()) + } +} + +/// A common information entry. This contains information that is shared between FDEs. +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub struct CommonInformationEntry { + encoding: Encoding, + + /// A constant that is factored out of code offsets. + /// + /// This should be set to the minimum instruction length. + /// Writing a code offset that is not a multiple of this factor will generate an error. + code_alignment_factor: u8, + + /// A constant that is factored out of data offsets. + /// + /// This should be set to the minimum data alignment for the frame. + /// Writing a data offset that is not a multiple of this factor will generate an error. + data_alignment_factor: i8, + + /// The return address register. This might not correspond to an actual machine register. + return_address_register: Register, + + /// The address of the personality function and its encoding. + pub personality: Option<(constants::DwEhPe, Address)>, + + /// The encoding to use for the LSDA address in FDEs. + /// + /// If set then all FDEs which use this CIE must have a LSDA address. + pub lsda_encoding: Option, + + /// The encoding to use for addresses in FDEs. + pub fde_address_encoding: constants::DwEhPe, + + /// True for signal trampolines. + pub signal_trampoline: bool, + + /// The initial instructions upon entry to this function. + instructions: Vec, +} + +impl CommonInformationEntry { + /// Create a new common information entry. + /// + /// The encoding version must be a CFI version, not a DWARF version. + pub fn new( + encoding: Encoding, + code_alignment_factor: u8, + data_alignment_factor: i8, + return_address_register: Register, + ) -> Self { + CommonInformationEntry { + encoding, + code_alignment_factor, + data_alignment_factor, + return_address_register, + personality: None, + lsda_encoding: None, + fde_address_encoding: constants::DW_EH_PE_absptr, + signal_trampoline: false, + instructions: Vec::new(), + } + } + + /// Add an initial instruction. + pub fn add_instruction(&mut self, instruction: CallFrameInstruction) { + self.instructions.push(instruction); + } + + fn has_augmentation(&self) -> bool { + self.personality.is_some() + || self.lsda_encoding.is_some() + || self.signal_trampoline + || self.fde_address_encoding != constants::DW_EH_PE_absptr + } + + /// Returns the section offset of the CIE. + fn write(&self, w: &mut W, eh_frame: bool) -> Result { + let encoding = self.encoding; + let offset = w.len(); + + let length_offset = w.write_initial_length(encoding.format)?; + let length_base = w.len(); + + if eh_frame { + w.write_u32(0)?; + } else { + match encoding.format { + Format::Dwarf32 => w.write_u32(0xffff_ffff)?, + Format::Dwarf64 => w.write_u64(0xffff_ffff_ffff_ffff)?, + } + } + + if eh_frame { + if encoding.version != 1 { + return Err(Error::UnsupportedVersion(encoding.version)); + }; + } else { + match encoding.version { + 1 | 3 | 4 => {} + _ => return Err(Error::UnsupportedVersion(encoding.version)), + }; + } + w.write_u8(encoding.version as u8)?; + + let augmentation = self.has_augmentation(); + if augmentation { + w.write_u8(b'z')?; + if self.lsda_encoding.is_some() { + w.write_u8(b'L')?; + } + if self.personality.is_some() { + w.write_u8(b'P')?; + } + if self.fde_address_encoding != constants::DW_EH_PE_absptr { + w.write_u8(b'R')?; + } + if self.signal_trampoline { + w.write_u8(b'S')?; + } + } + w.write_u8(0)?; + + if encoding.version >= 4 { + w.write_u8(encoding.address_size)?; + // TODO: segment_selector_size + w.write_u8(0)?; + } + + w.write_uleb128(self.code_alignment_factor.into())?; + w.write_sleb128(self.data_alignment_factor.into())?; + + if !eh_frame && encoding.version == 1 { + let register = self.return_address_register.0 as u8; + if u16::from(register) != self.return_address_register.0 { + return Err(Error::ValueTooLarge); + } + w.write_u8(register)?; + } else { + w.write_uleb128(self.return_address_register.0.into())?; + } + + if augmentation { + let augmentation_length_offset = w.len(); + w.write_u8(0)?; + let augmentation_length_base = w.len(); + + if let Some(eh_pe) = self.lsda_encoding { + w.write_u8(eh_pe.0)?; + } + if let Some((eh_pe, address)) = self.personality { + w.write_u8(eh_pe.0)?; + w.write_eh_pointer(address, eh_pe, encoding.address_size)?; + } + if self.fde_address_encoding != constants::DW_EH_PE_absptr { + w.write_u8(self.fde_address_encoding.0)?; + } + + let augmentation_length = (w.len() - augmentation_length_base) as u64; + debug_assert!(augmentation_length < 0x80); + w.write_udata_at(augmentation_length_offset, augmentation_length, 1)?; + } + + for instruction in &self.instructions { + instruction.write(w, encoding, self)?; + } + + write_nop( + w, + encoding.format.word_size() as usize + w.len() - length_base, + encoding.address_size, + )?; + + let length = (w.len() - length_base) as u64; + w.write_initial_length_at(length_offset, length, encoding.format)?; + + Ok(offset) + } +} + +/// A frame description entry. There should be one FDE per function. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct FrameDescriptionEntry { + /// The initial address of the function. + address: Address, + + /// The length in bytes of the function. + length: u32, + + /// The address of the LSDA. + pub lsda: Option
, + + /// The instructions for this function, ordered by offset. + instructions: Vec<(u32, CallFrameInstruction)>, +} + +impl FrameDescriptionEntry { + /// Create a new frame description entry for a function. + pub fn new(address: Address, length: u32) -> Self { + FrameDescriptionEntry { + address, + length, + lsda: None, + instructions: Vec::new(), + } + } + + /// Add an instruction. + /// + /// Instructions must be added in increasing order of offset, or writing will fail. + pub fn add_instruction(&mut self, offset: u32, instruction: CallFrameInstruction) { + debug_assert!(self.instructions.last().map(|x| x.0).unwrap_or(0) <= offset); + self.instructions.push((offset, instruction)); + } + + fn write( + &self, + w: &mut W, + eh_frame: bool, + cie_offset: usize, + cie: &CommonInformationEntry, + ) -> Result<()> { + let encoding = cie.encoding; + let length_offset = w.write_initial_length(encoding.format)?; + let length_base = w.len(); + + if eh_frame { + // .eh_frame uses a relative offset which doesn't need relocation. + w.write_udata((w.len() - cie_offset) as u64, 4)?; + } else { + w.write_offset( + cie_offset, + SectionId::DebugFrame, + encoding.format.word_size(), + )?; + } + + if cie.fde_address_encoding != constants::DW_EH_PE_absptr { + w.write_eh_pointer( + self.address, + cie.fde_address_encoding, + encoding.address_size, + )?; + w.write_eh_pointer_data( + self.length.into(), + cie.fde_address_encoding.format(), + encoding.address_size, + )?; + } else { + w.write_address(self.address, encoding.address_size)?; + w.write_udata(self.length.into(), encoding.address_size)?; + } + + if cie.has_augmentation() { + let mut augmentation_length = 0u64; + if self.lsda.is_some() { + augmentation_length += u64::from(encoding.address_size); + } + w.write_uleb128(augmentation_length)?; + + debug_assert_eq!(self.lsda.is_some(), cie.lsda_encoding.is_some()); + if let (Some(lsda), Some(lsda_encoding)) = (self.lsda, cie.lsda_encoding) { + w.write_eh_pointer(lsda, lsda_encoding, encoding.address_size)?; + } + } + + let mut prev_offset = 0; + for (offset, instruction) in &self.instructions { + write_advance_loc(w, cie.code_alignment_factor, prev_offset, *offset)?; + prev_offset = *offset; + instruction.write(w, encoding, cie)?; + } + + write_nop( + w, + encoding.format.word_size() as usize + w.len() - length_base, + encoding.address_size, + )?; + + let length = (w.len() - length_base) as u64; + w.write_initial_length_at(length_offset, length, encoding.format)?; + + Ok(()) + } +} + +/// An instruction in a frame description entry. +/// +/// This may be a CFA definition, a register rule, or some other directive. +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +#[non_exhaustive] +pub enum CallFrameInstruction { + /// Define the CFA rule to use the provided register and offset. + Cfa(Register, i32), + /// Update the CFA rule to use the provided register. The offset is unchanged. + CfaRegister(Register), + /// Update the CFA rule to use the provided offset. The register is unchanged. + CfaOffset(i32), + /// Define the CFA rule to use the provided expression. + CfaExpression(Expression), + + /// Restore the initial rule for the register. + Restore(Register), + /// The previous value of the register is not recoverable. + Undefined(Register), + /// The register has not been modified. + SameValue(Register), + /// The previous value of the register is saved at address CFA + offset. + Offset(Register, i32), + /// The previous value of the register is CFA + offset. + ValOffset(Register, i32), + /// The previous value of the register is stored in another register. + Register(Register, Register), + /// The previous value of the register is saved at address given by the expression. + Expression(Register, Expression), + /// The previous value of the register is given by the expression. + ValExpression(Register, Expression), + + /// Push all register rules onto a stack. + RememberState, + /// Pop all register rules off the stack. + RestoreState, + /// The size of the arguments that have been pushed onto the stack. + ArgsSize(u32), + + /// AAarch64 extension: negate the `RA_SIGN_STATE` pseudo-register. + NegateRaState, +} + +impl CallFrameInstruction { + fn write( + &self, + w: &mut W, + encoding: Encoding, + cie: &CommonInformationEntry, + ) -> Result<()> { + match *self { + CallFrameInstruction::Cfa(register, offset) => { + if offset < 0 { + let offset = factored_data_offset(offset, cie.data_alignment_factor)?; + w.write_u8(constants::DW_CFA_def_cfa_sf.0)?; + w.write_uleb128(register.0.into())?; + w.write_sleb128(offset.into())?; + } else { + // Unfactored offset. + w.write_u8(constants::DW_CFA_def_cfa.0)?; + w.write_uleb128(register.0.into())?; + w.write_uleb128(offset as u64)?; + } + } + CallFrameInstruction::CfaRegister(register) => { + w.write_u8(constants::DW_CFA_def_cfa_register.0)?; + w.write_uleb128(register.0.into())?; + } + CallFrameInstruction::CfaOffset(offset) => { + if offset < 0 { + let offset = factored_data_offset(offset, cie.data_alignment_factor)?; + w.write_u8(constants::DW_CFA_def_cfa_offset_sf.0)?; + w.write_sleb128(offset.into())?; + } else { + // Unfactored offset. + w.write_u8(constants::DW_CFA_def_cfa_offset.0)?; + w.write_uleb128(offset as u64)?; + } + } + CallFrameInstruction::CfaExpression(ref expression) => { + w.write_u8(constants::DW_CFA_def_cfa_expression.0)?; + w.write_uleb128(expression.size(encoding, None) as u64)?; + expression.write(w, None, encoding, None)?; + } + CallFrameInstruction::Restore(register) => { + if register.0 < 0x40 { + w.write_u8(constants::DW_CFA_restore.0 | register.0 as u8)?; + } else { + w.write_u8(constants::DW_CFA_restore_extended.0)?; + w.write_uleb128(register.0.into())?; + } + } + CallFrameInstruction::Undefined(register) => { + w.write_u8(constants::DW_CFA_undefined.0)?; + w.write_uleb128(register.0.into())?; + } + CallFrameInstruction::SameValue(register) => { + w.write_u8(constants::DW_CFA_same_value.0)?; + w.write_uleb128(register.0.into())?; + } + CallFrameInstruction::Offset(register, offset) => { + let offset = factored_data_offset(offset, cie.data_alignment_factor)?; + if offset < 0 { + w.write_u8(constants::DW_CFA_offset_extended_sf.0)?; + w.write_uleb128(register.0.into())?; + w.write_sleb128(offset.into())?; + } else if register.0 < 0x40 { + w.write_u8(constants::DW_CFA_offset.0 | register.0 as u8)?; + w.write_uleb128(offset as u64)?; + } else { + w.write_u8(constants::DW_CFA_offset_extended.0)?; + w.write_uleb128(register.0.into())?; + w.write_uleb128(offset as u64)?; + } + } + CallFrameInstruction::ValOffset(register, offset) => { + let offset = factored_data_offset(offset, cie.data_alignment_factor)?; + if offset < 0 { + w.write_u8(constants::DW_CFA_val_offset_sf.0)?; + w.write_uleb128(register.0.into())?; + w.write_sleb128(offset.into())?; + } else { + w.write_u8(constants::DW_CFA_val_offset.0)?; + w.write_uleb128(register.0.into())?; + w.write_uleb128(offset as u64)?; + } + } + CallFrameInstruction::Register(register1, register2) => { + w.write_u8(constants::DW_CFA_register.0)?; + w.write_uleb128(register1.0.into())?; + w.write_uleb128(register2.0.into())?; + } + CallFrameInstruction::Expression(register, ref expression) => { + w.write_u8(constants::DW_CFA_expression.0)?; + w.write_uleb128(register.0.into())?; + w.write_uleb128(expression.size(encoding, None) as u64)?; + expression.write(w, None, encoding, None)?; + } + CallFrameInstruction::ValExpression(register, ref expression) => { + w.write_u8(constants::DW_CFA_val_expression.0)?; + w.write_uleb128(register.0.into())?; + w.write_uleb128(expression.size(encoding, None) as u64)?; + expression.write(w, None, encoding, None)?; + } + CallFrameInstruction::RememberState => { + w.write_u8(constants::DW_CFA_remember_state.0)?; + } + CallFrameInstruction::RestoreState => { + w.write_u8(constants::DW_CFA_restore_state.0)?; + } + CallFrameInstruction::ArgsSize(size) => { + w.write_u8(constants::DW_CFA_GNU_args_size.0)?; + w.write_uleb128(size.into())?; + } + CallFrameInstruction::NegateRaState => { + w.write_u8(constants::DW_CFA_AARCH64_negate_ra_state.0)?; + } + } + Ok(()) + } +} + +fn write_advance_loc( + w: &mut W, + code_alignment_factor: u8, + prev_offset: u32, + offset: u32, +) -> Result<()> { + if offset == prev_offset { + return Ok(()); + } + let delta = factored_code_delta(prev_offset, offset, code_alignment_factor)?; + if delta < 0x40 { + w.write_u8(constants::DW_CFA_advance_loc.0 | delta as u8)?; + } else if delta < 0x100 { + w.write_u8(constants::DW_CFA_advance_loc1.0)?; + w.write_u8(delta as u8)?; + } else if delta < 0x10000 { + w.write_u8(constants::DW_CFA_advance_loc2.0)?; + w.write_u16(delta as u16)?; + } else { + w.write_u8(constants::DW_CFA_advance_loc4.0)?; + w.write_u32(delta)?; + } + Ok(()) +} + +fn write_nop(w: &mut W, len: usize, align: u8) -> Result<()> { + debug_assert_eq!(align & (align - 1), 0); + let tail_len = (!len + 1) & (align as usize - 1); + for _ in 0..tail_len { + w.write_u8(constants::DW_CFA_nop.0)?; + } + Ok(()) +} + +fn factored_code_delta(prev_offset: u32, offset: u32, factor: u8) -> Result { + if offset < prev_offset { + return Err(Error::InvalidFrameCodeOffset(offset)); + } + let delta = offset - prev_offset; + let factor = u32::from(factor); + let factored_delta = delta / factor; + if delta != factored_delta * factor { + return Err(Error::InvalidFrameCodeOffset(offset)); + } + Ok(factored_delta) +} + +fn factored_data_offset(offset: i32, factor: i8) -> Result { + let factor = i32::from(factor); + let factored_offset = offset / factor; + if offset != factored_offset * factor { + return Err(Error::InvalidFrameDataOffset(offset)); + } + Ok(factored_offset) +} + +#[cfg(feature = "read")] +pub(crate) mod convert { + use super::*; + use crate::read::{self, Reader}; + use crate::write::{ConvertError, ConvertResult}; + use std::collections::{hash_map, HashMap}; + + impl FrameTable { + /// Create a frame table by reading the data in the given section. + /// + /// `convert_address` is a function to convert read addresses into the `Address` + /// type. For non-relocatable addresses, this function may simply return + /// `Address::Constant(address)`. For relocatable addresses, it is the caller's + /// responsibility to determine the symbol and addend corresponding to the address + /// and return `Address::Symbol { symbol, addend }`. + pub fn from( + frame: &Section, + convert_address: &dyn Fn(u64) -> Option
, + ) -> ConvertResult + where + R: Reader, + Section: read::UnwindSection, + Section::Offset: read::UnwindOffset, + { + let bases = read::BaseAddresses::default().set_eh_frame(0); + + let mut frame_table = FrameTable::default(); + + let mut cie_ids = HashMap::new(); + let mut entries = frame.entries(&bases); + while let Some(entry) = entries.next()? { + let partial = match entry { + read::CieOrFde::Cie(_) => continue, + read::CieOrFde::Fde(partial) => partial, + }; + + // TODO: is it worth caching the parsed CIEs? It would be better if FDEs only + // stored a reference. + let from_fde = partial.parse(Section::cie_from_offset)?; + let from_cie = from_fde.cie(); + let cie_id = match cie_ids.entry(from_cie.offset()) { + hash_map::Entry::Occupied(o) => *o.get(), + hash_map::Entry::Vacant(e) => { + let cie = + CommonInformationEntry::from(from_cie, frame, &bases, convert_address)?; + let cie_id = frame_table.add_cie(cie); + e.insert(cie_id); + cie_id + } + }; + let fde = FrameDescriptionEntry::from(&from_fde, frame, &bases, convert_address)?; + frame_table.add_fde(cie_id, fde); + } + + Ok(frame_table) + } + } + + impl CommonInformationEntry { + fn from( + from_cie: &read::CommonInformationEntry, + frame: &Section, + bases: &read::BaseAddresses, + convert_address: &dyn Fn(u64) -> Option
, + ) -> ConvertResult + where + R: Reader, + Section: read::UnwindSection, + Section::Offset: read::UnwindOffset, + { + let mut cie = CommonInformationEntry::new( + from_cie.encoding(), + from_cie.code_alignment_factor() as u8, + from_cie.data_alignment_factor() as i8, + from_cie.return_address_register(), + ); + + cie.personality = match from_cie.personality_with_encoding() { + // We treat these the same because the encoding already determines + // whether it is indirect. + Some((eh_pe, read::Pointer::Direct(p))) + | Some((eh_pe, read::Pointer::Indirect(p))) => { + let address = convert_address(p).ok_or(ConvertError::InvalidAddress)?; + Some((eh_pe, address)) + } + _ => None, + }; + cie.lsda_encoding = from_cie.lsda_encoding(); + cie.fde_address_encoding = from_cie + .fde_address_encoding() + .unwrap_or(constants::DW_EH_PE_absptr); + cie.signal_trampoline = from_cie.is_signal_trampoline(); + + let mut offset = 0; + let mut from_instructions = from_cie.instructions(frame, bases); + while let Some(from_instruction) = from_instructions.next()? { + if let Some(instruction) = CallFrameInstruction::from( + from_instruction, + from_cie, + convert_address, + &mut offset, + )? { + cie.instructions.push(instruction); + } + } + Ok(cie) + } + } + + impl FrameDescriptionEntry { + fn from( + from_fde: &read::FrameDescriptionEntry, + frame: &Section, + bases: &read::BaseAddresses, + convert_address: &dyn Fn(u64) -> Option
, + ) -> ConvertResult + where + R: Reader, + Section: read::UnwindSection, + Section::Offset: read::UnwindOffset, + { + let address = + convert_address(from_fde.initial_address()).ok_or(ConvertError::InvalidAddress)?; + let length = from_fde.len() as u32; + let mut fde = FrameDescriptionEntry::new(address, length); + + match from_fde.lsda() { + // We treat these the same because the encoding already determines + // whether it is indirect. + Some(read::Pointer::Direct(p)) | Some(read::Pointer::Indirect(p)) => { + let address = convert_address(p).ok_or(ConvertError::InvalidAddress)?; + fde.lsda = Some(address); + } + None => {} + } + + let from_cie = from_fde.cie(); + let mut offset = 0; + let mut from_instructions = from_fde.instructions(frame, bases); + while let Some(from_instruction) = from_instructions.next()? { + if let Some(instruction) = CallFrameInstruction::from( + from_instruction, + from_cie, + convert_address, + &mut offset, + )? { + fde.instructions.push((offset, instruction)); + } + } + + Ok(fde) + } + } + + impl CallFrameInstruction { + fn from>( + from_instruction: read::CallFrameInstruction, + from_cie: &read::CommonInformationEntry, + convert_address: &dyn Fn(u64) -> Option
, + offset: &mut u32, + ) -> ConvertResult> { + let convert_expression = + |x| Expression::from(x, from_cie.encoding(), None, None, None, convert_address); + // TODO: validate integer type conversions + Ok(Some(match from_instruction { + read::CallFrameInstruction::SetLoc { .. } => { + return Err(ConvertError::UnsupportedCfiInstruction); + } + read::CallFrameInstruction::AdvanceLoc { delta } => { + *offset += delta * from_cie.code_alignment_factor() as u32; + return Ok(None); + } + read::CallFrameInstruction::DefCfa { register, offset } => { + CallFrameInstruction::Cfa(register, offset as i32) + } + read::CallFrameInstruction::DefCfaSf { + register, + factored_offset, + } => { + let offset = factored_offset * from_cie.data_alignment_factor(); + CallFrameInstruction::Cfa(register, offset as i32) + } + read::CallFrameInstruction::DefCfaRegister { register } => { + CallFrameInstruction::CfaRegister(register) + } + + read::CallFrameInstruction::DefCfaOffset { offset } => { + CallFrameInstruction::CfaOffset(offset as i32) + } + read::CallFrameInstruction::DefCfaOffsetSf { factored_offset } => { + let offset = factored_offset * from_cie.data_alignment_factor(); + CallFrameInstruction::CfaOffset(offset as i32) + } + read::CallFrameInstruction::DefCfaExpression { expression } => { + CallFrameInstruction::CfaExpression(convert_expression(expression)?) + } + read::CallFrameInstruction::Undefined { register } => { + CallFrameInstruction::Undefined(register) + } + read::CallFrameInstruction::SameValue { register } => { + CallFrameInstruction::SameValue(register) + } + read::CallFrameInstruction::Offset { + register, + factored_offset, + } => { + let offset = factored_offset as i64 * from_cie.data_alignment_factor(); + CallFrameInstruction::Offset(register, offset as i32) + } + read::CallFrameInstruction::OffsetExtendedSf { + register, + factored_offset, + } => { + let offset = factored_offset * from_cie.data_alignment_factor(); + CallFrameInstruction::Offset(register, offset as i32) + } + read::CallFrameInstruction::ValOffset { + register, + factored_offset, + } => { + let offset = factored_offset as i64 * from_cie.data_alignment_factor(); + CallFrameInstruction::ValOffset(register, offset as i32) + } + read::CallFrameInstruction::ValOffsetSf { + register, + factored_offset, + } => { + let offset = factored_offset * from_cie.data_alignment_factor(); + CallFrameInstruction::ValOffset(register, offset as i32) + } + read::CallFrameInstruction::Register { + dest_register, + src_register, + } => CallFrameInstruction::Register(dest_register, src_register), + read::CallFrameInstruction::Expression { + register, + expression, + } => CallFrameInstruction::Expression(register, convert_expression(expression)?), + read::CallFrameInstruction::ValExpression { + register, + expression, + } => CallFrameInstruction::ValExpression(register, convert_expression(expression)?), + read::CallFrameInstruction::Restore { register } => { + CallFrameInstruction::Restore(register) + } + read::CallFrameInstruction::RememberState => CallFrameInstruction::RememberState, + read::CallFrameInstruction::RestoreState => CallFrameInstruction::RestoreState, + read::CallFrameInstruction::ArgsSize { size } => { + CallFrameInstruction::ArgsSize(size as u32) + } + read::CallFrameInstruction::NegateRaState => CallFrameInstruction::NegateRaState, + read::CallFrameInstruction::Nop => return Ok(None), + })) + } + } +} + +#[cfg(test)] +#[cfg(feature = "read")] +mod tests { + use super::*; + use crate::arch::X86_64; + use crate::read; + use crate::write::EndianVec; + use crate::{LittleEndian, Vendor}; + + #[test] + fn test_frame_table() { + for &version in &[1, 3, 4] { + for &address_size in &[4, 8] { + for &format in &[Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version, + address_size, + }; + let mut frames = FrameTable::default(); + + let cie1 = CommonInformationEntry::new(encoding, 1, 8, X86_64::RA); + let cie1_id = frames.add_cie(cie1.clone()); + assert_eq!(cie1_id, frames.add_cie(cie1.clone())); + + let mut cie2 = CommonInformationEntry::new(encoding, 1, 8, X86_64::RA); + cie2.lsda_encoding = Some(constants::DW_EH_PE_absptr); + cie2.personality = + Some((constants::DW_EH_PE_absptr, Address::Constant(0x1234))); + cie2.signal_trampoline = true; + let cie2_id = frames.add_cie(cie2.clone()); + assert_ne!(cie1_id, cie2_id); + assert_eq!(cie2_id, frames.add_cie(cie2.clone())); + + let fde1 = FrameDescriptionEntry::new(Address::Constant(0x1000), 0x10); + frames.add_fde(cie1_id, fde1.clone()); + + let fde2 = FrameDescriptionEntry::new(Address::Constant(0x2000), 0x20); + frames.add_fde(cie1_id, fde2.clone()); + + let mut fde3 = FrameDescriptionEntry::new(Address::Constant(0x3000), 0x30); + fde3.lsda = Some(Address::Constant(0x3300)); + frames.add_fde(cie2_id, fde3.clone()); + + let mut fde4 = FrameDescriptionEntry::new(Address::Constant(0x4000), 0x40); + fde4.lsda = Some(Address::Constant(0x4400)); + frames.add_fde(cie2_id, fde4.clone()); + + let mut cie3 = CommonInformationEntry::new(encoding, 1, 8, X86_64::RA); + cie3.fde_address_encoding = constants::DW_EH_PE_pcrel; + cie3.lsda_encoding = Some(constants::DW_EH_PE_pcrel); + cie3.personality = Some((constants::DW_EH_PE_pcrel, Address::Constant(0x1235))); + cie3.signal_trampoline = true; + let cie3_id = frames.add_cie(cie3.clone()); + assert_ne!(cie2_id, cie3_id); + assert_eq!(cie3_id, frames.add_cie(cie3.clone())); + + let mut fde5 = FrameDescriptionEntry::new(Address::Constant(0x5000), 0x50); + fde5.lsda = Some(Address::Constant(0x5500)); + frames.add_fde(cie3_id, fde5.clone()); + + // Test writing `.debug_frame`. + let mut debug_frame = DebugFrame::from(EndianVec::new(LittleEndian)); + frames.write_debug_frame(&mut debug_frame).unwrap(); + + let mut read_debug_frame = + read::DebugFrame::new(debug_frame.slice(), LittleEndian); + read_debug_frame.set_address_size(address_size); + let convert_frames = FrameTable::from(&read_debug_frame, &|address| { + Some(Address::Constant(address)) + }) + .unwrap(); + assert_eq!(frames.cies, convert_frames.cies); + assert_eq!(frames.fdes.len(), convert_frames.fdes.len()); + for (a, b) in frames.fdes.iter().zip(convert_frames.fdes.iter()) { + assert_eq!(a.1, b.1); + } + + if version == 1 { + // Test writing `.eh_frame`. + let mut eh_frame = EhFrame::from(EndianVec::new(LittleEndian)); + frames.write_eh_frame(&mut eh_frame).unwrap(); + + let mut read_eh_frame = read::EhFrame::new(eh_frame.slice(), LittleEndian); + read_eh_frame.set_address_size(address_size); + let convert_frames = FrameTable::from(&read_eh_frame, &|address| { + Some(Address::Constant(address)) + }) + .unwrap(); + assert_eq!(frames.cies, convert_frames.cies); + assert_eq!(frames.fdes.len(), convert_frames.fdes.len()); + for (a, b) in frames.fdes.iter().zip(convert_frames.fdes.iter()) { + assert_eq!(a.1, b.1); + } + } + } + } + } + } + + #[test] + fn test_frame_instruction() { + let mut expression = Expression::new(); + expression.op_constu(0); + + let cie_instructions = [ + CallFrameInstruction::Cfa(X86_64::RSP, 8), + CallFrameInstruction::Offset(X86_64::RA, -8), + ]; + + let fde_instructions = [ + (0, CallFrameInstruction::Cfa(X86_64::RSP, 0)), + (0, CallFrameInstruction::Cfa(X86_64::RSP, -8)), + (2, CallFrameInstruction::CfaRegister(X86_64::RBP)), + (4, CallFrameInstruction::CfaOffset(8)), + (4, CallFrameInstruction::CfaOffset(0)), + (4, CallFrameInstruction::CfaOffset(-8)), + (6, CallFrameInstruction::CfaExpression(expression.clone())), + (8, CallFrameInstruction::Restore(Register(1))), + (8, CallFrameInstruction::Restore(Register(101))), + (10, CallFrameInstruction::Undefined(Register(2))), + (12, CallFrameInstruction::SameValue(Register(3))), + (14, CallFrameInstruction::Offset(Register(4), 16)), + (14, CallFrameInstruction::Offset(Register(104), 16)), + (16, CallFrameInstruction::ValOffset(Register(5), -24)), + (16, CallFrameInstruction::ValOffset(Register(5), 24)), + (18, CallFrameInstruction::Register(Register(6), Register(7))), + ( + 20, + CallFrameInstruction::Expression(Register(8), expression.clone()), + ), + ( + 22, + CallFrameInstruction::ValExpression(Register(9), expression.clone()), + ), + (24 + 0x80, CallFrameInstruction::RememberState), + (26 + 0x280, CallFrameInstruction::RestoreState), + (28 + 0x20280, CallFrameInstruction::ArgsSize(23)), + ]; + + let fde_instructions_aarch64 = [(0, CallFrameInstruction::NegateRaState)]; + + for &version in &[1, 3, 4] { + for &address_size in &[4, 8] { + for &vendor in &[Vendor::Default, Vendor::AArch64] { + for &format in &[Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version, + address_size, + }; + let mut frames = FrameTable::default(); + + let mut cie = CommonInformationEntry::new(encoding, 2, 8, X86_64::RA); + for i in &cie_instructions { + cie.add_instruction(i.clone()); + } + let cie_id = frames.add_cie(cie); + + let mut fde = FrameDescriptionEntry::new(Address::Constant(0x1000), 0x10); + for (o, i) in &fde_instructions { + fde.add_instruction(*o, i.clone()); + } + frames.add_fde(cie_id, fde); + + if vendor == Vendor::AArch64 { + let mut fde = + FrameDescriptionEntry::new(Address::Constant(0x2000), 0x10); + for (o, i) in &fde_instructions_aarch64 { + fde.add_instruction(*o, i.clone()); + } + frames.add_fde(cie_id, fde); + } + + let mut debug_frame = DebugFrame::from(EndianVec::new(LittleEndian)); + frames.write_debug_frame(&mut debug_frame).unwrap(); + + let mut read_debug_frame = + read::DebugFrame::new(debug_frame.slice(), LittleEndian); + read_debug_frame.set_address_size(address_size); + read_debug_frame.set_vendor(vendor); + let frames = FrameTable::from(&read_debug_frame, &|address| { + Some(Address::Constant(address)) + }) + .unwrap(); + + assert_eq!( + &frames.cies.get_index(0).unwrap().instructions, + &cie_instructions + ); + assert_eq!(&frames.fdes[0].1.instructions, &fde_instructions); + if vendor == Vendor::AArch64 { + assert_eq!(&frames.fdes[1].1.instructions, &fde_instructions_aarch64); + } + } + } + } + } + } +} diff --git a/src/rust/vendor/gimli/src/write/dwarf.rs b/src/rust/vendor/gimli/src/write/dwarf.rs new file mode 100644 index 000000000..ea507126a --- /dev/null +++ b/src/rust/vendor/gimli/src/write/dwarf.rs @@ -0,0 +1,138 @@ +use alloc::vec::Vec; + +use crate::common::Encoding; +use crate::write::{ + AbbreviationTable, LineProgram, LineStringTable, Result, Sections, StringTable, Unit, + UnitTable, Writer, +}; + +/// Writable DWARF information for more than one unit. +#[derive(Debug, Default)] +pub struct Dwarf { + /// A table of units. These are primarily stored in the `.debug_info` section, + /// but they also contain information that is stored in other sections. + pub units: UnitTable, + + /// Extra line number programs that are not associated with a unit. + /// + /// These should only be used when generating DWARF5 line-only debug + /// information. + pub line_programs: Vec, + + /// A table of strings that will be stored in the `.debug_line_str` section. + pub line_strings: LineStringTable, + + /// A table of strings that will be stored in the `.debug_str` section. + pub strings: StringTable, +} + +impl Dwarf { + /// Create a new `Dwarf` instance. + #[inline] + pub fn new() -> Self { + Self::default() + } + + /// Write the DWARF information to the given sections. + pub fn write(&mut self, sections: &mut Sections) -> Result<()> { + let line_strings = self.line_strings.write(&mut sections.debug_line_str)?; + let strings = self.strings.write(&mut sections.debug_str)?; + self.units.write(sections, &line_strings, &strings)?; + for line_program in &self.line_programs { + line_program.write( + &mut sections.debug_line, + line_program.encoding(), + &line_strings, + &strings, + )?; + } + Ok(()) + } +} + +/// Writable DWARF information for a single unit. +#[derive(Debug)] +pub struct DwarfUnit { + /// A unit. This is primarily stored in the `.debug_info` section, + /// but also contains information that is stored in other sections. + pub unit: Unit, + + /// A table of strings that will be stored in the `.debug_line_str` section. + pub line_strings: LineStringTable, + + /// A table of strings that will be stored in the `.debug_str` section. + pub strings: StringTable, +} + +impl DwarfUnit { + /// Create a new `DwarfUnit`. + /// + /// Note: you should set `self.unit.line_program` after creation. + /// This cannot be done earlier because it may need to reference + /// `self.line_strings`. + pub fn new(encoding: Encoding) -> Self { + let unit = Unit::new(encoding, LineProgram::none()); + DwarfUnit { + unit, + line_strings: LineStringTable::default(), + strings: StringTable::default(), + } + } + + /// Write the DWARf information to the given sections. + pub fn write(&mut self, sections: &mut Sections) -> Result<()> { + let line_strings = self.line_strings.write(&mut sections.debug_line_str)?; + let strings = self.strings.write(&mut sections.debug_str)?; + + let abbrev_offset = sections.debug_abbrev.offset(); + let mut abbrevs = AbbreviationTable::default(); + + self.unit.write( + sections, + abbrev_offset, + &mut abbrevs, + &line_strings, + &strings, + )?; + // None should exist because we didn't give out any UnitId. + assert!(sections.debug_info_refs.is_empty()); + assert!(sections.debug_loc_refs.is_empty()); + assert!(sections.debug_loclists_refs.is_empty()); + + abbrevs.write(&mut sections.debug_abbrev)?; + Ok(()) + } +} + +#[cfg(feature = "read")] +pub(crate) mod convert { + use super::*; + use crate::read::{self, Reader}; + use crate::write::{Address, ConvertResult}; + + impl Dwarf { + /// Create a `write::Dwarf` by converting a `read::Dwarf`. + /// + /// `convert_address` is a function to convert read addresses into the `Address` + /// type. For non-relocatable addresses, this function may simply return + /// `Address::Constant(address)`. For relocatable addresses, it is the caller's + /// responsibility to determine the symbol and addend corresponding to the address + /// and return `Address::Symbol { symbol, addend }`. + pub fn from>( + dwarf: &read::Dwarf, + convert_address: &dyn Fn(u64) -> Option
, + ) -> ConvertResult { + let mut line_strings = LineStringTable::default(); + let mut strings = StringTable::default(); + let units = UnitTable::from(dwarf, &mut line_strings, &mut strings, convert_address)?; + // TODO: convert the line programs that were not referenced by a unit. + let line_programs = Vec::new(); + Ok(Dwarf { + units, + line_programs, + line_strings, + strings, + }) + } + } +} diff --git a/src/rust/vendor/gimli/src/write/endian_vec.rs b/src/rust/vendor/gimli/src/write/endian_vec.rs new file mode 100644 index 000000000..7b040606a --- /dev/null +++ b/src/rust/vendor/gimli/src/write/endian_vec.rs @@ -0,0 +1,117 @@ +use alloc::vec::Vec; +use std::mem; + +use crate::endianity::Endianity; +use crate::write::{Error, Result, Writer}; + +/// A `Vec` with endianity metadata. +/// +/// This implements the `Writer` trait, which is used for all writing of DWARF sections. +#[derive(Debug, Clone)] +pub struct EndianVec +where + Endian: Endianity, +{ + vec: Vec, + endian: Endian, +} + +impl EndianVec +where + Endian: Endianity, +{ + /// Construct an empty `EndianVec` with the given endianity. + pub fn new(endian: Endian) -> EndianVec { + EndianVec { + vec: Vec::new(), + endian, + } + } + + /// Return a reference to the raw slice. + pub fn slice(&self) -> &[u8] { + &self.vec + } + + /// Convert into a `Vec`. + pub fn into_vec(self) -> Vec { + self.vec + } + + /// Take any written data out of the `EndianVec`, leaving an empty `Vec` in its place. + pub fn take(&mut self) -> Vec { + let mut vec = Vec::new(); + mem::swap(&mut self.vec, &mut vec); + vec + } +} + +impl Writer for EndianVec +where + Endian: Endianity, +{ + type Endian = Endian; + + #[inline] + fn endian(&self) -> Self::Endian { + self.endian + } + + #[inline] + fn len(&self) -> usize { + self.vec.len() + } + + fn write(&mut self, bytes: &[u8]) -> Result<()> { + self.vec.extend(bytes); + Ok(()) + } + + fn write_at(&mut self, offset: usize, bytes: &[u8]) -> Result<()> { + if offset > self.vec.len() { + return Err(Error::OffsetOutOfBounds); + } + let to = &mut self.vec[offset..]; + if bytes.len() > to.len() { + return Err(Error::LengthOutOfBounds); + } + let to = &mut to[..bytes.len()]; + to.copy_from_slice(bytes); + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::LittleEndian; + + #[test] + fn test_endian_vec() { + let mut w = EndianVec::new(LittleEndian); + assert_eq!(w.endian(), LittleEndian); + assert_eq!(w.len(), 0); + + w.write(&[1, 2]).unwrap(); + assert_eq!(w.slice(), &[1, 2]); + assert_eq!(w.len(), 2); + + w.write(&[3, 4, 5]).unwrap(); + assert_eq!(w.slice(), &[1, 2, 3, 4, 5]); + assert_eq!(w.len(), 5); + + w.write_at(0, &[6, 7]).unwrap(); + assert_eq!(w.slice(), &[6, 7, 3, 4, 5]); + assert_eq!(w.len(), 5); + + w.write_at(3, &[8, 9]).unwrap(); + assert_eq!(w.slice(), &[6, 7, 3, 8, 9]); + assert_eq!(w.len(), 5); + + assert_eq!(w.write_at(4, &[6, 7]), Err(Error::LengthOutOfBounds)); + assert_eq!(w.write_at(5, &[6, 7]), Err(Error::LengthOutOfBounds)); + assert_eq!(w.write_at(6, &[6, 7]), Err(Error::OffsetOutOfBounds)); + + assert_eq!(w.into_vec(), vec![6, 7, 3, 8, 9]); + } +} diff --git a/src/rust/vendor/gimli/src/write/line.rs b/src/rust/vendor/gimli/src/write/line.rs new file mode 100644 index 000000000..c88b735bc --- /dev/null +++ b/src/rust/vendor/gimli/src/write/line.rs @@ -0,0 +1,1957 @@ +use alloc::vec::Vec; +use indexmap::{IndexMap, IndexSet}; +use std::ops::{Deref, DerefMut}; + +use crate::common::{DebugLineOffset, Encoding, Format, LineEncoding, SectionId}; +use crate::constants; +use crate::leb128; +use crate::write::{ + Address, DebugLineStrOffsets, DebugStrOffsets, Error, LineStringId, LineStringTable, Result, + Section, StringId, Writer, +}; + +/// The number assigned to the first special opcode. +// +// We output all instructions for all DWARF versions, since readers +// should be able to ignore instructions they don't support. +const OPCODE_BASE: u8 = 13; + +/// A line number program. +#[derive(Debug, Clone)] +pub struct LineProgram { + /// True if this line program was created with `LineProgram::none()`. + none: bool, + encoding: Encoding, + line_encoding: LineEncoding, + + /// A list of source directory path names. + /// + /// If a path is relative, then the directory is located relative to the working + /// directory of the compilation unit. + /// + /// The first entry is for the working directory of the compilation unit. + directories: IndexSet, + + /// A list of source file entries. + /// + /// Each entry has a path name and a directory. + /// + /// If a path is a relative, then the file is located relative to the + /// directory. Otherwise the directory is meaningless. + /// + /// Does not include comp_file, even for version >= 5. + files: IndexMap<(LineString, DirectoryId), FileInfo>, + + /// The primary source file of the compilation unit. + /// This is required for version >= 5, but we never reference it elsewhere + /// because DWARF defines DW_AT_decl_file=0 to mean not specified. + comp_file: (LineString, FileInfo), + + /// True if the file entries may have valid timestamps. + /// + /// Entries may still have a timestamp of 0 even if this is set. + /// For version <= 4, this is ignored. + /// For version 5, this controls whether to emit `DW_LNCT_timestamp`. + pub file_has_timestamp: bool, + + /// True if the file entries may have valid sizes. + /// + /// Entries may still have a size of 0 even if this is set. + /// For version <= 4, this is ignored. + /// For version 5, this controls whether to emit `DW_LNCT_size`. + pub file_has_size: bool, + + /// True if the file entries have valid MD5 checksums. + /// + /// For version <= 4, this is ignored. + /// For version 5, this controls whether to emit `DW_LNCT_MD5`. + pub file_has_md5: bool, + + prev_row: LineRow, + row: LineRow, + // TODO: this probably should be either rows or sequences instead + instructions: Vec, + in_sequence: bool, +} + +impl LineProgram { + /// Create a new `LineProgram`. + /// + /// `comp_dir` defines the working directory of the compilation unit, + /// and must be the same as the `DW_AT_comp_dir` attribute + /// of the compilation unit DIE. + /// + /// `comp_file` and `comp_file_info` define the primary source file + /// of the compilation unit and must be the same as the `DW_AT_name` + /// attribute of the compilation unit DIE. + /// + /// # Panics + /// + /// Panics if `line_encoding.line_base` > 0. + /// + /// Panics if `line_encoding.line_base` + `line_encoding.line_range` <= 0. + /// + /// Panics if `comp_dir` is empty or contains a null byte. + /// + /// Panics if `comp_file` is empty or contains a null byte. + pub fn new( + encoding: Encoding, + line_encoding: LineEncoding, + comp_dir: LineString, + comp_file: LineString, + comp_file_info: Option, + ) -> LineProgram { + // We require a special opcode for a line advance of 0. + // See the debug_asserts in generate_row(). + assert!(line_encoding.line_base <= 0); + assert!(line_encoding.line_base + line_encoding.line_range as i8 > 0); + let mut program = LineProgram { + none: false, + encoding, + line_encoding, + directories: IndexSet::new(), + files: IndexMap::new(), + comp_file: (comp_file, comp_file_info.unwrap_or_default()), + prev_row: LineRow::initial_state(line_encoding), + row: LineRow::initial_state(line_encoding), + instructions: Vec::new(), + in_sequence: false, + file_has_timestamp: false, + file_has_size: false, + file_has_md5: false, + }; + // For all DWARF versions, directory index 0 is comp_dir. + // For version <= 4, the entry is implicit. We still add + // it here so that we use it, but we don't emit it. + program.add_directory(comp_dir); + program + } + + /// Create a new `LineProgram` with no fields set. + /// + /// This can be used when the `LineProgram` will not be used. + /// + /// You should not attempt to add files or line instructions to + /// this line program, or write it to the `.debug_line` section. + pub fn none() -> Self { + let line_encoding = LineEncoding::default(); + LineProgram { + none: true, + encoding: Encoding { + format: Format::Dwarf32, + version: 2, + address_size: 0, + }, + line_encoding, + directories: IndexSet::new(), + files: IndexMap::new(), + comp_file: (LineString::String(Vec::new()), FileInfo::default()), + prev_row: LineRow::initial_state(line_encoding), + row: LineRow::initial_state(line_encoding), + instructions: Vec::new(), + in_sequence: false, + file_has_timestamp: false, + file_has_size: false, + file_has_md5: false, + } + } + + /// Return true if this line program was created with `LineProgram::none()`. + #[inline] + pub fn is_none(&self) -> bool { + self.none + } + + /// Return the encoding parameters for this line program. + #[inline] + pub fn encoding(&self) -> Encoding { + self.encoding + } + + /// Return the DWARF version for this line program. + #[inline] + pub fn version(&self) -> u16 { + self.encoding.version + } + + /// Return the address size in bytes for this line program. + #[inline] + pub fn address_size(&self) -> u8 { + self.encoding.address_size + } + + /// Return the DWARF format for this line program. + #[inline] + pub fn format(&self) -> Format { + self.encoding.format + } + + /// Return the id for the working directory of the compilation unit. + #[inline] + pub fn default_directory(&self) -> DirectoryId { + DirectoryId(0) + } + + /// Add a directory entry and return its id. + /// + /// If the directory already exists, then return the id of the existing entry. + /// + /// If the path is relative, then the directory is located relative to the working + /// directory of the compilation unit. + /// + /// # Panics + /// + /// Panics if `directory` is empty or contains a null byte. + pub fn add_directory(&mut self, directory: LineString) -> DirectoryId { + if let LineString::String(ref val) = directory { + // For DWARF version <= 4, directories must not be empty. + // The first directory isn't emitted so skip the check for it. + if self.encoding.version <= 4 && !self.directories.is_empty() { + assert!(!val.is_empty()); + } + assert!(!val.contains(&0)); + } + let (index, _) = self.directories.insert_full(directory); + DirectoryId(index) + } + + /// Get a reference to a directory entry. + /// + /// # Panics + /// + /// Panics if `id` is invalid. + pub fn get_directory(&self, id: DirectoryId) -> &LineString { + self.directories.get_index(id.0).unwrap() + } + + /// Add a file entry and return its id. + /// + /// If the file already exists, then return the id of the existing entry. + /// + /// If the file path is relative, then the file is located relative + /// to the directory. Otherwise the directory is meaningless, but it + /// is still used as a key for file entries. + /// + /// If `info` is `None`, then new entries are assigned + /// default information, and existing entries are unmodified. + /// + /// If `info` is not `None`, then it is always assigned to the + /// entry, even if the entry already exists. + /// + /// # Panics + /// + /// Panics if 'file' is empty or contains a null byte. + pub fn add_file( + &mut self, + file: LineString, + directory: DirectoryId, + info: Option, + ) -> FileId { + if let LineString::String(ref val) = file { + assert!(!val.is_empty()); + assert!(!val.contains(&0)); + } + + let key = (file, directory); + let index = if let Some(info) = info { + let (index, _) = self.files.insert_full(key, info); + index + } else { + let entry = self.files.entry(key); + let index = entry.index(); + entry.or_default(); + index + }; + FileId::new(index) + } + + /// Get a reference to a file entry. + /// + /// # Panics + /// + /// Panics if `id` is invalid. + pub fn get_file(&self, id: FileId) -> (&LineString, DirectoryId) { + match id.index() { + None => (&self.comp_file.0, DirectoryId(0)), + Some(index) => self + .files + .get_index(index) + .map(|entry| (&(entry.0).0, (entry.0).1)) + .unwrap(), + } + } + + /// Get a reference to the info for a file entry. + /// + /// # Panics + /// + /// Panics if `id` is invalid. + pub fn get_file_info(&self, id: FileId) -> &FileInfo { + match id.index() { + None => &self.comp_file.1, + Some(index) => self.files.get_index(index).map(|entry| entry.1).unwrap(), + } + } + + /// Get a mutable reference to the info for a file entry. + /// + /// # Panics + /// + /// Panics if `id` is invalid. + pub fn get_file_info_mut(&mut self, id: FileId) -> &mut FileInfo { + match id.index() { + None => &mut self.comp_file.1, + Some(index) => self + .files + .get_index_mut(index) + .map(|entry| entry.1) + .unwrap(), + } + } + + /// Begin a new sequence and set its base address. + /// + /// # Panics + /// + /// Panics if a sequence has already begun. + pub fn begin_sequence(&mut self, address: Option
) { + assert!(!self.in_sequence); + self.in_sequence = true; + if let Some(address) = address { + self.instructions.push(LineInstruction::SetAddress(address)); + } + } + + /// End the sequence, and reset the row to its default values. + /// + /// Only the `address_offset` and op_index` fields of the current row are used. + /// + /// # Panics + /// + /// Panics if a sequence has not begun. + pub fn end_sequence(&mut self, address_offset: u64) { + assert!(self.in_sequence); + self.in_sequence = false; + self.row.address_offset = address_offset; + let op_advance = self.op_advance(); + if op_advance != 0 { + self.instructions + .push(LineInstruction::AdvancePc(op_advance)); + } + self.instructions.push(LineInstruction::EndSequence); + self.prev_row = LineRow::initial_state(self.line_encoding); + self.row = LineRow::initial_state(self.line_encoding); + } + + /// Return true if a sequence has begun. + #[inline] + pub fn in_sequence(&self) -> bool { + self.in_sequence + } + + /// Returns a reference to the data for the current row. + #[inline] + pub fn row(&mut self) -> &mut LineRow { + &mut self.row + } + + /// Generates the line number information instructions for the current row. + /// + /// After the instructions are generated, it sets `discriminator` to 0, and sets + /// `basic_block`, `prologue_end`, and `epilogue_begin` to false. + /// + /// # Panics + /// + /// Panics if a sequence has not begun. + /// Panics if the address_offset decreases. + pub fn generate_row(&mut self) { + assert!(self.in_sequence); + + // Output fields that are reset on every row. + if self.row.discriminator != 0 { + self.instructions + .push(LineInstruction::SetDiscriminator(self.row.discriminator)); + self.row.discriminator = 0; + } + if self.row.basic_block { + self.instructions.push(LineInstruction::SetBasicBlock); + self.row.basic_block = false; + } + if self.row.prologue_end { + self.instructions.push(LineInstruction::SetPrologueEnd); + self.row.prologue_end = false; + } + if self.row.epilogue_begin { + self.instructions.push(LineInstruction::SetEpilogueBegin); + self.row.epilogue_begin = false; + } + + // Output fields that are not reset on every row. + if self.row.is_statement != self.prev_row.is_statement { + self.instructions.push(LineInstruction::NegateStatement); + } + if self.row.file != self.prev_row.file { + self.instructions + .push(LineInstruction::SetFile(self.row.file)); + } + if self.row.column != self.prev_row.column { + self.instructions + .push(LineInstruction::SetColumn(self.row.column)); + } + if self.row.isa != self.prev_row.isa { + self.instructions + .push(LineInstruction::SetIsa(self.row.isa)); + } + + // Advance the line, address, and operation index. + let line_base = i64::from(self.line_encoding.line_base) as u64; + let line_range = u64::from(self.line_encoding.line_range); + let line_advance = self.row.line as i64 - self.prev_row.line as i64; + let op_advance = self.op_advance(); + + // Default to special advances of 0. + let special_base = u64::from(OPCODE_BASE); + // TODO: handle lack of special opcodes for 0 line advance + debug_assert!(self.line_encoding.line_base <= 0); + debug_assert!(self.line_encoding.line_base + self.line_encoding.line_range as i8 >= 0); + let special_default = special_base.wrapping_sub(line_base); + let mut special = special_default; + let mut use_special = false; + + if line_advance != 0 { + let special_line = (line_advance as u64).wrapping_sub(line_base); + if special_line < line_range { + special = special_base + special_line; + use_special = true; + } else { + self.instructions + .push(LineInstruction::AdvanceLine(line_advance)); + } + } + + if op_advance != 0 { + // Using ConstAddPc can save a byte. + let (special_op_advance, const_add_pc) = if special + op_advance * line_range <= 255 { + (op_advance, false) + } else { + let op_range = (255 - special_base) / line_range; + (op_advance - op_range, true) + }; + + let special_op = special_op_advance * line_range; + if special + special_op <= 255 { + special += special_op; + use_special = true; + if const_add_pc { + self.instructions.push(LineInstruction::ConstAddPc); + } + } else { + self.instructions + .push(LineInstruction::AdvancePc(op_advance)); + } + } + + if use_special && special != special_default { + debug_assert!(special >= special_base); + debug_assert!(special <= 255); + self.instructions + .push(LineInstruction::Special(special as u8)); + } else { + self.instructions.push(LineInstruction::Copy); + } + + self.prev_row = self.row; + } + + fn op_advance(&self) -> u64 { + debug_assert!(self.row.address_offset >= self.prev_row.address_offset); + let mut address_advance = self.row.address_offset - self.prev_row.address_offset; + if self.line_encoding.minimum_instruction_length != 1 { + debug_assert_eq!( + self.row.address_offset % u64::from(self.line_encoding.minimum_instruction_length), + 0 + ); + address_advance /= u64::from(self.line_encoding.minimum_instruction_length); + } + address_advance * u64::from(self.line_encoding.maximum_operations_per_instruction) + + self.row.op_index + - self.prev_row.op_index + } + + /// Returns true if the line number program has no instructions. + /// + /// Does not check the file or directory entries. + #[inline] + pub fn is_empty(&self) -> bool { + self.instructions.is_empty() + } + + /// Write the line number program to the given section. + /// + /// # Panics + /// + /// Panics if `self.is_none()`. + pub fn write( + &self, + w: &mut DebugLine, + encoding: Encoding, + debug_line_str_offsets: &DebugLineStrOffsets, + debug_str_offsets: &DebugStrOffsets, + ) -> Result { + assert!(!self.is_none()); + + if encoding.version < self.version() + || encoding.format != self.format() + || encoding.address_size != self.address_size() + { + return Err(Error::IncompatibleLineProgramEncoding); + } + + let offset = w.offset(); + + let length_offset = w.write_initial_length(self.format())?; + let length_base = w.len(); + + if self.version() < 2 || self.version() > 5 { + return Err(Error::UnsupportedVersion(self.version())); + } + w.write_u16(self.version())?; + + if self.version() >= 5 { + w.write_u8(self.address_size())?; + // Segment selector size. + w.write_u8(0)?; + } + + let header_length_offset = w.len(); + w.write_udata(0, self.format().word_size())?; + let header_length_base = w.len(); + + w.write_u8(self.line_encoding.minimum_instruction_length)?; + if self.version() >= 4 { + w.write_u8(self.line_encoding.maximum_operations_per_instruction)?; + } else if self.line_encoding.maximum_operations_per_instruction != 1 { + return Err(Error::NeedVersion(4)); + }; + w.write_u8(if self.line_encoding.default_is_stmt { + 1 + } else { + 0 + })?; + w.write_u8(self.line_encoding.line_base as u8)?; + w.write_u8(self.line_encoding.line_range)?; + w.write_u8(OPCODE_BASE)?; + w.write(&[0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1])?; + + if self.version() <= 4 { + // The first directory is stored as DW_AT_comp_dir. + for dir in self.directories.iter().skip(1) { + dir.write( + w, + constants::DW_FORM_string, + self.encoding, + debug_line_str_offsets, + debug_str_offsets, + )?; + } + w.write_u8(0)?; + + for ((file, dir), info) in self.files.iter() { + file.write( + w, + constants::DW_FORM_string, + self.encoding, + debug_line_str_offsets, + debug_str_offsets, + )?; + w.write_uleb128(dir.0 as u64)?; + w.write_uleb128(info.timestamp)?; + w.write_uleb128(info.size)?; + } + w.write_u8(0)?; + } else { + // Directory entry formats (only ever 1). + w.write_u8(1)?; + w.write_uleb128(u64::from(constants::DW_LNCT_path.0))?; + let dir_form = self.directories.get_index(0).unwrap().form(); + w.write_uleb128(dir_form.0.into())?; + + // Directory entries. + w.write_uleb128(self.directories.len() as u64)?; + for dir in self.directories.iter() { + dir.write( + w, + dir_form, + self.encoding, + debug_line_str_offsets, + debug_str_offsets, + )?; + } + + // File name entry formats. + let count = 2 + + if self.file_has_timestamp { 1 } else { 0 } + + if self.file_has_size { 1 } else { 0 } + + if self.file_has_md5 { 1 } else { 0 }; + w.write_u8(count)?; + w.write_uleb128(u64::from(constants::DW_LNCT_path.0))?; + let file_form = self.comp_file.0.form(); + w.write_uleb128(file_form.0.into())?; + w.write_uleb128(u64::from(constants::DW_LNCT_directory_index.0))?; + w.write_uleb128(constants::DW_FORM_udata.0.into())?; + if self.file_has_timestamp { + w.write_uleb128(u64::from(constants::DW_LNCT_timestamp.0))?; + w.write_uleb128(constants::DW_FORM_udata.0.into())?; + } + if self.file_has_size { + w.write_uleb128(u64::from(constants::DW_LNCT_size.0))?; + w.write_uleb128(constants::DW_FORM_udata.0.into())?; + } + if self.file_has_md5 { + w.write_uleb128(u64::from(constants::DW_LNCT_MD5.0))?; + w.write_uleb128(constants::DW_FORM_data16.0.into())?; + } + + // File name entries. + w.write_uleb128(self.files.len() as u64 + 1)?; + let mut write_file = |file: &LineString, dir: DirectoryId, info: &FileInfo| { + file.write( + w, + file_form, + self.encoding, + debug_line_str_offsets, + debug_str_offsets, + )?; + w.write_uleb128(dir.0 as u64)?; + if self.file_has_timestamp { + w.write_uleb128(info.timestamp)?; + } + if self.file_has_size { + w.write_uleb128(info.size)?; + } + if self.file_has_md5 { + w.write(&info.md5)?; + } + Ok(()) + }; + write_file(&self.comp_file.0, DirectoryId(0), &self.comp_file.1)?; + for ((file, dir), info) in self.files.iter() { + write_file(file, *dir, info)?; + } + } + + let header_length = (w.len() - header_length_base) as u64; + w.write_udata_at( + header_length_offset, + header_length, + self.format().word_size(), + )?; + + for instruction in &self.instructions { + instruction.write(w, self.address_size())?; + } + + let length = (w.len() - length_base) as u64; + w.write_initial_length_at(length_offset, length, self.format())?; + + Ok(offset) + } +} + +/// A row in the line number table that corresponds to a machine instruction. +#[derive(Debug, Clone, Copy)] +pub struct LineRow { + /// The offset of the instruction from the start address of the sequence. + pub address_offset: u64, + /// The index of an operation within a VLIW instruction. + /// + /// The index of the first operation is 0. + /// Set to 0 for non-VLIW instructions. + pub op_index: u64, + + /// The source file corresponding to the instruction. + pub file: FileId, + /// The line number within the source file. + /// + /// Lines are numbered beginning at 1. Set to 0 if there is no source line. + pub line: u64, + /// The column number within the source line. + /// + /// Columns are numbered beginning at 1. Set to 0 for the "left edge" of the line. + pub column: u64, + /// An additional discriminator used to distinguish between source locations. + /// This value is assigned arbitrarily by the DWARF producer. + pub discriminator: u64, + + /// Set to true if the instruction is a recommended breakpoint for a statement. + pub is_statement: bool, + /// Set to true if the instruction is the beginning of a basic block. + pub basic_block: bool, + /// Set to true if the instruction is a recommended breakpoint at the entry of a + /// function. + pub prologue_end: bool, + /// Set to true if the instruction is a recommended breakpoint prior to the exit of + /// a function. + pub epilogue_begin: bool, + + /// The instruction set architecture of the instruction. + /// + /// Set to 0 for the default ISA. Other values are defined by the architecture ABI. + pub isa: u64, +} + +impl LineRow { + /// Return the initial state as specified in the DWARF standard. + fn initial_state(line_encoding: LineEncoding) -> Self { + LineRow { + address_offset: 0, + op_index: 0, + + file: FileId::initial_state(), + line: 1, + column: 0, + discriminator: 0, + + is_statement: line_encoding.default_is_stmt, + basic_block: false, + prologue_end: false, + epilogue_begin: false, + + isa: 0, + } + } +} + +/// An instruction in a line number program. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum LineInstruction { + // Special opcodes + Special(u8), + + // Standard opcodes + Copy, + AdvancePc(u64), + AdvanceLine(i64), + SetFile(FileId), + SetColumn(u64), + NegateStatement, + SetBasicBlock, + ConstAddPc, + // DW_LNS_fixed_advance_pc is not supported. + SetPrologueEnd, + SetEpilogueBegin, + SetIsa(u64), + + // Extended opcodes + EndSequence, + // TODO: this doubles the size of this enum. + SetAddress(Address), + // DW_LNE_define_file is not supported. + SetDiscriminator(u64), +} + +impl LineInstruction { + /// Write the line number instruction to the given section. + fn write(self, w: &mut DebugLine, address_size: u8) -> Result<()> { + use self::LineInstruction::*; + match self { + Special(val) => w.write_u8(val)?, + Copy => w.write_u8(constants::DW_LNS_copy.0)?, + AdvancePc(val) => { + w.write_u8(constants::DW_LNS_advance_pc.0)?; + w.write_uleb128(val)?; + } + AdvanceLine(val) => { + w.write_u8(constants::DW_LNS_advance_line.0)?; + w.write_sleb128(val)?; + } + SetFile(val) => { + w.write_u8(constants::DW_LNS_set_file.0)?; + w.write_uleb128(val.raw())?; + } + SetColumn(val) => { + w.write_u8(constants::DW_LNS_set_column.0)?; + w.write_uleb128(val)?; + } + NegateStatement => w.write_u8(constants::DW_LNS_negate_stmt.0)?, + SetBasicBlock => w.write_u8(constants::DW_LNS_set_basic_block.0)?, + ConstAddPc => w.write_u8(constants::DW_LNS_const_add_pc.0)?, + SetPrologueEnd => w.write_u8(constants::DW_LNS_set_prologue_end.0)?, + SetEpilogueBegin => w.write_u8(constants::DW_LNS_set_epilogue_begin.0)?, + SetIsa(val) => { + w.write_u8(constants::DW_LNS_set_isa.0)?; + w.write_uleb128(val)?; + } + EndSequence => { + w.write_u8(0)?; + w.write_uleb128(1)?; + w.write_u8(constants::DW_LNE_end_sequence.0)?; + } + SetAddress(address) => { + w.write_u8(0)?; + w.write_uleb128(1 + u64::from(address_size))?; + w.write_u8(constants::DW_LNE_set_address.0)?; + w.write_address(address, address_size)?; + } + SetDiscriminator(val) => { + let mut bytes = [0u8; 10]; + // bytes is long enough so this will never fail. + let len = leb128::write::unsigned(&mut { &mut bytes[..] }, val).unwrap(); + w.write_u8(0)?; + w.write_uleb128(1 + len as u64)?; + w.write_u8(constants::DW_LNE_set_discriminator.0)?; + w.write(&bytes[..len])?; + } + } + Ok(()) + } +} + +/// A string value for use in defining paths in line number programs. +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub enum LineString { + /// A slice of bytes representing a string. Must not include null bytes. + /// Not guaranteed to be UTF-8 or anything like that. + String(Vec), + + /// A reference to a string in the `.debug_str` section. + StringRef(StringId), + + /// A reference to a string in the `.debug_line_str` section. + LineStringRef(LineStringId), +} + +impl LineString { + /// Create a `LineString` using the normal form for the given encoding. + pub fn new(val: T, encoding: Encoding, line_strings: &mut LineStringTable) -> Self + where + T: Into>, + { + let val = val.into(); + if encoding.version <= 4 { + LineString::String(val) + } else { + LineString::LineStringRef(line_strings.add(val)) + } + } + + fn form(&self) -> constants::DwForm { + match *self { + LineString::String(..) => constants::DW_FORM_string, + LineString::StringRef(..) => constants::DW_FORM_strp, + LineString::LineStringRef(..) => constants::DW_FORM_line_strp, + } + } + + fn write( + &self, + w: &mut DebugLine, + form: constants::DwForm, + encoding: Encoding, + debug_line_str_offsets: &DebugLineStrOffsets, + debug_str_offsets: &DebugStrOffsets, + ) -> Result<()> { + if form != self.form() { + return Err(Error::LineStringFormMismatch); + } + + match *self { + LineString::String(ref val) => { + if encoding.version <= 4 { + debug_assert!(!val.is_empty()); + } + w.write(val)?; + w.write_u8(0)?; + } + LineString::StringRef(val) => { + if encoding.version < 5 { + return Err(Error::NeedVersion(5)); + } + w.write_offset( + debug_str_offsets.get(val).0, + SectionId::DebugStr, + encoding.format.word_size(), + )?; + } + LineString::LineStringRef(val) => { + if encoding.version < 5 { + return Err(Error::NeedVersion(5)); + } + w.write_offset( + debug_line_str_offsets.get(val).0, + SectionId::DebugLineStr, + encoding.format.word_size(), + )?; + } + } + Ok(()) + } +} + +/// An identifier for a directory in a `LineProgram`. +/// +/// Defaults to the working directory of the compilation unit. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct DirectoryId(usize); + +// Force FileId access via the methods. +mod id { + /// An identifier for a file in a `LineProgram`. + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub struct FileId(usize); + + impl FileId { + /// Create a FileId given an index into `LineProgram::files`. + pub(crate) fn new(index: usize) -> Self { + FileId(index + 1) + } + + /// The index of the file in `LineProgram::files`. + pub(super) fn index(self) -> Option { + if self.0 == 0 { + None + } else { + Some(self.0 - 1) + } + } + + /// The initial state of the file register. + pub(super) fn initial_state() -> Self { + FileId(1) + } + + /// The raw value used when writing. + pub(crate) fn raw(self) -> u64 { + self.0 as u64 + } + + /// The id for file index 0 in DWARF version 5. + /// Only used when converting. + // Used for tests only. + #[allow(unused)] + pub(super) fn zero() -> Self { + FileId(0) + } + } +} +pub use self::id::*; + +/// Extra information for file in a `LineProgram`. +#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)] +pub struct FileInfo { + /// The implementation defined timestamp of the last modification of the file, + /// or 0 if not available. + pub timestamp: u64, + + /// The size of the file in bytes, or 0 if not available. + pub size: u64, + + /// A 16-byte MD5 digest of the file contents. + /// + /// Only used if version >= 5 and `LineProgram::file_has_md5` is `true`. + pub md5: [u8; 16], +} + +define_section!( + DebugLine, + DebugLineOffset, + "A writable `.debug_line` section." +); + +#[cfg(feature = "read")] +mod convert { + use super::*; + use crate::read::{self, Reader}; + use crate::write::{self, ConvertError, ConvertResult}; + + impl LineProgram { + /// Create a line number program by reading the data from the given program. + /// + /// Return the program and a mapping from file index to `FileId`. + pub fn from>( + mut from_program: read::IncompleteLineProgram, + dwarf: &read::Dwarf, + line_strings: &mut write::LineStringTable, + strings: &mut write::StringTable, + convert_address: &dyn Fn(u64) -> Option
, + ) -> ConvertResult<(LineProgram, Vec)> { + // Create mappings in case the source has duplicate files or directories. + let mut dirs = Vec::new(); + let mut files = Vec::new(); + + let mut program = { + let from_header = from_program.header(); + let encoding = from_header.encoding(); + + let comp_dir = match from_header.directory(0) { + Some(comp_dir) => LineString::from(comp_dir, dwarf, line_strings, strings)?, + None => LineString::new(&[][..], encoding, line_strings), + }; + + let (comp_name, comp_file_info) = match from_header.file(0) { + Some(comp_file) => { + if comp_file.directory_index() != 0 { + return Err(ConvertError::InvalidDirectoryIndex); + } + ( + LineString::from(comp_file.path_name(), dwarf, line_strings, strings)?, + Some(FileInfo { + timestamp: comp_file.timestamp(), + size: comp_file.size(), + md5: *comp_file.md5(), + }), + ) + } + None => (LineString::new(&[][..], encoding, line_strings), None), + }; + + if from_header.line_base() > 0 { + return Err(ConvertError::InvalidLineBase); + } + let mut program = LineProgram::new( + encoding, + from_header.line_encoding(), + comp_dir, + comp_name, + comp_file_info, + ); + + let file_skip; + if from_header.version() <= 4 { + // The first directory is implicit. + dirs.push(DirectoryId(0)); + // A file index of 0 is invalid for version <= 4, but putting + // something there makes the indexing easier. + file_skip = 0; + files.push(FileId::zero()); + } else { + // We don't add the first file to `files`, but still allow + // it to be referenced from converted instructions. + file_skip = 1; + files.push(FileId::zero()); + } + + for from_dir in from_header.include_directories() { + let from_dir = + LineString::from(from_dir.clone(), dwarf, line_strings, strings)?; + dirs.push(program.add_directory(from_dir)); + } + + program.file_has_timestamp = from_header.file_has_timestamp(); + program.file_has_size = from_header.file_has_size(); + program.file_has_md5 = from_header.file_has_md5(); + for from_file in from_header.file_names().iter().skip(file_skip) { + let from_name = + LineString::from(from_file.path_name(), dwarf, line_strings, strings)?; + let from_dir = from_file.directory_index(); + if from_dir >= dirs.len() as u64 { + return Err(ConvertError::InvalidDirectoryIndex); + } + let from_dir = dirs[from_dir as usize]; + let from_info = Some(FileInfo { + timestamp: from_file.timestamp(), + size: from_file.size(), + md5: *from_file.md5(), + }); + files.push(program.add_file(from_name, from_dir, from_info)); + } + + program + }; + + // We can't use the `from_program.rows()` because that wouldn't let + // us preserve address relocations. + let mut from_row = read::LineRow::new(from_program.header()); + let mut instructions = from_program.header().instructions(); + let mut address = None; + while let Some(instruction) = instructions.next_instruction(from_program.header())? { + match instruction { + read::LineInstruction::SetAddress(val) => { + if program.in_sequence() { + return Err(ConvertError::UnsupportedLineInstruction); + } + match convert_address(val) { + Some(val) => address = Some(val), + None => return Err(ConvertError::InvalidAddress), + } + from_row.execute(read::LineInstruction::SetAddress(0), &mut from_program); + } + read::LineInstruction::DefineFile(_) => { + return Err(ConvertError::UnsupportedLineInstruction); + } + _ => { + if from_row.execute(instruction, &mut from_program) { + if !program.in_sequence() { + program.begin_sequence(address); + address = None; + } + if from_row.end_sequence() { + program.end_sequence(from_row.address()); + } else { + program.row().address_offset = from_row.address(); + program.row().op_index = from_row.op_index(); + program.row().file = { + let file = from_row.file_index(); + if file >= files.len() as u64 { + return Err(ConvertError::InvalidFileIndex); + } + if file == 0 && program.version() <= 4 { + return Err(ConvertError::InvalidFileIndex); + } + files[file as usize] + }; + program.row().line = match from_row.line() { + Some(line) => line.get(), + None => 0, + }; + program.row().column = match from_row.column() { + read::ColumnType::LeftEdge => 0, + read::ColumnType::Column(val) => val.get(), + }; + program.row().discriminator = from_row.discriminator(); + program.row().is_statement = from_row.is_stmt(); + program.row().basic_block = from_row.basic_block(); + program.row().prologue_end = from_row.prologue_end(); + program.row().epilogue_begin = from_row.epilogue_begin(); + program.row().isa = from_row.isa(); + program.generate_row(); + } + from_row.reset(from_program.header()); + } + } + }; + } + Ok((program, files)) + } + } + + impl LineString { + fn from>( + from_attr: read::AttributeValue, + dwarf: &read::Dwarf, + line_strings: &mut write::LineStringTable, + strings: &mut write::StringTable, + ) -> ConvertResult { + Ok(match from_attr { + read::AttributeValue::String(r) => LineString::String(r.to_slice()?.to_vec()), + read::AttributeValue::DebugStrRef(offset) => { + let r = dwarf.debug_str.get_str(offset)?; + let id = strings.add(r.to_slice()?); + LineString::StringRef(id) + } + read::AttributeValue::DebugLineStrRef(offset) => { + let r = dwarf.debug_line_str.get_str(offset)?; + let id = line_strings.add(r.to_slice()?); + LineString::LineStringRef(id) + } + _ => return Err(ConvertError::UnsupportedLineStringForm), + }) + } + } +} + +#[cfg(test)] +#[cfg(feature = "read")] +mod tests { + use super::*; + use crate::read; + use crate::write::{DebugLineStr, DebugStr, EndianVec, StringTable}; + use crate::LittleEndian; + + #[test] + fn test_line_program_table() { + let dir1 = LineString::String(b"dir1".to_vec()); + let file1 = LineString::String(b"file1".to_vec()); + let dir2 = LineString::String(b"dir2".to_vec()); + let file2 = LineString::String(b"file2".to_vec()); + + let mut programs = Vec::new(); + for &version in &[2, 3, 4, 5] { + for &address_size in &[4, 8] { + for &format in &[Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version, + address_size, + }; + let mut program = LineProgram::new( + encoding, + LineEncoding::default(), + dir1.clone(), + file1.clone(), + None, + ); + + { + assert_eq!(&dir1, program.get_directory(program.default_directory())); + program.file_has_timestamp = true; + program.file_has_size = true; + if encoding.version >= 5 { + program.file_has_md5 = true; + } + + let dir_id = program.add_directory(dir2.clone()); + assert_eq!(&dir2, program.get_directory(dir_id)); + assert_eq!(dir_id, program.add_directory(dir2.clone())); + + let file_info = FileInfo { + timestamp: 1, + size: 2, + md5: if encoding.version >= 5 { + [3; 16] + } else { + [0; 16] + }, + }; + let file_id = program.add_file(file2.clone(), dir_id, Some(file_info)); + assert_eq!((&file2, dir_id), program.get_file(file_id)); + assert_eq!(file_info, *program.get_file_info(file_id)); + + program.get_file_info_mut(file_id).size = 3; + assert_ne!(file_info, *program.get_file_info(file_id)); + assert_eq!(file_id, program.add_file(file2.clone(), dir_id, None)); + assert_ne!(file_info, *program.get_file_info(file_id)); + assert_eq!( + file_id, + program.add_file(file2.clone(), dir_id, Some(file_info)) + ); + assert_eq!(file_info, *program.get_file_info(file_id)); + + programs.push((program, file_id, encoding)); + } + } + } + } + + let debug_line_str_offsets = DebugLineStrOffsets::none(); + let debug_str_offsets = DebugStrOffsets::none(); + let mut debug_line = DebugLine::from(EndianVec::new(LittleEndian)); + let mut debug_line_offsets = Vec::new(); + for (program, _, encoding) in &programs { + debug_line_offsets.push( + program + .write( + &mut debug_line, + *encoding, + &debug_line_str_offsets, + &debug_str_offsets, + ) + .unwrap(), + ); + } + + let read_debug_line = read::DebugLine::new(debug_line.slice(), LittleEndian); + + let convert_address = &|address| Some(Address::Constant(address)); + for ((program, file_id, encoding), offset) in programs.iter().zip(debug_line_offsets.iter()) + { + let read_program = read_debug_line + .program( + *offset, + encoding.address_size, + Some(read::EndianSlice::new(b"dir1", LittleEndian)), + Some(read::EndianSlice::new(b"file1", LittleEndian)), + ) + .unwrap(); + + let dwarf = read::Dwarf::default(); + let mut convert_line_strings = LineStringTable::default(); + let mut convert_strings = StringTable::default(); + let (convert_program, convert_files) = LineProgram::from( + read_program, + &dwarf, + &mut convert_line_strings, + &mut convert_strings, + convert_address, + ) + .unwrap(); + assert_eq!(convert_program.version(), program.version()); + assert_eq!(convert_program.address_size(), program.address_size()); + assert_eq!(convert_program.format(), program.format()); + + let convert_file_id = convert_files[file_id.raw() as usize]; + let (file, dir) = program.get_file(*file_id); + let (convert_file, convert_dir) = convert_program.get_file(convert_file_id); + assert_eq!(file, convert_file); + assert_eq!( + program.get_directory(dir), + convert_program.get_directory(convert_dir) + ); + assert_eq!( + program.get_file_info(*file_id), + convert_program.get_file_info(convert_file_id) + ); + } + } + + #[test] + fn test_line_row() { + let dir1 = &b"dir1"[..]; + let file1 = &b"file1"[..]; + let file2 = &b"file2"[..]; + let convert_address = &|address| Some(Address::Constant(address)); + + let debug_line_str_offsets = DebugLineStrOffsets::none(); + let debug_str_offsets = DebugStrOffsets::none(); + + for &version in &[2, 3, 4, 5] { + for &address_size in &[4, 8] { + for &format in &[Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version, + address_size, + }; + let line_base = -5; + let line_range = 14; + let neg_line_base = (-line_base) as u8; + let mut program = LineProgram::new( + encoding, + LineEncoding { + line_base, + line_range, + ..Default::default() + }, + LineString::String(dir1.to_vec()), + LineString::String(file1.to_vec()), + None, + ); + let dir_id = program.default_directory(); + program.add_file(LineString::String(file1.to_vec()), dir_id, None); + let file_id = + program.add_file(LineString::String(file2.to_vec()), dir_id, None); + + // Test sequences. + { + let mut program = program.clone(); + let address = Address::Constant(0x12); + program.begin_sequence(Some(address)); + assert_eq!( + program.instructions, + vec![LineInstruction::SetAddress(address)] + ); + } + + { + let mut program = program.clone(); + program.begin_sequence(None); + assert_eq!(program.instructions, Vec::new()); + } + + { + let mut program = program.clone(); + program.begin_sequence(None); + program.end_sequence(0x1234); + assert_eq!( + program.instructions, + vec![ + LineInstruction::AdvancePc(0x1234), + LineInstruction::EndSequence + ] + ); + } + + // Create a base program. + program.begin_sequence(None); + program.row.line = 0x1000; + program.generate_row(); + let base_row = program.row; + let base_instructions = program.instructions.clone(); + + // Create test cases. + let mut tests = Vec::new(); + + let row = base_row; + tests.push((row, vec![LineInstruction::Copy])); + + let mut row = base_row; + row.line -= u64::from(neg_line_base); + tests.push((row, vec![LineInstruction::Special(OPCODE_BASE)])); + + let mut row = base_row; + row.line += u64::from(line_range) - 1; + row.line -= u64::from(neg_line_base); + tests.push(( + row, + vec![LineInstruction::Special(OPCODE_BASE + line_range - 1)], + )); + + let mut row = base_row; + row.line += u64::from(line_range); + row.line -= u64::from(neg_line_base); + tests.push(( + row, + vec![ + LineInstruction::AdvanceLine(i64::from(line_range - neg_line_base)), + LineInstruction::Copy, + ], + )); + + let mut row = base_row; + row.address_offset = 1; + row.line -= u64::from(neg_line_base); + tests.push(( + row, + vec![LineInstruction::Special(OPCODE_BASE + line_range)], + )); + + let op_range = (255 - OPCODE_BASE) / line_range; + let mut row = base_row; + row.address_offset = u64::from(op_range); + row.line -= u64::from(neg_line_base); + tests.push(( + row, + vec![LineInstruction::Special( + OPCODE_BASE + op_range * line_range, + )], + )); + + let mut row = base_row; + row.address_offset = u64::from(op_range); + row.line += u64::from(255 - OPCODE_BASE - op_range * line_range); + row.line -= u64::from(neg_line_base); + tests.push((row, vec![LineInstruction::Special(255)])); + + let mut row = base_row; + row.address_offset = u64::from(op_range); + row.line += u64::from(255 - OPCODE_BASE - op_range * line_range) + 1; + row.line -= u64::from(neg_line_base); + tests.push(( + row, + vec![LineInstruction::ConstAddPc, LineInstruction::Copy], + )); + + let mut row = base_row; + row.address_offset = u64::from(op_range); + row.line += u64::from(255 - OPCODE_BASE - op_range * line_range) + 2; + row.line -= u64::from(neg_line_base); + tests.push(( + row, + vec![ + LineInstruction::ConstAddPc, + LineInstruction::Special(OPCODE_BASE + 6), + ], + )); + + let mut row = base_row; + row.address_offset = u64::from(op_range) * 2; + row.line += u64::from(255 - OPCODE_BASE - op_range * line_range); + row.line -= u64::from(neg_line_base); + tests.push(( + row, + vec![LineInstruction::ConstAddPc, LineInstruction::Special(255)], + )); + + let mut row = base_row; + row.address_offset = u64::from(op_range) * 2; + row.line += u64::from(255 - OPCODE_BASE - op_range * line_range) + 1; + row.line -= u64::from(neg_line_base); + tests.push(( + row, + vec![ + LineInstruction::AdvancePc(row.address_offset), + LineInstruction::Copy, + ], + )); + + let mut row = base_row; + row.address_offset = u64::from(op_range) * 2; + row.line += u64::from(255 - OPCODE_BASE - op_range * line_range) + 2; + row.line -= u64::from(neg_line_base); + tests.push(( + row, + vec![ + LineInstruction::AdvancePc(row.address_offset), + LineInstruction::Special(OPCODE_BASE + 6), + ], + )); + + let mut row = base_row; + row.address_offset = 0x1234; + tests.push(( + row, + vec![LineInstruction::AdvancePc(0x1234), LineInstruction::Copy], + )); + + let mut row = base_row; + row.line += 0x1234; + tests.push(( + row, + vec![LineInstruction::AdvanceLine(0x1234), LineInstruction::Copy], + )); + + let mut row = base_row; + row.file = file_id; + tests.push(( + row, + vec![LineInstruction::SetFile(file_id), LineInstruction::Copy], + )); + + let mut row = base_row; + row.column = 0x1234; + tests.push(( + row, + vec![LineInstruction::SetColumn(0x1234), LineInstruction::Copy], + )); + + let mut row = base_row; + row.discriminator = 0x1234; + tests.push(( + row, + vec![ + LineInstruction::SetDiscriminator(0x1234), + LineInstruction::Copy, + ], + )); + + let mut row = base_row; + row.is_statement = !row.is_statement; + tests.push(( + row, + vec![LineInstruction::NegateStatement, LineInstruction::Copy], + )); + + let mut row = base_row; + row.basic_block = true; + tests.push(( + row, + vec![LineInstruction::SetBasicBlock, LineInstruction::Copy], + )); + + let mut row = base_row; + row.prologue_end = true; + tests.push(( + row, + vec![LineInstruction::SetPrologueEnd, LineInstruction::Copy], + )); + + let mut row = base_row; + row.epilogue_begin = true; + tests.push(( + row, + vec![LineInstruction::SetEpilogueBegin, LineInstruction::Copy], + )); + + let mut row = base_row; + row.isa = 0x1234; + tests.push(( + row, + vec![LineInstruction::SetIsa(0x1234), LineInstruction::Copy], + )); + + for test in tests { + // Test generate_row(). + let mut program = program.clone(); + program.row = test.0; + program.generate_row(); + assert_eq!( + &program.instructions[base_instructions.len()..], + &test.1[..] + ); + + // Test LineProgram::from(). + let mut debug_line = DebugLine::from(EndianVec::new(LittleEndian)); + let debug_line_offset = program + .write( + &mut debug_line, + encoding, + &debug_line_str_offsets, + &debug_str_offsets, + ) + .unwrap(); + + let read_debug_line = + read::DebugLine::new(debug_line.slice(), LittleEndian); + let read_program = read_debug_line + .program( + debug_line_offset, + address_size, + Some(read::EndianSlice::new(dir1, LittleEndian)), + Some(read::EndianSlice::new(file1, LittleEndian)), + ) + .unwrap(); + + let dwarf = read::Dwarf::default(); + let mut convert_line_strings = LineStringTable::default(); + let mut convert_strings = StringTable::default(); + let (convert_program, _convert_files) = LineProgram::from( + read_program, + &dwarf, + &mut convert_line_strings, + &mut convert_strings, + convert_address, + ) + .unwrap(); + assert_eq!( + &convert_program.instructions[base_instructions.len()..], + &test.1[..] + ); + } + } + } + } + } + + #[test] + fn test_line_instruction() { + let dir1 = &b"dir1"[..]; + let file1 = &b"file1"[..]; + + let debug_line_str_offsets = DebugLineStrOffsets::none(); + let debug_str_offsets = DebugStrOffsets::none(); + + for &version in &[2, 3, 4, 5] { + for &address_size in &[4, 8] { + for &format in &[Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version, + address_size, + }; + let mut program = LineProgram::new( + encoding, + LineEncoding::default(), + LineString::String(dir1.to_vec()), + LineString::String(file1.to_vec()), + None, + ); + let dir_id = program.default_directory(); + let file_id = + program.add_file(LineString::String(file1.to_vec()), dir_id, None); + + for &(ref inst, ref expect_inst) in &[ + ( + LineInstruction::Special(OPCODE_BASE), + read::LineInstruction::Special(OPCODE_BASE), + ), + ( + LineInstruction::Special(255), + read::LineInstruction::Special(255), + ), + (LineInstruction::Copy, read::LineInstruction::Copy), + ( + LineInstruction::AdvancePc(0x12), + read::LineInstruction::AdvancePc(0x12), + ), + ( + LineInstruction::AdvanceLine(0x12), + read::LineInstruction::AdvanceLine(0x12), + ), + ( + LineInstruction::SetFile(file_id), + read::LineInstruction::SetFile(file_id.raw()), + ), + ( + LineInstruction::SetColumn(0x12), + read::LineInstruction::SetColumn(0x12), + ), + ( + LineInstruction::NegateStatement, + read::LineInstruction::NegateStatement, + ), + ( + LineInstruction::SetBasicBlock, + read::LineInstruction::SetBasicBlock, + ), + ( + LineInstruction::ConstAddPc, + read::LineInstruction::ConstAddPc, + ), + ( + LineInstruction::SetPrologueEnd, + read::LineInstruction::SetPrologueEnd, + ), + ( + LineInstruction::SetEpilogueBegin, + read::LineInstruction::SetEpilogueBegin, + ), + ( + LineInstruction::SetIsa(0x12), + read::LineInstruction::SetIsa(0x12), + ), + ( + LineInstruction::EndSequence, + read::LineInstruction::EndSequence, + ), + ( + LineInstruction::SetAddress(Address::Constant(0x12)), + read::LineInstruction::SetAddress(0x12), + ), + ( + LineInstruction::SetDiscriminator(0x12), + read::LineInstruction::SetDiscriminator(0x12), + ), + ][..] + { + let mut program = program.clone(); + program.instructions.push(*inst); + + let mut debug_line = DebugLine::from(EndianVec::new(LittleEndian)); + let debug_line_offset = program + .write( + &mut debug_line, + encoding, + &debug_line_str_offsets, + &debug_str_offsets, + ) + .unwrap(); + + let read_debug_line = + read::DebugLine::new(debug_line.slice(), LittleEndian); + let read_program = read_debug_line + .program( + debug_line_offset, + address_size, + Some(read::EndianSlice::new(dir1, LittleEndian)), + Some(read::EndianSlice::new(file1, LittleEndian)), + ) + .unwrap(); + let read_header = read_program.header(); + let mut read_insts = read_header.instructions(); + assert_eq!( + *expect_inst, + read_insts.next_instruction(read_header).unwrap().unwrap() + ); + assert_eq!(None, read_insts.next_instruction(read_header).unwrap()); + } + } + } + } + } + + // Test that the address/line advance is correct. We don't test for optimality. + #[test] + fn test_advance() { + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 8, + }; + + let dir1 = &b"dir1"[..]; + let file1 = &b"file1"[..]; + + let addresses = 0..50; + let lines = -10..25i64; + + let debug_line_str_offsets = DebugLineStrOffsets::none(); + let debug_str_offsets = DebugStrOffsets::none(); + + for minimum_instruction_length in vec![1, 4] { + for maximum_operations_per_instruction in vec![1, 3] { + for line_base in vec![-5, 0] { + for line_range in vec![10, 20] { + let line_encoding = LineEncoding { + minimum_instruction_length, + maximum_operations_per_instruction, + line_base, + line_range, + default_is_stmt: true, + }; + let mut program = LineProgram::new( + encoding, + line_encoding, + LineString::String(dir1.to_vec()), + LineString::String(file1.to_vec()), + None, + ); + for address_advance in addresses.clone() { + program.begin_sequence(Some(Address::Constant(0x1000))); + program.row().line = 0x10000; + program.generate_row(); + for line_advance in lines.clone() { + { + let row = program.row(); + row.address_offset += + address_advance * u64::from(minimum_instruction_length); + row.line = row.line.wrapping_add(line_advance as u64); + } + program.generate_row(); + } + let address_offset = program.row().address_offset + + u64::from(minimum_instruction_length); + program.end_sequence(address_offset); + } + + let mut debug_line = DebugLine::from(EndianVec::new(LittleEndian)); + let debug_line_offset = program + .write( + &mut debug_line, + encoding, + &debug_line_str_offsets, + &debug_str_offsets, + ) + .unwrap(); + + let read_debug_line = + read::DebugLine::new(debug_line.slice(), LittleEndian); + let read_program = read_debug_line + .program( + debug_line_offset, + 8, + Some(read::EndianSlice::new(dir1, LittleEndian)), + Some(read::EndianSlice::new(file1, LittleEndian)), + ) + .unwrap(); + + let mut rows = read_program.rows(); + for address_advance in addresses.clone() { + let mut address; + let mut line; + { + let row = rows.next_row().unwrap().unwrap().1; + address = row.address(); + line = row.line().unwrap().get(); + } + assert_eq!(address, 0x1000); + assert_eq!(line, 0x10000); + for line_advance in lines.clone() { + let row = rows.next_row().unwrap().unwrap().1; + assert_eq!( + row.address() - address, + address_advance * u64::from(minimum_instruction_length) + ); + assert_eq!( + (row.line().unwrap().get() as i64) - (line as i64), + line_advance + ); + address = row.address(); + line = row.line().unwrap().get(); + } + let row = rows.next_row().unwrap().unwrap().1; + assert!(row.end_sequence()); + } + } + } + } + } + } + + #[test] + fn test_line_string() { + let version = 5; + + let file = b"file1"; + + let mut strings = StringTable::default(); + let string_id = strings.add("file2"); + let mut debug_str = DebugStr::from(EndianVec::new(LittleEndian)); + let debug_str_offsets = strings.write(&mut debug_str).unwrap(); + + let mut line_strings = LineStringTable::default(); + let line_string_id = line_strings.add("file3"); + let mut debug_line_str = DebugLineStr::from(EndianVec::new(LittleEndian)); + let debug_line_str_offsets = line_strings.write(&mut debug_line_str).unwrap(); + + for &address_size in &[4, 8] { + for &format in &[Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version, + address_size, + }; + + for (file, expect_file) in vec![ + ( + LineString::String(file.to_vec()), + read::AttributeValue::String(read::EndianSlice::new(file, LittleEndian)), + ), + ( + LineString::StringRef(string_id), + read::AttributeValue::DebugStrRef(debug_str_offsets.get(string_id)), + ), + ( + LineString::LineStringRef(line_string_id), + read::AttributeValue::DebugLineStrRef( + debug_line_str_offsets.get(line_string_id), + ), + ), + ] { + let program = LineProgram::new( + encoding, + LineEncoding::default(), + LineString::String(b"dir".to_vec()), + file, + None, + ); + + let mut debug_line = DebugLine::from(EndianVec::new(LittleEndian)); + let debug_line_offset = program + .write( + &mut debug_line, + encoding, + &debug_line_str_offsets, + &debug_str_offsets, + ) + .unwrap(); + + let read_debug_line = read::DebugLine::new(debug_line.slice(), LittleEndian); + let read_program = read_debug_line + .program(debug_line_offset, address_size, None, None) + .unwrap(); + let read_header = read_program.header(); + assert_eq!(read_header.file(0).unwrap().path_name(), expect_file); + } + } + } + } + + #[test] + fn test_missing_comp_dir() { + let debug_line_str_offsets = DebugLineStrOffsets::none(); + let debug_str_offsets = DebugStrOffsets::none(); + + for &version in &[2, 3, 4, 5] { + for &address_size in &[4, 8] { + for &format in &[Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version, + address_size, + }; + let program = LineProgram::new( + encoding, + LineEncoding::default(), + LineString::String(Vec::new()), + LineString::String(Vec::new()), + None, + ); + + let mut debug_line = DebugLine::from(EndianVec::new(LittleEndian)); + let debug_line_offset = program + .write( + &mut debug_line, + encoding, + &debug_line_str_offsets, + &debug_str_offsets, + ) + .unwrap(); + + let read_debug_line = read::DebugLine::new(debug_line.slice(), LittleEndian); + let read_program = read_debug_line + .program( + debug_line_offset, + address_size, + // Testing missing comp_dir/comp_name. + None, + None, + ) + .unwrap(); + + let dwarf = read::Dwarf::default(); + let mut convert_line_strings = LineStringTable::default(); + let mut convert_strings = StringTable::default(); + let convert_address = &|address| Some(Address::Constant(address)); + LineProgram::from( + read_program, + &dwarf, + &mut convert_line_strings, + &mut convert_strings, + convert_address, + ) + .unwrap(); + } + } + } + } +} diff --git a/src/rust/vendor/gimli/src/write/loc.rs b/src/rust/vendor/gimli/src/write/loc.rs new file mode 100644 index 000000000..6dfe45a6c --- /dev/null +++ b/src/rust/vendor/gimli/src/write/loc.rs @@ -0,0 +1,550 @@ +use alloc::vec::Vec; +use indexmap::IndexSet; +use std::ops::{Deref, DerefMut}; + +use crate::common::{Encoding, LocationListsOffset, SectionId}; +use crate::write::{ + Address, BaseId, DebugInfoReference, Error, Expression, Result, Section, Sections, UnitOffsets, + Writer, +}; + +define_section!( + DebugLoc, + LocationListsOffset, + "A writable `.debug_loc` section." +); +define_section!( + DebugLocLists, + LocationListsOffset, + "A writable `.debug_loclists` section." +); + +define_offsets!( + LocationListOffsets: LocationListId => LocationListsOffset, + "The section offsets of a series of location lists within the `.debug_loc` or `.debug_loclists` sections." +); + +define_id!( + LocationListId, + "An identifier for a location list in a `LocationListTable`." +); + +/// A table of location lists that will be stored in a `.debug_loc` or `.debug_loclists` section. +#[derive(Debug, Default)] +pub struct LocationListTable { + base_id: BaseId, + locations: IndexSet, +} + +impl LocationListTable { + /// Add a location list to the table. + pub fn add(&mut self, loc_list: LocationList) -> LocationListId { + let (index, _) = self.locations.insert_full(loc_list); + LocationListId::new(self.base_id, index) + } + + /// Write the location list table to the appropriate section for the given DWARF version. + pub(crate) fn write( + &self, + sections: &mut Sections, + encoding: Encoding, + unit_offsets: Option<&UnitOffsets>, + ) -> Result { + if self.locations.is_empty() { + return Ok(LocationListOffsets::none()); + } + + match encoding.version { + 2..=4 => self.write_loc( + &mut sections.debug_loc, + &mut sections.debug_loc_refs, + encoding, + unit_offsets, + ), + 5 => self.write_loclists( + &mut sections.debug_loclists, + &mut sections.debug_loclists_refs, + encoding, + unit_offsets, + ), + _ => Err(Error::UnsupportedVersion(encoding.version)), + } + } + + /// Write the location list table to the `.debug_loc` section. + fn write_loc( + &self, + w: &mut DebugLoc, + refs: &mut Vec, + encoding: Encoding, + unit_offsets: Option<&UnitOffsets>, + ) -> Result { + let address_size = encoding.address_size; + let mut offsets = Vec::new(); + for loc_list in self.locations.iter() { + offsets.push(w.offset()); + for loc in &loc_list.0 { + // Note that we must ensure none of the ranges have both begin == 0 and end == 0. + // We do this by ensuring that begin != end, which is a bit more restrictive + // than required, but still seems reasonable. + match *loc { + Location::BaseAddress { address } => { + let marker = !0 >> (64 - address_size * 8); + w.write_udata(marker, address_size)?; + w.write_address(address, address_size)?; + } + Location::OffsetPair { + begin, + end, + ref data, + } => { + if begin == end { + return Err(Error::InvalidRange); + } + w.write_udata(begin, address_size)?; + w.write_udata(end, address_size)?; + write_expression(&mut w.0, refs, encoding, unit_offsets, data)?; + } + Location::StartEnd { + begin, + end, + ref data, + } => { + if begin == end { + return Err(Error::InvalidRange); + } + w.write_address(begin, address_size)?; + w.write_address(end, address_size)?; + write_expression(&mut w.0, refs, encoding, unit_offsets, data)?; + } + Location::StartLength { + begin, + length, + ref data, + } => { + let end = match begin { + Address::Constant(begin) => Address::Constant(begin + length), + Address::Symbol { symbol, addend } => Address::Symbol { + symbol, + addend: addend + length as i64, + }, + }; + if begin == end { + return Err(Error::InvalidRange); + } + w.write_address(begin, address_size)?; + w.write_address(end, address_size)?; + write_expression(&mut w.0, refs, encoding, unit_offsets, data)?; + } + Location::DefaultLocation { .. } => { + return Err(Error::InvalidRange); + } + } + } + w.write_udata(0, address_size)?; + w.write_udata(0, address_size)?; + } + Ok(LocationListOffsets { + base_id: self.base_id, + offsets, + }) + } + + /// Write the location list table to the `.debug_loclists` section. + fn write_loclists( + &self, + w: &mut DebugLocLists, + refs: &mut Vec, + encoding: Encoding, + unit_offsets: Option<&UnitOffsets>, + ) -> Result { + let mut offsets = Vec::new(); + + if encoding.version != 5 { + return Err(Error::NeedVersion(5)); + } + + let length_offset = w.write_initial_length(encoding.format)?; + let length_base = w.len(); + + w.write_u16(encoding.version)?; + w.write_u8(encoding.address_size)?; + w.write_u8(0)?; // segment_selector_size + w.write_u32(0)?; // offset_entry_count (when set to zero DW_FORM_rnglistx can't be used, see section 7.28) + // FIXME implement DW_FORM_rnglistx writing and implement the offset entry list + + for loc_list in self.locations.iter() { + offsets.push(w.offset()); + for loc in &loc_list.0 { + match *loc { + Location::BaseAddress { address } => { + w.write_u8(crate::constants::DW_LLE_base_address.0)?; + w.write_address(address, encoding.address_size)?; + } + Location::OffsetPair { + begin, + end, + ref data, + } => { + w.write_u8(crate::constants::DW_LLE_offset_pair.0)?; + w.write_uleb128(begin)?; + w.write_uleb128(end)?; + write_expression(&mut w.0, refs, encoding, unit_offsets, data)?; + } + Location::StartEnd { + begin, + end, + ref data, + } => { + w.write_u8(crate::constants::DW_LLE_start_end.0)?; + w.write_address(begin, encoding.address_size)?; + w.write_address(end, encoding.address_size)?; + write_expression(&mut w.0, refs, encoding, unit_offsets, data)?; + } + Location::StartLength { + begin, + length, + ref data, + } => { + w.write_u8(crate::constants::DW_LLE_start_length.0)?; + w.write_address(begin, encoding.address_size)?; + w.write_uleb128(length)?; + write_expression(&mut w.0, refs, encoding, unit_offsets, data)?; + } + Location::DefaultLocation { ref data } => { + w.write_u8(crate::constants::DW_LLE_default_location.0)?; + write_expression(&mut w.0, refs, encoding, unit_offsets, data)?; + } + } + } + + w.write_u8(crate::constants::DW_LLE_end_of_list.0)?; + } + + let length = (w.len() - length_base) as u64; + w.write_initial_length_at(length_offset, length, encoding.format)?; + + Ok(LocationListOffsets { + base_id: self.base_id, + offsets, + }) + } +} + +/// A locations list that will be stored in a `.debug_loc` or `.debug_loclists` section. +#[derive(Clone, Debug, Eq, PartialEq, Hash)] +pub struct LocationList(pub Vec); + +/// A single location. +#[derive(Clone, Debug, Eq, PartialEq, Hash)] +pub enum Location { + /// DW_LLE_base_address + BaseAddress { + /// Base address. + address: Address, + }, + /// DW_LLE_offset_pair + OffsetPair { + /// Start of range relative to base address. + begin: u64, + /// End of range relative to base address. + end: u64, + /// Location description. + data: Expression, + }, + /// DW_LLE_start_end + StartEnd { + /// Start of range. + begin: Address, + /// End of range. + end: Address, + /// Location description. + data: Expression, + }, + /// DW_LLE_start_length + StartLength { + /// Start of range. + begin: Address, + /// Length of range. + length: u64, + /// Location description. + data: Expression, + }, + /// DW_LLE_default_location + DefaultLocation { + /// Location description. + data: Expression, + }, +} + +fn write_expression( + w: &mut W, + refs: &mut Vec, + encoding: Encoding, + unit_offsets: Option<&UnitOffsets>, + val: &Expression, +) -> Result<()> { + let size = val.size(encoding, unit_offsets) as u64; + if encoding.version <= 4 { + w.write_udata(size, 2)?; + } else { + w.write_uleb128(size)?; + } + val.write(w, Some(refs), encoding, unit_offsets)?; + Ok(()) +} + +#[cfg(feature = "read")] +mod convert { + use super::*; + + use crate::read::{self, Reader}; + use crate::write::{ConvertError, ConvertResult, ConvertUnitContext}; + + impl LocationList { + /// Create a location list by reading the data from the give location list iter. + pub(crate) fn from>( + mut from: read::RawLocListIter, + context: &ConvertUnitContext, + ) -> ConvertResult { + let mut have_base_address = context.base_address != Address::Constant(0); + let convert_address = + |x| (context.convert_address)(x).ok_or(ConvertError::InvalidAddress); + let convert_expression = |x| { + Expression::from( + x, + context.unit.encoding(), + Some(context.dwarf), + Some(context.unit), + Some(context.entry_ids), + context.convert_address, + ) + }; + let mut loc_list = Vec::new(); + while let Some(from_loc) = from.next()? { + let loc = match from_loc { + read::RawLocListEntry::AddressOrOffsetPair { begin, end, data } => { + // These were parsed as addresses, even if they are offsets. + let begin = convert_address(begin)?; + let end = convert_address(end)?; + let data = convert_expression(data)?; + match (begin, end) { + (Address::Constant(begin_offset), Address::Constant(end_offset)) => { + if have_base_address { + Location::OffsetPair { + begin: begin_offset, + end: end_offset, + data, + } + } else { + Location::StartEnd { begin, end, data } + } + } + _ => { + if have_base_address { + // At least one of begin/end is an address, but we also have + // a base address. Adding addresses is undefined. + return Err(ConvertError::InvalidRangeRelativeAddress); + } + Location::StartEnd { begin, end, data } + } + } + } + read::RawLocListEntry::BaseAddress { addr } => { + have_base_address = true; + let address = convert_address(addr)?; + Location::BaseAddress { address } + } + read::RawLocListEntry::BaseAddressx { addr } => { + have_base_address = true; + let address = convert_address(context.dwarf.address(context.unit, addr)?)?; + Location::BaseAddress { address } + } + read::RawLocListEntry::StartxEndx { begin, end, data } => { + let begin = convert_address(context.dwarf.address(context.unit, begin)?)?; + let end = convert_address(context.dwarf.address(context.unit, end)?)?; + let data = convert_expression(data)?; + Location::StartEnd { begin, end, data } + } + read::RawLocListEntry::StartxLength { + begin, + length, + data, + } => { + let begin = convert_address(context.dwarf.address(context.unit, begin)?)?; + let data = convert_expression(data)?; + Location::StartLength { + begin, + length, + data, + } + } + read::RawLocListEntry::OffsetPair { begin, end, data } => { + let data = convert_expression(data)?; + Location::OffsetPair { begin, end, data } + } + read::RawLocListEntry::StartEnd { begin, end, data } => { + let begin = convert_address(begin)?; + let end = convert_address(end)?; + let data = convert_expression(data)?; + Location::StartEnd { begin, end, data } + } + read::RawLocListEntry::StartLength { + begin, + length, + data, + } => { + let begin = convert_address(begin)?; + let data = convert_expression(data)?; + Location::StartLength { + begin, + length, + data, + } + } + read::RawLocListEntry::DefaultLocation { data } => { + let data = convert_expression(data)?; + Location::DefaultLocation { data } + } + }; + // In some cases, existing data may contain begin == end, filtering + // these out. + match loc { + Location::StartLength { length, .. } if length == 0 => continue, + Location::StartEnd { begin, end, .. } if begin == end => continue, + Location::OffsetPair { begin, end, .. } if begin == end => continue, + _ => (), + } + loc_list.push(loc); + } + Ok(LocationList(loc_list)) + } + } +} + +#[cfg(test)] +#[cfg(feature = "read")] +mod tests { + use super::*; + use crate::common::{ + DebugAbbrevOffset, DebugAddrBase, DebugInfoOffset, DebugLocListsBase, DebugRngListsBase, + DebugStrOffsetsBase, Format, + }; + use crate::read; + use crate::write::{ + ConvertUnitContext, EndianVec, LineStringTable, RangeListTable, StringTable, + }; + use crate::LittleEndian; + use std::collections::HashMap; + use std::sync::Arc; + + #[test] + fn test_loc_list() { + let mut line_strings = LineStringTable::default(); + let mut strings = StringTable::default(); + let mut expression = Expression::new(); + expression.op_constu(0); + + for &version in &[2, 3, 4, 5] { + for &address_size in &[4, 8] { + for &format in &[Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version, + address_size, + }; + + let mut loc_list = LocationList(vec![ + Location::StartLength { + begin: Address::Constant(6666), + length: 7777, + data: expression.clone(), + }, + Location::StartEnd { + begin: Address::Constant(4444), + end: Address::Constant(5555), + data: expression.clone(), + }, + Location::BaseAddress { + address: Address::Constant(1111), + }, + Location::OffsetPair { + begin: 2222, + end: 3333, + data: expression.clone(), + }, + ]); + if version >= 5 { + loc_list.0.push(Location::DefaultLocation { + data: expression.clone(), + }); + } + + let mut locations = LocationListTable::default(); + let loc_list_id = locations.add(loc_list.clone()); + + let mut sections = Sections::new(EndianVec::new(LittleEndian)); + let loc_list_offsets = locations.write(&mut sections, encoding, None).unwrap(); + assert!(sections.debug_loc_refs.is_empty()); + assert!(sections.debug_loclists_refs.is_empty()); + + let read_debug_loc = + read::DebugLoc::new(sections.debug_loc.slice(), LittleEndian); + let read_debug_loclists = + read::DebugLocLists::new(sections.debug_loclists.slice(), LittleEndian); + let read_loc = read::LocationLists::new(read_debug_loc, read_debug_loclists); + let offset = loc_list_offsets.get(loc_list_id); + let read_loc_list = read_loc.raw_locations(offset, encoding).unwrap(); + + let dwarf = read::Dwarf { + locations: read_loc, + ..Default::default() + }; + let unit = read::Unit { + header: read::UnitHeader::new( + encoding, + 0, + read::UnitType::Compilation, + DebugAbbrevOffset(0), + DebugInfoOffset(0).into(), + read::EndianSlice::default(), + ), + abbreviations: Arc::new(read::Abbreviations::default()), + name: None, + comp_dir: None, + low_pc: 0, + str_offsets_base: DebugStrOffsetsBase(0), + addr_base: DebugAddrBase(0), + loclists_base: DebugLocListsBase(0), + rnglists_base: DebugRngListsBase(0), + line_program: None, + dwo_id: None, + }; + let context = ConvertUnitContext { + dwarf: &dwarf, + unit: &unit, + line_strings: &mut line_strings, + strings: &mut strings, + ranges: &mut RangeListTable::default(), + locations: &mut locations, + convert_address: &|address| Some(Address::Constant(address)), + base_address: Address::Constant(0), + line_program_offset: None, + line_program_files: Vec::new(), + entry_ids: &HashMap::new(), + }; + let convert_loc_list = LocationList::from(read_loc_list, &context).unwrap(); + + if version <= 4 { + loc_list.0[0] = Location::StartEnd { + begin: Address::Constant(6666), + end: Address::Constant(6666 + 7777), + data: expression.clone(), + }; + } + assert_eq!(loc_list, convert_loc_list); + } + } + } + } +} diff --git a/src/rust/vendor/gimli/src/write/mod.rs b/src/rust/vendor/gimli/src/write/mod.rs new file mode 100644 index 000000000..47ba6319d --- /dev/null +++ b/src/rust/vendor/gimli/src/write/mod.rs @@ -0,0 +1,425 @@ +//! Write DWARF debugging information. +//! +//! ## API Structure +//! +//! This module works by building up a representation of the debugging information +//! in memory, and then writing it all at once. It supports two major use cases: +//! +//! * Use the [`DwarfUnit`](./struct.DwarfUnit.html) type when writing DWARF +//! for a single compilation unit. +//! +//! * Use the [`Dwarf`](./struct.Dwarf.html) type when writing DWARF for multiple +//! compilation units. +//! +//! The module also supports reading in DWARF debugging information and writing it out +//! again, possibly after modifying it. Create a [`read::Dwarf`](../read/struct.Dwarf.html) +//! instance, and then use [`Dwarf::from`](./struct.Dwarf.html#method.from) to convert +//! it to a writable instance. +//! +//! ## Example Usage +//! +//! Write a compilation unit containing only the top level DIE. +//! +//! ```rust +//! use gimli::write::{ +//! Address, AttributeValue, DwarfUnit, EndianVec, Error, Range, RangeList, Sections, +//! }; +//! +//! fn example() -> Result<(), Error> { +//! // Choose the encoding parameters. +//! let encoding = gimli::Encoding { +//! format: gimli::Format::Dwarf32, +//! version: 5, +//! address_size: 8, +//! }; +//! // Create a container for a single compilation unit. +//! let mut dwarf = DwarfUnit::new(encoding); +//! // Set a range attribute on the root DIE. +//! let range_list = RangeList(vec![Range::StartLength { +//! begin: Address::Constant(0x100), +//! length: 42, +//! }]); +//! let range_list_id = dwarf.unit.ranges.add(range_list); +//! let root = dwarf.unit.root(); +//! dwarf.unit.get_mut(root).set( +//! gimli::DW_AT_ranges, +//! AttributeValue::RangeListRef(range_list_id), +//! ); +//! // Create a `Vec` for each DWARF section. +//! let mut sections = Sections::new(EndianVec::new(gimli::LittleEndian)); +//! // Finally, write the DWARF data to the sections. +//! dwarf.write(&mut sections)?; +//! sections.for_each(|id, data| { +//! // Here you can add the data to the output object file. +//! Ok(()) +//! }) +//! } +//! # fn main() { +//! # example().unwrap(); +//! # } + +use std::error; +use std::fmt; +use std::result; + +use crate::constants; + +mod endian_vec; +pub use self::endian_vec::*; + +mod writer; +pub use self::writer::*; + +#[macro_use] +mod section; +pub use self::section::*; + +macro_rules! define_id { + ($name:ident, $docs:expr) => { + #[doc=$docs] + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub struct $name { + base_id: BaseId, + index: usize, + } + + impl $name { + #[inline] + fn new(base_id: BaseId, index: usize) -> Self { + $name { base_id, index } + } + } + }; +} + +macro_rules! define_offsets { + ($offsets:ident: $id:ident => $offset:ident, $off_doc:expr) => { + #[doc=$off_doc] + #[derive(Debug)] + pub struct $offsets { + base_id: BaseId, + // We know ids start at 0. + offsets: Vec<$offset>, + } + + impl $offsets { + /// Return an empty list of offsets. + #[inline] + pub fn none() -> Self { + $offsets { + base_id: BaseId::default(), + offsets: Vec::new(), + } + } + + /// Get the offset + /// + /// # Panics + /// + /// Panics if `id` is invalid. + #[inline] + pub fn get(&self, id: $id) -> $offset { + debug_assert_eq!(self.base_id, id.base_id); + self.offsets[id.index] + } + + /// Return the number of offsets. + #[inline] + pub fn count(&self) -> usize { + self.offsets.len() + } + } + }; +} + +mod abbrev; +pub use self::abbrev::*; + +mod cfi; +pub use self::cfi::*; + +mod dwarf; +pub use self::dwarf::*; + +mod line; +pub use self::line::*; + +mod loc; +pub use self::loc::*; + +mod op; +pub use self::op::*; + +mod range; +pub use self::range::*; + +mod str; +pub use self::str::*; + +mod unit; +pub use self::unit::*; + +/// An error that occurred when writing. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum Error { + /// The given offset is out of bounds. + OffsetOutOfBounds, + /// The given length is out of bounds. + LengthOutOfBounds, + /// The attribute value is an invalid for writing. + InvalidAttributeValue, + /// The value is too large for the encoding form. + ValueTooLarge, + /// Unsupported word size. + UnsupportedWordSize(u8), + /// Unsupported DWARF version. + UnsupportedVersion(u16), + /// The unit length is too large for the requested DWARF format. + InitialLengthOverflow, + /// The address is invalid. + InvalidAddress, + /// The reference is invalid. + InvalidReference, + /// A requested feature requires a different DWARF version. + NeedVersion(u16), + /// Strings in line number program have mismatched forms. + LineStringFormMismatch, + /// The range is empty or otherwise invalid. + InvalidRange, + /// The line number program encoding is incompatible with the unit encoding. + IncompatibleLineProgramEncoding, + /// Could not encode code offset for a frame instruction. + InvalidFrameCodeOffset(u32), + /// Could not encode data offset for a frame instruction. + InvalidFrameDataOffset(i32), + /// Unsupported eh_frame pointer encoding. + UnsupportedPointerEncoding(constants::DwEhPe), + /// Unsupported reference in CFI expression. + UnsupportedCfiExpressionReference, + /// Unsupported forward reference in expression. + UnsupportedExpressionForwardReference, +} + +impl fmt::Display for Error { + fn fmt(&self, f: &mut fmt::Formatter) -> result::Result<(), fmt::Error> { + match *self { + Error::OffsetOutOfBounds => write!(f, "The given offset is out of bounds."), + Error::LengthOutOfBounds => write!(f, "The given length is out of bounds."), + Error::InvalidAttributeValue => { + write!(f, "The attribute value is an invalid for writing.") + } + Error::ValueTooLarge => write!(f, "The value is too large for the encoding form."), + Error::UnsupportedWordSize(size) => write!(f, "Unsupported word size: {}", size), + Error::UnsupportedVersion(version) => { + write!(f, "Unsupported DWARF version: {}", version) + } + Error::InitialLengthOverflow => write!( + f, + "The unit length is too large for the requested DWARF format." + ), + Error::InvalidAddress => write!(f, "The address is invalid."), + Error::InvalidReference => write!(f, "The reference is invalid."), + Error::NeedVersion(version) => write!( + f, + "A requested feature requires a DWARF version {}.", + version + ), + Error::LineStringFormMismatch => { + write!(f, "Strings in line number program have mismatched forms.") + } + Error::InvalidRange => write!(f, "The range is empty or otherwise invalid."), + Error::IncompatibleLineProgramEncoding => write!( + f, + "The line number program encoding is incompatible with the unit encoding." + ), + Error::InvalidFrameCodeOffset(offset) => write!( + f, + "Could not encode code offset ({}) for a frame instruction.", + offset, + ), + Error::InvalidFrameDataOffset(offset) => write!( + f, + "Could not encode data offset ({}) for a frame instruction.", + offset, + ), + Error::UnsupportedPointerEncoding(eh_pe) => { + write!(f, "Unsupported eh_frame pointer encoding ({}).", eh_pe) + } + Error::UnsupportedCfiExpressionReference => { + write!(f, "Unsupported reference in CFI expression.") + } + Error::UnsupportedExpressionForwardReference => { + write!(f, "Unsupported forward reference in expression.") + } + } + } +} + +impl error::Error for Error {} + +/// The result of a write. +pub type Result = result::Result; + +/// An address. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum Address { + /// A fixed address that does not require relocation. + Constant(u64), + /// An address that is relative to a symbol which may be relocated. + Symbol { + /// The symbol that the address is relative to. + /// + /// The meaning of this value is decided by the writer, but + /// will typically be an index into a symbol table. + symbol: usize, + /// The offset of the address relative to the symbol. + /// + /// This will typically be used as the addend in a relocation. + addend: i64, + }, +} + +/// A reference to a `.debug_info` entry. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum Reference { + /// An external symbol. + /// + /// The meaning of this value is decided by the writer, but + /// will typically be an index into a symbol table. + Symbol(usize), + /// An entry in the same section. + /// + /// This only supports references in units that are emitted together. + Entry(UnitId, UnitEntryId), +} + +// This type is only used in debug assertions. +#[cfg(not(debug_assertions))] +type BaseId = (); + +#[cfg(debug_assertions)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +struct BaseId(usize); + +#[cfg(debug_assertions)] +impl Default for BaseId { + fn default() -> Self { + use std::sync::atomic; + static BASE_ID: atomic::AtomicUsize = atomic::AtomicUsize::new(0); + BaseId(BASE_ID.fetch_add(1, atomic::Ordering::Relaxed)) + } +} + +#[cfg(feature = "read")] +mod convert { + use super::*; + use crate::read; + + pub(crate) use super::unit::convert::*; + + /// An error that occurred when converting a read value into a write value. + #[derive(Debug, Clone, Copy, PartialEq, Eq)] + pub enum ConvertError { + /// An error occurred when reading. + Read(read::Error), + /// Writing of this attribute value is not implemented yet. + UnsupportedAttributeValue, + /// This attribute value is an invalid name/form combination. + InvalidAttributeValue, + /// A `.debug_info` reference does not refer to a valid entry. + InvalidDebugInfoOffset, + /// An address could not be converted. + InvalidAddress, + /// Writing this line number instruction is not implemented yet. + UnsupportedLineInstruction, + /// Writing this form of line string is not implemented yet. + UnsupportedLineStringForm, + /// A `.debug_line` file index is invalid. + InvalidFileIndex, + /// A `.debug_line` directory index is invalid. + InvalidDirectoryIndex, + /// A `.debug_line` line base is invalid. + InvalidLineBase, + /// A `.debug_line` reference is invalid. + InvalidLineRef, + /// A `.debug_info` unit entry reference is invalid. + InvalidUnitRef, + /// A `.debug_info` reference is invalid. + InvalidDebugInfoRef, + /// Invalid relative address in a range list. + InvalidRangeRelativeAddress, + /// Writing this CFI instruction is not implemented yet. + UnsupportedCfiInstruction, + /// Writing indirect pointers is not implemented yet. + UnsupportedIndirectAddress, + /// Writing this expression operation is not implemented yet. + UnsupportedOperation, + /// Operation branch target is invalid. + InvalidBranchTarget, + /// Writing this unit type is not supported yet. + UnsupportedUnitType, + } + + impl fmt::Display for ConvertError { + fn fmt(&self, f: &mut fmt::Formatter) -> result::Result<(), fmt::Error> { + use self::ConvertError::*; + match *self { + Read(ref e) => e.fmt(f), + UnsupportedAttributeValue => { + write!(f, "Writing of this attribute value is not implemented yet.") + } + InvalidAttributeValue => write!( + f, + "This attribute value is an invalid name/form combination." + ), + InvalidDebugInfoOffset => write!( + f, + "A `.debug_info` reference does not refer to a valid entry." + ), + InvalidAddress => write!(f, "An address could not be converted."), + UnsupportedLineInstruction => write!( + f, + "Writing this line number instruction is not implemented yet." + ), + UnsupportedLineStringForm => write!( + f, + "Writing this form of line string is not implemented yet." + ), + InvalidFileIndex => write!(f, "A `.debug_line` file index is invalid."), + InvalidDirectoryIndex => write!(f, "A `.debug_line` directory index is invalid."), + InvalidLineBase => write!(f, "A `.debug_line` line base is invalid."), + InvalidLineRef => write!(f, "A `.debug_line` reference is invalid."), + InvalidUnitRef => write!(f, "A `.debug_info` unit entry reference is invalid."), + InvalidDebugInfoRef => write!(f, "A `.debug_info` reference is invalid."), + InvalidRangeRelativeAddress => { + write!(f, "Invalid relative address in a range list.") + } + UnsupportedCfiInstruction => { + write!(f, "Writing this CFI instruction is not implemented yet.") + } + UnsupportedIndirectAddress => { + write!(f, "Writing indirect pointers is not implemented yet.") + } + UnsupportedOperation => write!( + f, + "Writing this expression operation is not implemented yet." + ), + InvalidBranchTarget => write!(f, "Operation branch target is invalid."), + UnsupportedUnitType => write!(f, "Writing this unit type is not supported yet."), + } + } + } + + impl error::Error for ConvertError {} + + impl From for ConvertError { + fn from(e: read::Error) -> Self { + ConvertError::Read(e) + } + } + + /// The result of a conversion. + pub type ConvertResult = result::Result; +} +#[cfg(feature = "read")] +pub use self::convert::*; diff --git a/src/rust/vendor/gimli/src/write/op.rs b/src/rust/vendor/gimli/src/write/op.rs new file mode 100644 index 000000000..287083b3e --- /dev/null +++ b/src/rust/vendor/gimli/src/write/op.rs @@ -0,0 +1,1618 @@ +use alloc::boxed::Box; +use alloc::vec::Vec; + +use crate::common::{Encoding, Register}; +use crate::constants::{self, DwOp}; +use crate::leb128::write::{sleb128_size, uleb128_size}; +use crate::write::{ + Address, DebugInfoReference, Error, Reference, Result, UnitEntryId, UnitOffsets, Writer, +}; + +/// The bytecode for a DWARF expression or location description. +#[derive(Debug, Default, Clone, PartialEq, Eq, Hash)] +pub struct Expression { + operations: Vec, +} + +impl Expression { + /// Create an empty expression. + #[inline] + pub fn new() -> Self { + Self::default() + } + + /// Create an expression from raw bytecode. + /// + /// This does not support operations that require references, such as `DW_OP_addr`. + #[inline] + pub fn raw(bytecode: Vec) -> Self { + Expression { + operations: vec![Operation::Raw(bytecode)], + } + } + + /// Add an operation to the expression. + /// + /// This should only be used for operations that have no explicit operands. + pub fn op(&mut self, opcode: DwOp) { + self.operations.push(Operation::Simple(opcode)); + } + + /// Add a `DW_OP_addr` operation to the expression. + pub fn op_addr(&mut self, address: Address) { + self.operations.push(Operation::Address(address)); + } + + /// Add a `DW_OP_constu` operation to the expression. + /// + /// This may be emitted as a smaller equivalent operation. + pub fn op_constu(&mut self, value: u64) { + self.operations.push(Operation::UnsignedConstant(value)); + } + + /// Add a `DW_OP_consts` operation to the expression. + /// + /// This may be emitted as a smaller equivalent operation. + pub fn op_consts(&mut self, value: i64) { + self.operations.push(Operation::SignedConstant(value)); + } + + /// Add a `DW_OP_const_type` or `DW_OP_GNU_const_type` operation to the expression. + pub fn op_const_type(&mut self, base: UnitEntryId, value: Box<[u8]>) { + self.operations.push(Operation::ConstantType(base, value)); + } + + /// Add a `DW_OP_fbreg` operation to the expression. + pub fn op_fbreg(&mut self, offset: i64) { + self.operations.push(Operation::FrameOffset(offset)); + } + + /// Add a `DW_OP_bregx` operation to the expression. + /// + /// This may be emitted as a smaller equivalent operation. + pub fn op_breg(&mut self, register: Register, offset: i64) { + self.operations + .push(Operation::RegisterOffset(register, offset)); + } + + /// Add a `DW_OP_regval_type` or `DW_OP_GNU_regval_type` operation to the expression. + /// + /// This may be emitted as a smaller equivalent operation. + pub fn op_regval_type(&mut self, register: Register, base: UnitEntryId) { + self.operations + .push(Operation::RegisterType(register, base)); + } + + /// Add a `DW_OP_pick` operation to the expression. + /// + /// This may be emitted as a `DW_OP_dup` or `DW_OP_over` operation. + pub fn op_pick(&mut self, index: u8) { + self.operations.push(Operation::Pick(index)); + } + + /// Add a `DW_OP_deref` operation to the expression. + pub fn op_deref(&mut self) { + self.operations.push(Operation::Deref { space: false }); + } + + /// Add a `DW_OP_xderef` operation to the expression. + pub fn op_xderef(&mut self) { + self.operations.push(Operation::Deref { space: true }); + } + + /// Add a `DW_OP_deref_size` operation to the expression. + pub fn op_deref_size(&mut self, size: u8) { + self.operations + .push(Operation::DerefSize { size, space: false }); + } + + /// Add a `DW_OP_xderef_size` operation to the expression. + pub fn op_xderef_size(&mut self, size: u8) { + self.operations + .push(Operation::DerefSize { size, space: true }); + } + + /// Add a `DW_OP_deref_type` or `DW_OP_GNU_deref_type` operation to the expression. + pub fn op_deref_type(&mut self, size: u8, base: UnitEntryId) { + self.operations.push(Operation::DerefType { + size, + base, + space: false, + }); + } + + /// Add a `DW_OP_xderef_type` operation to the expression. + pub fn op_xderef_type(&mut self, size: u8, base: UnitEntryId) { + self.operations.push(Operation::DerefType { + size, + base, + space: true, + }); + } + + /// Add a `DW_OP_plus_uconst` operation to the expression. + pub fn op_plus_uconst(&mut self, value: u64) { + self.operations.push(Operation::PlusConstant(value)); + } + + /// Add a `DW_OP_skip` operation to the expression. + /// + /// Returns the index of the operation. The caller must call `set_target` with + /// this index to set the target of the branch. + pub fn op_skip(&mut self) -> usize { + let index = self.next_index(); + self.operations.push(Operation::Skip(!0)); + index + } + + /// Add a `DW_OP_bra` operation to the expression. + /// + /// Returns the index of the operation. The caller must call `set_target` with + /// this index to set the target of the branch. + pub fn op_bra(&mut self) -> usize { + let index = self.next_index(); + self.operations.push(Operation::Branch(!0)); + index + } + + /// Return the index that will be assigned to the next operation. + /// + /// This can be passed to `set_target`. + #[inline] + pub fn next_index(&self) -> usize { + self.operations.len() + } + + /// Set the target of a `DW_OP_skip` or `DW_OP_bra` operation . + pub fn set_target(&mut self, operation: usize, new_target: usize) { + debug_assert!(new_target <= self.next_index()); + debug_assert_ne!(operation, new_target); + match self.operations[operation] { + Operation::Skip(ref mut target) | Operation::Branch(ref mut target) => { + *target = new_target; + } + _ => unimplemented!(), + } + } + + /// Add a `DW_OP_call4` operation to the expression. + pub fn op_call(&mut self, entry: UnitEntryId) { + self.operations.push(Operation::Call(entry)); + } + + /// Add a `DW_OP_call_ref` operation to the expression. + pub fn op_call_ref(&mut self, entry: Reference) { + self.operations.push(Operation::CallRef(entry)); + } + + /// Add a `DW_OP_convert` or `DW_OP_GNU_convert` operation to the expression. + /// + /// `base` is the DIE of the base type, or `None` for the generic type. + pub fn op_convert(&mut self, base: Option) { + self.operations.push(Operation::Convert(base)); + } + + /// Add a `DW_OP_reinterpret` or `DW_OP_GNU_reinterpret` operation to the expression. + /// + /// `base` is the DIE of the base type, or `None` for the generic type. + pub fn op_reinterpret(&mut self, base: Option) { + self.operations.push(Operation::Reinterpret(base)); + } + + /// Add a `DW_OP_entry_value` or `DW_OP_GNU_entry_value` operation to the expression. + pub fn op_entry_value(&mut self, expression: Expression) { + self.operations.push(Operation::EntryValue(expression)); + } + + /// Add a `DW_OP_regx` operation to the expression. + /// + /// This may be emitted as a smaller equivalent operation. + pub fn op_reg(&mut self, register: Register) { + self.operations.push(Operation::Register(register)); + } + + /// Add a `DW_OP_implicit_value` operation to the expression. + pub fn op_implicit_value(&mut self, data: Box<[u8]>) { + self.operations.push(Operation::ImplicitValue(data)); + } + + /// Add a `DW_OP_implicit_pointer` or `DW_OP_GNU_implicit_pointer` operation to the expression. + pub fn op_implicit_pointer(&mut self, entry: Reference, byte_offset: i64) { + self.operations + .push(Operation::ImplicitPointer { entry, byte_offset }); + } + + /// Add a `DW_OP_piece` operation to the expression. + pub fn op_piece(&mut self, size_in_bytes: u64) { + self.operations.push(Operation::Piece { size_in_bytes }); + } + + /// Add a `DW_OP_bit_piece` operation to the expression. + pub fn op_bit_piece(&mut self, size_in_bits: u64, bit_offset: u64) { + self.operations.push(Operation::BitPiece { + size_in_bits, + bit_offset, + }); + } + + /// Add a `DW_OP_GNU_parameter_ref` operation to the expression. + pub fn op_gnu_parameter_ref(&mut self, entry: UnitEntryId) { + self.operations.push(Operation::ParameterRef(entry)); + } + + /// Add a `DW_OP_WASM_location 0x0` operation to the expression. + pub fn op_wasm_local(&mut self, index: u32) { + self.operations.push(Operation::WasmLocal(index)); + } + + /// Add a `DW_OP_WASM_location 0x1` operation to the expression. + pub fn op_wasm_global(&mut self, index: u32) { + self.operations.push(Operation::WasmGlobal(index)); + } + + /// Add a `DW_OP_WASM_location 0x2` operation to the expression. + pub fn op_wasm_stack(&mut self, index: u32) { + self.operations.push(Operation::WasmStack(index)); + } + + pub(crate) fn size(&self, encoding: Encoding, unit_offsets: Option<&UnitOffsets>) -> usize { + let mut size = 0; + for operation in &self.operations { + size += operation.size(encoding, unit_offsets); + } + size + } + + pub(crate) fn write( + &self, + w: &mut W, + mut refs: Option<&mut Vec>, + encoding: Encoding, + unit_offsets: Option<&UnitOffsets>, + ) -> Result<()> { + // TODO: only calculate offsets if needed? + let mut offsets = Vec::with_capacity(self.operations.len()); + let mut offset = w.len(); + for operation in &self.operations { + offsets.push(offset); + offset += operation.size(encoding, unit_offsets); + } + offsets.push(offset); + for (operation, offset) in self.operations.iter().zip(offsets.iter().copied()) { + debug_assert_eq!(w.len(), offset); + operation.write(w, refs.as_deref_mut(), encoding, unit_offsets, &offsets)?; + } + Ok(()) + } +} + +/// A single DWARF operation. +// +// This type is intentionally not public so that we can change the +// representation of expressions as needed. +// +// Variants are listed in the order they appear in Section 2.5. +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +enum Operation { + /// Raw bytecode. + /// + /// Does not support references. + Raw(Vec), + /// An operation that has no explicit operands. + /// + /// Represents: + /// - `DW_OP_drop`, `DW_OP_swap`, `DW_OP_rot` + /// - `DW_OP_push_object_address`, `DW_OP_form_tls_address`, `DW_OP_call_frame_cfa` + /// - `DW_OP_abs`, `DW_OP_and`, `DW_OP_div`, `DW_OP_minus`, `DW_OP_mod`, `DW_OP_mul`, + /// `DW_OP_neg`, `DW_OP_not`, `DW_OP_or`, `DW_OP_plus`, `DW_OP_shl`, `DW_OP_shr`, + /// `DW_OP_shra`, `DW_OP_xor` + /// - `DW_OP_le`, `DW_OP_ge`, `DW_OP_eq`, `DW_OP_lt`, `DW_OP_gt`, `DW_OP_ne` + /// - `DW_OP_nop` + /// - `DW_OP_stack_value` + Simple(DwOp), + /// Relocate the address if needed, and push it on the stack. + /// + /// Represents `DW_OP_addr`. + Address(Address), + /// Push an unsigned constant value on the stack. + /// + /// Represents `DW_OP_constu`. + UnsignedConstant(u64), + /// Push a signed constant value on the stack. + /// + /// Represents `DW_OP_consts`. + SignedConstant(i64), + /* TODO: requires .debug_addr write support + /// Read the address at the given index in `.debug_addr, relocate the address if needed, + /// and push it on the stack. + /// + /// Represents `DW_OP_addrx`. + AddressIndex(DebugAddrIndex), + /// Read the address at the given index in `.debug_addr, and push it on the stack. + /// Do not relocate the address. + /// + /// Represents `DW_OP_constx`. + ConstantIndex(DebugAddrIndex), + */ + /// Interpret the value bytes as a constant of a given type, and push it on the stack. + /// + /// Represents `DW_OP_const_type`. + ConstantType(UnitEntryId, Box<[u8]>), + /// Compute the frame base (using `DW_AT_frame_base`), add the + /// given offset, and then push the resulting sum on the stack. + /// + /// Represents `DW_OP_fbreg`. + FrameOffset(i64), + /// Find the contents of the given register, add the offset, and then + /// push the resulting sum on the stack. + /// + /// Represents `DW_OP_bregx`. + RegisterOffset(Register, i64), + /// Interpret the contents of the given register as a value of the given type, + /// and push it on the stack. + /// + /// Represents `DW_OP_regval_type`. + RegisterType(Register, UnitEntryId), + /// Copy the item at a stack index and push it on top of the stack. + /// + /// Represents `DW_OP_pick`, `DW_OP_dup`, and `DW_OP_over`. + Pick(u8), + /// Pop the topmost value of the stack, dereference it, and push the + /// resulting value. + /// + /// Represents `DW_OP_deref` and `DW_OP_xderef`. + Deref { + /// True if the dereference operation takes an address space + /// argument from the stack; false otherwise. + space: bool, + }, + /// Pop the topmost value of the stack, dereference it to obtain a value + /// of the given size, and push the resulting value. + /// + /// Represents `DW_OP_deref_size` and `DW_OP_xderef_size`. + DerefSize { + /// True if the dereference operation takes an address space + /// argument from the stack; false otherwise. + space: bool, + /// The size of the data to dereference. + size: u8, + }, + /// Pop the topmost value of the stack, dereference it to obtain a value + /// of the given type, and push the resulting value. + /// + /// Represents `DW_OP_deref_type` and `DW_OP_xderef_type`. + DerefType { + /// True if the dereference operation takes an address space + /// argument from the stack; false otherwise. + space: bool, + /// The size of the data to dereference. + size: u8, + /// The DIE of the base type, or `None` for the generic type. + base: UnitEntryId, + }, + /// Add an unsigned constant to the topmost value on the stack. + /// + /// Represents `DW_OP_plus_uconst`. + PlusConstant(u64), + /// Unconditional branch to the target location. + /// + /// The value is the index within the expression of the operation to branch to. + /// This will be converted to a relative offset when writing. + /// + /// Represents `DW_OP_skip`. + Skip(usize), + /// Branch to the target location if the top of stack is nonzero. + /// + /// The value is the index within the expression of the operation to branch to. + /// This will be converted to a relative offset when writing. + /// + /// Represents `DW_OP_bra`. + Branch(usize), + /// Evaluate a DWARF expression as a subroutine. + /// + /// The expression comes from the `DW_AT_location` attribute of the indicated DIE. + /// + /// Represents `DW_OP_call4`. + Call(UnitEntryId), + /// Evaluate an external DWARF expression as a subroutine. + /// + /// The expression comes from the `DW_AT_location` attribute of the indicated DIE, + /// which may be in another compilation unit or shared object. + /// + /// Represents `DW_OP_call_ref`. + CallRef(Reference), + /// Pop the top stack entry, convert it to a different type, and push it on the stack. + /// + /// Represents `DW_OP_convert`. + Convert(Option), + /// Pop the top stack entry, reinterpret the bits in its value as a different type, + /// and push it on the stack. + /// + /// Represents `DW_OP_reinterpret`. + Reinterpret(Option), + /// Evaluate an expression at the entry to the current subprogram, and push it on the stack. + /// + /// Represents `DW_OP_entry_value`. + EntryValue(Expression), + // FIXME: EntryRegister + /// Indicate that this piece's location is in the given register. + /// + /// Completes the piece or expression. + /// + /// Represents `DW_OP_regx`. + Register(Register), + /// The object has no location, but has a known constant value. + /// + /// Completes the piece or expression. + /// + /// Represents `DW_OP_implicit_value`. + ImplicitValue(Box<[u8]>), + /// The object is a pointer to a value which has no actual location, such as + /// an implicit value or a stack value. + /// + /// Completes the piece or expression. + /// + /// Represents `DW_OP_implicit_pointer`. + ImplicitPointer { + /// The DIE of the value that this is an implicit pointer into. + entry: Reference, + /// The byte offset into the value that the implicit pointer points to. + byte_offset: i64, + }, + /// Terminate a piece. + /// + /// Represents `DW_OP_piece`. + Piece { + /// The size of this piece in bytes. + size_in_bytes: u64, + }, + /// Terminate a piece with a size in bits. + /// + /// Represents `DW_OP_bit_piece`. + BitPiece { + /// The size of this piece in bits. + size_in_bits: u64, + /// The bit offset of this piece. + bit_offset: u64, + }, + /// This represents a parameter that was optimized out. + /// + /// The entry is the definition of the parameter, and is matched to + /// the `DW_TAG_GNU_call_site_parameter` in the caller that also + /// points to the same definition of the parameter. + /// + /// Represents `DW_OP_GNU_parameter_ref`. + ParameterRef(UnitEntryId), + /// The index of a local in the currently executing function. + /// + /// Represents `DW_OP_WASM_location 0x00`. + WasmLocal(u32), + /// The index of a global. + /// + /// Represents `DW_OP_WASM_location 0x01`. + WasmGlobal(u32), + /// The index of an item on the operand stack. + /// + /// Represents `DW_OP_WASM_location 0x02`. + WasmStack(u32), +} + +impl Operation { + fn size(&self, encoding: Encoding, unit_offsets: Option<&UnitOffsets>) -> usize { + let base_size = |base| { + // Errors are handled during writes. + match unit_offsets { + Some(offsets) => uleb128_size(offsets.unit_offset(base)), + None => 0, + } + }; + 1 + match *self { + Operation::Raw(ref bytecode) => return bytecode.len(), + Operation::Simple(_) => 0, + Operation::Address(_) => encoding.address_size as usize, + Operation::UnsignedConstant(value) => { + if value < 32 { + 0 + } else { + uleb128_size(value) + } + } + Operation::SignedConstant(value) => sleb128_size(value), + Operation::ConstantType(base, ref value) => base_size(base) + 1 + value.len(), + Operation::FrameOffset(offset) => sleb128_size(offset), + Operation::RegisterOffset(register, offset) => { + if register.0 < 32 { + sleb128_size(offset) + } else { + uleb128_size(register.0.into()) + sleb128_size(offset) + } + } + Operation::RegisterType(register, base) => { + uleb128_size(register.0.into()) + base_size(base) + } + Operation::Pick(index) => { + if index > 1 { + 1 + } else { + 0 + } + } + Operation::Deref { .. } => 0, + Operation::DerefSize { .. } => 1, + Operation::DerefType { base, .. } => 1 + base_size(base), + Operation::PlusConstant(value) => uleb128_size(value), + Operation::Skip(_) => 2, + Operation::Branch(_) => 2, + Operation::Call(_) => 4, + Operation::CallRef(_) => encoding.format.word_size() as usize, + Operation::Convert(base) => match base { + Some(base) => base_size(base), + None => 1, + }, + Operation::Reinterpret(base) => match base { + Some(base) => base_size(base), + None => 1, + }, + Operation::EntryValue(ref expression) => { + let length = expression.size(encoding, unit_offsets); + uleb128_size(length as u64) + length + } + Operation::Register(register) => { + if register.0 < 32 { + 0 + } else { + uleb128_size(register.0.into()) + } + } + Operation::ImplicitValue(ref data) => uleb128_size(data.len() as u64) + data.len(), + Operation::ImplicitPointer { byte_offset, .. } => { + encoding.format.word_size() as usize + sleb128_size(byte_offset) + } + Operation::Piece { size_in_bytes } => uleb128_size(size_in_bytes), + Operation::BitPiece { + size_in_bits, + bit_offset, + } => uleb128_size(size_in_bits) + uleb128_size(bit_offset), + Operation::ParameterRef(_) => 4, + Operation::WasmLocal(index) + | Operation::WasmGlobal(index) + | Operation::WasmStack(index) => 1 + uleb128_size(index.into()), + } + } + + pub(crate) fn write( + &self, + w: &mut W, + refs: Option<&mut Vec>, + encoding: Encoding, + unit_offsets: Option<&UnitOffsets>, + offsets: &[usize], + ) -> Result<()> { + let entry_offset = |entry| match unit_offsets { + Some(offsets) => { + let offset = offsets.unit_offset(entry); + if offset == 0 { + Err(Error::UnsupportedExpressionForwardReference) + } else { + Ok(offset) + } + } + None => Err(Error::UnsupportedCfiExpressionReference), + }; + match *self { + Operation::Raw(ref bytecode) => w.write(bytecode)?, + Operation::Simple(opcode) => w.write_u8(opcode.0)?, + Operation::Address(address) => { + w.write_u8(constants::DW_OP_addr.0)?; + w.write_address(address, encoding.address_size)?; + } + Operation::UnsignedConstant(value) => { + if value < 32 { + w.write_u8(constants::DW_OP_lit0.0 + value as u8)?; + } else { + w.write_u8(constants::DW_OP_constu.0)?; + w.write_uleb128(value)?; + } + } + Operation::SignedConstant(value) => { + w.write_u8(constants::DW_OP_consts.0)?; + w.write_sleb128(value)?; + } + Operation::ConstantType(base, ref value) => { + if encoding.version >= 5 { + w.write_u8(constants::DW_OP_const_type.0)?; + } else { + w.write_u8(constants::DW_OP_GNU_const_type.0)?; + } + w.write_uleb128(entry_offset(base)?)?; + w.write_udata(value.len() as u64, 1)?; + w.write(value)?; + } + Operation::FrameOffset(offset) => { + w.write_u8(constants::DW_OP_fbreg.0)?; + w.write_sleb128(offset)?; + } + Operation::RegisterOffset(register, offset) => { + if register.0 < 32 { + w.write_u8(constants::DW_OP_breg0.0 + register.0 as u8)?; + } else { + w.write_u8(constants::DW_OP_bregx.0)?; + w.write_uleb128(register.0.into())?; + } + w.write_sleb128(offset)?; + } + Operation::RegisterType(register, base) => { + if encoding.version >= 5 { + w.write_u8(constants::DW_OP_regval_type.0)?; + } else { + w.write_u8(constants::DW_OP_GNU_regval_type.0)?; + } + w.write_uleb128(register.0.into())?; + w.write_uleb128(entry_offset(base)?)?; + } + Operation::Pick(index) => match index { + 0 => w.write_u8(constants::DW_OP_dup.0)?, + 1 => w.write_u8(constants::DW_OP_over.0)?, + _ => { + w.write_u8(constants::DW_OP_pick.0)?; + w.write_u8(index)?; + } + }, + Operation::Deref { space } => { + if space { + w.write_u8(constants::DW_OP_xderef.0)?; + } else { + w.write_u8(constants::DW_OP_deref.0)?; + } + } + Operation::DerefSize { space, size } => { + if space { + w.write_u8(constants::DW_OP_xderef_size.0)?; + } else { + w.write_u8(constants::DW_OP_deref_size.0)?; + } + w.write_u8(size)?; + } + Operation::DerefType { space, size, base } => { + if space { + w.write_u8(constants::DW_OP_xderef_type.0)?; + } else { + if encoding.version >= 5 { + w.write_u8(constants::DW_OP_deref_type.0)?; + } else { + w.write_u8(constants::DW_OP_GNU_deref_type.0)?; + } + } + w.write_u8(size)?; + w.write_uleb128(entry_offset(base)?)?; + } + Operation::PlusConstant(value) => { + w.write_u8(constants::DW_OP_plus_uconst.0)?; + w.write_uleb128(value)?; + } + Operation::Skip(target) => { + w.write_u8(constants::DW_OP_skip.0)?; + let offset = offsets[target] as i64 - (w.len() as i64 + 2); + w.write_sdata(offset, 2)?; + } + Operation::Branch(target) => { + w.write_u8(constants::DW_OP_bra.0)?; + let offset = offsets[target] as i64 - (w.len() as i64 + 2); + w.write_sdata(offset, 2)?; + } + Operation::Call(entry) => { + w.write_u8(constants::DW_OP_call4.0)?; + // TODO: this probably won't work in practice, because we may + // only know the offsets of base type DIEs at this point. + w.write_udata(entry_offset(entry)?, 4)?; + } + Operation::CallRef(entry) => { + w.write_u8(constants::DW_OP_call_ref.0)?; + let size = encoding.format.word_size(); + match entry { + Reference::Symbol(symbol) => w.write_reference(symbol, size)?, + Reference::Entry(unit, entry) => { + let refs = refs.ok_or(Error::InvalidReference)?; + refs.push(DebugInfoReference { + offset: w.len(), + unit, + entry, + size, + }); + w.write_udata(0, size)?; + } + } + } + Operation::Convert(base) => { + if encoding.version >= 5 { + w.write_u8(constants::DW_OP_convert.0)?; + } else { + w.write_u8(constants::DW_OP_GNU_convert.0)?; + } + match base { + Some(base) => w.write_uleb128(entry_offset(base)?)?, + None => w.write_u8(0)?, + } + } + Operation::Reinterpret(base) => { + if encoding.version >= 5 { + w.write_u8(constants::DW_OP_reinterpret.0)?; + } else { + w.write_u8(constants::DW_OP_GNU_reinterpret.0)?; + } + match base { + Some(base) => w.write_uleb128(entry_offset(base)?)?, + None => w.write_u8(0)?, + } + } + Operation::EntryValue(ref expression) => { + if encoding.version >= 5 { + w.write_u8(constants::DW_OP_entry_value.0)?; + } else { + w.write_u8(constants::DW_OP_GNU_entry_value.0)?; + } + let length = expression.size(encoding, unit_offsets); + w.write_uleb128(length as u64)?; + expression.write(w, refs, encoding, unit_offsets)?; + } + Operation::Register(register) => { + if register.0 < 32 { + w.write_u8(constants::DW_OP_reg0.0 + register.0 as u8)?; + } else { + w.write_u8(constants::DW_OP_regx.0)?; + w.write_uleb128(register.0.into())?; + } + } + Operation::ImplicitValue(ref data) => { + w.write_u8(constants::DW_OP_implicit_value.0)?; + w.write_uleb128(data.len() as u64)?; + w.write(data)?; + } + Operation::ImplicitPointer { entry, byte_offset } => { + if encoding.version >= 5 { + w.write_u8(constants::DW_OP_implicit_pointer.0)?; + } else { + w.write_u8(constants::DW_OP_GNU_implicit_pointer.0)?; + } + let size = if encoding.version == 2 { + encoding.address_size + } else { + encoding.format.word_size() + }; + match entry { + Reference::Symbol(symbol) => { + w.write_reference(symbol, size)?; + } + Reference::Entry(unit, entry) => { + let refs = refs.ok_or(Error::InvalidReference)?; + refs.push(DebugInfoReference { + offset: w.len(), + unit, + entry, + size, + }); + w.write_udata(0, size)?; + } + } + w.write_sleb128(byte_offset)?; + } + Operation::Piece { size_in_bytes } => { + w.write_u8(constants::DW_OP_piece.0)?; + w.write_uleb128(size_in_bytes)?; + } + Operation::BitPiece { + size_in_bits, + bit_offset, + } => { + w.write_u8(constants::DW_OP_bit_piece.0)?; + w.write_uleb128(size_in_bits)?; + w.write_uleb128(bit_offset)?; + } + Operation::ParameterRef(entry) => { + w.write_u8(constants::DW_OP_GNU_parameter_ref.0)?; + w.write_udata(entry_offset(entry)?, 4)?; + } + Operation::WasmLocal(index) => { + w.write(&[constants::DW_OP_WASM_location.0, 0])?; + w.write_uleb128(index.into())?; + } + Operation::WasmGlobal(index) => { + w.write(&[constants::DW_OP_WASM_location.0, 1])?; + w.write_uleb128(index.into())?; + } + Operation::WasmStack(index) => { + w.write(&[constants::DW_OP_WASM_location.0, 2])?; + w.write_uleb128(index.into())?; + } + } + Ok(()) + } +} + +#[cfg(feature = "read")] +pub(crate) mod convert { + use super::*; + use crate::common::UnitSectionOffset; + use crate::read::{self, Reader}; + use crate::write::{ConvertError, ConvertResult, UnitEntryId, UnitId}; + use std::collections::HashMap; + + impl Expression { + /// Create an expression from the input expression. + pub fn from>( + from_expression: read::Expression, + encoding: Encoding, + dwarf: Option<&read::Dwarf>, + unit: Option<&read::Unit>, + entry_ids: Option<&HashMap>, + convert_address: &dyn Fn(u64) -> Option
, + ) -> ConvertResult { + let convert_unit_offset = |offset: read::UnitOffset| -> ConvertResult<_> { + let entry_ids = entry_ids.ok_or(ConvertError::UnsupportedOperation)?; + let unit = unit.ok_or(ConvertError::UnsupportedOperation)?; + let id = entry_ids + .get(&offset.to_unit_section_offset(unit)) + .ok_or(ConvertError::InvalidUnitRef)?; + Ok(id.1) + }; + let convert_debug_info_offset = |offset| -> ConvertResult<_> { + // TODO: support relocations + let entry_ids = entry_ids.ok_or(ConvertError::UnsupportedOperation)?; + let id = entry_ids + .get(&UnitSectionOffset::DebugInfoOffset(offset)) + .ok_or(ConvertError::InvalidDebugInfoRef)?; + Ok(Reference::Entry(id.0, id.1)) + }; + + // Calculate offsets for use in branch/skip operations. + let mut offsets = Vec::new(); + let mut offset = 0; + let mut from_operations = from_expression.clone().operations(encoding); + while from_operations.next()?.is_some() { + offsets.push(offset); + offset = from_operations.offset_from(&from_expression); + } + offsets.push(from_expression.0.len()); + + let mut from_operations = from_expression.clone().operations(encoding); + let mut operations = Vec::new(); + while let Some(from_operation) = from_operations.next()? { + let operation = match from_operation { + read::Operation::Deref { + base_type, + size, + space, + } => { + if base_type.0 != 0 { + let base = convert_unit_offset(base_type)?; + Operation::DerefType { space, size, base } + } else if size != encoding.address_size { + Operation::DerefSize { space, size } + } else { + Operation::Deref { space } + } + } + read::Operation::Drop => Operation::Simple(constants::DW_OP_drop), + read::Operation::Pick { index } => Operation::Pick(index), + read::Operation::Swap => Operation::Simple(constants::DW_OP_swap), + read::Operation::Rot => Operation::Simple(constants::DW_OP_rot), + read::Operation::Abs => Operation::Simple(constants::DW_OP_abs), + read::Operation::And => Operation::Simple(constants::DW_OP_and), + read::Operation::Div => Operation::Simple(constants::DW_OP_div), + read::Operation::Minus => Operation::Simple(constants::DW_OP_minus), + read::Operation::Mod => Operation::Simple(constants::DW_OP_mod), + read::Operation::Mul => Operation::Simple(constants::DW_OP_mul), + read::Operation::Neg => Operation::Simple(constants::DW_OP_neg), + read::Operation::Not => Operation::Simple(constants::DW_OP_not), + read::Operation::Or => Operation::Simple(constants::DW_OP_or), + read::Operation::Plus => Operation::Simple(constants::DW_OP_plus), + read::Operation::PlusConstant { value } => Operation::PlusConstant(value), + read::Operation::Shl => Operation::Simple(constants::DW_OP_shl), + read::Operation::Shr => Operation::Simple(constants::DW_OP_shr), + read::Operation::Shra => Operation::Simple(constants::DW_OP_shra), + read::Operation::Xor => Operation::Simple(constants::DW_OP_xor), + read::Operation::Eq => Operation::Simple(constants::DW_OP_eq), + read::Operation::Ge => Operation::Simple(constants::DW_OP_ge), + read::Operation::Gt => Operation::Simple(constants::DW_OP_gt), + read::Operation::Le => Operation::Simple(constants::DW_OP_le), + read::Operation::Lt => Operation::Simple(constants::DW_OP_lt), + read::Operation::Ne => Operation::Simple(constants::DW_OP_ne), + read::Operation::Bra { target } => { + let offset = from_operations + .offset_from(&from_expression) + .wrapping_add(i64::from(target) as usize); + let index = offsets + .binary_search(&offset) + .map_err(|_| ConvertError::InvalidBranchTarget)?; + Operation::Branch(index) + } + read::Operation::Skip { target } => { + let offset = from_operations + .offset_from(&from_expression) + .wrapping_add(i64::from(target) as usize); + let index = offsets + .binary_search(&offset) + .map_err(|_| ConvertError::InvalidBranchTarget)?; + Operation::Skip(index) + } + read::Operation::UnsignedConstant { value } => { + Operation::UnsignedConstant(value) + } + read::Operation::SignedConstant { value } => Operation::SignedConstant(value), + read::Operation::Register { register } => Operation::Register(register), + read::Operation::RegisterOffset { + register, + offset, + base_type, + } => { + if base_type.0 != 0 { + Operation::RegisterType(register, convert_unit_offset(base_type)?) + } else { + Operation::RegisterOffset(register, offset) + } + } + read::Operation::FrameOffset { offset } => Operation::FrameOffset(offset), + read::Operation::Nop => Operation::Simple(constants::DW_OP_nop), + read::Operation::PushObjectAddress => { + Operation::Simple(constants::DW_OP_push_object_address) + } + read::Operation::Call { offset } => match offset { + read::DieReference::UnitRef(offset) => { + Operation::Call(convert_unit_offset(offset)?) + } + read::DieReference::DebugInfoRef(offset) => { + Operation::CallRef(convert_debug_info_offset(offset)?) + } + }, + read::Operation::TLS => Operation::Simple(constants::DW_OP_form_tls_address), + read::Operation::CallFrameCFA => { + Operation::Simple(constants::DW_OP_call_frame_cfa) + } + read::Operation::Piece { + size_in_bits, + bit_offset: None, + } => Operation::Piece { + size_in_bytes: size_in_bits / 8, + }, + read::Operation::Piece { + size_in_bits, + bit_offset: Some(bit_offset), + } => Operation::BitPiece { + size_in_bits, + bit_offset, + }, + read::Operation::ImplicitValue { data } => { + Operation::ImplicitValue(data.to_slice()?.into_owned().into()) + } + read::Operation::StackValue => Operation::Simple(constants::DW_OP_stack_value), + read::Operation::ImplicitPointer { value, byte_offset } => { + let entry = convert_debug_info_offset(value)?; + Operation::ImplicitPointer { entry, byte_offset } + } + read::Operation::EntryValue { expression } => { + let expression = Expression::from( + read::Expression(expression), + encoding, + dwarf, + unit, + entry_ids, + convert_address, + )?; + Operation::EntryValue(expression) + } + read::Operation::ParameterRef { offset } => { + let entry = convert_unit_offset(offset)?; + Operation::ParameterRef(entry) + } + read::Operation::Address { address } => { + let address = + convert_address(address).ok_or(ConvertError::InvalidAddress)?; + Operation::Address(address) + } + read::Operation::AddressIndex { index } => { + let dwarf = dwarf.ok_or(ConvertError::UnsupportedOperation)?; + let unit = unit.ok_or(ConvertError::UnsupportedOperation)?; + let val = dwarf.address(unit, index)?; + let address = convert_address(val).ok_or(ConvertError::InvalidAddress)?; + Operation::Address(address) + } + read::Operation::ConstantIndex { index } => { + let dwarf = dwarf.ok_or(ConvertError::UnsupportedOperation)?; + let unit = unit.ok_or(ConvertError::UnsupportedOperation)?; + let val = dwarf.address(unit, index)?; + Operation::UnsignedConstant(val) + } + read::Operation::TypedLiteral { base_type, value } => { + let entry = convert_unit_offset(base_type)?; + Operation::ConstantType(entry, value.to_slice()?.into_owned().into()) + } + read::Operation::Convert { base_type } => { + if base_type.0 == 0 { + Operation::Convert(None) + } else { + let entry = convert_unit_offset(base_type)?; + Operation::Convert(Some(entry)) + } + } + read::Operation::Reinterpret { base_type } => { + if base_type.0 == 0 { + Operation::Reinterpret(None) + } else { + let entry = convert_unit_offset(base_type)?; + Operation::Reinterpret(Some(entry)) + } + } + read::Operation::WasmLocal { index } => Operation::WasmLocal(index), + read::Operation::WasmGlobal { index } => Operation::WasmGlobal(index), + read::Operation::WasmStack { index } => Operation::WasmStack(index), + }; + operations.push(operation); + } + Ok(Expression { operations }) + } + } +} + +#[cfg(test)] +#[cfg(feature = "read")] +mod tests { + use super::*; + use crate::common::{ + DebugAbbrevOffset, DebugAddrBase, DebugInfoOffset, DebugLocListsBase, DebugRngListsBase, + DebugStrOffsetsBase, Format, SectionId, + }; + use crate::read; + use crate::write::{ + DebugLineStrOffsets, DebugStrOffsets, EndianVec, LineProgram, Sections, Unit, UnitTable, + }; + use crate::LittleEndian; + use std::collections::HashMap; + use std::sync::Arc; + + #[test] + fn test_operation() { + for &version in &[3, 4, 5] { + for &address_size in &[4, 8] { + for &format in &[Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version, + address_size, + }; + + let mut units = UnitTable::default(); + let unit_id = units.add(Unit::new(encoding, LineProgram::none())); + let unit = units.get_mut(unit_id); + let entry_id = unit.add(unit.root(), constants::DW_TAG_base_type); + let reference = Reference::Entry(unit_id, entry_id); + + let mut sections = Sections::new(EndianVec::new(LittleEndian)); + let debug_line_str_offsets = DebugLineStrOffsets::none(); + let debug_str_offsets = DebugStrOffsets::none(); + let debug_info_offsets = units + .write(&mut sections, &debug_line_str_offsets, &debug_str_offsets) + .unwrap(); + let unit_offsets = debug_info_offsets.unit_offsets(unit_id); + let debug_info_offset = unit_offsets.debug_info_offset(entry_id); + let entry_offset = + read::UnitOffset(unit_offsets.unit_offset(entry_id) as usize); + + let mut reg_expression = Expression::new(); + reg_expression.op_reg(Register(23)); + + let operations: &[(&dyn Fn(&mut Expression), Operation, read::Operation<_>)] = + &[ + ( + &|x| x.op_deref(), + Operation::Deref { space: false }, + read::Operation::Deref { + base_type: read::UnitOffset(0), + size: address_size, + space: false, + }, + ), + ( + &|x| x.op_xderef(), + Operation::Deref { space: true }, + read::Operation::Deref { + base_type: read::UnitOffset(0), + size: address_size, + space: true, + }, + ), + ( + &|x| x.op_deref_size(2), + Operation::DerefSize { + space: false, + size: 2, + }, + read::Operation::Deref { + base_type: read::UnitOffset(0), + size: 2, + space: false, + }, + ), + ( + &|x| x.op_xderef_size(2), + Operation::DerefSize { + space: true, + size: 2, + }, + read::Operation::Deref { + base_type: read::UnitOffset(0), + size: 2, + space: true, + }, + ), + ( + &|x| x.op_deref_type(2, entry_id), + Operation::DerefType { + space: false, + size: 2, + base: entry_id, + }, + read::Operation::Deref { + base_type: entry_offset, + size: 2, + space: false, + }, + ), + ( + &|x| x.op_xderef_type(2, entry_id), + Operation::DerefType { + space: true, + size: 2, + base: entry_id, + }, + read::Operation::Deref { + base_type: entry_offset, + size: 2, + space: true, + }, + ), + ( + &|x| x.op(constants::DW_OP_drop), + Operation::Simple(constants::DW_OP_drop), + read::Operation::Drop, + ), + ( + &|x| x.op_pick(0), + Operation::Pick(0), + read::Operation::Pick { index: 0 }, + ), + ( + &|x| x.op_pick(1), + Operation::Pick(1), + read::Operation::Pick { index: 1 }, + ), + ( + &|x| x.op_pick(2), + Operation::Pick(2), + read::Operation::Pick { index: 2 }, + ), + ( + &|x| x.op(constants::DW_OP_swap), + Operation::Simple(constants::DW_OP_swap), + read::Operation::Swap, + ), + ( + &|x| x.op(constants::DW_OP_rot), + Operation::Simple(constants::DW_OP_rot), + read::Operation::Rot, + ), + ( + &|x| x.op(constants::DW_OP_abs), + Operation::Simple(constants::DW_OP_abs), + read::Operation::Abs, + ), + ( + &|x| x.op(constants::DW_OP_and), + Operation::Simple(constants::DW_OP_and), + read::Operation::And, + ), + ( + &|x| x.op(constants::DW_OP_div), + Operation::Simple(constants::DW_OP_div), + read::Operation::Div, + ), + ( + &|x| x.op(constants::DW_OP_minus), + Operation::Simple(constants::DW_OP_minus), + read::Operation::Minus, + ), + ( + &|x| x.op(constants::DW_OP_mod), + Operation::Simple(constants::DW_OP_mod), + read::Operation::Mod, + ), + ( + &|x| x.op(constants::DW_OP_mul), + Operation::Simple(constants::DW_OP_mul), + read::Operation::Mul, + ), + ( + &|x| x.op(constants::DW_OP_neg), + Operation::Simple(constants::DW_OP_neg), + read::Operation::Neg, + ), + ( + &|x| x.op(constants::DW_OP_not), + Operation::Simple(constants::DW_OP_not), + read::Operation::Not, + ), + ( + &|x| x.op(constants::DW_OP_or), + Operation::Simple(constants::DW_OP_or), + read::Operation::Or, + ), + ( + &|x| x.op(constants::DW_OP_plus), + Operation::Simple(constants::DW_OP_plus), + read::Operation::Plus, + ), + ( + &|x| x.op_plus_uconst(23), + Operation::PlusConstant(23), + read::Operation::PlusConstant { value: 23 }, + ), + ( + &|x| x.op(constants::DW_OP_shl), + Operation::Simple(constants::DW_OP_shl), + read::Operation::Shl, + ), + ( + &|x| x.op(constants::DW_OP_shr), + Operation::Simple(constants::DW_OP_shr), + read::Operation::Shr, + ), + ( + &|x| x.op(constants::DW_OP_shra), + Operation::Simple(constants::DW_OP_shra), + read::Operation::Shra, + ), + ( + &|x| x.op(constants::DW_OP_xor), + Operation::Simple(constants::DW_OP_xor), + read::Operation::Xor, + ), + ( + &|x| x.op(constants::DW_OP_eq), + Operation::Simple(constants::DW_OP_eq), + read::Operation::Eq, + ), + ( + &|x| x.op(constants::DW_OP_ge), + Operation::Simple(constants::DW_OP_ge), + read::Operation::Ge, + ), + ( + &|x| x.op(constants::DW_OP_gt), + Operation::Simple(constants::DW_OP_gt), + read::Operation::Gt, + ), + ( + &|x| x.op(constants::DW_OP_le), + Operation::Simple(constants::DW_OP_le), + read::Operation::Le, + ), + ( + &|x| x.op(constants::DW_OP_lt), + Operation::Simple(constants::DW_OP_lt), + read::Operation::Lt, + ), + ( + &|x| x.op(constants::DW_OP_ne), + Operation::Simple(constants::DW_OP_ne), + read::Operation::Ne, + ), + ( + &|x| x.op_constu(23), + Operation::UnsignedConstant(23), + read::Operation::UnsignedConstant { value: 23 }, + ), + ( + &|x| x.op_consts(-23), + Operation::SignedConstant(-23), + read::Operation::SignedConstant { value: -23 }, + ), + ( + &|x| x.op_reg(Register(23)), + Operation::Register(Register(23)), + read::Operation::Register { + register: Register(23), + }, + ), + ( + &|x| x.op_reg(Register(123)), + Operation::Register(Register(123)), + read::Operation::Register { + register: Register(123), + }, + ), + ( + &|x| x.op_breg(Register(23), 34), + Operation::RegisterOffset(Register(23), 34), + read::Operation::RegisterOffset { + register: Register(23), + offset: 34, + base_type: read::UnitOffset(0), + }, + ), + ( + &|x| x.op_breg(Register(123), 34), + Operation::RegisterOffset(Register(123), 34), + read::Operation::RegisterOffset { + register: Register(123), + offset: 34, + base_type: read::UnitOffset(0), + }, + ), + ( + &|x| x.op_regval_type(Register(23), entry_id), + Operation::RegisterType(Register(23), entry_id), + read::Operation::RegisterOffset { + register: Register(23), + offset: 0, + base_type: entry_offset, + }, + ), + ( + &|x| x.op_fbreg(34), + Operation::FrameOffset(34), + read::Operation::FrameOffset { offset: 34 }, + ), + ( + &|x| x.op(constants::DW_OP_nop), + Operation::Simple(constants::DW_OP_nop), + read::Operation::Nop, + ), + ( + &|x| x.op(constants::DW_OP_push_object_address), + Operation::Simple(constants::DW_OP_push_object_address), + read::Operation::PushObjectAddress, + ), + ( + &|x| x.op_call(entry_id), + Operation::Call(entry_id), + read::Operation::Call { + offset: read::DieReference::UnitRef(entry_offset), + }, + ), + ( + &|x| x.op_call_ref(reference), + Operation::CallRef(reference), + read::Operation::Call { + offset: read::DieReference::DebugInfoRef(debug_info_offset), + }, + ), + ( + &|x| x.op(constants::DW_OP_form_tls_address), + Operation::Simple(constants::DW_OP_form_tls_address), + read::Operation::TLS, + ), + ( + &|x| x.op(constants::DW_OP_call_frame_cfa), + Operation::Simple(constants::DW_OP_call_frame_cfa), + read::Operation::CallFrameCFA, + ), + ( + &|x| x.op_piece(23), + Operation::Piece { size_in_bytes: 23 }, + read::Operation::Piece { + size_in_bits: 23 * 8, + bit_offset: None, + }, + ), + ( + &|x| x.op_bit_piece(23, 34), + Operation::BitPiece { + size_in_bits: 23, + bit_offset: 34, + }, + read::Operation::Piece { + size_in_bits: 23, + bit_offset: Some(34), + }, + ), + ( + &|x| x.op_implicit_value(vec![23].into()), + Operation::ImplicitValue(vec![23].into()), + read::Operation::ImplicitValue { + data: read::EndianSlice::new(&[23], LittleEndian), + }, + ), + ( + &|x| x.op(constants::DW_OP_stack_value), + Operation::Simple(constants::DW_OP_stack_value), + read::Operation::StackValue, + ), + ( + &|x| x.op_implicit_pointer(reference, 23), + Operation::ImplicitPointer { + entry: reference, + byte_offset: 23, + }, + read::Operation::ImplicitPointer { + value: debug_info_offset, + byte_offset: 23, + }, + ), + ( + &|x| x.op_entry_value(reg_expression.clone()), + Operation::EntryValue(reg_expression.clone()), + read::Operation::EntryValue { + expression: read::EndianSlice::new( + &[constants::DW_OP_reg23.0], + LittleEndian, + ), + }, + ), + ( + &|x| x.op_gnu_parameter_ref(entry_id), + Operation::ParameterRef(entry_id), + read::Operation::ParameterRef { + offset: entry_offset, + }, + ), + ( + &|x| x.op_addr(Address::Constant(23)), + Operation::Address(Address::Constant(23)), + read::Operation::Address { address: 23 }, + ), + ( + &|x| x.op_const_type(entry_id, vec![23].into()), + Operation::ConstantType(entry_id, vec![23].into()), + read::Operation::TypedLiteral { + base_type: entry_offset, + value: read::EndianSlice::new(&[23], LittleEndian), + }, + ), + ( + &|x| x.op_convert(None), + Operation::Convert(None), + read::Operation::Convert { + base_type: read::UnitOffset(0), + }, + ), + ( + &|x| x.op_convert(Some(entry_id)), + Operation::Convert(Some(entry_id)), + read::Operation::Convert { + base_type: entry_offset, + }, + ), + ( + &|x| x.op_reinterpret(None), + Operation::Reinterpret(None), + read::Operation::Reinterpret { + base_type: read::UnitOffset(0), + }, + ), + ( + &|x| x.op_reinterpret(Some(entry_id)), + Operation::Reinterpret(Some(entry_id)), + read::Operation::Reinterpret { + base_type: entry_offset, + }, + ), + ( + &|x| x.op_wasm_local(1000), + Operation::WasmLocal(1000), + read::Operation::WasmLocal { index: 1000 }, + ), + ( + &|x| x.op_wasm_global(1000), + Operation::WasmGlobal(1000), + read::Operation::WasmGlobal { index: 1000 }, + ), + ( + &|x| x.op_wasm_stack(1000), + Operation::WasmStack(1000), + read::Operation::WasmStack { index: 1000 }, + ), + ]; + + let mut expression = Expression::new(); + let start_index = expression.next_index(); + for (f, o, _) in operations { + f(&mut expression); + assert_eq!(expression.operations.last(), Some(o)); + } + + let bra_index = expression.op_bra(); + let skip_index = expression.op_skip(); + expression.op(constants::DW_OP_nop); + let end_index = expression.next_index(); + expression.set_target(bra_index, start_index); + expression.set_target(skip_index, end_index); + + let mut w = EndianVec::new(LittleEndian); + let mut refs = Vec::new(); + expression + .write(&mut w, Some(&mut refs), encoding, Some(&unit_offsets)) + .unwrap(); + for r in &refs { + assert_eq!(r.unit, unit_id); + assert_eq!(r.entry, entry_id); + w.write_offset_at( + r.offset, + debug_info_offset.0, + SectionId::DebugInfo, + r.size, + ) + .unwrap(); + } + + let read_expression = + read::Expression(read::EndianSlice::new(w.slice(), LittleEndian)); + let mut read_operations = read_expression.operations(encoding); + for (_, _, operation) in operations { + assert_eq!(read_operations.next(), Ok(Some(*operation))); + } + + // 4 = DW_OP_skip + i16 + DW_OP_nop + assert_eq!( + read_operations.next(), + Ok(Some(read::Operation::Bra { + target: -(w.len() as i16) + 4 + })) + ); + // 1 = DW_OP_nop + assert_eq!( + read_operations.next(), + Ok(Some(read::Operation::Skip { target: 1 })) + ); + assert_eq!(read_operations.next(), Ok(Some(read::Operation::Nop))); + assert_eq!(read_operations.next(), Ok(None)); + + // Fake the unit. + let unit = read::Unit { + header: read::UnitHeader::new( + encoding, + 0, + read::UnitType::Compilation, + DebugAbbrevOffset(0), + DebugInfoOffset(0).into(), + read::EndianSlice::new(&[], LittleEndian), + ), + abbreviations: Arc::new(read::Abbreviations::default()), + name: None, + comp_dir: None, + low_pc: 0, + str_offsets_base: DebugStrOffsetsBase(0), + addr_base: DebugAddrBase(0), + loclists_base: DebugLocListsBase(0), + rnglists_base: DebugRngListsBase(0), + line_program: None, + dwo_id: None, + }; + + let mut entry_ids = HashMap::new(); + entry_ids.insert(debug_info_offset.into(), (unit_id, entry_id)); + let convert_expression = Expression::from( + read_expression, + encoding, + None, /* dwarf */ + Some(&unit), + Some(&entry_ids), + &|address| Some(Address::Constant(address)), + ) + .unwrap(); + let mut convert_operations = convert_expression.operations.iter(); + for (_, operation, _) in operations { + assert_eq!(convert_operations.next(), Some(operation)); + } + assert_eq!( + convert_operations.next(), + Some(&Operation::Branch(start_index)) + ); + assert_eq!(convert_operations.next(), Some(&Operation::Skip(end_index))); + assert_eq!( + convert_operations.next(), + Some(&Operation::Simple(constants::DW_OP_nop)) + ); + } + } + } + } +} diff --git a/src/rust/vendor/gimli/src/write/range.rs b/src/rust/vendor/gimli/src/write/range.rs new file mode 100644 index 000000000..c707e1eab --- /dev/null +++ b/src/rust/vendor/gimli/src/write/range.rs @@ -0,0 +1,416 @@ +use alloc::vec::Vec; +use indexmap::IndexSet; +use std::ops::{Deref, DerefMut}; + +use crate::common::{Encoding, RangeListsOffset, SectionId}; +use crate::write::{Address, BaseId, Error, Result, Section, Sections, Writer}; + +define_section!( + DebugRanges, + RangeListsOffset, + "A writable `.debug_ranges` section." +); +define_section!( + DebugRngLists, + RangeListsOffset, + "A writable `.debug_rnglists` section." +); + +define_offsets!( + RangeListOffsets: RangeListId => RangeListsOffset, + "The section offsets of a series of range lists within the `.debug_ranges` or `.debug_rnglists` sections." +); + +define_id!( + RangeListId, + "An identifier for a range list in a `RangeListTable`." +); + +/// A table of range lists that will be stored in a `.debug_ranges` or `.debug_rnglists` section. +#[derive(Debug, Default)] +pub struct RangeListTable { + base_id: BaseId, + ranges: IndexSet, +} + +impl RangeListTable { + /// Add a range list to the table. + pub fn add(&mut self, range_list: RangeList) -> RangeListId { + let (index, _) = self.ranges.insert_full(range_list); + RangeListId::new(self.base_id, index) + } + + /// Write the range list table to the appropriate section for the given DWARF version. + pub(crate) fn write( + &self, + sections: &mut Sections, + encoding: Encoding, + ) -> Result { + if self.ranges.is_empty() { + return Ok(RangeListOffsets::none()); + } + + match encoding.version { + 2..=4 => self.write_ranges(&mut sections.debug_ranges, encoding.address_size), + 5 => self.write_rnglists(&mut sections.debug_rnglists, encoding), + _ => Err(Error::UnsupportedVersion(encoding.version)), + } + } + + /// Write the range list table to the `.debug_ranges` section. + fn write_ranges( + &self, + w: &mut DebugRanges, + address_size: u8, + ) -> Result { + let mut offsets = Vec::new(); + for range_list in self.ranges.iter() { + offsets.push(w.offset()); + for range in &range_list.0 { + // Note that we must ensure none of the ranges have both begin == 0 and end == 0. + // We do this by ensuring that begin != end, which is a bit more restrictive + // than required, but still seems reasonable. + match *range { + Range::BaseAddress { address } => { + let marker = !0 >> (64 - address_size * 8); + w.write_udata(marker, address_size)?; + w.write_address(address, address_size)?; + } + Range::OffsetPair { begin, end } => { + if begin == end { + return Err(Error::InvalidRange); + } + w.write_udata(begin, address_size)?; + w.write_udata(end, address_size)?; + } + Range::StartEnd { begin, end } => { + if begin == end { + return Err(Error::InvalidRange); + } + w.write_address(begin, address_size)?; + w.write_address(end, address_size)?; + } + Range::StartLength { begin, length } => { + let end = match begin { + Address::Constant(begin) => Address::Constant(begin + length), + Address::Symbol { symbol, addend } => Address::Symbol { + symbol, + addend: addend + length as i64, + }, + }; + if begin == end { + return Err(Error::InvalidRange); + } + w.write_address(begin, address_size)?; + w.write_address(end, address_size)?; + } + } + } + w.write_udata(0, address_size)?; + w.write_udata(0, address_size)?; + } + Ok(RangeListOffsets { + base_id: self.base_id, + offsets, + }) + } + + /// Write the range list table to the `.debug_rnglists` section. + fn write_rnglists( + &self, + w: &mut DebugRngLists, + encoding: Encoding, + ) -> Result { + let mut offsets = Vec::new(); + + if encoding.version != 5 { + return Err(Error::NeedVersion(5)); + } + + let length_offset = w.write_initial_length(encoding.format)?; + let length_base = w.len(); + + w.write_u16(encoding.version)?; + w.write_u8(encoding.address_size)?; + w.write_u8(0)?; // segment_selector_size + w.write_u32(0)?; // offset_entry_count (when set to zero DW_FORM_rnglistx can't be used, see section 7.28) + // FIXME implement DW_FORM_rnglistx writing and implement the offset entry list + + for range_list in self.ranges.iter() { + offsets.push(w.offset()); + for range in &range_list.0 { + match *range { + Range::BaseAddress { address } => { + w.write_u8(crate::constants::DW_RLE_base_address.0)?; + w.write_address(address, encoding.address_size)?; + } + Range::OffsetPair { begin, end } => { + w.write_u8(crate::constants::DW_RLE_offset_pair.0)?; + w.write_uleb128(begin)?; + w.write_uleb128(end)?; + } + Range::StartEnd { begin, end } => { + w.write_u8(crate::constants::DW_RLE_start_end.0)?; + w.write_address(begin, encoding.address_size)?; + w.write_address(end, encoding.address_size)?; + } + Range::StartLength { begin, length } => { + w.write_u8(crate::constants::DW_RLE_start_length.0)?; + w.write_address(begin, encoding.address_size)?; + w.write_uleb128(length)?; + } + } + } + + w.write_u8(crate::constants::DW_RLE_end_of_list.0)?; + } + + let length = (w.len() - length_base) as u64; + w.write_initial_length_at(length_offset, length, encoding.format)?; + + Ok(RangeListOffsets { + base_id: self.base_id, + offsets, + }) + } +} + +/// A range list that will be stored in a `.debug_ranges` or `.debug_rnglists` section. +#[derive(Clone, Debug, Eq, PartialEq, Hash)] +pub struct RangeList(pub Vec); + +/// A single range. +#[derive(Clone, Debug, Eq, PartialEq, Hash)] +pub enum Range { + /// DW_RLE_base_address + BaseAddress { + /// Base address. + address: Address, + }, + /// DW_RLE_offset_pair + OffsetPair { + /// Start of range relative to base address. + begin: u64, + /// End of range relative to base address. + end: u64, + }, + /// DW_RLE_start_end + StartEnd { + /// Start of range. + begin: Address, + /// End of range. + end: Address, + }, + /// DW_RLE_start_length + StartLength { + /// Start of range. + begin: Address, + /// Length of range. + length: u64, + }, +} + +#[cfg(feature = "read")] +mod convert { + use super::*; + + use crate::read::{self, Reader}; + use crate::write::{ConvertError, ConvertResult, ConvertUnitContext}; + + impl RangeList { + /// Create a range list by reading the data from the give range list iter. + pub(crate) fn from>( + mut from: read::RawRngListIter, + context: &ConvertUnitContext, + ) -> ConvertResult { + let mut have_base_address = context.base_address != Address::Constant(0); + let convert_address = + |x| (context.convert_address)(x).ok_or(ConvertError::InvalidAddress); + let mut ranges = Vec::new(); + while let Some(from_range) = from.next()? { + let range = match from_range { + read::RawRngListEntry::AddressOrOffsetPair { begin, end } => { + // These were parsed as addresses, even if they are offsets. + let begin = convert_address(begin)?; + let end = convert_address(end)?; + match (begin, end) { + (Address::Constant(begin_offset), Address::Constant(end_offset)) => { + if have_base_address { + Range::OffsetPair { + begin: begin_offset, + end: end_offset, + } + } else { + Range::StartEnd { begin, end } + } + } + _ => { + if have_base_address { + // At least one of begin/end is an address, but we also have + // a base address. Adding addresses is undefined. + return Err(ConvertError::InvalidRangeRelativeAddress); + } + Range::StartEnd { begin, end } + } + } + } + read::RawRngListEntry::BaseAddress { addr } => { + have_base_address = true; + let address = convert_address(addr)?; + Range::BaseAddress { address } + } + read::RawRngListEntry::BaseAddressx { addr } => { + have_base_address = true; + let address = convert_address(context.dwarf.address(context.unit, addr)?)?; + Range::BaseAddress { address } + } + read::RawRngListEntry::StartxEndx { begin, end } => { + let begin = convert_address(context.dwarf.address(context.unit, begin)?)?; + let end = convert_address(context.dwarf.address(context.unit, end)?)?; + Range::StartEnd { begin, end } + } + read::RawRngListEntry::StartxLength { begin, length } => { + let begin = convert_address(context.dwarf.address(context.unit, begin)?)?; + Range::StartLength { begin, length } + } + read::RawRngListEntry::OffsetPair { begin, end } => { + Range::OffsetPair { begin, end } + } + read::RawRngListEntry::StartEnd { begin, end } => { + let begin = convert_address(begin)?; + let end = convert_address(end)?; + Range::StartEnd { begin, end } + } + read::RawRngListEntry::StartLength { begin, length } => { + let begin = convert_address(begin)?; + Range::StartLength { begin, length } + } + }; + // Filtering empty ranges out. + match range { + Range::StartLength { length, .. } if length == 0 => continue, + Range::StartEnd { begin, end, .. } if begin == end => continue, + Range::OffsetPair { begin, end, .. } if begin == end => continue, + _ => (), + } + ranges.push(range); + } + Ok(RangeList(ranges)) + } + } +} + +#[cfg(test)] +#[cfg(feature = "read")] +mod tests { + use super::*; + use crate::common::{ + DebugAbbrevOffset, DebugAddrBase, DebugInfoOffset, DebugLocListsBase, DebugRngListsBase, + DebugStrOffsetsBase, Format, + }; + use crate::read; + use crate::write::{ + ConvertUnitContext, EndianVec, LineStringTable, LocationListTable, Range, RangeListTable, + StringTable, + }; + use crate::LittleEndian; + use std::collections::HashMap; + use std::sync::Arc; + + #[test] + fn test_range() { + let mut line_strings = LineStringTable::default(); + let mut strings = StringTable::default(); + + for &version in &[2, 3, 4, 5] { + for &address_size in &[4, 8] { + for &format in &[Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version, + address_size, + }; + + let mut range_list = RangeList(vec![ + Range::StartLength { + begin: Address::Constant(6666), + length: 7777, + }, + Range::StartEnd { + begin: Address::Constant(4444), + end: Address::Constant(5555), + }, + Range::BaseAddress { + address: Address::Constant(1111), + }, + Range::OffsetPair { + begin: 2222, + end: 3333, + }, + ]); + + let mut ranges = RangeListTable::default(); + let range_list_id = ranges.add(range_list.clone()); + + let mut sections = Sections::new(EndianVec::new(LittleEndian)); + let range_list_offsets = ranges.write(&mut sections, encoding).unwrap(); + + let read_debug_ranges = + read::DebugRanges::new(sections.debug_ranges.slice(), LittleEndian); + let read_debug_rnglists = + read::DebugRngLists::new(sections.debug_rnglists.slice(), LittleEndian); + let read_ranges = read::RangeLists::new(read_debug_ranges, read_debug_rnglists); + let offset = range_list_offsets.get(range_list_id); + let read_range_list = read_ranges.raw_ranges(offset, encoding).unwrap(); + + let dwarf = read::Dwarf { + ranges: read_ranges, + ..Default::default() + }; + let unit = read::Unit { + header: read::UnitHeader::new( + encoding, + 0, + read::UnitType::Compilation, + DebugAbbrevOffset(0), + DebugInfoOffset(0).into(), + read::EndianSlice::default(), + ), + abbreviations: Arc::new(read::Abbreviations::default()), + name: None, + comp_dir: None, + low_pc: 0, + str_offsets_base: DebugStrOffsetsBase(0), + addr_base: DebugAddrBase(0), + loclists_base: DebugLocListsBase(0), + rnglists_base: DebugRngListsBase(0), + line_program: None, + dwo_id: None, + }; + let context = ConvertUnitContext { + dwarf: &dwarf, + unit: &unit, + line_strings: &mut line_strings, + strings: &mut strings, + ranges: &mut ranges, + locations: &mut LocationListTable::default(), + convert_address: &|address| Some(Address::Constant(address)), + base_address: Address::Constant(0), + line_program_offset: None, + line_program_files: Vec::new(), + entry_ids: &HashMap::new(), + }; + let convert_range_list = RangeList::from(read_range_list, &context).unwrap(); + + if version <= 4 { + range_list.0[0] = Range::StartEnd { + begin: Address::Constant(6666), + end: Address::Constant(6666 + 7777), + }; + } + assert_eq!(range_list, convert_range_list); + } + } + } + } +} diff --git a/src/rust/vendor/gimli/src/write/section.rs b/src/rust/vendor/gimli/src/write/section.rs new file mode 100644 index 000000000..db5eb9a28 --- /dev/null +++ b/src/rust/vendor/gimli/src/write/section.rs @@ -0,0 +1,172 @@ +use std::ops::DerefMut; +use std::result; +use std::vec::Vec; + +use crate::common::SectionId; +use crate::write::{ + DebugAbbrev, DebugFrame, DebugInfo, DebugInfoReference, DebugLine, DebugLineStr, DebugLoc, + DebugLocLists, DebugRanges, DebugRngLists, DebugStr, EhFrame, Writer, +}; + +macro_rules! define_section { + ($name:ident, $offset:ident, $docs:expr) => { + #[doc=$docs] + #[derive(Debug, Default)] + pub struct $name(pub W); + + impl $name { + /// Return the offset of the next write. + pub fn offset(&self) -> $offset { + $offset(self.len()) + } + } + + impl From for $name { + #[inline] + fn from(w: W) -> Self { + $name(w) + } + } + + impl Deref for $name { + type Target = W; + + #[inline] + fn deref(&self) -> &W { + &self.0 + } + } + + impl DerefMut for $name { + #[inline] + fn deref_mut(&mut self) -> &mut W { + &mut self.0 + } + } + + impl Section for $name { + #[inline] + fn id(&self) -> SectionId { + SectionId::$name + } + } + }; +} + +/// Functionality common to all writable DWARF sections. +pub trait Section: DerefMut { + /// Returns the DWARF section kind for this type. + fn id(&self) -> SectionId; + + /// Returns the ELF section name for this type. + fn name(&self) -> &'static str { + self.id().name() + } +} + +/// All of the writable DWARF sections. +#[derive(Debug, Default)] +pub struct Sections { + /// The `.debug_abbrev` section. + pub debug_abbrev: DebugAbbrev, + /// The `.debug_info` section. + pub debug_info: DebugInfo, + /// The `.debug_line` section. + pub debug_line: DebugLine, + /// The `.debug_line_str` section. + pub debug_line_str: DebugLineStr, + /// The `.debug_ranges` section. + pub debug_ranges: DebugRanges, + /// The `.debug_rnglists` section. + pub debug_rnglists: DebugRngLists, + /// The `.debug_loc` section. + pub debug_loc: DebugLoc, + /// The `.debug_loclists` section. + pub debug_loclists: DebugLocLists, + /// The `.debug_str` section. + pub debug_str: DebugStr, + /// The `.debug_frame` section. + pub debug_frame: DebugFrame, + /// The `.eh_frame` section. + pub eh_frame: EhFrame, + /// Unresolved references in the `.debug_info` section. + pub(crate) debug_info_refs: Vec, + /// Unresolved references in the `.debug_loc` section. + pub(crate) debug_loc_refs: Vec, + /// Unresolved references in the `.debug_loclists` section. + pub(crate) debug_loclists_refs: Vec, +} + +impl Sections { + /// Create a new `Sections` using clones of the given `section`. + pub fn new(section: W) -> Self { + Sections { + debug_abbrev: DebugAbbrev(section.clone()), + debug_info: DebugInfo(section.clone()), + debug_line: DebugLine(section.clone()), + debug_line_str: DebugLineStr(section.clone()), + debug_ranges: DebugRanges(section.clone()), + debug_rnglists: DebugRngLists(section.clone()), + debug_loc: DebugLoc(section.clone()), + debug_loclists: DebugLocLists(section.clone()), + debug_str: DebugStr(section.clone()), + debug_frame: DebugFrame(section.clone()), + eh_frame: EhFrame(section), + debug_info_refs: Vec::new(), + debug_loc_refs: Vec::new(), + debug_loclists_refs: Vec::new(), + } + } +} + +impl Sections { + /// For each section, call `f` once with a shared reference. + pub fn for_each(&self, mut f: F) -> result::Result<(), E> + where + F: FnMut(SectionId, &W) -> result::Result<(), E>, + { + macro_rules! f { + ($s:expr) => { + f($s.id(), &$s) + }; + } + // Ordered so that earlier sections do not reference later sections. + f!(self.debug_abbrev)?; + f!(self.debug_str)?; + f!(self.debug_line_str)?; + f!(self.debug_line)?; + f!(self.debug_ranges)?; + f!(self.debug_rnglists)?; + f!(self.debug_loc)?; + f!(self.debug_loclists)?; + f!(self.debug_info)?; + f!(self.debug_frame)?; + f!(self.eh_frame)?; + Ok(()) + } + + /// For each section, call `f` once with a mutable reference. + pub fn for_each_mut(&mut self, mut f: F) -> result::Result<(), E> + where + F: FnMut(SectionId, &mut W) -> result::Result<(), E>, + { + macro_rules! f { + ($s:expr) => { + f($s.id(), &mut $s) + }; + } + // Ordered so that earlier sections do not reference later sections. + f!(self.debug_abbrev)?; + f!(self.debug_str)?; + f!(self.debug_line_str)?; + f!(self.debug_line)?; + f!(self.debug_ranges)?; + f!(self.debug_rnglists)?; + f!(self.debug_loc)?; + f!(self.debug_loclists)?; + f!(self.debug_info)?; + f!(self.debug_frame)?; + f!(self.eh_frame)?; + Ok(()) + } +} diff --git a/src/rust/vendor/gimli/src/write/str.rs b/src/rust/vendor/gimli/src/write/str.rs new file mode 100644 index 000000000..83285c035 --- /dev/null +++ b/src/rust/vendor/gimli/src/write/str.rs @@ -0,0 +1,172 @@ +use alloc::vec::Vec; +use indexmap::IndexSet; +use std::ops::{Deref, DerefMut}; + +use crate::common::{DebugLineStrOffset, DebugStrOffset, SectionId}; +use crate::write::{BaseId, Result, Section, Writer}; + +// Requirements: +// - values are `[u8]`, null bytes are not allowed +// - insertion returns a fixed id +// - inserting a duplicate returns the id of the existing value +// - able to convert an id to a section offset +// Optional? +// - able to get an existing value given an id +// +// Limitations of current implementation (using IndexSet): +// - inserting requires either an allocation for duplicates, +// or a double lookup for non-duplicates +// - doesn't preserve offsets when updating an existing `.debug_str` section +// +// Possible changes: +// - calculate offsets as we add values, and use that as the id. +// This would avoid the need for DebugStrOffsets but would make it +// hard to implement `get`. +macro_rules! define_string_table { + ($name:ident, $id:ident, $section:ident, $offsets:ident, $docs:expr) => { + #[doc=$docs] + #[derive(Debug, Default)] + pub struct $name { + base_id: BaseId, + strings: IndexSet>, + } + + impl $name { + /// Add a string to the string table and return its id. + /// + /// If the string already exists, then return the id of the existing string. + /// + /// # Panics + /// + /// Panics if `bytes` contains a null byte. + pub fn add(&mut self, bytes: T) -> $id + where + T: Into>, + { + let bytes = bytes.into(); + assert!(!bytes.contains(&0)); + let (index, _) = self.strings.insert_full(bytes); + $id::new(self.base_id, index) + } + + /// Return the number of strings in the table. + #[inline] + pub fn count(&self) -> usize { + self.strings.len() + } + + /// Get a reference to a string in the table. + /// + /// # Panics + /// + /// Panics if `id` is invalid. + pub fn get(&self, id: $id) -> &[u8] { + debug_assert_eq!(self.base_id, id.base_id); + self.strings.get_index(id.index).map(Vec::as_slice).unwrap() + } + + /// Write the string table to the `.debug_str` section. + /// + /// Returns the offsets at which the strings are written. + pub fn write(&self, w: &mut $section) -> Result<$offsets> { + let mut offsets = Vec::new(); + for bytes in self.strings.iter() { + offsets.push(w.offset()); + w.write(bytes)?; + w.write_u8(0)?; + } + + Ok($offsets { + base_id: self.base_id, + offsets, + }) + } + } + }; +} + +define_id!(StringId, "An identifier for a string in a `StringTable`."); + +define_string_table!( + StringTable, + StringId, + DebugStr, + DebugStrOffsets, + "A table of strings that will be stored in a `.debug_str` section." +); + +define_section!(DebugStr, DebugStrOffset, "A writable `.debug_str` section."); + +define_offsets!( + DebugStrOffsets: StringId => DebugStrOffset, + "The section offsets of all strings within a `.debug_str` section." +); + +define_id!( + LineStringId, + "An identifier for a string in a `LineStringTable`." +); + +define_string_table!( + LineStringTable, + LineStringId, + DebugLineStr, + DebugLineStrOffsets, + "A table of strings that will be stored in a `.debug_line_str` section." +); + +define_section!( + DebugLineStr, + DebugLineStrOffset, + "A writable `.debug_line_str` section." +); + +define_offsets!( + DebugLineStrOffsets: LineStringId => DebugLineStrOffset, + "The section offsets of all strings within a `.debug_line_str` section." +); + +#[cfg(test)] +#[cfg(feature = "read")] +mod tests { + use super::*; + use crate::read; + use crate::write::EndianVec; + use crate::LittleEndian; + + #[test] + fn test_string_table() { + let mut strings = StringTable::default(); + assert_eq!(strings.count(), 0); + let id1 = strings.add(&b"one"[..]); + let id2 = strings.add(&b"two"[..]); + assert_eq!(strings.add(&b"one"[..]), id1); + assert_eq!(strings.add(&b"two"[..]), id2); + assert_eq!(strings.get(id1), &b"one"[..]); + assert_eq!(strings.get(id2), &b"two"[..]); + assert_eq!(strings.count(), 2); + + let mut debug_str = DebugStr::from(EndianVec::new(LittleEndian)); + let offsets = strings.write(&mut debug_str).unwrap(); + assert_eq!(debug_str.slice(), b"one\0two\0"); + assert_eq!(offsets.get(id1), DebugStrOffset(0)); + assert_eq!(offsets.get(id2), DebugStrOffset(4)); + assert_eq!(offsets.count(), 2); + } + + #[test] + fn test_string_table_read() { + let mut strings = StringTable::default(); + let id1 = strings.add(&b"one"[..]); + let id2 = strings.add(&b"two"[..]); + + let mut debug_str = DebugStr::from(EndianVec::new(LittleEndian)); + let offsets = strings.write(&mut debug_str).unwrap(); + + let read_debug_str = read::DebugStr::new(debug_str.slice(), LittleEndian); + let str1 = read_debug_str.get_str(offsets.get(id1)).unwrap(); + let str2 = read_debug_str.get_str(offsets.get(id2)).unwrap(); + assert_eq!(str1.slice(), &b"one"[..]); + assert_eq!(str2.slice(), &b"two"[..]); + } +} diff --git a/src/rust/vendor/gimli/src/write/unit.rs b/src/rust/vendor/gimli/src/write/unit.rs new file mode 100644 index 000000000..dd8ba6748 --- /dev/null +++ b/src/rust/vendor/gimli/src/write/unit.rs @@ -0,0 +1,3152 @@ +use alloc::vec::Vec; +use std::ops::{Deref, DerefMut}; +use std::{slice, usize}; + +use crate::common::{ + DebugAbbrevOffset, DebugInfoOffset, DebugLineOffset, DebugMacinfoOffset, DebugMacroOffset, + DebugStrOffset, DebugTypeSignature, Encoding, Format, SectionId, +}; +use crate::constants; +use crate::leb128::write::{sleb128_size, uleb128_size}; +use crate::write::{ + Abbreviation, AbbreviationTable, Address, AttributeSpecification, BaseId, DebugLineStrOffsets, + DebugStrOffsets, Error, Expression, FileId, LineProgram, LineStringId, LocationListId, + LocationListOffsets, LocationListTable, RangeListId, RangeListOffsets, RangeListTable, + Reference, Result, Section, Sections, StringId, Writer, +}; + +define_id!(UnitId, "An identifier for a unit in a `UnitTable`."); + +define_id!(UnitEntryId, "An identifier for an entry in a `Unit`."); + +/// A table of units that will be stored in the `.debug_info` section. +#[derive(Debug, Default)] +pub struct UnitTable { + base_id: BaseId, + units: Vec, +} + +impl UnitTable { + /// Create a new unit and add it to the table. + /// + /// `address_size` must be in bytes. + /// + /// Returns the `UnitId` of the new unit. + #[inline] + pub fn add(&mut self, unit: Unit) -> UnitId { + let id = UnitId::new(self.base_id, self.units.len()); + self.units.push(unit); + id + } + + /// Return the number of units. + #[inline] + pub fn count(&self) -> usize { + self.units.len() + } + + /// Return the id of a unit. + /// + /// # Panics + /// + /// Panics if `index >= self.count()`. + #[inline] + pub fn id(&self, index: usize) -> UnitId { + assert!(index < self.count()); + UnitId::new(self.base_id, index) + } + + /// Get a reference to a unit. + /// + /// # Panics + /// + /// Panics if `id` is invalid. + #[inline] + pub fn get(&self, id: UnitId) -> &Unit { + debug_assert_eq!(self.base_id, id.base_id); + &self.units[id.index] + } + + /// Get a mutable reference to a unit. + /// + /// # Panics + /// + /// Panics if `id` is invalid. + #[inline] + pub fn get_mut(&mut self, id: UnitId) -> &mut Unit { + debug_assert_eq!(self.base_id, id.base_id); + &mut self.units[id.index] + } + + /// Write the units to the given sections. + /// + /// `strings` must contain the `.debug_str` offsets of the corresponding + /// `StringTable`. + pub fn write( + &mut self, + sections: &mut Sections, + line_strings: &DebugLineStrOffsets, + strings: &DebugStrOffsets, + ) -> Result { + let mut offsets = DebugInfoOffsets { + base_id: self.base_id, + units: Vec::new(), + }; + for unit in &mut self.units { + // TODO: maybe share abbreviation tables + let abbrev_offset = sections.debug_abbrev.offset(); + let mut abbrevs = AbbreviationTable::default(); + + offsets.units.push(unit.write( + sections, + abbrev_offset, + &mut abbrevs, + line_strings, + strings, + )?); + + abbrevs.write(&mut sections.debug_abbrev)?; + } + + write_section_refs( + &mut sections.debug_info_refs, + &mut sections.debug_info.0, + &offsets, + )?; + write_section_refs( + &mut sections.debug_loc_refs, + &mut sections.debug_loc.0, + &offsets, + )?; + write_section_refs( + &mut sections.debug_loclists_refs, + &mut sections.debug_loclists.0, + &offsets, + )?; + + Ok(offsets) + } +} + +fn write_section_refs( + references: &mut Vec, + w: &mut W, + offsets: &DebugInfoOffsets, +) -> Result<()> { + for r in references.drain(..) { + let entry_offset = offsets.entry(r.unit, r.entry).0; + debug_assert_ne!(entry_offset, 0); + w.write_offset_at(r.offset, entry_offset, SectionId::DebugInfo, r.size)?; + } + Ok(()) +} + +/// A unit's debugging information. +#[derive(Debug)] +pub struct Unit { + base_id: BaseId, + /// The encoding parameters for this unit. + encoding: Encoding, + /// The line number program for this unit. + pub line_program: LineProgram, + /// A table of range lists used by this unit. + pub ranges: RangeListTable, + /// A table of location lists used by this unit. + pub locations: LocationListTable, + /// All entries in this unit. The order is unrelated to the tree order. + // Requirements: + // - entries form a tree + // - entries can be added in any order + // - entries have a fixed id + // - able to quickly lookup an entry from its id + // Limitations of current implementation: + // - mutable iteration of children is messy due to borrow checker + entries: Vec, + /// The index of the root entry in entries. + root: UnitEntryId, +} + +impl Unit { + /// Create a new `Unit`. + pub fn new(encoding: Encoding, line_program: LineProgram) -> Self { + let base_id = BaseId::default(); + let ranges = RangeListTable::default(); + let locations = LocationListTable::default(); + let mut entries = Vec::new(); + let root = DebuggingInformationEntry::new( + base_id, + &mut entries, + None, + constants::DW_TAG_compile_unit, + ); + Unit { + base_id, + encoding, + line_program, + ranges, + locations, + entries, + root, + } + } + + /// Return the encoding parameters for this unit. + #[inline] + pub fn encoding(&self) -> Encoding { + self.encoding + } + + /// Return the DWARF version for this unit. + #[inline] + pub fn version(&self) -> u16 { + self.encoding.version + } + + /// Return the address size in bytes for this unit. + #[inline] + pub fn address_size(&self) -> u8 { + self.encoding.address_size + } + + /// Return the DWARF format for this unit. + #[inline] + pub fn format(&self) -> Format { + self.encoding.format + } + + /// Return the number of `DebuggingInformationEntry`s created for this unit. + /// + /// This includes entries that no longer have a parent. + #[inline] + pub fn count(&self) -> usize { + self.entries.len() + } + + /// Return the id of the root entry. + #[inline] + pub fn root(&self) -> UnitEntryId { + self.root + } + + /// Add a new `DebuggingInformationEntry` to this unit and return its id. + /// + /// The `parent` must be within the same unit. + /// + /// # Panics + /// + /// Panics if `parent` is invalid. + #[inline] + pub fn add(&mut self, parent: UnitEntryId, tag: constants::DwTag) -> UnitEntryId { + debug_assert_eq!(self.base_id, parent.base_id); + DebuggingInformationEntry::new(self.base_id, &mut self.entries, Some(parent), tag) + } + + /// Get a reference to an entry. + /// + /// # Panics + /// + /// Panics if `id` is invalid. + #[inline] + pub fn get(&self, id: UnitEntryId) -> &DebuggingInformationEntry { + debug_assert_eq!(self.base_id, id.base_id); + &self.entries[id.index] + } + + /// Get a mutable reference to an entry. + /// + /// # Panics + /// + /// Panics if `id` is invalid. + #[inline] + pub fn get_mut(&mut self, id: UnitEntryId) -> &mut DebuggingInformationEntry { + debug_assert_eq!(self.base_id, id.base_id); + &mut self.entries[id.index] + } + + /// Return true if `self.line_program` is used by a DIE. + fn line_program_in_use(&self) -> bool { + if self.line_program.is_none() { + return false; + } + if !self.line_program.is_empty() { + return true; + } + + for entry in &self.entries { + for attr in &entry.attrs { + if let AttributeValue::FileIndex(Some(_)) = attr.value { + return true; + } + } + } + + false + } + + /// Write the unit to the given sections. + pub(crate) fn write( + &mut self, + sections: &mut Sections, + abbrev_offset: DebugAbbrevOffset, + abbrevs: &mut AbbreviationTable, + line_strings: &DebugLineStrOffsets, + strings: &DebugStrOffsets, + ) -> Result { + let line_program = if self.line_program_in_use() { + self.entries[self.root.index] + .set(constants::DW_AT_stmt_list, AttributeValue::LineProgramRef); + Some(self.line_program.write( + &mut sections.debug_line, + self.encoding, + line_strings, + strings, + )?) + } else { + self.entries[self.root.index].delete(constants::DW_AT_stmt_list); + None + }; + + // TODO: use .debug_types for type units in DWARF v4. + let w = &mut sections.debug_info; + + let mut offsets = UnitOffsets { + base_id: self.base_id, + unit: w.offset(), + // Entries can be written in any order, so create the complete vec now. + entries: vec![EntryOffset::none(); self.entries.len()], + }; + + let length_offset = w.write_initial_length(self.format())?; + let length_base = w.len(); + + w.write_u16(self.version())?; + if 2 <= self.version() && self.version() <= 4 { + w.write_offset( + abbrev_offset.0, + SectionId::DebugAbbrev, + self.format().word_size(), + )?; + w.write_u8(self.address_size())?; + } else if self.version() == 5 { + w.write_u8(constants::DW_UT_compile.0)?; + w.write_u8(self.address_size())?; + w.write_offset( + abbrev_offset.0, + SectionId::DebugAbbrev, + self.format().word_size(), + )?; + } else { + return Err(Error::UnsupportedVersion(self.version())); + } + + // Calculate all DIE offsets, so that we are able to output references to them. + // However, references to base types in expressions use ULEB128, so base types + // must be moved to the front before we can calculate offsets. + self.reorder_base_types(); + let mut offset = w.len(); + self.entries[self.root.index].calculate_offsets( + self, + &mut offset, + &mut offsets, + abbrevs, + )?; + + let range_lists = self.ranges.write(sections, self.encoding)?; + // Location lists can't be written until we have DIE offsets. + let loc_lists = self + .locations + .write(sections, self.encoding, Some(&offsets))?; + + let w = &mut sections.debug_info; + let mut unit_refs = Vec::new(); + self.entries[self.root.index].write( + w, + &mut sections.debug_info_refs, + &mut unit_refs, + self, + &mut offsets, + line_program, + line_strings, + strings, + &range_lists, + &loc_lists, + )?; + + let length = (w.len() - length_base) as u64; + w.write_initial_length_at(length_offset, length, self.format())?; + + for (offset, entry) in unit_refs { + // This does not need relocation. + w.write_udata_at( + offset.0, + offsets.unit_offset(entry), + self.format().word_size(), + )?; + } + + Ok(offsets) + } + + /// Reorder base types to come first so that typed stack operations + /// can get their offset. + fn reorder_base_types(&mut self) { + let root = &self.entries[self.root.index]; + let mut root_children = Vec::with_capacity(root.children.len()); + for entry in &root.children { + if self.entries[entry.index].tag == constants::DW_TAG_base_type { + root_children.push(*entry); + } + } + for entry in &root.children { + if self.entries[entry.index].tag != constants::DW_TAG_base_type { + root_children.push(*entry); + } + } + self.entries[self.root.index].children = root_children; + } +} + +/// A Debugging Information Entry (DIE). +/// +/// DIEs have a set of attributes and optionally have children DIEs as well. +/// +/// DIEs form a tree without any cycles. This is enforced by specifying the +/// parent when creating a DIE, and disallowing changes of parent. +#[derive(Debug)] +pub struct DebuggingInformationEntry { + id: UnitEntryId, + parent: Option, + tag: constants::DwTag, + /// Whether to emit `DW_AT_sibling`. + sibling: bool, + attrs: Vec, + children: Vec, +} + +impl DebuggingInformationEntry { + /// Create a new `DebuggingInformationEntry`. + /// + /// # Panics + /// + /// Panics if `parent` is invalid. + #[allow(clippy::new_ret_no_self)] + fn new( + base_id: BaseId, + entries: &mut Vec, + parent: Option, + tag: constants::DwTag, + ) -> UnitEntryId { + let id = UnitEntryId::new(base_id, entries.len()); + entries.push(DebuggingInformationEntry { + id, + parent, + tag, + sibling: false, + attrs: Vec::new(), + children: Vec::new(), + }); + if let Some(parent) = parent { + debug_assert_eq!(base_id, parent.base_id); + assert_ne!(parent, id); + entries[parent.index].children.push(id); + } + id + } + + /// Return the id of this entry. + #[inline] + pub fn id(&self) -> UnitEntryId { + self.id + } + + /// Return the parent of this entry. + #[inline] + pub fn parent(&self) -> Option { + self.parent + } + + /// Return the tag of this entry. + #[inline] + pub fn tag(&self) -> constants::DwTag { + self.tag + } + + /// Return `true` if a `DW_AT_sibling` attribute will be emitted. + #[inline] + pub fn sibling(&self) -> bool { + self.sibling + } + + /// Set whether a `DW_AT_sibling` attribute will be emitted. + /// + /// The attribute will only be emitted if the DIE has children. + #[inline] + pub fn set_sibling(&mut self, sibling: bool) { + self.sibling = sibling; + } + + /// Iterate over the attributes of this entry. + #[inline] + pub fn attrs(&self) -> slice::Iter { + self.attrs.iter() + } + + /// Iterate over the attributes of this entry for modification. + #[inline] + pub fn attrs_mut(&mut self) -> slice::IterMut { + self.attrs.iter_mut() + } + + /// Get an attribute. + pub fn get(&self, name: constants::DwAt) -> Option<&AttributeValue> { + self.attrs + .iter() + .find(|attr| attr.name == name) + .map(|attr| &attr.value) + } + + /// Get an attribute for modification. + pub fn get_mut(&mut self, name: constants::DwAt) -> Option<&mut AttributeValue> { + self.attrs + .iter_mut() + .find(|attr| attr.name == name) + .map(|attr| &mut attr.value) + } + + /// Set an attribute. + /// + /// Replaces any existing attribute with the same name. + /// + /// # Panics + /// + /// Panics if `name` is `DW_AT_sibling`. Use `set_sibling` instead. + pub fn set(&mut self, name: constants::DwAt, value: AttributeValue) { + assert_ne!(name, constants::DW_AT_sibling); + if let Some(attr) = self.attrs.iter_mut().find(|attr| attr.name == name) { + attr.value = value; + return; + } + self.attrs.push(Attribute { name, value }); + } + + /// Delete an attribute. + /// + /// Replaces any existing attribute with the same name. + pub fn delete(&mut self, name: constants::DwAt) { + self.attrs.retain(|x| x.name != name); + } + + /// Iterate over the children of this entry. + /// + /// Note: use `Unit::add` to add a new child to this entry. + #[inline] + pub fn children(&self) -> slice::Iter { + self.children.iter() + } + + /// Delete a child entry and all of its children. + pub fn delete_child(&mut self, id: UnitEntryId) { + self.children.retain(|&child| child != id); + } + + /// Return the type abbreviation for this DIE. + fn abbreviation(&self, encoding: Encoding) -> Result { + let mut attrs = Vec::new(); + + if self.sibling && !self.children.is_empty() { + let form = match encoding.format { + Format::Dwarf32 => constants::DW_FORM_ref4, + Format::Dwarf64 => constants::DW_FORM_ref8, + }; + attrs.push(AttributeSpecification::new(constants::DW_AT_sibling, form)); + } + + for attr in &self.attrs { + attrs.push(attr.specification(encoding)?); + } + + Ok(Abbreviation::new( + self.tag, + !self.children.is_empty(), + attrs, + )) + } + + fn calculate_offsets( + &self, + unit: &Unit, + offset: &mut usize, + offsets: &mut UnitOffsets, + abbrevs: &mut AbbreviationTable, + ) -> Result<()> { + offsets.entries[self.id.index].offset = DebugInfoOffset(*offset); + offsets.entries[self.id.index].abbrev = abbrevs.add(self.abbreviation(unit.encoding())?); + *offset += self.size(unit, offsets); + if !self.children.is_empty() { + for child in &self.children { + unit.entries[child.index].calculate_offsets(unit, offset, offsets, abbrevs)?; + } + // Null child + *offset += 1; + } + Ok(()) + } + + fn size(&self, unit: &Unit, offsets: &UnitOffsets) -> usize { + let mut size = uleb128_size(offsets.abbrev(self.id)); + if self.sibling && !self.children.is_empty() { + size += unit.format().word_size() as usize; + } + for attr in &self.attrs { + size += attr.value.size(unit, offsets); + } + size + } + + /// Write the entry to the given sections. + fn write( + &self, + w: &mut DebugInfo, + debug_info_refs: &mut Vec, + unit_refs: &mut Vec<(DebugInfoOffset, UnitEntryId)>, + unit: &Unit, + offsets: &mut UnitOffsets, + line_program: Option, + line_strings: &DebugLineStrOffsets, + strings: &DebugStrOffsets, + range_lists: &RangeListOffsets, + loc_lists: &LocationListOffsets, + ) -> Result<()> { + debug_assert_eq!(offsets.debug_info_offset(self.id), w.offset()); + w.write_uleb128(offsets.abbrev(self.id))?; + + let sibling_offset = if self.sibling && !self.children.is_empty() { + let offset = w.offset(); + w.write_udata(0, unit.format().word_size())?; + Some(offset) + } else { + None + }; + + for attr in &self.attrs { + attr.value.write( + w, + debug_info_refs, + unit_refs, + unit, + offsets, + line_program, + line_strings, + strings, + range_lists, + loc_lists, + )?; + } + + if !self.children.is_empty() { + for child in &self.children { + unit.entries[child.index].write( + w, + debug_info_refs, + unit_refs, + unit, + offsets, + line_program, + line_strings, + strings, + range_lists, + loc_lists, + )?; + } + // Null child + w.write_u8(0)?; + } + + if let Some(offset) = sibling_offset { + let next_offset = (w.offset().0 - offsets.unit.0) as u64; + // This does not need relocation. + w.write_udata_at(offset.0, next_offset, unit.format().word_size())?; + } + Ok(()) + } +} + +/// An attribute in a `DebuggingInformationEntry`, consisting of a name and +/// associated value. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Attribute { + name: constants::DwAt, + value: AttributeValue, +} + +impl Attribute { + /// Get the name of this attribute. + #[inline] + pub fn name(&self) -> constants::DwAt { + self.name + } + + /// Get the value of this attribute. + #[inline] + pub fn get(&self) -> &AttributeValue { + &self.value + } + + /// Set the value of this attribute. + #[inline] + pub fn set(&mut self, value: AttributeValue) { + self.value = value; + } + + /// Return the type specification for this attribute. + fn specification(&self, encoding: Encoding) -> Result { + Ok(AttributeSpecification::new( + self.name, + self.value.form(encoding)?, + )) + } +} + +/// The value of an attribute in a `DebuggingInformationEntry`. +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum AttributeValue { + /// "Refers to some location in the address space of the described program." + Address(Address), + + /// A slice of an arbitrary number of bytes. + Block(Vec), + + /// A one byte constant data value. How to interpret the byte depends on context. + /// + /// From section 7 of the standard: "Depending on context, it may be a + /// signed integer, an unsigned integer, a floating-point constant, or + /// anything else." + Data1(u8), + + /// A two byte constant data value. How to interpret the bytes depends on context. + /// + /// This value will be converted to the target endian before writing. + /// + /// From section 7 of the standard: "Depending on context, it may be a + /// signed integer, an unsigned integer, a floating-point constant, or + /// anything else." + Data2(u16), + + /// A four byte constant data value. How to interpret the bytes depends on context. + /// + /// This value will be converted to the target endian before writing. + /// + /// From section 7 of the standard: "Depending on context, it may be a + /// signed integer, an unsigned integer, a floating-point constant, or + /// anything else." + Data4(u32), + + /// An eight byte constant data value. How to interpret the bytes depends on context. + /// + /// This value will be converted to the target endian before writing. + /// + /// From section 7 of the standard: "Depending on context, it may be a + /// signed integer, an unsigned integer, a floating-point constant, or + /// anything else." + Data8(u64), + + /// A signed integer constant. + Sdata(i64), + + /// An unsigned integer constant. + Udata(u64), + + /// "The information bytes contain a DWARF expression (see Section 2.5) or + /// location description (see Section 2.6)." + Exprloc(Expression), + + /// A boolean that indicates presence or absence of the attribute. + Flag(bool), + + /// An attribute that is always present. + FlagPresent, + + /// A reference to a `DebuggingInformationEntry` in this unit. + UnitRef(UnitEntryId), + + /// A reference to a `DebuggingInformationEntry` in a potentially different unit. + DebugInfoRef(Reference), + + /// An offset into the `.debug_info` section of the supplementary object file. + /// + /// The API does not currently assist with generating this offset. + /// This variant will be removed from the API once support for writing + /// supplementary object files is implemented. + DebugInfoRefSup(DebugInfoOffset), + + /// A reference to a line number program. + LineProgramRef, + + /// A reference to a location list. + LocationListRef(LocationListId), + + /// An offset into the `.debug_macinfo` section. + /// + /// The API does not currently assist with generating this offset. + /// This variant will be removed from the API once support for writing + /// `.debug_macinfo` sections is implemented. + DebugMacinfoRef(DebugMacinfoOffset), + + /// An offset into the `.debug_macro` section. + /// + /// The API does not currently assist with generating this offset. + /// This variant will be removed from the API once support for writing + /// `.debug_macro` sections is implemented. + DebugMacroRef(DebugMacroOffset), + + /// A reference to a range list. + RangeListRef(RangeListId), + + /// A type signature. + /// + /// The API does not currently assist with generating this signature. + /// This variant will be removed from the API once support for writing + /// `.debug_types` sections is implemented. + DebugTypesRef(DebugTypeSignature), + + /// A reference to a string in the `.debug_str` section. + StringRef(StringId), + + /// An offset into the `.debug_str` section of the supplementary object file. + /// + /// The API does not currently assist with generating this offset. + /// This variant will be removed from the API once support for writing + /// supplementary object files is implemented. + DebugStrRefSup(DebugStrOffset), + + /// A reference to a string in the `.debug_line_str` section. + LineStringRef(LineStringId), + + /// A slice of bytes representing a string. Must not include null bytes. + /// Not guaranteed to be UTF-8 or anything like that. + String(Vec), + + /// The value of a `DW_AT_encoding` attribute. + Encoding(constants::DwAte), + + /// The value of a `DW_AT_decimal_sign` attribute. + DecimalSign(constants::DwDs), + + /// The value of a `DW_AT_endianity` attribute. + Endianity(constants::DwEnd), + + /// The value of a `DW_AT_accessibility` attribute. + Accessibility(constants::DwAccess), + + /// The value of a `DW_AT_visibility` attribute. + Visibility(constants::DwVis), + + /// The value of a `DW_AT_virtuality` attribute. + Virtuality(constants::DwVirtuality), + + /// The value of a `DW_AT_language` attribute. + Language(constants::DwLang), + + /// The value of a `DW_AT_address_class` attribute. + AddressClass(constants::DwAddr), + + /// The value of a `DW_AT_identifier_case` attribute. + IdentifierCase(constants::DwId), + + /// The value of a `DW_AT_calling_convention` attribute. + CallingConvention(constants::DwCc), + + /// The value of a `DW_AT_inline` attribute. + Inline(constants::DwInl), + + /// The value of a `DW_AT_ordering` attribute. + Ordering(constants::DwOrd), + + /// An index into the filename entries from the line number information + /// table for the unit containing this value. + FileIndex(Option), +} + +impl AttributeValue { + /// Return the form that will be used to encode this value. + pub fn form(&self, encoding: Encoding) -> Result { + // TODO: missing forms: + // - DW_FORM_indirect + // - DW_FORM_implicit_const + // - FW_FORM_block1/block2/block4 + // - DW_FORM_str/strx1/strx2/strx3/strx4 + // - DW_FORM_addrx/addrx1/addrx2/addrx3/addrx4 + // - DW_FORM_data16 + // - DW_FORM_line_strp + // - DW_FORM_loclistx + // - DW_FORM_rnglistx + let form = match *self { + AttributeValue::Address(_) => constants::DW_FORM_addr, + AttributeValue::Block(_) => constants::DW_FORM_block, + AttributeValue::Data1(_) => constants::DW_FORM_data1, + AttributeValue::Data2(_) => constants::DW_FORM_data2, + AttributeValue::Data4(_) => constants::DW_FORM_data4, + AttributeValue::Data8(_) => constants::DW_FORM_data8, + AttributeValue::Exprloc(_) => constants::DW_FORM_exprloc, + AttributeValue::Flag(_) => constants::DW_FORM_flag, + AttributeValue::FlagPresent => constants::DW_FORM_flag_present, + AttributeValue::UnitRef(_) => { + // Using a fixed size format lets us write a placeholder before we know + // the value. + match encoding.format { + Format::Dwarf32 => constants::DW_FORM_ref4, + Format::Dwarf64 => constants::DW_FORM_ref8, + } + } + AttributeValue::DebugInfoRef(_) => constants::DW_FORM_ref_addr, + AttributeValue::DebugInfoRefSup(_) => { + // TODO: should this depend on the size of supplementary section? + match encoding.format { + Format::Dwarf32 => constants::DW_FORM_ref_sup4, + Format::Dwarf64 => constants::DW_FORM_ref_sup8, + } + } + AttributeValue::LineProgramRef + | AttributeValue::LocationListRef(_) + | AttributeValue::DebugMacinfoRef(_) + | AttributeValue::DebugMacroRef(_) + | AttributeValue::RangeListRef(_) => { + if encoding.version == 2 || encoding.version == 3 { + match encoding.format { + Format::Dwarf32 => constants::DW_FORM_data4, + Format::Dwarf64 => constants::DW_FORM_data8, + } + } else { + constants::DW_FORM_sec_offset + } + } + AttributeValue::DebugTypesRef(_) => constants::DW_FORM_ref_sig8, + AttributeValue::StringRef(_) => constants::DW_FORM_strp, + AttributeValue::DebugStrRefSup(_) => constants::DW_FORM_strp_sup, + AttributeValue::LineStringRef(_) => constants::DW_FORM_line_strp, + AttributeValue::String(_) => constants::DW_FORM_string, + AttributeValue::Encoding(_) + | AttributeValue::DecimalSign(_) + | AttributeValue::Endianity(_) + | AttributeValue::Accessibility(_) + | AttributeValue::Visibility(_) + | AttributeValue::Virtuality(_) + | AttributeValue::Language(_) + | AttributeValue::AddressClass(_) + | AttributeValue::IdentifierCase(_) + | AttributeValue::CallingConvention(_) + | AttributeValue::Inline(_) + | AttributeValue::Ordering(_) + | AttributeValue::FileIndex(_) + | AttributeValue::Udata(_) => constants::DW_FORM_udata, + AttributeValue::Sdata(_) => constants::DW_FORM_sdata, + }; + Ok(form) + } + + fn size(&self, unit: &Unit, offsets: &UnitOffsets) -> usize { + macro_rules! debug_assert_form { + ($form:expr) => { + debug_assert_eq!(self.form(unit.encoding()).unwrap(), $form) + }; + } + match *self { + AttributeValue::Address(_) => { + debug_assert_form!(constants::DW_FORM_addr); + unit.address_size() as usize + } + AttributeValue::Block(ref val) => { + debug_assert_form!(constants::DW_FORM_block); + uleb128_size(val.len() as u64) + val.len() + } + AttributeValue::Data1(_) => { + debug_assert_form!(constants::DW_FORM_data1); + 1 + } + AttributeValue::Data2(_) => { + debug_assert_form!(constants::DW_FORM_data2); + 2 + } + AttributeValue::Data4(_) => { + debug_assert_form!(constants::DW_FORM_data4); + 4 + } + AttributeValue::Data8(_) => { + debug_assert_form!(constants::DW_FORM_data8); + 8 + } + AttributeValue::Sdata(val) => { + debug_assert_form!(constants::DW_FORM_sdata); + sleb128_size(val) + } + AttributeValue::Udata(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val) + } + AttributeValue::Exprloc(ref val) => { + debug_assert_form!(constants::DW_FORM_exprloc); + let size = val.size(unit.encoding(), Some(offsets)); + uleb128_size(size as u64) + size + } + AttributeValue::Flag(_) => { + debug_assert_form!(constants::DW_FORM_flag); + 1 + } + AttributeValue::FlagPresent => { + debug_assert_form!(constants::DW_FORM_flag_present); + 0 + } + AttributeValue::UnitRef(_) => { + match unit.format() { + Format::Dwarf32 => debug_assert_form!(constants::DW_FORM_ref4), + Format::Dwarf64 => debug_assert_form!(constants::DW_FORM_ref8), + } + unit.format().word_size() as usize + } + AttributeValue::DebugInfoRef(_) => { + debug_assert_form!(constants::DW_FORM_ref_addr); + if unit.version() == 2 { + unit.address_size() as usize + } else { + unit.format().word_size() as usize + } + } + AttributeValue::DebugInfoRefSup(_) => { + match unit.format() { + Format::Dwarf32 => debug_assert_form!(constants::DW_FORM_ref_sup4), + Format::Dwarf64 => debug_assert_form!(constants::DW_FORM_ref_sup8), + } + unit.format().word_size() as usize + } + AttributeValue::LineProgramRef => { + if unit.version() >= 4 { + debug_assert_form!(constants::DW_FORM_sec_offset); + } + unit.format().word_size() as usize + } + AttributeValue::LocationListRef(_) => { + if unit.version() >= 4 { + debug_assert_form!(constants::DW_FORM_sec_offset); + } + unit.format().word_size() as usize + } + AttributeValue::DebugMacinfoRef(_) => { + if unit.version() >= 4 { + debug_assert_form!(constants::DW_FORM_sec_offset); + } + unit.format().word_size() as usize + } + AttributeValue::DebugMacroRef(_) => { + if unit.version() >= 4 { + debug_assert_form!(constants::DW_FORM_sec_offset); + } + unit.format().word_size() as usize + } + AttributeValue::RangeListRef(_) => { + if unit.version() >= 4 { + debug_assert_form!(constants::DW_FORM_sec_offset); + } + unit.format().word_size() as usize + } + AttributeValue::DebugTypesRef(_) => { + debug_assert_form!(constants::DW_FORM_ref_sig8); + 8 + } + AttributeValue::StringRef(_) => { + debug_assert_form!(constants::DW_FORM_strp); + unit.format().word_size() as usize + } + AttributeValue::DebugStrRefSup(_) => { + debug_assert_form!(constants::DW_FORM_strp_sup); + unit.format().word_size() as usize + } + AttributeValue::LineStringRef(_) => { + debug_assert_form!(constants::DW_FORM_line_strp); + unit.format().word_size() as usize + } + AttributeValue::String(ref val) => { + debug_assert_form!(constants::DW_FORM_string); + val.len() + 1 + } + AttributeValue::Encoding(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val.0 as u64) + } + AttributeValue::DecimalSign(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val.0 as u64) + } + AttributeValue::Endianity(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val.0 as u64) + } + AttributeValue::Accessibility(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val.0 as u64) + } + AttributeValue::Visibility(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val.0 as u64) + } + AttributeValue::Virtuality(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val.0 as u64) + } + AttributeValue::Language(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val.0 as u64) + } + AttributeValue::AddressClass(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val.0 as u64) + } + AttributeValue::IdentifierCase(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val.0 as u64) + } + AttributeValue::CallingConvention(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val.0 as u64) + } + AttributeValue::Inline(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val.0 as u64) + } + AttributeValue::Ordering(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val.0 as u64) + } + AttributeValue::FileIndex(val) => { + debug_assert_form!(constants::DW_FORM_udata); + uleb128_size(val.map(FileId::raw).unwrap_or(0)) + } + } + } + + /// Write the attribute value to the given sections. + fn write( + &self, + w: &mut DebugInfo, + debug_info_refs: &mut Vec, + unit_refs: &mut Vec<(DebugInfoOffset, UnitEntryId)>, + unit: &Unit, + offsets: &UnitOffsets, + line_program: Option, + line_strings: &DebugLineStrOffsets, + strings: &DebugStrOffsets, + range_lists: &RangeListOffsets, + loc_lists: &LocationListOffsets, + ) -> Result<()> { + macro_rules! debug_assert_form { + ($form:expr) => { + debug_assert_eq!(self.form(unit.encoding()).unwrap(), $form) + }; + } + match *self { + AttributeValue::Address(val) => { + debug_assert_form!(constants::DW_FORM_addr); + w.write_address(val, unit.address_size())?; + } + AttributeValue::Block(ref val) => { + debug_assert_form!(constants::DW_FORM_block); + w.write_uleb128(val.len() as u64)?; + w.write(val)?; + } + AttributeValue::Data1(val) => { + debug_assert_form!(constants::DW_FORM_data1); + w.write_u8(val)?; + } + AttributeValue::Data2(val) => { + debug_assert_form!(constants::DW_FORM_data2); + w.write_u16(val)?; + } + AttributeValue::Data4(val) => { + debug_assert_form!(constants::DW_FORM_data4); + w.write_u32(val)?; + } + AttributeValue::Data8(val) => { + debug_assert_form!(constants::DW_FORM_data8); + w.write_u64(val)?; + } + AttributeValue::Sdata(val) => { + debug_assert_form!(constants::DW_FORM_sdata); + w.write_sleb128(val)?; + } + AttributeValue::Udata(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(val)?; + } + AttributeValue::Exprloc(ref val) => { + debug_assert_form!(constants::DW_FORM_exprloc); + w.write_uleb128(val.size(unit.encoding(), Some(offsets)) as u64)?; + val.write( + &mut w.0, + Some(debug_info_refs), + unit.encoding(), + Some(offsets), + )?; + } + AttributeValue::Flag(val) => { + debug_assert_form!(constants::DW_FORM_flag); + w.write_u8(val as u8)?; + } + AttributeValue::FlagPresent => { + debug_assert_form!(constants::DW_FORM_flag_present); + } + AttributeValue::UnitRef(id) => { + match unit.format() { + Format::Dwarf32 => debug_assert_form!(constants::DW_FORM_ref4), + Format::Dwarf64 => debug_assert_form!(constants::DW_FORM_ref8), + } + unit_refs.push((w.offset(), id)); + w.write_udata(0, unit.format().word_size())?; + } + AttributeValue::DebugInfoRef(reference) => { + debug_assert_form!(constants::DW_FORM_ref_addr); + let size = if unit.version() == 2 { + unit.address_size() + } else { + unit.format().word_size() + }; + match reference { + Reference::Symbol(symbol) => w.write_reference(symbol, size)?, + Reference::Entry(unit, entry) => { + debug_info_refs.push(DebugInfoReference { + offset: w.len(), + unit, + entry, + size, + }); + w.write_udata(0, size)?; + } + } + } + AttributeValue::DebugInfoRefSup(val) => { + match unit.format() { + Format::Dwarf32 => debug_assert_form!(constants::DW_FORM_ref_sup4), + Format::Dwarf64 => debug_assert_form!(constants::DW_FORM_ref_sup8), + } + w.write_udata(val.0 as u64, unit.format().word_size())?; + } + AttributeValue::LineProgramRef => { + if unit.version() >= 4 { + debug_assert_form!(constants::DW_FORM_sec_offset); + } + match line_program { + Some(line_program) => { + w.write_offset( + line_program.0, + SectionId::DebugLine, + unit.format().word_size(), + )?; + } + None => return Err(Error::InvalidAttributeValue), + } + } + AttributeValue::LocationListRef(val) => { + if unit.version() >= 4 { + debug_assert_form!(constants::DW_FORM_sec_offset); + } + let section = if unit.version() <= 4 { + SectionId::DebugLoc + } else { + SectionId::DebugLocLists + }; + w.write_offset(loc_lists.get(val).0, section, unit.format().word_size())?; + } + AttributeValue::DebugMacinfoRef(val) => { + if unit.version() >= 4 { + debug_assert_form!(constants::DW_FORM_sec_offset); + } + w.write_offset(val.0, SectionId::DebugMacinfo, unit.format().word_size())?; + } + AttributeValue::DebugMacroRef(val) => { + if unit.version() >= 4 { + debug_assert_form!(constants::DW_FORM_sec_offset); + } + w.write_offset(val.0, SectionId::DebugMacro, unit.format().word_size())?; + } + AttributeValue::RangeListRef(val) => { + if unit.version() >= 4 { + debug_assert_form!(constants::DW_FORM_sec_offset); + } + let section = if unit.version() <= 4 { + SectionId::DebugRanges + } else { + SectionId::DebugRngLists + }; + w.write_offset(range_lists.get(val).0, section, unit.format().word_size())?; + } + AttributeValue::DebugTypesRef(val) => { + debug_assert_form!(constants::DW_FORM_ref_sig8); + w.write_u64(val.0)?; + } + AttributeValue::StringRef(val) => { + debug_assert_form!(constants::DW_FORM_strp); + w.write_offset( + strings.get(val).0, + SectionId::DebugStr, + unit.format().word_size(), + )?; + } + AttributeValue::DebugStrRefSup(val) => { + debug_assert_form!(constants::DW_FORM_strp_sup); + w.write_udata(val.0 as u64, unit.format().word_size())?; + } + AttributeValue::LineStringRef(val) => { + debug_assert_form!(constants::DW_FORM_line_strp); + w.write_offset( + line_strings.get(val).0, + SectionId::DebugLineStr, + unit.format().word_size(), + )?; + } + AttributeValue::String(ref val) => { + debug_assert_form!(constants::DW_FORM_string); + w.write(val)?; + w.write_u8(0)?; + } + AttributeValue::Encoding(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(u64::from(val.0))?; + } + AttributeValue::DecimalSign(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(u64::from(val.0))?; + } + AttributeValue::Endianity(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(u64::from(val.0))?; + } + AttributeValue::Accessibility(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(u64::from(val.0))?; + } + AttributeValue::Visibility(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(u64::from(val.0))?; + } + AttributeValue::Virtuality(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(u64::from(val.0))?; + } + AttributeValue::Language(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(u64::from(val.0))?; + } + AttributeValue::AddressClass(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(val.0)?; + } + AttributeValue::IdentifierCase(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(u64::from(val.0))?; + } + AttributeValue::CallingConvention(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(u64::from(val.0))?; + } + AttributeValue::Inline(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(u64::from(val.0))?; + } + AttributeValue::Ordering(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(u64::from(val.0))?; + } + AttributeValue::FileIndex(val) => { + debug_assert_form!(constants::DW_FORM_udata); + w.write_uleb128(val.map(FileId::raw).unwrap_or(0))?; + } + } + Ok(()) + } +} + +define_section!( + DebugInfo, + DebugInfoOffset, + "A writable `.debug_info` section." +); + +/// The section offsets of all elements within a `.debug_info` section. +#[derive(Debug, Default)] +pub struct DebugInfoOffsets { + base_id: BaseId, + units: Vec, +} + +impl DebugInfoOffsets { + #[cfg(test)] + #[cfg(feature = "read")] + pub(crate) fn unit_offsets(&self, unit: UnitId) -> &UnitOffsets { + debug_assert_eq!(self.base_id, unit.base_id); + &self.units[unit.index] + } + + /// Get the `.debug_info` section offset for the given unit. + #[inline] + pub fn unit(&self, unit: UnitId) -> DebugInfoOffset { + debug_assert_eq!(self.base_id, unit.base_id); + self.units[unit.index].unit + } + + /// Get the `.debug_info` section offset for the given entry. + #[inline] + pub fn entry(&self, unit: UnitId, entry: UnitEntryId) -> DebugInfoOffset { + debug_assert_eq!(self.base_id, unit.base_id); + self.units[unit.index].debug_info_offset(entry) + } +} + +/// The section offsets of all elements of a unit within a `.debug_info` section. +#[derive(Debug)] +pub(crate) struct UnitOffsets { + base_id: BaseId, + unit: DebugInfoOffset, + entries: Vec, +} + +impl UnitOffsets { + #[cfg(test)] + #[cfg(feature = "read")] + fn none() -> Self { + UnitOffsets { + base_id: BaseId::default(), + unit: DebugInfoOffset(0), + entries: Vec::new(), + } + } + + /// Get the .debug_info offset for the given entry. + #[inline] + pub(crate) fn debug_info_offset(&self, entry: UnitEntryId) -> DebugInfoOffset { + debug_assert_eq!(self.base_id, entry.base_id); + let offset = self.entries[entry.index].offset; + debug_assert_ne!(offset.0, 0); + offset + } + + /// Get the unit offset for the given entry. + #[inline] + pub(crate) fn unit_offset(&self, entry: UnitEntryId) -> u64 { + let offset = self.debug_info_offset(entry); + (offset.0 - self.unit.0) as u64 + } + + /// Get the abbreviation code for the given entry. + #[inline] + pub(crate) fn abbrev(&self, entry: UnitEntryId) -> u64 { + debug_assert_eq!(self.base_id, entry.base_id); + self.entries[entry.index].abbrev + } +} + +#[derive(Debug, Clone, Copy)] +pub(crate) struct EntryOffset { + offset: DebugInfoOffset, + abbrev: u64, +} + +impl EntryOffset { + fn none() -> Self { + EntryOffset { + offset: DebugInfoOffset(0), + abbrev: 0, + } + } +} + +/// A reference to a `.debug_info` entry that has yet to be resolved. +#[derive(Debug, Clone, Copy)] +pub(crate) struct DebugInfoReference { + /// The offset within the section of the reference. + pub offset: usize, + /// The size of the reference. + pub size: u8, + /// The unit containing the entry. + pub unit: UnitId, + /// The entry being referenced. + pub entry: UnitEntryId, +} + +#[cfg(feature = "read")] +pub(crate) mod convert { + use super::*; + use crate::common::{DwoId, UnitSectionOffset}; + use crate::read::{self, Reader}; + use crate::write::{self, ConvertError, ConvertResult, LocationList, RangeList}; + use std::collections::HashMap; + + pub(crate) struct ConvertUnit> { + from_unit: read::Unit, + base_id: BaseId, + encoding: Encoding, + entries: Vec, + entry_offsets: Vec, + root: UnitEntryId, + } + + pub(crate) struct ConvertUnitContext<'a, R: Reader> { + pub dwarf: &'a read::Dwarf, + pub unit: &'a read::Unit, + pub line_strings: &'a mut write::LineStringTable, + pub strings: &'a mut write::StringTable, + pub ranges: &'a mut write::RangeListTable, + pub locations: &'a mut write::LocationListTable, + pub convert_address: &'a dyn Fn(u64) -> Option
, + pub base_address: Address, + pub line_program_offset: Option, + pub line_program_files: Vec, + pub entry_ids: &'a HashMap, + } + + impl UnitTable { + /// Create a unit table by reading the data in the given sections. + /// + /// This also updates the given tables with the values that are referenced from + /// attributes in this section. + /// + /// `convert_address` is a function to convert read addresses into the `Address` + /// type. For non-relocatable addresses, this function may simply return + /// `Address::Constant(address)`. For relocatable addresses, it is the caller's + /// responsibility to determine the symbol and addend corresponding to the address + /// and return `Address::Symbol { symbol, addend }`. + pub fn from>( + dwarf: &read::Dwarf, + line_strings: &mut write::LineStringTable, + strings: &mut write::StringTable, + convert_address: &dyn Fn(u64) -> Option
, + ) -> ConvertResult { + let base_id = BaseId::default(); + let mut unit_entries = Vec::new(); + let mut entry_ids = HashMap::new(); + + let mut from_units = dwarf.units(); + while let Some(from_unit) = from_units.next()? { + let unit_id = UnitId::new(base_id, unit_entries.len()); + unit_entries.push(Unit::convert_entries( + from_unit, + unit_id, + &mut entry_ids, + dwarf, + )?); + } + + // Attributes must be converted in a separate pass so that we can handle + // references to other compilation units. + let mut units = Vec::new(); + for unit_entries in unit_entries.drain(..) { + units.push(Unit::convert_attributes( + unit_entries, + &entry_ids, + dwarf, + line_strings, + strings, + convert_address, + )?); + } + + Ok(UnitTable { base_id, units }) + } + } + + impl Unit { + /// Create a unit by reading the data in the input sections. + /// + /// Does not add entry attributes. + pub(crate) fn convert_entries>( + from_header: read::UnitHeader, + unit_id: UnitId, + entry_ids: &mut HashMap, + dwarf: &read::Dwarf, + ) -> ConvertResult> { + match from_header.type_() { + read::UnitType::Compilation => (), + _ => return Err(ConvertError::UnsupportedUnitType), + } + let base_id = BaseId::default(); + + let from_unit = dwarf.unit(from_header)?; + let encoding = from_unit.encoding(); + + let mut entries = Vec::new(); + let mut entry_offsets = Vec::new(); + + let mut from_tree = from_unit.entries_tree(None)?; + let from_root = from_tree.root()?; + let root = DebuggingInformationEntry::convert_entry( + from_root, + &from_unit, + base_id, + &mut entries, + &mut entry_offsets, + entry_ids, + None, + unit_id, + )?; + + Ok(ConvertUnit { + from_unit, + base_id, + encoding, + entries, + entry_offsets, + root, + }) + } + + /// Create entry attributes by reading the data in the input sections. + fn convert_attributes>( + unit: ConvertUnit, + entry_ids: &HashMap, + dwarf: &read::Dwarf, + line_strings: &mut write::LineStringTable, + strings: &mut write::StringTable, + convert_address: &dyn Fn(u64) -> Option
, + ) -> ConvertResult { + let from_unit = unit.from_unit; + let base_address = + convert_address(from_unit.low_pc).ok_or(ConvertError::InvalidAddress)?; + + let (line_program_offset, line_program, line_program_files) = + match from_unit.line_program { + Some(ref from_program) => { + let from_program = from_program.clone(); + let line_program_offset = from_program.header().offset(); + let (line_program, line_program_files) = LineProgram::from( + from_program, + dwarf, + line_strings, + strings, + convert_address, + )?; + (Some(line_program_offset), line_program, line_program_files) + } + None => (None, LineProgram::none(), Vec::new()), + }; + + let mut ranges = RangeListTable::default(); + let mut locations = LocationListTable::default(); + + let mut context = ConvertUnitContext { + entry_ids, + dwarf, + unit: &from_unit, + line_strings, + strings, + ranges: &mut ranges, + locations: &mut locations, + convert_address, + base_address, + line_program_offset, + line_program_files, + }; + + let mut entries = unit.entries; + for entry in &mut entries { + entry.convert_attributes(&mut context, &unit.entry_offsets)?; + } + + Ok(Unit { + base_id: unit.base_id, + encoding: unit.encoding, + line_program, + ranges, + locations, + entries, + root: unit.root, + }) + } + } + + impl DebuggingInformationEntry { + /// Create an entry by reading the data in the input sections. + /// + /// Does not add the entry attributes. + fn convert_entry>( + from: read::EntriesTreeNode, + from_unit: &read::Unit, + base_id: BaseId, + entries: &mut Vec, + entry_offsets: &mut Vec, + entry_ids: &mut HashMap, + parent: Option, + unit_id: UnitId, + ) -> ConvertResult { + let from_entry = from.entry(); + let id = DebuggingInformationEntry::new(base_id, entries, parent, from_entry.tag()); + let offset = from_entry.offset(); + entry_offsets.push(offset); + entry_ids.insert(offset.to_unit_section_offset(from_unit), (unit_id, id)); + + let mut from_children = from.children(); + while let Some(from_child) = from_children.next()? { + DebuggingInformationEntry::convert_entry( + from_child, + from_unit, + base_id, + entries, + entry_offsets, + entry_ids, + Some(id), + unit_id, + )?; + } + Ok(id) + } + + /// Create an entry's attributes by reading the data in the input sections. + fn convert_attributes>( + &mut self, + context: &mut ConvertUnitContext, + entry_offsets: &[read::UnitOffset], + ) -> ConvertResult<()> { + let offset = entry_offsets[self.id.index]; + let from = context.unit.entry(offset)?; + let mut from_attrs = from.attrs(); + while let Some(from_attr) = from_attrs.next()? { + if from_attr.name() == constants::DW_AT_sibling { + // This may point to a null entry, so we have to treat it differently. + self.set_sibling(true); + } else if let Some(attr) = Attribute::from(context, &from_attr)? { + self.set(attr.name, attr.value); + } + } + Ok(()) + } + } + + impl Attribute { + /// Create an attribute by reading the data in the given sections. + pub(crate) fn from>( + context: &mut ConvertUnitContext, + from: &read::Attribute, + ) -> ConvertResult> { + let value = AttributeValue::from(context, from.value())?; + Ok(value.map(|value| Attribute { + name: from.name(), + value, + })) + } + } + + impl AttributeValue { + /// Create an attribute value by reading the data in the given sections. + pub(crate) fn from>( + context: &mut ConvertUnitContext, + from: read::AttributeValue, + ) -> ConvertResult> { + let to = match from { + read::AttributeValue::Addr(val) => match (context.convert_address)(val) { + Some(val) => AttributeValue::Address(val), + None => return Err(ConvertError::InvalidAddress), + }, + read::AttributeValue::Block(r) => AttributeValue::Block(r.to_slice()?.into()), + read::AttributeValue::Data1(val) => AttributeValue::Data1(val), + read::AttributeValue::Data2(val) => AttributeValue::Data2(val), + read::AttributeValue::Data4(val) => AttributeValue::Data4(val), + read::AttributeValue::Data8(val) => AttributeValue::Data8(val), + read::AttributeValue::Sdata(val) => AttributeValue::Sdata(val), + read::AttributeValue::Udata(val) => AttributeValue::Udata(val), + read::AttributeValue::Exprloc(expression) => { + let expression = Expression::from( + expression, + context.unit.encoding(), + Some(context.dwarf), + Some(context.unit), + Some(context.entry_ids), + context.convert_address, + )?; + AttributeValue::Exprloc(expression) + } + // TODO: it would be nice to preserve the flag form. + read::AttributeValue::Flag(val) => AttributeValue::Flag(val), + read::AttributeValue::DebugAddrBase(_base) => { + // We convert all address indices to addresses, + // so this is unneeded. + return Ok(None); + } + read::AttributeValue::DebugAddrIndex(index) => { + let val = context.dwarf.address(context.unit, index)?; + match (context.convert_address)(val) { + Some(val) => AttributeValue::Address(val), + None => return Err(ConvertError::InvalidAddress), + } + } + read::AttributeValue::UnitRef(val) => { + if !context.unit.header.is_valid_offset(val) { + return Err(ConvertError::InvalidUnitRef); + } + let id = context + .entry_ids + .get(&val.to_unit_section_offset(context.unit)) + .ok_or(ConvertError::InvalidUnitRef)?; + AttributeValue::UnitRef(id.1) + } + read::AttributeValue::DebugInfoRef(val) => { + // TODO: support relocation of this value + let id = context + .entry_ids + .get(&UnitSectionOffset::DebugInfoOffset(val)) + .ok_or(ConvertError::InvalidDebugInfoRef)?; + AttributeValue::DebugInfoRef(Reference::Entry(id.0, id.1)) + } + read::AttributeValue::DebugInfoRefSup(val) => AttributeValue::DebugInfoRefSup(val), + read::AttributeValue::DebugLineRef(val) => { + // There should only be the line program in the CU DIE which we've already + // converted, so check if it matches that. + if Some(val) == context.line_program_offset { + AttributeValue::LineProgramRef + } else { + return Err(ConvertError::InvalidLineRef); + } + } + read::AttributeValue::DebugMacinfoRef(val) => AttributeValue::DebugMacinfoRef(val), + read::AttributeValue::DebugMacroRef(val) => AttributeValue::DebugMacroRef(val), + read::AttributeValue::LocationListsRef(val) => { + let iter = context + .dwarf + .locations + .raw_locations(val, context.unit.encoding())?; + let loc_list = LocationList::from(iter, context)?; + let loc_id = context.locations.add(loc_list); + AttributeValue::LocationListRef(loc_id) + } + read::AttributeValue::DebugLocListsBase(_base) => { + // We convert all location list indices to offsets, + // so this is unneeded. + return Ok(None); + } + read::AttributeValue::DebugLocListsIndex(index) => { + let offset = context.dwarf.locations_offset(context.unit, index)?; + let iter = context + .dwarf + .locations + .raw_locations(offset, context.unit.encoding())?; + let loc_list = LocationList::from(iter, context)?; + let loc_id = context.locations.add(loc_list); + AttributeValue::LocationListRef(loc_id) + } + read::AttributeValue::RangeListsRef(offset) => { + let offset = context.dwarf.ranges_offset_from_raw(context.unit, offset); + let iter = context.dwarf.raw_ranges(context.unit, offset)?; + let range_list = RangeList::from(iter, context)?; + let range_id = context.ranges.add(range_list); + AttributeValue::RangeListRef(range_id) + } + read::AttributeValue::DebugRngListsBase(_base) => { + // We convert all range list indices to offsets, + // so this is unneeded. + return Ok(None); + } + read::AttributeValue::DebugRngListsIndex(index) => { + let offset = context.dwarf.ranges_offset(context.unit, index)?; + let iter = context + .dwarf + .ranges + .raw_ranges(offset, context.unit.encoding())?; + let range_list = RangeList::from(iter, context)?; + let range_id = context.ranges.add(range_list); + AttributeValue::RangeListRef(range_id) + } + read::AttributeValue::DebugTypesRef(val) => AttributeValue::DebugTypesRef(val), + read::AttributeValue::DebugStrRef(offset) => { + let r = context.dwarf.string(offset)?; + let id = context.strings.add(r.to_slice()?); + AttributeValue::StringRef(id) + } + read::AttributeValue::DebugStrRefSup(val) => AttributeValue::DebugStrRefSup(val), + read::AttributeValue::DebugStrOffsetsBase(_base) => { + // We convert all string offsets to `.debug_str` references, + // so this is unneeded. + return Ok(None); + } + read::AttributeValue::DebugStrOffsetsIndex(index) => { + let offset = context.dwarf.string_offset(context.unit, index)?; + let r = context.dwarf.string(offset)?; + let id = context.strings.add(r.to_slice()?); + AttributeValue::StringRef(id) + } + read::AttributeValue::DebugLineStrRef(offset) => { + let r = context.dwarf.line_string(offset)?; + let id = context.line_strings.add(r.to_slice()?); + AttributeValue::LineStringRef(id) + } + read::AttributeValue::String(r) => AttributeValue::String(r.to_slice()?.into()), + read::AttributeValue::Encoding(val) => AttributeValue::Encoding(val), + read::AttributeValue::DecimalSign(val) => AttributeValue::DecimalSign(val), + read::AttributeValue::Endianity(val) => AttributeValue::Endianity(val), + read::AttributeValue::Accessibility(val) => AttributeValue::Accessibility(val), + read::AttributeValue::Visibility(val) => AttributeValue::Visibility(val), + read::AttributeValue::Virtuality(val) => AttributeValue::Virtuality(val), + read::AttributeValue::Language(val) => AttributeValue::Language(val), + read::AttributeValue::AddressClass(val) => AttributeValue::AddressClass(val), + read::AttributeValue::IdentifierCase(val) => AttributeValue::IdentifierCase(val), + read::AttributeValue::CallingConvention(val) => { + AttributeValue::CallingConvention(val) + } + read::AttributeValue::Inline(val) => AttributeValue::Inline(val), + read::AttributeValue::Ordering(val) => AttributeValue::Ordering(val), + read::AttributeValue::FileIndex(val) => { + if val == 0 { + // 0 means not specified, even for version 5. + AttributeValue::FileIndex(None) + } else { + match context.line_program_files.get(val as usize) { + Some(id) => AttributeValue::FileIndex(Some(*id)), + None => return Err(ConvertError::InvalidFileIndex), + } + } + } + // Should always be a more specific section reference. + read::AttributeValue::SecOffset(_) => { + return Err(ConvertError::InvalidAttributeValue); + } + read::AttributeValue::DwoId(DwoId(val)) => AttributeValue::Udata(val), + }; + Ok(Some(to)) + } + } +} + +#[cfg(test)] +#[cfg(feature = "read")] +mod tests { + use super::*; + use crate::common::{ + DebugAddrBase, DebugLocListsBase, DebugRngListsBase, DebugStrOffsetsBase, LineEncoding, + }; + use crate::constants; + use crate::read; + use crate::write::{ + DebugLine, DebugLineStr, DebugStr, DwarfUnit, EndianVec, LineString, LineStringTable, + Location, LocationList, LocationListTable, Range, RangeList, RangeListOffsets, + RangeListTable, StringTable, + }; + use crate::LittleEndian; + use std::collections::HashMap; + use std::mem; + use std::sync::Arc; + + #[test] + fn test_unit_table() { + let mut strings = StringTable::default(); + + let mut units = UnitTable::default(); + let unit_id1 = units.add(Unit::new( + Encoding { + version: 4, + address_size: 8, + format: Format::Dwarf32, + }, + LineProgram::none(), + )); + let unit2 = units.add(Unit::new( + Encoding { + version: 2, + address_size: 4, + format: Format::Dwarf64, + }, + LineProgram::none(), + )); + let unit3 = units.add(Unit::new( + Encoding { + version: 5, + address_size: 4, + format: Format::Dwarf32, + }, + LineProgram::none(), + )); + assert_eq!(units.count(), 3); + { + let unit1 = units.get_mut(unit_id1); + assert_eq!(unit1.version(), 4); + assert_eq!(unit1.address_size(), 8); + assert_eq!(unit1.format(), Format::Dwarf32); + assert_eq!(unit1.count(), 1); + + let root_id = unit1.root(); + assert_eq!(root_id, UnitEntryId::new(unit1.base_id, 0)); + { + let root = unit1.get_mut(root_id); + assert_eq!(root.id(), root_id); + assert!(root.parent().is_none()); + assert_eq!(root.tag(), constants::DW_TAG_compile_unit); + + // Test get/get_mut + assert!(root.get(constants::DW_AT_producer).is_none()); + assert!(root.get_mut(constants::DW_AT_producer).is_none()); + let mut producer = AttributeValue::String(b"root"[..].into()); + root.set(constants::DW_AT_producer, producer.clone()); + assert_eq!(root.get(constants::DW_AT_producer), Some(&producer)); + assert_eq!(root.get_mut(constants::DW_AT_producer), Some(&mut producer)); + + // Test attrs + let mut attrs = root.attrs(); + let attr = attrs.next().unwrap(); + assert_eq!(attr.name(), constants::DW_AT_producer); + assert_eq!(attr.get(), &producer); + assert!(attrs.next().is_none()); + } + + let child1 = unit1.add(root_id, constants::DW_TAG_subprogram); + assert_eq!(child1, UnitEntryId::new(unit1.base_id, 1)); + { + let child1 = unit1.get_mut(child1); + assert_eq!(child1.parent(), Some(root_id)); + + let tmp = AttributeValue::String(b"tmp"[..].into()); + child1.set(constants::DW_AT_name, tmp.clone()); + assert_eq!(child1.get(constants::DW_AT_name), Some(&tmp)); + + // Test attrs_mut + let name = AttributeValue::StringRef(strings.add(&b"child1"[..])); + { + let attr = child1.attrs_mut().next().unwrap(); + assert_eq!(attr.name(), constants::DW_AT_name); + attr.set(name.clone()); + } + assert_eq!(child1.get(constants::DW_AT_name), Some(&name)); + } + + let child2 = unit1.add(root_id, constants::DW_TAG_subprogram); + assert_eq!(child2, UnitEntryId::new(unit1.base_id, 2)); + { + let child2 = unit1.get_mut(child2); + assert_eq!(child2.parent(), Some(root_id)); + + let tmp = AttributeValue::String(b"tmp"[..].into()); + child2.set(constants::DW_AT_name, tmp.clone()); + assert_eq!(child2.get(constants::DW_AT_name), Some(&tmp)); + + // Test replace + let name = AttributeValue::StringRef(strings.add(&b"child2"[..])); + child2.set(constants::DW_AT_name, name.clone()); + assert_eq!(child2.get(constants::DW_AT_name), Some(&name)); + } + + { + let root = unit1.get(root_id); + assert_eq!( + root.children().cloned().collect::>(), + vec![child1, child2] + ); + } + } + { + let unit2 = units.get(unit2); + assert_eq!(unit2.version(), 2); + assert_eq!(unit2.address_size(), 4); + assert_eq!(unit2.format(), Format::Dwarf64); + assert_eq!(unit2.count(), 1); + + let root = unit2.root(); + assert_eq!(root, UnitEntryId::new(unit2.base_id, 0)); + let root = unit2.get(root); + assert_eq!(root.id(), UnitEntryId::new(unit2.base_id, 0)); + assert!(root.parent().is_none()); + assert_eq!(root.tag(), constants::DW_TAG_compile_unit); + } + + let mut sections = Sections::new(EndianVec::new(LittleEndian)); + let debug_line_str_offsets = DebugLineStrOffsets::none(); + let debug_str_offsets = strings.write(&mut sections.debug_str).unwrap(); + units + .write(&mut sections, &debug_line_str_offsets, &debug_str_offsets) + .unwrap(); + + println!("{:?}", sections.debug_str); + println!("{:?}", sections.debug_info); + println!("{:?}", sections.debug_abbrev); + + let dwarf = read::Dwarf { + debug_abbrev: read::DebugAbbrev::new(sections.debug_abbrev.slice(), LittleEndian), + debug_info: read::DebugInfo::new(sections.debug_info.slice(), LittleEndian), + debug_str: read::DebugStr::new(sections.debug_str.slice(), LittleEndian), + ..Default::default() + }; + let mut read_units = dwarf.units(); + + { + let read_unit1 = read_units.next().unwrap().unwrap(); + let unit1 = units.get(unit_id1); + assert_eq!(unit1.version(), read_unit1.version()); + assert_eq!(unit1.address_size(), read_unit1.address_size()); + assert_eq!(unit1.format(), read_unit1.format()); + + let read_unit1 = dwarf.unit(read_unit1).unwrap(); + let mut read_entries = read_unit1.entries(); + + let root = unit1.get(unit1.root()); + { + let (depth, read_root) = read_entries.next_dfs().unwrap().unwrap(); + assert_eq!(depth, 0); + assert_eq!(root.tag(), read_root.tag()); + assert!(read_root.has_children()); + + let producer = match root.get(constants::DW_AT_producer).unwrap() { + AttributeValue::String(ref producer) => &**producer, + otherwise => panic!("unexpected {:?}", otherwise), + }; + assert_eq!(producer, b"root"); + let read_producer = read_root + .attr_value(constants::DW_AT_producer) + .unwrap() + .unwrap(); + assert_eq!( + dwarf + .attr_string(&read_unit1, read_producer) + .unwrap() + .slice(), + producer + ); + } + + let mut children = root.children().cloned(); + + { + let child = children.next().unwrap(); + assert_eq!(child, UnitEntryId::new(unit1.base_id, 1)); + let child = unit1.get(child); + let (depth, read_child) = read_entries.next_dfs().unwrap().unwrap(); + assert_eq!(depth, 1); + assert_eq!(child.tag(), read_child.tag()); + assert!(!read_child.has_children()); + + let name = match child.get(constants::DW_AT_name).unwrap() { + AttributeValue::StringRef(name) => *name, + otherwise => panic!("unexpected {:?}", otherwise), + }; + let name = strings.get(name); + assert_eq!(name, b"child1"); + let read_name = read_child + .attr_value(constants::DW_AT_name) + .unwrap() + .unwrap(); + assert_eq!( + dwarf.attr_string(&read_unit1, read_name).unwrap().slice(), + name + ); + } + + { + let child = children.next().unwrap(); + assert_eq!(child, UnitEntryId::new(unit1.base_id, 2)); + let child = unit1.get(child); + let (depth, read_child) = read_entries.next_dfs().unwrap().unwrap(); + assert_eq!(depth, 0); + assert_eq!(child.tag(), read_child.tag()); + assert!(!read_child.has_children()); + + let name = match child.get(constants::DW_AT_name).unwrap() { + AttributeValue::StringRef(name) => *name, + otherwise => panic!("unexpected {:?}", otherwise), + }; + let name = strings.get(name); + assert_eq!(name, b"child2"); + let read_name = read_child + .attr_value(constants::DW_AT_name) + .unwrap() + .unwrap(); + assert_eq!( + dwarf.attr_string(&read_unit1, read_name).unwrap().slice(), + name + ); + } + + assert!(read_entries.next_dfs().unwrap().is_none()); + } + + { + let read_unit2 = read_units.next().unwrap().unwrap(); + let unit2 = units.get(unit2); + assert_eq!(unit2.version(), read_unit2.version()); + assert_eq!(unit2.address_size(), read_unit2.address_size()); + assert_eq!(unit2.format(), read_unit2.format()); + + let abbrevs = dwarf.abbreviations(&read_unit2).unwrap(); + let mut read_entries = read_unit2.entries(&abbrevs); + + { + let root = unit2.get(unit2.root()); + let (depth, read_root) = read_entries.next_dfs().unwrap().unwrap(); + assert_eq!(depth, 0); + assert_eq!(root.tag(), read_root.tag()); + assert!(!read_root.has_children()); + } + + assert!(read_entries.next_dfs().unwrap().is_none()); + } + + { + let read_unit3 = read_units.next().unwrap().unwrap(); + let unit3 = units.get(unit3); + assert_eq!(unit3.version(), read_unit3.version()); + assert_eq!(unit3.address_size(), read_unit3.address_size()); + assert_eq!(unit3.format(), read_unit3.format()); + + let abbrevs = dwarf.abbreviations(&read_unit3).unwrap(); + let mut read_entries = read_unit3.entries(&abbrevs); + + { + let root = unit3.get(unit3.root()); + let (depth, read_root) = read_entries.next_dfs().unwrap().unwrap(); + assert_eq!(depth, 0); + assert_eq!(root.tag(), read_root.tag()); + assert!(!read_root.has_children()); + } + + assert!(read_entries.next_dfs().unwrap().is_none()); + } + + assert!(read_units.next().unwrap().is_none()); + + let mut convert_line_strings = LineStringTable::default(); + let mut convert_strings = StringTable::default(); + let convert_units = UnitTable::from( + &dwarf, + &mut convert_line_strings, + &mut convert_strings, + &|address| Some(Address::Constant(address)), + ) + .unwrap(); + assert_eq!(convert_units.count(), units.count()); + + for i in 0..convert_units.count() { + let unit_id = units.id(i); + let unit = units.get(unit_id); + let convert_unit_id = convert_units.id(i); + let convert_unit = convert_units.get(convert_unit_id); + assert_eq!(convert_unit.version(), unit.version()); + assert_eq!(convert_unit.address_size(), unit.address_size()); + assert_eq!(convert_unit.format(), unit.format()); + assert_eq!(convert_unit.count(), unit.count()); + + let root = unit.get(unit.root()); + let convert_root = convert_unit.get(convert_unit.root()); + assert_eq!(convert_root.tag(), root.tag()); + for (convert_attr, attr) in convert_root.attrs().zip(root.attrs()) { + assert_eq!(convert_attr, attr); + } + } + } + + #[test] + fn test_attribute_value() { + // Create a string table and a string with a non-zero id/offset. + let mut strings = StringTable::default(); + strings.add("string one"); + let string_id = strings.add("string two"); + let mut debug_str = DebugStr::from(EndianVec::new(LittleEndian)); + let debug_str_offsets = strings.write(&mut debug_str).unwrap(); + let read_debug_str = read::DebugStr::new(debug_str.slice(), LittleEndian); + + let mut line_strings = LineStringTable::default(); + line_strings.add("line string one"); + let line_string_id = line_strings.add("line string two"); + let mut debug_line_str = DebugLineStr::from(EndianVec::new(LittleEndian)); + let debug_line_str_offsets = line_strings.write(&mut debug_line_str).unwrap(); + let read_debug_line_str = + read::DebugLineStr::from(read::EndianSlice::new(debug_line_str.slice(), LittleEndian)); + + let data = vec![1, 2, 3, 4]; + let read_data = read::EndianSlice::new(&[1, 2, 3, 4], LittleEndian); + + let mut expression = Expression::new(); + expression.op_constu(57); + let read_expression = read::Expression(read::EndianSlice::new( + &[constants::DW_OP_constu.0, 57], + LittleEndian, + )); + + let mut ranges = RangeListTable::default(); + let range_id = ranges.add(RangeList(vec![Range::StartEnd { + begin: Address::Constant(0x1234), + end: Address::Constant(0x2345), + }])); + + let mut locations = LocationListTable::default(); + let loc_id = locations.add(LocationList(vec![Location::StartEnd { + begin: Address::Constant(0x1234), + end: Address::Constant(0x2345), + data: expression.clone(), + }])); + + for &version in &[2, 3, 4, 5] { + for &address_size in &[4, 8] { + for &format in &[Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version, + address_size, + }; + + let mut sections = Sections::new(EndianVec::new(LittleEndian)); + let range_list_offsets = ranges.write(&mut sections, encoding).unwrap(); + let loc_list_offsets = locations.write(&mut sections, encoding, None).unwrap(); + + let read_debug_ranges = + read::DebugRanges::new(sections.debug_ranges.slice(), LittleEndian); + let read_debug_rnglists = + read::DebugRngLists::new(sections.debug_rnglists.slice(), LittleEndian); + + let read_debug_loc = + read::DebugLoc::new(sections.debug_loc.slice(), LittleEndian); + let read_debug_loclists = + read::DebugLocLists::new(sections.debug_loclists.slice(), LittleEndian); + + let mut units = UnitTable::default(); + let unit = units.add(Unit::new(encoding, LineProgram::none())); + let unit = units.get(unit); + let encoding = Encoding { + format, + version, + address_size, + }; + let from_unit = read::UnitHeader::new( + encoding, + 0, + read::UnitType::Compilation, + DebugAbbrevOffset(0), + DebugInfoOffset(0).into(), + read::EndianSlice::new(&[], LittleEndian), + ); + + for &(ref name, ref value, ref expect_value) in &[ + ( + constants::DW_AT_name, + AttributeValue::Address(Address::Constant(0x1234)), + read::AttributeValue::Addr(0x1234), + ), + ( + constants::DW_AT_name, + AttributeValue::Block(data.clone()), + read::AttributeValue::Block(read_data), + ), + ( + constants::DW_AT_name, + AttributeValue::Data1(0x12), + read::AttributeValue::Data1(0x12), + ), + ( + constants::DW_AT_name, + AttributeValue::Data2(0x1234), + read::AttributeValue::Data2(0x1234), + ), + ( + constants::DW_AT_name, + AttributeValue::Data4(0x1234), + read::AttributeValue::Data4(0x1234), + ), + ( + constants::DW_AT_name, + AttributeValue::Data8(0x1234), + read::AttributeValue::Data8(0x1234), + ), + ( + constants::DW_AT_name, + AttributeValue::Sdata(0x1234), + read::AttributeValue::Sdata(0x1234), + ), + ( + constants::DW_AT_name, + AttributeValue::Udata(0x1234), + read::AttributeValue::Udata(0x1234), + ), + ( + constants::DW_AT_name, + AttributeValue::Exprloc(expression.clone()), + read::AttributeValue::Exprloc(read_expression), + ), + ( + constants::DW_AT_name, + AttributeValue::Flag(false), + read::AttributeValue::Flag(false), + ), + /* + ( + constants::DW_AT_name, + AttributeValue::FlagPresent, + read::AttributeValue::Flag(true), + ), + */ + ( + constants::DW_AT_name, + AttributeValue::DebugInfoRefSup(DebugInfoOffset(0x1234)), + read::AttributeValue::DebugInfoRefSup(DebugInfoOffset(0x1234)), + ), + ( + constants::DW_AT_location, + AttributeValue::LocationListRef(loc_id), + read::AttributeValue::SecOffset(loc_list_offsets.get(loc_id).0), + ), + ( + constants::DW_AT_macro_info, + AttributeValue::DebugMacinfoRef(DebugMacinfoOffset(0x1234)), + read::AttributeValue::SecOffset(0x1234), + ), + ( + constants::DW_AT_macros, + AttributeValue::DebugMacroRef(DebugMacroOffset(0x1234)), + read::AttributeValue::SecOffset(0x1234), + ), + ( + constants::DW_AT_ranges, + AttributeValue::RangeListRef(range_id), + read::AttributeValue::SecOffset(range_list_offsets.get(range_id).0), + ), + ( + constants::DW_AT_name, + AttributeValue::DebugTypesRef(DebugTypeSignature(0x1234)), + read::AttributeValue::DebugTypesRef(DebugTypeSignature(0x1234)), + ), + ( + constants::DW_AT_name, + AttributeValue::StringRef(string_id), + read::AttributeValue::DebugStrRef(debug_str_offsets.get(string_id)), + ), + ( + constants::DW_AT_name, + AttributeValue::DebugStrRefSup(DebugStrOffset(0x1234)), + read::AttributeValue::DebugStrRefSup(DebugStrOffset(0x1234)), + ), + ( + constants::DW_AT_name, + AttributeValue::LineStringRef(line_string_id), + read::AttributeValue::DebugLineStrRef( + debug_line_str_offsets.get(line_string_id), + ), + ), + ( + constants::DW_AT_name, + AttributeValue::String(data.clone()), + read::AttributeValue::String(read_data), + ), + ( + constants::DW_AT_encoding, + AttributeValue::Encoding(constants::DwAte(0x12)), + read::AttributeValue::Udata(0x12), + ), + ( + constants::DW_AT_decimal_sign, + AttributeValue::DecimalSign(constants::DwDs(0x12)), + read::AttributeValue::Udata(0x12), + ), + ( + constants::DW_AT_endianity, + AttributeValue::Endianity(constants::DwEnd(0x12)), + read::AttributeValue::Udata(0x12), + ), + ( + constants::DW_AT_accessibility, + AttributeValue::Accessibility(constants::DwAccess(0x12)), + read::AttributeValue::Udata(0x12), + ), + ( + constants::DW_AT_visibility, + AttributeValue::Visibility(constants::DwVis(0x12)), + read::AttributeValue::Udata(0x12), + ), + ( + constants::DW_AT_virtuality, + AttributeValue::Virtuality(constants::DwVirtuality(0x12)), + read::AttributeValue::Udata(0x12), + ), + ( + constants::DW_AT_language, + AttributeValue::Language(constants::DwLang(0x12)), + read::AttributeValue::Udata(0x12), + ), + ( + constants::DW_AT_address_class, + AttributeValue::AddressClass(constants::DwAddr(0x12)), + read::AttributeValue::Udata(0x12), + ), + ( + constants::DW_AT_identifier_case, + AttributeValue::IdentifierCase(constants::DwId(0x12)), + read::AttributeValue::Udata(0x12), + ), + ( + constants::DW_AT_calling_convention, + AttributeValue::CallingConvention(constants::DwCc(0x12)), + read::AttributeValue::Udata(0x12), + ), + ( + constants::DW_AT_ordering, + AttributeValue::Ordering(constants::DwOrd(0x12)), + read::AttributeValue::Udata(0x12), + ), + ( + constants::DW_AT_inline, + AttributeValue::Inline(constants::DwInl(0x12)), + read::AttributeValue::Udata(0x12), + ), + ][..] + { + let form = value.form(encoding).unwrap(); + let attr = Attribute { + name: *name, + value: value.clone(), + }; + + let offsets = UnitOffsets::none(); + let line_program_offset = None; + let mut debug_info_refs = Vec::new(); + let mut unit_refs = Vec::new(); + let mut debug_info = DebugInfo::from(EndianVec::new(LittleEndian)); + attr.value + .write( + &mut debug_info, + &mut debug_info_refs, + &mut unit_refs, + &unit, + &offsets, + line_program_offset, + &debug_line_str_offsets, + &debug_str_offsets, + &range_list_offsets, + &loc_list_offsets, + ) + .unwrap(); + + let spec = read::AttributeSpecification::new(*name, form, None); + let mut r = read::EndianSlice::new(debug_info.slice(), LittleEndian); + let read_attr = read::parse_attribute(&mut r, encoding, spec).unwrap(); + let read_value = &read_attr.raw_value(); + // read::AttributeValue is invariant in the lifetime of R. + // The lifetimes here are all okay, so transmute it. + let read_value = unsafe { + mem::transmute::< + &read::AttributeValue>, + &read::AttributeValue>, + >(read_value) + }; + assert_eq!(read_value, expect_value); + + let dwarf = read::Dwarf { + debug_str: read_debug_str.clone(), + debug_line_str: read_debug_line_str.clone(), + ranges: read::RangeLists::new(read_debug_ranges, read_debug_rnglists), + locations: read::LocationLists::new( + read_debug_loc, + read_debug_loclists, + ), + ..Default::default() + }; + + let unit = read::Unit { + header: from_unit, + abbreviations: Arc::new(read::Abbreviations::default()), + name: None, + comp_dir: None, + low_pc: 0, + str_offsets_base: DebugStrOffsetsBase(0), + addr_base: DebugAddrBase(0), + loclists_base: DebugLocListsBase(0), + rnglists_base: DebugRngListsBase(0), + line_program: None, + dwo_id: None, + }; + + let mut context = convert::ConvertUnitContext { + dwarf: &dwarf, + unit: &unit, + line_strings: &mut line_strings, + strings: &mut strings, + ranges: &mut ranges, + locations: &mut locations, + convert_address: &|address| Some(Address::Constant(address)), + base_address: Address::Constant(0), + line_program_offset: None, + line_program_files: Vec::new(), + entry_ids: &HashMap::new(), + }; + + let convert_attr = + Attribute::from(&mut context, &read_attr).unwrap().unwrap(); + assert_eq!(convert_attr, attr); + } + } + } + } + } + + #[test] + fn test_unit_ref() { + let mut units = UnitTable::default(); + let unit_id1 = units.add(Unit::new( + Encoding { + version: 4, + address_size: 8, + format: Format::Dwarf32, + }, + LineProgram::none(), + )); + assert_eq!(unit_id1, units.id(0)); + let unit_id2 = units.add(Unit::new( + Encoding { + version: 2, + address_size: 4, + format: Format::Dwarf64, + }, + LineProgram::none(), + )); + assert_eq!(unit_id2, units.id(1)); + let unit1_child1 = UnitEntryId::new(units.get(unit_id1).base_id, 1); + let unit1_child2 = UnitEntryId::new(units.get(unit_id1).base_id, 2); + let unit2_child1 = UnitEntryId::new(units.get(unit_id2).base_id, 1); + let unit2_child2 = UnitEntryId::new(units.get(unit_id2).base_id, 2); + { + let unit1 = units.get_mut(unit_id1); + let root = unit1.root(); + let child_id1 = unit1.add(root, constants::DW_TAG_subprogram); + assert_eq!(child_id1, unit1_child1); + let child_id2 = unit1.add(root, constants::DW_TAG_subprogram); + assert_eq!(child_id2, unit1_child2); + { + let child1 = unit1.get_mut(child_id1); + child1.set(constants::DW_AT_type, AttributeValue::UnitRef(child_id2)); + } + { + let child2 = unit1.get_mut(child_id2); + child2.set( + constants::DW_AT_type, + AttributeValue::DebugInfoRef(Reference::Entry(unit_id2, unit2_child1)), + ); + } + } + { + let unit2 = units.get_mut(unit_id2); + let root = unit2.root(); + let child_id1 = unit2.add(root, constants::DW_TAG_subprogram); + assert_eq!(child_id1, unit2_child1); + let child_id2 = unit2.add(root, constants::DW_TAG_subprogram); + assert_eq!(child_id2, unit2_child2); + { + let child1 = unit2.get_mut(child_id1); + child1.set(constants::DW_AT_type, AttributeValue::UnitRef(child_id2)); + } + { + let child2 = unit2.get_mut(child_id2); + child2.set( + constants::DW_AT_type, + AttributeValue::DebugInfoRef(Reference::Entry(unit_id1, unit1_child1)), + ); + } + } + + let debug_line_str_offsets = DebugLineStrOffsets::none(); + let debug_str_offsets = DebugStrOffsets::none(); + let mut sections = Sections::new(EndianVec::new(LittleEndian)); + let debug_info_offsets = units + .write(&mut sections, &debug_line_str_offsets, &debug_str_offsets) + .unwrap(); + + println!("{:?}", sections.debug_info); + println!("{:?}", sections.debug_abbrev); + + let dwarf = read::Dwarf { + debug_abbrev: read::DebugAbbrev::new(sections.debug_abbrev.slice(), LittleEndian), + debug_info: read::DebugInfo::new(sections.debug_info.slice(), LittleEndian), + ..Default::default() + }; + + let mut read_units = dwarf.units(); + { + let read_unit1 = read_units.next().unwrap().unwrap(); + assert_eq!( + read_unit1.offset(), + debug_info_offsets.unit(unit_id1).into() + ); + + let abbrevs = dwarf.abbreviations(&read_unit1).unwrap(); + let mut read_entries = read_unit1.entries(&abbrevs); + { + let (_, _read_root) = read_entries.next_dfs().unwrap().unwrap(); + } + { + let (_, read_child1) = read_entries.next_dfs().unwrap().unwrap(); + let offset = debug_info_offsets + .entry(unit_id1, unit1_child2) + .to_unit_offset(&read_unit1) + .unwrap(); + assert_eq!( + read_child1.attr_value(constants::DW_AT_type).unwrap(), + Some(read::AttributeValue::UnitRef(offset)) + ); + } + { + let (_, read_child2) = read_entries.next_dfs().unwrap().unwrap(); + let offset = debug_info_offsets.entry(unit_id2, unit2_child1); + assert_eq!( + read_child2.attr_value(constants::DW_AT_type).unwrap(), + Some(read::AttributeValue::DebugInfoRef(offset)) + ); + } + } + { + let read_unit2 = read_units.next().unwrap().unwrap(); + assert_eq!( + read_unit2.offset(), + debug_info_offsets.unit(unit_id2).into() + ); + + let abbrevs = dwarf.abbreviations(&read_unit2).unwrap(); + let mut read_entries = read_unit2.entries(&abbrevs); + { + let (_, _read_root) = read_entries.next_dfs().unwrap().unwrap(); + } + { + let (_, read_child1) = read_entries.next_dfs().unwrap().unwrap(); + let offset = debug_info_offsets + .entry(unit_id2, unit2_child2) + .to_unit_offset(&read_unit2) + .unwrap(); + assert_eq!( + read_child1.attr_value(constants::DW_AT_type).unwrap(), + Some(read::AttributeValue::UnitRef(offset)) + ); + } + { + let (_, read_child2) = read_entries.next_dfs().unwrap().unwrap(); + let offset = debug_info_offsets.entry(unit_id1, unit1_child1); + assert_eq!( + read_child2.attr_value(constants::DW_AT_type).unwrap(), + Some(read::AttributeValue::DebugInfoRef(offset)) + ); + } + } + + let mut convert_line_strings = LineStringTable::default(); + let mut convert_strings = StringTable::default(); + let convert_units = UnitTable::from( + &dwarf, + &mut convert_line_strings, + &mut convert_strings, + &|address| Some(Address::Constant(address)), + ) + .unwrap(); + assert_eq!(convert_units.count(), units.count()); + + for i in 0..convert_units.count() { + let unit = units.get(units.id(i)); + let convert_unit = convert_units.get(convert_units.id(i)); + assert_eq!(convert_unit.version(), unit.version()); + assert_eq!(convert_unit.address_size(), unit.address_size()); + assert_eq!(convert_unit.format(), unit.format()); + assert_eq!(convert_unit.count(), unit.count()); + + let root = unit.get(unit.root()); + let convert_root = convert_unit.get(convert_unit.root()); + assert_eq!(convert_root.tag(), root.tag()); + for (convert_attr, attr) in convert_root.attrs().zip(root.attrs()) { + assert_eq!(convert_attr, attr); + } + + let child1 = unit.get(UnitEntryId::new(unit.base_id, 1)); + let convert_child1 = convert_unit.get(UnitEntryId::new(convert_unit.base_id, 1)); + assert_eq!(convert_child1.tag(), child1.tag()); + for (convert_attr, attr) in convert_child1.attrs().zip(child1.attrs()) { + assert_eq!(convert_attr.name, attr.name); + match (convert_attr.value.clone(), attr.value.clone()) { + ( + AttributeValue::DebugInfoRef(Reference::Entry(convert_unit, convert_entry)), + AttributeValue::DebugInfoRef(Reference::Entry(unit, entry)), + ) => { + assert_eq!(convert_unit.index, unit.index); + assert_eq!(convert_entry.index, entry.index); + } + (AttributeValue::UnitRef(convert_id), AttributeValue::UnitRef(id)) => { + assert_eq!(convert_id.index, id.index); + } + (convert_value, value) => assert_eq!(convert_value, value), + } + } + + let child2 = unit.get(UnitEntryId::new(unit.base_id, 2)); + let convert_child2 = convert_unit.get(UnitEntryId::new(convert_unit.base_id, 2)); + assert_eq!(convert_child2.tag(), child2.tag()); + for (convert_attr, attr) in convert_child2.attrs().zip(child2.attrs()) { + assert_eq!(convert_attr.name, attr.name); + match (convert_attr.value.clone(), attr.value.clone()) { + ( + AttributeValue::DebugInfoRef(Reference::Entry(convert_unit, convert_entry)), + AttributeValue::DebugInfoRef(Reference::Entry(unit, entry)), + ) => { + assert_eq!(convert_unit.index, unit.index); + assert_eq!(convert_entry.index, entry.index); + } + (AttributeValue::UnitRef(convert_id), AttributeValue::UnitRef(id)) => { + assert_eq!(convert_id.index, id.index); + } + (convert_value, value) => assert_eq!(convert_value, value), + } + } + } + } + + #[test] + fn test_sibling() { + fn add_child( + unit: &mut Unit, + parent: UnitEntryId, + tag: constants::DwTag, + name: &str, + ) -> UnitEntryId { + let id = unit.add(parent, tag); + let child = unit.get_mut(id); + child.set(constants::DW_AT_name, AttributeValue::String(name.into())); + child.set_sibling(true); + id + } + + fn add_children(units: &mut UnitTable, unit_id: UnitId) { + let unit = units.get_mut(unit_id); + let root = unit.root(); + let child1 = add_child(unit, root, constants::DW_TAG_subprogram, "child1"); + add_child(unit, child1, constants::DW_TAG_variable, "grandchild1"); + add_child(unit, root, constants::DW_TAG_subprogram, "child2"); + add_child(unit, root, constants::DW_TAG_subprogram, "child3"); + } + + fn next_child>( + entries: &mut read::EntriesCursor, + ) -> (read::UnitOffset, Option) { + let (_, entry) = entries.next_dfs().unwrap().unwrap(); + let offset = entry.offset(); + let sibling = + entry + .attr_value(constants::DW_AT_sibling) + .unwrap() + .map(|attr| match attr { + read::AttributeValue::UnitRef(offset) => offset, + _ => panic!("bad sibling value"), + }); + (offset, sibling) + } + + fn check_sibling>( + unit: &read::UnitHeader, + debug_abbrev: &read::DebugAbbrev, + ) { + let abbrevs = unit.abbreviations(debug_abbrev).unwrap(); + let mut entries = unit.entries(&abbrevs); + // root + entries.next_dfs().unwrap().unwrap(); + // child1 + let (_, sibling1) = next_child(&mut entries); + // grandchild1 + entries.next_dfs().unwrap().unwrap(); + // child2 + let (offset2, sibling2) = next_child(&mut entries); + // child3 + let (_, _) = next_child(&mut entries); + assert_eq!(sibling1, Some(offset2)); + assert_eq!(sibling2, None); + } + + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 8, + }; + let mut units = UnitTable::default(); + let unit_id1 = units.add(Unit::new(encoding, LineProgram::none())); + add_children(&mut units, unit_id1); + let unit_id2 = units.add(Unit::new(encoding, LineProgram::none())); + add_children(&mut units, unit_id2); + + let debug_line_str_offsets = DebugLineStrOffsets::none(); + let debug_str_offsets = DebugStrOffsets::none(); + let mut sections = Sections::new(EndianVec::new(LittleEndian)); + units + .write(&mut sections, &debug_line_str_offsets, &debug_str_offsets) + .unwrap(); + + println!("{:?}", sections.debug_info); + println!("{:?}", sections.debug_abbrev); + + let read_debug_info = read::DebugInfo::new(sections.debug_info.slice(), LittleEndian); + let read_debug_abbrev = read::DebugAbbrev::new(sections.debug_abbrev.slice(), LittleEndian); + let mut read_units = read_debug_info.units(); + check_sibling(&read_units.next().unwrap().unwrap(), &read_debug_abbrev); + check_sibling(&read_units.next().unwrap().unwrap(), &read_debug_abbrev); + } + + #[test] + fn test_line_ref() { + for &version in &[2, 3, 4, 5] { + for &address_size in &[4, 8] { + for &format in &[Format::Dwarf32, Format::Dwarf64] { + let encoding = Encoding { + format, + version, + address_size, + }; + + // The line program we'll be referencing. + let mut line_program = LineProgram::new( + encoding, + LineEncoding::default(), + LineString::String(b"comp_dir".to_vec()), + LineString::String(b"comp_name".to_vec()), + None, + ); + let dir = line_program.default_directory(); + let file1 = + line_program.add_file(LineString::String(b"file1".to_vec()), dir, None); + let file2 = + line_program.add_file(LineString::String(b"file2".to_vec()), dir, None); + + // Write, read, and convert the line program, so that we have the info + // required to convert the attributes. + let line_strings = DebugLineStrOffsets::none(); + let strings = DebugStrOffsets::none(); + let mut debug_line = DebugLine::from(EndianVec::new(LittleEndian)); + let line_program_offset = line_program + .write(&mut debug_line, encoding, &line_strings, &strings) + .unwrap(); + let read_debug_line = read::DebugLine::new(debug_line.slice(), LittleEndian); + let read_line_program = read_debug_line + .program( + line_program_offset, + address_size, + Some(read::EndianSlice::new(b"comp_dir", LittleEndian)), + Some(read::EndianSlice::new(b"comp_name", LittleEndian)), + ) + .unwrap(); + let dwarf = read::Dwarf::default(); + let mut convert_line_strings = LineStringTable::default(); + let mut convert_strings = StringTable::default(); + let (_, line_program_files) = LineProgram::from( + read_line_program, + &dwarf, + &mut convert_line_strings, + &mut convert_strings, + &|address| Some(Address::Constant(address)), + ) + .unwrap(); + + // Fake the unit. + let mut units = UnitTable::default(); + let unit = units.add(Unit::new(encoding, LineProgram::none())); + let unit = units.get(unit); + let from_unit = read::UnitHeader::new( + encoding, + 0, + read::UnitType::Compilation, + DebugAbbrevOffset(0), + DebugInfoOffset(0).into(), + read::EndianSlice::new(&[], LittleEndian), + ); + + for &(ref name, ref value, ref expect_value) in &[ + ( + constants::DW_AT_stmt_list, + AttributeValue::LineProgramRef, + read::AttributeValue::SecOffset(line_program_offset.0), + ), + ( + constants::DW_AT_decl_file, + AttributeValue::FileIndex(Some(file1)), + read::AttributeValue::Udata(file1.raw()), + ), + ( + constants::DW_AT_decl_file, + AttributeValue::FileIndex(Some(file2)), + read::AttributeValue::Udata(file2.raw()), + ), + ][..] + { + let mut ranges = RangeListTable::default(); + let mut locations = LocationListTable::default(); + let mut strings = StringTable::default(); + let mut line_strings = LineStringTable::default(); + + let form = value.form(encoding).unwrap(); + let attr = Attribute { + name: *name, + value: value.clone(), + }; + + let mut debug_info_refs = Vec::new(); + let mut unit_refs = Vec::new(); + let mut debug_info = DebugInfo::from(EndianVec::new(LittleEndian)); + let offsets = UnitOffsets::none(); + let debug_line_str_offsets = DebugLineStrOffsets::none(); + let debug_str_offsets = DebugStrOffsets::none(); + let range_list_offsets = RangeListOffsets::none(); + let loc_list_offsets = LocationListOffsets::none(); + attr.value + .write( + &mut debug_info, + &mut debug_info_refs, + &mut unit_refs, + &unit, + &offsets, + Some(line_program_offset), + &debug_line_str_offsets, + &debug_str_offsets, + &range_list_offsets, + &loc_list_offsets, + ) + .unwrap(); + + let spec = read::AttributeSpecification::new(*name, form, None); + let mut r = read::EndianSlice::new(debug_info.slice(), LittleEndian); + let read_attr = read::parse_attribute(&mut r, encoding, spec).unwrap(); + let read_value = &read_attr.raw_value(); + // read::AttributeValue is invariant in the lifetime of R. + // The lifetimes here are all okay, so transmute it. + let read_value = unsafe { + mem::transmute::< + &read::AttributeValue>, + &read::AttributeValue>, + >(read_value) + }; + assert_eq!(read_value, expect_value); + + let unit = read::Unit { + header: from_unit, + abbreviations: Arc::new(read::Abbreviations::default()), + name: None, + comp_dir: None, + low_pc: 0, + str_offsets_base: DebugStrOffsetsBase(0), + addr_base: DebugAddrBase(0), + loclists_base: DebugLocListsBase(0), + rnglists_base: DebugRngListsBase(0), + line_program: None, + dwo_id: None, + }; + + let mut context = convert::ConvertUnitContext { + dwarf: &dwarf, + unit: &unit, + line_strings: &mut line_strings, + strings: &mut strings, + ranges: &mut ranges, + locations: &mut locations, + convert_address: &|address| Some(Address::Constant(address)), + base_address: Address::Constant(0), + line_program_offset: Some(line_program_offset), + line_program_files: line_program_files.clone(), + entry_ids: &HashMap::new(), + }; + + let convert_attr = + Attribute::from(&mut context, &read_attr).unwrap().unwrap(); + assert_eq!(convert_attr, attr); + } + } + } + } + } + + #[test] + fn test_line_program_used() { + for used in vec![false, true] { + let encoding = Encoding { + format: Format::Dwarf32, + version: 5, + address_size: 8, + }; + + let line_program = LineProgram::new( + encoding, + LineEncoding::default(), + LineString::String(b"comp_dir".to_vec()), + LineString::String(b"comp_name".to_vec()), + None, + ); + + let mut unit = Unit::new(encoding, line_program); + let file_id = if used { Some(FileId::new(0)) } else { None }; + let root = unit.root(); + unit.get_mut(root).set( + constants::DW_AT_decl_file, + AttributeValue::FileIndex(file_id), + ); + + let mut units = UnitTable::default(); + units.add(unit); + + let debug_line_str_offsets = DebugLineStrOffsets::none(); + let debug_str_offsets = DebugStrOffsets::none(); + let mut sections = Sections::new(EndianVec::new(LittleEndian)); + units + .write(&mut sections, &debug_line_str_offsets, &debug_str_offsets) + .unwrap(); + assert_eq!(!used, sections.debug_line.slice().is_empty()); + } + } + + #[test] + fn test_delete_child() { + fn set_name(unit: &mut Unit, id: UnitEntryId, name: &str) { + let entry = unit.get_mut(id); + entry.set(constants::DW_AT_name, AttributeValue::String(name.into())); + } + fn check_name( + entry: &read::DebuggingInformationEntry, + debug_str: &read::DebugStr, + name: &str, + ) { + let name_attr = entry.attr(constants::DW_AT_name).unwrap().unwrap(); + let entry_name = name_attr.string_value(debug_str).unwrap(); + let entry_name_str = entry_name.to_string().unwrap(); + assert_eq!(entry_name_str, name); + } + let encoding = Encoding { + format: Format::Dwarf32, + version: 4, + address_size: 8, + }; + let mut dwarf = DwarfUnit::new(encoding); + let root = dwarf.unit.root(); + + // Add and delete entries in the root unit + let child1 = dwarf.unit.add(root, constants::DW_TAG_subprogram); + set_name(&mut dwarf.unit, child1, "child1"); + let grandchild1 = dwarf.unit.add(child1, constants::DW_TAG_variable); + set_name(&mut dwarf.unit, grandchild1, "grandchild1"); + let child2 = dwarf.unit.add(root, constants::DW_TAG_subprogram); + set_name(&mut dwarf.unit, child2, "child2"); + // This deletes both `child1` and its child `grandchild1` + dwarf.unit.get_mut(root).delete_child(child1); + let child3 = dwarf.unit.add(root, constants::DW_TAG_subprogram); + set_name(&mut dwarf.unit, child3, "child3"); + let child4 = dwarf.unit.add(root, constants::DW_TAG_subprogram); + set_name(&mut dwarf.unit, child4, "child4"); + let grandchild4 = dwarf.unit.add(child4, constants::DW_TAG_variable); + set_name(&mut dwarf.unit, grandchild4, "grandchild4"); + dwarf.unit.get_mut(child4).delete_child(grandchild4); + + let mut sections = Sections::new(EndianVec::new(LittleEndian)); + + // Write DWARF data which should only include `child2`, `child3` and `child4` + dwarf.write(&mut sections).unwrap(); + + let read_debug_info = read::DebugInfo::new(sections.debug_info.slice(), LittleEndian); + let read_debug_abbrev = read::DebugAbbrev::new(sections.debug_abbrev.slice(), LittleEndian); + let read_debug_str = read::DebugStr::new(sections.debug_str.slice(), LittleEndian); + let read_unit = read_debug_info.units().next().unwrap().unwrap(); + let abbrevs = read_unit.abbreviations(&read_debug_abbrev).unwrap(); + let mut entries = read_unit.entries(&abbrevs); + // root + entries.next_dfs().unwrap().unwrap(); + // child2 + let (_, read_child2) = entries.next_dfs().unwrap().unwrap(); + check_name(read_child2, &read_debug_str, "child2"); + // child3 + let (_, read_child3) = entries.next_dfs().unwrap().unwrap(); + check_name(read_child3, &read_debug_str, "child3"); + // child4 + let (_, read_child4) = entries.next_dfs().unwrap().unwrap(); + check_name(read_child4, &read_debug_str, "child4"); + // There should be no more entries + assert!(entries.next_dfs().unwrap().is_none()); + } +} diff --git a/src/rust/vendor/gimli/src/write/writer.rs b/src/rust/vendor/gimli/src/write/writer.rs new file mode 100644 index 000000000..1ce3641fc --- /dev/null +++ b/src/rust/vendor/gimli/src/write/writer.rs @@ -0,0 +1,494 @@ +use crate::common::{Format, SectionId}; +use crate::constants; +use crate::endianity::Endianity; +use crate::leb128; +use crate::write::{Address, Error, Result}; + +/// A trait for writing the data to a DWARF section. +/// +/// All write operations append to the section unless otherwise specified. +#[allow(clippy::len_without_is_empty)] +pub trait Writer { + /// The endianity of bytes that are written. + type Endian: Endianity; + + /// Return the endianity of bytes that are written. + fn endian(&self) -> Self::Endian; + + /// Return the current section length. + /// + /// This may be used as an offset for future `write_at` calls. + fn len(&self) -> usize; + + /// Write a slice. + fn write(&mut self, bytes: &[u8]) -> Result<()>; + + /// Write a slice at a given offset. + /// + /// The write must not extend past the current section length. + fn write_at(&mut self, offset: usize, bytes: &[u8]) -> Result<()>; + + /// Write an address. + /// + /// If the writer supports relocations, then it must provide its own implementation + /// of this method. + // TODO: use write_reference instead? + fn write_address(&mut self, address: Address, size: u8) -> Result<()> { + match address { + Address::Constant(val) => self.write_udata(val, size), + Address::Symbol { .. } => Err(Error::InvalidAddress), + } + } + + /// Write an address with a `.eh_frame` pointer encoding. + /// + /// The given size is only used for `DW_EH_PE_absptr` formats. + /// + /// If the writer supports relocations, then it must provide its own implementation + /// of this method. + fn write_eh_pointer( + &mut self, + address: Address, + eh_pe: constants::DwEhPe, + size: u8, + ) -> Result<()> { + match address { + Address::Constant(val) => { + // Indirect doesn't matter here. + let val = match eh_pe.application() { + constants::DW_EH_PE_absptr => val, + constants::DW_EH_PE_pcrel => { + // TODO: better handling of sign + let offset = self.len() as u64; + val.wrapping_sub(offset) + } + _ => { + return Err(Error::UnsupportedPointerEncoding(eh_pe)); + } + }; + self.write_eh_pointer_data(val, eh_pe.format(), size) + } + Address::Symbol { .. } => Err(Error::InvalidAddress), + } + } + + /// Write a value with a `.eh_frame` pointer format. + /// + /// The given size is only used for `DW_EH_PE_absptr` formats. + /// + /// This must not be used directly for values that may require relocation. + fn write_eh_pointer_data( + &mut self, + val: u64, + format: constants::DwEhPe, + size: u8, + ) -> Result<()> { + match format { + constants::DW_EH_PE_absptr => self.write_udata(val, size), + constants::DW_EH_PE_uleb128 => self.write_uleb128(val), + constants::DW_EH_PE_udata2 => self.write_udata(val, 2), + constants::DW_EH_PE_udata4 => self.write_udata(val, 4), + constants::DW_EH_PE_udata8 => self.write_udata(val, 8), + constants::DW_EH_PE_sleb128 => self.write_sleb128(val as i64), + constants::DW_EH_PE_sdata2 => self.write_sdata(val as i64, 2), + constants::DW_EH_PE_sdata4 => self.write_sdata(val as i64, 4), + constants::DW_EH_PE_sdata8 => self.write_sdata(val as i64, 8), + _ => Err(Error::UnsupportedPointerEncoding(format)), + } + } + + /// Write an offset that is relative to the start of the given section. + /// + /// If the writer supports relocations, then it must provide its own implementation + /// of this method. + fn write_offset(&mut self, val: usize, _section: SectionId, size: u8) -> Result<()> { + self.write_udata(val as u64, size) + } + + /// Write an offset that is relative to the start of the given section. + /// + /// If the writer supports relocations, then it must provide its own implementation + /// of this method. + fn write_offset_at( + &mut self, + offset: usize, + val: usize, + _section: SectionId, + size: u8, + ) -> Result<()> { + self.write_udata_at(offset, val as u64, size) + } + + /// Write a reference to a symbol. + /// + /// If the writer supports symbols, then it must provide its own implementation + /// of this method. + fn write_reference(&mut self, _symbol: usize, _size: u8) -> Result<()> { + Err(Error::InvalidReference) + } + + /// Write a u8. + fn write_u8(&mut self, val: u8) -> Result<()> { + let bytes = [val]; + self.write(&bytes) + } + + /// Write a u16. + fn write_u16(&mut self, val: u16) -> Result<()> { + let mut bytes = [0; 2]; + self.endian().write_u16(&mut bytes, val); + self.write(&bytes) + } + + /// Write a u32. + fn write_u32(&mut self, val: u32) -> Result<()> { + let mut bytes = [0; 4]; + self.endian().write_u32(&mut bytes, val); + self.write(&bytes) + } + + /// Write a u64. + fn write_u64(&mut self, val: u64) -> Result<()> { + let mut bytes = [0; 8]; + self.endian().write_u64(&mut bytes, val); + self.write(&bytes) + } + + /// Write a u8 at the given offset. + fn write_u8_at(&mut self, offset: usize, val: u8) -> Result<()> { + let bytes = [val]; + self.write_at(offset, &bytes) + } + + /// Write a u16 at the given offset. + fn write_u16_at(&mut self, offset: usize, val: u16) -> Result<()> { + let mut bytes = [0; 2]; + self.endian().write_u16(&mut bytes, val); + self.write_at(offset, &bytes) + } + + /// Write a u32 at the given offset. + fn write_u32_at(&mut self, offset: usize, val: u32) -> Result<()> { + let mut bytes = [0; 4]; + self.endian().write_u32(&mut bytes, val); + self.write_at(offset, &bytes) + } + + /// Write a u64 at the given offset. + fn write_u64_at(&mut self, offset: usize, val: u64) -> Result<()> { + let mut bytes = [0; 8]; + self.endian().write_u64(&mut bytes, val); + self.write_at(offset, &bytes) + } + + /// Write unsigned data of the given size. + /// + /// Returns an error if the value is too large for the size. + /// This must not be used directly for values that may require relocation. + fn write_udata(&mut self, val: u64, size: u8) -> Result<()> { + match size { + 1 => { + let write_val = val as u8; + if val != u64::from(write_val) { + return Err(Error::ValueTooLarge); + } + self.write_u8(write_val) + } + 2 => { + let write_val = val as u16; + if val != u64::from(write_val) { + return Err(Error::ValueTooLarge); + } + self.write_u16(write_val) + } + 4 => { + let write_val = val as u32; + if val != u64::from(write_val) { + return Err(Error::ValueTooLarge); + } + self.write_u32(write_val) + } + 8 => self.write_u64(val), + otherwise => Err(Error::UnsupportedWordSize(otherwise)), + } + } + + /// Write signed data of the given size. + /// + /// Returns an error if the value is too large for the size. + /// This must not be used directly for values that may require relocation. + fn write_sdata(&mut self, val: i64, size: u8) -> Result<()> { + match size { + 1 => { + let write_val = val as i8; + if val != i64::from(write_val) { + return Err(Error::ValueTooLarge); + } + self.write_u8(write_val as u8) + } + 2 => { + let write_val = val as i16; + if val != i64::from(write_val) { + return Err(Error::ValueTooLarge); + } + self.write_u16(write_val as u16) + } + 4 => { + let write_val = val as i32; + if val != i64::from(write_val) { + return Err(Error::ValueTooLarge); + } + self.write_u32(write_val as u32) + } + 8 => self.write_u64(val as u64), + otherwise => Err(Error::UnsupportedWordSize(otherwise)), + } + } + + /// Write a word of the given size at the given offset. + /// + /// Returns an error if the value is too large for the size. + /// This must not be used directly for values that may require relocation. + fn write_udata_at(&mut self, offset: usize, val: u64, size: u8) -> Result<()> { + match size { + 1 => { + let write_val = val as u8; + if val != u64::from(write_val) { + return Err(Error::ValueTooLarge); + } + self.write_u8_at(offset, write_val) + } + 2 => { + let write_val = val as u16; + if val != u64::from(write_val) { + return Err(Error::ValueTooLarge); + } + self.write_u16_at(offset, write_val) + } + 4 => { + let write_val = val as u32; + if val != u64::from(write_val) { + return Err(Error::ValueTooLarge); + } + self.write_u32_at(offset, write_val) + } + 8 => self.write_u64_at(offset, val), + otherwise => Err(Error::UnsupportedWordSize(otherwise)), + } + } + + /// Write an unsigned LEB128 encoded integer. + fn write_uleb128(&mut self, val: u64) -> Result<()> { + let mut bytes = [0u8; 10]; + // bytes is long enough so this will never fail. + let len = leb128::write::unsigned(&mut { &mut bytes[..] }, val).unwrap(); + self.write(&bytes[..len]) + } + + /// Read an unsigned LEB128 encoded integer. + fn write_sleb128(&mut self, val: i64) -> Result<()> { + let mut bytes = [0u8; 10]; + // bytes is long enough so this will never fail. + let len = leb128::write::signed(&mut { &mut bytes[..] }, val).unwrap(); + self.write(&bytes[..len]) + } + + /// Write an initial length according to the given DWARF format. + /// + /// This will only write a length of zero, since the length isn't + /// known yet, and a subsequent call to `write_initial_length_at` + /// will write the actual length. + fn write_initial_length(&mut self, format: Format) -> Result { + if format == Format::Dwarf64 { + self.write_u32(0xffff_ffff)?; + } + let offset = InitialLengthOffset(self.len()); + self.write_udata(0, format.word_size())?; + Ok(offset) + } + + /// Write an initial length at the given offset according to the given DWARF format. + /// + /// `write_initial_length` must have previously returned the offset. + fn write_initial_length_at( + &mut self, + offset: InitialLengthOffset, + length: u64, + format: Format, + ) -> Result<()> { + self.write_udata_at(offset.0, length, format.word_size()) + } +} + +/// The offset at which an initial length should be written. +#[derive(Debug, Clone, Copy)] +pub struct InitialLengthOffset(usize); + +#[cfg(test)] +mod tests { + use super::*; + use crate::write; + use crate::{BigEndian, LittleEndian}; + use std::{i64, u64}; + + #[test] + fn test_writer() { + let mut w = write::EndianVec::new(LittleEndian); + w.write_address(Address::Constant(0x1122_3344), 4).unwrap(); + assert_eq!(w.slice(), &[0x44, 0x33, 0x22, 0x11]); + assert_eq!( + w.write_address( + Address::Symbol { + symbol: 0, + addend: 0 + }, + 4 + ), + Err(Error::InvalidAddress) + ); + + let mut w = write::EndianVec::new(LittleEndian); + w.write_offset(0x1122_3344, SectionId::DebugInfo, 4) + .unwrap(); + assert_eq!(w.slice(), &[0x44, 0x33, 0x22, 0x11]); + w.write_offset_at(1, 0x5566, SectionId::DebugInfo, 2) + .unwrap(); + assert_eq!(w.slice(), &[0x44, 0x66, 0x55, 0x11]); + + let mut w = write::EndianVec::new(LittleEndian); + w.write_u8(0x11).unwrap(); + w.write_u16(0x2233).unwrap(); + w.write_u32(0x4455_6677).unwrap(); + w.write_u64(0x8081_8283_8485_8687).unwrap(); + #[rustfmt::skip] + assert_eq!(w.slice(), &[ + 0x11, + 0x33, 0x22, + 0x77, 0x66, 0x55, 0x44, + 0x87, 0x86, 0x85, 0x84, 0x83, 0x82, 0x81, 0x80, + ]); + w.write_u8_at(14, 0x11).unwrap(); + w.write_u16_at(12, 0x2233).unwrap(); + w.write_u32_at(8, 0x4455_6677).unwrap(); + w.write_u64_at(0, 0x8081_8283_8485_8687).unwrap(); + #[rustfmt::skip] + assert_eq!(w.slice(), &[ + 0x87, 0x86, 0x85, 0x84, 0x83, 0x82, 0x81, 0x80, + 0x77, 0x66, 0x55, 0x44, + 0x33, 0x22, + 0x11, + ]); + + let mut w = write::EndianVec::new(BigEndian); + w.write_u8(0x11).unwrap(); + w.write_u16(0x2233).unwrap(); + w.write_u32(0x4455_6677).unwrap(); + w.write_u64(0x8081_8283_8485_8687).unwrap(); + #[rustfmt::skip] + assert_eq!(w.slice(), &[ + 0x11, + 0x22, 0x33, + 0x44, 0x55, 0x66, 0x77, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + ]); + w.write_u8_at(14, 0x11).unwrap(); + w.write_u16_at(12, 0x2233).unwrap(); + w.write_u32_at(8, 0x4455_6677).unwrap(); + w.write_u64_at(0, 0x8081_8283_8485_8687).unwrap(); + #[rustfmt::skip] + assert_eq!(w.slice(), &[ + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x44, 0x55, 0x66, 0x77, + 0x22, 0x33, + 0x11, + ]); + + let mut w = write::EndianVec::new(LittleEndian); + w.write_udata(0x11, 1).unwrap(); + w.write_udata(0x2233, 2).unwrap(); + w.write_udata(0x4455_6677, 4).unwrap(); + w.write_udata(0x8081_8283_8485_8687, 8).unwrap(); + #[rustfmt::skip] + assert_eq!(w.slice(), &[ + 0x11, + 0x33, 0x22, + 0x77, 0x66, 0x55, 0x44, + 0x87, 0x86, 0x85, 0x84, 0x83, 0x82, 0x81, 0x80, + ]); + assert_eq!(w.write_udata(0x100, 1), Err(Error::ValueTooLarge)); + assert_eq!(w.write_udata(0x1_0000, 2), Err(Error::ValueTooLarge)); + assert_eq!(w.write_udata(0x1_0000_0000, 4), Err(Error::ValueTooLarge)); + assert_eq!(w.write_udata(0x00, 3), Err(Error::UnsupportedWordSize(3))); + w.write_udata_at(14, 0x11, 1).unwrap(); + w.write_udata_at(12, 0x2233, 2).unwrap(); + w.write_udata_at(8, 0x4455_6677, 4).unwrap(); + w.write_udata_at(0, 0x8081_8283_8485_8687, 8).unwrap(); + #[rustfmt::skip] + assert_eq!(w.slice(), &[ + 0x87, 0x86, 0x85, 0x84, 0x83, 0x82, 0x81, 0x80, + 0x77, 0x66, 0x55, 0x44, + 0x33, 0x22, + 0x11, + ]); + assert_eq!(w.write_udata_at(0, 0x100, 1), Err(Error::ValueTooLarge)); + assert_eq!(w.write_udata_at(0, 0x1_0000, 2), Err(Error::ValueTooLarge)); + assert_eq!( + w.write_udata_at(0, 0x1_0000_0000, 4), + Err(Error::ValueTooLarge) + ); + assert_eq!( + w.write_udata_at(0, 0x00, 3), + Err(Error::UnsupportedWordSize(3)) + ); + + let mut w = write::EndianVec::new(LittleEndian); + w.write_uleb128(0).unwrap(); + assert_eq!(w.slice(), &[0]); + + let mut w = write::EndianVec::new(LittleEndian); + w.write_uleb128(u64::MAX).unwrap(); + assert_eq!( + w.slice(), + &[0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1] + ); + + let mut w = write::EndianVec::new(LittleEndian); + w.write_sleb128(0).unwrap(); + assert_eq!(w.slice(), &[0]); + + let mut w = write::EndianVec::new(LittleEndian); + w.write_sleb128(i64::MAX).unwrap(); + assert_eq!( + w.slice(), + &[0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0] + ); + + let mut w = write::EndianVec::new(LittleEndian); + w.write_sleb128(i64::MIN).unwrap(); + assert_eq!( + w.slice(), + &[0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f] + ); + + let mut w = write::EndianVec::new(LittleEndian); + let offset = w.write_initial_length(Format::Dwarf32).unwrap(); + assert_eq!(w.slice(), &[0, 0, 0, 0]); + w.write_initial_length_at(offset, 0x1122_3344, Format::Dwarf32) + .unwrap(); + assert_eq!(w.slice(), &[0x44, 0x33, 0x22, 0x11]); + assert_eq!( + w.write_initial_length_at(offset, 0x1_0000_0000, Format::Dwarf32), + Err(Error::ValueTooLarge) + ); + + let mut w = write::EndianVec::new(LittleEndian); + let offset = w.write_initial_length(Format::Dwarf64).unwrap(); + assert_eq!(w.slice(), &[0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0, 0]); + w.write_initial_length_at(offset, 0x1122_3344_5566_7788, Format::Dwarf64) + .unwrap(); + assert_eq!( + w.slice(), + &[0xff, 0xff, 0xff, 0xff, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11] + ); + } +} diff --git a/src/rust/vendor/hashbrown/.cargo-checksum.json b/src/rust/vendor/hashbrown/.cargo-checksum.json new file mode 100644 index 000000000..0c5744048 --- /dev/null +++ b/src/rust/vendor/hashbrown/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"CHANGELOG.md":"1a844fe3b7466b41ca1d5914af197d5aeed7cb14f30ebe4be351367d7ca905d2","Cargo.toml":"c011f10385da722056537329f3fcf8c9b93af742e79e38885c0152a0105fc227","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2","README.md":"84c222ce49510535419d338b7532a72a2bf22b7466e44de78d92d25b6c7d636b","benches/bench.rs":"ef7bc025922f077d307c565640c005d056e3d6c1713448a95aae92d3c22c1005","benches/insert_unique_unchecked.rs":"cb84275f22d5f95a5ac995ac6b2df74ffcf342765b401d27c95f2955c7b7cb9f","clippy.toml":"7535949f908c6d9aea4f9a9f3a7625552c93fc29e963d059d40f4def9d77ea7b","src/external_trait_impls/mod.rs":"0625e6a5e3b8ecc8901a12aeeea54393fd84617fb3a14d98a34d2d2bddb8d257","src/external_trait_impls/rayon/helpers.rs":"ba105bf0853ebc45157f22116ad0f55d3bdab75e721d8e7a677c7b912d0c0c6d","src/external_trait_impls/rayon/map.rs":"96fdf39b3f601f77152d7ce84541b8f51f32b9274b7da9c294862892e721a5d8","src/external_trait_impls/rayon/mod.rs":"126edc882501dddd25e442d9236508b5b386eb8c0a9f5d654f2dd081086c1616","src/external_trait_impls/rayon/raw.rs":"04012fb2e99648819b4bc0044107ed3cb94013e242b7865075c5bd9ebf1b6865","src/external_trait_impls/rayon/set.rs":"7539348ff7bc6e3cce6b3c019d62dc401eea0138c578fef729c2593e8ead1cfa","src/external_trait_impls/rayon/table.rs":"8778d29509c68b5b7cb66859db025d3939ce22e7cf370b20ff3dea4fe4b29fd0","src/external_trait_impls/rkyv/hash_map.rs":"7abe24318143b776016052b05840656afc858b1ba5252f3d418d61972477f53d","src/external_trait_impls/rkyv/hash_set.rs":"38d969125d17d606492ec4ec9fc06b7e7118eb903240dacf40de21b9b06fa5c8","src/external_trait_impls/rkyv/mod.rs":"54399ce5574fd1d84b7b0cb4238fa3e898575e89a6724299be009d2172bda02e","src/external_trait_impls/serde.rs":"6dbe104dee16b453b6b048b541c6e02c6d067d970dfafd243fc4360288b0168c","src/lib.rs":"74e250c18e55994a4a902eaa06aca034559d6de53501ed4bf9010fabc67e88a2","src/macros.rs":"98a26b908fc0fbe6a58d008a317e550013d615eb3cc17a5054a573c62c1d74cb","src/map.rs":"d484f2f81e5b4acf4b615f187241e34c3016aaaca53a5e71019cceb993c4ebd7","src/raw/alloc.rs":"902f8588d0fdee3e5c3dc02410f41d4b38ac88843727387f929f3186b3a2d322","src/raw/bitmask.rs":"3b3dce8d6a48856ada19085abf43908f124ab3419fcf434b9ca64d7bff243f67","src/raw/generic.rs":"efc5e603be3e9a17935aef1836a38ce01c78a0093b2af0671548eb5459b37921","src/raw/mod.rs":"16bbabf42dde9f3fb17c4f7e768aef47752d839bf624b81d24a48af3d418b3a2","src/raw/neon.rs":"9907d8ebc36fc3df562dde478ea9b72213fda65288a304718d8647f0029dc9ad","src/raw/sse2.rs":"39038e3344e49f4638e211bcdbf56565ac53e90dce56172cc3b526fea911c2af","src/rustc_entry.rs":"8142ed89b50155602ef8c1628382bd62d3ee903920fe49d403d4100a278c6ba4","src/scopeguard.rs":"1a246e08a63c06cd8ad934bd7da229421bf804f991ae93cd7e242da27ca6c601","src/set.rs":"a620ed68bd1610b76c4c1890615d71b2c04928bf5b345133a0588a065bce06fa","src/table.rs":"7b7174099d2e3cade0caeddd73e29b7395f3b9f4f1f21013f885b52cd93438cb","tests/equivalent_trait.rs":"84faa3fe9d67c375d03fec81f0f1412c47862477d42e84e7d235258236338d5b","tests/hasher.rs":"9a8fdf67e4415618e16729969c386eefe71408cded5d46cf7b67d969276a3452","tests/raw.rs":"43ed2f98877533a0905611d9a30f26b183dd3e103e3856eeab80e7b8ac7894d3","tests/rayon.rs":"39cb24ab45fce8087bb54948715c8b6973ebfba1a325292b5b3cd9aab50b5fd2","tests/serde.rs":"6bac8054db722dd049901b37a6e006535bac30f425eb5cd91af19b5bc1dfe78e","tests/set.rs":"9f8011c29d1059aadb54b6dd4623521d5178b4278b4a56021ef2cee4bbb19fd9"},"package":"e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"} \ No newline at end of file diff --git a/src/rust/vendor/hashbrown/CHANGELOG.md b/src/rust/vendor/hashbrown/CHANGELOG.md new file mode 100644 index 000000000..8c4068089 --- /dev/null +++ b/src/rust/vendor/hashbrown/CHANGELOG.md @@ -0,0 +1,532 @@ +# Change Log + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/) +and this project adheres to [Semantic Versioning](https://semver.org/). + +## [Unreleased] + +### Changed + +- Changed `hash_set::{Entry, VacantEntry}::insert` to return `OccupiedEntry`. (#495) + +## [v0.14.5] - 2024-04-28 + +### Fixed + +- Fixed index calculation in panic guard of `clone_from_impl`. (#511) + +## ~~[v0.14.4] - 2024-03-19~~ + +This release was _yanked_ due to a breaking change. + +## [v0.14.3] - 2023-11-26 + +### Added + +- Specialized `fold` implementation of iterators. (#480) + +### Fixed + +- Avoid using unstable `ptr::invalid_mut` on nightly. (#481) + +## [v0.14.2] - 2023-10-19 + +### Added + +- `HashTable` type which provides a low-level but safe API with explicit hashing. (#466) + +### Fixed + +- Disabled the use of NEON instructions on big-endian ARM. (#475) +- Disabled the use of NEON instructions on Miri. (#476) + +## [v0.14.1] - 2023-09-28 + +### Added + +- Allow serializing `HashMap`s that use a custom allocator. (#449) + +### Changed + +- Use the `Equivalent` trait from the `equivalent` crate. (#442) +- Slightly improved performance of table resizing. (#451) +- Relaxed MSRV to 1.63.0. (#457) +- Removed `Clone` requirement from custom allocators. (#468) + +### Fixed + +- Fixed custom allocators being leaked in some situations. (#439, #465) + +## [v0.14.0] - 2023-06-01 + +### Added + +- Support for `allocator-api2` crate + for interfacing with custom allocators on stable. (#417) +- Optimized implementation for ARM using NEON instructions. (#430) +- Support for rkyv serialization. (#432) +- `Equivalent` trait to look up values without `Borrow`. (#345) +- `Hash{Map,Set}::raw_table_mut` is added whic returns a mutable reference. (#404) +- Fast path for `clear` on empty tables. (#428) + +### Changed + +- Optimized insertion to only perform a single lookup. (#277) +- `DrainFilter` (`drain_filter`) has been renamed to `ExtractIf` and no longer drops remaining + elements when the iterator is dropped. #(374) +- Bumped MSRV to 1.64.0. (#431) +- `{Map,Set}::raw_table` now returns an immutable reference. (#404) +- `VacantEntry` and `OccupiedEntry` now use the default hasher if none is + specified in generics. (#389) +- `RawTable::data_start` now returns a `NonNull` to match `RawTable::data_end`. (#387) +- `RawIter::{reflect_insert, reflect_remove}` are now unsafe. (#429) +- `RawTable::find_potential` is renamed to `find_or_find_insert_slot` and returns an `InsertSlot`. (#429) +- `RawTable::remove` now also returns an `InsertSlot`. (#429) +- `InsertSlot` can be used to insert an element with `RawTable::insert_in_slot`. (#429) +- `RawIterHash` no longer has a lifetime tied to that of the `RawTable`. (#427) +- The trait bounds of `HashSet::raw_table` have been relaxed to not require `Eq + Hash`. (#423) +- `EntryRef::and_replace_entry_with` and `OccupiedEntryRef::replace_entry_with` + were changed to give a `&K` instead of a `&Q` to the closure. + +### Removed + +- Support for `bumpalo` as an allocator with custom wrapper. + Use `allocator-api2` feature in `bumpalo` to use it as an allocator + for `hashbrown` collections. (#417) + +## [v0.13.2] - 2023-01-12 + +### Fixed + +- Added `#[inline(always)]` to `find_inner`. (#375) +- Fixed `RawTable::allocation_info` for empty tables. (#376) + +## [v0.13.1] - 2022-11-10 + +### Added + +- Added `Equivalent` trait to customize key lookups. (#350) +- Added support for 16-bit targets. (#368) +- Added `RawTable::allocation_info` which provides information about the memory + usage of a table. (#371) + +### Changed + +- Bumped MSRV to 1.61.0. +- Upgraded to `ahash` 0.8. (#357) +- Make `with_hasher_in` const. (#355) +- The following methods have been removed from the `RawTable` API in favor of + safer alternatives: + - `RawTable::erase_no_drop` => Use `RawTable::erase` or `RawTable::remove` instead. + - `Bucket::read` => Use `RawTable::remove` instead. + - `Bucket::drop` => Use `RawTable::erase` instead. + - `Bucket::write` => Use `Bucket::as_mut` instead. + +### Fixed + +- Ensure that `HashMap` allocations don't exceed `isize::MAX`. (#362) +- Fixed issue with field retagging in scopeguard. (#359) + +## [v0.12.3] - 2022-07-17 + +### Fixed + +- Fixed double-drop in `RawTable::clone_from`. (#348) + +## [v0.12.2] - 2022-07-09 + +### Added + +- Added `Entry` API for `HashSet`. (#342) +- Added `Extend<&'a (K, V)> for HashMap`. (#340) +- Added length-based short-circuiting for hash table iteration. (#338) +- Added a function to access the `RawTable` of a `HashMap`. (#335) + +### Changed + +- Edited `do_alloc` to reduce LLVM IR generated. (#341) + +## [v0.12.1] - 2022-05-02 + +### Fixed + +- Fixed underflow in `RawIterRange::size_hint`. (#325) +- Fixed the implementation of `Debug` for `ValuesMut` and `IntoValues`. (#325) + +## [v0.12.0] - 2022-01-17 + +### Added + +- Added `From<[T; N]>` and `From<[(K, V); N]>` for `HashSet` and `HashMap` respectively. (#297) +- Added an `allocator()` getter to HashMap and HashSet. (#257) +- Added `insert_unique_unchecked` to `HashMap` and `HashSet`. (#293) +- Added `into_keys` and `into_values` to HashMap. (#295) +- Implement `From` on `HashSet` and `HashMap`. (#298) +- Added `entry_ref` API to `HashMap`. (#201) + +### Changed + +- Bumped minimum Rust version to 1.56.1 and edition to 2021. +- Use u64 for the GroupWord on WebAssembly. (#271) +- Optimized `find`. (#279) +- Made rehashing and resizing less generic to reduce compilation time. (#282) +- Inlined small functions. (#283) +- Use `BuildHasher::hash_one` when `feature = "nightly"` is enabled. (#292) +- Relaxed the bounds on `Debug` for `HashSet`. (#296) +- Rename `get_each_mut` to `get_many_mut` and align API with the stdlib. (#291) +- Don't hash the key when searching in an empty table. (#305) + +### Fixed + +- Guard against allocations exceeding isize::MAX. (#268) +- Made `RawTable::insert_no_grow` unsafe. (#254) +- Inline `static_empty`. (#280) +- Fixed trait bounds on Send/Sync impls. (#303) + +## [v0.11.2] - 2021-03-25 + +### Fixed + +- Added missing allocator type parameter to `HashMap`'s and `HashSet`'s `Clone` impls. (#252) + +## [v0.11.1] - 2021-03-20 + +### Fixed + +- Added missing `pub` modifier to `BumpWrapper`. (#251) + +## [v0.11.0] - 2021-03-14 + +### Added +- Added safe `try_insert_no_grow` method to `RawTable`. (#229) +- Added support for `bumpalo` as an allocator without the `nightly` feature. (#231) +- Implemented `Default` for `RawTable`. (#237) +- Added new safe methods `RawTable::get_each_mut`, `HashMap::get_each_mut`, and + `HashMap::get_each_key_value_mut`. (#239) +- Added `From>` for `HashSet`. (#235) +- Added `try_insert` method to `HashMap`. (#247) + +### Changed +- The minimum Rust version has been bumped to 1.49.0. (#230) +- Significantly improved compilation times by reducing the amount of generated IR. (#205) + +### Removed +- We no longer re-export the unstable allocator items from the standard library, nor the stable shims approximating the same. (#227) +- Removed hasher specialization support from `aHash`, which was resulting in inconsistent hashes being generated for a key. (#248) + +### Fixed +- Fixed union length comparison. (#228) + +## ~~[v0.10.0] - 2021-01-16~~ + +This release was _yanked_ due to inconsistent hashes being generated with the `nightly` feature. (#248) + +### Changed +- Parametrized `RawTable`, `HashSet` and `HashMap` over an allocator. (#133) +- Improved branch prediction hints on stable. (#209) +- Optimized hashing of primitive types with AHash using specialization. (#207) +- Only instantiate `RawTable`'s reserve functions once per key-value. (#204) + +## [v0.9.1] - 2020-09-28 + +### Added +- Added safe methods to `RawTable` (#202): + - `get`: `find` and `as_ref` + - `get_mut`: `find` and `as_mut` + - `insert_entry`: `insert` and `as_mut` + - `remove_entry`: `find` and `remove` + - `erase_entry`: `find` and `erase` + +### Changed +- Removed `from_key_hashed_nocheck`'s `Q: Hash`. (#200) +- Made `RawTable::drain` safe. (#201) + +## [v0.9.0] - 2020-09-03 + +### Fixed +- `drain_filter` now removes and yields items that do match the predicate, + rather than items that don't. This is a **breaking change** to match the + behavior of the `drain_filter` methods in `std`. (#187) + +### Added +- Added `replace_entry_with` to `OccupiedEntry`, and `and_replace_entry_with` to `Entry`. (#190) +- Implemented `FusedIterator` and `size_hint` for `DrainFilter`. (#188) + +### Changed +- The minimum Rust version has been bumped to 1.36 (due to `crossbeam` dependency). (#193) +- Updated `ahash` dependency to 0.4. (#198) +- `HashMap::with_hasher` and `HashSet::with_hasher` are now `const fn`. (#195) +- Removed `T: Hash + Eq` and `S: BuildHasher` bounds on `HashSet::new`, + `with_capacity`, `with_hasher`, and `with_capacity_and_hasher`. (#185) + +## [v0.8.2] - 2020-08-08 + +### Changed +- Avoid closures to improve compile times. (#183) +- Do not iterate to drop if empty. (#182) + +## [v0.8.1] - 2020-07-16 + +### Added +- Added `erase` and `remove` to `RawTable`. (#171) +- Added `try_with_capacity` to `RawTable`. (#174) +- Added methods that allow re-using a `RawIter` for `RawDrain`, + `RawIntoIter`, and `RawParIter`. (#175) +- Added `reflect_remove` and `reflect_insert` to `RawIter`. (#175) +- Added a `drain_filter` function to `HashSet`. (#179) + +### Changed +- Deprecated `RawTable::erase_no_drop` in favor of `erase` and `remove`. (#176) +- `insert_no_grow` is now exposed under the `"raw"` feature. (#180) + +## [v0.8.0] - 2020-06-18 + +### Fixed +- Marked `RawTable::par_iter` as `unsafe`. (#157) + +### Changed +- Reduced the size of `HashMap`. (#159) +- No longer create tables with a capacity of 1 element. (#162) +- Removed `K: Eq + Hash` bounds on `retain`. (#163) +- Pulled in `HashMap` changes from rust-lang/rust (#164): + - `extend_one` support on nightly. + - `CollectionAllocErr` renamed to `TryReserveError`. + - Added `HashSet::get_or_insert_owned`. + - `Default` for `HashSet` no longer requires `T: Eq + Hash` and `S: BuildHasher`. + +## [v0.7.2] - 2020-04-27 + +### Added +- Added `or_insert_with_key` to `Entry`. (#152) + +### Fixed +- Partially reverted `Clone` optimization which was unsound. (#154) + +### Changed +- Disabled use of `const-random` by default, which prevented reproducible builds. (#155) +- Optimized `repeat` function. (#150) +- Use `NonNull` for buckets, which improves codegen for iterators. (#148) + +## [v0.7.1] - 2020-03-16 + +### Added +- Added `HashMap::get_key_value_mut`. (#145) + +### Changed +- Optimized `Clone` implementation. (#146) + +## [v0.7.0] - 2020-01-31 + +### Added +- Added a `drain_filter` function to `HashMap`. (#135) + +### Changed +- Updated `ahash` dependency to 0.3. (#141) +- Optimized set union and intersection. (#130) +- `raw_entry` can now be used without requiring `S: BuildHasher`. (#123) +- `RawTable::bucket_index` can now be used under the `raw` feature. (#128) + +## [v0.6.3] - 2019-10-31 + +### Added +- Added an `ahash-compile-time-rng` feature (enabled by default) which allows disabling the + `compile-time-rng` feature in `ahash` to work around a Cargo bug. (#125) + +## [v0.6.2] - 2019-10-23 + +### Added +- Added an `inline-more` feature (enabled by default) which allows choosing a tradeoff between + runtime performance and compilation time. (#119) + +## [v0.6.1] - 2019-10-04 + +### Added +- Added `Entry::insert` and `RawEntryMut::insert`. (#118) + +### Changed +- `Group::static_empty` was changed from a `const` to a `static` (#116). + +## [v0.6.0] - 2019-08-13 + +### Fixed +- Fixed AHash accidentally depending on `std`. (#110) + +### Changed +- The minimum Rust version has been bumped to 1.32 (due to `rand` dependency). + +## ~~[v0.5.1] - 2019-08-04~~ + +This release was _yanked_ due to a breaking change for users of `no-default-features`. + +### Added +- The experimental and unsafe `RawTable` API is available under the "raw" feature. (#108) +- Added entry-like methods for `HashSet`. (#98) + +### Changed +- Changed the default hasher from FxHash to AHash. (#97) +- `hashbrown` is now fully `no_std` on recent Rust versions (1.36+). (#96) + +### Fixed +- We now avoid growing the table during insertions when it wasn't necessary. (#106) +- `RawOccupiedEntryMut` now properly implements `Send` and `Sync`. (#100) +- Relaxed `lazy_static` version. (#92) + +## [v0.5.0] - 2019-06-12 + +### Fixed +- Resize with a more conservative amount of space after deletions. (#86) + +### Changed +- Exposed the Layout of the failed allocation in CollectionAllocErr::AllocErr. (#89) + +## [v0.4.0] - 2019-05-30 + +### Fixed +- Fixed `Send` trait bounds on `IterMut` not matching the libstd one. (#82) + +## [v0.3.1] - 2019-05-30 + +### Fixed +- Fixed incorrect use of slice in unsafe code. (#80) + +## [v0.3.0] - 2019-04-23 + +### Changed +- Changed shrink_to to not panic if min_capacity < capacity. (#67) + +### Fixed +- Worked around emscripten bug emscripten-core/emscripten-fastcomp#258. (#66) + +## [v0.2.2] - 2019-04-16 + +### Fixed +- Inlined non-nightly lowest_set_bit_nonzero. (#64) +- Fixed build on latest nightly. (#65) + +## [v0.2.1] - 2019-04-14 + +### Changed +- Use for_each in map Extend and FromIterator. (#58) +- Improved worst-case performance of HashSet.is_subset. (#61) + +### Fixed +- Removed incorrect debug_assert. (#60) + +## [v0.2.0] - 2019-03-31 + +### Changed +- The code has been updated to Rust 2018 edition. This means that the minimum + Rust version has been bumped to 1.31 (2018 edition). + +### Added +- Added `insert_with_hasher` to the raw_entry API to allow `K: !(Hash + Eq)`. (#54) +- Added support for using hashbrown as the hash table implementation in libstd. (#46) + +### Fixed +- Fixed cargo build with minimal-versions. (#45) +- Fixed `#[may_dangle]` attributes to match the libstd `HashMap`. (#46) +- ZST keys and values are now handled properly. (#46) + +## [v0.1.8] - 2019-01-14 + +### Added +- Rayon parallel iterator support (#37) +- `raw_entry` support (#31) +- `#[may_dangle]` on nightly (#31) +- `try_reserve` support (#31) + +### Fixed +- Fixed variance on `IterMut`. (#31) + +## [v0.1.7] - 2018-12-05 + +### Fixed +- Fixed non-SSE version of convert_special_to_empty_and_full_to_deleted. (#32) +- Fixed overflow in rehash_in_place. (#33) + +## [v0.1.6] - 2018-11-17 + +### Fixed +- Fixed compile error on nightly. (#29) + +## [v0.1.5] - 2018-11-08 + +### Fixed +- Fixed subtraction overflow in generic::Group::match_byte. (#28) + +## [v0.1.4] - 2018-11-04 + +### Fixed +- Fixed a bug in the `erase_no_drop` implementation. (#26) + +## [v0.1.3] - 2018-11-01 + +### Added +- Serde support. (#14) + +### Fixed +- Make the compiler inline functions more aggressively. (#20) + +## [v0.1.2] - 2018-10-31 + +### Fixed +- `clear` segfaults when called on an empty table. (#13) + +## [v0.1.1] - 2018-10-30 + +### Fixed +- `erase_no_drop` optimization not triggering in the SSE2 implementation. (#3) +- Missing `Send` and `Sync` for hash map and iterator types. (#7) +- Bug when inserting into a table smaller than the group width. (#5) + +## v0.1.0 - 2018-10-29 + +- Initial release + +[Unreleased]: https://github.com/rust-lang/hashbrown/compare/v0.14.5...HEAD +[v0.14.5]: https://github.com/rust-lang/hashbrown/compare/v0.14.4...v0.14.5 +[v0.14.4]: https://github.com/rust-lang/hashbrown/compare/v0.14.3...v0.14.4 +[v0.14.3]: https://github.com/rust-lang/hashbrown/compare/v0.14.2...v0.14.3 +[v0.14.2]: https://github.com/rust-lang/hashbrown/compare/v0.14.1...v0.14.2 +[v0.14.1]: https://github.com/rust-lang/hashbrown/compare/v0.14.0...v0.14.1 +[v0.14.0]: https://github.com/rust-lang/hashbrown/compare/v0.13.2...v0.14.0 +[v0.13.2]: https://github.com/rust-lang/hashbrown/compare/v0.13.1...v0.13.2 +[v0.13.1]: https://github.com/rust-lang/hashbrown/compare/v0.12.3...v0.13.1 +[v0.12.3]: https://github.com/rust-lang/hashbrown/compare/v0.12.2...v0.12.3 +[v0.12.2]: https://github.com/rust-lang/hashbrown/compare/v0.12.1...v0.12.2 +[v0.12.1]: https://github.com/rust-lang/hashbrown/compare/v0.12.0...v0.12.1 +[v0.12.0]: https://github.com/rust-lang/hashbrown/compare/v0.11.2...v0.12.0 +[v0.11.2]: https://github.com/rust-lang/hashbrown/compare/v0.11.1...v0.11.2 +[v0.11.1]: https://github.com/rust-lang/hashbrown/compare/v0.11.0...v0.11.1 +[v0.11.0]: https://github.com/rust-lang/hashbrown/compare/v0.10.0...v0.11.0 +[v0.10.0]: https://github.com/rust-lang/hashbrown/compare/v0.9.1...v0.10.0 +[v0.9.1]: https://github.com/rust-lang/hashbrown/compare/v0.9.0...v0.9.1 +[v0.9.0]: https://github.com/rust-lang/hashbrown/compare/v0.8.2...v0.9.0 +[v0.8.2]: https://github.com/rust-lang/hashbrown/compare/v0.8.1...v0.8.2 +[v0.8.1]: https://github.com/rust-lang/hashbrown/compare/v0.8.0...v0.8.1 +[v0.8.0]: https://github.com/rust-lang/hashbrown/compare/v0.7.2...v0.8.0 +[v0.7.2]: https://github.com/rust-lang/hashbrown/compare/v0.7.1...v0.7.2 +[v0.7.1]: https://github.com/rust-lang/hashbrown/compare/v0.7.0...v0.7.1 +[v0.7.0]: https://github.com/rust-lang/hashbrown/compare/v0.6.3...v0.7.0 +[v0.6.3]: https://github.com/rust-lang/hashbrown/compare/v0.6.2...v0.6.3 +[v0.6.2]: https://github.com/rust-lang/hashbrown/compare/v0.6.1...v0.6.2 +[v0.6.1]: https://github.com/rust-lang/hashbrown/compare/v0.6.0...v0.6.1 +[v0.6.0]: https://github.com/rust-lang/hashbrown/compare/v0.5.1...v0.6.0 +[v0.5.1]: https://github.com/rust-lang/hashbrown/compare/v0.5.0...v0.5.1 +[v0.5.0]: https://github.com/rust-lang/hashbrown/compare/v0.4.0...v0.5.0 +[v0.4.0]: https://github.com/rust-lang/hashbrown/compare/v0.3.1...v0.4.0 +[v0.3.1]: https://github.com/rust-lang/hashbrown/compare/v0.3.0...v0.3.1 +[v0.3.0]: https://github.com/rust-lang/hashbrown/compare/v0.2.2...v0.3.0 +[v0.2.2]: https://github.com/rust-lang/hashbrown/compare/v0.2.1...v0.2.2 +[v0.2.1]: https://github.com/rust-lang/hashbrown/compare/v0.2.0...v0.2.1 +[v0.2.0]: https://github.com/rust-lang/hashbrown/compare/v0.1.8...v0.2.0 +[v0.1.8]: https://github.com/rust-lang/hashbrown/compare/v0.1.7...v0.1.8 +[v0.1.7]: https://github.com/rust-lang/hashbrown/compare/v0.1.6...v0.1.7 +[v0.1.6]: https://github.com/rust-lang/hashbrown/compare/v0.1.5...v0.1.6 +[v0.1.5]: https://github.com/rust-lang/hashbrown/compare/v0.1.4...v0.1.5 +[v0.1.4]: https://github.com/rust-lang/hashbrown/compare/v0.1.3...v0.1.4 +[v0.1.3]: https://github.com/rust-lang/hashbrown/compare/v0.1.2...v0.1.3 +[v0.1.2]: https://github.com/rust-lang/hashbrown/compare/v0.1.1...v0.1.2 +[v0.1.1]: https://github.com/rust-lang/hashbrown/compare/v0.1.0...v0.1.1 diff --git a/src/rust/vendor/hashbrown/Cargo.toml b/src/rust/vendor/hashbrown/Cargo.toml new file mode 100644 index 000000000..0a5434e49 --- /dev/null +++ b/src/rust/vendor/hashbrown/Cargo.toml @@ -0,0 +1,137 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +rust-version = "1.63.0" +name = "hashbrown" +version = "0.14.5" +authors = ["Amanieu d'Antras "] +exclude = [ + ".github", + "/ci/*", +] +description = "A Rust port of Google's SwissTable hash map" +readme = "README.md" +keywords = [ + "hash", + "no_std", + "hashmap", + "swisstable", +] +categories = [ + "data-structures", + "no-std", +] +license = "MIT OR Apache-2.0" +repository = "https://github.com/rust-lang/hashbrown" + +[package.metadata.docs.rs] +features = [ + "nightly", + "rayon", + "serde", + "raw", +] +rustdoc-args = ["--generate-link-to-definition"] + +[dependencies.ahash] +version = "0.8.7" +optional = true +default-features = false + +[dependencies.alloc] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-alloc" + +[dependencies.allocator-api2] +version = "0.2.9" +features = ["alloc"] +optional = true +default-features = false + +[dependencies.compiler_builtins] +version = "0.1.2" +optional = true + +[dependencies.core] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-core" + +[dependencies.equivalent] +version = "1.0" +optional = true +default-features = false + +[dependencies.rayon] +version = "1.0" +optional = true + +[dependencies.rkyv] +version = "0.7.42" +features = ["alloc"] +optional = true +default-features = false + +[dependencies.serde] +version = "1.0.25" +optional = true +default-features = false + +[dev-dependencies.bumpalo] +version = "3.13.0" +features = ["allocator-api2"] + +[dev-dependencies.doc-comment] +version = "0.3.1" + +[dev-dependencies.fnv] +version = "1.0.7" + +[dev-dependencies.lazy_static] +version = "1.4" + +[dev-dependencies.rand] +version = "0.8.3" +features = ["small_rng"] + +[dev-dependencies.rayon] +version = "1.0" + +[dev-dependencies.rkyv] +version = "0.7.42" +features = ["validation"] + +[dev-dependencies.serde_test] +version = "1.0" + +[features] +default = [ + "ahash", + "inline-more", + "allocator-api2", +] +inline-more = [] +nightly = [ + "allocator-api2?/nightly", + "bumpalo/allocator_api", +] +raw = [] +rustc-dep-of-std = [ + "nightly", + "core", + "compiler_builtins", + "alloc", + "rustc-internal-api", +] +rustc-internal-api = [] diff --git a/src/rust/vendor/hashbrown/LICENSE-APACHE b/src/rust/vendor/hashbrown/LICENSE-APACHE new file mode 100644 index 000000000..16fe87b06 --- /dev/null +++ b/src/rust/vendor/hashbrown/LICENSE-APACHE @@ -0,0 +1,201 @@ + 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. diff --git a/src/rust/vendor/hashbrown/LICENSE-MIT b/src/rust/vendor/hashbrown/LICENSE-MIT new file mode 100644 index 000000000..5afc2a7b0 --- /dev/null +++ b/src/rust/vendor/hashbrown/LICENSE-MIT @@ -0,0 +1,25 @@ +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. diff --git a/src/rust/vendor/hashbrown/README.md b/src/rust/vendor/hashbrown/README.md new file mode 100644 index 000000000..5eaef8bd0 --- /dev/null +++ b/src/rust/vendor/hashbrown/README.md @@ -0,0 +1,125 @@ +hashbrown +========= + +[![Build Status](https://github.com/rust-lang/hashbrown/actions/workflows/rust.yml/badge.svg)](https://github.com/rust-lang/hashbrown/actions) +[![Crates.io](https://img.shields.io/crates/v/hashbrown.svg)](https://crates.io/crates/hashbrown) +[![Documentation](https://docs.rs/hashbrown/badge.svg)](https://docs.rs/hashbrown) +[![Rust](https://img.shields.io/badge/rust-1.63.0%2B-blue.svg?maxAge=3600)](https://github.com/rust-lang/hashbrown) + +This crate is a Rust port of Google's high-performance [SwissTable] hash +map, adapted to make it a drop-in replacement for Rust's standard `HashMap` +and `HashSet` types. + +The original C++ version of SwissTable can be found [here], and this +[CppCon talk] gives an overview of how the algorithm works. + +Since Rust 1.36, this is now the `HashMap` implementation for the Rust standard +library. However you may still want to use this crate instead since it works +in environments without `std`, such as embedded systems and kernels. + +[SwissTable]: https://abseil.io/blog/20180927-swisstables +[here]: https://github.com/abseil/abseil-cpp/blob/master/absl/container/internal/raw_hash_set.h +[CppCon talk]: https://www.youtube.com/watch?v=ncHmEUmJZf4 + +## [Change log](CHANGELOG.md) + +## Features + +- Drop-in replacement for the standard library `HashMap` and `HashSet` types. +- Uses [AHash](https://github.com/tkaitchuck/aHash) as the default hasher, which is much faster than SipHash. + However, AHash does *not provide the same level of HashDoS resistance* as SipHash, so if that is important to you, you might want to consider using a different hasher. +- Around 2x faster than the previous standard library `HashMap`. +- Lower memory usage: only 1 byte of overhead per entry instead of 8. +- Compatible with `#[no_std]` (but requires a global allocator with the `alloc` crate). +- Empty hash maps do not allocate any memory. +- SIMD lookups to scan multiple hash entries in parallel. + +## Performance + +Compared to the previous implementation of `std::collections::HashMap` (Rust 1.35). + +With the hashbrown default AHash hasher: + +| name | oldstdhash ns/iter | hashbrown ns/iter | diff ns/iter | diff % | speedup | +| :-------------------------- | :----------------: | ----------------: | :----------: | ------: | ------- | +| insert_ahash_highbits | 18,865 | 8,020 | -10,845 | -57.49% | x 2.35 | +| insert_ahash_random | 19,711 | 8,019 | -11,692 | -59.32% | x 2.46 | +| insert_ahash_serial | 19,365 | 6,463 | -12,902 | -66.63% | x 3.00 | +| insert_erase_ahash_highbits | 51,136 | 17,916 | -33,220 | -64.96% | x 2.85 | +| insert_erase_ahash_random | 51,157 | 17,688 | -33,469 | -65.42% | x 2.89 | +| insert_erase_ahash_serial | 45,479 | 14,895 | -30,584 | -67.25% | x 3.05 | +| iter_ahash_highbits | 1,399 | 1,092 | -307 | -21.94% | x 1.28 | +| iter_ahash_random | 1,586 | 1,059 | -527 | -33.23% | x 1.50 | +| iter_ahash_serial | 3,168 | 1,079 | -2,089 | -65.94% | x 2.94 | +| lookup_ahash_highbits | 32,351 | 4,792 | -27,559 | -85.19% | x 6.75 | +| lookup_ahash_random | 17,419 | 4,817 | -12,602 | -72.35% | x 3.62 | +| lookup_ahash_serial | 15,254 | 3,606 | -11,648 | -76.36% | x 4.23 | +| lookup_fail_ahash_highbits | 21,187 | 4,369 | -16,818 | -79.38% | x 4.85 | +| lookup_fail_ahash_random | 21,550 | 4,395 | -17,155 | -79.61% | x 4.90 | +| lookup_fail_ahash_serial | 19,450 | 3,176 | -16,274 | -83.67% | x 6.12 | + + +With the libstd default SipHash hasher: + +| name | oldstdhash ns/iter | hashbrown ns/iter | diff ns/iter | diff % | speedup | +| :------------------------ | :----------------: | ----------------: | :----------: | ------: | ------- | +| insert_std_highbits | 19,216 | 16,885 | -2,331 | -12.13% | x 1.14 | +| insert_std_random | 19,179 | 17,034 | -2,145 | -11.18% | x 1.13 | +| insert_std_serial | 19,462 | 17,493 | -1,969 | -10.12% | x 1.11 | +| insert_erase_std_highbits | 50,825 | 35,847 | -14,978 | -29.47% | x 1.42 | +| insert_erase_std_random | 51,448 | 35,392 | -16,056 | -31.21% | x 1.45 | +| insert_erase_std_serial | 87,711 | 38,091 | -49,620 | -56.57% | x 2.30 | +| iter_std_highbits | 1,378 | 1,159 | -219 | -15.89% | x 1.19 | +| iter_std_random | 1,395 | 1,132 | -263 | -18.85% | x 1.23 | +| iter_std_serial | 1,704 | 1,105 | -599 | -35.15% | x 1.54 | +| lookup_std_highbits | 17,195 | 13,642 | -3,553 | -20.66% | x 1.26 | +| lookup_std_random | 17,181 | 13,773 | -3,408 | -19.84% | x 1.25 | +| lookup_std_serial | 15,483 | 13,651 | -1,832 | -11.83% | x 1.13 | +| lookup_fail_std_highbits | 20,926 | 13,474 | -7,452 | -35.61% | x 1.55 | +| lookup_fail_std_random | 21,766 | 13,505 | -8,261 | -37.95% | x 1.61 | +| lookup_fail_std_serial | 19,336 | 13,519 | -5,817 | -30.08% | x 1.43 | + +## Usage + +Add this to your `Cargo.toml`: + +```toml +[dependencies] +hashbrown = "0.14" +``` + +Then: + +```rust +use hashbrown::HashMap; + +let mut map = HashMap::new(); +map.insert(1, "one"); +``` +## Flags +This crate has the following Cargo features: + +- `nightly`: Enables nightly-only features including: `#[may_dangle]`. +- `serde`: Enables serde serialization support. +- `rkyv`: Enables rkyv serialization support. +- `rayon`: Enables rayon parallel iterator support. +- `raw`: Enables access to the experimental and unsafe `RawTable` API. +- `inline-more`: Adds inline hints to most functions, improving run-time performance at the cost + of compilation time. (enabled by default) +- `ahash`: Compiles with ahash as default hasher. (enabled by default) +- `allocator-api2`: Enables support for allocators that support `allocator-api2`. (enabled by default) + +## License + +Licensed under either of: + + * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0) + * MIT license ([LICENSE-MIT](LICENSE-MIT) or https://opensource.org/licenses/MIT) + +at your option. + +### Contribution + +Unless you explicitly state otherwise, any contribution intentionally submitted +for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any +additional terms or conditions. diff --git a/src/rust/vendor/hashbrown/benches/bench.rs b/src/rust/vendor/hashbrown/benches/bench.rs new file mode 100644 index 000000000..346bd7ef8 --- /dev/null +++ b/src/rust/vendor/hashbrown/benches/bench.rs @@ -0,0 +1,331 @@ +// This benchmark suite contains some benchmarks along a set of dimensions: +// Hasher: std default (SipHash) and crate default (AHash). +// Int key distribution: low bit heavy, top bit heavy, and random. +// Task: basic functionality: insert, insert_erase, lookup, lookup_fail, iter +#![feature(test)] + +extern crate test; + +use test::{black_box, Bencher}; + +use hashbrown::hash_map::DefaultHashBuilder; +use hashbrown::{HashMap, HashSet}; +use std::{ + collections::hash_map::RandomState, + sync::atomic::{self, AtomicUsize}, +}; + +const SIZE: usize = 1000; + +// The default hashmap when using this crate directly. +type AHashMap = HashMap; +// This uses the hashmap from this crate with the default hasher of the stdlib. +type StdHashMap = HashMap; + +// A random key iterator. +#[derive(Clone, Copy)] +struct RandomKeys { + state: usize, +} + +impl RandomKeys { + fn new() -> Self { + RandomKeys { state: 0 } + } +} + +impl Iterator for RandomKeys { + type Item = usize; + fn next(&mut self) -> Option { + // Add 1 then multiply by some 32 bit prime. + self.state = self.state.wrapping_add(1).wrapping_mul(3_787_392_781); + Some(self.state) + } +} + +// Just an arbitrary side effect to make the maps not shortcircuit to the non-dropping path +// when dropping maps/entries (most real world usages likely have drop in the key or value) +lazy_static::lazy_static! { + static ref SIDE_EFFECT: AtomicUsize = AtomicUsize::new(0); +} + +#[derive(Clone)] +struct DropType(usize); +impl Drop for DropType { + fn drop(&mut self) { + SIDE_EFFECT.fetch_add(self.0, atomic::Ordering::SeqCst); + } +} + +macro_rules! bench_suite { + ($bench_macro:ident, $bench_ahash_serial:ident, $bench_std_serial:ident, + $bench_ahash_highbits:ident, $bench_std_highbits:ident, + $bench_ahash_random:ident, $bench_std_random:ident) => { + $bench_macro!($bench_ahash_serial, AHashMap, 0..); + $bench_macro!($bench_std_serial, StdHashMap, 0..); + $bench_macro!( + $bench_ahash_highbits, + AHashMap, + (0..).map(usize::swap_bytes) + ); + $bench_macro!( + $bench_std_highbits, + StdHashMap, + (0..).map(usize::swap_bytes) + ); + $bench_macro!($bench_ahash_random, AHashMap, RandomKeys::new()); + $bench_macro!($bench_std_random, StdHashMap, RandomKeys::new()); + }; +} + +macro_rules! bench_insert { + ($name:ident, $maptype:ident, $keydist:expr) => { + #[bench] + fn $name(b: &mut Bencher) { + let mut m = $maptype::with_capacity_and_hasher(SIZE, Default::default()); + b.iter(|| { + m.clear(); + for i in ($keydist).take(SIZE) { + m.insert(i, (DropType(i), [i; 20])); + } + black_box(&mut m); + }); + eprintln!("{}", SIDE_EFFECT.load(atomic::Ordering::SeqCst)); + } + }; +} + +bench_suite!( + bench_insert, + insert_ahash_serial, + insert_std_serial, + insert_ahash_highbits, + insert_std_highbits, + insert_ahash_random, + insert_std_random +); + +macro_rules! bench_grow_insert { + ($name:ident, $maptype:ident, $keydist:expr) => { + #[bench] + fn $name(b: &mut Bencher) { + b.iter(|| { + let mut m = $maptype::default(); + for i in ($keydist).take(SIZE) { + m.insert(i, DropType(i)); + } + black_box(&mut m); + }) + } + }; +} + +bench_suite!( + bench_grow_insert, + grow_insert_ahash_serial, + grow_insert_std_serial, + grow_insert_ahash_highbits, + grow_insert_std_highbits, + grow_insert_ahash_random, + grow_insert_std_random +); + +macro_rules! bench_insert_erase { + ($name:ident, $maptype:ident, $keydist:expr) => { + #[bench] + fn $name(b: &mut Bencher) { + let mut base = $maptype::default(); + for i in ($keydist).take(SIZE) { + base.insert(i, DropType(i)); + } + let skip = $keydist.skip(SIZE); + b.iter(|| { + let mut m = base.clone(); + let mut add_iter = skip.clone(); + let mut remove_iter = $keydist; + // While keeping the size constant, + // replace the first keydist with the second. + for (add, remove) in (&mut add_iter).zip(&mut remove_iter).take(SIZE) { + m.insert(add, DropType(add)); + black_box(m.remove(&remove)); + } + black_box(m); + }); + eprintln!("{}", SIDE_EFFECT.load(atomic::Ordering::SeqCst)); + } + }; +} + +bench_suite!( + bench_insert_erase, + insert_erase_ahash_serial, + insert_erase_std_serial, + insert_erase_ahash_highbits, + insert_erase_std_highbits, + insert_erase_ahash_random, + insert_erase_std_random +); + +macro_rules! bench_lookup { + ($name:ident, $maptype:ident, $keydist:expr) => { + #[bench] + fn $name(b: &mut Bencher) { + let mut m = $maptype::default(); + for i in $keydist.take(SIZE) { + m.insert(i, DropType(i)); + } + + b.iter(|| { + for i in $keydist.take(SIZE) { + black_box(m.get(&i)); + } + }); + eprintln!("{}", SIDE_EFFECT.load(atomic::Ordering::SeqCst)); + } + }; +} + +bench_suite!( + bench_lookup, + lookup_ahash_serial, + lookup_std_serial, + lookup_ahash_highbits, + lookup_std_highbits, + lookup_ahash_random, + lookup_std_random +); + +macro_rules! bench_lookup_fail { + ($name:ident, $maptype:ident, $keydist:expr) => { + #[bench] + fn $name(b: &mut Bencher) { + let mut m = $maptype::default(); + let mut iter = $keydist; + for i in (&mut iter).take(SIZE) { + m.insert(i, DropType(i)); + } + + b.iter(|| { + for i in (&mut iter).take(SIZE) { + black_box(m.get(&i)); + } + }) + } + }; +} + +bench_suite!( + bench_lookup_fail, + lookup_fail_ahash_serial, + lookup_fail_std_serial, + lookup_fail_ahash_highbits, + lookup_fail_std_highbits, + lookup_fail_ahash_random, + lookup_fail_std_random +); + +macro_rules! bench_iter { + ($name:ident, $maptype:ident, $keydist:expr) => { + #[bench] + fn $name(b: &mut Bencher) { + let mut m = $maptype::default(); + for i in ($keydist).take(SIZE) { + m.insert(i, DropType(i)); + } + + b.iter(|| { + for i in &m { + black_box(i); + } + }) + } + }; +} + +bench_suite!( + bench_iter, + iter_ahash_serial, + iter_std_serial, + iter_ahash_highbits, + iter_std_highbits, + iter_ahash_random, + iter_std_random +); + +#[bench] +fn clone_small(b: &mut Bencher) { + let mut m = HashMap::new(); + for i in 0..10 { + m.insert(i, DropType(i)); + } + + b.iter(|| { + black_box(m.clone()); + }) +} + +#[bench] +fn clone_from_small(b: &mut Bencher) { + let mut m = HashMap::new(); + let mut m2 = HashMap::new(); + for i in 0..10 { + m.insert(i, DropType(i)); + } + + b.iter(|| { + m2.clone_from(&m); + black_box(&mut m2); + }) +} + +#[bench] +fn clone_large(b: &mut Bencher) { + let mut m = HashMap::new(); + for i in 0..1000 { + m.insert(i, DropType(i)); + } + + b.iter(|| { + black_box(m.clone()); + }) +} + +#[bench] +fn clone_from_large(b: &mut Bencher) { + let mut m = HashMap::new(); + let mut m2 = HashMap::new(); + for i in 0..1000 { + m.insert(i, DropType(i)); + } + + b.iter(|| { + m2.clone_from(&m); + black_box(&mut m2); + }) +} + +#[bench] +fn rehash_in_place(b: &mut Bencher) { + b.iter(|| { + let mut set = HashSet::new(); + + // Each loop triggers one rehash + for _ in 0..10 { + for i in 0..223 { + set.insert(i); + } + + assert_eq!( + set.capacity(), + 224, + "The set must be at or close to capacity to trigger a re hashing" + ); + + for i in 100..1400 { + set.remove(&(i - 100)); + set.insert(i); + } + set.clear(); + } + }); +} diff --git a/src/rust/vendor/hashbrown/benches/insert_unique_unchecked.rs b/src/rust/vendor/hashbrown/benches/insert_unique_unchecked.rs new file mode 100644 index 000000000..857ad18e5 --- /dev/null +++ b/src/rust/vendor/hashbrown/benches/insert_unique_unchecked.rs @@ -0,0 +1,32 @@ +//! Compare `insert` and `insert_unique_unchecked` operations performance. + +#![feature(test)] + +extern crate test; + +use hashbrown::HashMap; +use test::Bencher; + +#[bench] +fn insert(b: &mut Bencher) { + let keys: Vec = (0..1000).map(|i| format!("xxxx{}yyyy", i)).collect(); + b.iter(|| { + let mut m = HashMap::with_capacity(1000); + for k in &keys { + m.insert(k, k); + } + m + }); +} + +#[bench] +fn insert_unique_unchecked(b: &mut Bencher) { + let keys: Vec = (0..1000).map(|i| format!("xxxx{}yyyy", i)).collect(); + b.iter(|| { + let mut m = HashMap::with_capacity(1000); + for k in &keys { + m.insert_unique_unchecked(k, k); + } + m + }); +} diff --git a/src/rust/vendor/hashbrown/clippy.toml b/src/rust/vendor/hashbrown/clippy.toml new file mode 100644 index 000000000..d98bf2c09 --- /dev/null +++ b/src/rust/vendor/hashbrown/clippy.toml @@ -0,0 +1 @@ +doc-valid-idents = [ "CppCon", "SwissTable", "SipHash", "HashDoS" ] diff --git a/src/rust/vendor/hashbrown/src/external_trait_impls/mod.rs b/src/rust/vendor/hashbrown/src/external_trait_impls/mod.rs new file mode 100644 index 000000000..01d386b04 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/external_trait_impls/mod.rs @@ -0,0 +1,6 @@ +#[cfg(feature = "rayon")] +pub(crate) mod rayon; +#[cfg(feature = "rkyv")] +mod rkyv; +#[cfg(feature = "serde")] +mod serde; diff --git a/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/helpers.rs b/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/helpers.rs new file mode 100644 index 000000000..070b08cd5 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/helpers.rs @@ -0,0 +1,27 @@ +use alloc::collections::LinkedList; +use alloc::vec::Vec; + +use rayon::iter::{IntoParallelIterator, ParallelIterator}; + +/// Helper for collecting parallel iterators to an intermediary +#[allow(clippy::linkedlist)] // yes, we need linked list here for efficient appending! +pub(super) fn collect(iter: I) -> (LinkedList>, usize) { + let list = iter + .into_par_iter() + .fold(Vec::new, |mut vec, elem| { + vec.push(elem); + vec + }) + .map(|vec| { + let mut list = LinkedList::new(); + list.push_back(vec); + list + }) + .reduce(LinkedList::new, |mut list1, mut list2| { + list1.append(&mut list2); + list1 + }); + + let len = list.iter().map(Vec::len).sum(); + (list, len) +} diff --git a/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/map.rs b/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/map.rs new file mode 100644 index 000000000..2534dc9b2 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/map.rs @@ -0,0 +1,721 @@ +//! Rayon extensions for `HashMap`. + +use super::raw::{RawIntoParIter, RawParDrain, RawParIter}; +use crate::hash_map::HashMap; +use crate::raw::{Allocator, Global}; +use core::fmt; +use core::hash::{BuildHasher, Hash}; +use core::marker::PhantomData; +use rayon::iter::plumbing::UnindexedConsumer; +use rayon::iter::{FromParallelIterator, IntoParallelIterator, ParallelExtend, ParallelIterator}; + +/// Parallel iterator over shared references to entries in a map. +/// +/// This iterator is created by the [`par_iter`] method on [`HashMap`] +/// (provided by the [`IntoParallelRefIterator`] trait). +/// See its documentation for more. +/// +/// [`par_iter`]: /hashbrown/struct.HashMap.html#method.par_iter +/// [`HashMap`]: /hashbrown/struct.HashMap.html +/// [`IntoParallelRefIterator`]: https://docs.rs/rayon/1.0/rayon/iter/trait.IntoParallelRefIterator.html +pub struct ParIter<'a, K, V> { + inner: RawParIter<(K, V)>, + marker: PhantomData<(&'a K, &'a V)>, +} + +impl<'a, K: Sync, V: Sync> ParallelIterator for ParIter<'a, K, V> { + type Item = (&'a K, &'a V); + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner + .map(|x| unsafe { + let r = x.as_ref(); + (&r.0, &r.1) + }) + .drive_unindexed(consumer) + } +} + +impl Clone for ParIter<'_, K, V> { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Self { + inner: self.inner.clone(), + marker: PhantomData, + } + } +} + +impl fmt::Debug for ParIter<'_, K, V> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let iter = unsafe { self.inner.iter() }.map(|x| unsafe { + let r = x.as_ref(); + (&r.0, &r.1) + }); + f.debug_list().entries(iter).finish() + } +} + +/// Parallel iterator over shared references to keys in a map. +/// +/// This iterator is created by the [`par_keys`] method on [`HashMap`]. +/// See its documentation for more. +/// +/// [`par_keys`]: /hashbrown/struct.HashMap.html#method.par_keys +/// [`HashMap`]: /hashbrown/struct.HashMap.html +pub struct ParKeys<'a, K, V> { + inner: RawParIter<(K, V)>, + marker: PhantomData<(&'a K, &'a V)>, +} + +impl<'a, K: Sync, V: Sync> ParallelIterator for ParKeys<'a, K, V> { + type Item = &'a K; + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner + .map(|x| unsafe { &x.as_ref().0 }) + .drive_unindexed(consumer) + } +} + +impl Clone for ParKeys<'_, K, V> { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Self { + inner: self.inner.clone(), + marker: PhantomData, + } + } +} + +impl fmt::Debug for ParKeys<'_, K, V> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let iter = unsafe { self.inner.iter() }.map(|x| unsafe { &x.as_ref().0 }); + f.debug_list().entries(iter).finish() + } +} + +/// Parallel iterator over shared references to values in a map. +/// +/// This iterator is created by the [`par_values`] method on [`HashMap`]. +/// See its documentation for more. +/// +/// [`par_values`]: /hashbrown/struct.HashMap.html#method.par_values +/// [`HashMap`]: /hashbrown/struct.HashMap.html +pub struct ParValues<'a, K, V> { + inner: RawParIter<(K, V)>, + marker: PhantomData<(&'a K, &'a V)>, +} + +impl<'a, K: Sync, V: Sync> ParallelIterator for ParValues<'a, K, V> { + type Item = &'a V; + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner + .map(|x| unsafe { &x.as_ref().1 }) + .drive_unindexed(consumer) + } +} + +impl Clone for ParValues<'_, K, V> { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Self { + inner: self.inner.clone(), + marker: PhantomData, + } + } +} + +impl fmt::Debug for ParValues<'_, K, V> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let iter = unsafe { self.inner.iter() }.map(|x| unsafe { &x.as_ref().1 }); + f.debug_list().entries(iter).finish() + } +} + +/// Parallel iterator over mutable references to entries in a map. +/// +/// This iterator is created by the [`par_iter_mut`] method on [`HashMap`] +/// (provided by the [`IntoParallelRefMutIterator`] trait). +/// See its documentation for more. +/// +/// [`par_iter_mut`]: /hashbrown/struct.HashMap.html#method.par_iter_mut +/// [`HashMap`]: /hashbrown/struct.HashMap.html +/// [`IntoParallelRefMutIterator`]: https://docs.rs/rayon/1.0/rayon/iter/trait.IntoParallelRefMutIterator.html +pub struct ParIterMut<'a, K, V> { + inner: RawParIter<(K, V)>, + marker: PhantomData<(&'a K, &'a mut V)>, +} + +impl<'a, K: Sync, V: Send> ParallelIterator for ParIterMut<'a, K, V> { + type Item = (&'a K, &'a mut V); + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner + .map(|x| unsafe { + let r = x.as_mut(); + (&r.0, &mut r.1) + }) + .drive_unindexed(consumer) + } +} + +impl fmt::Debug for ParIterMut<'_, K, V> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + ParIter { + inner: self.inner.clone(), + marker: PhantomData, + } + .fmt(f) + } +} + +/// Parallel iterator over mutable references to values in a map. +/// +/// This iterator is created by the [`par_values_mut`] method on [`HashMap`]. +/// See its documentation for more. +/// +/// [`par_values_mut`]: /hashbrown/struct.HashMap.html#method.par_values_mut +/// [`HashMap`]: /hashbrown/struct.HashMap.html +pub struct ParValuesMut<'a, K, V> { + inner: RawParIter<(K, V)>, + marker: PhantomData<(&'a K, &'a mut V)>, +} + +impl<'a, K: Sync, V: Send> ParallelIterator for ParValuesMut<'a, K, V> { + type Item = &'a mut V; + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner + .map(|x| unsafe { &mut x.as_mut().1 }) + .drive_unindexed(consumer) + } +} + +impl fmt::Debug for ParValuesMut<'_, K, V> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + ParValues { + inner: self.inner.clone(), + marker: PhantomData, + } + .fmt(f) + } +} + +/// Parallel iterator over entries of a consumed map. +/// +/// This iterator is created by the [`into_par_iter`] method on [`HashMap`] +/// (provided by the [`IntoParallelIterator`] trait). +/// See its documentation for more. +/// +/// [`into_par_iter`]: /hashbrown/struct.HashMap.html#method.into_par_iter +/// [`HashMap`]: /hashbrown/struct.HashMap.html +/// [`IntoParallelIterator`]: https://docs.rs/rayon/1.0/rayon/iter/trait.IntoParallelIterator.html +pub struct IntoParIter { + inner: RawIntoParIter<(K, V), A>, +} + +impl ParallelIterator for IntoParIter { + type Item = (K, V); + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner.drive_unindexed(consumer) + } +} + +impl fmt::Debug for IntoParIter { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + ParIter { + inner: unsafe { self.inner.par_iter() }, + marker: PhantomData, + } + .fmt(f) + } +} + +/// Parallel draining iterator over entries of a map. +/// +/// This iterator is created by the [`par_drain`] method on [`HashMap`]. +/// See its documentation for more. +/// +/// [`par_drain`]: /hashbrown/struct.HashMap.html#method.par_drain +/// [`HashMap`]: /hashbrown/struct.HashMap.html +pub struct ParDrain<'a, K, V, A: Allocator = Global> { + inner: RawParDrain<'a, (K, V), A>, +} + +impl ParallelIterator for ParDrain<'_, K, V, A> { + type Item = (K, V); + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner.drive_unindexed(consumer) + } +} + +impl fmt::Debug for ParDrain<'_, K, V, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + ParIter { + inner: unsafe { self.inner.par_iter() }, + marker: PhantomData, + } + .fmt(f) + } +} + +impl HashMap { + /// Visits (potentially in parallel) immutably borrowed keys in an arbitrary order. + #[cfg_attr(feature = "inline-more", inline)] + pub fn par_keys(&self) -> ParKeys<'_, K, V> { + ParKeys { + inner: unsafe { self.table.par_iter() }, + marker: PhantomData, + } + } + + /// Visits (potentially in parallel) immutably borrowed values in an arbitrary order. + #[cfg_attr(feature = "inline-more", inline)] + pub fn par_values(&self) -> ParValues<'_, K, V> { + ParValues { + inner: unsafe { self.table.par_iter() }, + marker: PhantomData, + } + } +} + +impl HashMap { + /// Visits (potentially in parallel) mutably borrowed values in an arbitrary order. + #[cfg_attr(feature = "inline-more", inline)] + pub fn par_values_mut(&mut self) -> ParValuesMut<'_, K, V> { + ParValuesMut { + inner: unsafe { self.table.par_iter() }, + marker: PhantomData, + } + } + + /// Consumes (potentially in parallel) all values in an arbitrary order, + /// while preserving the map's allocated memory for reuse. + #[cfg_attr(feature = "inline-more", inline)] + pub fn par_drain(&mut self) -> ParDrain<'_, K, V, A> { + ParDrain { + inner: self.table.par_drain(), + } + } +} + +impl HashMap +where + K: Eq + Hash + Sync, + V: PartialEq + Sync, + S: BuildHasher + Sync, + A: Allocator + Sync, +{ + /// Returns `true` if the map is equal to another, + /// i.e. both maps contain the same keys mapped to the same values. + /// + /// This method runs in a potentially parallel fashion. + pub fn par_eq(&self, other: &Self) -> bool { + self.len() == other.len() + && self + .into_par_iter() + .all(|(key, value)| other.get(key).map_or(false, |v| *value == *v)) + } +} + +impl IntoParallelIterator for HashMap { + type Item = (K, V); + type Iter = IntoParIter; + + #[cfg_attr(feature = "inline-more", inline)] + fn into_par_iter(self) -> Self::Iter { + IntoParIter { + inner: self.table.into_par_iter(), + } + } +} + +impl<'a, K: Sync, V: Sync, S, A: Allocator> IntoParallelIterator for &'a HashMap { + type Item = (&'a K, &'a V); + type Iter = ParIter<'a, K, V>; + + #[cfg_attr(feature = "inline-more", inline)] + fn into_par_iter(self) -> Self::Iter { + ParIter { + inner: unsafe { self.table.par_iter() }, + marker: PhantomData, + } + } +} + +impl<'a, K: Sync, V: Send, S, A: Allocator> IntoParallelIterator for &'a mut HashMap { + type Item = (&'a K, &'a mut V); + type Iter = ParIterMut<'a, K, V>; + + #[cfg_attr(feature = "inline-more", inline)] + fn into_par_iter(self) -> Self::Iter { + ParIterMut { + inner: unsafe { self.table.par_iter() }, + marker: PhantomData, + } + } +} + +/// Collect (key, value) pairs from a parallel iterator into a +/// hashmap. If multiple pairs correspond to the same key, then the +/// ones produced earlier in the parallel iterator will be +/// overwritten, just as with a sequential iterator. +impl FromParallelIterator<(K, V)> for HashMap +where + K: Eq + Hash + Send, + V: Send, + S: BuildHasher + Default, +{ + fn from_par_iter

(par_iter: P) -> Self + where + P: IntoParallelIterator, + { + let mut map = HashMap::default(); + map.par_extend(par_iter); + map + } +} + +/// Extend a hash map with items from a parallel iterator. +impl ParallelExtend<(K, V)> for HashMap +where + K: Eq + Hash + Send, + V: Send, + S: BuildHasher, + A: Allocator, +{ + fn par_extend(&mut self, par_iter: I) + where + I: IntoParallelIterator, + { + extend(self, par_iter); + } +} + +/// Extend a hash map with copied items from a parallel iterator. +impl<'a, K, V, S, A> ParallelExtend<(&'a K, &'a V)> for HashMap +where + K: Copy + Eq + Hash + Sync, + V: Copy + Sync, + S: BuildHasher, + A: Allocator, +{ + fn par_extend(&mut self, par_iter: I) + where + I: IntoParallelIterator, + { + extend(self, par_iter); + } +} + +// This is equal to the normal `HashMap` -- no custom advantage. +fn extend(map: &mut HashMap, par_iter: I) +where + K: Eq + Hash, + S: BuildHasher, + I: IntoParallelIterator, + A: Allocator, + HashMap: Extend, +{ + let (list, len) = super::helpers::collect(par_iter); + + // Keys may be already present or show multiple times in the iterator. + // Reserve the entire length if the map is empty. + // Otherwise reserve half the length (rounded up), so the map + // will only resize twice in the worst case. + let reserve = if map.is_empty() { len } else { (len + 1) / 2 }; + map.reserve(reserve); + for vec in list { + map.extend(vec); + } +} + +#[cfg(test)] +mod test_par_map { + use alloc::vec::Vec; + use core::hash::{Hash, Hasher}; + use core::sync::atomic::{AtomicUsize, Ordering}; + + use rayon::prelude::*; + + use crate::hash_map::HashMap; + + struct Dropable<'a> { + k: usize, + counter: &'a AtomicUsize, + } + + impl Dropable<'_> { + fn new(k: usize, counter: &AtomicUsize) -> Dropable<'_> { + counter.fetch_add(1, Ordering::Relaxed); + + Dropable { k, counter } + } + } + + impl Drop for Dropable<'_> { + fn drop(&mut self) { + self.counter.fetch_sub(1, Ordering::Relaxed); + } + } + + impl Clone for Dropable<'_> { + fn clone(&self) -> Self { + Dropable::new(self.k, self.counter) + } + } + + impl Hash for Dropable<'_> { + fn hash(&self, state: &mut H) + where + H: Hasher, + { + self.k.hash(state); + } + } + + impl PartialEq for Dropable<'_> { + fn eq(&self, other: &Self) -> bool { + self.k == other.k + } + } + + impl Eq for Dropable<'_> {} + + #[test] + fn test_into_iter_drops() { + let key = AtomicUsize::new(0); + let value = AtomicUsize::new(0); + + let hm = { + let mut hm = HashMap::new(); + + assert_eq!(key.load(Ordering::Relaxed), 0); + assert_eq!(value.load(Ordering::Relaxed), 0); + + for i in 0..100 { + let d1 = Dropable::new(i, &key); + let d2 = Dropable::new(i + 100, &value); + hm.insert(d1, d2); + } + + assert_eq!(key.load(Ordering::Relaxed), 100); + assert_eq!(value.load(Ordering::Relaxed), 100); + + hm + }; + + // By the way, ensure that cloning doesn't screw up the dropping. + drop(hm.clone()); + + assert_eq!(key.load(Ordering::Relaxed), 100); + assert_eq!(value.load(Ordering::Relaxed), 100); + + // Ensure that dropping the iterator does not leak anything. + drop(hm.clone().into_par_iter()); + + { + assert_eq!(key.load(Ordering::Relaxed), 100); + assert_eq!(value.load(Ordering::Relaxed), 100); + + // retain only half + let _v: Vec<_> = hm.into_par_iter().filter(|(key, _)| key.k < 50).collect(); + + assert_eq!(key.load(Ordering::Relaxed), 50); + assert_eq!(value.load(Ordering::Relaxed), 50); + }; + + assert_eq!(key.load(Ordering::Relaxed), 0); + assert_eq!(value.load(Ordering::Relaxed), 0); + } + + #[test] + fn test_drain_drops() { + let key = AtomicUsize::new(0); + let value = AtomicUsize::new(0); + + let mut hm = { + let mut hm = HashMap::new(); + + assert_eq!(key.load(Ordering::Relaxed), 0); + assert_eq!(value.load(Ordering::Relaxed), 0); + + for i in 0..100 { + let d1 = Dropable::new(i, &key); + let d2 = Dropable::new(i + 100, &value); + hm.insert(d1, d2); + } + + assert_eq!(key.load(Ordering::Relaxed), 100); + assert_eq!(value.load(Ordering::Relaxed), 100); + + hm + }; + + // By the way, ensure that cloning doesn't screw up the dropping. + drop(hm.clone()); + + assert_eq!(key.load(Ordering::Relaxed), 100); + assert_eq!(value.load(Ordering::Relaxed), 100); + + // Ensure that dropping the drain iterator does not leak anything. + drop(hm.clone().par_drain()); + + { + assert_eq!(key.load(Ordering::Relaxed), 100); + assert_eq!(value.load(Ordering::Relaxed), 100); + + // retain only half + let _v: Vec<_> = hm.drain().filter(|(key, _)| key.k < 50).collect(); + assert!(hm.is_empty()); + + assert_eq!(key.load(Ordering::Relaxed), 50); + assert_eq!(value.load(Ordering::Relaxed), 50); + }; + + assert_eq!(key.load(Ordering::Relaxed), 0); + assert_eq!(value.load(Ordering::Relaxed), 0); + } + + #[test] + fn test_empty_iter() { + let mut m: HashMap = HashMap::new(); + assert_eq!(m.par_drain().count(), 0); + assert_eq!(m.par_keys().count(), 0); + assert_eq!(m.par_values().count(), 0); + assert_eq!(m.par_values_mut().count(), 0); + assert_eq!(m.par_iter().count(), 0); + assert_eq!(m.par_iter_mut().count(), 0); + assert_eq!(m.len(), 0); + assert!(m.is_empty()); + assert_eq!(m.into_par_iter().count(), 0); + } + + #[test] + fn test_iterate() { + let mut m = HashMap::with_capacity(4); + for i in 0..32 { + assert!(m.insert(i, i * 2).is_none()); + } + assert_eq!(m.len(), 32); + + let observed = AtomicUsize::new(0); + + m.par_iter().for_each(|(k, v)| { + assert_eq!(*v, *k * 2); + observed.fetch_or(1 << *k, Ordering::Relaxed); + }); + assert_eq!(observed.into_inner(), 0xFFFF_FFFF); + } + + #[test] + fn test_keys() { + let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')]; + let map: HashMap<_, _> = vec.into_par_iter().collect(); + let keys: Vec<_> = map.par_keys().cloned().collect(); + assert_eq!(keys.len(), 3); + assert!(keys.contains(&1)); + assert!(keys.contains(&2)); + assert!(keys.contains(&3)); + } + + #[test] + fn test_values() { + let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')]; + let map: HashMap<_, _> = vec.into_par_iter().collect(); + let values: Vec<_> = map.par_values().cloned().collect(); + assert_eq!(values.len(), 3); + assert!(values.contains(&'a')); + assert!(values.contains(&'b')); + assert!(values.contains(&'c')); + } + + #[test] + fn test_values_mut() { + let vec = vec![(1, 1), (2, 2), (3, 3)]; + let mut map: HashMap<_, _> = vec.into_par_iter().collect(); + map.par_values_mut().for_each(|value| *value *= 2); + let values: Vec<_> = map.par_values().cloned().collect(); + assert_eq!(values.len(), 3); + assert!(values.contains(&2)); + assert!(values.contains(&4)); + assert!(values.contains(&6)); + } + + #[test] + fn test_eq() { + let mut m1 = HashMap::new(); + m1.insert(1, 2); + m1.insert(2, 3); + m1.insert(3, 4); + + let mut m2 = HashMap::new(); + m2.insert(1, 2); + m2.insert(2, 3); + + assert!(!m1.par_eq(&m2)); + + m2.insert(3, 4); + + assert!(m1.par_eq(&m2)); + } + + #[test] + fn test_from_iter() { + let xs = [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]; + + let map: HashMap<_, _> = xs.par_iter().cloned().collect(); + + for &(k, v) in &xs { + assert_eq!(map.get(&k), Some(&v)); + } + } + + #[test] + fn test_extend_ref() { + let mut a = HashMap::new(); + a.insert(1, "one"); + let mut b = HashMap::new(); + b.insert(2, "two"); + b.insert(3, "three"); + + a.par_extend(&b); + + assert_eq!(a.len(), 3); + assert_eq!(a[&1], "one"); + assert_eq!(a[&2], "two"); + assert_eq!(a[&3], "three"); + } +} diff --git a/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/mod.rs b/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/mod.rs new file mode 100644 index 000000000..61ca69b61 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/mod.rs @@ -0,0 +1,5 @@ +mod helpers; +pub(crate) mod map; +pub(crate) mod raw; +pub(crate) mod set; +pub(crate) mod table; diff --git a/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/raw.rs b/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/raw.rs new file mode 100644 index 000000000..612be47a5 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/raw.rs @@ -0,0 +1,230 @@ +use crate::raw::Bucket; +use crate::raw::{Allocator, Global, RawIter, RawIterRange, RawTable}; +use crate::scopeguard::guard; +use core::marker::PhantomData; +use core::mem; +use core::ptr::NonNull; +use rayon::iter::{ + plumbing::{self, Folder, UnindexedConsumer, UnindexedProducer}, + ParallelIterator, +}; + +/// Parallel iterator which returns a raw pointer to every full bucket in the table. +pub struct RawParIter { + iter: RawIterRange, +} + +impl RawParIter { + #[cfg_attr(feature = "inline-more", inline)] + pub(super) unsafe fn iter(&self) -> RawIterRange { + self.iter.clone() + } +} + +impl Clone for RawParIter { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Self { + iter: self.iter.clone(), + } + } +} + +impl From> for RawParIter { + fn from(it: RawIter) -> Self { + RawParIter { iter: it.iter } + } +} + +impl ParallelIterator for RawParIter { + type Item = Bucket; + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + let producer = ParIterProducer { iter: self.iter }; + plumbing::bridge_unindexed(producer, consumer) + } +} + +/// Producer which returns a `Bucket` for every element. +struct ParIterProducer { + iter: RawIterRange, +} + +impl UnindexedProducer for ParIterProducer { + type Item = Bucket; + + #[cfg_attr(feature = "inline-more", inline)] + fn split(self) -> (Self, Option) { + let (left, right) = self.iter.split(); + let left = ParIterProducer { iter: left }; + let right = right.map(|right| ParIterProducer { iter: right }); + (left, right) + } + + #[cfg_attr(feature = "inline-more", inline)] + fn fold_with(self, folder: F) -> F + where + F: Folder, + { + folder.consume_iter(self.iter) + } +} + +/// Parallel iterator which consumes a table and returns elements. +pub struct RawIntoParIter { + table: RawTable, +} + +impl RawIntoParIter { + #[cfg_attr(feature = "inline-more", inline)] + pub(super) unsafe fn par_iter(&self) -> RawParIter { + self.table.par_iter() + } +} + +impl ParallelIterator for RawIntoParIter { + type Item = T; + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + let iter = unsafe { self.table.iter().iter }; + let _guard = guard(self.table.into_allocation(), |alloc| { + if let Some((ptr, layout, ref alloc)) = *alloc { + unsafe { + alloc.deallocate(ptr, layout); + } + } + }); + let producer = ParDrainProducer { iter }; + plumbing::bridge_unindexed(producer, consumer) + } +} + +/// Parallel iterator which consumes elements without freeing the table storage. +pub struct RawParDrain<'a, T, A: Allocator = Global> { + // We don't use a &'a mut RawTable because we want RawParDrain to be + // covariant over T. + table: NonNull>, + marker: PhantomData<&'a RawTable>, +} + +unsafe impl Send for RawParDrain<'_, T, A> {} + +impl RawParDrain<'_, T, A> { + #[cfg_attr(feature = "inline-more", inline)] + pub(super) unsafe fn par_iter(&self) -> RawParIter { + self.table.as_ref().par_iter() + } +} + +impl ParallelIterator for RawParDrain<'_, T, A> { + type Item = T; + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + let _guard = guard(self.table, |table| unsafe { + table.as_mut().clear_no_drop(); + }); + let iter = unsafe { self.table.as_ref().iter().iter }; + mem::forget(self); + let producer = ParDrainProducer { iter }; + plumbing::bridge_unindexed(producer, consumer) + } +} + +impl Drop for RawParDrain<'_, T, A> { + fn drop(&mut self) { + // If drive_unindexed is not called then simply clear the table. + unsafe { + self.table.as_mut().clear(); + } + } +} + +/// Producer which will consume all elements in the range, even if it is dropped +/// halfway through. +struct ParDrainProducer { + iter: RawIterRange, +} + +impl UnindexedProducer for ParDrainProducer { + type Item = T; + + #[cfg_attr(feature = "inline-more", inline)] + fn split(self) -> (Self, Option) { + let (left, right) = self.iter.clone().split(); + mem::forget(self); + let left = ParDrainProducer { iter: left }; + let right = right.map(|right| ParDrainProducer { iter: right }); + (left, right) + } + + #[cfg_attr(feature = "inline-more", inline)] + fn fold_with(mut self, mut folder: F) -> F + where + F: Folder, + { + // Make sure to modify the iterator in-place so that any remaining + // elements are processed in our Drop impl. + for item in &mut self.iter { + folder = folder.consume(unsafe { item.read() }); + if folder.full() { + return folder; + } + } + + // If we processed all elements then we don't need to run the drop. + mem::forget(self); + folder + } +} + +impl Drop for ParDrainProducer { + #[cfg_attr(feature = "inline-more", inline)] + fn drop(&mut self) { + // Drop all remaining elements + if mem::needs_drop::() { + for item in &mut self.iter { + unsafe { + item.drop(); + } + } + } + } +} + +impl RawTable { + /// Returns a parallel iterator over the elements in a `RawTable`. + #[cfg_attr(feature = "inline-more", inline)] + pub unsafe fn par_iter(&self) -> RawParIter { + RawParIter { + iter: self.iter().iter, + } + } + + /// Returns a parallel iterator over the elements in a `RawTable`. + #[cfg_attr(feature = "inline-more", inline)] + pub fn into_par_iter(self) -> RawIntoParIter { + RawIntoParIter { table: self } + } + + /// Returns a parallel iterator which consumes all elements of a `RawTable` + /// without freeing its memory allocation. + #[cfg_attr(feature = "inline-more", inline)] + pub fn par_drain(&mut self) -> RawParDrain<'_, T, A> { + RawParDrain { + table: NonNull::from(self), + marker: PhantomData, + } + } +} diff --git a/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/set.rs b/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/set.rs new file mode 100644 index 000000000..3de98fccb --- /dev/null +++ b/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/set.rs @@ -0,0 +1,659 @@ +//! Rayon extensions for `HashSet`. + +use super::map; +use crate::hash_set::HashSet; +use crate::raw::{Allocator, Global}; +use core::hash::{BuildHasher, Hash}; +use rayon::iter::plumbing::UnindexedConsumer; +use rayon::iter::{FromParallelIterator, IntoParallelIterator, ParallelExtend, ParallelIterator}; + +/// Parallel iterator over elements of a consumed set. +/// +/// This iterator is created by the [`into_par_iter`] method on [`HashSet`] +/// (provided by the [`IntoParallelIterator`] trait). +/// See its documentation for more. +/// +/// [`into_par_iter`]: /hashbrown/struct.HashSet.html#method.into_par_iter +/// [`HashSet`]: /hashbrown/struct.HashSet.html +/// [`IntoParallelIterator`]: https://docs.rs/rayon/1.0/rayon/iter/trait.IntoParallelIterator.html +pub struct IntoParIter { + inner: map::IntoParIter, +} + +impl ParallelIterator for IntoParIter { + type Item = T; + + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner.map(|(k, _)| k).drive_unindexed(consumer) + } +} + +/// Parallel draining iterator over entries of a set. +/// +/// This iterator is created by the [`par_drain`] method on [`HashSet`]. +/// See its documentation for more. +/// +/// [`par_drain`]: /hashbrown/struct.HashSet.html#method.par_drain +/// [`HashSet`]: /hashbrown/struct.HashSet.html +pub struct ParDrain<'a, T, A: Allocator = Global> { + inner: map::ParDrain<'a, T, (), A>, +} + +impl ParallelIterator for ParDrain<'_, T, A> { + type Item = T; + + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner.map(|(k, _)| k).drive_unindexed(consumer) + } +} + +/// Parallel iterator over shared references to elements in a set. +/// +/// This iterator is created by the [`par_iter`] method on [`HashSet`] +/// (provided by the [`IntoParallelRefIterator`] trait). +/// See its documentation for more. +/// +/// [`par_iter`]: /hashbrown/struct.HashSet.html#method.par_iter +/// [`HashSet`]: /hashbrown/struct.HashSet.html +/// [`IntoParallelRefIterator`]: https://docs.rs/rayon/1.0/rayon/iter/trait.IntoParallelRefIterator.html +pub struct ParIter<'a, T> { + inner: map::ParKeys<'a, T, ()>, +} + +impl<'a, T: Sync> ParallelIterator for ParIter<'a, T> { + type Item = &'a T; + + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner.drive_unindexed(consumer) + } +} + +/// Parallel iterator over shared references to elements in the difference of +/// sets. +/// +/// This iterator is created by the [`par_difference`] method on [`HashSet`]. +/// See its documentation for more. +/// +/// [`par_difference`]: /hashbrown/struct.HashSet.html#method.par_difference +/// [`HashSet`]: /hashbrown/struct.HashSet.html +pub struct ParDifference<'a, T, S, A: Allocator = Global> { + a: &'a HashSet, + b: &'a HashSet, +} + +impl<'a, T, S, A> ParallelIterator for ParDifference<'a, T, S, A> +where + T: Eq + Hash + Sync, + S: BuildHasher + Sync, + A: Allocator + Sync, +{ + type Item = &'a T; + + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.a + .into_par_iter() + .filter(|&x| !self.b.contains(x)) + .drive_unindexed(consumer) + } +} + +/// Parallel iterator over shared references to elements in the symmetric +/// difference of sets. +/// +/// This iterator is created by the [`par_symmetric_difference`] method on +/// [`HashSet`]. +/// See its documentation for more. +/// +/// [`par_symmetric_difference`]: /hashbrown/struct.HashSet.html#method.par_symmetric_difference +/// [`HashSet`]: /hashbrown/struct.HashSet.html +pub struct ParSymmetricDifference<'a, T, S, A: Allocator = Global> { + a: &'a HashSet, + b: &'a HashSet, +} + +impl<'a, T, S, A> ParallelIterator for ParSymmetricDifference<'a, T, S, A> +where + T: Eq + Hash + Sync, + S: BuildHasher + Sync, + A: Allocator + Sync, +{ + type Item = &'a T; + + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.a + .par_difference(self.b) + .chain(self.b.par_difference(self.a)) + .drive_unindexed(consumer) + } +} + +/// Parallel iterator over shared references to elements in the intersection of +/// sets. +/// +/// This iterator is created by the [`par_intersection`] method on [`HashSet`]. +/// See its documentation for more. +/// +/// [`par_intersection`]: /hashbrown/struct.HashSet.html#method.par_intersection +/// [`HashSet`]: /hashbrown/struct.HashSet.html +pub struct ParIntersection<'a, T, S, A: Allocator = Global> { + a: &'a HashSet, + b: &'a HashSet, +} + +impl<'a, T, S, A> ParallelIterator for ParIntersection<'a, T, S, A> +where + T: Eq + Hash + Sync, + S: BuildHasher + Sync, + A: Allocator + Sync, +{ + type Item = &'a T; + + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.a + .into_par_iter() + .filter(|&x| self.b.contains(x)) + .drive_unindexed(consumer) + } +} + +/// Parallel iterator over shared references to elements in the union of sets. +/// +/// This iterator is created by the [`par_union`] method on [`HashSet`]. +/// See its documentation for more. +/// +/// [`par_union`]: /hashbrown/struct.HashSet.html#method.par_union +/// [`HashSet`]: /hashbrown/struct.HashSet.html +pub struct ParUnion<'a, T, S, A: Allocator = Global> { + a: &'a HashSet, + b: &'a HashSet, +} + +impl<'a, T, S, A> ParallelIterator for ParUnion<'a, T, S, A> +where + T: Eq + Hash + Sync, + S: BuildHasher + Sync, + A: Allocator + Sync, +{ + type Item = &'a T; + + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + // We'll iterate one set in full, and only the remaining difference from the other. + // Use the smaller set for the difference in order to reduce hash lookups. + let (smaller, larger) = if self.a.len() <= self.b.len() { + (self.a, self.b) + } else { + (self.b, self.a) + }; + larger + .into_par_iter() + .chain(smaller.par_difference(larger)) + .drive_unindexed(consumer) + } +} + +impl HashSet +where + T: Eq + Hash + Sync, + S: BuildHasher + Sync, + A: Allocator + Sync, +{ + /// Visits (potentially in parallel) the values representing the union, + /// i.e. all the values in `self` or `other`, without duplicates. + #[cfg_attr(feature = "inline-more", inline)] + pub fn par_union<'a>(&'a self, other: &'a Self) -> ParUnion<'a, T, S, A> { + ParUnion { a: self, b: other } + } + + /// Visits (potentially in parallel) the values representing the difference, + /// i.e. the values that are in `self` but not in `other`. + #[cfg_attr(feature = "inline-more", inline)] + pub fn par_difference<'a>(&'a self, other: &'a Self) -> ParDifference<'a, T, S, A> { + ParDifference { a: self, b: other } + } + + /// Visits (potentially in parallel) the values representing the symmetric + /// difference, i.e. the values that are in `self` or in `other` but not in both. + #[cfg_attr(feature = "inline-more", inline)] + pub fn par_symmetric_difference<'a>( + &'a self, + other: &'a Self, + ) -> ParSymmetricDifference<'a, T, S, A> { + ParSymmetricDifference { a: self, b: other } + } + + /// Visits (potentially in parallel) the values representing the + /// intersection, i.e. the values that are both in `self` and `other`. + #[cfg_attr(feature = "inline-more", inline)] + pub fn par_intersection<'a>(&'a self, other: &'a Self) -> ParIntersection<'a, T, S, A> { + ParIntersection { a: self, b: other } + } + + /// Returns `true` if `self` has no elements in common with `other`. + /// This is equivalent to checking for an empty intersection. + /// + /// This method runs in a potentially parallel fashion. + pub fn par_is_disjoint(&self, other: &Self) -> bool { + self.into_par_iter().all(|x| !other.contains(x)) + } + + /// Returns `true` if the set is a subset of another, + /// i.e. `other` contains at least all the values in `self`. + /// + /// This method runs in a potentially parallel fashion. + pub fn par_is_subset(&self, other: &Self) -> bool { + if self.len() <= other.len() { + self.into_par_iter().all(|x| other.contains(x)) + } else { + false + } + } + + /// Returns `true` if the set is a superset of another, + /// i.e. `self` contains at least all the values in `other`. + /// + /// This method runs in a potentially parallel fashion. + pub fn par_is_superset(&self, other: &Self) -> bool { + other.par_is_subset(self) + } + + /// Returns `true` if the set is equal to another, + /// i.e. both sets contain the same values. + /// + /// This method runs in a potentially parallel fashion. + pub fn par_eq(&self, other: &Self) -> bool { + self.len() == other.len() && self.par_is_subset(other) + } +} + +impl HashSet +where + T: Eq + Hash + Send, + A: Allocator + Send, +{ + /// Consumes (potentially in parallel) all values in an arbitrary order, + /// while preserving the set's allocated memory for reuse. + #[cfg_attr(feature = "inline-more", inline)] + pub fn par_drain(&mut self) -> ParDrain<'_, T, A> { + ParDrain { + inner: self.map.par_drain(), + } + } +} + +impl IntoParallelIterator for HashSet { + type Item = T; + type Iter = IntoParIter; + + #[cfg_attr(feature = "inline-more", inline)] + fn into_par_iter(self) -> Self::Iter { + IntoParIter { + inner: self.map.into_par_iter(), + } + } +} + +impl<'a, T: Sync, S, A: Allocator> IntoParallelIterator for &'a HashSet { + type Item = &'a T; + type Iter = ParIter<'a, T>; + + #[cfg_attr(feature = "inline-more", inline)] + fn into_par_iter(self) -> Self::Iter { + ParIter { + inner: self.map.par_keys(), + } + } +} + +/// Collect values from a parallel iterator into a hashset. +impl FromParallelIterator for HashSet +where + T: Eq + Hash + Send, + S: BuildHasher + Default, +{ + fn from_par_iter

(par_iter: P) -> Self + where + P: IntoParallelIterator, + { + let mut set = HashSet::default(); + set.par_extend(par_iter); + set + } +} + +/// Extend a hash set with items from a parallel iterator. +impl ParallelExtend for HashSet +where + T: Eq + Hash + Send, + S: BuildHasher, +{ + fn par_extend(&mut self, par_iter: I) + where + I: IntoParallelIterator, + { + extend(self, par_iter); + } +} + +/// Extend a hash set with copied items from a parallel iterator. +impl<'a, T, S> ParallelExtend<&'a T> for HashSet +where + T: 'a + Copy + Eq + Hash + Sync, + S: BuildHasher, +{ + fn par_extend(&mut self, par_iter: I) + where + I: IntoParallelIterator, + { + extend(self, par_iter); + } +} + +// This is equal to the normal `HashSet` -- no custom advantage. +fn extend(set: &mut HashSet, par_iter: I) +where + T: Eq + Hash, + S: BuildHasher, + A: Allocator, + I: IntoParallelIterator, + HashSet: Extend, +{ + let (list, len) = super::helpers::collect(par_iter); + + // Values may be already present or show multiple times in the iterator. + // Reserve the entire length if the set is empty. + // Otherwise reserve half the length (rounded up), so the set + // will only resize twice in the worst case. + let reserve = if set.is_empty() { len } else { (len + 1) / 2 }; + set.reserve(reserve); + for vec in list { + set.extend(vec); + } +} + +#[cfg(test)] +mod test_par_set { + use alloc::vec::Vec; + use core::sync::atomic::{AtomicUsize, Ordering}; + + use rayon::prelude::*; + + use crate::hash_set::HashSet; + + #[test] + fn test_disjoint() { + let mut xs = HashSet::new(); + let mut ys = HashSet::new(); + assert!(xs.par_is_disjoint(&ys)); + assert!(ys.par_is_disjoint(&xs)); + assert!(xs.insert(5)); + assert!(ys.insert(11)); + assert!(xs.par_is_disjoint(&ys)); + assert!(ys.par_is_disjoint(&xs)); + assert!(xs.insert(7)); + assert!(xs.insert(19)); + assert!(xs.insert(4)); + assert!(ys.insert(2)); + assert!(ys.insert(-11)); + assert!(xs.par_is_disjoint(&ys)); + assert!(ys.par_is_disjoint(&xs)); + assert!(ys.insert(7)); + assert!(!xs.par_is_disjoint(&ys)); + assert!(!ys.par_is_disjoint(&xs)); + } + + #[test] + fn test_subset_and_superset() { + let mut a = HashSet::new(); + assert!(a.insert(0)); + assert!(a.insert(5)); + assert!(a.insert(11)); + assert!(a.insert(7)); + + let mut b = HashSet::new(); + assert!(b.insert(0)); + assert!(b.insert(7)); + assert!(b.insert(19)); + assert!(b.insert(250)); + assert!(b.insert(11)); + assert!(b.insert(200)); + + assert!(!a.par_is_subset(&b)); + assert!(!a.par_is_superset(&b)); + assert!(!b.par_is_subset(&a)); + assert!(!b.par_is_superset(&a)); + + assert!(b.insert(5)); + + assert!(a.par_is_subset(&b)); + assert!(!a.par_is_superset(&b)); + assert!(!b.par_is_subset(&a)); + assert!(b.par_is_superset(&a)); + } + + #[test] + fn test_iterate() { + let mut a = HashSet::new(); + for i in 0..32 { + assert!(a.insert(i)); + } + let observed = AtomicUsize::new(0); + a.par_iter().for_each(|k| { + observed.fetch_or(1 << *k, Ordering::Relaxed); + }); + assert_eq!(observed.into_inner(), 0xFFFF_FFFF); + } + + #[test] + fn test_intersection() { + let mut a = HashSet::new(); + let mut b = HashSet::new(); + + assert!(a.insert(11)); + assert!(a.insert(1)); + assert!(a.insert(3)); + assert!(a.insert(77)); + assert!(a.insert(103)); + assert!(a.insert(5)); + assert!(a.insert(-5)); + + assert!(b.insert(2)); + assert!(b.insert(11)); + assert!(b.insert(77)); + assert!(b.insert(-9)); + assert!(b.insert(-42)); + assert!(b.insert(5)); + assert!(b.insert(3)); + + let expected = [3, 5, 11, 77]; + let i = a + .par_intersection(&b) + .map(|x| { + assert!(expected.contains(x)); + 1 + }) + .sum::(); + assert_eq!(i, expected.len()); + } + + #[test] + fn test_difference() { + let mut a = HashSet::new(); + let mut b = HashSet::new(); + + assert!(a.insert(1)); + assert!(a.insert(3)); + assert!(a.insert(5)); + assert!(a.insert(9)); + assert!(a.insert(11)); + + assert!(b.insert(3)); + assert!(b.insert(9)); + + let expected = [1, 5, 11]; + let i = a + .par_difference(&b) + .map(|x| { + assert!(expected.contains(x)); + 1 + }) + .sum::(); + assert_eq!(i, expected.len()); + } + + #[test] + fn test_symmetric_difference() { + let mut a = HashSet::new(); + let mut b = HashSet::new(); + + assert!(a.insert(1)); + assert!(a.insert(3)); + assert!(a.insert(5)); + assert!(a.insert(9)); + assert!(a.insert(11)); + + assert!(b.insert(-2)); + assert!(b.insert(3)); + assert!(b.insert(9)); + assert!(b.insert(14)); + assert!(b.insert(22)); + + let expected = [-2, 1, 5, 11, 14, 22]; + let i = a + .par_symmetric_difference(&b) + .map(|x| { + assert!(expected.contains(x)); + 1 + }) + .sum::(); + assert_eq!(i, expected.len()); + } + + #[test] + fn test_union() { + let mut a = HashSet::new(); + let mut b = HashSet::new(); + + assert!(a.insert(1)); + assert!(a.insert(3)); + assert!(a.insert(5)); + assert!(a.insert(9)); + assert!(a.insert(11)); + assert!(a.insert(16)); + assert!(a.insert(19)); + assert!(a.insert(24)); + + assert!(b.insert(-2)); + assert!(b.insert(1)); + assert!(b.insert(5)); + assert!(b.insert(9)); + assert!(b.insert(13)); + assert!(b.insert(19)); + + let expected = [-2, 1, 3, 5, 9, 11, 13, 16, 19, 24]; + let i = a + .par_union(&b) + .map(|x| { + assert!(expected.contains(x)); + 1 + }) + .sum::(); + assert_eq!(i, expected.len()); + } + + #[test] + fn test_from_iter() { + let xs = [1, 2, 3, 4, 5, 6, 7, 8, 9]; + + let set: HashSet<_> = xs.par_iter().cloned().collect(); + + for x in &xs { + assert!(set.contains(x)); + } + } + + #[test] + fn test_move_iter() { + let hs = { + let mut hs = HashSet::new(); + + hs.insert('a'); + hs.insert('b'); + + hs + }; + + let v = hs.into_par_iter().collect::>(); + assert!(v == ['a', 'b'] || v == ['b', 'a']); + } + + #[test] + fn test_eq() { + // These constants once happened to expose a bug in insert(). + // I'm keeping them around to prevent a regression. + let mut s1 = HashSet::new(); + + s1.insert(1); + s1.insert(2); + s1.insert(3); + + let mut s2 = HashSet::new(); + + s2.insert(1); + s2.insert(2); + + assert!(!s1.par_eq(&s2)); + + s2.insert(3); + + assert!(s1.par_eq(&s2)); + } + + #[test] + fn test_extend_ref() { + let mut a = HashSet::new(); + a.insert(1); + + a.par_extend(&[2, 3, 4][..]); + + assert_eq!(a.len(), 4); + assert!(a.contains(&1)); + assert!(a.contains(&2)); + assert!(a.contains(&3)); + assert!(a.contains(&4)); + + let mut b = HashSet::new(); + b.insert(5); + b.insert(6); + + a.par_extend(&b); + + assert_eq!(a.len(), 6); + assert!(a.contains(&1)); + assert!(a.contains(&2)); + assert!(a.contains(&3)); + assert!(a.contains(&4)); + assert!(a.contains(&5)); + assert!(a.contains(&6)); + } +} diff --git a/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/table.rs b/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/table.rs new file mode 100644 index 000000000..e8e50944a --- /dev/null +++ b/src/rust/vendor/hashbrown/src/external_trait_impls/rayon/table.rs @@ -0,0 +1,252 @@ +//! Rayon extensions for `HashTable`. + +use super::raw::{RawIntoParIter, RawParDrain, RawParIter}; +use crate::hash_table::HashTable; +use crate::raw::{Allocator, Global}; +use core::fmt; +use core::marker::PhantomData; +use rayon::iter::plumbing::UnindexedConsumer; +use rayon::iter::{IntoParallelIterator, ParallelIterator}; + +/// Parallel iterator over shared references to entries in a map. +/// +/// This iterator is created by the [`par_iter`] method on [`HashTable`] +/// (provided by the [`IntoParallelRefIterator`] trait). +/// See its documentation for more. +/// +/// [`par_iter`]: /hashbrown/struct.HashTable.html#method.par_iter +/// [`HashTable`]: /hashbrown/struct.HashTable.html +/// [`IntoParallelRefIterator`]: https://docs.rs/rayon/1.0/rayon/iter/trait.IntoParallelRefIterator.html +pub struct ParIter<'a, T> { + inner: RawParIter, + marker: PhantomData<&'a T>, +} + +impl<'a, T: Sync> ParallelIterator for ParIter<'a, T> { + type Item = &'a T; + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner + .map(|x| unsafe { x.as_ref() }) + .drive_unindexed(consumer) + } +} + +impl Clone for ParIter<'_, T> { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Self { + inner: self.inner.clone(), + marker: PhantomData, + } + } +} + +impl fmt::Debug for ParIter<'_, T> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let iter = unsafe { self.inner.iter() }.map(|x| unsafe { x.as_ref() }); + f.debug_list().entries(iter).finish() + } +} + +/// Parallel iterator over mutable references to entries in a map. +/// +/// This iterator is created by the [`par_iter_mut`] method on [`HashTable`] +/// (provided by the [`IntoParallelRefMutIterator`] trait). +/// See its documentation for more. +/// +/// [`par_iter_mut`]: /hashbrown/struct.HashTable.html#method.par_iter_mut +/// [`HashTable`]: /hashbrown/struct.HashTable.html +/// [`IntoParallelRefMutIterator`]: https://docs.rs/rayon/1.0/rayon/iter/trait.IntoParallelRefMutIterator.html +pub struct ParIterMut<'a, T> { + inner: RawParIter, + marker: PhantomData<&'a mut T>, +} + +impl<'a, T: Send> ParallelIterator for ParIterMut<'a, T> { + type Item = &'a mut T; + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner + .map(|x| unsafe { x.as_mut() }) + .drive_unindexed(consumer) + } +} + +impl fmt::Debug for ParIterMut<'_, T> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + ParIter { + inner: self.inner.clone(), + marker: PhantomData, + } + .fmt(f) + } +} + +/// Parallel iterator over entries of a consumed map. +/// +/// This iterator is created by the [`into_par_iter`] method on [`HashTable`] +/// (provided by the [`IntoParallelIterator`] trait). +/// See its documentation for more. +/// +/// [`into_par_iter`]: /hashbrown/struct.HashTable.html#method.into_par_iter +/// [`HashTable`]: /hashbrown/struct.HashTable.html +/// [`IntoParallelIterator`]: https://docs.rs/rayon/1.0/rayon/iter/trait.IntoParallelIterator.html +pub struct IntoParIter { + inner: RawIntoParIter, +} + +impl ParallelIterator for IntoParIter { + type Item = T; + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner.drive_unindexed(consumer) + } +} + +impl fmt::Debug for IntoParIter { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + ParIter { + inner: unsafe { self.inner.par_iter() }, + marker: PhantomData, + } + .fmt(f) + } +} + +/// Parallel draining iterator over entries of a map. +/// +/// This iterator is created by the [`par_drain`] method on [`HashTable`]. +/// See its documentation for more. +/// +/// [`par_drain`]: /hashbrown/struct.HashTable.html#method.par_drain +/// [`HashTable`]: /hashbrown/struct.HashTable.html +pub struct ParDrain<'a, T, A: Allocator = Global> { + inner: RawParDrain<'a, T, A>, +} + +impl ParallelIterator for ParDrain<'_, T, A> { + type Item = T; + + #[cfg_attr(feature = "inline-more", inline)] + fn drive_unindexed(self, consumer: C) -> C::Result + where + C: UnindexedConsumer, + { + self.inner.drive_unindexed(consumer) + } +} + +impl fmt::Debug for ParDrain<'_, T, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + ParIter { + inner: unsafe { self.inner.par_iter() }, + marker: PhantomData, + } + .fmt(f) + } +} + +impl HashTable { + /// Consumes (potentially in parallel) all values in an arbitrary order, + /// while preserving the map's allocated memory for reuse. + #[cfg_attr(feature = "inline-more", inline)] + pub fn par_drain(&mut self) -> ParDrain<'_, T, A> { + ParDrain { + inner: self.raw.par_drain(), + } + } +} + +impl IntoParallelIterator for HashTable { + type Item = T; + type Iter = IntoParIter; + + #[cfg_attr(feature = "inline-more", inline)] + fn into_par_iter(self) -> Self::Iter { + IntoParIter { + inner: self.raw.into_par_iter(), + } + } +} + +impl<'a, T: Sync, A: Allocator> IntoParallelIterator for &'a HashTable { + type Item = &'a T; + type Iter = ParIter<'a, T>; + + #[cfg_attr(feature = "inline-more", inline)] + fn into_par_iter(self) -> Self::Iter { + ParIter { + inner: unsafe { self.raw.par_iter() }, + marker: PhantomData, + } + } +} + +impl<'a, T: Send, A: Allocator> IntoParallelIterator for &'a mut HashTable { + type Item = &'a mut T; + type Iter = ParIterMut<'a, T>; + + #[cfg_attr(feature = "inline-more", inline)] + fn into_par_iter(self) -> Self::Iter { + ParIterMut { + inner: unsafe { self.raw.par_iter() }, + marker: PhantomData, + } + } +} + +#[cfg(test)] +mod test_par_table { + use alloc::vec::Vec; + use core::sync::atomic::{AtomicUsize, Ordering}; + + use rayon::prelude::*; + + use crate::{ + hash_map::{make_hash, DefaultHashBuilder}, + hash_table::HashTable, + }; + + #[test] + fn test_iterate() { + let hasher = DefaultHashBuilder::default(); + let mut a = HashTable::new(); + for i in 0..32 { + a.insert_unique(make_hash(&hasher, &i), i, |x| make_hash(&hasher, x)); + } + let observed = AtomicUsize::new(0); + a.par_iter().for_each(|k| { + observed.fetch_or(1 << *k, Ordering::Relaxed); + }); + assert_eq!(observed.into_inner(), 0xFFFF_FFFF); + } + + #[test] + fn test_move_iter() { + let hasher = DefaultHashBuilder::default(); + let hs = { + let mut hs = HashTable::new(); + + hs.insert_unique(make_hash(&hasher, &'a'), 'a', |x| make_hash(&hasher, x)); + hs.insert_unique(make_hash(&hasher, &'b'), 'b', |x| make_hash(&hasher, x)); + + hs + }; + + let v = hs.into_par_iter().collect::>(); + assert!(v == ['a', 'b'] || v == ['b', 'a']); + } +} diff --git a/src/rust/vendor/hashbrown/src/external_trait_impls/rkyv/hash_map.rs b/src/rust/vendor/hashbrown/src/external_trait_impls/rkyv/hash_map.rs new file mode 100644 index 000000000..fae7f7676 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/external_trait_impls/rkyv/hash_map.rs @@ -0,0 +1,125 @@ +use crate::HashMap; +use core::{ + borrow::Borrow, + hash::{BuildHasher, Hash}, +}; +use rkyv::{ + collections::hash_map::{ArchivedHashMap, HashMapResolver}, + ser::{ScratchSpace, Serializer}, + Archive, Deserialize, Fallible, Serialize, +}; + +impl Archive for HashMap +where + K::Archived: Hash + Eq, +{ + type Archived = ArchivedHashMap; + type Resolver = HashMapResolver; + + #[inline] + unsafe fn resolve(&self, pos: usize, resolver: Self::Resolver, out: *mut Self::Archived) { + ArchivedHashMap::resolve_from_len(self.len(), pos, resolver, out); + } +} + +impl Serialize for HashMap +where + K: Serialize + Hash + Eq, + K::Archived: Hash + Eq, + V: Serialize, + S: Serializer + ScratchSpace + ?Sized, +{ + #[inline] + fn serialize(&self, serializer: &mut S) -> Result { + unsafe { ArchivedHashMap::serialize_from_iter(self.iter(), serializer) } + } +} + +impl + Deserialize, D> for ArchivedHashMap +where + K::Archived: Deserialize + Hash + Eq, + V::Archived: Deserialize, +{ + #[inline] + fn deserialize(&self, deserializer: &mut D) -> Result, D::Error> { + let mut result = HashMap::with_capacity_and_hasher(self.len(), S::default()); + for (k, v) in self.iter() { + result.insert(k.deserialize(deserializer)?, v.deserialize(deserializer)?); + } + Ok(result) + } +} + +impl, V, AK: Hash + Eq, AV: PartialEq, S: BuildHasher> + PartialEq> for ArchivedHashMap +{ + #[inline] + fn eq(&self, other: &HashMap) -> bool { + if self.len() != other.len() { + false + } else { + self.iter() + .all(|(key, value)| other.get(key).map_or(false, |v| value.eq(v))) + } + } +} + +impl, V, AK: Hash + Eq, AV: PartialEq> + PartialEq> for HashMap +{ + #[inline] + fn eq(&self, other: &ArchivedHashMap) -> bool { + other.eq(self) + } +} + +#[cfg(test)] +mod tests { + use crate::HashMap; + use alloc::string::String; + use rkyv::{ + archived_root, check_archived_root, + ser::{serializers::AllocSerializer, Serializer}, + Deserialize, Infallible, + }; + + #[test] + fn index_map() { + let mut value = HashMap::new(); + value.insert(String::from("foo"), 10); + value.insert(String::from("bar"), 20); + value.insert(String::from("baz"), 40); + value.insert(String::from("bat"), 80); + + let mut serializer = AllocSerializer::<4096>::default(); + serializer.serialize_value(&value).unwrap(); + let result = serializer.into_serializer().into_inner(); + let archived = unsafe { archived_root::>(result.as_ref()) }; + + assert_eq!(value.len(), archived.len()); + for (k, v) in value.iter() { + let (ak, av) = archived.get_key_value(k.as_str()).unwrap(); + assert_eq!(k, ak); + assert_eq!(v, av); + } + + let deserialized: HashMap = archived.deserialize(&mut Infallible).unwrap(); + assert_eq!(value, deserialized); + } + + #[test] + fn validate_index_map() { + let mut value = HashMap::new(); + value.insert(String::from("foo"), 10); + value.insert(String::from("bar"), 20); + value.insert(String::from("baz"), 40); + value.insert(String::from("bat"), 80); + + let mut serializer = AllocSerializer::<4096>::default(); + serializer.serialize_value(&value).unwrap(); + let result = serializer.into_serializer().into_inner(); + check_archived_root::>(result.as_ref()) + .expect("failed to validate archived index map"); + } +} diff --git a/src/rust/vendor/hashbrown/src/external_trait_impls/rkyv/hash_set.rs b/src/rust/vendor/hashbrown/src/external_trait_impls/rkyv/hash_set.rs new file mode 100644 index 000000000..c8a69cf4f --- /dev/null +++ b/src/rust/vendor/hashbrown/src/external_trait_impls/rkyv/hash_set.rs @@ -0,0 +1,123 @@ +use crate::HashSet; +use core::{ + borrow::Borrow, + hash::{BuildHasher, Hash}, +}; +use rkyv::{ + collections::hash_set::{ArchivedHashSet, HashSetResolver}, + ser::{ScratchSpace, Serializer}, + Archive, Deserialize, Fallible, Serialize, +}; + +impl Archive for HashSet +where + K::Archived: Hash + Eq, +{ + type Archived = ArchivedHashSet; + type Resolver = HashSetResolver; + + #[inline] + unsafe fn resolve(&self, pos: usize, resolver: Self::Resolver, out: *mut Self::Archived) { + ArchivedHashSet::::resolve_from_len(self.len(), pos, resolver, out); + } +} + +impl Serialize for HashSet +where + K::Archived: Hash + Eq, + K: Serialize + Hash + Eq, + S: ScratchSpace + Serializer + ?Sized, +{ + #[inline] + fn serialize(&self, serializer: &mut S) -> Result { + unsafe { ArchivedHashSet::serialize_from_iter(self.iter(), serializer) } + } +} + +impl Deserialize, D> for ArchivedHashSet +where + K: Archive + Hash + Eq, + K::Archived: Deserialize + Hash + Eq, + D: Fallible + ?Sized, + S: Default + BuildHasher, +{ + #[inline] + fn deserialize(&self, deserializer: &mut D) -> Result, D::Error> { + let mut result = HashSet::with_hasher(S::default()); + for k in self.iter() { + result.insert(k.deserialize(deserializer)?); + } + Ok(result) + } +} + +impl, AK: Hash + Eq, S: BuildHasher> PartialEq> + for ArchivedHashSet +{ + #[inline] + fn eq(&self, other: &HashSet) -> bool { + if self.len() != other.len() { + false + } else { + self.iter().all(|key| other.get(key).is_some()) + } + } +} + +impl, AK: Hash + Eq, S: BuildHasher> PartialEq> + for HashSet +{ + #[inline] + fn eq(&self, other: &ArchivedHashSet) -> bool { + other.eq(self) + } +} + +#[cfg(test)] +mod tests { + use crate::HashSet; + use alloc::string::String; + use rkyv::{ + archived_root, check_archived_root, + ser::{serializers::AllocSerializer, Serializer}, + Deserialize, Infallible, + }; + + #[test] + fn index_set() { + let mut value = HashSet::new(); + value.insert(String::from("foo")); + value.insert(String::from("bar")); + value.insert(String::from("baz")); + value.insert(String::from("bat")); + + let mut serializer = AllocSerializer::<4096>::default(); + serializer.serialize_value(&value).unwrap(); + let result = serializer.into_serializer().into_inner(); + let archived = unsafe { archived_root::>(result.as_ref()) }; + + assert_eq!(value.len(), archived.len()); + for k in value.iter() { + let ak = archived.get(k.as_str()).unwrap(); + assert_eq!(k, ak); + } + + let deserialized: HashSet = archived.deserialize(&mut Infallible).unwrap(); + assert_eq!(value, deserialized); + } + + #[test] + fn validate_index_set() { + let mut value = HashSet::new(); + value.insert(String::from("foo")); + value.insert(String::from("bar")); + value.insert(String::from("baz")); + value.insert(String::from("bat")); + + let mut serializer = AllocSerializer::<4096>::default(); + serializer.serialize_value(&value).unwrap(); + let result = serializer.into_serializer().into_inner(); + check_archived_root::>(result.as_ref()) + .expect("failed to validate archived index set"); + } +} diff --git a/src/rust/vendor/hashbrown/src/external_trait_impls/rkyv/mod.rs b/src/rust/vendor/hashbrown/src/external_trait_impls/rkyv/mod.rs new file mode 100644 index 000000000..2bde6a065 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/external_trait_impls/rkyv/mod.rs @@ -0,0 +1,2 @@ +mod hash_map; +mod hash_set; diff --git a/src/rust/vendor/hashbrown/src/external_trait_impls/serde.rs b/src/rust/vendor/hashbrown/src/external_trait_impls/serde.rs new file mode 100644 index 000000000..0a76dbec2 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/external_trait_impls/serde.rs @@ -0,0 +1,220 @@ +mod size_hint { + use core::cmp; + + /// This presumably exists to prevent denial of service attacks. + /// + /// Original discussion: https://github.com/serde-rs/serde/issues/1114. + #[cfg_attr(feature = "inline-more", inline)] + pub(super) fn cautious(hint: Option) -> usize { + cmp::min(hint.unwrap_or(0), 4096) + } +} + +mod map { + use crate::raw::Allocator; + use core::fmt; + use core::hash::{BuildHasher, Hash}; + use core::marker::PhantomData; + use serde::de::{Deserialize, Deserializer, MapAccess, Visitor}; + use serde::ser::{Serialize, Serializer}; + + use crate::hash_map::HashMap; + + use super::size_hint; + + impl Serialize for HashMap + where + K: Serialize + Eq + Hash, + V: Serialize, + H: BuildHasher, + A: Allocator, + { + #[cfg_attr(feature = "inline-more", inline)] + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + serializer.collect_map(self) + } + } + + impl<'de, K, V, S, A> Deserialize<'de> for HashMap + where + K: Deserialize<'de> + Eq + Hash, + V: Deserialize<'de>, + S: BuildHasher + Default, + A: Allocator + Default, + { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct MapVisitor + where + A: Allocator, + { + marker: PhantomData>, + } + + impl<'de, K, V, S, A> Visitor<'de> for MapVisitor + where + K: Deserialize<'de> + Eq + Hash, + V: Deserialize<'de>, + S: BuildHasher + Default, + A: Allocator + Default, + { + type Value = HashMap; + + fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { + formatter.write_str("a map") + } + + #[cfg_attr(feature = "inline-more", inline)] + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'de>, + { + let mut values = HashMap::with_capacity_and_hasher_in( + size_hint::cautious(map.size_hint()), + S::default(), + A::default(), + ); + + while let Some((key, value)) = map.next_entry()? { + values.insert(key, value); + } + + Ok(values) + } + } + + let visitor = MapVisitor { + marker: PhantomData, + }; + deserializer.deserialize_map(visitor) + } + } +} + +mod set { + use crate::raw::Allocator; + use core::fmt; + use core::hash::{BuildHasher, Hash}; + use core::marker::PhantomData; + use serde::de::{Deserialize, Deserializer, SeqAccess, Visitor}; + use serde::ser::{Serialize, Serializer}; + + use crate::hash_set::HashSet; + + use super::size_hint; + + impl Serialize for HashSet + where + T: Serialize + Eq + Hash, + H: BuildHasher, + A: Allocator, + { + #[cfg_attr(feature = "inline-more", inline)] + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + serializer.collect_seq(self) + } + } + + impl<'de, T, S, A> Deserialize<'de> for HashSet + where + T: Deserialize<'de> + Eq + Hash, + S: BuildHasher + Default, + A: Allocator + Default, + { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct SeqVisitor + where + A: Allocator, + { + marker: PhantomData>, + } + + impl<'de, T, S, A> Visitor<'de> for SeqVisitor + where + T: Deserialize<'de> + Eq + Hash, + S: BuildHasher + Default, + A: Allocator + Default, + { + type Value = HashSet; + + fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { + formatter.write_str("a sequence") + } + + #[cfg_attr(feature = "inline-more", inline)] + fn visit_seq(self, mut seq: M) -> Result + where + M: SeqAccess<'de>, + { + let mut values = HashSet::with_capacity_and_hasher_in( + size_hint::cautious(seq.size_hint()), + S::default(), + A::default(), + ); + + while let Some(value) = seq.next_element()? { + values.insert(value); + } + + Ok(values) + } + } + + let visitor = SeqVisitor { + marker: PhantomData, + }; + deserializer.deserialize_seq(visitor) + } + + #[allow(clippy::missing_errors_doc)] + fn deserialize_in_place(deserializer: D, place: &mut Self) -> Result<(), D::Error> + where + D: Deserializer<'de>, + { + struct SeqInPlaceVisitor<'a, T, S, A>(&'a mut HashSet) + where + A: Allocator; + + impl<'a, 'de, T, S, A> Visitor<'de> for SeqInPlaceVisitor<'a, T, S, A> + where + T: Deserialize<'de> + Eq + Hash, + S: BuildHasher + Default, + A: Allocator, + { + type Value = (); + + fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { + formatter.write_str("a sequence") + } + + #[cfg_attr(feature = "inline-more", inline)] + fn visit_seq(self, mut seq: M) -> Result + where + M: SeqAccess<'de>, + { + self.0.clear(); + self.0.reserve(size_hint::cautious(seq.size_hint())); + + while let Some(value) = seq.next_element()? { + self.0.insert(value); + } + + Ok(()) + } + } + + deserializer.deserialize_seq(SeqInPlaceVisitor(place)) + } + } +} diff --git a/src/rust/vendor/hashbrown/src/lib.rs b/src/rust/vendor/hashbrown/src/lib.rs new file mode 100644 index 000000000..f03ddb6ad --- /dev/null +++ b/src/rust/vendor/hashbrown/src/lib.rs @@ -0,0 +1,188 @@ +//! This crate is a Rust port of Google's high-performance [SwissTable] hash +//! map, adapted to make it a drop-in replacement for Rust's standard `HashMap` +//! and `HashSet` types. +//! +//! The original C++ version of [SwissTable] can be found [here], and this +//! [CppCon talk] gives an overview of how the algorithm works. +//! +//! [SwissTable]: https://abseil.io/blog/20180927-swisstables +//! [here]: https://github.com/abseil/abseil-cpp/blob/master/absl/container/internal/raw_hash_set.h +//! [CppCon talk]: https://www.youtube.com/watch?v=ncHmEUmJZf4 + +#![no_std] +#![cfg_attr( + feature = "nightly", + feature( + test, + core_intrinsics, + dropck_eyepatch, + min_specialization, + extend_one, + allocator_api, + slice_ptr_get, + maybe_uninit_array_assume_init, + strict_provenance + ) +)] +#![allow( + clippy::doc_markdown, + clippy::module_name_repetitions, + clippy::must_use_candidate, + clippy::option_if_let_else, + clippy::redundant_else, + clippy::manual_map, + clippy::missing_safety_doc, + clippy::missing_errors_doc +)] +#![warn(missing_docs)] +#![warn(rust_2018_idioms)] +#![cfg_attr(feature = "nightly", warn(fuzzy_provenance_casts))] +#![cfg_attr(feature = "nightly", allow(internal_features))] + +#[cfg(test)] +#[macro_use] +extern crate std; + +#[cfg_attr(test, macro_use)] +extern crate alloc; + +#[cfg(feature = "nightly")] +#[cfg(doctest)] +doc_comment::doctest!("../README.md"); + +#[macro_use] +mod macros; + +#[cfg(feature = "raw")] +/// Experimental and unsafe `RawTable` API. This module is only available if the +/// `raw` feature is enabled. +pub mod raw { + // The RawTable API is still experimental and is not properly documented yet. + #[allow(missing_docs)] + #[path = "mod.rs"] + mod inner; + pub use inner::*; + + #[cfg(feature = "rayon")] + /// [rayon]-based parallel iterator types for hash maps. + /// You will rarely need to interact with it directly unless you have need + /// to name one of the iterator types. + /// + /// [rayon]: https://docs.rs/rayon/1.0/rayon + pub mod rayon { + pub use crate::external_trait_impls::rayon::raw::*; + } +} +#[cfg(not(feature = "raw"))] +mod raw; + +mod external_trait_impls; +mod map; +#[cfg(feature = "rustc-internal-api")] +mod rustc_entry; +mod scopeguard; +mod set; +mod table; + +pub mod hash_map { + //! A hash map implemented with quadratic probing and SIMD lookup. + pub use crate::map::*; + + #[cfg(feature = "rustc-internal-api")] + pub use crate::rustc_entry::*; + + #[cfg(feature = "rayon")] + /// [rayon]-based parallel iterator types for hash maps. + /// You will rarely need to interact with it directly unless you have need + /// to name one of the iterator types. + /// + /// [rayon]: https://docs.rs/rayon/1.0/rayon + pub mod rayon { + pub use crate::external_trait_impls::rayon::map::*; + } +} +pub mod hash_set { + //! A hash set implemented as a `HashMap` where the value is `()`. + pub use crate::set::*; + + #[cfg(feature = "rayon")] + /// [rayon]-based parallel iterator types for hash sets. + /// You will rarely need to interact with it directly unless you have need + /// to name one of the iterator types. + /// + /// [rayon]: https://docs.rs/rayon/1.0/rayon + pub mod rayon { + pub use crate::external_trait_impls::rayon::set::*; + } +} +pub mod hash_table { + //! A hash table implemented with quadratic probing and SIMD lookup. + pub use crate::table::*; + + #[cfg(feature = "rayon")] + /// [rayon]-based parallel iterator types for hash tables. + /// You will rarely need to interact with it directly unless you have need + /// to name one of the iterator types. + /// + /// [rayon]: https://docs.rs/rayon/1.0/rayon + pub mod rayon { + pub use crate::external_trait_impls::rayon::table::*; + } +} + +pub use crate::map::HashMap; +pub use crate::set::HashSet; +pub use crate::table::HashTable; + +#[cfg(feature = "equivalent")] +pub use equivalent::Equivalent; + +// This is only used as a fallback when building as part of `std`. +#[cfg(not(feature = "equivalent"))] +/// Key equivalence trait. +/// +/// This trait defines the function used to compare the input value with the +/// map keys (or set values) during a lookup operation such as [`HashMap::get`] +/// or [`HashSet::contains`]. +/// It is provided with a blanket implementation based on the +/// [`Borrow`](core::borrow::Borrow) trait. +/// +/// # Correctness +/// +/// Equivalent values must hash to the same value. +pub trait Equivalent { + /// Checks if this value is equivalent to the given key. + /// + /// Returns `true` if both values are equivalent, and `false` otherwise. + /// + /// # Correctness + /// + /// When this function returns `true`, both `self` and `key` must hash to + /// the same value. + fn equivalent(&self, key: &K) -> bool; +} + +#[cfg(not(feature = "equivalent"))] +impl Equivalent for Q +where + Q: Eq, + K: core::borrow::Borrow, +{ + fn equivalent(&self, key: &K) -> bool { + self == key.borrow() + } +} + +/// The error type for `try_reserve` methods. +#[derive(Clone, PartialEq, Eq, Debug)] +pub enum TryReserveError { + /// Error due to the computed capacity exceeding the collection's maximum + /// (usually `isize::MAX` bytes). + CapacityOverflow, + + /// The memory allocator returned an error + AllocError { + /// The layout of the allocation request that failed. + layout: alloc::alloc::Layout, + }, +} diff --git a/src/rust/vendor/hashbrown/src/macros.rs b/src/rust/vendor/hashbrown/src/macros.rs new file mode 100644 index 000000000..eaba6bed1 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/macros.rs @@ -0,0 +1,70 @@ +// See the cfg-if crate. +#[allow(unused_macro_rules)] +macro_rules! cfg_if { + // match if/else chains with a final `else` + ($( + if #[cfg($($meta:meta),*)] { $($it:item)* } + ) else * else { + $($it2:item)* + }) => { + cfg_if! { + @__items + () ; + $( ( ($($meta),*) ($($it)*) ), )* + ( () ($($it2)*) ), + } + }; + + // match if/else chains lacking a final `else` + ( + if #[cfg($($i_met:meta),*)] { $($i_it:item)* } + $( + else if #[cfg($($e_met:meta),*)] { $($e_it:item)* } + )* + ) => { + cfg_if! { + @__items + () ; + ( ($($i_met),*) ($($i_it)*) ), + $( ( ($($e_met),*) ($($e_it)*) ), )* + ( () () ), + } + }; + + // Internal and recursive macro to emit all the items + // + // Collects all the negated cfgs in a list at the beginning and after the + // semicolon is all the remaining items + (@__items ($($not:meta,)*) ; ) => {}; + (@__items ($($not:meta,)*) ; ( ($($m:meta),*) ($($it:item)*) ), $($rest:tt)*) => { + // Emit all items within one block, applying an appropriate #[cfg]. The + // #[cfg] will require all `$m` matchers specified and must also negate + // all previous matchers. + cfg_if! { @__apply cfg(all($($m,)* not(any($($not),*)))), $($it)* } + + // Recurse to emit all other items in `$rest`, and when we do so add all + // our `$m` matchers to the list of `$not` matchers as future emissions + // will have to negate everything we just matched as well. + cfg_if! { @__items ($($not,)* $($m,)*) ; $($rest)* } + }; + + // Internal macro to Apply a cfg attribute to a list of items + (@__apply $m:meta, $($it:item)*) => { + $(#[$m] $it)* + }; +} + +// Helper macro for specialization. This also helps avoid parse errors if the +// default fn syntax for specialization changes in the future. +#[cfg(feature = "nightly")] +macro_rules! default_fn { + (#[$($a:tt)*] $($tt:tt)*) => { + #[$($a)*] default $($tt)* + } +} +#[cfg(not(feature = "nightly"))] +macro_rules! default_fn { + ($($tt:tt)*) => { + $($tt)* + } +} diff --git a/src/rust/vendor/hashbrown/src/map.rs b/src/rust/vendor/hashbrown/src/map.rs new file mode 100644 index 000000000..88a826582 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/map.rs @@ -0,0 +1,8960 @@ +use crate::raw::{ + Allocator, Bucket, Global, RawDrain, RawExtractIf, RawIntoIter, RawIter, RawTable, +}; +use crate::{Equivalent, TryReserveError}; +use core::borrow::Borrow; +use core::fmt::{self, Debug}; +use core::hash::{BuildHasher, Hash}; +use core::iter::FusedIterator; +use core::marker::PhantomData; +use core::mem; +use core::ops::Index; + +/// Default hasher for `HashMap`. +#[cfg(feature = "ahash")] +pub type DefaultHashBuilder = core::hash::BuildHasherDefault; + +/// Dummy default hasher for `HashMap`. +#[cfg(not(feature = "ahash"))] +pub enum DefaultHashBuilder {} + +/// A hash map implemented with quadratic probing and SIMD lookup. +/// +/// The default hashing algorithm is currently [`AHash`], though this is +/// subject to change at any point in the future. This hash function is very +/// fast for all types of keys, but this algorithm will typically *not* protect +/// against attacks such as HashDoS. +/// +/// The hashing algorithm can be replaced on a per-`HashMap` basis using the +/// [`default`], [`with_hasher`], and [`with_capacity_and_hasher`] methods. Many +/// alternative algorithms are available on crates.io, such as the [`fnv`] crate. +/// +/// It is required that the keys implement the [`Eq`] and [`Hash`] traits, although +/// this can frequently be achieved by using `#[derive(PartialEq, Eq, Hash)]`. +/// If you implement these yourself, it is important that the following +/// property holds: +/// +/// ```text +/// k1 == k2 -> hash(k1) == hash(k2) +/// ``` +/// +/// In other words, if two keys are equal, their hashes must be equal. +/// +/// It is a logic error for a key to be modified in such a way that the key's +/// hash, as determined by the [`Hash`] trait, or its equality, as determined by +/// the [`Eq`] trait, changes while it is in the map. This is normally only +/// possible through [`Cell`], [`RefCell`], global state, I/O, or unsafe code. +/// +/// It is also a logic error for the [`Hash`] implementation of a key to panic. +/// This is generally only possible if the trait is implemented manually. If a +/// panic does occur then the contents of the `HashMap` may become corrupted and +/// some items may be dropped from the table. +/// +/// # Examples +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// // Type inference lets us omit an explicit type signature (which +/// // would be `HashMap` in this example). +/// let mut book_reviews = HashMap::new(); +/// +/// // Review some books. +/// book_reviews.insert( +/// "Adventures of Huckleberry Finn".to_string(), +/// "My favorite book.".to_string(), +/// ); +/// book_reviews.insert( +/// "Grimms' Fairy Tales".to_string(), +/// "Masterpiece.".to_string(), +/// ); +/// book_reviews.insert( +/// "Pride and Prejudice".to_string(), +/// "Very enjoyable.".to_string(), +/// ); +/// book_reviews.insert( +/// "The Adventures of Sherlock Holmes".to_string(), +/// "Eye lyked it alot.".to_string(), +/// ); +/// +/// // Check for a specific one. +/// // When collections store owned values (String), they can still be +/// // queried using references (&str). +/// if !book_reviews.contains_key("Les Misérables") { +/// println!("We've got {} reviews, but Les Misérables ain't one.", +/// book_reviews.len()); +/// } +/// +/// // oops, this review has a lot of spelling mistakes, let's delete it. +/// book_reviews.remove("The Adventures of Sherlock Holmes"); +/// +/// // Look up the values associated with some keys. +/// let to_find = ["Pride and Prejudice", "Alice's Adventure in Wonderland"]; +/// for &book in &to_find { +/// match book_reviews.get(book) { +/// Some(review) => println!("{}: {}", book, review), +/// None => println!("{} is unreviewed.", book) +/// } +/// } +/// +/// // Look up the value for a key (will panic if the key is not found). +/// println!("Review for Jane: {}", book_reviews["Pride and Prejudice"]); +/// +/// // Iterate over everything. +/// for (book, review) in &book_reviews { +/// println!("{}: \"{}\"", book, review); +/// } +/// ``` +/// +/// `HashMap` also implements an [`Entry API`](#method.entry), which allows +/// for more complex methods of getting, setting, updating and removing keys and +/// their values: +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// // type inference lets us omit an explicit type signature (which +/// // would be `HashMap<&str, u8>` in this example). +/// let mut player_stats = HashMap::new(); +/// +/// fn random_stat_buff() -> u8 { +/// // could actually return some random value here - let's just return +/// // some fixed value for now +/// 42 +/// } +/// +/// // insert a key only if it doesn't already exist +/// player_stats.entry("health").or_insert(100); +/// +/// // insert a key using a function that provides a new value only if it +/// // doesn't already exist +/// player_stats.entry("defence").or_insert_with(random_stat_buff); +/// +/// // update a key, guarding against the key possibly not being set +/// let stat = player_stats.entry("attack").or_insert(100); +/// *stat += random_stat_buff(); +/// ``` +/// +/// The easiest way to use `HashMap` with a custom key type is to derive [`Eq`] and [`Hash`]. +/// We must also derive [`PartialEq`]. +/// +/// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html +/// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html +/// [`PartialEq`]: https://doc.rust-lang.org/std/cmp/trait.PartialEq.html +/// [`RefCell`]: https://doc.rust-lang.org/std/cell/struct.RefCell.html +/// [`Cell`]: https://doc.rust-lang.org/std/cell/struct.Cell.html +/// [`default`]: #method.default +/// [`with_hasher`]: #method.with_hasher +/// [`with_capacity_and_hasher`]: #method.with_capacity_and_hasher +/// [`fnv`]: https://crates.io/crates/fnv +/// [`AHash`]: https://crates.io/crates/ahash +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// #[derive(Hash, Eq, PartialEq, Debug)] +/// struct Viking { +/// name: String, +/// country: String, +/// } +/// +/// impl Viking { +/// /// Creates a new Viking. +/// fn new(name: &str, country: &str) -> Viking { +/// Viking { name: name.to_string(), country: country.to_string() } +/// } +/// } +/// +/// // Use a HashMap to store the vikings' health points. +/// let mut vikings = HashMap::new(); +/// +/// vikings.insert(Viking::new("Einar", "Norway"), 25); +/// vikings.insert(Viking::new("Olaf", "Denmark"), 24); +/// vikings.insert(Viking::new("Harald", "Iceland"), 12); +/// +/// // Use derived implementation to print the status of the vikings. +/// for (viking, health) in &vikings { +/// println!("{:?} has {} hp", viking, health); +/// } +/// ``` +/// +/// A `HashMap` with fixed list of elements can be initialized from an array: +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// let timber_resources: HashMap<&str, i32> = [("Norway", 100), ("Denmark", 50), ("Iceland", 10)] +/// .into_iter().collect(); +/// // use the values stored in map +/// ``` +pub struct HashMap { + pub(crate) hash_builder: S, + pub(crate) table: RawTable<(K, V), A>, +} + +impl Clone for HashMap { + fn clone(&self) -> Self { + HashMap { + hash_builder: self.hash_builder.clone(), + table: self.table.clone(), + } + } + + fn clone_from(&mut self, source: &Self) { + self.table.clone_from(&source.table); + + // Update hash_builder only if we successfully cloned all elements. + self.hash_builder.clone_from(&source.hash_builder); + } +} + +/// Ensures that a single closure type across uses of this which, in turn prevents multiple +/// instances of any functions like RawTable::reserve from being generated +#[cfg_attr(feature = "inline-more", inline)] +pub(crate) fn make_hasher(hash_builder: &S) -> impl Fn(&(Q, V)) -> u64 + '_ +where + Q: Hash, + S: BuildHasher, +{ + move |val| make_hash::(hash_builder, &val.0) +} + +/// Ensures that a single closure type across uses of this which, in turn prevents multiple +/// instances of any functions like RawTable::reserve from being generated +#[cfg_attr(feature = "inline-more", inline)] +fn equivalent_key(k: &Q) -> impl Fn(&(K, V)) -> bool + '_ +where + Q: ?Sized + Equivalent, +{ + move |x| k.equivalent(&x.0) +} + +/// Ensures that a single closure type across uses of this which, in turn prevents multiple +/// instances of any functions like RawTable::reserve from being generated +#[cfg_attr(feature = "inline-more", inline)] +fn equivalent(k: &Q) -> impl Fn(&K) -> bool + '_ +where + Q: ?Sized + Equivalent, +{ + move |x| k.equivalent(x) +} + +#[cfg(not(feature = "nightly"))] +#[cfg_attr(feature = "inline-more", inline)] +pub(crate) fn make_hash(hash_builder: &S, val: &Q) -> u64 +where + Q: Hash + ?Sized, + S: BuildHasher, +{ + use core::hash::Hasher; + let mut state = hash_builder.build_hasher(); + val.hash(&mut state); + state.finish() +} + +#[cfg(feature = "nightly")] +#[cfg_attr(feature = "inline-more", inline)] +pub(crate) fn make_hash(hash_builder: &S, val: &Q) -> u64 +where + Q: Hash + ?Sized, + S: BuildHasher, +{ + hash_builder.hash_one(val) +} + +#[cfg(feature = "ahash")] +impl HashMap { + /// Creates an empty `HashMap`. + /// + /// The hash map is initially created with a capacity of 0, so it will not allocate until it + /// is first inserted into. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashMap` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashMap`], for example with + /// [`with_hasher`](HashMap::with_hasher) method. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// let mut map: HashMap<&str, i32> = HashMap::new(); + /// assert_eq!(map.len(), 0); + /// assert_eq!(map.capacity(), 0); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn new() -> Self { + Self::default() + } + + /// Creates an empty `HashMap` with the specified capacity. + /// + /// The hash map will be able to hold at least `capacity` elements without + /// reallocating. If `capacity` is 0, the hash map will not allocate. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashMap` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashMap`], for example with + /// [`with_capacity_and_hasher`](HashMap::with_capacity_and_hasher) method. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// let mut map: HashMap<&str, i32> = HashMap::with_capacity(10); + /// assert_eq!(map.len(), 0); + /// assert!(map.capacity() >= 10); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn with_capacity(capacity: usize) -> Self { + Self::with_capacity_and_hasher(capacity, DefaultHashBuilder::default()) + } +} + +#[cfg(feature = "ahash")] +impl HashMap { + /// Creates an empty `HashMap` using the given allocator. + /// + /// The hash map is initially created with a capacity of 0, so it will not allocate until it + /// is first inserted into. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashMap` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashMap`], for example with + /// [`with_hasher_in`](HashMap::with_hasher_in) method. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use bumpalo::Bump; + /// + /// let bump = Bump::new(); + /// let mut map = HashMap::new_in(&bump); + /// + /// // The created HashMap holds none elements + /// assert_eq!(map.len(), 0); + /// + /// // The created HashMap also doesn't allocate memory + /// assert_eq!(map.capacity(), 0); + /// + /// // Now we insert element inside created HashMap + /// map.insert("One", 1); + /// // We can see that the HashMap holds 1 element + /// assert_eq!(map.len(), 1); + /// // And it also allocates some capacity + /// assert!(map.capacity() > 1); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn new_in(alloc: A) -> Self { + Self::with_hasher_in(DefaultHashBuilder::default(), alloc) + } + + /// Creates an empty `HashMap` with the specified capacity using the given allocator. + /// + /// The hash map will be able to hold at least `capacity` elements without + /// reallocating. If `capacity` is 0, the hash map will not allocate. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashMap` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashMap`], for example with + /// [`with_capacity_and_hasher_in`](HashMap::with_capacity_and_hasher_in) method. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use bumpalo::Bump; + /// + /// let bump = Bump::new(); + /// let mut map = HashMap::with_capacity_in(5, &bump); + /// + /// // The created HashMap holds none elements + /// assert_eq!(map.len(), 0); + /// // But it can hold at least 5 elements without reallocating + /// let empty_map_capacity = map.capacity(); + /// assert!(empty_map_capacity >= 5); + /// + /// // Now we insert some 5 elements inside created HashMap + /// map.insert("One", 1); + /// map.insert("Two", 2); + /// map.insert("Three", 3); + /// map.insert("Four", 4); + /// map.insert("Five", 5); + /// + /// // We can see that the HashMap holds 5 elements + /// assert_eq!(map.len(), 5); + /// // But its capacity isn't changed + /// assert_eq!(map.capacity(), empty_map_capacity) + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn with_capacity_in(capacity: usize, alloc: A) -> Self { + Self::with_capacity_and_hasher_in(capacity, DefaultHashBuilder::default(), alloc) + } +} + +impl HashMap { + /// Creates an empty `HashMap` which will use the given hash builder to hash + /// keys. + /// + /// The hash map is initially created with a capacity of 0, so it will not + /// allocate until it is first inserted into. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashMap` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashMap`]. + /// + /// The `hash_builder` passed should implement the [`BuildHasher`] trait for + /// the HashMap to be useful, see its documentation for details. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// [`BuildHasher`]: https://doc.rust-lang.org/std/hash/trait.BuildHasher.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::DefaultHashBuilder; + /// + /// let s = DefaultHashBuilder::default(); + /// let mut map = HashMap::with_hasher(s); + /// assert_eq!(map.len(), 0); + /// assert_eq!(map.capacity(), 0); + /// + /// map.insert(1, 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub const fn with_hasher(hash_builder: S) -> Self { + Self { + hash_builder, + table: RawTable::new(), + } + } + + /// Creates an empty `HashMap` with the specified capacity, using `hash_builder` + /// to hash the keys. + /// + /// The hash map will be able to hold at least `capacity` elements without + /// reallocating. If `capacity` is 0, the hash map will not allocate. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashMap` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashMap`]. + /// + /// The `hash_builder` passed should implement the [`BuildHasher`] trait for + /// the HashMap to be useful, see its documentation for details. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// [`BuildHasher`]: https://doc.rust-lang.org/std/hash/trait.BuildHasher.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::DefaultHashBuilder; + /// + /// let s = DefaultHashBuilder::default(); + /// let mut map = HashMap::with_capacity_and_hasher(10, s); + /// assert_eq!(map.len(), 0); + /// assert!(map.capacity() >= 10); + /// + /// map.insert(1, 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn with_capacity_and_hasher(capacity: usize, hash_builder: S) -> Self { + Self { + hash_builder, + table: RawTable::with_capacity(capacity), + } + } +} + +impl HashMap { + /// Returns a reference to the underlying allocator. + #[inline] + pub fn allocator(&self) -> &A { + self.table.allocator() + } + + /// Creates an empty `HashMap` which will use the given hash builder to hash + /// keys. It will be allocated with the given allocator. + /// + /// The hash map is initially created with a capacity of 0, so it will not allocate until it + /// is first inserted into. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashMap` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashMap`]. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::DefaultHashBuilder; + /// + /// let s = DefaultHashBuilder::default(); + /// let mut map = HashMap::with_hasher(s); + /// map.insert(1, 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub const fn with_hasher_in(hash_builder: S, alloc: A) -> Self { + Self { + hash_builder, + table: RawTable::new_in(alloc), + } + } + + /// Creates an empty `HashMap` with the specified capacity, using `hash_builder` + /// to hash the keys. It will be allocated with the given allocator. + /// + /// The hash map will be able to hold at least `capacity` elements without + /// reallocating. If `capacity` is 0, the hash map will not allocate. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashMap` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashMap`]. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::DefaultHashBuilder; + /// + /// let s = DefaultHashBuilder::default(); + /// let mut map = HashMap::with_capacity_and_hasher(10, s); + /// map.insert(1, 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn with_capacity_and_hasher_in(capacity: usize, hash_builder: S, alloc: A) -> Self { + Self { + hash_builder, + table: RawTable::with_capacity_in(capacity, alloc), + } + } + + /// Returns a reference to the map's [`BuildHasher`]. + /// + /// [`BuildHasher`]: https://doc.rust-lang.org/std/hash/trait.BuildHasher.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::DefaultHashBuilder; + /// + /// let hasher = DefaultHashBuilder::default(); + /// let map: HashMap = HashMap::with_hasher(hasher); + /// let hasher: &DefaultHashBuilder = map.hasher(); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn hasher(&self) -> &S { + &self.hash_builder + } + + /// Returns the number of elements the map can hold without reallocating. + /// + /// This number is a lower bound; the `HashMap` might be able to hold + /// more, but is guaranteed to be able to hold at least this many. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// let map: HashMap = HashMap::with_capacity(100); + /// assert_eq!(map.len(), 0); + /// assert!(map.capacity() >= 100); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn capacity(&self) -> usize { + self.table.capacity() + } + + /// An iterator visiting all keys in arbitrary order. + /// The iterator element type is `&'a K`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert("a", 1); + /// map.insert("b", 2); + /// map.insert("c", 3); + /// assert_eq!(map.len(), 3); + /// let mut vec: Vec<&str> = Vec::new(); + /// + /// for key in map.keys() { + /// println!("{}", key); + /// vec.push(*key); + /// } + /// + /// // The `Keys` iterator produces keys in arbitrary order, so the + /// // keys must be sorted to test them against a sorted array. + /// vec.sort_unstable(); + /// assert_eq!(vec, ["a", "b", "c"]); + /// + /// assert_eq!(map.len(), 3); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn keys(&self) -> Keys<'_, K, V> { + Keys { inner: self.iter() } + } + + /// An iterator visiting all values in arbitrary order. + /// The iterator element type is `&'a V`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert("a", 1); + /// map.insert("b", 2); + /// map.insert("c", 3); + /// assert_eq!(map.len(), 3); + /// let mut vec: Vec = Vec::new(); + /// + /// for val in map.values() { + /// println!("{}", val); + /// vec.push(*val); + /// } + /// + /// // The `Values` iterator produces values in arbitrary order, so the + /// // values must be sorted to test them against a sorted array. + /// vec.sort_unstable(); + /// assert_eq!(vec, [1, 2, 3]); + /// + /// assert_eq!(map.len(), 3); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn values(&self) -> Values<'_, K, V> { + Values { inner: self.iter() } + } + + /// An iterator visiting all values mutably in arbitrary order. + /// The iterator element type is `&'a mut V`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// + /// map.insert("a", 1); + /// map.insert("b", 2); + /// map.insert("c", 3); + /// + /// for val in map.values_mut() { + /// *val = *val + 10; + /// } + /// + /// assert_eq!(map.len(), 3); + /// let mut vec: Vec = Vec::new(); + /// + /// for val in map.values() { + /// println!("{}", val); + /// vec.push(*val); + /// } + /// + /// // The `Values` iterator produces values in arbitrary order, so the + /// // values must be sorted to test them against a sorted array. + /// vec.sort_unstable(); + /// assert_eq!(vec, [11, 12, 13]); + /// + /// assert_eq!(map.len(), 3); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn values_mut(&mut self) -> ValuesMut<'_, K, V> { + ValuesMut { + inner: self.iter_mut(), + } + } + + /// An iterator visiting all key-value pairs in arbitrary order. + /// The iterator element type is `(&'a K, &'a V)`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert("a", 1); + /// map.insert("b", 2); + /// map.insert("c", 3); + /// assert_eq!(map.len(), 3); + /// let mut vec: Vec<(&str, i32)> = Vec::new(); + /// + /// for (key, val) in map.iter() { + /// println!("key: {} val: {}", key, val); + /// vec.push((*key, *val)); + /// } + /// + /// // The `Iter` iterator produces items in arbitrary order, so the + /// // items must be sorted to test them against a sorted array. + /// vec.sort_unstable(); + /// assert_eq!(vec, [("a", 1), ("b", 2), ("c", 3)]); + /// + /// assert_eq!(map.len(), 3); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn iter(&self) -> Iter<'_, K, V> { + // Here we tie the lifetime of self to the iter. + unsafe { + Iter { + inner: self.table.iter(), + marker: PhantomData, + } + } + } + + /// An iterator visiting all key-value pairs in arbitrary order, + /// with mutable references to the values. + /// The iterator element type is `(&'a K, &'a mut V)`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert("a", 1); + /// map.insert("b", 2); + /// map.insert("c", 3); + /// + /// // Update all values + /// for (_, val) in map.iter_mut() { + /// *val *= 2; + /// } + /// + /// assert_eq!(map.len(), 3); + /// let mut vec: Vec<(&str, i32)> = Vec::new(); + /// + /// for (key, val) in &map { + /// println!("key: {} val: {}", key, val); + /// vec.push((*key, *val)); + /// } + /// + /// // The `Iter` iterator produces items in arbitrary order, so the + /// // items must be sorted to test them against a sorted array. + /// vec.sort_unstable(); + /// assert_eq!(vec, [("a", 2), ("b", 4), ("c", 6)]); + /// + /// assert_eq!(map.len(), 3); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn iter_mut(&mut self) -> IterMut<'_, K, V> { + // Here we tie the lifetime of self to the iter. + unsafe { + IterMut { + inner: self.table.iter(), + marker: PhantomData, + } + } + } + + #[cfg(test)] + #[cfg_attr(feature = "inline-more", inline)] + fn raw_capacity(&self) -> usize { + self.table.buckets() + } + + /// Returns the number of elements in the map. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut a = HashMap::new(); + /// assert_eq!(a.len(), 0); + /// a.insert(1, "a"); + /// assert_eq!(a.len(), 1); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn len(&self) -> usize { + self.table.len() + } + + /// Returns `true` if the map contains no elements. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut a = HashMap::new(); + /// assert!(a.is_empty()); + /// a.insert(1, "a"); + /// assert!(!a.is_empty()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn is_empty(&self) -> bool { + self.len() == 0 + } + + /// Clears the map, returning all key-value pairs as an iterator. Keeps the + /// allocated memory for reuse. + /// + /// If the returned iterator is dropped before being fully consumed, it + /// drops the remaining key-value pairs. The returned iterator keeps a + /// mutable borrow on the vector to optimize its implementation. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut a = HashMap::new(); + /// a.insert(1, "a"); + /// a.insert(2, "b"); + /// let capacity_before_drain = a.capacity(); + /// + /// for (k, v) in a.drain().take(1) { + /// assert!(k == 1 || k == 2); + /// assert!(v == "a" || v == "b"); + /// } + /// + /// // As we can see, the map is empty and contains no element. + /// assert!(a.is_empty() && a.len() == 0); + /// // But map capacity is equal to old one. + /// assert_eq!(a.capacity(), capacity_before_drain); + /// + /// let mut a = HashMap::new(); + /// a.insert(1, "a"); + /// a.insert(2, "b"); + /// + /// { // Iterator is dropped without being consumed. + /// let d = a.drain(); + /// } + /// + /// // But the map is empty even if we do not use Drain iterator. + /// assert!(a.is_empty()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn drain(&mut self) -> Drain<'_, K, V, A> { + Drain { + inner: self.table.drain(), + } + } + + /// Retains only the elements specified by the predicate. Keeps the + /// allocated memory for reuse. + /// + /// In other words, remove all pairs `(k, v)` such that `f(&k, &mut v)` returns `false`. + /// The elements are visited in unsorted (and unspecified) order. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap = (0..8).map(|x|(x, x*10)).collect(); + /// assert_eq!(map.len(), 8); + /// + /// map.retain(|&k, _| k % 2 == 0); + /// + /// // We can see, that the number of elements inside map is changed. + /// assert_eq!(map.len(), 4); + /// + /// let mut vec: Vec<(i32, i32)> = map.iter().map(|(&k, &v)| (k, v)).collect(); + /// vec.sort_unstable(); + /// assert_eq!(vec, [(0, 0), (2, 20), (4, 40), (6, 60)]); + /// ``` + pub fn retain(&mut self, mut f: F) + where + F: FnMut(&K, &mut V) -> bool, + { + // Here we only use `iter` as a temporary, preventing use-after-free + unsafe { + for item in self.table.iter() { + let &mut (ref key, ref mut value) = item.as_mut(); + if !f(key, value) { + self.table.erase(item); + } + } + } + } + + /// Drains elements which are true under the given predicate, + /// and returns an iterator over the removed items. + /// + /// In other words, move all pairs `(k, v)` such that `f(&k, &mut v)` returns `true` out + /// into another iterator. + /// + /// Note that `extract_if` lets you mutate every value in the filter closure, regardless of + /// whether you choose to keep or remove it. + /// + /// If the returned `ExtractIf` is not exhausted, e.g. because it is dropped without iterating + /// or the iteration short-circuits, then the remaining elements will be retained. + /// Use [`retain()`] with a negated predicate if you do not need the returned iterator. + /// + /// Keeps the allocated memory for reuse. + /// + /// [`retain()`]: HashMap::retain + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap = (0..8).map(|x| (x, x)).collect(); + /// + /// let drained: HashMap = map.extract_if(|k, _v| k % 2 == 0).collect(); + /// + /// let mut evens = drained.keys().cloned().collect::>(); + /// let mut odds = map.keys().cloned().collect::>(); + /// evens.sort(); + /// odds.sort(); + /// + /// assert_eq!(evens, vec![0, 2, 4, 6]); + /// assert_eq!(odds, vec![1, 3, 5, 7]); + /// + /// let mut map: HashMap = (0..8).map(|x| (x, x)).collect(); + /// + /// { // Iterator is dropped without being consumed. + /// let d = map.extract_if(|k, _v| k % 2 != 0); + /// } + /// + /// // ExtractIf was not exhausted, therefore no elements were drained. + /// assert_eq!(map.len(), 8); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn extract_if(&mut self, f: F) -> ExtractIf<'_, K, V, F, A> + where + F: FnMut(&K, &mut V) -> bool, + { + ExtractIf { + f, + inner: RawExtractIf { + iter: unsafe { self.table.iter() }, + table: &mut self.table, + }, + } + } + + /// Clears the map, removing all key-value pairs. Keeps the allocated memory + /// for reuse. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut a = HashMap::new(); + /// a.insert(1, "a"); + /// let capacity_before_clear = a.capacity(); + /// + /// a.clear(); + /// + /// // Map is empty. + /// assert!(a.is_empty()); + /// // But map capacity is equal to old one. + /// assert_eq!(a.capacity(), capacity_before_clear); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn clear(&mut self) { + self.table.clear(); + } + + /// Creates a consuming iterator visiting all the keys in arbitrary order. + /// The map cannot be used after calling this. + /// The iterator element type is `K`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert("a", 1); + /// map.insert("b", 2); + /// map.insert("c", 3); + /// + /// let mut vec: Vec<&str> = map.into_keys().collect(); + /// + /// // The `IntoKeys` iterator produces keys in arbitrary order, so the + /// // keys must be sorted to test them against a sorted array. + /// vec.sort_unstable(); + /// assert_eq!(vec, ["a", "b", "c"]); + /// ``` + #[inline] + pub fn into_keys(self) -> IntoKeys { + IntoKeys { + inner: self.into_iter(), + } + } + + /// Creates a consuming iterator visiting all the values in arbitrary order. + /// The map cannot be used after calling this. + /// The iterator element type is `V`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert("a", 1); + /// map.insert("b", 2); + /// map.insert("c", 3); + /// + /// let mut vec: Vec = map.into_values().collect(); + /// + /// // The `IntoValues` iterator produces values in arbitrary order, so + /// // the values must be sorted to test them against a sorted array. + /// vec.sort_unstable(); + /// assert_eq!(vec, [1, 2, 3]); + /// ``` + #[inline] + pub fn into_values(self) -> IntoValues { + IntoValues { + inner: self.into_iter(), + } + } +} + +impl HashMap +where + K: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + /// Reserves capacity for at least `additional` more elements to be inserted + /// in the `HashMap`. The collection may reserve more space to avoid + /// frequent reallocations. + /// + /// # Panics + /// + /// Panics if the new capacity exceeds [`isize::MAX`] bytes and [`abort`] the program + /// in case of allocation error. Use [`try_reserve`](HashMap::try_reserve) instead + /// if you want to handle memory allocation failure. + /// + /// [`isize::MAX`]: https://doc.rust-lang.org/std/primitive.isize.html + /// [`abort`]: https://doc.rust-lang.org/alloc/alloc/fn.handle_alloc_error.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// let mut map: HashMap<&str, i32> = HashMap::new(); + /// // Map is empty and doesn't allocate memory + /// assert_eq!(map.capacity(), 0); + /// + /// map.reserve(10); + /// + /// // And now map can hold at least 10 elements + /// assert!(map.capacity() >= 10); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn reserve(&mut self, additional: usize) { + self.table + .reserve(additional, make_hasher::<_, V, S>(&self.hash_builder)); + } + + /// Tries to reserve capacity for at least `additional` more elements to be inserted + /// in the given `HashMap`. The collection may reserve more space to avoid + /// frequent reallocations. + /// + /// # Errors + /// + /// If the capacity overflows, or the allocator reports a failure, then an error + /// is returned. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, isize> = HashMap::new(); + /// // Map is empty and doesn't allocate memory + /// assert_eq!(map.capacity(), 0); + /// + /// map.try_reserve(10).expect("why is the test harness OOMing on 10 bytes?"); + /// + /// // And now map can hold at least 10 elements + /// assert!(map.capacity() >= 10); + /// ``` + /// If the capacity overflows, or the allocator reports a failure, then an error + /// is returned: + /// ``` + /// # fn test() { + /// use hashbrown::HashMap; + /// use hashbrown::TryReserveError; + /// let mut map: HashMap = HashMap::new(); + /// + /// match map.try_reserve(usize::MAX) { + /// Err(error) => match error { + /// TryReserveError::CapacityOverflow => {} + /// _ => panic!("TryReserveError::AllocError ?"), + /// }, + /// _ => panic!(), + /// } + /// # } + /// # fn main() { + /// # #[cfg(not(miri))] + /// # test() + /// # } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError> { + self.table + .try_reserve(additional, make_hasher::<_, V, S>(&self.hash_builder)) + } + + /// Shrinks the capacity of the map as much as possible. It will drop + /// down as much as possible while maintaining the internal rules + /// and possibly leaving some space in accordance with the resize policy. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap = HashMap::with_capacity(100); + /// map.insert(1, 2); + /// map.insert(3, 4); + /// assert!(map.capacity() >= 100); + /// map.shrink_to_fit(); + /// assert!(map.capacity() >= 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn shrink_to_fit(&mut self) { + self.table + .shrink_to(0, make_hasher::<_, V, S>(&self.hash_builder)); + } + + /// Shrinks the capacity of the map with a lower limit. It will drop + /// down no lower than the supplied limit while maintaining the internal rules + /// and possibly leaving some space in accordance with the resize policy. + /// + /// This function does nothing if the current capacity is smaller than the + /// supplied minimum capacity. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap = HashMap::with_capacity(100); + /// map.insert(1, 2); + /// map.insert(3, 4); + /// assert!(map.capacity() >= 100); + /// map.shrink_to(10); + /// assert!(map.capacity() >= 10); + /// map.shrink_to(0); + /// assert!(map.capacity() >= 2); + /// map.shrink_to(10); + /// assert!(map.capacity() >= 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn shrink_to(&mut self, min_capacity: usize) { + self.table + .shrink_to(min_capacity, make_hasher::<_, V, S>(&self.hash_builder)); + } + + /// Gets the given key's corresponding entry in the map for in-place manipulation. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut letters = HashMap::new(); + /// + /// for ch in "a short treatise on fungi".chars() { + /// let counter = letters.entry(ch).or_insert(0); + /// *counter += 1; + /// } + /// + /// assert_eq!(letters[&'s'], 2); + /// assert_eq!(letters[&'t'], 3); + /// assert_eq!(letters[&'u'], 1); + /// assert_eq!(letters.get(&'y'), None); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn entry(&mut self, key: K) -> Entry<'_, K, V, S, A> { + let hash = make_hash::(&self.hash_builder, &key); + if let Some(elem) = self.table.find(hash, equivalent_key(&key)) { + Entry::Occupied(OccupiedEntry { + hash, + key: Some(key), + elem, + table: self, + }) + } else { + Entry::Vacant(VacantEntry { + hash, + key, + table: self, + }) + } + } + + /// Gets the given key's corresponding entry by reference in the map for in-place manipulation. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut words: HashMap = HashMap::new(); + /// let source = ["poneyland", "horseyland", "poneyland", "poneyland"]; + /// for (i, &s) in source.iter().enumerate() { + /// let counter = words.entry_ref(s).or_insert(0); + /// *counter += 1; + /// } + /// + /// assert_eq!(words["poneyland"], 3); + /// assert_eq!(words["horseyland"], 1); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn entry_ref<'a, 'b, Q: ?Sized>(&'a mut self, key: &'b Q) -> EntryRef<'a, 'b, K, Q, V, S, A> + where + Q: Hash + Equivalent, + { + let hash = make_hash::(&self.hash_builder, key); + if let Some(elem) = self.table.find(hash, equivalent_key(key)) { + EntryRef::Occupied(OccupiedEntryRef { + hash, + key: Some(KeyOrRef::Borrowed(key)), + elem, + table: self, + }) + } else { + EntryRef::Vacant(VacantEntryRef { + hash, + key: KeyOrRef::Borrowed(key), + table: self, + }) + } + } + + /// Returns a reference to the value corresponding to the key. + /// + /// The key may be any borrowed form of the map's key type, but + /// [`Hash`] and [`Eq`] on the borrowed form *must* match those for + /// the key type. + /// + /// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html + /// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert(1, "a"); + /// assert_eq!(map.get(&1), Some(&"a")); + /// assert_eq!(map.get(&2), None); + /// ``` + #[inline] + pub fn get(&self, k: &Q) -> Option<&V> + where + Q: Hash + Equivalent, + { + // Avoid `Option::map` because it bloats LLVM IR. + match self.get_inner(k) { + Some((_, v)) => Some(v), + None => None, + } + } + + /// Returns the key-value pair corresponding to the supplied key. + /// + /// The supplied key may be any borrowed form of the map's key type, but + /// [`Hash`] and [`Eq`] on the borrowed form *must* match those for + /// the key type. + /// + /// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html + /// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert(1, "a"); + /// assert_eq!(map.get_key_value(&1), Some((&1, &"a"))); + /// assert_eq!(map.get_key_value(&2), None); + /// ``` + #[inline] + pub fn get_key_value(&self, k: &Q) -> Option<(&K, &V)> + where + Q: Hash + Equivalent, + { + // Avoid `Option::map` because it bloats LLVM IR. + match self.get_inner(k) { + Some((key, value)) => Some((key, value)), + None => None, + } + } + + #[inline] + fn get_inner(&self, k: &Q) -> Option<&(K, V)> + where + Q: Hash + Equivalent, + { + if self.table.is_empty() { + None + } else { + let hash = make_hash::(&self.hash_builder, k); + self.table.get(hash, equivalent_key(k)) + } + } + + /// Returns the key-value pair corresponding to the supplied key, with a mutable reference to value. + /// + /// The supplied key may be any borrowed form of the map's key type, but + /// [`Hash`] and [`Eq`] on the borrowed form *must* match those for + /// the key type. + /// + /// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html + /// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert(1, "a"); + /// let (k, v) = map.get_key_value_mut(&1).unwrap(); + /// assert_eq!(k, &1); + /// assert_eq!(v, &mut "a"); + /// *v = "b"; + /// assert_eq!(map.get_key_value_mut(&1), Some((&1, &mut "b"))); + /// assert_eq!(map.get_key_value_mut(&2), None); + /// ``` + #[inline] + pub fn get_key_value_mut(&mut self, k: &Q) -> Option<(&K, &mut V)> + where + Q: Hash + Equivalent, + { + // Avoid `Option::map` because it bloats LLVM IR. + match self.get_inner_mut(k) { + Some(&mut (ref key, ref mut value)) => Some((key, value)), + None => None, + } + } + + /// Returns `true` if the map contains a value for the specified key. + /// + /// The key may be any borrowed form of the map's key type, but + /// [`Hash`] and [`Eq`] on the borrowed form *must* match those for + /// the key type. + /// + /// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html + /// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert(1, "a"); + /// assert_eq!(map.contains_key(&1), true); + /// assert_eq!(map.contains_key(&2), false); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn contains_key(&self, k: &Q) -> bool + where + Q: Hash + Equivalent, + { + self.get_inner(k).is_some() + } + + /// Returns a mutable reference to the value corresponding to the key. + /// + /// The key may be any borrowed form of the map's key type, but + /// [`Hash`] and [`Eq`] on the borrowed form *must* match those for + /// the key type. + /// + /// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html + /// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert(1, "a"); + /// if let Some(x) = map.get_mut(&1) { + /// *x = "b"; + /// } + /// assert_eq!(map[&1], "b"); + /// + /// assert_eq!(map.get_mut(&2), None); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get_mut(&mut self, k: &Q) -> Option<&mut V> + where + Q: Hash + Equivalent, + { + // Avoid `Option::map` because it bloats LLVM IR. + match self.get_inner_mut(k) { + Some(&mut (_, ref mut v)) => Some(v), + None => None, + } + } + + #[inline] + fn get_inner_mut(&mut self, k: &Q) -> Option<&mut (K, V)> + where + Q: Hash + Equivalent, + { + if self.table.is_empty() { + None + } else { + let hash = make_hash::(&self.hash_builder, k); + self.table.get_mut(hash, equivalent_key(k)) + } + } + + /// Attempts to get mutable references to `N` values in the map at once. + /// + /// Returns an array of length `N` with the results of each query. For soundness, at most one + /// mutable reference will be returned to any value. `None` will be returned if any of the + /// keys are duplicates or missing. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut libraries = HashMap::new(); + /// libraries.insert("Bodleian Library".to_string(), 1602); + /// libraries.insert("Athenæum".to_string(), 1807); + /// libraries.insert("Herzogin-Anna-Amalia-Bibliothek".to_string(), 1691); + /// libraries.insert("Library of Congress".to_string(), 1800); + /// + /// let got = libraries.get_many_mut([ + /// "Athenæum", + /// "Library of Congress", + /// ]); + /// assert_eq!( + /// got, + /// Some([ + /// &mut 1807, + /// &mut 1800, + /// ]), + /// ); + /// + /// // Missing keys result in None + /// let got = libraries.get_many_mut([ + /// "Athenæum", + /// "New York Public Library", + /// ]); + /// assert_eq!(got, None); + /// + /// // Duplicate keys result in None + /// let got = libraries.get_many_mut([ + /// "Athenæum", + /// "Athenæum", + /// ]); + /// assert_eq!(got, None); + /// ``` + pub fn get_many_mut(&mut self, ks: [&Q; N]) -> Option<[&'_ mut V; N]> + where + Q: Hash + Equivalent, + { + self.get_many_mut_inner(ks).map(|res| res.map(|(_, v)| v)) + } + + /// Attempts to get mutable references to `N` values in the map at once, without validating that + /// the values are unique. + /// + /// Returns an array of length `N` with the results of each query. `None` will be returned if + /// any of the keys are missing. + /// + /// For a safe alternative see [`get_many_mut`](`HashMap::get_many_mut`). + /// + /// # Safety + /// + /// Calling this method with overlapping keys is *[undefined behavior]* even if the resulting + /// references are not used. + /// + /// [undefined behavior]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut libraries = HashMap::new(); + /// libraries.insert("Bodleian Library".to_string(), 1602); + /// libraries.insert("Athenæum".to_string(), 1807); + /// libraries.insert("Herzogin-Anna-Amalia-Bibliothek".to_string(), 1691); + /// libraries.insert("Library of Congress".to_string(), 1800); + /// + /// let got = libraries.get_many_mut([ + /// "Athenæum", + /// "Library of Congress", + /// ]); + /// assert_eq!( + /// got, + /// Some([ + /// &mut 1807, + /// &mut 1800, + /// ]), + /// ); + /// + /// // Missing keys result in None + /// let got = libraries.get_many_mut([ + /// "Athenæum", + /// "New York Public Library", + /// ]); + /// assert_eq!(got, None); + /// ``` + pub unsafe fn get_many_unchecked_mut( + &mut self, + ks: [&Q; N], + ) -> Option<[&'_ mut V; N]> + where + Q: Hash + Equivalent, + { + self.get_many_unchecked_mut_inner(ks) + .map(|res| res.map(|(_, v)| v)) + } + + /// Attempts to get mutable references to `N` values in the map at once, with immutable + /// references to the corresponding keys. + /// + /// Returns an array of length `N` with the results of each query. For soundness, at most one + /// mutable reference will be returned to any value. `None` will be returned if any of the keys + /// are duplicates or missing. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut libraries = HashMap::new(); + /// libraries.insert("Bodleian Library".to_string(), 1602); + /// libraries.insert("Athenæum".to_string(), 1807); + /// libraries.insert("Herzogin-Anna-Amalia-Bibliothek".to_string(), 1691); + /// libraries.insert("Library of Congress".to_string(), 1800); + /// + /// let got = libraries.get_many_key_value_mut([ + /// "Bodleian Library", + /// "Herzogin-Anna-Amalia-Bibliothek", + /// ]); + /// assert_eq!( + /// got, + /// Some([ + /// (&"Bodleian Library".to_string(), &mut 1602), + /// (&"Herzogin-Anna-Amalia-Bibliothek".to_string(), &mut 1691), + /// ]), + /// ); + /// // Missing keys result in None + /// let got = libraries.get_many_key_value_mut([ + /// "Bodleian Library", + /// "Gewandhaus", + /// ]); + /// assert_eq!(got, None); + /// + /// // Duplicate keys result in None + /// let got = libraries.get_many_key_value_mut([ + /// "Bodleian Library", + /// "Herzogin-Anna-Amalia-Bibliothek", + /// "Herzogin-Anna-Amalia-Bibliothek", + /// ]); + /// assert_eq!(got, None); + /// ``` + pub fn get_many_key_value_mut( + &mut self, + ks: [&Q; N], + ) -> Option<[(&'_ K, &'_ mut V); N]> + where + Q: Hash + Equivalent, + { + self.get_many_mut_inner(ks) + .map(|res| res.map(|(k, v)| (&*k, v))) + } + + /// Attempts to get mutable references to `N` values in the map at once, with immutable + /// references to the corresponding keys, without validating that the values are unique. + /// + /// Returns an array of length `N` with the results of each query. `None` will be returned if + /// any of the keys are missing. + /// + /// For a safe alternative see [`get_many_key_value_mut`](`HashMap::get_many_key_value_mut`). + /// + /// # Safety + /// + /// Calling this method with overlapping keys is *[undefined behavior]* even if the resulting + /// references are not used. + /// + /// [undefined behavior]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut libraries = HashMap::new(); + /// libraries.insert("Bodleian Library".to_string(), 1602); + /// libraries.insert("Athenæum".to_string(), 1807); + /// libraries.insert("Herzogin-Anna-Amalia-Bibliothek".to_string(), 1691); + /// libraries.insert("Library of Congress".to_string(), 1800); + /// + /// let got = libraries.get_many_key_value_mut([ + /// "Bodleian Library", + /// "Herzogin-Anna-Amalia-Bibliothek", + /// ]); + /// assert_eq!( + /// got, + /// Some([ + /// (&"Bodleian Library".to_string(), &mut 1602), + /// (&"Herzogin-Anna-Amalia-Bibliothek".to_string(), &mut 1691), + /// ]), + /// ); + /// // Missing keys result in None + /// let got = libraries.get_many_key_value_mut([ + /// "Bodleian Library", + /// "Gewandhaus", + /// ]); + /// assert_eq!(got, None); + /// ``` + pub unsafe fn get_many_key_value_unchecked_mut( + &mut self, + ks: [&Q; N], + ) -> Option<[(&'_ K, &'_ mut V); N]> + where + Q: Hash + Equivalent, + { + self.get_many_unchecked_mut_inner(ks) + .map(|res| res.map(|(k, v)| (&*k, v))) + } + + fn get_many_mut_inner( + &mut self, + ks: [&Q; N], + ) -> Option<[&'_ mut (K, V); N]> + where + Q: Hash + Equivalent, + { + let hashes = self.build_hashes_inner(ks); + self.table + .get_many_mut(hashes, |i, (k, _)| ks[i].equivalent(k)) + } + + unsafe fn get_many_unchecked_mut_inner( + &mut self, + ks: [&Q; N], + ) -> Option<[&'_ mut (K, V); N]> + where + Q: Hash + Equivalent, + { + let hashes = self.build_hashes_inner(ks); + self.table + .get_many_unchecked_mut(hashes, |i, (k, _)| ks[i].equivalent(k)) + } + + fn build_hashes_inner(&self, ks: [&Q; N]) -> [u64; N] + where + Q: Hash + Equivalent, + { + let mut hashes = [0_u64; N]; + for i in 0..N { + hashes[i] = make_hash::(&self.hash_builder, ks[i]); + } + hashes + } + + /// Inserts a key-value pair into the map. + /// + /// If the map did not have this key present, [`None`] is returned. + /// + /// If the map did have this key present, the value is updated, and the old + /// value is returned. The key is not updated, though; this matters for + /// types that can be `==` without being identical. See the [`std::collections`] + /// [module-level documentation] for more. + /// + /// [`None`]: https://doc.rust-lang.org/std/option/enum.Option.html#variant.None + /// [`std::collections`]: https://doc.rust-lang.org/std/collections/index.html + /// [module-level documentation]: https://doc.rust-lang.org/std/collections/index.html#insert-and-complex-keys + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// assert_eq!(map.insert(37, "a"), None); + /// assert_eq!(map.is_empty(), false); + /// + /// map.insert(37, "b"); + /// assert_eq!(map.insert(37, "c"), Some("b")); + /// assert_eq!(map[&37], "c"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(&mut self, k: K, v: V) -> Option { + let hash = make_hash::(&self.hash_builder, &k); + let hasher = make_hasher::<_, V, S>(&self.hash_builder); + match self + .table + .find_or_find_insert_slot(hash, equivalent_key(&k), hasher) + { + Ok(bucket) => Some(mem::replace(unsafe { &mut bucket.as_mut().1 }, v)), + Err(slot) => { + unsafe { + self.table.insert_in_slot(hash, slot, (k, v)); + } + None + } + } + } + + /// Insert a key-value pair into the map without checking + /// if the key already exists in the map. + /// + /// Returns a reference to the key and value just inserted. + /// + /// This operation is safe if a key does not exist in the map. + /// + /// However, if a key exists in the map already, the behavior is unspecified: + /// this operation may panic, loop forever, or any following operation with the map + /// may panic, loop forever or return arbitrary result. + /// + /// That said, this operation (and following operations) are guaranteed to + /// not violate memory safety. + /// + /// This operation is faster than regular insert, because it does not perform + /// lookup before insertion. + /// + /// This operation is useful during initial population of the map. + /// For example, when constructing a map from another map, we know + /// that keys are unique. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map1 = HashMap::new(); + /// assert_eq!(map1.insert(1, "a"), None); + /// assert_eq!(map1.insert(2, "b"), None); + /// assert_eq!(map1.insert(3, "c"), None); + /// assert_eq!(map1.len(), 3); + /// + /// let mut map2 = HashMap::new(); + /// + /// for (key, value) in map1.into_iter() { + /// map2.insert_unique_unchecked(key, value); + /// } + /// + /// let (key, value) = map2.insert_unique_unchecked(4, "d"); + /// assert_eq!(key, &4); + /// assert_eq!(value, &mut "d"); + /// *value = "e"; + /// + /// assert_eq!(map2[&1], "a"); + /// assert_eq!(map2[&2], "b"); + /// assert_eq!(map2[&3], "c"); + /// assert_eq!(map2[&4], "e"); + /// assert_eq!(map2.len(), 4); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert_unique_unchecked(&mut self, k: K, v: V) -> (&K, &mut V) { + let hash = make_hash::(&self.hash_builder, &k); + let bucket = self + .table + .insert(hash, (k, v), make_hasher::<_, V, S>(&self.hash_builder)); + let (k_ref, v_ref) = unsafe { bucket.as_mut() }; + (k_ref, v_ref) + } + + /// Tries to insert a key-value pair into the map, and returns + /// a mutable reference to the value in the entry. + /// + /// # Errors + /// + /// If the map already had this key present, nothing is updated, and + /// an error containing the occupied entry and the value is returned. + /// + /// # Examples + /// + /// Basic usage: + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::OccupiedError; + /// + /// let mut map = HashMap::new(); + /// assert_eq!(map.try_insert(37, "a").unwrap(), &"a"); + /// + /// match map.try_insert(37, "b") { + /// Err(OccupiedError { entry, value }) => { + /// assert_eq!(entry.key(), &37); + /// assert_eq!(entry.get(), &"a"); + /// assert_eq!(value, "b"); + /// } + /// _ => panic!() + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn try_insert( + &mut self, + key: K, + value: V, + ) -> Result<&mut V, OccupiedError<'_, K, V, S, A>> { + match self.entry(key) { + Entry::Occupied(entry) => Err(OccupiedError { entry, value }), + Entry::Vacant(entry) => Ok(entry.insert(value)), + } + } + + /// Removes a key from the map, returning the value at the key if the key + /// was previously in the map. Keeps the allocated memory for reuse. + /// + /// The key may be any borrowed form of the map's key type, but + /// [`Hash`] and [`Eq`] on the borrowed form *must* match those for + /// the key type. + /// + /// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html + /// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// // The map is empty + /// assert!(map.is_empty() && map.capacity() == 0); + /// + /// map.insert(1, "a"); + /// + /// assert_eq!(map.remove(&1), Some("a")); + /// assert_eq!(map.remove(&1), None); + /// + /// // Now map holds none elements + /// assert!(map.is_empty()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove(&mut self, k: &Q) -> Option + where + Q: Hash + Equivalent, + { + // Avoid `Option::map` because it bloats LLVM IR. + match self.remove_entry(k) { + Some((_, v)) => Some(v), + None => None, + } + } + + /// Removes a key from the map, returning the stored key and value if the + /// key was previously in the map. Keeps the allocated memory for reuse. + /// + /// The key may be any borrowed form of the map's key type, but + /// [`Hash`] and [`Eq`] on the borrowed form *must* match those for + /// the key type. + /// + /// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html + /// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// // The map is empty + /// assert!(map.is_empty() && map.capacity() == 0); + /// + /// map.insert(1, "a"); + /// + /// assert_eq!(map.remove_entry(&1), Some((1, "a"))); + /// assert_eq!(map.remove(&1), None); + /// + /// // Now map hold none elements + /// assert!(map.is_empty()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove_entry(&mut self, k: &Q) -> Option<(K, V)> + where + Q: Hash + Equivalent, + { + let hash = make_hash::(&self.hash_builder, k); + self.table.remove_entry(hash, equivalent_key(k)) + } +} + +impl HashMap { + /// Creates a raw entry builder for the HashMap. + /// + /// Raw entries provide the lowest level of control for searching and + /// manipulating a map. They must be manually initialized with a hash and + /// then manually searched. After this, insertions into a vacant entry + /// still require an owned key to be provided. + /// + /// Raw entries are useful for such exotic situations as: + /// + /// * Hash memoization + /// * Deferring the creation of an owned key until it is known to be required + /// * Using a search key that doesn't work with the Borrow trait + /// * Using custom comparison logic without newtype wrappers + /// + /// Because raw entries provide much more low-level control, it's much easier + /// to put the HashMap into an inconsistent state which, while memory-safe, + /// will cause the map to produce seemingly random results. Higher-level and + /// more foolproof APIs like `entry` should be preferred when possible. + /// + /// In particular, the hash used to initialized the raw entry must still be + /// consistent with the hash of the key that is ultimately stored in the entry. + /// This is because implementations of HashMap may need to recompute hashes + /// when resizing, at which point only the keys are available. + /// + /// Raw entries give mutable access to the keys. This must not be used + /// to modify how the key would compare or hash, as the map will not re-evaluate + /// where the key should go, meaning the keys may become "lost" if their + /// location does not reflect their state. For instance, if you change a key + /// so that the map now contains keys which compare equal, search may start + /// acting erratically, with two keys randomly masking each other. Implementations + /// are free to assume this doesn't happen (within the limits of memory-safety). + /// + /// # Examples + /// + /// ``` + /// use core::hash::{BuildHasher, Hash}; + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// let mut map = HashMap::new(); + /// map.extend([("a", 100), ("b", 200), ("c", 300)]); + /// + /// fn compute_hash(hash_builder: &S, key: &K) -> u64 { + /// use core::hash::Hasher; + /// let mut state = hash_builder.build_hasher(); + /// key.hash(&mut state); + /// state.finish() + /// } + /// + /// // Existing key (insert and update) + /// match map.raw_entry_mut().from_key(&"a") { + /// RawEntryMut::Vacant(_) => unreachable!(), + /// RawEntryMut::Occupied(mut view) => { + /// assert_eq!(view.get(), &100); + /// let v = view.get_mut(); + /// let new_v = (*v) * 10; + /// *v = new_v; + /// assert_eq!(view.insert(1111), 1000); + /// } + /// } + /// + /// assert_eq!(map[&"a"], 1111); + /// assert_eq!(map.len(), 3); + /// + /// // Existing key (take) + /// let hash = compute_hash(map.hasher(), &"c"); + /// match map.raw_entry_mut().from_key_hashed_nocheck(hash, &"c") { + /// RawEntryMut::Vacant(_) => unreachable!(), + /// RawEntryMut::Occupied(view) => { + /// assert_eq!(view.remove_entry(), ("c", 300)); + /// } + /// } + /// assert_eq!(map.raw_entry().from_key(&"c"), None); + /// assert_eq!(map.len(), 2); + /// + /// // Nonexistent key (insert and update) + /// let key = "d"; + /// let hash = compute_hash(map.hasher(), &key); + /// match map.raw_entry_mut().from_hash(hash, |q| *q == key) { + /// RawEntryMut::Occupied(_) => unreachable!(), + /// RawEntryMut::Vacant(view) => { + /// let (k, value) = view.insert("d", 4000); + /// assert_eq!((*k, *value), ("d", 4000)); + /// *value = 40000; + /// } + /// } + /// assert_eq!(map[&"d"], 40000); + /// assert_eq!(map.len(), 3); + /// + /// match map.raw_entry_mut().from_hash(hash, |q| *q == key) { + /// RawEntryMut::Vacant(_) => unreachable!(), + /// RawEntryMut::Occupied(view) => { + /// assert_eq!(view.remove_entry(), ("d", 40000)); + /// } + /// } + /// assert_eq!(map.get(&"d"), None); + /// assert_eq!(map.len(), 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn raw_entry_mut(&mut self) -> RawEntryBuilderMut<'_, K, V, S, A> { + RawEntryBuilderMut { map: self } + } + + /// Creates a raw immutable entry builder for the HashMap. + /// + /// Raw entries provide the lowest level of control for searching and + /// manipulating a map. They must be manually initialized with a hash and + /// then manually searched. + /// + /// This is useful for + /// * Hash memoization + /// * Using a search key that doesn't work with the Borrow trait + /// * Using custom comparison logic without newtype wrappers + /// + /// Unless you are in such a situation, higher-level and more foolproof APIs like + /// `get` should be preferred. + /// + /// Immutable raw entries have very limited use; you might instead want `raw_entry_mut`. + /// + /// # Examples + /// + /// ``` + /// use core::hash::{BuildHasher, Hash}; + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.extend([("a", 100), ("b", 200), ("c", 300)]); + /// + /// fn compute_hash(hash_builder: &S, key: &K) -> u64 { + /// use core::hash::Hasher; + /// let mut state = hash_builder.build_hasher(); + /// key.hash(&mut state); + /// state.finish() + /// } + /// + /// for k in ["a", "b", "c", "d", "e", "f"] { + /// let hash = compute_hash(map.hasher(), k); + /// let v = map.get(&k).cloned(); + /// let kv = v.as_ref().map(|v| (&k, v)); + /// + /// println!("Key: {} and value: {:?}", k, v); + /// + /// assert_eq!(map.raw_entry().from_key(&k), kv); + /// assert_eq!(map.raw_entry().from_hash(hash, |q| *q == k), kv); + /// assert_eq!(map.raw_entry().from_key_hashed_nocheck(hash, &k), kv); + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn raw_entry(&self) -> RawEntryBuilder<'_, K, V, S, A> { + RawEntryBuilder { map: self } + } + + /// Returns a reference to the [`RawTable`] used underneath [`HashMap`]. + /// This function is only available if the `raw` feature of the crate is enabled. + /// + /// See [`raw_table_mut`] for more. + /// + /// [`raw_table_mut`]: Self::raw_table_mut + #[cfg(feature = "raw")] + #[cfg_attr(feature = "inline-more", inline)] + pub fn raw_table(&self) -> &RawTable<(K, V), A> { + &self.table + } + + /// Returns a mutable reference to the [`RawTable`] used underneath [`HashMap`]. + /// This function is only available if the `raw` feature of the crate is enabled. + /// + /// # Note + /// + /// Calling this function is safe, but using the raw hash table API may require + /// unsafe functions or blocks. + /// + /// `RawTable` API gives the lowest level of control under the map that can be useful + /// for extending the HashMap's API, but may lead to *[undefined behavior]*. + /// + /// [`HashMap`]: struct.HashMap.html + /// [`RawTable`]: crate::raw::RawTable + /// [undefined behavior]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + /// + /// # Examples + /// + /// ``` + /// use core::hash::{BuildHasher, Hash}; + /// use hashbrown::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.extend([("a", 10), ("b", 20), ("c", 30)]); + /// assert_eq!(map.len(), 3); + /// + /// // Let's imagine that we have a value and a hash of the key, but not the key itself. + /// // However, if you want to remove the value from the map by hash and value, and you + /// // know exactly that the value is unique, then you can create a function like this: + /// fn remove_by_hash( + /// map: &mut HashMap, + /// hash: u64, + /// is_match: F, + /// ) -> Option<(K, V)> + /// where + /// F: Fn(&(K, V)) -> bool, + /// { + /// let raw_table = map.raw_table_mut(); + /// match raw_table.find(hash, is_match) { + /// Some(bucket) => Some(unsafe { raw_table.remove(bucket).0 }), + /// None => None, + /// } + /// } + /// + /// fn compute_hash(hash_builder: &S, key: &K) -> u64 { + /// use core::hash::Hasher; + /// let mut state = hash_builder.build_hasher(); + /// key.hash(&mut state); + /// state.finish() + /// } + /// + /// let hash = compute_hash(map.hasher(), "a"); + /// assert_eq!(remove_by_hash(&mut map, hash, |(_, v)| *v == 10), Some(("a", 10))); + /// assert_eq!(map.get(&"a"), None); + /// assert_eq!(map.len(), 2); + /// ``` + #[cfg(feature = "raw")] + #[cfg_attr(feature = "inline-more", inline)] + pub fn raw_table_mut(&mut self) -> &mut RawTable<(K, V), A> { + &mut self.table + } +} + +impl PartialEq for HashMap +where + K: Eq + Hash, + V: PartialEq, + S: BuildHasher, + A: Allocator, +{ + fn eq(&self, other: &Self) -> bool { + if self.len() != other.len() { + return false; + } + + self.iter() + .all(|(key, value)| other.get(key).map_or(false, |v| *value == *v)) + } +} + +impl Eq for HashMap +where + K: Eq + Hash, + V: Eq, + S: BuildHasher, + A: Allocator, +{ +} + +impl Debug for HashMap +where + K: Debug, + V: Debug, + A: Allocator, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_map().entries(self.iter()).finish() + } +} + +impl Default for HashMap +where + S: Default, + A: Default + Allocator, +{ + /// Creates an empty `HashMap`, with the `Default` value for the hasher and allocator. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use std::collections::hash_map::RandomState; + /// + /// // You can specify all types of HashMap, including hasher and allocator. + /// // Created map is empty and don't allocate memory + /// let map: HashMap = Default::default(); + /// assert_eq!(map.capacity(), 0); + /// let map: HashMap = HashMap::default(); + /// assert_eq!(map.capacity(), 0); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + fn default() -> Self { + Self::with_hasher_in(Default::default(), Default::default()) + } +} + +impl Index<&Q> for HashMap +where + K: Eq + Hash, + Q: Hash + Equivalent, + S: BuildHasher, + A: Allocator, +{ + type Output = V; + + /// Returns a reference to the value corresponding to the supplied key. + /// + /// # Panics + /// + /// Panics if the key is not present in the `HashMap`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let map: HashMap<_, _> = [("a", "One"), ("b", "Two")].into(); + /// + /// assert_eq!(map[&"a"], "One"); + /// assert_eq!(map[&"b"], "Two"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + fn index(&self, key: &Q) -> &V { + self.get(key).expect("no entry found for key") + } +} + +// The default hasher is used to match the std implementation signature +#[cfg(feature = "ahash")] +impl From<[(K, V); N]> for HashMap +where + K: Eq + Hash, + A: Default + Allocator, +{ + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let map1 = HashMap::from([(1, 2), (3, 4)]); + /// let map2: HashMap<_, _> = [(1, 2), (3, 4)].into(); + /// assert_eq!(map1, map2); + /// ``` + fn from(arr: [(K, V); N]) -> Self { + arr.into_iter().collect() + } +} + +/// An iterator over the entries of a `HashMap` in arbitrary order. +/// The iterator element type is `(&'a K, &'a V)`. +/// +/// This `struct` is created by the [`iter`] method on [`HashMap`]. See its +/// documentation for more. +/// +/// [`iter`]: struct.HashMap.html#method.iter +/// [`HashMap`]: struct.HashMap.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// let map: HashMap<_, _> = [(1, "a"), (2, "b"), (3, "c")].into(); +/// +/// let mut iter = map.iter(); +/// let mut vec = vec![iter.next(), iter.next(), iter.next()]; +/// +/// // The `Iter` iterator produces items in arbitrary order, so the +/// // items must be sorted to test them against a sorted array. +/// vec.sort_unstable(); +/// assert_eq!(vec, [Some((&1, &"a")), Some((&2, &"b")), Some((&3, &"c"))]); +/// +/// // It is fused iterator +/// assert_eq!(iter.next(), None); +/// assert_eq!(iter.next(), None); +/// ``` +pub struct Iter<'a, K, V> { + inner: RawIter<(K, V)>, + marker: PhantomData<(&'a K, &'a V)>, +} + +// FIXME(#26925) Remove in favor of `#[derive(Clone)]` +impl Clone for Iter<'_, K, V> { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Iter { + inner: self.inner.clone(), + marker: PhantomData, + } + } +} + +impl fmt::Debug for Iter<'_, K, V> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list().entries(self.clone()).finish() + } +} + +/// A mutable iterator over the entries of a `HashMap` in arbitrary order. +/// The iterator element type is `(&'a K, &'a mut V)`. +/// +/// This `struct` is created by the [`iter_mut`] method on [`HashMap`]. See its +/// documentation for more. +/// +/// [`iter_mut`]: struct.HashMap.html#method.iter_mut +/// [`HashMap`]: struct.HashMap.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// let mut map: HashMap<_, _> = [(1, "One".to_owned()), (2, "Two".into())].into(); +/// +/// let mut iter = map.iter_mut(); +/// iter.next().map(|(_, v)| v.push_str(" Mississippi")); +/// iter.next().map(|(_, v)| v.push_str(" Mississippi")); +/// +/// // It is fused iterator +/// assert_eq!(iter.next(), None); +/// assert_eq!(iter.next(), None); +/// +/// assert_eq!(map.get(&1).unwrap(), &"One Mississippi".to_owned()); +/// assert_eq!(map.get(&2).unwrap(), &"Two Mississippi".to_owned()); +/// ``` +pub struct IterMut<'a, K, V> { + inner: RawIter<(K, V)>, + // To ensure invariance with respect to V + marker: PhantomData<(&'a K, &'a mut V)>, +} + +// We override the default Send impl which has K: Sync instead of K: Send. Both +// are correct, but this one is more general since it allows keys which +// implement Send but not Sync. +unsafe impl Send for IterMut<'_, K, V> {} + +impl IterMut<'_, K, V> { + /// Returns a iterator of references over the remaining items. + #[cfg_attr(feature = "inline-more", inline)] + pub(super) fn iter(&self) -> Iter<'_, K, V> { + Iter { + inner: self.inner.clone(), + marker: PhantomData, + } + } +} + +/// An owning iterator over the entries of a `HashMap` in arbitrary order. +/// The iterator element type is `(K, V)`. +/// +/// This `struct` is created by the [`into_iter`] method on [`HashMap`] +/// (provided by the [`IntoIterator`] trait). See its documentation for more. +/// The map cannot be used after calling that method. +/// +/// [`into_iter`]: struct.HashMap.html#method.into_iter +/// [`HashMap`]: struct.HashMap.html +/// [`IntoIterator`]: https://doc.rust-lang.org/core/iter/trait.IntoIterator.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// let map: HashMap<_, _> = [(1, "a"), (2, "b"), (3, "c")].into(); +/// +/// let mut iter = map.into_iter(); +/// let mut vec = vec![iter.next(), iter.next(), iter.next()]; +/// +/// // The `IntoIter` iterator produces items in arbitrary order, so the +/// // items must be sorted to test them against a sorted array. +/// vec.sort_unstable(); +/// assert_eq!(vec, [Some((1, "a")), Some((2, "b")), Some((3, "c"))]); +/// +/// // It is fused iterator +/// assert_eq!(iter.next(), None); +/// assert_eq!(iter.next(), None); +/// ``` +pub struct IntoIter { + inner: RawIntoIter<(K, V), A>, +} + +impl IntoIter { + /// Returns a iterator of references over the remaining items. + #[cfg_attr(feature = "inline-more", inline)] + pub(super) fn iter(&self) -> Iter<'_, K, V> { + Iter { + inner: self.inner.iter(), + marker: PhantomData, + } + } +} + +/// An owning iterator over the keys of a `HashMap` in arbitrary order. +/// The iterator element type is `K`. +/// +/// This `struct` is created by the [`into_keys`] method on [`HashMap`]. +/// See its documentation for more. +/// The map cannot be used after calling that method. +/// +/// [`into_keys`]: struct.HashMap.html#method.into_keys +/// [`HashMap`]: struct.HashMap.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// let map: HashMap<_, _> = [(1, "a"), (2, "b"), (3, "c")].into(); +/// +/// let mut keys = map.into_keys(); +/// let mut vec = vec![keys.next(), keys.next(), keys.next()]; +/// +/// // The `IntoKeys` iterator produces keys in arbitrary order, so the +/// // keys must be sorted to test them against a sorted array. +/// vec.sort_unstable(); +/// assert_eq!(vec, [Some(1), Some(2), Some(3)]); +/// +/// // It is fused iterator +/// assert_eq!(keys.next(), None); +/// assert_eq!(keys.next(), None); +/// ``` +pub struct IntoKeys { + inner: IntoIter, +} + +impl Iterator for IntoKeys { + type Item = K; + + #[inline] + fn next(&mut self) -> Option { + self.inner.next().map(|(k, _)| k) + } + #[inline] + fn size_hint(&self) -> (usize, Option) { + self.inner.size_hint() + } + #[inline] + fn fold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.inner.fold(init, |acc, (k, _)| f(acc, k)) + } +} + +impl ExactSizeIterator for IntoKeys { + #[inline] + fn len(&self) -> usize { + self.inner.len() + } +} + +impl FusedIterator for IntoKeys {} + +impl fmt::Debug for IntoKeys { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list() + .entries(self.inner.iter().map(|(k, _)| k)) + .finish() + } +} + +/// An owning iterator over the values of a `HashMap` in arbitrary order. +/// The iterator element type is `V`. +/// +/// This `struct` is created by the [`into_values`] method on [`HashMap`]. +/// See its documentation for more. The map cannot be used after calling that method. +/// +/// [`into_values`]: struct.HashMap.html#method.into_values +/// [`HashMap`]: struct.HashMap.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// let map: HashMap<_, _> = [(1, "a"), (2, "b"), (3, "c")].into(); +/// +/// let mut values = map.into_values(); +/// let mut vec = vec![values.next(), values.next(), values.next()]; +/// +/// // The `IntoValues` iterator produces values in arbitrary order, so +/// // the values must be sorted to test them against a sorted array. +/// vec.sort_unstable(); +/// assert_eq!(vec, [Some("a"), Some("b"), Some("c")]); +/// +/// // It is fused iterator +/// assert_eq!(values.next(), None); +/// assert_eq!(values.next(), None); +/// ``` +pub struct IntoValues { + inner: IntoIter, +} + +impl Iterator for IntoValues { + type Item = V; + + #[inline] + fn next(&mut self) -> Option { + self.inner.next().map(|(_, v)| v) + } + #[inline] + fn size_hint(&self) -> (usize, Option) { + self.inner.size_hint() + } + #[inline] + fn fold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.inner.fold(init, |acc, (_, v)| f(acc, v)) + } +} + +impl ExactSizeIterator for IntoValues { + #[inline] + fn len(&self) -> usize { + self.inner.len() + } +} + +impl FusedIterator for IntoValues {} + +impl fmt::Debug for IntoValues { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list() + .entries(self.inner.iter().map(|(_, v)| v)) + .finish() + } +} + +/// An iterator over the keys of a `HashMap` in arbitrary order. +/// The iterator element type is `&'a K`. +/// +/// This `struct` is created by the [`keys`] method on [`HashMap`]. See its +/// documentation for more. +/// +/// [`keys`]: struct.HashMap.html#method.keys +/// [`HashMap`]: struct.HashMap.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// let map: HashMap<_, _> = [(1, "a"), (2, "b"), (3, "c")].into(); +/// +/// let mut keys = map.keys(); +/// let mut vec = vec![keys.next(), keys.next(), keys.next()]; +/// +/// // The `Keys` iterator produces keys in arbitrary order, so the +/// // keys must be sorted to test them against a sorted array. +/// vec.sort_unstable(); +/// assert_eq!(vec, [Some(&1), Some(&2), Some(&3)]); +/// +/// // It is fused iterator +/// assert_eq!(keys.next(), None); +/// assert_eq!(keys.next(), None); +/// ``` +pub struct Keys<'a, K, V> { + inner: Iter<'a, K, V>, +} + +// FIXME(#26925) Remove in favor of `#[derive(Clone)]` +impl Clone for Keys<'_, K, V> { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Keys { + inner: self.inner.clone(), + } + } +} + +impl fmt::Debug for Keys<'_, K, V> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list().entries(self.clone()).finish() + } +} + +/// An iterator over the values of a `HashMap` in arbitrary order. +/// The iterator element type is `&'a V`. +/// +/// This `struct` is created by the [`values`] method on [`HashMap`]. See its +/// documentation for more. +/// +/// [`values`]: struct.HashMap.html#method.values +/// [`HashMap`]: struct.HashMap.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// let map: HashMap<_, _> = [(1, "a"), (2, "b"), (3, "c")].into(); +/// +/// let mut values = map.values(); +/// let mut vec = vec![values.next(), values.next(), values.next()]; +/// +/// // The `Values` iterator produces values in arbitrary order, so the +/// // values must be sorted to test them against a sorted array. +/// vec.sort_unstable(); +/// assert_eq!(vec, [Some(&"a"), Some(&"b"), Some(&"c")]); +/// +/// // It is fused iterator +/// assert_eq!(values.next(), None); +/// assert_eq!(values.next(), None); +/// ``` +pub struct Values<'a, K, V> { + inner: Iter<'a, K, V>, +} + +// FIXME(#26925) Remove in favor of `#[derive(Clone)]` +impl Clone for Values<'_, K, V> { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Values { + inner: self.inner.clone(), + } + } +} + +impl fmt::Debug for Values<'_, K, V> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list().entries(self.clone()).finish() + } +} + +/// A draining iterator over the entries of a `HashMap` in arbitrary +/// order. The iterator element type is `(K, V)`. +/// +/// This `struct` is created by the [`drain`] method on [`HashMap`]. See its +/// documentation for more. +/// +/// [`drain`]: struct.HashMap.html#method.drain +/// [`HashMap`]: struct.HashMap.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// let mut map: HashMap<_, _> = [(1, "a"), (2, "b"), (3, "c")].into(); +/// +/// let mut drain_iter = map.drain(); +/// let mut vec = vec![drain_iter.next(), drain_iter.next(), drain_iter.next()]; +/// +/// // The `Drain` iterator produces items in arbitrary order, so the +/// // items must be sorted to test them against a sorted array. +/// vec.sort_unstable(); +/// assert_eq!(vec, [Some((1, "a")), Some((2, "b")), Some((3, "c"))]); +/// +/// // It is fused iterator +/// assert_eq!(drain_iter.next(), None); +/// assert_eq!(drain_iter.next(), None); +/// ``` +pub struct Drain<'a, K, V, A: Allocator = Global> { + inner: RawDrain<'a, (K, V), A>, +} + +impl Drain<'_, K, V, A> { + /// Returns a iterator of references over the remaining items. + #[cfg_attr(feature = "inline-more", inline)] + pub(super) fn iter(&self) -> Iter<'_, K, V> { + Iter { + inner: self.inner.iter(), + marker: PhantomData, + } + } +} + +/// A draining iterator over entries of a `HashMap` which don't satisfy the predicate +/// `f(&k, &mut v)` in arbitrary order. The iterator element type is `(K, V)`. +/// +/// This `struct` is created by the [`extract_if`] method on [`HashMap`]. See its +/// documentation for more. +/// +/// [`extract_if`]: struct.HashMap.html#method.extract_if +/// [`HashMap`]: struct.HashMap.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// let mut map: HashMap = [(1, "a"), (2, "b"), (3, "c")].into(); +/// +/// let mut extract_if = map.extract_if(|k, _v| k % 2 != 0); +/// let mut vec = vec![extract_if.next(), extract_if.next()]; +/// +/// // The `ExtractIf` iterator produces items in arbitrary order, so the +/// // items must be sorted to test them against a sorted array. +/// vec.sort_unstable(); +/// assert_eq!(vec, [Some((1, "a")),Some((3, "c"))]); +/// +/// // It is fused iterator +/// assert_eq!(extract_if.next(), None); +/// assert_eq!(extract_if.next(), None); +/// drop(extract_if); +/// +/// assert_eq!(map.len(), 1); +/// ``` +#[must_use = "Iterators are lazy unless consumed"] +pub struct ExtractIf<'a, K, V, F, A: Allocator = Global> +where + F: FnMut(&K, &mut V) -> bool, +{ + f: F, + inner: RawExtractIf<'a, (K, V), A>, +} + +impl Iterator for ExtractIf<'_, K, V, F, A> +where + F: FnMut(&K, &mut V) -> bool, + A: Allocator, +{ + type Item = (K, V); + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option { + self.inner.next(|&mut (ref k, ref mut v)| (self.f)(k, v)) + } + + #[inline] + fn size_hint(&self) -> (usize, Option) { + (0, self.inner.iter.size_hint().1) + } +} + +impl FusedIterator for ExtractIf<'_, K, V, F> where F: FnMut(&K, &mut V) -> bool {} + +/// A mutable iterator over the values of a `HashMap` in arbitrary order. +/// The iterator element type is `&'a mut V`. +/// +/// This `struct` is created by the [`values_mut`] method on [`HashMap`]. See its +/// documentation for more. +/// +/// [`values_mut`]: struct.HashMap.html#method.values_mut +/// [`HashMap`]: struct.HashMap.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::HashMap; +/// +/// let mut map: HashMap<_, _> = [(1, "One".to_owned()), (2, "Two".into())].into(); +/// +/// let mut values = map.values_mut(); +/// values.next().map(|v| v.push_str(" Mississippi")); +/// values.next().map(|v| v.push_str(" Mississippi")); +/// +/// // It is fused iterator +/// assert_eq!(values.next(), None); +/// assert_eq!(values.next(), None); +/// +/// assert_eq!(map.get(&1).unwrap(), &"One Mississippi".to_owned()); +/// assert_eq!(map.get(&2).unwrap(), &"Two Mississippi".to_owned()); +/// ``` +pub struct ValuesMut<'a, K, V> { + inner: IterMut<'a, K, V>, +} + +/// A builder for computing where in a [`HashMap`] a key-value pair would be stored. +/// +/// See the [`HashMap::raw_entry_mut`] docs for usage examples. +/// +/// [`HashMap::raw_entry_mut`]: struct.HashMap.html#method.raw_entry_mut +/// +/// # Examples +/// +/// ``` +/// use hashbrown::hash_map::{RawEntryBuilderMut, RawEntryMut::Vacant, RawEntryMut::Occupied}; +/// use hashbrown::HashMap; +/// use core::hash::{BuildHasher, Hash}; +/// +/// let mut map = HashMap::new(); +/// map.extend([(1, 11), (2, 12), (3, 13), (4, 14), (5, 15), (6, 16)]); +/// assert_eq!(map.len(), 6); +/// +/// fn compute_hash(hash_builder: &S, key: &K) -> u64 { +/// use core::hash::Hasher; +/// let mut state = hash_builder.build_hasher(); +/// key.hash(&mut state); +/// state.finish() +/// } +/// +/// let builder: RawEntryBuilderMut<_, _, _> = map.raw_entry_mut(); +/// +/// // Existing key +/// match builder.from_key(&6) { +/// Vacant(_) => unreachable!(), +/// Occupied(view) => assert_eq!(view.get(), &16), +/// } +/// +/// for key in 0..12 { +/// let hash = compute_hash(map.hasher(), &key); +/// let value = map.get(&key).cloned(); +/// let key_value = value.as_ref().map(|v| (&key, v)); +/// +/// println!("Key: {} and value: {:?}", key, value); +/// +/// match map.raw_entry_mut().from_key(&key) { +/// Occupied(mut o) => assert_eq!(Some(o.get_key_value()), key_value), +/// Vacant(_) => assert_eq!(value, None), +/// } +/// match map.raw_entry_mut().from_key_hashed_nocheck(hash, &key) { +/// Occupied(mut o) => assert_eq!(Some(o.get_key_value()), key_value), +/// Vacant(_) => assert_eq!(value, None), +/// } +/// match map.raw_entry_mut().from_hash(hash, |q| *q == key) { +/// Occupied(mut o) => assert_eq!(Some(o.get_key_value()), key_value), +/// Vacant(_) => assert_eq!(value, None), +/// } +/// } +/// +/// assert_eq!(map.len(), 6); +/// ``` +pub struct RawEntryBuilderMut<'a, K, V, S, A: Allocator = Global> { + map: &'a mut HashMap, +} + +/// A view into a single entry in a map, which may either be vacant or occupied. +/// +/// This is a lower-level version of [`Entry`]. +/// +/// This `enum` is constructed through the [`raw_entry_mut`] method on [`HashMap`], +/// then calling one of the methods of that [`RawEntryBuilderMut`]. +/// +/// [`HashMap`]: struct.HashMap.html +/// [`Entry`]: enum.Entry.html +/// [`raw_entry_mut`]: struct.HashMap.html#method.raw_entry_mut +/// [`RawEntryBuilderMut`]: struct.RawEntryBuilderMut.html +/// +/// # Examples +/// +/// ``` +/// use core::hash::{BuildHasher, Hash}; +/// use hashbrown::hash_map::{HashMap, RawEntryMut, RawOccupiedEntryMut}; +/// +/// let mut map = HashMap::new(); +/// map.extend([('a', 1), ('b', 2), ('c', 3)]); +/// assert_eq!(map.len(), 3); +/// +/// fn compute_hash(hash_builder: &S, key: &K) -> u64 { +/// use core::hash::Hasher; +/// let mut state = hash_builder.build_hasher(); +/// key.hash(&mut state); +/// state.finish() +/// } +/// +/// // Existing key (insert) +/// let raw: RawEntryMut<_, _, _> = map.raw_entry_mut().from_key(&'a'); +/// let _raw_o: RawOccupiedEntryMut<_, _, _> = raw.insert('a', 10); +/// assert_eq!(map.len(), 3); +/// +/// // Nonexistent key (insert) +/// map.raw_entry_mut().from_key(&'d').insert('d', 40); +/// assert_eq!(map.len(), 4); +/// +/// // Existing key (or_insert) +/// let hash = compute_hash(map.hasher(), &'b'); +/// let kv = map +/// .raw_entry_mut() +/// .from_key_hashed_nocheck(hash, &'b') +/// .or_insert('b', 20); +/// assert_eq!(kv, (&mut 'b', &mut 2)); +/// *kv.1 = 20; +/// assert_eq!(map.len(), 4); +/// +/// // Nonexistent key (or_insert) +/// let hash = compute_hash(map.hasher(), &'e'); +/// let kv = map +/// .raw_entry_mut() +/// .from_key_hashed_nocheck(hash, &'e') +/// .or_insert('e', 50); +/// assert_eq!(kv, (&mut 'e', &mut 50)); +/// assert_eq!(map.len(), 5); +/// +/// // Existing key (or_insert_with) +/// let hash = compute_hash(map.hasher(), &'c'); +/// let kv = map +/// .raw_entry_mut() +/// .from_hash(hash, |q| q == &'c') +/// .or_insert_with(|| ('c', 30)); +/// assert_eq!(kv, (&mut 'c', &mut 3)); +/// *kv.1 = 30; +/// assert_eq!(map.len(), 5); +/// +/// // Nonexistent key (or_insert_with) +/// let hash = compute_hash(map.hasher(), &'f'); +/// let kv = map +/// .raw_entry_mut() +/// .from_hash(hash, |q| q == &'f') +/// .or_insert_with(|| ('f', 60)); +/// assert_eq!(kv, (&mut 'f', &mut 60)); +/// assert_eq!(map.len(), 6); +/// +/// println!("Our HashMap: {:?}", map); +/// +/// let mut vec: Vec<_> = map.iter().map(|(&k, &v)| (k, v)).collect(); +/// // The `Iter` iterator produces items in arbitrary order, so the +/// // items must be sorted to test them against a sorted array. +/// vec.sort_unstable(); +/// assert_eq!(vec, [('a', 10), ('b', 20), ('c', 30), ('d', 40), ('e', 50), ('f', 60)]); +/// ``` +pub enum RawEntryMut<'a, K, V, S, A: Allocator = Global> { + /// An occupied entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::{hash_map::RawEntryMut, HashMap}; + /// let mut map: HashMap<_, _> = [("a", 100), ("b", 200)].into(); + /// + /// match map.raw_entry_mut().from_key(&"a") { + /// RawEntryMut::Vacant(_) => unreachable!(), + /// RawEntryMut::Occupied(_) => { } + /// } + /// ``` + Occupied(RawOccupiedEntryMut<'a, K, V, S, A>), + /// A vacant entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::{hash_map::RawEntryMut, HashMap}; + /// let mut map: HashMap<&str, i32> = HashMap::new(); + /// + /// match map.raw_entry_mut().from_key("a") { + /// RawEntryMut::Occupied(_) => unreachable!(), + /// RawEntryMut::Vacant(_) => { } + /// } + /// ``` + Vacant(RawVacantEntryMut<'a, K, V, S, A>), +} + +/// A view into an occupied entry in a `HashMap`. +/// It is part of the [`RawEntryMut`] enum. +/// +/// [`RawEntryMut`]: enum.RawEntryMut.html +/// +/// # Examples +/// +/// ``` +/// use core::hash::{BuildHasher, Hash}; +/// use hashbrown::hash_map::{HashMap, RawEntryMut, RawOccupiedEntryMut}; +/// +/// let mut map = HashMap::new(); +/// map.extend([("a", 10), ("b", 20), ("c", 30)]); +/// +/// fn compute_hash(hash_builder: &S, key: &K) -> u64 { +/// use core::hash::Hasher; +/// let mut state = hash_builder.build_hasher(); +/// key.hash(&mut state); +/// state.finish() +/// } +/// +/// let _raw_o: RawOccupiedEntryMut<_, _, _> = map.raw_entry_mut().from_key(&"a").insert("a", 100); +/// assert_eq!(map.len(), 3); +/// +/// // Existing key (insert and update) +/// match map.raw_entry_mut().from_key(&"a") { +/// RawEntryMut::Vacant(_) => unreachable!(), +/// RawEntryMut::Occupied(mut view) => { +/// assert_eq!(view.get(), &100); +/// let v = view.get_mut(); +/// let new_v = (*v) * 10; +/// *v = new_v; +/// assert_eq!(view.insert(1111), 1000); +/// } +/// } +/// +/// assert_eq!(map[&"a"], 1111); +/// assert_eq!(map.len(), 3); +/// +/// // Existing key (take) +/// let hash = compute_hash(map.hasher(), &"c"); +/// match map.raw_entry_mut().from_key_hashed_nocheck(hash, &"c") { +/// RawEntryMut::Vacant(_) => unreachable!(), +/// RawEntryMut::Occupied(view) => { +/// assert_eq!(view.remove_entry(), ("c", 30)); +/// } +/// } +/// assert_eq!(map.raw_entry().from_key(&"c"), None); +/// assert_eq!(map.len(), 2); +/// +/// let hash = compute_hash(map.hasher(), &"b"); +/// match map.raw_entry_mut().from_hash(hash, |q| *q == "b") { +/// RawEntryMut::Vacant(_) => unreachable!(), +/// RawEntryMut::Occupied(view) => { +/// assert_eq!(view.remove_entry(), ("b", 20)); +/// } +/// } +/// assert_eq!(map.get(&"b"), None); +/// assert_eq!(map.len(), 1); +/// ``` +pub struct RawOccupiedEntryMut<'a, K, V, S, A: Allocator = Global> { + elem: Bucket<(K, V)>, + table: &'a mut RawTable<(K, V), A>, + hash_builder: &'a S, +} + +unsafe impl Send for RawOccupiedEntryMut<'_, K, V, S, A> +where + K: Send, + V: Send, + S: Send, + A: Send + Allocator, +{ +} +unsafe impl Sync for RawOccupiedEntryMut<'_, K, V, S, A> +where + K: Sync, + V: Sync, + S: Sync, + A: Sync + Allocator, +{ +} + +/// A view into a vacant entry in a `HashMap`. +/// It is part of the [`RawEntryMut`] enum. +/// +/// [`RawEntryMut`]: enum.RawEntryMut.html +/// +/// # Examples +/// +/// ``` +/// use core::hash::{BuildHasher, Hash}; +/// use hashbrown::hash_map::{HashMap, RawEntryMut, RawVacantEntryMut}; +/// +/// let mut map = HashMap::<&str, i32>::new(); +/// +/// fn compute_hash(hash_builder: &S, key: &K) -> u64 { +/// use core::hash::Hasher; +/// let mut state = hash_builder.build_hasher(); +/// key.hash(&mut state); +/// state.finish() +/// } +/// +/// let raw_v: RawVacantEntryMut<_, _, _> = match map.raw_entry_mut().from_key(&"a") { +/// RawEntryMut::Vacant(view) => view, +/// RawEntryMut::Occupied(_) => unreachable!(), +/// }; +/// raw_v.insert("a", 10); +/// assert!(map[&"a"] == 10 && map.len() == 1); +/// +/// // Nonexistent key (insert and update) +/// let hash = compute_hash(map.hasher(), &"b"); +/// match map.raw_entry_mut().from_key_hashed_nocheck(hash, &"b") { +/// RawEntryMut::Occupied(_) => unreachable!(), +/// RawEntryMut::Vacant(view) => { +/// let (k, value) = view.insert("b", 2); +/// assert_eq!((*k, *value), ("b", 2)); +/// *value = 20; +/// } +/// } +/// assert!(map[&"b"] == 20 && map.len() == 2); +/// +/// let hash = compute_hash(map.hasher(), &"c"); +/// match map.raw_entry_mut().from_hash(hash, |q| *q == "c") { +/// RawEntryMut::Occupied(_) => unreachable!(), +/// RawEntryMut::Vacant(view) => { +/// assert_eq!(view.insert("c", 30), (&mut "c", &mut 30)); +/// } +/// } +/// assert!(map[&"c"] == 30 && map.len() == 3); +/// ``` +pub struct RawVacantEntryMut<'a, K, V, S, A: Allocator = Global> { + table: &'a mut RawTable<(K, V), A>, + hash_builder: &'a S, +} + +/// A builder for computing where in a [`HashMap`] a key-value pair would be stored. +/// +/// See the [`HashMap::raw_entry`] docs for usage examples. +/// +/// [`HashMap::raw_entry`]: struct.HashMap.html#method.raw_entry +/// +/// # Examples +/// +/// ``` +/// use hashbrown::hash_map::{HashMap, RawEntryBuilder}; +/// use core::hash::{BuildHasher, Hash}; +/// +/// let mut map = HashMap::new(); +/// map.extend([(1, 10), (2, 20), (3, 30)]); +/// +/// fn compute_hash(hash_builder: &S, key: &K) -> u64 { +/// use core::hash::Hasher; +/// let mut state = hash_builder.build_hasher(); +/// key.hash(&mut state); +/// state.finish() +/// } +/// +/// for k in 0..6 { +/// let hash = compute_hash(map.hasher(), &k); +/// let v = map.get(&k).cloned(); +/// let kv = v.as_ref().map(|v| (&k, v)); +/// +/// println!("Key: {} and value: {:?}", k, v); +/// let builder: RawEntryBuilder<_, _, _> = map.raw_entry(); +/// assert_eq!(builder.from_key(&k), kv); +/// assert_eq!(map.raw_entry().from_hash(hash, |q| *q == k), kv); +/// assert_eq!(map.raw_entry().from_key_hashed_nocheck(hash, &k), kv); +/// } +/// ``` +pub struct RawEntryBuilder<'a, K, V, S, A: Allocator = Global> { + map: &'a HashMap, +} + +impl<'a, K, V, S, A: Allocator> RawEntryBuilderMut<'a, K, V, S, A> { + /// Creates a `RawEntryMut` from the given key. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// let key = "a"; + /// let entry: RawEntryMut<&str, u32, _> = map.raw_entry_mut().from_key(&key); + /// entry.insert(key, 100); + /// assert_eq!(map[&"a"], 100); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + #[allow(clippy::wrong_self_convention)] + pub fn from_key(self, k: &Q) -> RawEntryMut<'a, K, V, S, A> + where + S: BuildHasher, + Q: Hash + Equivalent, + { + let hash = make_hash::(&self.map.hash_builder, k); + self.from_key_hashed_nocheck(hash, k) + } + + /// Creates a `RawEntryMut` from the given key and its hash. + /// + /// # Examples + /// + /// ``` + /// use core::hash::{BuildHasher, Hash}; + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// fn compute_hash(hash_builder: &S, key: &K) -> u64 { + /// use core::hash::Hasher; + /// let mut state = hash_builder.build_hasher(); + /// key.hash(&mut state); + /// state.finish() + /// } + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// let key = "a"; + /// let hash = compute_hash(map.hasher(), &key); + /// let entry: RawEntryMut<&str, u32, _> = map.raw_entry_mut().from_key_hashed_nocheck(hash, &key); + /// entry.insert(key, 100); + /// assert_eq!(map[&"a"], 100); + /// ``` + #[inline] + #[allow(clippy::wrong_self_convention)] + pub fn from_key_hashed_nocheck(self, hash: u64, k: &Q) -> RawEntryMut<'a, K, V, S, A> + where + Q: Equivalent, + { + self.from_hash(hash, equivalent(k)) + } +} + +impl<'a, K, V, S, A: Allocator> RawEntryBuilderMut<'a, K, V, S, A> { + /// Creates a `RawEntryMut` from the given hash and matching function. + /// + /// # Examples + /// + /// ``` + /// use core::hash::{BuildHasher, Hash}; + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// fn compute_hash(hash_builder: &S, key: &K) -> u64 { + /// use core::hash::Hasher; + /// let mut state = hash_builder.build_hasher(); + /// key.hash(&mut state); + /// state.finish() + /// } + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// let key = "a"; + /// let hash = compute_hash(map.hasher(), &key); + /// let entry: RawEntryMut<&str, u32, _> = map.raw_entry_mut().from_hash(hash, |k| k == &key); + /// entry.insert(key, 100); + /// assert_eq!(map[&"a"], 100); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + #[allow(clippy::wrong_self_convention)] + pub fn from_hash(self, hash: u64, is_match: F) -> RawEntryMut<'a, K, V, S, A> + where + for<'b> F: FnMut(&'b K) -> bool, + { + self.search(hash, is_match) + } + + #[cfg_attr(feature = "inline-more", inline)] + fn search(self, hash: u64, mut is_match: F) -> RawEntryMut<'a, K, V, S, A> + where + for<'b> F: FnMut(&'b K) -> bool, + { + match self.map.table.find(hash, |(k, _)| is_match(k)) { + Some(elem) => RawEntryMut::Occupied(RawOccupiedEntryMut { + elem, + table: &mut self.map.table, + hash_builder: &self.map.hash_builder, + }), + None => RawEntryMut::Vacant(RawVacantEntryMut { + table: &mut self.map.table, + hash_builder: &self.map.hash_builder, + }), + } + } +} + +impl<'a, K, V, S, A: Allocator> RawEntryBuilder<'a, K, V, S, A> { + /// Access an immutable entry by key. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// let key = "a"; + /// assert_eq!(map.raw_entry().from_key(&key), Some((&"a", &100))); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + #[allow(clippy::wrong_self_convention)] + pub fn from_key(self, k: &Q) -> Option<(&'a K, &'a V)> + where + S: BuildHasher, + Q: Hash + Equivalent, + { + let hash = make_hash::(&self.map.hash_builder, k); + self.from_key_hashed_nocheck(hash, k) + } + + /// Access an immutable entry by a key and its hash. + /// + /// # Examples + /// + /// ``` + /// use core::hash::{BuildHasher, Hash}; + /// use hashbrown::HashMap; + /// + /// fn compute_hash(hash_builder: &S, key: &K) -> u64 { + /// use core::hash::Hasher; + /// let mut state = hash_builder.build_hasher(); + /// key.hash(&mut state); + /// state.finish() + /// } + /// + /// let map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// let key = "a"; + /// let hash = compute_hash(map.hasher(), &key); + /// assert_eq!(map.raw_entry().from_key_hashed_nocheck(hash, &key), Some((&"a", &100))); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + #[allow(clippy::wrong_self_convention)] + pub fn from_key_hashed_nocheck(self, hash: u64, k: &Q) -> Option<(&'a K, &'a V)> + where + Q: Equivalent, + { + self.from_hash(hash, equivalent(k)) + } + + #[cfg_attr(feature = "inline-more", inline)] + fn search(self, hash: u64, mut is_match: F) -> Option<(&'a K, &'a V)> + where + F: FnMut(&K) -> bool, + { + match self.map.table.get(hash, |(k, _)| is_match(k)) { + Some((key, value)) => Some((key, value)), + None => None, + } + } + + /// Access an immutable entry by hash and matching function. + /// + /// # Examples + /// + /// ``` + /// use core::hash::{BuildHasher, Hash}; + /// use hashbrown::HashMap; + /// + /// fn compute_hash(hash_builder: &S, key: &K) -> u64 { + /// use core::hash::Hasher; + /// let mut state = hash_builder.build_hasher(); + /// key.hash(&mut state); + /// state.finish() + /// } + /// + /// let map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// let key = "a"; + /// let hash = compute_hash(map.hasher(), &key); + /// assert_eq!(map.raw_entry().from_hash(hash, |k| k == &key), Some((&"a", &100))); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + #[allow(clippy::wrong_self_convention)] + pub fn from_hash(self, hash: u64, is_match: F) -> Option<(&'a K, &'a V)> + where + F: FnMut(&K) -> bool, + { + self.search(hash, is_match) + } +} + +impl<'a, K, V, S, A: Allocator> RawEntryMut<'a, K, V, S, A> { + /// Sets the value of the entry, and returns a RawOccupiedEntryMut. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// let entry = map.raw_entry_mut().from_key("horseyland").insert("horseyland", 37); + /// + /// assert_eq!(entry.remove_entry(), ("horseyland", 37)); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(self, key: K, value: V) -> RawOccupiedEntryMut<'a, K, V, S, A> + where + K: Hash, + S: BuildHasher, + { + match self { + RawEntryMut::Occupied(mut entry) => { + entry.insert(value); + entry + } + RawEntryMut::Vacant(entry) => entry.insert_entry(key, value), + } + } + + /// Ensures a value is in the entry by inserting the default if empty, and returns + /// mutable references to the key and value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// map.raw_entry_mut().from_key("poneyland").or_insert("poneyland", 3); + /// assert_eq!(map["poneyland"], 3); + /// + /// *map.raw_entry_mut().from_key("poneyland").or_insert("poneyland", 10).1 *= 2; + /// assert_eq!(map["poneyland"], 6); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_insert(self, default_key: K, default_val: V) -> (&'a mut K, &'a mut V) + where + K: Hash, + S: BuildHasher, + { + match self { + RawEntryMut::Occupied(entry) => entry.into_key_value(), + RawEntryMut::Vacant(entry) => entry.insert(default_key, default_val), + } + } + + /// Ensures a value is in the entry by inserting the result of the default function if empty, + /// and returns mutable references to the key and value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, String> = HashMap::new(); + /// + /// map.raw_entry_mut().from_key("poneyland").or_insert_with(|| { + /// ("poneyland", "hoho".to_string()) + /// }); + /// + /// assert_eq!(map["poneyland"], "hoho".to_string()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_insert_with(self, default: F) -> (&'a mut K, &'a mut V) + where + F: FnOnce() -> (K, V), + K: Hash, + S: BuildHasher, + { + match self { + RawEntryMut::Occupied(entry) => entry.into_key_value(), + RawEntryMut::Vacant(entry) => { + let (k, v) = default(); + entry.insert(k, v) + } + } + } + + /// Provides in-place mutable access to an occupied entry before any + /// potential inserts into the map. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// map.raw_entry_mut() + /// .from_key("poneyland") + /// .and_modify(|_k, v| { *v += 1 }) + /// .or_insert("poneyland", 42); + /// assert_eq!(map["poneyland"], 42); + /// + /// map.raw_entry_mut() + /// .from_key("poneyland") + /// .and_modify(|_k, v| { *v += 1 }) + /// .or_insert("poneyland", 0); + /// assert_eq!(map["poneyland"], 43); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn and_modify(self, f: F) -> Self + where + F: FnOnce(&mut K, &mut V), + { + match self { + RawEntryMut::Occupied(mut entry) => { + { + let (k, v) = entry.get_key_value_mut(); + f(k, v); + } + RawEntryMut::Occupied(entry) + } + RawEntryMut::Vacant(entry) => RawEntryMut::Vacant(entry), + } + } + + /// Provides shared access to the key and owned access to the value of + /// an occupied entry and allows to replace or remove it based on the + /// value of the returned option. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::RawEntryMut; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// let entry = map + /// .raw_entry_mut() + /// .from_key("poneyland") + /// .and_replace_entry_with(|_k, _v| panic!()); + /// + /// match entry { + /// RawEntryMut::Vacant(_) => {}, + /// RawEntryMut::Occupied(_) => panic!(), + /// } + /// + /// map.insert("poneyland", 42); + /// + /// let entry = map + /// .raw_entry_mut() + /// .from_key("poneyland") + /// .and_replace_entry_with(|k, v| { + /// assert_eq!(k, &"poneyland"); + /// assert_eq!(v, 42); + /// Some(v + 1) + /// }); + /// + /// match entry { + /// RawEntryMut::Occupied(e) => { + /// assert_eq!(e.key(), &"poneyland"); + /// assert_eq!(e.get(), &43); + /// }, + /// RawEntryMut::Vacant(_) => panic!(), + /// } + /// + /// assert_eq!(map["poneyland"], 43); + /// + /// let entry = map + /// .raw_entry_mut() + /// .from_key("poneyland") + /// .and_replace_entry_with(|_k, _v| None); + /// + /// match entry { + /// RawEntryMut::Vacant(_) => {}, + /// RawEntryMut::Occupied(_) => panic!(), + /// } + /// + /// assert!(!map.contains_key("poneyland")); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn and_replace_entry_with(self, f: F) -> Self + where + F: FnOnce(&K, V) -> Option, + { + match self { + RawEntryMut::Occupied(entry) => entry.replace_entry_with(f), + RawEntryMut::Vacant(_) => self, + } + } +} + +impl<'a, K, V, S, A: Allocator> RawOccupiedEntryMut<'a, K, V, S, A> { + /// Gets a reference to the key in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// let mut map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// + /// match map.raw_entry_mut().from_key(&"a") { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(o) => assert_eq!(o.key(), &"a") + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn key(&self) -> &K { + unsafe { &self.elem.as_ref().0 } + } + + /// Gets a mutable reference to the key in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// use std::rc::Rc; + /// + /// let key_one = Rc::new("a"); + /// let key_two = Rc::new("a"); + /// + /// let mut map: HashMap, u32> = HashMap::new(); + /// map.insert(key_one.clone(), 10); + /// + /// assert_eq!(map[&key_one], 10); + /// assert!(Rc::strong_count(&key_one) == 2 && Rc::strong_count(&key_two) == 1); + /// + /// match map.raw_entry_mut().from_key(&key_one) { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(mut o) => { + /// *o.key_mut() = key_two.clone(); + /// } + /// } + /// assert_eq!(map[&key_two], 10); + /// assert!(Rc::strong_count(&key_one) == 1 && Rc::strong_count(&key_two) == 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn key_mut(&mut self) -> &mut K { + unsafe { &mut self.elem.as_mut().0 } + } + + /// Converts the entry into a mutable reference to the key in the entry + /// with a lifetime bound to the map itself. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// use std::rc::Rc; + /// + /// let key_one = Rc::new("a"); + /// let key_two = Rc::new("a"); + /// + /// let mut map: HashMap, u32> = HashMap::new(); + /// map.insert(key_one.clone(), 10); + /// + /// assert_eq!(map[&key_one], 10); + /// assert!(Rc::strong_count(&key_one) == 2 && Rc::strong_count(&key_two) == 1); + /// + /// let inside_key: &mut Rc<&str>; + /// + /// match map.raw_entry_mut().from_key(&key_one) { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(o) => inside_key = o.into_key(), + /// } + /// *inside_key = key_two.clone(); + /// + /// assert_eq!(map[&key_two], 10); + /// assert!(Rc::strong_count(&key_one) == 1 && Rc::strong_count(&key_two) == 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn into_key(self) -> &'a mut K { + unsafe { &mut self.elem.as_mut().0 } + } + + /// Gets a reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// let mut map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// + /// match map.raw_entry_mut().from_key(&"a") { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(o) => assert_eq!(o.get(), &100), + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get(&self) -> &V { + unsafe { &self.elem.as_ref().1 } + } + + /// Converts the OccupiedEntry into a mutable reference to the value in the entry + /// with a lifetime bound to the map itself. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// let mut map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// + /// let value: &mut u32; + /// + /// match map.raw_entry_mut().from_key(&"a") { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(o) => value = o.into_mut(), + /// } + /// *value += 900; + /// + /// assert_eq!(map[&"a"], 1000); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn into_mut(self) -> &'a mut V { + unsafe { &mut self.elem.as_mut().1 } + } + + /// Gets a mutable reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// let mut map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// + /// match map.raw_entry_mut().from_key(&"a") { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(mut o) => *o.get_mut() += 900, + /// } + /// + /// assert_eq!(map[&"a"], 1000); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get_mut(&mut self) -> &mut V { + unsafe { &mut self.elem.as_mut().1 } + } + + /// Gets a reference to the key and value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// let mut map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// + /// match map.raw_entry_mut().from_key(&"a") { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(o) => assert_eq!(o.get_key_value(), (&"a", &100)), + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get_key_value(&self) -> (&K, &V) { + unsafe { + let (key, value) = self.elem.as_ref(); + (key, value) + } + } + + /// Gets a mutable reference to the key and value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// use std::rc::Rc; + /// + /// let key_one = Rc::new("a"); + /// let key_two = Rc::new("a"); + /// + /// let mut map: HashMap, u32> = HashMap::new(); + /// map.insert(key_one.clone(), 10); + /// + /// assert_eq!(map[&key_one], 10); + /// assert!(Rc::strong_count(&key_one) == 2 && Rc::strong_count(&key_two) == 1); + /// + /// match map.raw_entry_mut().from_key(&key_one) { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(mut o) => { + /// let (inside_key, inside_value) = o.get_key_value_mut(); + /// *inside_key = key_two.clone(); + /// *inside_value = 100; + /// } + /// } + /// assert_eq!(map[&key_two], 100); + /// assert!(Rc::strong_count(&key_one) == 1 && Rc::strong_count(&key_two) == 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get_key_value_mut(&mut self) -> (&mut K, &mut V) { + unsafe { + let &mut (ref mut key, ref mut value) = self.elem.as_mut(); + (key, value) + } + } + + /// Converts the OccupiedEntry into a mutable reference to the key and value in the entry + /// with a lifetime bound to the map itself. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// use std::rc::Rc; + /// + /// let key_one = Rc::new("a"); + /// let key_two = Rc::new("a"); + /// + /// let mut map: HashMap, u32> = HashMap::new(); + /// map.insert(key_one.clone(), 10); + /// + /// assert_eq!(map[&key_one], 10); + /// assert!(Rc::strong_count(&key_one) == 2 && Rc::strong_count(&key_two) == 1); + /// + /// let inside_key: &mut Rc<&str>; + /// let inside_value: &mut u32; + /// match map.raw_entry_mut().from_key(&key_one) { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(o) => { + /// let tuple = o.into_key_value(); + /// inside_key = tuple.0; + /// inside_value = tuple.1; + /// } + /// } + /// *inside_key = key_two.clone(); + /// *inside_value = 100; + /// assert_eq!(map[&key_two], 100); + /// assert!(Rc::strong_count(&key_one) == 1 && Rc::strong_count(&key_two) == 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn into_key_value(self) -> (&'a mut K, &'a mut V) { + unsafe { + let &mut (ref mut key, ref mut value) = self.elem.as_mut(); + (key, value) + } + } + + /// Sets the value of the entry, and returns the entry's old value. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// let mut map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// + /// match map.raw_entry_mut().from_key(&"a") { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(mut o) => assert_eq!(o.insert(1000), 100), + /// } + /// + /// assert_eq!(map[&"a"], 1000); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(&mut self, value: V) -> V { + mem::replace(self.get_mut(), value) + } + + /// Sets the value of the entry, and returns the entry's old value. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// use std::rc::Rc; + /// + /// let key_one = Rc::new("a"); + /// let key_two = Rc::new("a"); + /// + /// let mut map: HashMap, u32> = HashMap::new(); + /// map.insert(key_one.clone(), 10); + /// + /// assert_eq!(map[&key_one], 10); + /// assert!(Rc::strong_count(&key_one) == 2 && Rc::strong_count(&key_two) == 1); + /// + /// match map.raw_entry_mut().from_key(&key_one) { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(mut o) => { + /// let old_key = o.insert_key(key_two.clone()); + /// assert!(Rc::ptr_eq(&old_key, &key_one)); + /// } + /// } + /// assert_eq!(map[&key_two], 10); + /// assert!(Rc::strong_count(&key_one) == 1 && Rc::strong_count(&key_two) == 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert_key(&mut self, key: K) -> K { + mem::replace(self.key_mut(), key) + } + + /// Takes the value out of the entry, and returns it. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// let mut map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// + /// match map.raw_entry_mut().from_key(&"a") { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(o) => assert_eq!(o.remove(), 100), + /// } + /// assert_eq!(map.get(&"a"), None); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove(self) -> V { + self.remove_entry().1 + } + + /// Take the ownership of the key and value from the map. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// let mut map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// + /// match map.raw_entry_mut().from_key(&"a") { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(o) => assert_eq!(o.remove_entry(), ("a", 100)), + /// } + /// assert_eq!(map.get(&"a"), None); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove_entry(self) -> (K, V) { + unsafe { self.table.remove(self.elem).0 } + } + + /// Provides shared access to the key and owned access to the value of + /// the entry and allows to replace or remove it based on the + /// value of the returned option. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// let mut map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// + /// let raw_entry = match map.raw_entry_mut().from_key(&"a") { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(o) => o.replace_entry_with(|k, v| { + /// assert_eq!(k, &"a"); + /// assert_eq!(v, 100); + /// Some(v + 900) + /// }), + /// }; + /// let raw_entry = match raw_entry { + /// RawEntryMut::Vacant(_) => panic!(), + /// RawEntryMut::Occupied(o) => o.replace_entry_with(|k, v| { + /// assert_eq!(k, &"a"); + /// assert_eq!(v, 1000); + /// None + /// }), + /// }; + /// match raw_entry { + /// RawEntryMut::Vacant(_) => { }, + /// RawEntryMut::Occupied(_) => panic!(), + /// }; + /// assert_eq!(map.get(&"a"), None); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn replace_entry_with(self, f: F) -> RawEntryMut<'a, K, V, S, A> + where + F: FnOnce(&K, V) -> Option, + { + unsafe { + let still_occupied = self + .table + .replace_bucket_with(self.elem.clone(), |(key, value)| { + f(&key, value).map(|new_value| (key, new_value)) + }); + + if still_occupied { + RawEntryMut::Occupied(self) + } else { + RawEntryMut::Vacant(RawVacantEntryMut { + table: self.table, + hash_builder: self.hash_builder, + }) + } + } + } +} + +impl<'a, K, V, S, A: Allocator> RawVacantEntryMut<'a, K, V, S, A> { + /// Sets the value of the entry with the VacantEntry's key, + /// and returns a mutable reference to it. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// let mut map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// + /// match map.raw_entry_mut().from_key(&"c") { + /// RawEntryMut::Occupied(_) => panic!(), + /// RawEntryMut::Vacant(v) => assert_eq!(v.insert("c", 300), (&mut "c", &mut 300)), + /// } + /// + /// assert_eq!(map[&"c"], 300); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(self, key: K, value: V) -> (&'a mut K, &'a mut V) + where + K: Hash, + S: BuildHasher, + { + let hash = make_hash::(self.hash_builder, &key); + self.insert_hashed_nocheck(hash, key, value) + } + + /// Sets the value of the entry with the VacantEntry's key, + /// and returns a mutable reference to it. + /// + /// # Examples + /// + /// ``` + /// use core::hash::{BuildHasher, Hash}; + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// fn compute_hash(hash_builder: &S, key: &K) -> u64 { + /// use core::hash::Hasher; + /// let mut state = hash_builder.build_hasher(); + /// key.hash(&mut state); + /// state.finish() + /// } + /// + /// let mut map: HashMap<&str, u32> = [("a", 100), ("b", 200)].into(); + /// let key = "c"; + /// let hash = compute_hash(map.hasher(), &key); + /// + /// match map.raw_entry_mut().from_key_hashed_nocheck(hash, &key) { + /// RawEntryMut::Occupied(_) => panic!(), + /// RawEntryMut::Vacant(v) => assert_eq!( + /// v.insert_hashed_nocheck(hash, key, 300), + /// (&mut "c", &mut 300) + /// ), + /// } + /// + /// assert_eq!(map[&"c"], 300); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + #[allow(clippy::shadow_unrelated)] + pub fn insert_hashed_nocheck(self, hash: u64, key: K, value: V) -> (&'a mut K, &'a mut V) + where + K: Hash, + S: BuildHasher, + { + let &mut (ref mut k, ref mut v) = self.table.insert_entry( + hash, + (key, value), + make_hasher::<_, V, S>(self.hash_builder), + ); + (k, v) + } + + /// Set the value of an entry with a custom hasher function. + /// + /// # Examples + /// + /// ``` + /// use core::hash::{BuildHasher, Hash}; + /// use hashbrown::hash_map::{HashMap, RawEntryMut}; + /// + /// fn make_hasher(hash_builder: &S) -> impl Fn(&K) -> u64 + '_ + /// where + /// K: Hash + ?Sized, + /// S: BuildHasher, + /// { + /// move |key: &K| { + /// use core::hash::Hasher; + /// let mut state = hash_builder.build_hasher(); + /// key.hash(&mut state); + /// state.finish() + /// } + /// } + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// let key = "a"; + /// let hash_builder = map.hasher().clone(); + /// let hash = make_hasher(&hash_builder)(&key); + /// + /// match map.raw_entry_mut().from_hash(hash, |q| q == &key) { + /// RawEntryMut::Occupied(_) => panic!(), + /// RawEntryMut::Vacant(v) => assert_eq!( + /// v.insert_with_hasher(hash, key, 100, make_hasher(&hash_builder)), + /// (&mut "a", &mut 100) + /// ), + /// } + /// map.extend([("b", 200), ("c", 300), ("d", 400), ("e", 500), ("f", 600)]); + /// assert_eq!(map[&"a"], 100); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert_with_hasher( + self, + hash: u64, + key: K, + value: V, + hasher: H, + ) -> (&'a mut K, &'a mut V) + where + H: Fn(&K) -> u64, + { + let &mut (ref mut k, ref mut v) = self + .table + .insert_entry(hash, (key, value), |x| hasher(&x.0)); + (k, v) + } + + #[cfg_attr(feature = "inline-more", inline)] + fn insert_entry(self, key: K, value: V) -> RawOccupiedEntryMut<'a, K, V, S, A> + where + K: Hash, + S: BuildHasher, + { + let hash = make_hash::(self.hash_builder, &key); + let elem = self.table.insert( + hash, + (key, value), + make_hasher::<_, V, S>(self.hash_builder), + ); + RawOccupiedEntryMut { + elem, + table: self.table, + hash_builder: self.hash_builder, + } + } +} + +impl Debug for RawEntryBuilderMut<'_, K, V, S, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("RawEntryBuilder").finish() + } +} + +impl Debug for RawEntryMut<'_, K, V, S, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match *self { + RawEntryMut::Vacant(ref v) => f.debug_tuple("RawEntry").field(v).finish(), + RawEntryMut::Occupied(ref o) => f.debug_tuple("RawEntry").field(o).finish(), + } + } +} + +impl Debug for RawOccupiedEntryMut<'_, K, V, S, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("RawOccupiedEntryMut") + .field("key", self.key()) + .field("value", self.get()) + .finish() + } +} + +impl Debug for RawVacantEntryMut<'_, K, V, S, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("RawVacantEntryMut").finish() + } +} + +impl Debug for RawEntryBuilder<'_, K, V, S, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("RawEntryBuilder").finish() + } +} + +/// A view into a single entry in a map, which may either be vacant or occupied. +/// +/// This `enum` is constructed from the [`entry`] method on [`HashMap`]. +/// +/// [`HashMap`]: struct.HashMap.html +/// [`entry`]: struct.HashMap.html#method.entry +/// +/// # Examples +/// +/// ``` +/// use hashbrown::hash_map::{Entry, HashMap, OccupiedEntry}; +/// +/// let mut map = HashMap::new(); +/// map.extend([("a", 10), ("b", 20), ("c", 30)]); +/// assert_eq!(map.len(), 3); +/// +/// // Existing key (insert) +/// let entry: Entry<_, _, _> = map.entry("a"); +/// let _raw_o: OccupiedEntry<_, _, _> = entry.insert(1); +/// assert_eq!(map.len(), 3); +/// // Nonexistent key (insert) +/// map.entry("d").insert(4); +/// +/// // Existing key (or_insert) +/// let v = map.entry("b").or_insert(2); +/// assert_eq!(std::mem::replace(v, 2), 20); +/// // Nonexistent key (or_insert) +/// map.entry("e").or_insert(5); +/// +/// // Existing key (or_insert_with) +/// let v = map.entry("c").or_insert_with(|| 3); +/// assert_eq!(std::mem::replace(v, 3), 30); +/// // Nonexistent key (or_insert_with) +/// map.entry("f").or_insert_with(|| 6); +/// +/// println!("Our HashMap: {:?}", map); +/// +/// let mut vec: Vec<_> = map.iter().map(|(&k, &v)| (k, v)).collect(); +/// // The `Iter` iterator produces items in arbitrary order, so the +/// // items must be sorted to test them against a sorted array. +/// vec.sort_unstable(); +/// assert_eq!(vec, [("a", 1), ("b", 2), ("c", 3), ("d", 4), ("e", 5), ("f", 6)]); +/// ``` +pub enum Entry<'a, K, V, S, A = Global> +where + A: Allocator, +{ + /// An occupied entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{Entry, HashMap}; + /// let mut map: HashMap<_, _> = [("a", 100), ("b", 200)].into(); + /// + /// match map.entry("a") { + /// Entry::Vacant(_) => unreachable!(), + /// Entry::Occupied(_) => { } + /// } + /// ``` + Occupied(OccupiedEntry<'a, K, V, S, A>), + + /// A vacant entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{Entry, HashMap}; + /// let mut map: HashMap<&str, i32> = HashMap::new(); + /// + /// match map.entry("a") { + /// Entry::Occupied(_) => unreachable!(), + /// Entry::Vacant(_) => { } + /// } + /// ``` + Vacant(VacantEntry<'a, K, V, S, A>), +} + +impl Debug for Entry<'_, K, V, S, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match *self { + Entry::Vacant(ref v) => f.debug_tuple("Entry").field(v).finish(), + Entry::Occupied(ref o) => f.debug_tuple("Entry").field(o).finish(), + } + } +} + +/// A view into an occupied entry in a `HashMap`. +/// It is part of the [`Entry`] enum. +/// +/// [`Entry`]: enum.Entry.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::hash_map::{Entry, HashMap, OccupiedEntry}; +/// +/// let mut map = HashMap::new(); +/// map.extend([("a", 10), ("b", 20), ("c", 30)]); +/// +/// let _entry_o: OccupiedEntry<_, _, _> = map.entry("a").insert(100); +/// assert_eq!(map.len(), 3); +/// +/// // Existing key (insert and update) +/// match map.entry("a") { +/// Entry::Vacant(_) => unreachable!(), +/// Entry::Occupied(mut view) => { +/// assert_eq!(view.get(), &100); +/// let v = view.get_mut(); +/// *v *= 10; +/// assert_eq!(view.insert(1111), 1000); +/// } +/// } +/// +/// assert_eq!(map[&"a"], 1111); +/// assert_eq!(map.len(), 3); +/// +/// // Existing key (take) +/// match map.entry("c") { +/// Entry::Vacant(_) => unreachable!(), +/// Entry::Occupied(view) => { +/// assert_eq!(view.remove_entry(), ("c", 30)); +/// } +/// } +/// assert_eq!(map.get(&"c"), None); +/// assert_eq!(map.len(), 2); +/// ``` +pub struct OccupiedEntry<'a, K, V, S = DefaultHashBuilder, A: Allocator = Global> { + hash: u64, + key: Option, + elem: Bucket<(K, V)>, + table: &'a mut HashMap, +} + +unsafe impl Send for OccupiedEntry<'_, K, V, S, A> +where + K: Send, + V: Send, + S: Send, + A: Send + Allocator, +{ +} +unsafe impl Sync for OccupiedEntry<'_, K, V, S, A> +where + K: Sync, + V: Sync, + S: Sync, + A: Sync + Allocator, +{ +} + +impl Debug for OccupiedEntry<'_, K, V, S, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("OccupiedEntry") + .field("key", self.key()) + .field("value", self.get()) + .finish() + } +} + +/// A view into a vacant entry in a `HashMap`. +/// It is part of the [`Entry`] enum. +/// +/// [`Entry`]: enum.Entry.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::hash_map::{Entry, HashMap, VacantEntry}; +/// +/// let mut map = HashMap::<&str, i32>::new(); +/// +/// let entry_v: VacantEntry<_, _, _> = match map.entry("a") { +/// Entry::Vacant(view) => view, +/// Entry::Occupied(_) => unreachable!(), +/// }; +/// entry_v.insert(10); +/// assert!(map[&"a"] == 10 && map.len() == 1); +/// +/// // Nonexistent key (insert and update) +/// match map.entry("b") { +/// Entry::Occupied(_) => unreachable!(), +/// Entry::Vacant(view) => { +/// let value = view.insert(2); +/// assert_eq!(*value, 2); +/// *value = 20; +/// } +/// } +/// assert!(map[&"b"] == 20 && map.len() == 2); +/// ``` +pub struct VacantEntry<'a, K, V, S = DefaultHashBuilder, A: Allocator = Global> { + hash: u64, + key: K, + table: &'a mut HashMap, +} + +impl Debug for VacantEntry<'_, K, V, S, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple("VacantEntry").field(self.key()).finish() + } +} + +/// A view into a single entry in a map, which may either be vacant or occupied, +/// with any borrowed form of the map's key type. +/// +/// +/// This `enum` is constructed from the [`entry_ref`] method on [`HashMap`]. +/// +/// [`Hash`] and [`Eq`] on the borrowed form of the map's key type *must* match those +/// for the key type. It also require that key may be constructed from the borrowed +/// form through the [`From`] trait. +/// +/// [`HashMap`]: struct.HashMap.html +/// [`entry_ref`]: struct.HashMap.html#method.entry_ref +/// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html +/// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html +/// [`From`]: https://doc.rust-lang.org/std/convert/trait.From.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::hash_map::{EntryRef, HashMap, OccupiedEntryRef}; +/// +/// let mut map = HashMap::new(); +/// map.extend([("a".to_owned(), 10), ("b".into(), 20), ("c".into(), 30)]); +/// assert_eq!(map.len(), 3); +/// +/// // Existing key (insert) +/// let key = String::from("a"); +/// let entry: EntryRef<_, _, _, _> = map.entry_ref(&key); +/// let _raw_o: OccupiedEntryRef<_, _, _, _> = entry.insert(1); +/// assert_eq!(map.len(), 3); +/// // Nonexistent key (insert) +/// map.entry_ref("d").insert(4); +/// +/// // Existing key (or_insert) +/// let v = map.entry_ref("b").or_insert(2); +/// assert_eq!(std::mem::replace(v, 2), 20); +/// // Nonexistent key (or_insert) +/// map.entry_ref("e").or_insert(5); +/// +/// // Existing key (or_insert_with) +/// let v = map.entry_ref("c").or_insert_with(|| 3); +/// assert_eq!(std::mem::replace(v, 3), 30); +/// // Nonexistent key (or_insert_with) +/// map.entry_ref("f").or_insert_with(|| 6); +/// +/// println!("Our HashMap: {:?}", map); +/// +/// for (key, value) in ["a", "b", "c", "d", "e", "f"].into_iter().zip(1..=6) { +/// assert_eq!(map[key], value) +/// } +/// assert_eq!(map.len(), 6); +/// ``` +pub enum EntryRef<'a, 'b, K, Q: ?Sized, V, S, A = Global> +where + A: Allocator, +{ + /// An occupied entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{EntryRef, HashMap}; + /// let mut map: HashMap<_, _> = [("a".to_owned(), 100), ("b".into(), 200)].into(); + /// + /// match map.entry_ref("a") { + /// EntryRef::Vacant(_) => unreachable!(), + /// EntryRef::Occupied(_) => { } + /// } + /// ``` + Occupied(OccupiedEntryRef<'a, 'b, K, Q, V, S, A>), + + /// A vacant entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{EntryRef, HashMap}; + /// let mut map: HashMap = HashMap::new(); + /// + /// match map.entry_ref("a") { + /// EntryRef::Occupied(_) => unreachable!(), + /// EntryRef::Vacant(_) => { } + /// } + /// ``` + Vacant(VacantEntryRef<'a, 'b, K, Q, V, S, A>), +} + +impl, Q: ?Sized + Debug, V: Debug, S, A: Allocator> Debug + for EntryRef<'_, '_, K, Q, V, S, A> +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match *self { + EntryRef::Vacant(ref v) => f.debug_tuple("EntryRef").field(v).finish(), + EntryRef::Occupied(ref o) => f.debug_tuple("EntryRef").field(o).finish(), + } + } +} + +enum KeyOrRef<'a, K, Q: ?Sized> { + Borrowed(&'a Q), + Owned(K), +} + +impl<'a, K, Q: ?Sized> KeyOrRef<'a, K, Q> { + fn into_owned(self) -> K + where + K: From<&'a Q>, + { + match self { + Self::Borrowed(borrowed) => borrowed.into(), + Self::Owned(owned) => owned, + } + } +} + +impl<'a, K: Borrow, Q: ?Sized> AsRef for KeyOrRef<'a, K, Q> { + fn as_ref(&self) -> &Q { + match self { + Self::Borrowed(borrowed) => borrowed, + Self::Owned(owned) => owned.borrow(), + } + } +} + +/// A view into an occupied entry in a `HashMap`. +/// It is part of the [`EntryRef`] enum. +/// +/// [`EntryRef`]: enum.EntryRef.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::hash_map::{EntryRef, HashMap, OccupiedEntryRef}; +/// +/// let mut map = HashMap::new(); +/// map.extend([("a".to_owned(), 10), ("b".into(), 20), ("c".into(), 30)]); +/// +/// let key = String::from("a"); +/// let _entry_o: OccupiedEntryRef<_, _, _, _> = map.entry_ref(&key).insert(100); +/// assert_eq!(map.len(), 3); +/// +/// // Existing key (insert and update) +/// match map.entry_ref("a") { +/// EntryRef::Vacant(_) => unreachable!(), +/// EntryRef::Occupied(mut view) => { +/// assert_eq!(view.get(), &100); +/// let v = view.get_mut(); +/// *v *= 10; +/// assert_eq!(view.insert(1111), 1000); +/// } +/// } +/// +/// assert_eq!(map["a"], 1111); +/// assert_eq!(map.len(), 3); +/// +/// // Existing key (take) +/// match map.entry_ref("c") { +/// EntryRef::Vacant(_) => unreachable!(), +/// EntryRef::Occupied(view) => { +/// assert_eq!(view.remove_entry(), ("c".to_owned(), 30)); +/// } +/// } +/// assert_eq!(map.get("c"), None); +/// assert_eq!(map.len(), 2); +/// ``` +pub struct OccupiedEntryRef<'a, 'b, K, Q: ?Sized, V, S, A: Allocator = Global> { + hash: u64, + key: Option>, + elem: Bucket<(K, V)>, + table: &'a mut HashMap, +} + +unsafe impl<'a, 'b, K, Q, V, S, A> Send for OccupiedEntryRef<'a, 'b, K, Q, V, S, A> +where + K: Send, + Q: Sync + ?Sized, + V: Send, + S: Send, + A: Send + Allocator, +{ +} +unsafe impl<'a, 'b, K, Q, V, S, A> Sync for OccupiedEntryRef<'a, 'b, K, Q, V, S, A> +where + K: Sync, + Q: Sync + ?Sized, + V: Sync, + S: Sync, + A: Sync + Allocator, +{ +} + +impl, Q: ?Sized + Debug, V: Debug, S, A: Allocator> Debug + for OccupiedEntryRef<'_, '_, K, Q, V, S, A> +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("OccupiedEntryRef") + .field("key", &self.key().borrow()) + .field("value", &self.get()) + .finish() + } +} + +/// A view into a vacant entry in a `HashMap`. +/// It is part of the [`EntryRef`] enum. +/// +/// [`EntryRef`]: enum.EntryRef.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::hash_map::{EntryRef, HashMap, VacantEntryRef}; +/// +/// let mut map = HashMap::::new(); +/// +/// let entry_v: VacantEntryRef<_, _, _, _> = match map.entry_ref("a") { +/// EntryRef::Vacant(view) => view, +/// EntryRef::Occupied(_) => unreachable!(), +/// }; +/// entry_v.insert(10); +/// assert!(map["a"] == 10 && map.len() == 1); +/// +/// // Nonexistent key (insert and update) +/// match map.entry_ref("b") { +/// EntryRef::Occupied(_) => unreachable!(), +/// EntryRef::Vacant(view) => { +/// let value = view.insert(2); +/// assert_eq!(*value, 2); +/// *value = 20; +/// } +/// } +/// assert!(map["b"] == 20 && map.len() == 2); +/// ``` +pub struct VacantEntryRef<'a, 'b, K, Q: ?Sized, V, S, A: Allocator = Global> { + hash: u64, + key: KeyOrRef<'b, K, Q>, + table: &'a mut HashMap, +} + +impl, Q: ?Sized + Debug, V, S, A: Allocator> Debug + for VacantEntryRef<'_, '_, K, Q, V, S, A> +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple("VacantEntryRef").field(&self.key()).finish() + } +} + +/// The error returned by [`try_insert`](HashMap::try_insert) when the key already exists. +/// +/// Contains the occupied entry, and the value that was not inserted. +/// +/// # Examples +/// +/// ``` +/// use hashbrown::hash_map::{HashMap, OccupiedError}; +/// +/// let mut map: HashMap<_, _> = [("a", 10), ("b", 20)].into(); +/// +/// // try_insert method returns mutable reference to the value if keys are vacant, +/// // but if the map did have key present, nothing is updated, and the provided +/// // value is returned inside `Err(_)` variant +/// match map.try_insert("a", 100) { +/// Err(OccupiedError { mut entry, value }) => { +/// assert_eq!(entry.key(), &"a"); +/// assert_eq!(value, 100); +/// assert_eq!(entry.insert(100), 10) +/// } +/// _ => unreachable!(), +/// } +/// assert_eq!(map[&"a"], 100); +/// ``` +pub struct OccupiedError<'a, K, V, S, A: Allocator = Global> { + /// The entry in the map that was already occupied. + pub entry: OccupiedEntry<'a, K, V, S, A>, + /// The value which was not inserted, because the entry was already occupied. + pub value: V, +} + +impl Debug for OccupiedError<'_, K, V, S, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("OccupiedError") + .field("key", self.entry.key()) + .field("old_value", self.entry.get()) + .field("new_value", &self.value) + .finish() + } +} + +impl<'a, K: Debug, V: Debug, S, A: Allocator> fmt::Display for OccupiedError<'a, K, V, S, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!( + f, + "failed to insert {:?}, key {:?} already exists with value {:?}", + self.value, + self.entry.key(), + self.entry.get(), + ) + } +} + +impl<'a, K, V, S, A: Allocator> IntoIterator for &'a HashMap { + type Item = (&'a K, &'a V); + type IntoIter = Iter<'a, K, V>; + + /// Creates an iterator over the entries of a `HashMap` in arbitrary order. + /// The iterator element type is `(&'a K, &'a V)`. + /// + /// Return the same `Iter` struct as by the [`iter`] method on [`HashMap`]. + /// + /// [`iter`]: struct.HashMap.html#method.iter + /// [`HashMap`]: struct.HashMap.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// let map_one: HashMap<_, _> = [(1, "a"), (2, "b"), (3, "c")].into(); + /// let mut map_two = HashMap::new(); + /// + /// for (key, value) in &map_one { + /// println!("Key: {}, Value: {}", key, value); + /// map_two.insert_unique_unchecked(*key, *value); + /// } + /// + /// assert_eq!(map_one, map_two); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + fn into_iter(self) -> Iter<'a, K, V> { + self.iter() + } +} + +impl<'a, K, V, S, A: Allocator> IntoIterator for &'a mut HashMap { + type Item = (&'a K, &'a mut V); + type IntoIter = IterMut<'a, K, V>; + + /// Creates an iterator over the entries of a `HashMap` in arbitrary order + /// with mutable references to the values. The iterator element type is + /// `(&'a K, &'a mut V)`. + /// + /// Return the same `IterMut` struct as by the [`iter_mut`] method on + /// [`HashMap`]. + /// + /// [`iter_mut`]: struct.HashMap.html#method.iter_mut + /// [`HashMap`]: struct.HashMap.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// let mut map: HashMap<_, _> = [("a", 1), ("b", 2), ("c", 3)].into(); + /// + /// for (key, value) in &mut map { + /// println!("Key: {}, Value: {}", key, value); + /// *value *= 2; + /// } + /// + /// let mut vec = map.iter().collect::>(); + /// // The `Iter` iterator produces items in arbitrary order, so the + /// // items must be sorted to test them against a sorted array. + /// vec.sort_unstable(); + /// assert_eq!(vec, [(&"a", &2), (&"b", &4), (&"c", &6)]); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + fn into_iter(self) -> IterMut<'a, K, V> { + self.iter_mut() + } +} + +impl IntoIterator for HashMap { + type Item = (K, V); + type IntoIter = IntoIter; + + /// Creates a consuming iterator, that is, one that moves each key-value + /// pair out of the map in arbitrary order. The map cannot be used after + /// calling this. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let map: HashMap<_, _> = [("a", 1), ("b", 2), ("c", 3)].into(); + /// + /// // Not possible with .iter() + /// let mut vec: Vec<(&str, i32)> = map.into_iter().collect(); + /// // The `IntoIter` iterator produces items in arbitrary order, so + /// // the items must be sorted to test them against a sorted array. + /// vec.sort_unstable(); + /// assert_eq!(vec, [("a", 1), ("b", 2), ("c", 3)]); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + fn into_iter(self) -> IntoIter { + IntoIter { + inner: self.table.into_iter(), + } + } +} + +impl<'a, K, V> Iterator for Iter<'a, K, V> { + type Item = (&'a K, &'a V); + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option<(&'a K, &'a V)> { + // Avoid `Option::map` because it bloats LLVM IR. + match self.inner.next() { + Some(x) => unsafe { + let r = x.as_ref(); + Some((&r.0, &r.1)) + }, + None => None, + } + } + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + self.inner.size_hint() + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.inner.fold(init, |acc, x| unsafe { + let (k, v) = x.as_ref(); + f(acc, (k, v)) + }) + } +} +impl ExactSizeIterator for Iter<'_, K, V> { + #[cfg_attr(feature = "inline-more", inline)] + fn len(&self) -> usize { + self.inner.len() + } +} + +impl FusedIterator for Iter<'_, K, V> {} + +impl<'a, K, V> Iterator for IterMut<'a, K, V> { + type Item = (&'a K, &'a mut V); + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option<(&'a K, &'a mut V)> { + // Avoid `Option::map` because it bloats LLVM IR. + match self.inner.next() { + Some(x) => unsafe { + let r = x.as_mut(); + Some((&r.0, &mut r.1)) + }, + None => None, + } + } + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + self.inner.size_hint() + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.inner.fold(init, |acc, x| unsafe { + let (k, v) = x.as_mut(); + f(acc, (k, v)) + }) + } +} +impl ExactSizeIterator for IterMut<'_, K, V> { + #[cfg_attr(feature = "inline-more", inline)] + fn len(&self) -> usize { + self.inner.len() + } +} +impl FusedIterator for IterMut<'_, K, V> {} + +impl fmt::Debug for IterMut<'_, K, V> +where + K: fmt::Debug, + V: fmt::Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list().entries(self.iter()).finish() + } +} + +impl Iterator for IntoIter { + type Item = (K, V); + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option<(K, V)> { + self.inner.next() + } + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + self.inner.size_hint() + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.inner.fold(init, f) + } +} +impl ExactSizeIterator for IntoIter { + #[cfg_attr(feature = "inline-more", inline)] + fn len(&self) -> usize { + self.inner.len() + } +} +impl FusedIterator for IntoIter {} + +impl fmt::Debug for IntoIter { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list().entries(self.iter()).finish() + } +} + +impl<'a, K, V> Iterator for Keys<'a, K, V> { + type Item = &'a K; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option<&'a K> { + // Avoid `Option::map` because it bloats LLVM IR. + match self.inner.next() { + Some((k, _)) => Some(k), + None => None, + } + } + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + self.inner.size_hint() + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.inner.fold(init, |acc, (k, _)| f(acc, k)) + } +} +impl ExactSizeIterator for Keys<'_, K, V> { + #[cfg_attr(feature = "inline-more", inline)] + fn len(&self) -> usize { + self.inner.len() + } +} +impl FusedIterator for Keys<'_, K, V> {} + +impl<'a, K, V> Iterator for Values<'a, K, V> { + type Item = &'a V; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option<&'a V> { + // Avoid `Option::map` because it bloats LLVM IR. + match self.inner.next() { + Some((_, v)) => Some(v), + None => None, + } + } + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + self.inner.size_hint() + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.inner.fold(init, |acc, (_, v)| f(acc, v)) + } +} +impl ExactSizeIterator for Values<'_, K, V> { + #[cfg_attr(feature = "inline-more", inline)] + fn len(&self) -> usize { + self.inner.len() + } +} +impl FusedIterator for Values<'_, K, V> {} + +impl<'a, K, V> Iterator for ValuesMut<'a, K, V> { + type Item = &'a mut V; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option<&'a mut V> { + // Avoid `Option::map` because it bloats LLVM IR. + match self.inner.next() { + Some((_, v)) => Some(v), + None => None, + } + } + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + self.inner.size_hint() + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.inner.fold(init, |acc, (_, v)| f(acc, v)) + } +} +impl ExactSizeIterator for ValuesMut<'_, K, V> { + #[cfg_attr(feature = "inline-more", inline)] + fn len(&self) -> usize { + self.inner.len() + } +} +impl FusedIterator for ValuesMut<'_, K, V> {} + +impl fmt::Debug for ValuesMut<'_, K, V> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list() + .entries(self.inner.iter().map(|(_, val)| val)) + .finish() + } +} + +impl<'a, K, V, A: Allocator> Iterator for Drain<'a, K, V, A> { + type Item = (K, V); + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option<(K, V)> { + self.inner.next() + } + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + self.inner.size_hint() + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.inner.fold(init, f) + } +} +impl ExactSizeIterator for Drain<'_, K, V, A> { + #[cfg_attr(feature = "inline-more", inline)] + fn len(&self) -> usize { + self.inner.len() + } +} +impl FusedIterator for Drain<'_, K, V, A> {} + +impl fmt::Debug for Drain<'_, K, V, A> +where + K: fmt::Debug, + V: fmt::Debug, + A: Allocator, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list().entries(self.iter()).finish() + } +} + +impl<'a, K, V, S, A: Allocator> Entry<'a, K, V, S, A> { + /// Sets the value of the entry, and returns an OccupiedEntry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// let entry = map.entry("horseyland").insert(37); + /// + /// assert_eq!(entry.key(), &"horseyland"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(self, value: V) -> OccupiedEntry<'a, K, V, S, A> + where + K: Hash, + S: BuildHasher, + { + match self { + Entry::Occupied(mut entry) => { + entry.insert(value); + entry + } + Entry::Vacant(entry) => entry.insert_entry(value), + } + } + + /// Ensures a value is in the entry by inserting the default if empty, and returns + /// a mutable reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// // nonexistent key + /// map.entry("poneyland").or_insert(3); + /// assert_eq!(map["poneyland"], 3); + /// + /// // existing key + /// *map.entry("poneyland").or_insert(10) *= 2; + /// assert_eq!(map["poneyland"], 6); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_insert(self, default: V) -> &'a mut V + where + K: Hash, + S: BuildHasher, + { + match self { + Entry::Occupied(entry) => entry.into_mut(), + Entry::Vacant(entry) => entry.insert(default), + } + } + + /// Ensures a value is in the entry by inserting the result of the default function if empty, + /// and returns a mutable reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// // nonexistent key + /// map.entry("poneyland").or_insert_with(|| 3); + /// assert_eq!(map["poneyland"], 3); + /// + /// // existing key + /// *map.entry("poneyland").or_insert_with(|| 10) *= 2; + /// assert_eq!(map["poneyland"], 6); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_insert_with V>(self, default: F) -> &'a mut V + where + K: Hash, + S: BuildHasher, + { + match self { + Entry::Occupied(entry) => entry.into_mut(), + Entry::Vacant(entry) => entry.insert(default()), + } + } + + /// Ensures a value is in the entry by inserting, if empty, the result of the default function. + /// This method allows for generating key-derived values for insertion by providing the default + /// function a reference to the key that was moved during the `.entry(key)` method call. + /// + /// The reference to the moved key is provided so that cloning or copying the key is + /// unnecessary, unlike with `.or_insert_with(|| ... )`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, usize> = HashMap::new(); + /// + /// // nonexistent key + /// map.entry("poneyland").or_insert_with_key(|key| key.chars().count()); + /// assert_eq!(map["poneyland"], 9); + /// + /// // existing key + /// *map.entry("poneyland").or_insert_with_key(|key| key.chars().count() * 10) *= 2; + /// assert_eq!(map["poneyland"], 18); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_insert_with_key V>(self, default: F) -> &'a mut V + where + K: Hash, + S: BuildHasher, + { + match self { + Entry::Occupied(entry) => entry.into_mut(), + Entry::Vacant(entry) => { + let value = default(entry.key()); + entry.insert(value) + } + } + } + + /// Returns a reference to this entry's key. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.entry("poneyland").or_insert(3); + /// // existing key + /// assert_eq!(map.entry("poneyland").key(), &"poneyland"); + /// // nonexistent key + /// assert_eq!(map.entry("horseland").key(), &"horseland"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn key(&self) -> &K { + match *self { + Entry::Occupied(ref entry) => entry.key(), + Entry::Vacant(ref entry) => entry.key(), + } + } + + /// Provides in-place mutable access to an occupied entry before any + /// potential inserts into the map. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// map.entry("poneyland") + /// .and_modify(|e| { *e += 1 }) + /// .or_insert(42); + /// assert_eq!(map["poneyland"], 42); + /// + /// map.entry("poneyland") + /// .and_modify(|e| { *e += 1 }) + /// .or_insert(42); + /// assert_eq!(map["poneyland"], 43); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn and_modify(self, f: F) -> Self + where + F: FnOnce(&mut V), + { + match self { + Entry::Occupied(mut entry) => { + f(entry.get_mut()); + Entry::Occupied(entry) + } + Entry::Vacant(entry) => Entry::Vacant(entry), + } + } + + /// Provides shared access to the key and owned access to the value of + /// an occupied entry and allows to replace or remove it based on the + /// value of the returned option. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::Entry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// let entry = map + /// .entry("poneyland") + /// .and_replace_entry_with(|_k, _v| panic!()); + /// + /// match entry { + /// Entry::Vacant(e) => { + /// assert_eq!(e.key(), &"poneyland"); + /// } + /// Entry::Occupied(_) => panic!(), + /// } + /// + /// map.insert("poneyland", 42); + /// + /// let entry = map + /// .entry("poneyland") + /// .and_replace_entry_with(|k, v| { + /// assert_eq!(k, &"poneyland"); + /// assert_eq!(v, 42); + /// Some(v + 1) + /// }); + /// + /// match entry { + /// Entry::Occupied(e) => { + /// assert_eq!(e.key(), &"poneyland"); + /// assert_eq!(e.get(), &43); + /// } + /// Entry::Vacant(_) => panic!(), + /// } + /// + /// assert_eq!(map["poneyland"], 43); + /// + /// let entry = map + /// .entry("poneyland") + /// .and_replace_entry_with(|_k, _v| None); + /// + /// match entry { + /// Entry::Vacant(e) => assert_eq!(e.key(), &"poneyland"), + /// Entry::Occupied(_) => panic!(), + /// } + /// + /// assert!(!map.contains_key("poneyland")); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn and_replace_entry_with(self, f: F) -> Self + where + F: FnOnce(&K, V) -> Option, + { + match self { + Entry::Occupied(entry) => entry.replace_entry_with(f), + Entry::Vacant(_) => self, + } + } +} + +impl<'a, K, V: Default, S, A: Allocator> Entry<'a, K, V, S, A> { + /// Ensures a value is in the entry by inserting the default value if empty, + /// and returns a mutable reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, Option> = HashMap::new(); + /// + /// // nonexistent key + /// map.entry("poneyland").or_default(); + /// assert_eq!(map["poneyland"], None); + /// + /// map.insert("horseland", Some(3)); + /// + /// // existing key + /// assert_eq!(map.entry("horseland").or_default(), &mut Some(3)); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_default(self) -> &'a mut V + where + K: Hash, + S: BuildHasher, + { + match self { + Entry::Occupied(entry) => entry.into_mut(), + Entry::Vacant(entry) => entry.insert(Default::default()), + } + } +} + +impl<'a, K, V, S, A: Allocator> OccupiedEntry<'a, K, V, S, A> { + /// Gets a reference to the key in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{Entry, HashMap}; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.entry("poneyland").or_insert(12); + /// + /// match map.entry("poneyland") { + /// Entry::Vacant(_) => panic!(), + /// Entry::Occupied(entry) => assert_eq!(entry.key(), &"poneyland"), + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn key(&self) -> &K { + unsafe { &self.elem.as_ref().0 } + } + + /// Take the ownership of the key and value from the map. + /// Keeps the allocated memory for reuse. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::Entry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// // The map is empty + /// assert!(map.is_empty() && map.capacity() == 0); + /// + /// map.entry("poneyland").or_insert(12); + /// + /// if let Entry::Occupied(o) = map.entry("poneyland") { + /// // We delete the entry from the map. + /// assert_eq!(o.remove_entry(), ("poneyland", 12)); + /// } + /// + /// assert_eq!(map.contains_key("poneyland"), false); + /// // Now map hold none elements + /// assert!(map.is_empty()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove_entry(self) -> (K, V) { + unsafe { self.table.table.remove(self.elem).0 } + } + + /// Gets a reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::Entry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.entry("poneyland").or_insert(12); + /// + /// match map.entry("poneyland") { + /// Entry::Vacant(_) => panic!(), + /// Entry::Occupied(entry) => assert_eq!(entry.get(), &12), + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get(&self) -> &V { + unsafe { &self.elem.as_ref().1 } + } + + /// Gets a mutable reference to the value in the entry. + /// + /// If you need a reference to the `OccupiedEntry` which may outlive the + /// destruction of the `Entry` value, see [`into_mut`]. + /// + /// [`into_mut`]: #method.into_mut + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::Entry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.entry("poneyland").or_insert(12); + /// + /// assert_eq!(map["poneyland"], 12); + /// if let Entry::Occupied(mut o) = map.entry("poneyland") { + /// *o.get_mut() += 10; + /// assert_eq!(*o.get(), 22); + /// + /// // We can use the same Entry multiple times. + /// *o.get_mut() += 2; + /// } + /// + /// assert_eq!(map["poneyland"], 24); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get_mut(&mut self) -> &mut V { + unsafe { &mut self.elem.as_mut().1 } + } + + /// Converts the OccupiedEntry into a mutable reference to the value in the entry + /// with a lifetime bound to the map itself. + /// + /// If you need multiple references to the `OccupiedEntry`, see [`get_mut`]. + /// + /// [`get_mut`]: #method.get_mut + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{Entry, HashMap}; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.entry("poneyland").or_insert(12); + /// + /// assert_eq!(map["poneyland"], 12); + /// + /// let value: &mut u32; + /// match map.entry("poneyland") { + /// Entry::Occupied(entry) => value = entry.into_mut(), + /// Entry::Vacant(_) => panic!(), + /// } + /// *value += 10; + /// + /// assert_eq!(map["poneyland"], 22); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn into_mut(self) -> &'a mut V { + unsafe { &mut self.elem.as_mut().1 } + } + + /// Sets the value of the entry, and returns the entry's old value. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::Entry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.entry("poneyland").or_insert(12); + /// + /// if let Entry::Occupied(mut o) = map.entry("poneyland") { + /// assert_eq!(o.insert(15), 12); + /// } + /// + /// assert_eq!(map["poneyland"], 15); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(&mut self, value: V) -> V { + mem::replace(self.get_mut(), value) + } + + /// Takes the value out of the entry, and returns it. + /// Keeps the allocated memory for reuse. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::Entry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// // The map is empty + /// assert!(map.is_empty() && map.capacity() == 0); + /// + /// map.entry("poneyland").or_insert(12); + /// + /// if let Entry::Occupied(o) = map.entry("poneyland") { + /// assert_eq!(o.remove(), 12); + /// } + /// + /// assert_eq!(map.contains_key("poneyland"), false); + /// // Now map hold none elements + /// assert!(map.is_empty()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove(self) -> V { + self.remove_entry().1 + } + + /// Replaces the entry, returning the old key and value. The new key in the hash map will be + /// the key used to create this entry. + /// + /// # Panics + /// + /// Will panic if this OccupiedEntry was created through [`Entry::insert`]. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{Entry, HashMap}; + /// use std::rc::Rc; + /// + /// let mut map: HashMap, u32> = HashMap::new(); + /// let key_one = Rc::new("Stringthing".to_string()); + /// let key_two = Rc::new("Stringthing".to_string()); + /// + /// map.insert(key_one.clone(), 15); + /// assert!(Rc::strong_count(&key_one) == 2 && Rc::strong_count(&key_two) == 1); + /// + /// match map.entry(key_two.clone()) { + /// Entry::Occupied(entry) => { + /// let (old_key, old_value): (Rc, u32) = entry.replace_entry(16); + /// assert!(Rc::ptr_eq(&key_one, &old_key) && old_value == 15); + /// } + /// Entry::Vacant(_) => panic!(), + /// } + /// + /// assert!(Rc::strong_count(&key_one) == 1 && Rc::strong_count(&key_two) == 2); + /// assert_eq!(map[&"Stringthing".to_owned()], 16); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn replace_entry(self, value: V) -> (K, V) { + let entry = unsafe { self.elem.as_mut() }; + + let old_key = mem::replace(&mut entry.0, self.key.unwrap()); + let old_value = mem::replace(&mut entry.1, value); + + (old_key, old_value) + } + + /// Replaces the key in the hash map with the key used to create this entry. + /// + /// # Panics + /// + /// Will panic if this OccupiedEntry was created through [`Entry::insert`]. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{Entry, HashMap}; + /// use std::rc::Rc; + /// + /// let mut map: HashMap, usize> = HashMap::with_capacity(6); + /// let mut keys_one: Vec> = Vec::with_capacity(6); + /// let mut keys_two: Vec> = Vec::with_capacity(6); + /// + /// for (value, key) in ["a", "b", "c", "d", "e", "f"].into_iter().enumerate() { + /// let rc_key = Rc::new(key.to_owned()); + /// keys_one.push(rc_key.clone()); + /// map.insert(rc_key.clone(), value); + /// keys_two.push(Rc::new(key.to_owned())); + /// } + /// + /// assert!( + /// keys_one.iter().all(|key| Rc::strong_count(key) == 2) + /// && keys_two.iter().all(|key| Rc::strong_count(key) == 1) + /// ); + /// + /// reclaim_memory(&mut map, &keys_two); + /// + /// assert!( + /// keys_one.iter().all(|key| Rc::strong_count(key) == 1) + /// && keys_two.iter().all(|key| Rc::strong_count(key) == 2) + /// ); + /// + /// fn reclaim_memory(map: &mut HashMap, usize>, keys: &[Rc]) { + /// for key in keys { + /// if let Entry::Occupied(entry) = map.entry(key.clone()) { + /// // Replaces the entry's key with our version of it in `keys`. + /// entry.replace_key(); + /// } + /// } + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn replace_key(self) -> K { + let entry = unsafe { self.elem.as_mut() }; + mem::replace(&mut entry.0, self.key.unwrap()) + } + + /// Provides shared access to the key and owned access to the value of + /// the entry and allows to replace or remove it based on the + /// value of the returned option. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::Entry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.insert("poneyland", 42); + /// + /// let entry = match map.entry("poneyland") { + /// Entry::Occupied(e) => { + /// e.replace_entry_with(|k, v| { + /// assert_eq!(k, &"poneyland"); + /// assert_eq!(v, 42); + /// Some(v + 1) + /// }) + /// } + /// Entry::Vacant(_) => panic!(), + /// }; + /// + /// match entry { + /// Entry::Occupied(e) => { + /// assert_eq!(e.key(), &"poneyland"); + /// assert_eq!(e.get(), &43); + /// } + /// Entry::Vacant(_) => panic!(), + /// } + /// + /// assert_eq!(map["poneyland"], 43); + /// + /// let entry = match map.entry("poneyland") { + /// Entry::Occupied(e) => e.replace_entry_with(|_k, _v| None), + /// Entry::Vacant(_) => panic!(), + /// }; + /// + /// match entry { + /// Entry::Vacant(e) => { + /// assert_eq!(e.key(), &"poneyland"); + /// } + /// Entry::Occupied(_) => panic!(), + /// } + /// + /// assert!(!map.contains_key("poneyland")); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn replace_entry_with(self, f: F) -> Entry<'a, K, V, S, A> + where + F: FnOnce(&K, V) -> Option, + { + unsafe { + let mut spare_key = None; + + self.table + .table + .replace_bucket_with(self.elem.clone(), |(key, value)| { + if let Some(new_value) = f(&key, value) { + Some((key, new_value)) + } else { + spare_key = Some(key); + None + } + }); + + if let Some(key) = spare_key { + Entry::Vacant(VacantEntry { + hash: self.hash, + key, + table: self.table, + }) + } else { + Entry::Occupied(self) + } + } + } +} + +impl<'a, K, V, S, A: Allocator> VacantEntry<'a, K, V, S, A> { + /// Gets a reference to the key that would be used when inserting a value + /// through the `VacantEntry`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// assert_eq!(map.entry("poneyland").key(), &"poneyland"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn key(&self) -> &K { + &self.key + } + + /// Take ownership of the key. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{Entry, HashMap}; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// match map.entry("poneyland") { + /// Entry::Occupied(_) => panic!(), + /// Entry::Vacant(v) => assert_eq!(v.into_key(), "poneyland"), + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn into_key(self) -> K { + self.key + } + + /// Sets the value of the entry with the VacantEntry's key, + /// and returns a mutable reference to it. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::Entry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// if let Entry::Vacant(o) = map.entry("poneyland") { + /// o.insert(37); + /// } + /// assert_eq!(map["poneyland"], 37); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(self, value: V) -> &'a mut V + where + K: Hash, + S: BuildHasher, + { + let table = &mut self.table.table; + let entry = table.insert_entry( + self.hash, + (self.key, value), + make_hasher::<_, V, S>(&self.table.hash_builder), + ); + &mut entry.1 + } + + #[cfg_attr(feature = "inline-more", inline)] + pub(crate) fn insert_entry(self, value: V) -> OccupiedEntry<'a, K, V, S, A> + where + K: Hash, + S: BuildHasher, + { + let elem = self.table.table.insert( + self.hash, + (self.key, value), + make_hasher::<_, V, S>(&self.table.hash_builder), + ); + OccupiedEntry { + hash: self.hash, + key: None, + elem, + table: self.table, + } + } +} + +impl<'a, 'b, K, Q: ?Sized, V, S, A: Allocator> EntryRef<'a, 'b, K, Q, V, S, A> { + /// Sets the value of the entry, and returns an OccupiedEntryRef. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap = HashMap::new(); + /// let entry = map.entry_ref("horseyland").insert(37); + /// + /// assert_eq!(entry.key(), "horseyland"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(self, value: V) -> OccupiedEntryRef<'a, 'b, K, Q, V, S, A> + where + K: Hash + From<&'b Q>, + S: BuildHasher, + { + match self { + EntryRef::Occupied(mut entry) => { + entry.insert(value); + entry + } + EntryRef::Vacant(entry) => entry.insert_entry(value), + } + } + + /// Ensures a value is in the entry by inserting the default if empty, and returns + /// a mutable reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap = HashMap::new(); + /// + /// // nonexistent key + /// map.entry_ref("poneyland").or_insert(3); + /// assert_eq!(map["poneyland"], 3); + /// + /// // existing key + /// *map.entry_ref("poneyland").or_insert(10) *= 2; + /// assert_eq!(map["poneyland"], 6); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_insert(self, default: V) -> &'a mut V + where + K: Hash + From<&'b Q>, + S: BuildHasher, + { + match self { + EntryRef::Occupied(entry) => entry.into_mut(), + EntryRef::Vacant(entry) => entry.insert(default), + } + } + + /// Ensures a value is in the entry by inserting the result of the default function if empty, + /// and returns a mutable reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap = HashMap::new(); + /// + /// // nonexistent key + /// map.entry_ref("poneyland").or_insert_with(|| 3); + /// assert_eq!(map["poneyland"], 3); + /// + /// // existing key + /// *map.entry_ref("poneyland").or_insert_with(|| 10) *= 2; + /// assert_eq!(map["poneyland"], 6); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_insert_with V>(self, default: F) -> &'a mut V + where + K: Hash + From<&'b Q>, + S: BuildHasher, + { + match self { + EntryRef::Occupied(entry) => entry.into_mut(), + EntryRef::Vacant(entry) => entry.insert(default()), + } + } + + /// Ensures a value is in the entry by inserting, if empty, the result of the default function. + /// This method allows for generating key-derived values for insertion by providing the default + /// function an access to the borrower form of the key. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap = HashMap::new(); + /// + /// // nonexistent key + /// map.entry_ref("poneyland").or_insert_with_key(|key| key.chars().count()); + /// assert_eq!(map["poneyland"], 9); + /// + /// // existing key + /// *map.entry_ref("poneyland").or_insert_with_key(|key| key.chars().count() * 10) *= 2; + /// assert_eq!(map["poneyland"], 18); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_insert_with_key V>(self, default: F) -> &'a mut V + where + K: Hash + Borrow + From<&'b Q>, + S: BuildHasher, + { + match self { + EntryRef::Occupied(entry) => entry.into_mut(), + EntryRef::Vacant(entry) => { + let value = default(entry.key.as_ref()); + entry.insert(value) + } + } + } + + /// Returns a reference to this entry's key. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap = HashMap::new(); + /// map.entry_ref("poneyland").or_insert(3); + /// // existing key + /// assert_eq!(map.entry_ref("poneyland").key(), "poneyland"); + /// // nonexistent key + /// assert_eq!(map.entry_ref("horseland").key(), "horseland"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn key(&self) -> &Q + where + K: Borrow, + { + match *self { + EntryRef::Occupied(ref entry) => entry.key().borrow(), + EntryRef::Vacant(ref entry) => entry.key(), + } + } + + /// Provides in-place mutable access to an occupied entry before any + /// potential inserts into the map. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap = HashMap::new(); + /// + /// map.entry_ref("poneyland") + /// .and_modify(|e| { *e += 1 }) + /// .or_insert(42); + /// assert_eq!(map["poneyland"], 42); + /// + /// map.entry_ref("poneyland") + /// .and_modify(|e| { *e += 1 }) + /// .or_insert(42); + /// assert_eq!(map["poneyland"], 43); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn and_modify(self, f: F) -> Self + where + F: FnOnce(&mut V), + { + match self { + EntryRef::Occupied(mut entry) => { + f(entry.get_mut()); + EntryRef::Occupied(entry) + } + EntryRef::Vacant(entry) => EntryRef::Vacant(entry), + } + } + + /// Provides shared access to the key and owned access to the value of + /// an occupied entry and allows to replace or remove it based on the + /// value of the returned option. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::EntryRef; + /// + /// let mut map: HashMap = HashMap::new(); + /// + /// let entry = map + /// .entry_ref("poneyland") + /// .and_replace_entry_with(|_k, _v| panic!()); + /// + /// match entry { + /// EntryRef::Vacant(e) => { + /// assert_eq!(e.key(), "poneyland"); + /// } + /// EntryRef::Occupied(_) => panic!(), + /// } + /// + /// map.insert("poneyland".to_string(), 42); + /// + /// let entry = map + /// .entry_ref("poneyland") + /// .and_replace_entry_with(|k, v| { + /// assert_eq!(k, "poneyland"); + /// assert_eq!(v, 42); + /// Some(v + 1) + /// }); + /// + /// match entry { + /// EntryRef::Occupied(e) => { + /// assert_eq!(e.key(), "poneyland"); + /// assert_eq!(e.get(), &43); + /// } + /// EntryRef::Vacant(_) => panic!(), + /// } + /// + /// assert_eq!(map["poneyland"], 43); + /// + /// let entry = map + /// .entry_ref("poneyland") + /// .and_replace_entry_with(|_k, _v| None); + /// + /// match entry { + /// EntryRef::Vacant(e) => assert_eq!(e.key(), "poneyland"), + /// EntryRef::Occupied(_) => panic!(), + /// } + /// + /// assert!(!map.contains_key("poneyland")); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn and_replace_entry_with(self, f: F) -> Self + where + F: FnOnce(&K, V) -> Option, + { + match self { + EntryRef::Occupied(entry) => entry.replace_entry_with(f), + EntryRef::Vacant(_) => self, + } + } +} + +impl<'a, 'b, K, Q: ?Sized, V: Default, S, A: Allocator> EntryRef<'a, 'b, K, Q, V, S, A> { + /// Ensures a value is in the entry by inserting the default value if empty, + /// and returns a mutable reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap> = HashMap::new(); + /// + /// // nonexistent key + /// map.entry_ref("poneyland").or_default(); + /// assert_eq!(map["poneyland"], None); + /// + /// map.insert("horseland".to_string(), Some(3)); + /// + /// // existing key + /// assert_eq!(map.entry_ref("horseland").or_default(), &mut Some(3)); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_default(self) -> &'a mut V + where + K: Hash + From<&'b Q>, + S: BuildHasher, + { + match self { + EntryRef::Occupied(entry) => entry.into_mut(), + EntryRef::Vacant(entry) => entry.insert(Default::default()), + } + } +} + +impl<'a, 'b, K, Q: ?Sized, V, S, A: Allocator> OccupiedEntryRef<'a, 'b, K, Q, V, S, A> { + /// Gets a reference to the key in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{EntryRef, HashMap}; + /// + /// let mut map: HashMap = HashMap::new(); + /// map.entry_ref("poneyland").or_insert(12); + /// + /// match map.entry_ref("poneyland") { + /// EntryRef::Vacant(_) => panic!(), + /// EntryRef::Occupied(entry) => assert_eq!(entry.key(), "poneyland"), + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn key(&self) -> &K { + unsafe { &self.elem.as_ref().0 } + } + + /// Take the ownership of the key and value from the map. + /// Keeps the allocated memory for reuse. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::EntryRef; + /// + /// let mut map: HashMap = HashMap::new(); + /// // The map is empty + /// assert!(map.is_empty() && map.capacity() == 0); + /// + /// map.entry_ref("poneyland").or_insert(12); + /// + /// if let EntryRef::Occupied(o) = map.entry_ref("poneyland") { + /// // We delete the entry from the map. + /// assert_eq!(o.remove_entry(), ("poneyland".to_owned(), 12)); + /// } + /// + /// assert_eq!(map.contains_key("poneyland"), false); + /// // Now map hold none elements but capacity is equal to the old one + /// assert!(map.is_empty()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove_entry(self) -> (K, V) { + unsafe { self.table.table.remove(self.elem).0 } + } + + /// Gets a reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::EntryRef; + /// + /// let mut map: HashMap = HashMap::new(); + /// map.entry_ref("poneyland").or_insert(12); + /// + /// match map.entry_ref("poneyland") { + /// EntryRef::Vacant(_) => panic!(), + /// EntryRef::Occupied(entry) => assert_eq!(entry.get(), &12), + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get(&self) -> &V { + unsafe { &self.elem.as_ref().1 } + } + + /// Gets a mutable reference to the value in the entry. + /// + /// If you need a reference to the `OccupiedEntryRef` which may outlive the + /// destruction of the `EntryRef` value, see [`into_mut`]. + /// + /// [`into_mut`]: #method.into_mut + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::EntryRef; + /// + /// let mut map: HashMap = HashMap::new(); + /// map.entry_ref("poneyland").or_insert(12); + /// + /// assert_eq!(map["poneyland"], 12); + /// if let EntryRef::Occupied(mut o) = map.entry_ref("poneyland") { + /// *o.get_mut() += 10; + /// assert_eq!(*o.get(), 22); + /// + /// // We can use the same Entry multiple times. + /// *o.get_mut() += 2; + /// } + /// + /// assert_eq!(map["poneyland"], 24); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get_mut(&mut self) -> &mut V { + unsafe { &mut self.elem.as_mut().1 } + } + + /// Converts the OccupiedEntryRef into a mutable reference to the value in the entry + /// with a lifetime bound to the map itself. + /// + /// If you need multiple references to the `OccupiedEntryRef`, see [`get_mut`]. + /// + /// [`get_mut`]: #method.get_mut + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{EntryRef, HashMap}; + /// + /// let mut map: HashMap = HashMap::new(); + /// map.entry_ref("poneyland").or_insert(12); + /// + /// let value: &mut u32; + /// match map.entry_ref("poneyland") { + /// EntryRef::Occupied(entry) => value = entry.into_mut(), + /// EntryRef::Vacant(_) => panic!(), + /// } + /// *value += 10; + /// + /// assert_eq!(map["poneyland"], 22); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn into_mut(self) -> &'a mut V { + unsafe { &mut self.elem.as_mut().1 } + } + + /// Sets the value of the entry, and returns the entry's old value. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::EntryRef; + /// + /// let mut map: HashMap = HashMap::new(); + /// map.entry_ref("poneyland").or_insert(12); + /// + /// if let EntryRef::Occupied(mut o) = map.entry_ref("poneyland") { + /// assert_eq!(o.insert(15), 12); + /// } + /// + /// assert_eq!(map["poneyland"], 15); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(&mut self, value: V) -> V { + mem::replace(self.get_mut(), value) + } + + /// Takes the value out of the entry, and returns it. + /// Keeps the allocated memory for reuse. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::EntryRef; + /// + /// let mut map: HashMap = HashMap::new(); + /// // The map is empty + /// assert!(map.is_empty() && map.capacity() == 0); + /// + /// map.entry_ref("poneyland").or_insert(12); + /// + /// if let EntryRef::Occupied(o) = map.entry_ref("poneyland") { + /// assert_eq!(o.remove(), 12); + /// } + /// + /// assert_eq!(map.contains_key("poneyland"), false); + /// // Now map hold none elements but capacity is equal to the old one + /// assert!(map.is_empty()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove(self) -> V { + self.remove_entry().1 + } + + /// Replaces the entry, returning the old key and value. The new key in the hash map will be + /// the key used to create this entry. + /// + /// # Panics + /// + /// Will panic if this OccupiedEntryRef was created through [`EntryRef::insert`]. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{EntryRef, HashMap}; + /// use std::rc::Rc; + /// + /// let mut map: HashMap, u32> = HashMap::new(); + /// let key: Rc = Rc::from("Stringthing"); + /// + /// map.insert(key.clone(), 15); + /// assert_eq!(Rc::strong_count(&key), 2); + /// + /// match map.entry_ref("Stringthing") { + /// EntryRef::Occupied(entry) => { + /// let (old_key, old_value): (Rc, u32) = entry.replace_entry(16); + /// assert!(Rc::ptr_eq(&key, &old_key) && old_value == 15); + /// } + /// EntryRef::Vacant(_) => panic!(), + /// } + /// + /// assert_eq!(Rc::strong_count(&key), 1); + /// assert_eq!(map["Stringthing"], 16); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn replace_entry(self, value: V) -> (K, V) + where + K: From<&'b Q>, + { + let entry = unsafe { self.elem.as_mut() }; + + let old_key = mem::replace(&mut entry.0, self.key.unwrap().into_owned()); + let old_value = mem::replace(&mut entry.1, value); + + (old_key, old_value) + } + + /// Replaces the key in the hash map with the key used to create this entry. + /// + /// # Panics + /// + /// Will panic if this OccupiedEntryRef was created through [`EntryRef::insert`]. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{EntryRef, HashMap}; + /// use std::rc::Rc; + /// + /// let mut map: HashMap, usize> = HashMap::with_capacity(6); + /// let mut keys: Vec> = Vec::with_capacity(6); + /// + /// for (value, key) in ["a", "b", "c", "d", "e", "f"].into_iter().enumerate() { + /// let rc_key: Rc = Rc::from(key); + /// keys.push(rc_key.clone()); + /// map.insert(rc_key.clone(), value); + /// } + /// + /// assert!(keys.iter().all(|key| Rc::strong_count(key) == 2)); + /// + /// // It doesn't matter that we kind of use a vector with the same keys, + /// // because all keys will be newly created from the references + /// reclaim_memory(&mut map, &keys); + /// + /// assert!(keys.iter().all(|key| Rc::strong_count(key) == 1)); + /// + /// fn reclaim_memory(map: &mut HashMap, usize>, keys: &[Rc]) { + /// for key in keys { + /// if let EntryRef::Occupied(entry) = map.entry_ref(key.as_ref()) { + /// // Replaces the entry's key with our version of it in `keys`. + /// entry.replace_key(); + /// } + /// } + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn replace_key(self) -> K + where + K: From<&'b Q>, + { + let entry = unsafe { self.elem.as_mut() }; + mem::replace(&mut entry.0, self.key.unwrap().into_owned()) + } + + /// Provides shared access to the key and owned access to the value of + /// the entry and allows to replace or remove it based on the + /// value of the returned option. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::EntryRef; + /// + /// let mut map: HashMap = HashMap::new(); + /// map.insert("poneyland".to_string(), 42); + /// + /// let entry = match map.entry_ref("poneyland") { + /// EntryRef::Occupied(e) => { + /// e.replace_entry_with(|k, v| { + /// assert_eq!(k, "poneyland"); + /// assert_eq!(v, 42); + /// Some(v + 1) + /// }) + /// } + /// EntryRef::Vacant(_) => panic!(), + /// }; + /// + /// match entry { + /// EntryRef::Occupied(e) => { + /// assert_eq!(e.key(), "poneyland"); + /// assert_eq!(e.get(), &43); + /// } + /// EntryRef::Vacant(_) => panic!(), + /// } + /// + /// assert_eq!(map["poneyland"], 43); + /// + /// let entry = match map.entry_ref("poneyland") { + /// EntryRef::Occupied(e) => e.replace_entry_with(|_k, _v| None), + /// EntryRef::Vacant(_) => panic!(), + /// }; + /// + /// match entry { + /// EntryRef::Vacant(e) => { + /// assert_eq!(e.key(), "poneyland"); + /// } + /// EntryRef::Occupied(_) => panic!(), + /// } + /// + /// assert!(!map.contains_key("poneyland")); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn replace_entry_with(self, f: F) -> EntryRef<'a, 'b, K, Q, V, S, A> + where + F: FnOnce(&K, V) -> Option, + { + unsafe { + let mut spare_key = None; + + self.table + .table + .replace_bucket_with(self.elem.clone(), |(key, value)| { + if let Some(new_value) = f(&key, value) { + Some((key, new_value)) + } else { + spare_key = Some(KeyOrRef::Owned(key)); + None + } + }); + + if let Some(key) = spare_key { + EntryRef::Vacant(VacantEntryRef { + hash: self.hash, + key, + table: self.table, + }) + } else { + EntryRef::Occupied(self) + } + } + } +} + +impl<'a, 'b, K, Q: ?Sized, V, S, A: Allocator> VacantEntryRef<'a, 'b, K, Q, V, S, A> { + /// Gets a reference to the key that would be used when inserting a value + /// through the `VacantEntryRef`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap = HashMap::new(); + /// let key: &str = "poneyland"; + /// assert_eq!(map.entry_ref(key).key(), "poneyland"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn key(&self) -> &Q + where + K: Borrow, + { + self.key.as_ref() + } + + /// Take ownership of the key. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{EntryRef, HashMap}; + /// + /// let mut map: HashMap = HashMap::new(); + /// let key: &str = "poneyland"; + /// + /// match map.entry_ref(key) { + /// EntryRef::Occupied(_) => panic!(), + /// EntryRef::Vacant(v) => assert_eq!(v.into_key(), "poneyland".to_owned()), + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn into_key(self) -> K + where + K: From<&'b Q>, + { + self.key.into_owned() + } + + /// Sets the value of the entry with the VacantEntryRef's key, + /// and returns a mutable reference to it. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::EntryRef; + /// + /// let mut map: HashMap = HashMap::new(); + /// let key: &str = "poneyland"; + /// + /// if let EntryRef::Vacant(o) = map.entry_ref(key) { + /// o.insert(37); + /// } + /// assert_eq!(map["poneyland"], 37); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(self, value: V) -> &'a mut V + where + K: Hash + From<&'b Q>, + S: BuildHasher, + { + let table = &mut self.table.table; + let entry = table.insert_entry( + self.hash, + (self.key.into_owned(), value), + make_hasher::<_, V, S>(&self.table.hash_builder), + ); + &mut entry.1 + } + + #[cfg_attr(feature = "inline-more", inline)] + fn insert_entry(self, value: V) -> OccupiedEntryRef<'a, 'b, K, Q, V, S, A> + where + K: Hash + From<&'b Q>, + S: BuildHasher, + { + let elem = self.table.table.insert( + self.hash, + (self.key.into_owned(), value), + make_hasher::<_, V, S>(&self.table.hash_builder), + ); + OccupiedEntryRef { + hash: self.hash, + key: None, + elem, + table: self.table, + } + } +} + +impl FromIterator<(K, V)> for HashMap +where + K: Eq + Hash, + S: BuildHasher + Default, + A: Default + Allocator, +{ + #[cfg_attr(feature = "inline-more", inline)] + fn from_iter>(iter: T) -> Self { + let iter = iter.into_iter(); + let mut map = + Self::with_capacity_and_hasher_in(iter.size_hint().0, S::default(), A::default()); + iter.for_each(|(k, v)| { + map.insert(k, v); + }); + map + } +} + +/// Inserts all new key-values from the iterator and replaces values with existing +/// keys with new values returned from the iterator. +impl Extend<(K, V)> for HashMap +where + K: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + /// Inserts all new key-values from the iterator to existing `HashMap`. + /// Replace values with existing keys with new values returned from the iterator. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert(1, 100); + /// + /// let some_iter = [(1, 1), (2, 2)].into_iter(); + /// map.extend(some_iter); + /// // Replace values with existing keys with new values returned from the iterator. + /// // So that the map.get(&1) doesn't return Some(&100). + /// assert_eq!(map.get(&1), Some(&1)); + /// + /// let some_vec: Vec<_> = vec![(3, 3), (4, 4)]; + /// map.extend(some_vec); + /// + /// let some_arr = [(5, 5), (6, 6)]; + /// map.extend(some_arr); + /// let old_map_len = map.len(); + /// + /// // You can also extend from another HashMap + /// let mut new_map = HashMap::new(); + /// new_map.extend(map); + /// assert_eq!(new_map.len(), old_map_len); + /// + /// let mut vec: Vec<_> = new_map.into_iter().collect(); + /// // The `IntoIter` iterator produces items in arbitrary order, so the + /// // items must be sorted to test them against a sorted array. + /// vec.sort_unstable(); + /// assert_eq!(vec, [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + fn extend>(&mut self, iter: T) { + // Keys may be already present or show multiple times in the iterator. + // Reserve the entire hint lower bound if the map is empty. + // Otherwise reserve half the hint (rounded up), so the map + // will only resize twice in the worst case. + let iter = iter.into_iter(); + let reserve = if self.is_empty() { + iter.size_hint().0 + } else { + (iter.size_hint().0 + 1) / 2 + }; + self.reserve(reserve); + iter.for_each(move |(k, v)| { + self.insert(k, v); + }); + } + + #[inline] + #[cfg(feature = "nightly")] + fn extend_one(&mut self, (k, v): (K, V)) { + self.insert(k, v); + } + + #[inline] + #[cfg(feature = "nightly")] + fn extend_reserve(&mut self, additional: usize) { + // Keys may be already present or show multiple times in the iterator. + // Reserve the entire hint lower bound if the map is empty. + // Otherwise reserve half the hint (rounded up), so the map + // will only resize twice in the worst case. + let reserve = if self.is_empty() { + additional + } else { + (additional + 1) / 2 + }; + self.reserve(reserve); + } +} + +/// Inserts all new key-values from the iterator and replaces values with existing +/// keys with new values returned from the iterator. +impl<'a, K, V, S, A> Extend<(&'a K, &'a V)> for HashMap +where + K: Eq + Hash + Copy, + V: Copy, + S: BuildHasher, + A: Allocator, +{ + /// Inserts all new key-values from the iterator to existing `HashMap`. + /// Replace values with existing keys with new values returned from the iterator. + /// The keys and values must implement [`Copy`] trait. + /// + /// [`Copy`]: https://doc.rust-lang.org/core/marker/trait.Copy.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert(1, 100); + /// + /// let arr = [(1, 1), (2, 2)]; + /// let some_iter = arr.iter().map(|(k, v)| (k, v)); + /// map.extend(some_iter); + /// // Replace values with existing keys with new values returned from the iterator. + /// // So that the map.get(&1) doesn't return Some(&100). + /// assert_eq!(map.get(&1), Some(&1)); + /// + /// let some_vec: Vec<_> = vec![(3, 3), (4, 4)]; + /// map.extend(some_vec.iter().map(|(k, v)| (k, v))); + /// + /// let some_arr = [(5, 5), (6, 6)]; + /// map.extend(some_arr.iter().map(|(k, v)| (k, v))); + /// + /// // You can also extend from another HashMap + /// let mut new_map = HashMap::new(); + /// new_map.extend(&map); + /// assert_eq!(new_map, map); + /// + /// let mut vec: Vec<_> = new_map.into_iter().collect(); + /// // The `IntoIter` iterator produces items in arbitrary order, so the + /// // items must be sorted to test them against a sorted array. + /// vec.sort_unstable(); + /// assert_eq!(vec, [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + fn extend>(&mut self, iter: T) { + self.extend(iter.into_iter().map(|(&key, &value)| (key, value))); + } + + #[inline] + #[cfg(feature = "nightly")] + fn extend_one(&mut self, (k, v): (&'a K, &'a V)) { + self.insert(*k, *v); + } + + #[inline] + #[cfg(feature = "nightly")] + fn extend_reserve(&mut self, additional: usize) { + Extend::<(K, V)>::extend_reserve(self, additional); + } +} + +/// Inserts all new key-values from the iterator and replaces values with existing +/// keys with new values returned from the iterator. +impl<'a, K, V, S, A> Extend<&'a (K, V)> for HashMap +where + K: Eq + Hash + Copy, + V: Copy, + S: BuildHasher, + A: Allocator, +{ + /// Inserts all new key-values from the iterator to existing `HashMap`. + /// Replace values with existing keys with new values returned from the iterator. + /// The keys and values must implement [`Copy`] trait. + /// + /// [`Copy`]: https://doc.rust-lang.org/core/marker/trait.Copy.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::HashMap; + /// + /// let mut map = HashMap::new(); + /// map.insert(1, 100); + /// + /// let arr = [(1, 1), (2, 2)]; + /// let some_iter = arr.iter(); + /// map.extend(some_iter); + /// // Replace values with existing keys with new values returned from the iterator. + /// // So that the map.get(&1) doesn't return Some(&100). + /// assert_eq!(map.get(&1), Some(&1)); + /// + /// let some_vec: Vec<_> = vec![(3, 3), (4, 4)]; + /// map.extend(&some_vec); + /// + /// let some_arr = [(5, 5), (6, 6)]; + /// map.extend(&some_arr); + /// + /// let mut vec: Vec<_> = map.into_iter().collect(); + /// // The `IntoIter` iterator produces items in arbitrary order, so the + /// // items must be sorted to test them against a sorted array. + /// vec.sort_unstable(); + /// assert_eq!(vec, [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + fn extend>(&mut self, iter: T) { + self.extend(iter.into_iter().map(|&(key, value)| (key, value))); + } + + #[inline] + #[cfg(feature = "nightly")] + fn extend_one(&mut self, &(k, v): &'a (K, V)) { + self.insert(k, v); + } + + #[inline] + #[cfg(feature = "nightly")] + fn extend_reserve(&mut self, additional: usize) { + Extend::<(K, V)>::extend_reserve(self, additional); + } +} + +#[allow(dead_code)] +fn assert_covariance() { + fn map_key<'new>(v: HashMap<&'static str, u8>) -> HashMap<&'new str, u8> { + v + } + fn map_val<'new>(v: HashMap) -> HashMap { + v + } + fn iter_key<'a, 'new>(v: Iter<'a, &'static str, u8>) -> Iter<'a, &'new str, u8> { + v + } + fn iter_val<'a, 'new>(v: Iter<'a, u8, &'static str>) -> Iter<'a, u8, &'new str> { + v + } + fn into_iter_key<'new, A: Allocator>( + v: IntoIter<&'static str, u8, A>, + ) -> IntoIter<&'new str, u8, A> { + v + } + fn into_iter_val<'new, A: Allocator>( + v: IntoIter, + ) -> IntoIter { + v + } + fn keys_key<'a, 'new>(v: Keys<'a, &'static str, u8>) -> Keys<'a, &'new str, u8> { + v + } + fn keys_val<'a, 'new>(v: Keys<'a, u8, &'static str>) -> Keys<'a, u8, &'new str> { + v + } + fn values_key<'a, 'new>(v: Values<'a, &'static str, u8>) -> Values<'a, &'new str, u8> { + v + } + fn values_val<'a, 'new>(v: Values<'a, u8, &'static str>) -> Values<'a, u8, &'new str> { + v + } + fn drain<'new>( + d: Drain<'static, &'static str, &'static str>, + ) -> Drain<'new, &'new str, &'new str> { + d + } +} + +#[cfg(test)] +mod test_map { + use super::DefaultHashBuilder; + use super::Entry::{Occupied, Vacant}; + use super::EntryRef; + use super::{HashMap, RawEntryMut}; + use alloc::string::{String, ToString}; + use alloc::sync::Arc; + use allocator_api2::alloc::{AllocError, Allocator, Global}; + use core::alloc::Layout; + use core::ptr::NonNull; + use core::sync::atomic::{AtomicI8, Ordering}; + use rand::{rngs::SmallRng, Rng, SeedableRng}; + use std::borrow::ToOwned; + use std::cell::RefCell; + use std::usize; + use std::vec::Vec; + + #[test] + fn test_zero_capacities() { + type HM = HashMap; + + let m = HM::new(); + assert_eq!(m.capacity(), 0); + + let m = HM::default(); + assert_eq!(m.capacity(), 0); + + let m = HM::with_hasher(DefaultHashBuilder::default()); + assert_eq!(m.capacity(), 0); + + let m = HM::with_capacity(0); + assert_eq!(m.capacity(), 0); + + let m = HM::with_capacity_and_hasher(0, DefaultHashBuilder::default()); + assert_eq!(m.capacity(), 0); + + let mut m = HM::new(); + m.insert(1, 1); + m.insert(2, 2); + m.remove(&1); + m.remove(&2); + m.shrink_to_fit(); + assert_eq!(m.capacity(), 0); + + let mut m = HM::new(); + m.reserve(0); + assert_eq!(m.capacity(), 0); + } + + #[test] + fn test_create_capacity_zero() { + let mut m = HashMap::with_capacity(0); + + assert!(m.insert(1, 1).is_none()); + + assert!(m.contains_key(&1)); + assert!(!m.contains_key(&0)); + } + + #[test] + fn test_insert() { + let mut m = HashMap::new(); + assert_eq!(m.len(), 0); + assert!(m.insert(1, 2).is_none()); + assert_eq!(m.len(), 1); + assert!(m.insert(2, 4).is_none()); + assert_eq!(m.len(), 2); + assert_eq!(*m.get(&1).unwrap(), 2); + assert_eq!(*m.get(&2).unwrap(), 4); + } + + #[test] + fn test_clone() { + let mut m = HashMap::new(); + assert_eq!(m.len(), 0); + assert!(m.insert(1, 2).is_none()); + assert_eq!(m.len(), 1); + assert!(m.insert(2, 4).is_none()); + assert_eq!(m.len(), 2); + #[allow(clippy::redundant_clone)] + let m2 = m.clone(); + assert_eq!(*m2.get(&1).unwrap(), 2); + assert_eq!(*m2.get(&2).unwrap(), 4); + assert_eq!(m2.len(), 2); + } + + #[test] + fn test_clone_from() { + let mut m = HashMap::new(); + let mut m2 = HashMap::new(); + assert_eq!(m.len(), 0); + assert!(m.insert(1, 2).is_none()); + assert_eq!(m.len(), 1); + assert!(m.insert(2, 4).is_none()); + assert_eq!(m.len(), 2); + m2.clone_from(&m); + assert_eq!(*m2.get(&1).unwrap(), 2); + assert_eq!(*m2.get(&2).unwrap(), 4); + assert_eq!(m2.len(), 2); + } + + thread_local! { static DROP_VECTOR: RefCell> = const { RefCell::new(Vec::new()) } } + + #[derive(Hash, PartialEq, Eq)] + struct Droppable { + k: usize, + } + + impl Droppable { + fn new(k: usize) -> Droppable { + DROP_VECTOR.with(|slot| { + slot.borrow_mut()[k] += 1; + }); + + Droppable { k } + } + } + + impl Drop for Droppable { + fn drop(&mut self) { + DROP_VECTOR.with(|slot| { + slot.borrow_mut()[self.k] -= 1; + }); + } + } + + impl Clone for Droppable { + fn clone(&self) -> Self { + Droppable::new(self.k) + } + } + + #[test] + fn test_drops() { + DROP_VECTOR.with(|slot| { + *slot.borrow_mut() = vec![0; 200]; + }); + + { + let mut m = HashMap::new(); + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 0); + } + }); + + for i in 0..100 { + let d1 = Droppable::new(i); + let d2 = Droppable::new(i + 100); + m.insert(d1, d2); + } + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 1); + } + }); + + for i in 0..50 { + let k = Droppable::new(i); + let v = m.remove(&k); + + assert!(v.is_some()); + + DROP_VECTOR.with(|v| { + assert_eq!(v.borrow()[i], 1); + assert_eq!(v.borrow()[i + 100], 1); + }); + } + + DROP_VECTOR.with(|v| { + for i in 0..50 { + assert_eq!(v.borrow()[i], 0); + assert_eq!(v.borrow()[i + 100], 0); + } + + for i in 50..100 { + assert_eq!(v.borrow()[i], 1); + assert_eq!(v.borrow()[i + 100], 1); + } + }); + } + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 0); + } + }); + } + + #[test] + fn test_into_iter_drops() { + DROP_VECTOR.with(|v| { + *v.borrow_mut() = vec![0; 200]; + }); + + let hm = { + let mut hm = HashMap::new(); + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 0); + } + }); + + for i in 0..100 { + let d1 = Droppable::new(i); + let d2 = Droppable::new(i + 100); + hm.insert(d1, d2); + } + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 1); + } + }); + + hm + }; + + // By the way, ensure that cloning doesn't screw up the dropping. + drop(hm.clone()); + + { + let mut half = hm.into_iter().take(50); + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 1); + } + }); + + for _ in half.by_ref() {} + + DROP_VECTOR.with(|v| { + let nk = (0..100).filter(|&i| v.borrow()[i] == 1).count(); + + let nv = (0..100).filter(|&i| v.borrow()[i + 100] == 1).count(); + + assert_eq!(nk, 50); + assert_eq!(nv, 50); + }); + }; + + DROP_VECTOR.with(|v| { + for i in 0..200 { + assert_eq!(v.borrow()[i], 0); + } + }); + } + + #[test] + fn test_empty_remove() { + let mut m: HashMap = HashMap::new(); + assert_eq!(m.remove(&0), None); + } + + #[test] + fn test_empty_entry() { + let mut m: HashMap = HashMap::new(); + match m.entry(0) { + Occupied(_) => panic!(), + Vacant(_) => {} + } + assert!(*m.entry(0).or_insert(true)); + assert_eq!(m.len(), 1); + } + + #[test] + fn test_empty_entry_ref() { + let mut m: HashMap = HashMap::new(); + match m.entry_ref("poneyland") { + EntryRef::Occupied(_) => panic!(), + EntryRef::Vacant(_) => {} + } + assert!(*m.entry_ref("poneyland").or_insert(true)); + assert_eq!(m.len(), 1); + } + + #[test] + fn test_empty_iter() { + let mut m: HashMap = HashMap::new(); + assert_eq!(m.drain().next(), None); + assert_eq!(m.keys().next(), None); + assert_eq!(m.values().next(), None); + assert_eq!(m.values_mut().next(), None); + assert_eq!(m.iter().next(), None); + assert_eq!(m.iter_mut().next(), None); + assert_eq!(m.len(), 0); + assert!(m.is_empty()); + assert_eq!(m.into_iter().next(), None); + } + + #[test] + #[cfg_attr(miri, ignore)] // FIXME: takes too long + fn test_lots_of_insertions() { + let mut m = HashMap::new(); + + // Try this a few times to make sure we never screw up the hashmap's + // internal state. + for _ in 0..10 { + assert!(m.is_empty()); + + for i in 1..1001 { + assert!(m.insert(i, i).is_none()); + + for j in 1..=i { + let r = m.get(&j); + assert_eq!(r, Some(&j)); + } + + for j in i + 1..1001 { + let r = m.get(&j); + assert_eq!(r, None); + } + } + + for i in 1001..2001 { + assert!(!m.contains_key(&i)); + } + + // remove forwards + for i in 1..1001 { + assert!(m.remove(&i).is_some()); + + for j in 1..=i { + assert!(!m.contains_key(&j)); + } + + for j in i + 1..1001 { + assert!(m.contains_key(&j)); + } + } + + for i in 1..1001 { + assert!(!m.contains_key(&i)); + } + + for i in 1..1001 { + assert!(m.insert(i, i).is_none()); + } + + // remove backwards + for i in (1..1001).rev() { + assert!(m.remove(&i).is_some()); + + for j in i..1001 { + assert!(!m.contains_key(&j)); + } + + for j in 1..i { + assert!(m.contains_key(&j)); + } + } + } + } + + #[test] + fn test_find_mut() { + let mut m = HashMap::new(); + assert!(m.insert(1, 12).is_none()); + assert!(m.insert(2, 8).is_none()); + assert!(m.insert(5, 14).is_none()); + let new = 100; + match m.get_mut(&5) { + None => panic!(), + Some(x) => *x = new, + } + assert_eq!(m.get(&5), Some(&new)); + } + + #[test] + fn test_insert_overwrite() { + let mut m = HashMap::new(); + assert!(m.insert(1, 2).is_none()); + assert_eq!(*m.get(&1).unwrap(), 2); + assert!(m.insert(1, 3).is_some()); + assert_eq!(*m.get(&1).unwrap(), 3); + } + + #[test] + fn test_insert_conflicts() { + let mut m = HashMap::with_capacity(4); + assert!(m.insert(1, 2).is_none()); + assert!(m.insert(5, 3).is_none()); + assert!(m.insert(9, 4).is_none()); + assert_eq!(*m.get(&9).unwrap(), 4); + assert_eq!(*m.get(&5).unwrap(), 3); + assert_eq!(*m.get(&1).unwrap(), 2); + } + + #[test] + fn test_conflict_remove() { + let mut m = HashMap::with_capacity(4); + assert!(m.insert(1, 2).is_none()); + assert_eq!(*m.get(&1).unwrap(), 2); + assert!(m.insert(5, 3).is_none()); + assert_eq!(*m.get(&1).unwrap(), 2); + assert_eq!(*m.get(&5).unwrap(), 3); + assert!(m.insert(9, 4).is_none()); + assert_eq!(*m.get(&1).unwrap(), 2); + assert_eq!(*m.get(&5).unwrap(), 3); + assert_eq!(*m.get(&9).unwrap(), 4); + assert!(m.remove(&1).is_some()); + assert_eq!(*m.get(&9).unwrap(), 4); + assert_eq!(*m.get(&5).unwrap(), 3); + } + + #[test] + fn test_insert_unique_unchecked() { + let mut map = HashMap::new(); + let (k1, v1) = map.insert_unique_unchecked(10, 11); + assert_eq!((&10, &mut 11), (k1, v1)); + let (k2, v2) = map.insert_unique_unchecked(20, 21); + assert_eq!((&20, &mut 21), (k2, v2)); + assert_eq!(Some(&11), map.get(&10)); + assert_eq!(Some(&21), map.get(&20)); + assert_eq!(None, map.get(&30)); + } + + #[test] + fn test_is_empty() { + let mut m = HashMap::with_capacity(4); + assert!(m.insert(1, 2).is_none()); + assert!(!m.is_empty()); + assert!(m.remove(&1).is_some()); + assert!(m.is_empty()); + } + + #[test] + fn test_remove() { + let mut m = HashMap::new(); + m.insert(1, 2); + assert_eq!(m.remove(&1), Some(2)); + assert_eq!(m.remove(&1), None); + } + + #[test] + fn test_remove_entry() { + let mut m = HashMap::new(); + m.insert(1, 2); + assert_eq!(m.remove_entry(&1), Some((1, 2))); + assert_eq!(m.remove(&1), None); + } + + #[test] + fn test_iterate() { + let mut m = HashMap::with_capacity(4); + for i in 0..32 { + assert!(m.insert(i, i * 2).is_none()); + } + assert_eq!(m.len(), 32); + + let mut observed: u32 = 0; + + for (k, v) in &m { + assert_eq!(*v, *k * 2); + observed |= 1 << *k; + } + assert_eq!(observed, 0xFFFF_FFFF); + } + + #[test] + fn test_keys() { + let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')]; + let map: HashMap<_, _> = vec.into_iter().collect(); + let keys: Vec<_> = map.keys().copied().collect(); + assert_eq!(keys.len(), 3); + assert!(keys.contains(&1)); + assert!(keys.contains(&2)); + assert!(keys.contains(&3)); + } + + #[test] + fn test_values() { + let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')]; + let map: HashMap<_, _> = vec.into_iter().collect(); + let values: Vec<_> = map.values().copied().collect(); + assert_eq!(values.len(), 3); + assert!(values.contains(&'a')); + assert!(values.contains(&'b')); + assert!(values.contains(&'c')); + } + + #[test] + fn test_values_mut() { + let vec = vec![(1, 1), (2, 2), (3, 3)]; + let mut map: HashMap<_, _> = vec.into_iter().collect(); + for value in map.values_mut() { + *value *= 2; + } + let values: Vec<_> = map.values().copied().collect(); + assert_eq!(values.len(), 3); + assert!(values.contains(&2)); + assert!(values.contains(&4)); + assert!(values.contains(&6)); + } + + #[test] + fn test_into_keys() { + let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')]; + let map: HashMap<_, _> = vec.into_iter().collect(); + let keys: Vec<_> = map.into_keys().collect(); + + assert_eq!(keys.len(), 3); + assert!(keys.contains(&1)); + assert!(keys.contains(&2)); + assert!(keys.contains(&3)); + } + + #[test] + fn test_into_values() { + let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')]; + let map: HashMap<_, _> = vec.into_iter().collect(); + let values: Vec<_> = map.into_values().collect(); + + assert_eq!(values.len(), 3); + assert!(values.contains(&'a')); + assert!(values.contains(&'b')); + assert!(values.contains(&'c')); + } + + #[test] + fn test_find() { + let mut m = HashMap::new(); + assert!(m.get(&1).is_none()); + m.insert(1, 2); + match m.get(&1) { + None => panic!(), + Some(v) => assert_eq!(*v, 2), + } + } + + #[test] + fn test_eq() { + let mut m1 = HashMap::new(); + m1.insert(1, 2); + m1.insert(2, 3); + m1.insert(3, 4); + + let mut m2 = HashMap::new(); + m2.insert(1, 2); + m2.insert(2, 3); + + assert!(m1 != m2); + + m2.insert(3, 4); + + assert_eq!(m1, m2); + } + + #[test] + fn test_show() { + let mut map = HashMap::new(); + let empty: HashMap = HashMap::new(); + + map.insert(1, 2); + map.insert(3, 4); + + let map_str = format!("{map:?}"); + + assert!(map_str == "{1: 2, 3: 4}" || map_str == "{3: 4, 1: 2}"); + assert_eq!(format!("{empty:?}"), "{}"); + } + + #[test] + fn test_expand() { + let mut m = HashMap::new(); + + assert_eq!(m.len(), 0); + assert!(m.is_empty()); + + let mut i = 0; + let old_raw_cap = m.raw_capacity(); + while old_raw_cap == m.raw_capacity() { + m.insert(i, i); + i += 1; + } + + assert_eq!(m.len(), i); + assert!(!m.is_empty()); + } + + #[test] + fn test_behavior_resize_policy() { + let mut m = HashMap::new(); + + assert_eq!(m.len(), 0); + assert_eq!(m.raw_capacity(), 1); + assert!(m.is_empty()); + + m.insert(0, 0); + m.remove(&0); + assert!(m.is_empty()); + let initial_raw_cap = m.raw_capacity(); + m.reserve(initial_raw_cap); + let raw_cap = m.raw_capacity(); + + assert_eq!(raw_cap, initial_raw_cap * 2); + + let mut i = 0; + for _ in 0..raw_cap * 3 / 4 { + m.insert(i, i); + i += 1; + } + // three quarters full + + assert_eq!(m.len(), i); + assert_eq!(m.raw_capacity(), raw_cap); + + for _ in 0..raw_cap / 4 { + m.insert(i, i); + i += 1; + } + // half full + + let new_raw_cap = m.raw_capacity(); + assert_eq!(new_raw_cap, raw_cap * 2); + + for _ in 0..raw_cap / 2 - 1 { + i -= 1; + m.remove(&i); + assert_eq!(m.raw_capacity(), new_raw_cap); + } + // A little more than one quarter full. + m.shrink_to_fit(); + assert_eq!(m.raw_capacity(), raw_cap); + // again, a little more than half full + for _ in 0..raw_cap / 2 { + i -= 1; + m.remove(&i); + } + m.shrink_to_fit(); + + assert_eq!(m.len(), i); + assert!(!m.is_empty()); + assert_eq!(m.raw_capacity(), initial_raw_cap); + } + + #[test] + fn test_reserve_shrink_to_fit() { + let mut m = HashMap::new(); + m.insert(0, 0); + m.remove(&0); + assert!(m.capacity() >= m.len()); + for i in 0..128 { + m.insert(i, i); + } + m.reserve(256); + + let usable_cap = m.capacity(); + for i in 128..(128 + 256) { + m.insert(i, i); + assert_eq!(m.capacity(), usable_cap); + } + + for i in 100..(128 + 256) { + assert_eq!(m.remove(&i), Some(i)); + } + m.shrink_to_fit(); + + assert_eq!(m.len(), 100); + assert!(!m.is_empty()); + assert!(m.capacity() >= m.len()); + + for i in 0..100 { + assert_eq!(m.remove(&i), Some(i)); + } + m.shrink_to_fit(); + m.insert(0, 0); + + assert_eq!(m.len(), 1); + assert!(m.capacity() >= m.len()); + assert_eq!(m.remove(&0), Some(0)); + } + + #[test] + fn test_from_iter() { + let xs = [(1, 1), (2, 2), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]; + + let map: HashMap<_, _> = xs.iter().copied().collect(); + + for &(k, v) in &xs { + assert_eq!(map.get(&k), Some(&v)); + } + + assert_eq!(map.iter().len(), xs.len() - 1); + } + + #[test] + fn test_size_hint() { + let xs = [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]; + + let map: HashMap<_, _> = xs.iter().copied().collect(); + + let mut iter = map.iter(); + + for _ in iter.by_ref().take(3) {} + + assert_eq!(iter.size_hint(), (3, Some(3))); + } + + #[test] + fn test_iter_len() { + let xs = [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]; + + let map: HashMap<_, _> = xs.iter().copied().collect(); + + let mut iter = map.iter(); + + for _ in iter.by_ref().take(3) {} + + assert_eq!(iter.len(), 3); + } + + #[test] + fn test_mut_size_hint() { + let xs = [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]; + + let mut map: HashMap<_, _> = xs.iter().copied().collect(); + + let mut iter = map.iter_mut(); + + for _ in iter.by_ref().take(3) {} + + assert_eq!(iter.size_hint(), (3, Some(3))); + } + + #[test] + fn test_iter_mut_len() { + let xs = [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)]; + + let mut map: HashMap<_, _> = xs.iter().copied().collect(); + + let mut iter = map.iter_mut(); + + for _ in iter.by_ref().take(3) {} + + assert_eq!(iter.len(), 3); + } + + #[test] + fn test_index() { + let mut map = HashMap::new(); + + map.insert(1, 2); + map.insert(2, 1); + map.insert(3, 4); + + assert_eq!(map[&2], 1); + } + + #[test] + #[should_panic] + fn test_index_nonexistent() { + let mut map = HashMap::new(); + + map.insert(1, 2); + map.insert(2, 1); + map.insert(3, 4); + + #[allow(clippy::no_effect)] // false positive lint + map[&4]; + } + + #[test] + fn test_entry() { + let xs = [(1, 10), (2, 20), (3, 30), (4, 40), (5, 50), (6, 60)]; + + let mut map: HashMap<_, _> = xs.iter().copied().collect(); + + // Existing key (insert) + match map.entry(1) { + Vacant(_) => unreachable!(), + Occupied(mut view) => { + assert_eq!(view.get(), &10); + assert_eq!(view.insert(100), 10); + } + } + assert_eq!(map.get(&1).unwrap(), &100); + assert_eq!(map.len(), 6); + + // Existing key (update) + match map.entry(2) { + Vacant(_) => unreachable!(), + Occupied(mut view) => { + let v = view.get_mut(); + let new_v = (*v) * 10; + *v = new_v; + } + } + assert_eq!(map.get(&2).unwrap(), &200); + assert_eq!(map.len(), 6); + + // Existing key (take) + match map.entry(3) { + Vacant(_) => unreachable!(), + Occupied(view) => { + assert_eq!(view.remove(), 30); + } + } + assert_eq!(map.get(&3), None); + assert_eq!(map.len(), 5); + + // Inexistent key (insert) + match map.entry(10) { + Occupied(_) => unreachable!(), + Vacant(view) => { + assert_eq!(*view.insert(1000), 1000); + } + } + assert_eq!(map.get(&10).unwrap(), &1000); + assert_eq!(map.len(), 6); + } + + #[test] + fn test_entry_ref() { + let xs = [ + ("One".to_owned(), 10), + ("Two".to_owned(), 20), + ("Three".to_owned(), 30), + ("Four".to_owned(), 40), + ("Five".to_owned(), 50), + ("Six".to_owned(), 60), + ]; + + let mut map: HashMap<_, _> = xs.iter().cloned().collect(); + + // Existing key (insert) + match map.entry_ref("One") { + EntryRef::Vacant(_) => unreachable!(), + EntryRef::Occupied(mut view) => { + assert_eq!(view.get(), &10); + assert_eq!(view.insert(100), 10); + } + } + assert_eq!(map.get("One").unwrap(), &100); + assert_eq!(map.len(), 6); + + // Existing key (update) + match map.entry_ref("Two") { + EntryRef::Vacant(_) => unreachable!(), + EntryRef::Occupied(mut view) => { + let v = view.get_mut(); + let new_v = (*v) * 10; + *v = new_v; + } + } + assert_eq!(map.get("Two").unwrap(), &200); + assert_eq!(map.len(), 6); + + // Existing key (take) + match map.entry_ref("Three") { + EntryRef::Vacant(_) => unreachable!(), + EntryRef::Occupied(view) => { + assert_eq!(view.remove(), 30); + } + } + assert_eq!(map.get("Three"), None); + assert_eq!(map.len(), 5); + + // Inexistent key (insert) + match map.entry_ref("Ten") { + EntryRef::Occupied(_) => unreachable!(), + EntryRef::Vacant(view) => { + assert_eq!(*view.insert(1000), 1000); + } + } + assert_eq!(map.get("Ten").unwrap(), &1000); + assert_eq!(map.len(), 6); + } + + #[test] + fn test_entry_take_doesnt_corrupt() { + #![allow(deprecated)] //rand + // Test for #19292 + fn check(m: &HashMap) { + for k in m.keys() { + assert!(m.contains_key(k), "{k} is in keys() but not in the map?"); + } + } + + let mut m = HashMap::new(); + + let mut rng = { + let seed = u64::from_le_bytes(*b"testseed"); + SmallRng::seed_from_u64(seed) + }; + + // Populate the map with some items. + for _ in 0..50 { + let x = rng.gen_range(-10..10); + m.insert(x, ()); + } + + for _ in 0..1000 { + let x = rng.gen_range(-10..10); + match m.entry(x) { + Vacant(_) => {} + Occupied(e) => { + e.remove(); + } + } + + check(&m); + } + } + + #[test] + fn test_entry_ref_take_doesnt_corrupt() { + #![allow(deprecated)] //rand + // Test for #19292 + fn check(m: &HashMap) { + for k in m.keys() { + assert!(m.contains_key(k), "{k} is in keys() but not in the map?"); + } + } + + let mut m = HashMap::new(); + + let mut rng = { + let seed = u64::from_le_bytes(*b"testseed"); + SmallRng::seed_from_u64(seed) + }; + + // Populate the map with some items. + for _ in 0..50 { + let mut x = std::string::String::with_capacity(1); + x.push(rng.gen_range('a'..='z')); + m.insert(x, ()); + } + + for _ in 0..1000 { + let mut x = std::string::String::with_capacity(1); + x.push(rng.gen_range('a'..='z')); + match m.entry_ref(x.as_str()) { + EntryRef::Vacant(_) => {} + EntryRef::Occupied(e) => { + e.remove(); + } + } + + check(&m); + } + } + + #[test] + fn test_extend_ref_k_ref_v() { + let mut a = HashMap::new(); + a.insert(1, "one"); + let mut b = HashMap::new(); + b.insert(2, "two"); + b.insert(3, "three"); + + a.extend(&b); + + assert_eq!(a.len(), 3); + assert_eq!(a[&1], "one"); + assert_eq!(a[&2], "two"); + assert_eq!(a[&3], "three"); + } + + #[test] + #[allow(clippy::needless_borrow)] + fn test_extend_ref_kv_tuple() { + use std::ops::AddAssign; + let mut a = HashMap::new(); + a.insert(0, 0); + + fn create_arr + Copy, const N: usize>(start: T, step: T) -> [(T, T); N] { + let mut outs: [(T, T); N] = [(start, start); N]; + let mut element = step; + outs.iter_mut().skip(1).for_each(|(k, v)| { + *k += element; + *v += element; + element += step; + }); + outs + } + + let for_iter: Vec<_> = (0..100).map(|i| (i, i)).collect(); + let iter = for_iter.iter(); + let vec: Vec<_> = (100..200).map(|i| (i, i)).collect(); + a.extend(iter); + a.extend(&vec); + a.extend(create_arr::(200, 1)); + + assert_eq!(a.len(), 300); + + for item in 0..300 { + assert_eq!(a[&item], item); + } + } + + #[test] + fn test_capacity_not_less_than_len() { + let mut a = HashMap::new(); + let mut item = 0; + + for _ in 0..116 { + a.insert(item, 0); + item += 1; + } + + assert!(a.capacity() > a.len()); + + let free = a.capacity() - a.len(); + for _ in 0..free { + a.insert(item, 0); + item += 1; + } + + assert_eq!(a.len(), a.capacity()); + + // Insert at capacity should cause allocation. + a.insert(item, 0); + assert!(a.capacity() > a.len()); + } + + #[test] + fn test_occupied_entry_key() { + let mut a = HashMap::new(); + let key = "hello there"; + let value = "value goes here"; + assert!(a.is_empty()); + a.insert(key, value); + assert_eq!(a.len(), 1); + assert_eq!(a[key], value); + + match a.entry(key) { + Vacant(_) => panic!(), + Occupied(e) => assert_eq!(key, *e.key()), + } + assert_eq!(a.len(), 1); + assert_eq!(a[key], value); + } + + #[test] + fn test_occupied_entry_ref_key() { + let mut a = HashMap::new(); + let key = "hello there"; + let value = "value goes here"; + assert!(a.is_empty()); + a.insert(key.to_owned(), value); + assert_eq!(a.len(), 1); + assert_eq!(a[key], value); + + match a.entry_ref(key) { + EntryRef::Vacant(_) => panic!(), + EntryRef::Occupied(e) => assert_eq!(key, e.key()), + } + assert_eq!(a.len(), 1); + assert_eq!(a[key], value); + } + + #[test] + fn test_vacant_entry_key() { + let mut a = HashMap::new(); + let key = "hello there"; + let value = "value goes here"; + + assert!(a.is_empty()); + match a.entry(key) { + Occupied(_) => panic!(), + Vacant(e) => { + assert_eq!(key, *e.key()); + e.insert(value); + } + } + assert_eq!(a.len(), 1); + assert_eq!(a[key], value); + } + + #[test] + fn test_vacant_entry_ref_key() { + let mut a: HashMap = HashMap::new(); + let key = "hello there"; + let value = "value goes here"; + + assert!(a.is_empty()); + match a.entry_ref(key) { + EntryRef::Occupied(_) => panic!(), + EntryRef::Vacant(e) => { + assert_eq!(key, e.key()); + e.insert(value); + } + } + assert_eq!(a.len(), 1); + assert_eq!(a[key], value); + } + + #[test] + fn test_occupied_entry_replace_entry_with() { + let mut a = HashMap::new(); + + let key = "a key"; + let value = "an initial value"; + let new_value = "a new value"; + + let entry = a.entry(key).insert(value).replace_entry_with(|k, v| { + assert_eq!(k, &key); + assert_eq!(v, value); + Some(new_value) + }); + + match entry { + Occupied(e) => { + assert_eq!(e.key(), &key); + assert_eq!(e.get(), &new_value); + } + Vacant(_) => panic!(), + } + + assert_eq!(a[key], new_value); + assert_eq!(a.len(), 1); + + let entry = match a.entry(key) { + Occupied(e) => e.replace_entry_with(|k, v| { + assert_eq!(k, &key); + assert_eq!(v, new_value); + None + }), + Vacant(_) => panic!(), + }; + + match entry { + Vacant(e) => assert_eq!(e.key(), &key), + Occupied(_) => panic!(), + } + + assert!(!a.contains_key(key)); + assert_eq!(a.len(), 0); + } + + #[test] + fn test_occupied_entry_ref_replace_entry_with() { + let mut a: HashMap = HashMap::new(); + + let key = "a key"; + let value = "an initial value"; + let new_value = "a new value"; + + let entry = a.entry_ref(key).insert(value).replace_entry_with(|k, v| { + assert_eq!(k, key); + assert_eq!(v, value); + Some(new_value) + }); + + match entry { + EntryRef::Occupied(e) => { + assert_eq!(e.key(), key); + assert_eq!(e.get(), &new_value); + } + EntryRef::Vacant(_) => panic!(), + } + + assert_eq!(a[key], new_value); + assert_eq!(a.len(), 1); + + let entry = match a.entry_ref(key) { + EntryRef::Occupied(e) => e.replace_entry_with(|k, v| { + assert_eq!(k, key); + assert_eq!(v, new_value); + None + }), + EntryRef::Vacant(_) => panic!(), + }; + + match entry { + EntryRef::Vacant(e) => assert_eq!(e.key(), key), + EntryRef::Occupied(_) => panic!(), + } + + assert!(!a.contains_key(key)); + assert_eq!(a.len(), 0); + } + + #[test] + fn test_entry_and_replace_entry_with() { + let mut a = HashMap::new(); + + let key = "a key"; + let value = "an initial value"; + let new_value = "a new value"; + + let entry = a.entry(key).and_replace_entry_with(|_, _| panic!()); + + match entry { + Vacant(e) => assert_eq!(e.key(), &key), + Occupied(_) => panic!(), + } + + a.insert(key, value); + + let entry = a.entry(key).and_replace_entry_with(|k, v| { + assert_eq!(k, &key); + assert_eq!(v, value); + Some(new_value) + }); + + match entry { + Occupied(e) => { + assert_eq!(e.key(), &key); + assert_eq!(e.get(), &new_value); + } + Vacant(_) => panic!(), + } + + assert_eq!(a[key], new_value); + assert_eq!(a.len(), 1); + + let entry = a.entry(key).and_replace_entry_with(|k, v| { + assert_eq!(k, &key); + assert_eq!(v, new_value); + None + }); + + match entry { + Vacant(e) => assert_eq!(e.key(), &key), + Occupied(_) => panic!(), + } + + assert!(!a.contains_key(key)); + assert_eq!(a.len(), 0); + } + + #[test] + fn test_entry_ref_and_replace_entry_with() { + let mut a = HashMap::new(); + + let key = "a key"; + let value = "an initial value"; + let new_value = "a new value"; + + let entry = a.entry_ref(key).and_replace_entry_with(|_, _| panic!()); + + match entry { + EntryRef::Vacant(e) => assert_eq!(e.key(), key), + EntryRef::Occupied(_) => panic!(), + } + + a.insert(key.to_owned(), value); + + let entry = a.entry_ref(key).and_replace_entry_with(|k, v| { + assert_eq!(k, key); + assert_eq!(v, value); + Some(new_value) + }); + + match entry { + EntryRef::Occupied(e) => { + assert_eq!(e.key(), key); + assert_eq!(e.get(), &new_value); + } + EntryRef::Vacant(_) => panic!(), + } + + assert_eq!(a[key], new_value); + assert_eq!(a.len(), 1); + + let entry = a.entry_ref(key).and_replace_entry_with(|k, v| { + assert_eq!(k, key); + assert_eq!(v, new_value); + None + }); + + match entry { + EntryRef::Vacant(e) => assert_eq!(e.key(), key), + EntryRef::Occupied(_) => panic!(), + } + + assert!(!a.contains_key(key)); + assert_eq!(a.len(), 0); + } + + #[test] + fn test_raw_occupied_entry_replace_entry_with() { + let mut a = HashMap::new(); + + let key = "a key"; + let value = "an initial value"; + let new_value = "a new value"; + + let entry = a + .raw_entry_mut() + .from_key(&key) + .insert(key, value) + .replace_entry_with(|k, v| { + assert_eq!(k, &key); + assert_eq!(v, value); + Some(new_value) + }); + + match entry { + RawEntryMut::Occupied(e) => { + assert_eq!(e.key(), &key); + assert_eq!(e.get(), &new_value); + } + RawEntryMut::Vacant(_) => panic!(), + } + + assert_eq!(a[key], new_value); + assert_eq!(a.len(), 1); + + let entry = match a.raw_entry_mut().from_key(&key) { + RawEntryMut::Occupied(e) => e.replace_entry_with(|k, v| { + assert_eq!(k, &key); + assert_eq!(v, new_value); + None + }), + RawEntryMut::Vacant(_) => panic!(), + }; + + match entry { + RawEntryMut::Vacant(_) => {} + RawEntryMut::Occupied(_) => panic!(), + } + + assert!(!a.contains_key(key)); + assert_eq!(a.len(), 0); + } + + #[test] + fn test_raw_entry_and_replace_entry_with() { + let mut a = HashMap::new(); + + let key = "a key"; + let value = "an initial value"; + let new_value = "a new value"; + + let entry = a + .raw_entry_mut() + .from_key(&key) + .and_replace_entry_with(|_, _| panic!()); + + match entry { + RawEntryMut::Vacant(_) => {} + RawEntryMut::Occupied(_) => panic!(), + } + + a.insert(key, value); + + let entry = a + .raw_entry_mut() + .from_key(&key) + .and_replace_entry_with(|k, v| { + assert_eq!(k, &key); + assert_eq!(v, value); + Some(new_value) + }); + + match entry { + RawEntryMut::Occupied(e) => { + assert_eq!(e.key(), &key); + assert_eq!(e.get(), &new_value); + } + RawEntryMut::Vacant(_) => panic!(), + } + + assert_eq!(a[key], new_value); + assert_eq!(a.len(), 1); + + let entry = a + .raw_entry_mut() + .from_key(&key) + .and_replace_entry_with(|k, v| { + assert_eq!(k, &key); + assert_eq!(v, new_value); + None + }); + + match entry { + RawEntryMut::Vacant(_) => {} + RawEntryMut::Occupied(_) => panic!(), + } + + assert!(!a.contains_key(key)); + assert_eq!(a.len(), 0); + } + + #[test] + fn test_replace_entry_with_doesnt_corrupt() { + #![allow(deprecated)] //rand + // Test for #19292 + fn check(m: &HashMap) { + for k in m.keys() { + assert!(m.contains_key(k), "{k} is in keys() but not in the map?"); + } + } + + let mut m = HashMap::new(); + + let mut rng = { + let seed = u64::from_le_bytes(*b"testseed"); + SmallRng::seed_from_u64(seed) + }; + + // Populate the map with some items. + for _ in 0..50 { + let x = rng.gen_range(-10..10); + m.insert(x, ()); + } + + for _ in 0..1000 { + let x = rng.gen_range(-10..10); + m.entry(x).and_replace_entry_with(|_, _| None); + check(&m); + } + } + + #[test] + fn test_replace_entry_ref_with_doesnt_corrupt() { + #![allow(deprecated)] //rand + // Test for #19292 + fn check(m: &HashMap) { + for k in m.keys() { + assert!(m.contains_key(k), "{k} is in keys() but not in the map?"); + } + } + + let mut m = HashMap::new(); + + let mut rng = { + let seed = u64::from_le_bytes(*b"testseed"); + SmallRng::seed_from_u64(seed) + }; + + // Populate the map with some items. + for _ in 0..50 { + let mut x = std::string::String::with_capacity(1); + x.push(rng.gen_range('a'..='z')); + m.insert(x, ()); + } + + for _ in 0..1000 { + let mut x = std::string::String::with_capacity(1); + x.push(rng.gen_range('a'..='z')); + m.entry_ref(x.as_str()).and_replace_entry_with(|_, _| None); + check(&m); + } + } + + #[test] + fn test_retain() { + let mut map: HashMap = (0..100).map(|x| (x, x * 10)).collect(); + + map.retain(|&k, _| k % 2 == 0); + assert_eq!(map.len(), 50); + assert_eq!(map[&2], 20); + assert_eq!(map[&4], 40); + assert_eq!(map[&6], 60); + } + + #[test] + fn test_extract_if() { + { + let mut map: HashMap = (0..8).map(|x| (x, x * 10)).collect(); + let drained = map.extract_if(|&k, _| k % 2 == 0); + let mut out = drained.collect::>(); + out.sort_unstable(); + assert_eq!(vec![(0, 0), (2, 20), (4, 40), (6, 60)], out); + assert_eq!(map.len(), 4); + } + { + let mut map: HashMap = (0..8).map(|x| (x, x * 10)).collect(); + map.extract_if(|&k, _| k % 2 == 0).for_each(drop); + assert_eq!(map.len(), 4); + } + } + + #[test] + #[cfg_attr(miri, ignore)] // FIXME: no OOM signalling (https://github.com/rust-lang/miri/issues/613) + fn test_try_reserve() { + use crate::TryReserveError::{AllocError, CapacityOverflow}; + + const MAX_ISIZE: usize = isize::MAX as usize; + + let mut empty_bytes: HashMap = HashMap::new(); + + if let Err(CapacityOverflow) = empty_bytes.try_reserve(usize::MAX) { + } else { + panic!("usize::MAX should trigger an overflow!"); + } + + if let Err(CapacityOverflow) = empty_bytes.try_reserve(MAX_ISIZE) { + } else { + panic!("isize::MAX should trigger an overflow!"); + } + + if let Err(AllocError { .. }) = empty_bytes.try_reserve(MAX_ISIZE / 5) { + } else { + // This may succeed if there is enough free memory. Attempt to + // allocate a few more hashmaps to ensure the allocation will fail. + let mut empty_bytes2: HashMap = HashMap::new(); + let _ = empty_bytes2.try_reserve(MAX_ISIZE / 5); + let mut empty_bytes3: HashMap = HashMap::new(); + let _ = empty_bytes3.try_reserve(MAX_ISIZE / 5); + let mut empty_bytes4: HashMap = HashMap::new(); + if let Err(AllocError { .. }) = empty_bytes4.try_reserve(MAX_ISIZE / 5) { + } else { + panic!("isize::MAX / 5 should trigger an OOM!"); + } + } + } + + #[test] + fn test_raw_entry() { + use super::RawEntryMut::{Occupied, Vacant}; + + let xs = [(1_i32, 10_i32), (2, 20), (3, 30), (4, 40), (5, 50), (6, 60)]; + + let mut map: HashMap<_, _> = xs.iter().copied().collect(); + + let compute_hash = |map: &HashMap, k: i32| -> u64 { + super::make_hash::(map.hasher(), &k) + }; + + // Existing key (insert) + match map.raw_entry_mut().from_key(&1) { + Vacant(_) => unreachable!(), + Occupied(mut view) => { + assert_eq!(view.get(), &10); + assert_eq!(view.insert(100), 10); + } + } + let hash1 = compute_hash(&map, 1); + assert_eq!(map.raw_entry().from_key(&1).unwrap(), (&1, &100)); + assert_eq!( + map.raw_entry().from_hash(hash1, |k| *k == 1).unwrap(), + (&1, &100) + ); + assert_eq!( + map.raw_entry().from_key_hashed_nocheck(hash1, &1).unwrap(), + (&1, &100) + ); + assert_eq!(map.len(), 6); + + // Existing key (update) + match map.raw_entry_mut().from_key(&2) { + Vacant(_) => unreachable!(), + Occupied(mut view) => { + let v = view.get_mut(); + let new_v = (*v) * 10; + *v = new_v; + } + } + let hash2 = compute_hash(&map, 2); + assert_eq!(map.raw_entry().from_key(&2).unwrap(), (&2, &200)); + assert_eq!( + map.raw_entry().from_hash(hash2, |k| *k == 2).unwrap(), + (&2, &200) + ); + assert_eq!( + map.raw_entry().from_key_hashed_nocheck(hash2, &2).unwrap(), + (&2, &200) + ); + assert_eq!(map.len(), 6); + + // Existing key (take) + let hash3 = compute_hash(&map, 3); + match map.raw_entry_mut().from_key_hashed_nocheck(hash3, &3) { + Vacant(_) => unreachable!(), + Occupied(view) => { + assert_eq!(view.remove_entry(), (3, 30)); + } + } + assert_eq!(map.raw_entry().from_key(&3), None); + assert_eq!(map.raw_entry().from_hash(hash3, |k| *k == 3), None); + assert_eq!(map.raw_entry().from_key_hashed_nocheck(hash3, &3), None); + assert_eq!(map.len(), 5); + + // Nonexistent key (insert) + match map.raw_entry_mut().from_key(&10) { + Occupied(_) => unreachable!(), + Vacant(view) => { + assert_eq!(view.insert(10, 1000), (&mut 10, &mut 1000)); + } + } + assert_eq!(map.raw_entry().from_key(&10).unwrap(), (&10, &1000)); + assert_eq!(map.len(), 6); + + // Ensure all lookup methods produce equivalent results. + for k in 0..12 { + let hash = compute_hash(&map, k); + let v = map.get(&k).copied(); + let kv = v.as_ref().map(|v| (&k, v)); + + assert_eq!(map.raw_entry().from_key(&k), kv); + assert_eq!(map.raw_entry().from_hash(hash, |q| *q == k), kv); + assert_eq!(map.raw_entry().from_key_hashed_nocheck(hash, &k), kv); + + match map.raw_entry_mut().from_key(&k) { + Occupied(o) => assert_eq!(Some(o.get_key_value()), kv), + Vacant(_) => assert_eq!(v, None), + } + match map.raw_entry_mut().from_key_hashed_nocheck(hash, &k) { + Occupied(o) => assert_eq!(Some(o.get_key_value()), kv), + Vacant(_) => assert_eq!(v, None), + } + match map.raw_entry_mut().from_hash(hash, |q| *q == k) { + Occupied(o) => assert_eq!(Some(o.get_key_value()), kv), + Vacant(_) => assert_eq!(v, None), + } + } + } + + #[test] + fn test_key_without_hash_impl() { + #[derive(Debug)] + struct IntWrapper(u64); + + let mut m: HashMap = HashMap::default(); + { + assert!(m.raw_entry().from_hash(0, |k| k.0 == 0).is_none()); + } + { + let vacant_entry = match m.raw_entry_mut().from_hash(0, |k| k.0 == 0) { + RawEntryMut::Occupied(..) => panic!("Found entry for key 0"), + RawEntryMut::Vacant(e) => e, + }; + vacant_entry.insert_with_hasher(0, IntWrapper(0), (), |k| k.0); + } + { + assert!(m.raw_entry().from_hash(0, |k| k.0 == 0).is_some()); + assert!(m.raw_entry().from_hash(1, |k| k.0 == 1).is_none()); + assert!(m.raw_entry().from_hash(2, |k| k.0 == 2).is_none()); + } + { + let vacant_entry = match m.raw_entry_mut().from_hash(1, |k| k.0 == 1) { + RawEntryMut::Occupied(..) => panic!("Found entry for key 1"), + RawEntryMut::Vacant(e) => e, + }; + vacant_entry.insert_with_hasher(1, IntWrapper(1), (), |k| k.0); + } + { + assert!(m.raw_entry().from_hash(0, |k| k.0 == 0).is_some()); + assert!(m.raw_entry().from_hash(1, |k| k.0 == 1).is_some()); + assert!(m.raw_entry().from_hash(2, |k| k.0 == 2).is_none()); + } + { + let occupied_entry = match m.raw_entry_mut().from_hash(0, |k| k.0 == 0) { + RawEntryMut::Occupied(e) => e, + RawEntryMut::Vacant(..) => panic!("Couldn't find entry for key 0"), + }; + occupied_entry.remove(); + } + assert!(m.raw_entry().from_hash(0, |k| k.0 == 0).is_none()); + assert!(m.raw_entry().from_hash(1, |k| k.0 == 1).is_some()); + assert!(m.raw_entry().from_hash(2, |k| k.0 == 2).is_none()); + } + + #[test] + #[cfg(feature = "raw")] + fn test_into_iter_refresh() { + #[cfg(miri)] + const N: usize = 32; + #[cfg(not(miri))] + const N: usize = 128; + + let mut rng = rand::thread_rng(); + for n in 0..N { + let mut map = HashMap::new(); + for i in 0..n { + assert!(map.insert(i, 2 * i).is_none()); + } + let hash_builder = map.hasher().clone(); + + let mut it = unsafe { map.table.iter() }; + assert_eq!(it.len(), n); + + let mut i = 0; + let mut left = n; + let mut removed = Vec::new(); + loop { + // occasionally remove some elements + if i < n && rng.gen_bool(0.1) { + let hash_value = super::make_hash(&hash_builder, &i); + + unsafe { + let e = map.table.find(hash_value, |q| q.0.eq(&i)); + if let Some(e) = e { + it.reflect_remove(&e); + let t = map.table.remove(e).0; + removed.push(t); + left -= 1; + } else { + assert!(removed.contains(&(i, 2 * i)), "{i} not in {removed:?}"); + let e = map.table.insert( + hash_value, + (i, 2 * i), + super::make_hasher::<_, usize, _>(&hash_builder), + ); + it.reflect_insert(&e); + if let Some(p) = removed.iter().position(|e| e == &(i, 2 * i)) { + removed.swap_remove(p); + } + left += 1; + } + } + } + + let e = it.next(); + if e.is_none() { + break; + } + assert!(i < n); + let t = unsafe { e.unwrap().as_ref() }; + assert!(!removed.contains(t)); + let (key, value) = t; + assert_eq!(*value, 2 * key); + i += 1; + } + assert!(i <= n); + + // just for safety: + assert_eq!(map.table.len(), left); + } + } + + #[test] + fn test_const_with_hasher() { + use core::hash::BuildHasher; + use std::collections::hash_map::DefaultHasher; + + #[derive(Clone)] + struct MyHasher; + impl BuildHasher for MyHasher { + type Hasher = DefaultHasher; + + fn build_hasher(&self) -> DefaultHasher { + DefaultHasher::new() + } + } + + const EMPTY_MAP: HashMap = + HashMap::with_hasher(MyHasher); + + let mut map = EMPTY_MAP; + map.insert(17, "seventeen".to_owned()); + assert_eq!("seventeen", map[&17]); + } + + #[test] + fn test_get_each_mut() { + let mut map = HashMap::new(); + map.insert("foo".to_owned(), 0); + map.insert("bar".to_owned(), 10); + map.insert("baz".to_owned(), 20); + map.insert("qux".to_owned(), 30); + + let xs = map.get_many_mut(["foo", "qux"]); + assert_eq!(xs, Some([&mut 0, &mut 30])); + + let xs = map.get_many_mut(["foo", "dud"]); + assert_eq!(xs, None); + + let xs = map.get_many_mut(["foo", "foo"]); + assert_eq!(xs, None); + + let ys = map.get_many_key_value_mut(["bar", "baz"]); + assert_eq!( + ys, + Some([(&"bar".to_owned(), &mut 10), (&"baz".to_owned(), &mut 20),]), + ); + + let ys = map.get_many_key_value_mut(["bar", "dip"]); + assert_eq!(ys, None); + + let ys = map.get_many_key_value_mut(["baz", "baz"]); + assert_eq!(ys, None); + } + + #[test] + #[should_panic = "panic in drop"] + fn test_clone_from_double_drop() { + #[derive(Clone)] + struct CheckedDrop { + panic_in_drop: bool, + dropped: bool, + } + impl Drop for CheckedDrop { + fn drop(&mut self) { + if self.panic_in_drop { + self.dropped = true; + panic!("panic in drop"); + } + if self.dropped { + panic!("double drop"); + } + self.dropped = true; + } + } + const DISARMED: CheckedDrop = CheckedDrop { + panic_in_drop: false, + dropped: false, + }; + const ARMED: CheckedDrop = CheckedDrop { + panic_in_drop: true, + dropped: false, + }; + + let mut map1 = HashMap::new(); + map1.insert(1, DISARMED); + map1.insert(2, DISARMED); + map1.insert(3, DISARMED); + map1.insert(4, DISARMED); + + let mut map2 = HashMap::new(); + map2.insert(1, DISARMED); + map2.insert(2, ARMED); + map2.insert(3, DISARMED); + map2.insert(4, DISARMED); + + map2.clone_from(&map1); + } + + #[test] + #[should_panic = "panic in clone"] + fn test_clone_from_memory_leaks() { + use alloc::vec::Vec; + + struct CheckedClone { + panic_in_clone: bool, + need_drop: Vec, + } + impl Clone for CheckedClone { + fn clone(&self) -> Self { + if self.panic_in_clone { + panic!("panic in clone") + } + Self { + panic_in_clone: self.panic_in_clone, + need_drop: self.need_drop.clone(), + } + } + } + let mut map1 = HashMap::new(); + map1.insert( + 1, + CheckedClone { + panic_in_clone: false, + need_drop: vec![0, 1, 2], + }, + ); + map1.insert( + 2, + CheckedClone { + panic_in_clone: false, + need_drop: vec![3, 4, 5], + }, + ); + map1.insert( + 3, + CheckedClone { + panic_in_clone: true, + need_drop: vec![6, 7, 8], + }, + ); + let _map2 = map1.clone(); + } + + struct MyAllocInner { + drop_count: Arc, + } + + #[derive(Clone)] + struct MyAlloc { + _inner: Arc, + } + + impl MyAlloc { + fn new(drop_count: Arc) -> Self { + MyAlloc { + _inner: Arc::new(MyAllocInner { drop_count }), + } + } + } + + impl Drop for MyAllocInner { + fn drop(&mut self) { + println!("MyAlloc freed."); + self.drop_count.fetch_sub(1, Ordering::SeqCst); + } + } + + unsafe impl Allocator for MyAlloc { + fn allocate(&self, layout: Layout) -> std::result::Result, AllocError> { + let g = Global; + g.allocate(layout) + } + + unsafe fn deallocate(&self, ptr: NonNull, layout: Layout) { + let g = Global; + g.deallocate(ptr, layout) + } + } + + #[test] + fn test_hashmap_into_iter_bug() { + let dropped: Arc = Arc::new(AtomicI8::new(1)); + + { + let mut map = HashMap::with_capacity_in(10, MyAlloc::new(dropped.clone())); + for i in 0..10 { + map.entry(i).or_insert_with(|| "i".to_string()); + } + + for (k, v) in map { + println!("{}, {}", k, v); + } + } + + // All allocator clones should already be dropped. + assert_eq!(dropped.load(Ordering::SeqCst), 0); + } + + #[derive(Debug)] + struct CheckedCloneDrop { + panic_in_clone: bool, + panic_in_drop: bool, + dropped: bool, + data: T, + } + + impl CheckedCloneDrop { + fn new(panic_in_clone: bool, panic_in_drop: bool, data: T) -> Self { + CheckedCloneDrop { + panic_in_clone, + panic_in_drop, + dropped: false, + data, + } + } + } + + impl Clone for CheckedCloneDrop { + fn clone(&self) -> Self { + if self.panic_in_clone { + panic!("panic in clone") + } + Self { + panic_in_clone: self.panic_in_clone, + panic_in_drop: self.panic_in_drop, + dropped: self.dropped, + data: self.data.clone(), + } + } + } + + impl Drop for CheckedCloneDrop { + fn drop(&mut self) { + if self.panic_in_drop { + self.dropped = true; + panic!("panic in drop"); + } + if self.dropped { + panic!("double drop"); + } + self.dropped = true; + } + } + + /// Return hashmap with predefined distribution of elements. + /// All elements will be located in the same order as elements + /// returned by iterator. + /// + /// This function does not panic, but returns an error as a `String` + /// to distinguish between a test panic and an error in the input data. + fn get_test_map( + iter: I, + mut fun: impl FnMut(u64) -> T, + alloc: A, + ) -> Result, DefaultHashBuilder, A>, String> + where + I: Iterator + Clone + ExactSizeIterator, + A: Allocator, + T: PartialEq + core::fmt::Debug, + { + use crate::scopeguard::guard; + + let mut map: HashMap, _, A> = + HashMap::with_capacity_in(iter.size_hint().0, alloc); + { + let mut guard = guard(&mut map, |map| { + for (_, value) in map.iter_mut() { + value.panic_in_drop = false + } + }); + + let mut count = 0; + // Hash and Key must be equal to each other for controlling the elements placement. + for (panic_in_clone, panic_in_drop) in iter.clone() { + if core::mem::needs_drop::() && panic_in_drop { + return Err(String::from( + "panic_in_drop can be set with a type that doesn't need to be dropped", + )); + } + guard.table.insert( + count, + ( + count, + CheckedCloneDrop::new(panic_in_clone, panic_in_drop, fun(count)), + ), + |(k, _)| *k, + ); + count += 1; + } + + // Let's check that all elements are located as we wanted + let mut check_count = 0; + for ((key, value), (panic_in_clone, panic_in_drop)) in guard.iter().zip(iter) { + if *key != check_count { + return Err(format!( + "key != check_count,\nkey: `{}`,\ncheck_count: `{}`", + key, check_count + )); + } + if value.dropped + || value.panic_in_clone != panic_in_clone + || value.panic_in_drop != panic_in_drop + || value.data != fun(check_count) + { + return Err(format!( + "Value is not equal to expected,\nvalue: `{:?}`,\nexpected: \ + `CheckedCloneDrop {{ panic_in_clone: {}, panic_in_drop: {}, dropped: {}, data: {:?} }}`", + value, panic_in_clone, panic_in_drop, false, fun(check_count) + )); + } + check_count += 1; + } + + if guard.len() != check_count as usize { + return Err(format!( + "map.len() != check_count,\nmap.len(): `{}`,\ncheck_count: `{}`", + guard.len(), + check_count + )); + } + + if count != check_count { + return Err(format!( + "count != check_count,\ncount: `{}`,\ncheck_count: `{}`", + count, check_count + )); + } + core::mem::forget(guard); + } + Ok(map) + } + + const DISARMED: bool = false; + const ARMED: bool = true; + + const ARMED_FLAGS: [bool; 8] = [ + DISARMED, DISARMED, DISARMED, ARMED, DISARMED, DISARMED, DISARMED, DISARMED, + ]; + + const DISARMED_FLAGS: [bool; 8] = [ + DISARMED, DISARMED, DISARMED, DISARMED, DISARMED, DISARMED, DISARMED, DISARMED, + ]; + + #[test] + #[should_panic = "panic in clone"] + fn test_clone_memory_leaks_and_double_drop_one() { + let dropped: Arc = Arc::new(AtomicI8::new(2)); + + { + assert_eq!(ARMED_FLAGS.len(), DISARMED_FLAGS.len()); + + let map: HashMap>, DefaultHashBuilder, MyAlloc> = + match get_test_map( + ARMED_FLAGS.into_iter().zip(DISARMED_FLAGS), + |n| vec![n], + MyAlloc::new(dropped.clone()), + ) { + Ok(map) => map, + Err(msg) => panic!("{msg}"), + }; + + // Clone should normally clone a few elements, and then (when the + // clone function panics), deallocate both its own memory, memory + // of `dropped: Arc` and the memory of already cloned + // elements (Vec memory inside CheckedCloneDrop). + let _map2 = map.clone(); + } + } + + #[test] + #[should_panic = "panic in drop"] + fn test_clone_memory_leaks_and_double_drop_two() { + let dropped: Arc = Arc::new(AtomicI8::new(2)); + + { + assert_eq!(ARMED_FLAGS.len(), DISARMED_FLAGS.len()); + + let map: HashMap, DefaultHashBuilder, _> = match get_test_map( + DISARMED_FLAGS.into_iter().zip(DISARMED_FLAGS), + |n| n, + MyAlloc::new(dropped.clone()), + ) { + Ok(map) => map, + Err(msg) => panic!("{msg}"), + }; + + let mut map2 = match get_test_map( + DISARMED_FLAGS.into_iter().zip(ARMED_FLAGS), + |n| n, + MyAlloc::new(dropped.clone()), + ) { + Ok(map) => map, + Err(msg) => panic!("{msg}"), + }; + + // The `clone_from` should try to drop the elements of `map2` without + // double drop and leaking the allocator. Elements that have not been + // dropped leak their memory. + map2.clone_from(&map); + } + } + + /// We check that we have a working table if the clone operation from another + /// thread ended in a panic (when buckets of maps are equal to each other). + #[test] + fn test_catch_panic_clone_from_when_len_is_equal() { + use std::thread; + + let dropped: Arc = Arc::new(AtomicI8::new(2)); + + { + assert_eq!(ARMED_FLAGS.len(), DISARMED_FLAGS.len()); + + let mut map = match get_test_map( + DISARMED_FLAGS.into_iter().zip(DISARMED_FLAGS), + |n| vec![n], + MyAlloc::new(dropped.clone()), + ) { + Ok(map) => map, + Err(msg) => panic!("{msg}"), + }; + + thread::scope(|s| { + let result: thread::ScopedJoinHandle<'_, String> = s.spawn(|| { + let scope_map = + match get_test_map(ARMED_FLAGS.into_iter().zip(DISARMED_FLAGS), |n| vec![n * 2], MyAlloc::new(dropped.clone())) { + Ok(map) => map, + Err(msg) => return msg, + }; + if map.table.buckets() != scope_map.table.buckets() { + return format!( + "map.table.buckets() != scope_map.table.buckets(),\nleft: `{}`,\nright: `{}`", + map.table.buckets(), scope_map.table.buckets() + ); + } + map.clone_from(&scope_map); + "We must fail the cloning!!!".to_owned() + }); + if let Ok(msg) = result.join() { + panic!("{msg}") + } + }); + + // Let's check that all iterators work fine and do not return elements + // (especially `RawIterRange`, which does not depend on the number of + // elements in the table, but looks directly at the control bytes) + // + // SAFETY: We know for sure that `RawTable` will outlive + // the returned `RawIter / RawIterRange` iterator. + assert_eq!(map.len(), 0); + assert_eq!(map.iter().count(), 0); + assert_eq!(unsafe { map.table.iter().count() }, 0); + assert_eq!(unsafe { map.table.iter().iter.count() }, 0); + + for idx in 0..map.table.buckets() { + let idx = idx as u64; + assert!( + map.table.find(idx, |(k, _)| *k == idx).is_none(), + "Index: {idx}" + ); + } + } + + // All allocator clones should already be dropped. + assert_eq!(dropped.load(Ordering::SeqCst), 0); + } + + /// We check that we have a working table if the clone operation from another + /// thread ended in a panic (when buckets of maps are not equal to each other). + #[test] + fn test_catch_panic_clone_from_when_len_is_not_equal() { + use std::thread; + + let dropped: Arc = Arc::new(AtomicI8::new(2)); + + { + assert_eq!(ARMED_FLAGS.len(), DISARMED_FLAGS.len()); + + let mut map = match get_test_map( + [DISARMED].into_iter().zip([DISARMED]), + |n| vec![n], + MyAlloc::new(dropped.clone()), + ) { + Ok(map) => map, + Err(msg) => panic!("{msg}"), + }; + + thread::scope(|s| { + let result: thread::ScopedJoinHandle<'_, String> = s.spawn(|| { + let scope_map = match get_test_map( + ARMED_FLAGS.into_iter().zip(DISARMED_FLAGS), + |n| vec![n * 2], + MyAlloc::new(dropped.clone()), + ) { + Ok(map) => map, + Err(msg) => return msg, + }; + if map.table.buckets() == scope_map.table.buckets() { + return format!( + "map.table.buckets() == scope_map.table.buckets(): `{}`", + map.table.buckets() + ); + } + map.clone_from(&scope_map); + "We must fail the cloning!!!".to_owned() + }); + if let Ok(msg) = result.join() { + panic!("{msg}") + } + }); + + // Let's check that all iterators work fine and do not return elements + // (especially `RawIterRange`, which does not depend on the number of + // elements in the table, but looks directly at the control bytes) + // + // SAFETY: We know for sure that `RawTable` will outlive + // the returned `RawIter / RawIterRange` iterator. + assert_eq!(map.len(), 0); + assert_eq!(map.iter().count(), 0); + assert_eq!(unsafe { map.table.iter().count() }, 0); + assert_eq!(unsafe { map.table.iter().iter.count() }, 0); + + for idx in 0..map.table.buckets() { + let idx = idx as u64; + assert!( + map.table.find(idx, |(k, _)| *k == idx).is_none(), + "Index: {idx}" + ); + } + } + + // All allocator clones should already be dropped. + assert_eq!(dropped.load(Ordering::SeqCst), 0); + } +} diff --git a/src/rust/vendor/hashbrown/src/raw/alloc.rs b/src/rust/vendor/hashbrown/src/raw/alloc.rs new file mode 100644 index 000000000..15299e7b0 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/raw/alloc.rs @@ -0,0 +1,86 @@ +pub(crate) use self::inner::{do_alloc, Allocator, Global}; + +// Nightly-case. +// Use unstable `allocator_api` feature. +// This is compatible with `allocator-api2` which can be enabled or not. +// This is used when building for `std`. +#[cfg(feature = "nightly")] +mod inner { + use crate::alloc::alloc::Layout; + pub use crate::alloc::alloc::{Allocator, Global}; + use core::ptr::NonNull; + + #[allow(clippy::map_err_ignore)] + pub(crate) fn do_alloc(alloc: &A, layout: Layout) -> Result, ()> { + match alloc.allocate(layout) { + Ok(ptr) => Ok(ptr.as_non_null_ptr()), + Err(_) => Err(()), + } + } +} + +// Basic non-nightly case. +// This uses `allocator-api2` enabled by default. +// If any crate enables "nightly" in `allocator-api2`, +// this will be equivalent to the nightly case, +// since `allocator_api2::alloc::Allocator` would be re-export of +// `core::alloc::Allocator`. +#[cfg(all(not(feature = "nightly"), feature = "allocator-api2"))] +mod inner { + use crate::alloc::alloc::Layout; + pub use allocator_api2::alloc::{Allocator, Global}; + use core::ptr::NonNull; + + #[allow(clippy::map_err_ignore)] + pub(crate) fn do_alloc(alloc: &A, layout: Layout) -> Result, ()> { + match alloc.allocate(layout) { + Ok(ptr) => Ok(ptr.cast()), + Err(_) => Err(()), + } + } +} + +// No-defaults case. +// When building with default-features turned off and +// neither `nightly` nor `allocator-api2` is enabled, +// this will be used. +// Making it impossible to use any custom allocator with collections defined +// in this crate. +// Any crate in build-tree can enable `allocator-api2`, +// or `nightly` without disturbing users that don't want to use it. +#[cfg(not(any(feature = "nightly", feature = "allocator-api2")))] +mod inner { + use crate::alloc::alloc::{alloc, dealloc, Layout}; + use core::ptr::NonNull; + + #[allow(clippy::missing_safety_doc)] // not exposed outside of this crate + pub unsafe trait Allocator { + fn allocate(&self, layout: Layout) -> Result, ()>; + unsafe fn deallocate(&self, ptr: NonNull, layout: Layout); + } + + #[derive(Copy, Clone)] + pub struct Global; + + unsafe impl Allocator for Global { + #[inline] + fn allocate(&self, layout: Layout) -> Result, ()> { + unsafe { NonNull::new(alloc(layout)).ok_or(()) } + } + #[inline] + unsafe fn deallocate(&self, ptr: NonNull, layout: Layout) { + dealloc(ptr.as_ptr(), layout); + } + } + + impl Default for Global { + #[inline] + fn default() -> Self { + Global + } + } + + pub(crate) fn do_alloc(alloc: &A, layout: Layout) -> Result, ()> { + alloc.allocate(layout) + } +} diff --git a/src/rust/vendor/hashbrown/src/raw/bitmask.rs b/src/rust/vendor/hashbrown/src/raw/bitmask.rs new file mode 100644 index 000000000..6576b3c5c --- /dev/null +++ b/src/rust/vendor/hashbrown/src/raw/bitmask.rs @@ -0,0 +1,133 @@ +use super::imp::{ + BitMaskWord, NonZeroBitMaskWord, BITMASK_ITER_MASK, BITMASK_MASK, BITMASK_STRIDE, +}; + +/// A bit mask which contains the result of a `Match` operation on a `Group` and +/// allows iterating through them. +/// +/// The bit mask is arranged so that low-order bits represent lower memory +/// addresses for group match results. +/// +/// For implementation reasons, the bits in the set may be sparsely packed with +/// groups of 8 bits representing one element. If any of these bits are non-zero +/// then this element is considered to true in the mask. If this is the +/// case, `BITMASK_STRIDE` will be 8 to indicate a divide-by-8 should be +/// performed on counts/indices to normalize this difference. `BITMASK_MASK` is +/// similarly a mask of all the actually-used bits. +/// +/// To iterate over a bit mask, it must be converted to a form where only 1 bit +/// is set per element. This is done by applying `BITMASK_ITER_MASK` on the +/// mask bits. +#[derive(Copy, Clone)] +pub(crate) struct BitMask(pub(crate) BitMaskWord); + +#[allow(clippy::use_self)] +impl BitMask { + /// Returns a new `BitMask` with all bits inverted. + #[inline] + #[must_use] + #[allow(dead_code)] + pub(crate) fn invert(self) -> Self { + BitMask(self.0 ^ BITMASK_MASK) + } + + /// Returns a new `BitMask` with the lowest bit removed. + #[inline] + #[must_use] + fn remove_lowest_bit(self) -> Self { + BitMask(self.0 & (self.0 - 1)) + } + + /// Returns whether the `BitMask` has at least one set bit. + #[inline] + pub(crate) fn any_bit_set(self) -> bool { + self.0 != 0 + } + + /// Returns the first set bit in the `BitMask`, if there is one. + #[inline] + pub(crate) fn lowest_set_bit(self) -> Option { + if let Some(nonzero) = NonZeroBitMaskWord::new(self.0) { + Some(Self::nonzero_trailing_zeros(nonzero)) + } else { + None + } + } + + /// Returns the number of trailing zeroes in the `BitMask`. + #[inline] + pub(crate) fn trailing_zeros(self) -> usize { + // ARM doesn't have a trailing_zeroes instruction, and instead uses + // reverse_bits (RBIT) + leading_zeroes (CLZ). However older ARM + // versions (pre-ARMv7) don't have RBIT and need to emulate it + // instead. Since we only have 1 bit set in each byte on ARM, we can + // use swap_bytes (REV) + leading_zeroes instead. + if cfg!(target_arch = "arm") && BITMASK_STRIDE % 8 == 0 { + self.0.swap_bytes().leading_zeros() as usize / BITMASK_STRIDE + } else { + self.0.trailing_zeros() as usize / BITMASK_STRIDE + } + } + + /// Same as above but takes a `NonZeroBitMaskWord`. + #[inline] + fn nonzero_trailing_zeros(nonzero: NonZeroBitMaskWord) -> usize { + if cfg!(target_arch = "arm") && BITMASK_STRIDE % 8 == 0 { + // SAFETY: A byte-swapped non-zero value is still non-zero. + let swapped = unsafe { NonZeroBitMaskWord::new_unchecked(nonzero.get().swap_bytes()) }; + swapped.leading_zeros() as usize / BITMASK_STRIDE + } else { + nonzero.trailing_zeros() as usize / BITMASK_STRIDE + } + } + + /// Returns the number of leading zeroes in the `BitMask`. + #[inline] + pub(crate) fn leading_zeros(self) -> usize { + self.0.leading_zeros() as usize / BITMASK_STRIDE + } +} + +impl IntoIterator for BitMask { + type Item = usize; + type IntoIter = BitMaskIter; + + #[inline] + fn into_iter(self) -> BitMaskIter { + // A BitMask only requires each element (group of bits) to be non-zero. + // However for iteration we need each element to only contain 1 bit. + BitMaskIter(BitMask(self.0 & BITMASK_ITER_MASK)) + } +} + +/// Iterator over the contents of a `BitMask`, returning the indices of set +/// bits. +#[derive(Copy, Clone)] +pub(crate) struct BitMaskIter(pub(crate) BitMask); + +impl BitMaskIter { + /// Flip the bit in the mask for the entry at the given index. + /// + /// Returns the bit's previous state. + #[inline] + #[allow(clippy::cast_ptr_alignment)] + #[cfg(feature = "raw")] + pub(crate) unsafe fn flip(&mut self, index: usize) -> bool { + // NOTE: The + BITMASK_STRIDE - 1 is to set the high bit. + let mask = 1 << (index * BITMASK_STRIDE + BITMASK_STRIDE - 1); + self.0 .0 ^= mask; + // The bit was set if the bit is now 0. + self.0 .0 & mask == 0 + } +} + +impl Iterator for BitMaskIter { + type Item = usize; + + #[inline] + fn next(&mut self) -> Option { + let bit = self.0.lowest_set_bit()?; + self.0 = self.0.remove_lowest_bit(); + Some(bit) + } +} diff --git a/src/rust/vendor/hashbrown/src/raw/generic.rs b/src/rust/vendor/hashbrown/src/raw/generic.rs new file mode 100644 index 000000000..c668b0642 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/raw/generic.rs @@ -0,0 +1,157 @@ +use super::bitmask::BitMask; +use super::EMPTY; +use core::{mem, ptr}; + +// Use the native word size as the group size. Using a 64-bit group size on +// a 32-bit architecture will just end up being more expensive because +// shifts and multiplies will need to be emulated. + +cfg_if! { + if #[cfg(any( + target_pointer_width = "64", + target_arch = "aarch64", + target_arch = "x86_64", + target_arch = "wasm32", + ))] { + type GroupWord = u64; + type NonZeroGroupWord = core::num::NonZeroU64; + } else { + type GroupWord = u32; + type NonZeroGroupWord = core::num::NonZeroU32; + } +} + +pub(crate) type BitMaskWord = GroupWord; +pub(crate) type NonZeroBitMaskWord = NonZeroGroupWord; +pub(crate) const BITMASK_STRIDE: usize = 8; +// We only care about the highest bit of each byte for the mask. +#[allow(clippy::cast_possible_truncation, clippy::unnecessary_cast)] +pub(crate) const BITMASK_MASK: BitMaskWord = 0x8080_8080_8080_8080_u64 as GroupWord; +pub(crate) const BITMASK_ITER_MASK: BitMaskWord = !0; + +/// Helper function to replicate a byte across a `GroupWord`. +#[inline] +fn repeat(byte: u8) -> GroupWord { + GroupWord::from_ne_bytes([byte; Group::WIDTH]) +} + +/// Abstraction over a group of control bytes which can be scanned in +/// parallel. +/// +/// This implementation uses a word-sized integer. +#[derive(Copy, Clone)] +pub(crate) struct Group(GroupWord); + +// We perform all operations in the native endianness, and convert to +// little-endian just before creating a BitMask. The can potentially +// enable the compiler to eliminate unnecessary byte swaps if we are +// only checking whether a BitMask is empty. +#[allow(clippy::use_self)] +impl Group { + /// Number of bytes in the group. + pub(crate) const WIDTH: usize = mem::size_of::(); + + /// Returns a full group of empty bytes, suitable for use as the initial + /// value for an empty hash table. + /// + /// This is guaranteed to be aligned to the group size. + #[inline] + pub(crate) const fn static_empty() -> &'static [u8; Group::WIDTH] { + #[repr(C)] + struct AlignedBytes { + _align: [Group; 0], + bytes: [u8; Group::WIDTH], + } + const ALIGNED_BYTES: AlignedBytes = AlignedBytes { + _align: [], + bytes: [EMPTY; Group::WIDTH], + }; + &ALIGNED_BYTES.bytes + } + + /// Loads a group of bytes starting at the given address. + #[inline] + #[allow(clippy::cast_ptr_alignment)] // unaligned load + pub(crate) unsafe fn load(ptr: *const u8) -> Self { + Group(ptr::read_unaligned(ptr.cast())) + } + + /// Loads a group of bytes starting at the given address, which must be + /// aligned to `mem::align_of::()`. + #[inline] + #[allow(clippy::cast_ptr_alignment)] + pub(crate) unsafe fn load_aligned(ptr: *const u8) -> Self { + // FIXME: use align_offset once it stabilizes + debug_assert_eq!(ptr as usize & (mem::align_of::() - 1), 0); + Group(ptr::read(ptr.cast())) + } + + /// Stores the group of bytes to the given address, which must be + /// aligned to `mem::align_of::()`. + #[inline] + #[allow(clippy::cast_ptr_alignment)] + pub(crate) unsafe fn store_aligned(self, ptr: *mut u8) { + // FIXME: use align_offset once it stabilizes + debug_assert_eq!(ptr as usize & (mem::align_of::() - 1), 0); + ptr::write(ptr.cast(), self.0); + } + + /// Returns a `BitMask` indicating all bytes in the group which *may* + /// have the given value. + /// + /// This function may return a false positive in certain cases where + /// the byte in the group differs from the searched value only in its + /// lowest bit. This is fine because: + /// - This never happens for `EMPTY` and `DELETED`, only full entries. + /// - The check for key equality will catch these. + /// - This only happens if there is at least 1 true match. + /// - The chance of this happening is very low (< 1% chance per byte). + #[inline] + pub(crate) fn match_byte(self, byte: u8) -> BitMask { + // This algorithm is derived from + // https://graphics.stanford.edu/~seander/bithacks.html##ValueInWord + let cmp = self.0 ^ repeat(byte); + BitMask((cmp.wrapping_sub(repeat(0x01)) & !cmp & repeat(0x80)).to_le()) + } + + /// Returns a `BitMask` indicating all bytes in the group which are + /// `EMPTY`. + #[inline] + pub(crate) fn match_empty(self) -> BitMask { + // If the high bit is set, then the byte must be either: + // 1111_1111 (EMPTY) or 1000_0000 (DELETED). + // So we can just check if the top two bits are 1 by ANDing them. + BitMask((self.0 & (self.0 << 1) & repeat(0x80)).to_le()) + } + + /// Returns a `BitMask` indicating all bytes in the group which are + /// `EMPTY` or `DELETED`. + #[inline] + pub(crate) fn match_empty_or_deleted(self) -> BitMask { + // A byte is EMPTY or DELETED iff the high bit is set + BitMask((self.0 & repeat(0x80)).to_le()) + } + + /// Returns a `BitMask` indicating all bytes in the group which are full. + #[inline] + pub(crate) fn match_full(self) -> BitMask { + self.match_empty_or_deleted().invert() + } + + /// Performs the following transformation on all bytes in the group: + /// - `EMPTY => EMPTY` + /// - `DELETED => EMPTY` + /// - `FULL => DELETED` + #[inline] + pub(crate) fn convert_special_to_empty_and_full_to_deleted(self) -> Self { + // Map high_bit = 1 (EMPTY or DELETED) to 1111_1111 + // and high_bit = 0 (FULL) to 1000_0000 + // + // Here's this logic expanded to concrete values: + // let full = 1000_0000 (true) or 0000_0000 (false) + // !1000_0000 + 1 = 0111_1111 + 1 = 1000_0000 (no carry) + // !0000_0000 + 0 = 1111_1111 + 0 = 1111_1111 (no carry) + let full = !self.0 & repeat(0x80); + Group(!full + (full >> 7)) + } +} diff --git a/src/rust/vendor/hashbrown/src/raw/mod.rs b/src/rust/vendor/hashbrown/src/raw/mod.rs new file mode 100644 index 000000000..c8e8e2912 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/raw/mod.rs @@ -0,0 +1,4817 @@ +use crate::alloc::alloc::{handle_alloc_error, Layout}; +use crate::scopeguard::{guard, ScopeGuard}; +use crate::TryReserveError; +use core::iter::FusedIterator; +use core::marker::PhantomData; +use core::mem; +use core::mem::MaybeUninit; +use core::ptr::NonNull; +use core::{hint, ptr}; + +cfg_if! { + // Use the SSE2 implementation if possible: it allows us to scan 16 buckets + // at once instead of 8. We don't bother with AVX since it would require + // runtime dispatch and wouldn't gain us much anyways: the probability of + // finding a match drops off drastically after the first few buckets. + // + // I attempted an implementation on ARM using NEON instructions, but it + // turns out that most NEON instructions have multi-cycle latency, which in + // the end outweighs any gains over the generic implementation. + if #[cfg(all( + target_feature = "sse2", + any(target_arch = "x86", target_arch = "x86_64"), + not(miri), + ))] { + mod sse2; + use sse2 as imp; + } else if #[cfg(all( + target_arch = "aarch64", + target_feature = "neon", + // NEON intrinsics are currently broken on big-endian targets. + // See https://github.com/rust-lang/stdarch/issues/1484. + target_endian = "little", + not(miri), + ))] { + mod neon; + use neon as imp; + } else { + mod generic; + use generic as imp; + } +} + +mod alloc; +pub(crate) use self::alloc::{do_alloc, Allocator, Global}; + +mod bitmask; + +use self::bitmask::BitMaskIter; +use self::imp::Group; + +// Branch prediction hint. This is currently only available on nightly but it +// consistently improves performance by 10-15%. +#[cfg(not(feature = "nightly"))] +use core::convert::identity as likely; +#[cfg(not(feature = "nightly"))] +use core::convert::identity as unlikely; +#[cfg(feature = "nightly")] +use core::intrinsics::{likely, unlikely}; + +// FIXME: use strict provenance functions once they are stable. +// Implement it with a transmute for now. +#[inline(always)] +#[allow(clippy::useless_transmute)] // clippy is wrong, cast and transmute are different here +fn invalid_mut(addr: usize) -> *mut T { + unsafe { core::mem::transmute(addr) } +} + +#[inline] +unsafe fn offset_from(to: *const T, from: *const T) -> usize { + to.offset_from(from) as usize +} + +/// Whether memory allocation errors should return an error or abort. +#[derive(Copy, Clone)] +enum Fallibility { + Fallible, + Infallible, +} + +impl Fallibility { + /// Error to return on capacity overflow. + #[cfg_attr(feature = "inline-more", inline)] + fn capacity_overflow(self) -> TryReserveError { + match self { + Fallibility::Fallible => TryReserveError::CapacityOverflow, + Fallibility::Infallible => panic!("Hash table capacity overflow"), + } + } + + /// Error to return on allocation error. + #[cfg_attr(feature = "inline-more", inline)] + fn alloc_err(self, layout: Layout) -> TryReserveError { + match self { + Fallibility::Fallible => TryReserveError::AllocError { layout }, + Fallibility::Infallible => handle_alloc_error(layout), + } + } +} + +trait SizedTypeProperties: Sized { + const IS_ZERO_SIZED: bool = mem::size_of::() == 0; + const NEEDS_DROP: bool = mem::needs_drop::(); +} + +impl SizedTypeProperties for T {} + +/// Control byte value for an empty bucket. +const EMPTY: u8 = 0b1111_1111; + +/// Control byte value for a deleted bucket. +const DELETED: u8 = 0b1000_0000; + +/// Checks whether a control byte represents a full bucket (top bit is clear). +#[inline] +fn is_full(ctrl: u8) -> bool { + ctrl & 0x80 == 0 +} + +/// Checks whether a control byte represents a special value (top bit is set). +#[inline] +fn is_special(ctrl: u8) -> bool { + ctrl & 0x80 != 0 +} + +/// Checks whether a special control value is EMPTY (just check 1 bit). +#[inline] +fn special_is_empty(ctrl: u8) -> bool { + debug_assert!(is_special(ctrl)); + ctrl & 0x01 != 0 +} + +/// Primary hash function, used to select the initial bucket to probe from. +#[inline] +#[allow(clippy::cast_possible_truncation)] +fn h1(hash: u64) -> usize { + // On 32-bit platforms we simply ignore the higher hash bits. + hash as usize +} + +// Constant for h2 function that grabing the top 7 bits of the hash. +const MIN_HASH_LEN: usize = if mem::size_of::() < mem::size_of::() { + mem::size_of::() +} else { + mem::size_of::() +}; + +/// Secondary hash function, saved in the low 7 bits of the control byte. +#[inline] +#[allow(clippy::cast_possible_truncation)] +fn h2(hash: u64) -> u8 { + // Grab the top 7 bits of the hash. While the hash is normally a full 64-bit + // value, some hash functions (such as FxHash) produce a usize result + // instead, which means that the top 32 bits are 0 on 32-bit platforms. + // So we use MIN_HASH_LEN constant to handle this. + let top7 = hash >> (MIN_HASH_LEN * 8 - 7); + (top7 & 0x7f) as u8 // truncation +} + +/// Probe sequence based on triangular numbers, which is guaranteed (since our +/// table size is a power of two) to visit every group of elements exactly once. +/// +/// A triangular probe has us jump by 1 more group every time. So first we +/// jump by 1 group (meaning we just continue our linear scan), then 2 groups +/// (skipping over 1 group), then 3 groups (skipping over 2 groups), and so on. +/// +/// Proof that the probe will visit every group in the table: +/// +struct ProbeSeq { + pos: usize, + stride: usize, +} + +impl ProbeSeq { + #[inline] + fn move_next(&mut self, bucket_mask: usize) { + // We should have found an empty bucket by now and ended the probe. + debug_assert!( + self.stride <= bucket_mask, + "Went past end of probe sequence" + ); + + self.stride += Group::WIDTH; + self.pos += self.stride; + self.pos &= bucket_mask; + } +} + +/// Returns the number of buckets needed to hold the given number of items, +/// taking the maximum load factor into account. +/// +/// Returns `None` if an overflow occurs. +// Workaround for emscripten bug emscripten-core/emscripten-fastcomp#258 +#[cfg_attr(target_os = "emscripten", inline(never))] +#[cfg_attr(not(target_os = "emscripten"), inline)] +fn capacity_to_buckets(cap: usize) -> Option { + debug_assert_ne!(cap, 0); + + // For small tables we require at least 1 empty bucket so that lookups are + // guaranteed to terminate if an element doesn't exist in the table. + if cap < 8 { + // We don't bother with a table size of 2 buckets since that can only + // hold a single element. Instead we skip directly to a 4 bucket table + // which can hold 3 elements. + return Some(if cap < 4 { 4 } else { 8 }); + } + + // Otherwise require 1/8 buckets to be empty (87.5% load) + // + // Be careful when modifying this, calculate_layout relies on the + // overflow check here. + let adjusted_cap = cap.checked_mul(8)? / 7; + + // Any overflows will have been caught by the checked_mul. Also, any + // rounding errors from the division above will be cleaned up by + // next_power_of_two (which can't overflow because of the previous division). + Some(adjusted_cap.next_power_of_two()) +} + +/// Returns the maximum effective capacity for the given bucket mask, taking +/// the maximum load factor into account. +#[inline] +fn bucket_mask_to_capacity(bucket_mask: usize) -> usize { + if bucket_mask < 8 { + // For tables with 1/2/4/8 buckets, we always reserve one empty slot. + // Keep in mind that the bucket mask is one less than the bucket count. + bucket_mask + } else { + // For larger tables we reserve 12.5% of the slots as empty. + ((bucket_mask + 1) / 8) * 7 + } +} + +/// Helper which allows the max calculation for ctrl_align to be statically computed for each T +/// while keeping the rest of `calculate_layout_for` independent of `T` +#[derive(Copy, Clone)] +struct TableLayout { + size: usize, + ctrl_align: usize, +} + +impl TableLayout { + #[inline] + const fn new() -> Self { + let layout = Layout::new::(); + Self { + size: layout.size(), + ctrl_align: if layout.align() > Group::WIDTH { + layout.align() + } else { + Group::WIDTH + }, + } + } + + #[inline] + fn calculate_layout_for(self, buckets: usize) -> Option<(Layout, usize)> { + debug_assert!(buckets.is_power_of_two()); + + let TableLayout { size, ctrl_align } = self; + // Manual layout calculation since Layout methods are not yet stable. + let ctrl_offset = + size.checked_mul(buckets)?.checked_add(ctrl_align - 1)? & !(ctrl_align - 1); + let len = ctrl_offset.checked_add(buckets + Group::WIDTH)?; + + // We need an additional check to ensure that the allocation doesn't + // exceed `isize::MAX` (https://github.com/rust-lang/rust/pull/95295). + if len > isize::MAX as usize - (ctrl_align - 1) { + return None; + } + + Some(( + unsafe { Layout::from_size_align_unchecked(len, ctrl_align) }, + ctrl_offset, + )) + } +} + +/// A reference to an empty bucket into which an can be inserted. +pub struct InsertSlot { + index: usize, +} + +/// A reference to a hash table bucket containing a `T`. +/// +/// This is usually just a pointer to the element itself. However if the element +/// is a ZST, then we instead track the index of the element in the table so +/// that `erase` works properly. +pub struct Bucket { + // Actually it is pointer to next element than element itself + // this is needed to maintain pointer arithmetic invariants + // keeping direct pointer to element introduces difficulty. + // Using `NonNull` for variance and niche layout + ptr: NonNull, +} + +// This Send impl is needed for rayon support. This is safe since Bucket is +// never exposed in a public API. +unsafe impl Send for Bucket {} + +impl Clone for Bucket { + #[inline] + fn clone(&self) -> Self { + Self { ptr: self.ptr } + } +} + +impl Bucket { + /// Creates a [`Bucket`] that contain pointer to the data. + /// The pointer calculation is performed by calculating the + /// offset from given `base` pointer (convenience for + /// `base.as_ptr().sub(index)`). + /// + /// `index` is in units of `T`; e.g., an `index` of 3 represents a pointer + /// offset of `3 * size_of::()` bytes. + /// + /// If the `T` is a ZST, then we instead track the index of the element + /// in the table so that `erase` works properly (return + /// `NonNull::new_unchecked((index + 1) as *mut T)`) + /// + /// # Safety + /// + /// If `mem::size_of::() != 0`, then the safety rules are directly derived + /// from the safety rules for [`<*mut T>::sub`] method of `*mut T` and the safety + /// rules of [`NonNull::new_unchecked`] function. + /// + /// Thus, in order to uphold the safety contracts for the [`<*mut T>::sub`] method + /// and [`NonNull::new_unchecked`] function, as well as for the correct + /// logic of the work of this crate, the following rules are necessary and + /// sufficient: + /// + /// * the `base` pointer must not be `dangling` and must points to the + /// end of the first `value element` from the `data part` of the table, i.e. + /// must be the pointer that returned by [`RawTable::data_end`] or by + /// [`RawTableInner::data_end`]; + /// + /// * `index` must not be greater than `RawTableInner.bucket_mask`, i.e. + /// `index <= RawTableInner.bucket_mask` or, in other words, `(index + 1)` + /// must be no greater than the number returned by the function + /// [`RawTable::buckets`] or [`RawTableInner::buckets`]. + /// + /// If `mem::size_of::() == 0`, then the only requirement is that the + /// `index` must not be greater than `RawTableInner.bucket_mask`, i.e. + /// `index <= RawTableInner.bucket_mask` or, in other words, `(index + 1)` + /// must be no greater than the number returned by the function + /// [`RawTable::buckets`] or [`RawTableInner::buckets`]. + /// + /// [`Bucket`]: crate::raw::Bucket + /// [`<*mut T>::sub`]: https://doc.rust-lang.org/core/primitive.pointer.html#method.sub-1 + /// [`NonNull::new_unchecked`]: https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.new_unchecked + /// [`RawTable::data_end`]: crate::raw::RawTable::data_end + /// [`RawTableInner::data_end`]: RawTableInner::data_end + /// [`RawTable::buckets`]: crate::raw::RawTable::buckets + /// [`RawTableInner::buckets`]: RawTableInner::buckets + #[inline] + unsafe fn from_base_index(base: NonNull, index: usize) -> Self { + // If mem::size_of::() != 0 then return a pointer to an `element` in + // the data part of the table (we start counting from "0", so that + // in the expression T[last], the "last" index actually one less than the + // "buckets" number in the table, i.e. "last = RawTableInner.bucket_mask"): + // + // `from_base_index(base, 1).as_ptr()` returns a pointer that + // points here in the data part of the table + // (to the start of T1) + // | + // | `base: NonNull` must point here + // | (to the end of T0 or to the start of C0) + // v v + // [Padding], Tlast, ..., |T1|, T0, |C0, C1, ..., Clast + // ^ + // `from_base_index(base, 1)` returns a pointer + // that points here in the data part of the table + // (to the end of T1) + // + // where: T0...Tlast - our stored data; C0...Clast - control bytes + // or metadata for data. + let ptr = if T::IS_ZERO_SIZED { + // won't overflow because index must be less than length (bucket_mask) + // and bucket_mask is guaranteed to be less than `isize::MAX` + // (see TableLayout::calculate_layout_for method) + invalid_mut(index + 1) + } else { + base.as_ptr().sub(index) + }; + Self { + ptr: NonNull::new_unchecked(ptr), + } + } + + /// Calculates the index of a [`Bucket`] as distance between two pointers + /// (convenience for `base.as_ptr().offset_from(self.ptr.as_ptr()) as usize`). + /// The returned value is in units of T: the distance in bytes divided by + /// [`core::mem::size_of::()`]. + /// + /// If the `T` is a ZST, then we return the index of the element in + /// the table so that `erase` works properly (return `self.ptr.as_ptr() as usize - 1`). + /// + /// This function is the inverse of [`from_base_index`]. + /// + /// # Safety + /// + /// If `mem::size_of::() != 0`, then the safety rules are directly derived + /// from the safety rules for [`<*const T>::offset_from`] method of `*const T`. + /// + /// Thus, in order to uphold the safety contracts for [`<*const T>::offset_from`] + /// method, as well as for the correct logic of the work of this crate, the + /// following rules are necessary and sufficient: + /// + /// * `base` contained pointer must not be `dangling` and must point to the + /// end of the first `element` from the `data part` of the table, i.e. + /// must be a pointer that returns by [`RawTable::data_end`] or by + /// [`RawTableInner::data_end`]; + /// + /// * `self` also must not contain dangling pointer; + /// + /// * both `self` and `base` must be created from the same [`RawTable`] + /// (or [`RawTableInner`]). + /// + /// If `mem::size_of::() == 0`, this function is always safe. + /// + /// [`Bucket`]: crate::raw::Bucket + /// [`from_base_index`]: crate::raw::Bucket::from_base_index + /// [`RawTable::data_end`]: crate::raw::RawTable::data_end + /// [`RawTableInner::data_end`]: RawTableInner::data_end + /// [`RawTable`]: crate::raw::RawTable + /// [`RawTableInner`]: RawTableInner + /// [`<*const T>::offset_from`]: https://doc.rust-lang.org/nightly/core/primitive.pointer.html#method.offset_from + #[inline] + unsafe fn to_base_index(&self, base: NonNull) -> usize { + // If mem::size_of::() != 0 then return an index under which we used to store the + // `element` in the data part of the table (we start counting from "0", so + // that in the expression T[last], the "last" index actually is one less than the + // "buckets" number in the table, i.e. "last = RawTableInner.bucket_mask"). + // For example for 5th element in table calculation is performed like this: + // + // mem::size_of::() + // | + // | `self = from_base_index(base, 5)` that returns pointer + // | that points here in tha data part of the table + // | (to the end of T5) + // | | `base: NonNull` must point here + // v | (to the end of T0 or to the start of C0) + // /???\ v v + // [Padding], Tlast, ..., |T10|, ..., T5|, T4, T3, T2, T1, T0, |C0, C1, C2, C3, C4, C5, ..., C10, ..., Clast + // \__________ __________/ + // \/ + // `bucket.to_base_index(base)` = 5 + // (base.as_ptr() as usize - self.ptr.as_ptr() as usize) / mem::size_of::() + // + // where: T0...Tlast - our stored data; C0...Clast - control bytes or metadata for data. + if T::IS_ZERO_SIZED { + // this can not be UB + self.ptr.as_ptr() as usize - 1 + } else { + offset_from(base.as_ptr(), self.ptr.as_ptr()) + } + } + + /// Acquires the underlying raw pointer `*mut T` to `data`. + /// + /// # Note + /// + /// If `T` is not [`Copy`], do not use `*mut T` methods that can cause calling the + /// destructor of `T` (for example the [`<*mut T>::drop_in_place`] method), because + /// for properly dropping the data we also need to clear `data` control bytes. If we + /// drop data, but do not clear `data control byte` it leads to double drop when + /// [`RawTable`] goes out of scope. + /// + /// If you modify an already initialized `value`, so [`Hash`] and [`Eq`] on the new + /// `T` value and its borrowed form *must* match those for the old `T` value, as the map + /// will not re-evaluate where the new value should go, meaning the value may become + /// "lost" if their location does not reflect their state. + /// + /// [`RawTable`]: crate::raw::RawTable + /// [`<*mut T>::drop_in_place`]: https://doc.rust-lang.org/core/primitive.pointer.html#method.drop_in_place + /// [`Hash`]: https://doc.rust-lang.org/core/hash/trait.Hash.html + /// [`Eq`]: https://doc.rust-lang.org/core/cmp/trait.Eq.html + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "raw")] + /// # fn test() { + /// use core::hash::{BuildHasher, Hash}; + /// use hashbrown::raw::{Bucket, RawTable}; + /// + /// type NewHashBuilder = core::hash::BuildHasherDefault; + /// + /// fn make_hash(hash_builder: &S, key: &K) -> u64 { + /// use core::hash::Hasher; + /// let mut state = hash_builder.build_hasher(); + /// key.hash(&mut state); + /// state.finish() + /// } + /// + /// let hash_builder = NewHashBuilder::default(); + /// let mut table = RawTable::new(); + /// + /// let value = ("a", 100); + /// let hash = make_hash(&hash_builder, &value.0); + /// + /// table.insert(hash, value.clone(), |val| make_hash(&hash_builder, &val.0)); + /// + /// let bucket: Bucket<(&str, i32)> = table.find(hash, |(k1, _)| k1 == &value.0).unwrap(); + /// + /// assert_eq!(unsafe { &*bucket.as_ptr() }, &("a", 100)); + /// # } + /// # fn main() { + /// # #[cfg(feature = "raw")] + /// # test() + /// # } + /// ``` + #[inline] + pub fn as_ptr(&self) -> *mut T { + if T::IS_ZERO_SIZED { + // Just return an arbitrary ZST pointer which is properly aligned + // invalid pointer is good enough for ZST + invalid_mut(mem::align_of::()) + } else { + unsafe { self.ptr.as_ptr().sub(1) } + } + } + + /// Create a new [`Bucket`] that is offset from the `self` by the given + /// `offset`. The pointer calculation is performed by calculating the + /// offset from `self` pointer (convenience for `self.ptr.as_ptr().sub(offset)`). + /// This function is used for iterators. + /// + /// `offset` is in units of `T`; e.g., a `offset` of 3 represents a pointer + /// offset of `3 * size_of::()` bytes. + /// + /// # Safety + /// + /// If `mem::size_of::() != 0`, then the safety rules are directly derived + /// from the safety rules for [`<*mut T>::sub`] method of `*mut T` and safety + /// rules of [`NonNull::new_unchecked`] function. + /// + /// Thus, in order to uphold the safety contracts for [`<*mut T>::sub`] method + /// and [`NonNull::new_unchecked`] function, as well as for the correct + /// logic of the work of this crate, the following rules are necessary and + /// sufficient: + /// + /// * `self` contained pointer must not be `dangling`; + /// + /// * `self.to_base_index() + ofset` must not be greater than `RawTableInner.bucket_mask`, + /// i.e. `(self.to_base_index() + ofset) <= RawTableInner.bucket_mask` or, in other + /// words, `self.to_base_index() + ofset + 1` must be no greater than the number returned + /// by the function [`RawTable::buckets`] or [`RawTableInner::buckets`]. + /// + /// If `mem::size_of::() == 0`, then the only requirement is that the + /// `self.to_base_index() + ofset` must not be greater than `RawTableInner.bucket_mask`, + /// i.e. `(self.to_base_index() + ofset) <= RawTableInner.bucket_mask` or, in other words, + /// `self.to_base_index() + ofset + 1` must be no greater than the number returned by the + /// function [`RawTable::buckets`] or [`RawTableInner::buckets`]. + /// + /// [`Bucket`]: crate::raw::Bucket + /// [`<*mut T>::sub`]: https://doc.rust-lang.org/core/primitive.pointer.html#method.sub-1 + /// [`NonNull::new_unchecked`]: https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.new_unchecked + /// [`RawTable::buckets`]: crate::raw::RawTable::buckets + /// [`RawTableInner::buckets`]: RawTableInner::buckets + #[inline] + unsafe fn next_n(&self, offset: usize) -> Self { + let ptr = if T::IS_ZERO_SIZED { + // invalid pointer is good enough for ZST + invalid_mut(self.ptr.as_ptr() as usize + offset) + } else { + self.ptr.as_ptr().sub(offset) + }; + Self { + ptr: NonNull::new_unchecked(ptr), + } + } + + /// Executes the destructor (if any) of the pointed-to `data`. + /// + /// # Safety + /// + /// See [`ptr::drop_in_place`] for safety concerns. + /// + /// You should use [`RawTable::erase`] instead of this function, + /// or be careful with calling this function directly, because for + /// properly dropping the data we need also clear `data` control bytes. + /// If we drop data, but do not erase `data control byte` it leads to + /// double drop when [`RawTable`] goes out of scope. + /// + /// [`ptr::drop_in_place`]: https://doc.rust-lang.org/core/ptr/fn.drop_in_place.html + /// [`RawTable`]: crate::raw::RawTable + /// [`RawTable::erase`]: crate::raw::RawTable::erase + #[cfg_attr(feature = "inline-more", inline)] + pub(crate) unsafe fn drop(&self) { + self.as_ptr().drop_in_place(); + } + + /// Reads the `value` from `self` without moving it. This leaves the + /// memory in `self` unchanged. + /// + /// # Safety + /// + /// See [`ptr::read`] for safety concerns. + /// + /// You should use [`RawTable::remove`] instead of this function, + /// or be careful with calling this function directly, because compiler + /// calls its destructor when readed `value` goes out of scope. It + /// can cause double dropping when [`RawTable`] goes out of scope, + /// because of not erased `data control byte`. + /// + /// [`ptr::read`]: https://doc.rust-lang.org/core/ptr/fn.read.html + /// [`RawTable`]: crate::raw::RawTable + /// [`RawTable::remove`]: crate::raw::RawTable::remove + #[inline] + pub(crate) unsafe fn read(&self) -> T { + self.as_ptr().read() + } + + /// Overwrites a memory location with the given `value` without reading + /// or dropping the old value (like [`ptr::write`] function). + /// + /// # Safety + /// + /// See [`ptr::write`] for safety concerns. + /// + /// # Note + /// + /// [`Hash`] and [`Eq`] on the new `T` value and its borrowed form *must* match + /// those for the old `T` value, as the map will not re-evaluate where the new + /// value should go, meaning the value may become "lost" if their location + /// does not reflect their state. + /// + /// [`ptr::write`]: https://doc.rust-lang.org/core/ptr/fn.write.html + /// [`Hash`]: https://doc.rust-lang.org/core/hash/trait.Hash.html + /// [`Eq`]: https://doc.rust-lang.org/core/cmp/trait.Eq.html + #[inline] + pub(crate) unsafe fn write(&self, val: T) { + self.as_ptr().write(val); + } + + /// Returns a shared immutable reference to the `value`. + /// + /// # Safety + /// + /// See [`NonNull::as_ref`] for safety concerns. + /// + /// [`NonNull::as_ref`]: https://doc.rust-lang.org/core/ptr/struct.NonNull.html#method.as_ref + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "raw")] + /// # fn test() { + /// use core::hash::{BuildHasher, Hash}; + /// use hashbrown::raw::{Bucket, RawTable}; + /// + /// type NewHashBuilder = core::hash::BuildHasherDefault; + /// + /// fn make_hash(hash_builder: &S, key: &K) -> u64 { + /// use core::hash::Hasher; + /// let mut state = hash_builder.build_hasher(); + /// key.hash(&mut state); + /// state.finish() + /// } + /// + /// let hash_builder = NewHashBuilder::default(); + /// let mut table = RawTable::new(); + /// + /// let value: (&str, String) = ("A pony", "is a small horse".to_owned()); + /// let hash = make_hash(&hash_builder, &value.0); + /// + /// table.insert(hash, value.clone(), |val| make_hash(&hash_builder, &val.0)); + /// + /// let bucket: Bucket<(&str, String)> = table.find(hash, |(k, _)| k == &value.0).unwrap(); + /// + /// assert_eq!( + /// unsafe { bucket.as_ref() }, + /// &("A pony", "is a small horse".to_owned()) + /// ); + /// # } + /// # fn main() { + /// # #[cfg(feature = "raw")] + /// # test() + /// # } + /// ``` + #[inline] + pub unsafe fn as_ref<'a>(&self) -> &'a T { + &*self.as_ptr() + } + + /// Returns a unique mutable reference to the `value`. + /// + /// # Safety + /// + /// See [`NonNull::as_mut`] for safety concerns. + /// + /// # Note + /// + /// [`Hash`] and [`Eq`] on the new `T` value and its borrowed form *must* match + /// those for the old `T` value, as the map will not re-evaluate where the new + /// value should go, meaning the value may become "lost" if their location + /// does not reflect their state. + /// + /// [`NonNull::as_mut`]: https://doc.rust-lang.org/core/ptr/struct.NonNull.html#method.as_mut + /// [`Hash`]: https://doc.rust-lang.org/core/hash/trait.Hash.html + /// [`Eq`]: https://doc.rust-lang.org/core/cmp/trait.Eq.html + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "raw")] + /// # fn test() { + /// use core::hash::{BuildHasher, Hash}; + /// use hashbrown::raw::{Bucket, RawTable}; + /// + /// type NewHashBuilder = core::hash::BuildHasherDefault; + /// + /// fn make_hash(hash_builder: &S, key: &K) -> u64 { + /// use core::hash::Hasher; + /// let mut state = hash_builder.build_hasher(); + /// key.hash(&mut state); + /// state.finish() + /// } + /// + /// let hash_builder = NewHashBuilder::default(); + /// let mut table = RawTable::new(); + /// + /// let value: (&str, String) = ("A pony", "is a small horse".to_owned()); + /// let hash = make_hash(&hash_builder, &value.0); + /// + /// table.insert(hash, value.clone(), |val| make_hash(&hash_builder, &val.0)); + /// + /// let bucket: Bucket<(&str, String)> = table.find(hash, |(k, _)| k == &value.0).unwrap(); + /// + /// unsafe { + /// bucket + /// .as_mut() + /// .1 + /// .push_str(" less than 147 cm at the withers") + /// }; + /// assert_eq!( + /// unsafe { bucket.as_ref() }, + /// &( + /// "A pony", + /// "is a small horse less than 147 cm at the withers".to_owned() + /// ) + /// ); + /// # } + /// # fn main() { + /// # #[cfg(feature = "raw")] + /// # test() + /// # } + /// ``` + #[inline] + pub unsafe fn as_mut<'a>(&self) -> &'a mut T { + &mut *self.as_ptr() + } + + /// Copies `size_of` bytes from `other` to `self`. The source + /// and destination may *not* overlap. + /// + /// # Safety + /// + /// See [`ptr::copy_nonoverlapping`] for safety concerns. + /// + /// Like [`read`], `copy_nonoverlapping` creates a bitwise copy of `T`, regardless of + /// whether `T` is [`Copy`]. If `T` is not [`Copy`], using *both* the values + /// in the region beginning at `*self` and the region beginning at `*other` can + /// [violate memory safety]. + /// + /// # Note + /// + /// [`Hash`] and [`Eq`] on the new `T` value and its borrowed form *must* match + /// those for the old `T` value, as the map will not re-evaluate where the new + /// value should go, meaning the value may become "lost" if their location + /// does not reflect their state. + /// + /// [`ptr::copy_nonoverlapping`]: https://doc.rust-lang.org/core/ptr/fn.copy_nonoverlapping.html + /// [`read`]: https://doc.rust-lang.org/core/ptr/fn.read.html + /// [violate memory safety]: https://doc.rust-lang.org/std/ptr/fn.read.html#ownership-of-the-returned-value + /// [`Hash`]: https://doc.rust-lang.org/core/hash/trait.Hash.html + /// [`Eq`]: https://doc.rust-lang.org/core/cmp/trait.Eq.html + #[cfg(feature = "raw")] + #[inline] + pub unsafe fn copy_from_nonoverlapping(&self, other: &Self) { + self.as_ptr().copy_from_nonoverlapping(other.as_ptr(), 1); + } +} + +/// A raw hash table with an unsafe API. +pub struct RawTable { + table: RawTableInner, + alloc: A, + // Tell dropck that we own instances of T. + marker: PhantomData, +} + +/// Non-generic part of `RawTable` which allows functions to be instantiated only once regardless +/// of how many different key-value types are used. +struct RawTableInner { + // Mask to get an index from a hash value. The value is one less than the + // number of buckets in the table. + bucket_mask: usize, + + // [Padding], T1, T2, ..., Tlast, C1, C2, ... + // ^ points here + ctrl: NonNull, + + // Number of elements that can be inserted before we need to grow the table + growth_left: usize, + + // Number of elements in the table, only really used by len() + items: usize, +} + +impl RawTable { + /// Creates a new empty hash table without allocating any memory. + /// + /// In effect this returns a table with exactly 1 bucket. However we can + /// leave the data pointer dangling since that bucket is never written to + /// due to our load factor forcing us to always have at least 1 free bucket. + #[inline] + pub const fn new() -> Self { + Self { + table: RawTableInner::NEW, + alloc: Global, + marker: PhantomData, + } + } + + /// Attempts to allocate a new hash table with at least enough capacity + /// for inserting the given number of elements without reallocating. + #[cfg(feature = "raw")] + pub fn try_with_capacity(capacity: usize) -> Result { + Self::try_with_capacity_in(capacity, Global) + } + + /// Allocates a new hash table with at least enough capacity for inserting + /// the given number of elements without reallocating. + pub fn with_capacity(capacity: usize) -> Self { + Self::with_capacity_in(capacity, Global) + } +} + +impl RawTable { + const TABLE_LAYOUT: TableLayout = TableLayout::new::(); + + /// Creates a new empty hash table without allocating any memory, using the + /// given allocator. + /// + /// In effect this returns a table with exactly 1 bucket. However we can + /// leave the data pointer dangling since that bucket is never written to + /// due to our load factor forcing us to always have at least 1 free bucket. + #[inline] + pub const fn new_in(alloc: A) -> Self { + Self { + table: RawTableInner::NEW, + alloc, + marker: PhantomData, + } + } + + /// Allocates a new hash table with the given number of buckets. + /// + /// The control bytes are left uninitialized. + #[cfg_attr(feature = "inline-more", inline)] + unsafe fn new_uninitialized( + alloc: A, + buckets: usize, + fallibility: Fallibility, + ) -> Result { + debug_assert!(buckets.is_power_of_two()); + + Ok(Self { + table: RawTableInner::new_uninitialized( + &alloc, + Self::TABLE_LAYOUT, + buckets, + fallibility, + )?, + alloc, + marker: PhantomData, + }) + } + + /// Attempts to allocate a new hash table using the given allocator, with at least enough + /// capacity for inserting the given number of elements without reallocating. + #[cfg(feature = "raw")] + pub fn try_with_capacity_in(capacity: usize, alloc: A) -> Result { + Ok(Self { + table: RawTableInner::fallible_with_capacity( + &alloc, + Self::TABLE_LAYOUT, + capacity, + Fallibility::Fallible, + )?, + alloc, + marker: PhantomData, + }) + } + + /// Allocates a new hash table using the given allocator, with at least enough capacity for + /// inserting the given number of elements without reallocating. + pub fn with_capacity_in(capacity: usize, alloc: A) -> Self { + Self { + table: RawTableInner::with_capacity(&alloc, Self::TABLE_LAYOUT, capacity), + alloc, + marker: PhantomData, + } + } + + /// Returns a reference to the underlying allocator. + #[inline] + pub fn allocator(&self) -> &A { + &self.alloc + } + + /// Returns pointer to one past last `data` element in the table as viewed from + /// the start point of the allocation. + /// + /// The caller must ensure that the `RawTable` outlives the returned [`NonNull`], + /// otherwise using it may result in [`undefined behavior`]. + /// + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + pub fn data_end(&self) -> NonNull { + // `self.table.ctrl.cast()` returns pointer that + // points here (to the end of `T0`) + // ∨ + // [Pad], T_n, ..., T1, T0, |CT0, CT1, ..., CT_n|, CTa_0, CTa_1, ..., CTa_m + // \________ ________/ + // \/ + // `n = buckets - 1`, i.e. `RawTable::buckets() - 1` + // + // where: T0...T_n - our stored data; + // CT0...CT_n - control bytes or metadata for `data`. + // CTa_0...CTa_m - additional control bytes, where `m = Group::WIDTH - 1` (so that the search + // with loading `Group` bytes from the heap works properly, even if the result + // of `h1(hash) & self.bucket_mask` is equal to `self.bucket_mask`). See also + // `RawTableInner::set_ctrl` function. + // + // P.S. `h1(hash) & self.bucket_mask` is the same as `hash as usize % self.buckets()` because the number + // of buckets is a power of two, and `self.bucket_mask = self.buckets() - 1`. + self.table.ctrl.cast() + } + + /// Returns pointer to start of data table. + #[inline] + #[cfg(any(feature = "raw", feature = "nightly"))] + pub unsafe fn data_start(&self) -> NonNull { + NonNull::new_unchecked(self.data_end().as_ptr().wrapping_sub(self.buckets())) + } + + /// Return the information about memory allocated by the table. + /// + /// `RawTable` allocates single memory block to store both data and metadata. + /// This function returns allocation size and alignment and the beginning of the area. + /// These are the arguments which will be passed to `dealloc` when the table is dropped. + /// + /// This function might be useful for memory profiling. + #[inline] + #[cfg(feature = "raw")] + pub fn allocation_info(&self) -> (NonNull, Layout) { + // SAFETY: We use the same `table_layout` that was used to allocate + // this table. + unsafe { self.table.allocation_info_or_zero(Self::TABLE_LAYOUT) } + } + + /// Returns the index of a bucket from a `Bucket`. + #[inline] + pub unsafe fn bucket_index(&self, bucket: &Bucket) -> usize { + bucket.to_base_index(self.data_end()) + } + + /// Returns a pointer to an element in the table. + /// + /// The caller must ensure that the `RawTable` outlives the returned [`Bucket`], + /// otherwise using it may result in [`undefined behavior`]. + /// + /// # Safety + /// + /// If `mem::size_of::() != 0`, then the caller of this function must observe the + /// following safety rules: + /// + /// * The table must already be allocated; + /// + /// * The `index` must not be greater than the number returned by the [`RawTable::buckets`] + /// function, i.e. `(index + 1) <= self.buckets()`. + /// + /// It is safe to call this function with index of zero (`index == 0`) on a table that has + /// not been allocated, but using the returned [`Bucket`] results in [`undefined behavior`]. + /// + /// If `mem::size_of::() == 0`, then the only requirement is that the `index` must + /// not be greater than the number returned by the [`RawTable::buckets`] function, i.e. + /// `(index + 1) <= self.buckets()`. + /// + /// [`RawTable::buckets`]: RawTable::buckets + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + pub unsafe fn bucket(&self, index: usize) -> Bucket { + // If mem::size_of::() != 0 then return a pointer to the `element` in the `data part` of the table + // (we start counting from "0", so that in the expression T[n], the "n" index actually one less than + // the "buckets" number of our `RawTable`, i.e. "n = RawTable::buckets() - 1"): + // + // `table.bucket(3).as_ptr()` returns a pointer that points here in the `data` + // part of the `RawTable`, i.e. to the start of T3 (see `Bucket::as_ptr`) + // | + // | `base = self.data_end()` points here + // | (to the start of CT0 or to the end of T0) + // v v + // [Pad], T_n, ..., |T3|, T2, T1, T0, |CT0, CT1, CT2, CT3, ..., CT_n, CTa_0, CTa_1, ..., CTa_m + // ^ \__________ __________/ + // `table.bucket(3)` returns a pointer that points \/ + // here in the `data` part of the `RawTable` (to additional control bytes + // the end of T3) `m = Group::WIDTH - 1` + // + // where: T0...T_n - our stored data; + // CT0...CT_n - control bytes or metadata for `data`; + // CTa_0...CTa_m - additional control bytes (so that the search with loading `Group` bytes from + // the heap works properly, even if the result of `h1(hash) & self.table.bucket_mask` + // is equal to `self.table.bucket_mask`). See also `RawTableInner::set_ctrl` function. + // + // P.S. `h1(hash) & self.table.bucket_mask` is the same as `hash as usize % self.buckets()` because the number + // of buckets is a power of two, and `self.table.bucket_mask = self.buckets() - 1`. + debug_assert_ne!(self.table.bucket_mask, 0); + debug_assert!(index < self.buckets()); + Bucket::from_base_index(self.data_end(), index) + } + + /// Erases an element from the table without dropping it. + #[cfg_attr(feature = "inline-more", inline)] + unsafe fn erase_no_drop(&mut self, item: &Bucket) { + let index = self.bucket_index(item); + self.table.erase(index); + } + + /// Erases an element from the table, dropping it in place. + #[cfg_attr(feature = "inline-more", inline)] + #[allow(clippy::needless_pass_by_value)] + pub unsafe fn erase(&mut self, item: Bucket) { + // Erase the element from the table first since drop might panic. + self.erase_no_drop(&item); + item.drop(); + } + + /// Finds and erases an element from the table, dropping it in place. + /// Returns true if an element was found. + #[cfg(feature = "raw")] + #[cfg_attr(feature = "inline-more", inline)] + pub fn erase_entry(&mut self, hash: u64, eq: impl FnMut(&T) -> bool) -> bool { + // Avoid `Option::map` because it bloats LLVM IR. + if let Some(bucket) = self.find(hash, eq) { + unsafe { + self.erase(bucket); + } + true + } else { + false + } + } + + /// Removes an element from the table, returning it. + /// + /// This also returns an `InsertSlot` pointing to the newly free bucket. + #[cfg_attr(feature = "inline-more", inline)] + #[allow(clippy::needless_pass_by_value)] + pub unsafe fn remove(&mut self, item: Bucket) -> (T, InsertSlot) { + self.erase_no_drop(&item); + ( + item.read(), + InsertSlot { + index: self.bucket_index(&item), + }, + ) + } + + /// Finds and removes an element from the table, returning it. + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove_entry(&mut self, hash: u64, eq: impl FnMut(&T) -> bool) -> Option { + // Avoid `Option::map` because it bloats LLVM IR. + match self.find(hash, eq) { + Some(bucket) => Some(unsafe { self.remove(bucket).0 }), + None => None, + } + } + + /// Marks all table buckets as empty without dropping their contents. + #[cfg_attr(feature = "inline-more", inline)] + pub fn clear_no_drop(&mut self) { + self.table.clear_no_drop(); + } + + /// Removes all elements from the table without freeing the backing memory. + #[cfg_attr(feature = "inline-more", inline)] + pub fn clear(&mut self) { + if self.is_empty() { + // Special case empty table to avoid surprising O(capacity) time. + return; + } + // Ensure that the table is reset even if one of the drops panic + let mut self_ = guard(self, |self_| self_.clear_no_drop()); + unsafe { + // SAFETY: ScopeGuard sets to zero the `items` field of the table + // even in case of panic during the dropping of the elements so + // that there will be no double drop of the elements. + self_.table.drop_elements::(); + } + } + + /// Shrinks the table to fit `max(self.len(), min_size)` elements. + #[cfg_attr(feature = "inline-more", inline)] + pub fn shrink_to(&mut self, min_size: usize, hasher: impl Fn(&T) -> u64) { + // Calculate the minimal number of elements that we need to reserve + // space for. + let min_size = usize::max(self.table.items, min_size); + if min_size == 0 { + let mut old_inner = mem::replace(&mut self.table, RawTableInner::NEW); + unsafe { + // SAFETY: + // 1. We call the function only once; + // 2. We know for sure that `alloc` and `table_layout` matches the [`Allocator`] + // and [`TableLayout`] that were used to allocate this table. + // 3. If any elements' drop function panics, then there will only be a memory leak, + // because we have replaced the inner table with a new one. + old_inner.drop_inner_table::(&self.alloc, Self::TABLE_LAYOUT); + } + return; + } + + // Calculate the number of buckets that we need for this number of + // elements. If the calculation overflows then the requested bucket + // count must be larger than what we have right and nothing needs to be + // done. + let min_buckets = match capacity_to_buckets(min_size) { + Some(buckets) => buckets, + None => return, + }; + + // If we have more buckets than we need, shrink the table. + if min_buckets < self.buckets() { + // Fast path if the table is empty + if self.table.items == 0 { + let new_inner = + RawTableInner::with_capacity(&self.alloc, Self::TABLE_LAYOUT, min_size); + let mut old_inner = mem::replace(&mut self.table, new_inner); + unsafe { + // SAFETY: + // 1. We call the function only once; + // 2. We know for sure that `alloc` and `table_layout` matches the [`Allocator`] + // and [`TableLayout`] that were used to allocate this table. + // 3. If any elements' drop function panics, then there will only be a memory leak, + // because we have replaced the inner table with a new one. + old_inner.drop_inner_table::(&self.alloc, Self::TABLE_LAYOUT); + } + } else { + // Avoid `Result::unwrap_or_else` because it bloats LLVM IR. + unsafe { + // SAFETY: + // 1. We know for sure that `min_size >= self.table.items`. + // 2. The [`RawTableInner`] must already have properly initialized control bytes since + // we will never expose RawTable::new_uninitialized in a public API. + if self + .resize(min_size, hasher, Fallibility::Infallible) + .is_err() + { + // SAFETY: The result of calling the `resize` function cannot be an error + // because `fallibility == Fallibility::Infallible. + hint::unreachable_unchecked() + } + } + } + } + } + + /// Ensures that at least `additional` items can be inserted into the table + /// without reallocation. + #[cfg_attr(feature = "inline-more", inline)] + pub fn reserve(&mut self, additional: usize, hasher: impl Fn(&T) -> u64) { + if unlikely(additional > self.table.growth_left) { + // Avoid `Result::unwrap_or_else` because it bloats LLVM IR. + unsafe { + // SAFETY: The [`RawTableInner`] must already have properly initialized control + // bytes since we will never expose RawTable::new_uninitialized in a public API. + if self + .reserve_rehash(additional, hasher, Fallibility::Infallible) + .is_err() + { + // SAFETY: All allocation errors will be caught inside `RawTableInner::reserve_rehash`. + hint::unreachable_unchecked() + } + } + } + } + + /// Tries to ensure that at least `additional` items can be inserted into + /// the table without reallocation. + #[cfg_attr(feature = "inline-more", inline)] + pub fn try_reserve( + &mut self, + additional: usize, + hasher: impl Fn(&T) -> u64, + ) -> Result<(), TryReserveError> { + if additional > self.table.growth_left { + // SAFETY: The [`RawTableInner`] must already have properly initialized control + // bytes since we will never expose RawTable::new_uninitialized in a public API. + unsafe { self.reserve_rehash(additional, hasher, Fallibility::Fallible) } + } else { + Ok(()) + } + } + + /// Out-of-line slow path for `reserve` and `try_reserve`. + /// + /// # Safety + /// + /// The [`RawTableInner`] must have properly initialized control bytes, + /// otherwise calling this function results in [`undefined behavior`] + /// + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[cold] + #[inline(never)] + unsafe fn reserve_rehash( + &mut self, + additional: usize, + hasher: impl Fn(&T) -> u64, + fallibility: Fallibility, + ) -> Result<(), TryReserveError> { + unsafe { + // SAFETY: + // 1. We know for sure that `alloc` and `layout` matches the [`Allocator`] and + // [`TableLayout`] that were used to allocate this table. + // 2. The `drop` function is the actual drop function of the elements stored in + // the table. + // 3. The caller ensures that the control bytes of the `RawTableInner` + // are already initialized. + self.table.reserve_rehash_inner( + &self.alloc, + additional, + &|table, index| hasher(table.bucket::(index).as_ref()), + fallibility, + Self::TABLE_LAYOUT, + if T::NEEDS_DROP { + Some(mem::transmute(ptr::drop_in_place:: as unsafe fn(*mut T))) + } else { + None + }, + ) + } + } + + /// Allocates a new table of a different size and moves the contents of the + /// current table into it. + /// + /// # Safety + /// + /// The [`RawTableInner`] must have properly initialized control bytes, + /// otherwise calling this function results in [`undefined behavior`] + /// + /// The caller of this function must ensure that `capacity >= self.table.items` + /// otherwise: + /// + /// * If `self.table.items != 0`, calling of this function with `capacity` + /// equal to 0 (`capacity == 0`) results in [`undefined behavior`]. + /// + /// * If `capacity_to_buckets(capacity) < Group::WIDTH` and + /// `self.table.items > capacity_to_buckets(capacity)` + /// calling this function results in [`undefined behavior`]. + /// + /// * If `capacity_to_buckets(capacity) >= Group::WIDTH` and + /// `self.table.items > capacity_to_buckets(capacity)` + /// calling this function are never return (will go into an + /// infinite loop). + /// + /// See [`RawTableInner::find_insert_slot`] for more information. + /// + /// [`RawTableInner::find_insert_slot`]: RawTableInner::find_insert_slot + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + unsafe fn resize( + &mut self, + capacity: usize, + hasher: impl Fn(&T) -> u64, + fallibility: Fallibility, + ) -> Result<(), TryReserveError> { + // SAFETY: + // 1. The caller of this function guarantees that `capacity >= self.table.items`. + // 2. We know for sure that `alloc` and `layout` matches the [`Allocator`] and + // [`TableLayout`] that were used to allocate this table. + // 3. The caller ensures that the control bytes of the `RawTableInner` + // are already initialized. + self.table.resize_inner( + &self.alloc, + capacity, + &|table, index| hasher(table.bucket::(index).as_ref()), + fallibility, + Self::TABLE_LAYOUT, + ) + } + + /// Inserts a new element into the table, and returns its raw bucket. + /// + /// This does not check if the given element already exists in the table. + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(&mut self, hash: u64, value: T, hasher: impl Fn(&T) -> u64) -> Bucket { + unsafe { + // SAFETY: + // 1. The [`RawTableInner`] must already have properly initialized control bytes since + // we will never expose `RawTable::new_uninitialized` in a public API. + // + // 2. We reserve additional space (if necessary) right after calling this function. + let mut slot = self.table.find_insert_slot(hash); + + // We can avoid growing the table once we have reached our load factor if we are replacing + // a tombstone. This works since the number of EMPTY slots does not change in this case. + // + // SAFETY: The function is guaranteed to return [`InsertSlot`] that contains an index + // in the range `0..=self.buckets()`. + let old_ctrl = *self.table.ctrl(slot.index); + if unlikely(self.table.growth_left == 0 && special_is_empty(old_ctrl)) { + self.reserve(1, hasher); + // SAFETY: We know for sure that `RawTableInner` has control bytes + // initialized and that there is extra space in the table. + slot = self.table.find_insert_slot(hash); + } + + self.insert_in_slot(hash, slot, value) + } + } + + /// Attempts to insert a new element without growing the table and return its raw bucket. + /// + /// Returns an `Err` containing the given element if inserting it would require growing the + /// table. + /// + /// This does not check if the given element already exists in the table. + #[cfg(feature = "raw")] + #[cfg_attr(feature = "inline-more", inline)] + pub fn try_insert_no_grow(&mut self, hash: u64, value: T) -> Result, T> { + unsafe { + match self.table.prepare_insert_no_grow(hash) { + Ok(index) => { + let bucket = self.bucket(index); + bucket.write(value); + Ok(bucket) + } + Err(()) => Err(value), + } + } + } + + /// Inserts a new element into the table, and returns a mutable reference to it. + /// + /// This does not check if the given element already exists in the table. + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert_entry(&mut self, hash: u64, value: T, hasher: impl Fn(&T) -> u64) -> &mut T { + unsafe { self.insert(hash, value, hasher).as_mut() } + } + + /// Inserts a new element into the table, without growing the table. + /// + /// There must be enough space in the table to insert the new element. + /// + /// This does not check if the given element already exists in the table. + #[cfg_attr(feature = "inline-more", inline)] + #[cfg(any(feature = "raw", feature = "rustc-internal-api"))] + pub unsafe fn insert_no_grow(&mut self, hash: u64, value: T) -> Bucket { + let (index, old_ctrl) = self.table.prepare_insert_slot(hash); + let bucket = self.table.bucket(index); + + // If we are replacing a DELETED entry then we don't need to update + // the load counter. + self.table.growth_left -= special_is_empty(old_ctrl) as usize; + + bucket.write(value); + self.table.items += 1; + bucket + } + + /// Temporary removes a bucket, applying the given function to the removed + /// element and optionally put back the returned value in the same bucket. + /// + /// Returns `true` if the bucket still contains an element + /// + /// This does not check if the given bucket is actually occupied. + #[cfg_attr(feature = "inline-more", inline)] + pub unsafe fn replace_bucket_with(&mut self, bucket: Bucket, f: F) -> bool + where + F: FnOnce(T) -> Option, + { + let index = self.bucket_index(&bucket); + let old_ctrl = *self.table.ctrl(index); + debug_assert!(self.is_bucket_full(index)); + let old_growth_left = self.table.growth_left; + let item = self.remove(bucket).0; + if let Some(new_item) = f(item) { + self.table.growth_left = old_growth_left; + self.table.set_ctrl(index, old_ctrl); + self.table.items += 1; + self.bucket(index).write(new_item); + true + } else { + false + } + } + + /// Searches for an element in the table. If the element is not found, + /// returns `Err` with the position of a slot where an element with the + /// same hash could be inserted. + /// + /// This function may resize the table if additional space is required for + /// inserting an element. + #[inline] + pub fn find_or_find_insert_slot( + &mut self, + hash: u64, + mut eq: impl FnMut(&T) -> bool, + hasher: impl Fn(&T) -> u64, + ) -> Result, InsertSlot> { + self.reserve(1, hasher); + + unsafe { + // SAFETY: + // 1. We know for sure that there is at least one empty `bucket` in the table. + // 2. The [`RawTableInner`] must already have properly initialized control bytes since we will + // never expose `RawTable::new_uninitialized` in a public API. + // 3. The `find_or_find_insert_slot_inner` function returns the `index` of only the full bucket, + // which is in the range `0..self.buckets()` (since there is at least one empty `bucket` in + // the table), so calling `self.bucket(index)` and `Bucket::as_ref` is safe. + match self + .table + .find_or_find_insert_slot_inner(hash, &mut |index| eq(self.bucket(index).as_ref())) + { + // SAFETY: See explanation above. + Ok(index) => Ok(self.bucket(index)), + Err(slot) => Err(slot), + } + } + } + + /// Inserts a new element into the table in the given slot, and returns its + /// raw bucket. + /// + /// # Safety + /// + /// `slot` must point to a slot previously returned by + /// `find_or_find_insert_slot`, and no mutation of the table must have + /// occurred since that call. + #[inline] + pub unsafe fn insert_in_slot(&mut self, hash: u64, slot: InsertSlot, value: T) -> Bucket { + let old_ctrl = *self.table.ctrl(slot.index); + self.table.record_item_insert_at(slot.index, old_ctrl, hash); + + let bucket = self.bucket(slot.index); + bucket.write(value); + bucket + } + + /// Searches for an element in the table. + #[inline] + pub fn find(&self, hash: u64, mut eq: impl FnMut(&T) -> bool) -> Option> { + unsafe { + // SAFETY: + // 1. The [`RawTableInner`] must already have properly initialized control bytes since we + // will never expose `RawTable::new_uninitialized` in a public API. + // 1. The `find_inner` function returns the `index` of only the full bucket, which is in + // the range `0..self.buckets()`, so calling `self.bucket(index)` and `Bucket::as_ref` + // is safe. + let result = self + .table + .find_inner(hash, &mut |index| eq(self.bucket(index).as_ref())); + + // Avoid `Option::map` because it bloats LLVM IR. + match result { + // SAFETY: See explanation above. + Some(index) => Some(self.bucket(index)), + None => None, + } + } + } + + /// Gets a reference to an element in the table. + #[inline] + pub fn get(&self, hash: u64, eq: impl FnMut(&T) -> bool) -> Option<&T> { + // Avoid `Option::map` because it bloats LLVM IR. + match self.find(hash, eq) { + Some(bucket) => Some(unsafe { bucket.as_ref() }), + None => None, + } + } + + /// Gets a mutable reference to an element in the table. + #[inline] + pub fn get_mut(&mut self, hash: u64, eq: impl FnMut(&T) -> bool) -> Option<&mut T> { + // Avoid `Option::map` because it bloats LLVM IR. + match self.find(hash, eq) { + Some(bucket) => Some(unsafe { bucket.as_mut() }), + None => None, + } + } + + /// Attempts to get mutable references to `N` entries in the table at once. + /// + /// Returns an array of length `N` with the results of each query. + /// + /// At most one mutable reference will be returned to any entry. `None` will be returned if any + /// of the hashes are duplicates. `None` will be returned if the hash is not found. + /// + /// The `eq` argument should be a closure such that `eq(i, k)` returns true if `k` is equal to + /// the `i`th key to be looked up. + pub fn get_many_mut( + &mut self, + hashes: [u64; N], + eq: impl FnMut(usize, &T) -> bool, + ) -> Option<[&'_ mut T; N]> { + unsafe { + let ptrs = self.get_many_mut_pointers(hashes, eq)?; + + for (i, &cur) in ptrs.iter().enumerate() { + if ptrs[..i].iter().any(|&prev| ptr::eq::(prev, cur)) { + return None; + } + } + // All bucket are distinct from all previous buckets so we're clear to return the result + // of the lookup. + + // TODO use `MaybeUninit::array_assume_init` here instead once that's stable. + Some(mem::transmute_copy(&ptrs)) + } + } + + pub unsafe fn get_many_unchecked_mut( + &mut self, + hashes: [u64; N], + eq: impl FnMut(usize, &T) -> bool, + ) -> Option<[&'_ mut T; N]> { + let ptrs = self.get_many_mut_pointers(hashes, eq)?; + Some(mem::transmute_copy(&ptrs)) + } + + unsafe fn get_many_mut_pointers( + &mut self, + hashes: [u64; N], + mut eq: impl FnMut(usize, &T) -> bool, + ) -> Option<[*mut T; N]> { + // TODO use `MaybeUninit::uninit_array` here instead once that's stable. + let mut outs: MaybeUninit<[*mut T; N]> = MaybeUninit::uninit(); + let outs_ptr = outs.as_mut_ptr(); + + for (i, &hash) in hashes.iter().enumerate() { + let cur = self.find(hash, |k| eq(i, k))?; + *(*outs_ptr).get_unchecked_mut(i) = cur.as_mut(); + } + + // TODO use `MaybeUninit::array_assume_init` here instead once that's stable. + Some(outs.assume_init()) + } + + /// Returns the number of elements the map can hold without reallocating. + /// + /// This number is a lower bound; the table might be able to hold + /// more, but is guaranteed to be able to hold at least this many. + #[inline] + pub fn capacity(&self) -> usize { + self.table.items + self.table.growth_left + } + + /// Returns the number of elements in the table. + #[inline] + pub fn len(&self) -> usize { + self.table.items + } + + /// Returns `true` if the table contains no elements. + #[inline] + pub fn is_empty(&self) -> bool { + self.len() == 0 + } + + /// Returns the number of buckets in the table. + #[inline] + pub fn buckets(&self) -> usize { + self.table.bucket_mask + 1 + } + + /// Checks whether the bucket at `index` is full. + /// + /// # Safety + /// + /// The caller must ensure `index` is less than the number of buckets. + #[inline] + pub unsafe fn is_bucket_full(&self, index: usize) -> bool { + self.table.is_bucket_full(index) + } + + /// Returns an iterator over every element in the table. It is up to + /// the caller to ensure that the `RawTable` outlives the `RawIter`. + /// Because we cannot make the `next` method unsafe on the `RawIter` + /// struct, we have to make the `iter` method unsafe. + #[inline] + pub unsafe fn iter(&self) -> RawIter { + // SAFETY: + // 1. The caller must uphold the safety contract for `iter` method. + // 2. The [`RawTableInner`] must already have properly initialized control bytes since + // we will never expose RawTable::new_uninitialized in a public API. + self.table.iter() + } + + /// Returns an iterator over occupied buckets that could match a given hash. + /// + /// `RawTable` only stores 7 bits of the hash value, so this iterator may + /// return items that have a hash value different than the one provided. You + /// should always validate the returned values before using them. + /// + /// It is up to the caller to ensure that the `RawTable` outlives the + /// `RawIterHash`. Because we cannot make the `next` method unsafe on the + /// `RawIterHash` struct, we have to make the `iter_hash` method unsafe. + #[cfg_attr(feature = "inline-more", inline)] + #[cfg(feature = "raw")] + pub unsafe fn iter_hash(&self, hash: u64) -> RawIterHash { + RawIterHash::new(self, hash) + } + + /// Returns an iterator which removes all elements from the table without + /// freeing the memory. + #[cfg_attr(feature = "inline-more", inline)] + pub fn drain(&mut self) -> RawDrain<'_, T, A> { + unsafe { + let iter = self.iter(); + self.drain_iter_from(iter) + } + } + + /// Returns an iterator which removes all elements from the table without + /// freeing the memory. + /// + /// Iteration starts at the provided iterator's current location. + /// + /// It is up to the caller to ensure that the iterator is valid for this + /// `RawTable` and covers all items that remain in the table. + #[cfg_attr(feature = "inline-more", inline)] + pub unsafe fn drain_iter_from(&mut self, iter: RawIter) -> RawDrain<'_, T, A> { + debug_assert_eq!(iter.len(), self.len()); + RawDrain { + iter, + table: mem::replace(&mut self.table, RawTableInner::NEW), + orig_table: NonNull::from(&mut self.table), + marker: PhantomData, + } + } + + /// Returns an iterator which consumes all elements from the table. + /// + /// Iteration starts at the provided iterator's current location. + /// + /// It is up to the caller to ensure that the iterator is valid for this + /// `RawTable` and covers all items that remain in the table. + pub unsafe fn into_iter_from(self, iter: RawIter) -> RawIntoIter { + debug_assert_eq!(iter.len(), self.len()); + + let allocation = self.into_allocation(); + RawIntoIter { + iter, + allocation, + marker: PhantomData, + } + } + + /// Converts the table into a raw allocation. The contents of the table + /// should be dropped using a `RawIter` before freeing the allocation. + #[cfg_attr(feature = "inline-more", inline)] + pub(crate) fn into_allocation(self) -> Option<(NonNull, Layout, A)> { + let alloc = if self.table.is_empty_singleton() { + None + } else { + // Avoid `Option::unwrap_or_else` because it bloats LLVM IR. + let (layout, ctrl_offset) = + match Self::TABLE_LAYOUT.calculate_layout_for(self.table.buckets()) { + Some(lco) => lco, + None => unsafe { hint::unreachable_unchecked() }, + }; + Some(( + unsafe { NonNull::new_unchecked(self.table.ctrl.as_ptr().sub(ctrl_offset)) }, + layout, + unsafe { ptr::read(&self.alloc) }, + )) + }; + mem::forget(self); + alloc + } +} + +unsafe impl Send for RawTable +where + T: Send, + A: Send, +{ +} +unsafe impl Sync for RawTable +where + T: Sync, + A: Sync, +{ +} + +impl RawTableInner { + const NEW: Self = RawTableInner::new(); + + /// Creates a new empty hash table without allocating any memory. + /// + /// In effect this returns a table with exactly 1 bucket. However we can + /// leave the data pointer dangling since that bucket is never accessed + /// due to our load factor forcing us to always have at least 1 free bucket. + #[inline] + const fn new() -> Self { + Self { + // Be careful to cast the entire slice to a raw pointer. + ctrl: unsafe { NonNull::new_unchecked(Group::static_empty() as *const _ as *mut u8) }, + bucket_mask: 0, + items: 0, + growth_left: 0, + } + } +} + +impl RawTableInner { + /// Allocates a new [`RawTableInner`] with the given number of buckets. + /// The control bytes and buckets are left uninitialized. + /// + /// # Safety + /// + /// The caller of this function must ensure that the `buckets` is power of two + /// and also initialize all control bytes of the length `self.bucket_mask + 1 + + /// Group::WIDTH` with the [`EMPTY`] bytes. + /// + /// See also [`Allocator`] API for other safety concerns. + /// + /// [`Allocator`]: https://doc.rust-lang.org/alloc/alloc/trait.Allocator.html + #[cfg_attr(feature = "inline-more", inline)] + unsafe fn new_uninitialized( + alloc: &A, + table_layout: TableLayout, + buckets: usize, + fallibility: Fallibility, + ) -> Result + where + A: Allocator, + { + debug_assert!(buckets.is_power_of_two()); + + // Avoid `Option::ok_or_else` because it bloats LLVM IR. + let (layout, ctrl_offset) = match table_layout.calculate_layout_for(buckets) { + Some(lco) => lco, + None => return Err(fallibility.capacity_overflow()), + }; + + let ptr: NonNull = match do_alloc(alloc, layout) { + Ok(block) => block.cast(), + Err(_) => return Err(fallibility.alloc_err(layout)), + }; + + // SAFETY: null pointer will be caught in above check + let ctrl = NonNull::new_unchecked(ptr.as_ptr().add(ctrl_offset)); + Ok(Self { + ctrl, + bucket_mask: buckets - 1, + items: 0, + growth_left: bucket_mask_to_capacity(buckets - 1), + }) + } + + /// Attempts to allocate a new [`RawTableInner`] with at least enough + /// capacity for inserting the given number of elements without reallocating. + /// + /// All the control bytes are initialized with the [`EMPTY`] bytes. + #[inline] + fn fallible_with_capacity( + alloc: &A, + table_layout: TableLayout, + capacity: usize, + fallibility: Fallibility, + ) -> Result + where + A: Allocator, + { + if capacity == 0 { + Ok(Self::NEW) + } else { + // SAFETY: We checked that we could successfully allocate the new table, and then + // initialized all control bytes with the constant `EMPTY` byte. + unsafe { + let buckets = + capacity_to_buckets(capacity).ok_or_else(|| fallibility.capacity_overflow())?; + + let result = Self::new_uninitialized(alloc, table_layout, buckets, fallibility)?; + // SAFETY: We checked that the table is allocated and therefore the table already has + // `self.bucket_mask + 1 + Group::WIDTH` number of control bytes (see TableLayout::calculate_layout_for) + // so writing `self.num_ctrl_bytes() == bucket_mask + 1 + Group::WIDTH` bytes is safe. + result.ctrl(0).write_bytes(EMPTY, result.num_ctrl_bytes()); + + Ok(result) + } + } + } + + /// Allocates a new [`RawTableInner`] with at least enough capacity for inserting + /// the given number of elements without reallocating. + /// + /// Panics if the new capacity exceeds [`isize::MAX`] bytes and [`abort`] the program + /// in case of allocation error. Use [`fallible_with_capacity`] instead if you want to + /// handle memory allocation failure. + /// + /// All the control bytes are initialized with the [`EMPTY`] bytes. + /// + /// [`fallible_with_capacity`]: RawTableInner::fallible_with_capacity + /// [`abort`]: https://doc.rust-lang.org/alloc/alloc/fn.handle_alloc_error.html + fn with_capacity(alloc: &A, table_layout: TableLayout, capacity: usize) -> Self + where + A: Allocator, + { + // Avoid `Result::unwrap_or_else` because it bloats LLVM IR. + match Self::fallible_with_capacity(alloc, table_layout, capacity, Fallibility::Infallible) { + Ok(table_inner) => table_inner, + // SAFETY: All allocation errors will be caught inside `RawTableInner::new_uninitialized`. + Err(_) => unsafe { hint::unreachable_unchecked() }, + } + } + + /// Fixes up an insertion slot returned by the [`RawTableInner::find_insert_slot_in_group`] method. + /// + /// In tables smaller than the group width (`self.buckets() < Group::WIDTH`), trailing control + /// bytes outside the range of the table are filled with [`EMPTY`] entries. These will unfortunately + /// trigger a match of [`RawTableInner::find_insert_slot_in_group`] function. This is because + /// the `Some(bit)` returned by `group.match_empty_or_deleted().lowest_set_bit()` after masking + /// (`(probe_seq.pos + bit) & self.bucket_mask`) may point to a full bucket that is already occupied. + /// We detect this situation here and perform a second scan starting at the beginning of the table. + /// This second scan is guaranteed to find an empty slot (due to the load factor) before hitting the + /// trailing control bytes (containing [`EMPTY`] bytes). + /// + /// If this function is called correctly, it is guaranteed to return [`InsertSlot`] with an + /// index of an empty or deleted bucket in the range `0..self.buckets()` (see `Warning` and + /// `Safety`). + /// + /// # Warning + /// + /// The table must have at least 1 empty or deleted `bucket`, otherwise if the table is less than + /// the group width (`self.buckets() < Group::WIDTH`) this function returns an index outside of the + /// table indices range `0..self.buckets()` (`0..=self.bucket_mask`). Attempt to write data at that + /// index will cause immediate [`undefined behavior`]. + /// + /// # Safety + /// + /// The safety rules are directly derived from the safety rules for [`RawTableInner::ctrl`] method. + /// Thus, in order to uphold those safety contracts, as well as for the correct logic of the work + /// of this crate, the following rules are necessary and sufficient: + /// + /// * The [`RawTableInner`] must have properly initialized control bytes otherwise calling this + /// function results in [`undefined behavior`]. + /// + /// * This function must only be used on insertion slots found by [`RawTableInner::find_insert_slot_in_group`] + /// (after the `find_insert_slot_in_group` function, but before insertion into the table). + /// + /// * The `index` must not be greater than the `self.bucket_mask`, i.e. `(index + 1) <= self.buckets()` + /// (this one is provided by the [`RawTableInner::find_insert_slot_in_group`] function). + /// + /// Calling this function with an index not provided by [`RawTableInner::find_insert_slot_in_group`] + /// may result in [`undefined behavior`] even if the index satisfies the safety rules of the + /// [`RawTableInner::ctrl`] function (`index < self.bucket_mask + 1 + Group::WIDTH`). + /// + /// [`RawTableInner::ctrl`]: RawTableInner::ctrl + /// [`RawTableInner::find_insert_slot_in_group`]: RawTableInner::find_insert_slot_in_group + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + unsafe fn fix_insert_slot(&self, mut index: usize) -> InsertSlot { + // SAFETY: The caller of this function ensures that `index` is in the range `0..=self.bucket_mask`. + if unlikely(self.is_bucket_full(index)) { + debug_assert!(self.bucket_mask < Group::WIDTH); + // SAFETY: + // + // * Since the caller of this function ensures that the control bytes are properly + // initialized and `ptr = self.ctrl(0)` points to the start of the array of control + // bytes, therefore: `ctrl` is valid for reads, properly aligned to `Group::WIDTH` + // and points to the properly initialized control bytes (see also + // `TableLayout::calculate_layout_for` and `ptr::read`); + // + // * Because the caller of this function ensures that the index was provided by the + // `self.find_insert_slot_in_group()` function, so for for tables larger than the + // group width (self.buckets() >= Group::WIDTH), we will never end up in the given + // branch, since `(probe_seq.pos + bit) & self.bucket_mask` in `find_insert_slot_in_group` + // cannot return a full bucket index. For tables smaller than the group width, calling + // the `unwrap_unchecked` function is also safe, as the trailing control bytes outside + // the range of the table are filled with EMPTY bytes (and we know for sure that there + // is at least one FULL bucket), so this second scan either finds an empty slot (due to + // the load factor) or hits the trailing control bytes (containing EMPTY). + index = Group::load_aligned(self.ctrl(0)) + .match_empty_or_deleted() + .lowest_set_bit() + .unwrap_unchecked(); + } + InsertSlot { index } + } + + /// Finds the position to insert something in a group. + /// + /// **This may have false positives and must be fixed up with `fix_insert_slot` + /// before it's used.** + /// + /// The function is guaranteed to return the index of an empty or deleted [`Bucket`] + /// in the range `0..self.buckets()` (`0..=self.bucket_mask`). + #[inline] + fn find_insert_slot_in_group(&self, group: &Group, probe_seq: &ProbeSeq) -> Option { + let bit = group.match_empty_or_deleted().lowest_set_bit(); + + if likely(bit.is_some()) { + // This is the same as `(probe_seq.pos + bit) % self.buckets()` because the number + // of buckets is a power of two, and `self.bucket_mask = self.buckets() - 1`. + Some((probe_seq.pos + bit.unwrap()) & self.bucket_mask) + } else { + None + } + } + + /// Searches for an element in the table, or a potential slot where that element could + /// be inserted (an empty or deleted [`Bucket`] index). + /// + /// This uses dynamic dispatch to reduce the amount of code generated, but that is + /// eliminated by LLVM optimizations. + /// + /// This function does not make any changes to the `data` part of the table, or any + /// changes to the `items` or `growth_left` field of the table. + /// + /// The table must have at least 1 empty or deleted `bucket`, otherwise, if the + /// `eq: &mut dyn FnMut(usize) -> bool` function does not return `true`, this function + /// will never return (will go into an infinite loop) for tables larger than the group + /// width, or return an index outside of the table indices range if the table is less + /// than the group width. + /// + /// This function is guaranteed to provide the `eq: &mut dyn FnMut(usize) -> bool` + /// function with only `FULL` buckets' indices and return the `index` of the found + /// element (as `Ok(index)`). If the element is not found and there is at least 1 + /// empty or deleted [`Bucket`] in the table, the function is guaranteed to return + /// [InsertSlot] with an index in the range `0..self.buckets()`, but in any case, + /// if this function returns [`InsertSlot`], it will contain an index in the range + /// `0..=self.buckets()`. + /// + /// # Safety + /// + /// The [`RawTableInner`] must have properly initialized control bytes otherwise calling + /// this function results in [`undefined behavior`]. + /// + /// Attempt to write data at the [`InsertSlot`] returned by this function when the table is + /// less than the group width and if there was not at least one empty or deleted bucket in + /// the table will cause immediate [`undefined behavior`]. This is because in this case the + /// function will return `self.bucket_mask + 1` as an index due to the trailing [`EMPTY] + /// control bytes outside the table range. + /// + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + unsafe fn find_or_find_insert_slot_inner( + &self, + hash: u64, + eq: &mut dyn FnMut(usize) -> bool, + ) -> Result { + let mut insert_slot = None; + + let h2_hash = h2(hash); + let mut probe_seq = self.probe_seq(hash); + + loop { + // SAFETY: + // * Caller of this function ensures that the control bytes are properly initialized. + // + // * `ProbeSeq.pos` cannot be greater than `self.bucket_mask = self.buckets() - 1` + // of the table due to masking with `self.bucket_mask` and also because mumber of + // buckets is a power of two (see `self.probe_seq` function). + // + // * Even if `ProbeSeq.pos` returns `position == self.bucket_mask`, it is safe to + // call `Group::load` due to the extended control bytes range, which is + // `self.bucket_mask + 1 + Group::WIDTH` (in fact, this means that the last control + // byte will never be read for the allocated table); + // + // * Also, even if `RawTableInner` is not already allocated, `ProbeSeq.pos` will + // always return "0" (zero), so Group::load will read unaligned `Group::static_empty()` + // bytes, which is safe (see RawTableInner::new). + let group = unsafe { Group::load(self.ctrl(probe_seq.pos)) }; + + for bit in group.match_byte(h2_hash) { + let index = (probe_seq.pos + bit) & self.bucket_mask; + + if likely(eq(index)) { + return Ok(index); + } + } + + // We didn't find the element we were looking for in the group, try to get an + // insertion slot from the group if we don't have one yet. + if likely(insert_slot.is_none()) { + insert_slot = self.find_insert_slot_in_group(&group, &probe_seq); + } + + // Only stop the search if the group contains at least one empty element. + // Otherwise, the element that we are looking for might be in a following group. + if likely(group.match_empty().any_bit_set()) { + // We must have found a insert slot by now, since the current group contains at + // least one. For tables smaller than the group width, there will still be an + // empty element in the current (and only) group due to the load factor. + unsafe { + // SAFETY: + // * Caller of this function ensures that the control bytes are properly initialized. + // + // * We use this function with the slot / index found by `self.find_insert_slot_in_group` + return Err(self.fix_insert_slot(insert_slot.unwrap_unchecked())); + } + } + + probe_seq.move_next(self.bucket_mask); + } + } + + /// Searches for an empty or deleted bucket which is suitable for inserting a new + /// element and sets the hash for that slot. Returns an index of that slot and the + /// old control byte stored in the found index. + /// + /// This function does not check if the given element exists in the table. Also, + /// this function does not check if there is enough space in the table to insert + /// a new element. Caller of the funtion must make ensure that the table has at + /// least 1 empty or deleted `bucket`, otherwise this function will never return + /// (will go into an infinite loop) for tables larger than the group width, or + /// return an index outside of the table indices range if the table is less than + /// the group width. + /// + /// If there is at least 1 empty or deleted `bucket` in the table, the function is + /// guaranteed to return an `index` in the range `0..self.buckets()`, but in any case, + /// if this function returns an `index` it will be in the range `0..=self.buckets()`. + /// + /// This function does not make any changes to the `data` parts of the table, + /// or any changes to the `items` or `growth_left` field of the table. + /// + /// # Safety + /// + /// The safety rules are directly derived from the safety rules for the + /// [`RawTableInner::set_ctrl_h2`] and [`RawTableInner::find_insert_slot`] methods. + /// Thus, in order to uphold the safety contracts for that methods, as well as for + /// the correct logic of the work of this crate, you must observe the following rules + /// when calling this function: + /// + /// * The [`RawTableInner`] has already been allocated and has properly initialized + /// control bytes otherwise calling this function results in [`undefined behavior`]. + /// + /// * The caller of this function must ensure that the "data" parts of the table + /// will have an entry in the returned index (matching the given hash) right + /// after calling this function. + /// + /// Attempt to write data at the `index` returned by this function when the table is + /// less than the group width and if there was not at least one empty or deleted bucket in + /// the table will cause immediate [`undefined behavior`]. This is because in this case the + /// function will return `self.bucket_mask + 1` as an index due to the trailing [`EMPTY] + /// control bytes outside the table range. + /// + /// The caller must independently increase the `items` field of the table, and also, + /// if the old control byte was [`EMPTY`], then decrease the table's `growth_left` + /// field, and do not change it if the old control byte was [`DELETED`]. + /// + /// See also [`Bucket::as_ptr`] method, for more information about of properly removing + /// or saving `element` from / into the [`RawTable`] / [`RawTableInner`]. + /// + /// [`Bucket::as_ptr`]: Bucket::as_ptr + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + /// [`RawTableInner::ctrl`]: RawTableInner::ctrl + /// [`RawTableInner::set_ctrl_h2`]: RawTableInner::set_ctrl_h2 + /// [`RawTableInner::find_insert_slot`]: RawTableInner::find_insert_slot + #[inline] + unsafe fn prepare_insert_slot(&mut self, hash: u64) -> (usize, u8) { + // SAFETY: Caller of this function ensures that the control bytes are properly initialized. + let index: usize = self.find_insert_slot(hash).index; + // SAFETY: + // 1. The `find_insert_slot` function either returns an `index` less than or + // equal to `self.buckets() = self.bucket_mask + 1` of the table, or never + // returns if it cannot find an empty or deleted slot. + // 2. The caller of this function guarantees that the table has already been + // allocated + let old_ctrl = *self.ctrl(index); + self.set_ctrl_h2(index, hash); + (index, old_ctrl) + } + + /// Searches for an empty or deleted bucket which is suitable for inserting + /// a new element, returning the `index` for the new [`Bucket`]. + /// + /// This function does not make any changes to the `data` part of the table, or any + /// changes to the `items` or `growth_left` field of the table. + /// + /// The table must have at least 1 empty or deleted `bucket`, otherwise this function + /// will never return (will go into an infinite loop) for tables larger than the group + /// width, or return an index outside of the table indices range if the table is less + /// than the group width. + /// + /// If there is at least 1 empty or deleted `bucket` in the table, the function is + /// guaranteed to return [`InsertSlot`] with an index in the range `0..self.buckets()`, + /// but in any case, if this function returns [`InsertSlot`], it will contain an index + /// in the range `0..=self.buckets()`. + /// + /// # Safety + /// + /// The [`RawTableInner`] must have properly initialized control bytes otherwise calling + /// this function results in [`undefined behavior`]. + /// + /// Attempt to write data at the [`InsertSlot`] returned by this function when the table is + /// less than the group width and if there was not at least one empty or deleted bucket in + /// the table will cause immediate [`undefined behavior`]. This is because in this case the + /// function will return `self.bucket_mask + 1` as an index due to the trailing [`EMPTY] + /// control bytes outside the table range. + /// + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + unsafe fn find_insert_slot(&self, hash: u64) -> InsertSlot { + let mut probe_seq = self.probe_seq(hash); + loop { + // SAFETY: + // * Caller of this function ensures that the control bytes are properly initialized. + // + // * `ProbeSeq.pos` cannot be greater than `self.bucket_mask = self.buckets() - 1` + // of the table due to masking with `self.bucket_mask` and also because mumber of + // buckets is a power of two (see `self.probe_seq` function). + // + // * Even if `ProbeSeq.pos` returns `position == self.bucket_mask`, it is safe to + // call `Group::load` due to the extended control bytes range, which is + // `self.bucket_mask + 1 + Group::WIDTH` (in fact, this means that the last control + // byte will never be read for the allocated table); + // + // * Also, even if `RawTableInner` is not already allocated, `ProbeSeq.pos` will + // always return "0" (zero), so Group::load will read unaligned `Group::static_empty()` + // bytes, which is safe (see RawTableInner::new). + let group = unsafe { Group::load(self.ctrl(probe_seq.pos)) }; + + let index = self.find_insert_slot_in_group(&group, &probe_seq); + if likely(index.is_some()) { + // SAFETY: + // * Caller of this function ensures that the control bytes are properly initialized. + // + // * We use this function with the slot / index found by `self.find_insert_slot_in_group` + unsafe { + return self.fix_insert_slot(index.unwrap_unchecked()); + } + } + probe_seq.move_next(self.bucket_mask); + } + } + + /// Searches for an element in a table, returning the `index` of the found element. + /// This uses dynamic dispatch to reduce the amount of code generated, but it is + /// eliminated by LLVM optimizations. + /// + /// This function does not make any changes to the `data` part of the table, or any + /// changes to the `items` or `growth_left` field of the table. + /// + /// The table must have at least 1 empty `bucket`, otherwise, if the + /// `eq: &mut dyn FnMut(usize) -> bool` function does not return `true`, + /// this function will also never return (will go into an infinite loop). + /// + /// This function is guaranteed to provide the `eq: &mut dyn FnMut(usize) -> bool` + /// function with only `FULL` buckets' indices and return the `index` of the found + /// element as `Some(index)`, so the index will always be in the range + /// `0..self.buckets()`. + /// + /// # Safety + /// + /// The [`RawTableInner`] must have properly initialized control bytes otherwise calling + /// this function results in [`undefined behavior`]. + /// + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline(always)] + unsafe fn find_inner(&self, hash: u64, eq: &mut dyn FnMut(usize) -> bool) -> Option { + let h2_hash = h2(hash); + let mut probe_seq = self.probe_seq(hash); + + loop { + // SAFETY: + // * Caller of this function ensures that the control bytes are properly initialized. + // + // * `ProbeSeq.pos` cannot be greater than `self.bucket_mask = self.buckets() - 1` + // of the table due to masking with `self.bucket_mask`. + // + // * Even if `ProbeSeq.pos` returns `position == self.bucket_mask`, it is safe to + // call `Group::load` due to the extended control bytes range, which is + // `self.bucket_mask + 1 + Group::WIDTH` (in fact, this means that the last control + // byte will never be read for the allocated table); + // + // * Also, even if `RawTableInner` is not already allocated, `ProbeSeq.pos` will + // always return "0" (zero), so Group::load will read unaligned `Group::static_empty()` + // bytes, which is safe (see RawTableInner::new_in). + let group = unsafe { Group::load(self.ctrl(probe_seq.pos)) }; + + for bit in group.match_byte(h2_hash) { + // This is the same as `(probe_seq.pos + bit) % self.buckets()` because the number + // of buckets is a power of two, and `self.bucket_mask = self.buckets() - 1`. + let index = (probe_seq.pos + bit) & self.bucket_mask; + + if likely(eq(index)) { + return Some(index); + } + } + + if likely(group.match_empty().any_bit_set()) { + return None; + } + + probe_seq.move_next(self.bucket_mask); + } + } + + /// Prepares for rehashing data in place (that is, without allocating new memory). + /// Converts all full index `control bytes` to `DELETED` and all `DELETED` control + /// bytes to `EMPTY`, i.e. performs the following conversion: + /// + /// - `EMPTY` control bytes -> `EMPTY`; + /// - `DELETED` control bytes -> `EMPTY`; + /// - `FULL` control bytes -> `DELETED`. + /// + /// This function does not make any changes to the `data` parts of the table, + /// or any changes to the `items` or `growth_left` field of the table. + /// + /// # Safety + /// + /// You must observe the following safety rules when calling this function: + /// + /// * The [`RawTableInner`] has already been allocated; + /// + /// * The caller of this function must convert the `DELETED` bytes back to `FULL` + /// bytes when re-inserting them into their ideal position (which was impossible + /// to do during the first insert due to tombstones). If the caller does not do + /// this, then calling this function may result in a memory leak. + /// + /// * The [`RawTableInner`] must have properly initialized control bytes otherwise + /// calling this function results in [`undefined behavior`]. + /// + /// Calling this function on a table that has not been allocated results in + /// [`undefined behavior`]. + /// + /// See also [`Bucket::as_ptr`] method, for more information about of properly removing + /// or saving `data element` from / into the [`RawTable`] / [`RawTableInner`]. + /// + /// [`Bucket::as_ptr`]: Bucket::as_ptr + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[allow(clippy::mut_mut)] + #[inline] + unsafe fn prepare_rehash_in_place(&mut self) { + // Bulk convert all full control bytes to DELETED, and all DELETED control bytes to EMPTY. + // This effectively frees up all buckets containing a DELETED entry. + // + // SAFETY: + // 1. `i` is guaranteed to be within bounds since we are iterating from zero to `buckets - 1`; + // 2. Even if `i` will be `i == self.bucket_mask`, it is safe to call `Group::load_aligned` + // due to the extended control bytes range, which is `self.bucket_mask + 1 + Group::WIDTH`; + // 3. The caller of this function guarantees that [`RawTableInner`] has already been allocated; + // 4. We can use `Group::load_aligned` and `Group::store_aligned` here since we start from 0 + // and go to the end with a step equal to `Group::WIDTH` (see TableLayout::calculate_layout_for). + for i in (0..self.buckets()).step_by(Group::WIDTH) { + let group = Group::load_aligned(self.ctrl(i)); + let group = group.convert_special_to_empty_and_full_to_deleted(); + group.store_aligned(self.ctrl(i)); + } + + // Fix up the trailing control bytes. See the comments in set_ctrl + // for the handling of tables smaller than the group width. + // + // SAFETY: The caller of this function guarantees that [`RawTableInner`] + // has already been allocated + if unlikely(self.buckets() < Group::WIDTH) { + // SAFETY: We have `self.bucket_mask + 1 + Group::WIDTH` number of control bytes, + // so copying `self.buckets() == self.bucket_mask + 1` bytes with offset equal to + // `Group::WIDTH` is safe + self.ctrl(0) + .copy_to(self.ctrl(Group::WIDTH), self.buckets()); + } else { + // SAFETY: We have `self.bucket_mask + 1 + Group::WIDTH` number of + // control bytes,so copying `Group::WIDTH` bytes with offset equal + // to `self.buckets() == self.bucket_mask + 1` is safe + self.ctrl(0) + .copy_to(self.ctrl(self.buckets()), Group::WIDTH); + } + } + + /// Returns an iterator over every element in the table. + /// + /// # Safety + /// + /// If any of the following conditions are violated, the result + /// is [`undefined behavior`]: + /// + /// * The caller has to ensure that the `RawTableInner` outlives the + /// `RawIter`. Because we cannot make the `next` method unsafe on + /// the `RawIter` struct, we have to make the `iter` method unsafe. + /// + /// * The [`RawTableInner`] must have properly initialized control bytes. + /// + /// The type `T` must be the actual type of the elements stored in the table, + /// otherwise using the returned [`RawIter`] results in [`undefined behavior`]. + /// + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + unsafe fn iter(&self) -> RawIter { + // SAFETY: + // 1. Since the caller of this function ensures that the control bytes + // are properly initialized and `self.data_end()` points to the start + // of the array of control bytes, therefore: `ctrl` is valid for reads, + // properly aligned to `Group::WIDTH` and points to the properly initialized + // control bytes. + // 2. `data` bucket index in the table is equal to the `ctrl` index (i.e. + // equal to zero). + // 3. We pass the exact value of buckets of the table to the function. + // + // `ctrl` points here (to the start + // of the first control byte `CT0`) + // ∨ + // [Pad], T_n, ..., T1, T0, |CT0, CT1, ..., CT_n|, CTa_0, CTa_1, ..., CTa_m + // \________ ________/ + // \/ + // `n = buckets - 1`, i.e. `RawTableInner::buckets() - 1` + // + // where: T0...T_n - our stored data; + // CT0...CT_n - control bytes or metadata for `data`. + // CTa_0...CTa_m - additional control bytes, where `m = Group::WIDTH - 1` (so that the search + // with loading `Group` bytes from the heap works properly, even if the result + // of `h1(hash) & self.bucket_mask` is equal to `self.bucket_mask`). See also + // `RawTableInner::set_ctrl` function. + // + // P.S. `h1(hash) & self.bucket_mask` is the same as `hash as usize % self.buckets()` because the number + // of buckets is a power of two, and `self.bucket_mask = self.buckets() - 1`. + let data = Bucket::from_base_index(self.data_end(), 0); + RawIter { + // SAFETY: See explanation above + iter: RawIterRange::new(self.ctrl.as_ptr(), data, self.buckets()), + items: self.items, + } + } + + /// Executes the destructors (if any) of the values stored in the table. + /// + /// # Note + /// + /// This function does not erase the control bytes of the table and does + /// not make any changes to the `items` or `growth_left` fields of the + /// table. If necessary, the caller of this function must manually set + /// up these table fields, for example using the [`clear_no_drop`] function. + /// + /// Be careful during calling this function, because drop function of + /// the elements can panic, and this can leave table in an inconsistent + /// state. + /// + /// # Safety + /// + /// The type `T` must be the actual type of the elements stored in the table, + /// otherwise calling this function may result in [`undefined behavior`]. + /// + /// If `T` is a type that should be dropped and **the table is not empty**, + /// calling this function more than once results in [`undefined behavior`]. + /// + /// If `T` is not [`Copy`], attempting to use values stored in the table after + /// calling this function may result in [`undefined behavior`]. + /// + /// It is safe to call this function on a table that has not been allocated, + /// on a table with uninitialized control bytes, and on a table with no actual + /// data but with `Full` control bytes if `self.items == 0`. + /// + /// See also [`Bucket::drop`] / [`Bucket::as_ptr`] methods, for more information + /// about of properly removing or saving `element` from / into the [`RawTable`] / + /// [`RawTableInner`]. + /// + /// [`Bucket::drop`]: Bucket::drop + /// [`Bucket::as_ptr`]: Bucket::as_ptr + /// [`clear_no_drop`]: RawTableInner::clear_no_drop + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + unsafe fn drop_elements(&mut self) { + // Check that `self.items != 0`. Protects against the possibility + // of creating an iterator on an table with uninitialized control bytes. + if T::NEEDS_DROP && self.items != 0 { + // SAFETY: We know for sure that RawTableInner will outlive the + // returned `RawIter` iterator, and the caller of this function + // must uphold the safety contract for `drop_elements` method. + for item in self.iter::() { + // SAFETY: The caller must uphold the safety contract for + // `drop_elements` method. + item.drop(); + } + } + } + + /// Executes the destructors (if any) of the values stored in the table and than + /// deallocates the table. + /// + /// # Note + /// + /// Calling this function automatically makes invalid (dangling) all instances of + /// buckets ([`Bucket`]) and makes invalid (dangling) the `ctrl` field of the table. + /// + /// This function does not make any changes to the `bucket_mask`, `items` or `growth_left` + /// fields of the table. If necessary, the caller of this function must manually set + /// up these table fields. + /// + /// # Safety + /// + /// If any of the following conditions are violated, the result is [`undefined behavior`]: + /// + /// * Calling this function more than once; + /// + /// * The type `T` must be the actual type of the elements stored in the table. + /// + /// * The `alloc` must be the same [`Allocator`] as the `Allocator` that was used + /// to allocate this table. + /// + /// * The `table_layout` must be the same [`TableLayout`] as the `TableLayout` that + /// was used to allocate this table. + /// + /// The caller of this function should pay attention to the possibility of the + /// elements' drop function panicking, because this: + /// + /// * May leave the table in an inconsistent state; + /// + /// * Memory is never deallocated, so a memory leak may occur. + /// + /// Attempt to use the `ctrl` field of the table (dereference) after calling this + /// function results in [`undefined behavior`]. + /// + /// It is safe to call this function on a table that has not been allocated, + /// on a table with uninitialized control bytes, and on a table with no actual + /// data but with `Full` control bytes if `self.items == 0`. + /// + /// See also [`RawTableInner::drop_elements`] or [`RawTableInner::free_buckets`] + /// for more information. + /// + /// [`RawTableInner::drop_elements`]: RawTableInner::drop_elements + /// [`RawTableInner::free_buckets`]: RawTableInner::free_buckets + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + unsafe fn drop_inner_table(&mut self, alloc: &A, table_layout: TableLayout) { + if !self.is_empty_singleton() { + unsafe { + // SAFETY: The caller must uphold the safety contract for `drop_inner_table` method. + self.drop_elements::(); + // SAFETY: + // 1. We have checked that our table is allocated. + // 2. The caller must uphold the safety contract for `drop_inner_table` method. + self.free_buckets(alloc, table_layout); + } + } + } + + /// Returns a pointer to an element in the table (convenience for + /// `Bucket::from_base_index(self.data_end::(), index)`). + /// + /// The caller must ensure that the `RawTableInner` outlives the returned [`Bucket`], + /// otherwise using it may result in [`undefined behavior`]. + /// + /// # Safety + /// + /// If `mem::size_of::() != 0`, then the safety rules are directly derived from the + /// safety rules of the [`Bucket::from_base_index`] function. Therefore, when calling + /// this function, the following safety rules must be observed: + /// + /// * The table must already be allocated; + /// + /// * The `index` must not be greater than the number returned by the [`RawTableInner::buckets`] + /// function, i.e. `(index + 1) <= self.buckets()`. + /// + /// * The type `T` must be the actual type of the elements stored in the table, otherwise + /// using the returned [`Bucket`] may result in [`undefined behavior`]. + /// + /// It is safe to call this function with index of zero (`index == 0`) on a table that has + /// not been allocated, but using the returned [`Bucket`] results in [`undefined behavior`]. + /// + /// If `mem::size_of::() == 0`, then the only requirement is that the `index` must + /// not be greater than the number returned by the [`RawTable::buckets`] function, i.e. + /// `(index + 1) <= self.buckets()`. + /// + /// ```none + /// If mem::size_of::() != 0 then return a pointer to the `element` in the `data part` of the table + /// (we start counting from "0", so that in the expression T[n], the "n" index actually one less than + /// the "buckets" number of our `RawTableInner`, i.e. "n = RawTableInner::buckets() - 1"): + /// + /// `table.bucket(3).as_ptr()` returns a pointer that points here in the `data` + /// part of the `RawTableInner`, i.e. to the start of T3 (see [`Bucket::as_ptr`]) + /// | + /// | `base = table.data_end::()` points here + /// | (to the start of CT0 or to the end of T0) + /// v v + /// [Pad], T_n, ..., |T3|, T2, T1, T0, |CT0, CT1, CT2, CT3, ..., CT_n, CTa_0, CTa_1, ..., CTa_m + /// ^ \__________ __________/ + /// `table.bucket(3)` returns a pointer that points \/ + /// here in the `data` part of the `RawTableInner` additional control bytes + /// (to the end of T3) `m = Group::WIDTH - 1` + /// + /// where: T0...T_n - our stored data; + /// CT0...CT_n - control bytes or metadata for `data`; + /// CTa_0...CTa_m - additional control bytes (so that the search with loading `Group` bytes from + /// the heap works properly, even if the result of `h1(hash) & self.bucket_mask` + /// is equal to `self.bucket_mask`). See also `RawTableInner::set_ctrl` function. + /// + /// P.S. `h1(hash) & self.bucket_mask` is the same as `hash as usize % self.buckets()` because the number + /// of buckets is a power of two, and `self.bucket_mask = self.buckets() - 1`. + /// ``` + /// + /// [`Bucket::from_base_index`]: Bucket::from_base_index + /// [`RawTableInner::buckets`]: RawTableInner::buckets + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + unsafe fn bucket(&self, index: usize) -> Bucket { + debug_assert_ne!(self.bucket_mask, 0); + debug_assert!(index < self.buckets()); + Bucket::from_base_index(self.data_end(), index) + } + + /// Returns a raw `*mut u8` pointer to the start of the `data` element in the table + /// (convenience for `self.data_end::().as_ptr().sub((index + 1) * size_of)`). + /// + /// The caller must ensure that the `RawTableInner` outlives the returned `*mut u8`, + /// otherwise using it may result in [`undefined behavior`]. + /// + /// # Safety + /// + /// If any of the following conditions are violated, the result is [`undefined behavior`]: + /// + /// * The table must already be allocated; + /// + /// * The `index` must not be greater than the number returned by the [`RawTableInner::buckets`] + /// function, i.e. `(index + 1) <= self.buckets()`; + /// + /// * The `size_of` must be equal to the size of the elements stored in the table; + /// + /// ```none + /// If mem::size_of::() != 0 then return a pointer to the `element` in the `data part` of the table + /// (we start counting from "0", so that in the expression T[n], the "n" index actually one less than + /// the "buckets" number of our `RawTableInner`, i.e. "n = RawTableInner::buckets() - 1"): + /// + /// `table.bucket_ptr(3, mem::size_of::())` returns a pointer that points here in the + /// `data` part of the `RawTableInner`, i.e. to the start of T3 + /// | + /// | `base = table.data_end::()` points here + /// | (to the start of CT0 or to the end of T0) + /// v v + /// [Pad], T_n, ..., |T3|, T2, T1, T0, |CT0, CT1, CT2, CT3, ..., CT_n, CTa_0, CTa_1, ..., CTa_m + /// \__________ __________/ + /// \/ + /// additional control bytes + /// `m = Group::WIDTH - 1` + /// + /// where: T0...T_n - our stored data; + /// CT0...CT_n - control bytes or metadata for `data`; + /// CTa_0...CTa_m - additional control bytes (so that the search with loading `Group` bytes from + /// the heap works properly, even if the result of `h1(hash) & self.bucket_mask` + /// is equal to `self.bucket_mask`). See also `RawTableInner::set_ctrl` function. + /// + /// P.S. `h1(hash) & self.bucket_mask` is the same as `hash as usize % self.buckets()` because the number + /// of buckets is a power of two, and `self.bucket_mask = self.buckets() - 1`. + /// ``` + /// + /// [`RawTableInner::buckets`]: RawTableInner::buckets + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + unsafe fn bucket_ptr(&self, index: usize, size_of: usize) -> *mut u8 { + debug_assert_ne!(self.bucket_mask, 0); + debug_assert!(index < self.buckets()); + let base: *mut u8 = self.data_end().as_ptr(); + base.sub((index + 1) * size_of) + } + + /// Returns pointer to one past last `data` element in the table as viewed from + /// the start point of the allocation (convenience for `self.ctrl.cast()`). + /// + /// This function actually returns a pointer to the end of the `data element` at + /// index "0" (zero). + /// + /// The caller must ensure that the `RawTableInner` outlives the returned [`NonNull`], + /// otherwise using it may result in [`undefined behavior`]. + /// + /// # Note + /// + /// The type `T` must be the actual type of the elements stored in the table, otherwise + /// using the returned [`NonNull`] may result in [`undefined behavior`]. + /// + /// ```none + /// `table.data_end::()` returns pointer that points here + /// (to the end of `T0`) + /// ∨ + /// [Pad], T_n, ..., T1, T0, |CT0, CT1, ..., CT_n|, CTa_0, CTa_1, ..., CTa_m + /// \________ ________/ + /// \/ + /// `n = buckets - 1`, i.e. `RawTableInner::buckets() - 1` + /// + /// where: T0...T_n - our stored data; + /// CT0...CT_n - control bytes or metadata for `data`. + /// CTa_0...CTa_m - additional control bytes, where `m = Group::WIDTH - 1` (so that the search + /// with loading `Group` bytes from the heap works properly, even if the result + /// of `h1(hash) & self.bucket_mask` is equal to `self.bucket_mask`). See also + /// `RawTableInner::set_ctrl` function. + /// + /// P.S. `h1(hash) & self.bucket_mask` is the same as `hash as usize % self.buckets()` because the number + /// of buckets is a power of two, and `self.bucket_mask = self.buckets() - 1`. + /// ``` + /// + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + fn data_end(&self) -> NonNull { + self.ctrl.cast() + } + + /// Returns an iterator-like object for a probe sequence on the table. + /// + /// This iterator never terminates, but is guaranteed to visit each bucket + /// group exactly once. The loop using `probe_seq` must terminate upon + /// reaching a group containing an empty bucket. + #[inline] + fn probe_seq(&self, hash: u64) -> ProbeSeq { + ProbeSeq { + // This is the same as `hash as usize % self.buckets()` because the number + // of buckets is a power of two, and `self.bucket_mask = self.buckets() - 1`. + pos: h1(hash) & self.bucket_mask, + stride: 0, + } + } + + /// Returns the index of a bucket for which a value must be inserted if there is enough rooom + /// in the table, otherwise returns error + #[cfg(feature = "raw")] + #[inline] + unsafe fn prepare_insert_no_grow(&mut self, hash: u64) -> Result { + let index = self.find_insert_slot(hash).index; + let old_ctrl = *self.ctrl(index); + if unlikely(self.growth_left == 0 && special_is_empty(old_ctrl)) { + Err(()) + } else { + self.record_item_insert_at(index, old_ctrl, hash); + Ok(index) + } + } + + #[inline] + unsafe fn record_item_insert_at(&mut self, index: usize, old_ctrl: u8, hash: u64) { + self.growth_left -= usize::from(special_is_empty(old_ctrl)); + self.set_ctrl_h2(index, hash); + self.items += 1; + } + + #[inline] + fn is_in_same_group(&self, i: usize, new_i: usize, hash: u64) -> bool { + let probe_seq_pos = self.probe_seq(hash).pos; + let probe_index = + |pos: usize| (pos.wrapping_sub(probe_seq_pos) & self.bucket_mask) / Group::WIDTH; + probe_index(i) == probe_index(new_i) + } + + /// Sets a control byte to the hash, and possibly also the replicated control byte at + /// the end of the array. + /// + /// This function does not make any changes to the `data` parts of the table, + /// or any changes to the `items` or `growth_left` field of the table. + /// + /// # Safety + /// + /// The safety rules are directly derived from the safety rules for [`RawTableInner::set_ctrl`] + /// method. Thus, in order to uphold the safety contracts for the method, you must observe the + /// following rules when calling this function: + /// + /// * The [`RawTableInner`] has already been allocated; + /// + /// * The `index` must not be greater than the `RawTableInner.bucket_mask`, i.e. + /// `index <= RawTableInner.bucket_mask` or, in other words, `(index + 1)` must + /// be no greater than the number returned by the function [`RawTableInner::buckets`]. + /// + /// Calling this function on a table that has not been allocated results in [`undefined behavior`]. + /// + /// See also [`Bucket::as_ptr`] method, for more information about of properly removing + /// or saving `data element` from / into the [`RawTable`] / [`RawTableInner`]. + /// + /// [`RawTableInner::set_ctrl`]: RawTableInner::set_ctrl + /// [`RawTableInner::buckets`]: RawTableInner::buckets + /// [`Bucket::as_ptr`]: Bucket::as_ptr + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + unsafe fn set_ctrl_h2(&mut self, index: usize, hash: u64) { + // SAFETY: The caller must uphold the safety rules for the [`RawTableInner::set_ctrl_h2`] + self.set_ctrl(index, h2(hash)); + } + + /// Replaces the hash in the control byte at the given index with the provided one, + /// and possibly also replicates the new control byte at the end of the array of control + /// bytes, returning the old control byte. + /// + /// This function does not make any changes to the `data` parts of the table, + /// or any changes to the `items` or `growth_left` field of the table. + /// + /// # Safety + /// + /// The safety rules are directly derived from the safety rules for [`RawTableInner::set_ctrl_h2`] + /// and [`RawTableInner::ctrl`] methods. Thus, in order to uphold the safety contracts for both + /// methods, you must observe the following rules when calling this function: + /// + /// * The [`RawTableInner`] has already been allocated; + /// + /// * The `index` must not be greater than the `RawTableInner.bucket_mask`, i.e. + /// `index <= RawTableInner.bucket_mask` or, in other words, `(index + 1)` must + /// be no greater than the number returned by the function [`RawTableInner::buckets`]. + /// + /// Calling this function on a table that has not been allocated results in [`undefined behavior`]. + /// + /// See also [`Bucket::as_ptr`] method, for more information about of properly removing + /// or saving `data element` from / into the [`RawTable`] / [`RawTableInner`]. + /// + /// [`RawTableInner::set_ctrl_h2`]: RawTableInner::set_ctrl_h2 + /// [`RawTableInner::buckets`]: RawTableInner::buckets + /// [`Bucket::as_ptr`]: Bucket::as_ptr + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + unsafe fn replace_ctrl_h2(&mut self, index: usize, hash: u64) -> u8 { + // SAFETY: The caller must uphold the safety rules for the [`RawTableInner::replace_ctrl_h2`] + let prev_ctrl = *self.ctrl(index); + self.set_ctrl_h2(index, hash); + prev_ctrl + } + + /// Sets a control byte, and possibly also the replicated control byte at + /// the end of the array. + /// + /// This function does not make any changes to the `data` parts of the table, + /// or any changes to the `items` or `growth_left` field of the table. + /// + /// # Safety + /// + /// You must observe the following safety rules when calling this function: + /// + /// * The [`RawTableInner`] has already been allocated; + /// + /// * The `index` must not be greater than the `RawTableInner.bucket_mask`, i.e. + /// `index <= RawTableInner.bucket_mask` or, in other words, `(index + 1)` must + /// be no greater than the number returned by the function [`RawTableInner::buckets`]. + /// + /// Calling this function on a table that has not been allocated results in [`undefined behavior`]. + /// + /// See also [`Bucket::as_ptr`] method, for more information about of properly removing + /// or saving `data element` from / into the [`RawTable`] / [`RawTableInner`]. + /// + /// [`RawTableInner::buckets`]: RawTableInner::buckets + /// [`Bucket::as_ptr`]: Bucket::as_ptr + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + unsafe fn set_ctrl(&mut self, index: usize, ctrl: u8) { + // Replicate the first Group::WIDTH control bytes at the end of + // the array without using a branch. If the tables smaller than + // the group width (self.buckets() < Group::WIDTH), + // `index2 = Group::WIDTH + index`, otherwise `index2` is: + // + // - If index >= Group::WIDTH then index == index2. + // - Otherwise index2 == self.bucket_mask + 1 + index. + // + // The very last replicated control byte is never actually read because + // we mask the initial index for unaligned loads, but we write it + // anyways because it makes the set_ctrl implementation simpler. + // + // If there are fewer buckets than Group::WIDTH then this code will + // replicate the buckets at the end of the trailing group. For example + // with 2 buckets and a group size of 4, the control bytes will look + // like this: + // + // Real | Replicated + // --------------------------------------------- + // | [A] | [B] | [EMPTY] | [EMPTY] | [A] | [B] | + // --------------------------------------------- + + // This is the same as `(index.wrapping_sub(Group::WIDTH)) % self.buckets() + Group::WIDTH` + // because the number of buckets is a power of two, and `self.bucket_mask = self.buckets() - 1`. + let index2 = ((index.wrapping_sub(Group::WIDTH)) & self.bucket_mask) + Group::WIDTH; + + // SAFETY: The caller must uphold the safety rules for the [`RawTableInner::set_ctrl`] + *self.ctrl(index) = ctrl; + *self.ctrl(index2) = ctrl; + } + + /// Returns a pointer to a control byte. + /// + /// # Safety + /// + /// For the allocated [`RawTableInner`], the result is [`Undefined Behavior`], + /// if the `index` is greater than the `self.bucket_mask + 1 + Group::WIDTH`. + /// In that case, calling this function with `index == self.bucket_mask + 1 + Group::WIDTH` + /// will return a pointer to the end of the allocated table and it is useless on its own. + /// + /// Calling this function with `index >= self.bucket_mask + 1 + Group::WIDTH` on a + /// table that has not been allocated results in [`Undefined Behavior`]. + /// + /// So to satisfy both requirements you should always follow the rule that + /// `index < self.bucket_mask + 1 + Group::WIDTH` + /// + /// Calling this function on [`RawTableInner`] that are not already allocated is safe + /// for read-only purpose. + /// + /// See also [`Bucket::as_ptr()`] method, for more information about of properly removing + /// or saving `data element` from / into the [`RawTable`] / [`RawTableInner`]. + /// + /// [`Bucket::as_ptr()`]: Bucket::as_ptr() + /// [`Undefined Behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + unsafe fn ctrl(&self, index: usize) -> *mut u8 { + debug_assert!(index < self.num_ctrl_bytes()); + // SAFETY: The caller must uphold the safety rules for the [`RawTableInner::ctrl`] + self.ctrl.as_ptr().add(index) + } + + #[inline] + fn buckets(&self) -> usize { + self.bucket_mask + 1 + } + + /// Checks whether the bucket at `index` is full. + /// + /// # Safety + /// + /// The caller must ensure `index` is less than the number of buckets. + #[inline] + unsafe fn is_bucket_full(&self, index: usize) -> bool { + debug_assert!(index < self.buckets()); + is_full(*self.ctrl(index)) + } + + #[inline] + fn num_ctrl_bytes(&self) -> usize { + self.bucket_mask + 1 + Group::WIDTH + } + + #[inline] + fn is_empty_singleton(&self) -> bool { + self.bucket_mask == 0 + } + + /// Attempts to allocate a new hash table with at least enough capacity + /// for inserting the given number of elements without reallocating, + /// and return it inside ScopeGuard to protect against panic in the hash + /// function. + /// + /// # Note + /// + /// It is recommended (but not required): + /// + /// * That the new table's `capacity` be greater than or equal to `self.items`. + /// + /// * The `alloc` is the same [`Allocator`] as the `Allocator` used + /// to allocate this table. + /// + /// * The `table_layout` is the same [`TableLayout`] as the `TableLayout` used + /// to allocate this table. + /// + /// If `table_layout` does not match the `TableLayout` that was used to allocate + /// this table, then using `mem::swap` with the `self` and the new table returned + /// by this function results in [`undefined behavior`]. + /// + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[allow(clippy::mut_mut)] + #[inline] + fn prepare_resize<'a, A>( + &self, + alloc: &'a A, + table_layout: TableLayout, + capacity: usize, + fallibility: Fallibility, + ) -> Result, TryReserveError> + where + A: Allocator, + { + debug_assert!(self.items <= capacity); + + // Allocate and initialize the new table. + let new_table = + RawTableInner::fallible_with_capacity(alloc, table_layout, capacity, fallibility)?; + + // The hash function may panic, in which case we simply free the new + // table without dropping any elements that may have been copied into + // it. + // + // This guard is also used to free the old table on success, see + // the comment at the bottom of this function. + Ok(guard(new_table, move |self_| { + if !self_.is_empty_singleton() { + // SAFETY: + // 1. We have checked that our table is allocated. + // 2. We know for sure that the `alloc` and `table_layout` matches the + // [`Allocator`] and [`TableLayout`] used to allocate this table. + unsafe { self_.free_buckets(alloc, table_layout) }; + } + })) + } + + /// Reserves or rehashes to make room for `additional` more elements. + /// + /// This uses dynamic dispatch to reduce the amount of + /// code generated, but it is eliminated by LLVM optimizations when inlined. + /// + /// # Safety + /// + /// If any of the following conditions are violated, the result is + /// [`undefined behavior`]: + /// + /// * The `alloc` must be the same [`Allocator`] as the `Allocator` used + /// to allocate this table. + /// + /// * The `layout` must be the same [`TableLayout`] as the `TableLayout` + /// used to allocate this table. + /// + /// * The `drop` function (`fn(*mut u8)`) must be the actual drop function of + /// the elements stored in the table. + /// + /// * The [`RawTableInner`] must have properly initialized control bytes. + /// + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[allow(clippy::inline_always)] + #[inline(always)] + unsafe fn reserve_rehash_inner( + &mut self, + alloc: &A, + additional: usize, + hasher: &dyn Fn(&mut Self, usize) -> u64, + fallibility: Fallibility, + layout: TableLayout, + drop: Option, + ) -> Result<(), TryReserveError> + where + A: Allocator, + { + // Avoid `Option::ok_or_else` because it bloats LLVM IR. + let new_items = match self.items.checked_add(additional) { + Some(new_items) => new_items, + None => return Err(fallibility.capacity_overflow()), + }; + let full_capacity = bucket_mask_to_capacity(self.bucket_mask); + if new_items <= full_capacity / 2 { + // Rehash in-place without re-allocating if we have plenty of spare + // capacity that is locked up due to DELETED entries. + + // SAFETY: + // 1. We know for sure that `[`RawTableInner`]` has already been allocated + // (since new_items <= full_capacity / 2); + // 2. The caller ensures that `drop` function is the actual drop function of + // the elements stored in the table. + // 3. The caller ensures that `layout` matches the [`TableLayout`] that was + // used to allocate this table. + // 4. The caller ensures that the control bytes of the `RawTableInner` + // are already initialized. + self.rehash_in_place(hasher, layout.size, drop); + Ok(()) + } else { + // Otherwise, conservatively resize to at least the next size up + // to avoid churning deletes into frequent rehashes. + // + // SAFETY: + // 1. We know for sure that `capacity >= self.items`. + // 2. The caller ensures that `alloc` and `layout` matches the [`Allocator`] and + // [`TableLayout`] that were used to allocate this table. + // 3. The caller ensures that the control bytes of the `RawTableInner` + // are already initialized. + self.resize_inner( + alloc, + usize::max(new_items, full_capacity + 1), + hasher, + fallibility, + layout, + ) + } + } + + /// Returns an iterator over full buckets indices in the table. + /// + /// # Safety + /// + /// Behavior is undefined if any of the following conditions are violated: + /// + /// * The caller has to ensure that the `RawTableInner` outlives the + /// `FullBucketsIndices`. Because we cannot make the `next` method + /// unsafe on the `FullBucketsIndices` struct, we have to make the + /// `full_buckets_indices` method unsafe. + /// + /// * The [`RawTableInner`] must have properly initialized control bytes. + #[inline(always)] + unsafe fn full_buckets_indices(&self) -> FullBucketsIndices { + // SAFETY: + // 1. Since the caller of this function ensures that the control bytes + // are properly initialized and `self.ctrl(0)` points to the start + // of the array of control bytes, therefore: `ctrl` is valid for reads, + // properly aligned to `Group::WIDTH` and points to the properly initialized + // control bytes. + // 2. The value of `items` is equal to the amount of data (values) added + // to the table. + // + // `ctrl` points here (to the start + // of the first control byte `CT0`) + // ∨ + // [Pad], T_n, ..., T1, T0, |CT0, CT1, ..., CT_n|, Group::WIDTH + // \________ ________/ + // \/ + // `n = buckets - 1`, i.e. `RawTableInner::buckets() - 1` + // + // where: T0...T_n - our stored data; + // CT0...CT_n - control bytes or metadata for `data`. + let ctrl = NonNull::new_unchecked(self.ctrl(0)); + + FullBucketsIndices { + // Load the first group + // SAFETY: See explanation above. + current_group: Group::load_aligned(ctrl.as_ptr()).match_full().into_iter(), + group_first_index: 0, + ctrl, + items: self.items, + } + } + + /// Allocates a new table of a different size and moves the contents of the + /// current table into it. + /// + /// This uses dynamic dispatch to reduce the amount of + /// code generated, but it is eliminated by LLVM optimizations when inlined. + /// + /// # Safety + /// + /// If any of the following conditions are violated, the result is + /// [`undefined behavior`]: + /// + /// * The `alloc` must be the same [`Allocator`] as the `Allocator` used + /// to allocate this table; + /// + /// * The `layout` must be the same [`TableLayout`] as the `TableLayout` + /// used to allocate this table; + /// + /// * The [`RawTableInner`] must have properly initialized control bytes. + /// + /// The caller of this function must ensure that `capacity >= self.items` + /// otherwise: + /// + /// * If `self.items != 0`, calling of this function with `capacity == 0` + /// results in [`undefined behavior`]. + /// + /// * If `capacity_to_buckets(capacity) < Group::WIDTH` and + /// `self.items > capacity_to_buckets(capacity)` calling this function + /// results in [`undefined behavior`]. + /// + /// * If `capacity_to_buckets(capacity) >= Group::WIDTH` and + /// `self.items > capacity_to_buckets(capacity)` calling this function + /// are never return (will go into an infinite loop). + /// + /// Note: It is recommended (but not required) that the new table's `capacity` + /// be greater than or equal to `self.items`. In case if `capacity <= self.items` + /// this function can never return. See [`RawTableInner::find_insert_slot`] for + /// more information. + /// + /// [`RawTableInner::find_insert_slot`]: RawTableInner::find_insert_slot + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[allow(clippy::inline_always)] + #[inline(always)] + unsafe fn resize_inner( + &mut self, + alloc: &A, + capacity: usize, + hasher: &dyn Fn(&mut Self, usize) -> u64, + fallibility: Fallibility, + layout: TableLayout, + ) -> Result<(), TryReserveError> + where + A: Allocator, + { + // SAFETY: We know for sure that `alloc` and `layout` matches the [`Allocator`] and [`TableLayout`] + // that were used to allocate this table. + let mut new_table = self.prepare_resize(alloc, layout, capacity, fallibility)?; + + // SAFETY: We know for sure that RawTableInner will outlive the + // returned `FullBucketsIndices` iterator, and the caller of this + // function ensures that the control bytes are properly initialized. + for full_byte_index in self.full_buckets_indices() { + // This may panic. + let hash = hasher(self, full_byte_index); + + // SAFETY: + // We can use a simpler version of insert() here since: + // 1. There are no DELETED entries. + // 2. We know there is enough space in the table. + // 3. All elements are unique. + // 4. The caller of this function guarantees that `capacity > 0` + // so `new_table` must already have some allocated memory. + // 5. We set `growth_left` and `items` fields of the new table + // after the loop. + // 6. We insert into the table, at the returned index, the data + // matching the given hash immediately after calling this function. + let (new_index, _) = new_table.prepare_insert_slot(hash); + + // SAFETY: + // + // * `src` is valid for reads of `layout.size` bytes, since the + // table is alive and the `full_byte_index` is guaranteed to be + // within bounds (see `FullBucketsIndices::next_impl`); + // + // * `dst` is valid for writes of `layout.size` bytes, since the + // caller ensures that `table_layout` matches the [`TableLayout`] + // that was used to allocate old table and we have the `new_index` + // returned by `prepare_insert_slot`. + // + // * Both `src` and `dst` are properly aligned. + // + // * Both `src` and `dst` point to different region of memory. + ptr::copy_nonoverlapping( + self.bucket_ptr(full_byte_index, layout.size), + new_table.bucket_ptr(new_index, layout.size), + layout.size, + ); + } + + // The hash function didn't panic, so we can safely set the + // `growth_left` and `items` fields of the new table. + new_table.growth_left -= self.items; + new_table.items = self.items; + + // We successfully copied all elements without panicking. Now replace + // self with the new table. The old table will have its memory freed but + // the items will not be dropped (since they have been moved into the + // new table). + // SAFETY: The caller ensures that `table_layout` matches the [`TableLayout`] + // that was used to allocate this table. + mem::swap(self, &mut new_table); + + Ok(()) + } + + /// Rehashes the contents of the table in place (i.e. without changing the + /// allocation). + /// + /// If `hasher` panics then some the table's contents may be lost. + /// + /// This uses dynamic dispatch to reduce the amount of + /// code generated, but it is eliminated by LLVM optimizations when inlined. + /// + /// # Safety + /// + /// If any of the following conditions are violated, the result is [`undefined behavior`]: + /// + /// * The `size_of` must be equal to the size of the elements stored in the table; + /// + /// * The `drop` function (`fn(*mut u8)`) must be the actual drop function of + /// the elements stored in the table. + /// + /// * The [`RawTableInner`] has already been allocated; + /// + /// * The [`RawTableInner`] must have properly initialized control bytes. + /// + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[allow(clippy::inline_always)] + #[cfg_attr(feature = "inline-more", inline(always))] + #[cfg_attr(not(feature = "inline-more"), inline)] + unsafe fn rehash_in_place( + &mut self, + hasher: &dyn Fn(&mut Self, usize) -> u64, + size_of: usize, + drop: Option, + ) { + // If the hash function panics then properly clean up any elements + // that we haven't rehashed yet. We unfortunately can't preserve the + // element since we lost their hash and have no way of recovering it + // without risking another panic. + self.prepare_rehash_in_place(); + + let mut guard = guard(self, move |self_| { + if let Some(drop) = drop { + for i in 0..self_.buckets() { + if *self_.ctrl(i) == DELETED { + self_.set_ctrl(i, EMPTY); + drop(self_.bucket_ptr(i, size_of)); + self_.items -= 1; + } + } + } + self_.growth_left = bucket_mask_to_capacity(self_.bucket_mask) - self_.items; + }); + + // At this point, DELETED elements are elements that we haven't + // rehashed yet. Find them and re-insert them at their ideal + // position. + 'outer: for i in 0..guard.buckets() { + if *guard.ctrl(i) != DELETED { + continue; + } + + let i_p = guard.bucket_ptr(i, size_of); + + 'inner: loop { + // Hash the current item + let hash = hasher(*guard, i); + + // Search for a suitable place to put it + // + // SAFETY: Caller of this function ensures that the control bytes + // are properly initialized. + let new_i = guard.find_insert_slot(hash).index; + + // Probing works by scanning through all of the control + // bytes in groups, which may not be aligned to the group + // size. If both the new and old position fall within the + // same unaligned group, then there is no benefit in moving + // it and we can just continue to the next item. + if likely(guard.is_in_same_group(i, new_i, hash)) { + guard.set_ctrl_h2(i, hash); + continue 'outer; + } + + let new_i_p = guard.bucket_ptr(new_i, size_of); + + // We are moving the current item to a new position. Write + // our H2 to the control byte of the new position. + let prev_ctrl = guard.replace_ctrl_h2(new_i, hash); + if prev_ctrl == EMPTY { + guard.set_ctrl(i, EMPTY); + // If the target slot is empty, simply move the current + // element into the new slot and clear the old control + // byte. + ptr::copy_nonoverlapping(i_p, new_i_p, size_of); + continue 'outer; + } else { + // If the target slot is occupied, swap the two elements + // and then continue processing the element that we just + // swapped into the old slot. + debug_assert_eq!(prev_ctrl, DELETED); + ptr::swap_nonoverlapping(i_p, new_i_p, size_of); + continue 'inner; + } + } + } + + guard.growth_left = bucket_mask_to_capacity(guard.bucket_mask) - guard.items; + + mem::forget(guard); + } + + /// Deallocates the table without dropping any entries. + /// + /// # Note + /// + /// This function must be called only after [`drop_elements`](RawTableInner::drop_elements), + /// else it can lead to leaking of memory. Also calling this function automatically + /// makes invalid (dangling) all instances of buckets ([`Bucket`]) and makes invalid + /// (dangling) the `ctrl` field of the table. + /// + /// # Safety + /// + /// If any of the following conditions are violated, the result is [`Undefined Behavior`]: + /// + /// * The [`RawTableInner`] has already been allocated; + /// + /// * The `alloc` must be the same [`Allocator`] as the `Allocator` that was used + /// to allocate this table. + /// + /// * The `table_layout` must be the same [`TableLayout`] as the `TableLayout` that was used + /// to allocate this table. + /// + /// See also [`GlobalAlloc::dealloc`] or [`Allocator::deallocate`] for more information. + /// + /// [`Undefined Behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + /// [`GlobalAlloc::dealloc`]: https://doc.rust-lang.org/alloc/alloc/trait.GlobalAlloc.html#tymethod.dealloc + /// [`Allocator::deallocate`]: https://doc.rust-lang.org/alloc/alloc/trait.Allocator.html#tymethod.deallocate + #[inline] + unsafe fn free_buckets(&mut self, alloc: &A, table_layout: TableLayout) + where + A: Allocator, + { + // SAFETY: The caller must uphold the safety contract for `free_buckets` + // method. + let (ptr, layout) = self.allocation_info(table_layout); + alloc.deallocate(ptr, layout); + } + + /// Returns a pointer to the allocated memory and the layout that was used to + /// allocate the table. + /// + /// # Safety + /// + /// Caller of this function must observe the following safety rules: + /// + /// * The [`RawTableInner`] has already been allocated, otherwise + /// calling this function results in [`undefined behavior`] + /// + /// * The `table_layout` must be the same [`TableLayout`] as the `TableLayout` + /// that was used to allocate this table. Failure to comply with this condition + /// may result in [`undefined behavior`]. + /// + /// See also [`GlobalAlloc::dealloc`] or [`Allocator::deallocate`] for more information. + /// + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + /// [`GlobalAlloc::dealloc`]: https://doc.rust-lang.org/alloc/alloc/trait.GlobalAlloc.html#tymethod.dealloc + /// [`Allocator::deallocate`]: https://doc.rust-lang.org/alloc/alloc/trait.Allocator.html#tymethod.deallocate + #[inline] + unsafe fn allocation_info(&self, table_layout: TableLayout) -> (NonNull, Layout) { + debug_assert!( + !self.is_empty_singleton(), + "this function can only be called on non-empty tables" + ); + + // Avoid `Option::unwrap_or_else` because it bloats LLVM IR. + let (layout, ctrl_offset) = match table_layout.calculate_layout_for(self.buckets()) { + Some(lco) => lco, + None => unsafe { hint::unreachable_unchecked() }, + }; + ( + // SAFETY: The caller must uphold the safety contract for `allocation_info` method. + unsafe { NonNull::new_unchecked(self.ctrl.as_ptr().sub(ctrl_offset)) }, + layout, + ) + } + + /// Returns a pointer to the allocated memory and the layout that was used to + /// allocate the table. If [`RawTableInner`] has not been allocated, this + /// function return `dangling` pointer and `()` (unit) layout. + /// + /// # Safety + /// + /// The `table_layout` must be the same [`TableLayout`] as the `TableLayout` + /// that was used to allocate this table. Failure to comply with this condition + /// may result in [`undefined behavior`]. + /// + /// See also [`GlobalAlloc::dealloc`] or [`Allocator::deallocate`] for more information. + /// + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + /// [`GlobalAlloc::dealloc`]: https://doc.rust-lang.org/alloc/alloc/trait.GlobalAlloc.html#tymethod.dealloc + /// [`Allocator::deallocate`]: https://doc.rust-lang.org/alloc/alloc/trait.Allocator.html#tymethod.deallocate + #[cfg(feature = "raw")] + unsafe fn allocation_info_or_zero(&self, table_layout: TableLayout) -> (NonNull, Layout) { + if self.is_empty_singleton() { + (NonNull::dangling(), Layout::new::<()>()) + } else { + // SAFETY: + // 1. We have checked that our table is allocated. + // 2. The caller ensures that `table_layout` matches the [`TableLayout`] + // that was used to allocate this table. + unsafe { self.allocation_info(table_layout) } + } + } + + /// Marks all table buckets as empty without dropping their contents. + #[inline] + fn clear_no_drop(&mut self) { + if !self.is_empty_singleton() { + unsafe { + self.ctrl(0).write_bytes(EMPTY, self.num_ctrl_bytes()); + } + } + self.items = 0; + self.growth_left = bucket_mask_to_capacity(self.bucket_mask); + } + + /// Erases the [`Bucket`]'s control byte at the given index so that it does not + /// triggered as full, decreases the `items` of the table and, if it can be done, + /// increases `self.growth_left`. + /// + /// This function does not actually erase / drop the [`Bucket`] itself, i.e. it + /// does not make any changes to the `data` parts of the table. The caller of this + /// function must take care to properly drop the `data`, otherwise calling this + /// function may result in a memory leak. + /// + /// # Safety + /// + /// You must observe the following safety rules when calling this function: + /// + /// * The [`RawTableInner`] has already been allocated; + /// + /// * It must be the full control byte at the given position; + /// + /// * The `index` must not be greater than the `RawTableInner.bucket_mask`, i.e. + /// `index <= RawTableInner.bucket_mask` or, in other words, `(index + 1)` must + /// be no greater than the number returned by the function [`RawTableInner::buckets`]. + /// + /// Calling this function on a table that has not been allocated results in [`undefined behavior`]. + /// + /// Calling this function on a table with no elements is unspecified, but calling subsequent + /// functions is likely to result in [`undefined behavior`] due to overflow subtraction + /// (`self.items -= 1 cause overflow when self.items == 0`). + /// + /// See also [`Bucket::as_ptr`] method, for more information about of properly removing + /// or saving `data element` from / into the [`RawTable`] / [`RawTableInner`]. + /// + /// [`RawTableInner::buckets`]: RawTableInner::buckets + /// [`Bucket::as_ptr`]: Bucket::as_ptr + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline] + unsafe fn erase(&mut self, index: usize) { + debug_assert!(self.is_bucket_full(index)); + + // This is the same as `index.wrapping_sub(Group::WIDTH) % self.buckets()` because + // the number of buckets is a power of two, and `self.bucket_mask = self.buckets() - 1`. + let index_before = index.wrapping_sub(Group::WIDTH) & self.bucket_mask; + // SAFETY: + // - The caller must uphold the safety contract for `erase` method; + // - `index_before` is guaranteed to be in range due to masking with `self.bucket_mask` + let empty_before = Group::load(self.ctrl(index_before)).match_empty(); + let empty_after = Group::load(self.ctrl(index)).match_empty(); + + // Inserting and searching in the map is performed by two key functions: + // + // - The `find_insert_slot` function that looks up the index of any `EMPTY` or `DELETED` + // slot in a group to be able to insert. If it doesn't find an `EMPTY` or `DELETED` + // slot immediately in the first group, it jumps to the next `Group` looking for it, + // and so on until it has gone through all the groups in the control bytes. + // + // - The `find_inner` function that looks for the index of the desired element by looking + // at all the `FULL` bytes in the group. If it did not find the element right away, and + // there is no `EMPTY` byte in the group, then this means that the `find_insert_slot` + // function may have found a suitable slot in the next group. Therefore, `find_inner` + // jumps further, and if it does not find the desired element and again there is no `EMPTY` + // byte, then it jumps further, and so on. The search stops only if `find_inner` function + // finds the desired element or hits an `EMPTY` slot/byte. + // + // Accordingly, this leads to two consequences: + // + // - The map must have `EMPTY` slots (bytes); + // + // - You can't just mark the byte to be erased as `EMPTY`, because otherwise the `find_inner` + // function may stumble upon an `EMPTY` byte before finding the desired element and stop + // searching. + // + // Thus it is necessary to check all bytes after and before the erased element. If we are in + // a contiguous `Group` of `FULL` or `DELETED` bytes (the number of `FULL` or `DELETED` bytes + // before and after is greater than or equal to `Group::WIDTH`), then we must mark our byte as + // `DELETED` in order for the `find_inner` function to go further. On the other hand, if there + // is at least one `EMPTY` slot in the `Group`, then the `find_inner` function will still stumble + // upon an `EMPTY` byte, so we can safely mark our erased byte as `EMPTY` as well. + // + // Finally, since `index_before == (index.wrapping_sub(Group::WIDTH) & self.bucket_mask) == index` + // and given all of the above, tables smaller than the group width (self.buckets() < Group::WIDTH) + // cannot have `DELETED` bytes. + // + // Note that in this context `leading_zeros` refers to the bytes at the end of a group, while + // `trailing_zeros` refers to the bytes at the beginning of a group. + let ctrl = if empty_before.leading_zeros() + empty_after.trailing_zeros() >= Group::WIDTH { + DELETED + } else { + self.growth_left += 1; + EMPTY + }; + // SAFETY: the caller must uphold the safety contract for `erase` method. + self.set_ctrl(index, ctrl); + self.items -= 1; + } +} + +impl Clone for RawTable { + fn clone(&self) -> Self { + if self.table.is_empty_singleton() { + Self::new_in(self.alloc.clone()) + } else { + unsafe { + // Avoid `Result::ok_or_else` because it bloats LLVM IR. + // + // SAFETY: This is safe as we are taking the size of an already allocated table + // and therefore сapacity overflow cannot occur, `self.table.buckets()` is power + // of two and all allocator errors will be caught inside `RawTableInner::new_uninitialized`. + let mut new_table = match Self::new_uninitialized( + self.alloc.clone(), + self.table.buckets(), + Fallibility::Infallible, + ) { + Ok(table) => table, + Err(_) => hint::unreachable_unchecked(), + }; + + // Cloning elements may fail (the clone function may panic). But we don't + // need to worry about uninitialized control bits, since: + // 1. The number of items (elements) in the table is zero, which means that + // the control bits will not be readed by Drop function. + // 2. The `clone_from_spec` method will first copy all control bits from + // `self` (thus initializing them). But this will not affect the `Drop` + // function, since the `clone_from_spec` function sets `items` only after + // successfully clonning all elements. + new_table.clone_from_spec(self); + new_table + } + } + } + + fn clone_from(&mut self, source: &Self) { + if source.table.is_empty_singleton() { + let mut old_inner = mem::replace(&mut self.table, RawTableInner::NEW); + unsafe { + // SAFETY: + // 1. We call the function only once; + // 2. We know for sure that `alloc` and `table_layout` matches the [`Allocator`] + // and [`TableLayout`] that were used to allocate this table. + // 3. If any elements' drop function panics, then there will only be a memory leak, + // because we have replaced the inner table with a new one. + old_inner.drop_inner_table::(&self.alloc, Self::TABLE_LAYOUT); + } + } else { + unsafe { + // Make sure that if any panics occurs, we clear the table and + // leave it in an empty state. + let mut self_ = guard(self, |self_| { + self_.clear_no_drop(); + }); + + // First, drop all our elements without clearing the control + // bytes. If this panics then the scope guard will clear the + // table, leaking any elements that were not dropped yet. + // + // This leak is unavoidable: we can't try dropping more elements + // since this could lead to another panic and abort the process. + // + // SAFETY: If something gets wrong we clear our table right after + // dropping the elements, so there is no double drop, since `items` + // will be equal to zero. + self_.table.drop_elements::(); + + // If necessary, resize our table to match the source. + if self_.buckets() != source.buckets() { + let new_inner = match RawTableInner::new_uninitialized( + &self_.alloc, + Self::TABLE_LAYOUT, + source.buckets(), + Fallibility::Infallible, + ) { + Ok(table) => table, + Err(_) => hint::unreachable_unchecked(), + }; + // Replace the old inner with new uninitialized one. It's ok, since if something gets + // wrong `ScopeGuard` will initialize all control bytes and leave empty table. + let mut old_inner = mem::replace(&mut self_.table, new_inner); + if !old_inner.is_empty_singleton() { + // SAFETY: + // 1. We have checked that our table is allocated. + // 2. We know for sure that `alloc` and `table_layout` matches + // the [`Allocator`] and [`TableLayout`] that were used to allocate this table. + old_inner.free_buckets(&self_.alloc, Self::TABLE_LAYOUT); + } + } + + // Cloning elements may fail (the clone function may panic), but the `ScopeGuard` + // inside the `clone_from_impl` function will take care of that, dropping all + // cloned elements if necessary. Our `ScopeGuard` will clear the table. + self_.clone_from_spec(source); + + // Disarm the scope guard if cloning was successful. + ScopeGuard::into_inner(self_); + } + } + } +} + +/// Specialization of `clone_from` for `Copy` types +trait RawTableClone { + unsafe fn clone_from_spec(&mut self, source: &Self); +} +impl RawTableClone for RawTable { + default_fn! { + #[cfg_attr(feature = "inline-more", inline)] + unsafe fn clone_from_spec(&mut self, source: &Self) { + self.clone_from_impl(source); + } + } +} +#[cfg(feature = "nightly")] +impl RawTableClone for RawTable { + #[cfg_attr(feature = "inline-more", inline)] + unsafe fn clone_from_spec(&mut self, source: &Self) { + source + .table + .ctrl(0) + .copy_to_nonoverlapping(self.table.ctrl(0), self.table.num_ctrl_bytes()); + source + .data_start() + .as_ptr() + .copy_to_nonoverlapping(self.data_start().as_ptr(), self.table.buckets()); + + self.table.items = source.table.items; + self.table.growth_left = source.table.growth_left; + } +} + +impl RawTable { + /// Common code for clone and clone_from. Assumes: + /// - `self.buckets() == source.buckets()`. + /// - Any existing elements have been dropped. + /// - The control bytes are not initialized yet. + #[cfg_attr(feature = "inline-more", inline)] + unsafe fn clone_from_impl(&mut self, source: &Self) { + // Copy the control bytes unchanged. We do this in a single pass + source + .table + .ctrl(0) + .copy_to_nonoverlapping(self.table.ctrl(0), self.table.num_ctrl_bytes()); + + // The cloning of elements may panic, in which case we need + // to make sure we drop only the elements that have been + // cloned so far. + let mut guard = guard((0, &mut *self), |(index, self_)| { + if T::NEEDS_DROP { + for i in 0..*index { + if self_.is_bucket_full(i) { + self_.bucket(i).drop(); + } + } + } + }); + + for from in source.iter() { + let index = source.bucket_index(&from); + let to = guard.1.bucket(index); + to.write(from.as_ref().clone()); + + // Update the index in case we need to unwind. + guard.0 = index + 1; + } + + // Successfully cloned all items, no need to clean up. + mem::forget(guard); + + self.table.items = source.table.items; + self.table.growth_left = source.table.growth_left; + } + + /// Variant of `clone_from` to use when a hasher is available. + #[cfg(feature = "raw")] + pub fn clone_from_with_hasher(&mut self, source: &Self, hasher: impl Fn(&T) -> u64) { + // If we have enough capacity in the table, just clear it and insert + // elements one by one. We don't do this if we have the same number of + // buckets as the source since we can just copy the contents directly + // in that case. + if self.table.buckets() != source.table.buckets() + && bucket_mask_to_capacity(self.table.bucket_mask) >= source.len() + { + self.clear(); + + let mut guard_self = guard(&mut *self, |self_| { + // Clear the partially copied table if a panic occurs, otherwise + // items and growth_left will be out of sync with the contents + // of the table. + self_.clear(); + }); + + unsafe { + for item in source.iter() { + // This may panic. + let item = item.as_ref().clone(); + let hash = hasher(&item); + + // We can use a simpler version of insert() here since: + // - there are no DELETED entries. + // - we know there is enough space in the table. + // - all elements are unique. + let (index, _) = guard_self.table.prepare_insert_slot(hash); + guard_self.bucket(index).write(item); + } + } + + // Successfully cloned all items, no need to clean up. + mem::forget(guard_self); + + self.table.items = source.table.items; + self.table.growth_left -= source.table.items; + } else { + self.clone_from(source); + } + } +} + +impl Default for RawTable { + #[inline] + fn default() -> Self { + Self::new_in(Default::default()) + } +} + +#[cfg(feature = "nightly")] +unsafe impl<#[may_dangle] T, A: Allocator> Drop for RawTable { + #[cfg_attr(feature = "inline-more", inline)] + fn drop(&mut self) { + unsafe { + // SAFETY: + // 1. We call the function only once; + // 2. We know for sure that `alloc` and `table_layout` matches the [`Allocator`] + // and [`TableLayout`] that were used to allocate this table. + // 3. If the drop function of any elements fails, then only a memory leak will occur, + // and we don't care because we are inside the `Drop` function of the `RawTable`, + // so there won't be any table left in an inconsistent state. + self.table + .drop_inner_table::(&self.alloc, Self::TABLE_LAYOUT); + } + } +} +#[cfg(not(feature = "nightly"))] +impl Drop for RawTable { + #[cfg_attr(feature = "inline-more", inline)] + fn drop(&mut self) { + unsafe { + // SAFETY: + // 1. We call the function only once; + // 2. We know for sure that `alloc` and `table_layout` matches the [`Allocator`] + // and [`TableLayout`] that were used to allocate this table. + // 3. If the drop function of any elements fails, then only a memory leak will occur, + // and we don't care because we are inside the `Drop` function of the `RawTable`, + // so there won't be any table left in an inconsistent state. + self.table + .drop_inner_table::(&self.alloc, Self::TABLE_LAYOUT); + } + } +} + +impl IntoIterator for RawTable { + type Item = T; + type IntoIter = RawIntoIter; + + #[cfg_attr(feature = "inline-more", inline)] + fn into_iter(self) -> RawIntoIter { + unsafe { + let iter = self.iter(); + self.into_iter_from(iter) + } + } +} + +/// Iterator over a sub-range of a table. Unlike `RawIter` this iterator does +/// not track an item count. +pub(crate) struct RawIterRange { + // Mask of full buckets in the current group. Bits are cleared from this + // mask as each element is processed. + current_group: BitMaskIter, + + // Pointer to the buckets for the current group. + data: Bucket, + + // Pointer to the next group of control bytes, + // Must be aligned to the group size. + next_ctrl: *const u8, + + // Pointer one past the last control byte of this range. + end: *const u8, +} + +impl RawIterRange { + /// Returns a `RawIterRange` covering a subset of a table. + /// + /// # Safety + /// + /// If any of the following conditions are violated, the result is + /// [`undefined behavior`]: + /// + /// * `ctrl` must be [valid] for reads, i.e. table outlives the `RawIterRange`; + /// + /// * `ctrl` must be properly aligned to the group size (Group::WIDTH); + /// + /// * `ctrl` must point to the array of properly initialized control bytes; + /// + /// * `data` must be the [`Bucket`] at the `ctrl` index in the table; + /// + /// * the value of `len` must be less than or equal to the number of table buckets, + /// and the returned value of `ctrl.as_ptr().add(len).offset_from(ctrl.as_ptr())` + /// must be positive. + /// + /// * The `ctrl.add(len)` pointer must be either in bounds or one + /// byte past the end of the same [allocated table]. + /// + /// * The `len` must be a power of two. + /// + /// [valid]: https://doc.rust-lang.org/std/ptr/index.html#safety + /// [`undefined behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[cfg_attr(feature = "inline-more", inline)] + unsafe fn new(ctrl: *const u8, data: Bucket, len: usize) -> Self { + debug_assert_ne!(len, 0); + debug_assert_eq!(ctrl as usize % Group::WIDTH, 0); + // SAFETY: The caller must uphold the safety rules for the [`RawIterRange::new`] + let end = ctrl.add(len); + + // Load the first group and advance ctrl to point to the next group + // SAFETY: The caller must uphold the safety rules for the [`RawIterRange::new`] + let current_group = Group::load_aligned(ctrl).match_full(); + let next_ctrl = ctrl.add(Group::WIDTH); + + Self { + current_group: current_group.into_iter(), + data, + next_ctrl, + end, + } + } + + /// Splits a `RawIterRange` into two halves. + /// + /// Returns `None` if the remaining range is smaller than or equal to the + /// group width. + #[cfg_attr(feature = "inline-more", inline)] + #[cfg(feature = "rayon")] + pub(crate) fn split(mut self) -> (Self, Option>) { + unsafe { + if self.end <= self.next_ctrl { + // Nothing to split if the group that we are current processing + // is the last one. + (self, None) + } else { + // len is the remaining number of elements after the group that + // we are currently processing. It must be a multiple of the + // group size (small tables are caught by the check above). + let len = offset_from(self.end, self.next_ctrl); + debug_assert_eq!(len % Group::WIDTH, 0); + + // Split the remaining elements into two halves, but round the + // midpoint down in case there is an odd number of groups + // remaining. This ensures that: + // - The tail is at least 1 group long. + // - The split is roughly even considering we still have the + // current group to process. + let mid = (len / 2) & !(Group::WIDTH - 1); + + let tail = Self::new( + self.next_ctrl.add(mid), + self.data.next_n(Group::WIDTH).next_n(mid), + len - mid, + ); + debug_assert_eq!( + self.data.next_n(Group::WIDTH).next_n(mid).ptr, + tail.data.ptr + ); + debug_assert_eq!(self.end, tail.end); + self.end = self.next_ctrl.add(mid); + debug_assert_eq!(self.end.add(Group::WIDTH), tail.next_ctrl); + (self, Some(tail)) + } + } + } + + /// # Safety + /// If DO_CHECK_PTR_RANGE is false, caller must ensure that we never try to iterate + /// after yielding all elements. + #[cfg_attr(feature = "inline-more", inline)] + unsafe fn next_impl(&mut self) -> Option> { + loop { + if let Some(index) = self.current_group.next() { + return Some(self.data.next_n(index)); + } + + if DO_CHECK_PTR_RANGE && self.next_ctrl >= self.end { + return None; + } + + // We might read past self.end up to the next group boundary, + // but this is fine because it only occurs on tables smaller + // than the group size where the trailing control bytes are all + // EMPTY. On larger tables self.end is guaranteed to be aligned + // to the group size (since tables are power-of-two sized). + self.current_group = Group::load_aligned(self.next_ctrl).match_full().into_iter(); + self.data = self.data.next_n(Group::WIDTH); + self.next_ctrl = self.next_ctrl.add(Group::WIDTH); + } + } + + /// Folds every element into an accumulator by applying an operation, + /// returning the final result. + /// + /// `fold_impl()` takes three arguments: the number of items remaining in + /// the iterator, an initial value, and a closure with two arguments: an + /// 'accumulator', and an element. The closure returns the value that the + /// accumulator should have for the next iteration. + /// + /// The initial value is the value the accumulator will have on the first call. + /// + /// After applying this closure to every element of the iterator, `fold_impl()` + /// returns the accumulator. + /// + /// # Safety + /// + /// If any of the following conditions are violated, the result is + /// [`Undefined Behavior`]: + /// + /// * The [`RawTableInner`] / [`RawTable`] must be alive and not moved, + /// i.e. table outlives the `RawIterRange`; + /// + /// * The provided `n` value must match the actual number of items + /// in the table. + /// + /// [`Undefined Behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[allow(clippy::while_let_on_iterator)] + #[cfg_attr(feature = "inline-more", inline)] + unsafe fn fold_impl(mut self, mut n: usize, mut acc: B, mut f: F) -> B + where + F: FnMut(B, Bucket) -> B, + { + loop { + while let Some(index) = self.current_group.next() { + // The returned `index` will always be in the range `0..Group::WIDTH`, + // so that calling `self.data.next_n(index)` is safe (see detailed explanation below). + debug_assert!(n != 0); + let bucket = self.data.next_n(index); + acc = f(acc, bucket); + n -= 1; + } + + if n == 0 { + return acc; + } + + // SAFETY: The caller of this function ensures that: + // + // 1. The provided `n` value matches the actual number of items in the table; + // 2. The table is alive and did not moved. + // + // Taking the above into account, we always stay within the bounds, because: + // + // 1. For tables smaller than the group width (self.buckets() <= Group::WIDTH), + // we will never end up in the given branch, since we should have already + // yielded all the elements of the table. + // + // 2. For tables larger than the group width. The number of buckets is a + // power of two (2 ^ n), Group::WIDTH is also power of two (2 ^ k). Since + // `(2 ^ n) > (2 ^ k)`, than `(2 ^ n) % (2 ^ k) = 0`. As we start from the + // start of the array of control bytes, and never try to iterate after + // getting all the elements, the last `self.current_group` will read bytes + // from the `self.buckets() - Group::WIDTH` index. We know also that + // `self.current_group.next()` will always retun indices within the range + // `0..Group::WIDTH`. + // + // Knowing all of the above and taking into account that we are synchronizing + // the `self.data` index with the index we used to read the `self.current_group`, + // the subsequent `self.data.next_n(index)` will always return a bucket with + // an index number less than `self.buckets()`. + // + // The last `self.next_ctrl`, whose index would be `self.buckets()`, will never + // actually be read, since we should have already yielded all the elements of + // the table. + self.current_group = Group::load_aligned(self.next_ctrl).match_full().into_iter(); + self.data = self.data.next_n(Group::WIDTH); + self.next_ctrl = self.next_ctrl.add(Group::WIDTH); + } + } +} + +// We make raw iterators unconditionally Send and Sync, and let the PhantomData +// in the actual iterator implementations determine the real Send/Sync bounds. +unsafe impl Send for RawIterRange {} +unsafe impl Sync for RawIterRange {} + +impl Clone for RawIterRange { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Self { + data: self.data.clone(), + next_ctrl: self.next_ctrl, + current_group: self.current_group, + end: self.end, + } + } +} + +impl Iterator for RawIterRange { + type Item = Bucket; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option> { + unsafe { + // SAFETY: We set checker flag to true. + self.next_impl::() + } + } + + #[inline] + fn size_hint(&self) -> (usize, Option) { + // We don't have an item count, so just guess based on the range size. + let remaining_buckets = if self.end > self.next_ctrl { + unsafe { offset_from(self.end, self.next_ctrl) } + } else { + 0 + }; + + // Add a group width to include the group we are currently processing. + (0, Some(Group::WIDTH + remaining_buckets)) + } +} + +impl FusedIterator for RawIterRange {} + +/// Iterator which returns a raw pointer to every full bucket in the table. +/// +/// For maximum flexibility this iterator is not bound by a lifetime, but you +/// must observe several rules when using it: +/// - You must not free the hash table while iterating (including via growing/shrinking). +/// - It is fine to erase a bucket that has been yielded by the iterator. +/// - Erasing a bucket that has not yet been yielded by the iterator may still +/// result in the iterator yielding that bucket (unless `reflect_remove` is called). +/// - It is unspecified whether an element inserted after the iterator was +/// created will be yielded by that iterator (unless `reflect_insert` is called). +/// - The order in which the iterator yields bucket is unspecified and may +/// change in the future. +pub struct RawIter { + pub(crate) iter: RawIterRange, + items: usize, +} + +impl RawIter { + /// Refresh the iterator so that it reflects a removal from the given bucket. + /// + /// For the iterator to remain valid, this method must be called once + /// for each removed bucket before `next` is called again. + /// + /// This method should be called _before_ the removal is made. It is not necessary to call this + /// method if you are removing an item that this iterator yielded in the past. + #[cfg(feature = "raw")] + pub unsafe fn reflect_remove(&mut self, b: &Bucket) { + self.reflect_toggle_full(b, false); + } + + /// Refresh the iterator so that it reflects an insertion into the given bucket. + /// + /// For the iterator to remain valid, this method must be called once + /// for each insert before `next` is called again. + /// + /// This method does not guarantee that an insertion of a bucket with a greater + /// index than the last one yielded will be reflected in the iterator. + /// + /// This method should be called _after_ the given insert is made. + #[cfg(feature = "raw")] + pub unsafe fn reflect_insert(&mut self, b: &Bucket) { + self.reflect_toggle_full(b, true); + } + + /// Refresh the iterator so that it reflects a change to the state of the given bucket. + #[cfg(feature = "raw")] + unsafe fn reflect_toggle_full(&mut self, b: &Bucket, is_insert: bool) { + if b.as_ptr() > self.iter.data.as_ptr() { + // The iterator has already passed the bucket's group. + // So the toggle isn't relevant to this iterator. + return; + } + + if self.iter.next_ctrl < self.iter.end + && b.as_ptr() <= self.iter.data.next_n(Group::WIDTH).as_ptr() + { + // The iterator has not yet reached the bucket's group. + // We don't need to reload anything, but we do need to adjust the item count. + + if cfg!(debug_assertions) { + // Double-check that the user isn't lying to us by checking the bucket state. + // To do that, we need to find its control byte. We know that self.iter.data is + // at self.iter.next_ctrl - Group::WIDTH, so we work from there: + let offset = offset_from(self.iter.data.as_ptr(), b.as_ptr()); + let ctrl = self.iter.next_ctrl.sub(Group::WIDTH).add(offset); + // This method should be called _before_ a removal, or _after_ an insert, + // so in both cases the ctrl byte should indicate that the bucket is full. + assert!(is_full(*ctrl)); + } + + if is_insert { + self.items += 1; + } else { + self.items -= 1; + } + + return; + } + + // The iterator is at the bucket group that the toggled bucket is in. + // We need to do two things: + // + // - Determine if the iterator already yielded the toggled bucket. + // If it did, we're done. + // - Otherwise, update the iterator cached group so that it won't + // yield a to-be-removed bucket, or _will_ yield a to-be-added bucket. + // We'll also need to update the item count accordingly. + if let Some(index) = self.iter.current_group.0.lowest_set_bit() { + let next_bucket = self.iter.data.next_n(index); + if b.as_ptr() > next_bucket.as_ptr() { + // The toggled bucket is "before" the bucket the iterator would yield next. We + // therefore don't need to do anything --- the iterator has already passed the + // bucket in question. + // + // The item count must already be correct, since a removal or insert "prior" to + // the iterator's position wouldn't affect the item count. + } else { + // The removed bucket is an upcoming bucket. We need to make sure it does _not_ + // get yielded, and also that it's no longer included in the item count. + // + // NOTE: We can't just reload the group here, both since that might reflect + // inserts we've already passed, and because that might inadvertently unset the + // bits for _other_ removals. If we do that, we'd have to also decrement the + // item count for those other bits that we unset. But the presumably subsequent + // call to reflect for those buckets might _also_ decrement the item count. + // Instead, we _just_ flip the bit for the particular bucket the caller asked + // us to reflect. + let our_bit = offset_from(self.iter.data.as_ptr(), b.as_ptr()); + let was_full = self.iter.current_group.flip(our_bit); + debug_assert_ne!(was_full, is_insert); + + if is_insert { + self.items += 1; + } else { + self.items -= 1; + } + + if cfg!(debug_assertions) { + if b.as_ptr() == next_bucket.as_ptr() { + // The removed bucket should no longer be next + debug_assert_ne!(self.iter.current_group.0.lowest_set_bit(), Some(index)); + } else { + // We should not have changed what bucket comes next. + debug_assert_eq!(self.iter.current_group.0.lowest_set_bit(), Some(index)); + } + } + } + } else { + // We must have already iterated past the removed item. + } + } + + unsafe fn drop_elements(&mut self) { + if T::NEEDS_DROP && self.items != 0 { + for item in self { + item.drop(); + } + } + } +} + +impl Clone for RawIter { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Self { + iter: self.iter.clone(), + items: self.items, + } + } +} + +impl Iterator for RawIter { + type Item = Bucket; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option> { + // Inner iterator iterates over buckets + // so it can do unnecessary work if we already yielded all items. + if self.items == 0 { + return None; + } + + let nxt = unsafe { + // SAFETY: We check number of items to yield using `items` field. + self.iter.next_impl::() + }; + + debug_assert!(nxt.is_some()); + self.items -= 1; + + nxt + } + + #[inline] + fn size_hint(&self) -> (usize, Option) { + (self.items, Some(self.items)) + } + + #[inline] + fn fold(self, init: B, f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + unsafe { self.iter.fold_impl(self.items, init, f) } + } +} + +impl ExactSizeIterator for RawIter {} +impl FusedIterator for RawIter {} + +/// Iterator which returns an index of every full bucket in the table. +/// +/// For maximum flexibility this iterator is not bound by a lifetime, but you +/// must observe several rules when using it: +/// - You must not free the hash table while iterating (including via growing/shrinking). +/// - It is fine to erase a bucket that has been yielded by the iterator. +/// - Erasing a bucket that has not yet been yielded by the iterator may still +/// result in the iterator yielding index of that bucket. +/// - It is unspecified whether an element inserted after the iterator was +/// created will be yielded by that iterator. +/// - The order in which the iterator yields indices of the buckets is unspecified +/// and may change in the future. +pub(crate) struct FullBucketsIndices { + // Mask of full buckets in the current group. Bits are cleared from this + // mask as each element is processed. + current_group: BitMaskIter, + + // Initial value of the bytes' indices of the current group (relative + // to the start of the control bytes). + group_first_index: usize, + + // Pointer to the current group of control bytes, + // Must be aligned to the group size (Group::WIDTH). + ctrl: NonNull, + + // Number of elements in the table. + items: usize, +} + +impl FullBucketsIndices { + /// Advances the iterator and returns the next value. + /// + /// # Safety + /// + /// If any of the following conditions are violated, the result is + /// [`Undefined Behavior`]: + /// + /// * The [`RawTableInner`] / [`RawTable`] must be alive and not moved, + /// i.e. table outlives the `FullBucketsIndices`; + /// + /// * It never tries to iterate after getting all elements. + /// + /// [`Undefined Behavior`]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[inline(always)] + unsafe fn next_impl(&mut self) -> Option { + loop { + if let Some(index) = self.current_group.next() { + // The returned `self.group_first_index + index` will always + // be in the range `0..self.buckets()`. See explanation below. + return Some(self.group_first_index + index); + } + + // SAFETY: The caller of this function ensures that: + // + // 1. It never tries to iterate after getting all the elements; + // 2. The table is alive and did not moved; + // 3. The first `self.ctrl` pointed to the start of the array of control bytes. + // + // Taking the above into account, we always stay within the bounds, because: + // + // 1. For tables smaller than the group width (self.buckets() <= Group::WIDTH), + // we will never end up in the given branch, since we should have already + // yielded all the elements of the table. + // + // 2. For tables larger than the group width. The number of buckets is a + // power of two (2 ^ n), Group::WIDTH is also power of two (2 ^ k). Since + // `(2 ^ n) > (2 ^ k)`, than `(2 ^ n) % (2 ^ k) = 0`. As we start from the + // the start of the array of control bytes, and never try to iterate after + // getting all the elements, the last `self.ctrl` will be equal to + // the `self.buckets() - Group::WIDTH`, so `self.current_group.next()` + // will always contains indices within the range `0..Group::WIDTH`, + // and subsequent `self.group_first_index + index` will always return a + // number less than `self.buckets()`. + self.ctrl = NonNull::new_unchecked(self.ctrl.as_ptr().add(Group::WIDTH)); + + // SAFETY: See explanation above. + self.current_group = Group::load_aligned(self.ctrl.as_ptr()) + .match_full() + .into_iter(); + self.group_first_index += Group::WIDTH; + } + } +} + +impl Iterator for FullBucketsIndices { + type Item = usize; + + /// Advances the iterator and returns the next value. It is up to + /// the caller to ensure that the `RawTable` outlives the `FullBucketsIndices`, + /// because we cannot make the `next` method unsafe. + #[inline(always)] + fn next(&mut self) -> Option { + // Return if we already yielded all items. + if self.items == 0 { + return None; + } + + let nxt = unsafe { + // SAFETY: + // 1. We check number of items to yield using `items` field. + // 2. The caller ensures that the table is alive and has not moved. + self.next_impl() + }; + + debug_assert!(nxt.is_some()); + self.items -= 1; + + nxt + } + + #[inline(always)] + fn size_hint(&self) -> (usize, Option) { + (self.items, Some(self.items)) + } +} + +impl ExactSizeIterator for FullBucketsIndices {} +impl FusedIterator for FullBucketsIndices {} + +/// Iterator which consumes a table and returns elements. +pub struct RawIntoIter { + iter: RawIter, + allocation: Option<(NonNull, Layout, A)>, + marker: PhantomData, +} + +impl RawIntoIter { + #[cfg_attr(feature = "inline-more", inline)] + pub fn iter(&self) -> RawIter { + self.iter.clone() + } +} + +unsafe impl Send for RawIntoIter +where + T: Send, + A: Send, +{ +} +unsafe impl Sync for RawIntoIter +where + T: Sync, + A: Sync, +{ +} + +#[cfg(feature = "nightly")] +unsafe impl<#[may_dangle] T, A: Allocator> Drop for RawIntoIter { + #[cfg_attr(feature = "inline-more", inline)] + fn drop(&mut self) { + unsafe { + // Drop all remaining elements + self.iter.drop_elements(); + + // Free the table + if let Some((ptr, layout, ref alloc)) = self.allocation { + alloc.deallocate(ptr, layout); + } + } + } +} +#[cfg(not(feature = "nightly"))] +impl Drop for RawIntoIter { + #[cfg_attr(feature = "inline-more", inline)] + fn drop(&mut self) { + unsafe { + // Drop all remaining elements + self.iter.drop_elements(); + + // Free the table + if let Some((ptr, layout, ref alloc)) = self.allocation { + alloc.deallocate(ptr, layout); + } + } + } +} + +impl Iterator for RawIntoIter { + type Item = T; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option { + unsafe { Some(self.iter.next()?.read()) } + } + + #[inline] + fn size_hint(&self) -> (usize, Option) { + self.iter.size_hint() + } +} + +impl ExactSizeIterator for RawIntoIter {} +impl FusedIterator for RawIntoIter {} + +/// Iterator which consumes elements without freeing the table storage. +pub struct RawDrain<'a, T, A: Allocator = Global> { + iter: RawIter, + + // The table is moved into the iterator for the duration of the drain. This + // ensures that an empty table is left if the drain iterator is leaked + // without dropping. + table: RawTableInner, + orig_table: NonNull, + + // We don't use a &'a mut RawTable because we want RawDrain to be + // covariant over T. + marker: PhantomData<&'a RawTable>, +} + +impl RawDrain<'_, T, A> { + #[cfg_attr(feature = "inline-more", inline)] + pub fn iter(&self) -> RawIter { + self.iter.clone() + } +} + +unsafe impl Send for RawDrain<'_, T, A> +where + T: Send, + A: Send, +{ +} +unsafe impl Sync for RawDrain<'_, T, A> +where + T: Sync, + A: Sync, +{ +} + +impl Drop for RawDrain<'_, T, A> { + #[cfg_attr(feature = "inline-more", inline)] + fn drop(&mut self) { + unsafe { + // Drop all remaining elements. Note that this may panic. + self.iter.drop_elements(); + + // Reset the contents of the table now that all elements have been + // dropped. + self.table.clear_no_drop(); + + // Move the now empty table back to its original location. + self.orig_table + .as_ptr() + .copy_from_nonoverlapping(&self.table, 1); + } + } +} + +impl Iterator for RawDrain<'_, T, A> { + type Item = T; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option { + unsafe { + let item = self.iter.next()?; + Some(item.read()) + } + } + + #[inline] + fn size_hint(&self) -> (usize, Option) { + self.iter.size_hint() + } +} + +impl ExactSizeIterator for RawDrain<'_, T, A> {} +impl FusedIterator for RawDrain<'_, T, A> {} + +/// Iterator over occupied buckets that could match a given hash. +/// +/// `RawTable` only stores 7 bits of the hash value, so this iterator may return +/// items that have a hash value different than the one provided. You should +/// always validate the returned values before using them. +/// +/// For maximum flexibility this iterator is not bound by a lifetime, but you +/// must observe several rules when using it: +/// - You must not free the hash table while iterating (including via growing/shrinking). +/// - It is fine to erase a bucket that has been yielded by the iterator. +/// - Erasing a bucket that has not yet been yielded by the iterator may still +/// result in the iterator yielding that bucket. +/// - It is unspecified whether an element inserted after the iterator was +/// created will be yielded by that iterator. +/// - The order in which the iterator yields buckets is unspecified and may +/// change in the future. +pub struct RawIterHash { + inner: RawIterHashInner, + _marker: PhantomData, +} + +struct RawIterHashInner { + // See `RawTableInner`'s corresponding fields for details. + // We can't store a `*const RawTableInner` as it would get + // invalidated by the user calling `&mut` methods on `RawTable`. + bucket_mask: usize, + ctrl: NonNull, + + // The top 7 bits of the hash. + h2_hash: u8, + + // The sequence of groups to probe in the search. + probe_seq: ProbeSeq, + + group: Group, + + // The elements within the group with a matching h2-hash. + bitmask: BitMaskIter, +} + +impl RawIterHash { + #[cfg_attr(feature = "inline-more", inline)] + #[cfg(feature = "raw")] + unsafe fn new(table: &RawTable, hash: u64) -> Self { + RawIterHash { + inner: RawIterHashInner::new(&table.table, hash), + _marker: PhantomData, + } + } +} +impl RawIterHashInner { + #[cfg_attr(feature = "inline-more", inline)] + #[cfg(feature = "raw")] + unsafe fn new(table: &RawTableInner, hash: u64) -> Self { + let h2_hash = h2(hash); + let probe_seq = table.probe_seq(hash); + let group = Group::load(table.ctrl(probe_seq.pos)); + let bitmask = group.match_byte(h2_hash).into_iter(); + + RawIterHashInner { + bucket_mask: table.bucket_mask, + ctrl: table.ctrl, + h2_hash, + probe_seq, + group, + bitmask, + } + } +} + +impl Iterator for RawIterHash { + type Item = Bucket; + + fn next(&mut self) -> Option> { + unsafe { + match self.inner.next() { + Some(index) => { + // Can't use `RawTable::bucket` here as we don't have + // an actual `RawTable` reference to use. + debug_assert!(index <= self.inner.bucket_mask); + let bucket = Bucket::from_base_index(self.inner.ctrl.cast(), index); + Some(bucket) + } + None => None, + } + } + } +} + +impl Iterator for RawIterHashInner { + type Item = usize; + + fn next(&mut self) -> Option { + unsafe { + loop { + if let Some(bit) = self.bitmask.next() { + let index = (self.probe_seq.pos + bit) & self.bucket_mask; + return Some(index); + } + if likely(self.group.match_empty().any_bit_set()) { + return None; + } + self.probe_seq.move_next(self.bucket_mask); + + // Can't use `RawTableInner::ctrl` here as we don't have + // an actual `RawTableInner` reference to use. + let index = self.probe_seq.pos; + debug_assert!(index < self.bucket_mask + 1 + Group::WIDTH); + let group_ctrl = self.ctrl.as_ptr().add(index); + + self.group = Group::load(group_ctrl); + self.bitmask = self.group.match_byte(self.h2_hash).into_iter(); + } + } + } +} + +pub(crate) struct RawExtractIf<'a, T, A: Allocator> { + pub iter: RawIter, + pub table: &'a mut RawTable, +} + +impl RawExtractIf<'_, T, A> { + #[cfg_attr(feature = "inline-more", inline)] + pub(crate) fn next(&mut self, mut f: F) -> Option + where + F: FnMut(&mut T) -> bool, + { + unsafe { + for item in &mut self.iter { + if f(item.as_mut()) { + return Some(self.table.remove(item).0); + } + } + } + None + } +} + +#[cfg(test)] +mod test_map { + use super::*; + + fn rehash_in_place(table: &mut RawTable, hasher: impl Fn(&T) -> u64) { + unsafe { + table.table.rehash_in_place( + &|table, index| hasher(table.bucket::(index).as_ref()), + mem::size_of::(), + if mem::needs_drop::() { + Some(mem::transmute(ptr::drop_in_place:: as unsafe fn(*mut T))) + } else { + None + }, + ); + } + } + + #[test] + fn rehash() { + let mut table = RawTable::new(); + let hasher = |i: &u64| *i; + for i in 0..100 { + table.insert(i, i, hasher); + } + + for i in 0..100 { + unsafe { + assert_eq!(table.find(i, |x| *x == i).map(|b| b.read()), Some(i)); + } + assert!(table.find(i + 100, |x| *x == i + 100).is_none()); + } + + rehash_in_place(&mut table, hasher); + + for i in 0..100 { + unsafe { + assert_eq!(table.find(i, |x| *x == i).map(|b| b.read()), Some(i)); + } + assert!(table.find(i + 100, |x| *x == i + 100).is_none()); + } + } + + /// CHECKING THAT WE ARE NOT TRYING TO READ THE MEMORY OF + /// AN UNINITIALIZED TABLE DURING THE DROP + #[test] + fn test_drop_uninitialized() { + use ::alloc::vec::Vec; + + let table = unsafe { + // SAFETY: The `buckets` is power of two and we're not + // trying to actually use the returned RawTable. + RawTable::<(u64, Vec)>::new_uninitialized(Global, 8, Fallibility::Infallible) + .unwrap() + }; + drop(table); + } + + /// CHECKING THAT WE DON'T TRY TO DROP DATA IF THE `ITEMS` + /// ARE ZERO, EVEN IF WE HAVE `FULL` CONTROL BYTES. + #[test] + fn test_drop_zero_items() { + use ::alloc::vec::Vec; + unsafe { + // SAFETY: The `buckets` is power of two and we're not + // trying to actually use the returned RawTable. + let table = + RawTable::<(u64, Vec)>::new_uninitialized(Global, 8, Fallibility::Infallible) + .unwrap(); + + // WE SIMULATE, AS IT WERE, A FULL TABLE. + + // SAFETY: We checked that the table is allocated and therefore the table already has + // `self.bucket_mask + 1 + Group::WIDTH` number of control bytes (see TableLayout::calculate_layout_for) + // so writing `table.table.num_ctrl_bytes() == bucket_mask + 1 + Group::WIDTH` bytes is safe. + table + .table + .ctrl(0) + .write_bytes(EMPTY, table.table.num_ctrl_bytes()); + + // SAFETY: table.capacity() is guaranteed to be smaller than table.buckets() + table.table.ctrl(0).write_bytes(0, table.capacity()); + + // Fix up the trailing control bytes. See the comments in set_ctrl + // for the handling of tables smaller than the group width. + if table.buckets() < Group::WIDTH { + // SAFETY: We have `self.bucket_mask + 1 + Group::WIDTH` number of control bytes, + // so copying `self.buckets() == self.bucket_mask + 1` bytes with offset equal to + // `Group::WIDTH` is safe + table + .table + .ctrl(0) + .copy_to(table.table.ctrl(Group::WIDTH), table.table.buckets()); + } else { + // SAFETY: We have `self.bucket_mask + 1 + Group::WIDTH` number of + // control bytes,so copying `Group::WIDTH` bytes with offset equal + // to `self.buckets() == self.bucket_mask + 1` is safe + table + .table + .ctrl(0) + .copy_to(table.table.ctrl(table.table.buckets()), Group::WIDTH); + } + drop(table); + } + } + + /// CHECKING THAT WE DON'T TRY TO DROP DATA IF THE `ITEMS` + /// ARE ZERO, EVEN IF WE HAVE `FULL` CONTROL BYTES. + #[test] + fn test_catch_panic_clone_from() { + use ::alloc::sync::Arc; + use ::alloc::vec::Vec; + use allocator_api2::alloc::{AllocError, Allocator, Global}; + use core::sync::atomic::{AtomicI8, Ordering}; + use std::thread; + + struct MyAllocInner { + drop_count: Arc, + } + + #[derive(Clone)] + struct MyAlloc { + _inner: Arc, + } + + impl Drop for MyAllocInner { + fn drop(&mut self) { + println!("MyAlloc freed."); + self.drop_count.fetch_sub(1, Ordering::SeqCst); + } + } + + unsafe impl Allocator for MyAlloc { + fn allocate(&self, layout: Layout) -> std::result::Result, AllocError> { + let g = Global; + g.allocate(layout) + } + + unsafe fn deallocate(&self, ptr: NonNull, layout: Layout) { + let g = Global; + g.deallocate(ptr, layout) + } + } + + const DISARMED: bool = false; + const ARMED: bool = true; + + struct CheckedCloneDrop { + panic_in_clone: bool, + dropped: bool, + need_drop: Vec, + } + + impl Clone for CheckedCloneDrop { + fn clone(&self) -> Self { + if self.panic_in_clone { + panic!("panic in clone") + } + Self { + panic_in_clone: self.panic_in_clone, + dropped: self.dropped, + need_drop: self.need_drop.clone(), + } + } + } + + impl Drop for CheckedCloneDrop { + fn drop(&mut self) { + if self.dropped { + panic!("double drop"); + } + self.dropped = true; + } + } + + let dropped: Arc = Arc::new(AtomicI8::new(2)); + + let mut table = RawTable::new_in(MyAlloc { + _inner: Arc::new(MyAllocInner { + drop_count: dropped.clone(), + }), + }); + + for (idx, panic_in_clone) in core::iter::repeat(DISARMED).take(7).enumerate() { + let idx = idx as u64; + table.insert( + idx, + ( + idx, + CheckedCloneDrop { + panic_in_clone, + dropped: false, + need_drop: vec![idx], + }, + ), + |(k, _)| *k, + ); + } + + assert_eq!(table.len(), 7); + + thread::scope(|s| { + let result = s.spawn(|| { + let armed_flags = [ + DISARMED, DISARMED, ARMED, DISARMED, DISARMED, DISARMED, DISARMED, + ]; + let mut scope_table = RawTable::new_in(MyAlloc { + _inner: Arc::new(MyAllocInner { + drop_count: dropped.clone(), + }), + }); + for (idx, &panic_in_clone) in armed_flags.iter().enumerate() { + let idx = idx as u64; + scope_table.insert( + idx, + ( + idx, + CheckedCloneDrop { + panic_in_clone, + dropped: false, + need_drop: vec![idx + 100], + }, + ), + |(k, _)| *k, + ); + } + table.clone_from(&scope_table); + }); + assert!(result.join().is_err()); + }); + + // Let's check that all iterators work fine and do not return elements + // (especially `RawIterRange`, which does not depend on the number of + // elements in the table, but looks directly at the control bytes) + // + // SAFETY: We know for sure that `RawTable` will outlive + // the returned `RawIter / RawIterRange` iterator. + assert_eq!(table.len(), 0); + assert_eq!(unsafe { table.iter().count() }, 0); + assert_eq!(unsafe { table.iter().iter.count() }, 0); + + for idx in 0..table.buckets() { + let idx = idx as u64; + assert!( + table.find(idx, |(k, _)| *k == idx).is_none(), + "Index: {idx}" + ); + } + + // All allocator clones should already be dropped. + assert_eq!(dropped.load(Ordering::SeqCst), 1); + } +} diff --git a/src/rust/vendor/hashbrown/src/raw/neon.rs b/src/rust/vendor/hashbrown/src/raw/neon.rs new file mode 100644 index 000000000..44e82d57d --- /dev/null +++ b/src/rust/vendor/hashbrown/src/raw/neon.rs @@ -0,0 +1,124 @@ +use super::bitmask::BitMask; +use super::EMPTY; +use core::arch::aarch64 as neon; +use core::mem; +use core::num::NonZeroU64; + +pub(crate) type BitMaskWord = u64; +pub(crate) type NonZeroBitMaskWord = NonZeroU64; +pub(crate) const BITMASK_STRIDE: usize = 8; +pub(crate) const BITMASK_MASK: BitMaskWord = !0; +pub(crate) const BITMASK_ITER_MASK: BitMaskWord = 0x8080_8080_8080_8080; + +/// Abstraction over a group of control bytes which can be scanned in +/// parallel. +/// +/// This implementation uses a 64-bit NEON value. +#[derive(Copy, Clone)] +pub(crate) struct Group(neon::uint8x8_t); + +#[allow(clippy::use_self)] +impl Group { + /// Number of bytes in the group. + pub(crate) const WIDTH: usize = mem::size_of::(); + + /// Returns a full group of empty bytes, suitable for use as the initial + /// value for an empty hash table. + /// + /// This is guaranteed to be aligned to the group size. + #[inline] + pub(crate) const fn static_empty() -> &'static [u8; Group::WIDTH] { + #[repr(C)] + struct AlignedBytes { + _align: [Group; 0], + bytes: [u8; Group::WIDTH], + } + const ALIGNED_BYTES: AlignedBytes = AlignedBytes { + _align: [], + bytes: [EMPTY; Group::WIDTH], + }; + &ALIGNED_BYTES.bytes + } + + /// Loads a group of bytes starting at the given address. + #[inline] + #[allow(clippy::cast_ptr_alignment)] // unaligned load + pub(crate) unsafe fn load(ptr: *const u8) -> Self { + Group(neon::vld1_u8(ptr)) + } + + /// Loads a group of bytes starting at the given address, which must be + /// aligned to `mem::align_of::()`. + #[inline] + #[allow(clippy::cast_ptr_alignment)] + pub(crate) unsafe fn load_aligned(ptr: *const u8) -> Self { + // FIXME: use align_offset once it stabilizes + debug_assert_eq!(ptr as usize & (mem::align_of::() - 1), 0); + Group(neon::vld1_u8(ptr)) + } + + /// Stores the group of bytes to the given address, which must be + /// aligned to `mem::align_of::()`. + #[inline] + #[allow(clippy::cast_ptr_alignment)] + pub(crate) unsafe fn store_aligned(self, ptr: *mut u8) { + // FIXME: use align_offset once it stabilizes + debug_assert_eq!(ptr as usize & (mem::align_of::() - 1), 0); + neon::vst1_u8(ptr, self.0); + } + + /// Returns a `BitMask` indicating all bytes in the group which *may* + /// have the given value. + #[inline] + pub(crate) fn match_byte(self, byte: u8) -> BitMask { + unsafe { + let cmp = neon::vceq_u8(self.0, neon::vdup_n_u8(byte)); + BitMask(neon::vget_lane_u64(neon::vreinterpret_u64_u8(cmp), 0)) + } + } + + /// Returns a `BitMask` indicating all bytes in the group which are + /// `EMPTY`. + #[inline] + pub(crate) fn match_empty(self) -> BitMask { + self.match_byte(EMPTY) + } + + /// Returns a `BitMask` indicating all bytes in the group which are + /// `EMPTY` or `DELETED`. + #[inline] + pub(crate) fn match_empty_or_deleted(self) -> BitMask { + unsafe { + let cmp = neon::vcltz_s8(neon::vreinterpret_s8_u8(self.0)); + BitMask(neon::vget_lane_u64(neon::vreinterpret_u64_u8(cmp), 0)) + } + } + + /// Returns a `BitMask` indicating all bytes in the group which are full. + #[inline] + pub(crate) fn match_full(self) -> BitMask { + unsafe { + let cmp = neon::vcgez_s8(neon::vreinterpret_s8_u8(self.0)); + BitMask(neon::vget_lane_u64(neon::vreinterpret_u64_u8(cmp), 0)) + } + } + + /// Performs the following transformation on all bytes in the group: + /// - `EMPTY => EMPTY` + /// - `DELETED => EMPTY` + /// - `FULL => DELETED` + #[inline] + pub(crate) fn convert_special_to_empty_and_full_to_deleted(self) -> Self { + // Map high_bit = 1 (EMPTY or DELETED) to 1111_1111 + // and high_bit = 0 (FULL) to 1000_0000 + // + // Here's this logic expanded to concrete values: + // let special = 0 > byte = 1111_1111 (true) or 0000_0000 (false) + // 1111_1111 | 1000_0000 = 1111_1111 + // 0000_0000 | 1000_0000 = 1000_0000 + unsafe { + let special = neon::vcltz_s8(neon::vreinterpret_s8_u8(self.0)); + Group(neon::vorr_u8(special, neon::vdup_n_u8(0x80))) + } + } +} diff --git a/src/rust/vendor/hashbrown/src/raw/sse2.rs b/src/rust/vendor/hashbrown/src/raw/sse2.rs new file mode 100644 index 000000000..956ba5d26 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/raw/sse2.rs @@ -0,0 +1,149 @@ +use super::bitmask::BitMask; +use super::EMPTY; +use core::mem; +use core::num::NonZeroU16; + +#[cfg(target_arch = "x86")] +use core::arch::x86; +#[cfg(target_arch = "x86_64")] +use core::arch::x86_64 as x86; + +pub(crate) type BitMaskWord = u16; +pub(crate) type NonZeroBitMaskWord = NonZeroU16; +pub(crate) const BITMASK_STRIDE: usize = 1; +pub(crate) const BITMASK_MASK: BitMaskWord = 0xffff; +pub(crate) const BITMASK_ITER_MASK: BitMaskWord = !0; + +/// Abstraction over a group of control bytes which can be scanned in +/// parallel. +/// +/// This implementation uses a 128-bit SSE value. +#[derive(Copy, Clone)] +pub(crate) struct Group(x86::__m128i); + +// FIXME: https://github.com/rust-lang/rust-clippy/issues/3859 +#[allow(clippy::use_self)] +impl Group { + /// Number of bytes in the group. + pub(crate) const WIDTH: usize = mem::size_of::(); + + /// Returns a full group of empty bytes, suitable for use as the initial + /// value for an empty hash table. + /// + /// This is guaranteed to be aligned to the group size. + #[inline] + #[allow(clippy::items_after_statements)] + pub(crate) const fn static_empty() -> &'static [u8; Group::WIDTH] { + #[repr(C)] + struct AlignedBytes { + _align: [Group; 0], + bytes: [u8; Group::WIDTH], + } + const ALIGNED_BYTES: AlignedBytes = AlignedBytes { + _align: [], + bytes: [EMPTY; Group::WIDTH], + }; + &ALIGNED_BYTES.bytes + } + + /// Loads a group of bytes starting at the given address. + #[inline] + #[allow(clippy::cast_ptr_alignment)] // unaligned load + pub(crate) unsafe fn load(ptr: *const u8) -> Self { + Group(x86::_mm_loadu_si128(ptr.cast())) + } + + /// Loads a group of bytes starting at the given address, which must be + /// aligned to `mem::align_of::()`. + #[inline] + #[allow(clippy::cast_ptr_alignment)] + pub(crate) unsafe fn load_aligned(ptr: *const u8) -> Self { + // FIXME: use align_offset once it stabilizes + debug_assert_eq!(ptr as usize & (mem::align_of::() - 1), 0); + Group(x86::_mm_load_si128(ptr.cast())) + } + + /// Stores the group of bytes to the given address, which must be + /// aligned to `mem::align_of::()`. + #[inline] + #[allow(clippy::cast_ptr_alignment)] + pub(crate) unsafe fn store_aligned(self, ptr: *mut u8) { + // FIXME: use align_offset once it stabilizes + debug_assert_eq!(ptr as usize & (mem::align_of::() - 1), 0); + x86::_mm_store_si128(ptr.cast(), self.0); + } + + /// Returns a `BitMask` indicating all bytes in the group which have + /// the given value. + #[inline] + pub(crate) fn match_byte(self, byte: u8) -> BitMask { + #[allow( + clippy::cast_possible_wrap, // byte: u8 as i8 + // byte: i32 as u16 + // note: _mm_movemask_epi8 returns a 16-bit mask in a i32, the + // upper 16-bits of the i32 are zeroed: + clippy::cast_sign_loss, + clippy::cast_possible_truncation + )] + unsafe { + let cmp = x86::_mm_cmpeq_epi8(self.0, x86::_mm_set1_epi8(byte as i8)); + BitMask(x86::_mm_movemask_epi8(cmp) as u16) + } + } + + /// Returns a `BitMask` indicating all bytes in the group which are + /// `EMPTY`. + #[inline] + pub(crate) fn match_empty(self) -> BitMask { + self.match_byte(EMPTY) + } + + /// Returns a `BitMask` indicating all bytes in the group which are + /// `EMPTY` or `DELETED`. + #[inline] + pub(crate) fn match_empty_or_deleted(self) -> BitMask { + #[allow( + // byte: i32 as u16 + // note: _mm_movemask_epi8 returns a 16-bit mask in a i32, the + // upper 16-bits of the i32 are zeroed: + clippy::cast_sign_loss, + clippy::cast_possible_truncation + )] + unsafe { + // A byte is EMPTY or DELETED iff the high bit is set + BitMask(x86::_mm_movemask_epi8(self.0) as u16) + } + } + + /// Returns a `BitMask` indicating all bytes in the group which are full. + #[inline] + pub(crate) fn match_full(&self) -> BitMask { + self.match_empty_or_deleted().invert() + } + + /// Performs the following transformation on all bytes in the group: + /// - `EMPTY => EMPTY` + /// - `DELETED => EMPTY` + /// - `FULL => DELETED` + #[inline] + pub(crate) fn convert_special_to_empty_and_full_to_deleted(self) -> Self { + // Map high_bit = 1 (EMPTY or DELETED) to 1111_1111 + // and high_bit = 0 (FULL) to 1000_0000 + // + // Here's this logic expanded to concrete values: + // let special = 0 > byte = 1111_1111 (true) or 0000_0000 (false) + // 1111_1111 | 1000_0000 = 1111_1111 + // 0000_0000 | 1000_0000 = 1000_0000 + #[allow( + clippy::cast_possible_wrap, // byte: 0x80_u8 as i8 + )] + unsafe { + let zero = x86::_mm_setzero_si128(); + let special = x86::_mm_cmpgt_epi8(zero, self.0); + Group(x86::_mm_or_si128( + special, + x86::_mm_set1_epi8(0x80_u8 as i8), + )) + } + } +} diff --git a/src/rust/vendor/hashbrown/src/rustc_entry.rs b/src/rust/vendor/hashbrown/src/rustc_entry.rs new file mode 100644 index 000000000..defbd4bb8 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/rustc_entry.rs @@ -0,0 +1,630 @@ +use self::RustcEntry::*; +use crate::map::{make_hash, Drain, HashMap, IntoIter, Iter, IterMut}; +use crate::raw::{Allocator, Bucket, Global, RawTable}; +use core::fmt::{self, Debug}; +use core::hash::{BuildHasher, Hash}; +use core::mem; + +impl HashMap +where + K: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + /// Gets the given key's corresponding entry in the map for in-place manipulation. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut letters = HashMap::new(); + /// + /// for ch in "a short treatise on fungi".chars() { + /// let counter = letters.rustc_entry(ch).or_insert(0); + /// *counter += 1; + /// } + /// + /// assert_eq!(letters[&'s'], 2); + /// assert_eq!(letters[&'t'], 3); + /// assert_eq!(letters[&'u'], 1); + /// assert_eq!(letters.get(&'y'), None); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn rustc_entry(&mut self, key: K) -> RustcEntry<'_, K, V, A> { + let hash = make_hash(&self.hash_builder, &key); + if let Some(elem) = self.table.find(hash, |q| q.0.eq(&key)) { + RustcEntry::Occupied(RustcOccupiedEntry { + key: Some(key), + elem, + table: &mut self.table, + }) + } else { + // Ideally we would put this in VacantEntry::insert, but Entry is not + // generic over the BuildHasher and adding a generic parameter would be + // a breaking change. + self.reserve(1); + + RustcEntry::Vacant(RustcVacantEntry { + hash, + key, + table: &mut self.table, + }) + } + } +} + +/// A view into a single entry in a map, which may either be vacant or occupied. +/// +/// This `enum` is constructed from the [`rustc_entry`] method on [`HashMap`]. +/// +/// [`HashMap`]: struct.HashMap.html +/// [`rustc_entry`]: struct.HashMap.html#method.rustc_entry +pub enum RustcEntry<'a, K, V, A = Global> +where + A: Allocator, +{ + /// An occupied entry. + Occupied(RustcOccupiedEntry<'a, K, V, A>), + + /// A vacant entry. + Vacant(RustcVacantEntry<'a, K, V, A>), +} + +impl Debug for RustcEntry<'_, K, V, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match *self { + Vacant(ref v) => f.debug_tuple("Entry").field(v).finish(), + Occupied(ref o) => f.debug_tuple("Entry").field(o).finish(), + } + } +} + +/// A view into an occupied entry in a `HashMap`. +/// It is part of the [`RustcEntry`] enum. +/// +/// [`RustcEntry`]: enum.RustcEntry.html +pub struct RustcOccupiedEntry<'a, K, V, A = Global> +where + A: Allocator, +{ + key: Option, + elem: Bucket<(K, V)>, + table: &'a mut RawTable<(K, V), A>, +} + +unsafe impl Send for RustcOccupiedEntry<'_, K, V, A> +where + K: Send, + V: Send, + A: Allocator + Send, +{ +} +unsafe impl Sync for RustcOccupiedEntry<'_, K, V, A> +where + K: Sync, + V: Sync, + A: Allocator + Sync, +{ +} + +impl Debug for RustcOccupiedEntry<'_, K, V, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("OccupiedEntry") + .field("key", self.key()) + .field("value", self.get()) + .finish() + } +} + +/// A view into a vacant entry in a `HashMap`. +/// It is part of the [`RustcEntry`] enum. +/// +/// [`RustcEntry`]: enum.RustcEntry.html +pub struct RustcVacantEntry<'a, K, V, A = Global> +where + A: Allocator, +{ + hash: u64, + key: K, + table: &'a mut RawTable<(K, V), A>, +} + +impl Debug for RustcVacantEntry<'_, K, V, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple("VacantEntry").field(self.key()).finish() + } +} + +impl<'a, K, V, A: Allocator> RustcEntry<'a, K, V, A> { + /// Sets the value of the entry, and returns a RustcOccupiedEntry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// let entry = map.rustc_entry("horseyland").insert(37); + /// + /// assert_eq!(entry.key(), &"horseyland"); + /// ``` + pub fn insert(self, value: V) -> RustcOccupiedEntry<'a, K, V, A> { + match self { + Vacant(entry) => entry.insert_entry(value), + Occupied(mut entry) => { + entry.insert(value); + entry + } + } + } + + /// Ensures a value is in the entry by inserting the default if empty, and returns + /// a mutable reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// map.rustc_entry("poneyland").or_insert(3); + /// assert_eq!(map["poneyland"], 3); + /// + /// *map.rustc_entry("poneyland").or_insert(10) *= 2; + /// assert_eq!(map["poneyland"], 6); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_insert(self, default: V) -> &'a mut V + where + K: Hash, + { + match self { + Occupied(entry) => entry.into_mut(), + Vacant(entry) => entry.insert(default), + } + } + + /// Ensures a value is in the entry by inserting the result of the default function if empty, + /// and returns a mutable reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, String> = HashMap::new(); + /// let s = "hoho".to_string(); + /// + /// map.rustc_entry("poneyland").or_insert_with(|| s); + /// + /// assert_eq!(map["poneyland"], "hoho".to_string()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_insert_with V>(self, default: F) -> &'a mut V + where + K: Hash, + { + match self { + Occupied(entry) => entry.into_mut(), + Vacant(entry) => entry.insert(default()), + } + } + + /// Returns a reference to this entry's key. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// assert_eq!(map.rustc_entry("poneyland").key(), &"poneyland"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn key(&self) -> &K { + match *self { + Occupied(ref entry) => entry.key(), + Vacant(ref entry) => entry.key(), + } + } + + /// Provides in-place mutable access to an occupied entry before any + /// potential inserts into the map. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// map.rustc_entry("poneyland") + /// .and_modify(|e| { *e += 1 }) + /// .or_insert(42); + /// assert_eq!(map["poneyland"], 42); + /// + /// map.rustc_entry("poneyland") + /// .and_modify(|e| { *e += 1 }) + /// .or_insert(42); + /// assert_eq!(map["poneyland"], 43); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn and_modify(self, f: F) -> Self + where + F: FnOnce(&mut V), + { + match self { + Occupied(mut entry) => { + f(entry.get_mut()); + Occupied(entry) + } + Vacant(entry) => Vacant(entry), + } + } +} + +impl<'a, K, V: Default, A: Allocator> RustcEntry<'a, K, V, A> { + /// Ensures a value is in the entry by inserting the default value if empty, + /// and returns a mutable reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// # fn main() { + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, Option> = HashMap::new(); + /// map.rustc_entry("poneyland").or_default(); + /// + /// assert_eq!(map["poneyland"], None); + /// # } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_default(self) -> &'a mut V + where + K: Hash, + { + match self { + Occupied(entry) => entry.into_mut(), + Vacant(entry) => entry.insert(Default::default()), + } + } +} + +impl<'a, K, V, A: Allocator> RustcOccupiedEntry<'a, K, V, A> { + /// Gets a reference to the key in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.rustc_entry("poneyland").or_insert(12); + /// assert_eq!(map.rustc_entry("poneyland").key(), &"poneyland"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn key(&self) -> &K { + unsafe { &self.elem.as_ref().0 } + } + + /// Take the ownership of the key and value from the map. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::RustcEntry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.rustc_entry("poneyland").or_insert(12); + /// + /// if let RustcEntry::Occupied(o) = map.rustc_entry("poneyland") { + /// // We delete the entry from the map. + /// o.remove_entry(); + /// } + /// + /// assert_eq!(map.contains_key("poneyland"), false); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove_entry(self) -> (K, V) { + unsafe { self.table.remove(self.elem).0 } + } + + /// Gets a reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::RustcEntry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.rustc_entry("poneyland").or_insert(12); + /// + /// if let RustcEntry::Occupied(o) = map.rustc_entry("poneyland") { + /// assert_eq!(o.get(), &12); + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get(&self) -> &V { + unsafe { &self.elem.as_ref().1 } + } + + /// Gets a mutable reference to the value in the entry. + /// + /// If you need a reference to the `RustcOccupiedEntry` which may outlive the + /// destruction of the `RustcEntry` value, see [`into_mut`]. + /// + /// [`into_mut`]: #method.into_mut + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::RustcEntry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.rustc_entry("poneyland").or_insert(12); + /// + /// assert_eq!(map["poneyland"], 12); + /// if let RustcEntry::Occupied(mut o) = map.rustc_entry("poneyland") { + /// *o.get_mut() += 10; + /// assert_eq!(*o.get(), 22); + /// + /// // We can use the same RustcEntry multiple times. + /// *o.get_mut() += 2; + /// } + /// + /// assert_eq!(map["poneyland"], 24); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get_mut(&mut self) -> &mut V { + unsafe { &mut self.elem.as_mut().1 } + } + + /// Converts the RustcOccupiedEntry into a mutable reference to the value in the entry + /// with a lifetime bound to the map itself. + /// + /// If you need multiple references to the `RustcOccupiedEntry`, see [`get_mut`]. + /// + /// [`get_mut`]: #method.get_mut + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::RustcEntry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.rustc_entry("poneyland").or_insert(12); + /// + /// assert_eq!(map["poneyland"], 12); + /// if let RustcEntry::Occupied(o) = map.rustc_entry("poneyland") { + /// *o.into_mut() += 10; + /// } + /// + /// assert_eq!(map["poneyland"], 22); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn into_mut(self) -> &'a mut V { + unsafe { &mut self.elem.as_mut().1 } + } + + /// Sets the value of the entry, and returns the entry's old value. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::RustcEntry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.rustc_entry("poneyland").or_insert(12); + /// + /// if let RustcEntry::Occupied(mut o) = map.rustc_entry("poneyland") { + /// assert_eq!(o.insert(15), 12); + /// } + /// + /// assert_eq!(map["poneyland"], 15); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(&mut self, value: V) -> V { + mem::replace(self.get_mut(), value) + } + + /// Takes the value out of the entry, and returns it. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::RustcEntry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// map.rustc_entry("poneyland").or_insert(12); + /// + /// if let RustcEntry::Occupied(o) = map.rustc_entry("poneyland") { + /// assert_eq!(o.remove(), 12); + /// } + /// + /// assert_eq!(map.contains_key("poneyland"), false); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove(self) -> V { + self.remove_entry().1 + } + + /// Replaces the entry, returning the old key and value. The new key in the hash map will be + /// the key used to create this entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{RustcEntry, HashMap}; + /// use std::rc::Rc; + /// + /// let mut map: HashMap, u32> = HashMap::new(); + /// map.insert(Rc::new("Stringthing".to_string()), 15); + /// + /// let my_key = Rc::new("Stringthing".to_string()); + /// + /// if let RustcEntry::Occupied(entry) = map.rustc_entry(my_key) { + /// // Also replace the key with a handle to our other key. + /// let (old_key, old_value): (Rc, u32) = entry.replace_entry(16); + /// } + /// + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn replace_entry(self, value: V) -> (K, V) { + let entry = unsafe { self.elem.as_mut() }; + + let old_key = mem::replace(&mut entry.0, self.key.unwrap()); + let old_value = mem::replace(&mut entry.1, value); + + (old_key, old_value) + } + + /// Replaces the key in the hash map with the key used to create this entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_map::{RustcEntry, HashMap}; + /// use std::rc::Rc; + /// + /// let mut map: HashMap, u32> = HashMap::new(); + /// let mut known_strings: Vec> = Vec::new(); + /// + /// // Initialise known strings, run program, etc. + /// + /// reclaim_memory(&mut map, &known_strings); + /// + /// fn reclaim_memory(map: &mut HashMap, u32>, known_strings: &[Rc] ) { + /// for s in known_strings { + /// if let RustcEntry::Occupied(entry) = map.rustc_entry(s.clone()) { + /// // Replaces the entry's key with our version of it in `known_strings`. + /// entry.replace_key(); + /// } + /// } + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn replace_key(self) -> K { + let entry = unsafe { self.elem.as_mut() }; + mem::replace(&mut entry.0, self.key.unwrap()) + } +} + +impl<'a, K, V, A: Allocator> RustcVacantEntry<'a, K, V, A> { + /// Gets a reference to the key that would be used when inserting a value + /// through the `RustcVacantEntry`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// assert_eq!(map.rustc_entry("poneyland").key(), &"poneyland"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn key(&self) -> &K { + &self.key + } + + /// Take ownership of the key. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::RustcEntry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// if let RustcEntry::Vacant(v) = map.rustc_entry("poneyland") { + /// v.into_key(); + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn into_key(self) -> K { + self.key + } + + /// Sets the value of the entry with the RustcVacantEntry's key, + /// and returns a mutable reference to it. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::RustcEntry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// if let RustcEntry::Vacant(o) = map.rustc_entry("poneyland") { + /// o.insert(37); + /// } + /// assert_eq!(map["poneyland"], 37); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(self, value: V) -> &'a mut V { + unsafe { + let bucket = self.table.insert_no_grow(self.hash, (self.key, value)); + &mut bucket.as_mut().1 + } + } + + /// Sets the value of the entry with the RustcVacantEntry's key, + /// and returns a RustcOccupiedEntry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashMap; + /// use hashbrown::hash_map::RustcEntry; + /// + /// let mut map: HashMap<&str, u32> = HashMap::new(); + /// + /// if let RustcEntry::Vacant(v) = map.rustc_entry("poneyland") { + /// let o = v.insert_entry(37); + /// assert_eq!(o.get(), &37); + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert_entry(self, value: V) -> RustcOccupiedEntry<'a, K, V, A> { + let bucket = unsafe { self.table.insert_no_grow(self.hash, (self.key, value)) }; + RustcOccupiedEntry { + key: None, + elem: bucket, + table: self.table, + } + } +} + +impl IterMut<'_, K, V> { + /// Returns a iterator of references over the remaining items. + #[cfg_attr(feature = "inline-more", inline)] + pub fn rustc_iter(&self) -> Iter<'_, K, V> { + self.iter() + } +} + +impl IntoIter { + /// Returns a iterator of references over the remaining items. + #[cfg_attr(feature = "inline-more", inline)] + pub fn rustc_iter(&self) -> Iter<'_, K, V> { + self.iter() + } +} + +impl Drain<'_, K, V> { + /// Returns a iterator of references over the remaining items. + #[cfg_attr(feature = "inline-more", inline)] + pub fn rustc_iter(&self) -> Iter<'_, K, V> { + self.iter() + } +} diff --git a/src/rust/vendor/hashbrown/src/scopeguard.rs b/src/rust/vendor/hashbrown/src/scopeguard.rs new file mode 100644 index 000000000..382d06043 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/scopeguard.rs @@ -0,0 +1,72 @@ +// Extracted from the scopeguard crate +use core::{ + mem::ManuallyDrop, + ops::{Deref, DerefMut}, + ptr, +}; + +pub struct ScopeGuard +where + F: FnMut(&mut T), +{ + dropfn: F, + value: T, +} + +#[inline] +pub fn guard(value: T, dropfn: F) -> ScopeGuard +where + F: FnMut(&mut T), +{ + ScopeGuard { dropfn, value } +} + +impl ScopeGuard +where + F: FnMut(&mut T), +{ + #[inline] + pub fn into_inner(guard: Self) -> T { + // Cannot move out of Drop-implementing types, so + // ptr::read the value out of a ManuallyDrop + // Don't use mem::forget as that might invalidate value + let guard = ManuallyDrop::new(guard); + unsafe { + let value = ptr::read(&guard.value); + // read the closure so that it is dropped + let _ = ptr::read(&guard.dropfn); + value + } + } +} + +impl Deref for ScopeGuard +where + F: FnMut(&mut T), +{ + type Target = T; + #[inline] + fn deref(&self) -> &T { + &self.value + } +} + +impl DerefMut for ScopeGuard +where + F: FnMut(&mut T), +{ + #[inline] + fn deref_mut(&mut self) -> &mut T { + &mut self.value + } +} + +impl Drop for ScopeGuard +where + F: FnMut(&mut T), +{ + #[inline] + fn drop(&mut self) { + (self.dropfn)(&mut self.value); + } +} diff --git a/src/rust/vendor/hashbrown/src/set.rs b/src/rust/vendor/hashbrown/src/set.rs new file mode 100644 index 000000000..2125a7ac8 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/set.rs @@ -0,0 +1,2970 @@ +#[cfg(feature = "raw")] +use crate::raw::RawTable; +use crate::{Equivalent, TryReserveError}; +use alloc::borrow::ToOwned; +use core::fmt; +use core::hash::{BuildHasher, Hash}; +use core::iter::{Chain, FusedIterator}; +use core::ops::{BitAnd, BitOr, BitXor, Sub}; + +use super::map::{self, DefaultHashBuilder, HashMap, Keys}; +use crate::raw::{Allocator, Global, RawExtractIf}; + +// Future Optimization (FIXME!) +// ============================= +// +// Iteration over zero sized values is a noop. There is no need +// for `bucket.val` in the case of HashSet. I suppose we would need HKT +// to get rid of it properly. + +/// A hash set implemented as a `HashMap` where the value is `()`. +/// +/// As with the [`HashMap`] type, a `HashSet` requires that the elements +/// implement the [`Eq`] and [`Hash`] traits. This can frequently be achieved by +/// using `#[derive(PartialEq, Eq, Hash)]`. If you implement these yourself, +/// it is important that the following property holds: +/// +/// ```text +/// k1 == k2 -> hash(k1) == hash(k2) +/// ``` +/// +/// In other words, if two keys are equal, their hashes must be equal. +/// +/// +/// It is a logic error for an item to be modified in such a way that the +/// item's hash, as determined by the [`Hash`] trait, or its equality, as +/// determined by the [`Eq`] trait, changes while it is in the set. This is +/// normally only possible through [`Cell`], [`RefCell`], global state, I/O, or +/// unsafe code. +/// +/// It is also a logic error for the [`Hash`] implementation of a key to panic. +/// This is generally only possible if the trait is implemented manually. If a +/// panic does occur then the contents of the `HashSet` may become corrupted and +/// some items may be dropped from the table. +/// +/// # Examples +/// +/// ``` +/// use hashbrown::HashSet; +/// // Type inference lets us omit an explicit type signature (which +/// // would be `HashSet` in this example). +/// let mut books = HashSet::new(); +/// +/// // Add some books. +/// books.insert("A Dance With Dragons".to_string()); +/// books.insert("To Kill a Mockingbird".to_string()); +/// books.insert("The Odyssey".to_string()); +/// books.insert("The Great Gatsby".to_string()); +/// +/// // Check for a specific one. +/// if !books.contains("The Winds of Winter") { +/// println!("We have {} books, but The Winds of Winter ain't one.", +/// books.len()); +/// } +/// +/// // Remove a book. +/// books.remove("The Odyssey"); +/// +/// // Iterate over everything. +/// for book in &books { +/// println!("{}", book); +/// } +/// ``` +/// +/// The easiest way to use `HashSet` with a custom type is to derive +/// [`Eq`] and [`Hash`]. We must also derive [`PartialEq`]. This will in the +/// future be implied by [`Eq`]. +/// +/// ``` +/// use hashbrown::HashSet; +/// #[derive(Hash, Eq, PartialEq, Debug)] +/// struct Viking { +/// name: String, +/// power: usize, +/// } +/// +/// let mut vikings = HashSet::new(); +/// +/// vikings.insert(Viking { name: "Einar".to_string(), power: 9 }); +/// vikings.insert(Viking { name: "Einar".to_string(), power: 9 }); +/// vikings.insert(Viking { name: "Olaf".to_string(), power: 4 }); +/// vikings.insert(Viking { name: "Harald".to_string(), power: 8 }); +/// +/// // Use derived implementation to print the vikings. +/// for x in &vikings { +/// println!("{:?}", x); +/// } +/// ``` +/// +/// A `HashSet` with fixed list of elements can be initialized from an array: +/// +/// ``` +/// use hashbrown::HashSet; +/// +/// let viking_names: HashSet<&'static str> = +/// [ "Einar", "Olaf", "Harald" ].into_iter().collect(); +/// // use the values stored in the set +/// ``` +/// +/// [`Cell`]: https://doc.rust-lang.org/std/cell/struct.Cell.html +/// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html +/// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html +/// [`HashMap`]: struct.HashMap.html +/// [`PartialEq`]: https://doc.rust-lang.org/std/cmp/trait.PartialEq.html +/// [`RefCell`]: https://doc.rust-lang.org/std/cell/struct.RefCell.html +pub struct HashSet { + pub(crate) map: HashMap, +} + +impl Clone for HashSet { + fn clone(&self) -> Self { + HashSet { + map: self.map.clone(), + } + } + + fn clone_from(&mut self, source: &Self) { + self.map.clone_from(&source.map); + } +} + +#[cfg(feature = "ahash")] +impl HashSet { + /// Creates an empty `HashSet`. + /// + /// The hash set is initially created with a capacity of 0, so it will not allocate until it + /// is first inserted into. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashSet` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashSet`], for example with + /// [`with_hasher`](HashSet::with_hasher) method. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// let set: HashSet = HashSet::new(); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn new() -> Self { + Self { + map: HashMap::new(), + } + } + + /// Creates an empty `HashSet` with the specified capacity. + /// + /// The hash set will be able to hold at least `capacity` elements without + /// reallocating. If `capacity` is 0, the hash set will not allocate. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashSet` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashSet`], for example with + /// [`with_capacity_and_hasher`](HashSet::with_capacity_and_hasher) method. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// let set: HashSet = HashSet::with_capacity(10); + /// assert!(set.capacity() >= 10); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn with_capacity(capacity: usize) -> Self { + Self { + map: HashMap::with_capacity(capacity), + } + } +} + +#[cfg(feature = "ahash")] +impl HashSet { + /// Creates an empty `HashSet`. + /// + /// The hash set is initially created with a capacity of 0, so it will not allocate until it + /// is first inserted into. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashSet` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashSet`], for example with + /// [`with_hasher_in`](HashSet::with_hasher_in) method. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// let set: HashSet = HashSet::new(); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn new_in(alloc: A) -> Self { + Self { + map: HashMap::new_in(alloc), + } + } + + /// Creates an empty `HashSet` with the specified capacity. + /// + /// The hash set will be able to hold at least `capacity` elements without + /// reallocating. If `capacity` is 0, the hash set will not allocate. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashSet` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashSet`], for example with + /// [`with_capacity_and_hasher_in`](HashSet::with_capacity_and_hasher_in) method. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// let set: HashSet = HashSet::with_capacity(10); + /// assert!(set.capacity() >= 10); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn with_capacity_in(capacity: usize, alloc: A) -> Self { + Self { + map: HashMap::with_capacity_in(capacity, alloc), + } + } +} + +impl HashSet { + /// Returns the number of elements the set can hold without reallocating. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// let set: HashSet = HashSet::with_capacity(100); + /// assert!(set.capacity() >= 100); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn capacity(&self) -> usize { + self.map.capacity() + } + + /// An iterator visiting all elements in arbitrary order. + /// The iterator element type is `&'a T`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// let mut set = HashSet::new(); + /// set.insert("a"); + /// set.insert("b"); + /// + /// // Will print in an arbitrary order. + /// for x in set.iter() { + /// println!("{}", x); + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn iter(&self) -> Iter<'_, T> { + Iter { + iter: self.map.keys(), + } + } + + /// Returns the number of elements in the set. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut v = HashSet::new(); + /// assert_eq!(v.len(), 0); + /// v.insert(1); + /// assert_eq!(v.len(), 1); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn len(&self) -> usize { + self.map.len() + } + + /// Returns `true` if the set contains no elements. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut v = HashSet::new(); + /// assert!(v.is_empty()); + /// v.insert(1); + /// assert!(!v.is_empty()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn is_empty(&self) -> bool { + self.map.is_empty() + } + + /// Clears the set, returning all elements in an iterator. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set: HashSet<_> = [1, 2, 3].into_iter().collect(); + /// assert!(!set.is_empty()); + /// + /// // print 1, 2, 3 in an arbitrary order + /// for i in set.drain() { + /// println!("{}", i); + /// } + /// + /// assert!(set.is_empty()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn drain(&mut self) -> Drain<'_, T, A> { + Drain { + iter: self.map.drain(), + } + } + + /// Retains only the elements specified by the predicate. + /// + /// In other words, remove all elements `e` such that `f(&e)` returns `false`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let xs = [1,2,3,4,5,6]; + /// let mut set: HashSet = xs.into_iter().collect(); + /// set.retain(|&k| k % 2 == 0); + /// assert_eq!(set.len(), 3); + /// ``` + pub fn retain(&mut self, mut f: F) + where + F: FnMut(&T) -> bool, + { + self.map.retain(|k, _| f(k)); + } + + /// Drains elements which are true under the given predicate, + /// and returns an iterator over the removed items. + /// + /// In other words, move all elements `e` such that `f(&e)` returns `true` out + /// into another iterator. + /// + /// If the returned `ExtractIf` is not exhausted, e.g. because it is dropped without iterating + /// or the iteration short-circuits, then the remaining elements will be retained. + /// Use [`retain()`] with a negated predicate if you do not need the returned iterator. + /// + /// [`retain()`]: HashSet::retain + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set: HashSet = (0..8).collect(); + /// let drained: HashSet = set.extract_if(|v| v % 2 == 0).collect(); + /// + /// let mut evens = drained.into_iter().collect::>(); + /// let mut odds = set.into_iter().collect::>(); + /// evens.sort(); + /// odds.sort(); + /// + /// assert_eq!(evens, vec![0, 2, 4, 6]); + /// assert_eq!(odds, vec![1, 3, 5, 7]); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn extract_if(&mut self, f: F) -> ExtractIf<'_, T, F, A> + where + F: FnMut(&T) -> bool, + { + ExtractIf { + f, + inner: RawExtractIf { + iter: unsafe { self.map.table.iter() }, + table: &mut self.map.table, + }, + } + } + + /// Clears the set, removing all values. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut v = HashSet::new(); + /// v.insert(1); + /// v.clear(); + /// assert!(v.is_empty()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn clear(&mut self) { + self.map.clear(); + } +} + +impl HashSet { + /// Creates a new empty hash set which will use the given hasher to hash + /// keys. + /// + /// The hash set is initially created with a capacity of 0, so it will not + /// allocate until it is first inserted into. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashSet` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashSet`]. + /// + /// The `hash_builder` passed should implement the [`BuildHasher`] trait for + /// the HashSet to be useful, see its documentation for details. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// [`BuildHasher`]: https://doc.rust-lang.org/std/hash/trait.BuildHasher.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// use hashbrown::hash_map::DefaultHashBuilder; + /// + /// let s = DefaultHashBuilder::default(); + /// let mut set = HashSet::with_hasher(s); + /// set.insert(2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub const fn with_hasher(hasher: S) -> Self { + Self { + map: HashMap::with_hasher(hasher), + } + } + + /// Creates an empty `HashSet` with the specified capacity, using + /// `hasher` to hash the keys. + /// + /// The hash set will be able to hold at least `capacity` elements without + /// reallocating. If `capacity` is 0, the hash set will not allocate. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashSet` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashSet`]. + /// + /// The `hash_builder` passed should implement the [`BuildHasher`] trait for + /// the HashSet to be useful, see its documentation for details. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// [`BuildHasher`]: https://doc.rust-lang.org/std/hash/trait.BuildHasher.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// use hashbrown::hash_map::DefaultHashBuilder; + /// + /// let s = DefaultHashBuilder::default(); + /// let mut set = HashSet::with_capacity_and_hasher(10, s); + /// set.insert(1); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn with_capacity_and_hasher(capacity: usize, hasher: S) -> Self { + Self { + map: HashMap::with_capacity_and_hasher(capacity, hasher), + } + } +} + +impl HashSet +where + A: Allocator, +{ + /// Returns a reference to the underlying allocator. + #[inline] + pub fn allocator(&self) -> &A { + self.map.allocator() + } + + /// Creates a new empty hash set which will use the given hasher to hash + /// keys. + /// + /// The hash set is initially created with a capacity of 0, so it will not + /// allocate until it is first inserted into. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashSet` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashSet`]. + /// + /// The `hash_builder` passed should implement the [`BuildHasher`] trait for + /// the HashSet to be useful, see its documentation for details. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// [`BuildHasher`]: https://doc.rust-lang.org/std/hash/trait.BuildHasher.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// use hashbrown::hash_map::DefaultHashBuilder; + /// + /// let s = DefaultHashBuilder::default(); + /// let mut set = HashSet::with_hasher(s); + /// set.insert(2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub const fn with_hasher_in(hasher: S, alloc: A) -> Self { + Self { + map: HashMap::with_hasher_in(hasher, alloc), + } + } + + /// Creates an empty `HashSet` with the specified capacity, using + /// `hasher` to hash the keys. + /// + /// The hash set will be able to hold at least `capacity` elements without + /// reallocating. If `capacity` is 0, the hash set will not allocate. + /// + /// # HashDoS resistance + /// + /// The `hash_builder` normally use a fixed key by default and that does + /// not allow the `HashSet` to be protected against attacks such as [`HashDoS`]. + /// Users who require HashDoS resistance should explicitly use + /// [`ahash::RandomState`] or [`std::collections::hash_map::RandomState`] + /// as the hasher when creating a [`HashSet`]. + /// + /// The `hash_builder` passed should implement the [`BuildHasher`] trait for + /// the HashSet to be useful, see its documentation for details. + /// + /// [`HashDoS`]: https://en.wikipedia.org/wiki/Collision_attack + /// [`std::collections::hash_map::RandomState`]: https://doc.rust-lang.org/std/collections/hash_map/struct.RandomState.html + /// [`BuildHasher`]: https://doc.rust-lang.org/std/hash/trait.BuildHasher.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// use hashbrown::hash_map::DefaultHashBuilder; + /// + /// let s = DefaultHashBuilder::default(); + /// let mut set = HashSet::with_capacity_and_hasher(10, s); + /// set.insert(1); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn with_capacity_and_hasher_in(capacity: usize, hasher: S, alloc: A) -> Self { + Self { + map: HashMap::with_capacity_and_hasher_in(capacity, hasher, alloc), + } + } + + /// Returns a reference to the set's [`BuildHasher`]. + /// + /// [`BuildHasher`]: https://doc.rust-lang.org/std/hash/trait.BuildHasher.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// use hashbrown::hash_map::DefaultHashBuilder; + /// + /// let hasher = DefaultHashBuilder::default(); + /// let set: HashSet = HashSet::with_hasher(hasher); + /// let hasher: &DefaultHashBuilder = set.hasher(); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn hasher(&self) -> &S { + self.map.hasher() + } +} + +impl HashSet +where + T: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + /// Reserves capacity for at least `additional` more elements to be inserted + /// in the `HashSet`. The collection may reserve more space to avoid + /// frequent reallocations. + /// + /// # Panics + /// + /// Panics if the new capacity exceeds [`isize::MAX`] bytes and [`abort`] the program + /// in case of allocation error. Use [`try_reserve`](HashSet::try_reserve) instead + /// if you want to handle memory allocation failure. + /// + /// [`isize::MAX`]: https://doc.rust-lang.org/std/primitive.isize.html + /// [`abort`]: https://doc.rust-lang.org/alloc/alloc/fn.handle_alloc_error.html + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// let mut set: HashSet = HashSet::new(); + /// set.reserve(10); + /// assert!(set.capacity() >= 10); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn reserve(&mut self, additional: usize) { + self.map.reserve(additional); + } + + /// Tries to reserve capacity for at least `additional` more elements to be inserted + /// in the given `HashSet`. The collection may reserve more space to avoid + /// frequent reallocations. + /// + /// # Errors + /// + /// If the capacity overflows, or the allocator reports a failure, then an error + /// is returned. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// let mut set: HashSet = HashSet::new(); + /// set.try_reserve(10).expect("why is the test harness OOMing on 10 bytes?"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError> { + self.map.try_reserve(additional) + } + + /// Shrinks the capacity of the set as much as possible. It will drop + /// down as much as possible while maintaining the internal rules + /// and possibly leaving some space in accordance with the resize policy. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set = HashSet::with_capacity(100); + /// set.insert(1); + /// set.insert(2); + /// assert!(set.capacity() >= 100); + /// set.shrink_to_fit(); + /// assert!(set.capacity() >= 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn shrink_to_fit(&mut self) { + self.map.shrink_to_fit(); + } + + /// Shrinks the capacity of the set with a lower limit. It will drop + /// down no lower than the supplied limit while maintaining the internal rules + /// and possibly leaving some space in accordance with the resize policy. + /// + /// Panics if the current capacity is smaller than the supplied + /// minimum capacity. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set = HashSet::with_capacity(100); + /// set.insert(1); + /// set.insert(2); + /// assert!(set.capacity() >= 100); + /// set.shrink_to(10); + /// assert!(set.capacity() >= 10); + /// set.shrink_to(0); + /// assert!(set.capacity() >= 2); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn shrink_to(&mut self, min_capacity: usize) { + self.map.shrink_to(min_capacity); + } + + /// Visits the values representing the difference, + /// i.e., the values that are in `self` but not in `other`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// let a: HashSet<_> = [1, 2, 3].into_iter().collect(); + /// let b: HashSet<_> = [4, 2, 3, 4].into_iter().collect(); + /// + /// // Can be seen as `a - b`. + /// for x in a.difference(&b) { + /// println!("{}", x); // Print 1 + /// } + /// + /// let diff: HashSet<_> = a.difference(&b).collect(); + /// assert_eq!(diff, [1].iter().collect()); + /// + /// // Note that difference is not symmetric, + /// // and `b - a` means something else: + /// let diff: HashSet<_> = b.difference(&a).collect(); + /// assert_eq!(diff, [4].iter().collect()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn difference<'a>(&'a self, other: &'a Self) -> Difference<'a, T, S, A> { + Difference { + iter: self.iter(), + other, + } + } + + /// Visits the values representing the symmetric difference, + /// i.e., the values that are in `self` or in `other` but not in both. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// let a: HashSet<_> = [1, 2, 3].into_iter().collect(); + /// let b: HashSet<_> = [4, 2, 3, 4].into_iter().collect(); + /// + /// // Print 1, 4 in arbitrary order. + /// for x in a.symmetric_difference(&b) { + /// println!("{}", x); + /// } + /// + /// let diff1: HashSet<_> = a.symmetric_difference(&b).collect(); + /// let diff2: HashSet<_> = b.symmetric_difference(&a).collect(); + /// + /// assert_eq!(diff1, diff2); + /// assert_eq!(diff1, [1, 4].iter().collect()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn symmetric_difference<'a>(&'a self, other: &'a Self) -> SymmetricDifference<'a, T, S, A> { + SymmetricDifference { + iter: self.difference(other).chain(other.difference(self)), + } + } + + /// Visits the values representing the intersection, + /// i.e., the values that are both in `self` and `other`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// let a: HashSet<_> = [1, 2, 3].into_iter().collect(); + /// let b: HashSet<_> = [4, 2, 3, 4].into_iter().collect(); + /// + /// // Print 2, 3 in arbitrary order. + /// for x in a.intersection(&b) { + /// println!("{}", x); + /// } + /// + /// let intersection: HashSet<_> = a.intersection(&b).collect(); + /// assert_eq!(intersection, [2, 3].iter().collect()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn intersection<'a>(&'a self, other: &'a Self) -> Intersection<'a, T, S, A> { + let (smaller, larger) = if self.len() <= other.len() { + (self, other) + } else { + (other, self) + }; + Intersection { + iter: smaller.iter(), + other: larger, + } + } + + /// Visits the values representing the union, + /// i.e., all the values in `self` or `other`, without duplicates. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// let a: HashSet<_> = [1, 2, 3].into_iter().collect(); + /// let b: HashSet<_> = [4, 2, 3, 4].into_iter().collect(); + /// + /// // Print 1, 2, 3, 4 in arbitrary order. + /// for x in a.union(&b) { + /// println!("{}", x); + /// } + /// + /// let union: HashSet<_> = a.union(&b).collect(); + /// assert_eq!(union, [1, 2, 3, 4].iter().collect()); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn union<'a>(&'a self, other: &'a Self) -> Union<'a, T, S, A> { + // We'll iterate one set in full, and only the remaining difference from the other. + // Use the smaller set for the difference in order to reduce hash lookups. + let (smaller, larger) = if self.len() <= other.len() { + (self, other) + } else { + (other, self) + }; + Union { + iter: larger.iter().chain(smaller.difference(larger)), + } + } + + /// Returns `true` if the set contains a value. + /// + /// The value may be any borrowed form of the set's value type, but + /// [`Hash`] and [`Eq`] on the borrowed form *must* match those for + /// the value type. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let set: HashSet<_> = [1, 2, 3].into_iter().collect(); + /// assert_eq!(set.contains(&1), true); + /// assert_eq!(set.contains(&4), false); + /// ``` + /// + /// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html + /// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html + #[cfg_attr(feature = "inline-more", inline)] + pub fn contains(&self, value: &Q) -> bool + where + Q: Hash + Equivalent, + { + self.map.contains_key(value) + } + + /// Returns a reference to the value in the set, if any, that is equal to the given value. + /// + /// The value may be any borrowed form of the set's value type, but + /// [`Hash`] and [`Eq`] on the borrowed form *must* match those for + /// the value type. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let set: HashSet<_> = [1, 2, 3].into_iter().collect(); + /// assert_eq!(set.get(&2), Some(&2)); + /// assert_eq!(set.get(&4), None); + /// ``` + /// + /// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html + /// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html + #[cfg_attr(feature = "inline-more", inline)] + pub fn get(&self, value: &Q) -> Option<&T> + where + Q: Hash + Equivalent, + { + // Avoid `Option::map` because it bloats LLVM IR. + match self.map.get_key_value(value) { + Some((k, _)) => Some(k), + None => None, + } + } + + /// Inserts the given `value` into the set if it is not present, then + /// returns a reference to the value in the set. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set: HashSet<_> = [1, 2, 3].into_iter().collect(); + /// assert_eq!(set.len(), 3); + /// assert_eq!(set.get_or_insert(2), &2); + /// assert_eq!(set.get_or_insert(100), &100); + /// assert_eq!(set.len(), 4); // 100 was inserted + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get_or_insert(&mut self, value: T) -> &T { + // Although the raw entry gives us `&mut T`, we only return `&T` to be consistent with + // `get`. Key mutation is "raw" because you're not supposed to affect `Eq` or `Hash`. + self.map + .raw_entry_mut() + .from_key(&value) + .or_insert(value, ()) + .0 + } + + /// Inserts an owned copy of the given `value` into the set if it is not + /// present, then returns a reference to the value in the set. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set: HashSet = ["cat", "dog", "horse"] + /// .iter().map(|&pet| pet.to_owned()).collect(); + /// + /// assert_eq!(set.len(), 3); + /// for &pet in &["cat", "dog", "fish"] { + /// let value = set.get_or_insert_owned(pet); + /// assert_eq!(value, pet); + /// } + /// assert_eq!(set.len(), 4); // a new "fish" was inserted + /// ``` + #[inline] + pub fn get_or_insert_owned(&mut self, value: &Q) -> &T + where + Q: Hash + Equivalent + ToOwned, + { + // Although the raw entry gives us `&mut T`, we only return `&T` to be consistent with + // `get`. Key mutation is "raw" because you're not supposed to affect `Eq` or `Hash`. + self.map + .raw_entry_mut() + .from_key(value) + .or_insert_with(|| (value.to_owned(), ())) + .0 + } + + /// Inserts a value computed from `f` into the set if the given `value` is + /// not present, then returns a reference to the value in the set. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set: HashSet = ["cat", "dog", "horse"] + /// .iter().map(|&pet| pet.to_owned()).collect(); + /// + /// assert_eq!(set.len(), 3); + /// for &pet in &["cat", "dog", "fish"] { + /// let value = set.get_or_insert_with(pet, str::to_owned); + /// assert_eq!(value, pet); + /// } + /// assert_eq!(set.len(), 4); // a new "fish" was inserted + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get_or_insert_with(&mut self, value: &Q, f: F) -> &T + where + Q: Hash + Equivalent, + F: FnOnce(&Q) -> T, + { + // Although the raw entry gives us `&mut T`, we only return `&T` to be consistent with + // `get`. Key mutation is "raw" because you're not supposed to affect `Eq` or `Hash`. + self.map + .raw_entry_mut() + .from_key(value) + .or_insert_with(|| (f(value), ())) + .0 + } + + /// Gets the given value's corresponding entry in the set for in-place manipulation. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// use hashbrown::hash_set::Entry::*; + /// + /// let mut singles = HashSet::new(); + /// let mut dupes = HashSet::new(); + /// + /// for ch in "a short treatise on fungi".chars() { + /// if let Vacant(dupe_entry) = dupes.entry(ch) { + /// // We haven't already seen a duplicate, so + /// // check if we've at least seen it once. + /// match singles.entry(ch) { + /// Vacant(single_entry) => { + /// // We found a new character for the first time. + /// single_entry.insert() + /// } + /// Occupied(single_entry) => { + /// // We've already seen this once, "move" it to dupes. + /// single_entry.remove(); + /// dupe_entry.insert(); + /// } + /// } + /// } + /// } + /// + /// assert!(!singles.contains(&'t') && dupes.contains(&'t')); + /// assert!(singles.contains(&'u') && !dupes.contains(&'u')); + /// assert!(!singles.contains(&'v') && !dupes.contains(&'v')); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn entry(&mut self, value: T) -> Entry<'_, T, S, A> { + match self.map.entry(value) { + map::Entry::Occupied(entry) => Entry::Occupied(OccupiedEntry { inner: entry }), + map::Entry::Vacant(entry) => Entry::Vacant(VacantEntry { inner: entry }), + } + } + + /// Returns `true` if `self` has no elements in common with `other`. + /// This is equivalent to checking for an empty intersection. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let a: HashSet<_> = [1, 2, 3].into_iter().collect(); + /// let mut b = HashSet::new(); + /// + /// assert_eq!(a.is_disjoint(&b), true); + /// b.insert(4); + /// assert_eq!(a.is_disjoint(&b), true); + /// b.insert(1); + /// assert_eq!(a.is_disjoint(&b), false); + /// ``` + pub fn is_disjoint(&self, other: &Self) -> bool { + self.iter().all(|v| !other.contains(v)) + } + + /// Returns `true` if the set is a subset of another, + /// i.e., `other` contains at least all the values in `self`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let sup: HashSet<_> = [1, 2, 3].into_iter().collect(); + /// let mut set = HashSet::new(); + /// + /// assert_eq!(set.is_subset(&sup), true); + /// set.insert(2); + /// assert_eq!(set.is_subset(&sup), true); + /// set.insert(4); + /// assert_eq!(set.is_subset(&sup), false); + /// ``` + pub fn is_subset(&self, other: &Self) -> bool { + self.len() <= other.len() && self.iter().all(|v| other.contains(v)) + } + + /// Returns `true` if the set is a superset of another, + /// i.e., `self` contains at least all the values in `other`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let sub: HashSet<_> = [1, 2].into_iter().collect(); + /// let mut set = HashSet::new(); + /// + /// assert_eq!(set.is_superset(&sub), false); + /// + /// set.insert(0); + /// set.insert(1); + /// assert_eq!(set.is_superset(&sub), false); + /// + /// set.insert(2); + /// assert_eq!(set.is_superset(&sub), true); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn is_superset(&self, other: &Self) -> bool { + other.is_subset(self) + } + + /// Adds a value to the set. + /// + /// If the set did not have this value present, `true` is returned. + /// + /// If the set did have this value present, `false` is returned. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set = HashSet::new(); + /// + /// assert_eq!(set.insert(2), true); + /// assert_eq!(set.insert(2), false); + /// assert_eq!(set.len(), 1); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(&mut self, value: T) -> bool { + self.map.insert(value, ()).is_none() + } + + /// Insert a value the set without checking if the value already exists in the set. + /// + /// Returns a reference to the value just inserted. + /// + /// This operation is safe if a value does not exist in the set. + /// + /// However, if a value exists in the set already, the behavior is unspecified: + /// this operation may panic, loop forever, or any following operation with the set + /// may panic, loop forever or return arbitrary result. + /// + /// That said, this operation (and following operations) are guaranteed to + /// not violate memory safety. + /// + /// This operation is faster than regular insert, because it does not perform + /// lookup before insertion. + /// + /// This operation is useful during initial population of the set. + /// For example, when constructing a set from another set, we know + /// that values are unique. + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert_unique_unchecked(&mut self, value: T) -> &T { + self.map.insert_unique_unchecked(value, ()).0 + } + + /// Adds a value to the set, replacing the existing value, if any, that is equal to the given + /// one. Returns the replaced value. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set = HashSet::new(); + /// set.insert(Vec::::new()); + /// + /// assert_eq!(set.get(&[][..]).unwrap().capacity(), 0); + /// set.replace(Vec::with_capacity(10)); + /// assert_eq!(set.get(&[][..]).unwrap().capacity(), 10); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn replace(&mut self, value: T) -> Option { + match self.map.entry(value) { + map::Entry::Occupied(occupied) => Some(occupied.replace_key()), + map::Entry::Vacant(vacant) => { + vacant.insert(()); + None + } + } + } + + /// Removes a value from the set. Returns whether the value was + /// present in the set. + /// + /// The value may be any borrowed form of the set's value type, but + /// [`Hash`] and [`Eq`] on the borrowed form *must* match those for + /// the value type. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set = HashSet::new(); + /// + /// set.insert(2); + /// assert_eq!(set.remove(&2), true); + /// assert_eq!(set.remove(&2), false); + /// ``` + /// + /// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html + /// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove(&mut self, value: &Q) -> bool + where + Q: Hash + Equivalent, + { + self.map.remove(value).is_some() + } + + /// Removes and returns the value in the set, if any, that is equal to the given one. + /// + /// The value may be any borrowed form of the set's value type, but + /// [`Hash`] and [`Eq`] on the borrowed form *must* match those for + /// the value type. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set: HashSet<_> = [1, 2, 3].into_iter().collect(); + /// assert_eq!(set.take(&2), Some(2)); + /// assert_eq!(set.take(&2), None); + /// ``` + /// + /// [`Eq`]: https://doc.rust-lang.org/std/cmp/trait.Eq.html + /// [`Hash`]: https://doc.rust-lang.org/std/hash/trait.Hash.html + #[cfg_attr(feature = "inline-more", inline)] + pub fn take(&mut self, value: &Q) -> Option + where + Q: Hash + Equivalent, + { + // Avoid `Option::map` because it bloats LLVM IR. + match self.map.remove_entry(value) { + Some((k, _)) => Some(k), + None => None, + } + } +} + +impl HashSet { + /// Returns a reference to the [`RawTable`] used underneath [`HashSet`]. + /// This function is only available if the `raw` feature of the crate is enabled. + /// + /// # Note + /// + /// Calling this function is safe, but using the raw hash table API may require + /// unsafe functions or blocks. + /// + /// `RawTable` API gives the lowest level of control under the set that can be useful + /// for extending the HashSet's API, but may lead to *[undefined behavior]*. + /// + /// [`HashSet`]: struct.HashSet.html + /// [`RawTable`]: crate::raw::RawTable + /// [undefined behavior]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[cfg(feature = "raw")] + #[cfg_attr(feature = "inline-more", inline)] + pub fn raw_table(&self) -> &RawTable<(T, ()), A> { + self.map.raw_table() + } + + /// Returns a mutable reference to the [`RawTable`] used underneath [`HashSet`]. + /// This function is only available if the `raw` feature of the crate is enabled. + /// + /// # Note + /// + /// Calling this function is safe, but using the raw hash table API may require + /// unsafe functions or blocks. + /// + /// `RawTable` API gives the lowest level of control under the set that can be useful + /// for extending the HashSet's API, but may lead to *[undefined behavior]*. + /// + /// [`HashSet`]: struct.HashSet.html + /// [`RawTable`]: crate::raw::RawTable + /// [undefined behavior]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + #[cfg(feature = "raw")] + #[cfg_attr(feature = "inline-more", inline)] + pub fn raw_table_mut(&mut self) -> &mut RawTable<(T, ()), A> { + self.map.raw_table_mut() + } +} + +impl PartialEq for HashSet +where + T: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + fn eq(&self, other: &Self) -> bool { + if self.len() != other.len() { + return false; + } + + self.iter().all(|key| other.contains(key)) + } +} + +impl Eq for HashSet +where + T: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ +} + +impl fmt::Debug for HashSet +where + T: fmt::Debug, + A: Allocator, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_set().entries(self.iter()).finish() + } +} + +impl From> for HashSet +where + A: Allocator, +{ + fn from(map: HashMap) -> Self { + Self { map } + } +} + +impl FromIterator for HashSet +where + T: Eq + Hash, + S: BuildHasher + Default, + A: Default + Allocator, +{ + #[cfg_attr(feature = "inline-more", inline)] + fn from_iter>(iter: I) -> Self { + let mut set = Self::with_hasher_in(Default::default(), Default::default()); + set.extend(iter); + set + } +} + +// The default hasher is used to match the std implementation signature +#[cfg(feature = "ahash")] +impl From<[T; N]> for HashSet +where + T: Eq + Hash, + A: Default + Allocator, +{ + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let set1 = HashSet::from([1, 2, 3, 4]); + /// let set2: HashSet<_> = [1, 2, 3, 4].into(); + /// assert_eq!(set1, set2); + /// ``` + fn from(arr: [T; N]) -> Self { + arr.into_iter().collect() + } +} + +impl Extend for HashSet +where + T: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + #[cfg_attr(feature = "inline-more", inline)] + fn extend>(&mut self, iter: I) { + self.map.extend(iter.into_iter().map(|k| (k, ()))); + } + + #[inline] + #[cfg(feature = "nightly")] + fn extend_one(&mut self, k: T) { + self.map.insert(k, ()); + } + + #[inline] + #[cfg(feature = "nightly")] + fn extend_reserve(&mut self, additional: usize) { + Extend::<(T, ())>::extend_reserve(&mut self.map, additional); + } +} + +impl<'a, T, S, A> Extend<&'a T> for HashSet +where + T: 'a + Eq + Hash + Copy, + S: BuildHasher, + A: Allocator, +{ + #[cfg_attr(feature = "inline-more", inline)] + fn extend>(&mut self, iter: I) { + self.extend(iter.into_iter().copied()); + } + + #[inline] + #[cfg(feature = "nightly")] + fn extend_one(&mut self, k: &'a T) { + self.map.insert(*k, ()); + } + + #[inline] + #[cfg(feature = "nightly")] + fn extend_reserve(&mut self, additional: usize) { + Extend::<(T, ())>::extend_reserve(&mut self.map, additional); + } +} + +impl Default for HashSet +where + S: Default, + A: Default + Allocator, +{ + /// Creates an empty `HashSet` with the `Default` value for the hasher. + #[cfg_attr(feature = "inline-more", inline)] + fn default() -> Self { + Self { + map: HashMap::default(), + } + } +} + +impl BitOr<&HashSet> for &HashSet +where + T: Eq + Hash + Clone, + S: BuildHasher + Default, + A: Allocator, +{ + type Output = HashSet; + + /// Returns the union of `self` and `rhs` as a new `HashSet`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let a: HashSet<_> = vec![1, 2, 3].into_iter().collect(); + /// let b: HashSet<_> = vec![3, 4, 5].into_iter().collect(); + /// + /// let set = &a | &b; + /// + /// let mut i = 0; + /// let expected = [1, 2, 3, 4, 5]; + /// for x in &set { + /// assert!(expected.contains(x)); + /// i += 1; + /// } + /// assert_eq!(i, expected.len()); + /// ``` + fn bitor(self, rhs: &HashSet) -> HashSet { + self.union(rhs).cloned().collect() + } +} + +impl BitAnd<&HashSet> for &HashSet +where + T: Eq + Hash + Clone, + S: BuildHasher + Default, + A: Allocator, +{ + type Output = HashSet; + + /// Returns the intersection of `self` and `rhs` as a new `HashSet`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let a: HashSet<_> = vec![1, 2, 3].into_iter().collect(); + /// let b: HashSet<_> = vec![2, 3, 4].into_iter().collect(); + /// + /// let set = &a & &b; + /// + /// let mut i = 0; + /// let expected = [2, 3]; + /// for x in &set { + /// assert!(expected.contains(x)); + /// i += 1; + /// } + /// assert_eq!(i, expected.len()); + /// ``` + fn bitand(self, rhs: &HashSet) -> HashSet { + self.intersection(rhs).cloned().collect() + } +} + +impl BitXor<&HashSet> for &HashSet +where + T: Eq + Hash + Clone, + S: BuildHasher + Default, +{ + type Output = HashSet; + + /// Returns the symmetric difference of `self` and `rhs` as a new `HashSet`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let a: HashSet<_> = vec![1, 2, 3].into_iter().collect(); + /// let b: HashSet<_> = vec![3, 4, 5].into_iter().collect(); + /// + /// let set = &a ^ &b; + /// + /// let mut i = 0; + /// let expected = [1, 2, 4, 5]; + /// for x in &set { + /// assert!(expected.contains(x)); + /// i += 1; + /// } + /// assert_eq!(i, expected.len()); + /// ``` + fn bitxor(self, rhs: &HashSet) -> HashSet { + self.symmetric_difference(rhs).cloned().collect() + } +} + +impl Sub<&HashSet> for &HashSet +where + T: Eq + Hash + Clone, + S: BuildHasher + Default, +{ + type Output = HashSet; + + /// Returns the difference of `self` and `rhs` as a new `HashSet`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let a: HashSet<_> = vec![1, 2, 3].into_iter().collect(); + /// let b: HashSet<_> = vec![3, 4, 5].into_iter().collect(); + /// + /// let set = &a - &b; + /// + /// let mut i = 0; + /// let expected = [1, 2]; + /// for x in &set { + /// assert!(expected.contains(x)); + /// i += 1; + /// } + /// assert_eq!(i, expected.len()); + /// ``` + fn sub(self, rhs: &HashSet) -> HashSet { + self.difference(rhs).cloned().collect() + } +} + +/// An iterator over the items of a `HashSet`. +/// +/// This `struct` is created by the [`iter`] method on [`HashSet`]. +/// See its documentation for more. +/// +/// [`HashSet`]: struct.HashSet.html +/// [`iter`]: struct.HashSet.html#method.iter +pub struct Iter<'a, K> { + iter: Keys<'a, K, ()>, +} + +/// An owning iterator over the items of a `HashSet`. +/// +/// This `struct` is created by the [`into_iter`] method on [`HashSet`] +/// (provided by the `IntoIterator` trait). See its documentation for more. +/// +/// [`HashSet`]: struct.HashSet.html +/// [`into_iter`]: struct.HashSet.html#method.into_iter +pub struct IntoIter { + iter: map::IntoIter, +} + +/// A draining iterator over the items of a `HashSet`. +/// +/// This `struct` is created by the [`drain`] method on [`HashSet`]. +/// See its documentation for more. +/// +/// [`HashSet`]: struct.HashSet.html +/// [`drain`]: struct.HashSet.html#method.drain +pub struct Drain<'a, K, A: Allocator = Global> { + iter: map::Drain<'a, K, (), A>, +} + +/// A draining iterator over entries of a `HashSet` which don't satisfy the predicate `f`. +/// +/// This `struct` is created by the [`extract_if`] method on [`HashSet`]. See its +/// documentation for more. +/// +/// [`extract_if`]: struct.HashSet.html#method.extract_if +/// [`HashSet`]: struct.HashSet.html +#[must_use = "Iterators are lazy unless consumed"] +pub struct ExtractIf<'a, K, F, A: Allocator = Global> +where + F: FnMut(&K) -> bool, +{ + f: F, + inner: RawExtractIf<'a, (K, ()), A>, +} + +/// A lazy iterator producing elements in the intersection of `HashSet`s. +/// +/// This `struct` is created by the [`intersection`] method on [`HashSet`]. +/// See its documentation for more. +/// +/// [`HashSet`]: struct.HashSet.html +/// [`intersection`]: struct.HashSet.html#method.intersection +pub struct Intersection<'a, T, S, A: Allocator = Global> { + // iterator of the first set + iter: Iter<'a, T>, + // the second set + other: &'a HashSet, +} + +/// A lazy iterator producing elements in the difference of `HashSet`s. +/// +/// This `struct` is created by the [`difference`] method on [`HashSet`]. +/// See its documentation for more. +/// +/// [`HashSet`]: struct.HashSet.html +/// [`difference`]: struct.HashSet.html#method.difference +pub struct Difference<'a, T, S, A: Allocator = Global> { + // iterator of the first set + iter: Iter<'a, T>, + // the second set + other: &'a HashSet, +} + +/// A lazy iterator producing elements in the symmetric difference of `HashSet`s. +/// +/// This `struct` is created by the [`symmetric_difference`] method on +/// [`HashSet`]. See its documentation for more. +/// +/// [`HashSet`]: struct.HashSet.html +/// [`symmetric_difference`]: struct.HashSet.html#method.symmetric_difference +pub struct SymmetricDifference<'a, T, S, A: Allocator = Global> { + iter: Chain, Difference<'a, T, S, A>>, +} + +/// A lazy iterator producing elements in the union of `HashSet`s. +/// +/// This `struct` is created by the [`union`] method on [`HashSet`]. +/// See its documentation for more. +/// +/// [`HashSet`]: struct.HashSet.html +/// [`union`]: struct.HashSet.html#method.union +pub struct Union<'a, T, S, A: Allocator = Global> { + iter: Chain, Difference<'a, T, S, A>>, +} + +impl<'a, T, S, A: Allocator> IntoIterator for &'a HashSet { + type Item = &'a T; + type IntoIter = Iter<'a, T>; + + #[cfg_attr(feature = "inline-more", inline)] + fn into_iter(self) -> Iter<'a, T> { + self.iter() + } +} + +impl IntoIterator for HashSet { + type Item = T; + type IntoIter = IntoIter; + + /// Creates a consuming iterator, that is, one that moves each value out + /// of the set in arbitrary order. The set cannot be used after calling + /// this. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// let mut set = HashSet::new(); + /// set.insert("a".to_string()); + /// set.insert("b".to_string()); + /// + /// // Not possible to collect to a Vec with a regular `.iter()`. + /// let v: Vec = set.into_iter().collect(); + /// + /// // Will print in an arbitrary order. + /// for x in &v { + /// println!("{}", x); + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + fn into_iter(self) -> IntoIter { + IntoIter { + iter: self.map.into_iter(), + } + } +} + +impl Clone for Iter<'_, K> { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Iter { + iter: self.iter.clone(), + } + } +} +impl<'a, K> Iterator for Iter<'a, K> { + type Item = &'a K; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option<&'a K> { + self.iter.next() + } + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + self.iter.size_hint() + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.iter.fold(init, f) + } +} +impl<'a, K> ExactSizeIterator for Iter<'a, K> { + #[cfg_attr(feature = "inline-more", inline)] + fn len(&self) -> usize { + self.iter.len() + } +} +impl FusedIterator for Iter<'_, K> {} + +impl fmt::Debug for Iter<'_, K> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list().entries(self.clone()).finish() + } +} + +impl Iterator for IntoIter { + type Item = K; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option { + // Avoid `Option::map` because it bloats LLVM IR. + match self.iter.next() { + Some((k, _)) => Some(k), + None => None, + } + } + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + self.iter.size_hint() + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.iter.fold(init, |acc, (k, ())| f(acc, k)) + } +} +impl ExactSizeIterator for IntoIter { + #[cfg_attr(feature = "inline-more", inline)] + fn len(&self) -> usize { + self.iter.len() + } +} +impl FusedIterator for IntoIter {} + +impl fmt::Debug for IntoIter { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let entries_iter = self.iter.iter().map(|(k, _)| k); + f.debug_list().entries(entries_iter).finish() + } +} + +impl Iterator for Drain<'_, K, A> { + type Item = K; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option { + // Avoid `Option::map` because it bloats LLVM IR. + match self.iter.next() { + Some((k, _)) => Some(k), + None => None, + } + } + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + self.iter.size_hint() + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.iter.fold(init, |acc, (k, ())| f(acc, k)) + } +} +impl ExactSizeIterator for Drain<'_, K, A> { + #[cfg_attr(feature = "inline-more", inline)] + fn len(&self) -> usize { + self.iter.len() + } +} +impl FusedIterator for Drain<'_, K, A> {} + +impl fmt::Debug for Drain<'_, K, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let entries_iter = self.iter.iter().map(|(k, _)| k); + f.debug_list().entries(entries_iter).finish() + } +} + +impl Iterator for ExtractIf<'_, K, F, A> +where + F: FnMut(&K) -> bool, +{ + type Item = K; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option { + self.inner + .next(|&mut (ref k, ())| (self.f)(k)) + .map(|(k, ())| k) + } + + #[inline] + fn size_hint(&self) -> (usize, Option) { + (0, self.inner.iter.size_hint().1) + } +} + +impl FusedIterator for ExtractIf<'_, K, F, A> where F: FnMut(&K) -> bool {} + +impl Clone for Intersection<'_, T, S, A> { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Intersection { + iter: self.iter.clone(), + ..*self + } + } +} + +impl<'a, T, S, A> Iterator for Intersection<'a, T, S, A> +where + T: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + type Item = &'a T; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option<&'a T> { + loop { + let elt = self.iter.next()?; + if self.other.contains(elt) { + return Some(elt); + } + } + } + + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + let (_, upper) = self.iter.size_hint(); + (0, upper) + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.iter.fold(init, |acc, elt| { + if self.other.contains(elt) { + f(acc, elt) + } else { + acc + } + }) + } +} + +impl fmt::Debug for Intersection<'_, T, S, A> +where + T: fmt::Debug + Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list().entries(self.clone()).finish() + } +} + +impl FusedIterator for Intersection<'_, T, S, A> +where + T: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ +} + +impl Clone for Difference<'_, T, S, A> { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Difference { + iter: self.iter.clone(), + ..*self + } + } +} + +impl<'a, T, S, A> Iterator for Difference<'a, T, S, A> +where + T: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + type Item = &'a T; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option<&'a T> { + loop { + let elt = self.iter.next()?; + if !self.other.contains(elt) { + return Some(elt); + } + } + } + + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + let (_, upper) = self.iter.size_hint(); + (0, upper) + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.iter.fold(init, |acc, elt| { + if self.other.contains(elt) { + acc + } else { + f(acc, elt) + } + }) + } +} + +impl FusedIterator for Difference<'_, T, S, A> +where + T: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ +} + +impl fmt::Debug for Difference<'_, T, S, A> +where + T: fmt::Debug + Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list().entries(self.clone()).finish() + } +} + +impl Clone for SymmetricDifference<'_, T, S, A> { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + SymmetricDifference { + iter: self.iter.clone(), + } + } +} + +impl<'a, T, S, A> Iterator for SymmetricDifference<'a, T, S, A> +where + T: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + type Item = &'a T; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option<&'a T> { + self.iter.next() + } + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + self.iter.size_hint() + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.iter.fold(init, f) + } +} + +impl FusedIterator for SymmetricDifference<'_, T, S, A> +where + T: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ +} + +impl fmt::Debug for SymmetricDifference<'_, T, S, A> +where + T: fmt::Debug + Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list().entries(self.clone()).finish() + } +} + +impl Clone for Union<'_, T, S, A> { + #[cfg_attr(feature = "inline-more", inline)] + fn clone(&self) -> Self { + Union { + iter: self.iter.clone(), + } + } +} + +impl FusedIterator for Union<'_, T, S, A> +where + T: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ +} + +impl fmt::Debug for Union<'_, T, S, A> +where + T: fmt::Debug + Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list().entries(self.clone()).finish() + } +} + +impl<'a, T, S, A> Iterator for Union<'a, T, S, A> +where + T: Eq + Hash, + S: BuildHasher, + A: Allocator, +{ + type Item = &'a T; + + #[cfg_attr(feature = "inline-more", inline)] + fn next(&mut self) -> Option<&'a T> { + self.iter.next() + } + #[cfg_attr(feature = "inline-more", inline)] + fn size_hint(&self) -> (usize, Option) { + self.iter.size_hint() + } + #[cfg_attr(feature = "inline-more", inline)] + fn fold(self, init: B, f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.iter.fold(init, f) + } +} + +/// A view into a single entry in a set, which may either be vacant or occupied. +/// +/// This `enum` is constructed from the [`entry`] method on [`HashSet`]. +/// +/// [`HashSet`]: struct.HashSet.html +/// [`entry`]: struct.HashSet.html#method.entry +/// +/// # Examples +/// +/// ``` +/// use hashbrown::hash_set::{Entry, HashSet, OccupiedEntry}; +/// +/// let mut set = HashSet::new(); +/// set.extend(["a", "b", "c"]); +/// assert_eq!(set.len(), 3); +/// +/// // Existing value (insert) +/// let entry: Entry<_, _> = set.entry("a"); +/// let _raw_o: OccupiedEntry<_, _> = entry.insert(); +/// assert_eq!(set.len(), 3); +/// // Nonexistent value (insert) +/// set.entry("d").insert(); +/// +/// // Existing value (or_insert) +/// set.entry("b").or_insert(); +/// // Nonexistent value (or_insert) +/// set.entry("e").or_insert(); +/// +/// println!("Our HashSet: {:?}", set); +/// +/// let mut vec: Vec<_> = set.iter().copied().collect(); +/// // The `Iter` iterator produces items in arbitrary order, so the +/// // items must be sorted to test them against a sorted array. +/// vec.sort_unstable(); +/// assert_eq!(vec, ["a", "b", "c", "d", "e"]); +/// ``` +pub enum Entry<'a, T, S, A = Global> +where + A: Allocator, +{ + /// An occupied entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_set::{Entry, HashSet}; + /// let mut set: HashSet<_> = ["a", "b"].into(); + /// + /// match set.entry("a") { + /// Entry::Vacant(_) => unreachable!(), + /// Entry::Occupied(_) => { } + /// } + /// ``` + Occupied(OccupiedEntry<'a, T, S, A>), + + /// A vacant entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_set::{Entry, HashSet}; + /// let mut set: HashSet<&str> = HashSet::new(); + /// + /// match set.entry("a") { + /// Entry::Occupied(_) => unreachable!(), + /// Entry::Vacant(_) => { } + /// } + /// ``` + Vacant(VacantEntry<'a, T, S, A>), +} + +impl fmt::Debug for Entry<'_, T, S, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match *self { + Entry::Vacant(ref v) => f.debug_tuple("Entry").field(v).finish(), + Entry::Occupied(ref o) => f.debug_tuple("Entry").field(o).finish(), + } + } +} + +/// A view into an occupied entry in a `HashSet`. +/// It is part of the [`Entry`] enum. +/// +/// [`Entry`]: enum.Entry.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::hash_set::{Entry, HashSet, OccupiedEntry}; +/// +/// let mut set = HashSet::new(); +/// set.extend(["a", "b", "c"]); +/// +/// let _entry_o: OccupiedEntry<_, _> = set.entry("a").insert(); +/// assert_eq!(set.len(), 3); +/// +/// // Existing key +/// match set.entry("a") { +/// Entry::Vacant(_) => unreachable!(), +/// Entry::Occupied(view) => { +/// assert_eq!(view.get(), &"a"); +/// } +/// } +/// +/// assert_eq!(set.len(), 3); +/// +/// // Existing key (take) +/// match set.entry("c") { +/// Entry::Vacant(_) => unreachable!(), +/// Entry::Occupied(view) => { +/// assert_eq!(view.remove(), "c"); +/// } +/// } +/// assert_eq!(set.get(&"c"), None); +/// assert_eq!(set.len(), 2); +/// ``` +pub struct OccupiedEntry<'a, T, S, A: Allocator = Global> { + inner: map::OccupiedEntry<'a, T, (), S, A>, +} + +impl fmt::Debug for OccupiedEntry<'_, T, S, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("OccupiedEntry") + .field("value", self.get()) + .finish() + } +} + +/// A view into a vacant entry in a `HashSet`. +/// It is part of the [`Entry`] enum. +/// +/// [`Entry`]: enum.Entry.html +/// +/// # Examples +/// +/// ``` +/// use hashbrown::hash_set::{Entry, HashSet, VacantEntry}; +/// +/// let mut set = HashSet::<&str>::new(); +/// +/// let entry_v: VacantEntry<_, _> = match set.entry("a") { +/// Entry::Vacant(view) => view, +/// Entry::Occupied(_) => unreachable!(), +/// }; +/// entry_v.insert(); +/// assert!(set.contains("a") && set.len() == 1); +/// +/// // Nonexistent key (insert) +/// match set.entry("b") { +/// Entry::Vacant(view) => view.insert(), +/// Entry::Occupied(_) => unreachable!(), +/// } +/// assert!(set.contains("b") && set.len() == 2); +/// ``` +pub struct VacantEntry<'a, T, S, A: Allocator = Global> { + inner: map::VacantEntry<'a, T, (), S, A>, +} + +impl fmt::Debug for VacantEntry<'_, T, S, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple("VacantEntry").field(self.get()).finish() + } +} + +impl<'a, T, S, A: Allocator> Entry<'a, T, S, A> { + /// Sets the value of the entry, and returns an OccupiedEntry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set: HashSet<&str> = HashSet::new(); + /// let entry = set.entry("horseyland").insert(); + /// + /// assert_eq!(entry.get(), &"horseyland"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(self) -> OccupiedEntry<'a, T, S, A> + where + T: Hash, + S: BuildHasher, + { + match self { + Entry::Occupied(entry) => entry, + Entry::Vacant(entry) => entry.insert_entry(), + } + } + + /// Ensures a value is in the entry by inserting if it was vacant. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set: HashSet<&str> = HashSet::new(); + /// + /// // nonexistent key + /// set.entry("poneyland").or_insert(); + /// assert!(set.contains("poneyland")); + /// + /// // existing key + /// set.entry("poneyland").or_insert(); + /// assert!(set.contains("poneyland")); + /// assert_eq!(set.len(), 1); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn or_insert(self) + where + T: Hash, + S: BuildHasher, + { + if let Entry::Vacant(entry) = self { + entry.insert(); + } + } + + /// Returns a reference to this entry's value. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set: HashSet<&str> = HashSet::new(); + /// set.entry("poneyland").or_insert(); + /// // existing key + /// assert_eq!(set.entry("poneyland").get(), &"poneyland"); + /// // nonexistent key + /// assert_eq!(set.entry("horseland").get(), &"horseland"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get(&self) -> &T { + match *self { + Entry::Occupied(ref entry) => entry.get(), + Entry::Vacant(ref entry) => entry.get(), + } + } +} + +impl OccupiedEntry<'_, T, S, A> { + /// Gets a reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_set::{Entry, HashSet}; + /// + /// let mut set: HashSet<&str> = HashSet::new(); + /// set.entry("poneyland").or_insert(); + /// + /// match set.entry("poneyland") { + /// Entry::Vacant(_) => panic!(), + /// Entry::Occupied(entry) => assert_eq!(entry.get(), &"poneyland"), + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get(&self) -> &T { + self.inner.key() + } + + /// Takes the value out of the entry, and returns it. + /// Keeps the allocated memory for reuse. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// use hashbrown::hash_set::Entry; + /// + /// let mut set: HashSet<&str> = HashSet::new(); + /// // The set is empty + /// assert!(set.is_empty() && set.capacity() == 0); + /// + /// set.entry("poneyland").or_insert(); + /// let capacity_before_remove = set.capacity(); + /// + /// if let Entry::Occupied(o) = set.entry("poneyland") { + /// assert_eq!(o.remove(), "poneyland"); + /// } + /// + /// assert_eq!(set.contains("poneyland"), false); + /// // Now set hold none elements but capacity is equal to the old one + /// assert!(set.len() == 0 && set.capacity() == capacity_before_remove); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove(self) -> T { + self.inner.remove_entry().0 + } + + /// Replaces the entry, returning the old value. The new value in the hash map will be + /// the value used to create this entry. + /// + /// # Panics + /// + /// Will panic if this OccupiedEntry was created through [`Entry::insert`]. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_set::{Entry, HashSet}; + /// use std::rc::Rc; + /// + /// let mut set: HashSet> = HashSet::new(); + /// let key_one = Rc::new("Stringthing".to_string()); + /// let key_two = Rc::new("Stringthing".to_string()); + /// + /// set.insert(key_one.clone()); + /// assert!(Rc::strong_count(&key_one) == 2 && Rc::strong_count(&key_two) == 1); + /// + /// match set.entry(key_two.clone()) { + /// Entry::Occupied(entry) => { + /// let old_key: Rc = entry.replace(); + /// assert!(Rc::ptr_eq(&key_one, &old_key)); + /// } + /// Entry::Vacant(_) => panic!(), + /// } + /// + /// assert!(Rc::strong_count(&key_one) == 1 && Rc::strong_count(&key_two) == 2); + /// assert!(set.contains(&"Stringthing".to_owned())); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn replace(self) -> T { + self.inner.replace_key() + } +} + +impl<'a, T, S, A: Allocator> VacantEntry<'a, T, S, A> { + /// Gets a reference to the value that would be used when inserting + /// through the `VacantEntry`. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// + /// let mut set: HashSet<&str> = HashSet::new(); + /// assert_eq!(set.entry("poneyland").get(), &"poneyland"); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn get(&self) -> &T { + self.inner.key() + } + + /// Take ownership of the value. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::hash_set::{Entry, HashSet}; + /// + /// let mut set: HashSet<&str> = HashSet::new(); + /// + /// match set.entry("poneyland") { + /// Entry::Occupied(_) => panic!(), + /// Entry::Vacant(v) => assert_eq!(v.into_value(), "poneyland"), + /// } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn into_value(self) -> T { + self.inner.into_key() + } + + /// Sets the value of the entry with the VacantEntry's value. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashSet; + /// use hashbrown::hash_set::Entry; + /// + /// let mut set: HashSet<&str> = HashSet::new(); + /// + /// if let Entry::Vacant(o) = set.entry("poneyland") { + /// o.insert(); + /// } + /// assert!(set.contains("poneyland")); + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn insert(self) + where + T: Hash, + S: BuildHasher, + { + self.inner.insert(()); + } + + #[cfg_attr(feature = "inline-more", inline)] + fn insert_entry(self) -> OccupiedEntry<'a, T, S, A> + where + T: Hash, + S: BuildHasher, + { + OccupiedEntry { + inner: self.inner.insert_entry(()), + } + } +} + +#[allow(dead_code)] +fn assert_covariance() { + fn set<'new>(v: HashSet<&'static str>) -> HashSet<&'new str> { + v + } + fn iter<'a, 'new>(v: Iter<'a, &'static str>) -> Iter<'a, &'new str> { + v + } + fn into_iter<'new, A: Allocator>(v: IntoIter<&'static str, A>) -> IntoIter<&'new str, A> { + v + } + fn difference<'a, 'new, A: Allocator>( + v: Difference<'a, &'static str, DefaultHashBuilder, A>, + ) -> Difference<'a, &'new str, DefaultHashBuilder, A> { + v + } + fn symmetric_difference<'a, 'new, A: Allocator>( + v: SymmetricDifference<'a, &'static str, DefaultHashBuilder, A>, + ) -> SymmetricDifference<'a, &'new str, DefaultHashBuilder, A> { + v + } + fn intersection<'a, 'new, A: Allocator>( + v: Intersection<'a, &'static str, DefaultHashBuilder, A>, + ) -> Intersection<'a, &'new str, DefaultHashBuilder, A> { + v + } + fn union<'a, 'new, A: Allocator>( + v: Union<'a, &'static str, DefaultHashBuilder, A>, + ) -> Union<'a, &'new str, DefaultHashBuilder, A> { + v + } + fn drain<'new, A: Allocator>(d: Drain<'static, &'static str, A>) -> Drain<'new, &'new str, A> { + d + } +} + +#[cfg(test)] +mod test_set { + use super::super::map::DefaultHashBuilder; + use super::HashSet; + use std::vec::Vec; + + #[test] + fn test_zero_capacities() { + type HS = HashSet; + + let s = HS::new(); + assert_eq!(s.capacity(), 0); + + let s = HS::default(); + assert_eq!(s.capacity(), 0); + + let s = HS::with_hasher(DefaultHashBuilder::default()); + assert_eq!(s.capacity(), 0); + + let s = HS::with_capacity(0); + assert_eq!(s.capacity(), 0); + + let s = HS::with_capacity_and_hasher(0, DefaultHashBuilder::default()); + assert_eq!(s.capacity(), 0); + + let mut s = HS::new(); + s.insert(1); + s.insert(2); + s.remove(&1); + s.remove(&2); + s.shrink_to_fit(); + assert_eq!(s.capacity(), 0); + + let mut s = HS::new(); + s.reserve(0); + assert_eq!(s.capacity(), 0); + } + + #[test] + fn test_disjoint() { + let mut xs = HashSet::new(); + let mut ys = HashSet::new(); + assert!(xs.is_disjoint(&ys)); + assert!(ys.is_disjoint(&xs)); + assert!(xs.insert(5)); + assert!(ys.insert(11)); + assert!(xs.is_disjoint(&ys)); + assert!(ys.is_disjoint(&xs)); + assert!(xs.insert(7)); + assert!(xs.insert(19)); + assert!(xs.insert(4)); + assert!(ys.insert(2)); + assert!(ys.insert(-11)); + assert!(xs.is_disjoint(&ys)); + assert!(ys.is_disjoint(&xs)); + assert!(ys.insert(7)); + assert!(!xs.is_disjoint(&ys)); + assert!(!ys.is_disjoint(&xs)); + } + + #[test] + fn test_subset_and_superset() { + let mut a = HashSet::new(); + assert!(a.insert(0)); + assert!(a.insert(5)); + assert!(a.insert(11)); + assert!(a.insert(7)); + + let mut b = HashSet::new(); + assert!(b.insert(0)); + assert!(b.insert(7)); + assert!(b.insert(19)); + assert!(b.insert(250)); + assert!(b.insert(11)); + assert!(b.insert(200)); + + assert!(!a.is_subset(&b)); + assert!(!a.is_superset(&b)); + assert!(!b.is_subset(&a)); + assert!(!b.is_superset(&a)); + + assert!(b.insert(5)); + + assert!(a.is_subset(&b)); + assert!(!a.is_superset(&b)); + assert!(!b.is_subset(&a)); + assert!(b.is_superset(&a)); + } + + #[test] + fn test_iterate() { + let mut a = HashSet::new(); + for i in 0..32 { + assert!(a.insert(i)); + } + let mut observed: u32 = 0; + for k in &a { + observed |= 1 << *k; + } + assert_eq!(observed, 0xFFFF_FFFF); + } + + #[test] + fn test_intersection() { + let mut a = HashSet::new(); + let mut b = HashSet::new(); + + assert!(a.insert(11)); + assert!(a.insert(1)); + assert!(a.insert(3)); + assert!(a.insert(77)); + assert!(a.insert(103)); + assert!(a.insert(5)); + assert!(a.insert(-5)); + + assert!(b.insert(2)); + assert!(b.insert(11)); + assert!(b.insert(77)); + assert!(b.insert(-9)); + assert!(b.insert(-42)); + assert!(b.insert(5)); + assert!(b.insert(3)); + + let mut i = 0; + let expected = [3, 5, 11, 77]; + for x in a.intersection(&b) { + assert!(expected.contains(x)); + i += 1; + } + assert_eq!(i, expected.len()); + } + + #[test] + fn test_difference() { + let mut a = HashSet::new(); + let mut b = HashSet::new(); + + assert!(a.insert(1)); + assert!(a.insert(3)); + assert!(a.insert(5)); + assert!(a.insert(9)); + assert!(a.insert(11)); + + assert!(b.insert(3)); + assert!(b.insert(9)); + + let mut i = 0; + let expected = [1, 5, 11]; + for x in a.difference(&b) { + assert!(expected.contains(x)); + i += 1; + } + assert_eq!(i, expected.len()); + } + + #[test] + fn test_symmetric_difference() { + let mut a = HashSet::new(); + let mut b = HashSet::new(); + + assert!(a.insert(1)); + assert!(a.insert(3)); + assert!(a.insert(5)); + assert!(a.insert(9)); + assert!(a.insert(11)); + + assert!(b.insert(-2)); + assert!(b.insert(3)); + assert!(b.insert(9)); + assert!(b.insert(14)); + assert!(b.insert(22)); + + let mut i = 0; + let expected = [-2, 1, 5, 11, 14, 22]; + for x in a.symmetric_difference(&b) { + assert!(expected.contains(x)); + i += 1; + } + assert_eq!(i, expected.len()); + } + + #[test] + fn test_union() { + let mut a = HashSet::new(); + let mut b = HashSet::new(); + + assert!(a.insert(1)); + assert!(a.insert(3)); + assert!(a.insert(5)); + assert!(a.insert(9)); + assert!(a.insert(11)); + assert!(a.insert(16)); + assert!(a.insert(19)); + assert!(a.insert(24)); + + assert!(b.insert(-2)); + assert!(b.insert(1)); + assert!(b.insert(5)); + assert!(b.insert(9)); + assert!(b.insert(13)); + assert!(b.insert(19)); + + let mut i = 0; + let expected = [-2, 1, 3, 5, 9, 11, 13, 16, 19, 24]; + for x in a.union(&b) { + assert!(expected.contains(x)); + i += 1; + } + assert_eq!(i, expected.len()); + } + + #[test] + fn test_from_map() { + let mut a = crate::HashMap::new(); + a.insert(1, ()); + a.insert(2, ()); + a.insert(3, ()); + a.insert(4, ()); + + let a: HashSet<_> = a.into(); + + assert_eq!(a.len(), 4); + assert!(a.contains(&1)); + assert!(a.contains(&2)); + assert!(a.contains(&3)); + assert!(a.contains(&4)); + } + + #[test] + fn test_from_iter() { + let xs = [1, 2, 2, 3, 4, 5, 6, 7, 8, 9]; + + let set: HashSet<_> = xs.iter().copied().collect(); + + for x in &xs { + assert!(set.contains(x)); + } + + assert_eq!(set.iter().len(), xs.len() - 1); + } + + #[test] + fn test_move_iter() { + let hs = { + let mut hs = HashSet::new(); + + hs.insert('a'); + hs.insert('b'); + + hs + }; + + let v = hs.into_iter().collect::>(); + assert!(v == ['a', 'b'] || v == ['b', 'a']); + } + + #[test] + fn test_eq() { + // These constants once happened to expose a bug in insert(). + // I'm keeping them around to prevent a regression. + let mut s1 = HashSet::new(); + + s1.insert(1); + s1.insert(2); + s1.insert(3); + + let mut s2 = HashSet::new(); + + s2.insert(1); + s2.insert(2); + + assert!(s1 != s2); + + s2.insert(3); + + assert_eq!(s1, s2); + } + + #[test] + fn test_show() { + let mut set = HashSet::new(); + let empty = HashSet::::new(); + + set.insert(1); + set.insert(2); + + let set_str = format!("{set:?}"); + + assert!(set_str == "{1, 2}" || set_str == "{2, 1}"); + assert_eq!(format!("{empty:?}"), "{}"); + } + + #[test] + fn test_trivial_drain() { + let mut s = HashSet::::new(); + for _ in s.drain() {} + assert!(s.is_empty()); + drop(s); + + let mut s = HashSet::::new(); + drop(s.drain()); + assert!(s.is_empty()); + } + + #[test] + fn test_drain() { + let mut s: HashSet<_> = (1..100).collect(); + + // try this a bunch of times to make sure we don't screw up internal state. + for _ in 0..20 { + assert_eq!(s.len(), 99); + + { + let mut last_i = 0; + let mut d = s.drain(); + for (i, x) in d.by_ref().take(50).enumerate() { + last_i = i; + assert!(x != 0); + } + assert_eq!(last_i, 49); + } + + if !s.is_empty() { + panic!("s should be empty!"); + } + + // reset to try again. + s.extend(1..100); + } + } + + #[test] + fn test_replace() { + use core::hash; + + #[derive(Debug)] + #[allow(dead_code)] + struct Foo(&'static str, i32); + + impl PartialEq for Foo { + fn eq(&self, other: &Self) -> bool { + self.0 == other.0 + } + } + + impl Eq for Foo {} + + impl hash::Hash for Foo { + fn hash(&self, h: &mut H) { + self.0.hash(h); + } + } + + let mut s = HashSet::new(); + assert_eq!(s.replace(Foo("a", 1)), None); + assert_eq!(s.len(), 1); + assert_eq!(s.replace(Foo("a", 2)), Some(Foo("a", 1))); + assert_eq!(s.len(), 1); + + let mut it = s.iter(); + assert_eq!(it.next(), Some(&Foo("a", 2))); + assert_eq!(it.next(), None); + } + + #[test] + #[allow(clippy::needless_borrow)] + fn test_extend_ref() { + let mut a = HashSet::new(); + a.insert(1); + + a.extend([2, 3, 4]); + + assert_eq!(a.len(), 4); + assert!(a.contains(&1)); + assert!(a.contains(&2)); + assert!(a.contains(&3)); + assert!(a.contains(&4)); + + let mut b = HashSet::new(); + b.insert(5); + b.insert(6); + + a.extend(&b); + + assert_eq!(a.len(), 6); + assert!(a.contains(&1)); + assert!(a.contains(&2)); + assert!(a.contains(&3)); + assert!(a.contains(&4)); + assert!(a.contains(&5)); + assert!(a.contains(&6)); + } + + #[test] + fn test_retain() { + let xs = [1, 2, 3, 4, 5, 6]; + let mut set: HashSet = xs.iter().copied().collect(); + set.retain(|&k| k % 2 == 0); + assert_eq!(set.len(), 3); + assert!(set.contains(&2)); + assert!(set.contains(&4)); + assert!(set.contains(&6)); + } + + #[test] + fn test_extract_if() { + { + let mut set: HashSet = (0..8).collect(); + let drained = set.extract_if(|&k| k % 2 == 0); + let mut out = drained.collect::>(); + out.sort_unstable(); + assert_eq!(vec![0, 2, 4, 6], out); + assert_eq!(set.len(), 4); + } + { + let mut set: HashSet = (0..8).collect(); + set.extract_if(|&k| k % 2 == 0).for_each(drop); + assert_eq!(set.len(), 4, "Removes non-matching items on drop"); + } + } + + #[test] + fn test_const_with_hasher() { + use core::hash::BuildHasher; + use std::collections::hash_map::DefaultHasher; + + #[derive(Clone)] + struct MyHasher; + impl BuildHasher for MyHasher { + type Hasher = DefaultHasher; + + fn build_hasher(&self) -> DefaultHasher { + DefaultHasher::new() + } + } + + const EMPTY_SET: HashSet = HashSet::with_hasher(MyHasher); + + let mut set = EMPTY_SET; + set.insert(19); + assert!(set.contains(&19)); + } + + #[test] + fn rehash_in_place() { + let mut set = HashSet::new(); + + for i in 0..224 { + set.insert(i); + } + + assert_eq!( + set.capacity(), + 224, + "The set must be at or close to capacity to trigger a re hashing" + ); + + for i in 100..1400 { + set.remove(&(i - 100)); + set.insert(i); + } + } + + #[test] + fn collect() { + // At the time of writing, this hits the ZST case in from_base_index + // (and without the `map`, it does not). + let mut _set: HashSet<_> = (0..3).map(|_| ()).collect(); + } +} diff --git a/src/rust/vendor/hashbrown/src/table.rs b/src/rust/vendor/hashbrown/src/table.rs new file mode 100644 index 000000000..faf8a6330 --- /dev/null +++ b/src/rust/vendor/hashbrown/src/table.rs @@ -0,0 +1,2070 @@ +use core::{fmt, iter::FusedIterator, marker::PhantomData}; + +use crate::{ + raw::{ + Allocator, Bucket, Global, InsertSlot, RawDrain, RawExtractIf, RawIntoIter, RawIter, + RawTable, + }, + TryReserveError, +}; + +/// Low-level hash table with explicit hashing. +/// +/// The primary use case for this type over [`HashMap`] or [`HashSet`] is to +/// support types that do not implement the [`Hash`] and [`Eq`] traits, but +/// instead require additional data not contained in the key itself to compute a +/// hash and compare two elements for equality. +/// +/// Examples of when this can be useful include: +/// - An `IndexMap` implementation where indices into a `Vec` are stored as +/// elements in a `HashTable`. Hashing and comparing the elements +/// requires indexing the associated `Vec` to get the actual value referred to +/// by the index. +/// - Avoiding re-computing a hash when it is already known. +/// - Mutating the key of an element in a way that doesn't affect its hash. +/// +/// To achieve this, `HashTable` methods that search for an element in the table +/// require a hash value and equality function to be explicitly passed in as +/// arguments. The method will then iterate over the elements with the given +/// hash and call the equality function on each of them, until a match is found. +/// +/// In most cases, a `HashTable` will not be exposed directly in an API. It will +/// instead be wrapped in a helper type which handles the work of calculating +/// hash values and comparing elements. +/// +/// Due to its low-level nature, this type provides fewer guarantees than +/// [`HashMap`] and [`HashSet`]. Specifically, the API allows you to shoot +/// yourself in the foot by having multiple elements with identical keys in the +/// table. The table itself will still function correctly and lookups will +/// arbitrarily return one of the matching elements. However you should avoid +/// doing this because it changes the runtime of hash table operations from +/// `O(1)` to `O(k)` where `k` is the number of duplicate entries. +/// +/// [`HashMap`]: super::HashMap +/// [`HashSet`]: super::HashSet +pub struct HashTable +where + A: Allocator, +{ + pub(crate) raw: RawTable, +} + +impl HashTable { + /// Creates an empty `HashTable`. + /// + /// The hash table is initially created with a capacity of 0, so it will not allocate until it + /// is first inserted into. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashTable; + /// let mut table: HashTable<&str> = HashTable::new(); + /// assert_eq!(table.len(), 0); + /// assert_eq!(table.capacity(), 0); + /// ``` + pub const fn new() -> Self { + Self { + raw: RawTable::new(), + } + } + + /// Creates an empty `HashTable` with the specified capacity. + /// + /// The hash table will be able to hold at least `capacity` elements without + /// reallocating. If `capacity` is 0, the hash table will not allocate. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashTable; + /// let mut table: HashTable<&str> = HashTable::with_capacity(10); + /// assert_eq!(table.len(), 0); + /// assert!(table.capacity() >= 10); + /// ``` + pub fn with_capacity(capacity: usize) -> Self { + Self { + raw: RawTable::with_capacity(capacity), + } + } +} + +impl HashTable +where + A: Allocator, +{ + /// Creates an empty `HashTable` using the given allocator. + /// + /// The hash table is initially created with a capacity of 0, so it will not allocate until it + /// is first inserted into. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use bumpalo::Bump; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let bump = Bump::new(); + /// let mut table = HashTable::new_in(&bump); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// + /// // The created HashTable holds none elements + /// assert_eq!(table.len(), 0); + /// + /// // The created HashTable also doesn't allocate memory + /// assert_eq!(table.capacity(), 0); + /// + /// // Now we insert element inside created HashTable + /// table.insert_unique(hasher(&"One"), "One", hasher); + /// // We can see that the HashTable holds 1 element + /// assert_eq!(table.len(), 1); + /// // And it also allocates some capacity + /// assert!(table.capacity() > 1); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub const fn new_in(alloc: A) -> Self { + Self { + raw: RawTable::new_in(alloc), + } + } + + /// Creates an empty `HashTable` with the specified capacity using the given allocator. + /// + /// The hash table will be able to hold at least `capacity` elements without + /// reallocating. If `capacity` is 0, the hash table will not allocate. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use bumpalo::Bump; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let bump = Bump::new(); + /// let mut table = HashTable::with_capacity_in(5, &bump); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// + /// // The created HashTable holds none elements + /// assert_eq!(table.len(), 0); + /// // But it can hold at least 5 elements without reallocating + /// let empty_map_capacity = table.capacity(); + /// assert!(empty_map_capacity >= 5); + /// + /// // Now we insert some 5 elements inside created HashTable + /// table.insert_unique(hasher(&"One"), "One", hasher); + /// table.insert_unique(hasher(&"Two"), "Two", hasher); + /// table.insert_unique(hasher(&"Three"), "Three", hasher); + /// table.insert_unique(hasher(&"Four"), "Four", hasher); + /// table.insert_unique(hasher(&"Five"), "Five", hasher); + /// + /// // We can see that the HashTable holds 5 elements + /// assert_eq!(table.len(), 5); + /// // But its capacity isn't changed + /// assert_eq!(table.capacity(), empty_map_capacity) + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn with_capacity_in(capacity: usize, alloc: A) -> Self { + Self { + raw: RawTable::with_capacity_in(capacity, alloc), + } + } + + /// Returns a reference to the underlying allocator. + pub fn allocator(&self) -> &A { + self.raw.allocator() + } + + /// Returns a reference to an entry in the table with the given hash and + /// which satisfies the equality function passed. + /// + /// This method will call `eq` for all entries with the given hash, but may + /// also call it for entries with a different hash. `eq` should only return + /// true for the desired entry, at which point the search is stopped. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// table.insert_unique(hasher(&1), 1, hasher); + /// table.insert_unique(hasher(&2), 2, hasher); + /// table.insert_unique(hasher(&3), 3, hasher); + /// assert_eq!(table.find(hasher(&2), |&val| val == 2), Some(&2)); + /// assert_eq!(table.find(hasher(&4), |&val| val == 4), None); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn find(&self, hash: u64, eq: impl FnMut(&T) -> bool) -> Option<&T> { + self.raw.get(hash, eq) + } + + /// Returns a mutable reference to an entry in the table with the given hash + /// and which satisfies the equality function passed. + /// + /// This method will call `eq` for all entries with the given hash, but may + /// also call it for entries with a different hash. `eq` should only return + /// true for the desired entry, at which point the search is stopped. + /// + /// When mutating an entry, you should ensure that it still retains the same + /// hash value as when it was inserted, otherwise lookups of that entry may + /// fail to find it. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// table.insert_unique(hasher(&1), (1, "a"), |val| hasher(&val.0)); + /// if let Some(val) = table.find_mut(hasher(&1), |val| val.0 == 1) { + /// val.1 = "b"; + /// } + /// assert_eq!(table.find(hasher(&1), |val| val.0 == 1), Some(&(1, "b"))); + /// assert_eq!(table.find(hasher(&2), |val| val.0 == 2), None); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn find_mut(&mut self, hash: u64, eq: impl FnMut(&T) -> bool) -> Option<&mut T> { + self.raw.get_mut(hash, eq) + } + + /// Returns an `OccupiedEntry` for an entry in the table with the given hash + /// and which satisfies the equality function passed. + /// + /// This can be used to remove the entry from the table. Call + /// [`HashTable::entry`] instead if you wish to insert an entry if the + /// lookup fails. + /// + /// This method will call `eq` for all entries with the given hash, but may + /// also call it for entries with a different hash. `eq` should only return + /// true for the desired entry, at which point the search is stopped. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// table.insert_unique(hasher(&1), (1, "a"), |val| hasher(&val.0)); + /// if let Ok(entry) = table.find_entry(hasher(&1), |val| val.0 == 1) { + /// entry.remove(); + /// } + /// assert_eq!(table.find(hasher(&1), |val| val.0 == 1), None); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn find_entry( + &mut self, + hash: u64, + eq: impl FnMut(&T) -> bool, + ) -> Result, AbsentEntry<'_, T, A>> { + match self.raw.find(hash, eq) { + Some(bucket) => Ok(OccupiedEntry { + hash, + bucket, + table: self, + }), + None => Err(AbsentEntry { table: self }), + } + } + + /// Returns an `Entry` for an entry in the table with the given hash + /// and which satisfies the equality function passed. + /// + /// This can be used to remove the entry from the table, or insert a new + /// entry with the given hash if one doesn't already exist. + /// + /// This method will call `eq` for all entries with the given hash, but may + /// also call it for entries with a different hash. `eq` should only return + /// true for the desired entry, at which point the search is stopped. + /// + /// This method may grow the table in preparation for an insertion. Call + /// [`HashTable::find_entry`] if this is undesirable. + /// + /// `hasher` is called if entries need to be moved or copied to a new table. + /// This must return the same hash value that each entry was inserted with. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::hash_table::Entry; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// table.insert_unique(hasher(&1), (1, "a"), |val| hasher(&val.0)); + /// if let Entry::Occupied(entry) = table.entry(hasher(&1), |val| val.0 == 1, |val| hasher(&val.0)) + /// { + /// entry.remove(); + /// } + /// if let Entry::Vacant(entry) = table.entry(hasher(&2), |val| val.0 == 2, |val| hasher(&val.0)) { + /// entry.insert((2, "b")); + /// } + /// assert_eq!(table.find(hasher(&1), |val| val.0 == 1), None); + /// assert_eq!(table.find(hasher(&2), |val| val.0 == 2), Some(&(2, "b"))); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn entry( + &mut self, + hash: u64, + eq: impl FnMut(&T) -> bool, + hasher: impl Fn(&T) -> u64, + ) -> Entry<'_, T, A> { + match self.raw.find_or_find_insert_slot(hash, eq, hasher) { + Ok(bucket) => Entry::Occupied(OccupiedEntry { + hash, + bucket, + table: self, + }), + Err(insert_slot) => Entry::Vacant(VacantEntry { + hash, + insert_slot, + table: self, + }), + } + } + + /// Inserts an element into the `HashTable` with the given hash value, but + /// without checking whether an equivalent element already exists within the + /// table. + /// + /// `hasher` is called if entries need to be moved or copied to a new table. + /// This must return the same hash value that each entry was inserted with. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut v = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// v.insert_unique(hasher(&1), 1, hasher); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn insert_unique( + &mut self, + hash: u64, + value: T, + hasher: impl Fn(&T) -> u64, + ) -> OccupiedEntry<'_, T, A> { + let bucket = self.raw.insert(hash, value, hasher); + OccupiedEntry { + hash, + bucket, + table: self, + } + } + + /// Clears the table, removing all values. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut v = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// v.insert_unique(hasher(&1), 1, hasher); + /// v.clear(); + /// assert!(v.is_empty()); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn clear(&mut self) { + self.raw.clear(); + } + + /// Shrinks the capacity of the table as much as possible. It will drop + /// down as much as possible while maintaining the internal rules + /// and possibly leaving some space in accordance with the resize policy. + /// + /// `hasher` is called if entries need to be moved or copied to a new table. + /// This must return the same hash value that each entry was inserted with. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table = HashTable::with_capacity(100); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// table.insert_unique(hasher(&1), 1, hasher); + /// table.insert_unique(hasher(&2), 2, hasher); + /// assert!(table.capacity() >= 100); + /// table.shrink_to_fit(hasher); + /// assert!(table.capacity() >= 2); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn shrink_to_fit(&mut self, hasher: impl Fn(&T) -> u64) { + self.raw.shrink_to(self.len(), hasher) + } + + /// Shrinks the capacity of the table with a lower limit. It will drop + /// down no lower than the supplied limit while maintaining the internal rules + /// and possibly leaving some space in accordance with the resize policy. + /// + /// `hasher` is called if entries need to be moved or copied to a new table. + /// This must return the same hash value that each entry was inserted with. + /// + /// Panics if the current capacity is smaller than the supplied + /// minimum capacity. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table = HashTable::with_capacity(100); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// table.insert_unique(hasher(&1), 1, hasher); + /// table.insert_unique(hasher(&2), 2, hasher); + /// assert!(table.capacity() >= 100); + /// table.shrink_to(10, hasher); + /// assert!(table.capacity() >= 10); + /// table.shrink_to(0, hasher); + /// assert!(table.capacity() >= 2); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn shrink_to(&mut self, min_capacity: usize, hasher: impl Fn(&T) -> u64) { + self.raw.shrink_to(min_capacity, hasher); + } + + /// Reserves capacity for at least `additional` more elements to be inserted + /// in the `HashTable`. The collection may reserve more space to avoid + /// frequent reallocations. + /// + /// `hasher` is called if entries need to be moved or copied to a new table. + /// This must return the same hash value that each entry was inserted with. + /// + /// # Panics + /// + /// Panics if the new capacity exceeds [`isize::MAX`] bytes and [`abort`] the program + /// in case of allocation error. Use [`try_reserve`](HashTable::try_reserve) instead + /// if you want to handle memory allocation failure. + /// + /// [`isize::MAX`]: https://doc.rust-lang.org/std/primitive.isize.html + /// [`abort`]: https://doc.rust-lang.org/alloc/alloc/fn.handle_alloc_error.html + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table: HashTable = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// table.reserve(10, hasher); + /// assert!(table.capacity() >= 10); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn reserve(&mut self, additional: usize, hasher: impl Fn(&T) -> u64) { + self.raw.reserve(additional, hasher) + } + + /// Tries to reserve capacity for at least `additional` more elements to be inserted + /// in the given `HashTable`. The collection may reserve more space to avoid + /// frequent reallocations. + /// + /// `hasher` is called if entries need to be moved or copied to a new table. + /// This must return the same hash value that each entry was inserted with. + /// + /// # Errors + /// + /// If the capacity overflows, or the allocator reports a failure, then an error + /// is returned. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table: HashTable = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// table + /// .try_reserve(10, hasher) + /// .expect("why is the test harness OOMing on 10 bytes?"); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn try_reserve( + &mut self, + additional: usize, + hasher: impl Fn(&T) -> u64, + ) -> Result<(), TryReserveError> { + self.raw.try_reserve(additional, hasher) + } + + /// Returns the number of elements the table can hold without reallocating. + /// + /// # Examples + /// + /// ``` + /// use hashbrown::HashTable; + /// let table: HashTable = HashTable::with_capacity(100); + /// assert!(table.capacity() >= 100); + /// ``` + pub fn capacity(&self) -> usize { + self.raw.capacity() + } + + /// Returns the number of elements in the table. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// let mut v = HashTable::new(); + /// assert_eq!(v.len(), 0); + /// v.insert_unique(hasher(&1), 1, hasher); + /// assert_eq!(v.len(), 1); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn len(&self) -> usize { + self.raw.len() + } + + /// Returns `true` if the set contains no elements. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// let mut v = HashTable::new(); + /// assert!(v.is_empty()); + /// v.insert_unique(hasher(&1), 1, hasher); + /// assert!(!v.is_empty()); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn is_empty(&self) -> bool { + self.raw.is_empty() + } + + /// An iterator visiting all elements in arbitrary order. + /// The iterator element type is `&'a T`. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// table.insert_unique(hasher(&"a"), "b", hasher); + /// table.insert_unique(hasher(&"b"), "b", hasher); + /// + /// // Will print in an arbitrary order. + /// for x in table.iter() { + /// println!("{}", x); + /// } + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn iter(&self) -> Iter<'_, T> { + Iter { + inner: unsafe { self.raw.iter() }, + marker: PhantomData, + } + } + + /// An iterator visiting all elements in arbitrary order, + /// with mutable references to the elements. + /// The iterator element type is `&'a mut T`. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// table.insert_unique(hasher(&1), 1, hasher); + /// table.insert_unique(hasher(&2), 2, hasher); + /// table.insert_unique(hasher(&3), 3, hasher); + /// + /// // Update all values + /// for val in table.iter_mut() { + /// *val *= 2; + /// } + /// + /// assert_eq!(table.len(), 3); + /// let mut vec: Vec = Vec::new(); + /// + /// for val in &table { + /// println!("val: {}", val); + /// vec.push(*val); + /// } + /// + /// // The `Iter` iterator produces items in arbitrary order, so the + /// // items must be sorted to test them against a sorted array. + /// vec.sort_unstable(); + /// assert_eq!(vec, [2, 4, 6]); + /// + /// assert_eq!(table.len(), 3); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn iter_mut(&mut self) -> IterMut<'_, T> { + IterMut { + inner: unsafe { self.raw.iter() }, + marker: PhantomData, + } + } + + /// Retains only the elements specified by the predicate. + /// + /// In other words, remove all elements `e` such that `f(&e)` returns `false`. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// for x in 1..=6 { + /// table.insert_unique(hasher(&x), x, hasher); + /// } + /// table.retain(|&mut x| x % 2 == 0); + /// assert_eq!(table.len(), 3); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn retain(&mut self, mut f: impl FnMut(&mut T) -> bool) { + // Here we only use `iter` as a temporary, preventing use-after-free + unsafe { + for item in self.raw.iter() { + if !f(item.as_mut()) { + self.raw.erase(item); + } + } + } + } + + /// Clears the set, returning all elements in an iterator. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// for x in 1..=3 { + /// table.insert_unique(hasher(&x), x, hasher); + /// } + /// assert!(!table.is_empty()); + /// + /// // print 1, 2, 3 in an arbitrary order + /// for i in table.drain() { + /// println!("{}", i); + /// } + /// + /// assert!(table.is_empty()); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn drain(&mut self) -> Drain<'_, T, A> { + Drain { + inner: self.raw.drain(), + } + } + + /// Drains elements which are true under the given predicate, + /// and returns an iterator over the removed items. + /// + /// In other words, move all elements `e` such that `f(&e)` returns `true` out + /// into another iterator. + /// + /// If the returned `ExtractIf` is not exhausted, e.g. because it is dropped without iterating + /// or the iteration short-circuits, then the remaining elements will be retained. + /// Use [`retain()`] with a negated predicate if you do not need the returned iterator. + /// + /// [`retain()`]: HashTable::retain + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// for x in 0..8 { + /// table.insert_unique(hasher(&x), x, hasher); + /// } + /// let drained: Vec = table.extract_if(|&mut v| v % 2 == 0).collect(); + /// + /// let mut evens = drained.into_iter().collect::>(); + /// let mut odds = table.into_iter().collect::>(); + /// evens.sort(); + /// odds.sort(); + /// + /// assert_eq!(evens, vec![0, 2, 4, 6]); + /// assert_eq!(odds, vec![1, 3, 5, 7]); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn extract_if(&mut self, f: F) -> ExtractIf<'_, T, F, A> + where + F: FnMut(&mut T) -> bool, + { + ExtractIf { + f, + inner: RawExtractIf { + iter: unsafe { self.raw.iter() }, + table: &mut self.raw, + }, + } + } + + /// Attempts to get mutable references to `N` values in the map at once. + /// + /// The `eq` argument should be a closure such that `eq(i, k)` returns true if `k` is equal to + /// the `i`th key to be looked up. + /// + /// Returns an array of length `N` with the results of each query. For soundness, at most one + /// mutable reference will be returned to any value. `None` will be returned if any of the + /// keys are duplicates or missing. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::hash_table::Entry; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut libraries: HashTable<(&str, u32)> = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// for (k, v) in [ + /// ("Bodleian Library", 1602), + /// ("Athenæum", 1807), + /// ("Herzogin-Anna-Amalia-Bibliothek", 1691), + /// ("Library of Congress", 1800), + /// ] { + /// libraries.insert_unique(hasher(&k), (k, v), |(k, _)| hasher(&k)); + /// } + /// + /// let keys = ["Athenæum", "Library of Congress"]; + /// let got = libraries.get_many_mut(keys.map(|k| hasher(&k)), |i, val| keys[i] == val.0); + /// assert_eq!( + /// got, + /// Some([&mut ("Athenæum", 1807), &mut ("Library of Congress", 1800),]), + /// ); + /// + /// // Missing keys result in None + /// let keys = ["Athenæum", "New York Public Library"]; + /// let got = libraries.get_many_mut(keys.map(|k| hasher(&k)), |i, val| keys[i] == val.0); + /// assert_eq!(got, None); + /// + /// // Duplicate keys result in None + /// let keys = ["Athenæum", "Athenæum"]; + /// let got = libraries.get_many_mut(keys.map(|k| hasher(&k)), |i, val| keys[i] == val.0); + /// assert_eq!(got, None); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn get_many_mut( + &mut self, + hashes: [u64; N], + eq: impl FnMut(usize, &T) -> bool, + ) -> Option<[&'_ mut T; N]> { + self.raw.get_many_mut(hashes, eq) + } + + /// Attempts to get mutable references to `N` values in the map at once, without validating that + /// the values are unique. + /// + /// The `eq` argument should be a closure such that `eq(i, k)` returns true if `k` is equal to + /// the `i`th key to be looked up. + /// + /// Returns an array of length `N` with the results of each query. `None` will be returned if + /// any of the keys are missing. + /// + /// For a safe alternative see [`get_many_mut`](`HashTable::get_many_mut`). + /// + /// # Safety + /// + /// Calling this method with overlapping keys is *[undefined behavior]* even if the resulting + /// references are not used. + /// + /// [undefined behavior]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::hash_table::Entry; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut libraries: HashTable<(&str, u32)> = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// for (k, v) in [ + /// ("Bodleian Library", 1602), + /// ("Athenæum", 1807), + /// ("Herzogin-Anna-Amalia-Bibliothek", 1691), + /// ("Library of Congress", 1800), + /// ] { + /// libraries.insert_unique(hasher(&k), (k, v), |(k, _)| hasher(&k)); + /// } + /// + /// let keys = ["Athenæum", "Library of Congress"]; + /// let got = libraries.get_many_mut(keys.map(|k| hasher(&k)), |i, val| keys[i] == val.0); + /// assert_eq!( + /// got, + /// Some([&mut ("Athenæum", 1807), &mut ("Library of Congress", 1800),]), + /// ); + /// + /// // Missing keys result in None + /// let keys = ["Athenæum", "New York Public Library"]; + /// let got = libraries.get_many_mut(keys.map(|k| hasher(&k)), |i, val| keys[i] == val.0); + /// assert_eq!(got, None); + /// + /// // Duplicate keys result in None + /// let keys = ["Athenæum", "Athenæum"]; + /// let got = libraries.get_many_mut(keys.map(|k| hasher(&k)), |i, val| keys[i] == val.0); + /// assert_eq!(got, None); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub unsafe fn get_many_unchecked_mut( + &mut self, + hashes: [u64; N], + eq: impl FnMut(usize, &T) -> bool, + ) -> Option<[&'_ mut T; N]> { + self.raw.get_many_unchecked_mut(hashes, eq) + } +} + +impl IntoIterator for HashTable +where + A: Allocator, +{ + type Item = T; + type IntoIter = IntoIter; + + fn into_iter(self) -> IntoIter { + IntoIter { + inner: self.raw.into_iter(), + } + } +} + +impl<'a, T, A> IntoIterator for &'a HashTable +where + A: Allocator, +{ + type Item = &'a T; + type IntoIter = Iter<'a, T>; + + fn into_iter(self) -> Iter<'a, T> { + self.iter() + } +} + +impl<'a, T, A> IntoIterator for &'a mut HashTable +where + A: Allocator, +{ + type Item = &'a mut T; + type IntoIter = IterMut<'a, T>; + + fn into_iter(self) -> IterMut<'a, T> { + self.iter_mut() + } +} + +impl Default for HashTable +where + A: Allocator + Default, +{ + fn default() -> Self { + Self { + raw: Default::default(), + } + } +} + +impl Clone for HashTable +where + T: Clone, + A: Allocator + Clone, +{ + fn clone(&self) -> Self { + Self { + raw: self.raw.clone(), + } + } +} + +impl fmt::Debug for HashTable +where + T: fmt::Debug, + A: Allocator, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_set().entries(self.iter()).finish() + } +} + +/// A view into a single entry in a table, which may either be vacant or occupied. +/// +/// This `enum` is constructed from the [`entry`] method on [`HashTable`]. +/// +/// [`HashTable`]: struct.HashTable.html +/// [`entry`]: struct.HashTable.html#method.entry +/// +/// # Examples +/// +/// ``` +/// # #[cfg(feature = "nightly")] +/// # fn test() { +/// use ahash::AHasher; +/// use hashbrown::hash_table::{Entry, HashTable, OccupiedEntry}; +/// use std::hash::{BuildHasher, BuildHasherDefault}; +/// +/// let mut table = HashTable::new(); +/// let hasher = BuildHasherDefault::::default(); +/// let hasher = |val: &_| hasher.hash_one(val); +/// for x in ["a", "b", "c"] { +/// table.insert_unique(hasher(&x), x, hasher); +/// } +/// assert_eq!(table.len(), 3); +/// +/// // Existing value (insert) +/// let entry: Entry<_> = table.entry(hasher(&"a"), |&x| x == "a", hasher); +/// let _raw_o: OccupiedEntry<_, _> = entry.insert("a"); +/// assert_eq!(table.len(), 3); +/// // Nonexistent value (insert) +/// table.entry(hasher(&"d"), |&x| x == "d", hasher).insert("d"); +/// +/// // Existing value (or_insert) +/// table +/// .entry(hasher(&"b"), |&x| x == "b", hasher) +/// .or_insert("b"); +/// // Nonexistent value (or_insert) +/// table +/// .entry(hasher(&"e"), |&x| x == "e", hasher) +/// .or_insert("e"); +/// +/// println!("Our HashTable: {:?}", table); +/// +/// let mut vec: Vec<_> = table.iter().copied().collect(); +/// // The `Iter` iterator produces items in arbitrary order, so the +/// // items must be sorted to test them against a sorted array. +/// vec.sort_unstable(); +/// assert_eq!(vec, ["a", "b", "c", "d", "e"]); +/// # } +/// # fn main() { +/// # #[cfg(feature = "nightly")] +/// # test() +/// # } +/// ``` +pub enum Entry<'a, T, A = Global> +where + A: Allocator, +{ + /// An occupied entry. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::hash_table::{Entry, HashTable, OccupiedEntry}; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// for x in ["a", "b"] { + /// table.insert_unique(hasher(&x), x, hasher); + /// } + /// + /// match table.entry(hasher(&"a"), |&x| x == "a", hasher) { + /// Entry::Vacant(_) => unreachable!(), + /// Entry::Occupied(_) => {} + /// } + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + Occupied(OccupiedEntry<'a, T, A>), + + /// A vacant entry. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::hash_table::{Entry, HashTable, OccupiedEntry}; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table = HashTable::<&str>::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// + /// match table.entry(hasher(&"a"), |&x| x == "a", hasher) { + /// Entry::Vacant(_) => {} + /// Entry::Occupied(_) => unreachable!(), + /// } + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + Vacant(VacantEntry<'a, T, A>), +} + +impl fmt::Debug for Entry<'_, T, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match *self { + Entry::Vacant(ref v) => f.debug_tuple("Entry").field(v).finish(), + Entry::Occupied(ref o) => f.debug_tuple("Entry").field(o).finish(), + } + } +} + +impl<'a, T, A> Entry<'a, T, A> +where + A: Allocator, +{ + /// Sets the value of the entry, replacing any existing value if there is + /// one, and returns an [`OccupiedEntry`]. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table: HashTable<&str> = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// + /// let entry = table + /// .entry(hasher(&"horseyland"), |&x| x == "horseyland", hasher) + /// .insert("horseyland"); + /// + /// assert_eq!(entry.get(), &"horseyland"); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn insert(self, value: T) -> OccupiedEntry<'a, T, A> { + match self { + Entry::Occupied(mut entry) => { + *entry.get_mut() = value; + entry + } + Entry::Vacant(entry) => entry.insert(value), + } + } + + /// Ensures a value is in the entry by inserting if it was vacant. + /// + /// Returns an [`OccupiedEntry`] pointing to the now-occupied entry. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table: HashTable<&str> = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// + /// // nonexistent key + /// table + /// .entry(hasher(&"poneyland"), |&x| x == "poneyland", hasher) + /// .or_insert("poneyland"); + /// assert!(table + /// .find(hasher(&"poneyland"), |&x| x == "poneyland") + /// .is_some()); + /// + /// // existing key + /// table + /// .entry(hasher(&"poneyland"), |&x| x == "poneyland", hasher) + /// .or_insert("poneyland"); + /// assert!(table + /// .find(hasher(&"poneyland"), |&x| x == "poneyland") + /// .is_some()); + /// assert_eq!(table.len(), 1); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn or_insert(self, default: T) -> OccupiedEntry<'a, T, A> { + match self { + Entry::Occupied(entry) => entry, + Entry::Vacant(entry) => entry.insert(default), + } + } + + /// Ensures a value is in the entry by inserting the result of the default function if empty.. + /// + /// Returns an [`OccupiedEntry`] pointing to the now-occupied entry. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table: HashTable = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// + /// table + /// .entry(hasher("poneyland"), |x| x == "poneyland", |val| hasher(val)) + /// .or_insert_with(|| "poneyland".to_string()); + /// + /// assert!(table + /// .find(hasher(&"poneyland"), |x| x == "poneyland") + /// .is_some()); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn or_insert_with(self, default: impl FnOnce() -> T) -> OccupiedEntry<'a, T, A> { + match self { + Entry::Occupied(entry) => entry, + Entry::Vacant(entry) => entry.insert(default()), + } + } + + /// Provides in-place mutable access to an occupied entry before any + /// potential inserts into the table. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table: HashTable<(&str, u32)> = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// + /// table + /// .entry( + /// hasher(&"poneyland"), + /// |&(x, _)| x == "poneyland", + /// |(k, _)| hasher(&k), + /// ) + /// .and_modify(|(_, v)| *v += 1) + /// .or_insert(("poneyland", 42)); + /// assert_eq!( + /// table.find(hasher(&"poneyland"), |&(k, _)| k == "poneyland"), + /// Some(&("poneyland", 42)) + /// ); + /// + /// table + /// .entry( + /// hasher(&"poneyland"), + /// |&(x, _)| x == "poneyland", + /// |(k, _)| hasher(&k), + /// ) + /// .and_modify(|(_, v)| *v += 1) + /// .or_insert(("poneyland", 42)); + /// assert_eq!( + /// table.find(hasher(&"poneyland"), |&(k, _)| k == "poneyland"), + /// Some(&("poneyland", 43)) + /// ); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn and_modify(self, f: impl FnOnce(&mut T)) -> Self { + match self { + Entry::Occupied(mut entry) => { + f(entry.get_mut()); + Entry::Occupied(entry) + } + Entry::Vacant(entry) => Entry::Vacant(entry), + } + } +} + +/// A view into an occupied entry in a `HashTable`. +/// It is part of the [`Entry`] enum. +/// +/// [`Entry`]: enum.Entry.html +/// +/// # Examples +/// +/// ``` +/// # #[cfg(feature = "nightly")] +/// # fn test() { +/// use ahash::AHasher; +/// use hashbrown::hash_table::{Entry, HashTable, OccupiedEntry}; +/// use std::hash::{BuildHasher, BuildHasherDefault}; +/// +/// let mut table = HashTable::new(); +/// let hasher = BuildHasherDefault::::default(); +/// let hasher = |val: &_| hasher.hash_one(val); +/// for x in ["a", "b", "c"] { +/// table.insert_unique(hasher(&x), x, hasher); +/// } +/// assert_eq!(table.len(), 3); +/// +/// let _entry_o: OccupiedEntry<_, _> = table.find_entry(hasher(&"a"), |&x| x == "a").unwrap(); +/// assert_eq!(table.len(), 3); +/// +/// // Existing key +/// match table.entry(hasher(&"a"), |&x| x == "a", hasher) { +/// Entry::Vacant(_) => unreachable!(), +/// Entry::Occupied(view) => { +/// assert_eq!(view.get(), &"a"); +/// } +/// } +/// +/// assert_eq!(table.len(), 3); +/// +/// // Existing key (take) +/// match table.entry(hasher(&"c"), |&x| x == "c", hasher) { +/// Entry::Vacant(_) => unreachable!(), +/// Entry::Occupied(view) => { +/// assert_eq!(view.remove().0, "c"); +/// } +/// } +/// assert_eq!(table.find(hasher(&"c"), |&x| x == "c"), None); +/// assert_eq!(table.len(), 2); +/// # } +/// # fn main() { +/// # #[cfg(feature = "nightly")] +/// # test() +/// # } +/// ``` +pub struct OccupiedEntry<'a, T, A = Global> +where + A: Allocator, +{ + hash: u64, + bucket: Bucket, + table: &'a mut HashTable, +} + +unsafe impl Send for OccupiedEntry<'_, T, A> +where + T: Send, + A: Send + Allocator, +{ +} +unsafe impl Sync for OccupiedEntry<'_, T, A> +where + T: Sync, + A: Sync + Allocator, +{ +} + +impl fmt::Debug for OccupiedEntry<'_, T, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("OccupiedEntry") + .field("value", self.get()) + .finish() + } +} + +impl<'a, T, A> OccupiedEntry<'a, T, A> +where + A: Allocator, +{ + /// Takes the value out of the entry, and returns it along with a + /// `VacantEntry` that can be used to insert another value with the same + /// hash as the one that was just removed. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::hash_table::Entry; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table: HashTable<&str> = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// // The table is empty + /// assert!(table.is_empty() && table.capacity() == 0); + /// + /// table.insert_unique(hasher(&"poneyland"), "poneyland", hasher); + /// let capacity_before_remove = table.capacity(); + /// + /// if let Entry::Occupied(o) = table.entry(hasher(&"poneyland"), |&x| x == "poneyland", hasher) { + /// assert_eq!(o.remove().0, "poneyland"); + /// } + /// + /// assert!(table + /// .find(hasher(&"poneyland"), |&x| x == "poneyland") + /// .is_none()); + /// // Now table hold none elements but capacity is equal to the old one + /// assert!(table.len() == 0 && table.capacity() == capacity_before_remove); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + #[cfg_attr(feature = "inline-more", inline)] + pub fn remove(self) -> (T, VacantEntry<'a, T, A>) { + let (val, slot) = unsafe { self.table.raw.remove(self.bucket) }; + ( + val, + VacantEntry { + hash: self.hash, + insert_slot: slot, + table: self.table, + }, + ) + } + + /// Gets a reference to the value in the entry. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::hash_table::Entry; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table: HashTable<&str> = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// table.insert_unique(hasher(&"poneyland"), "poneyland", hasher); + /// + /// match table.entry(hasher(&"poneyland"), |&x| x == "poneyland", hasher) { + /// Entry::Vacant(_) => panic!(), + /// Entry::Occupied(entry) => assert_eq!(entry.get(), &"poneyland"), + /// } + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + #[inline] + pub fn get(&self) -> &T { + unsafe { self.bucket.as_ref() } + } + + /// Gets a mutable reference to the value in the entry. + /// + /// If you need a reference to the `OccupiedEntry` which may outlive the + /// destruction of the `Entry` value, see [`into_mut`]. + /// + /// [`into_mut`]: #method.into_mut + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::hash_table::Entry; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table: HashTable<(&str, u32)> = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// table.insert_unique(hasher(&"poneyland"), ("poneyland", 12), |(k, _)| hasher(&k)); + /// + /// assert_eq!( + /// table.find(hasher(&"poneyland"), |&(x, _)| x == "poneyland",), + /// Some(&("poneyland", 12)) + /// ); + /// + /// if let Entry::Occupied(mut o) = table.entry( + /// hasher(&"poneyland"), + /// |&(x, _)| x == "poneyland", + /// |(k, _)| hasher(&k), + /// ) { + /// o.get_mut().1 += 10; + /// assert_eq!(o.get().1, 22); + /// + /// // We can use the same Entry multiple times. + /// o.get_mut().1 += 2; + /// } + /// + /// assert_eq!( + /// table.find(hasher(&"poneyland"), |&(x, _)| x == "poneyland",), + /// Some(&("poneyland", 24)) + /// ); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + #[inline] + pub fn get_mut(&mut self) -> &mut T { + unsafe { self.bucket.as_mut() } + } + + /// Converts the OccupiedEntry into a mutable reference to the value in the entry + /// with a lifetime bound to the table itself. + /// + /// If you need multiple references to the `OccupiedEntry`, see [`get_mut`]. + /// + /// [`get_mut`]: #method.get_mut + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::hash_table::Entry; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table: HashTable<(&str, u32)> = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// table.insert_unique(hasher(&"poneyland"), ("poneyland", 12), |(k, _)| hasher(&k)); + /// + /// assert_eq!( + /// table.find(hasher(&"poneyland"), |&(x, _)| x == "poneyland",), + /// Some(&("poneyland", 12)) + /// ); + /// + /// let value: &mut (&str, u32); + /// match table.entry( + /// hasher(&"poneyland"), + /// |&(x, _)| x == "poneyland", + /// |(k, _)| hasher(&k), + /// ) { + /// Entry::Occupied(entry) => value = entry.into_mut(), + /// Entry::Vacant(_) => panic!(), + /// } + /// value.1 += 10; + /// + /// assert_eq!( + /// table.find(hasher(&"poneyland"), |&(x, _)| x == "poneyland",), + /// Some(&("poneyland", 22)) + /// ); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + pub fn into_mut(self) -> &'a mut T { + unsafe { self.bucket.as_mut() } + } + + /// Converts the OccupiedEntry into a mutable reference to the underlying + /// table. + pub fn into_table(self) -> &'a mut HashTable { + self.table + } +} + +/// A view into a vacant entry in a `HashTable`. +/// It is part of the [`Entry`] enum. +/// +/// [`Entry`]: enum.Entry.html +/// +/// # Examples +/// +/// ``` +/// # #[cfg(feature = "nightly")] +/// # fn test() { +/// use ahash::AHasher; +/// use hashbrown::hash_table::{Entry, HashTable, VacantEntry}; +/// use std::hash::{BuildHasher, BuildHasherDefault}; +/// +/// let mut table: HashTable<&str> = HashTable::new(); +/// let hasher = BuildHasherDefault::::default(); +/// let hasher = |val: &_| hasher.hash_one(val); +/// +/// let entry_v: VacantEntry<_, _> = match table.entry(hasher(&"a"), |&x| x == "a", hasher) { +/// Entry::Vacant(view) => view, +/// Entry::Occupied(_) => unreachable!(), +/// }; +/// entry_v.insert("a"); +/// assert!(table.find(hasher(&"a"), |&x| x == "a").is_some() && table.len() == 1); +/// +/// // Nonexistent key (insert) +/// match table.entry(hasher(&"b"), |&x| x == "b", hasher) { +/// Entry::Vacant(view) => { +/// view.insert("b"); +/// } +/// Entry::Occupied(_) => unreachable!(), +/// } +/// assert!(table.find(hasher(&"b"), |&x| x == "b").is_some() && table.len() == 2); +/// # } +/// # fn main() { +/// # #[cfg(feature = "nightly")] +/// # test() +/// # } +/// ``` +pub struct VacantEntry<'a, T, A = Global> +where + A: Allocator, +{ + hash: u64, + insert_slot: InsertSlot, + table: &'a mut HashTable, +} + +impl fmt::Debug for VacantEntry<'_, T, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.write_str("VacantEntry") + } +} + +impl<'a, T, A> VacantEntry<'a, T, A> +where + A: Allocator, +{ + /// Inserts a new element into the table with the hash that was used to + /// obtain the `VacantEntry`. + /// + /// An `OccupiedEntry` is returned for the newly inserted element. + /// + /// # Examples + /// + /// ``` + /// # #[cfg(feature = "nightly")] + /// # fn test() { + /// use ahash::AHasher; + /// use hashbrown::hash_table::Entry; + /// use hashbrown::HashTable; + /// use std::hash::{BuildHasher, BuildHasherDefault}; + /// + /// let mut table: HashTable<&str> = HashTable::new(); + /// let hasher = BuildHasherDefault::::default(); + /// let hasher = |val: &_| hasher.hash_one(val); + /// + /// if let Entry::Vacant(o) = table.entry(hasher(&"poneyland"), |&x| x == "poneyland", hasher) { + /// o.insert("poneyland"); + /// } + /// assert_eq!( + /// table.find(hasher(&"poneyland"), |&x| x == "poneyland"), + /// Some(&"poneyland") + /// ); + /// # } + /// # fn main() { + /// # #[cfg(feature = "nightly")] + /// # test() + /// # } + /// ``` + #[inline] + pub fn insert(self, value: T) -> OccupiedEntry<'a, T, A> { + let bucket = unsafe { + self.table + .raw + .insert_in_slot(self.hash, self.insert_slot, value) + }; + OccupiedEntry { + hash: self.hash, + bucket, + table: self.table, + } + } + + /// Converts the VacantEntry into a mutable reference to the underlying + /// table. + pub fn into_table(self) -> &'a mut HashTable { + self.table + } +} + +/// Type representing the absence of an entry, as returned by [`HashTable::find_entry`]. +/// +/// This type only exists due to [limitations] in Rust's NLL borrow checker. In +/// the future, `find_entry` will return an `Option` and this +/// type will be removed. +/// +/// [limitations]: https://smallcultfollowing.com/babysteps/blog/2018/06/15/mir-based-borrow-check-nll-status-update/#polonius +/// +/// # Examples +/// +/// ``` +/// # #[cfg(feature = "nightly")] +/// # fn test() { +/// use ahash::AHasher; +/// use hashbrown::hash_table::{AbsentEntry, Entry, HashTable}; +/// use std::hash::{BuildHasher, BuildHasherDefault}; +/// +/// let mut table: HashTable<&str> = HashTable::new(); +/// let hasher = BuildHasherDefault::::default(); +/// let hasher = |val: &_| hasher.hash_one(val); +/// +/// let entry_v: AbsentEntry<_, _> = table.find_entry(hasher(&"a"), |&x| x == "a").unwrap_err(); +/// entry_v +/// .into_table() +/// .insert_unique(hasher(&"a"), "a", hasher); +/// assert!(table.find(hasher(&"a"), |&x| x == "a").is_some() && table.len() == 1); +/// +/// // Nonexistent key (insert) +/// match table.entry(hasher(&"b"), |&x| x == "b", hasher) { +/// Entry::Vacant(view) => { +/// view.insert("b"); +/// } +/// Entry::Occupied(_) => unreachable!(), +/// } +/// assert!(table.find(hasher(&"b"), |&x| x == "b").is_some() && table.len() == 2); +/// # } +/// # fn main() { +/// # #[cfg(feature = "nightly")] +/// # test() +/// # } +/// ``` +pub struct AbsentEntry<'a, T, A = Global> +where + A: Allocator, +{ + table: &'a mut HashTable, +} + +impl fmt::Debug for AbsentEntry<'_, T, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.write_str("AbsentEntry") + } +} + +impl<'a, T, A> AbsentEntry<'a, T, A> +where + A: Allocator, +{ + /// Converts the AbsentEntry into a mutable reference to the underlying + /// table. + pub fn into_table(self) -> &'a mut HashTable { + self.table + } +} + +/// An iterator over the entries of a `HashTable` in arbitrary order. +/// The iterator element type is `&'a T`. +/// +/// This `struct` is created by the [`iter`] method on [`HashTable`]. See its +/// documentation for more. +/// +/// [`iter`]: struct.HashTable.html#method.iter +/// [`HashTable`]: struct.HashTable.html +pub struct Iter<'a, T> { + inner: RawIter, + marker: PhantomData<&'a T>, +} + +impl<'a, T> Iterator for Iter<'a, T> { + type Item = &'a T; + + fn next(&mut self) -> Option { + // Avoid `Option::map` because it bloats LLVM IR. + match self.inner.next() { + Some(bucket) => Some(unsafe { bucket.as_ref() }), + None => None, + } + } + + fn size_hint(&self) -> (usize, Option) { + self.inner.size_hint() + } + + fn fold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.inner + .fold(init, |acc, bucket| unsafe { f(acc, bucket.as_ref()) }) + } +} + +impl ExactSizeIterator for Iter<'_, T> { + fn len(&self) -> usize { + self.inner.len() + } +} + +impl FusedIterator for Iter<'_, T> {} + +/// A mutable iterator over the entries of a `HashTable` in arbitrary order. +/// The iterator element type is `&'a mut T`. +/// +/// This `struct` is created by the [`iter_mut`] method on [`HashTable`]. See its +/// documentation for more. +/// +/// [`iter_mut`]: struct.HashTable.html#method.iter_mut +/// [`HashTable`]: struct.HashTable.html +pub struct IterMut<'a, T> { + inner: RawIter, + marker: PhantomData<&'a mut T>, +} + +impl<'a, T> Iterator for IterMut<'a, T> { + type Item = &'a mut T; + + fn next(&mut self) -> Option { + // Avoid `Option::map` because it bloats LLVM IR. + match self.inner.next() { + Some(bucket) => Some(unsafe { bucket.as_mut() }), + None => None, + } + } + + fn size_hint(&self) -> (usize, Option) { + self.inner.size_hint() + } + + fn fold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.inner + .fold(init, |acc, bucket| unsafe { f(acc, bucket.as_mut()) }) + } +} + +impl ExactSizeIterator for IterMut<'_, T> { + fn len(&self) -> usize { + self.inner.len() + } +} + +impl FusedIterator for IterMut<'_, T> {} + +/// An owning iterator over the entries of a `HashTable` in arbitrary order. +/// The iterator element type is `T`. +/// +/// This `struct` is created by the [`into_iter`] method on [`HashTable`] +/// (provided by the [`IntoIterator`] trait). See its documentation for more. +/// The table cannot be used after calling that method. +/// +/// [`into_iter`]: struct.HashTable.html#method.into_iter +/// [`HashTable`]: struct.HashTable.html +/// [`IntoIterator`]: https://doc.rust-lang.org/core/iter/trait.IntoIterator.html +pub struct IntoIter +where + A: Allocator, +{ + inner: RawIntoIter, +} + +impl Iterator for IntoIter +where + A: Allocator, +{ + type Item = T; + + fn next(&mut self) -> Option { + self.inner.next() + } + + fn size_hint(&self) -> (usize, Option) { + self.inner.size_hint() + } + + fn fold(self, init: B, f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.inner.fold(init, f) + } +} + +impl ExactSizeIterator for IntoIter +where + A: Allocator, +{ + fn len(&self) -> usize { + self.inner.len() + } +} + +impl FusedIterator for IntoIter where A: Allocator {} + +/// A draining iterator over the items of a `HashTable`. +/// +/// This `struct` is created by the [`drain`] method on [`HashTable`]. +/// See its documentation for more. +/// +/// [`HashTable`]: struct.HashTable.html +/// [`drain`]: struct.HashTable.html#method.drain +pub struct Drain<'a, T, A: Allocator = Global> { + inner: RawDrain<'a, T, A>, +} + +impl Drain<'_, T, A> { + /// Returns a iterator of references over the remaining items. + fn iter(&self) -> Iter<'_, T> { + Iter { + inner: self.inner.iter(), + marker: PhantomData, + } + } +} + +impl Iterator for Drain<'_, T, A> { + type Item = T; + + fn next(&mut self) -> Option { + self.inner.next() + } + fn size_hint(&self) -> (usize, Option) { + self.inner.size_hint() + } +} +impl ExactSizeIterator for Drain<'_, T, A> { + fn len(&self) -> usize { + self.inner.len() + } +} +impl FusedIterator for Drain<'_, T, A> {} + +impl fmt::Debug for Drain<'_, T, A> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_list().entries(self.iter()).finish() + } +} + +/// A draining iterator over entries of a `HashTable` which don't satisfy the predicate `f`. +/// +/// This `struct` is created by [`HashTable::extract_if`]. See its +/// documentation for more. +#[must_use = "Iterators are lazy unless consumed"] +pub struct ExtractIf<'a, T, F, A: Allocator = Global> +where + F: FnMut(&mut T) -> bool, +{ + f: F, + inner: RawExtractIf<'a, T, A>, +} + +impl Iterator for ExtractIf<'_, T, F, A> +where + F: FnMut(&mut T) -> bool, +{ + type Item = T; + + #[inline] + fn next(&mut self) -> Option { + self.inner.next(|val| (self.f)(val)) + } + + #[inline] + fn size_hint(&self) -> (usize, Option) { + (0, self.inner.iter.size_hint().1) + } +} + +impl FusedIterator for ExtractIf<'_, T, F, A> where F: FnMut(&mut T) -> bool {} diff --git a/src/rust/vendor/hashbrown/tests/equivalent_trait.rs b/src/rust/vendor/hashbrown/tests/equivalent_trait.rs new file mode 100644 index 000000000..713dddd53 --- /dev/null +++ b/src/rust/vendor/hashbrown/tests/equivalent_trait.rs @@ -0,0 +1,53 @@ +use hashbrown::Equivalent; +use hashbrown::HashMap; + +use std::hash::Hash; + +#[derive(Debug, Hash)] +pub struct Pair(pub A, pub B); + +impl PartialEq<(A, B)> for Pair +where + C: PartialEq, + D: PartialEq, +{ + fn eq(&self, rhs: &(A, B)) -> bool { + self.0 == rhs.0 && self.1 == rhs.1 + } +} + +impl Equivalent for Pair +where + Pair: PartialEq, + A: Hash + Eq, + B: Hash + Eq, +{ + fn equivalent(&self, other: &X) -> bool { + *self == *other + } +} + +#[test] +fn test_lookup() { + let s = String::from; + let mut map = HashMap::new(); + map.insert((s("a"), s("b")), 1); + map.insert((s("a"), s("x")), 2); + + assert!(map.contains_key(&Pair("a", "b"))); + assert!(!map.contains_key(&Pair("b", "a"))); +} + +#[test] +fn test_string_str() { + let s = String::from; + let mut map = HashMap::new(); + map.insert(s("a"), 1); + map.insert(s("b"), 2); + map.insert(s("x"), 3); + map.insert(s("y"), 4); + + assert!(map.contains_key("a")); + assert!(!map.contains_key("z")); + assert_eq!(map.remove("b"), Some(2)); +} diff --git a/src/rust/vendor/hashbrown/tests/hasher.rs b/src/rust/vendor/hashbrown/tests/hasher.rs new file mode 100644 index 000000000..e455e3d3c --- /dev/null +++ b/src/rust/vendor/hashbrown/tests/hasher.rs @@ -0,0 +1,65 @@ +//! Sanity check that alternate hashers work correctly. + +#![cfg(not(miri))] // FIXME: takes too long + +use hashbrown::HashSet; +use std::hash::{BuildHasher, BuildHasherDefault, Hasher}; + +fn check() { + let range = 0..1_000; + + let mut set = HashSet::::default(); + set.extend(range.clone()); + + assert!(!set.contains(&i32::min_value())); + assert!(!set.contains(&(range.start - 1))); + for i in range.clone() { + assert!(set.contains(&i)); + } + assert!(!set.contains(&range.end)); + assert!(!set.contains(&i32::max_value())); +} + +/// Use hashbrown's default hasher. +#[test] +fn default() { + check::(); +} + +/// Use std's default hasher. +#[test] +fn random_state() { + check::(); +} + +/// Use a constant 0 hash. +#[test] +fn zero() { + #[derive(Default)] + struct ZeroHasher; + + impl Hasher for ZeroHasher { + fn finish(&self) -> u64 { + 0 + } + fn write(&mut self, _: &[u8]) {} + } + + check::>(); +} + +/// Use a constant maximum hash. +#[test] +fn max() { + #[derive(Default)] + struct MaxHasher; + + impl Hasher for MaxHasher { + fn finish(&self) -> u64 { + u64::max_value() + } + fn write(&mut self, _: &[u8]) {} + } + + check::>(); +} diff --git a/src/rust/vendor/hashbrown/tests/raw.rs b/src/rust/vendor/hashbrown/tests/raw.rs new file mode 100644 index 000000000..858836e63 --- /dev/null +++ b/src/rust/vendor/hashbrown/tests/raw.rs @@ -0,0 +1,11 @@ +#![cfg(feature = "raw")] + +use hashbrown::raw::RawTable; +use std::mem; + +#[test] +fn test_allocation_info() { + assert_eq!(RawTable::<()>::new().allocation_info().1.size(), 0); + assert_eq!(RawTable::::new().allocation_info().1.size(), 0); + assert!(RawTable::::with_capacity(1).allocation_info().1.size() > mem::size_of::()); +} diff --git a/src/rust/vendor/hashbrown/tests/rayon.rs b/src/rust/vendor/hashbrown/tests/rayon.rs new file mode 100644 index 000000000..d55e5a980 --- /dev/null +++ b/src/rust/vendor/hashbrown/tests/rayon.rs @@ -0,0 +1,535 @@ +#![cfg(feature = "rayon")] + +#[macro_use] +extern crate lazy_static; + +use hashbrown::{HashMap, HashSet}; +use rayon::iter::{ + IntoParallelIterator, IntoParallelRefIterator, IntoParallelRefMutIterator, ParallelExtend, + ParallelIterator, +}; + +macro_rules! assert_eq3 { + ($e1:expr, $e2:expr, $e3:expr) => {{ + assert_eq!($e1, $e2); + assert_eq!($e1, $e3); + assert_eq!($e2, $e3); + }}; +} + +lazy_static! { + static ref MAP_EMPTY: HashMap = HashMap::new(); + static ref MAP: HashMap = { + let mut m = HashMap::new(); + m.insert('b', 20); + m.insert('a', 10); + m.insert('c', 30); + m.insert('e', 50); + m.insert('f', 60); + m.insert('d', 40); + m + }; +} + +#[test] +fn map_seq_par_equivalence_iter_empty() { + let vec_seq = MAP_EMPTY.iter().collect::>(); + let vec_par = MAP_EMPTY.par_iter().collect::>(); + + assert_eq3!(vec_seq, vec_par, []); +} + +#[test] +fn map_seq_par_equivalence_iter() { + let mut vec_seq = MAP.iter().collect::>(); + let mut vec_par = MAP.par_iter().collect::>(); + + assert_eq!(vec_seq, vec_par); + + // Do not depend on the exact order of values + let expected_sorted = [ + (&'a', &10), + (&'b', &20), + (&'c', &30), + (&'d', &40), + (&'e', &50), + (&'f', &60), + ]; + + vec_seq.sort_unstable(); + vec_par.sort_unstable(); + + assert_eq3!(vec_seq, vec_par, expected_sorted); +} + +#[test] +fn map_seq_par_equivalence_keys_empty() { + let vec_seq = MAP_EMPTY.keys().collect::>(); + let vec_par = MAP_EMPTY.par_keys().collect::>(); + + let expected: [&char; 0] = []; + + assert_eq3!(vec_seq, vec_par, expected); +} + +#[test] +fn map_seq_par_equivalence_keys() { + let mut vec_seq = MAP.keys().collect::>(); + let mut vec_par = MAP.par_keys().collect::>(); + + assert_eq!(vec_seq, vec_par); + + // Do not depend on the exact order of values + let expected_sorted = [&'a', &'b', &'c', &'d', &'e', &'f']; + + vec_seq.sort_unstable(); + vec_par.sort_unstable(); + + assert_eq3!(vec_seq, vec_par, expected_sorted); +} + +#[test] +fn map_seq_par_equivalence_values_empty() { + let vec_seq = MAP_EMPTY.values().collect::>(); + let vec_par = MAP_EMPTY.par_values().collect::>(); + + let expected: [&u32; 0] = []; + + assert_eq3!(vec_seq, vec_par, expected); +} + +#[test] +fn map_seq_par_equivalence_values() { + let mut vec_seq = MAP.values().collect::>(); + let mut vec_par = MAP.par_values().collect::>(); + + assert_eq!(vec_seq, vec_par); + + // Do not depend on the exact order of values + let expected_sorted = [&10, &20, &30, &40, &50, &60]; + + vec_seq.sort_unstable(); + vec_par.sort_unstable(); + + assert_eq3!(vec_seq, vec_par, expected_sorted); +} + +#[test] +fn map_seq_par_equivalence_iter_mut_empty() { + let mut map1 = MAP_EMPTY.clone(); + let mut map2 = MAP_EMPTY.clone(); + + let vec_seq = map1.iter_mut().collect::>(); + let vec_par = map2.par_iter_mut().collect::>(); + + assert_eq3!(vec_seq, vec_par, []); +} + +#[test] +fn map_seq_par_equivalence_iter_mut() { + let mut map1 = MAP.clone(); + let mut map2 = MAP.clone(); + + let mut vec_seq = map1.iter_mut().collect::>(); + let mut vec_par = map2.par_iter_mut().collect::>(); + + assert_eq!(vec_seq, vec_par); + + // Do not depend on the exact order of values + let expected_sorted = [ + (&'a', &mut 10), + (&'b', &mut 20), + (&'c', &mut 30), + (&'d', &mut 40), + (&'e', &mut 50), + (&'f', &mut 60), + ]; + + vec_seq.sort_unstable(); + vec_par.sort_unstable(); + + assert_eq3!(vec_seq, vec_par, expected_sorted); +} + +#[test] +fn map_seq_par_equivalence_values_mut_empty() { + let mut map1 = MAP_EMPTY.clone(); + let mut map2 = MAP_EMPTY.clone(); + + let vec_seq = map1.values_mut().collect::>(); + let vec_par = map2.par_values_mut().collect::>(); + + let expected: [&u32; 0] = []; + + assert_eq3!(vec_seq, vec_par, expected); +} + +#[test] +fn map_seq_par_equivalence_values_mut() { + let mut map1 = MAP.clone(); + let mut map2 = MAP.clone(); + + let mut vec_seq = map1.values_mut().collect::>(); + let mut vec_par = map2.par_values_mut().collect::>(); + + assert_eq!(vec_seq, vec_par); + + // Do not depend on the exact order of values + let expected_sorted = [&mut 10, &mut 20, &mut 30, &mut 40, &mut 50, &mut 60]; + + vec_seq.sort_unstable(); + vec_par.sort_unstable(); + + assert_eq3!(vec_seq, vec_par, expected_sorted); +} + +#[test] +fn map_seq_par_equivalence_into_iter_empty() { + let vec_seq = MAP_EMPTY.clone().into_iter().collect::>(); + let vec_par = MAP_EMPTY.clone().into_par_iter().collect::>(); + + assert_eq3!(vec_seq, vec_par, []); +} + +#[test] +fn map_seq_par_equivalence_into_iter() { + let mut vec_seq = MAP.clone().into_iter().collect::>(); + let mut vec_par = MAP.clone().into_par_iter().collect::>(); + + assert_eq!(vec_seq, vec_par); + + // Do not depend on the exact order of values + let expected_sorted = [ + ('a', 10), + ('b', 20), + ('c', 30), + ('d', 40), + ('e', 50), + ('f', 60), + ]; + + vec_seq.sort_unstable(); + vec_par.sort_unstable(); + + assert_eq3!(vec_seq, vec_par, expected_sorted); +} + +lazy_static! { + static ref MAP_VEC_EMPTY: Vec<(char, u32)> = vec![]; + static ref MAP_VEC: Vec<(char, u32)> = vec![ + ('b', 20), + ('a', 10), + ('c', 30), + ('e', 50), + ('f', 60), + ('d', 40), + ]; +} + +#[test] +fn map_seq_par_equivalence_collect_empty() { + let map_expected = MAP_EMPTY.clone(); + let map_seq = MAP_VEC_EMPTY.clone().into_iter().collect::>(); + let map_par = MAP_VEC_EMPTY + .clone() + .into_par_iter() + .collect::>(); + + assert_eq!(map_seq, map_par); + assert_eq!(map_seq, map_expected); + assert_eq!(map_par, map_expected); +} + +#[test] +fn map_seq_par_equivalence_collect() { + let map_expected = MAP.clone(); + let map_seq = MAP_VEC.clone().into_iter().collect::>(); + let map_par = MAP_VEC.clone().into_par_iter().collect::>(); + + assert_eq!(map_seq, map_par); + assert_eq!(map_seq, map_expected); + assert_eq!(map_par, map_expected); +} + +lazy_static! { + static ref MAP_EXISTING_EMPTY: HashMap = HashMap::new(); + static ref MAP_EXISTING: HashMap = { + let mut m = HashMap::new(); + m.insert('b', 20); + m.insert('a', 10); + m + }; + static ref MAP_EXTENSION_EMPTY: Vec<(char, u32)> = vec![]; + static ref MAP_EXTENSION: Vec<(char, u32)> = vec![('c', 30), ('e', 50), ('f', 60), ('d', 40),]; +} + +#[test] +fn map_seq_par_equivalence_existing_empty_extend_empty() { + let expected = HashMap::new(); + let mut map_seq = MAP_EXISTING_EMPTY.clone(); + let mut map_par = MAP_EXISTING_EMPTY.clone(); + + map_seq.extend(MAP_EXTENSION_EMPTY.iter().copied()); + map_par.par_extend(MAP_EXTENSION_EMPTY.par_iter().copied()); + + assert_eq3!(map_seq, map_par, expected); +} + +#[test] +fn map_seq_par_equivalence_existing_empty_extend() { + let expected = MAP_EXTENSION.iter().copied().collect::>(); + let mut map_seq = MAP_EXISTING_EMPTY.clone(); + let mut map_par = MAP_EXISTING_EMPTY.clone(); + + map_seq.extend(MAP_EXTENSION.iter().copied()); + map_par.par_extend(MAP_EXTENSION.par_iter().copied()); + + assert_eq3!(map_seq, map_par, expected); +} + +#[test] +fn map_seq_par_equivalence_existing_extend_empty() { + let expected = MAP_EXISTING.clone(); + let mut map_seq = MAP_EXISTING.clone(); + let mut map_par = MAP_EXISTING.clone(); + + map_seq.extend(MAP_EXTENSION_EMPTY.iter().copied()); + map_par.par_extend(MAP_EXTENSION_EMPTY.par_iter().copied()); + + assert_eq3!(map_seq, map_par, expected); +} + +#[test] +fn map_seq_par_equivalence_existing_extend() { + let expected = MAP.clone(); + let mut map_seq = MAP_EXISTING.clone(); + let mut map_par = MAP_EXISTING.clone(); + + map_seq.extend(MAP_EXTENSION.iter().copied()); + map_par.par_extend(MAP_EXTENSION.par_iter().copied()); + + assert_eq3!(map_seq, map_par, expected); +} + +lazy_static! { + static ref SET_EMPTY: HashSet = HashSet::new(); + static ref SET: HashSet = { + let mut s = HashSet::new(); + s.insert('b'); + s.insert('a'); + s.insert('c'); + s.insert('e'); + s.insert('f'); + s.insert('d'); + s + }; +} + +#[test] +fn set_seq_par_equivalence_iter_empty() { + let vec_seq = SET_EMPTY.iter().collect::>(); + let vec_par = SET_EMPTY.par_iter().collect::>(); + + let expected: [&char; 0] = []; + + assert_eq3!(vec_seq, vec_par, expected); +} + +#[test] +fn set_seq_par_equivalence_iter() { + let mut vec_seq = SET.iter().collect::>(); + let mut vec_par = SET.par_iter().collect::>(); + + assert_eq!(vec_seq, vec_par); + + // Do not depend on the exact order of values + let expected_sorted = [&'a', &'b', &'c', &'d', &'e', &'f']; + + vec_seq.sort_unstable(); + vec_par.sort_unstable(); + + assert_eq3!(vec_seq, vec_par, expected_sorted); +} + +#[test] +fn set_seq_par_equivalence_into_iter_empty() { + let vec_seq = SET_EMPTY.clone().into_iter().collect::>(); + let vec_par = SET_EMPTY.clone().into_par_iter().collect::>(); + + // Work around type inference failure introduced by rend dev-dependency. + let empty: [char; 0] = []; + assert_eq3!(vec_seq, vec_par, empty); +} + +#[test] +fn set_seq_par_equivalence_into_iter() { + let mut vec_seq = SET.clone().into_iter().collect::>(); + let mut vec_par = SET.clone().into_par_iter().collect::>(); + + assert_eq!(vec_seq, vec_par); + + // Do not depend on the exact order of values + let expected_sorted = ['a', 'b', 'c', 'd', 'e', 'f']; + + vec_seq.sort_unstable(); + vec_par.sort_unstable(); + + assert_eq3!(vec_seq, vec_par, expected_sorted); +} + +lazy_static! { + static ref SET_VEC_EMPTY: Vec = vec![]; + static ref SET_VEC: Vec = vec!['b', 'a', 'c', 'e', 'f', 'd',]; +} + +#[test] +fn set_seq_par_equivalence_collect_empty() { + let set_expected = SET_EMPTY.clone(); + let set_seq = SET_VEC_EMPTY.clone().into_iter().collect::>(); + let set_par = SET_VEC_EMPTY + .clone() + .into_par_iter() + .collect::>(); + + assert_eq!(set_seq, set_par); + assert_eq!(set_seq, set_expected); + assert_eq!(set_par, set_expected); +} + +#[test] +fn set_seq_par_equivalence_collect() { + let set_expected = SET.clone(); + let set_seq = SET_VEC.clone().into_iter().collect::>(); + let set_par = SET_VEC.clone().into_par_iter().collect::>(); + + assert_eq!(set_seq, set_par); + assert_eq!(set_seq, set_expected); + assert_eq!(set_par, set_expected); +} + +lazy_static! { + static ref SET_EXISTING_EMPTY: HashSet = HashSet::new(); + static ref SET_EXISTING: HashSet = { + let mut s = HashSet::new(); + s.insert('b'); + s.insert('a'); + s + }; + static ref SET_EXTENSION_EMPTY: Vec = vec![]; + static ref SET_EXTENSION: Vec = vec!['c', 'e', 'f', 'd',]; +} + +#[test] +fn set_seq_par_equivalence_existing_empty_extend_empty() { + let expected = HashSet::new(); + let mut set_seq = SET_EXISTING_EMPTY.clone(); + let mut set_par = SET_EXISTING_EMPTY.clone(); + + set_seq.extend(SET_EXTENSION_EMPTY.iter().copied()); + set_par.par_extend(SET_EXTENSION_EMPTY.par_iter().copied()); + + assert_eq3!(set_seq, set_par, expected); +} + +#[test] +fn set_seq_par_equivalence_existing_empty_extend() { + let expected = SET_EXTENSION.iter().copied().collect::>(); + let mut set_seq = SET_EXISTING_EMPTY.clone(); + let mut set_par = SET_EXISTING_EMPTY.clone(); + + set_seq.extend(SET_EXTENSION.iter().copied()); + set_par.par_extend(SET_EXTENSION.par_iter().copied()); + + assert_eq3!(set_seq, set_par, expected); +} + +#[test] +fn set_seq_par_equivalence_existing_extend_empty() { + let expected = SET_EXISTING.clone(); + let mut set_seq = SET_EXISTING.clone(); + let mut set_par = SET_EXISTING.clone(); + + set_seq.extend(SET_EXTENSION_EMPTY.iter().copied()); + set_par.par_extend(SET_EXTENSION_EMPTY.par_iter().copied()); + + assert_eq3!(set_seq, set_par, expected); +} + +#[test] +fn set_seq_par_equivalence_existing_extend() { + let expected = SET.clone(); + let mut set_seq = SET_EXISTING.clone(); + let mut set_par = SET_EXISTING.clone(); + + set_seq.extend(SET_EXTENSION.iter().copied()); + set_par.par_extend(SET_EXTENSION.par_iter().copied()); + + assert_eq3!(set_seq, set_par, expected); +} + +lazy_static! { + static ref SET_A: HashSet = ['a', 'b', 'c', 'd'].iter().copied().collect(); + static ref SET_B: HashSet = ['a', 'b', 'e', 'f'].iter().copied().collect(); + static ref SET_DIFF_AB: HashSet = ['c', 'd'].iter().copied().collect(); + static ref SET_DIFF_BA: HashSet = ['e', 'f'].iter().copied().collect(); + static ref SET_SYMM_DIFF_AB: HashSet = ['c', 'd', 'e', 'f'].iter().copied().collect(); + static ref SET_INTERSECTION_AB: HashSet = ['a', 'b'].iter().copied().collect(); + static ref SET_UNION_AB: HashSet = + ['a', 'b', 'c', 'd', 'e', 'f'].iter().copied().collect(); +} + +#[test] +fn set_seq_par_equivalence_difference() { + let diff_ab_seq = SET_A.difference(&*SET_B).copied().collect::>(); + let diff_ab_par = SET_A + .par_difference(&*SET_B) + .copied() + .collect::>(); + + assert_eq3!(diff_ab_seq, diff_ab_par, *SET_DIFF_AB); + + let diff_ba_seq = SET_B.difference(&*SET_A).copied().collect::>(); + let diff_ba_par = SET_B + .par_difference(&*SET_A) + .copied() + .collect::>(); + + assert_eq3!(diff_ba_seq, diff_ba_par, *SET_DIFF_BA); +} + +#[test] +fn set_seq_par_equivalence_symmetric_difference() { + let symm_diff_ab_seq = SET_A + .symmetric_difference(&*SET_B) + .copied() + .collect::>(); + let symm_diff_ab_par = SET_A + .par_symmetric_difference(&*SET_B) + .copied() + .collect::>(); + + assert_eq3!(symm_diff_ab_seq, symm_diff_ab_par, *SET_SYMM_DIFF_AB); +} + +#[test] +fn set_seq_par_equivalence_intersection() { + let intersection_ab_seq = SET_A.intersection(&*SET_B).copied().collect::>(); + let intersection_ab_par = SET_A + .par_intersection(&*SET_B) + .copied() + .collect::>(); + + assert_eq3!( + intersection_ab_seq, + intersection_ab_par, + *SET_INTERSECTION_AB + ); +} + +#[test] +fn set_seq_par_equivalence_union() { + let union_ab_seq = SET_A.union(&*SET_B).copied().collect::>(); + let union_ab_par = SET_A.par_union(&*SET_B).copied().collect::>(); + + assert_eq3!(union_ab_seq, union_ab_par, *SET_UNION_AB); +} diff --git a/src/rust/vendor/hashbrown/tests/serde.rs b/src/rust/vendor/hashbrown/tests/serde.rs new file mode 100644 index 000000000..a642348b3 --- /dev/null +++ b/src/rust/vendor/hashbrown/tests/serde.rs @@ -0,0 +1,65 @@ +#![cfg(feature = "serde")] + +use core::hash::BuildHasherDefault; +use fnv::FnvHasher; +use hashbrown::{HashMap, HashSet}; +use serde_test::{assert_tokens, Token}; + +// We use FnvHash for this test because we rely on the ordering +type FnvHashMap = HashMap>; +type FnvHashSet = HashSet>; + +#[test] +fn map_serde_tokens_empty() { + let map = FnvHashMap::::default(); + + assert_tokens(&map, &[Token::Map { len: Some(0) }, Token::MapEnd]); +} + +#[test] +fn map_serde_tokens() { + let mut map = FnvHashMap::default(); + map.insert('b', 20); + map.insert('a', 10); + map.insert('c', 30); + + assert_tokens( + &map, + &[ + Token::Map { len: Some(3) }, + Token::Char('a'), + Token::I32(10), + Token::Char('c'), + Token::I32(30), + Token::Char('b'), + Token::I32(20), + Token::MapEnd, + ], + ); +} + +#[test] +fn set_serde_tokens_empty() { + let set = FnvHashSet::::default(); + + assert_tokens(&set, &[Token::Seq { len: Some(0) }, Token::SeqEnd]); +} + +#[test] +fn set_serde_tokens() { + let mut set = FnvHashSet::default(); + set.insert(20); + set.insert(10); + set.insert(30); + + assert_tokens( + &set, + &[ + Token::Seq { len: Some(3) }, + Token::I32(30), + Token::I32(20), + Token::I32(10), + Token::SeqEnd, + ], + ); +} diff --git a/src/rust/vendor/hashbrown/tests/set.rs b/src/rust/vendor/hashbrown/tests/set.rs new file mode 100644 index 000000000..86ec96476 --- /dev/null +++ b/src/rust/vendor/hashbrown/tests/set.rs @@ -0,0 +1,34 @@ +#![cfg(not(miri))] // FIXME: takes too long + +use hashbrown::HashSet; +use rand::{distributions::Alphanumeric, rngs::SmallRng, Rng, SeedableRng}; +use std::iter; + +#[test] +fn test_hashset_insert_remove() { + let mut m: HashSet> = HashSet::new(); + let seed = u64::from_le_bytes(*b"testseed"); + + let rng = &mut SmallRng::seed_from_u64(seed); + let tx: Vec> = iter::repeat_with(|| { + rng.sample_iter(&Alphanumeric) + .take(32) + .map(char::from) + .collect() + }) + .take(4096) + .collect(); + + // more readable with explicit `true` / `false` + #[allow(clippy::bool_assert_comparison)] + for _ in 0..32 { + for x in &tx { + assert_eq!(m.contains(x), false); + assert_eq!(m.insert(x.clone()), true); + } + for (i, x) in tx.iter().enumerate() { + println!("removing {i} {x:?}"); + assert_eq!(m.remove(x), true); + } + } +} diff --git a/src/rust/vendor/hermit-abi/.cargo-checksum.json b/src/rust/vendor/hermit-abi/.cargo-checksum.json new file mode 100644 index 000000000..041dfbbab --- /dev/null +++ b/src/rust/vendor/hermit-abi/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"90ec4c22a33b055f2547db7cd4900ff65a687d3f03e79468c2b6ea1c9a0bc30f","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"c370484c6aad4d751c771cba9fb7ccce6497df43b50487f62e5f4feaff1b0b5d","src/errno.rs":"ce40c437ec4f02d82db6dfe4d384fa3743df3ee7892551f305825626cc8c0275","src/lib.rs":"1d7ad5e29655c7c4e8240a20fc66a6dbff7d1c060f3a36024795ca768dbb9abe","src/tcplistener.rs":"1fb1c0c232d4f24afb6cff63a7541d00029b7159da8d25b2eb257dff078940a0","src/tcpstream.rs":"fce8a598c6331b82e40982eda079d758be324b8941bf76f1031cea8d01632823"},"package":"d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"} \ No newline at end of file diff --git a/src/rust/vendor/hermit-abi/Cargo.toml b/src/rust/vendor/hermit-abi/Cargo.toml new file mode 100644 index 000000000..a159e5948 --- /dev/null +++ b/src/rust/vendor/hermit-abi/Cargo.toml @@ -0,0 +1,47 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +name = "hermit-abi" +version = "0.3.9" +authors = ["Stefan Lankes"] +description = "Hermit system calls definitions." +readme = "README.md" +keywords = [ + "unikernel", + "libos", +] +categories = ["os"] +license = "MIT OR Apache-2.0" +repository = "https://github.com/hermit-os/hermit-rs" + +[dependencies.alloc] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-alloc" + +[dependencies.compiler_builtins] +version = "0.1" +optional = true + +[dependencies.core] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-core" + +[features] +default = [] +rustc-dep-of-std = [ + "core", + "alloc", + "compiler_builtins/rustc-dep-of-std", +] diff --git a/src/rust/vendor/hermit-abi/LICENSE-APACHE b/src/rust/vendor/hermit-abi/LICENSE-APACHE new file mode 100644 index 000000000..16fe87b06 --- /dev/null +++ b/src/rust/vendor/hermit-abi/LICENSE-APACHE @@ -0,0 +1,201 @@ + 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. diff --git a/src/rust/vendor/hermit-abi/LICENSE-MIT b/src/rust/vendor/hermit-abi/LICENSE-MIT new file mode 100644 index 000000000..31aa79387 --- /dev/null +++ b/src/rust/vendor/hermit-abi/LICENSE-MIT @@ -0,0 +1,23 @@ +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. diff --git a/src/rust/vendor/hermit-abi/README.md b/src/rust/vendor/hermit-abi/README.md new file mode 100644 index 000000000..ba279a518 --- /dev/null +++ b/src/rust/vendor/hermit-abi/README.md @@ -0,0 +1,22 @@ +# hermit-abi + +[![Crates.io](https://img.shields.io/crates/v/hermit-abi.svg)](https://crates.io/crates/hermit-abi) +[![Documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://docs.rs/hermit-abi/latest/hermit_abi/) +[![License](https://img.shields.io/crates/l/hermit-abi.svg)](https://img.shields.io/crates/l/hermit-abi.svg) + +This is small interface to call functions from the [Hermit kernel](https://github.com/hermit-os/kernel). + +Please read the README of the [Hermit kernel](https://github.com/hermit-os/kernel) for more information. + +## License + +Licensed under either of + +* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) +* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) + +at your option. + +## Contribution + +Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. diff --git a/src/rust/vendor/hermit-abi/src/errno.rs b/src/rust/vendor/hermit-abi/src/errno.rs new file mode 100644 index 000000000..1c4a320af --- /dev/null +++ b/src/rust/vendor/hermit-abi/src/errno.rs @@ -0,0 +1,532 @@ +/// Operation not permitted +pub const EPERM: i32 = 1; + +/// No such file or directory +pub const ENOENT: i32 = 2; + +/// No such process +pub const ESRCH: i32 = 3; + +/// Interrupted system call +pub const EINTR: i32 = 4; + +/// I/O error +pub const EIO: i32 = 5; + +/// No such device or address +pub const ENXIO: i32 = 6; + +/// Argument list too long +pub const E2BIG: i32 = 7; + +/// Exec format error +pub const ENOEXEC: i32 = 8; + +/// Bad file number +pub const EBADF: i32 = 9; + +/// No child processes +pub const ECHILD: i32 = 10; + +/// Try again +pub const EAGAIN: i32 = 11; + +/// Out of memory +pub const ENOMEM: i32 = 12; + +/// Permission denied +pub const EACCES: i32 = 13; + +/// Bad address +pub const EFAULT: i32 = 14; + +/// Block device required +pub const ENOTBLK: i32 = 15; + +/// Device or resource busy +pub const EBUSY: i32 = 16; + +/// File exists +pub const EEXIST: i32 = 17; + +/// Cross-device link +pub const EXDEV: i32 = 18; + +/// No such device +pub const ENODEV: i32 = 19; + +/// Not a directory +pub const ENOTDIR: i32 = 20; + +/// Is a directory +pub const EISDIR: i32 = 21; + +/// Invalid argument +pub const EINVAL: i32 = 22; + +/// File table overflow +pub const ENFILE: i32 = 23; + +/// Too many open files +pub const EMFILE: i32 = 24; + +/// Not a typewriter +pub const ENOTTY: i32 = 25; + +/// Text file busy +pub const ETXTBSY: i32 = 26; + +/// File too large +pub const EFBIG: i32 = 27; + +/// No space left on device +pub const ENOSPC: i32 = 28; + +/// Illegal seek +pub const ESPIPE: i32 = 29; + +/// Read-only file system +pub const EROFS: i32 = 30; + +/// Too many links +pub const EMLINK: i32 = 31; + +/// Broken pipe +pub const EPIPE: i32 = 32; + +/// Math argument out of domain of func +pub const EDOM: i32 = 33; + +/// Math result not representable +pub const ERANGE: i32 = 34; + +/// Resource deadlock would occur +pub const EDEADLK: i32 = 35; + +/// File name too long +pub const ENAMETOOLONG: i32 = 36; + +/// No record locks available +pub const ENOLCK: i32 = 37; + +/// Function not implemented +pub const ENOSYS: i32 = 38; + +/// Directory not empty +pub const ENOTEMPTY: i32 = 39; + +/// Too many symbolic links encountered +pub const ELOOP: i32 = 40; + +/// Operation would block +pub const EWOULDBLOCK: i32 = EAGAIN; + +/// No message of desired type +pub const ENOMSG: i32 = 42; + +/// Identifier removed +pub const EIDRM: i32 = 43; + +/// Channel number out of range +pub const ECHRNG: i32 = 44; + +/// Level 2 not synchronized +pub const EL2NSYNC: i32 = 45; + +/// Level 3 halted +pub const EL3HLT: i32 = 46; + +/// Level 3 reset +pub const EL3RST: i32 = 47; + +/// Link number out of range +pub const ELNRNG: i32 = 48; + +/// Protocol driver not attached +pub const EUNATCH: i32 = 49; + +/// No CSI structure available +pub const ENOCSI: i32 = 50; + +/// Level 2 halted +pub const EL2HLT: i32 = 51; + +/// Invalid exchange +pub const EBADE: i32 = 52; + +/// Invalid request descriptor +pub const EBADR: i32 = 53; + +/// Exchange full +pub const EXFULL: i32 = 54; + +/// No anode +pub const ENOANO: i32 = 55; + +/// Invalid request code +pub const EBADRQC: i32 = 56; + +/// Invalid slot +pub const EBADSLT: i32 = 57; + +pub const EDEADLOCK: i32 = EDEADLK; + +/// Bad font file format +pub const EBFONT: i32 = 59; + +/// Device not a stream +pub const ENOSTR: i32 = 60; + +/// No data available +pub const ENODATA: i32 = 61; + +/// Timer expired +pub const ETIME: i32 = 62; + +/// Out of streams resources +pub const ENOSR: i32 = 63; + +/// Machine is not on the network +pub const ENONET: i32 = 64; + +/// Package not installed +pub const ENOPKG: i32 = 65; + +/// Object is remote +pub const EREMOTE: i32 = 66; + +/// Link has been severed +pub const ENOLINK: i32 = 67; + +/// Advertise error +pub const EADV: i32 = 68; + +/// Srmount error +pub const ESRMNT: i32 = 69; + +/// Communication error on send +pub const ECOMM: i32 = 70; + +/// Protocol error +pub const EPROTO: i32 = 71; + +/// Multihop attempted +pub const EMULTIHOP: i32 = 72; + +/// RFS specific error +pub const EDOTDOT: i32 = 73; + +/// Not a data message +pub const EBADMSG: i32 = 74; + +/// Value too large for defined data type +pub const EOVERFLOW: i32 = 75; + +/// Name not unique on network +pub const ENOTUNIQ: i32 = 76; + +/// File descriptor in bad state +pub const EBADFD: i32 = 77; + +/// Remote address changed +pub const EREMCHG: i32 = 78; + +/// Can not access a needed shared library +pub const ELIBACC: i32 = 79; + +/// Accessing a corrupted shared library +pub const ELIBBAD: i32 = 80; + +/// .lib section in a.out corrupted +pub const ELIBSCN: i32 = 81; + +/// Attempting to link in too many shared libraries +pub const ELIBMAX: i32 = 82; + +/// Cannot exec a shared library directly +pub const ELIBEXEC: i32 = 83; + +/// Illegal byte sequence +pub const EILSEQ: i32 = 84; + +/// Interrupted system call should be restarted +pub const ERESTART: i32 = 85; + +/// Streams pipe error +pub const ESTRPIPE: i32 = 86; + +/// Too many users +pub const EUSERS: i32 = 87; + +/// Socket operation on non-socket +pub const ENOTSOCK: i32 = 88; + +/// Destination address required +pub const EDESTADDRREQ: i32 = 89; + +/// Message too long +pub const EMSGSIZE: i32 = 90; + +/// Protocol wrong type for socket +pub const EPROTOTYPE: i32 = 91; + +/// Protocol not available +pub const ENOPROTOOPT: i32 = 92; + +/// Protocol not supported +pub const EPROTONOSUPPORT: i32 = 93; + +/// Socket type not supported +pub const ESOCKTNOSUPPORT: i32 = 94; + +/// Operation not supported on transport endpoint +pub const EOPNOTSUPP: i32 = 95; + +/// Protocol family not supported +pub const EPFNOSUPPORT: i32 = 96; + +/// Address family not supported by protocol +pub const EAFNOSUPPORT: i32 = 97; + +/// Address already in use +pub const EADDRINUSE: i32 = 98; + +/// Cannot assign requested address +pub const EADDRNOTAVAIL: i32 = 99; + +/// Network is down +pub const ENETDOWN: i32 = 100; + +/// Network is unreachable +pub const ENETUNREACH: i32 = 101; + +/// Network dropped connection because of reset +pub const ENETRESET: i32 = 102; + +/// Software caused connection abort +pub const ECONNABORTED: i32 = 103; + +/// Connection reset by peer +pub const ECONNRESET: i32 = 104; + +/// No buffer space available +pub const ENOBUFS: i32 = 105; + +/// Transport endpoint is already connected +pub const EISCONN: i32 = 106; + +/// Transport endpoint is not connected +pub const ENOTCONN: i32 = 107; + +/// Cannot send after transport endpoint shutdown +pub const ESHUTDOWN: i32 = 108; + +/// Too many references: cannot splice +pub const ETOOMANYREFS: i32 = 109; + +/// Connection timed out +pub const ETIMEDOUT: i32 = 110; + +/// Connection refused +pub const ECONNREFUSED: i32 = 111; + +/// Host is down +pub const EHOSTDOWN: i32 = 112; + +/// No route to host +pub const EHOSTUNREACH: i32 = 113; + +/// Operation already in progress +pub const EALREADY: i32 = 114; + +/// Operation now in progress +pub const EINPROGRESS: i32 = 115; + +/// Stale file handle +pub const ESTALE: i32 = 116; + +/// Structure needs cleaning +pub const EUCLEAN: i32 = 117; + +/// Not a XENIX named type file +pub const ENOTNAM: i32 = 118; + +/// No XENIX semaphores available +pub const ENAVAIL: i32 = 119; + +/// Is a named type file +pub const EISNAM: i32 = 120; + +/// Remote I/O error +pub const EREMOTEIO: i32 = 121; + +/// Quota exceeded +pub const EDQUOT: i32 = 122; + +/// No medium found +pub const ENOMEDIUM: i32 = 123; + +/// Wrong medium type +pub const EMEDIUMTYPE: i32 = 124; + +/// Operation Canceled +pub const ECANCELED: i32 = 125; + +/// Required key not available +pub const ENOKEY: i32 = 126; + +/// Key has expired +pub const EKEYEXPIRED: i32 = 127; + +/// Key has been revoked +pub const EKEYREVOKED: i32 = 128; + +/// Key was rejected by service +pub const EKEYREJECTED: i32 = 129; + +/// Robust mutexes: Owner died +pub const EOWNERDEAD: i32 = 130; + +/// Robust mutexes: State not recoverable +pub const ENOTRECOVERABLE: i32 = 131; + +/// Robust mutexes: Operation not possible due to RF-kill +pub const ERFKILL: i32 = 132; + +/// Robust mutexes: Memory page has hardware error +pub const EHWPOISON: i32 = 133; + +/// Converts an error number to a corresponding error string +pub fn error_string(errno: i32) -> &'static str { + match errno { + 0 => "Operation successful", + EPERM => "Operation not permitted", + ENOENT => "No such file or directory", + ESRCH => "No such process", + EINTR => "Interrupted system call", + EIO => "I/O error", + ENXIO => "No such device or address", + E2BIG => "Argument list too long", + ENOEXEC => "Exec format error", + EBADF => "Bad file number", + ECHILD => "No child processes", + EAGAIN => "Try again", + ENOMEM => "Out of memory", + EACCES => "Permission denied", + EFAULT => "Bad address", + ENOTBLK => "Block device required", + EBUSY => "Device or resource busy", + EEXIST => "File exists", + EXDEV => "Cross-device link", + ENODEV => "No such device", + ENOTDIR => "Not a directory", + EISDIR => "Is a directory", + EINVAL => "Invalid argument", + ENFILE => "File table overflow", + EMFILE => "Too many open files", + ENOTTY => "Not a typewriter", + ETXTBSY => "Text file busy", + EFBIG => "File too large", + ENOSPC => "No space left on device", + ESPIPE => "Illegal seek", + EROFS => "Read-only file system", + EMLINK => "Too many links", + EPIPE => "Broken pipe", + EDOM => "Math argument out of domain of func", + ERANGE => "Math result not representable", + EDEADLK => "Resource deadlock would occur", + ENAMETOOLONG => "File name too long", + ENOLCK => "No record locks available", + ENOSYS => "Function not implemented", + ENOTEMPTY => "Directory not empty", + ELOOP => "Too many symbolic links encountered", + ENOMSG => "No message of desired type", + EIDRM => "Identifier removed", + ECHRNG => "Channel number out of range", + EL2NSYNC => "Level 2 not synchronized", + EL3HLT => "Level 3 halted", + EL3RST => "Level 3 reset", + ELNRNG => "Link number out of range", + EUNATCH => "Protocol driver not attached", + ENOCSI => "No CSI structure available", + EL2HLT => "Level 2 halted", + EBADE => "Invalid exchange", + EBADR => "Invalid request descriptor", + EXFULL => "Exchange full", + ENOANO => "No anode", + EBADRQC => "Invalid request code", + EBADSLT => "Invalid slot", + EBFONT => "Bad font file format", + ENOSTR => "Device not a stream", + ENODATA => "No data available", + ETIME => "Timer expired", + ENOSR => "Out of streams resources", + ENONET => "Machine is not on the network", + ENOPKG => "Package not installed", + EREMOTE => "Object is remote", + ENOLINK => "Link has been severed", + EADV => "Advertise error", + ESRMNT => "Srmount error", + ECOMM => "Communication error on send", + EPROTO => "Protocol error", + EMULTIHOP => "Multihop attempted", + EDOTDOT => "RFS specific error", + EBADMSG => "Not a data message", + EOVERFLOW => "Value too large for defined data type", + ENOTUNIQ => "Name not unique on network", + EBADFD => "File descriptor in bad state", + EREMCHG => "Remote address changed", + ELIBACC => "Can not access a needed shared library", + ELIBBAD => "Accessing a corrupted shared library", + ELIBSCN => "Lib section in a.out corrupted", + ELIBMAX => "Attempting to link in too many shared libraries", + ELIBEXEC => "Cannot exec a shared library directly", + EILSEQ => "Illegal byte sequence", + ERESTART => "Interrupted system call should be restarted", + ESTRPIPE => "Streams pipe error", + EUSERS => "Too many users", + ENOTSOCK => "Socket operation on non-socket", + EDESTADDRREQ => "Destination address required", + EMSGSIZE => "Message too long", + EPROTOTYPE => "Protocol wrong type for socket", + ENOPROTOOPT => "Protocol not available", + EPROTONOSUPPORT => "Protocol not supported", + ESOCKTNOSUPPORT => "Socket type not supported", + EOPNOTSUPP => "Operation not supported on transport endpoint", + EPFNOSUPPORT => "Protocol family not supported", + EAFNOSUPPORT => "Address family not supported by protocol", + EADDRINUSE => "Address already in use", + EADDRNOTAVAIL => "Cannot assign requested address", + ENETDOWN => "Network is down", + ENETUNREACH => "Network is unreachable", + ENETRESET => "Network dropped connection because of reset", + ECONNABORTED => "Software caused connection abort", + ECONNRESET => "Connection reset by peer", + ENOBUFS => "No buffer space available", + EISCONN => "Transport endpoint is already connected", + ENOTCONN => "Transport endpoint is not connected", + ESHUTDOWN => "Cannot send after transport endpoint shutdown", + ETOOMANYREFS => "Too many references: cannot splice", + ETIMEDOUT => "Connection timed out", + ECONNREFUSED => "Connection refused", + EHOSTDOWN => "Host is down", + EHOSTUNREACH => "No route to host", + EALREADY => "Operation already in progress", + EINPROGRESS => "Operation now in progress", + ESTALE => "Stale file handle", + EUCLEAN => "Structure needs cleaning", + EDQUOT => "Quota exceeded", + ENOMEDIUM => "No medium found", + EMEDIUMTYPE => "Wrong medium type", + ECANCELED => "Operation Canceled", + ENOKEY => "Required key not available", + EKEYEXPIRED => "Key has expired", + EKEYREVOKED => "Key has been revoked", + EKEYREJECTED => "Key was rejected by service", + EOWNERDEAD => "Robust mutexes: Owner died", + ENOTRECOVERABLE => "Robust mutexes: State not recoverable", + ERFKILL => "Robust mutexes: Operation not possible due to RF-kill", + EHWPOISON => "Robust mutexes: Memory page has hardware error", + _ => "Unknown error", + } +} diff --git a/src/rust/vendor/hermit-abi/src/lib.rs b/src/rust/vendor/hermit-abi/src/lib.rs new file mode 100644 index 000000000..321f9e1dd --- /dev/null +++ b/src/rust/vendor/hermit-abi/src/lib.rs @@ -0,0 +1,757 @@ +//! `hermit-abi` is small interface to call functions from the +//! [Hermit unikernel](https://github.com/hermit-os/kernel). + +#![no_std] +#![allow(nonstandard_style)] +#![allow(clippy::missing_safety_doc)] +#![allow(clippy::result_unit_err)] + +pub mod errno; +pub mod tcplistener; +pub mod tcpstream; + +pub use self::errno::*; +pub use core::ffi::{c_int, c_short, c_void}; + +/// A thread handle type +pub type Tid = u32; + +/// Maximum number of priorities +pub const NO_PRIORITIES: usize = 31; + +/// Priority of a thread +#[derive(PartialEq, Eq, PartialOrd, Ord, Debug, Clone, Copy)] +pub struct Priority(u8); + +impl Priority { + pub const fn into(self) -> u8 { + self.0 + } + + pub const fn from(x: u8) -> Self { + Priority(x) + } +} + +pub const HIGH_PRIO: Priority = Priority::from(3); +pub const NORMAL_PRIO: Priority = Priority::from(2); +pub const LOW_PRIO: Priority = Priority::from(1); + +/// A handle, identifying a socket +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Default, Hash)] +pub struct Handle(usize); + +pub const NSEC_PER_SEC: u64 = 1_000_000_000; +pub const FUTEX_RELATIVE_TIMEOUT: u32 = 1; +pub const CLOCK_REALTIME: u64 = 1; +pub const CLOCK_MONOTONIC: u64 = 4; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; +pub const O_RDONLY: i32 = 0o0; +pub const O_WRONLY: i32 = 0o1; +pub const O_RDWR: i32 = 0o2; +pub const O_CREAT: i32 = 0o100; +pub const O_EXCL: i32 = 0o200; +pub const O_TRUNC: i32 = 0o1000; +pub const O_APPEND: i32 = 0o2000; +pub const O_NONBLOCK: i32 = 0o4000; +pub const F_DUPFD: i32 = 0; +pub const F_GETFD: i32 = 1; +pub const F_SETFD: i32 = 2; +pub const F_GETFL: i32 = 3; +pub const F_SETFL: i32 = 4; +pub const FD_CLOEXEC: i32 = 1; + +/// returns true if file descriptor `fd` is a tty +pub fn isatty(_fd: c_int) -> bool { + false +} + +/// `timespec` is used by `clock_gettime` to retrieve the +/// current time +#[derive(Copy, Clone, Debug)] +#[repr(C)] +pub struct timespec { + /// seconds + pub tv_sec: i64, + /// nanoseconds + pub tv_nsec: i64, +} + +/// Internet protocol version. +#[derive(Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] +pub enum Version { + Unspecified, + Ipv4, + Ipv6, +} + +/// A four-octet IPv4 address. +#[derive(Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Default)] +pub struct Ipv4Address(pub [u8; 4]); + +/// A sixteen-octet IPv6 address. +#[derive(Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Default)] +pub struct Ipv6Address(pub [u8; 16]); + +/// An internetworking address. +#[derive(Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] +pub enum IpAddress { + /// An unspecified address. + /// May be used as a placeholder for storage where the address is not assigned yet. + Unspecified, + /// An IPv4 address. + Ipv4(Ipv4Address), + /// An IPv6 address. + Ipv6(Ipv6Address), +} + +/// The largest number `rand` will return +pub const RAND_MAX: u64 = 2_147_483_647; + +pub const AF_INET: i32 = 0; +pub const AF_INET6: i32 = 1; +pub const IPPROTO_IP: i32 = 0; +pub const IPPROTO_IPV6: i32 = 41; +pub const IPPROTO_UDP: i32 = 17; +pub const IPPROTO_TCP: i32 = 6; +pub const IPV6_ADD_MEMBERSHIP: i32 = 12; +pub const IPV6_DROP_MEMBERSHIP: i32 = 13; +pub const IPV6_MULTICAST_LOOP: i32 = 19; +pub const IPV6_V6ONLY: i32 = 27; +pub const IP_TOS: i32 = 1; +pub const IP_TTL: i32 = 2; +pub const IP_MULTICAST_TTL: i32 = 5; +pub const IP_MULTICAST_LOOP: i32 = 7; +pub const IP_ADD_MEMBERSHIP: i32 = 3; +pub const IP_DROP_MEMBERSHIP: i32 = 4; +pub const SHUT_RD: i32 = 0; +pub const SHUT_WR: i32 = 1; +pub const SHUT_RDWR: i32 = 2; +pub const SOCK_DGRAM: i32 = 2; +pub const SOCK_STREAM: i32 = 1; +pub const SOCK_NONBLOCK: i32 = 0o4000; +pub const SOCK_CLOEXEC: i32 = 0o40000; +pub const SOL_SOCKET: i32 = 4095; +pub const SO_REUSEADDR: i32 = 0x0004; +pub const SO_KEEPALIVE: i32 = 0x0008; +pub const SO_BROADCAST: i32 = 0x0020; +pub const SO_LINGER: i32 = 0x0080; +pub const SO_SNDBUF: i32 = 0x1001; +pub const SO_RCVBUF: i32 = 0x1002; +pub const SO_SNDTIMEO: i32 = 0x1005; +pub const SO_RCVTIMEO: i32 = 0x1006; +pub const SO_ERROR: i32 = 0x1007; +pub const TCP_NODELAY: i32 = 1; +pub const MSG_PEEK: i32 = 1; +pub const FIONBIO: i32 = 0x8008667eu32 as i32; +pub const EAI_NONAME: i32 = -2200; +pub const EAI_SERVICE: i32 = -2201; +pub const EAI_FAIL: i32 = -2202; +pub const EAI_MEMORY: i32 = -2203; +pub const EAI_FAMILY: i32 = -2204; +pub const POLLIN: i16 = 0x1; +pub const POLLPRI: i16 = 0x2; +pub const POLLOUT: i16 = 0x4; +pub const POLLERR: i16 = 0x8; +pub const POLLHUP: i16 = 0x10; +pub const POLLNVAL: i16 = 0x20; +pub const POLLRDNORM: i16 = 0x040; +pub const POLLRDBAND: i16 = 0x080; +pub const POLLWRNORM: i16 = 0x0100; +pub const POLLWRBAND: i16 = 0x0200; +pub const POLLRDHUP: i16 = 0x2000; +pub const EFD_SEMAPHORE: i16 = 0o1; +pub const EFD_NONBLOCK: i16 = 0o4000; +pub const EFD_CLOEXEC: i16 = 0o40000; +pub type sa_family_t = u8; +pub type socklen_t = u32; +pub type in_addr_t = u32; +pub type in_port_t = u16; +pub type time_t = i64; +pub type suseconds_t = i64; +pub type nfds_t = usize; + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in_addr { + pub s_addr: u32, +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in6_addr { + pub s6_addr: [u8; 16], +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr { + pub sa_len: u8, + pub sa_family: sa_family_t, + pub sa_data: [u8; 14], +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: sa_family_t, + pub sin_port: u16, + pub sin_addr: in_addr, + pub sin_zero: [u8; 8], +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_in6 { + pub sin6_family: sa_family_t, + pub sin6_port: u16, + pub sin6_addr: in6_addr, + pub sin6_flowinfo: u32, + pub sin6_scope_id: u32, +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct addrinfo { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: socklen_t, + pub ai_addr: *mut sockaddr, + pub ai_canonname: *mut u8, + pub ai_next: *mut addrinfo, +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_storage { + pub s2_len: u8, + pub ss_family: sa_family_t, + pub s2_data1: [i8; 2usize], + pub s2_data2: [u32; 3usize], +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_mreq { + pub ipv6mr_multiaddr: in6_addr, + pub ipv6mr_interface: u32, +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct linger { + pub l_onoff: i32, + pub l_linger: i32, +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { + pub tv_sec: time_t, + pub tv_usec: suseconds_t, +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pollfd { + /// file descriptor + pub fd: i32, + /// events to look for + pub events: i16, + /// events returned + pub revents: i16, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct stat { + pub st_dev: u64, + pub st_ino: u64, + pub st_nlink: u64, + /// access permissions + pub st_mode: u32, + /// user id + pub st_uid: u32, + /// group id + pub st_gid: u32, + /// device id + pub st_rdev: u64, + /// size in bytes + pub st_size: u64, + /// block size + pub st_blksize: i64, + /// size in blocks + pub st_blocks: i64, + /// time of last access + pub st_atime: u64, + pub st_atime_nsec: u64, + /// time of last modification + pub st_mtime: u64, + pub st_mtime_nsec: u64, + /// time of last status change + pub st_ctime: u64, + pub st_ctime_nsec: u64, +} + +#[repr(C)] +#[derive(Debug, Clone, Copy)] +pub struct dirent64 { + /// 64-bit inode number + pub d_ino: u64, + /// 64-bit offset to next structure + pub d_off: i64, + /// Size of this dirent + pub d_reclen: u16, + /// File type + pub d_type: u8, + /// Filename (null-terminated) + pub d_name: core::marker::PhantomData, +} + +pub const DT_UNKNOWN: u32 = 0; +pub const DT_FIFO: u32 = 1; +pub const DT_CHR: u32 = 2; +pub const DT_DIR: u32 = 4; +pub const DT_BLK: u32 = 6; +pub const DT_REG: u32 = 8; +pub const DT_LNK: u32 = 10; +pub const DT_SOCK: u32 = 12; +pub const DT_WHT: u32 = 14; + +pub const S_IFDIR: u32 = 0x4000; +pub const S_IFREG: u32 = 0x8000; +pub const S_IFLNK: u32 = 0xA000; +pub const S_IFMT: u32 = 0xF000; + +// sysmbols, which are part of the library operating system +extern "C" { + /// Get the last error number from the thread local storage + #[link_name = "sys_get_errno"] + pub fn get_errno() -> i32; + + /// If the value at address matches the expected value, park the current thread until it is either + /// woken up with [`futex_wake`] (returns 0) or an optional timeout elapses (returns -ETIMEDOUT). + /// + /// Setting `timeout` to null means the function will only return if [`futex_wake`] is called. + /// Otherwise, `timeout` is interpreted as an absolute time measured with [`CLOCK_MONOTONIC`]. + /// If [`FUTEX_RELATIVE_TIMEOUT`] is set in `flags` the timeout is understood to be relative + /// to the current time. + /// + /// Returns -EINVAL if `address` is null, the timeout is negative or `flags` contains unknown values. + #[link_name = "sys_futex_wait"] + pub fn futex_wait( + address: *mut u32, + expected: u32, + timeout: *const timespec, + flags: u32, + ) -> i32; + + /// Wake `count` threads waiting on the futex at `address`. Returns the number of threads + /// woken up (saturates to `i32::MAX`). If `count` is `i32::MAX`, wake up all matching + /// waiting threads. If `count` is negative or `address` is null, returns -EINVAL. + #[link_name = "sys_futex_wake"] + pub fn futex_wake(address: *mut u32, count: i32) -> i32; + + /// sem_init() initializes the unnamed semaphore at the address + /// pointed to by `sem`. The `value` argument specifies the + /// initial value for the semaphore. + #[link_name = "sys_sem_init"] + pub fn sem_init(sem: *mut *const c_void, value: u32) -> i32; + + /// sem_destroy() frees the unnamed semaphore at the address + /// pointed to by `sem`. + #[link_name = "sys_sem_destroy"] + pub fn sem_destroy(sem: *const c_void) -> i32; + + /// sem_post() increments the semaphore pointed to by `sem`. + /// If the semaphore's value consequently becomes greater + /// than zero, then another thread blocked in a sem_wait call + /// will be woken up and proceed to lock the semaphore. + #[link_name = "sys_sem_post"] + pub fn sem_post(sem: *const c_void) -> i32; + + /// try to decrement a semaphore + /// + /// sem_trywait() is the same as sem_timedwait(), except that + /// if the decrement cannot be immediately performed, then call + /// returns a negative value instead of blocking. + #[link_name = "sys_sem_trywait"] + pub fn sem_trywait(sem: *const c_void) -> i32; + + /// decrement a semaphore + /// + /// sem_timedwait() decrements the semaphore pointed to by `sem`. + /// If the semaphore's value is greater than zero, then the + /// the function returns immediately. If the semaphore currently + /// has the value zero, then the call blocks until either + /// it becomes possible to perform the decrement of the time limit + /// to wait for the semaphore is expired. A time limit `ms` of + /// means infinity waiting time. + #[link_name = "sys_timedwait"] + pub fn sem_timedwait(sem: *const c_void, ms: u32) -> i32; + + /// Determines the id of the current thread + #[link_name = "sys_getpid"] + pub fn getpid() -> u32; + + /// cause normal termination and return `arg` + /// to the host system + #[link_name = "sys_exit"] + pub fn exit(arg: i32) -> !; + + /// cause abnormal termination + #[link_name = "sys_abort"] + pub fn abort() -> !; + + /// suspend execution for microsecond intervals + /// + /// The usleep() function suspends execution of the calling + /// thread for (at least) `usecs` microseconds. + #[link_name = "sys_usleep"] + pub fn usleep(usecs: u64); + + /// spawn a new thread + /// + /// spawn() starts a new thread. The new thread starts execution + /// by invoking `func(usize)`; `arg` is passed as the argument + /// to `func`. `prio` defines the priority of the new thread, + /// which can be between `LOW_PRIO` and `HIGH_PRIO`. + /// `core_id` defines the core, where the thread is located. + /// A negative value give the operating system the possibility + /// to select the core by its own. + #[link_name = "sys_spawn"] + pub fn spawn( + id: *mut Tid, + func: extern "C" fn(usize), + arg: usize, + prio: u8, + core_id: isize, + ) -> i32; + + /// spawn a new thread with user-specified stack size + /// + /// spawn2() starts a new thread. The new thread starts execution + /// by invoking `func(usize)`; `arg` is passed as the argument + /// to `func`. `prio` defines the priority of the new thread, + /// which can be between `LOW_PRIO` and `HIGH_PRIO`. + /// `core_id` defines the core, where the thread is located. + /// A negative value give the operating system the possibility + /// to select the core by its own. + /// In contrast to spawn(), spawn2() is able to define the + /// stack size. + #[link_name = "sys_spawn2"] + pub fn spawn2( + func: extern "C" fn(usize), + arg: usize, + prio: u8, + stack_size: usize, + core_id: isize, + ) -> Tid; + + /// join with a terminated thread + /// + /// The join() function waits for the thread specified by `id` + /// to terminate. + #[link_name = "sys_join"] + pub fn join(id: Tid) -> i32; + + /// yield the processor + /// + /// causes the calling thread to relinquish the CPU. The thread + /// is moved to the end of the queue for its static priority. + #[link_name = "sys_yield"] + pub fn yield_now(); + + /// get current time + /// + /// The clock_gettime() functions allow the calling thread + /// to retrieve the value used by a clock which is specified + /// by `clock_id`. + /// + /// `CLOCK_REALTIME`: the system's real time clock, + /// expressed as the amount of time since the Epoch. + /// + /// `CLOCK_MONOTONIC`: clock that increments monotonically, + /// tracking the time since an arbitrary point + #[link_name = "sys_clock_gettime"] + pub fn clock_gettime(clock_id: u64, tp: *mut timespec) -> i32; + + /// open and possibly create a file + /// + /// The open() system call opens the file specified by `name`. + /// If the specified file does not exist, it may optionally + /// be created by open(). + #[link_name = "sys_open"] + pub fn open(name: *const i8, flags: i32, mode: i32) -> i32; + + /// open a directory + /// + /// The opendir() system call opens the directory specified by `name`. + #[link_name = "sys_opendir"] + pub fn opendir(name: *const i8) -> i32; + + /// delete the file it refers to `name` + #[link_name = "sys_unlink"] + pub fn unlink(name: *const i8) -> i32; + + /// remove directory it refers to `name` + #[link_name = "sys_rmdir"] + pub fn rmdir(name: *const i8) -> i32; + + /// stat + #[link_name = "sys_stat"] + pub fn stat(name: *const i8, stat: *mut stat) -> i32; + + /// lstat + #[link_name = "sys_lstat"] + pub fn lstat(name: *const i8, stat: *mut stat) -> i32; + + /// fstat + #[link_name = "sys_fstat"] + pub fn fstat(fd: i32, stat: *mut stat) -> i32; + + /// determines the number of activated processors + #[link_name = "sys_get_processor_count"] + pub fn get_processor_count() -> usize; + + #[link_name = "sys_malloc"] + pub fn malloc(size: usize, align: usize) -> *mut u8; + + #[doc(hidden)] + #[link_name = "sys_realloc"] + pub fn realloc(ptr: *mut u8, size: usize, align: usize, new_size: usize) -> *mut u8; + + #[doc(hidden)] + #[link_name = "sys_free"] + pub fn free(ptr: *mut u8, size: usize, align: usize); + + #[link_name = "sys_notify"] + pub fn notify(id: usize, count: i32) -> i32; + + #[doc(hidden)] + #[link_name = "sys_add_queue"] + pub fn add_queue(id: usize, timeout_ns: i64) -> i32; + + #[doc(hidden)] + #[link_name = "sys_wait"] + pub fn wait(id: usize) -> i32; + + #[doc(hidden)] + #[link_name = "sys_init_queue"] + pub fn init_queue(id: usize) -> i32; + + #[doc(hidden)] + #[link_name = "sys_destroy_queue"] + pub fn destroy_queue(id: usize) -> i32; + + /// initialize the network stack + #[link_name = "sys_network_init"] + pub fn network_init() -> i32; + + /// Add current task to the queue of blocked tasks. After calling `block_current_task`, + /// call `yield_now` to switch to another task. + #[link_name = "sys_block_current_task"] + pub fn block_current_task(); + + /// Add current task to the queue of blocked tasks, but wake it when `timeout` milliseconds + /// have elapsed. + /// + /// After calling `block_current_task`, call `yield_now` to switch to another task. + #[link_name = "sys_block_current_task_with_timeout"] + pub fn block_current_task_with_timeout(timeout: u64); + + /// Wakeup task with the thread id `tid` + #[link_name = "sys_wakeup_taskt"] + pub fn wakeup_task(tid: Tid); + + #[link_name = "sys_accept"] + pub fn accept(s: i32, addr: *mut sockaddr, addrlen: *mut socklen_t) -> i32; + + /// bind a name to a socket + #[link_name = "sys_bind"] + pub fn bind(s: i32, name: *const sockaddr, namelen: socklen_t) -> i32; + + #[link_name = "sys_connect"] + pub fn connect(s: i32, name: *const sockaddr, namelen: socklen_t) -> i32; + + /// read from a file descriptor + /// + /// read() attempts to read `len` bytes of data from the object + /// referenced by the descriptor `fd` into the buffer pointed + /// to by `buf`. + #[link_name = "sys_read"] + pub fn read(fd: i32, buf: *mut u8, len: usize) -> isize; + + /// `getdents64` reads directory entries from the directory referenced + /// by the file descriptor `fd` into the buffer pointed to by `buf`. + #[link_name = "sys_getdents64"] + pub fn getdents64(fd: i32, dirp: *mut dirent64, count: usize) -> i64; + + /// 'mkdir' attempts to create a directory, + /// it returns 0 on success and -1 on error + #[link_name = "sys_mkdir"] + pub fn mkdir(name: *const i8, mode: u32) -> i32; + + /// Fill `len` bytes in `buf` with cryptographically secure random data. + /// + /// Returns either the number of bytes written to buf (a positive value) or + /// * `-EINVAL` if `flags` contains unknown flags. + /// * `-ENOSYS` if the system does not support random data generation. + #[link_name = "sys_read_entropy"] + pub fn read_entropy(buf: *mut u8, len: usize, flags: u32) -> isize; + + /// receive() a message from a socket + #[link_name = "sys_recv"] + pub fn recv(socket: i32, buf: *mut u8, len: usize, flags: i32) -> isize; + + /// receive() a message from a socket + #[link_name = "sys_recvfrom"] + pub fn recvfrom( + socket: i32, + buf: *mut u8, + len: usize, + flags: i32, + addr: *mut sockaddr, + addrlen: *mut socklen_t, + ) -> isize; + + /// write to a file descriptor + /// + /// write() attempts to write `len` of data to the object + /// referenced by the descriptor `fd` from the + /// buffer pointed to by `buf`. + #[link_name = "sys_write"] + pub fn write(fd: i32, buf: *const u8, len: usize) -> isize; + + /// close a file descriptor + /// + /// The close() call deletes a file descriptor `fd` from the object + /// reference table. + #[link_name = "sys_close"] + pub fn close(fd: i32) -> i32; + + /// duplicate an existing file descriptor + #[link_name = "sys_dup"] + pub fn dup(fd: i32) -> i32; + + #[link_name = "sys_getpeername"] + pub fn getpeername(s: i32, name: *mut sockaddr, namelen: *mut socklen_t) -> i32; + + #[link_name = "sys_getsockname"] + pub fn getsockname(s: i32, name: *mut sockaddr, namelen: *mut socklen_t) -> i32; + + #[link_name = "sys_getsockopt"] + pub fn getsockopt( + s: i32, + level: i32, + optname: i32, + optval: *mut c_void, + optlen: *mut socklen_t, + ) -> i32; + + #[link_name = "sys_setsockopt"] + pub fn setsockopt( + s: i32, + level: i32, + optname: i32, + optval: *const c_void, + optlen: socklen_t, + ) -> i32; + + #[link_name = "sys_ioctl"] + pub fn ioctl(s: i32, cmd: i32, argp: *mut c_void) -> i32; + + #[link_name = "sys_fcntl"] + pub fn fcntl(fd: i32, cmd: i32, arg: i32) -> i32; + + /// `eventfd` creates an linux-like "eventfd object" that can be used + /// as an event wait/notify mechanism by user-space applications, and by + /// the kernel to notify user-space applications of events. The + /// object contains an unsigned 64-bit integer counter + /// that is maintained by the kernel. This counter is initialized + /// with the value specified in the argument `initval`. + /// + /// As its return value, `eventfd` returns a new file descriptor that + /// can be used to refer to the eventfd object. + /// + /// The following values may be bitwise set in flags to change the + /// behavior of `eventfd`: + /// + /// `EFD_NONBLOCK`: Set the file descriptor in non-blocking mode + /// `EFD_SEMAPHORE`: Provide semaphore-like semantics for reads + /// from the new file descriptor. + #[link_name = "sys_eventfd"] + pub fn eventfd(initval: u64, flags: i16) -> i32; + + /// The unix-like `poll` waits for one of a set of file descriptors + /// to become ready to perform I/O. The set of file descriptors to be + /// monitored is specified in the `fds` argument, which is an array + /// of structures of `pollfd`. + #[link_name = "sys_poll"] + pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: i32) -> i32; + + /// listen for connections on a socket + /// + /// The `backlog` parameter defines the maximum length for the queue of pending + /// connections. Currently, the `backlog` must be one. + #[link_name = "sys_listen"] + pub fn listen(s: i32, backlog: i32) -> i32; + + #[link_name = "sys_send"] + pub fn send(s: i32, mem: *const c_void, len: usize, flags: i32) -> isize; + + #[link_name = "sys_sendto"] + pub fn sendto( + s: i32, + mem: *const c_void, + len: usize, + flags: i32, + to: *const sockaddr, + tolen: socklen_t, + ) -> isize; + + /// shut down part of a full-duplex connection + #[link_name = "sys_shutdown_socket"] + pub fn shutdown_socket(s: i32, how: i32) -> i32; + + #[link_name = "sys_socket"] + pub fn socket(domain: i32, type_: i32, protocol: i32) -> i32; + + #[link_name = "sys_freeaddrinfo"] + pub fn freeaddrinfo(ai: *mut addrinfo); + + #[link_name = "sys_getaddrinfo"] + pub fn getaddrinfo( + nodename: *const i8, + servname: *const u8, + hints: *const addrinfo, + res: *mut *mut addrinfo, + ) -> i32; + + fn sys_get_priority() -> u8; + fn sys_set_priority(tid: Tid, prio: u8); +} + +/// Determine the priority of the current thread +#[inline(always)] +pub unsafe fn get_priority() -> Priority { + Priority::from(sys_get_priority()) +} + +/// Determine the priority of the current thread +#[inline(always)] +pub unsafe fn set_priority(tid: Tid, prio: Priority) { + sys_set_priority(tid, prio.into()); +} diff --git a/src/rust/vendor/hermit-abi/src/tcplistener.rs b/src/rust/vendor/hermit-abi/src/tcplistener.rs new file mode 100644 index 000000000..c278dc085 --- /dev/null +++ b/src/rust/vendor/hermit-abi/src/tcplistener.rs @@ -0,0 +1,13 @@ +//! `tcplistener` provide an interface to establish tcp socket server. + +use crate::{Handle, IpAddress}; + +extern "Rust" { + fn sys_tcp_listener_accept(port: u16) -> Result<(Handle, IpAddress, u16), ()>; +} + +/// Wait for connection at specified address. +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn accept(port: u16) -> Result<(Handle, IpAddress, u16), ()> { + unsafe { sys_tcp_listener_accept(port) } +} diff --git a/src/rust/vendor/hermit-abi/src/tcpstream.rs b/src/rust/vendor/hermit-abi/src/tcpstream.rs new file mode 100644 index 000000000..c8fcd1891 --- /dev/null +++ b/src/rust/vendor/hermit-abi/src/tcpstream.rs @@ -0,0 +1,110 @@ +//! `tcpstream` provide an interface to establish tcp socket client. + +use crate::{Handle, IpAddress}; + +extern "Rust" { + fn sys_tcp_stream_connect(ip: &[u8], port: u16, timeout: Option) -> Result; + fn sys_tcp_stream_close(handle: Handle) -> Result<(), ()>; + fn sys_tcp_stream_read(handle: Handle, buffer: &mut [u8]) -> Result; + fn sys_tcp_stream_write(handle: Handle, buffer: &[u8]) -> Result; + fn sys_tcp_stream_set_read_timeout(handle: Handle, timeout: Option) -> Result<(), ()>; + fn sys_tcp_stream_get_read_timeout(handle: Handle) -> Result, ()>; + fn sys_tcp_stream_set_write_timeout(handle: Handle, timeout: Option) -> Result<(), ()>; + fn sys_tcp_stream_get_write_timeout(handle: Handle) -> Result, ()>; + fn sys_tcp_stream_peek(handle: Handle, buf: &mut [u8]) -> Result; + fn sys_tcp_stream_set_nonblocking(handle: Handle, mode: bool) -> Result<(), ()>; + fn sys_tcp_stream_set_tll(handle: Handle, ttl: u32) -> Result<(), ()>; + fn sys_tcp_stream_get_tll(handle: Handle) -> Result; + fn sys_tcp_stream_shutdown(handle: Handle, how: i32) -> Result<(), ()>; + fn sys_tcp_stream_peer_addr(handle: Handle) -> Result<(IpAddress, u16), ()>; +} + +/// Opens a TCP connection to a remote host. +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn connect(ip: &[u8], port: u16, timeout: Option) -> Result { + unsafe { sys_tcp_stream_connect(ip, port, timeout) } +} + +/// Close a TCP connection +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn close(handle: Handle) -> Result<(), ()> { + unsafe { sys_tcp_stream_close(handle) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn peek(handle: Handle, buf: &mut [u8]) -> Result { + unsafe { sys_tcp_stream_peek(handle, buf) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn peer_addr(handle: Handle) -> Result<(IpAddress, u16), ()> { + unsafe { sys_tcp_stream_peer_addr(handle) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn read(handle: Handle, buffer: &mut [u8]) -> Result { + unsafe { sys_tcp_stream_read(handle, buffer) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn write(handle: Handle, buffer: &[u8]) -> Result { + unsafe { sys_tcp_stream_write(handle, buffer) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn set_read_timeout(handle: Handle, timeout: Option) -> Result<(), ()> { + unsafe { sys_tcp_stream_set_read_timeout(handle, timeout) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn set_write_timeout(handle: Handle, timeout: Option) -> Result<(), ()> { + unsafe { sys_tcp_stream_set_write_timeout(handle, timeout) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn get_read_timeout(handle: Handle) -> Result, ()> { + unsafe { sys_tcp_stream_get_read_timeout(handle) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn get_write_timeout(handle: Handle) -> Result, ()> { + unsafe { sys_tcp_stream_get_write_timeout(handle) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn set_nodelay(_: Handle, mode: bool) -> Result<(), ()> { + // smoltcp does not support Nagle's algorithm + // => to enable Nagle's algorithm isn't possible + if mode { + Ok(()) + } else { + Err(()) + } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn nodelay(_: Handle) -> Result { + // smoltcp does not support Nagle's algorithm + // => return always true + Ok(true) +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn set_nonblocking(handle: Handle, mode: bool) -> Result<(), ()> { + unsafe { sys_tcp_stream_set_nonblocking(handle, mode) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn set_tll(handle: Handle, ttl: u32) -> Result<(), ()> { + unsafe { sys_tcp_stream_set_tll(handle, ttl) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn get_tll(handle: Handle) -> Result { + unsafe { sys_tcp_stream_get_tll(handle) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn shutdown(handle: Handle, how: i32) -> Result<(), ()> { + unsafe { sys_tcp_stream_shutdown(handle, how) } +} diff --git a/src/rust/vendor/lazy_static/.cargo-checksum.json b/src/rust/vendor/lazy_static/.cargo-checksum.json deleted file mode 100644 index fa241ed8f..000000000 --- a/src/rust/vendor/lazy_static/.cargo-checksum.json +++ /dev/null @@ -1 +0,0 @@ -{"files":{"Cargo.toml":"05e37a4e63dc4a495998bb5133252a51d671c4e99061a6342089ed6eab43978a","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"0621878e61f0d0fda054bcbe02df75192c28bde1ecc8289cbd86aeba2dd72720","README.md":"e2effacb5bbd7c01523f9a9e4a6a59c0f9b8698753b210fec5742408498197df","src/core_lazy.rs":"6b9fb6a4f553058e240756125b6b9ca43a83ed1fb72964343038ea0ea2e1af10","src/inline_lazy.rs":"f6184afbca4b477616f270790edc180263be806aa92ef0a9de681b4aac9e88c4","src/lib.rs":"99096a5d3089c0d86646f0805d1455befe2cb09683704af29c5c9d99ecab2683","tests/no_std.rs":"d68b149ee51ef5ae2b2906c0c94f5a9812d3b02811b13365c5a35e2ef90d25cf","tests/test.rs":"b3f7d805375dc5af7a2aa4b869944ad2ab4fc982b35ad718ea58f6914dc0a698"},"package":"e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"} \ No newline at end of file diff --git a/src/rust/vendor/lazy_static/Cargo.toml b/src/rust/vendor/lazy_static/Cargo.toml deleted file mode 100644 index 7f930c5e3..000000000 --- a/src/rust/vendor/lazy_static/Cargo.toml +++ /dev/null @@ -1,46 +0,0 @@ -# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO -# -# When uploading crates to the registry Cargo will automatically -# "normalize" Cargo.toml files for maximal compatibility -# with all versions of Cargo and also rewrite `path` dependencies -# to registry (e.g., crates.io) dependencies -# -# If you believe there's an error in this file please file an -# issue against the rust-lang/cargo repository. If you're -# editing this file be aware that the upstream Cargo.toml -# will likely look very different (and much more reasonable) - -[package] -name = "lazy_static" -version = "1.4.0" -authors = ["Marvin Löbel "] -exclude = ["/.travis.yml", "/appveyor.yml"] -description = "A macro for declaring lazily evaluated statics in Rust." -documentation = "https://docs.rs/lazy_static" -readme = "README.md" -keywords = ["macro", "lazy", "static"] -categories = ["no-std", "rust-patterns", "memory-management"] -license = "MIT/Apache-2.0" -repository = "https://github.com/rust-lang-nursery/lazy-static.rs" -[dependencies.spin] -version = "0.5.0" -optional = true -[dev-dependencies.doc-comment] -version = "0.3.1" - -[features] -spin_no_std = ["spin"] -[badges.appveyor] -repository = "rust-lang-nursery/lazy-static.rs" - -[badges.is-it-maintained-issue-resolution] -repository = "rust-lang-nursery/lazy-static.rs" - -[badges.is-it-maintained-open-issues] -repository = "rust-lang-nursery/lazy-static.rs" - -[badges.maintenance] -status = "passively-maintained" - -[badges.travis-ci] -repository = "rust-lang-nursery/lazy-static.rs" diff --git a/src/rust/vendor/lazy_static/README.md b/src/rust/vendor/lazy_static/README.md deleted file mode 100644 index aa9f82832..000000000 --- a/src/rust/vendor/lazy_static/README.md +++ /dev/null @@ -1,79 +0,0 @@ -lazy-static.rs -============== - -A macro for declaring lazily evaluated statics in Rust. - -Using this macro, it is possible to have `static`s that require code to be -executed at runtime in order to be initialized. -This includes anything requiring heap allocations, like vectors or hash maps, -as well as anything that requires non-const function calls to be computed. - -[![Travis-CI Status](https://travis-ci.com/rust-lang-nursery/lazy-static.rs.svg?branch=master)](https://travis-ci.com/rust-lang-nursery/lazy-static.rs) -[![Latest version](https://img.shields.io/crates/v/lazy_static.svg)](https://crates.io/crates/lazy_static) -[![Documentation](https://docs.rs/lazy_static/badge.svg)](https://docs.rs/lazy_static) -[![License](https://img.shields.io/crates/l/lazy_static.svg)](https://github.com/rust-lang-nursery/lazy-static.rs#license) - -## Minimum supported `rustc` - -`1.27.2+` - -This version is explicitly tested in CI and may only be bumped in new minor versions. Any changes to the supported minimum version will be called out in the release notes. - - -# Getting Started - -[lazy-static.rs is available on crates.io](https://crates.io/crates/lazy_static). -It is recommended to look there for the newest released version, as well as links to the newest builds of the docs. - -At the point of the last update of this README, the latest published version could be used like this: - -Add the following dependency to your Cargo manifest... - -```toml -[dependencies] -lazy_static = "1.4.0" -``` - -...and see the [docs](https://docs.rs/lazy_static) for how to use it. - -# Example - -```rust -#[macro_use] -extern crate lazy_static; - -use std::collections::HashMap; - -lazy_static! { - static ref HASHMAP: HashMap = { - let mut m = HashMap::new(); - m.insert(0, "foo"); - m.insert(1, "bar"); - m.insert(2, "baz"); - m - }; -} - -fn main() { - // First access to `HASHMAP` initializes it - println!("The entry for `0` is \"{}\".", HASHMAP.get(&0).unwrap()); - - // Any further access to `HASHMAP` just returns the computed value - println!("The entry for `1` is \"{}\".", HASHMAP.get(&1).unwrap()); -} -``` - -## License - -Licensed under either of - - * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) - * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) - -at your option. - -### Contribution - -Unless you explicitly state otherwise, any contribution intentionally submitted -for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any -additional terms or conditions. diff --git a/src/rust/vendor/lazy_static/src/core_lazy.rs b/src/rust/vendor/lazy_static/src/core_lazy.rs deleted file mode 100644 index b66c3e0d0..000000000 --- a/src/rust/vendor/lazy_static/src/core_lazy.rs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2016 lazy-static.rs Developers -// -// Licensed under the Apache License, Version 2.0, or the MIT license , at your option. This file may not be -// copied, modified, or distributed except according to those terms. - -extern crate spin; - -use self::spin::Once; - -pub struct Lazy(Once); - -impl Lazy { - pub const INIT: Self = Lazy(Once::INIT); - - #[inline(always)] - pub fn get(&'static self, builder: F) -> &T - where F: FnOnce() -> T - { - self.0.call_once(builder) - } -} - -#[macro_export] -#[doc(hidden)] -macro_rules! __lazy_static_create { - ($NAME:ident, $T:ty) => { - static $NAME: $crate::lazy::Lazy<$T> = $crate::lazy::Lazy::INIT; - } -} diff --git a/src/rust/vendor/lazy_static/src/inline_lazy.rs b/src/rust/vendor/lazy_static/src/inline_lazy.rs deleted file mode 100644 index 219ce9c60..000000000 --- a/src/rust/vendor/lazy_static/src/inline_lazy.rs +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2016 lazy-static.rs Developers -// -// Licensed under the Apache License, Version 2.0, or the MIT license , at your option. This file may not be -// copied, modified, or distributed except according to those terms. - -extern crate core; -extern crate std; - -use self::std::prelude::v1::*; -use self::std::cell::Cell; -use self::std::hint::unreachable_unchecked; -use self::std::sync::Once; -#[allow(deprecated)] -pub use self::std::sync::ONCE_INIT; - -// FIXME: Replace Option with MaybeUninit (stable since 1.36.0) -pub struct Lazy(Cell>, Once); - -impl Lazy { - #[allow(deprecated)] - pub const INIT: Self = Lazy(Cell::new(None), ONCE_INIT); - - #[inline(always)] - pub fn get(&'static self, f: F) -> &T - where - F: FnOnce() -> T, - { - self.1.call_once(|| { - self.0.set(Some(f())); - }); - - // `self.0` is guaranteed to be `Some` by this point - // The `Once` will catch and propagate panics - unsafe { - match *self.0.as_ptr() { - Some(ref x) => x, - None => { - debug_assert!(false, "attempted to derefence an uninitialized lazy static. This is a bug"); - - unreachable_unchecked() - }, - } - } - } -} - -unsafe impl Sync for Lazy {} - -#[macro_export] -#[doc(hidden)] -macro_rules! __lazy_static_create { - ($NAME:ident, $T:ty) => { - static $NAME: $crate::lazy::Lazy<$T> = $crate::lazy::Lazy::INIT; - }; -} diff --git a/src/rust/vendor/lazy_static/src/lib.rs b/src/rust/vendor/lazy_static/src/lib.rs deleted file mode 100644 index cada0dc68..000000000 --- a/src/rust/vendor/lazy_static/src/lib.rs +++ /dev/null @@ -1,215 +0,0 @@ -// Copyright 2016 lazy-static.rs Developers -// -// Licensed under the Apache License, Version 2.0, or the MIT license , at your option. This file may not be -// copied, modified, or distributed except according to those terms. - -/*! -A macro for declaring lazily evaluated statics. - -Using this macro, it is possible to have `static`s that require code to be -executed at runtime in order to be initialized. -This includes anything requiring heap allocations, like vectors or hash maps, -as well as anything that requires function calls to be computed. - -# Syntax - -```ignore -lazy_static! { - [pub] static ref NAME_1: TYPE_1 = EXPR_1; - [pub] static ref NAME_2: TYPE_2 = EXPR_2; - ... - [pub] static ref NAME_N: TYPE_N = EXPR_N; -} -``` - -Attributes (including doc comments) are supported as well: - -```rust -# #[macro_use] -# extern crate lazy_static; -# fn main() { -lazy_static! { - /// This is an example for using doc comment attributes - static ref EXAMPLE: u8 = 42; -} -# } -``` - -# Semantics - -For a given `static ref NAME: TYPE = EXPR;`, the macro generates a unique type that -implements `Deref` and stores it in a static with name `NAME`. (Attributes end up -attaching to this type.) - -On first deref, `EXPR` gets evaluated and stored internally, such that all further derefs -can return a reference to the same object. Note that this can lead to deadlocks -if you have multiple lazy statics that depend on each other in their initialization. - -Apart from the lazy initialization, the resulting "static ref" variables -have generally the same properties as regular "static" variables: - -- Any type in them needs to fulfill the `Sync` trait. -- If the type has a destructor, then it will not run when the process exits. - -# Example - -Using the macro: - -```rust -#[macro_use] -extern crate lazy_static; - -use std::collections::HashMap; - -lazy_static! { - static ref HASHMAP: HashMap = { - let mut m = HashMap::new(); - m.insert(0, "foo"); - m.insert(1, "bar"); - m.insert(2, "baz"); - m - }; - static ref COUNT: usize = HASHMAP.len(); - static ref NUMBER: u32 = times_two(21); -} - -fn times_two(n: u32) -> u32 { n * 2 } - -fn main() { - println!("The map has {} entries.", *COUNT); - println!("The entry for `0` is \"{}\".", HASHMAP.get(&0).unwrap()); - println!("A expensive calculation on a static results in: {}.", *NUMBER); -} -``` - -# Implementation details - -The `Deref` implementation uses a hidden static variable that is guarded by an atomic check on each access. - -# Cargo features - -This crate provides one cargo feature: - -- `spin_no_std`: This allows using this crate in a no-std environment, by depending on the standalone `spin` crate. - -*/ - -#![doc(html_root_url = "https://docs.rs/lazy_static/1.4.0")] -#![no_std] - -#[cfg(not(feature = "spin_no_std"))] -#[path="inline_lazy.rs"] -#[doc(hidden)] -pub mod lazy; - -#[cfg(test)] -#[macro_use] -extern crate doc_comment; - -#[cfg(test)] -doctest!("../README.md"); - -#[cfg(feature = "spin_no_std")] -#[path="core_lazy.rs"] -#[doc(hidden)] -pub mod lazy; - -#[doc(hidden)] -pub use core::ops::Deref as __Deref; - -#[macro_export(local_inner_macros)] -#[doc(hidden)] -macro_rules! __lazy_static_internal { - // optional visibility restrictions are wrapped in `()` to allow for - // explicitly passing otherwise implicit information about private items - ($(#[$attr:meta])* ($($vis:tt)*) static ref $N:ident : $T:ty = $e:expr; $($t:tt)*) => { - __lazy_static_internal!(@MAKE TY, $(#[$attr])*, ($($vis)*), $N); - __lazy_static_internal!(@TAIL, $N : $T = $e); - lazy_static!($($t)*); - }; - (@TAIL, $N:ident : $T:ty = $e:expr) => { - impl $crate::__Deref for $N { - type Target = $T; - fn deref(&self) -> &$T { - #[inline(always)] - fn __static_ref_initialize() -> $T { $e } - - #[inline(always)] - fn __stability() -> &'static $T { - __lazy_static_create!(LAZY, $T); - LAZY.get(__static_ref_initialize) - } - __stability() - } - } - impl $crate::LazyStatic for $N { - fn initialize(lazy: &Self) { - let _ = &**lazy; - } - } - }; - // `vis` is wrapped in `()` to prevent parsing ambiguity - (@MAKE TY, $(#[$attr:meta])*, ($($vis:tt)*), $N:ident) => { - #[allow(missing_copy_implementations)] - #[allow(non_camel_case_types)] - #[allow(dead_code)] - $(#[$attr])* - $($vis)* struct $N {__private_field: ()} - #[doc(hidden)] - $($vis)* static $N: $N = $N {__private_field: ()}; - }; - () => () -} - -#[macro_export(local_inner_macros)] -macro_rules! lazy_static { - ($(#[$attr:meta])* static ref $N:ident : $T:ty = $e:expr; $($t:tt)*) => { - // use `()` to explicitly forward the information about private items - __lazy_static_internal!($(#[$attr])* () static ref $N : $T = $e; $($t)*); - }; - ($(#[$attr:meta])* pub static ref $N:ident : $T:ty = $e:expr; $($t:tt)*) => { - __lazy_static_internal!($(#[$attr])* (pub) static ref $N : $T = $e; $($t)*); - }; - ($(#[$attr:meta])* pub ($($vis:tt)+) static ref $N:ident : $T:ty = $e:expr; $($t:tt)*) => { - __lazy_static_internal!($(#[$attr])* (pub ($($vis)+)) static ref $N : $T = $e; $($t)*); - }; - () => () -} - -/// Support trait for enabling a few common operation on lazy static values. -/// -/// This is implemented by each defined lazy static, and -/// used by the free functions in this crate. -pub trait LazyStatic { - #[doc(hidden)] - fn initialize(lazy: &Self); -} - -/// Takes a shared reference to a lazy static and initializes -/// it if it has not been already. -/// -/// This can be used to control the initialization point of a lazy static. -/// -/// Example: -/// -/// ```rust -/// #[macro_use] -/// extern crate lazy_static; -/// -/// lazy_static! { -/// static ref BUFFER: Vec = (0..255).collect(); -/// } -/// -/// fn main() { -/// lazy_static::initialize(&BUFFER); -/// -/// // ... -/// work_with_initialized_data(&BUFFER); -/// } -/// # fn work_with_initialized_data(_: &[u8]) {} -/// ``` -pub fn initialize(lazy: &T) { - LazyStatic::initialize(lazy); -} diff --git a/src/rust/vendor/lazy_static/tests/no_std.rs b/src/rust/vendor/lazy_static/tests/no_std.rs deleted file mode 100644 index f94a1aaa6..000000000 --- a/src/rust/vendor/lazy_static/tests/no_std.rs +++ /dev/null @@ -1,20 +0,0 @@ -#![cfg(feature="spin_no_std")] - -#![no_std] - -#[macro_use] -extern crate lazy_static; - -lazy_static! { - /// Documentation! - pub static ref NUMBER: u32 = times_two(3); -} - -fn times_two(n: u32) -> u32 { - n * 2 -} - -#[test] -fn test_basic() { - assert_eq!(*NUMBER, 6); -} diff --git a/src/rust/vendor/lazy_static/tests/test.rs b/src/rust/vendor/lazy_static/tests/test.rs deleted file mode 100644 index 03d0ab683..000000000 --- a/src/rust/vendor/lazy_static/tests/test.rs +++ /dev/null @@ -1,164 +0,0 @@ -#[macro_use] -extern crate lazy_static; -use std::collections::HashMap; - -lazy_static! { - /// Documentation! - pub static ref NUMBER: u32 = times_two(3); - - static ref ARRAY_BOXES: [Box; 3] = [Box::new(1), Box::new(2), Box::new(3)]; - - /// More documentation! - #[allow(unused_variables)] - #[derive(Copy, Clone, Debug)] - pub static ref STRING: String = "hello".to_string(); - - static ref HASHMAP: HashMap = { - let mut m = HashMap::new(); - m.insert(0, "abc"); - m.insert(1, "def"); - m.insert(2, "ghi"); - m - }; - - // This should not compile if the unsafe is removed. - static ref UNSAFE: u32 = unsafe { - std::mem::transmute::(-1) - }; -} - -lazy_static! { - static ref S1: &'static str = "a"; - static ref S2: &'static str = "b"; -} -lazy_static! { - static ref S3: String = [*S1, *S2].join(""); -} - -#[test] -fn s3() { - assert_eq!(&*S3, "ab"); -} - -fn times_two(n: u32) -> u32 { - n * 2 -} - -#[test] -fn test_basic() { - assert_eq!(&**STRING, "hello"); - assert_eq!(*NUMBER, 6); - assert!(HASHMAP.get(&1).is_some()); - assert!(HASHMAP.get(&3).is_none()); - assert_eq!(&*ARRAY_BOXES, &[Box::new(1), Box::new(2), Box::new(3)]); - assert_eq!(*UNSAFE, std::u32::MAX); -} - -#[test] -fn test_repeat() { - assert_eq!(*NUMBER, 6); - assert_eq!(*NUMBER, 6); - assert_eq!(*NUMBER, 6); -} - -#[test] -fn test_meta() { - // this would not compile if STRING were not marked #[derive(Copy, Clone)] - let copy_of_string = STRING; - // just to make sure it was copied - assert!(&STRING as *const _ != ©_of_string as *const _); - - // this would not compile if STRING were not marked #[derive(Debug)] - assert_eq!(format!("{:?}", STRING), "STRING { __private_field: () }".to_string()); -} - -mod visibility { - lazy_static! { - pub static ref FOO: Box = Box::new(0); - static ref BAR: Box = Box::new(98); - } - - pub mod inner { - lazy_static! { - pub(in visibility) static ref BAZ: Box = Box::new(42); - pub(crate) static ref BAG: Box = Box::new(37); - } - } - - #[test] - fn sub_test() { - assert_eq!(**FOO, 0); - assert_eq!(**BAR, 98); - assert_eq!(**inner::BAZ, 42); - assert_eq!(**inner::BAG, 37); - } -} - -#[test] -fn test_visibility() { - assert_eq!(*visibility::FOO, Box::new(0)); - assert_eq!(*visibility::inner::BAG, Box::new(37)); -} - -// This should not cause a warning about a missing Copy implementation -lazy_static! { - pub static ref VAR: i32 = { 0 }; -} - -#[derive(Copy, Clone, Debug, PartialEq)] -struct X; -struct Once(X); -const ONCE_INIT: Once = Once(X); -static DATA: X = X; -static ONCE: X = X; -fn require_sync() -> X { X } -fn transmute() -> X { X } -fn __static_ref_initialize() -> X { X } -fn test(_: Vec) -> X { X } - -// All these names should not be shadowed -lazy_static! { - static ref ITEM_NAME_TEST: X = { - test(vec![X, Once(X).0, ONCE_INIT.0, DATA, ONCE, - require_sync(), transmute(), - // Except this, which will sadly be shadowed by internals: - // __static_ref_initialize() - ]) - }; -} - -#[test] -fn item_name_shadowing() { - assert_eq!(*ITEM_NAME_TEST, X); -} - -use std::sync::atomic::AtomicBool; -#[allow(deprecated)] -use std::sync::atomic::ATOMIC_BOOL_INIT; -use std::sync::atomic::Ordering::SeqCst; - -#[allow(deprecated)] -static PRE_INIT_FLAG: AtomicBool = ATOMIC_BOOL_INIT; - -lazy_static! { - static ref PRE_INIT: () = { - PRE_INIT_FLAG.store(true, SeqCst); - () - }; -} - -#[test] -fn pre_init() { - assert_eq!(PRE_INIT_FLAG.load(SeqCst), false); - lazy_static::initialize(&PRE_INIT); - assert_eq!(PRE_INIT_FLAG.load(SeqCst), true); -} - -lazy_static! { - static ref LIFETIME_NAME: for<'a> fn(&'a u8) = { fn f(_: &u8) {} f }; -} - -#[test] -fn lifetime_name() { - let _ = LIFETIME_NAME; -} diff --git a/src/rust/vendor/libc-0.2.146/.cargo-checksum.json b/src/rust/vendor/libc-0.2.146/.cargo-checksum.json new file mode 100644 index 000000000..0b6b1a56e --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"CONTRIBUTING.md":"bdc90b52cf803faac96e594069a86dd8ea150d5ba7fb3e6cadfc08dac4c7b0ce","Cargo.toml":"1923cc2c3bb1b4849872da9eab12ff3e60ad065e74d41148dbf7d1e5812c0bd9","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"ecc47e284f8d007fc048666d5108dd41cdc440ab9eedfe8c47d1634613522787","build.rs":"5bd78d7e4e79b183fb1dab92cd640a611330131d54c479c69adbe87cbdc95ae3","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"7f986e5f5e68d25ef04d386fd2f640e8be8f15427a8d4a458ea01d26b8dca0ca","src/fuchsia/aarch64.rs":"893fcec48142d273063ffd814dca33fbec92205fd39ada97075f85201d803996","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"30f4dc83ef120300d61896696512436377c5f36f1431d98ab7e01e498c0c47d5","src/fuchsia/no_align.rs":"303f3f1b255e0088b5715094353cf00476131d8e94e6aebb3f469557771c8b8a","src/fuchsia/riscv64.rs":"617cd75e79e0e20f664db764a4dc2a396d9fd11a4d95371acd91ed4811293b11","src/fuchsia/x86_64.rs":"93a3632b5cf67d2a6bcb7dc0a558605252d5fe689e0f38d8aa2ec5852255ac87","src/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/hermit/mod.rs":"d3bfce41e4463d4be8020a2d063c9bfa8b665f45f1cc6cbf3163f5d01e7cb21f","src/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/lib.rs":"24111461547739f3646f95bcb66c43f2ae679a727ff5938299434c522c02e458","src/macros.rs":"b457eb028b8e8ab3c24bb7292b874ad4e491edbb83594f6a3da024df5348c088","src/psp.rs":"dd31aabd46171d474ec5828372e28588935120e7355c90c105360d8fa9264c1c","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/solid/aarch64.rs":"a726e47f324adf73a4a0b67a2c183408d0cad105ae66acf36db37a42ab7f8707","src/solid/arm.rs":"e39a4f74ebbef3b97b8c95758ad741123d84ed3eb48d9cf4f1f4872097fc27fe","src/solid/mod.rs":"5f4151dca5132e4b4e4c23ab9737e12856dddbdc0ca3f7dbc004328ef3c8acde","src/switch.rs":"9da3dd39b3de45a7928789926e8572d00e1e11a39e6f7289a1349aadce90edba","src/unix/aix/mod.rs":"54229b5e774669c16912112e8b50fa938db76f534971222a11723a05195a0948","src/unix/aix/powerpc64.rs":"cf374d81139d45f9d77c6a764f640bfbf7e0a5903689652c8296f8e10d55169b","src/unix/align.rs":"2cdc7c826ef7ae61f5171c5ae8c445a743d86f1a7f2d9d7e4ceeec56d6874f65","src/unix/bsd/apple/b32/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b32/mod.rs":"2546ad3eb6aecb95f916648bc63264117c92b4b4859532b34cb011e4c75a5a72","src/unix/bsd/apple/b64/aarch64/align.rs":"e8eb38d064b5fefec6f37d42873820a0483e7c758ed336cc59a7155455ca89c9","src/unix/bsd/apple/b64/aarch64/mod.rs":"44c217a4f263afe7a97435de9323d20a96c37836f899ca0925306d4b7e073c27","src/unix/bsd/apple/b64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/mod.rs":"f5e278a1af7fb358891d1c9be4eb7e815aaca0c5cb738d0c3604ba2208a856f7","src/unix/bsd/apple/b64/x86_64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/x86_64/mod.rs":"8c87c5855038aae5d433c8f5eb3b29b0a175879a0245342b3bfd83bdf4cfd936","src/unix/bsd/apple/long_array.rs":"3cf1f19b812e6d093c819dc65ce55b13491963e0780eda0d0bd1577603e81948","src/unix/bsd/apple/mod.rs":"a6662488273ffff2a097403281db6b5f4cd1a325f7a1582264bb8da0b553a822","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"f2e78625fe1eb14f43e730a3987eba888cb8ac04c23008e7c2d2f7c72258b9e6","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"6c8e216385f53a4bf5f171749b57602fc34a4e4b160a44ca31c058cb0c8a2126","src/unix/bsd/freebsdlike/freebsd/arm.rs":"59d6a670eea562fb87686e243e0a84603d29a2028a3d4b3f99ccc01bd04d2f47","src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs":"9808d152c1196aa647f1b0f0cf84dac8c930da7d7f897a44975545e3d9d17681","src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs":"e243ae0e89623d4fa9f85afe14369cc5fd5f2028ea715773dbec722ba80dac1f","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"bef9fae288a4f29e941ea369be1cd20b170040e60665a4d49a4a9e79009b72d8","src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs":"3c514e037694ce22724abb3c9c4687defda7f0e3456b615ca73593e860e38b16","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs":"318abe48bfdd1c74ecd6afbd6c9329c5c72ce4f7d420edd6be2fc12b223ae32f","src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs":"e7b5863e222d6cc416b6b0fbe71690fad909e899b4c4ae810bbca117e4fcb650","src/unix/bsd/freebsdlike/freebsd/mod.rs":"4c3cd57aaf7fbce072e28e0d2d285b5fda9702e924561d2fd01e49e6ee186a98","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","src/unix/bsd/freebsdlike/freebsd/riscv64.rs":"fa4bed4c58cad24ba3395941c7fa6b11e089551a04714f9561078e400f5b2b62","src/unix/bsd/freebsdlike/freebsd/x86.rs":"6766e2ce85e187b306cd3b0b8d7e15b8f4042c5cff81d89b3af69ecc99c70ab0","src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs":"0e1f69a88fca1c32874b1daf5db3d446fefbe518dca497f096cc9168c39dde70","src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs":"51e4dd0c8ae247bb652feda5adad9333ea3bb30c750c3a3935e0b0e47d7803eb","src/unix/bsd/freebsdlike/mod.rs":"0eacafac87fb3a32ef1b85980fece2792e70eba9856af18a7407cc35be68ea57","src/unix/bsd/mod.rs":"dad51a24a524e92bfe9de3ac3b7d394d86058b9b8a1ccd4efa9bbb5c78e7fa1a","src/unix/bsd/netbsdlike/mod.rs":"0a66f7de43710e35a6a546e6c39066aa8b91a6efadb71db88738b0a577fd5537","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"65dcb58d11e8d8028401a9d07ca3eb4cb4f053e04249cc877353449d84ccc4cb","src/unix/bsd/netbsdlike/netbsd/arm.rs":"58cdbb70b0d6f536551f0f3bb3725d2d75c4690db12c26c034e7d6ec4a924452","src/unix/bsd/netbsdlike/netbsd/mod.rs":"90dd33ef20dc3be8aef5bd152a6a06e7ab34f9527b3978487b593aaa16a907bd","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"ee7ff5d89d0ed22f531237b5059aa669df93a3b5c489fa641465ace8d405bf41","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"9489f4b3e4566f43bb12dfb92238960613dac7f6a45cc13068a8d152b902d7d9","src/unix/bsd/netbsdlike/netbsd/x86.rs":"20692320e36bfe028d1a34d16fe12ca77aa909cb02bda167376f98f1a09aefe7","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"1afe5ef46b14397cdd68664b5b232e4f5b035b6db1d4cf411c899d51ebca9f30","src/unix/bsd/netbsdlike/openbsd/aarch64.rs":"dd91931d373b7ecaf6e2de25adadee10d16fa9b12c2cbacdff3eb291e1ba36af","src/unix/bsd/netbsdlike/openbsd/arm.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/mips64.rs":"8532a189ae10c7d668d9d4065da8b05d124e09bd39442c9f74a7f231c43eca48","src/unix/bsd/netbsdlike/openbsd/mod.rs":"892e0b409ced2dfd81d98cbe9630eb83979c1668d323b304a91be13aa711d5db","src/unix/bsd/netbsdlike/openbsd/powerpc.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/powerpc64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/riscv64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/sparc64.rs":"d04fd287afbaa2c5df9d48c94e8374a532a3ba491b424ddf018270c7312f4085","src/unix/bsd/netbsdlike/openbsd/x86.rs":"6f7f5c4fde2a2259eb547890cbd86570cea04ef85347d7569e94e679448bec87","src/unix/bsd/netbsdlike/openbsd/x86_64.rs":"d31db31630289c85af3339dbe357998a21ca584cbae31607448fe2cf7675a4e1","src/unix/haiku/b32.rs":"a2efdbf7158a6da341e1db9176b0ab193ba88b449616239ed95dced11f54d87b","src/unix/haiku/b64.rs":"ff8115367d3d7d354f792d6176dfaaa26353f57056197b563bf4681f91ff7985","src/unix/haiku/mod.rs":"d7ec086b73db4f72799179627aa6330a513dcf786b06e19c75ff884d1235948e","src/unix/haiku/native.rs":"dbfcbf4954a79d1df2ff58e0590bbcb8c57dfc7a32392aa73ee4726b66bd6cc8","src/unix/haiku/x86_64.rs":"3ec3aeeb7ed208b8916f3e32d42bfd085ff5e16936a1a35d9a52789f043b7237","src/unix/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/unix/hermit/mod.rs":"a1494a0bddf301cceb0d9b8529a84b5882fe855ceae77a1c4e8d6034e705e26c","src/unix/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/unix/linux_like/android/b32/arm.rs":"ce582de7e983a33d3bfad13075c53aac9016cee35f06ad8653ee9072c3ec2564","src/unix/linux_like/android/b32/mod.rs":"7c173e0375119bf06a3081652faede95e5bcd6858e7576b7533d037978737c8f","src/unix/linux_like/android/b32/x86/align.rs":"812914e4241df82e32b12375ca3374615dc3a4bdd4cf31f0423c5815320c0dab","src/unix/linux_like/android/b32/x86/mod.rs":"e6d107efbcd37b5b85dfa18f683300cbf768ffa0237997a9fa52b184a53323ac","src/unix/linux_like/android/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/android/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/android/b64/aarch64/mod.rs":"171f8c37a2d2e45065bd3547dfcec70b02aa3da34cd99d259d150c753f620846","src/unix/linux_like/android/b64/mod.rs":"71e4fcbe952bfa4a5f9022f3972e906917b38f729b9d8ef57cd5d179104894ac","src/unix/linux_like/android/b64/riscv64/align.rs":"0bf138f84e5327d8339bcd4adf071a6832b516445e597552c82bbd881095e3a8","src/unix/linux_like/android/b64/riscv64/mod.rs":"19d4bf2237c47127eba9144e0b82e995bc079315e719179a91813b0ae7b0e49d","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"4ec2de11a9b65c4325b7b991f0b99a414975e0e61ba8668caca5d921e9b314d1","src/unix/linux_like/android/mod.rs":"0fd148ab2c1d08817b81345b579492b54ac4376647ade089ce1d7cfea6b365fd","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/mod.rs":"712c52856ee323b8057b9452e4ab484a0e652581a530b67c3db25e819919d718","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"87401c80ff504def5cd4309a53a63fdd481642980b9daaa7fee0164a807c2c61","src/unix/linux_like/linux/arch/generic/mod.rs":"778742250aa456cb94efe67a4f8d0213827d90ab74eb5074f9afb9a30e6ea71c","src/unix/linux_like/linux/arch/mips/mod.rs":"60ace1dd76aa88d6b3b5e52fef4bec7881d452780dfff635474067b512e03df1","src/unix/linux_like/linux/arch/mod.rs":"466a29622e47c6c7f1500682b2eb17f5566dd81b322cd6348f0fdd355cec593a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"bef6b7af9e5e2b4e5545c9c7e3e23a8b743277a0ed95853e7eddc38e44299f02","src/unix/linux_like/linux/arch/sparc/mod.rs":"91593ec0440f1dd8f8e612028f432c44c14089286e2aca50e10511ab942db8c3","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"6ec0eb3ee93f7ae99fd714b4deabfb5e97fbcefd8c26f5a45fb8e7150899cdeb","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"9ab3e97b579a9122690cd01026e14528862860346b700aafbb755a7e04054f7f","src/unix/linux_like/linux/gnu/b32/m68k/align.rs":"8faa92f77a9232c035418d45331774e64a9a841d99c91791570a203bf2b45bcb","src/unix/linux_like/linux/gnu/b32/m68k/mod.rs":"6aab7f1b864e9691d14aa7d389f717c4077b8eed72a7f11e3b8c7fef245e4046","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"6b9a5dac6f937ddc1453e808e3c43502c87143332df9e43ac64fb8b1eda6c116","src/unix/linux_like/linux/gnu/b32/mod.rs":"caade9dc8b7179711102da342819bdf330c42c796b4587d0ed419550dab2e9ad","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"5c5d90326b54b57b98eff4745fe7a3fb02f053b2dc782241a73e807b491936a3","src/unix/linux_like/linux/gnu/b32/riscv32/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"491a9a97cf712985b75d3ad714691ef60898d88c78bc386a6917de0a6774cc26","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"80894eece66e9348f45d1b07ad37c757ea694bbd10ed49d3f920b34e9f51a9a3","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"c703cc5e9de2dc31d9e5831bfb6f354d6e3518b2ae02263f68a9a70f1c0167e2","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"ea39d5fd8ca5a71314127d1e1f542bca34ac566eac9a95662076d91ea4bee548","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"bf4611b737813deef6787babf6c01698605f3b75482269b8546318667bc68e29","src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"11a950697fdda0258c6e37c6b13993348c8de4134105ed4faa79358e53175072","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"d7be998105fc2f6248b7fdfcedb5a0519122d28625fcfd5dccf72617fb30c45e","src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs":"060aa33cc737966c691aab8511c5c5729e551458ce18d0e284e0d45f39beeb60","src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs":"18edada8aa5d4127d9aa1bd81c62b5a4209f1efd8b2b2631e801c9e855ab1480","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"628c410b9aaec3c8f43838a28616b577a1d6de60a9799b09bb884d80281f96eb","src/unix/linux_like/linux/gnu/b64/mod.rs":"3c6555f30a7a8852757b31a542ea73fb6a16a6e27e838397e819278ad56e57a4","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"c778a136f06c2ffeacea19fa14ce79b828f91b67a002dec5ce87289bae36234e","src/unix/linux_like/linux/gnu/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"c8f07efc5ddd5d874f1ebc329cd6907818d132ac3e30f4f2a4b04be3fb388551","src/unix/linux_like/linux/gnu/b64/s390x.rs":"a2fd9277c2dcf76f7a16a3bcca745d5a9932c765c0dc2feb31c3641be25eb0aa","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"e8047e9966a2b90063e0151a0278c54885e7b323286cf5ab55cbaf151fc772d3","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"62e822478356db4a73b6bbd1b36d825b893939ab4b308ec11b0578bcc4b49769","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"891e595d33714b9883b92f0554d1d361fba2b6c3f6cac09a288252f44c6ec667","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"38f74ce15d9662ce4818815a2b87be1618d5e45f190f7e4db84ff3285b4421fb","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"b20218a11364a6dec87f96d6c0d8b19e660697ab09ad5ee0e9b3a9dafedaaebb","src/unix/linux_like/linux/gnu/mod.rs":"a105e27dac14401935ad2acb60618c0d0c078f65d5bc06c92940d6ab93659b96","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"657a86280094d5ce31e1f85d116c95637cb994baeb724b78dcbd7684b9be1b96","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"f5b217a93f99c2852f7fd1459f529798372fa7df84ee0cfd3d8cdd5b2021b8cf","src/unix/linux_like/linux/musl/b32/hexagon.rs":"226a8b64ce9c75abbbee6d2dceb0b44f7b6c750c4102ebd4d015194afee6666e","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"16f614dd59695497a01b542deacd1669335678bdd0b14d16dde482fb5c4e02f4","src/unix/linux_like/linux/musl/b32/mod.rs":"31677597fd9544c4b1ec1477628288f6273fabbc06e38f33da862ad55f019ce1","src/unix/linux_like/linux/musl/b32/powerpc.rs":"69e3ab4471f876055215a7fccabe514e69299ecfe2fa95d989e4d799e03f43e9","src/unix/linux_like/linux/musl/b32/riscv32/align.rs":"efd2accf33b87de7c7547903359a5da896edc33cd6c719552c7474b60d4a5d48","src/unix/linux_like/linux/musl/b32/riscv32/mod.rs":"7b067c7989a80e35daa9987af799d97dd1fb3df71ef82285137f51fbad2354d9","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"de632ac323bd2bb4f83d4826d6eb7e29d4b0e6293aa0c4cb9c99ef0fcabc71b7","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"6ba32725d24d7d8e6aa111f3b57aafa318f83b606abe96561329151829821133","src/unix/linux_like/linux/musl/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"31e75179cbb4e26425b3f5b052e358f593153da662884655e60801d852e55dc2","src/unix/linux_like/linux/musl/b64/mips64.rs":"9a5d29f666332bb056d0e2951e9de989aa1dc016075f009db3f2f628e0cdda8c","src/unix/linux_like/linux/musl/b64/mod.rs":"884243eb5af7df963d858d5baf47e622b45f04e0ae701728b134e986191b614b","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"e77f4cf5d65320023043e4354725397f6b079c1b7b6b3cef2c3293350b46b303","src/unix/linux_like/linux/musl/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/musl/b64/riscv64/mod.rs":"a80b1813148dec8bc396c02638978c0b4e5e040edafd56d98f8683fe2ae51ab5","src/unix/linux_like/linux/musl/b64/s390x.rs":"80a92e54e47016d051c7bd55bee9580cbedd298164199d71a67d49167e744432","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"77309276ad7a42cbe59ca381f23590b7a143aded05555b34a5b307b808cbca6e","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"032863c74d3ca73cb75483218f9bd774ae1ae7d3646d2ffb21e4cc7d4b5e0e3d","src/unix/linux_like/linux/musl/lfs64.rs":"3e4fb381f3a0756520bde0f1692d4fa45e4ae8133bf7d7c64b0e3fdd512f235f","src/unix/linux_like/linux/musl/mod.rs":"f79e4d7bef14f422c6a77f1573ff503a82305bfa5ac3e4c6f571c09212b75620","src/unix/linux_like/linux/no_align.rs":"1a754a4af299894a79835aa092d8322d301179e2b20609defd6bb4bc880e6b4a","src/unix/linux_like/linux/non_exhaustive.rs":"181a05bf94fdb911db83ce793b993bd6548a4115b306a7ef3c10f745a8fea3e9","src/unix/linux_like/linux/uclibc/align.rs":"9ed16138d8e439bd90930845a65eafa7ebd67366e6bf633936d44014f6e4c959","src/unix/linux_like/linux/uclibc/arm/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/arm/mod.rs":"50288ff9e411ab0966da24838f2c2a5618021bc19c422a04f577b2979ef4081e","src/unix/linux_like/linux/uclibc/arm/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips32/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs":"d0c4434e2bf813372c418a8f516c706cdccc9f7be2f0921b2207b0afdb66fe81","src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips64/align.rs":"a7bdcb18a37a2d91e64d5fad83ea3edc78f5412adb28f77ab077dbb26dd08b2d","src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs":"3f38ee6a4690b9d7594be20d216467a34d955f7653c2c8ce1e6147daeb53f1e0","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"a048fce1c2d9b1ad57305642e8ad05ca0f0c7e4753267a2e2d6b4fee5db3b072","src/unix/linux_like/linux/uclibc/mod.rs":"1c3d25cddcfefa2bd17bdc81550826be31a08eef235e13f825f169a5029c8bca","src/unix/linux_like/linux/uclibc/no_align.rs":"3f28637046524618adaa1012e26cb7ffe94b9396e6b518cccdc69d59f274d709","src/unix/linux_like/linux/uclibc/x86_64/l4re.rs":"024eba5753e852dbdd212427351affe7e83f9916c1864bce414d7aa2618f192e","src/unix/linux_like/linux/uclibc/x86_64/mod.rs":"196d03affbefb85716937c15904831e731eb222ee906e05e42102d639a8152ea","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"640f1fd760d2fb61f0a3af5b1e9b43a69d706588759d61d2f7ee3b83cc972854","src/unix/mod.rs":"22bebe5c76ea2ff9e7a2aa38e13d6466800d04ef799e2ba8253864a72c314444","src/unix/newlib/aarch64/mod.rs":"bac93836a9a57b2c710f32f852e92a4d11ad6759ab0fb6ad33e71d60e53278af","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"cbba6b3e957eceb496806e60de8725a23ff3fa0015983b4b4fa27b233732b526","src/unix/newlib/espidf/mod.rs":"816f235f4aa4baabba7f2606b31d0fdb03988c52194c966728de8690bf17299d","src/unix/newlib/generic.rs":"eab066d9f0a0f3eb53cc1073d01496bba0110989e1f6a59838afd19f870cd599","src/unix/newlib/horizon/mod.rs":"7cc5cc120437421db139bfa6a90b18168cd3070bdd0f5be96d40fe4c996f3ca1","src/unix/newlib/mod.rs":"9e36de3fd78e10cb6b9a59dc5ebe5a1b44a63ccb91433bb33653fb30d0c303c6","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"0202ffd57caf75b6afa2c9717750ffb96e375ac33df0ae9609a3f831be393b67","src/unix/newlib/vita/mod.rs":"68e0ce186b44e0b3031eb824710e7454dc2a9df98db98120840c3c6f4d885871","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/nto/aarch64.rs":"4709c9afdc8d583be876598e7c238499ee3e8da5bd2baa614d9c7dd414851555","src/unix/nto/mod.rs":"8b8f5d0e5251f5385849c554629e9320c0f7ddf37078a458cc8767a9214392e9","src/unix/nto/neutrino.rs":"62198d95ccc0fe7ece6f9d5c0b29fc22303ef458886efb5e09aad524eca2ab7b","src/unix/nto/x86_64.rs":"a3e18e93c2999da1cd7a6f748a4b60c07aefb73d8ea2aafec19a84cfb040bc8e","src/unix/redox/mod.rs":"73658b0d28c82a122875aa2b45c489834f4de58c378add7932bbaf3ffb2ae789","src/unix/solarish/compat.rs":"00f1ee3faec9da69204e42f025f6735dd13d894071a154425dcc43ecbdd06e7f","src/unix/solarish/illumos.rs":"cd93c2d84722bbf9933a92842a8998eb0b2afc962f50bc2546ad127b82809fa7","src/unix/solarish/mod.rs":"55ce4624745e31ad226b47fde177a46176a89da3fa5030663673a115102471f9","src/unix/solarish/solaris.rs":"41b350a89ddf01cd12a10f93640f92be53be0b0d976021cdc08da17bf3e72edf","src/unix/solarish/x86.rs":"e86e806df0caed72765040eaa2f3c883198d1aa91508540adf9b7008c77f522e","src/unix/solarish/x86_64.rs":"ec2b01f194eb8a6a27133c57681da195a949e03098f3ea1e847227a9c09ef5fc","src/unix/solarish/x86_common.rs":"ac869d9c3c95645c22460468391eb1982023c3a8e02b9e06a72e3aef3d5f1eac","src/vxworks/aarch64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/arm.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/mod.rs":"e4edcbcf43a325e738c9465507594d0c87abf3f0e2b9b046c1425f8d44bdad0f","src/vxworks/powerpc.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/powerpc64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/x86.rs":"552f007f38317620b23889cb7c49d1d115841252439060122f52f434fbc6e5ba","src/vxworks/x86_64.rs":"018d92be3ad628a129eff9f2f5dfbc0883d8b8e5f2fa917b900a7f98ed6b514a","src/wasi.rs":"09ee3b3348b212b050f6ca8ae008a28679ea44a375674307a4e7c9ca0d3ed7d5","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"a9a95e9ebc0102c334650607351d4d4dbaff0eaf7730eed1c8020d20e9bbebfd","src/windows/msvc/mod.rs":"c068271e00fca6b62bc4bf44bcf142cfc38caeded9b6c4e01d1ceef3ccf986f4","src/xous.rs":"eb0675f25ba01f73072d2b70907fb8abb1148facefe5a20756c49250f3d65fae","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"} \ No newline at end of file diff --git a/src/rust/vendor/libc-0.2.146/CONTRIBUTING.md b/src/rust/vendor/libc-0.2.146/CONTRIBUTING.md new file mode 100644 index 000000000..8c551dbdb --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/CONTRIBUTING.md @@ -0,0 +1,93 @@ +# Contributing to `libc` + +Welcome! If you are reading this document, it means you are interested in contributing +to the `libc` crate. + +## Adding an API + +Want to use an API which currently isn't bound in `libc`? It's quite easy to add +one! + +The internal structure of this crate is designed to minimize the number of +`#[cfg]` attributes in order to easily be able to add new items which apply +to all platforms in the future. As a result, the crate is organized +hierarchically based on platform. Each module has a number of `#[cfg]`'d +children, but only one is ever actually compiled. Each module then reexports all +the contents of its children. + +This means that for each platform that libc supports, the path from a +leaf module to the root will contain all bindings for the platform in question. +Consequently, this indicates where an API should be added! Adding an API at a +particular level in the hierarchy means that it is supported on all the child +platforms of that level. For example, when adding a Unix API it should be added +to `src/unix/mod.rs`, but when adding a Linux-only API it should be added to +`src/unix/linux_like/linux/mod.rs`. + +If you're not 100% sure at what level of the hierarchy an API should be added +at, fear not! This crate has CI support which tests any binding against all +platforms supported, so you'll see failures if an API is added at the wrong +level or has different signatures across platforms. + +New symbol(s) (i.e. functions, constants etc.) should also be added to the +symbols list(s) found in the `libc-test/semver` directory. These lists keep +track of what symbols are public in the libc crate and ensures they remain +available between changes to the crate. If the new symbol(s) are available on +all supported Unixes it should be added to `unix.txt` list1, +otherwise they should be added to the OS specific list(s). + +With that in mind, the steps for adding a new API are: + +1. Determine where in the module hierarchy your API should be added. +2. Add the API, including adding new symbol(s) to the semver lists. +3. Send a PR to this repo. +4. Wait for CI to pass, fixing errors. +5. Wait for a merge! + +1: Note that this list has nothing to do with any Unix or Posix +standard, it's just a list shared between all OSs that declare `#[cfg(unix)]`. + +## Test before you commit + +We have two automated tests running on [GitHub Actions](https://github.com/rust-lang/libc/actions): + +1. [`libc-test`](https://github.com/gnzlbg/ctest) + - `cd libc-test && cargo test` + - Use the `skip_*()` functions in `build.rs` if you really need a workaround. +2. Style checker + - `rustc ci/style.rs && ./style src` + +## Breaking change policy + +Sometimes an upstream adds a breaking change to their API e.g. removing outdated items, +changing the type signature, etc. And we probably should follow that change to build the +`libc` crate successfully. It's annoying to do the equivalent of semver-major versioning +for each such change. Instead, we mark the item as deprecated and do the actual change +after a certain period. The steps are: + +1. Add `#[deprecated(since = "", note="")]` attribute to the item. + - The `since` field should have a next version of `libc` + (e.g., if the current version is `0.2.1`, it should be `0.2.2`). + - The `note` field should have a reason to deprecate and a tracking issue to call for comments + (e.g., "We consider removing this as the upstream removed it. + If you're using it, please comment on #XXX"). +2. If we don't see any concerns for a while, do the change actually. + +## Supported target policy + +When Rust removes a support for a target, the libc crate also may remove the support anytime. + +## Releasing your change to crates.io + +Now that you've done the amazing job of landing your new API or your new +platform in this crate, the next step is to get that sweet, sweet usage from +crates.io! The only next step is to bump the version of libc and then publish +it. If you'd like to get a release out ASAP you can follow these steps: + +1. Increment the patch version number in `Cargo.toml` and `libc-test/Cargo.toml`. +1. Send a PR to this repository. It should [look like this][example-pr], but it'd + also be nice to fill out the description with a small rationale for the + release (any rationale is ok though!). +1. Once merged, the release will be tagged and published by one of the libc crate + maintainers. + +[example-pr]: https://github.com/rust-lang/libc/pull/2120 diff --git a/src/rust/vendor/libc-0.2.146/Cargo.toml b/src/rust/vendor/libc-0.2.146/Cargo.toml new file mode 100644 index 000000000..4f114eeed --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/Cargo.toml @@ -0,0 +1,64 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +name = "libc" +version = "0.2.146" +authors = ["The Rust Project Developers"] +build = "build.rs" +exclude = [ + "/ci/*", + "/.github/*", + "/.cirrus.yml", + "/triagebot.toml", +] +description = """ +Raw FFI bindings to platform libraries like libc. +""" +homepage = "https://github.com/rust-lang/libc" +documentation = "https://docs.rs/libc/" +readme = "README.md" +keywords = [ + "libc", + "ffi", + "bindings", + "operating", + "system", +] +categories = [ + "external-ffi-bindings", + "no-std", + "os", +] +license = "MIT OR Apache-2.0" +repository = "https://github.com/rust-lang/libc" + +[package.metadata.docs.rs] +features = [ + "const-extern-fn", + "extra_traits", +] + +[dependencies.rustc-std-workspace-core] +version = "1.0.0" +optional = true + +[features] +align = [] +const-extern-fn = [] +default = ["std"] +extra_traits = [] +rustc-dep-of-std = [ + "align", + "rustc-std-workspace-core", +] +std = [] +use_std = ["std"] diff --git a/src/rust/vendor/libc-0.2.146/LICENSE-APACHE b/src/rust/vendor/libc-0.2.146/LICENSE-APACHE new file mode 100644 index 000000000..1b5ec8b78 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/LICENSE-APACHE @@ -0,0 +1,176 @@ + 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 diff --git a/src/rust/vendor/libc-0.2.146/LICENSE-MIT b/src/rust/vendor/libc-0.2.146/LICENSE-MIT new file mode 100644 index 000000000..78061811c --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/LICENSE-MIT @@ -0,0 +1,25 @@ +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. diff --git a/src/rust/vendor/libc-0.2.146/README.md b/src/rust/vendor/libc-0.2.146/README.md new file mode 100644 index 000000000..43d706d0f --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/README.md @@ -0,0 +1,110 @@ +# libc - Raw FFI bindings to platforms' system libraries + +[![GHA Status]][GitHub Actions] [![Cirrus CI Status]][Cirrus CI] [![Latest Version]][crates.io] [![Documentation]][docs.rs] ![License] + +`libc` provides all of the definitions necessary to easily interoperate with C +code (or "C-like" code) on each of the platforms that Rust supports. This +includes type definitions (e.g. `c_int`), constants (e.g. `EINVAL`) as well as +function headers (e.g. `malloc`). + +This crate exports all underlying platform types, functions, and constants under +the crate root, so all items are accessible as `libc::foo`. The types and values +of all the exported APIs match the platform that libc is compiled for. + +More detailed information about the design of this library can be found in its +[associated RFC][rfc]. + +[rfc]: https://github.com/rust-lang/rfcs/blob/HEAD/text/1291-promote-libc.md + +## Usage + +Add the following to your `Cargo.toml`: + +```toml +[dependencies] +libc = "0.2" +``` + +## Features + +* `std`: by default `libc` links to the standard library. Disable this + feature to remove this dependency and be able to use `libc` in `#![no_std]` + crates. + +* `extra_traits`: all `struct`s implemented in `libc` are `Copy` and `Clone`. + This feature derives `Debug`, `Eq`, `Hash`, and `PartialEq`. + +* `const-extern-fn`: Changes some `extern fn`s into `const extern fn`s. + If you use Rust >= 1.62, this feature is implicitly enabled. + Otherwise it requires a nightly rustc. + +* **deprecated**: `use_std` is deprecated, and is equivalent to `std`. + +## Rust version support + +The minimum supported Rust toolchain version is currently **Rust 1.13.0**. +(libc does not currently have any policy regarding changes to the minimum +supported Rust version; such policy is a work in progress.) APIs requiring +newer Rust features are only available on newer Rust toolchains: + +| Feature | Version | +|----------------------|---------| +| `union` | 1.19.0 | +| `const mem::size_of` | 1.24.0 | +| `repr(align)` | 1.25.0 | +| `extra_traits` | 1.25.0 | +| `core::ffi::c_void` | 1.30.0 | +| `repr(packed(N))` | 1.33.0 | +| `cfg(target_vendor)` | 1.33.0 | +| `const-extern-fn` | 1.62.0 | + +## Platform support + +[Platform-specific documentation (HEAD)][docs.head]. + +See +[`ci/build.sh`](https://github.com/rust-lang/libc/blob/HEAD/ci/build.sh) +for the platforms on which `libc` is guaranteed to build for each Rust +toolchain. The test-matrix at [GitHub Actions] and [Cirrus CI] show the +platforms in which `libc` tests are run. + +

+ +## License + +This project is licensed under either of + +* [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) + ([LICENSE-APACHE](https://github.com/rust-lang/libc/blob/HEAD/LICENSE-APACHE)) + +* [MIT License](https://opensource.org/licenses/MIT) + ([LICENSE-MIT](https://github.com/rust-lang/libc/blob/HEAD/LICENSE-MIT)) + +at your option. + +## Contributing + +We welcome all people who want to contribute. Please see the [contributing +instructions] for more information. + +[contributing instructions]: https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md + +Contributions in any form (issues, pull requests, etc.) to this project +must adhere to Rust's [Code of Conduct]. + +[Code of Conduct]: https://www.rust-lang.org/policies/code-of-conduct + +Unless you explicitly state otherwise, any contribution intentionally submitted +for inclusion in `libc` by you, as defined in the Apache-2.0 license, shall be +dual licensed as above, without any additional terms or conditions. + +[GitHub Actions]: https://github.com/rust-lang/libc/actions +[GHA Status]: https://github.com/rust-lang/libc/workflows/CI/badge.svg +[Cirrus CI]: https://cirrus-ci.com/github/rust-lang/libc +[Cirrus CI Status]: https://api.cirrus-ci.com/github/rust-lang/libc.svg +[crates.io]: https://crates.io/crates/libc +[Latest Version]: https://img.shields.io/crates/v/libc.svg +[Documentation]: https://docs.rs/libc/badge.svg +[docs.rs]: https://docs.rs/libc +[License]: https://img.shields.io/crates/l/libc.svg +[docs.head]: https://rust-lang.github.io/libc/#platform-specific-documentation diff --git a/src/rust/vendor/libc-0.2.146/build.rs b/src/rust/vendor/libc-0.2.146/build.rs new file mode 100644 index 000000000..79bec0ea4 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/build.rs @@ -0,0 +1,246 @@ +use std::env; +use std::process::Command; +use std::str; +use std::string::String; + +// List of cfgs this build script is allowed to set. The list is needed to support check-cfg, as we +// need to know all the possible cfgs that this script will set. If you need to set another cfg +// make sure to add it to this list as well. +const ALLOWED_CFGS: &'static [&'static str] = &[ + "freebsd10", + "freebsd11", + "freebsd12", + "freebsd13", + "freebsd14", + "libc_align", + "libc_cfg_target_vendor", + "libc_const_extern_fn", + "libc_const_extern_fn_unstable", + "libc_const_size_of", + "libc_core_cvoid", + "libc_deny_warnings", + "libc_int128", + "libc_long_array", + "libc_non_exhaustive", + "libc_packedN", + "libc_priv_mod_use", + "libc_ptr_addr_of", + "libc_thread_local", + "libc_underscore_const_names", + "libc_union", +]; + +// Extra values to allow for check-cfg. +const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[ + ("target_os", &["switch", "aix", "ohos"]), + ("target_env", &["illumos", "wasi", "aix", "ohos"]), + ("target_arch", &["loongarch64"]), +]; + +fn main() { + // Avoid unnecessary re-building. + println!("cargo:rerun-if-changed=build.rs"); + + let (rustc_minor_ver, is_nightly) = rustc_minor_nightly(); + let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); + let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok(); + let const_extern_fn_cargo_feature = env::var("CARGO_FEATURE_CONST_EXTERN_FN").is_ok(); + let libc_ci = env::var("LIBC_CI").is_ok(); + let libc_check_cfg = env::var("LIBC_CHECK_CFG").is_ok(); + + if env::var("CARGO_FEATURE_USE_STD").is_ok() { + println!( + "cargo:warning=\"libc's use_std cargo feature is deprecated since libc 0.2.55; \ + please consider using the `std` cargo feature instead\"" + ); + } + + // The ABI of libc used by libstd is backward compatible with FreeBSD 10. + // The ABI of libc from crates.io is backward compatible with FreeBSD 11. + // + // On CI, we detect the actual FreeBSD version and match its ABI exactly, + // running tests to ensure that the ABI is correct. + match which_freebsd() { + Some(10) if libc_ci || rustc_dep_of_std => set_cfg("freebsd10"), + Some(11) if libc_ci => set_cfg("freebsd11"), + Some(12) if libc_ci => set_cfg("freebsd12"), + Some(13) if libc_ci => set_cfg("freebsd13"), + Some(14) if libc_ci => set_cfg("freebsd14"), + Some(_) | None => set_cfg("freebsd11"), + } + + // On CI: deny all warnings + if libc_ci { + set_cfg("libc_deny_warnings"); + } + + // Rust >= 1.15 supports private module use: + if rustc_minor_ver >= 15 || rustc_dep_of_std { + set_cfg("libc_priv_mod_use"); + } + + // Rust >= 1.19 supports unions: + if rustc_minor_ver >= 19 || rustc_dep_of_std { + set_cfg("libc_union"); + } + + // Rust >= 1.24 supports const mem::size_of: + if rustc_minor_ver >= 24 || rustc_dep_of_std { + set_cfg("libc_const_size_of"); + } + + // Rust >= 1.25 supports repr(align): + if rustc_minor_ver >= 25 || rustc_dep_of_std || align_cargo_feature { + set_cfg("libc_align"); + } + + // Rust >= 1.26 supports i128 and u128: + if rustc_minor_ver >= 26 || rustc_dep_of_std { + set_cfg("libc_int128"); + } + + // Rust >= 1.30 supports `core::ffi::c_void`, so libc can just re-export it. + // Otherwise, it defines an incompatible type to retaining + // backwards-compatibility. + if rustc_minor_ver >= 30 || rustc_dep_of_std { + set_cfg("libc_core_cvoid"); + } + + // Rust >= 1.33 supports repr(packed(N)) and cfg(target_vendor). + if rustc_minor_ver >= 33 || rustc_dep_of_std { + set_cfg("libc_packedN"); + set_cfg("libc_cfg_target_vendor"); + } + + // Rust >= 1.40 supports #[non_exhaustive]. + if rustc_minor_ver >= 40 || rustc_dep_of_std { + set_cfg("libc_non_exhaustive"); + } + + // Rust >= 1.47 supports long array: + if rustc_minor_ver >= 47 || rustc_dep_of_std { + set_cfg("libc_long_array"); + } + + if rustc_minor_ver >= 51 || rustc_dep_of_std { + set_cfg("libc_ptr_addr_of"); + } + + // Rust >= 1.37.0 allows underscores as anonymous constant names. + if rustc_minor_ver >= 37 || rustc_dep_of_std { + set_cfg("libc_underscore_const_names"); + } + + // #[thread_local] is currently unstable + if rustc_dep_of_std { + set_cfg("libc_thread_local"); + } + + // Rust >= 1.62.0 allows to use `const_extern_fn` for "Rust" and "C". + if rustc_minor_ver >= 62 { + set_cfg("libc_const_extern_fn"); + } else { + // Rust < 1.62.0 requires a crate feature and feature gate. + if const_extern_fn_cargo_feature { + if !is_nightly || rustc_minor_ver < 40 { + panic!("const-extern-fn requires a nightly compiler >= 1.40"); + } + set_cfg("libc_const_extern_fn_unstable"); + set_cfg("libc_const_extern_fn"); + } + } + + // check-cfg is a nightly cargo/rustc feature to warn when unknown cfgs are used across the + // codebase. libc can configure it if the appropriate environment variable is passed. Since + // rust-lang/rust enforces it, this is useful when using a custom libc fork there. + // + // https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg + if libc_check_cfg { + for cfg in ALLOWED_CFGS { + println!("cargo:rustc-check-cfg=values({})", cfg); + } + for &(name, values) in CHECK_CFG_EXTRA { + let values = values.join("\",\""); + println!("cargo:rustc-check-cfg=values({},\"{}\")", name, values); + } + } +} + +fn rustc_minor_nightly() -> (u32, bool) { + macro_rules! otry { + ($e:expr) => { + match $e { + Some(e) => e, + None => panic!("Failed to get rustc version"), + } + }; + } + + let rustc = otry!(env::var_os("RUSTC")); + let output = Command::new(rustc) + .arg("--version") + .output() + .ok() + .expect("Failed to get rustc version"); + if !output.status.success() { + panic!( + "failed to run rustc: {}", + String::from_utf8_lossy(output.stderr.as_slice()) + ); + } + + let version = otry!(str::from_utf8(&output.stdout).ok()); + let mut pieces = version.split('.'); + + if pieces.next() != Some("rustc 1") { + panic!("Failed to get rustc version"); + } + + let minor = pieces.next(); + + // If `rustc` was built from a tarball, its version string + // will have neither a git hash nor a commit date + // (e.g. "rustc 1.39.0"). Treat this case as non-nightly, + // since a nightly build should either come from CI + // or a git checkout + let nightly_raw = otry!(pieces.next()).split('-').nth(1); + let nightly = nightly_raw + .map(|raw| raw.starts_with("dev") || raw.starts_with("nightly")) + .unwrap_or(false); + let minor = otry!(otry!(minor).parse().ok()); + + (minor, nightly) +} + +fn which_freebsd() -> Option { + let output = std::process::Command::new("freebsd-version").output().ok(); + if output.is_none() { + return None; + } + let output = output.unwrap(); + if !output.status.success() { + return None; + } + + let stdout = String::from_utf8(output.stdout).ok(); + if stdout.is_none() { + return None; + } + let stdout = stdout.unwrap(); + + match &stdout { + s if s.starts_with("10") => Some(10), + s if s.starts_with("11") => Some(11), + s if s.starts_with("12") => Some(12), + s if s.starts_with("13") => Some(13), + s if s.starts_with("14") => Some(14), + _ => None, + } +} + +fn set_cfg(cfg: &str) { + if !ALLOWED_CFGS.contains(&cfg) { + panic!("trying to set cfg {}, but it is not in ALLOWED_CFGS", cfg); + } + println!("cargo:rustc-cfg={}", cfg); +} diff --git a/src/rust/vendor/libc-0.2.146/rustfmt.toml b/src/rust/vendor/libc-0.2.146/rustfmt.toml new file mode 100644 index 000000000..dc85c9946 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/rustfmt.toml @@ -0,0 +1 @@ +error_on_line_overflow = true diff --git a/src/rust/vendor/libc-0.2.146/src/fixed_width_ints.rs b/src/rust/vendor/libc-0.2.146/src/fixed_width_ints.rs new file mode 100644 index 000000000..999de8f54 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/fixed_width_ints.rs @@ -0,0 +1,99 @@ +//! This module contains type aliases for C's fixed-width integer types . +//! +//! These aliases are deprecated: use the Rust types instead. + +#[deprecated(since = "0.2.55", note = "Use i8 instead.")] +pub type int8_t = i8; +#[deprecated(since = "0.2.55", note = "Use i16 instead.")] +pub type int16_t = i16; +#[deprecated(since = "0.2.55", note = "Use i32 instead.")] +pub type int32_t = i32; +#[deprecated(since = "0.2.55", note = "Use i64 instead.")] +pub type int64_t = i64; +#[deprecated(since = "0.2.55", note = "Use u8 instead.")] +pub type uint8_t = u8; +#[deprecated(since = "0.2.55", note = "Use u16 instead.")] +pub type uint16_t = u16; +#[deprecated(since = "0.2.55", note = "Use u32 instead.")] +pub type uint32_t = u32; +#[deprecated(since = "0.2.55", note = "Use u64 instead.")] +pub type uint64_t = u64; + +cfg_if! { + if #[cfg(all(libc_int128, target_arch = "aarch64", not(target_os = "windows")))] { + // This introduces partial support for FFI with __int128 and + // equivalent types on platforms where Rust's definition is validated + // to match the standard C ABI of that platform. + // + // Rust does not guarantee u128/i128 are sound for FFI, and its + // definitions are in fact known to be incompatible. [0] + // + // However these problems aren't fundamental, and are just platform + // inconsistencies. Specifically at the time of this writing: + // + // * For x64 SysV ABIs (everything but Windows), the types are underaligned. + // * For all Windows ABIs, Microsoft doesn't actually officially define __int128, + // and as a result different implementations don't actually agree on its ABI. + // + // But on the other major aarch64 platforms (android, linux, ios, macos) we have + // validated that rustc has the right ABI for these types. This is important because + // aarch64 uses these types in some fundamental OS types like user_fpsimd_struct, + // which represents saved simd registers. + // + // Any API which uses these types will need to `#[ignore(improper_ctypes)]` + // until the upstream rust issue is resolved, but this at least lets us make + // progress on platforms where this type is important. + // + // The list of supported architectures and OSes is intentionally very restricted, + // as careful work needs to be done to verify that a particular platform + // has a conformant ABI. + // + // [0]: https://github.com/rust-lang/rust/issues/54341 + + /// C `__int128` (a GCC extension that's part of many ABIs) + pub type __int128 = i128; + /// C `unsigned __int128` (a GCC extension that's part of many ABIs) + pub type __uint128 = u128; + /// C __int128_t (alternate name for [__int128][]) + pub type __int128_t = i128; + /// C __uint128_t (alternate name for [__uint128][]) + pub type __uint128_t = u128; + + cfg_if! { + if #[cfg(libc_underscore_const_names)] { + macro_rules! static_assert_eq { + ($a:expr, $b:expr) => { + const _: [(); $a] = [(); $b]; + }; + } + + // NOTE: if you add more platforms to here, you may need to cfg + // these consts. They should always match the platform's values + // for `sizeof(__int128)` and `_Alignof(__int128)`. + const _SIZE_128: usize = 16; + const _ALIGN_128: usize = 16; + + // Since Rust doesn't officially guarantee that these types + // have compatible ABIs, we const assert that these values have the + // known size/align of the target platform's libc. If rustc ever + // tries to regress things, it will cause a compilation error. + // + // This isn't a bullet-proof solution because e.g. it doesn't + // catch the fact that llvm and gcc disagree on how x64 __int128 + // is actually *passed* on the stack (clang underaligns it for + // the same reason that rustc *never* properly aligns it). + static_assert_eq!(core::mem::size_of::<__int128>(), _SIZE_128); + static_assert_eq!(core::mem::align_of::<__int128>(), _ALIGN_128); + + static_assert_eq!(core::mem::size_of::<__uint128>(), _SIZE_128); + static_assert_eq!(core::mem::align_of::<__uint128>(), _ALIGN_128); + + static_assert_eq!(core::mem::size_of::<__int128_t>(), _SIZE_128); + static_assert_eq!(core::mem::align_of::<__int128_t>(), _ALIGN_128); + + static_assert_eq!(core::mem::size_of::<__uint128_t>(), _SIZE_128); + static_assert_eq!(core::mem::align_of::<__uint128_t>(), _ALIGN_128); + } + } + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/fuchsia/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/fuchsia/aarch64.rs new file mode 100644 index 000000000..33e3934d6 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/fuchsia/aarch64.rs @@ -0,0 +1,67 @@ +pub type c_char = u8; +pub type __u64 = ::c_ulonglong; +pub type wchar_t = u32; +pub type nlink_t = ::c_ulong; +pub type blksize_t = ::c_long; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad0: ::c_ulong, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + __pad1: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_uint; 2], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad0: ::c_ulong, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + __pad1: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_uint; 2], + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong, + } +} + +// From https://cs.opensource.google/fuchsia/fuchsia/+/main:zircon/third_party/ulib/musl/include/bits/signal.h;l=20-21;drc=0827b18ab9540c46f8037f407d17ea15a79e9ba7 +pub const MINSIGSTKSZ: ::size_t = 6144; +pub const SIGSTKSZ: ::size_t = 12288; diff --git a/src/rust/vendor/libc-0.2.146/src/fuchsia/align.rs b/src/rust/vendor/libc-0.2.146/src/fuchsia/align.rs new file mode 100644 index 000000000..3409bf0c6 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/fuchsia/align.rs @@ -0,0 +1,142 @@ +macro_rules! expand_align { + () => { + s! { + #[cfg_attr( + any( + target_pointer_width = "32", + target_arch = "x86_64" + ), + repr(align(4)))] + #[cfg_attr( + not(any( + target_pointer_width = "32", + target_arch = "x86_64" + )), + repr(align(8)))] + pub struct pthread_mutexattr_t { + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + pub struct pthread_rwlockattr_t { + size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], + } + + #[repr(align(4))] + pub struct pthread_condattr_t { + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } + } + + s_no_extra_traits! { + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "arm", + target_arch = "x86_64")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "arm", + target_arch = "x86_64"))), + repr(align(8)))] + pub struct pthread_mutex_t { + size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + } + + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "arm", + target_arch = "x86_64")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "arm", + target_arch = "x86_64"))), + repr(align(8)))] + pub struct pthread_rwlock_t { + size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + } + + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + #[cfg_attr(target_arch = "x86", + repr(align(4)))] + #[cfg_attr(not(target_arch = "x86"), + repr(align(8)))] + pub struct pthread_cond_t { + size: [u8; ::__SIZEOF_PTHREAD_COND_T], + } + } + + cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for pthread_cond_t { + fn eq(&self, other: &pthread_cond_t) -> bool { + self.size + .iter() + .zip(other.size.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_cond_t {} + impl ::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_cond_t") + // FIXME: .field("size", &self.size) + .finish() + } + } + impl ::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { + self.size.hash(state); + } + } + + impl PartialEq for pthread_mutex_t { + fn eq(&self, other: &pthread_mutex_t) -> bool { + self.size + .iter() + .zip(other.size.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_mutex_t {} + impl ::fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_mutex_t") + // FIXME: .field("size", &self.size) + .finish() + } + } + impl ::hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { + self.size.hash(state); + } + } + + impl PartialEq for pthread_rwlock_t { + fn eq(&self, other: &pthread_rwlock_t) -> bool { + self.size + .iter() + .zip(other.size.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_rwlock_t {} + impl ::fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_rwlock_t") + // FIXME: .field("size", &self.size) + .finish() + } + } + impl ::hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { + self.size.hash(state); + } + } + } + } + }; +} diff --git a/src/rust/vendor/libc-0.2.146/src/fuchsia/mod.rs b/src/rust/vendor/libc-0.2.146/src/fuchsia/mod.rs new file mode 100644 index 000000000..3e922e766 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/fuchsia/mod.rs @@ -0,0 +1,4300 @@ +//! Definitions found commonly among almost all Unix derivatives +//! +//! More functions and definitions can be found in the more specific modules +//! according to the platform in question. + +// PUB_TYPE + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_int = i32; +pub type c_uint = u32; +pub type c_float = f32; +pub type c_double = f64; +pub type c_longlong = i64; +pub type c_ulonglong = u64; +pub type intmax_t = i64; +pub type uintmax_t = u64; + +pub type locale_t = *mut ::c_void; + +pub type size_t = usize; +pub type ptrdiff_t = isize; +pub type intptr_t = isize; +pub type uintptr_t = usize; +pub type ssize_t = isize; + +pub type pid_t = i32; +pub type uid_t = u32; +pub type gid_t = u32; +pub type in_addr_t = u32; +pub type in_port_t = u16; +pub type sighandler_t = ::size_t; +pub type cc_t = ::c_uchar; +pub type sa_family_t = u16; +pub type pthread_key_t = ::c_uint; +pub type speed_t = ::c_uint; +pub type tcflag_t = ::c_uint; +pub type clockid_t = ::c_int; +pub type key_t = ::c_int; +pub type id_t = ::c_uint; +pub type useconds_t = u32; +pub type dev_t = u64; +pub type socklen_t = u32; +pub type pthread_t = c_ulong; +pub type mode_t = u32; +pub type ino64_t = u64; +pub type off64_t = i64; +pub type blkcnt64_t = i64; +pub type rlim64_t = u64; +pub type mqd_t = ::c_int; +pub type nfds_t = ::c_ulong; +pub type nl_item = ::c_int; +pub type idtype_t = ::c_uint; +pub type loff_t = ::c_longlong; + +pub type __u8 = ::c_uchar; +pub type __u16 = ::c_ushort; +pub type __s16 = ::c_short; +pub type __u32 = ::c_uint; +pub type __s32 = ::c_int; + +pub type Elf32_Half = u16; +pub type Elf32_Word = u32; +pub type Elf32_Off = u32; +pub type Elf32_Addr = u32; + +pub type Elf64_Half = u16; +pub type Elf64_Word = u32; +pub type Elf64_Off = u64; +pub type Elf64_Addr = u64; +pub type Elf64_Xword = u64; + +pub type clock_t = c_long; +pub type time_t = c_long; +pub type suseconds_t = c_long; +pub type ino_t = u64; +pub type off_t = i64; +pub type blkcnt_t = i64; + +pub type shmatt_t = ::c_ulong; +pub type msgqnum_t = ::c_ulong; +pub type msglen_t = ::c_ulong; +pub type fsblkcnt_t = ::c_ulonglong; +pub type fsfilcnt_t = ::c_ulonglong; +pub type rlim_t = ::c_ulonglong; + +pub type c_long = i64; +pub type c_ulong = u64; + +// FIXME: why are these uninhabited types? that seems... wrong? +// Presumably these should be `()` or an `extern type` (when that stabilizes). +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum timezone {} +impl ::Copy for timezone {} +impl ::Clone for timezone { + fn clone(&self) -> timezone { + *self + } +} +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum DIR {} +impl ::Copy for DIR {} +impl ::Clone for DIR { + fn clone(&self) -> DIR { + *self + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum fpos64_t {} // FIXME: fill this out with a struct +impl ::Copy for fpos64_t {} +impl ::Clone for fpos64_t { + fn clone(&self) -> fpos64_t { + *self + } +} + +// PUB_STRUCT + +s! { + pub struct group { + pub gr_name: *mut ::c_char, + pub gr_passwd: *mut ::c_char, + pub gr_gid: ::gid_t, + pub gr_mem: *mut *mut ::c_char, + } + + pub struct utimbuf { + pub actime: time_t, + pub modtime: time_t, + } + + pub struct timeval { + pub tv_sec: time_t, + pub tv_usec: suseconds_t, + } + + pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: ::c_long, + } + + // FIXME: the rlimit and rusage related functions and types don't exist + // within zircon. Are there reasons for keeping them around? + pub struct rlimit { + pub rlim_cur: rlim_t, + pub rlim_max: rlim_t, + } + + pub struct rusage { + pub ru_utime: timeval, + pub ru_stime: timeval, + pub ru_maxrss: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad1: u32, + pub ru_ixrss: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad2: u32, + pub ru_idrss: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad3: u32, + pub ru_isrss: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad4: u32, + pub ru_minflt: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad5: u32, + pub ru_majflt: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad6: u32, + pub ru_nswap: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad7: u32, + pub ru_inblock: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad8: u32, + pub ru_oublock: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad9: u32, + pub ru_msgsnd: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad10: u32, + pub ru_msgrcv: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad11: u32, + pub ru_nsignals: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad12: u32, + pub ru_nvcsw: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad13: u32, + pub ru_nivcsw: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad14: u32, + } + + pub struct in_addr { + pub s_addr: in_addr_t, + } + + pub struct in6_addr { + pub s6_addr: [u8; 16], + } + + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct ip_mreqn { + pub imr_multiaddr: in_addr, + pub imr_address: in_addr, + pub imr_ifindex: ::c_int, + } + + pub struct ipv6_mreq { + pub ipv6mr_multiaddr: in6_addr, + pub ipv6mr_interface: ::c_uint, + } + + pub struct hostent { + pub h_name: *mut ::c_char, + pub h_aliases: *mut *mut ::c_char, + pub h_addrtype: ::c_int, + pub h_length: ::c_int, + pub h_addr_list: *mut *mut ::c_char, + } + + pub struct iovec { + pub iov_base: *mut ::c_void, + pub iov_len: ::size_t, + } + + pub struct pollfd { + pub fd: ::c_int, + pub events: ::c_short, + pub revents: ::c_short, + } + + pub struct winsize { + pub ws_row: ::c_ushort, + pub ws_col: ::c_ushort, + pub ws_xpixel: ::c_ushort, + pub ws_ypixel: ::c_ushort, + } + + pub struct linger { + pub l_onoff: ::c_int, + pub l_linger: ::c_int, + } + + pub struct sigval { + // Actually a union of an int and a void* + pub sival_ptr: *mut ::c_void + } + + // + pub struct itimerval { + pub it_interval: ::timeval, + pub it_value: ::timeval, + } + + // + pub struct tms { + pub tms_utime: ::clock_t, + pub tms_stime: ::clock_t, + pub tms_cutime: ::clock_t, + pub tms_cstime: ::clock_t, + } + + pub struct servent { + pub s_name: *mut ::c_char, + pub s_aliases: *mut *mut ::c_char, + pub s_port: ::c_int, + pub s_proto: *mut ::c_char, + } + + pub struct protoent { + pub p_name: *mut ::c_char, + pub p_aliases: *mut *mut ::c_char, + pub p_proto: ::c_int, + } + + pub struct aiocb { + pub aio_fildes: ::c_int, + pub aio_lio_opcode: ::c_int, + pub aio_reqprio: ::c_int, + pub aio_buf: *mut ::c_void, + pub aio_nbytes: ::size_t, + pub aio_sigevent: ::sigevent, + __td: *mut ::c_void, + __lock: [::c_int; 2], + __err: ::c_int, + __ret: ::ssize_t, + pub aio_offset: off_t, + __next: *mut ::c_void, + __prev: *mut ::c_void, + #[cfg(target_pointer_width = "32")] + __dummy4: [::c_char; 24], + #[cfg(target_pointer_width = "64")] + __dummy4: [::c_char; 16], + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; ::NCCS], + pub __c_ispeed: ::speed_t, + pub __c_ospeed: ::speed_t, + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct ucred { + pub pid: ::pid_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + } + + pub struct sockaddr { + pub sa_family: sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_in { + pub sin_family: sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [u8; 8], + } + + pub struct sockaddr_in6 { + pub sin6_family: sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: socklen_t, + + pub ai_addr: *mut ::sockaddr, + + pub ai_canonname: *mut c_char, + + pub ai_next: *mut addrinfo, + } + + pub struct sockaddr_ll { + pub sll_family: ::c_ushort, + pub sll_protocol: ::c_ushort, + pub sll_ifindex: ::c_int, + pub sll_hatype: ::c_ushort, + pub sll_pkttype: ::c_uchar, + pub sll_halen: ::c_uchar, + pub sll_addr: [::c_uchar; 8] + } + + pub struct fd_set { + fds_bits: [::c_ulong; FD_SETSIZE / ULONG_SIZE], + } + + pub struct tm { + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int, + pub tm_gmtoff: ::c_long, + pub tm_zone: *const ::c_char, + } + + pub struct sched_param { + pub sched_priority: ::c_int, + pub sched_ss_low_priority: ::c_int, + pub sched_ss_repl_period: ::timespec, + pub sched_ss_init_budget: ::timespec, + pub sched_ss_max_repl: ::c_int, + } + + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } + + pub struct epoll_event { + pub events: u32, + pub u64: u64, + } + + pub struct lconv { + pub decimal_point: *mut ::c_char, + pub thousands_sep: *mut ::c_char, + pub grouping: *mut ::c_char, + pub int_curr_symbol: *mut ::c_char, + pub currency_symbol: *mut ::c_char, + pub mon_decimal_point: *mut ::c_char, + pub mon_thousands_sep: *mut ::c_char, + pub mon_grouping: *mut ::c_char, + pub positive_sign: *mut ::c_char, + pub negative_sign: *mut ::c_char, + pub int_frac_digits: ::c_char, + pub frac_digits: ::c_char, + pub p_cs_precedes: ::c_char, + pub p_sep_by_space: ::c_char, + pub n_cs_precedes: ::c_char, + pub n_sep_by_space: ::c_char, + pub p_sign_posn: ::c_char, + pub n_sign_posn: ::c_char, + pub int_p_cs_precedes: ::c_char, + pub int_p_sep_by_space: ::c_char, + pub int_n_cs_precedes: ::c_char, + pub int_n_sep_by_space: ::c_char, + pub int_p_sign_posn: ::c_char, + pub int_n_sign_posn: ::c_char, + } + + pub struct rlimit64 { + pub rlim_cur: rlim64_t, + pub rlim_max: rlim64_t, + } + + pub struct glob_t { + pub gl_pathc: ::size_t, + pub gl_pathv: *mut *mut c_char, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + + __unused1: *mut ::c_void, + __unused2: *mut ::c_void, + __unused3: *mut ::c_void, + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + } + + pub struct ifaddrs { + pub ifa_next: *mut ifaddrs, + pub ifa_name: *mut c_char, + pub ifa_flags: ::c_uint, + pub ifa_addr: *mut ::sockaddr, + pub ifa_netmask: *mut ::sockaddr, + pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union + pub ifa_data: *mut ::c_void + } + + pub struct passwd { + pub pw_name: *mut ::c_char, + pub pw_passwd: *mut ::c_char, + pub pw_uid: ::uid_t, + pub pw_gid: ::gid_t, + pub pw_gecos: *mut ::c_char, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char, + } + + pub struct spwd { + pub sp_namp: *mut ::c_char, + pub sp_pwdp: *mut ::c_char, + pub sp_lstchg: ::c_long, + pub sp_min: ::c_long, + pub sp_max: ::c_long, + pub sp_warn: ::c_long, + pub sp_inact: ::c_long, + pub sp_expire: ::c_long, + pub sp_flag: ::c_ulong, + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + #[cfg(target_endian = "little")] + pub f_fsid: ::c_ulong, + #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))] + __f_unused: ::c_int, + #[cfg(target_endian = "big")] + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct dqblk { + pub dqb_bhardlimit: u64, + pub dqb_bsoftlimit: u64, + pub dqb_curspace: u64, + pub dqb_ihardlimit: u64, + pub dqb_isoftlimit: u64, + pub dqb_curinodes: u64, + pub dqb_btime: u64, + pub dqb_itime: u64, + pub dqb_valid: u32, + } + + pub struct signalfd_siginfo { + pub ssi_signo: u32, + pub ssi_errno: i32, + pub ssi_code: i32, + pub ssi_pid: u32, + pub ssi_uid: u32, + pub ssi_fd: i32, + pub ssi_tid: u32, + pub ssi_band: u32, + pub ssi_overrun: u32, + pub ssi_trapno: u32, + pub ssi_status: i32, + pub ssi_int: i32, + pub ssi_ptr: u64, + pub ssi_utime: u64, + pub ssi_stime: u64, + pub ssi_addr: u64, + pub ssi_addr_lsb: u16, + _pad2: u16, + pub ssi_syscall: i32, + pub ssi_call_addr: u64, + pub ssi_arch: u32, + _pad: [u8; 28], + } + + pub struct itimerspec { + pub it_interval: ::timespec, + pub it_value: ::timespec, + } + + pub struct fsid_t { + __val: [::c_int; 2], + } + + pub struct cpu_set_t { + #[cfg(all(target_pointer_width = "32", + not(target_arch = "x86_64")))] + bits: [u32; 32], + #[cfg(not(all(target_pointer_width = "32", + not(target_arch = "x86_64"))))] + bits: [u64; 16], + } + + pub struct if_nameindex { + pub if_index: ::c_uint, + pub if_name: *mut ::c_char, + } + + // System V IPC + pub struct msginfo { + pub msgpool: ::c_int, + pub msgmap: ::c_int, + pub msgmax: ::c_int, + pub msgmnb: ::c_int, + pub msgmni: ::c_int, + pub msgssz: ::c_int, + pub msgtql: ::c_int, + pub msgseg: ::c_ushort, + } + + pub struct mmsghdr { + pub msg_hdr: ::msghdr, + pub msg_len: ::c_uint, + } + + pub struct sembuf { + pub sem_num: ::c_ushort, + pub sem_op: ::c_short, + pub sem_flg: ::c_short, + } + + pub struct input_event { + pub time: ::timeval, + pub type_: ::__u16, + pub code: ::__u16, + pub value: ::__s32, + } + + pub struct input_id { + pub bustype: ::__u16, + pub vendor: ::__u16, + pub product: ::__u16, + pub version: ::__u16, + } + + pub struct input_absinfo { + pub value: ::__s32, + pub minimum: ::__s32, + pub maximum: ::__s32, + pub fuzz: ::__s32, + pub flat: ::__s32, + pub resolution: ::__s32, + } + + pub struct input_keymap_entry { + pub flags: ::__u8, + pub len: ::__u8, + pub index: ::__u16, + pub keycode: ::__u32, + pub scancode: [::__u8; 32], + } + + pub struct input_mask { + pub type_: ::__u32, + pub codes_size: ::__u32, + pub codes_ptr: ::__u64, + } + + pub struct ff_replay { + pub length: ::__u16, + pub delay: ::__u16, + } + + pub struct ff_trigger { + pub button: ::__u16, + pub interval: ::__u16, + } + + pub struct ff_envelope { + pub attack_length: ::__u16, + pub attack_level: ::__u16, + pub fade_length: ::__u16, + pub fade_level: ::__u16, + } + + pub struct ff_constant_effect { + pub level: ::__s16, + pub envelope: ff_envelope, + } + + pub struct ff_ramp_effect { + pub start_level: ::__s16, + pub end_level: ::__s16, + pub envelope: ff_envelope, + } + + pub struct ff_condition_effect { + pub right_saturation: ::__u16, + pub left_saturation: ::__u16, + + pub right_coeff: ::__s16, + pub left_coeff: ::__s16, + + pub deadband: ::__u16, + pub center: ::__s16, + } + + pub struct ff_periodic_effect { + pub waveform: ::__u16, + pub period: ::__u16, + pub magnitude: ::__s16, + pub offset: ::__s16, + pub phase: ::__u16, + + pub envelope: ff_envelope, + + pub custom_len: ::__u32, + pub custom_data: *mut ::__s16, + } + + pub struct ff_rumble_effect { + pub strong_magnitude: ::__u16, + pub weak_magnitude: ::__u16, + } + + pub struct ff_effect { + pub type_: ::__u16, + pub id: ::__s16, + pub direction: ::__u16, + pub trigger: ff_trigger, + pub replay: ff_replay, + // FIXME this is actually a union + #[cfg(target_pointer_width = "64")] + pub u: [u64; 4], + #[cfg(target_pointer_width = "32")] + pub u: [u32; 7], + } + + pub struct dl_phdr_info { + #[cfg(target_pointer_width = "64")] + pub dlpi_addr: Elf64_Addr, + #[cfg(target_pointer_width = "32")] + pub dlpi_addr: Elf32_Addr, + + pub dlpi_name: *const ::c_char, + + #[cfg(target_pointer_width = "64")] + pub dlpi_phdr: *const Elf64_Phdr, + #[cfg(target_pointer_width = "32")] + pub dlpi_phdr: *const Elf32_Phdr, + + #[cfg(target_pointer_width = "64")] + pub dlpi_phnum: Elf64_Half, + #[cfg(target_pointer_width = "32")] + pub dlpi_phnum: Elf32_Half, + + pub dlpi_adds: ::c_ulonglong, + pub dlpi_subs: ::c_ulonglong, + pub dlpi_tls_modid: ::size_t, + pub dlpi_tls_data: *mut ::c_void, + } + + pub struct Elf32_Phdr { + pub p_type: Elf32_Word, + pub p_offset: Elf32_Off, + pub p_vaddr: Elf32_Addr, + pub p_paddr: Elf32_Addr, + pub p_filesz: Elf32_Word, + pub p_memsz: Elf32_Word, + pub p_flags: Elf32_Word, + pub p_align: Elf32_Word, + } + + pub struct Elf64_Phdr { + pub p_type: Elf64_Word, + pub p_flags: Elf64_Word, + pub p_offset: Elf64_Off, + pub p_vaddr: Elf64_Addr, + pub p_paddr: Elf64_Addr, + pub p_filesz: Elf64_Xword, + pub p_memsz: Elf64_Xword, + pub p_align: Elf64_Xword, + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct pthread_attr_t { + __size: [u64; 7] + } + + pub struct sigset_t { + __val: [::c_ulong; 16], + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::c_ulong, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + pub msg_rtime: ::time_t, + pub msg_ctime: ::time_t, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::c_int, + __pad1: ::c_int, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::socklen_t, + __pad2: ::socklen_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: ::socklen_t, + pub __pad1: ::c_int, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct sem_t { + __val: [::c_int; 8], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct termios2 { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; 19], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, + } + + pub struct in6_pktinfo { + pub ipi6_addr: ::in6_addr, + pub ipi6_ifindex: ::c_uint, + } +} + +s_no_extra_traits! { + pub struct sysinfo { + pub uptime: ::c_ulong, + pub loads: [::c_ulong; 3], + pub totalram: ::c_ulong, + pub freeram: ::c_ulong, + pub sharedram: ::c_ulong, + pub bufferram: ::c_ulong, + pub totalswap: ::c_ulong, + pub freeswap: ::c_ulong, + pub procs: ::c_ushort, + pub pad: ::c_ushort, + pub totalhigh: ::c_ulong, + pub freehigh: ::c_ulong, + pub mem_unit: ::c_uint, + pub __reserved: [::c_char; 256], + } + + pub struct sockaddr_un { + pub sun_family: sa_family_t, + pub sun_path: [::c_char; 108] + } + + pub struct sockaddr_storage { + pub ss_family: sa_family_t, + __ss_pad2: [u8; 128 - 2 - 8], + __ss_align: ::size_t, + } + + pub struct utsname { + pub sysname: [::c_char; 65], + pub nodename: [::c_char; 65], + pub release: [::c_char; 65], + pub version: [::c_char; 65], + pub machine: [::c_char; 65], + pub domainname: [::c_char; 65] + } + + pub struct dirent { + pub d_ino: ::ino_t, + pub d_off: ::off_t, + pub d_reclen: ::c_ushort, + pub d_type: ::c_uchar, + pub d_name: [::c_char; 256], + } + + pub struct dirent64 { + pub d_ino: ::ino64_t, + pub d_off: ::off64_t, + pub d_reclen: ::c_ushort, + pub d_type: ::c_uchar, + pub d_name: [::c_char; 256], + } + + // x32 compatibility + // See https://sourceware.org/bugzilla/show_bug.cgi?id=21279 + pub struct mq_attr { + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub mq_flags: i64, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub mq_maxmsg: i64, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub mq_msgsize: i64, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub mq_curmsgs: i64, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pad: [i64; 4], + + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub mq_flags: ::c_long, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub mq_maxmsg: ::c_long, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub mq_msgsize: ::c_long, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub mq_curmsgs: ::c_long, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pad: [::c_long; 4], + } + + pub struct sockaddr_nl { + pub nl_family: ::sa_family_t, + nl_pad: ::c_ushort, + pub nl_pid: u32, + pub nl_groups: u32 + } + + pub struct sigevent { + pub sigev_value: ::sigval, + pub sigev_signo: ::c_int, + pub sigev_notify: ::c_int, + pub sigev_notify_function: fn(::sigval), + pub sigev_notify_attributes: *mut pthread_attr_t, + pub __pad: [::c_char; 56 - 3 * 8 /* 8 == sizeof(long) */], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for sysinfo { + fn eq(&self, other: &sysinfo) -> bool { + self.uptime == other.uptime + && self.loads == other.loads + && self.totalram == other.totalram + && self.freeram == other.freeram + && self.sharedram == other.sharedram + && self.bufferram == other.bufferram + && self.totalswap == other.totalswap + && self.freeswap == other.freeswap + && self.procs == other.procs + && self.pad == other.pad + && self.totalhigh == other.totalhigh + && self.freehigh == other.freehigh + && self.mem_unit == other.mem_unit + && self + .__reserved + .iter() + .zip(other.__reserved.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for sysinfo {} + impl ::fmt::Debug for sysinfo { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sysinfo") + .field("uptime", &self.uptime) + .field("loads", &self.loads) + .field("totalram", &self.totalram) + .field("freeram", &self.freeram) + .field("sharedram", &self.sharedram) + .field("bufferram", &self.bufferram) + .field("totalswap", &self.totalswap) + .field("freeswap", &self.freeswap) + .field("procs", &self.procs) + .field("pad", &self.pad) + .field("totalhigh", &self.totalhigh) + .field("freehigh", &self.freehigh) + .field("mem_unit", &self.mem_unit) + // FIXME: .field("__reserved", &self.__reserved) + .finish() + } + } + impl ::hash::Hash for sysinfo { + fn hash(&self, state: &mut H) { + self.uptime.hash(state); + self.loads.hash(state); + self.totalram.hash(state); + self.freeram.hash(state); + self.sharedram.hash(state); + self.bufferram.hash(state); + self.totalswap.hash(state); + self.freeswap.hash(state); + self.procs.hash(state); + self.pad.hash(state); + self.totalhigh.hash(state); + self.freehigh.hash(state); + self.mem_unit.hash(state); + self.__reserved.hash(state); + } + } + + impl PartialEq for sockaddr_un { + fn eq(&self, other: &sockaddr_un) -> bool { + self.sun_family == other.sun_family + && self + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for sockaddr_un {} + impl ::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_un") + .field("sun_family", &self.sun_family) + // FIXME: .field("sun_path", &self.sun_path) + .finish() + } + } + impl ::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { + self.sun_family.hash(state); + self.sun_path.hash(state); + } + } + + impl PartialEq for sockaddr_storage { + fn eq(&self, other: &sockaddr_storage) -> bool { + self.ss_family == other.ss_family + && self.__ss_align == other.__ss_align + && self + .__ss_pad2 + .iter() + .zip(other.__ss_pad2.iter()) + .all(|(a, b)| a == b) + } + } + impl Eq for sockaddr_storage {} + impl ::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_storage") + .field("ss_family", &self.ss_family) + .field("__ss_align", &self.__ss_align) + // FIXME: .field("__ss_pad2", &self.__ss_pad2) + .finish() + } + } + impl ::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { + self.ss_family.hash(state); + self.__ss_align.hash(state); + self.__ss_pad2.hash(state); + } + } + + impl PartialEq for utsname { + fn eq(&self, other: &utsname) -> bool { + self.sysname + .iter() + .zip(other.sysname.iter()) + .all(|(a,b)| a == b) + && self + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a,b)| a == b) + && self + .release + .iter() + .zip(other.release.iter()) + .all(|(a,b)| a == b) + && self + .version + .iter() + .zip(other.version.iter()) + .all(|(a,b)| a == b) + && self + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for utsname {} + impl ::fmt::Debug for utsname { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utsname") + // FIXME: .field("sysname", &self.sysname) + // FIXME: .field("nodename", &self.nodename) + // FIXME: .field("release", &self.release) + // FIXME: .field("version", &self.version) + // FIXME: .field("machine", &self.machine) + .finish() + } + } + impl ::hash::Hash for utsname { + fn hash(&self, state: &mut H) { + self.sysname.hash(state); + self.nodename.hash(state); + self.release.hash(state); + self.version.hash(state); + self.machine.hash(state); + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_ino == other.d_ino + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for dirent {} + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_ino", &self.d_ino) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_ino.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for dirent64 { + fn eq(&self, other: &dirent64) -> bool { + self.d_ino == other.d_ino + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for dirent64 {} + impl ::fmt::Debug for dirent64 { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent64") + .field("d_ino", &self.d_ino) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + impl ::hash::Hash for dirent64 { + fn hash(&self, state: &mut H) { + self.d_ino.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for mq_attr { + fn eq(&self, other: &mq_attr) -> bool { + self.mq_flags == other.mq_flags && + self.mq_maxmsg == other.mq_maxmsg && + self.mq_msgsize == other.mq_msgsize && + self.mq_curmsgs == other.mq_curmsgs + } + } + impl Eq for mq_attr {} + impl ::fmt::Debug for mq_attr { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mq_attr") + .field("mq_flags", &self.mq_flags) + .field("mq_maxmsg", &self.mq_maxmsg) + .field("mq_msgsize", &self.mq_msgsize) + .field("mq_curmsgs", &self.mq_curmsgs) + .finish() + } + } + impl ::hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { + self.mq_flags.hash(state); + self.mq_maxmsg.hash(state); + self.mq_msgsize.hash(state); + self.mq_curmsgs.hash(state); + } + } + + impl PartialEq for sockaddr_nl { + fn eq(&self, other: &sockaddr_nl) -> bool { + self.nl_family == other.nl_family && + self.nl_pid == other.nl_pid && + self.nl_groups == other.nl_groups + } + } + impl Eq for sockaddr_nl {} + impl ::fmt::Debug for sockaddr_nl { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_nl") + .field("nl_family", &self.nl_family) + .field("nl_pid", &self.nl_pid) + .field("nl_groups", &self.nl_groups) + .finish() + } + } + impl ::hash::Hash for sockaddr_nl { + fn hash(&self, state: &mut H) { + self.nl_family.hash(state); + self.nl_pid.hash(state); + self.nl_groups.hash(state); + } + } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_value == other.sigev_value + && self.sigev_signo == other.sigev_signo + && self.sigev_notify == other.sigev_notify + && self.sigev_notify_function + == other.sigev_notify_function + && self.sigev_notify_attributes + == other.sigev_notify_attributes + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_value", &self.sigev_value) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_notify", &self.sigev_notify) + .field("sigev_notify_function", &self.sigev_notify_function) + .field("sigev_notify_attributes", + &self.sigev_notify_attributes) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_value.hash(state); + self.sigev_signo.hash(state); + self.sigev_notify.hash(state); + self.sigev_notify_function.hash(state); + self.sigev_notify_attributes.hash(state); + } + } + } +} + +// PUB_CONST + +pub const INT_MIN: c_int = -2147483648; +pub const INT_MAX: c_int = 2147483647; + +pub const SIG_DFL: sighandler_t = 0 as sighandler_t; +pub const SIG_IGN: sighandler_t = 1 as sighandler_t; +pub const SIG_ERR: sighandler_t = !0 as sighandler_t; + +pub const DT_UNKNOWN: u8 = 0; +pub const DT_FIFO: u8 = 1; +pub const DT_CHR: u8 = 2; +pub const DT_DIR: u8 = 4; +pub const DT_BLK: u8 = 6; +pub const DT_REG: u8 = 8; +pub const DT_LNK: u8 = 10; +pub const DT_SOCK: u8 = 12; + +pub const FD_CLOEXEC: ::c_int = 0x1; + +pub const USRQUOTA: ::c_int = 0; +pub const GRPQUOTA: ::c_int = 1; + +pub const SIGIOT: ::c_int = 6; + +pub const S_ISUID: ::c_int = 0x800; +pub const S_ISGID: ::c_int = 0x400; +pub const S_ISVTX: ::c_int = 0x200; + +pub const IF_NAMESIZE: ::size_t = 16; +pub const IFNAMSIZ: ::size_t = IF_NAMESIZE; + +pub const LOG_EMERG: ::c_int = 0; +pub const LOG_ALERT: ::c_int = 1; +pub const LOG_CRIT: ::c_int = 2; +pub const LOG_ERR: ::c_int = 3; +pub const LOG_WARNING: ::c_int = 4; +pub const LOG_NOTICE: ::c_int = 5; +pub const LOG_INFO: ::c_int = 6; +pub const LOG_DEBUG: ::c_int = 7; + +pub const LOG_KERN: ::c_int = 0; +pub const LOG_USER: ::c_int = 1 << 3; +pub const LOG_MAIL: ::c_int = 2 << 3; +pub const LOG_DAEMON: ::c_int = 3 << 3; +pub const LOG_AUTH: ::c_int = 4 << 3; +pub const LOG_SYSLOG: ::c_int = 5 << 3; +pub const LOG_LPR: ::c_int = 6 << 3; +pub const LOG_NEWS: ::c_int = 7 << 3; +pub const LOG_UUCP: ::c_int = 8 << 3; +pub const LOG_LOCAL0: ::c_int = 16 << 3; +pub const LOG_LOCAL1: ::c_int = 17 << 3; +pub const LOG_LOCAL2: ::c_int = 18 << 3; +pub const LOG_LOCAL3: ::c_int = 19 << 3; +pub const LOG_LOCAL4: ::c_int = 20 << 3; +pub const LOG_LOCAL5: ::c_int = 21 << 3; +pub const LOG_LOCAL6: ::c_int = 22 << 3; +pub const LOG_LOCAL7: ::c_int = 23 << 3; + +pub const LOG_PID: ::c_int = 0x01; +pub const LOG_CONS: ::c_int = 0x02; +pub const LOG_ODELAY: ::c_int = 0x04; +pub const LOG_NDELAY: ::c_int = 0x08; +pub const LOG_NOWAIT: ::c_int = 0x10; + +pub const LOG_PRIMASK: ::c_int = 7; +pub const LOG_FACMASK: ::c_int = 0x3f8; + +pub const PRIO_PROCESS: ::c_int = 0; +pub const PRIO_PGRP: ::c_int = 1; +pub const PRIO_USER: ::c_int = 2; + +pub const PRIO_MIN: ::c_int = -20; +pub const PRIO_MAX: ::c_int = 20; + +pub const IPPROTO_ICMP: ::c_int = 1; +pub const IPPROTO_ICMPV6: ::c_int = 58; +pub const IPPROTO_TCP: ::c_int = 6; +pub const IPPROTO_UDP: ::c_int = 17; +pub const IPPROTO_IP: ::c_int = 0; +pub const IPPROTO_IPV6: ::c_int = 41; + +pub const INADDR_LOOPBACK: in_addr_t = 2130706433; +pub const INADDR_ANY: in_addr_t = 0; +pub const INADDR_BROADCAST: in_addr_t = 4294967295; +pub const INADDR_NONE: in_addr_t = 4294967295; + +pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: ::c_int = 0; +pub const RAND_MAX: ::c_int = 2147483647; +pub const EOF: ::c_int = -1; +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; +pub const _IOFBF: ::c_int = 0; +pub const _IONBF: ::c_int = 2; +pub const _IOLBF: ::c_int = 1; + +pub const F_DUPFD: ::c_int = 0; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; + +// Linux-specific fcntls +pub const F_SETLEASE: ::c_int = 1024; +pub const F_GETLEASE: ::c_int = 1025; +pub const F_NOTIFY: ::c_int = 1026; +pub const F_CANCELLK: ::c_int = 1029; +pub const F_DUPFD_CLOEXEC: ::c_int = 1030; +pub const F_SETPIPE_SZ: ::c_int = 1031; +pub const F_GETPIPE_SZ: ::c_int = 1032; +pub const F_ADD_SEALS: ::c_int = 1033; +pub const F_GET_SEALS: ::c_int = 1034; + +pub const F_SEAL_SEAL: ::c_int = 0x0001; +pub const F_SEAL_SHRINK: ::c_int = 0x0002; +pub const F_SEAL_GROW: ::c_int = 0x0004; +pub const F_SEAL_WRITE: ::c_int = 0x0008; + +// FIXME(#235): Include file sealing fcntls once we have a way to verify them. + +pub const SIGTRAP: ::c_int = 5; + +pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; +pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; + +pub const CLOCK_REALTIME: ::clockid_t = 0; +pub const CLOCK_MONOTONIC: ::clockid_t = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; +pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 3; +pub const CLOCK_MONOTONIC_RAW: ::clockid_t = 4; +pub const CLOCK_REALTIME_COARSE: ::clockid_t = 5; +pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = 6; +pub const CLOCK_BOOTTIME: ::clockid_t = 7; +pub const CLOCK_REALTIME_ALARM: ::clockid_t = 8; +pub const CLOCK_BOOTTIME_ALARM: ::clockid_t = 9; +pub const CLOCK_SGI_CYCLE: ::clockid_t = 10; +pub const CLOCK_TAI: ::clockid_t = 11; +pub const TIMER_ABSTIME: ::c_int = 1; + +pub const RLIMIT_CPU: ::c_int = 0; +pub const RLIMIT_FSIZE: ::c_int = 1; +pub const RLIMIT_DATA: ::c_int = 2; +pub const RLIMIT_STACK: ::c_int = 3; +pub const RLIMIT_CORE: ::c_int = 4; +pub const RLIMIT_LOCKS: ::c_int = 10; +pub const RLIMIT_SIGPENDING: ::c_int = 11; +pub const RLIMIT_MSGQUEUE: ::c_int = 12; +pub const RLIMIT_NICE: ::c_int = 13; +pub const RLIMIT_RTPRIO: ::c_int = 14; + +pub const RUSAGE_SELF: ::c_int = 0; + +pub const O_RDONLY: ::c_int = 0; +pub const O_WRONLY: ::c_int = 1; +pub const O_RDWR: ::c_int = 2; + +pub const S_IFIFO: ::mode_t = 4096; +pub const S_IFCHR: ::mode_t = 8192; +pub const S_IFBLK: ::mode_t = 24576; +pub const S_IFDIR: ::mode_t = 16384; +pub const S_IFREG: ::mode_t = 32768; +pub const S_IFLNK: ::mode_t = 40960; +pub const S_IFSOCK: ::mode_t = 49152; +pub const S_IFMT: ::mode_t = 61440; +pub const S_IRWXU: ::mode_t = 448; +pub const S_IXUSR: ::mode_t = 64; +pub const S_IWUSR: ::mode_t = 128; +pub const S_IRUSR: ::mode_t = 256; +pub const S_IRWXG: ::mode_t = 56; +pub const S_IXGRP: ::mode_t = 8; +pub const S_IWGRP: ::mode_t = 16; +pub const S_IRGRP: ::mode_t = 32; +pub const S_IRWXO: ::mode_t = 7; +pub const S_IXOTH: ::mode_t = 1; +pub const S_IWOTH: ::mode_t = 2; +pub const S_IROTH: ::mode_t = 4; +pub const F_OK: ::c_int = 0; +pub const R_OK: ::c_int = 4; +pub const W_OK: ::c_int = 2; +pub const X_OK: ::c_int = 1; +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGABRT: ::c_int = 6; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGSEGV: ::c_int = 11; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; + +pub const PROT_NONE: ::c_int = 0; +pub const PROT_READ: ::c_int = 1; +pub const PROT_WRITE: ::c_int = 2; +pub const PROT_EXEC: ::c_int = 4; + +pub const LC_CTYPE: ::c_int = 0; +pub const LC_NUMERIC: ::c_int = 1; +pub const LC_TIME: ::c_int = 2; +pub const LC_COLLATE: ::c_int = 3; +pub const LC_MONETARY: ::c_int = 4; +pub const LC_MESSAGES: ::c_int = 5; +pub const LC_ALL: ::c_int = 6; +pub const LC_CTYPE_MASK: ::c_int = 1 << LC_CTYPE; +pub const LC_NUMERIC_MASK: ::c_int = 1 << LC_NUMERIC; +pub const LC_TIME_MASK: ::c_int = 1 << LC_TIME; +pub const LC_COLLATE_MASK: ::c_int = 1 << LC_COLLATE; +pub const LC_MONETARY_MASK: ::c_int = 1 << LC_MONETARY; +pub const LC_MESSAGES_MASK: ::c_int = 1 << LC_MESSAGES; +// LC_ALL_MASK defined per platform + +pub const MAP_FILE: ::c_int = 0x0000; +pub const MAP_SHARED: ::c_int = 0x0001; +pub const MAP_PRIVATE: ::c_int = 0x0002; +pub const MAP_FIXED: ::c_int = 0x0010; + +pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; + +// MS_ flags for msync(2) +pub const MS_ASYNC: ::c_int = 0x0001; +pub const MS_INVALIDATE: ::c_int = 0x0002; +pub const MS_SYNC: ::c_int = 0x0004; + +// MS_ flags for mount(2) +pub const MS_RDONLY: ::c_ulong = 0x01; +pub const MS_NOSUID: ::c_ulong = 0x02; +pub const MS_NODEV: ::c_ulong = 0x04; +pub const MS_NOEXEC: ::c_ulong = 0x08; +pub const MS_SYNCHRONOUS: ::c_ulong = 0x10; +pub const MS_REMOUNT: ::c_ulong = 0x20; +pub const MS_MANDLOCK: ::c_ulong = 0x40; +pub const MS_DIRSYNC: ::c_ulong = 0x80; +pub const MS_NOATIME: ::c_ulong = 0x0400; +pub const MS_NODIRATIME: ::c_ulong = 0x0800; +pub const MS_BIND: ::c_ulong = 0x1000; +pub const MS_MOVE: ::c_ulong = 0x2000; +pub const MS_REC: ::c_ulong = 0x4000; +pub const MS_SILENT: ::c_ulong = 0x8000; +pub const MS_POSIXACL: ::c_ulong = 0x010000; +pub const MS_UNBINDABLE: ::c_ulong = 0x020000; +pub const MS_PRIVATE: ::c_ulong = 0x040000; +pub const MS_SLAVE: ::c_ulong = 0x080000; +pub const MS_SHARED: ::c_ulong = 0x100000; +pub const MS_RELATIME: ::c_ulong = 0x200000; +pub const MS_KERNMOUNT: ::c_ulong = 0x400000; +pub const MS_I_VERSION: ::c_ulong = 0x800000; +pub const MS_STRICTATIME: ::c_ulong = 0x1000000; +pub const MS_ACTIVE: ::c_ulong = 0x40000000; +pub const MS_NOUSER: ::c_ulong = 0x80000000; +pub const MS_MGC_VAL: ::c_ulong = 0xc0ed0000; +pub const MS_MGC_MSK: ::c_ulong = 0xffff0000; +pub const MS_RMT_MASK: ::c_ulong = 0x800051; + +pub const EPERM: ::c_int = 1; +pub const ENOENT: ::c_int = 2; +pub const ESRCH: ::c_int = 3; +pub const EINTR: ::c_int = 4; +pub const EIO: ::c_int = 5; +pub const ENXIO: ::c_int = 6; +pub const E2BIG: ::c_int = 7; +pub const ENOEXEC: ::c_int = 8; +pub const EBADF: ::c_int = 9; +pub const ECHILD: ::c_int = 10; +pub const EAGAIN: ::c_int = 11; +pub const ENOMEM: ::c_int = 12; +pub const EACCES: ::c_int = 13; +pub const EFAULT: ::c_int = 14; +pub const ENOTBLK: ::c_int = 15; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const EXDEV: ::c_int = 18; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENFILE: ::c_int = 23; +pub const EMFILE: ::c_int = 24; +pub const ENOTTY: ::c_int = 25; +pub const ETXTBSY: ::c_int = 26; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const ESPIPE: ::c_int = 29; +pub const EROFS: ::c_int = 30; +pub const EMLINK: ::c_int = 31; +pub const EPIPE: ::c_int = 32; +pub const EDOM: ::c_int = 33; +pub const ERANGE: ::c_int = 34; +pub const EWOULDBLOCK: ::c_int = EAGAIN; + +pub const SCM_RIGHTS: ::c_int = 0x01; +pub const SCM_CREDENTIALS: ::c_int = 0x02; + +pub const PROT_GROWSDOWN: ::c_int = 0x1000000; +pub const PROT_GROWSUP: ::c_int = 0x2000000; + +pub const MAP_TYPE: ::c_int = 0x000f; + +pub const MADV_NORMAL: ::c_int = 0; +pub const MADV_RANDOM: ::c_int = 1; +pub const MADV_SEQUENTIAL: ::c_int = 2; +pub const MADV_WILLNEED: ::c_int = 3; +pub const MADV_DONTNEED: ::c_int = 4; +pub const MADV_FREE: ::c_int = 8; +pub const MADV_REMOVE: ::c_int = 9; +pub const MADV_DONTFORK: ::c_int = 10; +pub const MADV_DOFORK: ::c_int = 11; +pub const MADV_MERGEABLE: ::c_int = 12; +pub const MADV_UNMERGEABLE: ::c_int = 13; +pub const MADV_HUGEPAGE: ::c_int = 14; +pub const MADV_NOHUGEPAGE: ::c_int = 15; +pub const MADV_DONTDUMP: ::c_int = 16; +pub const MADV_DODUMP: ::c_int = 17; +pub const MADV_HWPOISON: ::c_int = 100; +pub const MADV_SOFT_OFFLINE: ::c_int = 101; + +pub const IFF_UP: ::c_int = 0x1; +pub const IFF_BROADCAST: ::c_int = 0x2; +pub const IFF_DEBUG: ::c_int = 0x4; +pub const IFF_LOOPBACK: ::c_int = 0x8; +pub const IFF_POINTOPOINT: ::c_int = 0x10; +pub const IFF_NOTRAILERS: ::c_int = 0x20; +pub const IFF_RUNNING: ::c_int = 0x40; +pub const IFF_NOARP: ::c_int = 0x80; +pub const IFF_PROMISC: ::c_int = 0x100; +pub const IFF_ALLMULTI: ::c_int = 0x200; +pub const IFF_MASTER: ::c_int = 0x400; +pub const IFF_SLAVE: ::c_int = 0x800; +pub const IFF_MULTICAST: ::c_int = 0x1000; +pub const IFF_PORTSEL: ::c_int = 0x2000; +pub const IFF_AUTOMEDIA: ::c_int = 0x4000; +pub const IFF_DYNAMIC: ::c_int = 0x8000; +pub const IFF_TUN: ::c_int = 0x0001; +pub const IFF_TAP: ::c_int = 0x0002; +pub const IFF_NO_PI: ::c_int = 0x1000; + +pub const SOL_IP: ::c_int = 0; +pub const SOL_TCP: ::c_int = 6; +pub const SOL_UDP: ::c_int = 17; +pub const SOL_IPV6: ::c_int = 41; +pub const SOL_ICMPV6: ::c_int = 58; +pub const SOL_RAW: ::c_int = 255; +pub const SOL_DECNET: ::c_int = 261; +pub const SOL_X25: ::c_int = 262; +pub const SOL_PACKET: ::c_int = 263; +pub const SOL_ATM: ::c_int = 264; +pub const SOL_AAL: ::c_int = 265; +pub const SOL_IRDA: ::c_int = 266; +pub const SOL_NETBEUI: ::c_int = 267; +pub const SOL_LLC: ::c_int = 268; +pub const SOL_DCCP: ::c_int = 269; +pub const SOL_NETLINK: ::c_int = 270; +pub const SOL_TIPC: ::c_int = 271; + +pub const AF_UNSPEC: ::c_int = 0; +pub const AF_UNIX: ::c_int = 1; +pub const AF_LOCAL: ::c_int = 1; +pub const AF_INET: ::c_int = 2; +pub const AF_AX25: ::c_int = 3; +pub const AF_IPX: ::c_int = 4; +pub const AF_APPLETALK: ::c_int = 5; +pub const AF_NETROM: ::c_int = 6; +pub const AF_BRIDGE: ::c_int = 7; +pub const AF_ATMPVC: ::c_int = 8; +pub const AF_X25: ::c_int = 9; +pub const AF_INET6: ::c_int = 10; +pub const AF_ROSE: ::c_int = 11; +pub const AF_DECnet: ::c_int = 12; +pub const AF_NETBEUI: ::c_int = 13; +pub const AF_SECURITY: ::c_int = 14; +pub const AF_KEY: ::c_int = 15; +pub const AF_NETLINK: ::c_int = 16; +pub const AF_ROUTE: ::c_int = AF_NETLINK; +pub const AF_PACKET: ::c_int = 17; +pub const AF_ASH: ::c_int = 18; +pub const AF_ECONET: ::c_int = 19; +pub const AF_ATMSVC: ::c_int = 20; +pub const AF_RDS: ::c_int = 21; +pub const AF_SNA: ::c_int = 22; +pub const AF_IRDA: ::c_int = 23; +pub const AF_PPPOX: ::c_int = 24; +pub const AF_WANPIPE: ::c_int = 25; +pub const AF_LLC: ::c_int = 26; +pub const AF_CAN: ::c_int = 29; +pub const AF_TIPC: ::c_int = 30; +pub const AF_BLUETOOTH: ::c_int = 31; +pub const AF_IUCV: ::c_int = 32; +pub const AF_RXRPC: ::c_int = 33; +pub const AF_ISDN: ::c_int = 34; +pub const AF_PHONET: ::c_int = 35; +pub const AF_IEEE802154: ::c_int = 36; +pub const AF_CAIF: ::c_int = 37; +pub const AF_ALG: ::c_int = 38; + +pub const PF_UNSPEC: ::c_int = AF_UNSPEC; +pub const PF_UNIX: ::c_int = AF_UNIX; +pub const PF_LOCAL: ::c_int = AF_LOCAL; +pub const PF_INET: ::c_int = AF_INET; +pub const PF_AX25: ::c_int = AF_AX25; +pub const PF_IPX: ::c_int = AF_IPX; +pub const PF_APPLETALK: ::c_int = AF_APPLETALK; +pub const PF_NETROM: ::c_int = AF_NETROM; +pub const PF_BRIDGE: ::c_int = AF_BRIDGE; +pub const PF_ATMPVC: ::c_int = AF_ATMPVC; +pub const PF_X25: ::c_int = AF_X25; +pub const PF_INET6: ::c_int = AF_INET6; +pub const PF_ROSE: ::c_int = AF_ROSE; +pub const PF_DECnet: ::c_int = AF_DECnet; +pub const PF_NETBEUI: ::c_int = AF_NETBEUI; +pub const PF_SECURITY: ::c_int = AF_SECURITY; +pub const PF_KEY: ::c_int = AF_KEY; +pub const PF_NETLINK: ::c_int = AF_NETLINK; +pub const PF_ROUTE: ::c_int = AF_ROUTE; +pub const PF_PACKET: ::c_int = AF_PACKET; +pub const PF_ASH: ::c_int = AF_ASH; +pub const PF_ECONET: ::c_int = AF_ECONET; +pub const PF_ATMSVC: ::c_int = AF_ATMSVC; +pub const PF_RDS: ::c_int = AF_RDS; +pub const PF_SNA: ::c_int = AF_SNA; +pub const PF_IRDA: ::c_int = AF_IRDA; +pub const PF_PPPOX: ::c_int = AF_PPPOX; +pub const PF_WANPIPE: ::c_int = AF_WANPIPE; +pub const PF_LLC: ::c_int = AF_LLC; +pub const PF_CAN: ::c_int = AF_CAN; +pub const PF_TIPC: ::c_int = AF_TIPC; +pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; +pub const PF_IUCV: ::c_int = AF_IUCV; +pub const PF_RXRPC: ::c_int = AF_RXRPC; +pub const PF_ISDN: ::c_int = AF_ISDN; +pub const PF_PHONET: ::c_int = AF_PHONET; +pub const PF_IEEE802154: ::c_int = AF_IEEE802154; +pub const PF_CAIF: ::c_int = AF_CAIF; +pub const PF_ALG: ::c_int = AF_ALG; + +pub const SOMAXCONN: ::c_int = 128; + +pub const MSG_OOB: ::c_int = 1; +pub const MSG_PEEK: ::c_int = 2; +pub const MSG_DONTROUTE: ::c_int = 4; +pub const MSG_CTRUNC: ::c_int = 8; +pub const MSG_TRUNC: ::c_int = 0x20; +pub const MSG_DONTWAIT: ::c_int = 0x40; +pub const MSG_EOR: ::c_int = 0x80; +pub const MSG_WAITALL: ::c_int = 0x100; +pub const MSG_FIN: ::c_int = 0x200; +pub const MSG_SYN: ::c_int = 0x400; +pub const MSG_CONFIRM: ::c_int = 0x800; +pub const MSG_RST: ::c_int = 0x1000; +pub const MSG_ERRQUEUE: ::c_int = 0x2000; +pub const MSG_NOSIGNAL: ::c_int = 0x4000; +pub const MSG_MORE: ::c_int = 0x8000; +pub const MSG_WAITFORONE: ::c_int = 0x10000; +pub const MSG_FASTOPEN: ::c_int = 0x20000000; +pub const MSG_CMSG_CLOEXEC: ::c_int = 0x40000000; + +pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; + +pub const SOCK_RAW: ::c_int = 3; +pub const SOCK_RDM: ::c_int = 4; + +pub const IP_TOS: ::c_int = 1; +pub const IP_TTL: ::c_int = 2; +pub const IP_HDRINCL: ::c_int = 3; +pub const IP_RECVTOS: ::c_int = 13; +pub const IP_FREEBIND: ::c_int = 15; +pub const IP_TRANSPARENT: ::c_int = 19; +pub const IP_MULTICAST_IF: ::c_int = 32; +pub const IP_MULTICAST_TTL: ::c_int = 33; +pub const IP_MULTICAST_LOOP: ::c_int = 34; +pub const IP_ADD_MEMBERSHIP: ::c_int = 35; +pub const IP_DROP_MEMBERSHIP: ::c_int = 36; + +pub const IPV6_UNICAST_HOPS: ::c_int = 16; +pub const IPV6_MULTICAST_IF: ::c_int = 17; +pub const IPV6_MULTICAST_HOPS: ::c_int = 18; +pub const IPV6_MULTICAST_LOOP: ::c_int = 19; +pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; +pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; +pub const IPV6_V6ONLY: ::c_int = 26; +pub const IPV6_RECVPKTINFO: ::c_int = 49; +pub const IPV6_RECVTCLASS: ::c_int = 66; +pub const IPV6_TCLASS: ::c_int = 67; + +pub const TCP_NODELAY: ::c_int = 1; +pub const TCP_MAXSEG: ::c_int = 2; +pub const TCP_CORK: ::c_int = 3; +pub const TCP_KEEPIDLE: ::c_int = 4; +pub const TCP_KEEPINTVL: ::c_int = 5; +pub const TCP_KEEPCNT: ::c_int = 6; +pub const TCP_SYNCNT: ::c_int = 7; +pub const TCP_LINGER2: ::c_int = 8; +pub const TCP_DEFER_ACCEPT: ::c_int = 9; +pub const TCP_WINDOW_CLAMP: ::c_int = 10; +pub const TCP_INFO: ::c_int = 11; +pub const TCP_QUICKACK: ::c_int = 12; +pub const TCP_CONGESTION: ::c_int = 13; + +pub const SO_DEBUG: ::c_int = 1; + +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; + +pub const LOCK_SH: ::c_int = 1; +pub const LOCK_EX: ::c_int = 2; +pub const LOCK_NB: ::c_int = 4; +pub const LOCK_UN: ::c_int = 8; + +pub const SS_ONSTACK: ::c_int = 1; +pub const SS_DISABLE: ::c_int = 2; + +pub const PATH_MAX: ::c_int = 4096; + +pub const FD_SETSIZE: usize = 1024; + +pub const EPOLLIN: ::c_int = 0x1; +pub const EPOLLPRI: ::c_int = 0x2; +pub const EPOLLOUT: ::c_int = 0x4; +pub const EPOLLRDNORM: ::c_int = 0x40; +pub const EPOLLRDBAND: ::c_int = 0x80; +pub const EPOLLWRNORM: ::c_int = 0x100; +pub const EPOLLWRBAND: ::c_int = 0x200; +pub const EPOLLMSG: ::c_int = 0x400; +pub const EPOLLERR: ::c_int = 0x8; +pub const EPOLLHUP: ::c_int = 0x10; +pub const EPOLLET: ::c_int = 0x80000000; + +pub const EPOLL_CTL_ADD: ::c_int = 1; +pub const EPOLL_CTL_MOD: ::c_int = 3; +pub const EPOLL_CTL_DEL: ::c_int = 2; + +pub const MNT_DETACH: ::c_int = 0x2; +pub const MNT_EXPIRE: ::c_int = 0x4; + +pub const Q_GETFMT: ::c_int = 0x800004; +pub const Q_GETINFO: ::c_int = 0x800005; +pub const Q_SETINFO: ::c_int = 0x800006; +pub const QIF_BLIMITS: u32 = 1; +pub const QIF_SPACE: u32 = 2; +pub const QIF_ILIMITS: u32 = 4; +pub const QIF_INODES: u32 = 8; +pub const QIF_BTIME: u32 = 16; +pub const QIF_ITIME: u32 = 32; +pub const QIF_LIMITS: u32 = 5; +pub const QIF_USAGE: u32 = 10; +pub const QIF_TIMES: u32 = 48; +pub const QIF_ALL: u32 = 63; + +pub const MNT_FORCE: ::c_int = 0x1; + +pub const Q_SYNC: ::c_int = 0x800001; +pub const Q_QUOTAON: ::c_int = 0x800002; +pub const Q_QUOTAOFF: ::c_int = 0x800003; +pub const Q_GETQUOTA: ::c_int = 0x800007; +pub const Q_SETQUOTA: ::c_int = 0x800008; + +pub const TCIOFF: ::c_int = 2; +pub const TCION: ::c_int = 3; +pub const TCOOFF: ::c_int = 0; +pub const TCOON: ::c_int = 1; +pub const TCIFLUSH: ::c_int = 0; +pub const TCOFLUSH: ::c_int = 1; +pub const TCIOFLUSH: ::c_int = 2; +pub const NL0: ::c_int = 0x00000000; +pub const NL1: ::c_int = 0x00000100; +pub const TAB0: ::c_int = 0x00000000; +pub const CR0: ::c_int = 0x00000000; +pub const FF0: ::c_int = 0x00000000; +pub const BS0: ::c_int = 0x00000000; +pub const VT0: ::c_int = 0x00000000; +pub const VERASE: usize = 2; +pub const VKILL: usize = 3; +pub const VINTR: usize = 0; +pub const VQUIT: usize = 1; +pub const VLNEXT: usize = 15; +pub const IGNBRK: ::tcflag_t = 0x00000001; +pub const BRKINT: ::tcflag_t = 0x00000002; +pub const IGNPAR: ::tcflag_t = 0x00000004; +pub const PARMRK: ::tcflag_t = 0x00000008; +pub const INPCK: ::tcflag_t = 0x00000010; +pub const ISTRIP: ::tcflag_t = 0x00000020; +pub const INLCR: ::tcflag_t = 0x00000040; +pub const IGNCR: ::tcflag_t = 0x00000080; +pub const ICRNL: ::tcflag_t = 0x00000100; +pub const IXANY: ::tcflag_t = 0x00000800; +pub const IMAXBEL: ::tcflag_t = 0x00002000; +pub const OPOST: ::tcflag_t = 0x1; +pub const CS5: ::tcflag_t = 0x00000000; +pub const CRTSCTS: ::tcflag_t = 0x80000000; +pub const ECHO: ::tcflag_t = 0x00000008; +pub const OCRNL: ::tcflag_t = 0o000010; +pub const ONOCR: ::tcflag_t = 0o000020; +pub const ONLRET: ::tcflag_t = 0o000040; +pub const OFILL: ::tcflag_t = 0o000100; +pub const OFDEL: ::tcflag_t = 0o000200; + +pub const CLONE_VM: ::c_int = 0x100; +pub const CLONE_FS: ::c_int = 0x200; +pub const CLONE_FILES: ::c_int = 0x400; +pub const CLONE_SIGHAND: ::c_int = 0x800; +pub const CLONE_PTRACE: ::c_int = 0x2000; +pub const CLONE_VFORK: ::c_int = 0x4000; +pub const CLONE_PARENT: ::c_int = 0x8000; +pub const CLONE_THREAD: ::c_int = 0x10000; +pub const CLONE_NEWNS: ::c_int = 0x20000; +pub const CLONE_SYSVSEM: ::c_int = 0x40000; +pub const CLONE_SETTLS: ::c_int = 0x80000; +pub const CLONE_PARENT_SETTID: ::c_int = 0x100000; +pub const CLONE_CHILD_CLEARTID: ::c_int = 0x200000; +pub const CLONE_DETACHED: ::c_int = 0x400000; +pub const CLONE_UNTRACED: ::c_int = 0x800000; +pub const CLONE_CHILD_SETTID: ::c_int = 0x01000000; +pub const CLONE_NEWUTS: ::c_int = 0x04000000; +pub const CLONE_NEWIPC: ::c_int = 0x08000000; +pub const CLONE_NEWUSER: ::c_int = 0x10000000; +pub const CLONE_NEWPID: ::c_int = 0x20000000; +pub const CLONE_NEWNET: ::c_int = 0x40000000; +pub const CLONE_IO: ::c_int = 0x80000000; +pub const CLONE_NEWCGROUP: ::c_int = 0x02000000; + +pub const WNOHANG: ::c_int = 0x00000001; +pub const WUNTRACED: ::c_int = 0x00000002; +pub const WSTOPPED: ::c_int = WUNTRACED; +pub const WEXITED: ::c_int = 0x00000004; +pub const WCONTINUED: ::c_int = 0x00000008; +pub const WNOWAIT: ::c_int = 0x01000000; + +// ::Options set using PTRACE_SETOPTIONS. +pub const PTRACE_O_TRACESYSGOOD: ::c_int = 0x00000001; +pub const PTRACE_O_TRACEFORK: ::c_int = 0x00000002; +pub const PTRACE_O_TRACEVFORK: ::c_int = 0x00000004; +pub const PTRACE_O_TRACECLONE: ::c_int = 0x00000008; +pub const PTRACE_O_TRACEEXEC: ::c_int = 0x00000010; +pub const PTRACE_O_TRACEVFORKDONE: ::c_int = 0x00000020; +pub const PTRACE_O_TRACEEXIT: ::c_int = 0x00000040; +pub const PTRACE_O_TRACESECCOMP: ::c_int = 0x00000080; +pub const PTRACE_O_EXITKILL: ::c_int = 0x00100000; +pub const PTRACE_O_SUSPEND_SECCOMP: ::c_int = 0x00200000; +pub const PTRACE_O_MASK: ::c_int = 0x003000ff; + +// Wait extended result codes for the above trace options. +pub const PTRACE_EVENT_FORK: ::c_int = 1; +pub const PTRACE_EVENT_VFORK: ::c_int = 2; +pub const PTRACE_EVENT_CLONE: ::c_int = 3; +pub const PTRACE_EVENT_EXEC: ::c_int = 4; +pub const PTRACE_EVENT_VFORK_DONE: ::c_int = 5; +pub const PTRACE_EVENT_EXIT: ::c_int = 6; +pub const PTRACE_EVENT_SECCOMP: ::c_int = 7; +// PTRACE_EVENT_STOP was added to glibc in 2.26 +// pub const PTRACE_EVENT_STOP: ::c_int = 128; + +pub const __WNOTHREAD: ::c_int = 0x20000000; +pub const __WALL: ::c_int = 0x40000000; +pub const __WCLONE: ::c_int = 0x80000000; + +pub const SPLICE_F_MOVE: ::c_uint = 0x01; +pub const SPLICE_F_NONBLOCK: ::c_uint = 0x02; +pub const SPLICE_F_MORE: ::c_uint = 0x04; +pub const SPLICE_F_GIFT: ::c_uint = 0x08; + +pub const RTLD_LOCAL: ::c_int = 0; +pub const RTLD_LAZY: ::c_int = 1; + +pub const POSIX_FADV_NORMAL: ::c_int = 0; +pub const POSIX_FADV_RANDOM: ::c_int = 1; +pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_FADV_WILLNEED: ::c_int = 3; + +pub const AT_FDCWD: ::c_int = -100; +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x100; +pub const AT_REMOVEDIR: ::c_int = 0x200; +pub const AT_EACCESS: ::c_int = 0x200; +pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; +pub const AT_NO_AUTOMOUNT: ::c_int = 0x800; +pub const AT_EMPTY_PATH: ::c_int = 0x1000; + +pub const LOG_CRON: ::c_int = 9 << 3; +pub const LOG_AUTHPRIV: ::c_int = 10 << 3; +pub const LOG_FTP: ::c_int = 11 << 3; +pub const LOG_PERROR: ::c_int = 0x20; + +pub const PIPE_BUF: usize = 4096; + +pub const SI_LOAD_SHIFT: ::c_uint = 16; + +pub const CLD_EXITED: ::c_int = 1; +pub const CLD_KILLED: ::c_int = 2; +pub const CLD_DUMPED: ::c_int = 3; +pub const CLD_TRAPPED: ::c_int = 4; +pub const CLD_STOPPED: ::c_int = 5; +pub const CLD_CONTINUED: ::c_int = 6; + +pub const SIGEV_SIGNAL: ::c_int = 0; +pub const SIGEV_NONE: ::c_int = 1; +pub const SIGEV_THREAD: ::c_int = 2; + +pub const P_ALL: idtype_t = 0; +pub const P_PID: idtype_t = 1; +pub const P_PGID: idtype_t = 2; + +pub const UTIME_OMIT: c_long = 1073741822; +pub const UTIME_NOW: c_long = 1073741823; + +pub const POLLIN: ::c_short = 0x1; +pub const POLLPRI: ::c_short = 0x2; +pub const POLLOUT: ::c_short = 0x4; +pub const POLLERR: ::c_short = 0x8; +pub const POLLHUP: ::c_short = 0x10; +pub const POLLNVAL: ::c_short = 0x20; +pub const POLLRDNORM: ::c_short = 0x040; +pub const POLLRDBAND: ::c_short = 0x080; + +pub const ABDAY_1: ::nl_item = 0x20000; +pub const ABDAY_2: ::nl_item = 0x20001; +pub const ABDAY_3: ::nl_item = 0x20002; +pub const ABDAY_4: ::nl_item = 0x20003; +pub const ABDAY_5: ::nl_item = 0x20004; +pub const ABDAY_6: ::nl_item = 0x20005; +pub const ABDAY_7: ::nl_item = 0x20006; + +pub const DAY_1: ::nl_item = 0x20007; +pub const DAY_2: ::nl_item = 0x20008; +pub const DAY_3: ::nl_item = 0x20009; +pub const DAY_4: ::nl_item = 0x2000A; +pub const DAY_5: ::nl_item = 0x2000B; +pub const DAY_6: ::nl_item = 0x2000C; +pub const DAY_7: ::nl_item = 0x2000D; + +pub const ABMON_1: ::nl_item = 0x2000E; +pub const ABMON_2: ::nl_item = 0x2000F; +pub const ABMON_3: ::nl_item = 0x20010; +pub const ABMON_4: ::nl_item = 0x20011; +pub const ABMON_5: ::nl_item = 0x20012; +pub const ABMON_6: ::nl_item = 0x20013; +pub const ABMON_7: ::nl_item = 0x20014; +pub const ABMON_8: ::nl_item = 0x20015; +pub const ABMON_9: ::nl_item = 0x20016; +pub const ABMON_10: ::nl_item = 0x20017; +pub const ABMON_11: ::nl_item = 0x20018; +pub const ABMON_12: ::nl_item = 0x20019; + +pub const MON_1: ::nl_item = 0x2001A; +pub const MON_2: ::nl_item = 0x2001B; +pub const MON_3: ::nl_item = 0x2001C; +pub const MON_4: ::nl_item = 0x2001D; +pub const MON_5: ::nl_item = 0x2001E; +pub const MON_6: ::nl_item = 0x2001F; +pub const MON_7: ::nl_item = 0x20020; +pub const MON_8: ::nl_item = 0x20021; +pub const MON_9: ::nl_item = 0x20022; +pub const MON_10: ::nl_item = 0x20023; +pub const MON_11: ::nl_item = 0x20024; +pub const MON_12: ::nl_item = 0x20025; + +pub const AM_STR: ::nl_item = 0x20026; +pub const PM_STR: ::nl_item = 0x20027; + +pub const D_T_FMT: ::nl_item = 0x20028; +pub const D_FMT: ::nl_item = 0x20029; +pub const T_FMT: ::nl_item = 0x2002A; +pub const T_FMT_AMPM: ::nl_item = 0x2002B; + +pub const ERA: ::nl_item = 0x2002C; +pub const ERA_D_FMT: ::nl_item = 0x2002E; +pub const ALT_DIGITS: ::nl_item = 0x2002F; +pub const ERA_D_T_FMT: ::nl_item = 0x20030; +pub const ERA_T_FMT: ::nl_item = 0x20031; + +pub const CODESET: ::nl_item = 14; + +pub const CRNCYSTR: ::nl_item = 0x4000F; + +pub const RUSAGE_THREAD: ::c_int = 1; +pub const RUSAGE_CHILDREN: ::c_int = -1; + +pub const RADIXCHAR: ::nl_item = 0x10000; +pub const THOUSEP: ::nl_item = 0x10001; + +pub const YESEXPR: ::nl_item = 0x50000; +pub const NOEXPR: ::nl_item = 0x50001; +pub const YESSTR: ::nl_item = 0x50002; +pub const NOSTR: ::nl_item = 0x50003; + +pub const FILENAME_MAX: ::c_uint = 4096; +pub const L_tmpnam: ::c_uint = 20; +pub const _PC_LINK_MAX: ::c_int = 0; +pub const _PC_MAX_CANON: ::c_int = 1; +pub const _PC_MAX_INPUT: ::c_int = 2; +pub const _PC_NAME_MAX: ::c_int = 3; +pub const _PC_PATH_MAX: ::c_int = 4; +pub const _PC_PIPE_BUF: ::c_int = 5; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; +pub const _PC_NO_TRUNC: ::c_int = 7; +pub const _PC_VDISABLE: ::c_int = 8; +pub const _PC_SYNC_IO: ::c_int = 9; +pub const _PC_ASYNC_IO: ::c_int = 10; +pub const _PC_PRIO_IO: ::c_int = 11; +pub const _PC_SOCK_MAXBUF: ::c_int = 12; +pub const _PC_FILESIZEBITS: ::c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; +pub const _PC_REC_XFER_ALIGN: ::c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; +pub const _PC_SYMLINK_MAX: ::c_int = 19; +pub const _PC_2_SYMLINKS: ::c_int = 20; + +pub const _SC_ARG_MAX: ::c_int = 0; +pub const _SC_CHILD_MAX: ::c_int = 1; +pub const _SC_CLK_TCK: ::c_int = 2; +pub const _SC_NGROUPS_MAX: ::c_int = 3; +pub const _SC_OPEN_MAX: ::c_int = 4; +pub const _SC_STREAM_MAX: ::c_int = 5; +pub const _SC_TZNAME_MAX: ::c_int = 6; +pub const _SC_JOB_CONTROL: ::c_int = 7; +pub const _SC_SAVED_IDS: ::c_int = 8; +pub const _SC_REALTIME_SIGNALS: ::c_int = 9; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 10; +pub const _SC_TIMERS: ::c_int = 11; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 12; +pub const _SC_PRIORITIZED_IO: ::c_int = 13; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 14; +pub const _SC_FSYNC: ::c_int = 15; +pub const _SC_MAPPED_FILES: ::c_int = 16; +pub const _SC_MEMLOCK: ::c_int = 17; +pub const _SC_MEMLOCK_RANGE: ::c_int = 18; +pub const _SC_MEMORY_PROTECTION: ::c_int = 19; +pub const _SC_MESSAGE_PASSING: ::c_int = 20; +pub const _SC_SEMAPHORES: ::c_int = 21; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 22; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 23; +pub const _SC_AIO_MAX: ::c_int = 24; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 25; +pub const _SC_DELAYTIMER_MAX: ::c_int = 26; +pub const _SC_MQ_OPEN_MAX: ::c_int = 27; +pub const _SC_MQ_PRIO_MAX: ::c_int = 28; +pub const _SC_VERSION: ::c_int = 29; +pub const _SC_PAGESIZE: ::c_int = 30; +pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; +pub const _SC_RTSIG_MAX: ::c_int = 31; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 32; +pub const _SC_SEM_VALUE_MAX: ::c_int = 33; +pub const _SC_SIGQUEUE_MAX: ::c_int = 34; +pub const _SC_TIMER_MAX: ::c_int = 35; +pub const _SC_BC_BASE_MAX: ::c_int = 36; +pub const _SC_BC_DIM_MAX: ::c_int = 37; +pub const _SC_BC_SCALE_MAX: ::c_int = 38; +pub const _SC_BC_STRING_MAX: ::c_int = 39; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 40; +pub const _SC_EXPR_NEST_MAX: ::c_int = 42; +pub const _SC_LINE_MAX: ::c_int = 43; +pub const _SC_RE_DUP_MAX: ::c_int = 44; +pub const _SC_2_VERSION: ::c_int = 46; +pub const _SC_2_C_BIND: ::c_int = 47; +pub const _SC_2_C_DEV: ::c_int = 48; +pub const _SC_2_FORT_DEV: ::c_int = 49; +pub const _SC_2_FORT_RUN: ::c_int = 50; +pub const _SC_2_SW_DEV: ::c_int = 51; +pub const _SC_2_LOCALEDEF: ::c_int = 52; +pub const _SC_UIO_MAXIOV: ::c_int = 60; +pub const _SC_IOV_MAX: ::c_int = 60; +pub const _SC_THREADS: ::c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 68; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 69; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 70; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; +pub const _SC_TTY_NAME_MAX: ::c_int = 72; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 73; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 74; +pub const _SC_THREAD_STACK_MIN: ::c_int = 75; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 82; +pub const _SC_NPROCESSORS_CONF: ::c_int = 83; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 84; +pub const _SC_PHYS_PAGES: ::c_int = 85; +pub const _SC_AVPHYS_PAGES: ::c_int = 86; +pub const _SC_ATEXIT_MAX: ::c_int = 87; +pub const _SC_PASS_MAX: ::c_int = 88; +pub const _SC_XOPEN_VERSION: ::c_int = 89; +pub const _SC_XOPEN_XCU_VERSION: ::c_int = 90; +pub const _SC_XOPEN_UNIX: ::c_int = 91; +pub const _SC_XOPEN_CRYPT: ::c_int = 92; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 93; +pub const _SC_XOPEN_SHM: ::c_int = 94; +pub const _SC_2_CHAR_TERM: ::c_int = 95; +pub const _SC_2_UPE: ::c_int = 97; +pub const _SC_XOPEN_XPG2: ::c_int = 98; +pub const _SC_XOPEN_XPG3: ::c_int = 99; +pub const _SC_XOPEN_XPG4: ::c_int = 100; +pub const _SC_NZERO: ::c_int = 109; +pub const _SC_XBS5_ILP32_OFF32: ::c_int = 125; +pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 126; +pub const _SC_XBS5_LP64_OFF64: ::c_int = 127; +pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 128; +pub const _SC_XOPEN_LEGACY: ::c_int = 129; +pub const _SC_XOPEN_REALTIME: ::c_int = 130; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 131; +pub const _SC_ADVISORY_INFO: ::c_int = 132; +pub const _SC_BARRIERS: ::c_int = 133; +pub const _SC_CLOCK_SELECTION: ::c_int = 137; +pub const _SC_CPUTIME: ::c_int = 138; +pub const _SC_THREAD_CPUTIME: ::c_int = 139; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 149; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 153; +pub const _SC_SPIN_LOCKS: ::c_int = 154; +pub const _SC_REGEXP: ::c_int = 155; +pub const _SC_SHELL: ::c_int = 157; +pub const _SC_SPAWN: ::c_int = 159; +pub const _SC_SPORADIC_SERVER: ::c_int = 160; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 161; +pub const _SC_TIMEOUTS: ::c_int = 164; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 165; +pub const _SC_2_PBS: ::c_int = 168; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 169; +pub const _SC_2_PBS_LOCATE: ::c_int = 170; +pub const _SC_2_PBS_MESSAGE: ::c_int = 171; +pub const _SC_2_PBS_TRACK: ::c_int = 172; +pub const _SC_SYMLOOP_MAX: ::c_int = 173; +pub const _SC_STREAMS: ::c_int = 174; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 175; +pub const _SC_V6_ILP32_OFF32: ::c_int = 176; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 177; +pub const _SC_V6_LP64_OFF64: ::c_int = 178; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 179; +pub const _SC_HOST_NAME_MAX: ::c_int = 180; +pub const _SC_TRACE: ::c_int = 181; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 182; +pub const _SC_TRACE_INHERIT: ::c_int = 183; +pub const _SC_TRACE_LOG: ::c_int = 184; +pub const _SC_IPV6: ::c_int = 235; +pub const _SC_RAW_SOCKETS: ::c_int = 236; +pub const _SC_V7_ILP32_OFF32: ::c_int = 237; +pub const _SC_V7_ILP32_OFFBIG: ::c_int = 238; +pub const _SC_V7_LP64_OFF64: ::c_int = 239; +pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 240; +pub const _SC_SS_REPL_MAX: ::c_int = 241; +pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 242; +pub const _SC_TRACE_NAME_MAX: ::c_int = 243; +pub const _SC_TRACE_SYS_MAX: ::c_int = 244; +pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 245; +pub const _SC_XOPEN_STREAMS: ::c_int = 246; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248; + +pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY; +pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY; + +pub const GLOB_ERR: ::c_int = 1 << 0; +pub const GLOB_MARK: ::c_int = 1 << 1; +pub const GLOB_NOSORT: ::c_int = 1 << 2; +pub const GLOB_DOOFFS: ::c_int = 1 << 3; +pub const GLOB_NOCHECK: ::c_int = 1 << 4; +pub const GLOB_APPEND: ::c_int = 1 << 5; +pub const GLOB_NOESCAPE: ::c_int = 1 << 6; + +pub const GLOB_NOSPACE: ::c_int = 1; +pub const GLOB_ABORTED: ::c_int = 2; +pub const GLOB_NOMATCH: ::c_int = 3; + +pub const POSIX_MADV_NORMAL: ::c_int = 0; +pub const POSIX_MADV_RANDOM: ::c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_MADV_WILLNEED: ::c_int = 3; + +pub const S_IEXEC: mode_t = 64; +pub const S_IWRITE: mode_t = 128; +pub const S_IREAD: mode_t = 256; + +pub const F_LOCK: ::c_int = 1; +pub const F_TEST: ::c_int = 3; +pub const F_TLOCK: ::c_int = 2; +pub const F_ULOCK: ::c_int = 0; + +pub const IFF_LOWER_UP: ::c_int = 0x10000; +pub const IFF_DORMANT: ::c_int = 0x20000; +pub const IFF_ECHO: ::c_int = 0x40000; + +pub const ST_RDONLY: ::c_ulong = 1; +pub const ST_NOSUID: ::c_ulong = 2; +pub const ST_NODEV: ::c_ulong = 4; +pub const ST_NOEXEC: ::c_ulong = 8; +pub const ST_SYNCHRONOUS: ::c_ulong = 16; +pub const ST_MANDLOCK: ::c_ulong = 64; +pub const ST_WRITE: ::c_ulong = 128; +pub const ST_APPEND: ::c_ulong = 256; +pub const ST_IMMUTABLE: ::c_ulong = 512; +pub const ST_NOATIME: ::c_ulong = 1024; +pub const ST_NODIRATIME: ::c_ulong = 2048; + +pub const RTLD_NEXT: *mut ::c_void = -1i64 as *mut ::c_void; +pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; +pub const RTLD_NODELETE: ::c_int = 0x1000; +pub const RTLD_NOW: ::c_int = 0x2; + +pub const TCP_MD5SIG: ::c_int = 14; + +align_const! { + pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + size: [0; __SIZEOF_PTHREAD_MUTEX_T], + }; + pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + size: [0; __SIZEOF_PTHREAD_COND_T], + }; + pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + size: [0; __SIZEOF_PTHREAD_RWLOCK_T], + }; +} +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; +pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; +pub const __SIZEOF_PTHREAD_COND_T: usize = 48; + +pub const RENAME_NOREPLACE: ::c_int = 1; +pub const RENAME_EXCHANGE: ::c_int = 2; +pub const RENAME_WHITEOUT: ::c_int = 4; + +pub const SCHED_OTHER: ::c_int = 0; +pub const SCHED_FIFO: ::c_int = 1; +pub const SCHED_RR: ::c_int = 2; +pub const SCHED_BATCH: ::c_int = 3; +pub const SCHED_IDLE: ::c_int = 5; + +// netinet/in.h +// NOTE: These are in addition to the constants defined in src/unix/mod.rs + +// IPPROTO_IP defined in src/unix/mod.rs +/// Hop-by-hop option header +pub const IPPROTO_HOPOPTS: ::c_int = 0; +// IPPROTO_ICMP defined in src/unix/mod.rs +/// group mgmt protocol +pub const IPPROTO_IGMP: ::c_int = 2; +/// for compatibility +pub const IPPROTO_IPIP: ::c_int = 4; +// IPPROTO_TCP defined in src/unix/mod.rs +/// exterior gateway protocol +pub const IPPROTO_EGP: ::c_int = 8; +/// pup +pub const IPPROTO_PUP: ::c_int = 12; +// IPPROTO_UDP defined in src/unix/mod.rs +/// xns idp +pub const IPPROTO_IDP: ::c_int = 22; +/// tp-4 w/ class negotiation +pub const IPPROTO_TP: ::c_int = 29; +/// DCCP +pub const IPPROTO_DCCP: ::c_int = 33; +// IPPROTO_IPV6 defined in src/unix/mod.rs +/// IP6 routing header +pub const IPPROTO_ROUTING: ::c_int = 43; +/// IP6 fragmentation header +pub const IPPROTO_FRAGMENT: ::c_int = 44; +/// resource reservation +pub const IPPROTO_RSVP: ::c_int = 46; +/// General Routing Encap. +pub const IPPROTO_GRE: ::c_int = 47; +/// IP6 Encap Sec. Payload +pub const IPPROTO_ESP: ::c_int = 50; +/// IP6 Auth Header +pub const IPPROTO_AH: ::c_int = 51; +// IPPROTO_ICMPV6 defined in src/unix/mod.rs +/// IP6 no next header +pub const IPPROTO_NONE: ::c_int = 59; +/// IP6 destination option +pub const IPPROTO_DSTOPTS: ::c_int = 60; +pub const IPPROTO_MTP: ::c_int = 92; +pub const IPPROTO_BEETPH: ::c_int = 94; +/// encapsulation header +pub const IPPROTO_ENCAP: ::c_int = 98; +/// Protocol indep. multicast +pub const IPPROTO_PIM: ::c_int = 103; +/// IP Payload Comp. Protocol +pub const IPPROTO_COMP: ::c_int = 108; +/// SCTP +pub const IPPROTO_SCTP: ::c_int = 132; +pub const IPPROTO_MH: ::c_int = 135; +pub const IPPROTO_UDPLITE: ::c_int = 136; +pub const IPPROTO_MPLS: ::c_int = 137; +/// raw IP packet +pub const IPPROTO_RAW: ::c_int = 255; +pub const IPPROTO_MAX: ::c_int = 256; + +pub const AF_IB: ::c_int = 27; +pub const AF_MPLS: ::c_int = 28; +pub const AF_NFC: ::c_int = 39; +pub const AF_VSOCK: ::c_int = 40; +pub const PF_IB: ::c_int = AF_IB; +pub const PF_MPLS: ::c_int = AF_MPLS; +pub const PF_NFC: ::c_int = AF_NFC; +pub const PF_VSOCK: ::c_int = AF_VSOCK; + +// System V IPC +pub const IPC_PRIVATE: ::key_t = 0; + +pub const IPC_CREAT: ::c_int = 0o1000; +pub const IPC_EXCL: ::c_int = 0o2000; +pub const IPC_NOWAIT: ::c_int = 0o4000; + +pub const IPC_RMID: ::c_int = 0; +pub const IPC_SET: ::c_int = 1; +pub const IPC_STAT: ::c_int = 2; +pub const IPC_INFO: ::c_int = 3; +pub const MSG_STAT: ::c_int = 11; +pub const MSG_INFO: ::c_int = 12; + +pub const MSG_NOERROR: ::c_int = 0o10000; +pub const MSG_EXCEPT: ::c_int = 0o20000; +pub const MSG_COPY: ::c_int = 0o40000; + +pub const SHM_R: ::c_int = 0o400; +pub const SHM_W: ::c_int = 0o200; + +pub const SHM_RDONLY: ::c_int = 0o10000; +pub const SHM_RND: ::c_int = 0o20000; +pub const SHM_REMAP: ::c_int = 0o40000; +pub const SHM_EXEC: ::c_int = 0o100000; + +pub const SHM_LOCK: ::c_int = 11; +pub const SHM_UNLOCK: ::c_int = 12; + +pub const SHM_HUGETLB: ::c_int = 0o4000; +pub const SHM_NORESERVE: ::c_int = 0o10000; + +pub const EPOLLRDHUP: ::c_int = 0x2000; +pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000; +pub const EPOLLONESHOT: ::c_int = 0x40000000; + +pub const QFMT_VFS_OLD: ::c_int = 1; +pub const QFMT_VFS_V0: ::c_int = 2; +pub const QFMT_VFS_V1: ::c_int = 4; + +pub const EFD_SEMAPHORE: ::c_int = 0x1; + +pub const LOG_NFACILITIES: ::c_int = 24; + +pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t; + +pub const RB_AUTOBOOT: ::c_int = 0x01234567u32 as i32; +pub const RB_HALT_SYSTEM: ::c_int = 0xcdef0123u32 as i32; +pub const RB_ENABLE_CAD: ::c_int = 0x89abcdefu32 as i32; +pub const RB_DISABLE_CAD: ::c_int = 0x00000000u32 as i32; +pub const RB_POWER_OFF: ::c_int = 0x4321fedcu32 as i32; +pub const RB_SW_SUSPEND: ::c_int = 0xd000fce2u32 as i32; +pub const RB_KEXEC: ::c_int = 0x45584543u32 as i32; + +pub const AI_PASSIVE: ::c_int = 0x0001; +pub const AI_CANONNAME: ::c_int = 0x0002; +pub const AI_NUMERICHOST: ::c_int = 0x0004; +pub const AI_V4MAPPED: ::c_int = 0x0008; +pub const AI_ALL: ::c_int = 0x0010; +pub const AI_ADDRCONFIG: ::c_int = 0x0020; + +pub const AI_NUMERICSERV: ::c_int = 0x0400; + +pub const EAI_BADFLAGS: ::c_int = -1; +pub const EAI_NONAME: ::c_int = -2; +pub const EAI_AGAIN: ::c_int = -3; +pub const EAI_FAIL: ::c_int = -4; +pub const EAI_FAMILY: ::c_int = -6; +pub const EAI_SOCKTYPE: ::c_int = -7; +pub const EAI_SERVICE: ::c_int = -8; +pub const EAI_MEMORY: ::c_int = -10; +pub const EAI_OVERFLOW: ::c_int = -12; + +pub const NI_NUMERICHOST: ::c_int = 1; +pub const NI_NUMERICSERV: ::c_int = 2; +pub const NI_NOFQDN: ::c_int = 4; +pub const NI_NAMEREQD: ::c_int = 8; +pub const NI_DGRAM: ::c_int = 16; + +pub const SYNC_FILE_RANGE_WAIT_BEFORE: ::c_uint = 1; +pub const SYNC_FILE_RANGE_WRITE: ::c_uint = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: ::c_uint = 4; + +pub const EAI_SYSTEM: ::c_int = -11; + +pub const AIO_CANCELED: ::c_int = 0; +pub const AIO_NOTCANCELED: ::c_int = 1; +pub const AIO_ALLDONE: ::c_int = 2; +pub const LIO_READ: ::c_int = 0; +pub const LIO_WRITE: ::c_int = 1; +pub const LIO_NOP: ::c_int = 2; +pub const LIO_WAIT: ::c_int = 0; +pub const LIO_NOWAIT: ::c_int = 1; + +pub const MREMAP_MAYMOVE: ::c_int = 1; +pub const MREMAP_FIXED: ::c_int = 2; + +pub const PR_SET_PDEATHSIG: ::c_int = 1; +pub const PR_GET_PDEATHSIG: ::c_int = 2; + +pub const PR_GET_DUMPABLE: ::c_int = 3; +pub const PR_SET_DUMPABLE: ::c_int = 4; + +pub const PR_GET_UNALIGN: ::c_int = 5; +pub const PR_SET_UNALIGN: ::c_int = 6; +pub const PR_UNALIGN_NOPRINT: ::c_int = 1; +pub const PR_UNALIGN_SIGBUS: ::c_int = 2; + +pub const PR_GET_KEEPCAPS: ::c_int = 7; +pub const PR_SET_KEEPCAPS: ::c_int = 8; + +pub const PR_GET_FPEMU: ::c_int = 9; +pub const PR_SET_FPEMU: ::c_int = 10; +pub const PR_FPEMU_NOPRINT: ::c_int = 1; +pub const PR_FPEMU_SIGFPE: ::c_int = 2; + +pub const PR_GET_FPEXC: ::c_int = 11; +pub const PR_SET_FPEXC: ::c_int = 12; +pub const PR_FP_EXC_SW_ENABLE: ::c_int = 0x80; +pub const PR_FP_EXC_DIV: ::c_int = 0x010000; +pub const PR_FP_EXC_OVF: ::c_int = 0x020000; +pub const PR_FP_EXC_UND: ::c_int = 0x040000; +pub const PR_FP_EXC_RES: ::c_int = 0x080000; +pub const PR_FP_EXC_INV: ::c_int = 0x100000; +pub const PR_FP_EXC_DISABLED: ::c_int = 0; +pub const PR_FP_EXC_NONRECOV: ::c_int = 1; +pub const PR_FP_EXC_ASYNC: ::c_int = 2; +pub const PR_FP_EXC_PRECISE: ::c_int = 3; + +pub const PR_GET_TIMING: ::c_int = 13; +pub const PR_SET_TIMING: ::c_int = 14; +pub const PR_TIMING_STATISTICAL: ::c_int = 0; +pub const PR_TIMING_TIMESTAMP: ::c_int = 1; + +pub const PR_SET_NAME: ::c_int = 15; +pub const PR_GET_NAME: ::c_int = 16; + +pub const PR_GET_ENDIAN: ::c_int = 19; +pub const PR_SET_ENDIAN: ::c_int = 20; +pub const PR_ENDIAN_BIG: ::c_int = 0; +pub const PR_ENDIAN_LITTLE: ::c_int = 1; +pub const PR_ENDIAN_PPC_LITTLE: ::c_int = 2; + +pub const PR_GET_SECCOMP: ::c_int = 21; +pub const PR_SET_SECCOMP: ::c_int = 22; + +pub const PR_CAPBSET_READ: ::c_int = 23; +pub const PR_CAPBSET_DROP: ::c_int = 24; + +pub const PR_GET_TSC: ::c_int = 25; +pub const PR_SET_TSC: ::c_int = 26; +pub const PR_TSC_ENABLE: ::c_int = 1; +pub const PR_TSC_SIGSEGV: ::c_int = 2; + +pub const PR_GET_SECUREBITS: ::c_int = 27; +pub const PR_SET_SECUREBITS: ::c_int = 28; + +pub const PR_SET_TIMERSLACK: ::c_int = 29; +pub const PR_GET_TIMERSLACK: ::c_int = 30; + +pub const PR_TASK_PERF_EVENTS_DISABLE: ::c_int = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: ::c_int = 32; + +pub const PR_MCE_KILL: ::c_int = 33; +pub const PR_MCE_KILL_CLEAR: ::c_int = 0; +pub const PR_MCE_KILL_SET: ::c_int = 1; + +pub const PR_MCE_KILL_LATE: ::c_int = 0; +pub const PR_MCE_KILL_EARLY: ::c_int = 1; +pub const PR_MCE_KILL_DEFAULT: ::c_int = 2; + +pub const PR_MCE_KILL_GET: ::c_int = 34; + +pub const PR_SET_MM: ::c_int = 35; +pub const PR_SET_MM_START_CODE: ::c_int = 1; +pub const PR_SET_MM_END_CODE: ::c_int = 2; +pub const PR_SET_MM_START_DATA: ::c_int = 3; +pub const PR_SET_MM_END_DATA: ::c_int = 4; +pub const PR_SET_MM_START_STACK: ::c_int = 5; +pub const PR_SET_MM_START_BRK: ::c_int = 6; +pub const PR_SET_MM_BRK: ::c_int = 7; +pub const PR_SET_MM_ARG_START: ::c_int = 8; +pub const PR_SET_MM_ARG_END: ::c_int = 9; +pub const PR_SET_MM_ENV_START: ::c_int = 10; +pub const PR_SET_MM_ENV_END: ::c_int = 11; +pub const PR_SET_MM_AUXV: ::c_int = 12; +pub const PR_SET_MM_EXE_FILE: ::c_int = 13; +pub const PR_SET_MM_MAP: ::c_int = 14; +pub const PR_SET_MM_MAP_SIZE: ::c_int = 15; + +pub const PR_SET_PTRACER: ::c_int = 0x59616d61; +pub const PR_SET_PTRACER_ANY: ::c_ulong = 0xffffffffffffffff; + +pub const PR_SET_CHILD_SUBREAPER: ::c_int = 36; +pub const PR_GET_CHILD_SUBREAPER: ::c_int = 37; + +pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38; +pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39; + +pub const PR_GET_TID_ADDRESS: ::c_int = 40; + +pub const PR_SET_THP_DISABLE: ::c_int = 41; +pub const PR_GET_THP_DISABLE: ::c_int = 42; + +pub const PR_MPX_ENABLE_MANAGEMENT: ::c_int = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: ::c_int = 44; + +pub const PR_SET_FP_MODE: ::c_int = 45; +pub const PR_GET_FP_MODE: ::c_int = 46; +pub const PR_FP_MODE_FR: ::c_int = 1 << 0; +pub const PR_FP_MODE_FRE: ::c_int = 1 << 1; + +pub const PR_CAP_AMBIENT: ::c_int = 47; +pub const PR_CAP_AMBIENT_IS_SET: ::c_int = 1; +pub const PR_CAP_AMBIENT_RAISE: ::c_int = 2; +pub const PR_CAP_AMBIENT_LOWER: ::c_int = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: ::c_int = 4; + +pub const ITIMER_REAL: ::c_int = 0; +pub const ITIMER_VIRTUAL: ::c_int = 1; +pub const ITIMER_PROF: ::c_int = 2; + +pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC; +pub const TFD_NONBLOCK: ::c_int = O_NONBLOCK; +pub const TFD_TIMER_ABSTIME: ::c_int = 1; + +pub const XATTR_CREATE: ::c_int = 0x1; +pub const XATTR_REPLACE: ::c_int = 0x2; + +pub const _POSIX_VDISABLE: ::cc_t = 0; + +pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01; +pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02; +pub const FALLOC_FL_COLLAPSE_RANGE: ::c_int = 0x08; +pub const FALLOC_FL_ZERO_RANGE: ::c_int = 0x10; +pub const FALLOC_FL_INSERT_RANGE: ::c_int = 0x20; +pub const FALLOC_FL_UNSHARE_RANGE: ::c_int = 0x40; + +// On Linux, libc doesn't define this constant, libattr does instead. +// We still define it for Linux as it's defined by libc on other platforms, +// and it's mentioned in the man pages for getxattr and setxattr. +pub const ENOATTR: ::c_int = ::ENODATA; + +pub const SO_ORIGINAL_DST: ::c_int = 80; +pub const IUTF8: ::tcflag_t = 0x00004000; +pub const CMSPAR: ::tcflag_t = 0o10000000000; + +pub const MFD_CLOEXEC: ::c_uint = 0x0001; +pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; + +// these are used in the p_type field of Elf32_Phdr and Elf64_Phdr, which has +// the type Elf32Word and Elf64Word respectively. Luckily, both of those are u32 +// so we can use that type here to avoid having to cast. +pub const PT_NULL: u32 = 0; +pub const PT_LOAD: u32 = 1; +pub const PT_DYNAMIC: u32 = 2; +pub const PT_INTERP: u32 = 3; +pub const PT_NOTE: u32 = 4; +pub const PT_SHLIB: u32 = 5; +pub const PT_PHDR: u32 = 6; +pub const PT_TLS: u32 = 7; +pub const PT_NUM: u32 = 8; +pub const PT_LOOS: u32 = 0x60000000; +pub const PT_GNU_EH_FRAME: u32 = 0x6474e550; +pub const PT_GNU_STACK: u32 = 0x6474e551; +pub const PT_GNU_RELRO: u32 = 0x6474e552; + +// Ethernet protocol IDs. +pub const ETH_P_IP: ::c_int = 0x0800; + +pub const SFD_CLOEXEC: ::c_int = 0x080000; + +pub const NCCS: usize = 32; + +pub const O_TRUNC: ::c_int = 0x00040000; +pub const O_NOATIME: ::c_int = 0x00002000; +pub const O_CLOEXEC: ::c_int = 0x00000100; +pub const O_TMPFILE: ::c_int = 0x00004000; + +pub const EBFONT: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EDOTDOT: ::c_int = 73; + +pub const SA_NODEFER: ::c_int = 0x40000000; +pub const SA_RESETHAND: ::c_int = 0x80000000; +pub const SA_RESTART: ::c_int = 0x10000000; +pub const SA_NOCLDSTOP: ::c_int = 0x00000001; + +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; + +pub const EFD_CLOEXEC: ::c_int = 0x80000; + +pub const BUFSIZ: ::c_uint = 1024; +pub const TMP_MAX: ::c_uint = 10000; +pub const FOPEN_MAX: ::c_uint = 1000; +pub const O_PATH: ::c_int = 0x00400000; +pub const O_EXEC: ::c_int = O_PATH; +pub const O_SEARCH: ::c_int = O_PATH; +pub const O_ACCMODE: ::c_int = 03 | O_SEARCH; +pub const O_NDELAY: ::c_int = O_NONBLOCK; +pub const NI_MAXHOST: ::socklen_t = 255; +pub const PTHREAD_STACK_MIN: ::size_t = 2048; +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + +pub const POSIX_MADV_DONTNEED: ::c_int = 4; + +pub const RLIM_INFINITY: ::rlim_t = !0; +pub const RLIMIT_RTTIME: ::c_int = 15; +pub const RLIMIT_NLIMITS: ::c_int = 16; +pub const RLIM_NLIMITS: ::c_int = RLIMIT_NLIMITS; + +pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; + +pub const SOCK_DCCP: ::c_int = 6; +pub const SOCK_PACKET: ::c_int = 10; + +pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15; +pub const TCP_THIN_LINEAR_TIMEOUTS: ::c_int = 16; +pub const TCP_THIN_DUPACK: ::c_int = 17; +pub const TCP_USER_TIMEOUT: ::c_int = 18; +pub const TCP_REPAIR: ::c_int = 19; +pub const TCP_REPAIR_QUEUE: ::c_int = 20; +pub const TCP_QUEUE_SEQ: ::c_int = 21; +pub const TCP_REPAIR_OPTIONS: ::c_int = 22; +pub const TCP_FASTOPEN: ::c_int = 23; +pub const TCP_TIMESTAMP: ::c_int = 24; + +pub const SIGUNUSED: ::c_int = ::SIGSYS; + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; + +pub const CPU_SETSIZE: ::c_int = 128; + +pub const PTRACE_TRACEME: ::c_int = 0; +pub const PTRACE_PEEKTEXT: ::c_int = 1; +pub const PTRACE_PEEKDATA: ::c_int = 2; +pub const PTRACE_PEEKUSER: ::c_int = 3; +pub const PTRACE_POKETEXT: ::c_int = 4; +pub const PTRACE_POKEDATA: ::c_int = 5; +pub const PTRACE_POKEUSER: ::c_int = 6; +pub const PTRACE_CONT: ::c_int = 7; +pub const PTRACE_KILL: ::c_int = 8; +pub const PTRACE_SINGLESTEP: ::c_int = 9; +pub const PTRACE_GETREGS: ::c_int = 12; +pub const PTRACE_SETREGS: ::c_int = 13; +pub const PTRACE_GETFPREGS: ::c_int = 14; +pub const PTRACE_SETFPREGS: ::c_int = 15; +pub const PTRACE_ATTACH: ::c_int = 16; +pub const PTRACE_DETACH: ::c_int = 17; +pub const PTRACE_GETFPXREGS: ::c_int = 18; +pub const PTRACE_SETFPXREGS: ::c_int = 19; +pub const PTRACE_SYSCALL: ::c_int = 24; +pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; +pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; +pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; +pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; +pub const PTRACE_GETREGSET: ::c_int = 0x4204; +pub const PTRACE_SETREGSET: ::c_int = 0x4205; +pub const PTRACE_SEIZE: ::c_int = 0x4206; +pub const PTRACE_INTERRUPT: ::c_int = 0x4207; +pub const PTRACE_LISTEN: ::c_int = 0x4208; +pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; + +pub const EPOLLWAKEUP: ::c_int = 0x20000000; + +pub const EFD_NONBLOCK: ::c_int = ::O_NONBLOCK; + +pub const SFD_NONBLOCK: ::c_int = ::O_NONBLOCK; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const TIOCINQ: ::c_int = ::FIONREAD; + +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::c_int = 0x00000800; +pub const TAB2: ::c_int = 0x00001000; +pub const TAB3: ::c_int = 0x00001800; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const SO_BINDTODEVICE: ::c_int = 25; +pub const SO_TIMESTAMP: ::c_int = 29; +pub const SO_MARK: ::c_int = 36; +pub const SO_RXQ_OVFL: ::c_int = 40; +pub const SO_PEEK_OFF: ::c_int = 42; +pub const SO_BUSY_POLL: ::c_int = 46; + +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; + +pub const O_ASYNC: ::c_int = 0x00000400; + +pub const FIOCLEX: ::c_int = 0x5451; +pub const FIONBIO: ::c_int = 0x5421; + +pub const RLIMIT_RSS: ::c_int = 5; +pub const RLIMIT_NOFILE: ::c_int = 7; +pub const RLIMIT_AS: ::c_int = 9; +pub const RLIMIT_NPROC: ::c_int = 6; +pub const RLIMIT_MEMLOCK: ::c_int = 8; + +pub const O_APPEND: ::c_int = 0x00100000; +pub const O_CREAT: ::c_int = 0x00010000; +pub const O_EXCL: ::c_int = 0x00020000; +pub const O_NOCTTY: ::c_int = 0x00000200; +pub const O_NONBLOCK: ::c_int = 0x00000010; +pub const O_SYNC: ::c_int = 0x00000040 | O_DSYNC; +pub const O_RSYNC: ::c_int = O_SYNC; +pub const O_DSYNC: ::c_int = 0x00000020; + +pub const SOCK_CLOEXEC: ::c_int = 0o2000000; +pub const SOCK_NONBLOCK: ::c_int = 0o4000; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_SEQPACKET: ::c_int = 5; + +pub const SOL_SOCKET: ::c_int = 1; + +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EDEADLOCK: ::c_int = EDEADLK; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ERFKILL: ::c_int = 132; +pub const EHWPOISON: ::c_int = 133; + +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_LINGER: ::c_int = 13; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_PASSCRED: ::c_int = 16; +pub const SO_PEERCRED: ::c_int = 17; +pub const SO_RCVLOWAT: ::c_int = 18; +pub const SO_SNDLOWAT: ::c_int = 19; +pub const SO_RCVTIMEO: ::c_int = 20; +pub const SO_SNDTIMEO: ::c_int = 21; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const EXTPROC: ::tcflag_t = 0x00010000; + +pub const MAP_HUGETLB: ::c_int = 0x040000; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; + +pub const VEOF: usize = 4; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; + +pub const TCGETS: ::c_int = 0x5401; +pub const TCSETS: ::c_int = 0x5402; +pub const TCSETSW: ::c_int = 0x5403; +pub const TCSETSF: ::c_int = 0x5404; +pub const TCGETA: ::c_int = 0x5405; +pub const TCSETA: ::c_int = 0x5406; +pub const TCSETAW: ::c_int = 0x5407; +pub const TCSETAF: ::c_int = 0x5408; +pub const TCSBRK: ::c_int = 0x5409; +pub const TCXONC: ::c_int = 0x540A; +pub const TCFLSH: ::c_int = 0x540B; +pub const TIOCGSOFTCAR: ::c_int = 0x5419; +pub const TIOCSSOFTCAR: ::c_int = 0x541A; +pub const TIOCLINUX: ::c_int = 0x541C; +pub const TIOCGSERIAL: ::c_int = 0x541E; +pub const TIOCEXCL: ::c_int = 0x540C; +pub const TIOCNXCL: ::c_int = 0x540D; +pub const TIOCSCTTY: ::c_int = 0x540E; +pub const TIOCGPGRP: ::c_int = 0x540F; +pub const TIOCSPGRP: ::c_int = 0x5410; +pub const TIOCOUTQ: ::c_int = 0x5411; +pub const TIOCSTI: ::c_int = 0x5412; +pub const TIOCGWINSZ: ::c_int = 0x5413; +pub const TIOCSWINSZ: ::c_int = 0x5414; +pub const TIOCMGET: ::c_int = 0x5415; +pub const TIOCMBIS: ::c_int = 0x5416; +pub const TIOCMBIC: ::c_int = 0x5417; +pub const TIOCMSET: ::c_int = 0x5418; +pub const FIONREAD: ::c_int = 0x541B; +pub const TIOCCONS: ::c_int = 0x541D; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const TIOCM_LE: ::c_int = 0x001; +pub const TIOCM_DTR: ::c_int = 0x002; +pub const TIOCM_RTS: ::c_int = 0x004; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; +pub const TIOCM_CD: ::c_int = TIOCM_CAR; +pub const TIOCM_RI: ::c_int = TIOCM_RNG; + +pub const O_DIRECTORY: ::c_int = 0x00080000; +pub const O_DIRECT: ::c_int = 0x00000800; +pub const O_LARGEFILE: ::c_int = 0x00001000; +pub const O_NOFOLLOW: ::c_int = 0x00000080; + +// intentionally not public, only used for fd_set +cfg_if! { + if #[cfg(target_pointer_width = "32")] { + const ULONG_SIZE: usize = 32; + } else if #[cfg(target_pointer_width = "64")] { + const ULONG_SIZE: usize = 64; + } else { + // Unknown target_pointer_width + } +} + +// END_PUB_CONST + +f! { + pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] &= !(1 << (fd % size)); + return + } + + pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 + } + + pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] |= 1 << (fd % size); + return + } + + pub fn FD_ZERO(set: *mut fd_set) -> () { + for slot in (*set).fds_bits.iter_mut() { + *slot = 0; + } + } + + pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { + for slot in cpuset.bits.iter_mut() { + *slot = 0; + } + } + + pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let size_in_bits + = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.bits[idx] |= 1 << offset; + () + } + + pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let size_in_bits + = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.bits[idx] &= !(1 << offset); + () + } + + pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + 0 != (cpuset.bits[idx] & (1 << offset)) + } + + pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { + set1.bits == set2.bits + } + + pub fn major(dev: ::dev_t) -> ::c_uint { + let mut major = 0; + major |= (dev & 0x00000000000fff00) >> 8; + major |= (dev & 0xfffff00000000000) >> 32; + major as ::c_uint + } + + pub fn minor(dev: ::dev_t) -> ::c_uint { + let mut minor = 0; + minor |= (dev & 0x00000000000000ff) >> 0; + minor |= (dev & 0x00000ffffff00000) >> 12; + minor as ::c_uint + } + + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + cmsg.offset(1) as *mut c_uchar + } + + pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) + -> *mut cmsghdr + { + if ((*cmsg).cmsg_len as ::size_t) < ::mem::size_of::() { + 0 as *mut cmsghdr + } else if __CMSG_NEXT(cmsg).add(::mem::size_of::()) + >= __MHDR_END(mhdr) { + 0 as *mut cmsghdr + } else { + __CMSG_NEXT(cmsg).cast() + } + } + + pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { + if (*mhdr).msg_controllen as ::size_t >= ::mem::size_of::() { + (*mhdr).msg_control.cast() + } else { + 0 as *mut cmsghdr + } + } + + pub {const} fn CMSG_ALIGN(len: ::size_t) -> ::size_t { + (len + ::mem::size_of::<::size_t>() - 1) + & !(::mem::size_of::<::size_t>() - 1) + } + + pub {const} fn CMSG_SPACE(len: ::c_uint) -> ::c_uint { + (CMSG_ALIGN(len as ::size_t) + CMSG_ALIGN(::mem::size_of::())) + as ::c_uint + } + + pub {const} fn CMSG_LEN(len: ::c_uint) -> ::c_uint { + (CMSG_ALIGN(::mem::size_of::()) + len as ::size_t) as ::c_uint + } +} + +safe_f! { + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + (status & 0xff) == 0x7f + } + + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } + + pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + status == 0xffff + } + + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + ((status & 0x7f) + 1) as i8 >= 2 + } + + pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + status & 0x7f + } + + pub {const} fn WIFEXITED(status: ::c_int) -> bool { + (status & 0x7f) == 0 + } + + pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } + + pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + (status & 0x80) != 0 + } + + pub {const} fn QCMD(cmd: ::c_int, type_: ::c_int) -> ::c_int { + (cmd << 8) | (type_ & 0x00ff) + } + + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + let mut dev = 0; + dev |= (major & 0x00000fff) << 8; + dev |= (major & 0xfffff000) << 32; + dev |= (minor & 0x000000ff) << 0; + dev |= (minor & 0xffffff00) << 12; + dev + } +} + +fn __CMSG_LEN(cmsg: *const cmsghdr) -> ::ssize_t { + ((unsafe { (*cmsg).cmsg_len as ::size_t } + ::mem::size_of::<::c_long>() - 1) + & !(::mem::size_of::<::c_long>() - 1)) as ::ssize_t +} + +fn __CMSG_NEXT(cmsg: *const cmsghdr) -> *mut c_uchar { + (unsafe { cmsg.offset(__CMSG_LEN(cmsg)) }) as *mut c_uchar +} + +fn __MHDR_END(mhdr: *const msghdr) -> *mut c_uchar { + unsafe { (*mhdr).msg_control.offset((*mhdr).msg_controllen as isize) }.cast() +} + +// EXTERN_FN + +#[link(name = "c")] +#[link(name = "fdio")] +extern "C" {} + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum FILE {} +impl ::Copy for FILE {} +impl ::Clone for FILE { + fn clone(&self) -> FILE { + *self + } +} +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum fpos_t {} // FIXME: fill this out with a struct +impl ::Copy for fpos_t {} +impl ::Clone for fpos_t { + fn clone(&self) -> fpos_t { + *self + } +} + +extern "C" { + pub fn isalnum(c: c_int) -> c_int; + pub fn isalpha(c: c_int) -> c_int; + pub fn iscntrl(c: c_int) -> c_int; + pub fn isdigit(c: c_int) -> c_int; + pub fn isgraph(c: c_int) -> c_int; + pub fn islower(c: c_int) -> c_int; + pub fn isprint(c: c_int) -> c_int; + pub fn ispunct(c: c_int) -> c_int; + pub fn isspace(c: c_int) -> c_int; + pub fn isupper(c: c_int) -> c_int; + pub fn isxdigit(c: c_int) -> c_int; + pub fn isblank(c: c_int) -> c_int; + pub fn tolower(c: c_int) -> c_int; + pub fn toupper(c: c_int) -> c_int; + pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; + pub fn freopen(filename: *const c_char, mode: *const c_char, file: *mut FILE) -> *mut FILE; + pub fn fflush(file: *mut FILE) -> c_int; + pub fn fclose(file: *mut FILE) -> c_int; + pub fn remove(filename: *const c_char) -> c_int; + pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; + pub fn tmpfile() -> *mut FILE; + pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int; + pub fn setbuf(stream: *mut FILE, buf: *mut c_char); + pub fn getchar() -> c_int; + pub fn putchar(c: c_int) -> c_int; + pub fn fgetc(stream: *mut FILE) -> c_int; + pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; + pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; + pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; + pub fn puts(s: *const c_char) -> c_int; + pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; + pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; + pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; + pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; + pub fn ftell(stream: *mut FILE) -> c_long; + pub fn rewind(stream: *mut FILE); + pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int; + pub fn fsetpos(stream: *mut FILE, ptr: *const fpos_t) -> c_int; + pub fn feof(stream: *mut FILE) -> c_int; + pub fn ferror(stream: *mut FILE) -> c_int; + pub fn perror(s: *const c_char); + pub fn atof(s: *const c_char) -> c_double; + pub fn atoi(s: *const c_char) -> c_int; + pub fn atol(s: *const c_char) -> c_long; + pub fn atoll(s: *const c_char) -> c_longlong; + pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; + pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float; + pub fn strtol(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_long; + pub fn strtoll(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_longlong; + pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulong; + pub fn strtoull(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulonglong; + pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; + pub fn malloc(size: size_t) -> *mut c_void; + pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; + pub fn free(p: *mut c_void); + pub fn abort() -> !; + pub fn exit(status: c_int) -> !; + pub fn _exit(status: c_int) -> !; + pub fn atexit(cb: extern "C" fn()) -> c_int; + pub fn system(s: *const c_char) -> c_int; + pub fn getenv(s: *const c_char) -> *mut c_char; + + pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; + pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; + pub fn strncat(s: *mut c_char, ct: *const c_char, n: size_t) -> *mut c_char; + pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; + pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; + pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; + pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char; + pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char; + pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t; + pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t; + pub fn strdup(cs: *const c_char) -> *mut c_char; + pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn strlen(cs: *const c_char) -> size_t; + pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; + pub fn strerror(n: c_int) -> *mut c_char; + pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; + pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; + pub fn wcslen(buf: *const wchar_t) -> size_t; + pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; + + pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t; + pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; + pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; + + pub fn abs(i: c_int) -> c_int; + pub fn labs(i: c_long) -> c_long; + pub fn rand() -> c_int; + pub fn srand(seed: c_uint); + + pub fn getpwnam(name: *const ::c_char) -> *mut passwd; + pub fn getpwuid(uid: ::uid_t) -> *mut passwd; + + pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; + pub fn printf(format: *const ::c_char, ...) -> ::c_int; + pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int; + pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; + pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; + pub fn scanf(format: *const ::c_char, ...) -> ::c_int; + pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; + pub fn getchar_unlocked() -> ::c_int; + pub fn putchar_unlocked(c: ::c_int) -> ::c_int; + + pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int; + pub fn connect(socket: ::c_int, address: *const sockaddr, len: socklen_t) -> ::c_int; + pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; + pub fn accept(socket: ::c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> ::c_int; + pub fn getpeername( + socket: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + ) -> ::c_int; + pub fn getsockname( + socket: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + ) -> ::c_int; + pub fn setsockopt( + socket: ::c_int, + level: ::c_int, + name: ::c_int, + value: *const ::c_void, + option_len: socklen_t, + ) -> ::c_int; + pub fn socketpair( + domain: ::c_int, + type_: ::c_int, + protocol: ::c_int, + socket_vector: *mut ::c_int, + ) -> ::c_int; + pub fn sendto( + socket: ::c_int, + buf: *const ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *const sockaddr, + addrlen: socklen_t, + ) -> ::ssize_t; + pub fn shutdown(socket: ::c_int, how: ::c_int) -> ::c_int; + + pub fn chmod(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn fchmod(fd: ::c_int, mode: mode_t) -> ::c_int; + + pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; + + pub fn mkdir(path: *const c_char, mode: mode_t) -> ::c_int; + + pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; + + pub fn pclose(stream: *mut ::FILE) -> ::c_int; + pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; + pub fn fileno(stream: *mut ::FILE) -> ::c_int; + + pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; + pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; + + pub fn opendir(dirname: *const c_char) -> *mut ::DIR; + pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; + pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, result: *mut *mut ::dirent) + -> ::c_int; + pub fn closedir(dirp: *mut ::DIR) -> ::c_int; + pub fn rewinddir(dirp: *mut ::DIR); + + pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int, ...) -> ::c_int; + pub fn fchmodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + flags: ::c_int, + ) -> ::c_int; + pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; + pub fn fchownat( + dirfd: ::c_int, + pathname: *const ::c_char, + owner: ::uid_t, + group: ::gid_t, + flags: ::c_int, + ) -> ::c_int; + pub fn fstatat( + dirfd: ::c_int, + pathname: *const ::c_char, + buf: *mut stat, + flags: ::c_int, + ) -> ::c_int; + pub fn linkat( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + flags: ::c_int, + ) -> ::c_int; + pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn readlinkat( + dirfd: ::c_int, + pathname: *const ::c_char, + buf: *mut ::c_char, + bufsiz: ::size_t, + ) -> ::ssize_t; + pub fn renameat( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + ) -> ::c_int; + pub fn symlinkat( + target: *const ::c_char, + newdirfd: ::c_int, + linkpath: *const ::c_char, + ) -> ::c_int; + pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int) -> ::c_int; + + pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; + pub fn alarm(seconds: ::c_uint) -> ::c_uint; + pub fn chdir(dir: *const c_char) -> ::c_int; + pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; + pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; + pub fn close(fd: ::c_int) -> ::c_int; + pub fn dup(fd: ::c_int) -> ::c_int; + pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; + pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; + pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; + pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; + pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn execve( + prog: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> ::c_int; + pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn fork() -> pid_t; + pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; + pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; + pub fn getegid() -> gid_t; + pub fn geteuid() -> uid_t; + pub fn getgid() -> gid_t; + pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int; + pub fn getlogin() -> *mut c_char; + pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int; + pub fn getpgid(pid: pid_t) -> pid_t; + pub fn getpgrp() -> pid_t; + pub fn getpid() -> pid_t; + pub fn getppid() -> pid_t; + pub fn getuid() -> uid_t; + pub fn isatty(fd: ::c_int) -> ::c_int; + pub fn link(src: *const c_char, dst: *const c_char) -> ::c_int; + pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; + pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; + pub fn pause() -> ::c_int; + pub fn pipe(fds: *mut ::c_int) -> ::c_int; + pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int; + pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) -> ::ssize_t; + pub fn rmdir(path: *const c_char) -> ::c_int; + pub fn seteuid(uid: uid_t) -> ::c_int; + pub fn setegid(gid: gid_t) -> ::c_int; + pub fn setgid(gid: gid_t) -> ::c_int; + pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int; + pub fn setsid() -> pid_t; + pub fn setuid(uid: uid_t) -> ::c_int; + pub fn sleep(secs: ::c_uint) -> ::c_uint; + pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> ::c_int; + pub fn tcgetpgrp(fd: ::c_int) -> pid_t; + pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; + pub fn ttyname(fd: ::c_int) -> *mut c_char; + pub fn unlink(c: *const c_char) -> ::c_int; + pub fn wait(status: *mut ::c_int) -> pid_t; + pub fn waitpid(pid: pid_t, status: *mut ::c_int, options: ::c_int) -> pid_t; + pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t; + pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; + pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; + pub fn umask(mask: mode_t) -> mode_t; + + pub fn utime(file: *const c_char, buf: *const utimbuf) -> ::c_int; + + pub fn kill(pid: pid_t, sig: ::c_int) -> ::c_int; + + pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; + pub fn munlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; + pub fn mlockall(flags: ::c_int) -> ::c_int; + pub fn munlockall() -> ::c_int; + + pub fn mmap( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + flags: ::c_int, + fd: ::c_int, + offset: off_t, + ) -> *mut ::c_void; + pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; + + pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint; + pub fn if_indextoname(ifindex: ::c_uint, ifname: *mut ::c_char) -> *mut ::c_char; + + pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; + + pub fn fsync(fd: ::c_int) -> ::c_int; + + pub fn setenv(name: *const c_char, val: *const c_char, overwrite: ::c_int) -> ::c_int; + pub fn unsetenv(name: *const c_char) -> ::c_int; + + pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; + + pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; + + pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; + + pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) -> *mut ::c_char; + + pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; + + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn times(buf: *mut ::tms) -> ::clock_t; + + pub fn pthread_self() -> ::pthread_t; + pub fn pthread_join(native: ::pthread_t, value: *mut *mut ::c_void) -> ::c_int; + pub fn pthread_exit(value: *mut ::c_void) -> !; + pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, stack_size: ::size_t) -> ::c_int; + pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, state: ::c_int) -> ::c_int; + pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; + pub fn sched_yield() -> ::c_int; + pub fn pthread_key_create( + key: *mut pthread_key_t, + dtor: ::Option, + ) -> ::c_int; + pub fn pthread_key_delete(key: pthread_key_t) -> ::c_int; + pub fn pthread_getspecific(key: pthread_key_t) -> *mut ::c_void; + pub fn pthread_setspecific(key: pthread_key_t, value: *const ::c_void) -> ::c_int; + pub fn pthread_mutex_init( + lock: *mut pthread_mutex_t, + attr: *const pthread_mutexattr_t, + ) -> ::c_int; + pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> ::c_int; + + pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int; + pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> ::c_int; + pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, _type: ::c_int) -> ::c_int; + + pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) + -> ::c_int; + pub fn pthread_cond_wait(cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_cond_timedwait( + cond: *mut pthread_cond_t, + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> ::c_int; + pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> ::c_int; + pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int; + pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> ::c_int; + pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> ::c_int; + pub fn pthread_rwlock_init( + lock: *mut pthread_rwlock_t, + attr: *const pthread_rwlockattr_t, + ) -> ::c_int; + pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlock_unlock(lock: *mut pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) -> ::c_int; + pub fn pthread_rwlockattr_destroy(attr: *mut pthread_rwlockattr_t) -> ::c_int; + pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + + pub fn getsockopt( + sockfd: ::c_int, + level: ::c_int, + optname: ::c_int, + optval: *mut ::c_void, + optlen: *mut ::socklen_t, + ) -> ::c_int; + pub fn raise(signum: ::c_int) -> ::c_int; + pub fn sigaction(signum: ::c_int, act: *const sigaction, oldact: *mut sigaction) -> ::c_int; + + pub fn utimes(filename: *const ::c_char, times: *const ::timeval) -> ::c_int; + pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; + pub fn dlerror() -> *mut ::c_char; + pub fn dlsym(handle: *mut ::c_void, symbol: *const ::c_char) -> *mut ::c_void; + pub fn dlclose(handle: *mut ::c_void) -> ::c_int; + pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; + + pub fn getaddrinfo( + node: *const c_char, + service: *const c_char, + hints: *const addrinfo, + res: *mut *mut addrinfo, + ) -> ::c_int; + pub fn freeaddrinfo(res: *mut addrinfo); + pub fn gai_strerror(errcode: ::c_int) -> *const ::c_char; + pub fn res_init() -> ::c_int; + + pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; + pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; + pub fn mktime(tm: *mut tm) -> time_t; + pub fn time(time: *mut time_t) -> time_t; + pub fn gmtime(time_p: *const time_t) -> *mut tm; + pub fn localtime(time_p: *const time_t) -> *mut tm; + + pub fn mknod(pathname: *const ::c_char, mode: ::mode_t, dev: ::dev_t) -> ::c_int; + pub fn uname(buf: *mut ::utsname) -> ::c_int; + pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn getservbyname(name: *const ::c_char, proto: *const ::c_char) -> *mut servent; + pub fn getprotobyname(name: *const ::c_char) -> *mut protoent; + pub fn getprotobynumber(proto: ::c_int) -> *mut protoent; + pub fn usleep(secs: ::c_uint) -> ::c_int; + pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; + pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; + pub fn putenv(string: *mut c_char) -> ::c_int; + pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; + pub fn select( + nfds: ::c_int, + readfds: *mut fd_set, + writefds: *mut fd_set, + errorfds: *mut fd_set, + timeout: *mut timeval, + ) -> ::c_int; + pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char; + pub fn localeconv() -> *mut lconv; + + pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; + pub fn sem_wait(sem: *mut sem_t) -> ::c_int; + pub fn sem_trywait(sem: *mut sem_t) -> ::c_int; + pub fn sem_post(sem: *mut sem_t) -> ::c_int; + pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> ::c_int; + pub fn fstatvfs(fd: ::c_int, buf: *mut statvfs) -> ::c_int; + + pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::ssize_t; + + pub fn sigemptyset(set: *mut sigset_t) -> ::c_int; + pub fn sigaddset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; + pub fn sigfillset(set: *mut sigset_t) -> ::c_int; + pub fn sigdelset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; + pub fn sigismember(set: *const sigset_t, signum: ::c_int) -> ::c_int; + + pub fn sigprocmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; + pub fn sigpending(set: *mut sigset_t) -> ::c_int; + + pub fn timegm(tm: *mut ::tm) -> time_t; + + pub fn getsid(pid: pid_t) -> pid_t; + + pub fn sysconf(name: ::c_int) -> ::c_long; + + pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; + + pub fn pselect( + nfds: ::c_int, + readfds: *mut fd_set, + writefds: *mut fd_set, + errorfds: *mut fd_set, + timeout: *const timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int; + pub fn ftello(stream: *mut ::FILE) -> ::off_t; + pub fn tcdrain(fd: ::c_int) -> ::c_int; + pub fn cfgetispeed(termios: *const ::termios) -> ::speed_t; + pub fn cfgetospeed(termios: *const ::termios) -> ::speed_t; + pub fn cfmakeraw(termios: *mut ::termios); + pub fn cfsetispeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; + pub fn cfsetospeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; + pub fn cfsetspeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; + pub fn tcgetattr(fd: ::c_int, termios: *mut ::termios) -> ::c_int; + pub fn tcsetattr(fd: ::c_int, optional_actions: ::c_int, termios: *const ::termios) -> ::c_int; + pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int; + pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int; + pub fn tcgetsid(fd: ::c_int) -> ::pid_t; + pub fn tcsendbreak(fd: ::c_int, duration: ::c_int) -> ::c_int; + pub fn mkstemp(template: *mut ::c_char) -> ::c_int; + pub fn mkdtemp(template: *mut ::c_char) -> *mut ::c_char; + + pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char; + + pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int); + pub fn closelog(); + pub fn setlogmask(maskpri: ::c_int) -> ::c_int; + pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); + + pub fn grantpt(fd: ::c_int) -> ::c_int; + pub fn posix_openpt(flags: ::c_int) -> ::c_int; + pub fn ptsname(fd: ::c_int) -> *mut ::c_char; + pub fn unlockpt(fd: ::c_int) -> ::c_int; + + pub fn fdatasync(fd: ::c_int) -> ::c_int; + pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + + pub fn pthread_getattr_np(native: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; + pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn setgroups(ngroups: ::size_t, ptr: *const ::gid_t) -> ::c_int; + pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; + pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; + pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; + pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; + + pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; + pub fn duplocale(base: ::locale_t) -> ::locale_t; + pub fn freelocale(loc: ::locale_t); + pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; + pub fn uselocale(loc: ::locale_t) -> ::locale_t; + + pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; + + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + pub fn accept4( + fd: ::c_int, + addr: *mut ::sockaddr, + len: *mut ::socklen_t, + flg: ::c_int, + ) -> ::c_int; + pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> ::c_int; + pub fn clearenv() -> ::c_int; + pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) + -> ::c_int; + pub fn setreuid(ruid: ::uid_t, euid: ::uid_t) -> ::c_int; + pub fn setregid(rgid: ::gid_t, egid: ::gid_t) -> ::c_int; + pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; + pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; + pub fn acct(filename: *const ::c_char) -> ::c_int; + pub fn brk(addr: *mut ::c_void) -> ::c_int; + pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; + pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *const termios, + winp: *const ::winsize, + ) -> ::c_int; + pub fn execvpe( + file: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + pub fn fexecve( + fd: ::c_int, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + + pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; + + pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; + + pub fn setpwent(); + pub fn endpwent(); + pub fn getpwent() -> *mut passwd; + + pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; + + // System V IPC + pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; + pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; + pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; + pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; + pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; + pub fn semget(key: ::key_t, nsems: ::c_int, semflag: ::c_int) -> ::c_int; + pub fn semop(semid: ::c_int, sops: *mut ::sembuf, nsops: ::size_t) -> ::c_int; + pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; + pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; + pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtyp: ::c_long, + msgflg: ::c_int, + ) -> ::ssize_t; + pub fn msgsnd( + msqid: ::c_int, + msgp: *const ::c_void, + msgsz: ::size_t, + msgflg: ::c_int, + ) -> ::c_int; + + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn __errno_location() -> *mut ::c_int; + + pub fn fallocate(fd: ::c_int, mode: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + pub fn readahead(fd: ::c_int, offset: ::off64_t, count: ::size_t) -> ::ssize_t; + pub fn signalfd(fd: ::c_int, mask: *const ::sigset_t, flags: ::c_int) -> ::c_int; + pub fn timerfd_create(clockid: ::c_int, flags: ::c_int) -> ::c_int; + pub fn timerfd_gettime(fd: ::c_int, curr_value: *mut itimerspec) -> ::c_int; + pub fn timerfd_settime( + fd: ::c_int, + flags: ::c_int, + new_value: *const itimerspec, + old_value: *mut itimerspec, + ) -> ::c_int; + pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) + -> ::ssize_t; + pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; + pub fn quotactl( + cmd: ::c_int, + special: *const ::c_char, + id: ::c_int, + data: *mut ::c_char, + ) -> ::c_int; + pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; + pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; + pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn reboot(how_to: ::c_int) -> ::c_int; + pub fn setfsgid(gid: ::gid_t) -> ::c_int; + pub fn setfsuid(uid: ::uid_t) -> ::c_int; + + // Not available now on Android + pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn if_nameindex() -> *mut if_nameindex; + pub fn if_freenameindex(ptr: *mut if_nameindex); + pub fn sync_file_range( + fd: ::c_int, + offset: ::off64_t, + nbytes: ::off64_t, + flags: ::c_uint, + ) -> ::c_int; + pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; + pub fn freeifaddrs(ifa: *mut ::ifaddrs); + + pub fn glob( + pattern: *const c_char, + flags: ::c_int, + errfunc: ::Option ::c_int>, + pglob: *mut ::glob_t, + ) -> ::c_int; + pub fn globfree(pglob: *mut ::glob_t); + + pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + + pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + + pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + + pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + + pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; + pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; + pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; + pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + + pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; + + pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + + pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; + pub fn vhangup() -> ::c_int; + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + timeout: *mut ::timespec, + ) -> ::c_int; + pub fn sync(); + pub fn syscall(num: ::c_long, ...) -> ::c_long; + pub fn sched_getaffinity(pid: ::pid_t, cpusetsize: ::size_t, cpuset: *mut cpu_set_t) + -> ::c_int; + pub fn sched_setaffinity( + pid: ::pid_t, + cpusetsize: ::size_t, + cpuset: *const cpu_set_t, + ) -> ::c_int; + pub fn umount(target: *const ::c_char) -> ::c_int; + pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; + pub fn tee(fd_in: ::c_int, fd_out: ::c_int, len: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + pub fn splice( + fd_in: ::c_int, + off_in: *mut ::loff_t, + fd_out: ::c_int, + off_out: *mut ::loff_t, + len: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; + pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + pub fn swapoff(puath: *const ::c_char) -> ::c_int; + pub fn vmsplice( + fd: ::c_int, + iov: *const ::iovec, + nr_segs: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn mount( + src: *const ::c_char, + target: *const ::c_char, + fstype: *const ::c_char, + flags: ::c_ulong, + data: *const ::c_void, + ) -> ::c_int; + pub fn personality(persona: ::c_ulong) -> ::c_int; + pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; + pub fn ppoll( + fds: *mut ::pollfd, + nfds: nfds_t, + timeout: *const ::timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn clone( + cb: extern "C" fn(*mut ::c_void) -> ::c_int, + child_stack: *mut ::c_void, + flags: ::c_int, + arg: *mut ::c_void, + ... + ) -> ::c_int; + pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; + pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; + pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; + pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; + pub fn sem_close(sem: *mut sem_t) -> ::c_int; + pub fn getdtablesize() -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; + pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; + pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; + pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; + pub fn sem_unlink(name: *const ::c_char) -> ::c_int; + pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + + pub fn setgrent(); + pub fn endgrent(); + pub fn getgrent() -> *mut ::group; + + pub fn getgrouplist( + user: *const ::c_char, + group: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn faccessat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + pub fn dl_iterate_phdr( + callback: ::Option< + unsafe extern "C" fn( + info: *mut ::dl_phdr_info, + size: ::size_t, + data: *mut ::c_void, + ) -> ::c_int, + >, + data: *mut ::c_void, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } else if #[cfg(any(target_arch = "x86_64"))] { + mod x86_64; + pub use self::x86_64::*; + } else if #[cfg(any(target_arch = "riscv64"))] { + mod riscv64; + pub use self::riscv64::*; + } else { + // Unknown target_arch + } +} + +cfg_if! { + if #[cfg(libc_align)] { + #[macro_use] + mod align; + } else { + #[macro_use] + mod no_align; + } +} +expand_align!(); + +cfg_if! { + if #[cfg(libc_core_cvoid)] { + pub use ::ffi::c_void; + } else { + // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help + // enable more optimization opportunities around it recognizing things + // like malloc/free. + #[repr(u8)] + #[allow(missing_copy_implementations)] + #[allow(missing_debug_implementations)] + pub enum c_void { + // Two dummy variants so the #[repr] attribute can be used. + #[doc(hidden)] + __variant1, + #[doc(hidden)] + __variant2, + } + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/fuchsia/no_align.rs b/src/rust/vendor/libc-0.2.146/src/fuchsia/no_align.rs new file mode 100644 index 000000000..7ca90e0e4 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/fuchsia/no_align.rs @@ -0,0 +1,129 @@ +macro_rules! expand_align { + () => { + s! { + pub struct pthread_mutexattr_t { + #[cfg(target_arch = "x86_64")] + __align: [::c_int; 0], + #[cfg(not(target_arch = "x86_64"))] + __align: [::c_long; 0], + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + pub struct pthread_rwlockattr_t { + __align: [::c_long; 0], + size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], + } + + pub struct pthread_condattr_t { + __align: [::c_int; 0], + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } + } + + s_no_extra_traits! { + pub struct pthread_mutex_t { + #[cfg(any(target_arch = "arm", + all(target_arch = "x86_64", + target_pointer_width = "32")))] + __align: [::c_long; 0], + #[cfg(not(any(target_arch = "arm", + all(target_arch = "x86_64", + target_pointer_width = "32"))))] + __align: [::c_longlong; 0], + size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + } + + pub struct pthread_rwlock_t { + __align: [::c_long; 0], + __align: [::c_longlong; 0], + size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + } + + pub struct pthread_cond_t { + __align: [*const ::c_void; 0], + #[cfg(not(target_env = "musl"))] + __align: [::c_longlong; 0], + size: [u8; ::__SIZEOF_PTHREAD_COND_T], + } + } + + cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for pthread_cond_t { + fn eq(&self, other: &pthread_cond_t) -> bool { + // Ignore __align field + self.size + .iter() + .zip(other.size.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_cond_t {} + impl ::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_cond_t") + // Ignore __align field + // FIXME: .field("size", &self.size) + .finish() + } + } + impl ::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { + // Ignore __align field + self.size.hash(state); + } + } + + impl PartialEq for pthread_mutex_t { + fn eq(&self, other: &pthread_mutex_t) -> bool { + // Ignore __align field + self.size + .iter() + .zip(other.size.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_mutex_t {} + impl ::fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_mutex_t") + // Ignore __align field + // FIXME: .field("size", &self.size) + .finish() + } + } + impl ::hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { + // Ignore __align field + self.size.hash(state); + } + } + + impl PartialEq for pthread_rwlock_t { + fn eq(&self, other: &pthread_rwlock_t) -> bool { + // Ignore __align field + self.size + .iter() + .zip(other.size.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_rwlock_t {} + impl ::fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_rwlock_t") + // Ignore __align field + // FIXME: .field("size", &self.size) + .finish() + } + } + impl ::hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { + // Ignore __align field + self.size.hash(state); + } + } + } + } + }; +} diff --git a/src/rust/vendor/libc-0.2.146/src/fuchsia/riscv64.rs b/src/rust/vendor/libc-0.2.146/src/fuchsia/riscv64.rs new file mode 100644 index 000000000..de2b7197d --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/fuchsia/riscv64.rs @@ -0,0 +1,44 @@ +// From psABI Calling Convention for RV64 +pub type c_char = u8; +pub type __u64 = ::c_ulonglong; +pub type wchar_t = i32; + +pub type nlink_t = ::c_ulong; +pub type blksize_t = ::c_long; + +pub type stat64 = stat; +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + __pad0: ::c_int, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_long; 3], + } + + // Not actually used, IPC calls just return ENOSYS + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/fuchsia/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/fuchsia/x86_64.rs new file mode 100644 index 000000000..dca3c247d --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/fuchsia/x86_64.rs @@ -0,0 +1,152 @@ +pub type c_char = i8; +pub type wchar_t = i32; +pub type nlink_t = u64; +pub type blksize_t = ::c_long; +pub type __u64 = ::c_ulonglong; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + __pad0: ::c_int, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_long; 3], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + __pad0: ::c_int, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __reserved: [::c_long; 3], + } + + pub struct mcontext_t { + __private: [u64; 32], + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_int, + __unused1: ::c_long, + __unused2: ::c_long + } +} + +s_no_extra_traits! { + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask: ::sigset_t, + __private: [u8; 512], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for ucontext_t { + fn eq(&self, other: &ucontext_t) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_sigmask == other.uc_sigmask + && self + .__private + .iter() + .zip(other.__private.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for ucontext_t {} + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_flags) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field("uc_sigmask", &self.uc_sigmask) + // FIXME: .field("__private", &self.__private) + .finish() + } + } + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_flags.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + self.uc_sigmask.hash(state); + self.__private.hash(state); + } + } + } +} + +// offsets in user_regs_structs, from sys/reg.h +pub const R15: ::c_int = 0; +pub const R14: ::c_int = 1; +pub const R13: ::c_int = 2; +pub const R12: ::c_int = 3; +pub const RBP: ::c_int = 4; +pub const RBX: ::c_int = 5; +pub const R11: ::c_int = 6; +pub const R10: ::c_int = 7; +pub const R9: ::c_int = 8; +pub const R8: ::c_int = 9; +pub const RAX: ::c_int = 10; +pub const RCX: ::c_int = 11; +pub const RDX: ::c_int = 12; +pub const RSI: ::c_int = 13; +pub const RDI: ::c_int = 14; +pub const ORIG_RAX: ::c_int = 15; +pub const RIP: ::c_int = 16; +pub const CS: ::c_int = 17; +pub const EFLAGS: ::c_int = 18; +pub const RSP: ::c_int = 19; +pub const SS: ::c_int = 20; +pub const FS_BASE: ::c_int = 21; +pub const GS_BASE: ::c_int = 22; +pub const DS: ::c_int = 23; +pub const ES: ::c_int = 24; +pub const FS: ::c_int = 25; +pub const GS: ::c_int = 26; + +pub const MAP_32BIT: ::c_int = 0x0040; + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; diff --git a/src/rust/vendor/libc/src/unix/hermit/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/hermit/aarch64.rs similarity index 100% rename from src/rust/vendor/libc/src/unix/hermit/aarch64.rs rename to src/rust/vendor/libc-0.2.146/src/hermit/aarch64.rs diff --git a/src/rust/vendor/libc-0.2.146/src/hermit/mod.rs b/src/rust/vendor/libc-0.2.146/src/hermit/mod.rs new file mode 100644 index 000000000..bffcefdd8 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/hermit/mod.rs @@ -0,0 +1,64 @@ +// libc port for HermitCore (https://hermitcore.org) +// +// Ported by Colin Fink +// and Stefan Lankes + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_int = i32; +pub type c_uint = u32; +pub type c_float = f32; +pub type c_double = f64; +pub type c_longlong = i64; +pub type c_ulonglong = u64; +pub type intmax_t = i64; +pub type uintmax_t = u64; + +pub type size_t = usize; +pub type ptrdiff_t = isize; +pub type intptr_t = isize; +pub type uintptr_t = usize; +pub type ssize_t = isize; + +pub type c_long = i64; +pub type c_ulong = u64; + +pub type wint_t = u32; +pub type wctype_t = i64; + +pub type regoff_t = size_t; +pub type off_t = c_long; + +cfg_if! { + if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } else if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } else { + // Unknown target_arch + } +} + +cfg_if! { + if #[cfg(libc_core_cvoid)] { + pub use ::ffi::c_void; + } else { + // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help + // enable more optimization opportunities around it recognizing things + // like malloc/free. + #[repr(u8)] + #[allow(missing_copy_implementations)] + #[allow(missing_debug_implementations)] + pub enum c_void { + // Two dummy variants so the #[repr] attribute can be used. + #[doc(hidden)] + __variant1, + #[doc(hidden)] + __variant2, + } + } +} diff --git a/src/rust/vendor/libc/src/unix/hermit/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/hermit/x86_64.rs similarity index 100% rename from src/rust/vendor/libc/src/unix/hermit/x86_64.rs rename to src/rust/vendor/libc-0.2.146/src/hermit/x86_64.rs diff --git a/src/rust/vendor/libc-0.2.146/src/lib.rs b/src/rust/vendor/libc-0.2.146/src/lib.rs new file mode 100644 index 000000000..d9bd318d1 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/lib.rs @@ -0,0 +1,163 @@ +//! libc - Raw FFI bindings to platforms' system libraries +//! +//! [Documentation for other platforms][pd]. +//! +//! [pd]: https://rust-lang.github.io/libc/#platform-specific-documentation +#![crate_name = "libc"] +#![crate_type = "rlib"] +#![allow( + renamed_and_removed_lints, // Keep this order. + unknown_lints, // Keep this order. + bad_style, + overflowing_literals, + improper_ctypes, + // This lint is renamed but we run CI for old stable rustc so should be here. + redundant_semicolon, + redundant_semicolons, + unused_macros, + unused_macro_rules, +)] +#![cfg_attr(libc_deny_warnings, deny(warnings))] +// Attributes needed when building as part of the standard library +#![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, no_core))] +#![cfg_attr(libc_thread_local, feature(thread_local))] +// Enable extra lints: +#![cfg_attr(feature = "extra_traits", deny(missing_debug_implementations))] +#![deny(missing_copy_implementations, safe_packed_borrows)] +#![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)] +#![cfg_attr(feature = "rustc-dep-of-std", no_core)] +#![cfg_attr(libc_const_extern_fn_unstable, feature(const_extern_fn))] + +#[macro_use] +mod macros; + +cfg_if! { + if #[cfg(feature = "rustc-dep-of-std")] { + extern crate rustc_std_workspace_core as core; + #[allow(unused_imports)] + use core::iter; + #[allow(unused_imports)] + use core::ops; + #[allow(unused_imports)] + use core::option; + } +} + +cfg_if! { + if #[cfg(libc_priv_mod_use)] { + #[cfg(libc_core_cvoid)] + #[allow(unused_imports)] + use core::ffi; + #[allow(unused_imports)] + use core::fmt; + #[allow(unused_imports)] + use core::hash; + #[allow(unused_imports)] + use core::num; + #[allow(unused_imports)] + use core::mem; + #[doc(hidden)] + #[allow(unused_imports)] + use core::clone::Clone; + #[doc(hidden)] + #[allow(unused_imports)] + use core::marker::{Copy, Send, Sync}; + #[doc(hidden)] + #[allow(unused_imports)] + use core::option::Option; + } else { + #[doc(hidden)] + #[allow(unused_imports)] + pub use core::fmt; + #[doc(hidden)] + #[allow(unused_imports)] + pub use core::hash; + #[doc(hidden)] + #[allow(unused_imports)] + pub use core::num; + #[doc(hidden)] + #[allow(unused_imports)] + pub use core::mem; + #[doc(hidden)] + #[allow(unused_imports)] + pub use core::clone::Clone; + #[doc(hidden)] + #[allow(unused_imports)] + pub use core::marker::{Copy, Send, Sync}; + #[doc(hidden)] + #[allow(unused_imports)] + pub use core::option::Option; + } +} + +cfg_if! { + if #[cfg(windows)] { + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod windows; + pub use windows::*; + } else if #[cfg(target_os = "fuchsia")] { + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod fuchsia; + pub use fuchsia::*; + } else if #[cfg(target_os = "switch")] { + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod switch; + pub use switch::*; + } else if #[cfg(target_os = "psp")] { + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod psp; + pub use psp::*; + } else if #[cfg(target_os = "vxworks")] { + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod vxworks; + pub use vxworks::*; + } else if #[cfg(target_os = "solid_asp3")] { + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod solid; + pub use solid::*; + } else if #[cfg(unix)] { + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod unix; + pub use unix::*; + } else if #[cfg(target_os = "hermit")] { + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod hermit; + pub use hermit::*; + } else if #[cfg(all(target_env = "sgx", target_vendor = "fortanix"))] { + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod sgx; + pub use sgx::*; + } else if #[cfg(any(target_env = "wasi", target_os = "wasi"))] { + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod wasi; + pub use wasi::*; + } else if #[cfg(target_os = "xous")] { + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod xous; + pub use xous::*; + } else { + // non-supported targets: empty... + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/macros.rs b/src/rust/vendor/libc-0.2.146/src/macros.rs new file mode 100644 index 000000000..fd473702f --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/macros.rs @@ -0,0 +1,343 @@ +/// A macro for defining #[cfg] if-else statements. +/// +/// This is similar to the `if/elif` C preprocessor macro by allowing definition +/// of a cascade of `#[cfg]` cases, emitting the implementation which matches +/// first. +/// +/// This allows you to conveniently provide a long list #[cfg]'d blocks of code +/// without having to rewrite each clause multiple times. +macro_rules! cfg_if { + // match if/else chains with a final `else` + ($( + if #[cfg($($meta:meta),*)] { $($it:item)* } + ) else * else { + $($it2:item)* + }) => { + cfg_if! { + @__items + () ; + $( ( ($($meta),*) ($($it)*) ), )* + ( () ($($it2)*) ), + } + }; + + // match if/else chains lacking a final `else` + ( + if #[cfg($($i_met:meta),*)] { $($i_it:item)* } + $( + else if #[cfg($($e_met:meta),*)] { $($e_it:item)* } + )* + ) => { + cfg_if! { + @__items + () ; + ( ($($i_met),*) ($($i_it)*) ), + $( ( ($($e_met),*) ($($e_it)*) ), )* + ( () () ), + } + }; + + // Internal and recursive macro to emit all the items + // + // Collects all the negated `cfg`s in a list at the beginning and after the + // semicolon is all the remaining items + (@__items ($($not:meta,)*) ; ) => {}; + (@__items ($($not:meta,)*) ; ( ($($m:meta),*) ($($it:item)*) ), + $($rest:tt)*) => { + // Emit all items within one block, applying an appropriate #[cfg]. The + // #[cfg] will require all `$m` matchers specified and must also negate + // all previous matchers. + cfg_if! { @__apply cfg(all($($m,)* not(any($($not),*)))), $($it)* } + + // Recurse to emit all other items in `$rest`, and when we do so add all + // our `$m` matchers to the list of `$not` matchers as future emissions + // will have to negate everything we just matched as well. + cfg_if! { @__items ($($not,)* $($m,)*) ; $($rest)* } + }; + + // Internal macro to Apply a cfg attribute to a list of items + (@__apply $m:meta, $($it:item)*) => { + $(#[$m] $it)* + }; +} + +macro_rules! s { + ($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($( + s!(it: $(#[$attr])* pub $t $i { $($field)* }); + )*); + (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => ( + compile_error!("unions cannot derive extra traits, use s_no_extra_traits instead"); + ); + (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( + __item! { + #[repr(C)] + #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] + #[allow(deprecated)] + $(#[$attr])* + pub struct $i { $($field)* } + } + #[allow(deprecated)] + impl ::Copy for $i {} + #[allow(deprecated)] + impl ::Clone for $i { + fn clone(&self) -> $i { *self } + } + ); +} + +macro_rules! s_no_extra_traits { + ($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($( + s_no_extra_traits!(it: $(#[$attr])* pub $t $i { $($field)* }); + )*); + (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => ( + cfg_if! { + if #[cfg(libc_union)] { + __item! { + #[repr(C)] + $(#[$attr])* + pub union $i { $($field)* } + } + + impl ::Copy for $i {} + impl ::Clone for $i { + fn clone(&self) -> $i { *self } + } + } + } + ); + (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( + __item! { + #[repr(C)] + $(#[$attr])* + pub struct $i { $($field)* } + } + #[allow(deprecated)] + impl ::Copy for $i {} + #[allow(deprecated)] + impl ::Clone for $i { + fn clone(&self) -> $i { *self } + } + ); +} + +macro_rules! e { + ($($(#[$attr:meta])* pub enum $i:ident { $($field:tt)* })*) => ($( + __item! { + #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] + $(#[$attr])* + pub enum $i { $($field)* } + } + impl ::Copy for $i {} + impl ::Clone for $i { + fn clone(&self) -> $i { *self } + } + )*); +} + +macro_rules! s_paren { + ($($(#[$attr:meta])* pub struct $i:ident ( $($field:tt)* ); )* ) => ($( + __item! { + #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] + $(#[$attr])* + pub struct $i ( $($field)* ); + } + impl ::Copy for $i {} + impl ::Clone for $i { + fn clone(&self) -> $i { *self } + } + )*); +} + +// This is a pretty horrible hack to allow us to conditionally mark +// some functions as 'const', without requiring users of this macro +// to care about the "const-extern-fn" feature. +// +// When 'const-extern-fn' is enabled, we emit the captured 'const' keyword +// in the expanded function. +// +// When 'const-extern-fn' is disabled, we always emit a plain 'pub unsafe extern fn'. +// Note that the expression matched by the macro is exactly the same - this allows +// users of this macro to work whether or not 'const-extern-fn' is enabled +// +// Unfortunately, we need to duplicate most of this macro between the 'cfg_if' blocks. +// This is because 'const unsafe extern fn' won't even parse on older compilers, +// so we need to avoid emitting it at all of 'const-extern-fn'. +// +// Specifically, moving the 'cfg_if' into the macro body will *not* work. +// Doing so would cause the '#[cfg(feature = "const-extern-fn")]' to be emitted +// into user code. The 'cfg' gate will not stop Rust from trying to parse the +// 'pub const unsafe extern fn', so users would get a compiler error even when +// the 'const-extern-fn' feature is disabled +// +// Note that users of this macro need to place 'const' in a weird position +// (after the closing ')' for the arguments, but before the return type). +// This was the only way I could satisfy the following two requirements: +// 1. Avoid ambiguity errors from 'macro_rules!' (which happen when writing '$foo:ident fn' +// 2. Allow users of this macro to mix 'pub fn foo' and 'pub const fn bar' within the same +// 'f!' block +cfg_if! { + if #[cfg(libc_const_extern_fn)] { + macro_rules! f { + ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( + $($arg:ident: $argty:ty),* + ) -> $ret:ty { + $($body:stmt);* + })*) => ($( + #[inline] + $(#[$attr])* + pub $($constness)* unsafe extern fn $i($($arg: $argty),* + ) -> $ret { + $($body);* + } + )*) + } + + macro_rules! safe_f { + ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( + $($arg:ident: $argty:ty),* + ) -> $ret:ty { + $($body:stmt);* + })*) => ($( + #[inline] + $(#[$attr])* + pub $($constness)* extern fn $i($($arg: $argty),* + ) -> $ret { + $($body);* + } + )*) + } + + macro_rules! const_fn { + ($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident( + $($arg:ident: $argty:ty),* + ) -> $ret:ty { + $($body:stmt);* + })*) => ($( + #[inline] + $(#[$attr])* + $($constness)* fn $i($($arg: $argty),* + ) -> $ret { + $($body);* + } + )*) + } + + } else { + macro_rules! f { + ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( + $($arg:ident: $argty:ty),* + ) -> $ret:ty { + $($body:stmt);* + })*) => ($( + #[inline] + $(#[$attr])* + pub unsafe extern fn $i($($arg: $argty),* + ) -> $ret { + $($body);* + } + )*) + } + + macro_rules! safe_f { + ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( + $($arg:ident: $argty:ty),* + ) -> $ret:ty { + $($body:stmt);* + })*) => ($( + #[inline] + $(#[$attr])* + pub extern fn $i($($arg: $argty),* + ) -> $ret { + $($body);* + } + )*) + } + + macro_rules! const_fn { + ($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident( + $($arg:ident: $argty:ty),* + ) -> $ret:ty { + $($body:stmt);* + })*) => ($( + #[inline] + $(#[$attr])* + fn $i($($arg: $argty),* + ) -> $ret { + $($body);* + } + )*) + } + } +} + +macro_rules! __item { + ($i:item) => { + $i + }; +} + +macro_rules! align_const { + ($($(#[$attr:meta])* + pub const $name:ident : $t1:ty + = $t2:ident { $($field:tt)* };)*) => ($( + #[cfg(libc_align)] + $(#[$attr])* + pub const $name : $t1 = $t2 { + $($field)* + }; + #[cfg(not(libc_align))] + $(#[$attr])* + pub const $name : $t1 = $t2 { + $($field)* + __align: [], + }; + )*) +} + +// This macro is used to deprecate items that should be accessed via the mach2 crate +macro_rules! deprecated_mach { + (pub const $id:ident: $ty:ty = $expr:expr;) => { + #[deprecated( + since = "0.2.55", + note = "Use the `mach2` crate instead", + )] + #[allow(deprecated)] + pub const $id: $ty = $expr; + }; + ($(pub const $id:ident: $ty:ty = $expr:expr;)*) => { + $( + deprecated_mach!( + pub const $id: $ty = $expr; + ); + )* + }; + (pub type $id:ident = $ty:ty;) => { + #[deprecated( + since = "0.2.55", + note = "Use the `mach2` crate instead", + )] + #[allow(deprecated)] + pub type $id = $ty; + }; + ($(pub type $id:ident = $ty:ty;)*) => { + $( + deprecated_mach!( + pub type $id = $ty; + ); + )* + } +} + +#[cfg(not(libc_ptr_addr_of))] +macro_rules! ptr_addr_of { + ($place:expr) => { + &$place + }; +} + +#[cfg(libc_ptr_addr_of)] +macro_rules! ptr_addr_of { + ($place:expr) => { + ::core::ptr::addr_of!($place) + }; +} diff --git a/src/rust/vendor/libc-0.2.146/src/psp.rs b/src/rust/vendor/libc-0.2.146/src/psp.rs new file mode 100644 index 000000000..575232dad --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/psp.rs @@ -0,0 +1,4174 @@ +//! PSP C type definitions +//! +//! These type declarations are not enough, as they must be ultimately resolved +//! by the linker. Crates that use these definitions must, somewhere in the +//! crate graph, include a stub provider crate such as the `psp` crate. + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_int = i32; +pub type c_uint = u32; +pub type c_float = f32; +pub type c_double = f64; +pub type c_longlong = i64; +pub type c_ulonglong = u64; +pub type intmax_t = i64; +pub type uintmax_t = u64; + +pub type size_t = usize; +pub type ptrdiff_t = isize; +pub type intptr_t = isize; +pub type uintptr_t = usize; +pub type ssize_t = isize; + +pub type c_char = u8; +pub type c_long = i64; +pub type c_ulong = u64; + +cfg_if! { + if #[cfg(libc_core_cvoid)] { + pub use ::ffi::c_void; + } else { + // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help + // enable more optimization opportunities around it recognizing things + // like malloc/free. + #[repr(u8)] + #[allow(missing_copy_implementations)] + #[allow(missing_debug_implementations)] + pub enum c_void { + // Two dummy variants so the #[repr] attribute can be used. + #[doc(hidden)] + __variant1, + #[doc(hidden)] + __variant2, + } + } +} + +pub type SceKernelVTimerHandler = unsafe extern "C" fn( + uid: SceUid, + arg1: *mut SceKernelSysClock, + arg2: *mut SceKernelSysClock, + arg3: *mut c_void, +) -> u32; + +pub type SceKernelVTimerHandlerWide = + unsafe extern "C" fn(uid: SceUid, arg1: i64, arg2: i64, arg3: *mut c_void) -> u32; + +pub type SceKernelThreadEventHandler = + unsafe extern "C" fn(mask: i32, thid: SceUid, common: *mut c_void) -> i32; + +pub type SceKernelAlarmHandler = unsafe extern "C" fn(common: *mut c_void) -> u32; + +pub type SceKernelCallbackFunction = + unsafe extern "C" fn(arg1: i32, arg2: i32, arg: *mut c_void) -> i32; + +pub type SceKernelThreadEntry = unsafe extern "C" fn(args: usize, argp: *mut c_void) -> i32; + +pub type PowerCallback = extern "C" fn(unknown: i32, power_info: i32); + +pub type IoPermissions = i32; + +pub type UmdCallback = fn(unknown: i32, event: i32) -> i32; + +pub type SceMpegRingbufferCb = + ::Option i32>; + +pub type GuCallback = ::Option; +pub type GuSwapBuffersCallback = + ::Option; + +pub type SceNetAdhocctlHandler = + ::Option; + +pub type AdhocMatchingCallback = ::Option< + unsafe extern "C" fn( + matching_id: i32, + event: i32, + mac: *mut u8, + opt_len: i32, + opt_data: *mut c_void, + ), +>; + +pub type SceNetApctlHandler = ::Option< + unsafe extern "C" fn(oldState: i32, newState: i32, event: i32, error: i32, pArg: *mut c_void), +>; + +pub type HttpMallocFunction = ::Option *mut c_void>; +pub type HttpReallocFunction = + ::Option *mut c_void>; +pub type HttpFreeFunction = ::Option; +pub type HttpPasswordCB = ::Option< + unsafe extern "C" fn( + request: i32, + auth_type: HttpAuthType, + realm: *const u8, + username: *mut u8, + password: *mut u8, + need_entity: i32, + entity_body: *mut *mut u8, + entity_size: *mut usize, + save: *mut i32, + ) -> i32, +>; + +pub type socklen_t = u32; + +e! { + #[repr(u32)] + pub enum AudioFormat { + Stereo = 0, + Mono = 0x10, + } + + #[repr(u32)] + pub enum DisplayMode { + Lcd = 0, + } + + #[repr(u32)] + pub enum DisplayPixelFormat { + Psm5650 = 0, + Psm5551 = 1, + Psm4444 = 2, + Psm8888 = 3, + } + + #[repr(u32)] + pub enum DisplaySetBufSync { + Immediate = 0, + NextFrame = 1, + } + + #[repr(i32)] + pub enum AudioOutputFrequency { + Khz48 = 48000, + Khz44_1 = 44100, + Khz32 = 32000, + Khz24 = 24000, + Khz22_05 = 22050, + Khz16 = 16000, + Khz12 = 12000, + Khz11_025 = 11025, + Khz8 = 8000, + } + + #[repr(i32)] + pub enum AudioInputFrequency { + Khz44_1 = 44100, + Khz22_05 = 22050, + Khz11_025 = 11025, + } + + #[repr(u32)] + pub enum CtrlMode { + Digital = 0, + Analog, + } + + #[repr(i32)] + pub enum GeMatrixType { + Bone0 = 0, + Bone1, + Bone2, + Bone3, + Bone4, + Bone5, + Bone6, + Bone7, + World, + View, + Projection, + TexGen, + } + + #[repr(i32)] + pub enum GeListState { + Done = 0, + Queued, + DrawingDone, + StallReached, + CancelDone, + } + + #[repr(u8)] + pub enum GeCommand { + Nop = 0, + Vaddr = 0x1, + Iaddr = 0x2, + Prim = 0x4, + Bezier = 0x5, + Spline = 0x6, + BoundingBox = 0x7, + Jump = 0x8, + BJump = 0x9, + Call = 0xa, + Ret = 0xb, + End = 0xc, + Signal = 0xe, + Finish = 0xf, + Base = 0x10, + VertexType = 0x12, + OffsetAddr = 0x13, + Origin = 0x14, + Region1 = 0x15, + Region2 = 0x16, + LightingEnable = 0x17, + LightEnable0 = 0x18, + LightEnable1 = 0x19, + LightEnable2 = 0x1a, + LightEnable3 = 0x1b, + DepthClampEnable = 0x1c, + CullFaceEnable = 0x1d, + TextureMapEnable = 0x1e, + FogEnable = 0x1f, + DitherEnable = 0x20, + AlphaBlendEnable = 0x21, + AlphaTestEnable = 0x22, + ZTestEnable = 0x23, + StencilTestEnable = 0x24, + AntiAliasEnable = 0x25, + PatchCullEnable = 0x26, + ColorTestEnable = 0x27, + LogicOpEnable = 0x28, + BoneMatrixNumber = 0x2a, + BoneMatrixData = 0x2b, + MorphWeight0 = 0x2c, + MorphWeight1 = 0x2d, + MorphWeight2 = 0x2e, + MorphWeight3 = 0x2f, + MorphWeight4 = 0x30, + MorphWeight5 = 0x31, + MorphWeight6 = 0x32, + MorphWeight7 = 0x33, + PatchDivision = 0x36, + PatchPrimitive = 0x37, + PatchFacing = 0x38, + WorldMatrixNumber = 0x3a, + WorldMatrixData = 0x3b, + ViewMatrixNumber = 0x3c, + ViewMatrixData = 0x3d, + ProjMatrixNumber = 0x3e, + ProjMatrixData = 0x3f, + TGenMatrixNumber = 0x40, + TGenMatrixData = 0x41, + ViewportXScale = 0x42, + ViewportYScale = 0x43, + ViewportZScale = 0x44, + ViewportXCenter = 0x45, + ViewportYCenter = 0x46, + ViewportZCenter = 0x47, + TexScaleU = 0x48, + TexScaleV = 0x49, + TexOffsetU = 0x4a, + TexOffsetV = 0x4b, + OffsetX = 0x4c, + OffsetY = 0x4d, + ShadeMode = 0x50, + ReverseNormal = 0x51, + MaterialUpdate = 0x53, + MaterialEmissive = 0x54, + MaterialAmbient = 0x55, + MaterialDiffuse = 0x56, + MaterialSpecular = 0x57, + MaterialAlpha = 0x58, + MaterialSpecularCoef = 0x5b, + AmbientColor = 0x5c, + AmbientAlpha = 0x5d, + LightMode = 0x5e, + LightType0 = 0x5f, + LightType1 = 0x60, + LightType2 = 0x61, + LightType3 = 0x62, + Light0X = 0x63, + Light0Y, + Light0Z, + Light1X, + Light1Y, + Light1Z, + Light2X, + Light2Y, + Light2Z, + Light3X, + Light3Y, + Light3Z, + Light0DirectionX = 0x6f, + Light0DirectionY, + Light0DirectionZ, + Light1DirectionX, + Light1DirectionY, + Light1DirectionZ, + Light2DirectionX, + Light2DirectionY, + Light2DirectionZ, + Light3DirectionX, + Light3DirectionY, + Light3DirectionZ, + Light0ConstantAtten = 0x7b, + Light0LinearAtten, + Light0QuadtraticAtten, + Light1ConstantAtten, + Light1LinearAtten, + Light1QuadtraticAtten, + Light2ConstantAtten, + Light2LinearAtten, + Light2QuadtraticAtten, + Light3ConstantAtten, + Light3LinearAtten, + Light3QuadtraticAtten, + Light0ExponentAtten = 0x87, + Light1ExponentAtten, + Light2ExponentAtten, + Light3ExponentAtten, + Light0CutoffAtten = 0x8b, + Light1CutoffAtten, + Light2CutoffAtten, + Light3CutoffAtten, + Light0Ambient = 0x8f, + Light0Diffuse, + Light0Specular, + Light1Ambient, + Light1Diffuse, + Light1Specular, + Light2Ambient, + Light2Diffuse, + Light2Specular, + Light3Ambient, + Light3Diffuse, + Light3Specular, + Cull = 0x9b, + FrameBufPtr = 0x9c, + FrameBufWidth = 0x9d, + ZBufPtr = 0x9e, + ZBufWidth = 0x9f, + TexAddr0 = 0xa0, + TexAddr1, + TexAddr2, + TexAddr3, + TexAddr4, + TexAddr5, + TexAddr6, + TexAddr7, + TexBufWidth0 = 0xa8, + TexBufWidth1, + TexBufWidth2, + TexBufWidth3, + TexBufWidth4, + TexBufWidth5, + TexBufWidth6, + TexBufWidth7, + ClutAddr = 0xb0, + ClutAddrUpper = 0xb1, + TransferSrc, + TransferSrcW, + TransferDst, + TransferDstW, + TexSize0 = 0xb8, + TexSize1, + TexSize2, + TexSize3, + TexSize4, + TexSize5, + TexSize6, + TexSize7, + TexMapMode = 0xc0, + TexShadeLs = 0xc1, + TexMode = 0xc2, + TexFormat = 0xc3, + LoadClut = 0xc4, + ClutFormat = 0xc5, + TexFilter = 0xc6, + TexWrap = 0xc7, + TexLevel = 0xc8, + TexFunc = 0xc9, + TexEnvColor = 0xca, + TexFlush = 0xcb, + TexSync = 0xcc, + Fog1 = 0xcd, + Fog2 = 0xce, + FogColor = 0xcf, + TexLodSlope = 0xd0, + FramebufPixFormat = 0xd2, + ClearMode = 0xd3, + Scissor1 = 0xd4, + Scissor2 = 0xd5, + MinZ = 0xd6, + MaxZ = 0xd7, + ColorTest = 0xd8, + ColorRef = 0xd9, + ColorTestmask = 0xda, + AlphaTest = 0xdb, + StencilTest = 0xdc, + StencilOp = 0xdd, + ZTest = 0xde, + BlendMode = 0xdf, + BlendFixedA = 0xe0, + BlendFixedB = 0xe1, + Dith0 = 0xe2, + Dith1, + Dith2, + Dith3, + LogicOp = 0xe6, + ZWriteDisable = 0xe7, + MaskRgb = 0xe8, + MaskAlpha = 0xe9, + TransferStart = 0xea, + TransferSrcPos = 0xeb, + TransferDstPos = 0xec, + TransferSize = 0xee, + Vscx = 0xf0, + Vscy = 0xf1, + Vscz = 0xf2, + Vtcs = 0xf3, + Vtct = 0xf4, + Vtcq = 0xf5, + Vcv = 0xf6, + Vap = 0xf7, + Vfc = 0xf8, + Vscv = 0xf9, + + Unknown03 = 0x03, + Unknown0D = 0x0d, + Unknown11 = 0x11, + Unknown29 = 0x29, + Unknown34 = 0x34, + Unknown35 = 0x35, + Unknown39 = 0x39, + Unknown4E = 0x4e, + Unknown4F = 0x4f, + Unknown52 = 0x52, + Unknown59 = 0x59, + Unknown5A = 0x5a, + UnknownB6 = 0xb6, + UnknownB7 = 0xb7, + UnknownD1 = 0xd1, + UnknownED = 0xed, + UnknownEF = 0xef, + UnknownFA = 0xfa, + UnknownFB = 0xfb, + UnknownFC = 0xfc, + UnknownFD = 0xfd, + UnknownFE = 0xfe, + NopFF = 0xff, + } + + #[repr(i32)] + pub enum SceSysMemPartitionId { + SceKernelUnknownPartition = 0, + SceKernelPrimaryKernelPartition = 1, + SceKernelPrimaryUserPartition = 2, + SceKernelOtherKernelPartition1 = 3, + SceKernelOtherKernelPartition2 = 4, + SceKernelVshellPARTITION = 5, + SceKernelScUserPartition = 6, + SceKernelMeUserPartition = 7, + SceKernelExtendedScKernelPartition = 8, + SceKernelExtendedSc2KernelPartition = 9, + SceKernelExtendedMeKernelPartition = 10, + SceKernelVshellKernelPartition = 11, + SceKernelExtendedKernelPartition = 12, + } + + #[repr(i32)] + pub enum SceSysMemBlockTypes { + Low = 0, + High, + Addr, + } + + #[repr(u32)] + pub enum Interrupt { + Gpio = 4, + Ata = 5, + Umd = 6, + Mscm0 = 7, + Wlan = 8, + Audio = 10, + I2c = 12, + Sircs = 14, + Systimer0 = 15, + Systimer1 = 16, + Systimer2 = 17, + Systimer3 = 18, + Thread0 = 19, + Nand = 20, + Dmacplus = 21, + Dma0 = 22, + Dma1 = 23, + Memlmd = 24, + Ge = 25, + Vblank = 30, + Mecodec = 31, + Hpremote = 36, + Mscm1 = 60, + Mscm2 = 61, + Thread1 = 65, + Interrupt = 66, + } + + #[repr(u32)] + pub enum SubInterrupt { + Gpio = Interrupt::Gpio as u32, + Ata = Interrupt::Ata as u32, + Umd = Interrupt::Umd as u32, + Dmacplus = Interrupt::Dmacplus as u32, + Ge = Interrupt::Ge as u32, + Display = Interrupt::Vblank as u32, + } + + #[repr(u32)] + pub enum SceKernelIdListType { + Thread = 1, + Semaphore = 2, + EventFlag = 3, + Mbox = 4, + Vpl = 5, + Fpl = 6, + Mpipe = 7, + Callback = 8, + ThreadEventHandler = 9, + Alarm = 10, + VTimer = 11, + SleepThread = 64, + DelayThread = 65, + SuspendThread = 66, + DormantThread = 67, + } + + #[repr(i32)] + pub enum UsbCamResolution { + Px160_120 = 0, + Px176_144 = 1, + Px320_240 = 2, + Px352_288 = 3, + Px640_480 = 4, + Px1024_768 = 5, + Px1280_960 = 6, + Px480_272 = 7, + Px360_272 = 8, + } + + #[repr(i32)] + pub enum UsbCamResolutionEx { + Px160_120 = 0, + Px176_144 = 1, + Px320_240 = 2, + Px352_288 = 3, + Px360_272 = 4, + Px480_272 = 5, + Px640_480 = 6, + Px1024_768 = 7, + Px1280_960 = 8, + } + + #[repr(i32)] + pub enum UsbCamDelay { + NoDelay = 0, + Delay10Sec = 1, + Delay20Sec = 2, + Delay30Sec = 3, + } + + #[repr(i32)] + pub enum UsbCamFrameRate { + Fps3_75 = 0, + Fps5 = 1, + Fps7_5 = 2, + Fps10 = 3, + Fps15 = 4, + Fps20 = 5, + Fps30 = 6, + Fps60 = 7, + } + + #[repr(i32)] + pub enum UsbCamWb { + Auto = 0, + Daylight = 1, + Fluorescent = 2, + Incadescent = 3, + } + + #[repr(i32)] + pub enum UsbCamEffectMode { + Normal = 0, + Negative = 1, + Blackwhite = 2, + Sepia = 3, + Blue = 4, + Red = 5, + Green = 6, + } + + #[repr(i32)] + pub enum UsbCamEvLevel { + Pos2_0 = 0, + Pos1_7 = 1, + Pos1_5 = 2, + Pos1_3 = 3, + Pos1_0 = 4, + Pos0_7 = 5, + Pos0_5 = 6, + Pos0_3 = 7, + Zero = 8, + Neg0_3, + Neg0_5, + Neg0_7, + Neg1_0, + Neg1_3, + Neg1_5, + Neg1_7, + Neg2_0, + } + + #[repr(i32)] + pub enum RtcCheckValidError { + InvalidYear = -1, + InvalidMonth = -2, + InvalidDay = -3, + InvalidHour = -4, + InvalidMinutes = -5, + InvalidSeconds = -6, + InvalidMicroseconds = -7, + } + + #[repr(u32)] + pub enum PowerTick { + All = 0, + Suspend = 1, + Display = 6, + } + + #[repr(u32)] + pub enum IoAssignPerms { + RdWr = 0, + RdOnly = 1, + } + + #[repr(u32)] + pub enum IoWhence { + Set = 0, + Cur = 1, + End = 2, + } + + #[repr(u32)] + pub enum UmdType { + Game = 0x10, + Video = 0x20, + Audio = 0x40, + } + + #[repr(u32)] + pub enum GuPrimitive { + Points = 0, + Lines = 1, + LineStrip = 2, + Triangles = 3, + TriangleStrip = 4, + TriangleFan = 5, + Sprites = 6, + } + + #[repr(u32)] + pub enum PatchPrimitive { + Points = 0, + LineStrip = 2, + TriangleStrip = 4, + } + + #[repr(u32)] + pub enum GuState { + AlphaTest = 0, + DepthTest = 1, + ScissorTest = 2, + StencilTest = 3, + Blend = 4, + CullFace = 5, + Dither = 6, + Fog = 7, + ClipPlanes = 8, + Texture2D = 9, + Lighting = 10, + Light0 = 11, + Light1 = 12, + Light2 = 13, + Light3 = 14, + LineSmooth = 15, + PatchCullFace = 16, + ColorTest = 17, + ColorLogicOp = 18, + FaceNormalReverse = 19, + PatchFace = 20, + Fragment2X = 21, + } + + #[repr(u32)] + pub enum MatrixMode { + Projection = 0, + View = 1, + Model = 2, + Texture = 3, + } + + #[repr(u32)] + pub enum TexturePixelFormat { + Psm5650 = 0, + Psm5551 = 1, + Psm4444 = 2, + Psm8888 = 3, + PsmT4 = 4, + PsmT8 = 5, + PsmT16 = 6, + PsmT32 = 7, + PsmDxt1 = 8, + PsmDxt3 = 9, + PsmDxt5 = 10, + } + + #[repr(u32)] + pub enum SplineMode { + FillFill = 0, + OpenFill = 1, + FillOpen = 2, + OpenOpen = 3, + } + + #[repr(u32)] + pub enum ShadingModel { + Flat = 0, + Smooth = 1, + } + + #[repr(u32)] + pub enum LogicalOperation { + Clear = 0, + And = 1, + AndReverse = 2, + Copy = 3, + AndInverted = 4, + Noop = 5, + Xor = 6, + Or = 7, + Nor = 8, + Equiv = 9, + Inverted = 10, + OrReverse = 11, + CopyInverted = 12, + OrInverted = 13, + Nand = 14, + Set = 15, + } + + #[repr(u32)] + pub enum TextureFilter { + Nearest = 0, + Linear = 1, + NearestMipmapNearest = 4, + LinearMipmapNearest = 5, + NearestMipmapLinear = 6, + LinearMipmapLinear = 7, + } + + #[repr(u32)] + pub enum TextureMapMode { + TextureCoords = 0, + TextureMatrix = 1, + EnvironmentMap = 2, + } + + #[repr(u32)] + pub enum TextureLevelMode { + Auto = 0, + Const = 1, + Slope = 2, + } + + #[repr(u32)] + pub enum TextureProjectionMapMode { + Position = 0, + Uv = 1, + NormalizedNormal = 2, + Normal = 3, + } + + #[repr(u32)] + pub enum GuTexWrapMode { + Repeat = 0, + Clamp = 1, + } + + #[repr(u32)] + pub enum FrontFaceDirection { + Clockwise = 0, + CounterClockwise = 1, + } + + #[repr(u32)] + pub enum AlphaFunc { + Never = 0, + Always, + Equal, + NotEqual, + Less, + LessOrEqual, + Greater, + GreaterOrEqual, + } + + #[repr(u32)] + pub enum StencilFunc { + Never = 0, + Always, + Equal, + NotEqual, + Less, + LessOrEqual, + Greater, + GreaterOrEqual, + } + + #[repr(u32)] + pub enum ColorFunc { + Never = 0, + Always, + Equal, + NotEqual, + } + + #[repr(u32)] + pub enum DepthFunc { + Never = 0, + Always, + Equal, + NotEqual, + Less, + LessOrEqual, + Greater, + GreaterOrEqual, + } + + #[repr(u32)] + pub enum TextureEffect { + Modulate = 0, + Decal = 1, + Blend = 2, + Replace = 3, + Add = 4, + } + + #[repr(u32)] + pub enum TextureColorComponent { + Rgb = 0, + Rgba = 1, + } + + #[repr(u32)] + pub enum MipmapLevel { + None = 0, + Level1, + Level2, + Level3, + Level4, + Level5, + Level6, + Level7, + } + + #[repr(u32)] + pub enum BlendOp { + Add = 0, + Subtract = 1, + ReverseSubtract = 2, + Min = 3, + Max = 4, + Abs = 5, + } + + #[repr(u32)] + pub enum BlendSrc { + SrcColor = 0, + OneMinusSrcColor = 1, + SrcAlpha = 2, + OneMinusSrcAlpha = 3, + Fix = 10, + } + + #[repr(u32)] + pub enum BlendDst { + DstColor = 0, + OneMinusDstColor = 1, + DstAlpha = 4, + OneMinusDstAlpha = 5, + Fix = 10, + } + + #[repr(u32)] + pub enum StencilOperation { + Keep = 0, + Zero = 1, + Replace = 2, + Invert = 3, + Incr = 4, + Decr = 5, + } + + #[repr(u32)] + pub enum LightMode { + SingleColor = 0, + SeparateSpecularColor = 1, + } + + #[repr(u32)] + pub enum LightType { + Directional = 0, + Pointlight = 1, + Spotlight = 2, + } + + #[repr(u32)] + pub enum GuContextType { + Direct = 0, + Call = 1, + Send = 2, + } + + #[repr(u32)] + pub enum GuQueueMode { + Tail = 0, + Head = 1, + } + + #[repr(u32)] + pub enum GuSyncMode { + Finish = 0, + Signal = 1, + Done = 2, + List = 3, + Send = 4, + } + + #[repr(u32)] + pub enum GuSyncBehavior { + Wait = 0, + NoWait = 1, + } + + #[repr(u32)] + pub enum GuCallbackId { + Signal = 1, + Finish = 4, + } + + #[repr(u32)] + pub enum SignalBehavior { + Suspend = 1, + Continue = 2, + } + + #[repr(u32)] + pub enum ClutPixelFormat { + Psm5650 = 0, + Psm5551 = 1, + Psm4444 = 2, + Psm8888 = 3, + } + + #[repr(C)] + pub enum KeyType { + Directory = 1, + Integer = 2, + String = 3, + Bytes = 4, + } + + #[repr(u32)] + pub enum UtilityMsgDialogMode { + Error, + Text, + } + + #[repr(u32)] + pub enum UtilityMsgDialogPressed { + Unknown1, + Yes, + No, + Back, + } + + #[repr(u32)] + pub enum UtilityDialogButtonAccept { + Circle, + Cross, + } + + #[repr(u32)] + pub enum SceUtilityOskInputLanguage { + Default, + Japanese, + English, + French, + Spanish, + German, + Italian, + Dutch, + Portugese, + Russian, + Korean, + } + + #[repr(u32)] + pub enum SceUtilityOskInputType { + All, + LatinDigit, + LatinSymbol, + LatinLowercase = 4, + LatinUppercase = 8, + JapaneseDigit = 0x100, + JapaneseSymbol = 0x200, + JapaneseLowercase = 0x400, + JapaneseUppercase = 0x800, + JapaneseHiragana = 0x1000, + JapaneseHalfWidthKatakana = 0x2000, + JapaneseKatakana = 0x4000, + JapaneseKanji = 0x8000, + RussianLowercase = 0x10000, + RussianUppercase = 0x20000, + Korean = 0x40000, + Url = 0x80000, + } + + #[repr(u32)] + pub enum SceUtilityOskState { + None, + Initializing, + Initialized, + Visible, + Quit, + Finished, + } + + #[repr(u32)] + pub enum SceUtilityOskResult { + Unchanged, + Cancelled, + Changed, + } + + #[repr(u32)] + pub enum SystemParamLanguage { + Japanese, + English, + French, + Spanish, + German, + Italian, + Dutch, + Portugese, + Russian, + Korean, + ChineseTraditional, + ChineseSimplified, + } + + #[repr(u32)] + pub enum SystemParamId { + StringNickname = 1, + AdhocChannel, + WlanPowerSave, + DateFormat, + TimeFormat, + Timezone, + DaylightSavings, + Language, + Unknown, + } + + #[repr(u32)] + pub enum SystemParamAdhocChannel { + ChannelAutomatic = 0, + Channel1 = 1, + Channel6 = 6, + Channel11 = 11, + } + + #[repr(u32)] + pub enum SystemParamWlanPowerSaveState { + Off, + On, + } + + #[repr(u32)] + pub enum SystemParamDateFormat { + YYYYMMDD, + MMDDYYYY, + DDMMYYYY, + } + + #[repr(u32)] + pub enum SystemParamTimeFormat { + Hour24, + Hour12, + } + + #[repr(u32)] + pub enum SystemParamDaylightSavings { + Std, + Dst, + } + + #[repr(u32)] + pub enum AvModule { + AvCodec, + SasCore, + Atrac3Plus, + MpegBase, + Mp3, + Vaudio, + Aac, + G729, + } + + #[repr(u32)] + pub enum Module { + NetCommon = 0x100, + NetAdhoc, + NetInet, + NetParseUri, + NetHttp, + NetSsl, + + UsbPspCm = 0x200, + UsbMic, + UsbCam, + UsbGps, + + AvCodec = 0x300, + AvSascore, + AvAtrac3Plus, + AvMpegBase, + AvMp3, + AvVaudio, + AvAac, + AvG729, + + NpCommon = 0x400, + NpService, + NpMatching2, + NpDrm = 0x500, + + Irda = 0x600, + } + + #[repr(u32)] + pub enum NetModule { + NetCommon = 1, + NetAdhoc, + NetInet, + NetParseUri, + NetHttp, + NetSsl, + } + + #[repr(u32)] + pub enum UsbModule { + UsbPspCm = 1, + UsbAcc, + UsbMic, + UsbCam, + UsbGps, + } + + #[repr(u32)] + pub enum NetParam { + Name, + Ssid, + Secure, + WepKey, + IsStaticIp, + Ip, + NetMask, + Route, + ManualDns, + PrimaryDns, + SecondaryDns, + ProxyUser, + ProxyPass, + UseProxy, + ProxyServer, + ProxyPort, + Unknown1, + Unknown2, + } + + #[repr(u32)] + pub enum UtilityNetconfAction { + ConnectAP, + DisplayStatus, + ConnectAdhoc, + } + + #[repr(u32)] + pub enum UtilitySavedataMode { + AutoLoad, + AutoSave, + Load, + Save, + ListLoad, + ListSave, + ListDelete, + Delete, + } + + #[repr(u32)] + pub enum UtilitySavedataFocus { + Unknown1, + FirstList, + LastList, + Latest, + Oldest, + Unknown2, + Unknown3, + FirstEmpty, + LastEmpty, + } + + #[repr(u32)] + pub enum UtilityGameSharingMode { + Single = 1, + Multiple, + } + + #[repr(u32)] + pub enum UtilityGameSharingDataType { + File = 1, + Memory, + } + + #[repr(u32)] + pub enum UtilityHtmlViewerInterfaceMode { + Full, + Limited, + None, + } + + #[repr(u32)] + pub enum UtilityHtmlViewerCookieMode { + Disabled = 0, + Enabled, + Confirm, + Default, + } + + #[repr(u32)] + pub enum UtilityHtmlViewerTextSize { + Large, + Normal, + Small, + } + + #[repr(u32)] + pub enum UtilityHtmlViewerDisplayMode { + Normal, + Fit, + SmartFit, + } + + #[repr(u32)] + pub enum UtilityHtmlViewerConnectMode { + Last, + ManualOnce, + ManualAll, + } + + #[repr(u32)] + pub enum UtilityHtmlViewerDisconnectMode { + Enable, + Disable, + Confirm, + } + + #[repr(u32)] + pub enum ScePspnetAdhocPtpState { + Closed, + Listen, + SynSent, + SynReceived, + Established, + } + + #[repr(u32)] + pub enum AdhocMatchingMode { + Host = 1, + Client, + Ptp, + } + + #[repr(u32)] + pub enum ApctlState { + Disconnected, + Scanning, + Joining, + GettingIp, + GotIp, + EapAuth, + KeyExchange, + } + + #[repr(u32)] + pub enum ApctlEvent { + ConnectRequest, + ScanRequest, + ScanComplete, + Established, + GetIp, + DisconnectRequest, + Error, + Info, + EapAuth, + KeyExchange, + Reconnect, + } + + #[repr(u32)] + pub enum ApctlInfo { + ProfileName, + Bssid, + Ssid, + SsidLength, + SecurityType, + Strength, + Channel, + PowerSave, + Ip, + SubnetMask, + Gateway, + PrimaryDns, + SecondaryDns, + UseProxy, + ProxyUrl, + ProxyPort, + EapType, + StartBrowser, + Wifisp, + } + + #[repr(u32)] + pub enum ApctlInfoSecurityType { + None, + Wep, + Wpa, + } + + #[repr(u32)] + pub enum HttpMethod { + Get, + Post, + Head, + } + + #[repr(u32)] + pub enum HttpAuthType { + Basic, + Digest, + } +} + +s_paren! { + #[repr(transparent)] + pub struct SceUid(pub i32); + + #[repr(transparent)] + pub struct SceMpeg(*mut *mut c_void); + + #[repr(transparent)] + pub struct SceMpegStream(*mut c_void); + + #[repr(transparent)] + pub struct Mp3Handle(pub i32); + + #[repr(transparent)] + pub struct RegHandle(u32); +} + +s! { + pub struct sockaddr { + pub sa_len: u8, + pub sa_family: u8, + pub sa_data: [u8;14], + } + + pub struct in_addr { + pub s_addr: u32, + } + + pub struct AudioInputParams { + pub unknown1: i32, + pub gain: i32, + pub unknown2: i32, + pub unknown3: i32, + pub unknown4: i32, + pub unknown5: i32, + } + + pub struct Atrac3BufferInfo { + pub puc_write_position_first_buf: *mut u8, + pub ui_writable_byte_first_buf: u32, + pub ui_min_write_byte_first_buf: u32, + pub ui_read_position_first_buf: u32, + pub puc_write_position_second_buf: *mut u8, + pub ui_writable_byte_second_buf: u32, + pub ui_min_write_byte_second_buf: u32, + pub ui_read_position_second_buf: u32, + } + + pub struct SceCtrlData { + pub timestamp: u32, + pub buttons: i32, + pub lx: u8, + pub ly: u8, + pub rsrv: [u8; 6], + } + + pub struct SceCtrlLatch { + pub ui_make: u32, + pub ui_break: u32, + pub ui_press: u32, + pub ui_release: u32, + } + + pub struct GeStack { + pub stack: [u32; 8], + } + + pub struct GeCallbackData { + pub signal_func: ::Option, + pub signal_arg: *mut c_void, + pub finish_func: ::Option, + pub finish_arg: *mut c_void, + } + + pub struct GeListArgs { + pub size: u32, + pub context: *mut GeContext, + pub num_stacks: u32, + pub stacks: *mut GeStack, + } + + pub struct GeBreakParam { + pub buf: [u32; 4], + } + + pub struct SceKernelLoadExecParam { + pub size: usize, + pub args: usize, + pub argp: *mut c_void, + pub key: *const u8, + } + + pub struct timeval { + pub tv_sec: i32, + pub tv_usec: i32, + } + + pub struct timezone { + pub tz_minutes_west: i32, + pub tz_dst_time: i32, + } + + pub struct IntrHandlerOptionParam { + size: i32, + entry: u32, + common: u32, + gp: u32, + intr_code: u16, + sub_count: u16, + intr_level: u16, + enabled: u16, + calls: u32, + field_1c: u32, + total_clock_lo: u32, + total_clock_hi: u32, + min_clock_lo: u32, + min_clock_hi: u32, + max_clock_lo: u32, + max_clock_hi: u32, + } + + pub struct SceKernelLMOption { + pub size: usize, + pub m_pid_text: SceUid, + pub m_pid_data: SceUid, + pub flags: u32, + pub position: u8, + pub access: u8, + pub c_reserved: [u8; 2usize], + } + + pub struct SceKernelSMOption { + pub size: usize, + pub m_pid_stack: SceUid, + pub stack_size: usize, + pub priority: i32, + pub attribute: u32, + } + + pub struct SceKernelModuleInfo { + pub size: usize, + pub n_segment: u8, + pub reserved: [u8; 3usize], + pub segment_addr: [i32; 4usize], + pub segment_size: [i32; 4usize], + pub entry_addr: u32, + pub gp_value: u32, + pub text_addr: u32, + pub text_size: u32, + pub data_size: u32, + pub bss_size: u32, + pub attribute: u16, + pub version: [u8; 2usize], + pub name: [u8; 28usize], + } + + pub struct DebugProfilerRegs { + pub enable: u32, + pub systemck: u32, + pub cpuck: u32, + pub internal: u32, + pub memory: u32, + pub copz: u32, + pub vfpu: u32, + pub sleep: u32, + pub bus_access: u32, + pub uncached_load: u32, + pub uncached_store: u32, + pub cached_load: u32, + pub cached_store: u32, + pub i_miss: u32, + pub d_miss: u32, + pub d_writeback: u32, + pub cop0_inst: u32, + pub fpu_inst: u32, + pub vfpu_inst: u32, + pub local_bus: u32, + } + + pub struct SceKernelSysClock { + pub low: u32, + pub hi: u32, + } + + pub struct SceKernelThreadOptParam { + pub size: usize, + pub stack_mpid: SceUid, + } + + pub struct SceKernelThreadInfo { + pub size: usize, + pub name: [u8; 32], + pub attr: u32, + pub status: i32, + pub entry: SceKernelThreadEntry, + pub stack: *mut c_void, + pub stack_size: i32, + pub gp_reg: *mut c_void, + pub init_priority: i32, + pub current_priority: i32, + pub wait_type: i32, + pub wait_id: SceUid, + pub wakeup_count: i32, + pub exit_status: i32, + pub run_clocks: SceKernelSysClock, + pub intr_preempt_count: u32, + pub thread_preempt_count: u32, + pub release_count: u32, + } + + pub struct SceKernelThreadRunStatus { + pub size: usize, + pub status: i32, + pub current_priority: i32, + pub wait_type: i32, + pub wait_id: i32, + pub wakeup_count: i32, + pub run_clocks: SceKernelSysClock, + pub intr_preempt_count: u32, + pub thread_preempt_count: u32, + pub release_count: u32, + } + + pub struct SceKernelSemaOptParam { + pub size: usize, + } + + pub struct SceKernelSemaInfo { + pub size: usize, + pub name: [u8; 32], + pub attr: u32, + pub init_count: i32, + pub current_count: i32, + pub max_count: i32, + pub num_wait_threads: i32, + } + + pub struct SceKernelEventFlagInfo { + pub size: usize, + pub name: [u8; 32], + pub attr: u32, + pub init_pattern: u32, + pub current_pattern: u32, + pub num_wait_threads: i32, + } + + pub struct SceKernelEventFlagOptParam { + pub size: usize, + } + + pub struct SceKernelMbxOptParam { + pub size: usize, + } + + pub struct SceKernelMbxInfo { + pub size: usize, + pub name: [u8; 32usize], + pub attr: u32, + pub num_wait_threads: i32, + pub num_messages: i32, + pub first_message: *mut c_void, + } + + pub struct SceKernelVTimerInfo { + pub size: usize, + pub name: [u8; 32], + pub active: i32, + pub base: SceKernelSysClock, + pub current: SceKernelSysClock, + pub schedule: SceKernelSysClock, + pub handler: SceKernelVTimerHandler, + pub common: *mut c_void, + } + + pub struct SceKernelThreadEventHandlerInfo { + pub size: usize, + pub name: [u8; 32], + pub thread_id: SceUid, + pub mask: i32, + pub handler: SceKernelThreadEventHandler, + pub common: *mut c_void, + } + + pub struct SceKernelAlarmInfo { + pub size: usize, + pub schedule: SceKernelSysClock, + pub handler: SceKernelAlarmHandler, + pub common: *mut c_void, + } + + pub struct SceKernelSystemStatus { + pub size: usize, + pub status: u32, + pub idle_clocks: SceKernelSysClock, + pub comes_out_of_idle_count: u32, + pub thread_switch_count: u32, + pub vfpu_switch_count: u32, + } + + pub struct SceKernelMppInfo { + pub size: usize, + pub name: [u8; 32], + pub attr: u32, + pub buf_size: i32, + pub free_size: i32, + pub num_send_wait_threads: i32, + pub num_receive_wait_threads: i32, + } + + pub struct SceKernelVplOptParam { + pub size: usize, + } + + pub struct SceKernelVplInfo { + pub size: usize, + pub name: [u8; 32], + pub attr: u32, + pub pool_size: i32, + pub free_size: i32, + pub num_wait_threads: i32, + } + + pub struct SceKernelFplOptParam { + pub size: usize, + } + + pub struct SceKernelFplInfo { + pub size: usize, + pub name: [u8; 32usize], + pub attr: u32, + pub block_size: i32, + pub num_blocks: i32, + pub free_blocks: i32, + pub num_wait_threads: i32, + } + + pub struct SceKernelVTimerOptParam { + pub size: usize, + } + + pub struct SceKernelCallbackInfo { + pub size: usize, + pub name: [u8; 32usize], + pub thread_id: SceUid, + pub callback: SceKernelCallbackFunction, + pub common: *mut c_void, + pub notify_count: i32, + pub notify_arg: i32, + } + + pub struct UsbCamSetupStillParam { + pub size: i32, + pub resolution: UsbCamResolution, + pub jpeg_size: i32, + pub reverse_flags: i32, + pub delay: UsbCamDelay, + pub comp_level: i32, + } + + pub struct UsbCamSetupStillExParam { + pub size: i32, + pub unk: u32, + pub resolution: UsbCamResolutionEx, + pub jpeg_size: i32, + pub comp_level: i32, + pub unk2: u32, + pub unk3: u32, + pub flip: i32, + pub mirror: i32, + pub delay: UsbCamDelay, + pub unk4: [u32; 5usize], + } + + pub struct UsbCamSetupVideoParam { + pub size: i32, + pub resolution: UsbCamResolution, + pub framerate: UsbCamFrameRate, + pub white_balance: UsbCamWb, + pub saturation: i32, + pub brightness: i32, + pub contrast: i32, + pub sharpness: i32, + pub effect_mode: UsbCamEffectMode, + pub frame_size: i32, + pub unk: u32, + pub evl_evel: UsbCamEvLevel, + } + + pub struct UsbCamSetupVideoExParam { + pub size: i32, + pub unk: u32, + pub resolution: UsbCamResolutionEx, + pub framerate: UsbCamFrameRate, + pub unk2: u32, + pub unk3: u32, + pub white_balance: UsbCamWb, + pub saturation: i32, + pub brightness: i32, + pub contrast: i32, + pub sharpness: i32, + pub unk4: u32, + pub unk5: u32, + pub unk6: [u32; 3usize], + pub effect_mode: UsbCamEffectMode, + pub unk7: u32, + pub unk8: u32, + pub unk9: u32, + pub unk10: u32, + pub unk11: u32, + pub frame_size: i32, + pub unk12: u32, + pub ev_level: UsbCamEvLevel, + } + + pub struct ScePspDateTime { + pub year: u16, + pub month: u16, + pub day: u16, + pub hour: u16, + pub minutes: u16, + pub seconds: u16, + pub microseconds: u32, + } + + pub struct SceIoStat { + pub st_mode: i32, + pub st_attr: i32, + pub st_size: i64, + pub st_ctime: ScePspDateTime, + pub st_atime: ScePspDateTime, + pub st_mtime: ScePspDateTime, + pub st_private: [u32; 6usize], + } + + pub struct UmdInfo { + pub size: u32, + pub type_: UmdType, + } + + pub struct SceMpegRingbuffer { + pub packets: i32, + pub unk0: u32, + pub unk1: u32, + pub unk2: u32, + pub unk3: u32, + pub data: *mut c_void, + pub callback: SceMpegRingbufferCb, + pub cb_param: *mut c_void, + pub unk4: u32, + pub unk5: u32, + pub sce_mpeg: *mut c_void, + } + + pub struct SceMpegAu { + pub pts_msb: u32, + pub pts: u32, + pub dts_msb: u32, + pub dts: u32, + pub es_buffer: u32, + pub au_size: u32, + } + + pub struct SceMpegAvcMode { + pub unk0: i32, + pub pixel_format: super::DisplayPixelFormat, + } + + #[repr(align(64))] + pub struct SceMpegLLI { + pub src: *mut c_void, + pub dst: *mut c_void, + pub next: *mut c_void, + pub size: i32, + } + + #[repr(align(64))] + pub struct SceMpegYCrCbBuffer { + pub frame_buffer_height16: i32, + pub frame_buffer_width16: i32, + pub unknown: i32, + pub unknown2: i32, + pub y_buffer: *mut c_void, + pub y_buffer2: *mut c_void, + pub cr_buffer: *mut c_void, + pub cb_buffer: *mut c_void, + pub cr_buffer2: *mut c_void, + pub cb_buffer2: *mut c_void, + + pub frame_height: i32, + pub frame_width: i32, + pub frame_buffer_width: i32, + pub unknown3: [i32; 11usize], + } + + pub struct ScePspSRect { + pub x: i16, + pub y: i16, + pub w: i16, + pub h: i16, + } + + pub struct ScePspIRect { + pub x: i32, + pub y: i32, + pub w: i32, + pub h: i32, + } + + pub struct ScePspL64Rect { + pub x: u64, + pub y: u64, + pub w: u64, + pub h: u64, + } + + pub struct ScePspSVector2 { + pub x: i16, + pub y: i16, + } + + pub struct ScePspIVector2 { + pub x: i32, + pub y: i32, + } + + pub struct ScePspL64Vector2 { + pub x: u64, + pub y: u64, + } + + pub struct ScePspSVector3 { + pub x: i16, + pub y: i16, + pub z: i16, + } + + pub struct ScePspIVector3 { + pub x: i32, + pub y: i32, + pub z: i32, + } + + pub struct ScePspL64Vector3 { + pub x: u64, + pub y: u64, + pub z: u64, + } + + pub struct ScePspSVector4 { + pub x: i16, + pub y: i16, + pub z: i16, + pub w: i16, + } + + pub struct ScePspIVector4 { + pub x: i32, + pub y: i32, + pub z: i32, + pub w: i32, + } + + pub struct ScePspL64Vector4 { + pub x: u64, + pub y: u64, + pub z: u64, + pub w: u64, + } + + pub struct ScePspIMatrix2 { + pub x: ScePspIVector2, + pub y: ScePspIVector2, + } + + pub struct ScePspIMatrix3 { + pub x: ScePspIVector3, + pub y: ScePspIVector3, + pub z: ScePspIVector3, + } + + #[repr(align(16))] + pub struct ScePspIMatrix4 { + pub x: ScePspIVector4, + pub y: ScePspIVector4, + pub z: ScePspIVector4, + pub w: ScePspIVector4, + } + + pub struct ScePspIMatrix4Unaligned { + pub x: ScePspIVector4, + pub y: ScePspIVector4, + pub z: ScePspIVector4, + pub w: ScePspIVector4, + } + + pub struct SceMp3InitArg { + pub mp3_stream_start: u32, + pub unk1: u32, + pub mp3_stream_end: u32, + pub unk2: u32, + pub mp3_buf: *mut c_void, + pub mp3_buf_size: i32, + pub pcm_buf: *mut c_void, + pub pcm_buf_size: i32, + } + + pub struct OpenPSID { + pub data: [u8; 16usize], + } + + pub struct UtilityDialogCommon { + pub size: u32, + pub language: SystemParamLanguage, + pub button_accept: UtilityDialogButtonAccept, + pub graphics_thread: i32, + pub access_thread: i32, + pub font_thread: i32, + pub sound_thread: i32, + pub result: i32, + pub reserved: [i32; 4usize], + } + + pub struct UtilityNetconfAdhoc { + pub name: [u8; 8usize], + pub timeout: u32, + } + + pub struct UtilityNetconfData { + pub base: UtilityDialogCommon, + pub action: UtilityNetconfAction, + pub adhocparam: *mut UtilityNetconfAdhoc, + pub hotspot: i32, + pub hotspot_connected: i32, + pub wifisp: i32, + } + + pub struct UtilitySavedataFileData { + pub buf: *mut c_void, + pub buf_size: usize, + pub size: usize, + pub unknown: i32, + } + + pub struct UtilitySavedataListSaveNewData { + pub icon0: UtilitySavedataFileData, + pub title: *mut u8, + } + + pub struct UtilityGameSharingParams { + pub base: UtilityDialogCommon, + pub unknown1: i32, + pub unknown2: i32, + pub name: [u8; 8usize], + pub unknown3: i32, + pub unknown4: i32, + pub unknown5: i32, + pub result: i32, + pub filepath: *mut u8, + pub mode: UtilityGameSharingMode, + pub datatype: UtilityGameSharingDataType, + pub data: *mut c_void, + pub datasize: u32, + } + + pub struct UtilityHtmlViewerParam { + pub base: UtilityDialogCommon, + pub memaddr: *mut c_void, + pub memsize: u32, + pub unknown1: i32, + pub unknown2: i32, + pub initialurl: *mut u8, + pub numtabs: u32, + pub interfacemode: UtilityHtmlViewerInterfaceMode, + pub options: i32, + pub dldirname: *mut u8, + pub dlfilename: *mut u8, + pub uldirname: *mut u8, + pub ulfilename: *mut u8, + pub cookiemode: UtilityHtmlViewerCookieMode, + pub unknown3: u32, + pub homeurl: *mut u8, + pub textsize: UtilityHtmlViewerTextSize, + pub displaymode: UtilityHtmlViewerDisplayMode, + pub connectmode: UtilityHtmlViewerConnectMode, + pub disconnectmode: UtilityHtmlViewerDisconnectMode, + pub memused: u32, + pub unknown4: [i32; 10usize], + } + + pub struct SceUtilityOskData { + pub unk_00: i32, + pub unk_04: i32, + pub language: SceUtilityOskInputLanguage, + pub unk_12: i32, + pub inputtype: SceUtilityOskInputType, + pub lines: i32, + pub unk_24: i32, + pub desc: *mut u16, + pub intext: *mut u16, + pub outtextlength: i32, + pub outtext: *mut u16, + pub result: SceUtilityOskResult, + pub outtextlimit: i32, + } + + pub struct SceUtilityOskParams { + pub base: UtilityDialogCommon, + pub datacount: i32, + pub data: *mut SceUtilityOskData, + pub state: SceUtilityOskState, + pub unk_60: i32, + } + + pub struct SceNetMallocStat { + pub pool: i32, + pub maximum: i32, + pub free: i32, + } + + pub struct SceNetAdhocctlAdhocId { + pub unknown: i32, + pub adhoc_id: [u8; 9usize], + pub unk: [u8; 3usize], + } + + pub struct SceNetAdhocctlScanInfo { + pub next: *mut SceNetAdhocctlScanInfo, + pub channel: i32, + pub name: [u8; 8usize], + pub bssid: [u8; 6usize], + pub unknown: [u8; 2usize], + pub unknown2: i32, + } + + pub struct SceNetAdhocctlGameModeInfo { + pub count: i32, + pub macs: [[u8; 6usize]; 16usize], + } + + pub struct SceNetAdhocPtpStat { + pub next: *mut SceNetAdhocPtpStat, + pub ptp_id: i32, + pub mac: [u8; 6usize], + pub peermac: [u8; 6usize], + pub port: u16, + pub peerport: u16, + pub sent_data: u32, + pub rcvd_data: u32, + pub state: ScePspnetAdhocPtpState, + } + + pub struct SceNetAdhocPdpStat { + pub next: *mut SceNetAdhocPdpStat, + pub pdp_id: i32, + pub mac: [u8; 6usize], + pub port: u16, + pub rcvd_data: u32, + } + + pub struct AdhocPoolStat { + pub size: i32, + pub maxsize: i32, + pub freesize: i32, + } +} + +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + pub struct GeContext { + pub context: [u32; 512], + } + + #[allow(missing_debug_implementations)] + pub struct SceKernelUtilsSha1Context { + pub h: [u32; 5usize], + pub us_remains: u16, + pub us_computed: u16, + pub ull_total_len: u64, + pub buf: [u8; 64usize], + } + + #[allow(missing_debug_implementations)] + pub struct SceKernelUtilsMt19937Context { + pub count: u32, + pub state: [u32; 624usize], + } + + #[allow(missing_debug_implementations)] + pub struct SceKernelUtilsMd5Context { + pub h: [u32; 4usize], + pub pad: u32, + pub us_remains: u16, + pub us_computed: u16, + pub ull_total_len: u64, + pub buf: [u8; 64usize], + } + + #[allow(missing_debug_implementations)] + pub struct SceIoDirent { + pub d_stat: SceIoStat, + pub d_name: [u8; 256usize], + pub d_private: *mut c_void, + pub dummy: i32, + } + + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub struct ScePspFRect { + pub x: f32, + pub y: f32, + pub w: f32, + pub h: f32, + } + + #[repr(align(16))] + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub struct ScePspFVector3 { + pub x: f32, + pub y: f32, + pub z: f32, + } + + #[repr(align(16))] + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub struct ScePspFVector4 { + pub x: f32, + pub y: f32, + pub z: f32, + pub w: f32, + } + + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub struct ScePspFVector4Unaligned { + pub x: f32, + pub y: f32, + pub z: f32, + pub w: f32, + } + + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub struct ScePspFVector2 { + pub x: f32, + pub y: f32, + } + + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub struct ScePspFMatrix2 { + pub x: ScePspFVector2, + pub y: ScePspFVector2, + } + + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub struct ScePspFMatrix3 { + pub x: ScePspFVector3, + pub y: ScePspFVector3, + pub z: ScePspFVector3, + } + + #[cfg_attr(feature = "extra_traits", derive(Debug))] + #[repr(align(16))] + pub struct ScePspFMatrix4 { + pub x: ScePspFVector4, + pub y: ScePspFVector4, + pub z: ScePspFVector4, + pub w: ScePspFVector4, + } + + #[allow(missing_debug_implementations)] + pub struct ScePspFMatrix4Unaligned { + pub x: ScePspFVector4, + pub y: ScePspFVector4, + pub z: ScePspFVector4, + pub w: ScePspFVector4, + } + + #[allow(missing_debug_implementations)] + pub union ScePspVector3 { + pub fv: ScePspFVector3, + pub iv: ScePspIVector3, + pub f: [f32; 3usize], + pub i: [i32; 3usize], + } + + #[allow(missing_debug_implementations)] + pub union ScePspVector4 { + pub fv: ScePspFVector4, + pub iv: ScePspIVector4, + pub qw: u128, + pub f: [f32; 4usize], + pub i: [i32; 4usize], + } + + #[allow(missing_debug_implementations)] + pub union ScePspMatrix2 { + pub fm: ScePspFMatrix2, + pub im: ScePspIMatrix2, + pub fv: [ScePspFVector2; 2usize], + pub iv: [ScePspIVector2; 2usize], + pub v: [ScePspVector2; 2usize], + pub f: [[f32; 2usize]; 2usize], + pub i: [[i32; 2usize]; 2usize], + } + + #[allow(missing_debug_implementations)] + pub union ScePspMatrix3 { + pub fm: ScePspFMatrix3, + pub im: ScePspIMatrix3, + pub fv: [ScePspFVector3; 3usize], + pub iv: [ScePspIVector3; 3usize], + pub v: [ScePspVector3; 3usize], + pub f: [[f32; 3usize]; 3usize], + pub i: [[i32; 3usize]; 3usize], + } + + #[allow(missing_debug_implementations)] + pub union ScePspVector2 { + pub fv: ScePspFVector2, + pub iv: ScePspIVector2, + pub f: [f32; 2usize], + pub i: [i32; 2usize], + } + + #[allow(missing_debug_implementations)] + pub union ScePspMatrix4 { + pub fm: ScePspFMatrix4, + pub im: ScePspIMatrix4, + pub fv: [ScePspFVector4; 4usize], + pub iv: [ScePspIVector4; 4usize], + pub v: [ScePspVector4; 4usize], + pub f: [[f32; 4usize]; 4usize], + pub i: [[i32; 4usize]; 4usize], + } + + #[allow(missing_debug_implementations)] + pub struct Key { + pub key_type: KeyType, + pub name: [u8; 256usize], + pub name_len: u32, + pub unk2: u32, + pub unk3: u32, + } + + #[allow(missing_debug_implementations)] + pub struct UtilityMsgDialogParams { + pub base: UtilityDialogCommon, + pub unknown: i32, + pub mode: UtilityMsgDialogMode, + pub error_value: u32, + pub message: [u8; 512usize], + pub options: i32, + pub button_pressed: UtilityMsgDialogPressed, + } + + #[allow(missing_debug_implementations)] + pub union UtilityNetData { + pub as_uint: u32, + pub as_string: [u8; 128usize], + } + + #[allow(missing_debug_implementations)] + pub struct UtilitySavedataSFOParam { + pub title: [u8; 128usize], + pub savedata_title: [u8; 128usize], + pub detail: [u8; 1024usize], + pub parental_level: u8, + pub unknown: [u8; 3usize], + } + + #[allow(missing_debug_implementations)] + pub struct SceUtilitySavedataParam { + pub base: UtilityDialogCommon, + pub mode: UtilitySavedataMode, + pub unknown1: i32, + pub overwrite: i32, + pub game_name: [u8; 13usize], + pub reserved: [u8; 3usize], + pub save_name: [u8; 20usize], + pub save_name_list: *mut [u8; 20usize], + pub file_name: [u8; 13usize], + pub reserved1: [u8; 3usize], + pub data_buf: *mut c_void, + pub data_buf_size: usize, + pub data_size: usize, + pub sfo_param: UtilitySavedataSFOParam, + pub icon0_file_data: UtilitySavedataFileData, + pub icon1_file_data: UtilitySavedataFileData, + pub pic1_file_data: UtilitySavedataFileData, + pub snd0_file_data: UtilitySavedataFileData, + pub new_data: *mut UtilitySavedataListSaveNewData, + pub focus: UtilitySavedataFocus, + pub unknown2: [i32; 4usize], + pub key: [u8; 16], + pub unknown3: [u8; 20], + } + + #[allow(missing_debug_implementations)] + pub struct SceNetAdhocctlPeerInfo { + pub next: *mut SceNetAdhocctlPeerInfo, + pub nickname: [u8; 128usize], + pub mac: [u8; 6usize], + pub unknown: [u8; 6usize], + pub timestamp: u32, + } + + #[allow(missing_debug_implementations)] + pub struct SceNetAdhocctlParams { + pub channel: i32, + pub name: [u8; 8usize], + pub bssid: [u8; 6usize], + pub nickname: [u8; 128usize], + } + + #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] + pub union SceNetApctlInfo { + pub name: [u8; 64usize], + pub bssid: [u8; 6usize], + pub ssid: [u8; 32usize], + pub ssid_length: u32, + pub security_type: u32, + pub strength: u8, + pub channel: u8, + pub power_save: u8, + pub ip: [u8; 16usize], + pub sub_net_mask: [u8; 16usize], + pub gateway: [u8; 16usize], + pub primary_dns: [u8; 16usize], + pub secondary_dns: [u8; 16usize], + pub use_proxy: u32, + pub proxy_url: [u8; 128usize], + pub proxy_port: u16, + pub eap_type: u32, + pub start_browser: u32, + pub wifisp: u32, + } +} + +pub const INT_MIN: c_int = -2147483648; +pub const INT_MAX: c_int = 2147483647; + +pub const AUDIO_VOLUME_MAX: u32 = 0x8000; +pub const AUDIO_CHANNEL_MAX: u32 = 8; +pub const AUDIO_NEXT_CHANNEL: i32 = -1; +pub const AUDIO_SAMPLE_MIN: u32 = 64; +pub const AUDIO_SAMPLE_MAX: u32 = 65472; + +pub const PSP_CTRL_SELECT: i32 = 0x000001; +pub const PSP_CTRL_START: i32 = 0x000008; +pub const PSP_CTRL_UP: i32 = 0x000010; +pub const PSP_CTRL_RIGHT: i32 = 0x000020; +pub const PSP_CTRL_DOWN: i32 = 0x000040; +pub const PSP_CTRL_LEFT: i32 = 0x000080; +pub const PSP_CTRL_LTRIGGER: i32 = 0x000100; +pub const PSP_CTRL_RTRIGGER: i32 = 0x000200; +pub const PSP_CTRL_TRIANGLE: i32 = 0x001000; +pub const PSP_CTRL_CIRCLE: i32 = 0x002000; +pub const PSP_CTRL_CROSS: i32 = 0x004000; +pub const PSP_CTRL_SQUARE: i32 = 0x008000; +pub const PSP_CTRL_HOME: i32 = 0x010000; +pub const PSP_CTRL_HOLD: i32 = 0x020000; +pub const PSP_CTRL_NOTE: i32 = 0x800000; +pub const PSP_CTRL_SCREEN: i32 = 0x400000; +pub const PSP_CTRL_VOLUP: i32 = 0x100000; +pub const PSP_CTRL_VOLDOWN: i32 = 0x200000; +pub const PSP_CTRL_WLAN_UP: i32 = 0x040000; +pub const PSP_CTRL_REMOTE: i32 = 0x080000; +pub const PSP_CTRL_DISC: i32 = 0x1000000; +pub const PSP_CTRL_MS: i32 = 0x2000000; + +pub const USB_CAM_PID: i32 = 0x282; +pub const USB_BUS_DRIVER_NAME: &str = "USBBusDriver"; +pub const USB_CAM_DRIVER_NAME: &str = "USBCamDriver"; +pub const USB_CAM_MIC_DRIVER_NAME: &str = "USBCamMicDriver"; +pub const USB_STOR_DRIVER_NAME: &str = "USBStor_Driver"; + +pub const ACTIVATED: i32 = 0x200; +pub const CONNECTED: i32 = 0x020; +pub const ESTABLISHED: i32 = 0x002; + +pub const USB_CAM_FLIP: i32 = 1; +pub const USB_CAM_MIRROR: i32 = 0x100; + +pub const THREAD_ATTR_VFPU: i32 = 0x00004000; +pub const THREAD_ATTR_USER: i32 = 0x80000000; +pub const THREAD_ATTR_USBWLAN: i32 = 0xa0000000; +pub const THREAD_ATTR_VSH: i32 = 0xc0000000; +pub const THREAD_ATTR_SCRATCH_SRAM: i32 = 0x00008000; +pub const THREAD_ATTR_NO_FILLSTACK: i32 = 0x00100000; +pub const THREAD_ATTR_CLEAR_STACK: i32 = 0x00200000; + +pub const EVENT_WAIT_MULTIPLE: i32 = 0x200; + +pub const EVENT_WAIT_AND: i32 = 0; +pub const EVENT_WAIT_OR: i32 = 1; +pub const EVENT_WAIT_CLEAR: i32 = 0x20; + +pub const POWER_INFO_POWER_SWITCH: i32 = 0x80000000; +pub const POWER_INFO_HOLD_SWITCH: i32 = 0x40000000; +pub const POWER_INFO_STANDBY: i32 = 0x00080000; +pub const POWER_INFO_RESUME_COMPLETE: i32 = 0x00040000; +pub const POWER_INFO_RESUMING: i32 = 0x00020000; +pub const POWER_INFO_SUSPENDING: i32 = 0x00010000; +pub const POWER_INFO_AC_POWER: i32 = 0x00001000; +pub const POWER_INFO_BATTERY_LOW: i32 = 0x00000100; +pub const POWER_INFO_BATTERY_EXIST: i32 = 0x00000080; +pub const POWER_INFO_BATTERY_POWER: i32 = 0x0000007; + +pub const FIO_S_IFLNK: i32 = 0x4000; +pub const FIO_S_IFDIR: i32 = 0x1000; +pub const FIO_S_IFREG: i32 = 0x2000; +pub const FIO_S_ISUID: i32 = 0x0800; +pub const FIO_S_ISGID: i32 = 0x0400; +pub const FIO_S_ISVTX: i32 = 0x0200; +pub const FIO_S_IRUSR: i32 = 0x0100; +pub const FIO_S_IWUSR: i32 = 0x0080; +pub const FIO_S_IXUSR: i32 = 0x0040; +pub const FIO_S_IRGRP: i32 = 0x0020; +pub const FIO_S_IWGRP: i32 = 0x0010; +pub const FIO_S_IXGRP: i32 = 0x0008; +pub const FIO_S_IROTH: i32 = 0x0004; +pub const FIO_S_IWOTH: i32 = 0x0002; +pub const FIO_S_IXOTH: i32 = 0x0001; + +pub const FIO_SO_IFLNK: i32 = 0x0008; +pub const FIO_SO_IFDIR: i32 = 0x0010; +pub const FIO_SO_IFREG: i32 = 0x0020; +pub const FIO_SO_IROTH: i32 = 0x0004; +pub const FIO_SO_IWOTH: i32 = 0x0002; +pub const FIO_SO_IXOTH: i32 = 0x0001; + +pub const PSP_O_RD_ONLY: i32 = 0x0001; +pub const PSP_O_WR_ONLY: i32 = 0x0002; +pub const PSP_O_RD_WR: i32 = 0x0003; +pub const PSP_O_NBLOCK: i32 = 0x0004; +pub const PSP_O_DIR: i32 = 0x0008; +pub const PSP_O_APPEND: i32 = 0x0100; +pub const PSP_O_CREAT: i32 = 0x0200; +pub const PSP_O_TRUNC: i32 = 0x0400; +pub const PSP_O_EXCL: i32 = 0x0800; +pub const PSP_O_NO_WAIT: i32 = 0x8000; + +pub const UMD_NOT_PRESENT: i32 = 0x01; +pub const UMD_PRESENT: i32 = 0x02; +pub const UMD_CHANGED: i32 = 0x04; +pub const UMD_INITING: i32 = 0x08; +pub const UMD_INITED: i32 = 0x10; +pub const UMD_READY: i32 = 0x20; + +pub const PLAY_PAUSE: i32 = 0x1; +pub const FORWARD: i32 = 0x4; +pub const BACK: i32 = 0x8; +pub const VOL_UP: i32 = 0x10; +pub const VOL_DOWN: i32 = 0x20; +pub const HOLD: i32 = 0x80; + +pub const GU_PI: f32 = 3.141593; + +pub const GU_TEXTURE_8BIT: i32 = 1; +pub const GU_TEXTURE_16BIT: i32 = 2; +pub const GU_TEXTURE_32BITF: i32 = 3; +pub const GU_COLOR_5650: i32 = 4 << 2; +pub const GU_COLOR_5551: i32 = 5 << 2; +pub const GU_COLOR_4444: i32 = 6 << 2; +pub const GU_COLOR_8888: i32 = 7 << 2; +pub const GU_NORMAL_8BIT: i32 = 1 << 5; +pub const GU_NORMAL_16BIT: i32 = 2 << 5; +pub const GU_NORMAL_32BITF: i32 = 3 << 5; +pub const GU_VERTEX_8BIT: i32 = 1 << 7; +pub const GU_VERTEX_16BIT: i32 = 2 << 7; +pub const GU_VERTEX_32BITF: i32 = 3 << 7; +pub const GU_WEIGHT_8BIT: i32 = 1 << 9; +pub const GU_WEIGHT_16BIT: i32 = 2 << 9; +pub const GU_WEIGHT_32BITF: i32 = 3 << 9; +pub const GU_INDEX_8BIT: i32 = 1 << 11; +pub const GU_INDEX_16BIT: i32 = 2 << 11; +pub const GU_WEIGHTS1: i32 = (((1 - 1) & 7) << 14) as i32; +pub const GU_WEIGHTS2: i32 = (((2 - 1) & 7) << 14) as i32; +pub const GU_WEIGHTS3: i32 = (((3 - 1) & 7) << 14) as i32; +pub const GU_WEIGHTS4: i32 = (((4 - 1) & 7) << 14) as i32; +pub const GU_WEIGHTS5: i32 = (((5 - 1) & 7) << 14) as i32; +pub const GU_WEIGHTS6: i32 = (((6 - 1) & 7) << 14) as i32; +pub const GU_WEIGHTS7: i32 = (((7 - 1) & 7) << 14) as i32; +pub const GU_WEIGHTS8: i32 = (((8 - 1) & 7) << 14) as i32; +pub const GU_VERTICES1: i32 = (((1 - 1) & 7) << 18) as i32; +pub const GU_VERTICES2: i32 = (((2 - 1) & 7) << 18) as i32; +pub const GU_VERTICES3: i32 = (((3 - 1) & 7) << 18) as i32; +pub const GU_VERTICES4: i32 = (((4 - 1) & 7) << 18) as i32; +pub const GU_VERTICES5: i32 = (((5 - 1) & 7) << 18) as i32; +pub const GU_VERTICES6: i32 = (((6 - 1) & 7) << 18) as i32; +pub const GU_VERTICES7: i32 = (((7 - 1) & 7) << 18) as i32; +pub const GU_VERTICES8: i32 = (((8 - 1) & 7) << 18) as i32; +pub const GU_TRANSFORM_2D: i32 = 1 << 23; +pub const GU_TRANSFORM_3D: i32 = 0; + +pub const GU_COLOR_BUFFER_BIT: i32 = 1; +pub const GU_STENCIL_BUFFER_BIT: i32 = 2; +pub const GU_DEPTH_BUFFER_BIT: i32 = 4; +pub const GU_FAST_CLEAR_BIT: i32 = 16; + +pub const GU_AMBIENT: i32 = 1; +pub const GU_DIFFUSE: i32 = 2; +pub const GU_SPECULAR: i32 = 4; +pub const GU_UNKNOWN_LIGHT_COMPONENT: i32 = 8; + +pub const SYSTEM_REGISTRY: [u8; 7] = *b"/system"; +pub const REG_KEYNAME_SIZE: u32 = 27; + +pub const UTILITY_MSGDIALOG_ERROR: i32 = 0; +pub const UTILITY_MSGDIALOG_TEXT: i32 = 1; +pub const UTILITY_MSGDIALOG_YES_NO_BUTTONS: i32 = 0x10; +pub const UTILITY_MSGDIALOG_DEFAULT_NO: i32 = 0x100; + +pub const UTILITY_HTMLVIEWER_OPEN_SCE_START_PAGE: i32 = 0x000001; +pub const UTILITY_HTMLVIEWER_DISABLE_STARTUP_LIMITS: i32 = 0x000002; +pub const UTILITY_HTMLVIEWER_DISABLE_EXIT_DIALOG: i32 = 0x000004; +pub const UTILITY_HTMLVIEWER_DISABLE_CURSOR: i32 = 0x000008; +pub const UTILITY_HTMLVIEWER_DISABLE_DOWNLOAD_COMPLETE_DIALOG: i32 = 0x000010; +pub const UTILITY_HTMLVIEWER_DISABLE_DOWNLOAD_START_DIALOG: i32 = 0x000020; +pub const UTILITY_HTMLVIEWER_DISABLE_DOWNLOAD_DESTINATION_DIALOG: i32 = 0x000040; +pub const UTILITY_HTMLVIEWER_LOCK_DOWNLOAD_DESTINATION_DIALOG: i32 = 0x000080; +pub const UTILITY_HTMLVIEWER_DISABLE_TAB_DISPLAY: i32 = 0x000100; +pub const UTILITY_HTMLVIEWER_ENABLE_ANALOG_HOLD: i32 = 0x000200; +pub const UTILITY_HTMLVIEWER_ENABLE_FLASH: i32 = 0x000400; +pub const UTILITY_HTMLVIEWER_DISABLE_LRTRIGGER: i32 = 0x000800; + +extern "C" { + pub fn sceAudioChReserve(channel: i32, sample_count: i32, format: AudioFormat) -> i32; + pub fn sceAudioChRelease(channel: i32) -> i32; + pub fn sceAudioOutput(channel: i32, vol: i32, buf: *mut c_void) -> i32; + pub fn sceAudioOutputBlocking(channel: i32, vol: i32, buf: *mut c_void) -> i32; + pub fn sceAudioOutputPanned( + channel: i32, + left_vol: i32, + right_vol: i32, + buf: *mut c_void, + ) -> i32; + pub fn sceAudioOutputPannedBlocking( + channel: i32, + left_vol: i32, + right_vol: i32, + buf: *mut c_void, + ) -> i32; + pub fn sceAudioGetChannelRestLen(channel: i32) -> i32; + pub fn sceAudioGetChannelRestLength(channel: i32) -> i32; + pub fn sceAudioSetChannelDataLen(channel: i32, sample_count: i32) -> i32; + pub fn sceAudioChangeChannelConfig(channel: i32, format: AudioFormat) -> i32; + pub fn sceAudioChangeChannelVolume(channel: i32, left_vol: i32, right_vol: i32) -> i32; + pub fn sceAudioOutput2Reserve(sample_count: i32) -> i32; + pub fn sceAudioOutput2Release() -> i32; + pub fn sceAudioOutput2ChangeLength(sample_count: i32) -> i32; + pub fn sceAudioOutput2OutputBlocking(vol: i32, buf: *mut c_void) -> i32; + pub fn sceAudioOutput2GetRestSample() -> i32; + pub fn sceAudioSRCChReserve( + sample_count: i32, + freq: AudioOutputFrequency, + channels: i32, + ) -> i32; + pub fn sceAudioSRCChRelease() -> i32; + pub fn sceAudioSRCOutputBlocking(vol: i32, buf: *mut c_void) -> i32; + pub fn sceAudioInputInit(unknown1: i32, gain: i32, unknown2: i32) -> i32; + pub fn sceAudioInputInitEx(params: *mut AudioInputParams) -> i32; + pub fn sceAudioInputBlocking(sample_count: i32, freq: AudioInputFrequency, buf: *mut c_void); + pub fn sceAudioInput(sample_count: i32, freq: AudioInputFrequency, buf: *mut c_void); + pub fn sceAudioGetInputLength() -> i32; + pub fn sceAudioWaitInputEnd() -> i32; + pub fn sceAudioPollInputEnd() -> i32; + + pub fn sceAtracGetAtracID(ui_codec_type: u32) -> i32; + pub fn sceAtracSetDataAndGetID(buf: *mut c_void, bufsize: usize) -> i32; + pub fn sceAtracDecodeData( + atrac_id: i32, + out_samples: *mut u16, + out_n: *mut i32, + out_end: *mut i32, + out_remain_frame: *mut i32, + ) -> i32; + pub fn sceAtracGetRemainFrame(atrac_id: i32, out_remain_frame: *mut i32) -> i32; + pub fn sceAtracGetStreamDataInfo( + atrac_id: i32, + write_pointer: *mut *mut u8, + available_bytes: *mut u32, + read_offset: *mut u32, + ) -> i32; + pub fn sceAtracAddStreamData(atrac_id: i32, bytes_to_add: u32) -> i32; + pub fn sceAtracGetBitrate(atrac_id: i32, out_bitrate: *mut i32) -> i32; + pub fn sceAtracSetLoopNum(atrac_id: i32, nloops: i32) -> i32; + pub fn sceAtracReleaseAtracID(atrac_id: i32) -> i32; + pub fn sceAtracGetNextSample(atrac_id: i32, out_n: *mut i32) -> i32; + pub fn sceAtracGetMaxSample(atrac_id: i32, out_max: *mut i32) -> i32; + pub fn sceAtracGetBufferInfoForReseting( + atrac_id: i32, + ui_sample: u32, + pbuffer_info: *mut Atrac3BufferInfo, + ) -> i32; + pub fn sceAtracGetChannel(atrac_id: i32, pui_channel: *mut u32) -> i32; + pub fn sceAtracGetInternalErrorInfo(atrac_id: i32, pi_result: *mut i32) -> i32; + pub fn sceAtracGetLoopStatus( + atrac_id: i32, + pi_loop_num: *mut i32, + pui_loop_status: *mut u32, + ) -> i32; + pub fn sceAtracGetNextDecodePosition(atrac_id: i32, pui_sample_position: *mut u32) -> i32; + pub fn sceAtracGetSecondBufferInfo( + atrac_id: i32, + pui_position: *mut u32, + pui_data_byte: *mut u32, + ) -> i32; + pub fn sceAtracGetSoundSample( + atrac_id: i32, + pi_end_sample: *mut i32, + pi_loop_start_sample: *mut i32, + pi_loop_end_sample: *mut i32, + ) -> i32; + pub fn sceAtracResetPlayPosition( + atrac_id: i32, + ui_sample: u32, + ui_write_byte_first_buf: u32, + ui_write_byte_second_buf: u32, + ) -> i32; + pub fn sceAtracSetData(atrac_id: i32, puc_buffer_addr: *mut u8, ui_buffer_byte: u32) -> i32; + pub fn sceAtracSetHalfwayBuffer( + atrac_id: i32, + puc_buffer_addr: *mut u8, + ui_read_byte: u32, + ui_buffer_byte: u32, + ) -> i32; + pub fn sceAtracSetHalfwayBufferAndGetID( + puc_buffer_addr: *mut u8, + ui_read_byte: u32, + ui_buffer_byte: u32, + ) -> i32; + pub fn sceAtracSetSecondBuffer( + atrac_id: i32, + puc_second_buffer_addr: *mut u8, + ui_second_buffer_byte: u32, + ) -> i32; + + pub fn sceCtrlSetSamplingCycle(cycle: i32) -> i32; + pub fn sceCtrlGetSamplingCycle(pcycle: *mut i32) -> i32; + pub fn sceCtrlSetSamplingMode(mode: CtrlMode) -> i32; + pub fn sceCtrlGetSamplingMode(pmode: *mut i32) -> i32; + pub fn sceCtrlPeekBufferPositive(pad_data: *mut SceCtrlData, count: i32) -> i32; + pub fn sceCtrlPeekBufferNegative(pad_data: *mut SceCtrlData, count: i32) -> i32; + pub fn sceCtrlReadBufferPositive(pad_data: *mut SceCtrlData, count: i32) -> i32; + pub fn sceCtrlReadBufferNegative(pad_data: *mut SceCtrlData, count: i32) -> i32; + pub fn sceCtrlPeekLatch(latch_data: *mut SceCtrlLatch) -> i32; + pub fn sceCtrlReadLatch(latch_data: *mut SceCtrlLatch) -> i32; + pub fn sceCtrlSetIdleCancelThreshold(idlereset: i32, idleback: i32) -> i32; + pub fn sceCtrlGetIdleCancelThreshold(idlereset: *mut i32, idleback: *mut i32) -> i32; + + pub fn sceDisplaySetMode(mode: DisplayMode, width: usize, height: usize) -> u32; + pub fn sceDisplayGetMode(pmode: *mut i32, pwidth: *mut i32, pheight: *mut i32) -> i32; + pub fn sceDisplaySetFrameBuf( + top_addr: *const u8, + buffer_width: usize, + pixel_format: DisplayPixelFormat, + sync: DisplaySetBufSync, + ) -> u32; + pub fn sceDisplayGetFrameBuf( + top_addr: *mut *mut c_void, + buffer_width: *mut usize, + pixel_format: *mut DisplayPixelFormat, + sync: DisplaySetBufSync, + ) -> i32; + pub fn sceDisplayGetVcount() -> u32; + pub fn sceDisplayWaitVblank() -> i32; + pub fn sceDisplayWaitVblankCB() -> i32; + pub fn sceDisplayWaitVblankStart() -> i32; + pub fn sceDisplayWaitVblankStartCB() -> i32; + pub fn sceDisplayGetAccumulatedHcount() -> i32; + pub fn sceDisplayGetCurrentHcount() -> i32; + pub fn sceDisplayGetFramePerSec() -> f32; + pub fn sceDisplayIsForeground() -> i32; + pub fn sceDisplayIsVblank() -> i32; + + pub fn sceGeEdramGetSize() -> u32; + pub fn sceGeEdramGetAddr() -> *mut u8; + pub fn sceGeEdramSetAddrTranslation(width: i32) -> i32; + pub fn sceGeGetCmd(cmd: i32) -> u32; + pub fn sceGeGetMtx(type_: GeMatrixType, matrix: *mut c_void) -> i32; + pub fn sceGeGetStack(stack_id: i32, stack: *mut GeStack) -> i32; + pub fn sceGeSaveContext(context: *mut GeContext) -> i32; + pub fn sceGeRestoreContext(context: *const GeContext) -> i32; + pub fn sceGeListEnQueue( + list: *const c_void, + stall: *mut c_void, + cbid: i32, + arg: *mut GeListArgs, + ) -> i32; + pub fn sceGeListEnQueueHead( + list: *const c_void, + stall: *mut c_void, + cbid: i32, + arg: *mut GeListArgs, + ) -> i32; + pub fn sceGeListDeQueue(qid: i32) -> i32; + pub fn sceGeListUpdateStallAddr(qid: i32, stall: *mut c_void) -> i32; + pub fn sceGeListSync(qid: i32, sync_type: i32) -> GeListState; + pub fn sceGeDrawSync(sync_type: i32) -> GeListState; + pub fn sceGeBreak(mode: i32, p_param: *mut GeBreakParam) -> i32; + pub fn sceGeContinue() -> i32; + pub fn sceGeSetCallback(cb: *mut GeCallbackData) -> i32; + pub fn sceGeUnsetCallback(cbid: i32) -> i32; + + pub fn sceKernelExitGame(); + pub fn sceKernelRegisterExitCallback(id: SceUid) -> i32; + pub fn sceKernelLoadExec(file: *const u8, param: *mut SceKernelLoadExecParam) -> i32; + + pub fn sceKernelAllocPartitionMemory( + partition: SceSysMemPartitionId, + name: *const u8, + type_: SceSysMemBlockTypes, + size: u32, + addr: *mut c_void, + ) -> SceUid; + pub fn sceKernelGetBlockHeadAddr(blockid: SceUid) -> *mut c_void; + pub fn sceKernelFreePartitionMemory(blockid: SceUid) -> i32; + pub fn sceKernelTotalFreeMemSize() -> usize; + pub fn sceKernelMaxFreeMemSize() -> usize; + pub fn sceKernelDevkitVersion() -> u32; + pub fn sceKernelSetCompiledSdkVersion(version: u32) -> i32; + pub fn sceKernelGetCompiledSdkVersion() -> u32; + + pub fn sceKernelLibcTime(t: *mut i32) -> i32; + pub fn sceKernelLibcClock() -> u32; + pub fn sceKernelLibcGettimeofday(tp: *mut timeval, tzp: *mut timezone) -> i32; + pub fn sceKernelDcacheWritebackAll(); + pub fn sceKernelDcacheWritebackInvalidateAll(); + pub fn sceKernelDcacheWritebackRange(p: *const c_void, size: u32); + pub fn sceKernelDcacheWritebackInvalidateRange(p: *const c_void, size: u32); + pub fn sceKernelDcacheInvalidateRange(p: *const c_void, size: u32); + pub fn sceKernelIcacheInvalidateAll(); + pub fn sceKernelIcacheInvalidateRange(p: *const c_void, size: u32); + pub fn sceKernelUtilsMt19937Init(ctx: *mut SceKernelUtilsMt19937Context, seed: u32) -> i32; + pub fn sceKernelUtilsMt19937UInt(ctx: *mut SceKernelUtilsMt19937Context) -> u32; + pub fn sceKernelUtilsMd5Digest(data: *mut u8, size: u32, digest: *mut u8) -> i32; + pub fn sceKernelUtilsMd5BlockInit(ctx: *mut SceKernelUtilsMd5Context) -> i32; + pub fn sceKernelUtilsMd5BlockUpdate( + ctx: *mut SceKernelUtilsMd5Context, + data: *mut u8, + size: u32, + ) -> i32; + pub fn sceKernelUtilsMd5BlockResult(ctx: *mut SceKernelUtilsMd5Context, digest: *mut u8) + -> i32; + pub fn sceKernelUtilsSha1Digest(data: *mut u8, size: u32, digest: *mut u8) -> i32; + pub fn sceKernelUtilsSha1BlockInit(ctx: *mut SceKernelUtilsSha1Context) -> i32; + pub fn sceKernelUtilsSha1BlockUpdate( + ctx: *mut SceKernelUtilsSha1Context, + data: *mut u8, + size: u32, + ) -> i32; + pub fn sceKernelUtilsSha1BlockResult( + ctx: *mut SceKernelUtilsSha1Context, + digest: *mut u8, + ) -> i32; + + pub fn sceKernelRegisterSubIntrHandler( + int_no: i32, + no: i32, + handler: *mut c_void, + arg: *mut c_void, + ) -> i32; + pub fn sceKernelReleaseSubIntrHandler(int_no: i32, no: i32) -> i32; + pub fn sceKernelEnableSubIntr(int_no: i32, no: i32) -> i32; + pub fn sceKernelDisableSubIntr(int_no: i32, no: i32) -> i32; + pub fn QueryIntrHandlerInfo( + intr_code: SceUid, + sub_intr_code: SceUid, + data: *mut IntrHandlerOptionParam, + ) -> i32; + + pub fn sceKernelCpuSuspendIntr() -> u32; + pub fn sceKernelCpuResumeIntr(flags: u32); + pub fn sceKernelCpuResumeIntrWithSync(flags: u32); + pub fn sceKernelIsCpuIntrSuspended(flags: u32) -> i32; + pub fn sceKernelIsCpuIntrEnable() -> i32; + + pub fn sceKernelLoadModule( + path: *const u8, + flags: i32, + option: *mut SceKernelLMOption, + ) -> SceUid; + pub fn sceKernelLoadModuleMs( + path: *const u8, + flags: i32, + option: *mut SceKernelLMOption, + ) -> SceUid; + pub fn sceKernelLoadModuleByID( + fid: SceUid, + flags: i32, + option: *mut SceKernelLMOption, + ) -> SceUid; + pub fn sceKernelLoadModuleBufferUsbWlan( + buf_size: usize, + buf: *mut c_void, + flags: i32, + option: *mut SceKernelLMOption, + ) -> SceUid; + pub fn sceKernelStartModule( + mod_id: SceUid, + arg_size: usize, + argp: *mut c_void, + status: *mut i32, + option: *mut SceKernelSMOption, + ) -> i32; + pub fn sceKernelStopModule( + mod_id: SceUid, + arg_size: usize, + argp: *mut c_void, + status: *mut i32, + option: *mut SceKernelSMOption, + ) -> i32; + pub fn sceKernelUnloadModule(mod_id: SceUid) -> i32; + pub fn sceKernelSelfStopUnloadModule(unknown: i32, arg_size: usize, argp: *mut c_void) -> i32; + pub fn sceKernelStopUnloadSelfModule( + arg_size: usize, + argp: *mut c_void, + status: *mut i32, + option: *mut SceKernelSMOption, + ) -> i32; + pub fn sceKernelQueryModuleInfo(mod_id: SceUid, info: *mut SceKernelModuleInfo) -> i32; + pub fn sceKernelGetModuleIdList( + read_buf: *mut SceUid, + read_buf_size: i32, + id_count: *mut i32, + ) -> i32; + + pub fn sceKernelVolatileMemLock(unk: i32, ptr: *mut *mut c_void, size: *mut i32) -> i32; + pub fn sceKernelVolatileMemTryLock(unk: i32, ptr: *mut *mut c_void, size: *mut i32) -> i32; + pub fn sceKernelVolatileMemUnlock(unk: i32) -> i32; + + pub fn sceKernelStdin() -> SceUid; + pub fn sceKernelStdout() -> SceUid; + pub fn sceKernelStderr() -> SceUid; + + pub fn sceKernelGetThreadmanIdType(uid: SceUid) -> SceKernelIdListType; + pub fn sceKernelCreateThread( + name: *const u8, + entry: SceKernelThreadEntry, + init_priority: i32, + stack_size: i32, + attr: i32, + option: *mut SceKernelThreadOptParam, + ) -> SceUid; + pub fn sceKernelDeleteThread(thid: SceUid) -> i32; + pub fn sceKernelStartThread(id: SceUid, arg_len: usize, arg_p: *mut c_void) -> i32; + pub fn sceKernelExitThread(status: i32) -> i32; + pub fn sceKernelExitDeleteThread(status: i32) -> i32; + pub fn sceKernelTerminateThread(thid: SceUid) -> i32; + pub fn sceKernelTerminateDeleteThread(thid: SceUid) -> i32; + pub fn sceKernelSuspendDispatchThread() -> i32; + pub fn sceKernelResumeDispatchThread(state: i32) -> i32; + pub fn sceKernelSleepThread() -> i32; + pub fn sceKernelSleepThreadCB() -> i32; + pub fn sceKernelWakeupThread(thid: SceUid) -> i32; + pub fn sceKernelCancelWakeupThread(thid: SceUid) -> i32; + pub fn sceKernelSuspendThread(thid: SceUid) -> i32; + pub fn sceKernelResumeThread(thid: SceUid) -> i32; + pub fn sceKernelWaitThreadEnd(thid: SceUid, timeout: *mut u32) -> i32; + pub fn sceKernelWaitThreadEndCB(thid: SceUid, timeout: *mut u32) -> i32; + pub fn sceKernelDelayThread(delay: u32) -> i32; + pub fn sceKernelDelayThreadCB(delay: u32) -> i32; + pub fn sceKernelDelaySysClockThread(delay: *mut SceKernelSysClock) -> i32; + pub fn sceKernelDelaySysClockThreadCB(delay: *mut SceKernelSysClock) -> i32; + pub fn sceKernelChangeCurrentThreadAttr(unknown: i32, attr: i32) -> i32; + pub fn sceKernelChangeThreadPriority(thid: SceUid, priority: i32) -> i32; + pub fn sceKernelRotateThreadReadyQueue(priority: i32) -> i32; + pub fn sceKernelReleaseWaitThread(thid: SceUid) -> i32; + pub fn sceKernelGetThreadId() -> i32; + pub fn sceKernelGetThreadCurrentPriority() -> i32; + pub fn sceKernelGetThreadExitStatus(thid: SceUid) -> i32; + pub fn sceKernelCheckThreadStack() -> i32; + pub fn sceKernelGetThreadStackFreeSize(thid: SceUid) -> i32; + pub fn sceKernelReferThreadStatus(thid: SceUid, info: *mut SceKernelThreadInfo) -> i32; + pub fn sceKernelReferThreadRunStatus( + thid: SceUid, + status: *mut SceKernelThreadRunStatus, + ) -> i32; + pub fn sceKernelCreateSema( + name: *const u8, + attr: u32, + init_val: i32, + max_val: i32, + option: *mut SceKernelSemaOptParam, + ) -> SceUid; + pub fn sceKernelDeleteSema(sema_id: SceUid) -> i32; + pub fn sceKernelSignalSema(sema_id: SceUid, signal: i32) -> i32; + pub fn sceKernelWaitSema(sema_id: SceUid, signal: i32, timeout: *mut u32) -> i32; + pub fn sceKernelWaitSemaCB(sema_id: SceUid, signal: i32, timeout: *mut u32) -> i32; + pub fn sceKernelPollSema(sema_id: SceUid, signal: i32) -> i32; + pub fn sceKernelReferSemaStatus(sema_id: SceUid, info: *mut SceKernelSemaInfo) -> i32; + pub fn sceKernelCreateEventFlag( + name: *const u8, + attr: i32, + bits: i32, + opt: *mut SceKernelEventFlagOptParam, + ) -> SceUid; + pub fn sceKernelSetEventFlag(ev_id: SceUid, bits: u32) -> i32; + pub fn sceKernelClearEventFlag(ev_id: SceUid, bits: u32) -> i32; + pub fn sceKernelPollEventFlag(ev_id: SceUid, bits: u32, wait: i32, out_bits: *mut u32) -> i32; + pub fn sceKernelWaitEventFlag( + ev_id: SceUid, + bits: u32, + wait: i32, + out_bits: *mut u32, + timeout: *mut u32, + ) -> i32; + pub fn sceKernelWaitEventFlagCB( + ev_id: SceUid, + bits: u32, + wait: i32, + out_bits: *mut u32, + timeout: *mut u32, + ) -> i32; + pub fn sceKernelDeleteEventFlag(ev_id: SceUid) -> i32; + pub fn sceKernelReferEventFlagStatus(event: SceUid, status: *mut SceKernelEventFlagInfo) + -> i32; + pub fn sceKernelCreateMbx( + name: *const u8, + attr: u32, + option: *mut SceKernelMbxOptParam, + ) -> SceUid; + pub fn sceKernelDeleteMbx(mbx_id: SceUid) -> i32; + pub fn sceKernelSendMbx(mbx_id: SceUid, message: *mut c_void) -> i32; + pub fn sceKernelReceiveMbx(mbx_id: SceUid, message: *mut *mut c_void, timeout: *mut u32) + -> i32; + pub fn sceKernelReceiveMbxCB( + mbx_id: SceUid, + message: *mut *mut c_void, + timeout: *mut u32, + ) -> i32; + pub fn sceKernelPollMbx(mbx_id: SceUid, pmessage: *mut *mut c_void) -> i32; + pub fn sceKernelCancelReceiveMbx(mbx_id: SceUid, num: *mut i32) -> i32; + pub fn sceKernelReferMbxStatus(mbx_id: SceUid, info: *mut SceKernelMbxInfo) -> i32; + pub fn sceKernelSetAlarm( + clock: u32, + handler: SceKernelAlarmHandler, + common: *mut c_void, + ) -> SceUid; + pub fn sceKernelSetSysClockAlarm( + clock: *mut SceKernelSysClock, + handler: *mut SceKernelAlarmHandler, + common: *mut c_void, + ) -> SceUid; + pub fn sceKernelCancelAlarm(alarm_id: SceUid) -> i32; + pub fn sceKernelReferAlarmStatus(alarm_id: SceUid, info: *mut SceKernelAlarmInfo) -> i32; + pub fn sceKernelCreateCallback( + name: *const u8, + func: SceKernelCallbackFunction, + arg: *mut c_void, + ) -> SceUid; + pub fn sceKernelReferCallbackStatus(cb: SceUid, status: *mut SceKernelCallbackInfo) -> i32; + pub fn sceKernelDeleteCallback(cb: SceUid) -> i32; + pub fn sceKernelNotifyCallback(cb: SceUid, arg2: i32) -> i32; + pub fn sceKernelCancelCallback(cb: SceUid) -> i32; + pub fn sceKernelGetCallbackCount(cb: SceUid) -> i32; + pub fn sceKernelCheckCallback() -> i32; + pub fn sceKernelGetThreadmanIdList( + type_: SceKernelIdListType, + read_buf: *mut SceUid, + read_buf_size: i32, + id_count: *mut i32, + ) -> i32; + pub fn sceKernelReferSystemStatus(status: *mut SceKernelSystemStatus) -> i32; + pub fn sceKernelCreateMsgPipe( + name: *const u8, + part: i32, + attr: i32, + unk1: *mut c_void, + opt: *mut c_void, + ) -> SceUid; + pub fn sceKernelDeleteMsgPipe(uid: SceUid) -> i32; + pub fn sceKernelSendMsgPipe( + uid: SceUid, + message: *mut c_void, + size: u32, + unk1: i32, + unk2: *mut c_void, + timeout: *mut u32, + ) -> i32; + pub fn sceKernelSendMsgPipeCB( + uid: SceUid, + message: *mut c_void, + size: u32, + unk1: i32, + unk2: *mut c_void, + timeout: *mut u32, + ) -> i32; + pub fn sceKernelTrySendMsgPipe( + uid: SceUid, + message: *mut c_void, + size: u32, + unk1: i32, + unk2: *mut c_void, + ) -> i32; + pub fn sceKernelReceiveMsgPipe( + uid: SceUid, + message: *mut c_void, + size: u32, + unk1: i32, + unk2: *mut c_void, + timeout: *mut u32, + ) -> i32; + pub fn sceKernelReceiveMsgPipeCB( + uid: SceUid, + message: *mut c_void, + size: u32, + unk1: i32, + unk2: *mut c_void, + timeout: *mut u32, + ) -> i32; + pub fn sceKernelTryReceiveMsgPipe( + uid: SceUid, + message: *mut c_void, + size: u32, + unk1: i32, + unk2: *mut c_void, + ) -> i32; + pub fn sceKernelCancelMsgPipe(uid: SceUid, send: *mut i32, recv: *mut i32) -> i32; + pub fn sceKernelReferMsgPipeStatus(uid: SceUid, info: *mut SceKernelMppInfo) -> i32; + pub fn sceKernelCreateVpl( + name: *const u8, + part: i32, + attr: i32, + size: u32, + opt: *mut SceKernelVplOptParam, + ) -> SceUid; + pub fn sceKernelDeleteVpl(uid: SceUid) -> i32; + pub fn sceKernelAllocateVpl( + uid: SceUid, + size: u32, + data: *mut *mut c_void, + timeout: *mut u32, + ) -> i32; + pub fn sceKernelAllocateVplCB( + uid: SceUid, + size: u32, + data: *mut *mut c_void, + timeout: *mut u32, + ) -> i32; + pub fn sceKernelTryAllocateVpl(uid: SceUid, size: u32, data: *mut *mut c_void) -> i32; + pub fn sceKernelFreeVpl(uid: SceUid, data: *mut c_void) -> i32; + pub fn sceKernelCancelVpl(uid: SceUid, num: *mut i32) -> i32; + pub fn sceKernelReferVplStatus(uid: SceUid, info: *mut SceKernelVplInfo) -> i32; + pub fn sceKernelCreateFpl( + name: *const u8, + part: i32, + attr: i32, + size: u32, + blocks: u32, + opt: *mut SceKernelFplOptParam, + ) -> i32; + pub fn sceKernelDeleteFpl(uid: SceUid) -> i32; + pub fn sceKernelAllocateFpl(uid: SceUid, data: *mut *mut c_void, timeout: *mut u32) -> i32; + pub fn sceKernelAllocateFplCB(uid: SceUid, data: *mut *mut c_void, timeout: *mut u32) -> i32; + pub fn sceKernelTryAllocateFpl(uid: SceUid, data: *mut *mut c_void) -> i32; + pub fn sceKernelFreeFpl(uid: SceUid, data: *mut c_void) -> i32; + pub fn sceKernelCancelFpl(uid: SceUid, pnum: *mut i32) -> i32; + pub fn sceKernelReferFplStatus(uid: SceUid, info: *mut SceKernelFplInfo) -> i32; + pub fn sceKernelUSec2SysClock(usec: u32, clock: *mut SceKernelSysClock) -> i32; + pub fn sceKernelUSec2SysClockWide(usec: u32) -> i64; + pub fn sceKernelSysClock2USec( + clock: *mut SceKernelSysClock, + low: *mut u32, + high: *mut u32, + ) -> i32; + pub fn sceKernelSysClock2USecWide(clock: i64, low: *mut u32, high: *mut u32) -> i32; + pub fn sceKernelGetSystemTime(time: *mut SceKernelSysClock) -> i32; + pub fn sceKernelGetSystemTimeWide() -> i64; + pub fn sceKernelGetSystemTimeLow() -> u32; + pub fn sceKernelCreateVTimer(name: *const u8, opt: *mut SceKernelVTimerOptParam) -> SceUid; + pub fn sceKernelDeleteVTimer(uid: SceUid) -> i32; + pub fn sceKernelGetVTimerBase(uid: SceUid, base: *mut SceKernelSysClock) -> i32; + pub fn sceKernelGetVTimerBaseWide(uid: SceUid) -> i64; + pub fn sceKernelGetVTimerTime(uid: SceUid, time: *mut SceKernelSysClock) -> i32; + pub fn sceKernelGetVTimerTimeWide(uid: SceUid) -> i64; + pub fn sceKernelSetVTimerTime(uid: SceUid, time: *mut SceKernelSysClock) -> i32; + pub fn sceKernelSetVTimerTimeWide(uid: SceUid, time: i64) -> i64; + pub fn sceKernelStartVTimer(uid: SceUid) -> i32; + pub fn sceKernelStopVTimer(uid: SceUid) -> i32; + pub fn sceKernelSetVTimerHandler( + uid: SceUid, + time: *mut SceKernelSysClock, + handler: SceKernelVTimerHandler, + common: *mut c_void, + ) -> i32; + pub fn sceKernelSetVTimerHandlerWide( + uid: SceUid, + time: i64, + handler: SceKernelVTimerHandlerWide, + common: *mut c_void, + ) -> i32; + pub fn sceKernelCancelVTimerHandler(uid: SceUid) -> i32; + pub fn sceKernelReferVTimerStatus(uid: SceUid, info: *mut SceKernelVTimerInfo) -> i32; + pub fn sceKernelRegisterThreadEventHandler( + name: *const u8, + thread_id: SceUid, + mask: i32, + handler: SceKernelThreadEventHandler, + common: *mut c_void, + ) -> SceUid; + pub fn sceKernelReleaseThreadEventHandler(uid: SceUid) -> i32; + pub fn sceKernelReferThreadEventHandlerStatus( + uid: SceUid, + info: *mut SceKernelThreadEventHandlerInfo, + ) -> i32; + pub fn sceKernelReferThreadProfiler() -> *mut DebugProfilerRegs; + pub fn sceKernelReferGlobalProfiler() -> *mut DebugProfilerRegs; + + pub fn sceUsbStart(driver_name: *const u8, size: i32, args: *mut c_void) -> i32; + pub fn sceUsbStop(driver_name: *const u8, size: i32, args: *mut c_void) -> i32; + pub fn sceUsbActivate(pid: u32) -> i32; + pub fn sceUsbDeactivate(pid: u32) -> i32; + pub fn sceUsbGetState() -> i32; + pub fn sceUsbGetDrvState(driver_name: *const u8) -> i32; +} + +extern "C" { + pub fn sceUsbCamSetupStill(param: *mut UsbCamSetupStillParam) -> i32; + pub fn sceUsbCamSetupStillEx(param: *mut UsbCamSetupStillExParam) -> i32; + pub fn sceUsbCamStillInputBlocking(buf: *mut u8, size: usize) -> i32; + pub fn sceUsbCamStillInput(buf: *mut u8, size: usize) -> i32; + pub fn sceUsbCamStillWaitInputEnd() -> i32; + pub fn sceUsbCamStillPollInputEnd() -> i32; + pub fn sceUsbCamStillCancelInput() -> i32; + pub fn sceUsbCamStillGetInputLength() -> i32; + pub fn sceUsbCamSetupVideo( + param: *mut UsbCamSetupVideoParam, + work_area: *mut c_void, + work_area_size: i32, + ) -> i32; + pub fn sceUsbCamSetupVideoEx( + param: *mut UsbCamSetupVideoExParam, + work_area: *mut c_void, + work_area_size: i32, + ) -> i32; + pub fn sceUsbCamStartVideo() -> i32; + pub fn sceUsbCamStopVideo() -> i32; + pub fn sceUsbCamReadVideoFrameBlocking(buf: *mut u8, size: usize) -> i32; + pub fn sceUsbCamReadVideoFrame(buf: *mut u8, size: usize) -> i32; + pub fn sceUsbCamWaitReadVideoFrameEnd() -> i32; + pub fn sceUsbCamPollReadVideoFrameEnd() -> i32; + pub fn sceUsbCamGetReadVideoFrameSize() -> i32; + pub fn sceUsbCamSetSaturation(saturation: i32) -> i32; + pub fn sceUsbCamSetBrightness(brightness: i32) -> i32; + pub fn sceUsbCamSetContrast(contrast: i32) -> i32; + pub fn sceUsbCamSetSharpness(sharpness: i32) -> i32; + pub fn sceUsbCamSetImageEffectMode(effect_mode: UsbCamEffectMode) -> i32; + pub fn sceUsbCamSetEvLevel(exposure_level: UsbCamEvLevel) -> i32; + pub fn sceUsbCamSetReverseMode(reverse_flags: i32) -> i32; + pub fn sceUsbCamSetZoom(zoom: i32) -> i32; + pub fn sceUsbCamGetSaturation(saturation: *mut i32) -> i32; + pub fn sceUsbCamGetBrightness(brightness: *mut i32) -> i32; + pub fn sceUsbCamGetContrast(contrast: *mut i32) -> i32; + pub fn sceUsbCamGetSharpness(sharpness: *mut i32) -> i32; + pub fn sceUsbCamGetImageEffectMode(effect_mode: *mut UsbCamEffectMode) -> i32; + pub fn sceUsbCamGetEvLevel(exposure_level: *mut UsbCamEvLevel) -> i32; + pub fn sceUsbCamGetReverseMode(reverse_flags: *mut i32) -> i32; + pub fn sceUsbCamGetZoom(zoom: *mut i32) -> i32; + pub fn sceUsbCamAutoImageReverseSW(on: i32) -> i32; + pub fn sceUsbCamGetAutoImageReverseState() -> i32; + pub fn sceUsbCamGetLensDirection() -> i32; + + pub fn sceUsbstorBootRegisterNotify(event_flag: SceUid) -> i32; + pub fn sceUsbstorBootUnregisterNotify(event_flag: u32) -> i32; + pub fn sceUsbstorBootSetCapacity(size: u32) -> i32; + + pub fn scePowerRegisterCallback(slot: i32, cbid: SceUid) -> i32; + pub fn scePowerUnregisterCallback(slot: i32) -> i32; + pub fn scePowerIsPowerOnline() -> i32; + pub fn scePowerIsBatteryExist() -> i32; + pub fn scePowerIsBatteryCharging() -> i32; + pub fn scePowerGetBatteryChargingStatus() -> i32; + pub fn scePowerIsLowBattery() -> i32; + pub fn scePowerGetBatteryLifePercent() -> i32; + pub fn scePowerGetBatteryLifeTime() -> i32; + pub fn scePowerGetBatteryTemp() -> i32; + pub fn scePowerGetBatteryElec() -> i32; + pub fn scePowerGetBatteryVolt() -> i32; + pub fn scePowerSetCpuClockFrequency(cpufreq: i32) -> i32; + pub fn scePowerSetBusClockFrequency(busfreq: i32) -> i32; + pub fn scePowerGetCpuClockFrequency() -> i32; + pub fn scePowerGetCpuClockFrequencyInt() -> i32; + pub fn scePowerGetCpuClockFrequencyFloat() -> f32; + pub fn scePowerGetBusClockFrequency() -> i32; + pub fn scePowerGetBusClockFrequencyInt() -> i32; + pub fn scePowerGetBusClockFrequencyFloat() -> f32; + pub fn scePowerSetClockFrequency(pllfreq: i32, cpufreq: i32, busfreq: i32) -> i32; + pub fn scePowerLock(unknown: i32) -> i32; + pub fn scePowerUnlock(unknown: i32) -> i32; + pub fn scePowerTick(t: PowerTick) -> i32; + pub fn scePowerGetIdleTimer() -> i32; + pub fn scePowerIdleTimerEnable(unknown: i32) -> i32; + pub fn scePowerIdleTimerDisable(unknown: i32) -> i32; + pub fn scePowerRequestStandby() -> i32; + pub fn scePowerRequestSuspend() -> i32; + + pub fn sceWlanDevIsPowerOn() -> i32; + pub fn sceWlanGetSwitchState() -> i32; + pub fn sceWlanGetEtherAddr(ether_addr: *mut u8) -> i32; + + pub fn sceWlanDevAttach() -> i32; + pub fn sceWlanDevDetach() -> i32; + + pub fn sceRtcGetTickResolution() -> u32; + pub fn sceRtcGetCurrentTick(tick: *mut u64) -> i32; + pub fn sceRtcGetCurrentClock(tm: *mut ScePspDateTime, tz: i32) -> i32; + pub fn sceRtcGetCurrentClockLocalTime(tm: *mut ScePspDateTime) -> i32; + pub fn sceRtcConvertUtcToLocalTime(tick_utc: *const u64, tick_local: *mut u64) -> i32; + pub fn sceRtcConvertLocalTimeToUTC(tick_local: *const u64, tick_utc: *mut u64) -> i32; + pub fn sceRtcIsLeapYear(year: i32) -> i32; + pub fn sceRtcGetDaysInMonth(year: i32, month: i32) -> i32; + pub fn sceRtcGetDayOfWeek(year: i32, month: i32, day: i32) -> i32; + pub fn sceRtcCheckValid(date: *const ScePspDateTime) -> i32; + pub fn sceRtcSetTick(date: *mut ScePspDateTime, tick: *const u64) -> i32; + pub fn sceRtcGetTick(date: *const ScePspDateTime, tick: *mut u64) -> i32; + pub fn sceRtcCompareTick(tick1: *const u64, tick2: *const u64) -> i32; + pub fn sceRtcTickAddTicks(dest_tick: *mut u64, src_tick: *const u64, num_ticks: u64) -> i32; + pub fn sceRtcTickAddMicroseconds(dest_tick: *mut u64, src_tick: *const u64, num_ms: u64) + -> i32; + pub fn sceRtcTickAddSeconds(dest_tick: *mut u64, src_tick: *const u64, num_seconds: u64) + -> i32; + pub fn sceRtcTickAddMinutes(dest_tick: *mut u64, src_tick: *const u64, num_minutes: u64) + -> i32; + pub fn sceRtcTickAddHours(dest_tick: *mut u64, src_tick: *const u64, num_hours: u64) -> i32; + pub fn sceRtcTickAddDays(dest_tick: *mut u64, src_tick: *const u64, num_days: u64) -> i32; + pub fn sceRtcTickAddWeeks(dest_tick: *mut u64, src_tick: *const u64, num_weeks: u64) -> i32; + pub fn sceRtcTickAddMonths(dest_tick: *mut u64, src_tick: *const u64, num_months: u64) -> i32; + pub fn sceRtcTickAddYears(dest_tick: *mut u64, src_tick: *const u64, num_years: u64) -> i32; + pub fn sceRtcSetTime_t(date: *mut ScePspDateTime, time: u32) -> i32; + pub fn sceRtcGetTime_t(date: *const ScePspDateTime, time: *mut u32) -> i32; + pub fn sceRtcSetTime64_t(date: *mut ScePspDateTime, time: u64) -> i32; + pub fn sceRtcGetTime64_t(date: *const ScePspDateTime, time: *mut u64) -> i32; + pub fn sceRtcSetDosTime(date: *mut ScePspDateTime, dos_time: u32) -> i32; + pub fn sceRtcGetDosTime(date: *mut ScePspDateTime, dos_time: u32) -> i32; + pub fn sceRtcSetWin32FileTime(date: *mut ScePspDateTime, time: *mut u64) -> i32; + pub fn sceRtcGetWin32FileTime(date: *mut ScePspDateTime, time: *mut u64) -> i32; + pub fn sceRtcParseDateTime(dest_tick: *mut u64, date_string: *const u8) -> i32; + pub fn sceRtcFormatRFC3339( + psz_date_time: *mut char, + p_utc: *const u64, + time_zone_minutes: i32, + ) -> i32; + pub fn sceRtcFormatRFC3339LocalTime(psz_date_time: *mut char, p_utc: *const u64) -> i32; + pub fn sceRtcParseRFC3339(p_utc: *mut u64, psz_date_time: *const u8) -> i32; + pub fn sceRtcFormatRFC2822( + psz_date_time: *mut char, + p_utc: *const u64, + time_zone_minutes: i32, + ) -> i32; + pub fn sceRtcFormatRFC2822LocalTime(psz_date_time: *mut char, p_utc: *const u64) -> i32; + + pub fn sceIoOpen(file: *const u8, flags: i32, permissions: IoPermissions) -> SceUid; + pub fn sceIoOpenAsync(file: *const u8, flags: i32, permissions: IoPermissions) -> SceUid; + pub fn sceIoClose(fd: SceUid) -> i32; + pub fn sceIoCloseAsync(fd: SceUid) -> i32; + pub fn sceIoRead(fd: SceUid, data: *mut c_void, size: u32) -> i32; + pub fn sceIoReadAsync(fd: SceUid, data: *mut c_void, size: u32) -> i32; + pub fn sceIoWrite(fd: SceUid, data: *const c_void, size: usize) -> i32; + pub fn sceIoWriteAsync(fd: SceUid, data: *const c_void, size: u32) -> i32; + pub fn sceIoLseek(fd: SceUid, offset: i64, whence: IoWhence) -> i64; + pub fn sceIoLseekAsync(fd: SceUid, offset: i64, whence: IoWhence) -> i32; + pub fn sceIoLseek32(fd: SceUid, offset: i32, whence: IoWhence) -> i32; + pub fn sceIoLseek32Async(fd: SceUid, offset: i32, whence: IoWhence) -> i32; + pub fn sceIoRemove(file: *const u8) -> i32; + pub fn sceIoMkdir(dir: *const u8, mode: IoPermissions) -> i32; + pub fn sceIoRmdir(path: *const u8) -> i32; + pub fn sceIoChdir(path: *const u8) -> i32; + pub fn sceIoRename(oldname: *const u8, newname: *const u8) -> i32; + pub fn sceIoDopen(dirname: *const u8) -> SceUid; + pub fn sceIoDread(fd: SceUid, dir: *mut SceIoDirent) -> i32; + pub fn sceIoDclose(fd: SceUid) -> i32; + pub fn sceIoDevctl( + dev: *const u8, + cmd: u32, + indata: *mut c_void, + inlen: i32, + outdata: *mut c_void, + outlen: i32, + ) -> i32; + pub fn sceIoAssign( + dev1: *const u8, + dev2: *const u8, + dev3: *const u8, + mode: IoAssignPerms, + unk1: *mut c_void, + unk2: i32, + ) -> i32; + pub fn sceIoUnassign(dev: *const u8) -> i32; + pub fn sceIoGetstat(file: *const u8, stat: *mut SceIoStat) -> i32; + pub fn sceIoChstat(file: *const u8, stat: *mut SceIoStat, bits: i32) -> i32; + pub fn sceIoIoctl( + fd: SceUid, + cmd: u32, + indata: *mut c_void, + inlen: i32, + outdata: *mut c_void, + outlen: i32, + ) -> i32; + pub fn sceIoIoctlAsync( + fd: SceUid, + cmd: u32, + indata: *mut c_void, + inlen: i32, + outdata: *mut c_void, + outlen: i32, + ) -> i32; + pub fn sceIoSync(device: *const u8, unk: u32) -> i32; + pub fn sceIoWaitAsync(fd: SceUid, res: *mut i64) -> i32; + pub fn sceIoWaitAsyncCB(fd: SceUid, res: *mut i64) -> i32; + pub fn sceIoPollAsync(fd: SceUid, res: *mut i64) -> i32; + pub fn sceIoGetAsyncStat(fd: SceUid, poll: i32, res: *mut i64) -> i32; + pub fn sceIoCancel(fd: SceUid) -> i32; + pub fn sceIoGetDevType(fd: SceUid) -> i32; + pub fn sceIoChangeAsyncPriority(fd: SceUid, pri: i32) -> i32; + pub fn sceIoSetAsyncCallback(fd: SceUid, cb: SceUid, argp: *mut c_void) -> i32; + + pub fn sceJpegInitMJpeg() -> i32; + pub fn sceJpegFinishMJpeg() -> i32; + pub fn sceJpegCreateMJpeg(width: i32, height: i32) -> i32; + pub fn sceJpegDeleteMJpeg() -> i32; + pub fn sceJpegDecodeMJpeg(jpeg_buf: *mut u8, size: usize, rgba: *mut c_void, unk: u32) -> i32; + + pub fn sceUmdCheckMedium() -> i32; + pub fn sceUmdGetDiscInfo(info: *mut UmdInfo) -> i32; + pub fn sceUmdActivate(unit: i32, drive: *const u8) -> i32; + pub fn sceUmdDeactivate(unit: i32, drive: *const u8) -> i32; + pub fn sceUmdWaitDriveStat(state: i32) -> i32; + pub fn sceUmdWaitDriveStatWithTimer(state: i32, timeout: u32) -> i32; + pub fn sceUmdWaitDriveStatCB(state: i32, timeout: u32) -> i32; + pub fn sceUmdCancelWaitDriveStat() -> i32; + pub fn sceUmdGetDriveStat() -> i32; + pub fn sceUmdGetErrorStat() -> i32; + pub fn sceUmdRegisterUMDCallBack(cbid: i32) -> i32; + pub fn sceUmdUnRegisterUMDCallBack(cbid: i32) -> i32; + pub fn sceUmdReplacePermit() -> i32; + pub fn sceUmdReplaceProhibit() -> i32; + + pub fn sceMpegInit() -> i32; + pub fn sceMpegFinish(); + pub fn sceMpegRingbufferQueryMemSize(packets: i32) -> i32; + pub fn sceMpegRingbufferConstruct( + ringbuffer: *mut SceMpegRingbuffer, + packets: i32, + data: *mut c_void, + size: i32, + callback: SceMpegRingbufferCb, + cb_param: *mut c_void, + ) -> i32; + pub fn sceMpegRingbufferDestruct(ringbuffer: *mut SceMpegRingbuffer); + pub fn sceMpegRingbufferAvailableSize(ringbuffer: *mut SceMpegRingbuffer) -> i32; + pub fn sceMpegRingbufferPut( + ringbuffer: *mut SceMpegRingbuffer, + num_packets: i32, + available: i32, + ) -> i32; + pub fn sceMpegQueryMemSize(unk: i32) -> i32; + pub fn sceMpegCreate( + handle: SceMpeg, + data: *mut c_void, + size: i32, + ringbuffer: *mut SceMpegRingbuffer, + frame_width: i32, + unk1: i32, + unk2: i32, + ) -> i32; + pub fn sceMpegDelete(handle: SceMpeg); + pub fn sceMpegQueryStreamOffset(handle: SceMpeg, buffer: *mut c_void, offset: *mut i32) -> i32; + pub fn sceMpegQueryStreamSize(buffer: *mut c_void, size: *mut i32) -> i32; + pub fn sceMpegRegistStream(handle: SceMpeg, stream_id: i32, unk: i32) -> SceMpegStream; + pub fn sceMpegUnRegistStream(handle: SceMpeg, stream: SceMpegStream); + pub fn sceMpegFlushAllStream(handle: SceMpeg) -> i32; + pub fn sceMpegMallocAvcEsBuf(handle: SceMpeg) -> *mut c_void; + pub fn sceMpegFreeAvcEsBuf(handle: SceMpeg, buf: *mut c_void); + pub fn sceMpegQueryAtracEsSize(handle: SceMpeg, es_size: *mut i32, out_size: *mut i32) -> i32; + pub fn sceMpegInitAu(handle: SceMpeg, es_buffer: *mut c_void, au: *mut SceMpegAu) -> i32; + pub fn sceMpegGetAvcAu( + handle: SceMpeg, + stream: SceMpegStream, + au: *mut SceMpegAu, + unk: *mut i32, + ) -> i32; + pub fn sceMpegAvcDecodeMode(handle: SceMpeg, mode: *mut SceMpegAvcMode) -> i32; + pub fn sceMpegAvcDecode( + handle: SceMpeg, + au: *mut SceMpegAu, + iframe_width: i32, + buffer: *mut c_void, + init: *mut i32, + ) -> i32; + pub fn sceMpegAvcDecodeStop( + handle: SceMpeg, + frame_width: i32, + buffer: *mut c_void, + status: *mut i32, + ) -> i32; + pub fn sceMpegGetAtracAu( + handle: SceMpeg, + stream: SceMpegStream, + au: *mut SceMpegAu, + unk: *mut c_void, + ) -> i32; + pub fn sceMpegAtracDecode( + handle: SceMpeg, + au: *mut SceMpegAu, + buffer: *mut c_void, + init: i32, + ) -> i32; + + pub fn sceMpegBaseYCrCbCopyVme(yuv_buffer: *mut c_void, buffer: *mut i32, type_: i32) -> i32; + pub fn sceMpegBaseCscInit(width: i32) -> i32; + pub fn sceMpegBaseCscVme( + rgb_buffer: *mut c_void, + rgb_buffer2: *mut c_void, + width: i32, + y_cr_cb_buffer: *mut SceMpegYCrCbBuffer, + ) -> i32; + pub fn sceMpegbase_BEA18F91(lli: *mut SceMpegLLI) -> i32; + + pub fn sceHprmPeekCurrentKey(key: *mut i32) -> i32; + pub fn sceHprmPeekLatch(latch: *mut [u32; 4]) -> i32; + pub fn sceHprmReadLatch(latch: *mut [u32; 4]) -> i32; + pub fn sceHprmIsHeadphoneExist() -> i32; + pub fn sceHprmIsRemoteExist() -> i32; + pub fn sceHprmIsMicrophoneExist() -> i32; + + pub fn sceGuDepthBuffer(zbp: *mut c_void, zbw: i32); + pub fn sceGuDispBuffer(width: i32, height: i32, dispbp: *mut c_void, dispbw: i32); + pub fn sceGuDrawBuffer(psm: DisplayPixelFormat, fbp: *mut c_void, fbw: i32); + pub fn sceGuDrawBufferList(psm: DisplayPixelFormat, fbp: *mut c_void, fbw: i32); + pub fn sceGuDisplay(state: bool) -> bool; + pub fn sceGuDepthFunc(function: DepthFunc); + pub fn sceGuDepthMask(mask: i32); + pub fn sceGuDepthOffset(offset: i32); + pub fn sceGuDepthRange(near: i32, far: i32); + pub fn sceGuFog(near: f32, far: f32, color: u32); + pub fn sceGuInit(); + pub fn sceGuTerm(); + pub fn sceGuBreak(mode: i32); + pub fn sceGuContinue(); + pub fn sceGuSetCallback(signal: GuCallbackId, callback: GuCallback) -> GuCallback; + pub fn sceGuSignal(behavior: SignalBehavior, signal: i32); + pub fn sceGuSendCommandf(cmd: GeCommand, argument: f32); + pub fn sceGuSendCommandi(cmd: GeCommand, argument: i32); + pub fn sceGuGetMemory(size: i32) -> *mut c_void; + pub fn sceGuStart(context_type: GuContextType, list: *mut c_void); + pub fn sceGuFinish() -> i32; + pub fn sceGuFinishId(id: u32) -> i32; + pub fn sceGuCallList(list: *const c_void); + pub fn sceGuCallMode(mode: i32); + pub fn sceGuCheckList() -> i32; + pub fn sceGuSendList(mode: GuQueueMode, list: *const c_void, context: *mut GeContext); + pub fn sceGuSwapBuffers() -> *mut c_void; + pub fn sceGuSync(mode: GuSyncMode, behavior: GuSyncBehavior) -> GeListState; + pub fn sceGuDrawArray( + prim: GuPrimitive, + vtype: i32, + count: i32, + indices: *const c_void, + vertices: *const c_void, + ); + pub fn sceGuBeginObject( + vtype: i32, + count: i32, + indices: *const c_void, + vertices: *const c_void, + ); + pub fn sceGuEndObject(); + pub fn sceGuSetStatus(state: GuState, status: i32); + pub fn sceGuGetStatus(state: GuState) -> bool; + pub fn sceGuSetAllStatus(status: i32); + pub fn sceGuGetAllStatus() -> i32; + pub fn sceGuEnable(state: GuState); + pub fn sceGuDisable(state: GuState); + pub fn sceGuLight(light: i32, type_: LightType, components: i32, position: &ScePspFVector3); + pub fn sceGuLightAtt(light: i32, atten0: f32, atten1: f32, atten2: f32); + pub fn sceGuLightColor(light: i32, component: i32, color: u32); + pub fn sceGuLightMode(mode: LightMode); + pub fn sceGuLightSpot(light: i32, direction: &ScePspFVector3, exponent: f32, cutoff: f32); + pub fn sceGuClear(flags: i32); + pub fn sceGuClearColor(color: u32); + pub fn sceGuClearDepth(depth: u32); + pub fn sceGuClearStencil(stencil: u32); + pub fn sceGuPixelMask(mask: u32); + pub fn sceGuColor(color: u32); + pub fn sceGuColorFunc(func: ColorFunc, color: u32, mask: u32); + pub fn sceGuColorMaterial(components: i32); + pub fn sceGuAlphaFunc(func: AlphaFunc, value: i32, mask: i32); + pub fn sceGuAmbient(color: u32); + pub fn sceGuAmbientColor(color: u32); + pub fn sceGuBlendFunc(op: BlendOp, src: BlendSrc, dest: BlendDst, src_fix: u32, dest_fix: u32); + pub fn sceGuMaterial(components: i32, color: u32); + pub fn sceGuModelColor(emissive: u32, ambient: u32, diffuse: u32, specular: u32); + pub fn sceGuStencilFunc(func: StencilFunc, ref_: i32, mask: i32); + pub fn sceGuStencilOp(fail: StencilOperation, zfail: StencilOperation, zpass: StencilOperation); + pub fn sceGuSpecular(power: f32); + pub fn sceGuFrontFace(order: FrontFaceDirection); + pub fn sceGuLogicalOp(op: LogicalOperation); + pub fn sceGuSetDither(matrix: &ScePspIMatrix4); + pub fn sceGuShadeModel(mode: ShadingModel); + pub fn sceGuCopyImage( + psm: DisplayPixelFormat, + sx: i32, + sy: i32, + width: i32, + height: i32, + srcw: i32, + src: *mut c_void, + dx: i32, + dy: i32, + destw: i32, + dest: *mut c_void, + ); + pub fn sceGuTexEnvColor(color: u32); + pub fn sceGuTexFilter(min: TextureFilter, mag: TextureFilter); + pub fn sceGuTexFlush(); + pub fn sceGuTexFunc(tfx: TextureEffect, tcc: TextureColorComponent); + pub fn sceGuTexImage( + mipmap: MipmapLevel, + width: i32, + height: i32, + tbw: i32, + tbp: *const c_void, + ); + pub fn sceGuTexLevelMode(mode: TextureLevelMode, bias: f32); + pub fn sceGuTexMapMode(mode: TextureMapMode, a1: u32, a2: u32); + pub fn sceGuTexMode(tpsm: TexturePixelFormat, maxmips: i32, a2: i32, swizzle: i32); + pub fn sceGuTexOffset(u: f32, v: f32); + pub fn sceGuTexProjMapMode(mode: TextureProjectionMapMode); + pub fn sceGuTexScale(u: f32, v: f32); + pub fn sceGuTexSlope(slope: f32); + pub fn sceGuTexSync(); + pub fn sceGuTexWrap(u: GuTexWrapMode, v: GuTexWrapMode); + pub fn sceGuClutLoad(num_blocks: i32, cbp: *const c_void); + pub fn sceGuClutMode(cpsm: ClutPixelFormat, shift: u32, mask: u32, a3: u32); + pub fn sceGuOffset(x: u32, y: u32); + pub fn sceGuScissor(x: i32, y: i32, w: i32, h: i32); + pub fn sceGuViewport(cx: i32, cy: i32, width: i32, height: i32); + pub fn sceGuDrawBezier( + v_type: i32, + u_count: i32, + v_count: i32, + indices: *const c_void, + vertices: *const c_void, + ); + pub fn sceGuPatchDivide(ulevel: u32, vlevel: u32); + pub fn sceGuPatchFrontFace(a0: u32); + pub fn sceGuPatchPrim(prim: PatchPrimitive); + pub fn sceGuDrawSpline( + v_type: i32, + u_count: i32, + v_count: i32, + u_edge: i32, + v_edge: i32, + indices: *const c_void, + vertices: *const c_void, + ); + pub fn sceGuSetMatrix(type_: MatrixMode, matrix: &ScePspFMatrix4); + pub fn sceGuBoneMatrix(index: u32, matrix: &ScePspFMatrix4); + pub fn sceGuMorphWeight(index: i32, weight: f32); + pub fn sceGuDrawArrayN( + primitive_type: GuPrimitive, + v_type: i32, + count: i32, + a3: i32, + indices: *const c_void, + vertices: *const c_void, + ); + + pub fn sceGumDrawArray( + prim: GuPrimitive, + v_type: i32, + count: i32, + indices: *const c_void, + vertices: *const c_void, + ); + pub fn sceGumDrawArrayN( + prim: GuPrimitive, + v_type: i32, + count: i32, + a3: i32, + indices: *const c_void, + vertices: *const c_void, + ); + pub fn sceGumDrawBezier( + v_type: i32, + u_count: i32, + v_count: i32, + indices: *const c_void, + vertices: *const c_void, + ); + pub fn sceGumDrawSpline( + v_type: i32, + u_count: i32, + v_count: i32, + u_edge: i32, + v_edge: i32, + indices: *const c_void, + vertices: *const c_void, + ); + pub fn sceGumFastInverse(); + pub fn sceGumFullInverse(); + pub fn sceGumLoadIdentity(); + pub fn sceGumLoadMatrix(m: &ScePspFMatrix4); + pub fn sceGumLookAt(eye: &ScePspFVector3, center: &ScePspFVector3, up: &ScePspFVector3); + pub fn sceGumMatrixMode(mode: MatrixMode); + pub fn sceGumMultMatrix(m: &ScePspFMatrix4); + pub fn sceGumOrtho(left: f32, right: f32, bottom: f32, top: f32, near: f32, far: f32); + pub fn sceGumPerspective(fovy: f32, aspect: f32, near: f32, far: f32); + pub fn sceGumPopMatrix(); + pub fn sceGumPushMatrix(); + pub fn sceGumRotateX(angle: f32); + pub fn sceGumRotateY(angle: f32); + pub fn sceGumRotateZ(angle: f32); + pub fn sceGumRotateXYZ(v: &ScePspFVector3); + pub fn sceGumRotateZYX(v: &ScePspFVector3); + pub fn sceGumScale(v: &ScePspFVector3); + pub fn sceGumStoreMatrix(m: &mut ScePspFMatrix4); + pub fn sceGumTranslate(v: &ScePspFVector3); + pub fn sceGumUpdateMatrix(); + + pub fn sceMp3ReserveMp3Handle(args: *mut SceMp3InitArg) -> i32; + pub fn sceMp3ReleaseMp3Handle(handle: Mp3Handle) -> i32; + pub fn sceMp3InitResource() -> i32; + pub fn sceMp3TermResource() -> i32; + pub fn sceMp3Init(handle: Mp3Handle) -> i32; + pub fn sceMp3Decode(handle: Mp3Handle, dst: *mut *mut i16) -> i32; + pub fn sceMp3GetInfoToAddStreamData( + handle: Mp3Handle, + dst: *mut *mut u8, + to_write: *mut i32, + src_pos: *mut i32, + ) -> i32; + pub fn sceMp3NotifyAddStreamData(handle: Mp3Handle, size: i32) -> i32; + pub fn sceMp3CheckStreamDataNeeded(handle: Mp3Handle) -> i32; + pub fn sceMp3SetLoopNum(handle: Mp3Handle, loop_: i32) -> i32; + pub fn sceMp3GetLoopNum(handle: Mp3Handle) -> i32; + pub fn sceMp3GetSumDecodedSample(handle: Mp3Handle) -> i32; + pub fn sceMp3GetMaxOutputSample(handle: Mp3Handle) -> i32; + pub fn sceMp3GetSamplingRate(handle: Mp3Handle) -> i32; + pub fn sceMp3GetBitRate(handle: Mp3Handle) -> i32; + pub fn sceMp3GetMp3ChannelNum(handle: Mp3Handle) -> i32; + pub fn sceMp3ResetPlayPosition(handle: Mp3Handle) -> i32; + + pub fn sceRegOpenRegistry(reg: *mut Key, mode: i32, handle: *mut RegHandle) -> i32; + pub fn sceRegFlushRegistry(handle: RegHandle) -> i32; + pub fn sceRegCloseRegistry(handle: RegHandle) -> i32; + pub fn sceRegOpenCategory( + handle: RegHandle, + name: *const u8, + mode: i32, + dir_handle: *mut RegHandle, + ) -> i32; + pub fn sceRegRemoveCategory(handle: RegHandle, name: *const u8) -> i32; + pub fn sceRegCloseCategory(dir_handle: RegHandle) -> i32; + pub fn sceRegFlushCategory(dir_handle: RegHandle) -> i32; + pub fn sceRegGetKeyInfo( + dir_handle: RegHandle, + name: *const u8, + key_handle: *mut RegHandle, + type_: *mut KeyType, + size: *mut usize, + ) -> i32; + pub fn sceRegGetKeyInfoByName( + dir_handle: RegHandle, + name: *const u8, + type_: *mut KeyType, + size: *mut usize, + ) -> i32; + pub fn sceRegGetKeyValue( + dir_handle: RegHandle, + key_handle: RegHandle, + buf: *mut c_void, + size: usize, + ) -> i32; + pub fn sceRegGetKeyValueByName( + dir_handle: RegHandle, + name: *const u8, + buf: *mut c_void, + size: usize, + ) -> i32; + pub fn sceRegSetKeyValue( + dir_handle: RegHandle, + name: *const u8, + buf: *const c_void, + size: usize, + ) -> i32; + pub fn sceRegGetKeysNum(dir_handle: RegHandle, num: *mut i32) -> i32; + pub fn sceRegGetKeys(dir_handle: RegHandle, buf: *mut u8, num: i32) -> i32; + pub fn sceRegCreateKey(dir_handle: RegHandle, name: *const u8, type_: i32, size: usize) -> i32; + pub fn sceRegRemoveRegistry(key: *mut Key) -> i32; + + pub fn sceOpenPSIDGetOpenPSID(openpsid: *mut OpenPSID) -> i32; + + pub fn sceUtilityMsgDialogInitStart(params: *mut UtilityMsgDialogParams) -> i32; + pub fn sceUtilityMsgDialogShutdownStart(); + pub fn sceUtilityMsgDialogGetStatus() -> i32; + pub fn sceUtilityMsgDialogUpdate(n: i32); + pub fn sceUtilityMsgDialogAbort() -> i32; + pub fn sceUtilityNetconfInitStart(data: *mut UtilityNetconfData) -> i32; + pub fn sceUtilityNetconfShutdownStart() -> i32; + pub fn sceUtilityNetconfUpdate(unknown: i32) -> i32; + pub fn sceUtilityNetconfGetStatus() -> i32; + pub fn sceUtilityCheckNetParam(id: i32) -> i32; + pub fn sceUtilityGetNetParam(conf: i32, param: NetParam, data: *mut UtilityNetData) -> i32; + pub fn sceUtilitySavedataInitStart(params: *mut SceUtilitySavedataParam) -> i32; + pub fn sceUtilitySavedataGetStatus() -> i32; + pub fn sceUtilitySavedataShutdownStart() -> i32; + pub fn sceUtilitySavedataUpdate(unknown: i32); + pub fn sceUtilityGameSharingInitStart(params: *mut UtilityGameSharingParams) -> i32; + pub fn sceUtilityGameSharingShutdownStart(); + pub fn sceUtilityGameSharingGetStatus() -> i32; + pub fn sceUtilityGameSharingUpdate(n: i32); + pub fn sceUtilityHtmlViewerInitStart(params: *mut UtilityHtmlViewerParam) -> i32; + pub fn sceUtilityHtmlViewerShutdownStart() -> i32; + pub fn sceUtilityHtmlViewerUpdate(n: i32) -> i32; + pub fn sceUtilityHtmlViewerGetStatus() -> i32; + pub fn sceUtilitySetSystemParamInt(id: SystemParamId, value: i32) -> i32; + pub fn sceUtilitySetSystemParamString(id: SystemParamId, str: *const u8) -> i32; + pub fn sceUtilityGetSystemParamInt(id: SystemParamId, value: *mut i32) -> i32; + pub fn sceUtilityGetSystemParamString(id: SystemParamId, str: *mut u8, len: i32) -> i32; + pub fn sceUtilityOskInitStart(params: *mut SceUtilityOskParams) -> i32; + pub fn sceUtilityOskShutdownStart() -> i32; + pub fn sceUtilityOskUpdate(n: i32) -> i32; + pub fn sceUtilityOskGetStatus() -> i32; + pub fn sceUtilityLoadNetModule(module: NetModule) -> i32; + pub fn sceUtilityUnloadNetModule(module: NetModule) -> i32; + pub fn sceUtilityLoadAvModule(module: AvModule) -> i32; + pub fn sceUtilityUnloadAvModule(module: AvModule) -> i32; + pub fn sceUtilityLoadUsbModule(module: UsbModule) -> i32; + pub fn sceUtilityUnloadUsbModule(module: UsbModule) -> i32; + pub fn sceUtilityLoadModule(module: Module) -> i32; + pub fn sceUtilityUnloadModule(module: Module) -> i32; + pub fn sceUtilityCreateNetParam(conf: i32) -> i32; + pub fn sceUtilitySetNetParam(param: NetParam, val: *const c_void) -> i32; + pub fn sceUtilityCopyNetParam(src: i32, dest: i32) -> i32; + pub fn sceUtilityDeleteNetParam(conf: i32) -> i32; + + pub fn sceNetInit( + poolsize: i32, + calloutprio: i32, + calloutstack: i32, + netintrprio: i32, + netintrstack: i32, + ) -> i32; + pub fn sceNetTerm() -> i32; + pub fn sceNetFreeThreadinfo(thid: i32) -> i32; + pub fn sceNetThreadAbort(thid: i32) -> i32; + pub fn sceNetEtherStrton(name: *mut u8, mac: *mut u8); + pub fn sceNetEtherNtostr(mac: *mut u8, name: *mut u8); + pub fn sceNetGetLocalEtherAddr(mac: *mut u8) -> i32; + pub fn sceNetGetMallocStat(stat: *mut SceNetMallocStat) -> i32; + + pub fn sceNetAdhocctlInit( + stacksize: i32, + priority: i32, + adhoc_id: *mut SceNetAdhocctlAdhocId, + ) -> i32; + pub fn sceNetAdhocctlTerm() -> i32; + pub fn sceNetAdhocctlConnect(name: *const u8) -> i32; + pub fn sceNetAdhocctlDisconnect() -> i32; + pub fn sceNetAdhocctlGetState(event: *mut i32) -> i32; + pub fn sceNetAdhocctlCreate(name: *const u8) -> i32; + pub fn sceNetAdhocctlJoin(scaninfo: *mut SceNetAdhocctlScanInfo) -> i32; + pub fn sceNetAdhocctlGetAdhocId(id: *mut SceNetAdhocctlAdhocId) -> i32; + pub fn sceNetAdhocctlCreateEnterGameMode( + name: *const u8, + unknown: i32, + num: i32, + macs: *mut u8, + timeout: u32, + unknown2: i32, + ) -> i32; + pub fn sceNetAdhocctlJoinEnterGameMode( + name: *const u8, + hostmac: *mut u8, + timeout: u32, + unknown: i32, + ) -> i32; + pub fn sceNetAdhocctlGetGameModeInfo(gamemodeinfo: *mut SceNetAdhocctlGameModeInfo) -> i32; + pub fn sceNetAdhocctlExitGameMode() -> i32; + pub fn sceNetAdhocctlGetPeerList(length: *mut i32, buf: *mut c_void) -> i32; + pub fn sceNetAdhocctlGetPeerInfo( + mac: *mut u8, + size: i32, + peerinfo: *mut SceNetAdhocctlPeerInfo, + ) -> i32; + pub fn sceNetAdhocctlScan() -> i32; + pub fn sceNetAdhocctlGetScanInfo(length: *mut i32, buf: *mut c_void) -> i32; + pub fn sceNetAdhocctlAddHandler(handler: SceNetAdhocctlHandler, unknown: *mut c_void) -> i32; + pub fn sceNetAdhocctlDelHandler(id: i32) -> i32; + pub fn sceNetAdhocctlGetNameByAddr(mac: *mut u8, nickname: *mut u8) -> i32; + pub fn sceNetAdhocctlGetAddrByName( + nickname: *mut u8, + length: *mut i32, + buf: *mut c_void, + ) -> i32; + pub fn sceNetAdhocctlGetParameter(params: *mut SceNetAdhocctlParams) -> i32; + + pub fn sceNetAdhocInit() -> i32; + pub fn sceNetAdhocTerm() -> i32; + pub fn sceNetAdhocPdpCreate(mac: *mut u8, port: u16, buf_size: u32, unk1: i32) -> i32; + pub fn sceNetAdhocPdpDelete(id: i32, unk1: i32) -> i32; + pub fn sceNetAdhocPdpSend( + id: i32, + dest_mac_addr: *mut u8, + port: u16, + data: *mut c_void, + len: u32, + timeout: u32, + nonblock: i32, + ) -> i32; + pub fn sceNetAdhocPdpRecv( + id: i32, + src_mac_addr: *mut u8, + port: *mut u16, + data: *mut c_void, + data_length: *mut c_void, + timeout: u32, + nonblock: i32, + ) -> i32; + pub fn sceNetAdhocGetPdpStat(size: *mut i32, stat: *mut SceNetAdhocPdpStat) -> i32; + pub fn sceNetAdhocGameModeCreateMaster(data: *mut c_void, size: i32) -> i32; + pub fn sceNetAdhocGameModeCreateReplica(mac: *mut u8, data: *mut c_void, size: i32) -> i32; + pub fn sceNetAdhocGameModeUpdateMaster() -> i32; + pub fn sceNetAdhocGameModeUpdateReplica(id: i32, unk1: i32) -> i32; + pub fn sceNetAdhocGameModeDeleteMaster() -> i32; + pub fn sceNetAdhocGameModeDeleteReplica(id: i32) -> i32; + pub fn sceNetAdhocPtpOpen( + srcmac: *mut u8, + srcport: u16, + destmac: *mut u8, + destport: u16, + buf_size: u32, + delay: u32, + count: i32, + unk1: i32, + ) -> i32; + pub fn sceNetAdhocPtpConnect(id: i32, timeout: u32, nonblock: i32) -> i32; + pub fn sceNetAdhocPtpListen( + srcmac: *mut u8, + srcport: u16, + buf_size: u32, + delay: u32, + count: i32, + queue: i32, + unk1: i32, + ) -> i32; + pub fn sceNetAdhocPtpAccept( + id: i32, + mac: *mut u8, + port: *mut u16, + timeout: u32, + nonblock: i32, + ) -> i32; + pub fn sceNetAdhocPtpSend( + id: i32, + data: *mut c_void, + data_size: *mut i32, + timeout: u32, + nonblock: i32, + ) -> i32; + pub fn sceNetAdhocPtpRecv( + id: i32, + data: *mut c_void, + data_size: *mut i32, + timeout: u32, + nonblock: i32, + ) -> i32; + pub fn sceNetAdhocPtpFlush(id: i32, timeout: u32, nonblock: i32) -> i32; + pub fn sceNetAdhocPtpClose(id: i32, unk1: i32) -> i32; + pub fn sceNetAdhocGetPtpStat(size: *mut i32, stat: *mut SceNetAdhocPtpStat) -> i32; +} + +extern "C" { + pub fn sceNetAdhocMatchingInit(memsize: i32) -> i32; + pub fn sceNetAdhocMatchingTerm() -> i32; + pub fn sceNetAdhocMatchingCreate( + mode: AdhocMatchingMode, + max_peers: i32, + port: u16, + buf_size: i32, + hello_delay: u32, + ping_delay: u32, + init_count: i32, + msg_delay: u32, + callback: AdhocMatchingCallback, + ) -> i32; + pub fn sceNetAdhocMatchingDelete(matching_id: i32) -> i32; + pub fn sceNetAdhocMatchingStart( + matching_id: i32, + evth_pri: i32, + evth_stack: i32, + inth_pri: i32, + inth_stack: i32, + opt_len: i32, + opt_data: *mut c_void, + ) -> i32; + pub fn sceNetAdhocMatchingStop(matching_id: i32) -> i32; + pub fn sceNetAdhocMatchingSelectTarget( + matching_id: i32, + mac: *mut u8, + opt_len: i32, + opt_data: *mut c_void, + ) -> i32; + pub fn sceNetAdhocMatchingCancelTarget(matching_id: i32, mac: *mut u8) -> i32; + pub fn sceNetAdhocMatchingCancelTargetWithOpt( + matching_id: i32, + mac: *mut u8, + opt_len: i32, + opt_data: *mut c_void, + ) -> i32; + pub fn sceNetAdhocMatchingSendData( + matching_id: i32, + mac: *mut u8, + data_len: i32, + data: *mut c_void, + ) -> i32; + pub fn sceNetAdhocMatchingAbortSendData(matching_id: i32, mac: *mut u8) -> i32; + pub fn sceNetAdhocMatchingSetHelloOpt( + matching_id: i32, + opt_len: i32, + opt_data: *mut c_void, + ) -> i32; + pub fn sceNetAdhocMatchingGetHelloOpt( + matching_id: i32, + opt_len: *mut i32, + opt_data: *mut c_void, + ) -> i32; + pub fn sceNetAdhocMatchingGetMembers( + matching_id: i32, + length: *mut i32, + buf: *mut c_void, + ) -> i32; + pub fn sceNetAdhocMatchingGetPoolMaxAlloc() -> i32; + pub fn sceNetAdhocMatchingGetPoolStat(poolstat: *mut AdhocPoolStat) -> i32; +} + +extern "C" { + pub fn sceNetApctlInit(stack_size: i32, init_priority: i32) -> i32; + pub fn sceNetApctlTerm() -> i32; + pub fn sceNetApctlGetInfo(code: ApctlInfo, pinfo: *mut SceNetApctlInfo) -> i32; + pub fn sceNetApctlAddHandler(handler: SceNetApctlHandler, parg: *mut c_void) -> i32; + pub fn sceNetApctlDelHandler(handler_id: i32) -> i32; + pub fn sceNetApctlConnect(conn_index: i32) -> i32; + pub fn sceNetApctlDisconnect() -> i32; + pub fn sceNetApctlGetState(pstate: *mut ApctlState) -> i32; + + pub fn sceNetInetInit() -> i32; + pub fn sceNetInetTerm() -> i32; + pub fn sceNetInetAccept(s: i32, addr: *mut sockaddr, addr_len: *mut socklen_t) -> i32; + pub fn sceNetInetBind(s: i32, my_addr: *const sockaddr, addr_len: socklen_t) -> i32; + pub fn sceNetInetConnect(s: i32, serv_addr: *const sockaddr, addr_len: socklen_t) -> i32; + pub fn sceNetInetGetsockopt( + s: i32, + level: i32, + opt_name: i32, + opt_val: *mut c_void, + optl_en: *mut socklen_t, + ) -> i32; + pub fn sceNetInetListen(s: i32, backlog: i32) -> i32; + pub fn sceNetInetRecv(s: i32, buf: *mut c_void, len: usize, flags: i32) -> usize; + pub fn sceNetInetRecvfrom( + s: i32, + buf: *mut c_void, + flags: usize, + arg1: i32, + from: *mut sockaddr, + from_len: *mut socklen_t, + ) -> usize; + pub fn sceNetInetSend(s: i32, buf: *const c_void, len: usize, flags: i32) -> usize; + pub fn sceNetInetSendto( + s: i32, + buf: *const c_void, + len: usize, + flags: i32, + to: *const sockaddr, + to_len: socklen_t, + ) -> usize; + pub fn sceNetInetSetsockopt( + s: i32, + level: i32, + opt_name: i32, + opt_val: *const c_void, + opt_len: socklen_t, + ) -> i32; + pub fn sceNetInetShutdown(s: i32, how: i32) -> i32; + pub fn sceNetInetSocket(domain: i32, type_: i32, protocol: i32) -> i32; + pub fn sceNetInetClose(s: i32) -> i32; + pub fn sceNetInetGetErrno() -> i32; + + pub fn sceSslInit(unknown1: i32) -> i32; + pub fn sceSslEnd() -> i32; + pub fn sceSslGetUsedMemoryMax(memory: *mut u32) -> i32; + pub fn sceSslGetUsedMemoryCurrent(memory: *mut u32) -> i32; + + pub fn sceHttpInit(unknown1: u32) -> i32; + pub fn sceHttpEnd() -> i32; + pub fn sceHttpCreateTemplate(agent: *mut u8, unknown1: i32, unknown2: i32) -> i32; + pub fn sceHttpDeleteTemplate(templateid: i32) -> i32; + pub fn sceHttpCreateConnection( + templateid: i32, + host: *mut u8, + unknown1: *mut u8, + port: u16, + unknown2: i32, + ) -> i32; + pub fn sceHttpCreateConnectionWithURL(templateid: i32, url: *const u8, unknown1: i32) -> i32; + pub fn sceHttpDeleteConnection(connection_id: i32) -> i32; + pub fn sceHttpCreateRequest( + connection_id: i32, + method: HttpMethod, + path: *mut u8, + content_length: u64, + ) -> i32; + pub fn sceHttpCreateRequestWithURL( + connection_id: i32, + method: HttpMethod, + url: *mut u8, + content_length: u64, + ) -> i32; + pub fn sceHttpDeleteRequest(request_id: i32) -> i32; + pub fn sceHttpSendRequest(request_id: i32, data: *mut c_void, data_size: u32) -> i32; + pub fn sceHttpAbortRequest(request_id: i32) -> i32; + pub fn sceHttpReadData(request_id: i32, data: *mut c_void, data_size: u32) -> i32; + pub fn sceHttpGetContentLength(request_id: i32, content_length: *mut u64) -> i32; + pub fn sceHttpGetStatusCode(request_id: i32, status_code: *mut i32) -> i32; + pub fn sceHttpSetResolveTimeOut(id: i32, timeout: u32) -> i32; + pub fn sceHttpSetResolveRetry(id: i32, count: i32) -> i32; + pub fn sceHttpSetConnectTimeOut(id: i32, timeout: u32) -> i32; + pub fn sceHttpSetSendTimeOut(id: i32, timeout: u32) -> i32; + pub fn sceHttpSetRecvTimeOut(id: i32, timeout: u32) -> i32; + pub fn sceHttpEnableKeepAlive(id: i32) -> i32; + pub fn sceHttpDisableKeepAlive(id: i32) -> i32; + pub fn sceHttpEnableRedirect(id: i32) -> i32; + pub fn sceHttpDisableRedirect(id: i32) -> i32; + pub fn sceHttpEnableCookie(id: i32) -> i32; + pub fn sceHttpDisableCookie(id: i32) -> i32; + pub fn sceHttpSaveSystemCookie() -> i32; + pub fn sceHttpLoadSystemCookie() -> i32; + pub fn sceHttpAddExtraHeader(id: i32, name: *mut u8, value: *mut u8, unknown1: i32) -> i32; + pub fn sceHttpDeleteHeader(id: i32, name: *const u8) -> i32; + pub fn sceHttpsInit(unknown1: i32, unknown2: i32, unknown3: i32, unknown4: i32) -> i32; + pub fn sceHttpsEnd() -> i32; + pub fn sceHttpsLoadDefaultCert(unknown1: i32, unknown2: i32) -> i32; + pub fn sceHttpDisableAuth(id: i32) -> i32; + pub fn sceHttpDisableCache(id: i32) -> i32; + pub fn sceHttpEnableAuth(id: i32) -> i32; + pub fn sceHttpEnableCache(id: i32) -> i32; + pub fn sceHttpEndCache() -> i32; + pub fn sceHttpGetAllHeader(request: i32, header: *mut *mut u8, header_size: *mut u32) -> i32; + pub fn sceHttpGetNetworkErrno(request: i32, err_num: *mut i32) -> i32; + pub fn sceHttpGetProxy( + id: i32, + activate_flag: *mut i32, + mode: *mut i32, + proxy_host: *mut u8, + len: usize, + proxy_port: *mut u16, + ) -> i32; + pub fn sceHttpInitCache(max_size: usize) -> i32; + pub fn sceHttpSetAuthInfoCB(id: i32, cbfunc: HttpPasswordCB) -> i32; + pub fn sceHttpSetProxy( + id: i32, + activate_flag: i32, + mode: i32, + new_proxy_host: *const u8, + new_proxy_port: u16, + ) -> i32; + pub fn sceHttpSetResHeaderMaxSize(id: i32, header_size: u32) -> i32; + pub fn sceHttpSetMallocFunction( + malloc_func: HttpMallocFunction, + free_func: HttpFreeFunction, + realloc_func: HttpReallocFunction, + ) -> i32; + + pub fn sceNetResolverInit() -> i32; + pub fn sceNetResolverCreate(rid: *mut i32, buf: *mut c_void, buf_length: u32) -> i32; + pub fn sceNetResolverDelete(rid: i32) -> i32; + pub fn sceNetResolverStartNtoA( + rid: i32, + hostname: *const u8, + addr: *mut in_addr, + timeout: u32, + retry: i32, + ) -> i32; + pub fn sceNetResolverStartAtoN( + rid: i32, + addr: *const in_addr, + hostname: *mut u8, + hostname_len: u32, + timeout: u32, + retry: i32, + ) -> i32; + pub fn sceNetResolverStop(rid: i32) -> i32; + pub fn sceNetResolverTerm() -> i32; +} diff --git a/src/rust/vendor/libc-0.2.146/src/sgx.rs b/src/rust/vendor/libc-0.2.146/src/sgx.rs new file mode 100644 index 000000000..7da626939 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/sgx.rs @@ -0,0 +1,47 @@ +//! SGX C types definition + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_int = i32; +pub type c_uint = u32; +pub type c_float = f32; +pub type c_double = f64; +pub type c_longlong = i64; +pub type c_ulonglong = u64; +pub type intmax_t = i64; +pub type uintmax_t = u64; + +pub type size_t = usize; +pub type ptrdiff_t = isize; +pub type intptr_t = isize; +pub type uintptr_t = usize; +pub type ssize_t = isize; + +pub type c_char = i8; +pub type c_long = i64; +pub type c_ulong = u64; + +pub const INT_MIN: c_int = -2147483648; +pub const INT_MAX: c_int = 2147483647; + +cfg_if! { + if #[cfg(libc_core_cvoid)] { + pub use ::ffi::c_void; + } else { + // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help + // enable more optimization opportunities around it recognizing things + // like malloc/free. + #[repr(u8)] + #[allow(missing_copy_implementations)] + #[allow(missing_debug_implementations)] + pub enum c_void { + // Two dummy variants so the #[repr] attribute can be used. + #[doc(hidden)] + __variant1, + #[doc(hidden)] + __variant2, + } + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/solid/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/solid/aarch64.rs new file mode 100644 index 000000000..ceabea397 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/solid/aarch64.rs @@ -0,0 +1,4 @@ +pub type c_char = i8; +pub type wchar_t = u32; +pub type c_long = i64; +pub type c_ulong = u64; diff --git a/src/rust/vendor/libc-0.2.146/src/solid/arm.rs b/src/rust/vendor/libc-0.2.146/src/solid/arm.rs new file mode 100644 index 000000000..04cc1542d --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/solid/arm.rs @@ -0,0 +1,4 @@ +pub type c_char = i8; +pub type wchar_t = u32; +pub type c_long = i32; +pub type c_ulong = u32; diff --git a/src/rust/vendor/libc-0.2.146/src/solid/mod.rs b/src/rust/vendor/libc-0.2.146/src/solid/mod.rs new file mode 100644 index 000000000..f0f2ae89b --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/solid/mod.rs @@ -0,0 +1,904 @@ +//! Interface to the [SOLID] C library +//! +//! [SOLID]: https://solid.kmckk.com/ + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_int = i32; +pub type c_uint = u32; +pub type c_float = f32; +pub type c_double = f64; +pub type c_longlong = i64; +pub type c_ulonglong = u64; +pub type intmax_t = i64; +pub type uintmax_t = u64; + +pub type uintptr_t = usize; +pub type intptr_t = isize; +pub type ptrdiff_t = isize; +pub type size_t = ::uintptr_t; +pub type ssize_t = ::intptr_t; + +pub type clock_t = c_uint; +pub type time_t = i64; +pub type clockid_t = c_int; +pub type timer_t = c_int; +pub type suseconds_t = c_int; +pub type useconds_t = c_uint; + +pub type sighandler_t = size_t; + +// sys/ansi.h +pub type __caddr_t = *mut c_char; +pub type __gid_t = u32; +pub type __in_addr_t = u32; +pub type __in_port_t = u16; +pub type __mode_t = u32; +pub type __off_t = i64; +pub type __pid_t = i32; +pub type __sa_family_t = u8; +pub type __socklen_t = c_uint; +pub type __uid_t = u32; +pub type __fsblkcnt_t = u64; +pub type __fsfilcnt_t = u64; + +// locale.h +pub type locale_t = usize; + +// nl_types.h +pub type nl_item = c_long; + +// sys/types.h +pub type __va_list = *mut c_char; +pub type u_int8_t = u8; +pub type u_int16_t = u16; +pub type u_int32_t = u32; +pub type u_int64_t = u64; +pub type u_char = c_uchar; +pub type u_short = c_ushort; +pub type u_int = c_uint; +pub type u_long = c_ulong; +pub type unchar = c_uchar; +pub type ushort = c_ushort; +pub type uint = c_uint; +pub type ulong = c_ulong; +pub type u_quad_t = u64; +pub type quad_t = i64; +pub type qaddr_t = *mut quad_t; +pub type longlong_t = i64; +pub type u_longlong_t = u64; +pub type blkcnt_t = i64; +pub type blksize_t = i32; +pub type fsblkcnt_t = __fsblkcnt_t; +pub type fsfilcnt_t = __fsfilcnt_t; +pub type caddr_t = __caddr_t; +pub type daddr_t = i64; +pub type dev_t = u64; +pub type fixpt_t = u32; +pub type gid_t = __gid_t; +pub type idtype_t = c_int; +pub type id_t = u32; +pub type ino_t = u64; +pub type key_t = c_long; +pub type mode_t = __mode_t; +pub type nlink_t = u32; +pub type off_t = __off_t; +pub type pid_t = __pid_t; +pub type lwpid_t = i32; +pub type rlim_t = u64; +pub type segsz_t = i32; +pub type swblk_t = i32; +pub type mqd_t = c_int; +pub type cpuid_t = c_ulong; +pub type psetid_t = c_int; + +s! { + // stat.h + pub struct stat { + pub st_dev: dev_t, + pub st_ino: ino_t, + pub st_mode: c_short, + pub st_nlink: c_short, + pub st_uid: c_short, + pub st_gid: c_short, + pub st_rdev: dev_t, + pub st_size: off_t, + pub st_atime: time_t, + pub st_mtime: time_t, + pub st_ctime: time_t, + pub st_blksize: blksize_t, + } + + // time.h + pub struct tm { + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub tm_gmtoff: c_long, + pub tm_zone: *mut c_char, + } + + // stdlib.h + pub struct qdiv_t { + pub quot: quad_t, + pub rem: quad_t, + } + pub struct lldiv_t { + pub quot: c_longlong, + pub rem: c_longlong, + } + pub struct div_t { + pub quot: c_int, + pub rem: c_int, + } + pub struct ldiv_t { + pub quot: c_long, + pub rem: c_long, + } + + // locale.h + pub struct lconv { + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_n_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_n_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + pub int_n_sign_posn: c_char, + } + + pub struct iovec { + pub iov_base: *mut c_void, + pub iov_len: size_t, + } + + pub struct timeval { + pub tv_sec: c_long, + pub tv_usec: c_long, + } +} + +pub const INT_MIN: c_int = -2147483648; +pub const INT_MAX: c_int = 2147483647; + +pub const EXIT_FAILURE: c_int = 1; +pub const EXIT_SUCCESS: c_int = 0; +pub const RAND_MAX: c_int = 0x7fffffff; +pub const EOF: c_int = -1; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const _IOFBF: c_int = 0; +pub const _IONBF: c_int = 2; +pub const _IOLBF: c_int = 1; +pub const BUFSIZ: c_uint = 1024; +pub const FOPEN_MAX: c_uint = 20; +pub const FILENAME_MAX: c_uint = 1024; + +pub const O_RDONLY: c_int = 1; +pub const O_WRONLY: c_int = 2; +pub const O_RDWR: c_int = 4; +pub const O_APPEND: c_int = 8; +pub const O_CREAT: c_int = 0x10; +pub const O_EXCL: c_int = 0x400; +pub const O_TEXT: c_int = 0x100; +pub const O_BINARY: c_int = 0x200; +pub const O_TRUNC: c_int = 0x20; +pub const S_IEXEC: c_short = 0x0040; +pub const S_IWRITE: c_short = 0x0080; +pub const S_IREAD: c_short = 0x0100; +pub const S_IFCHR: c_short = 0x2000; +pub const S_IFDIR: c_short = 0x4000; +pub const S_IFMT: c_short = 0o160000; +pub const S_IFIFO: c_short = 0o0010000; +pub const S_IFBLK: c_short = 0o0060000; +pub const S_IFREG: c_short = 0o0100000; + +pub const LC_ALL: c_int = 0; +pub const LC_COLLATE: c_int = 1; +pub const LC_CTYPE: c_int = 2; +pub const LC_MONETARY: c_int = 3; +pub const LC_NUMERIC: c_int = 4; +pub const LC_TIME: c_int = 5; +pub const LC_MESSAGES: c_int = 6; +pub const _LC_LAST: c_int = 7; + +pub const EPERM: c_int = 1; +pub const ENOENT: c_int = 2; +pub const ESRCH: c_int = 3; +pub const EINTR: c_int = 4; +pub const EIO: c_int = 5; +pub const ENXIO: c_int = 6; +pub const E2BIG: c_int = 7; +pub const ENOEXEC: c_int = 8; +pub const EBADF: c_int = 9; +pub const ECHILD: c_int = 10; +pub const EAGAIN: c_int = 11; +pub const ENOMEM: c_int = 12; +pub const EACCES: c_int = 13; +pub const EFAULT: c_int = 14; +pub const ENOTBLK: c_int = 15; +pub const EBUSY: c_int = 16; +pub const EEXIST: c_int = 17; +pub const EXDEV: c_int = 18; +pub const ENODEV: c_int = 19; +pub const ENOTDIR: c_int = 20; +pub const EISDIR: c_int = 21; +pub const EINVAL: c_int = 22; +pub const ENFILE: c_int = 23; +pub const EMFILE: c_int = 24; +pub const ENOTTY: c_int = 25; +pub const ETXTBSY: c_int = 26; +pub const EFBIG: c_int = 27; +pub const ENOSPC: c_int = 28; +pub const ESPIPE: c_int = 29; +pub const EROFS: c_int = 30; +pub const EMLINK: c_int = 31; +pub const EPIPE: c_int = 32; +pub const EDOM: c_int = 33; +pub const ERANGE: c_int = 34; + +pub const EDEADLK: c_int = 35; +pub const ENAMETOOLONG: c_int = 36; +pub const ENOLCK: c_int = 37; +pub const ENOSYS: c_int = 38; +pub const ENOTEMPTY: c_int = 39; +pub const ELOOP: c_int = 40; +pub const EWOULDBLOCK: c_int = EAGAIN; +pub const ENOMSG: c_int = 42; +pub const EIDRM: c_int = 43; +pub const ECHRNG: c_int = 44; +pub const EL2NSYNC: c_int = 45; +pub const EL3HLT: c_int = 46; +pub const EL3RST: c_int = 47; +pub const ELNRNG: c_int = 48; +pub const EUNATCH: c_int = 49; +pub const ENOCSI: c_int = 50; +pub const EL2HLT: c_int = 51; +pub const EBADE: c_int = 52; +pub const EBADR: c_int = 53; +pub const EXFULL: c_int = 54; +pub const ENOANO: c_int = 55; +pub const EBADRQC: c_int = 56; +pub const EBADSLT: c_int = 57; + +pub const EDEADLOCK: c_int = EDEADLK; + +pub const EBFONT: c_int = 59; +pub const ENOSTR: c_int = 60; +pub const ENODATA: c_int = 61; +pub const ETIME: c_int = 62; +pub const ENOSR: c_int = 63; +pub const ENONET: c_int = 64; +pub const ENOPKG: c_int = 65; +pub const EREMOTE: c_int = 66; +pub const ENOLINK: c_int = 67; +pub const EADV: c_int = 68; +pub const ESRMNT: c_int = 69; +pub const ECOMM: c_int = 70; +pub const EPROTO: c_int = 71; +pub const EMULTIHOP: c_int = 72; +pub const EDOTDOT: c_int = 73; +pub const EBADMSG: c_int = 74; +pub const EOVERFLOW: c_int = 75; +pub const ENOTUNIQ: c_int = 76; +pub const EBADFD: c_int = 77; +pub const EREMCHG: c_int = 78; +pub const ELIBACC: c_int = 79; +pub const ELIBBAD: c_int = 80; +pub const ELIBSCN: c_int = 81; +pub const ELIBMAX: c_int = 82; +pub const ELIBEXEC: c_int = 83; +pub const EILSEQ: c_int = 84; +pub const ERESTART: c_int = 85; +pub const ESTRPIPE: c_int = 86; +pub const EUSERS: c_int = 87; +pub const ENOTSOCK: c_int = 88; +pub const EDESTADDRREQ: c_int = 89; +pub const EMSGSIZE: c_int = 90; +pub const EPROTOTYPE: c_int = 91; +pub const ENOPROTOOPT: c_int = 92; +pub const EPROTONOSUPPORT: c_int = 93; +pub const ESOCKTNOSUPPORT: c_int = 94; +pub const EOPNOTSUPP: c_int = 95; +pub const EPFNOSUPPORT: c_int = 96; +pub const EAFNOSUPPORT: c_int = 97; +pub const EADDRINUSE: c_int = 98; +pub const EADDRNOTAVAIL: c_int = 99; +pub const ENETDOWN: c_int = 100; +pub const ENETUNREACH: c_int = 101; +pub const ENETRESET: c_int = 102; +pub const ECONNABORTED: c_int = 103; +pub const ECONNRESET: c_int = 104; +pub const ENOBUFS: c_int = 105; +pub const EISCONN: c_int = 106; +pub const ENOTCONN: c_int = 107; +pub const ESHUTDOWN: c_int = 108; +pub const ETOOMANYREFS: c_int = 109; +pub const ETIMEDOUT: c_int = 110; +pub const ECONNREFUSED: c_int = 111; +pub const EHOSTDOWN: c_int = 112; +pub const EHOSTUNREACH: c_int = 113; +pub const EALREADY: c_int = 114; +pub const EINPROGRESS: c_int = 115; +pub const ESTALE: c_int = 116; +pub const EUCLEAN: c_int = 117; +pub const ENOTNAM: c_int = 118; +pub const ENAVAIL: c_int = 119; +pub const EISNAM: c_int = 120; +pub const EREMOTEIO: c_int = 121; +pub const EDQUOT: c_int = 122; + +pub const ENOMEDIUM: c_int = 123; +pub const EMEDIUMTYPE: c_int = 124; +pub const ECANCELED: c_int = 125; +pub const ENOKEY: c_int = 126; +pub const EKEYEXPIRED: c_int = 127; +pub const EKEYREVOKED: c_int = 128; +pub const EKEYREJECTED: c_int = 129; + +pub const EOWNERDEAD: c_int = 130; +pub const ENOTRECOVERABLE: c_int = 131; + +pub const ENOTSUP: c_int = 132; +pub const EFTYPE: c_int = 133; + +// signal codes +pub const SIGHUP: c_int = 1; +pub const SIGINT: c_int = 2; +pub const SIGQUIT: c_int = 3; +pub const SIGILL: c_int = 4; +pub const SIGTRAP: c_int = 5; +pub const SIGABRT: c_int = 6; +pub const SIGIOT: c_int = SIGABRT; +pub const SIGEMT: c_int = 7; +pub const SIGFPE: c_int = 8; +pub const SIGKILL: c_int = 9; +pub const SIGBUS: c_int = 10; +pub const SIGSEGV: c_int = 11; +pub const SIGSYS: c_int = 12; +pub const SIGPIPE: c_int = 13; +pub const SIGALRM: c_int = 14; +pub const SIGTERM: c_int = 15; +pub const SIGURG: c_int = 16; +pub const SIGSTOP: c_int = 17; +pub const SIGTSTP: c_int = 18; +pub const SIGCONT: c_int = 19; +pub const SIGCHLD: c_int = 20; +pub const SIGTTIN: c_int = 21; +pub const SIGTTOU: c_int = 22; +pub const SIGIO: c_int = 23; +pub const SIGXCPU: c_int = 24; +pub const SIGXFSZ: c_int = 25; +pub const SIGVTALRM: c_int = 26; +pub const SIGPROF: c_int = 27; +pub const SIGWINCH: c_int = 28; +pub const SIGINFO: c_int = 29; +pub const SIGUSR1: c_int = 30; +pub const SIGUSR2: c_int = 31; +pub const SIGPWR: c_int = 32; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum FILE {} +impl ::Copy for FILE {} +impl ::Clone for FILE { + fn clone(&self) -> FILE { + *self + } +} +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum fpos_t {} +impl ::Copy for fpos_t {} +impl ::Clone for fpos_t { + fn clone(&self) -> fpos_t { + *self + } +} + +extern "C" { + // ctype.h + pub fn isalnum(c: c_int) -> c_int; + pub fn isalpha(c: c_int) -> c_int; + pub fn iscntrl(c: c_int) -> c_int; + pub fn isdigit(c: c_int) -> c_int; + pub fn isgraph(c: c_int) -> c_int; + pub fn islower(c: c_int) -> c_int; + pub fn isprint(c: c_int) -> c_int; + pub fn ispunct(c: c_int) -> c_int; + pub fn isspace(c: c_int) -> c_int; + pub fn isupper(c: c_int) -> c_int; + pub fn isxdigit(c: c_int) -> c_int; + pub fn isblank(c: c_int) -> c_int; + pub fn tolower(c: c_int) -> c_int; + pub fn toupper(c: c_int) -> c_int; + + // stdio.h + pub fn __get_stdio_file(fileno: c_int) -> *mut FILE; + pub fn clearerr(arg1: *mut FILE); + pub fn fclose(arg1: *mut FILE) -> c_int; + pub fn feof(arg1: *mut FILE) -> c_int; + pub fn ferror(arg1: *mut FILE) -> c_int; + pub fn fflush(arg1: *mut FILE) -> c_int; + pub fn fgetc(arg1: *mut FILE) -> c_int; + pub fn fgets(arg1: *mut c_char, arg2: c_int, arg3: *mut FILE) -> *mut c_char; + pub fn fopen(arg1: *const c_char, arg2: *const c_char) -> *mut FILE; + pub fn fprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int; + pub fn fputc(arg1: c_int, arg2: *mut FILE) -> c_int; + pub fn fputs(arg1: *const c_char, arg2: *mut FILE) -> c_int; + pub fn fread(arg1: *mut c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t; + pub fn freopen(arg1: *const c_char, arg2: *const c_char, arg3: *mut FILE) -> *mut FILE; + pub fn fscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int; + pub fn fseek(arg1: *mut FILE, arg2: c_long, arg3: c_int) -> c_int; + pub fn ftell(arg1: *mut FILE) -> c_long; + pub fn fwrite(arg1: *const c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t; + pub fn getc(arg1: *mut FILE) -> c_int; + pub fn getchar() -> c_int; + pub fn perror(arg1: *const c_char); + pub fn printf(arg1: *const c_char, ...) -> c_int; + pub fn putc(arg1: c_int, arg2: *mut FILE) -> c_int; + pub fn putchar(arg1: c_int) -> c_int; + pub fn puts(arg1: *const c_char) -> c_int; + pub fn remove(arg1: *const c_char) -> c_int; + pub fn rewind(arg1: *mut FILE); + pub fn scanf(arg1: *const c_char, ...) -> c_int; + pub fn setbuf(arg1: *mut FILE, arg2: *mut c_char); + pub fn setvbuf(arg1: *mut FILE, arg2: *mut c_char, arg3: c_int, arg4: size_t) -> c_int; + pub fn sscanf(arg1: *const c_char, arg2: *const c_char, ...) -> c_int; + pub fn tmpfile() -> *mut FILE; + pub fn ungetc(arg1: c_int, arg2: *mut FILE) -> c_int; + pub fn vfprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int; + pub fn vprintf(arg1: *const c_char, arg2: __va_list) -> c_int; + pub fn gets(arg1: *mut c_char) -> *mut c_char; + pub fn sprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int; + pub fn tmpnam(arg1: *const c_char) -> *mut c_char; + pub fn vsprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int; + pub fn rename(arg1: *const c_char, arg2: *const c_char) -> c_int; + pub fn asiprintf(arg1: *mut *mut c_char, arg2: *const c_char, ...) -> c_int; + pub fn fiprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int; + pub fn fiscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int; + pub fn iprintf(arg1: *const c_char, ...) -> c_int; + pub fn iscanf(arg1: *const c_char, ...) -> c_int; + pub fn siprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int; + pub fn siscanf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int; + pub fn sniprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int; + pub fn vasiprintf(arg1: *mut *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int; + pub fn vfiprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int; + pub fn vfiscanf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int; + pub fn viprintf(arg1: *const c_char, arg2: __va_list) -> c_int; + pub fn viscanf(arg1: *const c_char, arg2: __va_list) -> c_int; + pub fn vsiprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int; + pub fn vsiscanf(arg1: *const c_char, arg2: *const c_char, arg3: __va_list) -> c_int; + pub fn vsniprintf( + arg1: *mut c_char, + arg2: size_t, + arg3: *const c_char, + arg4: __va_list, + ) -> c_int; + pub fn vdiprintf(arg1: c_int, arg2: *const c_char, arg3: __va_list) -> c_int; + pub fn diprintf(arg1: c_int, arg2: *const c_char, ...) -> c_int; + pub fn fgetpos(arg1: *mut FILE, arg2: *mut fpos_t) -> c_int; + pub fn fsetpos(arg1: *mut FILE, arg2: *const fpos_t) -> c_int; + pub fn fdopen(arg1: c_int, arg2: *const c_char) -> *mut FILE; + pub fn fileno(arg1: *mut FILE) -> c_int; + pub fn flockfile(arg1: *mut FILE); + pub fn ftrylockfile(arg1: *mut FILE) -> c_int; + pub fn funlockfile(arg1: *mut FILE); + pub fn getc_unlocked(arg1: *mut FILE) -> c_int; + pub fn getchar_unlocked() -> c_int; + pub fn putc_unlocked(arg1: c_int, arg2: *mut FILE) -> c_int; + pub fn putchar_unlocked(arg1: c_int) -> c_int; + pub fn snprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int; + pub fn vsnprintf( + arg1: *mut c_char, + arg2: size_t, + arg3: *const c_char, + arg4: __va_list, + ) -> c_int; + pub fn getw(arg1: *mut FILE) -> c_int; + pub fn putw(arg1: c_int, arg2: *mut FILE) -> c_int; + pub fn tempnam(arg1: *const c_char, arg2: *const c_char) -> *mut c_char; + pub fn fseeko(stream: *mut FILE, offset: off_t, whence: c_int) -> c_int; + pub fn ftello(stream: *mut FILE) -> off_t; + + // stdlib.h + pub fn atof(arg1: *const c_char) -> f64; + pub fn strtod(arg1: *const c_char, arg2: *mut *mut c_char) -> f64; + pub fn drand48() -> f64; + pub fn erand48(arg1: *mut c_ushort) -> f64; + pub fn strtof(arg1: *const c_char, arg2: *mut *mut c_char) -> f32; + pub fn strtold(arg1: *const c_char, arg2: *mut *mut c_char) -> f64; + pub fn strtod_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64; + pub fn strtof_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f32; + pub fn strtold_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64; + pub fn _Exit(arg1: c_int) -> !; + pub fn abort() -> !; + pub fn abs(arg1: c_int) -> c_int; + pub fn atexit(arg1: ::Option) -> c_int; + pub fn atoi(arg1: *const c_char) -> c_int; + pub fn atol(arg1: *const c_char) -> c_long; + pub fn itoa(arg1: c_int, arg2: *mut c_char, arg3: c_int) -> *mut c_char; + pub fn ltoa(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> *mut c_char; + pub fn ultoa(arg1: c_ulong, arg2: *mut c_char, arg3: c_int) -> *mut c_char; + pub fn bsearch( + arg1: *const c_void, + arg2: *const c_void, + arg3: size_t, + arg4: size_t, + arg5: ::Option c_int>, + ) -> *mut c_void; + pub fn calloc(arg1: size_t, arg2: size_t) -> *mut c_void; + pub fn div(arg1: c_int, arg2: c_int) -> div_t; + pub fn exit(arg1: c_int) -> !; + pub fn free(arg1: *mut c_void); + pub fn getenv(arg1: *const c_char) -> *mut c_char; + pub fn labs(arg1: c_long) -> c_long; + pub fn ldiv(arg1: c_long, arg2: c_long) -> ldiv_t; + pub fn malloc(arg1: size_t) -> *mut c_void; + pub fn qsort( + arg1: *mut c_void, + arg2: size_t, + arg3: size_t, + arg4: ::Option c_int>, + ); + pub fn rand() -> c_int; + pub fn realloc(arg1: *mut c_void, arg2: size_t) -> *mut c_void; + pub fn srand(arg1: c_uint); + pub fn strtol(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_long; + pub fn strtoul(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulong; + pub fn mblen(arg1: *const c_char, arg2: size_t) -> c_int; + pub fn mbstowcs(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> size_t; + pub fn wctomb(arg1: *mut c_char, arg2: wchar_t) -> c_int; + pub fn mbtowc(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> c_int; + pub fn wcstombs(arg1: *mut c_char, arg2: *const wchar_t, arg3: size_t) -> size_t; + pub fn rand_r(arg1: *mut c_uint) -> c_int; + pub fn jrand48(arg1: *mut c_ushort) -> c_long; + pub fn lcong48(arg1: *mut c_ushort); + pub fn lrand48() -> c_long; + pub fn mrand48() -> c_long; + pub fn nrand48(arg1: *mut c_ushort) -> c_long; + pub fn seed48(arg1: *mut c_ushort) -> *mut c_ushort; + pub fn srand48(arg1: c_long); + pub fn putenv(arg1: *mut c_char) -> c_int; + pub fn a64l(arg1: *const c_char) -> c_long; + pub fn l64a(arg1: c_long) -> *mut c_char; + pub fn random() -> c_long; + pub fn setstate(arg1: *mut c_char) -> *mut c_char; + pub fn initstate(arg1: c_uint, arg2: *mut c_char, arg3: size_t) -> *mut c_char; + pub fn srandom(arg1: c_uint); + pub fn mkostemp(arg1: *mut c_char, arg2: c_int) -> c_int; + pub fn mkostemps(arg1: *mut c_char, arg2: c_int, arg3: c_int) -> c_int; + pub fn mkdtemp(arg1: *mut c_char) -> *mut c_char; + pub fn mkstemp(arg1: *mut c_char) -> c_int; + pub fn mktemp(arg1: *mut c_char) -> *mut c_char; + pub fn atoll(arg1: *const c_char) -> c_longlong; + pub fn llabs(arg1: c_longlong) -> c_longlong; + pub fn lldiv(arg1: c_longlong, arg2: c_longlong) -> lldiv_t; + pub fn strtoll(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_longlong; + pub fn strtoull(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulonglong; + pub fn aligned_alloc(arg1: size_t, arg2: size_t) -> *mut c_void; + pub fn at_quick_exit(arg1: ::Option) -> c_int; + pub fn quick_exit(arg1: c_int); + pub fn setenv(arg1: *const c_char, arg2: *const c_char, arg3: c_int) -> c_int; + pub fn unsetenv(arg1: *const c_char) -> c_int; + pub fn humanize_number( + arg1: *mut c_char, + arg2: size_t, + arg3: i64, + arg4: *const c_char, + arg5: c_int, + arg6: c_int, + ) -> c_int; + pub fn dehumanize_number(arg1: *const c_char, arg2: *mut i64) -> c_int; + pub fn getenv_r(arg1: *const c_char, arg2: *mut c_char, arg3: size_t) -> c_int; + pub fn heapsort( + arg1: *mut c_void, + arg2: size_t, + arg3: size_t, + arg4: ::Option c_int>, + ) -> c_int; + pub fn mergesort( + arg1: *mut c_void, + arg2: size_t, + arg3: size_t, + arg4: ::Option c_int>, + ) -> c_int; + pub fn radixsort( + arg1: *mut *const c_uchar, + arg2: c_int, + arg3: *const c_uchar, + arg4: c_uint, + ) -> c_int; + pub fn sradixsort( + arg1: *mut *const c_uchar, + arg2: c_int, + arg3: *const c_uchar, + arg4: c_uint, + ) -> c_int; + pub fn getprogname() -> *const c_char; + pub fn setprogname(arg1: *const c_char); + pub fn qabs(arg1: quad_t) -> quad_t; + pub fn strtoq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> quad_t; + pub fn strtouq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> u_quad_t; + pub fn strsuftoll( + arg1: *const c_char, + arg2: *const c_char, + arg3: c_longlong, + arg4: c_longlong, + ) -> c_longlong; + pub fn strsuftollx( + arg1: *const c_char, + arg2: *const c_char, + arg3: c_longlong, + arg4: c_longlong, + arg5: *mut c_char, + arg6: size_t, + ) -> c_longlong; + pub fn l64a_r(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> c_int; + pub fn qdiv(arg1: quad_t, arg2: quad_t) -> qdiv_t; + pub fn strtol_l( + arg1: *const c_char, + arg2: *mut *mut c_char, + arg3: c_int, + arg4: locale_t, + ) -> c_long; + pub fn strtoul_l( + arg1: *const c_char, + arg2: *mut *mut c_char, + arg3: c_int, + arg4: locale_t, + ) -> c_ulong; + pub fn strtoll_l( + arg1: *const c_char, + arg2: *mut *mut c_char, + arg3: c_int, + arg4: locale_t, + ) -> c_longlong; + pub fn strtoull_l( + arg1: *const c_char, + arg2: *mut *mut c_char, + arg3: c_int, + arg4: locale_t, + ) -> c_ulonglong; + pub fn strtoq_l( + arg1: *const c_char, + arg2: *mut *mut c_char, + arg3: c_int, + arg4: locale_t, + ) -> quad_t; + pub fn strtouq_l( + arg1: *const c_char, + arg2: *mut *mut c_char, + arg3: c_int, + arg4: locale_t, + ) -> u_quad_t; + pub fn _mb_cur_max_l(arg1: locale_t) -> size_t; + pub fn mblen_l(arg1: *const c_char, arg2: size_t, arg3: locale_t) -> c_int; + pub fn mbstowcs_l( + arg1: *mut wchar_t, + arg2: *const c_char, + arg3: size_t, + arg4: locale_t, + ) -> size_t; + pub fn wctomb_l(arg1: *mut c_char, arg2: wchar_t, arg3: locale_t) -> c_int; + pub fn mbtowc_l(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t, arg4: locale_t) + -> c_int; + pub fn wcstombs_l( + arg1: *mut c_char, + arg2: *const wchar_t, + arg3: size_t, + arg4: locale_t, + ) -> size_t; + + // string.h + pub fn memchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void; + pub fn memcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int; + pub fn memcpy(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void; + pub fn memmove(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void; + pub fn memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void; + pub fn strcat(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char; + pub fn strchr(arg1: *const c_char, arg2: c_int) -> *mut c_char; + pub fn strcmp(arg1: *const c_char, arg2: *const c_char) -> c_int; + pub fn strcoll(arg1: *const c_char, arg2: *const c_char) -> c_int; + pub fn strcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char; + pub fn strcspn(arg1: *const c_char, arg2: *const c_char) -> size_t; + pub fn strerror(arg1: c_int) -> *mut c_char; + pub fn strlen(arg1: *const c_char) -> size_t; + pub fn strncat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char; + pub fn strncmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int; + pub fn strncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char; + pub fn strpbrk(arg1: *const c_char, arg2: *const c_char) -> *mut c_char; + pub fn strrchr(arg1: *const c_char, arg2: c_int) -> *mut c_char; + pub fn strspn(arg1: *const c_char, arg2: *const c_char) -> size_t; + pub fn strstr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char; + pub fn strtok(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char; + pub fn strtok_r(arg1: *mut c_char, arg2: *const c_char, arg3: *mut *mut c_char) -> *mut c_char; + pub fn strerror_r(arg1: c_int, arg2: *mut c_char, arg3: size_t) -> c_int; + pub fn strxfrm(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t; + pub fn memccpy( + arg1: *mut c_void, + arg2: *const c_void, + arg3: c_int, + arg4: size_t, + ) -> *mut c_void; + pub fn strdup(arg1: *const c_char) -> *mut c_char; + pub fn stpcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char; + pub fn stpncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char; + pub fn strnlen(arg1: *const c_char, arg2: size_t) -> size_t; + pub fn memmem( + arg1: *const c_void, + arg2: size_t, + arg3: *const c_void, + arg4: size_t, + ) -> *mut c_void; + pub fn strcasestr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char; + pub fn strlcat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t; + pub fn strlcpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t; + pub fn strsep(arg1: *mut *mut c_char, arg2: *const c_char) -> *mut c_char; + pub fn stresep(arg1: *mut *mut c_char, arg2: *const c_char, arg3: c_int) -> *mut c_char; + pub fn strndup(arg1: *const c_char, arg2: size_t) -> *mut c_char; + pub fn memrchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void; + pub fn explicit_memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void; + pub fn consttime_memequal(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int; + pub fn strcoll_l(arg1: *const c_char, arg2: *const c_char, arg3: locale_t) -> c_int; + pub fn strxfrm_l( + arg1: *mut c_char, + arg2: *const c_char, + arg3: size_t, + arg4: locale_t, + ) -> size_t; + pub fn strerror_l(arg1: c_int, arg2: locale_t) -> *mut c_char; + + // strings.h + pub fn bcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int; + pub fn bcopy(arg1: *const c_void, arg2: *mut c_void, arg3: size_t); + pub fn bzero(arg1: *mut c_void, arg2: size_t); + pub fn ffs(arg1: c_int) -> c_int; + pub fn popcount(arg1: c_uint) -> c_uint; + pub fn popcountl(arg1: c_ulong) -> c_uint; + pub fn popcountll(arg1: c_ulonglong) -> c_uint; + pub fn popcount32(arg1: u32) -> c_uint; + pub fn popcount64(arg1: u64) -> c_uint; + pub fn rindex(arg1: *const c_char, arg2: c_int) -> *mut c_char; + pub fn strcasecmp(arg1: *const c_char, arg2: *const c_char) -> c_int; + pub fn strncasecmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int; + + // signal.h + pub fn signal(arg1: c_int, arg2: sighandler_t) -> sighandler_t; + pub fn raise(arg1: c_int) -> c_int; + + // time.h + pub fn asctime(arg1: *const tm) -> *mut c_char; + pub fn clock() -> clock_t; + pub fn ctime(arg1: *const time_t) -> *mut c_char; + pub fn difftime(arg1: time_t, arg2: time_t) -> f64; + pub fn gmtime(arg1: *const time_t) -> *mut tm; + pub fn localtime(arg1: *const time_t) -> *mut tm; + pub fn time(arg1: *mut time_t) -> time_t; + pub fn mktime(arg1: *mut tm) -> time_t; + pub fn strftime( + arg1: *mut c_char, + arg2: size_t, + arg3: *const c_char, + arg4: *const tm, + ) -> size_t; + pub fn utime(arg1: *const c_char, arg2: *mut time_t) -> c_int; + pub fn asctime_r(arg1: *const tm, arg2: *mut c_char) -> *mut c_char; + pub fn ctime_r(arg1: *const time_t, arg2: *mut c_char) -> *mut c_char; + pub fn gmtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm; + pub fn localtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm; + + // sys/stat.h + pub fn stat(arg1: *const c_char, arg2: *mut stat) -> c_int; + pub fn lstat(arg1: *const c_char, arg2: *mut stat) -> c_int; + pub fn fstat(arg1: c_int, arg2: *mut stat) -> c_int; + pub fn chmod(arg1: *const c_char, arg2: __mode_t) -> c_int; + pub fn mkdir(arg1: *const c_char, arg2: __mode_t) -> c_int; + + // fcntl.h + pub fn open(arg1: *const c_char, arg2: c_int, ...) -> c_int; + pub fn creat(arg1: *const c_char, arg2: c_int) -> c_int; + pub fn close(arg1: c_int) -> c_int; + pub fn read(arg1: c_int, arg2: *mut c_void, arg3: c_int) -> c_int; + pub fn write(arg1: c_int, arg2: *const c_void, arg3: c_int) -> c_int; + pub fn unlink(arg1: *const c_char) -> c_int; + pub fn tell(arg1: c_int) -> c_long; + pub fn dup(arg1: c_int) -> c_int; + pub fn dup2(arg1: c_int, arg2: c_int) -> c_int; + pub fn access(arg1: *const c_char, arg2: c_int) -> c_int; + pub fn rmdir(arg1: *const c_char) -> c_int; + pub fn chdir(arg1: *const c_char) -> c_int; + pub fn _exit(arg1: c_int); + pub fn getwd(arg1: *mut c_char) -> *mut c_char; + pub fn getcwd(arg1: *mut c_char, arg2: size_t) -> *mut c_char; + pub static mut optarg: *mut c_char; + pub static mut opterr: c_int; + pub static mut optind: c_int; + pub static mut optopt: c_int; + pub static mut optreset: c_int; + pub fn getopt(arg1: c_int, arg2: *mut *mut c_char, arg3: *const c_char) -> c_int; + pub static mut suboptarg: *mut c_char; + pub fn getsubopt( + arg1: *mut *mut c_char, + arg2: *const *mut c_char, + arg3: *mut *mut c_char, + ) -> c_int; + pub fn fcntl(arg1: c_int, arg2: c_int, ...) -> c_int; + pub fn getpid() -> pid_t; + pub fn sleep(arg1: c_uint) -> c_uint; + pub fn usleep(arg1: useconds_t) -> c_int; + + // locale.h + pub fn localeconv() -> *mut lconv; + pub fn setlocale(arg1: c_int, arg2: *const c_char) -> *mut c_char; + pub fn duplocale(arg1: locale_t) -> locale_t; + pub fn freelocale(arg1: locale_t); + pub fn localeconv_l(arg1: locale_t) -> *mut lconv; + pub fn newlocale(arg1: c_int, arg2: *const c_char, arg3: locale_t) -> locale_t; + + // langinfo.h + pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + pub fn nl_langinfo_l(item: ::nl_item, locale: locale_t) -> *mut ::c_char; + + // malloc.h + pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + + // sys/types.h + pub fn lseek(arg1: c_int, arg2: __off_t, arg3: c_int) -> __off_t; +} + +cfg_if! { + if #[cfg(libc_core_cvoid)] { + pub use ::ffi::c_void; + } else { + // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help + // enable more optimization opportunities around it recognizing things + // like malloc/free. + #[repr(u8)] + #[allow(missing_copy_implementations)] + #[allow(missing_debug_implementations)] + pub enum c_void { + // Two dummy variants so the #[repr] attribute can be used. + #[doc(hidden)] + __variant1, + #[doc(hidden)] + __variant2, + } + } +} + +cfg_if! { + if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } else if #[cfg(any(target_arch = "arm"))] { + mod arm; + pub use self::arm::*; + } else { + // Unknown target_arch + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/switch.rs b/src/rust/vendor/libc-0.2.146/src/switch.rs new file mode 100644 index 000000000..030ab20d7 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/switch.rs @@ -0,0 +1,49 @@ +//! Switch C type definitions + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_int = i32; +pub type c_uint = u32; +pub type c_float = f32; +pub type c_double = f64; +pub type c_longlong = i64; +pub type c_ulonglong = u64; +pub type intmax_t = i64; +pub type uintmax_t = u64; + +pub type size_t = usize; +pub type ptrdiff_t = isize; +pub type intptr_t = isize; +pub type uintptr_t = usize; +pub type ssize_t = isize; + +pub type off_t = i64; +pub type c_char = u8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type wchar_t = u32; + +pub const INT_MIN: c_int = -2147483648; +pub const INT_MAX: c_int = 2147483647; + +cfg_if! { + if #[cfg(libc_core_cvoid)] { + pub use ::ffi::c_void; + } else { + // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help + // enable more optimization opportunities around it recognizing things + // like malloc/free. + #[repr(u8)] + #[allow(missing_copy_implementations)] + #[allow(missing_debug_implementations)] + pub enum c_void { + // Two dummy variants so the #[repr] attribute can be used. + #[doc(hidden)] + __variant1, + #[doc(hidden)] + __variant2, + } + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/aix/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/aix/mod.rs new file mode 100644 index 000000000..325d7d654 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/aix/mod.rs @@ -0,0 +1,3355 @@ +pub type c_char = i8; +pub type caddr_t = *mut ::c_char; +// FIXME: clockid_t must be c_long, but time.rs accepts only i32 +pub type clockid_t = ::c_int; +pub type blkcnt_t = ::c_long; +pub type clock_t = ::c_int; +pub type daddr_t = ::c_long; +pub type dev_t = ::c_ulong; +pub type fpos64_t = ::c_longlong; +pub type fsblkcnt_t = ::c_ulong; +pub type fsfilcnt_t = ::c_ulong; +pub type idtype_t = ::c_int; +pub type ino_t = ::c_ulong; +pub type key_t = ::c_int; +pub type mode_t = ::c_uint; +pub type nlink_t = ::c_short; +pub type rlim_t = ::c_ulong; +pub type speed_t = ::c_uint; +pub type tcflag_t = ::c_uint; +pub type time_t = ::c_long; +pub type time64_t = ::int64_t; +pub type timer_t = ::c_long; +pub type wchar_t = ::c_uint; +pub type nfds_t = ::c_int; +pub type projid_t = ::c_int; +pub type id_t = ::c_uint; +pub type blksize64_t = ::c_ulonglong; +pub type blkcnt64_t = ::c_ulonglong; +pub type sctp_assoc_t = ::uint32_t; + +pub type suseconds_t = ::c_int; +pub type useconds_t = ::c_uint; +pub type off_t = ::c_long; +pub type off64_t = ::c_longlong; + +pub type socklen_t = ::c_uint; +pub type sa_family_t = ::c_uchar; +pub type in_port_t = ::c_ushort; +pub type in_addr_t = ::c_uint; + +pub type signal_t = ::c_int; +pub type pthread_t = ::c_uint; +pub type pthread_key_t = ::c_uint; +pub type thread_t = pthread_t; +pub type blksize_t = ::c_long; +pub type nl_item = ::c_int; +pub type mqd_t = ::c_int; +pub type shmatt_t = ::c_ulong; +pub type regoff_t = ::c_long; +pub type rlim64_t = ::c_ulonglong; + +pub type sem_t = ::c_int; +pub type pollset_t = ::c_int; + +pub type pthread_rwlockattr_t = *mut ::c_void; +pub type pthread_condattr_t = *mut ::c_void; +pub type pthread_mutexattr_t = *mut ::c_void; +pub type pthread_attr_t = *mut ::c_void; +pub type pthread_barrierattr_t = *mut ::c_void; +pub type posix_spawn_file_actions_t = *mut ::c_char; +pub type iconv_t = *mut ::c_void; + +e! { + pub enum uio_rw { + UIO_READ = 0, + UIO_WRITE, + UIO_READ_NO_MOVE, + UIO_WRITE_NO_MOVE, + UIO_PWRITE, + } +} + +s! { + pub struct fsid_t { + pub val: [::c_uint; 2], + } + + pub struct fsid64_t { + pub val: [::uint64_t; 2], + } + + pub struct timezone { + pub tz_minuteswest: ::c_int, + pub tz_dsttime: ::c_int, + } + + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct dirent { + pub d_offset: ::c_ulong, + pub d_ino: ::ino_t, + pub d_reclen: ::c_ushort, + pub d_namlen: ::c_ushort, + pub d_name: [::c_char; 256] + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_cc: [::cc_t; ::NCCS] + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_sysid: ::c_uint, + pub l_pid: ::pid_t, + pub l_vfs: ::c_int, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut ::c_void, + pub msg_controllen: socklen_t, + pub msg_flags: ::c_int, + } + + pub struct statvfs64 { + pub f_bsize: ::blksize64_t, + pub f_frsize: ::blksize64_t, + pub f_blocks: ::blkcnt64_t, + pub f_bfree: ::blkcnt64_t, + pub f_bavail: ::blkcnt64_t, + pub f_files: ::blkcnt64_t, + pub f_ffree: ::blkcnt64_t, + pub f_favail: ::blkcnt64_t, + pub f_fsid: fsid64_t, + pub f_basetype: [::c_char; 16], + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub f_fstr: [::c_char; 32], + pub f_filler: [::c_ulong; 16] + } + + pub struct lconv { + pub decimal_point: *mut ::c_char, + pub thousands_sep: *mut ::c_char, + pub grouping: *mut ::c_char, + pub int_curr_symbol: *mut ::c_char, + pub currency_symbol: *mut ::c_char, + pub mon_decimal_point: *mut ::c_char, + pub mon_thousands_sep: *mut ::c_char, + pub mon_grouping: *mut ::c_char, + pub positive_sign: *mut ::c_char, + pub negative_sign: *mut ::c_char, + pub int_frac_digits: ::c_char, + pub frac_digits: ::c_char, + pub p_cs_precedes: ::c_char, + pub p_sep_by_space: ::c_char, + pub n_cs_precedes: ::c_char, + pub n_sep_by_space: ::c_char, + pub p_sign_posn: ::c_char, + pub n_sign_posn: ::c_char, + pub left_parenthesis: *mut ::c_char, + pub right_parenthesis: *mut ::c_char, + pub int_p_cs_precedes: ::c_char, + pub int_p_sep_by_space: ::c_char, + pub int_n_cs_precedes: ::c_char, + pub int_n_sep_by_space: ::c_char, + pub int_p_sign_posn: ::c_char, + pub int_n_sign_posn: ::c_char, + } + + pub struct tm { + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int + } + + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: ::c_ulong, + pub ai_canonname: *mut ::c_char, + pub ai_addr: *mut ::sockaddr, + pub ai_next: *mut addrinfo, + pub ai_eflags: ::c_int, + } + + pub struct in_addr { + pub s_addr: in_addr_t + } + + pub struct ip_mreq_source { + pub imr_multiaddr: in_addr, + pub imr_sourceaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct sockaddr { + pub sa_len: ::c_uchar, + pub sa_family: sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_dl { + pub sdl_len: ::c_uchar, + pub sdl_family: ::c_uchar, + pub sdl_index: ::c_ushort, + pub sdl_type: ::c_uchar, + pub sdl_nlen: ::c_uchar, + pub sdl_alen: ::c_uchar, + pub sdl_slen: ::c_uchar, + pub sdl_data: [::c_char; 120], + } + + pub struct sockaddr_in { + pub sin_len: ::c_uchar, + pub sin_family: sa_family_t, + pub sin_port: in_port_t, + pub sin_addr: in_addr, + pub sin_zero: [::c_char; 8] + } + + pub struct sockaddr_in6 { + pub sin6_len: ::c_uchar, + pub sin6_family: ::c_uchar, + pub sin6_port: ::uint16_t, + pub sin6_flowinfo: ::uint32_t, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: ::uint32_t + } + + pub struct sockaddr_storage { + pub __ss_len: ::c_uchar, + pub ss_family: sa_family_t, + __ss_pad1: [::c_char; 6], + __ss_align: ::int64_t, + __ss_pad2: [::c_char; 1265], + } + + pub struct sockaddr_un { + pub sun_len: ::c_uchar, + pub sun_family: sa_family_t, + pub sun_path: [::c_char; 1023] + } + + pub struct st_timespec { + pub tv_sec: ::time_t, + pub tv_nsec: ::c_int, + } + + pub struct statfs64 { + pub f_version: ::c_int, + pub f_type: ::c_int, + pub f_bsize: blksize64_t, + pub f_blocks: blkcnt64_t, + pub f_bfree: blkcnt64_t, + pub f_bavail: blkcnt64_t, + pub f_files: ::uint64_t, + pub f_ffree: ::uint64_t, + pub f_fsid: fsid64_t, + pub f_vfstype: ::c_int, + pub f_fsize: blksize64_t, + pub f_vfsnumber: ::c_int, + pub f_vfsoff: ::c_int, + pub f_vfslen: ::c_int, + pub f_vfsvers: ::c_int, + pub f_fname: [::c_char; 32], + pub f_fpack: [::c_char; 32], + pub f_name_max: ::c_int, + } + + pub struct passwd { + pub pw_name: *mut ::c_char, + pub pw_passwd: *mut ::c_char, + pub pw_uid: ::uid_t, + pub pw_gid: ::gid_t, + pub pw_gecos: *mut ::c_char, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char + } + + pub struct utsname { + pub sysname: [::c_char; 32], + pub nodename: [::c_char; 32], + pub release: [::c_char; 32], + pub version: [::c_char; 32], + pub machine: [::c_char; 32], + } + + pub struct xutsname { + pub nid: ::c_uint, + pub reserved: ::c_int, + pub longnid: ::c_ulonglong, + } + + pub struct cmsghdr { + pub cmsg_len: ::socklen_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct sigevent { + pub sigev_value: ::sigval, + pub sigev_signo: ::c_int, + pub sigev_notify: ::c_int, + pub sigev_notify_function: extern fn(val: ::sigval), + pub sigev_notify_attributes: *mut pthread_attr_t, + } + + // Should be union with another 'sival_int' + pub struct sigval64 { + pub sival_ptr: ::c_ulonglong, + } + + pub struct sigevent64 { + pub sigev_value: sigval64, + pub sigev_signo: ::c_int, + pub sigev_notify: ::c_int, + pub sigev_notify_function: ::c_ulonglong, + pub sigev_notify_attributes: ::c_ulonglong, + } + + pub struct osigevent { + pub sevt_value: *mut ::c_void, + pub sevt_signo: signal_t, + } + + pub struct poll_ctl { + pub cmd: ::c_short, + pub events: ::c_short, + pub fd: ::c_int, + } + + pub struct sf_parms { + pub header_data: *mut ::c_void, + pub header_length: ::c_uint, + pub file_descriptor: ::c_int, + pub file_size: ::uint64_t, + pub file_offset: ::uint64_t, + pub file_bytes: ::int64_t, + pub trailer_data: *mut ::c_void, + pub trailer_length: ::c_uint, + pub bytes_sent: ::uint64_t, + } + + pub struct mmsghdr { + pub msg_hdr: ::msghdr, + pub msg_len: ::c_uint, + } + + pub struct sched_param { + pub sched_priority: ::c_int, + pub sched_policy: ::c_int, + pub sched_reserved: [::c_int; 6], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + pub __pad: [::c_int; 4], + } + + pub struct posix_spawnattr_t { + pub posix_attr_flags: ::c_short, + pub posix_attr_pgroup: ::pid_t, + pub posix_attr_sigmask: ::sigset_t, + pub posix_attr_sigdefault: ::sigset_t, + pub posix_attr_schedpolicy: ::c_int, + pub posix_attr_schedparam: sched_param, + } + + pub struct glob_t { + pub gl_pathc: ::size_t, + pub gl_pathv: *mut *mut c_char, + pub gl_offs: ::size_t, + pub gl_padr: *mut ::c_void, + pub gl_ptx: *mut ::c_void, + } + + pub struct mallinfo { + pub arena: ::c_ulong, + pub ordblks: ::c_int, + pub smblks: ::c_int, + pub hblks: ::c_int, + pub hblkhd: ::c_int, + pub usmblks: ::c_ulong, + pub fsmblks: ::c_ulong, + pub uordblks: ::c_ulong, + pub fordblks: ::c_ulong, + pub keepcost: ::c_int, + } + + pub struct utmp_exit_status { + pub e_termination: ::c_short, + pub e_exit: ::c_short, + } + + pub struct utmp { + pub ut_user: [::c_char; 256], + pub ut_id: [::c_char; 14], + pub ut_line: [::c_char; 64], + pub ut_pid: ::pid_t, + pub ut_type: ::c_short, + pub ut_time: time64_t, + pub ut_exit: utmp_exit_status, + pub ut_host: [::c_char; 256], + pub __dbl_word_pad: ::c_int, + pub __reservedA: [::c_int; 2], + pub __reservedV: [::c_int; 6], + } + + pub struct regmatch_t { + pub rm_so: regoff_t, + pub rm_eo: regoff_t, + } + + pub struct regex_t { + pub re_nsub: ::size_t, + pub re_comp: *mut ::c_void, + pub re_cflags: ::c_int, + pub re_erroff: ::size_t, + pub re_len: ::size_t, + pub re_ucoll: [::wchar_t; 2], + pub re_lsub: [*mut ::c_void; 24], + pub re_esub: [*mut ::c_void; 24], + pub re_map: *mut ::c_uchar, + pub __maxsub: ::c_int, + pub __unused: [*mut ::c_void; 34], + } + + pub struct rlimit64 { + pub rlim_cur: rlim64_t, + pub rlim_max: rlim64_t, + } + + pub struct shmid_ds { + pub shm_perm: ipc_perm, + pub shm_segsz: ::size_t, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: shmatt_t, + pub shm_cnattch: shmatt_t, + pub shm_atime: time_t, + pub shm_dtime: time_t, + pub shm_ctime: time_t, + pub shm_handle: ::uint32_t, + pub shm_extshm: ::c_int, + pub shm_pagesize: ::int64_t, + pub shm_lba: ::uint64_t, + pub shm_reserved: ::int64_t, + pub shm_reserved1: ::int64_t, + } + + pub struct stat64 { + pub st_dev: dev_t, + pub st_ino: ino_t, + pub st_mode: mode_t, + pub st_nlink: nlink_t, + pub st_flag: ::c_ushort, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: dev_t, + pub st_ssize: ::c_int, + pub st_atim: st_timespec, + pub st_mtim: st_timespec, + pub st_ctim: st_timespec, + pub st_blksize: blksize_t, + pub st_blocks: blkcnt_t, + pub st_vfstype: ::c_int, + pub st_vfs: ::c_uint, + pub st_type: ::c_uint, + pub st_gen: ::c_uint, + pub st_reserved: [::c_uint; 10], + pub st_size: off64_t, + } + + pub struct mntent { + pub mnt_fsname: *mut ::c_char, + pub mnt_dir: *mut ::c_char, + pub mnt_type: *mut ::c_char, + pub mnt_opts: *mut ::c_char, + pub mnt_freq: ::c_int, + pub mnt_passno: ::c_int, + } + + pub struct ipc_perm { + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: mode_t, + pub seq: ::c_ushort, + pub __reserved: ::c_ushort, + pub key: key_t, + } + + pub struct entry { + pub key: *mut ::c_char, + pub data: *mut ::c_void, + } + + pub struct mq_attr { + pub mq_flags: ::c_long, + pub mq_maxmsg: ::c_long, + pub mq_msgsize: ::c_long, + pub mq_curmsgs: ::c_long, + } + + pub struct sembuf { + pub sem_num: ::c_ushort, + pub sem_op: ::c_short, + pub sem_flg: ::c_short, + } + + pub struct if_nameindex { + pub if_index: ::c_uint, + pub if_name: *mut ::c_char, + } + + pub struct itimerspec { + pub it_interval: ::timespec, + pub it_value: ::timespec, + } +} + +s_no_extra_traits! { + #[cfg(libc_union)] + pub union __sigaction_sa_union { + pub __su_handler: extern fn(c: ::c_int), + pub __su_sigaction: extern fn(c: ::c_int, info: *mut siginfo_t, ptr: *mut ::c_void), + } + + pub struct sigaction { + #[cfg(libc_union)] + pub sa_union: __sigaction_sa_union, + pub sa_mask: sigset_t, + pub sa_flags: ::c_int, + } + + #[cfg(libc_union)] + pub union __poll_ctl_ext_u { + pub addr: *mut ::c_void, + pub data32: u32, + pub data: u64, + } + + pub struct poll_ctl_ext { + pub version: u8, + pub command: u8, + pub events: ::c_short, + pub fd: ::c_int, + #[cfg(libc_union)] + pub u: __poll_ctl_ext_u, + pub reversed64: [u64; 6], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + #[cfg(libc_union)] + impl PartialEq for __sigaction_sa_union { + fn eq(&self, other: &__sigaction_sa_union) -> bool { + unsafe { + self.__su_handler == other.__su_handler + && self.__su_sigaction == other.__su_sigaction + } + } + } + #[cfg(libc_union)] + impl Eq for __sigaction_sa_union {} + #[cfg(libc_union)] + impl ::fmt::Debug for __sigaction_sa_union { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("__sigaction_sa_union") + .field("__su_handler", unsafe { &self.__su_handler }) + .field("__su_sigaction", unsafe { &self.__su_sigaction }) + .finish() + } + } + #[cfg(libc_union)] + impl ::hash::Hash for __sigaction_sa_union { + fn hash(&self, state: &mut H) { + unsafe { + self.__su_handler.hash(state); + self.__su_sigaction.hash(state); + } + } + } + + impl PartialEq for sigaction { + fn eq(&self, other: &sigaction) -> bool { + #[cfg(libc_union)] + let union_eq = self.sa_union == other.sa_union; + #[cfg(not(libc_union))] + let union_eq = true; + self.sa_mask == other.sa_mask + && self.sa_flags == other.sa_flags + && union_eq + } + } + impl Eq for sigaction {} + impl ::fmt::Debug for sigaction { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let mut struct_formatter = f.debug_struct("sigaction"); + #[cfg(libc_union)] + struct_formatter.field("sa_union", &self.sa_union); + struct_formatter.field("sa_mask", &self.sa_mask); + struct_formatter.field("sa_flags", &self.sa_flags); + struct_formatter.finish() + } + } + impl ::hash::Hash for sigaction { + fn hash(&self, state: &mut H) { + #[cfg(libc_union)] + self.sa_union.hash(state); + self.sa_mask.hash(state); + self.sa_flags.hash(state); + } + } + + #[cfg(libc_union)] + impl PartialEq for __poll_ctl_ext_u { + fn eq(&self, other: &__poll_ctl_ext_u) -> bool { + unsafe { + self.addr == other.addr + && self.data32 == other.data32 + && self.data == other.data + } + } + } + #[cfg(libc_union)] + impl Eq for __poll_ctl_ext_u {} + #[cfg(libc_union)] + impl ::fmt::Debug for __poll_ctl_ext_u { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("__poll_ctl_ext_u") + .field("addr", unsafe { &self.addr }) + .field("data32", unsafe { &self.data32 }) + .field("data", unsafe { &self.data }) + .finish() + } + } + #[cfg(libc_union)] + impl ::hash::Hash for __poll_ctl_ext_u { + fn hash(&self, state: &mut H) { + unsafe { + self.addr.hash(state); + self.data32.hash(state); + self.data.hash(state); + } + } + } + + impl PartialEq for poll_ctl_ext { + fn eq(&self, other: &poll_ctl_ext) -> bool { + #[cfg(libc_union)] + let union_eq = self.u == other.u; + #[cfg(not(libc_union))] + let union_eq = true; + self.version == other.version + && self.command == other.command + && self.events == other.events + && self.fd == other.fd + && self.reversed64 == other.reversed64 + && union_eq + } + } + impl Eq for poll_ctl_ext {} + impl ::fmt::Debug for poll_ctl_ext { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let mut struct_formatter = f.debug_struct("poll_ctl_ext"); + struct_formatter.field("version", &self.version); + struct_formatter.field("command", &self.command); + struct_formatter.field("events", &self.events); + struct_formatter.field("fd", &self.fd); + #[cfg(libc_union)] + struct_formatter.field("u", &self.u); + struct_formatter.field("reversed64", &self.reversed64); + struct_formatter.finish() + } + } + impl ::hash::Hash for poll_ctl_ext { + fn hash(&self, state: &mut H) { + self.version.hash(state); + self.command.hash(state); + self.events.hash(state); + self.fd.hash(state); + #[cfg(libc_union)] + self.u.hash(state); + self.reversed64.hash(state); + } + } + } +} + +// dlfcn.h +pub const RTLD_LAZY: ::c_int = 0x4; +pub const RTLD_NOW: ::c_int = 0x2; +pub const RTLD_GLOBAL: ::c_int = 0x10000; +pub const RTLD_LOCAL: ::c_int = 0x80000; +pub const RTLD_DEFAULT: *mut ::c_void = -1isize as *mut ::c_void; +pub const RTLD_MYSELF: *mut ::c_void = -2isize as *mut ::c_void; +pub const RTLD_NEXT: *mut ::c_void = -3isize as *mut ::c_void; + +// fcntl.h +pub const O_RDONLY: ::c_int = 0x0; +pub const O_WRONLY: ::c_int = 0x1; +pub const O_RDWR: ::c_int = 0x2; +pub const O_NDELAY: ::c_int = 0x8000; +pub const O_APPEND: ::c_int = 0x8; +pub const O_DSYNC: ::c_int = 0x400000; +pub const O_CREAT: ::c_int = 0x100; +pub const O_EXCL: ::c_int = 0x400; +pub const O_NOCTTY: ::c_int = 0x800; +pub const O_TRUNC: ::c_int = 0x200; +pub const O_NOFOLLOW: ::c_int = 0x1000000; +pub const O_DIRECTORY: ::c_int = 0x80000; +pub const O_SEARCH: ::c_int = 0x20; +pub const O_EXEC: ::c_int = 0x20; +pub const O_CLOEXEC: ::c_int = 0x800000; +pub const O_ACCMODE: ::c_int = O_RDONLY | O_WRONLY | O_RDWR; +pub const O_DIRECT: ::c_int = 0x8000000; +pub const O_TTY_INIT: ::c_int = 0; +pub const O_RSYNC: ::c_int = 0x200000; +pub const O_LARGEFILE: ::c_int = 0x4000000; +pub const F_CLOSEM: ::c_int = 10; +pub const F_DUPFD_CLOEXEC: ::c_int = 16; +pub const F_GETLK64: ::c_int = 11; +pub const F_SETLK64: ::c_int = 12; +pub const F_SETLKW64: ::c_int = 13; +pub const F_DUP2FD: ::c_int = 14; +pub const F_TSTLK: ::c_int = 15; +pub const F_GETLK: ::c_int = F_GETLK64; +pub const F_SETLK: ::c_int = F_SETLK64; +pub const F_SETLKW: ::c_int = F_SETLKW64; +pub const F_GETOWN: ::c_int = 8; +pub const F_SETOWN: ::c_int = 9; +pub const AT_FDCWD: ::c_int = -2; +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 1; +pub const AT_SYMLINK_FOLLOW: ::c_int = 2; +pub const AT_REMOVEDIR: ::c_int = 1; +pub const AT_EACCESS: ::c_int = 1; +pub const F_DUPFD: ::c_int = 0; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; +pub const O_SYNC: ::c_int = 16; +pub const O_NONBLOCK: ::c_int = 4; +pub const FASYNC: ::c_int = 0x20000; +pub const POSIX_FADV_NORMAL: ::c_int = 1; +pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_FADV_RANDOM: ::c_int = 3; +pub const POSIX_FADV_WILLNEED: ::c_int = 4; +pub const POSIX_FADV_DONTNEED: ::c_int = 5; +pub const POSIX_FADV_NOREUSE: ::c_int = 6; + +// glob.h +pub const GLOB_APPEND: ::c_int = 0x1; +pub const GLOB_DOOFFS: ::c_int = 0x2; +pub const GLOB_ERR: ::c_int = 0x4; +pub const GLOB_MARK: ::c_int = 0x8; +pub const GLOB_NOCHECK: ::c_int = 0x10; +pub const GLOB_NOSORT: ::c_int = 0x20; +pub const GLOB_NOESCAPE: ::c_int = 0x80; +pub const GLOB_NOSPACE: ::c_int = 0x2000; +pub const GLOB_ABORTED: ::c_int = 0x1000; +pub const GLOB_NOMATCH: ::c_int = 0x4000; +pub const GLOB_NOSYS: ::c_int = 0x8000; + +// langinfo.h +pub const DAY_1: ::nl_item = 13; +pub const DAY_2: ::nl_item = 14; +pub const DAY_3: ::nl_item = 15; +pub const DAY_4: ::nl_item = 16; +pub const DAY_5: ::nl_item = 17; +pub const DAY_6: ::nl_item = 18; +pub const DAY_7: ::nl_item = 19; +pub const ABDAY_1: ::nl_item = 6; +pub const ABDAY_2: ::nl_item = 7; +pub const ABDAY_3: ::nl_item = 8; +pub const ABDAY_4: ::nl_item = 9; +pub const ABDAY_5: ::nl_item = 10; +pub const ABDAY_6: ::nl_item = 11; +pub const ABDAY_7: ::nl_item = 12; +pub const MON_1: ::nl_item = 32; +pub const MON_2: ::nl_item = 33; +pub const MON_3: ::nl_item = 34; +pub const MON_4: ::nl_item = 35; +pub const MON_5: ::nl_item = 36; +pub const MON_6: ::nl_item = 37; +pub const MON_7: ::nl_item = 38; +pub const MON_8: ::nl_item = 39; +pub const MON_9: ::nl_item = 40; +pub const MON_10: ::nl_item = 41; +pub const MON_11: ::nl_item = 42; +pub const MON_12: ::nl_item = 43; +pub const ABMON_1: ::nl_item = 20; +pub const ABMON_2: ::nl_item = 21; +pub const ABMON_3: ::nl_item = 22; +pub const ABMON_4: ::nl_item = 23; +pub const ABMON_5: ::nl_item = 24; +pub const ABMON_6: ::nl_item = 25; +pub const ABMON_7: ::nl_item = 26; +pub const ABMON_8: ::nl_item = 27; +pub const ABMON_9: ::nl_item = 28; +pub const ABMON_10: ::nl_item = 29; +pub const ABMON_11: ::nl_item = 30; +pub const ABMON_12: ::nl_item = 31; +pub const RADIXCHAR: ::nl_item = 44; +pub const THOUSEP: ::nl_item = 45; +pub const YESSTR: ::nl_item = 46; +pub const NOSTR: ::nl_item = 47; +pub const CRNCYSTR: ::nl_item = 48; +pub const D_T_FMT: ::nl_item = 1; +pub const D_FMT: ::nl_item = 2; +pub const T_FMT: ::nl_item = 3; +pub const AM_STR: ::nl_item = 4; +pub const PM_STR: ::nl_item = 5; +pub const CODESET: ::nl_item = 49; +pub const T_FMT_AMPM: ::nl_item = 55; +pub const ERA: ::nl_item = 56; +pub const ERA_D_FMT: ::nl_item = 57; +pub const ERA_D_T_FMT: ::nl_item = 58; +pub const ERA_T_FMT: ::nl_item = 59; +pub const ALT_DIGITS: ::nl_item = 60; +pub const YESEXPR: ::nl_item = 61; +pub const NOEXPR: ::nl_item = 62; + +// locale.h +pub const LC_GLOBAL_LOCALE: ::locale_t = -1isize as ::locale_t; +pub const LC_CTYPE: ::c_int = 1; +pub const LC_NUMERIC: ::c_int = 3; +pub const LC_TIME: ::c_int = 4; +pub const LC_COLLATE: ::c_int = 0; +pub const LC_MONETARY: ::c_int = 2; +pub const LC_MESSAGES: ::c_int = 4; +pub const LC_ALL: ::c_int = -1; +pub const LC_CTYPE_MASK: ::c_int = 2; +pub const LC_NUMERIC_MASK: ::c_int = 16; +pub const LC_TIME_MASK: ::c_int = 32; +pub const LC_COLLATE_MASK: ::c_int = 1; +pub const LC_MONETARY_MASK: ::c_int = 8; +pub const LC_MESSAGES_MASK: ::c_int = 4; +pub const LC_ALL_MASK: ::c_int = LC_CTYPE_MASK + | LC_NUMERIC_MASK + | LC_TIME_MASK + | LC_COLLATE_MASK + | LC_MONETARY_MASK + | LC_MESSAGES_MASK; + +// netdb.h +pub const NI_MAXHOST: ::socklen_t = 1025; +pub const NI_MAXSERV: ::socklen_t = 32; +pub const NI_NOFQDN: ::socklen_t = 0x1; +pub const NI_NUMERICHOST: ::socklen_t = 0x2; +pub const NI_NAMEREQD: ::socklen_t = 0x4; +pub const NI_NUMERICSERV: ::socklen_t = 0x8; +pub const NI_DGRAM: ::socklen_t = 0x10; +pub const NI_NUMERICSCOPE: ::socklen_t = 0x40; +pub const EAI_AGAIN: ::c_int = 2; +pub const EAI_BADFLAGS: ::c_int = 3; +pub const EAI_FAIL: ::c_int = 4; +pub const EAI_FAMILY: ::c_int = 5; +pub const EAI_MEMORY: ::c_int = 6; +pub const EAI_NODATA: ::c_int = 7; +pub const EAI_NONAME: ::c_int = 8; +pub const EAI_SERVICE: ::c_int = 9; +pub const EAI_SOCKTYPE: ::c_int = 10; +pub const EAI_SYSTEM: ::c_int = 11; +pub const EAI_OVERFLOW: ::c_int = 13; +pub const AI_CANONNAME: ::c_int = 0x01; +pub const AI_PASSIVE: ::c_int = 0x02; +pub const AI_NUMERICHOST: ::c_int = 0x04; +pub const AI_ADDRCONFIG: ::c_int = 0x08; +pub const AI_V4MAPPED: ::c_int = 0x10; +pub const AI_ALL: ::c_int = 0x20; +pub const AI_NUMERICSERV: ::c_int = 0x40; +pub const AI_EXTFLAGS: ::c_int = 0x80; +pub const AI_DEFAULT: ::c_int = AI_V4MAPPED | AI_ADDRCONFIG; +pub const IPV6_ADDRFORM: ::c_int = 22; +pub const IPV6_ADDR_PREFERENCES: ::c_int = 74; +pub const IPV6_CHECKSUM: ::c_int = 39; +pub const IPV6_DONTFRAG: ::c_int = 45; +pub const IPV6_DSTOPTS: ::c_int = 54; +pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 16777215; +pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 251658240; +pub const IPV6_HOPLIMIT: ::c_int = 40; +pub const IPV6_HOPOPTS: ::c_int = 52; +pub const IPV6_NEXTHOP: ::c_int = 48; +pub const IPV6_PATHMTU: ::c_int = 46; +pub const IPV6_PKTINFO: ::c_int = 33; +pub const IPV6_PREFER_SRC_CGA: ::c_int = 16; +pub const IPV6_PREFER_SRC_COA: ::c_int = 2; +pub const IPV6_PREFER_SRC_HOME: ::c_int = 1; +pub const IPV6_PREFER_SRC_NONCGA: ::c_int = 32; +pub const IPV6_PREFER_SRC_PUBLIC: ::c_int = 4; +pub const IPV6_PREFER_SRC_TMP: ::c_int = 8; +pub const IPV6_RECVDSTOPTS: ::c_int = 56; +pub const IPV6_RECVHOPLIMIT: ::c_int = 41; +pub const IPV6_RECVHOPOPTS: ::c_int = 53; +pub const IPV6_RECVPATHMTU: ::c_int = 47; +pub const IPV6_RECVRTHDR: ::c_int = 51; +pub const IPV6_RECVTCLASS: ::c_int = 42; +pub const IPV6_RTHDR: ::c_int = 50; +pub const IPV6_RTHDRDSTOPTS: ::c_int = 55; +pub const IPV6_TCLASS: ::c_int = 43; + +// net/bpf.h +pub const DLT_NULL: ::c_int = 0x18; +pub const DLT_EN10MB: ::c_int = 0x6; +pub const DLT_EN3MB: ::c_int = 0x1a; +pub const DLT_AX25: ::c_int = 0x5; +pub const DLT_PRONET: ::c_int = 0xd; +pub const DLT_IEEE802: ::c_int = 0x7; +pub const DLT_ARCNET: ::c_int = 0x23; +pub const DLT_SLIP: ::c_int = 0x1c; +pub const DLT_PPP: ::c_int = 0x17; +pub const DLT_FDDI: ::c_int = 0xf; +pub const DLT_ATM: ::c_int = 0x25; +pub const DLT_IPOIB: ::c_int = 0xc7; +pub const BIOCSETF: ::c_ulong = 0x80104267; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; +pub const BIOCGBLEN: ::c_int = 0x40044266; +pub const BIOCSBLEN: ::c_int = 0xc0044266; +pub const BIOCFLUSH: ::c_int = 0x20004268; +pub const BIOCPROMISC: ::c_int = 0x20004269; +pub const BIOCGDLT: ::c_int = 0x4004426a; +pub const BIOCSRTIMEOUT: ::c_int = 0x8010426d; +pub const BIOCGSTATS: ::c_int = 0x4008426f; +pub const BIOCIMMEDIATE: ::c_int = 0x80044270; +pub const BIOCVERSION: ::c_int = 0x40044271; +pub const BIOCSDEVNO: ::c_int = 0x20004272; +pub const BIOCGETIF: ::c_ulong = 0x4020426b; +pub const BIOCSETIF: ::c_ulong = 0xffffffff8020426c; +pub const BPF_ABS: ::c_int = 32; +pub const BPF_ADD: ::c_int = 0; +pub const BPF_ALIGNMENT: ::c_ulong = 4; +pub const BPF_ALU: ::c_int = 4; +pub const BPF_AND: ::c_int = 80; +pub const BPF_B: ::c_int = 16; +pub const BPF_DIV: ::c_int = 48; +pub const BPF_H: ::c_int = 8; +pub const BPF_IMM: ::c_int = 0; +pub const BPF_IND: ::c_int = 64; +pub const BPF_JA: ::c_int = 0; +pub const BPF_JEQ: ::c_int = 16; +pub const BPF_JGE: ::c_int = 48; +pub const BPF_JGT: ::c_int = 32; +pub const BPF_JMP: ::c_int = 5; +pub const BPF_JSET: ::c_int = 64; +pub const BPF_K: ::c_int = 0; +pub const BPF_LD: ::c_int = 0; +pub const BPF_LDX: ::c_int = 1; +pub const BPF_LEN: ::c_int = 128; +pub const BPF_LSH: ::c_int = 96; +pub const BPF_MAXINSNS: ::c_int = 512; +pub const BPF_MEM: ::c_int = 96; +pub const BPF_MEMWORDS: ::c_int = 16; +pub const BPF_MISC: ::c_int = 7; +pub const BPF_MSH: ::c_int = 160; +pub const BPF_MUL: ::c_int = 32; +pub const BPF_NEG: ::c_int = 128; +pub const BPF_OR: ::c_int = 64; +pub const BPF_RET: ::c_int = 6; +pub const BPF_RSH: ::c_int = 112; +pub const BPF_ST: ::c_int = 2; +pub const BPF_STX: ::c_int = 3; +pub const BPF_SUB: ::c_int = 16; +pub const BPF_W: ::c_int = 0; +pub const BPF_X: ::c_int = 8; + +// net/if.h +pub const IFNET_SLOWHZ: ::c_int = 1; +pub const IFQ_MAXLEN: ::c_int = 50; +pub const IF_NAMESIZE: ::c_int = 16; +pub const IFNAMSIZ: ::c_int = 16; +pub const IFF_UP: ::c_int = 0x1; +pub const IFF_BROADCAST: ::c_int = 0x2; +pub const IFF_DEBUG: ::c_int = 0x4; +pub const IFF_LOOPBACK: ::c_int = 0x8; +pub const IFF_POINTOPOINT: ::c_int = 0x10; +pub const IFF_NOTRAILERS: ::c_int = 0x20; +pub const IFF_RUNNING: ::c_int = 0x40; +pub const IFF_NOARP: ::c_int = 0x80; +pub const IFF_PROMISC: ::c_int = 0x100; +pub const IFF_ALLMULTI: ::c_int = 0x200; +pub const IFF_MULTICAST: ::c_int = 0x80000; +pub const IFF_LINK0: ::c_int = 0x100000; +pub const IFF_LINK1: ::c_int = 0x200000; +pub const IFF_LINK2: ::c_int = 0x400000; +pub const IFF_OACTIVE: ::c_int = 0x400; +pub const IFF_SIMPLEX: ::c_int = 0x800; + +// net/if_arp.h +pub const ARPHRD_ETHER: ::c_int = 1; +pub const ARPHRD_802_5: ::c_int = 6; +pub const ARPHRD_802_3: ::c_int = 6; +pub const ARPHRD_FDDI: ::c_int = 1; +pub const ARPOP_REQUEST: ::c_int = 1; +pub const ARPOP_REPLY: ::c_int = 2; + +// net/route.h +pub const RTM_ADD: ::c_int = 0x1; +pub const RTM_DELETE: ::c_int = 0x2; +pub const RTM_CHANGE: ::c_int = 0x3; +pub const RTM_GET: ::c_int = 0x4; +pub const RTM_LOSING: ::c_int = 0x5; +pub const RTM_REDIRECT: ::c_int = 0x6; +pub const RTM_MISS: ::c_int = 0x7; +pub const RTM_LOCK: ::c_int = 0x8; +pub const RTM_OLDADD: ::c_int = 0x9; +pub const RTM_OLDDEL: ::c_int = 0xa; +pub const RTM_RESOLVE: ::c_int = 0xb; +pub const RTM_NEWADDR: ::c_int = 0xc; +pub const RTM_DELADDR: ::c_int = 0xd; +pub const RTM_IFINFO: ::c_int = 0xe; +pub const RTM_EXPIRE: ::c_int = 0xf; +pub const RTM_RTLOST: ::c_int = 0x10; +pub const RTM_GETNEXT: ::c_int = 0x11; +pub const RTM_SAMEADDR: ::c_int = 0x12; +pub const RTM_SET: ::c_int = 0x13; +pub const RTV_MTU: ::c_int = 0x1; +pub const RTV_HOPCOUNT: ::c_int = 0x2; +pub const RTV_EXPIRE: ::c_int = 0x4; +pub const RTV_RPIPE: ::c_int = 0x8; +pub const RTV_SPIPE: ::c_int = 0x10; +pub const RTV_SSTHRESH: ::c_int = 0x20; +pub const RTV_RTT: ::c_int = 0x40; +pub const RTV_RTTVAR: ::c_int = 0x80; +pub const RTA_DST: ::c_int = 0x1; +pub const RTA_GATEWAY: ::c_int = 0x2; +pub const RTA_NETMASK: ::c_int = 0x4; +pub const RTA_GENMASK: ::c_int = 0x8; +pub const RTA_IFP: ::c_int = 0x10; +pub const RTA_IFA: ::c_int = 0x20; +pub const RTA_AUTHOR: ::c_int = 0x40; +pub const RTA_BRD: ::c_int = 0x80; +pub const RTA_DOWNSTREAM: ::c_int = 0x100; +pub const RTAX_DST: ::c_int = 0; +pub const RTAX_GATEWAY: ::c_int = 1; +pub const RTAX_NETMASK: ::c_int = 2; +pub const RTAX_GENMASK: ::c_int = 3; +pub const RTAX_IFP: ::c_int = 4; +pub const RTAX_IFA: ::c_int = 5; +pub const RTAX_AUTHOR: ::c_int = 6; +pub const RTAX_BRD: ::c_int = 7; +pub const RTAX_MAX: ::c_int = 8; +pub const RTF_UP: ::c_int = 0x1; +pub const RTF_GATEWAY: ::c_int = 0x2; +pub const RTF_HOST: ::c_int = 0x4; +pub const RTF_REJECT: ::c_int = 0x8; +pub const RTF_DYNAMIC: ::c_int = 0x10; +pub const RTF_MODIFIED: ::c_int = 0x20; +pub const RTF_DONE: ::c_int = 0x40; +pub const RTF_MASK: ::c_int = 0x80; +pub const RTF_CLONING: ::c_int = 0x100; +pub const RTF_XRESOLVE: ::c_int = 0x200; +pub const RTF_LLINFO: ::c_int = 0x400; +pub const RTF_STATIC: ::c_int = 0x800; +pub const RTF_BLACKHOLE: ::c_int = 0x1000; +pub const RTF_BUL: ::c_int = 0x2000; +pub const RTF_PROTO2: ::c_int = 0x4000; +pub const RTF_PROTO1: ::c_int = 0x8000; +pub const RTF_CLONE: ::c_int = 0x10000; +pub const RTF_CLONED: ::c_int = 0x20000; +pub const RTF_PROTO3: ::c_int = 0x40000; +pub const RTF_BCE: ::c_int = 0x80000; +pub const RTF_PINNED: ::c_int = 0x100000; +pub const RTF_LOCAL: ::c_int = 0x200000; +pub const RTF_BROADCAST: ::c_int = 0x400000; +pub const RTF_MULTICAST: ::c_int = 0x800000; +pub const RTF_ACTIVE_DGD: ::c_int = 0x1000000; +pub const RTF_STOPSRCH: ::c_int = 0x2000000; +pub const RTF_FREE_IN_PROG: ::c_int = 0x4000000; +pub const RTF_PERMANENT6: ::c_int = 0x8000000; +pub const RTF_UNREACHABLE: ::c_int = 0x10000000; +pub const RTF_CACHED: ::c_int = 0x20000000; +pub const RTF_SMALLMTU: ::c_int = 0x40000; + +// netinet/in.h +pub const IPPROTO_HOPOPTS: ::c_int = 0; +pub const IPPROTO_IGMP: ::c_int = 2; +pub const IPPROTO_GGP: ::c_int = 3; +pub const IPPROTO_IPIP: ::c_int = 4; +pub const IPPROTO_EGP: ::c_int = 8; +pub const IPPROTO_PUP: ::c_int = 12; +pub const IPPROTO_IDP: ::c_int = 22; +pub const IPPROTO_TP: ::c_int = 29; +pub const IPPROTO_ROUTING: ::c_int = 43; +pub const IPPROTO_FRAGMENT: ::c_int = 44; +pub const IPPROTO_QOS: ::c_int = 45; +pub const IPPROTO_RSVP: ::c_int = 46; +pub const IPPROTO_GRE: ::c_int = 47; +pub const IPPROTO_ESP: ::c_int = 50; +pub const IPPROTO_AH: ::c_int = 51; +pub const IPPROTO_NONE: ::c_int = 59; +pub const IPPROTO_DSTOPTS: ::c_int = 60; +pub const IPPROTO_LOCAL: ::c_int = 63; +pub const IPPROTO_EON: ::c_int = 80; +pub const IPPROTO_BIP: ::c_int = 0x53; +pub const IPPROTO_SCTP: ::c_int = 132; +pub const IPPROTO_MH: ::c_int = 135; +pub const IPPROTO_GIF: ::c_int = 140; +pub const IPPROTO_RAW: ::c_int = 255; +pub const IPPROTO_MAX: ::c_int = 256; +pub const IP_OPTIONS: ::c_int = 1; +pub const IP_HDRINCL: ::c_int = 2; +pub const IP_TOS: ::c_int = 3; +pub const IP_TTL: ::c_int = 4; +pub const IP_UNICAST_HOPS: ::c_int = 4; +pub const IP_RECVOPTS: ::c_int = 5; +pub const IP_RECVRETOPTS: ::c_int = 6; +pub const IP_RECVDSTADDR: ::c_int = 7; +pub const IP_RETOPTS: ::c_int = 8; +pub const IP_MULTICAST_IF: ::c_int = 9; +pub const IP_MULTICAST_TTL: ::c_int = 10; +pub const IP_MULTICAST_HOPS: ::c_int = 10; +pub const IP_MULTICAST_LOOP: ::c_int = 11; +pub const IP_ADD_MEMBERSHIP: ::c_int = 12; +pub const IP_DROP_MEMBERSHIP: ::c_int = 13; +pub const IP_RECVMACHDR: ::c_int = 14; +pub const IP_RECVIFINFO: ::c_int = 15; +pub const IP_BROADCAST_IF: ::c_int = 16; +pub const IP_DHCPMODE: ::c_int = 17; +pub const IP_RECVIF: ::c_int = 20; +pub const IP_ADDRFORM: ::c_int = 22; +pub const IP_DONTFRAG: ::c_int = 25; +pub const IP_FINDPMTU: ::c_int = 26; +pub const IP_PMTUAGE: ::c_int = 27; +pub const IP_RECVINTERFACE: ::c_int = 32; +pub const IP_RECVTTL: ::c_int = 34; +pub const IP_BLOCK_SOURCE: ::c_int = 58; +pub const IP_UNBLOCK_SOURCE: ::c_int = 59; +pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 60; +pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 61; +pub const IP_DEFAULT_MULTICAST_TTL: ::c_int = 1; +pub const IP_DEFAULT_MULTICAST_LOOP: ::c_int = 1; +pub const IP_INC_MEMBERSHIPS: ::c_int = 20; +pub const IP_INIT_MEMBERSHIP: ::c_int = 20; +pub const IPV6_UNICAST_HOPS: ::c_int = IP_TTL; +pub const IPV6_MULTICAST_IF: ::c_int = IP_MULTICAST_IF; +pub const IPV6_MULTICAST_HOPS: ::c_int = IP_MULTICAST_TTL; +pub const IPV6_MULTICAST_LOOP: ::c_int = IP_MULTICAST_LOOP; +pub const IPV6_RECVPKTINFO: ::c_int = 35; +pub const IPV6_V6ONLY: ::c_int = 37; +pub const IPV6_ADD_MEMBERSHIP: ::c_int = IP_ADD_MEMBERSHIP; +pub const IPV6_DROP_MEMBERSHIP: ::c_int = IP_DROP_MEMBERSHIP; +pub const IPV6_JOIN_GROUP: ::c_int = IP_ADD_MEMBERSHIP; +pub const IPV6_LEAVE_GROUP: ::c_int = IP_DROP_MEMBERSHIP; +pub const MCAST_BLOCK_SOURCE: ::c_int = 64; +pub const MCAST_EXCLUDE: ::c_int = 2; +pub const MCAST_INCLUDE: ::c_int = 1; +pub const MCAST_JOIN_GROUP: ::c_int = 62; +pub const MCAST_JOIN_SOURCE_GROUP: ::c_int = 66; +pub const MCAST_LEAVE_GROUP: ::c_int = 63; +pub const MCAST_LEAVE_SOURCE_GROUP: ::c_int = 67; +pub const MCAST_UNBLOCK_SOURCE: ::c_int = 65; + +// netinet/ip.h +pub const MAXTTL: ::c_int = 255; +pub const IPDEFTTL: ::c_int = 64; +pub const IPOPT_CONTROL: ::c_int = 0; +pub const IPOPT_EOL: ::c_int = 0; +pub const IPOPT_LSRR: ::c_int = 131; +pub const IPOPT_MINOFF: ::c_int = 4; +pub const IPOPT_NOP: ::c_int = 1; +pub const IPOPT_OFFSET: ::c_int = 2; +pub const IPOPT_OLEN: ::c_int = 1; +pub const IPOPT_OPTVAL: ::c_int = 0; +pub const IPOPT_RESERVED1: ::c_int = 0x20; +pub const IPOPT_RESERVED2: ::c_int = 0x60; +pub const IPOPT_RR: ::c_int = 7; +pub const IPOPT_SSRR: ::c_int = 137; +pub const IPOPT_TS: ::c_int = 68; +pub const IPOPT_TS_PRESPEC: ::c_int = 3; +pub const IPOPT_TS_TSANDADDR: ::c_int = 1; +pub const IPOPT_TS_TSONLY: ::c_int = 0; +pub const IPTOS_LOWDELAY: ::c_int = 16; +pub const IPTOS_PREC_CRITIC_ECP: ::c_int = 160; +pub const IPTOS_PREC_FLASH: ::c_int = 96; +pub const IPTOS_PREC_FLASHOVERRIDE: ::c_int = 128; +pub const IPTOS_PREC_IMMEDIATE: ::c_int = 64; +pub const IPTOS_PREC_INTERNETCONTROL: ::c_int = 192; +pub const IPTOS_PREC_NETCONTROL: ::c_int = 224; +pub const IPTOS_PREC_PRIORITY: ::c_int = 32; +pub const IPTOS_PREC_ROUTINE: ::c_int = 16; +pub const IPTOS_RELIABILITY: ::c_int = 4; +pub const IPTOS_THROUGHPUT: ::c_int = 8; +pub const IPVERSION: ::c_int = 4; + +// netinet/tcp.h +pub const TCP_NODELAY: ::c_int = 0x1; +pub const TCP_MAXSEG: ::c_int = 0x2; +pub const TCP_RFC1323: ::c_int = 0x4; +pub const TCP_KEEPALIVE: ::c_int = 0x8; +pub const TCP_KEEPIDLE: ::c_int = 0x11; +pub const TCP_KEEPINTVL: ::c_int = 0x12; +pub const TCP_KEEPCNT: ::c_int = 0x13; +pub const TCP_NODELAYACK: ::c_int = 0x14; + +// pthread.h +pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; +pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; +pub const PTHREAD_PROCESS_SHARED: ::c_int = 0; +pub const PTHREAD_PROCESS_PRIVATE: ::c_ushort = 1; +pub const PTHREAD_STACK_MIN: ::size_t = PAGESIZE as ::size_t * 4; +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 5; +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 3; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 4; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_MUTEX_ROBUST: ::c_int = 1; +pub const PTHREAD_MUTEX_STALLED: ::c_int = 0; +pub const PTHREAD_PRIO_INHERIT: ::c_int = 3; +pub const PTHREAD_PRIO_NONE: ::c_int = 1; +pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; + +// regex.h +pub const REG_EXTENDED: ::c_int = 1; +pub const REG_ICASE: ::c_int = 2; +pub const REG_NEWLINE: ::c_int = 4; +pub const REG_NOSUB: ::c_int = 8; +pub const REG_NOTBOL: ::c_int = 0x100; +pub const REG_NOTEOL: ::c_int = 0x200; +pub const REG_NOMATCH: ::c_int = 1; +pub const REG_BADPAT: ::c_int = 2; +pub const REG_ECOLLATE: ::c_int = 3; +pub const REG_ECTYPE: ::c_int = 4; +pub const REG_EESCAPE: ::c_int = 5; +pub const REG_ESUBREG: ::c_int = 6; +pub const REG_EBRACK: ::c_int = 7; +pub const REG_EPAREN: ::c_int = 8; +pub const REG_EBRACE: ::c_int = 9; +pub const REG_BADBR: ::c_int = 10; +pub const REG_ERANGE: ::c_int = 11; +pub const REG_ESPACE: ::c_int = 12; +pub const REG_BADRPT: ::c_int = 13; +pub const REG_ECHAR: ::c_int = 14; +pub const REG_EBOL: ::c_int = 15; +pub const REG_EEOL: ::c_int = 16; +pub const REG_ENOSYS: ::c_int = 17; + +// rpcsvc/mount.h +pub const NFSMNT_ACDIRMAX: ::c_int = 2048; +pub const NFSMNT_ACDIRMIN: ::c_int = 1024; +pub const NFSMNT_ACREGMAX: ::c_int = 512; +pub const NFSMNT_ACREGMIN: ::c_int = 256; +pub const NFSMNT_INT: ::c_int = 64; +pub const NFSMNT_NOAC: ::c_int = 128; +pub const NFSMNT_RETRANS: ::c_int = 16; +pub const NFSMNT_RSIZE: ::c_int = 4; +pub const NFSMNT_SOFT: ::c_int = 1; +pub const NFSMNT_TIMEO: ::c_int = 8; +pub const NFSMNT_WSIZE: ::c_int = 2; + +// rpcsvc/rstat.h +pub const CPUSTATES: ::c_int = 4; + +// search.h +pub const FIND: ::c_int = 0; +pub const ENTER: ::c_int = 1; + +// semaphore.h +pub const SEM_FAILED: *mut sem_t = -1isize as *mut ::sem_t; + +// spawn.h +pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x1; +pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x2; +pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x4; +pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x8; +pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x10; +pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x20; +pub const POSIX_SPAWN_FORK_HANDLERS: ::c_int = 0x1000; + +// stdio.h +pub const EOF: ::c_int = -1; +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; +pub const _IOFBF: ::c_int = 0o000; +pub const _IONBF: ::c_int = 0o004; +pub const _IOLBF: ::c_int = 0o100; +pub const BUFSIZ: ::c_uint = 4096; +pub const FOPEN_MAX: ::c_uint = 32767; +pub const FILENAME_MAX: ::c_uint = 255; +pub const L_tmpnam: ::c_uint = 21; +pub const TMP_MAX: ::c_uint = 16384; + +// stdlib.h +pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: ::c_int = 0; +pub const RAND_MAX: ::c_int = 32767; + +// sys/access.h +pub const F_OK: ::c_int = 0; +pub const R_OK: ::c_int = 4; +pub const W_OK: ::c_int = 2; +pub const X_OK: ::c_int = 1; + +// sys/aio.h +pub const LIO_NOP: ::c_int = 0; +pub const LIO_READ: ::c_int = 1; +pub const LIO_WRITE: ::c_int = 2; +pub const LIO_NOWAIT: ::c_int = 0; +pub const LIO_WAIT: ::c_int = 1; +pub const AIO_ALLDONE: ::c_int = 2; +pub const AIO_CANCELED: ::c_int = 0; +pub const AIO_NOTCANCELED: ::c_int = 1; + +// sys/errno.h +pub const EPERM: ::c_int = 1; +pub const ENOENT: ::c_int = 2; +pub const ESRCH: ::c_int = 3; +pub const EINTR: ::c_int = 4; +pub const EIO: ::c_int = 5; +pub const ENXIO: ::c_int = 6; +pub const E2BIG: ::c_int = 7; +pub const ENOEXEC: ::c_int = 8; +pub const EBADF: ::c_int = 9; +pub const ECHILD: ::c_int = 10; +pub const EAGAIN: ::c_int = 11; +pub const ENOMEM: ::c_int = 12; +pub const EACCES: ::c_int = 13; +pub const EFAULT: ::c_int = 14; +pub const ENOTBLK: ::c_int = 15; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const EXDEV: ::c_int = 18; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENFILE: ::c_int = 23; +pub const EMFILE: ::c_int = 24; +pub const ENOTTY: ::c_int = 25; +pub const ETXTBSY: ::c_int = 26; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const ESPIPE: ::c_int = 29; +pub const EROFS: ::c_int = 30; +pub const EMLINK: ::c_int = 31; +pub const EPIPE: ::c_int = 32; +pub const EDOM: ::c_int = 33; +pub const ERANGE: ::c_int = 34; +pub const ENOMSG: ::c_int = 35; +pub const EIDRM: ::c_int = 36; +pub const ECHRNG: ::c_int = 37; +pub const EL2NSYNC: ::c_int = 38; +pub const EL3HLT: ::c_int = 39; +pub const EL3RST: ::c_int = 40; +pub const ELNRNG: ::c_int = 41; +pub const EUNATCH: ::c_int = 42; +pub const ENOCSI: ::c_int = 43; +pub const EL2HLT: ::c_int = 44; +pub const EDEADLK: ::c_int = 45; +pub const ENOLCK: ::c_int = 49; +pub const ECANCELED: ::c_int = 117; +pub const ENOTSUP: ::c_int = 124; +pub const EPROCLIM: ::c_int = 83; +pub const EDQUOT: ::c_int = 88; +pub const EOWNERDEAD: ::c_int = 95; +pub const ENOTRECOVERABLE: ::c_int = 94; +pub const ENOSTR: ::c_int = 123; +pub const ENODATA: ::c_int = 122; +pub const ETIME: ::c_int = 119; +pub const ENOSR: ::c_int = 118; +pub const EREMOTE: ::c_int = 93; +pub const ENOATTR: ::c_int = 112; +pub const ESAD: ::c_int = 113; +pub const ENOTRUST: ::c_int = 114; +pub const ENOLINK: ::c_int = 126; +pub const EPROTO: ::c_int = 121; +pub const EMULTIHOP: ::c_int = 125; +pub const EBADMSG: ::c_int = 120; +pub const ENAMETOOLONG: ::c_int = 86; +pub const EOVERFLOW: ::c_int = 127; +pub const EILSEQ: ::c_int = 116; +pub const ENOSYS: ::c_int = 109; +pub const ELOOP: ::c_int = 85; +pub const ERESTART: ::c_int = 82; +pub const ENOTEMPTY: ::c_int = 87; +pub const EUSERS: ::c_int = 84; +pub const ENOTSOCK: ::c_int = 57; +pub const EDESTADDRREQ: ::c_int = 58; +pub const EMSGSIZE: ::c_int = 59; +pub const EPROTOTYPE: ::c_int = 60; +pub const ENOPROTOOPT: ::c_int = 61; +pub const EPROTONOSUPPORT: ::c_int = 62; +pub const ESOCKTNOSUPPORT: ::c_int = 63; +pub const EOPNOTSUPP: ::c_int = 64; +pub const EPFNOSUPPORT: ::c_int = 65; +pub const EAFNOSUPPORT: ::c_int = 66; +pub const EADDRINUSE: ::c_int = 67; +pub const EADDRNOTAVAIL: ::c_int = 68; +pub const ENETDOWN: ::c_int = 69; +pub const ENETUNREACH: ::c_int = 70; +pub const ENETRESET: ::c_int = 71; +pub const ECONNABORTED: ::c_int = 72; +pub const ECONNRESET: ::c_int = 73; +pub const ENOBUFS: ::c_int = 74; +pub const EISCONN: ::c_int = 75; +pub const ENOTCONN: ::c_int = 76; +pub const ESHUTDOWN: ::c_int = 77; +pub const ETOOMANYREFS: ::c_int = 115; +pub const ETIMEDOUT: ::c_int = 78; +pub const ECONNREFUSED: ::c_int = 79; +pub const EHOSTDOWN: ::c_int = 80; +pub const EHOSTUNREACH: ::c_int = 81; +pub const EWOULDBLOCK: ::c_int = EAGAIN; +pub const EALREADY: ::c_int = 56; +pub const EINPROGRESS: ::c_int = 55; +pub const ESTALE: ::c_int = 52; + +// sys/dr.h +pub const LPAR_INFO_FORMAT1: ::c_int = 1; +pub const LPAR_INFO_FORMAT2: ::c_int = 2; +pub const WPAR_INFO_FORMAT: ::c_int = 3; +pub const PROC_MODULE_INFO: ::c_int = 4; +pub const NUM_PROC_MODULE_TYPES: ::c_int = 5; +pub const LPAR_INFO_VRME_NUM_POOLS: ::c_int = 6; +pub const LPAR_INFO_VRME_POOLS: ::c_int = 7; +pub const LPAR_INFO_VRME_LPAR: ::c_int = 8; +pub const LPAR_INFO_VRME_RESET_HWMARKS: ::c_int = 9; +pub const LPAR_INFO_VRME_ALLOW_DESIRED: ::c_int = 10; +pub const EMTP_INFO_FORMAT: ::c_int = 11; +pub const LPAR_INFO_LPM_CAPABILITY: ::c_int = 12; +pub const ENERGYSCALE_INFO: ::c_int = 13; + +// sys/file.h +pub const LOCK_SH: ::c_int = 1; +pub const LOCK_EX: ::c_int = 2; +pub const LOCK_NB: ::c_int = 4; +pub const LOCK_UN: ::c_int = 8; + +// sys/flock.h +pub const F_RDLCK: ::c_short = 0o01; +pub const F_WRLCK: ::c_short = 0o02; +pub const F_UNLCK: ::c_short = 0o03; + +// sys/fs/quota_common.h +pub const Q_QUOTAON: ::c_int = 0x100; +pub const Q_QUOTAOFF: ::c_int = 0x200; +pub const Q_SETUSE: ::c_int = 0x500; +pub const Q_SYNC: ::c_int = 0x600; +pub const Q_GETQUOTA: ::c_int = 0x300; +pub const Q_SETQLIM: ::c_int = 0x400; +pub const Q_SETQUOTA: ::c_int = 0x400; + +// sys/ioctl.h +pub const IOCPARM_MASK: ::c_int = 0x7f; +pub const IOC_VOID: ::c_int = 0x20000000; +pub const IOC_OUT: ::c_int = 0x40000000; +pub const IOC_IN: ::c_int = 0x40000000 << 1; +pub const IOC_INOUT: ::c_int = IOC_IN | IOC_OUT; +pub const FIOCLEX: ::c_int = 536897025; +pub const FIONCLEX: ::c_int = 536897026; +pub const FIONREAD: ::c_int = 1074030207; +pub const FIONBIO: ::c_int = -2147195266; +pub const FIOASYNC: ::c_int = -2147195267; +pub const FIOSETOWN: ::c_int = -2147195268; +pub const FIOGETOWN: ::c_int = 1074030203; +pub const TIOCGETD: ::c_int = 0x40047400; +pub const TIOCSETD: ::c_int = 0x80047401; +pub const TIOCHPCL: ::c_int = 0x20007402; +pub const TIOCMODG: ::c_int = 0x40047403; +pub const TIOCMODS: ::c_int = 0x80047404; +pub const TIOCM_LE: ::c_int = 0x1; +pub const TIOCM_DTR: ::c_int = 0x2; +pub const TIOCM_RTS: ::c_int = 0x4; +pub const TIOCM_ST: ::c_int = 0x8; +pub const TIOCM_SR: ::c_int = 0x10; +pub const TIOCM_CTS: ::c_int = 0x20; +pub const TIOCM_CAR: ::c_int = 0x40; +pub const TIOCM_CD: ::c_int = 0x40; +pub const TIOCM_RNG: ::c_int = 0x80; +pub const TIOCM_RI: ::c_int = 0x80; +pub const TIOCM_DSR: ::c_int = 0x100; +pub const TIOCGETP: ::c_int = 0x40067408; +pub const TIOCSETP: ::c_int = 0x80067409; +pub const TIOCSETN: ::c_int = 0x8006740a; +pub const TIOCEXCL: ::c_int = 0x2000740d; +pub const TIOCNXCL: ::c_int = 0x2000740e; +pub const TIOCFLUSH: ::c_int = 0x80047410; +pub const TIOCSETC: ::c_int = 0x80067411; +pub const TIOCGETC: ::c_int = 0x40067412; +pub const TANDEM: ::c_int = 0x1; +pub const CBREAK: ::c_int = 0x2; +pub const LCASE: ::c_int = 0x4; +pub const MDMBUF: ::c_int = 0x800000; +pub const XTABS: ::c_int = 0xc00; +pub const SIOCADDMULTI: ::c_int = -2145359567; +pub const SIOCADDRT: ::c_int = -2143784438; +pub const SIOCDARP: ::c_int = -2142476000; +pub const SIOCDELMULTI: ::c_int = -2145359566; +pub const SIOCDELRT: ::c_int = -2143784437; +pub const SIOCDIFADDR: ::c_int = -2144835303; +pub const SIOCGARP: ::c_int = -1068734170; +pub const SIOCGIFADDR: ::c_int = -1071093471; +pub const SIOCGIFBRDADDR: ::c_int = -1071093469; +pub const SIOCGIFCONF: ::c_int = -1072666299; +pub const SIOCGIFDSTADDR: ::c_int = -1071093470; +pub const SIOCGIFFLAGS: ::c_int = -1071093487; +pub const SIOCGIFHWADDR: ::c_int = -1068209771; +pub const SIOCGIFMETRIC: ::c_int = -1071093481; +pub const SIOCGIFMTU: ::c_int = -1071093418; +pub const SIOCGIFNETMASK: ::c_int = -1071093467; +pub const SIOCSARP: ::c_int = -2142476002; +pub const SIOCSIFADDR: ::c_int = -2144835316; +pub const SIOCSIFBRDADDR: ::c_int = -2144835309; +pub const SIOCSIFDSTADDR: ::c_int = -2144835314; +pub const SIOCSIFFLAGS: ::c_int = -2144835312; +pub const SIOCSIFMETRIC: ::c_int = -2144835304; +pub const SIOCSIFMTU: ::c_int = -2144835240; +pub const SIOCSIFNETMASK: ::c_int = -2144835306; +pub const TIOCUCNTL: ::c_int = -2147191706; +pub const TIOCCONS: ::c_int = -2147191710; +pub const TIOCPKT: ::c_int = -2147191696; +pub const TIOCPKT_DATA: ::c_int = 0; +pub const TIOCPKT_FLUSHREAD: ::c_int = 1; +pub const TIOCPKT_FLUSHWRITE: ::c_int = 2; +pub const TIOCPKT_NOSTOP: ::c_int = 0x10; +pub const TIOCPKT_DOSTOP: ::c_int = 0x20; +pub const TIOCPKT_START: ::c_int = 8; +pub const TIOCPKT_STOP: ::c_int = 4; + +// sys/ipc.h +pub const IPC_ALLOC: ::c_int = 0o100000; +pub const IPC_CREAT: ::c_int = 0o020000; +pub const IPC_EXCL: ::c_int = 0o002000; +pub const IPC_NOWAIT: ::c_int = 0o004000; +pub const IPC_RMID: ::c_int = 0; +pub const IPC_SET: ::c_int = 101; +pub const IPC_R: ::c_int = 0o0400; +pub const IPC_W: ::c_int = 0o0200; +pub const IPC_O: ::c_int = 0o1000; +pub const IPC_NOERROR: ::c_int = 0o10000; +pub const IPC_STAT: ::c_int = 102; +pub const IPC_PRIVATE: ::key_t = -1; +pub const SHM_LOCK: ::c_int = 201; +pub const SHM_UNLOCK: ::c_int = 202; + +// sys/ldr.h +pub const L_GETINFO: ::c_int = 2; +pub const L_GETMESSAGE: ::c_int = 1; +pub const L_GETLIBPATH: ::c_int = 3; +pub const L_GETXINFO: ::c_int = 8; + +// sys/limits.h +pub const PATH_MAX: ::c_int = 1023; +pub const PAGESIZE: ::c_int = 4096; +pub const IOV_MAX: ::c_int = 16; +pub const AIO_LISTIO_MAX: ::c_int = 4096; +pub const PIPE_BUF: usize = 32768; +pub const OPEN_MAX: ::c_int = 65534; +pub const MAX_INPUT: ::c_int = 512; +pub const MAX_CANON: ::c_int = 256; +pub const ARG_MAX: ::c_int = 1048576; +pub const BC_BASE_MAX: ::c_int = 99; +pub const BC_DIM_MAX: ::c_int = 0x800; +pub const BC_SCALE_MAX: ::c_int = 99; +pub const BC_STRING_MAX: ::c_int = 0x800; +pub const CHARCLASS_NAME_MAX: ::c_int = 14; +pub const CHILD_MAX: ::c_int = 128; +pub const COLL_WEIGHTS_MAX: ::c_int = 4; +pub const EXPR_NEST_MAX: ::c_int = 32; +pub const NZERO: ::c_int = 20; + +// sys/lockf.h +pub const F_LOCK: ::c_int = 1; +pub const F_TEST: ::c_int = 3; +pub const F_TLOCK: ::c_int = 2; +pub const F_ULOCK: ::c_int = 0; + +// sys/machine.h +pub const BIG_ENDIAN: ::c_int = 4321; +pub const LITTLE_ENDIAN: ::c_int = 1234; +pub const PDP_ENDIAN: ::c_int = 3412; + +// sys/mman.h +pub const PROT_NONE: ::c_int = 0; +pub const PROT_READ: ::c_int = 1; +pub const PROT_WRITE: ::c_int = 2; +pub const PROT_EXEC: ::c_int = 4; +pub const MAP_FILE: ::c_int = 0; +pub const MAP_SHARED: ::c_int = 1; +pub const MAP_PRIVATE: ::c_int = 2; +pub const MAP_FIXED: ::c_int = 0x100; +pub const MAP_ANON: ::c_int = 0x10; +pub const MAP_ANONYMOUS: ::c_int = 0x10; +pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; +pub const MAP_TYPE: ::c_int = 0xf0; +pub const MCL_CURRENT: ::c_int = 0x100; +pub const MCL_FUTURE: ::c_int = 0x200; +pub const MS_SYNC: ::c_int = 0x20; +pub const MS_ASYNC: ::c_int = 0x10; +pub const MS_INVALIDATE: ::c_int = 0x40; +pub const POSIX_MADV_NORMAL: ::c_int = 1; +pub const POSIX_MADV_RANDOM: ::c_int = 3; +pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_MADV_WILLNEED: ::c_int = 4; +pub const POSIX_MADV_DONTNEED: ::c_int = 5; +pub const MADV_NORMAL: ::c_int = 0; +pub const MADV_RANDOM: ::c_int = 1; +pub const MADV_SEQUENTIAL: ::c_int = 2; +pub const MADV_WILLNEED: ::c_int = 3; +pub const MADV_DONTNEED: ::c_int = 4; + +// sys/mode.h +pub const S_IFMT: mode_t = 0o170000; +pub const S_IFREG: mode_t = 0o100000; +pub const S_IFDIR: mode_t = 0o40000; +pub const S_IFBLK: mode_t = 0o60000; +pub const S_IFCHR: mode_t = 0o20000; +pub const S_IFIFO: mode_t = 0o10000; +pub const S_IRWXU: mode_t = 0o700; +pub const S_IRUSR: mode_t = 0o400; +pub const S_IWUSR: mode_t = 0o200; +pub const S_IXUSR: mode_t = 0o100; +pub const S_IRWXG: mode_t = 0o70; +pub const S_IRGRP: mode_t = 0o40; +pub const S_IWGRP: mode_t = 0o20; +pub const S_IXGRP: mode_t = 0o10; +pub const S_IRWXO: mode_t = 7; +pub const S_IROTH: mode_t = 4; +pub const S_IWOTH: mode_t = 2; +pub const S_IXOTH: mode_t = 1; +pub const S_IFLNK: mode_t = 0o120000; +pub const S_IFSOCK: mode_t = 0o140000; +pub const S_IEXEC: mode_t = 0o100; +pub const S_IWRITE: mode_t = 0o200; +pub const S_IREAD: mode_t = 0o400; + +// sys/msg.h +pub const MSG_NOERROR: ::c_int = 0o10000; + +// sys/m_signal.h +pub const SIGSTKSZ: ::size_t = 4096; +pub const MINSIGSTKSZ: ::size_t = 1200; + +// sys/params.h +pub const MAXPATHLEN: ::c_int = PATH_MAX + 1; +pub const MAXSYMLINKS: ::c_int = 20; +pub const MAXHOSTNAMELEN: ::c_int = 256; +pub const MAXUPRC: ::c_int = 128; +pub const NGROUPS_MAX: ::c_ulong = 2048; +pub const NGROUPS: ::c_ulong = NGROUPS_MAX; +pub const NOFILE: ::c_int = OPEN_MAX; + +// sys/poll.h +pub const POLLIN: ::c_short = 0x0001; +pub const POLLPRI: ::c_short = 0x0004; +pub const POLLOUT: ::c_short = 0x0002; +pub const POLLERR: ::c_short = 0x4000; +pub const POLLHUP: ::c_short = 0x2000; +pub const POLLMSG: ::c_short = 0x0080; +pub const POLLSYNC: ::c_short = 0x8000; +pub const POLLNVAL: ::c_short = POLLSYNC; +pub const POLLNORM: ::c_short = POLLIN; +pub const POLLRDNORM: ::c_short = 0x0010; +pub const POLLWRNORM: ::c_short = POLLOUT; +pub const POLLRDBAND: ::c_short = 0x0020; +pub const POLLWRBAND: ::c_short = 0x0040; + +// sys/pollset.h +pub const PS_ADD: ::c_uchar = 0; +pub const PS_MOD: ::c_uchar = 1; +pub const PS_DELETE: ::c_uchar = 2; +pub const PS_REPLACE: ::c_uchar = 3; + +// sys/ptrace.h +pub const PT_TRACE_ME: ::c_int = 0; +pub const PT_READ_I: ::c_int = 1; +pub const PT_READ_D: ::c_int = 2; +pub const PT_WRITE_I: ::c_int = 4; +pub const PT_WRITE_D: ::c_int = 5; +pub const PT_CONTINUE: ::c_int = 7; +pub const PT_KILL: ::c_int = 8; +pub const PT_STEP: ::c_int = 9; +pub const PT_READ_GPR: ::c_int = 11; +pub const PT_READ_FPR: ::c_int = 12; +pub const PT_WRITE_GPR: ::c_int = 14; +pub const PT_WRITE_FPR: ::c_int = 15; +pub const PT_READ_BLOCK: ::c_int = 17; +pub const PT_WRITE_BLOCK: ::c_int = 19; +pub const PT_ATTACH: ::c_int = 30; +pub const PT_DETACH: ::c_int = 31; +pub const PT_REGSET: ::c_int = 32; +pub const PT_REATT: ::c_int = 33; +pub const PT_LDINFO: ::c_int = 34; +pub const PT_MULTI: ::c_int = 35; +pub const PT_NEXT: ::c_int = 36; +pub const PT_SET: ::c_int = 37; +pub const PT_CLEAR: ::c_int = 38; +pub const PT_LDXINFO: ::c_int = 39; +pub const PT_QUERY: ::c_int = 40; +pub const PT_WATCH: ::c_int = 41; +pub const PTT_CONTINUE: ::c_int = 50; +pub const PTT_STEP: ::c_int = 51; +pub const PTT_READ_SPRS: ::c_int = 52; +pub const PTT_WRITE_SPRS: ::c_int = 53; +pub const PTT_READ_GPRS: ::c_int = 54; +pub const PTT_WRITE_GPRS: ::c_int = 55; +pub const PTT_READ_FPRS: ::c_int = 56; +pub const PTT_WRITE_FPRS: ::c_int = 57; +pub const PTT_READ_VEC: ::c_int = 58; +pub const PTT_WRITE_VEC: ::c_int = 59; +pub const PTT_WATCH: ::c_int = 60; +pub const PTT_SET_TRAP: ::c_int = 61; +pub const PTT_CLEAR_TRAP: ::c_int = 62; +pub const PTT_READ_UKEYSET: ::c_int = 63; +pub const PT_GET_UKEY: ::c_int = 64; +pub const PTT_READ_FPSCR_HI: ::c_int = 65; +pub const PTT_WRITE_FPSCR_HI: ::c_int = 66; +pub const PTT_READ_VSX: ::c_int = 67; +pub const PTT_WRITE_VSX: ::c_int = 68; +pub const PTT_READ_TM: ::c_int = 69; +pub const PTRACE_ATTACH: ::c_int = 14; +pub const PTRACE_CONT: ::c_int = 7; +pub const PTRACE_DETACH: ::c_int = 15; +pub const PTRACE_GETFPREGS: ::c_int = 12; +pub const PTRACE_GETREGS: ::c_int = 10; +pub const PTRACE_KILL: ::c_int = 8; +pub const PTRACE_PEEKDATA: ::c_int = 2; +pub const PTRACE_PEEKTEXT: ::c_int = 1; +pub const PTRACE_PEEKUSER: ::c_int = 3; +pub const PTRACE_POKEDATA: ::c_int = 5; +pub const PTRACE_POKETEXT: ::c_int = 4; +pub const PTRACE_POKEUSER: ::c_int = 6; +pub const PTRACE_SETFPREGS: ::c_int = 13; +pub const PTRACE_SETREGS: ::c_int = 11; +pub const PTRACE_SINGLESTEP: ::c_int = 9; +pub const PTRACE_SYSCALL: ::c_int = 16; +pub const PTRACE_TRACEME: ::c_int = 0; + +// sys/resource.h +pub const RLIMIT_CPU: ::c_int = 0; +pub const RLIMIT_FSIZE: ::c_int = 1; +pub const RLIMIT_DATA: ::c_int = 2; +pub const RLIMIT_STACK: ::c_int = 3; +pub const RLIMIT_CORE: ::c_int = 4; +pub const RLIMIT_RSS: ::c_int = 5; +pub const RLIMIT_AS: ::c_int = 6; +pub const RLIMIT_NOFILE: ::c_int = 7; +pub const RLIMIT_THREADS: ::c_int = 8; +pub const RLIMIT_NPROC: ::c_int = 9; +pub const RUSAGE_SELF: ::c_int = 0; +pub const RUSAGE_CHILDREN: ::c_int = -1; +pub const PRIO_PROCESS: ::c_int = 0; +pub const PRIO_PGRP: ::c_int = 1; +pub const PRIO_USER: ::c_int = 2; +pub const RUSAGE_THREAD: ::c_int = 1; +pub const RLIM_SAVED_MAX: ::c_ulong = RLIM_INFINITY - 1; +pub const RLIM_SAVED_CUR: ::c_ulong = RLIM_INFINITY - 2; +pub const RLIM_NLIMITS: ::c_int = 10; + +// sys/sched.h +pub const SCHED_OTHER: ::c_int = 0; +pub const SCHED_FIFO: ::c_int = 1; +pub const SCHED_RR: ::c_int = 2; +pub const SCHED_LOCAL: ::c_int = 3; +pub const SCHED_GLOBAL: ::c_int = 4; +pub const SCHED_FIFO2: ::c_int = 5; +pub const SCHED_FIFO3: ::c_int = 6; +pub const SCHED_FIFO4: ::c_int = 7; + +// sys/sem.h +pub const SEM_UNDO: ::c_int = 0o10000; +pub const GETNCNT: ::c_int = 3; +pub const GETPID: ::c_int = 4; +pub const GETVAL: ::c_int = 5; +pub const GETALL: ::c_int = 6; +pub const GETZCNT: ::c_int = 7; +pub const SETVAL: ::c_int = 8; +pub const SETALL: ::c_int = 9; + +// sys/shm.h +pub const SHMLBA: ::c_int = 0x10000000; +pub const SHMLBA_EXTSHM: ::c_int = 0x1000; +pub const SHM_SHMAT: ::c_int = 0x80000000; +pub const SHM_RDONLY: ::c_int = 0o10000; +pub const SHM_RND: ::c_int = 0o20000; +pub const SHM_PIN: ::c_int = 0o4000; +pub const SHM_LGPAGE: ::c_int = 0o20000000000; +pub const SHM_MAP: ::c_int = 0o4000; +pub const SHM_FMAP: ::c_int = 0o2000; +pub const SHM_COPY: ::c_int = 0o40000; +pub const SHM_CLEAR: ::c_int = 0; +pub const SHM_HGSEG: ::c_int = 0o10000000000; +pub const SHM_R: ::c_int = IPC_R; +pub const SHM_W: ::c_int = IPC_W; +pub const SHM_DEST: ::c_int = 0o2000; + +// sys/signal.h +pub const SA_ONSTACK: ::c_int = 0x00000001; +pub const SA_RESETHAND: ::c_int = 0x00000002; +pub const SA_RESTART: ::c_int = 0x00000008; +pub const SA_SIGINFO: ::c_int = 0x00000100; +pub const SA_NODEFER: ::c_int = 0x00000200; +pub const SA_NOCLDWAIT: ::c_int = 0x00000400; +pub const SA_NOCLDSTOP: ::c_int = 0x00000004; +pub const SS_ONSTACK: ::c_int = 0x00000001; +pub const SS_DISABLE: ::c_int = 0x00000002; +pub const SIGCHLD: ::c_int = 20; +pub const SIGBUS: ::c_int = 10; +pub const SIG_BLOCK: ::c_int = 0; +pub const SIG_UNBLOCK: ::c_int = 1; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIGEV_NONE: ::c_int = 1; +pub const SIGEV_SIGNAL: ::c_int = 2; +pub const SIGEV_THREAD: ::c_int = 3; +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGABRT: ::c_int = 6; +pub const SIGEMT: ::c_int = 7; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGSEGV: ::c_int = 11; +pub const SIGSYS: ::c_int = 12; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; +pub const SIGUSR1: ::c_int = 30; +pub const SIGUSR2: ::c_int = 31; +pub const SIGPWR: ::c_int = 29; +pub const SIGWINCH: ::c_int = 28; +pub const SIGURG: ::c_int = 16; +pub const SIGPOLL: ::c_int = SIGIO; +pub const SIGIO: ::c_int = 23; +pub const SIGSTOP: ::c_int = 17; +pub const SIGTSTP: ::c_int = 18; +pub const SIGCONT: ::c_int = 19; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGVTALRM: ::c_int = 34; +pub const SIGPROF: ::c_int = 32; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGTRAP: ::c_int = 5; +pub const SIGCLD: ::c_int = 20; +pub const SIGRTMAX: ::c_int = 57; +pub const SIGRTMIN: ::c_int = 50; +pub const SI_USER: ::c_int = 0; +pub const SI_UNDEFINED: ::c_int = 8; +pub const SI_EMPTY: ::c_int = 9; +pub const BUS_ADRALN: ::c_int = 1; +pub const BUS_ADRERR: ::c_int = 2; +pub const BUS_OBJERR: ::c_int = 3; +pub const BUS_UEGARD: ::c_int = 4; +pub const CLD_EXITED: ::c_int = 10; +pub const CLD_KILLED: ::c_int = 11; +pub const CLD_DUMPED: ::c_int = 12; +pub const CLD_TRAPPED: ::c_int = 13; +pub const CLD_STOPPED: ::c_int = 14; +pub const CLD_CONTINUED: ::c_int = 15; +pub const FPE_INTDIV: ::c_int = 20; +pub const FPE_INTOVF: ::c_int = 21; +pub const FPE_FLTDIV: ::c_int = 22; +pub const FPE_FLTOVF: ::c_int = 23; +pub const FPE_FLTUND: ::c_int = 24; +pub const FPE_FLTRES: ::c_int = 25; +pub const FPE_FLTINV: ::c_int = 26; +pub const FPE_FLTSUB: ::c_int = 27; +pub const ILL_ILLOPC: ::c_int = 30; +pub const ILL_ILLOPN: ::c_int = 31; +pub const ILL_ILLADR: ::c_int = 32; +pub const ILL_ILLTRP: ::c_int = 33; +pub const ILL_PRVOPC: ::c_int = 34; +pub const ILL_PRVREG: ::c_int = 35; +pub const ILL_COPROC: ::c_int = 36; +pub const ILL_BADSTK: ::c_int = 37; +pub const ILL_TMBADTHING: ::c_int = 38; +pub const POLL_IN: ::c_int = 40; +pub const POLL_OUT: ::c_int = 41; +pub const POLL_MSG: ::c_int = -3; +pub const POLL_ERR: ::c_int = 43; +pub const POLL_PRI: ::c_int = 44; +pub const POLL_HUP: ::c_int = 45; +pub const SEGV_MAPERR: ::c_int = 50; +pub const SEGV_ACCERR: ::c_int = 51; +pub const SEGV_KEYERR: ::c_int = 52; +pub const TRAP_BRKPT: ::c_int = 60; +pub const TRAP_TRACE: ::c_int = 61; +pub const SI_QUEUE: ::c_int = 71; +pub const SI_TIMER: ::c_int = 72; +pub const SI_ASYNCIO: ::c_int = 73; +pub const SI_MESGQ: ::c_int = 74; + +// sys/socket.h +pub const AF_UNSPEC: ::c_int = 0; +pub const AF_UNIX: ::c_int = 1; +pub const AF_INET: ::c_int = 2; +pub const AF_IMPLINK: ::c_int = 3; +pub const AF_PUP: ::c_int = 4; +pub const AF_CHAOS: ::c_int = 5; +pub const AF_NS: ::c_int = 6; +pub const AF_ECMA: ::c_int = 8; +pub const AF_DATAKIT: ::c_int = 9; +pub const AF_CCITT: ::c_int = 10; +pub const AF_SNA: ::c_int = 11; +pub const AF_DECnet: ::c_int = 12; +pub const AF_DLI: ::c_int = 13; +pub const AF_LAT: ::c_int = 14; +pub const SO_TIMESTAMPNS: ::c_int = 0x100a; +pub const SOMAXCONN: ::c_int = 1024; +pub const AF_LOCAL: ::c_int = AF_UNIX; +pub const UIO_MAXIOV: ::c_int = 1024; +pub const pseudo_AF_XTP: ::c_int = 19; +pub const AF_HYLINK: ::c_int = 15; +pub const AF_APPLETALK: ::c_int = 16; +pub const AF_ISO: ::c_int = 7; +pub const AF_OSI: ::c_int = AF_ISO; +pub const AF_ROUTE: ::c_int = 17; +pub const AF_LINK: ::c_int = 18; +pub const AF_INET6: ::c_int = 24; +pub const AF_INTF: ::c_int = 20; +pub const AF_RIF: ::c_int = 21; +pub const AF_NDD: ::c_int = 23; +pub const AF_MAX: ::c_int = 30; +pub const PF_UNSPEC: ::c_int = AF_UNSPEC; +pub const PF_UNIX: ::c_int = AF_UNIX; +pub const PF_INET: ::c_int = AF_INET; +pub const PF_IMPLINK: ::c_int = AF_IMPLINK; +pub const PF_PUP: ::c_int = AF_PUP; +pub const PF_CHAOS: ::c_int = AF_CHAOS; +pub const PF_NS: ::c_int = AF_NS; +pub const PF_ISO: ::c_int = AF_ISO; +pub const PF_OSI: ::c_int = AF_ISO; +pub const PF_ECMA: ::c_int = AF_ECMA; +pub const PF_DATAKIT: ::c_int = AF_DATAKIT; +pub const PF_CCITT: ::c_int = AF_CCITT; +pub const PF_SNA: ::c_int = AF_SNA; +pub const PF_DECnet: ::c_int = AF_DECnet; +pub const PF_DLI: ::c_int = AF_DLI; +pub const PF_LAT: ::c_int = AF_LAT; +pub const PF_HYLINK: ::c_int = AF_HYLINK; +pub const PF_APPLETALK: ::c_int = AF_APPLETALK; +pub const PF_ROUTE: ::c_int = AF_ROUTE; +pub const PF_LINK: ::c_int = AF_LINK; +pub const PF_XTP: ::c_int = 19; +pub const PF_RIF: ::c_int = AF_RIF; +pub const PF_INTF: ::c_int = AF_INTF; +pub const PF_NDD: ::c_int = AF_NDD; +pub const PF_INET6: ::c_int = AF_INET6; +pub const PF_MAX: ::c_int = AF_MAX; +pub const SF_CLOSE: ::c_int = 1; +pub const SF_REUSE: ::c_int = 2; +pub const SF_DONT_CACHE: ::c_int = 4; +pub const SF_SYNC_CACHE: ::c_int = 8; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_RAW: ::c_int = 3; +pub const SOCK_RDM: ::c_int = 4; +pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOL_SOCKET: ::c_int = 0xffff; +pub const SO_DEBUG: ::c_int = 0x0001; +pub const SO_ACCEPTCONN: ::c_int = 0x0002; +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_USELOOPBACK: ::c_int = 0x0040; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_OOBINLINE: ::c_int = 0x0100; +pub const SO_REUSEPORT: ::c_int = 0x0200; +pub const SO_USE_IFBUFS: ::c_int = 0x0400; +pub const SO_CKSUMRECV: ::c_int = 0x0800; +pub const SO_NOREUSEADDR: ::c_int = 0x1000; +pub const SO_KERNACCEPT: ::c_int = 0x2000; +pub const SO_NOMULTIPATH: ::c_int = 0x4000; +pub const SO_AUDIT: ::c_int = 0x8000; +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_SNDLOWAT: ::c_int = 0x1003; +pub const SO_RCVLOWAT: ::c_int = 0x1004; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_TYPE: ::c_int = 0x1008; +pub const SCM_RIGHTS: ::c_int = 0x01; +pub const MSG_OOB: ::c_int = 0x1; +pub const MSG_PEEK: ::c_int = 0x2; +pub const MSG_DONTROUTE: ::c_int = 0x4; +pub const MSG_EOR: ::c_int = 0x8; +pub const MSG_TRUNC: ::c_int = 0x10; +pub const MSG_CTRUNC: ::c_int = 0x20; +pub const MSG_WAITALL: ::c_int = 0x40; +pub const MSG_MPEG2: ::c_int = 0x80; +pub const MSG_NOSIGNAL: ::c_int = 0x100; +pub const MSG_WAITFORONE: ::c_int = 0x200; +pub const MSG_ARGEXT: ::c_int = 0x400; +pub const MSG_NONBLOCK: ::c_int = 0x4000; +pub const MSG_COMPAT: ::c_int = 0x8000; +pub const MSG_MAXIOVLEN: ::c_int = 16; +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; + +// sys/stat.h +pub const UTIME_NOW: ::c_int = -2; +pub const UTIME_OMIT: ::c_int = -3; + +// sys/statvfs.h +pub const ST_RDONLY: ::c_ulong = 0x0001; +pub const ST_NOSUID: ::c_ulong = 0x0040; +pub const ST_NODEV: ::c_ulong = 0x0080; + +// sys/stropts.h +pub const I_NREAD: ::c_int = 0x20005301; +pub const I_PUSH: ::c_int = 0x20005302; +pub const I_POP: ::c_int = 0x20005303; +pub const I_LOOK: ::c_int = 0x20005304; +pub const I_FLUSH: ::c_int = 0x20005305; +pub const I_SRDOPT: ::c_int = 0x20005306; +pub const I_GRDOPT: ::c_int = 0x20005307; +pub const I_STR: ::c_int = 0x20005308; +pub const I_SETSIG: ::c_int = 0x20005309; +pub const I_GETSIG: ::c_int = 0x2000530a; +pub const I_FIND: ::c_int = 0x2000530b; +pub const I_LINK: ::c_int = 0x2000530c; +pub const I_UNLINK: ::c_int = 0x2000530d; +pub const I_PEEK: ::c_int = 0x2000530f; +pub const I_FDINSERT: ::c_int = 0x20005310; +pub const I_SENDFD: ::c_int = 0x20005311; +pub const I_RECVFD: ::c_int = 0x20005312; +pub const I_SWROPT: ::c_int = 0x20005314; +pub const I_GWROPT: ::c_int = 0x20005315; +pub const I_LIST: ::c_int = 0x20005316; +pub const I_PLINK: ::c_int = 0x2000531d; +pub const I_PUNLINK: ::c_int = 0x2000531e; +pub const I_FLUSHBAND: ::c_int = 0x20005313; +pub const I_CKBAND: ::c_int = 0x20005318; +pub const I_GETBAND: ::c_int = 0x20005319; +pub const I_ATMARK: ::c_int = 0x20005317; +pub const I_SETCLTIME: ::c_int = 0x2000531b; +pub const I_GETCLTIME: ::c_int = 0x2000531c; +pub const I_CANPUT: ::c_int = 0x2000531a; + +// sys/syslog.h +pub const LOG_CRON: ::c_int = 9 << 3; +pub const LOG_AUTHPRIV: ::c_int = 10 << 3; +pub const LOG_NFACILITIES: ::c_int = 24; +pub const LOG_PERROR: ::c_int = 0x20; + +// sys/systemcfg.h +pub const SC_ARCH: ::c_int = 1; +pub const SC_IMPL: ::c_int = 2; +pub const SC_VERS: ::c_int = 3; +pub const SC_WIDTH: ::c_int = 4; +pub const SC_NCPUS: ::c_int = 5; +pub const SC_L1C_ATTR: ::c_int = 6; +pub const SC_L1C_ISZ: ::c_int = 7; +pub const SC_L1C_DSZ: ::c_int = 8; +pub const SC_L1C_ICA: ::c_int = 9; +pub const SC_L1C_DCA: ::c_int = 10; +pub const SC_L1C_IBS: ::c_int = 11; +pub const SC_L1C_DBS: ::c_int = 12; +pub const SC_L1C_ILS: ::c_int = 13; +pub const SC_L1C_DLS: ::c_int = 14; +pub const SC_L2C_SZ: ::c_int = 15; +pub const SC_L2C_AS: ::c_int = 16; +pub const SC_TLB_ATTR: ::c_int = 17; +pub const SC_ITLB_SZ: ::c_int = 18; +pub const SC_DTLB_SZ: ::c_int = 19; +pub const SC_ITLB_ATT: ::c_int = 20; +pub const SC_DTLB_ATT: ::c_int = 21; +pub const SC_RESRV_SZ: ::c_int = 22; +pub const SC_PRI_LC: ::c_int = 23; +pub const SC_PRO_LC: ::c_int = 24; +pub const SC_RTC_TYPE: ::c_int = 25; +pub const SC_VIRT_AL: ::c_int = 26; +pub const SC_CAC_CONG: ::c_int = 27; +pub const SC_MOD_ARCH: ::c_int = 28; +pub const SC_MOD_IMPL: ::c_int = 29; +pub const SC_XINT: ::c_int = 30; +pub const SC_XFRAC: ::c_int = 31; +pub const SC_KRN_ATTR: ::c_int = 32; +pub const SC_PHYSMEM: ::c_int = 33; +pub const SC_SLB_ATTR: ::c_int = 34; +pub const SC_SLB_SZ: ::c_int = 35; +pub const SC_MAX_NCPUS: ::c_int = 37; +pub const SC_MAX_REALADDR: ::c_int = 38; +pub const SC_ORIG_ENT_CAP: ::c_int = 39; +pub const SC_ENT_CAP: ::c_int = 40; +pub const SC_DISP_WHE: ::c_int = 41; +pub const SC_CAPINC: ::c_int = 42; +pub const SC_VCAPW: ::c_int = 43; +pub const SC_SPLP_STAT: ::c_int = 44; +pub const SC_SMT_STAT: ::c_int = 45; +pub const SC_SMT_TC: ::c_int = 46; +pub const SC_VMX_VER: ::c_int = 47; +pub const SC_LMB_SZ: ::c_int = 48; +pub const SC_MAX_XCPU: ::c_int = 49; +pub const SC_EC_LVL: ::c_int = 50; +pub const SC_AME_STAT: ::c_int = 51; +pub const SC_ECO_STAT: ::c_int = 52; +pub const SC_DFP_VER: ::c_int = 53; +pub const SC_VRM_STAT: ::c_int = 54; +pub const SC_PHYS_IMP: ::c_int = 55; +pub const SC_PHYS_VER: ::c_int = 56; +pub const SC_SPCM_STATUS: ::c_int = 57; +pub const SC_SPCM_MAX: ::c_int = 58; +pub const SC_TM_VER: ::c_int = 59; +pub const SC_NX_CAP: ::c_int = 60; +pub const SC_PKS_STATE: ::c_int = 61; +pub const SC_MMA_VER: ::c_int = 62; +pub const POWER_RS: ::c_int = 1; +pub const POWER_PC: ::c_int = 2; +pub const IA64: ::c_int = 3; +pub const POWER_RS1: ::c_int = 0x1; +pub const POWER_RSC: ::c_int = 0x2; +pub const POWER_RS2: ::c_int = 0x4; +pub const POWER_601: ::c_int = 0x8; +pub const POWER_604: ::c_int = 0x10; +pub const POWER_603: ::c_int = 0x20; +pub const POWER_620: ::c_int = 0x40; +pub const POWER_630: ::c_int = 0x80; +pub const POWER_A35: ::c_int = 0x100; +pub const POWER_RS64II: ::c_int = 0x200; +pub const POWER_RS64III: ::c_int = 0x400; +pub const POWER_4: ::c_int = 0x800; +pub const POWER_RS64IV: ::c_int = POWER_4; +pub const POWER_MPC7450: ::c_int = 0x1000; +pub const POWER_5: ::c_int = 0x2000; +pub const POWER_6: ::c_int = 0x4000; +pub const POWER_7: ::c_int = 0x8000; +pub const POWER_8: ::c_int = 0x10000; +pub const POWER_9: ::c_int = 0x20000; + +// sys/time.h +pub const FD_SETSIZE: usize = 65534; +pub const TIMEOFDAY: ::c_int = 9; +pub const CLOCK_REALTIME: ::clockid_t = TIMEOFDAY as clockid_t; +pub const CLOCK_MONOTONIC: ::clockid_t = 10; +pub const TIMER_ABSTIME: ::c_int = 999; +pub const ITIMER_REAL: ::c_int = 0; +pub const ITIMER_VIRTUAL: ::c_int = 1; +pub const ITIMER_PROF: ::c_int = 2; +pub const ITIMER_VIRT: ::c_int = 3; +pub const ITIMER_REAL1: ::c_int = 20; +pub const ITIMER_REAL_TH: ::c_int = ITIMER_REAL1; +pub const DST_AUST: ::c_int = 2; +pub const DST_CAN: ::c_int = 6; +pub const DST_EET: ::c_int = 5; +pub const DST_MET: ::c_int = 4; +pub const DST_NONE: ::c_int = 0; +pub const DST_USA: ::c_int = 1; +pub const DST_WET: ::c_int = 3; + +// sys/termio.h +pub const CSTART: ::tcflag_t = 0o21; +pub const CSTOP: ::tcflag_t = 0o23; +pub const TCGETA: ::c_int = TIOC | 5; +pub const TCSETA: ::c_int = TIOC | 6; +pub const TCSETAW: ::c_int = TIOC | 7; +pub const TCSETAF: ::c_int = TIOC | 8; +pub const TCSBRK: ::c_int = TIOC | 9; +pub const TCXONC: ::c_int = TIOC | 11; +pub const TCFLSH: ::c_int = TIOC | 12; +pub const TCGETS: ::c_int = TIOC | 1; +pub const TCSETS: ::c_int = TIOC | 2; +pub const TCSANOW: ::c_int = 0; +pub const TCSETSW: ::c_int = TIOC | 3; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSETSF: ::c_int = TIOC | 4; +pub const TCSAFLUSH: ::c_int = 2; +pub const TCIFLUSH: ::c_int = 0; +pub const TCOFLUSH: ::c_int = 1; +pub const TCIOFLUSH: ::c_int = 2; +pub const TCOOFF: ::c_int = 0; +pub const TCOON: ::c_int = 1; +pub const TCIOFF: ::c_int = 2; +pub const TCION: ::c_int = 3; +pub const TIOC: ::c_int = 0x5400; +pub const TIOCGWINSZ: ::c_int = 0x40087468; +pub const TIOCSWINSZ: ::c_int = 0x80087467; +pub const TIOCLBIS: ::c_int = 0x8004747f; +pub const TIOCLBIC: ::c_int = 0x8004747e; +pub const TIOCLSET: ::c_int = 0x8004747d; +pub const TIOCLGET: ::c_int = 0x4004747c; +pub const TIOCSBRK: ::c_int = 0x2000747b; +pub const TIOCCBRK: ::c_int = 0x2000747a; +pub const TIOCSDTR: ::c_int = 0x20007479; +pub const TIOCCDTR: ::c_int = 0x20007478; +pub const TIOCSLTC: ::c_int = 0x80067475; +pub const TIOCGLTC: ::c_int = 0x40067474; +pub const TIOCOUTQ: ::c_int = 0x40047473; +pub const TIOCNOTTY: ::c_int = 0x20007471; +pub const TIOCSTOP: ::c_int = 0x2000746f; +pub const TIOCSTART: ::c_int = 0x2000746e; +pub const TIOCGPGRP: ::c_int = 0x40047477; +pub const TIOCSPGRP: ::c_int = 0x80047476; +pub const TIOCGSID: ::c_int = 0x40047448; +pub const TIOCSTI: ::c_int = 0x80017472; +pub const TIOCMSET: ::c_int = 0x8004746d; +pub const TIOCMBIS: ::c_int = 0x8004746c; +pub const TIOCMBIC: ::c_int = 0x8004746b; +pub const TIOCMGET: ::c_int = 0x4004746a; +pub const TIOCREMOTE: ::c_int = 0x80047469; + +// sys/user.h +pub const MAXCOMLEN: ::c_int = 32; +pub const UF_SYSTEM: ::c_int = 0x1000; + +// sys/vattr.h +pub const AT_FLAGS: ::c_int = 0x80; +pub const AT_GID: ::c_int = 8; +pub const AT_UID: ::c_int = 4; + +// sys/wait.h +pub const P_ALL: ::c_int = 0; +pub const P_PID: ::c_int = 1; +pub const P_PGID: ::c_int = 2; +pub const WNOHANG: ::c_int = 0x1; +pub const WUNTRACED: ::c_int = 0x2; +pub const WEXITED: ::c_int = 0x04; +pub const WCONTINUED: ::c_int = 0x01000000; +pub const WNOWAIT: ::c_int = 0x10; +pub const WSTOPPED: ::c_int = _W_STOPPED; +pub const _W_STOPPED: ::c_int = 0x00000040; +pub const _W_SLWTED: ::c_int = 0x0000007c; +pub const _W_SEWTED: ::c_int = 0x0000007d; +pub const _W_SFWTED: ::c_int = 0x0000007e; +pub const _W_STRC: ::c_int = 0x0000007f; + +// termios.h +pub const NCCS: usize = 16; +pub const OLCUC: ::tcflag_t = 2; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS5: ::tcflag_t = 0x00000000; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const ECHO: ::tcflag_t = 0x20000; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOCTL: ::tcflag_t = 0x00020000; +pub const ECHOPRT: ::tcflag_t = 0x00040000; +pub const ECHOKE: ::tcflag_t = 0x00080000; +pub const IGNBRK: ::tcflag_t = 0x00000001; +pub const BRKINT: ::tcflag_t = 0x00000002; +pub const IGNPAR: ::tcflag_t = 0x00000004; +pub const PARMRK: ::tcflag_t = 0x00000008; +pub const INPCK: ::tcflag_t = 0x00000010; +pub const ISTRIP: ::tcflag_t = 0x00000020; +pub const INLCR: ::tcflag_t = 0x00000040; +pub const IGNCR: ::tcflag_t = 0x00000080; +pub const ICRNL: ::tcflag_t = 0x00000100; +pub const IXON: ::tcflag_t = 0x0001; +pub const IXOFF: ::tcflag_t = 0x00000400; +pub const IXANY: ::tcflag_t = 0x00001000; +pub const IMAXBEL: ::tcflag_t = 0x00010000; +pub const OPOST: ::tcflag_t = 0x00000001; +pub const ONLCR: ::tcflag_t = 0x00000004; +pub const OCRNL: ::tcflag_t = 0x00000008; +pub const ONOCR: ::tcflag_t = 0x00000010; +pub const ONLRET: ::tcflag_t = 0x00000020; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const IEXTEN: ::tcflag_t = 0x00200000; +pub const TOSTOP: ::tcflag_t = 0x00010000; +pub const FLUSHO: ::tcflag_t = 0x00100000; +pub const PENDIN: ::tcflag_t = 0x20000000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const VINTR: usize = 0; +pub const VQUIT: usize = 1; +pub const VERASE: usize = 2; +pub const VKILL: usize = 3; +pub const VEOF: usize = 4; +pub const VEOL: usize = 5; +pub const VSTART: usize = 7; +pub const VSTOP: usize = 8; +pub const VSUSP: usize = 9; +pub const VMIN: usize = 4; +pub const VTIME: usize = 5; +pub const VEOL2: usize = 6; +pub const VDSUSP: usize = 10; +pub const VREPRINT: usize = 11; +pub const VDISCRD: usize = 12; +pub const VWERSE: usize = 13; +pub const VLNEXT: usize = 14; +pub const B0: ::speed_t = 0x0; +pub const B50: ::speed_t = 0x1; +pub const B75: ::speed_t = 0x2; +pub const B110: ::speed_t = 0x3; +pub const B134: ::speed_t = 0x4; +pub const B150: ::speed_t = 0x5; +pub const B200: ::speed_t = 0x6; +pub const B300: ::speed_t = 0x7; +pub const B600: ::speed_t = 0x8; +pub const B1200: ::speed_t = 0x9; +pub const B1800: ::speed_t = 0xa; +pub const B2400: ::speed_t = 0xb; +pub const B4800: ::speed_t = 0xc; +pub const B9600: ::speed_t = 0xd; +pub const B19200: ::speed_t = 0xe; +pub const B38400: ::speed_t = 0xf; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const IUCLC: ::tcflag_t = 0x00000800; +pub const OFILL: ::tcflag_t = 0x00000040; +pub const OFDEL: ::tcflag_t = 0x00000080; +pub const CRDLY: ::tcflag_t = 0x00000300; +pub const CR0: ::tcflag_t = 0x00000000; +pub const CR1: ::tcflag_t = 0x00000100; +pub const CR2: ::tcflag_t = 0x00000200; +pub const CR3: ::tcflag_t = 0x00000300; +pub const TABDLY: ::tcflag_t = 0x00000c00; +pub const TAB0: ::tcflag_t = 0x00000000; +pub const TAB1: ::tcflag_t = 0x00000400; +pub const TAB2: ::tcflag_t = 0x00000800; +pub const TAB3: ::tcflag_t = 0x00000c00; +pub const BSDLY: ::tcflag_t = 0x00001000; +pub const BS0: ::tcflag_t = 0x00000000; +pub const BS1: ::tcflag_t = 0x00001000; +pub const FFDLY: ::tcflag_t = 0x00002000; +pub const FF0: ::tcflag_t = 0x00000000; +pub const FF1: ::tcflag_t = 0x00002000; +pub const NLDLY: ::tcflag_t = 0x00004000; +pub const NL0: ::tcflag_t = 0x00000000; +pub const NL1: ::tcflag_t = 0x00004000; +pub const VTDLY: ::tcflag_t = 0x00008000; +pub const VT0: ::tcflag_t = 0x00000000; +pub const VT1: ::tcflag_t = 0x00008000; +pub const OXTABS: ::tcflag_t = 0x00040000; +pub const ONOEOT: ::tcflag_t = 0x00080000; +pub const CBAUD: ::tcflag_t = 0x0000000f; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const CIBAUD: ::tcflag_t = 0x000f0000; +pub const IBSHIFT: ::tcflag_t = 16; +pub const PAREXT: ::tcflag_t = 0x00100000; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const XCASE: ::tcflag_t = 0x00000004; +pub const ALTWERASE: ::tcflag_t = 0x00400000; + +// time.h +pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 11; +pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 12; + +// unistd.h +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; +pub const _POSIX_VDISABLE: ::c_int = 0xff; +pub const _PC_LINK_MAX: ::c_int = 11; +pub const _PC_MAX_CANON: ::c_int = 12; +pub const _PC_MAX_INPUT: ::c_int = 13; +pub const _PC_NAME_MAX: ::c_int = 14; +pub const _PC_PATH_MAX: ::c_int = 16; +pub const _PC_PIPE_BUF: ::c_int = 17; +pub const _PC_NO_TRUNC: ::c_int = 15; +pub const _PC_VDISABLE: ::c_int = 18; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 10; +pub const _PC_ASYNC_IO: ::c_int = 19; +pub const _PC_PRIO_IO: ::c_int = 21; +pub const _PC_SYNC_IO: ::c_int = 20; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 26; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 27; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 28; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 29; +pub const _PC_REC_XFER_ALIGN: ::c_int = 30; +pub const _PC_SYMLINK_MAX: ::c_int = 25; +pub const _PC_2_SYMLINKS: ::c_int = 31; +pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 32; +pub const _PC_FILESIZEBITS: ::c_int = 22; +pub const _SC_ARG_MAX: ::c_int = 0; +pub const _SC_CHILD_MAX: ::c_int = 1; +pub const _SC_CLK_TCK: ::c_int = 2; +pub const _SC_NGROUPS_MAX: ::c_int = 3; +pub const _SC_OPEN_MAX: ::c_int = 4; +pub const _SC_JOB_CONTROL: ::c_int = 7; +pub const _SC_SAVED_IDS: ::c_int = 8; +pub const _SC_VERSION: ::c_int = 9; +pub const _SC_PASS_MAX: ::c_int = 45; +pub const _SC_PAGESIZE: ::c_int = _SC_PAGE_SIZE; +pub const _SC_PAGE_SIZE: ::c_int = 48; +pub const _SC_XOPEN_VERSION: ::c_int = 46; +pub const _SC_NPROCESSORS_CONF: ::c_int = 71; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 72; +pub const _SC_STREAM_MAX: ::c_int = 5; +pub const _SC_TZNAME_MAX: ::c_int = 6; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 75; +pub const _SC_AIO_MAX: ::c_int = 76; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 77; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 78; +pub const _SC_DELAYTIMER_MAX: ::c_int = 79; +pub const _SC_FSYNC: ::c_int = 80; +pub const _SC_MAPPED_FILES: ::c_int = 84; +pub const _SC_MEMLOCK: ::c_int = 85; +pub const _SC_MEMLOCK_RANGE: ::c_int = 86; +pub const _SC_MEMORY_PROTECTION: ::c_int = 87; +pub const _SC_MESSAGE_PASSING: ::c_int = 88; +pub const _SC_MQ_OPEN_MAX: ::c_int = 89; +pub const _SC_MQ_PRIO_MAX: ::c_int = 90; +pub const _SC_PRIORITIZED_IO: ::c_int = 91; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 92; +pub const _SC_REALTIME_SIGNALS: ::c_int = 93; +pub const _SC_RTSIG_MAX: ::c_int = 94; +pub const _SC_SEMAPHORES: ::c_int = 95; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 96; +pub const _SC_SEM_VALUE_MAX: ::c_int = 97; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 98; +pub const _SC_SIGQUEUE_MAX: ::c_int = 99; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 100; +pub const _SC_TIMERS: ::c_int = 102; +pub const _SC_TIMER_MAX: ::c_int = 103; +pub const _SC_2_C_BIND: ::c_int = 51; +pub const _SC_2_C_DEV: ::c_int = 32; +pub const _SC_2_C_VERSION: ::c_int = 52; +pub const _SC_2_FORT_DEV: ::c_int = 33; +pub const _SC_2_FORT_RUN: ::c_int = 34; +pub const _SC_2_LOCALEDEF: ::c_int = 35; +pub const _SC_2_SW_DEV: ::c_int = 36; +pub const _SC_2_UPE: ::c_int = 53; +pub const _SC_2_VERSION: ::c_int = 31; +pub const _SC_BC_BASE_MAX: ::c_int = 23; +pub const _SC_BC_DIM_MAX: ::c_int = 24; +pub const _SC_BC_SCALE_MAX: ::c_int = 25; +pub const _SC_BC_STRING_MAX: ::c_int = 26; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 50; +pub const _SC_EXPR_NEST_MAX: ::c_int = 28; +pub const _SC_LINE_MAX: ::c_int = 29; +pub const _SC_RE_DUP_MAX: ::c_int = 30; +pub const _SC_XOPEN_CRYPT: ::c_int = 56; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 57; +pub const _SC_XOPEN_SHM: ::c_int = 55; +pub const _SC_2_CHAR_TERM: ::c_int = 54; +pub const _SC_XOPEN_XCU_VERSION: ::c_int = 109; +pub const _SC_ATEXIT_MAX: ::c_int = 47; +pub const _SC_IOV_MAX: ::c_int = 58; +pub const _SC_XOPEN_UNIX: ::c_int = 73; +pub const _SC_T_IOV_MAX: ::c_int = 0; +pub const _SC_PHYS_PAGES: ::c_int = 113; +pub const _SC_AVPHYS_PAGES: ::c_int = 114; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 101; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 81; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 82; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 83; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 68; +pub const _SC_THREAD_STACK_MIN: ::c_int = 69; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 70; +pub const _SC_TTY_NAME_MAX: ::c_int = 104; +pub const _SC_THREADS: ::c_int = 60; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 61; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 62; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 64; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 65; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 66; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 59; +pub const _SC_XOPEN_LEGACY: ::c_int = 112; +pub const _SC_XOPEN_REALTIME: ::c_int = 110; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 111; +pub const _SC_XBS5_ILP32_OFF32: ::c_int = 105; +pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 106; +pub const _SC_XBS5_LP64_OFF64: ::c_int = 107; +pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 108; +pub const _SC_2_PBS: ::c_int = 132; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 133; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 134; +pub const _SC_2_PBS_LOCATE: ::c_int = 135; +pub const _SC_2_PBS_MESSAGE: ::c_int = 136; +pub const _SC_2_PBS_TRACK: ::c_int = 137; +pub const _SC_ADVISORY_INFO: ::c_int = 130; +pub const _SC_BARRIERS: ::c_int = 138; +pub const _SC_CLOCK_SELECTION: ::c_int = 139; +pub const _SC_CPUTIME: ::c_int = 140; +pub const _SC_HOST_NAME_MAX: ::c_int = 126; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 141; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 142; +pub const _SC_REGEXP: ::c_int = 127; +pub const _SC_SHELL: ::c_int = 128; +pub const _SC_SPAWN: ::c_int = 143; +pub const _SC_SPIN_LOCKS: ::c_int = 144; +pub const _SC_SPORADIC_SERVER: ::c_int = 145; +pub const _SC_SS_REPL_MAX: ::c_int = 156; +pub const _SC_SYMLOOP_MAX: ::c_int = 129; +pub const _SC_THREAD_CPUTIME: ::c_int = 146; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 147; +pub const _SC_TIMEOUTS: ::c_int = 148; +pub const _SC_TRACE: ::c_int = 149; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 150; +pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 157; +pub const _SC_TRACE_INHERIT: ::c_int = 151; +pub const _SC_TRACE_LOG: ::c_int = 152; +pub const _SC_TRACE_NAME_MAX: ::c_int = 158; +pub const _SC_TRACE_SYS_MAX: ::c_int = 159; +pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 160; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 153; +pub const _SC_V6_ILP32_OFF32: ::c_int = 121; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 122; +pub const _SC_V6_LP64_OFF64: ::c_int = 123; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 124; +pub const _SC_XOPEN_STREAMS: ::c_int = 125; +pub const _SC_IPV6: ::c_int = 154; +pub const _SC_RAW_SOCKETS: ::c_int = 155; + +// utmp.h +pub const EMPTY: ::c_short = -1; +pub const RUN_LVL: ::c_short = 1; +pub const BOOT_TIME: ::c_short = 2; +pub const OLD_TIME: ::c_short = 3; +pub const NEW_TIME: ::c_short = 4; +pub const INIT_PROCESS: ::c_short = 5; +pub const LOGIN_PROCESS: ::c_short = 6; +pub const USER_PROCESS: ::c_short = 7; +pub const DEAD_PROCESS: ::c_short = 8; +pub const ACCOUNTING: ::c_short = 9; + +f! { + pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { + if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { + (*mhdr).msg_control as *mut cmsghdr + } else { + 0 as *mut cmsghdr + } + } + + pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { + if cmsg.is_null() { + CMSG_FIRSTHDR(mhdr) + } else { + if (cmsg as usize + (*cmsg).cmsg_len as usize + ::mem::size_of::<::cmsghdr>()) > + ((*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize) { + 0 as *mut ::cmsghdr + } else { + // AIX does not have any alignment/padding for ancillary data, so we don't need _CMSG_ALIGN here. + (cmsg as usize + (*cmsg).cmsg_len as usize) as *mut cmsghdr + } + } + } + + pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { + (cmsg as *mut ::c_uchar).offset(::mem::size_of::<::cmsghdr>() as isize) + } + + pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { + ::mem::size_of::<::cmsghdr>() as ::c_uint + length + } + + pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + ::mem::size_of::<::cmsghdr>() as ::c_uint + length + } + + pub fn FD_ZERO(set: *mut fd_set) -> () { + for slot in (*set).fds_bits.iter_mut() { + *slot = 0; + } + } + + pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + let bits = ::mem::size_of::<::c_long>() * 8; + let fd = fd as usize; + (*set).fds_bits[fd / bits] |= 1 << (fd % bits); + return + } + + pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + let bits = ::mem::size_of::<::c_long>() * 8; + let fd = fd as usize; + (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); + return + } + + pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + let bits = ::mem::size_of::<::c_long>() * 8; + let fd = fd as usize; + return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0 + } + + pub fn major(dev: ::dev_t) -> ::c_uint { + let x = dev >> 16; + x as ::c_uint + } + + pub fn minor(dev: ::dev_t) -> ::c_uint { + let y = dev & 0xFFFF; + y as ::c_uint + } + + pub fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + let mut dev = 0; + dev |= major << 16; + dev |= minor; + dev + } +} + +safe_f! { + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + (status & _W_STOPPED) != 0 + } + + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + if WIFSTOPPED(status) { + (((status as ::c_uint) >> 8) & 0xff) as ::c_int + } else { + -1 + } + } + + pub {const} fn WIFEXITED(status: ::c_int) -> bool { + (status & 0xFF) == 0 + } + + pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + if WIFEXITED(status) { + (((status as ::c_uint) >> 8) & 0xff) as ::c_int + } else { + -1 + } + } + + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + !WIFEXITED(status) && !WIFSTOPPED(status) + } + + pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + if WIFSIGNALED(status) { + (((status as ::c_uint) >> 16) & 0xff) as ::c_int + } else { + -1 + } + } + + pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + (status & WCONTINUED) != 0 + } + + // AIX doesn't have native WCOREDUMP. + pub {const} fn WCOREDUMP(_status: ::c_int) -> bool { + false + } +} + +#[link(name = "thread")] +extern "C" { + pub fn thr_kill(id: thread_t, sig: ::c_int) -> ::c_int; + pub fn thr_self() -> thread_t; +} + +#[link(name = "pthread")] +extern "C" { + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_attr_getschedparam( + attr: *const ::pthread_attr_t, + param: *mut sched_param, + ) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_attr_setschedparam( + attr: *mut ::pthread_attr_t, + param: *const sched_param, + ) -> ::c_int; + pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; + pub fn pthread_barrier_init( + barrier: *mut pthread_barrier_t, + attr: *const ::pthread_barrierattr_t, + count: ::c_uint, + ) -> ::c_int; + pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; + pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_getpshared( + attr: *const ::pthread_barrierattr_t, + shared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_setpshared( + attr: *mut ::pthread_barrierattr_t, + shared: ::c_int, + ) -> ::c_int; + pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_getpshared( + attr: *const pthread_condattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + pub fn pthread_getattr_np(native: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; + pub fn pthread_getschedparam( + thread: ::pthread_t, + policy: *mut ::c_int, + param: *mut sched_param, + ) -> ::c_int; + pub fn pthread_kill(thread: ::pthread_t, signal: ::c_int) -> ::c_int; + pub fn pthread_mutex_consistent(mutex: *mut ::pthread_mutex_t) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn pthread_mutexattr_getprotocol( + attr: *const pthread_mutexattr_t, + protocol: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_getpshared( + attr: *const pthread_mutexattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_getrobust( + attr: *mut ::pthread_mutexattr_t, + robust: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setprotocol( + attr: *mut pthread_mutexattr_t, + protocol: ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setpshared( + attr: *mut pthread_mutexattr_t, + pshared: ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setrobust( + attr: *mut ::pthread_mutexattr_t, + robust: ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_getpshared( + attr: *const pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; + pub fn pthread_setschedparam( + thread: ::pthread_t, + policy: ::c_int, + param: *const sched_param, + ) -> ::c_int; + pub fn pthread_setschedprio(native: ::pthread_t, priority: ::c_int) -> ::c_int; + pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; + pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> ::c_int; +} + +#[link(name = "iconv")] +extern "C" { + pub fn iconv( + cd: iconv_t, + inbuf: *mut *mut ::c_char, + inbytesleft: *mut ::size_t, + outbuf: *mut *mut ::c_char, + outbytesleft: *mut ::size_t, + ) -> ::size_t; + pub fn iconv_close(cd: iconv_t) -> ::c_int; + pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; +} + +extern "C" { + pub fn acct(filename: *const ::c_char) -> ::c_int; + pub fn aio_cancel(fildes: ::c_int, aiocbp: *mut ::aiocb) -> ::c_int; + pub fn aio_error(aiocbp: *mut ::aiocb) -> ::c_int; + #[link_name = "_posix_aio_fsync"] + pub fn aio_fsync(op: ::c_int, aiocbp: *mut ::aiocb) -> ::c_int; + pub fn aio_read(aiocbp: *mut ::aiocb) -> ::c_int; + // pub fn aio_suspend + // pub fn aio_write + pub fn basename(path: *mut ::c_char) -> *mut ::c_char; + pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; + pub fn brk(addr: *mut ::c_void) -> ::c_int; + pub fn clearenv() -> ::c_int; + pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; + pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn creat64(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; + pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; + pub fn drand48() -> ::c_double; + pub fn duplocale(arg1: ::locale_t) -> ::locale_t; + pub fn endgrent(); + pub fn endmntent(streamp: *mut ::FILE) -> ::c_int; + pub fn endpwent(); + pub fn endutent(); + pub fn endutxent(); + pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; + pub fn faccessat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; + pub fn fdatasync(fd: ::c_int) -> ::c_int; + pub fn fexecve( + fd: ::c_int, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + pub fn ffs(value: ::c_int) -> ::c_int; + pub fn ffsl(value: ::c_long) -> ::c_int; + pub fn ffsll(value: ::c_longlong) -> ::c_int; + pub fn fgetgrent(file: *mut ::FILE) -> *mut ::group; + pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; + pub fn fgetpwent(file: *mut ::FILE) -> *mut ::passwd; + pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn freelocale(loc: ::locale_t); + pub fn freopen64( + filename: *const c_char, + mode: *const c_char, + file: *mut ::FILE, + ) -> *mut ::FILE; + pub fn fseeko64(stream: *mut ::FILE, offset: ::off64_t, whence: ::c_int) -> ::c_int; + pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; + pub fn fstat64(fildes: ::c_int, buf: *mut stat64) -> ::c_int; + pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; + pub fn fstatfs64(fd: ::c_int, buf: *mut statfs64) -> ::c_int; + pub fn fstatvfs64(fd: ::c_int, buf: *mut statvfs64) -> ::c_int; + pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; + pub fn ftok(path: *const ::c_char, id: ::c_int) -> ::key_t; + pub fn ftruncate64(fd: ::c_int, length: off64_t) -> ::c_int; + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; + pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int; + pub fn getdtablesize() -> ::c_int; + pub fn getgrent() -> *mut ::group; + pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn getgrset(user: *mut ::c_char) -> *mut ::c_char; + pub fn gethostid() -> ::c_long; + pub fn getmntent(stream: *mut ::FILE) -> *mut ::mntent; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::size_t, + host: *mut ::c_char, + hostlen: ::size_t, + serv: *mut ::c_char, + sevlen: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn getpagesize() -> ::c_int; + pub fn getpeereid(socket: ::c_int, euid: *mut ::uid_t, egid: *mut ::gid_t) -> ::c_int; + pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; + pub fn getpwent() -> *mut ::passwd; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; + pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int; + pub fn getutent() -> *mut utmp; + pub fn getutid(u: *const utmp) -> *mut utmp; + pub fn getutline(u: *const utmp) -> *mut utmp; + pub fn getutxent() -> *mut utmpx; + pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + pub fn glob( + pattern: *const ::c_char, + flags: ::c_int, + errfunc: ::Option ::c_int>, + pglob: *mut ::glob_t, + ) -> ::c_int; + pub fn globfree(pglob: *mut ::glob_t); + pub fn hasmntopt(mnt: *const ::mntent, opt: *const ::c_char) -> *mut ::c_char; + pub fn hcreate(nelt: ::size_t) -> ::c_int; + pub fn hdestroy(); + pub fn hsearch(entry: entry, action: ::c_int) -> *mut entry; + pub fn if_freenameindex(ptr: *mut if_nameindex); + pub fn if_nameindex() -> *mut if_nameindex; + pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; + pub fn ioctl(fildes: ::c_int, request: ::c_int, ...) -> ::c_int; + pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; + pub fn lcong48(p: *mut ::c_ushort); + pub fn lfind( + key: *const ::c_void, + base: *const ::c_void, + nelp: *mut ::size_t, + width: ::size_t, + compar: ::Option ::c_int>, + ) -> *mut ::c_void; + pub fn lio_listio( + mode: ::c_int, + aiocb_list: *const *mut aiocb, + nitems: ::c_int, + sevp: *mut sigevent, + ) -> ::c_int; + pub fn loadquery(flags: ::c_int, buf: *mut ::c_char, buflen: ::c_uint) -> ::c_int; + pub fn lpar_get_info(command: ::c_int, buf: *mut ::c_void, bufsize: ::size_t) -> ::c_int; + pub fn lpar_set_resources(id: ::c_int, resource: *mut ::c_void) -> ::c_int; + pub fn lrand48() -> c_long; + pub fn lsearch( + key: *const ::c_void, + base: *mut ::c_void, + nelp: *mut ::size_t, + width: ::size_t, + compar: ::Option ::c_int>, + ) -> *mut ::c_void; + pub fn lseek64(fd: ::c_int, offset: off64_t, whence: ::c_int) -> off64_t; + pub fn lstat64(path: *const c_char, buf: *mut stat64) -> ::c_int; + pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn makecontext(ucp: *mut ::ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); + pub fn mallinfo() -> ::mallinfo; + pub fn mallopt(param: ::c_int, value: ::c_int) -> ::c_int; + pub fn memmem( + haystack: *const ::c_void, + haystacklen: ::size_t, + needle: *const ::c_void, + needlelen: ::size_t, + ) -> *mut ::c_void; + pub fn memset_s(s: *mut ::c_void, smax: ::size_t, c: ::c_int, n: ::size_t) -> ::c_int; + pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; + pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + pub fn mount(device: *const ::c_char, path: *const ::c_char, flags: ::c_int) -> ::c_int; + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn mq_close(mqd: ::mqd_t) -> ::c_int; + pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; + pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) -> ::c_int; + pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; + pub fn mq_receive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + ) -> ::ssize_t; + pub fn mq_send( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + ) -> ::c_int; + pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; + pub fn mq_timedreceive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::ssize_t; + pub fn mq_timedsend( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::c_int; + pub fn mq_unlink(name: *const ::c_char) -> ::c_int; + pub fn mrand48() -> c_long; + pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; + pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtyp: ::c_long, + msgflg: ::c_int, + ) -> ::ssize_t; + pub fn msgsnd( + msqid: ::c_int, + msgp: *const ::c_void, + msgsz: ::size_t, + msgflg: ::c_int, + ) -> ::c_int; + pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; + pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + pub fn nl_langinfo_l(item: ::nl_item, loc: ::locale_t) -> *mut ::c_char; + pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; + pub fn open64(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; + pub fn pollset_create(maxfd: ::c_int) -> pollset_t; + pub fn pollset_ctl( + ps: pollset_t, + pollctl_array: *mut poll_ctl, + array_length: ::c_int, + ) -> ::c_int; + pub fn pollset_destroy(ps: pollset_t) -> ::c_int; + pub fn pollset_poll( + ps: pollset_t, + polldata_array: *mut ::pollfd, + array_length: ::c_int, + timeout: ::c_int, + ) -> ::c_int; + pub fn pollset_query(ps: pollset_t, pollfd_query: *mut ::pollfd) -> ::c_int; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; + pub fn posix_fadvise64( + fd: ::c_int, + offset: ::off64_t, + len: ::off64_t, + advise: ::c_int, + ) -> ::c_int; + pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + pub fn posix_fallocate64(fd: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; + pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn posix_spawn( + pid: *mut ::pid_t, + path: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawn_file_actions_addclose( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + ) -> ::c_int; + pub fn posix_spawn_file_actions_adddup2( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + newfd: ::c_int, + ) -> ::c_int; + pub fn posix_spawn_file_actions_addopen( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + path: *const ::c_char, + oflag: ::c_int, + mode: ::mode_t, + ) -> ::c_int; + pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_getflags( + attr: *const posix_spawnattr_t, + flags: *mut ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_getpgroup( + attr: *const posix_spawnattr_t, + flags: *mut ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_getschedparam( + attr: *const posix_spawnattr_t, + param: *mut ::sched_param, + ) -> ::c_int; + pub fn posix_spawnattr_getschedpolicy( + attr: *const posix_spawnattr_t, + flags: *mut ::c_int, + ) -> ::c_int; + pub fn posix_spawnattr_getsigdefault( + attr: *const posix_spawnattr_t, + default: *mut sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + default: *mut sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; + pub fn posix_spawnattr_setschedparam( + attr: *mut posix_spawnattr_t, + param: *const ::sched_param, + ) -> ::c_int; + pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnp( + pid: *mut ::pid_t, + file: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn pread64(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off64_t) -> ::ssize_t; + pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; + pub fn ptrace64( + request: ::c_int, + id: ::c_longlong, + addr: ::c_longlong, + data: ::c_int, + buff: *mut ::c_int, + ) -> ::c_int; + pub fn pututline(u: *const utmp) -> *mut utmp; + pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + pub fn pwrite64( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + offset: off64_t, + ) -> ::ssize_t; + pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) + -> ::ssize_t; + #[link_name = "__linux_quotactl"] + pub fn quotactl( + cmd: ::c_int, + special: *const ::c_char, + id: ::c_int, + data: *mut ::c_char, + ) -> ::c_int; + pub fn rand() -> ::c_int; + pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + timeout: *mut ::timespec, + ) -> ::c_int; + pub fn recvmsg(sockfd: ::c_int, msg: *mut msghdr, flags: ::c_int) -> ::ssize_t; + pub fn regcomp(preg: *mut regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; + pub fn regerror( + errcode: ::c_int, + preg: *const ::regex_t, + errbuf: *mut ::c_char, + errbuf_size: ::size_t, + ) -> ::size_t; + pub fn regexec( + preg: *const regex_t, + input: *const ::c_char, + nmatch: ::size_t, + pmatch: *mut regmatch_t, + eflags: ::c_int, + ) -> ::c_int; + pub fn regfree(preg: *mut regex_t); + pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; + pub fn sched_getparam(pid: ::pid_t, param: *mut sched_param) -> ::c_int; + pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; + pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; + pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; + pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn sctp_opt_info( + sd: ::c_int, + id: ::sctp_assoc_t, + opt: ::c_int, + arg_size: *mut ::c_void, + size: *mut ::size_t, + ) -> ::c_int; + pub fn sctp_peeloff(s: ::c_int, id: ::sctp_assoc_t) -> ::c_int; + pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; + pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + pub fn sem_close(sem: *mut sem_t) -> ::c_int; + pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; + pub fn sem_unlink(name: *const ::c_char) -> ::c_int; + pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; + pub fn semget(key: ::key_t, nsems: ::c_int, semflag: ::c_int) -> ::c_int; + pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int; + pub fn send_file(socket: *mut ::c_int, iobuf: *mut sf_parms, flags: ::c_uint) -> ::ssize_t; + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + ) -> ::c_int; + pub fn sendmsg(sockfd: ::c_int, msg: *const msghdr, flags: ::c_int) -> ::ssize_t; + pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; + pub fn setdomainname(name: *const ::c_char, len: ::c_int) -> ::c_int; + pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; + pub fn setgrent(); + pub fn sethostid(hostid: ::c_int) -> ::c_int; + pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; + pub fn setmntent(filename: *const ::c_char, ty: *const ::c_char) -> *mut ::FILE; + pub fn setpriority(which: ::c_int, who: id_t, priority: ::c_int) -> ::c_int; + pub fn setpwent(); + pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; + pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + pub fn setitimer( + which: ::c_int, + new_value: *const ::itimerval, + old_value: *mut ::itimerval, + ) -> ::c_int; + pub fn setutent(); + pub fn setutxent(); + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; + pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; + pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; + pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; + pub fn shmget(key: key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; + pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; + pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + pub fn splice(socket1: ::c_int, socket2: ::c_int, flags: ::c_int) -> ::c_int; + pub fn srand(seed: ::c_uint); + pub fn srand48(seed: ::c_long); + pub fn stat64(path: *const c_char, buf: *mut stat64) -> ::c_int; + pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; + pub fn statfs64(path: *const ::c_char, buf: *mut statfs64) -> ::c_int; + pub fn statvfs64(path: *const ::c_char, buf: *mut statvfs64) -> ::c_int; + pub fn statx( + path: *const ::c_char, + buf: *mut stat, + length: ::c_int, + command: ::c_int, + ) -> ::c_int; + pub fn strcasecmp_l( + string1: *const ::c_char, + string2: *const ::c_char, + locale: ::locale_t, + ) -> ::c_int; + pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + pub fn strftime( + arg1: *mut c_char, + arg2: ::size_t, + arg3: *const c_char, + arg4: *const tm, + ) -> ::size_t; + pub fn strncasecmp_l( + string1: *const ::c_char, + string2: *const ::c_char, + length: ::size_t, + locale: ::locale_t, + ) -> ::c_int; + pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; + pub fn strsep(string: *mut *mut ::c_char, delim: *const ::c_char) -> *mut ::c_char; + pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; + pub fn swapoff(puath: *const ::c_char) -> ::c_int; + pub fn swapon(path: *const ::c_char) -> ::c_int; + pub fn sync(); + pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + pub fn timer_create( + clockid: ::clockid_t, + sevp: *mut ::sigevent, + timerid: *mut ::timer_t, + ) -> ::c_int; + pub fn timer_delete(timerid: timer_t) -> ::c_int; + pub fn timer_getoverrun(timerid: timer_t) -> ::c_int; + pub fn timer_gettime(timerid: timer_t, value: *mut itimerspec) -> ::c_int; + pub fn timer_settime( + timerid: ::timer_t, + flags: ::c_int, + new_value: *const ::itimerspec, + old_value: *mut ::itimerspec, + ) -> ::c_int; + pub fn truncate64(path: *const c_char, length: off64_t) -> ::c_int; + pub fn uname(buf: *mut ::utsname) -> ::c_int; + pub fn updwtmp(file: *const ::c_char, u: *mut utmp); + pub fn uselocale(loc: ::locale_t) -> ::locale_t; + pub fn utmpname(file: *const ::c_char) -> ::c_int; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; + pub fn wait4( + pid: ::pid_t, + status: *mut ::c_int, + options: ::c_int, + rusage: *mut ::rusage, + ) -> ::pid_t; + pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) + -> ::c_int; + pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + + // Use AIX thread-safe version errno. + pub fn _Errno() -> *mut ::c_int; +} + +cfg_if! { + if #[cfg(target_arch = "powerpc64")] { + mod powerpc64; + pub use self::powerpc64::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/aix/powerpc64.rs b/src/rust/vendor/libc-0.2.146/src/unix/aix/powerpc64.rs new file mode 100644 index 000000000..2cacf29f6 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/aix/powerpc64.rs @@ -0,0 +1,644 @@ +pub type c_long = i64; +pub type c_ulong = u64; + +s! { + pub struct sigset_t { + pub ss_set: [c_ulong; 4], + } + + pub struct fd_set { + pub fds_bits: [c_long; 1024], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_sysid: ::c_uint, + pub l_pid: ::pid_t, + pub l_vfs: ::c_int, + pub l_start: ::off_t, + pub l_len: ::off_t, + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_basetype: [::c_char; 16], + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub f_fstr: [::c_char; 32], + pub f_filler: [::c_ulong; 16] + } + + pub struct pthread_rwlock_t { + __rw_word: [::c_long; 10], + } + + pub struct pthread_cond_t { + __cv_word: [::c_long; 6], + } + + pub struct pthread_mutex_t { + __mt_word: [::c_long; 8], + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_flag: ::c_ushort, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_ssize: ::c_int, + pub st_atime: ::st_timespec, + pub st_mtime: ::st_timespec, + pub st_ctime: ::st_timespec, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_vfstype: ::c_int, + pub st_vfs: ::c_uint, + pub st_type: ::c_uint, + pub st_gen: ::c_uint, + pub st_reserved: [::c_uint; 9], + pub st_padto_ll: ::c_uint, + pub st_size: ::off_t, + } + + pub struct statfs { + pub f_version: ::c_int, + pub f_type: ::c_int, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsblkcnt_t, + pub f_ffree: ::fsblkcnt_t, + pub f_fsid: ::fsid64_t, + pub f_vfstype: ::c_int, + pub f_fsize: ::c_ulong, + pub f_vfsnumber: ::c_int, + pub f_vfsoff: ::c_int, + pub f_vfslen: ::c_int, + pub f_vfsvers: ::c_int, + pub f_fname: [::c_char; 32], + pub f_fpack: [::c_char; 32], + pub f_name_max: ::c_int, + } + + pub struct aiocb { + pub aio_lio_opcode: ::c_int, + pub aio_fildes: ::c_int, + pub aio_word1: ::c_int, + pub aio_offset: ::off_t, + pub aio_buf: *mut ::c_void, + pub aio_return: ::ssize_t, + pub aio_errno: ::c_int, + pub aio_nbytes: ::size_t, + pub aio_reqprio: ::c_int, + pub aio_sigevent: ::sigevent, + pub aio_word2: ::c_int, + pub aio_fp: ::c_int, + pub aio_handle: *mut aiocb, + pub aio_reserved: [::c_uint; 2], + pub aio_sigev_tid: c_long, + } + + pub struct ucontext_t { + pub __sc_onstack: ::c_int, + pub uc_sigmask: ::sigset_t, + pub __sc_uerror: ::c_int, + pub uc_mcontext: ::mcontext_t, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + // Should be pointer to __extctx_t + pub __extctx: *mut ::c_void, + pub __extctx_magic: ::c_int, + pub __pad: [::c_int; 1], + } + + pub struct mcontext_t { + pub gpr: [::c_ulonglong; 32], + pub msr: ::c_ulonglong, + pub iar: ::c_ulonglong, + pub lr: ::c_ulonglong, + pub ctr: ::c_ulonglong, + pub cr: ::c_uint, + pub xer: ::c_uint, + pub fpscr: ::c_uint, + pub fpscrx: ::c_uint, + pub except: [::c_ulonglong; 1], + // Should be array of double type + pub fpr: [::uint64_t; 32], + pub fpeu: ::c_char, + pub fpinfo: ::c_char, + pub fpscr24_31: ::c_char, + pub pad: [::c_char; 1], + pub excp_type: ::c_int, + } + + pub struct utmpx { + pub ut_user: [::c_char; 256], + pub ut_id: [::c_char; 14], + pub ut_line: [::c_char; 64], + pub ut_pid: ::pid_t, + pub ut_type: ::c_short, + pub ut_tv: ::timeval, + pub ut_host: [::c_char; 256], + pub __dbl_word_pad: ::c_int, + pub __reservedA: [::c_int; 2], + pub __reservedV: [::c_int; 6], + } + + pub struct pthread_spinlock_t { + pub __sp_word: [::c_long; 3], + } + + pub struct pthread_barrier_t { + pub __br_word: [::c_long; 5], + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_first: ::c_uint, + pub msg_last: ::c_uint, + pub msg_cbytes: ::c_uint, + pub msg_qnum: ::c_uint, + pub msg_qbytes: ::c_ulong, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + pub msg_stime: ::time_t, + pub msg_rtime: ::time_t, + pub msg_ctime: ::time_t, + pub msg_rwait: ::c_int, + pub msg_wwait: ::c_int, + pub msg_reqevents: ::c_ushort, + } +} + +s_no_extra_traits! { + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub si_pid: ::pid_t, + pub si_uid: ::uid_t, + pub si_status: ::c_int, + pub si_addr: *mut ::c_void, + pub si_band: ::c_long, + pub si_value: ::sigval, + pub __si_flags: ::c_int, + pub __pad: [::c_int; 3], + } + + #[cfg(libc_union)] + pub union _kernel_simple_lock { + pub _slock: ::c_long, + // Should be pointer to 'lock_data_instrumented' + pub _slockp: *mut ::c_void, + } + + pub struct fileops_t { + pub fo_rw: extern fn(file: *mut file, rw: ::uio_rw, io: *mut ::c_void, ext: ::c_long, + secattr: *mut ::c_void) -> ::c_int, + pub fo_ioctl: extern fn(file: *mut file, a: ::c_long, b: ::caddr_t, c: ::c_long, + d: ::c_long) -> ::c_int, + pub fo_select: extern fn(file: *mut file, a: ::c_int, b: *mut ::c_ushort, + c: extern fn()) -> ::c_int, + pub fo_close: extern fn(file: *mut file) -> ::c_int, + pub fo_fstat: extern fn(file: *mut file, sstat: *mut ::stat) -> ::c_int, + } + + pub struct file { + pub f_flag: ::c_long, + pub f_count: ::c_int, + pub f_options: ::c_short, + pub f_type: ::c_short, + // Should be pointer to 'vnode' + pub f_data: *mut ::c_void, + pub f_offset: ::c_longlong, + pub f_dir_off: ::c_long, + // Should be pointer to 'cred' + pub f_cred: *mut ::c_void, + #[cfg(libc_union)] + pub f_lock: _kernel_simple_lock, + #[cfg(libc_union)] + pub f_offset_lock: _kernel_simple_lock, + pub f_vinfo: ::caddr_t, + pub f_ops: *mut fileops_t, + pub f_parentp: ::caddr_t, + pub f_fnamep: ::caddr_t, + pub f_fdata: [::c_char; 160], + } + + #[cfg(libc_union)] + pub union __ld_info_file { + pub _ldinfo_fd: ::c_int, + pub _ldinfo_fp: *mut file, + pub _core_offset: ::c_long, + } + + pub struct ld_info { + pub ldinfo_next: ::c_uint, + pub ldinfo_flags: ::c_uint, + #[cfg(libc_union)] + pub _file: __ld_info_file, + pub ldinfo_textorg: *mut ::c_void, + pub ldinfo_textsize: ::c_ulong, + pub ldinfo_dataorg: *mut ::c_void, + pub ldinfo_datasize: ::c_ulong, + pub ldinfo_filename: [::c_char; 2], + } + + #[cfg(libc_union)] + pub union __pollfd_ext_u { + pub addr: *mut ::c_void, + pub data32: u32, + pub data: u64, + } + + pub struct pollfd_ext { + pub fd: ::c_int, + pub events: ::c_ushort, + pub revents: ::c_ushort, + #[cfg(libc_union)] + pub data: __pollfd_ext_u, + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + self.si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + self.si_value + } + + pub unsafe fn si_pid(&self) -> ::pid_t { + self.si_pid + } + + pub unsafe fn si_uid(&self) -> ::uid_t { + self.si_uid + } + + pub unsafe fn si_status(&self) -> ::c_int { + self.si_status + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for siginfo_t { + fn eq(&self, other: &siginfo_t) -> bool { + #[cfg(libc_union)] + let value_eq = self.si_value == other.si_value; + #[cfg(not(libc_union))] + let value_eq = true; + self.si_signo == other.si_signo + && self.si_errno == other.si_errno + && self.si_code == other.si_code + && self.si_pid == other.si_pid + && self.si_uid == other.si_uid + && self.si_status == other.si_status + && self.si_addr == other.si_addr + && self.si_band == other.si_band + && self.__si_flags == other.__si_flags + && value_eq + } + } + impl Eq for siginfo_t {} + impl ::fmt::Debug for siginfo_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let mut struct_formatter = f.debug_struct("siginfo_t"); + struct_formatter.field("si_signo", &self.si_signo); + struct_formatter.field("si_errno", &self.si_errno); + struct_formatter.field("si_code", &self.si_code); + struct_formatter.field("si_pid", &self.si_pid); + struct_formatter.field("si_uid", &self.si_uid); + struct_formatter.field("si_status", &self.si_status); + struct_formatter.field("si_addr", &self.si_addr); + struct_formatter.field("si_band", &self.si_band); + #[cfg(libc_union)] + struct_formatter.field("si_value", &self.si_value); + struct_formatter.field("__si_flags", &self.__si_flags); + struct_formatter.finish() + } + } + impl ::hash::Hash for siginfo_t { + fn hash(&self, state: &mut H) { + self.si_signo.hash(state); + self.si_errno.hash(state); + self.si_code.hash(state); + self.si_pid.hash(state); + self.si_uid.hash(state); + self.si_status.hash(state); + self.si_addr.hash(state); + self.si_band.hash(state); + #[cfg(libc_union)] + self.si_value.hash(state); + self.__si_flags.hash(state); + } + } + + #[cfg(libc_union)] + impl PartialEq for _kernel_simple_lock { + fn eq(&self, other: &_kernel_simple_lock) -> bool { + unsafe { + self._slock == other._slock + && self._slockp == other._slockp + } + } + } + #[cfg(libc_union)] + impl Eq for _kernel_simple_lock {} + #[cfg(libc_union)] + impl ::fmt::Debug for _kernel_simple_lock { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("_kernel_simple_lock") + .field("_slock", unsafe { &self._slock }) + .field("_slockp", unsafe { &self._slockp }) + .finish() + } + } + #[cfg(libc_union)] + impl ::hash::Hash for _kernel_simple_lock { + fn hash(&self, state: &mut H) { + unsafe { + self._slock.hash(state); + self._slockp.hash(state); + } + } + } + + impl PartialEq for fileops_t { + fn eq(&self, other: &fileops_t) -> bool { + self.fo_rw == other.fo_rw + && self.fo_ioctl == other.fo_ioctl + && self.fo_select == other.fo_select + && self.fo_close == other.fo_close + && self.fo_fstat == other.fo_fstat + } + } + impl Eq for fileops_t {} + impl ::fmt::Debug for fileops_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let mut struct_formatter = f.debug_struct("fileops_t"); + struct_formatter.field("fo_rw", &self.fo_rw); + struct_formatter.field("fo_ioctl", &self.fo_ioctl); + struct_formatter.field("fo_select", &self.fo_select); + struct_formatter.field("fo_close", &self.fo_close); + struct_formatter.field("fo_fstat", &self.fo_fstat); + struct_formatter.finish() + } + } + impl ::hash::Hash for fileops_t { + fn hash(&self, state: &mut H) { + self.fo_rw.hash(state); + self.fo_ioctl.hash(state); + self.fo_select.hash(state); + self.fo_close.hash(state); + self.fo_fstat.hash(state); + } + } + + impl PartialEq for file { + fn eq(&self, other: &file) -> bool { + #[cfg(libc_union)] + let lock_eq = self.f_lock == other.f_lock + && self.f_offset_lock == other.f_offset_lock; + #[cfg(not(libc_union))] + let lock_eq = true; + self.f_flag == other.f_flag + && self.f_count == other.f_count + && self.f_options == other.f_options + && self.f_type == other.f_type + && self.f_data == other.f_data + && self.f_offset == other.f_offset + && self.f_dir_off == other.f_dir_off + && self.f_cred == other.f_cred + && self.f_vinfo == other.f_vinfo + && self.f_ops == other.f_ops + && self.f_parentp == other.f_parentp + && self.f_fnamep == other.f_fnamep + && self.f_fdata == other.f_fdata + && lock_eq + } + } + impl Eq for file {} + impl ::fmt::Debug for file { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let mut struct_formatter = f.debug_struct("file"); + struct_formatter.field("f_flag", &self.f_flag); + struct_formatter.field("f_count", &self.f_count); + struct_formatter.field("f_options", &self.f_options); + struct_formatter.field("f_type", &self.f_type); + struct_formatter.field("f_data", &self.f_data); + struct_formatter.field("f_offset", &self.f_offset); + struct_formatter.field("f_dir_off", &self.f_dir_off); + struct_formatter.field("f_cred", &self.f_cred); + #[cfg(libc_union)] + struct_formatter.field("f_lock", &self.f_lock); + #[cfg(libc_union)] + struct_formatter.field("f_offset_lock", &self.f_offset_lock); + struct_formatter.field("f_vinfo", &self.f_vinfo); + struct_formatter.field("f_ops", &self.f_ops); + struct_formatter.field("f_parentp", &self.f_parentp); + struct_formatter.field("f_fnamep", &self.f_fnamep); + struct_formatter.field("f_fdata", &self.f_fdata); + struct_formatter.finish() + } + } + impl ::hash::Hash for file { + fn hash(&self, state: &mut H) { + self.f_flag.hash(state); + self.f_count.hash(state); + self.f_options.hash(state); + self.f_type.hash(state); + self.f_data.hash(state); + self.f_offset.hash(state); + self.f_dir_off.hash(state); + self.f_cred.hash(state); + #[cfg(libc_union)] + self.f_lock.hash(state); + #[cfg(libc_union)] + self.f_offset_lock.hash(state); + self.f_vinfo.hash(state); + self.f_ops.hash(state); + self.f_parentp.hash(state); + self.f_fnamep.hash(state); + self.f_fdata.hash(state); + } + } + + #[cfg(libc_union)] + impl PartialEq for __ld_info_file { + fn eq(&self, other: &__ld_info_file) -> bool { + unsafe { + self._ldinfo_fd == other._ldinfo_fd + && self._ldinfo_fp == other._ldinfo_fp + && self._core_offset == other._core_offset + } + } + } + #[cfg(libc_union)] + impl Eq for __ld_info_file {} + #[cfg(libc_union)] + impl ::fmt::Debug for __ld_info_file { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("__ld_info_file") + .field("_ldinfo_fd", unsafe { &self._ldinfo_fd }) + .field("_ldinfo_fp", unsafe { &self._ldinfo_fp }) + .field("_core_offset", unsafe { &self._core_offset }) + .finish() + } + } + #[cfg(libc_union)] + impl ::hash::Hash for __ld_info_file { + fn hash(&self, state: &mut H) { + unsafe { + self._ldinfo_fd.hash(state); + self._ldinfo_fp.hash(state); + self._core_offset.hash(state); + } + } + } + + impl PartialEq for ld_info { + fn eq(&self, other: &ld_info) -> bool { + #[cfg(libc_union)] + let file_eq = self._file == other._file; + #[cfg(not(libc_union))] + let file_eq = true; + self.ldinfo_next == other.ldinfo_next + && self.ldinfo_flags == other.ldinfo_flags + && self.ldinfo_textorg == other.ldinfo_textorg + && self.ldinfo_textsize == other.ldinfo_textsize + && self.ldinfo_dataorg == other.ldinfo_dataorg + && self.ldinfo_datasize == other.ldinfo_datasize + && self.ldinfo_filename == other.ldinfo_filename + && file_eq + } + } + impl Eq for ld_info {} + impl ::fmt::Debug for ld_info { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let mut struct_formatter = f.debug_struct("ld_info"); + struct_formatter.field("ldinfo_next", &self.ldinfo_next); + struct_formatter.field("ldinfo_flags", &self.ldinfo_flags); + struct_formatter.field("ldinfo_textorg", &self.ldinfo_textorg); + struct_formatter.field("ldinfo_textsize", &self.ldinfo_textsize); + struct_formatter.field("ldinfo_dataorg", &self.ldinfo_dataorg); + struct_formatter.field("ldinfo_datasize", &self.ldinfo_datasize); + struct_formatter.field("ldinfo_filename", &self.ldinfo_filename); + #[cfg(libc_union)] + struct_formatter.field("_file", &self._file); + struct_formatter.finish() + } + } + impl ::hash::Hash for ld_info { + fn hash(&self, state: &mut H) { + self.ldinfo_next.hash(state); + self.ldinfo_flags.hash(state); + self.ldinfo_textorg.hash(state); + self.ldinfo_textsize.hash(state); + self.ldinfo_dataorg.hash(state); + self.ldinfo_datasize.hash(state); + self.ldinfo_filename.hash(state); + #[cfg(libc_union)] + self._file.hash(state); + } + } + + #[cfg(libc_union)] + impl PartialEq for __pollfd_ext_u { + fn eq(&self, other: &__pollfd_ext_u) -> bool { + unsafe { + self.addr == other.addr + && self.data32 == other.data32 + && self.data == other.data + } + } + } + #[cfg(libc_union)] + impl Eq for __pollfd_ext_u {} + #[cfg(libc_union)] + impl ::fmt::Debug for __pollfd_ext_u { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("__pollfd_ext_u") + .field("addr", unsafe { &self.addr }) + .field("data32", unsafe { &self.data32 }) + .field("data", unsafe { &self.data }) + .finish() + } + } + #[cfg(libc_union)] + impl ::hash::Hash for __pollfd_ext_u { + fn hash(&self, state: &mut H) { + unsafe { + self.addr.hash(state); + self.data.hash(state); + self.data32.hash(state); + } + } + } + + impl PartialEq for pollfd_ext { + fn eq(&self, other: &pollfd_ext) -> bool { + #[cfg(libc_union)] + let data_eq = self.data == other.data; + #[cfg(not(libc_union))] + let data_eq = true; + self.fd == other.fd + && self.events == other.events + && self.revents == other.revents + && data_eq + } + } + impl Eq for pollfd_ext {} + impl ::fmt::Debug for pollfd_ext { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let mut struct_formatter = f.debug_struct("pollfd_ext"); + struct_formatter.field("fd", &self.fd); + struct_formatter.field("events", &self.events); + struct_formatter.field("revents", &self.revents); + #[cfg(libc_union)] + struct_formatter.field("data", &self.data); + struct_formatter.finish() + } + } + impl ::hash::Hash for pollfd_ext { + fn hash(&self, state: &mut H) { + self.fd.hash(state); + self.events.hash(state); + self.revents.hash(state); + #[cfg(libc_union)] + self.data.hash(state); + } + } + } +} + +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + __mt_word: [0, 2, 0, 0, 0, 0, 0, 0], +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + __cv_word: [0, 0, 0, 0, 2, 0], +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + __rw_word: [2, 0, 0, 0, 0, 0, 0, 0, 0, 0], +}; +pub const RLIM_INFINITY: ::c_ulong = 0x7fffffffffffffff; + +extern "C" { + pub fn getsystemcfg(label: ::c_int) -> ::c_ulong; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/align.rs new file mode 100644 index 000000000..4fdba9a6a --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/align.rs @@ -0,0 +1,6 @@ +s! { + #[repr(align(4))] + pub struct in6_addr { + pub s6_addr: [u8; 16], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/align.rs new file mode 100644 index 000000000..ca1fe1ce2 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 2] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/mod.rs new file mode 100644 index 000000000..0f1722f97 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/mod.rs @@ -0,0 +1,119 @@ +//! 32-bit specific Apple (ios/darwin) definitions + +pub type c_long = i32; +pub type c_ulong = u32; +pub type boolean_t = ::c_int; + +s! { + pub struct if_data { + pub ifi_type: ::c_uchar, + pub ifi_typelen: ::c_uchar, + pub ifi_physical: ::c_uchar, + pub ifi_addrlen: ::c_uchar, + pub ifi_hdrlen: ::c_uchar, + pub ifi_recvquota: ::c_uchar, + pub ifi_xmitquota: ::c_uchar, + pub ifi_unused1: ::c_uchar, + pub ifi_mtu: u32, + pub ifi_metric: u32, + pub ifi_baudrate: u32, + pub ifi_ipackets: u32, + pub ifi_ierrors: u32, + pub ifi_opackets: u32, + pub ifi_oerrors: u32, + pub ifi_collisions: u32, + pub ifi_ibytes: u32, + pub ifi_obytes: u32, + pub ifi_imcasts: u32, + pub ifi_omcasts: u32, + pub ifi_iqdrops: u32, + pub ifi_noproto: u32, + pub ifi_recvtiming: u32, + pub ifi_xmittiming: u32, + pub ifi_lastchange: ::timeval, + pub ifi_unused2: u32, + pub ifi_hwassist: u32, + pub ifi_reserved1: u32, + pub ifi_reserved2: u32, + } + + pub struct bpf_hdr { + pub bh_tstamp: ::timeval, + pub bh_caplen: u32, + pub bh_datalen: u32, + pub bh_hdrlen: ::c_ushort, + } + + pub struct malloc_zone_t { + __private: [::uintptr_t; 18], // FIXME: keeping private for now + } +} + +s_no_extra_traits! { + pub struct pthread_attr_t { + __sig: c_long, + __opaque: [::c_char; 36] + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for pthread_attr_t { + fn eq(&self, other: &pthread_attr_t) -> bool { + self.__sig == other.__sig + && self.__opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_attr_t {} + impl ::fmt::Debug for pthread_attr_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_attr_t") + .field("__sig", &self.__sig) + // FIXME: .field("__opaque", &self.__opaque) + .finish() + } + } + impl ::hash::Hash for pthread_attr_t { + fn hash(&self, state: &mut H) { + self.__sig.hash(state); + self.__opaque.hash(state); + } + } + } +} + +#[doc(hidden)] +#[deprecated(since = "0.2.55")] +pub const NET_RT_MAXID: ::c_int = 10; + +pub const __PTHREAD_MUTEX_SIZE__: usize = 40; +pub const __PTHREAD_COND_SIZE__: usize = 24; +pub const __PTHREAD_CONDATTR_SIZE__: usize = 4; +pub const __PTHREAD_RWLOCK_SIZE__: usize = 124; +pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 12; + +pub const TIOCTIMESTAMP: ::c_ulong = 0x40087459; +pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40087458; + +pub const BIOCSETF: ::c_ulong = 0x80084267; +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8008426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4008426e; +pub const BIOCSETFNR: ::c_ulong = 0x8008427e; + +extern "C" { + pub fn exchangedata( + path1: *const ::c_char, + path2: *const ::c_char, + options: ::c_ulong, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/align.rs new file mode 100644 index 000000000..29db97ec7 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/align.rs @@ -0,0 +1,56 @@ +pub type mcontext_t = *mut __darwin_mcontext64; + +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + pub struct max_align_t { + priv_: f64 + } +} + +s! { + pub struct ucontext_t { + pub uc_onstack: ::c_int, + pub uc_sigmask: ::sigset_t, + pub uc_stack: ::stack_t, + pub uc_link: *mut ::ucontext_t, + pub uc_mcsize: usize, + pub uc_mcontext: mcontext_t, + __mcontext_data: __darwin_mcontext64, + } + + pub struct __darwin_mcontext64 { + pub __es: __darwin_arm_exception_state64, + pub __ss: __darwin_arm_thread_state64, + pub __ns: __darwin_arm_neon_state64, + } + + pub struct __darwin_arm_exception_state64 { + pub __far: u64, + pub __esr: u32, + pub __exception: u32, + } + + pub struct __darwin_arm_thread_state64 { + pub __x: [u64; 29], + pub __fp: u64, + pub __lr: u64, + pub __sp: u64, + pub __pc: u64, + pub __cpsr: u32, + pub __pad: u32, + } + + // This type natively uses a uint128, but for a while we hacked + // it in with repr(align) and `[u64; 2]`. uint128 isn't available + // all the way back to our earliest supported versions so we + // preserver the old shim. + #[cfg_attr(not(libc_int128), repr(align(16)))] + pub struct __darwin_arm_neon_state64 { + #[cfg(libc_int128)] + pub __v: [::__uint128_t; 32], + #[cfg(not(libc_int128))] + pub __v: [[u64; 2]; 32], + pub __fpsr: u32, + pub __fpcr: u32, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/mod.rs new file mode 100644 index 000000000..79e9ac842 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/mod.rs @@ -0,0 +1,14 @@ +pub type boolean_t = ::c_int; + +s! { + pub struct malloc_zone_t { + __private: [::uintptr_t; 18], // FIXME: needs arm64 auth pointers support + } +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/align.rs new file mode 100644 index 000000000..ca1fe1ce2 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 2] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/mod.rs new file mode 100644 index 000000000..48d94bcd6 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/mod.rs @@ -0,0 +1,124 @@ +//! 64-bit specific Apple (ios/darwin) definitions + +pub type c_long = i64; +pub type c_ulong = u64; + +s! { + pub struct timeval32 { + pub tv_sec: i32, + pub tv_usec: i32, + } + + pub struct if_data { + pub ifi_type: ::c_uchar, + pub ifi_typelen: ::c_uchar, + pub ifi_physical: ::c_uchar, + pub ifi_addrlen: ::c_uchar, + pub ifi_hdrlen: ::c_uchar, + pub ifi_recvquota: ::c_uchar, + pub ifi_xmitquota: ::c_uchar, + pub ifi_unused1: ::c_uchar, + pub ifi_mtu: u32, + pub ifi_metric: u32, + pub ifi_baudrate: u32, + pub ifi_ipackets: u32, + pub ifi_ierrors: u32, + pub ifi_opackets: u32, + pub ifi_oerrors: u32, + pub ifi_collisions: u32, + pub ifi_ibytes: u32, + pub ifi_obytes: u32, + pub ifi_imcasts: u32, + pub ifi_omcasts: u32, + pub ifi_iqdrops: u32, + pub ifi_noproto: u32, + pub ifi_recvtiming: u32, + pub ifi_xmittiming: u32, + pub ifi_lastchange: timeval32, + pub ifi_unused2: u32, + pub ifi_hwassist: u32, + pub ifi_reserved1: u32, + pub ifi_reserved2: u32, + } + + pub struct bpf_hdr { + pub bh_tstamp: ::timeval32, + pub bh_caplen: u32, + pub bh_datalen: u32, + pub bh_hdrlen: ::c_ushort, + } +} + +s_no_extra_traits! { + pub struct pthread_attr_t { + __sig: c_long, + __opaque: [::c_char; 56] + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for pthread_attr_t { + fn eq(&self, other: &pthread_attr_t) -> bool { + self.__sig == other.__sig + && self.__opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_attr_t {} + impl ::fmt::Debug for pthread_attr_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_attr_t") + .field("__sig", &self.__sig) + // FIXME: .field("__opaque", &self.__opaque) + .finish() + } + } + impl ::hash::Hash for pthread_attr_t { + fn hash(&self, state: &mut H) { + self.__sig.hash(state); + self.__opaque.hash(state); + } + } + } +} + +#[doc(hidden)] +#[deprecated(since = "0.2.55")] +pub const NET_RT_MAXID: ::c_int = 11; + +pub const __PTHREAD_MUTEX_SIZE__: usize = 56; +pub const __PTHREAD_COND_SIZE__: usize = 40; +pub const __PTHREAD_CONDATTR_SIZE__: usize = 8; +pub const __PTHREAD_RWLOCK_SIZE__: usize = 192; +pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 16; + +pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; +pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40107458; + +pub const BIOCSETF: ::c_ulong = 0x80104267; +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; +pub const BIOCSETFNR: ::c_ulong = 0x8010427e; + +extern "C" { + pub fn exchangedata( + path1: *const ::c_char, + path2: *const ::c_char, + options: ::c_uint, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } else if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } else { + // Unknown target_arch + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/align.rs new file mode 100644 index 000000000..ca1fe1ce2 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 2] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/mod.rs new file mode 100644 index 000000000..653650c26 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/mod.rs @@ -0,0 +1,180 @@ +pub type boolean_t = ::c_uint; +pub type mcontext_t = *mut __darwin_mcontext64; + +s! { + pub struct ucontext_t { + pub uc_onstack: ::c_int, + pub uc_sigmask: ::sigset_t, + pub uc_stack: ::stack_t, + pub uc_link: *mut ::ucontext_t, + pub uc_mcsize: usize, + pub uc_mcontext: mcontext_t, + } + + pub struct __darwin_mcontext64 { + pub __es: __darwin_x86_exception_state64, + pub __ss: __darwin_x86_thread_state64, + pub __fs: __darwin_x86_float_state64, + } + + pub struct __darwin_x86_exception_state64 { + pub __trapno: u16, + pub __cpu: u16, + pub __err: u32, + pub __faultvaddr: u64, + } + + pub struct __darwin_x86_thread_state64 { + pub __rax: u64, + pub __rbx: u64, + pub __rcx: u64, + pub __rdx: u64, + pub __rdi: u64, + pub __rsi: u64, + pub __rbp: u64, + pub __rsp: u64, + pub __r8: u64, + pub __r9: u64, + pub __r10: u64, + pub __r11: u64, + pub __r12: u64, + pub __r13: u64, + pub __r14: u64, + pub __r15: u64, + pub __rip: u64, + pub __rflags: u64, + pub __cs: u64, + pub __fs: u64, + pub __gs: u64, + } + + pub struct __darwin_x86_float_state64 { + pub __fpu_reserved: [::c_int; 2], + __fpu_fcw: ::c_short, + __fpu_fsw: ::c_short, + pub __fpu_ftw: u8, + pub __fpu_rsrv1: u8, + pub __fpu_fop: u16, + pub __fpu_ip: u32, + pub __fpu_cs: u16, + pub __fpu_rsrv2: u16, + pub __fpu_dp: u32, + pub __fpu_ds: u16, + pub __fpu_rsrv3: u16, + pub __fpu_mxcsr: u32, + pub __fpu_mxcsrmask: u32, + pub __fpu_stmm0: __darwin_mmst_reg, + pub __fpu_stmm1: __darwin_mmst_reg, + pub __fpu_stmm2: __darwin_mmst_reg, + pub __fpu_stmm3: __darwin_mmst_reg, + pub __fpu_stmm4: __darwin_mmst_reg, + pub __fpu_stmm5: __darwin_mmst_reg, + pub __fpu_stmm6: __darwin_mmst_reg, + pub __fpu_stmm7: __darwin_mmst_reg, + pub __fpu_xmm0: __darwin_xmm_reg, + pub __fpu_xmm1: __darwin_xmm_reg, + pub __fpu_xmm2: __darwin_xmm_reg, + pub __fpu_xmm3: __darwin_xmm_reg, + pub __fpu_xmm4: __darwin_xmm_reg, + pub __fpu_xmm5: __darwin_xmm_reg, + pub __fpu_xmm6: __darwin_xmm_reg, + pub __fpu_xmm7: __darwin_xmm_reg, + pub __fpu_xmm8: __darwin_xmm_reg, + pub __fpu_xmm9: __darwin_xmm_reg, + pub __fpu_xmm10: __darwin_xmm_reg, + pub __fpu_xmm11: __darwin_xmm_reg, + pub __fpu_xmm12: __darwin_xmm_reg, + pub __fpu_xmm13: __darwin_xmm_reg, + pub __fpu_xmm14: __darwin_xmm_reg, + pub __fpu_xmm15: __darwin_xmm_reg, + // this field is actually [u8; 96], but defining it with a bigger type + // allows us to auto-implement traits for it since the length of the + // array is less than 32 + __fpu_rsrv4: [u32; 24], + pub __fpu_reserved1: ::c_int, + } + + pub struct __darwin_mmst_reg { + pub __mmst_reg: [::c_char; 10], + pub __mmst_rsrv: [::c_char; 6], + } + + pub struct __darwin_xmm_reg { + pub __xmm_reg: [::c_char; 16], + } + + pub struct malloc_introspection_t { + _private: [::uintptr_t; 16], // FIXME: keeping private for now + } + + pub struct malloc_zone_t { + _reserved1: *mut ::c_void, + _reserved2: *mut ::c_void, + pub size: ::Option ::size_t>, + pub malloc: ::Option *mut ::c_void>, + pub calloc: ::Option *mut ::c_void>, + pub valloc: ::Option *mut ::c_void>, + pub free: ::Option, + pub realloc: ::Option *mut ::c_void>, + pub destroy: ::Option, + pub zone_name: *const ::c_char, + pub batch_malloc: ::Option ::c_uint>, + pub batch_free: ::Option, + pub introspect: *mut malloc_introspection_t, + pub version: ::c_uint, + pub memalign: ::Option *mut ::c_void>, + pub free_definite_size: ::Option, + pub pressure_relief: ::Option ::size_t>, + pub claimed_address: ::Option ::boolean_t>, + } +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/long_array.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/long_array.rs new file mode 100644 index 000000000..4c56a275a --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/long_array.rs @@ -0,0 +1,8 @@ +s! { + pub struct ctl_info { + pub ctl_id: u32, + pub ctl_name: [::c_char; MAX_KCTL_NAME], + } +} + +pub const MAX_KCTL_NAME: usize = 96; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/mod.rs new file mode 100644 index 000000000..c6f254ea5 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/mod.rs @@ -0,0 +1,6125 @@ +//! Apple (ios/darwin)-specific definitions +//! +//! This covers *-apple-* triples currently +pub type c_char = i8; +pub type wchar_t = i32; +pub type clock_t = c_ulong; +pub type time_t = c_long; +pub type suseconds_t = i32; +pub type dev_t = i32; +pub type ino_t = u64; +pub type mode_t = u16; +pub type nlink_t = u16; +pub type blksize_t = i32; +pub type rlim_t = u64; +pub type pthread_key_t = c_ulong; +pub type sigset_t = u32; +pub type clockid_t = ::c_uint; +pub type fsblkcnt_t = ::c_uint; +pub type fsfilcnt_t = ::c_uint; +pub type speed_t = ::c_ulong; +pub type tcflag_t = ::c_ulong; +pub type nl_item = ::c_int; +pub type id_t = ::c_uint; +pub type sem_t = ::c_int; +pub type idtype_t = ::c_uint; +pub type integer_t = ::c_int; +pub type cpu_type_t = integer_t; +pub type cpu_subtype_t = integer_t; +pub type natural_t = u32; +pub type mach_msg_type_number_t = natural_t; +pub type kern_return_t = ::c_int; +pub type uuid_t = [u8; 16]; +pub type task_info_t = *mut integer_t; +pub type host_info_t = *mut integer_t; +pub type task_flavor_t = natural_t; +pub type rusage_info_t = *mut ::c_void; +pub type vm_offset_t = ::uintptr_t; +pub type vm_size_t = ::uintptr_t; +pub type vm_address_t = vm_offset_t; + +pub type posix_spawnattr_t = *mut ::c_void; +pub type posix_spawn_file_actions_t = *mut ::c_void; +pub type key_t = ::c_int; +pub type shmatt_t = ::c_ushort; + +pub type sae_associd_t = u32; +pub type sae_connid_t = u32; + +pub type mach_port_t = ::c_uint; +pub type host_t = ::c_uint; +pub type host_flavor_t = integer_t; +pub type host_info64_t = *mut integer_t; +pub type processor_flavor_t = ::c_int; +pub type thread_flavor_t = natural_t; +pub type thread_inspect_t = ::mach_port_t; +pub type thread_act_t = ::mach_port_t; +pub type thread_act_array_t = *mut ::thread_act_t; +pub type policy_t = ::c_int; +pub type mach_vm_address_t = u64; +pub type mach_vm_offset_t = u64; +pub type mach_vm_size_t = u64; +pub type vm_map_t = ::mach_port_t; +pub type mem_entry_name_port_t = ::mach_port_t; +pub type memory_object_t = ::mach_port_t; +pub type memory_object_offset_t = ::c_ulonglong; +pub type vm_inherit_t = ::c_uint; +pub type vm_prot_t = ::c_int; + +pub type ledger_t = ::mach_port_t; +pub type ledger_array_t = *mut ::ledger_t; + +pub type iconv_t = *mut ::c_void; + +pub type processor_cpu_load_info_t = *mut processor_cpu_load_info; +pub type processor_cpu_load_info_data_t = processor_cpu_load_info; +pub type processor_basic_info_t = *mut processor_basic_info; +pub type processor_basic_info_data_t = processor_basic_info; +pub type processor_set_basic_info_data_t = processor_set_basic_info; +pub type processor_set_basic_info_t = *mut processor_set_basic_info; +pub type processor_set_load_info_data_t = processor_set_load_info; +pub type processor_set_load_info_t = *mut processor_set_load_info; +pub type processor_info_t = *mut integer_t; +pub type processor_info_array_t = *mut integer_t; + +pub type mach_task_basic_info_data_t = mach_task_basic_info; +pub type mach_task_basic_info_t = *mut mach_task_basic_info; +pub type task_thread_times_info_data_t = task_thread_times_info; +pub type task_thread_times_info_t = *mut task_thread_times_info; + +pub type thread_info_t = *mut integer_t; +pub type thread_basic_info_t = *mut thread_basic_info; +pub type thread_basic_info_data_t = thread_basic_info; +pub type thread_identifier_info_t = *mut thread_identifier_info; +pub type thread_identifier_info_data_t = thread_identifier_info; +pub type thread_extended_info_t = *mut thread_extended_info; +pub type thread_extended_info_data_t = thread_extended_info; + +pub type thread_t = ::mach_port_t; +pub type thread_policy_flavor_t = natural_t; +pub type thread_policy_t = *mut integer_t; +pub type thread_latency_qos_t = integer_t; +pub type thread_throughput_qos_t = integer_t; +pub type thread_standard_policy_data_t = thread_standard_policy; +pub type thread_standard_policy_t = *mut thread_standard_policy; +pub type thread_extended_policy_data_t = thread_extended_policy; +pub type thread_extended_policy_t = *mut thread_extended_policy; +pub type thread_time_constraint_policy_data_t = thread_time_constraint_policy; +pub type thread_time_constraint_policy_t = *mut thread_time_constraint_policy; +pub type thread_precedence_policy_data_t = thread_precedence_policy; +pub type thread_precedence_policy_t = *mut thread_precedence_policy; +pub type thread_affinity_policy_data_t = thread_affinity_policy; +pub type thread_affinity_policy_t = *mut thread_affinity_policy; +pub type thread_background_policy_data_t = thread_background_policy; +pub type thread_background_policy_t = *mut thread_background_policy; +pub type thread_latency_qos_policy_data_t = thread_latency_qos_policy; +pub type thread_latency_qos_policy_t = *mut thread_latency_qos_policy; +pub type thread_throughput_qos_policy_data_t = thread_throughput_qos_policy; +pub type thread_throughput_qos_policy_t = *mut thread_throughput_qos_policy; + +pub type pthread_introspection_hook_t = + extern "C" fn(event: ::c_uint, thread: ::pthread_t, addr: *mut ::c_void, size: ::size_t); +pub type pthread_jit_write_callback_t = ::Option ::c_int>; + +pub type os_unfair_lock = os_unfair_lock_s; +pub type os_unfair_lock_t = *mut os_unfair_lock; + +pub type os_log_t = *mut ::c_void; +pub type os_log_type_t = u8; +pub type os_signpost_id_t = u64; +pub type os_signpost_type_t = u8; + +pub type vm_statistics_t = *mut vm_statistics; +pub type vm_statistics_data_t = vm_statistics; +pub type vm_statistics64_t = *mut vm_statistics64; +pub type vm_statistics64_data_t = vm_statistics64; + +pub type task_t = ::mach_port_t; +pub type task_inspect_t = ::mach_port_t; + +pub type sysdir_search_path_enumeration_state = ::c_uint; + +pub type CCStatus = i32; +pub type CCCryptorStatus = i32; +pub type CCRNGStatus = ::CCCryptorStatus; + +pub type copyfile_state_t = *mut ::c_void; +pub type copyfile_flags_t = u32; + +pub type attrgroup_t = u32; +pub type vol_capabilities_set_t = [u32; 4]; + +deprecated_mach! { + pub type mach_timebase_info_data_t = mach_timebase_info; +} + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum timezone {} +impl ::Copy for timezone {} +impl ::Clone for timezone { + fn clone(&self) -> timezone { + *self + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[repr(u32)] +pub enum qos_class_t { + QOS_CLASS_USER_INTERACTIVE = 0x21, + QOS_CLASS_USER_INITIATED = 0x19, + QOS_CLASS_DEFAULT = 0x15, + QOS_CLASS_UTILITY = 0x11, + QOS_CLASS_BACKGROUND = 0x09, + QOS_CLASS_UNSPECIFIED = 0x00, +} +impl ::Copy for qos_class_t {} +impl ::Clone for qos_class_t { + fn clone(&self) -> qos_class_t { + *self + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[repr(u32)] +pub enum sysdir_search_path_directory_t { + SYSDIR_DIRECTORY_APPLICATION = 1, + SYSDIR_DIRECTORY_DEMO_APPLICATION = 2, + SYSDIR_DIRECTORY_DEVELOPER_APPLICATION = 3, + SYSDIR_DIRECTORY_ADMIN_APPLICATION = 4, + SYSDIR_DIRECTORY_LIBRARY = 5, + SYSDIR_DIRECTORY_DEVELOPER = 6, + SYSDIR_DIRECTORY_USER = 7, + SYSDIR_DIRECTORY_DOCUMENTATION = 8, + SYSDIR_DIRECTORY_DOCUMENT = 9, + SYSDIR_DIRECTORY_CORESERVICE = 10, + SYSDIR_DIRECTORY_AUTOSAVED_INFORMATION = 11, + SYSDIR_DIRECTORY_DESKTOP = 12, + SYSDIR_DIRECTORY_CACHES = 13, + SYSDIR_DIRECTORY_APPLICATION_SUPPORT = 14, + SYSDIR_DIRECTORY_DOWNLOADS = 15, + SYSDIR_DIRECTORY_INPUT_METHODS = 16, + SYSDIR_DIRECTORY_MOVIES = 17, + SYSDIR_DIRECTORY_MUSIC = 18, + SYSDIR_DIRECTORY_PICTURES = 19, + SYSDIR_DIRECTORY_PRINTER_DESCRIPTION = 20, + SYSDIR_DIRECTORY_SHARED_PUBLIC = 21, + SYSDIR_DIRECTORY_PREFERENCE_PANES = 22, + SYSDIR_DIRECTORY_ALL_APPLICATIONS = 100, + SYSDIR_DIRECTORY_ALL_LIBRARIES = 101, +} +impl ::Copy for sysdir_search_path_directory_t {} +impl ::Clone for sysdir_search_path_directory_t { + fn clone(&self) -> sysdir_search_path_directory_t { + *self + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[repr(u32)] +pub enum sysdir_search_path_domain_mask_t { + SYSDIR_DOMAIN_MASK_USER = (1 << 0), + SYSDIR_DOMAIN_MASK_LOCAL = (1 << 1), + SYSDIR_DOMAIN_MASK_NETWORK = (1 << 2), + SYSDIR_DOMAIN_MASK_SYSTEM = (1 << 3), + SYSDIR_DOMAIN_MASK_ALL = 0x0ffff, +} +impl ::Copy for sysdir_search_path_domain_mask_t {} +impl ::Clone for sysdir_search_path_domain_mask_t { + fn clone(&self) -> sysdir_search_path_domain_mask_t { + *self + } +} + +s! { + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct ip_mreqn { + pub imr_multiaddr: in_addr, + pub imr_address: in_addr, + pub imr_ifindex: ::c_int, + } + + pub struct ip_mreq_source { + pub imr_multiaddr: in_addr, + pub imr_sourceaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct aiocb { + pub aio_fildes: ::c_int, + pub aio_offset: ::off_t, + pub aio_buf: *mut ::c_void, + pub aio_nbytes: ::size_t, + pub aio_reqprio: ::c_int, + pub aio_sigevent: sigevent, + pub aio_lio_opcode: ::c_int + } + + pub struct glob_t { + pub gl_pathc: ::size_t, + __unused1: ::c_int, + pub gl_offs: ::size_t, + __unused2: ::c_int, + pub gl_pathv: *mut *mut ::c_char, + + __unused3: *mut ::c_void, + + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + __unused6: *mut ::c_void, + __unused7: *mut ::c_void, + __unused8: *mut ::c_void, + } + + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: ::socklen_t, + pub ai_canonname: *mut ::c_char, + pub ai_addr: *mut ::sockaddr, + pub ai_next: *mut addrinfo, + } + + #[deprecated( + since = "0.2.55", + note = "Use the `mach2` crate instead", + )] + pub struct mach_timebase_info { + pub numer: u32, + pub denom: u32, + } + + pub struct stat { + pub st_dev: dev_t, + pub st_mode: mode_t, + pub st_nlink: nlink_t, + pub st_ino: ino_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: dev_t, + pub st_atime: time_t, + pub st_atime_nsec: c_long, + pub st_mtime: time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: time_t, + pub st_ctime_nsec: c_long, + pub st_birthtime: time_t, + pub st_birthtime_nsec: c_long, + pub st_size: ::off_t, + pub st_blocks: ::blkcnt_t, + pub st_blksize: blksize_t, + pub st_flags: u32, + pub st_gen: u32, + pub st_lspare: i32, + pub st_qspare: [i64; 2], + } + + pub struct pthread_mutexattr_t { + __sig: ::c_long, + __opaque: [u8; 8], + } + + pub struct pthread_condattr_t { + __sig: ::c_long, + __opaque: [u8; __PTHREAD_CONDATTR_SIZE__], + } + + pub struct pthread_rwlockattr_t { + __sig: ::c_long, + __opaque: [u8; __PTHREAD_RWLOCKATTR_SIZE__], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub si_pid: ::pid_t, + pub si_uid: ::uid_t, + pub si_status: ::c_int, + pub si_addr: *mut ::c_void, + //Requires it to be union for tests + //pub si_value: ::sigval, + _pad: [usize; 9], + } + + pub struct sigaction { + // FIXME: this field is actually a union + pub sa_sigaction: ::sighandler_t, + pub sa_mask: sigset_t, + pub sa_flags: ::c_int, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } + + pub struct fstore_t { + pub fst_flags: ::c_uint, + pub fst_posmode: ::c_int, + pub fst_offset: ::off_t, + pub fst_length: ::off_t, + pub fst_bytesalloc: ::off_t, + } + + pub struct radvisory { + pub ra_offset: ::off_t, + pub ra_count: ::c_int, + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + } + + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } + + pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [::c_char; 8], + } + + pub struct kevent64_s { + pub ident: u64, + pub filter: i16, + pub flags: u16, + pub fflags: u32, + pub data: i64, + pub udata: u64, + pub ext: [u64; 2], + } + + pub struct dqblk { + pub dqb_bhardlimit: u64, + pub dqb_bsoftlimit: u64, + pub dqb_curbytes: u64, + pub dqb_ihardlimit: u32, + pub dqb_isoftlimit: u32, + pub dqb_curinodes: u32, + pub dqb_btime: u32, + pub dqb_itime: u32, + pub dqb_id: u32, + pub dqb_spare: [u32; 4], + } + + pub struct if_msghdr { + pub ifm_msglen: ::c_ushort, + pub ifm_version: ::c_uchar, + pub ifm_type: ::c_uchar, + pub ifm_addrs: ::c_int, + pub ifm_flags: ::c_int, + pub ifm_index: ::c_ushort, + pub ifm_data: if_data, + } + + pub struct ifa_msghdr { + pub ifam_msglen: ::c_ushort, + pub ifam_version: ::c_uchar, + pub ifam_type: ::c_uchar, + pub ifam_addrs: ::c_int, + pub ifam_flags: ::c_int, + pub ifam_index: ::c_ushort, + pub ifam_metric: ::c_int, + } + + pub struct ifma_msghdr { + pub ifmam_msglen: ::c_ushort, + pub ifmam_version: ::c_uchar, + pub ifmam_type: ::c_uchar, + pub ifmam_addrs: ::c_int, + pub ifmam_flags: ::c_int, + pub ifmam_index: ::c_ushort, + } + + pub struct ifma_msghdr2 { + pub ifmam_msglen: ::c_ushort, + pub ifmam_version: ::c_uchar, + pub ifmam_type: ::c_uchar, + pub ifmam_addrs: ::c_int, + pub ifmam_flags: ::c_int, + pub ifmam_index: ::c_ushort, + pub ifmam_refcount: i32, + } + + pub struct rt_metrics { + pub rmx_locks: u32, + pub rmx_mtu: u32, + pub rmx_hopcount: u32, + pub rmx_expire: i32, + pub rmx_recvpipe: u32, + pub rmx_sendpipe: u32, + pub rmx_ssthresh: u32, + pub rmx_rtt: u32, + pub rmx_rttvar: u32, + pub rmx_pksent: u32, + pub rmx_state: u32, + pub rmx_filler: [u32; 3], + } + + pub struct rt_msghdr { + pub rtm_msglen: ::c_ushort, + pub rtm_version: ::c_uchar, + pub rtm_type: ::c_uchar, + pub rtm_index: ::c_ushort, + pub rtm_flags: ::c_int, + pub rtm_addrs: ::c_int, + pub rtm_pid: ::pid_t, + pub rtm_seq: ::c_int, + pub rtm_errno: ::c_int, + pub rtm_use: ::c_int, + pub rtm_inits: u32, + pub rtm_rmx: rt_metrics, + } + + pub struct rt_msghdr2 { + pub rtm_msglen: ::c_ushort, + pub rtm_version: ::c_uchar, + pub rtm_type: ::c_uchar, + pub rtm_index: ::c_ushort, + pub rtm_flags: ::c_int, + pub rtm_addrs: ::c_int, + pub rtm_refcnt: i32, + pub rtm_parentflags: ::c_int, + pub rtm_reserved: ::c_int, + pub rtm_use: ::c_int, + pub rtm_inits: u32, + pub rtm_rmx: rt_metrics, + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_cc: [::cc_t; ::NCCS], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, + } + + pub struct flock { + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + pub l_type: ::c_short, + pub l_whence: ::c_short, + } + + pub struct sf_hdtr { + pub headers: *mut ::iovec, + pub hdr_cnt: ::c_int, + pub trailers: *mut ::iovec, + pub trl_cnt: ::c_int, + } + + pub struct lconv { + pub decimal_point: *mut ::c_char, + pub thousands_sep: *mut ::c_char, + pub grouping: *mut ::c_char, + pub int_curr_symbol: *mut ::c_char, + pub currency_symbol: *mut ::c_char, + pub mon_decimal_point: *mut ::c_char, + pub mon_thousands_sep: *mut ::c_char, + pub mon_grouping: *mut ::c_char, + pub positive_sign: *mut ::c_char, + pub negative_sign: *mut ::c_char, + pub int_frac_digits: ::c_char, + pub frac_digits: ::c_char, + pub p_cs_precedes: ::c_char, + pub p_sep_by_space: ::c_char, + pub n_cs_precedes: ::c_char, + pub n_sep_by_space: ::c_char, + pub p_sign_posn: ::c_char, + pub n_sign_posn: ::c_char, + pub int_p_cs_precedes: ::c_char, + pub int_n_cs_precedes: ::c_char, + pub int_p_sep_by_space: ::c_char, + pub int_n_sep_by_space: ::c_char, + pub int_p_sign_posn: ::c_char, + pub int_n_sign_posn: ::c_char, + } + + pub struct proc_taskinfo { + pub pti_virtual_size: u64, + pub pti_resident_size: u64, + pub pti_total_user: u64, + pub pti_total_system: u64, + pub pti_threads_user: u64, + pub pti_threads_system: u64, + pub pti_policy: i32, + pub pti_faults: i32, + pub pti_pageins: i32, + pub pti_cow_faults: i32, + pub pti_messages_sent: i32, + pub pti_messages_received: i32, + pub pti_syscalls_mach: i32, + pub pti_syscalls_unix: i32, + pub pti_csw: i32, + pub pti_threadnum: i32, + pub pti_numrunning: i32, + pub pti_priority: i32, + } + + pub struct proc_bsdinfo { + pub pbi_flags: u32, + pub pbi_status: u32, + pub pbi_xstatus: u32, + pub pbi_pid: u32, + pub pbi_ppid: u32, + pub pbi_uid: ::uid_t, + pub pbi_gid: ::gid_t, + pub pbi_ruid: ::uid_t, + pub pbi_rgid: ::gid_t, + pub pbi_svuid: ::uid_t, + pub pbi_svgid: ::gid_t, + pub rfu_1: u32, + pub pbi_comm: [::c_char; MAXCOMLEN], + pub pbi_name: [::c_char; 32], // MAXCOMLEN * 2, but macro isn't happy... + pub pbi_nfiles: u32, + pub pbi_pgid: u32, + pub pbi_pjobc: u32, + pub e_tdev: u32, + pub e_tpgid: u32, + pub pbi_nice: i32, + pub pbi_start_tvsec: u64, + pub pbi_start_tvusec: u64, + } + + pub struct proc_taskallinfo { + pub pbsd: proc_bsdinfo, + pub ptinfo: proc_taskinfo, + } + + pub struct xsw_usage { + pub xsu_total: u64, + pub xsu_avail: u64, + pub xsu_used: u64, + pub xsu_pagesize: u32, + pub xsu_encrypted: ::boolean_t, + } + + pub struct xucred { + pub cr_version: ::c_uint, + pub cr_uid: ::uid_t, + pub cr_ngroups: ::c_short, + pub cr_groups: [::gid_t;16] + } + + #[deprecated( + since = "0.2.55", + note = "Use the `mach2` crate instead", + )] + pub struct mach_header { + pub magic: u32, + pub cputype: cpu_type_t, + pub cpusubtype: cpu_subtype_t, + pub filetype: u32, + pub ncmds: u32, + pub sizeofcmds: u32, + pub flags: u32, + } + + #[deprecated( + since = "0.2.55", + note = "Use the `mach2` crate instead", + )] + pub struct mach_header_64 { + pub magic: u32, + pub cputype: cpu_type_t, + pub cpusubtype: cpu_subtype_t, + pub filetype: u32, + pub ncmds: u32, + pub sizeofcmds: u32, + pub flags: u32, + pub reserved: u32, + } + + pub struct segment_command { + pub cmd: u32, + pub cmdsize: u32, + pub segname: [::c_char; 16], + pub vmaddr: u32, + pub vmsize: u32, + pub fileoff: u32, + pub filesize: u32, + pub maxprot: vm_prot_t, + pub initprot: vm_prot_t, + pub nsects: u32, + pub flags: u32, + } + + pub struct segment_command_64 { + pub cmd: u32, + pub cmdsize: u32, + pub segname: [::c_char; 16], + pub vmaddr: u64, + pub vmsize: u64, + pub fileoff: u64, + pub filesize: u64, + pub maxprot: vm_prot_t, + pub initprot: vm_prot_t, + pub nsects: u32, + pub flags: u32, + } + + pub struct load_command { + pub cmd: u32, + pub cmdsize: u32, + } + + pub struct sockaddr_dl { + pub sdl_len: ::c_uchar, + pub sdl_family: ::c_uchar, + pub sdl_index: ::c_ushort, + pub sdl_type: ::c_uchar, + pub sdl_nlen: ::c_uchar, + pub sdl_alen: ::c_uchar, + pub sdl_slen: ::c_uchar, + pub sdl_data: [::c_char; 12], + } + + pub struct sockaddr_inarp { + pub sin_len: ::c_uchar, + pub sin_family: ::c_uchar, + pub sin_port: ::c_ushort, + pub sin_addr: ::in_addr, + pub sin_srcaddr: ::in_addr, + pub sin_tos: ::c_ushort, + pub sin_other: ::c_ushort, + } + + pub struct sockaddr_ctl { + pub sc_len: ::c_uchar, + pub sc_family: ::c_uchar, + pub ss_sysaddr: u16, + pub sc_id: u32, + pub sc_unit: u32, + pub sc_reserved: [u32; 5], + } + + pub struct in_pktinfo { + pub ipi_ifindex: ::c_uint, + pub ipi_spec_dst: ::in_addr, + pub ipi_addr: ::in_addr, + } + + pub struct in6_pktinfo { + pub ipi6_addr: ::in6_addr, + pub ipi6_ifindex: ::c_uint, + } + + // sys/ipc.h: + + pub struct ipc_perm { + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub _seq: ::c_ushort, + pub _key: ::key_t, + } + + // sys/sem.h + + pub struct sembuf { + pub sem_num: ::c_ushort, + pub sem_op: ::c_short, + pub sem_flg: ::c_short, + } + + // sys/shm.h + + pub struct arphdr { + pub ar_hrd: u16, + pub ar_pro: u16, + pub ar_hln: u8, + pub ar_pln: u8, + pub ar_op: u16, + } + + pub struct in_addr { + pub s_addr: ::in_addr_t, + } + + // net/ndrv.h + pub struct sockaddr_ndrv { + pub snd_len: ::c_uchar, + pub snd_family: ::c_uchar, + pub snd_name: [::c_uchar; 16] // IFNAMSIZ from if.h + } + + // sys/socket.h + + pub struct sa_endpoints_t { + pub sae_srcif: ::c_uint, // optional source interface + pub sae_srcaddr: *const ::sockaddr, // optional source address + pub sae_srcaddrlen: ::socklen_t, // size of source address + pub sae_dstaddr: *const ::sockaddr, // destination address + pub sae_dstaddrlen: ::socklen_t, // size of destination address + } + + pub struct timex { + pub modes: ::c_uint, + pub offset: ::c_long, + pub freq: ::c_long, + pub maxerror: ::c_long, + pub esterror: ::c_long, + pub status: ::c_int, + pub constant: ::c_long, + pub precision: ::c_long, + pub tolerance: ::c_long, + pub ppsfreq: ::c_long, + pub jitter: ::c_long, + pub shift: ::c_int, + pub stabil: ::c_long, + pub jitcnt: ::c_long, + pub calcnt: ::c_long, + pub errcnt: ::c_long, + pub stbcnt: ::c_long, + } + + pub struct ntptimeval { + pub time: ::timespec, + pub maxerror: ::c_long, + pub esterror: ::c_long, + pub tai: ::c_long, + pub time_state: ::c_int, + } + + pub struct thread_standard_policy { + pub no_data: natural_t, + } + + pub struct thread_extended_policy { + pub timeshare: boolean_t, + } + + pub struct thread_time_constraint_policy { + pub period: u32, + pub computation: u32, + pub constraint: u32, + pub preemptible: boolean_t, + } + + pub struct thread_precedence_policy { + pub importance: integer_t, + } + + pub struct thread_affinity_policy { + pub affinity_tag: integer_t, + } + + pub struct thread_background_policy { + pub priority: integer_t, + } + + pub struct thread_latency_qos_policy { + pub thread_latency_qos_tier: thread_latency_qos_t, + } + + pub struct thread_throughput_qos_policy { + pub thread_throughput_qos_tier: thread_throughput_qos_t, + } + + // malloc/malloc.h + pub struct malloc_statistics_t { + pub blocks_in_use: ::c_uint, + pub size_in_use: ::size_t, + pub max_size_in_use: ::size_t, + pub size_allocated: ::size_t, + } + + pub struct mstats { + pub bytes_total: ::size_t, + pub chunks_used: ::size_t, + pub bytes_used: ::size_t, + pub chunks_free: ::size_t, + pub bytes_free: ::size_t, + } + + pub struct vm_range_t { + pub address: ::vm_address_t, + pub size: ::vm_size_t, + } + + // sched.h + pub struct sched_param { + pub sched_priority: ::c_int, + __opaque: [::c_char; 4], + } + + pub struct vinfo_stat { + pub vst_dev: u32, + pub vst_mode: u16, + pub vst_nlink: u16, + pub vst_ino: u64, + pub vst_uid: ::uid_t, + pub vst_gid: ::gid_t, + pub vst_atime: i64, + pub vst_atimensec: i64, + pub vst_mtime: i64, + pub vst_mtimensec: i64, + pub vst_ctime: i64, + pub vst_ctimensec: i64, + pub vst_birthtime: i64, + pub vst_birthtimensec: i64, + pub vst_size: ::off_t, + pub vst_blocks: i64, + pub vst_blksize: i32, + pub vst_flags: u32, + pub vst_gen: u32, + pub vst_rdev: u32, + pub vst_qspare: [i64; 2], + } + + pub struct vnode_info { + pub vi_stat: vinfo_stat, + pub vi_type: ::c_int, + pub vi_pad: ::c_int, + pub vi_fsid: ::fsid_t, + } + + pub struct vnode_info_path { + pub vip_vi: vnode_info, + // Normally it's `vip_path: [::c_char; MAXPATHLEN]` but because libc supports an old rustc + // version, we go around this limitation like this. + pub vip_path: [[::c_char; 32]; 32], + } + + pub struct proc_vnodepathinfo { + pub pvi_cdir: vnode_info_path, + pub pvi_rdir: vnode_info_path, + } + + pub struct vm_statistics { + pub free_count: natural_t, + pub active_count: natural_t, + pub inactive_count: natural_t, + pub wire_count: natural_t, + pub zero_fill_count: natural_t, + pub reactivations: natural_t, + pub pageins: natural_t, + pub pageouts: natural_t, + pub faults: natural_t, + pub cow_faults: natural_t, + pub lookups: natural_t, + pub hits: natural_t, + pub purgeable_count: natural_t, + pub purges: natural_t, + pub speculative_count: natural_t, + } + + pub struct task_thread_times_info { + pub user_time: time_value_t, + pub system_time: time_value_t, + } + + pub struct rusage_info_v0 { + pub ri_uuid: [u8; 16], + pub ri_user_time: u64, + pub ri_system_time: u64, + pub ri_pkg_idle_wkups: u64, + pub ri_interrupt_wkups: u64, + pub ri_pageins: u64, + pub ri_wired_size: u64, + pub ri_resident_size: u64, + pub ri_phys_footprint: u64, + pub ri_proc_start_abstime: u64, + pub ri_proc_exit_abstime: u64, + } + + pub struct rusage_info_v1 { + pub ri_uuid: [u8; 16], + pub ri_user_time: u64, + pub ri_system_time: u64, + pub ri_pkg_idle_wkups: u64, + pub ri_interrupt_wkups: u64, + pub ri_pageins: u64, + pub ri_wired_size: u64, + pub ri_resident_size: u64, + pub ri_phys_footprint: u64, + pub ri_proc_start_abstime: u64, + pub ri_proc_exit_abstime: u64, + pub ri_child_user_time: u64, + pub ri_child_system_time: u64, + pub ri_child_pkg_idle_wkups: u64, + pub ri_child_interrupt_wkups: u64, + pub ri_child_pageins: u64, + pub ri_child_elapsed_abstime: u64, + } + + pub struct rusage_info_v2 { + pub ri_uuid: [u8; 16], + pub ri_user_time: u64, + pub ri_system_time: u64, + pub ri_pkg_idle_wkups: u64, + pub ri_interrupt_wkups: u64, + pub ri_pageins: u64, + pub ri_wired_size: u64, + pub ri_resident_size: u64, + pub ri_phys_footprint: u64, + pub ri_proc_start_abstime: u64, + pub ri_proc_exit_abstime: u64, + pub ri_child_user_time: u64, + pub ri_child_system_time: u64, + pub ri_child_pkg_idle_wkups: u64, + pub ri_child_interrupt_wkups: u64, + pub ri_child_pageins: u64, + pub ri_child_elapsed_abstime: u64, + pub ri_diskio_bytesread: u64, + pub ri_diskio_byteswritten: u64, + } + + pub struct rusage_info_v3 { + pub ri_uuid: [u8; 16], + pub ri_user_time: u64, + pub ri_system_time: u64, + pub ri_pkg_idle_wkups: u64, + pub ri_interrupt_wkups: u64, + pub ri_pageins: u64, + pub ri_wired_size: u64, + pub ri_resident_size: u64, + pub ri_phys_footprint: u64, + pub ri_proc_start_abstime: u64, + pub ri_proc_exit_abstime: u64, + pub ri_child_user_time: u64, + pub ri_child_system_time: u64, + pub ri_child_pkg_idle_wkups: u64, + pub ri_child_interrupt_wkups: u64, + pub ri_child_pageins: u64, + pub ri_child_elapsed_abstime: u64, + pub ri_diskio_bytesread: u64, + pub ri_diskio_byteswritten: u64, + pub ri_cpu_time_qos_default: u64, + pub ri_cpu_time_qos_maintenance: u64, + pub ri_cpu_time_qos_background: u64, + pub ri_cpu_time_qos_utility: u64, + pub ri_cpu_time_qos_legacy: u64, + pub ri_cpu_time_qos_user_initiated: u64, + pub ri_cpu_time_qos_user_interactive: u64, + pub ri_billed_system_time: u64, + pub ri_serviced_system_time: u64, + } + + pub struct rusage_info_v4 { + pub ri_uuid: [u8; 16], + pub ri_user_time: u64, + pub ri_system_time: u64, + pub ri_pkg_idle_wkups: u64, + pub ri_interrupt_wkups: u64, + pub ri_pageins: u64, + pub ri_wired_size: u64, + pub ri_resident_size: u64, + pub ri_phys_footprint: u64, + pub ri_proc_start_abstime: u64, + pub ri_proc_exit_abstime: u64, + pub ri_child_user_time: u64, + pub ri_child_system_time: u64, + pub ri_child_pkg_idle_wkups: u64, + pub ri_child_interrupt_wkups: u64, + pub ri_child_pageins: u64, + pub ri_child_elapsed_abstime: u64, + pub ri_diskio_bytesread: u64, + pub ri_diskio_byteswritten: u64, + pub ri_cpu_time_qos_default: u64, + pub ri_cpu_time_qos_maintenance: u64, + pub ri_cpu_time_qos_background: u64, + pub ri_cpu_time_qos_utility: u64, + pub ri_cpu_time_qos_legacy: u64, + pub ri_cpu_time_qos_user_initiated: u64, + pub ri_cpu_time_qos_user_interactive: u64, + pub ri_billed_system_time: u64, + pub ri_serviced_system_time: u64, + pub ri_logical_writes: u64, + pub ri_lifetime_max_phys_footprint: u64, + pub ri_instructions: u64, + pub ri_cycles: u64, + pub ri_billed_energy: u64, + pub ri_serviced_energy: u64, + pub ri_interval_max_phys_footprint: u64, + pub ri_runnable_time: u64, + } + + pub struct image_offset { + pub uuid: ::uuid_t, + pub offset: u32, + } + + pub struct attrlist { + pub bitmapcount: ::c_ushort, + pub reserved: u16, + pub commonattr: attrgroup_t, + pub volattr: attrgroup_t, + pub dirattr: attrgroup_t, + pub fileattr: attrgroup_t, + pub forkattr: attrgroup_t, + } + + pub struct attrreference_t { + pub attr_dataoffset: i32, + pub attr_length: u32, + } + + pub struct vol_capabilities_attr_t { + pub capabilities: vol_capabilities_set_t, + pub valid: vol_capabilities_set_t, + } + + pub struct attribute_set_t { + pub commonattr: attrgroup_t, + pub volattr: attrgroup_t, + pub dirattr: attrgroup_t, + pub fileattr: attrgroup_t, + pub forkattr: attrgroup_t, + } + + pub struct vol_attributes_attr_t { + pub validattr: attribute_set_t, + pub nativeattr: attribute_set_t, + } +} + +s_no_extra_traits! { + #[cfg_attr(libc_packedN, repr(packed(4)))] + pub struct kevent { + pub ident: ::uintptr_t, + pub filter: i16, + pub flags: u16, + pub fflags: u32, + pub data: ::intptr_t, + pub udata: *mut ::c_void, + } + + #[cfg_attr(libc_packedN, repr(packed(4)))] + pub struct semid_ds { + // Note the manpage shows different types than the system header. + pub sem_perm: ipc_perm, + pub sem_base: i32, + pub sem_nsems: ::c_ushort, + pub sem_otime: ::time_t, + pub sem_pad1: i32, + pub sem_ctime: ::time_t, + pub sem_pad2: i32, + pub sem_pad3: [i32; 4], + } + + #[cfg_attr(libc_packedN, repr(packed(4)))] + pub struct shmid_ds { + pub shm_perm: ipc_perm, + pub shm_segsz: ::size_t, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + pub shm_atime: ::time_t, // FIXME: 64-bit wrong align => wrong offset + pub shm_dtime: ::time_t, // FIXME: 64-bit wrong align => wrong offset + pub shm_ctime: ::time_t, // FIXME: 64-bit wrong align => wrong offset + // FIXME: 64-bit wrong align => wrong offset: + pub shm_internal: *mut ::c_void, + } + + pub struct proc_threadinfo { + pub pth_user_time: u64, + pub pth_system_time: u64, + pub pth_cpu_usage: i32, + pub pth_policy: i32, + pub pth_run_state: i32, + pub pth_flags: i32, + pub pth_sleep_time: i32, + pub pth_curpri: i32, + pub pth_priority: i32, + pub pth_maxpriority: i32, + pub pth_name: [::c_char; MAXTHREADNAMESIZE], + } + + pub struct statfs { + pub f_bsize: u32, + pub f_iosize: i32, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::fsid_t, + pub f_owner: ::uid_t, + pub f_type: u32, + pub f_flags: u32, + pub f_fssubtype: u32, + pub f_fstypename: [::c_char; 16], + pub f_mntonname: [::c_char; 1024], + pub f_mntfromname: [::c_char; 1024], + pub f_flags_ext: u32, + pub f_reserved: [u32; 7], + } + + pub struct dirent { + pub d_ino: u64, + pub d_seekoff: u64, + pub d_reclen: u16, + pub d_namlen: u16, + pub d_type: u8, + pub d_name: [::c_char; 1024], + } + + pub struct pthread_rwlock_t { + __sig: ::c_long, + __opaque: [u8; __PTHREAD_RWLOCK_SIZE__], + } + + pub struct pthread_mutex_t { + __sig: ::c_long, + __opaque: [u8; __PTHREAD_MUTEX_SIZE__], + } + + pub struct pthread_cond_t { + __sig: ::c_long, + __opaque: [u8; __PTHREAD_COND_SIZE__], + } + + pub struct sockaddr_storage { + pub ss_len: u8, + pub ss_family: ::sa_family_t, + __ss_pad1: [u8; 6], + __ss_align: i64, + __ss_pad2: [u8; 112], + } + + pub struct utmpx { + pub ut_user: [::c_char; _UTX_USERSIZE], + pub ut_id: [::c_char; _UTX_IDSIZE], + pub ut_line: [::c_char; _UTX_LINESIZE], + pub ut_pid: ::pid_t, + pub ut_type: ::c_short, + pub ut_tv: ::timeval, + pub ut_host: [::c_char; _UTX_HOSTSIZE], + ut_pad: [u32; 16], + } + + pub struct sigevent { + pub sigev_notify: ::c_int, + pub sigev_signo: ::c_int, + pub sigev_value: ::sigval, + __unused1: *mut ::c_void, //actually a function pointer + pub sigev_notify_attributes: *mut ::pthread_attr_t + } + + pub struct processor_cpu_load_info { + pub cpu_ticks: [::c_uint; CPU_STATE_MAX as usize], + } + + pub struct processor_basic_info { + pub cpu_type: cpu_type_t, + pub cpu_subtype: cpu_subtype_t, + pub running: ::boolean_t, + pub slot_num: ::c_int, + pub is_master: ::boolean_t, + } + + pub struct processor_set_basic_info { + pub processor_count: ::c_int, + pub default_policy: ::c_int, + } + + pub struct processor_set_load_info { + pub task_count: ::c_int, + pub thread_count: ::c_int, + pub load_average: integer_t, + pub mach_factor: integer_t, + } + + pub struct time_value_t { + pub seconds: integer_t, + pub microseconds: integer_t, + } + + pub struct thread_basic_info { + pub user_time: time_value_t, + pub system_time: time_value_t, + pub cpu_usage: ::integer_t, + pub policy: ::policy_t, + pub run_state: ::integer_t, + pub flags: ::integer_t, + pub suspend_count: ::integer_t, + pub sleep_time: ::integer_t, + } + + pub struct thread_identifier_info { + pub thread_id: u64, + pub thread_handle: u64, + pub dispatch_qaddr: u64, + } + + pub struct thread_extended_info { + pub pth_user_time: u64, + pub pth_system_time: u64, + pub pth_cpu_usage: i32, + pub pth_policy: i32, + pub pth_run_state: i32, + pub pth_flags: i32, + pub pth_sleep_time: i32, + pub pth_curpri: i32, + pub pth_priority: i32, + pub pth_maxpriority: i32, + pub pth_name: [::c_char; MAXTHREADNAMESIZE], + } + + #[cfg_attr(libc_packedN, repr(packed(4)))] + pub struct if_data64 { + pub ifi_type: ::c_uchar, + pub ifi_typelen: ::c_uchar, + pub ifi_physical: ::c_uchar, + pub ifi_addrlen: ::c_uchar, + pub ifi_hdrlen: ::c_uchar, + pub ifi_recvquota: ::c_uchar, + pub ifi_xmitquota: ::c_uchar, + pub ifi_unused1: ::c_uchar, + pub ifi_mtu: u32, + pub ifi_metric: u32, + pub ifi_baudrate: u64, + pub ifi_ipackets: u64, + pub ifi_ierrors: u64, + pub ifi_opackets: u64, + pub ifi_oerrors: u64, + pub ifi_collisions: u64, + pub ifi_ibytes: u64, + pub ifi_obytes: u64, + pub ifi_imcasts: u64, + pub ifi_omcasts: u64, + pub ifi_iqdrops: u64, + pub ifi_noproto: u64, + pub ifi_recvtiming: u32, + pub ifi_xmittiming: u32, + #[cfg(target_pointer_width = "32")] + pub ifi_lastchange: ::timeval, + #[cfg(not(target_pointer_width = "32"))] + pub ifi_lastchange: timeval32, + } + + #[cfg_attr(libc_packedN, repr(packed(4)))] + pub struct if_msghdr2 { + pub ifm_msglen: ::c_ushort, + pub ifm_version: ::c_uchar, + pub ifm_type: ::c_uchar, + pub ifm_addrs: ::c_int, + pub ifm_flags: ::c_int, + pub ifm_index: ::c_ushort, + pub ifm_snd_len: ::c_int, + pub ifm_snd_maxlen: ::c_int, + pub ifm_snd_drops: ::c_int, + pub ifm_timer: ::c_int, + pub ifm_data: if_data64, + } + + #[cfg_attr(libc_packedN, repr(packed(8)))] + pub struct vm_statistics64 { + pub free_count: natural_t, + pub active_count: natural_t, + pub inactive_count: natural_t, + pub wire_count: natural_t, + pub zero_fill_count: u64, + pub reactivations: u64, + pub pageins: u64, + pub pageouts: u64, + pub faults: u64, + pub cow_faults: u64, + pub lookups: u64, + pub hits: u64, + pub purges: u64, + pub purgeable_count: natural_t, + pub speculative_count: natural_t, + pub decompressions: u64, + pub compressions: u64, + pub swapins: u64, + pub swapouts: u64, + pub compressor_page_count: natural_t, + pub throttled_count: natural_t, + pub external_page_count: natural_t, + pub internal_page_count: natural_t, + pub total_uncompressed_pages_in_compressor: u64, + } + + #[cfg_attr(libc_packedN, repr(packed(4)))] + pub struct mach_task_basic_info { + pub virtual_size: mach_vm_size_t, + pub resident_size: mach_vm_size_t, + pub resident_size_max: mach_vm_size_t, + pub user_time: time_value_t, + pub system_time: time_value_t, + pub policy: ::policy_t, + pub suspend_count: integer_t, + } + + #[cfg_attr(libc_packedN, repr(packed(4)))] + pub struct log2phys { + pub l2p_flags: ::c_uint, + pub l2p_contigbytes: ::off_t, + pub l2p_devoffset: ::off_t, + } + + pub struct os_unfair_lock_s { + _os_unfair_lock_opaque: u32, + } + + #[cfg_attr(libc_packedN, repr(packed(1)))] + pub struct sockaddr_vm { + pub svm_len: ::c_uchar, + pub svm_family: ::sa_family_t, + pub svm_reserved1: ::c_ushort, + pub svm_port: ::c_uint, + pub svm_cid: ::c_uint, + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + self.si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + _si_pid: ::pid_t, + _si_uid: ::uid_t, + _si_status: ::c_int, + _si_addr: *mut ::c_void, + si_value: ::sigval, + } + + (*(self as *const siginfo_t as *const siginfo_timer)).si_value + } + + pub unsafe fn si_pid(&self) -> ::pid_t { + self.si_pid + } + + pub unsafe fn si_uid(&self) -> ::uid_t { + self.si_uid + } + + pub unsafe fn si_status(&self) -> ::c_int { + self.si_status + } +} + +cfg_if! { + if #[cfg(libc_union)] { + s_no_extra_traits! { + pub union semun { + pub val: ::c_int, + pub buf: *mut semid_ds, + pub array: *mut ::c_ushort, + } + } + + cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for semun { + fn eq(&self, other: &semun) -> bool { + unsafe { self.val == other.val } + } + } + impl Eq for semun {} + impl ::fmt::Debug for semun { + fn fmt(&self, f: &mut ::fmt::Formatter) + -> ::fmt::Result { + f.debug_struct("semun") + .field("val", unsafe { &self.val }) + .finish() + } + } + impl ::hash::Hash for semun { + fn hash(&self, state: &mut H) { + unsafe { self.val.hash(state) }; + } + } + } + } + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for kevent { + fn eq(&self, other: &kevent) -> bool { + self.ident == other.ident + && self.filter == other.filter + && self.flags == other.flags + && self.fflags == other.fflags + && self.data == other.data + && self.udata == other.udata + } + } + impl Eq for kevent {} + impl ::fmt::Debug for kevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let ident = self.ident; + let filter = self.filter; + let flags = self.flags; + let fflags = self.fflags; + let data = self.data; + let udata = self.udata; + f.debug_struct("kevent") + .field("ident", &ident) + .field("filter", &filter) + .field("flags", &flags) + .field("fflags", &fflags) + .field("data", &data) + .field("udata", &udata) + .finish() + } + } + impl ::hash::Hash for kevent { + fn hash(&self, state: &mut H) { + let ident = self.ident; + let filter = self.filter; + let flags = self.flags; + let fflags = self.fflags; + let data = self.data; + let udata = self.udata; + ident.hash(state); + filter.hash(state); + flags.hash(state); + fflags.hash(state); + data.hash(state); + udata.hash(state); + } + } + + impl PartialEq for semid_ds { + fn eq(&self, other: &semid_ds) -> bool { + let sem_perm = self.sem_perm; + let sem_pad3 = self.sem_pad3; + let other_sem_perm = other.sem_perm; + let other_sem_pad3 = other.sem_pad3; + sem_perm == other_sem_perm + && self.sem_base == other.sem_base + && self.sem_nsems == other.sem_nsems + && self.sem_otime == other.sem_otime + && self.sem_pad1 == other.sem_pad1 + && self.sem_ctime == other.sem_ctime + && self.sem_pad2 == other.sem_pad2 + && sem_pad3 == other_sem_pad3 + } + } + impl Eq for semid_ds {} + impl ::fmt::Debug for semid_ds { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let sem_perm = self.sem_perm; + let sem_base = self.sem_base; + let sem_nsems = self.sem_nsems; + let sem_otime = self.sem_otime; + let sem_pad1 = self.sem_pad1; + let sem_ctime = self.sem_ctime; + let sem_pad2 = self.sem_pad2; + let sem_pad3 = self.sem_pad3; + f.debug_struct("semid_ds") + .field("sem_perm", &sem_perm) + .field("sem_base", &sem_base) + .field("sem_nsems", &sem_nsems) + .field("sem_otime", &sem_otime) + .field("sem_pad1", &sem_pad1) + .field("sem_ctime", &sem_ctime) + .field("sem_pad2", &sem_pad2) + .field("sem_pad3", &sem_pad3) + .finish() + } + } + impl ::hash::Hash for semid_ds { + fn hash(&self, state: &mut H) { + let sem_perm = self.sem_perm; + let sem_base = self.sem_base; + let sem_nsems = self.sem_nsems; + let sem_otime = self.sem_otime; + let sem_pad1 = self.sem_pad1; + let sem_ctime = self.sem_ctime; + let sem_pad2 = self.sem_pad2; + let sem_pad3 = self.sem_pad3; + sem_perm.hash(state); + sem_base.hash(state); + sem_nsems.hash(state); + sem_otime.hash(state); + sem_pad1.hash(state); + sem_ctime.hash(state); + sem_pad2.hash(state); + sem_pad3.hash(state); + } + } + + impl PartialEq for shmid_ds { + fn eq(&self, other: &shmid_ds) -> bool { + let shm_perm = self.shm_perm; + let other_shm_perm = other.shm_perm; + shm_perm == other_shm_perm + && self.shm_segsz == other.shm_segsz + && self.shm_lpid == other.shm_lpid + && self.shm_cpid == other.shm_cpid + && self.shm_nattch == other.shm_nattch + && self.shm_atime == other.shm_atime + && self.shm_dtime == other.shm_dtime + && self.shm_ctime == other.shm_ctime + && self.shm_internal == other.shm_internal + } + } + impl Eq for shmid_ds {} + impl ::fmt::Debug for shmid_ds { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let shm_perm = self.shm_perm; + let shm_segsz = self.shm_segsz; + let shm_lpid = self.shm_lpid; + let shm_cpid = self.shm_cpid; + let shm_nattch = self.shm_nattch; + let shm_atime = self.shm_atime; + let shm_dtime = self.shm_dtime; + let shm_ctime = self.shm_ctime; + let shm_internal = self.shm_internal; + f.debug_struct("shmid_ds") + .field("shm_perm", &shm_perm) + .field("shm_segsz", &shm_segsz) + .field("shm_lpid", &shm_lpid) + .field("shm_cpid", &shm_cpid) + .field("shm_nattch", &shm_nattch) + .field("shm_atime", &shm_atime) + .field("shm_dtime", &shm_dtime) + .field("shm_ctime", &shm_ctime) + .field("shm_internal", &shm_internal) + .finish() + } + } + impl ::hash::Hash for shmid_ds { + fn hash(&self, state: &mut H) { + let shm_perm = self.shm_perm; + let shm_segsz = self.shm_segsz; + let shm_lpid = self.shm_lpid; + let shm_cpid = self.shm_cpid; + let shm_nattch = self.shm_nattch; + let shm_atime = self.shm_atime; + let shm_dtime = self.shm_dtime; + let shm_ctime = self.shm_ctime; + let shm_internal = self.shm_internal; + shm_perm.hash(state); + shm_segsz.hash(state); + shm_lpid.hash(state); + shm_cpid.hash(state); + shm_nattch.hash(state); + shm_atime.hash(state); + shm_dtime.hash(state); + shm_ctime.hash(state); + shm_internal.hash(state); + } + } + + impl PartialEq for proc_threadinfo { + fn eq(&self, other: &proc_threadinfo) -> bool { + self.pth_user_time == other.pth_user_time + && self.pth_system_time == other.pth_system_time + && self.pth_cpu_usage == other.pth_cpu_usage + && self.pth_policy == other.pth_policy + && self.pth_run_state == other.pth_run_state + && self.pth_flags == other.pth_flags + && self.pth_sleep_time == other.pth_sleep_time + && self.pth_curpri == other.pth_curpri + && self.pth_priority == other.pth_priority + && self.pth_maxpriority == other.pth_maxpriority + && self.pth_name + .iter() + .zip(other.pth_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for proc_threadinfo {} + impl ::fmt::Debug for proc_threadinfo { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("proc_threadinfo") + .field("pth_user_time", &self.pth_user_time) + .field("pth_system_time", &self.pth_system_time) + .field("pth_cpu_usage", &self.pth_cpu_usage) + .field("pth_policy", &self.pth_policy) + .field("pth_run_state", &self.pth_run_state) + .field("pth_flags", &self.pth_flags) + .field("pth_sleep_time", &self.pth_sleep_time) + .field("pth_curpri", &self.pth_curpri) + .field("pth_priority", &self.pth_priority) + .field("pth_maxpriority", &self.pth_maxpriority) + // FIXME: .field("pth_name", &self.pth_name) + .finish() + } + } + impl ::hash::Hash for proc_threadinfo { + fn hash(&self, state: &mut H) { + self.pth_user_time.hash(state); + self.pth_system_time.hash(state); + self.pth_cpu_usage.hash(state); + self.pth_policy.hash(state); + self.pth_run_state.hash(state); + self.pth_flags.hash(state); + self.pth_sleep_time.hash(state); + self.pth_curpri.hash(state); + self.pth_priority.hash(state); + self.pth_maxpriority.hash(state); + self.pth_name.hash(state); + } + } + + impl PartialEq for statfs { + fn eq(&self, other: &statfs) -> bool { + self.f_bsize == other.f_bsize + && self.f_iosize == other.f_iosize + && self.f_blocks == other.f_blocks + && self.f_bfree == other.f_bfree + && self.f_bavail == other.f_bavail + && self.f_files == other.f_files + && self.f_ffree == other.f_ffree + && self.f_fsid == other.f_fsid + && self.f_owner == other.f_owner + && self.f_flags == other.f_flags + && self.f_fssubtype == other.f_fssubtype + && self.f_fstypename == other.f_fstypename + && self.f_type == other.f_type + && self + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a,b)| a == b) + && self + .f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a,b)| a == b) + && self.f_reserved == other.f_reserved + } + } + + impl Eq for statfs {} + impl ::fmt::Debug for statfs { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("statfs") + .field("f_bsize", &self.f_bsize) + .field("f_iosize", &self.f_iosize) + .field("f_blocks", &self.f_blocks) + .field("f_bfree", &self.f_bfree) + .field("f_bavail", &self.f_bavail) + .field("f_files", &self.f_files) + .field("f_ffree", &self.f_ffree) + .field("f_fsid", &self.f_fsid) + .field("f_owner", &self.f_owner) + .field("f_flags", &self.f_flags) + .field("f_fssubtype", &self.f_fssubtype) + .field("f_fstypename", &self.f_fstypename) + .field("f_type", &self.f_type) + // FIXME: .field("f_mntonname", &self.f_mntonname) + // FIXME: .field("f_mntfromname", &self.f_mntfromname) + .field("f_reserved", &self.f_reserved) + .finish() + } + } + + impl ::hash::Hash for statfs { + fn hash(&self, state: &mut H) { + self.f_bsize.hash(state); + self.f_iosize.hash(state); + self.f_blocks.hash(state); + self.f_bfree.hash(state); + self.f_bavail.hash(state); + self.f_files.hash(state); + self.f_ffree.hash(state); + self.f_fsid.hash(state); + self.f_owner.hash(state); + self.f_flags.hash(state); + self.f_fssubtype.hash(state); + self.f_fstypename.hash(state); + self.f_type.hash(state); + self.f_mntonname.hash(state); + self.f_mntfromname.hash(state); + self.f_reserved.hash(state); + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_ino == other.d_ino + && self.d_seekoff == other.d_seekoff + && self.d_reclen == other.d_reclen + && self.d_namlen == other.d_namlen + && self.d_type == other.d_type + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for dirent {} + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_ino", &self.d_ino) + .field("d_seekoff", &self.d_seekoff) + .field("d_reclen", &self.d_reclen) + .field("d_namlen", &self.d_namlen) + .field("d_type", &self.d_type) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_ino.hash(state); + self.d_seekoff.hash(state); + self.d_reclen.hash(state); + self.d_namlen.hash(state); + self.d_type.hash(state); + self.d_name.hash(state); + } + } + impl PartialEq for pthread_rwlock_t { + fn eq(&self, other: &pthread_rwlock_t) -> bool { + self.__sig == other.__sig + && self. + __opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_rwlock_t {} + impl ::fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_rwlock_t") + .field("__sig", &self.__sig) + // FIXME: .field("__opaque", &self.__opaque) + .finish() + } + } + impl ::hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { + self.__sig.hash(state); + self.__opaque.hash(state); + } + } + + impl PartialEq for pthread_mutex_t { + fn eq(&self, other: &pthread_mutex_t) -> bool { + self.__sig == other.__sig + && self. + __opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for pthread_mutex_t {} + + impl ::fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_mutex_t") + .field("__sig", &self.__sig) + // FIXME: .field("__opaque", &self.__opaque) + .finish() + } + } + + impl ::hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { + self.__sig.hash(state); + self.__opaque.hash(state); + } + } + + impl PartialEq for pthread_cond_t { + fn eq(&self, other: &pthread_cond_t) -> bool { + self.__sig == other.__sig + && self. + __opaque + .iter() + .zip(other.__opaque.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for pthread_cond_t {} + + impl ::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_cond_t") + .field("__sig", &self.__sig) + // FIXME: .field("__opaque", &self.__opaque) + .finish() + } + } + + impl ::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { + self.__sig.hash(state); + self.__opaque.hash(state); + } + } + + impl PartialEq for sockaddr_storage { + fn eq(&self, other: &sockaddr_storage) -> bool { + self.ss_len == other.ss_len + && self.ss_family == other.ss_family + && self + .__ss_pad1 + .iter() + .zip(other.__ss_pad1.iter()) + .all(|(a, b)| a == b) + && self.__ss_align == other.__ss_align + && self + .__ss_pad2 + .iter() + .zip(other.__ss_pad2.iter()) + .all(|(a, b)| a == b) + } + } + + impl Eq for sockaddr_storage {} + + impl ::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_storage") + .field("ss_len", &self.ss_len) + .field("ss_family", &self.ss_family) + .field("__ss_pad1", &self.__ss_pad1) + .field("__ss_align", &self.__ss_align) + // FIXME: .field("__ss_pad2", &self.__ss_pad2) + .finish() + } + } + + impl ::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { + self.ss_len.hash(state); + self.ss_family.hash(state); + self.__ss_pad1.hash(state); + self.__ss_align.hash(state); + self.__ss_pad2.hash(state); + } + } + + impl PartialEq for utmpx { + fn eq(&self, other: &utmpx) -> bool { + self.ut_user + .iter() + .zip(other.ut_user.iter()) + .all(|(a,b)| a == b) + && self.ut_id == other.ut_id + && self.ut_line == other.ut_line + && self.ut_pid == other.ut_pid + && self.ut_type == other.ut_type + && self.ut_tv == other.ut_tv + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + && self.ut_pad == other.ut_pad + } + } + + impl Eq for utmpx {} + + impl ::fmt::Debug for utmpx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmpx") + // FIXME: .field("ut_user", &self.ut_user) + .field("ut_id", &self.ut_id) + .field("ut_line", &self.ut_line) + .field("ut_pid", &self.ut_pid) + .field("ut_type", &self.ut_type) + .field("ut_tv", &self.ut_tv) + // FIXME: .field("ut_host", &self.ut_host) + .field("ut_pad", &self.ut_pad) + .finish() + } + } + + impl ::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { + self.ut_user.hash(state); + self.ut_id.hash(state); + self.ut_line.hash(state); + self.ut_pid.hash(state); + self.ut_type.hash(state); + self.ut_tv.hash(state); + self.ut_host.hash(state); + self.ut_pad.hash(state); + } + } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_notify == other.sigev_notify + && self.sigev_signo == other.sigev_signo + && self.sigev_value == other.sigev_value + && self.sigev_notify_attributes + == other.sigev_notify_attributes + } + } + + impl Eq for sigevent {} + + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_notify", &self.sigev_notify) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_value", &self.sigev_value) + .field("sigev_notify_attributes", + &self.sigev_notify_attributes) + .finish() + } + } + + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_notify.hash(state); + self.sigev_signo.hash(state); + self.sigev_value.hash(state); + self.sigev_notify_attributes.hash(state); + } + } + + impl PartialEq for processor_cpu_load_info { + fn eq(&self, other: &processor_cpu_load_info) -> bool { + self.cpu_ticks == other.cpu_ticks + } + } + impl Eq for processor_cpu_load_info {} + impl ::fmt::Debug for processor_cpu_load_info { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("processor_cpu_load_info") + .field("cpu_ticks", &self.cpu_ticks) + .finish() + } + } + impl ::hash::Hash for processor_cpu_load_info { + fn hash(&self, state: &mut H) { + self.cpu_ticks.hash(state); + } + } + + impl PartialEq for processor_basic_info { + fn eq(&self, other: &processor_basic_info) -> bool { + self.cpu_type == other.cpu_type + && self.cpu_subtype == other.cpu_subtype + && self.running == other.running + && self.slot_num == other.slot_num + && self.is_master == other.is_master + } + } + impl Eq for processor_basic_info {} + impl ::fmt::Debug for processor_basic_info { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("processor_basic_info") + .field("cpu_type", &self.cpu_type) + .field("cpu_subtype", &self.cpu_subtype) + .field("running", &self.running) + .field("slot_num", &self.slot_num) + .field("is_master", &self.is_master) + .finish() + } + } + impl ::hash::Hash for processor_basic_info { + fn hash(&self, state: &mut H) { + self.cpu_type.hash(state); + self.cpu_subtype.hash(state); + self.running.hash(state); + self.slot_num.hash(state); + self.is_master.hash(state); + } + } + + impl PartialEq for processor_set_basic_info { + fn eq(&self, other: &processor_set_basic_info) -> bool { + self.processor_count == other.processor_count + && self.default_policy == other.default_policy + } + } + impl Eq for processor_set_basic_info {} + impl ::fmt::Debug for processor_set_basic_info { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("processor_set_basic_info") + .field("processor_count", &self.processor_count) + .field("default_policy", &self.default_policy) + .finish() + } + } + impl ::hash::Hash for processor_set_basic_info { + fn hash(&self, state: &mut H) { + self.processor_count.hash(state); + self.default_policy.hash(state); + } + } + + impl PartialEq for processor_set_load_info { + fn eq(&self, other: &processor_set_load_info) -> bool { + self.task_count == other.task_count + && self.thread_count == other.thread_count + && self.load_average == other.load_average + && self.mach_factor == other.mach_factor + } + } + impl Eq for processor_set_load_info {} + impl ::fmt::Debug for processor_set_load_info { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("processor_set_load_info") + .field("task_count", &self.task_count) + .field("thread_count", &self.thread_count) + .field("load_average", &self.load_average) + .field("mach_factor", &self.mach_factor) + .finish() + } + } + impl ::hash::Hash for processor_set_load_info { + fn hash(&self, state: &mut H) { + self.task_count.hash(state); + self.thread_count.hash(state); + self.load_average.hash(state); + self.mach_factor.hash(state); + } + } + + impl PartialEq for time_value_t { + fn eq(&self, other: &time_value_t) -> bool { + self.seconds == other.seconds + && self.microseconds == other.microseconds + } + } + impl Eq for time_value_t {} + impl ::fmt::Debug for time_value_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("time_value_t") + .field("seconds", &self.seconds) + .field("microseconds", &self.microseconds) + .finish() + } + } + impl ::hash::Hash for time_value_t { + fn hash(&self, state: &mut H) { + self.seconds.hash(state); + self.microseconds.hash(state); + } + } + impl PartialEq for thread_basic_info { + fn eq(&self, other: &thread_basic_info) -> bool { + self.user_time == other.user_time + && self.system_time == other.system_time + && self.cpu_usage == other.cpu_usage + && self.policy == other.policy + && self.run_state == other.run_state + && self.flags == other.flags + && self.suspend_count == other.suspend_count + && self.sleep_time == other.sleep_time + } + } + impl Eq for thread_basic_info {} + impl ::fmt::Debug for thread_basic_info { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("thread_basic_info") + .field("user_time", &self.user_time) + .field("system_time", &self.system_time) + .field("cpu_usage", &self.cpu_usage) + .field("policy", &self.policy) + .field("run_state", &self.run_state) + .field("flags", &self.flags) + .field("suspend_count", &self.suspend_count) + .field("sleep_time", &self.sleep_time) + .finish() + } + } + impl ::hash::Hash for thread_basic_info { + fn hash(&self, state: &mut H) { + self.user_time.hash(state); + self.system_time.hash(state); + self.cpu_usage.hash(state); + self.policy.hash(state); + self.run_state.hash(state); + self.flags.hash(state); + self.suspend_count.hash(state); + self.sleep_time.hash(state); + } + } + impl PartialEq for thread_extended_info { + fn eq(&self, other: &thread_extended_info) -> bool { + self.pth_user_time == other.pth_user_time + && self.pth_system_time == other.pth_system_time + && self.pth_cpu_usage == other.pth_cpu_usage + && self.pth_policy == other.pth_policy + && self.pth_run_state == other.pth_run_state + && self.pth_flags == other.pth_flags + && self.pth_sleep_time == other.pth_sleep_time + && self.pth_curpri == other.pth_curpri + && self.pth_priority == other.pth_priority + && self.pth_maxpriority == other.pth_maxpriority + && self.pth_name + .iter() + .zip(other.pth_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for thread_extended_info {} + impl ::fmt::Debug for thread_extended_info { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("proc_threadinfo") + .field("pth_user_time", &self.pth_user_time) + .field("pth_system_time", &self.pth_system_time) + .field("pth_cpu_usage", &self.pth_cpu_usage) + .field("pth_policy", &self.pth_policy) + .field("pth_run_state", &self.pth_run_state) + .field("pth_flags", &self.pth_flags) + .field("pth_sleep_time", &self.pth_sleep_time) + .field("pth_curpri", &self.pth_curpri) + .field("pth_priority", &self.pth_priority) + .field("pth_maxpriority", &self.pth_maxpriority) + // FIXME: .field("pth_name", &self.pth_name) + .finish() + } + } + impl ::hash::Hash for thread_extended_info { + fn hash(&self, state: &mut H) { + self.pth_user_time.hash(state); + self.pth_system_time.hash(state); + self.pth_cpu_usage.hash(state); + self.pth_policy.hash(state); + self.pth_run_state.hash(state); + self.pth_flags.hash(state); + self.pth_sleep_time.hash(state); + self.pth_curpri.hash(state); + self.pth_priority.hash(state); + self.pth_maxpriority.hash(state); + self.pth_name.hash(state); + } + } + impl PartialEq for thread_identifier_info { + fn eq(&self, other: &thread_identifier_info) -> bool { + self.thread_id == other.thread_id + && self.thread_handle == other.thread_handle + && self.dispatch_qaddr == other.dispatch_qaddr + } + } + impl Eq for thread_identifier_info {} + impl ::fmt::Debug for thread_identifier_info { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("thread_identifier_info") + .field("thread_id", &self.thread_id) + .field("thread_handle", &self.thread_handle) + .field("dispatch_qaddr", &self.dispatch_qaddr) + .finish() + } + } + impl ::hash::Hash for thread_identifier_info { + fn hash(&self, state: &mut H) { + self.thread_id.hash(state); + self.thread_handle.hash(state); + self.dispatch_qaddr.hash(state); + } + } + impl PartialEq for if_data64 { + fn eq(&self, other: &if_data64) -> bool { + self.ifi_type == other.ifi_type && + self.ifi_typelen == other.ifi_typelen && + self.ifi_physical == other.ifi_physical && + self.ifi_addrlen == other.ifi_addrlen && + self.ifi_hdrlen == other.ifi_hdrlen && + self.ifi_recvquota == other.ifi_recvquota && + self.ifi_xmitquota == other.ifi_xmitquota && + self.ifi_unused1 == other.ifi_unused1 && + self.ifi_mtu == other.ifi_mtu && + self.ifi_metric == other.ifi_metric && + self.ifi_baudrate == other.ifi_baudrate && + self.ifi_ipackets == other.ifi_ipackets && + self.ifi_ierrors == other.ifi_ierrors && + self.ifi_opackets == other.ifi_opackets && + self.ifi_oerrors == other.ifi_oerrors && + self.ifi_collisions == other.ifi_collisions && + self.ifi_ibytes == other.ifi_ibytes && + self.ifi_obytes == other.ifi_obytes && + self.ifi_imcasts == other.ifi_imcasts && + self.ifi_omcasts == other.ifi_omcasts && + self.ifi_iqdrops == other.ifi_iqdrops && + self.ifi_noproto == other.ifi_noproto && + self.ifi_recvtiming == other.ifi_recvtiming && + self.ifi_xmittiming == other.ifi_xmittiming && + self.ifi_lastchange == other.ifi_lastchange + } + } + impl Eq for if_data64 {} + impl ::fmt::Debug for if_data64 { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let ifi_type = self.ifi_type; + let ifi_typelen = self.ifi_typelen; + let ifi_physical = self.ifi_physical; + let ifi_addrlen = self.ifi_addrlen; + let ifi_hdrlen = self.ifi_hdrlen; + let ifi_recvquota = self.ifi_recvquota; + let ifi_xmitquota = self.ifi_xmitquota; + let ifi_unused1 = self.ifi_unused1; + let ifi_mtu = self.ifi_mtu; + let ifi_metric = self.ifi_metric; + let ifi_baudrate = self.ifi_baudrate; + let ifi_ipackets = self.ifi_ipackets; + let ifi_ierrors = self.ifi_ierrors; + let ifi_opackets = self.ifi_opackets; + let ifi_oerrors = self.ifi_oerrors; + let ifi_collisions = self.ifi_collisions; + let ifi_ibytes = self.ifi_ibytes; + let ifi_obytes = self.ifi_obytes; + let ifi_imcasts = self.ifi_imcasts; + let ifi_omcasts = self.ifi_omcasts; + let ifi_iqdrops = self.ifi_iqdrops; + let ifi_noproto = self.ifi_noproto; + let ifi_recvtiming = self.ifi_recvtiming; + let ifi_xmittiming = self.ifi_xmittiming; + let ifi_lastchange = self.ifi_lastchange; + f.debug_struct("if_data64") + .field("ifi_type", &ifi_type) + .field("ifi_typelen", &ifi_typelen) + .field("ifi_physical", &ifi_physical) + .field("ifi_addrlen", &ifi_addrlen) + .field("ifi_hdrlen", &ifi_hdrlen) + .field("ifi_recvquota", &ifi_recvquota) + .field("ifi_xmitquota", &ifi_xmitquota) + .field("ifi_unused1", &ifi_unused1) + .field("ifi_mtu", &ifi_mtu) + .field("ifi_metric", &ifi_metric) + .field("ifi_baudrate", &ifi_baudrate) + .field("ifi_ipackets", &ifi_ipackets) + .field("ifi_ierrors", &ifi_ierrors) + .field("ifi_opackets", &ifi_opackets) + .field("ifi_oerrors", &ifi_oerrors) + .field("ifi_collisions", &ifi_collisions) + .field("ifi_ibytes", &ifi_ibytes) + .field("ifi_obytes", &ifi_obytes) + .field("ifi_imcasts", &ifi_imcasts) + .field("ifi_omcasts", &ifi_omcasts) + .field("ifi_iqdrops", &ifi_iqdrops) + .field("ifi_noproto", &ifi_noproto) + .field("ifi_recvtiming", &ifi_recvtiming) + .field("ifi_xmittiming", &ifi_xmittiming) + .field("ifi_lastchange", &ifi_lastchange) + .finish() + } + } + impl ::hash::Hash for if_data64 { + fn hash(&self, state: &mut H) { + let ifi_type = self.ifi_type; + let ifi_typelen = self.ifi_typelen; + let ifi_physical = self.ifi_physical; + let ifi_addrlen = self.ifi_addrlen; + let ifi_hdrlen = self.ifi_hdrlen; + let ifi_recvquota = self.ifi_recvquota; + let ifi_xmitquota = self.ifi_xmitquota; + let ifi_unused1 = self.ifi_unused1; + let ifi_mtu = self.ifi_mtu; + let ifi_metric = self.ifi_metric; + let ifi_baudrate = self.ifi_baudrate; + let ifi_ipackets = self.ifi_ipackets; + let ifi_ierrors = self.ifi_ierrors; + let ifi_opackets = self.ifi_opackets; + let ifi_oerrors = self.ifi_oerrors; + let ifi_collisions = self.ifi_collisions; + let ifi_ibytes = self.ifi_ibytes; + let ifi_obytes = self.ifi_obytes; + let ifi_imcasts = self.ifi_imcasts; + let ifi_omcasts = self.ifi_omcasts; + let ifi_iqdrops = self.ifi_iqdrops; + let ifi_noproto = self.ifi_noproto; + let ifi_recvtiming = self.ifi_recvtiming; + let ifi_xmittiming = self.ifi_xmittiming; + let ifi_lastchange = self.ifi_lastchange; + ifi_type.hash(state); + ifi_typelen.hash(state); + ifi_physical.hash(state); + ifi_addrlen.hash(state); + ifi_hdrlen.hash(state); + ifi_recvquota.hash(state); + ifi_xmitquota.hash(state); + ifi_unused1.hash(state); + ifi_mtu.hash(state); + ifi_metric.hash(state); + ifi_baudrate.hash(state); + ifi_ipackets.hash(state); + ifi_ierrors.hash(state); + ifi_opackets.hash(state); + ifi_oerrors.hash(state); + ifi_collisions.hash(state); + ifi_ibytes.hash(state); + ifi_obytes.hash(state); + ifi_imcasts.hash(state); + ifi_omcasts.hash(state); + ifi_iqdrops.hash(state); + ifi_noproto.hash(state); + ifi_recvtiming.hash(state); + ifi_xmittiming.hash(state); + ifi_lastchange.hash(state); + } + } + impl PartialEq for if_msghdr2 { + fn eq(&self, other: &if_msghdr2) -> bool { + self.ifm_msglen == other.ifm_msglen && + self.ifm_version == other.ifm_version && + self.ifm_type == other.ifm_type && + self.ifm_addrs == other.ifm_addrs && + self.ifm_flags == other.ifm_flags && + self.ifm_index == other.ifm_index && + self.ifm_snd_len == other.ifm_snd_len && + self.ifm_snd_maxlen == other.ifm_snd_maxlen && + self.ifm_snd_drops == other.ifm_snd_drops && + self.ifm_timer == other.ifm_timer && + self.ifm_data == other.ifm_data + } + } + impl Eq for if_msghdr2 {} + impl ::fmt::Debug for if_msghdr2 { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let ifm_msglen = self.ifm_msglen; + let ifm_version = self.ifm_version; + let ifm_type = self.ifm_type; + let ifm_addrs = self.ifm_addrs; + let ifm_flags = self.ifm_flags; + let ifm_index = self.ifm_index; + let ifm_snd_len = self.ifm_snd_len; + let ifm_snd_maxlen = self.ifm_snd_maxlen; + let ifm_snd_drops = self.ifm_snd_drops; + let ifm_timer = self.ifm_timer; + let ifm_data = self.ifm_data; + f.debug_struct("if_msghdr2") + .field("ifm_msglen", &ifm_msglen) + .field("ifm_version", &ifm_version) + .field("ifm_type", &ifm_type) + .field("ifm_addrs", &ifm_addrs) + .field("ifm_flags", &ifm_flags) + .field("ifm_index", &ifm_index) + .field("ifm_snd_len", &ifm_snd_len) + .field("ifm_snd_maxlen", &ifm_snd_maxlen) + .field("ifm_snd_drops", &ifm_snd_drops) + .field("ifm_timer", &ifm_timer) + .field("ifm_data", &ifm_data) + .finish() + } + } + impl ::hash::Hash for if_msghdr2 { + fn hash(&self, state: &mut H) { + let ifm_msglen = self.ifm_msglen; + let ifm_version = self.ifm_version; + let ifm_type = self.ifm_type; + let ifm_addrs = self.ifm_addrs; + let ifm_flags = self.ifm_flags; + let ifm_index = self.ifm_index; + let ifm_snd_len = self.ifm_snd_len; + let ifm_snd_maxlen = self.ifm_snd_maxlen; + let ifm_snd_drops = self.ifm_snd_drops; + let ifm_timer = self.ifm_timer; + let ifm_data = self.ifm_data; + ifm_msglen.hash(state); + ifm_version.hash(state); + ifm_type.hash(state); + ifm_addrs.hash(state); + ifm_flags.hash(state); + ifm_index.hash(state); + ifm_snd_len.hash(state); + ifm_snd_maxlen.hash(state); + ifm_snd_drops.hash(state); + ifm_timer.hash(state); + ifm_data.hash(state); + } + } + impl PartialEq for vm_statistics64 { + fn eq(&self, other: &vm_statistics64) -> bool { + // Otherwise rustfmt crashes... + let total_uncompressed = self.total_uncompressed_pages_in_compressor; + self.free_count == other.free_count && + self.active_count == other.active_count && + self.inactive_count == other.inactive_count && + self.wire_count == other.wire_count && + self.zero_fill_count == other.zero_fill_count && + self.reactivations == other.reactivations && + self.pageins == other.pageins && + self.pageouts == other.pageouts && + self.faults == other.faults && + self.cow_faults == other.cow_faults && + self.lookups == other.lookups && + self.hits == other.hits && + self.purges == other.purges && + self.purgeable_count == other.purgeable_count && + self.speculative_count == other.speculative_count && + self.decompressions == other.decompressions && + self.compressions == other.compressions && + self.swapins == other.swapins && + self.swapouts == other.swapouts && + self.compressor_page_count == other.compressor_page_count && + self.throttled_count == other.throttled_count && + self.external_page_count == other.external_page_count && + self.internal_page_count == other.internal_page_count && + total_uncompressed == other.total_uncompressed_pages_in_compressor + } + } + impl Eq for vm_statistics64 {} + impl ::fmt::Debug for vm_statistics64 { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let free_count = self.free_count; + let active_count = self.active_count; + let inactive_count = self.inactive_count; + let wire_count = self.wire_count; + let zero_fill_count = self.zero_fill_count; + let reactivations = self.reactivations; + let pageins = self.pageins; + let pageouts = self.pageouts; + let faults = self.faults; + let cow_faults = self.cow_faults; + let lookups = self.lookups; + let hits = self.hits; + let purges = self.purges; + let purgeable_count = self.purgeable_count; + let speculative_count = self.speculative_count; + let decompressions = self.decompressions; + let compressions = self.compressions; + let swapins = self.swapins; + let swapouts = self.swapouts; + let compressor_page_count = self.compressor_page_count; + let throttled_count = self.throttled_count; + let external_page_count = self.external_page_count; + let internal_page_count = self.internal_page_count; + // Otherwise rustfmt crashes... + let total_uncompressed = self.total_uncompressed_pages_in_compressor; + f.debug_struct("vm_statistics64") + .field("free_count", &free_count) + .field("active_count", &active_count) + .field("inactive_count", &inactive_count) + .field("wire_count", &wire_count) + .field("zero_fill_count", &zero_fill_count) + .field("reactivations", &reactivations) + .field("pageins", &pageins) + .field("pageouts", &pageouts) + .field("faults", &faults) + .field("cow_faults", &cow_faults) + .field("lookups", &lookups) + .field("hits", &hits) + .field("purges", &purges) + .field("purgeable_count", &purgeable_count) + .field("speculative_count", &speculative_count) + .field("decompressions", &decompressions) + .field("compressions", &compressions) + .field("swapins", &swapins) + .field("swapouts", &swapouts) + .field("compressor_page_count", &compressor_page_count) + .field("throttled_count", &throttled_count) + .field("external_page_count", &external_page_count) + .field("internal_page_count", &internal_page_count) + .field("total_uncompressed_pages_in_compressor", &total_uncompressed) + .finish() + } + } + impl ::hash::Hash for vm_statistics64 { + fn hash(&self, state: &mut H) { + let free_count = self.free_count; + let active_count = self.active_count; + let inactive_count = self.inactive_count; + let wire_count = self.wire_count; + let zero_fill_count = self.zero_fill_count; + let reactivations = self.reactivations; + let pageins = self.pageins; + let pageouts = self.pageouts; + let faults = self.faults; + let cow_faults = self.cow_faults; + let lookups = self.lookups; + let hits = self.hits; + let purges = self.purges; + let purgeable_count = self.purgeable_count; + let speculative_count = self.speculative_count; + let decompressions = self.decompressions; + let compressions = self.compressions; + let swapins = self.swapins; + let swapouts = self.swapouts; + let compressor_page_count = self.compressor_page_count; + let throttled_count = self.throttled_count; + let external_page_count = self.external_page_count; + let internal_page_count = self.internal_page_count; + // Otherwise rustfmt crashes... + let total_uncompressed = self.total_uncompressed_pages_in_compressor; + free_count.hash(state); + active_count.hash(state); + inactive_count.hash(state); + wire_count.hash(state); + zero_fill_count.hash(state); + reactivations.hash(state); + pageins.hash(state); + pageouts.hash(state); + faults.hash(state); + cow_faults.hash(state); + lookups.hash(state); + hits.hash(state); + purges.hash(state); + purgeable_count.hash(state); + speculative_count.hash(state); + decompressions.hash(state); + compressions.hash(state); + swapins.hash(state); + swapouts.hash(state); + compressor_page_count.hash(state); + throttled_count.hash(state); + external_page_count.hash(state); + internal_page_count.hash(state); + total_uncompressed.hash(state); + } + } + + impl PartialEq for mach_task_basic_info { + fn eq(&self, other: &mach_task_basic_info) -> bool { + self.virtual_size == other.virtual_size + && self.resident_size == other.resident_size + && self.resident_size_max == other.resident_size_max + && self.user_time == other.user_time + && self.system_time == other.system_time + && self.policy == other.policy + && self.suspend_count == other.suspend_count + } + } + impl Eq for mach_task_basic_info {} + impl ::fmt::Debug for mach_task_basic_info { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let virtual_size = self.virtual_size; + let resident_size = self.resident_size; + let resident_size_max = self.resident_size_max; + let user_time = self.user_time; + let system_time = self.system_time; + let policy = self.policy; + let suspend_count = self.suspend_count; + f.debug_struct("mach_task_basic_info") + .field("virtual_size", &virtual_size) + .field("resident_size", &resident_size) + .field("resident_size_max", &resident_size_max) + .field("user_time", &user_time) + .field("system_time", &system_time) + .field("policy", &policy) + .field("suspend_count", &suspend_count) + .finish() + } + } + impl ::hash::Hash for mach_task_basic_info { + fn hash(&self, state: &mut H) { + let virtual_size = self.virtual_size; + let resident_size = self.resident_size; + let resident_size_max = self.resident_size_max; + let user_time = self.user_time; + let system_time = self.system_time; + let policy = self.policy; + let suspend_count = self.suspend_count; + virtual_size.hash(state); + resident_size.hash(state); + resident_size_max.hash(state); + user_time.hash(state); + system_time.hash(state); + policy.hash(state); + suspend_count.hash(state); + } + } + + impl PartialEq for log2phys { + fn eq(&self, other: &log2phys) -> bool { + self.l2p_flags == other.l2p_flags + && self.l2p_contigbytes == other.l2p_contigbytes + && self.l2p_devoffset == other.l2p_devoffset + } + } + impl Eq for log2phys {} + impl ::fmt::Debug for log2phys { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let l2p_flags = self.l2p_flags; + let l2p_contigbytes = self.l2p_contigbytes; + let l2p_devoffset = self.l2p_devoffset; + f.debug_struct("log2phys") + .field("l2p_flags", &l2p_flags) + .field("l2p_contigbytes", &l2p_contigbytes) + .field("l2p_devoffset", &l2p_devoffset) + .finish() + } + } + impl ::hash::Hash for log2phys { + fn hash(&self, state: &mut H) { + let l2p_flags = self.l2p_flags; + let l2p_contigbytes = self.l2p_contigbytes; + let l2p_devoffset = self.l2p_devoffset; + l2p_flags.hash(state); + l2p_contigbytes.hash(state); + l2p_devoffset.hash(state); + } + } + impl PartialEq for os_unfair_lock { + fn eq(&self, other: &os_unfair_lock) -> bool { + self._os_unfair_lock_opaque == other._os_unfair_lock_opaque + } + } + + impl Eq for os_unfair_lock {} + + impl ::fmt::Debug for os_unfair_lock { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("os_unfair_lock") + .field("_os_unfair_lock_opaque", &self._os_unfair_lock_opaque) + .finish() + } + } + + impl ::hash::Hash for os_unfair_lock { + fn hash(&self, state: &mut H) { + self._os_unfair_lock_opaque.hash(state); + } + } + + impl PartialEq for sockaddr_vm { + fn eq(&self, other: &sockaddr_vm) -> bool { + self.svm_len == other.svm_len + && self.svm_family == other.svm_family + && self.svm_reserved1 == other.svm_reserved1 + && self.svm_port == other.svm_port + && self.svm_cid == other.svm_cid + } + } + + impl Eq for sockaddr_vm {} + + impl ::fmt::Debug for sockaddr_vm { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let svm_len = self.svm_len; + let svm_family = self.svm_family; + let svm_reserved1 = self.svm_reserved1; + let svm_port = self.svm_port; + let svm_cid = self.svm_cid; + + f.debug_struct("sockaddr_vm") + .field("svm_len",&svm_len) + .field("svm_family",&svm_family) + .field("svm_reserved1",&svm_reserved1) + .field("svm_port",&svm_port) + .field("svm_cid",&svm_cid) + .finish() + } + } + + impl ::hash::Hash for sockaddr_vm { + fn hash(&self, state: &mut H) { + let svm_len = self.svm_len; + let svm_family = self.svm_family; + let svm_reserved1 = self.svm_reserved1; + let svm_port = self.svm_port; + let svm_cid = self.svm_cid; + + svm_len.hash(state); + svm_family.hash(state); + svm_reserved1.hash(state); + svm_port.hash(state); + svm_cid.hash(state); + } + } + } +} + +pub const _UTX_USERSIZE: usize = 256; +pub const _UTX_LINESIZE: usize = 32; +pub const _UTX_IDSIZE: usize = 4; +pub const _UTX_HOSTSIZE: usize = 256; + +pub const EMPTY: ::c_short = 0; +pub const RUN_LVL: ::c_short = 1; +pub const BOOT_TIME: ::c_short = 2; +pub const OLD_TIME: ::c_short = 3; +pub const NEW_TIME: ::c_short = 4; +pub const INIT_PROCESS: ::c_short = 5; +pub const LOGIN_PROCESS: ::c_short = 6; +pub const USER_PROCESS: ::c_short = 7; +pub const DEAD_PROCESS: ::c_short = 8; +pub const ACCOUNTING: ::c_short = 9; +pub const SIGNATURE: ::c_short = 10; +pub const SHUTDOWN_TIME: ::c_short = 11; + +pub const LC_COLLATE_MASK: ::c_int = 1 << 0; +pub const LC_CTYPE_MASK: ::c_int = 1 << 1; +pub const LC_MESSAGES_MASK: ::c_int = 1 << 2; +pub const LC_MONETARY_MASK: ::c_int = 1 << 3; +pub const LC_NUMERIC_MASK: ::c_int = 1 << 4; +pub const LC_TIME_MASK: ::c_int = 1 << 5; +pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK + | LC_CTYPE_MASK + | LC_MESSAGES_MASK + | LC_MONETARY_MASK + | LC_NUMERIC_MASK + | LC_TIME_MASK; + +pub const CODESET: ::nl_item = 0; +pub const D_T_FMT: ::nl_item = 1; +pub const D_FMT: ::nl_item = 2; +pub const T_FMT: ::nl_item = 3; +pub const T_FMT_AMPM: ::nl_item = 4; +pub const AM_STR: ::nl_item = 5; +pub const PM_STR: ::nl_item = 6; + +pub const DAY_1: ::nl_item = 7; +pub const DAY_2: ::nl_item = 8; +pub const DAY_3: ::nl_item = 9; +pub const DAY_4: ::nl_item = 10; +pub const DAY_5: ::nl_item = 11; +pub const DAY_6: ::nl_item = 12; +pub const DAY_7: ::nl_item = 13; + +pub const ABDAY_1: ::nl_item = 14; +pub const ABDAY_2: ::nl_item = 15; +pub const ABDAY_3: ::nl_item = 16; +pub const ABDAY_4: ::nl_item = 17; +pub const ABDAY_5: ::nl_item = 18; +pub const ABDAY_6: ::nl_item = 19; +pub const ABDAY_7: ::nl_item = 20; + +pub const MON_1: ::nl_item = 21; +pub const MON_2: ::nl_item = 22; +pub const MON_3: ::nl_item = 23; +pub const MON_4: ::nl_item = 24; +pub const MON_5: ::nl_item = 25; +pub const MON_6: ::nl_item = 26; +pub const MON_7: ::nl_item = 27; +pub const MON_8: ::nl_item = 28; +pub const MON_9: ::nl_item = 29; +pub const MON_10: ::nl_item = 30; +pub const MON_11: ::nl_item = 31; +pub const MON_12: ::nl_item = 32; + +pub const ABMON_1: ::nl_item = 33; +pub const ABMON_2: ::nl_item = 34; +pub const ABMON_3: ::nl_item = 35; +pub const ABMON_4: ::nl_item = 36; +pub const ABMON_5: ::nl_item = 37; +pub const ABMON_6: ::nl_item = 38; +pub const ABMON_7: ::nl_item = 39; +pub const ABMON_8: ::nl_item = 40; +pub const ABMON_9: ::nl_item = 41; +pub const ABMON_10: ::nl_item = 42; +pub const ABMON_11: ::nl_item = 43; +pub const ABMON_12: ::nl_item = 44; + +pub const CLOCK_REALTIME: ::clockid_t = 0; +pub const CLOCK_MONOTONIC_RAW: ::clockid_t = 4; +pub const CLOCK_MONOTONIC_RAW_APPROX: ::clockid_t = 5; +pub const CLOCK_MONOTONIC: ::clockid_t = 6; +pub const CLOCK_UPTIME_RAW: ::clockid_t = 8; +pub const CLOCK_UPTIME_RAW_APPROX: ::clockid_t = 9; +pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 12; +pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 16; + +pub const ERA: ::nl_item = 45; +pub const ERA_D_FMT: ::nl_item = 46; +pub const ERA_D_T_FMT: ::nl_item = 47; +pub const ERA_T_FMT: ::nl_item = 48; +pub const ALT_DIGITS: ::nl_item = 49; + +pub const RADIXCHAR: ::nl_item = 50; +pub const THOUSEP: ::nl_item = 51; + +pub const YESEXPR: ::nl_item = 52; +pub const NOEXPR: ::nl_item = 53; + +pub const YESSTR: ::nl_item = 54; +pub const NOSTR: ::nl_item = 55; + +pub const CRNCYSTR: ::nl_item = 56; + +pub const D_MD_ORDER: ::nl_item = 57; + +pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: ::c_int = 0; +pub const RAND_MAX: ::c_int = 2147483647; +pub const EOF: ::c_int = -1; +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; +pub const SEEK_HOLE: ::c_int = 3; +pub const SEEK_DATA: ::c_int = 4; +pub const _IOFBF: ::c_int = 0; +pub const _IONBF: ::c_int = 2; +pub const _IOLBF: ::c_int = 1; +pub const BUFSIZ: ::c_uint = 1024; +pub const FOPEN_MAX: ::c_uint = 20; +pub const FILENAME_MAX: ::c_uint = 1024; +pub const L_tmpnam: ::c_uint = 1024; +pub const TMP_MAX: ::c_uint = 308915776; +pub const _PC_LINK_MAX: ::c_int = 1; +pub const _PC_MAX_CANON: ::c_int = 2; +pub const _PC_MAX_INPUT: ::c_int = 3; +pub const _PC_NAME_MAX: ::c_int = 4; +pub const _PC_PATH_MAX: ::c_int = 5; +pub const _PC_PIPE_BUF: ::c_int = 6; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; +pub const _PC_NO_TRUNC: ::c_int = 8; +pub const _PC_VDISABLE: ::c_int = 9; +pub const O_EVTONLY: ::c_int = 0x00008000; +pub const O_NOCTTY: ::c_int = 0x00020000; +pub const O_DIRECTORY: ::c_int = 0x00100000; +pub const O_SYMLINK: ::c_int = 0x00200000; +pub const O_DSYNC: ::c_int = 0x00400000; +pub const O_CLOEXEC: ::c_int = 0x01000000; +pub const O_NOFOLLOW_ANY: ::c_int = 0x20000000; +pub const S_IFIFO: mode_t = 4096; +pub const S_IFCHR: mode_t = 8192; +pub const S_IFBLK: mode_t = 24576; +pub const S_IFDIR: mode_t = 16384; +pub const S_IFREG: mode_t = 32768; +pub const S_IFLNK: mode_t = 40960; +pub const S_IFSOCK: mode_t = 49152; +pub const S_IFMT: mode_t = 61440; +pub const S_IEXEC: mode_t = 64; +pub const S_IWRITE: mode_t = 128; +pub const S_IREAD: mode_t = 256; +pub const S_IRWXU: mode_t = 448; +pub const S_IXUSR: mode_t = 64; +pub const S_IWUSR: mode_t = 128; +pub const S_IRUSR: mode_t = 256; +pub const S_IRWXG: mode_t = 56; +pub const S_IXGRP: mode_t = 8; +pub const S_IWGRP: mode_t = 16; +pub const S_IRGRP: mode_t = 32; +pub const S_IRWXO: mode_t = 7; +pub const S_IXOTH: mode_t = 1; +pub const S_IWOTH: mode_t = 2; +pub const S_IROTH: mode_t = 4; +pub const F_OK: ::c_int = 0; +pub const R_OK: ::c_int = 4; +pub const W_OK: ::c_int = 2; +pub const X_OK: ::c_int = 1; +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; +pub const F_LOCK: ::c_int = 1; +pub const F_TEST: ::c_int = 3; +pub const F_TLOCK: ::c_int = 2; +pub const F_ULOCK: ::c_int = 0; +pub const F_GETLK: ::c_int = 7; +pub const F_SETLK: ::c_int = 8; +pub const F_SETLKW: ::c_int = 9; +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGABRT: ::c_int = 6; +pub const SIGEMT: ::c_int = 7; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGSEGV: ::c_int = 11; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; + +pub const PROT_NONE: ::c_int = 0; +pub const PROT_READ: ::c_int = 1; +pub const PROT_WRITE: ::c_int = 2; +pub const PROT_EXEC: ::c_int = 4; + +pub const PT_TRACE_ME: ::c_int = 0; +pub const PT_READ_I: ::c_int = 1; +pub const PT_READ_D: ::c_int = 2; +pub const PT_READ_U: ::c_int = 3; +pub const PT_WRITE_I: ::c_int = 4; +pub const PT_WRITE_D: ::c_int = 5; +pub const PT_WRITE_U: ::c_int = 6; +pub const PT_CONTINUE: ::c_int = 7; +pub const PT_KILL: ::c_int = 8; +pub const PT_STEP: ::c_int = 9; +pub const PT_ATTACH: ::c_int = 10; +pub const PT_DETACH: ::c_int = 11; +pub const PT_SIGEXC: ::c_int = 12; +pub const PT_THUPDATE: ::c_int = 13; +pub const PT_ATTACHEXC: ::c_int = 14; + +pub const PT_FORCEQUOTA: ::c_int = 30; +pub const PT_DENY_ATTACH: ::c_int = 31; +pub const PT_FIRSTMACH: ::c_int = 32; + +pub const MAP_FILE: ::c_int = 0x0000; +pub const MAP_SHARED: ::c_int = 0x0001; +pub const MAP_PRIVATE: ::c_int = 0x0002; +pub const MAP_FIXED: ::c_int = 0x0010; +pub const MAP_ANON: ::c_int = 0x1000; +pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; + +pub const CPU_STATE_USER: ::c_int = 0; +pub const CPU_STATE_SYSTEM: ::c_int = 1; +pub const CPU_STATE_IDLE: ::c_int = 2; +pub const CPU_STATE_NICE: ::c_int = 3; +pub const CPU_STATE_MAX: ::c_int = 4; + +pub const PROCESSOR_BASIC_INFO: ::c_int = 1; +pub const PROCESSOR_CPU_LOAD_INFO: ::c_int = 2; +pub const PROCESSOR_PM_REGS_INFO: ::c_int = 0x10000001; +pub const PROCESSOR_TEMPERATURE: ::c_int = 0x10000002; +pub const PROCESSOR_SET_LOAD_INFO: ::c_int = 4; +pub const PROCESSOR_SET_BASIC_INFO: ::c_int = 5; + +deprecated_mach! { + pub const VM_FLAGS_FIXED: ::c_int = 0x0000; + pub const VM_FLAGS_ANYWHERE: ::c_int = 0x0001; + pub const VM_FLAGS_PURGABLE: ::c_int = 0x0002; + pub const VM_FLAGS_RANDOM_ADDR: ::c_int = 0x0008; + pub const VM_FLAGS_NO_CACHE: ::c_int = 0x0010; + pub const VM_FLAGS_RESILIENT_CODESIGN: ::c_int = 0x0020; + pub const VM_FLAGS_RESILIENT_MEDIA: ::c_int = 0x0040; + pub const VM_FLAGS_OVERWRITE: ::c_int = 0x4000; + pub const VM_FLAGS_SUPERPAGE_MASK: ::c_int = 0x70000; + pub const VM_FLAGS_RETURN_DATA_ADDR: ::c_int = 0x100000; + pub const VM_FLAGS_RETURN_4K_DATA_ADDR: ::c_int = 0x800000; + pub const VM_FLAGS_ALIAS_MASK: ::c_int = 0xFF000000; + pub const VM_FLAGS_USER_ALLOCATE: ::c_int = 0xff07401f; + pub const VM_FLAGS_USER_MAP: ::c_int = 0xff97401f; + pub const VM_FLAGS_USER_REMAP: ::c_int = VM_FLAGS_FIXED | + VM_FLAGS_ANYWHERE | + VM_FLAGS_RANDOM_ADDR | + VM_FLAGS_OVERWRITE | + VM_FLAGS_RETURN_DATA_ADDR | + VM_FLAGS_RESILIENT_CODESIGN; + + pub const VM_FLAGS_SUPERPAGE_SHIFT: ::c_int = 16; + pub const SUPERPAGE_NONE: ::c_int = 0; + pub const SUPERPAGE_SIZE_ANY: ::c_int = 1; + pub const VM_FLAGS_SUPERPAGE_NONE: ::c_int = SUPERPAGE_NONE << + VM_FLAGS_SUPERPAGE_SHIFT; + pub const VM_FLAGS_SUPERPAGE_SIZE_ANY: ::c_int = SUPERPAGE_SIZE_ANY << + VM_FLAGS_SUPERPAGE_SHIFT; + pub const SUPERPAGE_SIZE_2MB: ::c_int = 2; + pub const VM_FLAGS_SUPERPAGE_SIZE_2MB: ::c_int = SUPERPAGE_SIZE_2MB << + VM_FLAGS_SUPERPAGE_SHIFT; + + pub const VM_MEMORY_MALLOC: ::c_int = 1; + pub const VM_MEMORY_MALLOC_SMALL: ::c_int = 2; + pub const VM_MEMORY_MALLOC_LARGE: ::c_int = 3; + pub const VM_MEMORY_MALLOC_HUGE: ::c_int = 4; + pub const VM_MEMORY_SBRK: ::c_int = 5; + pub const VM_MEMORY_REALLOC: ::c_int = 6; + pub const VM_MEMORY_MALLOC_TINY: ::c_int = 7; + pub const VM_MEMORY_MALLOC_LARGE_REUSABLE: ::c_int = 8; + pub const VM_MEMORY_MALLOC_LARGE_REUSED: ::c_int = 9; + pub const VM_MEMORY_ANALYSIS_TOOL: ::c_int = 10; + pub const VM_MEMORY_MALLOC_NANO: ::c_int = 11; + pub const VM_MEMORY_MACH_MSG: ::c_int = 20; + pub const VM_MEMORY_IOKIT: ::c_int = 21; + pub const VM_MEMORY_STACK: ::c_int = 30; + pub const VM_MEMORY_GUARD: ::c_int = 31; + pub const VM_MEMORY_SHARED_PMAP: ::c_int = 32; + pub const VM_MEMORY_DYLIB: ::c_int = 33; + pub const VM_MEMORY_OBJC_DISPATCHERS: ::c_int = 34; + pub const VM_MEMORY_UNSHARED_PMAP: ::c_int = 35; + pub const VM_MEMORY_APPKIT: ::c_int = 40; + pub const VM_MEMORY_FOUNDATION: ::c_int = 41; + pub const VM_MEMORY_COREGRAPHICS: ::c_int = 42; + pub const VM_MEMORY_CORESERVICES: ::c_int = 43; + pub const VM_MEMORY_CARBON: ::c_int = VM_MEMORY_CORESERVICES; + pub const VM_MEMORY_JAVA: ::c_int = 44; + pub const VM_MEMORY_COREDATA: ::c_int = 45; + pub const VM_MEMORY_COREDATA_OBJECTIDS: ::c_int = 46; + pub const VM_MEMORY_ATS: ::c_int = 50; + pub const VM_MEMORY_LAYERKIT: ::c_int = 51; + pub const VM_MEMORY_CGIMAGE: ::c_int = 52; + pub const VM_MEMORY_TCMALLOC: ::c_int = 53; + pub const VM_MEMORY_COREGRAPHICS_DATA: ::c_int = 54; + pub const VM_MEMORY_COREGRAPHICS_SHARED: ::c_int = 55; + pub const VM_MEMORY_COREGRAPHICS_FRAMEBUFFERS: ::c_int = 56; + pub const VM_MEMORY_COREGRAPHICS_BACKINGSTORES: ::c_int = 57; + pub const VM_MEMORY_COREGRAPHICS_XALLOC: ::c_int = 58; + pub const VM_MEMORY_COREGRAPHICS_MISC: ::c_int = VM_MEMORY_COREGRAPHICS; + pub const VM_MEMORY_DYLD: ::c_int = 60; + pub const VM_MEMORY_DYLD_MALLOC: ::c_int = 61; + pub const VM_MEMORY_SQLITE: ::c_int = 62; + pub const VM_MEMORY_JAVASCRIPT_CORE: ::c_int = 63; + pub const VM_MEMORY_JAVASCRIPT_JIT_EXECUTABLE_ALLOCATOR: ::c_int = 64; + pub const VM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE: ::c_int = 65; + pub const VM_MEMORY_GLSL: ::c_int = 66; + pub const VM_MEMORY_OPENCL: ::c_int = 67; + pub const VM_MEMORY_COREIMAGE: ::c_int = 68; + pub const VM_MEMORY_WEBCORE_PURGEABLE_BUFFERS: ::c_int = 69; + pub const VM_MEMORY_IMAGEIO: ::c_int = 70; + pub const VM_MEMORY_COREPROFILE: ::c_int = 71; + pub const VM_MEMORY_ASSETSD: ::c_int = 72; + pub const VM_MEMORY_OS_ALLOC_ONCE: ::c_int = 73; + pub const VM_MEMORY_LIBDISPATCH: ::c_int = 74; + pub const VM_MEMORY_ACCELERATE: ::c_int = 75; + pub const VM_MEMORY_COREUI: ::c_int = 76; + pub const VM_MEMORY_COREUIFILE: ::c_int = 77; + pub const VM_MEMORY_GENEALOGY: ::c_int = 78; + pub const VM_MEMORY_RAWCAMERA: ::c_int = 79; + pub const VM_MEMORY_CORPSEINFO: ::c_int = 80; + pub const VM_MEMORY_ASL: ::c_int = 81; + pub const VM_MEMORY_SWIFT_RUNTIME: ::c_int = 82; + pub const VM_MEMORY_SWIFT_METADATA: ::c_int = 83; + pub const VM_MEMORY_DHMM: ::c_int = 84; + pub const VM_MEMORY_SCENEKIT: ::c_int = 86; + pub const VM_MEMORY_SKYWALK: ::c_int = 87; + pub const VM_MEMORY_APPLICATION_SPECIFIC_1: ::c_int = 240; + pub const VM_MEMORY_APPLICATION_SPECIFIC_16: ::c_int = 255; +} + +pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const MS_ASYNC: ::c_int = 0x0001; +pub const MS_INVALIDATE: ::c_int = 0x0002; +pub const MS_SYNC: ::c_int = 0x0010; + +pub const MS_KILLPAGES: ::c_int = 0x0004; +pub const MS_DEACTIVATE: ::c_int = 0x0008; + +pub const EPERM: ::c_int = 1; +pub const ENOENT: ::c_int = 2; +pub const ESRCH: ::c_int = 3; +pub const EINTR: ::c_int = 4; +pub const EIO: ::c_int = 5; +pub const ENXIO: ::c_int = 6; +pub const E2BIG: ::c_int = 7; +pub const ENOEXEC: ::c_int = 8; +pub const EBADF: ::c_int = 9; +pub const ECHILD: ::c_int = 10; +pub const EDEADLK: ::c_int = 11; +pub const ENOMEM: ::c_int = 12; +pub const EACCES: ::c_int = 13; +pub const EFAULT: ::c_int = 14; +pub const ENOTBLK: ::c_int = 15; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const EXDEV: ::c_int = 18; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENFILE: ::c_int = 23; +pub const EMFILE: ::c_int = 24; +pub const ENOTTY: ::c_int = 25; +pub const ETXTBSY: ::c_int = 26; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const ESPIPE: ::c_int = 29; +pub const EROFS: ::c_int = 30; +pub const EMLINK: ::c_int = 31; +pub const EPIPE: ::c_int = 32; +pub const EDOM: ::c_int = 33; +pub const ERANGE: ::c_int = 34; +pub const EAGAIN: ::c_int = 35; +pub const EWOULDBLOCK: ::c_int = EAGAIN; +pub const EINPROGRESS: ::c_int = 36; +pub const EALREADY: ::c_int = 37; +pub const ENOTSOCK: ::c_int = 38; +pub const EDESTADDRREQ: ::c_int = 39; +pub const EMSGSIZE: ::c_int = 40; +pub const EPROTOTYPE: ::c_int = 41; +pub const ENOPROTOOPT: ::c_int = 42; +pub const EPROTONOSUPPORT: ::c_int = 43; +pub const ESOCKTNOSUPPORT: ::c_int = 44; +pub const ENOTSUP: ::c_int = 45; +pub const EPFNOSUPPORT: ::c_int = 46; +pub const EAFNOSUPPORT: ::c_int = 47; +pub const EADDRINUSE: ::c_int = 48; +pub const EADDRNOTAVAIL: ::c_int = 49; +pub const ENETDOWN: ::c_int = 50; +pub const ENETUNREACH: ::c_int = 51; +pub const ENETRESET: ::c_int = 52; +pub const ECONNABORTED: ::c_int = 53; +pub const ECONNRESET: ::c_int = 54; +pub const ENOBUFS: ::c_int = 55; +pub const EISCONN: ::c_int = 56; +pub const ENOTCONN: ::c_int = 57; +pub const ESHUTDOWN: ::c_int = 58; +pub const ETOOMANYREFS: ::c_int = 59; +pub const ETIMEDOUT: ::c_int = 60; +pub const ECONNREFUSED: ::c_int = 61; +pub const ELOOP: ::c_int = 62; +pub const ENAMETOOLONG: ::c_int = 63; +pub const EHOSTDOWN: ::c_int = 64; +pub const EHOSTUNREACH: ::c_int = 65; +pub const ENOTEMPTY: ::c_int = 66; +pub const EPROCLIM: ::c_int = 67; +pub const EUSERS: ::c_int = 68; +pub const EDQUOT: ::c_int = 69; +pub const ESTALE: ::c_int = 70; +pub const EREMOTE: ::c_int = 71; +pub const EBADRPC: ::c_int = 72; +pub const ERPCMISMATCH: ::c_int = 73; +pub const EPROGUNAVAIL: ::c_int = 74; +pub const EPROGMISMATCH: ::c_int = 75; +pub const EPROCUNAVAIL: ::c_int = 76; +pub const ENOLCK: ::c_int = 77; +pub const ENOSYS: ::c_int = 78; +pub const EFTYPE: ::c_int = 79; +pub const EAUTH: ::c_int = 80; +pub const ENEEDAUTH: ::c_int = 81; +pub const EPWROFF: ::c_int = 82; +pub const EDEVERR: ::c_int = 83; +pub const EOVERFLOW: ::c_int = 84; +pub const EBADEXEC: ::c_int = 85; +pub const EBADARCH: ::c_int = 86; +pub const ESHLIBVERS: ::c_int = 87; +pub const EBADMACHO: ::c_int = 88; +pub const ECANCELED: ::c_int = 89; +pub const EIDRM: ::c_int = 90; +pub const ENOMSG: ::c_int = 91; +pub const EILSEQ: ::c_int = 92; +pub const ENOATTR: ::c_int = 93; +pub const EBADMSG: ::c_int = 94; +pub const EMULTIHOP: ::c_int = 95; +pub const ENODATA: ::c_int = 96; +pub const ENOLINK: ::c_int = 97; +pub const ENOSR: ::c_int = 98; +pub const ENOSTR: ::c_int = 99; +pub const EPROTO: ::c_int = 100; +pub const ETIME: ::c_int = 101; +pub const EOPNOTSUPP: ::c_int = 102; +pub const ENOPOLICY: ::c_int = 103; +pub const ENOTRECOVERABLE: ::c_int = 104; +pub const EOWNERDEAD: ::c_int = 105; +pub const EQFULL: ::c_int = 106; +pub const ELAST: ::c_int = 106; + +pub const EAI_AGAIN: ::c_int = 2; +pub const EAI_BADFLAGS: ::c_int = 3; +pub const EAI_FAIL: ::c_int = 4; +pub const EAI_FAMILY: ::c_int = 5; +pub const EAI_MEMORY: ::c_int = 6; +pub const EAI_NODATA: ::c_int = 7; +pub const EAI_NONAME: ::c_int = 8; +pub const EAI_SERVICE: ::c_int = 9; +pub const EAI_SOCKTYPE: ::c_int = 10; +pub const EAI_SYSTEM: ::c_int = 11; +pub const EAI_OVERFLOW: ::c_int = 14; + +pub const F_DUPFD: ::c_int = 0; +pub const F_DUPFD_CLOEXEC: ::c_int = 67; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; +pub const F_PREALLOCATE: ::c_int = 42; +pub const F_RDADVISE: ::c_int = 44; +pub const F_RDAHEAD: ::c_int = 45; +pub const F_NOCACHE: ::c_int = 48; +pub const F_LOG2PHYS: ::c_int = 49; +pub const F_GETPATH: ::c_int = 50; +pub const F_FULLFSYNC: ::c_int = 51; +pub const F_FREEZE_FS: ::c_int = 53; +pub const F_THAW_FS: ::c_int = 54; +pub const F_GLOBAL_NOCACHE: ::c_int = 55; +pub const F_NODIRECT: ::c_int = 62; +pub const F_LOG2PHYS_EXT: ::c_int = 65; +pub const F_BARRIERFSYNC: ::c_int = 85; +pub const F_GETPATH_NOFIRMLINK: ::c_int = 102; + +pub const F_ALLOCATECONTIG: ::c_uint = 0x02; +pub const F_ALLOCATEALL: ::c_uint = 0x04; + +pub const F_PEOFPOSMODE: ::c_int = 3; +pub const F_VOLPOSMODE: ::c_int = 4; + +pub const AT_FDCWD: ::c_int = -2; +pub const AT_EACCESS: ::c_int = 0x0010; +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x0020; +pub const AT_SYMLINK_FOLLOW: ::c_int = 0x0040; +pub const AT_REMOVEDIR: ::c_int = 0x0080; + +pub const PTHREAD_INTROSPECTION_THREAD_CREATE: ::c_uint = 1; +pub const PTHREAD_INTROSPECTION_THREAD_START: ::c_uint = 2; +pub const PTHREAD_INTROSPECTION_THREAD_TERMINATE: ::c_uint = 3; +pub const PTHREAD_INTROSPECTION_THREAD_DESTROY: ::c_uint = 4; + +pub const TIOCMODG: ::c_ulong = 0x40047403; +pub const TIOCMODS: ::c_ulong = 0x80047404; +pub const TIOCM_LE: ::c_int = 0x1; +pub const TIOCM_DTR: ::c_int = 0x2; +pub const TIOCM_RTS: ::c_int = 0x4; +pub const TIOCM_ST: ::c_int = 0x8; +pub const TIOCM_SR: ::c_int = 0x10; +pub const TIOCM_CTS: ::c_int = 0x20; +pub const TIOCM_CAR: ::c_int = 0x40; +pub const TIOCM_CD: ::c_int = 0x40; +pub const TIOCM_RNG: ::c_int = 0x80; +pub const TIOCM_RI: ::c_int = 0x80; +pub const TIOCM_DSR: ::c_int = 0x100; +pub const TIOCEXCL: ::c_int = 0x2000740d; +pub const TIOCNXCL: ::c_int = 0x2000740e; +pub const TIOCFLUSH: ::c_ulong = 0x80047410; +pub const TIOCGETD: ::c_ulong = 0x4004741a; +pub const TIOCSETD: ::c_ulong = 0x8004741b; +pub const TIOCIXON: ::c_uint = 0x20007481; +pub const TIOCIXOFF: ::c_uint = 0x20007480; +pub const TIOCSDTR: ::c_uint = 0x20007479; +pub const TIOCCDTR: ::c_uint = 0x20007478; +pub const TIOCGPGRP: ::c_ulong = 0x40047477; +pub const TIOCSPGRP: ::c_ulong = 0x80047476; +pub const TIOCOUTQ: ::c_ulong = 0x40047473; +pub const TIOCSTI: ::c_ulong = 0x80017472; +pub const TIOCNOTTY: ::c_uint = 0x20007471; +pub const TIOCPKT: ::c_ulong = 0x80047470; +pub const TIOCPKT_DATA: ::c_int = 0x0; +pub const TIOCPKT_FLUSHREAD: ::c_int = 0x1; +pub const TIOCPKT_FLUSHWRITE: ::c_int = 0x2; +pub const TIOCPKT_STOP: ::c_int = 0x4; +pub const TIOCPKT_START: ::c_int = 0x8; +pub const TIOCPKT_NOSTOP: ::c_int = 0x10; +pub const TIOCPKT_DOSTOP: ::c_int = 0x20; +pub const TIOCPKT_IOCTL: ::c_int = 0x40; +pub const TIOCSTOP: ::c_uint = 0x2000746f; +pub const TIOCSTART: ::c_uint = 0x2000746e; +pub const TIOCMSET: ::c_ulong = 0x8004746d; +pub const TIOCMBIS: ::c_ulong = 0x8004746c; +pub const TIOCMBIC: ::c_ulong = 0x8004746b; +pub const TIOCMGET: ::c_ulong = 0x4004746a; +pub const TIOCREMOTE: ::c_ulong = 0x80047469; +pub const TIOCGWINSZ: ::c_ulong = 0x40087468; +pub const TIOCSWINSZ: ::c_ulong = 0x80087467; +pub const TIOCUCNTL: ::c_ulong = 0x80047466; +pub const TIOCSTAT: ::c_uint = 0x20007465; +pub const TIOCSCONS: ::c_uint = 0x20007463; +pub const TIOCCONS: ::c_ulong = 0x80047462; +pub const TIOCSCTTY: ::c_uint = 0x20007461; +pub const TIOCEXT: ::c_ulong = 0x80047460; +pub const TIOCSIG: ::c_uint = 0x2000745f; +pub const TIOCDRAIN: ::c_uint = 0x2000745e; +pub const TIOCMSDTRWAIT: ::c_ulong = 0x8004745b; +pub const TIOCMGDTRWAIT: ::c_ulong = 0x4004745a; +pub const TIOCSDRAINWAIT: ::c_ulong = 0x80047457; +pub const TIOCGDRAINWAIT: ::c_ulong = 0x40047456; +pub const TIOCDSIMICROCODE: ::c_uint = 0x20007455; +pub const TIOCPTYGRANT: ::c_uint = 0x20007454; +pub const TIOCPTYGNAME: ::c_uint = 0x40807453; +pub const TIOCPTYUNLK: ::c_uint = 0x20007452; + +pub const BIOCGRSIG: ::c_ulong = 0x40044272; +pub const BIOCSRSIG: ::c_ulong = 0x80044273; +pub const BIOCSDLT: ::c_ulong = 0x80044278; +pub const BIOCGSEESENT: ::c_ulong = 0x40044276; +pub const BIOCSSEESENT: ::c_ulong = 0x80044277; +pub const BIOCGDLTLIST: ::c_ulong = 0xc00c4279; + +pub const FIODTYPE: ::c_ulong = 0x4004667a; + +pub const B0: speed_t = 0; +pub const B50: speed_t = 50; +pub const B75: speed_t = 75; +pub const B110: speed_t = 110; +pub const B134: speed_t = 134; +pub const B150: speed_t = 150; +pub const B200: speed_t = 200; +pub const B300: speed_t = 300; +pub const B600: speed_t = 600; +pub const B1200: speed_t = 1200; +pub const B1800: speed_t = 1800; +pub const B2400: speed_t = 2400; +pub const B4800: speed_t = 4800; +pub const B9600: speed_t = 9600; +pub const B19200: speed_t = 19200; +pub const B38400: speed_t = 38400; +pub const B7200: speed_t = 7200; +pub const B14400: speed_t = 14400; +pub const B28800: speed_t = 28800; +pub const B57600: speed_t = 57600; +pub const B76800: speed_t = 76800; +pub const B115200: speed_t = 115200; +pub const B230400: speed_t = 230400; +pub const EXTA: speed_t = 19200; +pub const EXTB: speed_t = 38400; + +pub const SIGTRAP: ::c_int = 5; + +pub const GLOB_APPEND: ::c_int = 0x0001; +pub const GLOB_DOOFFS: ::c_int = 0x0002; +pub const GLOB_ERR: ::c_int = 0x0004; +pub const GLOB_MARK: ::c_int = 0x0008; +pub const GLOB_NOCHECK: ::c_int = 0x0010; +pub const GLOB_NOSORT: ::c_int = 0x0020; +pub const GLOB_NOESCAPE: ::c_int = 0x2000; + +pub const GLOB_NOSPACE: ::c_int = -1; +pub const GLOB_ABORTED: ::c_int = -2; +pub const GLOB_NOMATCH: ::c_int = -3; + +pub const POSIX_MADV_NORMAL: ::c_int = 0; +pub const POSIX_MADV_RANDOM: ::c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_MADV_WILLNEED: ::c_int = 3; +pub const POSIX_MADV_DONTNEED: ::c_int = 4; + +pub const _SC_IOV_MAX: ::c_int = 56; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 70; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 71; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 73; +pub const _SC_MQ_PRIO_MAX: ::c_int = 75; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 82; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 83; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 85; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 86; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 87; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 88; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 89; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 90; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 91; +pub const _SC_THREAD_STACK_MIN: ::c_int = 93; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 94; +pub const _SC_THREADS: ::c_int = 96; +pub const _SC_TTY_NAME_MAX: ::c_int = 101; +pub const _SC_ATEXIT_MAX: ::c_int = 107; +pub const _SC_XOPEN_CRYPT: ::c_int = 108; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 109; +pub const _SC_XOPEN_LEGACY: ::c_int = 110; +pub const _SC_XOPEN_REALTIME: ::c_int = 111; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 112; +pub const _SC_XOPEN_SHM: ::c_int = 113; +pub const _SC_XOPEN_UNIX: ::c_int = 115; +pub const _SC_XOPEN_VERSION: ::c_int = 116; +pub const _SC_XOPEN_XCU_VERSION: ::c_int = 121; +pub const _SC_PHYS_PAGES: ::c_int = 200; + +pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 2; +pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; +pub const PTHREAD_CREATE_JOINABLE: ::c_int = 1; +pub const PTHREAD_CREATE_DETACHED: ::c_int = 2; +#[cfg(target_arch = "aarch64")] +pub const PTHREAD_STACK_MIN: ::size_t = 16384; +#[cfg(not(target_arch = "aarch64"))] +pub const PTHREAD_STACK_MIN: ::size_t = 8192; + +pub const RLIMIT_CPU: ::c_int = 0; +pub const RLIMIT_FSIZE: ::c_int = 1; +pub const RLIMIT_DATA: ::c_int = 2; +pub const RLIMIT_STACK: ::c_int = 3; +pub const RLIMIT_CORE: ::c_int = 4; +pub const RLIMIT_AS: ::c_int = 5; +pub const RLIMIT_RSS: ::c_int = RLIMIT_AS; +pub const RLIMIT_MEMLOCK: ::c_int = 6; +pub const RLIMIT_NPROC: ::c_int = 7; +pub const RLIMIT_NOFILE: ::c_int = 8; +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] +pub const RLIM_NLIMITS: ::c_int = 9; +pub const _RLIMIT_POSIX_FLAG: ::c_int = 0x1000; + +pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff; + +pub const RUSAGE_SELF: ::c_int = 0; +pub const RUSAGE_CHILDREN: ::c_int = -1; + +pub const MADV_NORMAL: ::c_int = 0; +pub const MADV_RANDOM: ::c_int = 1; +pub const MADV_SEQUENTIAL: ::c_int = 2; +pub const MADV_WILLNEED: ::c_int = 3; +pub const MADV_DONTNEED: ::c_int = 4; +pub const MADV_FREE: ::c_int = 5; +pub const MADV_ZERO_WIRED_PAGES: ::c_int = 6; +pub const MADV_FREE_REUSABLE: ::c_int = 7; +pub const MADV_FREE_REUSE: ::c_int = 8; +pub const MADV_CAN_REUSE: ::c_int = 9; + +pub const MINCORE_INCORE: ::c_int = 0x1; +pub const MINCORE_REFERENCED: ::c_int = 0x2; +pub const MINCORE_MODIFIED: ::c_int = 0x4; +pub const MINCORE_REFERENCED_OTHER: ::c_int = 0x8; +pub const MINCORE_MODIFIED_OTHER: ::c_int = 0x10; + +pub const CTLIOCGINFO: c_ulong = 0xc0644e03; + +// +// sys/netinet/in.h +// Protocols (RFC 1700) +// NOTE: These are in addition to the constants defined in src/unix/mod.rs + +// IPPROTO_IP defined in src/unix/mod.rs +/// IP6 hop-by-hop options +pub const IPPROTO_HOPOPTS: ::c_int = 0; +// IPPROTO_ICMP defined in src/unix/mod.rs +/// group mgmt protocol +pub const IPPROTO_IGMP: ::c_int = 2; +/// gateway2 (deprecated) +pub const IPPROTO_GGP: ::c_int = 3; +/// for compatibility +pub const IPPROTO_IPIP: ::c_int = 4; +// IPPROTO_TCP defined in src/unix/mod.rs +/// Stream protocol II. +pub const IPPROTO_ST: ::c_int = 7; +/// exterior gateway protocol +pub const IPPROTO_EGP: ::c_int = 8; +/// private interior gateway +pub const IPPROTO_PIGP: ::c_int = 9; +/// BBN RCC Monitoring +pub const IPPROTO_RCCMON: ::c_int = 10; +/// network voice protocol +pub const IPPROTO_NVPII: ::c_int = 11; +/// pup +pub const IPPROTO_PUP: ::c_int = 12; +/// Argus +pub const IPPROTO_ARGUS: ::c_int = 13; +/// EMCON +pub const IPPROTO_EMCON: ::c_int = 14; +/// Cross Net Debugger +pub const IPPROTO_XNET: ::c_int = 15; +/// Chaos +pub const IPPROTO_CHAOS: ::c_int = 16; +// IPPROTO_UDP defined in src/unix/mod.rs +/// Multiplexing +pub const IPPROTO_MUX: ::c_int = 18; +/// DCN Measurement Subsystems +pub const IPPROTO_MEAS: ::c_int = 19; +/// Host Monitoring +pub const IPPROTO_HMP: ::c_int = 20; +/// Packet Radio Measurement +pub const IPPROTO_PRM: ::c_int = 21; +/// xns idp +pub const IPPROTO_IDP: ::c_int = 22; +/// Trunk-1 +pub const IPPROTO_TRUNK1: ::c_int = 23; +/// Trunk-2 +pub const IPPROTO_TRUNK2: ::c_int = 24; +/// Leaf-1 +pub const IPPROTO_LEAF1: ::c_int = 25; +/// Leaf-2 +pub const IPPROTO_LEAF2: ::c_int = 26; +/// Reliable Data +pub const IPPROTO_RDP: ::c_int = 27; +/// Reliable Transaction +pub const IPPROTO_IRTP: ::c_int = 28; +/// tp-4 w/ class negotiation +pub const IPPROTO_TP: ::c_int = 29; +/// Bulk Data Transfer +pub const IPPROTO_BLT: ::c_int = 30; +/// Network Services +pub const IPPROTO_NSP: ::c_int = 31; +/// Merit Internodal +pub const IPPROTO_INP: ::c_int = 32; +/// Sequential Exchange +pub const IPPROTO_SEP: ::c_int = 33; +/// Third Party Connect +pub const IPPROTO_3PC: ::c_int = 34; +/// InterDomain Policy Routing +pub const IPPROTO_IDPR: ::c_int = 35; +/// XTP +pub const IPPROTO_XTP: ::c_int = 36; +/// Datagram Delivery +pub const IPPROTO_DDP: ::c_int = 37; +/// Control Message Transport +pub const IPPROTO_CMTP: ::c_int = 38; +/// TP++ Transport +pub const IPPROTO_TPXX: ::c_int = 39; +/// IL transport protocol +pub const IPPROTO_IL: ::c_int = 40; +// IPPROTO_IPV6 defined in src/unix/mod.rs +/// Source Demand Routing +pub const IPPROTO_SDRP: ::c_int = 42; +/// IP6 routing header +pub const IPPROTO_ROUTING: ::c_int = 43; +/// IP6 fragmentation header +pub const IPPROTO_FRAGMENT: ::c_int = 44; +/// InterDomain Routing +pub const IPPROTO_IDRP: ::c_int = 45; +/// resource reservation +pub const IPPROTO_RSVP: ::c_int = 46; +/// General Routing Encap. +pub const IPPROTO_GRE: ::c_int = 47; +/// Mobile Host Routing +pub const IPPROTO_MHRP: ::c_int = 48; +/// BHA +pub const IPPROTO_BHA: ::c_int = 49; +/// IP6 Encap Sec. Payload +pub const IPPROTO_ESP: ::c_int = 50; +/// IP6 Auth Header +pub const IPPROTO_AH: ::c_int = 51; +/// Integ. Net Layer Security +pub const IPPROTO_INLSP: ::c_int = 52; +/// IP with encryption +pub const IPPROTO_SWIPE: ::c_int = 53; +/// Next Hop Resolution +pub const IPPROTO_NHRP: ::c_int = 54; +/* 55-57: Unassigned */ +// IPPROTO_ICMPV6 defined in src/unix/mod.rs +/// IP6 no next header +pub const IPPROTO_NONE: ::c_int = 59; +/// IP6 destination option +pub const IPPROTO_DSTOPTS: ::c_int = 60; +/// any host internal protocol +pub const IPPROTO_AHIP: ::c_int = 61; +/// CFTP +pub const IPPROTO_CFTP: ::c_int = 62; +/// "hello" routing protocol +pub const IPPROTO_HELLO: ::c_int = 63; +/// SATNET/Backroom EXPAK +pub const IPPROTO_SATEXPAK: ::c_int = 64; +/// Kryptolan +pub const IPPROTO_KRYPTOLAN: ::c_int = 65; +/// Remote Virtual Disk +pub const IPPROTO_RVD: ::c_int = 66; +/// Pluribus Packet Core +pub const IPPROTO_IPPC: ::c_int = 67; +/// Any distributed FS +pub const IPPROTO_ADFS: ::c_int = 68; +/// Satnet Monitoring +pub const IPPROTO_SATMON: ::c_int = 69; +/// VISA Protocol +pub const IPPROTO_VISA: ::c_int = 70; +/// Packet Core Utility +pub const IPPROTO_IPCV: ::c_int = 71; +/// Comp. Prot. Net. Executive +pub const IPPROTO_CPNX: ::c_int = 72; +/// Comp. Prot. HeartBeat +pub const IPPROTO_CPHB: ::c_int = 73; +/// Wang Span Network +pub const IPPROTO_WSN: ::c_int = 74; +/// Packet Video Protocol +pub const IPPROTO_PVP: ::c_int = 75; +/// BackRoom SATNET Monitoring +pub const IPPROTO_BRSATMON: ::c_int = 76; +/// Sun net disk proto (temp.) +pub const IPPROTO_ND: ::c_int = 77; +/// WIDEBAND Monitoring +pub const IPPROTO_WBMON: ::c_int = 78; +/// WIDEBAND EXPAK +pub const IPPROTO_WBEXPAK: ::c_int = 79; +/// ISO cnlp +pub const IPPROTO_EON: ::c_int = 80; +/// VMTP +pub const IPPROTO_VMTP: ::c_int = 81; +/// Secure VMTP +pub const IPPROTO_SVMTP: ::c_int = 82; +/// Banyon VINES +pub const IPPROTO_VINES: ::c_int = 83; +/// TTP +pub const IPPROTO_TTP: ::c_int = 84; +/// NSFNET-IGP +pub const IPPROTO_IGP: ::c_int = 85; +/// dissimilar gateway prot. +pub const IPPROTO_DGP: ::c_int = 86; +/// TCF +pub const IPPROTO_TCF: ::c_int = 87; +/// Cisco/GXS IGRP +pub const IPPROTO_IGRP: ::c_int = 88; +/// OSPFIGP +pub const IPPROTO_OSPFIGP: ::c_int = 89; +/// Strite RPC protocol +pub const IPPROTO_SRPC: ::c_int = 90; +/// Locus Address Resoloution +pub const IPPROTO_LARP: ::c_int = 91; +/// Multicast Transport +pub const IPPROTO_MTP: ::c_int = 92; +/// AX.25 Frames +pub const IPPROTO_AX25: ::c_int = 93; +/// IP encapsulated in IP +pub const IPPROTO_IPEIP: ::c_int = 94; +/// Mobile Int.ing control +pub const IPPROTO_MICP: ::c_int = 95; +/// Semaphore Comm. security +pub const IPPROTO_SCCSP: ::c_int = 96; +/// Ethernet IP encapsulation +pub const IPPROTO_ETHERIP: ::c_int = 97; +/// encapsulation header +pub const IPPROTO_ENCAP: ::c_int = 98; +/// any private encr. scheme +pub const IPPROTO_APES: ::c_int = 99; +/// GMTP +pub const IPPROTO_GMTP: ::c_int = 100; + +/* 101-254: Partly Unassigned */ +/// Protocol Independent Mcast +pub const IPPROTO_PIM: ::c_int = 103; +/// payload compression (IPComp) +pub const IPPROTO_IPCOMP: ::c_int = 108; +/// PGM +pub const IPPROTO_PGM: ::c_int = 113; +/// SCTP +pub const IPPROTO_SCTP: ::c_int = 132; + +/* 255: Reserved */ +/* BSD Private, local use, namespace incursion */ +/// divert pseudo-protocol +pub const IPPROTO_DIVERT: ::c_int = 254; +/// raw IP packet +pub const IPPROTO_RAW: ::c_int = 255; +pub const IPPROTO_MAX: ::c_int = 256; +/// last return value of *_input(), meaning "all job for this pkt is done". +pub const IPPROTO_DONE: ::c_int = 257; + +pub const AF_UNSPEC: ::c_int = 0; +pub const AF_LOCAL: ::c_int = 1; +pub const AF_UNIX: ::c_int = AF_LOCAL; +pub const AF_INET: ::c_int = 2; +pub const AF_IMPLINK: ::c_int = 3; +pub const AF_PUP: ::c_int = 4; +pub const AF_CHAOS: ::c_int = 5; +pub const AF_NS: ::c_int = 6; +pub const AF_ISO: ::c_int = 7; +pub const AF_OSI: ::c_int = AF_ISO; +pub const AF_ECMA: ::c_int = 8; +pub const AF_DATAKIT: ::c_int = 9; +pub const AF_CCITT: ::c_int = 10; +pub const AF_SNA: ::c_int = 11; +pub const AF_DECnet: ::c_int = 12; +pub const AF_DLI: ::c_int = 13; +pub const AF_LAT: ::c_int = 14; +pub const AF_HYLINK: ::c_int = 15; +pub const AF_APPLETALK: ::c_int = 16; +pub const AF_ROUTE: ::c_int = 17; +pub const AF_LINK: ::c_int = 18; +pub const pseudo_AF_XTP: ::c_int = 19; +pub const AF_COIP: ::c_int = 20; +pub const AF_CNT: ::c_int = 21; +pub const pseudo_AF_RTIP: ::c_int = 22; +pub const AF_IPX: ::c_int = 23; +pub const AF_SIP: ::c_int = 24; +pub const pseudo_AF_PIP: ::c_int = 25; +pub const AF_NDRV: ::c_int = 27; +pub const AF_ISDN: ::c_int = 28; +pub const AF_E164: ::c_int = AF_ISDN; +pub const pseudo_AF_KEY: ::c_int = 29; +pub const AF_INET6: ::c_int = 30; +pub const AF_NATM: ::c_int = 31; +pub const AF_SYSTEM: ::c_int = 32; +pub const AF_NETBIOS: ::c_int = 33; +pub const AF_PPP: ::c_int = 34; +pub const pseudo_AF_HDRCMPLT: ::c_int = 35; +pub const AF_IEEE80211: ::c_int = 37; +pub const AF_UTUN: ::c_int = 38; +pub const AF_VSOCK: ::c_int = 40; +pub const AF_SYS_CONTROL: ::c_int = 2; + +pub const SYSPROTO_EVENT: ::c_int = 1; +pub const SYSPROTO_CONTROL: ::c_int = 2; + +pub const PF_UNSPEC: ::c_int = AF_UNSPEC; +pub const PF_LOCAL: ::c_int = AF_LOCAL; +pub const PF_UNIX: ::c_int = PF_LOCAL; +pub const PF_INET: ::c_int = AF_INET; +pub const PF_IMPLINK: ::c_int = AF_IMPLINK; +pub const PF_PUP: ::c_int = AF_PUP; +pub const PF_CHAOS: ::c_int = AF_CHAOS; +pub const PF_NS: ::c_int = AF_NS; +pub const PF_ISO: ::c_int = AF_ISO; +pub const PF_OSI: ::c_int = AF_ISO; +pub const PF_ECMA: ::c_int = AF_ECMA; +pub const PF_DATAKIT: ::c_int = AF_DATAKIT; +pub const PF_CCITT: ::c_int = AF_CCITT; +pub const PF_SNA: ::c_int = AF_SNA; +pub const PF_DECnet: ::c_int = AF_DECnet; +pub const PF_DLI: ::c_int = AF_DLI; +pub const PF_LAT: ::c_int = AF_LAT; +pub const PF_HYLINK: ::c_int = AF_HYLINK; +pub const PF_APPLETALK: ::c_int = AF_APPLETALK; +pub const PF_ROUTE: ::c_int = AF_ROUTE; +pub const PF_LINK: ::c_int = AF_LINK; +pub const PF_XTP: ::c_int = pseudo_AF_XTP; +pub const PF_COIP: ::c_int = AF_COIP; +pub const PF_CNT: ::c_int = AF_CNT; +pub const PF_SIP: ::c_int = AF_SIP; +pub const PF_IPX: ::c_int = AF_IPX; +pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; +pub const PF_PIP: ::c_int = pseudo_AF_PIP; +pub const PF_NDRV: ::c_int = AF_NDRV; +pub const PF_ISDN: ::c_int = AF_ISDN; +pub const PF_KEY: ::c_int = pseudo_AF_KEY; +pub const PF_INET6: ::c_int = AF_INET6; +pub const PF_NATM: ::c_int = AF_NATM; +pub const PF_SYSTEM: ::c_int = AF_SYSTEM; +pub const PF_NETBIOS: ::c_int = AF_NETBIOS; +pub const PF_PPP: ::c_int = AF_PPP; +pub const PF_VSOCK: ::c_int = AF_VSOCK; + +pub const NET_RT_DUMP: ::c_int = 1; +pub const NET_RT_FLAGS: ::c_int = 2; +pub const NET_RT_IFLIST: ::c_int = 3; + +pub const SOMAXCONN: ::c_int = 128; + +pub const SOCK_MAXADDRLEN: ::c_int = 255; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_RAW: ::c_int = 3; +pub const SOCK_RDM: ::c_int = 4; +pub const SOCK_SEQPACKET: ::c_int = 5; +pub const IP_TTL: ::c_int = 4; +pub const IP_HDRINCL: ::c_int = 2; +pub const IP_RECVDSTADDR: ::c_int = 7; +pub const IP_ADD_MEMBERSHIP: ::c_int = 12; +pub const IP_DROP_MEMBERSHIP: ::c_int = 13; +pub const IP_RECVIF: ::c_int = 20; +pub const IP_BOUND_IF: ::c_int = 25; +pub const IP_PKTINFO: ::c_int = 26; +pub const IP_RECVTOS: ::c_int = 27; +pub const IP_DONTFRAG: ::c_int = 28; +pub const IPV6_JOIN_GROUP: ::c_int = 12; +pub const IPV6_LEAVE_GROUP: ::c_int = 13; +pub const IPV6_CHECKSUM: ::c_int = 26; +pub const IPV6_RECVTCLASS: ::c_int = 35; +pub const IPV6_TCLASS: ::c_int = 36; +pub const IPV6_PKTINFO: ::c_int = 46; +pub const IPV6_HOPLIMIT: ::c_int = 47; +pub const IPV6_RECVPKTINFO: ::c_int = 61; +pub const IPV6_DONTFRAG: ::c_int = 62; +pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 70; +pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71; +pub const IP_BLOCK_SOURCE: ::c_int = 72; +pub const IP_UNBLOCK_SOURCE: ::c_int = 73; +pub const IPV6_BOUND_IF: ::c_int = 125; + +pub const TCP_NOPUSH: ::c_int = 4; +pub const TCP_NOOPT: ::c_int = 8; +pub const TCP_KEEPALIVE: ::c_int = 0x10; +pub const TCP_KEEPINTVL: ::c_int = 0x101; +pub const TCP_KEEPCNT: ::c_int = 0x102; +/// Enable/Disable TCP Fastopen on this socket +pub const TCP_FASTOPEN: ::c_int = 0x105; + +pub const SOL_LOCAL: ::c_int = 0; + +pub const LOCAL_PEERCRED: ::c_int = 0x001; +pub const LOCAL_PEERPID: ::c_int = 0x002; +pub const LOCAL_PEEREPID: ::c_int = 0x003; +pub const LOCAL_PEERUUID: ::c_int = 0x004; +pub const LOCAL_PEEREUUID: ::c_int = 0x005; + +pub const SOL_SOCKET: ::c_int = 0xffff; + +pub const SO_DEBUG: ::c_int = 0x01; +pub const SO_ACCEPTCONN: ::c_int = 0x0002; +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_USELOOPBACK: ::c_int = 0x0040; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_OOBINLINE: ::c_int = 0x0100; +pub const SO_REUSEPORT: ::c_int = 0x0200; +pub const SO_TIMESTAMP: ::c_int = 0x0400; +pub const SO_TIMESTAMP_MONOTONIC: ::c_int = 0x0800; +pub const SO_DONTTRUNC: ::c_int = 0x2000; +pub const SO_WANTMORE: ::c_int = 0x4000; +pub const SO_WANTOOBFLAG: ::c_int = 0x8000; +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_SNDLOWAT: ::c_int = 0x1003; +pub const SO_RCVLOWAT: ::c_int = 0x1004; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_TYPE: ::c_int = 0x1008; +pub const SO_LABEL: ::c_int = 0x1010; +pub const SO_PEERLABEL: ::c_int = 0x1011; +pub const SO_NREAD: ::c_int = 0x1020; +pub const SO_NKE: ::c_int = 0x1021; +pub const SO_NOSIGPIPE: ::c_int = 0x1022; +pub const SO_NOADDRERR: ::c_int = 0x1023; +pub const SO_NWRITE: ::c_int = 0x1024; +pub const SO_REUSESHAREUID: ::c_int = 0x1025; +pub const SO_NOTIFYCONFLICT: ::c_int = 0x1026; +pub const SO_LINGER_SEC: ::c_int = 0x1080; +pub const SO_RANDOMPORT: ::c_int = 0x1082; +pub const SO_NP_EXTENSIONS: ::c_int = 0x1083; + +pub const MSG_OOB: ::c_int = 0x1; +pub const MSG_PEEK: ::c_int = 0x2; +pub const MSG_DONTROUTE: ::c_int = 0x4; +pub const MSG_EOR: ::c_int = 0x8; +pub const MSG_TRUNC: ::c_int = 0x10; +pub const MSG_CTRUNC: ::c_int = 0x20; +pub const MSG_WAITALL: ::c_int = 0x40; +pub const MSG_DONTWAIT: ::c_int = 0x80; +pub const MSG_EOF: ::c_int = 0x100; +pub const MSG_FLUSH: ::c_int = 0x400; +pub const MSG_HOLD: ::c_int = 0x800; +pub const MSG_SEND: ::c_int = 0x1000; +pub const MSG_HAVEMORE: ::c_int = 0x2000; +pub const MSG_RCVMORE: ::c_int = 0x4000; +pub const MSG_NEEDSA: ::c_int = 0x10000; +pub const MSG_NOSIGNAL: ::c_int = 0x80000; + +pub const SCM_TIMESTAMP: ::c_int = 0x02; +pub const SCM_CREDS: ::c_int = 0x03; + +// https://github.com/aosm/xnu/blob/HEAD/bsd/net/if.h#L140-L156 +pub const IFF_UP: ::c_int = 0x1; // interface is up +pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid +pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging +pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net +pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link +pub const IFF_NOTRAILERS: ::c_int = 0x20; // obsolete: avoid use of trailers +pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated +pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol +pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets +pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets +pub const IFF_OACTIVE: ::c_int = 0x400; // transmission in progress +pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions +pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit +pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit +pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit +pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection +pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast + +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; + +pub const SAE_ASSOCID_ANY: ::sae_associd_t = 0; +/// ((sae_associd_t)(-1ULL)) +pub const SAE_ASSOCID_ALL: ::sae_associd_t = 0xffffffff; + +pub const SAE_CONNID_ANY: ::sae_connid_t = 0; +/// ((sae_connid_t)(-1ULL)) +pub const SAE_CONNID_ALL: ::sae_connid_t = 0xffffffff; + +// connectx() flag parameters + +/// resume connect() on read/write +pub const CONNECT_RESUME_ON_READ_WRITE: ::c_uint = 0x1; +/// data is idempotent +pub const CONNECT_DATA_IDEMPOTENT: ::c_uint = 0x2; +/// data includes security that replaces the TFO-cookie +pub const CONNECT_DATA_AUTHENTICATED: ::c_uint = 0x4; + +pub const LOCK_SH: ::c_int = 1; +pub const LOCK_EX: ::c_int = 2; +pub const LOCK_NB: ::c_int = 4; +pub const LOCK_UN: ::c_int = 8; + +pub const MAP_COPY: ::c_int = 0x0002; +pub const MAP_RENAME: ::c_int = 0x0020; +pub const MAP_NORESERVE: ::c_int = 0x0040; +pub const MAP_NOEXTEND: ::c_int = 0x0100; +pub const MAP_HASSEMAPHORE: ::c_int = 0x0200; +pub const MAP_NOCACHE: ::c_int = 0x0400; +pub const MAP_JIT: ::c_int = 0x0800; + +pub const _SC_ARG_MAX: ::c_int = 1; +pub const _SC_CHILD_MAX: ::c_int = 2; +pub const _SC_CLK_TCK: ::c_int = 3; +pub const _SC_NGROUPS_MAX: ::c_int = 4; +pub const _SC_OPEN_MAX: ::c_int = 5; +pub const _SC_JOB_CONTROL: ::c_int = 6; +pub const _SC_SAVED_IDS: ::c_int = 7; +pub const _SC_VERSION: ::c_int = 8; +pub const _SC_BC_BASE_MAX: ::c_int = 9; +pub const _SC_BC_DIM_MAX: ::c_int = 10; +pub const _SC_BC_SCALE_MAX: ::c_int = 11; +pub const _SC_BC_STRING_MAX: ::c_int = 12; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 13; +pub const _SC_EXPR_NEST_MAX: ::c_int = 14; +pub const _SC_LINE_MAX: ::c_int = 15; +pub const _SC_RE_DUP_MAX: ::c_int = 16; +pub const _SC_2_VERSION: ::c_int = 17; +pub const _SC_2_C_BIND: ::c_int = 18; +pub const _SC_2_C_DEV: ::c_int = 19; +pub const _SC_2_CHAR_TERM: ::c_int = 20; +pub const _SC_2_FORT_DEV: ::c_int = 21; +pub const _SC_2_FORT_RUN: ::c_int = 22; +pub const _SC_2_LOCALEDEF: ::c_int = 23; +pub const _SC_2_SW_DEV: ::c_int = 24; +pub const _SC_2_UPE: ::c_int = 25; +pub const _SC_STREAM_MAX: ::c_int = 26; +pub const _SC_TZNAME_MAX: ::c_int = 27; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 28; +pub const _SC_PAGESIZE: ::c_int = 29; +pub const _SC_MEMLOCK: ::c_int = 30; +pub const _SC_MEMLOCK_RANGE: ::c_int = 31; +pub const _SC_MEMORY_PROTECTION: ::c_int = 32; +pub const _SC_MESSAGE_PASSING: ::c_int = 33; +pub const _SC_PRIORITIZED_IO: ::c_int = 34; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 35; +pub const _SC_REALTIME_SIGNALS: ::c_int = 36; +pub const _SC_SEMAPHORES: ::c_int = 37; +pub const _SC_FSYNC: ::c_int = 38; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 39; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 40; +pub const _SC_TIMERS: ::c_int = 41; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 42; +pub const _SC_AIO_MAX: ::c_int = 43; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 44; +pub const _SC_DELAYTIMER_MAX: ::c_int = 45; +pub const _SC_MQ_OPEN_MAX: ::c_int = 46; +pub const _SC_MAPPED_FILES: ::c_int = 47; +pub const _SC_RTSIG_MAX: ::c_int = 48; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 49; +pub const _SC_SEM_VALUE_MAX: ::c_int = 50; +pub const _SC_SIGQUEUE_MAX: ::c_int = 51; +pub const _SC_TIMER_MAX: ::c_int = 52; +pub const _SC_NPROCESSORS_CONF: ::c_int = 57; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 58; +pub const _SC_2_PBS: ::c_int = 59; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 60; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 61; +pub const _SC_2_PBS_LOCATE: ::c_int = 62; +pub const _SC_2_PBS_MESSAGE: ::c_int = 63; +pub const _SC_2_PBS_TRACK: ::c_int = 64; +pub const _SC_ADVISORY_INFO: ::c_int = 65; +pub const _SC_BARRIERS: ::c_int = 66; +pub const _SC_CLOCK_SELECTION: ::c_int = 67; +pub const _SC_CPUTIME: ::c_int = 68; +pub const _SC_FILE_LOCKING: ::c_int = 69; +pub const _SC_HOST_NAME_MAX: ::c_int = 72; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 74; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 76; +pub const _SC_REGEXP: ::c_int = 77; +pub const _SC_SHELL: ::c_int = 78; +pub const _SC_SPAWN: ::c_int = 79; +pub const _SC_SPIN_LOCKS: ::c_int = 80; +pub const _SC_SPORADIC_SERVER: ::c_int = 81; +pub const _SC_THREAD_CPUTIME: ::c_int = 84; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 92; +pub const _SC_TIMEOUTS: ::c_int = 95; +pub const _SC_TRACE: ::c_int = 97; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 98; +pub const _SC_TRACE_INHERIT: ::c_int = 99; +pub const _SC_TRACE_LOG: ::c_int = 100; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 102; +pub const _SC_V6_ILP32_OFF32: ::c_int = 103; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 104; +pub const _SC_V6_LP64_OFF64: ::c_int = 105; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 106; +pub const _SC_IPV6: ::c_int = 118; +pub const _SC_RAW_SOCKETS: ::c_int = 119; +pub const _SC_SYMLOOP_MAX: ::c_int = 120; +pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; +pub const _SC_XOPEN_STREAMS: ::c_int = 114; +pub const _SC_XBS5_ILP32_OFF32: ::c_int = 122; +pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 123; +pub const _SC_XBS5_LP64_OFF64: ::c_int = 124; +pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 125; +pub const _SC_SS_REPL_MAX: ::c_int = 126; +pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 127; +pub const _SC_TRACE_NAME_MAX: ::c_int = 128; +pub const _SC_TRACE_SYS_MAX: ::c_int = 129; +pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 130; +pub const _SC_PASS_MAX: ::c_int = 131; +// `confstr` keys (only the values guaranteed by `man confstr`). +pub const _CS_PATH: ::c_int = 1; +pub const _CS_DARWIN_USER_DIR: ::c_int = 65536; +pub const _CS_DARWIN_USER_TEMP_DIR: ::c_int = 65537; +pub const _CS_DARWIN_USER_CACHE_DIR: ::c_int = 65538; + +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; +pub const _PTHREAD_MUTEX_SIG_init: ::c_long = 0x32AAABA7; +pub const _PTHREAD_COND_SIG_init: ::c_long = 0x3CB0B1BB; +pub const _PTHREAD_RWLOCK_SIG_init: ::c_long = 0x2DA8B3B4; +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + __sig: _PTHREAD_MUTEX_SIG_init, + __opaque: [0; __PTHREAD_MUTEX_SIZE__], +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + __sig: _PTHREAD_COND_SIG_init, + __opaque: [0; __PTHREAD_COND_SIZE__], +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + __sig: _PTHREAD_RWLOCK_SIG_init, + __opaque: [0; __PTHREAD_RWLOCK_SIZE__], +}; + +pub const OS_UNFAIR_LOCK_INIT: os_unfair_lock = os_unfair_lock { + _os_unfair_lock_opaque: 0, +}; + +pub const OS_LOG_TYPE_DEFAULT: ::os_log_type_t = 0x00; +pub const OS_LOG_TYPE_INFO: ::os_log_type_t = 0x01; +pub const OS_LOG_TYPE_DEBUG: ::os_log_type_t = 0x02; +pub const OS_LOG_TYPE_ERROR: ::os_log_type_t = 0x10; +pub const OS_LOG_TYPE_FAULT: ::os_log_type_t = 0x11; + +pub const OS_SIGNPOST_EVENT: ::os_signpost_type_t = 0x00; +pub const OS_SIGNPOST_INTERVAL_BEGIN: ::os_signpost_type_t = 0x01; +pub const OS_SIGNPOST_INTERVAL_END: ::os_signpost_type_t = 0x02; + +pub const MINSIGSTKSZ: ::size_t = 32768; +pub const SIGSTKSZ: ::size_t = 131072; + +pub const FD_SETSIZE: usize = 1024; + +pub const ST_NOSUID: ::c_ulong = 2; + +pub const SCHED_OTHER: ::c_int = 1; +pub const SCHED_FIFO: ::c_int = 4; +pub const SCHED_RR: ::c_int = 2; + +pub const EVFILT_READ: i16 = -1; +pub const EVFILT_WRITE: i16 = -2; +pub const EVFILT_AIO: i16 = -3; +pub const EVFILT_VNODE: i16 = -4; +pub const EVFILT_PROC: i16 = -5; +pub const EVFILT_SIGNAL: i16 = -6; +pub const EVFILT_TIMER: i16 = -7; +pub const EVFILT_MACHPORT: i16 = -8; +pub const EVFILT_FS: i16 = -9; +pub const EVFILT_USER: i16 = -10; +pub const EVFILT_VM: i16 = -12; + +pub const EV_ADD: u16 = 0x1; +pub const EV_DELETE: u16 = 0x2; +pub const EV_ENABLE: u16 = 0x4; +pub const EV_DISABLE: u16 = 0x8; +pub const EV_ONESHOT: u16 = 0x10; +pub const EV_CLEAR: u16 = 0x20; +pub const EV_RECEIPT: u16 = 0x40; +pub const EV_DISPATCH: u16 = 0x80; +pub const EV_FLAG0: u16 = 0x1000; +pub const EV_POLL: u16 = 0x1000; +pub const EV_FLAG1: u16 = 0x2000; +pub const EV_OOBAND: u16 = 0x2000; +pub const EV_ERROR: u16 = 0x4000; +pub const EV_EOF: u16 = 0x8000; +pub const EV_SYSFLAGS: u16 = 0xf000; + +pub const NOTE_TRIGGER: u32 = 0x01000000; +pub const NOTE_FFNOP: u32 = 0x00000000; +pub const NOTE_FFAND: u32 = 0x40000000; +pub const NOTE_FFOR: u32 = 0x80000000; +pub const NOTE_FFCOPY: u32 = 0xc0000000; +pub const NOTE_FFCTRLMASK: u32 = 0xc0000000; +pub const NOTE_FFLAGSMASK: u32 = 0x00ffffff; +pub const NOTE_LOWAT: u32 = 0x00000001; +pub const NOTE_DELETE: u32 = 0x00000001; +pub const NOTE_WRITE: u32 = 0x00000002; +pub const NOTE_EXTEND: u32 = 0x00000004; +pub const NOTE_ATTRIB: u32 = 0x00000008; +pub const NOTE_LINK: u32 = 0x00000010; +pub const NOTE_RENAME: u32 = 0x00000020; +pub const NOTE_REVOKE: u32 = 0x00000040; +pub const NOTE_NONE: u32 = 0x00000080; +pub const NOTE_EXIT: u32 = 0x80000000; +pub const NOTE_FORK: u32 = 0x40000000; +pub const NOTE_EXEC: u32 = 0x20000000; +#[doc(hidden)] +#[deprecated(since = "0.2.49", note = "Deprecated since MacOSX 10.9")] +pub const NOTE_REAP: u32 = 0x10000000; +pub const NOTE_SIGNAL: u32 = 0x08000000; +pub const NOTE_EXITSTATUS: u32 = 0x04000000; +pub const NOTE_EXIT_DETAIL: u32 = 0x02000000; +pub const NOTE_PDATAMASK: u32 = 0x000fffff; +pub const NOTE_PCTRLMASK: u32 = 0xfff00000; +#[doc(hidden)] +#[deprecated(since = "0.2.49", note = "Deprecated since MacOSX 10.9")] +pub const NOTE_EXIT_REPARENTED: u32 = 0x00080000; +pub const NOTE_EXIT_DETAIL_MASK: u32 = 0x00070000; +pub const NOTE_EXIT_DECRYPTFAIL: u32 = 0x00010000; +pub const NOTE_EXIT_MEMORY: u32 = 0x00020000; +pub const NOTE_EXIT_CSERROR: u32 = 0x00040000; +pub const NOTE_VM_PRESSURE: u32 = 0x80000000; +pub const NOTE_VM_PRESSURE_TERMINATE: u32 = 0x40000000; +pub const NOTE_VM_PRESSURE_SUDDEN_TERMINATE: u32 = 0x20000000; +pub const NOTE_VM_ERROR: u32 = 0x10000000; +pub const NOTE_SECONDS: u32 = 0x00000001; +pub const NOTE_USECONDS: u32 = 0x00000002; +pub const NOTE_NSECONDS: u32 = 0x00000004; +pub const NOTE_ABSOLUTE: u32 = 0x00000008; +pub const NOTE_LEEWAY: u32 = 0x00000010; +pub const NOTE_CRITICAL: u32 = 0x00000020; +pub const NOTE_BACKGROUND: u32 = 0x00000040; +pub const NOTE_TRACK: u32 = 0x00000001; +pub const NOTE_TRACKERR: u32 = 0x00000002; +pub const NOTE_CHILD: u32 = 0x00000004; + +pub const OCRNL: ::tcflag_t = 0x00000010; +pub const ONOCR: ::tcflag_t = 0x00000020; +pub const ONLRET: ::tcflag_t = 0x00000040; +pub const OFILL: ::tcflag_t = 0x00000080; +pub const NLDLY: ::tcflag_t = 0x00000300; +pub const TABDLY: ::tcflag_t = 0x00000c04; +pub const CRDLY: ::tcflag_t = 0x00003000; +pub const FFDLY: ::tcflag_t = 0x00004000; +pub const BSDLY: ::tcflag_t = 0x00008000; +pub const VTDLY: ::tcflag_t = 0x00010000; +pub const OFDEL: ::tcflag_t = 0x00020000; + +pub const NL0: ::tcflag_t = 0x00000000; +pub const NL1: ::tcflag_t = 0x00000100; +pub const TAB0: ::tcflag_t = 0x00000000; +pub const TAB1: ::tcflag_t = 0x00000400; +pub const TAB2: ::tcflag_t = 0x00000800; +pub const CR0: ::tcflag_t = 0x00000000; +pub const CR1: ::tcflag_t = 0x00001000; +pub const CR2: ::tcflag_t = 0x00002000; +pub const CR3: ::tcflag_t = 0x00003000; +pub const FF0: ::tcflag_t = 0x00000000; +pub const FF1: ::tcflag_t = 0x00004000; +pub const BS0: ::tcflag_t = 0x00000000; +pub const BS1: ::tcflag_t = 0x00008000; +pub const TAB3: ::tcflag_t = 0x00000004; +pub const VT0: ::tcflag_t = 0x00000000; +pub const VT1: ::tcflag_t = 0x00010000; +pub const IUTF8: ::tcflag_t = 0x00004000; +pub const CRTSCTS: ::tcflag_t = 0x00030000; + +pub const NI_MAXHOST: ::socklen_t = 1025; +pub const NI_MAXSERV: ::socklen_t = 32; +pub const NI_NOFQDN: ::c_int = 0x00000001; +pub const NI_NUMERICHOST: ::c_int = 0x00000002; +pub const NI_NAMEREQD: ::c_int = 0x00000004; +pub const NI_NUMERICSERV: ::c_int = 0x00000008; +pub const NI_NUMERICSCOPE: ::c_int = 0x00000100; +pub const NI_DGRAM: ::c_int = 0x00000010; + +pub const Q_GETQUOTA: ::c_int = 0x300; +pub const Q_SETQUOTA: ::c_int = 0x400; + +pub const RENAME_SWAP: ::c_uint = 0x00000002; +pub const RENAME_EXCL: ::c_uint = 0x00000004; + +pub const RTLD_LOCAL: ::c_int = 0x4; +pub const RTLD_FIRST: ::c_int = 0x100; +pub const RTLD_NODELETE: ::c_int = 0x80; +pub const RTLD_NOLOAD: ::c_int = 0x10; +pub const RTLD_GLOBAL: ::c_int = 0x8; + +pub const _WSTOPPED: ::c_int = 0o177; + +pub const LOG_NETINFO: ::c_int = 12 << 3; +pub const LOG_REMOTEAUTH: ::c_int = 13 << 3; +pub const LOG_INSTALL: ::c_int = 14 << 3; +pub const LOG_RAS: ::c_int = 15 << 3; +pub const LOG_LAUNCHD: ::c_int = 24 << 3; +pub const LOG_NFACILITIES: ::c_int = 25; + +pub const CTLTYPE: ::c_int = 0xf; +pub const CTLTYPE_NODE: ::c_int = 1; +pub const CTLTYPE_INT: ::c_int = 2; +pub const CTLTYPE_STRING: ::c_int = 3; +pub const CTLTYPE_QUAD: ::c_int = 4; +pub const CTLTYPE_OPAQUE: ::c_int = 5; +pub const CTLTYPE_STRUCT: ::c_int = CTLTYPE_OPAQUE; +pub const CTLFLAG_RD: ::c_int = 0x80000000; +pub const CTLFLAG_WR: ::c_int = 0x40000000; +pub const CTLFLAG_RW: ::c_int = CTLFLAG_RD | CTLFLAG_WR; +pub const CTLFLAG_NOLOCK: ::c_int = 0x20000000; +pub const CTLFLAG_ANYBODY: ::c_int = 0x10000000; +pub const CTLFLAG_SECURE: ::c_int = 0x08000000; +pub const CTLFLAG_MASKED: ::c_int = 0x04000000; +pub const CTLFLAG_NOAUTO: ::c_int = 0x02000000; +pub const CTLFLAG_KERN: ::c_int = 0x01000000; +pub const CTLFLAG_LOCKED: ::c_int = 0x00800000; +pub const CTLFLAG_OID2: ::c_int = 0x00400000; +pub const CTL_UNSPEC: ::c_int = 0; +pub const CTL_KERN: ::c_int = 1; +pub const CTL_VM: ::c_int = 2; +pub const CTL_VFS: ::c_int = 3; +pub const CTL_NET: ::c_int = 4; +pub const CTL_DEBUG: ::c_int = 5; +pub const CTL_HW: ::c_int = 6; +pub const CTL_MACHDEP: ::c_int = 7; +pub const CTL_USER: ::c_int = 8; +pub const CTL_MAXID: ::c_int = 9; +pub const KERN_OSTYPE: ::c_int = 1; +pub const KERN_OSRELEASE: ::c_int = 2; +pub const KERN_OSREV: ::c_int = 3; +pub const KERN_VERSION: ::c_int = 4; +pub const KERN_MAXVNODES: ::c_int = 5; +pub const KERN_MAXPROC: ::c_int = 6; +pub const KERN_MAXFILES: ::c_int = 7; +pub const KERN_ARGMAX: ::c_int = 8; +pub const KERN_SECURELVL: ::c_int = 9; +pub const KERN_HOSTNAME: ::c_int = 10; +pub const KERN_HOSTID: ::c_int = 11; +pub const KERN_CLOCKRATE: ::c_int = 12; +pub const KERN_VNODE: ::c_int = 13; +pub const KERN_PROC: ::c_int = 14; +pub const KERN_FILE: ::c_int = 15; +pub const KERN_PROF: ::c_int = 16; +pub const KERN_POSIX1: ::c_int = 17; +pub const KERN_NGROUPS: ::c_int = 18; +pub const KERN_JOB_CONTROL: ::c_int = 19; +pub const KERN_SAVED_IDS: ::c_int = 20; +pub const KERN_BOOTTIME: ::c_int = 21; +pub const KERN_NISDOMAINNAME: ::c_int = 22; +pub const KERN_DOMAINNAME: ::c_int = KERN_NISDOMAINNAME; +pub const KERN_MAXPARTITIONS: ::c_int = 23; +pub const KERN_KDEBUG: ::c_int = 24; +pub const KERN_UPDATEINTERVAL: ::c_int = 25; +pub const KERN_OSRELDATE: ::c_int = 26; +pub const KERN_NTP_PLL: ::c_int = 27; +pub const KERN_BOOTFILE: ::c_int = 28; +pub const KERN_MAXFILESPERPROC: ::c_int = 29; +pub const KERN_MAXPROCPERUID: ::c_int = 30; +pub const KERN_DUMPDEV: ::c_int = 31; +pub const KERN_IPC: ::c_int = 32; +pub const KERN_DUMMY: ::c_int = 33; +pub const KERN_PS_STRINGS: ::c_int = 34; +pub const KERN_USRSTACK32: ::c_int = 35; +pub const KERN_LOGSIGEXIT: ::c_int = 36; +pub const KERN_SYMFILE: ::c_int = 37; +pub const KERN_PROCARGS: ::c_int = 38; +pub const KERN_NETBOOT: ::c_int = 40; +pub const KERN_SYSV: ::c_int = 42; +pub const KERN_AFFINITY: ::c_int = 43; +pub const KERN_TRANSLATE: ::c_int = 44; +pub const KERN_CLASSIC: ::c_int = KERN_TRANSLATE; +pub const KERN_EXEC: ::c_int = 45; +pub const KERN_CLASSICHANDLER: ::c_int = KERN_EXEC; +pub const KERN_AIOMAX: ::c_int = 46; +pub const KERN_AIOPROCMAX: ::c_int = 47; +pub const KERN_AIOTHREADS: ::c_int = 48; +pub const KERN_COREFILE: ::c_int = 50; +pub const KERN_COREDUMP: ::c_int = 51; +pub const KERN_SUGID_COREDUMP: ::c_int = 52; +pub const KERN_PROCDELAYTERM: ::c_int = 53; +pub const KERN_SHREG_PRIVATIZABLE: ::c_int = 54; +pub const KERN_LOW_PRI_WINDOW: ::c_int = 56; +pub const KERN_LOW_PRI_DELAY: ::c_int = 57; +pub const KERN_POSIX: ::c_int = 58; +pub const KERN_USRSTACK64: ::c_int = 59; +pub const KERN_NX_PROTECTION: ::c_int = 60; +pub const KERN_TFP: ::c_int = 61; +pub const KERN_PROCNAME: ::c_int = 62; +pub const KERN_THALTSTACK: ::c_int = 63; +pub const KERN_SPECULATIVE_READS: ::c_int = 64; +pub const KERN_OSVERSION: ::c_int = 65; +pub const KERN_SAFEBOOT: ::c_int = 66; +pub const KERN_RAGEVNODE: ::c_int = 68; +pub const KERN_TTY: ::c_int = 69; +pub const KERN_CHECKOPENEVT: ::c_int = 70; +pub const KERN_THREADNAME: ::c_int = 71; +pub const KERN_MAXID: ::c_int = 72; +pub const KERN_RAGE_PROC: ::c_int = 1; +pub const KERN_RAGE_THREAD: ::c_int = 2; +pub const KERN_UNRAGE_PROC: ::c_int = 3; +pub const KERN_UNRAGE_THREAD: ::c_int = 4; +pub const KERN_OPENEVT_PROC: ::c_int = 1; +pub const KERN_UNOPENEVT_PROC: ::c_int = 2; +pub const KERN_TFP_POLICY: ::c_int = 1; +pub const KERN_TFP_POLICY_DENY: ::c_int = 0; +pub const KERN_TFP_POLICY_DEFAULT: ::c_int = 2; +pub const KERN_KDEFLAGS: ::c_int = 1; +pub const KERN_KDDFLAGS: ::c_int = 2; +pub const KERN_KDENABLE: ::c_int = 3; +pub const KERN_KDSETBUF: ::c_int = 4; +pub const KERN_KDGETBUF: ::c_int = 5; +pub const KERN_KDSETUP: ::c_int = 6; +pub const KERN_KDREMOVE: ::c_int = 7; +pub const KERN_KDSETREG: ::c_int = 8; +pub const KERN_KDGETREG: ::c_int = 9; +pub const KERN_KDREADTR: ::c_int = 10; +pub const KERN_KDPIDTR: ::c_int = 11; +pub const KERN_KDTHRMAP: ::c_int = 12; +pub const KERN_KDPIDEX: ::c_int = 14; +pub const KERN_KDSETRTCDEC: ::c_int = 15; +pub const KERN_KDGETENTROPY: ::c_int = 16; +pub const KERN_KDWRITETR: ::c_int = 17; +pub const KERN_KDWRITEMAP: ::c_int = 18; +#[doc(hidden)] +#[deprecated(since = "0.2.49", note = "Removed in MacOSX 10.12")] +pub const KERN_KDENABLE_BG_TRACE: ::c_int = 19; +#[doc(hidden)] +#[deprecated(since = "0.2.49", note = "Removed in MacOSX 10.12")] +pub const KERN_KDDISABLE_BG_TRACE: ::c_int = 20; +pub const KERN_KDREADCURTHRMAP: ::c_int = 21; +pub const KERN_KDSET_TYPEFILTER: ::c_int = 22; +pub const KERN_KDBUFWAIT: ::c_int = 23; +pub const KERN_KDCPUMAP: ::c_int = 24; +pub const KERN_PROC_ALL: ::c_int = 0; +pub const KERN_PROC_PID: ::c_int = 1; +pub const KERN_PROC_PGRP: ::c_int = 2; +pub const KERN_PROC_SESSION: ::c_int = 3; +pub const KERN_PROC_TTY: ::c_int = 4; +pub const KERN_PROC_UID: ::c_int = 5; +pub const KERN_PROC_RUID: ::c_int = 6; +pub const KERN_PROC_LCID: ::c_int = 7; +pub const KERN_SUCCESS: ::c_int = 0; +pub const KERN_INVALID_ADDRESS: ::c_int = 1; +pub const KERN_PROTECTION_FAILURE: ::c_int = 2; +pub const KERN_NO_SPACE: ::c_int = 3; +pub const KERN_INVALID_ARGUMENT: ::c_int = 4; +pub const KERN_FAILURE: ::c_int = 5; +pub const KERN_RESOURCE_SHORTAGE: ::c_int = 6; +pub const KERN_NOT_RECEIVER: ::c_int = 7; +pub const KERN_NO_ACCESS: ::c_int = 8; +pub const KERN_MEMORY_FAILURE: ::c_int = 9; +pub const KERN_MEMORY_ERROR: ::c_int = 10; +pub const KERN_ALREADY_IN_SET: ::c_int = 11; +pub const KERN_NOT_IN_SET: ::c_int = 12; +pub const KERN_NAME_EXISTS: ::c_int = 13; +pub const KERN_ABORTED: ::c_int = 14; +pub const KERN_INVALID_NAME: ::c_int = 15; +pub const KERN_INVALID_TASK: ::c_int = 16; +pub const KERN_INVALID_RIGHT: ::c_int = 17; +pub const KERN_INVALID_VALUE: ::c_int = 18; +pub const KERN_UREFS_OVERFLOW: ::c_int = 19; +pub const KERN_INVALID_CAPABILITY: ::c_int = 20; +pub const KERN_RIGHT_EXISTS: ::c_int = 21; +pub const KERN_INVALID_HOST: ::c_int = 22; +pub const KERN_MEMORY_PRESENT: ::c_int = 23; +pub const KERN_MEMORY_DATA_MOVED: ::c_int = 24; +pub const KERN_MEMORY_RESTART_COPY: ::c_int = 25; +pub const KERN_INVALID_PROCESSOR_SET: ::c_int = 26; +pub const KERN_POLICY_LIMIT: ::c_int = 27; +pub const KERN_INVALID_POLICY: ::c_int = 28; +pub const KERN_INVALID_OBJECT: ::c_int = 29; +pub const KERN_ALREADY_WAITING: ::c_int = 30; +pub const KERN_DEFAULT_SET: ::c_int = 31; +pub const KERN_EXCEPTION_PROTECTED: ::c_int = 32; +pub const KERN_INVALID_LEDGER: ::c_int = 33; +pub const KERN_INVALID_MEMORY_CONTROL: ::c_int = 34; +pub const KERN_INVALID_SECURITY: ::c_int = 35; +pub const KERN_NOT_DEPRESSED: ::c_int = 36; +pub const KERN_TERMINATED: ::c_int = 37; +pub const KERN_LOCK_SET_DESTROYED: ::c_int = 38; +pub const KERN_LOCK_UNSTABLE: ::c_int = 39; +pub const KERN_LOCK_OWNED: ::c_int = 40; +pub const KERN_LOCK_OWNED_SELF: ::c_int = 41; +pub const KERN_SEMAPHORE_DESTROYED: ::c_int = 42; +pub const KERN_RPC_SERVER_TERMINATED: ::c_int = 43; +pub const KERN_RPC_TERMINATE_ORPHAN: ::c_int = 44; +pub const KERN_RPC_CONTINUE_ORPHAN: ::c_int = 45; +pub const KERN_NOT_SUPPORTED: ::c_int = 46; +pub const KERN_NODE_DOWN: ::c_int = 47; +pub const KERN_NOT_WAITING: ::c_int = 48; +pub const KERN_OPERATION_TIMED_OUT: ::c_int = 49; +pub const KERN_CODESIGN_ERROR: ::c_int = 50; +pub const KERN_POLICY_STATIC: ::c_int = 51; +pub const KERN_INSUFFICIENT_BUFFER_SIZE: ::c_int = 52; +pub const KIPC_MAXSOCKBUF: ::c_int = 1; +pub const KIPC_SOCKBUF_WASTE: ::c_int = 2; +pub const KIPC_SOMAXCONN: ::c_int = 3; +pub const KIPC_MAX_LINKHDR: ::c_int = 4; +pub const KIPC_MAX_PROTOHDR: ::c_int = 5; +pub const KIPC_MAX_HDR: ::c_int = 6; +pub const KIPC_MAX_DATALEN: ::c_int = 7; +pub const KIPC_MBSTAT: ::c_int = 8; +pub const KIPC_NMBCLUSTERS: ::c_int = 9; +pub const KIPC_SOQLIMITCOMPAT: ::c_int = 10; +pub const VM_METER: ::c_int = 1; +pub const VM_LOADAVG: ::c_int = 2; +pub const VM_MACHFACTOR: ::c_int = 4; +pub const VM_SWAPUSAGE: ::c_int = 5; +pub const VM_MAXID: ::c_int = 6; +pub const VM_PROT_NONE: ::vm_prot_t = 0x00; +pub const VM_PROT_READ: ::vm_prot_t = 0x01; +pub const VM_PROT_WRITE: ::vm_prot_t = 0x02; +pub const VM_PROT_EXECUTE: ::vm_prot_t = 0x04; +pub const MEMORY_OBJECT_NULL: ::memory_object_t = 0; +pub const HW_MACHINE: ::c_int = 1; +pub const HW_MODEL: ::c_int = 2; +pub const HW_NCPU: ::c_int = 3; +pub const HW_BYTEORDER: ::c_int = 4; +pub const HW_PHYSMEM: ::c_int = 5; +pub const HW_USERMEM: ::c_int = 6; +pub const HW_PAGESIZE: ::c_int = 7; +pub const HW_DISKNAMES: ::c_int = 8; +pub const HW_DISKSTATS: ::c_int = 9; +pub const HW_EPOCH: ::c_int = 10; +pub const HW_FLOATINGPT: ::c_int = 11; +pub const HW_MACHINE_ARCH: ::c_int = 12; +pub const HW_VECTORUNIT: ::c_int = 13; +pub const HW_BUS_FREQ: ::c_int = 14; +pub const HW_CPU_FREQ: ::c_int = 15; +pub const HW_CACHELINE: ::c_int = 16; +pub const HW_L1ICACHESIZE: ::c_int = 17; +pub const HW_L1DCACHESIZE: ::c_int = 18; +pub const HW_L2SETTINGS: ::c_int = 19; +pub const HW_L2CACHESIZE: ::c_int = 20; +pub const HW_L3SETTINGS: ::c_int = 21; +pub const HW_L3CACHESIZE: ::c_int = 22; +pub const HW_TB_FREQ: ::c_int = 23; +pub const HW_MEMSIZE: ::c_int = 24; +pub const HW_AVAILCPU: ::c_int = 25; +pub const HW_TARGET: ::c_int = 26; +pub const HW_PRODUCT: ::c_int = 27; +pub const HW_MAXID: ::c_int = 28; +pub const USER_CS_PATH: ::c_int = 1; +pub const USER_BC_BASE_MAX: ::c_int = 2; +pub const USER_BC_DIM_MAX: ::c_int = 3; +pub const USER_BC_SCALE_MAX: ::c_int = 4; +pub const USER_BC_STRING_MAX: ::c_int = 5; +pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6; +pub const USER_EXPR_NEST_MAX: ::c_int = 7; +pub const USER_LINE_MAX: ::c_int = 8; +pub const USER_RE_DUP_MAX: ::c_int = 9; +pub const USER_POSIX2_VERSION: ::c_int = 10; +pub const USER_POSIX2_C_BIND: ::c_int = 11; +pub const USER_POSIX2_C_DEV: ::c_int = 12; +pub const USER_POSIX2_CHAR_TERM: ::c_int = 13; +pub const USER_POSIX2_FORT_DEV: ::c_int = 14; +pub const USER_POSIX2_FORT_RUN: ::c_int = 15; +pub const USER_POSIX2_LOCALEDEF: ::c_int = 16; +pub const USER_POSIX2_SW_DEV: ::c_int = 17; +pub const USER_POSIX2_UPE: ::c_int = 18; +pub const USER_STREAM_MAX: ::c_int = 19; +pub const USER_TZNAME_MAX: ::c_int = 20; +pub const USER_MAXID: ::c_int = 21; +pub const CTL_DEBUG_NAME: ::c_int = 0; +pub const CTL_DEBUG_VALUE: ::c_int = 1; +pub const CTL_DEBUG_MAXID: ::c_int = 20; + +pub const PRIO_DARWIN_THREAD: ::c_int = 3; +pub const PRIO_DARWIN_PROCESS: ::c_int = 4; +pub const PRIO_DARWIN_BG: ::c_int = 0x1000; +pub const PRIO_DARWIN_NONUI: ::c_int = 0x1001; + +pub const SEM_FAILED: *mut sem_t = -1isize as *mut ::sem_t; + +pub const AI_PASSIVE: ::c_int = 0x00000001; +pub const AI_CANONNAME: ::c_int = 0x00000002; +pub const AI_NUMERICHOST: ::c_int = 0x00000004; +pub const AI_NUMERICSERV: ::c_int = 0x00001000; +pub const AI_MASK: ::c_int = + AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | AI_NUMERICSERV | AI_ADDRCONFIG; +pub const AI_ALL: ::c_int = 0x00000100; +pub const AI_V4MAPPED_CFG: ::c_int = 0x00000200; +pub const AI_ADDRCONFIG: ::c_int = 0x00000400; +pub const AI_V4MAPPED: ::c_int = 0x00000800; +pub const AI_DEFAULT: ::c_int = AI_V4MAPPED_CFG | AI_ADDRCONFIG; +pub const AI_UNUSABLE: ::c_int = 0x10000000; + +pub const SIGEV_NONE: ::c_int = 0; +pub const SIGEV_SIGNAL: ::c_int = 1; +pub const SIGEV_THREAD: ::c_int = 3; + +pub const AIO_CANCELED: ::c_int = 2; +pub const AIO_NOTCANCELED: ::c_int = 4; +pub const AIO_ALLDONE: ::c_int = 1; +#[deprecated( + since = "0.2.64", + note = "Can vary at runtime. Use sysconf(3) instead" +)] +pub const AIO_LISTIO_MAX: ::c_int = 16; +pub const LIO_NOP: ::c_int = 0; +pub const LIO_WRITE: ::c_int = 2; +pub const LIO_READ: ::c_int = 1; +pub const LIO_WAIT: ::c_int = 2; +pub const LIO_NOWAIT: ::c_int = 1; + +pub const WEXITED: ::c_int = 0x00000004; +pub const WSTOPPED: ::c_int = 0x00000008; +pub const WCONTINUED: ::c_int = 0x00000010; +pub const WNOWAIT: ::c_int = 0x00000020; + +pub const P_ALL: idtype_t = 0; +pub const P_PID: idtype_t = 1; +pub const P_PGID: idtype_t = 2; + +pub const UTIME_OMIT: c_long = -2; +pub const UTIME_NOW: c_long = -1; + +pub const XATTR_NOFOLLOW: ::c_int = 0x0001; +pub const XATTR_CREATE: ::c_int = 0x0002; +pub const XATTR_REPLACE: ::c_int = 0x0004; +pub const XATTR_NOSECURITY: ::c_int = 0x0008; +pub const XATTR_NODEFAULT: ::c_int = 0x0010; +pub const XATTR_SHOWCOMPRESSION: ::c_int = 0x0020; + +pub const NET_RT_IFLIST2: ::c_int = 0x0006; + +// net/route.h +pub const RTF_UP: ::c_int = 0x1; +pub const RTF_GATEWAY: ::c_int = 0x2; +pub const RTF_HOST: ::c_int = 0x4; +pub const RTF_REJECT: ::c_int = 0x8; +pub const RTF_DYNAMIC: ::c_int = 0x10; +pub const RTF_MODIFIED: ::c_int = 0x20; +pub const RTF_DONE: ::c_int = 0x40; +pub const RTF_DELCLONE: ::c_int = 0x80; +pub const RTF_CLONING: ::c_int = 0x100; +pub const RTF_XRESOLVE: ::c_int = 0x200; +pub const RTF_LLINFO: ::c_int = 0x400; +pub const RTF_STATIC: ::c_int = 0x800; +pub const RTF_BLACKHOLE: ::c_int = 0x1000; +pub const RTF_NOIFREF: ::c_int = 0x2000; +pub const RTF_PROTO2: ::c_int = 0x4000; +pub const RTF_PROTO1: ::c_int = 0x8000; +pub const RTF_PRCLONING: ::c_int = 0x10000; +pub const RTF_WASCLONED: ::c_int = 0x20000; +pub const RTF_PROTO3: ::c_int = 0x40000; +pub const RTF_PINNED: ::c_int = 0x100000; +pub const RTF_LOCAL: ::c_int = 0x200000; +pub const RTF_BROADCAST: ::c_int = 0x400000; +pub const RTF_MULTICAST: ::c_int = 0x800000; +pub const RTF_IFSCOPE: ::c_int = 0x1000000; +pub const RTF_CONDEMNED: ::c_int = 0x2000000; +pub const RTF_IFREF: ::c_int = 0x4000000; +pub const RTF_PROXY: ::c_int = 0x8000000; +pub const RTF_ROUTER: ::c_int = 0x10000000; +pub const RTF_DEAD: ::c_int = 0x20000000; +pub const RTF_GLOBAL: ::c_int = 0x40000000; + +pub const RTM_VERSION: ::c_int = 5; + +// Message types +pub const RTM_ADD: ::c_int = 0x1; +pub const RTM_DELETE: ::c_int = 0x2; +pub const RTM_CHANGE: ::c_int = 0x3; +pub const RTM_GET: ::c_int = 0x4; +pub const RTM_LOSING: ::c_int = 0x5; +pub const RTM_REDIRECT: ::c_int = 0x6; +pub const RTM_MISS: ::c_int = 0x7; +pub const RTM_LOCK: ::c_int = 0x8; +pub const RTM_OLDADD: ::c_int = 0x9; +pub const RTM_OLDDEL: ::c_int = 0xa; +pub const RTM_RESOLVE: ::c_int = 0xb; +pub const RTM_NEWADDR: ::c_int = 0xc; +pub const RTM_DELADDR: ::c_int = 0xd; +pub const RTM_IFINFO: ::c_int = 0xe; +pub const RTM_NEWMADDR: ::c_int = 0xf; +pub const RTM_DELMADDR: ::c_int = 0x10; +pub const RTM_IFINFO2: ::c_int = 0x12; +pub const RTM_NEWMADDR2: ::c_int = 0x13; +pub const RTM_GET2: ::c_int = 0x14; + +// Bitmask values for rtm_inits and rmx_locks. +pub const RTV_MTU: ::c_int = 0x1; +pub const RTV_HOPCOUNT: ::c_int = 0x2; +pub const RTV_EXPIRE: ::c_int = 0x4; +pub const RTV_RPIPE: ::c_int = 0x8; +pub const RTV_SPIPE: ::c_int = 0x10; +pub const RTV_SSTHRESH: ::c_int = 0x20; +pub const RTV_RTT: ::c_int = 0x40; +pub const RTV_RTTVAR: ::c_int = 0x80; + +// Bitmask values for rtm_addrs. +pub const RTA_DST: ::c_int = 0x1; +pub const RTA_GATEWAY: ::c_int = 0x2; +pub const RTA_NETMASK: ::c_int = 0x4; +pub const RTA_GENMASK: ::c_int = 0x8; +pub const RTA_IFP: ::c_int = 0x10; +pub const RTA_IFA: ::c_int = 0x20; +pub const RTA_AUTHOR: ::c_int = 0x40; +pub const RTA_BRD: ::c_int = 0x80; + +// Index offsets for sockaddr array for alternate internal encoding. +pub const RTAX_DST: ::c_int = 0; +pub const RTAX_GATEWAY: ::c_int = 1; +pub const RTAX_NETMASK: ::c_int = 2; +pub const RTAX_GENMASK: ::c_int = 3; +pub const RTAX_IFP: ::c_int = 4; +pub const RTAX_IFA: ::c_int = 5; +pub const RTAX_AUTHOR: ::c_int = 6; +pub const RTAX_BRD: ::c_int = 7; +pub const RTAX_MAX: ::c_int = 8; + +pub const KERN_PROCARGS2: ::c_int = 49; + +pub const PROC_PIDTASKALLINFO: ::c_int = 2; +pub const PROC_PIDTBSDINFO: ::c_int = 3; +pub const PROC_PIDTASKINFO: ::c_int = 4; +pub const PROC_PIDTHREADINFO: ::c_int = 5; +pub const PROC_PIDVNODEPATHINFO: ::c_int = 9; +pub const PROC_PIDPATHINFO_MAXSIZE: ::c_int = 4096; +pub const PROC_CSM_ALL: ::c_uint = 0x0001; +pub const PROC_CSM_NOSMT: ::c_uint = 0x0002; +pub const PROC_CSM_TECS: ::c_uint = 0x0004; +pub const MAXCOMLEN: usize = 16; +pub const MAXTHREADNAMESIZE: usize = 64; + +pub const XUCRED_VERSION: ::c_uint = 0; + +pub const LC_SEGMENT: u32 = 0x1; +pub const LC_SEGMENT_64: u32 = 0x19; + +pub const MH_MAGIC: u32 = 0xfeedface; +pub const MH_MAGIC_64: u32 = 0xfeedfacf; + +// net/if_utun.h +pub const UTUN_OPT_FLAGS: ::c_int = 1; +pub const UTUN_OPT_IFNAME: ::c_int = 2; + +// net/bpf.h +pub const DLT_NULL: ::c_uint = 0; // no link-layer encapsulation +pub const DLT_EN10MB: ::c_uint = 1; // Ethernet (10Mb) +pub const DLT_EN3MB: ::c_uint = 2; // Experimental Ethernet (3Mb) +pub const DLT_AX25: ::c_uint = 3; // Amateur Radio AX.25 +pub const DLT_PRONET: ::c_uint = 4; // Proteon ProNET Token Ring +pub const DLT_CHAOS: ::c_uint = 5; // Chaos +pub const DLT_IEEE802: ::c_uint = 6; // IEEE 802 Networks +pub const DLT_ARCNET: ::c_uint = 7; // ARCNET +pub const DLT_SLIP: ::c_uint = 8; // Serial Line IP +pub const DLT_PPP: ::c_uint = 9; // Point-to-point Protocol +pub const DLT_FDDI: ::c_uint = 10; // FDDI +pub const DLT_ATM_RFC1483: ::c_uint = 11; // LLC/SNAP encapsulated atm +pub const DLT_RAW: ::c_uint = 12; // raw IP +pub const DLT_LOOP: ::c_uint = 108; + +// https://github.com/apple/darwin-xnu/blob/HEAD/bsd/net/bpf.h#L100 +// sizeof(i32) +pub const BPF_ALIGNMENT: ::c_int = 4; + +// sys/mount.h +pub const MNT_NODEV: ::c_int = 0x00000010; +pub const MNT_UNION: ::c_int = 0x00000020; +pub const MNT_CPROTECT: ::c_int = 0x00000080; + +// MAC labeled / "quarantined" flag +pub const MNT_QUARANTINE: ::c_int = 0x00000400; + +// Flags set by internal operations. +pub const MNT_LOCAL: ::c_int = 0x00001000; +pub const MNT_QUOTA: ::c_int = 0x00002000; +pub const MNT_ROOTFS: ::c_int = 0x00004000; +pub const MNT_DOVOLFS: ::c_int = 0x00008000; + +pub const MNT_DONTBROWSE: ::c_int = 0x00100000; +pub const MNT_IGNORE_OWNERSHIP: ::c_int = 0x00200000; +pub const MNT_AUTOMOUNTED: ::c_int = 0x00400000; +pub const MNT_JOURNALED: ::c_int = 0x00800000; +pub const MNT_NOUSERXATTR: ::c_int = 0x01000000; +pub const MNT_DEFWRITE: ::c_int = 0x02000000; +pub const MNT_MULTILABEL: ::c_int = 0x04000000; +pub const MNT_NOATIME: ::c_int = 0x10000000; +pub const MNT_SNAPSHOT: ::c_int = 0x40000000; + +// External filesystem command modifier flags. +pub const MNT_NOBLOCK: ::c_int = 0x00020000; + +// sys/spawn.h: +pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; +pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; +pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x04; +pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x08; +pub const POSIX_SPAWN_SETEXEC: ::c_int = 0x40; +pub const POSIX_SPAWN_START_SUSPENDED: ::c_int = 0x80; +pub const POSIX_SPAWN_CLOEXEC_DEFAULT: ::c_int = 0x4000; + +// sys/ipc.h: +pub const IPC_CREAT: ::c_int = 0x200; +pub const IPC_EXCL: ::c_int = 0x400; +pub const IPC_NOWAIT: ::c_int = 0x800; +pub const IPC_PRIVATE: key_t = 0; + +pub const IPC_RMID: ::c_int = 0; +pub const IPC_SET: ::c_int = 1; +pub const IPC_STAT: ::c_int = 2; + +pub const IPC_R: ::c_int = 0x100; +pub const IPC_W: ::c_int = 0x80; +pub const IPC_M: ::c_int = 0x1000; + +// sys/sem.h +pub const SEM_UNDO: ::c_int = 0o10000; + +pub const GETNCNT: ::c_int = 3; +pub const GETPID: ::c_int = 4; +pub const GETVAL: ::c_int = 5; +pub const GETALL: ::c_int = 6; +pub const GETZCNT: ::c_int = 7; +pub const SETVAL: ::c_int = 8; +pub const SETALL: ::c_int = 9; + +// sys/shm.h +pub const SHM_RDONLY: ::c_int = 0x1000; +pub const SHM_RND: ::c_int = 0x2000; +#[cfg(target_arch = "aarch64")] +pub const SHMLBA: ::c_int = 16 * 1024; +#[cfg(not(target_arch = "aarch64"))] +pub const SHMLBA: ::c_int = 4096; +pub const SHM_R: ::c_int = IPC_R; +pub const SHM_W: ::c_int = IPC_W; + +// Flags for chflags(2) +pub const UF_SETTABLE: ::c_uint = 0x0000ffff; +pub const UF_NODUMP: ::c_uint = 0x00000001; +pub const UF_IMMUTABLE: ::c_uint = 0x00000002; +pub const UF_APPEND: ::c_uint = 0x00000004; +pub const UF_OPAQUE: ::c_uint = 0x00000008; +pub const UF_COMPRESSED: ::c_uint = 0x00000020; +pub const UF_TRACKED: ::c_uint = 0x00000040; +pub const SF_SETTABLE: ::c_uint = 0xffff0000; +pub const SF_ARCHIVED: ::c_uint = 0x00010000; +pub const SF_IMMUTABLE: ::c_uint = 0x00020000; +pub const SF_APPEND: ::c_uint = 0x00040000; +pub const UF_HIDDEN: ::c_uint = 0x00008000; + +// +pub const NTP_API: ::c_int = 4; +pub const MAXPHASE: ::c_long = 500000000; +pub const MAXFREQ: ::c_long = 500000; +pub const MINSEC: ::c_int = 256; +pub const MAXSEC: ::c_int = 2048; +pub const NANOSECOND: ::c_long = 1000000000; +pub const SCALE_PPM: ::c_int = 65; +pub const MAXTC: ::c_int = 10; +pub const MOD_OFFSET: ::c_uint = 0x0001; +pub const MOD_FREQUENCY: ::c_uint = 0x0002; +pub const MOD_MAXERROR: ::c_uint = 0x0004; +pub const MOD_ESTERROR: ::c_uint = 0x0008; +pub const MOD_STATUS: ::c_uint = 0x0010; +pub const MOD_TIMECONST: ::c_uint = 0x0020; +pub const MOD_PPSMAX: ::c_uint = 0x0040; +pub const MOD_TAI: ::c_uint = 0x0080; +pub const MOD_MICRO: ::c_uint = 0x1000; +pub const MOD_NANO: ::c_uint = 0x2000; +pub const MOD_CLKB: ::c_uint = 0x4000; +pub const MOD_CLKA: ::c_uint = 0x8000; +pub const STA_PLL: ::c_int = 0x0001; +pub const STA_PPSFREQ: ::c_int = 0x0002; +pub const STA_PPSTIME: ::c_int = 0x0004; +pub const STA_FLL: ::c_int = 0x0008; +pub const STA_INS: ::c_int = 0x0010; +pub const STA_DEL: ::c_int = 0x0020; +pub const STA_UNSYNC: ::c_int = 0x0040; +pub const STA_FREQHOLD: ::c_int = 0x0080; +pub const STA_PPSSIGNAL: ::c_int = 0x0100; +pub const STA_PPSJITTER: ::c_int = 0x0200; +pub const STA_PPSWANDER: ::c_int = 0x0400; +pub const STA_PPSERROR: ::c_int = 0x0800; +pub const STA_CLOCKERR: ::c_int = 0x1000; +pub const STA_NANO: ::c_int = 0x2000; +pub const STA_MODE: ::c_int = 0x4000; +pub const STA_CLK: ::c_int = 0x8000; +pub const STA_RONLY: ::c_int = STA_PPSSIGNAL + | STA_PPSJITTER + | STA_PPSWANDER + | STA_PPSERROR + | STA_CLOCKERR + | STA_NANO + | STA_MODE + | STA_CLK; +pub const TIME_OK: ::c_int = 0; +pub const TIME_INS: ::c_int = 1; +pub const TIME_DEL: ::c_int = 2; +pub const TIME_OOP: ::c_int = 3; +pub const TIME_WAIT: ::c_int = 4; +pub const TIME_ERROR: ::c_int = 5; + +// +pub const MNT_WAIT: ::c_int = 1; +pub const MNT_NOWAIT: ::c_int = 2; + +// +pub const THREAD_STANDARD_POLICY: ::c_int = 1; +pub const THREAD_STANDARD_POLICY_COUNT: ::c_int = 0; +pub const THREAD_EXTENDED_POLICY: ::c_int = 1; +pub const THREAD_TIME_CONSTRAINT_POLICY: ::c_int = 2; +pub const THREAD_PRECEDENCE_POLICY: ::c_int = 3; +pub const THREAD_AFFINITY_POLICY: ::c_int = 4; +pub const THREAD_AFFINITY_TAG_NULL: ::c_int = 0; +pub const THREAD_BACKGROUND_POLICY: ::c_int = 5; +pub const THREAD_BACKGROUND_POLICY_DARWIN_BG: ::c_int = 0x1000; +pub const THREAD_LATENCY_QOS_POLICY: ::c_int = 7; +pub const THREAD_THROUGHPUT_QOS_POLICY: ::c_int = 8; + +// +pub const TH_STATE_RUNNING: ::c_int = 1; +pub const TH_STATE_STOPPED: ::c_int = 2; +pub const TH_STATE_WAITING: ::c_int = 3; +pub const TH_STATE_UNINTERRUPTIBLE: ::c_int = 4; +pub const TH_STATE_HALTED: ::c_int = 5; +pub const TH_FLAGS_SWAPPED: ::c_int = 0x1; +pub const TH_FLAGS_IDLE: ::c_int = 0x2; +pub const TH_FLAGS_GLOBAL_FORCED_IDLE: ::c_int = 0x4; +pub const THREAD_BASIC_INFO: ::c_int = 3; +pub const THREAD_IDENTIFIER_INFO: ::c_int = 4; +pub const THREAD_EXTENDED_INFO: ::c_int = 5; + +// CommonCrypto/CommonCryptoError.h +pub const kCCSuccess: i32 = 0; +pub const kCCParamError: i32 = -4300; +pub const kCCBufferTooSmall: i32 = -4301; +pub const kCCMemoryFailure: i32 = -4302; +pub const kCCAlignmentError: i32 = -4303; +pub const kCCDecodeError: i32 = -4304; +pub const kCCUnimplemented: i32 = -4305; +pub const kCCOverflow: i32 = -4306; +pub const kCCRNGFailure: i32 = -4307; +pub const kCCUnspecifiedError: i32 = -4308; +pub const kCCCallSequenceError: i32 = -4309; +pub const kCCKeySizeError: i32 = -4310; +pub const kCCInvalidKey: i32 = -4311; + +// mach/host_info.h +pub const HOST_LOAD_INFO: i32 = 1; +pub const HOST_VM_INFO: i32 = 2; +pub const HOST_CPU_LOAD_INFO: i32 = 3; +pub const HOST_VM_INFO64: i32 = 4; +pub const HOST_EXTMOD_INFO64: i32 = 5; +pub const HOST_EXPIRED_TASK_INFO: i32 = 6; + +// mach/vm_statistics.h +pub const VM_PAGE_QUERY_PAGE_PRESENT: i32 = 0x1; +pub const VM_PAGE_QUERY_PAGE_FICTITIOUS: i32 = 0x2; +pub const VM_PAGE_QUERY_PAGE_REF: i32 = 0x4; +pub const VM_PAGE_QUERY_PAGE_DIRTY: i32 = 0x8; +pub const VM_PAGE_QUERY_PAGE_PAGED_OUT: i32 = 0x10; +pub const VM_PAGE_QUERY_PAGE_COPIED: i32 = 0x20; +pub const VM_PAGE_QUERY_PAGE_SPECULATIVE: i32 = 0x40; +pub const VM_PAGE_QUERY_PAGE_EXTERNAL: i32 = 0x80; +pub const VM_PAGE_QUERY_PAGE_CS_VALIDATED: i32 = 0x100; +pub const VM_PAGE_QUERY_PAGE_CS_TAINTED: i32 = 0x200; +pub const VM_PAGE_QUERY_PAGE_CS_NX: i32 = 0x400; + +// mach/task_info.h +pub const TASK_THREAD_TIMES_INFO: u32 = 3; +pub const HOST_CPU_LOAD_INFO_COUNT: u32 = 4; +pub const MACH_TASK_BASIC_INFO: u32 = 20; + +pub const MACH_PORT_NULL: i32 = 0; + +pub const RUSAGE_INFO_V0: ::c_int = 0; +pub const RUSAGE_INFO_V1: ::c_int = 1; +pub const RUSAGE_INFO_V2: ::c_int = 2; +pub const RUSAGE_INFO_V3: ::c_int = 3; +pub const RUSAGE_INFO_V4: ::c_int = 4; + +// copyfile.h +pub const COPYFILE_ACL: ::copyfile_flags_t = 1 << 0; +pub const COPYFILE_STAT: ::copyfile_flags_t = 1 << 1; +pub const COPYFILE_XATTR: ::copyfile_flags_t = 1 << 2; +pub const COPYFILE_DATA: ::copyfile_flags_t = 1 << 3; +pub const COPYFILE_SECURITY: ::copyfile_flags_t = COPYFILE_STAT | COPYFILE_ACL; +pub const COPYFILE_METADATA: ::copyfile_flags_t = COPYFILE_SECURITY | COPYFILE_XATTR; +pub const COPYFILE_RECURSIVE: ::copyfile_flags_t = 1 << 15; +pub const COPYFILE_CHECK: ::copyfile_flags_t = 1 << 16; +pub const COPYFILE_EXCL: ::copyfile_flags_t = 1 << 17; +pub const COPYFILE_NOFOLLOW_SRC: ::copyfile_flags_t = 1 << 18; +pub const COPYFILE_NOFOLLOW_DST: ::copyfile_flags_t = 1 << 19; +pub const COPYFILE_MOVE: ::copyfile_flags_t = 1 << 20; +pub const COPYFILE_UNLINK: ::copyfile_flags_t = 1 << 21; +pub const COPYFILE_NOFOLLOW: ::copyfile_flags_t = COPYFILE_NOFOLLOW_SRC | COPYFILE_NOFOLLOW_DST; +pub const COPYFILE_PACK: ::copyfile_flags_t = 1 << 22; +pub const COPYFILE_UNPACK: ::copyfile_flags_t = 1 << 23; +pub const COPYFILE_CLONE: ::copyfile_flags_t = 1 << 24; +pub const COPYFILE_CLONE_FORCE: ::copyfile_flags_t = 1 << 25; +pub const COPYFILE_RUN_IN_PLACE: ::copyfile_flags_t = 1 << 26; +pub const COPYFILE_DATA_SPARSE: ::copyfile_flags_t = 1 << 27; +pub const COPYFILE_PRESERVE_DST_TRACKED: ::copyfile_flags_t = 1 << 28; +pub const COPYFILE_VERBOSE: ::copyfile_flags_t = 1 << 30; +pub const COPYFILE_RECURSE_ERROR: ::c_int = 0; +pub const COPYFILE_RECURSE_FILE: ::c_int = 1; +pub const COPYFILE_RECURSE_DIR: ::c_int = 2; +pub const COPYFILE_RECURSE_DIR_CLEANUP: ::c_int = 3; +pub const COPYFILE_COPY_DATA: ::c_int = 4; +pub const COPYFILE_COPY_XATTR: ::c_int = 5; +pub const COPYFILE_START: ::c_int = 1; +pub const COPYFILE_FINISH: ::c_int = 2; +pub const COPYFILE_ERR: ::c_int = 3; +pub const COPYFILE_PROGRESS: ::c_int = 4; +pub const COPYFILE_CONTINUE: ::c_int = 0; +pub const COPYFILE_SKIP: ::c_int = 1; +pub const COPYFILE_QUIT: ::c_int = 2; + +// +pub const ATTR_BIT_MAP_COUNT: ::c_ushort = 5; +pub const FSOPT_NOFOLLOW: u32 = 0x1; +pub const FSOPT_NOFOLLOW_ANY: u32 = 0x800; +pub const FSOPT_REPORT_FULLSIZE: u32 = 0x4; +pub const FSOPT_PACK_INVAL_ATTRS: u32 = 0x8; +pub const FSOPT_ATTR_CMN_EXTENDED: u32 = 0x20; +pub const FSOPT_RETURN_REALDEV: u32 = 0x200; +pub const ATTR_CMN_NAME: attrgroup_t = 0x00000001; +pub const ATTR_CMN_DEVID: attrgroup_t = 0x00000002; +pub const ATTR_CMN_FSID: attrgroup_t = 0x00000004; +pub const ATTR_CMN_OBJTYPE: attrgroup_t = 0x00000008; +pub const ATTR_CMN_OBJTAG: attrgroup_t = 0x00000010; +pub const ATTR_CMN_OBJID: attrgroup_t = 0x00000020; +pub const ATTR_CMN_OBJPERMANENTID: attrgroup_t = 0x00000040; +pub const ATTR_CMN_PAROBJID: attrgroup_t = 0x00000080; +pub const ATTR_CMN_SCRIPT: attrgroup_t = 0x00000100; +pub const ATTR_CMN_CRTIME: attrgroup_t = 0x00000200; +pub const ATTR_CMN_MODTIME: attrgroup_t = 0x00000400; +pub const ATTR_CMN_CHGTIME: attrgroup_t = 0x00000800; +pub const ATTR_CMN_ACCTIME: attrgroup_t = 0x00001000; +pub const ATTR_CMN_BKUPTIME: attrgroup_t = 0x00002000; +pub const ATTR_CMN_FNDRINFO: attrgroup_t = 0x00004000; +pub const ATTR_CMN_OWNERID: attrgroup_t = 0x00008000; +pub const ATTR_CMN_GRPID: attrgroup_t = 0x00010000; +pub const ATTR_CMN_ACCESSMASK: attrgroup_t = 0x00020000; +pub const ATTR_CMN_FLAGS: attrgroup_t = 0x00040000; +pub const ATTR_CMN_GEN_COUNT: attrgroup_t = 0x00080000; +pub const ATTR_CMN_DOCUMENT_ID: attrgroup_t = 0x00100000; +pub const ATTR_CMN_USERACCESS: attrgroup_t = 0x00200000; +pub const ATTR_CMN_EXTENDED_SECURITY: attrgroup_t = 0x00400000; +pub const ATTR_CMN_UUID: attrgroup_t = 0x00800000; +pub const ATTR_CMN_GRPUUID: attrgroup_t = 0x01000000; +pub const ATTR_CMN_FILEID: attrgroup_t = 0x02000000; +pub const ATTR_CMN_PARENTID: attrgroup_t = 0x04000000; +pub const ATTR_CMN_FULLPATH: attrgroup_t = 0x08000000; +pub const ATTR_CMN_ADDEDTIME: attrgroup_t = 0x10000000; +pub const ATTR_CMN_DATA_PROTECT_FLAGS: attrgroup_t = 0x40000000; +pub const ATTR_CMN_RETURNED_ATTRS: attrgroup_t = 0x80000000; +pub const ATTR_VOL_FSTYPE: attrgroup_t = 0x00000001; +pub const ATTR_VOL_SIGNATURE: attrgroup_t = 0x00000002; +pub const ATTR_VOL_SIZE: attrgroup_t = 0x00000004; +pub const ATTR_VOL_SPACEFREE: attrgroup_t = 0x00000008; +pub const ATTR_VOL_SPACEAVAIL: attrgroup_t = 0x00000010; +pub const ATTR_VOL_MINALLOCATION: attrgroup_t = 0x00000020; +pub const ATTR_VOL_ALLOCATIONCLUMP: attrgroup_t = 0x00000040; +pub const ATTR_VOL_IOBLOCKSIZE: attrgroup_t = 0x00000080; +pub const ATTR_VOL_OBJCOUNT: attrgroup_t = 0x00000100; +pub const ATTR_VOL_FILECOUNT: attrgroup_t = 0x00000200; +pub const ATTR_VOL_DIRCOUNT: attrgroup_t = 0x00000400; +pub const ATTR_VOL_MAXOBJCOUNT: attrgroup_t = 0x00000800; +pub const ATTR_VOL_MOUNTPOINT: attrgroup_t = 0x00001000; +pub const ATTR_VOL_NAME: attrgroup_t = 0x00002000; +pub const ATTR_VOL_MOUNTFLAGS: attrgroup_t = 0x00004000; +pub const ATTR_VOL_MOUNTEDDEVICE: attrgroup_t = 0x00008000; +pub const ATTR_VOL_ENCODINGSUSED: attrgroup_t = 0x00010000; +pub const ATTR_VOL_CAPABILITIES: attrgroup_t = 0x00020000; +pub const ATTR_VOL_UUID: attrgroup_t = 0x00040000; +pub const ATTR_VOL_SPACEUSED: attrgroup_t = 0x00800000; +pub const ATTR_VOL_QUOTA_SIZE: attrgroup_t = 0x10000000; +pub const ATTR_VOL_RESERVED_SIZE: attrgroup_t = 0x20000000; +pub const ATTR_VOL_ATTRIBUTES: attrgroup_t = 0x40000000; +pub const ATTR_VOL_INFO: attrgroup_t = 0x80000000; +pub const ATTR_DIR_LINKCOUNT: attrgroup_t = 0x00000001; +pub const ATTR_DIR_ENTRYCOUNT: attrgroup_t = 0x00000002; +pub const ATTR_DIR_MOUNTSTATUS: attrgroup_t = 0x00000004; +pub const ATTR_DIR_ALLOCSIZE: attrgroup_t = 0x00000008; +pub const ATTR_DIR_IOBLOCKSIZE: attrgroup_t = 0x00000010; +pub const ATTR_DIR_DATALENGTH: attrgroup_t = 0x00000020; +pub const ATTR_FILE_LINKCOUNT: attrgroup_t = 0x00000001; +pub const ATTR_FILE_TOTALSIZE: attrgroup_t = 0x00000002; +pub const ATTR_FILE_ALLOCSIZE: attrgroup_t = 0x00000004; +pub const ATTR_FILE_IOBLOCKSIZE: attrgroup_t = 0x00000008; +pub const ATTR_FILE_DEVTYPE: attrgroup_t = 0x00000020; +pub const ATTR_FILE_FORKCOUNT: attrgroup_t = 0x00000080; +pub const ATTR_FILE_FORKLIST: attrgroup_t = 0x00000100; +pub const ATTR_FILE_DATALENGTH: attrgroup_t = 0x00000200; +pub const ATTR_FILE_DATAALLOCSIZE: attrgroup_t = 0x00000400; +pub const ATTR_FILE_RSRCLENGTH: attrgroup_t = 0x00001000; +pub const ATTR_FILE_RSRCALLOCSIZE: attrgroup_t = 0x00002000; +pub const ATTR_CMNEXT_RELPATH: attrgroup_t = 0x00000004; +pub const ATTR_CMNEXT_PRIVATESIZE: attrgroup_t = 0x00000008; +pub const ATTR_CMNEXT_LINKID: attrgroup_t = 0x00000010; +pub const ATTR_CMNEXT_NOFIRMLINKPATH: attrgroup_t = 0x00000020; +pub const ATTR_CMNEXT_REALDEVID: attrgroup_t = 0x00000040; +pub const ATTR_CMNEXT_REALFSID: attrgroup_t = 0x00000080; +pub const ATTR_CMNEXT_CLONEID: attrgroup_t = 0x00000100; +pub const ATTR_CMNEXT_EXT_FLAGS: attrgroup_t = 0x00000200; +pub const ATTR_CMNEXT_RECURSIVE_GENCOUNT: attrgroup_t = 0x00000400; +pub const DIR_MNTSTATUS_MNTPOINT: u32 = 0x1; +pub const VOL_CAPABILITIES_FORMAT: usize = 0; +pub const VOL_CAPABILITIES_INTERFACES: usize = 1; +pub const VOL_CAP_FMT_PERSISTENTOBJECTIDS: attrgroup_t = 0x00000001; +pub const VOL_CAP_FMT_SYMBOLICLINKS: attrgroup_t = 0x00000002; +pub const VOL_CAP_FMT_HARDLINKS: attrgroup_t = 0x00000004; +pub const VOL_CAP_FMT_JOURNAL: attrgroup_t = 0x00000008; +pub const VOL_CAP_FMT_JOURNAL_ACTIVE: attrgroup_t = 0x00000010; +pub const VOL_CAP_FMT_NO_ROOT_TIMES: attrgroup_t = 0x00000020; +pub const VOL_CAP_FMT_SPARSE_FILES: attrgroup_t = 0x00000040; +pub const VOL_CAP_FMT_ZERO_RUNS: attrgroup_t = 0x00000080; +pub const VOL_CAP_FMT_CASE_SENSITIVE: attrgroup_t = 0x00000100; +pub const VOL_CAP_FMT_CASE_PRESERVING: attrgroup_t = 0x00000200; +pub const VOL_CAP_FMT_FAST_STATFS: attrgroup_t = 0x00000400; +pub const VOL_CAP_FMT_2TB_FILESIZE: attrgroup_t = 0x00000800; +pub const VOL_CAP_FMT_OPENDENYMODES: attrgroup_t = 0x00001000; +pub const VOL_CAP_FMT_HIDDEN_FILES: attrgroup_t = 0x00002000; +pub const VOL_CAP_FMT_PATH_FROM_ID: attrgroup_t = 0x00004000; +pub const VOL_CAP_FMT_NO_VOLUME_SIZES: attrgroup_t = 0x00008000; +pub const VOL_CAP_FMT_DECMPFS_COMPRESSION: attrgroup_t = 0x00010000; +pub const VOL_CAP_FMT_64BIT_OBJECT_IDS: attrgroup_t = 0x00020000; +pub const VOL_CAP_FMT_DIR_HARDLINKS: attrgroup_t = 0x00040000; +pub const VOL_CAP_FMT_DOCUMENT_ID: attrgroup_t = 0x00080000; +pub const VOL_CAP_FMT_WRITE_GENERATION_COUNT: attrgroup_t = 0x00100000; +pub const VOL_CAP_FMT_NO_IMMUTABLE_FILES: attrgroup_t = 0x00200000; +pub const VOL_CAP_FMT_NO_PERMISSIONS: attrgroup_t = 0x00400000; +pub const VOL_CAP_FMT_SHARED_SPACE: attrgroup_t = 0x00800000; +pub const VOL_CAP_FMT_VOL_GROUPS: attrgroup_t = 0x01000000; +pub const VOL_CAP_FMT_SEALED: attrgroup_t = 0x02000000; +pub const VOL_CAP_INT_SEARCHFS: attrgroup_t = 0x00000001; +pub const VOL_CAP_INT_ATTRLIST: attrgroup_t = 0x00000002; +pub const VOL_CAP_INT_NFSEXPORT: attrgroup_t = 0x00000004; +pub const VOL_CAP_INT_READDIRATTR: attrgroup_t = 0x00000008; +pub const VOL_CAP_INT_EXCHANGEDATA: attrgroup_t = 0x00000010; +pub const VOL_CAP_INT_COPYFILE: attrgroup_t = 0x00000020; +pub const VOL_CAP_INT_ALLOCATE: attrgroup_t = 0x00000040; +pub const VOL_CAP_INT_VOL_RENAME: attrgroup_t = 0x00000080; +pub const VOL_CAP_INT_ADVLOCK: attrgroup_t = 0x00000100; +pub const VOL_CAP_INT_FLOCK: attrgroup_t = 0x00000200; +pub const VOL_CAP_INT_EXTENDED_SECURITY: attrgroup_t = 0x00000400; +pub const VOL_CAP_INT_USERACCESS: attrgroup_t = 0x00000800; +pub const VOL_CAP_INT_MANLOCK: attrgroup_t = 0x00001000; +pub const VOL_CAP_INT_NAMEDSTREAMS: attrgroup_t = 0x00002000; +pub const VOL_CAP_INT_EXTENDED_ATTR: attrgroup_t = 0x00004000; +pub const VOL_CAP_INT_CLONE: attrgroup_t = 0x00010000; +pub const VOL_CAP_INT_SNAPSHOT: attrgroup_t = 0x00020000; +pub const VOL_CAP_INT_RENAME_SWAP: attrgroup_t = 0x00040000; +pub const VOL_CAP_INT_RENAME_EXCL: attrgroup_t = 0x00080000; +pub const VOL_CAP_INT_RENAME_OPENFAIL: attrgroup_t = 0x00100000; + +// +/// Process being created by fork. +pub const SIDL: u32 = 1; +/// Currently runnable. +pub const SRUN: u32 = 2; +/// Sleeping on an address. +pub const SSLEEP: u32 = 3; +/// Process debugging or suspension. +pub const SSTOP: u32 = 4; +/// Awaiting collection by parent. +pub const SZOMB: u32 = 5; + +// sys/vsock.h +pub const VMADDR_CID_ANY: ::c_uint = 0xFFFFFFFF; +pub const VMADDR_CID_HYPERVISOR: ::c_uint = 0; +pub const VMADDR_CID_RESERVED: ::c_uint = 1; +pub const VMADDR_CID_HOST: ::c_uint = 2; +pub const VMADDR_PORT_ANY: ::c_uint = 0xFFFFFFFF; + +cfg_if! { + if #[cfg(libc_const_extern_fn)] { + const fn __DARWIN_ALIGN32(p: usize) -> usize { + const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; + p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 + } + } else if #[cfg(libc_const_size_of)] { + fn __DARWIN_ALIGN32(p: usize) -> usize { + const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; + p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 + } + } else { + fn __DARWIN_ALIGN32(p: usize) -> usize { + let __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; + p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 + } + } +} + +cfg_if! { + if #[cfg(libc_const_size_of)] { + pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; + pub const THREAD_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / + ::mem::size_of::()) as mach_msg_type_number_t; + pub const THREAD_PRECEDENCE_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; + pub const THREAD_AFFINITY_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; + pub const THREAD_BACKGROUND_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; + pub const THREAD_LATENCY_QOS_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; + pub const THREAD_THROUGHPUT_QOS_POLICY_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / + ::mem::size_of::()) as mach_msg_type_number_t; + pub const THREAD_BASIC_INFO_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; + pub const THREAD_IDENTIFIER_INFO_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; + pub const THREAD_EXTENDED_INFO_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; + + pub const TASK_THREAD_TIMES_INFO_COUNT: u32 = + (::mem::size_of::() + / ::mem::size_of::()) as u32; + pub const MACH_TASK_BASIC_INFO_COUNT: u32 = (::mem::size_of::() + / ::mem::size_of::()) as u32; + pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = + (::mem::size_of::() / ::mem::size_of::()) + as mach_msg_type_number_t; + } else { + pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = 1; + pub const THREAD_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t = 4; + pub const THREAD_PRECEDENCE_POLICY_COUNT: mach_msg_type_number_t = 1; + pub const THREAD_AFFINITY_POLICY_COUNT: mach_msg_type_number_t = 1; + pub const THREAD_BACKGROUND_POLICY_COUNT: mach_msg_type_number_t = 1; + pub const THREAD_LATENCY_QOS_POLICY_COUNT: mach_msg_type_number_t = 1; + pub const THREAD_THROUGHPUT_QOS_POLICY_COUNT: mach_msg_type_number_t = 1; + pub const THREAD_BASIC_INFO_COUNT: mach_msg_type_number_t = 10; + pub const THREAD_IDENTIFIER_INFO_COUNT: mach_msg_type_number_t = 6; + pub const THREAD_EXTENDED_INFO_COUNT: mach_msg_type_number_t = 28; + pub const TASK_THREAD_TIMES_INFO_COUNT: u32 = 4; + pub const MACH_TASK_BASIC_INFO_COUNT: u32 = 12; + pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = 38; + } +} + +f! { + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, + cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { + if cmsg.is_null() { + return ::CMSG_FIRSTHDR(mhdr); + }; + let cmsg_len = (*cmsg).cmsg_len as usize; + let next = cmsg as usize + __DARWIN_ALIGN32(cmsg_len as usize); + let max = (*mhdr).msg_control as usize + + (*mhdr).msg_controllen as usize; + if next + __DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) > max { + 0 as *mut ::cmsghdr + } else { + next as *mut ::cmsghdr + } + } + + pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { + (cmsg as *mut ::c_uchar) + .offset(__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) as isize) + } + + pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + (__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) + + __DARWIN_ALIGN32(length as usize)) + as ::c_uint + } + + pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { + (__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) + length as usize) + as ::c_uint + } + + pub {const} fn VM_MAKE_TAG(id: u8) -> u32 { + (id as u32) << 24u32 + } + + pub fn major(dev: dev_t) -> i32 { + (dev >> 24) & 0xff + } + + pub fn minor(dev: dev_t) -> i32 { + dev & 0xffffff + } + + pub fn makedev(major: i32, minor: i32) -> dev_t { + (major << 24) | minor + } +} + +safe_f! { + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + status >> 8 + } + + pub {const} fn _WSTATUS(status: ::c_int) -> ::c_int { + status & 0x7f + } + + pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + _WSTATUS(status) == _WSTOPPED && WSTOPSIG(status) == 0x13 + } + + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + _WSTATUS(status) != _WSTOPPED && _WSTATUS(status) != 0 + } + + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + _WSTATUS(status) == _WSTOPPED && WSTOPSIG(status) != 0x13 + } +} + +extern "C" { + pub fn setgrent(); + #[doc(hidden)] + #[deprecated(since = "0.2.49", note = "Deprecated in MacOSX 10.5")] + #[cfg_attr(not(target_arch = "aarch64"), link_name = "daemon$1050")] + pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + #[doc(hidden)] + #[deprecated(since = "0.2.49", note = "Deprecated in MacOSX 10.10")] + pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; + #[doc(hidden)] + #[deprecated(since = "0.2.49", note = "Deprecated in MacOSX 10.10")] + pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; + pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "aio_suspend$UNIX2003" + )] + pub fn aio_suspend( + aiocb_list: *const *const aiocb, + nitems: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn chflags(path: *const ::c_char, flags: ::c_uint) -> ::c_int; + pub fn fchflags(fd: ::c_int, flags: ::c_uint) -> ::c_int; + pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "confstr$UNIX2003" + )] + pub fn confstr(name: ::c_int, buf: *mut ::c_char, len: ::size_t) -> ::size_t; + pub fn lio_listio( + mode: ::c_int, + aiocb_list: *const *mut aiocb, + nitems: ::c_int, + sevp: *mut sigevent, + ) -> ::c_int; + + pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + + pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; + + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn getutxent() -> *mut utmpx; + pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + pub fn setutxent(); + pub fn endutxent(); + pub fn utmpxname(file: *const ::c_char) -> ::c_int; + + pub fn asctime(tm: *const ::tm) -> *mut ::c_char; + pub fn ctime(clock: *const time_t) -> *mut ::c_char; + pub fn getdate(datestr: *const ::c_char) -> *mut ::tm; + pub fn strftime( + buf: *mut ::c_char, + maxsize: ::size_t, + format: *const ::c_char, + timeptr: *const ::tm, + ) -> ::size_t; + pub fn strptime( + buf: *const ::c_char, + format: *const ::c_char, + timeptr: *mut ::tm, + ) -> *mut ::c_char; + pub fn asctime_r(tm: *const ::tm, result: *mut ::c_char) -> *mut ::c_char; + pub fn ctime_r(clock: *const time_t, result: *mut ::c_char) -> *mut ::c_char; + + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; + pub fn sysctlnametomib( + name: *const ::c_char, + mibp: *mut ::c_int, + sizep: *mut ::size_t, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "mprotect$UNIX2003" + )] + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn semget(key: key_t, nsems: ::c_int, semflg: ::c_int) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "semctl$UNIX2003" + )] + pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; + pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int; + pub fn shm_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::c_int; + pub fn ftok(pathname: *const c_char, proj_id: ::c_int) -> key_t; + pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; + pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "shmctl$UNIX2003" + )] + pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; + pub fn shmget(key: key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_uint, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; + pub fn sysctlbyname( + name: *const ::c_char, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] + pub fn mach_absolute_time() -> u64; + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] + #[allow(deprecated)] + pub fn mach_timebase_info(info: *mut ::mach_timebase_info) -> ::c_int; + pub fn mach_host_self() -> mach_port_t; + pub fn mach_thread_self() -> mach_port_t; + pub fn pthread_setname_np(name: *const ::c_char) -> ::c_int; + pub fn pthread_getname_np(thread: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn pthread_mach_thread_np(thread: ::pthread_t) -> ::mach_port_t; + pub fn pthread_from_mach_thread_np(port: ::mach_port_t) -> ::pthread_t; + pub fn pthread_create_from_mach_thread( + thread: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + pub fn pthread_stack_frame_decode_np( + frame_addr: ::uintptr_t, + return_addr: *mut ::uintptr_t, + ) -> ::uintptr_t; + pub fn pthread_get_stackaddr_np(thread: ::pthread_t) -> *mut ::c_void; + pub fn pthread_get_stacksize_np(thread: ::pthread_t) -> ::size_t; + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_condattr_getpshared( + attr: *const pthread_condattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_main_np() -> ::c_int; + pub fn pthread_mutexattr_setpshared( + attr: *mut pthread_mutexattr_t, + pshared: ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_getpshared( + attr: *const pthread_mutexattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_getpshared( + attr: *const pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; + pub fn pthread_threadid_np(thread: ::pthread_t, thread_id: *mut u64) -> ::c_int; + pub fn pthread_attr_set_qos_class_np( + attr: *mut pthread_attr_t, + class: qos_class_t, + priority: ::c_int, + ) -> ::c_int; + pub fn pthread_attr_get_qos_class_np( + attr: *mut pthread_attr_t, + class: *mut qos_class_t, + priority: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_set_qos_class_self_np(class: qos_class_t, priority: ::c_int) -> ::c_int; + pub fn pthread_get_qos_class_np( + thread: ::pthread_t, + class: *mut qos_class_t, + priority: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_attr_getschedparam( + attr: *const ::pthread_attr_t, + param: *mut sched_param, + ) -> ::c_int; + pub fn pthread_attr_setschedparam( + attr: *mut ::pthread_attr_t, + param: *const sched_param, + ) -> ::c_int; + pub fn pthread_getschedparam( + thread: ::pthread_t, + policy: *mut ::c_int, + param: *mut sched_param, + ) -> ::c_int; + pub fn pthread_setschedparam( + thread: ::pthread_t, + policy: ::c_int, + param: *const sched_param, + ) -> ::c_int; + + // Available from Big Sur + pub fn pthread_introspection_hook_install( + hook: ::pthread_introspection_hook_t, + ) -> ::pthread_introspection_hook_t; + pub fn pthread_introspection_setspecific_np( + thread: ::pthread_t, + key: ::pthread_key_t, + value: *const ::c_void, + ) -> ::c_int; + pub fn pthread_introspection_getspecific_np( + thread: ::pthread_t, + key: ::pthread_key_t, + ) -> *mut ::c_void; + pub fn pthread_jit_write_protect_np(enabled: ::c_int); + pub fn pthread_jit_write_protect_supported_np() -> ::c_int; + // An array of pthread_jit_write_with_callback_np must declare + // the list of callbacks e.g. + // #[link_section = "__DATA_CONST,__pth_jit_func"] + // static callbacks: [libc::pthread_jit_write_callback_t; 2] = [native_jit_write_cb, + // std::mem::transmute::(std::ptr::null())]; + // (a handy PTHREAD_JIT_WRITE_CALLBACK_NP macro for other languages). + pub fn pthread_jit_write_with_callback_np( + callback: ::pthread_jit_write_callback_t, + ctx: *mut ::c_void, + ) -> ::c_int; + pub fn pthread_jit_write_freeze_callbacks_np(); + pub fn pthread_cpu_number_np(cpu_number_out: *mut ::size_t) -> ::c_int; + + pub fn os_unfair_lock_lock(lock: os_unfair_lock_t); + pub fn os_unfair_lock_trylock(lock: os_unfair_lock_t) -> bool; + pub fn os_unfair_lock_unlock(lock: os_unfair_lock_t); + pub fn os_unfair_lock_assert_owner(lock: os_unfair_lock_t); + pub fn os_unfair_lock_assert_not_owner(lock: os_unfair_lock_t); + + pub fn os_log_create(subsystem: *const ::c_char, category: *const ::c_char) -> ::os_log_t; + pub fn os_log_type_enabled(oslog: ::os_log_t, tpe: ::os_log_type_t) -> bool; + pub fn os_signpost_id_make_with_pointer( + log: ::os_log_t, + ptr: *const ::c_void, + ) -> ::os_signpost_id_t; + pub fn os_signpost_id_generate(log: ::os_log_t) -> ::os_signpost_id_t; + pub fn os_signpost_enabled(log: ::os_log_t) -> bool; + + pub fn thread_policy_set( + thread: thread_t, + flavor: thread_policy_flavor_t, + policy_info: thread_policy_t, + count: mach_msg_type_number_t, + ) -> kern_return_t; + pub fn thread_policy_get( + thread: thread_t, + flavor: thread_policy_flavor_t, + policy_info: thread_policy_t, + count: *mut mach_msg_type_number_t, + get_default: *mut boolean_t, + ) -> kern_return_t; + pub fn thread_info( + target_act: thread_inspect_t, + flavor: thread_flavor_t, + thread_info_out: thread_info_t, + thread_info_outCnt: *mut mach_msg_type_number_t, + ) -> kern_return_t; + #[cfg_attr(doc, doc(alias = "__errno_location"))] + #[cfg_attr(doc, doc(alias = "errno"))] + pub fn __error() -> *mut ::c_int; + pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int; + pub fn backtrace_symbols(addrs: *const *mut ::c_void, sz: ::c_int) -> *mut *mut ::c_char; + pub fn backtrace_symbols_fd(addrs: *const *mut ::c_void, sz: ::c_int, fd: ::c_int); + pub fn backtrace_from_fp( + startfp: *mut ::c_void, + array: *mut *mut ::c_void, + size: ::c_int, + ) -> ::c_int; + pub fn backtrace_image_offsets( + array: *const *mut ::c_void, + image_offsets: *mut image_offset, + size: ::c_int, + ); + pub fn backtrace_async( + array: *mut *mut ::c_void, + length: ::size_t, + task_id: *mut u32, + ) -> ::size_t; + #[cfg_attr( + all(target_os = "macos", not(target_arch = "aarch64")), + link_name = "statfs$INODE64" + )] + pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", not(target_arch = "aarch64")), + link_name = "fstatfs$INODE64" + )] + pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; + pub fn kevent( + kq: ::c_int, + changelist: *const ::kevent, + nchanges: ::c_int, + eventlist: *mut ::kevent, + nevents: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn kevent64( + kq: ::c_int, + changelist: *const ::kevent64_s, + nchanges: ::c_int, + eventlist: *mut ::kevent64_s, + nevents: ::c_int, + flags: ::c_uint, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn mount( + src: *const ::c_char, + target: *const ::c_char, + flags: ::c_int, + data: *mut ::c_void, + ) -> ::c_int; + pub fn fmount( + src: *const ::c_char, + fd: ::c_int, + flags: ::c_int, + data: *mut ::c_void, + ) -> ::c_int; + pub fn ptrace(request: ::c_int, pid: ::pid_t, addr: *mut ::c_char, data: ::c_int) -> ::c_int; + pub fn quotactl( + special: *const ::c_char, + cmd: ::c_int, + id: ::c_int, + data: *mut ::c_char, + ) -> ::c_int; + pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; + pub fn sendfile( + fd: ::c_int, + s: ::c_int, + offset: ::off_t, + len: *mut ::off_t, + hdtr: *mut ::sf_hdtr, + flags: ::c_int, + ) -> ::c_int; + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::c_int; + pub fn forkpty( + amaster: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::pid_t; + pub fn login_tty(fd: ::c_int) -> ::c_int; + pub fn duplocale(base: ::locale_t) -> ::locale_t; + pub fn freelocale(loc: ::locale_t) -> ::c_int; + pub fn localeconv_l(loc: ::locale_t) -> *mut lconv; + pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; + pub fn uselocale(loc: ::locale_t) -> ::locale_t; + pub fn querylocale(mask: ::c_int, loc: ::locale_t) -> *const ::c_char; + pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; + pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; + pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int; + pub fn setdomainname(name: *const ::c_char, len: ::c_int) -> ::c_int; + pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; + pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) + -> ::ssize_t; + pub fn getxattr( + path: *const ::c_char, + name: *const ::c_char, + value: *mut ::c_void, + size: ::size_t, + position: u32, + flags: ::c_int, + ) -> ::ssize_t; + pub fn fgetxattr( + filedes: ::c_int, + name: *const ::c_char, + value: *mut ::c_void, + size: ::size_t, + position: u32, + flags: ::c_int, + ) -> ::ssize_t; + pub fn setxattr( + path: *const ::c_char, + name: *const ::c_char, + value: *const ::c_void, + size: ::size_t, + position: u32, + flags: ::c_int, + ) -> ::c_int; + pub fn fsetxattr( + filedes: ::c_int, + name: *const ::c_char, + value: *const ::c_void, + size: ::size_t, + position: u32, + flags: ::c_int, + ) -> ::c_int; + pub fn listxattr( + path: *const ::c_char, + list: *mut ::c_char, + size: ::size_t, + flags: ::c_int, + ) -> ::ssize_t; + pub fn flistxattr( + filedes: ::c_int, + list: *mut ::c_char, + size: ::size_t, + flags: ::c_int, + ) -> ::ssize_t; + pub fn removexattr(path: *const ::c_char, name: *const ::c_char, flags: ::c_int) -> ::c_int; + pub fn renamex_np(from: *const ::c_char, to: *const ::c_char, flags: ::c_uint) -> ::c_int; + pub fn renameatx_np( + fromfd: ::c_int, + from: *const ::c_char, + tofd: ::c_int, + to: *const ::c_char, + flags: ::c_uint, + ) -> ::c_int; + pub fn fremovexattr(filedes: ::c_int, name: *const ::c_char, flags: ::c_int) -> ::c_int; + + pub fn getgrouplist( + name: *const ::c_char, + basegid: ::c_int, + groups: *mut ::c_int, + ngroups: *mut ::c_int, + ) -> ::c_int; + pub fn initgroups(user: *const ::c_char, basegroup: ::c_int) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "waitid$UNIX2003" + )] + pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) + -> ::c_int; + pub fn brk(addr: *const ::c_void) -> *mut ::c_void; + pub fn sbrk(increment: ::c_int) -> *mut ::c_void; + pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] + pub fn _dyld_image_count() -> u32; + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] + #[allow(deprecated)] + pub fn _dyld_get_image_header(image_index: u32) -> *const mach_header; + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] + pub fn _dyld_get_image_vmaddr_slide(image_index: u32) -> ::intptr_t; + #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] + pub fn _dyld_get_image_name(image_index: u32) -> *const ::c_char; + + pub fn posix_spawn( + pid: *mut ::pid_t, + path: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnp( + pid: *mut ::pid_t, + file: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_getsigdefault( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getflags( + attr: *const posix_spawnattr_t, + flags: *mut ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; + pub fn posix_spawnattr_getpgroup( + attr: *const posix_spawnattr_t, + flags: *mut ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; + pub fn posix_spawnattr_setarchpref_np( + attr: *mut posix_spawnattr_t, + count: ::size_t, + pref: *mut ::cpu_type_t, + subpref: *mut ::cpu_subtype_t, + ocount: *mut ::size_t, + ) -> ::c_int; + pub fn posix_spawnattr_getarchpref_np( + attr: *const posix_spawnattr_t, + count: ::size_t, + pref: *mut ::cpu_type_t, + subpref: *mut ::cpu_subtype_t, + ocount: *mut ::size_t, + ) -> ::c_int; + pub fn posix_spawnattr_set_qos_class_np( + attr: *mut posix_spawnattr_t, + qos_class: ::qos_class_t, + ) -> ::c_int; + pub fn posix_spawnattr_get_qos_class_np( + attr: *const posix_spawnattr_t, + qos_class: *mut ::qos_class_t, + ) -> ::c_int; + + pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_addopen( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + path: *const ::c_char, + oflag: ::c_int, + mode: ::mode_t, + ) -> ::c_int; + pub fn posix_spawn_file_actions_addclose( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + ) -> ::c_int; + pub fn posix_spawn_file_actions_adddup2( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + newfd: ::c_int, + ) -> ::c_int; + pub fn uname(buf: *mut ::utsname) -> ::c_int; + + pub fn connectx( + socket: ::c_int, + endpoints: *const sa_endpoints_t, + associd: sae_associd_t, + flags: ::c_uint, + iov: *const ::iovec, + iovcnt: ::c_uint, + len: *mut ::size_t, + connid: *mut sae_connid_t, + ) -> ::c_int; + pub fn disconnectx(socket: ::c_int, associd: sae_associd_t, connid: sae_connid_t) -> ::c_int; + + pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; + pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", not(target_arch = "aarch64")), + link_name = "getmntinfo$INODE64" + )] + pub fn getmntinfo(mntbufp: *mut *mut statfs, flags: ::c_int) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", not(target_arch = "aarch64")), + link_name = "getfsstat$INODE64" + )] + pub fn getfsstat(mntbufp: *mut statfs, bufsize: ::c_int, flags: ::c_int) -> ::c_int; + + // Copy-on-write functions. + // According to the man page `flags` is an `int` but in the header + // this is a `uint32_t`. + pub fn clonefile(src: *const ::c_char, dst: *const ::c_char, flags: u32) -> ::c_int; + pub fn clonefileat( + src_dirfd: ::c_int, + src: *const ::c_char, + dst_dirfd: ::c_int, + dst: *const ::c_char, + flags: u32, + ) -> ::c_int; + pub fn fclonefileat( + srcfd: ::c_int, + dst_dirfd: ::c_int, + dst: *const ::c_char, + flags: u32, + ) -> ::c_int; + + pub fn copyfile( + from: *const ::c_char, + to: *const ::c_char, + state: copyfile_state_t, + flags: copyfile_flags_t, + ) -> ::c_int; + pub fn fcopyfile( + from: ::c_int, + to: ::c_int, + state: copyfile_state_t, + flags: copyfile_flags_t, + ) -> ::c_int; + + // Added in macOS 10.13 + // ISO/IEC 9899:2011 ("ISO C11") K.3.7.4.1 + pub fn memset_s(s: *mut ::c_void, smax: ::size_t, c: ::c_int, n: ::size_t) -> ::c_int; + // Added in macOS 10.5 + pub fn memset_pattern4(b: *mut ::c_void, pattern4: *const ::c_void, len: ::size_t); + pub fn memset_pattern8(b: *mut ::c_void, pattern8: *const ::c_void, len: ::size_t); + pub fn memset_pattern16(b: *mut ::c_void, pattern16: *const ::c_void, len: ::size_t); + + // Inherited from BSD but available from Big Sur only + pub fn strtonum( + __numstr: *const ::c_char, + __minval: ::c_longlong, + __maxval: ::c_longlong, + errstrp: *mut *const ::c_char, + ) -> ::c_longlong; + + pub fn mstats() -> mstats; + pub fn malloc_printf(format: *const ::c_char, ...); + pub fn malloc_zone_check(zone: *mut ::malloc_zone_t) -> ::boolean_t; + pub fn malloc_zone_print(zone: *mut ::malloc_zone_t, verbose: ::boolean_t); + pub fn malloc_zone_statistics(zone: *mut ::malloc_zone_t, stats: *mut malloc_statistics_t); + pub fn malloc_zone_log(zone: *mut ::malloc_zone_t, address: *mut ::c_void); + pub fn malloc_zone_print_ptr_info(ptr: *mut ::c_void); + pub fn malloc_default_zone() -> *mut ::malloc_zone_t; + pub fn malloc_zone_from_ptr(ptr: *const ::c_void) -> *mut ::malloc_zone_t; + pub fn malloc_zone_malloc(zone: *mut ::malloc_zone_t, size: ::size_t) -> *mut ::c_void; + pub fn malloc_zone_valloc(zone: *mut ::malloc_zone_t, size: ::size_t) -> *mut ::c_void; + pub fn malloc_zone_calloc( + zone: *mut ::malloc_zone_t, + num_items: ::size_t, + size: ::size_t, + ) -> *mut ::c_void; + pub fn malloc_zone_realloc( + zone: *mut ::malloc_zone_t, + ptr: *mut ::c_void, + size: ::size_t, + ) -> *mut ::c_void; + pub fn malloc_zone_free(zone: *mut ::malloc_zone_t, ptr: *mut ::c_void); + + pub fn proc_listpids( + t: u32, + typeinfo: u32, + buffer: *mut ::c_void, + buffersize: ::c_int, + ) -> ::c_int; + pub fn proc_listallpids(buffer: *mut ::c_void, buffersize: ::c_int) -> ::c_int; + pub fn proc_listpgrppids( + pgrpid: ::pid_t, + buffer: *mut ::c_void, + buffersize: ::c_int, + ) -> ::c_int; + pub fn proc_listchildpids(ppid: ::pid_t, buffer: *mut ::c_void, buffersize: ::c_int) + -> ::c_int; + pub fn proc_pidinfo( + pid: ::c_int, + flavor: ::c_int, + arg: u64, + buffer: *mut ::c_void, + buffersize: ::c_int, + ) -> ::c_int; + pub fn proc_pidfdinfo( + pid: ::c_int, + fd: ::c_int, + flavor: ::c_int, + buffer: *mut ::c_void, + buffersize: ::c_int, + ) -> ::c_int; + pub fn proc_pidfileportinfo( + pid: ::c_int, + fileport: u32, + flavor: ::c_int, + buffer: *mut ::c_void, + buffersize: ::c_int, + ) -> ::c_int; + pub fn proc_pidpath(pid: ::c_int, buffer: *mut ::c_void, buffersize: u32) -> ::c_int; + pub fn proc_name(pid: ::c_int, buffer: *mut ::c_void, buffersize: u32) -> ::c_int; + pub fn proc_regionfilename( + pid: ::c_int, + address: u64, + buffer: *mut ::c_void, + buffersize: u32, + ) -> ::c_int; + pub fn proc_kmsgbuf(buffer: *mut ::c_void, buffersize: u32) -> ::c_int; + pub fn proc_libversion(major: *mut ::c_int, mintor: *mut ::c_int) -> ::c_int; + pub fn proc_pid_rusage(pid: ::c_int, flavor: ::c_int, buffer: *mut rusage_info_t) -> ::c_int; + + // Available from Big Sur + pub fn proc_set_no_smt() -> ::c_int; + pub fn proc_setthread_no_smt() -> ::c_int; + pub fn proc_set_csm(flags: u32) -> ::c_int; + pub fn proc_setthread_csm(flags: u32) -> ::c_int; + /// # Notes + /// + /// `id` is of type [`uuid_t`]. + pub fn gethostuuid(id: *mut u8, timeout: *const ::timespec) -> ::c_int; + + pub fn gethostid() -> ::c_long; + pub fn sethostid(hostid: ::c_long); + + pub fn CCRandomGenerateBytes(bytes: *mut ::c_void, size: ::size_t) -> ::CCRNGStatus; + + pub fn _NSGetExecutablePath(buf: *mut ::c_char, bufsize: *mut u32) -> ::c_int; + pub fn _NSGetEnviron() -> *mut *mut *mut ::c_char; + + pub fn mach_vm_map( + target_task: ::vm_map_t, + address: *mut ::mach_vm_address_t, + size: ::mach_vm_size_t, + mask: ::mach_vm_offset_t, + flags: ::c_int, + object: ::mem_entry_name_port_t, + offset: ::memory_object_offset_t, + copy: ::boolean_t, + cur_protection: ::vm_prot_t, + max_protection: ::vm_prot_t, + inheritance: ::vm_inherit_t, + ) -> ::kern_return_t; + + pub fn vm_deallocate( + target_task: vm_map_t, + address: vm_address_t, + size: vm_size_t, + ) -> ::kern_return_t; + + pub fn host_statistics64( + host_priv: host_t, + flavor: host_flavor_t, + host_info64_out: host_info64_t, + host_info64_outCnt: *mut mach_msg_type_number_t, + ) -> ::kern_return_t; + pub fn host_processor_info( + host: host_t, + flavor: processor_flavor_t, + out_processor_count: *mut natural_t, + out_processor_info: *mut processor_info_array_t, + out_processor_infoCnt: *mut mach_msg_type_number_t, + ) -> ::kern_return_t; + + pub static mut mach_task_self_: ::mach_port_t; + pub fn task_for_pid( + host: ::mach_port_t, + pid: ::pid_t, + task: *mut ::mach_port_t, + ) -> ::kern_return_t; + pub fn task_info( + host: ::mach_port_t, + flavor: task_flavor_t, + task_info_out: task_info_t, + task_info_count: *mut mach_msg_type_number_t, + ) -> ::kern_return_t; + pub fn task_create( + target_task: ::task_t, + ledgers: ::ledger_array_t, + ledgersCnt: ::mach_msg_type_number_t, + inherit_memory: ::boolean_t, + child_task: *mut ::task_t, + ) -> ::kern_return_t; + pub fn task_terminate(target_task: ::task_t) -> ::kern_return_t; + pub fn task_threads( + target_task: ::task_inspect_t, + act_list: *mut ::thread_act_array_t, + act_listCnt: *mut ::mach_msg_type_number_t, + ) -> ::kern_return_t; + pub fn host_statistics( + host_priv: host_t, + flavor: host_flavor_t, + host_info_out: host_info_t, + host_info_outCnt: *mut mach_msg_type_number_t, + ) -> ::kern_return_t; + + // sysdir.h + pub fn sysdir_start_search_path_enumeration( + dir: sysdir_search_path_directory_t, + domainMask: sysdir_search_path_domain_mask_t, + ) -> ::sysdir_search_path_enumeration_state; + pub fn sysdir_get_next_search_path_enumeration( + state: ::sysdir_search_path_enumeration_state, + path: *mut ::c_char, + ) -> ::sysdir_search_path_enumeration_state; + + pub static vm_page_size: vm_size_t; + + pub fn getattrlist( + path: *const ::c_char, + attrList: *mut ::c_void, + attrBuf: *mut ::c_void, + attrBufSize: ::size_t, + options: u32, + ) -> ::c_int; + pub fn fgetattrlist( + fd: ::c_int, + attrList: *mut ::c_void, + attrBuf: *mut ::c_void, + attrBufSize: ::size_t, + options: u32, + ) -> ::c_int; + pub fn getattrlistat( + fd: ::c_int, + path: *const ::c_char, + attrList: *mut ::c_void, + attrBuf: *mut ::c_void, + attrBufSize: ::size_t, + options: ::c_ulong, + ) -> ::c_int; + pub fn setattrlist( + path: *const ::c_char, + attrList: *mut ::c_void, + attrBuf: *mut ::c_void, + attrBufSize: ::size_t, + options: u32, + ) -> ::c_int; + pub fn fsetattrlist( + fd: ::c_int, + attrList: *mut ::c_void, + attrBuf: *mut ::c_void, + attrBufSize: ::size_t, + options: u32, + ) -> ::c_int; + pub fn setattrlistat( + dir_fd: ::c_int, + path: *const ::c_char, + attrList: *mut ::c_void, + attrBuf: *mut ::c_void, + attrBufSize: ::size_t, + options: u32, + ) -> ::c_int; + pub fn getattrlistbulk( + dirfd: ::c_int, + attrList: *mut ::c_void, + attrBuf: *mut ::c_void, + attrBufSize: ::size_t, + options: u64, + ) -> ::c_int; + + pub fn malloc_size(ptr: *const ::c_void) -> ::size_t; + pub fn malloc_good_size(size: ::size_t) -> ::size_t; + + pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; + pub fn basename(path: *mut ::c_char) -> *mut ::c_char; +} + +pub unsafe fn mach_task_self() -> ::mach_port_t { + mach_task_self_ +} + +cfg_if! { + if #[cfg(target_os = "macos")] { + extern "C" { + pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + } + } +} +cfg_if! { + if #[cfg(any(target_os = "macos", target_os = "ios"))] { + extern "C" { + pub fn memmem( + haystack: *const ::c_void, + haystacklen: ::size_t, + needle: *const ::c_void, + needlelen: ::size_t, + ) -> *mut ::c_void; + pub fn task_set_info(target_task: ::task_t, + flavor: ::task_flavor_t, + task_info_in: ::task_info_t, + task_info_inCnt: ::mach_msg_type_number_t + ) -> ::kern_return_t; + } + } +} + +// These require a dependency on `libiconv`, and including this when built as +// part of `std` means every Rust program gets it. Ideally we would have a link +// modifier to only include these if they are used, but we do not. +#[cfg_attr(not(feature = "rustc-dep-of-std"), link(name = "iconv"))] +extern "C" { + pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; + pub fn iconv( + cd: iconv_t, + inbuf: *mut *mut ::c_char, + inbytesleft: *mut ::size_t, + outbuf: *mut *mut ::c_char, + outbytesleft: *mut ::size_t, + ) -> ::size_t; + pub fn iconv_close(cd: iconv_t) -> ::c_int; +} + +cfg_if! { + if #[cfg(target_pointer_width = "32")] { + mod b32; + pub use self::b32::*; + } else if #[cfg(target_pointer_width = "64")] { + mod b64; + pub use self::b64::*; + } else { + // Unknown target_arch + } +} + +cfg_if! { + if #[cfg(libc_long_array)] { + mod long_array; + pub use self::long_array::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/errno.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/errno.rs new file mode 100644 index 000000000..5fe6bb89c --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/errno.rs @@ -0,0 +1,13 @@ +// DragonFlyBSD's __error function is declared with "static inline", so it must +// be implemented in the libc crate, as a pointer to a static thread_local. +f! { + #[deprecated(since = "0.2.77", note = "Use `__errno_location()` instead")] + pub fn __error() -> *mut ::c_int { + &mut errno + } +} + +extern "C" { + #[thread_local] + pub static mut errno: ::c_int; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/mod.rs new file mode 100644 index 000000000..b3a5be449 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -0,0 +1,1726 @@ +pub type dev_t = u32; +pub type c_char = i8; +pub type wchar_t = i32; +pub type clock_t = u64; +pub type ino_t = u64; +pub type lwpid_t = i32; +pub type nlink_t = u32; +pub type blksize_t = i64; +pub type clockid_t = ::c_ulong; + +pub type c_long = i64; +pub type c_ulong = u64; +pub type time_t = i64; +pub type suseconds_t = i64; + +pub type uuid_t = ::uuid; + +pub type fsblkcnt_t = u64; +pub type fsfilcnt_t = u64; +pub type idtype_t = ::c_uint; +pub type shmatt_t = ::c_uint; + +pub type mqd_t = ::c_int; +pub type sem_t = *mut sem; + +pub type cpuset_t = cpumask_t; +pub type cpu_set_t = cpumask_t; + +pub type register_t = ::c_long; +pub type umtx_t = ::c_int; +pub type pthread_barrierattr_t = ::c_int; +pub type pthread_barrier_t = ::uintptr_t; +pub type pthread_spinlock_t = ::uintptr_t; + +pub type segsz_t = usize; + +pub type vm_prot_t = u8; +pub type vm_maptype_t = u8; +pub type vm_inherit_t = i8; +pub type vm_subsys_t = ::c_int; +pub type vm_eflags_t = ::c_uint; + +pub type vm_map_t = *mut __c_anonymous_vm_map; +pub type vm_map_entry_t = *mut vm_map_entry; + +pub type pmap = __c_anonymous_pmap; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum sem {} +impl ::Copy for sem {} +impl ::Clone for sem { + fn clone(&self) -> sem { + *self + } +} + +e! { + #[repr(u32)] + pub enum lwpstat { + LSRUN = 1, + LSSTOP = 2, + LSSLEEP = 3, + } + + #[repr(u32)] + pub enum procstat { + SIDL = 1, + SACTIVE = 2, + SSTOP = 3, + SZOMB = 4, + SCORE = 5, + } +} + +s! { + pub struct kevent { + pub ident: ::uintptr_t, + pub filter: ::c_short, + pub flags: ::c_ushort, + pub fflags: ::c_uint, + pub data: ::intptr_t, + pub udata: *mut ::c_void, + } + + pub struct exit_status { + pub e_termination: u16, + pub e_exit: u16 + } + + pub struct aiocb { + pub aio_fildes: ::c_int, + pub aio_offset: ::off_t, + pub aio_buf: *mut ::c_void, + pub aio_nbytes: ::size_t, + pub aio_sigevent: sigevent, + pub aio_lio_opcode: ::c_int, + pub aio_reqprio: ::c_int, + _aio_val: ::c_int, + _aio_err: ::c_int + } + + pub struct uuid { + pub time_low: u32, + pub time_mid: u16, + pub time_hi_and_version: u16, + pub clock_seq_hi_and_reserved: u8, + pub clock_seq_low: u8, + pub node: [u8; 6], + } + + pub struct mq_attr { + pub mq_flags: ::c_long, + pub mq_maxmsg: ::c_long, + pub mq_msgsize: ::c_long, + pub mq_curmsgs: ::c_long, + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub f_owner: ::uid_t, + pub f_type: ::c_uint, + pub f_syncreads: u64, + pub f_syncwrites: u64, + pub f_asyncreads: u64, + pub f_asyncwrites: u64, + pub f_fsid_uuid: ::uuid_t, + pub f_uid_uuid: ::uuid_t, + } + + pub struct stat { + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_dev: ::dev_t, + pub st_mode: ::mode_t, + pub st_padding1: u16, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_size: ::off_t, + pub st_blocks: i64, + pub __old_st_blksize: u32, + pub st_flags: u32, + pub st_gen: u32, + pub st_lspare: i32, + pub st_blksize: i64, + pub st_qspare2: i64, + } + + pub struct if_data { + pub ifi_type: ::c_uchar, + pub ifi_physical: ::c_uchar, + pub ifi_addrlen: ::c_uchar, + pub ifi_hdrlen: ::c_uchar, + pub ifi_recvquota: ::c_uchar, + pub ifi_xmitquota: ::c_uchar, + pub ifi_mtu: ::c_ulong, + pub ifi_metric: ::c_ulong, + pub ifi_link_state: ::c_ulong, + pub ifi_baudrate: u64, + pub ifi_ipackets: ::c_ulong, + pub ifi_ierrors: ::c_ulong, + pub ifi_opackets: ::c_ulong, + pub ifi_oerrors: ::c_ulong, + pub ifi_collisions: ::c_ulong, + pub ifi_ibytes: ::c_ulong, + pub ifi_obytes: ::c_ulong, + pub ifi_imcasts: ::c_ulong, + pub ifi_omcasts: ::c_ulong, + pub ifi_iqdrops: ::c_ulong, + pub ifi_noproto: ::c_ulong, + pub ifi_hwassist: ::c_ulong, + pub ifi_oqdrops: ::c_ulong, + pub ifi_lastchange: ::timeval, + } + + pub struct if_msghdr { + pub ifm_msglen: ::c_ushort, + pub ifm_version: ::c_uchar, + pub ifm_type: ::c_uchar, + pub ifm_addrs: ::c_int, + pub ifm_flags: ::c_int, + pub ifm_index: ::c_ushort, + pub ifm_data: if_data, + } + + pub struct sockaddr_dl { + pub sdl_len: ::c_uchar, + pub sdl_family: ::c_uchar, + pub sdl_index: ::c_ushort, + pub sdl_type: ::c_uchar, + pub sdl_nlen: ::c_uchar, + pub sdl_alen: ::c_uchar, + pub sdl_slen: ::c_uchar, + pub sdl_data: [::c_char; 12], + pub sdl_rcf: ::c_ushort, + pub sdl_route: [::c_ushort; 16], + } + + pub struct xucred { + pub cr_version: ::c_uint, + pub cr_uid: ::uid_t, + pub cr_ngroups: ::c_short, + pub cr_groups: [::gid_t; 16], + __cr_unused1: *mut ::c_void, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } + + pub struct cpumask_t { + ary: [u64; 4], + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + shm_internal: *mut ::c_void, + } + + pub struct kinfo_file { + pub f_size: ::size_t, + pub f_pid: ::pid_t, + pub f_uid: ::uid_t, + pub f_fd: ::c_int, + pub f_file: *mut ::c_void, + pub f_type: ::c_short, + pub f_count: ::c_int, + pub f_msgcount: ::c_int, + pub f_offset: ::off_t, + pub f_data: *mut ::c_void, + pub f_flag: ::c_uint, + } + + pub struct kinfo_cputime { + pub cp_user: u64, + pub cp_nice: u64, + pub cp_sys: u64, + pub cp_intr: u64, + pub cp_idel: u64, + cp_unused01: u64, + cp_unused02: u64, + pub cp_sample_pc: u64, + pub cp_sample_sp: u64, + pub cp_msg: [::c_char; 32], + } + + pub struct kinfo_lwp { + pub kl_pid: ::pid_t, + pub kl_tid: ::lwpid_t, + pub kl_flags: ::c_int, + pub kl_stat: ::lwpstat, + pub kl_lock: ::c_int, + pub kl_tdflags: ::c_int, + pub kl_mpcount: ::c_int, + pub kl_prio: ::c_int, + pub kl_tdprio: ::c_int, + pub kl_rtprio: ::rtprio, + pub kl_uticks: u64, + pub kl_sticks: u64, + pub kl_iticks: u64, + pub kl_cpticks: u64, + pub kl_pctcpu: ::c_uint, + pub kl_slptime: ::c_uint, + pub kl_origcpu: ::c_int, + pub kl_estcpu: ::c_int, + pub kl_cpuid: ::c_int, + pub kl_ru: ::rusage, + pub kl_siglist: ::sigset_t, + pub kl_sigmask: ::sigset_t, + pub kl_wchan: ::uintptr_t, + pub kl_wmesg: [::c_char; 9], + pub kl_comm: [::c_char; MAXCOMLEN+1], + } + + pub struct kinfo_proc { + pub kp_paddr: ::uintptr_t, + pub kp_flags: ::c_int, + pub kp_stat: ::procstat, + pub kp_lock: ::c_int, + pub kp_acflag: ::c_int, + pub kp_traceflag: ::c_int, + pub kp_fd: ::uintptr_t, + pub kp_siglist: ::sigset_t, + pub kp_sigignore: ::sigset_t, + pub kp_sigcatch: ::sigset_t, + pub kp_sigflag: ::c_int, + pub kp_start: ::timeval, + pub kp_comm: [::c_char; MAXCOMLEN+1], + pub kp_uid: ::uid_t, + pub kp_ngroups: ::c_short, + pub kp_groups: [::gid_t; NGROUPS], + pub kp_ruid: ::uid_t, + pub kp_svuid: ::uid_t, + pub kp_rgid: ::gid_t, + pub kp_svgid: ::gid_t, + pub kp_pid: ::pid_t, + pub kp_ppid: ::pid_t, + pub kp_pgid: ::pid_t, + pub kp_jobc: ::c_int, + pub kp_sid: ::pid_t, + pub kp_login: [::c_char; 40], // MAXNAMELEN rounded up to the nearest sizeof(long) + pub kp_tdev: ::dev_t, + pub kp_tpgid: ::pid_t, + pub kp_tsid: ::pid_t, + pub kp_exitstat: ::c_ushort, + pub kp_nthreads: ::c_int, + pub kp_nice: ::c_int, + pub kp_swtime: ::c_uint, + pub kp_vm_map_size: ::size_t, + pub kp_vm_rssize: ::segsz_t, + pub kp_vm_swrss: ::segsz_t, + pub kp_vm_tsize: ::segsz_t, + pub kp_vm_dsize: ::segsz_t, + pub kp_vm_ssize: ::segsz_t, + pub kp_vm_prssize: ::c_uint, + pub kp_jailid: ::c_int, + pub kp_ru: ::rusage, + pub kp_cru: ::rusage, + pub kp_auxflags: ::c_int, + pub kp_lwp: ::kinfo_lwp, + pub kp_ktaddr: ::uintptr_t, + kp_spare: [::c_int; 2], + } + + pub struct __c_anonymous_vm_map { + _priv: [::uintptr_t; 36], + } + + pub struct vm_map_entry { + _priv: [::uintptr_t; 15], + pub eflags: ::vm_eflags_t, + pub maptype: ::vm_maptype_t, + pub protection: ::vm_prot_t, + pub max_protection: ::vm_prot_t, + pub inheritance: ::vm_inherit_t, + pub wired_count: ::c_int, + pub id: ::vm_subsys_t, + } + + pub struct __c_anonymous_pmap { + _priv1: [::uintptr_t; 32], + _priv2: [::uintptr_t; 32], + _priv3: [::uintptr_t; 32], + _priv4: [::uintptr_t; 32], + _priv5: [::uintptr_t; 8], + } + + pub struct vmspace { + vm_map: __c_anonymous_vm_map, + vm_pmap: __c_anonymous_pmap, + pub vm_flags: ::c_int, + pub vm_shm: *mut ::c_char, + pub vm_rssize: ::segsz_t, + pub vm_swrss: ::segsz_t, + pub vm_tsize: ::segsz_t, + pub vm_dsize: ::segsz_t, + pub vm_ssize: ::segsz_t, + pub vm_taddr: *mut ::c_char, + pub vm_daddr: *mut ::c_char, + pub vm_maxsaddr: *mut ::c_char, + pub vm_minsaddr: *mut ::c_char, + _unused1: ::c_int, + _unused2: ::c_int, + pub vm_pagesupply: ::c_int, + pub vm_holdcnt: ::c_uint, + pub vm_refcnt: ::c_uint, + } + + pub struct cpuctl_msr_args_t { + pub msr: ::c_int, + pub data: u64, + } + + pub struct cpuctl_cpuid_args_t { + pub level: ::c_int, + pub data: [u32; 4], + } + + pub struct cpuctl_cpuid_count_args_t { + pub level: ::c_int, + pub level_type: ::c_int, + pub data: [u32; 4], + } + + pub struct cpuctl_update_args_t { + pub data: *mut ::c_void, + pub size: ::size_t, + } +} + +s_no_extra_traits! { + pub struct utmpx { + pub ut_name: [::c_char; 32], + pub ut_id: [::c_char; 4], + + pub ut_line: [::c_char; 32], + pub ut_host: [::c_char; 256], + + pub ut_unused: [u8; 16], + pub ut_session: u16, + pub ut_type: u16, + pub ut_pid: ::pid_t, + ut_exit: exit_status, + ut_ss: ::sockaddr_storage, + pub ut_tv: ::timeval, + pub ut_unused2: [u8; 16], + } + + pub struct lastlogx { + pub ll_tv: ::timeval, + pub ll_line: [::c_char; _UTX_LINESIZE], + pub ll_host: [::c_char; _UTX_HOSTSIZE], + pub ll_ss: ::sockaddr_storage, + } + + pub struct dirent { + pub d_fileno: ::ino_t, + pub d_namlen: u16, + pub d_type: u8, + __unused1: u8, + __unused2: u32, + pub d_name: [::c_char; 256], + } + + pub struct statfs { + __spare2: ::c_long, + pub f_bsize: ::c_long, + pub f_iosize: ::c_long, + pub f_blocks: ::c_long, + pub f_bfree: ::c_long, + pub f_bavail: ::c_long, + pub f_files: ::c_long, + pub f_ffree: ::c_long, + pub f_fsid: ::fsid_t, + pub f_owner: ::uid_t, + pub f_type: ::c_int, + pub f_flags: ::c_int, + pub f_syncwrites: ::c_long, + pub f_asyncwrites: ::c_long, + pub f_fstypename: [::c_char; 16], + pub f_mntonname: [::c_char; 80], + pub f_syncreads: ::c_long, + pub f_asyncreads: ::c_long, + __spares1: ::c_short, + pub f_mntfromname: [::c_char; 80], + __spares2: ::c_short, + __spare: [::c_long; 2], + } + + pub struct sigevent { + pub sigev_notify: ::c_int, + // The union is 8-byte in size, so it is aligned at a 8-byte offset. + #[cfg(target_pointer_width = "64")] + __unused1: ::c_int, + pub sigev_signo: ::c_int, //actually a union + // pad the union + #[cfg(target_pointer_width = "64")] + __unused2: ::c_int, + pub sigev_value: ::sigval, + __unused3: *mut ::c_void //actually a function pointer + } + + pub struct mcontext_t { + pub mc_onstack: register_t, + pub mc_rdi: register_t, + pub mc_rsi: register_t, + pub mc_rdx: register_t, + pub mc_rcx: register_t, + pub mc_r8: register_t, + pub mc_r9: register_t, + pub mc_rax: register_t, + pub mc_rbx: register_t, + pub mc_rbp: register_t, + pub mc_r10: register_t, + pub mc_r11: register_t, + pub mc_r12: register_t, + pub mc_r13: register_t, + pub mc_r14: register_t, + pub mc_r15: register_t, + pub mc_xflags: register_t, + pub mc_trapno: register_t, + pub mc_addr: register_t, + pub mc_flags: register_t, + pub mc_err: register_t, + pub mc_rip: register_t, + pub mc_cs: register_t, + pub mc_rflags: register_t, + pub mc_rsp: register_t, + pub mc_ss: register_t, + pub mc_len: ::c_uint, + pub mc_fpformat: ::c_uint, + pub mc_ownedfp: ::c_uint, + __reserved: ::c_uint, + __unused: [::c_uint; 8], + pub mc_fpregs: [[::c_uint; 8]; 32], + } + + pub struct ucontext_t { + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + pub uc_link: *mut ucontext_t, + pub uc_stack: stack_t, + pub uc_cofunc: ::Option, + pub uc_arg: *mut ::c_void, + __pad: [::c_int; 4], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for utmpx { + fn eq(&self, other: &utmpx) -> bool { + self.ut_name == other.ut_name + && self.ut_id == other.ut_id + && self.ut_line == other.ut_line + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + && self.ut_unused == other.ut_unused + && self.ut_session == other.ut_session + && self.ut_type == other.ut_type + && self.ut_pid == other.ut_pid + && self.ut_exit == other.ut_exit + && self.ut_ss == other.ut_ss + && self.ut_tv == other.ut_tv + && self.ut_unused2 == other.ut_unused2 + } + } + impl Eq for utmpx {} + impl ::fmt::Debug for utmpx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmpx") + .field("ut_name", &self.ut_name) + .field("ut_id", &self.ut_id) + .field("ut_line", &self.ut_line) + // FIXME: .field("ut_host", &self.ut_host) + .field("ut_unused", &self.ut_unused) + .field("ut_session", &self.ut_session) + .field("ut_type", &self.ut_type) + .field("ut_pid", &self.ut_pid) + .field("ut_exit", &self.ut_exit) + .field("ut_ss", &self.ut_ss) + .field("ut_tv", &self.ut_tv) + .field("ut_unused2", &self.ut_unused2) + .finish() + } + } + impl ::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { + self.ut_name.hash(state); + self.ut_id.hash(state); + self.ut_line.hash(state); + self.ut_host.hash(state); + self.ut_unused.hash(state); + self.ut_session.hash(state); + self.ut_type.hash(state); + self.ut_pid.hash(state); + self.ut_exit.hash(state); + self.ut_ss.hash(state); + self.ut_tv.hash(state); + self.ut_unused2.hash(state); + } + } + impl PartialEq for lastlogx { + fn eq(&self, other: &lastlogx) -> bool { + self.ll_tv == other.ll_tv + && self.ll_line == other.ll_line + && self.ll_host == other.ll_host + && self.ll_ss == other.ll_ss + } + } + impl Eq for lastlogx {} + impl ::fmt::Debug for lastlogx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("lastlogx") + .field("ll_tv", &self.ll_tv) + .field("ll_line", &self.ll_line) + .field("ll_host", &self.ll_host) + .field("ll_ss", &self.ll_ss) + .finish() + } + } + impl ::hash::Hash for lastlogx { + fn hash(&self, state: &mut H) { + self.ll_tv.hash(state); + self.ll_line.hash(state); + self.ll_host.hash(state); + self.ll_ss.hash(state); + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_fileno == other.d_fileno + && self.d_namlen == other.d_namlen + && self.d_type == other.d_type + // Ignore __unused1 + // Ignore __unused2 + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for dirent {} + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_fileno", &self.d_fileno) + .field("d_namlen", &self.d_namlen) + .field("d_type", &self.d_type) + // Ignore __unused1 + // Ignore __unused2 + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_fileno.hash(state); + self.d_namlen.hash(state); + self.d_type.hash(state); + // Ignore __unused1 + // Ignore __unused2 + self.d_name.hash(state); + } + } + + impl PartialEq for statfs { + fn eq(&self, other: &statfs) -> bool { + self.f_bsize == other.f_bsize + && self.f_iosize == other.f_iosize + && self.f_blocks == other.f_blocks + && self.f_bfree == other.f_bfree + && self.f_bavail == other.f_bavail + && self.f_files == other.f_files + && self.f_ffree == other.f_ffree + && self.f_fsid == other.f_fsid + && self.f_owner == other.f_owner + && self.f_type == other.f_type + && self.f_flags == other.f_flags + && self.f_syncwrites == other.f_syncwrites + && self.f_asyncwrites == other.f_asyncwrites + && self.f_fstypename == other.f_fstypename + && self + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a,b)| a == b) + && self.f_syncreads == other.f_syncreads + && self.f_asyncreads == other.f_asyncreads + && self + .f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for statfs {} + impl ::fmt::Debug for statfs { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("statfs") + .field("f_bsize", &self.f_bsize) + .field("f_iosize", &self.f_iosize) + .field("f_blocks", &self.f_blocks) + .field("f_bfree", &self.f_bfree) + .field("f_bavail", &self.f_bavail) + .field("f_files", &self.f_files) + .field("f_ffree", &self.f_ffree) + .field("f_fsid", &self.f_fsid) + .field("f_owner", &self.f_owner) + .field("f_type", &self.f_type) + .field("f_flags", &self.f_flags) + .field("f_syncwrites", &self.f_syncwrites) + .field("f_asyncwrites", &self.f_asyncwrites) + // FIXME: .field("f_mntonname", &self.f_mntonname) + .field("f_syncreads", &self.f_syncreads) + .field("f_asyncreads", &self.f_asyncreads) + // FIXME: .field("f_mntfromname", &self.f_mntfromname) + .finish() + } + } + impl ::hash::Hash for statfs { + fn hash(&self, state: &mut H) { + self.f_bsize.hash(state); + self.f_iosize.hash(state); + self.f_blocks.hash(state); + self.f_bfree.hash(state); + self.f_bavail.hash(state); + self.f_files.hash(state); + self.f_ffree.hash(state); + self.f_fsid.hash(state); + self.f_owner.hash(state); + self.f_type.hash(state); + self.f_flags.hash(state); + self.f_syncwrites.hash(state); + self.f_asyncwrites.hash(state); + self.f_fstypename.hash(state); + self.f_mntonname.hash(state); + self.f_syncreads.hash(state); + self.f_asyncreads.hash(state); + self.f_mntfromname.hash(state); + } + } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_notify == other.sigev_notify + && self.sigev_signo == other.sigev_signo + && self.sigev_value == other.sigev_value + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_notify", &self.sigev_notify) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_value", &self.sigev_value) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_notify.hash(state); + self.sigev_signo.hash(state); + self.sigev_value.hash(state); + } + } + impl PartialEq for mcontext_t { + fn eq(&self, other: &mcontext_t) -> bool { + self.mc_onstack == other.mc_onstack && + self.mc_rdi == other.mc_rdi && + self.mc_rsi == other.mc_rsi && + self.mc_rdx == other.mc_rdx && + self.mc_rcx == other.mc_rcx && + self.mc_r8 == other.mc_r8 && + self.mc_r9 == other.mc_r9 && + self.mc_rax == other.mc_rax && + self.mc_rbx == other.mc_rbx && + self.mc_rbp == other.mc_rbp && + self.mc_r10 == other.mc_r10 && + self.mc_r11 == other.mc_r11 && + self.mc_r12 == other.mc_r12 && + self.mc_r13 == other.mc_r13 && + self.mc_r14 == other.mc_r14 && + self.mc_r15 == other.mc_r15 && + self.mc_xflags == other.mc_xflags && + self.mc_trapno == other.mc_trapno && + self.mc_addr == other.mc_addr && + self.mc_flags == other.mc_flags && + self.mc_err == other.mc_err && + self.mc_rip == other.mc_rip && + self.mc_cs == other.mc_cs && + self.mc_rflags == other.mc_rflags && + self.mc_rsp == other.mc_rsp && + self.mc_ss == other.mc_ss && + self.mc_len == other.mc_len && + self.mc_fpformat == other.mc_fpformat && + self.mc_ownedfp == other.mc_ownedfp && + self.mc_fpregs.iter().zip(other.mc_fpregs.iter()). + all(|(a, b)| a == b) + } + } + impl Eq for mcontext_t {} + impl ::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mcontext_t") + .field("mc_onstack", &self.mc_onstack) + .field("mc_rdi", &self.mc_rdi) + .field("mc_rsi", &self.mc_rsi) + .field("mc_rdx", &self.mc_rdx) + .field("mc_rcx", &self.mc_rcx) + .field("mc_r8", &self.mc_r8) + .field("mc_r9", &self.mc_r9) + .field("mc_rax", &self.mc_rax) + .field("mc_rbx", &self.mc_rbx) + .field("mc_rbp", &self.mc_rbp) + .field("mc_r10", &self.mc_r10) + .field("mc_r11", &self.mc_r11) + .field("mc_r12", &self.mc_r12) + .field("mc_r13", &self.mc_r13) + .field("mc_r14", &self.mc_r14) + .field("mc_r15", &self.mc_r15) + .field("mc_xflags", &self.mc_xflags) + .field("mc_trapno", &self.mc_trapno) + .field("mc_addr", &self.mc_addr) + .field("mc_flags", &self.mc_flags) + .field("mc_err", &self.mc_err) + .field("mc_rip", &self.mc_rip) + .field("mc_cs", &self.mc_cs) + .field("mc_rflags", &self.mc_rflags) + .field("mc_rsp", &self.mc_rsp) + .field("mc_ss", &self.mc_ss) + .field("mc_len", &self.mc_len) + .field("mc_fpformat", &self.mc_fpformat) + .field("mc_ownedfp", &self.mc_ownedfp) + .field("mc_fpregs", &self.mc_fpregs) + .finish() + } + } + impl ::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { + self.mc_onstack.hash(state); + self.mc_rdi.hash(state); + self.mc_rsi.hash(state); + self.mc_rdx.hash(state); + self.mc_rcx.hash(state); + self.mc_r8.hash(state); + self.mc_r9.hash(state); + self.mc_rax.hash(state); + self.mc_rbx.hash(state); + self.mc_rbp.hash(state); + self.mc_r10.hash(state); + self.mc_r11.hash(state); + self.mc_r10.hash(state); + self.mc_r11.hash(state); + self.mc_r12.hash(state); + self.mc_r13.hash(state); + self.mc_r14.hash(state); + self.mc_r15.hash(state); + self.mc_xflags.hash(state); + self.mc_trapno.hash(state); + self.mc_addr.hash(state); + self.mc_flags.hash(state); + self.mc_err.hash(state); + self.mc_rip.hash(state); + self.mc_cs.hash(state); + self.mc_rflags.hash(state); + self.mc_rsp.hash(state); + self.mc_ss.hash(state); + self.mc_len.hash(state); + self.mc_fpformat.hash(state); + self.mc_ownedfp.hash(state); + self.mc_fpregs.hash(state); + } + } + impl PartialEq for ucontext_t { + fn eq(&self, other: &ucontext_t) -> bool { + self.uc_sigmask == other.uc_sigmask + && self.uc_mcontext == other.uc_mcontext + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_cofunc == other.uc_cofunc + && self.uc_arg == other.uc_arg + } + } + impl Eq for ucontext_t {} + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_sigmask", &self.uc_sigmask) + .field("uc_mcontext", &self.uc_mcontext) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_cofunc", &self.uc_cofunc) + .field("uc_arg", &self.uc_arg) + .finish() + } + } + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_sigmask.hash(state); + self.uc_mcontext.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_cofunc.hash(state); + self.uc_arg.hash(state); + } + } + } +} + +pub const RAND_MAX: ::c_int = 0x7fff_ffff; +pub const PTHREAD_STACK_MIN: ::size_t = 16384; +pub const SIGSTKSZ: ::size_t = 40960; +pub const SIGCKPT: ::c_int = 33; +pub const SIGCKPTEXIT: ::c_int = 34; +pub const CKPT_FREEZE: ::c_int = 0x1; +pub const CKPT_THAW: ::c_int = 0x2; +pub const MADV_INVAL: ::c_int = 10; +pub const MADV_SETMAP: ::c_int = 11; +pub const O_CLOEXEC: ::c_int = 0x00020000; +pub const O_DIRECTORY: ::c_int = 0x08000000; +pub const F_GETLK: ::c_int = 7; +pub const F_SETLK: ::c_int = 8; +pub const F_SETLKW: ::c_int = 9; +pub const F_GETPATH: ::c_int = 19; +pub const ENOMEDIUM: ::c_int = 93; +pub const ENOTRECOVERABLE: ::c_int = 94; +pub const EOWNERDEAD: ::c_int = 95; +pub const EASYNC: ::c_int = 99; +pub const ELAST: ::c_int = 99; +pub const RLIMIT_POSIXLOCKS: ::c_int = 11; +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] +pub const RLIM_NLIMITS: ::rlim_t = 12; + +pub const Q_GETQUOTA: ::c_int = 0x300; +pub const Q_SETQUOTA: ::c_int = 0x400; + +pub const CTL_UNSPEC: ::c_int = 0; +pub const CTL_KERN: ::c_int = 1; +pub const CTL_VM: ::c_int = 2; +pub const CTL_VFS: ::c_int = 3; +pub const CTL_NET: ::c_int = 4; +pub const CTL_DEBUG: ::c_int = 5; +pub const CTL_HW: ::c_int = 6; +pub const CTL_MACHDEP: ::c_int = 7; +pub const CTL_USER: ::c_int = 8; +pub const CTL_P1003_1B: ::c_int = 9; +pub const CTL_LWKT: ::c_int = 10; +pub const CTL_MAXID: ::c_int = 11; +pub const KERN_OSTYPE: ::c_int = 1; +pub const KERN_OSRELEASE: ::c_int = 2; +pub const KERN_OSREV: ::c_int = 3; +pub const KERN_VERSION: ::c_int = 4; +pub const KERN_MAXVNODES: ::c_int = 5; +pub const KERN_MAXPROC: ::c_int = 6; +pub const KERN_MAXFILES: ::c_int = 7; +pub const KERN_ARGMAX: ::c_int = 8; +pub const KERN_SECURELVL: ::c_int = 9; +pub const KERN_HOSTNAME: ::c_int = 10; +pub const KERN_HOSTID: ::c_int = 11; +pub const KERN_CLOCKRATE: ::c_int = 12; +pub const KERN_VNODE: ::c_int = 13; +pub const KERN_PROC: ::c_int = 14; +pub const KERN_FILE: ::c_int = 15; +pub const KERN_PROF: ::c_int = 16; +pub const KERN_POSIX1: ::c_int = 17; +pub const KERN_NGROUPS: ::c_int = 18; +pub const KERN_JOB_CONTROL: ::c_int = 19; +pub const KERN_SAVED_IDS: ::c_int = 20; +pub const KERN_BOOTTIME: ::c_int = 21; +pub const KERN_NISDOMAINNAME: ::c_int = 22; +pub const KERN_UPDATEINTERVAL: ::c_int = 23; +pub const KERN_OSRELDATE: ::c_int = 24; +pub const KERN_NTP_PLL: ::c_int = 25; +pub const KERN_BOOTFILE: ::c_int = 26; +pub const KERN_MAXFILESPERPROC: ::c_int = 27; +pub const KERN_MAXPROCPERUID: ::c_int = 28; +pub const KERN_DUMPDEV: ::c_int = 29; +pub const KERN_IPC: ::c_int = 30; +pub const KERN_DUMMY: ::c_int = 31; +pub const KERN_PS_STRINGS: ::c_int = 32; +pub const KERN_USRSTACK: ::c_int = 33; +pub const KERN_LOGSIGEXIT: ::c_int = 34; +pub const KERN_IOV_MAX: ::c_int = 35; +pub const KERN_MAXPOSIXLOCKSPERUID: ::c_int = 36; +pub const KERN_MAXID: ::c_int = 37; +pub const KERN_PROC_ALL: ::c_int = 0; +pub const KERN_PROC_PID: ::c_int = 1; +pub const KERN_PROC_PGRP: ::c_int = 2; +pub const KERN_PROC_SESSION: ::c_int = 3; +pub const KERN_PROC_TTY: ::c_int = 4; +pub const KERN_PROC_UID: ::c_int = 5; +pub const KERN_PROC_RUID: ::c_int = 6; +pub const KERN_PROC_ARGS: ::c_int = 7; +pub const KERN_PROC_CWD: ::c_int = 8; +pub const KERN_PROC_PATHNAME: ::c_int = 9; +pub const KERN_PROC_FLAGMASK: ::c_int = 0x10; +pub const KERN_PROC_FLAG_LWP: ::c_int = 0x10; +pub const KIPC_MAXSOCKBUF: ::c_int = 1; +pub const KIPC_SOCKBUF_WASTE: ::c_int = 2; +pub const KIPC_SOMAXCONN: ::c_int = 3; +pub const KIPC_MAX_LINKHDR: ::c_int = 4; +pub const KIPC_MAX_PROTOHDR: ::c_int = 5; +pub const KIPC_MAX_HDR: ::c_int = 6; +pub const KIPC_MAX_DATALEN: ::c_int = 7; +pub const KIPC_MBSTAT: ::c_int = 8; +pub const KIPC_NMBCLUSTERS: ::c_int = 9; +pub const HW_MACHINE: ::c_int = 1; +pub const HW_MODEL: ::c_int = 2; +pub const HW_NCPU: ::c_int = 3; +pub const HW_BYTEORDER: ::c_int = 4; +pub const HW_PHYSMEM: ::c_int = 5; +pub const HW_USERMEM: ::c_int = 6; +pub const HW_PAGESIZE: ::c_int = 7; +pub const HW_DISKNAMES: ::c_int = 8; +pub const HW_DISKSTATS: ::c_int = 9; +pub const HW_FLOATINGPT: ::c_int = 10; +pub const HW_MACHINE_ARCH: ::c_int = 11; +pub const HW_MACHINE_PLATFORM: ::c_int = 12; +pub const HW_SENSORS: ::c_int = 13; +pub const HW_MAXID: ::c_int = 14; +pub const USER_CS_PATH: ::c_int = 1; +pub const USER_BC_BASE_MAX: ::c_int = 2; +pub const USER_BC_DIM_MAX: ::c_int = 3; +pub const USER_BC_SCALE_MAX: ::c_int = 4; +pub const USER_BC_STRING_MAX: ::c_int = 5; +pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6; +pub const USER_EXPR_NEST_MAX: ::c_int = 7; +pub const USER_LINE_MAX: ::c_int = 8; +pub const USER_RE_DUP_MAX: ::c_int = 9; +pub const USER_POSIX2_VERSION: ::c_int = 10; +pub const USER_POSIX2_C_BIND: ::c_int = 11; +pub const USER_POSIX2_C_DEV: ::c_int = 12; +pub const USER_POSIX2_CHAR_TERM: ::c_int = 13; +pub const USER_POSIX2_FORT_DEV: ::c_int = 14; +pub const USER_POSIX2_FORT_RUN: ::c_int = 15; +pub const USER_POSIX2_LOCALEDEF: ::c_int = 16; +pub const USER_POSIX2_SW_DEV: ::c_int = 17; +pub const USER_POSIX2_UPE: ::c_int = 18; +pub const USER_STREAM_MAX: ::c_int = 19; +pub const USER_TZNAME_MAX: ::c_int = 20; +pub const USER_MAXID: ::c_int = 21; +pub const CTL_P1003_1B_ASYNCHRONOUS_IO: ::c_int = 1; +pub const CTL_P1003_1B_MAPPED_FILES: ::c_int = 2; +pub const CTL_P1003_1B_MEMLOCK: ::c_int = 3; +pub const CTL_P1003_1B_MEMLOCK_RANGE: ::c_int = 4; +pub const CTL_P1003_1B_MEMORY_PROTECTION: ::c_int = 5; +pub const CTL_P1003_1B_MESSAGE_PASSING: ::c_int = 6; +pub const CTL_P1003_1B_PRIORITIZED_IO: ::c_int = 7; +pub const CTL_P1003_1B_PRIORITY_SCHEDULING: ::c_int = 8; +pub const CTL_P1003_1B_REALTIME_SIGNALS: ::c_int = 9; +pub const CTL_P1003_1B_SEMAPHORES: ::c_int = 10; +pub const CTL_P1003_1B_FSYNC: ::c_int = 11; +pub const CTL_P1003_1B_SHARED_MEMORY_OBJECTS: ::c_int = 12; +pub const CTL_P1003_1B_SYNCHRONIZED_IO: ::c_int = 13; +pub const CTL_P1003_1B_TIMERS: ::c_int = 14; +pub const CTL_P1003_1B_AIO_LISTIO_MAX: ::c_int = 15; +pub const CTL_P1003_1B_AIO_MAX: ::c_int = 16; +pub const CTL_P1003_1B_AIO_PRIO_DELTA_MAX: ::c_int = 17; +pub const CTL_P1003_1B_DELAYTIMER_MAX: ::c_int = 18; +pub const CTL_P1003_1B_UNUSED1: ::c_int = 19; +pub const CTL_P1003_1B_PAGESIZE: ::c_int = 20; +pub const CTL_P1003_1B_RTSIG_MAX: ::c_int = 21; +pub const CTL_P1003_1B_SEM_NSEMS_MAX: ::c_int = 22; +pub const CTL_P1003_1B_SEM_VALUE_MAX: ::c_int = 23; +pub const CTL_P1003_1B_SIGQUEUE_MAX: ::c_int = 24; +pub const CTL_P1003_1B_TIMER_MAX: ::c_int = 25; +pub const CTL_P1003_1B_MAXID: ::c_int = 26; + +pub const CPUCTL_RSMSR: ::c_int = 0xc0106301; +pub const CPUCTL_WRMSR: ::c_int = 0xc0106302; +pub const CPUCTL_CPUID: ::c_int = 0xc0106303; +pub const CPUCTL_UPDATE: ::c_int = 0xc0106304; +pub const CPUCTL_MSRSBIT: ::c_int = 0xc0106305; +pub const CPUCTL_MSRCBIT: ::c_int = 0xc0106306; +pub const CPUCTL_CPUID_COUNT: ::c_int = 0xc0106307; + +pub const CPU_SETSIZE: ::size_t = ::mem::size_of::<::cpumask_t>() * 8; + +pub const EVFILT_READ: i16 = -1; +pub const EVFILT_WRITE: i16 = -2; +pub const EVFILT_AIO: i16 = -3; +pub const EVFILT_VNODE: i16 = -4; +pub const EVFILT_PROC: i16 = -5; +pub const EVFILT_SIGNAL: i16 = -6; +pub const EVFILT_TIMER: i16 = -7; +pub const EVFILT_EXCEPT: i16 = -8; +pub const EVFILT_USER: i16 = -9; +pub const EVFILT_FS: i16 = -10; + +pub const EV_ADD: u16 = 0x1; +pub const EV_DELETE: u16 = 0x2; +pub const EV_ENABLE: u16 = 0x4; +pub const EV_DISABLE: u16 = 0x8; +pub const EV_ONESHOT: u16 = 0x10; +pub const EV_CLEAR: u16 = 0x20; +pub const EV_RECEIPT: u16 = 0x40; +pub const EV_DISPATCH: u16 = 0x80; +pub const EV_NODATA: u16 = 0x1000; +pub const EV_FLAG1: u16 = 0x2000; +pub const EV_ERROR: u16 = 0x4000; +pub const EV_EOF: u16 = 0x8000; +pub const EV_HUP: u16 = 0x8000; +pub const EV_SYSFLAGS: u16 = 0xf000; + +pub const FIODNAME: ::c_ulong = 0x80106678; + +pub const NOTE_TRIGGER: u32 = 0x01000000; +pub const NOTE_FFNOP: u32 = 0x00000000; +pub const NOTE_FFAND: u32 = 0x40000000; +pub const NOTE_FFOR: u32 = 0x80000000; +pub const NOTE_FFCOPY: u32 = 0xc0000000; +pub const NOTE_FFCTRLMASK: u32 = 0xc0000000; +pub const NOTE_FFLAGSMASK: u32 = 0x00ffffff; +pub const NOTE_LOWAT: u32 = 0x00000001; +pub const NOTE_OOB: u32 = 0x00000002; +pub const NOTE_DELETE: u32 = 0x00000001; +pub const NOTE_WRITE: u32 = 0x00000002; +pub const NOTE_EXTEND: u32 = 0x00000004; +pub const NOTE_ATTRIB: u32 = 0x00000008; +pub const NOTE_LINK: u32 = 0x00000010; +pub const NOTE_RENAME: u32 = 0x00000020; +pub const NOTE_REVOKE: u32 = 0x00000040; +pub const NOTE_EXIT: u32 = 0x80000000; +pub const NOTE_FORK: u32 = 0x40000000; +pub const NOTE_EXEC: u32 = 0x20000000; +pub const NOTE_PDATAMASK: u32 = 0x000fffff; +pub const NOTE_PCTRLMASK: u32 = 0xf0000000; +pub const NOTE_TRACK: u32 = 0x00000001; +pub const NOTE_TRACKERR: u32 = 0x00000002; +pub const NOTE_CHILD: u32 = 0x00000004; + +pub const SO_SNDSPACE: ::c_int = 0x100a; +pub const SO_CPUHINT: ::c_int = 0x1030; +pub const SO_PASSCRED: ::c_int = 0x4000; + +pub const PT_FIRSTMACH: ::c_int = 32; + +pub const PROC_REAP_ACQUIRE: ::c_int = 0x0001; +pub const PROC_REAP_RELEASE: ::c_int = 0x0002; +pub const PROC_REAP_STATUS: ::c_int = 0x0003; +pub const PROC_PDEATHSIG_CTL: ::c_int = 0x0004; +pub const PROC_PDEATHSIG_STATUS: ::c_int = 0x0005; + +// https://github.com/DragonFlyBSD/DragonFlyBSD/blob/HEAD/sys/net/if.h#L101 +pub const IFF_UP: ::c_int = 0x1; // interface is up +pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid +pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging +pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net +pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link +pub const IFF_SMART: ::c_int = 0x20; // interface manages own routes +pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated +pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol +pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets +pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets +pub const IFF_OACTIVE_COMPAT: ::c_int = 0x400; // was transmission in progress +pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions +pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit +pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit +pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit +pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection +pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast + // was interface is in polling mode +pub const IFF_POLLING_COMPAT: ::c_int = 0x10000; +pub const IFF_PPROMISC: ::c_int = 0x20000; // user-requested promisc mode +pub const IFF_MONITOR: ::c_int = 0x40000; // user-requested monitor mode +pub const IFF_STATICARP: ::c_int = 0x80000; // static ARP +pub const IFF_NPOLLING: ::c_int = 0x100000; // interface is in polling mode +pub const IFF_IDIRECT: ::c_int = 0x200000; // direct input + +// +// sys/netinet/in.h +// Protocols (RFC 1700) +// NOTE: These are in addition to the constants defined in src/unix/mod.rs + +// IPPROTO_IP defined in src/unix/mod.rs +/// IP6 hop-by-hop options +pub const IPPROTO_HOPOPTS: ::c_int = 0; +// IPPROTO_ICMP defined in src/unix/mod.rs +/// group mgmt protocol +pub const IPPROTO_IGMP: ::c_int = 2; +/// gateway^2 (deprecated) +pub const IPPROTO_GGP: ::c_int = 3; +/// for compatibility +pub const IPPROTO_IPIP: ::c_int = 4; +// IPPROTO_TCP defined in src/unix/mod.rs +/// Stream protocol II. +pub const IPPROTO_ST: ::c_int = 7; +/// exterior gateway protocol +pub const IPPROTO_EGP: ::c_int = 8; +/// private interior gateway +pub const IPPROTO_PIGP: ::c_int = 9; +/// BBN RCC Monitoring +pub const IPPROTO_RCCMON: ::c_int = 10; +/// network voice protocol +pub const IPPROTO_NVPII: ::c_int = 11; +/// pup +pub const IPPROTO_PUP: ::c_int = 12; +/// Argus +pub const IPPROTO_ARGUS: ::c_int = 13; +/// EMCON +pub const IPPROTO_EMCON: ::c_int = 14; +/// Cross Net Debugger +pub const IPPROTO_XNET: ::c_int = 15; +/// Chaos +pub const IPPROTO_CHAOS: ::c_int = 16; +// IPPROTO_UDP defined in src/unix/mod.rs +/// Multiplexing +pub const IPPROTO_MUX: ::c_int = 18; +/// DCN Measurement Subsystems +pub const IPPROTO_MEAS: ::c_int = 19; +/// Host Monitoring +pub const IPPROTO_HMP: ::c_int = 20; +/// Packet Radio Measurement +pub const IPPROTO_PRM: ::c_int = 21; +/// xns idp +pub const IPPROTO_IDP: ::c_int = 22; +/// Trunk-1 +pub const IPPROTO_TRUNK1: ::c_int = 23; +/// Trunk-2 +pub const IPPROTO_TRUNK2: ::c_int = 24; +/// Leaf-1 +pub const IPPROTO_LEAF1: ::c_int = 25; +/// Leaf-2 +pub const IPPROTO_LEAF2: ::c_int = 26; +/// Reliable Data +pub const IPPROTO_RDP: ::c_int = 27; +/// Reliable Transaction +pub const IPPROTO_IRTP: ::c_int = 28; +/// tp-4 w/ class negotiation +pub const IPPROTO_TP: ::c_int = 29; +/// Bulk Data Transfer +pub const IPPROTO_BLT: ::c_int = 30; +/// Network Services +pub const IPPROTO_NSP: ::c_int = 31; +/// Merit Internodal +pub const IPPROTO_INP: ::c_int = 32; +/// Sequential Exchange +pub const IPPROTO_SEP: ::c_int = 33; +/// Third Party Connect +pub const IPPROTO_3PC: ::c_int = 34; +/// InterDomain Policy Routing +pub const IPPROTO_IDPR: ::c_int = 35; +/// XTP +pub const IPPROTO_XTP: ::c_int = 36; +/// Datagram Delivery +pub const IPPROTO_DDP: ::c_int = 37; +/// Control Message Transport +pub const IPPROTO_CMTP: ::c_int = 38; +/// TP++ Transport +pub const IPPROTO_TPXX: ::c_int = 39; +/// IL transport protocol +pub const IPPROTO_IL: ::c_int = 40; +// IPPROTO_IPV6 defined in src/unix/mod.rs +/// Source Demand Routing +pub const IPPROTO_SDRP: ::c_int = 42; +/// IP6 routing header +pub const IPPROTO_ROUTING: ::c_int = 43; +/// IP6 fragmentation header +pub const IPPROTO_FRAGMENT: ::c_int = 44; +/// InterDomain Routing +pub const IPPROTO_IDRP: ::c_int = 45; +/// resource reservation +pub const IPPROTO_RSVP: ::c_int = 46; +/// General Routing Encap. +pub const IPPROTO_GRE: ::c_int = 47; +/// Mobile Host Routing +pub const IPPROTO_MHRP: ::c_int = 48; +/// BHA +pub const IPPROTO_BHA: ::c_int = 49; +/// IP6 Encap Sec. Payload +pub const IPPROTO_ESP: ::c_int = 50; +/// IP6 Auth Header +pub const IPPROTO_AH: ::c_int = 51; +/// Integ. Net Layer Security +pub const IPPROTO_INLSP: ::c_int = 52; +/// IP with encryption +pub const IPPROTO_SWIPE: ::c_int = 53; +/// Next Hop Resolution +pub const IPPROTO_NHRP: ::c_int = 54; +/// IP Mobility +pub const IPPROTO_MOBILE: ::c_int = 55; +/// Transport Layer Security +pub const IPPROTO_TLSP: ::c_int = 56; +/// SKIP +pub const IPPROTO_SKIP: ::c_int = 57; +// IPPROTO_ICMPV6 defined in src/unix/mod.rs +/// IP6 no next header +pub const IPPROTO_NONE: ::c_int = 59; +/// IP6 destination option +pub const IPPROTO_DSTOPTS: ::c_int = 60; +/// any host internal protocol +pub const IPPROTO_AHIP: ::c_int = 61; +/// CFTP +pub const IPPROTO_CFTP: ::c_int = 62; +/// "hello" routing protocol +pub const IPPROTO_HELLO: ::c_int = 63; +/// SATNET/Backroom EXPAK +pub const IPPROTO_SATEXPAK: ::c_int = 64; +/// Kryptolan +pub const IPPROTO_KRYPTOLAN: ::c_int = 65; +/// Remote Virtual Disk +pub const IPPROTO_RVD: ::c_int = 66; +/// Pluribus Packet Core +pub const IPPROTO_IPPC: ::c_int = 67; +/// Any distributed FS +pub const IPPROTO_ADFS: ::c_int = 68; +/// Satnet Monitoring +pub const IPPROTO_SATMON: ::c_int = 69; +/// VISA Protocol +pub const IPPROTO_VISA: ::c_int = 70; +/// Packet Core Utility +pub const IPPROTO_IPCV: ::c_int = 71; +/// Comp. Prot. Net. Executive +pub const IPPROTO_CPNX: ::c_int = 72; +/// Comp. Prot. HeartBeat +pub const IPPROTO_CPHB: ::c_int = 73; +/// Wang Span Network +pub const IPPROTO_WSN: ::c_int = 74; +/// Packet Video Protocol +pub const IPPROTO_PVP: ::c_int = 75; +/// BackRoom SATNET Monitoring +pub const IPPROTO_BRSATMON: ::c_int = 76; +/// Sun net disk proto (temp.) +pub const IPPROTO_ND: ::c_int = 77; +/// WIDEBAND Monitoring +pub const IPPROTO_WBMON: ::c_int = 78; +/// WIDEBAND EXPAK +pub const IPPROTO_WBEXPAK: ::c_int = 79; +/// ISO cnlp +pub const IPPROTO_EON: ::c_int = 80; +/// VMTP +pub const IPPROTO_VMTP: ::c_int = 81; +/// Secure VMTP +pub const IPPROTO_SVMTP: ::c_int = 82; +/// Banyon VINES +pub const IPPROTO_VINES: ::c_int = 83; +/// TTP +pub const IPPROTO_TTP: ::c_int = 84; +/// NSFNET-IGP +pub const IPPROTO_IGP: ::c_int = 85; +/// dissimilar gateway prot. +pub const IPPROTO_DGP: ::c_int = 86; +/// TCF +pub const IPPROTO_TCF: ::c_int = 87; +/// Cisco/GXS IGRP +pub const IPPROTO_IGRP: ::c_int = 88; +/// OSPFIGP +pub const IPPROTO_OSPFIGP: ::c_int = 89; +/// Strite RPC protocol +pub const IPPROTO_SRPC: ::c_int = 90; +/// Locus Address Resoloution +pub const IPPROTO_LARP: ::c_int = 91; +/// Multicast Transport +pub const IPPROTO_MTP: ::c_int = 92; +/// AX.25 Frames +pub const IPPROTO_AX25: ::c_int = 93; +/// IP encapsulated in IP +pub const IPPROTO_IPEIP: ::c_int = 94; +/// Mobile Int.ing control +pub const IPPROTO_MICP: ::c_int = 95; +/// Semaphore Comm. security +pub const IPPROTO_SCCSP: ::c_int = 96; +/// Ethernet IP encapsulation +pub const IPPROTO_ETHERIP: ::c_int = 97; +/// encapsulation header +pub const IPPROTO_ENCAP: ::c_int = 98; +/// any private encr. scheme +pub const IPPROTO_APES: ::c_int = 99; +/// GMTP +pub const IPPROTO_GMTP: ::c_int = 100; +/// payload compression (IPComp) +pub const IPPROTO_IPCOMP: ::c_int = 108; + +/* 101-254: Partly Unassigned */ +/// Protocol Independent Mcast +pub const IPPROTO_PIM: ::c_int = 103; +/// CARP +pub const IPPROTO_CARP: ::c_int = 112; +/// PGM +pub const IPPROTO_PGM: ::c_int = 113; +/// PFSYNC +pub const IPPROTO_PFSYNC: ::c_int = 240; + +/* 255: Reserved */ +/* BSD Private, local use, namespace incursion, no longer used */ +/// divert pseudo-protocol +pub const IPPROTO_DIVERT: ::c_int = 254; +pub const IPPROTO_MAX: ::c_int = 256; +/// last return value of *_input(), meaning "all job for this pkt is done". +pub const IPPROTO_DONE: ::c_int = 257; + +/// Used by RSS: the layer3 protocol is unknown +pub const IPPROTO_UNKNOWN: ::c_int = 258; + +// sys/netinet/tcp.h +pub const TCP_SIGNATURE_ENABLE: ::c_int = 16; +pub const TCP_KEEPINIT: ::c_int = 32; +pub const TCP_FASTKEEP: ::c_int = 128; + +pub const AF_BLUETOOTH: ::c_int = 33; +pub const AF_MPLS: ::c_int = 34; +pub const AF_IEEE80211: ::c_int = 35; + +pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; + +pub const NET_RT_DUMP: ::c_int = 1; +pub const NET_RT_FLAGS: ::c_int = 2; +pub const NET_RT_IFLIST: ::c_int = 3; +pub const NET_RT_MAXID: ::c_int = 4; + +pub const SOMAXOPT_SIZE: ::c_int = 65536; + +pub const MSG_UNUSED09: ::c_int = 0x00000200; +pub const MSG_NOSIGNAL: ::c_int = 0x00000400; +pub const MSG_SYNC: ::c_int = 0x00000800; +pub const MSG_CMSG_CLOEXEC: ::c_int = 0x00001000; +pub const MSG_FBLOCKING: ::c_int = 0x00010000; +pub const MSG_FNONBLOCKING: ::c_int = 0x00020000; +pub const MSG_FMASK: ::c_int = 0xFFFF0000; + +// sys/mount.h +pub const MNT_NODEV: ::c_int = 0x00000010; +pub const MNT_AUTOMOUNTED: ::c_int = 0x00000020; +pub const MNT_TRIM: ::c_int = 0x01000000; +pub const MNT_LOCAL: ::c_int = 0x00001000; +pub const MNT_QUOTA: ::c_int = 0x00002000; +pub const MNT_ROOTFS: ::c_int = 0x00004000; +pub const MNT_USER: ::c_int = 0x00008000; +pub const MNT_IGNORE: ::c_int = 0x00800000; + +// utmpx entry types +pub const EMPTY: ::c_short = 0; +pub const RUN_LVL: ::c_short = 1; +pub const BOOT_TIME: ::c_short = 2; +pub const OLD_TIME: ::c_short = 3; +pub const NEW_TIME: ::c_short = 4; +pub const INIT_PROCESS: ::c_short = 5; +pub const LOGIN_PROCESS: ::c_short = 6; +pub const USER_PROCESS: ::c_short = 7; +pub const DEAD_PROCESS: ::c_short = 8; +pub const ACCOUNTING: ::c_short = 9; +pub const SIGNATURE: ::c_short = 10; +pub const DOWNTIME: ::c_short = 11; +// utmpx database types +pub const UTX_DB_UTMPX: ::c_uint = 0; +pub const UTX_DB_WTMPX: ::c_uint = 1; +pub const UTX_DB_LASTLOG: ::c_uint = 2; +pub const _UTX_LINESIZE: usize = 32; +pub const _UTX_USERSIZE: usize = 32; +pub const _UTX_IDSIZE: usize = 4; +pub const _UTX_HOSTSIZE: usize = 256; + +pub const LC_COLLATE_MASK: ::c_int = 1 << 0; +pub const LC_CTYPE_MASK: ::c_int = 1 << 1; +pub const LC_MONETARY_MASK: ::c_int = 1 << 2; +pub const LC_NUMERIC_MASK: ::c_int = 1 << 3; +pub const LC_TIME_MASK: ::c_int = 1 << 4; +pub const LC_MESSAGES_MASK: ::c_int = 1 << 5; +pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK + | LC_CTYPE_MASK + | LC_MESSAGES_MASK + | LC_MONETARY_MASK + | LC_NUMERIC_MASK + | LC_TIME_MASK; + +pub const TIOCSIG: ::c_ulong = 0x2000745f; +pub const BTUARTDISC: ::c_int = 0x7; +pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40107458; +pub const TIOCISPTMASTER: ::c_ulong = 0x20007455; +pub const TIOCMODG: ::c_ulong = 0x40047403; +pub const TIOCMODS: ::c_ulong = 0x80047404; +pub const TIOCREMOTE: ::c_ulong = 0x80047469; + +// Constants used by "at" family of system calls. +pub const AT_FDCWD: ::c_int = 0xFFFAFDCD; // invalid file descriptor +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 1; +pub const AT_REMOVEDIR: ::c_int = 2; +pub const AT_EACCESS: ::c_int = 4; +pub const AT_SYMLINK_FOLLOW: ::c_int = 8; + +pub const VCHECKPT: usize = 19; + +pub const _PC_2_SYMLINKS: ::c_int = 22; +pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 23; + +pub const _SC_V7_ILP32_OFF32: ::c_int = 122; +pub const _SC_V7_ILP32_OFFBIG: ::c_int = 123; +pub const _SC_V7_LP64_OFF64: ::c_int = 124; +pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 125; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 126; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 127; + +pub const WCONTINUED: ::c_int = 0x4; +pub const WSTOPPED: ::c_int = 0x2; +pub const WNOWAIT: ::c_int = 0x8; +pub const WEXITED: ::c_int = 0x10; +pub const WTRAPPED: ::c_int = 0x20; + +// Similar to FreeBSD, only the standardized ones are exposed. +// There are more. +pub const P_PID: idtype_t = 0; +pub const P_PGID: idtype_t = 2; +pub const P_ALL: idtype_t = 7; + +// Values for struct rtprio (type_ field) +pub const RTP_PRIO_REALTIME: ::c_ushort = 0; +pub const RTP_PRIO_NORMAL: ::c_ushort = 1; +pub const RTP_PRIO_IDLE: ::c_ushort = 2; +pub const RTP_PRIO_THREAD: ::c_ushort = 3; + +// Flags for chflags(2) +pub const UF_NOHISTORY: ::c_ulong = 0x00000040; +pub const UF_CACHE: ::c_ulong = 0x00000080; +pub const UF_XLINK: ::c_ulong = 0x00000100; +pub const SF_NOHISTORY: ::c_ulong = 0x00400000; +pub const SF_CACHE: ::c_ulong = 0x00800000; +pub const SF_XLINK: ::c_ulong = 0x01000000; + +// timespec constants +pub const UTIME_OMIT: c_long = -2; +pub const UTIME_NOW: c_long = -1; + +pub const MINCORE_SUPER: ::c_int = 0x20; + +// kinfo_proc constants +pub const MAXCOMLEN: usize = 16; +pub const MAXLOGNAME: usize = 33; +pub const NGROUPS: usize = 16; + +pub const RB_PAUSE: ::c_int = 0x40000; +pub const RB_VIDEO: ::c_int = 0x20000000; + +const_fn! { + {const} fn _CMSG_ALIGN(n: usize) -> usize { + (n + (::mem::size_of::<::c_long>() - 1)) & !(::mem::size_of::<::c_long>() - 1) + } +} + +f! { + pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { + (cmsg as *mut ::c_uchar) + .offset(_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + } + + pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { + (_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) + length as usize) + as ::c_uint + } + + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) + -> *mut ::cmsghdr + { + let next = cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize) + + _CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); + let max = (*mhdr).msg_control as usize + + (*mhdr).msg_controllen as usize; + if next <= max { + (cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize)) + as *mut ::cmsghdr + } else { + 0 as *mut ::cmsghdr + } + } + + pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + (_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) + + _CMSG_ALIGN(length as usize)) as ::c_uint + } + + pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { + for slot in cpuset.ary.iter_mut() { + *slot = 0; + } + } + + pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let (idx, offset) = ((cpu >> 6) & 3, cpu & 63); + cpuset.ary[idx] |= 1 << offset; + () + } + + pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let (idx, offset) = ((cpu >> 6) & 3, cpu & 63); + cpuset.ary[idx] &= !(1 << offset); + () + } + + pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { + let (idx, offset) = ((cpu >> 6) & 3, cpu & 63); + 0 != cpuset.ary[idx] & (1 << offset) + } + + pub fn major(dev: ::dev_t) -> ::c_int { + ((dev >> 8) & 0xff) as ::c_int + } + + pub fn minor(dev: ::dev_t) -> ::c_int { + (dev & 0xffff00ff) as ::c_int + } +} + +safe_f! { + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + (status & 0o177) != 0o177 && (status & 0o177) != 0 + } + + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + let mut dev = 0; + dev |= major << 8; + dev |= minor; + dev + } +} + +extern "C" { + pub fn __errno_location() -> *mut ::c_int; + pub fn setgrent(); + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + + pub fn setutxdb(_type: ::c_uint, file: *mut ::c_char) -> ::c_int; + + pub fn aio_waitcomplete(iocbp: *mut *mut aiocb, timeout: *mut ::timespec) -> ::c_int; + + pub fn devname_r( + dev: ::dev_t, + mode: ::mode_t, + buf: *mut ::c_char, + len: ::size_t, + ) -> *mut ::c_char; + + pub fn waitid( + idtype: idtype_t, + id: ::id_t, + infop: *mut ::siginfo_t, + options: ::c_int, + ) -> ::c_int; + + pub fn freelocale(loc: ::locale_t); + + pub fn lwp_rtprio( + function: ::c_int, + pid: ::pid_t, + lwpid: lwpid_t, + rtp: *mut super::rtprio, + ) -> ::c_int; + + pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; + pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; + pub fn uname(buf: *mut ::utsname) -> ::c_int; + pub fn memmem( + haystack: *const ::c_void, + haystacklen: ::size_t, + needle: *const ::c_void, + needlelen: ::size_t, + ) -> *mut ::c_void; + pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> ::c_int; + + pub fn sched_getaffinity(pid: ::pid_t, cpusetsize: ::size_t, mask: *mut cpu_set_t) -> ::c_int; + pub fn sched_setaffinity(pid: ::pid_t, cpusetsize: ::size_t, mask: *const cpu_set_t) + -> ::c_int; + pub fn sched_getcpu() -> ::c_int; + pub fn setproctitle(fmt: *const ::c_char, ...); + + pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; + pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; + pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; + pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; + pub fn procctl(idtype: ::idtype_t, id: ::id_t, cmd: ::c_int, data: *mut ::c_void) -> ::c_int; + + pub fn updwtmpx(file: *const ::c_char, ut: *const utmpx) -> ::c_int; + pub fn getlastlogx(fname: *const ::c_char, uid: ::uid_t, ll: *mut lastlogx) -> *mut lastlogx; + pub fn updlastlogx(fname: *const ::c_char, uid: ::uid_t, ll: *mut lastlogx) -> ::c_int; + pub fn getutxuser(name: *const ::c_char) -> utmpx; + pub fn utmpxname(file: *const ::c_char) -> ::c_int; + + pub fn sys_checkpoint(tpe: ::c_int, fd: ::c_int, pid: ::pid_t, retval: ::c_int) -> ::c_int; + + pub fn umtx_sleep(ptr: *const ::c_int, value: ::c_int, timeout: ::c_int) -> ::c_int; + pub fn umtx_wakeup(ptr: *const ::c_int, count: ::c_int) -> ::c_int; + + pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; + pub fn basename(path: *mut ::c_char) -> *mut ::c_char; +} + +#[link(name = "rt")] +extern "C" { + pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; + pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; + pub fn aio_suspend( + aiocb_list: *const *const aiocb, + nitems: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; + pub fn lio_listio( + mode: ::c_int, + aiocb_list: *const *mut aiocb, + nitems: ::c_int, + sevp: *mut sigevent, + ) -> ::c_int; + + pub fn reallocf(ptr: *mut ::c_void, size: ::size_t) -> *mut ::c_void; + pub fn freezero(ptr: *mut ::c_void, size: ::size_t); +} + +#[link(name = "kvm")] +extern "C" { + pub fn kvm_vm_map_entry_first( + kvm: *mut ::kvm_t, + map: vm_map_t, + entry: vm_map_entry_t, + ) -> vm_map_entry_t; + pub fn kvm_vm_map_entry_next( + kvm: *mut ::kvm_t, + map: vm_map_entry_t, + entry: vm_map_entry_t, + ) -> vm_map_entry_t; +} + +cfg_if! { + if #[cfg(libc_thread_local)] { + mod errno; + pub use self::errno::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/aarch64.rs new file mode 100644 index 000000000..e8be8815c --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/aarch64.rs @@ -0,0 +1,146 @@ +pub type c_char = u8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type wchar_t = u32; +pub type time_t = i64; +pub type suseconds_t = i64; +pub type register_t = i64; + +s_no_extra_traits! { + pub struct gpregs { + pub gp_x: [::register_t; 30], + pub gp_lr: ::register_t, + pub gp_sp: ::register_t, + pub gp_elr: ::register_t, + pub gp_spsr: u32, + pub gp_pad: ::c_int, + } + + pub struct fpregs { + pub fp_q: u128, + pub fp_sr: u32, + pub fp_cr: u32, + pub fp_flags: ::c_int, + pub fp_pad: ::c_int, + } + + pub struct mcontext_t { + pub mc_gpregs: gpregs, + pub mc_fpregs: fpregs, + pub mc_flags: ::c_int, + pub mc_pad: ::c_int, + pub mc_spare: [u64; 8], + } +} + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for gpregs { + fn eq(&self, other: &gpregs) -> bool { + self.gp_x.iter().zip(other.gp_x.iter()).all(|(a, b)| a == b) && + self.gp_lr == other.gp_lr && + self.gp_sp == other.gp_sp && + self.gp_elr == other.gp_elr && + self.gp_spsr == other.gp_spsr && + self.gp_pad == other.gp_pad + } + } + impl Eq for gpregs {} + impl ::fmt::Debug for gpregs { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("gpregs") + .field("gp_x", &self.gp_x) + .field("gp_lr", &self.gp_lr) + .field("gp_sp", &self.gp_sp) + .field("gp_elr", &self.gp_elr) + .field("gp_spsr", &self.gp_spsr) + .field("gp_pad", &self.gp_pad) + .finish() + } + } + impl ::hash::Hash for gpregs { + fn hash(&self, state: &mut H) { + self.gp_x.hash(state); + self.gp_lr.hash(state); + self.gp_sp.hash(state); + self.gp_elr.hash(state); + self.gp_spsr.hash(state); + self.gp_pad.hash(state); + } + } + impl PartialEq for fpregs { + fn eq(&self, other: &fpregs) -> bool { + self.fp_q == other.fp_q && + self.fp_sr == other.fp_sr && + self.fp_cr == other.fp_cr && + self.fp_flags == other.fp_flags && + self.fp_pad == other.fp_pad + } + } + impl Eq for fpregs {} + impl ::fmt::Debug for fpregs { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("fpregs") + .field("fp_q", &self.fp_q) + .field("fp_sr", &self.fp_sr) + .field("fp_cr", &self.fp_cr) + .field("fp_flags", &self.fp_flags) + .field("fp_pad", &self.fp_pad) + .finish() + } + } + impl ::hash::Hash for fpregs { + fn hash(&self, state: &mut H) { + self.fp_q.hash(state); + self.fp_sr.hash(state); + self.fp_cr.hash(state); + self.fp_flags.hash(state); + self.fp_pad.hash(state); + } + } + impl PartialEq for mcontext_t { + fn eq(&self, other: &mcontext_t) -> bool { + self.mc_gpregs == other.mc_gpregs && + self.mc_fpregs == other.mc_fpregs && + self.mc_flags == other.mc_flags && + self.mc_pad == other.mc_pad && + self.mc_spare.iter().zip(other.mc_spare.iter()).all(|(a, b)| a == b) + } + } + impl Eq for mcontext_t {} + impl ::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mcontext_t") + .field("mc_gpregs", &self.mc_gpregs) + .field("mc_fpregs", &self.mc_fpregs) + .field("mc_flags", &self.mc_flags) + .field("mc_pad", &self.mc_pad) + .field("mc_spare", &self.mc_spare) + .finish() + } + } + impl ::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { + self.mc_gpregs.hash(state); + self.mc_fpregs.hash(state); + self.mc_flags.hash(state); + self.mc_pad.hash(state); + self.mc_spare.hash(state); + } + } + } +} + +pub const MAP_32BIT: ::c_int = 0x00080000; +pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/arm.rs new file mode 100644 index 000000000..300b3dd45 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/arm.rs @@ -0,0 +1,50 @@ +pub type c_char = u8; +pub type c_long = i32; +pub type c_ulong = u32; +pub type wchar_t = u32; +pub type time_t = i64; +pub type suseconds_t = i32; +pub type register_t = i32; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_atime_pad: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_mtime_pad: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_ctime_pad: ::c_long, + pub st_size: ::off_t, + pub st_blocks: ::blkcnt_t, + pub st_blksize: ::blksize_t, + pub st_flags: ::fflags_t, + pub st_gen: u32, + pub st_lspare: i32, + pub st_birthtime: ::time_t, + pub st_birthtime_nsec: ::c_long, + pub st_birthtime_pad: ::c_long, + } +} + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 4 - 1; + } +} +pub const MAP_32BIT: ::c_int = 0x00080000; +pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs new file mode 100644 index 000000000..f32128f77 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs @@ -0,0 +1,32 @@ +#[repr(C)] +#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] +pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_size: ::off_t, + pub st_blocks: ::blkcnt_t, + pub st_blksize: ::blksize_t, + pub st_flags: ::fflags_t, + pub st_gen: u32, + pub st_lspare: i32, + pub st_birthtime: ::time_t, + pub st_birthtime_nsec: ::c_long, +} + +impl ::Copy for ::stat {} +impl ::Clone for ::stat { + fn clone(&self) -> ::stat { + *self + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs new file mode 100644 index 000000000..de34069ea --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -0,0 +1,488 @@ +// APIs that were changed after FreeBSD 11 + +// The type of `nlink_t` changed from `u16` to `u64` in FreeBSD 12: +pub type nlink_t = u16; +// Type of `dev_t` changed from `u32` to `u64` in FreeBSD 12: +pub type dev_t = u32; +// Type of `ino_t` changed from `unsigned int` to `unsigned long` in FreeBSD 12: +pub type ino_t = u32; + +s! { + pub struct kevent { + pub ident: ::uintptr_t, + pub filter: ::c_short, + pub flags: ::c_ushort, + pub fflags: ::c_uint, + pub data: ::intptr_t, + pub udata: *mut ::c_void, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + // Type of shm_nattc changed from `int` to `shmatt_t` (aka `unsigned + // int`) in FreeBSD 12: + pub shm_nattch: ::c_int, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + } + + pub struct kinfo_proc { + /// Size of this structure. + pub ki_structsize: ::c_int, + /// Reserved: layout identifier. + pub ki_layout: ::c_int, + /// Address of command arguments. + pub ki_args: *mut ::pargs, + // This is normally "struct proc". + /// Address of proc. + pub ki_paddr: *mut ::c_void, + // This is normally "struct user". + /// Kernel virtual address of u-area. + pub ki_addr: *mut ::c_void, + // This is normally "struct vnode". + /// Pointer to trace file. + pub ki_tracep: *mut ::c_void, + // This is normally "struct vnode". + /// Pointer to executable file. + pub ki_textvp: *mut ::c_void, + // This is normally "struct filedesc". + /// Pointer to open file info. + pub ki_fd: *mut ::c_void, + // This is normally "struct vmspace". + /// Pointer to kernel vmspace struct. + pub ki_vmspace: *mut ::c_void, + /// Sleep address. + pub ki_wchan: *mut ::c_void, + /// Process identifier. + pub ki_pid: ::pid_t, + /// Parent process ID. + pub ki_ppid: ::pid_t, + /// Process group ID. + pub ki_pgid: ::pid_t, + /// tty process group ID. + pub ki_tpgid: ::pid_t, + /// Process session ID. + pub ki_sid: ::pid_t, + /// Terminal session ID. + pub ki_tsid: ::pid_t, + /// Job control counter. + pub ki_jobc: ::c_short, + /// Unused (just here for alignment). + pub ki_spare_short1: ::c_short, + /// Controlling tty dev. + pub ki_tdev: ::dev_t, + /// Signals arrived but not delivered. + pub ki_siglist: ::sigset_t, + /// Current signal mask. + pub ki_sigmask: ::sigset_t, + /// Signals being ignored. + pub ki_sigignore: ::sigset_t, + /// Signals being caught by user. + pub ki_sigcatch: ::sigset_t, + /// Effective user ID. + pub ki_uid: ::uid_t, + /// Real user ID. + pub ki_ruid: ::uid_t, + /// Saved effective user ID. + pub ki_svuid: ::uid_t, + /// Real group ID. + pub ki_rgid: ::gid_t, + /// Saved effective group ID. + pub ki_svgid: ::gid_t, + /// Number of groups. + pub ki_ngroups: ::c_short, + /// Unused (just here for alignment). + pub ki_spare_short2: ::c_short, + /// Groups. + pub ki_groups: [::gid_t; ::KI_NGROUPS], + /// Virtual size. + pub ki_size: ::vm_size_t, + /// Current resident set size in pages. + pub ki_rssize: ::segsz_t, + /// Resident set size before last swap. + pub ki_swrss: ::segsz_t, + /// Text size (pages) XXX. + pub ki_tsize: ::segsz_t, + /// Data size (pages) XXX. + pub ki_dsize: ::segsz_t, + /// Stack size (pages). + pub ki_ssize: ::segsz_t, + /// Exit status for wait & stop signal. + pub ki_xstat: ::u_short, + /// Accounting flags. + pub ki_acflag: ::u_short, + /// %cpu for process during `ki_swtime`. + pub ki_pctcpu: ::fixpt_t, + /// Time averaged value of `ki_cpticks`. + pub ki_estcpu: ::u_int, + /// Time since last blocked. + pub ki_slptime: ::u_int, + /// Time swapped in or out. + pub ki_swtime: ::u_int, + /// Number of copy-on-write faults. + pub ki_cow: ::u_int, + /// Real time in microsec. + pub ki_runtime: u64, + /// Starting time. + pub ki_start: ::timeval, + /// Time used by process children. + pub ki_childtime: ::timeval, + /// P_* flags. + pub ki_flag: ::c_long, + /// KI_* flags (below). + pub ki_kiflag: ::c_long, + /// Kernel trace points. + pub ki_traceflag: ::c_int, + /// S* process status. + pub ki_stat: ::c_char, + /// Process "nice" value. + pub ki_nice: i8, // signed char + /// Process lock (prevent swap) count. + pub ki_lock: ::c_char, + /// Run queue index. + pub ki_rqindex: ::c_char, + /// Which cpu we are on. + pub ki_oncpu_old: ::c_uchar, + /// Last cpu we were on. + pub ki_lastcpu_old: ::c_uchar, + /// Thread name. + pub ki_tdname: [::c_char; ::TDNAMLEN + 1], + /// Wchan message. + pub ki_wmesg: [::c_char; ::WMESGLEN + 1], + /// Setlogin name. + pub ki_login: [::c_char; ::LOGNAMELEN + 1], + /// Lock name. + pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], + /// Command name. + pub ki_comm: [::c_char; ::COMMLEN + 1], + /// Emulation name. + pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], + /// Login class. + pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], + /// More thread name. + pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], + /// Spare string space. + pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq + /// Spare room for growth. + pub ki_spareints: [::c_int; ::KI_NSPARE_INT], + /// Which cpu we are on. + pub ki_oncpu: ::c_int, + /// Last cpu we were on. + pub ki_lastcpu: ::c_int, + /// PID of tracing process. + pub ki_tracer: ::c_int, + /// P2_* flags. + pub ki_flag2: ::c_int, + /// Default FIB number. + pub ki_fibnum: ::c_int, + /// Credential flags. + pub ki_cr_flags: ::u_int, + /// Process jail ID. + pub ki_jid: ::c_int, + /// Number of threads in total. + pub ki_numthreads: ::c_int, + /// Thread ID. + pub ki_tid: ::lwpid_t, + /// Process priority. + pub ki_pri: ::priority, + /// Process rusage statistics. + pub ki_rusage: ::rusage, + /// rusage of children processes. + pub ki_rusage_ch: ::rusage, + // This is normally "struct pcb". + /// Kernel virtual addr of pcb. + pub ki_pcb: *mut ::c_void, + /// Kernel virtual addr of stack. + pub ki_kstack: *mut ::c_void, + /// User convenience pointer. + pub ki_udata: *mut ::c_void, + // This is normally "struct thread". + pub ki_tdaddr: *mut ::c_void, + pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR], + pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG], + /// PS_* flags. + pub ki_sflag: ::c_long, + /// kthread flag. + pub ki_tdflags: ::c_long, + } +} + +s_no_extra_traits! { + pub struct dirent { + pub d_fileno: ::ino_t, + pub d_reclen: u16, + pub d_type: u8, + // Type of `d_namlen` changed from `char` to `u16` in FreeBSD 12: + pub d_namlen: u8, + pub d_name: [::c_char; 256], + } + + pub struct statfs { + pub f_version: u32, + pub f_type: u32, + pub f_flags: u64, + pub f_bsize: u64, + pub f_iosize: u64, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: i64, + pub f_files: u64, + pub f_ffree: i64, + pub f_syncwrites: u64, + pub f_asyncwrites: u64, + pub f_syncreads: u64, + pub f_asyncreads: u64, + f_spare: [u64; 10], + pub f_namemax: u32, + pub f_owner: ::uid_t, + pub f_fsid: ::fsid_t, + f_charspare: [::c_char; 80], + pub f_fstypename: [::c_char; 16], + // Array length changed from 88 to 1024 in FreeBSD 12: + pub f_mntfromname: [::c_char; 88], + // Array length changed from 88 to 1024 in FreeBSD 12: + pub f_mntonname: [::c_char; 88], + } + + pub struct vnstat { + pub vn_fileid: u64, + pub vn_size: u64, + pub vn_mntdir: *mut ::c_char, + pub vn_dev: u32, + pub vn_fsid: u32, + pub vn_type: ::c_int, + pub vn_mode: u16, + pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for statfs { + fn eq(&self, other: &statfs) -> bool { + self.f_version == other.f_version + && self.f_type == other.f_type + && self.f_flags == other.f_flags + && self.f_bsize == other.f_bsize + && self.f_iosize == other.f_iosize + && self.f_blocks == other.f_blocks + && self.f_bfree == other.f_bfree + && self.f_bavail == other.f_bavail + && self.f_files == other.f_files + && self.f_ffree == other.f_ffree + && self.f_syncwrites == other.f_syncwrites + && self.f_asyncwrites == other.f_asyncwrites + && self.f_syncreads == other.f_syncreads + && self.f_asyncreads == other.f_asyncreads + && self.f_namemax == other.f_namemax + && self.f_owner == other.f_owner + && self.f_fsid == other.f_fsid + && self.f_fstypename == other.f_fstypename + && self + .f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a,b)| a == b) + && self + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for statfs {} + impl ::fmt::Debug for statfs { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("statfs") + .field("f_bsize", &self.f_bsize) + .field("f_iosize", &self.f_iosize) + .field("f_blocks", &self.f_blocks) + .field("f_bfree", &self.f_bfree) + .field("f_bavail", &self.f_bavail) + .field("f_files", &self.f_files) + .field("f_ffree", &self.f_ffree) + .field("f_syncwrites", &self.f_syncwrites) + .field("f_asyncwrites", &self.f_asyncwrites) + .field("f_syncreads", &self.f_syncreads) + .field("f_asyncreads", &self.f_asyncreads) + .field("f_namemax", &self.f_namemax) + .field("f_owner", &self.f_owner) + .field("f_fsid", &self.f_fsid) + .field("f_fstypename", &self.f_fstypename) + .field("f_mntfromname", &&self.f_mntfromname[..]) + .field("f_mntonname", &&self.f_mntonname[..]) + .finish() + } + } + impl ::hash::Hash for statfs { + fn hash(&self, state: &mut H) { + self.f_version.hash(state); + self.f_type.hash(state); + self.f_flags.hash(state); + self.f_bsize.hash(state); + self.f_iosize.hash(state); + self.f_blocks.hash(state); + self.f_bfree.hash(state); + self.f_bavail.hash(state); + self.f_files.hash(state); + self.f_ffree.hash(state); + self.f_syncwrites.hash(state); + self.f_asyncwrites.hash(state); + self.f_syncreads.hash(state); + self.f_asyncreads.hash(state); + self.f_namemax.hash(state); + self.f_owner.hash(state); + self.f_fsid.hash(state); + self.f_fstypename.hash(state); + self.f_mntfromname.hash(state); + self.f_mntonname.hash(state); + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_fileno == other.d_fileno + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self.d_namlen == other.d_namlen + && self + .d_name[..self.d_namlen as _] + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for dirent {} + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_fileno", &self.d_fileno) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + .field("d_namlen", &self.d_namlen) + .field("d_name", &&self.d_name[..self.d_namlen as _]) + .finish() + } + } + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_fileno.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_namlen.hash(state); + self.d_name[..self.d_namlen as _].hash(state); + } + } + + impl PartialEq for vnstat { + fn eq(&self, other: &vnstat) -> bool { + let self_vn_devname: &[::c_char] = &self.vn_devname; + let other_vn_devname: &[::c_char] = &other.vn_devname; + + self.vn_fileid == other.vn_fileid && + self.vn_size == other.vn_size && + self.vn_mntdir == other.vn_mntdir && + self.vn_dev == other.vn_dev && + self.vn_fsid == other.vn_fsid && + self.vn_type == other.vn_type && + self.vn_mode == other.vn_mode && + self_vn_devname == other_vn_devname + } + } + impl Eq for vnstat {} + impl ::fmt::Debug for vnstat { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let self_vn_devname: &[::c_char] = &self.vn_devname; + + f.debug_struct("vnstat") + .field("vn_fileid", &self.vn_fileid) + .field("vn_size", &self.vn_size) + .field("vn_mntdir", &self.vn_mntdir) + .field("vn_dev", &self.vn_dev) + .field("vn_fsid", &self.vn_fsid) + .field("vn_type", &self.vn_type) + .field("vn_mode", &self.vn_mode) + .field("vn_devname", &self_vn_devname) + .finish() + } + } + impl ::hash::Hash for vnstat { + fn hash(&self, state: &mut H) { + let self_vn_devname: &[::c_char] = &self.vn_devname; + + self.vn_fileid.hash(state); + self.vn_size.hash(state); + self.vn_mntdir.hash(state); + self.vn_dev.hash(state); + self.vn_fsid.hash(state); + self.vn_type.hash(state); + self.vn_mode.hash(state); + self_vn_devname.hash(state); + } + } + } +} + +pub const ELAST: ::c_int = 96; +pub const RAND_MAX: ::c_int = 0x7fff_fffd; +pub const KI_NSPARE_PTR: usize = 6; +pub const MINCORE_SUPER: ::c_int = 0x20; +/// max length of devicename +pub const SPECNAMELEN: ::c_int = 63; + +safe_f! { + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + (major << 8) | minor + } +} + +f! { + pub fn major(dev: ::dev_t) -> ::c_int { + ((dev >> 8) & 0xff) as ::c_int + } + + pub fn minor(dev: ::dev_t) -> ::c_int { + (dev & 0xffff00ff) as ::c_int + } +} + +extern "C" { + // Return type ::c_int was removed in FreeBSD 12 + pub fn setgrent() -> ::c_int; + + // Type of `addr` argument changed from `const void*` to `void*` + // in FreeBSD 12 + pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + + // Return type ::c_int was removed in FreeBSD 12 + pub fn freelocale(loc: ::locale_t) -> ::c_int; + + // Return type ::c_int changed to ::ssize_t in FreeBSD 12: + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtyp: ::c_long, + msgflg: ::c_int, + ) -> ::c_int; + + // Type of `path` argument changed from `const void*` to `void*` + // in FreeBSD 12 + pub fn dirname(path: *const ::c_char) -> *mut ::c_char; + pub fn basename(path: *const ::c_char) -> *mut ::c_char; +} + +cfg_if! { + if #[cfg(any(target_arch = "x86_64", + target_arch = "aarch64", + target_arch = "riscv64"))] { + mod b64; + pub use self::b64::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs new file mode 100644 index 000000000..80c6fa168 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs @@ -0,0 +1,34 @@ +#[repr(C)] +#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] +pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + st_padding0: i16, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + st_padding1: i32, + pub st_rdev: ::dev_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_birthtime: ::time_t, + pub st_birthtime_nsec: ::c_long, + pub st_size: ::off_t, + pub st_blocks: ::blkcnt_t, + pub st_blksize: ::blksize_t, + pub st_flags: ::fflags_t, + pub st_gen: u64, + pub st_spare: [u64; 10], +} + +impl ::Copy for ::stat {} +impl ::Clone for ::stat { + fn clone(&self) -> ::stat { + *self + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs new file mode 100644 index 000000000..10fcaa03a --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -0,0 +1,505 @@ +// APIs in FreeBSD 12 that have changed since 11. + +pub type nlink_t = u64; +pub type dev_t = u64; +pub type ino_t = ::c_ulong; +pub type shmatt_t = ::c_uint; + +s! { + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + } + + pub struct kevent { + pub ident: ::uintptr_t, + pub filter: ::c_short, + pub flags: ::c_ushort, + pub fflags: ::c_uint, + pub data: i64, + pub udata: *mut ::c_void, + pub ext: [u64; 4], + } + + pub struct kvm_page { + pub version: ::c_uint, + pub paddr: ::c_ulong, + pub kmap_vaddr: ::c_ulong, + pub dmap_vaddr: ::c_ulong, + pub prot: ::vm_prot_t, + pub offset: ::u_long, + pub len: ::size_t, + } + + pub struct kinfo_proc { + /// Size of this structure. + pub ki_structsize: ::c_int, + /// Reserved: layout identifier. + pub ki_layout: ::c_int, + /// Address of command arguments. + pub ki_args: *mut ::pargs, + // This is normally "struct proc". + /// Address of proc. + pub ki_paddr: *mut ::c_void, + // This is normally "struct user". + /// Kernel virtual address of u-area. + pub ki_addr: *mut ::c_void, + // This is normally "struct vnode". + /// Pointer to trace file. + pub ki_tracep: *mut ::c_void, + // This is normally "struct vnode". + /// Pointer to executable file. + pub ki_textvp: *mut ::c_void, + // This is normally "struct filedesc". + /// Pointer to open file info. + pub ki_fd: *mut ::c_void, + // This is normally "struct vmspace". + /// Pointer to kernel vmspace struct. + pub ki_vmspace: *mut ::c_void, + /// Sleep address. + pub ki_wchan: *mut ::c_void, + /// Process identifier. + pub ki_pid: ::pid_t, + /// Parent process ID. + pub ki_ppid: ::pid_t, + /// Process group ID. + pub ki_pgid: ::pid_t, + /// tty process group ID. + pub ki_tpgid: ::pid_t, + /// Process session ID. + pub ki_sid: ::pid_t, + /// Terminal session ID. + pub ki_tsid: ::pid_t, + /// Job control counter. + pub ki_jobc: ::c_short, + /// Unused (just here for alignment). + pub ki_spare_short1: ::c_short, + /// Controlling tty dev. + pub ki_tdev_freebsd11: u32, + /// Signals arrived but not delivered. + pub ki_siglist: ::sigset_t, + /// Current signal mask. + pub ki_sigmask: ::sigset_t, + /// Signals being ignored. + pub ki_sigignore: ::sigset_t, + /// Signals being caught by user. + pub ki_sigcatch: ::sigset_t, + /// Effective user ID. + pub ki_uid: ::uid_t, + /// Real user ID. + pub ki_ruid: ::uid_t, + /// Saved effective user ID. + pub ki_svuid: ::uid_t, + /// Real group ID. + pub ki_rgid: ::gid_t, + /// Saved effective group ID. + pub ki_svgid: ::gid_t, + /// Number of groups. + pub ki_ngroups: ::c_short, + /// Unused (just here for alignment). + pub ki_spare_short2: ::c_short, + /// Groups. + pub ki_groups: [::gid_t; ::KI_NGROUPS], + /// Virtual size. + pub ki_size: ::vm_size_t, + /// Current resident set size in pages. + pub ki_rssize: ::segsz_t, + /// Resident set size before last swap. + pub ki_swrss: ::segsz_t, + /// Text size (pages) XXX. + pub ki_tsize: ::segsz_t, + /// Data size (pages) XXX. + pub ki_dsize: ::segsz_t, + /// Stack size (pages). + pub ki_ssize: ::segsz_t, + /// Exit status for wait & stop signal. + pub ki_xstat: ::u_short, + /// Accounting flags. + pub ki_acflag: ::u_short, + /// %cpu for process during `ki_swtime`. + pub ki_pctcpu: ::fixpt_t, + /// Time averaged value of `ki_cpticks`. + pub ki_estcpu: ::u_int, + /// Time since last blocked. + pub ki_slptime: ::u_int, + /// Time swapped in or out. + pub ki_swtime: ::u_int, + /// Number of copy-on-write faults. + pub ki_cow: ::u_int, + /// Real time in microsec. + pub ki_runtime: u64, + /// Starting time. + pub ki_start: ::timeval, + /// Time used by process children. + pub ki_childtime: ::timeval, + /// P_* flags. + pub ki_flag: ::c_long, + /// KI_* flags (below). + pub ki_kiflag: ::c_long, + /// Kernel trace points. + pub ki_traceflag: ::c_int, + /// S* process status. + pub ki_stat: ::c_char, + /// Process "nice" value. + pub ki_nice: i8, // signed char + /// Process lock (prevent swap) count. + pub ki_lock: ::c_char, + /// Run queue index. + pub ki_rqindex: ::c_char, + /// Which cpu we are on. + pub ki_oncpu_old: ::c_uchar, + /// Last cpu we were on. + pub ki_lastcpu_old: ::c_uchar, + /// Thread name. + pub ki_tdname: [::c_char; ::TDNAMLEN + 1], + /// Wchan message. + pub ki_wmesg: [::c_char; ::WMESGLEN + 1], + /// Setlogin name. + pub ki_login: [::c_char; ::LOGNAMELEN + 1], + /// Lock name. + pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], + /// Command name. + pub ki_comm: [::c_char; ::COMMLEN + 1], + /// Emulation name. + pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], + /// Login class. + pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], + /// More thread name. + pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], + /// Spare string space. + pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq + /// Spare room for growth. + pub ki_spareints: [::c_int; ::KI_NSPARE_INT], + /// Controlling tty dev. + pub ki_tdev: ::dev_t, + /// Which cpu we are on. + pub ki_oncpu: ::c_int, + /// Last cpu we were on. + pub ki_lastcpu: ::c_int, + /// PID of tracing process. + pub ki_tracer: ::c_int, + /// P2_* flags. + pub ki_flag2: ::c_int, + /// Default FIB number. + pub ki_fibnum: ::c_int, + /// Credential flags. + pub ki_cr_flags: ::u_int, + /// Process jail ID. + pub ki_jid: ::c_int, + /// Number of threads in total. + pub ki_numthreads: ::c_int, + /// Thread ID. + pub ki_tid: ::lwpid_t, + /// Process priority. + pub ki_pri: ::priority, + /// Process rusage statistics. + pub ki_rusage: ::rusage, + /// rusage of children processes. + pub ki_rusage_ch: ::rusage, + // This is normally "struct pcb". + /// Kernel virtual addr of pcb. + pub ki_pcb: *mut ::c_void, + /// Kernel virtual addr of stack. + pub ki_kstack: *mut ::c_void, + /// User convenience pointer. + pub ki_udata: *mut ::c_void, + // This is normally "struct thread". + pub ki_tdaddr: *mut ::c_void, + pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR], + pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG], + /// PS_* flags. + pub ki_sflag: ::c_long, + /// kthread flag. + pub ki_tdflags: ::c_long, + } +} + +s_no_extra_traits! { + pub struct dirent { + pub d_fileno: ::ino_t, + pub d_off: ::off_t, + pub d_reclen: u16, + pub d_type: u8, + d_pad0: u8, + pub d_namlen: u16, + d_pad1: u16, + pub d_name: [::c_char; 256], + } + + pub struct statfs { + pub f_version: u32, + pub f_type: u32, + pub f_flags: u64, + pub f_bsize: u64, + pub f_iosize: u64, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: i64, + pub f_files: u64, + pub f_ffree: i64, + pub f_syncwrites: u64, + pub f_asyncwrites: u64, + pub f_syncreads: u64, + pub f_asyncreads: u64, + f_spare: [u64; 10], + pub f_namemax: u32, + pub f_owner: ::uid_t, + pub f_fsid: ::fsid_t, + f_charspare: [::c_char; 80], + pub f_fstypename: [::c_char; 16], + pub f_mntfromname: [::c_char; 1024], + pub f_mntonname: [::c_char; 1024], + } + + pub struct vnstat { + pub vn_fileid: u64, + pub vn_size: u64, + pub vn_dev: u64, + pub vn_fsid: u64, + pub vn_mntdir: *mut ::c_char, + pub vn_type: ::c_int, + pub vn_mode: u16, + pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for statfs { + fn eq(&self, other: &statfs) -> bool { + self.f_version == other.f_version + && self.f_type == other.f_type + && self.f_flags == other.f_flags + && self.f_bsize == other.f_bsize + && self.f_iosize == other.f_iosize + && self.f_blocks == other.f_blocks + && self.f_bfree == other.f_bfree + && self.f_bavail == other.f_bavail + && self.f_files == other.f_files + && self.f_ffree == other.f_ffree + && self.f_syncwrites == other.f_syncwrites + && self.f_asyncwrites == other.f_asyncwrites + && self.f_syncreads == other.f_syncreads + && self.f_asyncreads == other.f_asyncreads + && self.f_namemax == other.f_namemax + && self.f_owner == other.f_owner + && self.f_fsid == other.f_fsid + && self.f_fstypename == other.f_fstypename + && self + .f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a,b)| a == b) + && self + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for statfs {} + impl ::fmt::Debug for statfs { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("statfs") + .field("f_bsize", &self.f_bsize) + .field("f_iosize", &self.f_iosize) + .field("f_blocks", &self.f_blocks) + .field("f_bfree", &self.f_bfree) + .field("f_bavail", &self.f_bavail) + .field("f_files", &self.f_files) + .field("f_ffree", &self.f_ffree) + .field("f_syncwrites", &self.f_syncwrites) + .field("f_asyncwrites", &self.f_asyncwrites) + .field("f_syncreads", &self.f_syncreads) + .field("f_asyncreads", &self.f_asyncreads) + .field("f_namemax", &self.f_namemax) + .field("f_owner", &self.f_owner) + .field("f_fsid", &self.f_fsid) + .field("f_fstypename", &self.f_fstypename) + .field("f_mntfromname", &&self.f_mntfromname[..]) + .field("f_mntonname", &&self.f_mntonname[..]) + .finish() + } + } + impl ::hash::Hash for statfs { + fn hash(&self, state: &mut H) { + self.f_version.hash(state); + self.f_type.hash(state); + self.f_flags.hash(state); + self.f_bsize.hash(state); + self.f_iosize.hash(state); + self.f_blocks.hash(state); + self.f_bfree.hash(state); + self.f_bavail.hash(state); + self.f_files.hash(state); + self.f_ffree.hash(state); + self.f_syncwrites.hash(state); + self.f_asyncwrites.hash(state); + self.f_syncreads.hash(state); + self.f_asyncreads.hash(state); + self.f_namemax.hash(state); + self.f_owner.hash(state); + self.f_fsid.hash(state); + self.f_charspare.hash(state); + self.f_fstypename.hash(state); + self.f_mntfromname.hash(state); + self.f_mntonname.hash(state); + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_fileno == other.d_fileno + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self.d_namlen == other.d_namlen + && self + .d_name[..self.d_namlen as _] + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for dirent {} + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_fileno", &self.d_fileno) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + .field("d_namlen", &self.d_namlen) + .field("d_name", &&self.d_name[..self.d_namlen as _]) + .finish() + } + } + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_fileno.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_namlen.hash(state); + self.d_name[..self.d_namlen as _].hash(state); + } + } + + impl PartialEq for vnstat { + fn eq(&self, other: &vnstat) -> bool { + let self_vn_devname: &[::c_char] = &self.vn_devname; + let other_vn_devname: &[::c_char] = &other.vn_devname; + + self.vn_fileid == other.vn_fileid && + self.vn_size == other.vn_size && + self.vn_dev == other.vn_dev && + self.vn_fsid == other.vn_fsid && + self.vn_mntdir == other.vn_mntdir && + self.vn_type == other.vn_type && + self.vn_mode == other.vn_mode && + self_vn_devname == other_vn_devname + } + } + impl Eq for vnstat {} + impl ::fmt::Debug for vnstat { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let self_vn_devname: &[::c_char] = &self.vn_devname; + + f.debug_struct("vnstat") + .field("vn_fileid", &self.vn_fileid) + .field("vn_size", &self.vn_size) + .field("vn_dev", &self.vn_dev) + .field("vn_fsid", &self.vn_fsid) + .field("vn_mntdir", &self.vn_mntdir) + .field("vn_type", &self.vn_type) + .field("vn_mode", &self.vn_mode) + .field("vn_devname", &self_vn_devname) + .finish() + } + } + impl ::hash::Hash for vnstat { + fn hash(&self, state: &mut H) { + let self_vn_devname: &[::c_char] = &self.vn_devname; + + self.vn_fileid.hash(state); + self.vn_size.hash(state); + self.vn_dev.hash(state); + self.vn_fsid.hash(state); + self.vn_mntdir.hash(state); + self.vn_type.hash(state); + self.vn_mode.hash(state); + self_vn_devname.hash(state); + } + } + } +} + +pub const RAND_MAX: ::c_int = 0x7fff_fffd; +pub const ELAST: ::c_int = 97; + +/// max length of devicename +pub const SPECNAMELEN: ::c_int = 63; +pub const KI_NSPARE_PTR: usize = 6; + +pub const MINCORE_SUPER: ::c_int = 0x20; + +safe_f! { + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + let mut dev = 0; + dev |= ((major & 0xffffff00) as dev_t) << 32; + dev |= ((major & 0x000000ff) as dev_t) << 8; + dev |= ((minor & 0x0000ff00) as dev_t) << 24; + dev |= ((minor & 0xffff00ff) as dev_t) << 0; + dev + } +} + +f! { + pub fn major(dev: ::dev_t) -> ::c_int { + (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int + } + + pub fn minor(dev: ::dev_t) -> ::c_int { + (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int + } +} + +extern "C" { + pub fn setgrent(); + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn freelocale(loc: ::locale_t); + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtyp: ::c_long, + msgflg: ::c_int, + ) -> ::ssize_t; + + pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; + pub fn basename(path: *mut ::c_char) -> *mut ::c_char; +} + +cfg_if! { + if #[cfg(any(target_arch = "x86_64", + target_arch = "aarch64", + target_arch = "riscv64"))] { + mod b64; + pub use self::b64::*; + } +} + +cfg_if! { + if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs new file mode 100644 index 000000000..7bf253445 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs @@ -0,0 +1,5 @@ +pub const PROC_KPTI_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN; +pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: ::c_int = 1; +pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: ::c_int = 2; +pub const PROC_KPTI_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 1; +pub const PROC_KPTI_STATUS_ACTIVE: ::c_int = 0x80000000; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs new file mode 100644 index 000000000..80c6fa168 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs @@ -0,0 +1,34 @@ +#[repr(C)] +#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] +pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + st_padding0: i16, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + st_padding1: i32, + pub st_rdev: ::dev_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_birthtime: ::time_t, + pub st_birthtime_nsec: ::c_long, + pub st_size: ::off_t, + pub st_blocks: ::blkcnt_t, + pub st_blksize: ::blksize_t, + pub st_flags: ::fflags_t, + pub st_gen: u64, + pub st_spare: [u64; 10], +} + +impl ::Copy for ::stat {} +impl ::Clone for ::stat { + fn clone(&self) -> ::stat { + *self + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs new file mode 100644 index 000000000..0e04a12e7 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -0,0 +1,546 @@ +// APIs in FreeBSD 14 that have changed since 11. + +pub type nlink_t = u64; +pub type dev_t = u64; +pub type ino_t = ::c_ulong; +pub type shmatt_t = ::c_uint; +pub type kpaddr_t = u64; +pub type kssize_t = i64; +pub type domainset_t = __c_anonymous_domainset; + +s! { + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + } + + pub struct kevent { + pub ident: ::uintptr_t, + pub filter: ::c_short, + pub flags: ::c_ushort, + pub fflags: ::c_uint, + pub data: i64, + pub udata: *mut ::c_void, + pub ext: [u64; 4], + } + + pub struct kvm_page { + pub kp_version: ::u_int, + pub kp_paddr: ::kpaddr_t, + pub kp_kmap_vaddr: ::kvaddr_t, + pub kp_dmap_vaddr: ::kvaddr_t, + pub kp_prot: ::vm_prot_t, + pub kp_offset: ::off_t, + pub kp_len: ::size_t, + } + + pub struct __c_anonymous_domainset { + _priv: [::uintptr_t; 4], + } + + pub struct kinfo_proc { + /// Size of this structure. + pub ki_structsize: ::c_int, + /// Reserved: layout identifier. + pub ki_layout: ::c_int, + /// Address of command arguments. + pub ki_args: *mut ::pargs, + // This is normally "struct proc". + /// Address of proc. + pub ki_paddr: *mut ::c_void, + // This is normally "struct user". + /// Kernel virtual address of u-area. + pub ki_addr: *mut ::c_void, + // This is normally "struct vnode". + /// Pointer to trace file. + pub ki_tracep: *mut ::c_void, + // This is normally "struct vnode". + /// Pointer to executable file. + pub ki_textvp: *mut ::c_void, + // This is normally "struct filedesc". + /// Pointer to open file info. + pub ki_fd: *mut ::c_void, + // This is normally "struct vmspace". + /// Pointer to kernel vmspace struct. + pub ki_vmspace: *mut ::c_void, + /// Sleep address. + pub ki_wchan: *const ::c_void, + /// Process identifier. + pub ki_pid: ::pid_t, + /// Parent process ID. + pub ki_ppid: ::pid_t, + /// Process group ID. + pub ki_pgid: ::pid_t, + /// tty process group ID. + pub ki_tpgid: ::pid_t, + /// Process session ID. + pub ki_sid: ::pid_t, + /// Terminal session ID. + pub ki_tsid: ::pid_t, + /// Job control counter. + pub ki_jobc: ::c_short, + /// Unused (just here for alignment). + pub ki_spare_short1: ::c_short, + /// Controlling tty dev. + pub ki_tdev_freebsd11: u32, + /// Signals arrived but not delivered. + pub ki_siglist: ::sigset_t, + /// Current signal mask. + pub ki_sigmask: ::sigset_t, + /// Signals being ignored. + pub ki_sigignore: ::sigset_t, + /// Signals being caught by user. + pub ki_sigcatch: ::sigset_t, + /// Effective user ID. + pub ki_uid: ::uid_t, + /// Real user ID. + pub ki_ruid: ::uid_t, + /// Saved effective user ID. + pub ki_svuid: ::uid_t, + /// Real group ID. + pub ki_rgid: ::gid_t, + /// Saved effective group ID. + pub ki_svgid: ::gid_t, + /// Number of groups. + pub ki_ngroups: ::c_short, + /// Unused (just here for alignment). + pub ki_spare_short2: ::c_short, + /// Groups. + pub ki_groups: [::gid_t; ::KI_NGROUPS], + /// Virtual size. + pub ki_size: ::vm_size_t, + /// Current resident set size in pages. + pub ki_rssize: ::segsz_t, + /// Resident set size before last swap. + pub ki_swrss: ::segsz_t, + /// Text size (pages) XXX. + pub ki_tsize: ::segsz_t, + /// Data size (pages) XXX. + pub ki_dsize: ::segsz_t, + /// Stack size (pages). + pub ki_ssize: ::segsz_t, + /// Exit status for wait & stop signal. + pub ki_xstat: ::u_short, + /// Accounting flags. + pub ki_acflag: ::u_short, + /// %cpu for process during `ki_swtime`. + pub ki_pctcpu: ::fixpt_t, + /// Time averaged value of `ki_cpticks`. + pub ki_estcpu: ::u_int, + /// Time since last blocked. + pub ki_slptime: ::u_int, + /// Time swapped in or out. + pub ki_swtime: ::u_int, + /// Number of copy-on-write faults. + pub ki_cow: ::u_int, + /// Real time in microsec. + pub ki_runtime: u64, + /// Starting time. + pub ki_start: ::timeval, + /// Time used by process children. + pub ki_childtime: ::timeval, + /// P_* flags. + pub ki_flag: ::c_long, + /// KI_* flags (below). + pub ki_kiflag: ::c_long, + /// Kernel trace points. + pub ki_traceflag: ::c_int, + /// S* process status. + pub ki_stat: ::c_char, + /// Process "nice" value. + pub ki_nice: i8, // signed char + /// Process lock (prevent swap) count. + pub ki_lock: ::c_char, + /// Run queue index. + pub ki_rqindex: ::c_char, + /// Which cpu we are on. + pub ki_oncpu_old: ::c_uchar, + /// Last cpu we were on. + pub ki_lastcpu_old: ::c_uchar, + /// Thread name. + pub ki_tdname: [::c_char; ::TDNAMLEN + 1], + /// Wchan message. + pub ki_wmesg: [::c_char; ::WMESGLEN + 1], + /// Setlogin name. + pub ki_login: [::c_char; ::LOGNAMELEN + 1], + /// Lock name. + pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], + /// Command name. + pub ki_comm: [::c_char; ::COMMLEN + 1], + /// Emulation name. + pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], + /// Login class. + pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], + /// More thread name. + pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], + /// Spare string space. + pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq + /// Spare room for growth. + pub ki_spareints: [::c_int; ::KI_NSPARE_INT], + /// Controlling tty dev. + pub ki_tdev: u64, + /// Which cpu we are on. + pub ki_oncpu: ::c_int, + /// Last cpu we were on. + pub ki_lastcpu: ::c_int, + /// PID of tracing process. + pub ki_tracer: ::c_int, + /// P2_* flags. + pub ki_flag2: ::c_int, + /// Default FIB number. + pub ki_fibnum: ::c_int, + /// Credential flags. + pub ki_cr_flags: ::u_int, + /// Process jail ID. + pub ki_jid: ::c_int, + /// Number of threads in total. + pub ki_numthreads: ::c_int, + /// Thread ID. + pub ki_tid: ::lwpid_t, + /// Process priority. + pub ki_pri: ::priority, + /// Process rusage statistics. + pub ki_rusage: ::rusage, + /// rusage of children processes. + pub ki_rusage_ch: ::rusage, + // This is normally "struct pcb". + /// Kernel virtual addr of pcb. + pub ki_pcb: *mut ::c_void, + /// Kernel virtual addr of stack. + pub ki_kstack: *mut ::c_void, + /// User convenience pointer. + pub ki_udata: *mut ::c_void, + // This is normally "struct thread". + pub ki_tdaddr: *mut ::c_void, + // This is normally "struct pwddesc". + /// Pointer to process paths info. + pub ki_pd: *mut ::c_void, + pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR], + pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG], + /// PS_* flags. + pub ki_sflag: ::c_long, + /// kthread flag. + pub ki_tdflags: ::c_long, + } +} + +s_no_extra_traits! { + pub struct dirent { + pub d_fileno: ::ino_t, + pub d_off: ::off_t, + pub d_reclen: u16, + pub d_type: u8, + d_pad0: u8, + pub d_namlen: u16, + d_pad1: u16, + pub d_name: [::c_char; 256], + } + + pub struct statfs { + pub f_version: u32, + pub f_type: u32, + pub f_flags: u64, + pub f_bsize: u64, + pub f_iosize: u64, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: i64, + pub f_files: u64, + pub f_ffree: i64, + pub f_syncwrites: u64, + pub f_asyncwrites: u64, + pub f_syncreads: u64, + pub f_asyncreads: u64, + f_spare: [u64; 10], + pub f_namemax: u32, + pub f_owner: ::uid_t, + pub f_fsid: ::fsid_t, + f_charspare: [::c_char; 80], + pub f_fstypename: [::c_char; 16], + pub f_mntfromname: [::c_char; 1024], + pub f_mntonname: [::c_char; 1024], + } + + pub struct vnstat { + pub vn_fileid: u64, + pub vn_size: u64, + pub vn_dev: u64, + pub vn_fsid: u64, + pub vn_mntdir: *mut ::c_char, + pub vn_type: ::c_int, + pub vn_mode: u16, + pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for statfs { + fn eq(&self, other: &statfs) -> bool { + self.f_version == other.f_version + && self.f_type == other.f_type + && self.f_flags == other.f_flags + && self.f_bsize == other.f_bsize + && self.f_iosize == other.f_iosize + && self.f_blocks == other.f_blocks + && self.f_bfree == other.f_bfree + && self.f_bavail == other.f_bavail + && self.f_files == other.f_files + && self.f_ffree == other.f_ffree + && self.f_syncwrites == other.f_syncwrites + && self.f_asyncwrites == other.f_asyncwrites + && self.f_syncreads == other.f_syncreads + && self.f_asyncreads == other.f_asyncreads + && self.f_namemax == other.f_namemax + && self.f_owner == other.f_owner + && self.f_fsid == other.f_fsid + && self.f_fstypename == other.f_fstypename + && self + .f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a,b)| a == b) + && self + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for statfs {} + impl ::fmt::Debug for statfs { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("statfs") + .field("f_bsize", &self.f_bsize) + .field("f_iosize", &self.f_iosize) + .field("f_blocks", &self.f_blocks) + .field("f_bfree", &self.f_bfree) + .field("f_bavail", &self.f_bavail) + .field("f_files", &self.f_files) + .field("f_ffree", &self.f_ffree) + .field("f_syncwrites", &self.f_syncwrites) + .field("f_asyncwrites", &self.f_asyncwrites) + .field("f_syncreads", &self.f_syncreads) + .field("f_asyncreads", &self.f_asyncreads) + .field("f_namemax", &self.f_namemax) + .field("f_owner", &self.f_owner) + .field("f_fsid", &self.f_fsid) + .field("f_fstypename", &self.f_fstypename) + .field("f_mntfromname", &&self.f_mntfromname[..]) + .field("f_mntonname", &&self.f_mntonname[..]) + .finish() + } + } + impl ::hash::Hash for statfs { + fn hash(&self, state: &mut H) { + self.f_version.hash(state); + self.f_type.hash(state); + self.f_flags.hash(state); + self.f_bsize.hash(state); + self.f_iosize.hash(state); + self.f_blocks.hash(state); + self.f_bfree.hash(state); + self.f_bavail.hash(state); + self.f_files.hash(state); + self.f_ffree.hash(state); + self.f_syncwrites.hash(state); + self.f_asyncwrites.hash(state); + self.f_syncreads.hash(state); + self.f_asyncreads.hash(state); + self.f_namemax.hash(state); + self.f_owner.hash(state); + self.f_fsid.hash(state); + self.f_charspare.hash(state); + self.f_fstypename.hash(state); + self.f_mntfromname.hash(state); + self.f_mntonname.hash(state); + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_fileno == other.d_fileno + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self.d_namlen == other.d_namlen + && self + .d_name[..self.d_namlen as _] + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for dirent {} + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_fileno", &self.d_fileno) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + .field("d_namlen", &self.d_namlen) + .field("d_name", &&self.d_name[..self.d_namlen as _]) + .finish() + } + } + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_fileno.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_namlen.hash(state); + self.d_name[..self.d_namlen as _].hash(state); + } + } + + impl PartialEq for vnstat { + fn eq(&self, other: &vnstat) -> bool { + let self_vn_devname: &[::c_char] = &self.vn_devname; + let other_vn_devname: &[::c_char] = &other.vn_devname; + + self.vn_fileid == other.vn_fileid && + self.vn_size == other.vn_size && + self.vn_dev == other.vn_dev && + self.vn_fsid == other.vn_fsid && + self.vn_mntdir == other.vn_mntdir && + self.vn_type == other.vn_type && + self.vn_mode == other.vn_mode && + self_vn_devname == other_vn_devname + } + } + impl Eq for vnstat {} + impl ::fmt::Debug for vnstat { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let self_vn_devname: &[::c_char] = &self.vn_devname; + + f.debug_struct("vnstat") + .field("vn_fileid", &self.vn_fileid) + .field("vn_size", &self.vn_size) + .field("vn_dev", &self.vn_dev) + .field("vn_fsid", &self.vn_fsid) + .field("vn_mntdir", &self.vn_mntdir) + .field("vn_type", &self.vn_type) + .field("vn_mode", &self.vn_mode) + .field("vn_devname", &self_vn_devname) + .finish() + } + } + impl ::hash::Hash for vnstat { + fn hash(&self, state: &mut H) { + let self_vn_devname: &[::c_char] = &self.vn_devname; + + self.vn_fileid.hash(state); + self.vn_size.hash(state); + self.vn_dev.hash(state); + self.vn_fsid.hash(state); + self.vn_mntdir.hash(state); + self.vn_type.hash(state); + self.vn_mode.hash(state); + self_vn_devname.hash(state); + } + } + } +} + +pub const RAND_MAX: ::c_int = 0x7fff_ffff; +pub const ELAST: ::c_int = 97; + +pub const KF_TYPE_EVENTFD: ::c_int = 13; + +/// max length of devicename +pub const SPECNAMELEN: ::c_int = 255; +pub const KI_NSPARE_PTR: usize = 5; + +/// domainset policies +pub const DOMAINSET_POLICY_INVALID: ::c_int = 0; +pub const DOMAINSET_POLICY_ROUNDROBIN: ::c_int = 1; +pub const DOMAINSET_POLICY_FIRSTTOUCH: ::c_int = 2; +pub const DOMAINSET_POLICY_PREFER: ::c_int = 3; +pub const DOMAINSET_POLICY_INTERLEAVE: ::c_int = 4; + +pub const MINCORE_SUPER: ::c_int = 0x20; + +safe_f! { + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + let mut dev = 0; + dev |= ((major & 0xffffff00) as dev_t) << 32; + dev |= ((major & 0x000000ff) as dev_t) << 8; + dev |= ((minor & 0x0000ff00) as dev_t) << 24; + dev |= ((minor & 0xffff00ff) as dev_t) << 0; + dev + } +} + +f! { + pub fn major(dev: ::dev_t) -> ::c_int { + (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int + } + + pub fn minor(dev: ::dev_t) -> ::c_int { + (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int + } +} + +extern "C" { + pub fn setgrent(); + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn freelocale(loc: ::locale_t); + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtyp: ::c_long, + msgflg: ::c_int, + ) -> ::ssize_t; + + pub fn cpuset_getdomain( + level: ::cpulevel_t, + which: ::cpuwhich_t, + id: ::id_t, + setsize: ::size_t, + mask: *mut ::domainset_t, + policy: *mut ::c_int, + ) -> ::c_int; + pub fn cpuset_setdomain( + level: ::cpulevel_t, + which: ::cpuwhich_t, + id: ::id_t, + setsize: ::size_t, + mask: *const ::domainset_t, + policy: ::c_int, + ) -> ::c_int; + + pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; + pub fn basename(path: *mut ::c_char) -> *mut ::c_char; +} + +#[link(name = "kvm")] +extern "C" { + pub fn kvm_kerndisp(kd: *mut ::kvm_t) -> ::kssize_t; +} + +cfg_if! { + if #[cfg(any(target_arch = "x86_64", + target_arch = "aarch64", + target_arch = "riscv64"))] { + mod b64; + pub use self::b64::*; + } +} + +cfg_if! { + if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs new file mode 100644 index 000000000..7bf253445 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs @@ -0,0 +1,5 @@ +pub const PROC_KPTI_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN; +pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: ::c_int = 1; +pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: ::c_int = 2; +pub const PROC_KPTI_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 1; +pub const PROC_KPTI_STATUS_ACTIVE: ::c_int = 0x80000000; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs new file mode 100644 index 000000000..80c6fa168 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs @@ -0,0 +1,34 @@ +#[repr(C)] +#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] +pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + st_padding0: i16, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + st_padding1: i32, + pub st_rdev: ::dev_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_birthtime: ::time_t, + pub st_birthtime_nsec: ::c_long, + pub st_size: ::off_t, + pub st_blocks: ::blkcnt_t, + pub st_blksize: ::blksize_t, + pub st_flags: ::fflags_t, + pub st_gen: u64, + pub st_spare: [u64; 10], +} + +impl ::Copy for ::stat {} +impl ::Clone for ::stat { + fn clone(&self) -> ::stat { + *self + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs new file mode 100644 index 000000000..a86ca6e7c --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -0,0 +1,546 @@ +// APIs in FreeBSD 13 that have changed since 11. + +pub type nlink_t = u64; +pub type dev_t = u64; +pub type ino_t = ::c_ulong; +pub type shmatt_t = ::c_uint; +pub type kpaddr_t = u64; +pub type kssize_t = i64; +pub type domainset_t = __c_anonymous_domainset; + +s! { + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + } + + pub struct kevent { + pub ident: ::uintptr_t, + pub filter: ::c_short, + pub flags: ::c_ushort, + pub fflags: ::c_uint, + pub data: i64, + pub udata: *mut ::c_void, + pub ext: [u64; 4], + } + + pub struct kvm_page { + pub kp_version: ::u_int, + pub kp_paddr: ::kpaddr_t, + pub kp_kmap_vaddr: ::kvaddr_t, + pub kp_dmap_vaddr: ::kvaddr_t, + pub kp_prot: ::vm_prot_t, + pub kp_offset: ::off_t, + pub kp_len: ::size_t, + } + + pub struct __c_anonymous_domainset { + _priv: [::uintptr_t; 4], + } + + pub struct kinfo_proc { + /// Size of this structure. + pub ki_structsize: ::c_int, + /// Reserved: layout identifier. + pub ki_layout: ::c_int, + /// Address of command arguments. + pub ki_args: *mut ::pargs, + // This is normally "struct proc". + /// Address of proc. + pub ki_paddr: *mut ::c_void, + // This is normally "struct user". + /// Kernel virtual address of u-area. + pub ki_addr: *mut ::c_void, + // This is normally "struct vnode". + /// Pointer to trace file. + pub ki_tracep: *mut ::c_void, + // This is normally "struct vnode". + /// Pointer to executable file. + pub ki_textvp: *mut ::c_void, + // This is normally "struct filedesc". + /// Pointer to open file info. + pub ki_fd: *mut ::c_void, + // This is normally "struct vmspace". + /// Pointer to kernel vmspace struct. + pub ki_vmspace: *mut ::c_void, + /// Sleep address. + pub ki_wchan: *const ::c_void, + /// Process identifier. + pub ki_pid: ::pid_t, + /// Parent process ID. + pub ki_ppid: ::pid_t, + /// Process group ID. + pub ki_pgid: ::pid_t, + /// tty process group ID. + pub ki_tpgid: ::pid_t, + /// Process session ID. + pub ki_sid: ::pid_t, + /// Terminal session ID. + pub ki_tsid: ::pid_t, + /// Job control counter. + pub ki_jobc: ::c_short, + /// Unused (just here for alignment). + pub ki_spare_short1: ::c_short, + /// Controlling tty dev. + pub ki_tdev_freebsd11: u32, + /// Signals arrived but not delivered. + pub ki_siglist: ::sigset_t, + /// Current signal mask. + pub ki_sigmask: ::sigset_t, + /// Signals being ignored. + pub ki_sigignore: ::sigset_t, + /// Signals being caught by user. + pub ki_sigcatch: ::sigset_t, + /// Effective user ID. + pub ki_uid: ::uid_t, + /// Real user ID. + pub ki_ruid: ::uid_t, + /// Saved effective user ID. + pub ki_svuid: ::uid_t, + /// Real group ID. + pub ki_rgid: ::gid_t, + /// Saved effective group ID. + pub ki_svgid: ::gid_t, + /// Number of groups. + pub ki_ngroups: ::c_short, + /// Unused (just here for alignment). + pub ki_spare_short2: ::c_short, + /// Groups. + pub ki_groups: [::gid_t; ::KI_NGROUPS], + /// Virtual size. + pub ki_size: ::vm_size_t, + /// Current resident set size in pages. + pub ki_rssize: ::segsz_t, + /// Resident set size before last swap. + pub ki_swrss: ::segsz_t, + /// Text size (pages) XXX. + pub ki_tsize: ::segsz_t, + /// Data size (pages) XXX. + pub ki_dsize: ::segsz_t, + /// Stack size (pages). + pub ki_ssize: ::segsz_t, + /// Exit status for wait & stop signal. + pub ki_xstat: ::u_short, + /// Accounting flags. + pub ki_acflag: ::u_short, + /// %cpu for process during `ki_swtime`. + pub ki_pctcpu: ::fixpt_t, + /// Time averaged value of `ki_cpticks`. + pub ki_estcpu: ::u_int, + /// Time since last blocked. + pub ki_slptime: ::u_int, + /// Time swapped in or out. + pub ki_swtime: ::u_int, + /// Number of copy-on-write faults. + pub ki_cow: ::u_int, + /// Real time in microsec. + pub ki_runtime: u64, + /// Starting time. + pub ki_start: ::timeval, + /// Time used by process children. + pub ki_childtime: ::timeval, + /// P_* flags. + pub ki_flag: ::c_long, + /// KI_* flags (below). + pub ki_kiflag: ::c_long, + /// Kernel trace points. + pub ki_traceflag: ::c_int, + /// S* process status. + pub ki_stat: ::c_char, + /// Process "nice" value. + pub ki_nice: i8, // signed char + /// Process lock (prevent swap) count. + pub ki_lock: ::c_char, + /// Run queue index. + pub ki_rqindex: ::c_char, + /// Which cpu we are on. + pub ki_oncpu_old: ::c_uchar, + /// Last cpu we were on. + pub ki_lastcpu_old: ::c_uchar, + /// Thread name. + pub ki_tdname: [::c_char; ::TDNAMLEN + 1], + /// Wchan message. + pub ki_wmesg: [::c_char; ::WMESGLEN + 1], + /// Setlogin name. + pub ki_login: [::c_char; ::LOGNAMELEN + 1], + /// Lock name. + pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], + /// Command name. + pub ki_comm: [::c_char; ::COMMLEN + 1], + /// Emulation name. + pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], + /// Login class. + pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], + /// More thread name. + pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], + /// Spare string space. + pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq + /// Spare room for growth. + pub ki_spareints: [::c_int; ::KI_NSPARE_INT], + /// Controlling tty dev. + pub ki_tdev: u64, + /// Which cpu we are on. + pub ki_oncpu: ::c_int, + /// Last cpu we were on. + pub ki_lastcpu: ::c_int, + /// PID of tracing process. + pub ki_tracer: ::c_int, + /// P2_* flags. + pub ki_flag2: ::c_int, + /// Default FIB number. + pub ki_fibnum: ::c_int, + /// Credential flags. + pub ki_cr_flags: ::u_int, + /// Process jail ID. + pub ki_jid: ::c_int, + /// Number of threads in total. + pub ki_numthreads: ::c_int, + /// Thread ID. + pub ki_tid: ::lwpid_t, + /// Process priority. + pub ki_pri: ::priority, + /// Process rusage statistics. + pub ki_rusage: ::rusage, + /// rusage of children processes. + pub ki_rusage_ch: ::rusage, + // This is normally "struct pcb". + /// Kernel virtual addr of pcb. + pub ki_pcb: *mut ::c_void, + /// Kernel virtual addr of stack. + pub ki_kstack: *mut ::c_void, + /// User convenience pointer. + pub ki_udata: *mut ::c_void, + // This is normally "struct thread". + pub ki_tdaddr: *mut ::c_void, + // This is normally "struct pwddesc". + /// Pointer to process paths info. + pub ki_pd: *mut ::c_void, + pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR], + pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG], + /// PS_* flags. + pub ki_sflag: ::c_long, + /// kthread flag. + pub ki_tdflags: ::c_long, + } +} + +s_no_extra_traits! { + pub struct dirent { + pub d_fileno: ::ino_t, + pub d_off: ::off_t, + pub d_reclen: u16, + pub d_type: u8, + d_pad0: u8, + pub d_namlen: u16, + d_pad1: u16, + pub d_name: [::c_char; 256], + } + + pub struct statfs { + pub f_version: u32, + pub f_type: u32, + pub f_flags: u64, + pub f_bsize: u64, + pub f_iosize: u64, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: i64, + pub f_files: u64, + pub f_ffree: i64, + pub f_syncwrites: u64, + pub f_asyncwrites: u64, + pub f_syncreads: u64, + pub f_asyncreads: u64, + f_spare: [u64; 10], + pub f_namemax: u32, + pub f_owner: ::uid_t, + pub f_fsid: ::fsid_t, + f_charspare: [::c_char; 80], + pub f_fstypename: [::c_char; 16], + pub f_mntfromname: [::c_char; 1024], + pub f_mntonname: [::c_char; 1024], + } + + pub struct vnstat { + pub vn_fileid: u64, + pub vn_size: u64, + pub vn_dev: u64, + pub vn_fsid: u64, + pub vn_mntdir: *mut ::c_char, + pub vn_type: ::c_int, + pub vn_mode: u16, + pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for statfs { + fn eq(&self, other: &statfs) -> bool { + self.f_version == other.f_version + && self.f_type == other.f_type + && self.f_flags == other.f_flags + && self.f_bsize == other.f_bsize + && self.f_iosize == other.f_iosize + && self.f_blocks == other.f_blocks + && self.f_bfree == other.f_bfree + && self.f_bavail == other.f_bavail + && self.f_files == other.f_files + && self.f_ffree == other.f_ffree + && self.f_syncwrites == other.f_syncwrites + && self.f_asyncwrites == other.f_asyncwrites + && self.f_syncreads == other.f_syncreads + && self.f_asyncreads == other.f_asyncreads + && self.f_namemax == other.f_namemax + && self.f_owner == other.f_owner + && self.f_fsid == other.f_fsid + && self.f_fstypename == other.f_fstypename + && self + .f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a,b)| a == b) + && self + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for statfs {} + impl ::fmt::Debug for statfs { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("statfs") + .field("f_bsize", &self.f_bsize) + .field("f_iosize", &self.f_iosize) + .field("f_blocks", &self.f_blocks) + .field("f_bfree", &self.f_bfree) + .field("f_bavail", &self.f_bavail) + .field("f_files", &self.f_files) + .field("f_ffree", &self.f_ffree) + .field("f_syncwrites", &self.f_syncwrites) + .field("f_asyncwrites", &self.f_asyncwrites) + .field("f_syncreads", &self.f_syncreads) + .field("f_asyncreads", &self.f_asyncreads) + .field("f_namemax", &self.f_namemax) + .field("f_owner", &self.f_owner) + .field("f_fsid", &self.f_fsid) + .field("f_fstypename", &self.f_fstypename) + .field("f_mntfromname", &&self.f_mntfromname[..]) + .field("f_mntonname", &&self.f_mntonname[..]) + .finish() + } + } + impl ::hash::Hash for statfs { + fn hash(&self, state: &mut H) { + self.f_version.hash(state); + self.f_type.hash(state); + self.f_flags.hash(state); + self.f_bsize.hash(state); + self.f_iosize.hash(state); + self.f_blocks.hash(state); + self.f_bfree.hash(state); + self.f_bavail.hash(state); + self.f_files.hash(state); + self.f_ffree.hash(state); + self.f_syncwrites.hash(state); + self.f_asyncwrites.hash(state); + self.f_syncreads.hash(state); + self.f_asyncreads.hash(state); + self.f_namemax.hash(state); + self.f_owner.hash(state); + self.f_fsid.hash(state); + self.f_charspare.hash(state); + self.f_fstypename.hash(state); + self.f_mntfromname.hash(state); + self.f_mntonname.hash(state); + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_fileno == other.d_fileno + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self.d_namlen == other.d_namlen + && self + .d_name[..self.d_namlen as _] + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for dirent {} + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_fileno", &self.d_fileno) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + .field("d_namlen", &self.d_namlen) + .field("d_name", &&self.d_name[..self.d_namlen as _]) + .finish() + } + } + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_fileno.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_namlen.hash(state); + self.d_name[..self.d_namlen as _].hash(state); + } + } + + impl PartialEq for vnstat { + fn eq(&self, other: &vnstat) -> bool { + let self_vn_devname: &[::c_char] = &self.vn_devname; + let other_vn_devname: &[::c_char] = &other.vn_devname; + + self.vn_fileid == other.vn_fileid && + self.vn_size == other.vn_size && + self.vn_dev == other.vn_dev && + self.vn_fsid == other.vn_fsid && + self.vn_mntdir == other.vn_mntdir && + self.vn_type == other.vn_type && + self.vn_mode == other.vn_mode && + self_vn_devname == other_vn_devname + } + } + impl Eq for vnstat {} + impl ::fmt::Debug for vnstat { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let self_vn_devname: &[::c_char] = &self.vn_devname; + + f.debug_struct("vnstat") + .field("vn_fileid", &self.vn_fileid) + .field("vn_size", &self.vn_size) + .field("vn_dev", &self.vn_dev) + .field("vn_fsid", &self.vn_fsid) + .field("vn_mntdir", &self.vn_mntdir) + .field("vn_type", &self.vn_type) + .field("vn_mode", &self.vn_mode) + .field("vn_devname", &self_vn_devname) + .finish() + } + } + impl ::hash::Hash for vnstat { + fn hash(&self, state: &mut H) { + let self_vn_devname: &[::c_char] = &self.vn_devname; + + self.vn_fileid.hash(state); + self.vn_size.hash(state); + self.vn_dev.hash(state); + self.vn_fsid.hash(state); + self.vn_mntdir.hash(state); + self.vn_type.hash(state); + self.vn_mode.hash(state); + self_vn_devname.hash(state); + } + } + } +} + +pub const RAND_MAX: ::c_int = 0x7fff_ffff; +pub const ELAST: ::c_int = 97; + +pub const KF_TYPE_EVENTFD: ::c_int = 13; + +/// max length of devicename +pub const SPECNAMELEN: ::c_int = 255; +pub const KI_NSPARE_PTR: usize = 5; + +/// domainset policies +pub const DOMAINSET_POLICY_INVALID: ::c_int = 0; +pub const DOMAINSET_POLICY_ROUNDROBIN: ::c_int = 1; +pub const DOMAINSET_POLICY_FIRSTTOUCH: ::c_int = 2; +pub const DOMAINSET_POLICY_PREFER: ::c_int = 3; +pub const DOMAINSET_POLICY_INTERLEAVE: ::c_int = 4; + +pub const MINCORE_SUPER: ::c_int = 0x60; + +safe_f! { + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + let mut dev = 0; + dev |= ((major & 0xffffff00) as dev_t) << 32; + dev |= ((major & 0x000000ff) as dev_t) << 8; + dev |= ((minor & 0x0000ff00) as dev_t) << 24; + dev |= ((minor & 0xffff00ff) as dev_t) << 0; + dev + } +} + +f! { + pub fn major(dev: ::dev_t) -> ::c_int { + (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int + } + + pub fn minor(dev: ::dev_t) -> ::c_int { + (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int + } +} + +extern "C" { + pub fn setgrent(); + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn freelocale(loc: ::locale_t); + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtyp: ::c_long, + msgflg: ::c_int, + ) -> ::ssize_t; + + pub fn cpuset_getdomain( + level: ::cpulevel_t, + which: ::cpuwhich_t, + id: ::id_t, + setsize: ::size_t, + mask: *mut ::domainset_t, + policy: *mut ::c_int, + ) -> ::c_int; + pub fn cpuset_setdomain( + level: ::cpulevel_t, + which: ::cpuwhich_t, + id: ::id_t, + setsize: ::size_t, + mask: *const ::domainset_t, + policy: ::c_int, + ) -> ::c_int; + + pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; + pub fn basename(path: *mut ::c_char) -> *mut ::c_char; +} + +#[link(name = "kvm")] +extern "C" { + pub fn kvm_kerndisp(kd: *mut ::kvm_t) -> ::kssize_t; +} + +cfg_if! { + if #[cfg(any(target_arch = "x86_64", + target_arch = "aarch64", + target_arch = "riscv64"))] { + mod b64; + pub use self::b64::*; + } +} + +cfg_if! { + if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs new file mode 100644 index 000000000..01d0b4328 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs @@ -0,0 +1,12 @@ +pub const PROC_KPTI_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN; +pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: ::c_int = 1; +pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: ::c_int = 2; +pub const PROC_KPTI_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 1; +pub const PROC_KPTI_STATUS_ACTIVE: ::c_int = 0x80000000; +pub const PROC_LA_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN + 2; +pub const PROC_LA_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 3; +pub const PROC_LA_CTL_LA48_ON_EXEC: ::c_int = 1; +pub const PROC_LA_CTL_LA57_ON_EXEC: ::c_int = 2; +pub const PROC_LA_CTL_DEFAULT_ON_EXEC: ::c_int = 3; +pub const PROC_LA_STATUS_LA48: ::c_int = 0x01000000; +pub const PROC_LA_STATUS_LA57: ::c_int = 0x02000000; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/mod.rs new file mode 100644 index 000000000..4138af576 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -0,0 +1,5692 @@ +pub type fflags_t = u32; +pub type clock_t = i32; + +pub type vm_prot_t = u_char; +pub type kvaddr_t = u64; +pub type segsz_t = isize; +pub type __fixpt_t = u32; +pub type fixpt_t = __fixpt_t; +pub type __lwpid_t = i32; +pub type lwpid_t = __lwpid_t; +pub type blksize_t = i32; +pub type clockid_t = ::c_int; +pub type sem_t = _sem; +pub type timer_t = *mut __c_anonymous__timer; + +pub type fsblkcnt_t = u64; +pub type fsfilcnt_t = u64; +pub type idtype_t = ::c_uint; + +pub type msglen_t = ::c_ulong; +pub type msgqnum_t = ::c_ulong; + +pub type cpulevel_t = ::c_int; +pub type cpuwhich_t = ::c_int; + +pub type mqd_t = *mut ::c_void; +pub type posix_spawnattr_t = *mut ::c_void; +pub type posix_spawn_file_actions_t = *mut ::c_void; + +pub type pthread_spinlock_t = *mut __c_anonymous_pthread_spinlock; +pub type pthread_barrierattr_t = *mut __c_anonymous_pthread_barrierattr; +pub type pthread_barrier_t = *mut __c_anonymous_pthread_barrier; + +pub type uuid_t = ::uuid; +pub type u_int = ::c_uint; +pub type u_char = ::c_uchar; +pub type u_long = ::c_ulong; +pub type u_short = ::c_ushort; + +pub type caddr_t = *mut ::c_char; + +pub type fhandle_t = fhandle; + +pub type au_id_t = ::uid_t; +pub type au_asid_t = ::pid_t; + +pub type cpusetid_t = ::c_int; + +pub type sctp_assoc_t = u32; + +#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[repr(u32)] +pub enum devstat_support_flags { + DEVSTAT_ALL_SUPPORTED = 0x00, + DEVSTAT_NO_BLOCKSIZE = 0x01, + DEVSTAT_NO_ORDERED_TAGS = 0x02, + DEVSTAT_BS_UNAVAILABLE = 0x04, +} +impl ::Copy for devstat_support_flags {} +impl ::Clone for devstat_support_flags { + fn clone(&self) -> devstat_support_flags { + *self + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[repr(u32)] +pub enum devstat_trans_flags { + DEVSTAT_NO_DATA = 0x00, + DEVSTAT_READ = 0x01, + DEVSTAT_WRITE = 0x02, + DEVSTAT_FREE = 0x03, +} + +impl ::Copy for devstat_trans_flags {} +impl ::Clone for devstat_trans_flags { + fn clone(&self) -> devstat_trans_flags { + *self + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[repr(u32)] +pub enum devstat_tag_type { + DEVSTAT_TAG_SIMPLE = 0x00, + DEVSTAT_TAG_HEAD = 0x01, + DEVSTAT_TAG_ORDERED = 0x02, + DEVSTAT_TAG_NONE = 0x03, +} +impl ::Copy for devstat_tag_type {} +impl ::Clone for devstat_tag_type { + fn clone(&self) -> devstat_tag_type { + *self + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[repr(u32)] +pub enum devstat_match_flags { + DEVSTAT_MATCH_NONE = 0x00, + DEVSTAT_MATCH_TYPE = 0x01, + DEVSTAT_MATCH_IF = 0x02, + DEVSTAT_MATCH_PASS = 0x04, +} +impl ::Copy for devstat_match_flags {} +impl ::Clone for devstat_match_flags { + fn clone(&self) -> devstat_match_flags { + *self + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[repr(u32)] +pub enum devstat_priority { + DEVSTAT_PRIORITY_MIN = 0x000, + DEVSTAT_PRIORITY_OTHER = 0x020, + DEVSTAT_PRIORITY_PASS = 0x030, + DEVSTAT_PRIORITY_FD = 0x040, + DEVSTAT_PRIORITY_WFD = 0x050, + DEVSTAT_PRIORITY_TAPE = 0x060, + DEVSTAT_PRIORITY_CD = 0x090, + DEVSTAT_PRIORITY_DISK = 0x110, + DEVSTAT_PRIORITY_ARRAY = 0x120, + DEVSTAT_PRIORITY_MAX = 0xfff, +} +impl ::Copy for devstat_priority {} +impl ::Clone for devstat_priority { + fn clone(&self) -> devstat_priority { + *self + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[repr(u32)] +pub enum devstat_type_flags { + DEVSTAT_TYPE_DIRECT = 0x000, + DEVSTAT_TYPE_SEQUENTIAL = 0x001, + DEVSTAT_TYPE_PRINTER = 0x002, + DEVSTAT_TYPE_PROCESSOR = 0x003, + DEVSTAT_TYPE_WORM = 0x004, + DEVSTAT_TYPE_CDROM = 0x005, + DEVSTAT_TYPE_SCANNER = 0x006, + DEVSTAT_TYPE_OPTICAL = 0x007, + DEVSTAT_TYPE_CHANGER = 0x008, + DEVSTAT_TYPE_COMM = 0x009, + DEVSTAT_TYPE_ASC0 = 0x00a, + DEVSTAT_TYPE_ASC1 = 0x00b, + DEVSTAT_TYPE_STORARRAY = 0x00c, + DEVSTAT_TYPE_ENCLOSURE = 0x00d, + DEVSTAT_TYPE_FLOPPY = 0x00e, + DEVSTAT_TYPE_MASK = 0x00f, + DEVSTAT_TYPE_IF_SCSI = 0x010, + DEVSTAT_TYPE_IF_IDE = 0x020, + DEVSTAT_TYPE_IF_OTHER = 0x030, + DEVSTAT_TYPE_IF_MASK = 0x0f0, + DEVSTAT_TYPE_PASS = 0x100, +} +impl ::Copy for devstat_type_flags {} +impl ::Clone for devstat_type_flags { + fn clone(&self) -> devstat_type_flags { + *self + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[repr(u32)] +pub enum devstat_metric { + DSM_NONE, + DSM_TOTAL_BYTES, + DSM_TOTAL_BYTES_READ, + DSM_TOTAL_BYTES_WRITE, + DSM_TOTAL_TRANSFERS, + DSM_TOTAL_TRANSFERS_READ, + DSM_TOTAL_TRANSFERS_WRITE, + DSM_TOTAL_TRANSFERS_OTHER, + DSM_TOTAL_BLOCKS, + DSM_TOTAL_BLOCKS_READ, + DSM_TOTAL_BLOCKS_WRITE, + DSM_KB_PER_TRANSFER, + DSM_KB_PER_TRANSFER_READ, + DSM_KB_PER_TRANSFER_WRITE, + DSM_TRANSFERS_PER_SECOND, + DSM_TRANSFERS_PER_SECOND_READ, + DSM_TRANSFERS_PER_SECOND_WRITE, + DSM_TRANSFERS_PER_SECOND_OTHER, + DSM_MB_PER_SECOND, + DSM_MB_PER_SECOND_READ, + DSM_MB_PER_SECOND_WRITE, + DSM_BLOCKS_PER_SECOND, + DSM_BLOCKS_PER_SECOND_READ, + DSM_BLOCKS_PER_SECOND_WRITE, + DSM_MS_PER_TRANSACTION, + DSM_MS_PER_TRANSACTION_READ, + DSM_MS_PER_TRANSACTION_WRITE, + DSM_SKIP, + DSM_TOTAL_BYTES_FREE, + DSM_TOTAL_TRANSFERS_FREE, + DSM_TOTAL_BLOCKS_FREE, + DSM_KB_PER_TRANSFER_FREE, + DSM_MB_PER_SECOND_FREE, + DSM_TRANSFERS_PER_SECOND_FREE, + DSM_BLOCKS_PER_SECOND_FREE, + DSM_MS_PER_TRANSACTION_OTHER, + DSM_MS_PER_TRANSACTION_FREE, + DSM_BUSY_PCT, + DSM_QUEUE_LENGTH, + DSM_TOTAL_DURATION, + DSM_TOTAL_DURATION_READ, + DSM_TOTAL_DURATION_WRITE, + DSM_TOTAL_DURATION_FREE, + DSM_TOTAL_DURATION_OTHER, + DSM_TOTAL_BUSY_TIME, + DSM_MAX, +} +impl ::Copy for devstat_metric {} +impl ::Clone for devstat_metric { + fn clone(&self) -> devstat_metric { + *self + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] +#[repr(u32)] +pub enum devstat_select_mode { + DS_SELECT_ADD, + DS_SELECT_ONLY, + DS_SELECT_REMOVE, + DS_SELECT_ADDONLY, +} +impl ::Copy for devstat_select_mode {} +impl ::Clone for devstat_select_mode { + fn clone(&self) -> devstat_select_mode { + *self + } +} + +s! { + pub struct aiocb { + pub aio_fildes: ::c_int, + pub aio_offset: ::off_t, + pub aio_buf: *mut ::c_void, + pub aio_nbytes: ::size_t, + __unused1: [::c_int; 2], + __unused2: *mut ::c_void, + pub aio_lio_opcode: ::c_int, + pub aio_reqprio: ::c_int, + // unused 3 through 5 are the __aiocb_private structure + __unused3: ::c_long, + __unused4: ::c_long, + __unused5: *mut ::c_void, + pub aio_sigevent: sigevent + } + + pub struct jail { + pub version: u32, + pub path: *mut ::c_char, + pub hostname: *mut ::c_char, + pub jailname: *mut ::c_char, + pub ip4s: ::c_uint, + pub ip6s: ::c_uint, + pub ip4: *mut ::in_addr, + pub ip6: *mut ::in6_addr, + } + + pub struct statvfs { + pub f_bavail: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_blocks: ::fsblkcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_bsize: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_fsid: ::c_ulong, + pub f_namemax: ::c_ulong, + } + + // internal structure has changed over time + pub struct _sem { + data: [u32; 4], + } + pub struct sembuf { + pub sem_num: ::c_ushort, + pub sem_op: ::c_short, + pub sem_flg: ::c_short, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + __unused1: *mut ::c_void, + __unused2: *mut ::c_void, + pub msg_cbytes: ::msglen_t, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + pub msg_stime: ::time_t, + pub msg_rtime: ::time_t, + pub msg_ctime: ::time_t, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } + + pub struct mmsghdr { + pub msg_hdr: ::msghdr, + pub msg_len: ::ssize_t, + } + + pub struct sockcred { + pub sc_uid: ::uid_t, + pub sc_euid: ::uid_t, + pub sc_gid: ::gid_t, + pub sc_egid: ::gid_t, + pub sc_ngroups: ::c_int, + pub sc_groups: [::gid_t; 1], + } + + pub struct ptrace_vm_entry { + pub pve_entry: ::c_int, + pub pve_timestamp: ::c_int, + pub pve_start: ::c_ulong, + pub pve_end: ::c_ulong, + pub pve_offset: ::c_ulong, + pub pve_prot: ::c_uint, + pub pve_pathlen: ::c_uint, + pub pve_fileid: ::c_long, + pub pve_fsid: u32, + pub pve_path: *mut ::c_char, + } + + pub struct ptrace_lwpinfo { + pub pl_lwpid: lwpid_t, + pub pl_event: ::c_int, + pub pl_flags: ::c_int, + pub pl_sigmask: ::sigset_t, + pub pl_siglist: ::sigset_t, + pub pl_siginfo: ::siginfo_t, + pub pl_tdname: [::c_char; ::MAXCOMLEN as usize + 1], + pub pl_child_pid: ::pid_t, + pub pl_syscall_code: ::c_uint, + pub pl_syscall_narg: ::c_uint, + } + + pub struct ptrace_sc_ret { + pub sr_retval: [::register_t; 2], + pub sr_error: ::c_int, + } + + pub struct ptrace_coredump { + pub pc_fd: ::c_int, + pub pc_flags: u32, + pub pc_limit: ::off_t, + } + + pub struct ptrace_sc_remote { + pub pscr_ret: ptrace_sc_ret, + pub pscr_syscall: ::c_uint, + pub pscr_nargs: ::c_uint, + pub pscr_args: *mut ::register_t, + } + + pub struct cpuset_t { + #[cfg(target_pointer_width = "64")] + __bits: [::c_long; 4], + #[cfg(target_pointer_width = "32")] + __bits: [::c_long; 8], + } + + pub struct cap_rights_t { + cr_rights: [u64; 2], + } + + pub struct umutex { + m_owner: ::lwpid_t, + m_flags: u32, + m_ceilings: [u32; 2], + m_rb_link: ::uintptr_t, + #[cfg(target_pointer_width = "32")] + m_pad: u32, + m_spare: [u32; 2], + + } + + pub struct ucond { + c_has_waiters: u32, + c_flags: u32, + c_clockid: u32, + c_spare: [u32; 1], + } + + pub struct uuid { + pub time_low: u32, + pub time_mid: u16, + pub time_hi_and_version: u16, + pub clock_seq_hi_and_reserved: u8, + pub clock_seq_low: u8, + pub node: [u8; _UUID_NODE_LEN], + } + + pub struct __c_anonymous_pthread_spinlock { + s_clock: umutex, + } + + pub struct __c_anonymous_pthread_barrierattr { + pshared: ::c_int, + } + + pub struct __c_anonymous_pthread_barrier { + b_lock: umutex, + b_cv: ucond, + b_cycle: i64, + b_count: ::c_int, + b_waiters: ::c_int, + b_refcount: ::c_int, + b_destroying: ::c_int, + } + + pub struct kinfo_vmentry { + pub kve_structsize: ::c_int, + pub kve_type: ::c_int, + pub kve_start: u64, + pub kve_end: u64, + pub kve_offset: u64, + pub kve_vn_fileid: u64, + #[cfg(not(freebsd11))] + pub kve_vn_fsid_freebsd11: u32, + #[cfg(freebsd11)] + pub kve_vn_fsid: u32, + pub kve_flags: ::c_int, + pub kve_resident: ::c_int, + pub kve_private_resident: ::c_int, + pub kve_protection: ::c_int, + pub kve_ref_count: ::c_int, + pub kve_shadow_count: ::c_int, + pub kve_vn_type: ::c_int, + pub kve_vn_size: u64, + #[cfg(not(freebsd11))] + pub kve_vn_rdev_freebsd11: u32, + #[cfg(freebsd11)] + pub kve_vn_rdev: u32, + pub kve_vn_mode: u16, + pub kve_status: u16, + #[cfg(not(freebsd11))] + pub kve_vn_fsid: u64, + #[cfg(not(freebsd11))] + pub kve_vn_rdev: u64, + #[cfg(not(freebsd11))] + _kve_is_spare: [::c_int; 8], + #[cfg(freebsd11)] + _kve_is_spare: [::c_int; 12], + pub kve_path: [[::c_char; 32]; 32], + } + + pub struct __c_anonymous_filestat { + pub stqe_next: *mut filestat, + } + + pub struct filestat { + pub fs_type: ::c_int, + pub fs_flags: ::c_int, + pub fs_fflags: ::c_int, + pub fs_uflags: ::c_int, + pub fs_fd: ::c_int, + pub fs_ref_count: ::c_int, + pub fs_offset: ::off_t, + pub fs_typedep: *mut ::c_void, + pub fs_path: *mut ::c_char, + pub next: __c_anonymous_filestat, + pub fs_cap_rights: cap_rights_t, + } + + pub struct filestat_list { + pub stqh_first: *mut filestat, + pub stqh_last: *mut *mut filestat, + } + + pub struct procstat { + pub tpe: ::c_int, + pub kd: ::uintptr_t, + pub vmentries: *mut ::c_void, + pub files: *mut ::c_void, + pub argv: *mut ::c_void, + pub envv: *mut ::c_void, + pub core: ::uintptr_t, + } + + pub struct itimerspec { + pub it_interval: ::timespec, + pub it_value: ::timespec, + } + + pub struct __c_anonymous__timer { + _priv: [::c_int; 3], + } + + /// Used to hold a copy of the command line, if it had a sane length. + pub struct pargs { + /// Reference count. + pub ar_ref: u_int, + /// Length. + pub ar_length: u_int, + /// Arguments. + pub ar_args: [::c_uchar; 1], + } + + pub struct priority { + /// Scheduling class. + pub pri_class: u_char, + /// Normal priority level. + pub pri_level: u_char, + /// Priority before propagation. + pub pri_native: u_char, + /// User priority based on p_cpu and p_nice. + pub pri_user: u_char, + } + + pub struct kvm_swap { + pub ksw_devname: [::c_char; 32], + pub ksw_used: u_int, + pub ksw_total: u_int, + pub ksw_flags: ::c_int, + pub ksw_reserved1: u_int, + pub ksw_reserved2: u_int, + } + + pub struct nlist { + /// symbol name (in memory) + pub n_name: *const ::c_char, + /// type defines + pub n_type: ::c_uchar, + /// "type" and binding information + pub n_other: ::c_char, + /// used by stab entries + pub n_desc: ::c_short, + pub n_value: ::c_ulong, + } + + pub struct kvm_nlist { + pub n_name: *const ::c_char, + pub n_type: ::c_uchar, + pub n_value: ::kvaddr_t, + } + + pub struct __c_anonymous_sem { + _priv: ::uintptr_t, + } + + pub struct semid_ds { + pub sem_perm: ::ipc_perm, + pub __sem_base: *mut __c_anonymous_sem, + pub sem_nsems: ::c_ushort, + pub sem_otime: ::time_t, + pub sem_ctime: ::time_t, + } + + pub struct vmtotal { + pub t_vm: u64, + pub t_avm: u64, + pub t_rm: u64, + pub t_arm: u64, + pub t_vmshr: u64, + pub t_avmshr: u64, + pub t_rmshr: u64, + pub t_armshr: u64, + pub t_free: u64, + pub t_rq: i16, + pub t_dw: i16, + pub t_pw: i16, + pub t_sl: i16, + pub t_sw: i16, + pub t_pad: [u16; 3], + } + + pub struct sockstat { + pub inp_ppcb: u64, + pub so_addr: u64, + pub so_pcb: u64, + pub unp_conn: u64, + pub dom_family: ::c_int, + pub proto: ::c_int, + pub so_rcv_sb_state: ::c_int, + pub so_snd_sb_state: ::c_int, + /// Socket address. + pub sa_local: ::sockaddr_storage, + /// Peer address. + pub sa_peer: ::sockaddr_storage, + pub type_: ::c_int, + pub dname: [::c_char; 32], + #[cfg(any(freebsd12, freebsd13, freebsd14))] + pub sendq: ::c_uint, + #[cfg(any(freebsd12, freebsd13, freebsd14))] + pub recvq: ::c_uint, + } + + pub struct shmstat { + pub size: u64, + pub mode: u16, + } + + pub struct spacectl_range { + pub r_offset: ::off_t, + pub r_len: ::off_t + } + + pub struct rusage_ext { + pub rux_runtime: u64, + pub rux_uticks: u64, + pub rux_sticks: u64, + pub rux_iticks: u64, + pub rux_uu: u64, + pub rux_su: u64, + pub rux_tu: u64, + } + + pub struct if_clonereq { + pub ifcr_total: ::c_int, + pub ifcr_count: ::c_int, + pub ifcr_buffer: *mut ::c_char, + } + + pub struct if_msghdr { + /// to skip over non-understood messages + pub ifm_msglen: ::c_ushort, + /// future binary compatibility + pub ifm_version: ::c_uchar, + /// message type + pub ifm_type: ::c_uchar, + /// like rtm_addrs + pub ifm_addrs: ::c_int, + /// value of if_flags + pub ifm_flags: ::c_int, + /// index for associated ifp + pub ifm_index: ::c_ushort, + pub _ifm_spare1: ::c_ushort, + /// statistics and other data about if + pub ifm_data: if_data, + } + + pub struct if_msghdrl { + /// to skip over non-understood messages + pub ifm_msglen: ::c_ushort, + /// future binary compatibility + pub ifm_version: ::c_uchar, + /// message type + pub ifm_type: ::c_uchar, + /// like rtm_addrs + pub ifm_addrs: ::c_int, + /// value of if_flags + pub ifm_flags: ::c_int, + /// index for associated ifp + pub ifm_index: ::c_ushort, + /// spare space to grow if_index, see if_var.h + pub _ifm_spare1: ::c_ushort, + /// length of if_msghdrl incl. if_data + pub ifm_len: ::c_ushort, + /// offset of if_data from beginning + pub ifm_data_off: ::c_ushort, + pub _ifm_spare2: ::c_int, + /// statistics and other data about if + pub ifm_data: if_data, + } + + pub struct ifa_msghdr { + /// to skip over non-understood messages + pub ifam_msglen: ::c_ushort, + /// future binary compatibility + pub ifam_version: ::c_uchar, + /// message type + pub ifam_type: ::c_uchar, + /// like rtm_addrs + pub ifam_addrs: ::c_int, + /// value of ifa_flags + pub ifam_flags: ::c_int, + /// index for associated ifp + pub ifam_index: ::c_ushort, + pub _ifam_spare1: ::c_ushort, + /// value of ifa_ifp->if_metric + pub ifam_metric: ::c_int, + } + + pub struct ifa_msghdrl { + /// to skip over non-understood messages + pub ifam_msglen: ::c_ushort, + /// future binary compatibility + pub ifam_version: ::c_uchar, + /// message type + pub ifam_type: ::c_uchar, + /// like rtm_addrs + pub ifam_addrs: ::c_int, + /// value of ifa_flags + pub ifam_flags: ::c_int, + /// index for associated ifp + pub ifam_index: ::c_ushort, + /// spare space to grow if_index, see if_var.h + pub _ifam_spare1: ::c_ushort, + /// length of ifa_msghdrl incl. if_data + pub ifam_len: ::c_ushort, + /// offset of if_data from beginning + pub ifam_data_off: ::c_ushort, + /// value of ifa_ifp->if_metric + pub ifam_metric: ::c_int, + /// statistics and other data about if or address + pub ifam_data: if_data, + } + + pub struct ifma_msghdr { + /// to skip over non-understood messages + pub ifmam_msglen: ::c_ushort, + /// future binary compatibility + pub ifmam_version: ::c_uchar, + /// message type + pub ifmam_type: ::c_uchar, + /// like rtm_addrs + pub ifmam_addrs: ::c_int, + /// value of ifa_flags + pub ifmam_flags: ::c_int, + /// index for associated ifp + pub ifmam_index: ::c_ushort, + pub _ifmam_spare1: ::c_ushort, + } + + pub struct if_announcemsghdr { + /// to skip over non-understood messages + pub ifan_msglen: ::c_ushort, + /// future binary compatibility + pub ifan_version: ::c_uchar, + /// message type + pub ifan_type: ::c_uchar, + /// index for associated ifp + pub ifan_index: ::c_ushort, + /// if name, e.g. "en0" + pub ifan_name: [::c_char; ::IFNAMSIZ as usize], + /// what type of announcement + pub ifan_what: ::c_ushort, + } + + pub struct ifreq_buffer { + pub length: ::size_t, + pub buffer: *mut ::c_void, + } + + pub struct ifaliasreq { + /// if name, e.g. "en0" + pub ifra_name: [::c_char; ::IFNAMSIZ as usize], + pub ifra_addr: ::sockaddr, + pub ifra_broadaddr: ::sockaddr, + pub ifra_mask: ::sockaddr, + pub ifra_vhid: ::c_int, + } + + /// 9.x compat + pub struct oifaliasreq { + /// if name, e.g. "en0" + pub ifra_name: [::c_char; ::IFNAMSIZ as usize], + pub ifra_addr: ::sockaddr, + pub ifra_broadaddr: ::sockaddr, + pub ifra_mask: ::sockaddr, + } + + pub struct ifmediareq { + /// if name, e.g. "en0" + pub ifm_name: [::c_char; ::IFNAMSIZ as usize], + /// current media options + pub ifm_current: ::c_int, + /// don't care mask + pub ifm_mask: ::c_int, + /// media status + pub ifm_status: ::c_int, + /// active options + pub ifm_active: ::c_int, + /// # entries in ifm_ulist array + pub ifm_count: ::c_int, + /// media words + pub ifm_ulist: *mut ::c_int, + } + + pub struct ifdrv { + /// if name, e.g. "en0" + pub ifd_name: [::c_char; ::IFNAMSIZ as usize], + pub ifd_cmd: ::c_ulong, + pub ifd_len: ::size_t, + pub ifd_data: *mut ::c_void, + } + + pub struct ifi2creq { + /// i2c address (0xA0, 0xA2) + pub dev_addr: u8, + /// read offset + pub offset: u8, + /// read length + pub len: u8, + pub spare0: u8, + pub spare1: u32, + /// read buffer + pub data: [u8; 8], + } + + pub struct ifrsshash { + /// if name, e.g. "en0" + pub ifrh_name: [::c_char; ::IFNAMSIZ as usize], + /// RSS_FUNC_ + pub ifrh_func: u8, + pub ifrh_spare0: u8, + pub ifrh_spare1: u16, + /// RSS_TYPE_ + pub ifrh_types: u32, + } + + pub struct ifmibdata { + /// name of interface + pub ifmd_name: [::c_char; ::IFNAMSIZ as usize], + /// number of promiscuous listeners + pub ifmd_pcount: ::c_int, + /// interface flags + pub ifmd_flags: ::c_int, + /// instantaneous length of send queue + pub ifmd_snd_len: ::c_int, + /// maximum length of send queue + pub ifmd_snd_maxlen: ::c_int, + /// number of drops in send queue + pub ifmd_snd_drops: ::c_int, + /// for future expansion + pub ifmd_filler: [::c_int; 4], + /// generic information and statistics + pub ifmd_data: if_data, + } + + pub struct ifmib_iso_8802_3 { + pub dot3StatsAlignmentErrors: u32, + pub dot3StatsFCSErrors: u32, + pub dot3StatsSingleCollisionFrames: u32, + pub dot3StatsMultipleCollisionFrames: u32, + pub dot3StatsSQETestErrors: u32, + pub dot3StatsDeferredTransmissions: u32, + pub dot3StatsLateCollisions: u32, + pub dot3StatsExcessiveCollisions: u32, + pub dot3StatsInternalMacTransmitErrors: u32, + pub dot3StatsCarrierSenseErrors: u32, + pub dot3StatsFrameTooLongs: u32, + pub dot3StatsInternalMacReceiveErrors: u32, + pub dot3StatsEtherChipSet: u32, + pub dot3StatsMissedFrames: u32, + pub dot3StatsCollFrequencies: [u32; 16], + pub dot3Compliance: u32, + } + + pub struct __c_anonymous_ph { + pub ph1: u64, + pub ph2: u64, + } + + pub struct fid { + pub fid_len: ::c_ushort, + pub fid_data0: ::c_ushort, + pub fid_data: [::c_char; ::MAXFIDSZ as usize], + } + + pub struct fhandle { + pub fh_fsid: ::fsid_t, + pub fh_fid: fid, + } + + pub struct bintime { + pub sec: ::time_t, + pub frac: u64, + } + + pub struct clockinfo { + /// clock frequency + pub hz: ::c_int, + /// micro-seconds per hz tick + pub tick: ::c_int, + pub spare: ::c_int, + /// statistics clock frequency + pub stathz: ::c_int, + /// profiling clock frequency + pub profhz: ::c_int, + } + + pub struct __c_anonymous_stailq_entry_devstat { + pub stqe_next: *mut devstat, + } + + pub struct devstat { + /// Update sequence + pub sequence0: ::u_int, + /// Allocated entry + pub allocated: ::c_int, + /// started ops + pub start_count: ::u_int, + /// completed ops + pub end_count: ::u_int, + /// busy time unaccounted for since this time + pub busy_from: bintime, + pub dev_links: __c_anonymous_stailq_entry_devstat, + /// Devstat device number. + pub device_number: u32, + pub device_name: [::c_char; DEVSTAT_NAME_LEN as usize], + pub unit_number: ::c_int, + pub bytes: [u64; DEVSTAT_N_TRANS_FLAGS as usize], + pub operations: [u64; DEVSTAT_N_TRANS_FLAGS as usize], + pub duration: [bintime; DEVSTAT_N_TRANS_FLAGS as usize], + pub busy_time: bintime, + /// Time the device was created. + pub creation_time: bintime, + /// Block size, bytes + pub block_size: u32, + /// The number of simple, ordered, and head of queue tags sent. + pub tag_types: [u64; 3], + /// Which statistics are supported by a given device. + pub flags: devstat_support_flags, + /// Device type + pub device_type: devstat_type_flags, + /// Controls list pos. + pub priority: devstat_priority, + /// Identification for GEOM nodes + pub id: *const ::c_void, + /// Update sequence + pub sequence1: ::u_int, + } + + pub struct devstat_match { + pub match_fields: devstat_match_flags, + pub device_type: devstat_type_flags, + pub num_match_categories: ::c_int, + } + + pub struct devstat_match_table { + pub match_str: *const ::c_char, + pub type_: devstat_type_flags, + pub match_field: devstat_match_flags, + } + + pub struct device_selection { + pub device_number: u32, + pub device_name: [::c_char; DEVSTAT_NAME_LEN as usize], + pub unit_number: ::c_int, + pub selected: ::c_int, + pub bytes: u64, + pub position: ::c_int, + } + + pub struct devinfo { + pub devices: *mut devstat, + pub mem_ptr: *mut u8, + pub generation: ::c_long, + pub numdevs: ::c_int, + } + + pub struct sockcred2 { + pub sc_version: ::c_int, + pub sc_pid: ::pid_t, + pub sc_uid: ::uid_t, + pub sc_euid: ::uid_t, + pub sc_gid: ::gid_t, + pub sc_egid: ::gid_t, + pub sc_ngroups: ::c_int, + pub sc_groups: [::gid_t; 1], + } + + pub struct ifconf { + pub ifc_len: ::c_int, + #[cfg(libc_union)] + pub ifc_ifcu: __c_anonymous_ifc_ifcu, + } + + pub struct au_mask_t { + pub am_success: ::c_uint, + pub am_failure: ::c_uint, + } + + pub struct au_tid_t { + pub port: u32, + pub machine: u32, + } + + pub struct auditinfo_t { + pub ai_auid: ::au_id_t, + pub ai_mask: ::au_mask_t, + pub ai_termid: au_tid_t, + pub ai_asid: ::au_asid_t, + } + + pub struct tcp_fastopen { + pub enable: ::c_int, + pub psk: [u8; ::TCP_FASTOPEN_PSK_LEN as usize], + } + + pub struct tcp_function_set { + pub function_set_name: [::c_char; ::TCP_FUNCTION_NAME_LEN_MAX as usize], + pub pcbcnt: u32, + } + + 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 tcp_snd_wscale: u8, + pub tcp_rcv_wscale: u8, + 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, + pub __tcpi_last_data_sent: u32, + pub __tcpi_last_ack_sent: u32, + pub tcpi_last_data_recv: u32, + pub __tcpi_last_ack_recv: u32, + 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_snd_wnd: u32, + pub tcpi_snd_bwnd: u32, + pub tcpi_snd_nxt: u32, + pub tcpi_rcv_nxt: u32, + pub tcpi_toe_tid: u32, + pub tcpi_snd_rexmitpack: u32, + pub tcpi_rcv_ooopack: u32, + pub tcpi_snd_zerowin: u32, + #[cfg(freebsd14)] + pub tcpi_delivered_ce: u32, + #[cfg(freebsd14)] + pub tcpi_received_ce: u32, + #[cfg(freebsd14)] + pub __tcpi_delivered_e1_bytes: u32, + #[cfg(freebsd14)] + pub __tcpi_delivered_e0_bytes: u32, + #[cfg(freebsd14)] + pub __tcpi_delivered_ce_bytes: u32, + #[cfg(freebsd14)] + pub __tcpi_received_e1_bytes: u32, + #[cfg(freebsd14)] + pub __tcpi_received_e0_bytes: u32, + #[cfg(freebsd14)] + pub __tcpi_received_ce_bytes: u32, + #[cfg(freebsd14)] + pub __tcpi_pad: [u32; 19], + #[cfg(not(freebsd14))] + pub __tcpi_pad: [u32; 26], + } + + pub struct _umtx_time { + pub _timeout: ::timespec, + pub _flags: u32, + pub _clockid: u32, + } + + pub struct shm_largepage_conf { + pub psind: ::c_int, + pub alloc_policy: ::c_int, + __pad: [::c_int; 10], + } + + pub struct memory_type { + __priva: [::uintptr_t; 32], + __privb: [::uintptr_t; 26], + } + + pub struct memory_type_list { + __priv: [::uintptr_t; 2], + } + + pub struct pidfh { + __priva: [[::uintptr_t; 32]; 8], + __privb: [::uintptr_t; 2], + } + + pub struct sctp_event { + pub se_assoc_id: ::sctp_assoc_t, + pub se_type: u16, + pub se_on: u8, + } + + pub struct sctp_event_subscribe { + pub sctp_data_io_event: u8, + pub sctp_association_event: u8, + pub sctp_address_event: u8, + pub sctp_send_failure_event: u8, + pub sctp_peer_error_event: u8, + pub sctp_shutdown_event: u8, + pub sctp_partial_delivery_event: u8, + pub sctp_adaptation_layer_event: u8, + pub sctp_authentication_event: u8, + pub sctp_sender_dry_event: u8, + pub sctp_stream_reset_event: u8, + } + + pub struct sctp_initmsg { + pub sinit_num_ostreams: u16, + pub sinit_max_instreams: u16, + pub sinit_max_attempts: u16, + pub sinit_max_init_timeo: u16, + } + + pub struct sctp_sndrcvinfo { + pub sinfo_stream: u16, + pub sinfo_ssn: u16, + pub sinfo_flags: u16, + pub sinfo_ppid: u32, + pub sinfo_context: u32, + pub sinfo_timetolive: u32, + pub sinfo_tsn: u32, + pub sinfo_cumtsn: u32, + pub sinfo_assoc_id: ::sctp_assoc_t, + pub sinfo_keynumber: u16, + pub sinfo_keynumber_valid: u16, + pub __reserve_pad: [[u8; 23]; 4], + } + + pub struct sctp_extrcvinfo { + pub sinfo_stream: u16, + pub sinfo_ssn: u16, + pub sinfo_flags: u16, + pub sinfo_ppid: u32, + pub sinfo_context: u32, + pub sinfo_timetolive: u32, + pub sinfo_tsn: u32, + pub sinfo_cumtsn: u32, + pub sinfo_assoc_id: ::sctp_assoc_t, + pub serinfo_next_flags: u16, + pub serinfo_next_stream: u16, + pub serinfo_next_aid: u32, + pub serinfo_next_length: u32, + pub serinfo_next_ppid: u32, + pub sinfo_keynumber: u16, + pub sinfo_keynumber_valid: u16, + pub __reserve_pad: [[u8; 19]; 4], + } + + pub struct sctp_sndinfo { + pub snd_sid: u16, + pub snd_flags: u16, + pub snd_ppid: u32, + pub snd_context: u32, + pub snd_assoc_id: ::sctp_assoc_t, + } + + pub struct sctp_prinfo { + pub pr_policy: u16, + pub pr_value: u32, + } + + pub struct sctp_default_prinfo { + pub pr_policy: u16, + pub pr_value: u32, + pub pr_assoc_id: ::sctp_assoc_t, + } + + pub struct sctp_authinfo { + pub auth_keynumber: u16, + } + + pub struct sctp_rcvinfo { + pub rcv_sid: u16, + pub rcv_ssn: u16, + pub rcv_flags: u16, + pub rcv_ppid: u32, + pub rcv_tsn: u32, + pub rcv_cumtsn: u32, + pub rcv_context: u32, + pub rcv_assoc_id: ::sctp_assoc_t, + } + + pub struct sctp_nxtinfo { + pub nxt_sid: u16, + pub nxt_flags: u16, + pub nxt_ppid: u32, + pub nxt_length: u32, + pub nxt_assoc_id: ::sctp_assoc_t, + } + + pub struct sctp_recvv_rn { + pub recvv_rcvinfo: sctp_rcvinfo, + pub recvv_nxtinfo: sctp_nxtinfo, + } + + pub struct sctp_sendv_spa { + pub sendv_flags: u32, + pub sendv_sndinfo: sctp_sndinfo, + pub sendv_prinfo: sctp_prinfo, + pub sendv_authinfo: sctp_authinfo, + } + + pub struct sctp_snd_all_completes { + pub sall_stream: u16, + pub sall_flags: u16, + pub sall_ppid: u32, + pub sall_context: u32, + pub sall_num_sent: u32, + pub sall_num_failed: u32, + } + + pub struct sctp_pcbinfo { + pub ep_count: u32, + pub asoc_count: u32, + pub laddr_count: u32, + pub raddr_count: u32, + pub chk_count: u32, + pub readq_count: u32, + pub free_chunks: u32, + pub stream_oque: u32, + } + + pub struct sctp_sockstat { + pub ss_assoc_id: ::sctp_assoc_t, + pub ss_total_sndbuf: u32, + pub ss_total_recv_buf: u32, + } + + pub struct sctp_assoc_change { + pub sac_type: u16, + pub sac_flags: u16, + pub sac_length: u32, + pub sac_state: u16, + pub sac_error: u16, + pub sac_outbound_streams: u16, + pub sac_inbound_streams: u16, + pub sac_assoc_id: ::sctp_assoc_t, + pub sac_info: [u8; 0], + } + + pub struct sctp_paddr_change { + pub spc_type: u16, + pub spc_flags: u16, + pub spc_length: u32, + pub spc_aaddr: ::sockaddr_storage, + pub spc_state: u32, + pub spc_error: u32, + pub spc_assoc_id: ::sctp_assoc_t, + } + + pub struct sctp_remote_error { + pub sre_type: u16, + pub sre_flags: u16, + pub sre_length: u32, + pub sre_error: u16, + pub sre_assoc_id: ::sctp_assoc_t, + pub sre_data: [u8; 0], + } + + pub struct sctp_send_failed_event { + pub ssfe_type: u16, + pub ssfe_flags: u16, + pub ssfe_length: u32, + pub ssfe_error: u32, + pub ssfe_info: sctp_sndinfo, + pub ssfe_assoc_id: ::sctp_assoc_t, + pub ssfe_data: [u8; 0], + } + + pub struct sctp_shutdown_event { + pub sse_type: u16, + pub sse_flags: u16, + pub sse_length: u32, + pub sse_assoc_id: ::sctp_assoc_t, + } + + pub struct sctp_adaptation_event { + pub sai_type: u16, + pub sai_flags: u16, + pub sai_length: u32, + pub sai_adaptation_ind: u32, + pub sai_assoc_id: ::sctp_assoc_t, + } + + pub struct sctp_setadaptation { + pub ssb_adaptation_ind: u32, + } + + pub struct sctp_pdapi_event { + pub pdapi_type: u16, + pub pdapi_flags: u16, + pub pdapi_length: u32, + pub pdapi_indication: u32, + pub pdapi_stream: u16, + pub pdapi_seq: u16, + pub pdapi_assoc_id: ::sctp_assoc_t, + } + + pub struct sctp_sender_dry_event { + pub sender_dry_type: u16, + pub sender_dry_flags: u16, + pub sender_dry_length: u32, + pub sender_dry_assoc_id: ::sctp_assoc_t, + } + + pub struct sctp_stream_reset_event { + pub strreset_type: u16, + pub strreset_flags: u16, + pub strreset_length: u32, + pub strreset_assoc_id: ::sctp_assoc_t, + pub strreset_stream_list: [u16; 0], + } + + pub struct sctp_stream_change_event { + pub strchange_type: u16, + pub strchange_flags: u16, + pub strchange_length: u32, + pub strchange_assoc_id: ::sctp_assoc_t, + pub strchange_instrms: u16, + pub strchange_outstrms: u16, + } +} + +s_no_extra_traits! { + pub struct utmpx { + pub ut_type: ::c_short, + pub ut_tv: ::timeval, + pub ut_id: [::c_char; 8], + pub ut_pid: ::pid_t, + pub ut_user: [::c_char; 32], + pub ut_line: [::c_char; 16], + pub ut_host: [::c_char; 128], + pub __ut_spare: [::c_char; 64], + } + + #[cfg(libc_union)] + pub union __c_anonymous_cr_pid { + __cr_unused: *mut ::c_void, + pub cr_pid: ::pid_t, + } + + pub struct xucred { + pub cr_version: ::c_uint, + pub cr_uid: ::uid_t, + pub cr_ngroups: ::c_short, + pub cr_groups: [::gid_t; 16], + #[cfg(libc_union)] + pub cr_pid__c_anonymous_union: __c_anonymous_cr_pid, + #[cfg(not(libc_union))] + __cr_unused1: *mut ::c_void, + } + + pub struct sockaddr_dl { + pub sdl_len: ::c_uchar, + pub sdl_family: ::c_uchar, + pub sdl_index: ::c_ushort, + pub sdl_type: ::c_uchar, + pub sdl_nlen: ::c_uchar, + pub sdl_alen: ::c_uchar, + pub sdl_slen: ::c_uchar, + pub sdl_data: [::c_char; 46], + } + + pub struct mq_attr { + pub mq_flags: ::c_long, + pub mq_maxmsg: ::c_long, + pub mq_msgsize: ::c_long, + pub mq_curmsgs: ::c_long, + __reserved: [::c_long; 4] + } + + pub struct sigevent { + pub sigev_notify: ::c_int, + pub sigev_signo: ::c_int, + pub sigev_value: ::sigval, + //The rest of the structure is actually a union. We expose only + //sigev_notify_thread_id because it's the most useful union member. + pub sigev_notify_thread_id: ::lwpid_t, + #[cfg(target_pointer_width = "64")] + __unused1: ::c_int, + __unused2: [::c_long; 7] + } + + pub struct ptsstat { + #[cfg(any(freebsd12, freebsd13, freebsd14))] + pub dev: u64, + #[cfg(not(any(freebsd12, freebsd13, freebsd14)))] + pub dev: u32, + pub devname: [::c_char; SPECNAMELEN as usize + 1], + } + + #[cfg(libc_union)] + pub union __c_anonymous_elf32_auxv_union { + pub a_val: ::c_int, + } + + pub struct Elf32_Auxinfo { + pub a_type: ::c_int, + #[cfg(libc_union)] + pub a_un: __c_anonymous_elf32_auxv_union, + } + + #[cfg(libc_union)] + pub union __c_anonymous_ifi_epoch { + pub tt: ::time_t, + pub ph: u64, + } + + #[cfg(libc_union)] + pub union __c_anonymous_ifi_lastchange { + pub tv: ::timeval, + pub ph: __c_anonymous_ph, + } + + pub struct if_data { + /// ethernet, tokenring, etc + pub ifi_type: u8, + /// e.g., AUI, Thinnet, 10base-T, etc + pub ifi_physical: u8, + /// media address length + pub ifi_addrlen: u8, + /// media header length + pub ifi_hdrlen: u8, + /// current link state + pub ifi_link_state: u8, + /// carp vhid + pub ifi_vhid: u8, + /// length of this data struct + pub ifi_datalen: u16, + /// maximum transmission unit + pub ifi_mtu: u32, + /// routing metric (external only) + pub ifi_metric: u32, + /// linespeed + pub ifi_baudrate: u64, + /// packets received on interface + pub ifi_ipackets: u64, + /// input errors on interface + pub ifi_ierrors: u64, + /// packets sent on interface + pub ifi_opackets: u64, + /// output errors on interface + pub ifi_oerrors: u64, + /// collisions on csma interfaces + pub ifi_collisions: u64, + /// total number of octets received + pub ifi_ibytes: u64, + /// total number of octets sent + pub ifi_obytes: u64, + /// packets received via multicast + pub ifi_imcasts: u64, + /// packets sent via multicast + pub ifi_omcasts: u64, + /// dropped on input + pub ifi_iqdrops: u64, + /// dropped on output + pub ifi_oqdrops: u64, + /// destined for unsupported protocol + pub ifi_noproto: u64, + /// HW offload capabilities, see IFCAP + pub ifi_hwassist: u64, + /// uptime at attach or stat reset + #[cfg(libc_union)] + pub __ifi_epoch: __c_anonymous_ifi_epoch, + /// uptime at attach or stat reset + #[cfg(not(libc_union))] + pub __ifi_epoch: u64, + /// time of last administrative change + #[cfg(libc_union)] + pub __ifi_lastchange: __c_anonymous_ifi_lastchange, + /// time of last administrative change + #[cfg(not(libc_union))] + pub __ifi_lastchange: ::timeval, + } + + #[cfg(libc_union)] + pub union __c_anonymous_ifr_ifru { + pub ifru_addr: ::sockaddr, + pub ifru_dstaddr: ::sockaddr, + pub ifru_broadaddr: ::sockaddr, + pub ifru_buffer: ifreq_buffer, + pub ifru_flags: [::c_short; 2], + pub ifru_index: ::c_short, + pub ifru_jid: ::c_int, + pub ifru_metric: ::c_int, + pub ifru_mtu: ::c_int, + pub ifru_phys: ::c_int, + pub ifru_media: ::c_int, + pub ifru_data: ::caddr_t, + pub ifru_cap: [::c_int; 2], + pub ifru_fib: ::c_uint, + pub ifru_vlan_pcp: ::c_uchar, + } + + pub struct ifreq { + /// if name, e.g. "en0" + pub ifr_name: [::c_char; ::IFNAMSIZ], + #[cfg(libc_union)] + pub ifr_ifru: __c_anonymous_ifr_ifru, + #[cfg(not(libc_union))] + pub ifr_ifru: ::sockaddr, + } + + #[cfg(libc_union)] + pub union __c_anonymous_ifc_ifcu { + pub ifcu_buf: ::caddr_t, + pub ifcu_req: *mut ifreq, + } + + pub struct ifstat { + /// if name, e.g. "en0" + pub ifs_name: [::c_char; ::IFNAMSIZ as usize], + pub ascii: [::c_char; ::IFSTATMAX as usize + 1], + } + + pub struct ifrsskey { + /// if name, e.g. "en0" + pub ifrk_name: [::c_char; ::IFNAMSIZ as usize], + /// RSS_FUNC_ + pub ifrk_func: u8, + pub ifrk_spare0: u8, + pub ifrk_keylen: u16, + pub ifrk_key: [u8; ::RSS_KEYLEN as usize], + } + + pub struct ifdownreason { + pub ifdr_name: [::c_char; ::IFNAMSIZ as usize], + pub ifdr_reason: u32, + pub ifdr_vendor: u32, + pub ifdr_msg: [::c_char; ::IFDR_MSG_SIZE as usize], + } + + #[repr(packed)] + pub struct sctphdr { + pub src_port: u16, + pub dest_port: u16, + pub v_tag: u32, + pub checksum: u32, + } + + #[repr(packed)] + pub struct sctp_chunkhdr { + pub chunk_type: u8, + pub chunk_flags: u8, + pub chunk_length: u16, + } + + #[repr(packed)] + pub struct sctp_paramhdr { + pub param_type: u16, + pub param_length: u16, + } + + #[repr(packed)] + pub struct sctp_gen_error_cause { + pub code: u16, + pub length: u16, + pub info: [u8; 0], + } + + #[repr(packed)] + pub struct sctp_error_cause { + pub code: u16, + pub length: u16, + } + + #[repr(packed)] + pub struct sctp_error_invalid_stream { + pub cause: sctp_error_cause, + pub stream_id: u16, + __reserved: u16, + } + + #[repr(packed)] + pub struct sctp_error_missing_param { + pub cause: sctp_error_cause, + pub num_missing_params: u32, + pub tpe: [u8; 0], + } + + #[repr(packed)] + pub struct sctp_error_stale_cookie { + pub cause: sctp_error_cause, + pub stale_time: u32, + } + + #[repr(packed)] + pub struct sctp_error_out_of_resource { + pub cause: sctp_error_cause, + } + + #[repr(packed)] + pub struct sctp_error_unresolv_addr { + pub cause: sctp_error_cause, + } + + #[repr(packed)] + pub struct sctp_error_unrecognized_chunk { + pub cause: sctp_error_cause, + pub ch: sctp_chunkhdr, + } + + #[repr(packed)] + pub struct sctp_error_no_user_data { + pub cause: sctp_error_cause, + pub tsn: u32, + } + + #[repr(packed)] + pub struct sctp_error_auth_invalid_hmac { + pub cause: sctp_error_cause, + pub hmac_id: u16, + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for utmpx { + fn eq(&self, other: &utmpx) -> bool { + self.ut_type == other.ut_type + && self.ut_tv == other.ut_tv + && self.ut_id == other.ut_id + && self.ut_pid == other.ut_pid + && self.ut_user == other.ut_user + && self.ut_line == other.ut_line + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + && self + .__ut_spare + .iter() + .zip(other.__ut_spare.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for utmpx {} + impl ::fmt::Debug for utmpx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmpx") + .field("ut_type", &self.ut_type) + .field("ut_tv", &self.ut_tv) + .field("ut_id", &self.ut_id) + .field("ut_pid", &self.ut_pid) + .field("ut_user", &self.ut_user) + .field("ut_line", &self.ut_line) + // FIXME: .field("ut_host", &self.ut_host) + // FIXME: .field("__ut_spare", &self.__ut_spare) + .finish() + } + } + impl ::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { + self.ut_type.hash(state); + self.ut_tv.hash(state); + self.ut_id.hash(state); + self.ut_pid.hash(state); + self.ut_user.hash(state); + self.ut_line.hash(state); + self.ut_host.hash(state); + self.__ut_spare.hash(state); + } + } + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_cr_pid { + fn eq(&self, other: &__c_anonymous_cr_pid) -> bool { + unsafe { self.cr_pid == other.cr_pid} + } + } + #[cfg(libc_union)] + impl Eq for __c_anonymous_cr_pid {} + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_cr_pid { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("cr_pid") + .field("cr_pid", unsafe { &self.cr_pid }) + .finish() + } + } + #[cfg(libc_union)] + impl ::hash::Hash for __c_anonymous_cr_pid { + fn hash(&self, state: &mut H) { + unsafe { self.cr_pid.hash(state) }; + } + } + + impl PartialEq for xucred { + fn eq(&self, other: &xucred) -> bool { + #[cfg(libc_union)] + let equal_cr_pid = self.cr_pid__c_anonymous_union + == other.cr_pid__c_anonymous_union; + #[cfg(not(libc_union))] + let equal_cr_pid = self.__cr_unused1 == other.__cr_unused1; + + self.cr_version == other.cr_version + && self.cr_uid == other.cr_uid + && self.cr_ngroups == other.cr_ngroups + && self.cr_groups == other.cr_groups + && equal_cr_pid + } + } + impl Eq for xucred {} + impl ::fmt::Debug for xucred { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let mut struct_formatter = f.debug_struct("xucred"); + struct_formatter.field("cr_version", &self.cr_version); + struct_formatter.field("cr_uid", &self.cr_uid); + struct_formatter.field("cr_ngroups", &self.cr_ngroups); + struct_formatter.field("cr_groups", &self.cr_groups); + #[cfg(libc_union)] + struct_formatter.field( + "cr_pid__c_anonymous_union", + &self.cr_pid__c_anonymous_union + ); + struct_formatter.finish() + } + } + impl ::hash::Hash for xucred { + fn hash(&self, state: &mut H) { + self.cr_version.hash(state); + self.cr_uid.hash(state); + self.cr_ngroups.hash(state); + self.cr_groups.hash(state); + #[cfg(libc_union)] + self.cr_pid__c_anonymous_union.hash(state); + #[cfg(not(libc_union))] + self.__cr_unused1.hash(state); + } + } + + impl PartialEq for sockaddr_dl { + fn eq(&self, other: &sockaddr_dl) -> bool { + self.sdl_len == other.sdl_len + && self.sdl_family == other.sdl_family + && self.sdl_index == other.sdl_index + && self.sdl_type == other.sdl_type + && self.sdl_nlen == other.sdl_nlen + && self.sdl_alen == other.sdl_alen + && self.sdl_slen == other.sdl_slen + && self + .sdl_data + .iter() + .zip(other.sdl_data.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for sockaddr_dl {} + impl ::fmt::Debug for sockaddr_dl { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_dl") + .field("sdl_len", &self.sdl_len) + .field("sdl_family", &self.sdl_family) + .field("sdl_index", &self.sdl_index) + .field("sdl_type", &self.sdl_type) + .field("sdl_nlen", &self.sdl_nlen) + .field("sdl_alen", &self.sdl_alen) + .field("sdl_slen", &self.sdl_slen) + // FIXME: .field("sdl_data", &self.sdl_data) + .finish() + } + } + impl ::hash::Hash for sockaddr_dl { + fn hash(&self, state: &mut H) { + self.sdl_len.hash(state); + self.sdl_family.hash(state); + self.sdl_index.hash(state); + self.sdl_type.hash(state); + self.sdl_nlen.hash(state); + self.sdl_alen.hash(state); + self.sdl_slen.hash(state); + self.sdl_data.hash(state); + } + } + + impl PartialEq for mq_attr { + fn eq(&self, other: &mq_attr) -> bool { + self.mq_flags == other.mq_flags && + self.mq_maxmsg == other.mq_maxmsg && + self.mq_msgsize == other.mq_msgsize && + self.mq_curmsgs == other.mq_curmsgs + } + } + impl Eq for mq_attr {} + impl ::fmt::Debug for mq_attr { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mq_attr") + .field("mq_flags", &self.mq_flags) + .field("mq_maxmsg", &self.mq_maxmsg) + .field("mq_msgsize", &self.mq_msgsize) + .field("mq_curmsgs", &self.mq_curmsgs) + .finish() + } + } + impl ::hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { + self.mq_flags.hash(state); + self.mq_maxmsg.hash(state); + self.mq_msgsize.hash(state); + self.mq_curmsgs.hash(state); + } + } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_notify == other.sigev_notify + && self.sigev_signo == other.sigev_signo + && self.sigev_value == other.sigev_value + && self.sigev_notify_thread_id + == other.sigev_notify_thread_id + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_notify", &self.sigev_notify) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_value", &self.sigev_value) + .field("sigev_notify_thread_id", + &self.sigev_notify_thread_id) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_notify.hash(state); + self.sigev_signo.hash(state); + self.sigev_value.hash(state); + self.sigev_notify_thread_id.hash(state); + } + } + + impl PartialEq for ptsstat { + fn eq(&self, other: &ptsstat) -> bool { + let self_devname: &[::c_char] = &self.devname; + let other_devname: &[::c_char] = &other.devname; + + self.dev == other.dev && self_devname == other_devname + } + } + impl Eq for ptsstat {} + impl ::fmt::Debug for ptsstat { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let self_devname: &[::c_char] = &self.devname; + + f.debug_struct("ptsstat") + .field("dev", &self.dev) + .field("devname", &self_devname) + .finish() + } + } + impl ::hash::Hash for ptsstat { + fn hash(&self, state: &mut H) { + let self_devname: &[::c_char] = &self.devname; + + self.dev.hash(state); + self_devname.hash(state); + } + } + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_elf32_auxv_union { + fn eq(&self, other: &__c_anonymous_elf32_auxv_union) -> bool { + unsafe { self.a_val == other.a_val} + } + } + #[cfg(libc_union)] + impl Eq for __c_anonymous_elf32_auxv_union {} + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_elf32_auxv_union { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("a_val") + .field("a_val", unsafe { &self.a_val }) + .finish() + } + } + #[cfg(not(libc_union))] + impl PartialEq for Elf32_Auxinfo { + fn eq(&self, other: &Elf32_Auxinfo) -> bool { + self.a_type == other.a_type + } + } + #[cfg(libc_union)] + impl PartialEq for Elf32_Auxinfo { + fn eq(&self, other: &Elf32_Auxinfo) -> bool { + self.a_type == other.a_type + && self.a_un == other.a_un + } + } + impl Eq for Elf32_Auxinfo {} + #[cfg(not(libc_union))] + impl ::fmt::Debug for Elf32_Auxinfo { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("Elf32_Auxinfo") + .field("a_type", &self.a_type) + .finish() + } + } + #[cfg(libc_union)] + impl ::fmt::Debug for Elf32_Auxinfo { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("Elf32_Auxinfo") + .field("a_type", &self.a_type) + .field("a_un", &self.a_un) + .finish() + } + } + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_ifr_ifru { + fn eq(&self, other: &__c_anonymous_ifr_ifru) -> bool { + unsafe { + self.ifru_addr == other.ifru_addr && + self.ifru_dstaddr == other.ifru_dstaddr && + self.ifru_broadaddr == other.ifru_broadaddr && + self.ifru_buffer == other.ifru_buffer && + self.ifru_flags == other.ifru_flags && + self.ifru_index == other.ifru_index && + self.ifru_jid == other.ifru_jid && + self.ifru_metric == other.ifru_metric && + self.ifru_mtu == other.ifru_mtu && + self.ifru_phys == other.ifru_phys && + self.ifru_media == other.ifru_media && + self.ifru_data == other.ifru_data && + self.ifru_cap == other.ifru_cap && + self.ifru_fib == other.ifru_fib && + self.ifru_vlan_pcp == other.ifru_vlan_pcp + } + } + } + #[cfg(libc_union)] + impl Eq for __c_anonymous_ifr_ifru {} + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ifr_ifru { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifr_ifru") + .field("ifru_addr", unsafe { &self.ifru_addr }) + .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) + .field("ifru_broadaddr", unsafe { &self.ifru_broadaddr }) + .field("ifru_buffer", unsafe { &self.ifru_buffer }) + .field("ifru_flags", unsafe { &self.ifru_flags }) + .field("ifru_index", unsafe { &self.ifru_index }) + .field("ifru_jid", unsafe { &self.ifru_jid }) + .field("ifru_metric", unsafe { &self.ifru_metric }) + .field("ifru_mtu", unsafe { &self.ifru_mtu }) + .field("ifru_phys", unsafe { &self.ifru_phys }) + .field("ifru_media", unsafe { &self.ifru_media }) + .field("ifru_data", unsafe { &self.ifru_data }) + .field("ifru_cap", unsafe { &self.ifru_cap }) + .field("ifru_fib", unsafe { &self.ifru_fib }) + .field("ifru_vlan_pcp", unsafe { &self.ifru_vlan_pcp }) + .finish() + } + } + #[cfg(libc_union)] + impl ::hash::Hash for __c_anonymous_ifr_ifru { + fn hash(&self, state: &mut H) { + unsafe { self.ifru_addr.hash(state) }; + unsafe { self.ifru_dstaddr.hash(state) }; + unsafe { self.ifru_broadaddr.hash(state) }; + unsafe { self.ifru_buffer.hash(state) }; + unsafe { self.ifru_flags.hash(state) }; + unsafe { self.ifru_index.hash(state) }; + unsafe { self.ifru_jid.hash(state) }; + unsafe { self.ifru_metric.hash(state) }; + unsafe { self.ifru_mtu.hash(state) }; + unsafe { self.ifru_phys.hash(state) }; + unsafe { self.ifru_media.hash(state) }; + unsafe { self.ifru_data.hash(state) }; + unsafe { self.ifru_cap.hash(state) }; + unsafe { self.ifru_fib.hash(state) }; + unsafe { self.ifru_vlan_pcp.hash(state) }; + } + } + + impl PartialEq for ifreq { + fn eq(&self, other: &ifreq) -> bool { + self.ifr_name == other.ifr_name && self.ifr_ifru == other.ifr_ifru + } + } + impl Eq for ifreq {} + impl ::fmt::Debug for ifreq { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifreq") + .field("ifr_name", &self.ifr_name) + .field("ifr_ifru", &self.ifr_ifru) + .finish() + } + } + impl ::hash::Hash for ifreq { + fn hash(&self, state: &mut H) { + self.ifr_name.hash(state); + self.ifr_ifru.hash(state); + } + } + + #[cfg(libc_union)] + impl Eq for __c_anonymous_ifc_ifcu {} + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_ifc_ifcu { + fn eq(&self, other: &__c_anonymous_ifc_ifcu) -> bool { + unsafe { + self.ifcu_buf == other.ifcu_buf && + self.ifcu_req == other.ifcu_req + } + } + } + + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ifc_ifcu { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifc_ifcu") + .field("ifcu_buf", unsafe { &self.ifcu_buf }) + .field("ifcu_req", unsafe { &self.ifcu_req }) + .finish() + } + } + + #[cfg(libc_union)] + impl ::hash::Hash for __c_anonymous_ifc_ifcu { + fn hash(&self, state: &mut H) { + unsafe { self.ifcu_buf.hash(state) }; + unsafe { self.ifcu_req.hash(state) }; + } + } + + impl PartialEq for ifstat { + fn eq(&self, other: &ifstat) -> bool { + let self_ascii: &[::c_char] = &self.ascii; + let other_ascii: &[::c_char] = &other.ascii; + + self.ifs_name == other.ifs_name && self_ascii == other_ascii + } + } + impl Eq for ifstat {} + impl ::fmt::Debug for ifstat { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let ascii: &[::c_char] = &self.ascii; + + f.debug_struct("ifstat") + .field("ifs_name", &self.ifs_name) + .field("ascii", &ascii) + .finish() + } + } + impl ::hash::Hash for ifstat { + fn hash(&self, state: &mut H) { + self.ifs_name.hash(state); + self.ascii.hash(state); + } + } + + impl PartialEq for ifrsskey { + fn eq(&self, other: &ifrsskey) -> bool { + let self_ifrk_key: &[u8] = &self.ifrk_key; + let other_ifrk_key: &[u8] = &other.ifrk_key; + + self.ifrk_name == other.ifrk_name && + self.ifrk_func == other.ifrk_func && + self.ifrk_spare0 == other.ifrk_spare0 && + self.ifrk_keylen == other.ifrk_keylen && + self_ifrk_key == other_ifrk_key + } + } + impl Eq for ifrsskey {} + impl ::fmt::Debug for ifrsskey { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let ifrk_key: &[u8] = &self.ifrk_key; + + f.debug_struct("ifrsskey") + .field("ifrk_name", &self.ifrk_name) + .field("ifrk_func", &self.ifrk_func) + .field("ifrk_spare0", &self.ifrk_spare0) + .field("ifrk_keylen", &self.ifrk_keylen) + .field("ifrk_key", &ifrk_key) + .finish() + } + } + impl ::hash::Hash for ifrsskey { + fn hash(&self, state: &mut H) { + self.ifrk_name.hash(state); + self.ifrk_func.hash(state); + self.ifrk_spare0.hash(state); + self.ifrk_keylen.hash(state); + self.ifrk_key.hash(state); + } + } + + impl PartialEq for ifdownreason { + fn eq(&self, other: &ifdownreason) -> bool { + let self_ifdr_msg: &[::c_char] = &self.ifdr_msg; + let other_ifdr_msg: &[::c_char] = &other.ifdr_msg; + + self.ifdr_name == other.ifdr_name && + self.ifdr_reason == other.ifdr_reason && + self.ifdr_vendor == other.ifdr_vendor && + self_ifdr_msg == other_ifdr_msg + } + } + impl Eq for ifdownreason {} + impl ::fmt::Debug for ifdownreason { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let ifdr_msg: &[::c_char] = &self.ifdr_msg; + + f.debug_struct("ifdownreason") + .field("ifdr_name", &self.ifdr_name) + .field("ifdr_reason", &self.ifdr_reason) + .field("ifdr_vendor", &self.ifdr_vendor) + .field("ifdr_msg", &ifdr_msg) + .finish() + } + } + impl ::hash::Hash for ifdownreason { + fn hash(&self, state: &mut H) { + self.ifdr_name.hash(state); + self.ifdr_reason.hash(state); + self.ifdr_vendor.hash(state); + self.ifdr_msg.hash(state); + } + } + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_ifi_epoch { + fn eq(&self, other: &__c_anonymous_ifi_epoch) -> bool { + unsafe { + self.tt == other.tt && + self.ph == other.ph + } + } + } + #[cfg(libc_union)] + impl Eq for __c_anonymous_ifi_epoch {} + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ifi_epoch { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("__c_anonymous_ifi_epoch") + .field("tt", unsafe { &self.tt }) + .field("ph", unsafe { &self.ph }) + .finish() + } + } + #[cfg(libc_union)] + impl ::hash::Hash for __c_anonymous_ifi_epoch { + fn hash(&self, state: &mut H) { + unsafe { + self.tt.hash(state); + self.ph.hash(state); + } + } + } + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_ifi_lastchange { + fn eq(&self, other: &__c_anonymous_ifi_lastchange) -> bool { + unsafe { + self.tv == other.tv && + self.ph == other.ph + } + } + } + #[cfg(libc_union)] + impl Eq for __c_anonymous_ifi_lastchange {} + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ifi_lastchange { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("__c_anonymous_ifi_lastchange") + .field("tv", unsafe { &self.tv }) + .field("ph", unsafe { &self.ph }) + .finish() + } + } + #[cfg(libc_union)] + impl ::hash::Hash for __c_anonymous_ifi_lastchange { + fn hash(&self, state: &mut H) { + unsafe { + self.tv.hash(state); + self.ph.hash(state); + } + } + } + + impl PartialEq for if_data { + fn eq(&self, other: &if_data) -> bool { + self.ifi_type == other.ifi_type && + self.ifi_physical == other.ifi_physical && + self.ifi_addrlen == other.ifi_addrlen && + self.ifi_hdrlen == other.ifi_hdrlen && + self.ifi_link_state == other.ifi_link_state && + self.ifi_vhid == other.ifi_vhid && + self.ifi_datalen == other.ifi_datalen && + self.ifi_mtu == other.ifi_mtu && + self.ifi_metric == other.ifi_metric && + self.ifi_baudrate == other.ifi_baudrate && + self.ifi_ipackets == other.ifi_ipackets && + self.ifi_ierrors == other.ifi_ierrors && + self.ifi_opackets == other.ifi_opackets && + self.ifi_oerrors == other.ifi_oerrors && + self.ifi_collisions == other.ifi_collisions && + self.ifi_ibytes == other.ifi_ibytes && + self.ifi_obytes == other.ifi_obytes && + self.ifi_imcasts == other.ifi_imcasts && + self.ifi_omcasts == other.ifi_omcasts && + self.ifi_iqdrops == other.ifi_iqdrops && + self.ifi_oqdrops == other.ifi_oqdrops && + self.ifi_noproto == other.ifi_noproto && + self.ifi_hwassist == other.ifi_hwassist && + self.__ifi_epoch == other.__ifi_epoch && + self.__ifi_lastchange == other.__ifi_lastchange + } + } + impl Eq for if_data {} + impl ::fmt::Debug for if_data { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("if_data") + .field("ifi_type", &self.ifi_type) + .field("ifi_physical", &self.ifi_physical) + .field("ifi_addrlen", &self.ifi_addrlen) + .field("ifi_hdrlen", &self.ifi_hdrlen) + .field("ifi_link_state", &self.ifi_link_state) + .field("ifi_vhid", &self.ifi_vhid) + .field("ifi_datalen", &self.ifi_datalen) + .field("ifi_mtu", &self.ifi_mtu) + .field("ifi_metric", &self.ifi_metric) + .field("ifi_baudrate", &self.ifi_baudrate) + .field("ifi_ipackets", &self.ifi_ipackets) + .field("ifi_ierrors", &self.ifi_ierrors) + .field("ifi_opackets", &self.ifi_opackets) + .field("ifi_oerrors", &self.ifi_oerrors) + .field("ifi_collisions", &self.ifi_collisions) + .field("ifi_ibytes", &self.ifi_ibytes) + .field("ifi_obytes", &self.ifi_obytes) + .field("ifi_imcasts", &self.ifi_imcasts) + .field("ifi_omcasts", &self.ifi_omcasts) + .field("ifi_iqdrops", &self.ifi_iqdrops) + .field("ifi_oqdrops", &self.ifi_oqdrops) + .field("ifi_noproto", &self.ifi_noproto) + .field("ifi_hwassist", &self.ifi_hwassist) + .field("__ifi_epoch", &self.__ifi_epoch) + .field("__ifi_lastchange", &self.__ifi_lastchange) + .finish() + } + } + impl ::hash::Hash for if_data { + fn hash(&self, state: &mut H) { + self.ifi_type.hash(state); + self.ifi_physical.hash(state); + self.ifi_addrlen.hash(state); + self.ifi_hdrlen.hash(state); + self.ifi_link_state.hash(state); + self.ifi_vhid.hash(state); + self.ifi_datalen.hash(state); + self.ifi_mtu.hash(state); + self.ifi_metric.hash(state); + self.ifi_baudrate.hash(state); + self.ifi_ipackets.hash(state); + self.ifi_ierrors.hash(state); + self.ifi_opackets.hash(state); + self.ifi_oerrors.hash(state); + self.ifi_collisions.hash(state); + self.ifi_ibytes.hash(state); + self.ifi_obytes.hash(state); + self.ifi_imcasts.hash(state); + self.ifi_omcasts.hash(state); + self.ifi_iqdrops.hash(state); + self.ifi_oqdrops.hash(state); + self.ifi_noproto.hash(state); + self.ifi_hwassist.hash(state); + self.__ifi_epoch.hash(state); + self.__ifi_lastchange.hash(state); + } + } + + impl PartialEq for sctphdr { + fn eq(&self, other: &sctphdr) -> bool { + return {self.src_port} == {other.src_port} && + {self.dest_port} == {other.dest_port} && + {self.v_tag} == {other.v_tag} && + {self.checksum} == {other.checksum} + } + } + impl Eq for sctphdr {} + impl ::fmt::Debug for sctphdr { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sctphdr") + .field("src_port", &{self.src_port}) + .field("dest_port", &{self.dest_port}) + .field("v_tag", &{self.v_tag}) + .field("checksum", &{self.checksum}) + .finish() + } + } + impl ::hash::Hash for sctphdr { + fn hash(&self, state: &mut H) { + {self.src_port}.hash(state); + {self.dest_port}.hash(state); + {self.v_tag}.hash(state); + {self.checksum}.hash(state); + } + } + + impl PartialEq for sctp_chunkhdr { + fn eq(&self, other: &sctp_chunkhdr) -> bool { + return {self.chunk_type} == {other.chunk_type} && + {self.chunk_flags} == {other.chunk_flags} && + {self.chunk_length} == {other.chunk_length} + } + } + impl Eq for sctp_chunkhdr {} + impl ::fmt::Debug for sctp_chunkhdr { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sctp_chunkhdr") + .field("chunk_type", &{self.chunk_type}) + .field("chunk_flags", &{self.chunk_flags}) + .field("chunk_length", &{self.chunk_length}) + .finish() + } + } + impl ::hash::Hash for sctp_chunkhdr { + fn hash(&self, state: &mut H) { + {self.chunk_type}.hash(state); + {self.chunk_flags}.hash(state); + {self.chunk_length}.hash(state); + } + } + + impl PartialEq for sctp_paramhdr { + fn eq(&self, other: &sctp_paramhdr) -> bool { + return {self.param_type} == {other.param_type} && + {self.param_length} == {other.param_length} + } + } + impl Eq for sctp_paramhdr {} + impl ::fmt::Debug for sctp_paramhdr { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sctp_paramhdr") + .field("param_type", &{self.param_type}) + .field("param_length", &{self.param_length}) + .finish() + } + } + impl ::hash::Hash for sctp_paramhdr { + fn hash(&self, state: &mut H) { + {self.param_type}.hash(state); + {self.param_length}.hash(state); + } + } + + impl PartialEq for sctp_gen_error_cause { + fn eq(&self, other: &sctp_gen_error_cause) -> bool { + return {self.code} == {other.code} && + {self.length} == {other.length} && + {self.info}.iter().zip({other.info}.iter()).all(|(a,b)| a == b) + } + } + impl Eq for sctp_gen_error_cause {} + impl ::fmt::Debug for sctp_gen_error_cause { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sctp_gen_error_cause") + .field("code", &{self.code}) + .field("length", &{self.length}) + // FIXME: .field("info", &{self.info}) + .finish() + } + } + impl ::hash::Hash for sctp_gen_error_cause { + fn hash(&self, state: &mut H) { + {self.code}.hash(state); + {self.length}.hash(state); + {self.info}.hash(state); + } + } + + impl PartialEq for sctp_error_cause { + fn eq(&self, other: &sctp_error_cause) -> bool { + return {self.code} == {other.code} && + {self.length} == {other.length} + } + } + impl Eq for sctp_error_cause {} + impl ::fmt::Debug for sctp_error_cause { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sctp_error_cause") + .field("code", &{self.code}) + .field("length", &{self.length}) + .finish() + } + } + impl ::hash::Hash for sctp_error_cause { + fn hash(&self, state: &mut H) { + {self.code}.hash(state); + {self.length}.hash(state); + } + } + + impl PartialEq for sctp_error_invalid_stream { + fn eq(&self, other: &sctp_error_invalid_stream) -> bool { + return {self.cause} == {other.cause} && + {self.stream_id} == {other.stream_id} + } + } + impl Eq for sctp_error_invalid_stream {} + impl ::fmt::Debug for sctp_error_invalid_stream { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sctp_error_invalid_stream") + .field("cause", &{self.cause}) + .field("stream_id", &{self.stream_id}) + .finish() + } + } + impl ::hash::Hash for sctp_error_invalid_stream { + fn hash(&self, state: &mut H) { + {self.cause}.hash(state); + {self.stream_id}.hash(state); + } + } + + impl PartialEq for sctp_error_missing_param { + fn eq(&self, other: &sctp_error_missing_param) -> bool { + return {self.cause} == {other.cause} && + {self.num_missing_params} == {other.num_missing_params} && + {self.tpe}.iter().zip({other.tpe}.iter()).all(|(a,b)| a == b) + } + } + impl Eq for sctp_error_missing_param {} + impl ::fmt::Debug for sctp_error_missing_param { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sctp_error_missing_param") + .field("cause", &{self.cause}) + .field("num_missing_params", &{self.num_missing_params}) + // FIXME: .field("tpe", &{self.tpe}) + .finish() + } + } + impl ::hash::Hash for sctp_error_missing_param { + fn hash(&self, state: &mut H) { + {self.cause}.hash(state); + {self.num_missing_params}.hash(state); + {self.tpe}.hash(state); + } + } + + impl PartialEq for sctp_error_stale_cookie { + fn eq(&self, other: &sctp_error_stale_cookie) -> bool { + return {self.cause} == {other.cause} && + {self.stale_time} == {other.stale_time} + } + } + impl Eq for sctp_error_stale_cookie {} + impl ::fmt::Debug for sctp_error_stale_cookie { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sctp_error_stale_cookie") + .field("cause", &{self.cause}) + .field("stale_time", &{self.stale_time}) + .finish() + } + } + impl ::hash::Hash for sctp_error_stale_cookie { + fn hash(&self, state: &mut H) { + {self.cause}.hash(state); + {self.stale_time}.hash(state); + } + } + + impl PartialEq for sctp_error_out_of_resource { + fn eq(&self, other: &sctp_error_out_of_resource) -> bool { + return {self.cause} == {other.cause} + } + } + impl Eq for sctp_error_out_of_resource {} + impl ::fmt::Debug for sctp_error_out_of_resource { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sctp_error_out_of_resource") + .field("cause", &{self.cause}) + .finish() + } + } + impl ::hash::Hash for sctp_error_out_of_resource { + fn hash(&self, state: &mut H) { + {self.cause}.hash(state); + } + } + + impl PartialEq for sctp_error_unresolv_addr { + fn eq(&self, other: &sctp_error_unresolv_addr) -> bool { + return {self.cause} == {other.cause} + } + } + impl Eq for sctp_error_unresolv_addr {} + impl ::fmt::Debug for sctp_error_unresolv_addr { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sctp_error_unresolv_addr") + .field("cause", &{self.cause}) + .finish() + } + } + impl ::hash::Hash for sctp_error_unresolv_addr { + fn hash(&self, state: &mut H) { + {self.cause}.hash(state); + } + } + + impl PartialEq for sctp_error_unrecognized_chunk { + fn eq(&self, other: &sctp_error_unrecognized_chunk) -> bool { + return {self.cause} == {other.cause} && + {self.ch} == {other.ch} + } + } + impl Eq for sctp_error_unrecognized_chunk {} + impl ::fmt::Debug for sctp_error_unrecognized_chunk { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sctp_error_unrecognized_chunk") + .field("cause", &{self.cause}) + .field("ch", &{self.ch}) + .finish() + } + } + impl ::hash::Hash for sctp_error_unrecognized_chunk { + fn hash(&self, state: &mut H) { + {self.cause}.hash(state); + {self.ch}.hash(state); + } + } + + impl PartialEq for sctp_error_no_user_data { + fn eq(&self, other: &sctp_error_no_user_data) -> bool { + return {self.cause} == {other.cause} && + {self.tsn} == {other.tsn} + } + } + impl Eq for sctp_error_no_user_data {} + impl ::fmt::Debug for sctp_error_no_user_data { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sctp_error_no_user_data") + .field("cause", &{self.cause}) + .field("tsn", &{self.tsn}) + .finish() + } + } + impl ::hash::Hash for sctp_error_no_user_data { + fn hash(&self, state: &mut H) { + {self.cause}.hash(state); + {self.tsn}.hash(state); + } + } + + impl PartialEq for sctp_error_auth_invalid_hmac { + fn eq(&self, other: &sctp_error_auth_invalid_hmac) -> bool { + return {self.cause} == {other.cause} && + {self.hmac_id} == {other.hmac_id} + } + } + impl Eq for sctp_error_auth_invalid_hmac {} + impl ::fmt::Debug for sctp_error_auth_invalid_hmac { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sctp_error_invalid_hmac") + .field("cause", &{self.cause}) + .field("hmac_id", &{self.hmac_id}) + .finish() + } + } + impl ::hash::Hash for sctp_error_auth_invalid_hmac { + fn hash(&self, state: &mut H) { + {self.cause}.hash(state); + {self.hmac_id}.hash(state); + } + } + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +#[repr(u32)] +pub enum dot3Vendors { + dot3VendorAMD = 1, + dot3VendorIntel = 2, + dot3VendorNational = 4, + dot3VendorFujitsu = 5, + dot3VendorDigital = 6, + dot3VendorWesternDigital = 7, +} +impl ::Copy for dot3Vendors {} +impl ::Clone for dot3Vendors { + fn clone(&self) -> dot3Vendors { + *self + } +} + +// aio.h +pub const LIO_VECTORED: ::c_int = 4; +pub const LIO_WRITEV: ::c_int = 5; +pub const LIO_READV: ::c_int = 6; + +// sys/devicestat.h +pub const DEVSTAT_N_TRANS_FLAGS: ::c_int = 4; +pub const DEVSTAT_NAME_LEN: ::c_int = 16; + +// sys/cpuset.h +pub const CPU_SETSIZE: ::c_int = 256; + +pub const SIGEV_THREAD_ID: ::c_int = 4; + +pub const EXTATTR_NAMESPACE_EMPTY: ::c_int = 0; +pub const EXTATTR_NAMESPACE_USER: ::c_int = 1; +pub const EXTATTR_NAMESPACE_SYSTEM: ::c_int = 2; + +pub const PTHREAD_STACK_MIN: ::size_t = MINSIGSTKSZ; +pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 4; +pub const PTHREAD_MUTEX_STALLED: ::c_int = 0; +pub const PTHREAD_MUTEX_ROBUST: ::c_int = 1; +pub const SIGSTKSZ: ::size_t = MINSIGSTKSZ + 32768; +pub const SF_NODISKIO: ::c_int = 0x00000001; +pub const SF_MNOWAIT: ::c_int = 0x00000002; +pub const SF_SYNC: ::c_int = 0x00000004; +pub const SF_USER_READAHEAD: ::c_int = 0x00000008; +pub const SF_NOCACHE: ::c_int = 0x00000010; +pub const O_CLOEXEC: ::c_int = 0x00100000; +pub const O_DIRECTORY: ::c_int = 0x00020000; +pub const O_DSYNC: ::c_int = 0x01000000; +pub const O_EMPTY_PATH: ::c_int = 0x02000000; +pub const O_EXEC: ::c_int = 0x00040000; +pub const O_PATH: ::c_int = 0x00400000; +pub const O_RESOLVE_BENEATH: ::c_int = 0x00800000; +pub const O_SEARCH: ::c_int = O_EXEC; +pub const O_TTY_INIT: ::c_int = 0x00080000; +pub const O_VERIFY: ::c_int = 0x00200000; +pub const F_GETLK: ::c_int = 11; +pub const F_SETLK: ::c_int = 12; +pub const F_SETLKW: ::c_int = 13; +pub const ENOTCAPABLE: ::c_int = 93; +pub const ECAPMODE: ::c_int = 94; +pub const ENOTRECOVERABLE: ::c_int = 95; +pub const EOWNERDEAD: ::c_int = 96; +pub const EINTEGRITY: ::c_int = 97; +pub const RLIMIT_NPTS: ::c_int = 11; +pub const RLIMIT_SWAP: ::c_int = 12; +pub const RLIMIT_KQUEUES: ::c_int = 13; +pub const RLIMIT_UMTXP: ::c_int = 14; +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] +pub const RLIM_NLIMITS: ::rlim_t = 15; +pub const RLIM_SAVED_MAX: ::rlim_t = ::RLIM_INFINITY; +pub const RLIM_SAVED_CUR: ::rlim_t = ::RLIM_INFINITY; + +pub const CP_USER: ::c_int = 0; +pub const CP_NICE: ::c_int = 1; +pub const CP_SYS: ::c_int = 2; +pub const CP_INTR: ::c_int = 3; +pub const CP_IDLE: ::c_int = 4; +pub const CPUSTATES: ::c_int = 5; + +pub const NI_NOFQDN: ::c_int = 0x00000001; +pub const NI_NUMERICHOST: ::c_int = 0x00000002; +pub const NI_NAMEREQD: ::c_int = 0x00000004; +pub const NI_NUMERICSERV: ::c_int = 0x00000008; +pub const NI_DGRAM: ::c_int = 0x00000010; +pub const NI_NUMERICSCOPE: ::c_int = 0x00000020; + +pub const XU_NGROUPS: ::c_int = 16; + +pub const Q_GETQUOTA: ::c_int = 0x700; +pub const Q_SETQUOTA: ::c_int = 0x800; + +pub const MAP_GUARD: ::c_int = 0x00002000; +pub const MAP_EXCL: ::c_int = 0x00004000; +pub const MAP_PREFAULT_READ: ::c_int = 0x00040000; +pub const MAP_ALIGNED_SUPER: ::c_int = 1 << 24; + +pub const POSIX_FADV_NORMAL: ::c_int = 0; +pub const POSIX_FADV_RANDOM: ::c_int = 1; +pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_FADV_WILLNEED: ::c_int = 3; +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + +pub const POLLINIGNEOF: ::c_short = 0x2000; + +pub const EVFILT_READ: i16 = -1; +pub const EVFILT_WRITE: i16 = -2; +pub const EVFILT_AIO: i16 = -3; +pub const EVFILT_VNODE: i16 = -4; +pub const EVFILT_PROC: i16 = -5; +pub const EVFILT_SIGNAL: i16 = -6; +pub const EVFILT_TIMER: i16 = -7; +pub const EVFILT_PROCDESC: i16 = -8; +pub const EVFILT_FS: i16 = -9; +pub const EVFILT_LIO: i16 = -10; +pub const EVFILT_USER: i16 = -11; +pub const EVFILT_SENDFILE: i16 = -12; +pub const EVFILT_EMPTY: i16 = -13; + +pub const EV_ADD: u16 = 0x1; +pub const EV_DELETE: u16 = 0x2; +pub const EV_ENABLE: u16 = 0x4; +pub const EV_DISABLE: u16 = 0x8; +pub const EV_FORCEONESHOT: u16 = 0x100; +pub const EV_KEEPUDATA: u16 = 0x200; + +pub const EV_ONESHOT: u16 = 0x10; +pub const EV_CLEAR: u16 = 0x20; +pub const EV_RECEIPT: u16 = 0x40; +pub const EV_DISPATCH: u16 = 0x80; +pub const EV_SYSFLAGS: u16 = 0xf000; +pub const EV_DROP: u16 = 0x1000; +pub const EV_FLAG1: u16 = 0x2000; +pub const EV_FLAG2: u16 = 0x4000; + +pub const EV_EOF: u16 = 0x8000; +pub const EV_ERROR: u16 = 0x4000; + +pub const NOTE_TRIGGER: u32 = 0x01000000; +pub const NOTE_FFNOP: u32 = 0x00000000; +pub const NOTE_FFAND: u32 = 0x40000000; +pub const NOTE_FFOR: u32 = 0x80000000; +pub const NOTE_FFCOPY: u32 = 0xc0000000; +pub const NOTE_FFCTRLMASK: u32 = 0xc0000000; +pub const NOTE_FFLAGSMASK: u32 = 0x00ffffff; +pub const NOTE_LOWAT: u32 = 0x00000001; +pub const NOTE_FILE_POLL: u32 = 0x00000002; +pub const NOTE_DELETE: u32 = 0x00000001; +pub const NOTE_WRITE: u32 = 0x00000002; +pub const NOTE_EXTEND: u32 = 0x00000004; +pub const NOTE_ATTRIB: u32 = 0x00000008; +pub const NOTE_LINK: u32 = 0x00000010; +pub const NOTE_RENAME: u32 = 0x00000020; +pub const NOTE_REVOKE: u32 = 0x00000040; +pub const NOTE_OPEN: u32 = 0x00000080; +pub const NOTE_CLOSE: u32 = 0x00000100; +pub const NOTE_CLOSE_WRITE: u32 = 0x00000200; +pub const NOTE_READ: u32 = 0x00000400; +pub const NOTE_EXIT: u32 = 0x80000000; +pub const NOTE_FORK: u32 = 0x40000000; +pub const NOTE_EXEC: u32 = 0x20000000; +pub const NOTE_PDATAMASK: u32 = 0x000fffff; +pub const NOTE_PCTRLMASK: u32 = 0xf0000000; +pub const NOTE_TRACK: u32 = 0x00000001; +pub const NOTE_TRACKERR: u32 = 0x00000002; +pub const NOTE_CHILD: u32 = 0x00000004; +pub const NOTE_SECONDS: u32 = 0x00000001; +pub const NOTE_MSECONDS: u32 = 0x00000002; +pub const NOTE_USECONDS: u32 = 0x00000004; +pub const NOTE_NSECONDS: u32 = 0x00000008; +pub const NOTE_ABSTIME: u32 = 0x00000010; + +pub const MADV_PROTECT: ::c_int = 10; + +#[doc(hidden)] +#[deprecated( + since = "0.2.72", + note = "CTL_UNSPEC is deprecated. Use CTL_SYSCTL instead" +)] +pub const CTL_UNSPEC: ::c_int = 0; +pub const CTL_SYSCTL: ::c_int = 0; +pub const CTL_KERN: ::c_int = 1; +pub const CTL_VM: ::c_int = 2; +pub const CTL_VFS: ::c_int = 3; +pub const CTL_NET: ::c_int = 4; +pub const CTL_DEBUG: ::c_int = 5; +pub const CTL_HW: ::c_int = 6; +pub const CTL_MACHDEP: ::c_int = 7; +pub const CTL_USER: ::c_int = 8; +pub const CTL_P1003_1B: ::c_int = 9; + +// sys/sysctl.h +pub const CTL_MAXNAME: ::c_int = 24; + +pub const CTLTYPE: ::c_int = 0xf; +pub const CTLTYPE_NODE: ::c_int = 1; +pub const CTLTYPE_INT: ::c_int = 2; +pub const CTLTYPE_STRING: ::c_int = 3; +pub const CTLTYPE_S64: ::c_int = 4; +pub const CTLTYPE_OPAQUE: ::c_int = 5; +pub const CTLTYPE_STRUCT: ::c_int = CTLTYPE_OPAQUE; +pub const CTLTYPE_UINT: ::c_int = 6; +pub const CTLTYPE_LONG: ::c_int = 7; +pub const CTLTYPE_ULONG: ::c_int = 8; +pub const CTLTYPE_U64: ::c_int = 9; +pub const CTLTYPE_U8: ::c_int = 0xa; +pub const CTLTYPE_U16: ::c_int = 0xb; +pub const CTLTYPE_S8: ::c_int = 0xc; +pub const CTLTYPE_S16: ::c_int = 0xd; +pub const CTLTYPE_S32: ::c_int = 0xe; +pub const CTLTYPE_U32: ::c_int = 0xf; + +pub const CTLFLAG_RD: ::c_int = 0x80000000; +pub const CTLFLAG_WR: ::c_int = 0x40000000; +pub const CTLFLAG_RW: ::c_int = CTLFLAG_RD | CTLFLAG_WR; +pub const CTLFLAG_DORMANT: ::c_int = 0x20000000; +pub const CTLFLAG_ANYBODY: ::c_int = 0x10000000; +pub const CTLFLAG_SECURE: ::c_int = 0x08000000; +pub const CTLFLAG_PRISON: ::c_int = 0x04000000; +pub const CTLFLAG_DYN: ::c_int = 0x02000000; +pub const CTLFLAG_SKIP: ::c_int = 0x01000000; +pub const CTLMASK_SECURE: ::c_int = 0x00F00000; +pub const CTLFLAG_TUN: ::c_int = 0x00080000; +pub const CTLFLAG_RDTUN: ::c_int = CTLFLAG_RD | CTLFLAG_TUN; +pub const CTLFLAG_RWTUN: ::c_int = CTLFLAG_RW | CTLFLAG_TUN; +pub const CTLFLAG_MPSAFE: ::c_int = 0x00040000; +pub const CTLFLAG_VNET: ::c_int = 0x00020000; +pub const CTLFLAG_DYING: ::c_int = 0x00010000; +pub const CTLFLAG_CAPRD: ::c_int = 0x00008000; +pub const CTLFLAG_CAPWR: ::c_int = 0x00004000; +pub const CTLFLAG_STATS: ::c_int = 0x00002000; +pub const CTLFLAG_NOFETCH: ::c_int = 0x00001000; +pub const CTLFLAG_CAPRW: ::c_int = CTLFLAG_CAPRD | CTLFLAG_CAPWR; +pub const CTLFLAG_NEEDGIANT: ::c_int = 0x00000800; + +pub const CTLSHIFT_SECURE: ::c_int = 20; +pub const CTLFLAG_SECURE1: ::c_int = CTLFLAG_SECURE | (0 << CTLSHIFT_SECURE); +pub const CTLFLAG_SECURE2: ::c_int = CTLFLAG_SECURE | (1 << CTLSHIFT_SECURE); +pub const CTLFLAG_SECURE3: ::c_int = CTLFLAG_SECURE | (2 << CTLSHIFT_SECURE); + +pub const OID_AUTO: ::c_int = -1; + +pub const CTL_SYSCTL_DEBUG: ::c_int = 0; +pub const CTL_SYSCTL_NAME: ::c_int = 1; +pub const CTL_SYSCTL_NEXT: ::c_int = 2; +pub const CTL_SYSCTL_NAME2OID: ::c_int = 3; +pub const CTL_SYSCTL_OIDFMT: ::c_int = 4; +pub const CTL_SYSCTL_OIDDESCR: ::c_int = 5; +pub const CTL_SYSCTL_OIDLABEL: ::c_int = 6; +pub const CTL_SYSCTL_NEXTNOSKIP: ::c_int = 7; + +pub const KERN_OSTYPE: ::c_int = 1; +pub const KERN_OSRELEASE: ::c_int = 2; +pub const KERN_OSREV: ::c_int = 3; +pub const KERN_VERSION: ::c_int = 4; +pub const KERN_MAXVNODES: ::c_int = 5; +pub const KERN_MAXPROC: ::c_int = 6; +pub const KERN_MAXFILES: ::c_int = 7; +pub const KERN_ARGMAX: ::c_int = 8; +pub const KERN_SECURELVL: ::c_int = 9; +pub const KERN_HOSTNAME: ::c_int = 10; +pub const KERN_HOSTID: ::c_int = 11; +pub const KERN_CLOCKRATE: ::c_int = 12; +pub const KERN_VNODE: ::c_int = 13; +pub const KERN_PROC: ::c_int = 14; +pub const KERN_FILE: ::c_int = 15; +pub const KERN_PROF: ::c_int = 16; +pub const KERN_POSIX1: ::c_int = 17; +pub const KERN_NGROUPS: ::c_int = 18; +pub const KERN_JOB_CONTROL: ::c_int = 19; +pub const KERN_SAVED_IDS: ::c_int = 20; +pub const KERN_BOOTTIME: ::c_int = 21; +pub const KERN_NISDOMAINNAME: ::c_int = 22; +pub const KERN_UPDATEINTERVAL: ::c_int = 23; +pub const KERN_OSRELDATE: ::c_int = 24; +pub const KERN_NTP_PLL: ::c_int = 25; +pub const KERN_BOOTFILE: ::c_int = 26; +pub const KERN_MAXFILESPERPROC: ::c_int = 27; +pub const KERN_MAXPROCPERUID: ::c_int = 28; +pub const KERN_DUMPDEV: ::c_int = 29; +pub const KERN_IPC: ::c_int = 30; +pub const KERN_DUMMY: ::c_int = 31; +pub const KERN_PS_STRINGS: ::c_int = 32; +pub const KERN_USRSTACK: ::c_int = 33; +pub const KERN_LOGSIGEXIT: ::c_int = 34; +pub const KERN_IOV_MAX: ::c_int = 35; +pub const KERN_HOSTUUID: ::c_int = 36; +pub const KERN_ARND: ::c_int = 37; +pub const KERN_MAXPHYS: ::c_int = 38; + +pub const KERN_PROC_ALL: ::c_int = 0; +pub const KERN_PROC_PID: ::c_int = 1; +pub const KERN_PROC_PGRP: ::c_int = 2; +pub const KERN_PROC_SESSION: ::c_int = 3; +pub const KERN_PROC_TTY: ::c_int = 4; +pub const KERN_PROC_UID: ::c_int = 5; +pub const KERN_PROC_RUID: ::c_int = 6; +pub const KERN_PROC_ARGS: ::c_int = 7; +pub const KERN_PROC_PROC: ::c_int = 8; +pub const KERN_PROC_SV_NAME: ::c_int = 9; +pub const KERN_PROC_RGID: ::c_int = 10; +pub const KERN_PROC_GID: ::c_int = 11; +pub const KERN_PROC_PATHNAME: ::c_int = 12; +pub const KERN_PROC_OVMMAP: ::c_int = 13; +pub const KERN_PROC_OFILEDESC: ::c_int = 14; +pub const KERN_PROC_KSTACK: ::c_int = 15; +pub const KERN_PROC_INC_THREAD: ::c_int = 0x10; +pub const KERN_PROC_VMMAP: ::c_int = 32; +pub const KERN_PROC_FILEDESC: ::c_int = 33; +pub const KERN_PROC_GROUPS: ::c_int = 34; +pub const KERN_PROC_ENV: ::c_int = 35; +pub const KERN_PROC_AUXV: ::c_int = 36; +pub const KERN_PROC_RLIMIT: ::c_int = 37; +pub const KERN_PROC_PS_STRINGS: ::c_int = 38; +pub const KERN_PROC_UMASK: ::c_int = 39; +pub const KERN_PROC_OSREL: ::c_int = 40; +pub const KERN_PROC_SIGTRAMP: ::c_int = 41; +pub const KERN_PROC_CWD: ::c_int = 42; +pub const KERN_PROC_NFDS: ::c_int = 43; +pub const KERN_PROC_SIGFASTBLK: ::c_int = 44; + +pub const KIPC_MAXSOCKBUF: ::c_int = 1; +pub const KIPC_SOCKBUF_WASTE: ::c_int = 2; +pub const KIPC_SOMAXCONN: ::c_int = 3; +pub const KIPC_MAX_LINKHDR: ::c_int = 4; +pub const KIPC_MAX_PROTOHDR: ::c_int = 5; +pub const KIPC_MAX_HDR: ::c_int = 6; +pub const KIPC_MAX_DATALEN: ::c_int = 7; + +pub const HW_MACHINE: ::c_int = 1; +pub const HW_MODEL: ::c_int = 2; +pub const HW_NCPU: ::c_int = 3; +pub const HW_BYTEORDER: ::c_int = 4; +pub const HW_PHYSMEM: ::c_int = 5; +pub const HW_USERMEM: ::c_int = 6; +pub const HW_PAGESIZE: ::c_int = 7; +pub const HW_DISKNAMES: ::c_int = 8; +pub const HW_DISKSTATS: ::c_int = 9; +pub const HW_FLOATINGPT: ::c_int = 10; +pub const HW_MACHINE_ARCH: ::c_int = 11; +pub const HW_REALMEM: ::c_int = 12; + +pub const USER_CS_PATH: ::c_int = 1; +pub const USER_BC_BASE_MAX: ::c_int = 2; +pub const USER_BC_DIM_MAX: ::c_int = 3; +pub const USER_BC_SCALE_MAX: ::c_int = 4; +pub const USER_BC_STRING_MAX: ::c_int = 5; +pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6; +pub const USER_EXPR_NEST_MAX: ::c_int = 7; +pub const USER_LINE_MAX: ::c_int = 8; +pub const USER_RE_DUP_MAX: ::c_int = 9; +pub const USER_POSIX2_VERSION: ::c_int = 10; +pub const USER_POSIX2_C_BIND: ::c_int = 11; +pub const USER_POSIX2_C_DEV: ::c_int = 12; +pub const USER_POSIX2_CHAR_TERM: ::c_int = 13; +pub const USER_POSIX2_FORT_DEV: ::c_int = 14; +pub const USER_POSIX2_FORT_RUN: ::c_int = 15; +pub const USER_POSIX2_LOCALEDEF: ::c_int = 16; +pub const USER_POSIX2_SW_DEV: ::c_int = 17; +pub const USER_POSIX2_UPE: ::c_int = 18; +pub const USER_STREAM_MAX: ::c_int = 19; +pub const USER_TZNAME_MAX: ::c_int = 20; +pub const USER_LOCALBASE: ::c_int = 21; + +pub const CTL_P1003_1B_ASYNCHRONOUS_IO: ::c_int = 1; +pub const CTL_P1003_1B_MAPPED_FILES: ::c_int = 2; +pub const CTL_P1003_1B_MEMLOCK: ::c_int = 3; +pub const CTL_P1003_1B_MEMLOCK_RANGE: ::c_int = 4; +pub const CTL_P1003_1B_MEMORY_PROTECTION: ::c_int = 5; +pub const CTL_P1003_1B_MESSAGE_PASSING: ::c_int = 6; +pub const CTL_P1003_1B_PRIORITIZED_IO: ::c_int = 7; +pub const CTL_P1003_1B_PRIORITY_SCHEDULING: ::c_int = 8; +pub const CTL_P1003_1B_REALTIME_SIGNALS: ::c_int = 9; +pub const CTL_P1003_1B_SEMAPHORES: ::c_int = 10; +pub const CTL_P1003_1B_FSYNC: ::c_int = 11; +pub const CTL_P1003_1B_SHARED_MEMORY_OBJECTS: ::c_int = 12; +pub const CTL_P1003_1B_SYNCHRONIZED_IO: ::c_int = 13; +pub const CTL_P1003_1B_TIMERS: ::c_int = 14; +pub const CTL_P1003_1B_AIO_LISTIO_MAX: ::c_int = 15; +pub const CTL_P1003_1B_AIO_MAX: ::c_int = 16; +pub const CTL_P1003_1B_AIO_PRIO_DELTA_MAX: ::c_int = 17; +pub const CTL_P1003_1B_DELAYTIMER_MAX: ::c_int = 18; +pub const CTL_P1003_1B_MQ_OPEN_MAX: ::c_int = 19; +pub const CTL_P1003_1B_PAGESIZE: ::c_int = 20; +pub const CTL_P1003_1B_RTSIG_MAX: ::c_int = 21; +pub const CTL_P1003_1B_SEM_NSEMS_MAX: ::c_int = 22; +pub const CTL_P1003_1B_SEM_VALUE_MAX: ::c_int = 23; +pub const CTL_P1003_1B_SIGQUEUE_MAX: ::c_int = 24; +pub const CTL_P1003_1B_TIMER_MAX: ::c_int = 25; + +pub const TIOCGPTN: ::c_ulong = 0x4004740f; +pub const TIOCPTMASTER: ::c_ulong = 0x2000741c; +pub const TIOCSIG: ::c_ulong = 0x2004745f; +pub const TIOCM_DCD: ::c_int = 0x40; +pub const H4DISC: ::c_int = 0x7; + +pub const VM_TOTAL: ::c_int = 1; + +pub const BIOCSETFNR: ::c_ulong = 0x80104282; + +pub const FIODGNAME: ::c_ulong = 0x80106678; +pub const FIONWRITE: ::c_ulong = 0x40046677; +pub const FIONSPACE: ::c_ulong = 0x40046676; +pub const FIOSEEKDATA: ::c_ulong = 0xc0086661; +pub const FIOSEEKHOLE: ::c_ulong = 0xc0086662; +pub const FIOSSHMLPGCNF: ::c_ulong = 0x80306664; + +pub const JAIL_API_VERSION: u32 = 2; +pub const JAIL_CREATE: ::c_int = 0x01; +pub const JAIL_UPDATE: ::c_int = 0x02; +pub const JAIL_ATTACH: ::c_int = 0x04; +pub const JAIL_DYING: ::c_int = 0x08; +pub const JAIL_SET_MASK: ::c_int = 0x0f; +pub const JAIL_GET_MASK: ::c_int = 0x08; +pub const JAIL_SYS_DISABLE: ::c_int = 0; +pub const JAIL_SYS_NEW: ::c_int = 1; +pub const JAIL_SYS_INHERIT: ::c_int = 2; + +pub const MNT_ACLS: ::c_int = 0x08000000; +pub const MNT_BYFSID: ::c_int = 0x08000000; +pub const MNT_GJOURNAL: ::c_int = 0x02000000; +pub const MNT_MULTILABEL: ::c_int = 0x04000000; +pub const MNT_NFS4ACLS: ::c_int = 0x00000010; +pub const MNT_SNAPSHOT: ::c_int = 0x01000000; +pub const MNT_UNION: ::c_int = 0x00000020; +pub const MNT_NONBUSY: ::c_int = 0x04000000; + +pub const SCM_BINTIME: ::c_int = 0x04; +pub const SCM_REALTIME: ::c_int = 0x05; +pub const SCM_MONOTONIC: ::c_int = 0x06; +pub const SCM_TIME_INFO: ::c_int = 0x07; +pub const SCM_CREDS2: ::c_int = 0x08; + +pub const SO_BINTIME: ::c_int = 0x2000; +pub const SO_NO_OFFLOAD: ::c_int = 0x4000; +pub const SO_NO_DDP: ::c_int = 0x8000; +pub const SO_REUSEPORT_LB: ::c_int = 0x10000; +pub const SO_LABEL: ::c_int = 0x1009; +pub const SO_PEERLABEL: ::c_int = 0x1010; +pub const SO_LISTENQLIMIT: ::c_int = 0x1011; +pub const SO_LISTENQLEN: ::c_int = 0x1012; +pub const SO_LISTENINCQLEN: ::c_int = 0x1013; +pub const SO_SETFIB: ::c_int = 0x1014; +pub const SO_USER_COOKIE: ::c_int = 0x1015; +pub const SO_PROTOCOL: ::c_int = 0x1016; +pub const SO_PROTOTYPE: ::c_int = SO_PROTOCOL; +pub const SO_TS_CLOCK: ::c_int = 0x1017; +pub const SO_DOMAIN: ::c_int = 0x1019; +pub const SO_VENDOR: ::c_int = 0x80000000; + +pub const SO_TS_REALTIME_MICRO: ::c_int = 0; +pub const SO_TS_BINTIME: ::c_int = 1; +pub const SO_TS_REALTIME: ::c_int = 2; +pub const SO_TS_MONOTONIC: ::c_int = 3; +pub const SO_TS_DEFAULT: ::c_int = SO_TS_REALTIME_MICRO; +pub const SO_TS_CLOCK_MAX: ::c_int = SO_TS_MONOTONIC; + +pub const LOCAL_CREDS: ::c_int = 2; +pub const LOCAL_CREDS_PERSISTENT: ::c_int = 3; +pub const LOCAL_CONNWAIT: ::c_int = 4; +pub const LOCAL_VENDOR: ::c_int = SO_VENDOR; + +pub const PL_EVENT_NONE: ::c_int = 0; +pub const PL_EVENT_SIGNAL: ::c_int = 1; +pub const PL_FLAG_SA: ::c_int = 0x01; +pub const PL_FLAG_BOUND: ::c_int = 0x02; +pub const PL_FLAG_SCE: ::c_int = 0x04; +pub const PL_FLAG_SCX: ::c_int = 0x08; +pub const PL_FLAG_EXEC: ::c_int = 0x10; +pub const PL_FLAG_SI: ::c_int = 0x20; +pub const PL_FLAG_FORKED: ::c_int = 0x40; +pub const PL_FLAG_CHILD: ::c_int = 0x80; +pub const PL_FLAG_BORN: ::c_int = 0x100; +pub const PL_FLAG_EXITED: ::c_int = 0x200; +pub const PL_FLAG_VFORKED: ::c_int = 0x400; +pub const PL_FLAG_VFORK_DONE: ::c_int = 0x800; + +pub const PT_LWPINFO: ::c_int = 13; +pub const PT_GETNUMLWPS: ::c_int = 14; +pub const PT_GETLWPLIST: ::c_int = 15; +pub const PT_CLEARSTEP: ::c_int = 16; +pub const PT_SETSTEP: ::c_int = 17; +pub const PT_SUSPEND: ::c_int = 18; +pub const PT_RESUME: ::c_int = 19; +pub const PT_TO_SCE: ::c_int = 20; +pub const PT_TO_SCX: ::c_int = 21; +pub const PT_SYSCALL: ::c_int = 22; +pub const PT_FOLLOW_FORK: ::c_int = 23; +pub const PT_LWP_EVENTS: ::c_int = 24; +pub const PT_GET_EVENT_MASK: ::c_int = 25; +pub const PT_SET_EVENT_MASK: ::c_int = 26; +pub const PT_GET_SC_ARGS: ::c_int = 27; +pub const PT_GET_SC_RET: ::c_int = 28; +pub const PT_COREDUMP: ::c_int = 29; +pub const PT_GETREGS: ::c_int = 33; +pub const PT_SETREGS: ::c_int = 34; +pub const PT_GETFPREGS: ::c_int = 35; +pub const PT_SETFPREGS: ::c_int = 36; +pub const PT_GETDBREGS: ::c_int = 37; +pub const PT_SETDBREGS: ::c_int = 38; +pub const PT_VM_TIMESTAMP: ::c_int = 40; +pub const PT_VM_ENTRY: ::c_int = 41; +pub const PT_GETREGSET: ::c_int = 42; +pub const PT_SETREGSET: ::c_int = 43; +pub const PT_SC_REMOTE: ::c_int = 44; +pub const PT_FIRSTMACH: ::c_int = 64; + +pub const PTRACE_EXEC: ::c_int = 0x0001; +pub const PTRACE_SCE: ::c_int = 0x0002; +pub const PTRACE_SCX: ::c_int = 0x0004; +pub const PTRACE_SYSCALL: ::c_int = PTRACE_SCE | PTRACE_SCX; +pub const PTRACE_FORK: ::c_int = 0x0008; +pub const PTRACE_LWP: ::c_int = 0x0010; +pub const PTRACE_VFORK: ::c_int = 0x0020; +pub const PTRACE_DEFAULT: ::c_int = PTRACE_EXEC; + +pub const PC_COMPRESS: u32 = 0x00000001; +pub const PC_ALL: u32 = 0x00000002; + +pub const PROC_SPROTECT: ::c_int = 1; +pub const PROC_REAP_ACQUIRE: ::c_int = 2; +pub const PROC_REAP_RELEASE: ::c_int = 3; +pub const PROC_REAP_STATUS: ::c_int = 4; +pub const PROC_REAP_GETPIDS: ::c_int = 5; +pub const PROC_REAP_KILL: ::c_int = 6; +pub const PROC_TRACE_CTL: ::c_int = 7; +pub const PROC_TRACE_STATUS: ::c_int = 8; +pub const PROC_TRAPCAP_CTL: ::c_int = 9; +pub const PROC_TRAPCAP_STATUS: ::c_int = 10; +pub const PROC_PDEATHSIG_CTL: ::c_int = 11; +pub const PROC_PDEATHSIG_STATUS: ::c_int = 12; +pub const PROC_ASLR_CTL: ::c_int = 13; +pub const PROC_ASLR_STATUS: ::c_int = 14; +pub const PROC_PROTMAX_CTL: ::c_int = 15; +pub const PROC_PROTMAX_STATUS: ::c_int = 16; +pub const PROC_STACKGAP_CTL: ::c_int = 17; +pub const PROC_STACKGAP_STATUS: ::c_int = 18; +pub const PROC_NO_NEW_PRIVS_CTL: ::c_int = 19; +pub const PROC_NO_NEW_PRIVS_STATUS: ::c_int = 20; +pub const PROC_WXMAP_CTL: ::c_int = 21; +pub const PROC_WXMAP_STATUS: ::c_int = 22; +pub const PROC_PROCCTL_MD_MIN: ::c_int = 0x10000000; + +pub const PPROT_SET: ::c_int = 1; +pub const PPROT_CLEAR: ::c_int = 2; +pub const PPROT_DESCEND: ::c_int = 0x10; +pub const PPROT_INHERIT: ::c_int = 0x20; + +pub const PROC_TRACE_CTL_ENABLE: ::c_int = 1; +pub const PROC_TRACE_CTL_DISABLE: ::c_int = 2; +pub const PROC_TRACE_CTL_DISABLE_EXEC: ::c_int = 3; + +pub const PROC_TRAPCAP_CTL_ENABLE: ::c_int = 1; +pub const PROC_TRAPCAP_CTL_DISABLE: ::c_int = 2; + +pub const PROC_ASLR_FORCE_ENABLE: ::c_int = 1; +pub const PROC_ASLR_FORCE_DISABLE: ::c_int = 2; +pub const PROC_ASLR_NOFORCE: ::c_int = 3; +pub const PROC_ASLR_ACTIVE: ::c_int = 0x80000000; + +pub const PROC_PROTMAX_FORCE_ENABLE: ::c_int = 1; +pub const PROC_PROTMAX_FORCE_DISABLE: ::c_int = 2; +pub const PROC_PROTMAX_NOFORCE: ::c_int = 3; +pub const PROC_PROTMAX_ACTIVE: ::c_int = 0x80000000; + +pub const PROC_STACKGAP_ENABLE: ::c_int = 0x0001; +pub const PROC_STACKGAP_DISABLE: ::c_int = 0x0002; +pub const PROC_STACKGAP_ENABLE_EXEC: ::c_int = 0x0004; +pub const PROC_STACKGAP_DISABLE_EXEC: ::c_int = 0x0008; + +pub const PROC_NO_NEW_PRIVS_ENABLE: ::c_int = 1; +pub const PROC_NO_NEW_PRIVS_DISABLE: ::c_int = 2; + +pub const PROC_WX_MAPPINGS_PERMIT: ::c_int = 0x0001; +pub const PROC_WX_MAPPINGS_DISALLOW_EXEC: ::c_int = 0x0002; +pub const PROC_WXORX_ENFORCE: ::c_int = 0x80000000; + +pub const AF_SLOW: ::c_int = 33; +pub const AF_SCLUSTER: ::c_int = 34; +pub const AF_ARP: ::c_int = 35; +pub const AF_BLUETOOTH: ::c_int = 36; +pub const AF_IEEE80211: ::c_int = 37; +pub const AF_INET_SDP: ::c_int = 40; +pub const AF_INET6_SDP: ::c_int = 42; + +// sys/net/if.h +pub const IF_MAXUNIT: ::c_int = 0x7fff; +/// (n) interface is up +pub const IFF_UP: ::c_int = 0x1; +/// (i) broadcast address valid +pub const IFF_BROADCAST: ::c_int = 0x2; +/// (n) turn on debugging +pub const IFF_DEBUG: ::c_int = 0x4; +/// (i) is a loopback net +pub const IFF_LOOPBACK: ::c_int = 0x8; +/// (i) is a point-to-point link +pub const IFF_POINTOPOINT: ::c_int = 0x10; +/// (i) calls if_input in net epoch +pub const IFF_KNOWSEPOCH: ::c_int = 0x20; +/// (d) resources allocated +pub const IFF_RUNNING: ::c_int = 0x40; +#[doc(hidden)] +#[deprecated( + since = "0.2.54", + note = "IFF_DRV_RUNNING is deprecated. Use the portable IFF_RUNNING instead" +)] +/// (d) resources allocate +pub const IFF_DRV_RUNNING: ::c_int = 0x40; +/// (n) no address resolution protocol +pub const IFF_NOARP: ::c_int = 0x80; +/// (n) receive all packets +pub const IFF_PROMISC: ::c_int = 0x100; +/// (n) receive all multicast packets +pub const IFF_ALLMULTI: ::c_int = 0x200; +/// (d) tx hardware queue is full +pub const IFF_OACTIVE: ::c_int = 0x400; +#[doc(hidden)] +#[deprecated(since = "0.2.54", note = "Use the portable `IFF_OACTIVE` instead")] +/// (d) tx hardware queue is full +pub const IFF_DRV_OACTIVE: ::c_int = 0x400; +/// (i) can't hear own transmissions +pub const IFF_SIMPLEX: ::c_int = 0x800; +/// per link layer defined bit +pub const IFF_LINK0: ::c_int = 0x1000; +/// per link layer defined bit +pub const IFF_LINK1: ::c_int = 0x2000; +/// per link layer defined bit +pub const IFF_LINK2: ::c_int = 0x4000; +/// use alternate physical connection +pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; +/// (i) supports multicast +pub const IFF_MULTICAST: ::c_int = 0x8000; +/// (i) unconfigurable using ioctl(2) +pub const IFF_CANTCONFIG: ::c_int = 0x10000; +/// (n) user-requested promisc mode +pub const IFF_PPROMISC: ::c_int = 0x20000; +/// (n) user-requested monitor mode +pub const IFF_MONITOR: ::c_int = 0x40000; +/// (n) static ARP +pub const IFF_STATICARP: ::c_int = 0x80000; +/// (n) interface is winding down +pub const IFF_DYING: ::c_int = 0x200000; +/// (n) interface is being renamed +pub const IFF_RENAMING: ::c_int = 0x400000; +/// interface is not part of any groups +pub const IFF_NOGROUP: ::c_int = 0x800000; + +/// link invalid/unknown +pub const LINK_STATE_UNKNOWN: ::c_int = 0; +/// link is down +pub const LINK_STATE_DOWN: ::c_int = 1; +/// link is up +pub const LINK_STATE_UP: ::c_int = 2; + +/// can offload checksum on RX +pub const IFCAP_RXCSUM: ::c_int = 0x00001; +/// can offload checksum on TX +pub const IFCAP_TXCSUM: ::c_int = 0x00002; +/// can be a network console +pub const IFCAP_NETCONS: ::c_int = 0x00004; +/// VLAN-compatible MTU +pub const IFCAP_VLAN_MTU: ::c_int = 0x00008; +/// hardware VLAN tag support +pub const IFCAP_VLAN_HWTAGGING: ::c_int = 0x00010; +/// 9000 byte MTU supported +pub const IFCAP_JUMBO_MTU: ::c_int = 0x00020; +/// driver supports polling +pub const IFCAP_POLLING: ::c_int = 0x00040; +/// can do IFCAP_HWCSUM on VLANs +pub const IFCAP_VLAN_HWCSUM: ::c_int = 0x00080; +/// can do TCP Segmentation Offload +pub const IFCAP_TSO4: ::c_int = 0x00100; +/// can do TCP6 Segmentation Offload +pub const IFCAP_TSO6: ::c_int = 0x00200; +/// can do Large Receive Offload +pub const IFCAP_LRO: ::c_int = 0x00400; +/// wake on any unicast frame +pub const IFCAP_WOL_UCAST: ::c_int = 0x00800; +/// wake on any multicast frame +pub const IFCAP_WOL_MCAST: ::c_int = 0x01000; +/// wake on any Magic Packet +pub const IFCAP_WOL_MAGIC: ::c_int = 0x02000; +/// interface can offload TCP +pub const IFCAP_TOE4: ::c_int = 0x04000; +/// interface can offload TCP6 +pub const IFCAP_TOE6: ::c_int = 0x08000; +/// interface hw can filter vlan tag +pub const IFCAP_VLAN_HWFILTER: ::c_int = 0x10000; +/// can do SIOCGIFCAPNV/SIOCSIFCAPNV +pub const IFCAP_NV: ::c_int = 0x20000; +/// can do IFCAP_TSO on VLANs +pub const IFCAP_VLAN_HWTSO: ::c_int = 0x40000; +/// the runtime link state is dynamic +pub const IFCAP_LINKSTATE: ::c_int = 0x80000; +/// netmap mode supported/enabled +pub const IFCAP_NETMAP: ::c_int = 0x100000; +/// can offload checksum on IPv6 RX +pub const IFCAP_RXCSUM_IPV6: ::c_int = 0x200000; +/// can offload checksum on IPv6 TX +pub const IFCAP_TXCSUM_IPV6: ::c_int = 0x400000; +/// manages counters internally +pub const IFCAP_HWSTATS: ::c_int = 0x800000; +/// hardware supports TX rate limiting +pub const IFCAP_TXRTLMT: ::c_int = 0x1000000; +/// hardware rx timestamping +pub const IFCAP_HWRXTSTMP: ::c_int = 0x2000000; +/// understands M_EXTPG mbufs +pub const IFCAP_MEXTPG: ::c_int = 0x4000000; +/// can do TLS encryption and segmentation for TCP +pub const IFCAP_TXTLS4: ::c_int = 0x8000000; +/// can do TLS encryption and segmentation for TCP6 +pub const IFCAP_TXTLS6: ::c_int = 0x10000000; +/// can do IFCAN_HWCSUM on VXLANs +pub const IFCAP_VXLAN_HWCSUM: ::c_int = 0x20000000; +/// can do IFCAP_TSO on VXLANs +pub const IFCAP_VXLAN_HWTSO: ::c_int = 0x40000000; +/// can do TLS with rate limiting +pub const IFCAP_TXTLS_RTLMT: ::c_int = 0x80000000; + +pub const IFCAP_HWCSUM_IPV6: ::c_int = IFCAP_RXCSUM_IPV6 | IFCAP_TXCSUM_IPV6; +pub const IFCAP_HWCSUM: ::c_int = IFCAP_RXCSUM | IFCAP_TXCSUM; +pub const IFCAP_TSO: ::c_int = IFCAP_TSO4 | IFCAP_TSO6; +pub const IFCAP_WOL: ::c_int = IFCAP_WOL_UCAST | IFCAP_WOL_MCAST | IFCAP_WOL_MAGIC; +pub const IFCAP_TOE: ::c_int = IFCAP_TOE4 | IFCAP_TOE6; +pub const IFCAP_TXTLS: ::c_int = IFCAP_TXTLS4 | IFCAP_TXTLS6; +pub const IFCAP_CANTCHANGE: ::c_int = IFCAP_NETMAP | IFCAP_NV; + +pub const IFQ_MAXLEN: ::c_int = 50; +pub const IFNET_SLOWHZ: ::c_int = 1; + +pub const IFAN_ARRIVAL: ::c_int = 0; +pub const IFAN_DEPARTURE: ::c_int = 1; + +pub const IFSTATMAX: ::c_int = 800; + +pub const RSS_FUNC_NONE: ::c_int = 0; +pub const RSS_FUNC_PRIVATE: ::c_int = 1; +pub const RSS_FUNC_TOEPLITZ: ::c_int = 2; + +pub const RSS_TYPE_IPV4: ::c_int = 0x00000001; +pub const RSS_TYPE_TCP_IPV4: ::c_int = 0x00000002; +pub const RSS_TYPE_IPV6: ::c_int = 0x00000004; +pub const RSS_TYPE_IPV6_EX: ::c_int = 0x00000008; +pub const RSS_TYPE_TCP_IPV6: ::c_int = 0x00000010; +pub const RSS_TYPE_TCP_IPV6_EX: ::c_int = 0x00000020; +pub const RSS_TYPE_UDP_IPV4: ::c_int = 0x00000040; +pub const RSS_TYPE_UDP_IPV6: ::c_int = 0x00000080; +pub const RSS_TYPE_UDP_IPV6_EX: ::c_int = 0x00000100; +pub const RSS_KEYLEN: ::c_int = 128; + +pub const IFNET_PCP_NONE: ::c_int = 0xff; +pub const IFDR_MSG_SIZE: ::c_int = 64; +pub const IFDR_REASON_MSG: ::c_int = 1; +pub const IFDR_REASON_VENDOR: ::c_int = 2; + +// sys/net/if_mib.h + +/// non-interface-specific +pub const IFMIB_SYSTEM: ::c_int = 1; +/// per-interface data table +pub const IFMIB_IFDATA: ::c_int = 2; + +/// generic stats for all kinds of ifaces +pub const IFDATA_GENERAL: ::c_int = 1; +/// specific to the type of interface +pub const IFDATA_LINKSPECIFIC: ::c_int = 2; +/// driver name and unit +pub const IFDATA_DRIVERNAME: ::c_int = 3; + +/// number of interfaces configured +pub const IFMIB_IFCOUNT: ::c_int = 1; + +/// functions not specific to a type of iface +pub const NETLINK_GENERIC: ::c_int = 0; + +pub const DOT3COMPLIANCE_STATS: ::c_int = 1; +pub const DOT3COMPLIANCE_COLLS: ::c_int = 2; + +pub const dot3ChipSetAMD7990: ::c_int = 1; +pub const dot3ChipSetAMD79900: ::c_int = 2; +pub const dot3ChipSetAMD79C940: ::c_int = 3; + +pub const dot3ChipSetIntel82586: ::c_int = 1; +pub const dot3ChipSetIntel82596: ::c_int = 2; +pub const dot3ChipSetIntel82557: ::c_int = 3; + +pub const dot3ChipSetNational8390: ::c_int = 1; +pub const dot3ChipSetNationalSonic: ::c_int = 2; + +pub const dot3ChipSetFujitsu86950: ::c_int = 1; + +pub const dot3ChipSetDigitalDC21040: ::c_int = 1; +pub const dot3ChipSetDigitalDC21140: ::c_int = 2; +pub const dot3ChipSetDigitalDC21041: ::c_int = 3; +pub const dot3ChipSetDigitalDC21140A: ::c_int = 4; +pub const dot3ChipSetDigitalDC21142: ::c_int = 5; + +pub const dot3ChipSetWesternDigital83C690: ::c_int = 1; +pub const dot3ChipSetWesternDigital83C790: ::c_int = 2; + +// sys/netinet/in.h +// Protocols (RFC 1700) +// NOTE: These are in addition to the constants defined in src/unix/mod.rs + +// IPPROTO_IP defined in src/unix/mod.rs +/// IP6 hop-by-hop options +pub const IPPROTO_HOPOPTS: ::c_int = 0; +// IPPROTO_ICMP defined in src/unix/mod.rs +/// group mgmt protocol +pub const IPPROTO_IGMP: ::c_int = 2; +/// gateway^2 (deprecated) +pub const IPPROTO_GGP: ::c_int = 3; +/// for compatibility +pub const IPPROTO_IPIP: ::c_int = 4; +// IPPROTO_TCP defined in src/unix/mod.rs +/// Stream protocol II. +pub const IPPROTO_ST: ::c_int = 7; +/// exterior gateway protocol +pub const IPPROTO_EGP: ::c_int = 8; +/// private interior gateway +pub const IPPROTO_PIGP: ::c_int = 9; +/// BBN RCC Monitoring +pub const IPPROTO_RCCMON: ::c_int = 10; +/// network voice protocol +pub const IPPROTO_NVPII: ::c_int = 11; +/// pup +pub const IPPROTO_PUP: ::c_int = 12; +/// Argus +pub const IPPROTO_ARGUS: ::c_int = 13; +/// EMCON +pub const IPPROTO_EMCON: ::c_int = 14; +/// Cross Net Debugger +pub const IPPROTO_XNET: ::c_int = 15; +/// Chaos +pub const IPPROTO_CHAOS: ::c_int = 16; +// IPPROTO_UDP defined in src/unix/mod.rs +/// Multiplexing +pub const IPPROTO_MUX: ::c_int = 18; +/// DCN Measurement Subsystems +pub const IPPROTO_MEAS: ::c_int = 19; +/// Host Monitoring +pub const IPPROTO_HMP: ::c_int = 20; +/// Packet Radio Measurement +pub const IPPROTO_PRM: ::c_int = 21; +/// xns idp +pub const IPPROTO_IDP: ::c_int = 22; +/// Trunk-1 +pub const IPPROTO_TRUNK1: ::c_int = 23; +/// Trunk-2 +pub const IPPROTO_TRUNK2: ::c_int = 24; +/// Leaf-1 +pub const IPPROTO_LEAF1: ::c_int = 25; +/// Leaf-2 +pub const IPPROTO_LEAF2: ::c_int = 26; +/// Reliable Data +pub const IPPROTO_RDP: ::c_int = 27; +/// Reliable Transaction +pub const IPPROTO_IRTP: ::c_int = 28; +/// tp-4 w/ class negotiation +pub const IPPROTO_TP: ::c_int = 29; +/// Bulk Data Transfer +pub const IPPROTO_BLT: ::c_int = 30; +/// Network Services +pub const IPPROTO_NSP: ::c_int = 31; +/// Merit Internodal +pub const IPPROTO_INP: ::c_int = 32; +#[doc(hidden)] +#[deprecated( + since = "0.2.72", + note = "IPPROTO_SEP is deprecated. Use IPPROTO_DCCP instead" +)] +pub const IPPROTO_SEP: ::c_int = 33; +/// Datagram Congestion Control Protocol +pub const IPPROTO_DCCP: ::c_int = 33; +/// Third Party Connect +pub const IPPROTO_3PC: ::c_int = 34; +/// InterDomain Policy Routing +pub const IPPROTO_IDPR: ::c_int = 35; +/// XTP +pub const IPPROTO_XTP: ::c_int = 36; +/// Datagram Delivery +pub const IPPROTO_DDP: ::c_int = 37; +/// Control Message Transport +pub const IPPROTO_CMTP: ::c_int = 38; +/// TP++ Transport +pub const IPPROTO_TPXX: ::c_int = 39; +/// IL transport protocol +pub const IPPROTO_IL: ::c_int = 40; +// IPPROTO_IPV6 defined in src/unix/mod.rs +/// Source Demand Routing +pub const IPPROTO_SDRP: ::c_int = 42; +/// IP6 routing header +pub const IPPROTO_ROUTING: ::c_int = 43; +/// IP6 fragmentation header +pub const IPPROTO_FRAGMENT: ::c_int = 44; +/// InterDomain Routing +pub const IPPROTO_IDRP: ::c_int = 45; +/// resource reservation +pub const IPPROTO_RSVP: ::c_int = 46; +/// General Routing Encap. +pub const IPPROTO_GRE: ::c_int = 47; +/// Mobile Host Routing +pub const IPPROTO_MHRP: ::c_int = 48; +/// BHA +pub const IPPROTO_BHA: ::c_int = 49; +/// IP6 Encap Sec. Payload +pub const IPPROTO_ESP: ::c_int = 50; +/// IP6 Auth Header +pub const IPPROTO_AH: ::c_int = 51; +/// Integ. Net Layer Security +pub const IPPROTO_INLSP: ::c_int = 52; +/// IP with encryption +pub const IPPROTO_SWIPE: ::c_int = 53; +/// Next Hop Resolution +pub const IPPROTO_NHRP: ::c_int = 54; +/// IP Mobility +pub const IPPROTO_MOBILE: ::c_int = 55; +/// Transport Layer Security +pub const IPPROTO_TLSP: ::c_int = 56; +/// SKIP +pub const IPPROTO_SKIP: ::c_int = 57; +// IPPROTO_ICMPV6 defined in src/unix/mod.rs +/// IP6 no next header +pub const IPPROTO_NONE: ::c_int = 59; +/// IP6 destination option +pub const IPPROTO_DSTOPTS: ::c_int = 60; +/// any host internal protocol +pub const IPPROTO_AHIP: ::c_int = 61; +/// CFTP +pub const IPPROTO_CFTP: ::c_int = 62; +/// "hello" routing protocol +pub const IPPROTO_HELLO: ::c_int = 63; +/// SATNET/Backroom EXPAK +pub const IPPROTO_SATEXPAK: ::c_int = 64; +/// Kryptolan +pub const IPPROTO_KRYPTOLAN: ::c_int = 65; +/// Remote Virtual Disk +pub const IPPROTO_RVD: ::c_int = 66; +/// Pluribus Packet Core +pub const IPPROTO_IPPC: ::c_int = 67; +/// Any distributed FS +pub const IPPROTO_ADFS: ::c_int = 68; +/// Satnet Monitoring +pub const IPPROTO_SATMON: ::c_int = 69; +/// VISA Protocol +pub const IPPROTO_VISA: ::c_int = 70; +/// Packet Core Utility +pub const IPPROTO_IPCV: ::c_int = 71; +/// Comp. Prot. Net. Executive +pub const IPPROTO_CPNX: ::c_int = 72; +/// Comp. Prot. HeartBeat +pub const IPPROTO_CPHB: ::c_int = 73; +/// Wang Span Network +pub const IPPROTO_WSN: ::c_int = 74; +/// Packet Video Protocol +pub const IPPROTO_PVP: ::c_int = 75; +/// BackRoom SATNET Monitoring +pub const IPPROTO_BRSATMON: ::c_int = 76; +/// Sun net disk proto (temp.) +pub const IPPROTO_ND: ::c_int = 77; +/// WIDEBAND Monitoring +pub const IPPROTO_WBMON: ::c_int = 78; +/// WIDEBAND EXPAK +pub const IPPROTO_WBEXPAK: ::c_int = 79; +/// ISO cnlp +pub const IPPROTO_EON: ::c_int = 80; +/// VMTP +pub const IPPROTO_VMTP: ::c_int = 81; +/// Secure VMTP +pub const IPPROTO_SVMTP: ::c_int = 82; +/// Banyon VINES +pub const IPPROTO_VINES: ::c_int = 83; +/// TTP +pub const IPPROTO_TTP: ::c_int = 84; +/// NSFNET-IGP +pub const IPPROTO_IGP: ::c_int = 85; +/// dissimilar gateway prot. +pub const IPPROTO_DGP: ::c_int = 86; +/// TCF +pub const IPPROTO_TCF: ::c_int = 87; +/// Cisco/GXS IGRP +pub const IPPROTO_IGRP: ::c_int = 88; +/// OSPFIGP +pub const IPPROTO_OSPFIGP: ::c_int = 89; +/// Strite RPC protocol +pub const IPPROTO_SRPC: ::c_int = 90; +/// Locus Address Resoloution +pub const IPPROTO_LARP: ::c_int = 91; +/// Multicast Transport +pub const IPPROTO_MTP: ::c_int = 92; +/// AX.25 Frames +pub const IPPROTO_AX25: ::c_int = 93; +/// IP encapsulated in IP +pub const IPPROTO_IPEIP: ::c_int = 94; +/// Mobile Int.ing control +pub const IPPROTO_MICP: ::c_int = 95; +/// Semaphore Comm. security +pub const IPPROTO_SCCSP: ::c_int = 96; +/// Ethernet IP encapsulation +pub const IPPROTO_ETHERIP: ::c_int = 97; +/// encapsulation header +pub const IPPROTO_ENCAP: ::c_int = 98; +/// any private encr. scheme +pub const IPPROTO_APES: ::c_int = 99; +/// GMTP +pub const IPPROTO_GMTP: ::c_int = 100; +/// payload compression (IPComp) +pub const IPPROTO_IPCOMP: ::c_int = 108; +/// SCTP +pub const IPPROTO_SCTP: ::c_int = 132; +/// IPv6 Mobility Header +pub const IPPROTO_MH: ::c_int = 135; +/// UDP-Lite +pub const IPPROTO_UDPLITE: ::c_int = 136; +/// IP6 Host Identity Protocol +pub const IPPROTO_HIP: ::c_int = 139; +/// IP6 Shim6 Protocol +pub const IPPROTO_SHIM6: ::c_int = 140; + +/* 101-254: Partly Unassigned */ +/// Protocol Independent Mcast +pub const IPPROTO_PIM: ::c_int = 103; +/// CARP +pub const IPPROTO_CARP: ::c_int = 112; +/// PGM +pub const IPPROTO_PGM: ::c_int = 113; +/// MPLS-in-IP +pub const IPPROTO_MPLS: ::c_int = 137; +/// PFSYNC +pub const IPPROTO_PFSYNC: ::c_int = 240; + +/* 255: Reserved */ +/* BSD Private, local use, namespace incursion, no longer used */ +/// OLD divert pseudo-proto +pub const IPPROTO_OLD_DIVERT: ::c_int = 254; +pub const IPPROTO_MAX: ::c_int = 256; +/// last return value of *_input(), meaning "all job for this pkt is done". +pub const IPPROTO_DONE: ::c_int = 257; + +/* Only used internally, so can be outside the range of valid IP protocols. */ +/// divert pseudo-protocol +pub const IPPROTO_DIVERT: ::c_int = 258; +/// SeND pseudo-protocol +pub const IPPROTO_SEND: ::c_int = 259; + +// sys/netinet/TCP.h +pub const TCP_MD5SIG: ::c_int = 16; +pub const TCP_INFO: ::c_int = 32; +pub const TCP_CONGESTION: ::c_int = 64; +pub const TCP_CCALGOOPT: ::c_int = 65; +pub const TCP_MAXUNACKTIME: ::c_int = 68; +pub const TCP_MAXPEAKRATE: ::c_int = 69; +pub const TCP_IDLE_REDUCE: ::c_int = 70; +pub const TCP_REMOTE_UDP_ENCAPS_PORT: ::c_int = 71; +pub const TCP_DELACK: ::c_int = 72; +pub const TCP_FIN_IS_RST: ::c_int = 73; +pub const TCP_LOG_LIMIT: ::c_int = 74; +pub const TCP_SHARED_CWND_ALLOWED: ::c_int = 75; +pub const TCP_PROC_ACCOUNTING: ::c_int = 76; +pub const TCP_USE_CMP_ACKS: ::c_int = 77; +pub const TCP_PERF_INFO: ::c_int = 78; +pub const TCP_LRD: ::c_int = 79; +pub const TCP_KEEPINIT: ::c_int = 128; +pub const TCP_FASTOPEN: ::c_int = 1025; +pub const TCP_PCAP_OUT: ::c_int = 2048; +pub const TCP_PCAP_IN: ::c_int = 4096; +pub const TCP_FASTOPEN_PSK_LEN: ::c_int = 16; +pub const TCP_FUNCTION_NAME_LEN_MAX: ::c_int = 32; + +pub const IP_BINDANY: ::c_int = 24; +pub const IP_BINDMULTI: ::c_int = 25; +pub const IP_RSS_LISTEN_BUCKET: ::c_int = 26; +pub const IP_ORIGDSTADDR: ::c_int = 27; +pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR; + +pub const IP_DONTFRAG: ::c_int = 67; +pub const IP_RECVTOS: ::c_int = 68; + +pub const IPV6_BINDANY: ::c_int = 64; +pub const IPV6_ORIGDSTADDR: ::c_int = 72; +pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR; + +pub const PF_SLOW: ::c_int = AF_SLOW; +pub const PF_SCLUSTER: ::c_int = AF_SCLUSTER; +pub const PF_ARP: ::c_int = AF_ARP; +pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; +pub const PF_IEEE80211: ::c_int = AF_IEEE80211; +pub const PF_INET_SDP: ::c_int = AF_INET_SDP; +pub const PF_INET6_SDP: ::c_int = AF_INET6_SDP; + +pub const NET_RT_DUMP: ::c_int = 1; +pub const NET_RT_FLAGS: ::c_int = 2; +pub const NET_RT_IFLIST: ::c_int = 3; +pub const NET_RT_IFMALIST: ::c_int = 4; +pub const NET_RT_IFLISTL: ::c_int = 5; + +// System V IPC +pub const IPC_INFO: ::c_int = 3; +pub const MSG_NOERROR: ::c_int = 0o10000; +pub const SHM_LOCK: ::c_int = 11; +pub const SHM_UNLOCK: ::c_int = 12; +pub const SHM_STAT: ::c_int = 13; +pub const SHM_INFO: ::c_int = 14; +pub const SHM_ANON: *mut ::c_char = 1 as *mut ::c_char; + +// The *_MAXID constants never should've been used outside of the +// FreeBSD base system. And with the exception of CTL_P1003_1B_MAXID, +// they were all removed in svn r262489. They remain here for backwards +// compatibility only, and are scheduled to be removed in libc 1.0.0. +#[doc(hidden)] +#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] +pub const CTL_MAXID: ::c_int = 10; +#[doc(hidden)] +#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] +pub const KERN_MAXID: ::c_int = 38; +#[doc(hidden)] +#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] +pub const HW_MAXID: ::c_int = 13; +#[doc(hidden)] +#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] +pub const USER_MAXID: ::c_int = 21; +#[doc(hidden)] +#[deprecated(since = "0.2.74", note = "Removed in FreeBSD 13")] +pub const CTL_P1003_1B_MAXID: ::c_int = 26; + +pub const MSG_NOTIFICATION: ::c_int = 0x00002000; +pub const MSG_NBIO: ::c_int = 0x00004000; +pub const MSG_COMPAT: ::c_int = 0x00008000; +pub const MSG_CMSG_CLOEXEC: ::c_int = 0x00040000; +pub const MSG_NOSIGNAL: ::c_int = 0x20000; +pub const MSG_WAITFORONE: ::c_int = 0x00080000; + +// utmpx entry types +pub const EMPTY: ::c_short = 0; +pub const BOOT_TIME: ::c_short = 1; +pub const OLD_TIME: ::c_short = 2; +pub const NEW_TIME: ::c_short = 3; +pub const USER_PROCESS: ::c_short = 4; +pub const INIT_PROCESS: ::c_short = 5; +pub const LOGIN_PROCESS: ::c_short = 6; +pub const DEAD_PROCESS: ::c_short = 7; +pub const SHUTDOWN_TIME: ::c_short = 8; +// utmp database types +pub const UTXDB_ACTIVE: ::c_int = 0; +pub const UTXDB_LASTLOGIN: ::c_int = 1; +pub const UTXDB_LOG: ::c_int = 2; + +pub const LC_COLLATE_MASK: ::c_int = 1 << 0; +pub const LC_CTYPE_MASK: ::c_int = 1 << 1; +pub const LC_MONETARY_MASK: ::c_int = 1 << 2; +pub const LC_NUMERIC_MASK: ::c_int = 1 << 3; +pub const LC_TIME_MASK: ::c_int = 1 << 4; +pub const LC_MESSAGES_MASK: ::c_int = 1 << 5; +pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK + | LC_CTYPE_MASK + | LC_MESSAGES_MASK + | LC_MONETARY_MASK + | LC_NUMERIC_MASK + | LC_TIME_MASK; + +pub const WSTOPPED: ::c_int = 2; // same as WUNTRACED +pub const WCONTINUED: ::c_int = 4; +pub const WNOWAIT: ::c_int = 8; +pub const WEXITED: ::c_int = 16; +pub const WTRAPPED: ::c_int = 32; + +// FreeBSD defines a great many more of these, we only expose the +// standardized ones. +pub const P_PID: idtype_t = 0; +pub const P_PGID: idtype_t = 2; +pub const P_ALL: idtype_t = 7; + +pub const UTIME_OMIT: c_long = -2; +pub const UTIME_NOW: c_long = -1; + +pub const B460800: ::speed_t = 460800; +pub const B921600: ::speed_t = 921600; + +pub const AT_FDCWD: ::c_int = -100; +pub const AT_EACCESS: ::c_int = 0x100; +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x200; +pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; +pub const AT_REMOVEDIR: ::c_int = 0x800; +pub const AT_RESOLVE_BENEATH: ::c_int = 0x2000; +pub const AT_EMPTY_PATH: ::c_int = 0x4000; + +pub const AT_NULL: ::c_int = 0; +pub const AT_IGNORE: ::c_int = 1; +pub const AT_EXECFD: ::c_int = 2; +pub const AT_PHDR: ::c_int = 3; +pub const AT_PHENT: ::c_int = 4; +pub const AT_PHNUM: ::c_int = 5; +pub const AT_PAGESZ: ::c_int = 6; +pub const AT_BASE: ::c_int = 7; +pub const AT_FLAGS: ::c_int = 8; +pub const AT_ENTRY: ::c_int = 9; +pub const AT_NOTELF: ::c_int = 10; +pub const AT_UID: ::c_int = 11; +pub const AT_EUID: ::c_int = 12; +pub const AT_GID: ::c_int = 13; +pub const AT_EGID: ::c_int = 14; +pub const AT_EXECPATH: ::c_int = 15; +pub const AT_CANARY: ::c_int = 16; +pub const AT_OSRELDATE: ::c_int = 18; +pub const AT_NCPUS: ::c_int = 19; +pub const AT_PAGESIZES: ::c_int = 20; +pub const AT_TIMEKEEP: ::c_int = 22; +pub const AT_HWCAP: ::c_int = 25; +pub const AT_HWCAP2: ::c_int = 26; +pub const AT_USRSTACKBASE: ::c_int = 35; +pub const AT_USRSTACKLIM: ::c_int = 36; + +pub const TABDLY: ::tcflag_t = 0x00000004; +pub const TAB0: ::tcflag_t = 0x00000000; +pub const TAB3: ::tcflag_t = 0x00000004; + +pub const _PC_ACL_NFS4: ::c_int = 64; + +pub const _SC_CPUSET_SIZE: ::c_int = 122; + +pub const _UUID_NODE_LEN: usize = 6; + +// Flags which can be passed to pdfork(2) +pub const PD_DAEMON: ::c_int = 0x00000001; +pub const PD_CLOEXEC: ::c_int = 0x00000002; +pub const PD_ALLOWED_AT_FORK: ::c_int = PD_DAEMON | PD_CLOEXEC; + +// Values for struct rtprio (type_ field) +pub const RTP_PRIO_REALTIME: ::c_ushort = 2; +pub const RTP_PRIO_NORMAL: ::c_ushort = 3; +pub const RTP_PRIO_IDLE: ::c_ushort = 4; + +pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; +pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; +pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x04; +pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x08; +pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10; +pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20; + +// Flags for chflags(2) +pub const UF_SYSTEM: ::c_ulong = 0x00000080; +pub const UF_SPARSE: ::c_ulong = 0x00000100; +pub const UF_OFFLINE: ::c_ulong = 0x00000200; +pub const UF_REPARSE: ::c_ulong = 0x00000400; +pub const UF_ARCHIVE: ::c_ulong = 0x00000800; +pub const UF_READONLY: ::c_ulong = 0x00001000; +pub const UF_HIDDEN: ::c_ulong = 0x00008000; +pub const SF_SNAPSHOT: ::c_ulong = 0x00200000; + +// fcntl commands +pub const F_ADD_SEALS: ::c_int = 19; +pub const F_GET_SEALS: ::c_int = 20; +pub const F_OGETLK: ::c_int = 7; +pub const F_OSETLK: ::c_int = 8; +pub const F_OSETLKW: ::c_int = 9; +pub const F_RDAHEAD: ::c_int = 16; +pub const F_READAHEAD: ::c_int = 15; +pub const F_SETLK_REMOTE: ::c_int = 14; +pub const F_KINFO: ::c_int = 22; + +// for use with F_ADD_SEALS +pub const F_SEAL_GROW: ::c_int = 4; +pub const F_SEAL_SEAL: ::c_int = 1; +pub const F_SEAL_SHRINK: ::c_int = 2; +pub const F_SEAL_WRITE: ::c_int = 8; + +// for use with fspacectl +pub const SPACECTL_DEALLOC: ::c_int = 1; + +// For getrandom() +pub const GRND_NONBLOCK: ::c_uint = 0x1; +pub const GRND_RANDOM: ::c_uint = 0x2; +pub const GRND_INSECURE: ::c_uint = 0x4; + +// For realhostname* api +pub const HOSTNAME_FOUND: ::c_int = 0; +pub const HOSTNAME_INCORRECTNAME: ::c_int = 1; +pub const HOSTNAME_INVALIDADDR: ::c_int = 2; +pub const HOSTNAME_INVALIDNAME: ::c_int = 3; + +// For rfork +pub const RFFDG: ::c_int = 4; +pub const RFPROC: ::c_int = 16; +pub const RFMEM: ::c_int = 32; +pub const RFNOWAIT: ::c_int = 64; +pub const RFCFDG: ::c_int = 4096; +pub const RFTHREAD: ::c_int = 8192; +pub const RFLINUXTHPN: ::c_int = 65536; +pub const RFTSIGZMB: ::c_int = 524288; +pub const RFSPAWN: ::c_int = 2147483648; + +// For eventfd +pub const EFD_SEMAPHORE: ::c_int = 0x1; +pub const EFD_NONBLOCK: ::c_int = 0x4; +pub const EFD_CLOEXEC: ::c_int = 0x100000; + +pub const MALLOCX_ZERO: ::c_int = 0x40; + +/// size of returned wchan message +pub const WMESGLEN: usize = 8; +/// size of returned lock name +pub const LOCKNAMELEN: usize = 8; +/// size of returned thread name +pub const TDNAMLEN: usize = 16; +/// size of returned ki_comm name +pub const COMMLEN: usize = 19; +/// size of returned ki_emul +pub const KI_EMULNAMELEN: usize = 16; +/// number of groups in ki_groups +pub const KI_NGROUPS: usize = 16; +cfg_if! { + if #[cfg(freebsd11)] { + pub const KI_NSPARE_INT: usize = 4; + } else { + pub const KI_NSPARE_INT: usize = 2; + } +} +pub const KI_NSPARE_LONG: usize = 12; +/// Flags for the process credential. +pub const KI_CRF_CAPABILITY_MODE: usize = 0x00000001; +/// Steal a bit from ki_cr_flags to indicate that the cred had more than +/// KI_NGROUPS groups. +pub const KI_CRF_GRP_OVERFLOW: usize = 0x80000000; +/// controlling tty vnode active +pub const KI_CTTY: usize = 0x00000001; +/// session leader +pub const KI_SLEADER: usize = 0x00000002; +/// proc blocked on lock ki_lockname +pub const KI_LOCKBLOCK: usize = 0x00000004; +/// size of returned ki_login +pub const LOGNAMELEN: usize = 17; +/// size of returned ki_loginclass +pub const LOGINCLASSLEN: usize = 17; + +pub const KF_ATTR_VALID: ::c_int = 0x0001; +pub const KF_TYPE_NONE: ::c_int = 0; +pub const KF_TYPE_VNODE: ::c_int = 1; +pub const KF_TYPE_SOCKET: ::c_int = 2; +pub const KF_TYPE_PIPE: ::c_int = 3; +pub const KF_TYPE_FIFO: ::c_int = 4; +pub const KF_TYPE_KQUEUE: ::c_int = 5; +pub const KF_TYPE_MQUEUE: ::c_int = 7; +pub const KF_TYPE_SHM: ::c_int = 8; +pub const KF_TYPE_SEM: ::c_int = 9; +pub const KF_TYPE_PTS: ::c_int = 10; +pub const KF_TYPE_PROCDESC: ::c_int = 11; +pub const KF_TYPE_DEV: ::c_int = 12; +pub const KF_TYPE_UNKNOWN: ::c_int = 255; + +pub const KF_VTYPE_VNON: ::c_int = 0; +pub const KF_VTYPE_VREG: ::c_int = 1; +pub const KF_VTYPE_VDIR: ::c_int = 2; +pub const KF_VTYPE_VBLK: ::c_int = 3; +pub const KF_VTYPE_VCHR: ::c_int = 4; +pub const KF_VTYPE_VLNK: ::c_int = 5; +pub const KF_VTYPE_VSOCK: ::c_int = 6; +pub const KF_VTYPE_VFIFO: ::c_int = 7; +pub const KF_VTYPE_VBAD: ::c_int = 8; +pub const KF_VTYPE_UNKNOWN: ::c_int = 255; + +/// Current working directory +pub const KF_FD_TYPE_CWD: ::c_int = -1; +/// Root directory +pub const KF_FD_TYPE_ROOT: ::c_int = -2; +/// Jail directory +pub const KF_FD_TYPE_JAIL: ::c_int = -3; +/// Ktrace vnode +pub const KF_FD_TYPE_TRACE: ::c_int = -4; +pub const KF_FD_TYPE_TEXT: ::c_int = -5; +/// Controlling terminal +pub const KF_FD_TYPE_CTTY: ::c_int = -6; +pub const KF_FLAG_READ: ::c_int = 0x00000001; +pub const KF_FLAG_WRITE: ::c_int = 0x00000002; +pub const KF_FLAG_APPEND: ::c_int = 0x00000004; +pub const KF_FLAG_ASYNC: ::c_int = 0x00000008; +pub const KF_FLAG_FSYNC: ::c_int = 0x00000010; +pub const KF_FLAG_NONBLOCK: ::c_int = 0x00000020; +pub const KF_FLAG_DIRECT: ::c_int = 0x00000040; +pub const KF_FLAG_HASLOCK: ::c_int = 0x00000080; +pub const KF_FLAG_SHLOCK: ::c_int = 0x00000100; +pub const KF_FLAG_EXLOCK: ::c_int = 0x00000200; +pub const KF_FLAG_NOFOLLOW: ::c_int = 0x00000400; +pub const KF_FLAG_CREAT: ::c_int = 0x00000800; +pub const KF_FLAG_TRUNC: ::c_int = 0x00001000; +pub const KF_FLAG_EXCL: ::c_int = 0x00002000; +pub const KF_FLAG_EXEC: ::c_int = 0x00004000; + +pub const KVME_TYPE_NONE: ::c_int = 0; +pub const KVME_TYPE_DEFAULT: ::c_int = 1; +pub const KVME_TYPE_VNODE: ::c_int = 2; +pub const KVME_TYPE_SWAP: ::c_int = 3; +pub const KVME_TYPE_DEVICE: ::c_int = 4; +pub const KVME_TYPE_PHYS: ::c_int = 5; +pub const KVME_TYPE_DEAD: ::c_int = 6; +pub const KVME_TYPE_SG: ::c_int = 7; +pub const KVME_TYPE_MGTDEVICE: ::c_int = 8; +// Present in `sys/user.h` but is undefined for whatever reason... +// pub const KVME_TYPE_GUARD: ::c_int = 9; +pub const KVME_TYPE_UNKNOWN: ::c_int = 255; +pub const KVME_PROT_READ: ::c_int = 0x00000001; +pub const KVME_PROT_WRITE: ::c_int = 0x00000002; +pub const KVME_PROT_EXEC: ::c_int = 0x00000004; +pub const KVME_FLAG_COW: ::c_int = 0x00000001; +pub const KVME_FLAG_NEEDS_COPY: ::c_int = 0x00000002; +pub const KVME_FLAG_NOCOREDUMP: ::c_int = 0x00000004; +pub const KVME_FLAG_SUPER: ::c_int = 0x00000008; +pub const KVME_FLAG_GROWS_UP: ::c_int = 0x00000010; +pub const KVME_FLAG_GROWS_DOWN: ::c_int = 0x00000020; +pub const KVME_FLAG_USER_WIRED: ::c_int = 0x00000040; + +pub const KKST_MAXLEN: ::c_int = 1024; +/// Stack is valid. +pub const KKST_STATE_STACKOK: ::c_int = 0; +/// Stack swapped out. +pub const KKST_STATE_SWAPPED: ::c_int = 1; +pub const KKST_STATE_RUNNING: ::c_int = 2; + +// Constants about priority. +pub const PRI_MIN: ::c_int = 0; +pub const PRI_MAX: ::c_int = 255; +pub const PRI_MIN_ITHD: ::c_int = PRI_MIN; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PRI_MAX_ITHD: ::c_int = PRI_MIN_REALTIME - 1; +pub const PI_REALTIME: ::c_int = PRI_MIN_ITHD + 0; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const PI_AV: ::c_int = PRI_MIN_ITHD + 4; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const PI_NET: ::c_int = PRI_MIN_ITHD + 8; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const PI_DISK: ::c_int = PRI_MIN_ITHD + 12; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const PI_TTY: ::c_int = PRI_MIN_ITHD + 16; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const PI_DULL: ::c_int = PRI_MIN_ITHD + 20; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const PI_SOFT: ::c_int = PRI_MIN_ITHD + 24; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const PRI_MIN_REALTIME: ::c_int = 48; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PRI_MAX_REALTIME: ::c_int = PRI_MIN_KERN - 1; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const PRI_MIN_KERN: ::c_int = 80; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PRI_MAX_KERN: ::c_int = PRI_MIN_TIMESHARE - 1; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PSWP: ::c_int = PRI_MIN_KERN + 0; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PVM: ::c_int = PRI_MIN_KERN + 4; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PINOD: ::c_int = PRI_MIN_KERN + 8; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PRIBIO: ::c_int = PRI_MIN_KERN + 12; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PVFS: ::c_int = PRI_MIN_KERN + 16; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PZERO: ::c_int = PRI_MIN_KERN + 20; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PSOCK: ::c_int = PRI_MIN_KERN + 24; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PWAIT: ::c_int = PRI_MIN_KERN + 28; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PLOCK: ::c_int = PRI_MIN_KERN + 32; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PPAUSE: ::c_int = PRI_MIN_KERN + 36; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const PRI_MIN_TIMESHARE: ::c_int = 120; +pub const PRI_MAX_TIMESHARE: ::c_int = PRI_MIN_IDLE - 1; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +#[allow(deprecated)] +pub const PUSER: ::c_int = PRI_MIN_TIMESHARE; +pub const PRI_MIN_IDLE: ::c_int = 224; +pub const PRI_MAX_IDLE: ::c_int = PRI_MAX; + +pub const NZERO: ::c_int = 0; + +// Resource utilization information. +pub const RUSAGE_THREAD: ::c_int = 1; + +cfg_if! { + if #[cfg(any(freebsd11, target_pointer_width = "32"))] { + pub const ARG_MAX: ::c_int = 256 * 1024; + } else { + pub const ARG_MAX: ::c_int = 2 * 256 * 1024; + } +} +pub const CHILD_MAX: ::c_int = 40; +/// max command name remembered +pub const MAXCOMLEN: usize = 19; +/// max interpreter file name length +pub const MAXINTERP: ::c_int = ::PATH_MAX; +/// max login name length (incl. NUL) +pub const MAXLOGNAME: ::c_int = 33; +/// max simultaneous processes +pub const MAXUPRC: ::c_int = CHILD_MAX; +/// max bytes for an exec function +pub const NCARGS: ::c_int = ARG_MAX; +/// /* max number groups +pub const NGROUPS: ::c_int = NGROUPS_MAX + 1; +/// max open files per process +pub const NOFILE: ::c_int = OPEN_MAX; +/// marker for empty group set member +pub const NOGROUP: ::c_int = 65535; +/// max hostname size +pub const MAXHOSTNAMELEN: ::c_int = 256; +/// max bytes in term canon input line +pub const MAX_CANON: ::c_int = 255; +/// max bytes in terminal input +pub const MAX_INPUT: ::c_int = 255; +/// max bytes in a file name +pub const NAME_MAX: ::c_int = 255; +pub const MAXSYMLINKS: ::c_int = 32; +/// max supplemental group id's +pub const NGROUPS_MAX: ::c_int = 1023; +/// max open files per process +pub const OPEN_MAX: ::c_int = 64; + +pub const _POSIX_ARG_MAX: ::c_int = 4096; +pub const _POSIX_LINK_MAX: ::c_int = 8; +pub const _POSIX_MAX_CANON: ::c_int = 255; +pub const _POSIX_MAX_INPUT: ::c_int = 255; +pub const _POSIX_NAME_MAX: ::c_int = 14; +pub const _POSIX_PIPE_BUF: ::c_int = 512; +pub const _POSIX_SSIZE_MAX: ::c_int = 32767; +pub const _POSIX_STREAM_MAX: ::c_int = 8; + +/// max ibase/obase values in bc(1) +pub const BC_BASE_MAX: ::c_int = 99; +/// max array elements in bc(1) +pub const BC_DIM_MAX: ::c_int = 2048; +/// max scale value in bc(1) +pub const BC_SCALE_MAX: ::c_int = 99; +/// max const string length in bc(1) +pub const BC_STRING_MAX: ::c_int = 1000; +/// max character class name size +pub const CHARCLASS_NAME_MAX: ::c_int = 14; +/// max weights for order keyword +pub const COLL_WEIGHTS_MAX: ::c_int = 10; +/// max expressions nested in expr(1) +pub const EXPR_NEST_MAX: ::c_int = 32; +/// max bytes in an input line +pub const LINE_MAX: ::c_int = 2048; +/// max RE's in interval notation +pub const RE_DUP_MAX: ::c_int = 255; + +pub const _POSIX2_BC_BASE_MAX: ::c_int = 99; +pub const _POSIX2_BC_DIM_MAX: ::c_int = 2048; +pub const _POSIX2_BC_SCALE_MAX: ::c_int = 99; +pub const _POSIX2_BC_STRING_MAX: ::c_int = 1000; +pub const _POSIX2_CHARCLASS_NAME_MAX: ::c_int = 14; +pub const _POSIX2_COLL_WEIGHTS_MAX: ::c_int = 2; +pub const _POSIX2_EQUIV_CLASS_MAX: ::c_int = 2; +pub const _POSIX2_EXPR_NEST_MAX: ::c_int = 32; +pub const _POSIX2_LINE_MAX: ::c_int = 2048; +pub const _POSIX2_RE_DUP_MAX: ::c_int = 255; + +// sys/proc.h +pub const TDF_BORROWING: ::c_int = 0x00000001; +pub const TDF_INPANIC: ::c_int = 0x00000002; +pub const TDF_INMEM: ::c_int = 0x00000004; +pub const TDF_SINTR: ::c_int = 0x00000008; +pub const TDF_TIMEOUT: ::c_int = 0x00000010; +pub const TDF_IDLETD: ::c_int = 0x00000020; +pub const TDF_CANSWAP: ::c_int = 0x00000040; +pub const TDF_KTH_SUSP: ::c_int = 0x00000100; +pub const TDF_ALLPROCSUSP: ::c_int = 0x00000200; +pub const TDF_BOUNDARY: ::c_int = 0x00000400; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const TDF_ASTPENDING: ::c_int = 0x00000800; +pub const TDF_SBDRY: ::c_int = 0x00002000; +pub const TDF_UPIBLOCKED: ::c_int = 0x00004000; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const TDF_NEEDSUSPCHK: ::c_int = 0x00008000; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const TDF_NEEDRESCHED: ::c_int = 0x00010000; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const TDF_NEEDSIGCHK: ::c_int = 0x00020000; +pub const TDF_NOLOAD: ::c_int = 0x00040000; +pub const TDF_SERESTART: ::c_int = 0x00080000; +pub const TDF_THRWAKEUP: ::c_int = 0x00100000; +pub const TDF_SEINTR: ::c_int = 0x00200000; +pub const TDF_SWAPINREQ: ::c_int = 0x00400000; +#[deprecated(since = "0.2.133", note = "Removed in FreeBSD 14")] +pub const TDF_UNUSED23: ::c_int = 0x00800000; +pub const TDF_SCHED0: ::c_int = 0x01000000; +pub const TDF_SCHED1: ::c_int = 0x02000000; +pub const TDF_SCHED2: ::c_int = 0x04000000; +pub const TDF_SCHED3: ::c_int = 0x08000000; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const TDF_ALRMPEND: ::c_int = 0x10000000; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const TDF_PROFPEND: ::c_int = 0x20000000; +#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] +pub const TDF_MACPEND: ::c_int = 0x40000000; + +pub const TDB_SUSPEND: ::c_int = 0x00000001; +pub const TDB_XSIG: ::c_int = 0x00000002; +pub const TDB_USERWR: ::c_int = 0x00000004; +pub const TDB_SCE: ::c_int = 0x00000008; +pub const TDB_SCX: ::c_int = 0x00000010; +pub const TDB_EXEC: ::c_int = 0x00000020; +pub const TDB_FORK: ::c_int = 0x00000040; +pub const TDB_STOPATFORK: ::c_int = 0x00000080; +pub const TDB_CHILD: ::c_int = 0x00000100; +pub const TDB_BORN: ::c_int = 0x00000200; +pub const TDB_EXIT: ::c_int = 0x00000400; +pub const TDB_VFORK: ::c_int = 0x00000800; +pub const TDB_FSTP: ::c_int = 0x00001000; +pub const TDB_STEP: ::c_int = 0x00002000; + +pub const TDP_OLDMASK: ::c_int = 0x00000001; +pub const TDP_INKTR: ::c_int = 0x00000002; +pub const TDP_INKTRACE: ::c_int = 0x00000004; +pub const TDP_BUFNEED: ::c_int = 0x00000008; +pub const TDP_COWINPROGRESS: ::c_int = 0x00000010; +pub const TDP_ALTSTACK: ::c_int = 0x00000020; +pub const TDP_DEADLKTREAT: ::c_int = 0x00000040; +pub const TDP_NOFAULTING: ::c_int = 0x00000080; +pub const TDP_OWEUPC: ::c_int = 0x00000200; +pub const TDP_ITHREAD: ::c_int = 0x00000400; +pub const TDP_SYNCIO: ::c_int = 0x00000800; +pub const TDP_SCHED1: ::c_int = 0x00001000; +pub const TDP_SCHED2: ::c_int = 0x00002000; +pub const TDP_SCHED3: ::c_int = 0x00004000; +pub const TDP_SCHED4: ::c_int = 0x00008000; +pub const TDP_GEOM: ::c_int = 0x00010000; +pub const TDP_SOFTDEP: ::c_int = 0x00020000; +pub const TDP_NORUNNINGBUF: ::c_int = 0x00040000; +pub const TDP_WAKEUP: ::c_int = 0x00080000; +pub const TDP_INBDFLUSH: ::c_int = 0x00100000; +pub const TDP_KTHREAD: ::c_int = 0x00200000; +pub const TDP_CALLCHAIN: ::c_int = 0x00400000; +pub const TDP_IGNSUSP: ::c_int = 0x00800000; +pub const TDP_AUDITREC: ::c_int = 0x01000000; +pub const TDP_RFPPWAIT: ::c_int = 0x02000000; +pub const TDP_RESETSPUR: ::c_int = 0x04000000; +pub const TDP_NERRNO: ::c_int = 0x08000000; +pub const TDP_EXECVMSPC: ::c_int = 0x40000000; + +pub const TDI_SUSPENDED: ::c_int = 0x0001; +pub const TDI_SLEEPING: ::c_int = 0x0002; +pub const TDI_SWAPPED: ::c_int = 0x0004; +pub const TDI_LOCK: ::c_int = 0x0008; +pub const TDI_IWAIT: ::c_int = 0x0010; + +pub const P_ADVLOCK: ::c_int = 0x00000001; +pub const P_CONTROLT: ::c_int = 0x00000002; +pub const P_KPROC: ::c_int = 0x00000004; +pub const P_UNUSED3: ::c_int = 0x00000008; +pub const P_PPWAIT: ::c_int = 0x00000010; +pub const P_PROFIL: ::c_int = 0x00000020; +pub const P_STOPPROF: ::c_int = 0x00000040; +pub const P_HADTHREADS: ::c_int = 0x00000080; +pub const P_SUGID: ::c_int = 0x00000100; +pub const P_SYSTEM: ::c_int = 0x00000200; +pub const P_SINGLE_EXIT: ::c_int = 0x00000400; +pub const P_TRACED: ::c_int = 0x00000800; +pub const P_WAITED: ::c_int = 0x00001000; +pub const P_WEXIT: ::c_int = 0x00002000; +pub const P_EXEC: ::c_int = 0x00004000; +pub const P_WKILLED: ::c_int = 0x00008000; +pub const P_CONTINUED: ::c_int = 0x00010000; +pub const P_STOPPED_SIG: ::c_int = 0x00020000; +pub const P_STOPPED_TRACE: ::c_int = 0x00040000; +pub const P_STOPPED_SINGLE: ::c_int = 0x00080000; +pub const P_PROTECTED: ::c_int = 0x00100000; +pub const P_SIGEVENT: ::c_int = 0x00200000; +pub const P_SINGLE_BOUNDARY: ::c_int = 0x00400000; +pub const P_HWPMC: ::c_int = 0x00800000; +pub const P_JAILED: ::c_int = 0x01000000; +pub const P_TOTAL_STOP: ::c_int = 0x02000000; +pub const P_INEXEC: ::c_int = 0x04000000; +pub const P_STATCHILD: ::c_int = 0x08000000; +pub const P_INMEM: ::c_int = 0x10000000; +pub const P_SWAPPINGOUT: ::c_int = 0x20000000; +pub const P_SWAPPINGIN: ::c_int = 0x40000000; +pub const P_PPTRACE: ::c_int = 0x80000000; +pub const P_STOPPED: ::c_int = P_STOPPED_SIG | P_STOPPED_SINGLE | P_STOPPED_TRACE; + +pub const P2_INHERIT_PROTECTED: ::c_int = 0x00000001; +pub const P2_NOTRACE: ::c_int = 0x00000002; +pub const P2_NOTRACE_EXEC: ::c_int = 0x00000004; +pub const P2_AST_SU: ::c_int = 0x00000008; +pub const P2_PTRACE_FSTP: ::c_int = 0x00000010; +pub const P2_TRAPCAP: ::c_int = 0x00000020; +pub const P2_STKGAP_DISABLE: ::c_int = 0x00000800; +pub const P2_STKGAP_DISABLE_EXEC: ::c_int = 0x00001000; + +pub const P_TREE_ORPHANED: ::c_int = 0x00000001; +pub const P_TREE_FIRST_ORPHAN: ::c_int = 0x00000002; +pub const P_TREE_REAPER: ::c_int = 0x00000004; + +pub const SIDL: ::c_char = 1; +pub const SRUN: ::c_char = 2; +pub const SSLEEP: ::c_char = 3; +pub const SSTOP: ::c_char = 4; +pub const SZOMB: ::c_char = 5; +pub const SWAIT: ::c_char = 6; +pub const SLOCK: ::c_char = 7; + +pub const P_MAGIC: ::c_int = 0xbeefface; + +pub const TDP_SIGFASTBLOCK: ::c_int = 0x00000100; +pub const TDP_UIOHELD: ::c_int = 0x10000000; +pub const TDP_SIGFASTPENDING: ::c_int = 0x80000000; +pub const TDP2_COMPAT32RB: ::c_int = 0x00000002; +pub const P2_PROTMAX_ENABLE: ::c_int = 0x00000200; +pub const P2_PROTMAX_DISABLE: ::c_int = 0x00000400; +pub const TDP2_SBPAGES: ::c_int = 0x00000001; +pub const P2_ASLR_ENABLE: ::c_int = 0x00000040; +pub const P2_ASLR_DISABLE: ::c_int = 0x00000080; +pub const P2_ASLR_IGNSTART: ::c_int = 0x00000100; +pub const P_TREE_GRPEXITED: ::c_int = 0x00000008; + +// libprocstat.h +pub const PS_FST_VTYPE_VNON: ::c_int = 1; +pub const PS_FST_VTYPE_VREG: ::c_int = 2; +pub const PS_FST_VTYPE_VDIR: ::c_int = 3; +pub const PS_FST_VTYPE_VBLK: ::c_int = 4; +pub const PS_FST_VTYPE_VCHR: ::c_int = 5; +pub const PS_FST_VTYPE_VLNK: ::c_int = 6; +pub const PS_FST_VTYPE_VSOCK: ::c_int = 7; +pub const PS_FST_VTYPE_VFIFO: ::c_int = 8; +pub const PS_FST_VTYPE_VBAD: ::c_int = 9; +pub const PS_FST_VTYPE_UNKNOWN: ::c_int = 255; + +pub const PS_FST_TYPE_VNODE: ::c_int = 1; +pub const PS_FST_TYPE_FIFO: ::c_int = 2; +pub const PS_FST_TYPE_SOCKET: ::c_int = 3; +pub const PS_FST_TYPE_PIPE: ::c_int = 4; +pub const PS_FST_TYPE_PTS: ::c_int = 5; +pub const PS_FST_TYPE_KQUEUE: ::c_int = 6; +pub const PS_FST_TYPE_MQUEUE: ::c_int = 8; +pub const PS_FST_TYPE_SHM: ::c_int = 9; +pub const PS_FST_TYPE_SEM: ::c_int = 10; +pub const PS_FST_TYPE_UNKNOWN: ::c_int = 11; +pub const PS_FST_TYPE_NONE: ::c_int = 12; +pub const PS_FST_TYPE_PROCDESC: ::c_int = 13; +pub const PS_FST_TYPE_DEV: ::c_int = 14; +pub const PS_FST_TYPE_EVENTFD: ::c_int = 15; + +pub const PS_FST_UFLAG_RDIR: ::c_int = 0x0001; +pub const PS_FST_UFLAG_CDIR: ::c_int = 0x0002; +pub const PS_FST_UFLAG_JAIL: ::c_int = 0x0004; +pub const PS_FST_UFLAG_TRACE: ::c_int = 0x0008; +pub const PS_FST_UFLAG_TEXT: ::c_int = 0x0010; +pub const PS_FST_UFLAG_MMAP: ::c_int = 0x0020; +pub const PS_FST_UFLAG_CTTY: ::c_int = 0x0040; + +pub const PS_FST_FFLAG_READ: ::c_int = 0x0001; +pub const PS_FST_FFLAG_WRITE: ::c_int = 0x0002; +pub const PS_FST_FFLAG_NONBLOCK: ::c_int = 0x0004; +pub const PS_FST_FFLAG_APPEND: ::c_int = 0x0008; +pub const PS_FST_FFLAG_SHLOCK: ::c_int = 0x0010; +pub const PS_FST_FFLAG_EXLOCK: ::c_int = 0x0020; +pub const PS_FST_FFLAG_ASYNC: ::c_int = 0x0040; +pub const PS_FST_FFLAG_SYNC: ::c_int = 0x0080; +pub const PS_FST_FFLAG_NOFOLLOW: ::c_int = 0x0100; +pub const PS_FST_FFLAG_CREAT: ::c_int = 0x0200; +pub const PS_FST_FFLAG_TRUNC: ::c_int = 0x0400; +pub const PS_FST_FFLAG_EXCL: ::c_int = 0x0800; +pub const PS_FST_FFLAG_DIRECT: ::c_int = 0x1000; +pub const PS_FST_FFLAG_EXEC: ::c_int = 0x2000; +pub const PS_FST_FFLAG_HASLOCK: ::c_int = 0x4000; + +// sys/mount.h + +/// File identifier. +/// These are unique per filesystem on a single machine. +/// +/// Note that the offset of fid_data is 4 bytes, so care must be taken to avoid +/// undefined behavior accessing unaligned fields within an embedded struct. +pub const MAXFIDSZ: ::c_int = 16; +/// Length of type name including null. +pub const MFSNAMELEN: ::c_int = 16; +cfg_if! { + if #[cfg(any(freebsd10, freebsd11))] { + /// Size of on/from name bufs. + pub const MNAMELEN: ::c_int = 88; + } else { + /// Size of on/from name bufs. + pub const MNAMELEN: ::c_int = 1024; + } +} + +/// Using journaled soft updates. +pub const MNT_SUJ: u64 = 0x100000000; +/// Mounted by automountd(8). +pub const MNT_AUTOMOUNTED: u64 = 0x200000000; +/// Filesys metadata untrusted. +pub const MNT_UNTRUSTED: u64 = 0x800000000; + +/// Require TLS. +pub const MNT_EXTLS: u64 = 0x4000000000; +/// Require TLS with client cert. +pub const MNT_EXTLSCERT: u64 = 0x8000000000; +/// Require TLS with user cert. +pub const MNT_EXTLSCERTUSER: u64 = 0x10000000000; + +/// Filesystem is stored locally. +pub const MNT_LOCAL: u64 = 0x000001000; +/// Quotas are enabled on fs. +pub const MNT_QUOTA: u64 = 0x000002000; +/// Identifies the root fs. +pub const MNT_ROOTFS: u64 = 0x000004000; +/// Mounted by a user. +pub const MNT_USER: u64 = 0x000008000; +/// Do not show entry in df. +pub const MNT_IGNORE: u64 = 0x000800000; +/// Filesystem is verified. +pub const MNT_VERIFIED: u64 = 0x400000000; + +/// Do not cover a mount point. +pub const MNT_NOCOVER: u64 = 0x001000000000; +/// Only mount on empty dir. +pub const MNT_EMPTYDIR: u64 = 0x002000000000; +/// Recursively unmount uppers. +pub const MNT_RECURSE: u64 = 0x100000000000; +/// Unmount in async context. +pub const MNT_DEFERRED: u64 = 0x200000000000; + +/// Get configured filesystems. +pub const VFS_VFSCONF: ::c_int = 0; +/// Generic filesystem information. +pub const VFS_GENERIC: ::c_int = 0; + +/// int: highest defined filesystem type. +pub const VFS_MAXTYPENUM: ::c_int = 1; +/// struct: vfsconf for filesystem given as next argument. +pub const VFS_CONF: ::c_int = 2; + +/// Synchronously wait for I/O to complete. +pub const MNT_WAIT: ::c_int = 1; +/// Start all I/O, but do not wait for it. +pub const MNT_NOWAIT: ::c_int = 2; +/// Push data not written by filesystem syncer. +pub const MNT_LAZY: ::c_int = 3; +/// Suspend file system after sync. +pub const MNT_SUSPEND: ::c_int = 4; + +pub const MAXSECFLAVORS: ::c_int = 5; + +/// Statically compiled into kernel. +pub const VFCF_STATIC: ::c_int = 0x00010000; +/// May get data over the network. +pub const VFCF_NETWORK: ::c_int = 0x00020000; +/// Writes are not implemented. +pub const VFCF_READONLY: ::c_int = 0x00040000; +/// Data does not represent real files. +pub const VFCF_SYNTHETIC: ::c_int = 0x00080000; +/// Aliases some other mounted FS. +pub const VFCF_LOOPBACK: ::c_int = 0x00100000; +/// Stores file names as Unicode. +pub const VFCF_UNICODE: ::c_int = 0x00200000; +/// Can be mounted from within a jail. +pub const VFCF_JAIL: ::c_int = 0x00400000; +/// Supports delegated administration. +pub const VFCF_DELEGADMIN: ::c_int = 0x00800000; +/// Stop at Boundary: defer stop requests to kernel->user (AST) transition. +pub const VFCF_SBDRY: ::c_int = 0x01000000; + +// time.h + +/// not on dst +pub const DST_NONE: ::c_int = 0; +/// USA style dst +pub const DST_USA: ::c_int = 1; +/// Australian style dst +pub const DST_AUST: ::c_int = 2; +/// Western European dst +pub const DST_WET: ::c_int = 3; +/// Middle European dst +pub const DST_MET: ::c_int = 4; +/// Eastern European dst +pub const DST_EET: ::c_int = 5; +/// Canada +pub const DST_CAN: ::c_int = 6; + +pub const CPUCLOCK_WHICH_PID: ::c_int = 0; +pub const CPUCLOCK_WHICH_TID: ::c_int = 1; + +pub const MFD_CLOEXEC: ::c_uint = 0x00000001; +pub const MFD_ALLOW_SEALING: ::c_uint = 0x00000002; +pub const MFD_HUGETLB: ::c_uint = 0x00000004; +pub const MFD_HUGE_MASK: ::c_uint = 0xFC000000; +pub const MFD_HUGE_64KB: ::c_uint = 16 << 26; +pub const MFD_HUGE_512KB: ::c_uint = 19 << 26; +pub const MFD_HUGE_1MB: ::c_uint = 20 << 26; +pub const MFD_HUGE_2MB: ::c_uint = 21 << 26; +pub const MFD_HUGE_8MB: ::c_uint = 23 << 26; +pub const MFD_HUGE_16MB: ::c_uint = 24 << 26; +pub const MFD_HUGE_32MB: ::c_uint = 25 << 26; +pub const MFD_HUGE_256MB: ::c_uint = 28 << 26; +pub const MFD_HUGE_512MB: ::c_uint = 29 << 26; +pub const MFD_HUGE_1GB: ::c_uint = 30 << 26; +pub const MFD_HUGE_2GB: ::c_uint = 31 << 26; +pub const MFD_HUGE_16GB: ::c_uint = 34 << 26; + +pub const SHM_LARGEPAGE_ALLOC_DEFAULT: ::c_int = 0; +pub const SHM_LARGEPAGE_ALLOC_NOWAIT: ::c_int = 1; +pub const SHM_LARGEPAGE_ALLOC_HARD: ::c_int = 2; +pub const SHM_RENAME_NOREPLACE: ::c_int = 1 << 0; +pub const SHM_RENAME_EXCHANGE: ::c_int = 1 << 1; + +// sys/umtx.h + +pub const UMTX_OP_WAIT: ::c_int = 2; +pub const UMTX_OP_WAKE: ::c_int = 3; +pub const UMTX_OP_MUTEX_TRYLOCK: ::c_int = 4; +pub const UMTX_OP_MUTEX_LOCK: ::c_int = 5; +pub const UMTX_OP_MUTEX_UNLOCK: ::c_int = 6; +pub const UMTX_OP_SET_CEILING: ::c_int = 7; +pub const UMTX_OP_CV_WAIT: ::c_int = 8; +pub const UMTX_OP_CV_SIGNAL: ::c_int = 9; +pub const UMTX_OP_CV_BROADCAST: ::c_int = 10; +pub const UMTX_OP_WAIT_UINT: ::c_int = 11; +pub const UMTX_OP_RW_RDLOCK: ::c_int = 12; +pub const UMTX_OP_RW_WRLOCK: ::c_int = 13; +pub const UMTX_OP_RW_UNLOCK: ::c_int = 14; +pub const UMTX_OP_WAIT_UINT_PRIVATE: ::c_int = 15; +pub const UMTX_OP_WAKE_PRIVATE: ::c_int = 16; +pub const UMTX_OP_MUTEX_WAIT: ::c_int = 17; +pub const UMTX_OP_NWAKE_PRIVATE: ::c_int = 21; +pub const UMTX_OP_MUTEX_WAKE2: ::c_int = 22; +pub const UMTX_OP_SEM2_WAIT: ::c_int = 23; +pub const UMTX_OP_SEM2_WAKE: ::c_int = 24; +pub const UMTX_OP_SHM: ::c_int = 25; +pub const UMTX_OP_ROBUST_LISTS: ::c_int = 26; + +pub const UMTX_ABSTIME: u32 = 1; + +pub const CPU_LEVEL_ROOT: ::c_int = 1; +pub const CPU_LEVEL_CPUSET: ::c_int = 2; +pub const CPU_LEVEL_WHICH: ::c_int = 3; + +pub const CPU_WHICH_TID: ::c_int = 1; +pub const CPU_WHICH_PID: ::c_int = 2; +pub const CPU_WHICH_CPUSET: ::c_int = 3; +pub const CPU_WHICH_IRQ: ::c_int = 4; +pub const CPU_WHICH_JAIL: ::c_int = 5; + +// sys/signal.h +pub const SIGTHR: ::c_int = 32; +pub const SIGLWP: ::c_int = SIGTHR; +pub const SIGLIBRT: ::c_int = 33; + +// netinet/sctp.h +pub const SCTP_FUTURE_ASSOC: ::c_int = 0; +pub const SCTP_CURRENT_ASSOC: ::c_int = 1; +pub const SCTP_ALL_ASSOC: ::c_int = 2; + +pub const SCTP_NO_NEXT_MSG: ::c_int = 0x0000; +pub const SCTP_NEXT_MSG_AVAIL: ::c_int = 0x0001; +pub const SCTP_NEXT_MSG_ISCOMPLETE: ::c_int = 0x0002; +pub const SCTP_NEXT_MSG_IS_UNORDERED: ::c_int = 0x0004; +pub const SCTP_NEXT_MSG_IS_NOTIFICATION: ::c_int = 0x0008; + +pub const SCTP_RECVV_NOINFO: ::c_int = 0; +pub const SCTP_RECVV_RCVINFO: ::c_int = 1; +pub const SCTP_RECVV_NXTINFO: ::c_int = 2; +pub const SCTP_RECVV_RN: ::c_int = 3; + +pub const SCTP_SENDV_NOINFO: ::c_int = 0; +pub const SCTP_SENDV_SNDINFO: ::c_int = 1; +pub const SCTP_SENDV_PRINFO: ::c_int = 2; +pub const SCTP_SENDV_AUTHINFO: ::c_int = 3; +pub const SCTP_SENDV_SPA: ::c_int = 4; + +pub const SCTP_SEND_SNDINFO_VALID: ::c_int = 0x00000001; +pub const SCTP_SEND_PRINFO_VALID: ::c_int = 0x00000002; +pub const SCTP_SEND_AUTHINFO_VALID: ::c_int = 0x00000004; + +pub const SCTP_NOTIFICATION: ::c_int = 0x0010; +pub const SCTP_COMPLETE: ::c_int = 0x0020; +pub const SCTP_EOF: ::c_int = 0x0100; +pub const SCTP_ABORT: ::c_int = 0x0200; +pub const SCTP_UNORDERED: ::c_int = 0x0400; +pub const SCTP_ADDR_OVER: ::c_int = 0x0800; +pub const SCTP_SENDALL: ::c_int = 0x1000; +pub const SCTP_EOR: ::c_int = 0x2000; +pub const SCTP_SACK_IMMEDIATELY: ::c_int = 0x4000; +pub const SCTP_PR_SCTP_NONE: ::c_int = 0x0000; +pub const SCTP_PR_SCTP_TTL: ::c_int = 0x0001; +pub const SCTP_PR_SCTP_PRIO: ::c_int = 0x0002; +pub const SCTP_PR_SCTP_BUF: ::c_int = SCTP_PR_SCTP_PRIO; +pub const SCTP_PR_SCTP_RTX: ::c_int = 0x0003; +pub const SCTP_PR_SCTP_MAX: ::c_int = SCTP_PR_SCTP_RTX; +pub const SCTP_PR_SCTP_ALL: ::c_int = 0x000f; + +pub const SCTP_INIT: ::c_int = 0x0001; +pub const SCTP_SNDRCV: ::c_int = 0x0002; +pub const SCTP_EXTRCV: ::c_int = 0x0003; +pub const SCTP_SNDINFO: ::c_int = 0x0004; +pub const SCTP_RCVINFO: ::c_int = 0x0005; +pub const SCTP_NXTINFO: ::c_int = 0x0006; +pub const SCTP_PRINFO: ::c_int = 0x0007; +pub const SCTP_AUTHINFO: ::c_int = 0x0008; +pub const SCTP_DSTADDRV4: ::c_int = 0x0009; +pub const SCTP_DSTADDRV6: ::c_int = 0x000a; + +pub const SCTP_RTOINFO: ::c_int = 0x00000001; +pub const SCTP_ASSOCINFO: ::c_int = 0x00000002; +pub const SCTP_INITMSG: ::c_int = 0x00000003; +pub const SCTP_NODELAY: ::c_int = 0x00000004; +pub const SCTP_AUTOCLOSE: ::c_int = 0x00000005; +pub const SCTP_SET_PEER_PRIMARY_ADDR: ::c_int = 0x00000006; +pub const SCTP_PRIMARY_ADDR: ::c_int = 0x00000007; +pub const SCTP_ADAPTATION_LAYER: ::c_int = 0x00000008; +pub const SCTP_ADAPTION_LAYER: ::c_int = 0x00000008; +pub const SCTP_DISABLE_FRAGMENTS: ::c_int = 0x00000009; +pub const SCTP_PEER_ADDR_PARAMS: ::c_int = 0x0000000a; +pub const SCTP_DEFAULT_SEND_PARAM: ::c_int = 0x0000000b; +pub const SCTP_EVENTS: ::c_int = 0x0000000c; +pub const SCTP_I_WANT_MAPPED_V4_ADDR: ::c_int = 0x0000000d; +pub const SCTP_MAXSEG: ::c_int = 0x0000000e; +pub const SCTP_DELAYED_SACK: ::c_int = 0x0000000f; +pub const SCTP_FRAGMENT_INTERLEAVE: ::c_int = 0x00000010; +pub const SCTP_PARTIAL_DELIVERY_POINT: ::c_int = 0x00000011; +pub const SCTP_AUTH_CHUNK: ::c_int = 0x00000012; +pub const SCTP_AUTH_KEY: ::c_int = 0x00000013; +pub const SCTP_HMAC_IDENT: ::c_int = 0x00000014; +pub const SCTP_AUTH_ACTIVE_KEY: ::c_int = 0x00000015; +pub const SCTP_AUTH_DELETE_KEY: ::c_int = 0x00000016; +pub const SCTP_USE_EXT_RCVINFO: ::c_int = 0x00000017; +pub const SCTP_AUTO_ASCONF: ::c_int = 0x00000018; +pub const SCTP_MAXBURST: ::c_int = 0x00000019; +pub const SCTP_MAX_BURST: ::c_int = 0x00000019; +pub const SCTP_CONTEXT: ::c_int = 0x0000001a; +pub const SCTP_EXPLICIT_EOR: ::c_int = 0x00000001b; +pub const SCTP_REUSE_PORT: ::c_int = 0x00000001c; +pub const SCTP_AUTH_DEACTIVATE_KEY: ::c_int = 0x00000001d; +pub const SCTP_EVENT: ::c_int = 0x0000001e; +pub const SCTP_RECVRCVINFO: ::c_int = 0x0000001f; +pub const SCTP_RECVNXTINFO: ::c_int = 0x00000020; +pub const SCTP_DEFAULT_SNDINFO: ::c_int = 0x00000021; +pub const SCTP_DEFAULT_PRINFO: ::c_int = 0x00000022; +pub const SCTP_PEER_ADDR_THLDS: ::c_int = 0x00000023; +pub const SCTP_REMOTE_UDP_ENCAPS_PORT: ::c_int = 0x00000024; +pub const SCTP_ECN_SUPPORTED: ::c_int = 0x00000025; +pub const SCTP_AUTH_SUPPORTED: ::c_int = 0x00000027; +pub const SCTP_ASCONF_SUPPORTED: ::c_int = 0x00000028; +pub const SCTP_RECONFIG_SUPPORTED: ::c_int = 0x00000029; +pub const SCTP_NRSACK_SUPPORTED: ::c_int = 0x00000030; +pub const SCTP_PKTDROP_SUPPORTED: ::c_int = 0x00000031; +pub const SCTP_MAX_CWND: ::c_int = 0x00000032; + +pub const SCTP_STATUS: ::c_int = 0x00000100; +pub const SCTP_GET_PEER_ADDR_INFO: ::c_int = 0x00000101; +pub const SCTP_PEER_AUTH_CHUNKS: ::c_int = 0x00000102; +pub const SCTP_LOCAL_AUTH_CHUNKS: ::c_int = 0x00000103; +pub const SCTP_GET_ASSOC_NUMBER: ::c_int = 0x00000104; +pub const SCTP_GET_ASSOC_ID_LIST: ::c_int = 0x00000105; +pub const SCTP_TIMEOUTS: ::c_int = 0x00000106; +pub const SCTP_PR_STREAM_STATUS: ::c_int = 0x00000107; +pub const SCTP_PR_ASSOC_STATUS: ::c_int = 0x00000108; + +pub const SCTP_COMM_UP: ::c_int = 0x0001; +pub const SCTP_COMM_LOST: ::c_int = 0x0002; +pub const SCTP_RESTART: ::c_int = 0x0003; +pub const SCTP_SHUTDOWN_COMP: ::c_int = 0x0004; +pub const SCTP_CANT_STR_ASSOC: ::c_int = 0x0005; + +pub const SCTP_ASSOC_SUPPORTS_PR: ::c_int = 0x01; +pub const SCTP_ASSOC_SUPPORTS_AUTH: ::c_int = 0x02; +pub const SCTP_ASSOC_SUPPORTS_ASCONF: ::c_int = 0x03; +pub const SCTP_ASSOC_SUPPORTS_MULTIBUF: ::c_int = 0x04; +pub const SCTP_ASSOC_SUPPORTS_RE_CONFIG: ::c_int = 0x05; +pub const SCTP_ASSOC_SUPPORTS_INTERLEAVING: ::c_int = 0x06; +pub const SCTP_ASSOC_SUPPORTS_MAX: ::c_int = 0x06; + +pub const SCTP_ADDR_AVAILABLE: ::c_int = 0x0001; +pub const SCTP_ADDR_UNREACHABLE: ::c_int = 0x0002; +pub const SCTP_ADDR_REMOVED: ::c_int = 0x0003; +pub const SCTP_ADDR_ADDED: ::c_int = 0x0004; +pub const SCTP_ADDR_MADE_PRIM: ::c_int = 0x0005; +pub const SCTP_ADDR_CONFIRMED: ::c_int = 0x0006; + +pub const SCTP_ACTIVE: ::c_int = 0x0001; +pub const SCTP_INACTIVE: ::c_int = 0x0002; +pub const SCTP_UNCONFIRMED: ::c_int = 0x0200; + +pub const SCTP_DATA_UNSENT: ::c_int = 0x0001; +pub const SCTP_DATA_SENT: ::c_int = 0x0002; + +pub const SCTP_PARTIAL_DELIVERY_ABORTED: ::c_int = 0x0001; + +pub const SCTP_AUTH_NEW_KEY: ::c_int = 0x0001; +pub const SCTP_AUTH_NEWKEY: ::c_int = SCTP_AUTH_NEW_KEY; +pub const SCTP_AUTH_NO_AUTH: ::c_int = 0x0002; +pub const SCTP_AUTH_FREE_KEY: ::c_int = 0x0003; + +pub const SCTP_STREAM_RESET_INCOMING_SSN: ::c_int = 0x0001; +pub const SCTP_STREAM_RESET_OUTGOING_SSN: ::c_int = 0x0002; +pub const SCTP_STREAM_RESET_DENIED: ::c_int = 0x0004; +pub const SCTP_STREAM_RESET_FAILED: ::c_int = 0x0008; + +pub const SCTP_ASSOC_RESET_DENIED: ::c_int = 0x0004; +pub const SCTP_ASSOC_RESET_FAILED: ::c_int = 0x0008; + +pub const SCTP_STREAM_CHANGE_DENIED: ::c_int = 0x0004; +pub const SCTP_STREAM_CHANGE_FAILED: ::c_int = 0x0008; + +pub const KENV_DUMP_LOADER: ::c_int = 4; +pub const KENV_DUMP_STATIC: ::c_int = 5; + +pub const RB_PAUSE: ::c_int = 0x100000; +pub const RB_REROOT: ::c_int = 0x200000; +pub const RB_POWERCYCLE: ::c_int = 0x400000; +pub const RB_PROBE: ::c_int = 0x10000000; +pub const RB_MULTIPLE: ::c_int = 0x20000000; + +cfg_if! { + if #[cfg(libc_const_extern_fn)] { + pub const fn MAP_ALIGNED(a: ::c_int) -> ::c_int { + a << 24 + } + } else { + pub fn MAP_ALIGNED(a: ::c_int) -> ::c_int { + a << 24 + } + } +} + +const_fn! { + {const} fn _ALIGN(p: usize) -> usize { + (p + _ALIGNBYTES) & !_ALIGNBYTES + } +} + +f! { + pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { + (cmsg as *mut ::c_uchar) + .offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + } + + pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { + _ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length + } + + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) + -> *mut ::cmsghdr + { + if cmsg.is_null() { + return ::CMSG_FIRSTHDR(mhdr); + }; + let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + + _ALIGN(::mem::size_of::<::cmsghdr>()); + let max = (*mhdr).msg_control as usize + + (*mhdr).msg_controllen as usize; + if next > max { + 0 as *mut ::cmsghdr + } else { + (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) + as *mut ::cmsghdr + } + } + + pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) + as ::c_uint + } + + pub fn MALLOCX_ALIGN(lg: ::c_uint) -> ::c_int { + ffsl(lg as ::c_long - 1) + } + + pub {const} fn MALLOCX_TCACHE(tc: ::c_int) -> ::c_int { + (tc + 2) << 8 as ::c_int + } + + pub {const} fn MALLOCX_ARENA(a: ::c_int) -> ::c_int { + (a + 1) << 20 as ::c_int + } + + pub fn SOCKCREDSIZE(ngrps: usize) -> usize { + let ngrps = if ngrps > 0 { + ngrps - 1 + } else { + 0 + }; + ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps + } + + pub fn uname(buf: *mut ::utsname) -> ::c_int { + __xuname(256, buf as *mut ::c_void) + } + + pub fn CPU_ZERO(cpuset: &mut cpuset_t) -> () { + for slot in cpuset.__bits.iter_mut() { + *slot = 0; + } + } + + pub fn CPU_FILL(cpuset: &mut cpuset_t) -> () { + for slot in cpuset.__bits.iter_mut() { + *slot = !0; + } + } + + pub fn CPU_SET(cpu: usize, cpuset: &mut cpuset_t) -> () { + let bitset_bits = 8 * ::mem::size_of::<::c_long>(); + let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); + cpuset.__bits[idx] |= 1 << offset; + () + } + + pub fn CPU_CLR(cpu: usize, cpuset: &mut cpuset_t) -> () { + let bitset_bits = 8 * ::mem::size_of::<::c_long>(); + let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); + cpuset.__bits[idx] &= !(1 << offset); + () + } + + pub fn CPU_ISSET(cpu: usize, cpuset: &cpuset_t) -> bool { + let bitset_bits = 8 * ::mem::size_of::<::c_long>(); + let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); + 0 != cpuset.__bits[idx] & (1 << offset) + } + + pub fn CPU_COUNT(cpuset: &cpuset_t) -> ::c_int { + let mut s: u32 = 0; + let cpuset_size = ::mem::size_of::(); + let bitset_size = ::mem::size_of::<::c_long>(); + + for i in cpuset.__bits[..(cpuset_size / bitset_size)].iter() { + s += i.count_ones(); + }; + s as ::c_int + } + + pub fn SOCKCRED2SIZE(ngrps: usize) -> usize { + let ngrps = if ngrps > 0 { + ngrps - 1 + } else { + 0 + }; + ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps + } +} + +safe_f! { + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + (status & 0o177) != 0o177 && (status & 0o177) != 0 && status != 0x13 + } + + pub {const} fn INVALID_SINFO_FLAG(x: ::c_int) -> bool { + (x) & 0xfffffff0 & !(SCTP_EOF | SCTP_ABORT | SCTP_UNORDERED | + SCTP_ADDR_OVER | SCTP_SENDALL | SCTP_EOR | SCTP_SACK_IMMEDIATELY) != 0 + } + + pub {const} fn PR_SCTP_POLICY(x: ::c_int) -> ::c_int { + x & 0x0f + } + + pub {const} fn PR_SCTP_ENABLED(x: ::c_int) -> bool { + PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE && PR_SCTP_POLICY(x) != SCTP_PR_SCTP_ALL + } + + pub {const} fn PR_SCTP_TTL_ENABLED(x: ::c_int) -> bool { + PR_SCTP_POLICY(x) == SCTP_PR_SCTP_TTL + } + + pub {const} fn PR_SCTP_BUF_ENABLED(x: ::c_int) -> bool { + PR_SCTP_POLICY(x) == SCTP_PR_SCTP_BUF + } + + pub {const} fn PR_SCTP_RTX_ENABLED(x: ::c_int) -> bool { + PR_SCTP_POLICY(x) == SCTP_PR_SCTP_RTX + } + + pub {const} fn PR_SCTP_INVALID_POLICY(x: ::c_int) -> bool { + PR_SCTP_POLICY(x) > SCTP_PR_SCTP_MAX + } + + pub {const} fn PR_SCTP_VALID_POLICY(x: ::c_int) -> bool { + PR_SCTP_POLICY(x) <= SCTP_PR_SCTP_MAX + } +} + +cfg_if! { + if #[cfg(not(any(freebsd10, freebsd11)))] { + extern "C" { + pub fn fhlink(fhp: *mut fhandle_t, to: *const ::c_char) -> ::c_int; + pub fn fhlinkat(fhp: *mut fhandle_t, tofd: ::c_int, to: *const ::c_char) -> ::c_int; + pub fn fhreadlink( + fhp: *mut fhandle_t, + buf: *mut ::c_char, + bufsize: ::size_t, + ) -> ::c_int; + pub fn getfhat( + fd: ::c_int, + path: *mut ::c_char, + fhp: *mut fhandle, + flag: ::c_int, + ) -> ::c_int; + } + } +} + +extern "C" { + #[cfg_attr(doc, doc(alias = "__errno_location"))] + #[cfg_attr(doc, doc(alias = "errno"))] + pub fn __error() -> *mut ::c_int; + + pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; + pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_readv(aiocbp: *mut ::aiocb) -> ::c_int; + pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; + pub fn aio_suspend( + aiocb_list: *const *const aiocb, + nitems: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_writev(aiocbp: *mut ::aiocb) -> ::c_int; + + pub fn copy_file_range( + infd: ::c_int, + inoffp: *mut ::off_t, + outfd: ::c_int, + outoffp: *mut ::off_t, + len: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + + pub fn devname_r( + dev: ::dev_t, + mode: ::mode_t, + buf: *mut ::c_char, + len: ::c_int, + ) -> *mut ::c_char; + + pub fn extattr_delete_fd( + fd: ::c_int, + attrnamespace: ::c_int, + attrname: *const ::c_char, + ) -> ::c_int; + pub fn extattr_delete_file( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + ) -> ::c_int; + pub fn extattr_delete_link( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + ) -> ::c_int; + pub fn extattr_get_fd( + fd: ::c_int, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_get_file( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_get_link( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_list_fd( + fd: ::c_int, + attrnamespace: ::c_int, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_list_file( + path: *const ::c_char, + attrnamespace: ::c_int, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_list_link( + path: *const ::c_char, + attrnamespace: ::c_int, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_set_fd( + fd: ::c_int, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *const ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_set_file( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *const ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_set_link( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *const ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + + pub fn fspacectl( + fd: ::c_int, + cmd: ::c_int, + rqsr: *const spacectl_range, + flags: ::c_int, + rmsr: *mut spacectl_range, + ) -> ::c_int; + + pub fn jail(jail: *mut ::jail) -> ::c_int; + pub fn jail_attach(jid: ::c_int) -> ::c_int; + pub fn jail_remove(jid: ::c_int) -> ::c_int; + pub fn jail_get(iov: *mut ::iovec, niov: ::c_uint, flags: ::c_int) -> ::c_int; + pub fn jail_set(iov: *mut ::iovec, niov: ::c_uint, flags: ::c_int) -> ::c_int; + + pub fn lio_listio( + mode: ::c_int, + aiocb_list: *const *mut aiocb, + nitems: ::c_int, + sevp: *mut sigevent, + ) -> ::c_int; + + pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; + pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; + + pub fn getutxuser(user: *const ::c_char) -> *mut utmpx; + pub fn setutxdb(_type: ::c_int, file: *const ::c_char) -> ::c_int; + + pub fn aio_waitcomplete(iocbp: *mut *mut aiocb, timeout: *mut ::timespec) -> ::ssize_t; + pub fn mq_getfd_np(mqd: ::mqd_t) -> ::c_int; + + pub fn waitid( + idtype: idtype_t, + id: ::id_t, + infop: *mut ::siginfo_t, + options: ::c_int, + ) -> ::c_int; + pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> ::c_int; + + pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; + pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; + pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; + pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; + pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; + pub fn semget(key: ::key_t, nsems: ::c_int, semflg: ::c_int) -> ::c_int; + pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; + pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int; + pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut ::msqid_ds) -> ::c_int; + pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; + pub fn msgsnd( + msqid: ::c_int, + msgp: *const ::c_void, + msgsz: ::size_t, + msgflg: ::c_int, + ) -> ::c_int; + pub fn cfmakesane(termios: *mut ::termios); + + pub fn pdfork(fdp: *mut ::c_int, flags: ::c_int) -> ::pid_t; + pub fn pdgetpid(fd: ::c_int, pidp: *mut ::pid_t) -> ::c_int; + pub fn pdkill(fd: ::c_int, signum: ::c_int) -> ::c_int; + + pub fn rtprio_thread(function: ::c_int, lwpid: ::lwpid_t, rtp: *mut super::rtprio) -> ::c_int; + + pub fn posix_spawn( + pid: *mut ::pid_t, + path: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnp( + pid: *mut ::pid_t, + file: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_getsigdefault( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getflags( + attr: *const posix_spawnattr_t, + flags: *mut ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; + pub fn posix_spawnattr_getpgroup( + attr: *const posix_spawnattr_t, + flags: *mut ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; + pub fn posix_spawnattr_getschedpolicy( + attr: *const posix_spawnattr_t, + flags: *mut ::c_int, + ) -> ::c_int; + pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; + pub fn posix_spawnattr_getschedparam( + attr: *const posix_spawnattr_t, + param: *mut ::sched_param, + ) -> ::c_int; + pub fn posix_spawnattr_setschedparam( + attr: *mut posix_spawnattr_t, + param: *const ::sched_param, + ) -> ::c_int; + + pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_addopen( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + path: *const ::c_char, + oflag: ::c_int, + mode: ::mode_t, + ) -> ::c_int; + pub fn posix_spawn_file_actions_addclose( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + ) -> ::c_int; + pub fn posix_spawn_file_actions_adddup2( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + newfd: ::c_int, + ) -> ::c_int; + + pub fn uuidgen(store: *mut uuid, count: ::c_int) -> ::c_int; + + pub fn thr_kill(id: ::c_long, sig: ::c_int) -> ::c_int; + pub fn thr_kill2(pid: ::pid_t, id: ::c_long, sig: ::c_int) -> ::c_int; + pub fn thr_self(tid: *mut ::c_long) -> ::c_int; + pub fn pthread_getthreadid_np() -> ::c_int; + pub fn pthread_getaffinity_np( + td: ::pthread_t, + cpusetsize: ::size_t, + cpusetp: *mut cpuset_t, + ) -> ::c_int; + pub fn pthread_setaffinity_np( + td: ::pthread_t, + cpusetsize: ::size_t, + cpusetp: *const cpuset_t, + ) -> ::c_int; + + // sched.h linux compatibility api + pub fn sched_getaffinity(pid: ::pid_t, cpusetsz: ::size_t, cpuset: *mut ::cpuset_t) -> ::c_int; + pub fn sched_setaffinity( + pid: ::pid_t, + cpusetsz: ::size_t, + cpuset: *const ::cpuset_t, + ) -> ::c_int; + pub fn sched_getcpu() -> ::c_int; + + pub fn pthread_mutex_consistent(mutex: *mut ::pthread_mutex_t) -> ::c_int; + + pub fn pthread_mutexattr_getrobust( + attr: *mut ::pthread_mutexattr_t, + robust: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setrobust( + attr: *mut ::pthread_mutexattr_t, + robust: ::c_int, + ) -> ::c_int; + + pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> ::c_int; + + #[cfg_attr(all(target_os = "freebsd", freebsd11), link_name = "statfs@FBSD_1.0")] + pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; + #[cfg_attr(all(target_os = "freebsd", freebsd11), link_name = "fstatfs@FBSD_1.0")] + pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; + + pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; + pub fn __xuname(nmln: ::c_int, buf: *mut ::c_void) -> ::c_int; + + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::size_t, + flags: ::c_int, + ) -> ::ssize_t; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::size_t, + flags: ::c_int, + timeout: *const ::timespec, + ) -> ::ssize_t; + pub fn memmem( + haystack: *const ::c_void, + haystacklen: ::size_t, + needle: *const ::c_void, + needlelen: ::size_t, + ) -> *mut ::c_void; + + pub fn fhopen(fhp: *const fhandle_t, flags: ::c_int) -> ::c_int; + pub fn fhstat(fhp: *const fhandle, buf: *mut ::stat) -> ::c_int; + pub fn fhstatfs(fhp: *const fhandle_t, buf: *mut ::statfs) -> ::c_int; + pub fn getfh(path: *const ::c_char, fhp: *mut fhandle_t) -> ::c_int; + pub fn lgetfh(path: *const ::c_char, fhp: *mut fhandle_t) -> ::c_int; + pub fn getfsstat(buf: *mut ::statfs, bufsize: ::c_long, mode: ::c_int) -> ::c_int; + #[cfg_attr( + all(target_os = "freebsd", freebsd11), + link_name = "getmntinfo@FBSD_1.0" + )] + pub fn getmntinfo(mntbufp: *mut *mut ::statfs, mode: ::c_int) -> ::c_int; + pub fn mount( + type_: *const ::c_char, + dir: *const ::c_char, + flags: ::c_int, + data: *mut ::c_void, + ) -> ::c_int; + pub fn nmount(iov: *mut ::iovec, niov: ::c_uint, flags: ::c_int) -> ::c_int; + + pub fn setproctitle(fmt: *const ::c_char, ...); + pub fn rfork(flags: ::c_int) -> ::c_int; + pub fn cpuset_getaffinity( + level: cpulevel_t, + which: cpuwhich_t, + id: ::id_t, + setsize: ::size_t, + mask: *mut cpuset_t, + ) -> ::c_int; + pub fn cpuset_setaffinity( + level: cpulevel_t, + which: cpuwhich_t, + id: ::id_t, + setsize: ::size_t, + mask: *const cpuset_t, + ) -> ::c_int; + pub fn cpuset(setid: *mut ::cpusetid_t) -> ::c_int; + pub fn cpuset_getid( + level: cpulevel_t, + which: cpuwhich_t, + id: ::id_t, + setid: *mut ::cpusetid_t, + ) -> ::c_int; + pub fn cpuset_setid(which: cpuwhich_t, id: ::id_t, setid: ::cpusetid_t) -> ::c_int; + pub fn cap_enter() -> ::c_int; + pub fn cap_getmode(modep: *mut ::c_uint) -> ::c_int; + pub fn cap_fcntls_get(fd: ::c_int, fcntlrightsp: *mut u32) -> ::c_int; + pub fn cap_fcntls_limit(fd: ::c_int, fcntlrights: u32) -> ::c_int; + pub fn cap_ioctls_get(fd: ::c_int, cmds: *mut u_long, maxcmds: usize) -> isize; + pub fn cap_ioctls_limit(fd: ::c_int, cmds: *const u_long, ncmds: usize) -> ::c_int; + pub fn __cap_rights_init(version: ::c_int, rights: *mut cap_rights_t, ...) + -> *mut cap_rights_t; + pub fn __cap_rights_get(version: ::c_int, fd: ::c_int, rightsp: *mut cap_rights_t) -> ::c_int; + pub fn __cap_rights_set(rights: *mut cap_rights_t, ...) -> *mut cap_rights_t; + pub fn __cap_rights_clear(rights: *mut cap_rights_t, ...) -> *mut cap_rights_t; + pub fn __cap_rights_is_set(rights: *const cap_rights_t, ...) -> bool; + pub fn cap_rights_is_valid(rights: *const cap_rights_t) -> bool; + pub fn cap_rights_limit(fd: ::c_int, rights: *const cap_rights_t) -> ::c_int; + pub fn cap_rights_merge(dst: *mut cap_rights_t, src: *const cap_rights_t) -> *mut cap_rights_t; + pub fn cap_rights_remove(dst: *mut cap_rights_t, src: *const cap_rights_t) + -> *mut cap_rights_t; + pub fn cap_rights_contains(big: *const cap_rights_t, little: *const cap_rights_t) -> bool; + pub fn cap_sandboxed() -> bool; + + pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; + + pub fn ffs(value: ::c_int) -> ::c_int; + pub fn ffsl(value: ::c_long) -> ::c_int; + pub fn ffsll(value: ::c_longlong) -> ::c_int; + pub fn fls(value: ::c_int) -> ::c_int; + pub fn flsl(value: ::c_long) -> ::c_int; + pub fn flsll(value: ::c_longlong) -> ::c_int; + pub fn malloc_stats_print( + write_cb: unsafe extern "C" fn(*mut ::c_void, *const ::c_char), + cbopaque: *mut ::c_void, + opt: *const ::c_char, + ); + pub fn mallctl( + name: *const ::c_char, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; + pub fn mallctlnametomib( + name: *const ::c_char, + mibp: *mut ::size_t, + miplen: *mut ::size_t, + ) -> ::c_int; + pub fn mallctlbymib( + mib: *const ::size_t, + mible: ::size_t, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; + pub fn mallocx(size: ::size_t, flags: ::c_int) -> *mut ::c_void; + pub fn rallocx(ptr: *mut ::c_void, size: ::size_t, flags: ::c_int) -> *mut ::c_void; + pub fn xallocx(ptr: *mut ::c_void, size: ::size_t, extra: ::size_t, flags: ::c_int) + -> ::size_t; + pub fn sallocx(ptr: *const ::c_void, flags: ::c_int) -> ::size_t; + pub fn dallocx(ptr: *mut ::c_void, flags: ::c_int); + pub fn sdallocx(ptr: *mut ::c_void, size: ::size_t, flags: ::c_int); + pub fn nallocx(size: ::size_t, flags: ::c_int) -> ::size_t; + + pub fn procctl(idtype: ::idtype_t, id: ::id_t, cmd: ::c_int, data: *mut ::c_void) -> ::c_int; + + pub fn getpagesize() -> ::c_int; + pub fn getpagesizes(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int; + + pub fn clock_getcpuclockid2(arg1: ::id_t, arg2: ::c_int, arg3: *mut clockid_t) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + + pub fn strchrnul(s: *const ::c_char, c: ::c_int) -> *mut ::c_char; + + pub fn shm_create_largepage( + path: *const ::c_char, + flags: ::c_int, + psind: ::c_int, + alloc_policy: ::c_int, + mode: ::mode_t, + ) -> ::c_int; + pub fn shm_rename( + path_from: *const ::c_char, + path_to: *const ::c_char, + flags: ::c_int, + ) -> ::c_int; + pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int; + pub fn setaudit(auditinfo: *const auditinfo_t) -> ::c_int; + + pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; + + pub fn fdatasync(fd: ::c_int) -> ::c_int; + + pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + pub fn elf_aux_info(aux: ::c_int, buf: *mut ::c_void, buflen: ::c_int) -> ::c_int; + pub fn setproctitle_fast(fmt: *const ::c_char, ...); + pub fn timingsafe_bcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int; + pub fn timingsafe_memcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int; + + pub fn _umtx_op( + obj: *mut ::c_void, + op: ::c_int, + val: ::c_ulong, + uaddr: *mut ::c_void, + uaddr2: *mut ::c_void, + ) -> ::c_int; + + pub fn sctp_peeloff(s: ::c_int, id: ::sctp_assoc_t) -> ::c_int; + pub fn sctp_bindx(s: ::c_int, addrs: *mut ::sockaddr, num: ::c_int, tpe: ::c_int) -> ::c_int; + pub fn sctp_connectx( + s: ::c_int, + addrs: *const ::sockaddr, + addrcnt: ::c_int, + id: *mut ::sctp_assoc_t, + ) -> ::c_int; + pub fn sctp_getaddrlen(family: ::sa_family_t) -> ::c_int; + pub fn sctp_getpaddrs( + s: ::c_int, + asocid: ::sctp_assoc_t, + addrs: *mut *mut ::sockaddr, + ) -> ::c_int; + pub fn sctp_freepaddrs(addrs: *mut ::sockaddr); + pub fn sctp_getladdrs( + s: ::c_int, + asocid: ::sctp_assoc_t, + addrs: *mut *mut ::sockaddr, + ) -> ::c_int; + pub fn sctp_freeladdrs(addrs: *mut ::sockaddr); + pub fn sctp_opt_info( + s: ::c_int, + id: ::sctp_assoc_t, + opt: ::c_int, + arg: *mut ::c_void, + size: *mut ::socklen_t, + ) -> ::c_int; + pub fn sctp_sendv( + sd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + addrs: *mut ::sockaddr, + addrcnt: ::c_int, + info: *mut ::c_void, + infolen: ::socklen_t, + infotype: ::c_uint, + flags: ::c_int, + ) -> ::ssize_t; + pub fn sctp_recvv( + sd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + from: *mut ::sockaddr, + fromlen: *mut ::socklen_t, + info: *mut ::c_void, + infolen: *mut ::socklen_t, + infotype: *mut ::c_uint, + flags: *mut ::c_int, + ) -> ::ssize_t; +} + +#[link(name = "memstat")] +extern "C" { + pub fn memstat_strerror(error: ::c_int) -> *const ::c_char; + pub fn memstat_mtl_alloc() -> *mut memory_type_list; + pub fn memstat_mtl_first(list: *mut memory_type_list) -> *mut memory_type; + pub fn memstat_mtl_next(mtp: *mut memory_type) -> *mut memory_type; + pub fn memstat_mtl_find( + list: *mut memory_type_list, + allocator: ::c_int, + name: *const ::c_char, + ) -> *mut memory_type; + pub fn memstat_mtl_free(list: *mut memory_type_list); + pub fn memstat_mtl_geterror(list: *mut memory_type_list) -> ::c_int; + pub fn memstat_get_name(mtp: *const memory_type) -> *const ::c_char; +} + +#[link(name = "kvm")] +extern "C" { + pub fn kvm_dpcpu_setcpu(kd: *mut ::kvm_t, cpu: ::c_uint) -> ::c_int; + pub fn kvm_getargv(kd: *mut ::kvm_t, p: *const kinfo_proc, nchr: ::c_int) + -> *mut *mut ::c_char; + pub fn kvm_getcptime(kd: *mut ::kvm_t, cp_time: *mut ::c_long) -> ::c_int; + pub fn kvm_getenvv(kd: *mut ::kvm_t, p: *const kinfo_proc, nchr: ::c_int) + -> *mut *mut ::c_char; + pub fn kvm_geterr(kd: *mut ::kvm_t) -> *mut ::c_char; + pub fn kvm_getmaxcpu(kd: *mut ::kvm_t) -> ::c_int; + pub fn kvm_getncpus(kd: *mut ::kvm_t) -> ::c_int; + pub fn kvm_getpcpu(kd: *mut ::kvm_t, cpu: ::c_int) -> *mut ::c_void; + pub fn kvm_counter_u64_fetch(kd: *mut ::kvm_t, base: ::c_ulong) -> u64; + pub fn kvm_getswapinfo( + kd: *mut ::kvm_t, + info: *mut kvm_swap, + maxswap: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn kvm_native(kd: *mut ::kvm_t) -> ::c_int; + pub fn kvm_nlist(kd: *mut ::kvm_t, nl: *mut nlist) -> ::c_int; + pub fn kvm_nlist2(kd: *mut ::kvm_t, nl: *mut kvm_nlist) -> ::c_int; + pub fn kvm_read_zpcpu( + kd: *mut ::kvm_t, + base: ::c_ulong, + buf: *mut ::c_void, + size: ::size_t, + cpu: ::c_int, + ) -> ::ssize_t; + pub fn kvm_read2( + kd: *mut ::kvm_t, + addr: kvaddr_t, + buf: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; +} + +#[link(name = "util")] +extern "C" { + pub fn extattr_namespace_to_string( + attrnamespace: ::c_int, + string: *mut *mut ::c_char, + ) -> ::c_int; + pub fn extattr_string_to_namespace( + string: *const ::c_char, + attrnamespace: *mut ::c_int, + ) -> ::c_int; + pub fn realhostname(host: *mut ::c_char, hsize: ::size_t, ip: *const ::in_addr) -> ::c_int; + pub fn realhostname_sa( + host: *mut ::c_char, + hsize: ::size_t, + addr: *mut ::sockaddr, + addrlen: ::c_int, + ) -> ::c_int; + + pub fn kld_isloaded(name: *const ::c_char) -> ::c_int; + pub fn kld_load(name: *const ::c_char) -> ::c_int; + + pub fn kinfo_getvmmap(pid: ::pid_t, cntp: *mut ::c_int) -> *mut kinfo_vmentry; + + pub fn hexdump(ptr: *const ::c_void, length: ::c_int, hdr: *const ::c_char, flags: ::c_int); + pub fn humanize_number( + buf: *mut ::c_char, + len: ::size_t, + number: i64, + suffix: *const ::c_char, + scale: ::c_int, + flags: ::c_int, + ) -> ::c_int; + + pub fn flopen(path: *const ::c_char, flags: ::c_int, ...) -> ::c_int; + pub fn flopenat(fd: ::c_int, path: *const ::c_char, flags: ::c_int, ...) -> ::c_int; + + pub fn getlocalbase() -> *const ::c_char; + + pub fn pidfile_open( + path: *const ::c_char, + mode: ::mode_t, + pidptr: *mut ::pid_t, + ) -> *mut ::pidfh; + pub fn pidfile_write(path: *mut ::pidfh) -> ::c_int; + pub fn pidfile_close(path: *mut ::pidfh) -> ::c_int; + pub fn pidfile_remove(path: *mut ::pidfh) -> ::c_int; + pub fn pidfile_fileno(path: *const ::pidfh) -> ::c_int; + // FIXME: pidfile_signal in due time (both manpage present and updated image snapshot) +} + +#[link(name = "procstat")] +extern "C" { + pub fn procstat_open_sysctl() -> *mut procstat; + pub fn procstat_getfiles( + procstat: *mut procstat, + kp: *mut kinfo_proc, + mmapped: ::c_int, + ) -> *mut filestat_list; + pub fn procstat_freefiles(procstat: *mut procstat, head: *mut filestat_list); + pub fn procstat_getprocs( + procstat: *mut procstat, + what: ::c_int, + arg: ::c_int, + count: *mut ::c_uint, + ) -> *mut kinfo_proc; + pub fn procstat_freeprocs(procstat: *mut procstat, p: *mut kinfo_proc); + pub fn procstat_getvmmap( + procstat: *mut procstat, + kp: *mut kinfo_proc, + count: *mut ::c_uint, + ) -> *mut kinfo_vmentry; + pub fn procstat_freevmmap(procstat: *mut procstat, vmmap: *mut kinfo_vmentry); + pub fn procstat_close(procstat: *mut procstat); + pub fn procstat_freeargv(procstat: *mut procstat); + pub fn procstat_freeenvv(procstat: *mut procstat); + pub fn procstat_freegroups(procstat: *mut procstat, groups: *mut ::gid_t); + pub fn procstat_freeptlwpinfo(procstat: *mut procstat, pl: *mut ptrace_lwpinfo); + pub fn procstat_getargv( + procstat: *mut procstat, + kp: *mut kinfo_proc, + nchr: ::size_t, + ) -> *mut *mut ::c_char; + pub fn procstat_getenvv( + procstat: *mut procstat, + kp: *mut kinfo_proc, + nchr: ::size_t, + ) -> *mut *mut ::c_char; + pub fn procstat_getgroups( + procstat: *mut procstat, + kp: *mut kinfo_proc, + count: *mut ::c_uint, + ) -> *mut ::gid_t; + pub fn procstat_getosrel( + procstat: *mut procstat, + kp: *mut kinfo_proc, + osrelp: *mut ::c_int, + ) -> ::c_int; + pub fn procstat_getpathname( + procstat: *mut procstat, + kp: *mut kinfo_proc, + pathname: *mut ::c_char, + maxlen: ::size_t, + ) -> ::c_int; + pub fn procstat_getrlimit( + procstat: *mut procstat, + kp: *mut kinfo_proc, + which: ::c_int, + rlimit: *mut ::rlimit, + ) -> ::c_int; + pub fn procstat_getumask( + procstat: *mut procstat, + kp: *mut kinfo_proc, + maskp: *mut ::c_ushort, + ) -> ::c_int; + pub fn procstat_open_core(filename: *const ::c_char) -> *mut procstat; + pub fn procstat_open_kvm(nlistf: *const ::c_char, memf: *const ::c_char) -> *mut procstat; + pub fn procstat_get_socket_info( + proc_: *mut procstat, + fst: *mut filestat, + sock: *mut sockstat, + errbuf: *mut ::c_char, + ) -> ::c_int; + pub fn procstat_get_vnode_info( + proc_: *mut procstat, + fst: *mut filestat, + vn: *mut vnstat, + errbuf: *mut ::c_char, + ) -> ::c_int; + pub fn procstat_get_pts_info( + proc_: *mut procstat, + fst: *mut filestat, + pts: *mut ptsstat, + errbuf: *mut ::c_char, + ) -> ::c_int; + pub fn procstat_get_shm_info( + proc_: *mut procstat, + fst: *mut filestat, + shm: *mut shmstat, + errbuf: *mut ::c_char, + ) -> ::c_int; +} + +#[link(name = "rt")] +extern "C" { + pub fn timer_create(clock_id: clockid_t, evp: *mut sigevent, timerid: *mut timer_t) -> ::c_int; + pub fn timer_delete(timerid: timer_t) -> ::c_int; + pub fn timer_getoverrun(timerid: timer_t) -> ::c_int; + pub fn timer_gettime(timerid: timer_t, value: *mut itimerspec) -> ::c_int; + pub fn timer_settime( + timerid: timer_t, + flags: ::c_int, + value: *const itimerspec, + ovalue: *mut itimerspec, + ) -> ::c_int; +} + +#[link(name = "devstat")] +extern "C" { + pub fn devstat_getnumdevs(kd: *mut ::kvm_t) -> ::c_int; + pub fn devstat_getgeneration(kd: *mut ::kvm_t) -> ::c_long; + pub fn devstat_getversion(kd: *mut ::kvm_t) -> ::c_int; + pub fn devstat_checkversion(kd: *mut ::kvm_t) -> ::c_int; + pub fn devstat_selectdevs( + dev_select: *mut *mut device_selection, + num_selected: *mut ::c_int, + num_selections: *mut ::c_int, + select_generation: *mut ::c_long, + current_generation: ::c_long, + devices: *mut devstat, + numdevs: ::c_int, + matches: *mut devstat_match, + num_matches: ::c_int, + dev_selections: *mut *mut ::c_char, + num_dev_selections: ::c_int, + select_mode: devstat_select_mode, + maxshowdevs: ::c_int, + perf_select: ::c_int, + ) -> ::c_int; + pub fn devstat_buildmatch( + match_str: *mut ::c_char, + matches: *mut *mut devstat_match, + num_matches: *mut ::c_int, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(freebsd14)] { + mod freebsd14; + pub use self::freebsd14::*; + } else if #[cfg(freebsd13)] { + mod freebsd13; + pub use self::freebsd13::*; + } else if #[cfg(freebsd12)] { + mod freebsd12; + pub use self::freebsd12::*; + } else if #[cfg(any(freebsd10, freebsd11))] { + mod freebsd11; + pub use self::freebsd11::*; + } else { + // Unknown freebsd version + } +} + +cfg_if! { + if #[cfg(target_arch = "x86")] { + mod x86; + pub use self::x86::*; + } else if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } else if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } else if #[cfg(target_arch = "arm")] { + mod arm; + pub use self::arm::*; + } else if #[cfg(target_arch = "powerpc64")] { + mod powerpc64; + pub use self::powerpc64::*; + } else if #[cfg(target_arch = "powerpc")] { + mod powerpc; + pub use self::powerpc::*; + } else if #[cfg(target_arch = "riscv64")] { + mod riscv64; + pub use self::riscv64::*; + } else { + // Unknown target_arch + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc.rs new file mode 100644 index 000000000..a0120c337 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc.rs @@ -0,0 +1,47 @@ +pub type c_char = u8; +pub type c_long = i32; +pub type c_ulong = u32; +pub type wchar_t = i32; +pub type time_t = i64; +pub type suseconds_t = i32; +pub type register_t = i32; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_size: ::off_t, + pub st_blocks: ::blkcnt_t, + pub st_blksize: ::blksize_t, + pub st_flags: ::fflags_t, + pub st_gen: u32, + pub st_lspare: i32, + pub st_birthtime: ::time_t, + pub st_birthtime_nsec: ::c_long, + } +} + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 4 - 1; + } +} + +pub const MAP_32BIT: ::c_int = 0x00080000; +pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs new file mode 100644 index 000000000..7f5b97522 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs @@ -0,0 +1,47 @@ +pub type c_char = u8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type wchar_t = i32; +pub type time_t = i64; +pub type suseconds_t = i64; +pub type register_t = i64; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_size: ::off_t, + pub st_blocks: ::blkcnt_t, + pub st_blksize: ::blksize_t, + pub st_flags: ::fflags_t, + pub st_gen: u32, + pub st_lspare: i32, + pub st_birthtime: ::time_t, + pub st_birthtime_nsec: ::c_long, + } +} + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +pub const MAP_32BIT: ::c_int = 0x00080000; +pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/riscv64.rs new file mode 100644 index 000000000..f9fa1c275 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/riscv64.rs @@ -0,0 +1,154 @@ +pub type c_char = u8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type wchar_t = ::c_int; +pub type time_t = i64; +pub type suseconds_t = ::c_long; +pub type register_t = i64; + +s_no_extra_traits! { + pub struct gpregs { + pub gp_ra: ::register_t, + pub gp_sp: ::register_t, + pub gp_gp: ::register_t, + pub gp_tp: ::register_t, + pub gp_t: [::register_t; 7], + pub gp_s: [::register_t; 12], + pub gp_a: [::register_t; 8], + pub gp_sepc: ::register_t, + pub gp_sstatus: ::register_t, + } + + pub struct fpregs { + pub fp_x: [[::register_t; 2]; 32], + pub fp_fcsr: ::register_t, + pub fp_flags: ::c_int, + pub fp_pad: ::c_int, + } + + pub struct mcontext_t { + pub mc_gpregs: gpregs, + pub mc_fpregs: fpregs, + pub mc_flags: ::c_int, + pub mc_pad: ::c_int, + pub mc_spare: [u64; 8], + } +} + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for gpregs { + fn eq(&self, other: &gpregs) -> bool { + self.gp_ra == other.gp_ra && + self.gp_sp == other.gp_sp && + self.gp_gp == other.gp_gp && + self.gp_tp == other.gp_tp && + self.gp_t.iter().zip(other.gp_t.iter()).all(|(a, b)| a == b) && + self.gp_s.iter().zip(other.gp_s.iter()).all(|(a, b)| a == b) && + self.gp_a.iter().zip(other.gp_a.iter()).all(|(a, b)| a == b) && + self.gp_sepc == other.gp_sepc && + self.gp_sstatus == other.gp_sstatus + } + } + impl Eq for gpregs {} + impl ::fmt::Debug for gpregs { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("gpregs") + .field("gp_ra", &self.gp_ra) + .field("gp_sp", &self.gp_sp) + .field("gp_gp", &self.gp_gp) + .field("gp_tp", &self.gp_tp) + .field("gp_t", &self.gp_t) + .field("gp_s", &self.gp_s) + .field("gp_a", &self.gp_a) + .field("gp_sepc", &self.gp_sepc) + .field("gp_sstatus", &self.gp_sstatus) + .finish() + } + } + impl ::hash::Hash for gpregs { + fn hash(&self, state: &mut H) { + self.gp_ra.hash(state); + self.gp_sp.hash(state); + self.gp_gp.hash(state); + self.gp_tp.hash(state); + self.gp_t.hash(state); + self.gp_s.hash(state); + self.gp_a.hash(state); + self.gp_sepc.hash(state); + self.gp_sstatus.hash(state); + } + } + impl PartialEq for fpregs { + fn eq(&self, other: &fpregs) -> bool { + self.fp_x == other.fp_x && + self.fp_fcsr == other.fp_fcsr && + self.fp_flags == other.fp_flags && + self.fp_pad == other.fp_pad + } + } + impl Eq for fpregs {} + impl ::fmt::Debug for fpregs { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("fpregs") + .field("fp_x", &self.fp_x) + .field("fp_fcsr", &self.fp_fcsr) + .field("fp_flags", &self.fp_flags) + .field("fp_pad", &self.fp_pad) + .finish() + } + } + impl ::hash::Hash for fpregs { + fn hash(&self, state: &mut H) { + self.fp_x.hash(state); + self.fp_fcsr.hash(state); + self.fp_flags.hash(state); + self.fp_pad.hash(state); + } + } + impl PartialEq for mcontext_t { + fn eq(&self, other: &mcontext_t) -> bool { + self.mc_gpregs == other.mc_gpregs && + self.mc_fpregs == other.mc_fpregs && + self.mc_flags == other.mc_flags && + self.mc_pad == other.mc_pad && + self.mc_spare.iter().zip(other.mc_spare.iter()).all(|(a, b)| a == b) + } + } + impl Eq for mcontext_t {} + impl ::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mcontext_t") + .field("mc_gpregs", &self.mc_gpregs) + .field("mc_fpregs", &self.mc_fpregs) + .field("mc_flags", &self.mc_flags) + .field("mc_pad", &self.mc_pad) + .field("mc_spare", &self.mc_spare) + .finish() + } + } + impl ::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { + self.mc_gpregs.hash(state); + self.mc_fpregs.hash(state); + self.mc_flags.hash(state); + self.mc_pad.hash(state); + self.mc_spare.hash(state); + } + } + } +} + +pub const MAP_32BIT: ::c_int = 0x00080000; +pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86.rs new file mode 100644 index 000000000..4046ec310 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86.rs @@ -0,0 +1,201 @@ +pub type c_char = i8; +pub type c_long = i32; +pub type c_ulong = u32; +pub type wchar_t = i32; +pub type time_t = i32; +pub type suseconds_t = i32; +pub type register_t = i32; + +s_no_extra_traits! { + pub struct mcontext_t { + pub mc_onstack: register_t, + pub mc_gs: register_t, + pub mc_fs: register_t, + pub mc_es: register_t, + pub mc_ds: register_t, + pub mc_edi: register_t, + pub mc_esi: register_t, + pub mc_ebp: register_t, + pub mc_isp: register_t, + pub mc_ebx: register_t, + pub mc_edx: register_t, + pub mc_ecx: register_t, + pub mc_eax: register_t, + pub mc_trapno: register_t, + pub mc_err: register_t, + pub mc_eip: register_t, + pub mc_cs: register_t, + pub mc_eflags: register_t, + pub mc_esp: register_t, + pub mc_ss: register_t, + pub mc_len: ::c_int, + pub mc_fpformat: ::c_int, + pub mc_ownedfp: ::c_int, + pub mc_flags: register_t, + pub mc_fpstate: [[::c_int; 32]; 4], + pub mc_fsbase: register_t, + pub mc_gsbase: register_t, + pub mc_xfpustate: register_t, + pub mc_xfpustate_len: register_t, + pub mc_spare2: [::c_int; 4], + } +} + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_size: ::off_t, + pub st_blocks: ::blkcnt_t, + pub st_blksize: ::blksize_t, + pub st_flags: ::fflags_t, + pub st_gen: u32, + pub st_lspare: i32, + pub st_birthtime: ::time_t, + pub st_birthtime_nsec: ::c_long, + __unused: [u8; 8], + } + + pub struct ucontext_t { + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: ::mcontext_t, + pub uc_link: *mut ::ucontext_t, + pub uc_stack: ::stack_t, + pub uc_flags: ::c_int, + __spare__: [::c_int; 4], + } +} + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 4 - 1; + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for mcontext_t { + fn eq(&self, other: &mcontext_t) -> bool { + self.mc_onstack == other.mc_onstack && + self.mc_gs == other.mc_gs && + self.mc_fs == other.mc_fs && + self.mc_es == other.mc_es && + self.mc_ds == other.mc_ds && + self.mc_edi == other.mc_edi && + self.mc_esi == other.mc_esi && + self.mc_ebp == other.mc_ebp && + self.mc_isp == other.mc_isp && + self.mc_ebx == other.mc_ebx && + self.mc_edx == other.mc_edx && + self.mc_ecx == other.mc_ecx && + self.mc_eax == other.mc_eax && + self.mc_trapno == other.mc_trapno && + self.mc_err == other.mc_err && + self.mc_eip == other.mc_eip && + self.mc_cs == other.mc_cs && + self.mc_eflags == other.mc_eflags && + self.mc_esp == other.mc_esp && + self.mc_ss == other.mc_ss && + self.mc_len == other.mc_len && + self.mc_fpformat == other.mc_fpformat && + self.mc_ownedfp == other.mc_ownedfp && + self.mc_flags == other.mc_flags && + self.mc_fpstate.iter().zip(other.mc_fpstate.iter()).all(|(a, b)| a == b) && + self.mc_fsbase == other.mc_fsbase && + self.mc_gsbase == other.mc_gsbase && + self.mc_xfpustate == other.mc_xfpustate && + self.mc_xfpustate_len == other.mc_xfpustate_len && + self.mc_spare2.iter().zip(other.mc_spare2.iter()).all(|(a, b)| a == b) + } + } + impl Eq for mcontext_t {} + impl ::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mcontext_t") + .field("mc_onstack", &self.mc_onstack) + .field("mc_gs", &self.mc_gs) + .field("mc_fs", &self.mc_fs) + .field("mc_es", &self.mc_es) + .field("mc_ds", &self.mc_ds) + .field("mc_edi", &self.mc_edi) + .field("mc_esi", &self.mc_esi) + .field("mc_ebp", &self.mc_ebp) + .field("mc_isp", &self.mc_isp) + .field("mc_ebx", &self.mc_ebx) + .field("mc_edx", &self.mc_edx) + .field("mc_ecx", &self.mc_ecx) + .field("mc_eax", &self.mc_eax) + .field("mc_trapno", &self.mc_trapno) + .field("mc_err", &self.mc_err) + .field("mc_eip", &self.mc_eip) + .field("mc_cs", &self.mc_cs) + .field("mc_eflags", &self.mc_eflags) + .field("mc_esp", &self.mc_esp) + .field("mc_ss", &self.mc_ss) + .field("mc_len", &self.mc_len) + .field("mc_fpformat", &self.mc_fpformat) + .field("mc_ownedfp", &self.mc_ownedfp) + .field("mc_flags", &self.mc_flags) + .field("mc_fpstate", &self.mc_fpstate) + .field("mc_fsbase", &self.mc_fsbase) + .field("mc_gsbase", &self.mc_gsbase) + .field("mc_xfpustate", &self.mc_xfpustate) + .field("mc_xfpustate_len", &self.mc_xfpustate_len) + .field("mc_spare2", &self.mc_spare2) + .finish() + } + } + impl ::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { + self.mc_onstack.hash(state); + self.mc_gs.hash(state); + self.mc_fs.hash(state); + self.mc_es.hash(state); + self.mc_ds.hash(state); + self.mc_edi.hash(state); + self.mc_esi.hash(state); + self.mc_ebp.hash(state); + self.mc_isp.hash(state); + self.mc_ebx.hash(state); + self.mc_edx.hash(state); + self.mc_ecx.hash(state); + self.mc_eax.hash(state); + self.mc_trapno.hash(state); + self.mc_err.hash(state); + self.mc_eip.hash(state); + self.mc_cs.hash(state); + self.mc_eflags.hash(state); + self.mc_esp.hash(state); + self.mc_ss.hash(state); + self.mc_len.hash(state); + self.mc_fpformat.hash(state); + self.mc_ownedfp.hash(state); + self.mc_flags.hash(state); + self.mc_fpstate.hash(state); + self.mc_fsbase.hash(state); + self.mc_gsbase.hash(state); + self.mc_xfpustate.hash(state); + self.mc_xfpustate_len.hash(state); + self.mc_spare2.hash(state); + } + } + } +} + +pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs new file mode 100644 index 000000000..3a016a051 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs @@ -0,0 +1,197 @@ +use {c_long, register_t}; + +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } + + #[repr(align(16))] + pub struct mcontext_t { + pub mc_onstack: register_t, + pub mc_rdi: register_t, + pub mc_rsi: register_t, + pub mc_rdx: register_t, + pub mc_rcx: register_t, + pub mc_r8: register_t, + pub mc_r9: register_t, + pub mc_rax: register_t, + pub mc_rbx: register_t, + pub mc_rbp: register_t, + pub mc_r10: register_t, + pub mc_r11: register_t, + pub mc_r12: register_t, + pub mc_r13: register_t, + pub mc_r14: register_t, + pub mc_r15: register_t, + pub mc_trapno: u32, + pub mc_fs: u16, + pub mc_gs: u16, + pub mc_addr: register_t, + pub mc_flags: u32, + pub mc_es: u16, + pub mc_ds: u16, + pub mc_err: register_t, + pub mc_rip: register_t, + pub mc_cs: register_t, + pub mc_rflags: register_t, + pub mc_rsp: register_t, + pub mc_ss: register_t, + pub mc_len: c_long, + pub mc_fpformat: c_long, + pub mc_ownedfp: c_long, + pub mc_fpstate: [c_long; 64], + pub mc_fsbase: register_t, + pub mc_gsbase: register_t, + pub mc_xfpustate: register_t, + pub mc_xfpustate_len: register_t, + pub mc_spare: [c_long; 4], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for mcontext_t { + fn eq(&self, other: &mcontext_t) -> bool { + self.mc_onstack == other.mc_onstack && + self.mc_rdi == other.mc_rdi && + self.mc_rsi == other.mc_rsi && + self.mc_rdx == other.mc_rdx && + self.mc_rcx == other.mc_rcx && + self.mc_r8 == other.mc_r8 && + self.mc_r9 == other.mc_r9 && + self.mc_rax == other.mc_rax && + self.mc_rbx == other.mc_rbx && + self.mc_rbp == other.mc_rbp && + self.mc_r10 == other.mc_r10 && + self.mc_r11 == other.mc_r11 && + self.mc_r12 == other.mc_r12 && + self.mc_r13 == other.mc_r13 && + self.mc_r14 == other.mc_r14 && + self.mc_r15 == other.mc_r15 && + self.mc_trapno == other.mc_trapno && + self.mc_fs == other.mc_fs && + self.mc_gs == other.mc_gs && + self.mc_addr == other.mc_addr && + self.mc_flags == other.mc_flags && + self.mc_es == other.mc_es && + self.mc_ds == other.mc_ds && + self.mc_err == other.mc_err && + self.mc_rip == other.mc_rip && + self.mc_cs == other.mc_cs && + self.mc_rflags == other.mc_rflags && + self.mc_rsp == other.mc_rsp && + self.mc_ss == other.mc_ss && + self.mc_len == other.mc_len && + self.mc_fpformat == other.mc_fpformat && + self.mc_ownedfp == other.mc_ownedfp && + self.mc_fpstate.iter().zip(other.mc_fpstate.iter()) + .all(|(a, b)| a == b) && + self.mc_fsbase == other.mc_fsbase && + self.mc_gsbase == other.mc_gsbase && + self.mc_xfpustate == other.mc_xfpustate && + self.mc_xfpustate_len == other.mc_xfpustate_len && + self.mc_spare == other.mc_spare + } + } + impl Eq for mcontext_t {} + impl ::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mcontext_t") + .field("mc_onstack", &self.mc_onstack) + .field("mc_rdi", &self.mc_rdi) + .field("mc_rsi", &self.mc_rsi) + .field("mc_rdx", &self.mc_rdx) + .field("mc_rcx", &self.mc_rcx) + .field("mc_r8", &self.mc_r8) + .field("mc_r9", &self.mc_r9) + .field("mc_rax", &self.mc_rax) + .field("mc_rbx", &self.mc_rbx) + .field("mc_rbp", &self.mc_rbp) + .field("mc_r10", &self.mc_r10) + .field("mc_r11", &self.mc_r11) + .field("mc_r12", &self.mc_r12) + .field("mc_r13", &self.mc_r13) + .field("mc_r14", &self.mc_r14) + .field("mc_r15", &self.mc_r15) + .field("mc_trapno", &self.mc_trapno) + .field("mc_fs", &self.mc_fs) + .field("mc_gs", &self.mc_gs) + .field("mc_addr", &self.mc_addr) + .field("mc_flags", &self.mc_flags) + .field("mc_es", &self.mc_es) + .field("mc_ds", &self.mc_ds) + .field("mc_err", &self.mc_err) + .field("mc_rip", &self.mc_rip) + .field("mc_cs", &self.mc_cs) + .field("mc_rflags", &self.mc_rflags) + .field("mc_rsp", &self.mc_rsp) + .field("mc_ss", &self.mc_ss) + .field("mc_len", &self.mc_len) + .field("mc_fpformat", &self.mc_fpformat) + .field("mc_ownedfp", &self.mc_ownedfp) + // FIXME: .field("mc_fpstate", &self.mc_fpstate) + .field("mc_fsbase", &self.mc_fsbase) + .field("mc_gsbase", &self.mc_gsbase) + .field("mc_xfpustate", &self.mc_xfpustate) + .field("mc_xfpustate_len", &self.mc_xfpustate_len) + .field("mc_spare", &self.mc_spare) + .finish() + } + } + impl ::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { + self.mc_onstack.hash(state); + self.mc_rdi.hash(state); + self.mc_rsi.hash(state); + self.mc_rdx.hash(state); + self.mc_rcx.hash(state); + self.mc_r8.hash(state); + self.mc_r9.hash(state); + self.mc_rax.hash(state); + self.mc_rbx.hash(state); + self.mc_rbp.hash(state); + self.mc_r10.hash(state); + self.mc_r11.hash(state); + self.mc_r12.hash(state); + self.mc_r13.hash(state); + self.mc_r14.hash(state); + self.mc_r15.hash(state); + self.mc_trapno.hash(state); + self.mc_fs.hash(state); + self.mc_gs.hash(state); + self.mc_addr.hash(state); + self.mc_flags.hash(state); + self.mc_es.hash(state); + self.mc_ds.hash(state); + self.mc_err.hash(state); + self.mc_rip.hash(state); + self.mc_cs.hash(state); + self.mc_rflags.hash(state); + self.mc_rsp.hash(state); + self.mc_ss.hash(state); + self.mc_len.hash(state); + self.mc_fpformat.hash(state); + self.mc_ownedfp.hash(state); + self.mc_fpstate.hash(state); + self.mc_fsbase.hash(state); + self.mc_gsbase.hash(state); + self.mc_xfpustate.hash(state); + self.mc_xfpustate_len.hash(state); + self.mc_spare.hash(state); + } + } + } +} + +s! { + pub struct ucontext_t { + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: ::mcontext_t, + pub uc_link: *mut ::ucontext_t, + pub uc_stack: ::stack_t, + pub uc_flags: ::c_int, + __spare__: [::c_int; 4], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs new file mode 100644 index 000000000..ae1fcf781 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -0,0 +1,334 @@ +pub type c_char = i8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type wchar_t = i32; +pub type time_t = i64; +pub type suseconds_t = i64; +pub type register_t = i64; + +s! { + pub struct reg32 { + pub r_fs: u32, + pub r_es: u32, + pub r_ds: u32, + pub r_edi: u32, + pub r_esi: u32, + pub r_ebp: u32, + pub r_isp: u32, + pub r_ebx: u32, + pub r_edx: u32, + pub r_ecx: u32, + pub r_eax: u32, + pub r_trapno: u32, + pub r_err: u32, + pub r_eip: u32, + pub r_cs: u32, + pub r_eflags: u32, + pub r_esp: u32, + pub r_ss: u32, + pub r_gs: u32, + } + + pub struct reg { + pub r_r15: i64, + pub r_r14: i64, + pub r_r13: i64, + pub r_r12: i64, + pub r_r11: i64, + pub r_r10: i64, + pub r_r9: i64, + pub r_r8: i64, + pub r_rdi: i64, + pub r_rsi: i64, + pub r_rbp: i64, + pub r_rbx: i64, + pub r_rdx: i64, + pub r_rcx: i64, + pub r_rax: i64, + pub r_trapno: u32, + pub r_fs: u16, + pub r_gs: u16, + pub r_err: u32, + pub r_es: u16, + pub r_ds: u16, + pub r_rip: i64, + pub r_cs: i64, + pub r_rflags: i64, + pub r_rsp: i64, + pub r_ss: i64, + } +} + +s_no_extra_traits! { + pub struct fpreg32 { + pub fpr_env: [u32; 7], + pub fpr_acc: [[u8; 10]; 8], + pub fpr_ex_sw: u32, + pub fpr_pad: [u8; 64], + } + + pub struct fpreg { + pub fpr_env: [u64; 4], + pub fpr_acc: [[u8; 16]; 8], + pub fpr_xacc: [[u8; 16]; 16], + pub fpr_spare: [u64; 12], + } + + pub struct xmmreg { + pub xmm_env: [u32; 8], + pub xmm_acc: [[u8; 16]; 8], + pub xmm_reg: [[u8; 16]; 8], + pub xmm_pad: [u8; 224], + } + + #[cfg(libc_union)] + pub union __c_anonymous_elf64_auxv_union { + pub a_val: ::c_long, + pub a_ptr: *mut ::c_void, + pub a_fcn: extern "C" fn(), + } + + pub struct Elf64_Auxinfo { + pub a_type: ::c_long, + #[cfg(libc_union)] + pub a_un: __c_anonymous_elf64_auxv_union, + } + + pub struct kinfo_file { + pub kf_structsize: ::c_int, + pub kf_type: ::c_int, + pub kf_fd: ::c_int, + pub kf_ref_count: ::c_int, + pub kf_flags: ::c_int, + _kf_pad0: ::c_int, + pub kf_offset: i64, + _priv: [::uintptr_t; 38], // FIXME if needed + pub kf_status: u16, + _kf_pad1: u16, + _kf_ispare0: ::c_int, + pub kf_cap_rights: ::cap_rights_t, + _kf_cap_spare: u64, + pub kf_path: [::c_char; ::PATH_MAX as usize], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for fpreg32 { + fn eq(&self, other: &fpreg32) -> bool { + self.fpr_env == other.fpr_env && + self.fpr_acc == other.fpr_acc && + self.fpr_ex_sw == other.fpr_ex_sw && + self.fpr_pad + .iter() + .zip(other.fpr_pad.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for fpreg32 {} + impl ::fmt::Debug for fpreg32 { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("fpreg32") + .field("fpr_env", &&self.fpr_env[..]) + .field("fpr_acc", &self.fpr_acc) + .field("fpr_ex_sw", &self.fpr_ex_sw) + .field("fpr_pad", &&self.fpr_pad[..]) + .finish() + } + } + impl ::hash::Hash for fpreg32 { + fn hash(&self, state: &mut H) { + self.fpr_env.hash(state); + self.fpr_acc.hash(state); + self.fpr_ex_sw.hash(state); + self.fpr_pad.hash(state); + } + } + + impl PartialEq for fpreg { + fn eq(&self, other: &fpreg) -> bool { + self.fpr_env == other.fpr_env && + self.fpr_acc == other.fpr_acc && + self.fpr_xacc == other.fpr_xacc && + self.fpr_spare == other.fpr_spare + } + } + impl Eq for fpreg {} + impl ::fmt::Debug for fpreg { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("fpreg") + .field("fpr_env", &self.fpr_env) + .field("fpr_acc", &self.fpr_acc) + .field("fpr_xacc", &self.fpr_xacc) + .field("fpr_spare", &self.fpr_spare) + .finish() + } + } + impl ::hash::Hash for fpreg { + fn hash(&self, state: &mut H) { + self.fpr_env.hash(state); + self.fpr_acc.hash(state); + self.fpr_xacc.hash(state); + self.fpr_spare.hash(state); + } + } + + impl PartialEq for xmmreg { + fn eq(&self, other: &xmmreg) -> bool { + self.xmm_env == other.xmm_env && + self.xmm_acc == other.xmm_acc && + self.xmm_reg == other.xmm_reg && + self.xmm_pad + .iter() + .zip(other.xmm_pad.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for xmmreg {} + impl ::fmt::Debug for xmmreg { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("xmmreg") + .field("xmm_env", &self.xmm_env) + .field("xmm_acc", &self.xmm_acc) + .field("xmm_reg", &self.xmm_reg) + .field("xmm_pad", &&self.xmm_pad[..]) + .finish() + } + } + impl ::hash::Hash for xmmreg { + fn hash(&self, state: &mut H) { + self.xmm_env.hash(state); + self.xmm_acc.hash(state); + self.xmm_reg.hash(state); + self.xmm_pad.hash(state); + } + } + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_elf64_auxv_union { + fn eq(&self, other: &__c_anonymous_elf64_auxv_union) -> bool { + unsafe { self.a_val == other.a_val + || self.a_ptr == other.a_ptr + || self.a_fcn == other.a_fcn } + } + } + #[cfg(libc_union)] + impl Eq for __c_anonymous_elf64_auxv_union {} + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_elf64_auxv_union { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("a_val") + .field("a_val", unsafe { &self.a_val }) + .finish() + } + } + #[cfg(not(libc_union))] + impl PartialEq for Elf64_Auxinfo { + fn eq(&self, other: &Elf64_Auxinfo) -> bool { + self.a_type == other.a_type + } + } + #[cfg(libc_union)] + impl PartialEq for Elf64_Auxinfo { + fn eq(&self, other: &Elf64_Auxinfo) -> bool { + self.a_type == other.a_type + && self.a_un == other.a_un + } + } + impl Eq for Elf64_Auxinfo {} + #[cfg(not(libc_union))] + impl ::fmt::Debug for Elf64_Auxinfo { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("Elf64_Auxinfo") + .field("a_type", &self.a_type) + .finish() + } + } + #[cfg(libc_union)] + impl ::fmt::Debug for Elf64_Auxinfo { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("Elf64_Auxinfo") + .field("a_type", &self.a_type) + .field("a_un", &self.a_un) + .finish() + } + } + + impl PartialEq for kinfo_file { + fn eq(&self, other: &kinfo_file) -> bool { + self.kf_structsize == other.kf_structsize && + self.kf_type == other.kf_type && + self.kf_fd == other.kf_fd && + self.kf_ref_count == other.kf_ref_count && + self.kf_flags == other.kf_flags && + self.kf_offset == other.kf_offset && + self.kf_status == other.kf_status && + self.kf_cap_rights == other.kf_cap_rights && + self.kf_path + .iter() + .zip(other.kf_path.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for kinfo_file {} + impl ::fmt::Debug for kinfo_file { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("kinfo_file") + .field("kf_structsize", &self.kf_structsize) + .field("kf_type", &self.kf_type) + .field("kf_fd", &self.kf_fd) + .field("kf_ref_count", &self.kf_ref_count) + .field("kf_flags", &self.kf_flags) + .field("kf_offset", &self.kf_offset) + .field("kf_status", &self.kf_status) + .field("kf_cap_rights", &self.kf_cap_rights) + .field("kf_path", &&self.kf_path[..]) + .finish() + } + } + impl ::hash::Hash for kinfo_file { + fn hash(&self, state: &mut H) { + self.kf_structsize.hash(state); + self.kf_type.hash(state); + self.kf_fd.hash(state); + self.kf_ref_count.hash(state); + self.kf_flags.hash(state); + self.kf_offset.hash(state); + self.kf_status.hash(state); + self.kf_cap_rights.hash(state); + self.kf_path.hash(state); + } + } + } +} + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} +pub const MAP_32BIT: ::c_int = 0x00080000; +pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 + +pub const _MC_HASSEGS: u32 = 0x1; +pub const _MC_HASBASES: u32 = 0x2; +pub const _MC_HASFPXSTATE: u32 = 0x4; +pub const _MC_FLAG_MASK: u32 = _MC_HASSEGS | _MC_HASBASES | _MC_HASFPXSTATE; + +pub const _MC_FPFMT_NODEV: c_long = 0x10000; +pub const _MC_FPFMT_XMM: c_long = 0x10002; +pub const _MC_FPOWNED_NONE: c_long = 0x20000; +pub const _MC_FPOWNED_FPU: c_long = 0x20001; +pub const _MC_FPOWNED_PCB: c_long = 0x20002; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/mod.rs new file mode 100644 index 000000000..fe69ca420 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/mod.rs @@ -0,0 +1,1896 @@ +pub type mode_t = u16; +pub type pthread_attr_t = *mut ::c_void; +pub type rlim_t = i64; +pub type pthread_mutex_t = *mut ::c_void; +pub type pthread_mutexattr_t = *mut ::c_void; +pub type pthread_cond_t = *mut ::c_void; +pub type pthread_condattr_t = *mut ::c_void; +pub type pthread_rwlock_t = *mut ::c_void; +pub type pthread_rwlockattr_t = *mut ::c_void; +pub type pthread_key_t = ::c_int; +pub type tcflag_t = ::c_uint; +pub type speed_t = ::c_uint; +pub type nl_item = ::c_int; +pub type id_t = i64; +pub type vm_size_t = ::uintptr_t; +pub type key_t = ::c_long; + +// elf.h + +pub type Elf32_Addr = u32; +pub type Elf32_Half = u16; +pub type Elf32_Lword = u64; +pub type Elf32_Off = u32; +pub type Elf32_Sword = i32; +pub type Elf32_Word = u32; + +pub type Elf64_Addr = u64; +pub type Elf64_Half = u16; +pub type Elf64_Lword = u64; +pub type Elf64_Off = u64; +pub type Elf64_Sword = i32; +pub type Elf64_Sxword = i64; +pub type Elf64_Word = u32; +pub type Elf64_Xword = u64; + +pub type iconv_t = *mut ::c_void; + +// It's an alias over "struct __kvm_t". However, its fields aren't supposed to be used directly, +// making the type definition system dependent. Better not bind it exactly. +pub type kvm_t = ::c_void; + +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + type Elf_Addr = Elf64_Addr; + type Elf_Half = Elf64_Half; + type Elf_Phdr = Elf64_Phdr; + } else if #[cfg(target_pointer_width = "32")] { + type Elf_Addr = Elf32_Addr; + type Elf_Half = Elf32_Half; + type Elf_Phdr = Elf32_Phdr; + } +} + +// link.h + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum timezone {} +impl ::Copy for timezone {} +impl ::Clone for timezone { + fn clone(&self) -> timezone { + *self + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + self.si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + self.si_value + } + + pub unsafe fn si_pid(&self) -> ::pid_t { + self.si_pid + } + + pub unsafe fn si_uid(&self) -> ::uid_t { + self.si_uid + } + + pub unsafe fn si_status(&self) -> ::c_int { + self.si_status + } +} + +s! { + pub struct in_addr { + pub s_addr: ::in_addr_t, + } + + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct ip_mreqn { + pub imr_multiaddr: in_addr, + pub imr_address: in_addr, + pub imr_ifindex: ::c_int, + } + + pub struct ip_mreq_source { + pub imr_multiaddr: in_addr, + pub imr_sourceaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct glob_t { + pub gl_pathc: ::size_t, + pub gl_matchc: ::size_t, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + pub gl_pathv: *mut *mut ::c_char, + __unused3: *mut ::c_void, + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + __unused6: *mut ::c_void, + __unused7: *mut ::c_void, + __unused8: *mut ::c_void, + } + + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: ::socklen_t, + pub ai_canonname: *mut ::c_char, + pub ai_addr: *mut ::sockaddr, + pub ai_next: *mut addrinfo, + } + + pub struct sigset_t { + bits: [u32; 4], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub si_pid: ::pid_t, + pub si_uid: ::uid_t, + pub si_status: ::c_int, + pub si_addr: *mut ::c_void, + pub si_value: ::sigval, + _pad1: ::c_long, + _pad2: [::c_int; 7], + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_flags: ::c_int, + pub sa_mask: sigset_t, + } + + pub struct sched_param { + pub sched_priority: ::c_int, + } + + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } + + pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [::c_char; 8], + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_cc: [::cc_t; ::NCCS], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, + } + + pub struct flock { + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + pub l_type: ::c_short, + pub l_whence: ::c_short, + #[cfg(not(target_os = "dragonfly"))] + pub l_sysid: ::c_int, + } + + pub struct sf_hdtr { + pub headers: *mut ::iovec, + pub hdr_cnt: ::c_int, + pub trailers: *mut ::iovec, + pub trl_cnt: ::c_int, + } + + pub struct lconv { + pub decimal_point: *mut ::c_char, + pub thousands_sep: *mut ::c_char, + pub grouping: *mut ::c_char, + pub int_curr_symbol: *mut ::c_char, + pub currency_symbol: *mut ::c_char, + pub mon_decimal_point: *mut ::c_char, + pub mon_thousands_sep: *mut ::c_char, + pub mon_grouping: *mut ::c_char, + pub positive_sign: *mut ::c_char, + pub negative_sign: *mut ::c_char, + pub int_frac_digits: ::c_char, + pub frac_digits: ::c_char, + pub p_cs_precedes: ::c_char, + pub p_sep_by_space: ::c_char, + pub n_cs_precedes: ::c_char, + pub n_sep_by_space: ::c_char, + pub p_sign_posn: ::c_char, + pub n_sign_posn: ::c_char, + pub int_p_cs_precedes: ::c_char, + pub int_n_cs_precedes: ::c_char, + pub int_p_sep_by_space: ::c_char, + pub int_n_sep_by_space: ::c_char, + pub int_p_sign_posn: ::c_char, + pub int_n_sign_posn: ::c_char, + } + + pub struct cmsgcred { + pub cmcred_pid: ::pid_t, + pub cmcred_uid: ::uid_t, + pub cmcred_euid: ::uid_t, + pub cmcred_gid: ::gid_t, + pub cmcred_ngroups: ::c_short, + pub cmcred_groups: [::gid_t; CMGROUP_MAX], + } + + pub struct rtprio { + pub type_: ::c_ushort, + pub prio: ::c_ushort, + } + + pub struct in6_pktinfo { + pub ipi6_addr: ::in6_addr, + pub ipi6_ifindex: ::c_uint, + } + + pub struct arphdr { + pub ar_hrd: u16, + pub ar_pro: u16, + pub ar_hln: u8, + pub ar_pln: u8, + pub ar_op: u16, + } + + pub struct timex { + pub modes: ::c_uint, + pub offset: ::c_long, + pub freq: ::c_long, + pub maxerror: ::c_long, + pub esterror: ::c_long, + pub status: ::c_int, + pub constant: ::c_long, + pub precision: ::c_long, + pub tolerance: ::c_long, + pub ppsfreq: ::c_long, + pub jitter: ::c_long, + pub shift: ::c_int, + pub stabil: ::c_long, + pub jitcnt: ::c_long, + pub calcnt: ::c_long, + pub errcnt: ::c_long, + pub stbcnt: ::c_long, + } + + pub struct ntptimeval { + pub time: ::timespec, + pub maxerror: ::c_long, + pub esterror: ::c_long, + pub tai: ::c_long, + pub time_state: ::c_int, + } + + pub struct accept_filter_arg { + pub af_name: [::c_char; 16], + af_arg: [[::c_char; 10]; 24], + } + + pub struct ptrace_io_desc { + pub piod_op: ::c_int, + pub piod_offs: *mut ::c_void, + pub piod_addr: *mut ::c_void, + pub piod_len: ::size_t, + } + + // bpf.h + + pub struct bpf_program { + pub bf_len: ::c_uint, + pub bf_insns: *mut bpf_insn, + } + + pub struct bpf_stat { + pub bs_recv: ::c_uint, + pub bs_drop: ::c_uint, + } + + pub struct bpf_version { + pub bv_major: ::c_ushort, + pub bv_minor: ::c_ushort, + } + + pub struct bpf_hdr { + pub bh_tstamp: ::timeval, + pub bh_caplen: u32, + pub bh_datalen: u32, + pub bh_hdrlen: ::c_ushort, + } + + pub struct bpf_insn { + pub code: ::c_ushort, + pub jt: ::c_uchar, + pub jf: ::c_uchar, + pub k: u32, + } + + pub struct bpf_dltlist { + bfl_len: ::c_uint, + bfl_list: *mut ::c_uint, + } + + // elf.h + + pub struct Elf32_Phdr { + pub p_type: Elf32_Word, + pub p_offset: Elf32_Off, + pub p_vaddr: Elf32_Addr, + pub p_paddr: Elf32_Addr, + pub p_filesz: Elf32_Word, + pub p_memsz: Elf32_Word, + pub p_flags: Elf32_Word, + pub p_align: Elf32_Word, + } + + pub struct Elf64_Phdr { + pub p_type: Elf64_Word, + pub p_flags: Elf64_Word, + pub p_offset: Elf64_Off, + pub p_vaddr: Elf64_Addr, + pub p_paddr: Elf64_Addr, + pub p_filesz: Elf64_Xword, + pub p_memsz: Elf64_Xword, + pub p_align: Elf64_Xword, + } + + // link.h + + pub struct dl_phdr_info { + pub dlpi_addr: Elf_Addr, + pub dlpi_name: *const ::c_char, + pub dlpi_phdr: *const Elf_Phdr, + pub dlpi_phnum: Elf_Half, + pub dlpi_adds: ::c_ulonglong, + pub dlpi_subs: ::c_ulonglong, + pub dlpi_tls_modid: usize, + pub dlpi_tls_data: *mut ::c_void, + } + + pub struct ipc_perm { + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub mode: ::mode_t, + pub seq: ::c_ushort, + pub key: ::key_t, + } + + pub struct eui64 { + pub octet: [u8; EUI64_LEN], + } +} + +s_no_extra_traits! { + pub struct sockaddr_storage { + pub ss_len: u8, + pub ss_family: ::sa_family_t, + __ss_pad1: [u8; 6], + __ss_align: i64, + __ss_pad2: [u8; 112], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for sockaddr_storage { + fn eq(&self, other: &sockaddr_storage) -> bool { + self.ss_len == other.ss_len + && self.ss_family == other.ss_family + && self.__ss_pad1 == other.__ss_pad1 + && self.__ss_align == other.__ss_align + && self + .__ss_pad2 + .iter() + .zip(other.__ss_pad2.iter()) + .all(|(a, b)| a == b) + } + } + impl Eq for sockaddr_storage {} + impl ::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_storage") + .field("ss_len", &self.ss_len) + .field("ss_family", &self.ss_family) + .field("__ss_pad1", &self.__ss_pad1) + .field("__ss_align", &self.__ss_align) + // FIXME: .field("__ss_pad2", &self.__ss_pad2) + .finish() + } + } + impl ::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { + self.ss_len.hash(state); + self.ss_family.hash(state); + self.__ss_pad1.hash(state); + self.__ss_align.hash(state); + self.__ss_pad2.hash(state); + } + } + } +} + +// Non-public helper constant +cfg_if! { + if #[cfg(all(not(libc_const_size_of), target_pointer_width = "32"))] { + const SIZEOF_LONG: usize = 4; + } else if #[cfg(all(not(libc_const_size_of), target_pointer_width = "64"))] { + const SIZEOF_LONG: usize = 8; + } else if #[cfg(libc_const_size_of)] { + const SIZEOF_LONG: usize = ::mem::size_of::<::c_long>(); + } +} + +#[deprecated( + since = "0.2.64", + note = "Can vary at runtime. Use sysconf(3) instead" +)] +pub const AIO_LISTIO_MAX: ::c_int = 16; +pub const AIO_CANCELED: ::c_int = 1; +pub const AIO_NOTCANCELED: ::c_int = 2; +pub const AIO_ALLDONE: ::c_int = 3; +pub const LIO_NOP: ::c_int = 0; +pub const LIO_WRITE: ::c_int = 1; +pub const LIO_READ: ::c_int = 2; +pub const LIO_WAIT: ::c_int = 1; +pub const LIO_NOWAIT: ::c_int = 0; + +pub const SIGEV_NONE: ::c_int = 0; +pub const SIGEV_SIGNAL: ::c_int = 1; +pub const SIGEV_THREAD: ::c_int = 2; +pub const SIGEV_KEVENT: ::c_int = 3; + +pub const CODESET: ::nl_item = 0; +pub const D_T_FMT: ::nl_item = 1; +pub const D_FMT: ::nl_item = 2; +pub const T_FMT: ::nl_item = 3; +pub const T_FMT_AMPM: ::nl_item = 4; +pub const AM_STR: ::nl_item = 5; +pub const PM_STR: ::nl_item = 6; + +pub const DAY_1: ::nl_item = 7; +pub const DAY_2: ::nl_item = 8; +pub const DAY_3: ::nl_item = 9; +pub const DAY_4: ::nl_item = 10; +pub const DAY_5: ::nl_item = 11; +pub const DAY_6: ::nl_item = 12; +pub const DAY_7: ::nl_item = 13; + +pub const ABDAY_1: ::nl_item = 14; +pub const ABDAY_2: ::nl_item = 15; +pub const ABDAY_3: ::nl_item = 16; +pub const ABDAY_4: ::nl_item = 17; +pub const ABDAY_5: ::nl_item = 18; +pub const ABDAY_6: ::nl_item = 19; +pub const ABDAY_7: ::nl_item = 20; + +pub const MON_1: ::nl_item = 21; +pub const MON_2: ::nl_item = 22; +pub const MON_3: ::nl_item = 23; +pub const MON_4: ::nl_item = 24; +pub const MON_5: ::nl_item = 25; +pub const MON_6: ::nl_item = 26; +pub const MON_7: ::nl_item = 27; +pub const MON_8: ::nl_item = 28; +pub const MON_9: ::nl_item = 29; +pub const MON_10: ::nl_item = 30; +pub const MON_11: ::nl_item = 31; +pub const MON_12: ::nl_item = 32; + +pub const ABMON_1: ::nl_item = 33; +pub const ABMON_2: ::nl_item = 34; +pub const ABMON_3: ::nl_item = 35; +pub const ABMON_4: ::nl_item = 36; +pub const ABMON_5: ::nl_item = 37; +pub const ABMON_6: ::nl_item = 38; +pub const ABMON_7: ::nl_item = 39; +pub const ABMON_8: ::nl_item = 40; +pub const ABMON_9: ::nl_item = 41; +pub const ABMON_10: ::nl_item = 42; +pub const ABMON_11: ::nl_item = 43; +pub const ABMON_12: ::nl_item = 44; + +pub const ERA: ::nl_item = 45; +pub const ERA_D_FMT: ::nl_item = 46; +pub const ERA_D_T_FMT: ::nl_item = 47; +pub const ERA_T_FMT: ::nl_item = 48; +pub const ALT_DIGITS: ::nl_item = 49; + +pub const RADIXCHAR: ::nl_item = 50; +pub const THOUSEP: ::nl_item = 51; + +pub const YESEXPR: ::nl_item = 52; +pub const NOEXPR: ::nl_item = 53; + +pub const YESSTR: ::nl_item = 54; +pub const NOSTR: ::nl_item = 55; + +pub const CRNCYSTR: ::nl_item = 56; + +pub const D_MD_ORDER: ::nl_item = 57; + +pub const ALTMON_1: ::nl_item = 58; +pub const ALTMON_2: ::nl_item = 59; +pub const ALTMON_3: ::nl_item = 60; +pub const ALTMON_4: ::nl_item = 61; +pub const ALTMON_5: ::nl_item = 62; +pub const ALTMON_6: ::nl_item = 63; +pub const ALTMON_7: ::nl_item = 64; +pub const ALTMON_8: ::nl_item = 65; +pub const ALTMON_9: ::nl_item = 66; +pub const ALTMON_10: ::nl_item = 67; +pub const ALTMON_11: ::nl_item = 68; +pub const ALTMON_12: ::nl_item = 69; + +pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: ::c_int = 0; +pub const EOF: ::c_int = -1; +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; +pub const SEEK_DATA: ::c_int = 3; +pub const SEEK_HOLE: ::c_int = 4; +pub const _IOFBF: ::c_int = 0; +pub const _IONBF: ::c_int = 2; +pub const _IOLBF: ::c_int = 1; +pub const BUFSIZ: ::c_uint = 1024; +pub const FOPEN_MAX: ::c_uint = 20; +pub const FILENAME_MAX: ::c_uint = 1024; +pub const L_tmpnam: ::c_uint = 1024; +pub const TMP_MAX: ::c_uint = 308915776; + +pub const O_NOCTTY: ::c_int = 32768; +pub const O_DIRECT: ::c_int = 0x00010000; + +pub const S_IFIFO: mode_t = 4096; +pub const S_IFCHR: mode_t = 8192; +pub const S_IFBLK: mode_t = 24576; +pub const S_IFDIR: mode_t = 16384; +pub const S_IFREG: mode_t = 32768; +pub const S_IFLNK: mode_t = 40960; +pub const S_IFSOCK: mode_t = 49152; +pub const S_IFMT: mode_t = 61440; +pub const S_IEXEC: mode_t = 64; +pub const S_IWRITE: mode_t = 128; +pub const S_IREAD: mode_t = 256; +pub const S_IRWXU: mode_t = 448; +pub const S_IXUSR: mode_t = 64; +pub const S_IWUSR: mode_t = 128; +pub const S_IRUSR: mode_t = 256; +pub const S_IRWXG: mode_t = 56; +pub const S_IXGRP: mode_t = 8; +pub const S_IWGRP: mode_t = 16; +pub const S_IRGRP: mode_t = 32; +pub const S_IRWXO: mode_t = 7; +pub const S_IXOTH: mode_t = 1; +pub const S_IWOTH: mode_t = 2; +pub const S_IROTH: mode_t = 4; +pub const F_OK: ::c_int = 0; +pub const R_OK: ::c_int = 4; +pub const W_OK: ::c_int = 2; +pub const X_OK: ::c_int = 1; +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; +pub const F_LOCK: ::c_int = 1; +pub const F_TEST: ::c_int = 3; +pub const F_TLOCK: ::c_int = 2; +pub const F_ULOCK: ::c_int = 0; +pub const F_DUPFD_CLOEXEC: ::c_int = 17; +pub const F_DUP2FD: ::c_int = 10; +pub const F_DUP2FD_CLOEXEC: ::c_int = 18; +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGABRT: ::c_int = 6; +pub const SIGEMT: ::c_int = 7; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGSEGV: ::c_int = 11; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; + +pub const PROT_NONE: ::c_int = 0; +pub const PROT_READ: ::c_int = 1; +pub const PROT_WRITE: ::c_int = 2; +pub const PROT_EXEC: ::c_int = 4; + +pub const MAP_FILE: ::c_int = 0x0000; +pub const MAP_SHARED: ::c_int = 0x0001; +pub const MAP_PRIVATE: ::c_int = 0x0002; +pub const MAP_FIXED: ::c_int = 0x0010; +pub const MAP_ANON: ::c_int = 0x1000; +pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; + +pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const MNT_EXPUBLIC: ::c_int = 0x20000000; +pub const MNT_NOATIME: ::c_int = 0x10000000; +pub const MNT_NOCLUSTERR: ::c_int = 0x40000000; +pub const MNT_NOCLUSTERW: ::c_int = 0x80000000; +pub const MNT_NOSYMFOLLOW: ::c_int = 0x00400000; +pub const MNT_SOFTDEP: ::c_int = 0x00200000; +pub const MNT_SUIDDIR: ::c_int = 0x00100000; +pub const MNT_EXRDONLY: ::c_int = 0x00000080; +pub const MNT_DEFEXPORTED: ::c_int = 0x00000200; +pub const MNT_EXPORTANON: ::c_int = 0x00000400; +pub const MNT_EXKERB: ::c_int = 0x00000800; +pub const MNT_DELEXPORT: ::c_int = 0x00020000; + +pub const MS_SYNC: ::c_int = 0x0000; +pub const MS_ASYNC: ::c_int = 0x0001; +pub const MS_INVALIDATE: ::c_int = 0x0002; + +pub const EPERM: ::c_int = 1; +pub const ENOENT: ::c_int = 2; +pub const ESRCH: ::c_int = 3; +pub const EINTR: ::c_int = 4; +pub const EIO: ::c_int = 5; +pub const ENXIO: ::c_int = 6; +pub const E2BIG: ::c_int = 7; +pub const ENOEXEC: ::c_int = 8; +pub const EBADF: ::c_int = 9; +pub const ECHILD: ::c_int = 10; +pub const EDEADLK: ::c_int = 11; +pub const ENOMEM: ::c_int = 12; +pub const EACCES: ::c_int = 13; +pub const EFAULT: ::c_int = 14; +pub const ENOTBLK: ::c_int = 15; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const EXDEV: ::c_int = 18; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENFILE: ::c_int = 23; +pub const EMFILE: ::c_int = 24; +pub const ENOTTY: ::c_int = 25; +pub const ETXTBSY: ::c_int = 26; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const ESPIPE: ::c_int = 29; +pub const EROFS: ::c_int = 30; +pub const EMLINK: ::c_int = 31; +pub const EPIPE: ::c_int = 32; +pub const EDOM: ::c_int = 33; +pub const ERANGE: ::c_int = 34; +pub const EAGAIN: ::c_int = 35; +pub const EWOULDBLOCK: ::c_int = 35; +pub const EINPROGRESS: ::c_int = 36; +pub const EALREADY: ::c_int = 37; +pub const ENOTSOCK: ::c_int = 38; +pub const EDESTADDRREQ: ::c_int = 39; +pub const EMSGSIZE: ::c_int = 40; +pub const EPROTOTYPE: ::c_int = 41; +pub const ENOPROTOOPT: ::c_int = 42; +pub const EPROTONOSUPPORT: ::c_int = 43; +pub const ESOCKTNOSUPPORT: ::c_int = 44; +pub const EOPNOTSUPP: ::c_int = 45; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 46; +pub const EAFNOSUPPORT: ::c_int = 47; +pub const EADDRINUSE: ::c_int = 48; +pub const EADDRNOTAVAIL: ::c_int = 49; +pub const ENETDOWN: ::c_int = 50; +pub const ENETUNREACH: ::c_int = 51; +pub const ENETRESET: ::c_int = 52; +pub const ECONNABORTED: ::c_int = 53; +pub const ECONNRESET: ::c_int = 54; +pub const ENOBUFS: ::c_int = 55; +pub const EISCONN: ::c_int = 56; +pub const ENOTCONN: ::c_int = 57; +pub const ESHUTDOWN: ::c_int = 58; +pub const ETOOMANYREFS: ::c_int = 59; +pub const ETIMEDOUT: ::c_int = 60; +pub const ECONNREFUSED: ::c_int = 61; +pub const ELOOP: ::c_int = 62; +pub const ENAMETOOLONG: ::c_int = 63; +pub const EHOSTDOWN: ::c_int = 64; +pub const EHOSTUNREACH: ::c_int = 65; +pub const ENOTEMPTY: ::c_int = 66; +pub const EPROCLIM: ::c_int = 67; +pub const EUSERS: ::c_int = 68; +pub const EDQUOT: ::c_int = 69; +pub const ESTALE: ::c_int = 70; +pub const EREMOTE: ::c_int = 71; +pub const EBADRPC: ::c_int = 72; +pub const ERPCMISMATCH: ::c_int = 73; +pub const EPROGUNAVAIL: ::c_int = 74; +pub const EPROGMISMATCH: ::c_int = 75; +pub const EPROCUNAVAIL: ::c_int = 76; +pub const ENOLCK: ::c_int = 77; +pub const ENOSYS: ::c_int = 78; +pub const EFTYPE: ::c_int = 79; +pub const EAUTH: ::c_int = 80; +pub const ENEEDAUTH: ::c_int = 81; +pub const EIDRM: ::c_int = 82; +pub const ENOMSG: ::c_int = 83; +pub const EOVERFLOW: ::c_int = 84; +pub const ECANCELED: ::c_int = 85; +pub const EILSEQ: ::c_int = 86; +pub const ENOATTR: ::c_int = 87; +pub const EDOOFUS: ::c_int = 88; +pub const EBADMSG: ::c_int = 89; +pub const EMULTIHOP: ::c_int = 90; +pub const ENOLINK: ::c_int = 91; +pub const EPROTO: ::c_int = 92; + +pub const POLLSTANDARD: ::c_short = ::POLLIN + | ::POLLPRI + | ::POLLOUT + | ::POLLRDNORM + | ::POLLRDBAND + | ::POLLWRBAND + | ::POLLERR + | ::POLLHUP + | ::POLLNVAL; + +pub const AI_PASSIVE: ::c_int = 0x00000001; +pub const AI_CANONNAME: ::c_int = 0x00000002; +pub const AI_NUMERICHOST: ::c_int = 0x00000004; +pub const AI_NUMERICSERV: ::c_int = 0x00000008; +pub const AI_ALL: ::c_int = 0x00000100; +pub const AI_ADDRCONFIG: ::c_int = 0x00000400; +pub const AI_V4MAPPED: ::c_int = 0x00000800; + +pub const EAI_AGAIN: ::c_int = 2; +pub const EAI_BADFLAGS: ::c_int = 3; +pub const EAI_FAIL: ::c_int = 4; +pub const EAI_FAMILY: ::c_int = 5; +pub const EAI_MEMORY: ::c_int = 6; +pub const EAI_NONAME: ::c_int = 8; +pub const EAI_SERVICE: ::c_int = 9; +pub const EAI_SOCKTYPE: ::c_int = 10; +pub const EAI_SYSTEM: ::c_int = 11; +pub const EAI_OVERFLOW: ::c_int = 14; + +pub const F_DUPFD: ::c_int = 0; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; + +pub const SIGTRAP: ::c_int = 5; + +pub const GLOB_APPEND: ::c_int = 0x0001; +pub const GLOB_DOOFFS: ::c_int = 0x0002; +pub const GLOB_ERR: ::c_int = 0x0004; +pub const GLOB_MARK: ::c_int = 0x0008; +pub const GLOB_NOCHECK: ::c_int = 0x0010; +pub const GLOB_NOSORT: ::c_int = 0x0020; +pub const GLOB_NOESCAPE: ::c_int = 0x2000; + +pub const GLOB_NOSPACE: ::c_int = -1; +pub const GLOB_ABORTED: ::c_int = -2; +pub const GLOB_NOMATCH: ::c_int = -3; + +pub const POSIX_MADV_NORMAL: ::c_int = 0; +pub const POSIX_MADV_RANDOM: ::c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_MADV_WILLNEED: ::c_int = 3; +pub const POSIX_MADV_DONTNEED: ::c_int = 4; + +pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; +pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; +pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; +pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; + +pub const RLIMIT_CPU: ::c_int = 0; +pub const RLIMIT_FSIZE: ::c_int = 1; +pub const RLIMIT_DATA: ::c_int = 2; +pub const RLIMIT_STACK: ::c_int = 3; +pub const RLIMIT_CORE: ::c_int = 4; +pub const RLIMIT_RSS: ::c_int = 5; +pub const RLIMIT_MEMLOCK: ::c_int = 6; +pub const RLIMIT_NPROC: ::c_int = 7; +pub const RLIMIT_NOFILE: ::c_int = 8; +pub const RLIMIT_SBSIZE: ::c_int = 9; +pub const RLIMIT_VMEM: ::c_int = 10; +pub const RLIMIT_AS: ::c_int = RLIMIT_VMEM; +pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff; + +pub const RUSAGE_SELF: ::c_int = 0; +pub const RUSAGE_CHILDREN: ::c_int = -1; + +pub const CLOCK_REALTIME: ::clockid_t = 0; +pub const CLOCK_VIRTUAL: ::clockid_t = 1; +pub const CLOCK_PROF: ::clockid_t = 2; +pub const CLOCK_MONOTONIC: ::clockid_t = 4; +pub const CLOCK_UPTIME: ::clockid_t = 5; +pub const CLOCK_BOOTTIME: ::clockid_t = CLOCK_UPTIME; +pub const CLOCK_UPTIME_PRECISE: ::clockid_t = 7; +pub const CLOCK_UPTIME_FAST: ::clockid_t = 8; +pub const CLOCK_REALTIME_PRECISE: ::clockid_t = 9; +pub const CLOCK_REALTIME_FAST: ::clockid_t = 10; +pub const CLOCK_REALTIME_COARSE: ::clockid_t = CLOCK_REALTIME_FAST; +pub const CLOCK_MONOTONIC_PRECISE: ::clockid_t = 11; +pub const CLOCK_MONOTONIC_FAST: ::clockid_t = 12; +pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = CLOCK_MONOTONIC_FAST; +pub const CLOCK_SECOND: ::clockid_t = 13; +pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 14; +pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 15; + +pub const MADV_NORMAL: ::c_int = 0; +pub const MADV_RANDOM: ::c_int = 1; +pub const MADV_SEQUENTIAL: ::c_int = 2; +pub const MADV_WILLNEED: ::c_int = 3; +pub const MADV_DONTNEED: ::c_int = 4; +pub const MADV_FREE: ::c_int = 5; +pub const MADV_NOSYNC: ::c_int = 6; +pub const MADV_AUTOSYNC: ::c_int = 7; +pub const MADV_NOCORE: ::c_int = 8; +pub const MADV_CORE: ::c_int = 9; + +pub const MINCORE_INCORE: ::c_int = 0x1; +pub const MINCORE_REFERENCED: ::c_int = 0x2; +pub const MINCORE_MODIFIED: ::c_int = 0x4; +pub const MINCORE_REFERENCED_OTHER: ::c_int = 0x8; +pub const MINCORE_MODIFIED_OTHER: ::c_int = 0x10; + +pub const AF_UNSPEC: ::c_int = 0; +pub const AF_LOCAL: ::c_int = 1; +pub const AF_UNIX: ::c_int = AF_LOCAL; +pub const AF_INET: ::c_int = 2; +pub const AF_IMPLINK: ::c_int = 3; +pub const AF_PUP: ::c_int = 4; +pub const AF_CHAOS: ::c_int = 5; +pub const AF_NETBIOS: ::c_int = 6; +pub const AF_ISO: ::c_int = 7; +pub const AF_OSI: ::c_int = AF_ISO; +pub const AF_ECMA: ::c_int = 8; +pub const AF_DATAKIT: ::c_int = 9; +pub const AF_CCITT: ::c_int = 10; +pub const AF_SNA: ::c_int = 11; +pub const AF_DECnet: ::c_int = 12; +pub const AF_DLI: ::c_int = 13; +pub const AF_LAT: ::c_int = 14; +pub const AF_HYLINK: ::c_int = 15; +pub const AF_APPLETALK: ::c_int = 16; +pub const AF_ROUTE: ::c_int = 17; +pub const AF_LINK: ::c_int = 18; +pub const pseudo_AF_XTP: ::c_int = 19; +pub const AF_COIP: ::c_int = 20; +pub const AF_CNT: ::c_int = 21; +pub const pseudo_AF_RTIP: ::c_int = 22; +pub const AF_IPX: ::c_int = 23; +pub const AF_SIP: ::c_int = 24; +pub const pseudo_AF_PIP: ::c_int = 25; +pub const AF_ISDN: ::c_int = 26; +pub const AF_E164: ::c_int = AF_ISDN; +pub const pseudo_AF_KEY: ::c_int = 27; +pub const AF_INET6: ::c_int = 28; +pub const AF_NATM: ::c_int = 29; +pub const AF_ATM: ::c_int = 30; +pub const pseudo_AF_HDRCMPLT: ::c_int = 31; +pub const AF_NETGRAPH: ::c_int = 32; + +pub const PF_UNSPEC: ::c_int = AF_UNSPEC; +pub const PF_LOCAL: ::c_int = AF_LOCAL; +pub const PF_UNIX: ::c_int = PF_LOCAL; +pub const PF_INET: ::c_int = AF_INET; +pub const PF_IMPLINK: ::c_int = AF_IMPLINK; +pub const PF_PUP: ::c_int = AF_PUP; +pub const PF_CHAOS: ::c_int = AF_CHAOS; +pub const PF_NETBIOS: ::c_int = AF_NETBIOS; +pub const PF_ISO: ::c_int = AF_ISO; +pub const PF_OSI: ::c_int = AF_ISO; +pub const PF_ECMA: ::c_int = AF_ECMA; +pub const PF_DATAKIT: ::c_int = AF_DATAKIT; +pub const PF_CCITT: ::c_int = AF_CCITT; +pub const PF_SNA: ::c_int = AF_SNA; +pub const PF_DECnet: ::c_int = AF_DECnet; +pub const PF_DLI: ::c_int = AF_DLI; +pub const PF_LAT: ::c_int = AF_LAT; +pub const PF_HYLINK: ::c_int = AF_HYLINK; +pub const PF_APPLETALK: ::c_int = AF_APPLETALK; +pub const PF_ROUTE: ::c_int = AF_ROUTE; +pub const PF_LINK: ::c_int = AF_LINK; +pub const PF_XTP: ::c_int = pseudo_AF_XTP; +pub const PF_COIP: ::c_int = AF_COIP; +pub const PF_CNT: ::c_int = AF_CNT; +pub const PF_SIP: ::c_int = AF_SIP; +pub const PF_IPX: ::c_int = AF_IPX; +pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; +pub const PF_PIP: ::c_int = pseudo_AF_PIP; +pub const PF_ISDN: ::c_int = AF_ISDN; +pub const PF_KEY: ::c_int = pseudo_AF_KEY; +pub const PF_INET6: ::c_int = AF_INET6; +pub const PF_NATM: ::c_int = AF_NATM; +pub const PF_ATM: ::c_int = AF_ATM; +pub const PF_NETGRAPH: ::c_int = AF_NETGRAPH; + +pub const PIOD_READ_D: ::c_int = 1; +pub const PIOD_WRITE_D: ::c_int = 2; +pub const PIOD_READ_I: ::c_int = 3; +pub const PIOD_WRITE_I: ::c_int = 4; + +pub const PT_TRACE_ME: ::c_int = 0; +pub const PT_READ_I: ::c_int = 1; +pub const PT_READ_D: ::c_int = 2; +pub const PT_WRITE_I: ::c_int = 4; +pub const PT_WRITE_D: ::c_int = 5; +pub const PT_CONTINUE: ::c_int = 7; +pub const PT_KILL: ::c_int = 8; +pub const PT_STEP: ::c_int = 9; +pub const PT_ATTACH: ::c_int = 10; +pub const PT_DETACH: ::c_int = 11; +pub const PT_IO: ::c_int = 12; + +pub const SOMAXCONN: ::c_int = 128; + +pub const MSG_OOB: ::c_int = 0x00000001; +pub const MSG_PEEK: ::c_int = 0x00000002; +pub const MSG_DONTROUTE: ::c_int = 0x00000004; +pub const MSG_EOR: ::c_int = 0x00000008; +pub const MSG_TRUNC: ::c_int = 0x00000010; +pub const MSG_CTRUNC: ::c_int = 0x00000020; +pub const MSG_WAITALL: ::c_int = 0x00000040; +pub const MSG_DONTWAIT: ::c_int = 0x00000080; +pub const MSG_EOF: ::c_int = 0x00000100; + +pub const SCM_TIMESTAMP: ::c_int = 0x02; +pub const SCM_CREDS: ::c_int = 0x03; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_RAW: ::c_int = 3; +pub const SOCK_RDM: ::c_int = 4; +pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOCK_CLOEXEC: ::c_int = 0x10000000; +pub const SOCK_NONBLOCK: ::c_int = 0x20000000; +pub const SOCK_MAXADDRLEN: ::c_int = 255; +pub const IP_TTL: ::c_int = 4; +pub const IP_HDRINCL: ::c_int = 2; +pub const IP_RECVDSTADDR: ::c_int = 7; +pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; +pub const IP_ADD_MEMBERSHIP: ::c_int = 12; +pub const IP_DROP_MEMBERSHIP: ::c_int = 13; +pub const IP_RECVIF: ::c_int = 20; +pub const IPV6_JOIN_GROUP: ::c_int = 12; +pub const IPV6_LEAVE_GROUP: ::c_int = 13; +pub const IPV6_CHECKSUM: ::c_int = 26; +pub const IPV6_RECVPKTINFO: ::c_int = 36; +pub const IPV6_PKTINFO: ::c_int = 46; +pub const IPV6_HOPLIMIT: ::c_int = 47; +pub const IPV6_RECVTCLASS: ::c_int = 57; +pub const IPV6_TCLASS: ::c_int = 61; +pub const IPV6_DONTFRAG: ::c_int = 62; +pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 70; +pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71; +pub const IP_BLOCK_SOURCE: ::c_int = 72; +pub const IP_UNBLOCK_SOURCE: ::c_int = 73; + +pub const TCP_NOPUSH: ::c_int = 4; +pub const TCP_NOOPT: ::c_int = 8; +pub const TCP_KEEPIDLE: ::c_int = 256; +pub const TCP_KEEPINTVL: ::c_int = 512; +pub const TCP_KEEPCNT: ::c_int = 1024; + +pub const SOL_SOCKET: ::c_int = 0xffff; +pub const SO_DEBUG: ::c_int = 0x01; +pub const SO_ACCEPTCONN: ::c_int = 0x0002; +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_USELOOPBACK: ::c_int = 0x0040; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_OOBINLINE: ::c_int = 0x0100; +pub const SO_REUSEPORT: ::c_int = 0x0200; +pub const SO_TIMESTAMP: ::c_int = 0x0400; +pub const SO_NOSIGPIPE: ::c_int = 0x0800; +pub const SO_ACCEPTFILTER: ::c_int = 0x1000; +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_SNDLOWAT: ::c_int = 0x1003; +pub const SO_RCVLOWAT: ::c_int = 0x1004; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_TYPE: ::c_int = 0x1008; + +pub const LOCAL_PEERCRED: ::c_int = 1; + +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; + +pub const LOCK_SH: ::c_int = 1; +pub const LOCK_EX: ::c_int = 2; +pub const LOCK_NB: ::c_int = 4; +pub const LOCK_UN: ::c_int = 8; + +pub const MAP_COPY: ::c_int = 0x0002; +#[doc(hidden)] +#[deprecated( + since = "0.2.54", + note = "Removed in FreeBSD 11, unused in DragonFlyBSD" +)] +pub const MAP_RENAME: ::c_int = 0x0020; +#[doc(hidden)] +#[deprecated( + since = "0.2.54", + note = "Removed in FreeBSD 11, unused in DragonFlyBSD" +)] +pub const MAP_NORESERVE: ::c_int = 0x0040; +pub const MAP_HASSEMAPHORE: ::c_int = 0x0200; +pub const MAP_STACK: ::c_int = 0x0400; +pub const MAP_NOSYNC: ::c_int = 0x0800; +pub const MAP_NOCORE: ::c_int = 0x020000; + +pub const IPPROTO_RAW: ::c_int = 255; + +pub const _PC_LINK_MAX: ::c_int = 1; +pub const _PC_MAX_CANON: ::c_int = 2; +pub const _PC_MAX_INPUT: ::c_int = 3; +pub const _PC_NAME_MAX: ::c_int = 4; +pub const _PC_PATH_MAX: ::c_int = 5; +pub const _PC_PIPE_BUF: ::c_int = 6; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; +pub const _PC_NO_TRUNC: ::c_int = 8; +pub const _PC_VDISABLE: ::c_int = 9; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 10; +pub const _PC_FILESIZEBITS: ::c_int = 12; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; +pub const _PC_REC_XFER_ALIGN: ::c_int = 17; +pub const _PC_SYMLINK_MAX: ::c_int = 18; +pub const _PC_MIN_HOLE_SIZE: ::c_int = 21; +pub const _PC_ASYNC_IO: ::c_int = 53; +pub const _PC_PRIO_IO: ::c_int = 54; +pub const _PC_SYNC_IO: ::c_int = 55; +pub const _PC_ACL_EXTENDED: ::c_int = 59; +pub const _PC_ACL_PATH_MAX: ::c_int = 60; +pub const _PC_CAP_PRESENT: ::c_int = 61; +pub const _PC_INF_PRESENT: ::c_int = 62; +pub const _PC_MAC_PRESENT: ::c_int = 63; + +pub const _SC_ARG_MAX: ::c_int = 1; +pub const _SC_CHILD_MAX: ::c_int = 2; +pub const _SC_CLK_TCK: ::c_int = 3; +pub const _SC_NGROUPS_MAX: ::c_int = 4; +pub const _SC_OPEN_MAX: ::c_int = 5; +pub const _SC_JOB_CONTROL: ::c_int = 6; +pub const _SC_SAVED_IDS: ::c_int = 7; +pub const _SC_VERSION: ::c_int = 8; +pub const _SC_BC_BASE_MAX: ::c_int = 9; +pub const _SC_BC_DIM_MAX: ::c_int = 10; +pub const _SC_BC_SCALE_MAX: ::c_int = 11; +pub const _SC_BC_STRING_MAX: ::c_int = 12; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 13; +pub const _SC_EXPR_NEST_MAX: ::c_int = 14; +pub const _SC_LINE_MAX: ::c_int = 15; +pub const _SC_RE_DUP_MAX: ::c_int = 16; +pub const _SC_2_VERSION: ::c_int = 17; +pub const _SC_2_C_BIND: ::c_int = 18; +pub const _SC_2_C_DEV: ::c_int = 19; +pub const _SC_2_CHAR_TERM: ::c_int = 20; +pub const _SC_2_FORT_DEV: ::c_int = 21; +pub const _SC_2_FORT_RUN: ::c_int = 22; +pub const _SC_2_LOCALEDEF: ::c_int = 23; +pub const _SC_2_SW_DEV: ::c_int = 24; +pub const _SC_2_UPE: ::c_int = 25; +pub const _SC_STREAM_MAX: ::c_int = 26; +pub const _SC_TZNAME_MAX: ::c_int = 27; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 28; +pub const _SC_MAPPED_FILES: ::c_int = 29; +pub const _SC_MEMLOCK: ::c_int = 30; +pub const _SC_MEMLOCK_RANGE: ::c_int = 31; +pub const _SC_MEMORY_PROTECTION: ::c_int = 32; +pub const _SC_MESSAGE_PASSING: ::c_int = 33; +pub const _SC_PRIORITIZED_IO: ::c_int = 34; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 35; +pub const _SC_REALTIME_SIGNALS: ::c_int = 36; +pub const _SC_SEMAPHORES: ::c_int = 37; +pub const _SC_FSYNC: ::c_int = 38; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 39; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 40; +pub const _SC_TIMERS: ::c_int = 41; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 42; +pub const _SC_AIO_MAX: ::c_int = 43; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 44; +pub const _SC_DELAYTIMER_MAX: ::c_int = 45; +pub const _SC_MQ_OPEN_MAX: ::c_int = 46; +pub const _SC_PAGESIZE: ::c_int = 47; +pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; +pub const _SC_RTSIG_MAX: ::c_int = 48; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 49; +pub const _SC_SEM_VALUE_MAX: ::c_int = 50; +pub const _SC_SIGQUEUE_MAX: ::c_int = 51; +pub const _SC_TIMER_MAX: ::c_int = 52; +pub const _SC_IOV_MAX: ::c_int = 56; +pub const _SC_NPROCESSORS_CONF: ::c_int = 57; +pub const _SC_2_PBS: ::c_int = 59; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 60; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 61; +pub const _SC_2_PBS_LOCATE: ::c_int = 62; +pub const _SC_2_PBS_MESSAGE: ::c_int = 63; +pub const _SC_2_PBS_TRACK: ::c_int = 64; +pub const _SC_ADVISORY_INFO: ::c_int = 65; +pub const _SC_BARRIERS: ::c_int = 66; +pub const _SC_CLOCK_SELECTION: ::c_int = 67; +pub const _SC_CPUTIME: ::c_int = 68; +pub const _SC_FILE_LOCKING: ::c_int = 69; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 58; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 70; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 71; +pub const _SC_HOST_NAME_MAX: ::c_int = 72; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 73; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 74; +pub const _SC_MQ_PRIO_MAX: ::c_int = 75; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 76; +pub const _SC_REGEXP: ::c_int = 77; +pub const _SC_SHELL: ::c_int = 78; +pub const _SC_SPAWN: ::c_int = 79; +pub const _SC_SPIN_LOCKS: ::c_int = 80; +pub const _SC_SPORADIC_SERVER: ::c_int = 81; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 82; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 83; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 85; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 86; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 87; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 88; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 89; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 90; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 91; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 92; +pub const _SC_THREAD_STACK_MIN: ::c_int = 93; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 94; +pub const _SC_TIMEOUTS: ::c_int = 95; +pub const _SC_THREADS: ::c_int = 96; +pub const _SC_TRACE: ::c_int = 97; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 98; +pub const _SC_TRACE_INHERIT: ::c_int = 99; +pub const _SC_TRACE_LOG: ::c_int = 100; +pub const _SC_TTY_NAME_MAX: ::c_int = 101; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 102; +pub const _SC_V6_ILP32_OFF32: ::c_int = 103; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 104; +pub const _SC_V6_LP64_OFF64: ::c_int = 105; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 106; +pub const _SC_ATEXIT_MAX: ::c_int = 107; +pub const _SC_XOPEN_CRYPT: ::c_int = 108; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 109; +pub const _SC_XOPEN_LEGACY: ::c_int = 110; +pub const _SC_XOPEN_REALTIME: ::c_int = 111; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 112; +pub const _SC_XOPEN_SHM: ::c_int = 113; +pub const _SC_XOPEN_STREAMS: ::c_int = 114; +pub const _SC_XOPEN_UNIX: ::c_int = 115; +pub const _SC_XOPEN_VERSION: ::c_int = 116; +pub const _SC_XOPEN_XCU_VERSION: ::c_int = 117; +pub const _SC_IPV6: ::c_int = 118; +pub const _SC_RAW_SOCKETS: ::c_int = 119; +pub const _SC_SYMLOOP_MAX: ::c_int = 120; +pub const _SC_PHYS_PAGES: ::c_int = 121; + +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _; +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_ERRORCHECK; + +pub const SCHED_FIFO: ::c_int = 1; +pub const SCHED_OTHER: ::c_int = 2; +pub const SCHED_RR: ::c_int = 3; + +pub const FD_SETSIZE: usize = 1024; + +pub const ST_NOSUID: ::c_ulong = 2; + +pub const NI_MAXHOST: ::size_t = 1025; + +pub const XUCRED_VERSION: ::c_uint = 0; + +pub const RTLD_LOCAL: ::c_int = 0; +pub const RTLD_NODELETE: ::c_int = 0x1000; +pub const RTLD_NOLOAD: ::c_int = 0x2000; +pub const RTLD_GLOBAL: ::c_int = 0x100; + +pub const LOG_NTP: ::c_int = 12 << 3; +pub const LOG_SECURITY: ::c_int = 13 << 3; +pub const LOG_CONSOLE: ::c_int = 14 << 3; +pub const LOG_NFACILITIES: ::c_int = 24; + +pub const TIOCEXCL: ::c_ulong = 0x2000740d; +pub const TIOCNXCL: ::c_ulong = 0x2000740e; +pub const TIOCFLUSH: ::c_ulong = 0x80047410; +pub const TIOCGETA: ::c_ulong = 0x402c7413; +pub const TIOCSETA: ::c_ulong = 0x802c7414; +pub const TIOCSETAW: ::c_ulong = 0x802c7415; +pub const TIOCSETAF: ::c_ulong = 0x802c7416; +pub const TIOCGETD: ::c_ulong = 0x4004741a; +pub const TIOCSETD: ::c_ulong = 0x8004741b; +pub const TIOCGDRAINWAIT: ::c_ulong = 0x40047456; +pub const TIOCSDRAINWAIT: ::c_ulong = 0x80047457; +pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; +pub const TIOCMGDTRWAIT: ::c_ulong = 0x4004745a; +pub const TIOCMSDTRWAIT: ::c_ulong = 0x8004745b; +pub const TIOCDRAIN: ::c_ulong = 0x2000745e; +pub const TIOCEXT: ::c_ulong = 0x80047460; +pub const TIOCSCTTY: ::c_ulong = 0x20007461; +pub const TIOCCONS: ::c_ulong = 0x80047462; +pub const TIOCGSID: ::c_ulong = 0x40047463; +pub const TIOCSTAT: ::c_ulong = 0x20007465; +pub const TIOCUCNTL: ::c_ulong = 0x80047466; +pub const TIOCSWINSZ: ::c_ulong = 0x80087467; +pub const TIOCGWINSZ: ::c_ulong = 0x40087468; +pub const TIOCMGET: ::c_ulong = 0x4004746a; +pub const TIOCM_LE: ::c_int = 0x1; +pub const TIOCM_DTR: ::c_int = 0x2; +pub const TIOCM_RTS: ::c_int = 0x4; +pub const TIOCM_ST: ::c_int = 0x8; +pub const TIOCM_SR: ::c_int = 0x10; +pub const TIOCM_CTS: ::c_int = 0x20; +pub const TIOCM_RI: ::c_int = 0x80; +pub const TIOCM_DSR: ::c_int = 0x100; +pub const TIOCM_CD: ::c_int = 0x40; +pub const TIOCM_CAR: ::c_int = 0x40; +pub const TIOCM_RNG: ::c_int = 0x80; +pub const TIOCMBIC: ::c_ulong = 0x8004746b; +pub const TIOCMBIS: ::c_ulong = 0x8004746c; +pub const TIOCMSET: ::c_ulong = 0x8004746d; +pub const TIOCSTART: ::c_ulong = 0x2000746e; +pub const TIOCSTOP: ::c_ulong = 0x2000746f; +pub const TIOCPKT: ::c_ulong = 0x80047470; +pub const TIOCPKT_DATA: ::c_int = 0x0; +pub const TIOCPKT_FLUSHREAD: ::c_int = 0x1; +pub const TIOCPKT_FLUSHWRITE: ::c_int = 0x2; +pub const TIOCPKT_STOP: ::c_int = 0x4; +pub const TIOCPKT_START: ::c_int = 0x8; +pub const TIOCPKT_NOSTOP: ::c_int = 0x10; +pub const TIOCPKT_DOSTOP: ::c_int = 0x20; +pub const TIOCPKT_IOCTL: ::c_int = 0x40; +pub const TIOCNOTTY: ::c_ulong = 0x20007471; +pub const TIOCSTI: ::c_ulong = 0x80017472; +pub const TIOCOUTQ: ::c_ulong = 0x40047473; +pub const TIOCSPGRP: ::c_ulong = 0x80047476; +pub const TIOCGPGRP: ::c_ulong = 0x40047477; +pub const TIOCCDTR: ::c_ulong = 0x20007478; +pub const TIOCSDTR: ::c_ulong = 0x20007479; +pub const TTYDISC: ::c_int = 0x0; +pub const SLIPDISC: ::c_int = 0x4; +pub const PPPDISC: ::c_int = 0x5; +pub const NETGRAPHDISC: ::c_int = 0x6; + +pub const BIOCGRSIG: ::c_ulong = 0x40044272; +pub const BIOCSRSIG: ::c_ulong = 0x80044273; +pub const BIOCSDLT: ::c_ulong = 0x80044278; +pub const BIOCGSEESENT: ::c_ulong = 0x40044276; +pub const BIOCSSEESENT: ::c_ulong = 0x80044277; +pub const BIOCSETF: ::c_ulong = 0x80104267; +pub const BIOCGDLTLIST: ::c_ulong = 0xc0104279; +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; + +pub const FIODTYPE: ::c_ulong = 0x4004667a; +pub const FIOGETLBA: ::c_ulong = 0x40046679; + +pub const B0: speed_t = 0; +pub const B50: speed_t = 50; +pub const B75: speed_t = 75; +pub const B110: speed_t = 110; +pub const B134: speed_t = 134; +pub const B150: speed_t = 150; +pub const B200: speed_t = 200; +pub const B300: speed_t = 300; +pub const B600: speed_t = 600; +pub const B1200: speed_t = 1200; +pub const B1800: speed_t = 1800; +pub const B2400: speed_t = 2400; +pub const B4800: speed_t = 4800; +pub const B9600: speed_t = 9600; +pub const B19200: speed_t = 19200; +pub const B38400: speed_t = 38400; +pub const B7200: speed_t = 7200; +pub const B14400: speed_t = 14400; +pub const B28800: speed_t = 28800; +pub const B57600: speed_t = 57600; +pub const B76800: speed_t = 76800; +pub const B115200: speed_t = 115200; +pub const B230400: speed_t = 230400; +pub const EXTA: speed_t = 19200; +pub const EXTB: speed_t = 38400; + +pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; + +pub const CRTSCTS: ::tcflag_t = 0x00030000; +pub const CCTS_OFLOW: ::tcflag_t = 0x00010000; +pub const CRTS_IFLOW: ::tcflag_t = 0x00020000; +pub const CDTR_IFLOW: ::tcflag_t = 0x00040000; +pub const CDSR_OFLOW: ::tcflag_t = 0x00080000; +pub const CCAR_OFLOW: ::tcflag_t = 0x00100000; +pub const VERASE2: usize = 7; +pub const OCRNL: ::tcflag_t = 0x10; +pub const ONOCR: ::tcflag_t = 0x20; +pub const ONLRET: ::tcflag_t = 0x40; + +pub const CMGROUP_MAX: usize = 16; + +pub const EUI64_LEN: usize = 8; + +// https://github.com/freebsd/freebsd/blob/HEAD/sys/net/bpf.h +pub const BPF_ALIGNMENT: usize = SIZEOF_LONG; + +// Values for rtprio struct (prio field) and syscall (function argument) +pub const RTP_PRIO_MIN: ::c_ushort = 0; +pub const RTP_PRIO_MAX: ::c_ushort = 31; +pub const RTP_LOOKUP: ::c_int = 0; +pub const RTP_SET: ::c_int = 1; + +// Flags for chflags(2) +pub const UF_SETTABLE: ::c_ulong = 0x0000ffff; +pub const UF_NODUMP: ::c_ulong = 0x00000001; +pub const UF_IMMUTABLE: ::c_ulong = 0x00000002; +pub const UF_APPEND: ::c_ulong = 0x00000004; +pub const UF_OPAQUE: ::c_ulong = 0x00000008; +pub const UF_NOUNLINK: ::c_ulong = 0x00000010; +pub const SF_SETTABLE: ::c_ulong = 0xffff0000; +pub const SF_ARCHIVED: ::c_ulong = 0x00010000; +pub const SF_IMMUTABLE: ::c_ulong = 0x00020000; +pub const SF_APPEND: ::c_ulong = 0x00040000; +pub const SF_NOUNLINK: ::c_ulong = 0x00100000; + +pub const TIMER_ABSTIME: ::c_int = 1; + +// +pub const NTP_API: ::c_int = 4; +pub const MAXPHASE: ::c_long = 500000000; +pub const MAXFREQ: ::c_long = 500000; +pub const MINSEC: ::c_int = 256; +pub const MAXSEC: ::c_int = 2048; +pub const NANOSECOND: ::c_long = 1000000000; +pub const SCALE_PPM: ::c_int = 65; +pub const MAXTC: ::c_int = 10; +pub const MOD_OFFSET: ::c_uint = 0x0001; +pub const MOD_FREQUENCY: ::c_uint = 0x0002; +pub const MOD_MAXERROR: ::c_uint = 0x0004; +pub const MOD_ESTERROR: ::c_uint = 0x0008; +pub const MOD_STATUS: ::c_uint = 0x0010; +pub const MOD_TIMECONST: ::c_uint = 0x0020; +pub const MOD_PPSMAX: ::c_uint = 0x0040; +pub const MOD_TAI: ::c_uint = 0x0080; +pub const MOD_MICRO: ::c_uint = 0x1000; +pub const MOD_NANO: ::c_uint = 0x2000; +pub const MOD_CLKB: ::c_uint = 0x4000; +pub const MOD_CLKA: ::c_uint = 0x8000; +pub const STA_PLL: ::c_int = 0x0001; +pub const STA_PPSFREQ: ::c_int = 0x0002; +pub const STA_PPSTIME: ::c_int = 0x0004; +pub const STA_FLL: ::c_int = 0x0008; +pub const STA_INS: ::c_int = 0x0010; +pub const STA_DEL: ::c_int = 0x0020; +pub const STA_UNSYNC: ::c_int = 0x0040; +pub const STA_FREQHOLD: ::c_int = 0x0080; +pub const STA_PPSSIGNAL: ::c_int = 0x0100; +pub const STA_PPSJITTER: ::c_int = 0x0200; +pub const STA_PPSWANDER: ::c_int = 0x0400; +pub const STA_PPSERROR: ::c_int = 0x0800; +pub const STA_CLOCKERR: ::c_int = 0x1000; +pub const STA_NANO: ::c_int = 0x2000; +pub const STA_MODE: ::c_int = 0x4000; +pub const STA_CLK: ::c_int = 0x8000; +pub const STA_RONLY: ::c_int = STA_PPSSIGNAL + | STA_PPSJITTER + | STA_PPSWANDER + | STA_PPSERROR + | STA_CLOCKERR + | STA_NANO + | STA_MODE + | STA_CLK; +pub const TIME_OK: ::c_int = 0; +pub const TIME_INS: ::c_int = 1; +pub const TIME_DEL: ::c_int = 2; +pub const TIME_OOP: ::c_int = 3; +pub const TIME_WAIT: ::c_int = 4; +pub const TIME_ERROR: ::c_int = 5; + +pub const REG_ENOSYS: ::c_int = -1; +pub const REG_ILLSEQ: ::c_int = 17; + +pub const IPC_PRIVATE: ::key_t = 0; +pub const IPC_CREAT: ::c_int = 0o1000; +pub const IPC_EXCL: ::c_int = 0o2000; +pub const IPC_NOWAIT: ::c_int = 0o4000; +pub const IPC_RMID: ::c_int = 0; +pub const IPC_SET: ::c_int = 1; +pub const IPC_STAT: ::c_int = 2; +pub const IPC_R: ::c_int = 0o400; +pub const IPC_W: ::c_int = 0o200; +pub const IPC_M: ::c_int = 0o10000; + +pub const SHM_RDONLY: ::c_int = 0o10000; +pub const SHM_RND: ::c_int = 0o20000; +pub const SHM_R: ::c_int = 0o400; +pub const SHM_W: ::c_int = 0o200; + +pub const KENV_GET: ::c_int = 0; +pub const KENV_SET: ::c_int = 1; +pub const KENV_UNSET: ::c_int = 2; +pub const KENV_DUMP: ::c_int = 3; +pub const KENV_MNAMELEN: ::c_int = 128; +pub const KENV_MVALLEN: ::c_int = 128; + +pub const RB_ASKNAME: ::c_int = 0x001; +pub const RB_SINGLE: ::c_int = 0x002; +pub const RB_NOSYNC: ::c_int = 0x004; +pub const RB_HALT: ::c_int = 0x008; +pub const RB_INITNAME: ::c_int = 0x010; +pub const RB_DFLTROOT: ::c_int = 0x020; +pub const RB_KDB: ::c_int = 0x040; +pub const RB_RDONLY: ::c_int = 0x080; +pub const RB_DUMP: ::c_int = 0x100; +pub const RB_MINIROOT: ::c_int = 0x200; +pub const RB_VERBOSE: ::c_int = 0x800; +pub const RB_SERIAL: ::c_int = 0x1000; +pub const RB_CDROM: ::c_int = 0x2000; +pub const RB_POWEROFF: ::c_int = 0x4000; +pub const RB_GDB: ::c_int = 0x8000; +pub const RB_MUTE: ::c_int = 0x10000; +pub const RB_SELFTEST: ::c_int = 0x20000; + +safe_f! { + pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + status == 0x13 + } + + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + status >> 8 + } + + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + (status & 0o177) == 0o177 + } +} + +extern "C" { + pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; + pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + + pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn accept4( + s: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn chflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; + pub fn chflagsat( + fd: ::c_int, + path: *const ::c_char, + flags: ::c_ulong, + atflag: ::c_int, + ) -> ::c_int; + + pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; + + pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; + + pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + pub fn duplocale(base: ::locale_t) -> ::locale_t; + pub fn endutxent(); + pub fn fchflags(fd: ::c_int, flags: ::c_ulong) -> ::c_int; + pub fn fexecve( + fd: ::c_int, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int; + pub fn getgrent_r( + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn getpwent_r( + pwd: *mut ::passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::passwd, + ) -> ::c_int; + pub fn getgrouplist( + name: *const ::c_char, + basegid: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::size_t, + serv: *mut ::c_char, + servlen: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn getpriority(which: ::c_int, who: ::c_int) -> ::c_int; + pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; + pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; + pub fn getutxent() -> *mut utmpx; + pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; + #[cfg_attr( + all(target_os = "freebsd", any(freebsd11, freebsd10)), + link_name = "kevent@FBSD_1.0" + )] + pub fn kevent( + kq: ::c_int, + changelist: *const ::kevent, + nchanges: ::c_int, + eventlist: *mut ::kevent, + nevents: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn lchflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; + pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; + pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; + pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + #[cfg_attr( + all(target_os = "freebsd", any(freebsd11, freebsd10)), + link_name = "mknodat@FBSD_1.1" + )] + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + pub fn malloc_usable_size(ptr: *const ::c_void) -> ::size_t; + pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; + pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; + pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; + pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; + pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; + pub fn ppoll( + fds: *mut ::pollfd, + nfds: ::nfds_t, + timeout: *const ::timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; + pub fn pthread_attr_get_np(tid: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_getpshared( + attr: *const pthread_condattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_main_np() -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn pthread_mutexattr_getpshared( + attr: *const pthread_mutexattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setpshared( + attr: *mut pthread_mutexattr_t, + pshared: ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_getpshared( + attr: *const pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; + pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_getpshared( + attr: *const ::pthread_barrierattr_t, + shared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_barrierattr_setpshared( + attr: *mut ::pthread_barrierattr_t, + shared: ::c_int, + ) -> ::c_int; + pub fn pthread_barrier_init( + barrier: *mut pthread_barrier_t, + attr: *const ::pthread_barrierattr_t, + count: ::c_uint, + ) -> ::c_int; + pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; + pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; + pub fn pthread_get_name_np(tid: ::pthread_t, name: *mut ::c_char, len: ::size_t); + pub fn pthread_set_name_np(tid: ::pthread_t, name: *const ::c_char); + pub fn pthread_setschedparam( + native: ::pthread_t, + policy: ::c_int, + param: *const sched_param, + ) -> ::c_int; + pub fn pthread_getschedparam( + native: ::pthread_t, + policy: *mut ::c_int, + param: *mut sched_param, + ) -> ::c_int; + pub fn ptrace(request: ::c_int, pid: ::pid_t, addr: *mut ::c_char, data: ::c_int) -> ::c_int; + pub fn utrace(addr: *const ::c_void, len: ::size_t) -> ::c_int; + pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) + -> ::ssize_t; + pub fn querylocale(mask: ::c_int, loc: ::locale_t) -> *const ::c_char; + pub fn rtprio(function: ::c_int, pid: ::pid_t, rtp: *mut rtprio) -> ::c_int; + pub fn sched_rr_get_interval(pid: ::pid_t, t: *mut ::timespec) -> ::c_int; + pub fn sched_getparam(pid: ::pid_t, param: *mut sched_param) -> ::c_int; + pub fn sched_setparam(pid: ::pid_t, param: *const sched_param) -> ::c_int; + pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; + pub fn sendfile( + fd: ::c_int, + s: ::c_int, + offset: ::off_t, + nbytes: ::size_t, + hdtr: *mut ::sf_hdtr, + sbytes: *mut ::off_t, + flags: ::c_int, + ) -> ::c_int; + pub fn setdomainname(name: *const ::c_char, len: ::c_int) -> ::c_int; + pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; + pub fn setpriority(which: ::c_int, who: ::c_int, prio: ::c_int) -> ::c_int; + pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; + pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; + pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + pub fn setutxent(); + pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + pub fn sysctl( + name: *const ::c_int, + namelen: ::c_uint, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *const ::c_void, + newlen: ::size_t, + ) -> ::c_int; + pub fn sysctlbyname( + name: *const ::c_char, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *const ::c_void, + newlen: ::size_t, + ) -> ::c_int; + pub fn sysctlnametomib( + name: *const ::c_char, + mibp: *mut ::c_int, + sizep: *mut ::size_t, + ) -> ::c_int; + pub fn uselocale(loc: ::locale_t) -> ::locale_t; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; + + pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; + pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; + + // #include + pub fn dl_iterate_phdr( + callback: ::Option< + unsafe extern "C" fn( + info: *mut dl_phdr_info, + size: usize, + data: *mut ::c_void, + ) -> ::c_int, + >, + data: *mut ::c_void, + ) -> ::c_int; + + pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; + pub fn iconv( + cd: iconv_t, + inbuf: *mut *mut ::c_char, + inbytesleft: *mut ::size_t, + outbuf: *mut *mut ::c_char, + outbytesleft: *mut ::size_t, + ) -> ::size_t; + pub fn iconv_close(cd: iconv_t) -> ::c_int; + + // Added in `FreeBSD` 11.0 + // Added in `DragonFly BSD` 5.4 + pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t); + // ISO/IEC 9899:2011 ("ISO C11") K.3.7.4.1 + pub fn memset_s(s: *mut ::c_void, smax: ::size_t, c: ::c_int, n: ::size_t) -> ::c_int; + pub fn gethostid() -> ::c_long; + pub fn sethostid(hostid: ::c_long); + + pub fn eui64_aton(a: *const ::c_char, e: *mut eui64) -> ::c_int; + pub fn eui64_ntoa(id: *const eui64, a: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn eui64_ntohost(hostname: *mut ::c_char, len: ::size_t, id: *const eui64) -> ::c_int; + pub fn eui64_hostton(hostname: *const ::c_char, id: *mut eui64) -> ::c_int; + + pub fn eaccess(path: *const ::c_char, mode: ::c_int) -> ::c_int; + + pub fn kenv( + action: ::c_int, + name: *const ::c_char, + value: *mut ::c_char, + len: ::c_int, + ) -> ::c_int; + pub fn reboot(howto: ::c_int) -> ::c_int; +} + +#[link(name = "rt")] +extern "C" { + pub fn mq_close(mqd: ::mqd_t) -> ::c_int; + pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; + pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) -> ::c_int; + pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; + pub fn mq_receive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + ) -> ::ssize_t; + pub fn mq_send( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + ) -> ::c_int; + pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; + pub fn mq_timedreceive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::ssize_t; + pub fn mq_timedsend( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::c_int; + pub fn mq_unlink(name: *const ::c_char) -> ::c_int; +} + +#[link(name = "util")] +extern "C" { + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::c_int; + pub fn forkpty( + amaster: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::pid_t; + pub fn login_tty(fd: ::c_int) -> ::c_int; + pub fn fparseln( + stream: *mut ::FILE, + len: *mut ::size_t, + lineno: *mut ::size_t, + delim: *const ::c_char, + flags: ::c_int, + ) -> *mut ::c_char; +} + +#[link(name = "execinfo")] +extern "C" { + pub fn backtrace(addrlist: *mut *mut ::c_void, len: ::size_t) -> ::size_t; + pub fn backtrace_symbols(addrlist: *const *mut ::c_void, len: ::size_t) -> *mut *mut ::c_char; + pub fn backtrace_symbols_fd( + addrlist: *const *mut ::c_void, + len: ::size_t, + fd: ::c_int, + ) -> ::c_int; +} + +#[link(name = "kvm")] +extern "C" { + pub fn kvm_open( + execfile: *const ::c_char, + corefile: *const ::c_char, + swapfile: *const ::c_char, + flags: ::c_int, + errstr: *const ::c_char, + ) -> *mut ::kvm_t; + pub fn kvm_close(kd: *mut ::kvm_t) -> ::c_int; + pub fn kvm_getprocs( + kd: *mut ::kvm_t, + op: ::c_int, + arg: ::c_int, + cnt: *mut ::c_int, + ) -> *mut ::kinfo_proc; + pub fn kvm_getloadavg(kd: *mut kvm_t, loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; + pub fn kvm_openfiles( + execfile: *const ::c_char, + corefile: *const ::c_char, + swapfile: *const ::c_char, + flags: ::c_int, + errbuf: *mut ::c_char, + ) -> *mut ::kvm_t; + pub fn kvm_read( + kd: *mut ::kvm_t, + addr: ::c_ulong, + buf: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn kvm_write( + kd: *mut ::kvm_t, + addr: ::c_ulong, + buf: *const ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; +} + +cfg_if! { + if #[cfg(target_os = "freebsd")] { + mod freebsd; + pub use self::freebsd::*; + } else if #[cfg(target_os = "dragonfly")] { + mod dragonfly; + pub use self::dragonfly::*; + } else { + // ... + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/mod.rs new file mode 100644 index 000000000..6ce041357 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/mod.rs @@ -0,0 +1,917 @@ +pub type off_t = i64; +pub type useconds_t = u32; +pub type blkcnt_t = i64; +pub type socklen_t = u32; +pub type sa_family_t = u8; +pub type pthread_t = ::uintptr_t; +pub type nfds_t = ::c_uint; +pub type regoff_t = off_t; + +s! { + pub struct sockaddr { + pub sa_len: u8, + pub sa_family: sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_in6 { + pub sin6_len: u8, + pub sin6_family: sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct passwd { + pub pw_name: *mut ::c_char, + pub pw_passwd: *mut ::c_char, + pub pw_uid: ::uid_t, + pub pw_gid: ::gid_t, + pub pw_change: ::time_t, + pub pw_class: *mut ::c_char, + pub pw_gecos: *mut ::c_char, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char, + pub pw_expire: ::time_t, + + #[cfg(not(any(target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos", + target_os = "netbsd", + target_os = "openbsd")))] + pub pw_fields: ::c_int, + } + + pub struct ifaddrs { + pub ifa_next: *mut ifaddrs, + pub ifa_name: *mut ::c_char, + pub ifa_flags: ::c_uint, + pub ifa_addr: *mut ::sockaddr, + pub ifa_netmask: *mut ::sockaddr, + pub ifa_dstaddr: *mut ::sockaddr, + pub ifa_data: *mut ::c_void, + #[cfg(target_os = "netbsd")] + pub ifa_addrflags: ::c_uint + } + + pub struct fd_set { + #[cfg(all(target_pointer_width = "64", + any(target_os = "freebsd", target_os = "dragonfly")))] + fds_bits: [i64; FD_SETSIZE / 64], + #[cfg(not(all(target_pointer_width = "64", + any(target_os = "freebsd", target_os = "dragonfly"))))] + fds_bits: [i32; FD_SETSIZE / 32], + } + + pub struct tm { + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int, + pub tm_gmtoff: ::c_long, + pub tm_zone: *mut ::c_char, + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::socklen_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: ::socklen_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct fsid_t { + __fsid_val: [i32; 2], + } + + pub struct if_nameindex { + pub if_index: ::c_uint, + pub if_name: *mut ::c_char, + } + + pub struct regex_t { + __re_magic: ::c_int, + __re_nsub: ::size_t, + __re_endp: *const ::c_char, + __re_g: *mut ::c_void, + } + + pub struct regmatch_t { + pub rm_so: regoff_t, + pub rm_eo: regoff_t, + } + + pub struct option { + pub name: *const ::c_char, + pub has_arg: ::c_int, + pub flag: *mut ::c_int, + pub val: ::c_int, + } +} + +s_no_extra_traits! { + pub struct sockaddr_un { + pub sun_len: u8, + pub sun_family: sa_family_t, + pub sun_path: [c_char; 104] + } + + pub struct utsname { + #[cfg(not(target_os = "dragonfly"))] + pub sysname: [::c_char; 256], + #[cfg(target_os = "dragonfly")] + pub sysname: [::c_char; 32], + #[cfg(not(target_os = "dragonfly"))] + pub nodename: [::c_char; 256], + #[cfg(target_os = "dragonfly")] + pub nodename: [::c_char; 32], + #[cfg(not(target_os = "dragonfly"))] + pub release: [::c_char; 256], + #[cfg(target_os = "dragonfly")] + pub release: [::c_char; 32], + #[cfg(not(target_os = "dragonfly"))] + pub version: [::c_char; 256], + #[cfg(target_os = "dragonfly")] + pub version: [::c_char; 32], + #[cfg(not(target_os = "dragonfly"))] + pub machine: [::c_char; 256], + #[cfg(target_os = "dragonfly")] + pub machine: [::c_char; 32], + } + +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for sockaddr_un { + fn eq(&self, other: &sockaddr_un) -> bool { + self.sun_len == other.sun_len + && self.sun_family == other.sun_family + && self + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for sockaddr_un {} + + impl ::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_un") + .field("sun_len", &self.sun_len) + .field("sun_family", &self.sun_family) + // FIXME: .field("sun_path", &self.sun_path) + .finish() + } + } + + impl ::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { + self.sun_len.hash(state); + self.sun_family.hash(state); + self.sun_path.hash(state); + } + } + + impl PartialEq for utsname { + fn eq(&self, other: &utsname) -> bool { + self.sysname + .iter() + .zip(other.sysname.iter()) + .all(|(a,b)| a == b) + && self + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a,b)| a == b) + && self + .release + .iter() + .zip(other.release.iter()) + .all(|(a,b)| a == b) + && self + .version + .iter() + .zip(other.version.iter()) + .all(|(a,b)| a == b) + && self + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for utsname {} + + impl ::fmt::Debug for utsname { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utsname") + // FIXME: .field("sysname", &self.sysname) + // FIXME: .field("nodename", &self.nodename) + // FIXME: .field("release", &self.release) + // FIXME: .field("version", &self.version) + // FIXME: .field("machine", &self.machine) + .finish() + } + } + + impl ::hash::Hash for utsname { + fn hash(&self, state: &mut H) { + self.sysname.hash(state); + self.nodename.hash(state); + self.release.hash(state); + self.version.hash(state); + self.machine.hash(state); + } + } + } +} + +pub const LC_ALL: ::c_int = 0; +pub const LC_COLLATE: ::c_int = 1; +pub const LC_CTYPE: ::c_int = 2; +pub const LC_MONETARY: ::c_int = 3; +pub const LC_NUMERIC: ::c_int = 4; +pub const LC_TIME: ::c_int = 5; +pub const LC_MESSAGES: ::c_int = 6; + +pub const FIOCLEX: ::c_ulong = 0x20006601; +pub const FIONCLEX: ::c_ulong = 0x20006602; +pub const FIONREAD: ::c_ulong = 0x4004667f; +pub const FIONBIO: ::c_ulong = 0x8004667e; +pub const FIOASYNC: ::c_ulong = 0x8004667d; +pub const FIOSETOWN: ::c_ulong = 0x8004667c; +pub const FIOGETOWN: ::c_ulong = 0x4004667b; + +pub const PATH_MAX: ::c_int = 1024; +pub const MAXPATHLEN: ::c_int = PATH_MAX; + +pub const IOV_MAX: ::c_int = 1024; + +pub const SA_ONSTACK: ::c_int = 0x0001; +pub const SA_SIGINFO: ::c_int = 0x0040; +pub const SA_RESTART: ::c_int = 0x0002; +pub const SA_RESETHAND: ::c_int = 0x0004; +pub const SA_NOCLDSTOP: ::c_int = 0x0008; +pub const SA_NODEFER: ::c_int = 0x0010; +pub const SA_NOCLDWAIT: ::c_int = 0x0020; + +pub const SS_ONSTACK: ::c_int = 1; +pub const SS_DISABLE: ::c_int = 4; + +pub const SIGCHLD: ::c_int = 20; +pub const SIGBUS: ::c_int = 10; +pub const SIGUSR1: ::c_int = 30; +pub const SIGUSR2: ::c_int = 31; +pub const SIGCONT: ::c_int = 19; +pub const SIGSTOP: ::c_int = 17; +pub const SIGTSTP: ::c_int = 18; +pub const SIGURG: ::c_int = 16; +pub const SIGIO: ::c_int = 23; +pub const SIGSYS: ::c_int = 12; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGINFO: ::c_int = 29; + +pub const SIG_SETMASK: ::c_int = 3; +pub const SIG_BLOCK: ::c_int = 0x1; +pub const SIG_UNBLOCK: ::c_int = 0x2; + +pub const IP_TOS: ::c_int = 3; +pub const IP_MULTICAST_IF: ::c_int = 9; +pub const IP_MULTICAST_TTL: ::c_int = 10; +pub const IP_MULTICAST_LOOP: ::c_int = 11; + +pub const IPV6_UNICAST_HOPS: ::c_int = 4; +pub const IPV6_MULTICAST_IF: ::c_int = 9; +pub const IPV6_MULTICAST_HOPS: ::c_int = 10; +pub const IPV6_MULTICAST_LOOP: ::c_int = 11; +pub const IPV6_V6ONLY: ::c_int = 27; + +pub const IPTOS_ECN_NOTECT: u8 = 0x00; +pub const IPTOS_ECN_MASK: u8 = 0x03; +pub const IPTOS_ECN_ECT1: u8 = 0x01; +pub const IPTOS_ECN_ECT0: u8 = 0x02; +pub const IPTOS_ECN_CE: u8 = 0x03; + +pub const ST_RDONLY: ::c_ulong = 1; + +pub const SCM_RIGHTS: ::c_int = 0x01; + +pub const NCCS: usize = 20; + +pub const O_ACCMODE: ::c_int = 0x3; +pub const O_RDONLY: ::c_int = 0; +pub const O_WRONLY: ::c_int = 1; +pub const O_RDWR: ::c_int = 2; +pub const O_APPEND: ::c_int = 8; +pub const O_CREAT: ::c_int = 512; +pub const O_TRUNC: ::c_int = 1024; +pub const O_EXCL: ::c_int = 2048; +pub const O_ASYNC: ::c_int = 0x40; +pub const O_SYNC: ::c_int = 0x80; +pub const O_NONBLOCK: ::c_int = 0x4; +pub const O_NOFOLLOW: ::c_int = 0x100; +pub const O_SHLOCK: ::c_int = 0x10; +pub const O_EXLOCK: ::c_int = 0x20; +pub const O_FSYNC: ::c_int = O_SYNC; +pub const O_NDELAY: ::c_int = O_NONBLOCK; + +pub const F_GETOWN: ::c_int = 5; +pub const F_SETOWN: ::c_int = 6; + +pub const F_RDLCK: ::c_short = 1; +pub const F_UNLCK: ::c_short = 2; +pub const F_WRLCK: ::c_short = 3; + +pub const MNT_RDONLY: ::c_int = 0x00000001; +pub const MNT_SYNCHRONOUS: ::c_int = 0x00000002; +pub const MNT_NOEXEC: ::c_int = 0x00000004; +pub const MNT_NOSUID: ::c_int = 0x00000008; +pub const MNT_ASYNC: ::c_int = 0x00000040; +pub const MNT_EXPORTED: ::c_int = 0x00000100; +pub const MNT_UPDATE: ::c_int = 0x00010000; +pub const MNT_RELOAD: ::c_int = 0x00040000; +pub const MNT_FORCE: ::c_int = 0x00080000; + +pub const Q_SYNC: ::c_int = 0x600; +pub const Q_QUOTAON: ::c_int = 0x100; +pub const Q_QUOTAOFF: ::c_int = 0x200; + +pub const TCIOFF: ::c_int = 3; +pub const TCION: ::c_int = 4; +pub const TCOOFF: ::c_int = 1; +pub const TCOON: ::c_int = 2; +pub const TCIFLUSH: ::c_int = 1; +pub const TCOFLUSH: ::c_int = 2; +pub const TCIOFLUSH: ::c_int = 3; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; +pub const VEOF: usize = 0; +pub const VEOL: usize = 1; +pub const VEOL2: usize = 2; +pub const VERASE: usize = 3; +pub const VWERASE: usize = 4; +pub const VKILL: usize = 5; +pub const VREPRINT: usize = 6; +pub const VINTR: usize = 8; +pub const VQUIT: usize = 9; +pub const VSUSP: usize = 10; +pub const VDSUSP: usize = 11; +pub const VSTART: usize = 12; +pub const VSTOP: usize = 13; +pub const VLNEXT: usize = 14; +pub const VDISCARD: usize = 15; +pub const VMIN: usize = 16; +pub const VTIME: usize = 17; +pub const VSTATUS: usize = 18; +pub const _POSIX_VDISABLE: ::cc_t = 0xff; +pub const IGNBRK: ::tcflag_t = 0x00000001; +pub const BRKINT: ::tcflag_t = 0x00000002; +pub const IGNPAR: ::tcflag_t = 0x00000004; +pub const PARMRK: ::tcflag_t = 0x00000008; +pub const INPCK: ::tcflag_t = 0x00000010; +pub const ISTRIP: ::tcflag_t = 0x00000020; +pub const INLCR: ::tcflag_t = 0x00000040; +pub const IGNCR: ::tcflag_t = 0x00000080; +pub const ICRNL: ::tcflag_t = 0x00000100; +pub const IXON: ::tcflag_t = 0x00000200; +pub const IXOFF: ::tcflag_t = 0x00000400; +pub const IXANY: ::tcflag_t = 0x00000800; +pub const IMAXBEL: ::tcflag_t = 0x00002000; +pub const OPOST: ::tcflag_t = 0x1; +pub const ONLCR: ::tcflag_t = 0x2; +pub const OXTABS: ::tcflag_t = 0x4; +pub const ONOEOT: ::tcflag_t = 0x8; +pub const CIGNORE: ::tcflag_t = 0x00000001; +pub const CSIZE: ::tcflag_t = 0x00000300; +pub const CS5: ::tcflag_t = 0x00000000; +pub const CS6: ::tcflag_t = 0x00000100; +pub const CS7: ::tcflag_t = 0x00000200; +pub const CS8: ::tcflag_t = 0x00000300; +pub const CSTOPB: ::tcflag_t = 0x00000400; +pub const CREAD: ::tcflag_t = 0x00000800; +pub const PARENB: ::tcflag_t = 0x00001000; +pub const PARODD: ::tcflag_t = 0x00002000; +pub const HUPCL: ::tcflag_t = 0x00004000; +pub const CLOCAL: ::tcflag_t = 0x00008000; +pub const ECHOKE: ::tcflag_t = 0x00000001; +pub const ECHOE: ::tcflag_t = 0x00000002; +pub const ECHOK: ::tcflag_t = 0x00000004; +pub const ECHO: ::tcflag_t = 0x00000008; +pub const ECHONL: ::tcflag_t = 0x00000010; +pub const ECHOPRT: ::tcflag_t = 0x00000020; +pub const ECHOCTL: ::tcflag_t = 0x00000040; +pub const ISIG: ::tcflag_t = 0x00000080; +pub const ICANON: ::tcflag_t = 0x00000100; +pub const ALTWERASE: ::tcflag_t = 0x00000200; +pub const IEXTEN: ::tcflag_t = 0x00000400; +pub const EXTPROC: ::tcflag_t = 0x00000800; +pub const TOSTOP: ::tcflag_t = 0x00400000; +pub const FLUSHO: ::tcflag_t = 0x00800000; +pub const NOKERNINFO: ::tcflag_t = 0x02000000; +pub const PENDIN: ::tcflag_t = 0x20000000; +pub const NOFLSH: ::tcflag_t = 0x80000000; +pub const MDMBUF: ::tcflag_t = 0x00100000; + +pub const WNOHANG: ::c_int = 0x00000001; +pub const WUNTRACED: ::c_int = 0x00000002; + +pub const RTLD_LAZY: ::c_int = 0x1; +pub const RTLD_NOW: ::c_int = 0x2; +pub const RTLD_NEXT: *mut ::c_void = -1isize as *mut ::c_void; +pub const RTLD_DEFAULT: *mut ::c_void = -2isize as *mut ::c_void; +pub const RTLD_SELF: *mut ::c_void = -3isize as *mut ::c_void; + +pub const LOG_CRON: ::c_int = 9 << 3; +pub const LOG_AUTHPRIV: ::c_int = 10 << 3; +pub const LOG_FTP: ::c_int = 11 << 3; +pub const LOG_PERROR: ::c_int = 0x20; + +pub const TCP_NODELAY: ::c_int = 1; +pub const TCP_MAXSEG: ::c_int = 2; + +pub const PIPE_BUF: usize = 512; + +// si_code values for SIGBUS signal +pub const BUS_ADRALN: ::c_int = 1; +pub const BUS_ADRERR: ::c_int = 2; +pub const BUS_OBJERR: ::c_int = 3; + +// si_code values for SIGCHLD signal +pub const CLD_EXITED: ::c_int = 1; +pub const CLD_KILLED: ::c_int = 2; +pub const CLD_DUMPED: ::c_int = 3; +pub const CLD_TRAPPED: ::c_int = 4; +pub const CLD_STOPPED: ::c_int = 5; +pub const CLD_CONTINUED: ::c_int = 6; + +pub const POLLIN: ::c_short = 0x1; +pub const POLLPRI: ::c_short = 0x2; +pub const POLLOUT: ::c_short = 0x4; +pub const POLLERR: ::c_short = 0x8; +pub const POLLHUP: ::c_short = 0x10; +pub const POLLNVAL: ::c_short = 0x20; +pub const POLLRDNORM: ::c_short = 0x040; +pub const POLLWRNORM: ::c_short = 0x004; +pub const POLLRDBAND: ::c_short = 0x080; +pub const POLLWRBAND: ::c_short = 0x100; + +pub const BIOCGBLEN: ::c_ulong = 0x40044266; +pub const BIOCSBLEN: ::c_ulong = 0xc0044266; +pub const BIOCFLUSH: ::c_uint = 0x20004268; +pub const BIOCPROMISC: ::c_uint = 0x20004269; +pub const BIOCGDLT: ::c_ulong = 0x4004426a; +pub const BIOCGETIF: ::c_ulong = 0x4020426b; +pub const BIOCSETIF: ::c_ulong = 0x8020426c; +pub const BIOCGSTATS: ::c_ulong = 0x4008426f; +pub const BIOCIMMEDIATE: ::c_ulong = 0x80044270; +pub const BIOCVERSION: ::c_ulong = 0x40044271; +pub const BIOCGHDRCMPLT: ::c_ulong = 0x40044274; +pub const BIOCSHDRCMPLT: ::c_ulong = 0x80044275; +pub const SIOCGIFADDR: ::c_ulong = 0xc0206921; + +pub const REG_BASIC: ::c_int = 0o0000; +pub const REG_EXTENDED: ::c_int = 0o0001; +pub const REG_ICASE: ::c_int = 0o0002; +pub const REG_NOSUB: ::c_int = 0o0004; +pub const REG_NEWLINE: ::c_int = 0o0010; +pub const REG_NOSPEC: ::c_int = 0o0020; +pub const REG_PEND: ::c_int = 0o0040; +pub const REG_DUMP: ::c_int = 0o0200; + +pub const REG_NOMATCH: ::c_int = 1; +pub const REG_BADPAT: ::c_int = 2; +pub const REG_ECOLLATE: ::c_int = 3; +pub const REG_ECTYPE: ::c_int = 4; +pub const REG_EESCAPE: ::c_int = 5; +pub const REG_ESUBREG: ::c_int = 6; +pub const REG_EBRACK: ::c_int = 7; +pub const REG_EPAREN: ::c_int = 8; +pub const REG_EBRACE: ::c_int = 9; +pub const REG_BADBR: ::c_int = 10; +pub const REG_ERANGE: ::c_int = 11; +pub const REG_ESPACE: ::c_int = 12; +pub const REG_BADRPT: ::c_int = 13; +pub const REG_EMPTY: ::c_int = 14; +pub const REG_ASSERT: ::c_int = 15; +pub const REG_INVARG: ::c_int = 16; +pub const REG_ATOI: ::c_int = 255; +pub const REG_ITOA: ::c_int = 0o0400; + +pub const REG_NOTBOL: ::c_int = 0o00001; +pub const REG_NOTEOL: ::c_int = 0o00002; +pub const REG_STARTEND: ::c_int = 0o00004; +pub const REG_TRACE: ::c_int = 0o00400; +pub const REG_LARGE: ::c_int = 0o01000; +pub const REG_BACKR: ::c_int = 0o02000; + +pub const TIOCCBRK: ::c_uint = 0x2000747a; +pub const TIOCSBRK: ::c_uint = 0x2000747b; + +pub const PRIO_PROCESS: ::c_int = 0; +pub const PRIO_PGRP: ::c_int = 1; +pub const PRIO_USER: ::c_int = 2; + +pub const ITIMER_REAL: ::c_int = 0; +pub const ITIMER_VIRTUAL: ::c_int = 1; +pub const ITIMER_PROF: ::c_int = 2; + +f! { + pub fn CMSG_FIRSTHDR(mhdr: *const ::msghdr) -> *mut ::cmsghdr { + if (*mhdr).msg_controllen as usize >= ::mem::size_of::<::cmsghdr>() { + (*mhdr).msg_control as *mut ::cmsghdr + } else { + 0 as *mut ::cmsghdr + } + } + + pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let fd = fd as usize; + (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); + return + } + + pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let fd = fd as usize; + return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0 + } + + pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let fd = fd as usize; + (*set).fds_bits[fd / bits] |= 1 << (fd % bits); + return + } + + pub fn FD_ZERO(set: *mut fd_set) -> () { + for slot in (*set).fds_bits.iter_mut() { + *slot = 0; + } + } +} + +safe_f! { + pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + status & 0o177 + } + + pub {const} fn WIFEXITED(status: ::c_int) -> bool { + (status & 0o177) == 0 + } + + pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + status >> 8 + } + + pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + (status & 0o200) != 0 + } + + pub {const} fn QCMD(cmd: ::c_int, type_: ::c_int) -> ::c_int { + (cmd << 8) | (type_ & 0x00ff) + } +} + +extern "C" { + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "getrlimit$UNIX2003" + )] + pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "setrlimit$UNIX2003" + )] + pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + + pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + pub fn abs(i: ::c_int) -> ::c_int; + pub fn labs(i: ::c_long) -> ::c_long; + #[cfg_attr( + all(target_os = "freebsd", any(freebsd12, freebsd11, freebsd10)), + link_name = "rand@FBSD_1.0" + )] + pub fn rand() -> ::c_int; + #[cfg_attr( + all(target_os = "freebsd", any(freebsd12, freebsd11, freebsd10)), + link_name = "srand@FBSD_1.0" + )] + pub fn srand(seed: ::c_uint); + + pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; + pub fn freeifaddrs(ifa: *mut ::ifaddrs); + pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; + pub fn setlogin(name: *const ::c_char) -> ::c_int; + pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; + pub fn kqueue() -> ::c_int; + pub fn unmount(target: *const ::c_char, arg: ::c_int) -> ::c_int; + pub fn syscall(num: ::c_int, ...) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__getpwent50")] + pub fn getpwent() -> *mut passwd; + pub fn setpwent(); + pub fn endpwent(); + pub fn endgrent(); + pub fn getgrent() -> *mut ::group; + + pub fn getprogname() -> *const ::c_char; + pub fn setprogname(name: *const ::c_char); + pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; + pub fn if_nameindex() -> *mut if_nameindex; + pub fn if_freenameindex(ptr: *mut if_nameindex); + + pub fn getpeereid(socket: ::c_int, euid: *mut ::uid_t, egid: *mut ::gid_t) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", not(target_arch = "aarch64")), + link_name = "glob$INODE64" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__glob30")] + #[cfg_attr( + all(target_os = "freebsd", any(freebsd11, freebsd10)), + link_name = "glob@FBSD_1.0" + )] + pub fn glob( + pattern: *const ::c_char, + flags: ::c_int, + errfunc: ::Option ::c_int>, + pglob: *mut ::glob_t, + ) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__globfree30")] + #[cfg_attr( + all(target_os = "freebsd", any(freebsd11, freebsd10)), + link_name = "globfree@FBSD_1.0" + )] + pub fn globfree(pglob: *mut ::glob_t); + + pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + + pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "seekdir$INODE64" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "seekdir$INODE64$UNIX2003" + )] + pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "telldir$INODE64" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "telldir$INODE64$UNIX2003" + )] + pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "msync$UNIX2003" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__msync13")] + pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "recvfrom$UNIX2003" + )] + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; + pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__futimes50")] + pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; + pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "bind$UNIX2003" + )] + pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "writev$UNIX2003" + )] + pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "readv$UNIX2003" + )] + pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sendmsg$UNIX2003" + )] + pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "recvmsg$UNIX2003" + )] + pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + + pub fn sync(); + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigaltstack$UNIX2003" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")] + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; + pub fn sem_close(sem: *mut sem_t) -> ::c_int; + pub fn getdtablesize() -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_sigmask$UNIX2003" + )] + pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; + pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_cancel$UNIX2003" + )] + pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; + pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; + pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; + pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; + pub fn sem_unlink(name: *const ::c_char) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")] + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")] + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigwait$UNIX2003" + )] + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "popen$UNIX2003" + )] + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn faccessat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + pub fn acct(filename: *const ::c_char) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "wait4$UNIX2003" + )] + #[cfg_attr( + all(target_os = "freebsd", any(freebsd12, freebsd11, freebsd10)), + link_name = "wait4@FBSD_1.0" + )] + pub fn wait4( + pid: ::pid_t, + status: *mut ::c_int, + options: ::c_int, + rusage: *mut ::rusage, + ) -> ::pid_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "getitimer$UNIX2003" + )] + pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "setitimer$UNIX2003" + )] + pub fn setitimer( + which: ::c_int, + new_value: *const ::itimerval, + old_value: *mut ::itimerval, + ) -> ::c_int; + + pub fn regcomp(preg: *mut regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; + + pub fn regexec( + preg: *const regex_t, + input: *const ::c_char, + nmatch: ::size_t, + pmatch: *mut regmatch_t, + eflags: ::c_int, + ) -> ::c_int; + + pub fn regerror( + errcode: ::c_int, + preg: *const regex_t, + errbuf: *mut ::c_char, + errbuf_size: ::size_t, + ) -> ::size_t; + + pub fn regfree(preg: *mut regex_t); + + pub fn arc4random() -> u32; + pub fn arc4random_buf(buf: *mut ::c_void, size: ::size_t); + pub fn arc4random_uniform(l: u32) -> u32; + + pub fn drand48() -> ::c_double; + pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; + pub fn lrand48() -> ::c_long; + pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; + pub fn mrand48() -> ::c_long; + pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; + pub fn srand48(seed: ::c_long); + pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; + pub fn lcong48(p: *mut ::c_ushort); + pub fn getopt_long( + argc: ::c_int, + argv: *const *mut c_char, + optstring: *const c_char, + longopts: *const option, + longindex: *mut ::c_int, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos", target_os = "watchos"))] { + mod apple; + pub use self::apple::*; + } else if #[cfg(any(target_os = "openbsd", target_os = "netbsd"))] { + mod netbsdlike; + pub use self::netbsdlike::*; + } else if #[cfg(any(target_os = "freebsd", target_os = "dragonfly"))] { + mod freebsdlike; + pub use self::freebsdlike::*; + } else { + // Unknown target_os + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/mod.rs new file mode 100644 index 000000000..c43a4b9e8 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/mod.rs @@ -0,0 +1,762 @@ +pub type wchar_t = i32; +pub type time_t = i64; +pub type mode_t = u32; +pub type nlink_t = u32; +pub type ino_t = u64; +pub type pthread_key_t = ::c_int; +pub type rlim_t = u64; +pub type speed_t = ::c_uint; +pub type tcflag_t = ::c_uint; +pub type nl_item = c_long; +pub type clockid_t = ::c_int; +pub type id_t = u32; +pub type sem_t = *mut sem; +pub type key_t = c_long; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum timezone {} +impl ::Copy for timezone {} +impl ::Clone for timezone { + fn clone(&self) -> timezone { + *self + } +} +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum sem {} +impl ::Copy for sem {} +impl ::Clone for sem { + fn clone(&self) -> sem { + *self + } +} + +s! { + pub struct sched_param { + pub sched_priority: ::c_int, + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } + + pub struct in6_pktinfo { + pub ipi6_addr: ::in6_addr, + pub ipi6_ifindex: ::c_uint, + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_cc: [::cc_t; ::NCCS], + pub c_ispeed: ::c_int, + pub c_ospeed: ::c_int, + } + + pub struct flock { + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + pub l_type: ::c_short, + pub l_whence: ::c_short, + } + + pub struct ipc_perm { + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub mode: ::mode_t, + #[cfg(target_os = "openbsd")] + pub seq: ::c_ushort, + #[cfg(target_os = "netbsd")] + pub _seq: ::c_ushort, + #[cfg(target_os = "openbsd")] + pub key: ::key_t, + #[cfg(target_os = "netbsd")] + pub _key: ::key_t, + } + + pub struct ptrace_io_desc { + pub piod_op: ::c_int, + pub piod_offs: *mut ::c_void, + pub piod_addr: *mut ::c_void, + pub piod_len: ::size_t, + } +} + +pub const D_T_FMT: ::nl_item = 0; +pub const D_FMT: ::nl_item = 1; +pub const T_FMT: ::nl_item = 2; +pub const T_FMT_AMPM: ::nl_item = 3; +pub const AM_STR: ::nl_item = 4; +pub const PM_STR: ::nl_item = 5; + +pub const DAY_1: ::nl_item = 6; +pub const DAY_2: ::nl_item = 7; +pub const DAY_3: ::nl_item = 8; +pub const DAY_4: ::nl_item = 9; +pub const DAY_5: ::nl_item = 10; +pub const DAY_6: ::nl_item = 11; +pub const DAY_7: ::nl_item = 12; + +pub const ABDAY_1: ::nl_item = 13; +pub const ABDAY_2: ::nl_item = 14; +pub const ABDAY_3: ::nl_item = 15; +pub const ABDAY_4: ::nl_item = 16; +pub const ABDAY_5: ::nl_item = 17; +pub const ABDAY_6: ::nl_item = 18; +pub const ABDAY_7: ::nl_item = 19; + +pub const MON_1: ::nl_item = 20; +pub const MON_2: ::nl_item = 21; +pub const MON_3: ::nl_item = 22; +pub const MON_4: ::nl_item = 23; +pub const MON_5: ::nl_item = 24; +pub const MON_6: ::nl_item = 25; +pub const MON_7: ::nl_item = 26; +pub const MON_8: ::nl_item = 27; +pub const MON_9: ::nl_item = 28; +pub const MON_10: ::nl_item = 29; +pub const MON_11: ::nl_item = 30; +pub const MON_12: ::nl_item = 31; + +pub const ABMON_1: ::nl_item = 32; +pub const ABMON_2: ::nl_item = 33; +pub const ABMON_3: ::nl_item = 34; +pub const ABMON_4: ::nl_item = 35; +pub const ABMON_5: ::nl_item = 36; +pub const ABMON_6: ::nl_item = 37; +pub const ABMON_7: ::nl_item = 38; +pub const ABMON_8: ::nl_item = 39; +pub const ABMON_9: ::nl_item = 40; +pub const ABMON_10: ::nl_item = 41; +pub const ABMON_11: ::nl_item = 42; +pub const ABMON_12: ::nl_item = 43; + +pub const RADIXCHAR: ::nl_item = 44; +pub const THOUSEP: ::nl_item = 45; +pub const YESSTR: ::nl_item = 46; +pub const YESEXPR: ::nl_item = 47; +pub const NOSTR: ::nl_item = 48; +pub const NOEXPR: ::nl_item = 49; +pub const CRNCYSTR: ::nl_item = 50; + +pub const CODESET: ::nl_item = 51; + +pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: ::c_int = 0; +pub const RAND_MAX: ::c_int = 2147483647; +pub const EOF: ::c_int = -1; +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; +pub const _IOFBF: ::c_int = 0; +pub const _IONBF: ::c_int = 2; +pub const _IOLBF: ::c_int = 1; +pub const BUFSIZ: ::c_uint = 1024; +pub const FOPEN_MAX: ::c_uint = 20; +pub const FILENAME_MAX: ::c_uint = 1024; +pub const L_tmpnam: ::c_uint = 1024; +pub const O_NOCTTY: ::c_int = 32768; +pub const S_IFIFO: mode_t = 4096; +pub const S_IFCHR: mode_t = 8192; +pub const S_IFBLK: mode_t = 24576; +pub const S_IFDIR: mode_t = 16384; +pub const S_IFREG: mode_t = 32768; +pub const S_IFLNK: mode_t = 40960; +pub const S_IFSOCK: mode_t = 49152; +pub const S_IFMT: mode_t = 61440; +pub const S_IEXEC: mode_t = 64; +pub const S_IWRITE: mode_t = 128; +pub const S_IREAD: mode_t = 256; +pub const S_IRWXU: mode_t = 448; +pub const S_IXUSR: mode_t = 64; +pub const S_IWUSR: mode_t = 128; +pub const S_IRUSR: mode_t = 256; +pub const S_IRWXG: mode_t = 56; +pub const S_IXGRP: mode_t = 8; +pub const S_IWGRP: mode_t = 16; +pub const S_IRGRP: mode_t = 32; +pub const S_IRWXO: mode_t = 7; +pub const S_IXOTH: mode_t = 1; +pub const S_IWOTH: mode_t = 2; +pub const S_IROTH: mode_t = 4; +pub const F_OK: ::c_int = 0; +pub const R_OK: ::c_int = 4; +pub const W_OK: ::c_int = 2; +pub const X_OK: ::c_int = 1; +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; +pub const F_LOCK: ::c_int = 1; +pub const F_TEST: ::c_int = 3; +pub const F_TLOCK: ::c_int = 2; +pub const F_ULOCK: ::c_int = 0; +pub const F_GETLK: ::c_int = 7; +pub const F_SETLK: ::c_int = 8; +pub const F_SETLKW: ::c_int = 9; +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGABRT: ::c_int = 6; +pub const SIGEMT: ::c_int = 7; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGSEGV: ::c_int = 11; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; + +pub const PROT_NONE: ::c_int = 0; +pub const PROT_READ: ::c_int = 1; +pub const PROT_WRITE: ::c_int = 2; +pub const PROT_EXEC: ::c_int = 4; + +pub const MAP_FILE: ::c_int = 0x0000; +pub const MAP_SHARED: ::c_int = 0x0001; +pub const MAP_PRIVATE: ::c_int = 0x0002; +pub const MAP_FIXED: ::c_int = 0x0010; +pub const MAP_ANON: ::c_int = 0x1000; +pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; + +pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; + +pub const IPC_CREAT: ::c_int = 0o001000; +pub const IPC_EXCL: ::c_int = 0o002000; +pub const IPC_NOWAIT: ::c_int = 0o004000; + +pub const IPC_PRIVATE: ::key_t = 0; + +pub const IPC_RMID: ::c_int = 0; +pub const IPC_SET: ::c_int = 1; +pub const IPC_STAT: ::c_int = 2; + +pub const IPC_R: ::c_int = 0o000400; +pub const IPC_W: ::c_int = 0o000200; +pub const IPC_M: ::c_int = 0o010000; + +pub const SHM_R: ::c_int = IPC_R; +pub const SHM_W: ::c_int = IPC_W; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const MS_ASYNC: ::c_int = 0x0001; + +pub const EPERM: ::c_int = 1; +pub const ENOENT: ::c_int = 2; +pub const ESRCH: ::c_int = 3; +pub const EINTR: ::c_int = 4; +pub const EIO: ::c_int = 5; +pub const ENXIO: ::c_int = 6; +pub const E2BIG: ::c_int = 7; +pub const ENOEXEC: ::c_int = 8; +pub const EBADF: ::c_int = 9; +pub const ECHILD: ::c_int = 10; +pub const EDEADLK: ::c_int = 11; +pub const ENOMEM: ::c_int = 12; +pub const EACCES: ::c_int = 13; +pub const EFAULT: ::c_int = 14; +pub const ENOTBLK: ::c_int = 15; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const EXDEV: ::c_int = 18; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENFILE: ::c_int = 23; +pub const EMFILE: ::c_int = 24; +pub const ENOTTY: ::c_int = 25; +pub const ETXTBSY: ::c_int = 26; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const ESPIPE: ::c_int = 29; +pub const EROFS: ::c_int = 30; +pub const EMLINK: ::c_int = 31; +pub const EPIPE: ::c_int = 32; +pub const EDOM: ::c_int = 33; +pub const ERANGE: ::c_int = 34; +pub const EAGAIN: ::c_int = 35; +pub const EWOULDBLOCK: ::c_int = 35; +pub const EINPROGRESS: ::c_int = 36; +pub const EALREADY: ::c_int = 37; +pub const ENOTSOCK: ::c_int = 38; +pub const EDESTADDRREQ: ::c_int = 39; +pub const EMSGSIZE: ::c_int = 40; +pub const EPROTOTYPE: ::c_int = 41; +pub const ENOPROTOOPT: ::c_int = 42; +pub const EPROTONOSUPPORT: ::c_int = 43; +pub const ESOCKTNOSUPPORT: ::c_int = 44; +pub const EOPNOTSUPP: ::c_int = 45; +pub const EPFNOSUPPORT: ::c_int = 46; +pub const EAFNOSUPPORT: ::c_int = 47; +pub const EADDRINUSE: ::c_int = 48; +pub const EADDRNOTAVAIL: ::c_int = 49; +pub const ENETDOWN: ::c_int = 50; +pub const ENETUNREACH: ::c_int = 51; +pub const ENETRESET: ::c_int = 52; +pub const ECONNABORTED: ::c_int = 53; +pub const ECONNRESET: ::c_int = 54; +pub const ENOBUFS: ::c_int = 55; +pub const EISCONN: ::c_int = 56; +pub const ENOTCONN: ::c_int = 57; +pub const ESHUTDOWN: ::c_int = 58; +pub const ETOOMANYREFS: ::c_int = 59; +pub const ETIMEDOUT: ::c_int = 60; +pub const ECONNREFUSED: ::c_int = 61; +pub const ELOOP: ::c_int = 62; +pub const ENAMETOOLONG: ::c_int = 63; +pub const EHOSTDOWN: ::c_int = 64; +pub const EHOSTUNREACH: ::c_int = 65; +pub const ENOTEMPTY: ::c_int = 66; +pub const EPROCLIM: ::c_int = 67; +pub const EUSERS: ::c_int = 68; +pub const EDQUOT: ::c_int = 69; +pub const ESTALE: ::c_int = 70; +pub const EREMOTE: ::c_int = 71; +pub const EBADRPC: ::c_int = 72; +pub const ERPCMISMATCH: ::c_int = 73; +pub const EPROGUNAVAIL: ::c_int = 74; +pub const EPROGMISMATCH: ::c_int = 75; +pub const EPROCUNAVAIL: ::c_int = 76; +pub const ENOLCK: ::c_int = 77; +pub const ENOSYS: ::c_int = 78; +pub const EFTYPE: ::c_int = 79; +pub const EAUTH: ::c_int = 80; +pub const ENEEDAUTH: ::c_int = 81; + +pub const F_DUPFD: ::c_int = 0; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; + +pub const SIGTRAP: ::c_int = 5; + +pub const GLOB_APPEND: ::c_int = 0x0001; +pub const GLOB_DOOFFS: ::c_int = 0x0002; +pub const GLOB_ERR: ::c_int = 0x0004; +pub const GLOB_MARK: ::c_int = 0x0008; +pub const GLOB_NOCHECK: ::c_int = 0x0010; +pub const GLOB_NOSORT: ::c_int = 0x0020; +pub const GLOB_NOESCAPE: ::c_int = 0x1000; + +pub const GLOB_NOSPACE: ::c_int = -1; +pub const GLOB_ABORTED: ::c_int = -2; +pub const GLOB_NOMATCH: ::c_int = -3; +pub const GLOB_NOSYS: ::c_int = -4; + +pub const POSIX_MADV_NORMAL: ::c_int = 0; +pub const POSIX_MADV_RANDOM: ::c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_MADV_WILLNEED: ::c_int = 3; +pub const POSIX_MADV_DONTNEED: ::c_int = 4; + +pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; +pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; + +pub const PIOD_READ_D: ::c_int = 1; +pub const PIOD_WRITE_D: ::c_int = 2; +pub const PIOD_READ_I: ::c_int = 3; +pub const PIOD_WRITE_I: ::c_int = 4; +pub const PIOD_READ_AUXV: ::c_int = 5; + +pub const PT_TRACE_ME: ::c_int = 0; +pub const PT_READ_I: ::c_int = 1; +pub const PT_READ_D: ::c_int = 2; +pub const PT_WRITE_I: ::c_int = 4; +pub const PT_WRITE_D: ::c_int = 5; +pub const PT_CONTINUE: ::c_int = 7; +pub const PT_KILL: ::c_int = 8; +pub const PT_ATTACH: ::c_int = 9; +pub const PT_DETACH: ::c_int = 10; +pub const PT_IO: ::c_int = 11; + +// http://man.openbsd.org/OpenBSD-current/man2/clock_getres.2 +// The man page says clock_gettime(3) can accept various values as clockid_t but +// http://fxr.watson.org/fxr/source/kern/kern_time.c?v=OPENBSD;im=excerpts#L161 +// the implementation rejects anything other than the below two +// +// http://netbsd.gw.com/cgi-bin/man-cgi?clock_gettime +// https://github.com/jsonn/src/blob/HEAD/sys/kern/subr_time.c#L222 +// Basically the same goes for NetBSD +pub const CLOCK_REALTIME: ::clockid_t = 0; +pub const CLOCK_MONOTONIC: ::clockid_t = 3; + +pub const RLIMIT_CPU: ::c_int = 0; +pub const RLIMIT_FSIZE: ::c_int = 1; +pub const RLIMIT_DATA: ::c_int = 2; +pub const RLIMIT_STACK: ::c_int = 3; +pub const RLIMIT_CORE: ::c_int = 4; +pub const RLIMIT_RSS: ::c_int = 5; +pub const RLIMIT_MEMLOCK: ::c_int = 6; +pub const RLIMIT_NPROC: ::c_int = 7; +pub const RLIMIT_NOFILE: ::c_int = 8; + +pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff; +pub const RLIM_SAVED_MAX: rlim_t = RLIM_INFINITY; +pub const RLIM_SAVED_CUR: rlim_t = RLIM_INFINITY; + +pub const RUSAGE_SELF: ::c_int = 0; +pub const RUSAGE_CHILDREN: ::c_int = -1; + +pub const MADV_NORMAL: ::c_int = 0; +pub const MADV_RANDOM: ::c_int = 1; +pub const MADV_SEQUENTIAL: ::c_int = 2; +pub const MADV_WILLNEED: ::c_int = 3; +pub const MADV_DONTNEED: ::c_int = 4; +pub const MADV_FREE: ::c_int = 6; + +// sys/fstypes.h in NetBSD, or sys/mount.h in OpenBSD +pub const MNT_NODEV: ::c_int = 0x00000010; +pub const MNT_LOCAL: ::c_int = 0x00001000; +pub const MNT_QUOTA: ::c_int = 0x00002000; + +pub const AF_UNSPEC: ::c_int = 0; +pub const AF_LOCAL: ::c_int = 1; +pub const AF_UNIX: ::c_int = AF_LOCAL; +pub const AF_INET: ::c_int = 2; +pub const AF_IMPLINK: ::c_int = 3; +pub const AF_PUP: ::c_int = 4; +pub const AF_CHAOS: ::c_int = 5; +pub const AF_NS: ::c_int = 6; +pub const AF_ISO: ::c_int = 7; +pub const AF_OSI: ::c_int = AF_ISO; +pub const AF_DATAKIT: ::c_int = 9; +pub const AF_CCITT: ::c_int = 10; +pub const AF_SNA: ::c_int = 11; +pub const AF_DECnet: ::c_int = 12; +pub const AF_DLI: ::c_int = 13; +pub const AF_LAT: ::c_int = 14; +pub const AF_HYLINK: ::c_int = 15; +pub const AF_APPLETALK: ::c_int = 16; +pub const AF_LINK: ::c_int = 18; +pub const pseudo_AF_XTP: ::c_int = 19; +pub const AF_COIP: ::c_int = 20; +pub const AF_CNT: ::c_int = 21; +pub const pseudo_AF_RTIP: ::c_int = 22; +pub const AF_IPX: ::c_int = 23; +pub const AF_INET6: ::c_int = 24; +pub const pseudo_AF_PIP: ::c_int = 25; +pub const AF_ISDN: ::c_int = 26; +pub const AF_E164: ::c_int = AF_ISDN; +pub const AF_NATM: ::c_int = 27; + +pub const PF_UNSPEC: ::c_int = AF_UNSPEC; +pub const PF_LOCAL: ::c_int = AF_LOCAL; +pub const PF_UNIX: ::c_int = PF_LOCAL; +pub const PF_INET: ::c_int = AF_INET; +pub const PF_IMPLINK: ::c_int = AF_IMPLINK; +pub const PF_PUP: ::c_int = AF_PUP; +pub const PF_CHAOS: ::c_int = AF_CHAOS; +pub const PF_NS: ::c_int = AF_NS; +pub const PF_ISO: ::c_int = AF_ISO; +pub const PF_OSI: ::c_int = AF_ISO; +pub const PF_DATAKIT: ::c_int = AF_DATAKIT; +pub const PF_CCITT: ::c_int = AF_CCITT; +pub const PF_SNA: ::c_int = AF_SNA; +pub const PF_DECnet: ::c_int = AF_DECnet; +pub const PF_DLI: ::c_int = AF_DLI; +pub const PF_LAT: ::c_int = AF_LAT; +pub const PF_HYLINK: ::c_int = AF_HYLINK; +pub const PF_APPLETALK: ::c_int = AF_APPLETALK; +pub const PF_LINK: ::c_int = AF_LINK; +pub const PF_XTP: ::c_int = pseudo_AF_XTP; +pub const PF_COIP: ::c_int = AF_COIP; +pub const PF_CNT: ::c_int = AF_CNT; +pub const PF_IPX: ::c_int = AF_IPX; +pub const PF_INET6: ::c_int = AF_INET6; +pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; +pub const PF_PIP: ::c_int = pseudo_AF_PIP; +pub const PF_ISDN: ::c_int = AF_ISDN; +pub const PF_NATM: ::c_int = AF_NATM; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_RAW: ::c_int = 3; +pub const SOCK_RDM: ::c_int = 4; +pub const SOCK_SEQPACKET: ::c_int = 5; +pub const IP_TTL: ::c_int = 4; +pub const IP_HDRINCL: ::c_int = 2; +pub const IP_ADD_MEMBERSHIP: ::c_int = 12; +pub const IP_DROP_MEMBERSHIP: ::c_int = 13; +pub const IPV6_RECVPKTINFO: ::c_int = 36; +pub const IPV6_PKTINFO: ::c_int = 46; +pub const IPV6_RECVTCLASS: ::c_int = 57; +pub const IPV6_TCLASS: ::c_int = 61; + +pub const SOL_SOCKET: ::c_int = 0xffff; +pub const SO_DEBUG: ::c_int = 0x01; +pub const SO_ACCEPTCONN: ::c_int = 0x0002; +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_USELOOPBACK: ::c_int = 0x0040; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_OOBINLINE: ::c_int = 0x0100; +pub const SO_REUSEPORT: ::c_int = 0x0200; +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_SNDLOWAT: ::c_int = 0x1003; +pub const SO_RCVLOWAT: ::c_int = 0x1004; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_TYPE: ::c_int = 0x1008; + +pub const SOMAXCONN: ::c_int = 128; + +pub const MSG_OOB: ::c_int = 0x1; +pub const MSG_PEEK: ::c_int = 0x2; +pub const MSG_DONTROUTE: ::c_int = 0x4; +pub const MSG_EOR: ::c_int = 0x8; +pub const MSG_TRUNC: ::c_int = 0x10; +pub const MSG_CTRUNC: ::c_int = 0x20; +pub const MSG_WAITALL: ::c_int = 0x40; +pub const MSG_DONTWAIT: ::c_int = 0x80; +pub const MSG_BCAST: ::c_int = 0x100; +pub const MSG_MCAST: ::c_int = 0x200; +pub const MSG_NOSIGNAL: ::c_int = 0x400; +pub const MSG_CMSG_CLOEXEC: ::c_int = 0x800; + +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; + +pub const LOCK_SH: ::c_int = 1; +pub const LOCK_EX: ::c_int = 2; +pub const LOCK_NB: ::c_int = 4; +pub const LOCK_UN: ::c_int = 8; + +pub const IPPROTO_RAW: ::c_int = 255; + +pub const _SC_ARG_MAX: ::c_int = 1; +pub const _SC_CHILD_MAX: ::c_int = 2; +pub const _SC_NGROUPS_MAX: ::c_int = 4; +pub const _SC_OPEN_MAX: ::c_int = 5; +pub const _SC_JOB_CONTROL: ::c_int = 6; +pub const _SC_SAVED_IDS: ::c_int = 7; +pub const _SC_VERSION: ::c_int = 8; +pub const _SC_BC_BASE_MAX: ::c_int = 9; +pub const _SC_BC_DIM_MAX: ::c_int = 10; +pub const _SC_BC_SCALE_MAX: ::c_int = 11; +pub const _SC_BC_STRING_MAX: ::c_int = 12; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 13; +pub const _SC_EXPR_NEST_MAX: ::c_int = 14; +pub const _SC_LINE_MAX: ::c_int = 15; +pub const _SC_RE_DUP_MAX: ::c_int = 16; +pub const _SC_2_VERSION: ::c_int = 17; +pub const _SC_2_C_BIND: ::c_int = 18; +pub const _SC_2_C_DEV: ::c_int = 19; +pub const _SC_2_CHAR_TERM: ::c_int = 20; +pub const _SC_2_FORT_DEV: ::c_int = 21; +pub const _SC_2_FORT_RUN: ::c_int = 22; +pub const _SC_2_LOCALEDEF: ::c_int = 23; +pub const _SC_2_SW_DEV: ::c_int = 24; +pub const _SC_2_UPE: ::c_int = 25; +pub const _SC_STREAM_MAX: ::c_int = 26; +pub const _SC_TZNAME_MAX: ::c_int = 27; +pub const _SC_PAGESIZE: ::c_int = 28; +pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; +pub const _SC_FSYNC: ::c_int = 29; +pub const _SC_XOPEN_SHM: ::c_int = 30; + +pub const Q_GETQUOTA: ::c_int = 0x300; +pub const Q_SETQUOTA: ::c_int = 0x400; + +pub const RTLD_GLOBAL: ::c_int = 0x100; + +pub const LOG_NFACILITIES: ::c_int = 24; + +pub const HW_NCPU: ::c_int = 3; + +pub const B0: speed_t = 0; +pub const B50: speed_t = 50; +pub const B75: speed_t = 75; +pub const B110: speed_t = 110; +pub const B134: speed_t = 134; +pub const B150: speed_t = 150; +pub const B200: speed_t = 200; +pub const B300: speed_t = 300; +pub const B600: speed_t = 600; +pub const B1200: speed_t = 1200; +pub const B1800: speed_t = 1800; +pub const B2400: speed_t = 2400; +pub const B4800: speed_t = 4800; +pub const B9600: speed_t = 9600; +pub const B19200: speed_t = 19200; +pub const B38400: speed_t = 38400; +pub const B7200: speed_t = 7200; +pub const B14400: speed_t = 14400; +pub const B28800: speed_t = 28800; +pub const B57600: speed_t = 57600; +pub const B76800: speed_t = 76800; +pub const B115200: speed_t = 115200; +pub const B230400: speed_t = 230400; +pub const EXTA: speed_t = 19200; +pub const EXTB: speed_t = 38400; + +pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; + +pub const CRTSCTS: ::tcflag_t = 0x00010000; +pub const CRTS_IFLOW: ::tcflag_t = CRTSCTS; +pub const CCTS_OFLOW: ::tcflag_t = CRTSCTS; +pub const OCRNL: ::tcflag_t = 0x10; + +pub const TIOCEXCL: ::c_ulong = 0x2000740d; +pub const TIOCNXCL: ::c_ulong = 0x2000740e; +pub const TIOCFLUSH: ::c_ulong = 0x80047410; +pub const TIOCGETA: ::c_ulong = 0x402c7413; +pub const TIOCSETA: ::c_ulong = 0x802c7414; +pub const TIOCSETAW: ::c_ulong = 0x802c7415; +pub const TIOCSETAF: ::c_ulong = 0x802c7416; +pub const TIOCGETD: ::c_ulong = 0x4004741a; +pub const TIOCSETD: ::c_ulong = 0x8004741b; +pub const TIOCMGET: ::c_ulong = 0x4004746a; +pub const TIOCMBIC: ::c_ulong = 0x8004746b; +pub const TIOCMBIS: ::c_ulong = 0x8004746c; +pub const TIOCMSET: ::c_ulong = 0x8004746d; +pub const TIOCSTART: ::c_ulong = 0x2000746e; +pub const TIOCSTOP: ::c_ulong = 0x2000746f; +pub const TIOCSCTTY: ::c_ulong = 0x20007461; +pub const TIOCGWINSZ: ::c_ulong = 0x40087468; +pub const TIOCSWINSZ: ::c_ulong = 0x80087467; +pub const TIOCM_LE: ::c_int = 0o0001; +pub const TIOCM_DTR: ::c_int = 0o0002; +pub const TIOCM_RTS: ::c_int = 0o0004; +pub const TIOCM_ST: ::c_int = 0o0010; +pub const TIOCM_SR: ::c_int = 0o0020; +pub const TIOCM_CTS: ::c_int = 0o0040; +pub const TIOCM_CAR: ::c_int = 0o0100; +pub const TIOCM_RNG: ::c_int = 0o0200; +pub const TIOCM_DSR: ::c_int = 0o0400; +pub const TIOCM_CD: ::c_int = TIOCM_CAR; +pub const TIOCM_RI: ::c_int = TIOCM_RNG; + +pub const TIMER_ABSTIME: ::c_int = 1; + +#[link(name = "util")] +extern "C" { + pub fn setgrent(); + pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; + pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + + pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + pub fn accept4( + s: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn mincore(addr: *mut ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__clock_getres50")] + pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__clock_gettime50")] + pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__clock_settime50")] + pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn __errno() -> *mut ::c_int; + pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; + pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; + pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; + pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; + pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) + -> ::ssize_t; + pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; + pub fn fdatasync(fd: ::c_int) -> ::c_int; + pub fn login_tty(fd: ::c_int) -> ::c_int; + pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; + pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; + + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> ::c_int; + pub fn pthread_setschedparam( + native: ::pthread_t, + policy: ::c_int, + param: *const sched_param, + ) -> ::c_int; + pub fn pthread_getschedparam( + native: ::pthread_t, + policy: *mut ::c_int, + param: *mut sched_param, + ) -> ::c_int; + pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; + + pub fn getgrouplist( + name: *const ::c_char, + basegid: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; + pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; + pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; + pub fn uname(buf: *mut ::utsname) -> ::c_int; + + pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; + pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; + pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; + pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; +} + +extern "C" { + pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn gethostid() -> ::c_long; + pub fn sethostid(hostid: ::c_long) -> ::c_int; + pub fn ftok(path: *const ::c_char, id: ::c_int) -> ::key_t; + + pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; + pub fn basename(path: *mut ::c_char) -> *mut ::c_char; + pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; +} + +cfg_if! { + if #[cfg(target_os = "netbsd")] { + mod netbsd; + pub use self::netbsd::*; + } else if #[cfg(target_os = "openbsd")] { + mod openbsd; + pub use self::openbsd::*; + } else { + // Unknown target_os + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/aarch64.rs new file mode 100644 index 000000000..7b895f632 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/aarch64.rs @@ -0,0 +1,103 @@ +use PT_FIRSTMACH; + +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_char = u8; +pub type greg_t = u64; +pub type __cpu_simple_lock_nv_t = ::c_uchar; + +s! { + pub struct __fregset { + #[cfg(libc_union)] + pub __qregs: [__c_anonymous__freg; 32], + pub __fpcr: u32, + pub __fpsr: u32, + } + + pub struct mcontext_t { + pub __gregs: [::greg_t; 32], + pub __fregs: __fregset, + __spare: [::greg_t; 8], + } + + pub struct ucontext_t { + pub uc_flags: ::c_uint, + pub uc_link: *mut ucontext_t, + pub uc_sigmask: ::sigset_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + } +} + +s_no_extra_traits! { + #[cfg(libc_union)] + #[repr(align(16))] + pub union __c_anonymous__freg { + pub __b8: [u8; 16], + pub __h16: [u16; 8], + pub __s32: [u32; 4], + pub __d64: [u64; 2], + pub __q128: [u128; 1], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + #[cfg(libc_union)] + impl PartialEq for __c_anonymous__freg { + fn eq(&self, other: &__c_anonymous__freg) -> bool { + unsafe { + self.__b8 == other.__b8 + || self.__h16 == other.__h16 + || self.__s32 == other.__s32 + || self.__d64 == other.__d64 + || self.__q128 == other.__q128 + } + } + } + #[cfg(libc_union)] + impl Eq for __c_anonymous__freg {} + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous__freg { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + unsafe { + f.debug_struct("__c_anonymous__freg") + .field("__b8", &self.__b8) + .field("__h16", &self.__h16) + .field("__s32", &self.__s32) + .field("__d64", &self.__d64) + .field("__q128", &self.__q128) + .finish() + } + } + } + #[cfg(libc_union)] + impl ::hash::Hash for __c_anonymous__freg { + fn hash(&self, state: &mut H) { + unsafe { + self.__b8.hash(state); + self.__h16.hash(state); + self.__s32.hash(state); + self.__d64.hash(state); + self.__q128.hash(state); + } + } + } + } +} + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 4 - 1; + } +} + +pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 0; +pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 1; +pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 2; +pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 3; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/arm.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/arm.rs new file mode 100644 index 000000000..4bf3ccd02 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/arm.rs @@ -0,0 +1,22 @@ +use PT_FIRSTMACH; + +pub type c_long = i32; +pub type c_ulong = u32; +pub type c_char = u8; +pub type __cpu_simple_lock_nv_t = ::c_int; + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; +pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; +pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3; +pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/mod.rs new file mode 100644 index 000000000..46035df31 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -0,0 +1,3178 @@ +pub type clock_t = ::c_uint; +pub type suseconds_t = ::c_int; +pub type dev_t = u64; +pub type blksize_t = i32; +pub type fsblkcnt_t = u64; +pub type fsfilcnt_t = u64; +pub type idtype_t = ::c_int; +pub type mqd_t = ::c_int; +type __pthread_spin_t = __cpu_simple_lock_nv_t; +pub type vm_size_t = ::uintptr_t; // FIXME: deprecated since long time +pub type lwpid_t = ::c_uint; +pub type shmatt_t = ::c_uint; +pub type cpuid_t = u64; +pub type cpuset_t = _cpuset; +pub type pthread_spin_t = ::c_uchar; +pub type timer_t = ::c_int; + +// elf.h + +pub type Elf32_Addr = u32; +pub type Elf32_Half = u16; +pub type Elf32_Lword = u64; +pub type Elf32_Off = u32; +pub type Elf32_Sword = i32; +pub type Elf32_Word = u32; + +pub type Elf64_Addr = u64; +pub type Elf64_Half = u16; +pub type Elf64_Lword = u64; +pub type Elf64_Off = u64; +pub type Elf64_Sword = i32; +pub type Elf64_Sxword = i64; +pub type Elf64_Word = u32; +pub type Elf64_Xword = u64; + +pub type iconv_t = *mut ::c_void; + +e! { + pub enum fae_action { + FAE_OPEN, + FAE_DUP2, + FAE_CLOSE, + } +} + +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + type Elf_Addr = Elf64_Addr; + type Elf_Half = Elf64_Half; + type Elf_Phdr = Elf64_Phdr; + } else if #[cfg(target_pointer_width = "32")] { + type Elf_Addr = Elf32_Addr; + type Elf_Half = Elf32_Half; + type Elf_Phdr = Elf32_Phdr; + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + self.si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + __pad1: ::c_int, + _pid: ::pid_t, + _uid: ::uid_t, + value: ::sigval, + } + (*(self as *const siginfo_t as *const siginfo_timer)).value + } + + pub unsafe fn si_status(&self) -> ::c_int { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + __pad1: ::c_int, + _pid: ::pid_t, + _uid: ::uid_t, + _value: ::sigval, + _cpid: ::pid_t, + _cuid: ::uid_t, + status: ::c_int, + } + (*(self as *const siginfo_t as *const siginfo_timer)).status + } +} + +s! { + pub struct aiocb { + pub aio_offset: ::off_t, + pub aio_buf: *mut ::c_void, + pub aio_nbytes: ::size_t, + pub aio_fildes: ::c_int, + pub aio_lio_opcode: ::c_int, + pub aio_reqprio: ::c_int, + pub aio_sigevent: ::sigevent, + _state: ::c_int, + _errno: ::c_int, + _retval: ::ssize_t + } + + pub struct glob_t { + pub gl_pathc: ::size_t, + pub gl_matchc: ::size_t, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + pub gl_pathv: *mut *mut ::c_char, + + __unused3: *mut ::c_void, + + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + __unused6: *mut ::c_void, + __unused7: *mut ::c_void, + __unused8: *mut ::c_void, + } + + pub struct mq_attr { + pub mq_flags: ::c_long, + pub mq_maxmsg: ::c_long, + pub mq_msgsize: ::c_long, + pub mq_curmsgs: ::c_long, + } + + pub struct itimerspec { + pub it_interval: ::timespec, + pub it_value: ::timespec, + } + + pub struct sigset_t { + __bits: [u32; 4], + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_mode: ::mode_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_atime: ::time_t, + pub st_atimensec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtimensec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctimensec: ::c_long, + pub st_birthtime: ::time_t, + pub st_birthtimensec: ::c_long, + pub st_size: ::off_t, + pub st_blocks: ::blkcnt_t, + pub st_blksize: ::blksize_t, + pub st_flags: u32, + pub st_gen: u32, + pub st_spare: [u32; 2], + } + + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: ::socklen_t, + pub ai_canonname: *mut ::c_char, + pub ai_addr: *mut ::sockaddr, + pub ai_next: *mut ::addrinfo, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_code: ::c_int, + pub si_errno: ::c_int, + __pad1: ::c_int, + pub si_addr: *mut ::c_void, + __pad2: [u64; 13], + } + + pub struct pthread_attr_t { + pta_magic: ::c_uint, + pta_flags: ::c_int, + pta_private: *mut ::c_void, + } + + pub struct pthread_mutex_t { + ptm_magic: ::c_uint, + ptm_errorcheck: __pthread_spin_t, + #[cfg(any(target_arch = "sparc", target_arch = "sparc64", + target_arch = "x86", target_arch = "x86_64"))] + ptm_pad1: [u8; 3], + // actually a union with a non-unused, 0-initialized field + ptm_unused: __pthread_spin_t, + #[cfg(any(target_arch = "sparc", target_arch = "sparc64", + target_arch = "x86", target_arch = "x86_64"))] + ptm_pad2: [u8; 3], + ptm_owner: ::pthread_t, + ptm_waiters: *mut u8, + ptm_recursed: ::c_uint, + ptm_spare2: *mut ::c_void, + } + + pub struct pthread_mutexattr_t { + ptma_magic: ::c_uint, + ptma_private: *mut ::c_void, + } + + pub struct pthread_rwlockattr_t { + ptra_magic: ::c_uint, + ptra_private: *mut ::c_void, + } + + pub struct pthread_cond_t { + ptc_magic: ::c_uint, + ptc_lock: __pthread_spin_t, + ptc_waiters_first: *mut u8, + ptc_waiters_last: *mut u8, + ptc_mutex: *mut ::pthread_mutex_t, + ptc_private: *mut ::c_void, + } + + pub struct pthread_condattr_t { + ptca_magic: ::c_uint, + ptca_private: *mut ::c_void, + } + + pub struct pthread_rwlock_t { + ptr_magic: ::c_uint, + ptr_interlock: __pthread_spin_t, + ptr_rblocked_first: *mut u8, + ptr_rblocked_last: *mut u8, + ptr_wblocked_first: *mut u8, + ptr_wblocked_last: *mut u8, + ptr_nreaders: ::c_uint, + ptr_owner: ::pthread_t, + ptr_private: *mut ::c_void, + } + + pub struct pthread_spinlock_t { + pts_magic: ::c_uint, + pts_spin: ::pthread_spin_t, + pts_flags: ::c_int, + } + + pub struct kevent { + pub ident: ::uintptr_t, + pub filter: u32, + pub flags: u32, + pub fflags: u32, + pub data: i64, + pub udata: ::intptr_t, /* FIXME: NetBSD 10.0 will finally have same layout as other BSD */ + } + + pub struct dqblk { + pub dqb_bhardlimit: u32, + pub dqb_bsoftlimit: u32, + pub dqb_curblocks: u32, + pub dqb_ihardlimit: u32, + pub dqb_isoftlimit: u32, + pub dqb_curinodes: u32, + pub dqb_btime: i32, + pub dqb_itime: i32, + } + + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *const ::c_void, + } + + pub struct lconv { + pub decimal_point: *mut ::c_char, + pub thousands_sep: *mut ::c_char, + pub grouping: *mut ::c_char, + pub int_curr_symbol: *mut ::c_char, + pub currency_symbol: *mut ::c_char, + pub mon_decimal_point: *mut ::c_char, + pub mon_thousands_sep: *mut ::c_char, + pub mon_grouping: *mut ::c_char, + pub positive_sign: *mut ::c_char, + pub negative_sign: *mut ::c_char, + pub int_frac_digits: ::c_char, + pub frac_digits: ::c_char, + pub p_cs_precedes: ::c_char, + pub p_sep_by_space: ::c_char, + pub n_cs_precedes: ::c_char, + pub n_sep_by_space: ::c_char, + pub p_sign_posn: ::c_char, + pub n_sign_posn: ::c_char, + pub int_p_cs_precedes: ::c_char, + pub int_n_cs_precedes: ::c_char, + pub int_p_sep_by_space: ::c_char, + pub int_n_sep_by_space: ::c_char, + pub int_p_sign_posn: ::c_char, + pub int_n_sign_posn: ::c_char, + } + + pub struct if_data { + pub ifi_type: ::c_uchar, + pub ifi_addrlen: ::c_uchar, + pub ifi_hdrlen: ::c_uchar, + pub ifi_link_state: ::c_int, + pub ifi_mtu: u64, + pub ifi_metric: u64, + pub ifi_baudrate: u64, + pub ifi_ipackets: u64, + pub ifi_ierrors: u64, + pub ifi_opackets: u64, + pub ifi_oerrors: u64, + pub ifi_collisions: u64, + pub ifi_ibytes: u64, + pub ifi_obytes: u64, + pub ifi_imcasts: u64, + pub ifi_omcasts: u64, + pub ifi_iqdrops: u64, + pub ifi_noproto: u64, + pub ifi_lastchange: ::timespec, + } + + pub struct if_msghdr { + pub ifm_msglen: ::c_ushort, + pub ifm_version: ::c_uchar, + pub ifm_type: ::c_uchar, + pub ifm_addrs: ::c_int, + pub ifm_flags: ::c_int, + pub ifm_index: ::c_ushort, + pub ifm_data: if_data, + } + + pub struct sockcred { + pub sc_pid: ::pid_t, + pub sc_uid: ::uid_t, + pub sc_euid: ::uid_t, + pub sc_gid: ::gid_t, + pub sc_egid: ::gid_t, + pub sc_ngroups: ::c_int, + pub sc_groups: [::gid_t; 1], + } + + pub struct uucred { + pub cr_unused: ::c_ushort, + pub cr_uid: ::uid_t, + pub cr_gid: ::gid_t, + pub cr_ngroups: ::c_int, + pub cr_groups: [::gid_t; NGROUPS_MAX as usize], + } + + pub struct unpcbid { + pub unp_pid: ::pid_t, + pub unp_euid: ::uid_t, + pub unp_egid: ::gid_t, + } + + pub struct sockaddr_dl { + pub sdl_len: ::c_uchar, + pub sdl_family: ::c_uchar, + pub sdl_index: ::c_ushort, + pub sdl_type: u8, + pub sdl_nlen: u8, + pub sdl_alen: u8, + pub sdl_slen: u8, + pub sdl_data: [::c_char; 12], + } + + pub struct mmsghdr { + pub msg_hdr: ::msghdr, + pub msg_len: ::c_uint, + } + + pub struct __exit_status { + pub e_termination: u16, + pub e_exit: u16, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + _shm_internal: *mut ::c_void, + } + + pub struct utmp { + pub ut_line: [::c_char; UT_LINESIZE], + pub ut_name: [::c_char; UT_NAMESIZE], + pub ut_host: [::c_char; UT_HOSTSIZE], + pub ut_time: ::time_t + } + + pub struct lastlog { + pub ll_line: [::c_char; UT_LINESIZE], + pub ll_host: [::c_char; UT_HOSTSIZE], + pub ll_time: ::time_t + } + + pub struct timex { + pub modes: ::c_uint, + pub offset: ::c_long, + pub freq: ::c_long, + pub maxerror: ::c_long, + pub esterror: ::c_long, + pub status: ::c_int, + pub constant: ::c_long, + pub precision: ::c_long, + pub tolerance: ::c_long, + pub ppsfreq: ::c_long, + pub jitter: ::c_long, + pub shift: ::c_int, + pub stabil: ::c_long, + pub jitcnt: ::c_long, + pub calcnt: ::c_long, + pub errcnt: ::c_long, + pub stbcnt: ::c_long, + } + + pub struct ntptimeval { + pub time: ::timespec, + pub maxerror: ::c_long, + pub esterror: ::c_long, + pub tai: ::c_long, + pub time_state: ::c_int, + } + + // elf.h + + pub struct Elf32_Phdr { + pub p_type: Elf32_Word, + pub p_offset: Elf32_Off, + pub p_vaddr: Elf32_Addr, + pub p_paddr: Elf32_Addr, + pub p_filesz: Elf32_Word, + pub p_memsz: Elf32_Word, + pub p_flags: Elf32_Word, + pub p_align: Elf32_Word, + } + + pub struct Elf64_Phdr { + pub p_type: Elf64_Word, + pub p_flags: Elf64_Word, + pub p_offset: Elf64_Off, + pub p_vaddr: Elf64_Addr, + pub p_paddr: Elf64_Addr, + pub p_filesz: Elf64_Xword, + pub p_memsz: Elf64_Xword, + pub p_align: Elf64_Xword, + } + + pub struct Aux32Info { + pub a_type: Elf32_Word, + pub a_v: Elf32_Word, + } + + pub struct Aux64Info { + pub a_type: Elf64_Word, + pub a_v: Elf64_Xword, + } + + // link.h + + pub struct dl_phdr_info { + pub dlpi_addr: Elf_Addr, + pub dlpi_name: *const ::c_char, + pub dlpi_phdr: *const Elf_Phdr, + pub dlpi_phnum: Elf_Half, + pub dlpi_adds: ::c_ulonglong, + pub dlpi_subs: ::c_ulonglong, + pub dlpi_tls_modid: usize, + pub dlpi_tls_data: *mut ::c_void, + } + + pub struct _cpuset { + bits: [u32; 0] + } + + pub struct accept_filter_arg { + pub af_name: [::c_char; 16], + af_arg: [[::c_char; 10]; 24], + } + + pub struct ki_sigset_t { + pub __bits: [u32; 4], + } + + pub struct kinfo_proc2 { + pub p_forw: u64, + pub p_back: u64, + pub p_paddr: u64, + pub p_addr: u64, + pub p_fd: u64, + pub p_cwdi: u64, + pub p_stats: u64, + pub p_limit: u64, + pub p_vmspace: u64, + pub p_sigacts: u64, + pub p_sess: u64, + pub p_tsess: u64, + pub p_ru: u64, + pub p_eflag: i32, + pub p_exitsig: i32, + pub p_flag: i32, + pub p_pid: i32, + pub p_ppid: i32, + pub p_sid: i32, + pub p__pgid: i32, + pub p_tpgid: i32, + pub p_uid: u32, + pub p_ruid: u32, + pub p_gid: u32, + pub p_rgid: u32, + pub p_groups: [u32; KI_NGROUPS as usize], + pub p_ngroups: i16, + pub p_jobc: i16, + pub p_tdev: u32, + pub p_estcpu: u32, + pub p_rtime_sec: u32, + pub p_rtime_usec: u32, + pub p_cpticks: i32, + pub p_pctcpu: u32, + pub p_swtime: u32, + pub p_slptime: u32, + pub p_schedflags: i32, + pub p_uticks: u64, + pub p_sticks: u64, + pub p_iticks: u64, + pub p_tracep: u64, + pub p_traceflag: i32, + pub p_holdcnt: i32, + pub p_siglist: ki_sigset_t, + pub p_sigmask: ki_sigset_t, + pub p_sigignore: ki_sigset_t, + pub p_sigcatch: ki_sigset_t, + pub p_stat: i8, + pub p_priority: u8, + pub p_usrpri: u8, + pub p_nice: u8, + pub p_xstat: u16, + pub p_acflag: u16, + pub p_comm: [::c_char; KI_MAXCOMLEN as usize], + pub p_wmesg: [::c_char; KI_WMESGLEN as usize], + pub p_wchan: u64, + pub p_login: [::c_char; KI_MAXLOGNAME as usize], + pub p_vm_rssize: i32, + pub p_vm_tsize: i32, + pub p_vm_dsize: i32, + pub p_vm_ssize: i32, + pub p_uvalid: i64, + pub p_ustart_sec: u32, + pub p_ustart_usec: u32, + pub p_uutime_sec: u32, + pub p_uutime_usec: u32, + pub p_ustime_sec: u32, + pub p_ustime_usec: u32, + pub p_uru_maxrss: u64, + pub p_uru_ixrss: u64, + pub p_uru_idrss: u64, + pub p_uru_isrss: u64, + pub p_uru_minflt: u64, + pub p_uru_majflt: u64, + pub p_uru_nswap: u64, + pub p_uru_inblock: u64, + pub p_uru_oublock: u64, + pub p_uru_msgsnd: u64, + pub p_uru_msgrcv: u64, + pub p_uru_nsignals: u64, + pub p_uru_nvcsw: u64, + pub p_uru_nivcsw: u64, + pub p_uctime_sec: u32, + pub p_uctime_usec: u32, + pub p_cpuid: u64, + pub p_realflag: u64, + pub p_nlwps: u64, + pub p_nrlwps: u64, + pub p_realstat: u64, + pub p_svuid: u32, + pub p_svgid: u32, + pub p_ename: [::c_char; KI_MAXEMULLEN as usize], + pub p_vm_vsize: i64, + pub p_vm_msize: i64, + } + + pub struct kinfo_lwp { + pub l_forw: u64, + pub l_back: u64, + pub l_laddr: u64, + pub l_addr: u64, + pub l_lid: i32, + pub l_flag: i32, + pub l_swtime: u32, + pub l_slptime: u32, + pub l_schedflags: i32, + pub l_holdcnt: i32, + pub l_priority: u8, + pub l_usrpri: u8, + pub l_stat: i8, + l_pad1: i8, + l_pad2: i32, + pub l_wmesg: [::c_char; KI_WMESGLEN as usize], + pub l_wchan: u64, + pub l_cpuid: u64, + pub l_rtime_sec: u32, + pub l_rtime_usec: u32, + pub l_cpticks: u32, + pub l_pctcpu: u32, + pub l_pid: u32, + pub l_name: [::c_char; KI_LNAMELEN as usize], + } + + pub struct kinfo_vmentry { + pub kve_start: u64, + pub kve_end: u64, + pub kve_offset: u64, + pub kve_type: u32, + pub kve_flags: u32, + pub kve_count: u32, + pub kve_wired_count: u32, + pub kve_advice: u32, + pub kve_attributes: u32, + pub kve_protection: u32, + pub kve_max_protection: u32, + pub kve_ref_count: u32, + pub kve_inheritance: u32, + pub kve_vn_fileid: u64, + pub kve_vn_size: u64, + pub kve_vn_fsid: u64, + pub kve_vn_rdev: u64, + pub kve_vn_type: u32, + pub kve_vn_mode: u32, + pub kve_path: [[::c_char; 32]; 32], + } + + pub struct __c_anonymous_posix_spawn_fae_open { + pub path: *mut ::c_char, + pub oflag: ::c_int, + pub mode: ::mode_t, + } + + pub struct __c_anonymous_posix_spawn_fae_dup2 { + pub newfildes: ::c_int, + } + + pub struct posix_spawnattr_t { + pub sa_flags: ::c_short, + pub sa_pgroup: ::pid_t, + pub sa_schedparam: ::sched_param, + pub sa_schedpolicy: ::c_int, + pub sa_sigdefault: sigset_t, + pub sa_sigmask: sigset_t, + } + + pub struct posix_spawn_file_actions_entry_t { + pub fae_action: fae_action, + pub fae_fildes: ::c_int, + #[cfg(libc_union)] + pub fae_data: __c_anonymous_posix_spawn_fae, + } + + pub struct posix_spawn_file_actions_t { + pub size: ::c_uint, + pub len: ::c_uint, + #[cfg(libc_union)] + pub fae: *mut posix_spawn_file_actions_entry_t, + } + + pub struct ptrace_lwpinfo { + pub pl_lwpid: lwpid_t, + pub pl_event: ::c_int, + } + + pub struct ptrace_lwpstatus { + pub pl_lwpid: lwpid_t, + pub pl_sigpend: sigset_t, + pub pl_sigmask: sigset_t, + pub pl_name: [::c_char; 20], + pub pl_private: *mut ::c_void, + } + + pub struct ptrace_siginfo { + pub psi_siginfo: siginfo_t, + pub psi_lwpid: lwpid_t, + } + + pub struct ptrace_event { + pub pe_set_event: ::c_int, + } + + pub struct sysctldesc { + pub descr_num: i32, + pub descr_ver: u32, + pub descr_len: u32, + pub descr_str: [::c_char; 1], + } + + pub struct ifreq { + pub _priv: [[::c_char; 6]; 24], + } + + pub struct ifconf { + pub ifc_len: ::c_int, + #[cfg(libc_union)] + pub ifc_ifcu: __c_anonymous_ifc_ifcu, + } + + 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 tcp_snd_wscale: u8, + pub tcp_rcv_wscale: u8, + 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, + pub __tcpi_last_data_sent: u32, + pub __tcpi_last_ack_sent: u32, + pub tcpi_last_data_recv: u32, + pub __tcpi_last_ack_recv: u32, + 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_snd_wnd: u32, + pub tcpi_snd_bwnd: u32, + pub tcpi_snd_nxt: u32, + pub tcpi_rcv_nxt: u32, + pub tcpi_toe_tid: u32, + pub tcpi_snd_rexmitpack: u32, + pub tcpi_rcv_ooopack: u32, + pub tcpi_snd_zerowin: u32, + pub __tcpi_pad: [u32; 26], + } +} + +s_no_extra_traits! { + + pub struct utmpx { + pub ut_name: [::c_char; _UTX_USERSIZE], + pub ut_id: [::c_char; _UTX_IDSIZE], + pub ut_line: [::c_char; _UTX_LINESIZE], + pub ut_host: [::c_char; _UTX_HOSTSIZE], + pub ut_session: u16, + pub ut_type: u16, + pub ut_pid: ::pid_t, + pub ut_exit: __exit_status, // FIXME: when anonymous struct are supported + pub ut_ss: sockaddr_storage, + pub ut_tv: ::timeval, + pub ut_pad: [u8; _UTX_PADSIZE], + } + + pub struct lastlogx { + pub ll_tv: ::timeval, + pub ll_line: [::c_char; _UTX_LINESIZE], + pub ll_host: [::c_char; _UTX_HOSTSIZE], + pub ll_ss: sockaddr_storage, + } + + pub struct in_pktinfo { + pub ipi_addr: ::in_addr, + pub ipi_ifindex: ::c_uint, + } + + pub struct arphdr { + pub ar_hrd: u16, + pub ar_pro: u16, + pub ar_hln: u8, + pub ar_pln: u8, + pub ar_op: u16, + } + + pub struct in_addr { + pub s_addr: ::in_addr_t, + } + + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [i8; 8], + } + + pub struct dirent { + pub d_fileno: ::ino_t, + pub d_reclen: u16, + pub d_namlen: u16, + pub d_type: u8, + pub d_name: [::c_char; 512], + } + + pub struct statvfs { + pub f_flag: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_iosize: ::c_ulong, + + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_bresvd: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fresvd: ::fsfilcnt_t, + + pub f_syncreads: u64, + pub f_syncwrites: u64, + + pub f_asyncreads: u64, + pub f_asyncwrites: u64, + + pub f_fsidx: ::fsid_t, + pub f_fsid: ::c_ulong, + pub f_namemax: ::c_ulong, + pub f_owner: ::uid_t, + + pub f_spare: [u32; 4], + + pub f_fstypename: [::c_char; 32], + pub f_mntonname: [::c_char; 1024], + pub f_mntfromname: [::c_char; 1024], + } + + pub struct sockaddr_storage { + pub ss_len: u8, + pub ss_family: ::sa_family_t, + __ss_pad1: [u8; 6], + __ss_pad2: i64, + __ss_pad3: [u8; 112], + } + + pub struct sigevent { + pub sigev_notify: ::c_int, + pub sigev_signo: ::c_int, + pub sigev_value: ::sigval, + __unused1: *mut ::c_void, //actually a function pointer + pub sigev_notify_attributes: *mut ::c_void + } + + #[cfg(libc_union)] + pub union __c_anonymous_posix_spawn_fae { + pub open: __c_anonymous_posix_spawn_fae_open, + pub dup2: __c_anonymous_posix_spawn_fae_dup2, + } + + #[cfg(libc_union)] + pub union __c_anonymous_ifc_ifcu { + pub ifcu_buf: *mut ::c_void, + pub ifcu_req: *mut ifreq, + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for utmpx { + fn eq(&self, other: &utmpx) -> bool { + self.ut_type == other.ut_type + && self.ut_pid == other.ut_pid + && self.ut_name == other.ut_name + && self.ut_line == other.ut_line + && self.ut_id == other.ut_id + && self.ut_exit == other.ut_exit + && self.ut_session == other.ut_session + && self.ut_tv == other.ut_tv + && self.ut_ss == other.ut_ss + && self + .ut_pad + .iter() + .zip(other.ut_pad.iter()) + .all(|(a,b)| a == b) + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for utmpx {} + + impl ::fmt::Debug for utmpx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmpx") + .field("ut_name", &self.ut_name) + .field("ut_id", &self.ut_id) + .field("ut_line", &self.ut_line) + // FIXME .field("ut_host", &self.ut_host) + .field("ut_session", &self.ut_session) + .field("ut_type", &self.ut_type) + .field("ut_pid", &self.ut_pid) + .field("ut_exit", &self.ut_exit) + .field("ut_ss", &self.ut_ss) + .field("ut_tv", &self.ut_tv) + // FIXME .field("ut_pad", &self.ut_pad) + .finish() + } + } + + impl ::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { + self.ut_name.hash(state); + self.ut_type.hash(state); + self.ut_pid.hash(state); + self.ut_line.hash(state); + self.ut_id.hash(state); + self.ut_host.hash(state); + self.ut_exit.hash(state); + self.ut_session.hash(state); + self.ut_tv.hash(state); + self.ut_ss.hash(state); + self.ut_pad.hash(state); + } + } + + impl PartialEq for lastlogx { + fn eq(&self, other: &lastlogx) -> bool { + self.ll_tv == other.ll_tv + && self.ll_line == other.ll_line + && self.ll_ss == other.ll_ss + && self + .ll_host + .iter() + .zip(other.ll_host.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for lastlogx {} + + impl ::fmt::Debug for lastlogx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("lastlogx") + .field("ll_tv", &self.ll_tv) + .field("ll_line", &self.ll_line) + // FIXME.field("ll_host", &self.ll_host) + .field("ll_ss", &self.ll_ss) + .finish() + } + } + + impl ::hash::Hash for lastlogx { + fn hash(&self, state: &mut H) { + self.ll_tv.hash(state); + self.ll_line.hash(state); + self.ll_host.hash(state); + self.ll_ss.hash(state); + } + } + + impl PartialEq for in_pktinfo { + fn eq(&self, other: &in_pktinfo) -> bool { + self.ipi_addr == other.ipi_addr + && self.ipi_ifindex == other.ipi_ifindex + } + } + impl Eq for in_pktinfo {} + impl ::fmt::Debug for in_pktinfo { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("in_pktinfo") + .field("ipi_addr", &self.ipi_addr) + .field("ipi_ifindex", &self.ipi_ifindex) + .finish() + } + } + impl ::hash::Hash for in_pktinfo { + fn hash(&self, state: &mut H) { + self.ipi_addr.hash(state); + self.ipi_ifindex.hash(state); + } + } + + impl PartialEq for arphdr { + fn eq(&self, other: &arphdr) -> bool { + self.ar_hrd == other.ar_hrd + && self.ar_pro == other.ar_pro + && self.ar_hln == other.ar_hln + && self.ar_pln == other.ar_pln + && self.ar_op == other.ar_op + } + } + impl Eq for arphdr {} + impl ::fmt::Debug for arphdr { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let ar_hrd = self.ar_hrd; + let ar_pro = self.ar_pro; + let ar_op = self.ar_op; + f.debug_struct("arphdr") + .field("ar_hrd", &ar_hrd) + .field("ar_pro", &ar_pro) + .field("ar_hln", &self.ar_hln) + .field("ar_pln", &self.ar_pln) + .field("ar_op", &ar_op) + .finish() + } + } + impl ::hash::Hash for arphdr { + fn hash(&self, state: &mut H) { + let ar_hrd = self.ar_hrd; + let ar_pro = self.ar_pro; + let ar_op = self.ar_op; + ar_hrd.hash(state); + ar_pro.hash(state); + self.ar_hln.hash(state); + self.ar_pln.hash(state); + ar_op.hash(state); + } + } + + impl PartialEq for in_addr { + fn eq(&self, other: &in_addr) -> bool { + self.s_addr == other.s_addr + } + } + impl Eq for in_addr {} + impl ::fmt::Debug for in_addr { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let s_addr = self.s_addr; + f.debug_struct("in_addr") + .field("s_addr", &s_addr) + .finish() + } + } + impl ::hash::Hash for in_addr { + fn hash(&self, state: &mut H) { + let s_addr = self.s_addr; + s_addr.hash(state); + } + } + + impl PartialEq for ip_mreq { + fn eq(&self, other: &ip_mreq) -> bool { + self.imr_multiaddr == other.imr_multiaddr + && self.imr_interface == other.imr_interface + } + } + impl Eq for ip_mreq {} + impl ::fmt::Debug for ip_mreq { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ip_mreq") + .field("imr_multiaddr", &self.imr_multiaddr) + .field("imr_interface", &self.imr_interface) + .finish() + } + } + impl ::hash::Hash for ip_mreq { + fn hash(&self, state: &mut H) { + self.imr_multiaddr.hash(state); + self.imr_interface.hash(state); + } + } + + impl PartialEq for sockaddr_in { + fn eq(&self, other: &sockaddr_in) -> bool { + self.sin_len == other.sin_len + && self.sin_family == other.sin_family + && self.sin_port == other.sin_port + && self.sin_addr == other.sin_addr + && self.sin_zero == other.sin_zero + } + } + impl Eq for sockaddr_in {} + impl ::fmt::Debug for sockaddr_in { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_in") + .field("sin_len", &self.sin_len) + .field("sin_family", &self.sin_family) + .field("sin_port", &self.sin_port) + .field("sin_addr", &self.sin_addr) + .field("sin_zero", &self.sin_zero) + .finish() + } + } + impl ::hash::Hash for sockaddr_in { + fn hash(&self, state: &mut H) { + self.sin_len.hash(state); + self.sin_family.hash(state); + self.sin_port.hash(state); + self.sin_addr.hash(state); + self.sin_zero.hash(state); + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_fileno == other.d_fileno + && self.d_reclen == other.d_reclen + && self.d_namlen == other.d_namlen + && self.d_type == other.d_type + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for dirent {} + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_fileno", &self.d_fileno) + .field("d_reclen", &self.d_reclen) + .field("d_namlen", &self.d_namlen) + .field("d_type", &self.d_type) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_fileno.hash(state); + self.d_reclen.hash(state); + self.d_namlen.hash(state); + self.d_type.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for statvfs { + fn eq(&self, other: &statvfs) -> bool { + self.f_flag == other.f_flag + && self.f_bsize == other.f_bsize + && self.f_frsize == other.f_frsize + && self.f_iosize == other.f_iosize + && self.f_blocks == other.f_blocks + && self.f_bfree == other.f_bfree + && self.f_bavail == other.f_bavail + && self.f_bresvd == other.f_bresvd + && self.f_files == other.f_files + && self.f_ffree == other.f_ffree + && self.f_favail == other.f_favail + && self.f_fresvd == other.f_fresvd + && self.f_syncreads == other.f_syncreads + && self.f_syncwrites == other.f_syncwrites + && self.f_asyncreads == other.f_asyncreads + && self.f_asyncwrites == other.f_asyncwrites + && self.f_fsidx == other.f_fsidx + && self.f_fsid == other.f_fsid + && self.f_namemax == other.f_namemax + && self.f_owner == other.f_owner + && self.f_spare == other.f_spare + && self.f_fstypename == other.f_fstypename + && self + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a,b)| a == b) + && self + .f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for statvfs {} + impl ::fmt::Debug for statvfs { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("statvfs") + .field("f_flag", &self.f_flag) + .field("f_bsize", &self.f_bsize) + .field("f_frsize", &self.f_frsize) + .field("f_iosize", &self.f_iosize) + .field("f_blocks", &self.f_blocks) + .field("f_bfree", &self.f_bfree) + .field("f_bavail", &self.f_bavail) + .field("f_bresvd", &self.f_bresvd) + .field("f_files", &self.f_files) + .field("f_ffree", &self.f_ffree) + .field("f_favail", &self.f_favail) + .field("f_fresvd", &self.f_fresvd) + .field("f_syncreads", &self.f_syncreads) + .field("f_syncwrites", &self.f_syncwrites) + .field("f_asyncreads", &self.f_asyncreads) + .field("f_asyncwrites", &self.f_asyncwrites) + .field("f_fsidx", &self.f_fsidx) + .field("f_fsid", &self.f_fsid) + .field("f_namemax", &self.f_namemax) + .field("f_owner", &self.f_owner) + .field("f_spare", &self.f_spare) + .field("f_fstypename", &self.f_fstypename) + // FIXME: .field("f_mntonname", &self.f_mntonname) + // FIXME: .field("f_mntfromname", &self.f_mntfromname) + .finish() + } + } + impl ::hash::Hash for statvfs { + fn hash(&self, state: &mut H) { + self.f_flag.hash(state); + self.f_bsize.hash(state); + self.f_frsize.hash(state); + self.f_iosize.hash(state); + self.f_blocks.hash(state); + self.f_bfree.hash(state); + self.f_bavail.hash(state); + self.f_bresvd.hash(state); + self.f_files.hash(state); + self.f_ffree.hash(state); + self.f_favail.hash(state); + self.f_fresvd.hash(state); + self.f_syncreads.hash(state); + self.f_syncwrites.hash(state); + self.f_asyncreads.hash(state); + self.f_asyncwrites.hash(state); + self.f_fsidx.hash(state); + self.f_fsid.hash(state); + self.f_namemax.hash(state); + self.f_owner.hash(state); + self.f_spare.hash(state); + self.f_fstypename.hash(state); + self.f_mntonname.hash(state); + self.f_mntfromname.hash(state); + } + } + + impl PartialEq for sockaddr_storage { + fn eq(&self, other: &sockaddr_storage) -> bool { + self.ss_len == other.ss_len + && self.ss_family == other.ss_family + && self.__ss_pad1 == other.__ss_pad1 + && self.__ss_pad2 == other.__ss_pad2 + && self + .__ss_pad3 + .iter() + .zip(other.__ss_pad3.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for sockaddr_storage {} + impl ::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_storage") + .field("ss_len", &self.ss_len) + .field("ss_family", &self.ss_family) + .field("__ss_pad1", &self.__ss_pad1) + .field("__ss_pad2", &self.__ss_pad2) + // FIXME: .field("__ss_pad3", &self.__ss_pad3) + .finish() + } + } + impl ::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { + self.ss_len.hash(state); + self.ss_family.hash(state); + self.__ss_pad1.hash(state); + self.__ss_pad2.hash(state); + self.__ss_pad3.hash(state); + } + } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_notify == other.sigev_notify + && self.sigev_signo == other.sigev_signo + && self.sigev_value == other.sigev_value + && self.sigev_notify_attributes + == other.sigev_notify_attributes + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_notify", &self.sigev_notify) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_value", &self.sigev_value) + .field("sigev_notify_attributes", + &self.sigev_notify_attributes) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_notify.hash(state); + self.sigev_signo.hash(state); + self.sigev_value.hash(state); + self.sigev_notify_attributes.hash(state); + } + } + + #[cfg(libc_union)] + impl Eq for __c_anonymous_posix_spawn_fae {} + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_posix_spawn_fae { + fn eq(&self, other: &__c_anonymous_posix_spawn_fae) -> bool { + unsafe { + self.open == other.open + || self.dup2 == other.dup2 + } + } + } + + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_posix_spawn_fae { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + unsafe { + f.debug_struct("__c_anonymous_posix_fae") + .field("open", &self.open) + .field("dup2", &self.dup2) + .finish() + } + } + } + + #[cfg(libc_union)] + impl ::hash::Hash for __c_anonymous_posix_spawn_fae { + fn hash(&self, state: &mut H) { + unsafe { + self.open.hash(state); + self.dup2.hash(state); + } + } + } + + #[cfg(libc_union)] + impl Eq for __c_anonymous_ifc_ifcu {} + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_ifc_ifcu { + fn eq(&self, other: &__c_anonymous_ifc_ifcu) -> bool { + unsafe { + self.ifcu_buf == other.ifcu_buf + || self.ifcu_req == other.ifcu_req + } + } + } + + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ifc_ifcu { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + unsafe { + f.debug_struct("__c_anonymous_ifc_ifcu") + .field("ifcu_buf", &self.ifcu_buf) + .field("ifcu_req", &self.ifcu_req) + .finish() + } + } + } + + #[cfg(libc_union)] + impl ::hash::Hash for __c_anonymous_ifc_ifcu { + fn hash(&self, state: &mut H) { + unsafe { + self.ifcu_buf.hash(state); + self.ifcu_req.hash(state); + } + } + } + } +} + +pub const AT_FDCWD: ::c_int = -100; +pub const AT_EACCESS: ::c_int = 0x100; +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x200; +pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; +pub const AT_REMOVEDIR: ::c_int = 0x800; + +pub const AT_NULL: ::c_int = 0; +pub const AT_IGNORE: ::c_int = 1; +pub const AT_EXECFD: ::c_int = 2; +pub const AT_PHDR: ::c_int = 3; +pub const AT_PHENT: ::c_int = 4; +pub const AT_PHNUM: ::c_int = 5; +pub const AT_PAGESZ: ::c_int = 6; +pub const AT_BASE: ::c_int = 7; +pub const AT_FLAGS: ::c_int = 8; +pub const AT_ENTRY: ::c_int = 9; +pub const AT_DCACHEBSIZE: ::c_int = 10; +pub const AT_ICACHEBSIZE: ::c_int = 11; +pub const AT_UCACHEBSIZE: ::c_int = 12; +pub const AT_STACKBASE: ::c_int = 13; +pub const AT_EUID: ::c_int = 2000; +pub const AT_RUID: ::c_int = 2001; +pub const AT_EGID: ::c_int = 2002; +pub const AT_RGID: ::c_int = 2003; +pub const AT_SUN_LDELF: ::c_int = 2004; +pub const AT_SUN_LDSHDR: ::c_int = 2005; +pub const AT_SUN_LDNAME: ::c_int = 2006; +pub const AT_SUN_LDPGSIZE: ::c_int = 2007; +pub const AT_SUN_PLATFORM: ::c_int = 2008; +pub const AT_SUN_HWCAP: ::c_int = 2009; +pub const AT_SUN_IFLUSH: ::c_int = 2010; +pub const AT_SUN_CPU: ::c_int = 2011; +pub const AT_SUN_EMUL_ENTRY: ::c_int = 2012; +pub const AT_SUN_EMUL_EXECFD: ::c_int = 2013; +pub const AT_SUN_EXECNAME: ::c_int = 2014; + +pub const EXTATTR_NAMESPACE_USER: ::c_int = 1; +pub const EXTATTR_NAMESPACE_SYSTEM: ::c_int = 2; + +pub const LC_COLLATE_MASK: ::c_int = 1 << ::LC_COLLATE; +pub const LC_CTYPE_MASK: ::c_int = 1 << ::LC_CTYPE; +pub const LC_MONETARY_MASK: ::c_int = 1 << ::LC_MONETARY; +pub const LC_NUMERIC_MASK: ::c_int = 1 << ::LC_NUMERIC; +pub const LC_TIME_MASK: ::c_int = 1 << ::LC_TIME; +pub const LC_MESSAGES_MASK: ::c_int = 1 << ::LC_MESSAGES; +pub const LC_ALL_MASK: ::c_int = !0; + +pub const ERA: ::nl_item = 52; +pub const ERA_D_FMT: ::nl_item = 53; +pub const ERA_D_T_FMT: ::nl_item = 54; +pub const ERA_T_FMT: ::nl_item = 55; +pub const ALT_DIGITS: ::nl_item = 56; + +pub const O_CLOEXEC: ::c_int = 0x400000; +pub const O_ALT_IO: ::c_int = 0x40000; +pub const O_NOSIGPIPE: ::c_int = 0x1000000; +pub const O_SEARCH: ::c_int = 0x800000; +pub const O_DIRECTORY: ::c_int = 0x200000; +pub const O_DIRECT: ::c_int = 0x00080000; +pub const O_RSYNC: ::c_int = 0x00020000; + +pub const MS_SYNC: ::c_int = 0x4; +pub const MS_INVALIDATE: ::c_int = 0x2; + +// Here because they are not present on OpenBSD +// (https://github.com/openbsd/src/blob/HEAD/sys/sys/resource.h) +pub const RLIMIT_SBSIZE: ::c_int = 9; +pub const RLIMIT_AS: ::c_int = 10; +pub const RLIMIT_NTHR: ::c_int = 11; + +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] +pub const RLIM_NLIMITS: ::c_int = 12; + +pub const EIDRM: ::c_int = 82; +pub const ENOMSG: ::c_int = 83; +pub const EOVERFLOW: ::c_int = 84; +pub const EILSEQ: ::c_int = 85; +pub const ENOTSUP: ::c_int = 86; +pub const ECANCELED: ::c_int = 87; +pub const EBADMSG: ::c_int = 88; +pub const ENODATA: ::c_int = 89; +pub const ENOSR: ::c_int = 90; +pub const ENOSTR: ::c_int = 91; +pub const ETIME: ::c_int = 92; +pub const ENOATTR: ::c_int = 93; +pub const EMULTIHOP: ::c_int = 94; +pub const ENOLINK: ::c_int = 95; +pub const EPROTO: ::c_int = 96; +pub const EOWNERDEAD: ::c_int = 97; +pub const ENOTRECOVERABLE: ::c_int = 98; +#[deprecated( + since = "0.2.143", + note = "This value will always match the highest defined error number \ + and thus is not stable. \ + See #3040 for more info." +)] +pub const ELAST: ::c_int = 98; + +pub const F_DUPFD_CLOEXEC: ::c_int = 12; +pub const F_CLOSEM: ::c_int = 10; +pub const F_GETNOSIGPIPE: ::c_int = 13; +pub const F_SETNOSIGPIPE: ::c_int = 14; +pub const F_MAXFD: ::c_int = 11; +pub const F_GETPATH: ::c_int = 15; + +pub const FUTEX_WAIT: ::c_int = 0; +pub const FUTEX_WAKE: ::c_int = 1; +pub const FUTEX_FD: ::c_int = 2; +pub const FUTEX_REQUEUE: ::c_int = 3; +pub const FUTEX_CMP_REQUEUE: ::c_int = 4; +pub const FUTEX_WAKE_OP: ::c_int = 5; +pub const FUTEX_LOCK_PI: ::c_int = 6; +pub const FUTEX_UNLOCK_PI: ::c_int = 7; +pub const FUTEX_TRYLOCK_PI: ::c_int = 8; +pub const FUTEX_WAIT_BITSET: ::c_int = 9; +pub const FUTEX_WAKE_BITSET: ::c_int = 10; +pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11; +pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12; +pub const FUTEX_PRIVATE_FLAG: ::c_int = 1 << 7; +pub const FUTEX_CLOCK_REALTIME: ::c_int = 1 << 8; +pub const FUTEX_CMD_MASK: ::c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); +pub const FUTEX_WAITERS: u32 = 1 << 31; +pub const FUTEX_OWNER_DIED: u32 = 1 << 30; +pub const FUTEX_SYNCOBJ_1: u32 = 1 << 29; +pub const FUTEX_SYNCOBJ_0: u32 = 1 << 28; +pub const FUTEX_TID_MASK: u32 = (1 << 28) - 1; +pub const FUTEX_BITSET_MATCH_ANY: u32 = !0; + +pub const IP_RECVDSTADDR: ::c_int = 7; +pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; +pub const IP_RECVIF: ::c_int = 20; +pub const IP_PKTINFO: ::c_int = 25; +pub const IP_RECVPKTINFO: ::c_int = 26; +pub const IPV6_JOIN_GROUP: ::c_int = 12; +pub const IPV6_LEAVE_GROUP: ::c_int = 13; + +pub const TCP_KEEPIDLE: ::c_int = 3; +pub const TCP_KEEPINTVL: ::c_int = 5; +pub const TCP_KEEPCNT: ::c_int = 6; +pub const TCP_KEEPINIT: ::c_int = 7; +pub const TCP_INFO: ::c_int = 9; +pub const TCP_MD5SIG: ::c_int = 0x10; +pub const TCP_CONGCTL: ::c_int = 0x20; + +pub const SOCK_CONN_DGRAM: ::c_int = 6; +pub const SOCK_DCCP: ::c_int = SOCK_CONN_DGRAM; +pub const SOCK_NOSIGPIPE: ::c_int = 0x40000000; +pub const SOCK_FLAGS_MASK: ::c_int = 0xf0000000; + +pub const SO_SNDTIMEO: ::c_int = 0x100b; +pub const SO_RCVTIMEO: ::c_int = 0x100c; +pub const SO_ACCEPTFILTER: ::c_int = 0x1000; +pub const SO_TIMESTAMP: ::c_int = 0x2000; +pub const SO_OVERFLOWED: ::c_int = 0x1009; +pub const SO_NOHEADER: ::c_int = 0x100a; + +// http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/un.h?annotate +pub const LOCAL_OCREDS: ::c_int = 0x0001; // pass credentials to receiver +pub const LOCAL_CONNWAIT: ::c_int = 0x0002; // connects block until accepted +pub const LOCAL_PEEREID: ::c_int = 0x0003; // get peer identification +pub const LOCAL_CREDS: ::c_int = 0x0004; // pass credentials to receiver + +// https://github.com/NetBSD/src/blob/trunk/sys/net/if.h#L373 +pub const IFF_UP: ::c_int = 0x0001; // interface is up +pub const IFF_BROADCAST: ::c_int = 0x0002; // broadcast address valid +pub const IFF_DEBUG: ::c_int = 0x0004; // turn on debugging +pub const IFF_LOOPBACK: ::c_int = 0x0008; // is a loopback net +pub const IFF_POINTOPOINT: ::c_int = 0x0010; // interface is point-to-point link +pub const IFF_NOTRAILERS: ::c_int = 0x0020; // avoid use of trailers +pub const IFF_RUNNING: ::c_int = 0x0040; // resources allocated +pub const IFF_NOARP: ::c_int = 0x0080; // no address resolution protocol +pub const IFF_PROMISC: ::c_int = 0x0100; // receive all packets +pub const IFF_ALLMULTI: ::c_int = 0x0200; // receive all multicast packets +pub const IFF_OACTIVE: ::c_int = 0x0400; // transmission in progress +pub const IFF_SIMPLEX: ::c_int = 0x0800; // can't hear own transmissions +pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit +pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit +pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit +pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast + +// sys/netinet/in.h +// Protocols (RFC 1700) +// NOTE: These are in addition to the constants defined in src/unix/mod.rs + +// IPPROTO_IP defined in src/unix/mod.rs +/// Hop-by-hop option header +pub const IPPROTO_HOPOPTS: ::c_int = 0; +// IPPROTO_ICMP defined in src/unix/mod.rs +/// group mgmt protocol +pub const IPPROTO_IGMP: ::c_int = 2; +/// gateway^2 (deprecated) +pub const IPPROTO_GGP: ::c_int = 3; +/// for compatibility +pub const IPPROTO_IPIP: ::c_int = 4; +// IPPROTO_TCP defined in src/unix/mod.rs +/// exterior gateway protocol +pub const IPPROTO_EGP: ::c_int = 8; +/// pup +pub const IPPROTO_PUP: ::c_int = 12; +// IPPROTO_UDP defined in src/unix/mod.rs +/// xns idp +pub const IPPROTO_IDP: ::c_int = 22; +/// tp-4 w/ class negotiation +pub const IPPROTO_TP: ::c_int = 29; +/// DCCP +pub const IPPROTO_DCCP: ::c_int = 33; +// IPPROTO_IPV6 defined in src/unix/mod.rs +/// IP6 routing header +pub const IPPROTO_ROUTING: ::c_int = 43; +/// IP6 fragmentation header +pub const IPPROTO_FRAGMENT: ::c_int = 44; +/// resource reservation +pub const IPPROTO_RSVP: ::c_int = 46; +/// General Routing Encap. +pub const IPPROTO_GRE: ::c_int = 47; +/// IP6 Encap Sec. Payload +pub const IPPROTO_ESP: ::c_int = 50; +/// IP6 Auth Header +pub const IPPROTO_AH: ::c_int = 51; +/// IP Mobility RFC 2004 +pub const IPPROTO_MOBILE: ::c_int = 55; +/// IPv6 ICMP +pub const IPPROTO_IPV6_ICMP: ::c_int = 58; +// IPPROTO_ICMPV6 defined in src/unix/mod.rs +/// IP6 no next header +pub const IPPROTO_NONE: ::c_int = 59; +/// IP6 destination option +pub const IPPROTO_DSTOPTS: ::c_int = 60; +/// ISO cnlp +pub const IPPROTO_EON: ::c_int = 80; +/// Ethernet-in-IP +pub const IPPROTO_ETHERIP: ::c_int = 97; +/// encapsulation header +pub const IPPROTO_ENCAP: ::c_int = 98; +/// Protocol indep. multicast +pub const IPPROTO_PIM: ::c_int = 103; +/// IP Payload Comp. Protocol +pub const IPPROTO_IPCOMP: ::c_int = 108; +/// VRRP RFC 2338 +pub const IPPROTO_VRRP: ::c_int = 112; +/// Common Address Resolution Protocol +pub const IPPROTO_CARP: ::c_int = 112; +/// L2TPv3 +pub const IPPROTO_L2TP: ::c_int = 115; +/// SCTP +pub const IPPROTO_SCTP: ::c_int = 132; +/// PFSYNC +pub const IPPROTO_PFSYNC: ::c_int = 240; +pub const IPPROTO_MAX: ::c_int = 256; + +/// last return value of *_input(), meaning "all job for this pkt is done". +pub const IPPROTO_DONE: ::c_int = 257; + +/// sysctl placeholder for (FAST_)IPSEC +pub const CTL_IPPROTO_IPSEC: ::c_int = 258; + +pub const AF_OROUTE: ::c_int = 17; +pub const AF_ARP: ::c_int = 28; +pub const pseudo_AF_KEY: ::c_int = 29; +pub const pseudo_AF_HDRCMPLT: ::c_int = 30; +pub const AF_BLUETOOTH: ::c_int = 31; +pub const AF_IEEE80211: ::c_int = 32; +pub const AF_MPLS: ::c_int = 33; +pub const AF_ROUTE: ::c_int = 34; +pub const NET_RT_DUMP: ::c_int = 1; +pub const NET_RT_FLAGS: ::c_int = 2; +pub const NET_RT_OOOIFLIST: ::c_int = 3; +pub const NET_RT_OOIFLIST: ::c_int = 4; +pub const NET_RT_OIFLIST: ::c_int = 5; +pub const NET_RT_IFLIST: ::c_int = 6; +pub const NET_RT_MAXID: ::c_int = 7; + +pub const PF_OROUTE: ::c_int = AF_OROUTE; +pub const PF_ARP: ::c_int = AF_ARP; +pub const PF_KEY: ::c_int = pseudo_AF_KEY; +pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; +pub const PF_MPLS: ::c_int = AF_MPLS; +pub const PF_ROUTE: ::c_int = AF_ROUTE; + +pub const MSG_NBIO: ::c_int = 0x1000; +pub const MSG_WAITFORONE: ::c_int = 0x2000; +pub const MSG_NOTIFICATION: ::c_int = 0x4000; + +pub const SCM_TIMESTAMP: ::c_int = 0x08; +pub const SCM_CREDS: ::c_int = 0x10; + +pub const O_DSYNC: ::c_int = 0x10000; + +pub const MAP_RENAME: ::c_int = 0x20; +pub const MAP_NORESERVE: ::c_int = 0x40; +pub const MAP_HASSEMAPHORE: ::c_int = 0x200; +pub const MAP_WIRED: ::c_int = 0x800; +pub const MAP_STACK: ::c_int = 0x2000; +// map alignment aliases for MAP_ALIGNED +pub const MAP_ALIGNMENT_SHIFT: ::c_int = 24; +pub const MAP_ALIGNMENT_MASK: ::c_int = 0xff << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNMENT_64KB: ::c_int = 16 << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNMENT_16MB: ::c_int = 24 << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNMENT_4GB: ::c_int = 32 << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNMENT_1TB: ::c_int = 40 << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNMENT_256TB: ::c_int = 48 << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNMENT_64PB: ::c_int = 56 << MAP_ALIGNMENT_SHIFT; +// mremap flag +pub const MAP_REMAPDUP: ::c_int = 0x004; + +pub const DCCP_TYPE_REQUEST: ::c_int = 0; +pub const DCCP_TYPE_RESPONSE: ::c_int = 1; +pub const DCCP_TYPE_DATA: ::c_int = 2; +pub const DCCP_TYPE_ACK: ::c_int = 3; +pub const DCCP_TYPE_DATAACK: ::c_int = 4; +pub const DCCP_TYPE_CLOSEREQ: ::c_int = 5; +pub const DCCP_TYPE_CLOSE: ::c_int = 6; +pub const DCCP_TYPE_RESET: ::c_int = 7; +pub const DCCP_TYPE_MOVE: ::c_int = 8; + +pub const DCCP_FEATURE_CC: ::c_int = 1; +pub const DCCP_FEATURE_ECN: ::c_int = 2; +pub const DCCP_FEATURE_ACKRATIO: ::c_int = 3; +pub const DCCP_FEATURE_ACKVECTOR: ::c_int = 4; +pub const DCCP_FEATURE_MOBILITY: ::c_int = 5; +pub const DCCP_FEATURE_LOSSWINDOW: ::c_int = 6; +pub const DCCP_FEATURE_CONN_NONCE: ::c_int = 8; +pub const DCCP_FEATURE_IDENTREG: ::c_int = 7; + +pub const DCCP_OPT_PADDING: ::c_int = 0; +pub const DCCP_OPT_DATA_DISCARD: ::c_int = 1; +pub const DCCP_OPT_SLOW_RECV: ::c_int = 2; +pub const DCCP_OPT_BUF_CLOSED: ::c_int = 3; +pub const DCCP_OPT_CHANGE_L: ::c_int = 32; +pub const DCCP_OPT_CONFIRM_L: ::c_int = 33; +pub const DCCP_OPT_CHANGE_R: ::c_int = 34; +pub const DCCP_OPT_CONFIRM_R: ::c_int = 35; +pub const DCCP_OPT_INIT_COOKIE: ::c_int = 36; +pub const DCCP_OPT_NDP_COUNT: ::c_int = 37; +pub const DCCP_OPT_ACK_VECTOR0: ::c_int = 38; +pub const DCCP_OPT_ACK_VECTOR1: ::c_int = 39; +pub const DCCP_OPT_RECV_BUF_DROPS: ::c_int = 40; +pub const DCCP_OPT_TIMESTAMP: ::c_int = 41; +pub const DCCP_OPT_TIMESTAMP_ECHO: ::c_int = 42; +pub const DCCP_OPT_ELAPSEDTIME: ::c_int = 43; +pub const DCCP_OPT_DATACHECKSUM: ::c_int = 44; + +pub const DCCP_REASON_UNSPEC: ::c_int = 0; +pub const DCCP_REASON_CLOSED: ::c_int = 1; +pub const DCCP_REASON_INVALID: ::c_int = 2; +pub const DCCP_REASON_OPTION_ERR: ::c_int = 3; +pub const DCCP_REASON_FEA_ERR: ::c_int = 4; +pub const DCCP_REASON_CONN_REF: ::c_int = 5; +pub const DCCP_REASON_BAD_SNAME: ::c_int = 6; +pub const DCCP_REASON_BAD_COOKIE: ::c_int = 7; +pub const DCCP_REASON_INV_MOVE: ::c_int = 8; +pub const DCCP_REASON_UNANSW_CH: ::c_int = 10; +pub const DCCP_REASON_FRUITLESS_NEG: ::c_int = 11; + +pub const DCCP_CCID: ::c_int = 1; +pub const DCCP_CSLEN: ::c_int = 2; +pub const DCCP_MAXSEG: ::c_int = 4; +pub const DCCP_SERVICE: ::c_int = 8; + +pub const DCCP_NDP_LIMIT: ::c_int = 16; +pub const DCCP_SEQ_NUM_LIMIT: ::c_int = 16777216; +pub const DCCP_MAX_OPTIONS: ::c_int = 32; +pub const DCCP_MAX_PKTS: ::c_int = 100; + +pub const _PC_LINK_MAX: ::c_int = 1; +pub const _PC_MAX_CANON: ::c_int = 2; +pub const _PC_MAX_INPUT: ::c_int = 3; +pub const _PC_NAME_MAX: ::c_int = 4; +pub const _PC_PATH_MAX: ::c_int = 5; +pub const _PC_PIPE_BUF: ::c_int = 6; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; +pub const _PC_NO_TRUNC: ::c_int = 8; +pub const _PC_VDISABLE: ::c_int = 9; +pub const _PC_SYNC_IO: ::c_int = 10; +pub const _PC_FILESIZEBITS: ::c_int = 11; +pub const _PC_SYMLINK_MAX: ::c_int = 12; +pub const _PC_2_SYMLINKS: ::c_int = 13; +pub const _PC_ACL_EXTENDED: ::c_int = 14; +pub const _PC_MIN_HOLE_SIZE: ::c_int = 15; + +pub const _SC_SYNCHRONIZED_IO: ::c_int = 31; +pub const _SC_IOV_MAX: ::c_int = 32; +pub const _SC_MAPPED_FILES: ::c_int = 33; +pub const _SC_MEMLOCK: ::c_int = 34; +pub const _SC_MEMLOCK_RANGE: ::c_int = 35; +pub const _SC_MEMORY_PROTECTION: ::c_int = 36; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 37; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 38; +pub const _SC_CLK_TCK: ::c_int = 39; +pub const _SC_ATEXIT_MAX: ::c_int = 40; +pub const _SC_THREADS: ::c_int = 41; +pub const _SC_SEMAPHORES: ::c_int = 42; +pub const _SC_BARRIERS: ::c_int = 43; +pub const _SC_TIMERS: ::c_int = 44; +pub const _SC_SPIN_LOCKS: ::c_int = 45; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 46; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 47; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 48; +pub const _SC_CLOCK_SELECTION: ::c_int = 49; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 50; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 51; +pub const _SC_AIO_MAX: ::c_int = 52; +pub const _SC_MESSAGE_PASSING: ::c_int = 53; +pub const _SC_MQ_OPEN_MAX: ::c_int = 54; +pub const _SC_MQ_PRIO_MAX: ::c_int = 55; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 56; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 57; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 58; +pub const _SC_THREAD_STACK_MIN: ::c_int = 59; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 60; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 61; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 62; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 63; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 64; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 65; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 66; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 67; +pub const _SC_TTY_NAME_MAX: ::c_int = 68; +pub const _SC_HOST_NAME_MAX: ::c_int = 69; +pub const _SC_PASS_MAX: ::c_int = 70; +pub const _SC_REGEXP: ::c_int = 71; +pub const _SC_SHELL: ::c_int = 72; +pub const _SC_SYMLOOP_MAX: ::c_int = 73; +pub const _SC_V6_ILP32_OFF32: ::c_int = 74; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 75; +pub const _SC_V6_LP64_OFF64: ::c_int = 76; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 77; +pub const _SC_2_PBS: ::c_int = 80; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 81; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 82; +pub const _SC_2_PBS_LOCATE: ::c_int = 83; +pub const _SC_2_PBS_MESSAGE: ::c_int = 84; +pub const _SC_2_PBS_TRACK: ::c_int = 85; +pub const _SC_SPAWN: ::c_int = 86; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 87; +pub const _SC_TIMER_MAX: ::c_int = 88; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 89; +pub const _SC_CPUTIME: ::c_int = 90; +pub const _SC_THREAD_CPUTIME: ::c_int = 91; +pub const _SC_DELAYTIMER_MAX: ::c_int = 92; +// These two variables will be supported in NetBSD 8.0 +// pub const _SC_SIGQUEUE_MAX : ::c_int = 93; +// pub const _SC_REALTIME_SIGNALS : ::c_int = 94; +pub const _SC_PHYS_PAGES: ::c_int = 121; +pub const _SC_NPROCESSORS_CONF: ::c_int = 1001; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 1002; +pub const _SC_SCHED_RT_TS: ::c_int = 2001; +pub const _SC_SCHED_PRI_MIN: ::c_int = 2002; +pub const _SC_SCHED_PRI_MAX: ::c_int = 2003; + +pub const FD_SETSIZE: usize = 0x100; + +pub const ST_NOSUID: ::c_ulong = 8; + +pub const BIOCGRSIG: ::c_ulong = 0x40044272; +pub const BIOCSRSIG: ::c_ulong = 0x80044273; +pub const BIOCSDLT: ::c_ulong = 0x80044278; +pub const BIOCGSEESENT: ::c_ulong = 0x40044276; +pub const BIOCSSEESENT: ::c_ulong = 0x80044277; + +// +pub const MNT_UNION: ::c_int = 0x00000020; +pub const MNT_NOCOREDUMP: ::c_int = 0x00008000; +pub const MNT_RELATIME: ::c_int = 0x00020000; +pub const MNT_IGNORE: ::c_int = 0x00100000; +pub const MNT_NFS4ACLS: ::c_int = 0x00200000; +pub const MNT_DISCARD: ::c_int = 0x00800000; +pub const MNT_EXTATTR: ::c_int = 0x01000000; +pub const MNT_LOG: ::c_int = 0x02000000; +pub const MNT_NOATIME: ::c_int = 0x04000000; +pub const MNT_AUTOMOUNTED: ::c_int = 0x10000000; +pub const MNT_SYMPERM: ::c_int = 0x20000000; +pub const MNT_NODEVMTIME: ::c_int = 0x40000000; +pub const MNT_SOFTDEP: ::c_int = 0x80000000; +pub const MNT_POSIX1EACLS: ::c_int = 0x00000800; +pub const MNT_ACLS: ::c_int = MNT_POSIX1EACLS; + +// +pub const NTP_API: ::c_int = 4; +pub const MAXPHASE: ::c_long = 500000000; +pub const MAXFREQ: ::c_long = 500000; +pub const MINSEC: ::c_int = 256; +pub const MAXSEC: ::c_int = 2048; +pub const NANOSECOND: ::c_long = 1000000000; +pub const SCALE_PPM: ::c_int = 65; +pub const MAXTC: ::c_int = 10; +pub const MOD_OFFSET: ::c_uint = 0x0001; +pub const MOD_FREQUENCY: ::c_uint = 0x0002; +pub const MOD_MAXERROR: ::c_uint = 0x0004; +pub const MOD_ESTERROR: ::c_uint = 0x0008; +pub const MOD_STATUS: ::c_uint = 0x0010; +pub const MOD_TIMECONST: ::c_uint = 0x0020; +pub const MOD_PPSMAX: ::c_uint = 0x0040; +pub const MOD_TAI: ::c_uint = 0x0080; +pub const MOD_MICRO: ::c_uint = 0x1000; +pub const MOD_NANO: ::c_uint = 0x2000; +pub const MOD_CLKB: ::c_uint = 0x4000; +pub const MOD_CLKA: ::c_uint = 0x8000; +pub const STA_PLL: ::c_int = 0x0001; +pub const STA_PPSFREQ: ::c_int = 0x0002; +pub const STA_PPSTIME: ::c_int = 0x0004; +pub const STA_FLL: ::c_int = 0x0008; +pub const STA_INS: ::c_int = 0x0010; +pub const STA_DEL: ::c_int = 0x0020; +pub const STA_UNSYNC: ::c_int = 0x0040; +pub const STA_FREQHOLD: ::c_int = 0x0080; +pub const STA_PPSSIGNAL: ::c_int = 0x0100; +pub const STA_PPSJITTER: ::c_int = 0x0200; +pub const STA_PPSWANDER: ::c_int = 0x0400; +pub const STA_PPSERROR: ::c_int = 0x0800; +pub const STA_CLOCKERR: ::c_int = 0x1000; +pub const STA_NANO: ::c_int = 0x2000; +pub const STA_MODE: ::c_int = 0x4000; +pub const STA_CLK: ::c_int = 0x8000; +pub const STA_RONLY: ::c_int = STA_PPSSIGNAL + | STA_PPSJITTER + | STA_PPSWANDER + | STA_PPSERROR + | STA_CLOCKERR + | STA_NANO + | STA_MODE + | STA_CLK; +pub const TIME_OK: ::c_int = 0; +pub const TIME_INS: ::c_int = 1; +pub const TIME_DEL: ::c_int = 2; +pub const TIME_OOP: ::c_int = 3; +pub const TIME_WAIT: ::c_int = 4; +pub const TIME_ERROR: ::c_int = 5; + +pub const LITTLE_ENDIAN: ::c_int = 1234; +pub const BIG_ENDIAN: ::c_int = 4321; + +pub const PL_EVENT_NONE: ::c_int = 0; +pub const PL_EVENT_SIGNAL: ::c_int = 1; +pub const PL_EVENT_SUSPENDED: ::c_int = 2; + +cfg_if! { + if #[cfg(any(target_arch = "sparc", target_arch = "sparc64", + target_arch = "x86", target_arch = "x86_64"))] { + pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t + = pthread_mutex_t { + ptm_magic: 0x33330003, + ptm_errorcheck: 0, + ptm_pad1: [0; 3], + ptm_unused: 0, + ptm_pad2: [0; 3], + ptm_waiters: 0 as *mut _, + ptm_owner: 0, + ptm_recursed: 0, + ptm_spare2: 0 as *mut _, + }; + } else { + pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t + = pthread_mutex_t { + ptm_magic: 0x33330003, + ptm_errorcheck: 0, + ptm_unused: 0, + ptm_waiters: 0 as *mut _, + ptm_owner: 0, + ptm_recursed: 0, + ptm_spare2: 0 as *mut _, + }; + } +} + +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + ptc_magic: 0x55550005, + ptc_lock: 0, + ptc_waiters_first: 0 as *mut _, + ptc_waiters_last: 0 as *mut _, + ptc_mutex: 0 as *mut _, + ptc_private: 0 as *mut _, +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + ptr_magic: 0x99990009, + ptr_interlock: 0, + ptr_rblocked_first: 0 as *mut _, + ptr_rblocked_last: 0 as *mut _, + ptr_wblocked_first: 0 as *mut _, + ptr_wblocked_last: 0 as *mut _, + ptr_nreaders: 0, + ptr_owner: 0, + ptr_private: 0 as *mut _, +}; +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; + +pub const SCHED_NONE: ::c_int = -1; +pub const SCHED_OTHER: ::c_int = 0; +pub const SCHED_FIFO: ::c_int = 1; +pub const SCHED_RR: ::c_int = 2; + +pub const EVFILT_AIO: u32 = 2; +pub const EVFILT_PROC: u32 = 4; +pub const EVFILT_READ: u32 = 0; +pub const EVFILT_SIGNAL: u32 = 5; +pub const EVFILT_TIMER: u32 = 6; +pub const EVFILT_VNODE: u32 = 3; +pub const EVFILT_WRITE: u32 = 1; +pub const EVFILT_FS: u32 = 7; +pub const EVFILT_USER: u32 = 8; +pub const EVFILT_EMPTY: u32 = 9; + +pub const EV_ADD: u32 = 0x1; +pub const EV_DELETE: u32 = 0x2; +pub const EV_ENABLE: u32 = 0x4; +pub const EV_DISABLE: u32 = 0x8; +pub const EV_ONESHOT: u32 = 0x10; +pub const EV_CLEAR: u32 = 0x20; +pub const EV_RECEIPT: u32 = 0x40; +pub const EV_DISPATCH: u32 = 0x80; +pub const EV_FLAG1: u32 = 0x2000; +pub const EV_ERROR: u32 = 0x4000; +pub const EV_EOF: u32 = 0x8000; +pub const EV_SYSFLAGS: u32 = 0xf000; + +pub const NOTE_TRIGGER: u32 = 0x01000000; +pub const NOTE_FFNOP: u32 = 0x00000000; +pub const NOTE_FFAND: u32 = 0x40000000; +pub const NOTE_FFOR: u32 = 0x80000000; +pub const NOTE_FFCOPY: u32 = 0xc0000000; +pub const NOTE_FFCTRLMASK: u32 = 0xc0000000; +pub const NOTE_FFLAGSMASK: u32 = 0x00ffffff; +pub const NOTE_LOWAT: u32 = 0x00000001; +pub const NOTE_DELETE: u32 = 0x00000001; +pub const NOTE_WRITE: u32 = 0x00000002; +pub const NOTE_EXTEND: u32 = 0x00000004; +pub const NOTE_ATTRIB: u32 = 0x00000008; +pub const NOTE_LINK: u32 = 0x00000010; +pub const NOTE_RENAME: u32 = 0x00000020; +pub const NOTE_REVOKE: u32 = 0x00000040; +pub const NOTE_EXIT: u32 = 0x80000000; +pub const NOTE_FORK: u32 = 0x40000000; +pub const NOTE_EXEC: u32 = 0x20000000; +pub const NOTE_PDATAMASK: u32 = 0x000fffff; +pub const NOTE_PCTRLMASK: u32 = 0xf0000000; +pub const NOTE_TRACK: u32 = 0x00000001; +pub const NOTE_TRACKERR: u32 = 0x00000002; +pub const NOTE_CHILD: u32 = 0x00000004; +pub const NOTE_MSECONDS: u32 = 0x00000000; +pub const NOTE_SECONDS: u32 = 0x00000001; +pub const NOTE_USECONDS: u32 = 0x00000002; +pub const NOTE_NSECONDS: u32 = 0x00000003; +pub const NOTE_ABSTIME: u32 = 0x000000010; + +pub const TMP_MAX: ::c_uint = 308915776; + +pub const AI_PASSIVE: ::c_int = 0x00000001; +pub const AI_CANONNAME: ::c_int = 0x00000002; +pub const AI_NUMERICHOST: ::c_int = 0x00000004; +pub const AI_NUMERICSERV: ::c_int = 0x00000008; +pub const AI_ADDRCONFIG: ::c_int = 0x00000400; +pub const AI_SRV: ::c_int = 0x00000800; + +pub const NI_MAXHOST: ::socklen_t = 1025; +pub const NI_MAXSERV: ::socklen_t = 32; + +pub const NI_NOFQDN: ::c_int = 0x00000001; +pub const NI_NUMERICHOST: ::c_int = 0x000000002; +pub const NI_NAMEREQD: ::c_int = 0x000000004; +pub const NI_NUMERICSERV: ::c_int = 0x000000008; +pub const NI_DGRAM: ::c_int = 0x00000010; +pub const NI_WITHSCOPEID: ::c_int = 0x00000020; +pub const NI_NUMERICSCOPE: ::c_int = 0x00000040; + +pub const RTLD_NOLOAD: ::c_int = 0x2000; +pub const RTLD_LOCAL: ::c_int = 0x200; + +pub const CTL_MAXNAME: ::c_int = 12; +pub const SYSCTL_NAMELEN: ::c_int = 32; +pub const SYSCTL_DEFSIZE: ::c_int = 8; +pub const CTLTYPE_NODE: ::c_int = 1; +pub const CTLTYPE_INT: ::c_int = 2; +pub const CTLTYPE_STRING: ::c_int = 3; +pub const CTLTYPE_QUAD: ::c_int = 4; +pub const CTLTYPE_STRUCT: ::c_int = 5; +pub const CTLTYPE_BOOL: ::c_int = 6; +pub const CTLFLAG_READONLY: ::c_int = 0x00000000; +pub const CTLFLAG_READWRITE: ::c_int = 0x00000070; +pub const CTLFLAG_ANYWRITE: ::c_int = 0x00000080; +pub const CTLFLAG_PRIVATE: ::c_int = 0x00000100; +pub const CTLFLAG_PERMANENT: ::c_int = 0x00000200; +pub const CTLFLAG_OWNDATA: ::c_int = 0x00000400; +pub const CTLFLAG_IMMEDIATE: ::c_int = 0x00000800; +pub const CTLFLAG_HEX: ::c_int = 0x00001000; +pub const CTLFLAG_ROOT: ::c_int = 0x00002000; +pub const CTLFLAG_ANYNUMBER: ::c_int = 0x00004000; +pub const CTLFLAG_HIDDEN: ::c_int = 0x00008000; +pub const CTLFLAG_ALIAS: ::c_int = 0x00010000; +pub const CTLFLAG_MMAP: ::c_int = 0x00020000; +pub const CTLFLAG_OWNDESC: ::c_int = 0x00040000; +pub const CTLFLAG_UNSIGNED: ::c_int = 0x00080000; +pub const SYSCTL_VERS_MASK: ::c_int = 0xff000000; +pub const SYSCTL_VERS_0: ::c_int = 0x00000000; +pub const SYSCTL_VERS_1: ::c_int = 0x01000000; +pub const SYSCTL_VERSION: ::c_int = SYSCTL_VERS_1; +pub const CTL_EOL: ::c_int = -1; +pub const CTL_QUERY: ::c_int = -2; +pub const CTL_CREATE: ::c_int = -3; +pub const CTL_CREATESYM: ::c_int = -4; +pub const CTL_DESTROY: ::c_int = -5; +pub const CTL_MMAP: ::c_int = -6; +pub const CTL_DESCRIBE: ::c_int = -7; +pub const CTL_UNSPEC: ::c_int = 0; +pub const CTL_KERN: ::c_int = 1; +pub const CTL_VM: ::c_int = 2; +pub const CTL_VFS: ::c_int = 3; +pub const CTL_NET: ::c_int = 4; +pub const CTL_DEBUG: ::c_int = 5; +pub const CTL_HW: ::c_int = 6; +pub const CTL_MACHDEP: ::c_int = 7; +pub const CTL_USER: ::c_int = 8; +pub const CTL_DDB: ::c_int = 9; +pub const CTL_PROC: ::c_int = 10; +pub const CTL_VENDOR: ::c_int = 11; +pub const CTL_EMUL: ::c_int = 12; +pub const CTL_SECURITY: ::c_int = 13; +pub const CTL_MAXID: ::c_int = 14; +pub const KERN_OSTYPE: ::c_int = 1; +pub const KERN_OSRELEASE: ::c_int = 2; +pub const KERN_OSREV: ::c_int = 3; +pub const KERN_VERSION: ::c_int = 4; +pub const KERN_MAXVNODES: ::c_int = 5; +pub const KERN_MAXPROC: ::c_int = 6; +pub const KERN_MAXFILES: ::c_int = 7; +pub const KERN_ARGMAX: ::c_int = 8; +pub const KERN_SECURELVL: ::c_int = 9; +pub const KERN_HOSTNAME: ::c_int = 10; +pub const KERN_HOSTID: ::c_int = 11; +pub const KERN_CLOCKRATE: ::c_int = 12; +pub const KERN_VNODE: ::c_int = 13; +pub const KERN_PROC: ::c_int = 14; +pub const KERN_FILE: ::c_int = 15; +pub const KERN_PROF: ::c_int = 16; +pub const KERN_POSIX1: ::c_int = 17; +pub const KERN_NGROUPS: ::c_int = 18; +pub const KERN_JOB_CONTROL: ::c_int = 19; +pub const KERN_SAVED_IDS: ::c_int = 20; +pub const KERN_OBOOTTIME: ::c_int = 21; +pub const KERN_DOMAINNAME: ::c_int = 22; +pub const KERN_MAXPARTITIONS: ::c_int = 23; +pub const KERN_RAWPARTITION: ::c_int = 24; +pub const KERN_NTPTIME: ::c_int = 25; +pub const KERN_TIMEX: ::c_int = 26; +pub const KERN_AUTONICETIME: ::c_int = 27; +pub const KERN_AUTONICEVAL: ::c_int = 28; +pub const KERN_RTC_OFFSET: ::c_int = 29; +pub const KERN_ROOT_DEVICE: ::c_int = 30; +pub const KERN_MSGBUFSIZE: ::c_int = 31; +pub const KERN_FSYNC: ::c_int = 32; +pub const KERN_OLDSYSVMSG: ::c_int = 33; +pub const KERN_OLDSYSVSEM: ::c_int = 34; +pub const KERN_OLDSYSVSHM: ::c_int = 35; +pub const KERN_OLDSHORTCORENAME: ::c_int = 36; +pub const KERN_SYNCHRONIZED_IO: ::c_int = 37; +pub const KERN_IOV_MAX: ::c_int = 38; +pub const KERN_MBUF: ::c_int = 39; +pub const KERN_MAPPED_FILES: ::c_int = 40; +pub const KERN_MEMLOCK: ::c_int = 41; +pub const KERN_MEMLOCK_RANGE: ::c_int = 42; +pub const KERN_MEMORY_PROTECTION: ::c_int = 43; +pub const KERN_LOGIN_NAME_MAX: ::c_int = 44; +pub const KERN_DEFCORENAME: ::c_int = 45; +pub const KERN_LOGSIGEXIT: ::c_int = 46; +pub const KERN_PROC2: ::c_int = 47; +pub const KERN_PROC_ARGS: ::c_int = 48; +pub const KERN_FSCALE: ::c_int = 49; +pub const KERN_CCPU: ::c_int = 50; +pub const KERN_CP_TIME: ::c_int = 51; +pub const KERN_OLDSYSVIPC_INFO: ::c_int = 52; +pub const KERN_MSGBUF: ::c_int = 53; +pub const KERN_CONSDEV: ::c_int = 54; +pub const KERN_MAXPTYS: ::c_int = 55; +pub const KERN_PIPE: ::c_int = 56; +pub const KERN_MAXPHYS: ::c_int = 57; +pub const KERN_SBMAX: ::c_int = 58; +pub const KERN_TKSTAT: ::c_int = 59; +pub const KERN_MONOTONIC_CLOCK: ::c_int = 60; +pub const KERN_URND: ::c_int = 61; +pub const KERN_LABELSECTOR: ::c_int = 62; +pub const KERN_LABELOFFSET: ::c_int = 63; +pub const KERN_LWP: ::c_int = 64; +pub const KERN_FORKFSLEEP: ::c_int = 65; +pub const KERN_POSIX_THREADS: ::c_int = 66; +pub const KERN_POSIX_SEMAPHORES: ::c_int = 67; +pub const KERN_POSIX_BARRIERS: ::c_int = 68; +pub const KERN_POSIX_TIMERS: ::c_int = 69; +pub const KERN_POSIX_SPIN_LOCKS: ::c_int = 70; +pub const KERN_POSIX_READER_WRITER_LOCKS: ::c_int = 71; +pub const KERN_DUMP_ON_PANIC: ::c_int = 72; +pub const KERN_SOMAXKVA: ::c_int = 73; +pub const KERN_ROOT_PARTITION: ::c_int = 74; +pub const KERN_DRIVERS: ::c_int = 75; +pub const KERN_BUF: ::c_int = 76; +pub const KERN_FILE2: ::c_int = 77; +pub const KERN_VERIEXEC: ::c_int = 78; +pub const KERN_CP_ID: ::c_int = 79; +pub const KERN_HARDCLOCK_TICKS: ::c_int = 80; +pub const KERN_ARND: ::c_int = 81; +pub const KERN_SYSVIPC: ::c_int = 82; +pub const KERN_BOOTTIME: ::c_int = 83; +pub const KERN_EVCNT: ::c_int = 84; +pub const KERN_MAXID: ::c_int = 85; +pub const KERN_PROC_ALL: ::c_int = 0; +pub const KERN_PROC_PID: ::c_int = 1; +pub const KERN_PROC_PGRP: ::c_int = 2; +pub const KERN_PROC_SESSION: ::c_int = 3; +pub const KERN_PROC_TTY: ::c_int = 4; +pub const KERN_PROC_UID: ::c_int = 5; +pub const KERN_PROC_RUID: ::c_int = 6; +pub const KERN_PROC_GID: ::c_int = 7; +pub const KERN_PROC_RGID: ::c_int = 8; +pub const KERN_PROC_ARGV: ::c_int = 1; +pub const KERN_PROC_NARGV: ::c_int = 2; +pub const KERN_PROC_ENV: ::c_int = 3; +pub const KERN_PROC_NENV: ::c_int = 4; +pub const KERN_PROC_PATHNAME: ::c_int = 5; +pub const VM_PROC: ::c_int = 16; +pub const VM_PROC_MAP: ::c_int = 1; + +pub const EAI_AGAIN: ::c_int = 2; +pub const EAI_BADFLAGS: ::c_int = 3; +pub const EAI_FAIL: ::c_int = 4; +pub const EAI_FAMILY: ::c_int = 5; +pub const EAI_MEMORY: ::c_int = 6; +pub const EAI_NODATA: ::c_int = 7; +pub const EAI_NONAME: ::c_int = 8; +pub const EAI_SERVICE: ::c_int = 9; +pub const EAI_SOCKTYPE: ::c_int = 10; +pub const EAI_SYSTEM: ::c_int = 11; +pub const EAI_OVERFLOW: ::c_int = 14; + +pub const AIO_CANCELED: ::c_int = 1; +pub const AIO_NOTCANCELED: ::c_int = 2; +pub const AIO_ALLDONE: ::c_int = 3; +pub const LIO_NOP: ::c_int = 0; +pub const LIO_WRITE: ::c_int = 1; +pub const LIO_READ: ::c_int = 2; +pub const LIO_WAIT: ::c_int = 1; +pub const LIO_NOWAIT: ::c_int = 0; + +pub const SIGEV_NONE: ::c_int = 0; +pub const SIGEV_SIGNAL: ::c_int = 1; +pub const SIGEV_THREAD: ::c_int = 2; + +pub const WSTOPPED: ::c_int = 0x00000002; // same as WUNTRACED +pub const WCONTINUED: ::c_int = 0x00000010; +pub const WEXITED: ::c_int = 0x000000020; +pub const WNOWAIT: ::c_int = 0x00010000; + +pub const WALTSIG: ::c_int = 0x00000004; +pub const WALLSIG: ::c_int = 0x00000008; +pub const WTRAPPED: ::c_int = 0x00000040; +pub const WNOZOMBIE: ::c_int = 0x00020000; + +pub const P_ALL: idtype_t = 0; +pub const P_PID: idtype_t = 1; +pub const P_PGID: idtype_t = 4; + +pub const UTIME_OMIT: c_long = 1073741822; +pub const UTIME_NOW: c_long = 1073741823; + +pub const B460800: ::speed_t = 460800; +pub const B921600: ::speed_t = 921600; + +pub const ONOCR: ::tcflag_t = 0x20; +pub const ONLRET: ::tcflag_t = 0x40; +pub const CDTRCTS: ::tcflag_t = 0x00020000; +pub const CHWFLOW: ::tcflag_t = ::MDMBUF | ::CRTSCTS | ::CDTRCTS; + +// pub const _PATH_UTMPX: &[::c_char; 14] = b"/var/run/utmpx"; +// pub const _PATH_WTMPX: &[::c_char; 14] = b"/var/log/wtmpx"; +// pub const _PATH_LASTLOGX: &[::c_char; 17] = b"/var/log/lastlogx"; +// pub const _PATH_UTMP_UPDATE: &[::c_char; 24] = b"/usr/libexec/utmp_update"; +pub const UT_NAMESIZE: usize = 8; +pub const UT_LINESIZE: usize = 8; +pub const UT_HOSTSIZE: usize = 16; +pub const _UTX_USERSIZE: usize = 32; +pub const _UTX_LINESIZE: usize = 32; +pub const _UTX_PADSIZE: usize = 40; +pub const _UTX_IDSIZE: usize = 4; +pub const _UTX_HOSTSIZE: usize = 256; +pub const EMPTY: u16 = 0; +pub const RUN_LVL: u16 = 1; +pub const BOOT_TIME: u16 = 2; +pub const OLD_TIME: u16 = 3; +pub const NEW_TIME: u16 = 4; +pub const INIT_PROCESS: u16 = 5; +pub const LOGIN_PROCESS: u16 = 6; +pub const USER_PROCESS: u16 = 7; +pub const DEAD_PROCESS: u16 = 8; +pub const ACCOUNTING: u16 = 9; +pub const SIGNATURE: u16 = 10; +pub const DOWN_TIME: u16 = 11; + +pub const SOCK_CLOEXEC: ::c_int = 0x10000000; +pub const SOCK_NONBLOCK: ::c_int = 0x20000000; + +// Uncomment on next NetBSD release +// pub const FIOSEEKDATA: ::c_ulong = 0xc0086661; +// pub const FIOSEEKHOLE: ::c_ulong = 0xc0086662; +pub const OFIOGETBMAP: ::c_ulong = 0xc004667a; +pub const FIOGETBMAP: ::c_ulong = 0xc008667a; +pub const FIONWRITE: ::c_ulong = 0x40046679; +pub const FIONSPACE: ::c_ulong = 0x40046678; +pub const FIBMAP: ::c_ulong = 0xc008667a; + +pub const SIGSTKSZ: ::size_t = 40960; + +pub const REG_ENOSYS: ::c_int = 17; + +pub const PT_DUMPCORE: ::c_int = 12; +pub const PT_LWPINFO: ::c_int = 13; +pub const PT_SYSCALL: ::c_int = 14; +pub const PT_SYSCALLEMU: ::c_int = 15; +pub const PT_SET_EVENT_MASK: ::c_int = 16; +pub const PT_GET_EVENT_MASK: ::c_int = 17; +pub const PT_GET_PROCESS_STATE: ::c_int = 18; +pub const PT_SET_SIGINFO: ::c_int = 19; +pub const PT_GET_SIGINFO: ::c_int = 20; +pub const PT_RESUME: ::c_int = 21; +pub const PT_SUSPEND: ::c_int = 23; +pub const PT_STOP: ::c_int = 23; +pub const PT_LWPSTATUS: ::c_int = 24; +pub const PT_LWPNEXT: ::c_int = 25; +pub const PT_SET_SIGPASS: ::c_int = 26; +pub const PT_GET_SIGPASS: ::c_int = 27; +pub const PT_FIRSTMACH: ::c_int = 32; + +pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; +pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; +pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x04; +pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x08; +pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10; +pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20; +pub const POSIX_SPAWN_RETURNERROR: ::c_int = 0x40; + +// Flags for chflags(2) +pub const SF_APPEND: ::c_ulong = 0x00040000; +pub const SF_ARCHIVED: ::c_ulong = 0x00010000; +pub const SF_IMMUTABLE: ::c_ulong = 0x00020000; +pub const SF_LOG: ::c_ulong = 0x00400000; +pub const SF_SETTABLE: ::c_ulong = 0xffff0000; +pub const SF_SNAPINVAL: ::c_ulong = 0x00800000; +pub const SF_SNAPSHOT: ::c_ulong = 0x00200000; +pub const UF_APPEND: ::c_ulong = 0x00000004; +pub const UF_IMMUTABLE: ::c_ulong = 0x00000002; +pub const UF_NODUMP: ::c_ulong = 0x00000001; +pub const UF_OPAQUE: ::c_ulong = 0x00000008; +pub const UF_SETTABLE: ::c_ulong = 0x0000ffff; + +// sys/sysctl.h +pub const KVME_PROT_READ: ::c_int = 0x00000001; +pub const KVME_PROT_WRITE: ::c_int = 0x00000002; +pub const KVME_PROT_EXEC: ::c_int = 0x00000004; + +pub const KVME_FLAG_COW: ::c_int = 0x00000001; +pub const KVME_FLAG_NEEDS_COPY: ::c_int = 0x00000002; +pub const KVME_FLAG_NOCOREDUMP: ::c_int = 0x000000004; +pub const KVME_FLAG_PAGEABLE: ::c_int = 0x000000008; +pub const KVME_FLAG_GROWS_UP: ::c_int = 0x000000010; +pub const KVME_FLAG_GROWS_DOWN: ::c_int = 0x000000020; + +pub const NGROUPS_MAX: ::c_int = 16; + +pub const KI_NGROUPS: ::c_int = 16; +pub const KI_MAXCOMLEN: ::c_int = 24; +pub const KI_WMESGLEN: ::c_int = 8; +pub const KI_MAXLOGNAME: ::c_int = 24; +pub const KI_MAXEMULLEN: ::c_int = 16; +pub const KI_LNAMELEN: ::c_int = 20; + +// sys/lwp.h +pub const LSIDL: ::c_int = 1; +pub const LSRUN: ::c_int = 2; +pub const LSSLEEP: ::c_int = 3; +pub const LSSTOP: ::c_int = 4; +pub const LSZOMB: ::c_int = 5; +pub const LSONPROC: ::c_int = 7; +pub const LSSUSPENDED: ::c_int = 8; + +pub const _REG_RDI: ::c_int = 0; +pub const _REG_RSI: ::c_int = 1; +pub const _REG_RDX: ::c_int = 2; +pub const _REG_RCX: ::c_int = 3; +pub const _REG_R8: ::c_int = 4; +pub const _REG_R9: ::c_int = 5; +pub const _REG_R10: ::c_int = 6; +pub const _REG_R11: ::c_int = 7; +pub const _REG_R12: ::c_int = 8; +pub const _REG_R13: ::c_int = 9; +pub const _REG_R14: ::c_int = 10; +pub const _REG_R15: ::c_int = 11; +pub const _REG_RBP: ::c_int = 12; +pub const _REG_RBX: ::c_int = 13; +pub const _REG_RAX: ::c_int = 14; +pub const _REG_GS: ::c_int = 15; +pub const _REG_FS: ::c_int = 16; +pub const _REG_ES: ::c_int = 17; +pub const _REG_DS: ::c_int = 18; +pub const _REG_TRAPNO: ::c_int = 19; +pub const _REG_ERR: ::c_int = 20; +pub const _REG_RIP: ::c_int = 21; +pub const _REG_CS: ::c_int = 22; +pub const _REG_RFLAGS: ::c_int = 23; +pub const _REG_RSP: ::c_int = 24; +pub const _REG_SS: ::c_int = 25; + +// sys/xattr.h +pub const XATTR_CREATE: ::c_int = 0x01; +pub const XATTR_REPLACE: ::c_int = 0x02; +// sys/extattr.h +pub const EXTATTR_NAMESPACE_EMPTY: ::c_int = 0; + +// For getrandom() +pub const GRND_NONBLOCK: ::c_uint = 0x1; +pub const GRND_RANDOM: ::c_uint = 0x2; +pub const GRND_INSECURE: ::c_uint = 0x4; + +cfg_if! { + + if #[cfg(libc_const_extern_fn)] { + pub const fn MAP_ALIGNED(alignment: ::c_int) -> ::c_int { + alignment << MAP_ALIGNMENT_SHIFT + } + } else { + pub fn MAP_ALIGNED(alignment: ::c_int) -> ::c_int { + alignment << MAP_ALIGNMENT_SHIFT + } + } +} + +const_fn! { + {const} fn _ALIGN(p: usize) -> usize { + (p + _ALIGNBYTES) & !_ALIGNBYTES + } +} + +f! { + pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { + (cmsg as *mut ::c_uchar) + .offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + } + + pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { + _ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length + } + + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) + -> *mut ::cmsghdr + { + if cmsg.is_null() { + return ::CMSG_FIRSTHDR(mhdr); + }; + let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + + _ALIGN(::mem::size_of::<::cmsghdr>()); + let max = (*mhdr).msg_control as usize + + (*mhdr).msg_controllen as usize; + if next > max { + 0 as *mut ::cmsghdr + } else { + (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) + as *mut ::cmsghdr + } + } + + pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) + as ::c_uint + } + + // dirfd() is a macro on netbsd to access + // the first field of the struct where dirp points to: + // http://cvsweb.netbsd.org/bsdweb.cgi/src/include/dirent.h?rev=1.36 + pub fn dirfd(dirp: *mut ::DIR) -> ::c_int { + *(dirp as *const ::c_int) + } + + pub fn SOCKCREDSIZE(ngrps: usize) -> usize { + let ngrps = if ngrps > 0 { + ngrps - 1 + } else { + 0 + }; + ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps + } + + pub fn PROT_MPROTECT(x: ::c_int) -> ::c_int { + x << 3 + } + + pub fn PROT_MPROTECT_EXTRACT(x: ::c_int) -> ::c_int { + (x >> 3) & 0x7 + } + + pub fn major(dev: ::dev_t) -> ::c_int { + (((dev as u32) & 0x000fff00) >> 8) as ::c_int + } + + pub fn minor(dev: ::dev_t) -> ::c_int { + let mut res = 0; + res |= ((dev as u32) & 0xfff00000) >> 12; + res |= (dev as u32) & 0x000000ff; + res as ::c_int + } +} + +safe_f! { + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + status >> 8 + } + + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + (status & 0o177) != 0o177 && (status & 0o177) != 0 + } + + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + (status & 0o177) == 0o177 + } + + pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + status == 0xffff + } + + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + let mut dev = 0; + dev |= (major << 8) & 0x000ff00; + dev |= (minor << 12) & 0xfff00000; + dev |= minor & 0xff; + dev + } +} + +extern "C" { + pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; + pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + + pub fn reallocarr(ptr: *mut ::c_void, number: ::size_t, size: ::size_t) -> ::c_int; + + pub fn chflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; + pub fn fchflags(fd: ::c_int, flags: ::c_ulong) -> ::c_int; + pub fn lchflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; + + pub fn execvpe( + file: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + + pub fn extattr_list_fd( + fd: ::c_int, + attrnamespace: ::c_int, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_list_file( + path: *const ::c_char, + attrnamespace: ::c_int, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_list_link( + path: *const ::c_char, + attrnamespace: ::c_int, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_delete_fd( + fd: ::c_int, + attrnamespace: ::c_int, + attrname: *const ::c_char, + ) -> ::c_int; + pub fn extattr_delete_file( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + ) -> ::c_int; + pub fn extattr_delete_link( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + ) -> ::c_int; + pub fn extattr_get_fd( + fd: ::c_int, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_get_file( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_get_link( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_namespace_to_string( + attrnamespace: ::c_int, + string: *mut *mut ::c_char, + ) -> ::c_int; + pub fn extattr_set_fd( + fd: ::c_int, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *const ::c_void, + nbytes: ::size_t, + ) -> ::c_int; + pub fn extattr_set_file( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *const ::c_void, + nbytes: ::size_t, + ) -> ::c_int; + pub fn extattr_set_link( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *const ::c_void, + nbytes: ::size_t, + ) -> ::c_int; + pub fn extattr_string_to_namespace( + string: *const ::c_char, + attrnamespace: *mut ::c_int, + ) -> ::c_int; + + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *mut ::termios, + winp: *mut ::winsize, + ) -> ::c_int; + pub fn forkpty( + amaster: *mut ::c_int, + name: *mut ::c_char, + termp: *mut ::termios, + winp: *mut ::winsize, + ) -> ::pid_t; + + #[link_name = "__lutimes50"] + pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; + #[link_name = "__gettimeofday50"] + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn sysctl( + name: *const ::c_int, + namelen: ::c_uint, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *const ::c_void, + newlen: ::size_t, + ) -> ::c_int; + pub fn sysctlbyname( + name: *const ::c_char, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *const ::c_void, + newlen: ::size_t, + ) -> ::c_int; + #[link_name = "__kevent50"] + pub fn kevent( + kq: ::c_int, + changelist: *const ::kevent, + nchanges: ::size_t, + eventlist: *mut ::kevent, + nevents: ::size_t, + timeout: *const ::timespec, + ) -> ::c_int; + #[link_name = "__mount50"] + pub fn mount( + src: *const ::c_char, + target: *const ::c_char, + flags: ::c_int, + data: *mut ::c_void, + size: ::size_t, + ) -> ::c_int; + pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; + pub fn mq_close(mqd: ::mqd_t) -> ::c_int; + pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; + pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) -> ::c_int; + pub fn mq_receive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + ) -> ::ssize_t; + pub fn mq_send( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + ) -> ::c_int; + pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; + #[link_name = "__mq_timedreceive50"] + pub fn mq_timedreceive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::ssize_t; + #[link_name = "__mq_timedsend50"] + pub fn mq_timedsend( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::c_int; + pub fn mq_unlink(name: *const ::c_char) -> ::c_int; + pub fn ptrace(request: ::c_int, pid: ::pid_t, addr: *mut ::c_void, data: ::c_int) -> ::c_int; + pub fn utrace(label: *const ::c_char, addr: *mut ::c_void, len: ::size_t) -> ::c_int; + pub fn pthread_getname_np(t: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn pthread_setname_np( + t: ::pthread_t, + name: *const ::c_char, + arg: *const ::c_void, + ) -> ::c_int; + pub fn pthread_attr_get_np(thread: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_getattr_np(native: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_getaffinity_np( + thread: ::pthread_t, + size: ::size_t, + set: *mut cpuset_t, + ) -> ::c_int; + pub fn pthread_setaffinity_np( + thread: ::pthread_t, + size: ::size_t, + set: *mut cpuset_t, + ) -> ::c_int; + + pub fn _cpuset_create() -> *mut cpuset_t; + pub fn _cpuset_destroy(set: *mut cpuset_t); + pub fn _cpuset_clr(cpu: cpuid_t, set: *mut cpuset_t) -> ::c_int; + pub fn _cpuset_set(cpu: cpuid_t, set: *mut cpuset_t) -> ::c_int; + pub fn _cpuset_isset(cpu: cpuid_t, set: *const cpuset_t) -> ::c_int; + pub fn _cpuset_size(set: *const cpuset_t) -> ::size_t; + pub fn _cpuset_zero(set: *mut cpuset_t); + #[link_name = "__sigtimedwait50"] + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + pub fn waitid( + idtype: idtype_t, + id: ::id_t, + infop: *mut ::siginfo_t, + options: ::c_int, + ) -> ::c_int; + + pub fn duplocale(base: ::locale_t) -> ::locale_t; + pub fn freelocale(loc: ::locale_t); + pub fn localeconv_l(loc: ::locale_t) -> *mut lconv; + pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; + #[link_name = "__settimeofday50"] + pub fn settimeofday(tv: *const ::timeval, tz: *const ::c_void) -> ::c_int; + + pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; + + pub fn kqueue1(flags: ::c_int) -> ::c_int; + + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + timeout: *mut ::timespec, + ) -> ::c_int; + + pub fn _lwp_self() -> lwpid_t; + pub fn memmem( + haystack: *const ::c_void, + haystacklen: ::size_t, + needle: *const ::c_void, + needlelen: ::size_t, + ) -> *mut ::c_void; + + // link.h + + pub fn dl_iterate_phdr( + callback: ::Option< + unsafe extern "C" fn( + info: *mut dl_phdr_info, + size: usize, + data: *mut ::c_void, + ) -> ::c_int, + >, + data: *mut ::c_void, + ) -> ::c_int; + + // dlfcn.h + + pub fn _dlauxinfo() -> *mut ::c_void; + + pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; + pub fn iconv( + cd: iconv_t, + inbuf: *mut *mut ::c_char, + inbytesleft: *mut ::size_t, + outbuf: *mut *mut ::c_char, + outbytesleft: *mut ::size_t, + ) -> ::size_t; + pub fn iconv_close(cd: iconv_t) -> ::c_int; + + pub fn timer_create( + clockid: ::clockid_t, + sevp: *mut ::sigevent, + timerid: *mut ::timer_t, + ) -> ::c_int; + pub fn timer_delete(timerid: ::timer_t) -> ::c_int; + pub fn timer_getoverrun(timerid: ::timer_t) -> ::c_int; + pub fn timer_gettime(timerid: ::timer_t, curr_value: *mut ::itimerspec) -> ::c_int; + pub fn timer_settime( + timerid: ::timer_t, + flags: ::c_int, + new_value: *const ::itimerspec, + old_value: *mut ::itimerspec, + ) -> ::c_int; + + // Added in `NetBSD` 7.0 + pub fn explicit_memset(b: *mut ::c_void, c: ::c_int, len: ::size_t); + pub fn consttime_memequal(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int; + + pub fn setproctitle(fmt: *const ::c_char, ...); + pub fn mremap( + oldp: *mut ::c_void, + oldsize: ::size_t, + newp: *mut ::c_void, + newsize: ::size_t, + flags: ::c_int, + ) -> *mut ::c_void; + + pub fn sched_rr_get_interval(pid: ::pid_t, t: *mut ::timespec) -> ::c_int; + pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; + pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + + #[link_name = "__pollts50"] + pub fn pollts( + fds: *mut ::pollfd, + nfds: ::nfds_t, + ts: *const ::timespec, + sigmask: *const ::sigset_t, + ) -> ::c_int; + pub fn ppoll( + fds: *mut ::pollfd, + nfds: ::nfds_t, + ts: *const ::timespec, + sigmask: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawn( + pid: *mut ::pid_t, + path: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnp( + pid: *mut ::pid_t, + file: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_getsigdefault( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getflags( + attr: *const posix_spawnattr_t, + flags: *mut ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; + pub fn posix_spawnattr_getpgroup( + attr: *const posix_spawnattr_t, + flags: *mut ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; + pub fn posix_spawnattr_getschedpolicy( + attr: *const posix_spawnattr_t, + flags: *mut ::c_int, + ) -> ::c_int; + pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; + pub fn posix_spawnattr_getschedparam( + attr: *const posix_spawnattr_t, + param: *mut ::sched_param, + ) -> ::c_int; + pub fn posix_spawnattr_setschedparam( + attr: *mut posix_spawnattr_t, + param: *const ::sched_param, + ) -> ::c_int; + + pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_addopen( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + path: *const ::c_char, + oflag: ::c_int, + mode: ::mode_t, + ) -> ::c_int; + pub fn posix_spawn_file_actions_addclose( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + ) -> ::c_int; + pub fn posix_spawn_file_actions_adddup2( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + newfd: ::c_int, + ) -> ::c_int; + pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; +} + +#[link(name = "rt")] +extern "C" { + pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; + pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; + #[link_name = "__aio_suspend50"] + pub fn aio_suspend( + aiocb_list: *const *const aiocb, + nitems: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn lio_listio( + mode: ::c_int, + aiocb_list: *const *mut aiocb, + nitems: ::c_int, + sevp: *mut sigevent, + ) -> ::c_int; +} + +#[link(name = "util")] +extern "C" { + #[cfg_attr(target_os = "netbsd", link_name = "__getpwent_r50")] + pub fn getpwent_r( + pwd: *mut ::passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::passwd, + ) -> ::c_int; + pub fn getgrent_r( + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + + pub fn updwtmpx(file: *const ::c_char, ut: *const utmpx) -> ::c_int; + pub fn getlastlogx(fname: *const ::c_char, uid: ::uid_t, ll: *mut lastlogx) -> *mut lastlogx; + pub fn updlastlogx(fname: *const ::c_char, uid: ::uid_t, ll: *mut lastlogx) -> ::c_int; + pub fn utmpxname(file: *const ::c_char) -> ::c_int; + pub fn getutxent() -> *mut utmpx; + pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + pub fn setutxent(); + pub fn endutxent(); + + pub fn getutmp(ux: *const utmpx, u: *mut utmp); + pub fn getutmpx(u: *const utmp, ux: *mut utmpx); + + pub fn utpname(file: *const ::c_char) -> ::c_int; + pub fn setutent(); + pub fn endutent(); + pub fn getutent() -> *mut utmp; + + pub fn efopen(p: *const ::c_char, m: *const ::c_char) -> ::FILE; + pub fn emalloc(n: ::size_t) -> *mut ::c_void; + pub fn ecalloc(n: ::size_t, c: ::size_t) -> *mut ::c_void; + pub fn erealloc(p: *mut ::c_void, n: ::size_t) -> *mut ::c_void; + pub fn ereallocarr(p: *mut ::c_void, n: ::size_t, s: ::size_t); + pub fn estrdup(s: *const ::c_char) -> *mut ::c_char; + pub fn estrndup(s: *const ::c_char, len: ::size_t) -> *mut ::c_char; + pub fn estrlcpy(dst: *mut ::c_char, src: *const ::c_char, len: ::size_t) -> ::size_t; + pub fn estrlcat(dst: *mut ::c_char, src: *const ::c_char, len: ::size_t) -> ::size_t; + pub fn estrtoi( + nptr: *const ::c_char, + base: ::c_int, + lo: ::intmax_t, + hi: ::intmax_t, + ) -> ::intmax_t; + pub fn estrtou( + nptr: *const ::c_char, + base: ::c_int, + lo: ::uintmax_t, + hi: ::uintmax_t, + ) -> ::uintmax_t; + pub fn easprintf(string: *mut *mut ::c_char, fmt: *const ::c_char, ...) -> ::c_int; + pub fn evasprintf(string: *mut *mut ::c_char, fmt: *const ::c_char, ...) -> ::c_int; + pub fn esetfunc( + cb: ::Option, + ) -> ::Option; + pub fn secure_path(path: *const ::c_char) -> ::c_int; + pub fn snprintb( + buf: *mut ::c_char, + buflen: ::size_t, + fmt: *const ::c_char, + val: u64, + ) -> ::c_int; + pub fn snprintb_m( + buf: *mut ::c_char, + buflen: ::size_t, + fmt: *const ::c_char, + val: u64, + max: ::size_t, + ) -> ::c_int; + + pub fn getbootfile() -> *const ::c_char; + pub fn getbyteorder() -> ::c_int; + pub fn getdiskrawname( + buf: *mut ::c_char, + buflen: ::size_t, + name: *const ::c_char, + ) -> *const ::c_char; + pub fn getdiskcookedname( + buf: *mut ::c_char, + buflen: ::size_t, + name: *const ::c_char, + ) -> *const ::c_char; + pub fn getfsspecname( + buf: *mut ::c_char, + buflen: ::size_t, + spec: *const ::c_char, + ) -> *const ::c_char; + + pub fn strpct( + buf: *mut ::c_char, + bufsiz: ::size_t, + numerator: ::uintmax_t, + denominator: ::uintmax_t, + precision: ::size_t, + ) -> *mut ::c_char; + pub fn strspct( + buf: *mut ::c_char, + bufsiz: ::size_t, + numerator: ::intmax_t, + denominator: ::intmax_t, + precision: ::size_t, + ) -> *mut ::c_char; + #[link_name = "__login50"] + pub fn login(ut: *const utmp); + #[link_name = "__loginx50"] + pub fn loginx(ut: *const utmpx); + pub fn logout(line: *const ::c_char); + pub fn logoutx(line: *const ::c_char, status: ::c_int, tpe: ::c_int); + pub fn logwtmp(line: *const ::c_char, name: *const ::c_char, host: *const ::c_char); + pub fn logwtmpx( + line: *const ::c_char, + name: *const ::c_char, + host: *const ::c_char, + status: ::c_int, + tpe: ::c_int, + ); + + pub fn getxattr( + path: *const ::c_char, + name: *const ::c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn lgetxattr( + path: *const ::c_char, + name: *const ::c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn fgetxattr( + filedes: ::c_int, + name: *const ::c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn setxattr( + path: *const ::c_char, + name: *const ::c_char, + value: *const ::c_void, + size: ::size_t, + ) -> ::c_int; + pub fn lsetxattr( + path: *const ::c_char, + name: *const ::c_char, + value: *const ::c_void, + size: ::size_t, + ) -> ::c_int; + pub fn fsetxattr( + filedes: ::c_int, + name: *const ::c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn listxattr(path: *const ::c_char, list: *mut ::c_char, size: ::size_t) -> ::ssize_t; + pub fn llistxattr(path: *const ::c_char, list: *mut ::c_char, size: ::size_t) -> ::ssize_t; + pub fn flistxattr(filedes: ::c_int, list: *mut ::c_char, size: ::size_t) -> ::ssize_t; + pub fn removexattr(path: *const ::c_char, name: *const ::c_char) -> ::c_int; + pub fn lremovexattr(path: *const ::c_char, name: *const ::c_char) -> ::c_int; + pub fn fremovexattr(fd: ::c_int, path: *const ::c_char, name: *const ::c_char) -> ::c_int; + + pub fn string_to_flags( + string_p: *mut *mut ::c_char, + setp: *mut ::c_ulong, + clrp: *mut ::c_ulong, + ) -> ::c_int; + pub fn flags_to_string(flags: ::c_ulong, def: *const ::c_char) -> ::c_int; + + pub fn kinfo_getvmmap(pid: ::pid_t, cntp: *mut ::size_t) -> *mut kinfo_vmentry; +} + +cfg_if! { + if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } else if #[cfg(target_arch = "arm")] { + mod arm; + pub use self::arm::*; + } else if #[cfg(target_arch = "powerpc")] { + mod powerpc; + pub use self::powerpc::*; + } else if #[cfg(target_arch = "sparc64")] { + mod sparc64; + pub use self::sparc64::*; + } else if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } else if #[cfg(target_arch = "x86")] { + mod x86; + pub use self::x86::*; + } else { + // Unknown target_arch + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/powerpc.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/powerpc.rs new file mode 100644 index 000000000..e12fd5e11 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/powerpc.rs @@ -0,0 +1,21 @@ +use PT_FIRSTMACH; + +pub type c_long = i32; +pub type c_ulong = u32; +pub type c_char = u8; +pub type __cpu_simple_lock_nv_t = ::c_int; + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +pub const PT_STEP: ::c_int = PT_FIRSTMACH + 0; +pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; +pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/sparc64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/sparc64.rs new file mode 100644 index 000000000..6a86759e0 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/sparc64.rs @@ -0,0 +1,8 @@ +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_char = i8; +pub type __cpu_simple_lock_nv_t = ::c_uchar; + +// should be pub(crate), but that requires Rust 1.18.0 +#[doc(hidden)] +pub const _ALIGNBYTES: usize = 0xf; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86.rs new file mode 100644 index 000000000..daa89a11a --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86.rs @@ -0,0 +1,15 @@ +pub type c_long = i32; +pub type c_ulong = u32; +pub type c_char = i8; +pub type __cpu_simple_lock_nv_t = ::c_uchar; + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 4 - 1; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86_64.rs new file mode 100644 index 000000000..2f6e44545 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86_64.rs @@ -0,0 +1,40 @@ +use PT_FIRSTMACH; + +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_char = i8; +pub type c___greg_t = u64; +pub type __cpu_simple_lock_nv_t = ::c_uchar; + +s! { + pub struct mcontext_t { + pub __gregs: [c___greg_t; 26], + pub _mc_tlsbase: c___greg_t, + pub __fpregs: [[::c_char;32]; 16], + } + + pub struct ucontext_t { + pub uc_flags: ::c_uint, + pub uc_link: *mut ::ucontext_t, + pub uc_sigmask: ::sigset_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: ::mcontext_t, + } +} + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +pub const PT_STEP: ::c_int = PT_FIRSTMACH + 0; +pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; +pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; +pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3; +pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/aarch64.rs new file mode 100644 index 000000000..2bc82e486 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/aarch64.rs @@ -0,0 +1,30 @@ +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_char = u8; +pub type ucontext_t = sigcontext; + +s! { + pub struct sigcontext { + __sc_unused: ::c_int, + pub sc_mask: ::c_int, + pub sc_sp: ::c_ulong, + pub sc_lr: ::c_ulong, + pub sc_elr: ::c_ulong, + pub sc_spsr: ::c_ulong, + pub sc_x: [::c_ulong; 30], + pub sc_cookie: ::c_long, + } +} + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/arm.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/arm.rs new file mode 100644 index 000000000..f1ab365d1 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/arm.rs @@ -0,0 +1,16 @@ +pub type c_long = i32; +pub type c_ulong = u32; +pub type c_char = u8; + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mips64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mips64.rs new file mode 100644 index 000000000..15803ced0 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mips64.rs @@ -0,0 +1,8 @@ +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_char = i8; + +#[doc(hidden)] +pub const _ALIGNBYTES: usize = 7; + +pub const _MAX_PAGE_SHIFT: u32 = 14; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mod.rs new file mode 100644 index 000000000..7fe81b3aa --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -0,0 +1,1988 @@ +use unix::bsd::O_SYNC; + +pub type clock_t = i64; +pub type suseconds_t = ::c_long; +pub type dev_t = i32; +pub type sigset_t = ::c_uint; +pub type blksize_t = i32; +pub type fsblkcnt_t = u64; +pub type fsfilcnt_t = u64; +pub type idtype_t = ::c_uint; +pub type pthread_attr_t = *mut ::c_void; +pub type pthread_mutex_t = *mut ::c_void; +pub type pthread_mutexattr_t = *mut ::c_void; +pub type pthread_cond_t = *mut ::c_void; +pub type pthread_condattr_t = *mut ::c_void; +pub type pthread_rwlock_t = *mut ::c_void; +pub type pthread_rwlockattr_t = *mut ::c_void; +pub type pthread_spinlock_t = ::uintptr_t; +pub type caddr_t = *mut ::c_char; + +// elf.h + +pub type Elf32_Addr = u32; +pub type Elf32_Half = u16; +pub type Elf32_Lword = u64; +pub type Elf32_Off = u32; +pub type Elf32_Sword = i32; +pub type Elf32_Word = u32; + +pub type Elf64_Addr = u64; +pub type Elf64_Half = u16; +pub type Elf64_Lword = u64; +pub type Elf64_Off = u64; +pub type Elf64_Sword = i32; +pub type Elf64_Sxword = i64; +pub type Elf64_Word = u32; +pub type Elf64_Xword = u64; + +// search.h + +pub type ENTRY = entry; +pub type ACTION = ::c_uint; + +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + type Elf_Addr = Elf64_Addr; + type Elf_Half = Elf64_Half; + type Elf_Phdr = Elf64_Phdr; + } else if #[cfg(target_pointer_width = "32")] { + type Elf_Addr = Elf32_Addr; + type Elf_Half = Elf32_Half; + type Elf_Phdr = Elf32_Phdr; + } +} + +s! { + pub struct ip_mreqn { + pub imr_multiaddr: in_addr, + pub imr_address: in_addr, + pub imr_ifindex: ::c_int, + } + + pub struct glob_t { + pub gl_pathc: ::size_t, + pub gl_matchc: ::size_t, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + pub gl_pathv: *mut *mut ::c_char, + __unused1: *mut ::c_void, + __unused2: *mut ::c_void, + __unused3: *mut ::c_void, + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + __unused6: *mut ::c_void, + __unused7: *mut ::c_void, + } + + pub struct lconv { + pub decimal_point: *mut ::c_char, + pub thousands_sep: *mut ::c_char, + pub grouping: *mut ::c_char, + pub int_curr_symbol: *mut ::c_char, + pub currency_symbol: *mut ::c_char, + pub mon_decimal_point: *mut ::c_char, + pub mon_thousands_sep: *mut ::c_char, + pub mon_grouping: *mut ::c_char, + pub positive_sign: *mut ::c_char, + pub negative_sign: *mut ::c_char, + pub int_frac_digits: ::c_char, + pub frac_digits: ::c_char, + pub p_cs_precedes: ::c_char, + pub p_sep_by_space: ::c_char, + pub n_cs_precedes: ::c_char, + pub n_sep_by_space: ::c_char, + pub p_sign_posn: ::c_char, + pub n_sign_posn: ::c_char, + pub int_p_cs_precedes: ::c_char, + pub int_p_sep_by_space: ::c_char, + pub int_n_cs_precedes: ::c_char, + pub int_n_sep_by_space: ::c_char, + pub int_p_sign_posn: ::c_char, + pub int_n_sign_posn: ::c_char, + } + + pub struct ufs_args { + pub fspec: *mut ::c_char, + pub export_info: export_args, + } + + pub struct mfs_args { + pub fspec: *mut ::c_char, + pub export_info: export_args, + // https://github.com/openbsd/src/blob/HEAD/sys/sys/types.h#L134 + pub base: *mut ::c_char, + pub size: ::c_ulong, + } + + pub struct iso_args { + pub fspec: *mut ::c_char, + pub export_info: export_args, + pub flags: ::c_int, + pub sess: ::c_int, + } + + pub struct nfs_args { + pub version: ::c_int, + pub addr: *mut ::sockaddr, + pub addrlen: ::c_int, + pub sotype: ::c_int, + pub proto: ::c_int, + pub fh: *mut ::c_uchar, + pub fhsize: ::c_int, + pub flags: ::c_int, + pub wsize: ::c_int, + pub rsize: ::c_int, + pub readdirsize: ::c_int, + pub timeo: ::c_int, + pub retrans: ::c_int, + pub maxgrouplist: ::c_int, + pub readahead: ::c_int, + pub leaseterm: ::c_int, + pub deadthresh: ::c_int, + pub hostname: *mut ::c_char, + pub acregmin: ::c_int, + pub acregmax: ::c_int, + pub acdirmin: ::c_int, + pub acdirmax: ::c_int, + } + + pub struct msdosfs_args { + pub fspec: *mut ::c_char, + pub export_info: export_args, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub mask: ::mode_t, + pub flags: ::c_int, + } + + pub struct ntfs_args { + pub fspec: *mut ::c_char, + pub export_info: export_args, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub mode: ::mode_t, + pub flag: ::c_ulong, + } + + pub struct udf_args { + pub fspec: *mut ::c_char, + pub lastblock: u32, + } + + pub struct tmpfs_args { + pub ta_version: ::c_int, + pub ta_nodes_max: ::ino_t, + pub ta_size_max: ::off_t, + pub ta_root_uid: ::uid_t, + pub ta_root_gid: ::gid_t, + pub ta_root_mode: ::mode_t, + } + + pub struct fusefs_args { + pub name: *mut ::c_char, + pub fd: ::c_int, + pub max_read: ::c_int, + pub allow_other: ::c_int, + } + + pub struct xucred { + pub cr_uid: ::uid_t, + pub cr_gid: ::gid_t, + pub cr_ngroups: ::c_short, + //https://github.com/openbsd/src/blob/HEAD/sys/sys/syslimits.h#L44 + pub cr_groups: [::gid_t; 16], + } + + pub struct export_args { + pub ex_flags: ::c_int, + pub ex_root: ::uid_t, + pub ex_anon: xucred, + pub ex_addr: *mut ::sockaddr, + pub ex_addrlen: ::c_int, + pub ex_mask: *mut ::sockaddr, + pub ex_masklen: ::c_int, + } + + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct in_addr { + pub s_addr: ::in_addr_t, + } + + pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [i8; 8], + } + + pub struct splice { + pub sp_fd: ::c_int, + pub sp_max: ::off_t, + pub sp_idle: ::timeval, + } + + pub struct kevent { + pub ident: ::uintptr_t, + pub filter: ::c_short, + pub flags: ::c_ushort, + pub fflags: ::c_uint, + pub data: i64, + pub udata: *mut ::c_void, + } + + pub struct stat { + pub st_mode: ::mode_t, + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_size: ::off_t, + pub st_blocks: ::blkcnt_t, + pub st_blksize: ::blksize_t, + pub st_flags: u32, + pub st_gen: u32, + pub st_birthtime: ::time_t, + pub st_birthtime_nsec: ::c_long, + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + } + + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: ::socklen_t, + pub ai_addr: *mut ::sockaddr, + pub ai_canonname: *mut ::c_char, + pub ai_next: *mut ::addrinfo, + } + + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } + + pub struct if_data { + pub ifi_type: ::c_uchar, + pub ifi_addrlen: ::c_uchar, + pub ifi_hdrlen: ::c_uchar, + pub ifi_link_state: ::c_uchar, + pub ifi_mtu: u32, + pub ifi_metric: u32, + pub ifi_rdomain: u32, + pub ifi_baudrate: u64, + pub ifi_ipackets: u64, + pub ifi_ierrors: u64, + pub ifi_opackets: u64, + pub ifi_oerrors: u64, + pub ifi_collisions: u64, + pub ifi_ibytes: u64, + pub ifi_obytes: u64, + pub ifi_imcasts: u64, + pub ifi_omcasts: u64, + pub ifi_iqdrops: u64, + pub ifi_oqdrops: u64, + pub ifi_noproto: u64, + pub ifi_capabilities: u32, + pub ifi_lastchange: ::timeval, + } + + pub struct if_msghdr { + pub ifm_msglen: ::c_ushort, + pub ifm_version: ::c_uchar, + pub ifm_type: ::c_uchar, + pub ifm_hdrlen: ::c_ushort, + pub ifm_index: ::c_ushort, + pub ifm_tableid: ::c_ushort, + pub ifm_pad1: ::c_uchar, + pub ifm_pad2: ::c_uchar, + pub ifm_addrs: ::c_int, + pub ifm_flags: ::c_int, + pub ifm_xflags: ::c_int, + pub ifm_data: if_data, + } + + pub struct sockaddr_dl { + pub sdl_len: ::c_uchar, + pub sdl_family: ::c_uchar, + pub sdl_index: ::c_ushort, + pub sdl_type: ::c_uchar, + pub sdl_nlen: ::c_uchar, + pub sdl_alen: ::c_uchar, + pub sdl_slen: ::c_uchar, + pub sdl_data: [::c_char; 24], + } + + pub struct sockpeercred { + pub uid: ::uid_t, + pub gid: ::gid_t, + pub pid: ::pid_t, + } + + pub struct arphdr { + pub ar_hrd: u16, + pub ar_pro: u16, + pub ar_hln: u8, + pub ar_pln: u8, + pub ar_op: u16, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::c_int, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: ::c_short, + pub shm_atime: ::time_t, + __shm_atimensec: c_long, + pub shm_dtime: ::time_t, + __shm_dtimensec: c_long, + pub shm_ctime: ::time_t, + __shm_ctimensec: c_long, + pub shm_internal: *mut ::c_void, + } + + // elf.h + pub struct Elf32_Phdr { + pub p_type: Elf32_Word, + pub p_offset: Elf32_Off, + pub p_vaddr: Elf32_Addr, + pub p_paddr: Elf32_Addr, + pub p_filesz: Elf32_Word, + pub p_memsz: Elf32_Word, + pub p_flags: Elf32_Word, + pub p_align: Elf32_Word, + } + + pub struct Elf64_Phdr { + pub p_type: Elf64_Word, + pub p_flags: Elf64_Word, + pub p_offset: Elf64_Off, + pub p_vaddr: Elf64_Addr, + pub p_paddr: Elf64_Addr, + pub p_filesz: Elf64_Xword, + pub p_memsz: Elf64_Xword, + pub p_align: Elf64_Xword, + } + + // link.h + + pub struct dl_phdr_info { + pub dlpi_addr: Elf_Addr, + pub dlpi_name: *const ::c_char, + pub dlpi_phdr: *const Elf_Phdr, + pub dlpi_phnum: Elf_Half, + } + + // sys/sysctl.h + pub struct kinfo_proc { + pub p_forw: u64, + pub p_back: u64, + pub p_paddr: u64, + pub p_addr: u64, + pub p_fd: u64, + pub p_stats: u64, + pub p_limit: u64, + pub p_vmspace: u64, + pub p_sigacts: u64, + pub p_sess: u64, + pub p_tsess: u64, + pub p_ru: u64, + pub p_eflag: i32, + pub p_exitsig: i32, + pub p_flag: i32, + pub p_pid: i32, + pub p_ppid: i32, + pub p_sid: i32, + pub p__pgid: i32, + pub p_tpgid: i32, + pub p_uid: u32, + pub p_ruid: u32, + pub p_gid: u32, + pub p_rgid: u32, + pub p_groups: [u32; KI_NGROUPS as usize], + pub p_ngroups: i16, + pub p_jobc: i16, + pub p_tdev: u32, + pub p_estcpu: u32, + pub p_rtime_sec: u32, + pub p_rtime_usec: u32, + pub p_cpticks: i32, + pub p_pctcpu: u32, + pub p_swtime: u32, + pub p_slptime: u32, + pub p_schedflags: i32, + pub p_uticks: u64, + pub p_sticks: u64, + pub p_iticks: u64, + pub p_tracep: u64, + pub p_traceflag: i32, + pub p_holdcnt: i32, + pub p_siglist: i32, + pub p_sigmask: u32, + pub p_sigignore: u32, + pub p_sigcatch: u32, + pub p_stat: i8, + pub p_priority: u8, + pub p_usrpri: u8, + pub p_nice: u8, + pub p_xstat: u16, + pub p_spare: u16, + pub p_comm: [::c_char; KI_MAXCOMLEN as usize], + pub p_wmesg: [::c_char; KI_WMESGLEN as usize], + pub p_wchan: u64, + pub p_login: [::c_char; KI_MAXLOGNAME as usize], + pub p_vm_rssize: i32, + pub p_vm_tsize: i32, + pub p_vm_dsize: i32, + pub p_vm_ssize: i32, + pub p_uvalid: i64, + pub p_ustart_sec: u64, + pub p_ustart_usec: u32, + pub p_uutime_sec: u32, + pub p_uutime_usec: u32, + pub p_ustime_sec: u32, + pub p_ustime_usec: u32, + pub p_uru_maxrss: u64, + pub p_uru_ixrss: u64, + pub p_uru_idrss: u64, + pub p_uru_isrss: u64, + pub p_uru_minflt: u64, + pub p_uru_majflt: u64, + pub p_uru_nswap: u64, + pub p_uru_inblock: u64, + pub p_uru_oublock: u64, + pub p_uru_msgsnd: u64, + pub p_uru_msgrcv: u64, + pub p_uru_nsignals: u64, + pub p_uru_nvcsw: u64, + pub p_uru_nivcsw: u64, + pub p_uctime_sec: u32, + pub p_uctime_usec: u32, + pub p_psflags: u32, + pub p_acflag: u32, + pub p_svuid: u32, + pub p_svgid: u32, + pub p_emul: [::c_char; KI_EMULNAMELEN as usize], + pub p_rlim_rss_cur: u64, + pub p_cpuid: u64, + pub p_vm_map_size: u64, + pub p_tid: i32, + pub p_rtableid: u32, + pub p_pledge: u64, + pub p_name: [::c_char; KI_MAXCOMLEN as usize], + } + + pub struct kinfo_vmentry { + pub kve_start: ::c_ulong, + pub kve_end: ::c_ulong, + pub kve_guard: ::c_ulong, + pub kve_fspace: ::c_ulong, + pub kve_fspace_augment: ::c_ulong, + pub kve_offset: u64, + pub kve_wired_count: ::c_int, + pub kve_etype: ::c_int, + pub kve_protection: ::c_int, + pub kve_max_protection: ::c_int, + pub kve_advice: ::c_int, + pub kve_inheritance: ::c_int, + pub kve_flags: u8, + } + + pub struct ptrace_state { + pub pe_report_event: ::c_int, + pub pe_other_pid: ::pid_t, + pub pe_tid: ::pid_t, + } + + pub struct ptrace_thread_state { + pub pts_tid: ::pid_t, + } + + // search.h + pub struct entry { + pub key: *mut ::c_char, + pub data: *mut ::c_void, + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_char { + self.si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + _pid: ::pid_t, + _uid: ::uid_t, + value: ::sigval, + } + (*(self as *const siginfo_t as *const siginfo_timer)).value + } +} + +s_no_extra_traits! { + pub struct dirent { + pub d_fileno: ::ino_t, + pub d_off: ::off_t, + pub d_reclen: u16, + pub d_type: u8, + pub d_namlen: u8, + __d_padding: [u8; 4], + pub d_name: [::c_char; 256], + } + + pub struct sockaddr_storage { + pub ss_len: u8, + pub ss_family: ::sa_family_t, + __ss_pad1: [u8; 6], + __ss_pad2: i64, + __ss_pad3: [u8; 240], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_code: ::c_int, + pub si_errno: ::c_int, + pub si_addr: *mut ::c_char, + #[cfg(target_pointer_width = "32")] + __pad: [u8; 112], + #[cfg(target_pointer_width = "64")] + __pad: [u8; 108], + } + + pub struct lastlog { + ll_time: ::time_t, + ll_line: [::c_char; UT_LINESIZE], + ll_host: [::c_char; UT_HOSTSIZE], + } + + pub struct utmp { + pub ut_line: [::c_char; UT_LINESIZE], + pub ut_name: [::c_char; UT_NAMESIZE], + pub ut_host: [::c_char; UT_HOSTSIZE], + pub ut_time: ::time_t, + } + + pub union mount_info { + pub ufs_args: ufs_args, + pub mfs_args: mfs_args, + pub nfs_args: nfs_args, + pub iso_args: iso_args, + pub msdosfs_args: msdosfs_args, + pub ntfs_args: ntfs_args, + pub tmpfs_args: tmpfs_args, + align: [::c_char; 160], + } + +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_fileno == other.d_fileno + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self.d_namlen == other.d_namlen + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for dirent {} + + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_fileno", &self.d_fileno) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + .field("d_namlen", &self.d_namlen) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_fileno.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_namlen.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for sockaddr_storage { + fn eq(&self, other: &sockaddr_storage) -> bool { + self.ss_len == other.ss_len + && self.ss_family == other.ss_family + } + } + + impl Eq for sockaddr_storage {} + + impl ::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_storage") + .field("ss_len", &self.ss_len) + .field("ss_family", &self.ss_family) + .finish() + } + } + + impl ::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { + self.ss_len.hash(state); + self.ss_family.hash(state); + } + } + + impl PartialEq for siginfo_t { + fn eq(&self, other: &siginfo_t) -> bool { + self.si_signo == other.si_signo + && self.si_code == other.si_code + && self.si_errno == other.si_errno + && self.si_addr == other.si_addr + } + } + + impl Eq for siginfo_t {} + + impl ::fmt::Debug for siginfo_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("siginfo_t") + .field("si_signo", &self.si_signo) + .field("si_code", &self.si_code) + .field("si_errno", &self.si_errno) + .field("si_addr", &self.si_addr) + .finish() + } + } + + impl ::hash::Hash for siginfo_t { + fn hash(&self, state: &mut H) { + self.si_signo.hash(state); + self.si_code.hash(state); + self.si_errno.hash(state); + self.si_addr.hash(state); + } + } + + impl PartialEq for lastlog { + fn eq(&self, other: &lastlog) -> bool { + self.ll_time == other.ll_time + && self + .ll_line + .iter() + .zip(other.ll_line.iter()) + .all(|(a,b)| a == b) + && self + .ll_host + .iter() + .zip(other.ll_host.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for lastlog {} + + impl ::fmt::Debug for lastlog { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("lastlog") + .field("ll_time", &self.ll_time) + // FIXME: .field("ll_line", &self.ll_line) + // FIXME: .field("ll_host", &self.ll_host) + .finish() + } + } + + impl ::hash::Hash for lastlog { + fn hash(&self, state: &mut H) { + self.ll_time.hash(state); + self.ll_line.hash(state); + self.ll_host.hash(state); + } + } + + impl PartialEq for utmp { + fn eq(&self, other: &utmp) -> bool { + self.ut_time == other.ut_time + && self + .ut_line + .iter() + .zip(other.ut_line.iter()) + .all(|(a,b)| a == b) + && self + .ut_name + .iter() + .zip(other.ut_name.iter()) + .all(|(a,b)| a == b) + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for utmp {} + + impl ::fmt::Debug for utmp { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmp") + // FIXME: .field("ut_line", &self.ut_line) + // FIXME: .field("ut_name", &self.ut_name) + // FIXME: .field("ut_host", &self.ut_host) + .field("ut_time", &self.ut_time) + .finish() + } + } + + impl ::hash::Hash for utmp { + fn hash(&self, state: &mut H) { + self.ut_line.hash(state); + self.ut_name.hash(state); + self.ut_host.hash(state); + self.ut_time.hash(state); + } + } + + impl PartialEq for mount_info { + fn eq(&self, other: &mount_info) -> bool { + unsafe { + self.align + .iter() + .zip(other.align.iter()) + .all(|(a,b)| a == b) + } + } + } + + impl Eq for mount_info { } + + impl ::fmt::Debug for mount_info { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mount_info") + // FIXME: .field("align", &self.align) + .finish() + } + } + + impl ::hash::Hash for mount_info { + fn hash(&self, state: &mut H) { + unsafe { self.align.hash(state) }; + } + } + } +} + +cfg_if! { + if #[cfg(libc_union)] { + s_no_extra_traits! { + // This type uses the union mount_info: + pub struct statfs { + pub f_flags: u32, + pub f_bsize: u32, + pub f_iosize: u32, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: i64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: i64, + pub f_syncwrites: u64, + pub f_syncreads: u64, + pub f_asyncwrites: u64, + pub f_asyncreads: u64, + pub f_fsid: ::fsid_t, + pub f_namemax: u32, + pub f_owner: ::uid_t, + pub f_ctime: u64, + pub f_fstypename: [::c_char; 16], + pub f_mntonname: [::c_char; 90], + pub f_mntfromname: [::c_char; 90], + pub f_mntfromspec: [::c_char; 90], + pub mount_info: mount_info, + } + } + + cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for statfs { + fn eq(&self, other: &statfs) -> bool { + self.f_flags == other.f_flags + && self.f_bsize == other.f_bsize + && self.f_iosize == other.f_iosize + && self.f_blocks == other.f_blocks + && self.f_bfree == other.f_bfree + && self.f_bavail == other.f_bavail + && self.f_files == other.f_files + && self.f_ffree == other.f_ffree + && self.f_favail == other.f_favail + && self.f_syncwrites == other.f_syncwrites + && self.f_syncreads == other.f_syncreads + && self.f_asyncwrites == other.f_asyncwrites + && self.f_asyncreads == other.f_asyncreads + && self.f_fsid == other.f_fsid + && self.f_namemax == other.f_namemax + && self.f_owner == other.f_owner + && self.f_ctime == other.f_ctime + && self.f_fstypename + .iter() + .zip(other.f_fstypename.iter()) + .all(|(a,b)| a == b) + && self.f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a,b)| a == b) + && self.f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a,b)| a == b) + && self.f_mntfromspec + .iter() + .zip(other.f_mntfromspec.iter()) + .all(|(a,b)| a == b) + && self.mount_info == other.mount_info + } + } + + impl Eq for statfs { } + + impl ::fmt::Debug for statfs { + fn fmt(&self, f: &mut ::fmt::Formatter) + -> ::fmt::Result { + f.debug_struct("statfs") + .field("f_flags", &self.f_flags) + .field("f_bsize", &self.f_bsize) + .field("f_iosize", &self.f_iosize) + .field("f_blocks", &self.f_blocks) + .field("f_bfree", &self.f_bfree) + .field("f_bavail", &self.f_bavail) + .field("f_files", &self.f_files) + .field("f_ffree", &self.f_ffree) + .field("f_favail", &self.f_favail) + .field("f_syncwrites", &self.f_syncwrites) + .field("f_syncreads", &self.f_syncreads) + .field("f_asyncwrites", &self.f_asyncwrites) + .field("f_asyncreads", &self.f_asyncreads) + .field("f_fsid", &self.f_fsid) + .field("f_namemax", &self.f_namemax) + .field("f_owner", &self.f_owner) + .field("f_ctime", &self.f_ctime) + // FIXME: .field("f_fstypename", &self.f_fstypename) + // FIXME: .field("f_mntonname", &self.f_mntonname) + // FIXME: .field("f_mntfromname", &self.f_mntfromname) + // FIXME: .field("f_mntfromspec", &self.f_mntfromspec) + .field("mount_info", &self.mount_info) + .finish() + } + } + + impl ::hash::Hash for statfs { + fn hash(&self, state: &mut H) { + self.f_flags.hash(state); + self.f_bsize.hash(state); + self.f_iosize.hash(state); + self.f_blocks.hash(state); + self.f_bfree.hash(state); + self.f_bavail.hash(state); + self.f_files.hash(state); + self.f_ffree.hash(state); + self.f_favail.hash(state); + self.f_syncwrites.hash(state); + self.f_syncreads.hash(state); + self.f_asyncwrites.hash(state); + self.f_asyncreads.hash(state); + self.f_fsid.hash(state); + self.f_namemax.hash(state); + self.f_owner.hash(state); + self.f_ctime.hash(state); + self.f_fstypename.hash(state); + self.f_mntonname.hash(state); + self.f_mntfromname.hash(state); + self.f_mntfromspec.hash(state); + self.mount_info.hash(state); + } + } + } + } + } +} + +pub const UT_NAMESIZE: usize = 32; +pub const UT_LINESIZE: usize = 8; +pub const UT_HOSTSIZE: usize = 256; + +pub const O_CLOEXEC: ::c_int = 0x10000; +pub const O_DIRECTORY: ::c_int = 0x20000; +pub const O_RSYNC: ::c_int = O_SYNC; + +pub const MS_SYNC: ::c_int = 0x0002; +pub const MS_INVALIDATE: ::c_int = 0x0004; + +pub const POLLNORM: ::c_short = ::POLLRDNORM; + +pub const ENOATTR: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const EOVERFLOW: ::c_int = 87; +pub const ECANCELED: ::c_int = 88; +pub const EIDRM: ::c_int = 89; +pub const ENOMSG: ::c_int = 90; +pub const ENOTSUP: ::c_int = 91; +pub const EBADMSG: ::c_int = 92; +pub const ENOTRECOVERABLE: ::c_int = 93; +pub const EOWNERDEAD: ::c_int = 94; +pub const EPROTO: ::c_int = 95; +pub const ELAST: ::c_int = 95; + +pub const F_DUPFD_CLOEXEC: ::c_int = 10; + +pub const UTIME_OMIT: c_long = -1; +pub const UTIME_NOW: c_long = -2; + +pub const AT_FDCWD: ::c_int = -100; +pub const AT_EACCESS: ::c_int = 0x01; +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x02; +pub const AT_SYMLINK_FOLLOW: ::c_int = 0x04; +pub const AT_REMOVEDIR: ::c_int = 0x08; + +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] +pub const RLIM_NLIMITS: ::c_int = 9; + +pub const SO_TIMESTAMP: ::c_int = 0x0800; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const SO_BINDANY: ::c_int = 0x1000; +pub const SO_NETPROC: ::c_int = 0x1020; +pub const SO_RTABLE: ::c_int = 0x1021; +pub const SO_PEERCRED: ::c_int = 0x1022; +pub const SO_SPLICE: ::c_int = 0x1023; + +// sys/netinet/in.h +// Protocols (RFC 1700) +// NOTE: These are in addition to the constants defined in src/unix/mod.rs + +// IPPROTO_IP defined in src/unix/mod.rs +/// Hop-by-hop option header +pub const IPPROTO_HOPOPTS: ::c_int = 0; +// IPPROTO_ICMP defined in src/unix/mod.rs +/// group mgmt protocol +pub const IPPROTO_IGMP: ::c_int = 2; +/// gateway^2 (deprecated) +pub const IPPROTO_GGP: ::c_int = 3; +/// for compatibility +pub const IPPROTO_IPIP: ::c_int = 4; +// IPPROTO_TCP defined in src/unix/mod.rs +/// exterior gateway protocol +pub const IPPROTO_EGP: ::c_int = 8; +/// pup +pub const IPPROTO_PUP: ::c_int = 12; +// IPPROTO_UDP defined in src/unix/mod.rs +/// xns idp +pub const IPPROTO_IDP: ::c_int = 22; +/// tp-4 w/ class negotiation +pub const IPPROTO_TP: ::c_int = 29; +// IPPROTO_IPV6 defined in src/unix/mod.rs +/// IP6 routing header +pub const IPPROTO_ROUTING: ::c_int = 43; +/// IP6 fragmentation header +pub const IPPROTO_FRAGMENT: ::c_int = 44; +/// resource reservation +pub const IPPROTO_RSVP: ::c_int = 46; +/// General Routing Encap. +pub const IPPROTO_GRE: ::c_int = 47; +/// IP6 Encap Sec. Payload +pub const IPPROTO_ESP: ::c_int = 50; +/// IP6 Auth Header +pub const IPPROTO_AH: ::c_int = 51; +/// IP Mobility RFC 2004 +pub const IPPROTO_MOBILE: ::c_int = 55; +// IPPROTO_ICMPV6 defined in src/unix/mod.rs +/// IP6 no next header +pub const IPPROTO_NONE: ::c_int = 59; +/// IP6 destination option +pub const IPPROTO_DSTOPTS: ::c_int = 60; +/// ISO cnlp +pub const IPPROTO_EON: ::c_int = 80; +/// Ethernet-in-IP +pub const IPPROTO_ETHERIP: ::c_int = 97; +/// encapsulation header +pub const IPPROTO_ENCAP: ::c_int = 98; +/// Protocol indep. multicast +pub const IPPROTO_PIM: ::c_int = 103; +/// IP Payload Comp. Protocol +pub const IPPROTO_IPCOMP: ::c_int = 108; +/// CARP +pub const IPPROTO_CARP: ::c_int = 112; +/// unicast MPLS packet +pub const IPPROTO_MPLS: ::c_int = 137; +/// PFSYNC +pub const IPPROTO_PFSYNC: ::c_int = 240; +pub const IPPROTO_MAX: ::c_int = 256; + +// Only used internally, so it can be outside the range of valid IP protocols +pub const IPPROTO_DIVERT: ::c_int = 258; + +pub const IP_RECVDSTADDR: ::c_int = 7; +pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; +pub const IP_RECVIF: ::c_int = 30; + +// sys/netinet/in.h +pub const TCP_MD5SIG: ::c_int = 0x04; +pub const TCP_NOPUSH: ::c_int = 0x10; + +pub const MSG_WAITFORONE: ::c_int = 0x1000; + +pub const AF_ECMA: ::c_int = 8; +pub const AF_ROUTE: ::c_int = 17; +pub const AF_ENCAP: ::c_int = 28; +pub const AF_SIP: ::c_int = 29; +pub const AF_KEY: ::c_int = 30; +pub const pseudo_AF_HDRCMPLT: ::c_int = 31; +pub const AF_BLUETOOTH: ::c_int = 32; +pub const AF_MPLS: ::c_int = 33; +pub const pseudo_AF_PFLOW: ::c_int = 34; +pub const pseudo_AF_PIPEX: ::c_int = 35; +pub const NET_RT_DUMP: ::c_int = 1; +pub const NET_RT_FLAGS: ::c_int = 2; +pub const NET_RT_IFLIST: ::c_int = 3; +pub const NET_RT_STATS: ::c_int = 4; +pub const NET_RT_TABLE: ::c_int = 5; +pub const NET_RT_IFNAMES: ::c_int = 6; +#[doc(hidden)] +#[deprecated( + since = "0.2.95", + note = "Possibly increasing over the releases and might not be so used in the field" +)] +pub const NET_RT_MAXID: ::c_int = 7; + +pub const IPV6_JOIN_GROUP: ::c_int = 12; +pub const IPV6_LEAVE_GROUP: ::c_int = 13; + +pub const PF_ROUTE: ::c_int = AF_ROUTE; +pub const PF_ECMA: ::c_int = AF_ECMA; +pub const PF_ENCAP: ::c_int = AF_ENCAP; +pub const PF_SIP: ::c_int = AF_SIP; +pub const PF_KEY: ::c_int = AF_KEY; +pub const PF_BPF: ::c_int = pseudo_AF_HDRCMPLT; +pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; +pub const PF_MPLS: ::c_int = AF_MPLS; +pub const PF_PFLOW: ::c_int = pseudo_AF_PFLOW; +pub const PF_PIPEX: ::c_int = pseudo_AF_PIPEX; + +pub const SCM_TIMESTAMP: ::c_int = 0x04; + +pub const O_DSYNC: ::c_int = 128; + +pub const MAP_RENAME: ::c_int = 0x0000; +pub const MAP_NORESERVE: ::c_int = 0x0000; +pub const MAP_HASSEMAPHORE: ::c_int = 0x0000; + +pub const EIPSEC: ::c_int = 82; +pub const ENOMEDIUM: ::c_int = 85; +pub const EMEDIUMTYPE: ::c_int = 86; + +pub const EAI_BADFLAGS: ::c_int = -1; +pub const EAI_NONAME: ::c_int = -2; +pub const EAI_AGAIN: ::c_int = -3; +pub const EAI_FAIL: ::c_int = -4; +pub const EAI_NODATA: ::c_int = -5; +pub const EAI_FAMILY: ::c_int = -6; +pub const EAI_SOCKTYPE: ::c_int = -7; +pub const EAI_SERVICE: ::c_int = -8; +pub const EAI_MEMORY: ::c_int = -10; +pub const EAI_SYSTEM: ::c_int = -11; +pub const EAI_OVERFLOW: ::c_int = -14; + +pub const RUSAGE_THREAD: ::c_int = 1; + +pub const MAP_COPY: ::c_int = 0x0002; +pub const MAP_NOEXTEND: ::c_int = 0x0000; + +pub const _PC_LINK_MAX: ::c_int = 1; +pub const _PC_MAX_CANON: ::c_int = 2; +pub const _PC_MAX_INPUT: ::c_int = 3; +pub const _PC_NAME_MAX: ::c_int = 4; +pub const _PC_PATH_MAX: ::c_int = 5; +pub const _PC_PIPE_BUF: ::c_int = 6; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; +pub const _PC_NO_TRUNC: ::c_int = 8; +pub const _PC_VDISABLE: ::c_int = 9; +pub const _PC_2_SYMLINKS: ::c_int = 10; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 11; +pub const _PC_ASYNC_IO: ::c_int = 12; +pub const _PC_FILESIZEBITS: ::c_int = 13; +pub const _PC_PRIO_IO: ::c_int = 14; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 15; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 16; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 17; +pub const _PC_REC_XFER_ALIGN: ::c_int = 18; +pub const _PC_SYMLINK_MAX: ::c_int = 19; +pub const _PC_SYNC_IO: ::c_int = 20; +pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 21; + +pub const _SC_CLK_TCK: ::c_int = 3; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 31; +pub const _SC_SEM_VALUE_MAX: ::c_int = 32; +pub const _SC_HOST_NAME_MAX: ::c_int = 33; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 34; +pub const _SC_2_PBS: ::c_int = 35; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 36; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 37; +pub const _SC_2_PBS_LOCATE: ::c_int = 38; +pub const _SC_2_PBS_MESSAGE: ::c_int = 39; +pub const _SC_2_PBS_TRACK: ::c_int = 40; +pub const _SC_ADVISORY_INFO: ::c_int = 41; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 42; +pub const _SC_AIO_MAX: ::c_int = 43; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 44; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 45; +pub const _SC_ATEXIT_MAX: ::c_int = 46; +pub const _SC_BARRIERS: ::c_int = 47; +pub const _SC_CLOCK_SELECTION: ::c_int = 48; +pub const _SC_CPUTIME: ::c_int = 49; +pub const _SC_DELAYTIMER_MAX: ::c_int = 50; +pub const _SC_IOV_MAX: ::c_int = 51; +pub const _SC_IPV6: ::c_int = 52; +pub const _SC_MAPPED_FILES: ::c_int = 53; +pub const _SC_MEMLOCK: ::c_int = 54; +pub const _SC_MEMLOCK_RANGE: ::c_int = 55; +pub const _SC_MEMORY_PROTECTION: ::c_int = 56; +pub const _SC_MESSAGE_PASSING: ::c_int = 57; +pub const _SC_MQ_OPEN_MAX: ::c_int = 58; +pub const _SC_MQ_PRIO_MAX: ::c_int = 59; +pub const _SC_PRIORITIZED_IO: ::c_int = 60; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 61; +pub const _SC_RAW_SOCKETS: ::c_int = 62; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 63; +pub const _SC_REALTIME_SIGNALS: ::c_int = 64; +pub const _SC_REGEXP: ::c_int = 65; +pub const _SC_RTSIG_MAX: ::c_int = 66; +pub const _SC_SEMAPHORES: ::c_int = 67; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 68; +pub const _SC_SHELL: ::c_int = 69; +pub const _SC_SIGQUEUE_MAX: ::c_int = 70; +pub const _SC_SPAWN: ::c_int = 71; +pub const _SC_SPIN_LOCKS: ::c_int = 72; +pub const _SC_SPORADIC_SERVER: ::c_int = 73; +pub const _SC_SS_REPL_MAX: ::c_int = 74; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 75; +pub const _SC_SYMLOOP_MAX: ::c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; +pub const _SC_THREAD_CPUTIME: ::c_int = 79; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 80; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 81; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 82; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 83; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 84; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 85; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 86; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 87; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 88; +pub const _SC_THREAD_STACK_MIN: ::c_int = 89; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 90; +pub const _SC_THREADS: ::c_int = 91; +pub const _SC_TIMEOUTS: ::c_int = 92; +pub const _SC_TIMER_MAX: ::c_int = 93; +pub const _SC_TIMERS: ::c_int = 94; +pub const _SC_TRACE: ::c_int = 95; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 96; +pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 97; +pub const _SC_TRACE_INHERIT: ::c_int = 98; +pub const _SC_TRACE_LOG: ::c_int = 99; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 100; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 101; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 102; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 103; +pub const _SC_TRACE_NAME_MAX: ::c_int = 104; +pub const _SC_TRACE_SYS_MAX: ::c_int = 105; +pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 106; +pub const _SC_TTY_NAME_MAX: ::c_int = 107; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 108; +pub const _SC_V6_ILP32_OFF32: ::c_int = 109; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 110; +pub const _SC_V6_LP64_OFF64: ::c_int = 111; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 112; +pub const _SC_V7_ILP32_OFF32: ::c_int = 113; +pub const _SC_V7_ILP32_OFFBIG: ::c_int = 114; +pub const _SC_V7_LP64_OFF64: ::c_int = 115; +pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 116; +pub const _SC_XOPEN_CRYPT: ::c_int = 117; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 118; +pub const _SC_XOPEN_LEGACY: ::c_int = 119; +pub const _SC_XOPEN_REALTIME: ::c_int = 120; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 121; +pub const _SC_XOPEN_STREAMS: ::c_int = 122; +pub const _SC_XOPEN_UNIX: ::c_int = 123; +pub const _SC_XOPEN_UUCP: ::c_int = 124; +pub const _SC_XOPEN_VERSION: ::c_int = 125; +pub const _SC_PHYS_PAGES: ::c_int = 500; +pub const _SC_AVPHYS_PAGES: ::c_int = 501; +pub const _SC_NPROCESSORS_CONF: ::c_int = 502; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 503; + +pub const FD_SETSIZE: usize = 1024; + +pub const SCHED_FIFO: ::c_int = 1; +pub const SCHED_OTHER: ::c_int = 2; +pub const SCHED_RR: ::c_int = 3; + +pub const ST_NOSUID: ::c_ulong = 2; + +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _; + +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3; +pub const PTHREAD_MUTEX_STRICT_NP: ::c_int = 4; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_STRICT_NP; + +pub const EVFILT_READ: i16 = -1; +pub const EVFILT_WRITE: i16 = -2; +pub const EVFILT_AIO: i16 = -3; +pub const EVFILT_VNODE: i16 = -4; +pub const EVFILT_PROC: i16 = -5; +pub const EVFILT_SIGNAL: i16 = -6; +pub const EVFILT_TIMER: i16 = -7; +pub const EVFILT_DEVICE: i16 = -8; +pub const EVFILT_EXCEPT: i16 = -9; + +pub const EV_ADD: u16 = 0x1; +pub const EV_DELETE: u16 = 0x2; +pub const EV_ENABLE: u16 = 0x4; +pub const EV_DISABLE: u16 = 0x8; +pub const EV_ONESHOT: u16 = 0x10; +pub const EV_CLEAR: u16 = 0x20; +pub const EV_RECEIPT: u16 = 0x40; +pub const EV_DISPATCH: u16 = 0x80; +pub const EV_FLAG1: u16 = 0x2000; +pub const EV_ERROR: u16 = 0x4000; +pub const EV_EOF: u16 = 0x8000; + +#[deprecated(since = "0.2.113", note = "Not stable across OS versions")] +pub const EV_SYSFLAGS: u16 = 0xf800; + +pub const NOTE_LOWAT: u32 = 0x00000001; +pub const NOTE_EOF: u32 = 0x00000002; +pub const NOTE_OOB: u32 = 0x00000004; +pub const NOTE_DELETE: u32 = 0x00000001; +pub const NOTE_WRITE: u32 = 0x00000002; +pub const NOTE_EXTEND: u32 = 0x00000004; +pub const NOTE_ATTRIB: u32 = 0x00000008; +pub const NOTE_LINK: u32 = 0x00000010; +pub const NOTE_RENAME: u32 = 0x00000020; +pub const NOTE_REVOKE: u32 = 0x00000040; +pub const NOTE_TRUNCATE: u32 = 0x00000080; +pub const NOTE_EXIT: u32 = 0x80000000; +pub const NOTE_FORK: u32 = 0x40000000; +pub const NOTE_EXEC: u32 = 0x20000000; +pub const NOTE_PDATAMASK: u32 = 0x000fffff; +pub const NOTE_PCTRLMASK: u32 = 0xf0000000; +pub const NOTE_TRACK: u32 = 0x00000001; +pub const NOTE_TRACKERR: u32 = 0x00000002; +pub const NOTE_CHILD: u32 = 0x00000004; +pub const NOTE_CHANGE: u32 = 0x00000001; + +pub const TMP_MAX: ::c_uint = 0x7fffffff; + +pub const AI_PASSIVE: ::c_int = 1; +pub const AI_CANONNAME: ::c_int = 2; +pub const AI_NUMERICHOST: ::c_int = 4; +pub const AI_EXT: ::c_int = 8; +pub const AI_NUMERICSERV: ::c_int = 16; +pub const AI_FQDN: ::c_int = 32; +pub const AI_ADDRCONFIG: ::c_int = 64; + +pub const NI_NUMERICHOST: ::c_int = 1; +pub const NI_NUMERICSERV: ::c_int = 2; +pub const NI_NOFQDN: ::c_int = 4; +pub const NI_NAMEREQD: ::c_int = 8; +pub const NI_DGRAM: ::c_int = 16; + +pub const NI_MAXHOST: ::size_t = 256; + +pub const RTLD_LOCAL: ::c_int = 0; + +pub const CTL_MAXNAME: ::c_int = 12; + +pub const CTLTYPE_NODE: ::c_int = 1; +pub const CTLTYPE_INT: ::c_int = 2; +pub const CTLTYPE_STRING: ::c_int = 3; +pub const CTLTYPE_QUAD: ::c_int = 4; +pub const CTLTYPE_STRUCT: ::c_int = 5; + +pub const CTL_UNSPEC: ::c_int = 0; +pub const CTL_KERN: ::c_int = 1; +pub const CTL_VM: ::c_int = 2; +pub const CTL_FS: ::c_int = 3; +pub const CTL_NET: ::c_int = 4; +pub const CTL_DEBUG: ::c_int = 5; +pub const CTL_HW: ::c_int = 6; +pub const CTL_MACHDEP: ::c_int = 7; +pub const CTL_DDB: ::c_int = 9; +pub const CTL_VFS: ::c_int = 10; +pub const CTL_MAXID: ::c_int = 11; + +pub const HW_NCPUONLINE: ::c_int = 25; + +pub const KERN_OSTYPE: ::c_int = 1; +pub const KERN_OSRELEASE: ::c_int = 2; +pub const KERN_OSREV: ::c_int = 3; +pub const KERN_VERSION: ::c_int = 4; +pub const KERN_MAXVNODES: ::c_int = 5; +pub const KERN_MAXPROC: ::c_int = 6; +pub const KERN_MAXFILES: ::c_int = 7; +pub const KERN_ARGMAX: ::c_int = 8; +pub const KERN_SECURELVL: ::c_int = 9; +pub const KERN_HOSTNAME: ::c_int = 10; +pub const KERN_HOSTID: ::c_int = 11; +pub const KERN_CLOCKRATE: ::c_int = 12; +pub const KERN_PROF: ::c_int = 16; +pub const KERN_POSIX1: ::c_int = 17; +pub const KERN_NGROUPS: ::c_int = 18; +pub const KERN_JOB_CONTROL: ::c_int = 19; +pub const KERN_SAVED_IDS: ::c_int = 20; +pub const KERN_BOOTTIME: ::c_int = 21; +pub const KERN_DOMAINNAME: ::c_int = 22; +pub const KERN_MAXPARTITIONS: ::c_int = 23; +pub const KERN_RAWPARTITION: ::c_int = 24; +pub const KERN_MAXTHREAD: ::c_int = 25; +pub const KERN_NTHREADS: ::c_int = 26; +pub const KERN_OSVERSION: ::c_int = 27; +pub const KERN_SOMAXCONN: ::c_int = 28; +pub const KERN_SOMINCONN: ::c_int = 29; +#[deprecated(since = "0.2.71", note = "Removed in OpenBSD 6.0")] +pub const KERN_USERMOUNT: ::c_int = 30; +pub const KERN_NOSUIDCOREDUMP: ::c_int = 32; +pub const KERN_FSYNC: ::c_int = 33; +pub const KERN_SYSVMSG: ::c_int = 34; +pub const KERN_SYSVSEM: ::c_int = 35; +pub const KERN_SYSVSHM: ::c_int = 36; +#[deprecated(since = "0.2.71", note = "Removed in OpenBSD 6.0")] +pub const KERN_ARND: ::c_int = 37; +pub const KERN_MSGBUFSIZE: ::c_int = 38; +pub const KERN_MALLOCSTATS: ::c_int = 39; +pub const KERN_CPTIME: ::c_int = 40; +pub const KERN_NCHSTATS: ::c_int = 41; +pub const KERN_FORKSTAT: ::c_int = 42; +pub const KERN_NSELCOLL: ::c_int = 43; +pub const KERN_TTY: ::c_int = 44; +pub const KERN_CCPU: ::c_int = 45; +pub const KERN_FSCALE: ::c_int = 46; +pub const KERN_NPROCS: ::c_int = 47; +pub const KERN_MSGBUF: ::c_int = 48; +pub const KERN_POOL: ::c_int = 49; +pub const KERN_STACKGAPRANDOM: ::c_int = 50; +pub const KERN_SYSVIPC_INFO: ::c_int = 51; +pub const KERN_SPLASSERT: ::c_int = 54; +pub const KERN_PROC_ARGS: ::c_int = 55; +pub const KERN_NFILES: ::c_int = 56; +pub const KERN_TTYCOUNT: ::c_int = 57; +pub const KERN_NUMVNODES: ::c_int = 58; +pub const KERN_MBSTAT: ::c_int = 59; +pub const KERN_SEMINFO: ::c_int = 61; +pub const KERN_SHMINFO: ::c_int = 62; +pub const KERN_INTRCNT: ::c_int = 63; +pub const KERN_WATCHDOG: ::c_int = 64; +pub const KERN_PROC: ::c_int = 66; +pub const KERN_MAXCLUSTERS: ::c_int = 67; +pub const KERN_EVCOUNT: ::c_int = 68; +pub const KERN_TIMECOUNTER: ::c_int = 69; +pub const KERN_MAXLOCKSPERUID: ::c_int = 70; +pub const KERN_CPTIME2: ::c_int = 71; +pub const KERN_CACHEPCT: ::c_int = 72; +pub const KERN_FILE: ::c_int = 73; +pub const KERN_CONSDEV: ::c_int = 75; +pub const KERN_NETLIVELOCKS: ::c_int = 76; +pub const KERN_POOL_DEBUG: ::c_int = 77; +pub const KERN_PROC_CWD: ::c_int = 78; +pub const KERN_PROC_NOBROADCASTKILL: ::c_int = 79; +pub const KERN_PROC_VMMAP: ::c_int = 80; +pub const KERN_GLOBAL_PTRACE: ::c_int = 81; +pub const KERN_CONSBUFSIZE: ::c_int = 82; +pub const KERN_CONSBUF: ::c_int = 83; +pub const KERN_AUDIO: ::c_int = 84; +pub const KERN_CPUSTATS: ::c_int = 85; +pub const KERN_PFSTATUS: ::c_int = 86; +pub const KERN_TIMEOUT_STATS: ::c_int = 87; +#[deprecated( + since = "0.2.95", + note = "Possibly increasing over the releases and might not be so used in the field" +)] +pub const KERN_MAXID: ::c_int = 88; + +pub const KERN_PROC_ALL: ::c_int = 0; +pub const KERN_PROC_PID: ::c_int = 1; +pub const KERN_PROC_PGRP: ::c_int = 2; +pub const KERN_PROC_SESSION: ::c_int = 3; +pub const KERN_PROC_TTY: ::c_int = 4; +pub const KERN_PROC_UID: ::c_int = 5; +pub const KERN_PROC_RUID: ::c_int = 6; +pub const KERN_PROC_KTHREAD: ::c_int = 7; +pub const KERN_PROC_SHOW_THREADS: ::c_int = 0x40000000; + +pub const KERN_SYSVIPC_MSG_INFO: ::c_int = 1; +pub const KERN_SYSVIPC_SEM_INFO: ::c_int = 2; +pub const KERN_SYSVIPC_SHM_INFO: ::c_int = 3; + +pub const KERN_PROC_ARGV: ::c_int = 1; +pub const KERN_PROC_NARGV: ::c_int = 2; +pub const KERN_PROC_ENV: ::c_int = 3; +pub const KERN_PROC_NENV: ::c_int = 4; + +pub const KI_NGROUPS: ::c_int = 16; +pub const KI_MAXCOMLEN: ::c_int = 24; +pub const KI_WMESGLEN: ::c_int = 8; +pub const KI_MAXLOGNAME: ::c_int = 32; +pub const KI_EMULNAMELEN: ::c_int = 8; + +pub const KVE_ET_OBJ: ::c_int = 0x00000001; +pub const KVE_ET_SUBMAP: ::c_int = 0x00000002; +pub const KVE_ET_COPYONWRITE: ::c_int = 0x00000004; +pub const KVE_ET_NEEDSCOPY: ::c_int = 0x00000008; +pub const KVE_ET_HOLE: ::c_int = 0x00000010; +pub const KVE_ET_NOFAULT: ::c_int = 0x00000020; +pub const KVE_ET_STACK: ::c_int = 0x00000040; +pub const KVE_ET_WC: ::c_int = 0x000000080; +pub const KVE_ET_CONCEAL: ::c_int = 0x000000100; +pub const KVE_ET_SYSCALL: ::c_int = 0x000000200; +pub const KVE_ET_FREEMAPPED: ::c_int = 0x000000800; + +pub const KVE_PROT_NONE: ::c_int = 0x00000000; +pub const KVE_PROT_READ: ::c_int = 0x00000001; +pub const KVE_PROT_WRITE: ::c_int = 0x00000002; +pub const KVE_PROT_EXEC: ::c_int = 0x00000004; + +pub const KVE_ADV_NORMAL: ::c_int = 0x00000000; +pub const KVE_ADV_RANDOM: ::c_int = 0x00000001; +pub const KVE_ADV_SEQUENTIAL: ::c_int = 0x00000002; + +pub const KVE_INH_SHARE: ::c_int = 0x00000000; +pub const KVE_INH_COPY: ::c_int = 0x00000010; +pub const KVE_INH_NONE: ::c_int = 0x00000020; +pub const KVE_INH_ZERO: ::c_int = 0x00000030; + +pub const KVE_F_STATIC: ::c_int = 0x1; +pub const KVE_F_KMEM: ::c_int = 0x2; + +pub const CHWFLOW: ::tcflag_t = ::MDMBUF | ::CRTSCTS; +pub const OLCUC: ::tcflag_t = 0x20; +pub const ONOCR: ::tcflag_t = 0x40; +pub const ONLRET: ::tcflag_t = 0x80; + +//https://github.com/openbsd/src/blob/HEAD/sys/sys/mount.h +pub const ISOFSMNT_NORRIP: ::c_int = 0x1; // disable Rock Ridge Ext +pub const ISOFSMNT_GENS: ::c_int = 0x2; // enable generation numbers +pub const ISOFSMNT_EXTATT: ::c_int = 0x4; // enable extended attr +pub const ISOFSMNT_NOJOLIET: ::c_int = 0x8; // disable Joliet Ext +pub const ISOFSMNT_SESS: ::c_int = 0x10; // use iso_args.sess + +pub const NFS_ARGSVERSION: ::c_int = 4; // change when nfs_args changes + +pub const NFSMNT_RESVPORT: ::c_int = 0; // always use reserved ports +pub const NFSMNT_SOFT: ::c_int = 0x1; // soft mount (hard is default) +pub const NFSMNT_WSIZE: ::c_int = 0x2; // set write size +pub const NFSMNT_RSIZE: ::c_int = 0x4; // set read size +pub const NFSMNT_TIMEO: ::c_int = 0x8; // set initial timeout +pub const NFSMNT_RETRANS: ::c_int = 0x10; // set number of request retries +pub const NFSMNT_MAXGRPS: ::c_int = 0x20; // set maximum grouplist size +pub const NFSMNT_INT: ::c_int = 0x40; // allow interrupts on hard mount +pub const NFSMNT_NOCONN: ::c_int = 0x80; // Don't Connect the socket +pub const NFSMNT_NQNFS: ::c_int = 0x100; // Use Nqnfs protocol +pub const NFSMNT_NFSV3: ::c_int = 0x200; // Use NFS Version 3 protocol +pub const NFSMNT_KERB: ::c_int = 0x400; // Use Kerberos authentication +pub const NFSMNT_DUMBTIMR: ::c_int = 0x800; // Don't estimate rtt dynamically +pub const NFSMNT_LEASETERM: ::c_int = 0x1000; // set lease term (nqnfs) +pub const NFSMNT_READAHEAD: ::c_int = 0x2000; // set read ahead +pub const NFSMNT_DEADTHRESH: ::c_int = 0x4000; // set dead server retry thresh +pub const NFSMNT_NOAC: ::c_int = 0x8000; // disable attribute cache +pub const NFSMNT_RDIRPLUS: ::c_int = 0x10000; // Use Readdirplus for V3 +pub const NFSMNT_READDIRSIZE: ::c_int = 0x20000; // Set readdir size + +/* Flags valid only in mount syscall arguments */ +pub const NFSMNT_ACREGMIN: ::c_int = 0x40000; // acregmin field valid +pub const NFSMNT_ACREGMAX: ::c_int = 0x80000; // acregmax field valid +pub const NFSMNT_ACDIRMIN: ::c_int = 0x100000; // acdirmin field valid +pub const NFSMNT_ACDIRMAX: ::c_int = 0x200000; // acdirmax field valid + +/* Flags valid only in kernel */ +pub const NFSMNT_INTERNAL: ::c_int = 0xfffc0000; // Bits set internally +pub const NFSMNT_HASWRITEVERF: ::c_int = 0x40000; // Has write verifier for V3 +pub const NFSMNT_GOTPATHCONF: ::c_int = 0x80000; // Got the V3 pathconf info +pub const NFSMNT_GOTFSINFO: ::c_int = 0x100000; // Got the V3 fsinfo +pub const NFSMNT_MNTD: ::c_int = 0x200000; // Mnt server for mnt point +pub const NFSMNT_DISMINPROG: ::c_int = 0x400000; // Dismount in progress +pub const NFSMNT_DISMNT: ::c_int = 0x800000; // Dismounted +pub const NFSMNT_SNDLOCK: ::c_int = 0x1000000; // Send socket lock +pub const NFSMNT_WANTSND: ::c_int = 0x2000000; // Want above +pub const NFSMNT_RCVLOCK: ::c_int = 0x4000000; // Rcv socket lock +pub const NFSMNT_WANTRCV: ::c_int = 0x8000000; // Want above +pub const NFSMNT_WAITAUTH: ::c_int = 0x10000000; // Wait for authentication +pub const NFSMNT_HASAUTH: ::c_int = 0x20000000; // Has authenticator +pub const NFSMNT_WANTAUTH: ::c_int = 0x40000000; // Wants an authenticator +pub const NFSMNT_AUTHERR: ::c_int = 0x80000000; // Authentication error + +pub const MSDOSFSMNT_SHORTNAME: ::c_int = 0x1; // Force old DOS short names only +pub const MSDOSFSMNT_LONGNAME: ::c_int = 0x2; // Force Win'95 long names +pub const MSDOSFSMNT_NOWIN95: ::c_int = 0x4; // Completely ignore Win95 entries + +pub const NTFS_MFLAG_CASEINS: ::c_int = 0x1; +pub const NTFS_MFLAG_ALLNAMES: ::c_int = 0x2; + +pub const TMPFS_ARGS_VERSION: ::c_int = 1; + +pub const MAP_STACK: ::c_int = 0x4000; +pub const MAP_CONCEAL: ::c_int = 0x8000; + +// https://github.com/openbsd/src/blob/HEAD/sys/net/if.h#L187 +pub const IFF_UP: ::c_int = 0x1; // interface is up +pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid +pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging +pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net +pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link +pub const IFF_STATICARP: ::c_int = 0x20; // only static ARP +pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated +pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol +pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets +pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets +pub const IFF_OACTIVE: ::c_int = 0x400; // transmission in progress +pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions +pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit +pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit +pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit +pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast + +pub const PTHREAD_STACK_MIN: ::size_t = 1_usize << _MAX_PAGE_SHIFT; +pub const MINSIGSTKSZ: ::size_t = 3_usize << _MAX_PAGE_SHIFT; +pub const SIGSTKSZ: ::size_t = MINSIGSTKSZ + (1_usize << _MAX_PAGE_SHIFT) * 4; + +pub const PT_SET_EVENT_MASK: ::c_int = 12; +pub const PT_GET_EVENT_MASK: ::c_int = 13; +pub const PT_GET_PROCESS_STATE: ::c_int = 14; +pub const PT_GET_THREAD_FIRST: ::c_int = 15; +pub const PT_GET_THREAD_NEXT: ::c_int = 16; +pub const PT_FIRSTMACH: ::c_int = 32; + +pub const SOCK_CLOEXEC: ::c_int = 0x8000; +pub const SOCK_NONBLOCK: ::c_int = 0x4000; +pub const SOCK_DNS: ::c_int = 0x1000; + +pub const BIOCGRSIG: ::c_ulong = 0x40044273; +pub const BIOCSRSIG: ::c_ulong = 0x80044272; +pub const BIOCSDLT: ::c_ulong = 0x8004427a; + +pub const PTRACE_FORK: ::c_int = 0x0002; + +pub const WCONTINUED: ::c_int = 0x08; +pub const WEXITED: ::c_int = 0x04; +pub const WSTOPPED: ::c_int = 0x02; // same as WUNTRACED +pub const WNOWAIT: ::c_int = 0x10; +pub const WTRAPPED: ::c_int = 0x20; + +pub const P_ALL: ::idtype_t = 0; +pub const P_PGID: ::idtype_t = 1; +pub const P_PID: ::idtype_t = 2; + +// search.h +pub const FIND: ::ACTION = 0; +pub const ENTER: ::ACTION = 1; + +// futex.h +pub const FUTEX_WAIT: ::c_int = 1; +pub const FUTEX_WAKE: ::c_int = 2; +pub const FUTEX_REQUEUE: ::c_int = 3; +pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; + +// sysctl.h, kinfo_proc p_eflag constants +pub const EPROC_CTTY: i32 = 0x01; // controlling tty vnode active +pub const EPROC_SLEADER: i32 = 0x02; // session leader +pub const EPROC_UNVEIL: i32 = 0x04; // has unveil settings +pub const EPROC_LKUNVEIL: i32 = 0x08; // unveil is locked + +// Flags for chflags(2) +pub const UF_SETTABLE: ::c_uint = 0x0000ffff; +pub const UF_NODUMP: ::c_uint = 0x00000001; +pub const UF_IMMUTABLE: ::c_uint = 0x00000002; +pub const UF_APPEND: ::c_uint = 0x00000004; +pub const UF_OPAQUE: ::c_uint = 0x00000008; +pub const SF_SETTABLE: ::c_uint = 0xffff0000; +pub const SF_ARCHIVED: ::c_uint = 0x00010000; +pub const SF_IMMUTABLE: ::c_uint = 0x00020000; +pub const SF_APPEND: ::c_uint = 0x00040000; + +// sys/mount.h +pub const MNT_NOPERM: ::c_int = 0x00000020; +pub const MNT_WXALLOWED: ::c_int = 0x00000800; +pub const MNT_EXRDONLY: ::c_int = 0x00000080; +pub const MNT_DEFEXPORTED: ::c_int = 0x00000200; +pub const MNT_EXPORTANON: ::c_int = 0x00000400; +pub const MNT_ROOTFS: ::c_int = 0x00004000; +pub const MNT_NOATIME: ::c_int = 0x00008000; +pub const MNT_DELEXPORT: ::c_int = 0x00020000; +pub const MNT_STALLED: ::c_int = 0x00100000; +pub const MNT_SWAPPABLE: ::c_int = 0x00200000; +pub const MNT_WANTRDWR: ::c_int = 0x02000000; +pub const MNT_SOFTDEP: ::c_int = 0x04000000; +pub const MNT_DOOMED: ::c_int = 0x08000000; + +// For use with vfs_fsync and getfsstat +pub const MNT_WAIT: ::c_int = 1; +pub const MNT_NOWAIT: ::c_int = 2; +pub const MNT_LAZY: ::c_int = 3; + +// sys/_time.h +pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; +pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 4; +pub const CLOCK_UPTIME: ::clockid_t = 5; +pub const CLOCK_BOOTTIME: ::clockid_t = 6; + +pub const LC_COLLATE_MASK: ::c_int = 1 << ::LC_COLLATE; +pub const LC_CTYPE_MASK: ::c_int = 1 << ::LC_CTYPE; +pub const LC_MONETARY_MASK: ::c_int = 1 << ::LC_MONETARY; +pub const LC_NUMERIC_MASK: ::c_int = 1 << ::LC_NUMERIC; +pub const LC_TIME_MASK: ::c_int = 1 << ::LC_TIME; +pub const LC_MESSAGES_MASK: ::c_int = 1 << ::LC_MESSAGES; + +const _LC_LAST: ::c_int = 7; +pub const LC_ALL_MASK: ::c_int = (1 << _LC_LAST) - 2; + +pub const LC_GLOBAL_LOCALE: ::locale_t = -1isize as ::locale_t; + +const_fn! { + {const} fn _ALIGN(p: usize) -> usize { + (p + _ALIGNBYTES) & !_ALIGNBYTES + } +} + +f! { + pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { + (cmsg as *mut ::c_uchar) + .offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + } + + pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { + _ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length + } + + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) + -> *mut ::cmsghdr + { + if cmsg.is_null() { + return ::CMSG_FIRSTHDR(mhdr); + }; + let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + + _ALIGN(::mem::size_of::<::cmsghdr>()); + let max = (*mhdr).msg_control as usize + + (*mhdr).msg_controllen as usize; + if next > max { + 0 as *mut ::cmsghdr + } else { + (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) + as *mut ::cmsghdr + } + } + + pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) + as ::c_uint + } + + pub fn major(dev: ::dev_t) -> ::c_uint{ + ((dev as ::c_uint) >> 8) & 0xff + } + + pub fn minor(dev: ::dev_t) -> ::c_uint { + let dev = dev as ::c_uint; + let mut res = 0; + res |= (dev) & 0xff; + res |= ((dev) & 0xffff0000) >> 8; + + res + } +} + +safe_f! { + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + status >> 8 + } + + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + (status & 0o177) != 0o177 && (status & 0o177) != 0 + } + + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + (status & 0xff) == 0o177 + } + + pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + (status & 0o177777) == 0o177777 + } + + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + let mut dev = 0; + dev |= (major & 0xff) << 8; + dev |= minor & 0xff; + dev |= (minor & 0xffff00) << 8; + dev + } +} + +extern "C" { + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn settimeofday(tp: *const ::timeval, tz: *const ::timezone) -> ::c_int; + pub fn execvpe( + file: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + pub fn pledge(promises: *const ::c_char, execpromises: *const ::c_char) -> ::c_int; + pub fn unveil(path: *const ::c_char, permissions: *const ::c_char) -> ::c_int; + pub fn strtonum( + nptr: *const ::c_char, + minval: ::c_longlong, + maxval: ::c_longlong, + errstr: *mut *const ::c_char, + ) -> ::c_longlong; + pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; + pub fn chflags(path: *const ::c_char, flags: ::c_uint) -> ::c_int; + pub fn fchflags(fd: ::c_int, flags: ::c_uint) -> ::c_int; + pub fn chflagsat( + fd: ::c_int, + path: *const ::c_char, + flags: ::c_uint, + atflag: ::c_int, + ) -> ::c_int; + pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::size_t, + serv: *mut ::c_char, + servlen: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; + pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; + pub fn kevent( + kq: ::c_int, + changelist: *const ::kevent, + nchanges: ::c_int, + eventlist: *mut ::kevent, + nevents: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn getthrid() -> ::pid_t; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_main_np() -> ::c_int; + pub fn pthread_get_name_np(tid: ::pthread_t, name: *mut ::c_char, len: ::size_t); + pub fn pthread_set_name_np(tid: ::pthread_t, name: *const ::c_char); + pub fn pthread_stackseg_np(thread: ::pthread_t, sinfo: *mut ::stack_t) -> ::c_int; + + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *const ::termios, + winp: *const ::winsize, + ) -> ::c_int; + pub fn forkpty( + amaster: *mut ::c_int, + name: *mut ::c_char, + termp: *const ::termios, + winp: *const ::winsize, + ) -> ::pid_t; + + pub fn sysctl( + name: *const ::c_int, + namelen: ::c_uint, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; + pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; + pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; + pub fn ptrace(request: ::c_int, pid: ::pid_t, addr: caddr_t, data: ::c_int) -> ::c_int; + pub fn utrace(label: *const ::c_char, addr: *const ::c_void, len: ::size_t) -> ::c_int; + pub fn memmem( + haystack: *const ::c_void, + haystacklen: ::size_t, + needle: *const ::c_void, + needlelen: ::size_t, + ) -> *mut ::c_void; + // #include + pub fn dl_iterate_phdr( + callback: ::Option< + unsafe extern "C" fn( + info: *mut dl_phdr_info, + size: usize, + data: *mut ::c_void, + ) -> ::c_int, + >, + data: *mut ::c_void, + ) -> ::c_int; + pub fn uselocale(loc: ::locale_t) -> ::locale_t; + pub fn freelocale(loc: ::locale_t); + pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; + pub fn duplocale(base: ::locale_t) -> ::locale_t; + + // Added in `OpenBSD` 5.5 + pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t); + + pub fn setproctitle(fmt: *const ::c_char, ...); + + pub fn freezero(ptr: *mut ::c_void, size: ::size_t); + pub fn malloc_conceal(size: ::size_t) -> *mut ::c_void; + pub fn calloc_conceal(nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; + + pub fn srand48_deterministic(seed: ::c_long); + pub fn seed48_deterministic(xseed: *mut ::c_ushort) -> *mut ::c_ushort; + pub fn lcong48_deterministic(p: *mut ::c_ushort); + + pub fn lsearch( + key: *const ::c_void, + base: *mut ::c_void, + nelp: *mut ::size_t, + width: ::size_t, + compar: ::Option ::c_int>, + ) -> *mut ::c_void; + pub fn lfind( + key: *const ::c_void, + base: *const ::c_void, + nelp: *mut ::size_t, + width: ::size_t, + compar: ::Option ::c_int>, + ) -> *mut ::c_void; + pub fn hcreate(nelt: ::size_t) -> ::c_int; + pub fn hdestroy(); + pub fn hsearch(entry: ::ENTRY, action: ::ACTION) -> *mut ::ENTRY; + + // futex.h + pub fn futex( + uaddr: *mut u32, + op: ::c_int, + val: ::c_int, + timeout: *const ::timespec, + uaddr2: *mut u32, + ) -> ::c_int; + + pub fn mimmutable(addr: *mut ::c_void, len: ::size_t) -> ::c_int; +} + +#[link(name = "execinfo")] +extern "C" { + pub fn backtrace(addrlist: *mut *mut ::c_void, len: ::size_t) -> ::size_t; + pub fn backtrace_symbols(addrlist: *const *mut ::c_void, len: ::size_t) -> *mut *mut ::c_char; + pub fn backtrace_symbols_fd( + addrlist: *const *mut ::c_void, + len: ::size_t, + fd: ::c_int, + ) -> ::c_int; + pub fn backtrace_symbols_fmt( + addrlist: *const *mut ::c_void, + len: ::size_t, + fmt: *const ::c_char, + ) -> *mut *mut ::c_char; +} + +cfg_if! { + if #[cfg(libc_union)] { + extern { + // these functions use statfs which uses the union mount_info: + pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; + pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; + pub fn getmntinfo(mntbufp: *mut *mut ::statfs, flags: ::c_int) -> ::c_int; + pub fn getfsstat(buf: *mut statfs, bufsize: ::size_t, flags: ::c_int) -> ::c_int; + } + } +} + +cfg_if! { + if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } else if #[cfg(target_arch = "arm")] { + mod arm; + pub use self::arm::*; + } else if #[cfg(target_arch = "mips64")] { + mod mips64; + pub use self::mips64::*; + } else if #[cfg(target_arch = "powerpc")] { + mod powerpc; + pub use self::powerpc::*; + } else if #[cfg(target_arch = "powerpc64")] { + mod powerpc64; + pub use self::powerpc64::*; + } else if #[cfg(target_arch = "riscv64")] { + mod riscv64; + pub use self::riscv64::*; + } else if #[cfg(target_arch = "sparc64")] { + mod sparc64; + pub use self::sparc64::*; + } else if #[cfg(target_arch = "x86")] { + mod x86; + pub use self::x86::*; + } else if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } else { + // Unknown target_arch + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc.rs new file mode 100644 index 000000000..f1ab365d1 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc.rs @@ -0,0 +1,16 @@ +pub type c_long = i32; +pub type c_ulong = u32; +pub type c_char = u8; + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs new file mode 100644 index 000000000..99350ec8d --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs @@ -0,0 +1,16 @@ +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_char = u8; + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/riscv64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/riscv64.rs new file mode 100644 index 000000000..99350ec8d --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/riscv64.rs @@ -0,0 +1,16 @@ +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_char = u8; + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/sparc64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/sparc64.rs new file mode 100644 index 000000000..070fc9385 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/sparc64.rs @@ -0,0 +1,8 @@ +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_char = i8; + +#[doc(hidden)] +pub const _ALIGNBYTES: usize = 0xf; + +pub const _MAX_PAGE_SHIFT: u32 = 13; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86.rs new file mode 100644 index 000000000..e87d0ff1e --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86.rs @@ -0,0 +1,16 @@ +pub type c_long = i32; +pub type c_ulong = u32; +pub type c_char = i8; + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 4 - 1; + } +} + +pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86_64.rs new file mode 100644 index 000000000..60dab0044 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -0,0 +1,130 @@ +use PT_FIRSTMACH; + +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_char = i8; +pub type ucontext_t = sigcontext; + +s! { + pub struct sigcontext { + pub sc_rdi: ::c_long, + pub sc_rsi: ::c_long, + pub sc_rdx: ::c_long, + pub sc_rcx: ::c_long, + pub sc_r8: ::c_long, + pub sc_r9: ::c_long, + pub sc_r10: ::c_long, + pub sc_r11: ::c_long, + pub sc_r12: ::c_long, + pub sc_r13: ::c_long, + pub sc_r14: ::c_long, + pub sc_r15: ::c_long, + pub sc_rbp: ::c_long, + pub sc_rbx: ::c_long, + pub sc_rax: ::c_long, + pub sc_gs: ::c_long, + pub sc_fs: ::c_long, + pub sc_es: ::c_long, + pub sc_ds: ::c_long, + pub sc_trapno: ::c_long, + pub sc_err: ::c_long, + pub sc_rip: ::c_long, + pub sc_cs: ::c_long, + pub sc_rflags: ::c_long, + pub sc_rsp: ::c_long, + pub sc_ss: ::c_long, + pub sc_fpstate: *mut fxsave64, + __sc_unused: ::c_int, + pub sc_mask: ::c_int, + pub sc_cookie: ::c_long, + } +} + +s_no_extra_traits! { + #[repr(packed)] + pub struct fxsave64 { + pub fx_fcw: u16, + pub fx_fsw: u16, + pub fx_ftw: u8, + __fx_unused1: u8, + pub fx_fop: u16, + pub fx_rip: u64, + pub fx_rdp: u64, + pub fx_mxcsr: u32, + pub fx_mxcsr_mask: u32, + pub fx_st: [[u64; 2]; 8], + pub fx_xmm: [[u64; 2]; 16], + __fx_unused3: [u8; 96], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + // `fxsave64` is packed, so field access is unaligned. + // use {x} to create temporary storage, copy field to it, and do aligned access. + impl PartialEq for fxsave64 { + fn eq(&self, other: &fxsave64) -> bool { + return {self.fx_fcw} == {other.fx_fcw} && + {self.fx_fsw} == {other.fx_fsw} && + {self.fx_ftw} == {other.fx_ftw} && + {self.fx_fop} == {other.fx_fop} && + {self.fx_rip} == {other.fx_rip} && + {self.fx_rdp} == {other.fx_rdp} && + {self.fx_mxcsr} == {other.fx_mxcsr} && + {self.fx_mxcsr_mask} == {other.fx_mxcsr_mask} && + {self.fx_st}.iter().zip({other.fx_st}.iter()).all(|(a,b)| a == b) && + {self.fx_xmm}.iter().zip({other.fx_xmm}.iter()).all(|(a,b)| a == b) + } + } + impl Eq for fxsave64 {} + impl ::fmt::Debug for fxsave64 { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("fxsave64") + .field("fx_fcw", &{self.fx_fcw}) + .field("fx_fsw", &{self.fx_fsw}) + .field("fx_ftw", &{self.fx_ftw}) + .field("fx_fop", &{self.fx_fop}) + .field("fx_rip", &{self.fx_rip}) + .field("fx_rdp", &{self.fx_rdp}) + .field("fx_mxcsr", &{self.fx_mxcsr}) + .field("fx_mxcsr_mask", &{self.fx_mxcsr_mask}) + // FIXME: .field("fx_st", &{self.fx_st}) + // FIXME: .field("fx_xmm", &{self.fx_xmm}) + .finish() + } + } + impl ::hash::Hash for fxsave64 { + fn hash(&self, state: &mut H) { + {self.fx_fcw}.hash(state); + {self.fx_fsw}.hash(state); + {self.fx_ftw}.hash(state); + {self.fx_fop}.hash(state); + {self.fx_rip}.hash(state); + {self.fx_rdp}.hash(state); + {self.fx_mxcsr}.hash(state); + {self.fx_mxcsr_mask}.hash(state); + {self.fx_st}.hash(state); + {self.fx_xmm}.hash(state); + } + } + } +} + +// should be pub(crate), but that requires Rust 1.18.0 +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +pub const _MAX_PAGE_SHIFT: u32 = 12; + +pub const PT_STEP: ::c_int = PT_FIRSTMACH + 0; +pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; +pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; +pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3; +pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/haiku/b32.rs b/src/rust/vendor/libc-0.2.146/src/unix/haiku/b32.rs new file mode 100644 index 000000000..073ae9d4b --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/haiku/b32.rs @@ -0,0 +1,20 @@ +pub type c_long = i32; +pub type c_ulong = u32; +pub type time_t = i32; + +pub type Elf_Addr = ::Elf32_Addr; +pub type Elf_Half = ::Elf32_Half; +pub type Elf_Phdr = ::Elf32_Phdr; + +s! { + pub struct Elf32_Phdr { + pub p_type: ::Elf32_Word, + pub p_offset: ::Elf32_Off, + pub p_vaddr: ::Elf32_Addr, + pub p_paddr: ::Elf32_Addr, + pub p_filesz: ::Elf32_Word, + pub p_memsz: ::Elf32_Word, + pub p_flags: ::Elf32_Word, + pub p_align: ::Elf32_Word, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/haiku/b64.rs b/src/rust/vendor/libc-0.2.146/src/unix/haiku/b64.rs new file mode 100644 index 000000000..456918052 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/haiku/b64.rs @@ -0,0 +1,20 @@ +pub type c_ulong = u64; +pub type c_long = i64; +pub type time_t = i64; + +pub type Elf_Addr = ::Elf64_Addr; +pub type Elf_Half = ::Elf64_Half; +pub type Elf_Phdr = ::Elf64_Phdr; + +s! { + pub struct Elf64_Phdr { + pub p_type: ::Elf64_Word, + pub p_flags: ::Elf64_Word, + pub p_offset: ::Elf64_Off, + pub p_vaddr: ::Elf64_Addr, + pub p_paddr: ::Elf64_Addr, + pub p_filesz: ::Elf64_Xword, + pub p_memsz: ::Elf64_Xword, + pub p_align: ::Elf64_Xword, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/haiku/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/haiku/mod.rs new file mode 100644 index 000000000..24aa599c0 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/haiku/mod.rs @@ -0,0 +1,2094 @@ +pub type rlim_t = ::uintptr_t; +pub type sa_family_t = u8; +pub type pthread_key_t = ::c_int; +pub type nfds_t = ::c_ulong; +pub type tcflag_t = ::c_uint; +pub type speed_t = ::c_uchar; +pub type c_char = i8; +pub type clock_t = i32; +pub type clockid_t = i32; +pub type suseconds_t = i32; +pub type wchar_t = i32; +pub type off_t = i64; +pub type ino_t = i64; +pub type blkcnt_t = i64; +pub type blksize_t = i32; +pub type dev_t = i32; +pub type mode_t = u32; +pub type nlink_t = i32; +pub type useconds_t = u32; +pub type socklen_t = u32; +pub type pthread_t = ::uintptr_t; +pub type pthread_condattr_t = ::uintptr_t; +pub type pthread_mutexattr_t = ::uintptr_t; +pub type pthread_rwlockattr_t = ::uintptr_t; +pub type sigset_t = u64; +pub type fsblkcnt_t = i64; +pub type fsfilcnt_t = i64; +pub type pthread_attr_t = *mut ::c_void; +pub type nl_item = ::c_int; +pub type id_t = i32; +pub type idtype_t = ::c_int; +pub type fd_mask = u32; +pub type regoff_t = ::c_int; +pub type key_t = i32; +pub type msgqnum_t = u32; +pub type msglen_t = u32; + +pub type Elf32_Addr = u32; +pub type Elf32_Half = u16; +pub type Elf32_Off = u32; +pub type Elf32_Sword = i32; +pub type Elf32_Word = u32; + +pub type Elf64_Addr = u64; +pub type Elf64_Half = u16; +pub type Elf64_Off = u64; +pub type Elf64_Sword = i32; +pub type Elf64_Sxword = i64; +pub type Elf64_Word = u32; +pub type Elf64_Xword = u64; + +pub type ENTRY = entry; +pub type ACTION = ::c_int; + +pub type posix_spawnattr_t = *mut ::c_void; +pub type posix_spawn_file_actions_t = *mut ::c_void; + +pub type StringList = _stringlist; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum timezone {} +impl ::Copy for timezone {} +impl ::Clone for timezone { + fn clone(&self) -> timezone { + *self + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + self.si_addr + } + + pub unsafe fn si_pid(&self) -> ::pid_t { + self.si_pid + } + + pub unsafe fn si_uid(&self) -> ::uid_t { + self.si_uid + } + + pub unsafe fn si_status(&self) -> ::c_int { + self.si_status + } +} + +s! { + pub struct in_addr { + pub s_addr: ::in_addr_t, + } + + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct sockaddr { + pub sa_len: u8, + pub sa_family: sa_family_t, + pub sa_data: [u8; 30], + } + + pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [i8; 24], + } + + pub struct sockaddr_in6 { + pub sin6_len: u8, + pub sin6_family: u8, + pub sin6_port: u16, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: socklen_t, + pub ai_canonname: *mut c_char, + pub ai_addr: *mut ::sockaddr, + pub ai_next: *mut addrinfo, + } + + pub struct ifaddrs { + pub ifa_next: *mut ifaddrs, + pub ifa_name: *const ::c_char, + pub ifa_flags: ::c_uint, + pub ifa_addr: *mut ::sockaddr, + pub ifa_netmask: *mut ::sockaddr, + pub ifa_dstaddr: *mut ::sockaddr, + pub ifa_data: *mut ::c_void, + } + + pub struct fd_set { + // size for 1024 bits, and a fd_mask with size u32 + fds_bits: [fd_mask; 32], + } + + pub struct tm { + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int, + pub tm_gmtoff: ::c_int, + pub tm_zone: *mut ::c_char, + } + + pub struct utsname { + pub sysname: [::c_char; 32], + pub nodename: [::c_char; 32], + pub release: [::c_char; 32], + pub version: [::c_char; 32], + pub machine: [::c_char; 32], + } + + pub struct lconv { + pub decimal_point: *mut ::c_char, + pub thousands_sep: *mut ::c_char, + pub grouping: *mut ::c_char, + pub int_curr_symbol: *mut ::c_char, + pub currency_symbol: *mut ::c_char, + pub mon_decimal_point: *mut ::c_char, + pub mon_thousands_sep: *mut ::c_char, + pub mon_grouping: *mut ::c_char, + pub positive_sign: *mut ::c_char, + pub negative_sign: *mut ::c_char, + pub int_frac_digits: ::c_char, + pub frac_digits: ::c_char, + pub p_cs_precedes: ::c_char, + pub p_sep_by_space: ::c_char, + pub n_cs_precedes: ::c_char, + pub n_sep_by_space: ::c_char, + pub p_sign_posn: ::c_char, + pub n_sign_posn: ::c_char, + pub int_p_cs_precedes: ::c_char, + pub int_p_sep_by_space: ::c_char, + pub int_n_cs_precedes: ::c_char, + pub int_n_sep_by_space: ::c_char, + pub int_p_sign_posn: ::c_char, + pub int_n_sign_posn: ::c_char, + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut ::c_void, + pub msg_controllen: socklen_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: ::socklen_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::c_char, + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, + pub c_cc: [::cc_t; ::NCCS], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct stat { + pub st_dev: dev_t, + pub st_ino: ino_t, + pub st_mode: mode_t, + pub st_nlink: nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_size: off_t, + pub st_rdev: dev_t, + pub st_blksize: blksize_t, + pub st_atime: time_t, + pub st_atime_nsec: c_long, + pub st_mtime: time_t, + pub st_mtime_nsec: c_long, + pub st_ctime: time_t, + pub st_ctime_nsec: c_long, + pub st_crtime: time_t, + pub st_crtime_nsec: c_long, + pub st_type: u32, + pub st_blocks: blkcnt_t, + } + + pub struct glob_t { + pub gl_pathc: ::size_t, + __unused1: ::size_t, + pub gl_offs: ::size_t, + __unused2: ::size_t, + pub gl_pathv: *mut *mut c_char, + + __unused3: *mut ::c_void, + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + __unused6: *mut ::c_void, + __unused7: *mut ::c_void, + __unused8: *mut ::c_void, + } + + pub struct pthread_mutex_t { + flags: u32, + lock: i32, + unused: i32, + owner: i32, + owner_count: i32, + } + + pub struct pthread_cond_t { + flags: u32, + unused: i32, + mutex: *mut ::c_void, + waiter_count: i32, + lock: i32, + } + + pub struct pthread_rwlock_t { + flags: u32, + owner: i32, + lock_sem: i32, // this is actually a union + lock_count: i32, + reader_count: i32, + writer_count: i32, + waiters: [*mut ::c_void; 2], + } + + pub struct pthread_spinlock_t { + lock: u32, + } + + pub struct passwd { + pub pw_name: *mut ::c_char, + pub pw_passwd: *mut ::c_char, + pub pw_uid: ::uid_t, + pub pw_gid: ::gid_t, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char, + pub pw_gecos: *mut ::c_char, + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_code: ::c_int, + pub si_errno: ::c_int, + pub si_pid: ::pid_t, + pub si_uid: ::uid_t, + pub si_addr: *mut ::c_void, + pub si_status: ::c_int, + pub si_band: c_long, + pub sigval: *mut ::c_void, + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, //actually a union with sa_handler + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + sa_userdata: *mut ::c_void, + } + + pub struct sem_t { + pub type_: i32, + pub named_sem_id: i32, // actually a union with unnamed_sem (i32) + pub padding: [i32; 2], + } + + pub struct ucred { + pub pid: ::pid_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + } + + pub struct sockaddr_dl { + pub sdl_len: u8, + pub sdl_family: u8, + pub sdl_e_type: u16, + pub sdl_index: u32, + pub sdl_type: u8, + pub sdl_nlen: u8, + pub sdl_alen: u8, + pub sdl_slen: u8, + pub sdl_data: [u8; 46], + } + + pub struct spwd { + pub sp_namp: *mut ::c_char, + pub sp_pwdp: *mut ::c_char, + pub sp_lstchg: ::c_int, + pub sp_min: ::c_int, + pub sp_max: ::c_int, + pub sp_warn: ::c_int, + pub sp_inact: ::c_int, + pub sp_expire: ::c_int, + pub sp_flag: ::c_int, + } + + pub struct regex_t { + __buffer: *mut ::c_void, + __allocated: ::size_t, + __used: ::size_t, + __syntax: ::c_ulong, + __fastmap: *mut ::c_char, + __translate: *mut ::c_char, + __re_nsub: ::size_t, + __bitfield: u8, + } + + pub struct regmatch_t { + pub rm_so: regoff_t, + pub rm_eo: regoff_t, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + pub msg_stime: ::time_t, + pub msg_rtime: ::time_t, + pub msg_ctime: ::time_t, + } + + pub struct ipc_perm { + pub key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + } + + pub struct sembuf { + pub sem_num: ::c_ushort, + pub sem_op: ::c_short, + pub sem_flg: ::c_short, + } + + pub struct entry { + pub key: *mut ::c_char, + pub data: *mut ::c_void, + } + + pub struct option { + pub name: *const ::c_char, + pub has_arg: ::c_int, + pub flag: *mut ::c_int, + pub val: ::c_int, + } + + pub struct _stringlist { + pub sl_str: *mut *mut ::c_char, + pub sl_max: ::size_t, + pub sl_cur: ::size_t, + } + + pub struct dl_phdr_info { + pub dlpi_addr: ::Elf_Addr, + pub dlpi_name: *const ::c_char, + pub dlpi_phdr: *const ::Elf_Phdr, + pub dlpi_phnum: ::Elf_Half, + } +} + +s_no_extra_traits! { + pub struct sockaddr_un { + pub sun_len: u8, + pub sun_family: sa_family_t, + pub sun_path: [::c_char; 126] + } + pub struct sockaddr_storage { + pub ss_len: u8, + pub ss_family: sa_family_t, + __ss_pad1: [u8; 6], + __ss_pad2: u64, + __ss_pad3: [u8; 112], + } + pub struct dirent { + pub d_dev: dev_t, + pub d_pdev: dev_t, + pub d_ino: ino_t, + pub d_pino: i64, + pub d_reclen: ::c_ushort, + pub d_name: [::c_char; 1024], // Max length is _POSIX_PATH_MAX + } + + pub struct sigevent { + pub sigev_notify: ::c_int, + pub sigev_signo: ::c_int, + pub sigev_value: ::sigval, + __unused1: *mut ::c_void, // actually a function pointer + pub sigev_notify_attributes: *mut ::pthread_attr_t, + } + + pub struct utmpx { + pub ut_type: ::c_short, + pub ut_tv: ::timeval, + pub ut_id: [::c_char; 8], + pub ut_pid: ::pid_t, + pub ut_user: [::c_char; 32], + pub ut_line: [::c_char; 16], + pub ut_host: [::c_char; 128], + __ut_reserved: [::c_char; 64], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for utmpx { + fn eq(&self, other: &utmpx) -> bool { + self.ut_type == other.ut_type + && self.ut_tv == other.ut_tv + && self.ut_id == other.ut_id + && self.ut_pid == other.ut_pid + && self.ut_user == other.ut_user + && self.ut_line == other.ut_line + && self.ut_host.iter().zip(other.ut_host.iter()).all(|(a,b)| a == b) + && self.__ut_reserved == other.__ut_reserved + } + } + + impl Eq for utmpx {} + + impl ::fmt::Debug for utmpx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmpx") + .field("ut_type", &self.ut_type) + .field("ut_tv", &self.ut_tv) + .field("ut_id", &self.ut_id) + .field("ut_pid", &self.ut_pid) + .field("ut_user", &self.ut_user) + .field("ut_line", &self.ut_line) + .field("ut_host", &self.ut_host) + .field("__ut_reserved", &self.__ut_reserved) + .finish() + } + } + + impl ::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { + self.ut_type.hash(state); + self.ut_tv.hash(state); + self.ut_id.hash(state); + self.ut_pid.hash(state); + self.ut_user.hash(state); + self.ut_line.hash(state); + self.ut_host.hash(state); + self.__ut_reserved.hash(state); + } + } + impl PartialEq for sockaddr_un { + fn eq(&self, other: &sockaddr_un) -> bool { + self.sun_len == other.sun_len + && self.sun_family == other.sun_family + && self + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for sockaddr_un {} + impl ::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_un") + .field("sun_len", &self.sun_len) + .field("sun_family", &self.sun_family) + // FIXME: .field("sun_path", &self.sun_path) + .finish() + } + } + impl ::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { + self.sun_len.hash(state); + self.sun_family.hash(state); + self.sun_path.hash(state); + } + } + + impl PartialEq for sockaddr_storage { + fn eq(&self, other: &sockaddr_storage) -> bool { + self.ss_len == other.ss_len + && self.ss_family == other.ss_family + && self + .__ss_pad1 + .iter() + .zip(other.__ss_pad1.iter()) + .all(|(a, b)| a == b) + && self.__ss_pad2 == other.__ss_pad2 + && self + .__ss_pad3 + .iter() + .zip(other.__ss_pad3.iter()) + .all(|(a, b)| a == b) + } + } + impl Eq for sockaddr_storage {} + impl ::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_storage") + .field("ss_len", &self.ss_len) + .field("ss_family", &self.ss_family) + .field("__ss_pad1", &self.__ss_pad1) + .field("__ss_pad2", &self.__ss_pad2) + // FIXME: .field("__ss_pad3", &self.__ss_pad3) + .finish() + } + } + impl ::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { + self.ss_len.hash(state); + self.ss_family.hash(state); + self.__ss_pad1.hash(state); + self.__ss_pad2.hash(state); + self.__ss_pad3.hash(state); + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_dev == other.d_dev + && self.d_pdev == other.d_pdev + && self.d_ino == other.d_ino + && self.d_pino == other.d_pino + && self.d_reclen == other.d_reclen + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for dirent {} + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_dev", &self.d_dev) + .field("d_pdev", &self.d_pdev) + .field("d_ino", &self.d_ino) + .field("d_pino", &self.d_pino) + .field("d_reclen", &self.d_reclen) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_dev.hash(state); + self.d_pdev.hash(state); + self.d_ino.hash(state); + self.d_pino.hash(state); + self.d_reclen.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_notify == other.sigev_notify + && self.sigev_signo == other.sigev_signo + && self.sigev_value == other.sigev_value + && self.sigev_notify_attributes + == other.sigev_notify_attributes + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_notify", &self.sigev_notify) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_value", &self.sigev_value) + .field("sigev_notify_attributes", + &self.sigev_notify_attributes) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_notify.hash(state); + self.sigev_signo.hash(state); + self.sigev_value.hash(state); + self.sigev_notify_attributes.hash(state); + } + } + } +} + +pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: ::c_int = 0; +pub const RAND_MAX: ::c_int = 2147483647; +pub const EOF: ::c_int = -1; +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; +pub const L_SET: ::c_int = SEEK_SET; +pub const L_INCR: ::c_int = SEEK_CUR; +pub const L_XTND: ::c_int = SEEK_END; +pub const _IOFBF: ::c_int = 0; +pub const _IONBF: ::c_int = 2; +pub const _IOLBF: ::c_int = 1; + +pub const F_DUPFD: ::c_int = 0x0001; +pub const F_GETFD: ::c_int = 0x0002; +pub const F_SETFD: ::c_int = 0x0004; +pub const F_GETFL: ::c_int = 0x0008; +pub const F_SETFL: ::c_int = 0x0010; +pub const F_GETLK: ::c_int = 0x0020; +pub const F_SETLK: ::c_int = 0x0080; +pub const F_SETLKW: ::c_int = 0x0100; +pub const F_DUPFD_CLOEXEC: ::c_int = 0x0200; + +pub const F_RDLCK: ::c_int = 0x0040; +pub const F_UNLCK: ::c_int = 0x0200; +pub const F_WRLCK: ::c_int = 0x0400; + +pub const AT_FDCWD: ::c_int = -1; +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x01; +pub const AT_SYMLINK_FOLLOW: ::c_int = 0x02; +pub const AT_REMOVEDIR: ::c_int = 0x04; +pub const AT_EACCESS: ::c_int = 0x08; + +pub const POLLIN: ::c_short = 0x0001; +pub const POLLOUT: ::c_short = 0x0002; +pub const POLLRDNORM: ::c_short = POLLIN; +pub const POLLWRNORM: ::c_short = POLLOUT; +pub const POLLRDBAND: ::c_short = 0x0008; +pub const POLLWRBAND: ::c_short = 0x0010; +pub const POLLPRI: ::c_short = 0x0020; +pub const POLLERR: ::c_short = 0x0004; +pub const POLLHUP: ::c_short = 0x0080; +pub const POLLNVAL: ::c_short = 0x1000; + +pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; +pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; + +pub const CLOCK_REALTIME: ::c_int = -1; +pub const CLOCK_MONOTONIC: ::c_int = 0; +pub const CLOCK_PROCESS_CPUTIME_ID: ::c_int = -2; +pub const CLOCK_THREAD_CPUTIME_ID: ::c_int = -3; + +pub const RLIMIT_CORE: ::c_int = 0; +pub const RLIMIT_CPU: ::c_int = 1; +pub const RLIMIT_DATA: ::c_int = 2; +pub const RLIMIT_FSIZE: ::c_int = 3; +pub const RLIMIT_NOFILE: ::c_int = 4; +pub const RLIMIT_STACK: ::c_int = 5; +pub const RLIMIT_AS: ::c_int = 6; +pub const RLIM_INFINITY: ::rlim_t = 0xffffffff; +// Haiku specific +pub const RLIMIT_NOVMON: ::c_int = 7; +pub const RLIM_NLIMITS: ::c_int = 8; + +pub const RUSAGE_SELF: ::c_int = 0; + +pub const RTLD_LAZY: ::c_int = 0; + +pub const NCCS: usize = 11; + +pub const O_RDONLY: ::c_int = 0x0000; +pub const O_WRONLY: ::c_int = 0x0001; +pub const O_RDWR: ::c_int = 0x0002; +pub const O_ACCMODE: ::c_int = 0x0003; + +pub const O_EXCL: ::c_int = 0x0100; +pub const O_CREAT: ::c_int = 0x0200; +pub const O_TRUNC: ::c_int = 0x0400; +pub const O_NOCTTY: ::c_int = 0x1000; +pub const O_NOTRAVERSE: ::c_int = 0x2000; + +pub const O_CLOEXEC: ::c_int = 0x00000040; +pub const O_NONBLOCK: ::c_int = 0x00000080; +pub const O_APPEND: ::c_int = 0x00000800; +pub const O_SYNC: ::c_int = 0x00010000; +pub const O_RSYNC: ::c_int = 0x00020000; +pub const O_DSYNC: ::c_int = 0x00040000; +pub const O_NOFOLLOW: ::c_int = 0x00080000; +pub const O_NOCACHE: ::c_int = 0x00100000; +pub const O_DIRECTORY: ::c_int = 0x00200000; + +pub const S_IFIFO: ::mode_t = 4096; +pub const S_IFCHR: ::mode_t = 8192; +pub const S_IFBLK: ::mode_t = 24576; +pub const S_IFDIR: ::mode_t = 16384; +pub const S_IFREG: ::mode_t = 32768; +pub const S_IFLNK: ::mode_t = 40960; +pub const S_IFSOCK: ::mode_t = 49152; +pub const S_IFMT: ::mode_t = 61440; + +pub const S_IRWXU: ::mode_t = 0o00700; +pub const S_IRUSR: ::mode_t = 0o00400; +pub const S_IWUSR: ::mode_t = 0o00200; +pub const S_IXUSR: ::mode_t = 0o00100; +pub const S_IRWXG: ::mode_t = 0o00070; +pub const S_IRGRP: ::mode_t = 0o00040; +pub const S_IWGRP: ::mode_t = 0o00020; +pub const S_IXGRP: ::mode_t = 0o00010; +pub const S_IRWXO: ::mode_t = 0o00007; +pub const S_IROTH: ::mode_t = 0o00004; +pub const S_IWOTH: ::mode_t = 0o00002; +pub const S_IXOTH: ::mode_t = 0o00001; + +pub const F_OK: ::c_int = 0; +pub const R_OK: ::c_int = 4; +pub const W_OK: ::c_int = 2; +pub const X_OK: ::c_int = 1; +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; + +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGCHLD: ::c_int = 5; +pub const SIGABRT: ::c_int = 6; +pub const SIGPIPE: ::c_int = 7; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGSTOP: ::c_int = 10; +pub const SIGSEGV: ::c_int = 11; +pub const SIGCONT: ::c_int = 12; +pub const SIGTSTP: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; +pub const SIGTTIN: ::c_int = 16; +pub const SIGTTOU: ::c_int = 17; +pub const SIGUSR1: ::c_int = 18; +pub const SIGUSR2: ::c_int = 19; +pub const SIGWINCH: ::c_int = 20; +pub const SIGKILLTHR: ::c_int = 21; +pub const SIGTRAP: ::c_int = 22; +pub const SIGPOLL: ::c_int = 23; +pub const SIGPROF: ::c_int = 24; +pub const SIGSYS: ::c_int = 25; +pub const SIGURG: ::c_int = 26; +pub const SIGVTALRM: ::c_int = 27; +pub const SIGXCPU: ::c_int = 28; +pub const SIGXFSZ: ::c_int = 29; +pub const SIGBUS: ::c_int = 30; + +pub const SIG_BLOCK: ::c_int = 1; +pub const SIG_UNBLOCK: ::c_int = 2; +pub const SIG_SETMASK: ::c_int = 3; + +pub const SIGEV_NONE: ::c_int = 0; +pub const SIGEV_SIGNAL: ::c_int = 1; +pub const SIGEV_THREAD: ::c_int = 2; + +pub const EAI_AGAIN: ::c_int = 2; +pub const EAI_BADFLAGS: ::c_int = 3; +pub const EAI_FAIL: ::c_int = 4; +pub const EAI_FAMILY: ::c_int = 5; +pub const EAI_MEMORY: ::c_int = 6; +pub const EAI_NODATA: ::c_int = 7; +pub const EAI_NONAME: ::c_int = 8; +pub const EAI_SERVICE: ::c_int = 9; +pub const EAI_SOCKTYPE: ::c_int = 10; +pub const EAI_SYSTEM: ::c_int = 11; +pub const EAI_OVERFLOW: ::c_int = 14; + +pub const PROT_NONE: ::c_int = 0; +pub const PROT_READ: ::c_int = 1; +pub const PROT_WRITE: ::c_int = 2; +pub const PROT_EXEC: ::c_int = 4; + +pub const LC_ALL: ::c_int = 0; +pub const LC_COLLATE: ::c_int = 1; +pub const LC_CTYPE: ::c_int = 2; +pub const LC_MONETARY: ::c_int = 3; +pub const LC_NUMERIC: ::c_int = 4; +pub const LC_TIME: ::c_int = 5; +pub const LC_MESSAGES: ::c_int = 6; + +// FIXME: Haiku does not have MAP_FILE, but libstd/os.rs requires it +pub const MAP_FILE: ::c_int = 0x00; +pub const MAP_SHARED: ::c_int = 0x01; +pub const MAP_PRIVATE: ::c_int = 0x02; +pub const MAP_FIXED: ::c_int = 0x04; +pub const MAP_ANONYMOUS: ::c_int = 0x08; +pub const MAP_NORESERVE: ::c_int = 0x10; +pub const MAP_ANON: ::c_int = MAP_ANONYMOUS; + +pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; + +pub const MS_ASYNC: ::c_int = 0x01; +pub const MS_INVALIDATE: ::c_int = 0x04; +pub const MS_SYNC: ::c_int = 0x02; + +pub const E2BIG: ::c_int = -2147454975; +pub const ECHILD: ::c_int = -2147454974; +pub const EDEADLK: ::c_int = -2147454973; +pub const EFBIG: ::c_int = -2147454972; +pub const EMLINK: ::c_int = -2147454971; +pub const ENFILE: ::c_int = -2147454970; +pub const ENODEV: ::c_int = -2147454969; +pub const ENOLCK: ::c_int = -2147454968; +pub const ENOSYS: ::c_int = -2147454967; +pub const ENOTTY: ::c_int = -2147454966; +pub const ENXIO: ::c_int = -2147454965; +pub const ESPIPE: ::c_int = -2147454964; +pub const ESRCH: ::c_int = -2147454963; +pub const EFPOS: ::c_int = -2147454962; +pub const ESIGPARM: ::c_int = -2147454961; +pub const EDOM: ::c_int = -2147454960; +pub const ERANGE: ::c_int = -2147454959; +pub const EPROTOTYPE: ::c_int = -2147454958; +pub const EPROTONOSUPPORT: ::c_int = -2147454957; +pub const EPFNOSUPPORT: ::c_int = -2147454956; +pub const EAFNOSUPPORT: ::c_int = -2147454955; +pub const EADDRINUSE: ::c_int = -2147454954; +pub const EADDRNOTAVAIL: ::c_int = -2147454953; +pub const ENETDOWN: ::c_int = -2147454952; +pub const ENETUNREACH: ::c_int = -2147454951; +pub const ENETRESET: ::c_int = -2147454950; +pub const ECONNABORTED: ::c_int = -2147454949; +pub const ECONNRESET: ::c_int = -2147454948; +pub const EISCONN: ::c_int = -2147454947; +pub const ENOTCONN: ::c_int = -2147454946; +pub const ESHUTDOWN: ::c_int = -2147454945; +pub const ECONNREFUSED: ::c_int = -2147454944; +pub const EHOSTUNREACH: ::c_int = -2147454943; +pub const ENOPROTOOPT: ::c_int = -2147454942; +pub const ENOBUFS: ::c_int = -2147454941; +pub const EINPROGRESS: ::c_int = -2147454940; +pub const EALREADY: ::c_int = -2147454939; +pub const EILSEQ: ::c_int = -2147454938; +pub const ENOMSG: ::c_int = -2147454937; +pub const ESTALE: ::c_int = -2147454936; +pub const EOVERFLOW: ::c_int = -2147454935; +pub const EMSGSIZE: ::c_int = -2147454934; +pub const EOPNOTSUPP: ::c_int = -2147454933; +pub const ENOTSOCK: ::c_int = -2147454932; +pub const EHOSTDOWN: ::c_int = -2147454931; +pub const EBADMSG: ::c_int = -2147454930; +pub const ECANCELED: ::c_int = -2147454929; +pub const EDESTADDRREQ: ::c_int = -2147454928; +pub const EDQUOT: ::c_int = -2147454927; +pub const EIDRM: ::c_int = -2147454926; +pub const EMULTIHOP: ::c_int = -2147454925; +pub const ENODATA: ::c_int = -2147454924; +pub const ENOLINK: ::c_int = -2147454923; +pub const ENOSR: ::c_int = -2147454922; +pub const ENOSTR: ::c_int = -2147454921; +pub const ENOTSUP: ::c_int = -2147454920; +pub const EPROTO: ::c_int = -2147454919; +pub const ETIME: ::c_int = -2147454918; +pub const ETXTBSY: ::c_int = -2147454917; +pub const ENOATTR: ::c_int = -2147454916; + +// INT_MIN +pub const ENOMEM: ::c_int = -2147483648; + +// POSIX errors that can be mapped to BeOS error codes +pub const EACCES: ::c_int = -2147483646; +pub const EINTR: ::c_int = -2147483638; +pub const EIO: ::c_int = -2147483647; +pub const EBUSY: ::c_int = -2147483634; +pub const EFAULT: ::c_int = -2147478783; +pub const ETIMEDOUT: ::c_int = -2147483639; +pub const EAGAIN: ::c_int = -2147483637; +pub const EWOULDBLOCK: ::c_int = -2147483637; +pub const EBADF: ::c_int = -2147459072; +pub const EEXIST: ::c_int = -2147459070; +pub const EINVAL: ::c_int = -2147483643; +pub const ENAMETOOLONG: ::c_int = -2147459068; +pub const ENOENT: ::c_int = -2147459069; +pub const EPERM: ::c_int = -2147483633; +pub const ENOTDIR: ::c_int = -2147459067; +pub const EISDIR: ::c_int = -2147459063; +pub const ENOTEMPTY: ::c_int = -2147459066; +pub const ENOSPC: ::c_int = -2147459065; +pub const EROFS: ::c_int = -2147459064; +pub const EMFILE: ::c_int = -2147459062; +pub const EXDEV: ::c_int = -2147459061; +pub const ELOOP: ::c_int = -2147459060; +pub const ENOEXEC: ::c_int = -2147478782; +pub const EPIPE: ::c_int = -2147459059; + +pub const IPPROTO_RAW: ::c_int = 255; + +// These are prefixed with POSIX_ on Haiku +pub const MADV_NORMAL: ::c_int = 1; +pub const MADV_SEQUENTIAL: ::c_int = 2; +pub const MADV_RANDOM: ::c_int = 3; +pub const MADV_WILLNEED: ::c_int = 4; +pub const MADV_DONTNEED: ::c_int = 5; +pub const MADV_FREE: ::c_int = 6; + +// https://github.com/haiku/haiku/blob/HEAD/headers/posix/net/if.h#L80 +pub const IFF_UP: ::c_int = 0x0001; +pub const IFF_BROADCAST: ::c_int = 0x0002; // valid broadcast address +pub const IFF_LOOPBACK: ::c_int = 0x0008; +pub const IFF_POINTOPOINT: ::c_int = 0x0010; // point-to-point link +pub const IFF_NOARP: ::c_int = 0x0040; // no address resolution +pub const IFF_AUTOUP: ::c_int = 0x0080; // auto dial +pub const IFF_PROMISC: ::c_int = 0x0100; // receive all packets +pub const IFF_ALLMULTI: ::c_int = 0x0200; // receive all multicast packets +pub const IFF_SIMPLEX: ::c_int = 0x0800; // doesn't receive own transmissions +pub const IFF_LINK: ::c_int = 0x1000; // has link +pub const IFF_AUTO_CONFIGURED: ::c_int = 0x2000; +pub const IFF_CONFIGURING: ::c_int = 0x4000; +pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast + +pub const AF_UNSPEC: ::c_int = 0; +pub const AF_INET: ::c_int = 1; +pub const AF_APPLETALK: ::c_int = 2; +pub const AF_ROUTE: ::c_int = 3; +pub const AF_LINK: ::c_int = 4; +pub const AF_INET6: ::c_int = 5; +pub const AF_DLI: ::c_int = 6; +pub const AF_IPX: ::c_int = 7; +pub const AF_NOTIFY: ::c_int = 8; +pub const AF_LOCAL: ::c_int = 9; +pub const AF_UNIX: ::c_int = AF_LOCAL; +pub const AF_BLUETOOTH: ::c_int = 10; + +pub const PF_UNSPEC: ::c_int = AF_UNSPEC; +pub const PF_INET: ::c_int = AF_INET; +pub const PF_ROUTE: ::c_int = AF_ROUTE; +pub const PF_LINK: ::c_int = AF_LINK; +pub const PF_INET6: ::c_int = AF_INET6; +pub const PF_LOCAL: ::c_int = AF_LOCAL; +pub const PF_UNIX: ::c_int = AF_UNIX; +pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; + +pub const IP_OPTIONS: ::c_int = 1; +pub const IP_HDRINCL: ::c_int = 2; +pub const IP_TOS: ::c_int = 3; +pub const IP_TTL: ::c_int = 4; +pub const IP_RECVOPTS: ::c_int = 5; +pub const IP_RECVRETOPTS: ::c_int = 6; +pub const IP_RECVDSTADDR: ::c_int = 7; +pub const IP_RETOPTS: ::c_int = 8; +pub const IP_MULTICAST_IF: ::c_int = 9; +pub const IP_MULTICAST_TTL: ::c_int = 10; +pub const IP_MULTICAST_LOOP: ::c_int = 11; +pub const IP_ADD_MEMBERSHIP: ::c_int = 12; +pub const IP_DROP_MEMBERSHIP: ::c_int = 13; +pub const IP_BLOCK_SOURCE: ::c_int = 14; +pub const IP_UNBLOCK_SOURCE: ::c_int = 15; +pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 16; +pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 17; + +pub const TCP_NODELAY: ::c_int = 0x01; +pub const TCP_MAXSEG: ::c_int = 0x02; +pub const TCP_NOPUSH: ::c_int = 0x04; +pub const TCP_NOOPT: ::c_int = 0x08; + +pub const IF_NAMESIZE: ::size_t = 32; +pub const IFNAMSIZ: ::size_t = IF_NAMESIZE; + +pub const IPV6_MULTICAST_IF: ::c_int = 24; +pub const IPV6_MULTICAST_HOPS: ::c_int = 25; +pub const IPV6_MULTICAST_LOOP: ::c_int = 26; +pub const IPV6_UNICAST_HOPS: ::c_int = 27; +pub const IPV6_JOIN_GROUP: ::c_int = 28; +pub const IPV6_LEAVE_GROUP: ::c_int = 29; +pub const IPV6_V6ONLY: ::c_int = 30; +pub const IPV6_PKTINFO: ::c_int = 31; +pub const IPV6_RECVPKTINFO: ::c_int = 32; +pub const IPV6_HOPLIMIT: ::c_int = 33; +pub const IPV6_RECVHOPLIMIT: ::c_int = 34; +pub const IPV6_HOPOPTS: ::c_int = 35; +pub const IPV6_DSTOPTS: ::c_int = 36; +pub const IPV6_RTHDR: ::c_int = 37; + +pub const MSG_OOB: ::c_int = 0x0001; +pub const MSG_PEEK: ::c_int = 0x0002; +pub const MSG_DONTROUTE: ::c_int = 0x0004; +pub const MSG_EOR: ::c_int = 0x0008; +pub const MSG_TRUNC: ::c_int = 0x0010; +pub const MSG_CTRUNC: ::c_int = 0x0020; +pub const MSG_WAITALL: ::c_int = 0x0040; +pub const MSG_DONTWAIT: ::c_int = 0x0080; +pub const MSG_BCAST: ::c_int = 0x0100; +pub const MSG_MCAST: ::c_int = 0x0200; +pub const MSG_EOF: ::c_int = 0x0400; +pub const MSG_NOSIGNAL: ::c_int = 0x0800; + +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; + +pub const LOCK_SH: ::c_int = 0x01; +pub const LOCK_EX: ::c_int = 0x02; +pub const LOCK_NB: ::c_int = 0x04; +pub const LOCK_UN: ::c_int = 0x08; + +pub const MINSIGSTKSZ: ::size_t = 8192; +pub const SIGSTKSZ: ::size_t = 16384; + +pub const IOV_MAX: ::c_int = 1024; +pub const PATH_MAX: ::c_int = 1024; + +pub const SA_NOCLDSTOP: ::c_int = 0x01; +pub const SA_NOCLDWAIT: ::c_int = 0x02; +pub const SA_RESETHAND: ::c_int = 0x04; +pub const SA_NODEFER: ::c_int = 0x08; +pub const SA_RESTART: ::c_int = 0x10; +pub const SA_ONSTACK: ::c_int = 0x20; +pub const SA_SIGINFO: ::c_int = 0x40; +pub const SA_NOMASK: ::c_int = SA_NODEFER; +pub const SA_STACK: ::c_int = SA_ONSTACK; +pub const SA_ONESHOT: ::c_int = SA_RESETHAND; + +pub const SS_ONSTACK: ::c_int = 0x1; +pub const SS_DISABLE: ::c_int = 0x2; + +pub const FD_SETSIZE: usize = 1024; + +pub const RTLD_LOCAL: ::c_int = 0x0; +pub const RTLD_NOW: ::c_int = 0x1; +pub const RTLD_GLOBAL: ::c_int = 0x2; +pub const RTLD_DEFAULT: *mut ::c_void = 0isize as *mut ::c_void; + +pub const BUFSIZ: ::c_uint = 8192; +pub const FILENAME_MAX: ::c_uint = 256; +pub const FOPEN_MAX: ::c_uint = 128; +pub const L_tmpnam: ::c_uint = 512; +pub const TMP_MAX: ::c_uint = 32768; + +pub const _PC_CHOWN_RESTRICTED: ::c_int = 1; +pub const _PC_MAX_CANON: ::c_int = 2; +pub const _PC_MAX_INPUT: ::c_int = 3; +pub const _PC_NAME_MAX: ::c_int = 4; +pub const _PC_NO_TRUNC: ::c_int = 5; +pub const _PC_PATH_MAX: ::c_int = 6; +pub const _PC_PIPE_BUF: ::c_int = 7; +pub const _PC_VDISABLE: ::c_int = 8; +pub const _PC_LINK_MAX: ::c_int = 25; +pub const _PC_SYNC_IO: ::c_int = 26; +pub const _PC_ASYNC_IO: ::c_int = 27; +pub const _PC_PRIO_IO: ::c_int = 28; +pub const _PC_SOCK_MAXBUF: ::c_int = 29; +pub const _PC_FILESIZEBITS: ::c_int = 30; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 31; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 32; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 33; +pub const _PC_REC_XFER_ALIGN: ::c_int = 34; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 35; +pub const _PC_SYMLINK_MAX: ::c_int = 36; +pub const _PC_2_SYMLINKS: ::c_int = 37; +pub const _PC_XATTR_EXISTS: ::c_int = 38; +pub const _PC_XATTR_ENABLED: ::c_int = 39; + +pub const FIONBIO: ::c_ulong = 0xbe000000; +pub const FIONREAD: ::c_ulong = 0xbe000001; +pub const FIOSEEKDATA: ::c_ulong = 0xbe000002; +pub const FIOSEEKHOLE: ::c_ulong = 0xbe000003; + +pub const _SC_ARG_MAX: ::c_int = 15; +pub const _SC_CHILD_MAX: ::c_int = 16; +pub const _SC_CLK_TCK: ::c_int = 17; +pub const _SC_JOB_CONTROL: ::c_int = 18; +pub const _SC_NGROUPS_MAX: ::c_int = 19; +pub const _SC_OPEN_MAX: ::c_int = 20; +pub const _SC_SAVED_IDS: ::c_int = 21; +pub const _SC_STREAM_MAX: ::c_int = 22; +pub const _SC_TZNAME_MAX: ::c_int = 23; +pub const _SC_VERSION: ::c_int = 24; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 25; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 26; +pub const _SC_PAGESIZE: ::c_int = 27; +pub const _SC_PAGE_SIZE: ::c_int = 27; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 28; +pub const _SC_SEM_VALUE_MAX: ::c_int = 29; +pub const _SC_SEMAPHORES: ::c_int = 30; +pub const _SC_THREADS: ::c_int = 31; +pub const _SC_IOV_MAX: ::c_int = 32; +pub const _SC_UIO_MAXIOV: ::c_int = 32; +pub const _SC_NPROCESSORS_CONF: ::c_int = 34; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 35; +pub const _SC_ATEXIT_MAX: ::c_int = 37; +pub const _SC_PASS_MAX: ::c_int = 39; +pub const _SC_PHYS_PAGES: ::c_int = 40; +pub const _SC_AVPHYS_PAGES: ::c_int = 41; +pub const _SC_PIPE: ::c_int = 42; +pub const _SC_SELECT: ::c_int = 43; +pub const _SC_POLL: ::c_int = 44; +pub const _SC_MAPPED_FILES: ::c_int = 45; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 46; +pub const _SC_THREAD_STACK_MIN: ::c_int = 47; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 48; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 49; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 50; +pub const _SC_REALTIME_SIGNALS: ::c_int = 51; +pub const _SC_MEMORY_PROTECTION: ::c_int = 52; +pub const _SC_SIGQUEUE_MAX: ::c_int = 53; +pub const _SC_RTSIG_MAX: ::c_int = 54; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 55; +pub const _SC_DELAYTIMER_MAX: ::c_int = 56; +pub const _SC_TIMER_MAX: ::c_int = 57; +pub const _SC_TIMERS: ::c_int = 58; +pub const _SC_CPUTIME: ::c_int = 59; +pub const _SC_THREAD_CPUTIME: ::c_int = 60; +pub const _SC_HOST_NAME_MAX: ::c_int = 61; +pub const _SC_REGEXP: ::c_int = 62; +pub const _SC_SYMLOOP_MAX: ::c_int = 63; +pub const _SC_SHELL: ::c_int = 64; +pub const _SC_TTY_NAME_MAX: ::c_int = 65; + +pub const PTHREAD_STACK_MIN: ::size_t = 8192; + +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + flags: 0, + lock: 0, + unused: -42, + owner: -1, + owner_count: 0, +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + flags: 0, + unused: -42, + mutex: 0 as *mut _, + waiter_count: 0, + lock: 0, +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + flags: 0, + owner: -1, + lock_sem: 0, + lock_count: 0, + reader_count: 0, + writer_count: 0, + waiters: [0 as *mut _; 2], +}; + +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = 0; +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 3; + +pub const FIOCLEX: c_ulong = 0; // FIXME: does not exist on Haiku! + +pub const RUSAGE_CHILDREN: ::c_int = -1; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_RAW: ::c_int = 3; +pub const SOCK_SEQPACKET: ::c_int = 5; + +pub const SOL_SOCKET: ::c_int = -1; +pub const SO_ACCEPTCONN: ::c_int = 0x00000001; +pub const SO_BROADCAST: ::c_int = 0x00000002; +pub const SO_DEBUG: ::c_int = 0x00000004; +pub const SO_DONTROUTE: ::c_int = 0x00000008; +pub const SO_KEEPALIVE: ::c_int = 0x00000010; +pub const SO_OOBINLINE: ::c_int = 0x00000020; +pub const SO_REUSEADDR: ::c_int = 0x00000040; +pub const SO_REUSEPORT: ::c_int = 0x00000080; +pub const SO_USELOOPBACK: ::c_int = 0x00000100; +pub const SO_LINGER: ::c_int = 0x00000200; +pub const SO_SNDBUF: ::c_int = 0x40000001; +pub const SO_SNDLOWAT: ::c_int = 0x40000002; +pub const SO_SNDTIMEO: ::c_int = 0x40000003; +pub const SO_RCVBUF: ::c_int = 0x40000004; +pub const SO_RCVLOWAT: ::c_int = 0x40000005; +pub const SO_RCVTIMEO: ::c_int = 0x40000006; +pub const SO_ERROR: ::c_int = 0x40000007; +pub const SO_TYPE: ::c_int = 0x40000008; +pub const SO_NONBLOCK: ::c_int = 0x40000009; +pub const SO_BINDTODEVICE: ::c_int = 0x4000000a; +pub const SO_PEERCRED: ::c_int = 0x4000000b; + +pub const SCM_RIGHTS: ::c_int = 0x01; + +pub const SOMAXCONN: ::c_int = 32; + +pub const NI_MAXHOST: ::size_t = 1025; + +pub const WNOHANG: ::c_int = 0x01; +pub const WUNTRACED: ::c_int = 0x02; +pub const WCONTINUED: ::c_int = 0x04; +pub const WEXITED: ::c_int = 0x08; +pub const WSTOPPED: ::c_int = 0x10; +pub const WNOWAIT: ::c_int = 0x20; + +// si_code values for SIGBUS signal +pub const BUS_ADRALN: ::c_int = 40; +pub const BUS_ADRERR: ::c_int = 41; +pub const BUS_OBJERR: ::c_int = 42; + +// si_code values for SIGCHLD signal +pub const CLD_EXITED: ::c_int = 60; +pub const CLD_KILLED: ::c_int = 61; +pub const CLD_DUMPED: ::c_int = 62; +pub const CLD_TRAPPED: ::c_int = 63; +pub const CLD_STOPPED: ::c_int = 64; +pub const CLD_CONTINUED: ::c_int = 65; + +pub const P_ALL: idtype_t = 0; +pub const P_PID: idtype_t = 1; +pub const P_PGID: idtype_t = 2; + +pub const UTIME_OMIT: c_long = 1000000001; +pub const UTIME_NOW: c_long = 1000000000; + +pub const VINTR: usize = 0; +pub const VQUIT: usize = 1; +pub const VERASE: usize = 2; +pub const VKILL: usize = 3; +pub const VEOF: usize = 4; +pub const VEOL: usize = 5; +pub const VMIN: usize = 4; +pub const VTIME: usize = 5; +pub const VEOL2: usize = 6; +pub const VSWTCH: usize = 7; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VSUSP: usize = 10; + +pub const IGNBRK: ::tcflag_t = 0x01; +pub const BRKINT: ::tcflag_t = 0x02; +pub const IGNPAR: ::tcflag_t = 0x04; +pub const PARMRK: ::tcflag_t = 0x08; +pub const INPCK: ::tcflag_t = 0x10; +pub const ISTRIP: ::tcflag_t = 0x20; +pub const INLCR: ::tcflag_t = 0x40; +pub const IGNCR: ::tcflag_t = 0x80; +pub const ICRNL: ::tcflag_t = 0x100; +pub const IUCLC: ::tcflag_t = 0x200; +pub const IXON: ::tcflag_t = 0x400; +pub const IXANY: ::tcflag_t = 0x800; +pub const IXOFF: ::tcflag_t = 0x1000; + +pub const OPOST: ::tcflag_t = 0x00000001; +pub const OLCUC: ::tcflag_t = 0x00000002; +pub const ONLCR: ::tcflag_t = 0x00000004; +pub const OCRNL: ::tcflag_t = 0x00000008; +pub const ONOCR: ::tcflag_t = 0x00000010; +pub const ONLRET: ::tcflag_t = 0x00000020; +pub const OFILL: ::tcflag_t = 0x00000040; +pub const OFDEL: ::tcflag_t = 0x00000080; +pub const NLDLY: ::tcflag_t = 0x00000100; +pub const NL0: ::tcflag_t = 0x00000000; +pub const NL1: ::tcflag_t = 0x00000100; +pub const CRDLY: ::tcflag_t = 0x00000600; +pub const CR0: ::tcflag_t = 0x00000000; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const TABDLY: ::tcflag_t = 0x00001800; +pub const TAB0: ::tcflag_t = 0x00000000; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const BSDLY: ::tcflag_t = 0x00002000; +pub const BS0: ::tcflag_t = 0x00000000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VTDLY: ::tcflag_t = 0x00004000; +pub const VT0: ::tcflag_t = 0x00000000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const FFDLY: ::tcflag_t = 0x00008000; +pub const FF0: ::tcflag_t = 0x00000000; +pub const FF1: ::tcflag_t = 0x00008000; + +pub const CSIZE: ::tcflag_t = 0x00000020; +pub const CS5: ::tcflag_t = 0x00000000; +pub const CS6: ::tcflag_t = 0x00000000; +pub const CS7: ::tcflag_t = 0x00000000; +pub const CS8: ::tcflag_t = 0x00000020; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const XLOBLK: ::tcflag_t = 0x00001000; +pub const CTSFLOW: ::tcflag_t = 0x00002000; +pub const RTSFLOW: ::tcflag_t = 0x00004000; +pub const CRTSCTS: ::tcflag_t = RTSFLOW | CTSFLOW; + +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const XCASE: ::tcflag_t = 0x00000004; +pub const ECHO: ::tcflag_t = 0x00000008; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const IEXTEN: ::tcflag_t = 0x00000200; +pub const ECHOCTL: ::tcflag_t = 0x00000400; +pub const ECHOPRT: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00001000; +pub const FLUSHO: ::tcflag_t = 0x00002000; +pub const PENDIN: ::tcflag_t = 0x00004000; + +pub const TCGB_CTS: ::c_int = 0x01; +pub const TCGB_DSR: ::c_int = 0x02; +pub const TCGB_RI: ::c_int = 0x04; +pub const TCGB_DCD: ::c_int = 0x08; +pub const TIOCM_CTS: ::c_int = TCGB_CTS; +pub const TIOCM_CD: ::c_int = TCGB_DCD; +pub const TIOCM_CAR: ::c_int = TIOCM_CD; +pub const TIOCM_RI: ::c_int = TCGB_RI; +pub const TIOCM_DSR: ::c_int = TCGB_DSR; +pub const TIOCM_DTR: ::c_int = 0x10; +pub const TIOCM_RTS: ::c_int = 0x20; + +pub const B0: speed_t = 0x00; +pub const B50: speed_t = 0x01; +pub const B75: speed_t = 0x02; +pub const B110: speed_t = 0x03; +pub const B134: speed_t = 0x04; +pub const B150: speed_t = 0x05; +pub const B200: speed_t = 0x06; +pub const B300: speed_t = 0x07; +pub const B600: speed_t = 0x08; +pub const B1200: speed_t = 0x09; +pub const B1800: speed_t = 0x0A; +pub const B2400: speed_t = 0x0B; +pub const B4800: speed_t = 0x0C; +pub const B9600: speed_t = 0x0D; +pub const B19200: speed_t = 0x0E; +pub const B38400: speed_t = 0x0F; +pub const B57600: speed_t = 0x10; +pub const B115200: speed_t = 0x11; +pub const B230400: speed_t = 0x12; +pub const B31250: speed_t = 0x13; + +pub const TCSANOW: ::c_int = 0x01; +pub const TCSADRAIN: ::c_int = 0x02; +pub const TCSAFLUSH: ::c_int = 0x04; + +pub const TCOOFF: ::c_int = 0x01; +pub const TCOON: ::c_int = 0x02; +pub const TCIOFF: ::c_int = 0x04; +pub const TCION: ::c_int = 0x08; + +pub const TCIFLUSH: ::c_int = 0x01; +pub const TCOFLUSH: ::c_int = 0x02; +pub const TCIOFLUSH: ::c_int = 0x03; + +pub const TCGETA: ::c_ulong = 0x8000; +pub const TCSETA: ::c_ulong = TCGETA + 1; +pub const TCSETAF: ::c_ulong = TCGETA + 2; +pub const TCSETAW: ::c_ulong = TCGETA + 3; +pub const TCWAITEVENT: ::c_ulong = TCGETA + 4; +pub const TCSBRK: ::c_ulong = TCGETA + 5; +pub const TCFLSH: ::c_ulong = TCGETA + 6; +pub const TCXONC: ::c_ulong = TCGETA + 7; +pub const TCQUERYCONNECTED: ::c_ulong = TCGETA + 8; +pub const TCGETBITS: ::c_ulong = TCGETA + 9; +pub const TCSETDTR: ::c_ulong = TCGETA + 10; +pub const TCSETRTS: ::c_ulong = TCGETA + 11; +pub const TIOCGWINSZ: ::c_ulong = TCGETA + 12; +pub const TIOCSWINSZ: ::c_ulong = TCGETA + 13; +pub const TCVTIME: ::c_ulong = TCGETA + 14; +pub const TIOCGPGRP: ::c_ulong = TCGETA + 15; +pub const TIOCSPGRP: ::c_ulong = TCGETA + 16; +pub const TIOCSCTTY: ::c_ulong = TCGETA + 17; +pub const TIOCMGET: ::c_ulong = TCGETA + 18; +pub const TIOCMSET: ::c_ulong = TCGETA + 19; +pub const TIOCSBRK: ::c_ulong = TCGETA + 20; +pub const TIOCCBRK: ::c_ulong = TCGETA + 21; +pub const TIOCMBIS: ::c_ulong = TCGETA + 22; +pub const TIOCMBIC: ::c_ulong = TCGETA + 23; + +pub const PRIO_PROCESS: ::c_int = 0; +pub const PRIO_PGRP: ::c_int = 1; +pub const PRIO_USER: ::c_int = 2; + +// utmpx entry types +pub const EMPTY: ::c_short = 0; +pub const BOOT_TIME: ::c_short = 1; +pub const OLD_TIME: ::c_short = 2; +pub const NEW_TIME: ::c_short = 3; +pub const USER_PROCESS: ::c_short = 4; +pub const INIT_PROCESS: ::c_short = 5; +pub const LOGIN_PROCESS: ::c_short = 6; +pub const DEAD_PROCESS: ::c_short = 7; + +pub const LOG_PID: ::c_int = 1 << 12; +pub const LOG_CONS: ::c_int = 2 << 12; +pub const LOG_ODELAY: ::c_int = 4 << 12; +pub const LOG_NDELAY: ::c_int = 8 << 12; +pub const LOG_SERIAL: ::c_int = 16 << 12; +pub const LOG_PERROR: ::c_int = 32 << 12; +pub const LOG_NOWAIT: ::c_int = 64 << 12; + +// spawn.h +pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; +pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; +pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10; +pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20; +pub const POSIX_SPAWN_SETSID: ::c_int = 0x40; + +const_fn! { + {const} fn CMSG_ALIGN(len: usize) -> usize { + len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) + } +} + +f! { + pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { + if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { + (*mhdr).msg_control as *mut cmsghdr + } else { + 0 as *mut cmsghdr + } + } + + pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { + (cmsg as *mut ::c_uchar) + .offset(CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + } + + pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) + as ::c_uint + } + + pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { + CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length + } + + pub fn CMSG_NXTHDR(mhdr: *const msghdr, + cmsg: *const cmsghdr) -> *mut cmsghdr { + if cmsg.is_null() { + return ::CMSG_FIRSTHDR(mhdr); + }; + let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) + + CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); + let max = (*mhdr).msg_control as usize + + (*mhdr).msg_controllen as usize; + if next > max { + 0 as *mut ::cmsghdr + } else { + (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) + as *mut ::cmsghdr + } + } + + pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] &= !(1 << (fd % size)); + return + } + + pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 + } + + pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] |= 1 << (fd % size); + return + } + + pub fn FD_ZERO(set: *mut fd_set) -> () { + for slot in (*set).fds_bits.iter_mut() { + *slot = 0; + } + } +} + +safe_f! { + pub {const} fn WIFEXITED(status: ::c_int) -> bool { + (status & !0xff) == 0 + } + + pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + status & 0xff + } + + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + ((status >> 8) & 0xff) != 0 + } + + pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } + + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + ((status >> 16) & 0xff) != 0 + } + + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + (status >> 16) & 0xff + } + + // actually WIFCORED, but this is used everywhere else + pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + (status & 0x10000) != 0 + } + + pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + (status & 0x20000) != 0 + } +} + +extern "C" { + pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; + pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + pub fn getpriority(which: ::c_int, who: id_t) -> ::c_int; + pub fn setpriority(which: ::c_int, who: id_t, priority: ::c_int) -> ::c_int; + + pub fn endusershell(); + pub fn getpass(prompt: *const ::c_char) -> *mut ::c_char; + pub fn getusershell() -> *mut ::c_char; + pub fn issetugid() -> ::c_int; + pub fn setusershell(); + + pub fn utimensat( + fd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + pub fn _errnop() -> *mut ::c_int; + + pub fn abs(i: ::c_int) -> ::c_int; + pub fn labs(i: ::c_long) -> ::c_long; + pub fn rand() -> ::c_int; + pub fn srand(seed: ::c_uint); + pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; + pub fn freeifaddrs(ifa: *mut ::ifaddrs); + pub fn ppoll( + fds: *mut ::pollfd, + numfds: ::nfds_t, + timeout: *const ::timespec, + sigMask: *const sigset_t, + ) -> ::c_int; + + pub fn getspent() -> *mut spwd; + pub fn getspent_r( + pwd: *mut spwd, + buf: *mut ::c_char, + bufferSize: ::size_t, + res: *mut *mut spwd, + ) -> ::c_int; + pub fn setspent(); + pub fn endspent(); + pub fn getspnam(name: *const ::c_char) -> *mut spwd; + pub fn getspnam_r( + name: *const ::c_char, + spwd: *mut spwd, + buffer: *mut ::c_char, + bufferSize: ::size_t, + res: *mut *mut spwd, + ) -> ::c_int; + pub fn sgetspent(line: *const ::c_char) -> *mut spwd; + pub fn sgetspent_r( + line: *const ::c_char, + spwd: *mut spwd, + buffer: *mut ::c_char, + bufferSize: ::size_t, + res: *mut *mut spwd, + ) -> ::c_int; + pub fn fgetspent(file: *mut ::FILE) -> *mut spwd; + pub fn fgetspent_r( + file: *mut ::FILE, + spwd: *mut spwd, + buffer: *mut ::c_char, + bufferSize: ::size_t, + res: *mut *mut spwd, + ) -> ::c_int; + pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; + pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + + pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; + pub fn pthread_create( + thread: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + pub fn valloc(numBytes: ::size_t) -> *mut ::c_void; + pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t; + pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; + pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; + pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) + -> ::c_int; + + pub fn glob( + pattern: *const ::c_char, + flags: ::c_int, + errfunc: ::Option ::c_int>, + pglob: *mut ::glob_t, + ) -> ::c_int; + pub fn globfree(pglob: *mut ::glob_t); + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advice: ::c_int) -> ::c_int; + pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + + pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; + pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + + pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + + pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + + pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; + pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; + pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + + pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; + + pub fn writev(fd: ::c_int, iov: *const ::iovec, count: ::c_int) -> ::ssize_t; + pub fn readv(fd: ::c_int, iov: *const ::iovec, count: ::c_int) -> ::ssize_t; + + pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn execvpe( + file: *const ::c_char, + argv: *const *const ::c_char, + environment: *const *const ::c_char, + ) -> ::c_int; + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn getgrouplist( + user: *const ::c_char, + basegroup: ::gid_t, + grouplist: *mut ::gid_t, + groupcount: *mut ::c_int, + ) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; + pub fn sem_close(sem: *mut sem_t) -> ::c_int; + pub fn getdtablesize() -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; + pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; + pub fn sem_unlink(name: *const ::c_char) -> ::c_int; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn getpwent() -> *mut passwd; + pub fn setpwent(); + pub fn endpwent(); + pub fn endgrent(); + pub fn getgrent() -> *mut ::group; + pub fn setgrent(); + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; + pub fn uname(buf: *mut ::utsname) -> ::c_int; + pub fn getutxent() -> *mut utmpx; + pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + pub fn setutxent(); + pub fn endutxent(); + pub fn faccessat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::c_int, + flags: ::c_int, + ) -> ::c_int; + + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + + pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int; + pub fn setitimer( + which: ::c_int, + new_value: *const ::itimerval, + old_value: *mut ::itimerval, + ) -> ::c_int; + + pub fn regcomp(preg: *mut regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; + + pub fn regexec( + preg: *const regex_t, + input: *const ::c_char, + nmatch: ::size_t, + pmatch: *mut regmatch_t, + eflags: ::c_int, + ) -> ::c_int; + + pub fn regerror( + errcode: ::c_int, + preg: *const regex_t, + errbuf: *mut ::c_char, + errbuf_size: ::size_t, + ) -> ::size_t; + + pub fn regfree(preg: *mut regex_t); + + pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; + pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtype: ::c_long, + msgflg: ::c_int, + ) -> ::ssize_t; + pub fn msgsnd( + msqid: ::c_int, + msgp: *const ::c_void, + msgsz: ::size_t, + msgflg: ::c_int, + ) -> ::c_int; + pub fn semget(key: ::key_t, nsems: ::c_int, semflg: ::c_int) -> ::c_int; + pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; + pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int; + pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; + + pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; + + pub fn lsearch( + key: *const ::c_void, + base: *mut ::c_void, + nelp: *mut ::size_t, + width: ::size_t, + compar: ::Option ::c_int>, + ) -> *mut ::c_void; + pub fn lfind( + key: *const ::c_void, + base: *const ::c_void, + nelp: *mut ::size_t, + width: ::size_t, + compar: ::Option ::c_int>, + ) -> *mut ::c_void; + pub fn hcreate(nelt: ::size_t) -> ::c_int; + pub fn hdestroy(); + pub fn hsearch(entry: ::ENTRY, action: ::ACTION) -> *mut ::ENTRY; + + pub fn drand48() -> ::c_double; + pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; + pub fn lrand48() -> ::c_long; + pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; + pub fn mrand48() -> ::c_long; + pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; + pub fn srand48(seed: ::c_long); + pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; + pub fn lcong48(p: *mut ::c_ushort); + + pub fn clearenv() -> ::c_int; + pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; + + pub fn sync(); + pub fn getpagesize() -> ::c_int; + + pub fn brk(addr: *mut ::c_void) -> ::c_int; + pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; + + pub fn posix_spawn( + pid: *mut ::pid_t, + path: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnp( + pid: *mut ::pid_t, + file: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + + pub fn posix_spawn_file_actions_init(file_actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_destroy( + file_actions: *mut posix_spawn_file_actions_t, + ) -> ::c_int; + pub fn posix_spawn_file_actions_addopen( + file_actions: *mut posix_spawn_file_actions_t, + fildes: ::c_int, + path: *const ::c_char, + oflag: ::c_int, + mode: ::mode_t, + ) -> ::c_int; + pub fn posix_spawn_file_actions_addclose( + file_actions: *mut posix_spawn_file_actions_t, + fildes: ::c_int, + ) -> ::c_int; + pub fn posix_spawn_file_actions_adddup2( + file_actions: *mut posix_spawn_file_actions_t, + fildes: ::c_int, + newfildes: ::c_int, + ) -> ::c_int; + + pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_getflags( + attr: *const posix_spawnattr_t, + _flags: *mut ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; + pub fn posix_spawnattr_getpgroup( + attr: *const posix_spawnattr_t, + _pgroup: *mut ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, pgroup: ::pid_t) -> ::c_int; + pub fn posix_spawnattr_getsigdefault( + attr: *const posix_spawnattr_t, + sigdefault: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + sigdefault: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + _sigmask: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + sigmask: *const ::sigset_t, + ) -> ::c_int; + pub fn getopt_long( + argc: ::c_int, + argv: *const *mut c_char, + optstring: *const c_char, + longopts: *const option, + longindex: *mut ::c_int, + ) -> ::c_int; + pub fn strcasecmp_l( + string1: *const ::c_char, + string2: *const ::c_char, + locale: ::locale_t, + ) -> ::c_int; + pub fn strncasecmp_l( + string1: *const ::c_char, + string2: *const ::c_char, + length: ::size_t, + locale: ::locale_t, + ) -> ::c_int; +} + +#[link(name = "bsd")] +extern "C" { + pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; + pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + pub fn forkpty( + amaster: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::pid_t; + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::c_int; + pub fn strsep(string: *mut *mut ::c_char, delimiters: *const ::c_char) -> *mut ::c_char; + pub fn explicit_bzero(buf: *mut ::c_void, len: ::size_t); + pub fn login_tty(_fd: ::c_int) -> ::c_int; + + pub fn sl_init() -> *mut StringList; + pub fn sl_add(sl: *mut StringList, n: *mut ::c_char) -> ::c_int; + pub fn sl_free(sl: *mut StringList, i: ::c_int); + pub fn sl_find(sl: *mut StringList, n: *mut ::c_char) -> *mut ::c_char; + + pub fn getprogname() -> *const ::c_char; + pub fn setprogname(progname: *const ::c_char); + pub fn dl_iterate_phdr( + callback: ::Option< + unsafe extern "C" fn( + info: *mut dl_phdr_info, + size: usize, + data: *mut ::c_void, + ) -> ::c_int, + >, + data: *mut ::c_void, + ) -> ::c_int; +} + +#[link(name = "gnu")] +extern "C" { + pub fn memmem( + source: *const ::c_void, + sourceLength: ::size_t, + search: *const ::c_void, + searchLength: ::size_t, + ) -> *mut ::c_void; +} + +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + mod b64; + pub use self::b64::*; + } else { + mod b32; + pub use self::b32::*; + } +} + +cfg_if! { + if #[cfg(target_arch = "x86")] { + // TODO + // mod x86; + // pub use self::x86::*; + } else if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } else if #[cfg(target_arch = "aarch64")] { + // TODO + // mod aarch64; + // pub use self::aarch64::*; + } +} + +mod native; +pub use self::native::*; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/haiku/native.rs b/src/rust/vendor/libc-0.2.146/src/unix/haiku/native.rs new file mode 100644 index 000000000..44bcc1e3b --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/haiku/native.rs @@ -0,0 +1,1366 @@ +// This module contains bindings to the native Haiku API. The Haiku API +// originates from BeOS, and it was the original way to perform low level +// system and IO operations. The POSIX API was in that era was like a +// compatibility layer. In current Haiku development, both the POSIX API and +// the Haiku API are considered to be co-equal status. However, they are not +// integrated like they are on other UNIX platforms, which means that for many +// low level concepts there are two versions, like processes (POSIX) and +// teams (Haiku), or pthreads and native threads. +// +// Both the POSIX API and the Haiku API live in libroot.so, the library that is +// linked to any binary by default. +// +// This file follows the Haiku API for Haiku R1 beta 2. It is organized by the +// C/C++ header files in which the concepts can be found, while adhering to the +// style guide for this crate. + +// Helper macro to generate u32 constants. The Haiku API uses (non-standard) +// multi-character constants (like 'UPDA' or 'MSGM') to represent 32 bit +// integer constants. + +macro_rules! haiku_constant { + ($a:tt, $b:tt, $c:tt, $d:tt) => { + (($a as u32) << 24) + (($b as u32) << 16) + (($c as u32) << 8) + ($d as u32) + }; +} + +// support/SupportDefs.h +pub type status_t = i32; +pub type bigtime_t = i64; +pub type nanotime_t = i64; +pub type type_code = u32; +pub type perform_code = u32; + +// kernel/OS.h +pub type area_id = i32; +pub type port_id = i32; +pub type sem_id = i32; +pub type team_id = i32; +pub type thread_id = i32; + +pub type thread_func = extern "C" fn(*mut ::c_void) -> status_t; + +// kernel/image.h +pub type image_id = i32; + +e! { + // kernel/OS.h + pub enum thread_state { + B_THREAD_RUNNING = 1, + B_THREAD_READY, + B_THREAD_RECEIVING, + B_THREAD_ASLEEP, + B_THREAD_SUSPENDED, + B_THREAD_WAITING + } + + // kernel/image.h + pub enum image_type { + B_APP_IMAGE = 1, + B_LIBRARY_IMAGE, + B_ADD_ON_IMAGE, + B_SYSTEM_IMAGE + } + + // kernel/scheduler.h + + pub enum be_task_flags { + B_DEFAULT_MEDIA_PRIORITY = 0x000, + B_OFFLINE_PROCESSING = 0x001, + B_STATUS_RENDERING = 0x002, + B_USER_INPUT_HANDLING = 0x004, + B_LIVE_VIDEO_MANIPULATION = 0x008, + B_VIDEO_PLAYBACK = 0x010, + B_VIDEO_RECORDING = 0x020, + B_LIVE_AUDIO_MANIPULATION = 0x040, + B_AUDIO_PLAYBACK = 0x080, + B_AUDIO_RECORDING = 0x100, + B_LIVE_3D_RENDERING = 0x200, + B_NUMBER_CRUNCHING = 0x400, + B_MIDI_PROCESSING = 0x800, + } + + pub enum schduler_mode { + SCHEDULER_MODE_LOW_LATENCY, + SCHEDULER_MODE_POWER_SAVING, + } + + // FindDirectory.h + pub enum path_base_directory { + B_FIND_PATH_INSTALLATION_LOCATION_DIRECTORY, + B_FIND_PATH_ADD_ONS_DIRECTORY, + B_FIND_PATH_APPS_DIRECTORY, + B_FIND_PATH_BIN_DIRECTORY, + B_FIND_PATH_BOOT_DIRECTORY, + B_FIND_PATH_CACHE_DIRECTORY, + B_FIND_PATH_DATA_DIRECTORY, + B_FIND_PATH_DEVELOP_DIRECTORY, + B_FIND_PATH_DEVELOP_LIB_DIRECTORY, + B_FIND_PATH_DOCUMENTATION_DIRECTORY, + B_FIND_PATH_ETC_DIRECTORY, + B_FIND_PATH_FONTS_DIRECTORY, + B_FIND_PATH_HEADERS_DIRECTORY, + B_FIND_PATH_LIB_DIRECTORY, + B_FIND_PATH_LOG_DIRECTORY, + B_FIND_PATH_MEDIA_NODES_DIRECTORY, + B_FIND_PATH_PACKAGES_DIRECTORY, + B_FIND_PATH_PREFERENCES_DIRECTORY, + B_FIND_PATH_SERVERS_DIRECTORY, + B_FIND_PATH_SETTINGS_DIRECTORY, + B_FIND_PATH_SOUNDS_DIRECTORY, + B_FIND_PATH_SPOOL_DIRECTORY, + B_FIND_PATH_TRANSLATORS_DIRECTORY, + B_FIND_PATH_VAR_DIRECTORY, + B_FIND_PATH_IMAGE_PATH = 1000, + B_FIND_PATH_PACKAGE_PATH, + } + + pub enum directory_which { + B_DESKTOP_DIRECTORY = 0, + B_TRASH_DIRECTORY, + B_SYSTEM_DIRECTORY = 1000, + B_SYSTEM_ADDONS_DIRECTORY = 1002, + B_SYSTEM_BOOT_DIRECTORY, + B_SYSTEM_FONTS_DIRECTORY, + B_SYSTEM_LIB_DIRECTORY, + B_SYSTEM_SERVERS_DIRECTORY, + B_SYSTEM_APPS_DIRECTORY, + B_SYSTEM_BIN_DIRECTORY, + B_SYSTEM_DOCUMENTATION_DIRECTORY = 1010, + B_SYSTEM_PREFERENCES_DIRECTORY, + B_SYSTEM_TRANSLATORS_DIRECTORY, + B_SYSTEM_MEDIA_NODES_DIRECTORY, + B_SYSTEM_SOUNDS_DIRECTORY, + B_SYSTEM_DATA_DIRECTORY, + B_SYSTEM_DEVELOP_DIRECTORY, + B_SYSTEM_PACKAGES_DIRECTORY, + B_SYSTEM_HEADERS_DIRECTORY, + B_SYSTEM_ETC_DIRECTORY = 2008, + B_SYSTEM_SETTINGS_DIRECTORY = 2010, + B_SYSTEM_LOG_DIRECTORY = 2012, + B_SYSTEM_SPOOL_DIRECTORY, + B_SYSTEM_TEMP_DIRECTORY, + B_SYSTEM_VAR_DIRECTORY, + B_SYSTEM_CACHE_DIRECTORY = 2020, + B_SYSTEM_NONPACKAGED_DIRECTORY = 2023, + B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY, + B_SYSTEM_NONPACKAGED_TRANSLATORS_DIRECTORY, + B_SYSTEM_NONPACKAGED_MEDIA_NODES_DIRECTORY, + B_SYSTEM_NONPACKAGED_BIN_DIRECTORY, + B_SYSTEM_NONPACKAGED_DATA_DIRECTORY, + B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY, + B_SYSTEM_NONPACKAGED_SOUNDS_DIRECTORY, + B_SYSTEM_NONPACKAGED_DOCUMENTATION_DIRECTORY, + B_SYSTEM_NONPACKAGED_LIB_DIRECTORY, + B_SYSTEM_NONPACKAGED_HEADERS_DIRECTORY, + B_SYSTEM_NONPACKAGED_DEVELOP_DIRECTORY, + B_USER_DIRECTORY = 3000, + B_USER_CONFIG_DIRECTORY, + B_USER_ADDONS_DIRECTORY, + B_USER_BOOT_DIRECTORY, + B_USER_FONTS_DIRECTORY, + B_USER_LIB_DIRECTORY, + B_USER_SETTINGS_DIRECTORY, + B_USER_DESKBAR_DIRECTORY, + B_USER_PRINTERS_DIRECTORY, + B_USER_TRANSLATORS_DIRECTORY, + B_USER_MEDIA_NODES_DIRECTORY, + B_USER_SOUNDS_DIRECTORY, + B_USER_DATA_DIRECTORY, + B_USER_CACHE_DIRECTORY, + B_USER_PACKAGES_DIRECTORY, + B_USER_HEADERS_DIRECTORY, + B_USER_NONPACKAGED_DIRECTORY, + B_USER_NONPACKAGED_ADDONS_DIRECTORY, + B_USER_NONPACKAGED_TRANSLATORS_DIRECTORY, + B_USER_NONPACKAGED_MEDIA_NODES_DIRECTORY, + B_USER_NONPACKAGED_BIN_DIRECTORY, + B_USER_NONPACKAGED_DATA_DIRECTORY, + B_USER_NONPACKAGED_FONTS_DIRECTORY, + B_USER_NONPACKAGED_SOUNDS_DIRECTORY, + B_USER_NONPACKAGED_DOCUMENTATION_DIRECTORY, + B_USER_NONPACKAGED_LIB_DIRECTORY, + B_USER_NONPACKAGED_HEADERS_DIRECTORY, + B_USER_NONPACKAGED_DEVELOP_DIRECTORY, + B_USER_DEVELOP_DIRECTORY, + B_USER_DOCUMENTATION_DIRECTORY, + B_USER_SERVERS_DIRECTORY, + B_USER_APPS_DIRECTORY, + B_USER_BIN_DIRECTORY, + B_USER_PREFERENCES_DIRECTORY, + B_USER_ETC_DIRECTORY, + B_USER_LOG_DIRECTORY, + B_USER_SPOOL_DIRECTORY, + B_USER_VAR_DIRECTORY, + B_APPS_DIRECTORY = 4000, + B_PREFERENCES_DIRECTORY, + B_UTILITIES_DIRECTORY, + B_PACKAGE_LINKS_DIRECTORY, + } +} + +s! { + // kernel/OS.h + pub struct area_info { + pub area: area_id, + pub name: [::c_char; B_OS_NAME_LENGTH], + pub size: usize, + pub lock: u32, + pub protection: u32, + pub team: team_id, + pub ram_size: u32, + pub copy_count: u32, + pub in_count: u32, + pub out_count: u32, + pub address: *mut ::c_void + } + + pub struct port_info { + pub port: port_id, + pub team: team_id, + pub name: [::c_char; B_OS_NAME_LENGTH], + pub capacity: i32, + pub queue_count: i32, + pub total_count: i32, + } + + pub struct port_message_info { + pub size: ::size_t, + pub sender: ::uid_t, + pub sender_group: ::gid_t, + pub sender_team: ::team_id + } + + pub struct team_info { + pub team: team_id, + pub thread_count: i32, + pub image_count: i32, + pub area_count: i32, + pub debugger_nub_thread: thread_id, + pub debugger_nub_port: port_id, + pub argc: i32, + pub args: [::c_char; 64], + pub uid: ::uid_t, + pub gid: ::gid_t + } + + pub struct sem_info { + pub sem: sem_id, + pub team: team_id, + pub name: [::c_char; B_OS_NAME_LENGTH], + pub count: i32, + pub latest_holder: thread_id + } + + pub struct team_usage_info { + pub user_time: bigtime_t, + pub kernel_time: bigtime_t + } + + pub struct thread_info { + pub thread: thread_id, + pub team: team_id, + pub name: [::c_char; B_OS_NAME_LENGTH], + pub state: thread_state, + pub priority: i32, + pub sem: sem_id, + pub user_time: bigtime_t, + pub kernel_time: bigtime_t, + pub stack_base: *mut ::c_void, + pub stack_end: *mut ::c_void + } + + pub struct cpu_info { + pub active_time: bigtime_t, + pub enabled: bool, + pub current_frequency: u64 + } + + pub struct system_info { + pub boot_time: bigtime_t, + pub cpu_count: u32, + pub max_pages: u64, + pub used_pages: u64, + pub cached_pages: u64, + pub block_cache_pages: u64, + pub ignored_pages: u64, + pub needed_memory: u64, + pub free_memory: u64, + pub max_swap_pages: u64, + pub free_swap_pages: u64, + pub page_faults: u32, + pub max_sems: u32, + pub used_sems: u32, + pub max_ports: u32, + pub used_ports: u32, + pub max_threads: u32, + pub used_threads: u32, + pub max_teams: u32, + pub used_teams: u32, + pub kernel_name: [::c_char; B_FILE_NAME_LENGTH], + pub kernel_build_date: [::c_char; B_OS_NAME_LENGTH], + pub kernel_build_time: [::c_char; B_OS_NAME_LENGTH], + pub kernel_version: i64, + pub abi: u32 + } + + pub struct object_wait_info { + pub object: i32, + pub type_: u16, + pub events: u16 + } + + // kernel/fs_attr.h + pub struct attr_info { + pub type_: u32, + pub size: ::off_t + } + + // kernel/fs_index.h + pub struct index_info { + pub type_: u32, + pub size: ::off_t, + pub modification_time: ::time_t, + pub creation_time: ::time_t, + pub uid: ::uid_t, + pub gid: ::gid_t + } + + //kernel/fs_info.h + pub struct fs_info { + pub dev: ::dev_t, + pub root: ::ino_t, + pub flags: u32, + pub block_size: ::off_t, + pub io_size: ::off_t, + pub total_blocks: ::off_t, + pub free_blocks: ::off_t, + pub total_nodes: ::off_t, + pub free_nodes: ::off_t, + pub device_name: [::c_char; 128], + pub volume_name: [::c_char; B_FILE_NAME_LENGTH], + pub fsh_name: [::c_char; B_OS_NAME_LENGTH] + } + + // kernel/image.h + pub struct image_info { + pub id: image_id, + pub image_type: ::c_int, + pub sequence: i32, + pub init_order: i32, + pub init_routine: extern "C" fn(), + pub term_routine: extern "C" fn(), + pub device: ::dev_t, + pub node: ::ino_t, + pub name: [::c_char; ::PATH_MAX as usize], + pub text: *mut ::c_void, + pub data: *mut ::c_void, + pub text_size: i32, + pub data_size: i32, + pub api_version: i32, + pub abi: i32 + } + + pub struct __c_anonymous_eax_0 { + pub max_eax: u32, + pub vendor_id: [::c_char; 12], + } + + pub struct __c_anonymous_eax_1 { + pub stepping: u32, + pub model: u32, + pub family: u32, + pub tpe: u32, + __reserved_0: u32, + pub extended_model: u32, + pub extended_family: u32, + __reserved_1: u32, + pub brand_index: u32, + pub clflush: u32, + pub logical_cpus: u32, + pub apic_id: u32, + pub features: u32, + pub extended_features: u32, + } + + pub struct __c_anonymous_eax_2 { + pub call_num: u8, + pub cache_descriptors: [u8; 15], + } + + pub struct __c_anonymous_eax_3 { + __reserved: [u32; 2], + pub serial_number_high: u32, + pub serial_number_low: u32, + } + + pub struct __c_anonymous_regs { + pub eax: u32, + pub ebx: u32, + pub edx: u32, + pub ecx: u32, + } +} + +s_no_extra_traits! { + #[cfg(libc_union)] + pub union cpuid_info { + pub eax_0: __c_anonymous_eax_0, + pub eax_1: __c_anonymous_eax_1, + pub eax_2: __c_anonymous_eax_2, + pub eax_3: __c_anonymous_eax_3, + pub as_chars: [::c_char; 16], + pub regs: __c_anonymous_regs, + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + #[cfg(libc_union)] + impl PartialEq for cpuid_info { + fn eq(&self, other: &cpuid_info) -> bool { + unsafe { + self.eax_0 == other.eax_0 + || self.eax_1 == other.eax_1 + || self.eax_2 == other.eax_2 + || self.eax_3 == other.eax_3 + || self.as_chars == other.as_chars + || self.regs == other.regs + } + } + } + #[cfg(libc_union)] + impl Eq for cpuid_info {} + #[cfg(libc_union)] + impl ::fmt::Debug for cpuid_info { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + unsafe { + f.debug_struct("cpuid_info") + .field("eax_0", &self.eax_0) + .field("eax_1", &self.eax_1) + .field("eax_2", &self.eax_2) + .field("eax_3", &self.eax_3) + .field("as_chars", &self.as_chars) + .field("regs", &self.regs) + .finish() + } + } + } + } +} + +// kernel/OS.h +pub const B_OS_NAME_LENGTH: usize = 32; +pub const B_PAGE_SIZE: usize = 4096; +pub const B_INFINITE_TIMEOUT: usize = 9223372036854775807; + +pub const B_RELATIVE_TIMEOUT: u32 = 0x8; +pub const B_ABSOLUTE_TIMEOUT: u32 = 0x10; +pub const B_TIMEOUT_REAL_TIME_BASE: u32 = 0x40; +pub const B_ABSOLUTE_REAL_TIME_TIMEOUT: u32 = B_ABSOLUTE_TIMEOUT | B_TIMEOUT_REAL_TIME_BASE; + +pub const B_NO_LOCK: u32 = 0; +pub const B_LAZY_LOCK: u32 = 1; +pub const B_FULL_LOCK: u32 = 2; +pub const B_CONTIGUOUS: u32 = 3; +pub const B_LOMEM: u32 = 4; +pub const B_32_BIT_FULL_LOCK: u32 = 5; +pub const B_32_BIT_CONTIGUOUS: u32 = 6; + +pub const B_ANY_ADDRESS: u32 = 0; +pub const B_EXACT_ADDRESS: u32 = 1; +pub const B_BASE_ADDRESS: u32 = 2; +pub const B_CLONE_ADDRESS: u32 = 3; +pub const B_ANY_KERNEL_ADDRESS: u32 = 4; +pub const B_RANDOMIZED_ANY_ADDRESS: u32 = 6; +pub const B_RANDOMIZED_BASE_ADDRESS: u32 = 7; + +pub const B_READ_AREA: u32 = 1 << 0; +pub const B_WRITE_AREA: u32 = 1 << 1; +pub const B_EXECUTE_AREA: u32 = 1 << 2; +pub const B_STACK_AREA: u32 = 1 << 3; +pub const B_CLONEABLE_AREA: u32 = 1 << 8; + +pub const B_CAN_INTERRUPT: u32 = 0x01; +pub const B_CHECK_PERMISSION: u32 = 0x04; +pub const B_KILL_CAN_INTERRUPT: u32 = 0x20; +pub const B_DO_NOT_RESCHEDULE: u32 = 0x02; +pub const B_RELEASE_ALL: u32 = 0x08; +pub const B_RELEASE_IF_WAITING_ONLY: u32 = 0x10; + +pub const B_CURRENT_TEAM: team_id = 0; +pub const B_SYSTEM_TEAM: team_id = 1; + +pub const B_TEAM_USAGE_SELF: i32 = 0; +pub const B_TEAM_USAGE_CHILDREN: i32 = -1; + +pub const B_IDLE_PRIORITY: i32 = 0; +pub const B_LOWEST_ACTIVE_PRIORITY: i32 = 1; +pub const B_LOW_PRIORITY: i32 = 5; +pub const B_NORMAL_PRIORITY: i32 = 10; +pub const B_DISPLAY_PRIORITY: i32 = 15; +pub const B_URGENT_DISPLAY_PRIORITY: i32 = 20; +pub const B_REAL_TIME_DISPLAY_PRIORITY: i32 = 100; +pub const B_URGENT_PRIORITY: i32 = 110; +pub const B_REAL_TIME_PRIORITY: i32 = 120; + +pub const B_SYSTEM_TIMEBASE: i32 = 0; +pub const B_FIRST_REAL_TIME_PRIORITY: i32 = B_REAL_TIME_DISPLAY_PRIORITY; + +pub const B_ONE_SHOT_ABSOLUTE_ALARM: u32 = 1; +pub const B_ONE_SHOT_RELATIVE_ALARM: u32 = 2; +pub const B_PERIODIC_ALARM: u32 = 3; + +pub const B_OBJECT_TYPE_FD: u16 = 0; +pub const B_OBJECT_TYPE_SEMAPHORE: u16 = 1; +pub const B_OBJECT_TYPE_PORT: u16 = 2; +pub const B_OBJECT_TYPE_THREAD: u16 = 3; + +pub const B_EVENT_READ: u16 = 0x0001; +pub const B_EVENT_WRITE: u16 = 0x0002; +pub const B_EVENT_ERROR: u16 = 0x0004; +pub const B_EVENT_PRIORITY_READ: u16 = 0x0008; +pub const B_EVENT_PRIORITY_WRITE: u16 = 0x0010; +pub const B_EVENT_HIGH_PRIORITY_READ: u16 = 0x0020; +pub const B_EVENT_HIGH_PRIORITY_WRITE: u16 = 0x0040; +pub const B_EVENT_DISCONNECTED: u16 = 0x0080; +pub const B_EVENT_ACQUIRE_SEMAPHORE: u16 = 0x0001; +pub const B_EVENT_INVALID: u16 = 0x1000; + +// kernel/fs_info.h +pub const B_FS_IS_READONLY: u32 = 0x00000001; +pub const B_FS_IS_REMOVABLE: u32 = 0x00000002; +pub const B_FS_IS_PERSISTENT: u32 = 0x00000004; +pub const B_FS_IS_SHARED: u32 = 0x00000008; +pub const B_FS_HAS_MIME: u32 = 0x00010000; +pub const B_FS_HAS_ATTR: u32 = 0x00020000; +pub const B_FS_HAS_QUERY: u32 = 0x00040000; +pub const B_FS_HAS_SELF_HEALING_LINKS: u32 = 0x00080000; +pub const B_FS_HAS_ALIASES: u32 = 0x00100000; +pub const B_FS_SUPPORTS_NODE_MONITORING: u32 = 0x00200000; +pub const B_FS_SUPPORTS_MONITOR_CHILDREN: u32 = 0x00400000; + +// kernel/fs_query.h +pub const B_LIVE_QUERY: u32 = 0x00000001; +pub const B_QUERY_NON_INDEXED: u32 = 0x00000002; + +// kernel/fs_volume.h +pub const B_MOUNT_READ_ONLY: u32 = 1; +pub const B_MOUNT_VIRTUAL_DEVICE: u32 = 2; +pub const B_FORCE_UNMOUNT: u32 = 1; + +// kernel/image.h +pub const B_FLUSH_DCACHE: u32 = 0x0001; +pub const B_FLUSH_ICACHE: u32 = 0x0004; +pub const B_INVALIDATE_DCACHE: u32 = 0x0002; +pub const B_INVALIDATE_ICACHE: u32 = 0x0008; + +pub const B_SYMBOL_TYPE_DATA: i32 = 0x1; +pub const B_SYMBOL_TYPE_TEXT: i32 = 0x2; +pub const B_SYMBOL_TYPE_ANY: i32 = 0x5; + +// storage/StorageDefs.h +pub const B_DEV_NAME_LENGTH: usize = 128; +pub const B_FILE_NAME_LENGTH: usize = ::FILENAME_MAX as usize; +pub const B_PATH_NAME_LENGTH: usize = ::PATH_MAX as usize; +pub const B_ATTR_NAME_LENGTH: usize = B_FILE_NAME_LENGTH - 1; +pub const B_MIME_TYPE_LENGTH: usize = B_ATTR_NAME_LENGTH - 15; +pub const B_MAX_SYMLINKS: usize = 16; + +// Haiku open modes in BFile are passed as u32 +pub const B_READ_ONLY: u32 = ::O_RDONLY as u32; +pub const B_WRITE_ONLY: u32 = ::O_WRONLY as u32; +pub const B_READ_WRITE: u32 = ::O_RDWR as u32; + +pub const B_FAIL_IF_EXISTS: u32 = ::O_EXCL as u32; +pub const B_CREATE_FILE: u32 = ::O_CREAT as u32; +pub const B_ERASE_FILE: u32 = ::O_TRUNC as u32; +pub const B_OPEN_AT_END: u32 = ::O_APPEND as u32; + +pub const B_FILE_NODE: u32 = 0x01; +pub const B_SYMLINK_NODE: u32 = 0x02; +pub const B_DIRECTORY_NODE: u32 = 0x04; +pub const B_ANY_NODE: u32 = 0x07; + +// support/Errors.h +pub const B_GENERAL_ERROR_BASE: status_t = core::i32::MIN; +pub const B_OS_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x1000; +pub const B_APP_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x2000; +pub const B_INTERFACE_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x3000; +pub const B_MEDIA_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x4000; +pub const B_TRANSLATION_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x4800; +pub const B_MIDI_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x5000; +pub const B_STORAGE_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x6000; +pub const B_POSIX_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x7000; +pub const B_MAIL_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x8000; +pub const B_PRINT_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x9000; +pub const B_DEVICE_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0xa000; +pub const B_ERRORS_END: status_t = B_GENERAL_ERROR_BASE + 0xffff; + +// General errors +pub const B_NO_MEMORY: status_t = B_GENERAL_ERROR_BASE + 0; +pub const B_IO_ERROR: status_t = B_GENERAL_ERROR_BASE + 1; +pub const B_PERMISSION_DENIED: status_t = B_GENERAL_ERROR_BASE + 2; +pub const B_BAD_INDEX: status_t = B_GENERAL_ERROR_BASE + 3; +pub const B_BAD_TYPE: status_t = B_GENERAL_ERROR_BASE + 4; +pub const B_BAD_VALUE: status_t = B_GENERAL_ERROR_BASE + 5; +pub const B_MISMATCHED_VALUES: status_t = B_GENERAL_ERROR_BASE + 6; +pub const B_NAME_NOT_FOUND: status_t = B_GENERAL_ERROR_BASE + 7; +pub const B_NAME_IN_USE: status_t = B_GENERAL_ERROR_BASE + 8; +pub const B_TIMED_OUT: status_t = B_GENERAL_ERROR_BASE + 9; +pub const B_INTERRUPTED: status_t = B_GENERAL_ERROR_BASE + 10; +pub const B_WOULD_BLOCK: status_t = B_GENERAL_ERROR_BASE + 11; +pub const B_CANCELED: status_t = B_GENERAL_ERROR_BASE + 12; +pub const B_NO_INIT: status_t = B_GENERAL_ERROR_BASE + 13; +pub const B_NOT_INITIALIZED: status_t = B_GENERAL_ERROR_BASE + 13; +pub const B_BUSY: status_t = B_GENERAL_ERROR_BASE + 14; +pub const B_NOT_ALLOWED: status_t = B_GENERAL_ERROR_BASE + 15; +pub const B_BAD_DATA: status_t = B_GENERAL_ERROR_BASE + 16; +pub const B_DONT_DO_THAT: status_t = B_GENERAL_ERROR_BASE + 17; + +pub const B_ERROR: status_t = -1; +pub const B_OK: status_t = 0; +pub const B_NO_ERROR: status_t = 0; + +// Kernel kit errors +pub const B_BAD_SEM_ID: status_t = B_OS_ERROR_BASE + 0; +pub const B_NO_MORE_SEMS: status_t = B_OS_ERROR_BASE + 1; + +pub const B_BAD_THREAD_ID: status_t = B_OS_ERROR_BASE + 0x100; +pub const B_NO_MORE_THREADS: status_t = B_OS_ERROR_BASE + 0x101; +pub const B_BAD_THREAD_STATE: status_t = B_OS_ERROR_BASE + 0x102; +pub const B_BAD_TEAM_ID: status_t = B_OS_ERROR_BASE + 0x103; +pub const B_NO_MORE_TEAMS: status_t = B_OS_ERROR_BASE + 0x104; + +pub const B_BAD_PORT_ID: status_t = B_OS_ERROR_BASE + 0x200; +pub const B_NO_MORE_PORTS: status_t = B_OS_ERROR_BASE + 0x201; + +pub const B_BAD_IMAGE_ID: status_t = B_OS_ERROR_BASE + 0x300; +pub const B_BAD_ADDRESS: status_t = B_OS_ERROR_BASE + 0x301; +pub const B_NOT_AN_EXECUTABLE: status_t = B_OS_ERROR_BASE + 0x302; +pub const B_MISSING_LIBRARY: status_t = B_OS_ERROR_BASE + 0x303; +pub const B_MISSING_SYMBOL: status_t = B_OS_ERROR_BASE + 0x304; +pub const B_UNKNOWN_EXECUTABLE: status_t = B_OS_ERROR_BASE + 0x305; +pub const B_LEGACY_EXECUTABLE: status_t = B_OS_ERROR_BASE + 0x306; + +pub const B_DEBUGGER_ALREADY_INSTALLED: status_t = B_OS_ERROR_BASE + 0x400; + +// Application kit errors +pub const B_BAD_REPLY: status_t = B_APP_ERROR_BASE + 0; +pub const B_DUPLICATE_REPLY: status_t = B_APP_ERROR_BASE + 1; +pub const B_MESSAGE_TO_SELF: status_t = B_APP_ERROR_BASE + 2; +pub const B_BAD_HANDLER: status_t = B_APP_ERROR_BASE + 3; +pub const B_ALREADY_RUNNING: status_t = B_APP_ERROR_BASE + 4; +pub const B_LAUNCH_FAILED: status_t = B_APP_ERROR_BASE + 5; +pub const B_AMBIGUOUS_APP_LAUNCH: status_t = B_APP_ERROR_BASE + 6; +pub const B_UNKNOWN_MIME_TYPE: status_t = B_APP_ERROR_BASE + 7; +pub const B_BAD_SCRIPT_SYNTAX: status_t = B_APP_ERROR_BASE + 8; +pub const B_LAUNCH_FAILED_NO_RESOLVE_LINK: status_t = B_APP_ERROR_BASE + 9; +pub const B_LAUNCH_FAILED_EXECUTABLE: status_t = B_APP_ERROR_BASE + 10; +pub const B_LAUNCH_FAILED_APP_NOT_FOUND: status_t = B_APP_ERROR_BASE + 11; +pub const B_LAUNCH_FAILED_APP_IN_TRASH: status_t = B_APP_ERROR_BASE + 12; +pub const B_LAUNCH_FAILED_NO_PREFERRED_APP: status_t = B_APP_ERROR_BASE + 13; +pub const B_LAUNCH_FAILED_FILES_APP_NOT_FOUND: status_t = B_APP_ERROR_BASE + 14; +pub const B_BAD_MIME_SNIFFER_RULE: status_t = B_APP_ERROR_BASE + 15; +pub const B_NOT_A_MESSAGE: status_t = B_APP_ERROR_BASE + 16; +pub const B_SHUTDOWN_CANCELLED: status_t = B_APP_ERROR_BASE + 17; +pub const B_SHUTTING_DOWN: status_t = B_APP_ERROR_BASE + 18; + +// Storage kit errors +pub const B_FILE_ERROR: status_t = B_STORAGE_ERROR_BASE + 0; +pub const B_FILE_EXISTS: status_t = B_STORAGE_ERROR_BASE + 2; +pub const B_ENTRY_NOT_FOUND: status_t = B_STORAGE_ERROR_BASE + 3; +pub const B_NAME_TOO_LONG: status_t = B_STORAGE_ERROR_BASE + 4; +pub const B_NOT_A_DIRECTORY: status_t = B_STORAGE_ERROR_BASE + 5; +pub const B_DIRECTORY_NOT_EMPTY: status_t = B_STORAGE_ERROR_BASE + 6; +pub const B_DEVICE_FULL: status_t = B_STORAGE_ERROR_BASE + 7; +pub const B_READ_ONLY_DEVICE: status_t = B_STORAGE_ERROR_BASE + 8; +pub const B_IS_A_DIRECTORY: status_t = B_STORAGE_ERROR_BASE + 9; +pub const B_NO_MORE_FDS: status_t = B_STORAGE_ERROR_BASE + 10; +pub const B_CROSS_DEVICE_LINK: status_t = B_STORAGE_ERROR_BASE + 11; +pub const B_LINK_LIMIT: status_t = B_STORAGE_ERROR_BASE + 12; +pub const B_BUSTED_PIPE: status_t = B_STORAGE_ERROR_BASE + 13; +pub const B_UNSUPPORTED: status_t = B_STORAGE_ERROR_BASE + 14; +pub const B_PARTITION_TOO_SMALL: status_t = B_STORAGE_ERROR_BASE + 15; +pub const B_PARTIAL_READ: status_t = B_STORAGE_ERROR_BASE + 16; +pub const B_PARTIAL_WRITE: status_t = B_STORAGE_ERROR_BASE + 17; + +// Mapped posix errors +pub const B_BUFFER_OVERFLOW: status_t = ::EOVERFLOW; +pub const B_TOO_MANY_ARGS: status_t = ::E2BIG; +pub const B_FILE_TOO_LARGE: status_t = ::EFBIG; +pub const B_RESULT_NOT_REPRESENTABLE: status_t = ::ERANGE; +pub const B_DEVICE_NOT_FOUND: status_t = ::ENODEV; +pub const B_NOT_SUPPORTED: status_t = ::EOPNOTSUPP; + +// Media kit errors +pub const B_STREAM_NOT_FOUND: status_t = B_MEDIA_ERROR_BASE + 0; +pub const B_SERVER_NOT_FOUND: status_t = B_MEDIA_ERROR_BASE + 1; +pub const B_RESOURCE_NOT_FOUND: status_t = B_MEDIA_ERROR_BASE + 2; +pub const B_RESOURCE_UNAVAILABLE: status_t = B_MEDIA_ERROR_BASE + 3; +pub const B_BAD_SUBSCRIBER: status_t = B_MEDIA_ERROR_BASE + 4; +pub const B_SUBSCRIBER_NOT_ENTERED: status_t = B_MEDIA_ERROR_BASE + 5; +pub const B_BUFFER_NOT_AVAILABLE: status_t = B_MEDIA_ERROR_BASE + 6; +pub const B_LAST_BUFFER_ERROR: status_t = B_MEDIA_ERROR_BASE + 7; + +pub const B_MEDIA_SYSTEM_FAILURE: status_t = B_MEDIA_ERROR_BASE + 100; +pub const B_MEDIA_BAD_NODE: status_t = B_MEDIA_ERROR_BASE + 101; +pub const B_MEDIA_NODE_BUSY: status_t = B_MEDIA_ERROR_BASE + 102; +pub const B_MEDIA_BAD_FORMAT: status_t = B_MEDIA_ERROR_BASE + 103; +pub const B_MEDIA_BAD_BUFFER: status_t = B_MEDIA_ERROR_BASE + 104; +pub const B_MEDIA_TOO_MANY_NODES: status_t = B_MEDIA_ERROR_BASE + 105; +pub const B_MEDIA_TOO_MANY_BUFFERS: status_t = B_MEDIA_ERROR_BASE + 106; +pub const B_MEDIA_NODE_ALREADY_EXISTS: status_t = B_MEDIA_ERROR_BASE + 107; +pub const B_MEDIA_BUFFER_ALREADY_EXISTS: status_t = B_MEDIA_ERROR_BASE + 108; +pub const B_MEDIA_CANNOT_SEEK: status_t = B_MEDIA_ERROR_BASE + 109; +pub const B_MEDIA_CANNOT_CHANGE_RUN_MODE: status_t = B_MEDIA_ERROR_BASE + 110; +pub const B_MEDIA_APP_ALREADY_REGISTERED: status_t = B_MEDIA_ERROR_BASE + 111; +pub const B_MEDIA_APP_NOT_REGISTERED: status_t = B_MEDIA_ERROR_BASE + 112; +pub const B_MEDIA_CANNOT_RECLAIM_BUFFERS: status_t = B_MEDIA_ERROR_BASE + 113; +pub const B_MEDIA_BUFFERS_NOT_RECLAIMED: status_t = B_MEDIA_ERROR_BASE + 114; +pub const B_MEDIA_TIME_SOURCE_STOPPED: status_t = B_MEDIA_ERROR_BASE + 115; +pub const B_MEDIA_TIME_SOURCE_BUSY: status_t = B_MEDIA_ERROR_BASE + 116; +pub const B_MEDIA_BAD_SOURCE: status_t = B_MEDIA_ERROR_BASE + 117; +pub const B_MEDIA_BAD_DESTINATION: status_t = B_MEDIA_ERROR_BASE + 118; +pub const B_MEDIA_ALREADY_CONNECTED: status_t = B_MEDIA_ERROR_BASE + 119; +pub const B_MEDIA_NOT_CONNECTED: status_t = B_MEDIA_ERROR_BASE + 120; +pub const B_MEDIA_BAD_CLIP_FORMAT: status_t = B_MEDIA_ERROR_BASE + 121; +pub const B_MEDIA_ADDON_FAILED: status_t = B_MEDIA_ERROR_BASE + 122; +pub const B_MEDIA_ADDON_DISABLED: status_t = B_MEDIA_ERROR_BASE + 123; +pub const B_MEDIA_CHANGE_IN_PROGRESS: status_t = B_MEDIA_ERROR_BASE + 124; +pub const B_MEDIA_STALE_CHANGE_COUNT: status_t = B_MEDIA_ERROR_BASE + 125; +pub const B_MEDIA_ADDON_RESTRICTED: status_t = B_MEDIA_ERROR_BASE + 126; +pub const B_MEDIA_NO_HANDLER: status_t = B_MEDIA_ERROR_BASE + 127; +pub const B_MEDIA_DUPLICATE_FORMAT: status_t = B_MEDIA_ERROR_BASE + 128; +pub const B_MEDIA_REALTIME_DISABLED: status_t = B_MEDIA_ERROR_BASE + 129; +pub const B_MEDIA_REALTIME_UNAVAILABLE: status_t = B_MEDIA_ERROR_BASE + 130; + +// Mail kit errors +pub const B_MAIL_NO_DAEMON: status_t = B_MAIL_ERROR_BASE + 0; +pub const B_MAIL_UNKNOWN_USER: status_t = B_MAIL_ERROR_BASE + 1; +pub const B_MAIL_WRONG_PASSWORD: status_t = B_MAIL_ERROR_BASE + 2; +pub const B_MAIL_UNKNOWN_HOST: status_t = B_MAIL_ERROR_BASE + 3; +pub const B_MAIL_ACCESS_ERROR: status_t = B_MAIL_ERROR_BASE + 4; +pub const B_MAIL_UNKNOWN_FIELD: status_t = B_MAIL_ERROR_BASE + 5; +pub const B_MAIL_NO_RECIPIENT: status_t = B_MAIL_ERROR_BASE + 6; +pub const B_MAIL_INVALID_MAIL: status_t = B_MAIL_ERROR_BASE + 7; + +// Print kit errors +pub const B_NO_PRINT_SERVER: status_t = B_PRINT_ERROR_BASE + 0; + +// Device kit errors +pub const B_DEV_INVALID_IOCTL: status_t = B_DEVICE_ERROR_BASE + 0; +pub const B_DEV_NO_MEMORY: status_t = B_DEVICE_ERROR_BASE + 1; +pub const B_DEV_BAD_DRIVE_NUM: status_t = B_DEVICE_ERROR_BASE + 2; +pub const B_DEV_NO_MEDIA: status_t = B_DEVICE_ERROR_BASE + 3; +pub const B_DEV_UNREADABLE: status_t = B_DEVICE_ERROR_BASE + 4; +pub const B_DEV_FORMAT_ERROR: status_t = B_DEVICE_ERROR_BASE + 5; +pub const B_DEV_TIMEOUT: status_t = B_DEVICE_ERROR_BASE + 6; +pub const B_DEV_RECALIBRATE_ERROR: status_t = B_DEVICE_ERROR_BASE + 7; +pub const B_DEV_SEEK_ERROR: status_t = B_DEVICE_ERROR_BASE + 8; +pub const B_DEV_ID_ERROR: status_t = B_DEVICE_ERROR_BASE + 9; +pub const B_DEV_READ_ERROR: status_t = B_DEVICE_ERROR_BASE + 10; +pub const B_DEV_WRITE_ERROR: status_t = B_DEVICE_ERROR_BASE + 11; +pub const B_DEV_NOT_READY: status_t = B_DEVICE_ERROR_BASE + 12; +pub const B_DEV_MEDIA_CHANGED: status_t = B_DEVICE_ERROR_BASE + 13; +pub const B_DEV_MEDIA_CHANGE_REQUESTED: status_t = B_DEVICE_ERROR_BASE + 14; +pub const B_DEV_RESOURCE_CONFLICT: status_t = B_DEVICE_ERROR_BASE + 15; +pub const B_DEV_CONFIGURATION_ERROR: status_t = B_DEVICE_ERROR_BASE + 16; +pub const B_DEV_DISABLED_BY_USER: status_t = B_DEVICE_ERROR_BASE + 17; +pub const B_DEV_DOOR_OPEN: status_t = B_DEVICE_ERROR_BASE + 18; + +pub const B_DEV_INVALID_PIPE: status_t = B_DEVICE_ERROR_BASE + 19; +pub const B_DEV_CRC_ERROR: status_t = B_DEVICE_ERROR_BASE + 20; +pub const B_DEV_STALLED: status_t = B_DEVICE_ERROR_BASE + 21; +pub const B_DEV_BAD_PID: status_t = B_DEVICE_ERROR_BASE + 22; +pub const B_DEV_UNEXPECTED_PID: status_t = B_DEVICE_ERROR_BASE + 23; +pub const B_DEV_DATA_OVERRUN: status_t = B_DEVICE_ERROR_BASE + 24; +pub const B_DEV_DATA_UNDERRUN: status_t = B_DEVICE_ERROR_BASE + 25; +pub const B_DEV_FIFO_OVERRUN: status_t = B_DEVICE_ERROR_BASE + 26; +pub const B_DEV_FIFO_UNDERRUN: status_t = B_DEVICE_ERROR_BASE + 27; +pub const B_DEV_PENDING: status_t = B_DEVICE_ERROR_BASE + 28; +pub const B_DEV_MULTIPLE_ERRORS: status_t = B_DEVICE_ERROR_BASE + 29; +pub const B_DEV_TOO_LATE: status_t = B_DEVICE_ERROR_BASE + 30; + +// translation kit errors +pub const B_TRANSLATION_BASE_ERROR: status_t = B_TRANSLATION_ERROR_BASE + 0; +pub const B_NO_TRANSLATOR: status_t = B_TRANSLATION_ERROR_BASE + 1; +pub const B_ILLEGAL_DATA: status_t = B_TRANSLATION_ERROR_BASE + 2; + +// support/TypeConstants.h +pub const B_AFFINE_TRANSFORM_TYPE: u32 = haiku_constant!('A', 'M', 'T', 'X'); +pub const B_ALIGNMENT_TYPE: u32 = haiku_constant!('A', 'L', 'G', 'N'); +pub const B_ANY_TYPE: u32 = haiku_constant!('A', 'N', 'Y', 'T'); +pub const B_ATOM_TYPE: u32 = haiku_constant!('A', 'T', 'O', 'M'); +pub const B_ATOMREF_TYPE: u32 = haiku_constant!('A', 'T', 'M', 'R'); +pub const B_BOOL_TYPE: u32 = haiku_constant!('B', 'O', 'O', 'L'); +pub const B_CHAR_TYPE: u32 = haiku_constant!('C', 'H', 'A', 'R'); +pub const B_COLOR_8_BIT_TYPE: u32 = haiku_constant!('C', 'L', 'R', 'B'); +pub const B_DOUBLE_TYPE: u32 = haiku_constant!('D', 'B', 'L', 'E'); +pub const B_FLOAT_TYPE: u32 = haiku_constant!('F', 'L', 'O', 'T'); +pub const B_GRAYSCALE_8_BIT_TYPE: u32 = haiku_constant!('G', 'R', 'Y', 'B'); +pub const B_INT16_TYPE: u32 = haiku_constant!('S', 'H', 'R', 'T'); +pub const B_INT32_TYPE: u32 = haiku_constant!('L', 'O', 'N', 'G'); +pub const B_INT64_TYPE: u32 = haiku_constant!('L', 'L', 'N', 'G'); +pub const B_INT8_TYPE: u32 = haiku_constant!('B', 'Y', 'T', 'E'); +pub const B_LARGE_ICON_TYPE: u32 = haiku_constant!('I', 'C', 'O', 'N'); +pub const B_MEDIA_PARAMETER_GROUP_TYPE: u32 = haiku_constant!('B', 'M', 'C', 'G'); +pub const B_MEDIA_PARAMETER_TYPE: u32 = haiku_constant!('B', 'M', 'C', 'T'); +pub const B_MEDIA_PARAMETER_WEB_TYPE: u32 = haiku_constant!('B', 'M', 'C', 'W'); +pub const B_MESSAGE_TYPE: u32 = haiku_constant!('M', 'S', 'G', 'G'); +pub const B_MESSENGER_TYPE: u32 = haiku_constant!('M', 'S', 'N', 'G'); +pub const B_MIME_TYPE: u32 = haiku_constant!('M', 'I', 'M', 'E'); +pub const B_MINI_ICON_TYPE: u32 = haiku_constant!('M', 'I', 'C', 'N'); +pub const B_MONOCHROME_1_BIT_TYPE: u32 = haiku_constant!('M', 'N', 'O', 'B'); +pub const B_OBJECT_TYPE: u32 = haiku_constant!('O', 'P', 'T', 'R'); +pub const B_OFF_T_TYPE: u32 = haiku_constant!('O', 'F', 'F', 'T'); +pub const B_PATTERN_TYPE: u32 = haiku_constant!('P', 'A', 'T', 'N'); +pub const B_POINTER_TYPE: u32 = haiku_constant!('P', 'N', 'T', 'R'); +pub const B_POINT_TYPE: u32 = haiku_constant!('B', 'P', 'N', 'T'); +pub const B_PROPERTY_INFO_TYPE: u32 = haiku_constant!('S', 'C', 'T', 'D'); +pub const B_RAW_TYPE: u32 = haiku_constant!('R', 'A', 'W', 'T'); +pub const B_RECT_TYPE: u32 = haiku_constant!('R', 'E', 'C', 'T'); +pub const B_REF_TYPE: u32 = haiku_constant!('R', 'R', 'E', 'F'); +pub const B_RGB_32_BIT_TYPE: u32 = haiku_constant!('R', 'G', 'B', 'B'); +pub const B_RGB_COLOR_TYPE: u32 = haiku_constant!('R', 'G', 'B', 'C'); +pub const B_SIZE_TYPE: u32 = haiku_constant!('S', 'I', 'Z', 'E'); +pub const B_SIZE_T_TYPE: u32 = haiku_constant!('S', 'I', 'Z', 'T'); +pub const B_SSIZE_T_TYPE: u32 = haiku_constant!('S', 'S', 'Z', 'T'); +pub const B_STRING_TYPE: u32 = haiku_constant!('C', 'S', 'T', 'R'); +pub const B_STRING_LIST_TYPE: u32 = haiku_constant!('S', 'T', 'R', 'L'); +pub const B_TIME_TYPE: u32 = haiku_constant!('T', 'I', 'M', 'E'); +pub const B_UINT16_TYPE: u32 = haiku_constant!('U', 'S', 'H', 'T'); +pub const B_UINT32_TYPE: u32 = haiku_constant!('U', 'L', 'N', 'G'); +pub const B_UINT64_TYPE: u32 = haiku_constant!('U', 'L', 'L', 'G'); +pub const B_UINT8_TYPE: u32 = haiku_constant!('U', 'B', 'Y', 'T'); +pub const B_VECTOR_ICON_TYPE: u32 = haiku_constant!('V', 'I', 'C', 'N'); +pub const B_XATTR_TYPE: u32 = haiku_constant!('X', 'A', 'T', 'R'); +pub const B_NETWORK_ADDRESS_TYPE: u32 = haiku_constant!('N', 'W', 'A', 'D'); +pub const B_MIME_STRING_TYPE: u32 = haiku_constant!('M', 'I', 'M', 'S'); +pub const B_ASCII_TYPE: u32 = haiku_constant!('T', 'E', 'X', 'T'); + +extern "C" { + // kernel/OS.h + pub fn create_area( + name: *const ::c_char, + startAddress: *mut *mut ::c_void, + addressSpec: u32, + size: usize, + lock: u32, + protection: u32, + ) -> area_id; + pub fn clone_area( + name: *const ::c_char, + destAddress: *mut *mut ::c_void, + addressSpec: u32, + protection: u32, + source: area_id, + ) -> area_id; + pub fn find_area(name: *const ::c_char) -> area_id; + pub fn area_for(address: *mut ::c_void) -> area_id; + pub fn delete_area(id: area_id) -> status_t; + pub fn resize_area(id: area_id, newSize: usize) -> status_t; + pub fn set_area_protection(id: area_id, newProtection: u32) -> status_t; + pub fn _get_area_info(id: area_id, areaInfo: *mut area_info, size: usize) -> status_t; + pub fn _get_next_area_info( + team: team_id, + cookie: *mut isize, + areaInfo: *mut area_info, + size: usize, + ) -> status_t; + + pub fn create_port(capacity: i32, name: *const ::c_char) -> port_id; + pub fn find_port(name: *const ::c_char) -> port_id; + pub fn read_port( + port: port_id, + code: *mut i32, + buffer: *mut ::c_void, + bufferSize: ::size_t, + ) -> ::ssize_t; + pub fn read_port_etc( + port: port_id, + code: *mut i32, + buffer: *mut ::c_void, + bufferSize: ::size_t, + flags: u32, + timeout: bigtime_t, + ) -> ::ssize_t; + pub fn write_port( + port: port_id, + code: i32, + buffer: *const ::c_void, + bufferSize: ::size_t, + ) -> status_t; + pub fn write_port_etc( + port: port_id, + code: i32, + buffer: *const ::c_void, + bufferSize: ::size_t, + flags: u32, + timeout: bigtime_t, + ) -> status_t; + pub fn close_port(port: port_id) -> status_t; + pub fn delete_port(port: port_id) -> status_t; + pub fn port_buffer_size(port: port_id) -> ::ssize_t; + pub fn port_buffer_size_etc(port: port_id, flags: u32, timeout: bigtime_t) -> ::ssize_t; + pub fn port_count(port: port_id) -> ::ssize_t; + pub fn set_port_owner(port: port_id, team: team_id) -> status_t; + + pub fn _get_port_info(port: port_id, buf: *mut port_info, portInfoSize: ::size_t) -> status_t; + pub fn _get_next_port_info( + port: port_id, + cookie: *mut i32, + portInfo: *mut port_info, + portInfoSize: ::size_t, + ) -> status_t; + pub fn _get_port_message_info_etc( + port: port_id, + info: *mut port_message_info, + infoSize: ::size_t, + flags: u32, + timeout: bigtime_t, + ) -> status_t; + + pub fn create_sem(count: i32, name: *const ::c_char) -> sem_id; + pub fn delete_sem(id: sem_id) -> status_t; + pub fn acquire_sem(id: sem_id) -> status_t; + pub fn acquire_sem_etc(id: sem_id, count: i32, flags: u32, timeout: bigtime_t) -> status_t; + pub fn release_sem(id: sem_id) -> status_t; + pub fn release_sem_etc(id: sem_id, count: i32, flags: u32) -> status_t; + pub fn switch_sem(semToBeReleased: sem_id, id: sem_id) -> status_t; + pub fn switch_sem_etc( + semToBeReleased: sem_id, + id: sem_id, + count: i32, + flags: u32, + timeout: bigtime_t, + ) -> status_t; + pub fn get_sem_count(id: sem_id, threadCount: *mut i32) -> status_t; + pub fn set_sem_owner(id: sem_id, team: team_id) -> status_t; + pub fn _get_sem_info(id: sem_id, info: *mut sem_info, infoSize: ::size_t) -> status_t; + pub fn _get_next_sem_info( + team: team_id, + cookie: *mut i32, + info: *mut sem_info, + infoSize: ::size_t, + ) -> status_t; + + pub fn kill_team(team: team_id) -> status_t; + pub fn _get_team_info(team: team_id, info: *mut team_info, size: ::size_t) -> status_t; + pub fn _get_next_team_info(cookie: *mut i32, info: *mut team_info, size: ::size_t) -> status_t; + + pub fn spawn_thread( + func: thread_func, + name: *const ::c_char, + priority: i32, + data: *mut ::c_void, + ) -> thread_id; + pub fn kill_thread(thread: thread_id) -> status_t; + pub fn resume_thread(thread: thread_id) -> status_t; + pub fn suspend_thread(thread: thread_id) -> status_t; + + pub fn rename_thread(thread: thread_id, newName: *const ::c_char) -> status_t; + pub fn set_thread_priority(thread: thread_id, newPriority: i32) -> status_t; + pub fn suggest_thread_priority( + what: u32, + period: i32, + jitter: ::bigtime_t, + length: ::bigtime_t, + ) -> i32; + pub fn estimate_max_scheduling_latency(th: ::thread_id) -> ::bigtime_t; + pub fn exit_thread(status: status_t); + pub fn wait_for_thread(thread: thread_id, returnValue: *mut status_t) -> status_t; + pub fn on_exit_thread(callback: extern "C" fn(*mut ::c_void), data: *mut ::c_void) -> status_t; + + pub fn find_thread(name: *const ::c_char) -> thread_id; + + pub fn get_scheduler_mode() -> i32; + pub fn set_scheduler_mode(mode: i32) -> status_t; + + pub fn send_data( + thread: thread_id, + code: i32, + buffer: *const ::c_void, + bufferSize: ::size_t, + ) -> status_t; + pub fn receive_data(sender: *mut thread_id, buffer: *mut ::c_void, bufferSize: ::size_t) + -> i32; + pub fn has_data(thread: thread_id) -> bool; + + pub fn snooze(amount: bigtime_t) -> status_t; + pub fn snooze_etc(amount: bigtime_t, timeBase: ::c_int, flags: u32) -> status_t; + pub fn snooze_until(time: bigtime_t, timeBase: ::c_int) -> status_t; + + pub fn _get_thread_info(id: thread_id, info: *mut thread_info, size: ::size_t) -> status_t; + pub fn _get_next_thread_info( + team: team_id, + cookie: *mut i32, + info: *mut thread_info, + size: ::size_t, + ) -> status_t; + + pub fn get_pthread_thread_id(thread: ::pthread_t) -> thread_id; + + pub fn _get_team_usage_info( + team: team_id, + who: i32, + info: *mut team_usage_info, + size: ::size_t, + ) -> status_t; + + pub fn real_time_clock() -> ::c_ulong; + pub fn set_real_time_clock(secsSinceJan1st1970: ::c_ulong); + pub fn real_time_clock_usecs() -> bigtime_t; + pub fn system_time() -> bigtime_t; + pub fn system_time_nsecs() -> nanotime_t; + // set_timezone() is deprecated and a no-op + + pub fn set_alarm(when: bigtime_t, flags: u32) -> bigtime_t; + pub fn debugger(message: *const ::c_char); + pub fn disable_debugger(state: ::c_int) -> ::c_int; + + pub fn get_system_info(info: *mut system_info) -> status_t; + pub fn _get_cpu_info_etc( + firstCPU: u32, + cpuCount: u32, + info: *mut cpu_info, + size: ::size_t, + ) -> status_t; + pub fn is_computer_on() -> i32; + pub fn is_computer_on_fire() -> ::c_double; + pub fn send_signal(threadID: thread_id, signal: ::c_uint) -> ::c_int; + pub fn set_signal_stack(base: *mut ::c_void, size: ::size_t); + + pub fn wait_for_objects(infos: *mut object_wait_info, numInfos: ::c_int) -> ::ssize_t; + pub fn wait_for_objects_etc( + infos: *mut object_wait_info, + numInfos: ::c_int, + flags: u32, + timeout: bigtime_t, + ) -> ::ssize_t; + + // kernel/fs_attr.h + pub fn fs_read_attr( + fd: ::c_int, + attribute: *const ::c_char, + type_: u32, + pos: ::off_t, + buffer: *mut ::c_void, + readBytes: ::size_t, + ) -> ::ssize_t; + pub fn fs_write_attr( + fd: ::c_int, + attribute: *const ::c_char, + type_: u32, + pos: ::off_t, + buffer: *const ::c_void, + writeBytes: ::size_t, + ) -> ::ssize_t; + pub fn fs_remove_attr(fd: ::c_int, attribute: *const ::c_char) -> ::c_int; + pub fn fs_stat_attr( + fd: ::c_int, + attribute: *const ::c_char, + attrInfo: *mut attr_info, + ) -> ::c_int; + + pub fn fs_open_attr( + path: *const ::c_char, + attribute: *const ::c_char, + type_: u32, + openMode: ::c_int, + ) -> ::c_int; + pub fn fs_fopen_attr( + fd: ::c_int, + attribute: *const ::c_char, + type_: u32, + openMode: ::c_int, + ) -> ::c_int; + pub fn fs_close_attr(fd: ::c_int) -> ::c_int; + + pub fn fs_open_attr_dir(path: *const ::c_char) -> *mut ::DIR; + pub fn fs_lopen_attr_dir(path: *const ::c_char) -> *mut ::DIR; + pub fn fs_fopen_attr_dir(fd: ::c_int) -> *mut ::DIR; + pub fn fs_close_attr_dir(dir: *mut ::DIR) -> ::c_int; + pub fn fs_read_attr_dir(dir: *mut ::DIR) -> *mut ::dirent; + pub fn fs_rewind_attr_dir(dir: *mut ::DIR); + + // kernel/fs_image.h + pub fn fs_create_index( + device: ::dev_t, + name: *const ::c_char, + type_: u32, + flags: u32, + ) -> ::c_int; + pub fn fs_remove_index(device: ::dev_t, name: *const ::c_char) -> ::c_int; + pub fn fs_stat_index( + device: ::dev_t, + name: *const ::c_char, + indexInfo: *mut index_info, + ) -> ::c_int; + + pub fn fs_open_index_dir(device: ::dev_t) -> *mut ::DIR; + pub fn fs_close_index_dir(indexDirectory: *mut ::DIR) -> ::c_int; + pub fn fs_read_index_dir(indexDirectory: *mut ::DIR) -> *mut ::dirent; + pub fn fs_rewind_index_dir(indexDirectory: *mut ::DIR); + + // kernel/fs_info.h + pub fn dev_for_path(path: *const ::c_char) -> ::dev_t; + pub fn next_dev(pos: *mut i32) -> ::dev_t; + pub fn fs_stat_dev(dev: ::dev_t, info: *mut fs_info) -> ::c_int; + + // kernel/fs_query.h + pub fn fs_open_query(device: ::dev_t, query: *const ::c_char, flags: u32) -> *mut ::DIR; + pub fn fs_open_live_query( + device: ::dev_t, + query: *const ::c_char, + flags: u32, + port: port_id, + token: i32, + ) -> *mut ::DIR; + pub fn fs_close_query(d: *mut ::DIR) -> ::c_int; + pub fn fs_read_query(d: *mut ::DIR) -> *mut ::dirent; + pub fn get_path_for_dirent(dent: *mut ::dirent, buf: *mut ::c_char, len: ::size_t) -> status_t; + + // kernel/fs_volume.h + pub fn fs_mount_volume( + where_: *const ::c_char, + device: *const ::c_char, + filesystem: *const ::c_char, + flags: u32, + parameters: *const ::c_char, + ) -> ::dev_t; + pub fn fs_unmount_volume(path: *const ::c_char, flags: u32) -> status_t; + + // kernel/image.h + pub fn load_image( + argc: i32, + argv: *mut *const ::c_char, + environ: *mut *const ::c_char, + ) -> thread_id; + pub fn load_add_on(path: *const ::c_char) -> image_id; + pub fn unload_add_on(image: image_id) -> status_t; + pub fn get_image_symbol( + image: image_id, + name: *const ::c_char, + symbolType: i32, + symbolLocation: *mut *mut ::c_void, + ) -> status_t; + pub fn get_nth_image_symbol( + image: image_id, + n: i32, + nameBuffer: *mut ::c_char, + nameLength: *mut i32, + symbolType: *mut i32, + symbolLocation: *mut *mut ::c_void, + ) -> status_t; + pub fn clear_caches(address: *mut ::c_void, length: ::size_t, flags: u32); + pub fn _get_image_info(image: image_id, info: *mut image_info, size: ::size_t) -> status_t; + pub fn _get_next_image_info( + team: team_id, + cookie: *mut i32, + info: *mut image_info, + size: ::size_t, + ) -> status_t; + pub fn find_path( + codePointer: *const ::c_void, + baseDirectory: path_base_directory, + subPath: *const ::c_char, + pathBuffer: *mut ::c_char, + bufferSize: usize, + ) -> status_t; + pub fn find_path_etc( + codePointer: *const ::c_void, + dependency: *const ::c_char, + architecture: *const ::c_char, + baseDirectory: path_base_directory, + subPath: *const ::c_char, + flags: u32, + pathBuffer: *mut ::c_char, + bufferSize: ::size_t, + ) -> status_t; + pub fn find_path_for_path( + path: *const ::c_char, + baseDirectory: path_base_directory, + subPath: *const ::c_char, + pathBuffer: *mut ::c_char, + bufferSize: ::size_t, + ) -> status_t; + pub fn find_path_for_path_etc( + path: *const ::c_char, + dependency: *const ::c_char, + architectur: *const ::c_char, + baseDirectory: path_base_directory, + subPath: *const ::c_char, + flags: u32, + pathBuffer: *mut ::c_char, + bufferSize: ::size_t, + ) -> status_t; + pub fn find_paths( + baseDirectory: path_base_directory, + subPath: *const ::c_char, + _paths: *mut *mut *mut ::c_char, + pathCount: *mut ::size_t, + ) -> status_t; + pub fn find_paths_etc( + architecture: *const ::c_char, + baseDirectory: path_base_directory, + subPath: *const ::c_char, + flags: u32, + _paths: *mut *mut *mut ::c_char, + pathCount: *mut ::size_t, + ) -> status_t; + pub fn find_directory( + which: directory_which, + volume: ::dev_t, + createIt: bool, + pathString: *mut ::c_char, + length: i32, + ) -> status_t; +} + +cfg_if! { + if #[cfg(libc_union)] { + extern "C" { + pub fn get_cpuid(info: *mut cpuid_info, eaxRegister: u32, cpuNum: u32) -> status_t; + } + } +} + +// The following functions are defined as macros in C/C++ +#[inline] +pub unsafe fn get_cpu_info(firstCPU: u32, cpuCount: u32, info: *mut cpu_info) -> status_t { + _get_cpu_info_etc( + firstCPU, + cpuCount, + info, + core::mem::size_of::() as ::size_t, + ) +} + +#[inline] +pub unsafe fn get_area_info(id: area_id, info: *mut area_info) -> status_t { + _get_area_info(id, info, core::mem::size_of::() as usize) +} + +#[inline] +pub unsafe fn get_next_area_info( + team: team_id, + cookie: *mut isize, + info: *mut area_info, +) -> status_t { + _get_next_area_info( + team, + cookie, + info, + core::mem::size_of::() as usize, + ) +} + +#[inline] +pub unsafe fn get_port_info(port: port_id, buf: *mut port_info) -> status_t { + _get_port_info(port, buf, core::mem::size_of::() as ::size_t) +} + +#[inline] +pub unsafe fn get_next_port_info( + port: port_id, + cookie: *mut i32, + portInfo: *mut port_info, +) -> status_t { + _get_next_port_info( + port, + cookie, + portInfo, + core::mem::size_of::() as ::size_t, + ) +} + +#[inline] +pub unsafe fn get_port_message_info_etc( + port: port_id, + info: *mut port_message_info, + flags: u32, + timeout: bigtime_t, +) -> status_t { + _get_port_message_info_etc( + port, + info, + core::mem::size_of::() as ::size_t, + flags, + timeout, + ) +} + +#[inline] +pub unsafe fn get_sem_info(id: sem_id, info: *mut sem_info) -> status_t { + _get_sem_info(id, info, core::mem::size_of::() as ::size_t) +} + +#[inline] +pub unsafe fn get_next_sem_info(team: team_id, cookie: *mut i32, info: *mut sem_info) -> status_t { + _get_next_sem_info( + team, + cookie, + info, + core::mem::size_of::() as ::size_t, + ) +} + +#[inline] +pub unsafe fn get_team_info(team: team_id, info: *mut team_info) -> status_t { + _get_team_info(team, info, core::mem::size_of::() as ::size_t) +} + +#[inline] +pub unsafe fn get_next_team_info(cookie: *mut i32, info: *mut team_info) -> status_t { + _get_next_team_info(cookie, info, core::mem::size_of::() as ::size_t) +} + +#[inline] +pub unsafe fn get_team_usage_info(team: team_id, who: i32, info: *mut team_usage_info) -> status_t { + _get_team_usage_info( + team, + who, + info, + core::mem::size_of::() as ::size_t, + ) +} + +#[inline] +pub unsafe fn get_thread_info(id: thread_id, info: *mut thread_info) -> status_t { + _get_thread_info(id, info, core::mem::size_of::() as ::size_t) +} + +#[inline] +pub unsafe fn get_next_thread_info( + team: team_id, + cookie: *mut i32, + info: *mut thread_info, +) -> status_t { + _get_next_thread_info( + team, + cookie, + info, + core::mem::size_of::() as ::size_t, + ) +} + +// kernel/image.h +#[inline] +pub unsafe fn get_image_info(image: image_id, info: *mut image_info) -> status_t { + _get_image_info(image, info, core::mem::size_of::() as ::size_t) +} + +#[inline] +pub unsafe fn get_next_image_info( + team: team_id, + cookie: *mut i32, + info: *mut image_info, +) -> status_t { + _get_next_image_info( + team, + cookie, + info, + core::mem::size_of::() as ::size_t, + ) +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/haiku/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/haiku/x86_64.rs new file mode 100644 index 000000000..1b0462f20 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/haiku/x86_64.rs @@ -0,0 +1,264 @@ +s_no_extra_traits! { + pub struct fpu_state { + pub control: ::c_ushort, + pub status: ::c_ushort, + pub tag: ::c_ushort, + pub opcode: ::c_ushort, + pub rip: ::c_ulong, + pub rdp: ::c_ulong, + pub mxcsr: ::c_uint, + pub mscsr_mask: ::c_uint, + pub _fpreg: [[::c_uchar; 8]; 16], + pub _xmm: [[::c_uchar; 16]; 16], + pub _reserved_416_511: [::c_uchar; 96], + } + + pub struct xstate_hdr { + pub bv: ::c_ulong, + pub xcomp_bv: ::c_ulong, + pub _reserved: [::c_uchar; 48], + } + + pub struct savefpu { + pub fp_fxsave: fpu_state, + pub fp_xstate: xstate_hdr, + pub _fp_ymm: [[::c_uchar; 16]; 16], + } + + pub struct mcontext_t { + pub rax: ::c_ulong, + pub rbx: ::c_ulong, + pub rcx: ::c_ulong, + pub rdx: ::c_ulong, + pub rdi: ::c_ulong, + pub rsi: ::c_ulong, + pub rbp: ::c_ulong, + pub r8: ::c_ulong, + pub r9: ::c_ulong, + pub r10: ::c_ulong, + pub r11: ::c_ulong, + pub r12: ::c_ulong, + pub r13: ::c_ulong, + pub r14: ::c_ulong, + pub r15: ::c_ulong, + pub rsp: ::c_ulong, + pub rip: ::c_ulong, + pub rflags: ::c_ulong, + pub fpu: savefpu, + } + + pub struct ucontext_t { + pub uc_link: *mut ucontext_t, + pub uc_sigmask: ::sigset_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for fpu_state { + fn eq(&self, other: &fpu_state) -> bool { + self.control == other.control + && self.status == other.status + && self.tag == other.tag + && self.opcode == other.opcode + && self.rip == other.rip + && self.rdp == other.rdp + && self.mxcsr == other.mxcsr + && self.mscsr_mask == other.mscsr_mask + && self._fpreg.iter().zip(other._fpreg.iter()).all(|(a, b)| a == b) + && self._xmm.iter().zip(other._xmm.iter()).all(|(a, b)| a == b) + && self._reserved_416_511. + iter(). + zip(other._reserved_416_511.iter()). + all(|(a, b)| a == b) + } + } + impl Eq for fpu_state {} + impl ::fmt::Debug for fpu_state { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("fpu_state") + .field("control", &self.control) + .field("status", &self.status) + .field("tag", &self.tag) + .field("opcode", &self.opcode) + .field("rip", &self.rip) + .field("rdp", &self.rdp) + .field("mxcsr", &self.mxcsr) + .field("mscsr_mask", &self.mscsr_mask) + // FIXME: .field("_fpreg", &self._fpreg) + // FIXME: .field("_xmm", &self._xmm) + // FIXME: .field("_reserved_416_511", &self._reserved_416_511) + .finish() + } + } + impl ::hash::Hash for fpu_state { + fn hash(&self, state: &mut H) { + self.control.hash(state); + self.status.hash(state); + self.tag.hash(state); + self.opcode.hash(state); + self.rip.hash(state); + self.rdp.hash(state); + self.mxcsr.hash(state); + self.mscsr_mask.hash(state); + self._fpreg.hash(state); + self._xmm.hash(state); + self._reserved_416_511.hash(state); + } + } + + impl PartialEq for xstate_hdr { + fn eq(&self, other: &xstate_hdr) -> bool { + self.bv == other.bv + && self.xcomp_bv == other.xcomp_bv + && self._reserved.iter().zip(other._reserved.iter()).all(|(a, b)| a == b) + } + } + impl Eq for xstate_hdr {} + impl ::fmt::Debug for xstate_hdr { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("xstate_hdr") + .field("bv", &self.bv) + .field("xcomp_bv", &self.xcomp_bv) + // FIXME: .field("_reserved", &field._reserved) + .finish() + } + } + impl ::hash::Hash for xstate_hdr { + fn hash(&self, state: &mut H) { + self.bv.hash(state); + self.xcomp_bv.hash(state); + self._reserved.hash(state); + } + } + + impl PartialEq for savefpu { + fn eq(&self, other: &savefpu) -> bool { + self.fp_fxsave == other.fp_fxsave + && self.fp_xstate == other.fp_xstate + && self._fp_ymm.iter().zip(other._fp_ymm.iter()).all(|(a, b)| a == b) + } + } + impl Eq for savefpu {} + impl ::fmt::Debug for savefpu { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("savefpu") + .field("fp_fxsave", &self.fp_fxsave) + .field("fp_xstate", &self.fp_xstate) + // FIXME: .field("_fp_ymm", &field._fp_ymm) + .finish() + } + } + impl ::hash::Hash for savefpu { + fn hash(&self, state: &mut H) { + self.fp_fxsave.hash(state); + self.fp_xstate.hash(state); + self._fp_ymm.hash(state); + } + } + + impl PartialEq for mcontext_t { + fn eq(&self, other: &mcontext_t) -> bool { + self.rax == other.rax + && self.rbx == other.rbx + && self.rbx == other.rbx + && self.rcx == other.rcx + && self.rdx == other.rdx + && self.rdi == other.rdi + && self.rsi == other.rsi + && self.r8 == other.r8 + && self.r9 == other.r9 + && self.r10 == other.r10 + && self.r11 == other.r11 + && self.r12 == other.r12 + && self.r13 == other.r13 + && self.r14 == other.r14 + && self.r15 == other.r15 + && self.rsp == other.rsp + && self.rip == other.rip + && self.rflags == other.rflags + && self.fpu == other.fpu + } + } + impl Eq for mcontext_t {} + impl ::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mcontext_t") + .field("rax", &self.rax) + .field("rbx", &self.rbx) + .field("rcx", &self.rcx) + .field("rdx", &self.rdx) + .field("rdi", &self.rdi) + .field("rsi", &self.rsi) + .field("rbp", &self.rbp) + .field("r8", &self.r8) + .field("r9", &self.r9) + .field("r10", &self.r10) + .field("r11", &self.r11) + .field("r12", &self.r12) + .field("r13", &self.r13) + .field("r14", &self.r14) + .field("r15", &self.r15) + .field("rsp", &self.rsp) + .field("rip", &self.rip) + .field("rflags", &self.rflags) + .field("fpu", &self.fpu) + .finish() + + } + } + impl ::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { + self.rax.hash(state); + self.rbx.hash(state); + self.rcx.hash(state); + self.rdx.hash(state); + self.rdi.hash(state); + self.rsi.hash(state); + self.rbp.hash(state); + self.r8.hash(state); + self.r9.hash(state); + self.r10.hash(state); + self.r11.hash(state); + self.r12.hash(state); + self.r13.hash(state); + self.r14.hash(state); + self.r15.hash(state); + self.rsp.hash(state); + self.rip.hash(state); + self.rflags.hash(state); + self.fpu.hash(state); + } + } + + impl PartialEq for ucontext_t { + fn eq(&self, other: &ucontext_t) -> bool { + self.uc_link == other.uc_link + && self.uc_sigmask == other.uc_sigmask + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + } + } + impl Eq for ucontext_t {} + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_link", &self.uc_link) + .field("uc_sigmask", &self.uc_sigmask) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .finish() + } + } + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_link.hash(state); + self.uc_sigmask.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + } + } + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/hermit/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/unix/hermit/aarch64.rs new file mode 100644 index 000000000..1a92e3b4f --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/hermit/aarch64.rs @@ -0,0 +1,2 @@ +pub type c_char = u8; +pub type wchar_t = u32; diff --git a/src/rust/vendor/libc/src/unix/hermit/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/hermit/mod.rs similarity index 100% rename from src/rust/vendor/libc/src/unix/hermit/mod.rs rename to src/rust/vendor/libc-0.2.146/src/unix/hermit/mod.rs diff --git a/src/rust/vendor/libc-0.2.146/src/unix/hermit/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/hermit/x86_64.rs new file mode 100644 index 000000000..76ec3ce82 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/hermit/x86_64.rs @@ -0,0 +1,2 @@ +pub type c_char = i8; +pub type wchar_t = i32; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/arm.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/arm.rs new file mode 100644 index 000000000..a062175ee --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/arm.rs @@ -0,0 +1,550 @@ +pub type c_char = u8; +pub type wchar_t = u32; +pub type greg_t = i32; +pub type mcontext_t = sigcontext; + +s! { + pub struct sigcontext { + pub trap_no: ::c_ulong, + pub error_code: ::c_ulong, + pub oldmask: ::c_ulong, + pub arm_r0: ::c_ulong, + pub arm_r1: ::c_ulong, + pub arm_r2: ::c_ulong, + pub arm_r3: ::c_ulong, + pub arm_r4: ::c_ulong, + pub arm_r5: ::c_ulong, + pub arm_r6: ::c_ulong, + pub arm_r7: ::c_ulong, + pub arm_r8: ::c_ulong, + pub arm_r9: ::c_ulong, + pub arm_r10: ::c_ulong, + pub arm_fp: ::c_ulong, + pub arm_ip: ::c_ulong, + pub arm_sp: ::c_ulong, + pub arm_lr: ::c_ulong, + pub arm_pc: ::c_ulong, + pub arm_cpsr: ::c_ulong, + pub fault_address: ::c_ulong, + } +} + +cfg_if! { + if #[cfg(libc_union)] { + s_no_extra_traits! { + pub struct __c_anonymous_uc_sigmask_with_padding { + pub uc_sigmask: ::sigset_t, + /* Android has a wrong (smaller) sigset_t on x86. */ + __padding_rt_sigset: u32, + } + + pub union __c_anonymous_uc_sigmask { + uc_sigmask: __c_anonymous_uc_sigmask_with_padding, + uc_sigmask64: ::sigset64_t, + } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask, + /* The kernel adds extra padding after uc_sigmask to match + * glibc sigset_t on ARM. */ + __padding: [c_char; 120], + __align: [::c_longlong; 0], + uc_regspace: [::c_ulong; 128], + } + } + + cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for __c_anonymous_uc_sigmask_with_padding { + fn eq( + &self, other: &__c_anonymous_uc_sigmask_with_padding + ) -> bool { + self.uc_sigmask == other.uc_sigmask + // Ignore padding + } + } + impl Eq for __c_anonymous_uc_sigmask_with_padding {} + impl ::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uc_sigmask_with_padding") + .field("uc_sigmask_with_padding", &self.uc_sigmask) + // Ignore padding + .finish() + } + } + impl ::hash::Hash for __c_anonymous_uc_sigmask_with_padding { + fn hash(&self, state: &mut H) { + self.uc_sigmask.hash(state) + // Ignore padding + } + } + + impl PartialEq for __c_anonymous_uc_sigmask { + fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { + unsafe { self.uc_sigmask == other.uc_sigmask } + } + } + impl Eq for __c_anonymous_uc_sigmask {} + impl ::fmt::Debug for __c_anonymous_uc_sigmask { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uc_sigmask") + .field("uc_sigmask", unsafe { &self.uc_sigmask }) + .finish() + } + } + impl ::hash::Hash for __c_anonymous_uc_sigmask { + fn hash(&self, state: &mut H) { + unsafe { self.uc_sigmask.hash(state) } + } + } + + impl PartialEq for ucontext_t { + fn eq(&self, other: &Self) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_sigmask__c_anonymous_union + == other.uc_sigmask__c_anonymous_union + && &self.uc_regspace[..] == &other.uc_regspace[..] + // Ignore padding field + } + } + impl Eq for ucontext_t {} + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_flags) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field( + "uc_sigmask__c_anonymous_union", + &self.uc_sigmask__c_anonymous_union + ) + .field("uc_regspace", &&self.uc_regspace[..]) + // Ignore padding field + .finish() + } + } + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_flags.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + self.uc_sigmask__c_anonymous_union.hash(state); + self.uc_regspace[..].hash(state); + // Ignore padding field + } + } + } + } + } +} + +pub const O_DIRECT: ::c_int = 0x10000; +pub const O_DIRECTORY: ::c_int = 0x4000; +pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const O_LARGEFILE: ::c_int = 0o400000; + +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_pause: ::c_long = 29; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_brk: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_setreuid: ::c_long = 70; +pub const SYS_setregid: ::c_long = 71; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_getgroups: ::c_long = 80; +pub const SYS_setgroups: ::c_long = 81; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_fchown: ::c_long = 95; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_setfsuid: ::c_long = 138; +pub const SYS_setfsgid: ::c_long = 139; +pub const SYS_getdents: ::c_long = 141; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_setresuid: ::c_long = 164; +pub const SYS_getresuid: ::c_long = 165; +pub const SYS_poll: ::c_long = 168; +pub const SYS_nfsservctl: ::c_long = 169; +pub const SYS_setresgid: ::c_long = 170; +pub const SYS_getresgid: ::c_long = 171; +pub const SYS_prctl: ::c_long = 172; +pub const SYS_rt_sigreturn: ::c_long = 173; +pub const SYS_rt_sigaction: ::c_long = 174; +pub const SYS_rt_sigprocmask: ::c_long = 175; +pub const SYS_rt_sigpending: ::c_long = 176; +pub const SYS_rt_sigtimedwait: ::c_long = 177; +pub const SYS_rt_sigqueueinfo: ::c_long = 178; +pub const SYS_rt_sigsuspend: ::c_long = 179; +pub const SYS_pread64: ::c_long = 180; +pub const SYS_pwrite64: ::c_long = 181; +pub const SYS_chown: ::c_long = 182; +pub const SYS_getcwd: ::c_long = 183; +pub const SYS_capget: ::c_long = 184; +pub const SYS_capset: ::c_long = 185; +pub const SYS_sigaltstack: ::c_long = 186; +pub const SYS_sendfile: ::c_long = 187; +pub const SYS_vfork: ::c_long = 190; +pub const SYS_ugetrlimit: ::c_long = 191; +pub const SYS_mmap2: ::c_long = 192; +pub const SYS_truncate64: ::c_long = 193; +pub const SYS_ftruncate64: ::c_long = 194; +pub const SYS_stat64: ::c_long = 195; +pub const SYS_lstat64: ::c_long = 196; +pub const SYS_fstat64: ::c_long = 197; +pub const SYS_lchown32: ::c_long = 198; +pub const SYS_getuid32: ::c_long = 199; +pub const SYS_getgid32: ::c_long = 200; +pub const SYS_geteuid32: ::c_long = 201; +pub const SYS_getegid32: ::c_long = 202; +pub const SYS_setreuid32: ::c_long = 203; +pub const SYS_setregid32: ::c_long = 204; +pub const SYS_getgroups32: ::c_long = 205; +pub const SYS_setgroups32: ::c_long = 206; +pub const SYS_fchown32: ::c_long = 207; +pub const SYS_setresuid32: ::c_long = 208; +pub const SYS_getresuid32: ::c_long = 209; +pub const SYS_setresgid32: ::c_long = 210; +pub const SYS_getresgid32: ::c_long = 211; +pub const SYS_chown32: ::c_long = 212; +pub const SYS_setuid32: ::c_long = 213; +pub const SYS_setgid32: ::c_long = 214; +pub const SYS_setfsuid32: ::c_long = 215; +pub const SYS_setfsgid32: ::c_long = 216; +pub const SYS_getdents64: ::c_long = 217; +pub const SYS_pivot_root: ::c_long = 218; +pub const SYS_mincore: ::c_long = 219; +pub const SYS_madvise: ::c_long = 220; +pub const SYS_fcntl64: ::c_long = 221; +pub const SYS_gettid: ::c_long = 224; +pub const SYS_readahead: ::c_long = 225; +pub const SYS_setxattr: ::c_long = 226; +pub const SYS_lsetxattr: ::c_long = 227; +pub const SYS_fsetxattr: ::c_long = 228; +pub const SYS_getxattr: ::c_long = 229; +pub const SYS_lgetxattr: ::c_long = 230; +pub const SYS_fgetxattr: ::c_long = 231; +pub const SYS_listxattr: ::c_long = 232; +pub const SYS_llistxattr: ::c_long = 233; +pub const SYS_flistxattr: ::c_long = 234; +pub const SYS_removexattr: ::c_long = 235; +pub const SYS_lremovexattr: ::c_long = 236; +pub const SYS_fremovexattr: ::c_long = 237; +pub const SYS_tkill: ::c_long = 238; +pub const SYS_sendfile64: ::c_long = 239; +pub const SYS_futex: ::c_long = 240; +pub const SYS_sched_setaffinity: ::c_long = 241; +pub const SYS_sched_getaffinity: ::c_long = 242; +pub const SYS_io_setup: ::c_long = 243; +pub const SYS_io_destroy: ::c_long = 244; +pub const SYS_io_getevents: ::c_long = 245; +pub const SYS_io_submit: ::c_long = 246; +pub const SYS_io_cancel: ::c_long = 247; +pub const SYS_exit_group: ::c_long = 248; +pub const SYS_lookup_dcookie: ::c_long = 249; +pub const SYS_epoll_create: ::c_long = 250; +pub const SYS_epoll_ctl: ::c_long = 251; +pub const SYS_epoll_wait: ::c_long = 252; +pub const SYS_remap_file_pages: ::c_long = 253; +pub const SYS_set_tid_address: ::c_long = 256; +pub const SYS_timer_create: ::c_long = 257; +pub const SYS_timer_settime: ::c_long = 258; +pub const SYS_timer_gettime: ::c_long = 259; +pub const SYS_timer_getoverrun: ::c_long = 260; +pub const SYS_timer_delete: ::c_long = 261; +pub const SYS_clock_settime: ::c_long = 262; +pub const SYS_clock_gettime: ::c_long = 263; +pub const SYS_clock_getres: ::c_long = 264; +pub const SYS_clock_nanosleep: ::c_long = 265; +pub const SYS_statfs64: ::c_long = 266; +pub const SYS_fstatfs64: ::c_long = 267; +pub const SYS_tgkill: ::c_long = 268; +pub const SYS_utimes: ::c_long = 269; +pub const SYS_arm_fadvise64_64: ::c_long = 270; +pub const SYS_pciconfig_iobase: ::c_long = 271; +pub const SYS_pciconfig_read: ::c_long = 272; +pub const SYS_pciconfig_write: ::c_long = 273; +pub const SYS_mq_open: ::c_long = 274; +pub const SYS_mq_unlink: ::c_long = 275; +pub const SYS_mq_timedsend: ::c_long = 276; +pub const SYS_mq_timedreceive: ::c_long = 277; +pub const SYS_mq_notify: ::c_long = 278; +pub const SYS_mq_getsetattr: ::c_long = 279; +pub const SYS_waitid: ::c_long = 280; +pub const SYS_socket: ::c_long = 281; +pub const SYS_bind: ::c_long = 282; +pub const SYS_connect: ::c_long = 283; +pub const SYS_listen: ::c_long = 284; +pub const SYS_accept: ::c_long = 285; +pub const SYS_getsockname: ::c_long = 286; +pub const SYS_getpeername: ::c_long = 287; +pub const SYS_socketpair: ::c_long = 288; +pub const SYS_send: ::c_long = 289; +pub const SYS_sendto: ::c_long = 290; +pub const SYS_recv: ::c_long = 291; +pub const SYS_recvfrom: ::c_long = 292; +pub const SYS_shutdown: ::c_long = 293; +pub const SYS_setsockopt: ::c_long = 294; +pub const SYS_getsockopt: ::c_long = 295; +pub const SYS_sendmsg: ::c_long = 296; +pub const SYS_recvmsg: ::c_long = 297; +pub const SYS_semop: ::c_long = 298; +pub const SYS_semget: ::c_long = 299; +pub const SYS_semctl: ::c_long = 300; +pub const SYS_msgsnd: ::c_long = 301; +pub const SYS_msgrcv: ::c_long = 302; +pub const SYS_msgget: ::c_long = 303; +pub const SYS_msgctl: ::c_long = 304; +pub const SYS_shmat: ::c_long = 305; +pub const SYS_shmdt: ::c_long = 306; +pub const SYS_shmget: ::c_long = 307; +pub const SYS_shmctl: ::c_long = 308; +pub const SYS_add_key: ::c_long = 309; +pub const SYS_request_key: ::c_long = 310; +pub const SYS_keyctl: ::c_long = 311; +pub const SYS_semtimedop: ::c_long = 312; +pub const SYS_vserver: ::c_long = 313; +pub const SYS_ioprio_set: ::c_long = 314; +pub const SYS_ioprio_get: ::c_long = 315; +pub const SYS_inotify_init: ::c_long = 316; +pub const SYS_inotify_add_watch: ::c_long = 317; +pub const SYS_inotify_rm_watch: ::c_long = 318; +pub const SYS_mbind: ::c_long = 319; +pub const SYS_get_mempolicy: ::c_long = 320; +pub const SYS_set_mempolicy: ::c_long = 321; +pub const SYS_openat: ::c_long = 322; +pub const SYS_mkdirat: ::c_long = 323; +pub const SYS_mknodat: ::c_long = 324; +pub const SYS_fchownat: ::c_long = 325; +pub const SYS_futimesat: ::c_long = 326; +pub const SYS_fstatat64: ::c_long = 327; +pub const SYS_unlinkat: ::c_long = 328; +pub const SYS_renameat: ::c_long = 329; +pub const SYS_linkat: ::c_long = 330; +pub const SYS_symlinkat: ::c_long = 331; +pub const SYS_readlinkat: ::c_long = 332; +pub const SYS_fchmodat: ::c_long = 333; +pub const SYS_faccessat: ::c_long = 334; +pub const SYS_pselect6: ::c_long = 335; +pub const SYS_ppoll: ::c_long = 336; +pub const SYS_unshare: ::c_long = 337; +pub const SYS_set_robust_list: ::c_long = 338; +pub const SYS_get_robust_list: ::c_long = 339; +pub const SYS_splice: ::c_long = 340; +pub const SYS_arm_sync_file_range: ::c_long = 341; +pub const SYS_tee: ::c_long = 342; +pub const SYS_vmsplice: ::c_long = 343; +pub const SYS_move_pages: ::c_long = 344; +pub const SYS_getcpu: ::c_long = 345; +pub const SYS_epoll_pwait: ::c_long = 346; +pub const SYS_kexec_load: ::c_long = 347; +pub const SYS_utimensat: ::c_long = 348; +pub const SYS_signalfd: ::c_long = 349; +pub const SYS_timerfd_create: ::c_long = 350; +pub const SYS_eventfd: ::c_long = 351; +pub const SYS_fallocate: ::c_long = 352; +pub const SYS_timerfd_settime: ::c_long = 353; +pub const SYS_timerfd_gettime: ::c_long = 354; +pub const SYS_signalfd4: ::c_long = 355; +pub const SYS_eventfd2: ::c_long = 356; +pub const SYS_epoll_create1: ::c_long = 357; +pub const SYS_dup3: ::c_long = 358; +pub const SYS_pipe2: ::c_long = 359; +pub const SYS_inotify_init1: ::c_long = 360; +pub const SYS_preadv: ::c_long = 361; +pub const SYS_pwritev: ::c_long = 362; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 363; +pub const SYS_perf_event_open: ::c_long = 364; +pub const SYS_recvmmsg: ::c_long = 365; +pub const SYS_accept4: ::c_long = 366; +pub const SYS_fanotify_init: ::c_long = 367; +pub const SYS_fanotify_mark: ::c_long = 368; +pub const SYS_prlimit64: ::c_long = 369; +pub const SYS_name_to_handle_at: ::c_long = 370; +pub const SYS_open_by_handle_at: ::c_long = 371; +pub const SYS_clock_adjtime: ::c_long = 372; +pub const SYS_syncfs: ::c_long = 373; +pub const SYS_sendmmsg: ::c_long = 374; +pub const SYS_setns: ::c_long = 375; +pub const SYS_process_vm_readv: ::c_long = 376; +pub const SYS_process_vm_writev: ::c_long = 377; +pub const SYS_kcmp: ::c_long = 378; +pub const SYS_finit_module: ::c_long = 379; +pub const SYS_sched_setattr: ::c_long = 380; +pub const SYS_sched_getattr: ::c_long = 381; +pub const SYS_renameat2: ::c_long = 382; +pub const SYS_seccomp: ::c_long = 383; +pub const SYS_getrandom: ::c_long = 384; +pub const SYS_memfd_create: ::c_long = 385; +pub const SYS_bpf: ::c_long = 386; +pub const SYS_execveat: ::c_long = 387; +pub const SYS_userfaultfd: ::c_long = 388; +pub const SYS_membarrier: ::c_long = 389; +pub const SYS_mlock2: ::c_long = 390; +pub const SYS_copy_file_range: ::c_long = 391; +pub const SYS_preadv2: ::c_long = 392; +pub const SYS_pwritev2: ::c_long = 393; +pub const SYS_pkey_mprotect: ::c_long = 394; +pub const SYS_pkey_alloc: ::c_long = 395; +pub const SYS_pkey_free: ::c_long = 396; +pub const SYS_statx: ::c_long = 397; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; + +// offsets in mcontext_t.gregs from sys/ucontext.h +pub const REG_R0: ::c_int = 0; +pub const REG_R1: ::c_int = 1; +pub const REG_R2: ::c_int = 2; +pub const REG_R3: ::c_int = 3; +pub const REG_R4: ::c_int = 4; +pub const REG_R5: ::c_int = 5; +pub const REG_R6: ::c_int = 6; +pub const REG_R7: ::c_int = 7; +pub const REG_R8: ::c_int = 8; +pub const REG_R9: ::c_int = 9; +pub const REG_R10: ::c_int = 10; +pub const REG_R11: ::c_int = 11; +pub const REG_R12: ::c_int = 12; +pub const REG_R13: ::c_int = 13; +pub const REG_R14: ::c_int = 14; +pub const REG_R15: ::c_int = 15; + +pub const NGREG: ::c_int = 18; + +f! { + // Sadly, Android before 5.0 (API level 21), the accept4 syscall is not + // exposed by the libc. As work-around, we implement it through `syscall` + // directly. This workaround can be removed if the minimum version of + // Android is bumped. When the workaround is removed, `accept4` can be + // moved back to `linux_like/mod.rs` + pub fn accept4( + fd: ::c_int, + addr: *mut ::sockaddr, + len: *mut ::socklen_t, + flg: ::c_int + ) -> ::c_int { + ::syscall(SYS_accept4, fd, addr, len, flg) as ::c_int + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/mod.rs new file mode 100644 index 000000000..1f4f796f2 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/mod.rs @@ -0,0 +1,244 @@ +// The following definitions are correct for arm and i686, +// but may be wrong for mips + +pub type c_long = i32; +pub type c_ulong = u32; +pub type mode_t = u16; +pub type off64_t = ::c_longlong; +pub type sigset_t = ::c_ulong; +pub type socklen_t = i32; +pub type time64_t = i64; +pub type __u64 = ::c_ulonglong; + +s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct rlimit64 { + pub rlim_cur: u64, + pub rlim_max: u64, + } + + pub struct stat { + pub st_dev: ::c_ulonglong, + __pad0: [::c_uchar; 4], + __st_ino: ::ino_t, + pub st_mode: ::c_uint, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::c_ulonglong, + __pad3: [::c_uchar; 4], + pub st_size: ::c_longlong, + pub st_blksize: ::blksize_t, + pub st_blocks: ::c_ulonglong, + pub st_atime: ::c_long, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::c_long, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::c_long, + pub st_ctime_nsec: ::c_long, + pub st_ino: ::c_ulonglong, + } + + pub struct stat64 { + pub st_dev: ::c_ulonglong, + __pad0: [::c_uchar; 4], + __st_ino: ::ino_t, + pub st_mode: ::c_uint, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::c_ulonglong, + __pad3: [::c_uchar; 4], + pub st_size: ::c_longlong, + pub st_blksize: ::blksize_t, + pub st_blocks: ::c_ulonglong, + pub st_atime: ::c_long, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::c_long, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::c_long, + pub st_ctime_nsec: ::c_long, + pub st_ino: ::c_ulonglong, + } + + pub struct statfs64 { + pub f_type: u32, + pub f_bsize: u32, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::__fsid_t, + pub f_namelen: u32, + pub f_frsize: u32, + pub f_flags: u32, + pub f_spare: [u32; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::c_ulong, + pub f_bfree: ::c_ulong, + pub f_bavail: ::c_ulong, + pub f_files: ::c_ulong, + pub f_ffree: ::c_ulong, + pub f_favail: ::c_ulong, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + } + + pub struct pthread_attr_t { + pub flags: u32, + pub stack_base: *mut ::c_void, + pub stack_size: ::size_t, + pub guard_size: ::size_t, + pub sched_policy: i32, + pub sched_priority: i32, + } + + pub struct pthread_mutex_t { value: ::c_int } + + pub struct pthread_cond_t { value: ::c_int } + + pub struct pthread_rwlock_t { + lock: pthread_mutex_t, + cond: pthread_cond_t, + numLocks: ::c_int, + writerThreadId: ::c_int, + pendingReaders: ::c_int, + pendingWriters: ::c_int, + attr: i32, + __reserved: [::c_char; 12], + } + + pub struct pthread_barrier_t { + __private: [i32; 8], + } + + pub struct pthread_spinlock_t { + __private: [i32; 2], + } + + pub struct passwd { + pub pw_name: *mut ::c_char, + pub pw_passwd: *mut ::c_char, + pub pw_uid: ::uid_t, + pub pw_gid: ::gid_t, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char, + } + + pub struct statfs { + pub f_type: u32, + pub f_bsize: u32, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::__fsid_t, + pub f_namelen: u32, + pub f_frsize: u32, + pub f_flags: u32, + pub f_spare: [u32; 4], + } + + pub struct sysinfo { + pub uptime: ::c_long, + pub loads: [::c_ulong; 3], + pub totalram: ::c_ulong, + pub freeram: ::c_ulong, + pub sharedram: ::c_ulong, + pub bufferram: ::c_ulong, + pub totalswap: ::c_ulong, + pub freeswap: ::c_ulong, + pub procs: ::c_ushort, + pub pad: ::c_ushort, + pub totalhigh: ::c_ulong, + pub freehigh: ::c_ulong, + pub mem_unit: ::c_uint, + pub _f: [::c_char; 8], + } +} + +s_no_extra_traits! { + pub struct sigset64_t { + __bits: [::c_ulong; 2] + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl ::fmt::Debug for sigset64_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigset64_t") + .field("__bits", &self.__bits) + .finish() + } + } + } +} + +// These constants must be of the same type of sigaction.sa_flags +pub const SA_NOCLDSTOP: ::c_int = 0x00000001; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SA_NODEFER: ::c_int = 0x40000000; +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_RESETHAND: ::c_int = 0x80000000; +pub const SA_RESTART: ::c_int = 0x10000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; + +pub const RTLD_GLOBAL: ::c_int = 2; +pub const RTLD_NOW: ::c_int = 0; +pub const RTLD_DEFAULT: *mut ::c_void = -1isize as *mut ::c_void; + +pub const PTRACE_GETFPREGS: ::c_int = 14; +pub const PTRACE_SETFPREGS: ::c_int = 15; + +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { value: 0 }; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { value: 0 }; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + lock: PTHREAD_MUTEX_INITIALIZER, + cond: PTHREAD_COND_INITIALIZER, + numLocks: 0, + writerThreadId: 0, + pendingReaders: 0, + pendingWriters: 0, + attr: 0, + __reserved: [0; 12], +}; +pub const PTHREAD_STACK_MIN: ::size_t = 4096 * 2; +pub const CPU_SETSIZE: ::size_t = 32; +pub const __CPU_BITS: ::size_t = 32; + +pub const UT_LINESIZE: usize = 8; +pub const UT_NAMESIZE: usize = 8; +pub const UT_HOSTSIZE: usize = 16; + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; + +extern "C" { + pub fn timegm64(tm: *const ::tm) -> ::time64_t; +} + +cfg_if! { + if #[cfg(target_arch = "x86")] { + mod x86; + pub use self::x86::*; + } else if #[cfg(target_arch = "arm")] { + mod arm; + pub use self::arm::*; + } else { + // Unknown target_arch + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/align.rs new file mode 100644 index 000000000..04df4a05d --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [f64; 2] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/mod.rs new file mode 100644 index 000000000..e549f3b51 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/mod.rs @@ -0,0 +1,622 @@ +pub type c_char = i8; +pub type wchar_t = i32; +pub type greg_t = i32; + +s! { + pub struct _libc_fpreg { + pub significand: [u16; 4], + pub exponent: u16, + } + + pub struct _libc_fpstate { + pub cw: ::c_ulong, + pub sw: ::c_ulong, + pub tag: ::c_ulong, + pub ipoff: ::c_ulong, + pub cssel: ::c_ulong, + pub dataoff: ::c_ulong, + pub datasel: ::c_ulong, + pub _st: [_libc_fpreg; 8], + pub status: ::c_ulong, + } + + pub struct mcontext_t { + pub gregs: [greg_t; 19], + pub fpregs: *mut _libc_fpstate, + pub oldmask: ::c_ulong, + pub cr2: ::c_ulong, + } +} + +cfg_if! { + if #[cfg(libc_union)] { + s_no_extra_traits! { + pub struct __c_anonymous_uc_sigmask_with_padding { + pub uc_sigmask: ::sigset_t, + /* Android has a wrong (smaller) sigset_t on x86. */ + __padding_rt_sigset: u32, + } + + pub union __c_anonymous_uc_sigmask { + uc_sigmask: __c_anonymous_uc_sigmask_with_padding, + uc_sigmask64: ::sigset64_t, + } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask, + __padding_rt_sigset: u32, + __fpregs_mem: _libc_fpstate, + } + } + + cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for __c_anonymous_uc_sigmask_with_padding { + fn eq( + &self, other: &__c_anonymous_uc_sigmask_with_padding + ) -> bool { + self.uc_sigmask == other.uc_sigmask + // Ignore padding + } + } + impl Eq for __c_anonymous_uc_sigmask_with_padding {} + impl ::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uc_sigmask_with_padding") + .field("uc_sigmask_with_padding", &self.uc_sigmask) + // Ignore padding + .finish() + } + } + impl ::hash::Hash for __c_anonymous_uc_sigmask_with_padding { + fn hash(&self, state: &mut H) { + self.uc_sigmask.hash(state) + // Ignore padding + } + } + + impl PartialEq for __c_anonymous_uc_sigmask { + fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { + unsafe { self.uc_sigmask == other.uc_sigmask } + } + } + impl Eq for __c_anonymous_uc_sigmask {} + impl ::fmt::Debug for __c_anonymous_uc_sigmask { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uc_sigmask") + .field("uc_sigmask", unsafe { &self.uc_sigmask }) + .finish() + } + } + impl ::hash::Hash for __c_anonymous_uc_sigmask { + fn hash(&self, state: &mut H) { + unsafe { self.uc_sigmask.hash(state) } + } + } + + impl PartialEq for ucontext_t { + fn eq(&self, other: &Self) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_sigmask__c_anonymous_union + == other.uc_sigmask__c_anonymous_union + // Ignore padding field + } + } + impl Eq for ucontext_t {} + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_flags) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field( + "uc_sigmask__c_anonymous_union", + &self.uc_sigmask__c_anonymous_union + ) + // Ignore padding field + .finish() + } + } + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_flags.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + self.uc_sigmask__c_anonymous_union.hash(state); + // Ignore padding field + } + } + } + } + } +} + +pub const O_DIRECT: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_LARGEFILE: ::c_int = 0o0100000; + +pub const MAP_32BIT: ::c_int = 0x40; + +// Syscall table +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_waitpid: ::c_long = 7; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_time: ::c_long = 13; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_break: ::c_long = 17; +pub const SYS_oldstat: ::c_long = 18; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_umount: ::c_long = 22; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_stime: ::c_long = 25; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_alarm: ::c_long = 27; +pub const SYS_oldfstat: ::c_long = 28; +pub const SYS_pause: ::c_long = 29; +pub const SYS_utime: ::c_long = 30; +pub const SYS_stty: ::c_long = 31; +pub const SYS_gtty: ::c_long = 32; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_ftime: ::c_long = 35; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_prof: ::c_long = 44; +pub const SYS_brk: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_signal: ::c_long = 48; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_lock: ::c_long = 53; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_mpx: ::c_long = 56; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_ulimit: ::c_long = 58; +pub const SYS_oldolduname: ::c_long = 59; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_sgetmask: ::c_long = 68; +pub const SYS_ssetmask: ::c_long = 69; +pub const SYS_setreuid: ::c_long = 70; +pub const SYS_setregid: ::c_long = 71; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrlimit: ::c_long = 76; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_getgroups: ::c_long = 80; +pub const SYS_setgroups: ::c_long = 81; +pub const SYS_select: ::c_long = 82; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_oldlstat: ::c_long = 84; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_readdir: ::c_long = 89; +pub const SYS_mmap: ::c_long = 90; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_fchown: ::c_long = 95; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_profil: ::c_long = 98; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_ioperm: ::c_long = 101; +pub const SYS_socketcall: ::c_long = 102; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_olduname: ::c_long = 109; +pub const SYS_iopl: ::c_long = 110; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_idle: ::c_long = 112; +pub const SYS_vm86old: ::c_long = 113; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_ipc: ::c_long = 117; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_modify_ldt: ::c_long = 123; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_create_module: ::c_long = 127; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_get_kernel_syms: ::c_long = 130; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_afs_syscall: ::c_long = 137; +pub const SYS_setfsuid: ::c_long = 138; +pub const SYS_setfsgid: ::c_long = 139; +// FIXME: SYS__llseek is in the NDK sources but for some reason is +// not available in the tests +// pub const SYS__llseek: ::c_long = 140; +pub const SYS_getdents: ::c_long = 141; +// FIXME: SYS__newselect is in the NDK sources but for some reason is +// not available in the tests +// pub const SYS__newselect: ::c_long = 142; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +// FIXME: SYS__llseek is in the NDK sources but for some reason is +// not available in the tests +// pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_setresuid: ::c_long = 164; +pub const SYS_getresuid: ::c_long = 165; +pub const SYS_vm86: ::c_long = 166; +pub const SYS_query_module: ::c_long = 167; +pub const SYS_poll: ::c_long = 168; +pub const SYS_nfsservctl: ::c_long = 169; +pub const SYS_setresgid: ::c_long = 170; +pub const SYS_getresgid: ::c_long = 171; +pub const SYS_prctl: ::c_long = 172; +pub const SYS_rt_sigreturn: ::c_long = 173; +pub const SYS_rt_sigaction: ::c_long = 174; +pub const SYS_rt_sigprocmask: ::c_long = 175; +pub const SYS_rt_sigpending: ::c_long = 176; +pub const SYS_rt_sigtimedwait: ::c_long = 177; +pub const SYS_rt_sigqueueinfo: ::c_long = 178; +pub const SYS_rt_sigsuspend: ::c_long = 179; +pub const SYS_pread64: ::c_long = 180; +pub const SYS_pwrite64: ::c_long = 181; +pub const SYS_chown: ::c_long = 182; +pub const SYS_getcwd: ::c_long = 183; +pub const SYS_capget: ::c_long = 184; +pub const SYS_capset: ::c_long = 185; +pub const SYS_sigaltstack: ::c_long = 186; +pub const SYS_sendfile: ::c_long = 187; +pub const SYS_getpmsg: ::c_long = 188; +pub const SYS_putpmsg: ::c_long = 189; +pub const SYS_vfork: ::c_long = 190; +pub const SYS_ugetrlimit: ::c_long = 191; +pub const SYS_mmap2: ::c_long = 192; +pub const SYS_truncate64: ::c_long = 193; +pub const SYS_ftruncate64: ::c_long = 194; +pub const SYS_stat64: ::c_long = 195; +pub const SYS_lstat64: ::c_long = 196; +pub const SYS_fstat64: ::c_long = 197; +pub const SYS_lchown32: ::c_long = 198; +pub const SYS_getuid32: ::c_long = 199; +pub const SYS_getgid32: ::c_long = 200; +pub const SYS_geteuid32: ::c_long = 201; +pub const SYS_getegid32: ::c_long = 202; +pub const SYS_setreuid32: ::c_long = 203; +pub const SYS_setregid32: ::c_long = 204; +pub const SYS_getgroups32: ::c_long = 205; +pub const SYS_setgroups32: ::c_long = 206; +pub const SYS_fchown32: ::c_long = 207; +pub const SYS_setresuid32: ::c_long = 208; +pub const SYS_getresuid32: ::c_long = 209; +pub const SYS_setresgid32: ::c_long = 210; +pub const SYS_getresgid32: ::c_long = 211; +pub const SYS_chown32: ::c_long = 212; +pub const SYS_setuid32: ::c_long = 213; +pub const SYS_setgid32: ::c_long = 214; +pub const SYS_setfsuid32: ::c_long = 215; +pub const SYS_setfsgid32: ::c_long = 216; +pub const SYS_pivot_root: ::c_long = 217; +pub const SYS_mincore: ::c_long = 218; +pub const SYS_madvise: ::c_long = 219; +pub const SYS_getdents64: ::c_long = 220; +pub const SYS_fcntl64: ::c_long = 221; +pub const SYS_gettid: ::c_long = 224; +pub const SYS_readahead: ::c_long = 225; +pub const SYS_setxattr: ::c_long = 226; +pub const SYS_lsetxattr: ::c_long = 227; +pub const SYS_fsetxattr: ::c_long = 228; +pub const SYS_getxattr: ::c_long = 229; +pub const SYS_lgetxattr: ::c_long = 230; +pub const SYS_fgetxattr: ::c_long = 231; +pub const SYS_listxattr: ::c_long = 232; +pub const SYS_llistxattr: ::c_long = 233; +pub const SYS_flistxattr: ::c_long = 234; +pub const SYS_removexattr: ::c_long = 235; +pub const SYS_lremovexattr: ::c_long = 236; +pub const SYS_fremovexattr: ::c_long = 237; +pub const SYS_tkill: ::c_long = 238; +pub const SYS_sendfile64: ::c_long = 239; +pub const SYS_futex: ::c_long = 240; +pub const SYS_sched_setaffinity: ::c_long = 241; +pub const SYS_sched_getaffinity: ::c_long = 242; +pub const SYS_set_thread_area: ::c_long = 243; +pub const SYS_get_thread_area: ::c_long = 244; +pub const SYS_io_setup: ::c_long = 245; +pub const SYS_io_destroy: ::c_long = 246; +pub const SYS_io_getevents: ::c_long = 247; +pub const SYS_io_submit: ::c_long = 248; +pub const SYS_io_cancel: ::c_long = 249; +pub const SYS_fadvise64: ::c_long = 250; +pub const SYS_exit_group: ::c_long = 252; +pub const SYS_lookup_dcookie: ::c_long = 253; +pub const SYS_epoll_create: ::c_long = 254; +pub const SYS_epoll_ctl: ::c_long = 255; +pub const SYS_epoll_wait: ::c_long = 256; +pub const SYS_remap_file_pages: ::c_long = 257; +pub const SYS_set_tid_address: ::c_long = 258; +pub const SYS_timer_create: ::c_long = 259; +pub const SYS_timer_settime: ::c_long = 260; +pub const SYS_timer_gettime: ::c_long = 261; +pub const SYS_timer_getoverrun: ::c_long = 262; +pub const SYS_timer_delete: ::c_long = 263; +pub const SYS_clock_settime: ::c_long = 264; +pub const SYS_clock_gettime: ::c_long = 265; +pub const SYS_clock_getres: ::c_long = 266; +pub const SYS_clock_nanosleep: ::c_long = 267; +pub const SYS_statfs64: ::c_long = 268; +pub const SYS_fstatfs64: ::c_long = 269; +pub const SYS_tgkill: ::c_long = 270; +pub const SYS_utimes: ::c_long = 271; +pub const SYS_fadvise64_64: ::c_long = 272; +pub const SYS_vserver: ::c_long = 273; +pub const SYS_mbind: ::c_long = 274; +pub const SYS_get_mempolicy: ::c_long = 275; +pub const SYS_set_mempolicy: ::c_long = 276; +pub const SYS_mq_open: ::c_long = 277; +pub const SYS_mq_unlink: ::c_long = 278; +pub const SYS_mq_timedsend: ::c_long = 279; +pub const SYS_mq_timedreceive: ::c_long = 280; +pub const SYS_mq_notify: ::c_long = 281; +pub const SYS_mq_getsetattr: ::c_long = 282; +pub const SYS_kexec_load: ::c_long = 283; +pub const SYS_waitid: ::c_long = 284; +pub const SYS_add_key: ::c_long = 286; +pub const SYS_request_key: ::c_long = 287; +pub const SYS_keyctl: ::c_long = 288; +pub const SYS_ioprio_set: ::c_long = 289; +pub const SYS_ioprio_get: ::c_long = 290; +pub const SYS_inotify_init: ::c_long = 291; +pub const SYS_inotify_add_watch: ::c_long = 292; +pub const SYS_inotify_rm_watch: ::c_long = 293; +pub const SYS_migrate_pages: ::c_long = 294; +pub const SYS_openat: ::c_long = 295; +pub const SYS_mkdirat: ::c_long = 296; +pub const SYS_mknodat: ::c_long = 297; +pub const SYS_fchownat: ::c_long = 298; +pub const SYS_futimesat: ::c_long = 299; +pub const SYS_fstatat64: ::c_long = 300; +pub const SYS_unlinkat: ::c_long = 301; +pub const SYS_renameat: ::c_long = 302; +pub const SYS_linkat: ::c_long = 303; +pub const SYS_symlinkat: ::c_long = 304; +pub const SYS_readlinkat: ::c_long = 305; +pub const SYS_fchmodat: ::c_long = 306; +pub const SYS_faccessat: ::c_long = 307; +pub const SYS_pselect6: ::c_long = 308; +pub const SYS_ppoll: ::c_long = 309; +pub const SYS_unshare: ::c_long = 310; +pub const SYS_set_robust_list: ::c_long = 311; +pub const SYS_get_robust_list: ::c_long = 312; +pub const SYS_splice: ::c_long = 313; +pub const SYS_sync_file_range: ::c_long = 314; +pub const SYS_tee: ::c_long = 315; +pub const SYS_vmsplice: ::c_long = 316; +pub const SYS_move_pages: ::c_long = 317; +pub const SYS_getcpu: ::c_long = 318; +pub const SYS_epoll_pwait: ::c_long = 319; +pub const SYS_utimensat: ::c_long = 320; +pub const SYS_signalfd: ::c_long = 321; +pub const SYS_timerfd_create: ::c_long = 322; +pub const SYS_eventfd: ::c_long = 323; +pub const SYS_fallocate: ::c_long = 324; +pub const SYS_timerfd_settime: ::c_long = 325; +pub const SYS_timerfd_gettime: ::c_long = 326; +pub const SYS_signalfd4: ::c_long = 327; +pub const SYS_eventfd2: ::c_long = 328; +pub const SYS_epoll_create1: ::c_long = 329; +pub const SYS_dup3: ::c_long = 330; +pub const SYS_pipe2: ::c_long = 331; +pub const SYS_inotify_init1: ::c_long = 332; +pub const SYS_preadv: ::c_long = 333; +pub const SYS_pwritev: ::c_long = 334; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 335; +pub const SYS_perf_event_open: ::c_long = 336; +pub const SYS_recvmmsg: ::c_long = 337; +pub const SYS_fanotify_init: ::c_long = 338; +pub const SYS_fanotify_mark: ::c_long = 339; +pub const SYS_prlimit64: ::c_long = 340; +pub const SYS_name_to_handle_at: ::c_long = 341; +pub const SYS_open_by_handle_at: ::c_long = 342; +pub const SYS_clock_adjtime: ::c_long = 343; +pub const SYS_syncfs: ::c_long = 344; +pub const SYS_sendmmsg: ::c_long = 345; +pub const SYS_setns: ::c_long = 346; +pub const SYS_process_vm_readv: ::c_long = 347; +pub const SYS_process_vm_writev: ::c_long = 348; +pub const SYS_kcmp: ::c_long = 349; +pub const SYS_finit_module: ::c_long = 350; +pub const SYS_sched_setattr: ::c_long = 351; +pub const SYS_sched_getattr: ::c_long = 352; +pub const SYS_renameat2: ::c_long = 353; +pub const SYS_seccomp: ::c_long = 354; +pub const SYS_getrandom: ::c_long = 355; +pub const SYS_memfd_create: ::c_long = 356; +pub const SYS_bpf: ::c_long = 357; +pub const SYS_execveat: ::c_long = 358; +pub const SYS_socket: ::c_long = 359; +pub const SYS_socketpair: ::c_long = 360; +pub const SYS_bind: ::c_long = 361; +pub const SYS_connect: ::c_long = 362; +pub const SYS_listen: ::c_long = 363; +pub const SYS_accept4: ::c_long = 364; +pub const SYS_getsockopt: ::c_long = 365; +pub const SYS_setsockopt: ::c_long = 366; +pub const SYS_getsockname: ::c_long = 367; +pub const SYS_getpeername: ::c_long = 368; +pub const SYS_sendto: ::c_long = 369; +pub const SYS_sendmsg: ::c_long = 370; +pub const SYS_recvfrom: ::c_long = 371; +pub const SYS_recvmsg: ::c_long = 372; +pub const SYS_shutdown: ::c_long = 373; +pub const SYS_userfaultfd: ::c_long = 374; +pub const SYS_membarrier: ::c_long = 375; +pub const SYS_mlock2: ::c_long = 376; +pub const SYS_copy_file_range: ::c_long = 377; +pub const SYS_preadv2: ::c_long = 378; +pub const SYS_pwritev2: ::c_long = 379; +pub const SYS_pkey_mprotect: ::c_long = 380; +pub const SYS_pkey_alloc: ::c_long = 381; +pub const SYS_pkey_free: ::c_long = 382; +pub const SYS_statx: ::c_long = 383; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; + +// offsets in user_regs_structs, from sys/reg.h +pub const EBX: ::c_int = 0; +pub const ECX: ::c_int = 1; +pub const EDX: ::c_int = 2; +pub const ESI: ::c_int = 3; +pub const EDI: ::c_int = 4; +pub const EBP: ::c_int = 5; +pub const EAX: ::c_int = 6; +pub const DS: ::c_int = 7; +pub const ES: ::c_int = 8; +pub const FS: ::c_int = 9; +pub const GS: ::c_int = 10; +pub const ORIG_EAX: ::c_int = 11; +pub const EIP: ::c_int = 12; +pub const CS: ::c_int = 13; +pub const EFL: ::c_int = 14; +pub const UESP: ::c_int = 15; +pub const SS: ::c_int = 16; + +// offsets in mcontext_t.gregs from sys/ucontext.h +pub const REG_GS: ::c_int = 0; +pub const REG_FS: ::c_int = 1; +pub const REG_ES: ::c_int = 2; +pub const REG_DS: ::c_int = 3; +pub const REG_EDI: ::c_int = 4; +pub const REG_ESI: ::c_int = 5; +pub const REG_EBP: ::c_int = 6; +pub const REG_ESP: ::c_int = 7; +pub const REG_EBX: ::c_int = 8; +pub const REG_EDX: ::c_int = 9; +pub const REG_ECX: ::c_int = 10; +pub const REG_EAX: ::c_int = 11; +pub const REG_TRAPNO: ::c_int = 12; +pub const REG_ERR: ::c_int = 13; +pub const REG_EIP: ::c_int = 14; +pub const REG_CS: ::c_int = 15; +pub const REG_EFL: ::c_int = 16; +pub const REG_UESP: ::c_int = 17; +pub const REG_SS: ::c_int = 18; + +// socketcall values from linux/net.h (only the needed ones, and not public) +const SYS_ACCEPT4: ::c_int = 18; + +f! { + // Sadly, Android before 5.0 (API level 21), the accept4 syscall is not + // exposed by the libc. As work-around, we implement it as raw syscall. + // Note that for x86, the `accept4` syscall is not available either, + // and we must use the `socketcall` syscall instead. + // This workaround can be removed if the minimum Android version is bumped. + // When the workaround is removed, `accept4` can be moved back + // to `linux_like/mod.rs` + pub fn accept4( + fd: ::c_int, + addr: *mut ::sockaddr, + len: *mut ::socklen_t, + flg: ::c_int + ) -> ::c_int { + // Arguments are passed as array of `long int` + // (which is big enough on x86 for a pointer). + let mut args = [ + fd as ::c_long, + addr as ::c_long, + len as ::c_long, + flg as ::c_long, + ]; + ::syscall(SYS_socketcall, SYS_ACCEPT4, args[..].as_mut_ptr()) + } +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/align.rs new file mode 100644 index 000000000..154c2c54c --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/align.rs @@ -0,0 +1,29 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f32; 8] + } +} + +s! { + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[repr(align(16))] + pub struct mcontext_t { + pub fault_address: ::c_ulonglong, + pub regs: [::c_ulonglong; 31], + pub sp: ::c_ulonglong, + pub pc: ::c_ulonglong, + pub pstate: ::c_ulonglong, + // nested arrays to get the right size/length while being able to + // auto-derive traits like Debug + __reserved: [[u64; 32]; 16], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/int128.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/int128.rs new file mode 100644 index 000000000..4535e73ee --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/int128.rs @@ -0,0 +1,7 @@ +s! { + pub struct user_fpsimd_struct { + pub vregs: [::__uint128_t; 32], + pub fpsr: u32, + pub fpcr: u32, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/mod.rs new file mode 100644 index 000000000..e7247fbb6 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -0,0 +1,427 @@ +pub type c_char = u8; +pub type wchar_t = u32; +pub type __u64 = ::c_ulonglong; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::c_uint, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad1: ::c_ulong, + pub st_size: ::off64_t, + pub st_blksize: ::c_int, + __pad2: ::c_int, + pub st_blocks: ::c_long, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused4: ::c_uint, + __unused5: ::c_uint, + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::c_uint, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad1: ::c_ulong, + pub st_size: ::off64_t, + pub st_blksize: ::c_int, + __pad2: ::c_int, + pub st_blocks: ::c_long, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused4: ::c_uint, + __unused5: ::c_uint, + } + + pub struct user_regs_struct { + pub regs: [u64; 31], + pub sp: u64, + pub pc: u64, + pub pstate: u64, + } +} + +pub const O_DIRECT: ::c_int = 0x10000; +pub const O_DIRECTORY: ::c_int = 0x4000; +pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const O_LARGEFILE: ::c_int = 0o400000; + +pub const SIGSTKSZ: ::size_t = 16384; +pub const MINSIGSTKSZ: ::size_t = 5120; + +// From NDK's asm/hwcap.h +pub const HWCAP_FP: ::c_ulong = 1 << 0; +pub const HWCAP_ASIMD: ::c_ulong = 1 << 1; +pub const HWCAP_EVTSTRM: ::c_ulong = 1 << 2; +pub const HWCAP_AES: ::c_ulong = 1 << 3; +pub const HWCAP_PMULL: ::c_ulong = 1 << 4; +pub const HWCAP_SHA1: ::c_ulong = 1 << 5; +pub const HWCAP_SHA2: ::c_ulong = 1 << 6; +pub const HWCAP_CRC32: ::c_ulong = 1 << 7; +pub const HWCAP_ATOMICS: ::c_ulong = 1 << 8; +pub const HWCAP_FPHP: ::c_ulong = 1 << 9; +pub const HWCAP_ASIMDHP: ::c_ulong = 1 << 10; +pub const HWCAP_CPUID: ::c_ulong = 1 << 11; +pub const HWCAP_ASIMDRDM: ::c_ulong = 1 << 12; +pub const HWCAP_JSCVT: ::c_ulong = 1 << 13; +pub const HWCAP_FCMA: ::c_ulong = 1 << 14; +pub const HWCAP_LRCPC: ::c_ulong = 1 << 15; +pub const HWCAP_DCPOP: ::c_ulong = 1 << 16; +pub const HWCAP_SHA3: ::c_ulong = 1 << 17; +pub const HWCAP_SM3: ::c_ulong = 1 << 18; +pub const HWCAP_SM4: ::c_ulong = 1 << 19; +pub const HWCAP_ASIMDDP: ::c_ulong = 1 << 20; +pub const HWCAP_SHA512: ::c_ulong = 1 << 21; +pub const HWCAP_SVE: ::c_ulong = 1 << 22; +pub const HWCAP_ASIMDFHM: ::c_ulong = 1 << 23; +pub const HWCAP_DIT: ::c_ulong = 1 << 24; +pub const HWCAP_USCAT: ::c_ulong = 1 << 25; +pub const HWCAP_ILRCPC: ::c_ulong = 1 << 26; +pub const HWCAP_FLAGM: ::c_ulong = 1 << 27; +pub const HWCAP_SSBS: ::c_ulong = 1 << 28; +pub const HWCAP_SB: ::c_ulong = 1 << 29; +pub const HWCAP_PACA: ::c_ulong = 1 << 30; +pub const HWCAP_PACG: ::c_ulong = 1 << 31; +pub const HWCAP2_DCPODP: ::c_ulong = 1 << 0; +pub const HWCAP2_SVE2: ::c_ulong = 1 << 1; +pub const HWCAP2_SVEAES: ::c_ulong = 1 << 2; +pub const HWCAP2_SVEPMULL: ::c_ulong = 1 << 3; +pub const HWCAP2_SVEBITPERM: ::c_ulong = 1 << 4; +pub const HWCAP2_SVESHA3: ::c_ulong = 1 << 5; +pub const HWCAP2_SVESM4: ::c_ulong = 1 << 6; +pub const HWCAP2_FLAGM2: ::c_ulong = 1 << 7; +pub const HWCAP2_FRINT: ::c_ulong = 1 << 8; +pub const HWCAP2_SVEI8MM: ::c_ulong = 1 << 9; +pub const HWCAP2_SVEF32MM: ::c_ulong = 1 << 10; +pub const HWCAP2_SVEF64MM: ::c_ulong = 1 << 11; +pub const HWCAP2_SVEBF16: ::c_ulong = 1 << 12; +pub const HWCAP2_I8MM: ::c_ulong = 1 << 13; +pub const HWCAP2_BF16: ::c_ulong = 1 << 14; +pub const HWCAP2_DGH: ::c_ulong = 1 << 15; +pub const HWCAP2_RNG: ::c_ulong = 1 << 16; +pub const HWCAP2_BTI: ::c_ulong = 1 << 17; +pub const HWCAP2_MTE: ::c_ulong = 1 << 18; +pub const HWCAP2_ECV: ::c_ulong = 1 << 19; +pub const HWCAP2_AFP: ::c_ulong = 1 << 20; +pub const HWCAP2_RPRES: ::c_ulong = 1 << 21; +pub const HWCAP2_MTE3: ::c_ulong = 1 << 22; +pub const HWCAP2_SME: ::c_ulong = 1 << 23; +pub const HWCAP2_SME_I16I64: ::c_ulong = 1 << 24; +pub const HWCAP2_SME_F64F64: ::c_ulong = 1 << 25; +pub const HWCAP2_SME_I8I32: ::c_ulong = 1 << 26; +pub const HWCAP2_SME_F16F32: ::c_ulong = 1 << 27; +pub const HWCAP2_SME_B16F32: ::c_ulong = 1 << 28; +pub const HWCAP2_SME_F32F32: ::c_ulong = 1 << 29; +pub const HWCAP2_SME_FA64: ::c_ulong = 1 << 30; +pub const HWCAP2_WFXT: ::c_ulong = 1 << 31; +pub const HWCAP2_EBF16: ::c_ulong = 1 << 32; +pub const HWCAP2_SVE_EBF16: ::c_ulong = 1 << 33; + +pub const SYS_io_setup: ::c_long = 0; +pub const SYS_io_destroy: ::c_long = 1; +pub const SYS_io_submit: ::c_long = 2; +pub const SYS_io_cancel: ::c_long = 3; +pub const SYS_io_getevents: ::c_long = 4; +pub const SYS_setxattr: ::c_long = 5; +pub const SYS_lsetxattr: ::c_long = 6; +pub const SYS_fsetxattr: ::c_long = 7; +pub const SYS_getxattr: ::c_long = 8; +pub const SYS_lgetxattr: ::c_long = 9; +pub const SYS_fgetxattr: ::c_long = 10; +pub const SYS_listxattr: ::c_long = 11; +pub const SYS_llistxattr: ::c_long = 12; +pub const SYS_flistxattr: ::c_long = 13; +pub const SYS_removexattr: ::c_long = 14; +pub const SYS_lremovexattr: ::c_long = 15; +pub const SYS_fremovexattr: ::c_long = 16; +pub const SYS_getcwd: ::c_long = 17; +pub const SYS_lookup_dcookie: ::c_long = 18; +pub const SYS_eventfd2: ::c_long = 19; +pub const SYS_epoll_create1: ::c_long = 20; +pub const SYS_epoll_ctl: ::c_long = 21; +pub const SYS_epoll_pwait: ::c_long = 22; +pub const SYS_dup: ::c_long = 23; +pub const SYS_dup3: ::c_long = 24; +pub const SYS_fcntl: ::c_long = 25; +pub const SYS_inotify_init1: ::c_long = 26; +pub const SYS_inotify_add_watch: ::c_long = 27; +pub const SYS_inotify_rm_watch: ::c_long = 28; +pub const SYS_ioctl: ::c_long = 29; +pub const SYS_ioprio_set: ::c_long = 30; +pub const SYS_ioprio_get: ::c_long = 31; +pub const SYS_flock: ::c_long = 32; +pub const SYS_mknodat: ::c_long = 33; +pub const SYS_mkdirat: ::c_long = 34; +pub const SYS_unlinkat: ::c_long = 35; +pub const SYS_symlinkat: ::c_long = 36; +pub const SYS_linkat: ::c_long = 37; +pub const SYS_renameat: ::c_long = 38; +pub const SYS_umount2: ::c_long = 39; +pub const SYS_mount: ::c_long = 40; +pub const SYS_pivot_root: ::c_long = 41; +pub const SYS_nfsservctl: ::c_long = 42; +pub const SYS_fallocate: ::c_long = 47; +pub const SYS_faccessat: ::c_long = 48; +pub const SYS_chdir: ::c_long = 49; +pub const SYS_fchdir: ::c_long = 50; +pub const SYS_chroot: ::c_long = 51; +pub const SYS_fchmod: ::c_long = 52; +pub const SYS_fchmodat: ::c_long = 53; +pub const SYS_fchownat: ::c_long = 54; +pub const SYS_fchown: ::c_long = 55; +pub const SYS_openat: ::c_long = 56; +pub const SYS_close: ::c_long = 57; +pub const SYS_vhangup: ::c_long = 58; +pub const SYS_pipe2: ::c_long = 59; +pub const SYS_quotactl: ::c_long = 60; +pub const SYS_getdents64: ::c_long = 61; +pub const SYS_read: ::c_long = 63; +pub const SYS_write: ::c_long = 64; +pub const SYS_readv: ::c_long = 65; +pub const SYS_writev: ::c_long = 66; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_preadv: ::c_long = 69; +pub const SYS_pwritev: ::c_long = 70; +pub const SYS_pselect6: ::c_long = 72; +pub const SYS_ppoll: ::c_long = 73; +pub const SYS_signalfd4: ::c_long = 74; +pub const SYS_vmsplice: ::c_long = 75; +pub const SYS_splice: ::c_long = 76; +pub const SYS_tee: ::c_long = 77; +pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_sync: ::c_long = 81; +pub const SYS_fsync: ::c_long = 82; +pub const SYS_fdatasync: ::c_long = 83; +pub const SYS_sync_file_range: ::c_long = 84; +pub const SYS_timerfd_create: ::c_long = 85; +pub const SYS_timerfd_settime: ::c_long = 86; +pub const SYS_timerfd_gettime: ::c_long = 87; +pub const SYS_utimensat: ::c_long = 88; +pub const SYS_acct: ::c_long = 89; +pub const SYS_capget: ::c_long = 90; +pub const SYS_capset: ::c_long = 91; +pub const SYS_personality: ::c_long = 92; +pub const SYS_exit: ::c_long = 93; +pub const SYS_exit_group: ::c_long = 94; +pub const SYS_waitid: ::c_long = 95; +pub const SYS_set_tid_address: ::c_long = 96; +pub const SYS_unshare: ::c_long = 97; +pub const SYS_futex: ::c_long = 98; +pub const SYS_set_robust_list: ::c_long = 99; +pub const SYS_get_robust_list: ::c_long = 100; +pub const SYS_nanosleep: ::c_long = 101; +pub const SYS_getitimer: ::c_long = 102; +pub const SYS_setitimer: ::c_long = 103; +pub const SYS_kexec_load: ::c_long = 104; +pub const SYS_init_module: ::c_long = 105; +pub const SYS_delete_module: ::c_long = 106; +pub const SYS_timer_create: ::c_long = 107; +pub const SYS_timer_gettime: ::c_long = 108; +pub const SYS_timer_getoverrun: ::c_long = 109; +pub const SYS_timer_settime: ::c_long = 110; +pub const SYS_timer_delete: ::c_long = 111; +pub const SYS_clock_settime: ::c_long = 112; +pub const SYS_clock_gettime: ::c_long = 113; +pub const SYS_clock_getres: ::c_long = 114; +pub const SYS_clock_nanosleep: ::c_long = 115; +pub const SYS_syslog: ::c_long = 116; +pub const SYS_ptrace: ::c_long = 117; +pub const SYS_sched_setparam: ::c_long = 118; +pub const SYS_sched_setscheduler: ::c_long = 119; +pub const SYS_sched_getscheduler: ::c_long = 120; +pub const SYS_sched_getparam: ::c_long = 121; +pub const SYS_sched_setaffinity: ::c_long = 122; +pub const SYS_sched_getaffinity: ::c_long = 123; +pub const SYS_sched_yield: ::c_long = 124; +pub const SYS_sched_get_priority_max: ::c_long = 125; +pub const SYS_sched_get_priority_min: ::c_long = 126; +pub const SYS_sched_rr_get_interval: ::c_long = 127; +pub const SYS_restart_syscall: ::c_long = 128; +pub const SYS_kill: ::c_long = 129; +pub const SYS_tkill: ::c_long = 130; +pub const SYS_tgkill: ::c_long = 131; +pub const SYS_sigaltstack: ::c_long = 132; +pub const SYS_rt_sigsuspend: ::c_long = 133; +pub const SYS_rt_sigaction: ::c_long = 134; +pub const SYS_rt_sigprocmask: ::c_long = 135; +pub const SYS_rt_sigpending: ::c_long = 136; +pub const SYS_rt_sigtimedwait: ::c_long = 137; +pub const SYS_rt_sigqueueinfo: ::c_long = 138; +pub const SYS_rt_sigreturn: ::c_long = 139; +pub const SYS_setpriority: ::c_long = 140; +pub const SYS_getpriority: ::c_long = 141; +pub const SYS_reboot: ::c_long = 142; +pub const SYS_setregid: ::c_long = 143; +pub const SYS_setgid: ::c_long = 144; +pub const SYS_setreuid: ::c_long = 145; +pub const SYS_setuid: ::c_long = 146; +pub const SYS_setresuid: ::c_long = 147; +pub const SYS_getresuid: ::c_long = 148; +pub const SYS_setresgid: ::c_long = 149; +pub const SYS_getresgid: ::c_long = 150; +pub const SYS_setfsuid: ::c_long = 151; +pub const SYS_setfsgid: ::c_long = 152; +pub const SYS_times: ::c_long = 153; +pub const SYS_setpgid: ::c_long = 154; +pub const SYS_getpgid: ::c_long = 155; +pub const SYS_getsid: ::c_long = 156; +pub const SYS_setsid: ::c_long = 157; +pub const SYS_getgroups: ::c_long = 158; +pub const SYS_setgroups: ::c_long = 159; +pub const SYS_uname: ::c_long = 160; +pub const SYS_sethostname: ::c_long = 161; +pub const SYS_setdomainname: ::c_long = 162; +pub const SYS_getrlimit: ::c_long = 163; +pub const SYS_setrlimit: ::c_long = 164; +pub const SYS_getrusage: ::c_long = 165; +pub const SYS_umask: ::c_long = 166; +pub const SYS_prctl: ::c_long = 167; +pub const SYS_getcpu: ::c_long = 168; +pub const SYS_gettimeofday: ::c_long = 169; +pub const SYS_settimeofday: ::c_long = 170; +pub const SYS_adjtimex: ::c_long = 171; +pub const SYS_getpid: ::c_long = 172; +pub const SYS_getppid: ::c_long = 173; +pub const SYS_getuid: ::c_long = 174; +pub const SYS_geteuid: ::c_long = 175; +pub const SYS_getgid: ::c_long = 176; +pub const SYS_getegid: ::c_long = 177; +pub const SYS_gettid: ::c_long = 178; +pub const SYS_sysinfo: ::c_long = 179; +pub const SYS_mq_open: ::c_long = 180; +pub const SYS_mq_unlink: ::c_long = 181; +pub const SYS_mq_timedsend: ::c_long = 182; +pub const SYS_mq_timedreceive: ::c_long = 183; +pub const SYS_mq_notify: ::c_long = 184; +pub const SYS_mq_getsetattr: ::c_long = 185; +pub const SYS_msgget: ::c_long = 186; +pub const SYS_msgctl: ::c_long = 187; +pub const SYS_msgrcv: ::c_long = 188; +pub const SYS_msgsnd: ::c_long = 189; +pub const SYS_semget: ::c_long = 190; +pub const SYS_semctl: ::c_long = 191; +pub const SYS_semtimedop: ::c_long = 192; +pub const SYS_semop: ::c_long = 193; +pub const SYS_shmget: ::c_long = 194; +pub const SYS_shmctl: ::c_long = 195; +pub const SYS_shmat: ::c_long = 196; +pub const SYS_shmdt: ::c_long = 197; +pub const SYS_socket: ::c_long = 198; +pub const SYS_socketpair: ::c_long = 199; +pub const SYS_bind: ::c_long = 200; +pub const SYS_listen: ::c_long = 201; +pub const SYS_accept: ::c_long = 202; +pub const SYS_connect: ::c_long = 203; +pub const SYS_getsockname: ::c_long = 204; +pub const SYS_getpeername: ::c_long = 205; +pub const SYS_sendto: ::c_long = 206; +pub const SYS_recvfrom: ::c_long = 207; +pub const SYS_setsockopt: ::c_long = 208; +pub const SYS_getsockopt: ::c_long = 209; +pub const SYS_shutdown: ::c_long = 210; +pub const SYS_sendmsg: ::c_long = 211; +pub const SYS_recvmsg: ::c_long = 212; +pub const SYS_readahead: ::c_long = 213; +pub const SYS_brk: ::c_long = 214; +pub const SYS_munmap: ::c_long = 215; +pub const SYS_mremap: ::c_long = 216; +pub const SYS_add_key: ::c_long = 217; +pub const SYS_request_key: ::c_long = 218; +pub const SYS_keyctl: ::c_long = 219; +pub const SYS_clone: ::c_long = 220; +pub const SYS_execve: ::c_long = 221; +pub const SYS_swapon: ::c_long = 224; +pub const SYS_swapoff: ::c_long = 225; +pub const SYS_mprotect: ::c_long = 226; +pub const SYS_msync: ::c_long = 227; +pub const SYS_mlock: ::c_long = 228; +pub const SYS_munlock: ::c_long = 229; +pub const SYS_mlockall: ::c_long = 230; +pub const SYS_munlockall: ::c_long = 231; +pub const SYS_mincore: ::c_long = 232; +pub const SYS_madvise: ::c_long = 233; +pub const SYS_remap_file_pages: ::c_long = 234; +pub const SYS_mbind: ::c_long = 235; +pub const SYS_get_mempolicy: ::c_long = 236; +pub const SYS_set_mempolicy: ::c_long = 237; +pub const SYS_migrate_pages: ::c_long = 238; +pub const SYS_move_pages: ::c_long = 239; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; +pub const SYS_perf_event_open: ::c_long = 241; +pub const SYS_accept4: ::c_long = 242; +pub const SYS_recvmmsg: ::c_long = 243; +pub const SYS_arch_specific_syscall: ::c_long = 244; +pub const SYS_wait4: ::c_long = 260; +pub const SYS_prlimit64: ::c_long = 261; +pub const SYS_fanotify_init: ::c_long = 262; +pub const SYS_fanotify_mark: ::c_long = 263; +pub const SYS_name_to_handle_at: ::c_long = 264; +pub const SYS_open_by_handle_at: ::c_long = 265; +pub const SYS_clock_adjtime: ::c_long = 266; +pub const SYS_syncfs: ::c_long = 267; +pub const SYS_setns: ::c_long = 268; +pub const SYS_sendmmsg: ::c_long = 269; +pub const SYS_process_vm_readv: ::c_long = 270; +pub const SYS_process_vm_writev: ::c_long = 271; +pub const SYS_kcmp: ::c_long = 272; +pub const SYS_finit_module: ::c_long = 273; +pub const SYS_sched_setattr: ::c_long = 274; +pub const SYS_sched_getattr: ::c_long = 275; +pub const SYS_renameat2: ::c_long = 276; +pub const SYS_seccomp: ::c_long = 277; +pub const SYS_getrandom: ::c_long = 278; +pub const SYS_memfd_create: ::c_long = 279; +pub const SYS_bpf: ::c_long = 280; +pub const SYS_execveat: ::c_long = 281; +pub const SYS_userfaultfd: ::c_long = 282; +pub const SYS_membarrier: ::c_long = 283; +pub const SYS_mlock2: ::c_long = 284; +pub const SYS_copy_file_range: ::c_long = 285; +pub const SYS_preadv2: ::c_long = 286; +pub const SYS_pwritev2: ::c_long = 287; +pub const SYS_pkey_mprotect: ::c_long = 288; +pub const SYS_pkey_alloc: ::c_long = 289; +pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_syscalls: ::c_long = 436; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} + +cfg_if! { + if #[cfg(libc_int128)] { + mod int128; + pub use self::int128::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/mod.rs new file mode 100644 index 000000000..67d0dacf1 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/mod.rs @@ -0,0 +1,355 @@ +// The following definitions are correct for aarch64 and x86_64, +// but may be wrong for mips64 + +pub type c_long = i64; +pub type c_ulong = u64; +pub type mode_t = u32; +pub type off64_t = i64; +pub type socklen_t = u32; + +s! { + pub struct sigset_t { + __val: [::c_ulong; 1], + } + + pub struct sigaction { + pub sa_flags: ::c_int, + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_restorer: ::Option, + } + + pub struct rlimit64 { + pub rlim_cur: ::c_ulonglong, + pub rlim_max: ::c_ulonglong, + } + + pub struct pthread_attr_t { + pub flags: u32, + pub stack_base: *mut ::c_void, + pub stack_size: ::size_t, + pub guard_size: ::size_t, + pub sched_policy: i32, + pub sched_priority: i32, + __reserved: [::c_char; 16], + } + + pub struct passwd { + pub pw_name: *mut ::c_char, + pub pw_passwd: *mut ::c_char, + pub pw_uid: ::uid_t, + pub pw_gid: ::gid_t, + pub pw_gecos: *mut ::c_char, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char, + } + + pub struct statfs { + pub f_type: u64, + pub f_bsize: u64, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::__fsid_t, + pub f_namelen: u64, + pub f_frsize: u64, + pub f_flags: u64, + pub f_spare: [u64; 4], + } + + pub struct sysinfo { + pub uptime: ::c_long, + pub loads: [::c_ulong; 3], + pub totalram: ::c_ulong, + pub freeram: ::c_ulong, + pub sharedram: ::c_ulong, + pub bufferram: ::c_ulong, + pub totalswap: ::c_ulong, + pub freeswap: ::c_ulong, + pub procs: ::c_ushort, + pub pad: ::c_ushort, + pub totalhigh: ::c_ulong, + pub freehigh: ::c_ulong, + pub mem_unit: ::c_uint, + pub _f: [::c_char; 0], + } + + pub struct statfs64 { + pub f_type: u64, + pub f_bsize: u64, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::__fsid_t, + pub f_namelen: u64, + pub f_frsize: u64, + pub f_flags: u64, + pub f_spare: [u64; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct pthread_barrier_t { + __private: [i64; 4], + } + + pub struct pthread_spinlock_t { + __private: i64, + } +} + +s_no_extra_traits! { + pub struct pthread_mutex_t { + value: ::c_int, + __reserved: [::c_char; 36], + } + + pub struct pthread_cond_t { + value: ::c_int, + __reserved: [::c_char; 44], + } + + pub struct pthread_rwlock_t { + numLocks: ::c_int, + writerThreadId: ::c_int, + pendingReaders: ::c_int, + pendingWriters: ::c_int, + attr: i32, + __reserved: [::c_char; 36], + } + + pub struct sigset64_t { + __bits: [::c_ulong; 1] + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for pthread_mutex_t { + fn eq(&self, other: &pthread_mutex_t) -> bool { + self.value == other.value + && self + .__reserved + .iter() + .zip(other.__reserved.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for pthread_mutex_t {} + + impl ::fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_mutex_t") + .field("value", &self.value) + // FIXME: .field("__reserved", &self.__reserved) + .finish() + } + } + + impl ::hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { + self.value.hash(state); + self.__reserved.hash(state); + } + } + + impl PartialEq for pthread_cond_t { + fn eq(&self, other: &pthread_cond_t) -> bool { + self.value == other.value + && self + .__reserved + .iter() + .zip(other.__reserved.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for pthread_cond_t {} + + impl ::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_cond_t") + .field("value", &self.value) + // FIXME: .field("__reserved", &self.__reserved) + .finish() + } + } + + impl ::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { + self.value.hash(state); + self.__reserved.hash(state); + } + } + + impl PartialEq for pthread_rwlock_t { + fn eq(&self, other: &pthread_rwlock_t) -> bool { + self.numLocks == other.numLocks + && self.writerThreadId == other.writerThreadId + && self.pendingReaders == other.pendingReaders + && self.pendingWriters == other.pendingWriters + && self.attr == other.attr + && self + .__reserved + .iter() + .zip(other.__reserved.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for pthread_rwlock_t {} + + impl ::fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_rwlock_t") + .field("numLocks", &self.numLocks) + .field("writerThreadId", &self.writerThreadId) + .field("pendingReaders", &self.pendingReaders) + .field("pendingWriters", &self.pendingWriters) + .field("attr", &self.attr) + // FIXME: .field("__reserved", &self.__reserved) + .finish() + } + } + + impl ::hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { + self.numLocks.hash(state); + self.writerThreadId.hash(state); + self.pendingReaders.hash(state); + self.pendingWriters.hash(state); + self.attr.hash(state); + self.__reserved.hash(state); + } + } + + impl ::fmt::Debug for sigset64_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigset64_t") + .field("__bits", &self.__bits) + .finish() + } + } + } +} + +// These constants must be of the same type of sigaction.sa_flags +pub const SA_NOCLDSTOP: ::c_int = 0x00000001; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SA_NODEFER: ::c_int = 0x40000000; +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_RESETHAND: ::c_int = 0x80000000; +pub const SA_RESTART: ::c_int = 0x10000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; + +pub const RTLD_GLOBAL: ::c_int = 0x00100; +pub const RTLD_NOW: ::c_int = 2; +pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; + +// From NDK's linux/auxvec.h +pub const AT_NULL: ::c_ulong = 0; +pub const AT_IGNORE: ::c_ulong = 1; +pub const AT_EXECFD: ::c_ulong = 2; +pub const AT_PHDR: ::c_ulong = 3; +pub const AT_PHENT: ::c_ulong = 4; +pub const AT_PHNUM: ::c_ulong = 5; +pub const AT_PAGESZ: ::c_ulong = 6; +pub const AT_BASE: ::c_ulong = 7; +pub const AT_FLAGS: ::c_ulong = 8; +pub const AT_ENTRY: ::c_ulong = 9; +pub const AT_NOTELF: ::c_ulong = 10; +pub const AT_UID: ::c_ulong = 11; +pub const AT_EUID: ::c_ulong = 12; +pub const AT_GID: ::c_ulong = 13; +pub const AT_EGID: ::c_ulong = 14; +pub const AT_PLATFORM: ::c_ulong = 15; +pub const AT_HWCAP: ::c_ulong = 16; +pub const AT_CLKTCK: ::c_ulong = 17; +pub const AT_SECURE: ::c_ulong = 23; +pub const AT_BASE_PLATFORM: ::c_ulong = 24; +pub const AT_RANDOM: ::c_ulong = 25; +pub const AT_HWCAP2: ::c_ulong = 26; +pub const AT_EXECFN: ::c_ulong = 31; + +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + value: 0, + __reserved: [0; 36], +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + value: 0, + __reserved: [0; 44], +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + numLocks: 0, + writerThreadId: 0, + pendingReaders: 0, + pendingWriters: 0, + attr: 0, + __reserved: [0; 36], +}; +pub const PTHREAD_STACK_MIN: ::size_t = 4096 * 4; +pub const CPU_SETSIZE: ::size_t = 1024; +pub const __CPU_BITS: ::size_t = 64; + +pub const UT_LINESIZE: usize = 32; +pub const UT_NAMESIZE: usize = 32; +pub const UT_HOSTSIZE: usize = 256; + +f! { + // Sadly, Android before 5.0 (API level 21), the accept4 syscall is not + // exposed by the libc. As work-around, we implement it through `syscall` + // directly. This workaround can be removed if the minimum version of + // Android is bumped. When the workaround is removed, `accept4` can be + // moved back to `linux_like/mod.rs` + pub fn accept4( + fd: ::c_int, + addr: *mut ::sockaddr, + len: *mut ::socklen_t, + flg: ::c_int + ) -> ::c_int { + ::syscall(SYS_accept4, fd, addr, len, flg) as ::c_int + } +} + +extern "C" { + pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; + pub fn __system_property_wait( + pi: *const ::prop_info, + __old_serial: u32, + __new_serial_ptr: *mut u32, + __relative_timeout: *const ::timespec, + ) -> bool; +} + +cfg_if! { + if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } else if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } else if #[cfg(target_arch = "riscv64")] { + mod riscv64; + pub use self::riscv64::*; + } else { + // Unknown target_arch + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/align.rs new file mode 100644 index 000000000..8e949963a --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f32; 8] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/mod.rs new file mode 100644 index 000000000..9d414dc15 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/mod.rs @@ -0,0 +1,353 @@ +pub type c_char = i8; +pub type wchar_t = u32; +pub type greg_t = i64; +pub type __u64 = ::c_ulonglong; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::c_uint, + pub st_nlink: ::c_uint, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad1: ::c_ulong, + pub st_size: ::off64_t, + pub st_blksize: ::c_int, + __pad2: ::c_int, + pub st_blocks: ::c_long, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused4: ::c_uint, + __unused5: ::c_uint, + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::c_uint, + pub st_nlink: ::c_uint, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad1: ::c_ulong, + pub st_size: ::off64_t, + pub st_blksize: ::c_int, + __pad2: ::c_int, + pub st_blocks: ::c_long, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused4: ::c_uint, + __unused5: ::c_uint, + } +} + +pub const O_DIRECT: ::c_int = 0x40000; +pub const O_DIRECTORY: ::c_int = 0x200000; +pub const O_NOFOLLOW: ::c_int = 0x400000; +pub const O_LARGEFILE: ::c_int = 0x100000; + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; + +// From NDK's asm/hwcap.h +pub const COMPAT_HWCAP_ISA_I: ::c_ulong = 1 << (b'I' - b'A'); +pub const COMPAT_HWCAP_ISA_M: ::c_ulong = 1 << (b'M' - b'A'); +pub const COMPAT_HWCAP_ISA_A: ::c_ulong = 1 << (b'A' - b'A'); +pub const COMPAT_HWCAP_ISA_F: ::c_ulong = 1 << (b'F' - b'A'); +pub const COMPAT_HWCAP_ISA_D: ::c_ulong = 1 << (b'D' - b'A'); +pub const COMPAT_HWCAP_ISA_C: ::c_ulong = 1 << (b'C' - b'A'); + +pub const SYS_io_setup: ::c_long = 0; +pub const SYS_io_destroy: ::c_long = 1; +pub const SYS_io_submit: ::c_long = 2; +pub const SYS_io_cancel: ::c_long = 3; +pub const SYS_io_getevents: ::c_long = 4; +pub const SYS_setxattr: ::c_long = 5; +pub const SYS_lsetxattr: ::c_long = 6; +pub const SYS_fsetxattr: ::c_long = 7; +pub const SYS_getxattr: ::c_long = 8; +pub const SYS_lgetxattr: ::c_long = 9; +pub const SYS_fgetxattr: ::c_long = 10; +pub const SYS_listxattr: ::c_long = 11; +pub const SYS_llistxattr: ::c_long = 12; +pub const SYS_flistxattr: ::c_long = 13; +pub const SYS_removexattr: ::c_long = 14; +pub const SYS_lremovexattr: ::c_long = 15; +pub const SYS_fremovexattr: ::c_long = 16; +pub const SYS_getcwd: ::c_long = 17; +pub const SYS_lookup_dcookie: ::c_long = 18; +pub const SYS_eventfd2: ::c_long = 19; +pub const SYS_epoll_create1: ::c_long = 20; +pub const SYS_epoll_ctl: ::c_long = 21; +pub const SYS_epoll_pwait: ::c_long = 22; +pub const SYS_dup: ::c_long = 23; +pub const SYS_dup3: ::c_long = 24; +pub const SYS_inotify_init1: ::c_long = 26; +pub const SYS_inotify_add_watch: ::c_long = 27; +pub const SYS_inotify_rm_watch: ::c_long = 28; +pub const SYS_ioctl: ::c_long = 29; +pub const SYS_ioprio_set: ::c_long = 30; +pub const SYS_ioprio_get: ::c_long = 31; +pub const SYS_flock: ::c_long = 32; +pub const SYS_mknodat: ::c_long = 33; +pub const SYS_mkdirat: ::c_long = 34; +pub const SYS_unlinkat: ::c_long = 35; +pub const SYS_symlinkat: ::c_long = 36; +pub const SYS_linkat: ::c_long = 37; +pub const SYS_renameat: ::c_long = 38; +pub const SYS_umount2: ::c_long = 39; +pub const SYS_mount: ::c_long = 40; +pub const SYS_pivot_root: ::c_long = 41; +pub const SYS_nfsservctl: ::c_long = 42; +pub const SYS_fallocate: ::c_long = 47; +pub const SYS_faccessat: ::c_long = 48; +pub const SYS_chdir: ::c_long = 49; +pub const SYS_fchdir: ::c_long = 50; +pub const SYS_chroot: ::c_long = 51; +pub const SYS_fchmod: ::c_long = 52; +pub const SYS_fchmodat: ::c_long = 53; +pub const SYS_fchownat: ::c_long = 54; +pub const SYS_fchown: ::c_long = 55; +pub const SYS_openat: ::c_long = 56; +pub const SYS_close: ::c_long = 57; +pub const SYS_vhangup: ::c_long = 58; +pub const SYS_pipe2: ::c_long = 59; +pub const SYS_quotactl: ::c_long = 60; +pub const SYS_getdents64: ::c_long = 61; +pub const SYS_read: ::c_long = 63; +pub const SYS_write: ::c_long = 64; +pub const SYS_readv: ::c_long = 65; +pub const SYS_writev: ::c_long = 66; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_preadv: ::c_long = 69; +pub const SYS_pwritev: ::c_long = 70; +pub const SYS_pselect6: ::c_long = 72; +pub const SYS_ppoll: ::c_long = 73; +pub const SYS_signalfd4: ::c_long = 74; +pub const SYS_vmsplice: ::c_long = 75; +pub const SYS_splice: ::c_long = 76; +pub const SYS_tee: ::c_long = 77; +pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_sync: ::c_long = 81; +pub const SYS_fsync: ::c_long = 82; +pub const SYS_fdatasync: ::c_long = 83; +pub const SYS_sync_file_range: ::c_long = 84; +pub const SYS_timerfd_create: ::c_long = 85; +pub const SYS_timerfd_settime: ::c_long = 86; +pub const SYS_timerfd_gettime: ::c_long = 87; +pub const SYS_utimensat: ::c_long = 88; +pub const SYS_acct: ::c_long = 89; +pub const SYS_capget: ::c_long = 90; +pub const SYS_capset: ::c_long = 91; +pub const SYS_personality: ::c_long = 92; +pub const SYS_exit: ::c_long = 93; +pub const SYS_exit_group: ::c_long = 94; +pub const SYS_waitid: ::c_long = 95; +pub const SYS_set_tid_address: ::c_long = 96; +pub const SYS_unshare: ::c_long = 97; +pub const SYS_futex: ::c_long = 98; +pub const SYS_set_robust_list: ::c_long = 99; +pub const SYS_get_robust_list: ::c_long = 100; +pub const SYS_nanosleep: ::c_long = 101; +pub const SYS_getitimer: ::c_long = 102; +pub const SYS_setitimer: ::c_long = 103; +pub const SYS_kexec_load: ::c_long = 104; +pub const SYS_init_module: ::c_long = 105; +pub const SYS_delete_module: ::c_long = 106; +pub const SYS_timer_create: ::c_long = 107; +pub const SYS_timer_gettime: ::c_long = 108; +pub const SYS_timer_getoverrun: ::c_long = 109; +pub const SYS_timer_settime: ::c_long = 110; +pub const SYS_timer_delete: ::c_long = 111; +pub const SYS_clock_settime: ::c_long = 112; +pub const SYS_clock_gettime: ::c_long = 113; +pub const SYS_clock_getres: ::c_long = 114; +pub const SYS_clock_nanosleep: ::c_long = 115; +pub const SYS_syslog: ::c_long = 116; +pub const SYS_ptrace: ::c_long = 117; +pub const SYS_sched_setparam: ::c_long = 118; +pub const SYS_sched_setscheduler: ::c_long = 119; +pub const SYS_sched_getscheduler: ::c_long = 120; +pub const SYS_sched_getparam: ::c_long = 121; +pub const SYS_sched_setaffinity: ::c_long = 122; +pub const SYS_sched_getaffinity: ::c_long = 123; +pub const SYS_sched_yield: ::c_long = 124; +pub const SYS_sched_get_priority_max: ::c_long = 125; +pub const SYS_sched_get_priority_min: ::c_long = 126; +pub const SYS_sched_rr_get_interval: ::c_long = 127; +pub const SYS_restart_syscall: ::c_long = 128; +pub const SYS_kill: ::c_long = 129; +pub const SYS_tkill: ::c_long = 130; +pub const SYS_tgkill: ::c_long = 131; +pub const SYS_sigaltstack: ::c_long = 132; +pub const SYS_rt_sigsuspend: ::c_long = 133; +pub const SYS_rt_sigaction: ::c_long = 134; +pub const SYS_rt_sigprocmask: ::c_long = 135; +pub const SYS_rt_sigpending: ::c_long = 136; +pub const SYS_rt_sigtimedwait: ::c_long = 137; +pub const SYS_rt_sigqueueinfo: ::c_long = 138; +pub const SYS_rt_sigreturn: ::c_long = 139; +pub const SYS_setpriority: ::c_long = 140; +pub const SYS_getpriority: ::c_long = 141; +pub const SYS_reboot: ::c_long = 142; +pub const SYS_setregid: ::c_long = 143; +pub const SYS_setgid: ::c_long = 144; +pub const SYS_setreuid: ::c_long = 145; +pub const SYS_setuid: ::c_long = 146; +pub const SYS_setresuid: ::c_long = 147; +pub const SYS_getresuid: ::c_long = 148; +pub const SYS_setresgid: ::c_long = 149; +pub const SYS_getresgid: ::c_long = 150; +pub const SYS_setfsuid: ::c_long = 151; +pub const SYS_setfsgid: ::c_long = 152; +pub const SYS_times: ::c_long = 153; +pub const SYS_setpgid: ::c_long = 154; +pub const SYS_getpgid: ::c_long = 155; +pub const SYS_getsid: ::c_long = 156; +pub const SYS_setsid: ::c_long = 157; +pub const SYS_getgroups: ::c_long = 158; +pub const SYS_setgroups: ::c_long = 159; +pub const SYS_uname: ::c_long = 160; +pub const SYS_sethostname: ::c_long = 161; +pub const SYS_setdomainname: ::c_long = 162; +pub const SYS_getrlimit: ::c_long = 163; +pub const SYS_setrlimit: ::c_long = 164; +pub const SYS_getrusage: ::c_long = 165; +pub const SYS_umask: ::c_long = 166; +pub const SYS_prctl: ::c_long = 167; +pub const SYS_getcpu: ::c_long = 168; +pub const SYS_gettimeofday: ::c_long = 169; +pub const SYS_settimeofday: ::c_long = 170; +pub const SYS_adjtimex: ::c_long = 171; +pub const SYS_getpid: ::c_long = 172; +pub const SYS_getppid: ::c_long = 173; +pub const SYS_getuid: ::c_long = 174; +pub const SYS_geteuid: ::c_long = 175; +pub const SYS_getgid: ::c_long = 176; +pub const SYS_getegid: ::c_long = 177; +pub const SYS_gettid: ::c_long = 178; +pub const SYS_sysinfo: ::c_long = 179; +pub const SYS_mq_open: ::c_long = 180; +pub const SYS_mq_unlink: ::c_long = 181; +pub const SYS_mq_timedsend: ::c_long = 182; +pub const SYS_mq_timedreceive: ::c_long = 183; +pub const SYS_mq_notify: ::c_long = 184; +pub const SYS_mq_getsetattr: ::c_long = 185; +pub const SYS_msgget: ::c_long = 186; +pub const SYS_msgctl: ::c_long = 187; +pub const SYS_msgrcv: ::c_long = 188; +pub const SYS_msgsnd: ::c_long = 189; +pub const SYS_semget: ::c_long = 190; +pub const SYS_semctl: ::c_long = 191; +pub const SYS_semtimedop: ::c_long = 192; +pub const SYS_semop: ::c_long = 193; +pub const SYS_shmget: ::c_long = 194; +pub const SYS_shmctl: ::c_long = 195; +pub const SYS_shmat: ::c_long = 196; +pub const SYS_shmdt: ::c_long = 197; +pub const SYS_socket: ::c_long = 198; +pub const SYS_socketpair: ::c_long = 199; +pub const SYS_bind: ::c_long = 200; +pub const SYS_listen: ::c_long = 201; +pub const SYS_accept: ::c_long = 202; +pub const SYS_connect: ::c_long = 203; +pub const SYS_getsockname: ::c_long = 204; +pub const SYS_getpeername: ::c_long = 205; +pub const SYS_sendto: ::c_long = 206; +pub const SYS_recvfrom: ::c_long = 207; +pub const SYS_setsockopt: ::c_long = 208; +pub const SYS_getsockopt: ::c_long = 209; +pub const SYS_shutdown: ::c_long = 210; +pub const SYS_sendmsg: ::c_long = 211; +pub const SYS_recvmsg: ::c_long = 212; +pub const SYS_readahead: ::c_long = 213; +pub const SYS_brk: ::c_long = 214; +pub const SYS_munmap: ::c_long = 215; +pub const SYS_mremap: ::c_long = 216; +pub const SYS_add_key: ::c_long = 217; +pub const SYS_request_key: ::c_long = 218; +pub const SYS_keyctl: ::c_long = 219; +pub const SYS_clone: ::c_long = 220; +pub const SYS_execve: ::c_long = 221; +pub const SYS_swapon: ::c_long = 224; +pub const SYS_swapoff: ::c_long = 225; +pub const SYS_mprotect: ::c_long = 226; +pub const SYS_msync: ::c_long = 227; +pub const SYS_mlock: ::c_long = 228; +pub const SYS_munlock: ::c_long = 229; +pub const SYS_mlockall: ::c_long = 230; +pub const SYS_munlockall: ::c_long = 231; +pub const SYS_mincore: ::c_long = 232; +pub const SYS_madvise: ::c_long = 233; +pub const SYS_remap_file_pages: ::c_long = 234; +pub const SYS_mbind: ::c_long = 235; +pub const SYS_get_mempolicy: ::c_long = 236; +pub const SYS_set_mempolicy: ::c_long = 237; +pub const SYS_migrate_pages: ::c_long = 238; +pub const SYS_move_pages: ::c_long = 239; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; +pub const SYS_perf_event_open: ::c_long = 241; +pub const SYS_accept4: ::c_long = 242; +pub const SYS_recvmmsg: ::c_long = 243; +pub const SYS_arch_specific_syscall: ::c_long = 244; +pub const SYS_wait4: ::c_long = 260; +pub const SYS_prlimit64: ::c_long = 261; +pub const SYS_fanotify_init: ::c_long = 262; +pub const SYS_fanotify_mark: ::c_long = 263; +pub const SYS_name_to_handle_at: ::c_long = 264; +pub const SYS_open_by_handle_at: ::c_long = 265; +pub const SYS_clock_adjtime: ::c_long = 266; +pub const SYS_syncfs: ::c_long = 267; +pub const SYS_setns: ::c_long = 268; +pub const SYS_sendmmsg: ::c_long = 269; +pub const SYS_process_vm_readv: ::c_long = 270; +pub const SYS_process_vm_writev: ::c_long = 271; +pub const SYS_kcmp: ::c_long = 272; +pub const SYS_finit_module: ::c_long = 273; +pub const SYS_sched_setattr: ::c_long = 274; +pub const SYS_sched_getattr: ::c_long = 275; +pub const SYS_renameat2: ::c_long = 276; +pub const SYS_seccomp: ::c_long = 277; +pub const SYS_getrandom: ::c_long = 278; +pub const SYS_memfd_create: ::c_long = 279; +pub const SYS_bpf: ::c_long = 280; +pub const SYS_execveat: ::c_long = 281; +pub const SYS_userfaultfd: ::c_long = 282; +pub const SYS_membarrier: ::c_long = 283; +pub const SYS_mlock2: ::c_long = 284; +pub const SYS_copy_file_range: ::c_long = 285; +pub const SYS_preadv2: ::c_long = 286; +pub const SYS_pwritev2: ::c_long = 287; +pub const SYS_pkey_mprotect: ::c_long = 288; +pub const SYS_pkey_alloc: ::c_long = 289; +pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_syscalls: ::c_long = 436; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/align.rs new file mode 100644 index 000000000..7ca870fd0 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/mod.rs new file mode 100644 index 000000000..be6b5011c --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -0,0 +1,802 @@ +pub type c_char = i8; +pub type wchar_t = i32; +pub type greg_t = i64; +pub type __u64 = ::c_ulonglong; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::c_ulong, + pub st_mode: ::c_uint, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_size: ::off64_t, + pub st_blksize: ::c_long, + pub st_blocks: ::c_long, + pub st_atime: ::c_long, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::c_long, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::c_long, + pub st_ctime_nsec: ::c_long, + __unused: [::c_long; 3], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::c_ulong, + pub st_mode: ::c_uint, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_size: ::off64_t, + pub st_blksize: ::c_long, + pub st_blocks: ::c_long, + pub st_atime: ::c_long, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::c_long, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::c_long, + pub st_ctime_nsec: ::c_long, + __unused: [::c_long; 3], + } + + pub struct _libc_xmmreg { + pub element: [u32; 4], + } + + pub struct user_regs_struct { + pub r15: ::c_ulong, + pub r14: ::c_ulong, + pub r13: ::c_ulong, + pub r12: ::c_ulong, + pub rbp: ::c_ulong, + pub rbx: ::c_ulong, + pub r11: ::c_ulong, + pub r10: ::c_ulong, + pub r9: ::c_ulong, + pub r8: ::c_ulong, + pub rax: ::c_ulong, + pub rcx: ::c_ulong, + pub rdx: ::c_ulong, + pub rsi: ::c_ulong, + pub rdi: ::c_ulong, + pub orig_rax: ::c_ulong, + pub rip: ::c_ulong, + pub cs: ::c_ulong, + pub eflags: ::c_ulong, + pub rsp: ::c_ulong, + pub ss: ::c_ulong, + pub fs_base: ::c_ulong, + pub gs_base: ::c_ulong, + pub ds: ::c_ulong, + pub es: ::c_ulong, + pub fs: ::c_ulong, + pub gs: ::c_ulong, + } + + pub struct user { + pub regs: user_regs_struct, + pub u_fpvalid: ::c_int, + pub i387: user_fpregs_struct, + pub u_tsize: ::c_ulong, + pub u_dsize: ::c_ulong, + pub u_ssize: ::c_ulong, + pub start_code: ::c_ulong, + pub start_stack: ::c_ulong, + pub signal: ::c_long, + __reserved: ::c_int, + #[cfg(target_pointer_width = "32")] + __pad1: u32, + pub u_ar0: *mut user_regs_struct, + #[cfg(target_pointer_width = "32")] + __pad2: u32, + pub u_fpstate: *mut user_fpregs_struct, + pub magic: ::c_ulong, + pub u_comm: [::c_char; 32], + pub u_debugreg: [::c_ulong; 8], + pub error_code: ::c_ulong, + pub fault_address: ::c_ulong, + } + +} + +cfg_if! { + if #[cfg(libc_union)] { + s_no_extra_traits! { + pub union __c_anonymous_uc_sigmask { + uc_sigmask: ::sigset_t, + uc_sigmask64: ::sigset64_t, + } + } + + cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for __c_anonymous_uc_sigmask { + fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { + unsafe { self.uc_sigmask == other.uc_sigmask } + } + } + impl Eq for __c_anonymous_uc_sigmask {} + impl ::fmt::Debug for __c_anonymous_uc_sigmask { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uc_sigmask") + .field("uc_sigmask", unsafe { &self.uc_sigmask }) + .finish() + } + } + impl ::hash::Hash for __c_anonymous_uc_sigmask { + fn hash(&self, state: &mut H) { + unsafe { self.uc_sigmask.hash(state) } + } + } + } + } + } +} + +s_no_extra_traits! { + pub struct _libc_fpxreg { + pub significand: [u16; 4], + pub exponent: u16, + __padding: [u16; 3], + } + + pub struct _libc_fpstate { + pub cwd: u16, + pub swd: u16, + pub ftw: u16, + pub fop: u16, + pub rip: u64, + pub rdp: u64, + pub mxcsr: u32, + pub mxcr_mask: u32, + pub _st: [_libc_fpxreg; 8], + pub _xmm: [_libc_xmmreg; 16], + __private: [u32; 24], + } + + pub struct mcontext_t { + pub gregs: [greg_t; 23], + pub fpregs: *mut _libc_fpstate, + __private: [u64; 8], + } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask64: __c_anonymous_uc_sigmask, + __fpregs_mem: _libc_fpstate, + } + + pub struct user_fpregs_struct { + pub cwd: ::c_ushort, + pub swd: ::c_ushort, + pub ftw: ::c_ushort, + pub fop: ::c_ushort, + pub rip: ::c_ulong, + pub rdp: ::c_ulong, + pub mxcsr: ::c_uint, + pub mxcr_mask: ::c_uint, + pub st_space: [::c_uint; 32], + pub xmm_space: [::c_uint; 64], + padding: [::c_uint; 24], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for _libc_fpxreg { + fn eq(&self, other: &Self) -> bool { + self.significand == other.significand + && self.exponent == other.exponent + // Ignore padding field + } + } + impl Eq for _libc_fpxreg {} + impl ::fmt::Debug for _libc_fpxreg { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("_libc_fpxreg") + .field("significand", &self.significand) + .field("exponent", &self.exponent) + // Ignore padding field + .finish() + } + } + impl ::hash::Hash for _libc_fpxreg { + fn hash(&self, state: &mut H) { + self.significand.hash(state); + self.exponent.hash(state); + // Ignore padding field + } + } + + impl PartialEq for _libc_fpstate { + fn eq(&self, other: &Self) -> bool { + self.cwd == other.cwd + && self.swd == other.swd + && self.ftw == other.ftw + && self.fop == other.fop + && self.rip == other.rip + && self.rdp == other.rdp + && self.mxcsr == other.mxcsr + && self.mxcr_mask == other.mxcr_mask + && self._st == other._st + && self._xmm == other._xmm + // Ignore padding field + } + } + impl Eq for _libc_fpstate {} + impl ::fmt::Debug for _libc_fpstate { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("_libc_fpstate") + .field("cwd", &self.cwd) + .field("swd", &self.swd) + .field("ftw", &self.ftw) + .field("fop", &self.fop) + .field("rip", &self.rip) + .field("rdp", &self.rdp) + .field("mxcsr", &self.mxcsr) + .field("mxcr_mask", &self.mxcr_mask) + .field("_st", &self._st) + .field("_xmm", &self._xmm) + // Ignore padding field + .finish() + } + } + impl ::hash::Hash for _libc_fpstate { + fn hash(&self, state: &mut H) { + self.cwd.hash(state); + self.swd.hash(state); + self.ftw.hash(state); + self.fop.hash(state); + self.rip.hash(state); + self.rdp.hash(state); + self.mxcsr.hash(state); + self.mxcr_mask.hash(state); + self._st.hash(state); + self._xmm.hash(state); + // Ignore padding field + } + } + + impl PartialEq for mcontext_t { + fn eq(&self, other: &Self) -> bool { + self.gregs == other.gregs + && self.fpregs == other.fpregs + // Ignore padding field + } + } + impl Eq for mcontext_t {} + impl ::fmt::Debug for mcontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mcontext_t") + .field("gregs", &self.gregs) + .field("fpregs", &self.fpregs) + // Ignore padding field + .finish() + } + } + impl ::hash::Hash for mcontext_t { + fn hash(&self, state: &mut H) { + self.gregs.hash(state); + self.fpregs.hash(state); + // Ignore padding field + } + } + + impl PartialEq for ucontext_t { + fn eq(&self, other: &Self) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_sigmask64 == other.uc_sigmask64 + // Ignore padding field + } + } + impl Eq for ucontext_t {} + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_flags) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field("uc_sigmask64", &self.uc_sigmask64) + // Ignore padding field + .finish() + } + } + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_flags.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + self.uc_sigmask64.hash(state); + // Ignore padding field + } + } + + impl PartialEq for user_fpregs_struct { + fn eq(&self, other: &user_fpregs_struct) -> bool { + self.cwd == other.cwd + && self.swd == other.swd + && self.ftw == other.ftw + && self.fop == other.fop + && self.rip == other.rip + && self.rdp == other.rdp + && self.mxcsr == other.mxcsr + && self.mxcr_mask == other.mxcr_mask + && self.st_space == other.st_space + && self + .xmm_space + .iter() + .zip(other.xmm_space.iter()) + .all(|(a,b)| a == b) + // Ignore padding field + } + } + + impl Eq for user_fpregs_struct {} + + impl ::fmt::Debug for user_fpregs_struct { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("user_fpregs_struct") + .field("cwd", &self.cwd) + .field("swd", &self.swd) + .field("ftw", &self.ftw) + .field("fop", &self.fop) + .field("rip", &self.rip) + .field("rdp", &self.rdp) + .field("mxcsr", &self.mxcsr) + .field("mxcr_mask", &self.mxcr_mask) + .field("st_space", &self.st_space) + // FIXME: .field("xmm_space", &self.xmm_space) + // Ignore padding field + .finish() + } + } + + impl ::hash::Hash for user_fpregs_struct { + fn hash(&self, state: &mut H) { + self.cwd.hash(state); + self.swd.hash(state); + self.ftw.hash(state); + self.fop.hash(state); + self.rip.hash(state); + self.rdp.hash(state); + self.mxcsr.hash(state); + self.mxcr_mask.hash(state); + self.st_space.hash(state); + self.xmm_space.hash(state); + // Ignore padding field + } + } + } +} + +pub const O_DIRECT: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_LARGEFILE: ::c_int = 0o0100000; + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; + +pub const MAP_32BIT: ::c_int = 0x40; + +// Syscall table + +pub const SYS_read: ::c_long = 0; +pub const SYS_write: ::c_long = 1; +pub const SYS_open: ::c_long = 2; +pub const SYS_close: ::c_long = 3; +pub const SYS_stat: ::c_long = 4; +pub const SYS_fstat: ::c_long = 5; +pub const SYS_lstat: ::c_long = 6; +pub const SYS_poll: ::c_long = 7; +pub const SYS_lseek: ::c_long = 8; +pub const SYS_mmap: ::c_long = 9; +pub const SYS_mprotect: ::c_long = 10; +pub const SYS_munmap: ::c_long = 11; +pub const SYS_brk: ::c_long = 12; +pub const SYS_rt_sigaction: ::c_long = 13; +pub const SYS_rt_sigprocmask: ::c_long = 14; +pub const SYS_rt_sigreturn: ::c_long = 15; +pub const SYS_ioctl: ::c_long = 16; +pub const SYS_pread64: ::c_long = 17; +pub const SYS_pwrite64: ::c_long = 18; +pub const SYS_readv: ::c_long = 19; +pub const SYS_writev: ::c_long = 20; +pub const SYS_access: ::c_long = 21; +pub const SYS_pipe: ::c_long = 22; +pub const SYS_select: ::c_long = 23; +pub const SYS_sched_yield: ::c_long = 24; +pub const SYS_mremap: ::c_long = 25; +pub const SYS_msync: ::c_long = 26; +pub const SYS_mincore: ::c_long = 27; +pub const SYS_madvise: ::c_long = 28; +pub const SYS_shmget: ::c_long = 29; +pub const SYS_shmat: ::c_long = 30; +pub const SYS_shmctl: ::c_long = 31; +pub const SYS_dup: ::c_long = 32; +pub const SYS_dup2: ::c_long = 33; +pub const SYS_pause: ::c_long = 34; +pub const SYS_nanosleep: ::c_long = 35; +pub const SYS_getitimer: ::c_long = 36; +pub const SYS_alarm: ::c_long = 37; +pub const SYS_setitimer: ::c_long = 38; +pub const SYS_getpid: ::c_long = 39; +pub const SYS_sendfile: ::c_long = 40; +pub const SYS_socket: ::c_long = 41; +pub const SYS_connect: ::c_long = 42; +pub const SYS_accept: ::c_long = 43; +pub const SYS_sendto: ::c_long = 44; +pub const SYS_recvfrom: ::c_long = 45; +pub const SYS_sendmsg: ::c_long = 46; +pub const SYS_recvmsg: ::c_long = 47; +pub const SYS_shutdown: ::c_long = 48; +pub const SYS_bind: ::c_long = 49; +pub const SYS_listen: ::c_long = 50; +pub const SYS_getsockname: ::c_long = 51; +pub const SYS_getpeername: ::c_long = 52; +pub const SYS_socketpair: ::c_long = 53; +pub const SYS_setsockopt: ::c_long = 54; +pub const SYS_getsockopt: ::c_long = 55; +pub const SYS_clone: ::c_long = 56; +pub const SYS_fork: ::c_long = 57; +pub const SYS_vfork: ::c_long = 58; +pub const SYS_execve: ::c_long = 59; +pub const SYS_exit: ::c_long = 60; +pub const SYS_wait4: ::c_long = 61; +pub const SYS_kill: ::c_long = 62; +pub const SYS_uname: ::c_long = 63; +pub const SYS_semget: ::c_long = 64; +pub const SYS_semop: ::c_long = 65; +pub const SYS_semctl: ::c_long = 66; +pub const SYS_shmdt: ::c_long = 67; +pub const SYS_msgget: ::c_long = 68; +pub const SYS_msgsnd: ::c_long = 69; +pub const SYS_msgrcv: ::c_long = 70; +pub const SYS_msgctl: ::c_long = 71; +pub const SYS_fcntl: ::c_long = 72; +pub const SYS_flock: ::c_long = 73; +pub const SYS_fsync: ::c_long = 74; +pub const SYS_fdatasync: ::c_long = 75; +pub const SYS_truncate: ::c_long = 76; +pub const SYS_ftruncate: ::c_long = 77; +pub const SYS_getdents: ::c_long = 78; +pub const SYS_getcwd: ::c_long = 79; +pub const SYS_chdir: ::c_long = 80; +pub const SYS_fchdir: ::c_long = 81; +pub const SYS_rename: ::c_long = 82; +pub const SYS_mkdir: ::c_long = 83; +pub const SYS_rmdir: ::c_long = 84; +pub const SYS_creat: ::c_long = 85; +pub const SYS_link: ::c_long = 86; +pub const SYS_unlink: ::c_long = 87; +pub const SYS_symlink: ::c_long = 88; +pub const SYS_readlink: ::c_long = 89; +pub const SYS_chmod: ::c_long = 90; +pub const SYS_fchmod: ::c_long = 91; +pub const SYS_chown: ::c_long = 92; +pub const SYS_fchown: ::c_long = 93; +pub const SYS_lchown: ::c_long = 94; +pub const SYS_umask: ::c_long = 95; +pub const SYS_gettimeofday: ::c_long = 96; +pub const SYS_getrlimit: ::c_long = 97; +pub const SYS_getrusage: ::c_long = 98; +pub const SYS_sysinfo: ::c_long = 99; +pub const SYS_times: ::c_long = 100; +pub const SYS_ptrace: ::c_long = 101; +pub const SYS_getuid: ::c_long = 102; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_getgid: ::c_long = 104; +pub const SYS_setuid: ::c_long = 105; +pub const SYS_setgid: ::c_long = 106; +pub const SYS_geteuid: ::c_long = 107; +pub const SYS_getegid: ::c_long = 108; +pub const SYS_setpgid: ::c_long = 109; +pub const SYS_getppid: ::c_long = 110; +pub const SYS_getpgrp: ::c_long = 111; +pub const SYS_setsid: ::c_long = 112; +pub const SYS_setreuid: ::c_long = 113; +pub const SYS_setregid: ::c_long = 114; +pub const SYS_getgroups: ::c_long = 115; +pub const SYS_setgroups: ::c_long = 116; +pub const SYS_setresuid: ::c_long = 117; +pub const SYS_getresuid: ::c_long = 118; +pub const SYS_setresgid: ::c_long = 119; +pub const SYS_getresgid: ::c_long = 120; +pub const SYS_getpgid: ::c_long = 121; +pub const SYS_setfsuid: ::c_long = 122; +pub const SYS_setfsgid: ::c_long = 123; +pub const SYS_getsid: ::c_long = 124; +pub const SYS_capget: ::c_long = 125; +pub const SYS_capset: ::c_long = 126; +pub const SYS_rt_sigpending: ::c_long = 127; +pub const SYS_rt_sigtimedwait: ::c_long = 128; +pub const SYS_rt_sigqueueinfo: ::c_long = 129; +pub const SYS_rt_sigsuspend: ::c_long = 130; +pub const SYS_sigaltstack: ::c_long = 131; +pub const SYS_utime: ::c_long = 132; +pub const SYS_mknod: ::c_long = 133; +pub const SYS_uselib: ::c_long = 134; +pub const SYS_personality: ::c_long = 135; +pub const SYS_ustat: ::c_long = 136; +pub const SYS_statfs: ::c_long = 137; +pub const SYS_fstatfs: ::c_long = 138; +pub const SYS_sysfs: ::c_long = 139; +pub const SYS_getpriority: ::c_long = 140; +pub const SYS_setpriority: ::c_long = 141; +pub const SYS_sched_setparam: ::c_long = 142; +pub const SYS_sched_getparam: ::c_long = 143; +pub const SYS_sched_setscheduler: ::c_long = 144; +pub const SYS_sched_getscheduler: ::c_long = 145; +pub const SYS_sched_get_priority_max: ::c_long = 146; +pub const SYS_sched_get_priority_min: ::c_long = 147; +pub const SYS_sched_rr_get_interval: ::c_long = 148; +pub const SYS_mlock: ::c_long = 149; +pub const SYS_munlock: ::c_long = 150; +pub const SYS_mlockall: ::c_long = 151; +pub const SYS_munlockall: ::c_long = 152; +pub const SYS_vhangup: ::c_long = 153; +pub const SYS_modify_ldt: ::c_long = 154; +pub const SYS_pivot_root: ::c_long = 155; +// FIXME: SYS__sysctl is in the NDK sources but for some reason is +// not available in the tests +// pub const SYS__sysctl: ::c_long = 156; +pub const SYS_prctl: ::c_long = 157; +pub const SYS_arch_prctl: ::c_long = 158; +pub const SYS_adjtimex: ::c_long = 159; +pub const SYS_setrlimit: ::c_long = 160; +pub const SYS_chroot: ::c_long = 161; +pub const SYS_sync: ::c_long = 162; +pub const SYS_acct: ::c_long = 163; +pub const SYS_settimeofday: ::c_long = 164; +pub const SYS_mount: ::c_long = 165; +pub const SYS_umount2: ::c_long = 166; +pub const SYS_swapon: ::c_long = 167; +pub const SYS_swapoff: ::c_long = 168; +pub const SYS_reboot: ::c_long = 169; +pub const SYS_sethostname: ::c_long = 170; +pub const SYS_setdomainname: ::c_long = 171; +pub const SYS_iopl: ::c_long = 172; +pub const SYS_ioperm: ::c_long = 173; +pub const SYS_create_module: ::c_long = 174; +pub const SYS_init_module: ::c_long = 175; +pub const SYS_delete_module: ::c_long = 176; +pub const SYS_get_kernel_syms: ::c_long = 177; +pub const SYS_query_module: ::c_long = 178; +pub const SYS_quotactl: ::c_long = 179; +pub const SYS_nfsservctl: ::c_long = 180; +pub const SYS_getpmsg: ::c_long = 181; +pub const SYS_putpmsg: ::c_long = 182; +pub const SYS_afs_syscall: ::c_long = 183; +pub const SYS_tuxcall: ::c_long = 184; +pub const SYS_security: ::c_long = 185; +pub const SYS_gettid: ::c_long = 186; +pub const SYS_readahead: ::c_long = 187; +pub const SYS_setxattr: ::c_long = 188; +pub const SYS_lsetxattr: ::c_long = 189; +pub const SYS_fsetxattr: ::c_long = 190; +pub const SYS_getxattr: ::c_long = 191; +pub const SYS_lgetxattr: ::c_long = 192; +pub const SYS_fgetxattr: ::c_long = 193; +pub const SYS_listxattr: ::c_long = 194; +pub const SYS_llistxattr: ::c_long = 195; +pub const SYS_flistxattr: ::c_long = 196; +pub const SYS_removexattr: ::c_long = 197; +pub const SYS_lremovexattr: ::c_long = 198; +pub const SYS_fremovexattr: ::c_long = 199; +pub const SYS_tkill: ::c_long = 200; +pub const SYS_time: ::c_long = 201; +pub const SYS_futex: ::c_long = 202; +pub const SYS_sched_setaffinity: ::c_long = 203; +pub const SYS_sched_getaffinity: ::c_long = 204; +pub const SYS_set_thread_area: ::c_long = 205; +pub const SYS_io_setup: ::c_long = 206; +pub const SYS_io_destroy: ::c_long = 207; +pub const SYS_io_getevents: ::c_long = 208; +pub const SYS_io_submit: ::c_long = 209; +pub const SYS_io_cancel: ::c_long = 210; +pub const SYS_get_thread_area: ::c_long = 211; +pub const SYS_lookup_dcookie: ::c_long = 212; +pub const SYS_epoll_create: ::c_long = 213; +pub const SYS_epoll_ctl_old: ::c_long = 214; +pub const SYS_epoll_wait_old: ::c_long = 215; +pub const SYS_remap_file_pages: ::c_long = 216; +pub const SYS_getdents64: ::c_long = 217; +pub const SYS_set_tid_address: ::c_long = 218; +pub const SYS_restart_syscall: ::c_long = 219; +pub const SYS_semtimedop: ::c_long = 220; +pub const SYS_fadvise64: ::c_long = 221; +pub const SYS_timer_create: ::c_long = 222; +pub const SYS_timer_settime: ::c_long = 223; +pub const SYS_timer_gettime: ::c_long = 224; +pub const SYS_timer_getoverrun: ::c_long = 225; +pub const SYS_timer_delete: ::c_long = 226; +pub const SYS_clock_settime: ::c_long = 227; +pub const SYS_clock_gettime: ::c_long = 228; +pub const SYS_clock_getres: ::c_long = 229; +pub const SYS_clock_nanosleep: ::c_long = 230; +pub const SYS_exit_group: ::c_long = 231; +pub const SYS_epoll_wait: ::c_long = 232; +pub const SYS_epoll_ctl: ::c_long = 233; +pub const SYS_tgkill: ::c_long = 234; +pub const SYS_utimes: ::c_long = 235; +pub const SYS_vserver: ::c_long = 236; +pub const SYS_mbind: ::c_long = 237; +pub const SYS_set_mempolicy: ::c_long = 238; +pub const SYS_get_mempolicy: ::c_long = 239; +pub const SYS_mq_open: ::c_long = 240; +pub const SYS_mq_unlink: ::c_long = 241; +pub const SYS_mq_timedsend: ::c_long = 242; +pub const SYS_mq_timedreceive: ::c_long = 243; +pub const SYS_mq_notify: ::c_long = 244; +pub const SYS_mq_getsetattr: ::c_long = 245; +pub const SYS_kexec_load: ::c_long = 246; +pub const SYS_waitid: ::c_long = 247; +pub const SYS_add_key: ::c_long = 248; +pub const SYS_request_key: ::c_long = 249; +pub const SYS_keyctl: ::c_long = 250; +pub const SYS_ioprio_set: ::c_long = 251; +pub const SYS_ioprio_get: ::c_long = 252; +pub const SYS_inotify_init: ::c_long = 253; +pub const SYS_inotify_add_watch: ::c_long = 254; +pub const SYS_inotify_rm_watch: ::c_long = 255; +pub const SYS_migrate_pages: ::c_long = 256; +pub const SYS_openat: ::c_long = 257; +pub const SYS_mkdirat: ::c_long = 258; +pub const SYS_mknodat: ::c_long = 259; +pub const SYS_fchownat: ::c_long = 260; +pub const SYS_futimesat: ::c_long = 261; +pub const SYS_newfstatat: ::c_long = 262; +pub const SYS_unlinkat: ::c_long = 263; +pub const SYS_renameat: ::c_long = 264; +pub const SYS_linkat: ::c_long = 265; +pub const SYS_symlinkat: ::c_long = 266; +pub const SYS_readlinkat: ::c_long = 267; +pub const SYS_fchmodat: ::c_long = 268; +pub const SYS_faccessat: ::c_long = 269; +pub const SYS_pselect6: ::c_long = 270; +pub const SYS_ppoll: ::c_long = 271; +pub const SYS_unshare: ::c_long = 272; +pub const SYS_set_robust_list: ::c_long = 273; +pub const SYS_get_robust_list: ::c_long = 274; +pub const SYS_splice: ::c_long = 275; +pub const SYS_tee: ::c_long = 276; +pub const SYS_sync_file_range: ::c_long = 277; +pub const SYS_vmsplice: ::c_long = 278; +pub const SYS_move_pages: ::c_long = 279; +pub const SYS_utimensat: ::c_long = 280; +pub const SYS_epoll_pwait: ::c_long = 281; +pub const SYS_signalfd: ::c_long = 282; +pub const SYS_timerfd_create: ::c_long = 283; +pub const SYS_eventfd: ::c_long = 284; +pub const SYS_fallocate: ::c_long = 285; +pub const SYS_timerfd_settime: ::c_long = 286; +pub const SYS_timerfd_gettime: ::c_long = 287; +pub const SYS_accept4: ::c_long = 288; +pub const SYS_signalfd4: ::c_long = 289; +pub const SYS_eventfd2: ::c_long = 290; +pub const SYS_epoll_create1: ::c_long = 291; +pub const SYS_dup3: ::c_long = 292; +pub const SYS_pipe2: ::c_long = 293; +pub const SYS_inotify_init1: ::c_long = 294; +pub const SYS_preadv: ::c_long = 295; +pub const SYS_pwritev: ::c_long = 296; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 297; +pub const SYS_perf_event_open: ::c_long = 298; +pub const SYS_recvmmsg: ::c_long = 299; +pub const SYS_fanotify_init: ::c_long = 300; +pub const SYS_fanotify_mark: ::c_long = 301; +pub const SYS_prlimit64: ::c_long = 302; +pub const SYS_name_to_handle_at: ::c_long = 303; +pub const SYS_open_by_handle_at: ::c_long = 304; +pub const SYS_clock_adjtime: ::c_long = 305; +pub const SYS_syncfs: ::c_long = 306; +pub const SYS_sendmmsg: ::c_long = 307; +pub const SYS_setns: ::c_long = 308; +pub const SYS_getcpu: ::c_long = 309; +pub const SYS_process_vm_readv: ::c_long = 310; +pub const SYS_process_vm_writev: ::c_long = 311; +pub const SYS_kcmp: ::c_long = 312; +pub const SYS_finit_module: ::c_long = 313; +pub const SYS_sched_setattr: ::c_long = 314; +pub const SYS_sched_getattr: ::c_long = 315; +pub const SYS_renameat2: ::c_long = 316; +pub const SYS_seccomp: ::c_long = 317; +pub const SYS_getrandom: ::c_long = 318; +pub const SYS_memfd_create: ::c_long = 319; +pub const SYS_kexec_file_load: ::c_long = 320; +pub const SYS_bpf: ::c_long = 321; +pub const SYS_execveat: ::c_long = 322; +pub const SYS_userfaultfd: ::c_long = 323; +pub const SYS_membarrier: ::c_long = 324; +pub const SYS_mlock2: ::c_long = 325; +pub const SYS_copy_file_range: ::c_long = 326; +pub const SYS_preadv2: ::c_long = 327; +pub const SYS_pwritev2: ::c_long = 328; +pub const SYS_pkey_mprotect: ::c_long = 329; +pub const SYS_pkey_alloc: ::c_long = 330; +pub const SYS_pkey_free: ::c_long = 331; +pub const SYS_statx: ::c_long = 332; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; + +// offsets in user_regs_structs, from sys/reg.h +pub const R15: ::c_int = 0; +pub const R14: ::c_int = 1; +pub const R13: ::c_int = 2; +pub const R12: ::c_int = 3; +pub const RBP: ::c_int = 4; +pub const RBX: ::c_int = 5; +pub const R11: ::c_int = 6; +pub const R10: ::c_int = 7; +pub const R9: ::c_int = 8; +pub const R8: ::c_int = 9; +pub const RAX: ::c_int = 10; +pub const RCX: ::c_int = 11; +pub const RDX: ::c_int = 12; +pub const RSI: ::c_int = 13; +pub const RDI: ::c_int = 14; +pub const ORIG_RAX: ::c_int = 15; +pub const RIP: ::c_int = 16; +pub const CS: ::c_int = 17; +pub const EFLAGS: ::c_int = 18; +pub const RSP: ::c_int = 19; +pub const SS: ::c_int = 20; +pub const FS_BASE: ::c_int = 21; +pub const GS_BASE: ::c_int = 22; +pub const DS: ::c_int = 23; +pub const ES: ::c_int = 24; +pub const FS: ::c_int = 25; +pub const GS: ::c_int = 26; + +// offsets in mcontext_t.gregs from sys/ucontext.h +pub const REG_R8: ::c_int = 0; +pub const REG_R9: ::c_int = 1; +pub const REG_R10: ::c_int = 2; +pub const REG_R11: ::c_int = 3; +pub const REG_R12: ::c_int = 4; +pub const REG_R13: ::c_int = 5; +pub const REG_R14: ::c_int = 6; +pub const REG_R15: ::c_int = 7; +pub const REG_RDI: ::c_int = 8; +pub const REG_RSI: ::c_int = 9; +pub const REG_RBP: ::c_int = 10; +pub const REG_RBX: ::c_int = 11; +pub const REG_RDX: ::c_int = 12; +pub const REG_RAX: ::c_int = 13; +pub const REG_RCX: ::c_int = 14; +pub const REG_RSP: ::c_int = 15; +pub const REG_RIP: ::c_int = 16; +pub const REG_EFL: ::c_int = 17; +pub const REG_CSGSFS: ::c_int = 18; +pub const REG_ERR: ::c_int = 19; +pub const REG_TRAPNO: ::c_int = 20; +pub const REG_OLDMASK: ::c_int = 21; +pub const REG_CR2: ::c_int = 22; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/mod.rs new file mode 100644 index 000000000..f3622fdb0 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/mod.rs @@ -0,0 +1,3659 @@ +//! Android-specific definitions for linux-like values + +pub type clock_t = ::c_long; +pub type time_t = ::c_long; +pub type suseconds_t = ::c_long; +pub type off_t = ::c_long; +pub type blkcnt_t = ::c_ulong; +pub type blksize_t = ::c_ulong; +pub type nlink_t = u32; +pub type useconds_t = u32; +pub type pthread_t = ::c_long; +pub type pthread_mutexattr_t = ::c_long; +pub type pthread_rwlockattr_t = ::c_long; +pub type pthread_barrierattr_t = ::c_int; +pub type pthread_condattr_t = ::c_long; +pub type pthread_key_t = ::c_int; +pub type fsfilcnt_t = ::c_ulong; +pub type fsblkcnt_t = ::c_ulong; +pub type nfds_t = ::c_uint; +pub type rlim_t = ::c_ulong; +pub type dev_t = ::c_ulong; +pub type ino_t = ::c_ulong; +pub type ino64_t = u64; +pub type __CPU_BITTYPE = ::c_ulong; +pub type idtype_t = ::c_int; +pub type loff_t = ::c_longlong; +pub type __kernel_loff_t = ::c_longlong; +pub type __kernel_pid_t = ::c_int; + +pub type __u8 = ::c_uchar; +pub type __u16 = ::c_ushort; +pub type __s16 = ::c_short; +pub type __u32 = ::c_uint; +pub type __s32 = ::c_int; + +// linux/elf.h + +pub type Elf32_Addr = u32; +pub type Elf32_Half = u16; +pub type Elf32_Off = u32; +pub type Elf32_Word = u32; + +pub type Elf64_Addr = u64; +pub type Elf64_Half = u16; +pub type Elf64_Off = u64; +pub type Elf64_Word = u32; +pub type Elf64_Xword = u64; + +s! { + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct __fsid_t { + __val: [::c_int; 2], + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::size_t, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::size_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: ::size_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; ::NCCS], + } + + pub struct termios2 { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; 19], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, + } + + pub struct mallinfo { + pub arena: ::size_t, + pub ordblks: ::size_t, + pub smblks: ::size_t, + pub hblks: ::size_t, + pub hblkhd: ::size_t, + pub usmblks: ::size_t, + pub fsmblks: ::size_t, + pub uordblks: ::size_t, + pub fordblks: ::size_t, + pub keepcost: ::size_t, + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::__kernel_loff_t, + pub l_len: ::__kernel_loff_t, + pub l_pid: ::__kernel_pid_t, + } + + pub struct cpu_set_t { + #[cfg(target_pointer_width = "64")] + __bits: [__CPU_BITTYPE; 16], + #[cfg(target_pointer_width = "32")] + __bits: [__CPU_BITTYPE; 1], + } + + pub struct sem_t { + count: ::c_uint, + #[cfg(target_pointer_width = "64")] + __reserved: [::c_int; 3], + } + + pub struct exit_status { + pub e_termination: ::c_short, + pub e_exit: ::c_short, + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + #[cfg(target_pointer_width = "64")] + __f_reserved: [u32; 6], + } + + pub struct signalfd_siginfo { + pub ssi_signo: u32, + pub ssi_errno: i32, + pub ssi_code: i32, + pub ssi_pid: u32, + pub ssi_uid: u32, + pub ssi_fd: i32, + pub ssi_tid: u32, + pub ssi_band: u32, + pub ssi_overrun: u32, + pub ssi_trapno: u32, + pub ssi_status: i32, + pub ssi_int: i32, + pub ssi_ptr: ::c_ulonglong, + pub ssi_utime: ::c_ulonglong, + pub ssi_stime: ::c_ulonglong, + pub ssi_addr: ::c_ulonglong, + pub ssi_addr_lsb: u16, + _pad2: u16, + pub ssi_syscall: i32, + pub ssi_call_addr: u64, + pub ssi_arch: u32, + _pad: [u8; 28], + } + + pub struct itimerspec { + pub it_interval: ::timespec, + pub it_value: ::timespec, + } + + pub struct ucred { + pub pid: ::pid_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + } + + pub struct genlmsghdr { + pub cmd: u8, + pub version: u8, + pub reserved: u16, + } + + pub struct nlmsghdr { + pub nlmsg_len: u32, + pub nlmsg_type: u16, + pub nlmsg_flags: u16, + pub nlmsg_seq: u32, + pub nlmsg_pid: u32, + } + + pub struct nlmsgerr { + pub error: ::c_int, + pub msg: nlmsghdr, + } + + pub struct nl_pktinfo { + pub group: u32, + } + + pub struct nl_mmap_req { + pub nm_block_size: ::c_uint, + pub nm_block_nr: ::c_uint, + pub nm_frame_size: ::c_uint, + pub nm_frame_nr: ::c_uint, + } + + pub struct nl_mmap_hdr { + pub nm_status: ::c_uint, + pub nm_len: ::c_uint, + pub nm_group: u32, + pub nm_pid: u32, + pub nm_uid: u32, + pub nm_gid: u32, + } + + pub struct nlattr { + pub nla_len: u16, + pub nla_type: u16, + } + + pub struct in6_pktinfo { + pub ipi6_addr: ::in6_addr, + pub ipi6_ifindex: ::c_int, + } + + pub struct inotify_event { + pub wd: ::c_int, + pub mask: u32, + pub cookie: u32, + pub len: u32 + } + + pub struct sock_extended_err { + pub ee_errno: u32, + pub ee_origin: u8, + pub ee_type: u8, + pub ee_code: u8, + pub ee_pad: u8, + pub ee_info: u32, + pub ee_data: u32, + } + + pub struct regex_t { + re_magic: ::c_int, + re_nsub: ::size_t, + re_endp: *const ::c_char, + re_guts: *mut ::c_void, + } + + pub struct regmatch_t { + pub rm_so: ::ssize_t, + pub rm_eo: ::ssize_t, + } + + pub struct sockaddr_vm { + pub svm_family: ::sa_family_t, + pub svm_reserved1: ::c_ushort, + pub svm_port: ::c_uint, + pub svm_cid: ::c_uint, + pub svm_zero: [u8; 4] + } + + // linux/elf.h + + pub struct Elf32_Phdr { + pub p_type: Elf32_Word, + pub p_offset: Elf32_Off, + pub p_vaddr: Elf32_Addr, + pub p_paddr: Elf32_Addr, + pub p_filesz: Elf32_Word, + pub p_memsz: Elf32_Word, + pub p_flags: Elf32_Word, + pub p_align: Elf32_Word, + } + + pub struct Elf64_Phdr { + pub p_type: Elf64_Word, + pub p_flags: Elf64_Word, + pub p_offset: Elf64_Off, + pub p_vaddr: Elf64_Addr, + pub p_paddr: Elf64_Addr, + pub p_filesz: Elf64_Xword, + pub p_memsz: Elf64_Xword, + pub p_align: Elf64_Xword, + } + + // link.h + + pub struct dl_phdr_info { + #[cfg(target_pointer_width = "64")] + pub dlpi_addr: Elf64_Addr, + #[cfg(target_pointer_width = "32")] + pub dlpi_addr: Elf32_Addr, + + pub dlpi_name: *const ::c_char, + + #[cfg(target_pointer_width = "64")] + pub dlpi_phdr: *const Elf64_Phdr, + #[cfg(target_pointer_width = "32")] + pub dlpi_phdr: *const Elf32_Phdr, + + #[cfg(target_pointer_width = "64")] + pub dlpi_phnum: Elf64_Half, + #[cfg(target_pointer_width = "32")] + pub dlpi_phnum: Elf32_Half, + + // These fields were added in Android R + pub dlpi_adds: ::c_ulonglong, + pub dlpi_subs: ::c_ulonglong, + pub dlpi_tls_modid: ::size_t, + pub dlpi_tls_data: *mut ::c_void, + } + + // linux/filter.h + pub struct sock_filter { + pub code: ::__u16, + pub jt: ::__u8, + pub jf: ::__u8, + pub k: ::__u32, + } + + pub struct sock_fprog { + pub len: ::c_ushort, + pub filter: *mut sock_filter, + } + + // linux/seccomp.h + pub struct seccomp_data { + pub nr: ::c_int, + pub arch: ::__u32, + pub instruction_pointer: ::__u64, + pub args: [::__u64; 6], + } + + pub struct ptrace_peeksiginfo_args { + pub off: ::__u64, + pub flags: ::__u32, + pub nr: ::__s32, + } + + // linux/input.h + pub struct input_event { + pub time: ::timeval, + pub type_: ::__u16, + pub code: ::__u16, + pub value: ::__s32, + } + + pub struct input_id { + pub bustype: ::__u16, + pub vendor: ::__u16, + pub product: ::__u16, + pub version: ::__u16, + } + + pub struct input_absinfo { + pub value: ::__s32, + pub minimum: ::__s32, + pub maximum: ::__s32, + pub fuzz: ::__s32, + pub flat: ::__s32, + pub resolution: ::__s32, + } + + pub struct input_keymap_entry { + pub flags: ::__u8, + pub len: ::__u8, + pub index: ::__u16, + pub keycode: ::__u32, + pub scancode: [::__u8; 32], + } + + pub struct input_mask { + pub type_: ::__u32, + pub codes_size: ::__u32, + pub codes_ptr: ::__u64, + } + + pub struct ff_replay { + pub length: ::__u16, + pub delay: ::__u16, + } + + pub struct ff_trigger { + pub button: ::__u16, + pub interval: ::__u16, + } + + pub struct ff_envelope { + pub attack_length: ::__u16, + pub attack_level: ::__u16, + pub fade_length: ::__u16, + pub fade_level: ::__u16, + } + + pub struct ff_constant_effect { + pub level: ::__s16, + pub envelope: ff_envelope, + } + + pub struct ff_ramp_effect { + pub start_level: ::__s16, + pub end_level: ::__s16, + pub envelope: ff_envelope, + } + + pub struct ff_condition_effect { + pub right_saturation: ::__u16, + pub left_saturation: ::__u16, + + pub right_coeff: ::__s16, + pub left_coeff: ::__s16, + + pub deadband: ::__u16, + pub center: ::__s16, + } + + pub struct ff_periodic_effect { + pub waveform: ::__u16, + pub period: ::__u16, + pub magnitude: ::__s16, + pub offset: ::__s16, + pub phase: ::__u16, + + pub envelope: ff_envelope, + + pub custom_len: ::__u32, + pub custom_data: *mut ::__s16, + } + + pub struct ff_rumble_effect { + pub strong_magnitude: ::__u16, + pub weak_magnitude: ::__u16, + } + + pub struct ff_effect { + pub type_: ::__u16, + pub id: ::__s16, + pub direction: ::__u16, + pub trigger: ff_trigger, + pub replay: ff_replay, + // FIXME this is actually a union + #[cfg(target_pointer_width = "64")] + pub u: [u64; 4], + #[cfg(target_pointer_width = "32")] + pub u: [u32; 7], + } + + // linux/uinput.h + pub struct uinput_ff_upload { + pub request_id: ::__u32, + pub retval: ::__s32, + pub effect: ff_effect, + pub old: ff_effect, + } + + pub struct uinput_ff_erase { + pub request_id: ::__u32, + pub retval: ::__s32, + pub effect_id: ::__u32, + } + + pub struct uinput_abs_setup { + pub code: ::__u16, + pub absinfo: input_absinfo, + } + + pub struct option { + pub name: *const ::c_char, + pub has_arg: ::c_int, + pub flag: *mut ::c_int, + pub val: ::c_int, + } +} + +s_no_extra_traits! { + pub struct sockaddr_nl { + pub nl_family: ::sa_family_t, + nl_pad: ::c_ushort, + pub nl_pid: u32, + pub nl_groups: u32 + } + + pub struct dirent { + pub d_ino: u64, + pub d_off: i64, + pub d_reclen: ::c_ushort, + pub d_type: ::c_uchar, + pub d_name: [::c_char; 256], + } + + pub struct dirent64 { + pub d_ino: u64, + pub d_off: i64, + pub d_reclen: ::c_ushort, + pub d_type: ::c_uchar, + pub d_name: [::c_char; 256], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct lastlog { + ll_time: ::time_t, + ll_line: [::c_char; UT_LINESIZE], + ll_host: [::c_char; UT_HOSTSIZE], + } + + pub struct utmp { + pub ut_type: ::c_short, + pub ut_pid: ::pid_t, + pub ut_line: [::c_char; UT_LINESIZE], + pub ut_id: [::c_char; 4], + pub ut_user: [::c_char; UT_NAMESIZE], + pub ut_host: [::c_char; UT_HOSTSIZE], + pub ut_exit: exit_status, + pub ut_session: ::c_long, + pub ut_tv: ::timeval, + pub ut_addr_v6: [i32; 4], + unused: [::c_char; 20], + } + + pub struct sockaddr_alg { + pub salg_family: ::sa_family_t, + pub salg_type: [::c_uchar; 14], + pub salg_feat: u32, + pub salg_mask: u32, + pub salg_name: [::c_uchar; 64], + } + + pub struct uinput_setup { + pub id: input_id, + pub name: [::c_char; UINPUT_MAX_NAME_SIZE], + pub ff_effects_max: ::__u32, + } + + pub struct uinput_user_dev { + pub name: [::c_char; UINPUT_MAX_NAME_SIZE], + pub id: input_id, + pub ff_effects_max: ::__u32, + pub absmax: [::__s32; ABS_CNT], + pub absmin: [::__s32; ABS_CNT], + pub absfuzz: [::__s32; ABS_CNT], + pub absflat: [::__s32; ABS_CNT], + } + + /// WARNING: The `PartialEq`, `Eq` and `Hash` implementations of this + /// type are unsound and will be removed in the future. + #[deprecated( + note = "this struct has unsafe trait implementations that will be \ + removed in the future", + since = "0.2.80" + )] + pub struct af_alg_iv { + pub ivlen: u32, + pub iv: [::c_uchar; 0], + } + + pub struct prop_info { + __name: [::c_char; 32], + __serial: ::c_uint, + __value: [[::c_char; 4]; 23], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for sockaddr_nl { + fn eq(&self, other: &sockaddr_nl) -> bool { + self.nl_family == other.nl_family && + self.nl_pid == other.nl_pid && + self.nl_groups == other.nl_groups + } + } + impl Eq for sockaddr_nl {} + impl ::fmt::Debug for sockaddr_nl { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_nl") + .field("nl_family", &self.nl_family) + .field("nl_pid", &self.nl_pid) + .field("nl_groups", &self.nl_groups) + .finish() + } + } + impl ::hash::Hash for sockaddr_nl { + fn hash(&self, state: &mut H) { + self.nl_family.hash(state); + self.nl_pid.hash(state); + self.nl_groups.hash(state); + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_ino == other.d_ino + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for dirent {} + + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_ino", &self.d_ino) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_ino.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for dirent64 { + fn eq(&self, other: &dirent64) -> bool { + self.d_ino == other.d_ino + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for dirent64 {} + + impl ::fmt::Debug for dirent64 { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent64") + .field("d_ino", &self.d_ino) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + + impl ::hash::Hash for dirent64 { + fn hash(&self, state: &mut H) { + self.d_ino.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for siginfo_t { + fn eq(&self, other: &siginfo_t) -> bool { + self.si_signo == other.si_signo + && self.si_errno == other.si_errno + && self.si_code == other.si_code + // Ignore _pad + // Ignore _align + } + } + + impl Eq for siginfo_t {} + + impl ::fmt::Debug for siginfo_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("siginfo_t") + .field("si_signo", &self.si_signo) + .field("si_errno", &self.si_errno) + .field("si_code", &self.si_code) + // Ignore _pad + // Ignore _align + .finish() + } + } + + impl ::hash::Hash for siginfo_t { + fn hash(&self, state: &mut H) { + self.si_signo.hash(state); + self.si_errno.hash(state); + self.si_code.hash(state); + // Ignore _pad + // Ignore _align + } + } + + impl PartialEq for lastlog { + fn eq(&self, other: &lastlog) -> bool { + self.ll_time == other.ll_time + && self + .ll_line + .iter() + .zip(other.ll_line.iter()) + .all(|(a,b)| a == b) + && self + .ll_host + .iter() + .zip(other.ll_host.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for lastlog {} + + impl ::fmt::Debug for lastlog { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("lastlog") + .field("ll_time", &self.ll_time) + .field("ll_line", &self.ll_line) + // FIXME: .field("ll_host", &self.ll_host) + .finish() + } + } + + impl ::hash::Hash for lastlog { + fn hash(&self, state: &mut H) { + self.ll_time.hash(state); + self.ll_line.hash(state); + self.ll_host.hash(state); + } + } + + impl PartialEq for utmp { + fn eq(&self, other: &utmp) -> bool { + self.ut_type == other.ut_type + && self.ut_pid == other.ut_pid + && self + .ut_line + .iter() + .zip(other.ut_line.iter()) + .all(|(a,b)| a == b) + && self.ut_id == other.ut_id + && self + .ut_user + .iter() + .zip(other.ut_user.iter()) + .all(|(a,b)| a == b) + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + && self.ut_exit == other.ut_exit + && self.ut_session == other.ut_session + && self.ut_tv == other.ut_tv + && self.ut_addr_v6 == other.ut_addr_v6 + && self.unused == other.unused + } + } + + impl Eq for utmp {} + + impl ::fmt::Debug for utmp { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmp") + .field("ut_type", &self.ut_type) + .field("ut_pid", &self.ut_pid) + .field("ut_line", &self.ut_line) + .field("ut_id", &self.ut_id) + .field("ut_user", &self.ut_user) + // FIXME: .field("ut_host", &self.ut_host) + .field("ut_exit", &self.ut_exit) + .field("ut_session", &self.ut_session) + .field("ut_tv", &self.ut_tv) + .field("ut_addr_v6", &self.ut_addr_v6) + .field("unused", &self.unused) + .finish() + } + } + + impl ::hash::Hash for utmp { + fn hash(&self, state: &mut H) { + self.ut_type.hash(state); + self.ut_pid.hash(state); + self.ut_line.hash(state); + self.ut_id.hash(state); + self.ut_user.hash(state); + self.ut_host.hash(state); + self.ut_exit.hash(state); + self.ut_session.hash(state); + self.ut_tv.hash(state); + self.ut_addr_v6.hash(state); + self.unused.hash(state); + } + } + + impl PartialEq for sockaddr_alg { + fn eq(&self, other: &sockaddr_alg) -> bool { + self.salg_family == other.salg_family + && self + .salg_type + .iter() + .zip(other.salg_type.iter()) + .all(|(a, b)| a == b) + && self.salg_feat == other.salg_feat + && self.salg_mask == other.salg_mask + && self + .salg_name + .iter() + .zip(other.salg_name.iter()) + .all(|(a, b)| a == b) + } + } + + impl Eq for sockaddr_alg {} + + impl ::fmt::Debug for sockaddr_alg { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_alg") + .field("salg_family", &self.salg_family) + .field("salg_type", &self.salg_type) + .field("salg_feat", &self.salg_feat) + .field("salg_mask", &self.salg_mask) + .field("salg_name", &&self.salg_name[..]) + .finish() + } + } + + impl ::hash::Hash for sockaddr_alg { + fn hash(&self, state: &mut H) { + self.salg_family.hash(state); + self.salg_type.hash(state); + self.salg_feat.hash(state); + self.salg_mask.hash(state); + self.salg_name.hash(state); + } + } + + impl PartialEq for uinput_setup { + fn eq(&self, other: &uinput_setup) -> bool { + self.id == other.id + && self.name[..] == other.name[..] + && self.ff_effects_max == other.ff_effects_max + } + } + impl Eq for uinput_setup {} + + impl ::fmt::Debug for uinput_setup { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uinput_setup") + .field("id", &self.id) + .field("name", &&self.name[..]) + .field("ff_effects_max", &self.ff_effects_max) + .finish() + } + } + + impl ::hash::Hash for uinput_setup { + fn hash(&self, state: &mut H) { + self.id.hash(state); + self.name.hash(state); + self.ff_effects_max.hash(state); + } + } + + impl PartialEq for uinput_user_dev { + fn eq(&self, other: &uinput_user_dev) -> bool { + self.name[..] == other.name[..] + && self.id == other.id + && self.ff_effects_max == other.ff_effects_max + && self.absmax[..] == other.absmax[..] + && self.absmin[..] == other.absmin[..] + && self.absfuzz[..] == other.absfuzz[..] + && self.absflat[..] == other.absflat[..] + } + } + impl Eq for uinput_user_dev {} + + impl ::fmt::Debug for uinput_user_dev { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uinput_setup") + .field("name", &&self.name[..]) + .field("id", &self.id) + .field("ff_effects_max", &self.ff_effects_max) + .field("absmax", &&self.absmax[..]) + .field("absmin", &&self.absmin[..]) + .field("absfuzz", &&self.absfuzz[..]) + .field("absflat", &&self.absflat[..]) + .finish() + } + } + + impl ::hash::Hash for uinput_user_dev { + fn hash(&self, state: &mut H) { + self.name.hash(state); + self.id.hash(state); + self.ff_effects_max.hash(state); + self.absmax.hash(state); + self.absmin.hash(state); + self.absfuzz.hash(state); + self.absflat.hash(state); + } + } + + #[allow(deprecated)] + impl af_alg_iv { + fn as_slice(&self) -> &[u8] { + unsafe { + ::core::slice::from_raw_parts( + self.iv.as_ptr(), + self.ivlen as usize + ) + } + } + } + + #[allow(deprecated)] + impl PartialEq for af_alg_iv { + fn eq(&self, other: &af_alg_iv) -> bool { + *self.as_slice() == *other.as_slice() + } + } + + #[allow(deprecated)] + impl Eq for af_alg_iv {} + + #[allow(deprecated)] + impl ::fmt::Debug for af_alg_iv { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("af_alg_iv") + .field("ivlen", &self.ivlen) + .finish() + } + } + + #[allow(deprecated)] + impl ::hash::Hash for af_alg_iv { + fn hash(&self, state: &mut H) { + self.as_slice().hash(state); + } + } + + impl PartialEq for prop_info { + fn eq(&self, other: &prop_info) -> bool { + self.__name == other.__name && + self.__serial == other.__serial && + self.__value == other.__value + } + } + impl Eq for prop_info {} + impl ::fmt::Debug for prop_info { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("prop_info") + .field("__name", &self.__name) + .field("__serial", &self.__serial) + .field("__value", &self.__value) + .finish() + } + } + } +} + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MS_NOUSER: ::c_ulong = 0xffffffff80000000; +pub const MS_RMT_MASK: ::c_ulong = 0x02800051; + +pub const O_TRUNC: ::c_int = 512; +pub const O_CLOEXEC: ::c_int = 0x80000; +pub const O_PATH: ::c_int = 0o10000000; +pub const O_NOATIME: ::c_int = 0o1000000; + +pub const EBFONT: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EDOTDOT: ::c_int = 73; + +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; + +// sys/eventfd.h +pub const EFD_SEMAPHORE: ::c_int = 0x1; +pub const EFD_CLOEXEC: ::c_int = O_CLOEXEC; +pub const EFD_NONBLOCK: ::c_int = O_NONBLOCK; + +// sys/timerfd.h +pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC; +pub const TFD_NONBLOCK: ::c_int = O_NONBLOCK; +pub const TFD_TIMER_ABSTIME: ::c_int = 1; +pub const TFD_TIMER_CANCEL_ON_SET: ::c_int = 2; + +pub const USER_PROCESS: ::c_short = 7; + +pub const _POSIX_VDISABLE: ::cc_t = 0; + +// linux/falloc.h +pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01; +pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02; +pub const FALLOC_FL_NO_HIDE_STALE: ::c_int = 0x04; +pub const FALLOC_FL_COLLAPSE_RANGE: ::c_int = 0x08; +pub const FALLOC_FL_ZERO_RANGE: ::c_int = 0x10; +pub const FALLOC_FL_INSERT_RANGE: ::c_int = 0x20; +pub const FALLOC_FL_UNSHARE_RANGE: ::c_int = 0x40; + +pub const BUFSIZ: ::c_uint = 1024; +pub const FILENAME_MAX: ::c_uint = 4096; +pub const FOPEN_MAX: ::c_uint = 20; +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; +pub const L_tmpnam: ::c_uint = 4096; +pub const TMP_MAX: ::c_uint = 308915776; +pub const _PC_LINK_MAX: ::c_int = 1; +pub const _PC_MAX_CANON: ::c_int = 2; +pub const _PC_MAX_INPUT: ::c_int = 3; +pub const _PC_NAME_MAX: ::c_int = 4; +pub const _PC_PATH_MAX: ::c_int = 5; +pub const _PC_PIPE_BUF: ::c_int = 6; +pub const _PC_2_SYMLINKS: ::c_int = 7; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 8; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 9; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 10; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 11; +pub const _PC_REC_XFER_ALIGN: ::c_int = 12; +pub const _PC_SYMLINK_MAX: ::c_int = 13; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 14; +pub const _PC_NO_TRUNC: ::c_int = 15; +pub const _PC_VDISABLE: ::c_int = 16; +pub const _PC_ASYNC_IO: ::c_int = 17; +pub const _PC_PRIO_IO: ::c_int = 18; +pub const _PC_SYNC_IO: ::c_int = 19; + +pub const FIONBIO: ::c_int = 0x5421; + +pub const _SC_ARG_MAX: ::c_int = 0; +pub const _SC_BC_BASE_MAX: ::c_int = 1; +pub const _SC_BC_DIM_MAX: ::c_int = 2; +pub const _SC_BC_SCALE_MAX: ::c_int = 3; +pub const _SC_BC_STRING_MAX: ::c_int = 4; +pub const _SC_CHILD_MAX: ::c_int = 5; +pub const _SC_CLK_TCK: ::c_int = 6; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 7; +pub const _SC_EXPR_NEST_MAX: ::c_int = 8; +pub const _SC_LINE_MAX: ::c_int = 9; +pub const _SC_NGROUPS_MAX: ::c_int = 10; +pub const _SC_OPEN_MAX: ::c_int = 11; +pub const _SC_PASS_MAX: ::c_int = 12; +pub const _SC_2_C_BIND: ::c_int = 13; +pub const _SC_2_C_DEV: ::c_int = 14; +pub const _SC_2_C_VERSION: ::c_int = 15; +pub const _SC_2_CHAR_TERM: ::c_int = 16; +pub const _SC_2_FORT_DEV: ::c_int = 17; +pub const _SC_2_FORT_RUN: ::c_int = 18; +pub const _SC_2_LOCALEDEF: ::c_int = 19; +pub const _SC_2_SW_DEV: ::c_int = 20; +pub const _SC_2_UPE: ::c_int = 21; +pub const _SC_2_VERSION: ::c_int = 22; +pub const _SC_JOB_CONTROL: ::c_int = 23; +pub const _SC_SAVED_IDS: ::c_int = 24; +pub const _SC_VERSION: ::c_int = 25; +pub const _SC_RE_DUP_MAX: ::c_int = 26; +pub const _SC_STREAM_MAX: ::c_int = 27; +pub const _SC_TZNAME_MAX: ::c_int = 28; +pub const _SC_XOPEN_CRYPT: ::c_int = 29; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 30; +pub const _SC_XOPEN_SHM: ::c_int = 31; +pub const _SC_XOPEN_VERSION: ::c_int = 32; +pub const _SC_XOPEN_XCU_VERSION: ::c_int = 33; +pub const _SC_XOPEN_REALTIME: ::c_int = 34; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 35; +pub const _SC_XOPEN_LEGACY: ::c_int = 36; +pub const _SC_ATEXIT_MAX: ::c_int = 37; +pub const _SC_IOV_MAX: ::c_int = 38; +pub const _SC_PAGESIZE: ::c_int = 39; +pub const _SC_PAGE_SIZE: ::c_int = 40; +pub const _SC_XOPEN_UNIX: ::c_int = 41; +pub const _SC_XBS5_ILP32_OFF32: ::c_int = 42; +pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 43; +pub const _SC_XBS5_LP64_OFF64: ::c_int = 44; +pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 45; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 46; +pub const _SC_AIO_MAX: ::c_int = 47; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 48; +pub const _SC_DELAYTIMER_MAX: ::c_int = 49; +pub const _SC_MQ_OPEN_MAX: ::c_int = 50; +pub const _SC_MQ_PRIO_MAX: ::c_int = 51; +pub const _SC_RTSIG_MAX: ::c_int = 52; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 53; +pub const _SC_SEM_VALUE_MAX: ::c_int = 54; +pub const _SC_SIGQUEUE_MAX: ::c_int = 55; +pub const _SC_TIMER_MAX: ::c_int = 56; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 57; +pub const _SC_FSYNC: ::c_int = 58; +pub const _SC_MAPPED_FILES: ::c_int = 59; +pub const _SC_MEMLOCK: ::c_int = 60; +pub const _SC_MEMLOCK_RANGE: ::c_int = 61; +pub const _SC_MEMORY_PROTECTION: ::c_int = 62; +pub const _SC_MESSAGE_PASSING: ::c_int = 63; +pub const _SC_PRIORITIZED_IO: ::c_int = 64; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 65; +pub const _SC_REALTIME_SIGNALS: ::c_int = 66; +pub const _SC_SEMAPHORES: ::c_int = 67; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 68; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 69; +pub const _SC_TIMERS: ::c_int = 70; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 71; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 72; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 73; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 74; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 75; +pub const _SC_THREAD_STACK_MIN: ::c_int = 76; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 77; +pub const _SC_TTY_NAME_MAX: ::c_int = 78; +pub const _SC_THREADS: ::c_int = 79; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 80; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 81; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 82; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 83; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 84; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 85; +pub const _SC_NPROCESSORS_CONF: ::c_int = 96; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 97; +pub const _SC_PHYS_PAGES: ::c_int = 98; +pub const _SC_AVPHYS_PAGES: ::c_int = 99; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 100; + +pub const _SC_2_PBS: ::c_int = 101; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 102; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 103; +pub const _SC_2_PBS_LOCATE: ::c_int = 104; +pub const _SC_2_PBS_MESSAGE: ::c_int = 105; +pub const _SC_2_PBS_TRACK: ::c_int = 106; +pub const _SC_ADVISORY_INFO: ::c_int = 107; +pub const _SC_BARRIERS: ::c_int = 108; +pub const _SC_CLOCK_SELECTION: ::c_int = 109; +pub const _SC_CPUTIME: ::c_int = 110; +pub const _SC_HOST_NAME_MAX: ::c_int = 111; +pub const _SC_IPV6: ::c_int = 112; +pub const _SC_RAW_SOCKETS: ::c_int = 113; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 114; +pub const _SC_REGEXP: ::c_int = 115; +pub const _SC_SHELL: ::c_int = 116; +pub const _SC_SPAWN: ::c_int = 117; +pub const _SC_SPIN_LOCKS: ::c_int = 118; +pub const _SC_SPORADIC_SERVER: ::c_int = 119; +pub const _SC_SS_REPL_MAX: ::c_int = 120; +pub const _SC_SYMLOOP_MAX: ::c_int = 121; +pub const _SC_THREAD_CPUTIME: ::c_int = 122; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 123; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 124; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 125; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 126; +pub const _SC_TIMEOUTS: ::c_int = 127; +pub const _SC_TRACE: ::c_int = 128; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 129; +pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 130; +pub const _SC_TRACE_INHERIT: ::c_int = 131; +pub const _SC_TRACE_LOG: ::c_int = 132; +pub const _SC_TRACE_NAME_MAX: ::c_int = 133; +pub const _SC_TRACE_SYS_MAX: ::c_int = 134; +pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 135; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 136; +pub const _SC_V7_ILP32_OFF32: ::c_int = 137; +pub const _SC_V7_ILP32_OFFBIG: ::c_int = 138; +pub const _SC_V7_LP64_OFF64: ::c_int = 139; +pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 140; +pub const _SC_XOPEN_STREAMS: ::c_int = 141; +pub const _SC_XOPEN_UUCP: ::c_int = 142; + +pub const F_LOCK: ::c_int = 1; +pub const F_TEST: ::c_int = 3; +pub const F_TLOCK: ::c_int = 2; +pub const F_ULOCK: ::c_int = 0; + +pub const F_SEAL_FUTURE_WRITE: ::c_int = 0x0010; + +pub const IFF_LOWER_UP: ::c_int = 0x10000; +pub const IFF_DORMANT: ::c_int = 0x20000; +pub const IFF_ECHO: ::c_int = 0x40000; + +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; + +// stdio.h +pub const RENAME_NOREPLACE: ::c_int = 1; +pub const RENAME_EXCHANGE: ::c_int = 2; +pub const RENAME_WHITEOUT: ::c_int = 4; + +pub const FIOCLEX: ::c_int = 0x5451; +pub const FIONCLEX: ::c_int = 0x5450; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] +pub const SIGUNUSED: ::c_int = 31; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const RUSAGE_CHILDREN: ::c_int = -1; + +pub const LC_PAPER: ::c_int = 7; +pub const LC_NAME: ::c_int = 8; +pub const LC_ADDRESS: ::c_int = 9; +pub const LC_TELEPHONE: ::c_int = 10; +pub const LC_MEASUREMENT: ::c_int = 11; +pub const LC_IDENTIFICATION: ::c_int = 12; +pub const LC_PAPER_MASK: ::c_int = 1 << LC_PAPER; +pub const LC_NAME_MASK: ::c_int = 1 << LC_NAME; +pub const LC_ADDRESS_MASK: ::c_int = 1 << LC_ADDRESS; +pub const LC_TELEPHONE_MASK: ::c_int = 1 << LC_TELEPHONE; +pub const LC_MEASUREMENT_MASK: ::c_int = 1 << LC_MEASUREMENT; +pub const LC_IDENTIFICATION_MASK: ::c_int = 1 << LC_IDENTIFICATION; +pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK + | ::LC_NUMERIC_MASK + | ::LC_TIME_MASK + | ::LC_COLLATE_MASK + | ::LC_MONETARY_MASK + | ::LC_MESSAGES_MASK + | LC_PAPER_MASK + | LC_NAME_MASK + | LC_ADDRESS_MASK + | LC_TELEPHONE_MASK + | LC_MEASUREMENT_MASK + | LC_IDENTIFICATION_MASK; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; + +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; + +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOCK_DCCP: ::c_int = 6; +pub const SOCK_PACKET: ::c_int = 10; + +pub const IPPROTO_MAX: ::c_int = 256; + +pub const SOL_SOCKET: ::c_int = 1; +pub const SOL_SCTP: ::c_int = 132; +pub const SOL_IPX: ::c_int = 256; +pub const SOL_AX25: ::c_int = 257; +pub const SOL_ATALK: ::c_int = 258; +pub const SOL_NETROM: ::c_int = 259; +pub const SOL_ROSE: ::c_int = 260; + +/* DCCP socket options */ +pub const DCCP_SOCKOPT_PACKET_SIZE: ::c_int = 1; +pub const DCCP_SOCKOPT_SERVICE: ::c_int = 2; +pub const DCCP_SOCKOPT_CHANGE_L: ::c_int = 3; +pub const DCCP_SOCKOPT_CHANGE_R: ::c_int = 4; +pub const DCCP_SOCKOPT_GET_CUR_MPS: ::c_int = 5; +pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: ::c_int = 6; +pub const DCCP_SOCKOPT_SEND_CSCOV: ::c_int = 10; +pub const DCCP_SOCKOPT_RECV_CSCOV: ::c_int = 11; +pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: ::c_int = 12; +pub const DCCP_SOCKOPT_CCID: ::c_int = 13; +pub const DCCP_SOCKOPT_TX_CCID: ::c_int = 14; +pub const DCCP_SOCKOPT_RX_CCID: ::c_int = 15; +pub const DCCP_SOCKOPT_QPOLICY_ID: ::c_int = 16; +pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: ::c_int = 17; +pub const DCCP_SOCKOPT_CCID_RX_INFO: ::c_int = 128; +pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192; + +/// maximum number of services provided on the same listening port +pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32; + +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_LINGER: ::c_int = 13; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_PASSCRED: ::c_int = 16; +pub const SO_PEERCRED: ::c_int = 17; +pub const SO_RCVLOWAT: ::c_int = 18; +pub const SO_SNDLOWAT: ::c_int = 19; +pub const SO_RCVTIMEO: ::c_int = 20; +pub const SO_SNDTIMEO: ::c_int = 21; +pub const SO_BINDTODEVICE: ::c_int = 25; +pub const SO_ATTACH_FILTER: ::c_int = 26; +pub const SO_DETACH_FILTER: ::c_int = 27; +pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; +pub const SO_TIMESTAMP: ::c_int = 29; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_PEERSEC: ::c_int = 31; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PASSSEC: ::c_int = 34; +pub const SO_MARK: ::c_int = 36; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; +pub const SO_RXQ_OVFL: ::c_int = 40; +pub const SO_PEEK_OFF: ::c_int = 42; +pub const SO_BUSY_POLL: ::c_int = 46; + +pub const IPTOS_ECN_NOTECT: u8 = 0x00; + +pub const O_ACCMODE: ::c_int = 3; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 0x101000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x800; +pub const O_DSYNC: ::c_int = 4096; +pub const O_RSYNC: ::c_int = O_SYNC; + +pub const NI_MAXHOST: ::size_t = 1025; +pub const NI_MAXSERV: ::size_t = 32; + +pub const NI_NOFQDN: ::c_int = 0x00000001; +pub const NI_NUMERICHOST: ::c_int = 0x00000002; +pub const NI_NAMEREQD: ::c_int = 0x00000004; +pub const NI_NUMERICSERV: ::c_int = 0x00000008; +pub const NI_DGRAM: ::c_int = 0x00000010; + +pub const NCCS: usize = 19; +pub const TCSBRKP: ::c_int = 0x5425; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 0x1; +pub const TCSAFLUSH: ::c_int = 0x2; +pub const VEOF: usize = 4; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const EXTPROC: ::tcflag_t = 0o200000; + +pub const MAP_HUGETLB: ::c_int = 0x040000; + +pub const PTRACE_TRACEME: ::c_int = 0; +pub const PTRACE_PEEKTEXT: ::c_int = 1; +pub const PTRACE_PEEKDATA: ::c_int = 2; +pub const PTRACE_PEEKUSER: ::c_int = 3; +pub const PTRACE_POKETEXT: ::c_int = 4; +pub const PTRACE_POKEDATA: ::c_int = 5; +pub const PTRACE_POKEUSER: ::c_int = 6; +pub const PTRACE_CONT: ::c_int = 7; +pub const PTRACE_KILL: ::c_int = 8; +pub const PTRACE_SINGLESTEP: ::c_int = 9; +pub const PTRACE_GETREGS: ::c_int = 12; +pub const PTRACE_SETREGS: ::c_int = 13; +pub const PTRACE_ATTACH: ::c_int = 16; +pub const PTRACE_DETACH: ::c_int = 17; +pub const PTRACE_SYSCALL: ::c_int = 24; +pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; +pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; +pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; +pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; +pub const PTRACE_GETREGSET: ::c_int = 0x4204; +pub const PTRACE_SETREGSET: ::c_int = 0x4205; + +pub const PTRACE_EVENT_STOP: ::c_int = 128; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_RDLCK: ::c_int = 0; +pub const F_WRLCK: ::c_int = 1; +pub const F_UNLCK: ::c_int = 2; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const RLIMIT_CPU: ::c_int = 0; +pub const RLIMIT_FSIZE: ::c_int = 1; +pub const RLIMIT_DATA: ::c_int = 2; +pub const RLIMIT_STACK: ::c_int = 3; +pub const RLIMIT_CORE: ::c_int = 4; +pub const RLIMIT_RSS: ::c_int = 5; +pub const RLIMIT_NPROC: ::c_int = 6; +pub const RLIMIT_NOFILE: ::c_int = 7; +pub const RLIMIT_MEMLOCK: ::c_int = 8; +pub const RLIMIT_AS: ::c_int = 9; +pub const RLIMIT_LOCKS: ::c_int = 10; +pub const RLIMIT_SIGPENDING: ::c_int = 11; +pub const RLIMIT_MSGQUEUE: ::c_int = 12; +pub const RLIMIT_NICE: ::c_int = 13; +pub const RLIMIT_RTPRIO: ::c_int = 14; + +pub const RLIM_NLIMITS: ::c_int = 16; +pub const RLIM_INFINITY: ::rlim_t = !0; + +pub const TCGETS: ::c_int = 0x5401; +pub const TCSETS: ::c_int = 0x5402; +pub const TCSETSW: ::c_int = 0x5403; +pub const TCSETSF: ::c_int = 0x5404; +pub const TCGETS2: ::c_int = 0x802c542a; +pub const TCSETS2: ::c_int = 0x402c542b; +pub const TCSETSW2: ::c_int = 0x402c542c; +pub const TCSETSF2: ::c_int = 0x402c542d; +pub const TCGETA: ::c_int = 0x5405; +pub const TCSETA: ::c_int = 0x5406; +pub const TCSETAW: ::c_int = 0x5407; +pub const TCSETAF: ::c_int = 0x5408; +pub const TCSBRK: ::c_int = 0x5409; +pub const TCXONC: ::c_int = 0x540A; +pub const TCFLSH: ::c_int = 0x540B; +pub const TIOCGSOFTCAR: ::c_int = 0x5419; +pub const TIOCSSOFTCAR: ::c_int = 0x541A; +pub const TIOCINQ: ::c_int = 0x541B; +pub const TIOCLINUX: ::c_int = 0x541C; +pub const TIOCGSERIAL: ::c_int = 0x541E; +pub const TIOCEXCL: ::c_int = 0x540C; +pub const TIOCNXCL: ::c_int = 0x540D; +pub const TIOCSCTTY: ::c_int = 0x540E; +pub const TIOCGPGRP: ::c_int = 0x540F; +pub const TIOCSPGRP: ::c_int = 0x5410; +pub const TIOCOUTQ: ::c_int = 0x5411; +pub const TIOCSTI: ::c_int = 0x5412; +pub const TIOCGWINSZ: ::c_int = 0x5413; +pub const TIOCSWINSZ: ::c_int = 0x5414; +pub const TIOCMGET: ::c_int = 0x5415; +pub const TIOCMBIS: ::c_int = 0x5416; +pub const TIOCMBIC: ::c_int = 0x5417; +pub const TIOCMSET: ::c_int = 0x5418; +pub const FIONREAD: ::c_int = 0x541B; +pub const TIOCCONS: ::c_int = 0x541D; +pub const TIOCSBRK: ::c_int = 0x5427; +pub const TIOCCBRK: ::c_int = 0x5428; +cfg_if! { + if #[cfg(any(target_arch = "x86", + target_arch = "x86_64", + target_arch = "arm", + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "s390x"))] { + pub const FICLONE: ::c_int = 0x40049409; + pub const FICLONERANGE: ::c_int = 0x4020940D; + } else if #[cfg(any(target_arch = "mips", + target_arch = "mips64", + target_arch = "powerpc", + target_arch = "powerpc64"))] { + pub const FICLONE: ::c_int = 0x80049409; + pub const FICLONERANGE: ::c_int = 0x8020940D; + } +} + +pub const ST_RDONLY: ::c_ulong = 1; +pub const ST_NOSUID: ::c_ulong = 2; +pub const ST_NODEV: ::c_ulong = 4; +pub const ST_NOEXEC: ::c_ulong = 8; +pub const ST_SYNCHRONOUS: ::c_ulong = 16; +pub const ST_MANDLOCK: ::c_ulong = 64; +pub const ST_NOATIME: ::c_ulong = 1024; +pub const ST_NODIRATIME: ::c_ulong = 2048; +pub const ST_RELATIME: ::c_ulong = 4096; + +pub const RTLD_NOLOAD: ::c_int = 0x4; + +pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; + +pub const AI_PASSIVE: ::c_int = 0x00000001; +pub const AI_CANONNAME: ::c_int = 0x00000002; +pub const AI_NUMERICHOST: ::c_int = 0x00000004; +pub const AI_NUMERICSERV: ::c_int = 0x00000008; +pub const AI_MASK: ::c_int = + AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | AI_NUMERICSERV | AI_ADDRCONFIG; +pub const AI_ALL: ::c_int = 0x00000100; +pub const AI_V4MAPPED_CFG: ::c_int = 0x00000200; +pub const AI_ADDRCONFIG: ::c_int = 0x00000400; +pub const AI_V4MAPPED: ::c_int = 0x00000800; +pub const AI_DEFAULT: ::c_int = AI_V4MAPPED_CFG | AI_ADDRCONFIG; + +// linux/kexec.h +pub const KEXEC_ON_CRASH: ::c_int = 0x00000001; +pub const KEXEC_PRESERVE_CONTEXT: ::c_int = 0x00000002; +pub const KEXEC_ARCH_MASK: ::c_int = 0xffff0000; +pub const KEXEC_FILE_UNLOAD: ::c_int = 0x00000001; +pub const KEXEC_FILE_ON_CRASH: ::c_int = 0x00000002; +pub const KEXEC_FILE_NO_INITRAMFS: ::c_int = 0x00000004; + +pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead; +pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793; +pub const LINUX_REBOOT_MAGIC2A: ::c_int = 85072278; +pub const LINUX_REBOOT_MAGIC2B: ::c_int = 369367448; +pub const LINUX_REBOOT_MAGIC2C: ::c_int = 537993216; + +pub const LINUX_REBOOT_CMD_RESTART: ::c_int = 0x01234567; +pub const LINUX_REBOOT_CMD_HALT: ::c_int = 0xCDEF0123; +pub const LINUX_REBOOT_CMD_CAD_ON: ::c_int = 0x89ABCDEF; +pub const LINUX_REBOOT_CMD_CAD_OFF: ::c_int = 0x00000000; +pub const LINUX_REBOOT_CMD_POWER_OFF: ::c_int = 0x4321FEDC; +pub const LINUX_REBOOT_CMD_RESTART2: ::c_int = 0xA1B2C3D4; +pub const LINUX_REBOOT_CMD_SW_SUSPEND: ::c_int = 0xD000FCE2; +pub const LINUX_REBOOT_CMD_KEXEC: ::c_int = 0x45584543; + +pub const REG_BASIC: ::c_int = 0; +pub const REG_EXTENDED: ::c_int = 1; +pub const REG_ICASE: ::c_int = 2; +pub const REG_NOSUB: ::c_int = 4; +pub const REG_NEWLINE: ::c_int = 8; +pub const REG_NOSPEC: ::c_int = 16; +pub const REG_PEND: ::c_int = 32; +pub const REG_DUMP: ::c_int = 128; + +pub const REG_NOMATCH: ::c_int = 1; +pub const REG_BADPAT: ::c_int = 2; +pub const REG_ECOLLATE: ::c_int = 3; +pub const REG_ECTYPE: ::c_int = 4; +pub const REG_EESCAPE: ::c_int = 5; +pub const REG_ESUBREG: ::c_int = 6; +pub const REG_EBRACK: ::c_int = 7; +pub const REG_EPAREN: ::c_int = 8; +pub const REG_EBRACE: ::c_int = 9; +pub const REG_BADBR: ::c_int = 10; +pub const REG_ERANGE: ::c_int = 11; +pub const REG_ESPACE: ::c_int = 12; +pub const REG_BADRPT: ::c_int = 13; +pub const REG_EMPTY: ::c_int = 14; +pub const REG_ASSERT: ::c_int = 15; +pub const REG_INVARG: ::c_int = 16; +pub const REG_ATOI: ::c_int = 255; +pub const REG_ITOA: ::c_int = 256; + +pub const REG_NOTBOL: ::c_int = 1; +pub const REG_NOTEOL: ::c_int = 2; +pub const REG_STARTEND: ::c_int = 4; +pub const REG_TRACE: ::c_int = 256; +pub const REG_LARGE: ::c_int = 512; +pub const REG_BACKR: ::c_int = 1024; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const BOTHER: ::speed_t = 0o010000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; +pub const IBSHIFT: ::tcflag_t = 16; + +pub const BLKIOMIN: ::c_int = 0x1278; +pub const BLKIOOPT: ::c_int = 0x1279; +pub const BLKSSZGET: ::c_int = 0x1268; +pub const BLKPBSZGET: ::c_int = 0x127B; + +pub const EAI_AGAIN: ::c_int = 2; +pub const EAI_BADFLAGS: ::c_int = 3; +pub const EAI_FAIL: ::c_int = 4; +pub const EAI_FAMILY: ::c_int = 5; +pub const EAI_MEMORY: ::c_int = 6; +pub const EAI_NODATA: ::c_int = 7; +pub const EAI_NONAME: ::c_int = 8; +pub const EAI_SERVICE: ::c_int = 9; +pub const EAI_SOCKTYPE: ::c_int = 10; +pub const EAI_SYSTEM: ::c_int = 11; +pub const EAI_OVERFLOW: ::c_int = 14; + +pub const NETLINK_ROUTE: ::c_int = 0; +pub const NETLINK_UNUSED: ::c_int = 1; +pub const NETLINK_USERSOCK: ::c_int = 2; +pub const NETLINK_FIREWALL: ::c_int = 3; +pub const NETLINK_SOCK_DIAG: ::c_int = 4; +pub const NETLINK_NFLOG: ::c_int = 5; +pub const NETLINK_XFRM: ::c_int = 6; +pub const NETLINK_SELINUX: ::c_int = 7; +pub const NETLINK_ISCSI: ::c_int = 8; +pub const NETLINK_AUDIT: ::c_int = 9; +pub const NETLINK_FIB_LOOKUP: ::c_int = 10; +pub const NETLINK_CONNECTOR: ::c_int = 11; +pub const NETLINK_NETFILTER: ::c_int = 12; +pub const NETLINK_IP6_FW: ::c_int = 13; +pub const NETLINK_DNRTMSG: ::c_int = 14; +pub const NETLINK_KOBJECT_UEVENT: ::c_int = 15; +pub const NETLINK_GENERIC: ::c_int = 16; +pub const NETLINK_SCSITRANSPORT: ::c_int = 18; +pub const NETLINK_ECRYPTFS: ::c_int = 19; +pub const NETLINK_RDMA: ::c_int = 20; +pub const NETLINK_CRYPTO: ::c_int = 21; +pub const NETLINK_INET_DIAG: ::c_int = NETLINK_SOCK_DIAG; + +pub const MAX_LINKS: ::c_int = 32; + +pub const NLM_F_REQUEST: ::c_int = 1; +pub const NLM_F_MULTI: ::c_int = 2; +pub const NLM_F_ACK: ::c_int = 4; +pub const NLM_F_ECHO: ::c_int = 8; +pub const NLM_F_DUMP_INTR: ::c_int = 16; + +pub const NLM_F_ROOT: ::c_int = 0x100; +pub const NLM_F_MATCH: ::c_int = 0x200; +pub const NLM_F_ATOMIC: ::c_int = 0x400; +pub const NLM_F_DUMP: ::c_int = NLM_F_ROOT | NLM_F_MATCH; + +pub const NLM_F_REPLACE: ::c_int = 0x100; +pub const NLM_F_EXCL: ::c_int = 0x200; +pub const NLM_F_CREATE: ::c_int = 0x400; +pub const NLM_F_APPEND: ::c_int = 0x800; + +pub const NLMSG_NOOP: ::c_int = 0x1; +pub const NLMSG_ERROR: ::c_int = 0x2; +pub const NLMSG_DONE: ::c_int = 0x3; +pub const NLMSG_OVERRUN: ::c_int = 0x4; +pub const NLMSG_MIN_TYPE: ::c_int = 0x10; + +// linux/netfilter/nfnetlink.h +pub const NFNLGRP_NONE: ::c_int = 0; +pub const NFNLGRP_CONNTRACK_NEW: ::c_int = 1; +pub const NFNLGRP_CONNTRACK_UPDATE: ::c_int = 2; +pub const NFNLGRP_CONNTRACK_DESTROY: ::c_int = 3; +pub const NFNLGRP_CONNTRACK_EXP_NEW: ::c_int = 4; +pub const NFNLGRP_CONNTRACK_EXP_UPDATE: ::c_int = 5; +pub const NFNLGRP_CONNTRACK_EXP_DESTROY: ::c_int = 6; +pub const NFNLGRP_NFTABLES: ::c_int = 7; +pub const NFNLGRP_ACCT_QUOTA: ::c_int = 8; + +pub const NFNETLINK_V0: ::c_int = 0; + +pub const NFNL_SUBSYS_NONE: ::c_int = 0; +pub const NFNL_SUBSYS_CTNETLINK: ::c_int = 1; +pub const NFNL_SUBSYS_CTNETLINK_EXP: ::c_int = 2; +pub const NFNL_SUBSYS_QUEUE: ::c_int = 3; +pub const NFNL_SUBSYS_ULOG: ::c_int = 4; +pub const NFNL_SUBSYS_OSF: ::c_int = 5; +pub const NFNL_SUBSYS_IPSET: ::c_int = 6; +pub const NFNL_SUBSYS_ACCT: ::c_int = 7; +pub const NFNL_SUBSYS_CTNETLINK_TIMEOUT: ::c_int = 8; +pub const NFNL_SUBSYS_CTHELPER: ::c_int = 9; +pub const NFNL_SUBSYS_NFTABLES: ::c_int = 10; +pub const NFNL_SUBSYS_NFT_COMPAT: ::c_int = 11; +pub const NFNL_SUBSYS_COUNT: ::c_int = 12; + +pub const NFNL_MSG_BATCH_BEGIN: ::c_int = NLMSG_MIN_TYPE; +pub const NFNL_MSG_BATCH_END: ::c_int = NLMSG_MIN_TYPE + 1; + +// linux/netfilter/nfnetlink_log.h +pub const NFULNL_MSG_PACKET: ::c_int = 0; +pub const NFULNL_MSG_CONFIG: ::c_int = 1; + +pub const NFULA_UNSPEC: ::c_int = 0; +pub const NFULA_PACKET_HDR: ::c_int = 1; +pub const NFULA_MARK: ::c_int = 2; +pub const NFULA_TIMESTAMP: ::c_int = 3; +pub const NFULA_IFINDEX_INDEV: ::c_int = 4; +pub const NFULA_IFINDEX_OUTDEV: ::c_int = 5; +pub const NFULA_IFINDEX_PHYSINDEV: ::c_int = 6; +pub const NFULA_IFINDEX_PHYSOUTDEV: ::c_int = 7; +pub const NFULA_HWADDR: ::c_int = 8; +pub const NFULA_PAYLOAD: ::c_int = 9; +pub const NFULA_PREFIX: ::c_int = 10; +pub const NFULA_UID: ::c_int = 11; +pub const NFULA_SEQ: ::c_int = 12; +pub const NFULA_SEQ_GLOBAL: ::c_int = 13; +pub const NFULA_GID: ::c_int = 14; +pub const NFULA_HWTYPE: ::c_int = 15; +pub const NFULA_HWHEADER: ::c_int = 16; +pub const NFULA_HWLEN: ::c_int = 17; +pub const NFULA_CT: ::c_int = 18; +pub const NFULA_CT_INFO: ::c_int = 19; + +pub const NFULNL_CFG_CMD_NONE: ::c_int = 0; +pub const NFULNL_CFG_CMD_BIND: ::c_int = 1; +pub const NFULNL_CFG_CMD_UNBIND: ::c_int = 2; +pub const NFULNL_CFG_CMD_PF_BIND: ::c_int = 3; +pub const NFULNL_CFG_CMD_PF_UNBIND: ::c_int = 4; + +pub const NFULA_CFG_UNSPEC: ::c_int = 0; +pub const NFULA_CFG_CMD: ::c_int = 1; +pub const NFULA_CFG_MODE: ::c_int = 2; +pub const NFULA_CFG_NLBUFSIZ: ::c_int = 3; +pub const NFULA_CFG_TIMEOUT: ::c_int = 4; +pub const NFULA_CFG_QTHRESH: ::c_int = 5; +pub const NFULA_CFG_FLAGS: ::c_int = 6; + +pub const NFULNL_COPY_NONE: ::c_int = 0x00; +pub const NFULNL_COPY_META: ::c_int = 0x01; +pub const NFULNL_COPY_PACKET: ::c_int = 0x02; + +pub const NFULNL_CFG_F_SEQ: ::c_int = 0x0001; +pub const NFULNL_CFG_F_SEQ_GLOBAL: ::c_int = 0x0002; +pub const NFULNL_CFG_F_CONNTRACK: ::c_int = 0x0004; + +// linux/netfilter/nfnetlink_log.h +pub const NFQNL_MSG_PACKET: ::c_int = 0; +pub const NFQNL_MSG_VERDICT: ::c_int = 1; +pub const NFQNL_MSG_CONFIG: ::c_int = 2; +pub const NFQNL_MSG_VERDICT_BATCH: ::c_int = 3; + +pub const NFQA_UNSPEC: ::c_int = 0; +pub const NFQA_PACKET_HDR: ::c_int = 1; +pub const NFQA_VERDICT_HDR: ::c_int = 2; +pub const NFQA_MARK: ::c_int = 3; +pub const NFQA_TIMESTAMP: ::c_int = 4; +pub const NFQA_IFINDEX_INDEV: ::c_int = 5; +pub const NFQA_IFINDEX_OUTDEV: ::c_int = 6; +pub const NFQA_IFINDEX_PHYSINDEV: ::c_int = 7; +pub const NFQA_IFINDEX_PHYSOUTDEV: ::c_int = 8; +pub const NFQA_HWADDR: ::c_int = 9; +pub const NFQA_PAYLOAD: ::c_int = 10; +pub const NFQA_CT: ::c_int = 11; +pub const NFQA_CT_INFO: ::c_int = 12; +pub const NFQA_CAP_LEN: ::c_int = 13; +pub const NFQA_SKB_INFO: ::c_int = 14; +pub const NFQA_EXP: ::c_int = 15; +pub const NFQA_UID: ::c_int = 16; +pub const NFQA_GID: ::c_int = 17; +pub const NFQA_SECCTX: ::c_int = 18; +/* + FIXME: These are not yet available in musl sanitized kernel headers and + make the tests fail. Enable them once musl has them. + + See https://github.com/rust-lang/libc/pull/1628 for more details. +pub const NFQA_VLAN: ::c_int = 19; +pub const NFQA_L2HDR: ::c_int = 20; + +pub const NFQA_VLAN_UNSPEC: ::c_int = 0; +pub const NFQA_VLAN_PROTO: ::c_int = 1; +pub const NFQA_VLAN_TCI: ::c_int = 2; +*/ + +pub const NFQNL_CFG_CMD_NONE: ::c_int = 0; +pub const NFQNL_CFG_CMD_BIND: ::c_int = 1; +pub const NFQNL_CFG_CMD_UNBIND: ::c_int = 2; +pub const NFQNL_CFG_CMD_PF_BIND: ::c_int = 3; +pub const NFQNL_CFG_CMD_PF_UNBIND: ::c_int = 4; + +pub const NFQNL_COPY_NONE: ::c_int = 0; +pub const NFQNL_COPY_META: ::c_int = 1; +pub const NFQNL_COPY_PACKET: ::c_int = 2; + +pub const NFQA_CFG_UNSPEC: ::c_int = 0; +pub const NFQA_CFG_CMD: ::c_int = 1; +pub const NFQA_CFG_PARAMS: ::c_int = 2; +pub const NFQA_CFG_QUEUE_MAXLEN: ::c_int = 3; +pub const NFQA_CFG_MASK: ::c_int = 4; +pub const NFQA_CFG_FLAGS: ::c_int = 5; + +pub const NFQA_CFG_F_FAIL_OPEN: ::c_int = 0x0001; +pub const NFQA_CFG_F_CONNTRACK: ::c_int = 0x0002; +pub const NFQA_CFG_F_GSO: ::c_int = 0x0004; +pub const NFQA_CFG_F_UID_GID: ::c_int = 0x0008; +pub const NFQA_CFG_F_SECCTX: ::c_int = 0x0010; +pub const NFQA_CFG_F_MAX: ::c_int = 0x0020; + +pub const NFQA_SKB_CSUMNOTREADY: ::c_int = 0x0001; +pub const NFQA_SKB_GSO: ::c_int = 0x0002; +pub const NFQA_SKB_CSUM_NOTVERIFIED: ::c_int = 0x0004; + +pub const GENL_NAMSIZ: ::c_int = 16; + +pub const GENL_MIN_ID: ::c_int = NLMSG_MIN_TYPE; +pub const GENL_MAX_ID: ::c_int = 1023; + +pub const GENL_ADMIN_PERM: ::c_int = 0x01; +pub const GENL_CMD_CAP_DO: ::c_int = 0x02; +pub const GENL_CMD_CAP_DUMP: ::c_int = 0x04; +pub const GENL_CMD_CAP_HASPOL: ::c_int = 0x08; +pub const GENL_UNS_ADMIN_PERM: ::c_int = 0x10; + +pub const GENL_ID_CTRL: ::c_int = NLMSG_MIN_TYPE; +pub const GENL_ID_VFS_DQUOT: ::c_int = NLMSG_MIN_TYPE + 1; +pub const GENL_ID_PMCRAID: ::c_int = NLMSG_MIN_TYPE + 2; + +pub const CTRL_CMD_UNSPEC: ::c_int = 0; +pub const CTRL_CMD_NEWFAMILY: ::c_int = 1; +pub const CTRL_CMD_DELFAMILY: ::c_int = 2; +pub const CTRL_CMD_GETFAMILY: ::c_int = 3; +pub const CTRL_CMD_NEWOPS: ::c_int = 4; +pub const CTRL_CMD_DELOPS: ::c_int = 5; +pub const CTRL_CMD_GETOPS: ::c_int = 6; +pub const CTRL_CMD_NEWMCAST_GRP: ::c_int = 7; +pub const CTRL_CMD_DELMCAST_GRP: ::c_int = 8; +pub const CTRL_CMD_GETMCAST_GRP: ::c_int = 9; + +pub const CTRL_ATTR_UNSPEC: ::c_int = 0; +pub const CTRL_ATTR_FAMILY_ID: ::c_int = 1; +pub const CTRL_ATTR_FAMILY_NAME: ::c_int = 2; +pub const CTRL_ATTR_VERSION: ::c_int = 3; +pub const CTRL_ATTR_HDRSIZE: ::c_int = 4; +pub const CTRL_ATTR_MAXATTR: ::c_int = 5; +pub const CTRL_ATTR_OPS: ::c_int = 6; +pub const CTRL_ATTR_MCAST_GROUPS: ::c_int = 7; + +pub const CTRL_ATTR_OP_UNSPEC: ::c_int = 0; +pub const CTRL_ATTR_OP_ID: ::c_int = 1; +pub const CTRL_ATTR_OP_FLAGS: ::c_int = 2; + +pub const CTRL_ATTR_MCAST_GRP_UNSPEC: ::c_int = 0; +pub const CTRL_ATTR_MCAST_GRP_NAME: ::c_int = 1; +pub const CTRL_ATTR_MCAST_GRP_ID: ::c_int = 2; + +pub const NETLINK_ADD_MEMBERSHIP: ::c_int = 1; +pub const NETLINK_DROP_MEMBERSHIP: ::c_int = 2; +pub const NETLINK_PKTINFO: ::c_int = 3; +pub const NETLINK_BROADCAST_ERROR: ::c_int = 4; +pub const NETLINK_NO_ENOBUFS: ::c_int = 5; +pub const NETLINK_RX_RING: ::c_int = 6; +pub const NETLINK_TX_RING: ::c_int = 7; +pub const NETLINK_LISTEN_ALL_NSID: ::c_int = 8; +pub const NETLINK_LIST_MEMBERSHIPS: ::c_int = 9; +pub const NETLINK_CAP_ACK: ::c_int = 10; +pub const NETLINK_EXT_ACK: ::c_int = 11; +pub const NETLINK_GET_STRICT_CHK: ::c_int = 12; + +pub const GRND_NONBLOCK: ::c_uint = 0x0001; +pub const GRND_RANDOM: ::c_uint = 0x0002; +pub const GRND_INSECURE: ::c_uint = 0x0004; + +pub const SECCOMP_MODE_DISABLED: ::c_uint = 0; +pub const SECCOMP_MODE_STRICT: ::c_uint = 1; +pub const SECCOMP_MODE_FILTER: ::c_uint = 2; + +pub const SECCOMP_FILTER_FLAG_TSYNC: ::c_ulong = 1; +pub const SECCOMP_FILTER_FLAG_LOG: ::c_ulong = 2; +pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: ::c_ulong = 4; +pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: ::c_ulong = 8; + +pub const SECCOMP_RET_ACTION_FULL: ::c_uint = 0xffff0000; +pub const SECCOMP_RET_ACTION: ::c_uint = 0x7fff0000; +pub const SECCOMP_RET_DATA: ::c_uint = 0x0000ffff; + +pub const SECCOMP_RET_KILL_PROCESS: ::c_uint = 0x80000000; +pub const SECCOMP_RET_KILL_THREAD: ::c_uint = 0x00000000; +pub const SECCOMP_RET_KILL: ::c_uint = SECCOMP_RET_KILL_THREAD; +pub const SECCOMP_RET_TRAP: ::c_uint = 0x00030000; +pub const SECCOMP_RET_ERRNO: ::c_uint = 0x00050000; +pub const SECCOMP_RET_USER_NOTIF: ::c_uint = 0x7fc00000; +pub const SECCOMP_RET_TRACE: ::c_uint = 0x7ff00000; +pub const SECCOMP_RET_LOG: ::c_uint = 0x7ffc0000; +pub const SECCOMP_RET_ALLOW: ::c_uint = 0x7fff0000; + +pub const NLA_F_NESTED: ::c_int = 1 << 15; +pub const NLA_F_NET_BYTEORDER: ::c_int = 1 << 14; +pub const NLA_TYPE_MASK: ::c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); + +pub const NLA_ALIGNTO: ::c_int = 4; + +pub const SIGEV_THREAD_ID: ::c_int = 4; + +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; + +pub const TIOCM_LE: ::c_int = 0x001; +pub const TIOCM_DTR: ::c_int = 0x002; +pub const TIOCM_RTS: ::c_int = 0x004; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; +pub const TIOCM_CD: ::c_int = TIOCM_CAR; +pub const TIOCM_RI: ::c_int = TIOCM_RNG; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const SFD_CLOEXEC: ::c_int = O_CLOEXEC; +pub const SFD_NONBLOCK: ::c_int = O_NONBLOCK; + +pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK; + +pub const SO_ORIGINAL_DST: ::c_int = 80; + +pub const IP_RECVFRAGSIZE: ::c_int = 25; + +pub const IPV6_FLOWINFO: ::c_int = 11; +pub const IPV6_MULTICAST_ALL: ::c_int = 29; +pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; +pub const IPV6_FLOWLABEL_MGR: ::c_int = 32; +pub const IPV6_FLOWINFO_SEND: ::c_int = 33; +pub const IPV6_RECVFRAGSIZE: ::c_int = 77; +pub const IPV6_FREEBIND: ::c_int = 78; +pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff; +pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000; + +pub const IUTF8: ::tcflag_t = 0x00004000; +pub const CMSPAR: ::tcflag_t = 0o10000000000; +pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; + +pub const MFD_CLOEXEC: ::c_uint = 0x0001; +pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; +pub const MFD_HUGETLB: ::c_uint = 0x0004; +pub const MFD_HUGE_64KB: ::c_uint = 0x40000000; +pub const MFD_HUGE_512KB: ::c_uint = 0x4c000000; +pub const MFD_HUGE_1MB: ::c_uint = 0x50000000; +pub const MFD_HUGE_2MB: ::c_uint = 0x54000000; +pub const MFD_HUGE_8MB: ::c_uint = 0x5c000000; +pub const MFD_HUGE_16MB: ::c_uint = 0x60000000; +pub const MFD_HUGE_32MB: ::c_uint = 0x64000000; +pub const MFD_HUGE_256MB: ::c_uint = 0x70000000; +pub const MFD_HUGE_512MB: ::c_uint = 0x74000000; +pub const MFD_HUGE_1GB: ::c_uint = 0x78000000; +pub const MFD_HUGE_2GB: ::c_uint = 0x7c000000; +pub const MFD_HUGE_16GB: ::c_uint = 0x88000000; +pub const MFD_HUGE_MASK: ::c_uint = 63; +pub const MFD_HUGE_SHIFT: ::c_uint = 26; + +// these are used in the p_type field of Elf32_Phdr and Elf64_Phdr, which has +// the type Elf32Word and Elf64Word respectively. Luckily, both of those are u32 +// so we can use that type here to avoid having to cast. +pub const PT_NULL: u32 = 0; +pub const PT_LOAD: u32 = 1; +pub const PT_DYNAMIC: u32 = 2; +pub const PT_INTERP: u32 = 3; +pub const PT_NOTE: u32 = 4; +pub const PT_SHLIB: u32 = 5; +pub const PT_PHDR: u32 = 6; +pub const PT_TLS: u32 = 7; +pub const PT_LOOS: u32 = 0x60000000; +pub const PT_GNU_EH_FRAME: u32 = 0x6474e550; +pub const PT_GNU_STACK: u32 = 0x6474e551; +pub const PT_GNU_RELRO: u32 = 0x6474e552; +pub const PT_HIOS: u32 = 0x6fffffff; +pub const PT_LOPROC: u32 = 0x70000000; +pub const PT_HIPROC: u32 = 0x7fffffff; + +// uapi/linux/mount.h +pub const OPEN_TREE_CLONE: ::c_uint = 0x01; +pub const OPEN_TREE_CLOEXEC: ::c_uint = O_CLOEXEC as ::c_uint; + +// linux/netfilter.h +pub const NF_DROP: ::c_int = 0; +pub const NF_ACCEPT: ::c_int = 1; +pub const NF_STOLEN: ::c_int = 2; +pub const NF_QUEUE: ::c_int = 3; +pub const NF_REPEAT: ::c_int = 4; +pub const NF_STOP: ::c_int = 5; +pub const NF_MAX_VERDICT: ::c_int = NF_STOP; + +pub const NF_VERDICT_MASK: ::c_int = 0x000000ff; +pub const NF_VERDICT_FLAG_QUEUE_BYPASS: ::c_int = 0x00008000; + +pub const NF_VERDICT_QMASK: ::c_int = 0xffff0000; +pub const NF_VERDICT_QBITS: ::c_int = 16; + +pub const NF_VERDICT_BITS: ::c_int = 16; + +pub const NF_INET_PRE_ROUTING: ::c_int = 0; +pub const NF_INET_LOCAL_IN: ::c_int = 1; +pub const NF_INET_FORWARD: ::c_int = 2; +pub const NF_INET_LOCAL_OUT: ::c_int = 3; +pub const NF_INET_POST_ROUTING: ::c_int = 4; +pub const NF_INET_NUMHOOKS: ::c_int = 5; + +pub const NF_NETDEV_INGRESS: ::c_int = 0; +pub const NF_NETDEV_NUMHOOKS: ::c_int = 1; + +pub const NFPROTO_UNSPEC: ::c_int = 0; +pub const NFPROTO_INET: ::c_int = 1; +pub const NFPROTO_IPV4: ::c_int = 2; +pub const NFPROTO_ARP: ::c_int = 3; +pub const NFPROTO_NETDEV: ::c_int = 5; +pub const NFPROTO_BRIDGE: ::c_int = 7; +pub const NFPROTO_IPV6: ::c_int = 10; +pub const NFPROTO_DECNET: ::c_int = 12; +pub const NFPROTO_NUMPROTO: ::c_int = 13; + +// linux/netfilter_ipv4.h +pub const NF_IP_PRE_ROUTING: ::c_int = 0; +pub const NF_IP_LOCAL_IN: ::c_int = 1; +pub const NF_IP_FORWARD: ::c_int = 2; +pub const NF_IP_LOCAL_OUT: ::c_int = 3; +pub const NF_IP_POST_ROUTING: ::c_int = 4; +pub const NF_IP_NUMHOOKS: ::c_int = 5; + +pub const NF_IP_PRI_FIRST: ::c_int = ::INT_MIN; +pub const NF_IP_PRI_CONNTRACK_DEFRAG: ::c_int = -400; +pub const NF_IP_PRI_RAW: ::c_int = -300; +pub const NF_IP_PRI_SELINUX_FIRST: ::c_int = -225; +pub const NF_IP_PRI_CONNTRACK: ::c_int = -200; +pub const NF_IP_PRI_MANGLE: ::c_int = -150; +pub const NF_IP_PRI_NAT_DST: ::c_int = -100; +pub const NF_IP_PRI_FILTER: ::c_int = 0; +pub const NF_IP_PRI_SECURITY: ::c_int = 50; +pub const NF_IP_PRI_NAT_SRC: ::c_int = 100; +pub const NF_IP_PRI_SELINUX_LAST: ::c_int = 225; +pub const NF_IP_PRI_CONNTRACK_HELPER: ::c_int = 300; +pub const NF_IP_PRI_CONNTRACK_CONFIRM: ::c_int = ::INT_MAX; +pub const NF_IP_PRI_LAST: ::c_int = ::INT_MAX; + +// linux/netfilter_ipv6.h +pub const NF_IP6_PRE_ROUTING: ::c_int = 0; +pub const NF_IP6_LOCAL_IN: ::c_int = 1; +pub const NF_IP6_FORWARD: ::c_int = 2; +pub const NF_IP6_LOCAL_OUT: ::c_int = 3; +pub const NF_IP6_POST_ROUTING: ::c_int = 4; +pub const NF_IP6_NUMHOOKS: ::c_int = 5; + +pub const NF_IP6_PRI_FIRST: ::c_int = ::INT_MIN; +pub const NF_IP6_PRI_CONNTRACK_DEFRAG: ::c_int = -400; +pub const NF_IP6_PRI_RAW: ::c_int = -300; +pub const NF_IP6_PRI_SELINUX_FIRST: ::c_int = -225; +pub const NF_IP6_PRI_CONNTRACK: ::c_int = -200; +pub const NF_IP6_PRI_MANGLE: ::c_int = -150; +pub const NF_IP6_PRI_NAT_DST: ::c_int = -100; +pub const NF_IP6_PRI_FILTER: ::c_int = 0; +pub const NF_IP6_PRI_SECURITY: ::c_int = 50; +pub const NF_IP6_PRI_NAT_SRC: ::c_int = 100; +pub const NF_IP6_PRI_SELINUX_LAST: ::c_int = 225; +pub const NF_IP6_PRI_CONNTRACK_HELPER: ::c_int = 300; +pub const NF_IP6_PRI_LAST: ::c_int = ::INT_MAX; + +// linux/netfilter_ipv6/ip6_tables.h +pub const IP6T_SO_ORIGINAL_DST: ::c_int = 80; + +// linux/netfilter/nf_tables.h +pub const NFT_TABLE_MAXNAMELEN: ::c_int = 256; +pub const NFT_CHAIN_MAXNAMELEN: ::c_int = 256; +pub const NFT_SET_MAXNAMELEN: ::c_int = 256; +pub const NFT_OBJ_MAXNAMELEN: ::c_int = 256; +pub const NFT_USERDATA_MAXLEN: ::c_int = 256; + +pub const NFT_REG_VERDICT: ::c_int = 0; +pub const NFT_REG_1: ::c_int = 1; +pub const NFT_REG_2: ::c_int = 2; +pub const NFT_REG_3: ::c_int = 3; +pub const NFT_REG_4: ::c_int = 4; +pub const __NFT_REG_MAX: ::c_int = 5; +pub const NFT_REG32_00: ::c_int = 8; +pub const NFT_REG32_01: ::c_int = 9; +pub const NFT_REG32_02: ::c_int = 10; +pub const NFT_REG32_03: ::c_int = 11; +pub const NFT_REG32_04: ::c_int = 12; +pub const NFT_REG32_05: ::c_int = 13; +pub const NFT_REG32_06: ::c_int = 14; +pub const NFT_REG32_07: ::c_int = 15; +pub const NFT_REG32_08: ::c_int = 16; +pub const NFT_REG32_09: ::c_int = 17; +pub const NFT_REG32_10: ::c_int = 18; +pub const NFT_REG32_11: ::c_int = 19; +pub const NFT_REG32_12: ::c_int = 20; +pub const NFT_REG32_13: ::c_int = 21; +pub const NFT_REG32_14: ::c_int = 22; +pub const NFT_REG32_15: ::c_int = 23; + +pub const NFT_REG_SIZE: ::c_int = 16; +pub const NFT_REG32_SIZE: ::c_int = 4; + +pub const NFT_CONTINUE: ::c_int = -1; +pub const NFT_BREAK: ::c_int = -2; +pub const NFT_JUMP: ::c_int = -3; +pub const NFT_GOTO: ::c_int = -4; +pub const NFT_RETURN: ::c_int = -5; + +pub const NFT_MSG_NEWTABLE: ::c_int = 0; +pub const NFT_MSG_GETTABLE: ::c_int = 1; +pub const NFT_MSG_DELTABLE: ::c_int = 2; +pub const NFT_MSG_NEWCHAIN: ::c_int = 3; +pub const NFT_MSG_GETCHAIN: ::c_int = 4; +pub const NFT_MSG_DELCHAIN: ::c_int = 5; +pub const NFT_MSG_NEWRULE: ::c_int = 6; +pub const NFT_MSG_GETRULE: ::c_int = 7; +pub const NFT_MSG_DELRULE: ::c_int = 8; +pub const NFT_MSG_NEWSET: ::c_int = 9; +pub const NFT_MSG_GETSET: ::c_int = 10; +pub const NFT_MSG_DELSET: ::c_int = 11; +pub const NFT_MSG_NEWSETELEM: ::c_int = 12; +pub const NFT_MSG_GETSETELEM: ::c_int = 13; +pub const NFT_MSG_DELSETELEM: ::c_int = 14; +pub const NFT_MSG_NEWGEN: ::c_int = 15; +pub const NFT_MSG_GETGEN: ::c_int = 16; +pub const NFT_MSG_TRACE: ::c_int = 17; +pub const NFT_MSG_NEWOBJ: ::c_int = 18; +pub const NFT_MSG_GETOBJ: ::c_int = 19; +pub const NFT_MSG_DELOBJ: ::c_int = 20; +pub const NFT_MSG_GETOBJ_RESET: ::c_int = 21; +pub const NFT_MSG_MAX: ::c_int = 25; + +pub const NFT_SET_ANONYMOUS: ::c_int = 0x1; +pub const NFT_SET_CONSTANT: ::c_int = 0x2; +pub const NFT_SET_INTERVAL: ::c_int = 0x4; +pub const NFT_SET_MAP: ::c_int = 0x8; +pub const NFT_SET_TIMEOUT: ::c_int = 0x10; +pub const NFT_SET_EVAL: ::c_int = 0x20; + +pub const NFT_SET_POL_PERFORMANCE: ::c_int = 0; +pub const NFT_SET_POL_MEMORY: ::c_int = 1; + +pub const NFT_SET_ELEM_INTERVAL_END: ::c_int = 0x1; + +pub const NFT_DATA_VALUE: ::c_uint = 0; +pub const NFT_DATA_VERDICT: ::c_uint = 0xffffff00; + +pub const NFT_DATA_RESERVED_MASK: ::c_uint = 0xffffff00; + +pub const NFT_DATA_VALUE_MAXLEN: ::c_int = 64; + +pub const NFT_BYTEORDER_NTOH: ::c_int = 0; +pub const NFT_BYTEORDER_HTON: ::c_int = 1; + +pub const NFT_CMP_EQ: ::c_int = 0; +pub const NFT_CMP_NEQ: ::c_int = 1; +pub const NFT_CMP_LT: ::c_int = 2; +pub const NFT_CMP_LTE: ::c_int = 3; +pub const NFT_CMP_GT: ::c_int = 4; +pub const NFT_CMP_GTE: ::c_int = 5; + +pub const NFT_RANGE_EQ: ::c_int = 0; +pub const NFT_RANGE_NEQ: ::c_int = 1; + +pub const NFT_LOOKUP_F_INV: ::c_int = 1 << 0; + +pub const NFT_DYNSET_OP_ADD: ::c_int = 0; +pub const NFT_DYNSET_OP_UPDATE: ::c_int = 1; + +pub const NFT_DYNSET_F_INV: ::c_int = 1 << 0; + +pub const NFT_PAYLOAD_LL_HEADER: ::c_int = 0; +pub const NFT_PAYLOAD_NETWORK_HEADER: ::c_int = 1; +pub const NFT_PAYLOAD_TRANSPORT_HEADER: ::c_int = 2; + +pub const NFT_PAYLOAD_CSUM_NONE: ::c_int = 0; +pub const NFT_PAYLOAD_CSUM_INET: ::c_int = 1; + +pub const NFT_META_LEN: ::c_int = 0; +pub const NFT_META_PROTOCOL: ::c_int = 1; +pub const NFT_META_PRIORITY: ::c_int = 2; +pub const NFT_META_MARK: ::c_int = 3; +pub const NFT_META_IIF: ::c_int = 4; +pub const NFT_META_OIF: ::c_int = 5; +pub const NFT_META_IIFNAME: ::c_int = 6; +pub const NFT_META_OIFNAME: ::c_int = 7; +pub const NFT_META_IIFTYPE: ::c_int = 8; +pub const NFT_META_OIFTYPE: ::c_int = 9; +pub const NFT_META_SKUID: ::c_int = 10; +pub const NFT_META_SKGID: ::c_int = 11; +pub const NFT_META_NFTRACE: ::c_int = 12; +pub const NFT_META_RTCLASSID: ::c_int = 13; +pub const NFT_META_SECMARK: ::c_int = 14; +pub const NFT_META_NFPROTO: ::c_int = 15; +pub const NFT_META_L4PROTO: ::c_int = 16; +pub const NFT_META_BRI_IIFNAME: ::c_int = 17; +pub const NFT_META_BRI_OIFNAME: ::c_int = 18; +pub const NFT_META_PKTTYPE: ::c_int = 19; +pub const NFT_META_CPU: ::c_int = 20; +pub const NFT_META_IIFGROUP: ::c_int = 21; +pub const NFT_META_OIFGROUP: ::c_int = 22; +pub const NFT_META_CGROUP: ::c_int = 23; +pub const NFT_META_PRANDOM: ::c_int = 24; + +pub const NFT_CT_STATE: ::c_int = 0; +pub const NFT_CT_DIRECTION: ::c_int = 1; +pub const NFT_CT_STATUS: ::c_int = 2; +pub const NFT_CT_MARK: ::c_int = 3; +pub const NFT_CT_SECMARK: ::c_int = 4; +pub const NFT_CT_EXPIRATION: ::c_int = 5; +pub const NFT_CT_HELPER: ::c_int = 6; +pub const NFT_CT_L3PROTOCOL: ::c_int = 7; +pub const NFT_CT_SRC: ::c_int = 8; +pub const NFT_CT_DST: ::c_int = 9; +pub const NFT_CT_PROTOCOL: ::c_int = 10; +pub const NFT_CT_PROTO_SRC: ::c_int = 11; +pub const NFT_CT_PROTO_DST: ::c_int = 12; +pub const NFT_CT_LABELS: ::c_int = 13; +pub const NFT_CT_PKTS: ::c_int = 14; +pub const NFT_CT_BYTES: ::c_int = 15; + +pub const NFT_LIMIT_PKTS: ::c_int = 0; +pub const NFT_LIMIT_PKT_BYTES: ::c_int = 1; + +pub const NFT_LIMIT_F_INV: ::c_int = 1 << 0; + +pub const NFT_QUEUE_FLAG_BYPASS: ::c_int = 0x01; +pub const NFT_QUEUE_FLAG_CPU_FANOUT: ::c_int = 0x02; +pub const NFT_QUEUE_FLAG_MASK: ::c_int = 0x03; + +pub const NFT_QUOTA_F_INV: ::c_int = 1 << 0; + +pub const NFT_REJECT_ICMP_UNREACH: ::c_int = 0; +pub const NFT_REJECT_TCP_RST: ::c_int = 1; +pub const NFT_REJECT_ICMPX_UNREACH: ::c_int = 2; + +pub const NFT_REJECT_ICMPX_NO_ROUTE: ::c_int = 0; +pub const NFT_REJECT_ICMPX_PORT_UNREACH: ::c_int = 1; +pub const NFT_REJECT_ICMPX_HOST_UNREACH: ::c_int = 2; +pub const NFT_REJECT_ICMPX_ADMIN_PROHIBITED: ::c_int = 3; + +pub const NFT_NAT_SNAT: ::c_int = 0; +pub const NFT_NAT_DNAT: ::c_int = 1; + +pub const NFT_TRACETYPE_UNSPEC: ::c_int = 0; +pub const NFT_TRACETYPE_POLICY: ::c_int = 1; +pub const NFT_TRACETYPE_RETURN: ::c_int = 2; +pub const NFT_TRACETYPE_RULE: ::c_int = 3; + +pub const NFT_NG_INCREMENTAL: ::c_int = 0; +pub const NFT_NG_RANDOM: ::c_int = 1; + +// linux/input.h +pub const FF_MAX: ::__u16 = 0x7f; +pub const FF_CNT: usize = FF_MAX as usize + 1; + +// linux/input-event-codes.h +pub const INPUT_PROP_MAX: ::__u16 = 0x1f; +pub const INPUT_PROP_CNT: usize = INPUT_PROP_MAX as usize + 1; +pub const EV_MAX: ::__u16 = 0x1f; +pub const EV_CNT: usize = EV_MAX as usize + 1; +pub const SYN_MAX: ::__u16 = 0xf; +pub const SYN_CNT: usize = SYN_MAX as usize + 1; +pub const KEY_MAX: ::__u16 = 0x2ff; +pub const KEY_CNT: usize = KEY_MAX as usize + 1; +pub const REL_MAX: ::__u16 = 0x0f; +pub const REL_CNT: usize = REL_MAX as usize + 1; +pub const ABS_MAX: ::__u16 = 0x3f; +pub const ABS_CNT: usize = ABS_MAX as usize + 1; +pub const SW_MAX: ::__u16 = 0x0f; +pub const SW_CNT: usize = SW_MAX as usize + 1; +pub const MSC_MAX: ::__u16 = 0x07; +pub const MSC_CNT: usize = MSC_MAX as usize + 1; +pub const LED_MAX: ::__u16 = 0x0f; +pub const LED_CNT: usize = LED_MAX as usize + 1; +pub const REP_MAX: ::__u16 = 0x01; +pub const REP_CNT: usize = REP_MAX as usize + 1; +pub const SND_MAX: ::__u16 = 0x07; +pub const SND_CNT: usize = SND_MAX as usize + 1; + +// linux/uinput.h +pub const UINPUT_VERSION: ::c_uint = 5; +pub const UINPUT_MAX_NAME_SIZE: usize = 80; + +// bionic/libc/kernel/uapi/linux/if_tun.h +pub const IFF_TUN: ::c_int = 0x0001; +pub const IFF_TAP: ::c_int = 0x0002; +pub const IFF_NAPI: ::c_int = 0x0010; +pub const IFF_NAPI_FRAGS: ::c_int = 0x0020; +pub const IFF_NO_PI: ::c_int = 0x1000; +pub const IFF_ONE_QUEUE: ::c_int = 0x2000; +pub const IFF_VNET_HDR: ::c_int = 0x4000; +pub const IFF_TUN_EXCL: ::c_int = 0x8000; +pub const IFF_MULTI_QUEUE: ::c_int = 0x0100; +pub const IFF_ATTACH_QUEUE: ::c_int = 0x0200; +pub const IFF_DETACH_QUEUE: ::c_int = 0x0400; +pub const IFF_PERSIST: ::c_int = 0x0800; +pub const IFF_NOFILTER: ::c_int = 0x1000; + +// start android/platform/bionic/libc/kernel/uapi/linux/if_ether.h +// from https://android.googlesource.com/platform/bionic/+/HEAD/libc/kernel/uapi/linux/if_ether.h +pub const ETH_ALEN: ::c_int = 6; +pub const ETH_HLEN: ::c_int = 14; +pub const ETH_ZLEN: ::c_int = 60; +pub const ETH_DATA_LEN: ::c_int = 1500; +pub const ETH_FRAME_LEN: ::c_int = 1514; +pub const ETH_FCS_LEN: ::c_int = 4; +pub const ETH_MIN_MTU: ::c_int = 68; +pub const ETH_MAX_MTU: ::c_int = 0xFFFF; +pub const ETH_P_LOOP: ::c_int = 0x0060; +pub const ETH_P_PUP: ::c_int = 0x0200; +pub const ETH_P_PUPAT: ::c_int = 0x0201; +pub const ETH_P_TSN: ::c_int = 0x22F0; +pub const ETH_P_IP: ::c_int = 0x0800; +pub const ETH_P_X25: ::c_int = 0x0805; +pub const ETH_P_ARP: ::c_int = 0x0806; +pub const ETH_P_BPQ: ::c_int = 0x08FF; +pub const ETH_P_IEEEPUP: ::c_int = 0x0a00; +pub const ETH_P_IEEEPUPAT: ::c_int = 0x0a01; +pub const ETH_P_BATMAN: ::c_int = 0x4305; +pub const ETH_P_DEC: ::c_int = 0x6000; +pub const ETH_P_DNA_DL: ::c_int = 0x6001; +pub const ETH_P_DNA_RC: ::c_int = 0x6002; +pub const ETH_P_DNA_RT: ::c_int = 0x6003; +pub const ETH_P_LAT: ::c_int = 0x6004; +pub const ETH_P_DIAG: ::c_int = 0x6005; +pub const ETH_P_CUST: ::c_int = 0x6006; +pub const ETH_P_SCA: ::c_int = 0x6007; +pub const ETH_P_TEB: ::c_int = 0x6558; +pub const ETH_P_RARP: ::c_int = 0x8035; +pub const ETH_P_ATALK: ::c_int = 0x809B; +pub const ETH_P_AARP: ::c_int = 0x80F3; +pub const ETH_P_8021Q: ::c_int = 0x8100; +/* see rust-lang/libc#924 pub const ETH_P_ERSPAN: ::c_int = 0x88BE;*/ +pub const ETH_P_IPX: ::c_int = 0x8137; +pub const ETH_P_IPV6: ::c_int = 0x86DD; +pub const ETH_P_PAUSE: ::c_int = 0x8808; +pub const ETH_P_SLOW: ::c_int = 0x8809; +pub const ETH_P_WCCP: ::c_int = 0x883E; +pub const ETH_P_MPLS_UC: ::c_int = 0x8847; +pub const ETH_P_MPLS_MC: ::c_int = 0x8848; +pub const ETH_P_ATMMPOA: ::c_int = 0x884c; +pub const ETH_P_PPP_DISC: ::c_int = 0x8863; +pub const ETH_P_PPP_SES: ::c_int = 0x8864; +pub const ETH_P_LINK_CTL: ::c_int = 0x886c; +pub const ETH_P_ATMFATE: ::c_int = 0x8884; +pub const ETH_P_PAE: ::c_int = 0x888E; +pub const ETH_P_AOE: ::c_int = 0x88A2; +pub const ETH_P_8021AD: ::c_int = 0x88A8; +pub const ETH_P_802_EX1: ::c_int = 0x88B5; +pub const ETH_P_TIPC: ::c_int = 0x88CA; +pub const ETH_P_MACSEC: ::c_int = 0x88E5; +pub const ETH_P_8021AH: ::c_int = 0x88E7; +pub const ETH_P_MVRP: ::c_int = 0x88F5; +pub const ETH_P_1588: ::c_int = 0x88F7; +pub const ETH_P_NCSI: ::c_int = 0x88F8; +pub const ETH_P_PRP: ::c_int = 0x88FB; +pub const ETH_P_FCOE: ::c_int = 0x8906; +/* see rust-lang/libc#924 pub const ETH_P_IBOE: ::c_int = 0x8915;*/ +pub const ETH_P_TDLS: ::c_int = 0x890D; +pub const ETH_P_FIP: ::c_int = 0x8914; +pub const ETH_P_80221: ::c_int = 0x8917; +pub const ETH_P_HSR: ::c_int = 0x892F; +/* see rust-lang/libc#924 pub const ETH_P_NSH: ::c_int = 0x894F;*/ +pub const ETH_P_LOOPBACK: ::c_int = 0x9000; +pub const ETH_P_QINQ1: ::c_int = 0x9100; +pub const ETH_P_QINQ2: ::c_int = 0x9200; +pub const ETH_P_QINQ3: ::c_int = 0x9300; +pub const ETH_P_EDSA: ::c_int = 0xDADA; +/* see rust-lang/libc#924 pub const ETH_P_IFE: ::c_int = 0xED3E;*/ +pub const ETH_P_AF_IUCV: ::c_int = 0xFBFB; +pub const ETH_P_802_3_MIN: ::c_int = 0x0600; +pub const ETH_P_802_3: ::c_int = 0x0001; +pub const ETH_P_AX25: ::c_int = 0x0002; +pub const ETH_P_ALL: ::c_int = 0x0003; +pub const ETH_P_802_2: ::c_int = 0x0004; +pub const ETH_P_SNAP: ::c_int = 0x0005; +pub const ETH_P_DDCMP: ::c_int = 0x0006; +pub const ETH_P_WAN_PPP: ::c_int = 0x0007; +pub const ETH_P_PPP_MP: ::c_int = 0x0008; +pub const ETH_P_LOCALTALK: ::c_int = 0x0009; +pub const ETH_P_CAN: ::c_int = 0x000C; +pub const ETH_P_CANFD: ::c_int = 0x000D; +pub const ETH_P_PPPTALK: ::c_int = 0x0010; +pub const ETH_P_TR_802_2: ::c_int = 0x0011; +pub const ETH_P_MOBITEX: ::c_int = 0x0015; +pub const ETH_P_CONTROL: ::c_int = 0x0016; +pub const ETH_P_IRDA: ::c_int = 0x0017; +pub const ETH_P_ECONET: ::c_int = 0x0018; +pub const ETH_P_HDLC: ::c_int = 0x0019; +pub const ETH_P_ARCNET: ::c_int = 0x001A; +pub const ETH_P_DSA: ::c_int = 0x001B; +pub const ETH_P_TRAILER: ::c_int = 0x001C; +pub const ETH_P_PHONET: ::c_int = 0x00F5; +pub const ETH_P_IEEE802154: ::c_int = 0x00F6; +pub const ETH_P_CAIF: ::c_int = 0x00F7; +pub const ETH_P_XDSA: ::c_int = 0x00F8; +/* see rust-lang/libc#924 pub const ETH_P_MAP: ::c_int = 0x00F9;*/ +// end android/platform/bionic/libc/kernel/uapi/linux/if_ether.h + +pub const SIOCADDRT: ::c_ulong = 0x0000890B; +pub const SIOCDELRT: ::c_ulong = 0x0000890C; +pub const SIOCGIFNAME: ::c_ulong = 0x00008910; +pub const SIOCSIFLINK: ::c_ulong = 0x00008911; +pub const SIOCGIFCONF: ::c_ulong = 0x00008912; +pub const SIOCGIFFLAGS: ::c_ulong = 0x00008913; +pub const SIOCSIFFLAGS: ::c_ulong = 0x00008914; +pub const SIOCGIFADDR: ::c_ulong = 0x00008915; +pub const SIOCSIFADDR: ::c_ulong = 0x00008916; +pub const SIOCGIFDSTADDR: ::c_ulong = 0x00008917; +pub const SIOCSIFDSTADDR: ::c_ulong = 0x00008918; +pub const SIOCGIFBRDADDR: ::c_ulong = 0x00008919; +pub const SIOCSIFBRDADDR: ::c_ulong = 0x0000891A; +pub const SIOCGIFNETMASK: ::c_ulong = 0x0000891B; +pub const SIOCSIFNETMASK: ::c_ulong = 0x0000891C; +pub const SIOCGIFMETRIC: ::c_ulong = 0x0000891D; +pub const SIOCSIFMETRIC: ::c_ulong = 0x0000891E; +pub const SIOCGIFMEM: ::c_ulong = 0x0000891F; +pub const SIOCSIFMEM: ::c_ulong = 0x00008920; +pub const SIOCGIFMTU: ::c_ulong = 0x00008921; +pub const SIOCSIFMTU: ::c_ulong = 0x00008922; +pub const SIOCSIFHWADDR: ::c_ulong = 0x00008924; +pub const SIOCGIFENCAP: ::c_ulong = 0x00008925; +pub const SIOCSIFENCAP: ::c_ulong = 0x00008926; +pub const SIOCGIFHWADDR: ::c_ulong = 0x00008927; +pub const SIOCGIFSLAVE: ::c_ulong = 0x00008929; +pub const SIOCSIFSLAVE: ::c_ulong = 0x00008930; +pub const SIOCADDMULTI: ::c_ulong = 0x00008931; +pub const SIOCDELMULTI: ::c_ulong = 0x00008932; +pub const SIOCDARP: ::c_ulong = 0x00008953; +pub const SIOCGARP: ::c_ulong = 0x00008954; +pub const SIOCSARP: ::c_ulong = 0x00008955; +pub const SIOCDRARP: ::c_ulong = 0x00008960; +pub const SIOCGRARP: ::c_ulong = 0x00008961; +pub const SIOCSRARP: ::c_ulong = 0x00008962; +pub const SIOCGIFMAP: ::c_ulong = 0x00008970; +pub const SIOCSIFMAP: ::c_ulong = 0x00008971; + +// linux/module.h +pub const MODULE_INIT_IGNORE_MODVERSIONS: ::c_uint = 0x0001; +pub const MODULE_INIT_IGNORE_VERMAGIC: ::c_uint = 0x0002; + +#[deprecated( + since = "0.2.55", + note = "ENOATTR is not available on Android; use ENODATA instead" +)] +pub const ENOATTR: ::c_int = ::ENODATA; + +// linux/if_alg.h +pub const ALG_SET_KEY: ::c_int = 1; +pub const ALG_SET_IV: ::c_int = 2; +pub const ALG_SET_OP: ::c_int = 3; +pub const ALG_SET_AEAD_ASSOCLEN: ::c_int = 4; +pub const ALG_SET_AEAD_AUTHSIZE: ::c_int = 5; + +pub const ALG_OP_DECRYPT: ::c_int = 0; +pub const ALG_OP_ENCRYPT: ::c_int = 1; + +// sys/mman.h +pub const MLOCK_ONFAULT: ::c_int = 0x01; + +// uapi/linux/vm_sockets.h +pub const VMADDR_CID_ANY: ::c_uint = 0xFFFFFFFF; +pub const VMADDR_CID_HYPERVISOR: ::c_uint = 0; +pub const VMADDR_CID_LOCAL: ::c_uint = 1; +pub const VMADDR_CID_HOST: ::c_uint = 2; +pub const VMADDR_PORT_ANY: ::c_uint = 0xFFFFFFFF; + +// uapi/linux/inotify.h +pub const IN_ACCESS: u32 = 0x0000_0001; +pub const IN_MODIFY: u32 = 0x0000_0002; +pub const IN_ATTRIB: u32 = 0x0000_0004; +pub const IN_CLOSE_WRITE: u32 = 0x0000_0008; +pub const IN_CLOSE_NOWRITE: u32 = 0x0000_0010; +pub const IN_CLOSE: u32 = IN_CLOSE_WRITE | IN_CLOSE_NOWRITE; +pub const IN_OPEN: u32 = 0x0000_0020; +pub const IN_MOVED_FROM: u32 = 0x0000_0040; +pub const IN_MOVED_TO: u32 = 0x0000_0080; +pub const IN_MOVE: u32 = IN_MOVED_FROM | IN_MOVED_TO; +pub const IN_CREATE: u32 = 0x0000_0100; +pub const IN_DELETE: u32 = 0x0000_0200; +pub const IN_DELETE_SELF: u32 = 0x0000_0400; +pub const IN_MOVE_SELF: u32 = 0x0000_0800; +pub const IN_UNMOUNT: u32 = 0x0000_2000; +pub const IN_Q_OVERFLOW: u32 = 0x0000_4000; +pub const IN_IGNORED: u32 = 0x0000_8000; +pub const IN_ONLYDIR: u32 = 0x0100_0000; +pub const IN_DONT_FOLLOW: u32 = 0x0200_0000; +pub const IN_EXCL_UNLINK: u32 = 0x0400_0000; + +pub const IN_MASK_CREATE: u32 = 0x1000_0000; +pub const IN_MASK_ADD: u32 = 0x2000_0000; +pub const IN_ISDIR: u32 = 0x4000_0000; +pub const IN_ONESHOT: u32 = 0x8000_0000; + +pub const IN_ALL_EVENTS: u32 = IN_ACCESS + | IN_MODIFY + | IN_ATTRIB + | IN_CLOSE_WRITE + | IN_CLOSE_NOWRITE + | IN_OPEN + | IN_MOVED_FROM + | IN_MOVED_TO + | IN_DELETE + | IN_CREATE + | IN_DELETE_SELF + | IN_MOVE_SELF; + +pub const IN_CLOEXEC: ::c_int = O_CLOEXEC; +pub const IN_NONBLOCK: ::c_int = O_NONBLOCK; + +pub const FUTEX_WAIT: ::c_int = 0; +pub const FUTEX_WAKE: ::c_int = 1; +pub const FUTEX_FD: ::c_int = 2; +pub const FUTEX_REQUEUE: ::c_int = 3; +pub const FUTEX_CMP_REQUEUE: ::c_int = 4; +pub const FUTEX_WAKE_OP: ::c_int = 5; +pub const FUTEX_LOCK_PI: ::c_int = 6; +pub const FUTEX_UNLOCK_PI: ::c_int = 7; +pub const FUTEX_TRYLOCK_PI: ::c_int = 8; +pub const FUTEX_WAIT_BITSET: ::c_int = 9; +pub const FUTEX_WAKE_BITSET: ::c_int = 10; +pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11; +pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12; + +pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; +pub const FUTEX_CLOCK_REALTIME: ::c_int = 256; +pub const FUTEX_CMD_MASK: ::c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); + +// linux/errqueue.h +pub const SO_EE_ORIGIN_NONE: u8 = 0; +pub const SO_EE_ORIGIN_LOCAL: u8 = 1; +pub const SO_EE_ORIGIN_ICMP: u8 = 2; +pub const SO_EE_ORIGIN_ICMP6: u8 = 3; +pub const SO_EE_ORIGIN_TXSTATUS: u8 = 4; +pub const SO_EE_ORIGIN_TIMESTAMPING: u8 = SO_EE_ORIGIN_TXSTATUS; + +// errno.h +pub const EPERM: ::c_int = 1; +pub const ENOENT: ::c_int = 2; +pub const ESRCH: ::c_int = 3; +pub const EINTR: ::c_int = 4; +pub const EIO: ::c_int = 5; +pub const ENXIO: ::c_int = 6; +pub const E2BIG: ::c_int = 7; +pub const ENOEXEC: ::c_int = 8; +pub const EBADF: ::c_int = 9; +pub const ECHILD: ::c_int = 10; +pub const EAGAIN: ::c_int = 11; +pub const ENOMEM: ::c_int = 12; +pub const EACCES: ::c_int = 13; +pub const EFAULT: ::c_int = 14; +pub const ENOTBLK: ::c_int = 15; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const EXDEV: ::c_int = 18; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENFILE: ::c_int = 23; +pub const EMFILE: ::c_int = 24; +pub const ENOTTY: ::c_int = 25; +pub const ETXTBSY: ::c_int = 26; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const ESPIPE: ::c_int = 29; +pub const EROFS: ::c_int = 30; +pub const EMLINK: ::c_int = 31; +pub const EPIPE: ::c_int = 32; +pub const EDOM: ::c_int = 33; +pub const ERANGE: ::c_int = 34; +pub const EWOULDBLOCK: ::c_int = EAGAIN; + +pub const PRIO_PROCESS: ::c_int = 0; +pub const PRIO_PGRP: ::c_int = 1; +pub const PRIO_USER: ::c_int = 2; + +// linux/sched.h +pub const SCHED_NORMAL: ::c_int = 0; +pub const SCHED_FIFO: ::c_int = 1; +pub const SCHED_RR: ::c_int = 2; +pub const SCHED_BATCH: ::c_int = 3; +pub const SCHED_IDLE: ::c_int = 5; +pub const SCHED_DEADLINE: ::c_int = 6; + +pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000; + +pub const CLONE_PIDFD: ::c_int = 0x1000; + +// linux/membarrier.h +pub const MEMBARRIER_CMD_QUERY: ::c_int = 0; +pub const MEMBARRIER_CMD_GLOBAL: ::c_int = 1 << 0; +pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: ::c_int = 1 << 1; +pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: ::c_int = 1 << 2; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: ::c_int = 1 << 3; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: ::c_int = 1 << 4; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 5; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 6; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 7; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 8; + +// linux/mempolicy.h +pub const MPOL_DEFAULT: ::c_int = 0; +pub const MPOL_PREFERRED: ::c_int = 1; +pub const MPOL_BIND: ::c_int = 2; +pub const MPOL_INTERLEAVE: ::c_int = 3; +pub const MPOL_LOCAL: ::c_int = 4; +pub const MPOL_F_NUMA_BALANCING: ::c_int = 1 << 13; +pub const MPOL_F_RELATIVE_NODES: ::c_int = 1 << 14; +pub const MPOL_F_STATIC_NODES: ::c_int = 1 << 15; + +// bits/seek_constants.h +pub const SEEK_DATA: ::c_int = 3; +pub const SEEK_HOLE: ::c_int = 4; + +// sys/socket.h +pub const AF_NFC: ::c_int = 39; +pub const AF_VSOCK: ::c_int = 40; +pub const PF_NFC: ::c_int = AF_NFC; +pub const PF_VSOCK: ::c_int = AF_VSOCK; + +pub const SOMAXCONN: ::c_int = 128; + +// sys/prctl.h +pub const PR_SET_PDEATHSIG: ::c_int = 1; +pub const PR_GET_PDEATHSIG: ::c_int = 2; +pub const PR_GET_SECUREBITS: ::c_int = 27; +pub const PR_SET_SECUREBITS: ::c_int = 28; + +// sys/system_properties.h +pub const PROP_VALUE_MAX: ::c_int = 92; +pub const PROP_NAME_MAX: ::c_int = 32; + +// sys/prctl.h +pub const PR_SET_VMA: ::c_int = 0x53564d41; +pub const PR_SET_VMA_ANON_NAME: ::c_int = 0; +pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38; +pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39; +pub const PR_GET_SECCOMP: ::c_int = 21; +pub const PR_SET_SECCOMP: ::c_int = 22; +pub const PR_GET_TIMING: ::c_int = 13; +pub const PR_SET_TIMING: ::c_int = 14; +pub const PR_TIMING_STATISTICAL: ::c_int = 0; +pub const PR_TIMING_TIMESTAMP: ::c_int = 1; + +// linux/if_addr.h +pub const IFA_UNSPEC: ::c_ushort = 0; +pub const IFA_ADDRESS: ::c_ushort = 1; +pub const IFA_LOCAL: ::c_ushort = 2; +pub const IFA_LABEL: ::c_ushort = 3; +pub const IFA_BROADCAST: ::c_ushort = 4; +pub const IFA_ANYCAST: ::c_ushort = 5; +pub const IFA_CACHEINFO: ::c_ushort = 6; +pub const IFA_MULTICAST: ::c_ushort = 7; + +pub const IFA_F_SECONDARY: u32 = 0x01; +pub const IFA_F_TEMPORARY: u32 = 0x01; +pub const IFA_F_NODAD: u32 = 0x02; +pub const IFA_F_OPTIMISTIC: u32 = 0x04; +pub const IFA_F_DADFAILED: u32 = 0x08; +pub const IFA_F_HOMEADDRESS: u32 = 0x10; +pub const IFA_F_DEPRECATED: u32 = 0x20; +pub const IFA_F_TENTATIVE: u32 = 0x40; +pub const IFA_F_PERMANENT: u32 = 0x80; + +// linux/if_link.h +pub const IFLA_UNSPEC: ::c_ushort = 0; +pub const IFLA_ADDRESS: ::c_ushort = 1; +pub const IFLA_BROADCAST: ::c_ushort = 2; +pub const IFLA_IFNAME: ::c_ushort = 3; +pub const IFLA_MTU: ::c_ushort = 4; +pub const IFLA_LINK: ::c_ushort = 5; +pub const IFLA_QDISC: ::c_ushort = 6; +pub const IFLA_STATS: ::c_ushort = 7; +pub const IFLA_COST: ::c_ushort = 8; +pub const IFLA_PRIORITY: ::c_ushort = 9; +pub const IFLA_MASTER: ::c_ushort = 10; +pub const IFLA_WIRELESS: ::c_ushort = 11; +pub const IFLA_PROTINFO: ::c_ushort = 12; +pub const IFLA_TXQLEN: ::c_ushort = 13; +pub const IFLA_MAP: ::c_ushort = 14; +pub const IFLA_WEIGHT: ::c_ushort = 15; +pub const IFLA_OPERSTATE: ::c_ushort = 16; +pub const IFLA_LINKMODE: ::c_ushort = 17; +pub const IFLA_LINKINFO: ::c_ushort = 18; +pub const IFLA_NET_NS_PID: ::c_ushort = 19; +pub const IFLA_IFALIAS: ::c_ushort = 20; +pub const IFLA_NUM_VF: ::c_ushort = 21; +pub const IFLA_VFINFO_LIST: ::c_ushort = 22; +pub const IFLA_STATS64: ::c_ushort = 23; +pub const IFLA_VF_PORTS: ::c_ushort = 24; +pub const IFLA_PORT_SELF: ::c_ushort = 25; +pub const IFLA_AF_SPEC: ::c_ushort = 26; +pub const IFLA_GROUP: ::c_ushort = 27; +pub const IFLA_NET_NS_FD: ::c_ushort = 28; +pub const IFLA_EXT_MASK: ::c_ushort = 29; +pub const IFLA_PROMISCUITY: ::c_ushort = 30; +pub const IFLA_NUM_TX_QUEUES: ::c_ushort = 31; +pub const IFLA_NUM_RX_QUEUES: ::c_ushort = 32; +pub const IFLA_CARRIER: ::c_ushort = 33; +pub const IFLA_PHYS_PORT_ID: ::c_ushort = 34; +pub const IFLA_CARRIER_CHANGES: ::c_ushort = 35; +pub const IFLA_PHYS_SWITCH_ID: ::c_ushort = 36; +pub const IFLA_LINK_NETNSID: ::c_ushort = 37; +pub const IFLA_PHYS_PORT_NAME: ::c_ushort = 38; +pub const IFLA_PROTO_DOWN: ::c_ushort = 39; +pub const IFLA_GSO_MAX_SEGS: ::c_ushort = 40; +pub const IFLA_GSO_MAX_SIZE: ::c_ushort = 41; +pub const IFLA_PAD: ::c_ushort = 42; +pub const IFLA_XDP: ::c_ushort = 43; +pub const IFLA_EVENT: ::c_ushort = 44; +pub const IFLA_NEW_NETNSID: ::c_ushort = 45; +pub const IFLA_IF_NETNSID: ::c_ushort = 46; +pub const IFLA_TARGET_NETNSID: ::c_ushort = IFLA_IF_NETNSID; +pub const IFLA_CARRIER_UP_COUNT: ::c_ushort = 47; +pub const IFLA_CARRIER_DOWN_COUNT: ::c_ushort = 48; +pub const IFLA_NEW_IFINDEX: ::c_ushort = 49; +pub const IFLA_MIN_MTU: ::c_ushort = 50; +pub const IFLA_MAX_MTU: ::c_ushort = 51; + +pub const IFLA_INFO_UNSPEC: ::c_ushort = 0; +pub const IFLA_INFO_KIND: ::c_ushort = 1; +pub const IFLA_INFO_DATA: ::c_ushort = 2; +pub const IFLA_INFO_XSTATS: ::c_ushort = 3; +pub const IFLA_INFO_SLAVE_KIND: ::c_ushort = 4; +pub const IFLA_INFO_SLAVE_DATA: ::c_ushort = 5; + +// linux/rtnetlink.h +pub const TCA_UNSPEC: ::c_ushort = 0; +pub const TCA_KIND: ::c_ushort = 1; +pub const TCA_OPTIONS: ::c_ushort = 2; +pub const TCA_STATS: ::c_ushort = 3; +pub const TCA_XSTATS: ::c_ushort = 4; +pub const TCA_RATE: ::c_ushort = 5; +pub const TCA_FCNT: ::c_ushort = 6; +pub const TCA_STATS2: ::c_ushort = 7; +pub const TCA_STAB: ::c_ushort = 8; + +pub const RTM_NEWLINK: u16 = 16; +pub const RTM_DELLINK: u16 = 17; +pub const RTM_GETLINK: u16 = 18; +pub const RTM_SETLINK: u16 = 19; +pub const RTM_NEWADDR: u16 = 20; +pub const RTM_DELADDR: u16 = 21; +pub const RTM_GETADDR: u16 = 22; +pub const RTM_NEWROUTE: u16 = 24; +pub const RTM_DELROUTE: u16 = 25; +pub const RTM_GETROUTE: u16 = 26; +pub const RTM_NEWNEIGH: u16 = 28; +pub const RTM_DELNEIGH: u16 = 29; +pub const RTM_GETNEIGH: u16 = 30; +pub const RTM_NEWRULE: u16 = 32; +pub const RTM_DELRULE: u16 = 33; +pub const RTM_GETRULE: u16 = 34; +pub const RTM_NEWQDISC: u16 = 36; +pub const RTM_DELQDISC: u16 = 37; +pub const RTM_GETQDISC: u16 = 38; +pub const RTM_NEWTCLASS: u16 = 40; +pub const RTM_DELTCLASS: u16 = 41; +pub const RTM_GETTCLASS: u16 = 42; +pub const RTM_NEWTFILTER: u16 = 44; +pub const RTM_DELTFILTER: u16 = 45; +pub const RTM_GETTFILTER: u16 = 46; +pub const RTM_NEWACTION: u16 = 48; +pub const RTM_DELACTION: u16 = 49; +pub const RTM_GETACTION: u16 = 50; +pub const RTM_NEWPREFIX: u16 = 52; +pub const RTM_GETMULTICAST: u16 = 58; +pub const RTM_GETANYCAST: u16 = 62; +pub const RTM_NEWNEIGHTBL: u16 = 64; +pub const RTM_GETNEIGHTBL: u16 = 66; +pub const RTM_SETNEIGHTBL: u16 = 67; +pub const RTM_NEWNDUSEROPT: u16 = 68; +pub const RTM_NEWADDRLABEL: u16 = 72; +pub const RTM_DELADDRLABEL: u16 = 73; +pub const RTM_GETADDRLABEL: u16 = 74; +pub const RTM_GETDCB: u16 = 78; +pub const RTM_SETDCB: u16 = 79; +pub const RTM_NEWNETCONF: u16 = 80; +pub const RTM_GETNETCONF: u16 = 82; +pub const RTM_NEWMDB: u16 = 84; +pub const RTM_DELMDB: u16 = 85; +pub const RTM_GETMDB: u16 = 86; +pub const RTM_NEWNSID: u16 = 88; +pub const RTM_DELNSID: u16 = 89; +pub const RTM_GETNSID: u16 = 90; + +pub const RTM_F_NOTIFY: ::c_uint = 0x100; +pub const RTM_F_CLONED: ::c_uint = 0x200; +pub const RTM_F_EQUALIZE: ::c_uint = 0x400; +pub const RTM_F_PREFIX: ::c_uint = 0x800; + +pub const RTA_UNSPEC: ::c_ushort = 0; +pub const RTA_DST: ::c_ushort = 1; +pub const RTA_SRC: ::c_ushort = 2; +pub const RTA_IIF: ::c_ushort = 3; +pub const RTA_OIF: ::c_ushort = 4; +pub const RTA_GATEWAY: ::c_ushort = 5; +pub const RTA_PRIORITY: ::c_ushort = 6; +pub const RTA_PREFSRC: ::c_ushort = 7; +pub const RTA_METRICS: ::c_ushort = 8; +pub const RTA_MULTIPATH: ::c_ushort = 9; +pub const RTA_PROTOINFO: ::c_ushort = 10; // No longer used +pub const RTA_FLOW: ::c_ushort = 11; +pub const RTA_CACHEINFO: ::c_ushort = 12; +pub const RTA_SESSION: ::c_ushort = 13; // No longer used +pub const RTA_MP_ALGO: ::c_ushort = 14; // No longer used +pub const RTA_TABLE: ::c_ushort = 15; +pub const RTA_MARK: ::c_ushort = 16; +pub const RTA_MFC_STATS: ::c_ushort = 17; + +pub const RTN_UNSPEC: ::c_uchar = 0; +pub const RTN_UNICAST: ::c_uchar = 1; +pub const RTN_LOCAL: ::c_uchar = 2; +pub const RTN_BROADCAST: ::c_uchar = 3; +pub const RTN_ANYCAST: ::c_uchar = 4; +pub const RTN_MULTICAST: ::c_uchar = 5; +pub const RTN_BLACKHOLE: ::c_uchar = 6; +pub const RTN_UNREACHABLE: ::c_uchar = 7; +pub const RTN_PROHIBIT: ::c_uchar = 8; +pub const RTN_THROW: ::c_uchar = 9; +pub const RTN_NAT: ::c_uchar = 10; +pub const RTN_XRESOLVE: ::c_uchar = 11; + +pub const RTPROT_UNSPEC: ::c_uchar = 0; +pub const RTPROT_REDIRECT: ::c_uchar = 1; +pub const RTPROT_KERNEL: ::c_uchar = 2; +pub const RTPROT_BOOT: ::c_uchar = 3; +pub const RTPROT_STATIC: ::c_uchar = 4; + +pub const RT_SCOPE_UNIVERSE: ::c_uchar = 0; +pub const RT_SCOPE_SITE: ::c_uchar = 200; +pub const RT_SCOPE_LINK: ::c_uchar = 253; +pub const RT_SCOPE_HOST: ::c_uchar = 254; +pub const RT_SCOPE_NOWHERE: ::c_uchar = 255; + +pub const RT_TABLE_UNSPEC: ::c_uchar = 0; +pub const RT_TABLE_COMPAT: ::c_uchar = 252; +pub const RT_TABLE_DEFAULT: ::c_uchar = 253; +pub const RT_TABLE_MAIN: ::c_uchar = 254; +pub const RT_TABLE_LOCAL: ::c_uchar = 255; + +pub const RTMSG_NEWDEVICE: u32 = 0x11; +pub const RTMSG_DELDEVICE: u32 = 0x12; +pub const RTMSG_NEWROUTE: u32 = 0x21; +pub const RTMSG_DELROUTE: u32 = 0x22; + +// Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the +// following are only available on newer Linux versions than the versions +// currently used in CI in some configurations, so we define them here. +cfg_if! { + if #[cfg(not(target_arch = "s390x"))] { + pub const XFS_SUPER_MAGIC: ::c_long = 0x58465342; + } else if #[cfg(target_arch = "s390x")] { + pub const XFS_SUPER_MAGIC: ::c_uint = 0x58465342; + } +} + +f! { + pub fn CMSG_NXTHDR(mhdr: *const msghdr, + cmsg: *const cmsghdr) -> *mut cmsghdr { + let next = (cmsg as usize + + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) + as *mut cmsghdr; + let max = (*mhdr).msg_control as usize + + (*mhdr).msg_controllen as usize; + if (next.offset(1)) as usize > max { + 0 as *mut cmsghdr + } else { + next as *mut cmsghdr + } + } + + pub fn CPU_ALLOC_SIZE(count: ::c_int) -> ::size_t { + let _dummy: cpu_set_t = ::mem::zeroed(); + let size_in_bits = 8 * ::mem::size_of_val(&_dummy.__bits[0]); + ((count as ::size_t + size_in_bits - 1) / 8) as ::size_t + } + + pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { + for slot in cpuset.__bits.iter_mut() { + *slot = 0; + } + } + + pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let size_in_bits + = 8 * ::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.__bits[idx] |= 1 << offset; + () + } + + pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let size_in_bits + = 8 * ::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.__bits[idx] &= !(1 << offset); + () + } + + pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.__bits[0]); + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + 0 != (cpuset.__bits[idx] & (1 << offset)) + } + + pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> ::c_int { + let mut s: u32 = 0; + let size_of_mask = ::mem::size_of_val(&cpuset.__bits[0]); + for i in cpuset.__bits[..(size / size_of_mask)].iter() { + s += i.count_ones(); + }; + s as ::c_int + } + + pub fn CPU_COUNT(cpuset: &cpu_set_t) -> ::c_int { + CPU_COUNT_S(::mem::size_of::(), cpuset) + } + + pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { + set1.__bits == set2.__bits + } + + pub fn major(dev: ::dev_t) -> ::c_int { + ((dev >> 8) & 0xfff) as ::c_int + } + pub fn minor(dev: ::dev_t) -> ::c_int { + ((dev & 0xff) | ((dev >> 12) & 0xfff00)) as ::c_int + } + pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { + return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1) + } + + pub fn SO_EE_OFFENDER(ee: *const ::sock_extended_err) -> *mut ::sockaddr { + ee.offset(1) as *mut ::sockaddr + } +} + +safe_f! { + pub {const} fn makedev(ma: ::c_uint, mi: ::c_uint) -> ::dev_t { + let ma = ma as ::dev_t; + let mi = mi as ::dev_t; + ((ma & 0xfff) << 8) | (mi & 0xff) | ((mi & 0xfff00) << 12) + } + +} + +extern "C" { + pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; + pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; + pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; + pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + pub fn prlimit( + pid: ::pid_t, + resource: ::c_int, + new_limit: *const ::rlimit, + old_limit: *mut ::rlimit, + ) -> ::c_int; + pub fn prlimit64( + pid: ::pid_t, + resource: ::c_int, + new_limit: *const ::rlimit64, + old_limit: *mut ::rlimit64, + ) -> ::c_int; + pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn mlock2(addr: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; + pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::size_t, + serv: *mut ::c_char, + sevlen: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn preadv(fd: ::c_int, iov: *const ::iovec, count: ::c_int, offset: ::off_t) -> ::ssize_t; + pub fn pwritev(fd: ::c_int, iov: *const ::iovec, count: ::c_int, offset: ::off_t) -> ::ssize_t; + pub fn process_vm_readv( + pid: ::pid_t, + local_iov: *const ::iovec, + local_iov_count: ::c_ulong, + remote_iov: *const ::iovec, + remote_iov_count: ::c_ulong, + flags: ::c_ulong, + ) -> ::ssize_t; + pub fn process_vm_writev( + pid: ::pid_t, + local_iov: *const ::iovec, + local_iov_count: ::c_ulong, + remote_iov: *const ::iovec, + remote_iov_count: ::c_ulong, + flags: ::c_ulong, + ) -> ::ssize_t; + pub fn ptrace(request: ::c_int, ...) -> ::c_long; + pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; + pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; + pub fn __sched_cpualloc(count: ::size_t) -> *mut ::cpu_set_t; + pub fn __sched_cpufree(set: *mut ::cpu_set_t); + pub fn __sched_cpucount(setsize: ::size_t, set: *const cpu_set_t) -> ::c_int; + pub fn sched_getcpu() -> ::c_int; + pub fn mallinfo() -> ::mallinfo; + // available from API 23 + pub fn malloc_info(options: ::c_int, stream: *mut ::FILE) -> ::c_int; + + pub fn malloc_usable_size(ptr: *const ::c_void) -> ::size_t; + + pub fn utmpname(name: *const ::c_char) -> ::c_int; + pub fn setutent(); + pub fn getutent() -> *mut utmp; + + pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + pub fn fallocate(fd: ::c_int, mode: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + pub fn fallocate64(fd: ::c_int, mode: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; + pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + pub fn posix_fallocate64(fd: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; + pub fn getxattr( + path: *const c_char, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn lgetxattr( + path: *const c_char, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn fgetxattr( + filedes: ::c_int, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn setxattr( + path: *const c_char, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn lsetxattr( + path: *const c_char, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn fsetxattr( + filedes: ::c_int, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn listxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; + pub fn llistxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; + pub fn flistxattr(filedes: ::c_int, list: *mut c_char, size: ::size_t) -> ::ssize_t; + pub fn removexattr(path: *const c_char, name: *const c_char) -> ::c_int; + pub fn lremovexattr(path: *const c_char, name: *const c_char) -> ::c_int; + pub fn fremovexattr(filedes: ::c_int, name: *const c_char) -> ::c_int; + pub fn signalfd(fd: ::c_int, mask: *const ::sigset_t, flags: ::c_int) -> ::c_int; + pub fn timerfd_create(clock: ::clockid_t, flags: ::c_int) -> ::c_int; + pub fn timerfd_gettime(fd: ::c_int, current_value: *mut itimerspec) -> ::c_int; + pub fn timerfd_settime( + fd: ::c_int, + flags: ::c_int, + new_value: *const itimerspec, + old_value: *mut itimerspec, + ) -> ::c_int; + pub fn syscall(num: ::c_long, ...) -> ::c_long; + pub fn sched_getaffinity(pid: ::pid_t, cpusetsize: ::size_t, cpuset: *mut cpu_set_t) + -> ::c_int; + pub fn sched_setaffinity( + pid: ::pid_t, + cpusetsize: ::size_t, + cpuset: *const cpu_set_t, + ) -> ::c_int; + pub fn epoll_create(size: ::c_int) -> ::c_int; + pub fn epoll_create1(flags: ::c_int) -> ::c_int; + pub fn epoll_wait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + ) -> ::c_int; + pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) + -> ::c_int; + pub fn pthread_getschedparam( + native: ::pthread_t, + policy: *mut ::c_int, + param: *mut ::sched_param, + ) -> ::c_int; + pub fn unshare(flags: ::c_int) -> ::c_int; + pub fn umount(target: *const ::c_char) -> ::c_int; + pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; + pub fn tee(fd_in: ::c_int, fd_out: ::c_int, len: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + pub fn splice( + fd_in: ::c_int, + off_in: *mut ::loff_t, + fd_out: ::c_int, + off_out: *mut ::loff_t, + len: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; + pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + pub fn setns(fd: ::c_int, nstype: ::c_int) -> ::c_int; + pub fn swapoff(puath: *const ::c_char) -> ::c_int; + pub fn vmsplice( + fd: ::c_int, + iov: *const ::iovec, + nr_segs: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn mount( + src: *const ::c_char, + target: *const ::c_char, + fstype: *const ::c_char, + flags: ::c_ulong, + data: *const ::c_void, + ) -> ::c_int; + pub fn personality(persona: ::c_uint) -> ::c_int; + pub fn prctl(option: ::c_int, ...) -> ::c_int; + pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; + pub fn ppoll( + fds: *mut ::pollfd, + nfds: nfds_t, + timeout: *const ::timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_getpshared( + attr: *const ::pthread_barrierattr_t, + shared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_barrierattr_setpshared( + attr: *mut ::pthread_barrierattr_t, + shared: ::c_int, + ) -> ::c_int; + pub fn pthread_barrier_init( + barrier: *mut pthread_barrier_t, + attr: *const ::pthread_barrierattr_t, + count: ::c_uint, + ) -> ::c_int; + pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; + pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; + pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn clone( + cb: extern "C" fn(*mut ::c_void) -> ::c_int, + child_stack: *mut ::c_void, + flags: ::c_int, + arg: *mut ::c_void, + ... + ) -> ::c_int; + pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; + pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; + pub fn pthread_condattr_getpshared( + attr: *const pthread_condattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn sysinfo(info: *mut ::sysinfo) -> ::c_int; + pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; + pub fn pthread_setschedparam( + native: ::pthread_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn sendfile( + out_fd: ::c_int, + in_fd: ::c_int, + offset: *mut off_t, + count: ::size_t, + ) -> ::ssize_t; + pub fn setfsgid(gid: ::gid_t) -> ::c_int; + pub fn setfsuid(uid: ::uid_t) -> ::c_int; + pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; + pub fn sem_close(sem: *mut sem_t) -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; + pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; + pub fn sem_unlink(name: *const ::c_char) -> ::c_int; + pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + pub fn getgrouplist( + user: *const ::c_char, + group: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; + pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; + pub fn pthread_mutexattr_getpshared( + attr: *const pthread_mutexattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn faccessat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + pub fn __errno() -> *mut ::c_int; + pub fn inotify_rm_watch(fd: ::c_int, wd: u32) -> ::c_int; + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *const ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn inotify_init() -> ::c_int; + pub fn inotify_init1(flags: ::c_int) -> ::c_int; + pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int; + + pub fn regcomp(preg: *mut ::regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; + + pub fn regexec( + preg: *const ::regex_t, + input: *const ::c_char, + nmatch: ::size_t, + pmatch: *mut regmatch_t, + eflags: ::c_int, + ) -> ::c_int; + + pub fn regerror( + errcode: ::c_int, + preg: *const ::regex_t, + errbuf: *mut ::c_char, + errbuf_size: ::size_t, + ) -> ::size_t; + + pub fn regfree(preg: *mut ::regex_t); + + pub fn android_set_abort_message(msg: *const ::c_char); + + pub fn gettid() -> ::pid_t; + + pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + + pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int; + + pub fn __system_property_set(__name: *const ::c_char, __value: *const ::c_char) -> ::c_int; + pub fn __system_property_get(__name: *const ::c_char, __value: *mut ::c_char) -> ::c_int; + pub fn __system_property_find(__name: *const ::c_char) -> *const prop_info; + pub fn __system_property_find_nth(__n: ::c_uint) -> *const prop_info; + pub fn __system_property_foreach( + __callback: unsafe extern "C" fn(__pi: *const prop_info, __cookie: *mut ::c_void), + __cookie: *mut ::c_void, + ) -> ::c_int; + + // #include + /// Only available in API Version 21+ + pub fn dl_iterate_phdr( + callback: ::Option< + unsafe extern "C" fn( + info: *mut dl_phdr_info, + size: usize, + data: *mut ::c_void, + ) -> ::c_int, + >, + data: *mut ::c_void, + ) -> ::c_int; + + pub fn arc4random() -> u32; + pub fn arc4random_uniform(__upper_bound: u32) -> u32; + pub fn arc4random_buf(__buf: *mut ::c_void, __n: ::size_t); + + pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; + + pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; + + pub fn dirname(path: *const ::c_char) -> *mut ::c_char; + pub fn basename(path: *const ::c_char) -> *mut ::c_char; + pub fn getopt_long( + argc: ::c_int, + argv: *const *mut c_char, + optstring: *const c_char, + longopts: *const option, + longindex: *mut ::c_int, + ) -> ::c_int; + + pub fn sync(); + pub fn syncfs(fd: ::c_int) -> ::c_int; + + pub fn memmem( + haystack: *const ::c_void, + haystacklen: ::size_t, + needle: *const ::c_void, + needlelen: ::size_t, + ) -> *mut ::c_void; +} + +cfg_if! { + if #[cfg(target_pointer_width = "32")] { + mod b32; + pub use self::b32::*; + } else if #[cfg(target_pointer_width = "64")] { + mod b64; + pub use self::b64::*; + } else { + // Unknown target_pointer_width + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + #[repr(C)] + struct siginfo_sigfault { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + si_addr: *mut ::c_void, + } + (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + _si_tid: ::c_int, + _si_overrun: ::c_int, + si_sigval: ::sigval, + } + (*(self as *const siginfo_t as *const siginfo_timer)).si_sigval + } +} + +cfg_if! { + if #[cfg(libc_union)] { + // Internal, for casts to access union fields + #[repr(C)] + struct sifields_sigchld { + si_pid: ::pid_t, + si_uid: ::uid_t, + si_status: ::c_int, + si_utime: ::c_long, + si_stime: ::c_long, + } + impl ::Copy for sifields_sigchld {} + impl ::Clone for sifields_sigchld { + fn clone(&self) -> sifields_sigchld { + *self + } + } + + // Internal, for casts to access union fields + #[repr(C)] + union sifields { + _align_pointer: *mut ::c_void, + sigchld: sifields_sigchld, + } + + // Internal, for casts to access union fields. Note that some variants + // of sifields start with a pointer, which makes the alignment of + // sifields vary on 32-bit and 64-bit architectures. + #[repr(C)] + struct siginfo_f { + _siginfo_base: [::c_int; 3], + sifields: sifields, + } + + impl siginfo_t { + unsafe fn sifields(&self) -> &sifields { + &(*(self as *const siginfo_t as *const siginfo_f)).sifields + } + + pub unsafe fn si_pid(&self) -> ::pid_t { + self.sifields().sigchld.si_pid + } + + pub unsafe fn si_uid(&self) -> ::uid_t { + self.sifields().sigchld.si_uid + } + + pub unsafe fn si_status(&self) -> ::c_int { + self.sifields().sigchld.si_status + } + + pub unsafe fn si_utime(&self) -> ::c_long { + self.sifields().sigchld.si_utime + } + + pub unsafe fn si_stime(&self) -> ::c_long { + self.sifields().sigchld.si_stime + } + } + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/align.rs new file mode 100644 index 000000000..b9ea3f39e --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/align.rs @@ -0,0 +1,74 @@ +macro_rules! expand_align { + () => { + s! { + #[allow(missing_debug_implementations)] + #[repr(align(4))] + pub struct pthread_mutex_t { + size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + } + + #[repr(align(4))] + pub struct pthread_rwlock_t { + size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + } + + #[repr(align(4))] + pub struct pthread_mutexattr_t { + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + #[repr(align(4))] + pub struct pthread_rwlockattr_t { + size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], + } + + #[repr(align(4))] + pub struct pthread_condattr_t { + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } + } + + s_no_extra_traits! { + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + pub struct pthread_cond_t { + size: [u8; ::__SIZEOF_PTHREAD_COND_T], + } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } + + } + + cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for pthread_cond_t { + fn eq(&self, other: &pthread_cond_t) -> bool { + self.size + .iter() + .zip(other.size.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_cond_t {} + impl ::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_cond_t") + // FIXME: .field("size", &self.size) + .finish() + } + } + impl ::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { + self.size.hash(state); + } + } + } + } + }; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/mod.rs new file mode 100644 index 000000000..5b947b634 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/mod.rs @@ -0,0 +1,1898 @@ +pub type c_char = i8; +pub type wchar_t = i32; +pub type useconds_t = u32; +pub type dev_t = u32; +pub type socklen_t = u32; +pub type pthread_t = c_ulong; +pub type mode_t = u32; +pub type ino64_t = u64; +pub type off64_t = i64; +pub type blkcnt64_t = i32; +pub type rlim64_t = u64; +pub type shmatt_t = ::c_ulong; +pub type mqd_t = ::c_int; +pub type msgqnum_t = ::c_ulong; +pub type msglen_t = ::c_ulong; +pub type nfds_t = ::c_ulong; +pub type nl_item = ::c_int; +pub type idtype_t = ::c_uint; +pub type loff_t = i64; +pub type pthread_key_t = ::c_uint; + +pub type clock_t = c_long; +pub type time_t = c_long; +pub type suseconds_t = c_long; +pub type ino_t = u64; +pub type off_t = i64; +pub type blkcnt_t = i32; + +pub type blksize_t = c_long; +pub type fsblkcnt_t = u32; +pub type fsfilcnt_t = u32; +pub type rlim_t = ::c_ulonglong; +pub type c_long = i32; +pub type c_ulong = u32; +pub type nlink_t = u32; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum fpos64_t {} // FIXME: fill this out with a struct +impl ::Copy for fpos64_t {} +impl ::Clone for fpos64_t { + fn clone(&self) -> fpos64_t { + *self + } +} + +s! { + pub struct rlimit64 { + pub rlim_cur: rlim64_t, + pub rlim_max: rlim64_t, + } + + pub struct glob_t { + pub gl_pathc: ::size_t, + pub gl_pathv: *mut *mut c_char, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + + __unused1: *mut ::c_void, + __unused2: *mut ::c_void, + __unused3: *mut ::c_void, + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + } + + pub struct passwd { + pub pw_name: *mut ::c_char, + pub pw_passwd: *mut ::c_char, + pub pw_uid: ::uid_t, + pub pw_gid: ::gid_t, + pub pw_gecos: *mut ::c_char, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char, + } + + pub struct spwd { + pub sp_namp: *mut ::c_char, + pub sp_pwdp: *mut ::c_char, + pub sp_lstchg: ::c_long, + pub sp_min: ::c_long, + pub sp_max: ::c_long, + pub sp_warn: ::c_long, + pub sp_inact: ::c_long, + pub sp_expire: ::c_long, + pub sp_flag: ::c_ulong, + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct dqblk { + pub dqb_bhardlimit: u64, + pub dqb_bsoftlimit: u64, + pub dqb_curspace: u64, + pub dqb_ihardlimit: u64, + pub dqb_isoftlimit: u64, + pub dqb_curinodes: u64, + pub dqb_btime: u64, + pub dqb_itime: u64, + pub dqb_valid: u32, + } + + pub struct signalfd_siginfo { + pub ssi_signo: u32, + pub ssi_errno: i32, + pub ssi_code: i32, + pub ssi_pid: u32, + pub ssi_uid: u32, + pub ssi_fd: i32, + pub ssi_tid: u32, + pub ssi_band: u32, + pub ssi_overrun: u32, + pub ssi_trapno: u32, + pub ssi_status: i32, + pub ssi_int: i32, + pub ssi_ptr: u64, + pub ssi_utime: u64, + pub ssi_stime: u64, + pub ssi_addr: u64, + pub ssi_addr_lsb: u16, + _pad2: u16, + pub ssi_syscall: i32, + pub ssi_call_addr: u64, + pub ssi_arch: u32, + _pad: [u8; 28], + } + + pub struct fsid_t { + __val: [::c_int; 2], + } + + pub struct cpu_set_t { + bits: [u32; 32], + } + + pub struct if_nameindex { + pub if_index: ::c_uint, + pub if_name: *mut ::c_char, + } + + // System V IPC + pub struct msginfo { + pub msgpool: ::c_int, + pub msgmap: ::c_int, + pub msgmax: ::c_int, + pub msgmnb: ::c_int, + pub msgmni: ::c_int, + pub msgssz: ::c_int, + pub msgtql: ::c_int, + pub msgseg: ::c_ushort, + } + + pub struct sembuf { + pub sem_num: ::c_ushort, + pub sem_op: ::c_short, + pub sem_flg: ::c_short, + } + + pub struct aiocb { + pub aio_fildes: ::c_int, + pub aio_lio_opcode: ::c_int, + pub aio_reqprio: ::c_int, + pub aio_buf: *mut ::c_void, + pub aio_nbytes: ::size_t, + pub aio_sigevent: ::sigevent, + __td: *mut ::c_void, + __lock: [::c_int; 2], + __err: ::c_int, + __ret: ::ssize_t, + pub aio_offset: off_t, + __next: *mut ::c_void, + __prev: *mut ::c_void, + __dummy4: [::c_char; 24], + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_int, + __unused1: ::c_long, + __unused2: ::c_long + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; ::NCCS], + pub __c_ispeed: ::speed_t, + pub __c_ospeed: ::speed_t, + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct pthread_attr_t { + __size: [u32; 11] + } + + pub struct sigset_t { + __val: [::c_ulong; 32], + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::socklen_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: ::socklen_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct sem_t { + __val: [::c_int; 4], + } + pub struct stat { + pub st_dev: ::dev_t, + __st_dev_padding: ::c_int, + __st_ino_truncated: ::c_long, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __st_rdev_padding: ::c_int, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_ino: ::ino_t, + } + + pub struct stat64 { + pub st_dev: ::dev_t, + __st_dev_padding: ::c_int, + __st_ino_truncated: ::c_long, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __st_rdev_padding: ::c_int, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_ino: ::ino_t, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + __unused1: ::c_int, + pub shm_dtime: ::time_t, + __unused2: ::c_int, + pub shm_ctime: ::time_t, + __unused3: ::c_int, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::c_ulong, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + __unused1: ::c_int, + pub msg_rtime: ::time_t, + __unused2: ::c_int, + pub msg_ctime: ::time_t, + __unused3: ::c_int, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u32, + pub f_bfree: u32, + pub f_bavail: u32, + pub f_files: u32, + pub f_ffree: u32, + pub f_favail: u32, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct arpd_request { + pub req: ::c_ushort, + pub ip: u32, + pub dev: ::c_ulong, + pub stamp: ::c_ulong, + pub updated: ::c_ulong, + pub ha: [::c_uchar; ::MAX_ADDR_LEN], + } +} + +s_no_extra_traits! { + pub struct dirent { + pub d_ino: ::ino_t, + pub d_off: ::off_t, + pub d_reclen: ::c_ushort, + pub d_type: ::c_uchar, + pub d_name: [::c_char; 256], + } + + pub struct dirent64 { + pub d_ino: ::ino64_t, + pub d_off: ::off64_t, + pub d_reclen: ::c_ushort, + pub d_type: ::c_uchar, + pub d_name: [::c_char; 256], + } + + pub struct sysinfo { + pub uptime: ::c_ulong, + pub loads: [::c_ulong; 3], + pub totalram: ::c_ulong, + pub freeram: ::c_ulong, + pub sharedram: ::c_ulong, + pub bufferram: ::c_ulong, + pub totalswap: ::c_ulong, + pub freeswap: ::c_ulong, + pub procs: ::c_ushort, + pub pad: ::c_ushort, + pub totalhigh: ::c_ulong, + pub freehigh: ::c_ulong, + pub mem_unit: ::c_uint, + pub __reserved: [::c_char; 256], + } + + pub struct mq_attr { + pub mq_flags: ::c_long, + pub mq_maxmsg: ::c_long, + pub mq_msgsize: ::c_long, + pub mq_curmsgs: ::c_long, + pad: [::c_long; 4] + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_ino == other.d_ino + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for dirent {} + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_ino", &self.d_ino) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_ino.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for dirent64 { + fn eq(&self, other: &dirent64) -> bool { + self.d_ino == other.d_ino + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for dirent64 {} + impl ::fmt::Debug for dirent64 { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent64") + .field("d_ino", &self.d_ino) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + impl ::hash::Hash for dirent64 { + fn hash(&self, state: &mut H) { + self.d_ino.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for sysinfo { + fn eq(&self, other: &sysinfo) -> bool { + self.uptime == other.uptime + && self.loads == other.loads + && self.totalram == other.totalram + && self.freeram == other.freeram + && self.sharedram == other.sharedram + && self.bufferram == other.bufferram + && self.totalswap == other.totalswap + && self.freeswap == other.freeswap + && self.procs == other.procs + && self.pad == other.pad + && self.totalhigh == other.totalhigh + && self.freehigh == other.freehigh + && self.mem_unit == other.mem_unit + && self + .__reserved + .iter() + .zip(other.__reserved.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for sysinfo {} + impl ::fmt::Debug for sysinfo { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sysinfo") + .field("uptime", &self.uptime) + .field("loads", &self.loads) + .field("totalram", &self.totalram) + .field("freeram", &self.freeram) + .field("sharedram", &self.sharedram) + .field("bufferram", &self.bufferram) + .field("totalswap", &self.totalswap) + .field("freeswap", &self.freeswap) + .field("procs", &self.procs) + .field("pad", &self.pad) + .field("totalhigh", &self.totalhigh) + .field("freehigh", &self.freehigh) + .field("mem_unit", &self.mem_unit) + // FIXME: .field("__reserved", &self.__reserved) + .finish() + } + } + impl ::hash::Hash for sysinfo { + fn hash(&self, state: &mut H) { + self.uptime.hash(state); + self.loads.hash(state); + self.totalram.hash(state); + self.freeram.hash(state); + self.sharedram.hash(state); + self.bufferram.hash(state); + self.totalswap.hash(state); + self.freeswap.hash(state); + self.procs.hash(state); + self.pad.hash(state); + self.totalhigh.hash(state); + self.freehigh.hash(state); + self.mem_unit.hash(state); + self.__reserved.hash(state); + } + } + + impl PartialEq for mq_attr { + fn eq(&self, other: &mq_attr) -> bool { + self.mq_flags == other.mq_flags && + self.mq_maxmsg == other.mq_maxmsg && + self.mq_msgsize == other.mq_msgsize && + self.mq_curmsgs == other.mq_curmsgs + } + } + impl Eq for mq_attr {} + impl ::fmt::Debug for mq_attr { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mq_attr") + .field("mq_flags", &self.mq_flags) + .field("mq_maxmsg", &self.mq_maxmsg) + .field("mq_msgsize", &self.mq_msgsize) + .field("mq_curmsgs", &self.mq_curmsgs) + .finish() + } + } + impl ::hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { + self.mq_flags.hash(state); + self.mq_maxmsg.hash(state); + self.mq_msgsize.hash(state); + self.mq_curmsgs.hash(state); + } + } + } +} + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MS_NOUSER: ::c_ulong = 0x80000000; +pub const MS_RMT_MASK: ::c_ulong = 0x02800051; + +pub const ABDAY_1: ::nl_item = 0x20000; +pub const ABDAY_2: ::nl_item = 0x20001; +pub const ABDAY_3: ::nl_item = 0x20002; +pub const ABDAY_4: ::nl_item = 0x20003; +pub const ABDAY_5: ::nl_item = 0x20004; +pub const ABDAY_6: ::nl_item = 0x20005; +pub const ABDAY_7: ::nl_item = 0x20006; + +pub const DAY_1: ::nl_item = 0x20007; +pub const DAY_2: ::nl_item = 0x20008; +pub const DAY_3: ::nl_item = 0x20009; +pub const DAY_4: ::nl_item = 0x2000A; +pub const DAY_5: ::nl_item = 0x2000B; +pub const DAY_6: ::nl_item = 0x2000C; +pub const DAY_7: ::nl_item = 0x2000D; + +pub const ABMON_1: ::nl_item = 0x2000E; +pub const ABMON_2: ::nl_item = 0x2000F; +pub const ABMON_3: ::nl_item = 0x20010; +pub const ABMON_4: ::nl_item = 0x20011; +pub const ABMON_5: ::nl_item = 0x20012; +pub const ABMON_6: ::nl_item = 0x20013; +pub const ABMON_7: ::nl_item = 0x20014; +pub const ABMON_8: ::nl_item = 0x20015; +pub const ABMON_9: ::nl_item = 0x20016; +pub const ABMON_10: ::nl_item = 0x20017; +pub const ABMON_11: ::nl_item = 0x20018; +pub const ABMON_12: ::nl_item = 0x20019; + +pub const MON_1: ::nl_item = 0x2001A; +pub const MON_2: ::nl_item = 0x2001B; +pub const MON_3: ::nl_item = 0x2001C; +pub const MON_4: ::nl_item = 0x2001D; +pub const MON_5: ::nl_item = 0x2001E; +pub const MON_6: ::nl_item = 0x2001F; +pub const MON_7: ::nl_item = 0x20020; +pub const MON_8: ::nl_item = 0x20021; +pub const MON_9: ::nl_item = 0x20022; +pub const MON_10: ::nl_item = 0x20023; +pub const MON_11: ::nl_item = 0x20024; +pub const MON_12: ::nl_item = 0x20025; + +pub const AM_STR: ::nl_item = 0x20026; +pub const PM_STR: ::nl_item = 0x20027; + +pub const D_T_FMT: ::nl_item = 0x20028; +pub const D_FMT: ::nl_item = 0x20029; +pub const T_FMT: ::nl_item = 0x2002A; +pub const T_FMT_AMPM: ::nl_item = 0x2002B; + +pub const ERA: ::nl_item = 0x2002C; +pub const ERA_D_FMT: ::nl_item = 0x2002E; +pub const ALT_DIGITS: ::nl_item = 0x2002F; +pub const ERA_D_T_FMT: ::nl_item = 0x20030; +pub const ERA_T_FMT: ::nl_item = 0x20031; + +pub const CODESET: ::nl_item = 14; + +pub const CRNCYSTR: ::nl_item = 0x4000F; + +pub const RUSAGE_THREAD: ::c_int = 1; +pub const RUSAGE_CHILDREN: ::c_int = -1; + +pub const RADIXCHAR: ::nl_item = 0x10000; +pub const THOUSEP: ::nl_item = 0x10001; + +pub const YESEXPR: ::nl_item = 0x50000; +pub const NOEXPR: ::nl_item = 0x50001; +pub const YESSTR: ::nl_item = 0x50002; +pub const NOSTR: ::nl_item = 0x50003; + +pub const FILENAME_MAX: ::c_uint = 4096; +pub const L_tmpnam: ::c_uint = 20; +pub const _PC_LINK_MAX: ::c_int = 0; +pub const _PC_MAX_CANON: ::c_int = 1; +pub const _PC_MAX_INPUT: ::c_int = 2; +pub const _PC_NAME_MAX: ::c_int = 3; +pub const _PC_PATH_MAX: ::c_int = 4; +pub const _PC_PIPE_BUF: ::c_int = 5; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; +pub const _PC_NO_TRUNC: ::c_int = 7; +pub const _PC_VDISABLE: ::c_int = 8; +pub const _PC_SYNC_IO: ::c_int = 9; +pub const _PC_ASYNC_IO: ::c_int = 10; +pub const _PC_PRIO_IO: ::c_int = 11; +pub const _PC_SOCK_MAXBUF: ::c_int = 12; +pub const _PC_FILESIZEBITS: ::c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; +pub const _PC_REC_XFER_ALIGN: ::c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; +pub const _PC_SYMLINK_MAX: ::c_int = 19; +pub const _PC_2_SYMLINKS: ::c_int = 20; + +pub const _SC_ARG_MAX: ::c_int = 0; +pub const _SC_CHILD_MAX: ::c_int = 1; +pub const _SC_CLK_TCK: ::c_int = 2; +pub const _SC_NGROUPS_MAX: ::c_int = 3; +pub const _SC_OPEN_MAX: ::c_int = 4; +pub const _SC_STREAM_MAX: ::c_int = 5; +pub const _SC_TZNAME_MAX: ::c_int = 6; +pub const _SC_JOB_CONTROL: ::c_int = 7; +pub const _SC_SAVED_IDS: ::c_int = 8; +pub const _SC_REALTIME_SIGNALS: ::c_int = 9; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 10; +pub const _SC_TIMERS: ::c_int = 11; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 12; +pub const _SC_PRIORITIZED_IO: ::c_int = 13; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 14; +pub const _SC_FSYNC: ::c_int = 15; +pub const _SC_MAPPED_FILES: ::c_int = 16; +pub const _SC_MEMLOCK: ::c_int = 17; +pub const _SC_MEMLOCK_RANGE: ::c_int = 18; +pub const _SC_MEMORY_PROTECTION: ::c_int = 19; +pub const _SC_MESSAGE_PASSING: ::c_int = 20; +pub const _SC_SEMAPHORES: ::c_int = 21; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 22; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 23; +pub const _SC_AIO_MAX: ::c_int = 24; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 25; +pub const _SC_DELAYTIMER_MAX: ::c_int = 26; +pub const _SC_MQ_OPEN_MAX: ::c_int = 27; +pub const _SC_MQ_PRIO_MAX: ::c_int = 28; +pub const _SC_VERSION: ::c_int = 29; +pub const _SC_PAGESIZE: ::c_int = 30; +pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; +pub const _SC_RTSIG_MAX: ::c_int = 31; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 32; +pub const _SC_SEM_VALUE_MAX: ::c_int = 33; +pub const _SC_SIGQUEUE_MAX: ::c_int = 34; +pub const _SC_TIMER_MAX: ::c_int = 35; +pub const _SC_BC_BASE_MAX: ::c_int = 36; +pub const _SC_BC_DIM_MAX: ::c_int = 37; +pub const _SC_BC_SCALE_MAX: ::c_int = 38; +pub const _SC_BC_STRING_MAX: ::c_int = 39; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 40; +pub const _SC_EXPR_NEST_MAX: ::c_int = 42; +pub const _SC_LINE_MAX: ::c_int = 43; +pub const _SC_RE_DUP_MAX: ::c_int = 44; +pub const _SC_2_VERSION: ::c_int = 46; +pub const _SC_2_C_BIND: ::c_int = 47; +pub const _SC_2_C_DEV: ::c_int = 48; +pub const _SC_2_FORT_DEV: ::c_int = 49; +pub const _SC_2_FORT_RUN: ::c_int = 50; +pub const _SC_2_SW_DEV: ::c_int = 51; +pub const _SC_2_LOCALEDEF: ::c_int = 52; +pub const _SC_UIO_MAXIOV: ::c_int = 60; +pub const _SC_IOV_MAX: ::c_int = 60; +pub const _SC_THREADS: ::c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 68; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 69; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 70; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; +pub const _SC_TTY_NAME_MAX: ::c_int = 72; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 73; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 74; +pub const _SC_THREAD_STACK_MIN: ::c_int = 75; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 82; +pub const _SC_NPROCESSORS_CONF: ::c_int = 83; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 84; +pub const _SC_PHYS_PAGES: ::c_int = 85; +pub const _SC_AVPHYS_PAGES: ::c_int = 86; +pub const _SC_ATEXIT_MAX: ::c_int = 87; +pub const _SC_PASS_MAX: ::c_int = 88; +pub const _SC_XOPEN_VERSION: ::c_int = 89; +pub const _SC_XOPEN_XCU_VERSION: ::c_int = 90; +pub const _SC_XOPEN_UNIX: ::c_int = 91; +pub const _SC_XOPEN_CRYPT: ::c_int = 92; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 93; +pub const _SC_XOPEN_SHM: ::c_int = 94; +pub const _SC_2_CHAR_TERM: ::c_int = 95; +pub const _SC_2_UPE: ::c_int = 97; +pub const _SC_XOPEN_XPG2: ::c_int = 98; +pub const _SC_XOPEN_XPG3: ::c_int = 99; +pub const _SC_XOPEN_XPG4: ::c_int = 100; +pub const _SC_NZERO: ::c_int = 109; +pub const _SC_XBS5_ILP32_OFF32: ::c_int = 125; +pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 126; +pub const _SC_XBS5_LP64_OFF64: ::c_int = 127; +pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 128; +pub const _SC_XOPEN_LEGACY: ::c_int = 129; +pub const _SC_XOPEN_REALTIME: ::c_int = 130; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 131; +pub const _SC_ADVISORY_INFO: ::c_int = 132; +pub const _SC_BARRIERS: ::c_int = 133; +pub const _SC_CLOCK_SELECTION: ::c_int = 137; +pub const _SC_CPUTIME: ::c_int = 138; +pub const _SC_THREAD_CPUTIME: ::c_int = 139; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 149; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 153; +pub const _SC_SPIN_LOCKS: ::c_int = 154; +pub const _SC_REGEXP: ::c_int = 155; +pub const _SC_SHELL: ::c_int = 157; +pub const _SC_SPAWN: ::c_int = 159; +pub const _SC_SPORADIC_SERVER: ::c_int = 160; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 161; +pub const _SC_TIMEOUTS: ::c_int = 164; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 165; +pub const _SC_2_PBS: ::c_int = 168; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 169; +pub const _SC_2_PBS_LOCATE: ::c_int = 170; +pub const _SC_2_PBS_MESSAGE: ::c_int = 171; +pub const _SC_2_PBS_TRACK: ::c_int = 172; +pub const _SC_SYMLOOP_MAX: ::c_int = 173; +pub const _SC_STREAMS: ::c_int = 174; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 175; +pub const _SC_V6_ILP32_OFF32: ::c_int = 176; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 177; +pub const _SC_V6_LP64_OFF64: ::c_int = 178; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 179; +pub const _SC_HOST_NAME_MAX: ::c_int = 180; +pub const _SC_TRACE: ::c_int = 181; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 182; +pub const _SC_TRACE_INHERIT: ::c_int = 183; +pub const _SC_TRACE_LOG: ::c_int = 184; +pub const _SC_IPV6: ::c_int = 235; +pub const _SC_RAW_SOCKETS: ::c_int = 236; +pub const _SC_V7_ILP32_OFF32: ::c_int = 237; +pub const _SC_V7_ILP32_OFFBIG: ::c_int = 238; +pub const _SC_V7_LP64_OFF64: ::c_int = 239; +pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 240; +pub const _SC_SS_REPL_MAX: ::c_int = 241; +pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 242; +pub const _SC_TRACE_NAME_MAX: ::c_int = 243; +pub const _SC_TRACE_SYS_MAX: ::c_int = 244; +pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 245; +pub const _SC_XOPEN_STREAMS: ::c_int = 246; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248; + +pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY; +pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY; + +pub const GLOB_ERR: ::c_int = 1 << 0; +pub const GLOB_MARK: ::c_int = 1 << 1; +pub const GLOB_NOSORT: ::c_int = 1 << 2; +pub const GLOB_DOOFFS: ::c_int = 1 << 3; +pub const GLOB_NOCHECK: ::c_int = 1 << 4; +pub const GLOB_APPEND: ::c_int = 1 << 5; +pub const GLOB_NOESCAPE: ::c_int = 1 << 6; + +pub const GLOB_NOSPACE: ::c_int = 1; +pub const GLOB_ABORTED: ::c_int = 2; +pub const GLOB_NOMATCH: ::c_int = 3; + +pub const POSIX_MADV_NORMAL: ::c_int = 0; +pub const POSIX_MADV_RANDOM: ::c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_MADV_WILLNEED: ::c_int = 3; + +pub const S_IEXEC: mode_t = 64; +pub const S_IWRITE: mode_t = 128; +pub const S_IREAD: mode_t = 256; + +pub const F_LOCK: ::c_int = 1; +pub const F_TEST: ::c_int = 3; +pub const F_TLOCK: ::c_int = 2; +pub const F_ULOCK: ::c_int = 0; + +pub const ST_RDONLY: ::c_ulong = 1; +pub const ST_NOSUID: ::c_ulong = 2; +pub const ST_NODEV: ::c_ulong = 4; +pub const ST_NOEXEC: ::c_ulong = 8; +pub const ST_SYNCHRONOUS: ::c_ulong = 16; +pub const ST_MANDLOCK: ::c_ulong = 64; +pub const ST_WRITE: ::c_ulong = 128; +pub const ST_APPEND: ::c_ulong = 256; +pub const ST_IMMUTABLE: ::c_ulong = 512; +pub const ST_NOATIME: ::c_ulong = 1024; +pub const ST_NODIRATIME: ::c_ulong = 2048; + +pub const RTLD_NEXT: *mut ::c_void = -1i64 as *mut ::c_void; +pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; +pub const RTLD_NODELETE: ::c_int = 0x1000; +pub const RTLD_NOW: ::c_int = 0x2; + +align_const! { + pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + size: [0; __SIZEOF_PTHREAD_MUTEX_T], + }; + pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + size: [0; __SIZEOF_PTHREAD_COND_T], + }; + pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + size: [0; __SIZEOF_PTHREAD_RWLOCK_T], + }; +} + +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; +pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; +pub const __SIZEOF_PTHREAD_COND_T: usize = 48; + +pub const SCHED_OTHER: ::c_int = 0; +pub const SCHED_FIFO: ::c_int = 1; +pub const SCHED_RR: ::c_int = 2; +pub const SCHED_BATCH: ::c_int = 3; +pub const SCHED_IDLE: ::c_int = 5; + +pub const AF_IB: ::c_int = 27; +pub const AF_MPLS: ::c_int = 28; +pub const AF_NFC: ::c_int = 39; +pub const AF_VSOCK: ::c_int = 40; +pub const PF_IB: ::c_int = AF_IB; +pub const PF_MPLS: ::c_int = AF_MPLS; +pub const PF_NFC: ::c_int = AF_NFC; +pub const PF_VSOCK: ::c_int = AF_VSOCK; + +// System V IPC +pub const IPC_PRIVATE: ::key_t = 0; + +pub const IPC_CREAT: ::c_int = 0o1000; +pub const IPC_EXCL: ::c_int = 0o2000; +pub const IPC_NOWAIT: ::c_int = 0o4000; + +pub const IPC_RMID: ::c_int = 0; +pub const IPC_SET: ::c_int = 1; +pub const IPC_STAT: ::c_int = 2; +pub const IPC_INFO: ::c_int = 3; +pub const MSG_STAT: ::c_int = 11; +pub const MSG_INFO: ::c_int = 12; + +pub const MSG_NOERROR: ::c_int = 0o10000; +pub const MSG_EXCEPT: ::c_int = 0o20000; + +pub const SHM_R: ::c_int = 0o400; +pub const SHM_W: ::c_int = 0o200; + +pub const SHM_RDONLY: ::c_int = 0o10000; +pub const SHM_RND: ::c_int = 0o20000; +pub const SHM_REMAP: ::c_int = 0o40000; +pub const SHM_EXEC: ::c_int = 0o100000; + +pub const SHM_LOCK: ::c_int = 11; +pub const SHM_UNLOCK: ::c_int = 12; + +pub const SHM_HUGETLB: ::c_int = 0o4000; +pub const SHM_NORESERVE: ::c_int = 0o10000; + +pub const QFMT_VFS_OLD: ::c_int = 1; +pub const QFMT_VFS_V0: ::c_int = 2; + +pub const EFD_SEMAPHORE: ::c_int = 0x1; + +pub const LOG_NFACILITIES: ::c_int = 24; + +pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t; + +pub const RB_AUTOBOOT: ::c_int = 0x01234567u32 as i32; +pub const RB_HALT_SYSTEM: ::c_int = 0xcdef0123u32 as i32; +pub const RB_ENABLE_CAD: ::c_int = 0x89abcdefu32 as i32; +pub const RB_DISABLE_CAD: ::c_int = 0x00000000u32 as i32; +pub const RB_POWER_OFF: ::c_int = 0x4321fedcu32 as i32; +pub const RB_SW_SUSPEND: ::c_int = 0xd000fce2u32 as i32; +pub const RB_KEXEC: ::c_int = 0x45584543u32 as i32; + +pub const AI_PASSIVE: ::c_int = 0x0001; +pub const AI_CANONNAME: ::c_int = 0x0002; +pub const AI_NUMERICHOST: ::c_int = 0x0004; +pub const AI_V4MAPPED: ::c_int = 0x0008; +pub const AI_ALL: ::c_int = 0x0010; +pub const AI_ADDRCONFIG: ::c_int = 0x0020; + +pub const AI_NUMERICSERV: ::c_int = 0x0400; + +pub const EAI_BADFLAGS: ::c_int = -1; +pub const EAI_NONAME: ::c_int = -2; +pub const EAI_AGAIN: ::c_int = -3; +pub const EAI_FAIL: ::c_int = -4; +pub const EAI_FAMILY: ::c_int = -6; +pub const EAI_SOCKTYPE: ::c_int = -7; +pub const EAI_SERVICE: ::c_int = -8; +pub const EAI_MEMORY: ::c_int = -10; +pub const EAI_OVERFLOW: ::c_int = -12; + +pub const NI_NUMERICHOST: ::c_int = 1; +pub const NI_NUMERICSERV: ::c_int = 2; +pub const NI_NOFQDN: ::c_int = 4; +pub const NI_NAMEREQD: ::c_int = 8; +pub const NI_DGRAM: ::c_int = 16; + +pub const SYNC_FILE_RANGE_WAIT_BEFORE: ::c_uint = 1; +pub const SYNC_FILE_RANGE_WRITE: ::c_uint = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: ::c_uint = 4; + +pub const EAI_SYSTEM: ::c_int = -11; + +pub const AIO_CANCELED: ::c_int = 0; +pub const AIO_NOTCANCELED: ::c_int = 1; +pub const AIO_ALLDONE: ::c_int = 2; +pub const LIO_READ: ::c_int = 0; +pub const LIO_WRITE: ::c_int = 1; +pub const LIO_NOP: ::c_int = 2; +pub const LIO_WAIT: ::c_int = 0; +pub const LIO_NOWAIT: ::c_int = 1; + +pub const MREMAP_MAYMOVE: ::c_int = 1; +pub const MREMAP_FIXED: ::c_int = 2; + +pub const PR_SET_PDEATHSIG: ::c_int = 1; +pub const PR_GET_PDEATHSIG: ::c_int = 2; + +pub const PR_GET_DUMPABLE: ::c_int = 3; +pub const PR_SET_DUMPABLE: ::c_int = 4; + +pub const PR_GET_UNALIGN: ::c_int = 5; +pub const PR_SET_UNALIGN: ::c_int = 6; +pub const PR_UNALIGN_NOPRINT: ::c_int = 1; +pub const PR_UNALIGN_SIGBUS: ::c_int = 2; + +pub const PR_GET_KEEPCAPS: ::c_int = 7; +pub const PR_SET_KEEPCAPS: ::c_int = 8; + +pub const PR_GET_FPEMU: ::c_int = 9; +pub const PR_SET_FPEMU: ::c_int = 10; +pub const PR_FPEMU_NOPRINT: ::c_int = 1; +pub const PR_FPEMU_SIGFPE: ::c_int = 2; + +pub const PR_GET_FPEXC: ::c_int = 11; +pub const PR_SET_FPEXC: ::c_int = 12; +pub const PR_FP_EXC_SW_ENABLE: ::c_int = 0x80; +pub const PR_FP_EXC_DIV: ::c_int = 0x010000; +pub const PR_FP_EXC_OVF: ::c_int = 0x020000; +pub const PR_FP_EXC_UND: ::c_int = 0x040000; +pub const PR_FP_EXC_RES: ::c_int = 0x080000; +pub const PR_FP_EXC_INV: ::c_int = 0x100000; +pub const PR_FP_EXC_DISABLED: ::c_int = 0; +pub const PR_FP_EXC_NONRECOV: ::c_int = 1; +pub const PR_FP_EXC_ASYNC: ::c_int = 2; +pub const PR_FP_EXC_PRECISE: ::c_int = 3; + +pub const PR_GET_TIMING: ::c_int = 13; +pub const PR_SET_TIMING: ::c_int = 14; +pub const PR_TIMING_STATISTICAL: ::c_int = 0; +pub const PR_TIMING_TIMESTAMP: ::c_int = 1; + +pub const PR_SET_NAME: ::c_int = 15; +pub const PR_GET_NAME: ::c_int = 16; + +pub const PR_GET_ENDIAN: ::c_int = 19; +pub const PR_SET_ENDIAN: ::c_int = 20; +pub const PR_ENDIAN_BIG: ::c_int = 0; +pub const PR_ENDIAN_LITTLE: ::c_int = 1; +pub const PR_ENDIAN_PPC_LITTLE: ::c_int = 2; + +pub const PR_GET_SECCOMP: ::c_int = 21; +pub const PR_SET_SECCOMP: ::c_int = 22; + +pub const PR_CAPBSET_READ: ::c_int = 23; +pub const PR_CAPBSET_DROP: ::c_int = 24; + +pub const PR_GET_TSC: ::c_int = 25; +pub const PR_SET_TSC: ::c_int = 26; +pub const PR_TSC_ENABLE: ::c_int = 1; +pub const PR_TSC_SIGSEGV: ::c_int = 2; + +pub const PR_GET_SECUREBITS: ::c_int = 27; +pub const PR_SET_SECUREBITS: ::c_int = 28; + +pub const PR_SET_TIMERSLACK: ::c_int = 29; +pub const PR_GET_TIMERSLACK: ::c_int = 30; + +pub const PR_TASK_PERF_EVENTS_DISABLE: ::c_int = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: ::c_int = 32; + +pub const PR_MCE_KILL: ::c_int = 33; +pub const PR_MCE_KILL_CLEAR: ::c_int = 0; +pub const PR_MCE_KILL_SET: ::c_int = 1; + +pub const PR_MCE_KILL_LATE: ::c_int = 0; +pub const PR_MCE_KILL_EARLY: ::c_int = 1; +pub const PR_MCE_KILL_DEFAULT: ::c_int = 2; + +pub const PR_MCE_KILL_GET: ::c_int = 34; + +pub const PR_SET_MM: ::c_int = 35; +pub const PR_SET_MM_START_CODE: ::c_int = 1; +pub const PR_SET_MM_END_CODE: ::c_int = 2; +pub const PR_SET_MM_START_DATA: ::c_int = 3; +pub const PR_SET_MM_END_DATA: ::c_int = 4; +pub const PR_SET_MM_START_STACK: ::c_int = 5; +pub const PR_SET_MM_START_BRK: ::c_int = 6; +pub const PR_SET_MM_BRK: ::c_int = 7; +pub const PR_SET_MM_ARG_START: ::c_int = 8; +pub const PR_SET_MM_ARG_END: ::c_int = 9; +pub const PR_SET_MM_ENV_START: ::c_int = 10; +pub const PR_SET_MM_ENV_END: ::c_int = 11; +pub const PR_SET_MM_AUXV: ::c_int = 12; +pub const PR_SET_MM_EXE_FILE: ::c_int = 13; +pub const PR_SET_MM_MAP: ::c_int = 14; +pub const PR_SET_MM_MAP_SIZE: ::c_int = 15; + +pub const PR_SET_PTRACER: ::c_int = 0x59616d61; +pub const PR_SET_PTRACER_ANY: ::c_ulong = 0xffffffffffffffff; + +pub const PR_SET_CHILD_SUBREAPER: ::c_int = 36; +pub const PR_GET_CHILD_SUBREAPER: ::c_int = 37; + +pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38; +pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39; + +pub const PR_GET_TID_ADDRESS: ::c_int = 40; + +pub const PR_SET_THP_DISABLE: ::c_int = 41; +pub const PR_GET_THP_DISABLE: ::c_int = 42; + +pub const PR_MPX_ENABLE_MANAGEMENT: ::c_int = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: ::c_int = 44; + +pub const PR_SET_FP_MODE: ::c_int = 45; +pub const PR_GET_FP_MODE: ::c_int = 46; +pub const PR_FP_MODE_FR: ::c_int = 1 << 0; +pub const PR_FP_MODE_FRE: ::c_int = 1 << 1; + +pub const PR_CAP_AMBIENT: ::c_int = 47; +pub const PR_CAP_AMBIENT_IS_SET: ::c_int = 1; +pub const PR_CAP_AMBIENT_RAISE: ::c_int = 2; +pub const PR_CAP_AMBIENT_LOWER: ::c_int = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: ::c_int = 4; + +pub const ITIMER_REAL: ::c_int = 0; +pub const ITIMER_VIRTUAL: ::c_int = 1; +pub const ITIMER_PROF: ::c_int = 2; + +pub const _POSIX_VDISABLE: ::cc_t = 0; + +pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01; +pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02; + +// On Linux, libc doesn't define this constant, libattr does instead. +// We still define it for Linux as it's defined by libc on other platforms, +// and it's mentioned in the man pages for getxattr and setxattr. +pub const SFD_CLOEXEC: ::c_int = 0x080000; + +pub const NCCS: usize = 32; + +pub const O_TRUNC: ::c_int = 512; +pub const O_NOATIME: ::c_int = 0o1000000; +pub const O_CLOEXEC: ::c_int = 0x80000; + +// Defined as wasi value. +pub const EPERM: ::c_int = 63; +pub const ENOENT: ::c_int = 44; +pub const ESRCH: ::c_int = 71; +pub const EINTR: ::c_int = 27; +pub const EIO: ::c_int = 29; +pub const ENXIO: ::c_int = 60; +pub const E2BIG: ::c_int = 1; +pub const ENOEXEC: ::c_int = 45; +pub const EBADF: ::c_int = 8; +pub const ECHILD: ::c_int = 12; +pub const EAGAIN: ::c_int = 6; +pub const ENOMEM: ::c_int = 48; +pub const EACCES: ::c_int = 2; +pub const EFAULT: ::c_int = 21; +pub const ENOTBLK: ::c_int = 105; +pub const EBUSY: ::c_int = 10; +pub const EEXIST: ::c_int = 20; +pub const EXDEV: ::c_int = 75; +pub const ENODEV: ::c_int = 43; +pub const ENOTDIR: ::c_int = 54; +pub const EISDIR: ::c_int = 31; +pub const EINVAL: ::c_int = 28; +pub const ENFILE: ::c_int = 41; +pub const EMFILE: ::c_int = 33; +pub const ENOTTY: ::c_int = 59; +pub const ETXTBSY: ::c_int = 74; +pub const EFBIG: ::c_int = 22; +pub const ENOSPC: ::c_int = 51; +pub const ESPIPE: ::c_int = 70; +pub const EROFS: ::c_int = 69; +pub const EMLINK: ::c_int = 34; +pub const EPIPE: ::c_int = 64; +pub const EDOM: ::c_int = 18; +pub const ERANGE: ::c_int = 68; +pub const EWOULDBLOCK: ::c_int = EAGAIN; +pub const ENOLINK: ::c_int = 47; +pub const EPROTO: ::c_int = 65; +pub const EDEADLK: ::c_int = 16; +pub const EDEADLOCK: ::c_int = EDEADLK; +pub const ENAMETOOLONG: ::c_int = 37; +pub const ENOLCK: ::c_int = 46; +pub const ENOSYS: ::c_int = 52; +pub const ENOTEMPTY: ::c_int = 55; +pub const ELOOP: ::c_int = 32; +pub const ENOMSG: ::c_int = 49; +pub const EIDRM: ::c_int = 24; +pub const EMULTIHOP: ::c_int = 36; +pub const EBADMSG: ::c_int = 9; +pub const EOVERFLOW: ::c_int = 61; +pub const EILSEQ: ::c_int = 25; +pub const ENOTSOCK: ::c_int = 57; +pub const EDESTADDRREQ: ::c_int = 17; +pub const EMSGSIZE: ::c_int = 35; +pub const EPROTOTYPE: ::c_int = 67; +pub const ENOPROTOOPT: ::c_int = 50; +pub const EPROTONOSUPPORT: ::c_int = 66; +pub const EAFNOSUPPORT: ::c_int = 5; +pub const EADDRINUSE: ::c_int = 3; +pub const EADDRNOTAVAIL: ::c_int = 4; +pub const ENETDOWN: ::c_int = 38; +pub const ENETUNREACH: ::c_int = 40; +pub const ENETRESET: ::c_int = 39; +pub const ECONNABORTED: ::c_int = 13; +pub const ECONNRESET: ::c_int = 15; +pub const ENOBUFS: ::c_int = 42; +pub const EISCONN: ::c_int = 30; +pub const ENOTCONN: ::c_int = 53; +pub const ETIMEDOUT: ::c_int = 73; +pub const ECONNREFUSED: ::c_int = 14; +pub const EHOSTUNREACH: ::c_int = 23; +pub const EALREADY: ::c_int = 7; +pub const EINPROGRESS: ::c_int = 26; +pub const ESTALE: ::c_int = 72; +pub const EDQUOT: ::c_int = 19; +pub const ECANCELED: ::c_int = 11; +pub const EOWNERDEAD: ::c_int = 62; +pub const ENOTRECOVERABLE: ::c_int = 56; + +pub const ENOSTR: ::c_int = 100; +pub const EBFONT: ::c_int = 101; +pub const EBADSLT: ::c_int = 102; +pub const EBADRQC: ::c_int = 103; +pub const ENOANO: ::c_int = 104; +pub const ECHRNG: ::c_int = 106; +pub const EL3HLT: ::c_int = 107; +pub const EL3RST: ::c_int = 108; +pub const ELNRNG: ::c_int = 109; +pub const EUNATCH: ::c_int = 110; +pub const ENOCSI: ::c_int = 111; +pub const EL2HLT: ::c_int = 112; +pub const EBADE: ::c_int = 113; +pub const EBADR: ::c_int = 114; +pub const EXFULL: ::c_int = 115; +pub const ENODATA: ::c_int = 116; +pub const ETIME: ::c_int = 117; +pub const ENOSR: ::c_int = 118; +pub const ENONET: ::c_int = 119; +pub const ENOPKG: ::c_int = 120; +pub const EREMOTE: ::c_int = 121; +pub const EADV: ::c_int = 122; +pub const ESRMNT: ::c_int = 123; +pub const ECOMM: ::c_int = 124; +pub const EDOTDOT: ::c_int = 125; +pub const ENOTUNIQ: ::c_int = 126; +pub const EBADFD: ::c_int = 127; +pub const EREMCHG: ::c_int = 128; +pub const ELIBACC: ::c_int = 129; +pub const ELIBBAD: ::c_int = 130; +pub const ELIBSCN: ::c_int = 131; +pub const ELIBMAX: ::c_int = 132; +pub const ELIBEXEC: ::c_int = 133; +pub const ERESTART: ::c_int = 134; +pub const ESTRPIPE: ::c_int = 135; +pub const EUSERS: ::c_int = 136; +pub const ESOCKTNOSUPPORT: ::c_int = 137; +pub const EOPNOTSUPP: ::c_int = 138; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 139; +pub const ESHUTDOWN: ::c_int = 140; +pub const ETOOMANYREFS: ::c_int = 141; +pub const EHOSTDOWN: ::c_int = 142; +pub const EUCLEAN: ::c_int = 143; +pub const ENOTNAM: ::c_int = 144; +pub const ENAVAIL: ::c_int = 145; +pub const EISNAM: ::c_int = 146; +pub const EREMOTEIO: ::c_int = 147; +pub const ENOMEDIUM: ::c_int = 148; +pub const EMEDIUMTYPE: ::c_int = 149; +pub const ENOKEY: ::c_int = 150; +pub const EKEYEXPIRED: ::c_int = 151; +pub const EKEYREVOKED: ::c_int = 152; +pub const EKEYREJECTED: ::c_int = 153; +pub const ERFKILL: ::c_int = 154; +pub const EHWPOISON: ::c_int = 155; +pub const EL2NSYNC: ::c_int = 156; + +pub const SA_NODEFER: ::c_int = 0x40000000; +pub const SA_RESETHAND: ::c_int = 0x80000000; +pub const SA_RESTART: ::c_int = 0x10000000; +pub const SA_NOCLDSTOP: ::c_int = 0x00000001; + +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; + +pub const EFD_CLOEXEC: ::c_int = 0x80000; + +pub const BUFSIZ: ::c_uint = 1024; +pub const TMP_MAX: ::c_uint = 10000; +pub const FOPEN_MAX: ::c_uint = 1000; +pub const O_PATH: ::c_int = 0o10000000; +pub const O_EXEC: ::c_int = 0o10000000; +pub const O_SEARCH: ::c_int = 0o10000000; +pub const O_ACCMODE: ::c_int = 0o10000003; +pub const O_NDELAY: ::c_int = O_NONBLOCK; +pub const NI_MAXHOST: ::socklen_t = 255; +pub const PTHREAD_STACK_MIN: ::size_t = 2048; +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + +pub const POSIX_MADV_DONTNEED: ::c_int = 0; + +pub const RLIM_INFINITY: ::rlim_t = !0; +pub const RLIMIT_NLIMITS: ::c_int = 15; +pub const RLIM_NLIMITS: ::c_int = RLIMIT_NLIMITS; + +pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; + +#[doc(hidden)] +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] +pub const SIGUNUSED: ::c_int = ::SIGSYS; + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; + +pub const CPU_SETSIZE: ::c_int = 128; + +pub const QFMT_VFS_V1: ::c_int = 4; + +pub const PTRACE_TRACEME: ::c_int = 0; +pub const PTRACE_PEEKTEXT: ::c_int = 1; +pub const PTRACE_PEEKDATA: ::c_int = 2; +pub const PTRACE_PEEKUSER: ::c_int = 3; +pub const PTRACE_POKETEXT: ::c_int = 4; +pub const PTRACE_POKEDATA: ::c_int = 5; +pub const PTRACE_POKEUSER: ::c_int = 6; +pub const PTRACE_CONT: ::c_int = 7; +pub const PTRACE_KILL: ::c_int = 8; +pub const PTRACE_SINGLESTEP: ::c_int = 9; +pub const PTRACE_ATTACH: ::c_int = 16; +pub const PTRACE_DETACH: ::c_int = 17; +pub const PTRACE_SYSCALL: ::c_int = 24; +pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; +pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; +pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; +pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; +pub const PTRACE_GETREGSET: ::c_int = 0x4204; +pub const PTRACE_SETREGSET: ::c_int = 0x4205; +pub const PTRACE_SEIZE: ::c_int = 0x4206; +pub const PTRACE_INTERRUPT: ::c_int = 0x4207; +pub const PTRACE_LISTEN: ::c_int = 0x4208; +pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; + +pub const PTRACE_GETFPREGS: ::c_uint = 14; +pub const PTRACE_SETFPREGS: ::c_uint = 15; +pub const PTRACE_GETFPXREGS: ::c_uint = 18; +pub const PTRACE_SETFPXREGS: ::c_uint = 19; +pub const PTRACE_GETREGS: ::c_uint = 12; +pub const PTRACE_SETREGS: ::c_uint = 13; + +pub const EFD_NONBLOCK: ::c_int = ::O_NONBLOCK; + +pub const SFD_NONBLOCK: ::c_int = ::O_NONBLOCK; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const TIOCINQ: ::c_int = ::FIONREAD; + +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; + +pub const CLOCK_SGI_CYCLE: ::clockid_t = 10; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::c_int = 0x00000800; +pub const TAB2: ::c_int = 0x00001000; +pub const TAB3: ::c_int = 0x00001800; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const SO_BINDTODEVICE: ::c_int = 25; +pub const SO_TIMESTAMP: ::c_int = 29; +pub const SO_MARK: ::c_int = 36; +pub const SO_RXQ_OVFL: ::c_int = 40; +pub const SO_PEEK_OFF: ::c_int = 42; +pub const SO_BUSY_POLL: ::c_int = 46; + +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 28; + +pub const O_DIRECT: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_ASYNC: ::c_int = 0x2000; + +pub const FIOCLEX: ::c_int = 0x5451; +pub const FIONBIO: ::c_int = 0x5421; + +pub const RLIMIT_RSS: ::c_int = 5; +pub const RLIMIT_NOFILE: ::c_int = 7; +pub const RLIMIT_AS: ::c_int = 9; +pub const RLIMIT_NPROC: ::c_int = 6; +pub const RLIMIT_MEMLOCK: ::c_int = 8; +pub const RLIMIT_CPU: ::c_int = 0; +pub const RLIMIT_FSIZE: ::c_int = 1; +pub const RLIMIT_DATA: ::c_int = 2; +pub const RLIMIT_STACK: ::c_int = 3; +pub const RLIMIT_CORE: ::c_int = 4; +pub const RLIMIT_LOCKS: ::c_int = 10; +pub const RLIMIT_SIGPENDING: ::c_int = 11; +pub const RLIMIT_MSGQUEUE: ::c_int = 12; +pub const RLIMIT_NICE: ::c_int = 13; +pub const RLIMIT_RTPRIO: ::c_int = 14; + +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; + +pub const SOCK_NONBLOCK: ::c_int = 2048; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_SEQPACKET: ::c_int = 5; + +pub const IPPROTO_MAX: ::c_int = 256; + +pub const SOL_SOCKET: ::c_int = 1; + +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_LINGER: ::c_int = 13; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_RCVLOWAT: ::c_int = 18; +pub const SO_SNDLOWAT: ::c_int = 19; +pub const SO_RCVTIMEO: ::c_int = 20; +pub const SO_SNDTIMEO: ::c_int = 21; +pub const SO_ACCEPTCONN: ::c_int = 30; + +pub const IPV6_RTHDR_LOOSE: ::c_int = 0; +pub const IPV6_RTHDR_STRICT: ::c_int = 1; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const EXTPROC: ::tcflag_t = 0x00010000; + +pub const MAP_HUGETLB: ::c_int = 0x040000; + +pub const F_GETLK: ::c_int = 12; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 13; +pub const F_SETLKW: ::c_int = 14; +pub const F_SETOWN: ::c_int = 8; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const VEOF: usize = 4; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; + +pub const TCGETS: ::c_int = 0x5401; +pub const TCSETS: ::c_int = 0x5402; +pub const TCSETSW: ::c_int = 0x5403; +pub const TCSETSF: ::c_int = 0x5404; +pub const TCGETA: ::c_int = 0x5405; +pub const TCSETA: ::c_int = 0x5406; +pub const TCSETAW: ::c_int = 0x5407; +pub const TCSETAF: ::c_int = 0x5408; +pub const TCSBRK: ::c_int = 0x5409; +pub const TCXONC: ::c_int = 0x540A; +pub const TCFLSH: ::c_int = 0x540B; +pub const TIOCGSOFTCAR: ::c_int = 0x5419; +pub const TIOCSSOFTCAR: ::c_int = 0x541A; +pub const TIOCLINUX: ::c_int = 0x541C; +pub const TIOCGSERIAL: ::c_int = 0x541E; +pub const TIOCEXCL: ::c_int = 0x540C; +pub const TIOCNXCL: ::c_int = 0x540D; +pub const TIOCSCTTY: ::c_int = 0x540E; +pub const TIOCGPGRP: ::c_int = 0x540F; +pub const TIOCSPGRP: ::c_int = 0x5410; +pub const TIOCOUTQ: ::c_int = 0x5411; +pub const TIOCSTI: ::c_int = 0x5412; +pub const TIOCGWINSZ: ::c_int = 0x5413; +pub const TIOCSWINSZ: ::c_int = 0x5414; +pub const TIOCMGET: ::c_int = 0x5415; +pub const TIOCMBIS: ::c_int = 0x5416; +pub const TIOCMBIC: ::c_int = 0x5417; +pub const TIOCMSET: ::c_int = 0x5418; +pub const FIONREAD: ::c_int = 0x541B; +pub const TIOCCONS: ::c_int = 0x541D; + +pub const SYS_gettid: ::c_long = 224; // Valid for arm (32-bit) and x86 (32-bit) + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const TIOCM_LE: ::c_int = 0x001; +pub const TIOCM_DTR: ::c_int = 0x002; +pub const TIOCM_RTS: ::c_int = 0x004; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; +pub const TIOCM_CD: ::c_int = TIOCM_CAR; +pub const TIOCM_RI: ::c_int = TIOCM_RNG; +pub const O_TMPFILE: ::c_int = 0x400000; + +pub const MAX_ADDR_LEN: usize = 7; +pub const ARPD_UPDATE: ::c_ushort = 0x01; +pub const ARPD_LOOKUP: ::c_ushort = 0x02; +pub const ARPD_FLUSH: ::c_ushort = 0x03; +pub const ATF_MAGIC: ::c_int = 0x80; + +pub const PRIO_PROCESS: ::c_int = 0; +pub const PRIO_PGRP: ::c_int = 1; +pub const PRIO_USER: ::c_int = 2; + +pub const SOMAXCONN: ::c_int = 128; + +f! { + pub fn CMSG_NXTHDR(mhdr: *const msghdr, + cmsg: *const cmsghdr) -> *mut cmsghdr { + if ((*cmsg).cmsg_len as usize) < ::mem::size_of::() { + return 0 as *mut cmsghdr; + }; + let next = (cmsg as usize + + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) + as *mut cmsghdr; + let max = (*mhdr).msg_control as usize + + (*mhdr).msg_controllen as usize; + if (next.offset(1)) as usize > max { + 0 as *mut cmsghdr + } else { + next as *mut cmsghdr + } + } + + pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { + for slot in cpuset.bits.iter_mut() { + *slot = 0; + } + } + + pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let size_in_bits + = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.bits[idx] |= 1 << offset; + () + } + + pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let size_in_bits + = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.bits[idx] &= !(1 << offset); + () + } + + pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + 0 != (cpuset.bits[idx] & (1 << offset)) + } + + pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { + set1.bits == set2.bits + } + + pub fn major(dev: ::dev_t) -> ::c_uint { + // see + // https://github.com/emscripten-core/emscripten/blob/ + // main/system/lib/libc/musl/include/sys/sysmacros.h + let mut major = 0; + major |= (dev & 0x00000fff) >> 8; + major |= (dev & 0xfffff000) >> 31 >> 1; + major as ::c_uint + } + + pub fn minor(dev: ::dev_t) -> ::c_uint { + // see + // https://github.com/emscripten-core/emscripten/blob/ + // main/system/lib/libc/musl/include/sys/sysmacros.h + let mut minor = 0; + minor |= (dev & 0x000000ff) >> 0; + minor |= (dev & 0xffffff00) >> 12; + minor as ::c_uint + } +} + +safe_f! { + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + let mut dev = 0; + dev |= (major & 0x00000fff) << 8; + dev |= (major & 0xfffff000) << 31 << 1; + dev |= (minor & 0x000000ff) << 0; + dev |= (minor & 0xffffff00) << 12; + dev + } +} + +extern "C" { + pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; + pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; + pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; + pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + + pub fn abs(i: ::c_int) -> ::c_int; + pub fn labs(i: ::c_long) -> ::c_long; + pub fn rand() -> ::c_int; + pub fn srand(seed: ::c_uint); + + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + + pub fn setpwent(); + pub fn endpwent(); + pub fn getpwent() -> *mut passwd; + + pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; + + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn __errno_location() -> *mut ::c_int; + + pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn freopen64( + filename: *const c_char, + mode: *const c_char, + file: *mut ::FILE, + ) -> *mut ::FILE; + pub fn tmpfile64() -> *mut ::FILE; + pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; + pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; + pub fn fseeko64(stream: *mut ::FILE, offset: ::off64_t, whence: ::c_int) -> ::c_int; + pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; + pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) + -> ::ssize_t; + pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; + pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; + pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; + pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; + pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; + pub fn accept4( + fd: ::c_int, + addr: *mut ::sockaddr, + len: *mut ::socklen_t, + flg: ::c_int, + ) -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; + + pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn if_nameindex() -> *mut if_nameindex; + pub fn if_freenameindex(ptr: *mut if_nameindex); + + pub fn mremap( + addr: *mut ::c_void, + len: ::size_t, + new_len: ::size_t, + flags: ::c_int, + ... + ) -> *mut ::c_void; + + pub fn glob( + pattern: *const c_char, + flags: ::c_int, + errfunc: ::Option ::c_int>, + pglob: *mut ::glob_t, + ) -> ::c_int; + pub fn globfree(pglob: *mut ::glob_t); + + pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + + pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + + pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + + pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + + pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; + pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; + pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + + pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_uint, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_uint, + timeout: *mut ::timespec, + ) -> ::c_int; + pub fn sync(); + pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; + pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; + pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + + pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; +} + +cfg_if! { + if #[cfg(libc_align)] { + #[macro_use] + mod align; + } else { + #[macro_use] + mod no_align; + } +} +expand_align!(); diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/no_align.rs new file mode 100644 index 000000000..768dc73a4 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/no_align.rs @@ -0,0 +1,63 @@ +macro_rules! expand_align { + () => { + s! { + pub struct pthread_mutex_t { + __align: [::c_long; 0], + size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + } + + pub struct pthread_rwlock_t { + __align: [::c_long; 0], + size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + } + + pub struct pthread_mutexattr_t { + __align: [::c_int; 0], + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + pub struct pthread_rwlockattr_t { + __align: [::c_int; 0], + size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], + } + + pub struct pthread_condattr_t { + __align: [::c_int; 0], + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } + } + + s_no_extra_traits! { + pub struct pthread_cond_t { + __align: [*const ::c_void; 0], + size: [u8; ::__SIZEOF_PTHREAD_COND_T], + } + } + + cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for pthread_cond_t { + fn eq(&self, other: &pthread_cond_t) -> bool { + self.size + .iter() + .zip(other.size.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for pthread_cond_t {} + impl ::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_cond_t") + // FIXME: .field("size", &self.size) + .finish() + } + } + impl ::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { + self.size.hash(state); + } + } + } + } + }; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/align.rs new file mode 100644 index 000000000..97f811dac --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/align.rs @@ -0,0 +1,192 @@ +macro_rules! expand_align { + () => { + s! { + #[cfg_attr(any(target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64", + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "loongarch64"), + repr(align(4)))] + #[cfg_attr(not(any(target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64", + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "loongarch64")), + repr(align(8)))] + pub struct pthread_mutexattr_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + #[cfg_attr(any(target_env = "musl", target_env = "ohos", target_pointer_width = "32"), + repr(align(4)))] + #[cfg_attr(all(not(target_env = "musl"), + not(target_env = "ohos"), + target_pointer_width = "64"), + repr(align(8)))] + pub struct pthread_rwlockattr_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], + } + + #[repr(align(4))] + pub struct pthread_condattr_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } + + #[repr(align(4))] + pub struct pthread_barrierattr_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T], + } + + #[repr(align(8))] + pub struct fanotify_event_metadata { + pub event_len: __u32, + pub vers: __u8, + pub reserved: __u8, + pub metadata_len: __u16, + pub mask: __u64, + pub fd: ::c_int, + pub pid: ::c_int, + } + } + + s_no_extra_traits! { + #[cfg_attr(all(any(target_env = "musl", target_env = "ohos"), + target_pointer_width = "32"), + repr(align(4)))] + #[cfg_attr(all(any(target_env = "musl", target_env = "ohos"), + target_pointer_width = "64"), + repr(align(8)))] + #[cfg_attr(all(not(any(target_env = "musl", target_env = "ohos")), + target_arch = "x86"), + repr(align(4)))] + #[cfg_attr(all(not(any(target_env = "musl", target_env = "ohos")), + not(target_arch = "x86")), + repr(align(8)))] + pub struct pthread_cond_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_COND_T], + } + + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "mips", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "mips", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86"))), + repr(align(8)))] + pub struct pthread_mutex_t { + #[doc(hidden)] + size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + } + + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "mips", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "mips", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86"))), + repr(align(8)))] + pub struct pthread_rwlock_t { + size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + } + + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "mips", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "mips", + target_arch = "arm", + target_arch = "hexagon", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "x86_64", + target_arch = "x86"))), + repr(align(8)))] + pub struct pthread_barrier_t { + size: [u8; ::__SIZEOF_PTHREAD_BARRIER_T], + } + + // linux/can.h + #[repr(align(8))] + #[allow(missing_debug_implementations)] + pub struct can_frame { + pub can_id: canid_t, + pub can_dlc: u8, + __pad: u8, + __res0: u8, + __res1: u8, + pub data: [u8; CAN_MAX_DLEN], + } + + #[repr(align(8))] + #[allow(missing_debug_implementations)] + pub struct canfd_frame { + pub can_id: canid_t, + pub len: u8, + pub flags: u8, + __res0: u8, + __res1: u8, + pub data: [u8; CANFD_MAX_DLEN], + } + + #[repr(align(8))] + #[allow(missing_debug_implementations)] + pub struct canxl_frame { + pub prio: canid_t, + pub flags: u8, + pub sdt: u8, + pub len: u16, + pub af: u32, + pub data: [u8; CANXL_MAX_DLEN], + } + } + }; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/generic/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/generic/mod.rs new file mode 100644 index 000000000..7bc94c6f0 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/generic/mod.rs @@ -0,0 +1,292 @@ +s! { + pub struct termios2 { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; 19], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, + } +} + +// include/uapi/asm-generic/socket.h +// arch/alpha/include/uapi/asm/socket.h +// tools/include/uapi/asm-generic/socket.h +// arch/mips/include/uapi/asm/socket.h +pub const SOL_SOCKET: ::c_int = 1; + +// Defined in unix/linux_like/mod.rs +// pub const SO_DEBUG: ::c_int = 1; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_LINGER: ::c_int = 13; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_PASSCRED: ::c_int = 16; +pub const SO_PEERCRED: ::c_int = 17; +pub const SO_RCVLOWAT: ::c_int = 18; +pub const SO_SNDLOWAT: ::c_int = 19; +pub const SO_RCVTIMEO: ::c_int = 20; +pub const SO_SNDTIMEO: ::c_int = 21; +// pub const SO_RCVTIMEO_OLD: ::c_int = 20; +// pub const SO_SNDTIMEO_OLD: ::c_int = 21; +pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; +pub const SO_BINDTODEVICE: ::c_int = 25; +pub const SO_ATTACH_FILTER: ::c_int = 26; +pub const SO_DETACH_FILTER: ::c_int = 27; +pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; +pub const SO_PEERNAME: ::c_int = 28; +pub const SO_TIMESTAMP: ::c_int = 29; +// pub const SO_TIMESTAMP_OLD: ::c_int = 29; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_PEERSEC: ::c_int = 31; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PASSSEC: ::c_int = 34; +pub const SO_TIMESTAMPNS: ::c_int = 35; +// pub const SO_TIMESTAMPNS_OLD: ::c_int = 35; +pub const SO_MARK: ::c_int = 36; +pub const SO_TIMESTAMPING: ::c_int = 37; +// pub const SO_TIMESTAMPING_OLD: ::c_int = 37; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; +pub const SO_RXQ_OVFL: ::c_int = 40; +pub const SO_WIFI_STATUS: ::c_int = 41; +pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; +pub const SO_PEEK_OFF: ::c_int = 42; +pub const SO_NOFCS: ::c_int = 43; +pub const SO_LOCK_FILTER: ::c_int = 44; +pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; +pub const SO_BUSY_POLL: ::c_int = 46; +pub const SO_MAX_PACING_RATE: ::c_int = 47; +pub const SO_BPF_EXTENSIONS: ::c_int = 48; +pub const SO_INCOMING_CPU: ::c_int = 49; +pub const SO_ATTACH_BPF: ::c_int = 50; +pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; +pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 51; +pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 52; +pub const SO_CNX_ADVICE: ::c_int = 53; +pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 54; +pub const SO_MEMINFO: ::c_int = 55; +pub const SO_INCOMING_NAPI_ID: ::c_int = 56; +pub const SO_COOKIE: ::c_int = 57; +pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 58; +pub const SO_PEERGROUPS: ::c_int = 59; +pub const SO_ZEROCOPY: ::c_int = 60; +pub const SO_TXTIME: ::c_int = 61; +pub const SCM_TXTIME: ::c_int = SO_TXTIME; +pub const SO_BINDTOIFINDEX: ::c_int = 62; +cfg_if! { + // Some of these platforms in CI already have these constants. + // But they may still not have those _OLD ones. + if #[cfg(all(any(target_arch = "x86", + target_arch = "x86_64", + target_arch = "aarch64", + target_arch = "loongarch64"), + not(any(target_env = "musl", target_env = "ohos"))))] { + pub const SO_TIMESTAMP_NEW: ::c_int = 63; + pub const SO_TIMESTAMPNS_NEW: ::c_int = 64; + pub const SO_TIMESTAMPING_NEW: ::c_int = 65; + pub const SO_RCVTIMEO_NEW: ::c_int = 66; + pub const SO_SNDTIMEO_NEW: ::c_int = 67; + pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 68; + } +} +// pub const SO_PREFER_BUSY_POLL: ::c_int = 69; +// pub const SO_BUSY_POLL_BUDGET: ::c_int = 70; + +cfg_if! { + if #[cfg(any(target_arch = "x86", + target_arch = "x86_64", + target_arch = "arm", + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "s390x", + target_arch = "loongarch64"))] { + pub const FICLONE: ::c_ulong = 0x40049409; + pub const FICLONERANGE: ::c_ulong = 0x4020940D; + } +} + +// Defined in unix/linux_like/mod.rs +// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; +pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; +pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; + +// Ioctl Constants + +pub const TCGETS: ::Ioctl = 0x5401; +pub const TCSETS: ::Ioctl = 0x5402; +pub const TCSETSW: ::Ioctl = 0x5403; +pub const TCSETSF: ::Ioctl = 0x5404; +pub const TCGETA: ::Ioctl = 0x5405; +pub const TCSETA: ::Ioctl = 0x5406; +pub const TCSETAW: ::Ioctl = 0x5407; +pub const TCSETAF: ::Ioctl = 0x5408; +pub const TCSBRK: ::Ioctl = 0x5409; +pub const TCXONC: ::Ioctl = 0x540A; +pub const TCFLSH: ::Ioctl = 0x540B; +pub const TIOCEXCL: ::Ioctl = 0x540C; +pub const TIOCNXCL: ::Ioctl = 0x540D; +pub const TIOCSCTTY: ::Ioctl = 0x540E; +pub const TIOCGPGRP: ::Ioctl = 0x540F; +pub const TIOCSPGRP: ::Ioctl = 0x5410; +pub const TIOCOUTQ: ::Ioctl = 0x5411; +pub const TIOCSTI: ::Ioctl = 0x5412; +pub const TIOCGWINSZ: ::Ioctl = 0x5413; +pub const TIOCSWINSZ: ::Ioctl = 0x5414; +pub const TIOCMGET: ::Ioctl = 0x5415; +pub const TIOCMBIS: ::Ioctl = 0x5416; +pub const TIOCMBIC: ::Ioctl = 0x5417; +pub const TIOCMSET: ::Ioctl = 0x5418; +pub const TIOCGSOFTCAR: ::Ioctl = 0x5419; +pub const TIOCSSOFTCAR: ::Ioctl = 0x541A; +pub const FIONREAD: ::Ioctl = 0x541B; +pub const TIOCINQ: ::Ioctl = FIONREAD; +pub const TIOCLINUX: ::Ioctl = 0x541C; +pub const TIOCCONS: ::Ioctl = 0x541D; +pub const TIOCGSERIAL: ::Ioctl = 0x541E; +pub const TIOCSSERIAL: ::Ioctl = 0x541F; +pub const TIOCPKT: ::Ioctl = 0x5420; +pub const FIONBIO: ::Ioctl = 0x5421; +pub const TIOCNOTTY: ::Ioctl = 0x5422; +pub const TIOCSETD: ::Ioctl = 0x5423; +pub const TIOCGETD: ::Ioctl = 0x5424; +pub const TCSBRKP: ::Ioctl = 0x5425; +pub const TIOCSBRK: ::Ioctl = 0x5427; +pub const TIOCCBRK: ::Ioctl = 0x5428; +pub const TIOCGSID: ::Ioctl = 0x5429; +pub const TCGETS2: ::Ioctl = 0x802c542a; +pub const TCSETS2: ::Ioctl = 0x402c542b; +pub const TCSETSW2: ::Ioctl = 0x402c542c; +pub const TCSETSF2: ::Ioctl = 0x402c542d; +pub const TIOCGRS485: ::Ioctl = 0x542E; +pub const TIOCSRS485: ::Ioctl = 0x542F; +pub const TIOCGPTN: ::Ioctl = 0x80045430; +pub const TIOCSPTLCK: ::Ioctl = 0x40045431; +pub const TIOCGDEV: ::Ioctl = 0x80045432; +pub const TCGETX: ::Ioctl = 0x5432; +pub const TCSETX: ::Ioctl = 0x5433; +pub const TCSETXF: ::Ioctl = 0x5434; +pub const TCSETXW: ::Ioctl = 0x5435; +pub const TIOCSIG: ::Ioctl = 0x40045436; +pub const TIOCVHANGUP: ::Ioctl = 0x5437; +pub const TIOCGPKT: ::Ioctl = 0x80045438; +pub const TIOCGPTLCK: ::Ioctl = 0x80045439; +pub const TIOCGEXCL: ::Ioctl = 0x80045440; +pub const TIOCGPTPEER: ::Ioctl = 0x5441; +// pub const TIOCGISO7816: ::Ioctl = 0x80285442; +// pub const TIOCSISO7816: ::Ioctl = 0xc0285443; +pub const FIONCLEX: ::Ioctl = 0x5450; +pub const FIOCLEX: ::Ioctl = 0x5451; +pub const FIOASYNC: ::Ioctl = 0x5452; +pub const TIOCSERCONFIG: ::Ioctl = 0x5453; +pub const TIOCSERGWILD: ::Ioctl = 0x5454; +pub const TIOCSERSWILD: ::Ioctl = 0x5455; +pub const TIOCGLCKTRMIOS: ::Ioctl = 0x5456; +pub const TIOCSLCKTRMIOS: ::Ioctl = 0x5457; +pub const TIOCSERGSTRUCT: ::Ioctl = 0x5458; +pub const TIOCSERGETLSR: ::Ioctl = 0x5459; +pub const TIOCSERGETMULTI: ::Ioctl = 0x545A; +pub const TIOCSERSETMULTI: ::Ioctl = 0x545B; +pub const TIOCMIWAIT: ::Ioctl = 0x545C; +pub const TIOCGICOUNT: ::Ioctl = 0x545D; +pub const BLKIOMIN: ::Ioctl = 0x1278; +pub const BLKIOOPT: ::Ioctl = 0x1279; +pub const BLKSSZGET: ::Ioctl = 0x1268; +pub const BLKPBSZGET: ::Ioctl = 0x127B; + +cfg_if! { + if #[cfg(any(target_arch = "arm", + target_arch = "s390x"))] { + pub const FIOQSIZE: ::Ioctl = 0x545E; + } else { + pub const FIOQSIZE: ::Ioctl = 0x5460; + } +} + +pub const TIOCM_LE: ::c_int = 0x001; +pub const TIOCM_DTR: ::c_int = 0x002; +pub const TIOCM_RTS: ::c_int = 0x004; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_CD: ::c_int = TIOCM_CAR; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_RI: ::c_int = TIOCM_RNG; +pub const TIOCM_DSR: ::c_int = 0x100; + +pub const BOTHER: ::speed_t = 0o010000; +pub const IBSHIFT: ::tcflag_t = 16; + +// RLIMIT Constants + +cfg_if! { + if #[cfg(any(target_env = "gnu", + target_env = "uclibc"))] { + + pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; + pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; + pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; + pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; + pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; + pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; + pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; + pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; + pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; + pub const RLIMIT_AS: ::__rlimit_resource_t = 9; + pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; + pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; + pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; + pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; + pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; + pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; + pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; + + } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { + + pub const RLIMIT_CPU: ::c_int = 0; + pub const RLIMIT_FSIZE: ::c_int = 1; + pub const RLIMIT_DATA: ::c_int = 2; + pub const RLIMIT_STACK: ::c_int = 3; + pub const RLIMIT_CORE: ::c_int = 4; + pub const RLIMIT_RSS: ::c_int = 5; + pub const RLIMIT_NPROC: ::c_int = 6; + pub const RLIMIT_NOFILE: ::c_int = 7; + pub const RLIMIT_MEMLOCK: ::c_int = 8; + pub const RLIMIT_AS: ::c_int = 9; + pub const RLIMIT_LOCKS: ::c_int = 10; + pub const RLIMIT_SIGPENDING: ::c_int = 11; + pub const RLIMIT_MSGQUEUE: ::c_int = 12; + pub const RLIMIT_NICE: ::c_int = 13; + pub const RLIMIT_RTPRIO: ::c_int = 14; + pub const RLIMIT_RTTIME: ::c_int = 15; + pub const RLIM_NLIMITS: ::c_int = 15; + pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS; + } +} + +cfg_if! { + if #[cfg(target_env = "gnu")] { + pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; + } + else if #[cfg(target_env = "uclibc")] { + pub const RLIM_NLIMITS: ::__rlimit_resource_t = 15; + } +} + +pub const RLIM_INFINITY: ::rlim_t = !0; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mips/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mips/mod.rs new file mode 100644 index 000000000..34c00a293 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mips/mod.rs @@ -0,0 +1,288 @@ +s! { + pub struct termios2 { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; 23], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, + } +} + +// arch/mips/include/uapi/asm/socket.h +pub const SOL_SOCKET: ::c_int = 0xffff; + +// Defined in unix/linux_like/mod.rs +// pub const SO_DEBUG: ::c_int = 0x0001; +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_OOBINLINE: ::c_int = 0x0100; +pub const SO_REUSEPORT: ::c_int = 0x0200; +pub const SO_TYPE: ::c_int = 0x1008; +// pub const SO_STYLE: ::c_int = SO_TYPE; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_SNDLOWAT: ::c_int = 0x1003; +pub const SO_RCVLOWAT: ::c_int = 0x1004; +// NOTE: These definitions are now being renamed with _OLD postfix, +// but CI haven't support them yet. +// Some related consts could be found in b32.rs and b64.rs +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +// pub const SO_SNDTIMEO_OLD: ::c_int = 0x1005; +// pub const SO_RCVTIMEO_OLD: ::c_int = 0x1006; +pub const SO_ACCEPTCONN: ::c_int = 0x1009; +pub const SO_PROTOCOL: ::c_int = 0x1028; +pub const SO_DOMAIN: ::c_int = 0x1029; + +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_PASSCRED: ::c_int = 17; +pub const SO_PEERCRED: ::c_int = 18; +pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; +pub const SO_BINDTODEVICE: ::c_int = 25; +pub const SO_ATTACH_FILTER: ::c_int = 26; +pub const SO_DETACH_FILTER: ::c_int = 27; +pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; +pub const SO_PEERNAME: ::c_int = 28; +pub const SO_PEERSEC: ::c_int = 30; +pub const SO_SNDBUFFORCE: ::c_int = 31; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PASSSEC: ::c_int = 34; +pub const SO_MARK: ::c_int = 36; +pub const SO_RXQ_OVFL: ::c_int = 40; +pub const SO_WIFI_STATUS: ::c_int = 41; +pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; +pub const SO_PEEK_OFF: ::c_int = 42; +pub const SO_NOFCS: ::c_int = 43; +pub const SO_LOCK_FILTER: ::c_int = 44; +pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; +pub const SO_BUSY_POLL: ::c_int = 46; +pub const SO_MAX_PACING_RATE: ::c_int = 47; +pub const SO_BPF_EXTENSIONS: ::c_int = 48; +pub const SO_INCOMING_CPU: ::c_int = 49; +pub const SO_ATTACH_BPF: ::c_int = 50; +pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; +pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 51; +pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 52; +pub const SO_CNX_ADVICE: ::c_int = 53; +pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 54; +pub const SO_MEMINFO: ::c_int = 55; +pub const SO_INCOMING_NAPI_ID: ::c_int = 56; +pub const SO_COOKIE: ::c_int = 57; +pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 58; +pub const SO_PEERGROUPS: ::c_int = 59; +pub const SO_ZEROCOPY: ::c_int = 60; +pub const SO_TXTIME: ::c_int = 61; +pub const SCM_TXTIME: ::c_int = SO_TXTIME; +pub const SO_BINDTOIFINDEX: ::c_int = 62; +// NOTE: These definitions are now being renamed with _OLD postfix, +// but CI haven't support them yet. +// Some related consts could be found in b32.rs and b64.rs +pub const SO_TIMESTAMP: ::c_int = 29; +pub const SO_TIMESTAMPNS: ::c_int = 35; +pub const SO_TIMESTAMPING: ::c_int = 37; +// pub const SO_TIMESTAMP_OLD: ::c_int = 29; +// pub const SO_TIMESTAMPNS_OLD: ::c_int = 35; +// pub const SO_TIMESTAMPING_OLD: ::c_int = 37; +// pub const SO_TIMESTAMP_NEW: ::c_int = 63; +// pub const SO_TIMESTAMPNS_NEW: ::c_int = 64; +// pub const SO_TIMESTAMPING_NEW: ::c_int = 65; +// pub const SO_RCVTIMEO_NEW: ::c_int = 66; +// pub const SO_SNDTIMEO_NEW: ::c_int = 67; +// pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 68; +// pub const SO_PREFER_BUSY_POLL: ::c_int = 69; +// pub const SO_BUSY_POLL_BUDGET: ::c_int = 70; + +pub const FICLONE: ::c_ulong = 0x80049409; +pub const FICLONERANGE: ::c_ulong = 0x8020940D; + +// Defined in unix/linux_like/mod.rs +// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; +pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; +pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; + +// Ioctl Constants + +pub const TCGETS: ::Ioctl = 0x540d; +pub const TCSETS: ::Ioctl = 0x540e; +pub const TCSETSW: ::Ioctl = 0x540f; +pub const TCSETSF: ::Ioctl = 0x5410; +pub const TCGETA: ::Ioctl = 0x5401; +pub const TCSETA: ::Ioctl = 0x5402; +pub const TCSETAW: ::Ioctl = 0x5403; +pub const TCSETAF: ::Ioctl = 0x5404; +pub const TCSBRK: ::Ioctl = 0x5405; +pub const TCXONC: ::Ioctl = 0x5406; +pub const TCFLSH: ::Ioctl = 0x5407; +pub const TIOCEXCL: ::Ioctl = 0x740d; +pub const TIOCNXCL: ::Ioctl = 0x740e; +pub const TIOCSCTTY: ::Ioctl = 0x5480; +pub const TIOCGPGRP: ::Ioctl = 0x40047477; +pub const TIOCSPGRP: ::Ioctl = 0x80047476; +pub const TIOCOUTQ: ::Ioctl = 0x7472; +pub const TIOCSTI: ::Ioctl = 0x5472; +pub const TIOCGWINSZ: ::Ioctl = 0x40087468; +pub const TIOCSWINSZ: ::Ioctl = 0x80087467; +pub const TIOCMGET: ::Ioctl = 0x741d; +pub const TIOCMBIS: ::Ioctl = 0x741b; +pub const TIOCMBIC: ::Ioctl = 0x741c; +pub const TIOCMSET: ::Ioctl = 0x741a; +pub const TIOCGSOFTCAR: ::Ioctl = 0x5481; +pub const TIOCSSOFTCAR: ::Ioctl = 0x5482; +pub const FIONREAD: ::Ioctl = 0x467f; +pub const TIOCINQ: ::Ioctl = FIONREAD; +pub const TIOCLINUX: ::Ioctl = 0x5483; +pub const TIOCCONS: ::Ioctl = 0x80047478; +pub const TIOCGSERIAL: ::Ioctl = 0x5484; +pub const TIOCSSERIAL: ::Ioctl = 0x5485; +pub const TIOCPKT: ::Ioctl = 0x5470; +pub const FIONBIO: ::Ioctl = 0x667e; +pub const TIOCNOTTY: ::Ioctl = 0x5471; +pub const TIOCSETD: ::Ioctl = 0x7401; +pub const TIOCGETD: ::Ioctl = 0x7400; +pub const TCSBRKP: ::Ioctl = 0x5486; +pub const TIOCSBRK: ::Ioctl = 0x5427; +pub const TIOCCBRK: ::Ioctl = 0x5428; +pub const TIOCGSID: ::Ioctl = 0x7416; +pub const TCGETS2: ::Ioctl = 0x4030542a; +pub const TCSETS2: ::Ioctl = 0x8030542b; +pub const TCSETSW2: ::Ioctl = 0x8030542c; +pub const TCSETSF2: ::Ioctl = 0x8030542d; +pub const TIOCGPTN: ::Ioctl = 0x40045430; +pub const TIOCSPTLCK: ::Ioctl = 0x80045431; +pub const TIOCGDEV: ::Ioctl = 0x40045432; +pub const TIOCSIG: ::Ioctl = 0x80045436; +pub const TIOCVHANGUP: ::Ioctl = 0x5437; +pub const TIOCGPKT: ::Ioctl = 0x40045438; +pub const TIOCGPTLCK: ::Ioctl = 0x40045439; +pub const TIOCGEXCL: ::Ioctl = 0x40045440; +pub const TIOCGPTPEER: ::Ioctl = 0x20005441; +//pub const TIOCGISO7816: ::Ioctl = 0x40285442; +//pub const TIOCSISO7816: ::Ioctl = 0xc0285443; +pub const FIONCLEX: ::Ioctl = 0x6602; +pub const FIOCLEX: ::Ioctl = 0x6601; +pub const FIOASYNC: ::Ioctl = 0x667d; +pub const TIOCSERCONFIG: ::Ioctl = 0x5488; +pub const TIOCSERGWILD: ::Ioctl = 0x5489; +pub const TIOCSERSWILD: ::Ioctl = 0x548a; +pub const TIOCGLCKTRMIOS: ::Ioctl = 0x548b; +pub const TIOCSLCKTRMIOS: ::Ioctl = 0x548c; +pub const TIOCSERGSTRUCT: ::Ioctl = 0x548d; +pub const TIOCSERGETLSR: ::Ioctl = 0x548e; +pub const TIOCSERGETMULTI: ::Ioctl = 0x548f; +pub const TIOCSERSETMULTI: ::Ioctl = 0x5490; +pub const TIOCMIWAIT: ::Ioctl = 0x5491; +pub const TIOCGICOUNT: ::Ioctl = 0x5492; +pub const FIOQSIZE: ::Ioctl = 0x667f; +pub const TIOCSLTC: ::Ioctl = 0x7475; +pub const TIOCGETP: ::Ioctl = 0x7408; +pub const TIOCSETP: ::Ioctl = 0x7409; +pub const TIOCSETN: ::Ioctl = 0x740a; +pub const BLKIOMIN: ::Ioctl = 0x20001278; +pub const BLKIOOPT: ::Ioctl = 0x20001279; +pub const BLKSSZGET: ::Ioctl = 0x20001268; +pub const BLKPBSZGET: ::Ioctl = 0x2000127B; + +cfg_if! { + if #[cfg(target_env = "musl")] { + pub const TIOCGRS485: ::Ioctl = 0x4020542e; + pub const TIOCSRS485: ::Ioctl = 0xc020542f; + } +} + +pub const TIOCM_LE: ::c_int = 0x001; +pub const TIOCM_DTR: ::c_int = 0x002; +pub const TIOCM_RTS: ::c_int = 0x004; +pub const TIOCM_ST: ::c_int = 0x010; +pub const TIOCM_SR: ::c_int = 0x020; +pub const TIOCM_CTS: ::c_int = 0x040; +pub const TIOCM_CAR: ::c_int = 0x100; +pub const TIOCM_CD: ::c_int = TIOCM_CAR; +pub const TIOCM_RNG: ::c_int = 0x200; +pub const TIOCM_RI: ::c_int = TIOCM_RNG; +pub const TIOCM_DSR: ::c_int = 0x400; + +pub const BOTHER: ::speed_t = 0o010000; +pub const IBSHIFT: ::tcflag_t = 16; + +// RLIMIT Constants + +cfg_if! { + if #[cfg(any(target_env = "gnu", + target_env = "uclibc"))] { + + pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; + pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; + pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; + pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; + pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; + pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 5; + pub const RLIMIT_AS: ::__rlimit_resource_t = 6; + pub const RLIMIT_RSS: ::__rlimit_resource_t = 7; + pub const RLIMIT_NPROC: ::__rlimit_resource_t = 8; + pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 9; + pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; + pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; + pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; + pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; + pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; + pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; + pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; + + } else if #[cfg(target_env = "musl")] { + + pub const RLIMIT_CPU: ::c_int = 0; + pub const RLIMIT_FSIZE: ::c_int = 1; + pub const RLIMIT_DATA: ::c_int = 2; + pub const RLIMIT_STACK: ::c_int = 3; + pub const RLIMIT_CORE: ::c_int = 4; + pub const RLIMIT_NOFILE: ::c_int = 5; + pub const RLIMIT_AS: ::c_int = 6; + pub const RLIMIT_RSS: ::c_int = 7; + pub const RLIMIT_NPROC: ::c_int = 8; + pub const RLIMIT_MEMLOCK: ::c_int = 9; + pub const RLIMIT_LOCKS: ::c_int = 10; + pub const RLIMIT_SIGPENDING: ::c_int = 11; + pub const RLIMIT_MSGQUEUE: ::c_int = 12; + pub const RLIMIT_NICE: ::c_int = 13; + pub const RLIMIT_RTPRIO: ::c_int = 14; + pub const RLIMIT_RTTIME: ::c_int = 15; + pub const RLIM_NLIMITS: ::c_int = 15; + pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS; + pub const RLIM_INFINITY: ::rlim_t = !0; + } +} + +cfg_if! { + if #[cfg(target_env = "gnu")] { + pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; + } else if #[cfg(target_env = "uclibc")] { + pub const RLIM_NLIMITS: ::__rlimit_resource_t = 15; + } +} + +cfg_if! { + if #[cfg(target_arch = "mips64", + any(target_env = "gnu", + target_env = "uclibc"))] { + pub const RLIM_INFINITY: ::rlim_t = !0; + } +} + +cfg_if! { + if #[cfg(target_arch = "mips", + any(target_env = "gnu", + target_env = "uclibc"))] { + pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mod.rs new file mode 100644 index 000000000..c1528f593 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mod.rs @@ -0,0 +1,15 @@ +cfg_if! { + if #[cfg(any(target_arch = "mips", target_arch = "mips64"))] { + mod mips; + pub use self::mips::*; + } else if #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))] { + mod powerpc; + pub use self::powerpc::*; + } else if #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] { + mod sparc; + pub use self::sparc::*; + } else { + mod generic; + pub use self::generic::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/powerpc/mod.rs new file mode 100644 index 000000000..64c3eaab5 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -0,0 +1,243 @@ +// arch/powerpc/include/uapi/asm/socket.h + +pub const SOL_SOCKET: ::c_int = 1; + +// Defined in unix/linux_like/mod.rs +// pub const SO_DEBUG: ::c_int = 1; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_LINGER: ::c_int = 13; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_REUSEPORT: ::c_int = 15; +// powerpc only differs in these +pub const SO_RCVLOWAT: ::c_int = 16; +pub const SO_SNDLOWAT: ::c_int = 17; +pub const SO_RCVTIMEO: ::c_int = 18; +pub const SO_SNDTIMEO: ::c_int = 19; +// pub const SO_RCVTIMEO_OLD: ::c_int = 18; +// pub const SO_SNDTIMEO_OLD: ::c_int = 19; +pub const SO_PASSCRED: ::c_int = 20; +pub const SO_PEERCRED: ::c_int = 21; +// end +pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; +pub const SO_BINDTODEVICE: ::c_int = 25; +pub const SO_ATTACH_FILTER: ::c_int = 26; +pub const SO_DETACH_FILTER: ::c_int = 27; +pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; +pub const SO_PEERNAME: ::c_int = 28; +pub const SO_TIMESTAMP: ::c_int = 29; +// pub const SO_TIMESTAMP_OLD: ::c_int = 29; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_PEERSEC: ::c_int = 31; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PASSSEC: ::c_int = 34; +pub const SO_TIMESTAMPNS: ::c_int = 35; +// pub const SO_TIMESTAMPNS_OLD: ::c_int = 35; +pub const SO_MARK: ::c_int = 36; +pub const SO_TIMESTAMPING: ::c_int = 37; +// pub const SO_TIMESTAMPING_OLD: ::c_int = 37; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; +pub const SO_RXQ_OVFL: ::c_int = 40; +pub const SO_WIFI_STATUS: ::c_int = 41; +pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; +pub const SO_PEEK_OFF: ::c_int = 42; +pub const SO_NOFCS: ::c_int = 43; +pub const SO_LOCK_FILTER: ::c_int = 44; +pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; +pub const SO_BUSY_POLL: ::c_int = 46; +pub const SO_MAX_PACING_RATE: ::c_int = 47; +pub const SO_BPF_EXTENSIONS: ::c_int = 48; +pub const SO_INCOMING_CPU: ::c_int = 49; +pub const SO_ATTACH_BPF: ::c_int = 50; +pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; +pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 51; +pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 52; +pub const SO_CNX_ADVICE: ::c_int = 53; +pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 54; +pub const SO_MEMINFO: ::c_int = 55; +pub const SO_INCOMING_NAPI_ID: ::c_int = 56; +pub const SO_COOKIE: ::c_int = 57; +pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 58; +pub const SO_PEERGROUPS: ::c_int = 59; +pub const SO_ZEROCOPY: ::c_int = 60; +pub const SO_TXTIME: ::c_int = 61; +pub const SCM_TXTIME: ::c_int = SO_TXTIME; +pub const SO_BINDTOIFINDEX: ::c_int = 62; +// pub const SO_TIMESTAMP_NEW: ::c_int = 63; +// pub const SO_TIMESTAMPNS_NEW: ::c_int = 64; +// pub const SO_TIMESTAMPING_NEW: ::c_int = 65; +// pub const SO_RCVTIMEO_NEW: ::c_int = 66; +// pub const SO_SNDTIMEO_NEW: ::c_int = 67; +// pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 68; +// pub const SO_PREFER_BUSY_POLL: ::c_int = 69; +// pub const SO_BUSY_POLL_BUDGET: ::c_int = 70; + +pub const FICLONE: ::c_ulong = 0x80049409; +pub const FICLONERANGE: ::c_ulong = 0x8020940D; + +// Defined in unix/linux_like/mod.rs +// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; +pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; +pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; + +// Ioctl Constants + +cfg_if! { + if #[cfg(target_env = "gnu")] { + pub const TCGETS: ::Ioctl = 0x403c7413; + pub const TCSETS: ::Ioctl = 0x803c7414; + pub const TCSETSW: ::Ioctl = 0x803c7415; + pub const TCSETSF: ::Ioctl = 0x803c7416; + } else if #[cfg(target_env = "musl")] { + pub const TCGETS: ::Ioctl = 0x402c7413; + pub const TCSETS: ::Ioctl = 0x802c7414; + pub const TCSETSW: ::Ioctl = 0x802c7415; + pub const TCSETSF: ::Ioctl = 0x802c7416; + } +} + +pub const TCGETA: ::Ioctl = 0x40147417; +pub const TCSETA: ::Ioctl = 0x80147418; +pub const TCSETAW: ::Ioctl = 0x80147419; +pub const TCSETAF: ::Ioctl = 0x8014741C; +pub const TCSBRK: ::Ioctl = 0x2000741D; +pub const TCXONC: ::Ioctl = 0x2000741E; +pub const TCFLSH: ::Ioctl = 0x2000741F; +pub const TIOCEXCL: ::Ioctl = 0x540C; +pub const TIOCNXCL: ::Ioctl = 0x540D; +pub const TIOCSCTTY: ::Ioctl = 0x540E; +pub const TIOCGPGRP: ::Ioctl = 0x40047477; +pub const TIOCSPGRP: ::Ioctl = 0x80047476; +pub const TIOCOUTQ: ::Ioctl = 0x40047473; +pub const TIOCSTI: ::Ioctl = 0x5412; +pub const TIOCGWINSZ: ::Ioctl = 0x40087468; +pub const TIOCSWINSZ: ::Ioctl = 0x80087467; +pub const TIOCMGET: ::Ioctl = 0x5415; +pub const TIOCMBIS: ::Ioctl = 0x5416; +pub const TIOCMBIC: ::Ioctl = 0x5417; +pub const TIOCMSET: ::Ioctl = 0x5418; +pub const TIOCGSOFTCAR: ::Ioctl = 0x5419; +pub const TIOCSSOFTCAR: ::Ioctl = 0x541A; +pub const FIONREAD: ::Ioctl = 0x4004667F; +pub const TIOCINQ: ::Ioctl = FIONREAD; +pub const TIOCLINUX: ::Ioctl = 0x541C; +pub const TIOCCONS: ::Ioctl = 0x541D; +pub const TIOCGSERIAL: ::Ioctl = 0x541E; +pub const TIOCSSERIAL: ::Ioctl = 0x541F; +pub const TIOCPKT: ::Ioctl = 0x5420; +pub const FIONBIO: ::Ioctl = 0x8004667e; +pub const TIOCNOTTY: ::Ioctl = 0x5422; +pub const TIOCSETD: ::Ioctl = 0x5423; +pub const TIOCGETD: ::Ioctl = 0x5424; +pub const TCSBRKP: ::Ioctl = 0x5425; +pub const TIOCSBRK: ::Ioctl = 0x5427; +pub const TIOCCBRK: ::Ioctl = 0x5428; +pub const TIOCGSID: ::Ioctl = 0x5429; +pub const TIOCGRS485: ::Ioctl = 0x542e; +pub const TIOCSRS485: ::Ioctl = 0x542f; +pub const TIOCGPTN: ::Ioctl = 0x40045430; +pub const TIOCSPTLCK: ::Ioctl = 0x80045431; +pub const TIOCGDEV: ::Ioctl = 0x40045432; +pub const TIOCSIG: ::Ioctl = 0x80045436; +pub const TIOCVHANGUP: ::Ioctl = 0x5437; +pub const TIOCGPKT: ::Ioctl = 0x40045438; +pub const TIOCGPTLCK: ::Ioctl = 0x40045439; +pub const TIOCGEXCL: ::Ioctl = 0x40045440; +pub const TIOCGPTPEER: ::Ioctl = 0x20005441; +//pub const TIOCGISO7816: ::Ioctl = 0x40285442; +//pub const TIOCSISO7816: ::Ioctl = 0xc0285443; +pub const FIONCLEX: ::Ioctl = 0x20006602; +pub const FIOCLEX: ::Ioctl = 0x20006601; +pub const FIOASYNC: ::Ioctl = 0x8004667d; +pub const TIOCSERCONFIG: ::Ioctl = 0x5453; +pub const TIOCSERGWILD: ::Ioctl = 0x5454; +pub const TIOCSERSWILD: ::Ioctl = 0x5455; +pub const TIOCGLCKTRMIOS: ::Ioctl = 0x5456; +pub const TIOCSLCKTRMIOS: ::Ioctl = 0x5457; +pub const TIOCSERGSTRUCT: ::Ioctl = 0x5458; +pub const TIOCSERGETLSR: ::Ioctl = 0x5459; +pub const TIOCSERGETMULTI: ::Ioctl = 0x545A; +pub const TIOCSERSETMULTI: ::Ioctl = 0x545B; +pub const TIOCMIWAIT: ::Ioctl = 0x545C; +pub const TIOCGICOUNT: ::Ioctl = 0x545D; +pub const BLKIOMIN: ::Ioctl = 0x20001278; +pub const BLKIOOPT: ::Ioctl = 0x20001279; +pub const BLKSSZGET: ::Ioctl = 0x20001268; +pub const BLKPBSZGET: ::Ioctl = 0x2000127B; +//pub const FIOQSIZE: ::Ioctl = 0x40086680; + +pub const TIOCM_LE: ::c_int = 0x001; +pub const TIOCM_DTR: ::c_int = 0x002; +pub const TIOCM_RTS: ::c_int = 0x004; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_CD: ::c_int = TIOCM_CAR; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_RI: ::c_int = TIOCM_RNG; +pub const TIOCM_DSR: ::c_int = 0x100; + +pub const BOTHER: ::speed_t = 0o0037; +pub const IBSHIFT: ::tcflag_t = 16; + +// RLIMIT Constants + +cfg_if! { + if #[cfg(target_env = "gnu")] { + + pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; + pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; + pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; + pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; + pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; + pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; + pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; + pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; + pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; + pub const RLIMIT_AS: ::__rlimit_resource_t = 9; + pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; + pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; + pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; + pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; + pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; + pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; + pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; + pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; + + } else if #[cfg(target_env = "musl")] { + + pub const RLIMIT_CPU: ::c_int = 0; + pub const RLIMIT_FSIZE: ::c_int = 1; + pub const RLIMIT_DATA: ::c_int = 2; + pub const RLIMIT_STACK: ::c_int = 3; + pub const RLIMIT_CORE: ::c_int = 4; + pub const RLIMIT_RSS: ::c_int = 5; + pub const RLIMIT_NPROC: ::c_int = 6; + pub const RLIMIT_NOFILE: ::c_int = 7; + pub const RLIMIT_MEMLOCK: ::c_int = 8; + pub const RLIMIT_AS: ::c_int = 9; + pub const RLIMIT_LOCKS: ::c_int = 10; + pub const RLIMIT_SIGPENDING: ::c_int = 11; + pub const RLIMIT_MSGQUEUE: ::c_int = 12; + pub const RLIMIT_NICE: ::c_int = 13; + pub const RLIMIT_RTPRIO: ::c_int = 14; + pub const RLIMIT_RTTIME: ::c_int = 15; + pub const RLIM_NLIMITS: ::c_int = 15; + pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS; + } +} +pub const RLIM_INFINITY: ::rlim_t = !0; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/sparc/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/sparc/mod.rs new file mode 100644 index 000000000..da3e388e3 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/sparc/mod.rs @@ -0,0 +1,228 @@ +s! { + pub struct termios2 { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; 19], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, + } +} + +// arch/sparc/include/uapi/asm/socket.h +pub const SOL_SOCKET: ::c_int = 0xffff; + +// Defined in unix/linux_like/mod.rs +// pub const SO_DEBUG: ::c_int = 0x0001; +pub const SO_PASSCRED: ::c_int = 0x0002; +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_PEERCRED: ::c_int = 0x0040; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_OOBINLINE: ::c_int = 0x0100; +pub const SO_REUSEPORT: ::c_int = 0x0200; +pub const SO_BSDCOMPAT: ::c_int = 0x0400; +pub const SO_RCVLOWAT: ::c_int = 0x0800; +pub const SO_SNDLOWAT: ::c_int = 0x1000; +pub const SO_RCVTIMEO: ::c_int = 0x2000; +pub const SO_SNDTIMEO: ::c_int = 0x4000; +// pub const SO_RCVTIMEO_OLD: ::c_int = 0x2000; +// pub const SO_SNDTIMEO_OLD: ::c_int = 0x4000; +pub const SO_ACCEPTCONN: ::c_int = 0x8000; +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_SNDBUFFORCE: ::c_int = 0x100a; +pub const SO_RCVBUFFORCE: ::c_int = 0x100b; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_TYPE: ::c_int = 0x1008; +pub const SO_PROTOCOL: ::c_int = 0x1028; +pub const SO_DOMAIN: ::c_int = 0x1029; +pub const SO_NO_CHECK: ::c_int = 0x000b; +pub const SO_PRIORITY: ::c_int = 0x000c; +pub const SO_BINDTODEVICE: ::c_int = 0x000d; +pub const SO_ATTACH_FILTER: ::c_int = 0x001a; +pub const SO_DETACH_FILTER: ::c_int = 0x001b; +pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; +pub const SO_PEERNAME: ::c_int = 0x001c; +pub const SO_PEERSEC: ::c_int = 0x001e; +pub const SO_PASSSEC: ::c_int = 0x001f; +pub const SO_MARK: ::c_int = 0x0022; +pub const SO_RXQ_OVFL: ::c_int = 0x0024; +pub const SO_WIFI_STATUS: ::c_int = 0x0025; +pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; +pub const SO_PEEK_OFF: ::c_int = 0x0026; +pub const SO_NOFCS: ::c_int = 0x0027; +pub const SO_LOCK_FILTER: ::c_int = 0x0028; +pub const SO_SELECT_ERR_QUEUE: ::c_int = 0x0029; +pub const SO_BUSY_POLL: ::c_int = 0x0030; +pub const SO_MAX_PACING_RATE: ::c_int = 0x0031; +pub const SO_BPF_EXTENSIONS: ::c_int = 0x0032; +pub const SO_INCOMING_CPU: ::c_int = 0x0033; +pub const SO_ATTACH_BPF: ::c_int = 0x0034; +pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; +pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 0x0035; +pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 0x0036; +pub const SO_CNX_ADVICE: ::c_int = 0x0037; +pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 0x0038; +pub const SO_MEMINFO: ::c_int = 0x0039; +pub const SO_INCOMING_NAPI_ID: ::c_int = 0x003a; +pub const SO_COOKIE: ::c_int = 0x003b; +pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 0x003c; +pub const SO_PEERGROUPS: ::c_int = 0x003d; +pub const SO_ZEROCOPY: ::c_int = 0x003e; +pub const SO_TXTIME: ::c_int = 0x003f; +pub const SCM_TXTIME: ::c_int = SO_TXTIME; +pub const SO_BINDTOIFINDEX: ::c_int = 0x0041; +pub const SO_SECURITY_AUTHENTICATION: ::c_int = 0x5001; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 0x5002; +pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 0x5004; +pub const SO_TIMESTAMP: ::c_int = 0x001d; +pub const SO_TIMESTAMPNS: ::c_int = 0x0021; +pub const SO_TIMESTAMPING: ::c_int = 0x0023; +// pub const SO_TIMESTAMP_OLD: ::c_int = 0x001d; +// pub const SO_TIMESTAMPNS_OLD: ::c_int = 0x0021; +// pub const SO_TIMESTAMPING_OLD: ::c_int = 0x0023; +// pub const SO_TIMESTAMP_NEW: ::c_int = 0x0046; +// pub const SO_TIMESTAMPNS_NEW: ::c_int = 0x0042; +// pub const SO_TIMESTAMPING_NEW: ::c_int = 0x0043; +// pub const SO_RCVTIMEO_NEW: ::c_int = 0x0044; +// pub const SO_SNDTIMEO_NEW: ::c_int = 0x0045; +// pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 0x0047; +// pub const SO_PREFER_BUSY_POLL: ::c_int = 0x0048; +// pub const SO_BUSY_POLL_BUDGET: ::c_int = 0x0049; + +// Defined in unix/linux_like/mod.rs +// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; +pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; +pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; + +// Ioctl Constants + +pub const TCGETS: ::Ioctl = 0x40245408; +pub const TCSETS: ::Ioctl = 0x80245409; +pub const TCSETSW: ::Ioctl = 0x8024540a; +pub const TCSETSF: ::Ioctl = 0x8024540b; +pub const TCGETA: ::Ioctl = 0x40125401; +pub const TCSETA: ::Ioctl = 0x80125402; +pub const TCSETAW: ::Ioctl = 0x80125403; +pub const TCSETAF: ::Ioctl = 0x80125404; +pub const TCSBRK: ::Ioctl = 0x20005405; +pub const TCXONC: ::Ioctl = 0x20005406; +pub const TCFLSH: ::Ioctl = 0x20005407; +pub const TIOCEXCL: ::Ioctl = 0x2000740d; +pub const TIOCNXCL: ::Ioctl = 0x2000740e; +pub const TIOCSCTTY: ::Ioctl = 0x20007484; +pub const TIOCGPGRP: ::Ioctl = 0x40047483; +pub const TIOCSPGRP: ::Ioctl = 0x80047482; +pub const TIOCOUTQ: ::Ioctl = 0x40047473; +pub const TIOCSTI: ::Ioctl = 0x80017472; +pub const TIOCGWINSZ: ::Ioctl = 0x40087468; +pub const TIOCSWINSZ: ::Ioctl = 0x80087467; +pub const TIOCMGET: ::Ioctl = 0x4004746a; +pub const TIOCMBIS: ::Ioctl = 0x8004746c; +pub const TIOCMBIC: ::Ioctl = 0x8004746b; +pub const TIOCMSET: ::Ioctl = 0x8004746d; +pub const TIOCGSOFTCAR: ::Ioctl = 0x40047464; +pub const TIOCSSOFTCAR: ::Ioctl = 0x80047465; +pub const FIONREAD: ::Ioctl = 0x4004667f; +pub const TIOCINQ: ::Ioctl = FIONREAD; +pub const TIOCLINUX: ::Ioctl = 0x541C; +pub const TIOCCONS: ::Ioctl = 0x20007424; +pub const TIOCGSERIAL: ::Ioctl = 0x541E; +pub const TIOCSSERIAL: ::Ioctl = 0x541F; +pub const TIOCPKT: ::Ioctl = 0x80047470; +pub const FIONBIO: ::Ioctl = 0x8004667e; +pub const TIOCNOTTY: ::Ioctl = 0x20007471; +pub const TIOCSETD: ::Ioctl = 0x80047401; +pub const TIOCGETD: ::Ioctl = 0x40047400; +pub const TCSBRKP: ::Ioctl = 0x5425; +pub const TIOCSBRK: ::Ioctl = 0x2000747b; +pub const TIOCCBRK: ::Ioctl = 0x2000747a; +pub const TIOCGSID: ::Ioctl = 0x40047485; +pub const TCGETS2: ::Ioctl = 0x402c540c; +pub const TCSETS2: ::Ioctl = 0x802c540d; +pub const TCSETSW2: ::Ioctl = 0x802c540e; +pub const TCSETSF2: ::Ioctl = 0x802c540f; +pub const TIOCGPTN: ::Ioctl = 0x40047486; +pub const TIOCSPTLCK: ::Ioctl = 0x80047487; +pub const TIOCGDEV: ::Ioctl = 0x40045432; +pub const TIOCSIG: ::Ioctl = 0x80047488; +pub const TIOCVHANGUP: ::Ioctl = 0x20005437; +pub const TIOCGPKT: ::Ioctl = 0x40045438; +pub const TIOCGPTLCK: ::Ioctl = 0x40045439; +pub const TIOCGEXCL: ::Ioctl = 0x40045440; +pub const TIOCGPTPEER: ::Ioctl = 0x20007489; +pub const FIONCLEX: ::Ioctl = 0x20006602; +pub const FIOCLEX: ::Ioctl = 0x20006601; +pub const TIOCSERCONFIG: ::Ioctl = 0x5453; +pub const TIOCSERGWILD: ::Ioctl = 0x5454; +pub const TIOCSERSWILD: ::Ioctl = 0x5455; +pub const TIOCGLCKTRMIOS: ::Ioctl = 0x5456; +pub const TIOCSLCKTRMIOS: ::Ioctl = 0x5457; +pub const TIOCSERGSTRUCT: ::Ioctl = 0x5458; +pub const TIOCSERGETLSR: ::Ioctl = 0x5459; +pub const TIOCSERGETMULTI: ::Ioctl = 0x545A; +pub const TIOCSERSETMULTI: ::Ioctl = 0x545B; +pub const TIOCMIWAIT: ::Ioctl = 0x545C; +pub const TIOCGICOUNT: ::Ioctl = 0x545D; +pub const TIOCSTART: ::Ioctl = 0x2000746e; +pub const TIOCSTOP: ::Ioctl = 0x2000746f; +pub const BLKIOMIN: ::Ioctl = 0x20001278; +pub const BLKIOOPT: ::Ioctl = 0x20001279; +pub const BLKSSZGET: ::Ioctl = 0x20001268; +pub const BLKPBSZGET: ::Ioctl = 0x2000127B; + +//pub const FIOASYNC: ::Ioctl = 0x4004667d; +//pub const FIOQSIZE: ::Ioctl = ; +//pub const TIOCGISO7816: ::Ioctl = 0x40285443; +//pub const TIOCSISO7816: ::Ioctl = 0xc0285444; +//pub const TIOCGRS485: ::Ioctl = 0x40205441; +//pub const TIOCSRS485: ::Ioctl = 0xc0205442; + +pub const TIOCM_LE: ::c_int = 0x001; +pub const TIOCM_DTR: ::c_int = 0x002; +pub const TIOCM_RTS: ::c_int = 0x004; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_CD: ::c_int = TIOCM_CAR; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_RI: ::c_int = TIOCM_RNG; +pub const TIOCM_DSR: ::c_int = 0x100; + +pub const BOTHER: ::speed_t = 0x1000; +pub const IBSHIFT: ::tcflag_t = 16; + +// RLIMIT Constants + +pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; +pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; +pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; +pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; +pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; +pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 6; +pub const RLIMIT_NPROC: ::__rlimit_resource_t = 7; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; +pub const RLIMIT_AS: ::__rlimit_resource_t = 9; +pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; +pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; +pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; +pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; +pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; +pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; +pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; +pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; + +cfg_if! { + if #[cfg(target_arch = "sparc64")] { + pub const RLIM_INFINITY: ::rlim_t = !0; + } else if #[cfg(target_arch = "sparc")] { + pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/align.rs new file mode 100644 index 000000000..4a0e07460 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/align.rs @@ -0,0 +1,13 @@ +s! { + // FIXME this is actually a union + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + pub struct sem_t { + #[cfg(target_pointer_width = "32")] + __size: [::c_char; 16], + #[cfg(target_pointer_width = "64")] + __size: [::c_char; 32], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/align.rs new file mode 100644 index 000000000..2645ec4c3 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/align.rs @@ -0,0 +1,53 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [i64; 2] + } + + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: ::mcontext_t, + pub uc_sigmask: ::sigset_t, + pub uc_regspace: [::c_ulong; 128], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for ucontext_t { + fn eq(&self, other: &ucontext_t) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_sigmask == other.uc_sigmask + } + } + impl Eq for ucontext_t {} + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_link) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field("uc_sigmask", &self.uc_sigmask) + .finish() + } + } + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_flags.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + self.uc_sigmask.hash(state); + } + } + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/mod.rs new file mode 100644 index 000000000..fd690a17e --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -0,0 +1,874 @@ +pub type c_char = u8; +pub type wchar_t = u32; + +s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct statfs { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_ushort, + __pad1: ::c_ushort, + pub __seq: ::c_ushort, + __pad2: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } + + pub struct stat64 { + pub st_dev: ::dev_t, + __pad1: ::c_uint, + __st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: ::c_uint, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_ino: ::ino64_t, + } + + pub struct statfs64 { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + pub f_spare: [::__fsword_t; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + __unused1: ::c_ulong, + pub shm_dtime: ::time_t, + __unused2: ::c_ulong, + pub shm_ctime: ::time_t, + __unused3: ::c_ulong, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused4: ::c_ulong, + __unused5: ::c_ulong + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + __glibc_reserved1: ::c_ulong, + pub msg_rtime: ::time_t, + __glibc_reserved2: ::c_ulong, + pub msg_ctime: ::time_t, + __glibc_reserved3: ::c_ulong, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __glibc_reserved4: ::c_ulong, + __glibc_reserved5: ::c_ulong, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct seccomp_notif_sizes { + pub seccomp_notif: ::__u16, + pub seccomp_notif_resp: ::__u16, + pub seccomp_data: ::__u16, + } + + pub struct mcontext_t { + pub trap_no: ::c_ulong, + pub error_code: ::c_ulong, + pub oldmask: ::c_ulong, + pub arm_r0: ::c_ulong, + pub arm_r1: ::c_ulong, + pub arm_r2: ::c_ulong, + pub arm_r3: ::c_ulong, + pub arm_r4: ::c_ulong, + pub arm_r5: ::c_ulong, + pub arm_r6: ::c_ulong, + pub arm_r7: ::c_ulong, + pub arm_r8: ::c_ulong, + pub arm_r9: ::c_ulong, + pub arm_r10: ::c_ulong, + pub arm_fp: ::c_ulong, + pub arm_ip: ::c_ulong, + pub arm_sp: ::c_ulong, + pub arm_lr: ::c_ulong, + pub arm_pc: ::c_ulong, + pub arm_cpsr: ::c_ulong, + pub fault_address: ::c_ulong, + } + + pub struct user_regs { + pub arm_r0: ::c_ulong, + pub arm_r1: ::c_ulong, + pub arm_r2: ::c_ulong, + pub arm_r3: ::c_ulong, + pub arm_r4: ::c_ulong, + pub arm_r5: ::c_ulong, + pub arm_r6: ::c_ulong, + pub arm_r7: ::c_ulong, + pub arm_r8: ::c_ulong, + pub arm_r9: ::c_ulong, + pub arm_r10: ::c_ulong, + pub arm_fp: ::c_ulong, + pub arm_ip: ::c_ulong, + pub arm_sp: ::c_ulong, + pub arm_lr: ::c_ulong, + pub arm_pc: ::c_ulong, + pub arm_cpsr: ::c_ulong, + pub arm_orig_r0: ::c_ulong, + } +} + +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const O_DIRECT: ::c_int = 0x10000; +pub const O_DIRECTORY: ::c_int = 0x4000; +pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const O_LARGEFILE: ::c_int = 0o400000; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 0x101000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x800; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const EDEADLOCK: ::c_int = 35; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; + +pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const SFD_NONBLOCK: ::c_int = 0x0800; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] +pub const SIGUNUSED: ::c_int = 31; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; +pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; +pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; +pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; + +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const EXTPROC: ::tcflag_t = 0x00010000; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +// Syscall table +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_pause: ::c_long = 29; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_brk: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_setreuid: ::c_long = 70; +pub const SYS_setregid: ::c_long = 71; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_getgroups: ::c_long = 80; +pub const SYS_setgroups: ::c_long = 81; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_fchown: ::c_long = 95; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_setfsuid: ::c_long = 138; +pub const SYS_setfsgid: ::c_long = 139; +pub const SYS__llseek: ::c_long = 140; +pub const SYS_getdents: ::c_long = 141; +pub const SYS__newselect: ::c_long = 142; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_setresuid: ::c_long = 164; +pub const SYS_getresuid: ::c_long = 165; +pub const SYS_poll: ::c_long = 168; +pub const SYS_nfsservctl: ::c_long = 169; +pub const SYS_setresgid: ::c_long = 170; +pub const SYS_getresgid: ::c_long = 171; +pub const SYS_prctl: ::c_long = 172; +pub const SYS_rt_sigreturn: ::c_long = 173; +pub const SYS_rt_sigaction: ::c_long = 174; +pub const SYS_rt_sigprocmask: ::c_long = 175; +pub const SYS_rt_sigpending: ::c_long = 176; +pub const SYS_rt_sigtimedwait: ::c_long = 177; +pub const SYS_rt_sigqueueinfo: ::c_long = 178; +pub const SYS_rt_sigsuspend: ::c_long = 179; +pub const SYS_pread64: ::c_long = 180; +pub const SYS_pwrite64: ::c_long = 181; +pub const SYS_chown: ::c_long = 182; +pub const SYS_getcwd: ::c_long = 183; +pub const SYS_capget: ::c_long = 184; +pub const SYS_capset: ::c_long = 185; +pub const SYS_sigaltstack: ::c_long = 186; +pub const SYS_sendfile: ::c_long = 187; +pub const SYS_vfork: ::c_long = 190; +pub const SYS_ugetrlimit: ::c_long = 191; +pub const SYS_mmap2: ::c_long = 192; +pub const SYS_truncate64: ::c_long = 193; +pub const SYS_ftruncate64: ::c_long = 194; +pub const SYS_stat64: ::c_long = 195; +pub const SYS_lstat64: ::c_long = 196; +pub const SYS_fstat64: ::c_long = 197; +pub const SYS_lchown32: ::c_long = 198; +pub const SYS_getuid32: ::c_long = 199; +pub const SYS_getgid32: ::c_long = 200; +pub const SYS_geteuid32: ::c_long = 201; +pub const SYS_getegid32: ::c_long = 202; +pub const SYS_setreuid32: ::c_long = 203; +pub const SYS_setregid32: ::c_long = 204; +pub const SYS_getgroups32: ::c_long = 205; +pub const SYS_setgroups32: ::c_long = 206; +pub const SYS_fchown32: ::c_long = 207; +pub const SYS_setresuid32: ::c_long = 208; +pub const SYS_getresuid32: ::c_long = 209; +pub const SYS_setresgid32: ::c_long = 210; +pub const SYS_getresgid32: ::c_long = 211; +pub const SYS_chown32: ::c_long = 212; +pub const SYS_setuid32: ::c_long = 213; +pub const SYS_setgid32: ::c_long = 214; +pub const SYS_setfsuid32: ::c_long = 215; +pub const SYS_setfsgid32: ::c_long = 216; +pub const SYS_getdents64: ::c_long = 217; +pub const SYS_pivot_root: ::c_long = 218; +pub const SYS_mincore: ::c_long = 219; +pub const SYS_madvise: ::c_long = 220; +pub const SYS_fcntl64: ::c_long = 221; +pub const SYS_gettid: ::c_long = 224; +pub const SYS_readahead: ::c_long = 225; +pub const SYS_setxattr: ::c_long = 226; +pub const SYS_lsetxattr: ::c_long = 227; +pub const SYS_fsetxattr: ::c_long = 228; +pub const SYS_getxattr: ::c_long = 229; +pub const SYS_lgetxattr: ::c_long = 230; +pub const SYS_fgetxattr: ::c_long = 231; +pub const SYS_listxattr: ::c_long = 232; +pub const SYS_llistxattr: ::c_long = 233; +pub const SYS_flistxattr: ::c_long = 234; +pub const SYS_removexattr: ::c_long = 235; +pub const SYS_lremovexattr: ::c_long = 236; +pub const SYS_fremovexattr: ::c_long = 237; +pub const SYS_tkill: ::c_long = 238; +pub const SYS_sendfile64: ::c_long = 239; +pub const SYS_futex: ::c_long = 240; +pub const SYS_sched_setaffinity: ::c_long = 241; +pub const SYS_sched_getaffinity: ::c_long = 242; +pub const SYS_io_setup: ::c_long = 243; +pub const SYS_io_destroy: ::c_long = 244; +pub const SYS_io_getevents: ::c_long = 245; +pub const SYS_io_submit: ::c_long = 246; +pub const SYS_io_cancel: ::c_long = 247; +pub const SYS_exit_group: ::c_long = 248; +pub const SYS_lookup_dcookie: ::c_long = 249; +pub const SYS_epoll_create: ::c_long = 250; +pub const SYS_epoll_ctl: ::c_long = 251; +pub const SYS_epoll_wait: ::c_long = 252; +pub const SYS_remap_file_pages: ::c_long = 253; +pub const SYS_set_tid_address: ::c_long = 256; +pub const SYS_timer_create: ::c_long = 257; +pub const SYS_timer_settime: ::c_long = 258; +pub const SYS_timer_gettime: ::c_long = 259; +pub const SYS_timer_getoverrun: ::c_long = 260; +pub const SYS_timer_delete: ::c_long = 261; +pub const SYS_clock_settime: ::c_long = 262; +pub const SYS_clock_gettime: ::c_long = 263; +pub const SYS_clock_getres: ::c_long = 264; +pub const SYS_clock_nanosleep: ::c_long = 265; +pub const SYS_statfs64: ::c_long = 266; +pub const SYS_fstatfs64: ::c_long = 267; +pub const SYS_tgkill: ::c_long = 268; +pub const SYS_utimes: ::c_long = 269; +pub const SYS_arm_fadvise64_64: ::c_long = 270; +pub const SYS_pciconfig_iobase: ::c_long = 271; +pub const SYS_pciconfig_read: ::c_long = 272; +pub const SYS_pciconfig_write: ::c_long = 273; +pub const SYS_mq_open: ::c_long = 274; +pub const SYS_mq_unlink: ::c_long = 275; +pub const SYS_mq_timedsend: ::c_long = 276; +pub const SYS_mq_timedreceive: ::c_long = 277; +pub const SYS_mq_notify: ::c_long = 278; +pub const SYS_mq_getsetattr: ::c_long = 279; +pub const SYS_waitid: ::c_long = 280; +pub const SYS_socket: ::c_long = 281; +pub const SYS_bind: ::c_long = 282; +pub const SYS_connect: ::c_long = 283; +pub const SYS_listen: ::c_long = 284; +pub const SYS_accept: ::c_long = 285; +pub const SYS_getsockname: ::c_long = 286; +pub const SYS_getpeername: ::c_long = 287; +pub const SYS_socketpair: ::c_long = 288; +pub const SYS_send: ::c_long = 289; +pub const SYS_sendto: ::c_long = 290; +pub const SYS_recv: ::c_long = 291; +pub const SYS_recvfrom: ::c_long = 292; +pub const SYS_shutdown: ::c_long = 293; +pub const SYS_setsockopt: ::c_long = 294; +pub const SYS_getsockopt: ::c_long = 295; +pub const SYS_sendmsg: ::c_long = 296; +pub const SYS_recvmsg: ::c_long = 297; +pub const SYS_semop: ::c_long = 298; +pub const SYS_semget: ::c_long = 299; +pub const SYS_semctl: ::c_long = 300; +pub const SYS_msgsnd: ::c_long = 301; +pub const SYS_msgrcv: ::c_long = 302; +pub const SYS_msgget: ::c_long = 303; +pub const SYS_msgctl: ::c_long = 304; +pub const SYS_shmat: ::c_long = 305; +pub const SYS_shmdt: ::c_long = 306; +pub const SYS_shmget: ::c_long = 307; +pub const SYS_shmctl: ::c_long = 308; +pub const SYS_add_key: ::c_long = 309; +pub const SYS_request_key: ::c_long = 310; +pub const SYS_keyctl: ::c_long = 311; +pub const SYS_semtimedop: ::c_long = 312; +pub const SYS_vserver: ::c_long = 313; +pub const SYS_ioprio_set: ::c_long = 314; +pub const SYS_ioprio_get: ::c_long = 315; +pub const SYS_inotify_init: ::c_long = 316; +pub const SYS_inotify_add_watch: ::c_long = 317; +pub const SYS_inotify_rm_watch: ::c_long = 318; +pub const SYS_mbind: ::c_long = 319; +pub const SYS_get_mempolicy: ::c_long = 320; +pub const SYS_set_mempolicy: ::c_long = 321; +pub const SYS_openat: ::c_long = 322; +pub const SYS_mkdirat: ::c_long = 323; +pub const SYS_mknodat: ::c_long = 324; +pub const SYS_fchownat: ::c_long = 325; +pub const SYS_futimesat: ::c_long = 326; +pub const SYS_fstatat64: ::c_long = 327; +pub const SYS_unlinkat: ::c_long = 328; +pub const SYS_renameat: ::c_long = 329; +pub const SYS_linkat: ::c_long = 330; +pub const SYS_symlinkat: ::c_long = 331; +pub const SYS_readlinkat: ::c_long = 332; +pub const SYS_fchmodat: ::c_long = 333; +pub const SYS_faccessat: ::c_long = 334; +pub const SYS_pselect6: ::c_long = 335; +pub const SYS_ppoll: ::c_long = 336; +pub const SYS_unshare: ::c_long = 337; +pub const SYS_set_robust_list: ::c_long = 338; +pub const SYS_get_robust_list: ::c_long = 339; +pub const SYS_splice: ::c_long = 340; +pub const SYS_arm_sync_file_range: ::c_long = 341; +pub const SYS_tee: ::c_long = 342; +pub const SYS_vmsplice: ::c_long = 343; +pub const SYS_move_pages: ::c_long = 344; +pub const SYS_getcpu: ::c_long = 345; +pub const SYS_epoll_pwait: ::c_long = 346; +pub const SYS_kexec_load: ::c_long = 347; +pub const SYS_utimensat: ::c_long = 348; +pub const SYS_signalfd: ::c_long = 349; +pub const SYS_timerfd_create: ::c_long = 350; +pub const SYS_eventfd: ::c_long = 351; +pub const SYS_fallocate: ::c_long = 352; +pub const SYS_timerfd_settime: ::c_long = 353; +pub const SYS_timerfd_gettime: ::c_long = 354; +pub const SYS_signalfd4: ::c_long = 355; +pub const SYS_eventfd2: ::c_long = 356; +pub const SYS_epoll_create1: ::c_long = 357; +pub const SYS_dup3: ::c_long = 358; +pub const SYS_pipe2: ::c_long = 359; +pub const SYS_inotify_init1: ::c_long = 360; +pub const SYS_preadv: ::c_long = 361; +pub const SYS_pwritev: ::c_long = 362; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 363; +pub const SYS_perf_event_open: ::c_long = 364; +pub const SYS_recvmmsg: ::c_long = 365; +pub const SYS_accept4: ::c_long = 366; +pub const SYS_fanotify_init: ::c_long = 367; +pub const SYS_fanotify_mark: ::c_long = 368; +pub const SYS_prlimit64: ::c_long = 369; +pub const SYS_name_to_handle_at: ::c_long = 370; +pub const SYS_open_by_handle_at: ::c_long = 371; +pub const SYS_clock_adjtime: ::c_long = 372; +pub const SYS_syncfs: ::c_long = 373; +pub const SYS_sendmmsg: ::c_long = 374; +pub const SYS_setns: ::c_long = 375; +pub const SYS_process_vm_readv: ::c_long = 376; +pub const SYS_process_vm_writev: ::c_long = 377; +pub const SYS_kcmp: ::c_long = 378; +pub const SYS_finit_module: ::c_long = 379; +pub const SYS_sched_setattr: ::c_long = 380; +pub const SYS_sched_getattr: ::c_long = 381; +pub const SYS_renameat2: ::c_long = 382; +pub const SYS_seccomp: ::c_long = 383; +pub const SYS_getrandom: ::c_long = 384; +pub const SYS_memfd_create: ::c_long = 385; +pub const SYS_bpf: ::c_long = 386; +pub const SYS_execveat: ::c_long = 387; +pub const SYS_userfaultfd: ::c_long = 388; +pub const SYS_membarrier: ::c_long = 389; +pub const SYS_mlock2: ::c_long = 390; +pub const SYS_copy_file_range: ::c_long = 391; +pub const SYS_preadv2: ::c_long = 392; +pub const SYS_pwritev2: ::c_long = 393; +pub const SYS_pkey_mprotect: ::c_long = 394; +pub const SYS_pkey_alloc: ::c_long = 395; +pub const SYS_pkey_free: ::c_long = 396; +pub const SYS_statx: ::c_long = 397; +pub const SYS_rseq: ::c_long = 398; +pub const SYS_kexec_file_load: ::c_long = 401; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/align.rs new file mode 100644 index 000000000..639394a30 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(2))] + pub struct max_align_t { + priv_: [i8; 20] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs new file mode 100644 index 000000000..69725ee7c --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -0,0 +1,849 @@ +pub type c_char = i8; +pub type wchar_t = i32; + +s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct statfs { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + f_spare: [::__fsword_t; 4], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct ipc_perm { + __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + __seq: ::c_ushort, + __pad1: ::c_ushort, + __glibc_reserved1: ::c_ulong, + __glibc_reserved2: ::c_ulong, + } + + pub struct stat64 { + pub st_dev: ::dev_t, + __pad1: ::c_ushort, + pub __st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: ::c_ushort, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_ulong, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_ulong, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_ulong, + pub st_ino: ::ino64_t, + } + + pub struct statfs64 { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsblkcnt64_t, + pub f_ffree: ::fsblkcnt64_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + pub f_spare: [::__fsword_t; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsblkcnt64_t, + pub f_ffree: ::fsblkcnt64_t, + pub f_favail: ::fsblkcnt64_t, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + __glibc_reserved1: ::c_long, + pub shm_dtime: ::time_t, + __glibc_reserved2: ::c_long, + pub shm_ctime: ::time_t, + __glibc_reserved3: ::c_long, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __glibc_reserved5: ::c_ulong, + __glibc_reserved6: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + __glibc_reserved1: ::c_uint, + pub msg_rtime: ::time_t, + __glibc_reserved2: ::c_uint, + pub msg_ctime: ::time_t, + __glibc_reserved3: ::c_uint, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __glibc_reserved4: ::c_ulong, + __glibc_reserved5: ::c_ulong, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_code: ::c_int, + pub si_errno: ::c_int, + _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } +} + +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const O_DIRECT: ::c_int = 0x10000; +pub const O_DIRECTORY: ::c_int = 0x4000; +pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const O_LARGEFILE: ::c_int = 0x20000; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 0x101000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x800; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_32BIT: ::c_int = 0x0040; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const EDEADLOCK: ::c_int = 35; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; + +pub const PTRACE_GETFPXREGS: ::c_uint = 18; +pub const PTRACE_SETFPXREGS: ::c_uint = 19; +pub const PTRACE_SYSEMU: ::c_uint = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const SFD_NONBLOCK: ::c_int = 0x0800; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] +pub const SIGUNUSED: ::c_int = 31; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const EXTPROC: ::tcflag_t = 0x00010000; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_waitpid: ::c_long = 7; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_time32: ::c_long = 13; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_chown16: ::c_long = 16; +pub const SYS_stat: ::c_long = 18; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_oldumount: ::c_long = 22; +pub const SYS_setuid16: ::c_long = 23; +pub const SYS_getuid16: ::c_long = 24; +pub const SYS_stime32: ::c_long = 25; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_alarm: ::c_long = 27; +pub const SYS_fstat: ::c_long = 28; +pub const SYS_pause: ::c_long = 29; +pub const SYS_utime32: ::c_long = 30; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_brk: ::c_long = 45; +pub const SYS_setgid16: ::c_long = 46; +pub const SYS_getgid16: ::c_long = 47; +pub const SYS_signal: ::c_long = 48; +pub const SYS_geteuid16: ::c_long = 49; +pub const SYS_getegid16: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount: ::c_long = 52; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_sgetmask: ::c_long = 68; +pub const SYS_ssetmask: ::c_long = 69; +pub const SYS_setreuid16: ::c_long = 70; +pub const SYS_setregid16: ::c_long = 71; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_old_getrlimit: ::c_long = 76; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_getgroups16: ::c_long = 80; +pub const SYS_setgroups16: ::c_long = 81; +pub const SYS_old_select: ::c_long = 82; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_lstat: ::c_long = 84; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_old_readdir: ::c_long = 89; +pub const SYS_old_mmap: ::c_long = 90; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_fchown16: ::c_long = 95; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_socketcall: ::c_long = 102; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_newstat: ::c_long = 106; +pub const SYS_newlstat: ::c_long = 107; +pub const SYS_newfstat: ::c_long = 108; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_ipc: ::c_long = 117; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_newuname: ::c_long = 122; +pub const SYS_cacheflush: ::c_long = 123; +pub const SYS_adjtimex_time32: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_create_module: ::c_long = 127; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_get_kernel_syms: ::c_long = 130; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_setfsuid16: ::c_long = 138; +pub const SYS_setfsgid16: ::c_long = 139; +pub const SYS_llseek: ::c_long = 140; +pub const SYS_getdents: ::c_long = 141; +pub const SYS_select: ::c_long = 142; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval_time32: ::c_long = 161; +pub const SYS_nanosleep_time32: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_setresuid16: ::c_long = 164; +pub const SYS_getresuid16: ::c_long = 165; +pub const SYS_getpagesize: ::c_long = 166; +pub const SYS_query_module: ::c_long = 167; +pub const SYS_poll: ::c_long = 168; +pub const SYS_nfsservctl: ::c_long = 169; +pub const SYS_setresgid16: ::c_long = 170; +pub const SYS_getresgid16: ::c_long = 171; +pub const SYS_prctl: ::c_long = 172; +pub const SYS_rt_sigreturn: ::c_long = 173; +pub const SYS_rt_sigaction: ::c_long = 174; +pub const SYS_rt_sigprocmask: ::c_long = 175; +pub const SYS_rt_sigpending: ::c_long = 176; +pub const SYS_rt_sigtimedwait_time32: ::c_long = 177; +pub const SYS_rt_sigqueueinfo: ::c_long = 178; +pub const SYS_rt_sigsuspend: ::c_long = 179; +pub const SYS_pread64: ::c_long = 180; +pub const SYS_pwrite64: ::c_long = 181; +pub const SYS_lchown16: ::c_long = 182; +pub const SYS_getcwd: ::c_long = 183; +pub const SYS_capget: ::c_long = 184; +pub const SYS_capset: ::c_long = 185; +pub const SYS_sigaltstack: ::c_long = 186; +pub const SYS_sendfile: ::c_long = 187; +pub const SYS_getpmsg: ::c_long = 188; +pub const SYS_putpmsg: ::c_long = 189; +pub const SYS_vfork: ::c_long = 190; +pub const SYS_getrlimit: ::c_long = 191; +pub const SYS_mmap2: ::c_long = 192; +pub const SYS_truncate64: ::c_long = 193; +pub const SYS_ftruncate64: ::c_long = 194; +pub const SYS_stat64: ::c_long = 195; +pub const SYS_lstat64: ::c_long = 196; +pub const SYS_fstat64: ::c_long = 197; +pub const SYS_chown: ::c_long = 198; +pub const SYS_getuid: ::c_long = 199; +pub const SYS_getgid: ::c_long = 200; +pub const SYS_geteuid: ::c_long = 201; +pub const SYS_getegid: ::c_long = 202; +pub const SYS_setreuid: ::c_long = 203; +pub const SYS_setregid: ::c_long = 204; +pub const SYS_getgroups: ::c_long = 205; +pub const SYS_setgroups: ::c_long = 206; +pub const SYS_fchown: ::c_long = 207; +pub const SYS_setresuid: ::c_long = 208; +pub const SYS_getresuid: ::c_long = 209; +pub const SYS_setresgid: ::c_long = 210; +pub const SYS_getresgid: ::c_long = 211; +pub const SYS_lchown: ::c_long = 212; +pub const SYS_setuid: ::c_long = 213; +pub const SYS_setgid: ::c_long = 214; +pub const SYS_setfsuid: ::c_long = 215; +pub const SYS_setfsgid: ::c_long = 216; +pub const SYS_pivot_root: ::c_long = 217; +pub const SYS_getdents64: ::c_long = 220; +pub const SYS_gettid: ::c_long = 221; +pub const SYS_tkill: ::c_long = 222; +pub const SYS_setxattr: ::c_long = 223; +pub const SYS_lsetxattr: ::c_long = 224; +pub const SYS_fsetxattr: ::c_long = 225; +pub const SYS_getxattr: ::c_long = 226; +pub const SYS_lgetxattr: ::c_long = 227; +pub const SYS_fgetxattr: ::c_long = 228; +pub const SYS_listxattr: ::c_long = 229; +pub const SYS_llistxattr: ::c_long = 230; +pub const SYS_flistxattr: ::c_long = 231; +pub const SYS_removexattr: ::c_long = 232; +pub const SYS_lremovexattr: ::c_long = 233; +pub const SYS_fremovexattr: ::c_long = 234; +pub const SYS_futex_time32: ::c_long = 235; +pub const SYS_sendfile64: ::c_long = 236; +pub const SYS_mincore: ::c_long = 237; +pub const SYS_madvise: ::c_long = 238; +pub const SYS_fcntl64: ::c_long = 239; +pub const SYS_readahead: ::c_long = 240; +pub const SYS_io_setup: ::c_long = 241; +pub const SYS_io_destroy: ::c_long = 242; +pub const SYS_io_getevents_time32: ::c_long = 243; +pub const SYS_io_submit: ::c_long = 244; +pub const SYS_io_cancel: ::c_long = 245; +pub const SYS_fadvise64: ::c_long = 246; +pub const SYS_exit_group: ::c_long = 247; +pub const SYS_lookup_dcookie: ::c_long = 248; +pub const SYS_epoll_create: ::c_long = 249; +pub const SYS_epoll_ctl: ::c_long = 250; +pub const SYS_epoll_wait: ::c_long = 251; +pub const SYS_remap_file_pages: ::c_long = 252; +pub const SYS_set_tid_address: ::c_long = 253; +pub const SYS_timer_create: ::c_long = 254; +pub const SYS_timer_settime32: ::c_long = 255; +pub const SYS_timer_gettime32: ::c_long = 256; +pub const SYS_timer_getoverrun: ::c_long = 257; +pub const SYS_timer_delete: ::c_long = 258; +pub const SYS_clock_settime32: ::c_long = 259; +pub const SYS_clock_gettime32: ::c_long = 260; +pub const SYS_clock_getres_time32: ::c_long = 261; +pub const SYS_clock_nanosleep_time32: ::c_long = 262; +pub const SYS_statfs64: ::c_long = 263; +pub const SYS_fstatfs64: ::c_long = 264; +pub const SYS_tgkill: ::c_long = 265; +pub const SYS_utimes_time32: ::c_long = 266; +pub const SYS_fadvise64_64: ::c_long = 267; +pub const SYS_mbind: ::c_long = 268; +pub const SYS_get_mempolicy: ::c_long = 269; +pub const SYS_set_mempolicy: ::c_long = 270; +pub const SYS_mq_open: ::c_long = 271; +pub const SYS_mq_unlink: ::c_long = 272; +pub const SYS_mq_timedsend_time32: ::c_long = 273; +pub const SYS_mq_timedreceive_time32: ::c_long = 274; +pub const SYS_mq_notify: ::c_long = 275; +pub const SYS_mq_getsetattr: ::c_long = 276; +pub const SYS_waitid: ::c_long = 277; +pub const SYS_add_key: ::c_long = 279; +pub const SYS_request_key: ::c_long = 280; +pub const SYS_keyctl: ::c_long = 281; +pub const SYS_ioprio_set: ::c_long = 282; +pub const SYS_ioprio_get: ::c_long = 283; +pub const SYS_inotify_init: ::c_long = 284; +pub const SYS_inotify_add_watch: ::c_long = 285; +pub const SYS_inotify_rm_watch: ::c_long = 286; +pub const SYS_migrate_pages: ::c_long = 287; +pub const SYS_openat: ::c_long = 288; +pub const SYS_mkdirat: ::c_long = 289; +pub const SYS_mknodat: ::c_long = 290; +pub const SYS_fchownat: ::c_long = 291; +pub const SYS_futimesat_time32: ::c_long = 292; +pub const SYS_fstatat64: ::c_long = 293; +pub const SYS_unlinkat: ::c_long = 294; +pub const SYS_renameat: ::c_long = 295; +pub const SYS_linkat: ::c_long = 296; +pub const SYS_symlinkat: ::c_long = 297; +pub const SYS_readlinkat: ::c_long = 298; +pub const SYS_fchmodat: ::c_long = 299; +pub const SYS_faccessat: ::c_long = 300; +pub const SYS_pselect6_time32: ::c_long = 301; +pub const SYS_ppoll_time32: ::c_long = 302; +pub const SYS_unshare: ::c_long = 303; +pub const SYS_set_robust_list: ::c_long = 304; +pub const SYS_get_robust_list: ::c_long = 305; +pub const SYS_splice: ::c_long = 306; +pub const SYS_sync_file_range: ::c_long = 307; +pub const SYS_tee: ::c_long = 308; +pub const SYS_vmsplice: ::c_long = 309; +pub const SYS_move_pages: ::c_long = 310; +pub const SYS_sched_setaffinity: ::c_long = 311; +pub const SYS_sched_getaffinity: ::c_long = 312; +pub const SYS_kexec_load: ::c_long = 313; +pub const SYS_getcpu: ::c_long = 314; +pub const SYS_epoll_pwait: ::c_long = 315; +pub const SYS_utimensat_time32: ::c_long = 316; +pub const SYS_signalfd: ::c_long = 317; +pub const SYS_timerfd_create: ::c_long = 318; +pub const SYS_eventfd: ::c_long = 319; +pub const SYS_fallocate: ::c_long = 320; +pub const SYS_timerfd_settime32: ::c_long = 321; +pub const SYS_timerfd_gettime32: ::c_long = 322; +pub const SYS_signalfd4: ::c_long = 323; +pub const SYS_eventfd2: ::c_long = 324; +pub const SYS_epoll_create1: ::c_long = 325; +pub const SYS_dup3: ::c_long = 326; +pub const SYS_pipe2: ::c_long = 327; +pub const SYS_inotify_init1: ::c_long = 328; +pub const SYS_preadv: ::c_long = 329; +pub const SYS_pwritev: ::c_long = 330; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 331; +pub const SYS_perf_event_open: ::c_long = 332; +pub const SYS_get_thread_area: ::c_long = 333; +pub const SYS_set_thread_area: ::c_long = 334; +pub const SYS_atomic_cmpxchg_32: ::c_long = 335; +pub const SYS_atomic_barrier: ::c_long = 336; +pub const SYS_fanotify_init: ::c_long = 337; +pub const SYS_fanotify_mark: ::c_long = 338; +pub const SYS_prlimit64: ::c_long = 339; +pub const SYS_name_to_handle_at: ::c_long = 340; +pub const SYS_open_by_handle_at: ::c_long = 341; +pub const SYS_clock_adjtime32: ::c_long = 342; +pub const SYS_syncfs: ::c_long = 343; +pub const SYS_setns: ::c_long = 344; +pub const SYS_process_vm_readv: ::c_long = 345; +pub const SYS_process_vm_writev: ::c_long = 346; +pub const SYS_kcmp: ::c_long = 347; +pub const SYS_finit_module: ::c_long = 348; +pub const SYS_sched_setattr: ::c_long = 349; +pub const SYS_sched_getattr: ::c_long = 350; +pub const SYS_renameat2: ::c_long = 351; +pub const SYS_getrandom: ::c_long = 352; +pub const SYS_memfd_create: ::c_long = 353; +pub const SYS_bpf: ::c_long = 354; +pub const SYS_execveat: ::c_long = 355; +pub const SYS_socket: ::c_long = 356; +pub const SYS_socketpair: ::c_long = 357; +pub const SYS_bind: ::c_long = 358; +pub const SYS_connect: ::c_long = 359; +pub const SYS_listen: ::c_long = 360; +pub const SYS_accept4: ::c_long = 361; +pub const SYS_getsockopt: ::c_long = 362; +pub const SYS_setsockopt: ::c_long = 363; +pub const SYS_getsockname: ::c_long = 364; +pub const SYS_getpeername: ::c_long = 365; +pub const SYS_sendto: ::c_long = 366; +pub const SYS_sendmsg: ::c_long = 367; +pub const SYS_recvfrom: ::c_long = 368; +pub const SYS_recvmsg: ::c_long = 369; +pub const SYS_shutdown: ::c_long = 370; +pub const SYS_recvmmsg_time32: ::c_long = 371; +pub const SYS_sendmmsg: ::c_long = 372; +pub const SYS_userfaultfd: ::c_long = 373; +pub const SYS_membarrier: ::c_long = 374; +pub const SYS_mlock2: ::c_long = 375; +pub const SYS_copy_file_range: ::c_long = 376; +pub const SYS_preadv2: ::c_long = 377; +pub const SYS_pwritev2: ::c_long = 378; +pub const SYS_statx: ::c_long = 379; +pub const SYS_seccomp: ::c_long = 380; +pub const SYS_pkey_mprotect: ::c_long = 381; +pub const SYS_pkey_alloc: ::c_long = 382; +pub const SYS_pkey_free: ::c_long = 383; +pub const SYS_rseq: ::c_long = 384; +pub const SYS_semget: ::c_long = 393; +pub const SYS_semctl: ::c_long = 394; +pub const SYS_shmget: ::c_long = 395; +pub const SYS_shmctl: ::c_long = 396; +pub const SYS_shmat: ::c_long = 397; +pub const SYS_shmdt: ::c_long = 398; +pub const SYS_msgget: ::c_long = 399; +pub const SYS_msgsnd: ::c_long = 400; +pub const SYS_msgrcv: ::c_long = 401; +pub const SYS_msgctl: ::c_long = 402; +pub const SYS_clock_gettime: ::c_long = 403; +pub const SYS_clock_settime: ::c_long = 404; +pub const SYS_clock_adjtime: ::c_long = 405; +pub const SYS_clock_getres: ::c_long = 406; +pub const SYS_clock_nanosleep: ::c_long = 407; +pub const SYS_timer_gettime: ::c_long = 408; +pub const SYS_timer_settime: ::c_long = 409; +pub const SYS_timerfd_gettime: ::c_long = 410; +pub const SYS_timerfd_settime: ::c_long = 411; +pub const SYS_utimensat: ::c_long = 412; +pub const SYS_pselect6: ::c_long = 413; +pub const SYS_ppoll: ::c_long = 414; +pub const SYS_io_pgetevents: ::c_long = 416; +pub const SYS_recvmmsg: ::c_long = 417; +pub const SYS_mq_timedsend: ::c_long = 418; +pub const SYS_mq_timedreceive: ::c_long = 419; +pub const SYS_semtimedop: ::c_long = 420; +pub const SYS_rt_sigtimedwait: ::c_long = 421; +pub const SYS_futex: ::c_long = 422; +pub const SYS_sched_rr_get_interval: ::c_long = 423; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/align.rs new file mode 100644 index 000000000..8c228ebab --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [f32; 4] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/mod.rs new file mode 100644 index 000000000..6a03f0ba8 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -0,0 +1,818 @@ +pub type c_char = i8; +pub type wchar_t = i32; + +s! { + pub struct stat64 { + pub st_dev: ::c_ulong, + st_pad1: [::c_long; 3], + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::c_ulong, + st_pad2: [::c_long; 2], + pub st_size: ::off64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + st_pad3: ::c_long, + pub st_blocks: ::blkcnt64_t, + st_pad5: [::c_long; 14], + } + + pub struct statfs { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_frsize: ::c_long, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_files: ::fsblkcnt_t, + pub f_ffree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::c_long, + f_spare: [::c_long; 6], + } + + pub struct statfs64 { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_frsize: ::c_long, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_bavail: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 5], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct sigaction { + pub sa_flags: ::c_int, + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_restorer: ::Option, + _resv: [::c_int; 1], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_code: ::c_int, + pub si_errno: ::c_int, + pub _pad: [::c_int; 29], + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_uint, + pub __seq: ::c_ushort, + __pad1: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused4: ::c_ulong, + __unused5: ::c_ulong + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + #[cfg(target_endian = "big")] + __glibc_reserved1: ::c_ulong, + pub msg_stime: ::time_t, + #[cfg(target_endian = "little")] + __glibc_reserved1: ::c_ulong, + #[cfg(target_endian = "big")] + __glibc_reserved2: ::c_ulong, + pub msg_rtime: ::time_t, + #[cfg(target_endian = "little")] + __glibc_reserved2: ::c_ulong, + #[cfg(target_endian = "big")] + __glibc_reserved3: ::c_ulong, + pub msg_ctime: ::time_t, + #[cfg(target_endian = "little")] + __glibc_reserved3: ::c_ulong, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __glibc_reserved4: ::c_ulong, + __glibc_reserved5: ::c_ulong, + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_sysid: ::c_long, + pub l_pid: ::pid_t, + pad: [::c_long; 4], + } +} + +pub const O_LARGEFILE: ::c_int = 0x2000; + +pub const SYS_syscall: ::c_long = 4000 + 0; +pub const SYS_exit: ::c_long = 4000 + 1; +pub const SYS_fork: ::c_long = 4000 + 2; +pub const SYS_read: ::c_long = 4000 + 3; +pub const SYS_write: ::c_long = 4000 + 4; +pub const SYS_open: ::c_long = 4000 + 5; +pub const SYS_close: ::c_long = 4000 + 6; +pub const SYS_waitpid: ::c_long = 4000 + 7; +pub const SYS_creat: ::c_long = 4000 + 8; +pub const SYS_link: ::c_long = 4000 + 9; +pub const SYS_unlink: ::c_long = 4000 + 10; +pub const SYS_execve: ::c_long = 4000 + 11; +pub const SYS_chdir: ::c_long = 4000 + 12; +pub const SYS_time: ::c_long = 4000 + 13; +pub const SYS_mknod: ::c_long = 4000 + 14; +pub const SYS_chmod: ::c_long = 4000 + 15; +pub const SYS_lchown: ::c_long = 4000 + 16; +pub const SYS_break: ::c_long = 4000 + 17; +pub const SYS_lseek: ::c_long = 4000 + 19; +pub const SYS_getpid: ::c_long = 4000 + 20; +pub const SYS_mount: ::c_long = 4000 + 21; +pub const SYS_umount: ::c_long = 4000 + 22; +pub const SYS_setuid: ::c_long = 4000 + 23; +pub const SYS_getuid: ::c_long = 4000 + 24; +pub const SYS_stime: ::c_long = 4000 + 25; +pub const SYS_ptrace: ::c_long = 4000 + 26; +pub const SYS_alarm: ::c_long = 4000 + 27; +pub const SYS_pause: ::c_long = 4000 + 29; +pub const SYS_utime: ::c_long = 4000 + 30; +pub const SYS_stty: ::c_long = 4000 + 31; +pub const SYS_gtty: ::c_long = 4000 + 32; +pub const SYS_access: ::c_long = 4000 + 33; +pub const SYS_nice: ::c_long = 4000 + 34; +pub const SYS_ftime: ::c_long = 4000 + 35; +pub const SYS_sync: ::c_long = 4000 + 36; +pub const SYS_kill: ::c_long = 4000 + 37; +pub const SYS_rename: ::c_long = 4000 + 38; +pub const SYS_mkdir: ::c_long = 4000 + 39; +pub const SYS_rmdir: ::c_long = 4000 + 40; +pub const SYS_dup: ::c_long = 4000 + 41; +pub const SYS_pipe: ::c_long = 4000 + 42; +pub const SYS_times: ::c_long = 4000 + 43; +pub const SYS_prof: ::c_long = 4000 + 44; +pub const SYS_brk: ::c_long = 4000 + 45; +pub const SYS_setgid: ::c_long = 4000 + 46; +pub const SYS_getgid: ::c_long = 4000 + 47; +pub const SYS_signal: ::c_long = 4000 + 48; +pub const SYS_geteuid: ::c_long = 4000 + 49; +pub const SYS_getegid: ::c_long = 4000 + 50; +pub const SYS_acct: ::c_long = 4000 + 51; +pub const SYS_umount2: ::c_long = 4000 + 52; +pub const SYS_lock: ::c_long = 4000 + 53; +pub const SYS_ioctl: ::c_long = 4000 + 54; +pub const SYS_fcntl: ::c_long = 4000 + 55; +pub const SYS_mpx: ::c_long = 4000 + 56; +pub const SYS_setpgid: ::c_long = 4000 + 57; +pub const SYS_ulimit: ::c_long = 4000 + 58; +pub const SYS_umask: ::c_long = 4000 + 60; +pub const SYS_chroot: ::c_long = 4000 + 61; +pub const SYS_ustat: ::c_long = 4000 + 62; +pub const SYS_dup2: ::c_long = 4000 + 63; +pub const SYS_getppid: ::c_long = 4000 + 64; +pub const SYS_getpgrp: ::c_long = 4000 + 65; +pub const SYS_setsid: ::c_long = 4000 + 66; +pub const SYS_sigaction: ::c_long = 4000 + 67; +pub const SYS_sgetmask: ::c_long = 4000 + 68; +pub const SYS_ssetmask: ::c_long = 4000 + 69; +pub const SYS_setreuid: ::c_long = 4000 + 70; +pub const SYS_setregid: ::c_long = 4000 + 71; +pub const SYS_sigsuspend: ::c_long = 4000 + 72; +pub const SYS_sigpending: ::c_long = 4000 + 73; +pub const SYS_sethostname: ::c_long = 4000 + 74; +pub const SYS_setrlimit: ::c_long = 4000 + 75; +pub const SYS_getrlimit: ::c_long = 4000 + 76; +pub const SYS_getrusage: ::c_long = 4000 + 77; +pub const SYS_gettimeofday: ::c_long = 4000 + 78; +pub const SYS_settimeofday: ::c_long = 4000 + 79; +pub const SYS_getgroups: ::c_long = 4000 + 80; +pub const SYS_setgroups: ::c_long = 4000 + 81; +pub const SYS_symlink: ::c_long = 4000 + 83; +pub const SYS_readlink: ::c_long = 4000 + 85; +pub const SYS_uselib: ::c_long = 4000 + 86; +pub const SYS_swapon: ::c_long = 4000 + 87; +pub const SYS_reboot: ::c_long = 4000 + 88; +pub const SYS_readdir: ::c_long = 4000 + 89; +pub const SYS_mmap: ::c_long = 4000 + 90; +pub const SYS_munmap: ::c_long = 4000 + 91; +pub const SYS_truncate: ::c_long = 4000 + 92; +pub const SYS_ftruncate: ::c_long = 4000 + 93; +pub const SYS_fchmod: ::c_long = 4000 + 94; +pub const SYS_fchown: ::c_long = 4000 + 95; +pub const SYS_getpriority: ::c_long = 4000 + 96; +pub const SYS_setpriority: ::c_long = 4000 + 97; +pub const SYS_profil: ::c_long = 4000 + 98; +pub const SYS_statfs: ::c_long = 4000 + 99; +pub const SYS_fstatfs: ::c_long = 4000 + 100; +pub const SYS_ioperm: ::c_long = 4000 + 101; +pub const SYS_socketcall: ::c_long = 4000 + 102; +pub const SYS_syslog: ::c_long = 4000 + 103; +pub const SYS_setitimer: ::c_long = 4000 + 104; +pub const SYS_getitimer: ::c_long = 4000 + 105; +pub const SYS_stat: ::c_long = 4000 + 106; +pub const SYS_lstat: ::c_long = 4000 + 107; +pub const SYS_fstat: ::c_long = 4000 + 108; +pub const SYS_iopl: ::c_long = 4000 + 110; +pub const SYS_vhangup: ::c_long = 4000 + 111; +pub const SYS_idle: ::c_long = 4000 + 112; +pub const SYS_vm86: ::c_long = 4000 + 113; +pub const SYS_wait4: ::c_long = 4000 + 114; +pub const SYS_swapoff: ::c_long = 4000 + 115; +pub const SYS_sysinfo: ::c_long = 4000 + 116; +pub const SYS_ipc: ::c_long = 4000 + 117; +pub const SYS_fsync: ::c_long = 4000 + 118; +pub const SYS_sigreturn: ::c_long = 4000 + 119; +pub const SYS_clone: ::c_long = 4000 + 120; +pub const SYS_setdomainname: ::c_long = 4000 + 121; +pub const SYS_uname: ::c_long = 4000 + 122; +pub const SYS_modify_ldt: ::c_long = 4000 + 123; +pub const SYS_adjtimex: ::c_long = 4000 + 124; +pub const SYS_mprotect: ::c_long = 4000 + 125; +pub const SYS_sigprocmask: ::c_long = 4000 + 126; +pub const SYS_create_module: ::c_long = 4000 + 127; +pub const SYS_init_module: ::c_long = 4000 + 128; +pub const SYS_delete_module: ::c_long = 4000 + 129; +pub const SYS_get_kernel_syms: ::c_long = 4000 + 130; +pub const SYS_quotactl: ::c_long = 4000 + 131; +pub const SYS_getpgid: ::c_long = 4000 + 132; +pub const SYS_fchdir: ::c_long = 4000 + 133; +pub const SYS_bdflush: ::c_long = 4000 + 134; +pub const SYS_sysfs: ::c_long = 4000 + 135; +pub const SYS_personality: ::c_long = 4000 + 136; +pub const SYS_afs_syscall: ::c_long = 4000 + 137; +pub const SYS_setfsuid: ::c_long = 4000 + 138; +pub const SYS_setfsgid: ::c_long = 4000 + 139; +pub const SYS__llseek: ::c_long = 4000 + 140; +pub const SYS_getdents: ::c_long = 4000 + 141; +pub const SYS__newselect: ::c_long = 4000 + 142; +pub const SYS_flock: ::c_long = 4000 + 143; +pub const SYS_msync: ::c_long = 4000 + 144; +pub const SYS_readv: ::c_long = 4000 + 145; +pub const SYS_writev: ::c_long = 4000 + 146; +pub const SYS_cacheflush: ::c_long = 4000 + 147; +pub const SYS_cachectl: ::c_long = 4000 + 148; +pub const SYS_sysmips: ::c_long = 4000 + 149; +pub const SYS_getsid: ::c_long = 4000 + 151; +pub const SYS_fdatasync: ::c_long = 4000 + 152; +pub const SYS__sysctl: ::c_long = 4000 + 153; +pub const SYS_mlock: ::c_long = 4000 + 154; +pub const SYS_munlock: ::c_long = 4000 + 155; +pub const SYS_mlockall: ::c_long = 4000 + 156; +pub const SYS_munlockall: ::c_long = 4000 + 157; +pub const SYS_sched_setparam: ::c_long = 4000 + 158; +pub const SYS_sched_getparam: ::c_long = 4000 + 159; +pub const SYS_sched_setscheduler: ::c_long = 4000 + 160; +pub const SYS_sched_getscheduler: ::c_long = 4000 + 161; +pub const SYS_sched_yield: ::c_long = 4000 + 162; +pub const SYS_sched_get_priority_max: ::c_long = 4000 + 163; +pub const SYS_sched_get_priority_min: ::c_long = 4000 + 164; +pub const SYS_sched_rr_get_interval: ::c_long = 4000 + 165; +pub const SYS_nanosleep: ::c_long = 4000 + 166; +pub const SYS_mremap: ::c_long = 4000 + 167; +pub const SYS_accept: ::c_long = 4000 + 168; +pub const SYS_bind: ::c_long = 4000 + 169; +pub const SYS_connect: ::c_long = 4000 + 170; +pub const SYS_getpeername: ::c_long = 4000 + 171; +pub const SYS_getsockname: ::c_long = 4000 + 172; +pub const SYS_getsockopt: ::c_long = 4000 + 173; +pub const SYS_listen: ::c_long = 4000 + 174; +pub const SYS_recv: ::c_long = 4000 + 175; +pub const SYS_recvfrom: ::c_long = 4000 + 176; +pub const SYS_recvmsg: ::c_long = 4000 + 177; +pub const SYS_send: ::c_long = 4000 + 178; +pub const SYS_sendmsg: ::c_long = 4000 + 179; +pub const SYS_sendto: ::c_long = 4000 + 180; +pub const SYS_setsockopt: ::c_long = 4000 + 181; +pub const SYS_shutdown: ::c_long = 4000 + 182; +pub const SYS_socket: ::c_long = 4000 + 183; +pub const SYS_socketpair: ::c_long = 4000 + 184; +pub const SYS_setresuid: ::c_long = 4000 + 185; +pub const SYS_getresuid: ::c_long = 4000 + 186; +pub const SYS_query_module: ::c_long = 4000 + 187; +pub const SYS_poll: ::c_long = 4000 + 188; +pub const SYS_nfsservctl: ::c_long = 4000 + 189; +pub const SYS_setresgid: ::c_long = 4000 + 190; +pub const SYS_getresgid: ::c_long = 4000 + 191; +pub const SYS_prctl: ::c_long = 4000 + 192; +pub const SYS_rt_sigreturn: ::c_long = 4000 + 193; +pub const SYS_rt_sigaction: ::c_long = 4000 + 194; +pub const SYS_rt_sigprocmask: ::c_long = 4000 + 195; +pub const SYS_rt_sigpending: ::c_long = 4000 + 196; +pub const SYS_rt_sigtimedwait: ::c_long = 4000 + 197; +pub const SYS_rt_sigqueueinfo: ::c_long = 4000 + 198; +pub const SYS_rt_sigsuspend: ::c_long = 4000 + 199; +pub const SYS_pread64: ::c_long = 4000 + 200; +pub const SYS_pwrite64: ::c_long = 4000 + 201; +pub const SYS_chown: ::c_long = 4000 + 202; +pub const SYS_getcwd: ::c_long = 4000 + 203; +pub const SYS_capget: ::c_long = 4000 + 204; +pub const SYS_capset: ::c_long = 4000 + 205; +pub const SYS_sigaltstack: ::c_long = 4000 + 206; +pub const SYS_sendfile: ::c_long = 4000 + 207; +pub const SYS_getpmsg: ::c_long = 4000 + 208; +pub const SYS_putpmsg: ::c_long = 4000 + 209; +pub const SYS_mmap2: ::c_long = 4000 + 210; +pub const SYS_truncate64: ::c_long = 4000 + 211; +pub const SYS_ftruncate64: ::c_long = 4000 + 212; +pub const SYS_stat64: ::c_long = 4000 + 213; +pub const SYS_lstat64: ::c_long = 4000 + 214; +pub const SYS_fstat64: ::c_long = 4000 + 215; +pub const SYS_pivot_root: ::c_long = 4000 + 216; +pub const SYS_mincore: ::c_long = 4000 + 217; +pub const SYS_madvise: ::c_long = 4000 + 218; +pub const SYS_getdents64: ::c_long = 4000 + 219; +pub const SYS_fcntl64: ::c_long = 4000 + 220; +pub const SYS_gettid: ::c_long = 4000 + 222; +pub const SYS_readahead: ::c_long = 4000 + 223; +pub const SYS_setxattr: ::c_long = 4000 + 224; +pub const SYS_lsetxattr: ::c_long = 4000 + 225; +pub const SYS_fsetxattr: ::c_long = 4000 + 226; +pub const SYS_getxattr: ::c_long = 4000 + 227; +pub const SYS_lgetxattr: ::c_long = 4000 + 228; +pub const SYS_fgetxattr: ::c_long = 4000 + 229; +pub const SYS_listxattr: ::c_long = 4000 + 230; +pub const SYS_llistxattr: ::c_long = 4000 + 231; +pub const SYS_flistxattr: ::c_long = 4000 + 232; +pub const SYS_removexattr: ::c_long = 4000 + 233; +pub const SYS_lremovexattr: ::c_long = 4000 + 234; +pub const SYS_fremovexattr: ::c_long = 4000 + 235; +pub const SYS_tkill: ::c_long = 4000 + 236; +pub const SYS_sendfile64: ::c_long = 4000 + 237; +pub const SYS_futex: ::c_long = 4000 + 238; +pub const SYS_sched_setaffinity: ::c_long = 4000 + 239; +pub const SYS_sched_getaffinity: ::c_long = 4000 + 240; +pub const SYS_io_setup: ::c_long = 4000 + 241; +pub const SYS_io_destroy: ::c_long = 4000 + 242; +pub const SYS_io_getevents: ::c_long = 4000 + 243; +pub const SYS_io_submit: ::c_long = 4000 + 244; +pub const SYS_io_cancel: ::c_long = 4000 + 245; +pub const SYS_exit_group: ::c_long = 4000 + 246; +pub const SYS_lookup_dcookie: ::c_long = 4000 + 247; +pub const SYS_epoll_create: ::c_long = 4000 + 248; +pub const SYS_epoll_ctl: ::c_long = 4000 + 249; +pub const SYS_epoll_wait: ::c_long = 4000 + 250; +pub const SYS_remap_file_pages: ::c_long = 4000 + 251; +pub const SYS_set_tid_address: ::c_long = 4000 + 252; +pub const SYS_restart_syscall: ::c_long = 4000 + 253; +pub const SYS_fadvise64: ::c_long = 4000 + 254; +pub const SYS_statfs64: ::c_long = 4000 + 255; +pub const SYS_fstatfs64: ::c_long = 4000 + 256; +pub const SYS_timer_create: ::c_long = 4000 + 257; +pub const SYS_timer_settime: ::c_long = 4000 + 258; +pub const SYS_timer_gettime: ::c_long = 4000 + 259; +pub const SYS_timer_getoverrun: ::c_long = 4000 + 260; +pub const SYS_timer_delete: ::c_long = 4000 + 261; +pub const SYS_clock_settime: ::c_long = 4000 + 262; +pub const SYS_clock_gettime: ::c_long = 4000 + 263; +pub const SYS_clock_getres: ::c_long = 4000 + 264; +pub const SYS_clock_nanosleep: ::c_long = 4000 + 265; +pub const SYS_tgkill: ::c_long = 4000 + 266; +pub const SYS_utimes: ::c_long = 4000 + 267; +pub const SYS_mbind: ::c_long = 4000 + 268; +pub const SYS_get_mempolicy: ::c_long = 4000 + 269; +pub const SYS_set_mempolicy: ::c_long = 4000 + 270; +pub const SYS_mq_open: ::c_long = 4000 + 271; +pub const SYS_mq_unlink: ::c_long = 4000 + 272; +pub const SYS_mq_timedsend: ::c_long = 4000 + 273; +pub const SYS_mq_timedreceive: ::c_long = 4000 + 274; +pub const SYS_mq_notify: ::c_long = 4000 + 275; +pub const SYS_mq_getsetattr: ::c_long = 4000 + 276; +pub const SYS_vserver: ::c_long = 4000 + 277; +pub const SYS_waitid: ::c_long = 4000 + 278; +/* pub const SYS_sys_setaltroot: ::c_long = 4000 + 279; */ +pub const SYS_add_key: ::c_long = 4000 + 280; +pub const SYS_request_key: ::c_long = 4000 + 281; +pub const SYS_keyctl: ::c_long = 4000 + 282; +pub const SYS_set_thread_area: ::c_long = 4000 + 283; +pub const SYS_inotify_init: ::c_long = 4000 + 284; +pub const SYS_inotify_add_watch: ::c_long = 4000 + 285; +pub const SYS_inotify_rm_watch: ::c_long = 4000 + 286; +pub const SYS_migrate_pages: ::c_long = 4000 + 287; +pub const SYS_openat: ::c_long = 4000 + 288; +pub const SYS_mkdirat: ::c_long = 4000 + 289; +pub const SYS_mknodat: ::c_long = 4000 + 290; +pub const SYS_fchownat: ::c_long = 4000 + 291; +pub const SYS_futimesat: ::c_long = 4000 + 292; +pub const SYS_fstatat64: ::c_long = 4000 + 293; +pub const SYS_unlinkat: ::c_long = 4000 + 294; +pub const SYS_renameat: ::c_long = 4000 + 295; +pub const SYS_linkat: ::c_long = 4000 + 296; +pub const SYS_symlinkat: ::c_long = 4000 + 297; +pub const SYS_readlinkat: ::c_long = 4000 + 298; +pub const SYS_fchmodat: ::c_long = 4000 + 299; +pub const SYS_faccessat: ::c_long = 4000 + 300; +pub const SYS_pselect6: ::c_long = 4000 + 301; +pub const SYS_ppoll: ::c_long = 4000 + 302; +pub const SYS_unshare: ::c_long = 4000 + 303; +pub const SYS_splice: ::c_long = 4000 + 304; +pub const SYS_sync_file_range: ::c_long = 4000 + 305; +pub const SYS_tee: ::c_long = 4000 + 306; +pub const SYS_vmsplice: ::c_long = 4000 + 307; +pub const SYS_move_pages: ::c_long = 4000 + 308; +pub const SYS_set_robust_list: ::c_long = 4000 + 309; +pub const SYS_get_robust_list: ::c_long = 4000 + 310; +pub const SYS_kexec_load: ::c_long = 4000 + 311; +pub const SYS_getcpu: ::c_long = 4000 + 312; +pub const SYS_epoll_pwait: ::c_long = 4000 + 313; +pub const SYS_ioprio_set: ::c_long = 4000 + 314; +pub const SYS_ioprio_get: ::c_long = 4000 + 315; +pub const SYS_utimensat: ::c_long = 4000 + 316; +pub const SYS_signalfd: ::c_long = 4000 + 317; +pub const SYS_timerfd: ::c_long = 4000 + 318; +pub const SYS_eventfd: ::c_long = 4000 + 319; +pub const SYS_fallocate: ::c_long = 4000 + 320; +pub const SYS_timerfd_create: ::c_long = 4000 + 321; +pub const SYS_timerfd_gettime: ::c_long = 4000 + 322; +pub const SYS_timerfd_settime: ::c_long = 4000 + 323; +pub const SYS_signalfd4: ::c_long = 4000 + 324; +pub const SYS_eventfd2: ::c_long = 4000 + 325; +pub const SYS_epoll_create1: ::c_long = 4000 + 326; +pub const SYS_dup3: ::c_long = 4000 + 327; +pub const SYS_pipe2: ::c_long = 4000 + 328; +pub const SYS_inotify_init1: ::c_long = 4000 + 329; +pub const SYS_preadv: ::c_long = 4000 + 330; +pub const SYS_pwritev: ::c_long = 4000 + 331; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 4000 + 332; +pub const SYS_perf_event_open: ::c_long = 4000 + 333; +pub const SYS_accept4: ::c_long = 4000 + 334; +pub const SYS_recvmmsg: ::c_long = 4000 + 335; +pub const SYS_fanotify_init: ::c_long = 4000 + 336; +pub const SYS_fanotify_mark: ::c_long = 4000 + 337; +pub const SYS_prlimit64: ::c_long = 4000 + 338; +pub const SYS_name_to_handle_at: ::c_long = 4000 + 339; +pub const SYS_open_by_handle_at: ::c_long = 4000 + 340; +pub const SYS_clock_adjtime: ::c_long = 4000 + 341; +pub const SYS_syncfs: ::c_long = 4000 + 342; +pub const SYS_sendmmsg: ::c_long = 4000 + 343; +pub const SYS_setns: ::c_long = 4000 + 344; +pub const SYS_process_vm_readv: ::c_long = 4000 + 345; +pub const SYS_process_vm_writev: ::c_long = 4000 + 346; +pub const SYS_kcmp: ::c_long = 4000 + 347; +pub const SYS_finit_module: ::c_long = 4000 + 348; +pub const SYS_sched_setattr: ::c_long = 4000 + 349; +pub const SYS_sched_getattr: ::c_long = 4000 + 350; +pub const SYS_renameat2: ::c_long = 4000 + 351; +pub const SYS_seccomp: ::c_long = 4000 + 352; +pub const SYS_getrandom: ::c_long = 4000 + 353; +pub const SYS_memfd_create: ::c_long = 4000 + 354; +pub const SYS_bpf: ::c_long = 4000 + 355; +pub const SYS_execveat: ::c_long = 4000 + 356; +pub const SYS_userfaultfd: ::c_long = 4000 + 357; +pub const SYS_membarrier: ::c_long = 4000 + 358; +pub const SYS_mlock2: ::c_long = 4000 + 359; +pub const SYS_copy_file_range: ::c_long = 4000 + 360; +pub const SYS_preadv2: ::c_long = 4000 + 361; +pub const SYS_pwritev2: ::c_long = 4000 + 362; +pub const SYS_pkey_mprotect: ::c_long = 4000 + 363; +pub const SYS_pkey_alloc: ::c_long = 4000 + 364; +pub const SYS_pkey_free: ::c_long = 4000 + 365; +pub const SYS_statx: ::c_long = 4000 + 366; +pub const SYS_rseq: ::c_long = 4000 + 367; +pub const SYS_pidfd_send_signal: ::c_long = 4000 + 424; +pub const SYS_io_uring_setup: ::c_long = 4000 + 425; +pub const SYS_io_uring_enter: ::c_long = 4000 + 426; +pub const SYS_io_uring_register: ::c_long = 4000 + 427; +pub const SYS_open_tree: ::c_long = 4000 + 428; +pub const SYS_move_mount: ::c_long = 4000 + 429; +pub const SYS_fsopen: ::c_long = 4000 + 430; +pub const SYS_fsconfig: ::c_long = 4000 + 431; +pub const SYS_fsmount: ::c_long = 4000 + 432; +pub const SYS_fspick: ::c_long = 4000 + 433; +pub const SYS_pidfd_open: ::c_long = 4000 + 434; +pub const SYS_clone3: ::c_long = 4000 + 435; +pub const SYS_close_range: ::c_long = 4000 + 436; +pub const SYS_openat2: ::c_long = 4000 + 437; +pub const SYS_pidfd_getfd: ::c_long = 4000 + 438; +pub const SYS_faccessat2: ::c_long = 4000 + 439; +pub const SYS_process_madvise: ::c_long = 4000 + 440; +pub const SYS_epoll_pwait2: ::c_long = 4000 + 441; +pub const SYS_mount_setattr: ::c_long = 4000 + 442; +pub const SYS_quotactl_fd: ::c_long = 4000 + 443; +pub const SYS_landlock_create_ruleset: ::c_long = 4000 + 444; +pub const SYS_landlock_add_rule: ::c_long = 4000 + 445; +pub const SYS_landlock_restrict_self: ::c_long = 4000 + 446; +pub const SYS_memfd_secret: ::c_long = 4000 + 447; +pub const SYS_process_mrelease: ::c_long = 4000 + 448; +pub const SYS_futex_waitv: ::c_long = 4000 + 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 4000 + 450; + +pub const O_DIRECT: ::c_int = 0x8000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; + +pub const O_APPEND: ::c_int = 8; +pub const O_CREAT: ::c_int = 256; +pub const O_EXCL: ::c_int = 1024; +pub const O_NOCTTY: ::c_int = 2048; +pub const O_NONBLOCK: ::c_int = 128; +pub const O_SYNC: ::c_int = 0x4010; +pub const O_RSYNC: ::c_int = 0x4010; +pub const O_DSYNC: ::c_int = 0x10; +pub const O_FSYNC: ::c_int = 0x4010; +pub const O_ASYNC: ::c_int = 0x1000; +pub const O_NDELAY: ::c_int = 0x80; + +pub const EDEADLK: ::c_int = 45; +pub const ENAMETOOLONG: ::c_int = 78; +pub const ENOLCK: ::c_int = 46; +pub const ENOSYS: ::c_int = 89; +pub const ENOTEMPTY: ::c_int = 93; +pub const ELOOP: ::c_int = 90; +pub const ENOMSG: ::c_int = 35; +pub const EIDRM: ::c_int = 36; +pub const ECHRNG: ::c_int = 37; +pub const EL2NSYNC: ::c_int = 38; +pub const EL3HLT: ::c_int = 39; +pub const EL3RST: ::c_int = 40; +pub const ELNRNG: ::c_int = 41; +pub const EUNATCH: ::c_int = 42; +pub const ENOCSI: ::c_int = 43; +pub const EL2HLT: ::c_int = 44; +pub const EBADE: ::c_int = 50; +pub const EBADR: ::c_int = 51; +pub const EXFULL: ::c_int = 52; +pub const ENOANO: ::c_int = 53; +pub const EBADRQC: ::c_int = 54; +pub const EBADSLT: ::c_int = 55; +pub const EDEADLOCK: ::c_int = 56; +pub const EMULTIHOP: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 79; +pub const ENOTUNIQ: ::c_int = 80; +pub const EBADFD: ::c_int = 81; +pub const EBADMSG: ::c_int = 77; +pub const EREMCHG: ::c_int = 82; +pub const ELIBACC: ::c_int = 83; +pub const ELIBBAD: ::c_int = 84; +pub const ELIBSCN: ::c_int = 85; +pub const ELIBMAX: ::c_int = 86; +pub const ELIBEXEC: ::c_int = 87; +pub const EILSEQ: ::c_int = 88; +pub const ERESTART: ::c_int = 91; +pub const ESTRPIPE: ::c_int = 92; +pub const EUSERS: ::c_int = 94; +pub const ENOTSOCK: ::c_int = 95; +pub const EDESTADDRREQ: ::c_int = 96; +pub const EMSGSIZE: ::c_int = 97; +pub const EPROTOTYPE: ::c_int = 98; +pub const ENOPROTOOPT: ::c_int = 99; +pub const EPROTONOSUPPORT: ::c_int = 120; +pub const ESOCKTNOSUPPORT: ::c_int = 121; +pub const EOPNOTSUPP: ::c_int = 122; +pub const EPFNOSUPPORT: ::c_int = 123; +pub const EAFNOSUPPORT: ::c_int = 124; +pub const EADDRINUSE: ::c_int = 125; +pub const EADDRNOTAVAIL: ::c_int = 126; +pub const ENETDOWN: ::c_int = 127; +pub const ENETUNREACH: ::c_int = 128; +pub const ENETRESET: ::c_int = 129; +pub const ECONNABORTED: ::c_int = 130; +pub const ECONNRESET: ::c_int = 131; +pub const ENOBUFS: ::c_int = 132; +pub const EISCONN: ::c_int = 133; +pub const ENOTCONN: ::c_int = 134; +pub const ESHUTDOWN: ::c_int = 143; +pub const ETOOMANYREFS: ::c_int = 144; +pub const ETIMEDOUT: ::c_int = 145; +pub const ECONNREFUSED: ::c_int = 146; +pub const EHOSTDOWN: ::c_int = 147; +pub const EHOSTUNREACH: ::c_int = 148; +pub const EALREADY: ::c_int = 149; +pub const EINPROGRESS: ::c_int = 150; +pub const ESTALE: ::c_int = 151; +pub const EUCLEAN: ::c_int = 135; +pub const ENOTNAM: ::c_int = 137; +pub const ENAVAIL: ::c_int = 138; +pub const EISNAM: ::c_int = 139; +pub const EREMOTEIO: ::c_int = 140; +pub const EDQUOT: ::c_int = 1133; +pub const ENOMEDIUM: ::c_int = 159; +pub const EMEDIUMTYPE: ::c_int = 160; +pub const ECANCELED: ::c_int = 158; +pub const ENOKEY: ::c_int = 161; +pub const EKEYEXPIRED: ::c_int = 162; +pub const EKEYREVOKED: ::c_int = 163; +pub const EKEYREJECTED: ::c_int = 164; +pub const EOWNERDEAD: ::c_int = 165; +pub const ENOTRECOVERABLE: ::c_int = 166; +pub const ERFKILL: ::c_int = 167; + +pub const MAP_NORESERVE: ::c_int = 0x400; +pub const MAP_ANON: ::c_int = 0x800; +pub const MAP_ANONYMOUS: ::c_int = 0x800; +pub const MAP_GROWSDOWN: ::c_int = 0x1000; +pub const MAP_DENYWRITE: ::c_int = 0x2000; +pub const MAP_EXECUTABLE: ::c_int = 0x4000; +pub const MAP_LOCKED: ::c_int = 0x8000; +pub const MAP_POPULATE: ::c_int = 0x10000; +pub const MAP_NONBLOCK: ::c_int = 0x20000; +pub const MAP_STACK: ::c_int = 0x40000; + +pub const SOCK_STREAM: ::c_int = 2; +pub const SOCK_DGRAM: ::c_int = 1; + +pub const SA_SIGINFO: ::c_int = 0x00000008; +pub const SA_NOCLDWAIT: ::c_int = 0x00010000; + +pub const SIGCHLD: ::c_int = 18; +pub const SIGBUS: ::c_int = 10; +pub const SIGTTIN: ::c_int = 26; +pub const SIGTTOU: ::c_int = 27; +pub const SIGXCPU: ::c_int = 30; +pub const SIGXFSZ: ::c_int = 31; +pub const SIGVTALRM: ::c_int = 28; +pub const SIGPROF: ::c_int = 29; +pub const SIGWINCH: ::c_int = 20; +pub const SIGUSR1: ::c_int = 16; +pub const SIGUSR2: ::c_int = 17; +pub const SIGCONT: ::c_int = 25; +pub const SIGSTOP: ::c_int = 23; +pub const SIGTSTP: ::c_int = 24; +pub const SIGURG: ::c_int = 21; +pub const SIGIO: ::c_int = 22; +pub const SIGSYS: ::c_int = 12; +pub const SIGPOLL: ::c_int = 22; +pub const SIGPWR: ::c_int = 19; +pub const SIG_SETMASK: ::c_int = 3; +pub const SIG_BLOCK: ::c_int = 0x1; +pub const SIG_UNBLOCK: ::c_int = 0x2; + +pub const POLLWRNORM: ::c_short = 0x004; +pub const POLLWRBAND: ::c_short = 0x100; + +pub const VEOF: usize = 16; +pub const VEOL: usize = 17; +pub const VEOL2: usize = 6; +pub const VMIN: usize = 4; +pub const IEXTEN: ::tcflag_t = 0x00000100; +pub const TOSTOP: ::tcflag_t = 0x00008000; +pub const FLUSHO: ::tcflag_t = 0x00002000; +pub const EXTPROC: ::tcflag_t = 0o200000; +pub const TCSANOW: ::c_int = 0x540e; +pub const TCSADRAIN: ::c_int = 0x540f; +pub const TCSAFLUSH: ::c_int = 0x5410; + +pub const PTRACE_GETFPXREGS: ::c_uint = 18; +pub const PTRACE_SETFPXREGS: ::c_uint = 19; + +pub const MAP_HUGETLB: ::c_int = 0x080000; + +pub const EFD_NONBLOCK: ::c_int = 0x80; + +pub const F_GETLK: ::c_int = 14; +pub const F_GETOWN: ::c_int = 23; +pub const F_SETOWN: ::c_int = 24; + +pub const SFD_NONBLOCK: ::c_int = 0x80; + +pub const RTLD_DEEPBIND: ::c_int = 0x10; +pub const RTLD_GLOBAL: ::c_int = 0x4; +pub const RTLD_NOLOAD: ::c_int = 0x8; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const EHWPOISON: ::c_int = 168; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mod.rs new file mode 100644 index 000000000..66d1d016f --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -0,0 +1,358 @@ +//! 32-bit specific definitions for linux-like values + +use pthread_mutex_t; + +pub type c_long = i32; +pub type c_ulong = u32; +pub type clock_t = i32; + +pub type shmatt_t = ::c_ulong; +pub type msgqnum_t = ::c_ulong; +pub type msglen_t = ::c_ulong; +pub type nlink_t = u32; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; +pub type __fsword_t = i32; +pub type fsblkcnt64_t = u64; +pub type fsfilcnt64_t = u64; +pub type __syscall_ulong_t = ::c_ulong; + +cfg_if! { + if #[cfg(target_arch = "riscv32")] { + pub type time_t = i64; + pub type suseconds_t = i64; + pub type ino_t = u64; + pub type off_t = i64; + pub type blkcnt_t = i64; + pub type fsblkcnt_t = u64; + pub type fsfilcnt_t = u64; + pub type rlim_t = u64; + pub type blksize_t = i64; + } else { + pub type time_t = i32; + pub type suseconds_t = i32; + pub type ino_t = u32; + pub type off_t = i32; + pub type blkcnt_t = i32; + pub type fsblkcnt_t = ::c_ulong; + pub type fsfilcnt_t = ::c_ulong; + pub type rlim_t = c_ulong; + pub type blksize_t = i32; + } +} + +s! { + pub struct stat { + #[cfg(not(target_arch = "mips"))] + pub st_dev: ::dev_t, + #[cfg(target_arch = "mips")] + pub st_dev: ::c_ulong, + + #[cfg(not(target_arch = "mips"))] + __pad1: ::c_short, + #[cfg(target_arch = "mips")] + st_pad1: [::c_long; 3], + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + #[cfg(not(target_arch = "mips"))] + pub st_rdev: ::dev_t, + #[cfg(target_arch = "mips")] + pub st_rdev: ::c_ulong, + #[cfg(not(target_arch = "mips"))] + __pad2: ::c_short, + #[cfg(target_arch = "mips")] + st_pad2: [::c_long; 2], + pub st_size: ::off_t, + #[cfg(target_arch = "mips")] + st_pad3: ::c_long, + #[cfg(not(target_arch = "mips"))] + pub st_blksize: ::blksize_t, + #[cfg(not(target_arch = "mips"))] + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + #[cfg(not(target_arch = "mips"))] + __unused4: ::c_long, + #[cfg(not(target_arch = "mips"))] + __unused5: ::c_long, + #[cfg(target_arch = "mips")] + pub st_blksize: ::blksize_t, + #[cfg(target_arch = "mips")] + pub st_blocks: ::blkcnt_t, + #[cfg(target_arch = "mips")] + st_pad5: [::c_long; 14], + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct pthread_attr_t { + __size: [u32; 9] + } + + pub struct sigset_t { + __val: [::c_ulong; 32], + } + + pub struct sysinfo { + pub uptime: ::c_long, + pub loads: [::c_ulong; 3], + pub totalram: ::c_ulong, + pub freeram: ::c_ulong, + pub sharedram: ::c_ulong, + pub bufferram: ::c_ulong, + pub totalswap: ::c_ulong, + pub freeswap: ::c_ulong, + pub procs: ::c_ushort, + #[deprecated( + since = "0.2.58", + note = "This padding field might become private in the future" + )] + pub pad: ::c_ushort, + pub totalhigh: ::c_ulong, + pub freehigh: ::c_ulong, + pub mem_unit: ::c_uint, + pub _f: [::c_char; 8], + } + + pub struct semid_ds { + pub sem_perm: ipc_perm, + #[cfg(target_arch = "powerpc")] + __reserved: ::__syscall_ulong_t, + pub sem_otime: ::time_t, + #[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))] + __reserved: ::__syscall_ulong_t, + #[cfg(target_arch = "powerpc")] + __reserved2: ::__syscall_ulong_t, + pub sem_ctime: ::time_t, + #[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))] + __reserved2: ::__syscall_ulong_t, + pub sem_nsems: ::__syscall_ulong_t, + __glibc_reserved3: ::__syscall_ulong_t, + __glibc_reserved4: ::__syscall_ulong_t, + } +} + +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; + +cfg_if! { + if #[cfg(target_arch = "sparc")] { + pub const O_NOATIME: ::c_int = 0x200000; + pub const O_PATH: ::c_int = 0x1000000; + pub const O_TMPFILE: ::c_int = 0x2000000 | O_DIRECTORY; + + pub const SA_ONSTACK: ::c_int = 1; + + pub const PTRACE_DETACH: ::c_uint = 11; + + pub const F_SETLK: ::c_int = 8; + pub const F_SETLKW: ::c_int = 9; + + pub const F_RDLCK: ::c_int = 1; + pub const F_WRLCK: ::c_int = 2; + pub const F_UNLCK: ::c_int = 3; + + pub const SFD_CLOEXEC: ::c_int = 0x400000; + + pub const NCCS: usize = 17; + + pub const O_TRUNC: ::c_int = 0x400; + pub const O_CLOEXEC: ::c_int = 0x400000; + + pub const EBFONT: ::c_int = 109; + pub const ENOSTR: ::c_int = 72; + pub const ENODATA: ::c_int = 111; + pub const ETIME: ::c_int = 73; + pub const ENOSR: ::c_int = 74; + pub const ENONET: ::c_int = 80; + pub const ENOPKG: ::c_int = 113; + pub const EREMOTE: ::c_int = 71; + pub const ENOLINK: ::c_int = 82; + pub const EADV: ::c_int = 83; + pub const ESRMNT: ::c_int = 84; + pub const ECOMM: ::c_int = 85; + pub const EPROTO: ::c_int = 86; + pub const EDOTDOT: ::c_int = 88; + + pub const SA_NODEFER: ::c_int = 0x20; + pub const SA_RESETHAND: ::c_int = 0x4; + pub const SA_RESTART: ::c_int = 0x2; + pub const SA_NOCLDSTOP: ::c_int = 0x00000008; + + pub const EPOLL_CLOEXEC: ::c_int = 0x400000; + + pub const EFD_CLOEXEC: ::c_int = 0x400000; + } else { + pub const O_NOATIME: ::c_int = 0o1000000; + pub const O_PATH: ::c_int = 0o10000000; + pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; + + pub const SA_ONSTACK: ::c_int = 0x08000000; + + pub const PTRACE_DETACH: ::c_uint = 17; + + pub const F_SETLK: ::c_int = 6; + pub const F_SETLKW: ::c_int = 7; + + pub const F_RDLCK: ::c_int = 0; + pub const F_WRLCK: ::c_int = 1; + pub const F_UNLCK: ::c_int = 2; + + pub const SFD_CLOEXEC: ::c_int = 0x080000; + + pub const NCCS: usize = 32; + + pub const O_TRUNC: ::c_int = 512; + pub const O_CLOEXEC: ::c_int = 0x80000; + pub const EBFONT: ::c_int = 59; + pub const ENOSTR: ::c_int = 60; + pub const ENODATA: ::c_int = 61; + pub const ETIME: ::c_int = 62; + pub const ENOSR: ::c_int = 63; + pub const ENONET: ::c_int = 64; + pub const ENOPKG: ::c_int = 65; + pub const EREMOTE: ::c_int = 66; + pub const ENOLINK: ::c_int = 67; + pub const EADV: ::c_int = 68; + pub const ESRMNT: ::c_int = 69; + pub const ECOMM: ::c_int = 70; + pub const EPROTO: ::c_int = 71; + pub const EDOTDOT: ::c_int = 73; + + pub const SA_NODEFER: ::c_int = 0x40000000; + pub const SA_RESETHAND: ::c_int = 0x80000000; + pub const SA_RESTART: ::c_int = 0x10000000; + pub const SA_NOCLDSTOP: ::c_int = 0x00000001; + + pub const EPOLL_CLOEXEC: ::c_int = 0x80000; + + pub const EFD_CLOEXEC: ::c_int = 0x80000; + } +} + +align_const! { + #[cfg(target_endian = "little")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, + 0, 0, 0, + ], + }; +} + +pub const PTRACE_GETFPREGS: ::c_uint = 14; +pub const PTRACE_SETFPREGS: ::c_uint = 15; +pub const PTRACE_GETREGS: ::c_uint = 12; +pub const PTRACE_SETREGS: ::c_uint = 13; + +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(target_arch = "x86")] { + mod x86; + pub use self::x86::*; + } else if #[cfg(target_arch = "arm")] { + mod arm; + pub use self::arm::*; + } else if #[cfg(target_arch = "mips")] { + mod mips; + pub use self::mips::*; + } else if #[cfg(target_arch = "m68k")] { + mod m68k; + pub use self::m68k::*; + } else if #[cfg(target_arch = "powerpc")] { + mod powerpc; + pub use self::powerpc::*; + } else if #[cfg(target_arch = "sparc")] { + mod sparc; + pub use self::sparc::*; + } else if #[cfg(target_arch = "riscv32")] { + mod riscv32; + pub use self::riscv32::*; + } else { + // Unknown target_arch + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/powerpc.rs new file mode 100644 index 000000000..e70b216bf --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -0,0 +1,824 @@ +pub type c_char = u8; +pub type wchar_t = i32; + +s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct statfs { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct ipc_perm { + __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + __seq: u32, + __pad1: u32, + __glibc_reserved1: u64, + __glibc_reserved2: u64, + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: ::c_ushort, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __glibc_reserved4: ::c_ulong, + __glibc_reserved5: ::c_ulong, + } + + pub struct statfs64 { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + pub f_spare: [::__fsword_t; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + __glibc_reserved1: ::c_uint, + pub shm_atime: ::time_t, + __glibc_reserved2: ::c_uint, + pub shm_dtime: ::time_t, + __glibc_reserved3: ::c_uint, + pub shm_ctime: ::time_t, + __glibc_reserved4: ::c_uint, + pub shm_segsz: ::size_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __glibc_reserved5: ::c_ulong, + __glibc_reserved6: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + __glibc_reserved1: ::c_uint, + pub msg_stime: ::time_t, + __glibc_reserved2: ::c_uint, + pub msg_rtime: ::time_t, + __glibc_reserved3: ::c_uint, + pub msg_ctime: ::time_t, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __glibc_reserved4: ::c_ulong, + __glibc_reserved5: ::c_ulong, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } +} + +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const O_DIRECT: ::c_int = 0x20000; +pub const O_DIRECTORY: ::c_int = 0x4000; +pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const O_LARGEFILE: ::c_int = 0o200000; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 0x101000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x800; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_LOCKED: ::c_int = 0x00080; +pub const MAP_NORESERVE: ::c_int = 0x00040; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const EDEADLOCK: ::c_int = 58; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const MCL_CURRENT: ::c_int = 0x2000; +pub const MCL_FUTURE: ::c_int = 0x4000; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; + +pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const SFD_NONBLOCK: ::c_int = 0x0800; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] +pub const SIGUNUSED: ::c_int = 31; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGSTKSZ: ::size_t = 0x4000; +pub const MINSIGSTKSZ: ::size_t = 4096; +pub const CBAUD: ::tcflag_t = 0xff; +pub const TAB1: ::tcflag_t = 0x400; +pub const TAB2: ::tcflag_t = 0x800; +pub const TAB3: ::tcflag_t = 0xc00; +pub const CR1: ::tcflag_t = 0x1000; +pub const CR2: ::tcflag_t = 0x2000; +pub const CR3: ::tcflag_t = 0x3000; +pub const FF1: ::tcflag_t = 0x4000; +pub const BS1: ::tcflag_t = 0x8000; +pub const VT1: ::tcflag_t = 0x10000; +pub const VWERASE: usize = 0xa; +pub const VREPRINT: usize = 0xb; +pub const VSUSP: usize = 0xc; +pub const VSTART: usize = 0xd; +pub const VSTOP: usize = 0xe; +pub const VDISCARD: usize = 0x10; +pub const VTIME: usize = 0x7; +pub const IXON: ::tcflag_t = 0x200; +pub const IXOFF: ::tcflag_t = 0x400; +pub const ONLCR: ::tcflag_t = 0x2; +pub const CSIZE: ::tcflag_t = 0x300; +pub const CS6: ::tcflag_t = 0x100; +pub const CS7: ::tcflag_t = 0x200; +pub const CS8: ::tcflag_t = 0x300; +pub const CSTOPB: ::tcflag_t = 0x400; +pub const CREAD: ::tcflag_t = 0x800; +pub const PARENB: ::tcflag_t = 0x1000; +pub const PARODD: ::tcflag_t = 0x2000; +pub const HUPCL: ::tcflag_t = 0x4000; +pub const CLOCAL: ::tcflag_t = 0x8000; +pub const ECHOKE: ::tcflag_t = 0x1; +pub const ECHOE: ::tcflag_t = 0x2; +pub const ECHOK: ::tcflag_t = 0x4; +pub const ECHONL: ::tcflag_t = 0x10; +pub const ECHOPRT: ::tcflag_t = 0x20; +pub const ECHOCTL: ::tcflag_t = 0x40; +pub const ISIG: ::tcflag_t = 0x80; +pub const ICANON: ::tcflag_t = 0x100; +pub const PENDIN: ::tcflag_t = 0x20000000; +pub const NOFLSH: ::tcflag_t = 0x80000000; +pub const VSWTC: usize = 9; +pub const OLCUC: ::tcflag_t = 0o000004; +pub const NLDLY: ::tcflag_t = 0o001400; +pub const CRDLY: ::tcflag_t = 0o030000; +pub const TABDLY: ::tcflag_t = 0o006000; +pub const BSDLY: ::tcflag_t = 0o100000; +pub const FFDLY: ::tcflag_t = 0o040000; +pub const VTDLY: ::tcflag_t = 0o200000; +pub const XTABS: ::tcflag_t = 0o006000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const CBAUDEX: ::speed_t = 0o000020; +pub const B57600: ::speed_t = 0o0020; +pub const B115200: ::speed_t = 0o0021; +pub const B230400: ::speed_t = 0o0022; +pub const B460800: ::speed_t = 0o0023; +pub const B500000: ::speed_t = 0o0024; +pub const B576000: ::speed_t = 0o0025; +pub const B921600: ::speed_t = 0o0026; +pub const B1000000: ::speed_t = 0o0027; +pub const B1152000: ::speed_t = 0o0030; +pub const B1500000: ::speed_t = 0o0031; +pub const B2000000: ::speed_t = 0o0032; +pub const B2500000: ::speed_t = 0o0033; +pub const B3000000: ::speed_t = 0o0034; +pub const B3500000: ::speed_t = 0o0035; +pub const B4000000: ::speed_t = 0o0036; + +pub const VEOL: usize = 6; +pub const VEOL2: usize = 8; +pub const VMIN: usize = 5; +pub const IEXTEN: ::tcflag_t = 0x400; +pub const TOSTOP: ::tcflag_t = 0x400000; +pub const FLUSHO: ::tcflag_t = 0x800000; +pub const EXTPROC: ::tcflag_t = 0x10000000; + +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_waitpid: ::c_long = 7; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_time: ::c_long = 13; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_break: ::c_long = 17; +pub const SYS_oldstat: ::c_long = 18; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_umount: ::c_long = 22; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_stime: ::c_long = 25; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_alarm: ::c_long = 27; +pub const SYS_oldfstat: ::c_long = 28; +pub const SYS_pause: ::c_long = 29; +pub const SYS_utime: ::c_long = 30; +pub const SYS_stty: ::c_long = 31; +pub const SYS_gtty: ::c_long = 32; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_ftime: ::c_long = 35; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_prof: ::c_long = 44; +pub const SYS_brk: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_signal: ::c_long = 48; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_lock: ::c_long = 53; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_mpx: ::c_long = 56; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_ulimit: ::c_long = 58; +pub const SYS_oldolduname: ::c_long = 59; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_sgetmask: ::c_long = 68; +pub const SYS_ssetmask: ::c_long = 69; +pub const SYS_setreuid: ::c_long = 70; +pub const SYS_setregid: ::c_long = 71; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrlimit: ::c_long = 76; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_getgroups: ::c_long = 80; +pub const SYS_setgroups: ::c_long = 81; +pub const SYS_select: ::c_long = 82; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_oldlstat: ::c_long = 84; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_readdir: ::c_long = 89; +pub const SYS_mmap: ::c_long = 90; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_fchown: ::c_long = 95; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_profil: ::c_long = 98; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_ioperm: ::c_long = 101; +pub const SYS_socketcall: ::c_long = 102; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_olduname: ::c_long = 109; +pub const SYS_iopl: ::c_long = 110; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_idle: ::c_long = 112; +pub const SYS_vm86: ::c_long = 113; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_ipc: ::c_long = 117; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_modify_ldt: ::c_long = 123; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_create_module: ::c_long = 127; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_get_kernel_syms: ::c_long = 130; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ +pub const SYS_setfsuid: ::c_long = 138; +pub const SYS_setfsgid: ::c_long = 139; +pub const SYS__llseek: ::c_long = 140; +pub const SYS_getdents: ::c_long = 141; +pub const SYS__newselect: ::c_long = 142; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_setresuid: ::c_long = 164; +pub const SYS_getresuid: ::c_long = 165; +pub const SYS_query_module: ::c_long = 166; +pub const SYS_poll: ::c_long = 167; +pub const SYS_nfsservctl: ::c_long = 168; +pub const SYS_setresgid: ::c_long = 169; +pub const SYS_getresgid: ::c_long = 170; +pub const SYS_prctl: ::c_long = 171; +pub const SYS_rt_sigreturn: ::c_long = 172; +pub const SYS_rt_sigaction: ::c_long = 173; +pub const SYS_rt_sigprocmask: ::c_long = 174; +pub const SYS_rt_sigpending: ::c_long = 175; +pub const SYS_rt_sigtimedwait: ::c_long = 176; +pub const SYS_rt_sigqueueinfo: ::c_long = 177; +pub const SYS_rt_sigsuspend: ::c_long = 178; +pub const SYS_pread64: ::c_long = 179; +pub const SYS_pwrite64: ::c_long = 180; +pub const SYS_chown: ::c_long = 181; +pub const SYS_getcwd: ::c_long = 182; +pub const SYS_capget: ::c_long = 183; +pub const SYS_capset: ::c_long = 184; +pub const SYS_sigaltstack: ::c_long = 185; +pub const SYS_sendfile: ::c_long = 186; +pub const SYS_getpmsg: ::c_long = 187; /* some people actually want streams */ +pub const SYS_putpmsg: ::c_long = 188; /* some people actually want streams */ +pub const SYS_vfork: ::c_long = 189; +pub const SYS_ugetrlimit: ::c_long = 190; /* SuS compliant getrlimit */ +pub const SYS_readahead: ::c_long = 191; +pub const SYS_mmap2: ::c_long = 192; +pub const SYS_truncate64: ::c_long = 193; +pub const SYS_ftruncate64: ::c_long = 194; +pub const SYS_stat64: ::c_long = 195; +pub const SYS_lstat64: ::c_long = 196; +pub const SYS_fstat64: ::c_long = 197; +pub const SYS_pciconfig_read: ::c_long = 198; +pub const SYS_pciconfig_write: ::c_long = 199; +pub const SYS_pciconfig_iobase: ::c_long = 200; +pub const SYS_multiplexer: ::c_long = 201; +pub const SYS_getdents64: ::c_long = 202; +pub const SYS_pivot_root: ::c_long = 203; +pub const SYS_fcntl64: ::c_long = 204; +pub const SYS_madvise: ::c_long = 205; +pub const SYS_mincore: ::c_long = 206; +pub const SYS_gettid: ::c_long = 207; +pub const SYS_tkill: ::c_long = 208; +pub const SYS_setxattr: ::c_long = 209; +pub const SYS_lsetxattr: ::c_long = 210; +pub const SYS_fsetxattr: ::c_long = 211; +pub const SYS_getxattr: ::c_long = 212; +pub const SYS_lgetxattr: ::c_long = 213; +pub const SYS_fgetxattr: ::c_long = 214; +pub const SYS_listxattr: ::c_long = 215; +pub const SYS_llistxattr: ::c_long = 216; +pub const SYS_flistxattr: ::c_long = 217; +pub const SYS_removexattr: ::c_long = 218; +pub const SYS_lremovexattr: ::c_long = 219; +pub const SYS_fremovexattr: ::c_long = 220; +pub const SYS_futex: ::c_long = 221; +pub const SYS_sched_setaffinity: ::c_long = 222; +pub const SYS_sched_getaffinity: ::c_long = 223; +pub const SYS_tuxcall: ::c_long = 225; +pub const SYS_sendfile64: ::c_long = 226; +pub const SYS_io_setup: ::c_long = 227; +pub const SYS_io_destroy: ::c_long = 228; +pub const SYS_io_getevents: ::c_long = 229; +pub const SYS_io_submit: ::c_long = 230; +pub const SYS_io_cancel: ::c_long = 231; +pub const SYS_set_tid_address: ::c_long = 232; +pub const SYS_fadvise64: ::c_long = 233; +pub const SYS_exit_group: ::c_long = 234; +pub const SYS_lookup_dcookie: ::c_long = 235; +pub const SYS_epoll_create: ::c_long = 236; +pub const SYS_epoll_ctl: ::c_long = 237; +pub const SYS_epoll_wait: ::c_long = 238; +pub const SYS_remap_file_pages: ::c_long = 239; +pub const SYS_timer_create: ::c_long = 240; +pub const SYS_timer_settime: ::c_long = 241; +pub const SYS_timer_gettime: ::c_long = 242; +pub const SYS_timer_getoverrun: ::c_long = 243; +pub const SYS_timer_delete: ::c_long = 244; +pub const SYS_clock_settime: ::c_long = 245; +pub const SYS_clock_gettime: ::c_long = 246; +pub const SYS_clock_getres: ::c_long = 247; +pub const SYS_clock_nanosleep: ::c_long = 248; +pub const SYS_swapcontext: ::c_long = 249; +pub const SYS_tgkill: ::c_long = 250; +pub const SYS_utimes: ::c_long = 251; +pub const SYS_statfs64: ::c_long = 252; +pub const SYS_fstatfs64: ::c_long = 253; +pub const SYS_fadvise64_64: ::c_long = 254; +pub const SYS_rtas: ::c_long = 255; +pub const SYS_sys_debug_setcontext: ::c_long = 256; +pub const SYS_migrate_pages: ::c_long = 258; +pub const SYS_mbind: ::c_long = 259; +pub const SYS_get_mempolicy: ::c_long = 260; +pub const SYS_set_mempolicy: ::c_long = 261; +pub const SYS_mq_open: ::c_long = 262; +pub const SYS_mq_unlink: ::c_long = 263; +pub const SYS_mq_timedsend: ::c_long = 264; +pub const SYS_mq_timedreceive: ::c_long = 265; +pub const SYS_mq_notify: ::c_long = 266; +pub const SYS_mq_getsetattr: ::c_long = 267; +pub const SYS_kexec_load: ::c_long = 268; +pub const SYS_add_key: ::c_long = 269; +pub const SYS_request_key: ::c_long = 270; +pub const SYS_keyctl: ::c_long = 271; +pub const SYS_waitid: ::c_long = 272; +pub const SYS_ioprio_set: ::c_long = 273; +pub const SYS_ioprio_get: ::c_long = 274; +pub const SYS_inotify_init: ::c_long = 275; +pub const SYS_inotify_add_watch: ::c_long = 276; +pub const SYS_inotify_rm_watch: ::c_long = 277; +pub const SYS_spu_run: ::c_long = 278; +pub const SYS_spu_create: ::c_long = 279; +pub const SYS_pselect6: ::c_long = 280; +pub const SYS_ppoll: ::c_long = 281; +pub const SYS_unshare: ::c_long = 282; +pub const SYS_splice: ::c_long = 283; +pub const SYS_tee: ::c_long = 284; +pub const SYS_vmsplice: ::c_long = 285; +pub const SYS_openat: ::c_long = 286; +pub const SYS_mkdirat: ::c_long = 287; +pub const SYS_mknodat: ::c_long = 288; +pub const SYS_fchownat: ::c_long = 289; +pub const SYS_futimesat: ::c_long = 290; +pub const SYS_fstatat64: ::c_long = 291; +pub const SYS_unlinkat: ::c_long = 292; +pub const SYS_renameat: ::c_long = 293; +pub const SYS_linkat: ::c_long = 294; +pub const SYS_symlinkat: ::c_long = 295; +pub const SYS_readlinkat: ::c_long = 296; +pub const SYS_fchmodat: ::c_long = 297; +pub const SYS_faccessat: ::c_long = 298; +pub const SYS_get_robust_list: ::c_long = 299; +pub const SYS_set_robust_list: ::c_long = 300; +pub const SYS_move_pages: ::c_long = 301; +pub const SYS_getcpu: ::c_long = 302; +pub const SYS_epoll_pwait: ::c_long = 303; +pub const SYS_utimensat: ::c_long = 304; +pub const SYS_signalfd: ::c_long = 305; +pub const SYS_timerfd_create: ::c_long = 306; +pub const SYS_eventfd: ::c_long = 307; +pub const SYS_sync_file_range2: ::c_long = 308; +pub const SYS_fallocate: ::c_long = 309; +pub const SYS_subpage_prot: ::c_long = 310; +pub const SYS_timerfd_settime: ::c_long = 311; +pub const SYS_timerfd_gettime: ::c_long = 312; +pub const SYS_signalfd4: ::c_long = 313; +pub const SYS_eventfd2: ::c_long = 314; +pub const SYS_epoll_create1: ::c_long = 315; +pub const SYS_dup3: ::c_long = 316; +pub const SYS_pipe2: ::c_long = 317; +pub const SYS_inotify_init1: ::c_long = 318; +pub const SYS_perf_event_open: ::c_long = 319; +pub const SYS_preadv: ::c_long = 320; +pub const SYS_pwritev: ::c_long = 321; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; +pub const SYS_fanotify_init: ::c_long = 323; +pub const SYS_fanotify_mark: ::c_long = 324; +pub const SYS_prlimit64: ::c_long = 325; +pub const SYS_socket: ::c_long = 326; +pub const SYS_bind: ::c_long = 327; +pub const SYS_connect: ::c_long = 328; +pub const SYS_listen: ::c_long = 329; +pub const SYS_accept: ::c_long = 330; +pub const SYS_getsockname: ::c_long = 331; +pub const SYS_getpeername: ::c_long = 332; +pub const SYS_socketpair: ::c_long = 333; +pub const SYS_send: ::c_long = 334; +pub const SYS_sendto: ::c_long = 335; +pub const SYS_recv: ::c_long = 336; +pub const SYS_recvfrom: ::c_long = 337; +pub const SYS_shutdown: ::c_long = 338; +pub const SYS_setsockopt: ::c_long = 339; +pub const SYS_getsockopt: ::c_long = 340; +pub const SYS_sendmsg: ::c_long = 341; +pub const SYS_recvmsg: ::c_long = 342; +pub const SYS_recvmmsg: ::c_long = 343; +pub const SYS_accept4: ::c_long = 344; +pub const SYS_name_to_handle_at: ::c_long = 345; +pub const SYS_open_by_handle_at: ::c_long = 346; +pub const SYS_clock_adjtime: ::c_long = 347; +pub const SYS_syncfs: ::c_long = 348; +pub const SYS_sendmmsg: ::c_long = 349; +pub const SYS_setns: ::c_long = 350; +pub const SYS_process_vm_readv: ::c_long = 351; +pub const SYS_process_vm_writev: ::c_long = 352; +pub const SYS_finit_module: ::c_long = 353; +pub const SYS_kcmp: ::c_long = 354; +pub const SYS_sched_setattr: ::c_long = 355; +pub const SYS_sched_getattr: ::c_long = 356; +pub const SYS_renameat2: ::c_long = 357; +pub const SYS_seccomp: ::c_long = 358; +pub const SYS_getrandom: ::c_long = 359; +pub const SYS_memfd_create: ::c_long = 360; +pub const SYS_bpf: ::c_long = 361; +pub const SYS_execveat: ::c_long = 362; +pub const SYS_switch_endian: ::c_long = 363; +pub const SYS_userfaultfd: ::c_long = 364; +pub const SYS_membarrier: ::c_long = 365; +pub const SYS_mlock2: ::c_long = 378; +pub const SYS_copy_file_range: ::c_long = 379; +pub const SYS_preadv2: ::c_long = 380; +pub const SYS_pwritev2: ::c_long = 381; +pub const SYS_kexec_file_load: ::c_long = 382; +pub const SYS_statx: ::c_long = 383; +pub const SYS_rseq: ::c_long = 387; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs new file mode 100644 index 000000000..48d152a57 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs @@ -0,0 +1,44 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + pub struct ucontext_t { + pub __uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct mcontext_t { + pub __gregs: [::c_ulong; 32], + pub __fpregs: __riscv_mc_fp_state, + } + + #[allow(missing_debug_implementations)] + pub union __riscv_mc_fp_state { + pub __f: __riscv_mc_f_ext_state, + pub __d: __riscv_mc_d_ext_state, + pub __q: __riscv_mc_q_ext_state, + } + + #[allow(missing_debug_implementations)] + pub struct __riscv_mc_f_ext_state { + pub __f: [::c_uint; 32], + pub __fcsr: ::c_uint, + } + + #[allow(missing_debug_implementations)] + pub struct __riscv_mc_d_ext_state { + pub __f: [::c_ulonglong; 32], + pub __fcsr: ::c_uint, + } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct __riscv_mc_q_ext_state { + pub __f: [::c_ulonglong; 64], + pub __fcsr: ::c_uint, + pub __glibc_reserved: [::c_uint; 3], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs new file mode 100644 index 000000000..f3b130cbc --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -0,0 +1,812 @@ +//! RISC-V-specific definitions for 32-bit linux-like values + +pub type c_char = u8; +pub type wchar_t = ::c_int; + +s! { + pub struct pthread_attr_t { + __size: [::c_ulong; 7], + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + pub msg_rtime: ::time_t, + pub msg_ctime: ::time_t, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __glibc_reserved4: ::c_ulong, + __glibc_reserved5: ::c_ulong, + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub __pad1: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub __pad2: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2usize], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub __pad1: ::dev_t, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub __pad2: ::c_int, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2], + } + + pub struct statfs { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_frsize: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 4], + } + + pub struct statfs64 { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsfilcnt64_t, + pub f_ffree: ::fsfilcnt64_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_frsize: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 4], + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub __f_spare: [::c_int; 6], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsfilcnt64_t, + pub f_ffree: ::fsfilcnt64_t, + pub f_favail: ::fsfilcnt64_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub __f_spare: [::c_int; 6], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [u64; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t, + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_ushort, + __pad1: ::c_ushort, + pub __seq: ::c_ushort, + __pad2: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused5: ::c_ulong, + __unused6: ::c_ulong, + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct user_regs_struct { + pub pc: ::c_ulong, + pub ra: ::c_ulong, + pub sp: ::c_ulong, + pub gp: ::c_ulong, + pub tp: ::c_ulong, + pub t0: ::c_ulong, + pub t1: ::c_ulong, + pub t2: ::c_ulong, + pub s0: ::c_ulong, + pub s1: ::c_ulong, + pub a0: ::c_ulong, + pub a1: ::c_ulong, + pub a2: ::c_ulong, + pub a3: ::c_ulong, + pub a4: ::c_ulong, + pub a5: ::c_ulong, + pub a6: ::c_ulong, + pub a7: ::c_ulong, + pub s2: ::c_ulong, + pub s3: ::c_ulong, + pub s4: ::c_ulong, + pub s5: ::c_ulong, + pub s6: ::c_ulong, + pub s7: ::c_ulong, + pub s8: ::c_ulong, + pub s9: ::c_ulong, + pub s10: ::c_ulong, + pub s11: ::c_ulong, + pub t3: ::c_ulong, + pub t4: ::c_ulong, + pub t5: ::c_ulong, + pub t6: ::c_ulong, + } +} + +pub const O_LARGEFILE: ::c_int = 0; +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 1052672; +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_GROWSDOWN: ::c_int = 256; +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SA_SIGINFO: ::c_int = 4; +pub const SA_NOCLDWAIT: ::c_int = 2; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0; +pub const SIG_UNBLOCK: ::c_int = 1; +pub const POLLWRNORM: ::c_short = 256; +pub const POLLWRBAND: ::c_short = 512; +pub const O_ASYNC: ::c_int = 8192; +pub const O_NDELAY: ::c_int = 2048; +pub const EFD_NONBLOCK: ::c_int = 2048; +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; +pub const SFD_NONBLOCK: ::c_int = 2048; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +pub const O_DIRECT: ::c_int = 16384; +pub const O_DIRECTORY: ::c_int = 65536; +pub const O_NOFOLLOW: ::c_int = 131072; +pub const MAP_HUGETLB: ::c_int = 262144; +pub const MAP_LOCKED: ::c_int = 8192; +pub const MAP_NORESERVE: ::c_int = 16384; +pub const MAP_ANON: ::c_int = 32; +pub const MAP_ANONYMOUS: ::c_int = 32; +pub const MAP_DENYWRITE: ::c_int = 2048; +pub const MAP_EXECUTABLE: ::c_int = 4096; +pub const MAP_POPULATE: ::c_int = 32768; +pub const MAP_NONBLOCK: ::c_int = 65536; +pub const MAP_STACK: ::c_int = 131072; +pub const MAP_SYNC: ::c_int = 0x080000; +pub const EDEADLOCK: ::c_int = 35; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const MCL_CURRENT: ::c_int = 1; +pub const MCL_FUTURE: ::c_int = 2; +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 4111; +pub const TAB1: ::tcflag_t = 2048; +pub const TAB2: ::tcflag_t = 4096; +pub const TAB3: ::tcflag_t = 6144; +pub const CR1: ::tcflag_t = 512; +pub const CR2: ::tcflag_t = 1024; +pub const CR3: ::tcflag_t = 1536; +pub const FF1: ::tcflag_t = 32768; +pub const BS1: ::tcflag_t = 8192; +pub const VT1: ::tcflag_t = 16384; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 1024; +pub const IXOFF: ::tcflag_t = 4096; +pub const ONLCR: ::tcflag_t = 4; +pub const CSIZE: ::tcflag_t = 48; +pub const CS6: ::tcflag_t = 16; +pub const CS7: ::tcflag_t = 32; +pub const CS8: ::tcflag_t = 48; +pub const CSTOPB: ::tcflag_t = 64; +pub const CREAD: ::tcflag_t = 128; +pub const PARENB: ::tcflag_t = 256; +pub const PARODD: ::tcflag_t = 512; +pub const HUPCL: ::tcflag_t = 1024; +pub const CLOCAL: ::tcflag_t = 2048; +pub const ECHOKE: ::tcflag_t = 2048; +pub const ECHOE: ::tcflag_t = 16; +pub const ECHOK: ::tcflag_t = 32; +pub const ECHONL: ::tcflag_t = 64; +pub const ECHOPRT: ::tcflag_t = 1024; +pub const ECHOCTL: ::tcflag_t = 512; +pub const ISIG: ::tcflag_t = 1; +pub const ICANON: ::tcflag_t = 2; +pub const PENDIN: ::tcflag_t = 16384; +pub const NOFLSH: ::tcflag_t = 128; +pub const CIBAUD: ::tcflag_t = 269418496; +pub const CBAUDEX: ::tcflag_t = 4096; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 2; +pub const NLDLY: ::tcflag_t = 256; +pub const CRDLY: ::tcflag_t = 1536; +pub const TABDLY: ::tcflag_t = 6144; +pub const BSDLY: ::tcflag_t = 8192; +pub const FFDLY: ::tcflag_t = 32768; +pub const VTDLY: ::tcflag_t = 16384; +pub const XTABS: ::tcflag_t = 6144; +pub const B0: ::speed_t = 0; +pub const B50: ::speed_t = 1; +pub const B75: ::speed_t = 2; +pub const B110: ::speed_t = 3; +pub const B134: ::speed_t = 4; +pub const B150: ::speed_t = 5; +pub const B200: ::speed_t = 6; +pub const B300: ::speed_t = 7; +pub const B600: ::speed_t = 8; +pub const B1200: ::speed_t = 9; +pub const B1800: ::speed_t = 10; +pub const B2400: ::speed_t = 11; +pub const B4800: ::speed_t = 12; +pub const B9600: ::speed_t = 13; +pub const B19200: ::speed_t = 14; +pub const B38400: ::speed_t = 15; +pub const EXTA: ::speed_t = 14; +pub const EXTB: ::speed_t = 15; +pub const B57600: ::speed_t = 4097; +pub const B115200: ::speed_t = 4098; +pub const B230400: ::speed_t = 4099; +pub const B460800: ::speed_t = 4100; +pub const B500000: ::speed_t = 4101; +pub const B576000: ::speed_t = 4102; +pub const B921600: ::speed_t = 4103; +pub const B1000000: ::speed_t = 4104; +pub const B1152000: ::speed_t = 4105; +pub const B1500000: ::speed_t = 4106; +pub const B2000000: ::speed_t = 4107; +pub const B2500000: ::speed_t = 4108; +pub const B3000000: ::speed_t = 4109; +pub const B3500000: ::speed_t = 4110; +pub const B4000000: ::speed_t = 4111; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 32768; +pub const TOSTOP: ::tcflag_t = 256; +pub const FLUSHO: ::tcflag_t = 4096; +pub const EXTPROC: ::tcflag_t = 65536; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; +pub const NGREG: usize = 32; +pub const REG_PC: usize = 0; +pub const REG_RA: usize = 1; +pub const REG_SP: usize = 2; +pub const REG_TP: usize = 4; +pub const REG_S0: usize = 8; +pub const REG_S1: usize = 9; +pub const REG_A0: usize = 10; +pub const REG_S2: usize = 18; +pub const REG_NARGS: usize = 8; + +pub const SYS_read: ::c_long = 63; +pub const SYS_write: ::c_long = 64; +pub const SYS_close: ::c_long = 57; +pub const SYS_fstat: ::c_long = 80; +pub const SYS_lseek: ::c_long = 62; +pub const SYS_mmap: ::c_long = 222; +pub const SYS_mprotect: ::c_long = 226; +pub const SYS_munmap: ::c_long = 215; +pub const SYS_brk: ::c_long = 214; +pub const SYS_rt_sigaction: ::c_long = 134; +pub const SYS_rt_sigprocmask: ::c_long = 135; +pub const SYS_rt_sigreturn: ::c_long = 139; +pub const SYS_ioctl: ::c_long = 29; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_readv: ::c_long = 65; +pub const SYS_writev: ::c_long = 66; +pub const SYS_sched_yield: ::c_long = 124; +pub const SYS_mremap: ::c_long = 216; +pub const SYS_msync: ::c_long = 227; +pub const SYS_mincore: ::c_long = 232; +pub const SYS_madvise: ::c_long = 233; +pub const SYS_shmget: ::c_long = 194; +pub const SYS_shmat: ::c_long = 196; +pub const SYS_shmctl: ::c_long = 195; +pub const SYS_dup: ::c_long = 23; +pub const SYS_nanosleep: ::c_long = 101; +pub const SYS_getitimer: ::c_long = 102; +pub const SYS_setitimer: ::c_long = 103; +pub const SYS_getpid: ::c_long = 172; +pub const SYS_sendfile: ::c_long = 71; +pub const SYS_socket: ::c_long = 198; +pub const SYS_connect: ::c_long = 203; +pub const SYS_accept: ::c_long = 202; +pub const SYS_sendto: ::c_long = 206; +pub const SYS_recvfrom: ::c_long = 207; +pub const SYS_sendmsg: ::c_long = 211; +pub const SYS_recvmsg: ::c_long = 212; +pub const SYS_shutdown: ::c_long = 210; +pub const SYS_bind: ::c_long = 200; +pub const SYS_listen: ::c_long = 201; +pub const SYS_getsockname: ::c_long = 204; +pub const SYS_getpeername: ::c_long = 205; +pub const SYS_socketpair: ::c_long = 199; +pub const SYS_setsockopt: ::c_long = 208; +pub const SYS_getsockopt: ::c_long = 209; +pub const SYS_clone: ::c_long = 220; +pub const SYS_execve: ::c_long = 221; +pub const SYS_exit: ::c_long = 93; +pub const SYS_wait4: ::c_long = 260; +pub const SYS_kill: ::c_long = 129; +pub const SYS_uname: ::c_long = 160; +pub const SYS_semget: ::c_long = 190; +pub const SYS_semop: ::c_long = 193; +pub const SYS_semctl: ::c_long = 191; +pub const SYS_shmdt: ::c_long = 197; +pub const SYS_msgget: ::c_long = 186; +pub const SYS_msgsnd: ::c_long = 189; +pub const SYS_msgrcv: ::c_long = 188; +pub const SYS_msgctl: ::c_long = 187; +pub const SYS_fcntl: ::c_long = 25; +pub const SYS_flock: ::c_long = 32; +pub const SYS_fsync: ::c_long = 82; +pub const SYS_fdatasync: ::c_long = 83; +pub const SYS_truncate: ::c_long = 45; +pub const SYS_ftruncate: ::c_long = 46; +pub const SYS_getcwd: ::c_long = 17; +pub const SYS_chdir: ::c_long = 49; +pub const SYS_fchdir: ::c_long = 50; +pub const SYS_fchmod: ::c_long = 52; +pub const SYS_fchown: ::c_long = 55; +pub const SYS_umask: ::c_long = 166; +pub const SYS_gettimeofday: ::c_long = 169; +pub const SYS_getrlimit: ::c_long = 163; +pub const SYS_getrusage: ::c_long = 165; +pub const SYS_sysinfo: ::c_long = 179; +pub const SYS_times: ::c_long = 153; +pub const SYS_ptrace: ::c_long = 117; +pub const SYS_getuid: ::c_long = 174; +pub const SYS_syslog: ::c_long = 116; +pub const SYS_getgid: ::c_long = 176; +pub const SYS_setuid: ::c_long = 146; +pub const SYS_setgid: ::c_long = 144; +pub const SYS_geteuid: ::c_long = 175; +pub const SYS_getegid: ::c_long = 177; +pub const SYS_setpgid: ::c_long = 154; +pub const SYS_getppid: ::c_long = 173; +pub const SYS_setsid: ::c_long = 157; +pub const SYS_setreuid: ::c_long = 145; +pub const SYS_setregid: ::c_long = 143; +pub const SYS_getgroups: ::c_long = 158; +pub const SYS_setgroups: ::c_long = 159; +pub const SYS_setresuid: ::c_long = 147; +pub const SYS_getresuid: ::c_long = 148; +pub const SYS_setresgid: ::c_long = 149; +pub const SYS_getresgid: ::c_long = 150; +pub const SYS_getpgid: ::c_long = 155; +pub const SYS_setfsuid: ::c_long = 151; +pub const SYS_setfsgid: ::c_long = 152; +pub const SYS_getsid: ::c_long = 156; +pub const SYS_capget: ::c_long = 90; +pub const SYS_capset: ::c_long = 91; +pub const SYS_rt_sigpending: ::c_long = 136; +pub const SYS_rt_sigtimedwait: ::c_long = 137; +pub const SYS_rt_sigqueueinfo: ::c_long = 138; +pub const SYS_rt_sigsuspend: ::c_long = 133; +pub const SYS_sigaltstack: ::c_long = 132; +pub const SYS_personality: ::c_long = 92; +pub const SYS_statfs: ::c_long = 43; +pub const SYS_fstatfs: ::c_long = 44; +pub const SYS_getpriority: ::c_long = 141; +pub const SYS_setpriority: ::c_long = 140; +pub const SYS_sched_setparam: ::c_long = 118; +pub const SYS_sched_getparam: ::c_long = 121; +pub const SYS_sched_setscheduler: ::c_long = 119; +pub const SYS_sched_getscheduler: ::c_long = 120; +pub const SYS_sched_get_priority_max: ::c_long = 125; +pub const SYS_sched_get_priority_min: ::c_long = 126; +pub const SYS_sched_rr_get_interval: ::c_long = 127; +pub const SYS_mlock: ::c_long = 228; +pub const SYS_munlock: ::c_long = 229; +pub const SYS_mlockall: ::c_long = 230; +pub const SYS_munlockall: ::c_long = 231; +pub const SYS_vhangup: ::c_long = 58; +pub const SYS_pivot_root: ::c_long = 41; +pub const SYS_prctl: ::c_long = 167; +pub const SYS_adjtimex: ::c_long = 171; +pub const SYS_setrlimit: ::c_long = 164; +pub const SYS_chroot: ::c_long = 51; +pub const SYS_sync: ::c_long = 81; +pub const SYS_acct: ::c_long = 89; +pub const SYS_settimeofday: ::c_long = 170; +pub const SYS_mount: ::c_long = 40; +pub const SYS_umount2: ::c_long = 39; +pub const SYS_swapon: ::c_long = 224; +pub const SYS_swapoff: ::c_long = 225; +pub const SYS_reboot: ::c_long = 142; +pub const SYS_sethostname: ::c_long = 161; +pub const SYS_setdomainname: ::c_long = 162; +pub const SYS_init_module: ::c_long = 105; +pub const SYS_delete_module: ::c_long = 106; +pub const SYS_quotactl: ::c_long = 60; +pub const SYS_nfsservctl: ::c_long = 42; +pub const SYS_gettid: ::c_long = 178; +pub const SYS_readahead: ::c_long = 213; +pub const SYS_setxattr: ::c_long = 5; +pub const SYS_lsetxattr: ::c_long = 6; +pub const SYS_fsetxattr: ::c_long = 7; +pub const SYS_getxattr: ::c_long = 8; +pub const SYS_lgetxattr: ::c_long = 9; +pub const SYS_fgetxattr: ::c_long = 10; +pub const SYS_listxattr: ::c_long = 11; +pub const SYS_llistxattr: ::c_long = 12; +pub const SYS_flistxattr: ::c_long = 13; +pub const SYS_removexattr: ::c_long = 14; +pub const SYS_lremovexattr: ::c_long = 15; +pub const SYS_fremovexattr: ::c_long = 16; +pub const SYS_tkill: ::c_long = 130; +pub const SYS_futex: ::c_long = 98; +pub const SYS_sched_setaffinity: ::c_long = 122; +pub const SYS_sched_getaffinity: ::c_long = 123; +pub const SYS_io_setup: ::c_long = 0; +pub const SYS_io_destroy: ::c_long = 1; +pub const SYS_io_getevents: ::c_long = 4; +pub const SYS_io_submit: ::c_long = 2; +pub const SYS_io_cancel: ::c_long = 3; +pub const SYS_lookup_dcookie: ::c_long = 18; +pub const SYS_remap_file_pages: ::c_long = 234; +pub const SYS_getdents64: ::c_long = 61; +pub const SYS_set_tid_address: ::c_long = 96; +pub const SYS_restart_syscall: ::c_long = 128; +pub const SYS_semtimedop: ::c_long = 192; +pub const SYS_fadvise64: ::c_long = 223; +pub const SYS_timer_create: ::c_long = 107; +pub const SYS_timer_settime: ::c_long = 110; +pub const SYS_timer_gettime: ::c_long = 108; +pub const SYS_timer_getoverrun: ::c_long = 109; +pub const SYS_timer_delete: ::c_long = 111; +pub const SYS_clock_settime: ::c_long = 112; +pub const SYS_clock_gettime: ::c_long = 113; +pub const SYS_clock_getres: ::c_long = 114; +pub const SYS_clock_nanosleep: ::c_long = 115; +pub const SYS_exit_group: ::c_long = 94; +pub const SYS_epoll_ctl: ::c_long = 21; +pub const SYS_tgkill: ::c_long = 131; +pub const SYS_mbind: ::c_long = 235; +pub const SYS_set_mempolicy: ::c_long = 237; +pub const SYS_get_mempolicy: ::c_long = 236; +pub const SYS_mq_open: ::c_long = 180; +pub const SYS_mq_unlink: ::c_long = 181; +pub const SYS_mq_timedsend: ::c_long = 182; +pub const SYS_mq_timedreceive: ::c_long = 183; +pub const SYS_mq_notify: ::c_long = 184; +pub const SYS_mq_getsetattr: ::c_long = 185; +pub const SYS_kexec_load: ::c_long = 104; +pub const SYS_waitid: ::c_long = 95; +pub const SYS_add_key: ::c_long = 217; +pub const SYS_request_key: ::c_long = 218; +pub const SYS_keyctl: ::c_long = 219; +pub const SYS_ioprio_set: ::c_long = 30; +pub const SYS_ioprio_get: ::c_long = 31; +pub const SYS_inotify_add_watch: ::c_long = 27; +pub const SYS_inotify_rm_watch: ::c_long = 28; +pub const SYS_migrate_pages: ::c_long = 238; +pub const SYS_openat: ::c_long = 56; +pub const SYS_mkdirat: ::c_long = 34; +pub const SYS_mknodat: ::c_long = 33; +pub const SYS_fchownat: ::c_long = 54; +pub const SYS_newfstatat: ::c_long = 79; +pub const SYS_unlinkat: ::c_long = 35; +pub const SYS_linkat: ::c_long = 37; +pub const SYS_symlinkat: ::c_long = 36; +pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_fchmodat: ::c_long = 53; +pub const SYS_faccessat: ::c_long = 48; +pub const SYS_pselect6: ::c_long = 72; +pub const SYS_ppoll: ::c_long = 73; +pub const SYS_unshare: ::c_long = 97; +pub const SYS_set_robust_list: ::c_long = 99; +pub const SYS_get_robust_list: ::c_long = 100; +pub const SYS_splice: ::c_long = 76; +pub const SYS_tee: ::c_long = 77; +pub const SYS_sync_file_range: ::c_long = 84; +pub const SYS_vmsplice: ::c_long = 75; +pub const SYS_move_pages: ::c_long = 239; +pub const SYS_utimensat: ::c_long = 88; +pub const SYS_epoll_pwait: ::c_long = 22; +pub const SYS_timerfd_create: ::c_long = 85; +pub const SYS_fallocate: ::c_long = 47; +pub const SYS_timerfd_settime: ::c_long = 86; +pub const SYS_timerfd_gettime: ::c_long = 87; +pub const SYS_accept4: ::c_long = 242; +pub const SYS_signalfd4: ::c_long = 74; +pub const SYS_eventfd2: ::c_long = 19; +pub const SYS_epoll_create1: ::c_long = 20; +pub const SYS_dup3: ::c_long = 24; +pub const SYS_pipe2: ::c_long = 59; +pub const SYS_inotify_init1: ::c_long = 26; +pub const SYS_preadv: ::c_long = 69; +pub const SYS_pwritev: ::c_long = 70; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; +pub const SYS_perf_event_open: ::c_long = 241; +pub const SYS_recvmmsg: ::c_long = 243; +pub const SYS_fanotify_init: ::c_long = 262; +pub const SYS_fanotify_mark: ::c_long = 263; +pub const SYS_prlimit64: ::c_long = 261; +pub const SYS_name_to_handle_at: ::c_long = 264; +pub const SYS_open_by_handle_at: ::c_long = 265; +pub const SYS_clock_adjtime: ::c_long = 266; +pub const SYS_syncfs: ::c_long = 267; +pub const SYS_sendmmsg: ::c_long = 269; +pub const SYS_setns: ::c_long = 268; +pub const SYS_getcpu: ::c_long = 168; +pub const SYS_process_vm_readv: ::c_long = 270; +pub const SYS_process_vm_writev: ::c_long = 271; +pub const SYS_kcmp: ::c_long = 272; +pub const SYS_finit_module: ::c_long = 273; +pub const SYS_sched_setattr: ::c_long = 274; +pub const SYS_sched_getattr: ::c_long = 275; +pub const SYS_renameat2: ::c_long = 276; +pub const SYS_seccomp: ::c_long = 277; +pub const SYS_getrandom: ::c_long = 278; +pub const SYS_memfd_create: ::c_long = 279; +pub const SYS_bpf: ::c_long = 280; +pub const SYS_execveat: ::c_long = 281; +pub const SYS_userfaultfd: ::c_long = 282; +pub const SYS_membarrier: ::c_long = 283; +pub const SYS_mlock2: ::c_long = 284; +pub const SYS_copy_file_range: ::c_long = 285; +pub const SYS_preadv2: ::c_long = 286; +pub const SYS_pwritev2: ::c_long = 287; +pub const SYS_pkey_mprotect: ::c_long = 288; +pub const SYS_pkey_alloc: ::c_long = 289; +pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; +pub const SYS_rseq: ::c_long = 293; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/align.rs new file mode 100644 index 000000000..98fda883c --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [i64; 3] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs new file mode 100644 index 000000000..57ad9fe8e --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -0,0 +1,856 @@ +//! SPARC-specific definitions for 32-bit linux-like values + +pub type c_char = i8; +pub type wchar_t = i32; + +s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct statfs { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + __reserved: ::c_short, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: ::c_ushort, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_long; 2], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: ::c_ushort, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __reserved: [::c_long; 2], + } + + pub struct statfs64 { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + pub f_spare: [::__fsword_t; 4], + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + __pad1: ::c_ushort, + pub mode: ::c_ushort, + __pad2: ::c_ushort, + pub __seq: ::c_ushort, + __unused1: ::c_ulonglong, + __unused2: ::c_ulonglong, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + __pad1: ::c_uint, + pub shm_atime: ::time_t, + __pad2: ::c_uint, + pub shm_dtime: ::time_t, + __pad3: ::c_uint, + pub shm_ctime: ::time_t, + pub shm_segsz: ::size_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __reserved1: ::c_ulong, + __reserved2: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + __pad1: ::c_uint, + pub msg_stime: ::time_t, + __pad2: ::c_uint, + pub msg_rtime: ::time_t, + __pad3: ::c_uint, + pub msg_ctime: ::time_t, + __msg_cbytes: ::c_ushort, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __glibc_reserved1: ::c_ulong, + __glibc_reserved2: ::c_ulong, + } +} + +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; + +pub const O_APPEND: ::c_int = 0x8; +pub const O_CREAT: ::c_int = 0x200; +pub const O_EXCL: ::c_int = 0x800; +pub const O_NOCTTY: ::c_int = 0x8000; +pub const O_NONBLOCK: ::c_int = 0x4000; +pub const O_SYNC: ::c_int = 0x802000; +pub const O_RSYNC: ::c_int = 0x802000; +pub const O_DSYNC: ::c_int = 0x2000; +pub const O_FSYNC: ::c_int = 0x802000; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_GROWSDOWN: ::c_int = 0x0200; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const EDEADLK: ::c_int = 78; +pub const ENAMETOOLONG: ::c_int = 63; +pub const ENOLCK: ::c_int = 79; +pub const ENOSYS: ::c_int = 90; +pub const ENOTEMPTY: ::c_int = 66; +pub const ELOOP: ::c_int = 62; +pub const ENOMSG: ::c_int = 75; +pub const EIDRM: ::c_int = 77; +pub const ECHRNG: ::c_int = 94; +pub const EL2NSYNC: ::c_int = 95; +pub const EL3HLT: ::c_int = 96; +pub const EL3RST: ::c_int = 97; +pub const ELNRNG: ::c_int = 98; +pub const EUNATCH: ::c_int = 99; +pub const ENOCSI: ::c_int = 100; +pub const EL2HLT: ::c_int = 101; +pub const EBADE: ::c_int = 102; +pub const EBADR: ::c_int = 103; +pub const EXFULL: ::c_int = 104; +pub const ENOANO: ::c_int = 105; +pub const EBADRQC: ::c_int = 106; +pub const EBADSLT: ::c_int = 107; +pub const EMULTIHOP: ::c_int = 87; +pub const EOVERFLOW: ::c_int = 92; +pub const ENOTUNIQ: ::c_int = 115; +pub const EBADFD: ::c_int = 93; +pub const EBADMSG: ::c_int = 76; +pub const EREMCHG: ::c_int = 89; +pub const ELIBACC: ::c_int = 114; +pub const ELIBBAD: ::c_int = 112; +pub const ELIBSCN: ::c_int = 124; +pub const ELIBMAX: ::c_int = 123; +pub const ELIBEXEC: ::c_int = 110; +pub const EILSEQ: ::c_int = 122; +pub const ERESTART: ::c_int = 116; +pub const ESTRPIPE: ::c_int = 91; +pub const EUSERS: ::c_int = 68; +pub const ENOTSOCK: ::c_int = 38; +pub const EDESTADDRREQ: ::c_int = 39; +pub const EMSGSIZE: ::c_int = 40; +pub const EPROTOTYPE: ::c_int = 41; +pub const ENOPROTOOPT: ::c_int = 42; +pub const EPROTONOSUPPORT: ::c_int = 43; +pub const ESOCKTNOSUPPORT: ::c_int = 44; +pub const EOPNOTSUPP: ::c_int = 45; +pub const EPFNOSUPPORT: ::c_int = 46; +pub const EAFNOSUPPORT: ::c_int = 47; +pub const EADDRINUSE: ::c_int = 48; +pub const EADDRNOTAVAIL: ::c_int = 49; +pub const ENETDOWN: ::c_int = 50; +pub const ENETUNREACH: ::c_int = 51; +pub const ENETRESET: ::c_int = 52; +pub const ECONNABORTED: ::c_int = 53; +pub const ECONNRESET: ::c_int = 54; +pub const ENOBUFS: ::c_int = 55; +pub const EISCONN: ::c_int = 56; +pub const ENOTCONN: ::c_int = 57; +pub const ESHUTDOWN: ::c_int = 58; +pub const ETOOMANYREFS: ::c_int = 59; +pub const ETIMEDOUT: ::c_int = 60; +pub const ECONNREFUSED: ::c_int = 61; +pub const EHOSTDOWN: ::c_int = 64; +pub const EHOSTUNREACH: ::c_int = 65; +pub const EALREADY: ::c_int = 37; +pub const EINPROGRESS: ::c_int = 36; +pub const ESTALE: ::c_int = 70; +pub const EDQUOT: ::c_int = 69; +pub const ENOMEDIUM: ::c_int = 125; +pub const EMEDIUMTYPE: ::c_int = 126; +pub const ECANCELED: ::c_int = 127; +pub const ENOKEY: ::c_int = 128; +pub const EKEYEXPIRED: ::c_int = 129; +pub const EKEYREVOKED: ::c_int = 130; +pub const EKEYREJECTED: ::c_int = 131; +pub const EOWNERDEAD: ::c_int = 132; +pub const ENOTRECOVERABLE: ::c_int = 133; +pub const EHWPOISON: ::c_int = 135; +pub const ERFKILL: ::c_int = 134; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const SA_SIGINFO: ::c_int = 0x200; +pub const SA_NOCLDWAIT: ::c_int = 0x100; + +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGCHLD: ::c_int = 20; +pub const SIGBUS: ::c_int = 10; +pub const SIGUSR1: ::c_int = 30; +pub const SIGUSR2: ::c_int = 31; +pub const SIGCONT: ::c_int = 19; +pub const SIGSTOP: ::c_int = 17; +pub const SIGTSTP: ::c_int = 18; +pub const SIGURG: ::c_int = 16; +pub const SIGIO: ::c_int = 23; +pub const SIGSYS: ::c_int = 12; +pub const SIGPOLL: ::c_int = 23; +pub const SIGPWR: ::c_int = 29; +pub const SIG_SETMASK: ::c_int = 4; +pub const SIG_BLOCK: ::c_int = 1; +pub const SIG_UNBLOCK: ::c_int = 2; + +pub const POLLWRNORM: ::c_short = 4; +pub const POLLWRBAND: ::c_short = 0x100; + +pub const O_ASYNC: ::c_int = 0x40; +pub const O_NDELAY: ::c_int = 0x4004; + +pub const EFD_NONBLOCK: ::c_int = 0x4000; + +pub const F_GETLK: ::c_int = 7; +pub const F_GETOWN: ::c_int = 5; +pub const F_SETOWN: ::c_int = 6; + +pub const SFD_NONBLOCK: ::c_int = 0x4000; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const O_DIRECTORY: ::c_int = 0o200000; +pub const O_NOFOLLOW: ::c_int = 0o400000; +pub const O_LARGEFILE: ::c_int = 0x40000; +pub const O_DIRECT: ::c_int = 0x100000; + +pub const MAP_LOCKED: ::c_int = 0x0100; +pub const MAP_NORESERVE: ::c_int = 0x00040; + +pub const EDEADLOCK: ::c_int = 108; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; + +pub const MCL_CURRENT: ::c_int = 0x2000; +pub const MCL_FUTURE: ::c_int = 0x4000; + +pub const SIGSTKSZ: ::size_t = 16384; +pub const MINSIGSTKSZ: ::size_t = 4096; +pub const CBAUD: ::tcflag_t = 0x0000100f; +pub const TAB1: ::tcflag_t = 0x800; +pub const TAB2: ::tcflag_t = 0x1000; +pub const TAB3: ::tcflag_t = 0x1800; +pub const CR1: ::tcflag_t = 0x200; +pub const CR2: ::tcflag_t = 0x400; +pub const CR3: ::tcflag_t = 0x600; +pub const FF1: ::tcflag_t = 0x8000; +pub const BS1: ::tcflag_t = 0x2000; +pub const VT1: ::tcflag_t = 0x4000; +pub const VWERASE: usize = 0xe; +pub const VREPRINT: usize = 0xc; +pub const VSUSP: usize = 0xa; +pub const VSTART: usize = 0x8; +pub const VSTOP: usize = 0x9; +pub const VDISCARD: usize = 0xd; +pub const VTIME: usize = 0x5; +pub const IXON: ::tcflag_t = 0x400; +pub const IXOFF: ::tcflag_t = 0x1000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x30; +pub const CS6: ::tcflag_t = 0x10; +pub const CS7: ::tcflag_t = 0x20; +pub const CS8: ::tcflag_t = 0x30; +pub const CSTOPB: ::tcflag_t = 0x40; +pub const CREAD: ::tcflag_t = 0x80; +pub const PARENB: ::tcflag_t = 0x100; +pub const PARODD: ::tcflag_t = 0x200; +pub const HUPCL: ::tcflag_t = 0x400; +pub const CLOCAL: ::tcflag_t = 0x800; +pub const ECHOKE: ::tcflag_t = 0x800; +pub const ECHOE: ::tcflag_t = 0x10; +pub const ECHOK: ::tcflag_t = 0x20; +pub const ECHONL: ::tcflag_t = 0x40; +pub const ECHOPRT: ::tcflag_t = 0x400; +pub const ECHOCTL: ::tcflag_t = 0x200; +pub const ISIG: ::tcflag_t = 0x1; +pub const ICANON: ::tcflag_t = 0x2; +pub const PENDIN: ::tcflag_t = 0x4000; +pub const NOFLSH: ::tcflag_t = 0x80; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0x00001000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const B57600: ::speed_t = 0x1001; +pub const B115200: ::speed_t = 0x1002; +pub const B230400: ::speed_t = 0x1003; +pub const B460800: ::speed_t = 0x1004; +pub const B76800: ::speed_t = 0x1005; +pub const B153600: ::speed_t = 0x1006; +pub const B307200: ::speed_t = 0x1007; +pub const B614400: ::speed_t = 0x1008; +pub const B921600: ::speed_t = 0x1009; +pub const B500000: ::speed_t = 0x100a; +pub const B576000: ::speed_t = 0x100b; +pub const B1000000: ::speed_t = 0x100c; +pub const B1152000: ::speed_t = 0x100d; +pub const B1500000: ::speed_t = 0x100e; +pub const B2000000: ::speed_t = 0x100f; + +pub const VEOL: usize = 5; +pub const VEOL2: usize = 6; +pub const VMIN: usize = 4; +pub const IEXTEN: ::tcflag_t = 0x8000; +pub const TOSTOP: ::tcflag_t = 0x100; +pub const FLUSHO: ::tcflag_t = 0x1000; +pub const EXTPROC: ::tcflag_t = 0x10000; + +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_wait4: ::c_long = 7; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execv: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_chown: ::c_long = 13; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_brk: ::c_long = 17; +pub const SYS_perfctr: ::c_long = 18; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_capget: ::c_long = 21; +pub const SYS_capset: ::c_long = 22; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_vmsplice: ::c_long = 25; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_alarm: ::c_long = 27; +pub const SYS_sigaltstack: ::c_long = 28; +pub const SYS_pause: ::c_long = 29; +pub const SYS_utime: ::c_long = 30; +pub const SYS_lchown32: ::c_long = 31; +pub const SYS_fchown32: ::c_long = 32; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_chown32: ::c_long = 35; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_stat: ::c_long = 38; +pub const SYS_sendfile: ::c_long = 39; +pub const SYS_lstat: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_getuid32: ::c_long = 44; +pub const SYS_umount2: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_signal: ::c_long = 48; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_getgid32: ::c_long = 53; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_reboot: ::c_long = 55; +pub const SYS_mmap2: ::c_long = 56; +pub const SYS_symlink: ::c_long = 57; +pub const SYS_readlink: ::c_long = 58; +pub const SYS_execve: ::c_long = 59; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_fstat: ::c_long = 62; +pub const SYS_fstat64: ::c_long = 63; +pub const SYS_getpagesize: ::c_long = 64; +pub const SYS_msync: ::c_long = 65; +pub const SYS_vfork: ::c_long = 66; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_geteuid32: ::c_long = 69; +pub const SYS_getegid32: ::c_long = 70; +pub const SYS_mmap: ::c_long = 71; +pub const SYS_setreuid32: ::c_long = 72; +pub const SYS_munmap: ::c_long = 73; +pub const SYS_mprotect: ::c_long = 74; +pub const SYS_madvise: ::c_long = 75; +pub const SYS_vhangup: ::c_long = 76; +pub const SYS_truncate64: ::c_long = 77; +pub const SYS_mincore: ::c_long = 78; +pub const SYS_getgroups: ::c_long = 79; +pub const SYS_setgroups: ::c_long = 80; +pub const SYS_getpgrp: ::c_long = 81; +pub const SYS_setgroups32: ::c_long = 82; +pub const SYS_setitimer: ::c_long = 83; +pub const SYS_ftruncate64: ::c_long = 84; +pub const SYS_swapon: ::c_long = 85; +pub const SYS_getitimer: ::c_long = 86; +pub const SYS_setuid32: ::c_long = 87; +pub const SYS_sethostname: ::c_long = 88; +pub const SYS_setgid32: ::c_long = 89; +pub const SYS_dup2: ::c_long = 90; +pub const SYS_setfsuid32: ::c_long = 91; +pub const SYS_fcntl: ::c_long = 92; +pub const SYS_select: ::c_long = 93; +pub const SYS_setfsgid32: ::c_long = 94; +pub const SYS_fsync: ::c_long = 95; +pub const SYS_setpriority: ::c_long = 96; +pub const SYS_socket: ::c_long = 97; +pub const SYS_connect: ::c_long = 98; +pub const SYS_accept: ::c_long = 99; +pub const SYS_getpriority: ::c_long = 100; +pub const SYS_rt_sigreturn: ::c_long = 101; +pub const SYS_rt_sigaction: ::c_long = 102; +pub const SYS_rt_sigprocmask: ::c_long = 103; +pub const SYS_rt_sigpending: ::c_long = 104; +pub const SYS_rt_sigtimedwait: ::c_long = 105; +pub const SYS_rt_sigqueueinfo: ::c_long = 106; +pub const SYS_rt_sigsuspend: ::c_long = 107; +pub const SYS_setresuid32: ::c_long = 108; +pub const SYS_getresuid32: ::c_long = 109; +pub const SYS_setresgid32: ::c_long = 110; +pub const SYS_getresgid32: ::c_long = 111; +pub const SYS_setregid32: ::c_long = 112; +pub const SYS_recvmsg: ::c_long = 113; +pub const SYS_sendmsg: ::c_long = 114; +pub const SYS_getgroups32: ::c_long = 115; +pub const SYS_gettimeofday: ::c_long = 116; +pub const SYS_getrusage: ::c_long = 117; +pub const SYS_getsockopt: ::c_long = 118; +pub const SYS_getcwd: ::c_long = 119; +pub const SYS_readv: ::c_long = 120; +pub const SYS_writev: ::c_long = 121; +pub const SYS_settimeofday: ::c_long = 122; +pub const SYS_fchown: ::c_long = 123; +pub const SYS_fchmod: ::c_long = 124; +pub const SYS_recvfrom: ::c_long = 125; +pub const SYS_setreuid: ::c_long = 126; +pub const SYS_setregid: ::c_long = 127; +pub const SYS_rename: ::c_long = 128; +pub const SYS_truncate: ::c_long = 129; +pub const SYS_ftruncate: ::c_long = 130; +pub const SYS_flock: ::c_long = 131; +pub const SYS_lstat64: ::c_long = 132; +pub const SYS_sendto: ::c_long = 133; +pub const SYS_shutdown: ::c_long = 134; +pub const SYS_socketpair: ::c_long = 135; +pub const SYS_mkdir: ::c_long = 136; +pub const SYS_rmdir: ::c_long = 137; +pub const SYS_utimes: ::c_long = 138; +pub const SYS_stat64: ::c_long = 139; +pub const SYS_sendfile64: ::c_long = 140; +pub const SYS_getpeername: ::c_long = 141; +pub const SYS_futex: ::c_long = 142; +pub const SYS_gettid: ::c_long = 143; +pub const SYS_getrlimit: ::c_long = 144; +pub const SYS_setrlimit: ::c_long = 145; +pub const SYS_pivot_root: ::c_long = 146; +pub const SYS_prctl: ::c_long = 147; +pub const SYS_pciconfig_read: ::c_long = 148; +pub const SYS_pciconfig_write: ::c_long = 149; +pub const SYS_getsockname: ::c_long = 150; +pub const SYS_inotify_init: ::c_long = 151; +pub const SYS_inotify_add_watch: ::c_long = 152; +pub const SYS_poll: ::c_long = 153; +pub const SYS_getdents64: ::c_long = 154; +pub const SYS_fcntl64: ::c_long = 155; +pub const SYS_inotify_rm_watch: ::c_long = 156; +pub const SYS_statfs: ::c_long = 157; +pub const SYS_fstatfs: ::c_long = 158; +pub const SYS_umount: ::c_long = 159; +pub const SYS_sched_set_affinity: ::c_long = 160; +pub const SYS_sched_get_affinity: ::c_long = 161; +pub const SYS_getdomainname: ::c_long = 162; +pub const SYS_setdomainname: ::c_long = 163; +pub const SYS_quotactl: ::c_long = 165; +pub const SYS_set_tid_address: ::c_long = 166; +pub const SYS_mount: ::c_long = 167; +pub const SYS_ustat: ::c_long = 168; +pub const SYS_setxattr: ::c_long = 169; +pub const SYS_lsetxattr: ::c_long = 170; +pub const SYS_fsetxattr: ::c_long = 171; +pub const SYS_getxattr: ::c_long = 172; +pub const SYS_lgetxattr: ::c_long = 173; +pub const SYS_getdents: ::c_long = 174; +pub const SYS_setsid: ::c_long = 175; +pub const SYS_fchdir: ::c_long = 176; +pub const SYS_fgetxattr: ::c_long = 177; +pub const SYS_listxattr: ::c_long = 178; +pub const SYS_llistxattr: ::c_long = 179; +pub const SYS_flistxattr: ::c_long = 180; +pub const SYS_removexattr: ::c_long = 181; +pub const SYS_lremovexattr: ::c_long = 182; +pub const SYS_sigpending: ::c_long = 183; +pub const SYS_query_module: ::c_long = 184; +pub const SYS_setpgid: ::c_long = 185; +pub const SYS_fremovexattr: ::c_long = 186; +pub const SYS_tkill: ::c_long = 187; +pub const SYS_exit_group: ::c_long = 188; +pub const SYS_uname: ::c_long = 189; +pub const SYS_init_module: ::c_long = 190; +pub const SYS_personality: ::c_long = 191; +pub const SYS_remap_file_pages: ::c_long = 192; +pub const SYS_epoll_create: ::c_long = 193; +pub const SYS_epoll_ctl: ::c_long = 194; +pub const SYS_epoll_wait: ::c_long = 195; +pub const SYS_ioprio_set: ::c_long = 196; +pub const SYS_getppid: ::c_long = 197; +pub const SYS_sigaction: ::c_long = 198; +pub const SYS_sgetmask: ::c_long = 199; +pub const SYS_ssetmask: ::c_long = 200; +pub const SYS_sigsuspend: ::c_long = 201; +pub const SYS_oldlstat: ::c_long = 202; +pub const SYS_uselib: ::c_long = 203; +pub const SYS_readdir: ::c_long = 204; +pub const SYS_readahead: ::c_long = 205; +pub const SYS_socketcall: ::c_long = 206; +pub const SYS_syslog: ::c_long = 207; +pub const SYS_lookup_dcookie: ::c_long = 208; +pub const SYS_fadvise64: ::c_long = 209; +pub const SYS_fadvise64_64: ::c_long = 210; +pub const SYS_tgkill: ::c_long = 211; +pub const SYS_waitpid: ::c_long = 212; +pub const SYS_swapoff: ::c_long = 213; +pub const SYS_sysinfo: ::c_long = 214; +pub const SYS_ipc: ::c_long = 215; +pub const SYS_sigreturn: ::c_long = 216; +pub const SYS_clone: ::c_long = 217; +pub const SYS_ioprio_get: ::c_long = 218; +pub const SYS_adjtimex: ::c_long = 219; +pub const SYS_sigprocmask: ::c_long = 220; +pub const SYS_create_module: ::c_long = 221; +pub const SYS_delete_module: ::c_long = 222; +pub const SYS_get_kernel_syms: ::c_long = 223; +pub const SYS_getpgid: ::c_long = 224; +pub const SYS_bdflush: ::c_long = 225; +pub const SYS_sysfs: ::c_long = 226; +pub const SYS_afs_syscall: ::c_long = 227; +pub const SYS_setfsuid: ::c_long = 228; +pub const SYS_setfsgid: ::c_long = 229; +pub const SYS__newselect: ::c_long = 230; +pub const SYS_time: ::c_long = 231; +pub const SYS_splice: ::c_long = 232; +pub const SYS_stime: ::c_long = 233; +pub const SYS_statfs64: ::c_long = 234; +pub const SYS_fstatfs64: ::c_long = 235; +pub const SYS__llseek: ::c_long = 236; +pub const SYS_mlock: ::c_long = 237; +pub const SYS_munlock: ::c_long = 238; +pub const SYS_mlockall: ::c_long = 239; +pub const SYS_munlockall: ::c_long = 240; +pub const SYS_sched_setparam: ::c_long = 241; +pub const SYS_sched_getparam: ::c_long = 242; +pub const SYS_sched_setscheduler: ::c_long = 243; +pub const SYS_sched_getscheduler: ::c_long = 244; +pub const SYS_sched_yield: ::c_long = 245; +pub const SYS_sched_get_priority_max: ::c_long = 246; +pub const SYS_sched_get_priority_min: ::c_long = 247; +pub const SYS_sched_rr_get_interval: ::c_long = 248; +pub const SYS_nanosleep: ::c_long = 249; +pub const SYS_mremap: ::c_long = 250; +pub const SYS__sysctl: ::c_long = 251; +pub const SYS_getsid: ::c_long = 252; +pub const SYS_fdatasync: ::c_long = 253; +pub const SYS_nfsservctl: ::c_long = 254; +pub const SYS_sync_file_range: ::c_long = 255; +pub const SYS_clock_settime: ::c_long = 256; +pub const SYS_clock_gettime: ::c_long = 257; +pub const SYS_clock_getres: ::c_long = 258; +pub const SYS_clock_nanosleep: ::c_long = 259; +pub const SYS_sched_getaffinity: ::c_long = 260; +pub const SYS_sched_setaffinity: ::c_long = 261; +pub const SYS_timer_settime: ::c_long = 262; +pub const SYS_timer_gettime: ::c_long = 263; +pub const SYS_timer_getoverrun: ::c_long = 264; +pub const SYS_timer_delete: ::c_long = 265; +pub const SYS_timer_create: ::c_long = 266; +pub const SYS_io_setup: ::c_long = 268; +pub const SYS_io_destroy: ::c_long = 269; +pub const SYS_io_submit: ::c_long = 270; +pub const SYS_io_cancel: ::c_long = 271; +pub const SYS_io_getevents: ::c_long = 272; +pub const SYS_mq_open: ::c_long = 273; +pub const SYS_mq_unlink: ::c_long = 274; +pub const SYS_mq_timedsend: ::c_long = 275; +pub const SYS_mq_timedreceive: ::c_long = 276; +pub const SYS_mq_notify: ::c_long = 277; +pub const SYS_mq_getsetattr: ::c_long = 278; +pub const SYS_waitid: ::c_long = 279; +pub const SYS_tee: ::c_long = 280; +pub const SYS_add_key: ::c_long = 281; +pub const SYS_request_key: ::c_long = 282; +pub const SYS_keyctl: ::c_long = 283; +pub const SYS_openat: ::c_long = 284; +pub const SYS_mkdirat: ::c_long = 285; +pub const SYS_mknodat: ::c_long = 286; +pub const SYS_fchownat: ::c_long = 287; +pub const SYS_futimesat: ::c_long = 288; +pub const SYS_fstatat64: ::c_long = 289; +pub const SYS_unlinkat: ::c_long = 290; +pub const SYS_renameat: ::c_long = 291; +pub const SYS_linkat: ::c_long = 292; +pub const SYS_symlinkat: ::c_long = 293; +pub const SYS_readlinkat: ::c_long = 294; +pub const SYS_fchmodat: ::c_long = 295; +pub const SYS_faccessat: ::c_long = 296; +pub const SYS_pselect6: ::c_long = 297; +pub const SYS_ppoll: ::c_long = 298; +pub const SYS_unshare: ::c_long = 299; +pub const SYS_set_robust_list: ::c_long = 300; +pub const SYS_get_robust_list: ::c_long = 301; +pub const SYS_migrate_pages: ::c_long = 302; +pub const SYS_mbind: ::c_long = 303; +pub const SYS_get_mempolicy: ::c_long = 304; +pub const SYS_set_mempolicy: ::c_long = 305; +pub const SYS_kexec_load: ::c_long = 306; +pub const SYS_move_pages: ::c_long = 307; +pub const SYS_getcpu: ::c_long = 308; +pub const SYS_epoll_pwait: ::c_long = 309; +pub const SYS_utimensat: ::c_long = 310; +pub const SYS_signalfd: ::c_long = 311; +pub const SYS_timerfd_create: ::c_long = 312; +pub const SYS_eventfd: ::c_long = 313; +pub const SYS_fallocate: ::c_long = 314; +pub const SYS_timerfd_settime: ::c_long = 315; +pub const SYS_timerfd_gettime: ::c_long = 316; +pub const SYS_signalfd4: ::c_long = 317; +pub const SYS_eventfd2: ::c_long = 318; +pub const SYS_epoll_create1: ::c_long = 319; +pub const SYS_dup3: ::c_long = 320; +pub const SYS_pipe2: ::c_long = 321; +pub const SYS_inotify_init1: ::c_long = 322; +pub const SYS_accept4: ::c_long = 323; +pub const SYS_preadv: ::c_long = 324; +pub const SYS_pwritev: ::c_long = 325; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 326; +pub const SYS_perf_event_open: ::c_long = 327; +pub const SYS_recvmmsg: ::c_long = 328; +pub const SYS_fanotify_init: ::c_long = 329; +pub const SYS_fanotify_mark: ::c_long = 330; +pub const SYS_prlimit64: ::c_long = 331; +pub const SYS_name_to_handle_at: ::c_long = 332; +pub const SYS_open_by_handle_at: ::c_long = 333; +pub const SYS_clock_adjtime: ::c_long = 334; +pub const SYS_syncfs: ::c_long = 335; +pub const SYS_sendmmsg: ::c_long = 336; +pub const SYS_setns: ::c_long = 337; +pub const SYS_process_vm_readv: ::c_long = 338; +pub const SYS_process_vm_writev: ::c_long = 339; +pub const SYS_kern_features: ::c_long = 340; +pub const SYS_kcmp: ::c_long = 341; +pub const SYS_finit_module: ::c_long = 342; +pub const SYS_sched_setattr: ::c_long = 343; +pub const SYS_sched_getattr: ::c_long = 344; +pub const SYS_renameat2: ::c_long = 345; +pub const SYS_seccomp: ::c_long = 346; +pub const SYS_getrandom: ::c_long = 347; +pub const SYS_memfd_create: ::c_long = 348; +pub const SYS_bpf: ::c_long = 349; +pub const SYS_execveat: ::c_long = 350; +pub const SYS_membarrier: ::c_long = 351; +pub const SYS_userfaultfd: ::c_long = 352; +pub const SYS_bind: ::c_long = 353; +pub const SYS_listen: ::c_long = 354; +pub const SYS_setsockopt: ::c_long = 355; +pub const SYS_mlock2: ::c_long = 356; +pub const SYS_copy_file_range: ::c_long = 357; +pub const SYS_preadv2: ::c_long = 358; +pub const SYS_pwritev2: ::c_long = 359; +pub const SYS_statx: ::c_long = 360; +pub const SYS_rseq: ::c_long = 365; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +// Reserved in the kernel, but not actually implemented yet +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/align.rs new file mode 100644 index 000000000..96634749f --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 6] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/mod.rs new file mode 100644 index 000000000..93622387e --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -0,0 +1,1109 @@ +pub type c_char = i8; +pub type wchar_t = i32; +pub type greg_t = i32; + +s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct statfs { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct _libc_fpreg { + pub significand: [u16; 4], + pub exponent: u16, + } + + pub struct _libc_fpstate { + pub cw: ::c_ulong, + pub sw: ::c_ulong, + pub tag: ::c_ulong, + pub ipoff: ::c_ulong, + pub cssel: ::c_ulong, + pub dataoff: ::c_ulong, + pub datasel: ::c_ulong, + pub _st: [_libc_fpreg; 8], + pub status: ::c_ulong, + } + + pub struct user_fpregs_struct { + pub cwd: ::c_long, + pub swd: ::c_long, + pub twd: ::c_long, + pub fip: ::c_long, + pub fcs: ::c_long, + pub foo: ::c_long, + pub fos: ::c_long, + pub st_space: [::c_long; 20], + } + + pub struct user_regs_struct { + pub ebx: ::c_long, + pub ecx: ::c_long, + pub edx: ::c_long, + pub esi: ::c_long, + pub edi: ::c_long, + pub ebp: ::c_long, + pub eax: ::c_long, + pub xds: ::c_long, + pub xes: ::c_long, + pub xfs: ::c_long, + pub xgs: ::c_long, + pub orig_eax: ::c_long, + pub eip: ::c_long, + pub xcs: ::c_long, + pub eflags: ::c_long, + pub esp: ::c_long, + pub xss: ::c_long, + } + + pub struct user { + pub regs: user_regs_struct, + pub u_fpvalid: ::c_int, + pub i387: user_fpregs_struct, + pub u_tsize: ::c_ulong, + pub u_dsize: ::c_ulong, + pub u_ssize: ::c_ulong, + pub start_code: ::c_ulong, + pub start_stack: ::c_ulong, + pub signal: ::c_long, + __reserved: ::c_int, + pub u_ar0: *mut user_regs_struct, + pub u_fpstate: *mut user_fpregs_struct, + pub magic: ::c_ulong, + pub u_comm: [c_char; 32], + pub u_debugreg: [::c_int; 8], + } + + pub struct mcontext_t { + pub gregs: [greg_t; 19], + pub fpregs: *mut _libc_fpstate, + pub oldmask: ::c_ulong, + pub cr2: ::c_ulong, + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_ushort, + __pad1: ::c_ushort, + pub __seq: ::c_ushort, + __pad2: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } + + pub struct stat64 { + pub st_dev: ::dev_t, + __pad1: ::c_uint, + __st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: ::c_uint, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_ino: ::ino64_t, + } + + pub struct statfs64 { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + pub f_spare: [::__fsword_t; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + __unused1: ::c_ulong, + pub shm_dtime: ::time_t, + __unused2: ::c_ulong, + pub shm_ctime: ::time_t, + __unused3: ::c_ulong, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused4: ::c_ulong, + __unused5: ::c_ulong + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + __glibc_reserved1: ::c_ulong, + pub msg_rtime: ::time_t, + __glibc_reserved2: ::c_ulong, + pub msg_ctime: ::time_t, + __glibc_reserved3: ::c_ulong, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __glibc_reserved4: ::c_ulong, + __glibc_reserved5: ::c_ulong, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct seccomp_notif_sizes { + pub seccomp_notif: ::__u16, + pub seccomp_notif_resp: ::__u16, + pub seccomp_data: ::__u16, + } +} + +s_no_extra_traits! { + pub struct user_fpxregs_struct { + pub cwd: ::c_ushort, + pub swd: ::c_ushort, + pub twd: ::c_ushort, + pub fop: ::c_ushort, + pub fip: ::c_long, + pub fcs: ::c_long, + pub foo: ::c_long, + pub fos: ::c_long, + pub mxcsr: ::c_long, + __reserved: ::c_long, + pub st_space: [::c_long; 32], + pub xmm_space: [::c_long; 32], + padding: [::c_long; 56], + } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask: ::sigset_t, + __private: [u8; 112], + __ssp: [::c_ulong; 4], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for user_fpxregs_struct { + fn eq(&self, other: &user_fpxregs_struct) -> bool { + self.cwd == other.cwd + && self.swd == other.swd + && self.twd == other.twd + && self.fop == other.fop + && self.fip == other.fip + && self.fcs == other.fcs + && self.foo == other.foo + && self.fos == other.fos + && self.mxcsr == other.mxcsr + // Ignore __reserved field + && self.st_space == other.st_space + && self.xmm_space == other.xmm_space + // Ignore padding field + } + } + + impl Eq for user_fpxregs_struct {} + + impl ::fmt::Debug for user_fpxregs_struct { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("user_fpxregs_struct") + .field("cwd", &self.cwd) + .field("swd", &self.swd) + .field("twd", &self.twd) + .field("fop", &self.fop) + .field("fip", &self.fip) + .field("fcs", &self.fcs) + .field("foo", &self.foo) + .field("fos", &self.fos) + .field("mxcsr", &self.mxcsr) + // Ignore __reserved field + .field("st_space", &self.st_space) + .field("xmm_space", &self.xmm_space) + // Ignore padding field + .finish() + } + } + + impl ::hash::Hash for user_fpxregs_struct { + fn hash(&self, state: &mut H) { + self.cwd.hash(state); + self.swd.hash(state); + self.twd.hash(state); + self.fop.hash(state); + self.fip.hash(state); + self.fcs.hash(state); + self.foo.hash(state); + self.fos.hash(state); + self.mxcsr.hash(state); + // Ignore __reserved field + self.st_space.hash(state); + self.xmm_space.hash(state); + // Ignore padding field + } + } + + impl PartialEq for ucontext_t { + fn eq(&self, other: &ucontext_t) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_sigmask == other.uc_sigmask + // Ignore __private field + } + } + + impl Eq for ucontext_t {} + + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_flags) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field("uc_sigmask", &self.uc_sigmask) + // Ignore __private field + .finish() + } + } + + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_flags.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + self.uc_sigmask.hash(state); + // Ignore __private field + } + } + } +} + +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const O_DIRECT: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_LARGEFILE: ::c_int = 0o0100000; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 0x101000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x800; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_32BIT: ::c_int = 0x0040; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const EDEADLOCK: ::c_int = 35; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; + +pub const PTRACE_GETFPXREGS: ::c_uint = 18; +pub const PTRACE_SETFPXREGS: ::c_uint = 19; +pub const PTRACE_SYSEMU: ::c_uint = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const SFD_NONBLOCK: ::c_int = 0x0800; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] +pub const SIGUNUSED: ::c_int = 31; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const EXTPROC: ::tcflag_t = 0x00010000; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +// Syscall table +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_waitpid: ::c_long = 7; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_time: ::c_long = 13; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_break: ::c_long = 17; +pub const SYS_oldstat: ::c_long = 18; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_umount: ::c_long = 22; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_stime: ::c_long = 25; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_alarm: ::c_long = 27; +pub const SYS_oldfstat: ::c_long = 28; +pub const SYS_pause: ::c_long = 29; +pub const SYS_utime: ::c_long = 30; +pub const SYS_stty: ::c_long = 31; +pub const SYS_gtty: ::c_long = 32; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_ftime: ::c_long = 35; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_prof: ::c_long = 44; +pub const SYS_brk: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_signal: ::c_long = 48; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_lock: ::c_long = 53; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_mpx: ::c_long = 56; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_ulimit: ::c_long = 58; +pub const SYS_oldolduname: ::c_long = 59; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_sgetmask: ::c_long = 68; +pub const SYS_ssetmask: ::c_long = 69; +pub const SYS_setreuid: ::c_long = 70; +pub const SYS_setregid: ::c_long = 71; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrlimit: ::c_long = 76; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_getgroups: ::c_long = 80; +pub const SYS_setgroups: ::c_long = 81; +pub const SYS_select: ::c_long = 82; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_oldlstat: ::c_long = 84; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_readdir: ::c_long = 89; +pub const SYS_mmap: ::c_long = 90; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_fchown: ::c_long = 95; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_profil: ::c_long = 98; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_ioperm: ::c_long = 101; +pub const SYS_socketcall: ::c_long = 102; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_olduname: ::c_long = 109; +pub const SYS_iopl: ::c_long = 110; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_idle: ::c_long = 112; +pub const SYS_vm86old: ::c_long = 113; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_ipc: ::c_long = 117; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_modify_ldt: ::c_long = 123; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_create_module: ::c_long = 127; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_get_kernel_syms: ::c_long = 130; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_afs_syscall: ::c_long = 137; +pub const SYS_setfsuid: ::c_long = 138; +pub const SYS_setfsgid: ::c_long = 139; +pub const SYS__llseek: ::c_long = 140; +pub const SYS_getdents: ::c_long = 141; +pub const SYS__newselect: ::c_long = 142; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_setresuid: ::c_long = 164; +pub const SYS_getresuid: ::c_long = 165; +pub const SYS_vm86: ::c_long = 166; +pub const SYS_query_module: ::c_long = 167; +pub const SYS_poll: ::c_long = 168; +pub const SYS_nfsservctl: ::c_long = 169; +pub const SYS_setresgid: ::c_long = 170; +pub const SYS_getresgid: ::c_long = 171; +pub const SYS_prctl: ::c_long = 172; +pub const SYS_rt_sigreturn: ::c_long = 173; +pub const SYS_rt_sigaction: ::c_long = 174; +pub const SYS_rt_sigprocmask: ::c_long = 175; +pub const SYS_rt_sigpending: ::c_long = 176; +pub const SYS_rt_sigtimedwait: ::c_long = 177; +pub const SYS_rt_sigqueueinfo: ::c_long = 178; +pub const SYS_rt_sigsuspend: ::c_long = 179; +pub const SYS_pread64: ::c_long = 180; +pub const SYS_pwrite64: ::c_long = 181; +pub const SYS_chown: ::c_long = 182; +pub const SYS_getcwd: ::c_long = 183; +pub const SYS_capget: ::c_long = 184; +pub const SYS_capset: ::c_long = 185; +pub const SYS_sigaltstack: ::c_long = 186; +pub const SYS_sendfile: ::c_long = 187; +pub const SYS_getpmsg: ::c_long = 188; +pub const SYS_putpmsg: ::c_long = 189; +pub const SYS_vfork: ::c_long = 190; +pub const SYS_ugetrlimit: ::c_long = 191; +pub const SYS_mmap2: ::c_long = 192; +pub const SYS_truncate64: ::c_long = 193; +pub const SYS_ftruncate64: ::c_long = 194; +pub const SYS_stat64: ::c_long = 195; +pub const SYS_lstat64: ::c_long = 196; +pub const SYS_fstat64: ::c_long = 197; +pub const SYS_lchown32: ::c_long = 198; +pub const SYS_getuid32: ::c_long = 199; +pub const SYS_getgid32: ::c_long = 200; +pub const SYS_geteuid32: ::c_long = 201; +pub const SYS_getegid32: ::c_long = 202; +pub const SYS_setreuid32: ::c_long = 203; +pub const SYS_setregid32: ::c_long = 204; +pub const SYS_getgroups32: ::c_long = 205; +pub const SYS_setgroups32: ::c_long = 206; +pub const SYS_fchown32: ::c_long = 207; +pub const SYS_setresuid32: ::c_long = 208; +pub const SYS_getresuid32: ::c_long = 209; +pub const SYS_setresgid32: ::c_long = 210; +pub const SYS_getresgid32: ::c_long = 211; +pub const SYS_chown32: ::c_long = 212; +pub const SYS_setuid32: ::c_long = 213; +pub const SYS_setgid32: ::c_long = 214; +pub const SYS_setfsuid32: ::c_long = 215; +pub const SYS_setfsgid32: ::c_long = 216; +pub const SYS_pivot_root: ::c_long = 217; +pub const SYS_mincore: ::c_long = 218; +pub const SYS_madvise: ::c_long = 219; +pub const SYS_getdents64: ::c_long = 220; +pub const SYS_fcntl64: ::c_long = 221; +pub const SYS_gettid: ::c_long = 224; +pub const SYS_readahead: ::c_long = 225; +pub const SYS_setxattr: ::c_long = 226; +pub const SYS_lsetxattr: ::c_long = 227; +pub const SYS_fsetxattr: ::c_long = 228; +pub const SYS_getxattr: ::c_long = 229; +pub const SYS_lgetxattr: ::c_long = 230; +pub const SYS_fgetxattr: ::c_long = 231; +pub const SYS_listxattr: ::c_long = 232; +pub const SYS_llistxattr: ::c_long = 233; +pub const SYS_flistxattr: ::c_long = 234; +pub const SYS_removexattr: ::c_long = 235; +pub const SYS_lremovexattr: ::c_long = 236; +pub const SYS_fremovexattr: ::c_long = 237; +pub const SYS_tkill: ::c_long = 238; +pub const SYS_sendfile64: ::c_long = 239; +pub const SYS_futex: ::c_long = 240; +pub const SYS_sched_setaffinity: ::c_long = 241; +pub const SYS_sched_getaffinity: ::c_long = 242; +pub const SYS_set_thread_area: ::c_long = 243; +pub const SYS_get_thread_area: ::c_long = 244; +pub const SYS_io_setup: ::c_long = 245; +pub const SYS_io_destroy: ::c_long = 246; +pub const SYS_io_getevents: ::c_long = 247; +pub const SYS_io_submit: ::c_long = 248; +pub const SYS_io_cancel: ::c_long = 249; +pub const SYS_fadvise64: ::c_long = 250; +pub const SYS_exit_group: ::c_long = 252; +pub const SYS_lookup_dcookie: ::c_long = 253; +pub const SYS_epoll_create: ::c_long = 254; +pub const SYS_epoll_ctl: ::c_long = 255; +pub const SYS_epoll_wait: ::c_long = 256; +pub const SYS_remap_file_pages: ::c_long = 257; +pub const SYS_set_tid_address: ::c_long = 258; +pub const SYS_timer_create: ::c_long = 259; +pub const SYS_timer_settime: ::c_long = 260; +pub const SYS_timer_gettime: ::c_long = 261; +pub const SYS_timer_getoverrun: ::c_long = 262; +pub const SYS_timer_delete: ::c_long = 263; +pub const SYS_clock_settime: ::c_long = 264; +pub const SYS_clock_gettime: ::c_long = 265; +pub const SYS_clock_getres: ::c_long = 266; +pub const SYS_clock_nanosleep: ::c_long = 267; +pub const SYS_statfs64: ::c_long = 268; +pub const SYS_fstatfs64: ::c_long = 269; +pub const SYS_tgkill: ::c_long = 270; +pub const SYS_utimes: ::c_long = 271; +pub const SYS_fadvise64_64: ::c_long = 272; +pub const SYS_vserver: ::c_long = 273; +pub const SYS_mbind: ::c_long = 274; +pub const SYS_get_mempolicy: ::c_long = 275; +pub const SYS_set_mempolicy: ::c_long = 276; +pub const SYS_mq_open: ::c_long = 277; +pub const SYS_mq_unlink: ::c_long = 278; +pub const SYS_mq_timedsend: ::c_long = 279; +pub const SYS_mq_timedreceive: ::c_long = 280; +pub const SYS_mq_notify: ::c_long = 281; +pub const SYS_mq_getsetattr: ::c_long = 282; +pub const SYS_kexec_load: ::c_long = 283; +pub const SYS_waitid: ::c_long = 284; +pub const SYS_add_key: ::c_long = 286; +pub const SYS_request_key: ::c_long = 287; +pub const SYS_keyctl: ::c_long = 288; +pub const SYS_ioprio_set: ::c_long = 289; +pub const SYS_ioprio_get: ::c_long = 290; +pub const SYS_inotify_init: ::c_long = 291; +pub const SYS_inotify_add_watch: ::c_long = 292; +pub const SYS_inotify_rm_watch: ::c_long = 293; +pub const SYS_migrate_pages: ::c_long = 294; +pub const SYS_openat: ::c_long = 295; +pub const SYS_mkdirat: ::c_long = 296; +pub const SYS_mknodat: ::c_long = 297; +pub const SYS_fchownat: ::c_long = 298; +pub const SYS_futimesat: ::c_long = 299; +pub const SYS_fstatat64: ::c_long = 300; +pub const SYS_unlinkat: ::c_long = 301; +pub const SYS_renameat: ::c_long = 302; +pub const SYS_linkat: ::c_long = 303; +pub const SYS_symlinkat: ::c_long = 304; +pub const SYS_readlinkat: ::c_long = 305; +pub const SYS_fchmodat: ::c_long = 306; +pub const SYS_faccessat: ::c_long = 307; +pub const SYS_pselect6: ::c_long = 308; +pub const SYS_ppoll: ::c_long = 309; +pub const SYS_unshare: ::c_long = 310; +pub const SYS_set_robust_list: ::c_long = 311; +pub const SYS_get_robust_list: ::c_long = 312; +pub const SYS_splice: ::c_long = 313; +pub const SYS_sync_file_range: ::c_long = 314; +pub const SYS_tee: ::c_long = 315; +pub const SYS_vmsplice: ::c_long = 316; +pub const SYS_move_pages: ::c_long = 317; +pub const SYS_getcpu: ::c_long = 318; +pub const SYS_epoll_pwait: ::c_long = 319; +pub const SYS_utimensat: ::c_long = 320; +pub const SYS_signalfd: ::c_long = 321; +pub const SYS_timerfd_create: ::c_long = 322; +pub const SYS_eventfd: ::c_long = 323; +pub const SYS_fallocate: ::c_long = 324; +pub const SYS_timerfd_settime: ::c_long = 325; +pub const SYS_timerfd_gettime: ::c_long = 326; +pub const SYS_signalfd4: ::c_long = 327; +pub const SYS_eventfd2: ::c_long = 328; +pub const SYS_epoll_create1: ::c_long = 329; +pub const SYS_dup3: ::c_long = 330; +pub const SYS_pipe2: ::c_long = 331; +pub const SYS_inotify_init1: ::c_long = 332; +pub const SYS_preadv: ::c_long = 333; +pub const SYS_pwritev: ::c_long = 334; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 335; +pub const SYS_perf_event_open: ::c_long = 336; +pub const SYS_recvmmsg: ::c_long = 337; +pub const SYS_fanotify_init: ::c_long = 338; +pub const SYS_fanotify_mark: ::c_long = 339; +pub const SYS_prlimit64: ::c_long = 340; +pub const SYS_name_to_handle_at: ::c_long = 341; +pub const SYS_open_by_handle_at: ::c_long = 342; +pub const SYS_clock_adjtime: ::c_long = 343; +pub const SYS_syncfs: ::c_long = 344; +pub const SYS_sendmmsg: ::c_long = 345; +pub const SYS_setns: ::c_long = 346; +pub const SYS_process_vm_readv: ::c_long = 347; +pub const SYS_process_vm_writev: ::c_long = 348; +pub const SYS_kcmp: ::c_long = 349; +pub const SYS_finit_module: ::c_long = 350; +pub const SYS_sched_setattr: ::c_long = 351; +pub const SYS_sched_getattr: ::c_long = 352; +pub const SYS_renameat2: ::c_long = 353; +pub const SYS_seccomp: ::c_long = 354; +pub const SYS_getrandom: ::c_long = 355; +pub const SYS_memfd_create: ::c_long = 356; +pub const SYS_bpf: ::c_long = 357; +pub const SYS_execveat: ::c_long = 358; +pub const SYS_socket: ::c_long = 359; +pub const SYS_socketpair: ::c_long = 360; +pub const SYS_bind: ::c_long = 361; +pub const SYS_connect: ::c_long = 362; +pub const SYS_listen: ::c_long = 363; +pub const SYS_accept4: ::c_long = 364; +pub const SYS_getsockopt: ::c_long = 365; +pub const SYS_setsockopt: ::c_long = 366; +pub const SYS_getsockname: ::c_long = 367; +pub const SYS_getpeername: ::c_long = 368; +pub const SYS_sendto: ::c_long = 369; +pub const SYS_sendmsg: ::c_long = 370; +pub const SYS_recvfrom: ::c_long = 371; +pub const SYS_recvmsg: ::c_long = 372; +pub const SYS_shutdown: ::c_long = 373; +pub const SYS_userfaultfd: ::c_long = 374; +pub const SYS_membarrier: ::c_long = 375; +pub const SYS_mlock2: ::c_long = 376; +pub const SYS_copy_file_range: ::c_long = 377; +pub const SYS_preadv2: ::c_long = 378; +pub const SYS_pwritev2: ::c_long = 379; +pub const SYS_pkey_mprotect: ::c_long = 380; +pub const SYS_pkey_alloc: ::c_long = 381; +pub const SYS_pkey_free: ::c_long = 382; +pub const SYS_statx: ::c_long = 383; +pub const SYS_rseq: ::c_long = 386; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +// offsets in user_regs_structs, from sys/reg.h +pub const EBX: ::c_int = 0; +pub const ECX: ::c_int = 1; +pub const EDX: ::c_int = 2; +pub const ESI: ::c_int = 3; +pub const EDI: ::c_int = 4; +pub const EBP: ::c_int = 5; +pub const EAX: ::c_int = 6; +pub const DS: ::c_int = 7; +pub const ES: ::c_int = 8; +pub const FS: ::c_int = 9; +pub const GS: ::c_int = 10; +pub const ORIG_EAX: ::c_int = 11; +pub const EIP: ::c_int = 12; +pub const CS: ::c_int = 13; +pub const EFL: ::c_int = 14; +pub const UESP: ::c_int = 15; +pub const SS: ::c_int = 16; + +// offsets in mcontext_t.gregs from sys/ucontext.h +pub const REG_GS: ::c_int = 0; +pub const REG_FS: ::c_int = 1; +pub const REG_ES: ::c_int = 2; +pub const REG_DS: ::c_int = 3; +pub const REG_EDI: ::c_int = 4; +pub const REG_ESI: ::c_int = 5; +pub const REG_EBP: ::c_int = 6; +pub const REG_ESP: ::c_int = 7; +pub const REG_EBX: ::c_int = 8; +pub const REG_EDX: ::c_int = 9; +pub const REG_ECX: ::c_int = 10; +pub const REG_EAX: ::c_int = 11; +pub const REG_TRAPNO: ::c_int = 12; +pub const REG_ERR: ::c_int = 13; +pub const REG_EIP: ::c_int = 14; +pub const REG_CS: ::c_int = 15; +pub const REG_EFL: ::c_int = 16; +pub const REG_UESP: ::c_int = 17; +pub const REG_SS: ::c_int = 18; + +pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; +pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; +pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; +pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; + +extern "C" { + pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; + pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; + pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); + pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs new file mode 100644 index 000000000..06173be66 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs @@ -0,0 +1,58 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f32; 8] + } +} + +s! { + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[repr(align(16))] + pub struct mcontext_t { + pub fault_address: ::c_ulonglong, + pub regs: [::c_ulonglong; 31], + pub sp: ::c_ulonglong, + pub pc: ::c_ulonglong, + pub pstate: ::c_ulonglong, + // nested arrays to get the right size/length while being able to + // auto-derive traits like Debug + __reserved: [[u64; 32]; 16], + } + + #[repr(align(16))] + pub struct user_fpsimd_struct { + pub vregs: [[u64; 2]; 32], + pub fpsr: ::c_uint, + pub fpcr: ::c_uint, + } + + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} + +extern "C" { + pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; + pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; + pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); + pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs new file mode 100644 index 000000000..0848fb588 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs @@ -0,0 +1,64 @@ +use pthread_mutex_t; + +pub type c_long = i32; +pub type c_ulong = u32; + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 48; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; + +align_const! { + #[cfg(target_endian = "little")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; +} + +pub const SYS_sync_file_range2: ::c_long = 84; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs new file mode 100644 index 000000000..4535e73ee --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs @@ -0,0 +1,7 @@ +s! { + pub struct user_fpsimd_struct { + pub vregs: [::__uint128_t; 32], + pub fpsr: u32, + pub fpcr: u32, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs new file mode 100644 index 000000000..3802caf64 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs @@ -0,0 +1,73 @@ +use pthread_mutex_t; + +pub type c_long = i64; +pub type c_ulong = u64; + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 8; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 48; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 8; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 8; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; + +align_const! { + #[cfg(target_endian = "little")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + ], + }; +} + +pub const SYS_renameat: ::c_long = 38; +pub const SYS_sync_file_range: ::c_long = 84; +pub const SYS_getrlimit: ::c_long = 163; +pub const SYS_setrlimit: ::c_long = 164; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs new file mode 100644 index 000000000..f46ea941b --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -0,0 +1,938 @@ +//! AArch64-specific definitions for 64-bit linux-like values + +pub type c_char = u8; +pub type wchar_t = u32; +pub type nlink_t = u32; +pub type blksize_t = i32; +pub type suseconds_t = i64; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; + +s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + #[cfg(target_arch = "sparc64")] + __reserved0: ::c_int, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct statfs { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad1: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + __pad2: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad1: ::dev_t, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + __pad2: ::c_int, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2], + } + + pub struct statfs64 { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + pub f_spare: [::__fsword_t; 4], + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct pthread_attr_t { + __size: [usize; 8] + } + + pub struct user_regs_struct { + pub regs: [::c_ulonglong; 31], + pub sp: ::c_ulonglong, + pub pc: ::c_ulonglong, + pub pstate: ::c_ulonglong, + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_uint, + pub __seq: ::c_ushort, + __pad1: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused4: ::c_ulong, + __unused5: ::c_ulong + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct seccomp_notif_sizes { + pub seccomp_notif: ::__u16, + pub seccomp_notif_resp: ::__u16, + pub seccomp_data: ::__u16, + } +} + +pub const VEOF: usize = 4; + +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; + +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 0x101000; +pub const O_NOATIME: ::c_int = 0o1000000; +pub const O_PATH: ::c_int = 0o10000000; +pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; + +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] +pub const SIGUNUSED: ::c_int = 31; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x800; + +pub const PTRACE_DETACH: ::c_uint = 17; + +pub const EFD_NONBLOCK: ::c_int = 0x800; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const F_RDLCK: ::c_int = 0; +pub const F_WRLCK: ::c_int = 1; +pub const F_UNLCK: ::c_int = 2; + +pub const SFD_NONBLOCK: ::c_int = 0x0800; + +pub const SFD_CLOEXEC: ::c_int = 0x080000; + +pub const NCCS: usize = 32; + +pub const O_TRUNC: ::c_int = 512; + +pub const O_CLOEXEC: ::c_int = 0x80000; + +pub const EBFONT: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EDOTDOT: ::c_int = 73; + +pub const SA_NODEFER: ::c_int = 0x40000000; +pub const SA_RESETHAND: ::c_int = 0x80000000; +pub const SA_RESTART: ::c_int = 0x10000000; +pub const SA_NOCLDSTOP: ::c_int = 0x00000001; + +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; + +pub const EFD_CLOEXEC: ::c_int = 0x80000; + +pub const O_DIRECT: ::c_int = 0x10000; +pub const O_DIRECTORY: ::c_int = 0x4000; +pub const O_NOFOLLOW: ::c_int = 0x8000; + +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const EDEADLOCK: ::c_int = 35; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const SIGSTKSZ: ::size_t = 16384; +pub const MINSIGSTKSZ: ::size_t = 5120; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; +pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; +pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; +pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; + +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const EXTPROC: ::tcflag_t = 0x00010000; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +// sys/auxv.h +pub const HWCAP_FP: ::c_ulong = 1 << 0; +pub const HWCAP_ASIMD: ::c_ulong = 1 << 1; +pub const HWCAP_EVTSTRM: ::c_ulong = 1 << 2; +pub const HWCAP_AES: ::c_ulong = 1 << 3; +pub const HWCAP_PMULL: ::c_ulong = 1 << 4; +pub const HWCAP_SHA1: ::c_ulong = 1 << 5; +pub const HWCAP_SHA2: ::c_ulong = 1 << 6; +pub const HWCAP_CRC32: ::c_ulong = 1 << 7; +pub const HWCAP_ATOMICS: ::c_ulong = 1 << 8; +pub const HWCAP_FPHP: ::c_ulong = 1 << 9; +pub const HWCAP_ASIMDHP: ::c_ulong = 1 << 10; +pub const HWCAP_CPUID: ::c_ulong = 1 << 11; +pub const HWCAP_ASIMDRDM: ::c_ulong = 1 << 12; +pub const HWCAP_JSCVT: ::c_ulong = 1 << 13; +pub const HWCAP_FCMA: ::c_ulong = 1 << 14; +pub const HWCAP_LRCPC: ::c_ulong = 1 << 15; +pub const HWCAP_DCPOP: ::c_ulong = 1 << 16; +pub const HWCAP_SHA3: ::c_ulong = 1 << 17; +pub const HWCAP_SM3: ::c_ulong = 1 << 18; +pub const HWCAP_SM4: ::c_ulong = 1 << 19; +pub const HWCAP_ASIMDDP: ::c_ulong = 1 << 20; +pub const HWCAP_SHA512: ::c_ulong = 1 << 21; +pub const HWCAP_SVE: ::c_ulong = 1 << 22; +pub const HWCAP_ASIMDFHM: ::c_ulong = 1 << 23; +pub const HWCAP_DIT: ::c_ulong = 1 << 24; +pub const HWCAP_USCAT: ::c_ulong = 1 << 25; +pub const HWCAP_ILRCPC: ::c_ulong = 1 << 26; +pub const HWCAP_FLAGM: ::c_ulong = 1 << 27; +pub const HWCAP_SSBS: ::c_ulong = 1 << 28; +pub const HWCAP_SB: ::c_ulong = 1 << 29; +pub const HWCAP_PACA: ::c_ulong = 1 << 30; +pub const HWCAP_PACG: ::c_ulong = 1 << 31; +// FIXME: enable these again once linux-api-headers are up to date enough on CI. +// See discussion in https://github.com/rust-lang/libc/pull/1638 +//pub const HWCAP2_DCPODP: ::c_ulong = 1 << 0; +//pub const HWCAP2_SVE2: ::c_ulong = 1 << 1; +//pub const HWCAP2_SVEAES: ::c_ulong = 1 << 2; +//pub const HWCAP2_SVEPMULL: ::c_ulong = 1 << 3; +//pub const HWCAP2_SVEBITPERM: ::c_ulong = 1 << 4; +//pub const HWCAP2_SVESHA3: ::c_ulong = 1 << 5; +//pub const HWCAP2_SVESM4: ::c_ulong = 1 << 6; +//pub const HWCAP2_FLAGM2: ::c_ulong = 1 << 7; +//pub const HWCAP2_FRINT: ::c_ulong = 1 << 8; +//pub const HWCAP2_MTE: ::c_ulong = 1 << 18; + +// linux/prctl.h +pub const PR_PAC_RESET_KEYS: ::c_int = 54; +pub const PR_SET_TAGGED_ADDR_CTRL: ::c_int = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: ::c_int = 56; +pub const PR_PAC_SET_ENABLED_KEYS: ::c_int = 60; +pub const PR_PAC_GET_ENABLED_KEYS: ::c_int = 61; + +pub const PR_TAGGED_ADDR_ENABLE: ::c_ulong = 1; + +pub const PR_PAC_APIAKEY: ::c_ulong = 1 << 0; +pub const PR_PAC_APIBKEY: ::c_ulong = 1 << 1; +pub const PR_PAC_APDAKEY: ::c_ulong = 1 << 2; +pub const PR_PAC_APDBKEY: ::c_ulong = 1 << 3; +pub const PR_PAC_APGAKEY: ::c_ulong = 1 << 4; + +pub const PR_SME_SET_VL: ::c_int = 63; +pub const PR_SME_GET_VL: ::c_int = 64; +pub const PR_SME_VL_LEN_MAX: ::c_int = 0xffff; + +pub const PR_SME_SET_VL_INHERIT: ::c_ulong = 1 << 17; +pub const PR_SME_SET_VL_ONE_EXEC: ::c_ulong = 1 << 18; + +// Syscall table +pub const SYS_io_setup: ::c_long = 0; +pub const SYS_io_destroy: ::c_long = 1; +pub const SYS_io_submit: ::c_long = 2; +pub const SYS_io_cancel: ::c_long = 3; +pub const SYS_io_getevents: ::c_long = 4; +pub const SYS_setxattr: ::c_long = 5; +pub const SYS_lsetxattr: ::c_long = 6; +pub const SYS_fsetxattr: ::c_long = 7; +pub const SYS_getxattr: ::c_long = 8; +pub const SYS_lgetxattr: ::c_long = 9; +pub const SYS_fgetxattr: ::c_long = 10; +pub const SYS_listxattr: ::c_long = 11; +pub const SYS_llistxattr: ::c_long = 12; +pub const SYS_flistxattr: ::c_long = 13; +pub const SYS_removexattr: ::c_long = 14; +pub const SYS_lremovexattr: ::c_long = 15; +pub const SYS_fremovexattr: ::c_long = 16; +pub const SYS_getcwd: ::c_long = 17; +pub const SYS_lookup_dcookie: ::c_long = 18; +pub const SYS_eventfd2: ::c_long = 19; +pub const SYS_epoll_create1: ::c_long = 20; +pub const SYS_epoll_ctl: ::c_long = 21; +pub const SYS_epoll_pwait: ::c_long = 22; +pub const SYS_dup: ::c_long = 23; +pub const SYS_dup3: ::c_long = 24; +pub const SYS_fcntl: ::c_long = 25; +pub const SYS_inotify_init1: ::c_long = 26; +pub const SYS_inotify_add_watch: ::c_long = 27; +pub const SYS_inotify_rm_watch: ::c_long = 28; +pub const SYS_ioctl: ::c_long = 29; +pub const SYS_ioprio_set: ::c_long = 30; +pub const SYS_ioprio_get: ::c_long = 31; +pub const SYS_flock: ::c_long = 32; +pub const SYS_mknodat: ::c_long = 33; +pub const SYS_mkdirat: ::c_long = 34; +pub const SYS_unlinkat: ::c_long = 35; +pub const SYS_symlinkat: ::c_long = 36; +pub const SYS_linkat: ::c_long = 37; +// 38 is renameat only on LP64 +pub const SYS_umount2: ::c_long = 39; +pub const SYS_mount: ::c_long = 40; +pub const SYS_pivot_root: ::c_long = 41; +pub const SYS_nfsservctl: ::c_long = 42; +pub const SYS_statfs: ::c_long = 43; +pub const SYS_fstatfs: ::c_long = 44; +pub const SYS_truncate: ::c_long = 45; +pub const SYS_ftruncate: ::c_long = 46; +pub const SYS_fallocate: ::c_long = 47; +pub const SYS_faccessat: ::c_long = 48; +pub const SYS_chdir: ::c_long = 49; +pub const SYS_fchdir: ::c_long = 50; +pub const SYS_chroot: ::c_long = 51; +pub const SYS_fchmod: ::c_long = 52; +pub const SYS_fchmodat: ::c_long = 53; +pub const SYS_fchownat: ::c_long = 54; +pub const SYS_fchown: ::c_long = 55; +pub const SYS_openat: ::c_long = 56; +pub const SYS_close: ::c_long = 57; +pub const SYS_vhangup: ::c_long = 58; +pub const SYS_pipe2: ::c_long = 59; +pub const SYS_quotactl: ::c_long = 60; +pub const SYS_getdents64: ::c_long = 61; +pub const SYS_lseek: ::c_long = 62; +pub const SYS_read: ::c_long = 63; +pub const SYS_write: ::c_long = 64; +pub const SYS_readv: ::c_long = 65; +pub const SYS_writev: ::c_long = 66; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_preadv: ::c_long = 69; +pub const SYS_pwritev: ::c_long = 70; +pub const SYS_pselect6: ::c_long = 72; +pub const SYS_ppoll: ::c_long = 73; +pub const SYS_signalfd4: ::c_long = 74; +pub const SYS_vmsplice: ::c_long = 75; +pub const SYS_splice: ::c_long = 76; +pub const SYS_tee: ::c_long = 77; +pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_newfstatat: ::c_long = 79; +pub const SYS_fstat: ::c_long = 80; +pub const SYS_sync: ::c_long = 81; +pub const SYS_fsync: ::c_long = 82; +pub const SYS_fdatasync: ::c_long = 83; +// 84 sync_file_range on LP64 and sync_file_range2 on ILP32 +pub const SYS_timerfd_create: ::c_long = 85; +pub const SYS_timerfd_settime: ::c_long = 86; +pub const SYS_timerfd_gettime: ::c_long = 87; +pub const SYS_utimensat: ::c_long = 88; +pub const SYS_acct: ::c_long = 89; +pub const SYS_capget: ::c_long = 90; +pub const SYS_capset: ::c_long = 91; +pub const SYS_personality: ::c_long = 92; +pub const SYS_exit: ::c_long = 93; +pub const SYS_exit_group: ::c_long = 94; +pub const SYS_waitid: ::c_long = 95; +pub const SYS_set_tid_address: ::c_long = 96; +pub const SYS_unshare: ::c_long = 97; +pub const SYS_futex: ::c_long = 98; +pub const SYS_set_robust_list: ::c_long = 99; +pub const SYS_get_robust_list: ::c_long = 100; +pub const SYS_nanosleep: ::c_long = 101; +pub const SYS_getitimer: ::c_long = 102; +pub const SYS_setitimer: ::c_long = 103; +pub const SYS_kexec_load: ::c_long = 104; +pub const SYS_init_module: ::c_long = 105; +pub const SYS_delete_module: ::c_long = 106; +pub const SYS_timer_create: ::c_long = 107; +pub const SYS_timer_gettime: ::c_long = 108; +pub const SYS_timer_getoverrun: ::c_long = 109; +pub const SYS_timer_settime: ::c_long = 110; +pub const SYS_timer_delete: ::c_long = 111; +pub const SYS_clock_settime: ::c_long = 112; +pub const SYS_clock_gettime: ::c_long = 113; +pub const SYS_clock_getres: ::c_long = 114; +pub const SYS_clock_nanosleep: ::c_long = 115; +pub const SYS_syslog: ::c_long = 116; +pub const SYS_ptrace: ::c_long = 117; +pub const SYS_sched_setparam: ::c_long = 118; +pub const SYS_sched_setscheduler: ::c_long = 119; +pub const SYS_sched_getscheduler: ::c_long = 120; +pub const SYS_sched_getparam: ::c_long = 121; +pub const SYS_sched_setaffinity: ::c_long = 122; +pub const SYS_sched_getaffinity: ::c_long = 123; +pub const SYS_sched_yield: ::c_long = 124; +pub const SYS_sched_get_priority_max: ::c_long = 125; +pub const SYS_sched_get_priority_min: ::c_long = 126; +pub const SYS_sched_rr_get_interval: ::c_long = 127; +pub const SYS_restart_syscall: ::c_long = 128; +pub const SYS_kill: ::c_long = 129; +pub const SYS_tkill: ::c_long = 130; +pub const SYS_tgkill: ::c_long = 131; +pub const SYS_sigaltstack: ::c_long = 132; +pub const SYS_rt_sigsuspend: ::c_long = 133; +pub const SYS_rt_sigaction: ::c_long = 134; +pub const SYS_rt_sigprocmask: ::c_long = 135; +pub const SYS_rt_sigpending: ::c_long = 136; +pub const SYS_rt_sigtimedwait: ::c_long = 137; +pub const SYS_rt_sigqueueinfo: ::c_long = 138; +pub const SYS_rt_sigreturn: ::c_long = 139; +pub const SYS_setpriority: ::c_long = 140; +pub const SYS_getpriority: ::c_long = 141; +pub const SYS_reboot: ::c_long = 142; +pub const SYS_setregid: ::c_long = 143; +pub const SYS_setgid: ::c_long = 144; +pub const SYS_setreuid: ::c_long = 145; +pub const SYS_setuid: ::c_long = 146; +pub const SYS_setresuid: ::c_long = 147; +pub const SYS_getresuid: ::c_long = 148; +pub const SYS_setresgid: ::c_long = 149; +pub const SYS_getresgid: ::c_long = 150; +pub const SYS_setfsuid: ::c_long = 151; +pub const SYS_setfsgid: ::c_long = 152; +pub const SYS_times: ::c_long = 153; +pub const SYS_setpgid: ::c_long = 154; +pub const SYS_getpgid: ::c_long = 155; +pub const SYS_getsid: ::c_long = 156; +pub const SYS_setsid: ::c_long = 157; +pub const SYS_getgroups: ::c_long = 158; +pub const SYS_setgroups: ::c_long = 159; +pub const SYS_uname: ::c_long = 160; +pub const SYS_sethostname: ::c_long = 161; +pub const SYS_setdomainname: ::c_long = 162; +// 163 is getrlimit only on LP64 +// 164 is setrlimit only on LP64 +pub const SYS_getrusage: ::c_long = 165; +pub const SYS_umask: ::c_long = 166; +pub const SYS_prctl: ::c_long = 167; +pub const SYS_getcpu: ::c_long = 168; +pub const SYS_gettimeofday: ::c_long = 169; +pub const SYS_settimeofday: ::c_long = 170; +pub const SYS_adjtimex: ::c_long = 171; +pub const SYS_getpid: ::c_long = 172; +pub const SYS_getppid: ::c_long = 173; +pub const SYS_getuid: ::c_long = 174; +pub const SYS_geteuid: ::c_long = 175; +pub const SYS_getgid: ::c_long = 176; +pub const SYS_getegid: ::c_long = 177; +pub const SYS_gettid: ::c_long = 178; +pub const SYS_sysinfo: ::c_long = 179; +pub const SYS_mq_open: ::c_long = 180; +pub const SYS_mq_unlink: ::c_long = 181; +pub const SYS_mq_timedsend: ::c_long = 182; +pub const SYS_mq_timedreceive: ::c_long = 183; +pub const SYS_mq_notify: ::c_long = 184; +pub const SYS_mq_getsetattr: ::c_long = 185; +pub const SYS_msgget: ::c_long = 186; +pub const SYS_msgctl: ::c_long = 187; +pub const SYS_msgrcv: ::c_long = 188; +pub const SYS_msgsnd: ::c_long = 189; +pub const SYS_semget: ::c_long = 190; +pub const SYS_semctl: ::c_long = 191; +pub const SYS_semtimedop: ::c_long = 192; +pub const SYS_semop: ::c_long = 193; +pub const SYS_shmget: ::c_long = 194; +pub const SYS_shmctl: ::c_long = 195; +pub const SYS_shmat: ::c_long = 196; +pub const SYS_shmdt: ::c_long = 197; +pub const SYS_socket: ::c_long = 198; +pub const SYS_socketpair: ::c_long = 199; +pub const SYS_bind: ::c_long = 200; +pub const SYS_listen: ::c_long = 201; +pub const SYS_accept: ::c_long = 202; +pub const SYS_connect: ::c_long = 203; +pub const SYS_getsockname: ::c_long = 204; +pub const SYS_getpeername: ::c_long = 205; +pub const SYS_sendto: ::c_long = 206; +pub const SYS_recvfrom: ::c_long = 207; +pub const SYS_setsockopt: ::c_long = 208; +pub const SYS_getsockopt: ::c_long = 209; +pub const SYS_shutdown: ::c_long = 210; +pub const SYS_sendmsg: ::c_long = 211; +pub const SYS_recvmsg: ::c_long = 212; +pub const SYS_readahead: ::c_long = 213; +pub const SYS_brk: ::c_long = 214; +pub const SYS_munmap: ::c_long = 215; +pub const SYS_mremap: ::c_long = 216; +pub const SYS_add_key: ::c_long = 217; +pub const SYS_request_key: ::c_long = 218; +pub const SYS_keyctl: ::c_long = 219; +pub const SYS_clone: ::c_long = 220; +pub const SYS_execve: ::c_long = 221; +pub const SYS_mmap: ::c_long = 222; +pub const SYS_swapon: ::c_long = 224; +pub const SYS_swapoff: ::c_long = 225; +pub const SYS_mprotect: ::c_long = 226; +pub const SYS_msync: ::c_long = 227; +pub const SYS_mlock: ::c_long = 228; +pub const SYS_munlock: ::c_long = 229; +pub const SYS_mlockall: ::c_long = 230; +pub const SYS_munlockall: ::c_long = 231; +pub const SYS_mincore: ::c_long = 232; +pub const SYS_madvise: ::c_long = 233; +pub const SYS_remap_file_pages: ::c_long = 234; +pub const SYS_mbind: ::c_long = 235; +pub const SYS_get_mempolicy: ::c_long = 236; +pub const SYS_set_mempolicy: ::c_long = 237; +pub const SYS_migrate_pages: ::c_long = 238; +pub const SYS_move_pages: ::c_long = 239; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; +pub const SYS_perf_event_open: ::c_long = 241; +pub const SYS_accept4: ::c_long = 242; +pub const SYS_recvmmsg: ::c_long = 243; +pub const SYS_wait4: ::c_long = 260; +pub const SYS_prlimit64: ::c_long = 261; +pub const SYS_fanotify_init: ::c_long = 262; +pub const SYS_fanotify_mark: ::c_long = 263; +pub const SYS_name_to_handle_at: ::c_long = 264; +pub const SYS_open_by_handle_at: ::c_long = 265; +pub const SYS_clock_adjtime: ::c_long = 266; +pub const SYS_syncfs: ::c_long = 267; +pub const SYS_setns: ::c_long = 268; +pub const SYS_sendmmsg: ::c_long = 269; +pub const SYS_process_vm_readv: ::c_long = 270; +pub const SYS_process_vm_writev: ::c_long = 271; +pub const SYS_kcmp: ::c_long = 272; +pub const SYS_finit_module: ::c_long = 273; +pub const SYS_sched_setattr: ::c_long = 274; +pub const SYS_sched_getattr: ::c_long = 275; +pub const SYS_renameat2: ::c_long = 276; +pub const SYS_seccomp: ::c_long = 277; +pub const SYS_getrandom: ::c_long = 278; +pub const SYS_memfd_create: ::c_long = 279; +pub const SYS_bpf: ::c_long = 280; +pub const SYS_execveat: ::c_long = 281; +pub const SYS_userfaultfd: ::c_long = 282; +pub const SYS_membarrier: ::c_long = 283; +pub const SYS_mlock2: ::c_long = 284; +pub const SYS_copy_file_range: ::c_long = 285; +pub const SYS_preadv2: ::c_long = 286; +pub const SYS_pwritev2: ::c_long = 287; +pub const SYS_pkey_mprotect: ::c_long = 288; +pub const SYS_pkey_alloc: ::c_long = 289; +pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; +pub const SYS_rseq: ::c_long = 293; +pub const SYS_kexec_file_load: ::c_long = 294; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(target_pointer_width = "32")] { + mod ilp32; + pub use self::ilp32::*; + } else { + mod lp64; + pub use self::lp64::*; + } +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} + +cfg_if! { + if #[cfg(libc_int128)] { + mod int128; + pub use self::int128::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs new file mode 100644 index 000000000..dc191f51f --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs @@ -0,0 +1,40 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } +} + +s! { + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[repr(align(16))] + pub struct mcontext_t { + pub __pc: ::c_ulonglong, + pub __gregs: [::c_ulonglong; 32], + pub __flags: ::c_uint, + pub __extcontext: [::c_ulonglong; 0], + } + + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs new file mode 100644 index 000000000..ea59181bc --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -0,0 +1,885 @@ +use pthread_mutex_t; + +pub type c_char = i8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type wchar_t = i32; + +pub type blksize_t = i32; +pub type nlink_t = u32; +pub type suseconds_t = i64; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad1: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + __pad2: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub __pad1: ::dev_t, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub __pad2: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2], + } + + pub struct statfs { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + pub f_spare: [::__fsword_t; 4], + } + + pub struct statfs64 { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + pub f_spare: [::__fsword_t; 4], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct pthread_attr_t { + __size: [::c_ulong; 7] + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [u64; 0], + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_uint, + pub __seq: ::c_ushort, + __pad2: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused4: ::c_ulong, + __unused5: ::c_ulong + } + + pub struct user_regs_struct { + pub regs: [u64; 32], + pub orig_a0: u64, + pub csr_era: u64, + pub csr_badv: u64, + pub reserved: [u64; 10], + + } + + pub struct user_fp_struct { + pub fpr: [u64; 32], + pub fcc: u64, + pub fcsr: u32, + } +} + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; + +align_const! { + #[cfg(target_endian = "little")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; +} + +pub const SYS_io_setup: ::c_long = 0; +pub const SYS_io_destroy: ::c_long = 1; +pub const SYS_io_submit: ::c_long = 2; +pub const SYS_io_cancel: ::c_long = 3; +pub const SYS_io_getevents: ::c_long = 4; +pub const SYS_setxattr: ::c_long = 5; +pub const SYS_lsetxattr: ::c_long = 6; +pub const SYS_fsetxattr: ::c_long = 7; +pub const SYS_getxattr: ::c_long = 8; +pub const SYS_lgetxattr: ::c_long = 9; +pub const SYS_fgetxattr: ::c_long = 10; +pub const SYS_listxattr: ::c_long = 11; +pub const SYS_llistxattr: ::c_long = 12; +pub const SYS_flistxattr: ::c_long = 13; +pub const SYS_removexattr: ::c_long = 14; +pub const SYS_lremovexattr: ::c_long = 15; +pub const SYS_fremovexattr: ::c_long = 16; +pub const SYS_getcwd: ::c_long = 17; +pub const SYS_lookup_dcookie: ::c_long = 18; +pub const SYS_eventfd2: ::c_long = 19; +pub const SYS_epoll_create1: ::c_long = 20; +pub const SYS_epoll_ctl: ::c_long = 21; +pub const SYS_epoll_pwait: ::c_long = 22; +pub const SYS_dup: ::c_long = 23; +pub const SYS_dup3: ::c_long = 24; +pub const SYS_fcntl: ::c_long = 25; +pub const SYS_inotify_init1: ::c_long = 26; +pub const SYS_inotify_add_watch: ::c_long = 27; +pub const SYS_inotify_rm_watch: ::c_long = 28; +pub const SYS_ioctl: ::c_long = 29; +pub const SYS_ioprio_set: ::c_long = 30; +pub const SYS_ioprio_get: ::c_long = 31; +pub const SYS_flock: ::c_long = 32; +pub const SYS_mknodat: ::c_long = 33; +pub const SYS_mkdirat: ::c_long = 34; +pub const SYS_unlinkat: ::c_long = 35; +pub const SYS_symlinkat: ::c_long = 36; +pub const SYS_linkat: ::c_long = 37; +pub const SYS_umount2: ::c_long = 39; +pub const SYS_mount: ::c_long = 40; +pub const SYS_pivot_root: ::c_long = 41; +pub const SYS_nfsservctl: ::c_long = 42; +pub const SYS_statfs: ::c_long = 43; +pub const SYS_fstatfs: ::c_long = 44; +pub const SYS_truncate: ::c_long = 45; +pub const SYS_ftruncate: ::c_long = 46; +pub const SYS_fallocate: ::c_long = 47; +pub const SYS_faccessat: ::c_long = 48; +pub const SYS_chdir: ::c_long = 49; +pub const SYS_fchdir: ::c_long = 50; +pub const SYS_chroot: ::c_long = 51; +pub const SYS_fchmod: ::c_long = 52; +pub const SYS_fchmodat: ::c_long = 53; +pub const SYS_fchownat: ::c_long = 54; +pub const SYS_fchown: ::c_long = 55; +pub const SYS_openat: ::c_long = 56; +pub const SYS_close: ::c_long = 57; +pub const SYS_vhangup: ::c_long = 58; +pub const SYS_pipe2: ::c_long = 59; +pub const SYS_quotactl: ::c_long = 60; +pub const SYS_getdents64: ::c_long = 61; +pub const SYS_lseek: ::c_long = 62; +pub const SYS_read: ::c_long = 63; +pub const SYS_write: ::c_long = 64; +pub const SYS_readv: ::c_long = 65; +pub const SYS_writev: ::c_long = 66; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_preadv: ::c_long = 69; +pub const SYS_pwritev: ::c_long = 70; +pub const SYS_sendfile: ::c_long = 71; +pub const SYS_pselect6: ::c_long = 72; +pub const SYS_ppoll: ::c_long = 73; +pub const SYS_signalfd4: ::c_long = 74; +pub const SYS_vmsplice: ::c_long = 75; +pub const SYS_splice: ::c_long = 76; +pub const SYS_tee: ::c_long = 77; +pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_sync: ::c_long = 81; +pub const SYS_fsync: ::c_long = 82; +pub const SYS_fdatasync: ::c_long = 83; +pub const SYS_sync_file_range: ::c_long = 84; +pub const SYS_timerfd_create: ::c_long = 85; +pub const SYS_timerfd_settime: ::c_long = 86; +pub const SYS_timerfd_gettime: ::c_long = 87; +pub const SYS_utimensat: ::c_long = 88; +pub const SYS_acct: ::c_long = 89; +pub const SYS_capget: ::c_long = 90; +pub const SYS_capset: ::c_long = 91; +pub const SYS_personality: ::c_long = 92; +pub const SYS_exit: ::c_long = 93; +pub const SYS_exit_group: ::c_long = 94; +pub const SYS_waitid: ::c_long = 95; +pub const SYS_set_tid_address: ::c_long = 96; +pub const SYS_unshare: ::c_long = 97; +pub const SYS_futex: ::c_long = 98; +pub const SYS_set_robust_list: ::c_long = 99; +pub const SYS_get_robust_list: ::c_long = 100; +pub const SYS_nanosleep: ::c_long = 101; +pub const SYS_getitimer: ::c_long = 102; +pub const SYS_setitimer: ::c_long = 103; +pub const SYS_kexec_load: ::c_long = 104; +pub const SYS_init_module: ::c_long = 105; +pub const SYS_delete_module: ::c_long = 106; +pub const SYS_timer_create: ::c_long = 107; +pub const SYS_timer_gettime: ::c_long = 108; +pub const SYS_timer_getoverrun: ::c_long = 109; +pub const SYS_timer_settime: ::c_long = 110; +pub const SYS_timer_delete: ::c_long = 111; +pub const SYS_clock_settime: ::c_long = 112; +pub const SYS_clock_gettime: ::c_long = 113; +pub const SYS_clock_getres: ::c_long = 114; +pub const SYS_clock_nanosleep: ::c_long = 115; +pub const SYS_syslog: ::c_long = 116; +pub const SYS_ptrace: ::c_long = 117; +pub const SYS_sched_setparam: ::c_long = 118; +pub const SYS_sched_setscheduler: ::c_long = 119; +pub const SYS_sched_getscheduler: ::c_long = 120; +pub const SYS_sched_getparam: ::c_long = 121; +pub const SYS_sched_setaffinity: ::c_long = 122; +pub const SYS_sched_getaffinity: ::c_long = 123; +pub const SYS_sched_yield: ::c_long = 124; +pub const SYS_sched_get_priority_max: ::c_long = 125; +pub const SYS_sched_get_priority_min: ::c_long = 126; +pub const SYS_sched_rr_get_interval: ::c_long = 127; +pub const SYS_restart_syscall: ::c_long = 128; +pub const SYS_kill: ::c_long = 129; +pub const SYS_tkill: ::c_long = 130; +pub const SYS_tgkill: ::c_long = 131; +pub const SYS_sigaltstack: ::c_long = 132; +pub const SYS_rt_sigsuspend: ::c_long = 133; +pub const SYS_rt_sigaction: ::c_long = 134; +pub const SYS_rt_sigprocmask: ::c_long = 135; +pub const SYS_rt_sigpending: ::c_long = 136; +pub const SYS_rt_sigtimedwait: ::c_long = 137; +pub const SYS_rt_sigqueueinfo: ::c_long = 138; +pub const SYS_rt_sigreturn: ::c_long = 139; +pub const SYS_setpriority: ::c_long = 140; +pub const SYS_getpriority: ::c_long = 141; +pub const SYS_reboot: ::c_long = 142; +pub const SYS_setregid: ::c_long = 143; +pub const SYS_setgid: ::c_long = 144; +pub const SYS_setreuid: ::c_long = 145; +pub const SYS_setuid: ::c_long = 146; +pub const SYS_setresuid: ::c_long = 147; +pub const SYS_getresuid: ::c_long = 148; +pub const SYS_setresgid: ::c_long = 149; +pub const SYS_getresgid: ::c_long = 150; +pub const SYS_setfsuid: ::c_long = 151; +pub const SYS_setfsgid: ::c_long = 152; +pub const SYS_times: ::c_long = 153; +pub const SYS_setpgid: ::c_long = 154; +pub const SYS_getpgid: ::c_long = 155; +pub const SYS_getsid: ::c_long = 156; +pub const SYS_setsid: ::c_long = 157; +pub const SYS_getgroups: ::c_long = 158; +pub const SYS_setgroups: ::c_long = 159; +pub const SYS_uname: ::c_long = 160; +pub const SYS_sethostname: ::c_long = 161; +pub const SYS_setdomainname: ::c_long = 162; +pub const SYS_getrusage: ::c_long = 165; +pub const SYS_umask: ::c_long = 166; +pub const SYS_prctl: ::c_long = 167; +pub const SYS_getcpu: ::c_long = 168; +pub const SYS_gettimeofday: ::c_long = 169; +pub const SYS_settimeofday: ::c_long = 170; +pub const SYS_adjtimex: ::c_long = 171; +pub const SYS_getpid: ::c_long = 172; +pub const SYS_getppid: ::c_long = 173; +pub const SYS_getuid: ::c_long = 174; +pub const SYS_geteuid: ::c_long = 175; +pub const SYS_getgid: ::c_long = 176; +pub const SYS_getegid: ::c_long = 177; +pub const SYS_gettid: ::c_long = 178; +pub const SYS_sysinfo: ::c_long = 179; +pub const SYS_mq_open: ::c_long = 180; +pub const SYS_mq_unlink: ::c_long = 181; +pub const SYS_mq_timedsend: ::c_long = 182; +pub const SYS_mq_timedreceive: ::c_long = 183; +pub const SYS_mq_notify: ::c_long = 184; +pub const SYS_mq_getsetattr: ::c_long = 185; +pub const SYS_msgget: ::c_long = 186; +pub const SYS_msgctl: ::c_long = 187; +pub const SYS_msgrcv: ::c_long = 188; +pub const SYS_msgsnd: ::c_long = 189; +pub const SYS_semget: ::c_long = 190; +pub const SYS_semctl: ::c_long = 191; +pub const SYS_semtimedop: ::c_long = 192; +pub const SYS_semop: ::c_long = 193; +pub const SYS_shmget: ::c_long = 194; +pub const SYS_shmctl: ::c_long = 195; +pub const SYS_shmat: ::c_long = 196; +pub const SYS_shmdt: ::c_long = 197; +pub const SYS_socket: ::c_long = 198; +pub const SYS_socketpair: ::c_long = 199; +pub const SYS_bind: ::c_long = 200; +pub const SYS_listen: ::c_long = 201; +pub const SYS_accept: ::c_long = 202; +pub const SYS_connect: ::c_long = 203; +pub const SYS_getsockname: ::c_long = 204; +pub const SYS_getpeername: ::c_long = 205; +pub const SYS_sendto: ::c_long = 206; +pub const SYS_recvfrom: ::c_long = 207; +pub const SYS_setsockopt: ::c_long = 208; +pub const SYS_getsockopt: ::c_long = 209; +pub const SYS_shutdown: ::c_long = 210; +pub const SYS_sendmsg: ::c_long = 211; +pub const SYS_recvmsg: ::c_long = 212; +pub const SYS_readahead: ::c_long = 213; +pub const SYS_brk: ::c_long = 214; +pub const SYS_munmap: ::c_long = 215; +pub const SYS_mremap: ::c_long = 216; +pub const SYS_add_key: ::c_long = 217; +pub const SYS_request_key: ::c_long = 218; +pub const SYS_keyctl: ::c_long = 219; +pub const SYS_clone: ::c_long = 220; +pub const SYS_execve: ::c_long = 221; +pub const SYS_mmap: ::c_long = 222; +pub const SYS_fadvise64: ::c_long = 223; +pub const SYS_swapon: ::c_long = 224; +pub const SYS_swapoff: ::c_long = 225; +pub const SYS_mprotect: ::c_long = 226; +pub const SYS_msync: ::c_long = 227; +pub const SYS_mlock: ::c_long = 228; +pub const SYS_munlock: ::c_long = 229; +pub const SYS_mlockall: ::c_long = 230; +pub const SYS_munlockall: ::c_long = 231; +pub const SYS_mincore: ::c_long = 232; +pub const SYS_madvise: ::c_long = 233; +pub const SYS_remap_file_pages: ::c_long = 234; +pub const SYS_mbind: ::c_long = 235; +pub const SYS_get_mempolicy: ::c_long = 236; +pub const SYS_set_mempolicy: ::c_long = 237; +pub const SYS_migrate_pages: ::c_long = 238; +pub const SYS_move_pages: ::c_long = 239; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; +pub const SYS_perf_event_open: ::c_long = 241; +pub const SYS_accept4: ::c_long = 242; +pub const SYS_recvmmsg: ::c_long = 243; +//pub const SYS_arch_specific_syscall: ::c_long = 244; +pub const SYS_wait4: ::c_long = 260; +pub const SYS_prlimit64: ::c_long = 261; +pub const SYS_fanotify_init: ::c_long = 262; +pub const SYS_fanotify_mark: ::c_long = 263; +pub const SYS_name_to_handle_at: ::c_long = 264; +pub const SYS_open_by_handle_at: ::c_long = 265; +pub const SYS_clock_adjtime: ::c_long = 266; +pub const SYS_syncfs: ::c_long = 267; +pub const SYS_setns: ::c_long = 268; +pub const SYS_sendmmsg: ::c_long = 269; +pub const SYS_process_vm_readv: ::c_long = 270; +pub const SYS_process_vm_writev: ::c_long = 271; +pub const SYS_kcmp: ::c_long = 272; +pub const SYS_finit_module: ::c_long = 273; +pub const SYS_sched_setattr: ::c_long = 274; +pub const SYS_sched_getattr: ::c_long = 275; +pub const SYS_renameat2: ::c_long = 276; +pub const SYS_seccomp: ::c_long = 277; +pub const SYS_getrandom: ::c_long = 278; +pub const SYS_memfd_create: ::c_long = 279; +pub const SYS_bpf: ::c_long = 280; +pub const SYS_execveat: ::c_long = 281; +pub const SYS_userfaultfd: ::c_long = 282; +pub const SYS_membarrier: ::c_long = 283; +pub const SYS_mlock2: ::c_long = 284; +pub const SYS_copy_file_range: ::c_long = 285; +pub const SYS_preadv2: ::c_long = 286; +pub const SYS_pwritev2: ::c_long = 287; +pub const SYS_pkey_mprotect: ::c_long = 288; +pub const SYS_pkey_alloc: ::c_long = 289; +pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; +pub const SYS_io_pgetevents: ::c_long = 292; +pub const SYS_rseq: ::c_long = 293; +pub const SYS_kexec_file_load: ::c_long = 294; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; +pub const O_DIRECT: ::c_int = 0o00040000; +pub const O_DIRECTORY: ::c_int = 0o00200000; +pub const O_NOFOLLOW: ::c_int = 0o00400000; +pub const O_TRUNC: ::c_int = 0o00001000; +pub const O_NOATIME: ::c_int = 0o1000000; +pub const O_CLOEXEC: ::c_int = 0o02000000; +pub const O_PATH: ::c_int = 0o10000000; +pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; +pub const O_APPEND: ::c_int = 0o00002000; +pub const O_CREAT: ::c_int = 0o00000100; +pub const O_EXCL: ::c_int = 0o00000200; +pub const O_NOCTTY: ::c_int = 0o00000400; +pub const O_NONBLOCK: ::c_int = 0o00004000; +pub const FASYNC: ::c_int = 0o00020000; +pub const O_SYNC: ::c_int = 0o04010000; +pub const O_RSYNC: ::c_int = 0o04010000; +pub const O_FSYNC: ::c_int = O_SYNC; +pub const O_ASYNC: ::c_int = 0o00020000; +pub const O_DSYNC: ::c_int = 0o00010000; +pub const O_NDELAY: ::c_int = O_NONBLOCK; +pub const F_RDLCK: ::c_int = 0; +pub const F_WRLCK: ::c_int = 1; +pub const F_UNLCK: ::c_int = 2; +pub const F_GETLK: ::c_int = 5; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; +pub const F_GETOWN: ::c_int = 9; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const EDEADLK: ::c_int = 35; +pub const EDEADLOCK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EBFONT: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EDOTDOT: ::c_int = 73; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ERFKILL: ::c_int = 132; +pub const EHWPOISON: ::c_int = 133; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; + +pub const MAP_NORESERVE: ::c_int = 0x4000; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x1000; +pub const MAP_LOCKED: ::c_int = 0x2000; +pub const MAP_POPULATE: ::c_int = 0x8000; +pub const MAP_NONBLOCK: ::c_int = 0x10000; +pub const MAP_STACK: ::c_int = 0x20000; +pub const MAP_HUGETLB: ::c_int = 0x40000; +pub const MAP_SYNC: ::c_int = 0x080000; +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const SFD_NONBLOCK: ::c_int = 0x800; +pub const SFD_CLOEXEC: ::c_int = 0x080000; +pub const SA_NODEFER: ::c_int = 0x40000000; +pub const SA_RESETHAND: ::c_int = 0x80000000; +pub const SA_RESTART: ::c_int = 0x10000000; +pub const SA_NOCLDSTOP: ::c_int = 0x00000001; +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SIG_BLOCK: ::c_int = 0; +pub const SIG_UNBLOCK: ::c_int = 1; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGCHLD: ::c_int = 17; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGURG: ::c_int = 23; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGIO: ::c_int = 29; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIGSYS: ::c_int = 31; +pub const SIGUNUSED: ::c_int = 31; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const PTRACE_GETFPREGS: ::c_uint = 14; +pub const PTRACE_SETFPREGS: ::c_uint = 15; +pub const PTRACE_DETACH: ::c_uint = 17; +pub const PTRACE_GETFPXREGS: ::c_uint = 18; +pub const PTRACE_SETFPXREGS: ::c_uint = 19; +pub const PTRACE_GETREGS: ::c_uint = 12; +pub const PTRACE_SETREGS: ::c_uint = 13; +pub const PTRACE_SYSEMU: ::c_uint = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; + +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; + +pub const VEOF: usize = 4; +pub const VTIME: usize = 5; +pub const VMIN: usize = 6; +pub const VSWTC: usize = 7; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VSUSP: usize = 10; +pub const VEOL: usize = 11; +pub const VREPRINT: usize = 12; +pub const VDISCARD: usize = 13; +pub const VWERASE: usize = 14; +pub const VEOL2: usize = 16; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; +pub const SIGSTKSZ: ::size_t = 16384; +pub const MINSIGSTKSZ: ::size_t = 4096; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const XCASE: ::tcflag_t = 0x00000004; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; + +pub const NCCS: usize = 32; + +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; + +pub const EFD_CLOEXEC: ::c_int = 0x80000; +pub const EFD_NONBLOCK: ::c_int = 0x800; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/align.rs new file mode 100644 index 000000000..7ca870fd0 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs new file mode 100644 index 000000000..66b29a8aa --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -0,0 +1,933 @@ +use pthread_mutex_t; + +pub type blksize_t = i64; +pub type c_char = i8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type nlink_t = u64; +pub type suseconds_t = i64; +pub type wchar_t = i32; +pub type __u64 = ::c_ulong; +pub type __s64 = ::c_long; + +s! { + pub struct stat { + pub st_dev: ::c_ulong, + st_pad1: [::c_long; 2], + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::c_ulong, + st_pad2: [::c_ulong; 1], + pub st_size: ::off_t, + st_pad3: ::c_long, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + st_pad4: ::c_long, + pub st_blocks: ::blkcnt_t, + st_pad5: [::c_long; 7], + } + + pub struct statfs { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_frsize: ::c_long, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_files: ::fsblkcnt_t, + pub f_ffree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::c_long, + f_spare: [::c_long; 6], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct stat64 { + pub st_dev: ::c_ulong, + st_pad1: [::c_long; 2], + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::c_ulong, + st_pad2: [::c_long; 2], + pub st_size: ::off64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + st_pad3: ::c_long, + pub st_blocks: ::blkcnt64_t, + st_pad5: [::c_long; 7], + } + + pub struct statfs64 { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_frsize: ::c_long, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_bavail: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 5], + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct pthread_attr_t { + __size: [::c_ulong; 7] + } + + pub struct sigaction { + pub sa_flags: ::c_int, + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_restorer: ::Option, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_code: ::c_int, + pub si_errno: ::c_int, + _pad: ::c_int, + _pad2: [::c_long; 14], + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_uint, + pub __seq: ::c_ushort, + __pad1: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused4: ::c_ulong, + __unused5: ::c_ulong + } +} + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; + +align_const! { + #[cfg(target_endian = "little")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; +} + +pub const SYS_read: ::c_long = 5000 + 0; +pub const SYS_write: ::c_long = 5000 + 1; +pub const SYS_open: ::c_long = 5000 + 2; +pub const SYS_close: ::c_long = 5000 + 3; +pub const SYS_stat: ::c_long = 5000 + 4; +pub const SYS_fstat: ::c_long = 5000 + 5; +pub const SYS_lstat: ::c_long = 5000 + 6; +pub const SYS_poll: ::c_long = 5000 + 7; +pub const SYS_lseek: ::c_long = 5000 + 8; +pub const SYS_mmap: ::c_long = 5000 + 9; +pub const SYS_mprotect: ::c_long = 5000 + 10; +pub const SYS_munmap: ::c_long = 5000 + 11; +pub const SYS_brk: ::c_long = 5000 + 12; +pub const SYS_rt_sigaction: ::c_long = 5000 + 13; +pub const SYS_rt_sigprocmask: ::c_long = 5000 + 14; +pub const SYS_ioctl: ::c_long = 5000 + 15; +pub const SYS_pread64: ::c_long = 5000 + 16; +pub const SYS_pwrite64: ::c_long = 5000 + 17; +pub const SYS_readv: ::c_long = 5000 + 18; +pub const SYS_writev: ::c_long = 5000 + 19; +pub const SYS_access: ::c_long = 5000 + 20; +pub const SYS_pipe: ::c_long = 5000 + 21; +pub const SYS__newselect: ::c_long = 5000 + 22; +pub const SYS_sched_yield: ::c_long = 5000 + 23; +pub const SYS_mremap: ::c_long = 5000 + 24; +pub const SYS_msync: ::c_long = 5000 + 25; +pub const SYS_mincore: ::c_long = 5000 + 26; +pub const SYS_madvise: ::c_long = 5000 + 27; +pub const SYS_shmget: ::c_long = 5000 + 28; +pub const SYS_shmat: ::c_long = 5000 + 29; +pub const SYS_shmctl: ::c_long = 5000 + 30; +pub const SYS_dup: ::c_long = 5000 + 31; +pub const SYS_dup2: ::c_long = 5000 + 32; +pub const SYS_pause: ::c_long = 5000 + 33; +pub const SYS_nanosleep: ::c_long = 5000 + 34; +pub const SYS_getitimer: ::c_long = 5000 + 35; +pub const SYS_setitimer: ::c_long = 5000 + 36; +pub const SYS_alarm: ::c_long = 5000 + 37; +pub const SYS_getpid: ::c_long = 5000 + 38; +pub const SYS_sendfile: ::c_long = 5000 + 39; +pub const SYS_socket: ::c_long = 5000 + 40; +pub const SYS_connect: ::c_long = 5000 + 41; +pub const SYS_accept: ::c_long = 5000 + 42; +pub const SYS_sendto: ::c_long = 5000 + 43; +pub const SYS_recvfrom: ::c_long = 5000 + 44; +pub const SYS_sendmsg: ::c_long = 5000 + 45; +pub const SYS_recvmsg: ::c_long = 5000 + 46; +pub const SYS_shutdown: ::c_long = 5000 + 47; +pub const SYS_bind: ::c_long = 5000 + 48; +pub const SYS_listen: ::c_long = 5000 + 49; +pub const SYS_getsockname: ::c_long = 5000 + 50; +pub const SYS_getpeername: ::c_long = 5000 + 51; +pub const SYS_socketpair: ::c_long = 5000 + 52; +pub const SYS_setsockopt: ::c_long = 5000 + 53; +pub const SYS_getsockopt: ::c_long = 5000 + 54; +pub const SYS_clone: ::c_long = 5000 + 55; +pub const SYS_fork: ::c_long = 5000 + 56; +pub const SYS_execve: ::c_long = 5000 + 57; +pub const SYS_exit: ::c_long = 5000 + 58; +pub const SYS_wait4: ::c_long = 5000 + 59; +pub const SYS_kill: ::c_long = 5000 + 60; +pub const SYS_uname: ::c_long = 5000 + 61; +pub const SYS_semget: ::c_long = 5000 + 62; +pub const SYS_semop: ::c_long = 5000 + 63; +pub const SYS_semctl: ::c_long = 5000 + 64; +pub const SYS_shmdt: ::c_long = 5000 + 65; +pub const SYS_msgget: ::c_long = 5000 + 66; +pub const SYS_msgsnd: ::c_long = 5000 + 67; +pub const SYS_msgrcv: ::c_long = 5000 + 68; +pub const SYS_msgctl: ::c_long = 5000 + 69; +pub const SYS_fcntl: ::c_long = 5000 + 70; +pub const SYS_flock: ::c_long = 5000 + 71; +pub const SYS_fsync: ::c_long = 5000 + 72; +pub const SYS_fdatasync: ::c_long = 5000 + 73; +pub const SYS_truncate: ::c_long = 5000 + 74; +pub const SYS_ftruncate: ::c_long = 5000 + 75; +pub const SYS_getdents: ::c_long = 5000 + 76; +pub const SYS_getcwd: ::c_long = 5000 + 77; +pub const SYS_chdir: ::c_long = 5000 + 78; +pub const SYS_fchdir: ::c_long = 5000 + 79; +pub const SYS_rename: ::c_long = 5000 + 80; +pub const SYS_mkdir: ::c_long = 5000 + 81; +pub const SYS_rmdir: ::c_long = 5000 + 82; +pub const SYS_creat: ::c_long = 5000 + 83; +pub const SYS_link: ::c_long = 5000 + 84; +pub const SYS_unlink: ::c_long = 5000 + 85; +pub const SYS_symlink: ::c_long = 5000 + 86; +pub const SYS_readlink: ::c_long = 5000 + 87; +pub const SYS_chmod: ::c_long = 5000 + 88; +pub const SYS_fchmod: ::c_long = 5000 + 89; +pub const SYS_chown: ::c_long = 5000 + 90; +pub const SYS_fchown: ::c_long = 5000 + 91; +pub const SYS_lchown: ::c_long = 5000 + 92; +pub const SYS_umask: ::c_long = 5000 + 93; +pub const SYS_gettimeofday: ::c_long = 5000 + 94; +pub const SYS_getrlimit: ::c_long = 5000 + 95; +pub const SYS_getrusage: ::c_long = 5000 + 96; +pub const SYS_sysinfo: ::c_long = 5000 + 97; +pub const SYS_times: ::c_long = 5000 + 98; +pub const SYS_ptrace: ::c_long = 5000 + 99; +pub const SYS_getuid: ::c_long = 5000 + 100; +pub const SYS_syslog: ::c_long = 5000 + 101; +pub const SYS_getgid: ::c_long = 5000 + 102; +pub const SYS_setuid: ::c_long = 5000 + 103; +pub const SYS_setgid: ::c_long = 5000 + 104; +pub const SYS_geteuid: ::c_long = 5000 + 105; +pub const SYS_getegid: ::c_long = 5000 + 106; +pub const SYS_setpgid: ::c_long = 5000 + 107; +pub const SYS_getppid: ::c_long = 5000 + 108; +pub const SYS_getpgrp: ::c_long = 5000 + 109; +pub const SYS_setsid: ::c_long = 5000 + 110; +pub const SYS_setreuid: ::c_long = 5000 + 111; +pub const SYS_setregid: ::c_long = 5000 + 112; +pub const SYS_getgroups: ::c_long = 5000 + 113; +pub const SYS_setgroups: ::c_long = 5000 + 114; +pub const SYS_setresuid: ::c_long = 5000 + 115; +pub const SYS_getresuid: ::c_long = 5000 + 116; +pub const SYS_setresgid: ::c_long = 5000 + 117; +pub const SYS_getresgid: ::c_long = 5000 + 118; +pub const SYS_getpgid: ::c_long = 5000 + 119; +pub const SYS_setfsuid: ::c_long = 5000 + 120; +pub const SYS_setfsgid: ::c_long = 5000 + 121; +pub const SYS_getsid: ::c_long = 5000 + 122; +pub const SYS_capget: ::c_long = 5000 + 123; +pub const SYS_capset: ::c_long = 5000 + 124; +pub const SYS_rt_sigpending: ::c_long = 5000 + 125; +pub const SYS_rt_sigtimedwait: ::c_long = 5000 + 126; +pub const SYS_rt_sigqueueinfo: ::c_long = 5000 + 127; +pub const SYS_rt_sigsuspend: ::c_long = 5000 + 128; +pub const SYS_sigaltstack: ::c_long = 5000 + 129; +pub const SYS_utime: ::c_long = 5000 + 130; +pub const SYS_mknod: ::c_long = 5000 + 131; +pub const SYS_personality: ::c_long = 5000 + 132; +pub const SYS_ustat: ::c_long = 5000 + 133; +pub const SYS_statfs: ::c_long = 5000 + 134; +pub const SYS_fstatfs: ::c_long = 5000 + 135; +pub const SYS_sysfs: ::c_long = 5000 + 136; +pub const SYS_getpriority: ::c_long = 5000 + 137; +pub const SYS_setpriority: ::c_long = 5000 + 138; +pub const SYS_sched_setparam: ::c_long = 5000 + 139; +pub const SYS_sched_getparam: ::c_long = 5000 + 140; +pub const SYS_sched_setscheduler: ::c_long = 5000 + 141; +pub const SYS_sched_getscheduler: ::c_long = 5000 + 142; +pub const SYS_sched_get_priority_max: ::c_long = 5000 + 143; +pub const SYS_sched_get_priority_min: ::c_long = 5000 + 144; +pub const SYS_sched_rr_get_interval: ::c_long = 5000 + 145; +pub const SYS_mlock: ::c_long = 5000 + 146; +pub const SYS_munlock: ::c_long = 5000 + 147; +pub const SYS_mlockall: ::c_long = 5000 + 148; +pub const SYS_munlockall: ::c_long = 5000 + 149; +pub const SYS_vhangup: ::c_long = 5000 + 150; +pub const SYS_pivot_root: ::c_long = 5000 + 151; +pub const SYS__sysctl: ::c_long = 5000 + 152; +pub const SYS_prctl: ::c_long = 5000 + 153; +pub const SYS_adjtimex: ::c_long = 5000 + 154; +pub const SYS_setrlimit: ::c_long = 5000 + 155; +pub const SYS_chroot: ::c_long = 5000 + 156; +pub const SYS_sync: ::c_long = 5000 + 157; +pub const SYS_acct: ::c_long = 5000 + 158; +pub const SYS_settimeofday: ::c_long = 5000 + 159; +pub const SYS_mount: ::c_long = 5000 + 160; +pub const SYS_umount2: ::c_long = 5000 + 161; +pub const SYS_swapon: ::c_long = 5000 + 162; +pub const SYS_swapoff: ::c_long = 5000 + 163; +pub const SYS_reboot: ::c_long = 5000 + 164; +pub const SYS_sethostname: ::c_long = 5000 + 165; +pub const SYS_setdomainname: ::c_long = 5000 + 166; +pub const SYS_create_module: ::c_long = 5000 + 167; +pub const SYS_init_module: ::c_long = 5000 + 168; +pub const SYS_delete_module: ::c_long = 5000 + 169; +pub const SYS_get_kernel_syms: ::c_long = 5000 + 170; +pub const SYS_query_module: ::c_long = 5000 + 171; +pub const SYS_quotactl: ::c_long = 5000 + 172; +pub const SYS_nfsservctl: ::c_long = 5000 + 173; +pub const SYS_getpmsg: ::c_long = 5000 + 174; +pub const SYS_putpmsg: ::c_long = 5000 + 175; +pub const SYS_afs_syscall: ::c_long = 5000 + 176; +pub const SYS_gettid: ::c_long = 5000 + 178; +pub const SYS_readahead: ::c_long = 5000 + 179; +pub const SYS_setxattr: ::c_long = 5000 + 180; +pub const SYS_lsetxattr: ::c_long = 5000 + 181; +pub const SYS_fsetxattr: ::c_long = 5000 + 182; +pub const SYS_getxattr: ::c_long = 5000 + 183; +pub const SYS_lgetxattr: ::c_long = 5000 + 184; +pub const SYS_fgetxattr: ::c_long = 5000 + 185; +pub const SYS_listxattr: ::c_long = 5000 + 186; +pub const SYS_llistxattr: ::c_long = 5000 + 187; +pub const SYS_flistxattr: ::c_long = 5000 + 188; +pub const SYS_removexattr: ::c_long = 5000 + 189; +pub const SYS_lremovexattr: ::c_long = 5000 + 190; +pub const SYS_fremovexattr: ::c_long = 5000 + 191; +pub const SYS_tkill: ::c_long = 5000 + 192; +pub const SYS_futex: ::c_long = 5000 + 194; +pub const SYS_sched_setaffinity: ::c_long = 5000 + 195; +pub const SYS_sched_getaffinity: ::c_long = 5000 + 196; +pub const SYS_cacheflush: ::c_long = 5000 + 197; +pub const SYS_cachectl: ::c_long = 5000 + 198; +pub const SYS_sysmips: ::c_long = 5000 + 199; +pub const SYS_io_setup: ::c_long = 5000 + 200; +pub const SYS_io_destroy: ::c_long = 5000 + 201; +pub const SYS_io_getevents: ::c_long = 5000 + 202; +pub const SYS_io_submit: ::c_long = 5000 + 203; +pub const SYS_io_cancel: ::c_long = 5000 + 204; +pub const SYS_exit_group: ::c_long = 5000 + 205; +pub const SYS_lookup_dcookie: ::c_long = 5000 + 206; +pub const SYS_epoll_create: ::c_long = 5000 + 207; +pub const SYS_epoll_ctl: ::c_long = 5000 + 208; +pub const SYS_epoll_wait: ::c_long = 5000 + 209; +pub const SYS_remap_file_pages: ::c_long = 5000 + 210; +pub const SYS_rt_sigreturn: ::c_long = 5000 + 211; +pub const SYS_set_tid_address: ::c_long = 5000 + 212; +pub const SYS_restart_syscall: ::c_long = 5000 + 213; +pub const SYS_semtimedop: ::c_long = 5000 + 214; +pub const SYS_fadvise64: ::c_long = 5000 + 215; +pub const SYS_timer_create: ::c_long = 5000 + 216; +pub const SYS_timer_settime: ::c_long = 5000 + 217; +pub const SYS_timer_gettime: ::c_long = 5000 + 218; +pub const SYS_timer_getoverrun: ::c_long = 5000 + 219; +pub const SYS_timer_delete: ::c_long = 5000 + 220; +pub const SYS_clock_settime: ::c_long = 5000 + 221; +pub const SYS_clock_gettime: ::c_long = 5000 + 222; +pub const SYS_clock_getres: ::c_long = 5000 + 223; +pub const SYS_clock_nanosleep: ::c_long = 5000 + 224; +pub const SYS_tgkill: ::c_long = 5000 + 225; +pub const SYS_utimes: ::c_long = 5000 + 226; +pub const SYS_mbind: ::c_long = 5000 + 227; +pub const SYS_get_mempolicy: ::c_long = 5000 + 228; +pub const SYS_set_mempolicy: ::c_long = 5000 + 229; +pub const SYS_mq_open: ::c_long = 5000 + 230; +pub const SYS_mq_unlink: ::c_long = 5000 + 231; +pub const SYS_mq_timedsend: ::c_long = 5000 + 232; +pub const SYS_mq_timedreceive: ::c_long = 5000 + 233; +pub const SYS_mq_notify: ::c_long = 5000 + 234; +pub const SYS_mq_getsetattr: ::c_long = 5000 + 235; +pub const SYS_vserver: ::c_long = 5000 + 236; +pub const SYS_waitid: ::c_long = 5000 + 237; +/* pub const SYS_sys_setaltroot: ::c_long = 5000 + 238; */ +pub const SYS_add_key: ::c_long = 5000 + 239; +pub const SYS_request_key: ::c_long = 5000 + 240; +pub const SYS_keyctl: ::c_long = 5000 + 241; +pub const SYS_set_thread_area: ::c_long = 5000 + 242; +pub const SYS_inotify_init: ::c_long = 5000 + 243; +pub const SYS_inotify_add_watch: ::c_long = 5000 + 244; +pub const SYS_inotify_rm_watch: ::c_long = 5000 + 245; +pub const SYS_migrate_pages: ::c_long = 5000 + 246; +pub const SYS_openat: ::c_long = 5000 + 247; +pub const SYS_mkdirat: ::c_long = 5000 + 248; +pub const SYS_mknodat: ::c_long = 5000 + 249; +pub const SYS_fchownat: ::c_long = 5000 + 250; +pub const SYS_futimesat: ::c_long = 5000 + 251; +pub const SYS_newfstatat: ::c_long = 5000 + 252; +pub const SYS_unlinkat: ::c_long = 5000 + 253; +pub const SYS_renameat: ::c_long = 5000 + 254; +pub const SYS_linkat: ::c_long = 5000 + 255; +pub const SYS_symlinkat: ::c_long = 5000 + 256; +pub const SYS_readlinkat: ::c_long = 5000 + 257; +pub const SYS_fchmodat: ::c_long = 5000 + 258; +pub const SYS_faccessat: ::c_long = 5000 + 259; +pub const SYS_pselect6: ::c_long = 5000 + 260; +pub const SYS_ppoll: ::c_long = 5000 + 261; +pub const SYS_unshare: ::c_long = 5000 + 262; +pub const SYS_splice: ::c_long = 5000 + 263; +pub const SYS_sync_file_range: ::c_long = 5000 + 264; +pub const SYS_tee: ::c_long = 5000 + 265; +pub const SYS_vmsplice: ::c_long = 5000 + 266; +pub const SYS_move_pages: ::c_long = 5000 + 267; +pub const SYS_set_robust_list: ::c_long = 5000 + 268; +pub const SYS_get_robust_list: ::c_long = 5000 + 269; +pub const SYS_kexec_load: ::c_long = 5000 + 270; +pub const SYS_getcpu: ::c_long = 5000 + 271; +pub const SYS_epoll_pwait: ::c_long = 5000 + 272; +pub const SYS_ioprio_set: ::c_long = 5000 + 273; +pub const SYS_ioprio_get: ::c_long = 5000 + 274; +pub const SYS_utimensat: ::c_long = 5000 + 275; +pub const SYS_signalfd: ::c_long = 5000 + 276; +pub const SYS_timerfd: ::c_long = 5000 + 277; +pub const SYS_eventfd: ::c_long = 5000 + 278; +pub const SYS_fallocate: ::c_long = 5000 + 279; +pub const SYS_timerfd_create: ::c_long = 5000 + 280; +pub const SYS_timerfd_gettime: ::c_long = 5000 + 281; +pub const SYS_timerfd_settime: ::c_long = 5000 + 282; +pub const SYS_signalfd4: ::c_long = 5000 + 283; +pub const SYS_eventfd2: ::c_long = 5000 + 284; +pub const SYS_epoll_create1: ::c_long = 5000 + 285; +pub const SYS_dup3: ::c_long = 5000 + 286; +pub const SYS_pipe2: ::c_long = 5000 + 287; +pub const SYS_inotify_init1: ::c_long = 5000 + 288; +pub const SYS_preadv: ::c_long = 5000 + 289; +pub const SYS_pwritev: ::c_long = 5000 + 290; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 5000 + 291; +pub const SYS_perf_event_open: ::c_long = 5000 + 292; +pub const SYS_accept4: ::c_long = 5000 + 293; +pub const SYS_recvmmsg: ::c_long = 5000 + 294; +pub const SYS_fanotify_init: ::c_long = 5000 + 295; +pub const SYS_fanotify_mark: ::c_long = 5000 + 296; +pub const SYS_prlimit64: ::c_long = 5000 + 297; +pub const SYS_name_to_handle_at: ::c_long = 5000 + 298; +pub const SYS_open_by_handle_at: ::c_long = 5000 + 299; +pub const SYS_clock_adjtime: ::c_long = 5000 + 300; +pub const SYS_syncfs: ::c_long = 5000 + 301; +pub const SYS_sendmmsg: ::c_long = 5000 + 302; +pub const SYS_setns: ::c_long = 5000 + 303; +pub const SYS_process_vm_readv: ::c_long = 5000 + 304; +pub const SYS_process_vm_writev: ::c_long = 5000 + 305; +pub const SYS_kcmp: ::c_long = 5000 + 306; +pub const SYS_finit_module: ::c_long = 5000 + 307; +pub const SYS_getdents64: ::c_long = 5000 + 308; +pub const SYS_sched_setattr: ::c_long = 5000 + 309; +pub const SYS_sched_getattr: ::c_long = 5000 + 310; +pub const SYS_renameat2: ::c_long = 5000 + 311; +pub const SYS_seccomp: ::c_long = 5000 + 312; +pub const SYS_getrandom: ::c_long = 5000 + 313; +pub const SYS_memfd_create: ::c_long = 5000 + 314; +pub const SYS_bpf: ::c_long = 5000 + 315; +pub const SYS_execveat: ::c_long = 5000 + 316; +pub const SYS_userfaultfd: ::c_long = 5000 + 317; +pub const SYS_membarrier: ::c_long = 5000 + 318; +pub const SYS_mlock2: ::c_long = 5000 + 319; +pub const SYS_copy_file_range: ::c_long = 5000 + 320; +pub const SYS_preadv2: ::c_long = 5000 + 321; +pub const SYS_pwritev2: ::c_long = 5000 + 322; +pub const SYS_pkey_mprotect: ::c_long = 5000 + 323; +pub const SYS_pkey_alloc: ::c_long = 5000 + 324; +pub const SYS_pkey_free: ::c_long = 5000 + 325; +pub const SYS_statx: ::c_long = 5000 + 326; +pub const SYS_rseq: ::c_long = 5000 + 327; +pub const SYS_pidfd_send_signal: ::c_long = 5000 + 424; +pub const SYS_io_uring_setup: ::c_long = 5000 + 425; +pub const SYS_io_uring_enter: ::c_long = 5000 + 426; +pub const SYS_io_uring_register: ::c_long = 5000 + 427; +pub const SYS_open_tree: ::c_long = 5000 + 428; +pub const SYS_move_mount: ::c_long = 5000 + 429; +pub const SYS_fsopen: ::c_long = 5000 + 430; +pub const SYS_fsconfig: ::c_long = 5000 + 431; +pub const SYS_fsmount: ::c_long = 5000 + 432; +pub const SYS_fspick: ::c_long = 5000 + 433; +pub const SYS_pidfd_open: ::c_long = 5000 + 434; +pub const SYS_clone3: ::c_long = 5000 + 435; +pub const SYS_close_range: ::c_long = 5000 + 436; +pub const SYS_openat2: ::c_long = 5000 + 437; +pub const SYS_pidfd_getfd: ::c_long = 5000 + 438; +pub const SYS_faccessat2: ::c_long = 5000 + 439; +pub const SYS_process_madvise: ::c_long = 5000 + 440; +pub const SYS_epoll_pwait2: ::c_long = 5000 + 441; +pub const SYS_mount_setattr: ::c_long = 5000 + 442; +pub const SYS_quotactl_fd: ::c_long = 5000 + 443; +pub const SYS_landlock_create_ruleset: ::c_long = 5000 + 444; +pub const SYS_landlock_add_rule: ::c_long = 5000 + 445; +pub const SYS_landlock_restrict_self: ::c_long = 5000 + 446; +pub const SYS_memfd_secret: ::c_long = 5000 + 447; +pub const SYS_process_mrelease: ::c_long = 5000 + 448; +pub const SYS_futex_waitv: ::c_long = 5000 + 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 5000 + 450; + +pub const SFD_CLOEXEC: ::c_int = 0x080000; + +pub const NCCS: usize = 32; + +pub const O_TRUNC: ::c_int = 512; + +pub const O_NOATIME: ::c_int = 0o1000000; +pub const O_CLOEXEC: ::c_int = 0x80000; +pub const O_PATH: ::c_int = 0o10000000; +pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; + +pub const EBFONT: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EDOTDOT: ::c_int = 73; + +pub const SA_NODEFER: ::c_int = 0x40000000; +pub const SA_RESETHAND: ::c_int = 0x80000000; +pub const SA_RESTART: ::c_int = 0x10000000; +pub const SA_NOCLDSTOP: ::c_int = 0x00000001; + +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; + +pub const EFD_CLOEXEC: ::c_int = 0x80000; + +pub const O_DIRECT: ::c_int = 0x8000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; + +pub const O_APPEND: ::c_int = 8; +pub const O_CREAT: ::c_int = 256; +pub const O_EXCL: ::c_int = 1024; +pub const O_NOCTTY: ::c_int = 2048; +pub const O_NONBLOCK: ::c_int = 128; +pub const O_SYNC: ::c_int = 0x4010; +pub const O_RSYNC: ::c_int = 0x4010; +pub const O_DSYNC: ::c_int = 0x10; +pub const O_FSYNC: ::c_int = 0x4010; +pub const O_ASYNC: ::c_int = 0x1000; +pub const O_NDELAY: ::c_int = 0x80; + +pub const EDEADLK: ::c_int = 45; +pub const ENAMETOOLONG: ::c_int = 78; +pub const ENOLCK: ::c_int = 46; +pub const ENOSYS: ::c_int = 89; +pub const ENOTEMPTY: ::c_int = 93; +pub const ELOOP: ::c_int = 90; +pub const ENOMSG: ::c_int = 35; +pub const EIDRM: ::c_int = 36; +pub const ECHRNG: ::c_int = 37; +pub const EL2NSYNC: ::c_int = 38; +pub const EL3HLT: ::c_int = 39; +pub const EL3RST: ::c_int = 40; +pub const ELNRNG: ::c_int = 41; +pub const EUNATCH: ::c_int = 42; +pub const ENOCSI: ::c_int = 43; +pub const EL2HLT: ::c_int = 44; +pub const EBADE: ::c_int = 50; +pub const EBADR: ::c_int = 51; +pub const EXFULL: ::c_int = 52; +pub const ENOANO: ::c_int = 53; +pub const EBADRQC: ::c_int = 54; +pub const EBADSLT: ::c_int = 55; +pub const EDEADLOCK: ::c_int = 56; +pub const EMULTIHOP: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 79; +pub const ENOTUNIQ: ::c_int = 80; +pub const EBADFD: ::c_int = 81; +pub const EBADMSG: ::c_int = 77; +pub const EREMCHG: ::c_int = 82; +pub const ELIBACC: ::c_int = 83; +pub const ELIBBAD: ::c_int = 84; +pub const ELIBSCN: ::c_int = 85; +pub const ELIBMAX: ::c_int = 86; +pub const ELIBEXEC: ::c_int = 87; +pub const EILSEQ: ::c_int = 88; +pub const ERESTART: ::c_int = 91; +pub const ESTRPIPE: ::c_int = 92; +pub const EUSERS: ::c_int = 94; +pub const ENOTSOCK: ::c_int = 95; +pub const EDESTADDRREQ: ::c_int = 96; +pub const EMSGSIZE: ::c_int = 97; +pub const EPROTOTYPE: ::c_int = 98; +pub const ENOPROTOOPT: ::c_int = 99; +pub const EPROTONOSUPPORT: ::c_int = 120; +pub const ESOCKTNOSUPPORT: ::c_int = 121; +pub const EOPNOTSUPP: ::c_int = 122; +pub const EPFNOSUPPORT: ::c_int = 123; +pub const EAFNOSUPPORT: ::c_int = 124; +pub const EADDRINUSE: ::c_int = 125; +pub const EADDRNOTAVAIL: ::c_int = 126; +pub const ENETDOWN: ::c_int = 127; +pub const ENETUNREACH: ::c_int = 128; +pub const ENETRESET: ::c_int = 129; +pub const ECONNABORTED: ::c_int = 130; +pub const ECONNRESET: ::c_int = 131; +pub const ENOBUFS: ::c_int = 132; +pub const EISCONN: ::c_int = 133; +pub const ENOTCONN: ::c_int = 134; +pub const ESHUTDOWN: ::c_int = 143; +pub const ETOOMANYREFS: ::c_int = 144; +pub const ETIMEDOUT: ::c_int = 145; +pub const ECONNREFUSED: ::c_int = 146; +pub const EHOSTDOWN: ::c_int = 147; +pub const EHOSTUNREACH: ::c_int = 148; +pub const EALREADY: ::c_int = 149; +pub const EINPROGRESS: ::c_int = 150; +pub const ESTALE: ::c_int = 151; +pub const EUCLEAN: ::c_int = 135; +pub const ENOTNAM: ::c_int = 137; +pub const ENAVAIL: ::c_int = 138; +pub const EISNAM: ::c_int = 139; +pub const EREMOTEIO: ::c_int = 140; +pub const EDQUOT: ::c_int = 1133; +pub const ENOMEDIUM: ::c_int = 159; +pub const EMEDIUMTYPE: ::c_int = 160; +pub const ECANCELED: ::c_int = 158; +pub const ENOKEY: ::c_int = 161; +pub const EKEYEXPIRED: ::c_int = 162; +pub const EKEYREVOKED: ::c_int = 163; +pub const EKEYREJECTED: ::c_int = 164; +pub const EOWNERDEAD: ::c_int = 165; +pub const ENOTRECOVERABLE: ::c_int = 166; +pub const ERFKILL: ::c_int = 167; + +pub const MAP_NORESERVE: ::c_int = 0x400; +pub const MAP_ANON: ::c_int = 0x800; +pub const MAP_ANONYMOUS: ::c_int = 0x800; +pub const MAP_GROWSDOWN: ::c_int = 0x1000; +pub const MAP_DENYWRITE: ::c_int = 0x2000; +pub const MAP_EXECUTABLE: ::c_int = 0x4000; +pub const MAP_LOCKED: ::c_int = 0x8000; +pub const MAP_POPULATE: ::c_int = 0x10000; +pub const MAP_NONBLOCK: ::c_int = 0x20000; +pub const MAP_STACK: ::c_int = 0x40000; +pub const MAP_HUGETLB: ::c_int = 0x080000; + +pub const SOCK_STREAM: ::c_int = 2; +pub const SOCK_DGRAM: ::c_int = 1; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000008; +pub const SA_NOCLDWAIT: ::c_int = 0x00010000; + +pub const SIGCHLD: ::c_int = 18; +pub const SIGBUS: ::c_int = 10; +pub const SIGTTIN: ::c_int = 26; +pub const SIGTTOU: ::c_int = 27; +pub const SIGXCPU: ::c_int = 30; +pub const SIGXFSZ: ::c_int = 31; +pub const SIGVTALRM: ::c_int = 28; +pub const SIGPROF: ::c_int = 29; +pub const SIGWINCH: ::c_int = 20; +pub const SIGUSR1: ::c_int = 16; +pub const SIGUSR2: ::c_int = 17; +pub const SIGCONT: ::c_int = 25; +pub const SIGSTOP: ::c_int = 23; +pub const SIGTSTP: ::c_int = 24; +pub const SIGURG: ::c_int = 21; +pub const SIGIO: ::c_int = 22; +pub const SIGSYS: ::c_int = 12; +pub const SIGPOLL: ::c_int = 22; +pub const SIGPWR: ::c_int = 19; +pub const SIG_SETMASK: ::c_int = 3; +pub const SIG_BLOCK: ::c_int = 0x1; +pub const SIG_UNBLOCK: ::c_int = 0x2; + +pub const POLLWRNORM: ::c_short = 0x004; +pub const POLLWRBAND: ::c_short = 0x100; + +pub const VEOF: usize = 16; +pub const VEOL: usize = 17; +pub const VEOL2: usize = 6; +pub const VMIN: usize = 4; +pub const IEXTEN: ::tcflag_t = 0x00000100; +pub const TOSTOP: ::tcflag_t = 0x00008000; +pub const FLUSHO: ::tcflag_t = 0x00002000; +pub const EXTPROC: ::tcflag_t = 0o200000; +pub const TCSANOW: ::c_int = 0x540e; +pub const TCSADRAIN: ::c_int = 0x540f; +pub const TCSAFLUSH: ::c_int = 0x5410; + +pub const PTRACE_GETFPREGS: ::c_uint = 14; +pub const PTRACE_SETFPREGS: ::c_uint = 15; +pub const PTRACE_DETACH: ::c_uint = 17; +pub const PTRACE_GETFPXREGS: ::c_uint = 18; +pub const PTRACE_SETFPXREGS: ::c_uint = 19; +pub const PTRACE_GETREGS: ::c_uint = 12; +pub const PTRACE_SETREGS: ::c_uint = 13; + +pub const EFD_NONBLOCK: ::c_int = 0x80; + +pub const F_RDLCK: ::c_int = 0; +pub const F_WRLCK: ::c_int = 1; +pub const F_UNLCK: ::c_int = 2; +pub const F_GETLK: ::c_int = 14; +pub const F_GETOWN: ::c_int = 23; +pub const F_SETOWN: ::c_int = 24; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const SFD_NONBLOCK: ::c_int = 0x80; + +pub const RTLD_DEEPBIND: ::c_int = 0x10; +pub const RTLD_GLOBAL: ::c_int = 0x4; +pub const RTLD_NOLOAD: ::c_int = 0x8; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const EHWPOISON: ::c_int = 168; + +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mod.rs new file mode 100644 index 000000000..443958cff --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -0,0 +1,126 @@ +//! 64-bit specific definitions for linux-like values + +pub type ino_t = u64; +pub type off_t = i64; +pub type blkcnt_t = i64; +pub type shmatt_t = u64; +pub type msgqnum_t = u64; +pub type msglen_t = u64; +pub type fsblkcnt_t = u64; +pub type fsfilcnt_t = u64; +pub type rlim_t = u64; +#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] +pub type __syscall_ulong_t = ::c_ulonglong; +#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] +pub type __syscall_ulong_t = ::c_ulong; + +cfg_if! { + if #[cfg(all(target_arch = "aarch64", target_pointer_width = "32"))] { + pub type clock_t = i32; + pub type time_t = i32; + pub type __fsword_t = i32; + } else { + pub type __fsword_t = i64; + pub type clock_t = i64; + pub type time_t = i64; + } +} + +s! { + pub struct sigset_t { + #[cfg(target_pointer_width = "32")] + __val: [u32; 32], + #[cfg(target_pointer_width = "64")] + __val: [u64; 16], + } + + pub struct sysinfo { + pub uptime: i64, + pub loads: [u64; 3], + pub totalram: u64, + pub freeram: u64, + pub sharedram: u64, + pub bufferram: u64, + pub totalswap: u64, + pub freeswap: u64, + pub procs: ::c_ushort, + pub pad: ::c_ushort, + pub totalhigh: u64, + pub freehigh: u64, + pub mem_unit: ::c_uint, + pub _f: [::c_char; 0], + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + pub msg_rtime: ::time_t, + pub msg_ctime: ::time_t, + __msg_cbytes: u64, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __glibc_reserved4: u64, + __glibc_reserved5: u64, + } + + pub struct semid_ds { + pub sem_perm: ipc_perm, + pub sem_otime: ::time_t, + #[cfg(not(any( + target_arch = "aarch64", + target_arch = "loongarch64", + target_arch = "mips64", + target_arch = "powerpc64", + target_arch = "riscv64", + target_arch = "sparc64")))] + __reserved: ::__syscall_ulong_t, + pub sem_ctime: ::time_t, + #[cfg(not(any( + target_arch = "aarch64", + target_arch = "loongarch64", + target_arch = "mips64", + target_arch = "powerpc64", + target_arch = "riscv64", + target_arch = "sparc64")))] + __reserved2: ::__syscall_ulong_t, + pub sem_nsems: ::__syscall_ulong_t, + __glibc_reserved3: ::__syscall_ulong_t, + __glibc_reserved4: ::__syscall_ulong_t, + } +} + +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; + +pub const O_LARGEFILE: ::c_int = 0; + +cfg_if! { + if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } else if #[cfg(any(target_arch = "powerpc64"))] { + mod powerpc64; + pub use self::powerpc64::*; + } else if #[cfg(any(target_arch = "sparc64"))] { + mod sparc64; + pub use self::sparc64::*; + } else if #[cfg(any(target_arch = "mips64"))] { + mod mips64; + pub use self::mips64::*; + } else if #[cfg(any(target_arch = "s390x"))] { + mod s390x; + pub use self::s390x::*; + } else if #[cfg(any(target_arch = "x86_64"))] { + mod x86_64; + pub use self::x86_64::*; + } else if #[cfg(any(target_arch = "riscv64"))] { + mod riscv64; + pub use self::riscv64::*; + } else if #[cfg(any(target_arch = "loongarch64"))] { + mod loongarch64; + pub use self::loongarch64::*; + } else { + // Unknown target_arch + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs new file mode 100644 index 000000000..29d1e1c7b --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [i64; 4] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs new file mode 100644 index 000000000..2b225e480 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -0,0 +1,978 @@ +//! PowerPC64-specific definitions for 64-bit linux-like values + +use pthread_mutex_t; + +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_char = u8; +pub type wchar_t = i32; +pub type nlink_t = u64; +pub type blksize_t = i64; +pub type suseconds_t = i64; +pub type __u64 = ::c_ulong; +pub type __s64 = ::c_long; + +s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + #[cfg(target_arch = "sparc64")] + __reserved0: ::c_int, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct statfs { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + __pad0: ::c_int, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_long; 3], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + __pad0: ::c_int, + pub st_rdev: ::dev_t, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __reserved: [::c_long; 3], + } + + pub struct statfs64 { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + pub f_spare: [::__fsword_t; 4], + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct pthread_attr_t { + __size: [u64; 7] + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: u32, + __pad1: u32, + __unused1: u64, + __unused2: ::c_ulong, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_segsz: ::size_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused4: ::c_ulong, + __unused5: ::c_ulong + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } +} + +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const VEOF: usize = 4; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; + +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 0x101000; +pub const O_NOATIME: ::c_int = 0o1000000; +pub const O_PATH: ::c_int = 0o10000000; +pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; + +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] +pub const SIGUNUSED: ::c_int = 31; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x800; + +pub const PTRACE_DETACH: ::c_uint = 17; + +pub const EFD_NONBLOCK: ::c_int = 0x800; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const F_RDLCK: ::c_int = 0; +pub const F_WRLCK: ::c_int = 1; +pub const F_UNLCK: ::c_int = 2; + +pub const SFD_NONBLOCK: ::c_int = 0x0800; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const SFD_CLOEXEC: ::c_int = 0x080000; + +pub const NCCS: usize = 32; + +pub const O_TRUNC: ::c_int = 512; + +pub const O_CLOEXEC: ::c_int = 0x80000; + +pub const EBFONT: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EDOTDOT: ::c_int = 73; + +pub const SA_NODEFER: ::c_int = 0x40000000; +pub const SA_RESETHAND: ::c_int = 0x80000000; +pub const SA_RESTART: ::c_int = 0x10000000; +pub const SA_NOCLDSTOP: ::c_int = 0x00000001; + +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; + +pub const EFD_CLOEXEC: ::c_int = 0x80000; + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; + +align_const! { + #[cfg(target_endian = "little")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; +} + +pub const O_DIRECTORY: ::c_int = 0x4000; +pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const O_DIRECT: ::c_int = 0x20000; + +pub const MAP_LOCKED: ::c_int = 0x00080; +pub const MAP_NORESERVE: ::c_int = 0x00040; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const EDEADLOCK: ::c_int = 58; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; + +pub const MCL_CURRENT: ::c_int = 0x2000; +pub const MCL_FUTURE: ::c_int = 0x4000; + +pub const SIGSTKSZ: ::size_t = 0x4000; +pub const MINSIGSTKSZ: ::size_t = 4096; +pub const CBAUD: ::tcflag_t = 0xff; +pub const TAB1: ::tcflag_t = 0x400; +pub const TAB2: ::tcflag_t = 0x800; +pub const TAB3: ::tcflag_t = 0xc00; +pub const CR1: ::tcflag_t = 0x1000; +pub const CR2: ::tcflag_t = 0x2000; +pub const CR3: ::tcflag_t = 0x3000; +pub const FF1: ::tcflag_t = 0x4000; +pub const BS1: ::tcflag_t = 0x8000; +pub const VT1: ::tcflag_t = 0x10000; +pub const VWERASE: usize = 0xa; +pub const VREPRINT: usize = 0xb; +pub const VSUSP: usize = 0xc; +pub const VSTART: usize = 0xd; +pub const VSTOP: usize = 0xe; +pub const VDISCARD: usize = 0x10; +pub const VTIME: usize = 0x7; +pub const IXON: ::tcflag_t = 0x200; +pub const IXOFF: ::tcflag_t = 0x400; +pub const ONLCR: ::tcflag_t = 0x2; +pub const CSIZE: ::tcflag_t = 0x300; +pub const CS6: ::tcflag_t = 0x100; +pub const CS7: ::tcflag_t = 0x200; +pub const CS8: ::tcflag_t = 0x300; +pub const CSTOPB: ::tcflag_t = 0x400; +pub const CREAD: ::tcflag_t = 0x800; +pub const PARENB: ::tcflag_t = 0x1000; +pub const PARODD: ::tcflag_t = 0x2000; +pub const HUPCL: ::tcflag_t = 0x4000; +pub const CLOCAL: ::tcflag_t = 0x8000; +pub const ECHOKE: ::tcflag_t = 0x1; +pub const ECHOE: ::tcflag_t = 0x2; +pub const ECHOK: ::tcflag_t = 0x4; +pub const ECHONL: ::tcflag_t = 0x10; +pub const ECHOPRT: ::tcflag_t = 0x20; +pub const ECHOCTL: ::tcflag_t = 0x40; +pub const ISIG: ::tcflag_t = 0x80; +pub const ICANON: ::tcflag_t = 0x100; +pub const PENDIN: ::tcflag_t = 0x20000000; +pub const NOFLSH: ::tcflag_t = 0x80000000; +pub const VSWTC: usize = 9; +pub const OLCUC: ::tcflag_t = 0o000004; +pub const NLDLY: ::tcflag_t = 0o001400; +pub const CRDLY: ::tcflag_t = 0o030000; +pub const TABDLY: ::tcflag_t = 0o006000; +pub const BSDLY: ::tcflag_t = 0o100000; +pub const FFDLY: ::tcflag_t = 0o040000; +pub const VTDLY: ::tcflag_t = 0o200000; +pub const XTABS: ::tcflag_t = 0o006000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const CBAUDEX: ::speed_t = 0o000020; +pub const B57600: ::speed_t = 0o0020; +pub const B115200: ::speed_t = 0o0021; +pub const B230400: ::speed_t = 0o0022; +pub const B460800: ::speed_t = 0o0023; +pub const B500000: ::speed_t = 0o0024; +pub const B576000: ::speed_t = 0o0025; +pub const B921600: ::speed_t = 0o0026; +pub const B1000000: ::speed_t = 0o0027; +pub const B1152000: ::speed_t = 0o0030; +pub const B1500000: ::speed_t = 0o0031; +pub const B2000000: ::speed_t = 0o0032; +pub const B2500000: ::speed_t = 0o0033; +pub const B3000000: ::speed_t = 0o0034; +pub const B3500000: ::speed_t = 0o0035; +pub const B4000000: ::speed_t = 0o0036; + +pub const VEOL: usize = 6; +pub const VEOL2: usize = 8; +pub const VMIN: usize = 5; +pub const IEXTEN: ::tcflag_t = 0x400; +pub const TOSTOP: ::tcflag_t = 0x400000; +pub const FLUSHO: ::tcflag_t = 0x800000; +pub const EXTPROC: ::tcflag_t = 0x10000000; + +// Syscall table +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_waitpid: ::c_long = 7; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_time: ::c_long = 13; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_break: ::c_long = 17; +pub const SYS_oldstat: ::c_long = 18; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_umount: ::c_long = 22; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_stime: ::c_long = 25; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_alarm: ::c_long = 27; +pub const SYS_oldfstat: ::c_long = 28; +pub const SYS_pause: ::c_long = 29; +pub const SYS_utime: ::c_long = 30; +pub const SYS_stty: ::c_long = 31; +pub const SYS_gtty: ::c_long = 32; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_ftime: ::c_long = 35; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_prof: ::c_long = 44; +pub const SYS_brk: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_signal: ::c_long = 48; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_lock: ::c_long = 53; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_mpx: ::c_long = 56; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_ulimit: ::c_long = 58; +pub const SYS_oldolduname: ::c_long = 59; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_sgetmask: ::c_long = 68; +pub const SYS_ssetmask: ::c_long = 69; +pub const SYS_setreuid: ::c_long = 70; +pub const SYS_setregid: ::c_long = 71; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrlimit: ::c_long = 76; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_getgroups: ::c_long = 80; +pub const SYS_setgroups: ::c_long = 81; +pub const SYS_select: ::c_long = 82; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_oldlstat: ::c_long = 84; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_readdir: ::c_long = 89; +pub const SYS_mmap: ::c_long = 90; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_fchown: ::c_long = 95; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_profil: ::c_long = 98; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_ioperm: ::c_long = 101; +pub const SYS_socketcall: ::c_long = 102; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_olduname: ::c_long = 109; +pub const SYS_iopl: ::c_long = 110; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_idle: ::c_long = 112; +pub const SYS_vm86: ::c_long = 113; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_ipc: ::c_long = 117; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_modify_ldt: ::c_long = 123; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_create_module: ::c_long = 127; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_get_kernel_syms: ::c_long = 130; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ +pub const SYS_setfsuid: ::c_long = 138; +pub const SYS_setfsgid: ::c_long = 139; +pub const SYS__llseek: ::c_long = 140; +pub const SYS_getdents: ::c_long = 141; +pub const SYS__newselect: ::c_long = 142; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_setresuid: ::c_long = 164; +pub const SYS_getresuid: ::c_long = 165; +pub const SYS_query_module: ::c_long = 166; +pub const SYS_poll: ::c_long = 167; +pub const SYS_nfsservctl: ::c_long = 168; +pub const SYS_setresgid: ::c_long = 169; +pub const SYS_getresgid: ::c_long = 170; +pub const SYS_prctl: ::c_long = 171; +pub const SYS_rt_sigreturn: ::c_long = 172; +pub const SYS_rt_sigaction: ::c_long = 173; +pub const SYS_rt_sigprocmask: ::c_long = 174; +pub const SYS_rt_sigpending: ::c_long = 175; +pub const SYS_rt_sigtimedwait: ::c_long = 176; +pub const SYS_rt_sigqueueinfo: ::c_long = 177; +pub const SYS_rt_sigsuspend: ::c_long = 178; +pub const SYS_pread64: ::c_long = 179; +pub const SYS_pwrite64: ::c_long = 180; +pub const SYS_chown: ::c_long = 181; +pub const SYS_getcwd: ::c_long = 182; +pub const SYS_capget: ::c_long = 183; +pub const SYS_capset: ::c_long = 184; +pub const SYS_sigaltstack: ::c_long = 185; +pub const SYS_sendfile: ::c_long = 186; +pub const SYS_getpmsg: ::c_long = 187; /* some people actually want streams */ +pub const SYS_putpmsg: ::c_long = 188; /* some people actually want streams */ +pub const SYS_vfork: ::c_long = 189; +pub const SYS_ugetrlimit: ::c_long = 190; /* SuS compliant getrlimit */ +pub const SYS_readahead: ::c_long = 191; +pub const SYS_pciconfig_read: ::c_long = 198; +pub const SYS_pciconfig_write: ::c_long = 199; +pub const SYS_pciconfig_iobase: ::c_long = 200; +pub const SYS_multiplexer: ::c_long = 201; +pub const SYS_getdents64: ::c_long = 202; +pub const SYS_pivot_root: ::c_long = 203; +pub const SYS_madvise: ::c_long = 205; +pub const SYS_mincore: ::c_long = 206; +pub const SYS_gettid: ::c_long = 207; +pub const SYS_tkill: ::c_long = 208; +pub const SYS_setxattr: ::c_long = 209; +pub const SYS_lsetxattr: ::c_long = 210; +pub const SYS_fsetxattr: ::c_long = 211; +pub const SYS_getxattr: ::c_long = 212; +pub const SYS_lgetxattr: ::c_long = 213; +pub const SYS_fgetxattr: ::c_long = 214; +pub const SYS_listxattr: ::c_long = 215; +pub const SYS_llistxattr: ::c_long = 216; +pub const SYS_flistxattr: ::c_long = 217; +pub const SYS_removexattr: ::c_long = 218; +pub const SYS_lremovexattr: ::c_long = 219; +pub const SYS_fremovexattr: ::c_long = 220; +pub const SYS_futex: ::c_long = 221; +pub const SYS_sched_setaffinity: ::c_long = 222; +pub const SYS_sched_getaffinity: ::c_long = 223; +pub const SYS_tuxcall: ::c_long = 225; +pub const SYS_io_setup: ::c_long = 227; +pub const SYS_io_destroy: ::c_long = 228; +pub const SYS_io_getevents: ::c_long = 229; +pub const SYS_io_submit: ::c_long = 230; +pub const SYS_io_cancel: ::c_long = 231; +pub const SYS_set_tid_address: ::c_long = 232; +pub const SYS_exit_group: ::c_long = 234; +pub const SYS_lookup_dcookie: ::c_long = 235; +pub const SYS_epoll_create: ::c_long = 236; +pub const SYS_epoll_ctl: ::c_long = 237; +pub const SYS_epoll_wait: ::c_long = 238; +pub const SYS_remap_file_pages: ::c_long = 239; +pub const SYS_timer_create: ::c_long = 240; +pub const SYS_timer_settime: ::c_long = 241; +pub const SYS_timer_gettime: ::c_long = 242; +pub const SYS_timer_getoverrun: ::c_long = 243; +pub const SYS_timer_delete: ::c_long = 244; +pub const SYS_clock_settime: ::c_long = 245; +pub const SYS_clock_gettime: ::c_long = 246; +pub const SYS_clock_getres: ::c_long = 247; +pub const SYS_clock_nanosleep: ::c_long = 248; +pub const SYS_swapcontext: ::c_long = 249; +pub const SYS_tgkill: ::c_long = 250; +pub const SYS_utimes: ::c_long = 251; +pub const SYS_statfs64: ::c_long = 252; +pub const SYS_fstatfs64: ::c_long = 253; +pub const SYS_rtas: ::c_long = 255; +pub const SYS_sys_debug_setcontext: ::c_long = 256; +pub const SYS_migrate_pages: ::c_long = 258; +pub const SYS_mbind: ::c_long = 259; +pub const SYS_get_mempolicy: ::c_long = 260; +pub const SYS_set_mempolicy: ::c_long = 261; +pub const SYS_mq_open: ::c_long = 262; +pub const SYS_mq_unlink: ::c_long = 263; +pub const SYS_mq_timedsend: ::c_long = 264; +pub const SYS_mq_timedreceive: ::c_long = 265; +pub const SYS_mq_notify: ::c_long = 266; +pub const SYS_mq_getsetattr: ::c_long = 267; +pub const SYS_kexec_load: ::c_long = 268; +pub const SYS_add_key: ::c_long = 269; +pub const SYS_request_key: ::c_long = 270; +pub const SYS_keyctl: ::c_long = 271; +pub const SYS_waitid: ::c_long = 272; +pub const SYS_ioprio_set: ::c_long = 273; +pub const SYS_ioprio_get: ::c_long = 274; +pub const SYS_inotify_init: ::c_long = 275; +pub const SYS_inotify_add_watch: ::c_long = 276; +pub const SYS_inotify_rm_watch: ::c_long = 277; +pub const SYS_spu_run: ::c_long = 278; +pub const SYS_spu_create: ::c_long = 279; +pub const SYS_pselect6: ::c_long = 280; +pub const SYS_ppoll: ::c_long = 281; +pub const SYS_unshare: ::c_long = 282; +pub const SYS_splice: ::c_long = 283; +pub const SYS_tee: ::c_long = 284; +pub const SYS_vmsplice: ::c_long = 285; +pub const SYS_openat: ::c_long = 286; +pub const SYS_mkdirat: ::c_long = 287; +pub const SYS_mknodat: ::c_long = 288; +pub const SYS_fchownat: ::c_long = 289; +pub const SYS_futimesat: ::c_long = 290; +pub const SYS_newfstatat: ::c_long = 291; +pub const SYS_unlinkat: ::c_long = 292; +pub const SYS_renameat: ::c_long = 293; +pub const SYS_linkat: ::c_long = 294; +pub const SYS_symlinkat: ::c_long = 295; +pub const SYS_readlinkat: ::c_long = 296; +pub const SYS_fchmodat: ::c_long = 297; +pub const SYS_faccessat: ::c_long = 298; +pub const SYS_get_robust_list: ::c_long = 299; +pub const SYS_set_robust_list: ::c_long = 300; +pub const SYS_move_pages: ::c_long = 301; +pub const SYS_getcpu: ::c_long = 302; +pub const SYS_epoll_pwait: ::c_long = 303; +pub const SYS_utimensat: ::c_long = 304; +pub const SYS_signalfd: ::c_long = 305; +pub const SYS_timerfd_create: ::c_long = 306; +pub const SYS_eventfd: ::c_long = 307; +pub const SYS_sync_file_range2: ::c_long = 308; +pub const SYS_fallocate: ::c_long = 309; +pub const SYS_subpage_prot: ::c_long = 310; +pub const SYS_timerfd_settime: ::c_long = 311; +pub const SYS_timerfd_gettime: ::c_long = 312; +pub const SYS_signalfd4: ::c_long = 313; +pub const SYS_eventfd2: ::c_long = 314; +pub const SYS_epoll_create1: ::c_long = 315; +pub const SYS_dup3: ::c_long = 316; +pub const SYS_pipe2: ::c_long = 317; +pub const SYS_inotify_init1: ::c_long = 318; +pub const SYS_perf_event_open: ::c_long = 319; +pub const SYS_preadv: ::c_long = 320; +pub const SYS_pwritev: ::c_long = 321; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; +pub const SYS_fanotify_init: ::c_long = 323; +pub const SYS_fanotify_mark: ::c_long = 324; +pub const SYS_prlimit64: ::c_long = 325; +pub const SYS_socket: ::c_long = 326; +pub const SYS_bind: ::c_long = 327; +pub const SYS_connect: ::c_long = 328; +pub const SYS_listen: ::c_long = 329; +pub const SYS_accept: ::c_long = 330; +pub const SYS_getsockname: ::c_long = 331; +pub const SYS_getpeername: ::c_long = 332; +pub const SYS_socketpair: ::c_long = 333; +pub const SYS_send: ::c_long = 334; +pub const SYS_sendto: ::c_long = 335; +pub const SYS_recv: ::c_long = 336; +pub const SYS_recvfrom: ::c_long = 337; +pub const SYS_shutdown: ::c_long = 338; +pub const SYS_setsockopt: ::c_long = 339; +pub const SYS_getsockopt: ::c_long = 340; +pub const SYS_sendmsg: ::c_long = 341; +pub const SYS_recvmsg: ::c_long = 342; +pub const SYS_recvmmsg: ::c_long = 343; +pub const SYS_accept4: ::c_long = 344; +pub const SYS_name_to_handle_at: ::c_long = 345; +pub const SYS_open_by_handle_at: ::c_long = 346; +pub const SYS_clock_adjtime: ::c_long = 347; +pub const SYS_syncfs: ::c_long = 348; +pub const SYS_sendmmsg: ::c_long = 349; +pub const SYS_setns: ::c_long = 350; +pub const SYS_process_vm_readv: ::c_long = 351; +pub const SYS_process_vm_writev: ::c_long = 352; +pub const SYS_finit_module: ::c_long = 353; +pub const SYS_kcmp: ::c_long = 354; +pub const SYS_sched_setattr: ::c_long = 355; +pub const SYS_sched_getattr: ::c_long = 356; +pub const SYS_renameat2: ::c_long = 357; +pub const SYS_seccomp: ::c_long = 358; +pub const SYS_getrandom: ::c_long = 359; +pub const SYS_memfd_create: ::c_long = 360; +pub const SYS_bpf: ::c_long = 361; +pub const SYS_execveat: ::c_long = 362; +pub const SYS_switch_endian: ::c_long = 363; +pub const SYS_userfaultfd: ::c_long = 364; +pub const SYS_membarrier: ::c_long = 365; +pub const SYS_mlock2: ::c_long = 378; +pub const SYS_copy_file_range: ::c_long = 379; +pub const SYS_preadv2: ::c_long = 380; +pub const SYS_pwritev2: ::c_long = 381; +pub const SYS_kexec_file_load: ::c_long = 382; +pub const SYS_statx: ::c_long = 383; +pub const SYS_rseq: ::c_long = 387; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs new file mode 100644 index 000000000..48d152a57 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs @@ -0,0 +1,44 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + pub struct ucontext_t { + pub __uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct mcontext_t { + pub __gregs: [::c_ulong; 32], + pub __fpregs: __riscv_mc_fp_state, + } + + #[allow(missing_debug_implementations)] + pub union __riscv_mc_fp_state { + pub __f: __riscv_mc_f_ext_state, + pub __d: __riscv_mc_d_ext_state, + pub __q: __riscv_mc_q_ext_state, + } + + #[allow(missing_debug_implementations)] + pub struct __riscv_mc_f_ext_state { + pub __f: [::c_uint; 32], + pub __fcsr: ::c_uint, + } + + #[allow(missing_debug_implementations)] + pub struct __riscv_mc_d_ext_state { + pub __f: [::c_ulonglong; 32], + pub __fcsr: ::c_uint, + } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct __riscv_mc_q_ext_state { + pub __f: [::c_ulonglong; 64], + pub __fcsr: ::c_uint, + pub __glibc_reserved: [::c_uint; 3], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs new file mode 100644 index 000000000..c65a562ac --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -0,0 +1,851 @@ +//! RISC-V-specific definitions for 64-bit linux-like values + +pub type c_char = u8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type wchar_t = ::c_int; + +pub type nlink_t = ::c_uint; +pub type blksize_t = ::c_int; +pub type fsblkcnt64_t = ::c_ulong; +pub type fsfilcnt64_t = ::c_ulong; +pub type suseconds_t = i64; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; + +s! { + pub struct pthread_attr_t { + __size: [::c_ulong; 7], + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub __pad1: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub __pad2: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2usize], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub __pad1: ::dev_t, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub __pad2: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2], + } + + pub struct statfs { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_frsize: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 4], + } + + pub struct statfs64 { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsfilcnt64_t, + pub f_ffree: ::fsfilcnt64_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_frsize: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 4], + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub __f_spare: [::c_int; 6], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsfilcnt64_t, + pub f_ffree: ::fsfilcnt64_t, + pub f_favail: ::fsfilcnt64_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub __f_spare: [::c_int; 6], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [u64; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t, + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_ushort, + __pad1: ::c_ushort, + pub __seq: ::c_ushort, + __pad2: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused5: ::c_ulong, + __unused6: ::c_ulong, + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct user_regs_struct { + pub pc: ::c_ulong, + pub ra: ::c_ulong, + pub sp: ::c_ulong, + pub gp: ::c_ulong, + pub tp: ::c_ulong, + pub t0: ::c_ulong, + pub t1: ::c_ulong, + pub t2: ::c_ulong, + pub s0: ::c_ulong, + pub s1: ::c_ulong, + pub a0: ::c_ulong, + pub a1: ::c_ulong, + pub a2: ::c_ulong, + pub a3: ::c_ulong, + pub a4: ::c_ulong, + pub a5: ::c_ulong, + pub a6: ::c_ulong, + pub a7: ::c_ulong, + pub s2: ::c_ulong, + pub s3: ::c_ulong, + pub s4: ::c_ulong, + pub s5: ::c_ulong, + pub s6: ::c_ulong, + pub s7: ::c_ulong, + pub s8: ::c_ulong, + pub s9: ::c_ulong, + pub s10: ::c_ulong, + pub s11: ::c_ulong, + pub t3: ::c_ulong, + pub t4: ::c_ulong, + pub t5: ::c_ulong, + pub t6: ::c_ulong, + } +} + +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 1052672; +pub const O_NOATIME: ::c_int = 262144; +pub const O_PATH: ::c_int = 2097152; +pub const O_TMPFILE: ::c_int = 4259840; +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_GROWSDOWN: ::c_int = 256; +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SA_ONSTACK: ::c_int = 134217728; +pub const SA_SIGINFO: ::c_int = 4; +pub const SA_NOCLDWAIT: ::c_int = 2; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0; +pub const SIG_UNBLOCK: ::c_int = 1; +pub const POLLWRNORM: ::c_short = 256; +pub const POLLWRBAND: ::c_short = 512; +pub const O_ASYNC: ::c_int = 8192; +pub const O_NDELAY: ::c_int = 2048; +pub const PTRACE_DETACH: ::c_uint = 17; +pub const EFD_NONBLOCK: ::c_int = 2048; +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_RDLCK: ::c_int = 0; +pub const F_WRLCK: ::c_int = 1; +pub const F_UNLCK: ::c_int = 2; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; +pub const SFD_NONBLOCK: ::c_int = 2048; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; +pub const SFD_CLOEXEC: ::c_int = 524288; +pub const NCCS: usize = 32; +pub const O_TRUNC: ::c_int = 512; +pub const O_CLOEXEC: ::c_int = 524288; +pub const EBFONT: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EDOTDOT: ::c_int = 73; +pub const SA_NODEFER: ::c_int = 1073741824; +pub const SA_RESETHAND: ::c_int = -2147483648; +pub const SA_RESTART: ::c_int = 268435456; +pub const SA_NOCLDSTOP: ::c_int = 1; +pub const EPOLL_CLOEXEC: ::c_int = 524288; +pub const EFD_CLOEXEC: ::c_int = 524288; +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +pub const O_DIRECT: ::c_int = 16384; +pub const O_DIRECTORY: ::c_int = 65536; +pub const O_NOFOLLOW: ::c_int = 131072; +pub const MAP_HUGETLB: ::c_int = 262144; +pub const MAP_LOCKED: ::c_int = 8192; +pub const MAP_NORESERVE: ::c_int = 16384; +pub const MAP_ANON: ::c_int = 32; +pub const MAP_ANONYMOUS: ::c_int = 32; +pub const MAP_DENYWRITE: ::c_int = 2048; +pub const MAP_EXECUTABLE: ::c_int = 4096; +pub const MAP_POPULATE: ::c_int = 32768; +pub const MAP_NONBLOCK: ::c_int = 65536; +pub const MAP_STACK: ::c_int = 131072; +pub const MAP_SYNC: ::c_int = 0x080000; +pub const EDEADLOCK: ::c_int = 35; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const PTRACE_GETFPREGS: ::c_uint = 14; +pub const PTRACE_SETFPREGS: ::c_uint = 15; +pub const PTRACE_GETFPXREGS: ::c_uint = 18; +pub const PTRACE_SETFPXREGS: ::c_uint = 19; +pub const PTRACE_GETREGS: ::c_uint = 12; +pub const PTRACE_SETREGS: ::c_uint = 13; +pub const MCL_CURRENT: ::c_int = 1; +pub const MCL_FUTURE: ::c_int = 2; +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 4111; +pub const TAB1: ::tcflag_t = 2048; +pub const TAB2: ::tcflag_t = 4096; +pub const TAB3: ::tcflag_t = 6144; +pub const CR1: ::tcflag_t = 512; +pub const CR2: ::tcflag_t = 1024; +pub const CR3: ::tcflag_t = 1536; +pub const FF1: ::tcflag_t = 32768; +pub const BS1: ::tcflag_t = 8192; +pub const VT1: ::tcflag_t = 16384; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 1024; +pub const IXOFF: ::tcflag_t = 4096; +pub const ONLCR: ::tcflag_t = 4; +pub const CSIZE: ::tcflag_t = 48; +pub const CS6: ::tcflag_t = 16; +pub const CS7: ::tcflag_t = 32; +pub const CS8: ::tcflag_t = 48; +pub const CSTOPB: ::tcflag_t = 64; +pub const CREAD: ::tcflag_t = 128; +pub const PARENB: ::tcflag_t = 256; +pub const PARODD: ::tcflag_t = 512; +pub const HUPCL: ::tcflag_t = 1024; +pub const CLOCAL: ::tcflag_t = 2048; +pub const ECHOKE: ::tcflag_t = 2048; +pub const ECHOE: ::tcflag_t = 16; +pub const ECHOK: ::tcflag_t = 32; +pub const ECHONL: ::tcflag_t = 64; +pub const ECHOPRT: ::tcflag_t = 1024; +pub const ECHOCTL: ::tcflag_t = 512; +pub const ISIG: ::tcflag_t = 1; +pub const ICANON: ::tcflag_t = 2; +pub const PENDIN: ::tcflag_t = 16384; +pub const NOFLSH: ::tcflag_t = 128; +pub const CIBAUD: ::tcflag_t = 269418496; +pub const CBAUDEX: ::tcflag_t = 4096; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 2; +pub const NLDLY: ::tcflag_t = 256; +pub const CRDLY: ::tcflag_t = 1536; +pub const TABDLY: ::tcflag_t = 6144; +pub const BSDLY: ::tcflag_t = 8192; +pub const FFDLY: ::tcflag_t = 32768; +pub const VTDLY: ::tcflag_t = 16384; +pub const XTABS: ::tcflag_t = 6144; +pub const B0: ::speed_t = 0; +pub const B50: ::speed_t = 1; +pub const B75: ::speed_t = 2; +pub const B110: ::speed_t = 3; +pub const B134: ::speed_t = 4; +pub const B150: ::speed_t = 5; +pub const B200: ::speed_t = 6; +pub const B300: ::speed_t = 7; +pub const B600: ::speed_t = 8; +pub const B1200: ::speed_t = 9; +pub const B1800: ::speed_t = 10; +pub const B2400: ::speed_t = 11; +pub const B4800: ::speed_t = 12; +pub const B9600: ::speed_t = 13; +pub const B19200: ::speed_t = 14; +pub const B38400: ::speed_t = 15; +pub const EXTA: ::speed_t = 14; +pub const EXTB: ::speed_t = 15; +pub const B57600: ::speed_t = 4097; +pub const B115200: ::speed_t = 4098; +pub const B230400: ::speed_t = 4099; +pub const B460800: ::speed_t = 4100; +pub const B500000: ::speed_t = 4101; +pub const B576000: ::speed_t = 4102; +pub const B921600: ::speed_t = 4103; +pub const B1000000: ::speed_t = 4104; +pub const B1152000: ::speed_t = 4105; +pub const B1500000: ::speed_t = 4106; +pub const B2000000: ::speed_t = 4107; +pub const B2500000: ::speed_t = 4108; +pub const B3000000: ::speed_t = 4109; +pub const B3500000: ::speed_t = 4110; +pub const B4000000: ::speed_t = 4111; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 32768; +pub const TOSTOP: ::tcflag_t = 256; +pub const FLUSHO: ::tcflag_t = 4096; +pub const EXTPROC: ::tcflag_t = 65536; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; +pub const NGREG: usize = 32; +pub const REG_PC: usize = 0; +pub const REG_RA: usize = 1; +pub const REG_SP: usize = 2; +pub const REG_TP: usize = 4; +pub const REG_S0: usize = 8; +pub const REG_S1: usize = 9; +pub const REG_A0: usize = 10; +pub const REG_S2: usize = 18; +pub const REG_NARGS: usize = 8; + +pub const SYS_read: ::c_long = 63; +pub const SYS_write: ::c_long = 64; +pub const SYS_close: ::c_long = 57; +pub const SYS_fstat: ::c_long = 80; +pub const SYS_lseek: ::c_long = 62; +pub const SYS_mmap: ::c_long = 222; +pub const SYS_mprotect: ::c_long = 226; +pub const SYS_munmap: ::c_long = 215; +pub const SYS_brk: ::c_long = 214; +pub const SYS_rt_sigaction: ::c_long = 134; +pub const SYS_rt_sigprocmask: ::c_long = 135; +pub const SYS_rt_sigreturn: ::c_long = 139; +pub const SYS_ioctl: ::c_long = 29; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_readv: ::c_long = 65; +pub const SYS_writev: ::c_long = 66; +pub const SYS_sched_yield: ::c_long = 124; +pub const SYS_mremap: ::c_long = 216; +pub const SYS_msync: ::c_long = 227; +pub const SYS_mincore: ::c_long = 232; +pub const SYS_madvise: ::c_long = 233; +pub const SYS_shmget: ::c_long = 194; +pub const SYS_shmat: ::c_long = 196; +pub const SYS_shmctl: ::c_long = 195; +pub const SYS_dup: ::c_long = 23; +pub const SYS_nanosleep: ::c_long = 101; +pub const SYS_getitimer: ::c_long = 102; +pub const SYS_setitimer: ::c_long = 103; +pub const SYS_getpid: ::c_long = 172; +pub const SYS_sendfile: ::c_long = 71; +pub const SYS_socket: ::c_long = 198; +pub const SYS_connect: ::c_long = 203; +pub const SYS_accept: ::c_long = 202; +pub const SYS_sendto: ::c_long = 206; +pub const SYS_recvfrom: ::c_long = 207; +pub const SYS_sendmsg: ::c_long = 211; +pub const SYS_recvmsg: ::c_long = 212; +pub const SYS_shutdown: ::c_long = 210; +pub const SYS_bind: ::c_long = 200; +pub const SYS_listen: ::c_long = 201; +pub const SYS_getsockname: ::c_long = 204; +pub const SYS_getpeername: ::c_long = 205; +pub const SYS_socketpair: ::c_long = 199; +pub const SYS_setsockopt: ::c_long = 208; +pub const SYS_getsockopt: ::c_long = 209; +pub const SYS_clone: ::c_long = 220; +pub const SYS_execve: ::c_long = 221; +pub const SYS_exit: ::c_long = 93; +pub const SYS_wait4: ::c_long = 260; +pub const SYS_kill: ::c_long = 129; +pub const SYS_uname: ::c_long = 160; +pub const SYS_semget: ::c_long = 190; +pub const SYS_semop: ::c_long = 193; +pub const SYS_semctl: ::c_long = 191; +pub const SYS_shmdt: ::c_long = 197; +pub const SYS_msgget: ::c_long = 186; +pub const SYS_msgsnd: ::c_long = 189; +pub const SYS_msgrcv: ::c_long = 188; +pub const SYS_msgctl: ::c_long = 187; +pub const SYS_fcntl: ::c_long = 25; +pub const SYS_flock: ::c_long = 32; +pub const SYS_fsync: ::c_long = 82; +pub const SYS_fdatasync: ::c_long = 83; +pub const SYS_truncate: ::c_long = 45; +pub const SYS_ftruncate: ::c_long = 46; +pub const SYS_getcwd: ::c_long = 17; +pub const SYS_chdir: ::c_long = 49; +pub const SYS_fchdir: ::c_long = 50; +pub const SYS_fchmod: ::c_long = 52; +pub const SYS_fchown: ::c_long = 55; +pub const SYS_umask: ::c_long = 166; +pub const SYS_gettimeofday: ::c_long = 169; +pub const SYS_getrlimit: ::c_long = 163; +pub const SYS_getrusage: ::c_long = 165; +pub const SYS_sysinfo: ::c_long = 179; +pub const SYS_times: ::c_long = 153; +pub const SYS_ptrace: ::c_long = 117; +pub const SYS_getuid: ::c_long = 174; +pub const SYS_syslog: ::c_long = 116; +pub const SYS_getgid: ::c_long = 176; +pub const SYS_setuid: ::c_long = 146; +pub const SYS_setgid: ::c_long = 144; +pub const SYS_geteuid: ::c_long = 175; +pub const SYS_getegid: ::c_long = 177; +pub const SYS_setpgid: ::c_long = 154; +pub const SYS_getppid: ::c_long = 173; +pub const SYS_setsid: ::c_long = 157; +pub const SYS_setreuid: ::c_long = 145; +pub const SYS_setregid: ::c_long = 143; +pub const SYS_getgroups: ::c_long = 158; +pub const SYS_setgroups: ::c_long = 159; +pub const SYS_setresuid: ::c_long = 147; +pub const SYS_getresuid: ::c_long = 148; +pub const SYS_setresgid: ::c_long = 149; +pub const SYS_getresgid: ::c_long = 150; +pub const SYS_getpgid: ::c_long = 155; +pub const SYS_setfsuid: ::c_long = 151; +pub const SYS_setfsgid: ::c_long = 152; +pub const SYS_getsid: ::c_long = 156; +pub const SYS_capget: ::c_long = 90; +pub const SYS_capset: ::c_long = 91; +pub const SYS_rt_sigpending: ::c_long = 136; +pub const SYS_rt_sigtimedwait: ::c_long = 137; +pub const SYS_rt_sigqueueinfo: ::c_long = 138; +pub const SYS_rt_sigsuspend: ::c_long = 133; +pub const SYS_sigaltstack: ::c_long = 132; +pub const SYS_personality: ::c_long = 92; +pub const SYS_statfs: ::c_long = 43; +pub const SYS_fstatfs: ::c_long = 44; +pub const SYS_getpriority: ::c_long = 141; +pub const SYS_setpriority: ::c_long = 140; +pub const SYS_sched_setparam: ::c_long = 118; +pub const SYS_sched_getparam: ::c_long = 121; +pub const SYS_sched_setscheduler: ::c_long = 119; +pub const SYS_sched_getscheduler: ::c_long = 120; +pub const SYS_sched_get_priority_max: ::c_long = 125; +pub const SYS_sched_get_priority_min: ::c_long = 126; +pub const SYS_sched_rr_get_interval: ::c_long = 127; +pub const SYS_mlock: ::c_long = 228; +pub const SYS_munlock: ::c_long = 229; +pub const SYS_mlockall: ::c_long = 230; +pub const SYS_munlockall: ::c_long = 231; +pub const SYS_vhangup: ::c_long = 58; +pub const SYS_pivot_root: ::c_long = 41; +pub const SYS_prctl: ::c_long = 167; +pub const SYS_adjtimex: ::c_long = 171; +pub const SYS_setrlimit: ::c_long = 164; +pub const SYS_chroot: ::c_long = 51; +pub const SYS_sync: ::c_long = 81; +pub const SYS_acct: ::c_long = 89; +pub const SYS_settimeofday: ::c_long = 170; +pub const SYS_mount: ::c_long = 40; +pub const SYS_umount2: ::c_long = 39; +pub const SYS_swapon: ::c_long = 224; +pub const SYS_swapoff: ::c_long = 225; +pub const SYS_reboot: ::c_long = 142; +pub const SYS_sethostname: ::c_long = 161; +pub const SYS_setdomainname: ::c_long = 162; +pub const SYS_init_module: ::c_long = 105; +pub const SYS_delete_module: ::c_long = 106; +pub const SYS_quotactl: ::c_long = 60; +pub const SYS_nfsservctl: ::c_long = 42; +pub const SYS_gettid: ::c_long = 178; +pub const SYS_readahead: ::c_long = 213; +pub const SYS_setxattr: ::c_long = 5; +pub const SYS_lsetxattr: ::c_long = 6; +pub const SYS_fsetxattr: ::c_long = 7; +pub const SYS_getxattr: ::c_long = 8; +pub const SYS_lgetxattr: ::c_long = 9; +pub const SYS_fgetxattr: ::c_long = 10; +pub const SYS_listxattr: ::c_long = 11; +pub const SYS_llistxattr: ::c_long = 12; +pub const SYS_flistxattr: ::c_long = 13; +pub const SYS_removexattr: ::c_long = 14; +pub const SYS_lremovexattr: ::c_long = 15; +pub const SYS_fremovexattr: ::c_long = 16; +pub const SYS_tkill: ::c_long = 130; +pub const SYS_futex: ::c_long = 98; +pub const SYS_sched_setaffinity: ::c_long = 122; +pub const SYS_sched_getaffinity: ::c_long = 123; +pub const SYS_io_setup: ::c_long = 0; +pub const SYS_io_destroy: ::c_long = 1; +pub const SYS_io_getevents: ::c_long = 4; +pub const SYS_io_submit: ::c_long = 2; +pub const SYS_io_cancel: ::c_long = 3; +pub const SYS_lookup_dcookie: ::c_long = 18; +pub const SYS_remap_file_pages: ::c_long = 234; +pub const SYS_getdents64: ::c_long = 61; +pub const SYS_set_tid_address: ::c_long = 96; +pub const SYS_restart_syscall: ::c_long = 128; +pub const SYS_semtimedop: ::c_long = 192; +pub const SYS_fadvise64: ::c_long = 223; +pub const SYS_timer_create: ::c_long = 107; +pub const SYS_timer_settime: ::c_long = 110; +pub const SYS_timer_gettime: ::c_long = 108; +pub const SYS_timer_getoverrun: ::c_long = 109; +pub const SYS_timer_delete: ::c_long = 111; +pub const SYS_clock_settime: ::c_long = 112; +pub const SYS_clock_gettime: ::c_long = 113; +pub const SYS_clock_getres: ::c_long = 114; +pub const SYS_clock_nanosleep: ::c_long = 115; +pub const SYS_exit_group: ::c_long = 94; +pub const SYS_epoll_ctl: ::c_long = 21; +pub const SYS_tgkill: ::c_long = 131; +pub const SYS_mbind: ::c_long = 235; +pub const SYS_set_mempolicy: ::c_long = 237; +pub const SYS_get_mempolicy: ::c_long = 236; +pub const SYS_mq_open: ::c_long = 180; +pub const SYS_mq_unlink: ::c_long = 181; +pub const SYS_mq_timedsend: ::c_long = 182; +pub const SYS_mq_timedreceive: ::c_long = 183; +pub const SYS_mq_notify: ::c_long = 184; +pub const SYS_mq_getsetattr: ::c_long = 185; +pub const SYS_kexec_load: ::c_long = 104; +pub const SYS_waitid: ::c_long = 95; +pub const SYS_add_key: ::c_long = 217; +pub const SYS_request_key: ::c_long = 218; +pub const SYS_keyctl: ::c_long = 219; +pub const SYS_ioprio_set: ::c_long = 30; +pub const SYS_ioprio_get: ::c_long = 31; +pub const SYS_inotify_add_watch: ::c_long = 27; +pub const SYS_inotify_rm_watch: ::c_long = 28; +pub const SYS_migrate_pages: ::c_long = 238; +pub const SYS_openat: ::c_long = 56; +pub const SYS_mkdirat: ::c_long = 34; +pub const SYS_mknodat: ::c_long = 33; +pub const SYS_fchownat: ::c_long = 54; +pub const SYS_newfstatat: ::c_long = 79; +pub const SYS_unlinkat: ::c_long = 35; +pub const SYS_linkat: ::c_long = 37; +pub const SYS_symlinkat: ::c_long = 36; +pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_fchmodat: ::c_long = 53; +pub const SYS_faccessat: ::c_long = 48; +pub const SYS_pselect6: ::c_long = 72; +pub const SYS_ppoll: ::c_long = 73; +pub const SYS_unshare: ::c_long = 97; +pub const SYS_set_robust_list: ::c_long = 99; +pub const SYS_get_robust_list: ::c_long = 100; +pub const SYS_splice: ::c_long = 76; +pub const SYS_tee: ::c_long = 77; +pub const SYS_sync_file_range: ::c_long = 84; +pub const SYS_vmsplice: ::c_long = 75; +pub const SYS_move_pages: ::c_long = 239; +pub const SYS_utimensat: ::c_long = 88; +pub const SYS_epoll_pwait: ::c_long = 22; +pub const SYS_timerfd_create: ::c_long = 85; +pub const SYS_fallocate: ::c_long = 47; +pub const SYS_timerfd_settime: ::c_long = 86; +pub const SYS_timerfd_gettime: ::c_long = 87; +pub const SYS_accept4: ::c_long = 242; +pub const SYS_signalfd4: ::c_long = 74; +pub const SYS_eventfd2: ::c_long = 19; +pub const SYS_epoll_create1: ::c_long = 20; +pub const SYS_dup3: ::c_long = 24; +pub const SYS_pipe2: ::c_long = 59; +pub const SYS_inotify_init1: ::c_long = 26; +pub const SYS_preadv: ::c_long = 69; +pub const SYS_pwritev: ::c_long = 70; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; +pub const SYS_perf_event_open: ::c_long = 241; +pub const SYS_recvmmsg: ::c_long = 243; +pub const SYS_fanotify_init: ::c_long = 262; +pub const SYS_fanotify_mark: ::c_long = 263; +pub const SYS_prlimit64: ::c_long = 261; +pub const SYS_name_to_handle_at: ::c_long = 264; +pub const SYS_open_by_handle_at: ::c_long = 265; +pub const SYS_clock_adjtime: ::c_long = 266; +pub const SYS_syncfs: ::c_long = 267; +pub const SYS_sendmmsg: ::c_long = 269; +pub const SYS_setns: ::c_long = 268; +pub const SYS_getcpu: ::c_long = 168; +pub const SYS_process_vm_readv: ::c_long = 270; +pub const SYS_process_vm_writev: ::c_long = 271; +pub const SYS_kcmp: ::c_long = 272; +pub const SYS_finit_module: ::c_long = 273; +pub const SYS_sched_setattr: ::c_long = 274; +pub const SYS_sched_getattr: ::c_long = 275; +pub const SYS_renameat2: ::c_long = 276; +pub const SYS_seccomp: ::c_long = 277; +pub const SYS_getrandom: ::c_long = 278; +pub const SYS_memfd_create: ::c_long = 279; +pub const SYS_bpf: ::c_long = 280; +pub const SYS_execveat: ::c_long = 281; +pub const SYS_userfaultfd: ::c_long = 282; +pub const SYS_membarrier: ::c_long = 283; +pub const SYS_mlock2: ::c_long = 284; +pub const SYS_copy_file_range: ::c_long = 285; +pub const SYS_preadv2: ::c_long = 286; +pub const SYS_pwritev2: ::c_long = 287; +pub const SYS_pkey_mprotect: ::c_long = 288; +pub const SYS_pkey_alloc: ::c_long = 289; +pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; +pub const SYS_rseq: ::c_long = 293; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/s390x.rs new file mode 100644 index 000000000..c2c4f31cf --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -0,0 +1,963 @@ +//! s390x + +use pthread_mutex_t; + +pub type blksize_t = i64; +pub type c_char = u8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type nlink_t = u64; +pub type suseconds_t = i64; +pub type wchar_t = i32; +pub type greg_t = u64; +pub type __u64 = u64; +pub type __s64 = i64; + +s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + __glibc_reserved0: ::c_int, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + pub sa_mask: ::sigset_t, + } + + pub struct statfs { + pub f_type: ::c_uint, + pub f_bsize: ::c_uint, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_uint, + pub f_frsize: ::c_uint, + pub f_flags: ::c_uint, + f_spare: [::c_uint; 4], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + _pad: ::c_int, + _pad2: [::c_long; 14], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + st_pad0: ::c_int, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + __glibc_reserved: [::c_long; 3], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + st_pad0: ::c_int, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + __glibc_reserved: [::c_long; 3], + } + + pub struct pthread_attr_t { + __size: [::c_ulong; 7] + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_ushort, + __pad1: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused4: ::c_ulong, + __unused5: ::c_ulong + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct __psw_t { + pub mask: u64, + pub addr: u64, + } + + pub struct fpregset_t { + pub fpc: u32, + __pad: u32, + pub fprs: [fpreg_t; 16], + } + + pub struct mcontext_t { + pub psw: __psw_t, + pub gregs: [u64; 16], + pub aregs: [u32; 16], + pub fpregs: fpregset_t, + } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask: ::sigset_t, + } + + pub struct statfs64 { + pub f_type: ::c_uint, + pub f_bsize: ::c_uint, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_uint, + pub f_frsize: ::c_uint, + pub f_flags: ::c_uint, + pub f_spare: [::c_uint; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } +} + +s_no_extra_traits! { + // FIXME: This is actually a union. + pub struct fpreg_t { + pub d: ::c_double, + // f: ::c_float, + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for fpreg_t { + fn eq(&self, other: &fpreg_t) -> bool { + self.d == other.d + } + } + + impl Eq for fpreg_t {} + + impl ::fmt::Debug for fpreg_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("fpreg_t") + .field("d", &self.d) + .finish() + } + } + + impl ::hash::Hash for fpreg_t { + fn hash(&self, state: &mut H) { + let d: u64 = unsafe { ::mem::transmute(self.d) }; + d.hash(state); + } + } + } +} + +pub const POSIX_FADV_DONTNEED: ::c_int = 6; +pub const POSIX_FADV_NOREUSE: ::c_int = 7; + +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const SFD_CLOEXEC: ::c_int = 0x080000; + +pub const NCCS: usize = 32; + +pub const O_TRUNC: ::c_int = 512; +pub const O_NOATIME: ::c_int = 0o1000000; +pub const O_CLOEXEC: ::c_int = 0x80000; +pub const O_PATH: ::c_int = 0o10000000; +pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; + +pub const EBFONT: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EDOTDOT: ::c_int = 73; + +pub const SA_NODEFER: ::c_int = 0x40000000; +pub const SA_RESETHAND: ::c_int = 0x80000000; +pub const SA_RESTART: ::c_int = 0x10000000; +pub const SA_NOCLDSTOP: ::c_int = 0x00000001; + +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; + +pub const EFD_CLOEXEC: ::c_int = 0x80000; + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; + +align_const! { + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; +} + +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNREFUSED: ::c_int = 111; +pub const ECONNRESET: ::c_int = 104; +pub const EDEADLK: ::c_int = 35; +pub const ENOSYS: ::c_int = 38; +pub const ENOTCONN: ::c_int = 107; +pub const ETIMEDOUT: ::c_int = 110; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NONBLOCK: ::c_int = 2048; +pub const SA_NOCLDWAIT: ::c_int = 2; +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 4; +pub const SIGBUS: ::c_int = 7; +pub const SIGSTKSZ: ::size_t = 0x2000; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const SIG_SETMASK: ::c_int = 2; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const O_NOCTTY: ::c_int = 256; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 0x101000; +pub const O_DIRECT: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const EDEADLOCK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGCHLD: ::c_int = 17; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] +pub const SIGUNUSED: ::c_int = 31; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x800; + +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; + +pub const EXTPROC: ::tcflag_t = 0x00010000; + +pub const PTRACE_DETACH: ::c_uint = 17; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const EFD_NONBLOCK: ::c_int = 0x800; + +pub const F_RDLCK: ::c_int = 0; +pub const F_WRLCK: ::c_int = 1; +pub const F_UNLCK: ::c_int = 2; +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const SFD_NONBLOCK: ::c_int = 0x0800; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const VTIME: usize = 5; +pub const VSWTC: usize = 7; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VSUSP: usize = 10; +pub const VREPRINT: usize = 12; +pub const VDISCARD: usize = 13; +pub const VWERASE: usize = 14; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const ONLCR: ::tcflag_t = 0o000004; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const FF1: ::tcflag_t = 0x00008000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const CBAUD: ::speed_t = 0o010017; +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const CSIZE: ::tcflag_t = 0o000060; +pub const CS6: ::tcflag_t = 0o000020; +pub const CS7: ::tcflag_t = 0o000040; +pub const CS8: ::tcflag_t = 0o000060; +pub const CSTOPB: ::tcflag_t = 0o000100; +pub const CREAD: ::tcflag_t = 0o000200; +pub const PARENB: ::tcflag_t = 0o000400; +pub const PARODD: ::tcflag_t = 0o001000; +pub const HUPCL: ::tcflag_t = 0o002000; +pub const CLOCAL: ::tcflag_t = 0o004000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; +pub const CIBAUD: ::tcflag_t = 0o02003600000; + +pub const ISIG: ::tcflag_t = 0o000001; +pub const ICANON: ::tcflag_t = 0o000002; +pub const XCASE: ::tcflag_t = 0o000004; +pub const ECHOE: ::tcflag_t = 0o000020; +pub const ECHOK: ::tcflag_t = 0o000040; +pub const ECHONL: ::tcflag_t = 0o000100; +pub const NOFLSH: ::tcflag_t = 0o000200; +pub const ECHOCTL: ::tcflag_t = 0o001000; +pub const ECHOPRT: ::tcflag_t = 0o002000; +pub const ECHOKE: ::tcflag_t = 0o004000; +pub const PENDIN: ::tcflag_t = 0o040000; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const IXON: ::tcflag_t = 0o002000; +pub const IXOFF: ::tcflag_t = 0o010000; + +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_restart_syscall: ::c_long = 7; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_umount: ::c_long = 22; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_alarm: ::c_long = 27; +pub const SYS_pause: ::c_long = 29; +pub const SYS_utime: ::c_long = 30; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_brk: ::c_long = 45; +pub const SYS_signal: ::c_long = 48; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_readdir: ::c_long = 89; +pub const SYS_mmap: ::c_long = 90; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_socketcall: ::c_long = 102; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_lookup_dcookie: ::c_long = 110; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_idle: ::c_long = 112; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_ipc: ::c_long = 117; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_create_module: ::c_long = 127; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_get_kernel_syms: ::c_long = 130; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ +pub const SYS_getdents: ::c_long = 141; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_query_module: ::c_long = 167; +pub const SYS_poll: ::c_long = 168; +pub const SYS_nfsservctl: ::c_long = 169; +pub const SYS_prctl: ::c_long = 172; +pub const SYS_rt_sigreturn: ::c_long = 173; +pub const SYS_rt_sigaction: ::c_long = 174; +pub const SYS_rt_sigprocmask: ::c_long = 175; +pub const SYS_rt_sigpending: ::c_long = 176; +pub const SYS_rt_sigtimedwait: ::c_long = 177; +pub const SYS_rt_sigqueueinfo: ::c_long = 178; +pub const SYS_rt_sigsuspend: ::c_long = 179; +pub const SYS_pread64: ::c_long = 180; +pub const SYS_pwrite64: ::c_long = 181; +pub const SYS_getcwd: ::c_long = 183; +pub const SYS_capget: ::c_long = 184; +pub const SYS_capset: ::c_long = 185; +pub const SYS_sigaltstack: ::c_long = 186; +pub const SYS_sendfile: ::c_long = 187; +pub const SYS_getpmsg: ::c_long = 188; +pub const SYS_putpmsg: ::c_long = 189; +pub const SYS_vfork: ::c_long = 190; +pub const SYS_pivot_root: ::c_long = 217; +pub const SYS_mincore: ::c_long = 218; +pub const SYS_madvise: ::c_long = 219; +pub const SYS_getdents64: ::c_long = 220; +pub const SYS_readahead: ::c_long = 222; +pub const SYS_setxattr: ::c_long = 224; +pub const SYS_lsetxattr: ::c_long = 225; +pub const SYS_fsetxattr: ::c_long = 226; +pub const SYS_getxattr: ::c_long = 227; +pub const SYS_lgetxattr: ::c_long = 228; +pub const SYS_fgetxattr: ::c_long = 229; +pub const SYS_listxattr: ::c_long = 230; +pub const SYS_llistxattr: ::c_long = 231; +pub const SYS_flistxattr: ::c_long = 232; +pub const SYS_removexattr: ::c_long = 233; +pub const SYS_lremovexattr: ::c_long = 234; +pub const SYS_fremovexattr: ::c_long = 235; +pub const SYS_gettid: ::c_long = 236; +pub const SYS_tkill: ::c_long = 237; +pub const SYS_futex: ::c_long = 238; +pub const SYS_sched_setaffinity: ::c_long = 239; +pub const SYS_sched_getaffinity: ::c_long = 240; +pub const SYS_tgkill: ::c_long = 241; +pub const SYS_io_setup: ::c_long = 243; +pub const SYS_io_destroy: ::c_long = 244; +pub const SYS_io_getevents: ::c_long = 245; +pub const SYS_io_submit: ::c_long = 246; +pub const SYS_io_cancel: ::c_long = 247; +pub const SYS_exit_group: ::c_long = 248; +pub const SYS_epoll_create: ::c_long = 249; +pub const SYS_epoll_ctl: ::c_long = 250; +pub const SYS_epoll_wait: ::c_long = 251; +pub const SYS_set_tid_address: ::c_long = 252; +pub const SYS_fadvise64: ::c_long = 253; +pub const SYS_timer_create: ::c_long = 254; +pub const SYS_timer_settime: ::c_long = 255; +pub const SYS_timer_gettime: ::c_long = 256; +pub const SYS_timer_getoverrun: ::c_long = 257; +pub const SYS_timer_delete: ::c_long = 258; +pub const SYS_clock_settime: ::c_long = 259; +pub const SYS_clock_gettime: ::c_long = 260; +pub const SYS_clock_getres: ::c_long = 261; +pub const SYS_clock_nanosleep: ::c_long = 262; +pub const SYS_statfs64: ::c_long = 265; +pub const SYS_fstatfs64: ::c_long = 266; +pub const SYS_remap_file_pages: ::c_long = 267; +pub const SYS_mbind: ::c_long = 268; +pub const SYS_get_mempolicy: ::c_long = 269; +pub const SYS_set_mempolicy: ::c_long = 270; +pub const SYS_mq_open: ::c_long = 271; +pub const SYS_mq_unlink: ::c_long = 272; +pub const SYS_mq_timedsend: ::c_long = 273; +pub const SYS_mq_timedreceive: ::c_long = 274; +pub const SYS_mq_notify: ::c_long = 275; +pub const SYS_mq_getsetattr: ::c_long = 276; +pub const SYS_kexec_load: ::c_long = 277; +pub const SYS_add_key: ::c_long = 278; +pub const SYS_request_key: ::c_long = 279; +pub const SYS_keyctl: ::c_long = 280; +pub const SYS_waitid: ::c_long = 281; +pub const SYS_ioprio_set: ::c_long = 282; +pub const SYS_ioprio_get: ::c_long = 283; +pub const SYS_inotify_init: ::c_long = 284; +pub const SYS_inotify_add_watch: ::c_long = 285; +pub const SYS_inotify_rm_watch: ::c_long = 286; +pub const SYS_migrate_pages: ::c_long = 287; +pub const SYS_openat: ::c_long = 288; +pub const SYS_mkdirat: ::c_long = 289; +pub const SYS_mknodat: ::c_long = 290; +pub const SYS_fchownat: ::c_long = 291; +pub const SYS_futimesat: ::c_long = 292; +pub const SYS_unlinkat: ::c_long = 294; +pub const SYS_renameat: ::c_long = 295; +pub const SYS_linkat: ::c_long = 296; +pub const SYS_symlinkat: ::c_long = 297; +pub const SYS_readlinkat: ::c_long = 298; +pub const SYS_fchmodat: ::c_long = 299; +pub const SYS_faccessat: ::c_long = 300; +pub const SYS_pselect6: ::c_long = 301; +pub const SYS_ppoll: ::c_long = 302; +pub const SYS_unshare: ::c_long = 303; +pub const SYS_set_robust_list: ::c_long = 304; +pub const SYS_get_robust_list: ::c_long = 305; +pub const SYS_splice: ::c_long = 306; +pub const SYS_sync_file_range: ::c_long = 307; +pub const SYS_tee: ::c_long = 308; +pub const SYS_vmsplice: ::c_long = 309; +pub const SYS_move_pages: ::c_long = 310; +pub const SYS_getcpu: ::c_long = 311; +pub const SYS_epoll_pwait: ::c_long = 312; +pub const SYS_utimes: ::c_long = 313; +pub const SYS_fallocate: ::c_long = 314; +pub const SYS_utimensat: ::c_long = 315; +pub const SYS_signalfd: ::c_long = 316; +pub const SYS_timerfd: ::c_long = 317; +pub const SYS_eventfd: ::c_long = 318; +pub const SYS_timerfd_create: ::c_long = 319; +pub const SYS_timerfd_settime: ::c_long = 320; +pub const SYS_timerfd_gettime: ::c_long = 321; +pub const SYS_signalfd4: ::c_long = 322; +pub const SYS_eventfd2: ::c_long = 323; +pub const SYS_inotify_init1: ::c_long = 324; +pub const SYS_pipe2: ::c_long = 325; +pub const SYS_dup3: ::c_long = 326; +pub const SYS_epoll_create1: ::c_long = 327; +pub const SYS_preadv: ::c_long = 328; +pub const SYS_pwritev: ::c_long = 329; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 330; +pub const SYS_perf_event_open: ::c_long = 331; +pub const SYS_fanotify_init: ::c_long = 332; +pub const SYS_fanotify_mark: ::c_long = 333; +pub const SYS_prlimit64: ::c_long = 334; +pub const SYS_name_to_handle_at: ::c_long = 335; +pub const SYS_open_by_handle_at: ::c_long = 336; +pub const SYS_clock_adjtime: ::c_long = 337; +pub const SYS_syncfs: ::c_long = 338; +pub const SYS_setns: ::c_long = 339; +pub const SYS_process_vm_readv: ::c_long = 340; +pub const SYS_process_vm_writev: ::c_long = 341; +pub const SYS_s390_runtime_instr: ::c_long = 342; +pub const SYS_kcmp: ::c_long = 343; +pub const SYS_finit_module: ::c_long = 344; +pub const SYS_sched_setattr: ::c_long = 345; +pub const SYS_sched_getattr: ::c_long = 346; +pub const SYS_renameat2: ::c_long = 347; +pub const SYS_seccomp: ::c_long = 348; +pub const SYS_getrandom: ::c_long = 349; +pub const SYS_memfd_create: ::c_long = 350; +pub const SYS_bpf: ::c_long = 351; +pub const SYS_s390_pci_mmio_write: ::c_long = 352; +pub const SYS_s390_pci_mmio_read: ::c_long = 353; +pub const SYS_execveat: ::c_long = 354; +pub const SYS_userfaultfd: ::c_long = 355; +pub const SYS_membarrier: ::c_long = 356; +pub const SYS_recvmmsg: ::c_long = 357; +pub const SYS_sendmmsg: ::c_long = 358; +pub const SYS_socket: ::c_long = 359; +pub const SYS_socketpair: ::c_long = 360; +pub const SYS_bind: ::c_long = 361; +pub const SYS_connect: ::c_long = 362; +pub const SYS_listen: ::c_long = 363; +pub const SYS_accept4: ::c_long = 364; +pub const SYS_getsockopt: ::c_long = 365; +pub const SYS_setsockopt: ::c_long = 366; +pub const SYS_getsockname: ::c_long = 367; +pub const SYS_getpeername: ::c_long = 368; +pub const SYS_sendto: ::c_long = 369; +pub const SYS_sendmsg: ::c_long = 370; +pub const SYS_recvfrom: ::c_long = 371; +pub const SYS_recvmsg: ::c_long = 372; +pub const SYS_shutdown: ::c_long = 373; +pub const SYS_mlock2: ::c_long = 374; +pub const SYS_copy_file_range: ::c_long = 375; +pub const SYS_preadv2: ::c_long = 376; +pub const SYS_pwritev2: ::c_long = 377; +pub const SYS_lchown: ::c_long = 198; +pub const SYS_setuid: ::c_long = 213; +pub const SYS_getuid: ::c_long = 199; +pub const SYS_setgid: ::c_long = 214; +pub const SYS_getgid: ::c_long = 200; +pub const SYS_geteuid: ::c_long = 201; +pub const SYS_setreuid: ::c_long = 203; +pub const SYS_setregid: ::c_long = 204; +pub const SYS_getrlimit: ::c_long = 191; +pub const SYS_getgroups: ::c_long = 205; +pub const SYS_fchown: ::c_long = 207; +pub const SYS_setresuid: ::c_long = 208; +pub const SYS_setresgid: ::c_long = 210; +pub const SYS_getresgid: ::c_long = 211; +pub const SYS_select: ::c_long = 142; +pub const SYS_getegid: ::c_long = 202; +pub const SYS_setgroups: ::c_long = 206; +pub const SYS_getresuid: ::c_long = 209; +pub const SYS_chown: ::c_long = 212; +pub const SYS_setfsuid: ::c_long = 215; +pub const SYS_setfsgid: ::c_long = 216; +pub const SYS_newfstatat: ::c_long = 293; +pub const SYS_statx: ::c_long = 379; +pub const SYS_rseq: ::c_long = 383; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +extern "C" { + + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; + pub fn getcontext(ucp: *mut ::ucontext_t) -> ::c_int; + pub fn setcontext(ucp: *const ::ucontext_t) -> ::c_int; + pub fn makecontext(ucp: *mut ::ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); + pub fn swapcontext(uocp: *mut ::ucontext_t, ucp: *const ::ucontext_t) -> ::c_int; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs new file mode 100644 index 000000000..29d1e1c7b --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [i64; 4] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs new file mode 100644 index 000000000..2427c7a0a --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -0,0 +1,930 @@ +//! SPARC64-specific definitions for 64-bit linux-like values + +use pthread_mutex_t; + +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_char = i8; +pub type wchar_t = i32; +pub type nlink_t = u32; +pub type blksize_t = i64; +pub type suseconds_t = i32; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; + +s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + #[cfg(target_arch = "sparc64")] + __reserved0: ::c_int, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct statfs { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + __reserved: ::c_short, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct stat { + pub st_dev: ::dev_t, + __pad0: u64, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad1: u64, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_long; 2], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + __pad0: u64, + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: ::c_int, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __reserved: [::c_long; 2], + } + + pub struct statfs64 { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + pub f_spare: [::__fsword_t; 4], + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct pthread_attr_t { + __size: [u64; 7] + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + __pad0: u16, + pub __seq: ::c_ushort, + __unused1: ::c_ulonglong, + __unused2: ::c_ulonglong, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_segsz: ::size_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __reserved1: ::c_ulong, + __reserved2: ::c_ulong + } +} + +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; + +pub const O_APPEND: ::c_int = 0x8; +pub const O_CREAT: ::c_int = 0x200; +pub const O_EXCL: ::c_int = 0x800; +pub const O_NOCTTY: ::c_int = 0x8000; +pub const O_NONBLOCK: ::c_int = 0x4000; +pub const O_SYNC: ::c_int = 0x802000; +pub const O_RSYNC: ::c_int = 0x802000; +pub const O_DSYNC: ::c_int = 0x2000; +pub const O_FSYNC: ::c_int = 0x802000; +pub const O_NOATIME: ::c_int = 0x200000; +pub const O_PATH: ::c_int = 0x1000000; +pub const O_TMPFILE: ::c_int = 0x2000000 | O_DIRECTORY; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_GROWSDOWN: ::c_int = 0x0200; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const EDEADLK: ::c_int = 78; +pub const ENAMETOOLONG: ::c_int = 63; +pub const ENOLCK: ::c_int = 79; +pub const ENOSYS: ::c_int = 90; +pub const ENOTEMPTY: ::c_int = 66; +pub const ELOOP: ::c_int = 62; +pub const ENOMSG: ::c_int = 75; +pub const EIDRM: ::c_int = 77; +pub const ECHRNG: ::c_int = 94; +pub const EL2NSYNC: ::c_int = 95; +pub const EL3HLT: ::c_int = 96; +pub const EL3RST: ::c_int = 97; +pub const ELNRNG: ::c_int = 98; +pub const EUNATCH: ::c_int = 99; +pub const ENOCSI: ::c_int = 100; +pub const EL2HLT: ::c_int = 101; +pub const EBADE: ::c_int = 102; +pub const EBADR: ::c_int = 103; +pub const EXFULL: ::c_int = 104; +pub const ENOANO: ::c_int = 105; +pub const EBADRQC: ::c_int = 106; +pub const EBADSLT: ::c_int = 107; +pub const EMULTIHOP: ::c_int = 87; +pub const EOVERFLOW: ::c_int = 92; +pub const ENOTUNIQ: ::c_int = 115; +pub const EBADFD: ::c_int = 93; +pub const EBADMSG: ::c_int = 76; +pub const EREMCHG: ::c_int = 89; +pub const ELIBACC: ::c_int = 114; +pub const ELIBBAD: ::c_int = 112; +pub const ELIBSCN: ::c_int = 124; +pub const ELIBMAX: ::c_int = 123; +pub const ELIBEXEC: ::c_int = 110; +pub const EILSEQ: ::c_int = 122; +pub const ERESTART: ::c_int = 116; +pub const ESTRPIPE: ::c_int = 91; +pub const EUSERS: ::c_int = 68; +pub const ENOTSOCK: ::c_int = 38; +pub const EDESTADDRREQ: ::c_int = 39; +pub const EMSGSIZE: ::c_int = 40; +pub const EPROTOTYPE: ::c_int = 41; +pub const ENOPROTOOPT: ::c_int = 42; +pub const EPROTONOSUPPORT: ::c_int = 43; +pub const ESOCKTNOSUPPORT: ::c_int = 44; +pub const EOPNOTSUPP: ::c_int = 45; +pub const EPFNOSUPPORT: ::c_int = 46; +pub const EAFNOSUPPORT: ::c_int = 47; +pub const EADDRINUSE: ::c_int = 48; +pub const EADDRNOTAVAIL: ::c_int = 49; +pub const ENETDOWN: ::c_int = 50; +pub const ENETUNREACH: ::c_int = 51; +pub const ENETRESET: ::c_int = 52; +pub const ECONNABORTED: ::c_int = 53; +pub const ECONNRESET: ::c_int = 54; +pub const ENOBUFS: ::c_int = 55; +pub const EISCONN: ::c_int = 56; +pub const ENOTCONN: ::c_int = 57; +pub const ESHUTDOWN: ::c_int = 58; +pub const ETOOMANYREFS: ::c_int = 59; +pub const ETIMEDOUT: ::c_int = 60; +pub const ECONNREFUSED: ::c_int = 61; +pub const EHOSTDOWN: ::c_int = 64; +pub const EHOSTUNREACH: ::c_int = 65; +pub const EALREADY: ::c_int = 37; +pub const EINPROGRESS: ::c_int = 36; +pub const ESTALE: ::c_int = 70; +pub const EDQUOT: ::c_int = 69; +pub const ENOMEDIUM: ::c_int = 125; +pub const EMEDIUMTYPE: ::c_int = 126; +pub const ECANCELED: ::c_int = 127; +pub const ENOKEY: ::c_int = 128; +pub const EKEYEXPIRED: ::c_int = 129; +pub const EKEYREVOKED: ::c_int = 130; +pub const EKEYREJECTED: ::c_int = 131; +pub const EOWNERDEAD: ::c_int = 132; +pub const ENOTRECOVERABLE: ::c_int = 133; +pub const EHWPOISON: ::c_int = 135; +pub const ERFKILL: ::c_int = 134; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const SA_ONSTACK: ::c_int = 1; +pub const SA_SIGINFO: ::c_int = 0x200; +pub const SA_NOCLDWAIT: ::c_int = 0x100; + +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGCHLD: ::c_int = 20; +pub const SIGBUS: ::c_int = 10; +pub const SIGUSR1: ::c_int = 30; +pub const SIGUSR2: ::c_int = 31; +pub const SIGCONT: ::c_int = 19; +pub const SIGSTOP: ::c_int = 17; +pub const SIGTSTP: ::c_int = 18; +pub const SIGURG: ::c_int = 16; +pub const SIGIO: ::c_int = 23; +pub const SIGSYS: ::c_int = 12; +pub const SIGPOLL: ::c_int = 23; +pub const SIGPWR: ::c_int = 29; +pub const SIG_SETMASK: ::c_int = 4; +pub const SIG_BLOCK: ::c_int = 1; +pub const SIG_UNBLOCK: ::c_int = 2; + +pub const POLLWRNORM: ::c_short = 4; +pub const POLLWRBAND: ::c_short = 0x100; + +pub const O_ASYNC: ::c_int = 0x40; +pub const O_NDELAY: ::c_int = 0x4004; + +pub const PTRACE_DETACH: ::c_uint = 17; + +pub const EFD_NONBLOCK: ::c_int = 0x4000; + +pub const F_GETLK: ::c_int = 7; +pub const F_GETOWN: ::c_int = 5; +pub const F_SETOWN: ::c_int = 6; +pub const F_SETLK: ::c_int = 8; +pub const F_SETLKW: ::c_int = 9; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const F_RDLCK: ::c_int = 1; +pub const F_WRLCK: ::c_int = 2; +pub const F_UNLCK: ::c_int = 3; + +pub const SFD_NONBLOCK: ::c_int = 0x4000; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const SFD_CLOEXEC: ::c_int = 0x400000; + +pub const NCCS: usize = 17; +pub const O_TRUNC: ::c_int = 0x400; + +pub const O_CLOEXEC: ::c_int = 0x400000; + +pub const EBFONT: ::c_int = 109; +pub const ENOSTR: ::c_int = 72; +pub const ENODATA: ::c_int = 111; +pub const ETIME: ::c_int = 73; +pub const ENOSR: ::c_int = 74; +pub const ENONET: ::c_int = 80; +pub const ENOPKG: ::c_int = 113; +pub const EREMOTE: ::c_int = 71; +pub const ENOLINK: ::c_int = 82; +pub const EADV: ::c_int = 83; +pub const ESRMNT: ::c_int = 84; +pub const ECOMM: ::c_int = 85; +pub const EPROTO: ::c_int = 86; +pub const EDOTDOT: ::c_int = 88; + +pub const SA_NODEFER: ::c_int = 0x20; +pub const SA_RESETHAND: ::c_int = 0x4; +pub const SA_RESTART: ::c_int = 0x2; +pub const SA_NOCLDSTOP: ::c_int = 0x00000008; + +pub const EPOLL_CLOEXEC: ::c_int = 0x400000; + +pub const EFD_CLOEXEC: ::c_int = 0x400000; +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; + +align_const! { + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; +} + +pub const O_DIRECTORY: ::c_int = 0o200000; +pub const O_NOFOLLOW: ::c_int = 0o400000; +pub const O_DIRECT: ::c_int = 0x100000; + +pub const MAP_LOCKED: ::c_int = 0x0100; +pub const MAP_NORESERVE: ::c_int = 0x00040; + +pub const EDEADLOCK: ::c_int = 108; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; + +pub const MCL_CURRENT: ::c_int = 0x2000; +pub const MCL_FUTURE: ::c_int = 0x4000; + +pub const SIGSTKSZ: ::size_t = 16384; +pub const MINSIGSTKSZ: ::size_t = 4096; +pub const CBAUD: ::tcflag_t = 0x0000100f; +pub const TAB1: ::tcflag_t = 0x800; +pub const TAB2: ::tcflag_t = 0x1000; +pub const TAB3: ::tcflag_t = 0x1800; +pub const CR1: ::tcflag_t = 0x200; +pub const CR2: ::tcflag_t = 0x400; +pub const CR3: ::tcflag_t = 0x600; +pub const FF1: ::tcflag_t = 0x8000; +pub const BS1: ::tcflag_t = 0x2000; +pub const VT1: ::tcflag_t = 0x4000; +pub const VWERASE: usize = 0xe; +pub const VREPRINT: usize = 0xc; +pub const VSUSP: usize = 0xa; +pub const VSTART: usize = 0x8; +pub const VSTOP: usize = 0x9; +pub const VDISCARD: usize = 0xd; +pub const VTIME: usize = 0x5; +pub const IXON: ::tcflag_t = 0x400; +pub const IXOFF: ::tcflag_t = 0x1000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x30; +pub const CS6: ::tcflag_t = 0x10; +pub const CS7: ::tcflag_t = 0x20; +pub const CS8: ::tcflag_t = 0x30; +pub const CSTOPB: ::tcflag_t = 0x40; +pub const CREAD: ::tcflag_t = 0x80; +pub const PARENB: ::tcflag_t = 0x100; +pub const PARODD: ::tcflag_t = 0x200; +pub const HUPCL: ::tcflag_t = 0x400; +pub const CLOCAL: ::tcflag_t = 0x800; +pub const ECHOKE: ::tcflag_t = 0x800; +pub const ECHOE: ::tcflag_t = 0x10; +pub const ECHOK: ::tcflag_t = 0x20; +pub const ECHONL: ::tcflag_t = 0x40; +pub const ECHOPRT: ::tcflag_t = 0x400; +pub const ECHOCTL: ::tcflag_t = 0x200; +pub const ISIG: ::tcflag_t = 0x1; +pub const ICANON: ::tcflag_t = 0x2; +pub const PENDIN: ::tcflag_t = 0x4000; +pub const NOFLSH: ::tcflag_t = 0x80; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0x00001000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const B57600: ::speed_t = 0x1001; +pub const B115200: ::speed_t = 0x1002; +pub const B230400: ::speed_t = 0x1003; +pub const B460800: ::speed_t = 0x1004; +pub const B76800: ::speed_t = 0x1005; +pub const B153600: ::speed_t = 0x1006; +pub const B307200: ::speed_t = 0x1007; +pub const B614400: ::speed_t = 0x1008; +pub const B921600: ::speed_t = 0x1009; +pub const B500000: ::speed_t = 0x100a; +pub const B576000: ::speed_t = 0x100b; +pub const B1000000: ::speed_t = 0x100c; +pub const B1152000: ::speed_t = 0x100d; +pub const B1500000: ::speed_t = 0x100e; +pub const B2000000: ::speed_t = 0x100f; + +pub const VEOL: usize = 5; +pub const VEOL2: usize = 6; +pub const VMIN: usize = 4; +pub const IEXTEN: ::tcflag_t = 0x8000; +pub const TOSTOP: ::tcflag_t = 0x100; +pub const FLUSHO: ::tcflag_t = 0x1000; +pub const EXTPROC: ::tcflag_t = 0x10000; + +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_wait4: ::c_long = 7; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execv: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_chown: ::c_long = 13; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_brk: ::c_long = 17; +pub const SYS_perfctr: ::c_long = 18; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_capget: ::c_long = 21; +pub const SYS_capset: ::c_long = 22; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_vmsplice: ::c_long = 25; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_alarm: ::c_long = 27; +pub const SYS_sigaltstack: ::c_long = 28; +pub const SYS_pause: ::c_long = 29; +pub const SYS_utime: ::c_long = 30; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_stat: ::c_long = 38; +pub const SYS_sendfile: ::c_long = 39; +pub const SYS_lstat: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_umount2: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_signal: ::c_long = 48; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_memory_ordering: ::c_long = 52; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_reboot: ::c_long = 55; +pub const SYS_symlink: ::c_long = 57; +pub const SYS_readlink: ::c_long = 58; +pub const SYS_execve: ::c_long = 59; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_fstat: ::c_long = 62; +pub const SYS_fstat64: ::c_long = 63; +pub const SYS_getpagesize: ::c_long = 64; +pub const SYS_msync: ::c_long = 65; +pub const SYS_vfork: ::c_long = 66; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_mmap: ::c_long = 71; +pub const SYS_munmap: ::c_long = 73; +pub const SYS_mprotect: ::c_long = 74; +pub const SYS_madvise: ::c_long = 75; +pub const SYS_vhangup: ::c_long = 76; +pub const SYS_mincore: ::c_long = 78; +pub const SYS_getgroups: ::c_long = 79; +pub const SYS_setgroups: ::c_long = 80; +pub const SYS_getpgrp: ::c_long = 81; +pub const SYS_setitimer: ::c_long = 83; +pub const SYS_swapon: ::c_long = 85; +pub const SYS_getitimer: ::c_long = 86; +pub const SYS_sethostname: ::c_long = 88; +pub const SYS_dup2: ::c_long = 90; +pub const SYS_fcntl: ::c_long = 92; +pub const SYS_select: ::c_long = 93; +pub const SYS_fsync: ::c_long = 95; +pub const SYS_setpriority: ::c_long = 96; +pub const SYS_socket: ::c_long = 97; +pub const SYS_connect: ::c_long = 98; +pub const SYS_accept: ::c_long = 99; +pub const SYS_getpriority: ::c_long = 100; +pub const SYS_rt_sigreturn: ::c_long = 101; +pub const SYS_rt_sigaction: ::c_long = 102; +pub const SYS_rt_sigprocmask: ::c_long = 103; +pub const SYS_rt_sigpending: ::c_long = 104; +pub const SYS_rt_sigtimedwait: ::c_long = 105; +pub const SYS_rt_sigqueueinfo: ::c_long = 106; +pub const SYS_rt_sigsuspend: ::c_long = 107; +pub const SYS_setresuid: ::c_long = 108; +pub const SYS_getresuid: ::c_long = 109; +pub const SYS_setresgid: ::c_long = 110; +pub const SYS_getresgid: ::c_long = 111; +pub const SYS_recvmsg: ::c_long = 113; +pub const SYS_sendmsg: ::c_long = 114; +pub const SYS_gettimeofday: ::c_long = 116; +pub const SYS_getrusage: ::c_long = 117; +pub const SYS_getsockopt: ::c_long = 118; +pub const SYS_getcwd: ::c_long = 119; +pub const SYS_readv: ::c_long = 120; +pub const SYS_writev: ::c_long = 121; +pub const SYS_settimeofday: ::c_long = 122; +pub const SYS_fchown: ::c_long = 123; +pub const SYS_fchmod: ::c_long = 124; +pub const SYS_recvfrom: ::c_long = 125; +pub const SYS_setreuid: ::c_long = 126; +pub const SYS_setregid: ::c_long = 127; +pub const SYS_rename: ::c_long = 128; +pub const SYS_truncate: ::c_long = 129; +pub const SYS_ftruncate: ::c_long = 130; +pub const SYS_flock: ::c_long = 131; +pub const SYS_lstat64: ::c_long = 132; +pub const SYS_sendto: ::c_long = 133; +pub const SYS_shutdown: ::c_long = 134; +pub const SYS_socketpair: ::c_long = 135; +pub const SYS_mkdir: ::c_long = 136; +pub const SYS_rmdir: ::c_long = 137; +pub const SYS_utimes: ::c_long = 138; +pub const SYS_stat64: ::c_long = 139; +pub const SYS_sendfile64: ::c_long = 140; +pub const SYS_getpeername: ::c_long = 141; +pub const SYS_futex: ::c_long = 142; +pub const SYS_gettid: ::c_long = 143; +pub const SYS_getrlimit: ::c_long = 144; +pub const SYS_setrlimit: ::c_long = 145; +pub const SYS_pivot_root: ::c_long = 146; +pub const SYS_prctl: ::c_long = 147; +pub const SYS_pciconfig_read: ::c_long = 148; +pub const SYS_pciconfig_write: ::c_long = 149; +pub const SYS_getsockname: ::c_long = 150; +pub const SYS_inotify_init: ::c_long = 151; +pub const SYS_inotify_add_watch: ::c_long = 152; +pub const SYS_poll: ::c_long = 153; +pub const SYS_getdents64: ::c_long = 154; +pub const SYS_inotify_rm_watch: ::c_long = 156; +pub const SYS_statfs: ::c_long = 157; +pub const SYS_fstatfs: ::c_long = 158; +pub const SYS_umount: ::c_long = 159; +pub const SYS_sched_set_affinity: ::c_long = 160; +pub const SYS_sched_get_affinity: ::c_long = 161; +pub const SYS_getdomainname: ::c_long = 162; +pub const SYS_setdomainname: ::c_long = 163; +pub const SYS_utrap_install: ::c_long = 164; +pub const SYS_quotactl: ::c_long = 165; +pub const SYS_set_tid_address: ::c_long = 166; +pub const SYS_mount: ::c_long = 167; +pub const SYS_ustat: ::c_long = 168; +pub const SYS_setxattr: ::c_long = 169; +pub const SYS_lsetxattr: ::c_long = 170; +pub const SYS_fsetxattr: ::c_long = 171; +pub const SYS_getxattr: ::c_long = 172; +pub const SYS_lgetxattr: ::c_long = 173; +pub const SYS_getdents: ::c_long = 174; +pub const SYS_setsid: ::c_long = 175; +pub const SYS_fchdir: ::c_long = 176; +pub const SYS_fgetxattr: ::c_long = 177; +pub const SYS_listxattr: ::c_long = 178; +pub const SYS_llistxattr: ::c_long = 179; +pub const SYS_flistxattr: ::c_long = 180; +pub const SYS_removexattr: ::c_long = 181; +pub const SYS_lremovexattr: ::c_long = 182; +pub const SYS_sigpending: ::c_long = 183; +pub const SYS_query_module: ::c_long = 184; +pub const SYS_setpgid: ::c_long = 185; +pub const SYS_fremovexattr: ::c_long = 186; +pub const SYS_tkill: ::c_long = 187; +pub const SYS_exit_group: ::c_long = 188; +pub const SYS_uname: ::c_long = 189; +pub const SYS_init_module: ::c_long = 190; +pub const SYS_personality: ::c_long = 191; +pub const SYS_remap_file_pages: ::c_long = 192; +pub const SYS_epoll_create: ::c_long = 193; +pub const SYS_epoll_ctl: ::c_long = 194; +pub const SYS_epoll_wait: ::c_long = 195; +pub const SYS_ioprio_set: ::c_long = 196; +pub const SYS_getppid: ::c_long = 197; +pub const SYS_sigaction: ::c_long = 198; +pub const SYS_sgetmask: ::c_long = 199; +pub const SYS_ssetmask: ::c_long = 200; +pub const SYS_sigsuspend: ::c_long = 201; +pub const SYS_oldlstat: ::c_long = 202; +pub const SYS_uselib: ::c_long = 203; +pub const SYS_readdir: ::c_long = 204; +pub const SYS_readahead: ::c_long = 205; +pub const SYS_socketcall: ::c_long = 206; +pub const SYS_syslog: ::c_long = 207; +pub const SYS_lookup_dcookie: ::c_long = 208; +pub const SYS_fadvise64: ::c_long = 209; +pub const SYS_fadvise64_64: ::c_long = 210; +pub const SYS_tgkill: ::c_long = 211; +pub const SYS_waitpid: ::c_long = 212; +pub const SYS_swapoff: ::c_long = 213; +pub const SYS_sysinfo: ::c_long = 214; +pub const SYS_ipc: ::c_long = 215; +pub const SYS_sigreturn: ::c_long = 216; +pub const SYS_clone: ::c_long = 217; +pub const SYS_ioprio_get: ::c_long = 218; +pub const SYS_adjtimex: ::c_long = 219; +pub const SYS_sigprocmask: ::c_long = 220; +pub const SYS_create_module: ::c_long = 221; +pub const SYS_delete_module: ::c_long = 222; +pub const SYS_get_kernel_syms: ::c_long = 223; +pub const SYS_getpgid: ::c_long = 224; +pub const SYS_bdflush: ::c_long = 225; +pub const SYS_sysfs: ::c_long = 226; +pub const SYS_afs_syscall: ::c_long = 227; +pub const SYS_setfsuid: ::c_long = 228; +pub const SYS_setfsgid: ::c_long = 229; +pub const SYS__newselect: ::c_long = 230; +pub const SYS_splice: ::c_long = 232; +pub const SYS_stime: ::c_long = 233; +pub const SYS_statfs64: ::c_long = 234; +pub const SYS_fstatfs64: ::c_long = 235; +pub const SYS__llseek: ::c_long = 236; +pub const SYS_mlock: ::c_long = 237; +pub const SYS_munlock: ::c_long = 238; +pub const SYS_mlockall: ::c_long = 239; +pub const SYS_munlockall: ::c_long = 240; +pub const SYS_sched_setparam: ::c_long = 241; +pub const SYS_sched_getparam: ::c_long = 242; +pub const SYS_sched_setscheduler: ::c_long = 243; +pub const SYS_sched_getscheduler: ::c_long = 244; +pub const SYS_sched_yield: ::c_long = 245; +pub const SYS_sched_get_priority_max: ::c_long = 246; +pub const SYS_sched_get_priority_min: ::c_long = 247; +pub const SYS_sched_rr_get_interval: ::c_long = 248; +pub const SYS_nanosleep: ::c_long = 249; +pub const SYS_mremap: ::c_long = 250; +pub const SYS__sysctl: ::c_long = 251; +pub const SYS_getsid: ::c_long = 252; +pub const SYS_fdatasync: ::c_long = 253; +pub const SYS_nfsservctl: ::c_long = 254; +pub const SYS_sync_file_range: ::c_long = 255; +pub const SYS_clock_settime: ::c_long = 256; +pub const SYS_clock_gettime: ::c_long = 257; +pub const SYS_clock_getres: ::c_long = 258; +pub const SYS_clock_nanosleep: ::c_long = 259; +pub const SYS_sched_getaffinity: ::c_long = 260; +pub const SYS_sched_setaffinity: ::c_long = 261; +pub const SYS_timer_settime: ::c_long = 262; +pub const SYS_timer_gettime: ::c_long = 263; +pub const SYS_timer_getoverrun: ::c_long = 264; +pub const SYS_timer_delete: ::c_long = 265; +pub const SYS_timer_create: ::c_long = 266; +pub const SYS_io_setup: ::c_long = 268; +pub const SYS_io_destroy: ::c_long = 269; +pub const SYS_io_submit: ::c_long = 270; +pub const SYS_io_cancel: ::c_long = 271; +pub const SYS_io_getevents: ::c_long = 272; +pub const SYS_mq_open: ::c_long = 273; +pub const SYS_mq_unlink: ::c_long = 274; +pub const SYS_mq_timedsend: ::c_long = 275; +pub const SYS_mq_timedreceive: ::c_long = 276; +pub const SYS_mq_notify: ::c_long = 277; +pub const SYS_mq_getsetattr: ::c_long = 278; +pub const SYS_waitid: ::c_long = 279; +pub const SYS_tee: ::c_long = 280; +pub const SYS_add_key: ::c_long = 281; +pub const SYS_request_key: ::c_long = 282; +pub const SYS_keyctl: ::c_long = 283; +pub const SYS_openat: ::c_long = 284; +pub const SYS_mkdirat: ::c_long = 285; +pub const SYS_mknodat: ::c_long = 286; +pub const SYS_fchownat: ::c_long = 287; +pub const SYS_futimesat: ::c_long = 288; +pub const SYS_fstatat64: ::c_long = 289; +pub const SYS_unlinkat: ::c_long = 290; +pub const SYS_renameat: ::c_long = 291; +pub const SYS_linkat: ::c_long = 292; +pub const SYS_symlinkat: ::c_long = 293; +pub const SYS_readlinkat: ::c_long = 294; +pub const SYS_fchmodat: ::c_long = 295; +pub const SYS_faccessat: ::c_long = 296; +pub const SYS_pselect6: ::c_long = 297; +pub const SYS_ppoll: ::c_long = 298; +pub const SYS_unshare: ::c_long = 299; +pub const SYS_set_robust_list: ::c_long = 300; +pub const SYS_get_robust_list: ::c_long = 301; +pub const SYS_migrate_pages: ::c_long = 302; +pub const SYS_mbind: ::c_long = 303; +pub const SYS_get_mempolicy: ::c_long = 304; +pub const SYS_set_mempolicy: ::c_long = 305; +pub const SYS_kexec_load: ::c_long = 306; +pub const SYS_move_pages: ::c_long = 307; +pub const SYS_getcpu: ::c_long = 308; +pub const SYS_epoll_pwait: ::c_long = 309; +pub const SYS_utimensat: ::c_long = 310; +pub const SYS_signalfd: ::c_long = 311; +pub const SYS_timerfd_create: ::c_long = 312; +pub const SYS_eventfd: ::c_long = 313; +pub const SYS_fallocate: ::c_long = 314; +pub const SYS_timerfd_settime: ::c_long = 315; +pub const SYS_timerfd_gettime: ::c_long = 316; +pub const SYS_signalfd4: ::c_long = 317; +pub const SYS_eventfd2: ::c_long = 318; +pub const SYS_epoll_create1: ::c_long = 319; +pub const SYS_dup3: ::c_long = 320; +pub const SYS_pipe2: ::c_long = 321; +pub const SYS_inotify_init1: ::c_long = 322; +pub const SYS_accept4: ::c_long = 323; +pub const SYS_preadv: ::c_long = 324; +pub const SYS_pwritev: ::c_long = 325; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 326; +pub const SYS_perf_event_open: ::c_long = 327; +pub const SYS_recvmmsg: ::c_long = 328; +pub const SYS_fanotify_init: ::c_long = 329; +pub const SYS_fanotify_mark: ::c_long = 330; +pub const SYS_prlimit64: ::c_long = 331; +pub const SYS_name_to_handle_at: ::c_long = 332; +pub const SYS_open_by_handle_at: ::c_long = 333; +pub const SYS_clock_adjtime: ::c_long = 334; +pub const SYS_syncfs: ::c_long = 335; +pub const SYS_sendmmsg: ::c_long = 336; +pub const SYS_setns: ::c_long = 337; +pub const SYS_process_vm_readv: ::c_long = 338; +pub const SYS_process_vm_writev: ::c_long = 339; +pub const SYS_kern_features: ::c_long = 340; +pub const SYS_kcmp: ::c_long = 341; +pub const SYS_finit_module: ::c_long = 342; +pub const SYS_sched_setattr: ::c_long = 343; +pub const SYS_sched_getattr: ::c_long = 344; +pub const SYS_renameat2: ::c_long = 345; +pub const SYS_seccomp: ::c_long = 346; +pub const SYS_getrandom: ::c_long = 347; +pub const SYS_memfd_create: ::c_long = 348; +pub const SYS_bpf: ::c_long = 349; +pub const SYS_execveat: ::c_long = 350; +pub const SYS_membarrier: ::c_long = 351; +pub const SYS_userfaultfd: ::c_long = 352; +pub const SYS_bind: ::c_long = 353; +pub const SYS_listen: ::c_long = 354; +pub const SYS_setsockopt: ::c_long = 355; +pub const SYS_mlock2: ::c_long = 356; +pub const SYS_copy_file_range: ::c_long = 357; +pub const SYS_preadv2: ::c_long = 358; +pub const SYS_pwritev2: ::c_long = 359; +pub const SYS_statx: ::c_long = 360; +pub const SYS_rseq: ::c_long = 365; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +// Reserved in the kernel, but not actually implemented yet +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs new file mode 100644 index 000000000..ba3075edd --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs @@ -0,0 +1,24 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } +} + +s! { + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs new file mode 100644 index 000000000..e6307e282 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -0,0 +1,834 @@ +//! x86_64-specific definitions for 64-bit linux-like values + +pub type c_char = i8; +pub type wchar_t = i32; +pub type nlink_t = u64; +pub type blksize_t = i64; +pub type greg_t = i64; +pub type suseconds_t = i64; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; + +s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + #[cfg(target_arch = "sparc64")] + __reserved0: ::c_int, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct statfs { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [u64; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + __pad0: ::c_int, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: i64, + pub st_mtime: ::time_t, + pub st_mtime_nsec: i64, + pub st_ctime: ::time_t, + pub st_ctime_nsec: i64, + __unused: [i64; 3], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + __pad0: ::c_int, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: i64, + pub st_mtime: ::time_t, + pub st_mtime_nsec: i64, + pub st_ctime: ::time_t, + pub st_ctime_nsec: i64, + __reserved: [i64; 3], + } + + pub struct statfs64 { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + pub f_spare: [::__fsword_t; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct pthread_attr_t { + #[cfg(target_pointer_width = "32")] + __size: [u32; 8], + #[cfg(target_pointer_width = "64")] + __size: [u64; 7] + } + + pub struct _libc_fpxreg { + pub significand: [u16; 4], + pub exponent: u16, + __private: [u16; 3], + } + + pub struct _libc_xmmreg { + pub element: [u32; 4], + } + + pub struct _libc_fpstate { + pub cwd: u16, + pub swd: u16, + pub ftw: u16, + pub fop: u16, + pub rip: u64, + pub rdp: u64, + pub mxcsr: u32, + pub mxcr_mask: u32, + pub _st: [_libc_fpxreg; 8], + pub _xmm: [_libc_xmmreg; 16], + __private: [u64; 12], + } + + pub struct user_regs_struct { + pub r15: ::c_ulonglong, + pub r14: ::c_ulonglong, + pub r13: ::c_ulonglong, + pub r12: ::c_ulonglong, + pub rbp: ::c_ulonglong, + pub rbx: ::c_ulonglong, + pub r11: ::c_ulonglong, + pub r10: ::c_ulonglong, + pub r9: ::c_ulonglong, + pub r8: ::c_ulonglong, + pub rax: ::c_ulonglong, + pub rcx: ::c_ulonglong, + pub rdx: ::c_ulonglong, + pub rsi: ::c_ulonglong, + pub rdi: ::c_ulonglong, + pub orig_rax: ::c_ulonglong, + pub rip: ::c_ulonglong, + pub cs: ::c_ulonglong, + pub eflags: ::c_ulonglong, + pub rsp: ::c_ulonglong, + pub ss: ::c_ulonglong, + pub fs_base: ::c_ulonglong, + pub gs_base: ::c_ulonglong, + pub ds: ::c_ulonglong, + pub es: ::c_ulonglong, + pub fs: ::c_ulonglong, + pub gs: ::c_ulonglong, + } + + pub struct user { + pub regs: user_regs_struct, + pub u_fpvalid: ::c_int, + pub i387: user_fpregs_struct, + pub u_tsize: ::c_ulonglong, + pub u_dsize: ::c_ulonglong, + pub u_ssize: ::c_ulonglong, + pub start_code: ::c_ulonglong, + pub start_stack: ::c_ulonglong, + pub signal: ::c_longlong, + __reserved: ::c_int, + #[cfg(target_pointer_width = "32")] + __pad1: u32, + pub u_ar0: *mut user_regs_struct, + #[cfg(target_pointer_width = "32")] + __pad2: u32, + pub u_fpstate: *mut user_fpregs_struct, + pub magic: ::c_ulonglong, + pub u_comm: [::c_char; 32], + pub u_debugreg: [::c_ulonglong; 8], + } + + pub struct mcontext_t { + pub gregs: [greg_t; 23], + pub fpregs: *mut _libc_fpstate, + __private: [u64; 8], + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_ushort, + __pad1: ::c_ushort, + pub __seq: ::c_ushort, + __pad2: ::c_ushort, + __unused1: u64, + __unused2: u64 + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused4: u64, + __unused5: u64 + } + + pub struct seccomp_notif_sizes { + pub seccomp_notif: ::__u16, + pub seccomp_notif_resp: ::__u16, + pub seccomp_data: ::__u16, + } + + pub struct ptrace_rseq_configuration { + pub rseq_abi_pointer: ::__u64, + pub rseq_abi_size: ::__u32, + pub signature: ::__u32, + pub flags: ::__u32, + pub pad: ::__u32, + } +} + +s_no_extra_traits! { + pub struct user_fpregs_struct { + pub cwd: ::c_ushort, + pub swd: ::c_ushort, + pub ftw: ::c_ushort, + pub fop: ::c_ushort, + pub rip: ::c_ulonglong, + pub rdp: ::c_ulonglong, + pub mxcsr: ::c_uint, + pub mxcr_mask: ::c_uint, + pub st_space: [::c_uint; 32], + pub xmm_space: [::c_uint; 64], + padding: [::c_uint; 24], + } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask: ::sigset_t, + __private: [u8; 512], + // FIXME: the shadow stack field requires glibc >= 2.28. + // Re-add once we drop compatibility with glibc versions older than + // 2.28. + // + // __ssp: [::c_ulonglong; 4], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for user_fpregs_struct { + fn eq(&self, other: &user_fpregs_struct) -> bool { + self.cwd == other.cwd + && self.swd == other.swd + && self.ftw == other.ftw + && self.fop == other.fop + && self.rip == other.rip + && self.rdp == other.rdp + && self.mxcsr == other.mxcsr + && self.mxcr_mask == other.mxcr_mask + && self.st_space == other.st_space + && self + .xmm_space + .iter() + .zip(other.xmm_space.iter()) + .all(|(a,b)| a == b) + // Ignore padding field + } + } + + impl Eq for user_fpregs_struct {} + + impl ::fmt::Debug for user_fpregs_struct { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("user_fpregs_struct") + .field("cwd", &self.cwd) + .field("ftw", &self.ftw) + .field("fop", &self.fop) + .field("rip", &self.rip) + .field("rdp", &self.rdp) + .field("mxcsr", &self.mxcsr) + .field("mxcr_mask", &self.mxcr_mask) + .field("st_space", &self.st_space) + // FIXME: .field("xmm_space", &self.xmm_space) + // Ignore padding field + .finish() + } + } + + impl ::hash::Hash for user_fpregs_struct { + fn hash(&self, state: &mut H) { + self.cwd.hash(state); + self.ftw.hash(state); + self.fop.hash(state); + self.rip.hash(state); + self.rdp.hash(state); + self.mxcsr.hash(state); + self.mxcr_mask.hash(state); + self.st_space.hash(state); + self.xmm_space.hash(state); + // Ignore padding field + } + } + + impl PartialEq for ucontext_t { + fn eq(&self, other: &ucontext_t) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_sigmask == other.uc_sigmask + // Ignore __private field + } + } + + impl Eq for ucontext_t {} + + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_flags) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field("uc_sigmask", &self.uc_sigmask) + // Ignore __private field + .finish() + } + } + + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_flags.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + self.uc_sigmask.hash(state); + // Ignore __private field + } + } + } +} + +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; + +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 0x101000; +pub const O_NOATIME: ::c_int = 0o1000000; +pub const O_PATH: ::c_int = 0o10000000; +pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; + +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] +pub const SIGUNUSED: ::c_int = 31; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x800; + +pub const PTRACE_DETACH: ::c_uint = 17; +pub const PTRACE_GET_RSEQ_CONFIGURATION: ::c_uint = 0x420f; + +pub const EFD_NONBLOCK: ::c_int = 0x800; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const F_RDLCK: ::c_int = 0; +pub const F_WRLCK: ::c_int = 1; +pub const F_UNLCK: ::c_int = 2; + +pub const SFD_NONBLOCK: ::c_int = 0x0800; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const SFD_CLOEXEC: ::c_int = 0x080000; + +pub const NCCS: usize = 32; + +pub const O_TRUNC: ::c_int = 512; + +pub const O_CLOEXEC: ::c_int = 0x80000; + +pub const EBFONT: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EDOTDOT: ::c_int = 73; + +pub const SA_NODEFER: ::c_int = 0x40000000; +pub const SA_RESETHAND: ::c_int = 0x80000000; +pub const SA_RESTART: ::c_int = 0x10000000; +pub const SA_NOCLDSTOP: ::c_int = 0x00000001; + +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; + +pub const EFD_CLOEXEC: ::c_int = 0x80000; + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; + +pub const O_DIRECT: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; + +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_32BIT: ::c_int = 0x0040; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const EDEADLOCK: ::c_int = 35; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; + +pub const PTRACE_GETFPREGS: ::c_uint = 14; +pub const PTRACE_SETFPREGS: ::c_uint = 15; +pub const PTRACE_GETFPXREGS: ::c_uint = 18; +pub const PTRACE_SETFPXREGS: ::c_uint = 19; +pub const PTRACE_GETREGS: ::c_uint = 12; +pub const PTRACE_SETREGS: ::c_uint = 13; +pub const PTRACE_PEEKSIGINFO_SHARED: ::c_uint = 1; +pub const PTRACE_SYSEMU: ::c_uint = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; + +pub const PR_GET_SPECULATION_CTRL: ::c_int = 52; +pub const PR_SET_SPECULATION_CTRL: ::c_int = 53; +pub const PR_SPEC_NOT_AFFECTED: ::c_uint = 0; +pub const PR_SPEC_PRCTL: ::c_uint = 1 << 0; +pub const PR_SPEC_ENABLE: ::c_uint = 1 << 1; +pub const PR_SPEC_DISABLE: ::c_uint = 1 << 2; +pub const PR_SPEC_FORCE_DISABLE: ::c_uint = 1 << 3; +pub const PR_SPEC_DISABLE_NOEXEC: ::c_uint = 1 << 4; +pub const PR_SPEC_STORE_BYPASS: ::c_int = 0; +pub const PR_SPEC_INDIRECT_BRANCH: ::c_int = 1; +// FIXME: perharps for later +//pub const PR_SPEC_L1D_FLUSH: ::c_int = 2; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const EXTPROC: ::tcflag_t = 0x00010000; + +// offsets in user_regs_structs, from sys/reg.h +pub const R15: ::c_int = 0; +pub const R14: ::c_int = 1; +pub const R13: ::c_int = 2; +pub const R12: ::c_int = 3; +pub const RBP: ::c_int = 4; +pub const RBX: ::c_int = 5; +pub const R11: ::c_int = 6; +pub const R10: ::c_int = 7; +pub const R9: ::c_int = 8; +pub const R8: ::c_int = 9; +pub const RAX: ::c_int = 10; +pub const RCX: ::c_int = 11; +pub const RDX: ::c_int = 12; +pub const RSI: ::c_int = 13; +pub const RDI: ::c_int = 14; +pub const ORIG_RAX: ::c_int = 15; +pub const RIP: ::c_int = 16; +pub const CS: ::c_int = 17; +pub const EFLAGS: ::c_int = 18; +pub const RSP: ::c_int = 19; +pub const SS: ::c_int = 20; +pub const FS_BASE: ::c_int = 21; +pub const GS_BASE: ::c_int = 22; +pub const DS: ::c_int = 23; +pub const ES: ::c_int = 24; +pub const FS: ::c_int = 25; +pub const GS: ::c_int = 26; + +// offsets in mcontext_t.gregs from sys/ucontext.h +pub const REG_R8: ::c_int = 0; +pub const REG_R9: ::c_int = 1; +pub const REG_R10: ::c_int = 2; +pub const REG_R11: ::c_int = 3; +pub const REG_R12: ::c_int = 4; +pub const REG_R13: ::c_int = 5; +pub const REG_R14: ::c_int = 6; +pub const REG_R15: ::c_int = 7; +pub const REG_RDI: ::c_int = 8; +pub const REG_RSI: ::c_int = 9; +pub const REG_RBP: ::c_int = 10; +pub const REG_RBX: ::c_int = 11; +pub const REG_RDX: ::c_int = 12; +pub const REG_RAX: ::c_int = 13; +pub const REG_RCX: ::c_int = 14; +pub const REG_RSP: ::c_int = 15; +pub const REG_RIP: ::c_int = 16; +pub const REG_EFL: ::c_int = 17; +pub const REG_CSGSFS: ::c_int = 18; +pub const REG_ERR: ::c_int = 19; +pub const REG_TRAPNO: ::c_int = 20; +pub const REG_OLDMASK: ::c_int = 21; +pub const REG_CR2: ::c_int = 22; + +pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; +pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; +pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; +pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; + +extern "C" { + pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; + pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; + pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); + pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; + pub fn iopl(level: ::c_int) -> ::c_int; + pub fn ioperm(from: ::c_ulong, num: ::c_ulong, turn_on: ::c_int) -> ::c_int; +} + +cfg_if! { + if #[cfg(target_pointer_width = "32")] { + mod x32; + pub use self::x32::*; + } else { + mod not_x32; + pub use self::not_x32::*; + } +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs new file mode 100644 index 000000000..3831dfad9 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs @@ -0,0 +1,451 @@ +use pthread_mutex_t; + +pub type c_long = i64; +pub type c_ulong = u64; + +s! { + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } +} + +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; + +align_const! { + #[cfg(target_endian = "little")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "little")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + #[cfg(target_endian = "big")] + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; +} + +// Syscall table + +pub const SYS_read: ::c_long = 0; +pub const SYS_write: ::c_long = 1; +pub const SYS_open: ::c_long = 2; +pub const SYS_close: ::c_long = 3; +pub const SYS_stat: ::c_long = 4; +pub const SYS_fstat: ::c_long = 5; +pub const SYS_lstat: ::c_long = 6; +pub const SYS_poll: ::c_long = 7; +pub const SYS_lseek: ::c_long = 8; +pub const SYS_mmap: ::c_long = 9; +pub const SYS_mprotect: ::c_long = 10; +pub const SYS_munmap: ::c_long = 11; +pub const SYS_brk: ::c_long = 12; +pub const SYS_rt_sigaction: ::c_long = 13; +pub const SYS_rt_sigprocmask: ::c_long = 14; +pub const SYS_rt_sigreturn: ::c_long = 15; +pub const SYS_ioctl: ::c_long = 16; +pub const SYS_pread64: ::c_long = 17; +pub const SYS_pwrite64: ::c_long = 18; +pub const SYS_readv: ::c_long = 19; +pub const SYS_writev: ::c_long = 20; +pub const SYS_access: ::c_long = 21; +pub const SYS_pipe: ::c_long = 22; +pub const SYS_select: ::c_long = 23; +pub const SYS_sched_yield: ::c_long = 24; +pub const SYS_mremap: ::c_long = 25; +pub const SYS_msync: ::c_long = 26; +pub const SYS_mincore: ::c_long = 27; +pub const SYS_madvise: ::c_long = 28; +pub const SYS_shmget: ::c_long = 29; +pub const SYS_shmat: ::c_long = 30; +pub const SYS_shmctl: ::c_long = 31; +pub const SYS_dup: ::c_long = 32; +pub const SYS_dup2: ::c_long = 33; +pub const SYS_pause: ::c_long = 34; +pub const SYS_nanosleep: ::c_long = 35; +pub const SYS_getitimer: ::c_long = 36; +pub const SYS_alarm: ::c_long = 37; +pub const SYS_setitimer: ::c_long = 38; +pub const SYS_getpid: ::c_long = 39; +pub const SYS_sendfile: ::c_long = 40; +pub const SYS_socket: ::c_long = 41; +pub const SYS_connect: ::c_long = 42; +pub const SYS_accept: ::c_long = 43; +pub const SYS_sendto: ::c_long = 44; +pub const SYS_recvfrom: ::c_long = 45; +pub const SYS_sendmsg: ::c_long = 46; +pub const SYS_recvmsg: ::c_long = 47; +pub const SYS_shutdown: ::c_long = 48; +pub const SYS_bind: ::c_long = 49; +pub const SYS_listen: ::c_long = 50; +pub const SYS_getsockname: ::c_long = 51; +pub const SYS_getpeername: ::c_long = 52; +pub const SYS_socketpair: ::c_long = 53; +pub const SYS_setsockopt: ::c_long = 54; +pub const SYS_getsockopt: ::c_long = 55; +pub const SYS_clone: ::c_long = 56; +pub const SYS_fork: ::c_long = 57; +pub const SYS_vfork: ::c_long = 58; +pub const SYS_execve: ::c_long = 59; +pub const SYS_exit: ::c_long = 60; +pub const SYS_wait4: ::c_long = 61; +pub const SYS_kill: ::c_long = 62; +pub const SYS_uname: ::c_long = 63; +pub const SYS_semget: ::c_long = 64; +pub const SYS_semop: ::c_long = 65; +pub const SYS_semctl: ::c_long = 66; +pub const SYS_shmdt: ::c_long = 67; +pub const SYS_msgget: ::c_long = 68; +pub const SYS_msgsnd: ::c_long = 69; +pub const SYS_msgrcv: ::c_long = 70; +pub const SYS_msgctl: ::c_long = 71; +pub const SYS_fcntl: ::c_long = 72; +pub const SYS_flock: ::c_long = 73; +pub const SYS_fsync: ::c_long = 74; +pub const SYS_fdatasync: ::c_long = 75; +pub const SYS_truncate: ::c_long = 76; +pub const SYS_ftruncate: ::c_long = 77; +pub const SYS_getdents: ::c_long = 78; +pub const SYS_getcwd: ::c_long = 79; +pub const SYS_chdir: ::c_long = 80; +pub const SYS_fchdir: ::c_long = 81; +pub const SYS_rename: ::c_long = 82; +pub const SYS_mkdir: ::c_long = 83; +pub const SYS_rmdir: ::c_long = 84; +pub const SYS_creat: ::c_long = 85; +pub const SYS_link: ::c_long = 86; +pub const SYS_unlink: ::c_long = 87; +pub const SYS_symlink: ::c_long = 88; +pub const SYS_readlink: ::c_long = 89; +pub const SYS_chmod: ::c_long = 90; +pub const SYS_fchmod: ::c_long = 91; +pub const SYS_chown: ::c_long = 92; +pub const SYS_fchown: ::c_long = 93; +pub const SYS_lchown: ::c_long = 94; +pub const SYS_umask: ::c_long = 95; +pub const SYS_gettimeofday: ::c_long = 96; +pub const SYS_getrlimit: ::c_long = 97; +pub const SYS_getrusage: ::c_long = 98; +pub const SYS_sysinfo: ::c_long = 99; +pub const SYS_times: ::c_long = 100; +pub const SYS_ptrace: ::c_long = 101; +pub const SYS_getuid: ::c_long = 102; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_getgid: ::c_long = 104; +pub const SYS_setuid: ::c_long = 105; +pub const SYS_setgid: ::c_long = 106; +pub const SYS_geteuid: ::c_long = 107; +pub const SYS_getegid: ::c_long = 108; +pub const SYS_setpgid: ::c_long = 109; +pub const SYS_getppid: ::c_long = 110; +pub const SYS_getpgrp: ::c_long = 111; +pub const SYS_setsid: ::c_long = 112; +pub const SYS_setreuid: ::c_long = 113; +pub const SYS_setregid: ::c_long = 114; +pub const SYS_getgroups: ::c_long = 115; +pub const SYS_setgroups: ::c_long = 116; +pub const SYS_setresuid: ::c_long = 117; +pub const SYS_getresuid: ::c_long = 118; +pub const SYS_setresgid: ::c_long = 119; +pub const SYS_getresgid: ::c_long = 120; +pub const SYS_getpgid: ::c_long = 121; +pub const SYS_setfsuid: ::c_long = 122; +pub const SYS_setfsgid: ::c_long = 123; +pub const SYS_getsid: ::c_long = 124; +pub const SYS_capget: ::c_long = 125; +pub const SYS_capset: ::c_long = 126; +pub const SYS_rt_sigpending: ::c_long = 127; +pub const SYS_rt_sigtimedwait: ::c_long = 128; +pub const SYS_rt_sigqueueinfo: ::c_long = 129; +pub const SYS_rt_sigsuspend: ::c_long = 130; +pub const SYS_sigaltstack: ::c_long = 131; +pub const SYS_utime: ::c_long = 132; +pub const SYS_mknod: ::c_long = 133; +pub const SYS_uselib: ::c_long = 134; +pub const SYS_personality: ::c_long = 135; +pub const SYS_ustat: ::c_long = 136; +pub const SYS_statfs: ::c_long = 137; +pub const SYS_fstatfs: ::c_long = 138; +pub const SYS_sysfs: ::c_long = 139; +pub const SYS_getpriority: ::c_long = 140; +pub const SYS_setpriority: ::c_long = 141; +pub const SYS_sched_setparam: ::c_long = 142; +pub const SYS_sched_getparam: ::c_long = 143; +pub const SYS_sched_setscheduler: ::c_long = 144; +pub const SYS_sched_getscheduler: ::c_long = 145; +pub const SYS_sched_get_priority_max: ::c_long = 146; +pub const SYS_sched_get_priority_min: ::c_long = 147; +pub const SYS_sched_rr_get_interval: ::c_long = 148; +pub const SYS_mlock: ::c_long = 149; +pub const SYS_munlock: ::c_long = 150; +pub const SYS_mlockall: ::c_long = 151; +pub const SYS_munlockall: ::c_long = 152; +pub const SYS_vhangup: ::c_long = 153; +pub const SYS_modify_ldt: ::c_long = 154; +pub const SYS_pivot_root: ::c_long = 155; +pub const SYS__sysctl: ::c_long = 156; +pub const SYS_prctl: ::c_long = 157; +pub const SYS_arch_prctl: ::c_long = 158; +pub const SYS_adjtimex: ::c_long = 159; +pub const SYS_setrlimit: ::c_long = 160; +pub const SYS_chroot: ::c_long = 161; +pub const SYS_sync: ::c_long = 162; +pub const SYS_acct: ::c_long = 163; +pub const SYS_settimeofday: ::c_long = 164; +pub const SYS_mount: ::c_long = 165; +pub const SYS_umount2: ::c_long = 166; +pub const SYS_swapon: ::c_long = 167; +pub const SYS_swapoff: ::c_long = 168; +pub const SYS_reboot: ::c_long = 169; +pub const SYS_sethostname: ::c_long = 170; +pub const SYS_setdomainname: ::c_long = 171; +pub const SYS_iopl: ::c_long = 172; +pub const SYS_ioperm: ::c_long = 173; +pub const SYS_create_module: ::c_long = 174; +pub const SYS_init_module: ::c_long = 175; +pub const SYS_delete_module: ::c_long = 176; +pub const SYS_get_kernel_syms: ::c_long = 177; +pub const SYS_query_module: ::c_long = 178; +pub const SYS_quotactl: ::c_long = 179; +pub const SYS_nfsservctl: ::c_long = 180; +pub const SYS_getpmsg: ::c_long = 181; +pub const SYS_putpmsg: ::c_long = 182; +pub const SYS_afs_syscall: ::c_long = 183; +pub const SYS_tuxcall: ::c_long = 184; +pub const SYS_security: ::c_long = 185; +pub const SYS_gettid: ::c_long = 186; +pub const SYS_readahead: ::c_long = 187; +pub const SYS_setxattr: ::c_long = 188; +pub const SYS_lsetxattr: ::c_long = 189; +pub const SYS_fsetxattr: ::c_long = 190; +pub const SYS_getxattr: ::c_long = 191; +pub const SYS_lgetxattr: ::c_long = 192; +pub const SYS_fgetxattr: ::c_long = 193; +pub const SYS_listxattr: ::c_long = 194; +pub const SYS_llistxattr: ::c_long = 195; +pub const SYS_flistxattr: ::c_long = 196; +pub const SYS_removexattr: ::c_long = 197; +pub const SYS_lremovexattr: ::c_long = 198; +pub const SYS_fremovexattr: ::c_long = 199; +pub const SYS_tkill: ::c_long = 200; +pub const SYS_time: ::c_long = 201; +pub const SYS_futex: ::c_long = 202; +pub const SYS_sched_setaffinity: ::c_long = 203; +pub const SYS_sched_getaffinity: ::c_long = 204; +pub const SYS_set_thread_area: ::c_long = 205; +pub const SYS_io_setup: ::c_long = 206; +pub const SYS_io_destroy: ::c_long = 207; +pub const SYS_io_getevents: ::c_long = 208; +pub const SYS_io_submit: ::c_long = 209; +pub const SYS_io_cancel: ::c_long = 210; +pub const SYS_get_thread_area: ::c_long = 211; +pub const SYS_lookup_dcookie: ::c_long = 212; +pub const SYS_epoll_create: ::c_long = 213; +pub const SYS_epoll_ctl_old: ::c_long = 214; +pub const SYS_epoll_wait_old: ::c_long = 215; +pub const SYS_remap_file_pages: ::c_long = 216; +pub const SYS_getdents64: ::c_long = 217; +pub const SYS_set_tid_address: ::c_long = 218; +pub const SYS_restart_syscall: ::c_long = 219; +pub const SYS_semtimedop: ::c_long = 220; +pub const SYS_fadvise64: ::c_long = 221; +pub const SYS_timer_create: ::c_long = 222; +pub const SYS_timer_settime: ::c_long = 223; +pub const SYS_timer_gettime: ::c_long = 224; +pub const SYS_timer_getoverrun: ::c_long = 225; +pub const SYS_timer_delete: ::c_long = 226; +pub const SYS_clock_settime: ::c_long = 227; +pub const SYS_clock_gettime: ::c_long = 228; +pub const SYS_clock_getres: ::c_long = 229; +pub const SYS_clock_nanosleep: ::c_long = 230; +pub const SYS_exit_group: ::c_long = 231; +pub const SYS_epoll_wait: ::c_long = 232; +pub const SYS_epoll_ctl: ::c_long = 233; +pub const SYS_tgkill: ::c_long = 234; +pub const SYS_utimes: ::c_long = 235; +pub const SYS_vserver: ::c_long = 236; +pub const SYS_mbind: ::c_long = 237; +pub const SYS_set_mempolicy: ::c_long = 238; +pub const SYS_get_mempolicy: ::c_long = 239; +pub const SYS_mq_open: ::c_long = 240; +pub const SYS_mq_unlink: ::c_long = 241; +pub const SYS_mq_timedsend: ::c_long = 242; +pub const SYS_mq_timedreceive: ::c_long = 243; +pub const SYS_mq_notify: ::c_long = 244; +pub const SYS_mq_getsetattr: ::c_long = 245; +pub const SYS_kexec_load: ::c_long = 246; +pub const SYS_waitid: ::c_long = 247; +pub const SYS_add_key: ::c_long = 248; +pub const SYS_request_key: ::c_long = 249; +pub const SYS_keyctl: ::c_long = 250; +pub const SYS_ioprio_set: ::c_long = 251; +pub const SYS_ioprio_get: ::c_long = 252; +pub const SYS_inotify_init: ::c_long = 253; +pub const SYS_inotify_add_watch: ::c_long = 254; +pub const SYS_inotify_rm_watch: ::c_long = 255; +pub const SYS_migrate_pages: ::c_long = 256; +pub const SYS_openat: ::c_long = 257; +pub const SYS_mkdirat: ::c_long = 258; +pub const SYS_mknodat: ::c_long = 259; +pub const SYS_fchownat: ::c_long = 260; +pub const SYS_futimesat: ::c_long = 261; +pub const SYS_newfstatat: ::c_long = 262; +pub const SYS_unlinkat: ::c_long = 263; +pub const SYS_renameat: ::c_long = 264; +pub const SYS_linkat: ::c_long = 265; +pub const SYS_symlinkat: ::c_long = 266; +pub const SYS_readlinkat: ::c_long = 267; +pub const SYS_fchmodat: ::c_long = 268; +pub const SYS_faccessat: ::c_long = 269; +pub const SYS_pselect6: ::c_long = 270; +pub const SYS_ppoll: ::c_long = 271; +pub const SYS_unshare: ::c_long = 272; +pub const SYS_set_robust_list: ::c_long = 273; +pub const SYS_get_robust_list: ::c_long = 274; +pub const SYS_splice: ::c_long = 275; +pub const SYS_tee: ::c_long = 276; +pub const SYS_sync_file_range: ::c_long = 277; +pub const SYS_vmsplice: ::c_long = 278; +pub const SYS_move_pages: ::c_long = 279; +pub const SYS_utimensat: ::c_long = 280; +pub const SYS_epoll_pwait: ::c_long = 281; +pub const SYS_signalfd: ::c_long = 282; +pub const SYS_timerfd_create: ::c_long = 283; +pub const SYS_eventfd: ::c_long = 284; +pub const SYS_fallocate: ::c_long = 285; +pub const SYS_timerfd_settime: ::c_long = 286; +pub const SYS_timerfd_gettime: ::c_long = 287; +pub const SYS_accept4: ::c_long = 288; +pub const SYS_signalfd4: ::c_long = 289; +pub const SYS_eventfd2: ::c_long = 290; +pub const SYS_epoll_create1: ::c_long = 291; +pub const SYS_dup3: ::c_long = 292; +pub const SYS_pipe2: ::c_long = 293; +pub const SYS_inotify_init1: ::c_long = 294; +pub const SYS_preadv: ::c_long = 295; +pub const SYS_pwritev: ::c_long = 296; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 297; +pub const SYS_perf_event_open: ::c_long = 298; +pub const SYS_recvmmsg: ::c_long = 299; +pub const SYS_fanotify_init: ::c_long = 300; +pub const SYS_fanotify_mark: ::c_long = 301; +pub const SYS_prlimit64: ::c_long = 302; +pub const SYS_name_to_handle_at: ::c_long = 303; +pub const SYS_open_by_handle_at: ::c_long = 304; +pub const SYS_clock_adjtime: ::c_long = 305; +pub const SYS_syncfs: ::c_long = 306; +pub const SYS_sendmmsg: ::c_long = 307; +pub const SYS_setns: ::c_long = 308; +pub const SYS_getcpu: ::c_long = 309; +pub const SYS_process_vm_readv: ::c_long = 310; +pub const SYS_process_vm_writev: ::c_long = 311; +pub const SYS_kcmp: ::c_long = 312; +pub const SYS_finit_module: ::c_long = 313; +pub const SYS_sched_setattr: ::c_long = 314; +pub const SYS_sched_getattr: ::c_long = 315; +pub const SYS_renameat2: ::c_long = 316; +pub const SYS_seccomp: ::c_long = 317; +pub const SYS_getrandom: ::c_long = 318; +pub const SYS_memfd_create: ::c_long = 319; +pub const SYS_kexec_file_load: ::c_long = 320; +pub const SYS_bpf: ::c_long = 321; +pub const SYS_execveat: ::c_long = 322; +pub const SYS_userfaultfd: ::c_long = 323; +pub const SYS_membarrier: ::c_long = 324; +pub const SYS_mlock2: ::c_long = 325; +pub const SYS_copy_file_range: ::c_long = 326; +pub const SYS_preadv2: ::c_long = 327; +pub const SYS_pwritev2: ::c_long = 328; +pub const SYS_pkey_mprotect: ::c_long = 329; +pub const SYS_pkey_alloc: ::c_long = 330; +pub const SYS_pkey_free: ::c_long = 331; +pub const SYS_statx: ::c_long = 332; +pub const SYS_rseq: ::c_long = 334; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs new file mode 100644 index 000000000..06aa0da2d --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs @@ -0,0 +1,404 @@ +use pthread_mutex_t; + +pub type c_long = i32; +pub type c_ulong = u32; + +s! { + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } +} + +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 44; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; + +align_const! { + pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; + pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = + pthread_mutex_t { + size: [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + }; +} + +// Syscall table + +pub const __X32_SYSCALL_BIT: ::c_long = 0x40000000; + +pub const SYS_read: ::c_long = __X32_SYSCALL_BIT + 0; +pub const SYS_write: ::c_long = __X32_SYSCALL_BIT + 1; +pub const SYS_open: ::c_long = __X32_SYSCALL_BIT + 2; +pub const SYS_close: ::c_long = __X32_SYSCALL_BIT + 3; +pub const SYS_stat: ::c_long = __X32_SYSCALL_BIT + 4; +pub const SYS_fstat: ::c_long = __X32_SYSCALL_BIT + 5; +pub const SYS_lstat: ::c_long = __X32_SYSCALL_BIT + 6; +pub const SYS_poll: ::c_long = __X32_SYSCALL_BIT + 7; +pub const SYS_lseek: ::c_long = __X32_SYSCALL_BIT + 8; +pub const SYS_mmap: ::c_long = __X32_SYSCALL_BIT + 9; +pub const SYS_mprotect: ::c_long = __X32_SYSCALL_BIT + 10; +pub const SYS_munmap: ::c_long = __X32_SYSCALL_BIT + 11; +pub const SYS_brk: ::c_long = __X32_SYSCALL_BIT + 12; +pub const SYS_rt_sigprocmask: ::c_long = __X32_SYSCALL_BIT + 14; +pub const SYS_pread64: ::c_long = __X32_SYSCALL_BIT + 17; +pub const SYS_pwrite64: ::c_long = __X32_SYSCALL_BIT + 18; +pub const SYS_access: ::c_long = __X32_SYSCALL_BIT + 21; +pub const SYS_pipe: ::c_long = __X32_SYSCALL_BIT + 22; +pub const SYS_select: ::c_long = __X32_SYSCALL_BIT + 23; +pub const SYS_sched_yield: ::c_long = __X32_SYSCALL_BIT + 24; +pub const SYS_mremap: ::c_long = __X32_SYSCALL_BIT + 25; +pub const SYS_msync: ::c_long = __X32_SYSCALL_BIT + 26; +pub const SYS_mincore: ::c_long = __X32_SYSCALL_BIT + 27; +pub const SYS_madvise: ::c_long = __X32_SYSCALL_BIT + 28; +pub const SYS_shmget: ::c_long = __X32_SYSCALL_BIT + 29; +pub const SYS_shmat: ::c_long = __X32_SYSCALL_BIT + 30; +pub const SYS_shmctl: ::c_long = __X32_SYSCALL_BIT + 31; +pub const SYS_dup: ::c_long = __X32_SYSCALL_BIT + 32; +pub const SYS_dup2: ::c_long = __X32_SYSCALL_BIT + 33; +pub const SYS_pause: ::c_long = __X32_SYSCALL_BIT + 34; +pub const SYS_nanosleep: ::c_long = __X32_SYSCALL_BIT + 35; +pub const SYS_getitimer: ::c_long = __X32_SYSCALL_BIT + 36; +pub const SYS_alarm: ::c_long = __X32_SYSCALL_BIT + 37; +pub const SYS_setitimer: ::c_long = __X32_SYSCALL_BIT + 38; +pub const SYS_getpid: ::c_long = __X32_SYSCALL_BIT + 39; +pub const SYS_sendfile: ::c_long = __X32_SYSCALL_BIT + 40; +pub const SYS_socket: ::c_long = __X32_SYSCALL_BIT + 41; +pub const SYS_connect: ::c_long = __X32_SYSCALL_BIT + 42; +pub const SYS_accept: ::c_long = __X32_SYSCALL_BIT + 43; +pub const SYS_sendto: ::c_long = __X32_SYSCALL_BIT + 44; +pub const SYS_shutdown: ::c_long = __X32_SYSCALL_BIT + 48; +pub const SYS_bind: ::c_long = __X32_SYSCALL_BIT + 49; +pub const SYS_listen: ::c_long = __X32_SYSCALL_BIT + 50; +pub const SYS_getsockname: ::c_long = __X32_SYSCALL_BIT + 51; +pub const SYS_getpeername: ::c_long = __X32_SYSCALL_BIT + 52; +pub const SYS_socketpair: ::c_long = __X32_SYSCALL_BIT + 53; +pub const SYS_clone: ::c_long = __X32_SYSCALL_BIT + 56; +pub const SYS_fork: ::c_long = __X32_SYSCALL_BIT + 57; +pub const SYS_vfork: ::c_long = __X32_SYSCALL_BIT + 58; +pub const SYS_exit: ::c_long = __X32_SYSCALL_BIT + 60; +pub const SYS_wait4: ::c_long = __X32_SYSCALL_BIT + 61; +pub const SYS_kill: ::c_long = __X32_SYSCALL_BIT + 62; +pub const SYS_uname: ::c_long = __X32_SYSCALL_BIT + 63; +pub const SYS_semget: ::c_long = __X32_SYSCALL_BIT + 64; +pub const SYS_semop: ::c_long = __X32_SYSCALL_BIT + 65; +pub const SYS_semctl: ::c_long = __X32_SYSCALL_BIT + 66; +pub const SYS_shmdt: ::c_long = __X32_SYSCALL_BIT + 67; +pub const SYS_msgget: ::c_long = __X32_SYSCALL_BIT + 68; +pub const SYS_msgsnd: ::c_long = __X32_SYSCALL_BIT + 69; +pub const SYS_msgrcv: ::c_long = __X32_SYSCALL_BIT + 70; +pub const SYS_msgctl: ::c_long = __X32_SYSCALL_BIT + 71; +pub const SYS_fcntl: ::c_long = __X32_SYSCALL_BIT + 72; +pub const SYS_flock: ::c_long = __X32_SYSCALL_BIT + 73; +pub const SYS_fsync: ::c_long = __X32_SYSCALL_BIT + 74; +pub const SYS_fdatasync: ::c_long = __X32_SYSCALL_BIT + 75; +pub const SYS_truncate: ::c_long = __X32_SYSCALL_BIT + 76; +pub const SYS_ftruncate: ::c_long = __X32_SYSCALL_BIT + 77; +pub const SYS_getdents: ::c_long = __X32_SYSCALL_BIT + 78; +pub const SYS_getcwd: ::c_long = __X32_SYSCALL_BIT + 79; +pub const SYS_chdir: ::c_long = __X32_SYSCALL_BIT + 80; +pub const SYS_fchdir: ::c_long = __X32_SYSCALL_BIT + 81; +pub const SYS_rename: ::c_long = __X32_SYSCALL_BIT + 82; +pub const SYS_mkdir: ::c_long = __X32_SYSCALL_BIT + 83; +pub const SYS_rmdir: ::c_long = __X32_SYSCALL_BIT + 84; +pub const SYS_creat: ::c_long = __X32_SYSCALL_BIT + 85; +pub const SYS_link: ::c_long = __X32_SYSCALL_BIT + 86; +pub const SYS_unlink: ::c_long = __X32_SYSCALL_BIT + 87; +pub const SYS_symlink: ::c_long = __X32_SYSCALL_BIT + 88; +pub const SYS_readlink: ::c_long = __X32_SYSCALL_BIT + 89; +pub const SYS_chmod: ::c_long = __X32_SYSCALL_BIT + 90; +pub const SYS_fchmod: ::c_long = __X32_SYSCALL_BIT + 91; +pub const SYS_chown: ::c_long = __X32_SYSCALL_BIT + 92; +pub const SYS_fchown: ::c_long = __X32_SYSCALL_BIT + 93; +pub const SYS_lchown: ::c_long = __X32_SYSCALL_BIT + 94; +pub const SYS_umask: ::c_long = __X32_SYSCALL_BIT + 95; +pub const SYS_gettimeofday: ::c_long = __X32_SYSCALL_BIT + 96; +pub const SYS_getrlimit: ::c_long = __X32_SYSCALL_BIT + 97; +pub const SYS_getrusage: ::c_long = __X32_SYSCALL_BIT + 98; +pub const SYS_sysinfo: ::c_long = __X32_SYSCALL_BIT + 99; +pub const SYS_times: ::c_long = __X32_SYSCALL_BIT + 100; +pub const SYS_getuid: ::c_long = __X32_SYSCALL_BIT + 102; +pub const SYS_syslog: ::c_long = __X32_SYSCALL_BIT + 103; +pub const SYS_getgid: ::c_long = __X32_SYSCALL_BIT + 104; +pub const SYS_setuid: ::c_long = __X32_SYSCALL_BIT + 105; +pub const SYS_setgid: ::c_long = __X32_SYSCALL_BIT + 106; +pub const SYS_geteuid: ::c_long = __X32_SYSCALL_BIT + 107; +pub const SYS_getegid: ::c_long = __X32_SYSCALL_BIT + 108; +pub const SYS_setpgid: ::c_long = __X32_SYSCALL_BIT + 109; +pub const SYS_getppid: ::c_long = __X32_SYSCALL_BIT + 110; +pub const SYS_getpgrp: ::c_long = __X32_SYSCALL_BIT + 111; +pub const SYS_setsid: ::c_long = __X32_SYSCALL_BIT + 112; +pub const SYS_setreuid: ::c_long = __X32_SYSCALL_BIT + 113; +pub const SYS_setregid: ::c_long = __X32_SYSCALL_BIT + 114; +pub const SYS_getgroups: ::c_long = __X32_SYSCALL_BIT + 115; +pub const SYS_setgroups: ::c_long = __X32_SYSCALL_BIT + 116; +pub const SYS_setresuid: ::c_long = __X32_SYSCALL_BIT + 117; +pub const SYS_getresuid: ::c_long = __X32_SYSCALL_BIT + 118; +pub const SYS_setresgid: ::c_long = __X32_SYSCALL_BIT + 119; +pub const SYS_getresgid: ::c_long = __X32_SYSCALL_BIT + 120; +pub const SYS_getpgid: ::c_long = __X32_SYSCALL_BIT + 121; +pub const SYS_setfsuid: ::c_long = __X32_SYSCALL_BIT + 122; +pub const SYS_setfsgid: ::c_long = __X32_SYSCALL_BIT + 123; +pub const SYS_getsid: ::c_long = __X32_SYSCALL_BIT + 124; +pub const SYS_capget: ::c_long = __X32_SYSCALL_BIT + 125; +pub const SYS_capset: ::c_long = __X32_SYSCALL_BIT + 126; +pub const SYS_rt_sigsuspend: ::c_long = __X32_SYSCALL_BIT + 130; +pub const SYS_utime: ::c_long = __X32_SYSCALL_BIT + 132; +pub const SYS_mknod: ::c_long = __X32_SYSCALL_BIT + 133; +pub const SYS_personality: ::c_long = __X32_SYSCALL_BIT + 135; +pub const SYS_ustat: ::c_long = __X32_SYSCALL_BIT + 136; +pub const SYS_statfs: ::c_long = __X32_SYSCALL_BIT + 137; +pub const SYS_fstatfs: ::c_long = __X32_SYSCALL_BIT + 138; +pub const SYS_sysfs: ::c_long = __X32_SYSCALL_BIT + 139; +pub const SYS_getpriority: ::c_long = __X32_SYSCALL_BIT + 140; +pub const SYS_setpriority: ::c_long = __X32_SYSCALL_BIT + 141; +pub const SYS_sched_setparam: ::c_long = __X32_SYSCALL_BIT + 142; +pub const SYS_sched_getparam: ::c_long = __X32_SYSCALL_BIT + 143; +pub const SYS_sched_setscheduler: ::c_long = __X32_SYSCALL_BIT + 144; +pub const SYS_sched_getscheduler: ::c_long = __X32_SYSCALL_BIT + 145; +pub const SYS_sched_get_priority_max: ::c_long = __X32_SYSCALL_BIT + 146; +pub const SYS_sched_get_priority_min: ::c_long = __X32_SYSCALL_BIT + 147; +pub const SYS_sched_rr_get_interval: ::c_long = __X32_SYSCALL_BIT + 148; +pub const SYS_mlock: ::c_long = __X32_SYSCALL_BIT + 149; +pub const SYS_munlock: ::c_long = __X32_SYSCALL_BIT + 150; +pub const SYS_mlockall: ::c_long = __X32_SYSCALL_BIT + 151; +pub const SYS_munlockall: ::c_long = __X32_SYSCALL_BIT + 152; +pub const SYS_vhangup: ::c_long = __X32_SYSCALL_BIT + 153; +pub const SYS_modify_ldt: ::c_long = __X32_SYSCALL_BIT + 154; +pub const SYS_pivot_root: ::c_long = __X32_SYSCALL_BIT + 155; +pub const SYS_prctl: ::c_long = __X32_SYSCALL_BIT + 157; +pub const SYS_arch_prctl: ::c_long = __X32_SYSCALL_BIT + 158; +pub const SYS_adjtimex: ::c_long = __X32_SYSCALL_BIT + 159; +pub const SYS_setrlimit: ::c_long = __X32_SYSCALL_BIT + 160; +pub const SYS_chroot: ::c_long = __X32_SYSCALL_BIT + 161; +pub const SYS_sync: ::c_long = __X32_SYSCALL_BIT + 162; +pub const SYS_acct: ::c_long = __X32_SYSCALL_BIT + 163; +pub const SYS_settimeofday: ::c_long = __X32_SYSCALL_BIT + 164; +pub const SYS_mount: ::c_long = __X32_SYSCALL_BIT + 165; +pub const SYS_umount2: ::c_long = __X32_SYSCALL_BIT + 166; +pub const SYS_swapon: ::c_long = __X32_SYSCALL_BIT + 167; +pub const SYS_swapoff: ::c_long = __X32_SYSCALL_BIT + 168; +pub const SYS_reboot: ::c_long = __X32_SYSCALL_BIT + 169; +pub const SYS_sethostname: ::c_long = __X32_SYSCALL_BIT + 170; +pub const SYS_setdomainname: ::c_long = __X32_SYSCALL_BIT + 171; +pub const SYS_iopl: ::c_long = __X32_SYSCALL_BIT + 172; +pub const SYS_ioperm: ::c_long = __X32_SYSCALL_BIT + 173; +pub const SYS_init_module: ::c_long = __X32_SYSCALL_BIT + 175; +pub const SYS_delete_module: ::c_long = __X32_SYSCALL_BIT + 176; +pub const SYS_quotactl: ::c_long = __X32_SYSCALL_BIT + 179; +pub const SYS_getpmsg: ::c_long = __X32_SYSCALL_BIT + 181; +pub const SYS_putpmsg: ::c_long = __X32_SYSCALL_BIT + 182; +pub const SYS_afs_syscall: ::c_long = __X32_SYSCALL_BIT + 183; +pub const SYS_tuxcall: ::c_long = __X32_SYSCALL_BIT + 184; +pub const SYS_security: ::c_long = __X32_SYSCALL_BIT + 185; +pub const SYS_gettid: ::c_long = __X32_SYSCALL_BIT + 186; +pub const SYS_readahead: ::c_long = __X32_SYSCALL_BIT + 187; +pub const SYS_setxattr: ::c_long = __X32_SYSCALL_BIT + 188; +pub const SYS_lsetxattr: ::c_long = __X32_SYSCALL_BIT + 189; +pub const SYS_fsetxattr: ::c_long = __X32_SYSCALL_BIT + 190; +pub const SYS_getxattr: ::c_long = __X32_SYSCALL_BIT + 191; +pub const SYS_lgetxattr: ::c_long = __X32_SYSCALL_BIT + 192; +pub const SYS_fgetxattr: ::c_long = __X32_SYSCALL_BIT + 193; +pub const SYS_listxattr: ::c_long = __X32_SYSCALL_BIT + 194; +pub const SYS_llistxattr: ::c_long = __X32_SYSCALL_BIT + 195; +pub const SYS_flistxattr: ::c_long = __X32_SYSCALL_BIT + 196; +pub const SYS_removexattr: ::c_long = __X32_SYSCALL_BIT + 197; +pub const SYS_lremovexattr: ::c_long = __X32_SYSCALL_BIT + 198; +pub const SYS_fremovexattr: ::c_long = __X32_SYSCALL_BIT + 199; +pub const SYS_tkill: ::c_long = __X32_SYSCALL_BIT + 200; +pub const SYS_time: ::c_long = __X32_SYSCALL_BIT + 201; +pub const SYS_futex: ::c_long = __X32_SYSCALL_BIT + 202; +pub const SYS_sched_setaffinity: ::c_long = __X32_SYSCALL_BIT + 203; +pub const SYS_sched_getaffinity: ::c_long = __X32_SYSCALL_BIT + 204; +pub const SYS_io_destroy: ::c_long = __X32_SYSCALL_BIT + 207; +pub const SYS_io_getevents: ::c_long = __X32_SYSCALL_BIT + 208; +pub const SYS_io_cancel: ::c_long = __X32_SYSCALL_BIT + 210; +pub const SYS_lookup_dcookie: ::c_long = __X32_SYSCALL_BIT + 212; +pub const SYS_epoll_create: ::c_long = __X32_SYSCALL_BIT + 213; +pub const SYS_remap_file_pages: ::c_long = __X32_SYSCALL_BIT + 216; +pub const SYS_getdents64: ::c_long = __X32_SYSCALL_BIT + 217; +pub const SYS_set_tid_address: ::c_long = __X32_SYSCALL_BIT + 218; +pub const SYS_restart_syscall: ::c_long = __X32_SYSCALL_BIT + 219; +pub const SYS_semtimedop: ::c_long = __X32_SYSCALL_BIT + 220; +pub const SYS_fadvise64: ::c_long = __X32_SYSCALL_BIT + 221; +pub const SYS_timer_settime: ::c_long = __X32_SYSCALL_BIT + 223; +pub const SYS_timer_gettime: ::c_long = __X32_SYSCALL_BIT + 224; +pub const SYS_timer_getoverrun: ::c_long = __X32_SYSCALL_BIT + 225; +pub const SYS_timer_delete: ::c_long = __X32_SYSCALL_BIT + 226; +pub const SYS_clock_settime: ::c_long = __X32_SYSCALL_BIT + 227; +pub const SYS_clock_gettime: ::c_long = __X32_SYSCALL_BIT + 228; +pub const SYS_clock_getres: ::c_long = __X32_SYSCALL_BIT + 229; +pub const SYS_clock_nanosleep: ::c_long = __X32_SYSCALL_BIT + 230; +pub const SYS_exit_group: ::c_long = __X32_SYSCALL_BIT + 231; +pub const SYS_epoll_wait: ::c_long = __X32_SYSCALL_BIT + 232; +pub const SYS_epoll_ctl: ::c_long = __X32_SYSCALL_BIT + 233; +pub const SYS_tgkill: ::c_long = __X32_SYSCALL_BIT + 234; +pub const SYS_utimes: ::c_long = __X32_SYSCALL_BIT + 235; +pub const SYS_mbind: ::c_long = __X32_SYSCALL_BIT + 237; +pub const SYS_set_mempolicy: ::c_long = __X32_SYSCALL_BIT + 238; +pub const SYS_get_mempolicy: ::c_long = __X32_SYSCALL_BIT + 239; +pub const SYS_mq_open: ::c_long = __X32_SYSCALL_BIT + 240; +pub const SYS_mq_unlink: ::c_long = __X32_SYSCALL_BIT + 241; +pub const SYS_mq_timedsend: ::c_long = __X32_SYSCALL_BIT + 242; +pub const SYS_mq_timedreceive: ::c_long = __X32_SYSCALL_BIT + 243; +pub const SYS_mq_getsetattr: ::c_long = __X32_SYSCALL_BIT + 245; +pub const SYS_add_key: ::c_long = __X32_SYSCALL_BIT + 248; +pub const SYS_request_key: ::c_long = __X32_SYSCALL_BIT + 249; +pub const SYS_keyctl: ::c_long = __X32_SYSCALL_BIT + 250; +pub const SYS_ioprio_set: ::c_long = __X32_SYSCALL_BIT + 251; +pub const SYS_ioprio_get: ::c_long = __X32_SYSCALL_BIT + 252; +pub const SYS_inotify_init: ::c_long = __X32_SYSCALL_BIT + 253; +pub const SYS_inotify_add_watch: ::c_long = __X32_SYSCALL_BIT + 254; +pub const SYS_inotify_rm_watch: ::c_long = __X32_SYSCALL_BIT + 255; +pub const SYS_migrate_pages: ::c_long = __X32_SYSCALL_BIT + 256; +pub const SYS_openat: ::c_long = __X32_SYSCALL_BIT + 257; +pub const SYS_mkdirat: ::c_long = __X32_SYSCALL_BIT + 258; +pub const SYS_mknodat: ::c_long = __X32_SYSCALL_BIT + 259; +pub const SYS_fchownat: ::c_long = __X32_SYSCALL_BIT + 260; +pub const SYS_futimesat: ::c_long = __X32_SYSCALL_BIT + 261; +pub const SYS_newfstatat: ::c_long = __X32_SYSCALL_BIT + 262; +pub const SYS_unlinkat: ::c_long = __X32_SYSCALL_BIT + 263; +pub const SYS_renameat: ::c_long = __X32_SYSCALL_BIT + 264; +pub const SYS_linkat: ::c_long = __X32_SYSCALL_BIT + 265; +pub const SYS_symlinkat: ::c_long = __X32_SYSCALL_BIT + 266; +pub const SYS_readlinkat: ::c_long = __X32_SYSCALL_BIT + 267; +pub const SYS_fchmodat: ::c_long = __X32_SYSCALL_BIT + 268; +pub const SYS_faccessat: ::c_long = __X32_SYSCALL_BIT + 269; +pub const SYS_pselect6: ::c_long = __X32_SYSCALL_BIT + 270; +pub const SYS_ppoll: ::c_long = __X32_SYSCALL_BIT + 271; +pub const SYS_unshare: ::c_long = __X32_SYSCALL_BIT + 272; +pub const SYS_splice: ::c_long = __X32_SYSCALL_BIT + 275; +pub const SYS_tee: ::c_long = __X32_SYSCALL_BIT + 276; +pub const SYS_sync_file_range: ::c_long = __X32_SYSCALL_BIT + 277; +pub const SYS_utimensat: ::c_long = __X32_SYSCALL_BIT + 280; +pub const SYS_epoll_pwait: ::c_long = __X32_SYSCALL_BIT + 281; +pub const SYS_signalfd: ::c_long = __X32_SYSCALL_BIT + 282; +pub const SYS_timerfd_create: ::c_long = __X32_SYSCALL_BIT + 283; +pub const SYS_eventfd: ::c_long = __X32_SYSCALL_BIT + 284; +pub const SYS_fallocate: ::c_long = __X32_SYSCALL_BIT + 285; +pub const SYS_timerfd_settime: ::c_long = __X32_SYSCALL_BIT + 286; +pub const SYS_timerfd_gettime: ::c_long = __X32_SYSCALL_BIT + 287; +pub const SYS_accept4: ::c_long = __X32_SYSCALL_BIT + 288; +pub const SYS_signalfd4: ::c_long = __X32_SYSCALL_BIT + 289; +pub const SYS_eventfd2: ::c_long = __X32_SYSCALL_BIT + 290; +pub const SYS_epoll_create1: ::c_long = __X32_SYSCALL_BIT + 291; +pub const SYS_dup3: ::c_long = __X32_SYSCALL_BIT + 292; +pub const SYS_pipe2: ::c_long = __X32_SYSCALL_BIT + 293; +pub const SYS_inotify_init1: ::c_long = __X32_SYSCALL_BIT + 294; +pub const SYS_perf_event_open: ::c_long = __X32_SYSCALL_BIT + 298; +pub const SYS_fanotify_init: ::c_long = __X32_SYSCALL_BIT + 300; +pub const SYS_fanotify_mark: ::c_long = __X32_SYSCALL_BIT + 301; +pub const SYS_prlimit64: ::c_long = __X32_SYSCALL_BIT + 302; +pub const SYS_name_to_handle_at: ::c_long = __X32_SYSCALL_BIT + 303; +pub const SYS_open_by_handle_at: ::c_long = __X32_SYSCALL_BIT + 304; +pub const SYS_clock_adjtime: ::c_long = __X32_SYSCALL_BIT + 305; +pub const SYS_syncfs: ::c_long = __X32_SYSCALL_BIT + 306; +pub const SYS_setns: ::c_long = __X32_SYSCALL_BIT + 308; +pub const SYS_getcpu: ::c_long = __X32_SYSCALL_BIT + 309; +pub const SYS_kcmp: ::c_long = __X32_SYSCALL_BIT + 312; +pub const SYS_finit_module: ::c_long = __X32_SYSCALL_BIT + 313; +pub const SYS_sched_setattr: ::c_long = __X32_SYSCALL_BIT + 314; +pub const SYS_sched_getattr: ::c_long = __X32_SYSCALL_BIT + 315; +pub const SYS_renameat2: ::c_long = __X32_SYSCALL_BIT + 316; +pub const SYS_seccomp: ::c_long = __X32_SYSCALL_BIT + 317; +pub const SYS_getrandom: ::c_long = __X32_SYSCALL_BIT + 318; +pub const SYS_memfd_create: ::c_long = __X32_SYSCALL_BIT + 319; +pub const SYS_kexec_file_load: ::c_long = __X32_SYSCALL_BIT + 320; +pub const SYS_bpf: ::c_long = __X32_SYSCALL_BIT + 321; +pub const SYS_userfaultfd: ::c_long = __X32_SYSCALL_BIT + 323; +pub const SYS_membarrier: ::c_long = __X32_SYSCALL_BIT + 324; +pub const SYS_mlock2: ::c_long = __X32_SYSCALL_BIT + 325; +pub const SYS_copy_file_range: ::c_long = __X32_SYSCALL_BIT + 326; +pub const SYS_pkey_mprotect: ::c_long = __X32_SYSCALL_BIT + 329; +pub const SYS_pkey_alloc: ::c_long = __X32_SYSCALL_BIT + 330; +pub const SYS_pkey_free: ::c_long = __X32_SYSCALL_BIT + 331; +pub const SYS_statx: ::c_long = __X32_SYSCALL_BIT + 332; +pub const SYS_rseq: ::c_long = __X32_SYSCALL_BIT + 334; +pub const SYS_pidfd_send_signal: ::c_long = __X32_SYSCALL_BIT + 424; +pub const SYS_io_uring_setup: ::c_long = __X32_SYSCALL_BIT + 425; +pub const SYS_io_uring_enter: ::c_long = __X32_SYSCALL_BIT + 426; +pub const SYS_io_uring_register: ::c_long = __X32_SYSCALL_BIT + 427; +pub const SYS_open_tree: ::c_long = __X32_SYSCALL_BIT + 428; +pub const SYS_move_mount: ::c_long = __X32_SYSCALL_BIT + 429; +pub const SYS_fsopen: ::c_long = __X32_SYSCALL_BIT + 430; +pub const SYS_fsconfig: ::c_long = __X32_SYSCALL_BIT + 431; +pub const SYS_fsmount: ::c_long = __X32_SYSCALL_BIT + 432; +pub const SYS_fspick: ::c_long = __X32_SYSCALL_BIT + 433; +pub const SYS_pidfd_open: ::c_long = __X32_SYSCALL_BIT + 434; +pub const SYS_clone3: ::c_long = __X32_SYSCALL_BIT + 435; +pub const SYS_close_range: ::c_long = __X32_SYSCALL_BIT + 436; +pub const SYS_openat2: ::c_long = __X32_SYSCALL_BIT + 437; +pub const SYS_pidfd_getfd: ::c_long = __X32_SYSCALL_BIT + 438; +pub const SYS_faccessat2: ::c_long = __X32_SYSCALL_BIT + 439; +pub const SYS_process_madvise: ::c_long = __X32_SYSCALL_BIT + 440; +pub const SYS_epoll_pwait2: ::c_long = __X32_SYSCALL_BIT + 441; +pub const SYS_mount_setattr: ::c_long = __X32_SYSCALL_BIT + 442; +pub const SYS_quotactl_fd: ::c_long = __X32_SYSCALL_BIT + 443; +pub const SYS_landlock_create_ruleset: ::c_long = __X32_SYSCALL_BIT + 444; +pub const SYS_landlock_add_rule: ::c_long = __X32_SYSCALL_BIT + 445; +pub const SYS_landlock_restrict_self: ::c_long = __X32_SYSCALL_BIT + 446; +pub const SYS_memfd_secret: ::c_long = __X32_SYSCALL_BIT + 447; +pub const SYS_process_mrelease: ::c_long = __X32_SYSCALL_BIT + 448; +pub const SYS_futex_waitv: ::c_long = __X32_SYSCALL_BIT + 449; +pub const SYS_set_mempolicy_home_node: ::c_long = __X32_SYSCALL_BIT + 450; +pub const SYS_rt_sigaction: ::c_long = __X32_SYSCALL_BIT + 512; +pub const SYS_rt_sigreturn: ::c_long = __X32_SYSCALL_BIT + 513; +pub const SYS_ioctl: ::c_long = __X32_SYSCALL_BIT + 514; +pub const SYS_readv: ::c_long = __X32_SYSCALL_BIT + 515; +pub const SYS_writev: ::c_long = __X32_SYSCALL_BIT + 516; +pub const SYS_recvfrom: ::c_long = __X32_SYSCALL_BIT + 517; +pub const SYS_sendmsg: ::c_long = __X32_SYSCALL_BIT + 518; +pub const SYS_recvmsg: ::c_long = __X32_SYSCALL_BIT + 519; +pub const SYS_execve: ::c_long = __X32_SYSCALL_BIT + 520; +pub const SYS_ptrace: ::c_long = __X32_SYSCALL_BIT + 521; +pub const SYS_rt_sigpending: ::c_long = __X32_SYSCALL_BIT + 522; +pub const SYS_rt_sigtimedwait: ::c_long = __X32_SYSCALL_BIT + 523; +pub const SYS_rt_sigqueueinfo: ::c_long = __X32_SYSCALL_BIT + 524; +pub const SYS_sigaltstack: ::c_long = __X32_SYSCALL_BIT + 525; +pub const SYS_timer_create: ::c_long = __X32_SYSCALL_BIT + 526; +pub const SYS_mq_notify: ::c_long = __X32_SYSCALL_BIT + 527; +pub const SYS_kexec_load: ::c_long = __X32_SYSCALL_BIT + 528; +pub const SYS_waitid: ::c_long = __X32_SYSCALL_BIT + 529; +pub const SYS_set_robust_list: ::c_long = __X32_SYSCALL_BIT + 530; +pub const SYS_get_robust_list: ::c_long = __X32_SYSCALL_BIT + 531; +pub const SYS_vmsplice: ::c_long = __X32_SYSCALL_BIT + 532; +pub const SYS_move_pages: ::c_long = __X32_SYSCALL_BIT + 533; +pub const SYS_preadv: ::c_long = __X32_SYSCALL_BIT + 534; +pub const SYS_pwritev: ::c_long = __X32_SYSCALL_BIT + 535; +pub const SYS_rt_tgsigqueueinfo: ::c_long = __X32_SYSCALL_BIT + 536; +pub const SYS_recvmmsg: ::c_long = __X32_SYSCALL_BIT + 537; +pub const SYS_sendmmsg: ::c_long = __X32_SYSCALL_BIT + 538; +pub const SYS_process_vm_readv: ::c_long = __X32_SYSCALL_BIT + 539; +pub const SYS_process_vm_writev: ::c_long = __X32_SYSCALL_BIT + 540; +pub const SYS_setsockopt: ::c_long = __X32_SYSCALL_BIT + 541; +pub const SYS_getsockopt: ::c_long = __X32_SYSCALL_BIT + 542; +pub const SYS_io_setup: ::c_long = __X32_SYSCALL_BIT + 543; +pub const SYS_io_submit: ::c_long = __X32_SYSCALL_BIT + 544; +pub const SYS_execveat: ::c_long = __X32_SYSCALL_BIT + 545; +pub const SYS_preadv2: ::c_long = __X32_SYSCALL_BIT + 546; +pub const SYS_pwritev2: ::c_long = __X32_SYSCALL_BIT + 547; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/mod.rs new file mode 100644 index 000000000..ba4664bf5 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/mod.rs @@ -0,0 +1,1410 @@ +pub type pthread_t = c_ulong; +pub type __priority_which_t = ::c_uint; +pub type __rlimit_resource_t = ::c_uint; +pub type Lmid_t = ::c_long; +pub type regoff_t = ::c_int; + +cfg_if! { + if #[cfg(doc)] { + // Used in `linux::arch` to define ioctl constants. + pub(crate) type Ioctl = ::c_ulong; + } else { + #[doc(hidden)] + pub type Ioctl = ::c_ulong; + } +} + +s! { + pub struct statx { + pub stx_mask: u32, + pub stx_blksize: u32, + pub stx_attributes: u64, + pub stx_nlink: u32, + pub stx_uid: u32, + pub stx_gid: u32, + pub stx_mode: u16, + __statx_pad1: [u16; 1], + pub stx_ino: u64, + pub stx_size: u64, + pub stx_blocks: u64, + pub stx_attributes_mask: u64, + pub stx_atime: ::statx_timestamp, + pub stx_btime: ::statx_timestamp, + pub stx_ctime: ::statx_timestamp, + pub stx_mtime: ::statx_timestamp, + pub stx_rdev_major: u32, + pub stx_rdev_minor: u32, + pub stx_dev_major: u32, + pub stx_dev_minor: u32, + pub stx_mnt_id: u64, + pub stx_dio_mem_align: u32, + pub stx_dio_offset_align: u32, + __statx_pad3: [u64; 12], + } + + pub struct statx_timestamp { + pub tv_sec: i64, + pub tv_nsec: u32, + pub __statx_timestamp_pad1: [i32; 1], + } + + pub struct aiocb { + pub aio_fildes: ::c_int, + pub aio_lio_opcode: ::c_int, + pub aio_reqprio: ::c_int, + pub aio_buf: *mut ::c_void, + pub aio_nbytes: ::size_t, + pub aio_sigevent: ::sigevent, + __next_prio: *mut aiocb, + __abs_prio: ::c_int, + __policy: ::c_int, + __error_code: ::c_int, + __return_value: ::ssize_t, + pub aio_offset: off_t, + #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))] + __unused1: [::c_char; 4], + __glibc_reserved: [::c_char; 32] + } + + pub struct __exit_status { + pub e_termination: ::c_short, + pub e_exit: ::c_short, + } + + pub struct __timeval { + pub tv_sec: i32, + pub tv_usec: i32, + } + + pub struct glob64_t { + pub gl_pathc: ::size_t, + pub gl_pathv: *mut *mut ::c_char, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + + __unused1: *mut ::c_void, + __unused2: *mut ::c_void, + __unused3: *mut ::c_void, + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::size_t, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::size_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: ::size_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; ::NCCS], + #[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_arch = "mips", + target_arch = "mips64")))] + pub c_ispeed: ::speed_t, + #[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_arch = "mips", + target_arch = "mips64")))] + pub c_ospeed: ::speed_t, + } + + pub struct mallinfo { + pub arena: ::c_int, + pub ordblks: ::c_int, + pub smblks: ::c_int, + pub hblks: ::c_int, + pub hblkhd: ::c_int, + pub usmblks: ::c_int, + pub fsmblks: ::c_int, + pub uordblks: ::c_int, + pub fordblks: ::c_int, + pub keepcost: ::c_int, + } + + pub struct mallinfo2 { + pub arena: ::size_t, + pub ordblks: ::size_t, + pub smblks: ::size_t, + pub hblks: ::size_t, + pub hblkhd: ::size_t, + pub usmblks: ::size_t, + pub fsmblks: ::size_t, + pub uordblks: ::size_t, + pub fordblks: ::size_t, + pub keepcost: ::size_t, + } + + pub struct nl_pktinfo { + pub group: u32, + } + + pub struct nl_mmap_req { + pub nm_block_size: ::c_uint, + pub nm_block_nr: ::c_uint, + pub nm_frame_size: ::c_uint, + pub nm_frame_nr: ::c_uint, + } + + pub struct nl_mmap_hdr { + pub nm_status: ::c_uint, + pub nm_len: ::c_uint, + pub nm_group: u32, + pub nm_pid: u32, + pub nm_uid: u32, + pub nm_gid: u32, + } + + pub struct rtentry { + pub rt_pad1: ::c_ulong, + pub rt_dst: ::sockaddr, + pub rt_gateway: ::sockaddr, + pub rt_genmask: ::sockaddr, + pub rt_flags: ::c_ushort, + pub rt_pad2: ::c_short, + pub rt_pad3: ::c_ulong, + pub rt_tos: ::c_uchar, + pub rt_class: ::c_uchar, + #[cfg(target_pointer_width = "64")] + pub rt_pad4: [::c_short; 3usize], + #[cfg(not(target_pointer_width = "64"))] + pub rt_pad4: ::c_short, + pub rt_metric: ::c_short, + pub rt_dev: *mut ::c_char, + pub rt_mtu: ::c_ulong, + pub rt_window: ::c_ulong, + pub rt_irtt: ::c_ushort, + } + + pub struct timex { + pub modes: ::c_uint, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub offset: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub offset: ::c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub freq: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub freq: ::c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub maxerror: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub maxerror: ::c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub esterror: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub esterror: ::c_long, + pub status: ::c_int, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub constant: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub constant: ::c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub precision: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub precision: ::c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub tolerance: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub tolerance: ::c_long, + pub time: ::timeval, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub tick: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub tick: ::c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub ppsfreq: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub ppsfreq: ::c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub jitter: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub jitter: ::c_long, + pub shift: ::c_int, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub stabil: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub stabil: ::c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub jitcnt: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub jitcnt: ::c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub calcnt: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub calcnt: ::c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub errcnt: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub errcnt: ::c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub stbcnt: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub stbcnt: ::c_long, + pub tai: ::c_int, + pub __unused1: i32, + pub __unused2: i32, + pub __unused3: i32, + pub __unused4: i32, + pub __unused5: i32, + pub __unused6: i32, + pub __unused7: i32, + pub __unused8: i32, + pub __unused9: i32, + pub __unused10: i32, + pub __unused11: i32, + } + + pub struct ntptimeval { + pub time: ::timeval, + pub maxerror: ::c_long, + pub esterror: ::c_long, + pub tai: ::c_long, + pub __glibc_reserved1: ::c_long, + pub __glibc_reserved2: ::c_long, + pub __glibc_reserved3: ::c_long, + pub __glibc_reserved4: ::c_long, + } + + pub struct regex_t { + __buffer: *mut ::c_void, + __allocated: ::size_t, + __used: ::size_t, + __syntax: ::c_ulong, + __fastmap: *mut ::c_char, + __translate: *mut ::c_char, + __re_nsub: ::size_t, + __bitfield: u8, + } + + pub struct Elf64_Chdr { + pub ch_type: ::Elf64_Word, + pub ch_reserved: ::Elf64_Word, + pub ch_size: ::Elf64_Xword, + pub ch_addralign: ::Elf64_Xword, + } + + pub struct Elf32_Chdr { + pub ch_type: ::Elf32_Word, + pub ch_size: ::Elf32_Word, + pub ch_addralign: ::Elf32_Word, + } + + pub struct seminfo { + pub semmap: ::c_int, + pub semmni: ::c_int, + pub semmns: ::c_int, + pub semmnu: ::c_int, + pub semmsl: ::c_int, + pub semopm: ::c_int, + pub semume: ::c_int, + pub semusz: ::c_int, + pub semvmx: ::c_int, + pub semaem: ::c_int, + } + + pub struct ptrace_peeksiginfo_args { + pub off: ::__u64, + pub flags: ::__u32, + pub nr: ::__s32, + } + + pub struct __c_anonymous_ptrace_syscall_info_entry { + pub nr: ::__u64, + pub args: [::__u64; 6], + } + + pub struct __c_anonymous_ptrace_syscall_info_exit { + pub sval: ::__s64, + pub is_error: ::__u8, + } + + pub struct __c_anonymous_ptrace_syscall_info_seccomp { + pub nr: ::__u64, + pub args: [::__u64; 6], + pub ret_data: ::__u32, + } + + pub struct ptrace_syscall_info { + pub op: ::__u8, + pub pad: [::__u8; 3], + pub arch: ::__u32, + pub instruction_pointer: ::__u64, + pub stack_pointer: ::__u64, + #[cfg(libc_union)] + pub u: __c_anonymous_ptrace_syscall_info_data, + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + #[repr(C)] + struct siginfo_sigfault { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + si_addr: *mut ::c_void, + } + (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + _si_tid: ::c_int, + _si_overrun: ::c_int, + si_sigval: ::sigval, + } + (*(self as *const siginfo_t as *const siginfo_timer)).si_sigval + } +} + +cfg_if! { + if #[cfg(libc_union)] { + // Internal, for casts to access union fields + #[repr(C)] + struct sifields_sigchld { + si_pid: ::pid_t, + si_uid: ::uid_t, + si_status: ::c_int, + si_utime: ::c_long, + si_stime: ::c_long, + } + impl ::Copy for sifields_sigchld {} + impl ::Clone for sifields_sigchld { + fn clone(&self) -> sifields_sigchld { + *self + } + } + + // Internal, for casts to access union fields + #[repr(C)] + union sifields { + _align_pointer: *mut ::c_void, + sigchld: sifields_sigchld, + } + + // Internal, for casts to access union fields. Note that some variants + // of sifields start with a pointer, which makes the alignment of + // sifields vary on 32-bit and 64-bit architectures. + #[repr(C)] + struct siginfo_f { + _siginfo_base: [::c_int; 3], + sifields: sifields, + } + + impl siginfo_t { + unsafe fn sifields(&self) -> &sifields { + &(*(self as *const siginfo_t as *const siginfo_f)).sifields + } + + pub unsafe fn si_pid(&self) -> ::pid_t { + self.sifields().sigchld.si_pid + } + + pub unsafe fn si_uid(&self) -> ::uid_t { + self.sifields().sigchld.si_uid + } + + pub unsafe fn si_status(&self) -> ::c_int { + self.sifields().sigchld.si_status + } + + pub unsafe fn si_utime(&self) -> ::c_long { + self.sifields().sigchld.si_utime + } + + pub unsafe fn si_stime(&self) -> ::c_long { + self.sifields().sigchld.si_stime + } + } + + pub union __c_anonymous_ptrace_syscall_info_data { + pub entry: __c_anonymous_ptrace_syscall_info_entry, + pub exit: __c_anonymous_ptrace_syscall_info_exit, + pub seccomp: __c_anonymous_ptrace_syscall_info_seccomp, + } + impl ::Copy for __c_anonymous_ptrace_syscall_info_data {} + impl ::Clone for __c_anonymous_ptrace_syscall_info_data { + fn clone(&self) -> __c_anonymous_ptrace_syscall_info_data { + *self + } + } + } +} + +s_no_extra_traits! { + pub struct utmpx { + pub ut_type: ::c_short, + pub ut_pid: ::pid_t, + pub ut_line: [::c_char; __UT_LINESIZE], + pub ut_id: [::c_char; 4], + + pub ut_user: [::c_char; __UT_NAMESIZE], + pub ut_host: [::c_char; __UT_HOSTSIZE], + pub ut_exit: __exit_status, + + #[cfg(any(target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64", + all(target_pointer_width = "32", + not(target_arch = "x86_64"))))] + pub ut_session: ::c_long, + #[cfg(any(target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64", + all(target_pointer_width = "32", + not(target_arch = "x86_64"))))] + pub ut_tv: ::timeval, + + #[cfg(not(any(target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64", + all(target_pointer_width = "32", + not(target_arch = "x86_64")))))] + pub ut_session: i32, + #[cfg(not(any(target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64", + all(target_pointer_width = "32", + not(target_arch = "x86_64")))))] + pub ut_tv: __timeval, + + pub ut_addr_v6: [i32; 4], + __glibc_reserved: [::c_char; 20], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for utmpx { + fn eq(&self, other: &utmpx) -> bool { + self.ut_type == other.ut_type + && self.ut_pid == other.ut_pid + && self.ut_line == other.ut_line + && self.ut_id == other.ut_id + && self.ut_user == other.ut_user + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + && self.ut_exit == other.ut_exit + && self.ut_session == other.ut_session + && self.ut_tv == other.ut_tv + && self.ut_addr_v6 == other.ut_addr_v6 + && self.__glibc_reserved == other.__glibc_reserved + } + } + + impl Eq for utmpx {} + + impl ::fmt::Debug for utmpx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmpx") + .field("ut_type", &self.ut_type) + .field("ut_pid", &self.ut_pid) + .field("ut_line", &self.ut_line) + .field("ut_id", &self.ut_id) + .field("ut_user", &self.ut_user) + // FIXME: .field("ut_host", &self.ut_host) + .field("ut_exit", &self.ut_exit) + .field("ut_session", &self.ut_session) + .field("ut_tv", &self.ut_tv) + .field("ut_addr_v6", &self.ut_addr_v6) + .field("__glibc_reserved", &self.__glibc_reserved) + .finish() + } + } + + impl ::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { + self.ut_type.hash(state); + self.ut_pid.hash(state); + self.ut_line.hash(state); + self.ut_id.hash(state); + self.ut_user.hash(state); + self.ut_host.hash(state); + self.ut_exit.hash(state); + self.ut_session.hash(state); + self.ut_tv.hash(state); + self.ut_addr_v6.hash(state); + self.__glibc_reserved.hash(state); + } + } + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_ptrace_syscall_info_data { + fn eq(&self, other: &__c_anonymous_ptrace_syscall_info_data) -> bool { + unsafe { + self.entry == other.entry || + self.exit == other.exit || + self.seccomp == other.seccomp + } + } + } + + #[cfg(libc_union)] + impl Eq for __c_anonymous_ptrace_syscall_info_data {} + + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ptrace_syscall_info_data { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + unsafe { + f.debug_struct("__c_anonymous_ptrace_syscall_info_data") + .field("entry", &self.entry) + .field("exit", &self.exit) + .field("seccomp", &self.seccomp) + .finish() + } + } + } + + #[cfg(libc_union)] + impl ::hash::Hash for __c_anonymous_ptrace_syscall_info_data { + fn hash(&self, state: &mut H) { + unsafe { + self.entry.hash(state); + self.exit.hash(state); + self.seccomp.hash(state); + } + } + } + } +} + +// include/uapi/asm-generic/hugetlb_encode.h +pub const HUGETLB_FLAG_ENCODE_SHIFT: ::c_int = 26; +pub const HUGETLB_FLAG_ENCODE_MASK: ::c_int = 0x3f; + +pub const HUGETLB_FLAG_ENCODE_64KB: ::c_int = 16 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_512KB: ::c_int = 19 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_1MB: ::c_int = 20 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_2MB: ::c_int = 21 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_8MB: ::c_int = 23 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_16MB: ::c_int = 24 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_32MB: ::c_int = 25 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_256MB: ::c_int = 28 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_512MB: ::c_int = 29 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_1GB: ::c_int = 30 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_2GB: ::c_int = 31 << HUGETLB_FLAG_ENCODE_SHIFT; +pub const HUGETLB_FLAG_ENCODE_16GB: ::c_int = 34 << HUGETLB_FLAG_ENCODE_SHIFT; + +// include/uapi/linux/mman.h +/* + * Huge page size encoding when MAP_HUGETLB is specified, and a huge page + * size other than the default is desired. See hugetlb_encode.h. + * All known huge page size encodings are provided here. It is the + * responsibility of the application to know which sizes are supported on + * the running system. See mmap(2) man page for details. + */ +pub const MAP_HUGE_SHIFT: ::c_int = HUGETLB_FLAG_ENCODE_SHIFT; +pub const MAP_HUGE_MASK: ::c_int = HUGETLB_FLAG_ENCODE_MASK; + +pub const MAP_HUGE_64KB: ::c_int = HUGETLB_FLAG_ENCODE_64KB; +pub const MAP_HUGE_512KB: ::c_int = HUGETLB_FLAG_ENCODE_512KB; +pub const MAP_HUGE_1MB: ::c_int = HUGETLB_FLAG_ENCODE_1MB; +pub const MAP_HUGE_2MB: ::c_int = HUGETLB_FLAG_ENCODE_2MB; +pub const MAP_HUGE_8MB: ::c_int = HUGETLB_FLAG_ENCODE_8MB; +pub const MAP_HUGE_16MB: ::c_int = HUGETLB_FLAG_ENCODE_16MB; +pub const MAP_HUGE_32MB: ::c_int = HUGETLB_FLAG_ENCODE_32MB; +pub const MAP_HUGE_256MB: ::c_int = HUGETLB_FLAG_ENCODE_256MB; +pub const MAP_HUGE_512MB: ::c_int = HUGETLB_FLAG_ENCODE_512MB; +pub const MAP_HUGE_1GB: ::c_int = HUGETLB_FLAG_ENCODE_1GB; +pub const MAP_HUGE_2GB: ::c_int = HUGETLB_FLAG_ENCODE_2GB; +pub const MAP_HUGE_16GB: ::c_int = HUGETLB_FLAG_ENCODE_16GB; + +pub const PRIO_PROCESS: ::__priority_which_t = 0; +pub const PRIO_PGRP: ::__priority_which_t = 1; +pub const PRIO_USER: ::__priority_which_t = 2; + +pub const MS_RMT_MASK: ::c_ulong = 0x02800051; + +pub const __UT_LINESIZE: usize = 32; +pub const __UT_NAMESIZE: usize = 32; +pub const __UT_HOSTSIZE: usize = 256; +pub const EMPTY: ::c_short = 0; +pub const RUN_LVL: ::c_short = 1; +pub const BOOT_TIME: ::c_short = 2; +pub const NEW_TIME: ::c_short = 3; +pub const OLD_TIME: ::c_short = 4; +pub const INIT_PROCESS: ::c_short = 5; +pub const LOGIN_PROCESS: ::c_short = 6; +pub const USER_PROCESS: ::c_short = 7; +pub const DEAD_PROCESS: ::c_short = 8; +pub const ACCOUNTING: ::c_short = 9; + +// dlfcn.h +pub const LM_ID_BASE: ::c_long = 0; +pub const LM_ID_NEWLM: ::c_long = -1; + +pub const RTLD_DI_LMID: ::c_int = 1; +pub const RTLD_DI_LINKMAP: ::c_int = 2; +pub const RTLD_DI_CONFIGADDR: ::c_int = 3; +pub const RTLD_DI_SERINFO: ::c_int = 4; +pub const RTLD_DI_SERINFOSIZE: ::c_int = 5; +pub const RTLD_DI_ORIGIN: ::c_int = 6; +pub const RTLD_DI_PROFILENAME: ::c_int = 7; +pub const RTLD_DI_PROFILEOUT: ::c_int = 8; +pub const RTLD_DI_TLS_MODID: ::c_int = 9; +pub const RTLD_DI_TLS_DATA: ::c_int = 10; + +pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK; +pub const PIDFD_NONBLOCK: ::c_uint = O_NONBLOCK as ::c_uint; + +pub const SOL_RXRPC: ::c_int = 272; +pub const SOL_PPPOL2TP: ::c_int = 273; +pub const SOL_PNPIPE: ::c_int = 275; +pub const SOL_RDS: ::c_int = 276; +pub const SOL_IUCV: ::c_int = 277; +pub const SOL_CAIF: ::c_int = 278; +pub const SOL_NFC: ::c_int = 280; +pub const SOL_XDP: ::c_int = 283; + +pub const MSG_TRYHARD: ::c_int = 4; + +pub const LC_PAPER: ::c_int = 7; +pub const LC_NAME: ::c_int = 8; +pub const LC_ADDRESS: ::c_int = 9; +pub const LC_TELEPHONE: ::c_int = 10; +pub const LC_MEASUREMENT: ::c_int = 11; +pub const LC_IDENTIFICATION: ::c_int = 12; +pub const LC_PAPER_MASK: ::c_int = 1 << LC_PAPER; +pub const LC_NAME_MASK: ::c_int = 1 << LC_NAME; +pub const LC_ADDRESS_MASK: ::c_int = 1 << LC_ADDRESS; +pub const LC_TELEPHONE_MASK: ::c_int = 1 << LC_TELEPHONE; +pub const LC_MEASUREMENT_MASK: ::c_int = 1 << LC_MEASUREMENT; +pub const LC_IDENTIFICATION_MASK: ::c_int = 1 << LC_IDENTIFICATION; +pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK + | ::LC_NUMERIC_MASK + | ::LC_TIME_MASK + | ::LC_COLLATE_MASK + | ::LC_MONETARY_MASK + | ::LC_MESSAGES_MASK + | LC_PAPER_MASK + | LC_NAME_MASK + | LC_ADDRESS_MASK + | LC_TELEPHONE_MASK + | LC_MEASUREMENT_MASK + | LC_IDENTIFICATION_MASK; + +pub const ENOTSUP: ::c_int = EOPNOTSUPP; + +pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOCK_DCCP: ::c_int = 6; +pub const SOCK_PACKET: ::c_int = 10; + +pub const FAN_MARK_INODE: ::c_uint = 0x0000_0000; +pub const FAN_MARK_MOUNT: ::c_uint = 0x0000_0010; +// NOTE: FAN_MARK_FILESYSTEM requires Linux Kernel >= 4.20.0 +pub const FAN_MARK_FILESYSTEM: ::c_uint = 0x0000_0100; + +pub const AF_IB: ::c_int = 27; +pub const AF_MPLS: ::c_int = 28; +pub const AF_NFC: ::c_int = 39; +pub const AF_VSOCK: ::c_int = 40; +pub const AF_XDP: ::c_int = 44; +pub const PF_IB: ::c_int = AF_IB; +pub const PF_MPLS: ::c_int = AF_MPLS; +pub const PF_NFC: ::c_int = AF_NFC; +pub const PF_VSOCK: ::c_int = AF_VSOCK; +pub const PF_XDP: ::c_int = AF_XDP; + +pub const SIGEV_THREAD_ID: ::c_int = 4; + +pub const BUFSIZ: ::c_uint = 8192; +pub const TMP_MAX: ::c_uint = 238328; +pub const FOPEN_MAX: ::c_uint = 16; +pub const FILENAME_MAX: ::c_uint = 4096; +pub const POSIX_MADV_DONTNEED: ::c_int = 4; +pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41; +pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45; +pub const _SC_PII: ::c_int = 53; +pub const _SC_PII_XTI: ::c_int = 54; +pub const _SC_PII_SOCKET: ::c_int = 55; +pub const _SC_PII_INTERNET: ::c_int = 56; +pub const _SC_PII_OSI: ::c_int = 57; +pub const _SC_POLL: ::c_int = 58; +pub const _SC_SELECT: ::c_int = 59; +pub const _SC_PII_INTERNET_STREAM: ::c_int = 61; +pub const _SC_PII_INTERNET_DGRAM: ::c_int = 62; +pub const _SC_PII_OSI_COTS: ::c_int = 63; +pub const _SC_PII_OSI_CLTS: ::c_int = 64; +pub const _SC_PII_OSI_M: ::c_int = 65; +pub const _SC_T_IOV_MAX: ::c_int = 66; +pub const _SC_2_C_VERSION: ::c_int = 96; +pub const _SC_CHAR_BIT: ::c_int = 101; +pub const _SC_CHAR_MAX: ::c_int = 102; +pub const _SC_CHAR_MIN: ::c_int = 103; +pub const _SC_INT_MAX: ::c_int = 104; +pub const _SC_INT_MIN: ::c_int = 105; +pub const _SC_LONG_BIT: ::c_int = 106; +pub const _SC_WORD_BIT: ::c_int = 107; +pub const _SC_MB_LEN_MAX: ::c_int = 108; +pub const _SC_SSIZE_MAX: ::c_int = 110; +pub const _SC_SCHAR_MAX: ::c_int = 111; +pub const _SC_SCHAR_MIN: ::c_int = 112; +pub const _SC_SHRT_MAX: ::c_int = 113; +pub const _SC_SHRT_MIN: ::c_int = 114; +pub const _SC_UCHAR_MAX: ::c_int = 115; +pub const _SC_UINT_MAX: ::c_int = 116; +pub const _SC_ULONG_MAX: ::c_int = 117; +pub const _SC_USHRT_MAX: ::c_int = 118; +pub const _SC_NL_ARGMAX: ::c_int = 119; +pub const _SC_NL_LANGMAX: ::c_int = 120; +pub const _SC_NL_MSGMAX: ::c_int = 121; +pub const _SC_NL_NMAX: ::c_int = 122; +pub const _SC_NL_SETMAX: ::c_int = 123; +pub const _SC_NL_TEXTMAX: ::c_int = 124; +pub const _SC_BASE: ::c_int = 134; +pub const _SC_C_LANG_SUPPORT: ::c_int = 135; +pub const _SC_C_LANG_SUPPORT_R: ::c_int = 136; +pub const _SC_DEVICE_IO: ::c_int = 140; +pub const _SC_DEVICE_SPECIFIC: ::c_int = 141; +pub const _SC_DEVICE_SPECIFIC_R: ::c_int = 142; +pub const _SC_FD_MGMT: ::c_int = 143; +pub const _SC_FIFO: ::c_int = 144; +pub const _SC_PIPE: ::c_int = 145; +pub const _SC_FILE_ATTRIBUTES: ::c_int = 146; +pub const _SC_FILE_LOCKING: ::c_int = 147; +pub const _SC_FILE_SYSTEM: ::c_int = 148; +pub const _SC_MULTI_PROCESS: ::c_int = 150; +pub const _SC_SINGLE_PROCESS: ::c_int = 151; +pub const _SC_NETWORKING: ::c_int = 152; +pub const _SC_REGEX_VERSION: ::c_int = 156; +pub const _SC_SIGNALS: ::c_int = 158; +pub const _SC_SYSTEM_DATABASE: ::c_int = 162; +pub const _SC_SYSTEM_DATABASE_R: ::c_int = 163; +pub const _SC_USER_GROUPS: ::c_int = 166; +pub const _SC_USER_GROUPS_R: ::c_int = 167; +pub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 185; +pub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 186; +pub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 187; +pub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 188; +pub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 189; +pub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 190; +pub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 191; +pub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 192; +pub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 193; +pub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 194; +pub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 195; +pub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 196; +pub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 197; +pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 198; +pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 199; +pub const O_ACCMODE: ::c_int = 3; +pub const ST_RELATIME: ::c_ulong = 4096; +pub const NI_MAXHOST: ::socklen_t = 1025; + +// Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the +// following are only available on newer Linux versions than the versions +// currently used in CI in some configurations, so we define them here. +cfg_if! { + if #[cfg(not(target_arch = "s390x"))] { + pub const BINDERFS_SUPER_MAGIC: ::c_long = 0x6c6f6f70; + pub const XFS_SUPER_MAGIC: ::c_long = 0x58465342; + } else if #[cfg(target_arch = "s390x")] { + pub const BINDERFS_SUPER_MAGIC: ::c_uint = 0x6c6f6f70; + pub const XFS_SUPER_MAGIC: ::c_uint = 0x58465342; + } +} + +pub const CPU_SETSIZE: ::c_int = 0x400; + +pub const PTRACE_TRACEME: ::c_uint = 0; +pub const PTRACE_PEEKTEXT: ::c_uint = 1; +pub const PTRACE_PEEKDATA: ::c_uint = 2; +pub const PTRACE_PEEKUSER: ::c_uint = 3; +pub const PTRACE_POKETEXT: ::c_uint = 4; +pub const PTRACE_POKEDATA: ::c_uint = 5; +pub const PTRACE_POKEUSER: ::c_uint = 6; +pub const PTRACE_CONT: ::c_uint = 7; +pub const PTRACE_KILL: ::c_uint = 8; +pub const PTRACE_SINGLESTEP: ::c_uint = 9; +pub const PTRACE_ATTACH: ::c_uint = 16; +pub const PTRACE_SYSCALL: ::c_uint = 24; +pub const PTRACE_SETOPTIONS: ::c_uint = 0x4200; +pub const PTRACE_GETEVENTMSG: ::c_uint = 0x4201; +pub const PTRACE_GETSIGINFO: ::c_uint = 0x4202; +pub const PTRACE_SETSIGINFO: ::c_uint = 0x4203; +pub const PTRACE_GETREGSET: ::c_uint = 0x4204; +pub const PTRACE_SETREGSET: ::c_uint = 0x4205; +pub const PTRACE_SEIZE: ::c_uint = 0x4206; +pub const PTRACE_INTERRUPT: ::c_uint = 0x4207; +pub const PTRACE_LISTEN: ::c_uint = 0x4208; +pub const PTRACE_PEEKSIGINFO: ::c_uint = 0x4209; +pub const PTRACE_GET_SYSCALL_INFO: ::c_uint = 0x420e; +pub const PTRACE_SYSCALL_INFO_NONE: ::__u8 = 0; +pub const PTRACE_SYSCALL_INFO_ENTRY: ::__u8 = 1; +pub const PTRACE_SYSCALL_INFO_EXIT: ::__u8 = 2; +pub const PTRACE_SYSCALL_INFO_SECCOMP: ::__u8 = 3; + +// linux/fs.h + +// Flags for preadv2/pwritev2 +pub const RWF_HIPRI: ::c_int = 0x00000001; +pub const RWF_DSYNC: ::c_int = 0x00000002; +pub const RWF_SYNC: ::c_int = 0x00000004; +pub const RWF_NOWAIT: ::c_int = 0x00000008; +pub const RWF_APPEND: ::c_int = 0x00000010; + +// linux/rtnetlink.h +pub const TCA_PAD: ::c_ushort = 9; +pub const TCA_DUMP_INVISIBLE: ::c_ushort = 10; +pub const TCA_CHAIN: ::c_ushort = 11; +pub const TCA_HW_OFFLOAD: ::c_ushort = 12; + +pub const RTM_DELNETCONF: u16 = 81; +pub const RTM_NEWSTATS: u16 = 92; +pub const RTM_GETSTATS: u16 = 94; +pub const RTM_NEWCACHEREPORT: u16 = 96; + +pub const RTM_F_LOOKUP_TABLE: ::c_uint = 0x1000; +pub const RTM_F_FIB_MATCH: ::c_uint = 0x2000; + +pub const RTA_VIA: ::c_ushort = 18; +pub const RTA_NEWDST: ::c_ushort = 19; +pub const RTA_PREF: ::c_ushort = 20; +pub const RTA_ENCAP_TYPE: ::c_ushort = 21; +pub const RTA_ENCAP: ::c_ushort = 22; +pub const RTA_EXPIRES: ::c_ushort = 23; +pub const RTA_PAD: ::c_ushort = 24; +pub const RTA_UID: ::c_ushort = 25; +pub const RTA_TTL_PROPAGATE: ::c_ushort = 26; + +// linux/neighbor.h +pub const NTF_EXT_LEARNED: u8 = 0x10; +pub const NTF_OFFLOADED: u8 = 0x20; + +pub const NDA_MASTER: ::c_ushort = 9; +pub const NDA_LINK_NETNSID: ::c_ushort = 10; +pub const NDA_SRC_VNI: ::c_ushort = 11; + +// linux/personality.h +pub const UNAME26: ::c_int = 0x0020000; +pub const FDPIC_FUNCPTRS: ::c_int = 0x0080000; + +// linux/if_addr.h +pub const IFA_FLAGS: ::c_ushort = 8; + +pub const IFA_F_MANAGETEMPADDR: u32 = 0x100; +pub const IFA_F_NOPREFIXROUTE: u32 = 0x200; +pub const IFA_F_MCAUTOJOIN: u32 = 0x400; +pub const IFA_F_STABLE_PRIVACY: u32 = 0x800; + +pub const MAX_LINKS: ::c_int = 32; + +pub const GENL_UNS_ADMIN_PERM: ::c_int = 0x10; + +pub const GENL_ID_VFS_DQUOT: ::c_int = ::NLMSG_MIN_TYPE + 1; +pub const GENL_ID_PMCRAID: ::c_int = ::NLMSG_MIN_TYPE + 2; + +// elf.h +pub const NT_PRSTATUS: ::c_int = 1; +pub const NT_PRFPREG: ::c_int = 2; +pub const NT_FPREGSET: ::c_int = 2; +pub const NT_PRPSINFO: ::c_int = 3; +pub const NT_PRXREG: ::c_int = 4; +pub const NT_TASKSTRUCT: ::c_int = 4; +pub const NT_PLATFORM: ::c_int = 5; +pub const NT_AUXV: ::c_int = 6; +pub const NT_GWINDOWS: ::c_int = 7; +pub const NT_ASRS: ::c_int = 8; +pub const NT_PSTATUS: ::c_int = 10; +pub const NT_PSINFO: ::c_int = 13; +pub const NT_PRCRED: ::c_int = 14; +pub const NT_UTSNAME: ::c_int = 15; +pub const NT_LWPSTATUS: ::c_int = 16; +pub const NT_LWPSINFO: ::c_int = 17; +pub const NT_PRFPXREG: ::c_int = 20; + +pub const ELFOSABI_ARM_AEABI: u8 = 64; + +// linux/keyctl.h +pub const KEYCTL_DH_COMPUTE: u32 = 23; +pub const KEYCTL_PKEY_QUERY: u32 = 24; +pub const KEYCTL_PKEY_ENCRYPT: u32 = 25; +pub const KEYCTL_PKEY_DECRYPT: u32 = 26; +pub const KEYCTL_PKEY_SIGN: u32 = 27; +pub const KEYCTL_PKEY_VERIFY: u32 = 28; +pub const KEYCTL_RESTRICT_KEYRING: u32 = 29; + +pub const KEYCTL_SUPPORTS_ENCRYPT: u32 = 0x01; +pub const KEYCTL_SUPPORTS_DECRYPT: u32 = 0x02; +pub const KEYCTL_SUPPORTS_SIGN: u32 = 0x04; +pub const KEYCTL_SUPPORTS_VERIFY: u32 = 0x08; +cfg_if! { + if #[cfg(not(any(target_arch="mips", target_arch="mips64")))] { + pub const KEYCTL_MOVE: u32 = 30; + pub const KEYCTL_CAPABILITIES: u32 = 31; + + pub const KEYCTL_CAPS0_CAPABILITIES: u32 = 0x01; + pub const KEYCTL_CAPS0_PERSISTENT_KEYRINGS: u32 = 0x02; + pub const KEYCTL_CAPS0_DIFFIE_HELLMAN: u32 = 0x04; + pub const KEYCTL_CAPS0_PUBLIC_KEY: u32 = 0x08; + pub const KEYCTL_CAPS0_BIG_KEY: u32 = 0x10; + pub const KEYCTL_CAPS0_INVALIDATE: u32 = 0x20; + pub const KEYCTL_CAPS0_RESTRICT_KEYRING: u32 = 0x40; + pub const KEYCTL_CAPS0_MOVE: u32 = 0x80; + pub const KEYCTL_CAPS1_NS_KEYRING_NAME: u32 = 0x01; + pub const KEYCTL_CAPS1_NS_KEY_TAG: u32 = 0x02; + } +} + +pub const M_MXFAST: ::c_int = 1; +pub const M_NLBLKS: ::c_int = 2; +pub const M_GRAIN: ::c_int = 3; +pub const M_KEEP: ::c_int = 4; +pub const M_TRIM_THRESHOLD: ::c_int = -1; +pub const M_TOP_PAD: ::c_int = -2; +pub const M_MMAP_THRESHOLD: ::c_int = -3; +pub const M_MMAP_MAX: ::c_int = -4; +pub const M_CHECK_ACTION: ::c_int = -5; +pub const M_PERTURB: ::c_int = -6; +pub const M_ARENA_TEST: ::c_int = -7; +pub const M_ARENA_MAX: ::c_int = -8; + +pub const AT_STATX_SYNC_TYPE: ::c_int = 0x6000; +pub const AT_STATX_SYNC_AS_STAT: ::c_int = 0x0000; +pub const AT_STATX_FORCE_SYNC: ::c_int = 0x2000; +pub const AT_STATX_DONT_SYNC: ::c_int = 0x4000; +pub const STATX_TYPE: ::c_uint = 0x0001; +pub const STATX_MODE: ::c_uint = 0x0002; +pub const STATX_NLINK: ::c_uint = 0x0004; +pub const STATX_UID: ::c_uint = 0x0008; +pub const STATX_GID: ::c_uint = 0x0010; +pub const STATX_ATIME: ::c_uint = 0x0020; +pub const STATX_MTIME: ::c_uint = 0x0040; +pub const STATX_CTIME: ::c_uint = 0x0080; +pub const STATX_INO: ::c_uint = 0x0100; +pub const STATX_SIZE: ::c_uint = 0x0200; +pub const STATX_BLOCKS: ::c_uint = 0x0400; +pub const STATX_BASIC_STATS: ::c_uint = 0x07ff; +pub const STATX_BTIME: ::c_uint = 0x0800; +pub const STATX_MNT_ID: ::c_uint = 0x1000; +pub const STATX_DIOALIGN: ::c_uint = 0x2000; +pub const STATX_ALL: ::c_uint = 0x0fff; +pub const STATX__RESERVED: ::c_int = 0x80000000; +pub const STATX_ATTR_COMPRESSED: ::c_int = 0x0004; +pub const STATX_ATTR_IMMUTABLE: ::c_int = 0x0010; +pub const STATX_ATTR_APPEND: ::c_int = 0x0020; +pub const STATX_ATTR_NODUMP: ::c_int = 0x0040; +pub const STATX_ATTR_ENCRYPTED: ::c_int = 0x0800; +pub const STATX_ATTR_AUTOMOUNT: ::c_int = 0x1000; +pub const STATX_ATTR_MOUNT_ROOT: ::c_int = 0x2000; +pub const STATX_ATTR_VERITY: ::c_int = 0x00100000; +pub const STATX_ATTR_DAX: ::c_int = 0x00200000; + +pub const SOMAXCONN: ::c_int = 4096; + +//sys/timex.h +pub const ADJ_OFFSET: ::c_uint = 0x0001; +pub const ADJ_FREQUENCY: ::c_uint = 0x0002; +pub const ADJ_MAXERROR: ::c_uint = 0x0004; +pub const ADJ_ESTERROR: ::c_uint = 0x0008; +pub const ADJ_STATUS: ::c_uint = 0x0010; +pub const ADJ_TIMECONST: ::c_uint = 0x0020; +pub const ADJ_TAI: ::c_uint = 0x0080; +pub const ADJ_SETOFFSET: ::c_uint = 0x0100; +pub const ADJ_MICRO: ::c_uint = 0x1000; +pub const ADJ_NANO: ::c_uint = 0x2000; +pub const ADJ_TICK: ::c_uint = 0x4000; +pub const ADJ_OFFSET_SINGLESHOT: ::c_uint = 0x8001; +pub const ADJ_OFFSET_SS_READ: ::c_uint = 0xa001; +pub const MOD_OFFSET: ::c_uint = ADJ_OFFSET; +pub const MOD_FREQUENCY: ::c_uint = ADJ_FREQUENCY; +pub const MOD_MAXERROR: ::c_uint = ADJ_MAXERROR; +pub const MOD_ESTERROR: ::c_uint = ADJ_ESTERROR; +pub const MOD_STATUS: ::c_uint = ADJ_STATUS; +pub const MOD_TIMECONST: ::c_uint = ADJ_TIMECONST; +pub const MOD_CLKB: ::c_uint = ADJ_TICK; +pub const MOD_CLKA: ::c_uint = ADJ_OFFSET_SINGLESHOT; +pub const MOD_TAI: ::c_uint = ADJ_TAI; +pub const MOD_MICRO: ::c_uint = ADJ_MICRO; +pub const MOD_NANO: ::c_uint = ADJ_NANO; +pub const STA_PLL: ::c_int = 0x0001; +pub const STA_PPSFREQ: ::c_int = 0x0002; +pub const STA_PPSTIME: ::c_int = 0x0004; +pub const STA_FLL: ::c_int = 0x0008; +pub const STA_INS: ::c_int = 0x0010; +pub const STA_DEL: ::c_int = 0x0020; +pub const STA_UNSYNC: ::c_int = 0x0040; +pub const STA_FREQHOLD: ::c_int = 0x0080; +pub const STA_PPSSIGNAL: ::c_int = 0x0100; +pub const STA_PPSJITTER: ::c_int = 0x0200; +pub const STA_PPSWANDER: ::c_int = 0x0400; +pub const STA_PPSERROR: ::c_int = 0x0800; +pub const STA_CLOCKERR: ::c_int = 0x1000; +pub const STA_NANO: ::c_int = 0x2000; +pub const STA_MODE: ::c_int = 0x4000; +pub const STA_CLK: ::c_int = 0x8000; +pub const STA_RONLY: ::c_int = STA_PPSSIGNAL + | STA_PPSJITTER + | STA_PPSWANDER + | STA_PPSERROR + | STA_CLOCKERR + | STA_NANO + | STA_MODE + | STA_CLK; +pub const NTP_API: ::c_int = 4; +pub const TIME_OK: ::c_int = 0; +pub const TIME_INS: ::c_int = 1; +pub const TIME_DEL: ::c_int = 2; +pub const TIME_OOP: ::c_int = 3; +pub const TIME_WAIT: ::c_int = 4; +pub const TIME_ERROR: ::c_int = 5; +pub const TIME_BAD: ::c_int = TIME_ERROR; +pub const MAXTC: ::c_long = 6; + +cfg_if! { + if #[cfg(any( + target_arch = "arm", + target_arch = "x86", + target_arch = "x86_64", + target_arch = "s390x", + target_arch = "riscv64", + target_arch = "riscv32" + ))] { + pub const PTHREAD_STACK_MIN: ::size_t = 16384; + } else if #[cfg(any( + target_arch = "sparc", + target_arch = "sparc64" + ))] { + pub const PTHREAD_STACK_MIN: ::size_t = 0x6000; + } else { + pub const PTHREAD_STACK_MIN: ::size_t = 131072; + } +} +pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 3; + +pub const REG_STARTEND: ::c_int = 4; + +pub const REG_EEND: ::c_int = 14; +pub const REG_ESIZE: ::c_int = 15; +pub const REG_ERPAREN: ::c_int = 16; + +extern "C" { + pub fn fgetspent_r( + fp: *mut ::FILE, + spbuf: *mut ::spwd, + buf: *mut ::c_char, + buflen: ::size_t, + spbufp: *mut *mut ::spwd, + ) -> ::c_int; + pub fn sgetspent_r( + s: *const ::c_char, + spbuf: *mut ::spwd, + buf: *mut ::c_char, + buflen: ::size_t, + spbufp: *mut *mut ::spwd, + ) -> ::c_int; + pub fn getspent_r( + spbuf: *mut ::spwd, + buf: *mut ::c_char, + buflen: ::size_t, + spbufp: *mut *mut ::spwd, + ) -> ::c_int; + pub fn qsort_r( + base: *mut ::c_void, + num: ::size_t, + size: ::size_t, + compar: ::Option< + unsafe extern "C" fn(*const ::c_void, *const ::c_void, *mut ::c_void) -> ::c_int, + >, + arg: *mut ::c_void, + ); + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + timeout: *mut ::timespec, + ) -> ::c_int; + + pub fn getrlimit64(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit64) -> ::c_int; + pub fn setrlimit64(resource: ::__rlimit_resource_t, rlim: *const ::rlimit64) -> ::c_int; + pub fn getrlimit(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit) -> ::c_int; + pub fn setrlimit(resource: ::__rlimit_resource_t, rlim: *const ::rlimit) -> ::c_int; + pub fn prlimit( + pid: ::pid_t, + resource: ::__rlimit_resource_t, + new_limit: *const ::rlimit, + old_limit: *mut ::rlimit, + ) -> ::c_int; + pub fn prlimit64( + pid: ::pid_t, + resource: ::__rlimit_resource_t, + new_limit: *const ::rlimit64, + old_limit: *mut ::rlimit64, + ) -> ::c_int; + pub fn utmpname(file: *const ::c_char) -> ::c_int; + pub fn utmpxname(file: *const ::c_char) -> ::c_int; + pub fn getutxent() -> *mut utmpx; + pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + pub fn setutxent(); + pub fn endutxent(); + pub fn getpt() -> ::c_int; + pub fn mallopt(param: ::c_int, value: ::c_int) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn statx( + dirfd: ::c_int, + pathname: *const c_char, + flags: ::c_int, + mask: ::c_uint, + statxbuf: *mut statx, + ) -> ::c_int; + pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; + + pub fn adjtimex(buf: *mut timex) -> ::c_int; + pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; + #[link_name = "ntp_gettimex"] + pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; + pub fn clock_adjtime(clk_id: ::clockid_t, buf: *mut ::timex) -> ::c_int; + + pub fn fanotify_mark( + fd: ::c_int, + flags: ::c_uint, + mask: u64, + dirfd: ::c_int, + path: *const ::c_char, + ) -> ::c_int; + pub fn preadv2( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + flags: ::c_int, + ) -> ::ssize_t; + pub fn pwritev2( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + flags: ::c_int, + ) -> ::ssize_t; + pub fn preadv64v2( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, + flags: ::c_int, + ) -> ::ssize_t; + pub fn pwritev64v2( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, + flags: ::c_int, + ) -> ::ssize_t; + pub fn renameat2( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + flags: ::c_uint, + ) -> ::c_int; + + // Added in `glibc` 2.25 + pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t); + // Added in `glibc` 2.29 + pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; + + pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; + pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; + pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int; + pub fn glob64( + pattern: *const ::c_char, + flags: ::c_int, + errfunc: ::Option ::c_int>, + pglob: *mut glob64_t, + ) -> ::c_int; + pub fn globfree64(pglob: *mut glob64_t); + pub fn ptrace(request: ::c_uint, ...) -> ::c_long; + pub fn pthread_attr_getaffinity_np( + attr: *const ::pthread_attr_t, + cpusetsize: ::size_t, + cpuset: *mut ::cpu_set_t, + ) -> ::c_int; + pub fn pthread_attr_setaffinity_np( + attr: *mut ::pthread_attr_t, + cpusetsize: ::size_t, + cpuset: *const ::cpu_set_t, + ) -> ::c_int; + pub fn getpriority(which: ::__priority_which_t, who: ::id_t) -> ::c_int; + pub fn setpriority(which: ::__priority_which_t, who: ::id_t, prio: ::c_int) -> ::c_int; + pub fn pthread_rwlockattr_getkind_np( + attr: *const ::pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setkind_np( + attr: *mut ::pthread_rwlockattr_t, + val: ::c_int, + ) -> ::c_int; + pub fn pthread_sigqueue(thread: ::pthread_t, sig: ::c_int, value: ::sigval) -> ::c_int; + pub fn mallinfo() -> ::mallinfo; + pub fn mallinfo2() -> ::mallinfo2; + pub fn malloc_info(options: ::c_int, stream: *mut ::FILE) -> ::c_int; + pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t; + pub fn getpwent_r( + pwd: *mut ::passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::passwd, + ) -> ::c_int; + pub fn getgrent_r( + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn fgetpwent_r( + stream: *mut ::FILE, + pwd: *mut ::passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::passwd, + ) -> ::c_int; + pub fn fgetgrent_r( + stream: *mut ::FILE, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + + pub fn putpwent(p: *const ::passwd, stream: *mut ::FILE) -> ::c_int; + pub fn putgrent(grp: *const ::group, stream: *mut ::FILE) -> ::c_int; + + pub fn sethostid(hostid: ::c_long) -> ::c_int; + + pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int; + pub fn mlock2(addr: *const ::c_void, len: ::size_t, flags: ::c_uint) -> ::c_int; + + pub fn euidaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; + pub fn eaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; + + pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; + pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char; + + pub fn strftime( + s: *mut ::c_char, + max: ::size_t, + format: *const ::c_char, + tm: *const ::tm, + ) -> ::size_t; + pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; + + pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; + /// POSIX version of `basename(3)`, defined in `libgen.h`. + #[link_name = "__xpg_basename"] + pub fn posix_basename(path: *mut ::c_char) -> *mut ::c_char; + /// GNU version of `basename(3)`, defined in `string.h`. + #[link_name = "basename"] + pub fn gnu_basename(path: *const ::c_char) -> *mut ::c_char; + pub fn dlmopen(lmid: Lmid_t, filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; + pub fn dlinfo(handle: *mut ::c_void, request: ::c_int, info: *mut ::c_void) -> ::c_int; + pub fn dladdr1( + addr: *const ::c_void, + info: *mut ::Dl_info, + extra_info: *mut *mut ::c_void, + flags: ::c_int, + ) -> ::c_int; + pub fn malloc_trim(__pad: ::size_t) -> ::c_int; + pub fn gnu_get_libc_release() -> *const ::c_char; + pub fn gnu_get_libc_version() -> *const ::c_char; + + // posix/spawn.h + // Added in `glibc` 2.29 + pub fn posix_spawn_file_actions_addchdir_np( + actions: *mut ::posix_spawn_file_actions_t, + path: *const ::c_char, + ) -> ::c_int; + // Added in `glibc` 2.29 + pub fn posix_spawn_file_actions_addfchdir_np( + actions: *mut ::posix_spawn_file_actions_t, + fd: ::c_int, + ) -> ::c_int; + // Added in `glibc` 2.34 + pub fn posix_spawn_file_actions_addclosefrom_np( + actions: *mut ::posix_spawn_file_actions_t, + from: ::c_int, + ) -> ::c_int; + // Added in `glibc` 2.35 + pub fn posix_spawn_file_actions_addtcsetpgrp_np( + actions: *mut ::posix_spawn_file_actions_t, + tcfd: ::c_int, + ) -> ::c_int; + + // mntent.h + pub fn getmntent_r( + stream: *mut ::FILE, + mntbuf: *mut ::mntent, + buf: *mut ::c_char, + buflen: ::c_int, + ) -> *mut ::mntent; +} + +cfg_if! { + if #[cfg(any(target_arch = "x86", + target_arch = "arm", + target_arch = "m68k", + target_arch = "mips", + target_arch = "powerpc", + target_arch = "sparc", + target_arch = "riscv32"))] { + mod b32; + pub use self::b32::*; + } else if #[cfg(any(target_arch = "x86_64", + target_arch = "aarch64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64", + target_arch = "riscv64", + target_arch = "loongarch64"))] { + mod b64; + pub use self::b64::*; + } else { + // Unknown target_arch + } +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } else { + mod no_align; + pub use self::no_align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/no_align.rs new file mode 100644 index 000000000..e32bf673d --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/no_align.rs @@ -0,0 +1,10 @@ +s! { + // FIXME this is actually a union + pub struct sem_t { + #[cfg(target_pointer_width = "32")] + __size: [::c_char; 16], + #[cfg(target_pointer_width = "64")] + __size: [::c_char; 32], + __align: [::c_long; 0], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/mod.rs new file mode 100644 index 000000000..e52b3d3a8 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/mod.rs @@ -0,0 +1,4921 @@ +//! Linux-specific definitions for linux-like values + +pub type useconds_t = u32; +pub type dev_t = u64; +pub type socklen_t = u32; +pub type mode_t = u32; +pub type ino64_t = u64; +pub type off64_t = i64; +pub type blkcnt64_t = i64; +pub type rlim64_t = u64; +pub type mqd_t = ::c_int; +pub type nfds_t = ::c_ulong; +pub type nl_item = ::c_int; +pub type idtype_t = ::c_uint; +pub type loff_t = ::c_longlong; +pub type pthread_key_t = ::c_uint; +pub type pthread_spinlock_t = ::c_int; + +pub type __u8 = ::c_uchar; +pub type __u16 = ::c_ushort; +pub type __s16 = ::c_short; +pub type __u32 = ::c_uint; +pub type __s32 = ::c_int; + +pub type Elf32_Half = u16; +pub type Elf32_Word = u32; +pub type Elf32_Off = u32; +pub type Elf32_Addr = u32; + +pub type Elf64_Half = u16; +pub type Elf64_Word = u32; +pub type Elf64_Off = u64; +pub type Elf64_Addr = u64; +pub type Elf64_Xword = u64; +pub type Elf64_Sxword = i64; + +pub type Elf32_Section = u16; +pub type Elf64_Section = u16; + +// linux/can.h +pub type canid_t = u32; + +// linux/can/j1939.h +pub type can_err_mask_t = u32; +pub type pgn_t = u32; +pub type priority_t = u8; +pub type name_t = u64; + +pub type iconv_t = *mut ::c_void; + +// linux/sctp.h +pub type sctp_assoc_t = ::__s32; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum fpos64_t {} // FIXME: fill this out with a struct +impl ::Copy for fpos64_t {} +impl ::Clone for fpos64_t { + fn clone(&self) -> fpos64_t { + *self + } +} + +s! { + pub struct glob_t { + pub gl_pathc: ::size_t, + pub gl_pathv: *mut *mut c_char, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + + __unused1: *mut ::c_void, + __unused2: *mut ::c_void, + __unused3: *mut ::c_void, + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + } + + pub struct passwd { + pub pw_name: *mut ::c_char, + pub pw_passwd: *mut ::c_char, + pub pw_uid: ::uid_t, + pub pw_gid: ::gid_t, + pub pw_gecos: *mut ::c_char, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char, + } + + pub struct spwd { + pub sp_namp: *mut ::c_char, + pub sp_pwdp: *mut ::c_char, + pub sp_lstchg: ::c_long, + pub sp_min: ::c_long, + pub sp_max: ::c_long, + pub sp_warn: ::c_long, + pub sp_inact: ::c_long, + pub sp_expire: ::c_long, + pub sp_flag: ::c_ulong, + } + + pub struct dqblk { + pub dqb_bhardlimit: u64, + pub dqb_bsoftlimit: u64, + pub dqb_curspace: u64, + pub dqb_ihardlimit: u64, + pub dqb_isoftlimit: u64, + pub dqb_curinodes: u64, + pub dqb_btime: u64, + pub dqb_itime: u64, + pub dqb_valid: u32, + } + + pub struct signalfd_siginfo { + pub ssi_signo: u32, + pub ssi_errno: i32, + pub ssi_code: i32, + pub ssi_pid: u32, + pub ssi_uid: u32, + pub ssi_fd: i32, + pub ssi_tid: u32, + pub ssi_band: u32, + pub ssi_overrun: u32, + pub ssi_trapno: u32, + pub ssi_status: i32, + pub ssi_int: i32, + pub ssi_ptr: u64, + pub ssi_utime: u64, + pub ssi_stime: u64, + pub ssi_addr: u64, + pub ssi_addr_lsb: u16, + _pad2: u16, + pub ssi_syscall: i32, + pub ssi_call_addr: u64, + pub ssi_arch: u32, + _pad: [u8; 28], + } + + pub struct itimerspec { + pub it_interval: ::timespec, + pub it_value: ::timespec, + } + + pub struct fsid_t { + __val: [::c_int; 2], + } + + pub struct packet_mreq { + pub mr_ifindex: ::c_int, + pub mr_type: ::c_ushort, + pub mr_alen: ::c_ushort, + pub mr_address: [::c_uchar; 8], + } + + pub struct cpu_set_t { + #[cfg(all(target_pointer_width = "32", + not(target_arch = "x86_64")))] + bits: [u32; 32], + #[cfg(not(all(target_pointer_width = "32", + not(target_arch = "x86_64"))))] + bits: [u64; 16], + } + + pub struct if_nameindex { + pub if_index: ::c_uint, + pub if_name: *mut ::c_char, + } + + // System V IPC + pub struct msginfo { + pub msgpool: ::c_int, + pub msgmap: ::c_int, + pub msgmax: ::c_int, + pub msgmnb: ::c_int, + pub msgmni: ::c_int, + pub msgssz: ::c_int, + pub msgtql: ::c_int, + pub msgseg: ::c_ushort, + } + + pub struct sembuf { + pub sem_num: ::c_ushort, + pub sem_op: ::c_short, + pub sem_flg: ::c_short, + } + + pub struct input_event { + pub time: ::timeval, + pub type_: ::__u16, + pub code: ::__u16, + pub value: ::__s32, + } + + pub struct input_id { + pub bustype: ::__u16, + pub vendor: ::__u16, + pub product: ::__u16, + pub version: ::__u16, + } + + pub struct input_absinfo { + pub value: ::__s32, + pub minimum: ::__s32, + pub maximum: ::__s32, + pub fuzz: ::__s32, + pub flat: ::__s32, + pub resolution: ::__s32, + } + + pub struct input_keymap_entry { + pub flags: ::__u8, + pub len: ::__u8, + pub index: ::__u16, + pub keycode: ::__u32, + pub scancode: [::__u8; 32], + } + + pub struct input_mask { + pub type_: ::__u32, + pub codes_size: ::__u32, + pub codes_ptr: ::__u64, + } + + pub struct ff_replay { + pub length: ::__u16, + pub delay: ::__u16, + } + + pub struct ff_trigger { + pub button: ::__u16, + pub interval: ::__u16, + } + + pub struct ff_envelope { + pub attack_length: ::__u16, + pub attack_level: ::__u16, + pub fade_length: ::__u16, + pub fade_level: ::__u16, + } + + pub struct ff_constant_effect { + pub level: ::__s16, + pub envelope: ff_envelope, + } + + pub struct ff_ramp_effect { + pub start_level: ::__s16, + pub end_level: ::__s16, + pub envelope: ff_envelope, + } + + pub struct ff_condition_effect { + pub right_saturation: ::__u16, + pub left_saturation: ::__u16, + + pub right_coeff: ::__s16, + pub left_coeff: ::__s16, + + pub deadband: ::__u16, + pub center: ::__s16, + } + + pub struct ff_periodic_effect { + pub waveform: ::__u16, + pub period: ::__u16, + pub magnitude: ::__s16, + pub offset: ::__s16, + pub phase: ::__u16, + + pub envelope: ff_envelope, + + pub custom_len: ::__u32, + pub custom_data: *mut ::__s16, + } + + pub struct ff_rumble_effect { + pub strong_magnitude: ::__u16, + pub weak_magnitude: ::__u16, + } + + pub struct ff_effect { + pub type_: ::__u16, + pub id: ::__s16, + pub direction: ::__u16, + pub trigger: ff_trigger, + pub replay: ff_replay, + // FIXME this is actually a union + #[cfg(target_pointer_width = "64")] + pub u: [u64; 4], + #[cfg(target_pointer_width = "32")] + pub u: [u32; 7], + } + + pub struct uinput_ff_upload { + pub request_id: ::__u32, + pub retval: ::__s32, + pub effect: ff_effect, + pub old: ff_effect, + } + + pub struct uinput_ff_erase { + pub request_id: ::__u32, + pub retval: ::__s32, + pub effect_id: ::__u32, + } + + pub struct uinput_abs_setup { + pub code: ::__u16, + pub absinfo: input_absinfo, + } + + pub struct dl_phdr_info { + #[cfg(target_pointer_width = "64")] + pub dlpi_addr: Elf64_Addr, + #[cfg(target_pointer_width = "32")] + pub dlpi_addr: Elf32_Addr, + + pub dlpi_name: *const ::c_char, + + #[cfg(target_pointer_width = "64")] + pub dlpi_phdr: *const Elf64_Phdr, + #[cfg(target_pointer_width = "32")] + pub dlpi_phdr: *const Elf32_Phdr, + + #[cfg(target_pointer_width = "64")] + pub dlpi_phnum: Elf64_Half, + #[cfg(target_pointer_width = "32")] + pub dlpi_phnum: Elf32_Half, + + // As of uClibc 1.0.36, the following fields are + // gated behind a "#if 0" block which always evaluates + // to false. So I'm just removing these, and if uClibc changes + // the #if block in the future to include the following fields, these + // will probably need including here. tsidea, skrap + #[cfg(not(target_env = "uclibc"))] + pub dlpi_adds: ::c_ulonglong, + #[cfg(not(target_env = "uclibc"))] + pub dlpi_subs: ::c_ulonglong, + #[cfg(not(target_env = "uclibc"))] + pub dlpi_tls_modid: ::size_t, + #[cfg(not(target_env = "uclibc"))] + pub dlpi_tls_data: *mut ::c_void, + } + + pub struct Elf32_Ehdr { + pub e_ident: [::c_uchar; 16], + pub e_type: Elf32_Half, + pub e_machine: Elf32_Half, + pub e_version: Elf32_Word, + pub e_entry: Elf32_Addr, + pub e_phoff: Elf32_Off, + pub e_shoff: Elf32_Off, + pub e_flags: Elf32_Word, + pub e_ehsize: Elf32_Half, + pub e_phentsize: Elf32_Half, + pub e_phnum: Elf32_Half, + pub e_shentsize: Elf32_Half, + pub e_shnum: Elf32_Half, + pub e_shstrndx: Elf32_Half, + } + + pub struct Elf64_Ehdr { + pub e_ident: [::c_uchar; 16], + pub e_type: Elf64_Half, + pub e_machine: Elf64_Half, + pub e_version: Elf64_Word, + pub e_entry: Elf64_Addr, + pub e_phoff: Elf64_Off, + pub e_shoff: Elf64_Off, + pub e_flags: Elf64_Word, + pub e_ehsize: Elf64_Half, + pub e_phentsize: Elf64_Half, + pub e_phnum: Elf64_Half, + pub e_shentsize: Elf64_Half, + pub e_shnum: Elf64_Half, + pub e_shstrndx: Elf64_Half, + } + + pub struct Elf32_Sym { + pub st_name: Elf32_Word, + pub st_value: Elf32_Addr, + pub st_size: Elf32_Word, + pub st_info: ::c_uchar, + pub st_other: ::c_uchar, + pub st_shndx: Elf32_Section, + } + + pub struct Elf64_Sym { + pub st_name: Elf64_Word, + pub st_info: ::c_uchar, + pub st_other: ::c_uchar, + pub st_shndx: Elf64_Section, + pub st_value: Elf64_Addr, + pub st_size: Elf64_Xword, + } + + pub struct Elf32_Phdr { + pub p_type: Elf32_Word, + pub p_offset: Elf32_Off, + pub p_vaddr: Elf32_Addr, + pub p_paddr: Elf32_Addr, + pub p_filesz: Elf32_Word, + pub p_memsz: Elf32_Word, + pub p_flags: Elf32_Word, + pub p_align: Elf32_Word, + } + + pub struct Elf64_Phdr { + pub p_type: Elf64_Word, + pub p_flags: Elf64_Word, + pub p_offset: Elf64_Off, + pub p_vaddr: Elf64_Addr, + pub p_paddr: Elf64_Addr, + pub p_filesz: Elf64_Xword, + pub p_memsz: Elf64_Xword, + pub p_align: Elf64_Xword, + } + + pub struct Elf32_Shdr { + pub sh_name: Elf32_Word, + pub sh_type: Elf32_Word, + pub sh_flags: Elf32_Word, + pub sh_addr: Elf32_Addr, + pub sh_offset: Elf32_Off, + pub sh_size: Elf32_Word, + pub sh_link: Elf32_Word, + pub sh_info: Elf32_Word, + pub sh_addralign: Elf32_Word, + pub sh_entsize: Elf32_Word, + } + + pub struct Elf64_Shdr { + pub sh_name: Elf64_Word, + pub sh_type: Elf64_Word, + pub sh_flags: Elf64_Xword, + pub sh_addr: Elf64_Addr, + pub sh_offset: Elf64_Off, + pub sh_size: Elf64_Xword, + pub sh_link: Elf64_Word, + pub sh_info: Elf64_Word, + pub sh_addralign: Elf64_Xword, + pub sh_entsize: Elf64_Xword, + } + + pub struct ucred { + pub pid: ::pid_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + } + + pub struct mntent { + pub mnt_fsname: *mut ::c_char, + pub mnt_dir: *mut ::c_char, + pub mnt_type: *mut ::c_char, + pub mnt_opts: *mut ::c_char, + pub mnt_freq: ::c_int, + pub mnt_passno: ::c_int, + } + + pub struct posix_spawn_file_actions_t { + __allocated: ::c_int, + __used: ::c_int, + __actions: *mut ::c_int, + __pad: [::c_int; 16], + } + + pub struct posix_spawnattr_t { + __flags: ::c_short, + __pgrp: ::pid_t, + __sd: ::sigset_t, + __ss: ::sigset_t, + #[cfg(any(target_env = "musl", target_env = "ohos"))] + __prio: ::c_int, + #[cfg(not(any(target_env = "musl", target_env = "ohos")))] + __sp: ::sched_param, + __policy: ::c_int, + __pad: [::c_int; 16], + } + + pub struct genlmsghdr { + pub cmd: u8, + pub version: u8, + pub reserved: u16, + } + + pub struct in6_pktinfo { + pub ipi6_addr: ::in6_addr, + pub ipi6_ifindex: ::c_uint, + } + + pub struct arpd_request { + pub req: ::c_ushort, + pub ip: u32, + pub dev: ::c_ulong, + pub stamp: ::c_ulong, + pub updated: ::c_ulong, + pub ha: [::c_uchar; ::MAX_ADDR_LEN], + } + + pub struct inotify_event { + pub wd: ::c_int, + pub mask: u32, + pub cookie: u32, + pub len: u32 + } + + pub struct fanotify_response { + pub fd: ::c_int, + pub response: __u32, + } + + pub struct sockaddr_vm { + pub svm_family: ::sa_family_t, + pub svm_reserved1: ::c_ushort, + pub svm_port: ::c_uint, + pub svm_cid: ::c_uint, + pub svm_zero: [u8; 4] + } + + pub struct regmatch_t { + pub rm_so: regoff_t, + pub rm_eo: regoff_t, + } + + pub struct sock_extended_err { + pub ee_errno: u32, + pub ee_origin: u8, + pub ee_type: u8, + pub ee_code: u8, + pub ee_pad: u8, + pub ee_info: u32, + pub ee_data: u32, + } + + // linux/can.h + pub struct __c_anonymous_sockaddr_can_tp { + pub rx_id: canid_t, + pub tx_id: canid_t, + } + + pub struct __c_anonymous_sockaddr_can_j1939 { + pub name: u64, + pub pgn: u32, + pub addr: u8, + } + + pub struct can_filter { + pub can_id: canid_t, + pub can_mask: canid_t, + } + + // linux/can/j1939.h + pub struct j1939_filter { + pub name: name_t, + pub name_mask: name_t, + pub pgn: pgn_t, + pub pgn_mask: pgn_t, + pub addr: u8, + pub addr_mask: u8, + } + + // linux/filter.h + pub struct sock_filter { + pub code: ::__u16, + pub jt: ::__u8, + pub jf: ::__u8, + pub k: ::__u32, + } + + pub struct sock_fprog { + pub len: ::c_ushort, + pub filter: *mut sock_filter, + } + + // linux/seccomp.h + pub struct seccomp_data { + pub nr: ::c_int, + pub arch: ::__u32, + pub instruction_pointer: ::__u64, + pub args: [::__u64; 6], + } + + pub struct nlmsghdr { + pub nlmsg_len: u32, + pub nlmsg_type: u16, + pub nlmsg_flags: u16, + pub nlmsg_seq: u32, + pub nlmsg_pid: u32, + } + + pub struct nlmsgerr { + pub error: ::c_int, + pub msg: nlmsghdr, + } + + pub struct nlattr { + pub nla_len: u16, + pub nla_type: u16, + } + + pub struct file_clone_range { + pub src_fd: ::__s64, + pub src_offset: ::__u64, + pub src_length: ::__u64, + pub dest_offset: ::__u64, + } + + pub struct __c_anonymous_ifru_map { + pub mem_start: ::c_ulong, + pub mem_end: ::c_ulong, + pub base_addr: ::c_ushort, + pub irq: ::c_uchar, + pub dma: ::c_uchar, + pub port: ::c_uchar, + } + + pub struct in6_ifreq { + pub ifr6_addr: ::in6_addr, + pub ifr6_prefixlen: u32, + pub ifr6_ifindex: ::c_int, + } + + pub struct option { + pub name: *const ::c_char, + pub has_arg: ::c_int, + pub flag: *mut ::c_int, + pub val: ::c_int, + } + + // linux/sctp.h + + pub struct sctp_initmsg { + pub sinit_num_ostreams: ::__u16, + pub sinit_max_instreams: ::__u16, + pub sinit_max_attempts: ::__u16, + pub sinit_max_init_timeo: ::__u16, + } + + pub struct sctp_sndrcvinfo { + pub sinfo_stream: ::__u16, + pub sinfo_ssn: ::__u16, + pub sinfo_flags: ::__u16, + pub sinfo_ppid: ::__u32, + pub sinfo_context: ::__u32, + pub sinfo_timetolive: ::__u32, + pub sinfo_tsn: ::__u32, + pub sinfo_cumtsn: ::__u32, + pub sinfo_assoc_id: ::sctp_assoc_t, + } + + pub struct sctp_sndinfo { + pub snd_sid: ::__u16, + pub snd_flags: ::__u16, + pub snd_ppid: ::__u32, + pub snd_context: ::__u32, + pub snd_assoc_id: ::sctp_assoc_t, + } + + pub struct sctp_rcvinfo { + pub rcv_sid: ::__u16, + pub rcv_ssn: ::__u16, + pub rcv_flags: ::__u16, + pub rcv_ppid: ::__u32, + pub rcv_tsn: ::__u32, + pub rcv_cumtsn: ::__u32, + pub rcv_context: ::__u32, + pub rcv_assoc_id: ::sctp_assoc_t, + } + + pub struct sctp_nxtinfo { + pub nxt_sid: ::__u16, + pub nxt_flags: ::__u16, + pub nxt_ppid: ::__u32, + pub nxt_length: ::__u32, + pub nxt_assoc_id: ::sctp_assoc_t, + } + + pub struct sctp_prinfo { + pub pr_policy: ::__u16, + pub pr_value: ::__u32, + } + + pub struct sctp_authinfo { + pub auth_keynumber: ::__u16, + } + + pub struct rlimit64 { + pub rlim_cur: rlim64_t, + pub rlim_max: rlim64_t, + } +} + +s_no_extra_traits! { + pub struct sockaddr_nl { + pub nl_family: ::sa_family_t, + nl_pad: ::c_ushort, + pub nl_pid: u32, + pub nl_groups: u32 + } + + pub struct dirent { + pub d_ino: ::ino_t, + pub d_off: ::off_t, + pub d_reclen: ::c_ushort, + pub d_type: ::c_uchar, + pub d_name: [::c_char; 256], + } + + pub struct sockaddr_alg { + pub salg_family: ::sa_family_t, + pub salg_type: [::c_uchar; 14], + pub salg_feat: u32, + pub salg_mask: u32, + pub salg_name: [::c_uchar; 64], + } + + pub struct uinput_setup { + pub id: input_id, + pub name: [::c_char; UINPUT_MAX_NAME_SIZE], + pub ff_effects_max: ::__u32, + } + + pub struct uinput_user_dev { + pub name: [::c_char; UINPUT_MAX_NAME_SIZE], + pub id: input_id, + pub ff_effects_max: ::__u32, + pub absmax: [::__s32; ABS_CNT], + pub absmin: [::__s32; ABS_CNT], + pub absfuzz: [::__s32; ABS_CNT], + pub absflat: [::__s32; ABS_CNT], + } + + /// WARNING: The `PartialEq`, `Eq` and `Hash` implementations of this + /// type are unsound and will be removed in the future. + #[deprecated( + note = "this struct has unsafe trait implementations that will be \ + removed in the future", + since = "0.2.80" + )] + pub struct af_alg_iv { + pub ivlen: u32, + pub iv: [::c_uchar; 0], + } + + // x32 compatibility + // See https://sourceware.org/bugzilla/show_bug.cgi?id=21279 + pub struct mq_attr { + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub mq_flags: i64, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub mq_maxmsg: i64, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub mq_msgsize: i64, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub mq_curmsgs: i64, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pad: [i64; 4], + + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub mq_flags: ::c_long, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub mq_maxmsg: ::c_long, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub mq_msgsize: ::c_long, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub mq_curmsgs: ::c_long, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pad: [::c_long; 4], + } + + #[cfg(libc_union)] + pub union __c_anonymous_ifr_ifru { + pub ifru_addr: ::sockaddr, + pub ifru_dstaddr: ::sockaddr, + pub ifru_broadaddr: ::sockaddr, + pub ifru_netmask: ::sockaddr, + pub ifru_hwaddr: ::sockaddr, + pub ifru_flags: ::c_short, + pub ifru_ifindex: ::c_int, + pub ifru_metric: ::c_int, + pub ifru_mtu: ::c_int, + pub ifru_map: __c_anonymous_ifru_map, + pub ifru_slave: [::c_char; ::IFNAMSIZ], + pub ifru_newname: [::c_char; ::IFNAMSIZ], + pub ifru_data: *mut ::c_char, + } + + pub struct ifreq { + /// interface name, e.g. "en0" + pub ifr_name: [::c_char; ::IFNAMSIZ], + #[cfg(libc_union)] + pub ifr_ifru: __c_anonymous_ifr_ifru, + #[cfg(not(libc_union))] + pub ifr_ifru: ::sockaddr, + } + + pub struct hwtstamp_config { + pub flags: ::c_int, + pub tx_type: ::c_int, + pub rx_filter: ::c_int, + } + + pub struct dirent64 { + pub d_ino: ::ino64_t, + pub d_off: ::off64_t, + pub d_reclen: ::c_ushort, + pub d_type: ::c_uchar, + pub d_name: [::c_char; 256], + } +} + +s_no_extra_traits! { + // linux/net_tstamp.h + #[allow(missing_debug_implementations)] + pub struct sock_txtime { + pub clockid: ::clockid_t, + pub flags: ::__u32, + } +} + +cfg_if! { + if #[cfg(libc_union)] { + s_no_extra_traits! { + // linux/can.h + #[allow(missing_debug_implementations)] + pub union __c_anonymous_sockaddr_can_can_addr { + pub tp: __c_anonymous_sockaddr_can_tp, + pub j1939: __c_anonymous_sockaddr_can_j1939, + } + + #[allow(missing_debug_implementations)] + pub struct sockaddr_can { + pub can_family: ::sa_family_t, + pub can_ifindex: ::c_int, + pub can_addr: __c_anonymous_sockaddr_can_can_addr, + } + } + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for sockaddr_nl { + fn eq(&self, other: &sockaddr_nl) -> bool { + self.nl_family == other.nl_family && + self.nl_pid == other.nl_pid && + self.nl_groups == other.nl_groups + } + } + impl Eq for sockaddr_nl {} + impl ::fmt::Debug for sockaddr_nl { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_nl") + .field("nl_family", &self.nl_family) + .field("nl_pid", &self.nl_pid) + .field("nl_groups", &self.nl_groups) + .finish() + } + } + impl ::hash::Hash for sockaddr_nl { + fn hash(&self, state: &mut H) { + self.nl_family.hash(state); + self.nl_pid.hash(state); + self.nl_groups.hash(state); + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_ino == other.d_ino + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for dirent {} + + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_ino", &self.d_ino) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_ino.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for dirent64 { + fn eq(&self, other: &dirent64) -> bool { + self.d_ino == other.d_ino + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for dirent64 {} + + impl ::fmt::Debug for dirent64 { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent64") + .field("d_ino", &self.d_ino) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + + impl ::hash::Hash for dirent64 { + fn hash(&self, state: &mut H) { + self.d_ino.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for pthread_cond_t { + fn eq(&self, other: &pthread_cond_t) -> bool { + self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b) + } + } + + impl Eq for pthread_cond_t {} + + impl ::fmt::Debug for pthread_cond_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_cond_t") + // FIXME: .field("size", &self.size) + .finish() + } + } + + impl ::hash::Hash for pthread_cond_t { + fn hash(&self, state: &mut H) { + self.size.hash(state); + } + } + + impl PartialEq for pthread_mutex_t { + fn eq(&self, other: &pthread_mutex_t) -> bool { + self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b) + } + } + + impl Eq for pthread_mutex_t {} + + impl ::fmt::Debug for pthread_mutex_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_mutex_t") + // FIXME: .field("size", &self.size) + .finish() + } + } + + impl ::hash::Hash for pthread_mutex_t { + fn hash(&self, state: &mut H) { + self.size.hash(state); + } + } + + impl PartialEq for pthread_rwlock_t { + fn eq(&self, other: &pthread_rwlock_t) -> bool { + self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b) + } + } + + impl Eq for pthread_rwlock_t {} + + impl ::fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_rwlock_t") + // FIXME: .field("size", &self.size) + .finish() + } + } + + impl ::hash::Hash for pthread_rwlock_t { + fn hash(&self, state: &mut H) { + self.size.hash(state); + } + } + + impl PartialEq for pthread_barrier_t { + fn eq(&self, other: &pthread_barrier_t) -> bool { + self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b) + } + } + + impl Eq for pthread_barrier_t {} + + impl ::fmt::Debug for pthread_barrier_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_barrier_t") + .field("size", &self.size) + .finish() + } + } + + impl ::hash::Hash for pthread_barrier_t { + fn hash(&self, state: &mut H) { + self.size.hash(state); + } + } + + impl PartialEq for sockaddr_alg { + fn eq(&self, other: &sockaddr_alg) -> bool { + self.salg_family == other.salg_family + && self + .salg_type + .iter() + .zip(other.salg_type.iter()) + .all(|(a, b)| a == b) + && self.salg_feat == other.salg_feat + && self.salg_mask == other.salg_mask + && self + .salg_name + .iter() + .zip(other.salg_name.iter()) + .all(|(a, b)| a == b) + } + } + + impl Eq for sockaddr_alg {} + + impl ::fmt::Debug for sockaddr_alg { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_alg") + .field("salg_family", &self.salg_family) + .field("salg_type", &self.salg_type) + .field("salg_feat", &self.salg_feat) + .field("salg_mask", &self.salg_mask) + .field("salg_name", &&self.salg_name[..]) + .finish() + } + } + + impl ::hash::Hash for sockaddr_alg { + fn hash(&self, state: &mut H) { + self.salg_family.hash(state); + self.salg_type.hash(state); + self.salg_feat.hash(state); + self.salg_mask.hash(state); + self.salg_name.hash(state); + } + } + + impl PartialEq for uinput_setup { + fn eq(&self, other: &uinput_setup) -> bool { + self.id == other.id + && self.name[..] == other.name[..] + && self.ff_effects_max == other.ff_effects_max + } + } + impl Eq for uinput_setup {} + + impl ::fmt::Debug for uinput_setup { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uinput_setup") + .field("id", &self.id) + .field("name", &&self.name[..]) + .field("ff_effects_max", &self.ff_effects_max) + .finish() + } + } + + impl ::hash::Hash for uinput_setup { + fn hash(&self, state: &mut H) { + self.id.hash(state); + self.name.hash(state); + self.ff_effects_max.hash(state); + } + } + + impl PartialEq for uinput_user_dev { + fn eq(&self, other: &uinput_user_dev) -> bool { + self.name[..] == other.name[..] + && self.id == other.id + && self.ff_effects_max == other.ff_effects_max + && self.absmax[..] == other.absmax[..] + && self.absmin[..] == other.absmin[..] + && self.absfuzz[..] == other.absfuzz[..] + && self.absflat[..] == other.absflat[..] + } + } + impl Eq for uinput_user_dev {} + + impl ::fmt::Debug for uinput_user_dev { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("uinput_setup") + .field("name", &&self.name[..]) + .field("id", &self.id) + .field("ff_effects_max", &self.ff_effects_max) + .field("absmax", &&self.absmax[..]) + .field("absmin", &&self.absmin[..]) + .field("absfuzz", &&self.absfuzz[..]) + .field("absflat", &&self.absflat[..]) + .finish() + } + } + + impl ::hash::Hash for uinput_user_dev { + fn hash(&self, state: &mut H) { + self.name.hash(state); + self.id.hash(state); + self.ff_effects_max.hash(state); + self.absmax.hash(state); + self.absmin.hash(state); + self.absfuzz.hash(state); + self.absflat.hash(state); + } + } + + #[allow(deprecated)] + impl af_alg_iv { + fn as_slice(&self) -> &[u8] { + unsafe { + ::core::slice::from_raw_parts( + self.iv.as_ptr(), + self.ivlen as usize + ) + } + } + } + + #[allow(deprecated)] + impl PartialEq for af_alg_iv { + fn eq(&self, other: &af_alg_iv) -> bool { + *self.as_slice() == *other.as_slice() + } + } + + #[allow(deprecated)] + impl Eq for af_alg_iv {} + + #[allow(deprecated)] + impl ::fmt::Debug for af_alg_iv { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("af_alg_iv") + .field("ivlen", &self.ivlen) + .finish() + } + } + + #[allow(deprecated)] + impl ::hash::Hash for af_alg_iv { + fn hash(&self, state: &mut H) { + self.as_slice().hash(state); + } + } + + impl PartialEq for mq_attr { + fn eq(&self, other: &mq_attr) -> bool { + self.mq_flags == other.mq_flags && + self.mq_maxmsg == other.mq_maxmsg && + self.mq_msgsize == other.mq_msgsize && + self.mq_curmsgs == other.mq_curmsgs + } + } + impl Eq for mq_attr {} + impl ::fmt::Debug for mq_attr { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mq_attr") + .field("mq_flags", &self.mq_flags) + .field("mq_maxmsg", &self.mq_maxmsg) + .field("mq_msgsize", &self.mq_msgsize) + .field("mq_curmsgs", &self.mq_curmsgs) + .finish() + } + } + impl ::hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { + self.mq_flags.hash(state); + self.mq_maxmsg.hash(state); + self.mq_msgsize.hash(state); + self.mq_curmsgs.hash(state); + } + } + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ifr_ifru { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifr_ifru") + .field("ifru_addr", unsafe { &self.ifru_addr }) + .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) + .field("ifru_broadaddr", unsafe { &self.ifru_broadaddr }) + .field("ifru_netmask", unsafe { &self.ifru_netmask }) + .field("ifru_hwaddr", unsafe { &self.ifru_hwaddr }) + .field("ifru_flags", unsafe { &self.ifru_flags }) + .field("ifru_ifindex", unsafe { &self.ifru_ifindex }) + .field("ifru_metric", unsafe { &self.ifru_metric }) + .field("ifru_mtu", unsafe { &self.ifru_mtu }) + .field("ifru_map", unsafe { &self.ifru_map }) + .field("ifru_slave", unsafe { &self.ifru_slave }) + .field("ifru_newname", unsafe { &self.ifru_newname }) + .field("ifru_data", unsafe { &self.ifru_data }) + .finish() + } + } + impl ::fmt::Debug for ifreq { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifreq") + .field("ifr_name", &self.ifr_name) + .field("ifr_ifru", &self.ifr_ifru) + .finish() + } + } + + impl ::fmt::Debug for hwtstamp_config { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("hwtstamp_config") + .field("flags", &self.flags) + .field("tx_type", &self.tx_type) + .field("rx_filter", &self.rx_filter) + .finish() + } + } + impl PartialEq for hwtstamp_config { + fn eq(&self, other: &hwtstamp_config) -> bool { + self.flags == other.flags && + self.tx_type == other.tx_type && + self.rx_filter == other.rx_filter + } + } + impl Eq for hwtstamp_config {} + impl ::hash::Hash for hwtstamp_config { + fn hash(&self, state: &mut H) { + self.flags.hash(state); + self.tx_type.hash(state); + self.rx_filter.hash(state); + } + } + } +} + +cfg_if! { + if #[cfg(any(target_env = "gnu", target_env = "musl", target_env = "ohos"))] { + pub const ABDAY_1: ::nl_item = 0x20000; + pub const ABDAY_2: ::nl_item = 0x20001; + pub const ABDAY_3: ::nl_item = 0x20002; + pub const ABDAY_4: ::nl_item = 0x20003; + pub const ABDAY_5: ::nl_item = 0x20004; + pub const ABDAY_6: ::nl_item = 0x20005; + pub const ABDAY_7: ::nl_item = 0x20006; + + pub const DAY_1: ::nl_item = 0x20007; + pub const DAY_2: ::nl_item = 0x20008; + pub const DAY_3: ::nl_item = 0x20009; + pub const DAY_4: ::nl_item = 0x2000A; + pub const DAY_5: ::nl_item = 0x2000B; + pub const DAY_6: ::nl_item = 0x2000C; + pub const DAY_7: ::nl_item = 0x2000D; + + pub const ABMON_1: ::nl_item = 0x2000E; + pub const ABMON_2: ::nl_item = 0x2000F; + pub const ABMON_3: ::nl_item = 0x20010; + pub const ABMON_4: ::nl_item = 0x20011; + pub const ABMON_5: ::nl_item = 0x20012; + pub const ABMON_6: ::nl_item = 0x20013; + pub const ABMON_7: ::nl_item = 0x20014; + pub const ABMON_8: ::nl_item = 0x20015; + pub const ABMON_9: ::nl_item = 0x20016; + pub const ABMON_10: ::nl_item = 0x20017; + pub const ABMON_11: ::nl_item = 0x20018; + pub const ABMON_12: ::nl_item = 0x20019; + + pub const MON_1: ::nl_item = 0x2001A; + pub const MON_2: ::nl_item = 0x2001B; + pub const MON_3: ::nl_item = 0x2001C; + pub const MON_4: ::nl_item = 0x2001D; + pub const MON_5: ::nl_item = 0x2001E; + pub const MON_6: ::nl_item = 0x2001F; + pub const MON_7: ::nl_item = 0x20020; + pub const MON_8: ::nl_item = 0x20021; + pub const MON_9: ::nl_item = 0x20022; + pub const MON_10: ::nl_item = 0x20023; + pub const MON_11: ::nl_item = 0x20024; + pub const MON_12: ::nl_item = 0x20025; + + pub const AM_STR: ::nl_item = 0x20026; + pub const PM_STR: ::nl_item = 0x20027; + + pub const D_T_FMT: ::nl_item = 0x20028; + pub const D_FMT: ::nl_item = 0x20029; + pub const T_FMT: ::nl_item = 0x2002A; + pub const T_FMT_AMPM: ::nl_item = 0x2002B; + + pub const ERA: ::nl_item = 0x2002C; + pub const ERA_D_FMT: ::nl_item = 0x2002E; + pub const ALT_DIGITS: ::nl_item = 0x2002F; + pub const ERA_D_T_FMT: ::nl_item = 0x20030; + pub const ERA_T_FMT: ::nl_item = 0x20031; + + pub const CODESET: ::nl_item = 14; + pub const CRNCYSTR: ::nl_item = 0x4000F; + pub const RADIXCHAR: ::nl_item = 0x10000; + pub const THOUSEP: ::nl_item = 0x10001; + pub const YESEXPR: ::nl_item = 0x50000; + pub const NOEXPR: ::nl_item = 0x50001; + pub const YESSTR: ::nl_item = 0x50002; + pub const NOSTR: ::nl_item = 0x50003; + } +} + +pub const RUSAGE_CHILDREN: ::c_int = -1; +pub const L_tmpnam: ::c_uint = 20; +pub const _PC_LINK_MAX: ::c_int = 0; +pub const _PC_MAX_CANON: ::c_int = 1; +pub const _PC_MAX_INPUT: ::c_int = 2; +pub const _PC_NAME_MAX: ::c_int = 3; +pub const _PC_PATH_MAX: ::c_int = 4; +pub const _PC_PIPE_BUF: ::c_int = 5; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; +pub const _PC_NO_TRUNC: ::c_int = 7; +pub const _PC_VDISABLE: ::c_int = 8; +pub const _PC_SYNC_IO: ::c_int = 9; +pub const _PC_ASYNC_IO: ::c_int = 10; +pub const _PC_PRIO_IO: ::c_int = 11; +pub const _PC_SOCK_MAXBUF: ::c_int = 12; +pub const _PC_FILESIZEBITS: ::c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; +pub const _PC_REC_XFER_ALIGN: ::c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; +pub const _PC_SYMLINK_MAX: ::c_int = 19; +pub const _PC_2_SYMLINKS: ::c_int = 20; + +pub const MS_NOUSER: ::c_ulong = 0xffffffff80000000; + +pub const _SC_ARG_MAX: ::c_int = 0; +pub const _SC_CHILD_MAX: ::c_int = 1; +pub const _SC_CLK_TCK: ::c_int = 2; +pub const _SC_NGROUPS_MAX: ::c_int = 3; +pub const _SC_OPEN_MAX: ::c_int = 4; +pub const _SC_STREAM_MAX: ::c_int = 5; +pub const _SC_TZNAME_MAX: ::c_int = 6; +pub const _SC_JOB_CONTROL: ::c_int = 7; +pub const _SC_SAVED_IDS: ::c_int = 8; +pub const _SC_REALTIME_SIGNALS: ::c_int = 9; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 10; +pub const _SC_TIMERS: ::c_int = 11; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 12; +pub const _SC_PRIORITIZED_IO: ::c_int = 13; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 14; +pub const _SC_FSYNC: ::c_int = 15; +pub const _SC_MAPPED_FILES: ::c_int = 16; +pub const _SC_MEMLOCK: ::c_int = 17; +pub const _SC_MEMLOCK_RANGE: ::c_int = 18; +pub const _SC_MEMORY_PROTECTION: ::c_int = 19; +pub const _SC_MESSAGE_PASSING: ::c_int = 20; +pub const _SC_SEMAPHORES: ::c_int = 21; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 22; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 23; +pub const _SC_AIO_MAX: ::c_int = 24; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 25; +pub const _SC_DELAYTIMER_MAX: ::c_int = 26; +pub const _SC_MQ_OPEN_MAX: ::c_int = 27; +pub const _SC_MQ_PRIO_MAX: ::c_int = 28; +pub const _SC_VERSION: ::c_int = 29; +pub const _SC_PAGESIZE: ::c_int = 30; +pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; +pub const _SC_RTSIG_MAX: ::c_int = 31; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 32; +pub const _SC_SEM_VALUE_MAX: ::c_int = 33; +pub const _SC_SIGQUEUE_MAX: ::c_int = 34; +pub const _SC_TIMER_MAX: ::c_int = 35; +pub const _SC_BC_BASE_MAX: ::c_int = 36; +pub const _SC_BC_DIM_MAX: ::c_int = 37; +pub const _SC_BC_SCALE_MAX: ::c_int = 38; +pub const _SC_BC_STRING_MAX: ::c_int = 39; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 40; +pub const _SC_EXPR_NEST_MAX: ::c_int = 42; +pub const _SC_LINE_MAX: ::c_int = 43; +pub const _SC_RE_DUP_MAX: ::c_int = 44; +pub const _SC_2_VERSION: ::c_int = 46; +pub const _SC_2_C_BIND: ::c_int = 47; +pub const _SC_2_C_DEV: ::c_int = 48; +pub const _SC_2_FORT_DEV: ::c_int = 49; +pub const _SC_2_FORT_RUN: ::c_int = 50; +pub const _SC_2_SW_DEV: ::c_int = 51; +pub const _SC_2_LOCALEDEF: ::c_int = 52; +pub const _SC_UIO_MAXIOV: ::c_int = 60; +pub const _SC_IOV_MAX: ::c_int = 60; +pub const _SC_THREADS: ::c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 68; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 69; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 70; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; +pub const _SC_TTY_NAME_MAX: ::c_int = 72; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 73; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 74; +pub const _SC_THREAD_STACK_MIN: ::c_int = 75; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 82; +pub const _SC_NPROCESSORS_CONF: ::c_int = 83; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 84; +pub const _SC_PHYS_PAGES: ::c_int = 85; +pub const _SC_AVPHYS_PAGES: ::c_int = 86; +pub const _SC_ATEXIT_MAX: ::c_int = 87; +pub const _SC_PASS_MAX: ::c_int = 88; +pub const _SC_XOPEN_VERSION: ::c_int = 89; +pub const _SC_XOPEN_XCU_VERSION: ::c_int = 90; +pub const _SC_XOPEN_UNIX: ::c_int = 91; +pub const _SC_XOPEN_CRYPT: ::c_int = 92; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 93; +pub const _SC_XOPEN_SHM: ::c_int = 94; +pub const _SC_2_CHAR_TERM: ::c_int = 95; +pub const _SC_2_UPE: ::c_int = 97; +pub const _SC_XOPEN_XPG2: ::c_int = 98; +pub const _SC_XOPEN_XPG3: ::c_int = 99; +pub const _SC_XOPEN_XPG4: ::c_int = 100; +pub const _SC_NZERO: ::c_int = 109; +pub const _SC_XBS5_ILP32_OFF32: ::c_int = 125; +pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 126; +pub const _SC_XBS5_LP64_OFF64: ::c_int = 127; +pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 128; +pub const _SC_XOPEN_LEGACY: ::c_int = 129; +pub const _SC_XOPEN_REALTIME: ::c_int = 130; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 131; +pub const _SC_ADVISORY_INFO: ::c_int = 132; +pub const _SC_BARRIERS: ::c_int = 133; +pub const _SC_CLOCK_SELECTION: ::c_int = 137; +pub const _SC_CPUTIME: ::c_int = 138; +pub const _SC_THREAD_CPUTIME: ::c_int = 139; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 149; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 153; +pub const _SC_SPIN_LOCKS: ::c_int = 154; +pub const _SC_REGEXP: ::c_int = 155; +pub const _SC_SHELL: ::c_int = 157; +pub const _SC_SPAWN: ::c_int = 159; +pub const _SC_SPORADIC_SERVER: ::c_int = 160; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 161; +pub const _SC_TIMEOUTS: ::c_int = 164; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 165; +pub const _SC_2_PBS: ::c_int = 168; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 169; +pub const _SC_2_PBS_LOCATE: ::c_int = 170; +pub const _SC_2_PBS_MESSAGE: ::c_int = 171; +pub const _SC_2_PBS_TRACK: ::c_int = 172; +pub const _SC_SYMLOOP_MAX: ::c_int = 173; +pub const _SC_STREAMS: ::c_int = 174; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 175; +pub const _SC_V6_ILP32_OFF32: ::c_int = 176; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 177; +pub const _SC_V6_LP64_OFF64: ::c_int = 178; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 179; +pub const _SC_HOST_NAME_MAX: ::c_int = 180; +pub const _SC_TRACE: ::c_int = 181; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 182; +pub const _SC_TRACE_INHERIT: ::c_int = 183; +pub const _SC_TRACE_LOG: ::c_int = 184; +pub const _SC_IPV6: ::c_int = 235; +pub const _SC_RAW_SOCKETS: ::c_int = 236; +pub const _SC_V7_ILP32_OFF32: ::c_int = 237; +pub const _SC_V7_ILP32_OFFBIG: ::c_int = 238; +pub const _SC_V7_LP64_OFF64: ::c_int = 239; +pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 240; +pub const _SC_SS_REPL_MAX: ::c_int = 241; +pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 242; +pub const _SC_TRACE_NAME_MAX: ::c_int = 243; +pub const _SC_TRACE_SYS_MAX: ::c_int = 244; +pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 245; +pub const _SC_XOPEN_STREAMS: ::c_int = 246; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248; + +pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY; +pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY; + +// elf.h - Fields in the e_ident array. +pub const EI_NIDENT: usize = 16; + +pub const EI_MAG0: usize = 0; +pub const ELFMAG0: u8 = 0x7f; +pub const EI_MAG1: usize = 1; +pub const ELFMAG1: u8 = b'E'; +pub const EI_MAG2: usize = 2; +pub const ELFMAG2: u8 = b'L'; +pub const EI_MAG3: usize = 3; +pub const ELFMAG3: u8 = b'F'; +pub const SELFMAG: usize = 4; + +pub const EI_CLASS: usize = 4; +pub const ELFCLASSNONE: u8 = 0; +pub const ELFCLASS32: u8 = 1; +pub const ELFCLASS64: u8 = 2; +pub const ELFCLASSNUM: usize = 3; + +pub const EI_DATA: usize = 5; +pub const ELFDATANONE: u8 = 0; +pub const ELFDATA2LSB: u8 = 1; +pub const ELFDATA2MSB: u8 = 2; +pub const ELFDATANUM: usize = 3; + +pub const EI_VERSION: usize = 6; + +pub const EI_OSABI: usize = 7; +pub const ELFOSABI_NONE: u8 = 0; +pub const ELFOSABI_SYSV: u8 = 0; +pub const ELFOSABI_HPUX: u8 = 1; +pub const ELFOSABI_NETBSD: u8 = 2; +pub const ELFOSABI_GNU: u8 = 3; +pub const ELFOSABI_LINUX: u8 = ELFOSABI_GNU; +pub const ELFOSABI_SOLARIS: u8 = 6; +pub const ELFOSABI_AIX: u8 = 7; +pub const ELFOSABI_IRIX: u8 = 8; +pub const ELFOSABI_FREEBSD: u8 = 9; +pub const ELFOSABI_TRU64: u8 = 10; +pub const ELFOSABI_MODESTO: u8 = 11; +pub const ELFOSABI_OPENBSD: u8 = 12; +pub const ELFOSABI_ARM: u8 = 97; +pub const ELFOSABI_STANDALONE: u8 = 255; + +pub const EI_ABIVERSION: usize = 8; + +pub const EI_PAD: usize = 9; + +// elf.h - Legal values for e_type (object file type). +pub const ET_NONE: u16 = 0; +pub const ET_REL: u16 = 1; +pub const ET_EXEC: u16 = 2; +pub const ET_DYN: u16 = 3; +pub const ET_CORE: u16 = 4; +pub const ET_NUM: u16 = 5; +pub const ET_LOOS: u16 = 0xfe00; +pub const ET_HIOS: u16 = 0xfeff; +pub const ET_LOPROC: u16 = 0xff00; +pub const ET_HIPROC: u16 = 0xffff; + +// elf.h - Legal values for e_machine (architecture). +pub const EM_NONE: u16 = 0; +pub const EM_M32: u16 = 1; +pub const EM_SPARC: u16 = 2; +pub const EM_386: u16 = 3; +pub const EM_68K: u16 = 4; +pub const EM_88K: u16 = 5; +pub const EM_860: u16 = 7; +pub const EM_MIPS: u16 = 8; +pub const EM_S370: u16 = 9; +pub const EM_MIPS_RS3_LE: u16 = 10; +pub const EM_PARISC: u16 = 15; +pub const EM_VPP500: u16 = 17; +pub const EM_SPARC32PLUS: u16 = 18; +pub const EM_960: u16 = 19; +pub const EM_PPC: u16 = 20; +pub const EM_PPC64: u16 = 21; +pub const EM_S390: u16 = 22; +pub const EM_V800: u16 = 36; +pub const EM_FR20: u16 = 37; +pub const EM_RH32: u16 = 38; +pub const EM_RCE: u16 = 39; +pub const EM_ARM: u16 = 40; +pub const EM_FAKE_ALPHA: u16 = 41; +pub const EM_SH: u16 = 42; +pub const EM_SPARCV9: u16 = 43; +pub const EM_TRICORE: u16 = 44; +pub const EM_ARC: u16 = 45; +pub const EM_H8_300: u16 = 46; +pub const EM_H8_300H: u16 = 47; +pub const EM_H8S: u16 = 48; +pub const EM_H8_500: u16 = 49; +pub const EM_IA_64: u16 = 50; +pub const EM_MIPS_X: u16 = 51; +pub const EM_COLDFIRE: u16 = 52; +pub const EM_68HC12: u16 = 53; +pub const EM_MMA: u16 = 54; +pub const EM_PCP: u16 = 55; +pub const EM_NCPU: u16 = 56; +pub const EM_NDR1: u16 = 57; +pub const EM_STARCORE: u16 = 58; +pub const EM_ME16: u16 = 59; +pub const EM_ST100: u16 = 60; +pub const EM_TINYJ: u16 = 61; +pub const EM_X86_64: u16 = 62; +pub const EM_PDSP: u16 = 63; +pub const EM_FX66: u16 = 66; +pub const EM_ST9PLUS: u16 = 67; +pub const EM_ST7: u16 = 68; +pub const EM_68HC16: u16 = 69; +pub const EM_68HC11: u16 = 70; +pub const EM_68HC08: u16 = 71; +pub const EM_68HC05: u16 = 72; +pub const EM_SVX: u16 = 73; +pub const EM_ST19: u16 = 74; +pub const EM_VAX: u16 = 75; +pub const EM_CRIS: u16 = 76; +pub const EM_JAVELIN: u16 = 77; +pub const EM_FIREPATH: u16 = 78; +pub const EM_ZSP: u16 = 79; +pub const EM_MMIX: u16 = 80; +pub const EM_HUANY: u16 = 81; +pub const EM_PRISM: u16 = 82; +pub const EM_AVR: u16 = 83; +pub const EM_FR30: u16 = 84; +pub const EM_D10V: u16 = 85; +pub const EM_D30V: u16 = 86; +pub const EM_V850: u16 = 87; +pub const EM_M32R: u16 = 88; +pub const EM_MN10300: u16 = 89; +pub const EM_MN10200: u16 = 90; +pub const EM_PJ: u16 = 91; +pub const EM_OPENRISC: u16 = 92; +pub const EM_ARC_A5: u16 = 93; +pub const EM_XTENSA: u16 = 94; +pub const EM_AARCH64: u16 = 183; +pub const EM_TILEPRO: u16 = 188; +pub const EM_TILEGX: u16 = 191; +pub const EM_ALPHA: u16 = 0x9026; + +// elf.h - Legal values for e_version (version). +pub const EV_NONE: u32 = 0; +pub const EV_CURRENT: u32 = 1; +pub const EV_NUM: u32 = 2; + +// elf.h - Legal values for p_type (segment type). +pub const PT_NULL: u32 = 0; +pub const PT_LOAD: u32 = 1; +pub const PT_DYNAMIC: u32 = 2; +pub const PT_INTERP: u32 = 3; +pub const PT_NOTE: u32 = 4; +pub const PT_SHLIB: u32 = 5; +pub const PT_PHDR: u32 = 6; +pub const PT_TLS: u32 = 7; +pub const PT_NUM: u32 = 8; +pub const PT_LOOS: u32 = 0x60000000; +pub const PT_GNU_EH_FRAME: u32 = 0x6474e550; +pub const PT_GNU_STACK: u32 = 0x6474e551; +pub const PT_GNU_RELRO: u32 = 0x6474e552; +pub const PT_LOSUNW: u32 = 0x6ffffffa; +pub const PT_SUNWBSS: u32 = 0x6ffffffa; +pub const PT_SUNWSTACK: u32 = 0x6ffffffb; +pub const PT_HISUNW: u32 = 0x6fffffff; +pub const PT_HIOS: u32 = 0x6fffffff; +pub const PT_LOPROC: u32 = 0x70000000; +pub const PT_HIPROC: u32 = 0x7fffffff; + +// Legal values for p_flags (segment flags). +pub const PF_X: u32 = 1 << 0; +pub const PF_W: u32 = 1 << 1; +pub const PF_R: u32 = 1 << 2; +pub const PF_MASKOS: u32 = 0x0ff00000; +pub const PF_MASKPROC: u32 = 0xf0000000; + +// elf.h - Legal values for a_type (entry type). +pub const AT_NULL: ::c_ulong = 0; +pub const AT_IGNORE: ::c_ulong = 1; +pub const AT_EXECFD: ::c_ulong = 2; +pub const AT_PHDR: ::c_ulong = 3; +pub const AT_PHENT: ::c_ulong = 4; +pub const AT_PHNUM: ::c_ulong = 5; +pub const AT_PAGESZ: ::c_ulong = 6; +pub const AT_BASE: ::c_ulong = 7; +pub const AT_FLAGS: ::c_ulong = 8; +pub const AT_ENTRY: ::c_ulong = 9; +pub const AT_NOTELF: ::c_ulong = 10; +pub const AT_UID: ::c_ulong = 11; +pub const AT_EUID: ::c_ulong = 12; +pub const AT_GID: ::c_ulong = 13; +pub const AT_EGID: ::c_ulong = 14; +pub const AT_PLATFORM: ::c_ulong = 15; +pub const AT_HWCAP: ::c_ulong = 16; +pub const AT_CLKTCK: ::c_ulong = 17; + +pub const AT_SECURE: ::c_ulong = 23; +pub const AT_BASE_PLATFORM: ::c_ulong = 24; +pub const AT_RANDOM: ::c_ulong = 25; +pub const AT_HWCAP2: ::c_ulong = 26; + +pub const AT_EXECFN: ::c_ulong = 31; + +// defined in arch//include/uapi/asm/auxvec.h but has the same value +// wherever it is defined. +pub const AT_SYSINFO_EHDR: ::c_ulong = 33; + +pub const GLOB_ERR: ::c_int = 1 << 0; +pub const GLOB_MARK: ::c_int = 1 << 1; +pub const GLOB_NOSORT: ::c_int = 1 << 2; +pub const GLOB_DOOFFS: ::c_int = 1 << 3; +pub const GLOB_NOCHECK: ::c_int = 1 << 4; +pub const GLOB_APPEND: ::c_int = 1 << 5; +pub const GLOB_NOESCAPE: ::c_int = 1 << 6; + +pub const GLOB_NOSPACE: ::c_int = 1; +pub const GLOB_ABORTED: ::c_int = 2; +pub const GLOB_NOMATCH: ::c_int = 3; + +pub const POSIX_MADV_NORMAL: ::c_int = 0; +pub const POSIX_MADV_RANDOM: ::c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_MADV_WILLNEED: ::c_int = 3; +pub const POSIX_SPAWN_USEVFORK: ::c_int = 64; +pub const POSIX_SPAWN_SETSID: ::c_int = 128; + +pub const S_IEXEC: mode_t = 64; +pub const S_IWRITE: mode_t = 128; +pub const S_IREAD: mode_t = 256; + +pub const F_LOCK: ::c_int = 1; +pub const F_TEST: ::c_int = 3; +pub const F_TLOCK: ::c_int = 2; +pub const F_ULOCK: ::c_int = 0; + +pub const F_SEAL_FUTURE_WRITE: ::c_int = 0x0010; + +pub const IFF_LOWER_UP: ::c_int = 0x10000; +pub const IFF_DORMANT: ::c_int = 0x20000; +pub const IFF_ECHO: ::c_int = 0x40000; + +// linux/if_addr.h +pub const IFA_UNSPEC: ::c_ushort = 0; +pub const IFA_ADDRESS: ::c_ushort = 1; +pub const IFA_LOCAL: ::c_ushort = 2; +pub const IFA_LABEL: ::c_ushort = 3; +pub const IFA_BROADCAST: ::c_ushort = 4; +pub const IFA_ANYCAST: ::c_ushort = 5; +pub const IFA_CACHEINFO: ::c_ushort = 6; +pub const IFA_MULTICAST: ::c_ushort = 7; + +pub const IFA_F_SECONDARY: u32 = 0x01; +pub const IFA_F_TEMPORARY: u32 = 0x01; +pub const IFA_F_NODAD: u32 = 0x02; +pub const IFA_F_OPTIMISTIC: u32 = 0x04; +pub const IFA_F_DADFAILED: u32 = 0x08; +pub const IFA_F_HOMEADDRESS: u32 = 0x10; +pub const IFA_F_DEPRECATED: u32 = 0x20; +pub const IFA_F_TENTATIVE: u32 = 0x40; +pub const IFA_F_PERMANENT: u32 = 0x80; + +// linux/if_link.h +pub const IFLA_UNSPEC: ::c_ushort = 0; +pub const IFLA_ADDRESS: ::c_ushort = 1; +pub const IFLA_BROADCAST: ::c_ushort = 2; +pub const IFLA_IFNAME: ::c_ushort = 3; +pub const IFLA_MTU: ::c_ushort = 4; +pub const IFLA_LINK: ::c_ushort = 5; +pub const IFLA_QDISC: ::c_ushort = 6; +pub const IFLA_STATS: ::c_ushort = 7; +pub const IFLA_COST: ::c_ushort = 8; +pub const IFLA_PRIORITY: ::c_ushort = 9; +pub const IFLA_MASTER: ::c_ushort = 10; +pub const IFLA_WIRELESS: ::c_ushort = 11; +pub const IFLA_PROTINFO: ::c_ushort = 12; +pub const IFLA_TXQLEN: ::c_ushort = 13; +pub const IFLA_MAP: ::c_ushort = 14; +pub const IFLA_WEIGHT: ::c_ushort = 15; +pub const IFLA_OPERSTATE: ::c_ushort = 16; +pub const IFLA_LINKMODE: ::c_ushort = 17; +pub const IFLA_LINKINFO: ::c_ushort = 18; +pub const IFLA_NET_NS_PID: ::c_ushort = 19; +pub const IFLA_IFALIAS: ::c_ushort = 20; +pub const IFLA_NUM_VF: ::c_ushort = 21; +pub const IFLA_VFINFO_LIST: ::c_ushort = 22; +pub const IFLA_STATS64: ::c_ushort = 23; +pub const IFLA_VF_PORTS: ::c_ushort = 24; +pub const IFLA_PORT_SELF: ::c_ushort = 25; +pub const IFLA_AF_SPEC: ::c_ushort = 26; +pub const IFLA_GROUP: ::c_ushort = 27; +pub const IFLA_NET_NS_FD: ::c_ushort = 28; +pub const IFLA_EXT_MASK: ::c_ushort = 29; +pub const IFLA_PROMISCUITY: ::c_ushort = 30; +pub const IFLA_NUM_TX_QUEUES: ::c_ushort = 31; +pub const IFLA_NUM_RX_QUEUES: ::c_ushort = 32; +pub const IFLA_CARRIER: ::c_ushort = 33; +pub const IFLA_PHYS_PORT_ID: ::c_ushort = 34; +pub const IFLA_CARRIER_CHANGES: ::c_ushort = 35; +pub const IFLA_PHYS_SWITCH_ID: ::c_ushort = 36; +pub const IFLA_LINK_NETNSID: ::c_ushort = 37; +pub const IFLA_PHYS_PORT_NAME: ::c_ushort = 38; +pub const IFLA_PROTO_DOWN: ::c_ushort = 39; +pub const IFLA_GSO_MAX_SEGS: ::c_ushort = 40; +pub const IFLA_GSO_MAX_SIZE: ::c_ushort = 41; +pub const IFLA_PAD: ::c_ushort = 42; +pub const IFLA_XDP: ::c_ushort = 43; +pub const IFLA_EVENT: ::c_ushort = 44; +pub const IFLA_NEW_NETNSID: ::c_ushort = 45; +pub const IFLA_IF_NETNSID: ::c_ushort = 46; +pub const IFLA_TARGET_NETNSID: ::c_ushort = IFLA_IF_NETNSID; +pub const IFLA_CARRIER_UP_COUNT: ::c_ushort = 47; +pub const IFLA_CARRIER_DOWN_COUNT: ::c_ushort = 48; +pub const IFLA_NEW_IFINDEX: ::c_ushort = 49; +pub const IFLA_MIN_MTU: ::c_ushort = 50; +pub const IFLA_MAX_MTU: ::c_ushort = 51; +pub const IFLA_PROP_LIST: ::c_ushort = 52; +pub const IFLA_ALT_IFNAME: ::c_ushort = 53; +pub const IFLA_PERM_ADDRESS: ::c_ushort = 54; +pub const IFLA_PROTO_DOWN_REASON: ::c_ushort = 55; +pub const IFLA_PARENT_DEV_NAME: ::c_ushort = 56; +pub const IFLA_PARENT_DEV_BUS_NAME: ::c_ushort = 57; +pub const IFLA_GRO_MAX_SIZE: ::c_ushort = 58; +pub const IFLA_TSO_MAX_SIZE: ::c_ushort = 59; +pub const IFLA_TSO_MAX_SEGS: ::c_ushort = 60; +pub const IFLA_ALLMULTI: ::c_ushort = 61; + +pub const IFLA_INFO_UNSPEC: ::c_ushort = 0; +pub const IFLA_INFO_KIND: ::c_ushort = 1; +pub const IFLA_INFO_DATA: ::c_ushort = 2; +pub const IFLA_INFO_XSTATS: ::c_ushort = 3; +pub const IFLA_INFO_SLAVE_KIND: ::c_ushort = 4; +pub const IFLA_INFO_SLAVE_DATA: ::c_ushort = 5; + +// linux/if_tun.h +pub const IFF_TUN: ::c_int = 0x0001; +pub const IFF_TAP: ::c_int = 0x0002; +pub const IFF_NO_PI: ::c_int = 0x1000; +// Read queue size +pub const TUN_READQ_SIZE: ::c_short = 500; +// TUN device type flags: deprecated. Use IFF_TUN/IFF_TAP instead. +pub const TUN_TUN_DEV: ::c_short = ::IFF_TUN as ::c_short; +pub const TUN_TAP_DEV: ::c_short = ::IFF_TAP as ::c_short; +pub const TUN_TYPE_MASK: ::c_short = 0x000f; +// This flag has no real effect +pub const IFF_ONE_QUEUE: ::c_int = 0x2000; +pub const IFF_VNET_HDR: ::c_int = 0x4000; +pub const IFF_TUN_EXCL: ::c_int = 0x8000; +pub const IFF_MULTI_QUEUE: ::c_int = 0x0100; +pub const IFF_ATTACH_QUEUE: ::c_int = 0x0200; +pub const IFF_DETACH_QUEUE: ::c_int = 0x0400; +// read-only flag +pub const IFF_PERSIST: ::c_int = 0x0800; +pub const IFF_NOFILTER: ::c_int = 0x1000; + +// Since Linux 3.1 +pub const SEEK_DATA: ::c_int = 3; +pub const SEEK_HOLE: ::c_int = 4; + +pub const ST_RDONLY: ::c_ulong = 1; +pub const ST_NOSUID: ::c_ulong = 2; +pub const ST_NODEV: ::c_ulong = 4; +pub const ST_NOEXEC: ::c_ulong = 8; +pub const ST_SYNCHRONOUS: ::c_ulong = 16; +pub const ST_MANDLOCK: ::c_ulong = 64; +pub const ST_WRITE: ::c_ulong = 128; +pub const ST_APPEND: ::c_ulong = 256; +pub const ST_IMMUTABLE: ::c_ulong = 512; +pub const ST_NOATIME: ::c_ulong = 1024; +pub const ST_NODIRATIME: ::c_ulong = 2048; + +pub const RTLD_NEXT: *mut ::c_void = -1i64 as *mut ::c_void; +pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; +pub const RTLD_NODELETE: ::c_int = 0x1000; +pub const RTLD_NOW: ::c_int = 0x2; + +pub const AT_EACCESS: ::c_int = 0x200; + +// linux/mempolicy.h +pub const MPOL_DEFAULT: ::c_int = 0; +pub const MPOL_PREFERRED: ::c_int = 1; +pub const MPOL_BIND: ::c_int = 2; +pub const MPOL_INTERLEAVE: ::c_int = 3; +pub const MPOL_LOCAL: ::c_int = 4; +pub const MPOL_F_NUMA_BALANCING: ::c_int = 1 << 13; +pub const MPOL_F_RELATIVE_NODES: ::c_int = 1 << 14; +pub const MPOL_F_STATIC_NODES: ::c_int = 1 << 15; + +// linux/membarrier.h +pub const MEMBARRIER_CMD_QUERY: ::c_int = 0; +pub const MEMBARRIER_CMD_GLOBAL: ::c_int = 1 << 0; +pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: ::c_int = 1 << 1; +pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: ::c_int = 1 << 2; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: ::c_int = 1 << 3; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: ::c_int = 1 << 4; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 5; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 6; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 7; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 8; + +align_const! { + pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + size: [0; __SIZEOF_PTHREAD_MUTEX_T], + }; + pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + size: [0; __SIZEOF_PTHREAD_COND_T], + }; + pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + size: [0; __SIZEOF_PTHREAD_RWLOCK_T], + }; +} +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_MUTEX_STALLED: ::c_int = 0; +pub const PTHREAD_MUTEX_ROBUST: ::c_int = 1; +pub const PTHREAD_PRIO_NONE: ::c_int = 0; +pub const PTHREAD_PRIO_INHERIT: ::c_int = 1; +pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; +pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; +pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; +pub const __SIZEOF_PTHREAD_COND_T: usize = 48; + +pub const RENAME_NOREPLACE: ::c_uint = 1; +pub const RENAME_EXCHANGE: ::c_uint = 2; +pub const RENAME_WHITEOUT: ::c_uint = 4; + +pub const SCHED_OTHER: ::c_int = 0; +pub const SCHED_FIFO: ::c_int = 1; +pub const SCHED_RR: ::c_int = 2; +pub const SCHED_BATCH: ::c_int = 3; +pub const SCHED_IDLE: ::c_int = 5; + +pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000; + +pub const CLONE_PIDFD: ::c_int = 0x1000; + +// netinet/in.h +// NOTE: These are in addition to the constants defined in src/unix/mod.rs + +#[deprecated( + since = "0.2.80", + note = "This value was increased in the newer kernel \ + and we'll change this following upstream in the future release. \ + See #1896 for more info." +)] +pub const IPPROTO_MAX: ::c_int = 256; + +// System V IPC +pub const IPC_PRIVATE: ::key_t = 0; + +pub const IPC_CREAT: ::c_int = 0o1000; +pub const IPC_EXCL: ::c_int = 0o2000; +pub const IPC_NOWAIT: ::c_int = 0o4000; + +pub const IPC_RMID: ::c_int = 0; +pub const IPC_SET: ::c_int = 1; +pub const IPC_STAT: ::c_int = 2; +pub const IPC_INFO: ::c_int = 3; +pub const MSG_STAT: ::c_int = 11; +pub const MSG_INFO: ::c_int = 12; +pub const MSG_NOTIFICATION: ::c_int = 0x8000; + +pub const MSG_NOERROR: ::c_int = 0o10000; +pub const MSG_EXCEPT: ::c_int = 0o20000; +pub const MSG_ZEROCOPY: ::c_int = 0x4000000; + +pub const SHM_R: ::c_int = 0o400; +pub const SHM_W: ::c_int = 0o200; + +pub const SHM_RDONLY: ::c_int = 0o10000; +pub const SHM_RND: ::c_int = 0o20000; +pub const SHM_REMAP: ::c_int = 0o40000; + +pub const SHM_LOCK: ::c_int = 11; +pub const SHM_UNLOCK: ::c_int = 12; + +pub const SHM_HUGETLB: ::c_int = 0o4000; +#[cfg(not(all(target_env = "uclibc", target_arch = "mips")))] +pub const SHM_NORESERVE: ::c_int = 0o10000; + +pub const QFMT_VFS_OLD: ::c_int = 1; +pub const QFMT_VFS_V0: ::c_int = 2; +pub const QFMT_VFS_V1: ::c_int = 4; + +pub const EFD_SEMAPHORE: ::c_int = 0x1; + +pub const LOG_NFACILITIES: ::c_int = 24; + +pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t; + +pub const RB_AUTOBOOT: ::c_int = 0x01234567u32 as i32; +pub const RB_HALT_SYSTEM: ::c_int = 0xcdef0123u32 as i32; +pub const RB_ENABLE_CAD: ::c_int = 0x89abcdefu32 as i32; +pub const RB_DISABLE_CAD: ::c_int = 0x00000000u32 as i32; +pub const RB_POWER_OFF: ::c_int = 0x4321fedcu32 as i32; +pub const RB_SW_SUSPEND: ::c_int = 0xd000fce2u32 as i32; +pub const RB_KEXEC: ::c_int = 0x45584543u32 as i32; + +pub const AI_PASSIVE: ::c_int = 0x0001; +pub const AI_CANONNAME: ::c_int = 0x0002; +pub const AI_NUMERICHOST: ::c_int = 0x0004; +pub const AI_V4MAPPED: ::c_int = 0x0008; +pub const AI_ALL: ::c_int = 0x0010; +pub const AI_ADDRCONFIG: ::c_int = 0x0020; + +pub const AI_NUMERICSERV: ::c_int = 0x0400; + +pub const EAI_BADFLAGS: ::c_int = -1; +pub const EAI_NONAME: ::c_int = -2; +pub const EAI_AGAIN: ::c_int = -3; +pub const EAI_FAIL: ::c_int = -4; +pub const EAI_NODATA: ::c_int = -5; +pub const EAI_FAMILY: ::c_int = -6; +pub const EAI_SOCKTYPE: ::c_int = -7; +pub const EAI_SERVICE: ::c_int = -8; +pub const EAI_MEMORY: ::c_int = -10; +pub const EAI_SYSTEM: ::c_int = -11; +pub const EAI_OVERFLOW: ::c_int = -12; + +pub const NI_NUMERICHOST: ::c_int = 1; +pub const NI_NUMERICSERV: ::c_int = 2; +pub const NI_NOFQDN: ::c_int = 4; +pub const NI_NAMEREQD: ::c_int = 8; +pub const NI_DGRAM: ::c_int = 16; + +pub const SYNC_FILE_RANGE_WAIT_BEFORE: ::c_uint = 1; +pub const SYNC_FILE_RANGE_WRITE: ::c_uint = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: ::c_uint = 4; + +cfg_if! { + if #[cfg(not(target_env = "uclibc"))] { + pub const AIO_CANCELED: ::c_int = 0; + pub const AIO_NOTCANCELED: ::c_int = 1; + pub const AIO_ALLDONE: ::c_int = 2; + pub const LIO_READ: ::c_int = 0; + pub const LIO_WRITE: ::c_int = 1; + pub const LIO_NOP: ::c_int = 2; + pub const LIO_WAIT: ::c_int = 0; + pub const LIO_NOWAIT: ::c_int = 1; + pub const RUSAGE_THREAD: ::c_int = 1; + pub const MSG_COPY: ::c_int = 0o40000; + pub const SHM_EXEC: ::c_int = 0o100000; + pub const IPV6_MULTICAST_ALL: ::c_int = 29; + pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; + pub const PACKET_MR_UNICAST: ::c_int = 3; + pub const PTRACE_EVENT_STOP: ::c_int = 128; + pub const UDP_SEGMENT: ::c_int = 103; + pub const UDP_GRO: ::c_int = 104; + } +} + +pub const MREMAP_MAYMOVE: ::c_int = 1; +pub const MREMAP_FIXED: ::c_int = 2; +pub const MREMAP_DONTUNMAP: ::c_int = 4; + +pub const PR_SET_PDEATHSIG: ::c_int = 1; +pub const PR_GET_PDEATHSIG: ::c_int = 2; + +pub const PR_GET_DUMPABLE: ::c_int = 3; +pub const PR_SET_DUMPABLE: ::c_int = 4; + +pub const PR_GET_UNALIGN: ::c_int = 5; +pub const PR_SET_UNALIGN: ::c_int = 6; +pub const PR_UNALIGN_NOPRINT: ::c_int = 1; +pub const PR_UNALIGN_SIGBUS: ::c_int = 2; + +pub const PR_GET_KEEPCAPS: ::c_int = 7; +pub const PR_SET_KEEPCAPS: ::c_int = 8; + +pub const PR_GET_FPEMU: ::c_int = 9; +pub const PR_SET_FPEMU: ::c_int = 10; +pub const PR_FPEMU_NOPRINT: ::c_int = 1; +pub const PR_FPEMU_SIGFPE: ::c_int = 2; + +pub const PR_GET_FPEXC: ::c_int = 11; +pub const PR_SET_FPEXC: ::c_int = 12; +pub const PR_FP_EXC_SW_ENABLE: ::c_int = 0x80; +pub const PR_FP_EXC_DIV: ::c_int = 0x010000; +pub const PR_FP_EXC_OVF: ::c_int = 0x020000; +pub const PR_FP_EXC_UND: ::c_int = 0x040000; +pub const PR_FP_EXC_RES: ::c_int = 0x080000; +pub const PR_FP_EXC_INV: ::c_int = 0x100000; +pub const PR_FP_EXC_DISABLED: ::c_int = 0; +pub const PR_FP_EXC_NONRECOV: ::c_int = 1; +pub const PR_FP_EXC_ASYNC: ::c_int = 2; +pub const PR_FP_EXC_PRECISE: ::c_int = 3; + +pub const PR_GET_TIMING: ::c_int = 13; +pub const PR_SET_TIMING: ::c_int = 14; +pub const PR_TIMING_STATISTICAL: ::c_int = 0; +pub const PR_TIMING_TIMESTAMP: ::c_int = 1; + +pub const PR_SET_NAME: ::c_int = 15; +pub const PR_GET_NAME: ::c_int = 16; + +pub const PR_GET_ENDIAN: ::c_int = 19; +pub const PR_SET_ENDIAN: ::c_int = 20; +pub const PR_ENDIAN_BIG: ::c_int = 0; +pub const PR_ENDIAN_LITTLE: ::c_int = 1; +pub const PR_ENDIAN_PPC_LITTLE: ::c_int = 2; + +pub const PR_GET_SECCOMP: ::c_int = 21; +pub const PR_SET_SECCOMP: ::c_int = 22; + +pub const PR_CAPBSET_READ: ::c_int = 23; +pub const PR_CAPBSET_DROP: ::c_int = 24; + +pub const PR_GET_TSC: ::c_int = 25; +pub const PR_SET_TSC: ::c_int = 26; +pub const PR_TSC_ENABLE: ::c_int = 1; +pub const PR_TSC_SIGSEGV: ::c_int = 2; + +pub const PR_GET_SECUREBITS: ::c_int = 27; +pub const PR_SET_SECUREBITS: ::c_int = 28; + +pub const PR_SET_TIMERSLACK: ::c_int = 29; +pub const PR_GET_TIMERSLACK: ::c_int = 30; + +pub const PR_TASK_PERF_EVENTS_DISABLE: ::c_int = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: ::c_int = 32; + +pub const PR_MCE_KILL: ::c_int = 33; +pub const PR_MCE_KILL_CLEAR: ::c_int = 0; +pub const PR_MCE_KILL_SET: ::c_int = 1; + +pub const PR_MCE_KILL_LATE: ::c_int = 0; +pub const PR_MCE_KILL_EARLY: ::c_int = 1; +pub const PR_MCE_KILL_DEFAULT: ::c_int = 2; + +pub const PR_MCE_KILL_GET: ::c_int = 34; + +pub const PR_SET_MM: ::c_int = 35; +pub const PR_SET_MM_START_CODE: ::c_int = 1; +pub const PR_SET_MM_END_CODE: ::c_int = 2; +pub const PR_SET_MM_START_DATA: ::c_int = 3; +pub const PR_SET_MM_END_DATA: ::c_int = 4; +pub const PR_SET_MM_START_STACK: ::c_int = 5; +pub const PR_SET_MM_START_BRK: ::c_int = 6; +pub const PR_SET_MM_BRK: ::c_int = 7; +pub const PR_SET_MM_ARG_START: ::c_int = 8; +pub const PR_SET_MM_ARG_END: ::c_int = 9; +pub const PR_SET_MM_ENV_START: ::c_int = 10; +pub const PR_SET_MM_ENV_END: ::c_int = 11; +pub const PR_SET_MM_AUXV: ::c_int = 12; +pub const PR_SET_MM_EXE_FILE: ::c_int = 13; +pub const PR_SET_MM_MAP: ::c_int = 14; +pub const PR_SET_MM_MAP_SIZE: ::c_int = 15; + +pub const PR_SET_PTRACER: ::c_int = 0x59616d61; +pub const PR_SET_PTRACER_ANY: ::c_ulong = 0xffffffffffffffff; + +pub const PR_SET_CHILD_SUBREAPER: ::c_int = 36; +pub const PR_GET_CHILD_SUBREAPER: ::c_int = 37; + +pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38; +pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39; + +pub const PR_GET_TID_ADDRESS: ::c_int = 40; + +pub const PR_SET_THP_DISABLE: ::c_int = 41; +pub const PR_GET_THP_DISABLE: ::c_int = 42; + +pub const PR_MPX_ENABLE_MANAGEMENT: ::c_int = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: ::c_int = 44; + +pub const PR_SET_FP_MODE: ::c_int = 45; +pub const PR_GET_FP_MODE: ::c_int = 46; +pub const PR_FP_MODE_FR: ::c_int = 1 << 0; +pub const PR_FP_MODE_FRE: ::c_int = 1 << 1; + +pub const PR_CAP_AMBIENT: ::c_int = 47; +pub const PR_CAP_AMBIENT_IS_SET: ::c_int = 1; +pub const PR_CAP_AMBIENT_RAISE: ::c_int = 2; +pub const PR_CAP_AMBIENT_LOWER: ::c_int = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: ::c_int = 4; + +pub const PR_SET_VMA: ::c_int = 0x53564d41; +pub const PR_SET_VMA_ANON_NAME: ::c_int = 0; + +pub const PR_SCHED_CORE: ::c_int = 62; +pub const PR_SCHED_CORE_GET: ::c_int = 0; +pub const PR_SCHED_CORE_CREATE: ::c_int = 1; +pub const PR_SCHED_CORE_SHARE_TO: ::c_int = 2; +pub const PR_SCHED_CORE_SHARE_FROM: ::c_int = 3; +pub const PR_SCHED_CORE_MAX: ::c_int = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: ::c_int = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: ::c_int = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: ::c_int = 2; + +pub const GRND_NONBLOCK: ::c_uint = 0x0001; +pub const GRND_RANDOM: ::c_uint = 0x0002; +pub const GRND_INSECURE: ::c_uint = 0x0004; + +pub const SECCOMP_MODE_DISABLED: ::c_uint = 0; +pub const SECCOMP_MODE_STRICT: ::c_uint = 1; +pub const SECCOMP_MODE_FILTER: ::c_uint = 2; + +pub const SECCOMP_FILTER_FLAG_TSYNC: ::c_ulong = 1; +pub const SECCOMP_FILTER_FLAG_LOG: ::c_ulong = 2; +pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: ::c_ulong = 4; + +pub const SECCOMP_RET_KILL_PROCESS: ::c_uint = 0x80000000; +pub const SECCOMP_RET_KILL_THREAD: ::c_uint = 0x00000000; +pub const SECCOMP_RET_KILL: ::c_uint = SECCOMP_RET_KILL_THREAD; +pub const SECCOMP_RET_TRAP: ::c_uint = 0x00030000; +pub const SECCOMP_RET_ERRNO: ::c_uint = 0x00050000; +pub const SECCOMP_RET_TRACE: ::c_uint = 0x7ff00000; +pub const SECCOMP_RET_LOG: ::c_uint = 0x7ffc0000; +pub const SECCOMP_RET_ALLOW: ::c_uint = 0x7fff0000; + +pub const SECCOMP_RET_ACTION_FULL: ::c_uint = 0xffff0000; +pub const SECCOMP_RET_ACTION: ::c_uint = 0x7fff0000; +pub const SECCOMP_RET_DATA: ::c_uint = 0x0000ffff; + +pub const ITIMER_REAL: ::c_int = 0; +pub const ITIMER_VIRTUAL: ::c_int = 1; +pub const ITIMER_PROF: ::c_int = 2; + +pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC; +pub const TFD_NONBLOCK: ::c_int = O_NONBLOCK; +pub const TFD_TIMER_ABSTIME: ::c_int = 1; +pub const TFD_TIMER_CANCEL_ON_SET: ::c_int = 2; + +pub const _POSIX_VDISABLE: ::cc_t = 0; + +pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01; +pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02; +pub const FALLOC_FL_COLLAPSE_RANGE: ::c_int = 0x08; +pub const FALLOC_FL_ZERO_RANGE: ::c_int = 0x10; +pub const FALLOC_FL_INSERT_RANGE: ::c_int = 0x20; +pub const FALLOC_FL_UNSHARE_RANGE: ::c_int = 0x40; + +#[deprecated( + since = "0.2.55", + note = "ENOATTR is not available on Linux; use ENODATA instead" +)] +pub const ENOATTR: ::c_int = ::ENODATA; + +pub const SO_ORIGINAL_DST: ::c_int = 80; + +pub const IP_RECVFRAGSIZE: ::c_int = 25; + +pub const IPV6_FLOWINFO: ::c_int = 11; +pub const IPV6_FLOWLABEL_MGR: ::c_int = 32; +pub const IPV6_FLOWINFO_SEND: ::c_int = 33; +pub const IPV6_RECVFRAGSIZE: ::c_int = 77; +pub const IPV6_FREEBIND: ::c_int = 78; +pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff; +pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000; + +pub const IPV6_RTHDR_LOOSE: ::c_int = 0; +pub const IPV6_RTHDR_STRICT: ::c_int = 1; + +// SO_MEMINFO offsets +pub const SK_MEMINFO_RMEM_ALLOC: ::c_int = 0; +pub const SK_MEMINFO_RCVBUF: ::c_int = 1; +pub const SK_MEMINFO_WMEM_ALLOC: ::c_int = 2; +pub const SK_MEMINFO_SNDBUF: ::c_int = 3; +pub const SK_MEMINFO_FWD_ALLOC: ::c_int = 4; +pub const SK_MEMINFO_WMEM_QUEUED: ::c_int = 5; +pub const SK_MEMINFO_OPTMEM: ::c_int = 6; +pub const SK_MEMINFO_BACKLOG: ::c_int = 7; +pub const SK_MEMINFO_DROPS: ::c_int = 8; + +pub const IUTF8: ::tcflag_t = 0x00004000; +#[cfg(not(all(target_env = "uclibc", target_arch = "mips")))] +pub const CMSPAR: ::tcflag_t = 0o10000000000; + +pub const MFD_CLOEXEC: ::c_uint = 0x0001; +pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; +pub const MFD_HUGETLB: ::c_uint = 0x0004; +pub const MFD_HUGE_64KB: ::c_uint = 0x40000000; +pub const MFD_HUGE_512KB: ::c_uint = 0x4c000000; +pub const MFD_HUGE_1MB: ::c_uint = 0x50000000; +pub const MFD_HUGE_2MB: ::c_uint = 0x54000000; +pub const MFD_HUGE_8MB: ::c_uint = 0x5c000000; +pub const MFD_HUGE_16MB: ::c_uint = 0x60000000; +pub const MFD_HUGE_32MB: ::c_uint = 0x64000000; +pub const MFD_HUGE_256MB: ::c_uint = 0x70000000; +pub const MFD_HUGE_512MB: ::c_uint = 0x74000000; +pub const MFD_HUGE_1GB: ::c_uint = 0x78000000; +pub const MFD_HUGE_2GB: ::c_uint = 0x7c000000; +pub const MFD_HUGE_16GB: ::c_uint = 0x88000000; +pub const MFD_HUGE_MASK: ::c_uint = 63; +pub const MFD_HUGE_SHIFT: ::c_uint = 26; + +// linux/close_range.h +pub const CLOSE_RANGE_UNSHARE: ::c_uint = 1 << 1; +pub const CLOSE_RANGE_CLOEXEC: ::c_uint = 1 << 2; + +// linux/filter.h +pub const SKF_AD_OFF: ::c_int = -0x1000; +pub const SKF_AD_PROTOCOL: ::c_int = 0; +pub const SKF_AD_PKTTYPE: ::c_int = 4; +pub const SKF_AD_IFINDEX: ::c_int = 8; +pub const SKF_AD_NLATTR: ::c_int = 12; +pub const SKF_AD_NLATTR_NEST: ::c_int = 16; +pub const SKF_AD_MARK: ::c_int = 20; +pub const SKF_AD_QUEUE: ::c_int = 24; +pub const SKF_AD_HATYPE: ::c_int = 28; +pub const SKF_AD_RXHASH: ::c_int = 32; +pub const SKF_AD_CPU: ::c_int = 36; +pub const SKF_AD_ALU_XOR_X: ::c_int = 40; +pub const SKF_AD_VLAN_TAG: ::c_int = 44; +pub const SKF_AD_VLAN_TAG_PRESENT: ::c_int = 48; +pub const SKF_AD_PAY_OFFSET: ::c_int = 52; +pub const SKF_AD_RANDOM: ::c_int = 56; +pub const SKF_AD_VLAN_TPID: ::c_int = 60; +pub const SKF_AD_MAX: ::c_int = 64; +pub const SKF_NET_OFF: ::c_int = -0x100000; +pub const SKF_LL_OFF: ::c_int = -0x200000; +pub const BPF_NET_OFF: ::c_int = SKF_NET_OFF; +pub const BPF_LL_OFF: ::c_int = SKF_LL_OFF; +pub const BPF_MEMWORDS: ::c_int = 16; +pub const BPF_MAXINSNS: ::c_int = 4096; + +// linux/bpf_common.h +pub const BPF_LD: ::__u32 = 0x00; +pub const BPF_LDX: ::__u32 = 0x01; +pub const BPF_ST: ::__u32 = 0x02; +pub const BPF_STX: ::__u32 = 0x03; +pub const BPF_ALU: ::__u32 = 0x04; +pub const BPF_JMP: ::__u32 = 0x05; +pub const BPF_RET: ::__u32 = 0x06; +pub const BPF_MISC: ::__u32 = 0x07; +pub const BPF_W: ::__u32 = 0x00; +pub const BPF_H: ::__u32 = 0x08; +pub const BPF_B: ::__u32 = 0x10; +pub const BPF_IMM: ::__u32 = 0x00; +pub const BPF_ABS: ::__u32 = 0x20; +pub const BPF_IND: ::__u32 = 0x40; +pub const BPF_MEM: ::__u32 = 0x60; +pub const BPF_LEN: ::__u32 = 0x80; +pub const BPF_MSH: ::__u32 = 0xa0; +pub const BPF_ADD: ::__u32 = 0x00; +pub const BPF_SUB: ::__u32 = 0x10; +pub const BPF_MUL: ::__u32 = 0x20; +pub const BPF_DIV: ::__u32 = 0x30; +pub const BPF_OR: ::__u32 = 0x40; +pub const BPF_AND: ::__u32 = 0x50; +pub const BPF_LSH: ::__u32 = 0x60; +pub const BPF_RSH: ::__u32 = 0x70; +pub const BPF_NEG: ::__u32 = 0x80; +pub const BPF_MOD: ::__u32 = 0x90; +pub const BPF_XOR: ::__u32 = 0xa0; +pub const BPF_JA: ::__u32 = 0x00; +pub const BPF_JEQ: ::__u32 = 0x10; +pub const BPF_JGT: ::__u32 = 0x20; +pub const BPF_JGE: ::__u32 = 0x30; +pub const BPF_JSET: ::__u32 = 0x40; +pub const BPF_K: ::__u32 = 0x00; +pub const BPF_X: ::__u32 = 0x08; + +// linux/openat2.h +pub const RESOLVE_NO_XDEV: ::__u64 = 0x01; +pub const RESOLVE_NO_MAGICLINKS: ::__u64 = 0x02; +pub const RESOLVE_NO_SYMLINKS: ::__u64 = 0x04; +pub const RESOLVE_BENEATH: ::__u64 = 0x08; +pub const RESOLVE_IN_ROOT: ::__u64 = 0x10; +pub const RESOLVE_CACHED: ::__u64 = 0x20; + +// linux/if_ether.h +pub const ETH_ALEN: ::c_int = 6; +pub const ETH_HLEN: ::c_int = 14; +pub const ETH_ZLEN: ::c_int = 60; +pub const ETH_DATA_LEN: ::c_int = 1500; +pub const ETH_FRAME_LEN: ::c_int = 1514; +pub const ETH_FCS_LEN: ::c_int = 4; + +// These are the defined Ethernet Protocol ID's. +pub const ETH_P_LOOP: ::c_int = 0x0060; +pub const ETH_P_PUP: ::c_int = 0x0200; +pub const ETH_P_PUPAT: ::c_int = 0x0201; +pub const ETH_P_IP: ::c_int = 0x0800; +pub const ETH_P_X25: ::c_int = 0x0805; +pub const ETH_P_ARP: ::c_int = 0x0806; +pub const ETH_P_BPQ: ::c_int = 0x08FF; +pub const ETH_P_IEEEPUP: ::c_int = 0x0a00; +pub const ETH_P_IEEEPUPAT: ::c_int = 0x0a01; +pub const ETH_P_BATMAN: ::c_int = 0x4305; +pub const ETH_P_DEC: ::c_int = 0x6000; +pub const ETH_P_DNA_DL: ::c_int = 0x6001; +pub const ETH_P_DNA_RC: ::c_int = 0x6002; +pub const ETH_P_DNA_RT: ::c_int = 0x6003; +pub const ETH_P_LAT: ::c_int = 0x6004; +pub const ETH_P_DIAG: ::c_int = 0x6005; +pub const ETH_P_CUST: ::c_int = 0x6006; +pub const ETH_P_SCA: ::c_int = 0x6007; +pub const ETH_P_TEB: ::c_int = 0x6558; +pub const ETH_P_RARP: ::c_int = 0x8035; +pub const ETH_P_ATALK: ::c_int = 0x809B; +pub const ETH_P_AARP: ::c_int = 0x80F3; +pub const ETH_P_8021Q: ::c_int = 0x8100; +pub const ETH_P_IPX: ::c_int = 0x8137; +pub const ETH_P_IPV6: ::c_int = 0x86DD; +pub const ETH_P_PAUSE: ::c_int = 0x8808; +pub const ETH_P_SLOW: ::c_int = 0x8809; +pub const ETH_P_WCCP: ::c_int = 0x883E; +pub const ETH_P_MPLS_UC: ::c_int = 0x8847; +pub const ETH_P_MPLS_MC: ::c_int = 0x8848; +pub const ETH_P_ATMMPOA: ::c_int = 0x884c; +pub const ETH_P_PPP_DISC: ::c_int = 0x8863; +pub const ETH_P_PPP_SES: ::c_int = 0x8864; +pub const ETH_P_LINK_CTL: ::c_int = 0x886c; +pub const ETH_P_ATMFATE: ::c_int = 0x8884; +pub const ETH_P_PAE: ::c_int = 0x888E; +pub const ETH_P_AOE: ::c_int = 0x88A2; +pub const ETH_P_8021AD: ::c_int = 0x88A8; +pub const ETH_P_802_EX1: ::c_int = 0x88B5; +pub const ETH_P_TIPC: ::c_int = 0x88CA; +pub const ETH_P_MACSEC: ::c_int = 0x88E5; +pub const ETH_P_8021AH: ::c_int = 0x88E7; +pub const ETH_P_MVRP: ::c_int = 0x88F5; +pub const ETH_P_1588: ::c_int = 0x88F7; +pub const ETH_P_PRP: ::c_int = 0x88FB; +pub const ETH_P_FCOE: ::c_int = 0x8906; +pub const ETH_P_TDLS: ::c_int = 0x890D; +pub const ETH_P_FIP: ::c_int = 0x8914; +pub const ETH_P_80221: ::c_int = 0x8917; +pub const ETH_P_LOOPBACK: ::c_int = 0x9000; +pub const ETH_P_QINQ1: ::c_int = 0x9100; +pub const ETH_P_QINQ2: ::c_int = 0x9200; +pub const ETH_P_QINQ3: ::c_int = 0x9300; +pub const ETH_P_EDSA: ::c_int = 0xDADA; +pub const ETH_P_AF_IUCV: ::c_int = 0xFBFB; + +pub const ETH_P_802_3_MIN: ::c_int = 0x0600; + +// Non DIX types. Won't clash for 1500 types. +pub const ETH_P_802_3: ::c_int = 0x0001; +pub const ETH_P_AX25: ::c_int = 0x0002; +pub const ETH_P_ALL: ::c_int = 0x0003; +pub const ETH_P_802_2: ::c_int = 0x0004; +pub const ETH_P_SNAP: ::c_int = 0x0005; +pub const ETH_P_DDCMP: ::c_int = 0x0006; +pub const ETH_P_WAN_PPP: ::c_int = 0x0007; +pub const ETH_P_PPP_MP: ::c_int = 0x0008; +pub const ETH_P_LOCALTALK: ::c_int = 0x0009; +pub const ETH_P_CANFD: ::c_int = 0x000D; +pub const ETH_P_PPPTALK: ::c_int = 0x0010; +pub const ETH_P_TR_802_2: ::c_int = 0x0011; +pub const ETH_P_MOBITEX: ::c_int = 0x0015; +pub const ETH_P_CONTROL: ::c_int = 0x0016; +pub const ETH_P_IRDA: ::c_int = 0x0017; +pub const ETH_P_ECONET: ::c_int = 0x0018; +pub const ETH_P_HDLC: ::c_int = 0x0019; +pub const ETH_P_ARCNET: ::c_int = 0x001A; +pub const ETH_P_DSA: ::c_int = 0x001B; +pub const ETH_P_TRAILER: ::c_int = 0x001C; +pub const ETH_P_PHONET: ::c_int = 0x00F5; +pub const ETH_P_IEEE802154: ::c_int = 0x00F6; +pub const ETH_P_CAIF: ::c_int = 0x00F7; + +pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; +pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; +pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x04; +pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x08; +pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x10; +pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x20; + +pub const NLMSG_NOOP: ::c_int = 0x1; +pub const NLMSG_ERROR: ::c_int = 0x2; +pub const NLMSG_DONE: ::c_int = 0x3; +pub const NLMSG_OVERRUN: ::c_int = 0x4; +pub const NLMSG_MIN_TYPE: ::c_int = 0x10; + +// linux/netfilter/nfnetlink.h +pub const NFNLGRP_NONE: ::c_int = 0; +pub const NFNLGRP_CONNTRACK_NEW: ::c_int = 1; +pub const NFNLGRP_CONNTRACK_UPDATE: ::c_int = 2; +pub const NFNLGRP_CONNTRACK_DESTROY: ::c_int = 3; +pub const NFNLGRP_CONNTRACK_EXP_NEW: ::c_int = 4; +pub const NFNLGRP_CONNTRACK_EXP_UPDATE: ::c_int = 5; +pub const NFNLGRP_CONNTRACK_EXP_DESTROY: ::c_int = 6; +pub const NFNLGRP_NFTABLES: ::c_int = 7; +pub const NFNLGRP_ACCT_QUOTA: ::c_int = 8; +pub const NFNLGRP_NFTRACE: ::c_int = 9; + +pub const NFNETLINK_V0: ::c_int = 0; + +pub const NFNL_SUBSYS_NONE: ::c_int = 0; +pub const NFNL_SUBSYS_CTNETLINK: ::c_int = 1; +pub const NFNL_SUBSYS_CTNETLINK_EXP: ::c_int = 2; +pub const NFNL_SUBSYS_QUEUE: ::c_int = 3; +pub const NFNL_SUBSYS_ULOG: ::c_int = 4; +pub const NFNL_SUBSYS_OSF: ::c_int = 5; +pub const NFNL_SUBSYS_IPSET: ::c_int = 6; +pub const NFNL_SUBSYS_ACCT: ::c_int = 7; +pub const NFNL_SUBSYS_CTNETLINK_TIMEOUT: ::c_int = 8; +pub const NFNL_SUBSYS_CTHELPER: ::c_int = 9; +pub const NFNL_SUBSYS_NFTABLES: ::c_int = 10; +pub const NFNL_SUBSYS_NFT_COMPAT: ::c_int = 11; +pub const NFNL_SUBSYS_HOOK: ::c_int = 12; +pub const NFNL_SUBSYS_COUNT: ::c_int = 13; + +pub const NFNL_MSG_BATCH_BEGIN: ::c_int = NLMSG_MIN_TYPE; +pub const NFNL_MSG_BATCH_END: ::c_int = NLMSG_MIN_TYPE + 1; + +pub const NFNL_BATCH_UNSPEC: ::c_int = 0; +pub const NFNL_BATCH_GENID: ::c_int = 1; + +// linux/netfilter/nfnetlink_log.h +pub const NFULNL_MSG_PACKET: ::c_int = 0; +pub const NFULNL_MSG_CONFIG: ::c_int = 1; + +pub const NFULA_VLAN_UNSPEC: ::c_int = 0; +pub const NFULA_VLAN_PROTO: ::c_int = 1; +pub const NFULA_VLAN_TCI: ::c_int = 2; + +pub const NFULA_UNSPEC: ::c_int = 0; +pub const NFULA_PACKET_HDR: ::c_int = 1; +pub const NFULA_MARK: ::c_int = 2; +pub const NFULA_TIMESTAMP: ::c_int = 3; +pub const NFULA_IFINDEX_INDEV: ::c_int = 4; +pub const NFULA_IFINDEX_OUTDEV: ::c_int = 5; +pub const NFULA_IFINDEX_PHYSINDEV: ::c_int = 6; +pub const NFULA_IFINDEX_PHYSOUTDEV: ::c_int = 7; +pub const NFULA_HWADDR: ::c_int = 8; +pub const NFULA_PAYLOAD: ::c_int = 9; +pub const NFULA_PREFIX: ::c_int = 10; +pub const NFULA_UID: ::c_int = 11; +pub const NFULA_SEQ: ::c_int = 12; +pub const NFULA_SEQ_GLOBAL: ::c_int = 13; +pub const NFULA_GID: ::c_int = 14; +pub const NFULA_HWTYPE: ::c_int = 15; +pub const NFULA_HWHEADER: ::c_int = 16; +pub const NFULA_HWLEN: ::c_int = 17; +pub const NFULA_CT: ::c_int = 18; +pub const NFULA_CT_INFO: ::c_int = 19; +pub const NFULA_VLAN: ::c_int = 20; +pub const NFULA_L2HDR: ::c_int = 21; + +pub const NFULNL_CFG_CMD_NONE: ::c_int = 0; +pub const NFULNL_CFG_CMD_BIND: ::c_int = 1; +pub const NFULNL_CFG_CMD_UNBIND: ::c_int = 2; +pub const NFULNL_CFG_CMD_PF_BIND: ::c_int = 3; +pub const NFULNL_CFG_CMD_PF_UNBIND: ::c_int = 4; + +pub const NFULA_CFG_UNSPEC: ::c_int = 0; +pub const NFULA_CFG_CMD: ::c_int = 1; +pub const NFULA_CFG_MODE: ::c_int = 2; +pub const NFULA_CFG_NLBUFSIZ: ::c_int = 3; +pub const NFULA_CFG_TIMEOUT: ::c_int = 4; +pub const NFULA_CFG_QTHRESH: ::c_int = 5; +pub const NFULA_CFG_FLAGS: ::c_int = 6; + +pub const NFULNL_COPY_NONE: ::c_int = 0x00; +pub const NFULNL_COPY_META: ::c_int = 0x01; +pub const NFULNL_COPY_PACKET: ::c_int = 0x02; + +pub const NFULNL_CFG_F_SEQ: ::c_int = 0x0001; +pub const NFULNL_CFG_F_SEQ_GLOBAL: ::c_int = 0x0002; +pub const NFULNL_CFG_F_CONNTRACK: ::c_int = 0x0004; + +// linux/netfilter/nfnetlink_queue.h +pub const NFQNL_MSG_PACKET: ::c_int = 0; +pub const NFQNL_MSG_VERDICT: ::c_int = 1; +pub const NFQNL_MSG_CONFIG: ::c_int = 2; +pub const NFQNL_MSG_VERDICT_BATCH: ::c_int = 3; + +pub const NFQA_UNSPEC: ::c_int = 0; +pub const NFQA_PACKET_HDR: ::c_int = 1; +pub const NFQA_VERDICT_HDR: ::c_int = 2; +pub const NFQA_MARK: ::c_int = 3; +pub const NFQA_TIMESTAMP: ::c_int = 4; +pub const NFQA_IFINDEX_INDEV: ::c_int = 5; +pub const NFQA_IFINDEX_OUTDEV: ::c_int = 6; +pub const NFQA_IFINDEX_PHYSINDEV: ::c_int = 7; +pub const NFQA_IFINDEX_PHYSOUTDEV: ::c_int = 8; +pub const NFQA_HWADDR: ::c_int = 9; +pub const NFQA_PAYLOAD: ::c_int = 10; +pub const NFQA_CT: ::c_int = 11; +pub const NFQA_CT_INFO: ::c_int = 12; +pub const NFQA_CAP_LEN: ::c_int = 13; +pub const NFQA_SKB_INFO: ::c_int = 14; +pub const NFQA_EXP: ::c_int = 15; +pub const NFQA_UID: ::c_int = 16; +pub const NFQA_GID: ::c_int = 17; +pub const NFQA_SECCTX: ::c_int = 18; +pub const NFQA_VLAN: ::c_int = 19; +pub const NFQA_L2HDR: ::c_int = 20; +pub const NFQA_PRIORITY: ::c_int = 21; + +pub const NFQA_VLAN_UNSPEC: ::c_int = 0; +pub const NFQA_VLAN_PROTO: ::c_int = 1; +pub const NFQA_VLAN_TCI: ::c_int = 2; + +pub const NFQNL_CFG_CMD_NONE: ::c_int = 0; +pub const NFQNL_CFG_CMD_BIND: ::c_int = 1; +pub const NFQNL_CFG_CMD_UNBIND: ::c_int = 2; +pub const NFQNL_CFG_CMD_PF_BIND: ::c_int = 3; +pub const NFQNL_CFG_CMD_PF_UNBIND: ::c_int = 4; + +pub const NFQNL_COPY_NONE: ::c_int = 0; +pub const NFQNL_COPY_META: ::c_int = 1; +pub const NFQNL_COPY_PACKET: ::c_int = 2; + +pub const NFQA_CFG_UNSPEC: ::c_int = 0; +pub const NFQA_CFG_CMD: ::c_int = 1; +pub const NFQA_CFG_PARAMS: ::c_int = 2; +pub const NFQA_CFG_QUEUE_MAXLEN: ::c_int = 3; +pub const NFQA_CFG_MASK: ::c_int = 4; +pub const NFQA_CFG_FLAGS: ::c_int = 5; + +pub const NFQA_CFG_F_FAIL_OPEN: ::c_int = 0x0001; +pub const NFQA_CFG_F_CONNTRACK: ::c_int = 0x0002; +pub const NFQA_CFG_F_GSO: ::c_int = 0x0004; +pub const NFQA_CFG_F_UID_GID: ::c_int = 0x0008; +pub const NFQA_CFG_F_SECCTX: ::c_int = 0x0010; +pub const NFQA_CFG_F_MAX: ::c_int = 0x0020; + +pub const NFQA_SKB_CSUMNOTREADY: ::c_int = 0x0001; +pub const NFQA_SKB_GSO: ::c_int = 0x0002; +pub const NFQA_SKB_CSUM_NOTVERIFIED: ::c_int = 0x0004; + +// linux/genetlink.h + +pub const GENL_NAMSIZ: ::c_int = 16; + +pub const GENL_MIN_ID: ::c_int = NLMSG_MIN_TYPE; +pub const GENL_MAX_ID: ::c_int = 1023; + +pub const GENL_ADMIN_PERM: ::c_int = 0x01; +pub const GENL_CMD_CAP_DO: ::c_int = 0x02; +pub const GENL_CMD_CAP_DUMP: ::c_int = 0x04; +pub const GENL_CMD_CAP_HASPOL: ::c_int = 0x08; + +pub const GENL_ID_CTRL: ::c_int = NLMSG_MIN_TYPE; + +pub const CTRL_CMD_UNSPEC: ::c_int = 0; +pub const CTRL_CMD_NEWFAMILY: ::c_int = 1; +pub const CTRL_CMD_DELFAMILY: ::c_int = 2; +pub const CTRL_CMD_GETFAMILY: ::c_int = 3; +pub const CTRL_CMD_NEWOPS: ::c_int = 4; +pub const CTRL_CMD_DELOPS: ::c_int = 5; +pub const CTRL_CMD_GETOPS: ::c_int = 6; +pub const CTRL_CMD_NEWMCAST_GRP: ::c_int = 7; +pub const CTRL_CMD_DELMCAST_GRP: ::c_int = 8; +pub const CTRL_CMD_GETMCAST_GRP: ::c_int = 9; + +pub const CTRL_ATTR_UNSPEC: ::c_int = 0; +pub const CTRL_ATTR_FAMILY_ID: ::c_int = 1; +pub const CTRL_ATTR_FAMILY_NAME: ::c_int = 2; +pub const CTRL_ATTR_VERSION: ::c_int = 3; +pub const CTRL_ATTR_HDRSIZE: ::c_int = 4; +pub const CTRL_ATTR_MAXATTR: ::c_int = 5; +pub const CTRL_ATTR_OPS: ::c_int = 6; +pub const CTRL_ATTR_MCAST_GROUPS: ::c_int = 7; + +pub const CTRL_ATTR_OP_UNSPEC: ::c_int = 0; +pub const CTRL_ATTR_OP_ID: ::c_int = 1; +pub const CTRL_ATTR_OP_FLAGS: ::c_int = 2; + +pub const CTRL_ATTR_MCAST_GRP_UNSPEC: ::c_int = 0; +pub const CTRL_ATTR_MCAST_GRP_NAME: ::c_int = 1; +pub const CTRL_ATTR_MCAST_GRP_ID: ::c_int = 2; + +// linux/if_packet.h +pub const PACKET_ADD_MEMBERSHIP: ::c_int = 1; +pub const PACKET_DROP_MEMBERSHIP: ::c_int = 2; + +pub const PACKET_MR_MULTICAST: ::c_int = 0; +pub const PACKET_MR_PROMISC: ::c_int = 1; +pub const PACKET_MR_ALLMULTI: ::c_int = 2; + +// linux/netfilter.h +pub const NF_DROP: ::c_int = 0; +pub const NF_ACCEPT: ::c_int = 1; +pub const NF_STOLEN: ::c_int = 2; +pub const NF_QUEUE: ::c_int = 3; +pub const NF_REPEAT: ::c_int = 4; +pub const NF_STOP: ::c_int = 5; +pub const NF_MAX_VERDICT: ::c_int = NF_STOP; + +pub const NF_VERDICT_MASK: ::c_int = 0x000000ff; +pub const NF_VERDICT_FLAG_QUEUE_BYPASS: ::c_int = 0x00008000; + +pub const NF_VERDICT_QMASK: ::c_int = 0xffff0000; +pub const NF_VERDICT_QBITS: ::c_int = 16; + +pub const NF_VERDICT_BITS: ::c_int = 16; + +pub const NF_INET_PRE_ROUTING: ::c_int = 0; +pub const NF_INET_LOCAL_IN: ::c_int = 1; +pub const NF_INET_FORWARD: ::c_int = 2; +pub const NF_INET_LOCAL_OUT: ::c_int = 3; +pub const NF_INET_POST_ROUTING: ::c_int = 4; +pub const NF_INET_NUMHOOKS: ::c_int = 5; + +// Some NFPROTO are not compatible with musl and are defined in submodules. +pub const NFPROTO_UNSPEC: ::c_int = 0; +pub const NFPROTO_IPV4: ::c_int = 2; +pub const NFPROTO_ARP: ::c_int = 3; +pub const NFPROTO_BRIDGE: ::c_int = 7; +pub const NFPROTO_IPV6: ::c_int = 10; +pub const NFPROTO_DECNET: ::c_int = 12; +pub const NFPROTO_NUMPROTO: ::c_int = 13; +pub const NFPROTO_INET: ::c_int = 1; +pub const NFPROTO_NETDEV: ::c_int = 5; + +pub const NF_NETDEV_INGRESS: ::c_int = 0; +pub const NF_NETDEV_NUMHOOKS: ::c_int = 1; + +// linux/netfilter_ipv4.h +pub const NF_IP_PRE_ROUTING: ::c_int = 0; +pub const NF_IP_LOCAL_IN: ::c_int = 1; +pub const NF_IP_FORWARD: ::c_int = 2; +pub const NF_IP_LOCAL_OUT: ::c_int = 3; +pub const NF_IP_POST_ROUTING: ::c_int = 4; +pub const NF_IP_NUMHOOKS: ::c_int = 5; + +pub const NF_IP_PRI_FIRST: ::c_int = ::INT_MIN; +pub const NF_IP_PRI_CONNTRACK_DEFRAG: ::c_int = -400; +pub const NF_IP_PRI_RAW: ::c_int = -300; +pub const NF_IP_PRI_SELINUX_FIRST: ::c_int = -225; +pub const NF_IP_PRI_CONNTRACK: ::c_int = -200; +pub const NF_IP_PRI_MANGLE: ::c_int = -150; +pub const NF_IP_PRI_NAT_DST: ::c_int = -100; +pub const NF_IP_PRI_FILTER: ::c_int = 0; +pub const NF_IP_PRI_SECURITY: ::c_int = 50; +pub const NF_IP_PRI_NAT_SRC: ::c_int = 100; +pub const NF_IP_PRI_SELINUX_LAST: ::c_int = 225; +pub const NF_IP_PRI_CONNTRACK_HELPER: ::c_int = 300; +pub const NF_IP_PRI_CONNTRACK_CONFIRM: ::c_int = ::INT_MAX; +pub const NF_IP_PRI_LAST: ::c_int = ::INT_MAX; + +// linux/netfilter_ipv6.h +pub const NF_IP6_PRE_ROUTING: ::c_int = 0; +pub const NF_IP6_LOCAL_IN: ::c_int = 1; +pub const NF_IP6_FORWARD: ::c_int = 2; +pub const NF_IP6_LOCAL_OUT: ::c_int = 3; +pub const NF_IP6_POST_ROUTING: ::c_int = 4; +pub const NF_IP6_NUMHOOKS: ::c_int = 5; + +pub const NF_IP6_PRI_FIRST: ::c_int = ::INT_MIN; +pub const NF_IP6_PRI_CONNTRACK_DEFRAG: ::c_int = -400; +pub const NF_IP6_PRI_RAW: ::c_int = -300; +pub const NF_IP6_PRI_SELINUX_FIRST: ::c_int = -225; +pub const NF_IP6_PRI_CONNTRACK: ::c_int = -200; +pub const NF_IP6_PRI_MANGLE: ::c_int = -150; +pub const NF_IP6_PRI_NAT_DST: ::c_int = -100; +pub const NF_IP6_PRI_FILTER: ::c_int = 0; +pub const NF_IP6_PRI_SECURITY: ::c_int = 50; +pub const NF_IP6_PRI_NAT_SRC: ::c_int = 100; +pub const NF_IP6_PRI_SELINUX_LAST: ::c_int = 225; +pub const NF_IP6_PRI_CONNTRACK_HELPER: ::c_int = 300; +pub const NF_IP6_PRI_LAST: ::c_int = ::INT_MAX; + +// linux/netfilter_ipv6/ip6_tables.h +pub const IP6T_SO_ORIGINAL_DST: ::c_int = 80; + +pub const SIOCADDRT: ::c_ulong = 0x0000890B; +pub const SIOCDELRT: ::c_ulong = 0x0000890C; +pub const SIOCGIFNAME: ::c_ulong = 0x00008910; +pub const SIOCSIFLINK: ::c_ulong = 0x00008911; +pub const SIOCGIFCONF: ::c_ulong = 0x00008912; +pub const SIOCGIFFLAGS: ::c_ulong = 0x00008913; +pub const SIOCSIFFLAGS: ::c_ulong = 0x00008914; +pub const SIOCGIFADDR: ::c_ulong = 0x00008915; +pub const SIOCSIFADDR: ::c_ulong = 0x00008916; +pub const SIOCGIFDSTADDR: ::c_ulong = 0x00008917; +pub const SIOCSIFDSTADDR: ::c_ulong = 0x00008918; +pub const SIOCGIFBRDADDR: ::c_ulong = 0x00008919; +pub const SIOCSIFBRDADDR: ::c_ulong = 0x0000891A; +pub const SIOCGIFNETMASK: ::c_ulong = 0x0000891B; +pub const SIOCSIFNETMASK: ::c_ulong = 0x0000891C; +pub const SIOCGIFMETRIC: ::c_ulong = 0x0000891D; +pub const SIOCSIFMETRIC: ::c_ulong = 0x0000891E; +pub const SIOCGIFMEM: ::c_ulong = 0x0000891F; +pub const SIOCSIFMEM: ::c_ulong = 0x00008920; +pub const SIOCGIFMTU: ::c_ulong = 0x00008921; +pub const SIOCSIFMTU: ::c_ulong = 0x00008922; +pub const SIOCSIFHWADDR: ::c_ulong = 0x00008924; +pub const SIOCGIFENCAP: ::c_ulong = 0x00008925; +pub const SIOCSIFENCAP: ::c_ulong = 0x00008926; +pub const SIOCGIFHWADDR: ::c_ulong = 0x00008927; +pub const SIOCGIFSLAVE: ::c_ulong = 0x00008929; +pub const SIOCSIFSLAVE: ::c_ulong = 0x00008930; +pub const SIOCADDMULTI: ::c_ulong = 0x00008931; +pub const SIOCDELMULTI: ::c_ulong = 0x00008932; +pub const SIOCGIFINDEX: ::c_ulong = 0x00008933; +pub const SIOGIFINDEX: ::c_ulong = SIOCGIFINDEX; +pub const SIOCSIFPFLAGS: ::c_ulong = 0x00008934; +pub const SIOCGIFPFLAGS: ::c_ulong = 0x00008935; +pub const SIOCDIFADDR: ::c_ulong = 0x00008936; +pub const SIOCSIFHWBROADCAST: ::c_ulong = 0x00008937; +pub const SIOCGIFCOUNT: ::c_ulong = 0x00008938; +pub const SIOCGIFBR: ::c_ulong = 0x00008940; +pub const SIOCSIFBR: ::c_ulong = 0x00008941; +pub const SIOCGIFTXQLEN: ::c_ulong = 0x00008942; +pub const SIOCSIFTXQLEN: ::c_ulong = 0x00008943; +pub const SIOCETHTOOL: ::c_ulong = 0x00008946; +pub const SIOCGMIIPHY: ::c_ulong = 0x00008947; +pub const SIOCGMIIREG: ::c_ulong = 0x00008948; +pub const SIOCSMIIREG: ::c_ulong = 0x00008949; +pub const SIOCWANDEV: ::c_ulong = 0x0000894A; +pub const SIOCOUTQNSD: ::c_ulong = 0x0000894B; +pub const SIOCGSKNS: ::c_ulong = 0x0000894C; +pub const SIOCDARP: ::c_ulong = 0x00008953; +pub const SIOCGARP: ::c_ulong = 0x00008954; +pub const SIOCSARP: ::c_ulong = 0x00008955; +pub const SIOCDRARP: ::c_ulong = 0x00008960; +pub const SIOCGRARP: ::c_ulong = 0x00008961; +pub const SIOCSRARP: ::c_ulong = 0x00008962; +pub const SIOCGIFMAP: ::c_ulong = 0x00008970; +pub const SIOCSIFMAP: ::c_ulong = 0x00008971; +pub const SIOCSHWTSTAMP: ::c_ulong = 0x000089b0; +pub const SIOCGHWTSTAMP: ::c_ulong = 0x000089b1; + +pub const IPTOS_TOS_MASK: u8 = 0x1E; +pub const IPTOS_PREC_MASK: u8 = 0xE0; + +pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; + +pub const RTF_UP: ::c_ushort = 0x0001; +pub const RTF_GATEWAY: ::c_ushort = 0x0002; + +pub const RTF_HOST: ::c_ushort = 0x0004; +pub const RTF_REINSTATE: ::c_ushort = 0x0008; +pub const RTF_DYNAMIC: ::c_ushort = 0x0010; +pub const RTF_MODIFIED: ::c_ushort = 0x0020; +pub const RTF_MTU: ::c_ushort = 0x0040; +pub const RTF_MSS: ::c_ushort = RTF_MTU; +pub const RTF_WINDOW: ::c_ushort = 0x0080; +pub const RTF_IRTT: ::c_ushort = 0x0100; +pub const RTF_REJECT: ::c_ushort = 0x0200; +pub const RTF_STATIC: ::c_ushort = 0x0400; +pub const RTF_XRESOLVE: ::c_ushort = 0x0800; +pub const RTF_NOFORWARD: ::c_ushort = 0x1000; +pub const RTF_THROW: ::c_ushort = 0x2000; +pub const RTF_NOPMTUDISC: ::c_ushort = 0x4000; + +pub const RTF_DEFAULT: u32 = 0x00010000; +pub const RTF_ALLONLINK: u32 = 0x00020000; +pub const RTF_ADDRCONF: u32 = 0x00040000; +pub const RTF_LINKRT: u32 = 0x00100000; +pub const RTF_NONEXTHOP: u32 = 0x00200000; +pub const RTF_CACHE: u32 = 0x01000000; +pub const RTF_FLOW: u32 = 0x02000000; +pub const RTF_POLICY: u32 = 0x04000000; + +pub const RTCF_VALVE: u32 = 0x00200000; +pub const RTCF_MASQ: u32 = 0x00400000; +pub const RTCF_NAT: u32 = 0x00800000; +pub const RTCF_DOREDIRECT: u32 = 0x01000000; +pub const RTCF_LOG: u32 = 0x02000000; +pub const RTCF_DIRECTSRC: u32 = 0x04000000; + +pub const RTF_LOCAL: u32 = 0x80000000; +pub const RTF_INTERFACE: u32 = 0x40000000; +pub const RTF_MULTICAST: u32 = 0x20000000; +pub const RTF_BROADCAST: u32 = 0x10000000; +pub const RTF_NAT: u32 = 0x08000000; +pub const RTF_ADDRCLASSMASK: u32 = 0xF8000000; + +pub const RT_CLASS_UNSPEC: u8 = 0; +pub const RT_CLASS_DEFAULT: u8 = 253; +pub const RT_CLASS_MAIN: u8 = 254; +pub const RT_CLASS_LOCAL: u8 = 255; +pub const RT_CLASS_MAX: u8 = 255; + +// linux/neighbor.h +pub const NUD_NONE: u16 = 0x00; +pub const NUD_INCOMPLETE: u16 = 0x01; +pub const NUD_REACHABLE: u16 = 0x02; +pub const NUD_STALE: u16 = 0x04; +pub const NUD_DELAY: u16 = 0x08; +pub const NUD_PROBE: u16 = 0x10; +pub const NUD_FAILED: u16 = 0x20; +pub const NUD_NOARP: u16 = 0x40; +pub const NUD_PERMANENT: u16 = 0x80; + +pub const NTF_USE: u8 = 0x01; +pub const NTF_SELF: u8 = 0x02; +pub const NTF_MASTER: u8 = 0x04; +pub const NTF_PROXY: u8 = 0x08; +pub const NTF_ROUTER: u8 = 0x80; + +pub const NDA_UNSPEC: ::c_ushort = 0; +pub const NDA_DST: ::c_ushort = 1; +pub const NDA_LLADDR: ::c_ushort = 2; +pub const NDA_CACHEINFO: ::c_ushort = 3; +pub const NDA_PROBES: ::c_ushort = 4; +pub const NDA_VLAN: ::c_ushort = 5; +pub const NDA_PORT: ::c_ushort = 6; +pub const NDA_VNI: ::c_ushort = 7; +pub const NDA_IFINDEX: ::c_ushort = 8; + +// linux/netlink.h +pub const NLA_ALIGNTO: ::c_int = 4; + +pub const NETLINK_ROUTE: ::c_int = 0; +pub const NETLINK_UNUSED: ::c_int = 1; +pub const NETLINK_USERSOCK: ::c_int = 2; +pub const NETLINK_FIREWALL: ::c_int = 3; +pub const NETLINK_SOCK_DIAG: ::c_int = 4; +pub const NETLINK_NFLOG: ::c_int = 5; +pub const NETLINK_XFRM: ::c_int = 6; +pub const NETLINK_SELINUX: ::c_int = 7; +pub const NETLINK_ISCSI: ::c_int = 8; +pub const NETLINK_AUDIT: ::c_int = 9; +pub const NETLINK_FIB_LOOKUP: ::c_int = 10; +pub const NETLINK_CONNECTOR: ::c_int = 11; +pub const NETLINK_NETFILTER: ::c_int = 12; +pub const NETLINK_IP6_FW: ::c_int = 13; +pub const NETLINK_DNRTMSG: ::c_int = 14; +pub const NETLINK_KOBJECT_UEVENT: ::c_int = 15; +pub const NETLINK_GENERIC: ::c_int = 16; +pub const NETLINK_SCSITRANSPORT: ::c_int = 18; +pub const NETLINK_ECRYPTFS: ::c_int = 19; +pub const NETLINK_RDMA: ::c_int = 20; +pub const NETLINK_CRYPTO: ::c_int = 21; +pub const NETLINK_INET_DIAG: ::c_int = NETLINK_SOCK_DIAG; + +pub const NLM_F_REQUEST: ::c_int = 1; +pub const NLM_F_MULTI: ::c_int = 2; +pub const NLM_F_ACK: ::c_int = 4; +pub const NLM_F_ECHO: ::c_int = 8; +pub const NLM_F_DUMP_INTR: ::c_int = 16; +pub const NLM_F_DUMP_FILTERED: ::c_int = 32; + +pub const NLM_F_ROOT: ::c_int = 0x100; +pub const NLM_F_MATCH: ::c_int = 0x200; +pub const NLM_F_ATOMIC: ::c_int = 0x400; +pub const NLM_F_DUMP: ::c_int = NLM_F_ROOT | NLM_F_MATCH; + +pub const NLM_F_REPLACE: ::c_int = 0x100; +pub const NLM_F_EXCL: ::c_int = 0x200; +pub const NLM_F_CREATE: ::c_int = 0x400; +pub const NLM_F_APPEND: ::c_int = 0x800; + +pub const NETLINK_ADD_MEMBERSHIP: ::c_int = 1; +pub const NETLINK_DROP_MEMBERSHIP: ::c_int = 2; +pub const NETLINK_PKTINFO: ::c_int = 3; +pub const NETLINK_BROADCAST_ERROR: ::c_int = 4; +pub const NETLINK_NO_ENOBUFS: ::c_int = 5; +pub const NETLINK_RX_RING: ::c_int = 6; +pub const NETLINK_TX_RING: ::c_int = 7; +pub const NETLINK_LISTEN_ALL_NSID: ::c_int = 8; +pub const NETLINK_LIST_MEMBERSHIPS: ::c_int = 9; +pub const NETLINK_CAP_ACK: ::c_int = 10; +pub const NETLINK_EXT_ACK: ::c_int = 11; +pub const NETLINK_GET_STRICT_CHK: ::c_int = 12; + +pub const NLA_F_NESTED: ::c_int = 1 << 15; +pub const NLA_F_NET_BYTEORDER: ::c_int = 1 << 14; +pub const NLA_TYPE_MASK: ::c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); + +// linux/rtnetlink.h +pub const TCA_UNSPEC: ::c_ushort = 0; +pub const TCA_KIND: ::c_ushort = 1; +pub const TCA_OPTIONS: ::c_ushort = 2; +pub const TCA_STATS: ::c_ushort = 3; +pub const TCA_XSTATS: ::c_ushort = 4; +pub const TCA_RATE: ::c_ushort = 5; +pub const TCA_FCNT: ::c_ushort = 6; +pub const TCA_STATS2: ::c_ushort = 7; +pub const TCA_STAB: ::c_ushort = 8; + +pub const RTM_NEWLINK: u16 = 16; +pub const RTM_DELLINK: u16 = 17; +pub const RTM_GETLINK: u16 = 18; +pub const RTM_SETLINK: u16 = 19; +pub const RTM_NEWADDR: u16 = 20; +pub const RTM_DELADDR: u16 = 21; +pub const RTM_GETADDR: u16 = 22; +pub const RTM_NEWROUTE: u16 = 24; +pub const RTM_DELROUTE: u16 = 25; +pub const RTM_GETROUTE: u16 = 26; +pub const RTM_NEWNEIGH: u16 = 28; +pub const RTM_DELNEIGH: u16 = 29; +pub const RTM_GETNEIGH: u16 = 30; +pub const RTM_NEWRULE: u16 = 32; +pub const RTM_DELRULE: u16 = 33; +pub const RTM_GETRULE: u16 = 34; +pub const RTM_NEWQDISC: u16 = 36; +pub const RTM_DELQDISC: u16 = 37; +pub const RTM_GETQDISC: u16 = 38; +pub const RTM_NEWTCLASS: u16 = 40; +pub const RTM_DELTCLASS: u16 = 41; +pub const RTM_GETTCLASS: u16 = 42; +pub const RTM_NEWTFILTER: u16 = 44; +pub const RTM_DELTFILTER: u16 = 45; +pub const RTM_GETTFILTER: u16 = 46; +pub const RTM_NEWACTION: u16 = 48; +pub const RTM_DELACTION: u16 = 49; +pub const RTM_GETACTION: u16 = 50; +pub const RTM_NEWPREFIX: u16 = 52; +pub const RTM_GETMULTICAST: u16 = 58; +pub const RTM_GETANYCAST: u16 = 62; +pub const RTM_NEWNEIGHTBL: u16 = 64; +pub const RTM_GETNEIGHTBL: u16 = 66; +pub const RTM_SETNEIGHTBL: u16 = 67; +pub const RTM_NEWNDUSEROPT: u16 = 68; +pub const RTM_NEWADDRLABEL: u16 = 72; +pub const RTM_DELADDRLABEL: u16 = 73; +pub const RTM_GETADDRLABEL: u16 = 74; +pub const RTM_GETDCB: u16 = 78; +pub const RTM_SETDCB: u16 = 79; +pub const RTM_NEWNETCONF: u16 = 80; +pub const RTM_GETNETCONF: u16 = 82; +pub const RTM_NEWMDB: u16 = 84; +pub const RTM_DELMDB: u16 = 85; +pub const RTM_GETMDB: u16 = 86; +pub const RTM_NEWNSID: u16 = 88; +pub const RTM_DELNSID: u16 = 89; +pub const RTM_GETNSID: u16 = 90; + +pub const RTM_F_NOTIFY: ::c_uint = 0x100; +pub const RTM_F_CLONED: ::c_uint = 0x200; +pub const RTM_F_EQUALIZE: ::c_uint = 0x400; +pub const RTM_F_PREFIX: ::c_uint = 0x800; + +pub const RTA_UNSPEC: ::c_ushort = 0; +pub const RTA_DST: ::c_ushort = 1; +pub const RTA_SRC: ::c_ushort = 2; +pub const RTA_IIF: ::c_ushort = 3; +pub const RTA_OIF: ::c_ushort = 4; +pub const RTA_GATEWAY: ::c_ushort = 5; +pub const RTA_PRIORITY: ::c_ushort = 6; +pub const RTA_PREFSRC: ::c_ushort = 7; +pub const RTA_METRICS: ::c_ushort = 8; +pub const RTA_MULTIPATH: ::c_ushort = 9; +pub const RTA_PROTOINFO: ::c_ushort = 10; // No longer used +pub const RTA_FLOW: ::c_ushort = 11; +pub const RTA_CACHEINFO: ::c_ushort = 12; +pub const RTA_SESSION: ::c_ushort = 13; // No longer used +pub const RTA_MP_ALGO: ::c_ushort = 14; // No longer used +pub const RTA_TABLE: ::c_ushort = 15; +pub const RTA_MARK: ::c_ushort = 16; +pub const RTA_MFC_STATS: ::c_ushort = 17; + +pub const RTN_UNSPEC: ::c_uchar = 0; +pub const RTN_UNICAST: ::c_uchar = 1; +pub const RTN_LOCAL: ::c_uchar = 2; +pub const RTN_BROADCAST: ::c_uchar = 3; +pub const RTN_ANYCAST: ::c_uchar = 4; +pub const RTN_MULTICAST: ::c_uchar = 5; +pub const RTN_BLACKHOLE: ::c_uchar = 6; +pub const RTN_UNREACHABLE: ::c_uchar = 7; +pub const RTN_PROHIBIT: ::c_uchar = 8; +pub const RTN_THROW: ::c_uchar = 9; +pub const RTN_NAT: ::c_uchar = 10; +pub const RTN_XRESOLVE: ::c_uchar = 11; + +pub const RTPROT_UNSPEC: ::c_uchar = 0; +pub const RTPROT_REDIRECT: ::c_uchar = 1; +pub const RTPROT_KERNEL: ::c_uchar = 2; +pub const RTPROT_BOOT: ::c_uchar = 3; +pub const RTPROT_STATIC: ::c_uchar = 4; + +pub const RT_SCOPE_UNIVERSE: ::c_uchar = 0; +pub const RT_SCOPE_SITE: ::c_uchar = 200; +pub const RT_SCOPE_LINK: ::c_uchar = 253; +pub const RT_SCOPE_HOST: ::c_uchar = 254; +pub const RT_SCOPE_NOWHERE: ::c_uchar = 255; + +pub const RT_TABLE_UNSPEC: ::c_uchar = 0; +pub const RT_TABLE_COMPAT: ::c_uchar = 252; +pub const RT_TABLE_DEFAULT: ::c_uchar = 253; +pub const RT_TABLE_MAIN: ::c_uchar = 254; +pub const RT_TABLE_LOCAL: ::c_uchar = 255; + +pub const RTMSG_OVERRUN: u32 = ::NLMSG_OVERRUN as u32; +pub const RTMSG_NEWDEVICE: u32 = 0x11; +pub const RTMSG_DELDEVICE: u32 = 0x12; +pub const RTMSG_NEWROUTE: u32 = 0x21; +pub const RTMSG_DELROUTE: u32 = 0x22; +pub const RTMSG_NEWRULE: u32 = 0x31; +pub const RTMSG_DELRULE: u32 = 0x32; +pub const RTMSG_CONTROL: u32 = 0x40; +pub const RTMSG_AR_FAILED: u32 = 0x51; + +pub const MAX_ADDR_LEN: usize = 7; +pub const ARPD_UPDATE: ::c_ushort = 0x01; +pub const ARPD_LOOKUP: ::c_ushort = 0x02; +pub const ARPD_FLUSH: ::c_ushort = 0x03; +pub const ATF_MAGIC: ::c_int = 0x80; + +pub const RTEXT_FILTER_VF: ::c_int = 1 << 0; +pub const RTEXT_FILTER_BRVLAN: ::c_int = 1 << 1; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: ::c_int = 1 << 2; +pub const RTEXT_FILTER_SKIP_STATS: ::c_int = 1 << 3; +pub const RTEXT_FILTER_MRP: ::c_int = 1 << 4; +pub const RTEXT_FILTER_CFM_CONFIG: ::c_int = 1 << 5; +pub const RTEXT_FILTER_CFM_STATUS: ::c_int = 1 << 6; + +// userspace compat definitions for RTNLGRP_* +pub const RTMGRP_LINK: ::c_int = 0x00001; +pub const RTMGRP_NOTIFY: ::c_int = 0x00002; +pub const RTMGRP_NEIGH: ::c_int = 0x00004; +pub const RTMGRP_TC: ::c_int = 0x00008; +pub const RTMGRP_IPV4_IFADDR: ::c_int = 0x00010; +pub const RTMGRP_IPV4_MROUTE: ::c_int = 0x00020; +pub const RTMGRP_IPV4_ROUTE: ::c_int = 0x00040; +pub const RTMGRP_IPV4_RULE: ::c_int = 0x00080; +pub const RTMGRP_IPV6_IFADDR: ::c_int = 0x00100; +pub const RTMGRP_IPV6_MROUTE: ::c_int = 0x00200; +pub const RTMGRP_IPV6_ROUTE: ::c_int = 0x00400; +pub const RTMGRP_IPV6_IFINFO: ::c_int = 0x00800; +pub const RTMGRP_DECnet_IFADDR: ::c_int = 0x01000; +pub const RTMGRP_DECnet_ROUTE: ::c_int = 0x04000; +pub const RTMGRP_IPV6_PREFIX: ::c_int = 0x20000; + +// enum rtnetlink_groups +pub const RTNLGRP_NONE: ::c_uint = 0x00; +pub const RTNLGRP_LINK: ::c_uint = 0x01; +pub const RTNLGRP_NOTIFY: ::c_uint = 0x02; +pub const RTNLGRP_NEIGH: ::c_uint = 0x03; +pub const RTNLGRP_TC: ::c_uint = 0x04; +pub const RTNLGRP_IPV4_IFADDR: ::c_uint = 0x05; +pub const RTNLGRP_IPV4_MROUTE: ::c_uint = 0x06; +pub const RTNLGRP_IPV4_ROUTE: ::c_uint = 0x07; +pub const RTNLGRP_IPV4_RULE: ::c_uint = 0x08; +pub const RTNLGRP_IPV6_IFADDR: ::c_uint = 0x09; +pub const RTNLGRP_IPV6_MROUTE: ::c_uint = 0x0a; +pub const RTNLGRP_IPV6_ROUTE: ::c_uint = 0x0b; +pub const RTNLGRP_IPV6_IFINFO: ::c_uint = 0x0c; +pub const RTNLGRP_DECnet_IFADDR: ::c_uint = 0x0d; +pub const RTNLGRP_NOP2: ::c_uint = 0x0e; +pub const RTNLGRP_DECnet_ROUTE: ::c_uint = 0x0f; +pub const RTNLGRP_DECnet_RULE: ::c_uint = 0x10; +pub const RTNLGRP_NOP4: ::c_uint = 0x11; +pub const RTNLGRP_IPV6_PREFIX: ::c_uint = 0x12; +pub const RTNLGRP_IPV6_RULE: ::c_uint = 0x13; +pub const RTNLGRP_ND_USEROPT: ::c_uint = 0x14; +pub const RTNLGRP_PHONET_IFADDR: ::c_uint = 0x15; +pub const RTNLGRP_PHONET_ROUTE: ::c_uint = 0x16; +pub const RTNLGRP_DCB: ::c_uint = 0x17; +pub const RTNLGRP_IPV4_NETCONF: ::c_uint = 0x18; +pub const RTNLGRP_IPV6_NETCONF: ::c_uint = 0x19; +pub const RTNLGRP_MDB: ::c_uint = 0x1a; +pub const RTNLGRP_MPLS_ROUTE: ::c_uint = 0x1b; +pub const RTNLGRP_NSID: ::c_uint = 0x1c; +pub const RTNLGRP_MPLS_NETCONF: ::c_uint = 0x1d; +pub const RTNLGRP_IPV4_MROUTE_R: ::c_uint = 0x1e; +pub const RTNLGRP_IPV6_MROUTE_R: ::c_uint = 0x1f; +pub const RTNLGRP_NEXTHOP: ::c_uint = 0x20; +pub const RTNLGRP_BRVLAN: ::c_uint = 0x21; +pub const RTNLGRP_MCTP_IFADDR: ::c_uint = 0x22; +pub const RTNLGRP_TUNNEL: ::c_uint = 0x23; +pub const RTNLGRP_STATS: ::c_uint = 0x24; + +// linux/module.h +pub const MODULE_INIT_IGNORE_MODVERSIONS: ::c_uint = 0x0001; +pub const MODULE_INIT_IGNORE_VERMAGIC: ::c_uint = 0x0002; + +// linux/net_tstamp.h +pub const SOF_TIMESTAMPING_TX_HARDWARE: ::c_uint = 1 << 0; +pub const SOF_TIMESTAMPING_TX_SOFTWARE: ::c_uint = 1 << 1; +pub const SOF_TIMESTAMPING_RX_HARDWARE: ::c_uint = 1 << 2; +pub const SOF_TIMESTAMPING_RX_SOFTWARE: ::c_uint = 1 << 3; +pub const SOF_TIMESTAMPING_SOFTWARE: ::c_uint = 1 << 4; +pub const SOF_TIMESTAMPING_SYS_HARDWARE: ::c_uint = 1 << 5; +pub const SOF_TIMESTAMPING_RAW_HARDWARE: ::c_uint = 1 << 6; +pub const SOF_TIMESTAMPING_OPT_ID: ::c_uint = 1 << 7; +pub const SOF_TIMESTAMPING_TX_SCHED: ::c_uint = 1 << 8; +pub const SOF_TIMESTAMPING_TX_ACK: ::c_uint = 1 << 9; +pub const SOF_TIMESTAMPING_OPT_CMSG: ::c_uint = 1 << 10; +pub const SOF_TIMESTAMPING_OPT_TSONLY: ::c_uint = 1 << 11; +pub const SOF_TIMESTAMPING_OPT_STATS: ::c_uint = 1 << 12; +pub const SOF_TIMESTAMPING_OPT_PKTINFO: ::c_uint = 1 << 13; +pub const SOF_TIMESTAMPING_OPT_TX_SWHW: ::c_uint = 1 << 14; +pub const SOF_TXTIME_DEADLINE_MODE: u32 = 1 << 0; +pub const SOF_TXTIME_REPORT_ERRORS: u32 = 1 << 1; + +pub const HWTSTAMP_TX_OFF: ::c_uint = 0; +pub const HWTSTAMP_TX_ON: ::c_uint = 1; +pub const HWTSTAMP_TX_ONESTEP_SYNC: ::c_uint = 2; +pub const HWTSTAMP_TX_ONESTEP_P2P: ::c_uint = 3; + +pub const HWTSTAMP_FILTER_NONE: ::c_uint = 0; +pub const HWTSTAMP_FILTER_ALL: ::c_uint = 1; +pub const HWTSTAMP_FILTER_SOME: ::c_uint = 2; +pub const HWTSTAMP_FILTER_PTP_V1_L4_EVENT: ::c_uint = 3; +pub const HWTSTAMP_FILTER_PTP_V1_L4_SYNC: ::c_uint = 4; +pub const HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ: ::c_uint = 5; +pub const HWTSTAMP_FILTER_PTP_V2_L4_EVENT: ::c_uint = 6; +pub const HWTSTAMP_FILTER_PTP_V2_L4_SYNC: ::c_uint = 7; +pub const HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ: ::c_uint = 8; +pub const HWTSTAMP_FILTER_PTP_V2_L2_EVENT: ::c_uint = 9; +pub const HWTSTAMP_FILTER_PTP_V2_L2_SYNC: ::c_uint = 10; +pub const HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ: ::c_uint = 11; +pub const HWTSTAMP_FILTER_PTP_V2_EVENT: ::c_uint = 12; +pub const HWTSTAMP_FILTER_PTP_V2_SYNC: ::c_uint = 13; +pub const HWTSTAMP_FILTER_PTP_V2_DELAY_REQ: ::c_uint = 14; +pub const HWTSTAMP_FILTER_NTP_ALL: ::c_uint = 15; + +// linux/if_alg.h +pub const ALG_SET_KEY: ::c_int = 1; +pub const ALG_SET_IV: ::c_int = 2; +pub const ALG_SET_OP: ::c_int = 3; +pub const ALG_SET_AEAD_ASSOCLEN: ::c_int = 4; +pub const ALG_SET_AEAD_AUTHSIZE: ::c_int = 5; + +pub const ALG_OP_DECRYPT: ::c_int = 0; +pub const ALG_OP_ENCRYPT: ::c_int = 1; + +// include/uapi/linux/if.h +pub const IF_OPER_UNKNOWN: ::c_int = 0; +pub const IF_OPER_NOTPRESENT: ::c_int = 1; +pub const IF_OPER_DOWN: ::c_int = 2; +pub const IF_OPER_LOWERLAYERDOWN: ::c_int = 3; +pub const IF_OPER_TESTING: ::c_int = 4; +pub const IF_OPER_DORMANT: ::c_int = 5; +pub const IF_OPER_UP: ::c_int = 6; + +pub const IF_LINK_MODE_DEFAULT: ::c_int = 0; +pub const IF_LINK_MODE_DORMANT: ::c_int = 1; +pub const IF_LINK_MODE_TESTING: ::c_int = 2; + +// include/uapi/linux/udp.h +pub const UDP_CORK: ::c_int = 1; +pub const UDP_ENCAP: ::c_int = 100; +pub const UDP_NO_CHECK6_TX: ::c_int = 101; +pub const UDP_NO_CHECK6_RX: ::c_int = 102; + +// include/uapi/linux/mman.h +pub const MAP_SHARED_VALIDATE: ::c_int = 0x3; + +// include/uapi/asm-generic/mman-common.h +pub const MAP_FIXED_NOREPLACE: ::c_int = 0x100000; +pub const MLOCK_ONFAULT: ::c_uint = 0x01; + +// uapi/linux/vm_sockets.h +pub const VMADDR_CID_ANY: ::c_uint = 0xFFFFFFFF; +pub const VMADDR_CID_HYPERVISOR: ::c_uint = 0; +#[deprecated( + since = "0.2.74", + note = "VMADDR_CID_RESERVED is removed since Linux v5.6 and \ + replaced with VMADDR_CID_LOCAL" +)] +pub const VMADDR_CID_RESERVED: ::c_uint = 1; +pub const VMADDR_CID_LOCAL: ::c_uint = 1; +pub const VMADDR_CID_HOST: ::c_uint = 2; +pub const VMADDR_PORT_ANY: ::c_uint = 0xFFFFFFFF; + +// uapi/linux/inotify.h +pub const IN_ACCESS: u32 = 0x0000_0001; +pub const IN_MODIFY: u32 = 0x0000_0002; +pub const IN_ATTRIB: u32 = 0x0000_0004; +pub const IN_CLOSE_WRITE: u32 = 0x0000_0008; +pub const IN_CLOSE_NOWRITE: u32 = 0x0000_0010; +pub const IN_CLOSE: u32 = IN_CLOSE_WRITE | IN_CLOSE_NOWRITE; +pub const IN_OPEN: u32 = 0x0000_0020; +pub const IN_MOVED_FROM: u32 = 0x0000_0040; +pub const IN_MOVED_TO: u32 = 0x0000_0080; +pub const IN_MOVE: u32 = IN_MOVED_FROM | IN_MOVED_TO; +pub const IN_CREATE: u32 = 0x0000_0100; +pub const IN_DELETE: u32 = 0x0000_0200; +pub const IN_DELETE_SELF: u32 = 0x0000_0400; +pub const IN_MOVE_SELF: u32 = 0x0000_0800; +pub const IN_UNMOUNT: u32 = 0x0000_2000; +pub const IN_Q_OVERFLOW: u32 = 0x0000_4000; +pub const IN_IGNORED: u32 = 0x0000_8000; +pub const IN_ONLYDIR: u32 = 0x0100_0000; +pub const IN_DONT_FOLLOW: u32 = 0x0200_0000; +pub const IN_EXCL_UNLINK: u32 = 0x0400_0000; + +// linux/keyctl.h +pub const KEY_SPEC_THREAD_KEYRING: i32 = -1; +pub const KEY_SPEC_PROCESS_KEYRING: i32 = -2; +pub const KEY_SPEC_SESSION_KEYRING: i32 = -3; +pub const KEY_SPEC_USER_KEYRING: i32 = -4; +pub const KEY_SPEC_USER_SESSION_KEYRING: i32 = -5; +pub const KEY_SPEC_GROUP_KEYRING: i32 = -6; +pub const KEY_SPEC_REQKEY_AUTH_KEY: i32 = -7; +pub const KEY_SPEC_REQUESTOR_KEYRING: i32 = -8; + +pub const KEY_REQKEY_DEFL_NO_CHANGE: i32 = -1; +pub const KEY_REQKEY_DEFL_DEFAULT: i32 = 0; +pub const KEY_REQKEY_DEFL_THREAD_KEYRING: i32 = 1; +pub const KEY_REQKEY_DEFL_PROCESS_KEYRING: i32 = 2; +pub const KEY_REQKEY_DEFL_SESSION_KEYRING: i32 = 3; +pub const KEY_REQKEY_DEFL_USER_KEYRING: i32 = 4; +pub const KEY_REQKEY_DEFL_USER_SESSION_KEYRING: i32 = 5; +pub const KEY_REQKEY_DEFL_GROUP_KEYRING: i32 = 6; +pub const KEY_REQKEY_DEFL_REQUESTOR_KEYRING: i32 = 7; + +pub const KEYCTL_GET_KEYRING_ID: u32 = 0; +pub const KEYCTL_JOIN_SESSION_KEYRING: u32 = 1; +pub const KEYCTL_UPDATE: u32 = 2; +pub const KEYCTL_REVOKE: u32 = 3; +pub const KEYCTL_CHOWN: u32 = 4; +pub const KEYCTL_SETPERM: u32 = 5; +pub const KEYCTL_DESCRIBE: u32 = 6; +pub const KEYCTL_CLEAR: u32 = 7; +pub const KEYCTL_LINK: u32 = 8; +pub const KEYCTL_UNLINK: u32 = 9; +pub const KEYCTL_SEARCH: u32 = 10; +pub const KEYCTL_READ: u32 = 11; +pub const KEYCTL_INSTANTIATE: u32 = 12; +pub const KEYCTL_NEGATE: u32 = 13; +pub const KEYCTL_SET_REQKEY_KEYRING: u32 = 14; +pub const KEYCTL_SET_TIMEOUT: u32 = 15; +pub const KEYCTL_ASSUME_AUTHORITY: u32 = 16; +pub const KEYCTL_GET_SECURITY: u32 = 17; +pub const KEYCTL_SESSION_TO_PARENT: u32 = 18; +pub const KEYCTL_REJECT: u32 = 19; +pub const KEYCTL_INSTANTIATE_IOV: u32 = 20; +pub const KEYCTL_INVALIDATE: u32 = 21; +pub const KEYCTL_GET_PERSISTENT: u32 = 22; + +pub const IN_MASK_CREATE: u32 = 0x1000_0000; +pub const IN_MASK_ADD: u32 = 0x2000_0000; +pub const IN_ISDIR: u32 = 0x4000_0000; +pub const IN_ONESHOT: u32 = 0x8000_0000; + +pub const IN_ALL_EVENTS: u32 = IN_ACCESS + | IN_MODIFY + | IN_ATTRIB + | IN_CLOSE_WRITE + | IN_CLOSE_NOWRITE + | IN_OPEN + | IN_MOVED_FROM + | IN_MOVED_TO + | IN_DELETE + | IN_CREATE + | IN_DELETE_SELF + | IN_MOVE_SELF; + +pub const IN_CLOEXEC: ::c_int = O_CLOEXEC; +pub const IN_NONBLOCK: ::c_int = O_NONBLOCK; + +// uapi/linux/mount.h +pub const OPEN_TREE_CLONE: ::c_uint = 0x01; +pub const OPEN_TREE_CLOEXEC: ::c_uint = O_CLOEXEC as ::c_uint; + +// uapi/linux/netfilter/nf_tables.h +pub const NFT_TABLE_MAXNAMELEN: ::c_int = 256; +pub const NFT_CHAIN_MAXNAMELEN: ::c_int = 256; +pub const NFT_SET_MAXNAMELEN: ::c_int = 256; +pub const NFT_OBJ_MAXNAMELEN: ::c_int = 256; +pub const NFT_USERDATA_MAXLEN: ::c_int = 256; + +pub const NFT_REG_VERDICT: ::c_int = 0; +pub const NFT_REG_1: ::c_int = 1; +pub const NFT_REG_2: ::c_int = 2; +pub const NFT_REG_3: ::c_int = 3; +pub const NFT_REG_4: ::c_int = 4; +pub const __NFT_REG_MAX: ::c_int = 5; +pub const NFT_REG32_00: ::c_int = 8; +pub const NFT_REG32_01: ::c_int = 9; +pub const NFT_REG32_02: ::c_int = 10; +pub const NFT_REG32_03: ::c_int = 11; +pub const NFT_REG32_04: ::c_int = 12; +pub const NFT_REG32_05: ::c_int = 13; +pub const NFT_REG32_06: ::c_int = 14; +pub const NFT_REG32_07: ::c_int = 15; +pub const NFT_REG32_08: ::c_int = 16; +pub const NFT_REG32_09: ::c_int = 17; +pub const NFT_REG32_10: ::c_int = 18; +pub const NFT_REG32_11: ::c_int = 19; +pub const NFT_REG32_12: ::c_int = 20; +pub const NFT_REG32_13: ::c_int = 21; +pub const NFT_REG32_14: ::c_int = 22; +pub const NFT_REG32_15: ::c_int = 23; + +pub const NFT_REG_SIZE: ::c_int = 16; +pub const NFT_REG32_SIZE: ::c_int = 4; + +pub const NFT_CONTINUE: ::c_int = -1; +pub const NFT_BREAK: ::c_int = -2; +pub const NFT_JUMP: ::c_int = -3; +pub const NFT_GOTO: ::c_int = -4; +pub const NFT_RETURN: ::c_int = -5; + +pub const NFT_MSG_NEWTABLE: ::c_int = 0; +pub const NFT_MSG_GETTABLE: ::c_int = 1; +pub const NFT_MSG_DELTABLE: ::c_int = 2; +pub const NFT_MSG_NEWCHAIN: ::c_int = 3; +pub const NFT_MSG_GETCHAIN: ::c_int = 4; +pub const NFT_MSG_DELCHAIN: ::c_int = 5; +pub const NFT_MSG_NEWRULE: ::c_int = 6; +pub const NFT_MSG_GETRULE: ::c_int = 7; +pub const NFT_MSG_DELRULE: ::c_int = 8; +pub const NFT_MSG_NEWSET: ::c_int = 9; +pub const NFT_MSG_GETSET: ::c_int = 10; +pub const NFT_MSG_DELSET: ::c_int = 11; +pub const NFT_MSG_NEWSETELEM: ::c_int = 12; +pub const NFT_MSG_GETSETELEM: ::c_int = 13; +pub const NFT_MSG_DELSETELEM: ::c_int = 14; +pub const NFT_MSG_NEWGEN: ::c_int = 15; +pub const NFT_MSG_GETGEN: ::c_int = 16; +pub const NFT_MSG_TRACE: ::c_int = 17; +cfg_if! { + if #[cfg(not(target_arch = "sparc64"))] { + pub const NFT_MSG_NEWOBJ: ::c_int = 18; + pub const NFT_MSG_GETOBJ: ::c_int = 19; + pub const NFT_MSG_DELOBJ: ::c_int = 20; + pub const NFT_MSG_GETOBJ_RESET: ::c_int = 21; + } +} +pub const NFT_MSG_MAX: ::c_int = 25; + +pub const NFT_SET_ANONYMOUS: ::c_int = 0x1; +pub const NFT_SET_CONSTANT: ::c_int = 0x2; +pub const NFT_SET_INTERVAL: ::c_int = 0x4; +pub const NFT_SET_MAP: ::c_int = 0x8; +pub const NFT_SET_TIMEOUT: ::c_int = 0x10; +pub const NFT_SET_EVAL: ::c_int = 0x20; + +pub const NFT_SET_POL_PERFORMANCE: ::c_int = 0; +pub const NFT_SET_POL_MEMORY: ::c_int = 1; + +pub const NFT_SET_ELEM_INTERVAL_END: ::c_int = 0x1; + +pub const NFT_DATA_VALUE: ::c_uint = 0; +pub const NFT_DATA_VERDICT: ::c_uint = 0xffffff00; + +pub const NFT_DATA_RESERVED_MASK: ::c_uint = 0xffffff00; + +pub const NFT_DATA_VALUE_MAXLEN: ::c_int = 64; + +pub const NFT_BYTEORDER_NTOH: ::c_int = 0; +pub const NFT_BYTEORDER_HTON: ::c_int = 1; + +pub const NFT_CMP_EQ: ::c_int = 0; +pub const NFT_CMP_NEQ: ::c_int = 1; +pub const NFT_CMP_LT: ::c_int = 2; +pub const NFT_CMP_LTE: ::c_int = 3; +pub const NFT_CMP_GT: ::c_int = 4; +pub const NFT_CMP_GTE: ::c_int = 5; + +pub const NFT_RANGE_EQ: ::c_int = 0; +pub const NFT_RANGE_NEQ: ::c_int = 1; + +pub const NFT_LOOKUP_F_INV: ::c_int = 1 << 0; + +pub const NFT_DYNSET_OP_ADD: ::c_int = 0; +pub const NFT_DYNSET_OP_UPDATE: ::c_int = 1; + +pub const NFT_DYNSET_F_INV: ::c_int = 1 << 0; + +pub const NFT_PAYLOAD_LL_HEADER: ::c_int = 0; +pub const NFT_PAYLOAD_NETWORK_HEADER: ::c_int = 1; +pub const NFT_PAYLOAD_TRANSPORT_HEADER: ::c_int = 2; + +pub const NFT_PAYLOAD_CSUM_NONE: ::c_int = 0; +pub const NFT_PAYLOAD_CSUM_INET: ::c_int = 1; + +pub const NFT_META_LEN: ::c_int = 0; +pub const NFT_META_PROTOCOL: ::c_int = 1; +pub const NFT_META_PRIORITY: ::c_int = 2; +pub const NFT_META_MARK: ::c_int = 3; +pub const NFT_META_IIF: ::c_int = 4; +pub const NFT_META_OIF: ::c_int = 5; +pub const NFT_META_IIFNAME: ::c_int = 6; +pub const NFT_META_OIFNAME: ::c_int = 7; +pub const NFT_META_IIFTYPE: ::c_int = 8; +pub const NFT_META_OIFTYPE: ::c_int = 9; +pub const NFT_META_SKUID: ::c_int = 10; +pub const NFT_META_SKGID: ::c_int = 11; +pub const NFT_META_NFTRACE: ::c_int = 12; +pub const NFT_META_RTCLASSID: ::c_int = 13; +pub const NFT_META_SECMARK: ::c_int = 14; +pub const NFT_META_NFPROTO: ::c_int = 15; +pub const NFT_META_L4PROTO: ::c_int = 16; +pub const NFT_META_BRI_IIFNAME: ::c_int = 17; +pub const NFT_META_BRI_OIFNAME: ::c_int = 18; +pub const NFT_META_PKTTYPE: ::c_int = 19; +pub const NFT_META_CPU: ::c_int = 20; +pub const NFT_META_IIFGROUP: ::c_int = 21; +pub const NFT_META_OIFGROUP: ::c_int = 22; +pub const NFT_META_CGROUP: ::c_int = 23; +pub const NFT_META_PRANDOM: ::c_int = 24; + +pub const NFT_CT_STATE: ::c_int = 0; +pub const NFT_CT_DIRECTION: ::c_int = 1; +pub const NFT_CT_STATUS: ::c_int = 2; +pub const NFT_CT_MARK: ::c_int = 3; +pub const NFT_CT_SECMARK: ::c_int = 4; +pub const NFT_CT_EXPIRATION: ::c_int = 5; +pub const NFT_CT_HELPER: ::c_int = 6; +pub const NFT_CT_L3PROTOCOL: ::c_int = 7; +pub const NFT_CT_SRC: ::c_int = 8; +pub const NFT_CT_DST: ::c_int = 9; +pub const NFT_CT_PROTOCOL: ::c_int = 10; +pub const NFT_CT_PROTO_SRC: ::c_int = 11; +pub const NFT_CT_PROTO_DST: ::c_int = 12; +pub const NFT_CT_LABELS: ::c_int = 13; +pub const NFT_CT_PKTS: ::c_int = 14; +pub const NFT_CT_BYTES: ::c_int = 15; + +pub const NFT_LIMIT_PKTS: ::c_int = 0; +pub const NFT_LIMIT_PKT_BYTES: ::c_int = 1; + +pub const NFT_LIMIT_F_INV: ::c_int = 1 << 0; + +pub const NFT_QUEUE_FLAG_BYPASS: ::c_int = 0x01; +pub const NFT_QUEUE_FLAG_CPU_FANOUT: ::c_int = 0x02; +pub const NFT_QUEUE_FLAG_MASK: ::c_int = 0x03; + +pub const NFT_QUOTA_F_INV: ::c_int = 1 << 0; + +pub const NFT_REJECT_ICMP_UNREACH: ::c_int = 0; +pub const NFT_REJECT_TCP_RST: ::c_int = 1; +pub const NFT_REJECT_ICMPX_UNREACH: ::c_int = 2; + +pub const NFT_REJECT_ICMPX_NO_ROUTE: ::c_int = 0; +pub const NFT_REJECT_ICMPX_PORT_UNREACH: ::c_int = 1; +pub const NFT_REJECT_ICMPX_HOST_UNREACH: ::c_int = 2; +pub const NFT_REJECT_ICMPX_ADMIN_PROHIBITED: ::c_int = 3; + +pub const NFT_NAT_SNAT: ::c_int = 0; +pub const NFT_NAT_DNAT: ::c_int = 1; + +pub const NFT_TRACETYPE_UNSPEC: ::c_int = 0; +pub const NFT_TRACETYPE_POLICY: ::c_int = 1; +pub const NFT_TRACETYPE_RETURN: ::c_int = 2; +pub const NFT_TRACETYPE_RULE: ::c_int = 3; + +pub const NFT_NG_INCREMENTAL: ::c_int = 0; +pub const NFT_NG_RANDOM: ::c_int = 1; + +// linux/input.h +pub const FF_MAX: ::__u16 = 0x7f; +pub const FF_CNT: usize = FF_MAX as usize + 1; + +// linux/input-event-codes.h +pub const INPUT_PROP_MAX: ::__u16 = 0x1f; +pub const INPUT_PROP_CNT: usize = INPUT_PROP_MAX as usize + 1; +pub const EV_MAX: ::__u16 = 0x1f; +pub const EV_CNT: usize = EV_MAX as usize + 1; +pub const SYN_MAX: ::__u16 = 0xf; +pub const SYN_CNT: usize = SYN_MAX as usize + 1; +pub const KEY_MAX: ::__u16 = 0x2ff; +pub const KEY_CNT: usize = KEY_MAX as usize + 1; +pub const REL_MAX: ::__u16 = 0x0f; +pub const REL_CNT: usize = REL_MAX as usize + 1; +pub const ABS_MAX: ::__u16 = 0x3f; +pub const ABS_CNT: usize = ABS_MAX as usize + 1; +pub const SW_MAX: ::__u16 = 0x10; +pub const SW_CNT: usize = SW_MAX as usize + 1; +pub const MSC_MAX: ::__u16 = 0x07; +pub const MSC_CNT: usize = MSC_MAX as usize + 1; +pub const LED_MAX: ::__u16 = 0x0f; +pub const LED_CNT: usize = LED_MAX as usize + 1; +pub const REP_MAX: ::__u16 = 0x01; +pub const REP_CNT: usize = REP_MAX as usize + 1; +pub const SND_MAX: ::__u16 = 0x07; +pub const SND_CNT: usize = SND_MAX as usize + 1; + +// linux/uinput.h +pub const UINPUT_VERSION: ::c_uint = 5; +pub const UINPUT_MAX_NAME_SIZE: usize = 80; + +// uapi/linux/fanotify.h +pub const FAN_ACCESS: u64 = 0x0000_0001; +pub const FAN_MODIFY: u64 = 0x0000_0002; +pub const FAN_CLOSE_WRITE: u64 = 0x0000_0008; +pub const FAN_CLOSE_NOWRITE: u64 = 0x0000_0010; +pub const FAN_OPEN: u64 = 0x0000_0020; + +pub const FAN_Q_OVERFLOW: u64 = 0x0000_4000; + +pub const FAN_OPEN_PERM: u64 = 0x0001_0000; +pub const FAN_ACCESS_PERM: u64 = 0x0002_0000; + +pub const FAN_ONDIR: u64 = 0x4000_0000; + +pub const FAN_EVENT_ON_CHILD: u64 = 0x0800_0000; + +pub const FAN_CLOSE: u64 = FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE; + +pub const FAN_CLOEXEC: ::c_uint = 0x0000_0001; +pub const FAN_NONBLOCK: ::c_uint = 0x0000_0002; + +pub const FAN_CLASS_NOTIF: ::c_uint = 0x0000_0000; +pub const FAN_CLASS_CONTENT: ::c_uint = 0x0000_0004; +pub const FAN_CLASS_PRE_CONTENT: ::c_uint = 0x0000_0008; + +pub const FAN_UNLIMITED_QUEUE: ::c_uint = 0x0000_0010; +pub const FAN_UNLIMITED_MARKS: ::c_uint = 0x0000_0020; + +pub const FAN_MARK_ADD: ::c_uint = 0x0000_0001; +pub const FAN_MARK_REMOVE: ::c_uint = 0x0000_0002; +pub const FAN_MARK_DONT_FOLLOW: ::c_uint = 0x0000_0004; +pub const FAN_MARK_ONLYDIR: ::c_uint = 0x0000_0008; +pub const FAN_MARK_IGNORED_MASK: ::c_uint = 0x0000_0020; +pub const FAN_MARK_IGNORED_SURV_MODIFY: ::c_uint = 0x0000_0040; +pub const FAN_MARK_FLUSH: ::c_uint = 0x0000_0080; + +pub const FANOTIFY_METADATA_VERSION: u8 = 3; + +pub const FAN_ALLOW: u32 = 0x01; +pub const FAN_DENY: u32 = 0x02; + +pub const FAN_NOFD: ::c_int = -1; + +pub const FUTEX_WAIT: ::c_int = 0; +pub const FUTEX_WAKE: ::c_int = 1; +pub const FUTEX_FD: ::c_int = 2; +pub const FUTEX_REQUEUE: ::c_int = 3; +pub const FUTEX_CMP_REQUEUE: ::c_int = 4; +pub const FUTEX_WAKE_OP: ::c_int = 5; +pub const FUTEX_LOCK_PI: ::c_int = 6; +pub const FUTEX_UNLOCK_PI: ::c_int = 7; +pub const FUTEX_TRYLOCK_PI: ::c_int = 8; +pub const FUTEX_WAIT_BITSET: ::c_int = 9; +pub const FUTEX_WAKE_BITSET: ::c_int = 10; +pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11; +pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12; +pub const FUTEX_LOCK_PI2: ::c_int = 13; + +pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; +pub const FUTEX_CLOCK_REALTIME: ::c_int = 256; +pub const FUTEX_CMD_MASK: ::c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); + +pub const FUTEX_BITSET_MATCH_ANY: ::c_int = 0xffffffff; + +pub const FUTEX_OP_SET: ::c_int = 0; +pub const FUTEX_OP_ADD: ::c_int = 1; +pub const FUTEX_OP_OR: ::c_int = 2; +pub const FUTEX_OP_ANDN: ::c_int = 3; +pub const FUTEX_OP_XOR: ::c_int = 4; + +pub const FUTEX_OP_OPARG_SHIFT: ::c_int = 8; + +pub const FUTEX_OP_CMP_EQ: ::c_int = 0; +pub const FUTEX_OP_CMP_NE: ::c_int = 1; +pub const FUTEX_OP_CMP_LT: ::c_int = 2; +pub const FUTEX_OP_CMP_LE: ::c_int = 3; +pub const FUTEX_OP_CMP_GT: ::c_int = 4; +pub const FUTEX_OP_CMP_GE: ::c_int = 5; + +pub fn FUTEX_OP(op: ::c_int, oparg: ::c_int, cmp: ::c_int, cmparg: ::c_int) -> ::c_int { + ((op & 0xf) << 28) | ((cmp & 0xf) << 24) | ((oparg & 0xfff) << 12) | (cmparg & 0xfff) +} + +// linux/kexec.h +pub const KEXEC_ON_CRASH: ::c_int = 0x00000001; +pub const KEXEC_PRESERVE_CONTEXT: ::c_int = 0x00000002; +pub const KEXEC_ARCH_MASK: ::c_int = 0xffff0000; +pub const KEXEC_FILE_UNLOAD: ::c_int = 0x00000001; +pub const KEXEC_FILE_ON_CRASH: ::c_int = 0x00000002; +pub const KEXEC_FILE_NO_INITRAMFS: ::c_int = 0x00000004; + +// linux/reboot.h +pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead; +pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793; +pub const LINUX_REBOOT_MAGIC2A: ::c_int = 85072278; +pub const LINUX_REBOOT_MAGIC2B: ::c_int = 369367448; +pub const LINUX_REBOOT_MAGIC2C: ::c_int = 537993216; + +pub const LINUX_REBOOT_CMD_RESTART: ::c_int = 0x01234567; +pub const LINUX_REBOOT_CMD_HALT: ::c_int = 0xCDEF0123; +pub const LINUX_REBOOT_CMD_CAD_ON: ::c_int = 0x89ABCDEF; +pub const LINUX_REBOOT_CMD_CAD_OFF: ::c_int = 0x00000000; +pub const LINUX_REBOOT_CMD_POWER_OFF: ::c_int = 0x4321FEDC; +pub const LINUX_REBOOT_CMD_RESTART2: ::c_int = 0xA1B2C3D4; +pub const LINUX_REBOOT_CMD_SW_SUSPEND: ::c_int = 0xD000FCE2; +pub const LINUX_REBOOT_CMD_KEXEC: ::c_int = 0x45584543; + +pub const REG_EXTENDED: ::c_int = 1; +pub const REG_ICASE: ::c_int = 2; +pub const REG_NEWLINE: ::c_int = 4; +pub const REG_NOSUB: ::c_int = 8; + +pub const REG_NOTBOL: ::c_int = 1; +pub const REG_NOTEOL: ::c_int = 2; + +pub const REG_ENOSYS: ::c_int = -1; +pub const REG_NOMATCH: ::c_int = 1; +pub const REG_BADPAT: ::c_int = 2; +pub const REG_ECOLLATE: ::c_int = 3; +pub const REG_ECTYPE: ::c_int = 4; +pub const REG_EESCAPE: ::c_int = 5; +pub const REG_ESUBREG: ::c_int = 6; +pub const REG_EBRACK: ::c_int = 7; +pub const REG_EPAREN: ::c_int = 8; +pub const REG_EBRACE: ::c_int = 9; +pub const REG_BADBR: ::c_int = 10; +pub const REG_ERANGE: ::c_int = 11; +pub const REG_ESPACE: ::c_int = 12; +pub const REG_BADRPT: ::c_int = 13; + +// linux/errqueue.h +pub const SO_EE_ORIGIN_NONE: u8 = 0; +pub const SO_EE_ORIGIN_LOCAL: u8 = 1; +pub const SO_EE_ORIGIN_ICMP: u8 = 2; +pub const SO_EE_ORIGIN_ICMP6: u8 = 3; +pub const SO_EE_ORIGIN_TXSTATUS: u8 = 4; +pub const SO_EE_ORIGIN_TIMESTAMPING: u8 = SO_EE_ORIGIN_TXSTATUS; + +// errno.h +pub const EPERM: ::c_int = 1; +pub const ENOENT: ::c_int = 2; +pub const ESRCH: ::c_int = 3; +pub const EINTR: ::c_int = 4; +pub const EIO: ::c_int = 5; +pub const ENXIO: ::c_int = 6; +pub const E2BIG: ::c_int = 7; +pub const ENOEXEC: ::c_int = 8; +pub const EBADF: ::c_int = 9; +pub const ECHILD: ::c_int = 10; +pub const EAGAIN: ::c_int = 11; +pub const ENOMEM: ::c_int = 12; +pub const EACCES: ::c_int = 13; +pub const EFAULT: ::c_int = 14; +pub const ENOTBLK: ::c_int = 15; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const EXDEV: ::c_int = 18; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENFILE: ::c_int = 23; +pub const EMFILE: ::c_int = 24; +pub const ENOTTY: ::c_int = 25; +pub const ETXTBSY: ::c_int = 26; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const ESPIPE: ::c_int = 29; +pub const EROFS: ::c_int = 30; +pub const EMLINK: ::c_int = 31; +pub const EPIPE: ::c_int = 32; +pub const EDOM: ::c_int = 33; +pub const ERANGE: ::c_int = 34; +pub const EWOULDBLOCK: ::c_int = EAGAIN; + +// linux/can.h +pub const CAN_EFF_FLAG: canid_t = 0x80000000; +pub const CAN_RTR_FLAG: canid_t = 0x40000000; +pub const CAN_ERR_FLAG: canid_t = 0x20000000; +pub const CAN_SFF_MASK: canid_t = 0x000007FF; +pub const CAN_EFF_MASK: canid_t = 0x1FFFFFFF; +pub const CAN_ERR_MASK: canid_t = 0x1FFFFFFF; +pub const CANXL_PRIO_MASK: ::canid_t = CAN_SFF_MASK; + +pub const CAN_SFF_ID_BITS: ::c_int = 11; +pub const CAN_EFF_ID_BITS: ::c_int = 29; +pub const CANXL_PRIO_BITS: ::c_int = CAN_SFF_ID_BITS; + +pub const CAN_MAX_DLC: ::c_int = 8; +pub const CAN_MAX_DLEN: usize = 8; +pub const CANFD_MAX_DLC: ::c_int = 15; +pub const CANFD_MAX_DLEN: usize = 64; + +pub const CANFD_BRS: ::c_int = 0x01; +pub const CANFD_ESI: ::c_int = 0x02; + +pub const CANXL_MIN_DLC: ::c_int = 0; +pub const CANXL_MAX_DLC: ::c_int = 2047; +pub const CANXL_MAX_DLC_MASK: ::c_int = 0x07FF; +pub const CANXL_MIN_DLEN: usize = 1; +pub const CANXL_MAX_DLEN: usize = 2048; + +pub const CANXL_XLF: ::c_int = 0x80; +pub const CANXL_SEC: ::c_int = 0x01; + +cfg_if! { + if #[cfg(libc_align)] { + pub const CAN_MTU: usize = ::mem::size_of::(); + pub const CANFD_MTU: usize = ::mem::size_of::(); + pub const CANXL_MTU: usize = ::mem::size_of::(); + // FIXME: use `core::mem::offset_of!` once that is available + // https://github.com/rust-lang/rfcs/pull/3308 + // pub const CANXL_HDR_SIZE: usize = core::mem::offset_of!(canxl_frame, data); + pub const CANXL_HDR_SIZE: usize = 12; + pub const CANXL_MIN_MTU: usize = CANXL_HDR_SIZE + 64; + pub const CANXL_MAX_MTU: usize = CANXL_MTU; + } +} + +pub const CAN_RAW: ::c_int = 1; +pub const CAN_BCM: ::c_int = 2; +pub const CAN_TP16: ::c_int = 3; +pub const CAN_TP20: ::c_int = 4; +pub const CAN_MCNET: ::c_int = 5; +pub const CAN_ISOTP: ::c_int = 6; +pub const CAN_J1939: ::c_int = 7; +pub const CAN_NPROTO: ::c_int = 8; + +pub const SOL_CAN_BASE: ::c_int = 100; + +pub const CAN_INV_FILTER: canid_t = 0x20000000; +pub const CAN_RAW_FILTER_MAX: ::c_int = 512; + +// linux/can/raw.h +pub const SOL_CAN_RAW: ::c_int = SOL_CAN_BASE + CAN_RAW; +pub const CAN_RAW_FILTER: ::c_int = 1; +pub const CAN_RAW_ERR_FILTER: ::c_int = 2; +pub const CAN_RAW_LOOPBACK: ::c_int = 3; +pub const CAN_RAW_RECV_OWN_MSGS: ::c_int = 4; +pub const CAN_RAW_FD_FRAMES: ::c_int = 5; +pub const CAN_RAW_JOIN_FILTERS: ::c_int = 6; +pub const CAN_RAW_XL_FRAMES: ::c_int = 7; + +// linux/can/j1939.h +pub const SOL_CAN_J1939: ::c_int = SOL_CAN_BASE + CAN_J1939; + +pub const J1939_MAX_UNICAST_ADDR: ::c_uchar = 0xfd; +pub const J1939_IDLE_ADDR: ::c_uchar = 0xfe; +pub const J1939_NO_ADDR: ::c_uchar = 0xff; +pub const J1939_NO_NAME: ::c_ulong = 0; +pub const J1939_PGN_REQUEST: ::c_uint = 0x0ea00; +pub const J1939_PGN_ADDRESS_CLAIMED: ::c_uint = 0x0ee00; +pub const J1939_PGN_ADDRESS_COMMANDED: ::c_uint = 0x0fed8; +pub const J1939_PGN_PDU1_MAX: ::c_uint = 0x3ff00; +pub const J1939_PGN_MAX: ::c_uint = 0x3ffff; +pub const J1939_NO_PGN: ::c_uint = 0x40000; + +pub const SO_J1939_FILTER: ::c_int = 1; +pub const SO_J1939_PROMISC: ::c_int = 2; +pub const SO_J1939_SEND_PRIO: ::c_int = 3; +pub const SO_J1939_ERRQUEUE: ::c_int = 4; + +pub const SCM_J1939_DEST_ADDR: ::c_int = 1; +pub const SCM_J1939_DEST_NAME: ::c_int = 2; +pub const SCM_J1939_PRIO: ::c_int = 3; +pub const SCM_J1939_ERRQUEUE: ::c_int = 4; + +pub const J1939_NLA_PAD: ::c_int = 0; +pub const J1939_NLA_BYTES_ACKED: ::c_int = 1; +pub const J1939_NLA_TOTAL_SIZE: ::c_int = 2; +pub const J1939_NLA_PGN: ::c_int = 3; +pub const J1939_NLA_SRC_NAME: ::c_int = 4; +pub const J1939_NLA_DEST_NAME: ::c_int = 5; +pub const J1939_NLA_SRC_ADDR: ::c_int = 6; +pub const J1939_NLA_DEST_ADDR: ::c_int = 7; + +pub const J1939_EE_INFO_NONE: ::c_int = 0; +pub const J1939_EE_INFO_TX_ABORT: ::c_int = 1; +pub const J1939_EE_INFO_RX_RTS: ::c_int = 2; +pub const J1939_EE_INFO_RX_DPO: ::c_int = 3; +pub const J1939_EE_INFO_RX_ABORT: ::c_int = 4; + +pub const J1939_FILTER_MAX: ::c_int = 512; + +// linux/sctp.h +pub const SCTP_FUTURE_ASSOC: ::c_int = 0; +pub const SCTP_CURRENT_ASSOC: ::c_int = 1; +pub const SCTP_ALL_ASSOC: ::c_int = 2; +pub const SCTP_RTOINFO: ::c_int = 0; +pub const SCTP_ASSOCINFO: ::c_int = 1; +pub const SCTP_INITMSG: ::c_int = 2; +pub const SCTP_NODELAY: ::c_int = 3; +pub const SCTP_AUTOCLOSE: ::c_int = 4; +pub const SCTP_SET_PEER_PRIMARY_ADDR: ::c_int = 5; +pub const SCTP_PRIMARY_ADDR: ::c_int = 6; +pub const SCTP_ADAPTATION_LAYER: ::c_int = 7; +pub const SCTP_DISABLE_FRAGMENTS: ::c_int = 8; +pub const SCTP_PEER_ADDR_PARAMS: ::c_int = 9; +pub const SCTP_DEFAULT_SEND_PARAM: ::c_int = 10; +pub const SCTP_EVENTS: ::c_int = 11; +pub const SCTP_I_WANT_MAPPED_V4_ADDR: ::c_int = 12; +pub const SCTP_MAXSEG: ::c_int = 13; +pub const SCTP_STATUS: ::c_int = 14; +pub const SCTP_GET_PEER_ADDR_INFO: ::c_int = 15; +pub const SCTP_DELAYED_ACK_TIME: ::c_int = 16; +pub const SCTP_DELAYED_ACK: ::c_int = SCTP_DELAYED_ACK_TIME; +pub const SCTP_DELAYED_SACK: ::c_int = SCTP_DELAYED_ACK_TIME; +pub const SCTP_CONTEXT: ::c_int = 17; +pub const SCTP_FRAGMENT_INTERLEAVE: ::c_int = 18; +pub const SCTP_PARTIAL_DELIVERY_POINT: ::c_int = 19; +pub const SCTP_MAX_BURST: ::c_int = 20; +pub const SCTP_AUTH_CHUNK: ::c_int = 21; +pub const SCTP_HMAC_IDENT: ::c_int = 22; +pub const SCTP_AUTH_KEY: ::c_int = 23; +pub const SCTP_AUTH_ACTIVE_KEY: ::c_int = 24; +pub const SCTP_AUTH_DELETE_KEY: ::c_int = 25; +pub const SCTP_PEER_AUTH_CHUNKS: ::c_int = 26; +pub const SCTP_LOCAL_AUTH_CHUNKS: ::c_int = 27; +pub const SCTP_GET_ASSOC_NUMBER: ::c_int = 28; +pub const SCTP_GET_ASSOC_ID_LIST: ::c_int = 29; +pub const SCTP_AUTO_ASCONF: ::c_int = 30; +pub const SCTP_PEER_ADDR_THLDS: ::c_int = 31; +pub const SCTP_RECVRCVINFO: ::c_int = 32; +pub const SCTP_RECVNXTINFO: ::c_int = 33; +pub const SCTP_DEFAULT_SNDINFO: ::c_int = 34; +pub const SCTP_AUTH_DEACTIVATE_KEY: ::c_int = 35; +pub const SCTP_REUSE_PORT: ::c_int = 36; +pub const SCTP_PEER_ADDR_THLDS_V2: ::c_int = 37; +pub const SCTP_PR_SCTP_NONE: ::c_int = 0x0000; +pub const SCTP_PR_SCTP_TTL: ::c_int = 0x0010; +pub const SCTP_PR_SCTP_RTX: ::c_int = 0x0020; +pub const SCTP_PR_SCTP_PRIO: ::c_int = 0x0030; +pub const SCTP_PR_SCTP_MAX: ::c_int = SCTP_PR_SCTP_PRIO; +pub const SCTP_PR_SCTP_MASK: ::c_int = 0x0030; +pub const SCTP_ENABLE_RESET_STREAM_REQ: ::c_int = 0x01; +pub const SCTP_ENABLE_RESET_ASSOC_REQ: ::c_int = 0x02; +pub const SCTP_ENABLE_CHANGE_ASSOC_REQ: ::c_int = 0x04; +pub const SCTP_ENABLE_STRRESET_MASK: ::c_int = 0x07; +pub const SCTP_STREAM_RESET_INCOMING: ::c_int = 0x01; +pub const SCTP_STREAM_RESET_OUTGOING: ::c_int = 0x02; + +pub const SCTP_INIT: ::c_int = 0; +pub const SCTP_SNDRCV: ::c_int = 1; +pub const SCTP_SNDINFO: ::c_int = 2; +pub const SCTP_RCVINFO: ::c_int = 3; +pub const SCTP_NXTINFO: ::c_int = 4; +pub const SCTP_PRINFO: ::c_int = 5; +pub const SCTP_AUTHINFO: ::c_int = 6; +pub const SCTP_DSTADDRV4: ::c_int = 7; +pub const SCTP_DSTADDRV6: ::c_int = 8; + +pub const SCTP_UNORDERED: ::c_int = 1 << 0; +pub const SCTP_ADDR_OVER: ::c_int = 1 << 1; +pub const SCTP_ABORT: ::c_int = 1 << 2; +pub const SCTP_SACK_IMMEDIATELY: ::c_int = 1 << 3; +pub const SCTP_SENDALL: ::c_int = 1 << 6; +pub const SCTP_PR_SCTP_ALL: ::c_int = 1 << 7; +pub const SCTP_NOTIFICATION: ::c_int = MSG_NOTIFICATION; +pub const SCTP_EOF: ::c_int = ::MSG_FIN; + +/* DCCP socket options */ +pub const DCCP_SOCKOPT_PACKET_SIZE: ::c_int = 1; +pub const DCCP_SOCKOPT_SERVICE: ::c_int = 2; +pub const DCCP_SOCKOPT_CHANGE_L: ::c_int = 3; +pub const DCCP_SOCKOPT_CHANGE_R: ::c_int = 4; +pub const DCCP_SOCKOPT_GET_CUR_MPS: ::c_int = 5; +pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: ::c_int = 6; +pub const DCCP_SOCKOPT_SEND_CSCOV: ::c_int = 10; +pub const DCCP_SOCKOPT_RECV_CSCOV: ::c_int = 11; +pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: ::c_int = 12; +pub const DCCP_SOCKOPT_CCID: ::c_int = 13; +pub const DCCP_SOCKOPT_TX_CCID: ::c_int = 14; +pub const DCCP_SOCKOPT_RX_CCID: ::c_int = 15; +pub const DCCP_SOCKOPT_QPOLICY_ID: ::c_int = 16; +pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: ::c_int = 17; +pub const DCCP_SOCKOPT_CCID_RX_INFO: ::c_int = 128; +pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192; + +/// maximum number of services provided on the same listening port +pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32; + +f! { + pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { + return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1) + } + + pub fn CMSG_NXTHDR(mhdr: *const msghdr, + cmsg: *const cmsghdr) -> *mut cmsghdr { + if ((*cmsg).cmsg_len as usize) < ::mem::size_of::() { + return 0 as *mut cmsghdr; + }; + let next = (cmsg as usize + + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) + as *mut cmsghdr; + let max = (*mhdr).msg_control as usize + + (*mhdr).msg_controllen as usize; + if (next.offset(1)) as usize > max || + next as usize + super::CMSG_ALIGN((*next).cmsg_len as usize) > max + { + 0 as *mut cmsghdr + } else { + next as *mut cmsghdr + } + } + + pub fn CPU_ALLOC_SIZE(count: ::c_int) -> ::size_t { + let _dummy: cpu_set_t = ::mem::zeroed(); + let size_in_bits = 8 * ::mem::size_of_val(&_dummy.bits[0]); + ((count as ::size_t + size_in_bits - 1) / 8) as ::size_t + } + + pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { + for slot in cpuset.bits.iter_mut() { + *slot = 0; + } + } + + pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let size_in_bits + = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.bits[idx] |= 1 << offset; + () + } + + pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let size_in_bits + = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.bits[idx] &= !(1 << offset); + () + } + + pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + 0 != (cpuset.bits[idx] & (1 << offset)) + } + + pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> ::c_int { + let mut s: u32 = 0; + let size_of_mask = ::mem::size_of_val(&cpuset.bits[0]); + for i in cpuset.bits[..(size / size_of_mask)].iter() { + s += i.count_ones(); + }; + s as ::c_int + } + + pub fn CPU_COUNT(cpuset: &cpu_set_t) -> ::c_int { + CPU_COUNT_S(::mem::size_of::(), cpuset) + } + + pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { + set1.bits == set2.bits + } + + pub fn SCTP_PR_INDEX(policy: ::c_int) -> ::c_int { + policy >> 4 - 1 + } + + pub fn SCTP_PR_POLICY(policy: ::c_int) -> ::c_int { + policy & SCTP_PR_SCTP_MASK + } + + pub fn SCTP_PR_SET_POLICY(flags: &mut ::c_int, policy: ::c_int) -> () { + *flags &= !SCTP_PR_SCTP_MASK; + *flags |= policy; + () + } + + pub fn major(dev: ::dev_t) -> ::c_uint { + let mut major = 0; + major |= (dev & 0x00000000000fff00) >> 8; + major |= (dev & 0xfffff00000000000) >> 32; + major as ::c_uint + } + + pub fn minor(dev: ::dev_t) -> ::c_uint { + let mut minor = 0; + minor |= (dev & 0x00000000000000ff) >> 0; + minor |= (dev & 0x00000ffffff00000) >> 12; + minor as ::c_uint + } + + pub fn IPTOS_TOS(tos: u8) -> u8 { + tos & IPTOS_TOS_MASK + } + + pub fn IPTOS_PREC(tos: u8) -> u8 { + tos & IPTOS_PREC_MASK + } + + pub fn RT_TOS(tos: u8) -> u8 { + tos & ::IPTOS_TOS_MASK + } + + pub fn RT_ADDRCLASS(flags: u32) -> u32 { + flags >> 23 + } + + pub fn RT_LOCALADDR(flags: u32) -> bool { + (flags & RTF_ADDRCLASSMASK) == (RTF_LOCAL | RTF_INTERFACE) + } + + pub fn SO_EE_OFFENDER(ee: *const ::sock_extended_err) -> *mut ::sockaddr { + ee.offset(1) as *mut ::sockaddr + } + + pub fn BPF_RVAL(code: ::__u32) -> ::__u32 { + code & 0x18 + } + + pub fn BPF_MISCOP(code: ::__u32) -> ::__u32 { + code & 0xf8 + } + + pub fn BPF_STMT(code: ::__u16, k: ::__u32) -> sock_filter { + sock_filter{code: code, jt: 0, jf: 0, k: k} + } + + pub fn BPF_JUMP(code: ::__u16, k: ::__u32, jt: ::__u8, jf: ::__u8) -> sock_filter { + sock_filter{code: code, jt: jt, jf: jf, k: k} + } +} + +safe_f! { + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + let mut dev = 0; + dev |= (major & 0x00000fff) << 8; + dev |= (major & 0xfffff000) << 32; + dev |= (minor & 0x000000ff) << 0; + dev |= (minor & 0xffffff00) << 12; + dev + } + + pub {const} fn SCTP_PR_TTL_ENABLED(policy: ::c_int) -> bool { + policy == SCTP_PR_SCTP_TTL + } + + pub {const} fn SCTP_PR_RTX_ENABLED(policy: ::c_int) -> bool { + policy == SCTP_PR_SCTP_RTX + } + + pub {const} fn SCTP_PR_PRIO_ENABLED(policy: ::c_int) -> bool { + policy == SCTP_PR_SCTP_PRIO + } +} + +cfg_if! { + if #[cfg(all(not(target_env = "uclibc"), not(target_env = "ohos")))] { + extern "C" { + pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; + pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; + pub fn aio_suspend( + aiocb_list: *const *const aiocb, + nitems: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn lio_listio( + mode: ::c_int, + aiocb_list: *const *mut aiocb, + nitems: ::c_int, + sevp: *mut ::sigevent, + ) -> ::c_int; + } + } +} + +cfg_if! { + if #[cfg(not(target_env = "uclibc"))] { + extern "C" { + pub fn pwritev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; + pub fn preadv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn getloadavg( + loadavg: *mut ::c_double, + nelem: ::c_int + ) -> ::c_int; + pub fn process_vm_readv( + pid: ::pid_t, + local_iov: *const ::iovec, + liovcnt: ::c_ulong, + remote_iov: *const ::iovec, + riovcnt: ::c_ulong, + flags: ::c_ulong, + ) -> isize; + pub fn process_vm_writev( + pid: ::pid_t, + local_iov: *const ::iovec, + liovcnt: ::c_ulong, + remote_iov: *const ::iovec, + riovcnt: ::c_ulong, + flags: ::c_ulong, + ) -> isize; + pub fn futimes( + fd: ::c_int, + times: *const ::timeval + ) -> ::c_int; + } + } +} + +// These functions are not available on OpenHarmony +cfg_if! { + if #[cfg(not(target_env = "ohos"))] { + extern "C" { + // Only `getspnam_r` is implemented for musl, out of all of the reenterant + // functions from `shadow.h`. + // https://git.musl-libc.org/cgit/musl/tree/include/shadow.h + pub fn getspnam_r( + name: *const ::c_char, + spbuf: *mut spwd, + buf: *mut ::c_char, + buflen: ::size_t, + spbufp: *mut *mut spwd, + ) -> ::c_int; + + pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; + pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + + pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; + pub fn mq_close(mqd: ::mqd_t) -> ::c_int; + pub fn mq_unlink(name: *const ::c_char) -> ::c_int; + pub fn mq_receive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + ) -> ::ssize_t; + pub fn mq_timedreceive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::ssize_t; + pub fn mq_send( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + ) -> ::c_int; + pub fn mq_timedsend( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::c_int; + pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; + pub fn mq_setattr( + mqd: ::mqd_t, + newattr: *const ::mq_attr, + oldattr: *mut ::mq_attr + ) -> ::c_int; + + pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; + pub fn pthread_mutexattr_getrobust( + attr: *const pthread_mutexattr_t, + robustness: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setrobust( + attr: *mut pthread_mutexattr_t, + robustness: ::c_int, + ) -> ::c_int; + } + } +} + +extern "C" { + #[cfg_attr( + not(any(target_env = "musl", target_env = "ohos")), + link_name = "__xpg_strerror_r" + )] + pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + + pub fn abs(i: ::c_int) -> ::c_int; + pub fn labs(i: ::c_long) -> ::c_long; + pub fn rand() -> ::c_int; + pub fn srand(seed: ::c_uint); + + pub fn drand48() -> ::c_double; + pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; + pub fn lrand48() -> ::c_long; + pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; + pub fn mrand48() -> ::c_long; + pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; + pub fn srand48(seed: ::c_long); + pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; + pub fn lcong48(p: *mut ::c_ushort); + + pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; + + pub fn setpwent(); + pub fn endpwent(); + pub fn getpwent() -> *mut passwd; + pub fn setgrent(); + pub fn endgrent(); + pub fn getgrent() -> *mut ::group; + pub fn setspent(); + pub fn endspent(); + pub fn getspent() -> *mut spwd; + + pub fn getspnam(name: *const ::c_char) -> *mut spwd; + + // System V IPC + pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; + pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; + pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; + pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; + pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; + pub fn semget(key: ::key_t, nsems: ::c_int, semflag: ::c_int) -> ::c_int; + pub fn semop(semid: ::c_int, sops: *mut ::sembuf, nsops: ::size_t) -> ::c_int; + pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; + pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; + pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtyp: ::c_long, + msgflg: ::c_int, + ) -> ::ssize_t; + pub fn msgsnd( + msqid: ::c_int, + msgp: *const ::c_void, + msgsz: ::size_t, + msgflg: ::c_int, + ) -> ::c_int; + + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn __errno_location() -> *mut ::c_int; + + pub fn fallocate(fd: ::c_int, mode: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + pub fn readahead(fd: ::c_int, offset: ::off64_t, count: ::size_t) -> ::ssize_t; + pub fn getxattr( + path: *const c_char, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn lgetxattr( + path: *const c_char, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn fgetxattr( + filedes: ::c_int, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn setxattr( + path: *const c_char, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn lsetxattr( + path: *const c_char, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn fsetxattr( + filedes: ::c_int, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn listxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; + pub fn llistxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; + pub fn flistxattr(filedes: ::c_int, list: *mut c_char, size: ::size_t) -> ::ssize_t; + pub fn removexattr(path: *const c_char, name: *const c_char) -> ::c_int; + pub fn lremovexattr(path: *const c_char, name: *const c_char) -> ::c_int; + pub fn fremovexattr(filedes: ::c_int, name: *const c_char) -> ::c_int; + pub fn signalfd(fd: ::c_int, mask: *const ::sigset_t, flags: ::c_int) -> ::c_int; + pub fn timerfd_create(clockid: ::clockid_t, flags: ::c_int) -> ::c_int; + pub fn timerfd_gettime(fd: ::c_int, curr_value: *mut itimerspec) -> ::c_int; + pub fn timerfd_settime( + fd: ::c_int, + flags: ::c_int, + new_value: *const itimerspec, + old_value: *mut itimerspec, + ) -> ::c_int; + pub fn quotactl( + cmd: ::c_int, + special: *const ::c_char, + id: ::c_int, + data: *mut ::c_char, + ) -> ::c_int; + pub fn epoll_pwait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + sigmask: *const ::sigset_t, + ) -> ::c_int; + pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; + pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; + pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; + pub fn accept4( + fd: ::c_int, + addr: *mut ::sockaddr, + len: *mut ::socklen_t, + flg: ::c_int, + ) -> ::c_int; + pub fn pthread_getaffinity_np( + thread: ::pthread_t, + cpusetsize: ::size_t, + cpuset: *mut ::cpu_set_t, + ) -> ::c_int; + pub fn pthread_setaffinity_np( + thread: ::pthread_t, + cpusetsize: ::size_t, + cpuset: *const ::cpu_set_t, + ) -> ::c_int; + pub fn pthread_setschedprio(native: ::pthread_t, priority: ::c_int) -> ::c_int; + pub fn reboot(how_to: ::c_int) -> ::c_int; + pub fn setfsgid(gid: ::gid_t) -> ::c_int; + pub fn setfsuid(uid: ::uid_t) -> ::c_int; + + // Not available now on Android + pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn if_nameindex() -> *mut if_nameindex; + pub fn if_freenameindex(ptr: *mut if_nameindex); + pub fn sync_file_range( + fd: ::c_int, + offset: ::off64_t, + nbytes: ::off64_t, + flags: ::c_uint, + ) -> ::c_int; + pub fn mremap( + addr: *mut ::c_void, + len: ::size_t, + new_len: ::size_t, + flags: ::c_int, + ... + ) -> *mut ::c_void; + + pub fn glob( + pattern: *const c_char, + flags: ::c_int, + errfunc: ::Option ::c_int>, + pglob: *mut ::glob_t, + ) -> ::c_int; + pub fn globfree(pglob: *mut ::glob_t); + + pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + + pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + + pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + + pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn remap_file_pages( + addr: *mut ::c_void, + size: ::size_t, + prot: ::c_int, + pgoff: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; + pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; + + pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + + pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; + pub fn vhangup() -> ::c_int; + pub fn sync(); + pub fn syncfs(fd: ::c_int) -> ::c_int; + pub fn syscall(num: ::c_long, ...) -> ::c_long; + pub fn sched_getaffinity(pid: ::pid_t, cpusetsize: ::size_t, cpuset: *mut cpu_set_t) + -> ::c_int; + pub fn sched_setaffinity( + pid: ::pid_t, + cpusetsize: ::size_t, + cpuset: *const cpu_set_t, + ) -> ::c_int; + pub fn epoll_create(size: ::c_int) -> ::c_int; + pub fn epoll_create1(flags: ::c_int) -> ::c_int; + pub fn epoll_wait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + ) -> ::c_int; + pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) + -> ::c_int; + pub fn pthread_getschedparam( + native: ::pthread_t, + policy: *mut ::c_int, + param: *mut ::sched_param, + ) -> ::c_int; + pub fn unshare(flags: ::c_int) -> ::c_int; + pub fn umount(target: *const ::c_char) -> ::c_int; + pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; + pub fn tee(fd_in: ::c_int, fd_out: ::c_int, len: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + pub fn splice( + fd_in: ::c_int, + off_in: *mut ::loff_t, + fd_out: ::c_int, + off_out: *mut ::loff_t, + len: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; + pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + pub fn setns(fd: ::c_int, nstype: ::c_int) -> ::c_int; + pub fn swapoff(path: *const ::c_char) -> ::c_int; + pub fn vmsplice( + fd: ::c_int, + iov: *const ::iovec, + nr_segs: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn mount( + src: *const ::c_char, + target: *const ::c_char, + fstype: *const ::c_char, + flags: ::c_ulong, + data: *const ::c_void, + ) -> ::c_int; + pub fn personality(persona: ::c_ulong) -> ::c_int; + pub fn prctl(option: ::c_int, ...) -> ::c_int; + pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; + pub fn ppoll( + fds: *mut ::pollfd, + nfds: nfds_t, + timeout: *const ::timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + pub fn pthread_mutexattr_getprotocol( + attr: *const pthread_mutexattr_t, + protocol: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setprotocol( + attr: *mut pthread_mutexattr_t, + protocol: ::c_int, + ) -> ::c_int; + + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_getpshared( + attr: *const ::pthread_barrierattr_t, + shared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_barrierattr_setpshared( + attr: *mut ::pthread_barrierattr_t, + shared: ::c_int, + ) -> ::c_int; + pub fn pthread_barrier_init( + barrier: *mut pthread_barrier_t, + attr: *const ::pthread_barrierattr_t, + count: ::c_uint, + ) -> ::c_int; + pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; + pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; + pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn clone( + cb: extern "C" fn(*mut ::c_void) -> ::c_int, + child_stack: *mut ::c_void, + flags: ::c_int, + arg: *mut ::c_void, + ... + ) -> ::c_int; + pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; + pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; + pub fn pthread_condattr_getpshared( + attr: *const pthread_condattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn sysinfo(info: *mut ::sysinfo) -> ::c_int; + pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; + pub fn pthread_setschedparam( + native: ::pthread_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn sendfile( + out_fd: ::c_int, + in_fd: ::c_int, + offset: *mut off_t, + count: ::size_t, + ) -> ::ssize_t; + pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; + pub fn sem_close(sem: *mut sem_t) -> ::c_int; + pub fn getdtablesize() -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; + pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; + pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; + pub fn sem_unlink(name: *const ::c_char) -> ::c_int; + pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + pub fn getgrouplist( + user: *const ::c_char, + group: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_getpshared( + attr: *const pthread_mutexattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn faccessat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + pub fn dl_iterate_phdr( + callback: ::Option< + unsafe extern "C" fn( + info: *mut ::dl_phdr_info, + size: ::size_t, + data: *mut ::c_void, + ) -> ::c_int, + >, + data: *mut ::c_void, + ) -> ::c_int; + + pub fn setmntent(filename: *const ::c_char, ty: *const ::c_char) -> *mut ::FILE; + pub fn getmntent(stream: *mut ::FILE) -> *mut ::mntent; + pub fn addmntent(stream: *mut ::FILE, mnt: *const ::mntent) -> ::c_int; + pub fn endmntent(streamp: *mut ::FILE) -> ::c_int; + pub fn hasmntopt(mnt: *const ::mntent, opt: *const ::c_char) -> *mut ::c_char; + + pub fn posix_spawn( + pid: *mut ::pid_t, + path: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnp( + pid: *mut ::pid_t, + file: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_getsigdefault( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getflags( + attr: *const posix_spawnattr_t, + flags: *mut ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; + pub fn posix_spawnattr_getpgroup( + attr: *const posix_spawnattr_t, + flags: *mut ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; + pub fn posix_spawnattr_getschedpolicy( + attr: *const posix_spawnattr_t, + flags: *mut ::c_int, + ) -> ::c_int; + pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; + pub fn posix_spawnattr_getschedparam( + attr: *const posix_spawnattr_t, + param: *mut ::sched_param, + ) -> ::c_int; + pub fn posix_spawnattr_setschedparam( + attr: *mut posix_spawnattr_t, + param: *const ::sched_param, + ) -> ::c_int; + + pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_addopen( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + path: *const ::c_char, + oflag: ::c_int, + mode: ::mode_t, + ) -> ::c_int; + pub fn posix_spawn_file_actions_addclose( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + ) -> ::c_int; + pub fn posix_spawn_file_actions_adddup2( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + newfd: ::c_int, + ) -> ::c_int; + pub fn fread_unlocked( + ptr: *mut ::c_void, + size: ::size_t, + nobj: ::size_t, + stream: *mut ::FILE, + ) -> ::size_t; + pub fn inotify_rm_watch(fd: ::c_int, wd: ::c_int) -> ::c_int; + pub fn inotify_init() -> ::c_int; + pub fn inotify_init1(flags: ::c_int) -> ::c_int; + pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int; + pub fn fanotify_init(flags: ::c_uint, event_f_flags: ::c_uint) -> ::c_int; + + pub fn regcomp(preg: *mut ::regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; + + pub fn regexec( + preg: *const ::regex_t, + input: *const ::c_char, + nmatch: ::size_t, + pmatch: *mut regmatch_t, + eflags: ::c_int, + ) -> ::c_int; + + pub fn regerror( + errcode: ::c_int, + preg: *const ::regex_t, + errbuf: *mut ::c_char, + errbuf_size: ::size_t, + ) -> ::size_t; + + pub fn regfree(preg: *mut ::regex_t); + + pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; + pub fn iconv( + cd: iconv_t, + inbuf: *mut *mut ::c_char, + inbytesleft: *mut ::size_t, + outbuf: *mut *mut ::c_char, + outbytesleft: *mut ::size_t, + ) -> ::size_t; + pub fn iconv_close(cd: iconv_t) -> ::c_int; + + pub fn gettid() -> ::pid_t; + + pub fn timer_create( + clockid: ::clockid_t, + sevp: *mut ::sigevent, + timerid: *mut ::timer_t, + ) -> ::c_int; + pub fn timer_delete(timerid: ::timer_t) -> ::c_int; + pub fn timer_getoverrun(timerid: ::timer_t) -> ::c_int; + pub fn timer_gettime(timerid: ::timer_t, curr_value: *mut ::itimerspec) -> ::c_int; + pub fn timer_settime( + timerid: ::timer_t, + flags: ::c_int, + new_value: *const ::itimerspec, + old_value: *mut ::itimerspec, + ) -> ::c_int; + + pub fn gethostid() -> ::c_long; + + pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; + pub fn memmem( + haystack: *const ::c_void, + haystacklen: ::size_t, + needle: *const ::c_void, + needlelen: ::size_t, + ) -> *mut ::c_void; + pub fn sched_getcpu() -> ::c_int; + + pub fn pthread_getname_np(thread: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int; + pub fn getopt_long( + argc: ::c_int, + argv: *const *mut c_char, + optstring: *const c_char, + longopts: *const option, + longindex: *mut ::c_int, + ) -> ::c_int; + + pub fn copy_file_range( + fd_in: ::c_int, + off_in: *mut ::off64_t, + fd_out: ::c_int, + off_out: *mut ::off64_t, + len: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; +} + +// LFS64 extensions +// +// * musl has 64-bit versions only so aliases the LFS64 symbols to the standard ones +cfg_if! { + if #[cfg(not(target_env = "musl"))] { + extern "C" { + pub fn fallocate64( + fd: ::c_int, + mode: ::c_int, + offset: ::off64_t, + len: ::off64_t + ) -> ::c_int; + pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; + pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn freopen64( + filename: *const c_char, + mode: *const c_char, + file: *mut ::FILE, + ) -> *mut ::FILE; + pub fn fseeko64(stream: *mut ::FILE, offset: ::off64_t, whence: ::c_int) -> ::c_int; + pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; + pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; + pub fn posix_fallocate64(fd: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; + pub fn sendfile64( + out_fd: ::c_int, + in_fd: ::c_int, + offset: *mut off64_t, + count: ::size_t, + ) -> ::ssize_t; + pub fn tmpfile64() -> *mut ::FILE; + } + } +} + +cfg_if! { + if #[cfg(target_env = "uclibc")] { + mod uclibc; + pub use self::uclibc::*; + } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { + mod musl; + pub use self::musl::*; + } else if #[cfg(target_env = "gnu")] { + mod gnu; + pub use self::gnu::*; + } +} + +mod arch; +pub use self::arch::*; + +cfg_if! { + if #[cfg(libc_align)] { + #[macro_use] + mod align; + } else { + #[macro_use] + mod no_align; + } +} +expand_align!(); + +cfg_if! { + if #[cfg(libc_non_exhaustive)] { + mod non_exhaustive; + pub use self::non_exhaustive::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/align.rs new file mode 100644 index 000000000..aedbf7a99 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: (i64, i64) + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/mod.rs new file mode 100644 index 000000000..c47fa2c4c --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -0,0 +1,858 @@ +pub type c_char = u8; +pub type wchar_t = u32; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + __st_dev_padding: ::c_int, + __st_ino_truncated: ::c_long, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __st_rdev_padding: ::c_int, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_ino: ::ino_t, + } + + pub struct stat64 { + pub st_dev: ::dev_t, + __st_dev_padding: ::c_int, + __st_ino_truncated: ::c_long, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __st_rdev_padding: ::c_int, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_ino: ::ino_t, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_int, + __unused1: ::c_long, + __unused2: ::c_long + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + __unused1: ::c_int, + pub shm_dtime: ::time_t, + __unused2: ::c_int, + pub shm_ctime: ::time_t, + __unused3: ::c_int, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::c_ulong, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + __unused1: ::c_int, + pub msg_rtime: ::time_t, + __unused2: ::c_int, + pub msg_ctime: ::time_t, + __unused3: ::c_int, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct mcontext_t { + pub trap_no: ::c_ulong, + pub error_code: ::c_ulong, + pub oldmask: ::c_ulong, + pub arm_r0: ::c_ulong, + pub arm_r1: ::c_ulong, + pub arm_r2: ::c_ulong, + pub arm_r3: ::c_ulong, + pub arm_r4: ::c_ulong, + pub arm_r5: ::c_ulong, + pub arm_r6: ::c_ulong, + pub arm_r7: ::c_ulong, + pub arm_r8: ::c_ulong, + pub arm_r9: ::c_ulong, + pub arm_r10: ::c_ulong, + pub arm_fp: ::c_ulong, + pub arm_ip: ::c_ulong, + pub arm_sp: ::c_ulong, + pub arm_lr: ::c_ulong, + pub arm_pc: ::c_ulong, + pub arm_cpsr: ::c_ulong, + pub fault_address: ::c_ulong, + } +} + +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask: ::sigset_t, + pub uc_regspace: [::c_ulonglong; 64], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for ucontext_t { + fn eq(&self, other: &ucontext_t) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_sigmask == other.uc_sigmask + } + } + impl Eq for ucontext_t {} + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_link) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field("uc_sigmask", &self.uc_sigmask) + .finish() + } + } + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_flags.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + self.uc_sigmask.hash(state); + } + } + } +} + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; + +pub const O_DIRECT: ::c_int = 0x10000; +pub const O_DIRECTORY: ::c_int = 0x4000; +pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_LARGEFILE: ::c_int = 0o400000; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::c_int = 0x00000800; +pub const TAB2: ::c_int = 0x00001000; +pub const TAB3: ::c_int = 0x00001800; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; + +pub const SOCK_NONBLOCK: ::c_int = 2048; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_SEQPACKET: ::c_int = 5; + +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EDEADLOCK: ::c_int = EDEADLK; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ERFKILL: ::c_int = 132; +pub const EHWPOISON: ::c_int = 133; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const EXTPROC: ::tcflag_t = 0x00010000; + +pub const MAP_HUGETLB: ::c_int = 0x040000; + +pub const F_GETLK: ::c_int = 12; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 13; +pub const F_SETLKW: ::c_int = 14; +pub const F_SETOWN: ::c_int = 8; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const VEOF: usize = 4; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +// Syscall table +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_pause: ::c_long = 29; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_brk: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_setreuid: ::c_long = 70; +pub const SYS_setregid: ::c_long = 71; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_getgroups: ::c_long = 80; +pub const SYS_setgroups: ::c_long = 81; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_fchown: ::c_long = 95; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_setfsuid: ::c_long = 138; +pub const SYS_setfsgid: ::c_long = 139; +pub const SYS__llseek: ::c_long = 140; +pub const SYS_getdents: ::c_long = 141; +pub const SYS__newselect: ::c_long = 142; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_setresuid: ::c_long = 164; +pub const SYS_getresuid: ::c_long = 165; +pub const SYS_poll: ::c_long = 168; +pub const SYS_nfsservctl: ::c_long = 169; +pub const SYS_setresgid: ::c_long = 170; +pub const SYS_getresgid: ::c_long = 171; +pub const SYS_prctl: ::c_long = 172; +pub const SYS_rt_sigreturn: ::c_long = 173; +pub const SYS_rt_sigaction: ::c_long = 174; +pub const SYS_rt_sigprocmask: ::c_long = 175; +pub const SYS_rt_sigpending: ::c_long = 176; +pub const SYS_rt_sigtimedwait: ::c_long = 177; +pub const SYS_rt_sigqueueinfo: ::c_long = 178; +pub const SYS_rt_sigsuspend: ::c_long = 179; +pub const SYS_pread64: ::c_long = 180; +pub const SYS_pwrite64: ::c_long = 181; +pub const SYS_chown: ::c_long = 182; +pub const SYS_getcwd: ::c_long = 183; +pub const SYS_capget: ::c_long = 184; +pub const SYS_capset: ::c_long = 185; +pub const SYS_sigaltstack: ::c_long = 186; +pub const SYS_sendfile: ::c_long = 187; +pub const SYS_vfork: ::c_long = 190; +pub const SYS_ugetrlimit: ::c_long = 191; +pub const SYS_mmap2: ::c_long = 192; +pub const SYS_truncate64: ::c_long = 193; +pub const SYS_ftruncate64: ::c_long = 194; +pub const SYS_stat64: ::c_long = 195; +pub const SYS_lstat64: ::c_long = 196; +pub const SYS_fstat64: ::c_long = 197; +pub const SYS_lchown32: ::c_long = 198; +pub const SYS_getuid32: ::c_long = 199; +pub const SYS_getgid32: ::c_long = 200; +pub const SYS_geteuid32: ::c_long = 201; +pub const SYS_getegid32: ::c_long = 202; +pub const SYS_setreuid32: ::c_long = 203; +pub const SYS_setregid32: ::c_long = 204; +pub const SYS_getgroups32: ::c_long = 205; +pub const SYS_setgroups32: ::c_long = 206; +pub const SYS_fchown32: ::c_long = 207; +pub const SYS_setresuid32: ::c_long = 208; +pub const SYS_getresuid32: ::c_long = 209; +pub const SYS_setresgid32: ::c_long = 210; +pub const SYS_getresgid32: ::c_long = 211; +pub const SYS_chown32: ::c_long = 212; +pub const SYS_setuid32: ::c_long = 213; +pub const SYS_setgid32: ::c_long = 214; +pub const SYS_setfsuid32: ::c_long = 215; +pub const SYS_setfsgid32: ::c_long = 216; +pub const SYS_getdents64: ::c_long = 217; +pub const SYS_pivot_root: ::c_long = 218; +pub const SYS_mincore: ::c_long = 219; +pub const SYS_madvise: ::c_long = 220; +pub const SYS_fcntl64: ::c_long = 221; +pub const SYS_gettid: ::c_long = 224; +pub const SYS_readahead: ::c_long = 225; +pub const SYS_setxattr: ::c_long = 226; +pub const SYS_lsetxattr: ::c_long = 227; +pub const SYS_fsetxattr: ::c_long = 228; +pub const SYS_getxattr: ::c_long = 229; +pub const SYS_lgetxattr: ::c_long = 230; +pub const SYS_fgetxattr: ::c_long = 231; +pub const SYS_listxattr: ::c_long = 232; +pub const SYS_llistxattr: ::c_long = 233; +pub const SYS_flistxattr: ::c_long = 234; +pub const SYS_removexattr: ::c_long = 235; +pub const SYS_lremovexattr: ::c_long = 236; +pub const SYS_fremovexattr: ::c_long = 237; +pub const SYS_tkill: ::c_long = 238; +pub const SYS_sendfile64: ::c_long = 239; +pub const SYS_futex: ::c_long = 240; +pub const SYS_sched_setaffinity: ::c_long = 241; +pub const SYS_sched_getaffinity: ::c_long = 242; +pub const SYS_io_setup: ::c_long = 243; +pub const SYS_io_destroy: ::c_long = 244; +pub const SYS_io_getevents: ::c_long = 245; +pub const SYS_io_submit: ::c_long = 246; +pub const SYS_io_cancel: ::c_long = 247; +pub const SYS_exit_group: ::c_long = 248; +pub const SYS_lookup_dcookie: ::c_long = 249; +pub const SYS_epoll_create: ::c_long = 250; +pub const SYS_epoll_ctl: ::c_long = 251; +pub const SYS_epoll_wait: ::c_long = 252; +pub const SYS_remap_file_pages: ::c_long = 253; +pub const SYS_set_tid_address: ::c_long = 256; +pub const SYS_timer_create: ::c_long = 257; +pub const SYS_timer_settime: ::c_long = 258; +pub const SYS_timer_gettime: ::c_long = 259; +pub const SYS_timer_getoverrun: ::c_long = 260; +pub const SYS_timer_delete: ::c_long = 261; +pub const SYS_clock_settime: ::c_long = 262; +pub const SYS_clock_gettime: ::c_long = 263; +pub const SYS_clock_getres: ::c_long = 264; +pub const SYS_clock_nanosleep: ::c_long = 265; +pub const SYS_statfs64: ::c_long = 266; +pub const SYS_fstatfs64: ::c_long = 267; +pub const SYS_tgkill: ::c_long = 268; +pub const SYS_utimes: ::c_long = 269; +pub const SYS_pciconfig_iobase: ::c_long = 271; +pub const SYS_pciconfig_read: ::c_long = 272; +pub const SYS_pciconfig_write: ::c_long = 273; +pub const SYS_mq_open: ::c_long = 274; +pub const SYS_mq_unlink: ::c_long = 275; +pub const SYS_mq_timedsend: ::c_long = 276; +pub const SYS_mq_timedreceive: ::c_long = 277; +pub const SYS_mq_notify: ::c_long = 278; +pub const SYS_mq_getsetattr: ::c_long = 279; +pub const SYS_waitid: ::c_long = 280; +pub const SYS_socket: ::c_long = 281; +pub const SYS_bind: ::c_long = 282; +pub const SYS_connect: ::c_long = 283; +pub const SYS_listen: ::c_long = 284; +pub const SYS_accept: ::c_long = 285; +pub const SYS_getsockname: ::c_long = 286; +pub const SYS_getpeername: ::c_long = 287; +pub const SYS_socketpair: ::c_long = 288; +pub const SYS_send: ::c_long = 289; +pub const SYS_sendto: ::c_long = 290; +pub const SYS_recv: ::c_long = 291; +pub const SYS_recvfrom: ::c_long = 292; +pub const SYS_shutdown: ::c_long = 293; +pub const SYS_setsockopt: ::c_long = 294; +pub const SYS_getsockopt: ::c_long = 295; +pub const SYS_sendmsg: ::c_long = 296; +pub const SYS_recvmsg: ::c_long = 297; +pub const SYS_semop: ::c_long = 298; +pub const SYS_semget: ::c_long = 299; +pub const SYS_semctl: ::c_long = 300; +pub const SYS_msgsnd: ::c_long = 301; +pub const SYS_msgrcv: ::c_long = 302; +pub const SYS_msgget: ::c_long = 303; +pub const SYS_msgctl: ::c_long = 304; +pub const SYS_shmat: ::c_long = 305; +pub const SYS_shmdt: ::c_long = 306; +pub const SYS_shmget: ::c_long = 307; +pub const SYS_shmctl: ::c_long = 308; +pub const SYS_add_key: ::c_long = 309; +pub const SYS_request_key: ::c_long = 310; +pub const SYS_keyctl: ::c_long = 311; +pub const SYS_semtimedop: ::c_long = 312; +pub const SYS_vserver: ::c_long = 313; +pub const SYS_ioprio_set: ::c_long = 314; +pub const SYS_ioprio_get: ::c_long = 315; +pub const SYS_inotify_init: ::c_long = 316; +pub const SYS_inotify_add_watch: ::c_long = 317; +pub const SYS_inotify_rm_watch: ::c_long = 318; +pub const SYS_mbind: ::c_long = 319; +pub const SYS_get_mempolicy: ::c_long = 320; +pub const SYS_set_mempolicy: ::c_long = 321; +pub const SYS_openat: ::c_long = 322; +pub const SYS_mkdirat: ::c_long = 323; +pub const SYS_mknodat: ::c_long = 324; +pub const SYS_fchownat: ::c_long = 325; +pub const SYS_futimesat: ::c_long = 326; +pub const SYS_fstatat64: ::c_long = 327; +pub const SYS_unlinkat: ::c_long = 328; +pub const SYS_renameat: ::c_long = 329; +pub const SYS_linkat: ::c_long = 330; +pub const SYS_symlinkat: ::c_long = 331; +pub const SYS_readlinkat: ::c_long = 332; +pub const SYS_fchmodat: ::c_long = 333; +pub const SYS_faccessat: ::c_long = 334; +pub const SYS_pselect6: ::c_long = 335; +pub const SYS_ppoll: ::c_long = 336; +pub const SYS_unshare: ::c_long = 337; +pub const SYS_set_robust_list: ::c_long = 338; +pub const SYS_get_robust_list: ::c_long = 339; +pub const SYS_splice: ::c_long = 340; +pub const SYS_tee: ::c_long = 342; +pub const SYS_vmsplice: ::c_long = 343; +pub const SYS_move_pages: ::c_long = 344; +pub const SYS_getcpu: ::c_long = 345; +pub const SYS_epoll_pwait: ::c_long = 346; +pub const SYS_kexec_load: ::c_long = 347; +pub const SYS_utimensat: ::c_long = 348; +pub const SYS_signalfd: ::c_long = 349; +pub const SYS_timerfd_create: ::c_long = 350; +pub const SYS_eventfd: ::c_long = 351; +pub const SYS_fallocate: ::c_long = 352; +pub const SYS_timerfd_settime: ::c_long = 353; +pub const SYS_timerfd_gettime: ::c_long = 354; +pub const SYS_signalfd4: ::c_long = 355; +pub const SYS_eventfd2: ::c_long = 356; +pub const SYS_epoll_create1: ::c_long = 357; +pub const SYS_dup3: ::c_long = 358; +pub const SYS_pipe2: ::c_long = 359; +pub const SYS_inotify_init1: ::c_long = 360; +pub const SYS_preadv: ::c_long = 361; +pub const SYS_pwritev: ::c_long = 362; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 363; +pub const SYS_perf_event_open: ::c_long = 364; +pub const SYS_recvmmsg: ::c_long = 365; +pub const SYS_accept4: ::c_long = 366; +pub const SYS_fanotify_init: ::c_long = 367; +pub const SYS_fanotify_mark: ::c_long = 368; +pub const SYS_prlimit64: ::c_long = 369; +pub const SYS_name_to_handle_at: ::c_long = 370; +pub const SYS_open_by_handle_at: ::c_long = 371; +pub const SYS_clock_adjtime: ::c_long = 372; +pub const SYS_syncfs: ::c_long = 373; +pub const SYS_sendmmsg: ::c_long = 374; +pub const SYS_setns: ::c_long = 375; +pub const SYS_process_vm_readv: ::c_long = 376; +pub const SYS_process_vm_writev: ::c_long = 377; +pub const SYS_kcmp: ::c_long = 378; +pub const SYS_finit_module: ::c_long = 379; +pub const SYS_sched_setattr: ::c_long = 380; +pub const SYS_sched_getattr: ::c_long = 381; +pub const SYS_renameat2: ::c_long = 382; +pub const SYS_seccomp: ::c_long = 383; +pub const SYS_getrandom: ::c_long = 384; +pub const SYS_memfd_create: ::c_long = 385; +pub const SYS_bpf: ::c_long = 386; +pub const SYS_execveat: ::c_long = 387; +pub const SYS_userfaultfd: ::c_long = 388; +pub const SYS_membarrier: ::c_long = 389; +pub const SYS_mlock2: ::c_long = 390; +pub const SYS_copy_file_range: ::c_long = 391; +pub const SYS_preadv2: ::c_long = 392; +pub const SYS_pwritev2: ::c_long = 393; +pub const SYS_pkey_mprotect: ::c_long = 394; +pub const SYS_pkey_alloc: ::c_long = 395; +pub const SYS_pkey_free: ::c_long = 396; +pub const SYS_statx: ::c_long = 397; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +extern "C" { + pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/hexagon.rs new file mode 100644 index 000000000..f83d208d5 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -0,0 +1,673 @@ +pub type c_char = u8; +pub type wchar_t = u32; +pub type stat64 = ::stat; + +s! { + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::c_ulonglong, + pub st_mode: ::c_uint, + pub st_nlink: ::c_uint, + pub st_uid: ::c_uint, + pub st_gid: ::c_uint, + pub st_rdev: ::c_ulonglong, + __st_rdev_padding: ::c_ulong, + pub st_size: ::c_longlong, + pub st_blksize: ::blksize_t, + __st_blksize_padding: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + + __unused: [::c_int;2], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_ushort, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + __unused1: ::c_int, + pub shm_dtime: ::time_t, + __unused2: ::c_int, + pub shm_ctime: ::time_t, + __unused3: ::c_int, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::c_ulong, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + __unused1: ::c_int, + pub msg_rtime: ::time_t, + __unused2: ::c_int, + pub msg_ctime: ::time_t, + __unused3: ::c_int, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } +} + +pub const AF_FILE: ::c_int = 1; +pub const AF_KCM: ::c_int = 41; +pub const AF_MAX: ::c_int = 43; +pub const AF_QIPCRTR: ::c_int = 42; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EALREADY: ::c_int = 114; +pub const EBADE: ::c_int = 52; +pub const EBADMSG: ::c_int = 74; +pub const EBADR: ::c_int = 53; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const ECANCELED: ::c_int = 125; +pub const ECHRNG: ::c_int = 44; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNREFUSED: ::c_int = 111; +pub const ECONNRESET: ::c_int = 104; +pub const EDEADLK: ::c_int = 35; +pub const EDEADLOCK: ::c_int = 35; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EDQUOT: ::c_int = 122; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EHWPOISON: ::c_int = 133; +pub const EIDRM: ::c_int = 43; +pub const EILSEQ: ::c_int = 84; +pub const EINPROGRESS: ::c_int = 115; +pub const EISCONN: ::c_int = 106; +pub const EISNAM: ::c_int = 120; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREJECTED: ::c_int = 129; +pub const EKEYREVOKED: ::c_int = 128; +pub const EL2HLT: ::c_int = 51; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBEXEC: ::c_int = 83; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBSCN: ::c_int = 81; +pub const ELNRNG: ::c_int = 48; +pub const ELOOP: ::c_int = 40; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const EMSGSIZE: ::c_int = 90; +pub const EMULTIHOP: ::c_int = 72; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENAVAIL: ::c_int = 119; +pub const ENETDOWN: ::c_int = 100; +pub const ENETRESET: ::c_int = 102; +pub const ENETUNREACH: ::c_int = 101; +pub const ENOANO: ::c_int = 55; +pub const ENOBUFS: ::c_int = 105; +pub const ENOCSI: ::c_int = 50; +pub const ENOKEY: ::c_int = 126; +pub const ENOLCK: ::c_int = 37; +pub const ENOMEDIUM: ::c_int = 123; +pub const ENOMSG: ::c_int = 42; +pub const ENOPROTOOPT: ::c_int = 92; +pub const ENOSYS: ::c_int = 38; +pub const ENOTCONN: ::c_int = 107; +pub const ENOTEMPTY: ::c_int = 39; +pub const ENOTNAM: ::c_int = 118; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ENOTSOCK: ::c_int = 88; +pub const ENOTSUP: ::c_int = 95; +pub const ENOTUNIQ: ::c_int = 76; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EOVERFLOW: ::c_int = 75; +pub const EOWNERDEAD: ::c_int = 130; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EREMCHG: ::c_int = 78; +pub const ERESTART: ::c_int = 85; +pub const ERFKILL: ::c_int = 132; +pub const ESHUTDOWN: ::c_int = 108; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const ESTALE: ::c_int = 116; +pub const ESTRPIPE: ::c_int = 86; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const EUCLEAN: ::c_int = 117; +pub const EUNATCH: ::c_int = 49; +pub const EUSERS: ::c_int = 87; +pub const EXFULL: ::c_int = 54; +pub const EXTPROC: ::c_int = 65536; +pub const F_EXLCK: ::c_int = 4; +pub const F_GETLK: ::c_int = 12; +pub const F_GETOWN: ::c_int = 9; +pub const F_GETOWNER_UIDS: ::c_int = 17; +pub const F_GETOWN_EX: ::c_int = 16; +pub const F_GETSIG: ::c_int = 11; +pub const F_LINUX_SPECIFIC_BASE: ::c_int = 1024; +pub const FLUSHO: ::c_int = 4096; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; +pub const F_OWNER_PGRP: ::c_int = 2; +pub const F_OWNER_PID: ::c_int = 1; +pub const F_OWNER_TID: ::c_int = 0; +pub const F_SETLK: ::c_int = 13; +pub const F_SETLKW: ::c_int = 14; +pub const F_SETOWN: ::c_int = 8; +pub const F_SETOWN_EX: ::c_int = 15; +pub const F_SETSIG: ::c_int = 10; +pub const F_SHLCK: ::c_int = 8; +pub const IEXTEN: ::c_int = 32768; +pub const MAP_ANON: ::c_int = 32; +pub const MAP_DENYWRITE: ::c_int = 2048; +pub const MAP_EXECUTABLE: ::c_int = 4096; +pub const MAP_GROWSDOWN: ::c_int = 256; +pub const MAP_HUGETLB: ::c_int = 262144; +pub const MAP_LOCKED: ::c_int = 8192; +pub const MAP_NONBLOCK: ::c_int = 65536; +pub const MAP_NORESERVE: ::c_int = 16384; +pub const MAP_POPULATE: ::c_int = 32768; +pub const MAP_STACK: ::c_int = 131072; +pub const MAP_UNINITIALIZED: ::c_int = 0; +pub const O_APPEND: ::c_int = 1024; +pub const O_ASYNC: ::c_int = 8192; +pub const O_CREAT: ::c_int = 64; +pub const O_DIRECT: ::c_int = 16384; +pub const O_DIRECTORY: ::c_int = 65536; +pub const O_DSYNC: ::c_int = 4096; +pub const O_EXCL: ::c_int = 128; +pub const O_LARGEFILE: ::c_int = 32768; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NOFOLLOW: ::c_int = 131072; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const PF_FILE: ::c_int = 1; +pub const PF_KCM: ::c_int = 41; +pub const PF_MAX: ::c_int = 43; +pub const PF_QIPCRTR: ::c_int = 42; +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SIGBUS: ::c_int = 7; +pub const SIGCHLD: ::c_int = 17; +pub const SIGCONT: ::c_int = 18; +pub const SIGIO: ::c_int = 29; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPROF: ::c_int = 27; +pub const SIGPWR: ::c_int = 30; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const SIGSTOP: ::c_int = 19; +pub const SIGSYS: ::c_int = 31; +pub const SIGTSTP: ::c_int = 20; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGURG: ::c_int = 23; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGWINCH: ::c_int = 28; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIG_SETMASK: ::c_int = 2; // FIXME check these +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_NONBLOCK: ::c_int = 2048; +pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOL_CAIF: ::c_int = 278; +pub const SOL_IUCV: ::c_int = 277; +pub const SOL_KCM: ::c_int = 281; +pub const SOL_NFC: ::c_int = 280; +pub const SOL_PNPIPE: ::c_int = 275; +pub const SOL_PPPOL2TP: ::c_int = 273; +pub const SOL_RDS: ::c_int = 276; +pub const SOL_RXRPC: ::c_int = 272; + +pub const SYS3264_fadvise64: ::c_int = 223; +pub const SYS3264_fcntl: ::c_int = 25; +pub const SYS3264_fstatat: ::c_int = 79; +pub const SYS3264_fstat: ::c_int = 80; +pub const SYS3264_fstatfs: ::c_int = 44; +pub const SYS3264_ftruncate: ::c_int = 46; +pub const SYS3264_lseek: ::c_int = 62; +pub const SYS3264_lstat: ::c_int = 1039; +pub const SYS3264_mmap: ::c_int = 222; +pub const SYS3264_sendfile: ::c_int = 71; +pub const SYS3264_stat: ::c_int = 1038; +pub const SYS3264_statfs: ::c_int = 43; +pub const SYS3264_truncate: ::c_int = 45; +pub const SYS_accept4: ::c_int = 242; +pub const SYS_accept: ::c_int = 202; +pub const SYS_access: ::c_int = 1033; +pub const SYS_acct: ::c_int = 89; +pub const SYS_add_key: ::c_int = 217; +pub const SYS_adjtimex: ::c_int = 171; +pub const SYS_alarm: ::c_int = 1059; +pub const SYS_arch_specific_syscall: ::c_int = 244; +pub const SYS_bdflush: ::c_int = 1075; +pub const SYS_bind: ::c_int = 200; +pub const SYS_bpf: ::c_int = 280; +pub const SYS_brk: ::c_int = 214; +pub const SYS_capget: ::c_int = 90; +pub const SYS_capset: ::c_int = 91; +pub const SYS_chdir: ::c_int = 49; +pub const SYS_chmod: ::c_int = 1028; +pub const SYS_chown: ::c_int = 1029; +pub const SYS_chroot: ::c_int = 51; +pub const SYS_clock_adjtime: ::c_int = 266; +pub const SYS_clock_getres: ::c_int = 114; +pub const SYS_clock_gettime: ::c_int = 113; +pub const SYS_clock_nanosleep: ::c_int = 115; +pub const SYS_clock_settime: ::c_int = 112; +pub const SYS_clone: ::c_int = 220; +pub const SYS_close: ::c_int = 57; +pub const SYS_connect: ::c_int = 203; +pub const SYS_copy_file_range: ::c_int = -1; // FIXME +pub const SYS_creat: ::c_int = 1064; +pub const SYS_delete_module: ::c_int = 106; +pub const SYS_dup2: ::c_int = 1041; +pub const SYS_dup3: ::c_int = 24; +pub const SYS_dup: ::c_int = 23; +pub const SYS_epoll_create1: ::c_int = 20; +pub const SYS_epoll_create: ::c_int = 1042; +pub const SYS_epoll_ctl: ::c_int = 21; +pub const SYS_epoll_pwait: ::c_int = 22; +pub const SYS_epoll_wait: ::c_int = 1069; +pub const SYS_eventfd2: ::c_int = 19; +pub const SYS_eventfd: ::c_int = 1044; +pub const SYS_execveat: ::c_int = 281; +pub const SYS_execve: ::c_int = 221; +pub const SYS_exit: ::c_int = 93; +pub const SYS_exit_group: ::c_int = 94; +pub const SYS_faccessat: ::c_int = 48; +pub const SYS_fadvise64_64: ::c_int = 223; +pub const SYS_fallocate: ::c_int = 47; +pub const SYS_fanotify_init: ::c_int = 262; +pub const SYS_fanotify_mark: ::c_int = 263; +pub const SYS_fchdir: ::c_int = 50; +pub const SYS_fchmodat: ::c_int = 53; +pub const SYS_fchmod: ::c_int = 52; +pub const SYS_fchownat: ::c_int = 54; +pub const SYS_fchown: ::c_int = 55; +pub const SYS_fcntl64: ::c_int = 25; +pub const SYS_fcntl: ::c_int = 25; +pub const SYS_fdatasync: ::c_int = 83; +pub const SYS_fgetxattr: ::c_int = 10; +pub const SYS_finit_module: ::c_int = 273; +pub const SYS_flistxattr: ::c_int = 13; +pub const SYS_flock: ::c_int = 32; +pub const SYS_fork: ::c_int = 1079; +pub const SYS_fremovexattr: ::c_int = 16; +pub const SYS_fsetxattr: ::c_int = 7; +pub const SYS_fstat64: ::c_int = 80; +pub const SYS_fstatat64: ::c_int = 79; +pub const SYS_fstatfs64: ::c_int = 44; +pub const SYS_fstatfs: ::c_int = 44; +pub const SYS_fsync: ::c_int = 82; +pub const SYS_ftruncate64: ::c_int = 46; +pub const SYS_ftruncate: ::c_int = 46; +pub const SYS_futex: ::c_int = 98; +pub const SYS_futimesat: ::c_int = 1066; +pub const SYS_getcpu: ::c_int = 168; +pub const SYS_getcwd: ::c_int = 17; +pub const SYS_getdents64: ::c_int = 61; +pub const SYS_getdents: ::c_int = 1065; +pub const SYS_getegid: ::c_int = 177; +pub const SYS_geteuid: ::c_int = 175; +pub const SYS_getgid: ::c_int = 176; +pub const SYS_getgroups: ::c_int = 158; +pub const SYS_getitimer: ::c_int = 102; +pub const SYS_get_mempolicy: ::c_int = 236; +pub const SYS_getpeername: ::c_int = 205; +pub const SYS_getpgid: ::c_int = 155; +pub const SYS_getpgrp: ::c_int = 1060; +pub const SYS_getpid: ::c_int = 172; +pub const SYS_getppid: ::c_int = 173; +pub const SYS_getpriority: ::c_int = 141; +pub const SYS_getrandom: ::c_int = 278; +pub const SYS_getresgid: ::c_int = 150; +pub const SYS_getresuid: ::c_int = 148; +pub const SYS_getrlimit: ::c_int = 163; +pub const SYS_get_robust_list: ::c_int = 100; +pub const SYS_getrusage: ::c_int = 165; +pub const SYS_getsid: ::c_int = 156; +pub const SYS_getsockname: ::c_int = 204; +pub const SYS_getsockopt: ::c_int = 209; +pub const SYS_gettid: ::c_int = 178; +pub const SYS_gettimeofday: ::c_int = 169; +pub const SYS_getuid: ::c_int = 174; +pub const SYS_getxattr: ::c_int = 8; +pub const SYS_init_module: ::c_int = 105; +pub const SYS_inotify_add_watch: ::c_int = 27; +pub const SYS_inotify_init1: ::c_int = 26; +pub const SYS_inotify_init: ::c_int = 1043; +pub const SYS_inotify_rm_watch: ::c_int = 28; +pub const SYS_io_cancel: ::c_int = 3; +pub const SYS_ioctl: ::c_int = 29; +pub const SYS_io_destroy: ::c_int = 1; +pub const SYS_io_getevents: ::c_int = 4; +pub const SYS_ioprio_get: ::c_int = 31; +pub const SYS_ioprio_set: ::c_int = 30; +pub const SYS_io_setup: ::c_int = 0; +pub const SYS_io_submit: ::c_int = 2; +pub const SYS_kcmp: ::c_int = 272; +pub const SYS_kexec_load: ::c_int = 104; +pub const SYS_keyctl: ::c_int = 219; +pub const SYS_kill: ::c_int = 129; +pub const SYS_lchown: ::c_int = 1032; +pub const SYS_lgetxattr: ::c_int = 9; +pub const SYS_linkat: ::c_int = 37; +pub const SYS_link: ::c_int = 1025; +pub const SYS_listen: ::c_int = 201; +pub const SYS_listxattr: ::c_int = 11; +pub const SYS_llistxattr: ::c_int = 12; +pub const SYS__llseek: ::c_int = 62; +pub const SYS_lookup_dcookie: ::c_int = 18; +pub const SYS_lremovexattr: ::c_int = 15; +pub const SYS_lseek: ::c_int = 62; +pub const SYS_lsetxattr: ::c_int = 6; +pub const SYS_lstat64: ::c_int = 1039; +pub const SYS_lstat: ::c_int = 1039; +pub const SYS_madvise: ::c_int = 233; +pub const SYS_mbind: ::c_int = 235; +pub const SYS_memfd_create: ::c_int = 279; +pub const SYS_migrate_pages: ::c_int = 238; +pub const SYS_mincore: ::c_int = 232; +pub const SYS_mkdirat: ::c_int = 34; +pub const SYS_mkdir: ::c_int = 1030; +pub const SYS_mknodat: ::c_int = 33; +pub const SYS_mknod: ::c_int = 1027; +pub const SYS_mlockall: ::c_int = 230; +pub const SYS_mlock: ::c_int = 228; +pub const SYS_mmap2: ::c_int = 222; +pub const SYS_mount: ::c_int = 40; +pub const SYS_move_pages: ::c_int = 239; +pub const SYS_mprotect: ::c_int = 226; +pub const SYS_mq_getsetattr: ::c_int = 185; +pub const SYS_mq_notify: ::c_int = 184; +pub const SYS_mq_open: ::c_int = 180; +pub const SYS_mq_timedreceive: ::c_int = 183; +pub const SYS_mq_timedsend: ::c_int = 182; +pub const SYS_mq_unlink: ::c_int = 181; +pub const SYS_mremap: ::c_int = 216; +pub const SYS_msgctl: ::c_int = 187; +pub const SYS_msgget: ::c_int = 186; +pub const SYS_msgrcv: ::c_int = 188; +pub const SYS_msgsnd: ::c_int = 189; +pub const SYS_msync: ::c_int = 227; +pub const SYS_munlockall: ::c_int = 231; +pub const SYS_munlock: ::c_int = 229; +pub const SYS_munmap: ::c_int = 215; +pub const SYS_name_to_handle_at: ::c_int = 264; +pub const SYS_nanosleep: ::c_int = 101; +pub const SYS_newfstatat: ::c_int = 79; +pub const SYS_nfsservctl: ::c_int = 42; +pub const SYS_oldwait4: ::c_int = 1072; +pub const SYS_openat: ::c_int = 56; +pub const SYS_open_by_handle_at: ::c_int = 265; +pub const SYS_open: ::c_int = 1024; +pub const SYS_pause: ::c_int = 1061; +pub const SYS_perf_event_open: ::c_int = 241; +pub const SYS_personality: ::c_int = 92; +pub const SYS_pipe2: ::c_int = 59; +pub const SYS_pipe: ::c_int = 1040; +pub const SYS_pivot_root: ::c_int = 41; +pub const SYS_poll: ::c_int = 1068; +pub const SYS_ppoll: ::c_int = 73; +pub const SYS_prctl: ::c_int = 167; +pub const SYS_pread64: ::c_int = 67; +pub const SYS_preadv: ::c_int = 69; +pub const SYS_prlimit64: ::c_int = 261; +pub const SYS_process_vm_readv: ::c_int = 270; +pub const SYS_process_vm_writev: ::c_int = 271; +pub const SYS_pselect6: ::c_int = 72; +pub const SYS_ptrace: ::c_int = 117; +pub const SYS_pwrite64: ::c_int = 68; +pub const SYS_pwritev: ::c_int = 70; +pub const SYS_quotactl: ::c_int = 60; +pub const SYS_readahead: ::c_int = 213; +pub const SYS_read: ::c_int = 63; +pub const SYS_readlinkat: ::c_int = 78; +pub const SYS_readlink: ::c_int = 1035; +pub const SYS_readv: ::c_int = 65; +pub const SYS_reboot: ::c_int = 142; +pub const SYS_recv: ::c_int = 1073; +pub const SYS_recvfrom: ::c_int = 207; +pub const SYS_recvmmsg: ::c_int = 243; +pub const SYS_recvmsg: ::c_int = 212; +pub const SYS_remap_file_pages: ::c_int = 234; +pub const SYS_removexattr: ::c_int = 14; +pub const SYS_renameat2: ::c_int = 276; +pub const SYS_renameat: ::c_int = 38; +pub const SYS_rename: ::c_int = 1034; +pub const SYS_request_key: ::c_int = 218; +pub const SYS_restart_syscall: ::c_int = 128; +pub const SYS_rmdir: ::c_int = 1031; +pub const SYS_rt_sigaction: ::c_int = 134; +pub const SYS_rt_sigpending: ::c_int = 136; +pub const SYS_rt_sigprocmask: ::c_int = 135; +pub const SYS_rt_sigqueueinfo: ::c_int = 138; +pub const SYS_rt_sigreturn: ::c_int = 139; +pub const SYS_rt_sigsuspend: ::c_int = 133; +pub const SYS_rt_sigtimedwait: ::c_int = 137; +pub const SYS_rt_tgsigqueueinfo: ::c_int = 240; +pub const SYS_sched_getaffinity: ::c_int = 123; +pub const SYS_sched_getattr: ::c_int = 275; +pub const SYS_sched_getparam: ::c_int = 121; +pub const SYS_sched_get_priority_max: ::c_int = 125; +pub const SYS_sched_get_priority_min: ::c_int = 126; +pub const SYS_sched_getscheduler: ::c_int = 120; +pub const SYS_sched_rr_get_interval: ::c_int = 127; +pub const SYS_sched_setaffinity: ::c_int = 122; +pub const SYS_sched_setattr: ::c_int = 274; +pub const SYS_sched_setparam: ::c_int = 118; +pub const SYS_sched_setscheduler: ::c_int = 119; +pub const SYS_sched_yield: ::c_int = 124; +pub const SYS_seccomp: ::c_int = 277; +pub const SYS_select: ::c_int = 1067; +pub const SYS_semctl: ::c_int = 191; +pub const SYS_semget: ::c_int = 190; +pub const SYS_semop: ::c_int = 193; +pub const SYS_semtimedop: ::c_int = 192; +pub const SYS_send: ::c_int = 1074; +pub const SYS_sendfile64: ::c_int = 71; +pub const SYS_sendfile: ::c_int = 71; +pub const SYS_sendmmsg: ::c_int = 269; +pub const SYS_sendmsg: ::c_int = 211; +pub const SYS_sendto: ::c_int = 206; +pub const SYS_setdomainname: ::c_int = 162; +pub const SYS_setfsgid: ::c_int = 152; +pub const SYS_setfsuid: ::c_int = 151; +pub const SYS_setgid: ::c_int = 144; +pub const SYS_setgroups: ::c_int = 159; +pub const SYS_sethostname: ::c_int = 161; +pub const SYS_setitimer: ::c_int = 103; +pub const SYS_set_mempolicy: ::c_int = 237; +pub const SYS_setns: ::c_int = 268; +pub const SYS_setpgid: ::c_int = 154; +pub const SYS_setpriority: ::c_int = 140; +pub const SYS_setregid: ::c_int = 143; +pub const SYS_setresgid: ::c_int = 149; +pub const SYS_setresuid: ::c_int = 147; +pub const SYS_setreuid: ::c_int = 145; +pub const SYS_setrlimit: ::c_int = 164; +pub const SYS_set_robust_list: ::c_int = 99; +pub const SYS_setsid: ::c_int = 157; +pub const SYS_setsockopt: ::c_int = 208; +pub const SYS_set_tid_address: ::c_int = 96; +pub const SYS_settimeofday: ::c_int = 170; +pub const SYS_setuid: ::c_int = 146; +pub const SYS_setxattr: ::c_int = 5; +pub const SYS_shmat: ::c_int = 196; +pub const SYS_shmctl: ::c_int = 195; +pub const SYS_shmdt: ::c_int = 197; +pub const SYS_shmget: ::c_int = 194; +pub const SYS_shutdown: ::c_int = 210; +pub const SYS_sigaltstack: ::c_int = 132; +pub const SYS_signalfd4: ::c_int = 74; +pub const SYS_signalfd: ::c_int = 1045; +pub const SYS_socket: ::c_int = 198; +pub const SYS_socketpair: ::c_int = 199; +pub const SYS_splice: ::c_int = 76; +pub const SYS_stat64: ::c_int = 1038; +pub const SYS_stat: ::c_int = 1038; +pub const SYS_statfs64: ::c_int = 43; +pub const SYS_swapoff: ::c_int = 225; +pub const SYS_swapon: ::c_int = 224; +pub const SYS_symlinkat: ::c_int = 36; +pub const SYS_symlink: ::c_int = 1036; +pub const SYS_sync: ::c_int = 81; +pub const SYS_sync_file_range2: ::c_int = 84; +pub const SYS_sync_file_range: ::c_int = 84; +pub const SYS_syncfs: ::c_int = 267; +pub const SYS_syscalls: ::c_int = 1080; +pub const SYS__sysctl: ::c_int = 1078; +pub const SYS_sysinfo: ::c_int = 179; +pub const SYS_syslog: ::c_int = 116; +pub const SYS_tee: ::c_int = 77; +pub const SYS_tgkill: ::c_int = 131; +pub const SYS_time: ::c_int = 1062; +pub const SYS_timer_create: ::c_int = 107; +pub const SYS_timer_delete: ::c_int = 111; +pub const SYS_timerfd_create: ::c_int = 85; +pub const SYS_timerfd_gettime: ::c_int = 87; +pub const SYS_timerfd_settime: ::c_int = 86; +pub const SYS_timer_getoverrun: ::c_int = 109; +pub const SYS_timer_gettime: ::c_int = 108; +pub const SYS_timer_settime: ::c_int = 110; +pub const SYS_times: ::c_int = 153; +pub const SYS_tkill: ::c_int = 130; +pub const SYS_truncate64: ::c_int = 45; +pub const SYS_truncate: ::c_int = 45; +pub const SYS_umask: ::c_int = 166; +pub const SYS_umount2: ::c_int = 39; +pub const SYS_umount: ::c_int = 1076; +pub const SYS_uname: ::c_int = 160; +pub const SYS_unlinkat: ::c_int = 35; +pub const SYS_unlink: ::c_int = 1026; +pub const SYS_unshare: ::c_int = 97; +pub const SYS_uselib: ::c_int = 1077; +pub const SYS_ustat: ::c_int = 1070; +pub const SYS_utime: ::c_int = 1063; +pub const SYS_utimensat: ::c_int = 88; +pub const SYS_utimes: ::c_int = 1037; +pub const SYS_vfork: ::c_int = 1071; +pub const SYS_vhangup: ::c_int = 58; +pub const SYS_vmsplice: ::c_int = 75; +pub const SYS_wait4: ::c_int = 260; +pub const SYS_waitid: ::c_int = 95; +pub const SYS_write: ::c_int = 64; +pub const SYS_writev: ::c_int = 66; +pub const SYS_statx: ::c_int = 291; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const TIOCM_LOOP: ::c_int = 32768; +pub const TIOCM_OUT1: ::c_int = 8192; +pub const TIOCM_OUT2: ::c_int = 16384; +pub const TIOCSER_TEMT: ::c_int = 1; +pub const TOSTOP: ::c_int = 256; +pub const VEOF: ::c_int = 4; +pub const VEOL2: ::c_int = 16; +pub const VEOL: ::c_int = 11; +pub const VMIN: ::c_int = 6; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/align.rs new file mode 100644 index 000000000..8c228ebab --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [f32; 4] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/mod.rs new file mode 100644 index 000000000..d09b8278e --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -0,0 +1,793 @@ +pub type c_char = i8; +pub type wchar_t = ::c_int; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + __st_padding1: [::c_long; 2], + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __st_padding2: [::c_long; 2], + pub st_size: ::off_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + __st_padding3: ::c_long, + pub st_blocks: ::blkcnt_t, + __st_padding4: [::c_long; 14], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + __st_padding1: [::c_long; 2], + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __st_padding2: [::c_long; 2], + pub st_size: ::off_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + __st_padding3: ::c_long, + pub st_blocks: ::blkcnt64_t, + __st_padding4: [::c_long; 14], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_int, + __unused1: ::c_long, + __unused2: ::c_long + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::c_ulong, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + #[cfg(target_endian = "big")] + __unused1: ::c_int, + pub msg_stime: ::time_t, + #[cfg(target_endian = "little")] + __unused1: ::c_int, + #[cfg(target_endian = "big")] + __unused2: ::c_int, + pub msg_rtime: ::time_t, + #[cfg(target_endian = "little")] + __unused2: ::c_int, + #[cfg(target_endian = "big")] + __unused3: ::c_int, + pub msg_ctime: ::time_t, + #[cfg(target_endian = "little")] + __unused3: ::c_int, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 5], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_code: ::c_int, + pub si_errno: ::c_int, + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 5], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + #[cfg(target_endian = "little")] + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + #[cfg(target_endian = "big")] + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } +} + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; + +pub const O_DIRECT: ::c_int = 0o100000; +pub const O_DIRECTORY: ::c_int = 0o200000; +pub const O_NOFOLLOW: ::c_int = 0o400000; +pub const O_ASYNC: ::c_int = 0o10000; +pub const O_LARGEFILE: ::c_int = 0x2000; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::c_int = 0x00000800; +pub const TAB2: ::c_int = 0x00001000; +pub const TAB3: ::c_int = 0x00001800; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const O_APPEND: ::c_int = 0o010; +pub const O_CREAT: ::c_int = 0o400; +pub const O_EXCL: ::c_int = 0o2000; +pub const O_NOCTTY: ::c_int = 0o4000; +pub const O_NONBLOCK: ::c_int = 0o200; +pub const O_SYNC: ::c_int = 0o40020; +pub const O_RSYNC: ::c_int = 0o40020; +pub const O_DSYNC: ::c_int = 0o020; + +pub const SOCK_NONBLOCK: ::c_int = 0o200; + +pub const MAP_ANON: ::c_int = 0x800; +pub const MAP_GROWSDOWN: ::c_int = 0x1000; +pub const MAP_DENYWRITE: ::c_int = 0x2000; +pub const MAP_EXECUTABLE: ::c_int = 0x4000; +pub const MAP_LOCKED: ::c_int = 0x8000; +pub const MAP_NORESERVE: ::c_int = 0x0400; +pub const MAP_POPULATE: ::c_int = 0x10000; +pub const MAP_NONBLOCK: ::c_int = 0x20000; +pub const MAP_STACK: ::c_int = 0x40000; +pub const MAP_HUGETLB: ::c_int = 0x80000; + +pub const EDEADLK: ::c_int = 45; +pub const ENAMETOOLONG: ::c_int = 78; +pub const ENOLCK: ::c_int = 46; +pub const ENOSYS: ::c_int = 89; +pub const ENOTEMPTY: ::c_int = 93; +pub const ELOOP: ::c_int = 90; +pub const ENOMSG: ::c_int = 35; +pub const EIDRM: ::c_int = 36; +pub const ECHRNG: ::c_int = 37; +pub const EL2NSYNC: ::c_int = 38; +pub const EL3HLT: ::c_int = 39; +pub const EL3RST: ::c_int = 40; +pub const ELNRNG: ::c_int = 41; +pub const EUNATCH: ::c_int = 42; +pub const ENOCSI: ::c_int = 43; +pub const EL2HLT: ::c_int = 44; +pub const EBADE: ::c_int = 50; +pub const EBADR: ::c_int = 51; +pub const EXFULL: ::c_int = 52; +pub const ENOANO: ::c_int = 53; +pub const EBADRQC: ::c_int = 54; +pub const EBADSLT: ::c_int = 55; +pub const EDEADLOCK: ::c_int = 56; +pub const EMULTIHOP: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 79; +pub const ENOTUNIQ: ::c_int = 80; +pub const EBADFD: ::c_int = 81; +pub const EBADMSG: ::c_int = 77; +pub const EREMCHG: ::c_int = 82; +pub const ELIBACC: ::c_int = 83; +pub const ELIBBAD: ::c_int = 84; +pub const ELIBSCN: ::c_int = 85; +pub const ELIBMAX: ::c_int = 86; +pub const ELIBEXEC: ::c_int = 87; +pub const EILSEQ: ::c_int = 88; +pub const ERESTART: ::c_int = 91; +pub const ESTRPIPE: ::c_int = 92; +pub const EUSERS: ::c_int = 94; +pub const ENOTSOCK: ::c_int = 95; +pub const EDESTADDRREQ: ::c_int = 96; +pub const EMSGSIZE: ::c_int = 97; +pub const EPROTOTYPE: ::c_int = 98; +pub const ENOPROTOOPT: ::c_int = 99; +pub const EPROTONOSUPPORT: ::c_int = 120; +pub const ESOCKTNOSUPPORT: ::c_int = 121; +pub const EOPNOTSUPP: ::c_int = 122; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 123; +pub const EAFNOSUPPORT: ::c_int = 124; +pub const EADDRINUSE: ::c_int = 125; +pub const EADDRNOTAVAIL: ::c_int = 126; +pub const ENETDOWN: ::c_int = 127; +pub const ENETUNREACH: ::c_int = 128; +pub const ENETRESET: ::c_int = 129; +pub const ECONNABORTED: ::c_int = 130; +pub const ECONNRESET: ::c_int = 131; +pub const ENOBUFS: ::c_int = 132; +pub const EISCONN: ::c_int = 133; +pub const ENOTCONN: ::c_int = 134; +pub const ESHUTDOWN: ::c_int = 143; +pub const ETOOMANYREFS: ::c_int = 144; +pub const ETIMEDOUT: ::c_int = 145; +pub const ECONNREFUSED: ::c_int = 146; +pub const EHOSTDOWN: ::c_int = 147; +pub const EHOSTUNREACH: ::c_int = 148; +pub const EALREADY: ::c_int = 149; +pub const EINPROGRESS: ::c_int = 150; +pub const ESTALE: ::c_int = 151; +pub const EUCLEAN: ::c_int = 135; +pub const ENOTNAM: ::c_int = 137; +pub const ENAVAIL: ::c_int = 138; +pub const EISNAM: ::c_int = 139; +pub const EREMOTEIO: ::c_int = 140; +pub const EDQUOT: ::c_int = 1133; +pub const ENOMEDIUM: ::c_int = 159; +pub const EMEDIUMTYPE: ::c_int = 160; +pub const ECANCELED: ::c_int = 158; +pub const ENOKEY: ::c_int = 161; +pub const EKEYEXPIRED: ::c_int = 162; +pub const EKEYREVOKED: ::c_int = 163; +pub const EKEYREJECTED: ::c_int = 164; +pub const EOWNERDEAD: ::c_int = 165; +pub const ENOTRECOVERABLE: ::c_int = 166; +pub const EHWPOISON: ::c_int = 168; +pub const ERFKILL: ::c_int = 167; + +pub const SOCK_STREAM: ::c_int = 2; +pub const SOCK_DGRAM: ::c_int = 1; +pub const SOCK_SEQPACKET: ::c_int = 5; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 8; +pub const SA_NOCLDWAIT: ::c_int = 0x10000; + +pub const SIGCHLD: ::c_int = 18; +pub const SIGBUS: ::c_int = 10; +pub const SIGTTIN: ::c_int = 26; +pub const SIGTTOU: ::c_int = 27; +pub const SIGXCPU: ::c_int = 30; +pub const SIGXFSZ: ::c_int = 31; +pub const SIGVTALRM: ::c_int = 28; +pub const SIGPROF: ::c_int = 29; +pub const SIGWINCH: ::c_int = 20; +pub const SIGUSR1: ::c_int = 16; +pub const SIGUSR2: ::c_int = 17; +pub const SIGCONT: ::c_int = 25; +pub const SIGSTOP: ::c_int = 23; +pub const SIGTSTP: ::c_int = 24; +pub const SIGURG: ::c_int = 21; +pub const SIGIO: ::c_int = 22; +pub const SIGSYS: ::c_int = 12; +pub const SIGSTKFLT: ::c_int = 7; +pub const SIGPOLL: ::c_int = ::SIGIO; +pub const SIGPWR: ::c_int = 19; +pub const SIG_SETMASK: ::c_int = 3; +pub const SIG_BLOCK: ::c_int = 1; +pub const SIG_UNBLOCK: ::c_int = 2; + +pub const EXTPROC: ::tcflag_t = 0o200000; + +pub const F_GETLK: ::c_int = 33; +pub const F_GETOWN: ::c_int = 23; +pub const F_SETLK: ::c_int = 34; +pub const F_SETLKW: ::c_int = 35; +pub const F_SETOWN: ::c_int = 24; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const VEOF: usize = 16; +pub const VEOL: usize = 17; +pub const VEOL2: usize = 6; +pub const VMIN: usize = 4; +pub const IEXTEN: ::tcflag_t = 0o000400; +pub const TOSTOP: ::tcflag_t = 0o100000; +pub const FLUSHO: ::tcflag_t = 0o020000; + +pub const POLLWRNORM: ::c_short = 0x4; +pub const POLLWRBAND: ::c_short = 0x100; + +pub const SYS_syscall: ::c_long = 4000 + 0; +pub const SYS_exit: ::c_long = 4000 + 1; +pub const SYS_fork: ::c_long = 4000 + 2; +pub const SYS_read: ::c_long = 4000 + 3; +pub const SYS_write: ::c_long = 4000 + 4; +pub const SYS_open: ::c_long = 4000 + 5; +pub const SYS_close: ::c_long = 4000 + 6; +pub const SYS_waitpid: ::c_long = 4000 + 7; +pub const SYS_creat: ::c_long = 4000 + 8; +pub const SYS_link: ::c_long = 4000 + 9; +pub const SYS_unlink: ::c_long = 4000 + 10; +pub const SYS_execve: ::c_long = 4000 + 11; +pub const SYS_chdir: ::c_long = 4000 + 12; +pub const SYS_time: ::c_long = 4000 + 13; +pub const SYS_mknod: ::c_long = 4000 + 14; +pub const SYS_chmod: ::c_long = 4000 + 15; +pub const SYS_lchown: ::c_long = 4000 + 16; +pub const SYS_break: ::c_long = 4000 + 17; +pub const SYS_lseek: ::c_long = 4000 + 19; +pub const SYS_getpid: ::c_long = 4000 + 20; +pub const SYS_mount: ::c_long = 4000 + 21; +pub const SYS_umount: ::c_long = 4000 + 22; +pub const SYS_setuid: ::c_long = 4000 + 23; +pub const SYS_getuid: ::c_long = 4000 + 24; +pub const SYS_stime: ::c_long = 4000 + 25; +pub const SYS_ptrace: ::c_long = 4000 + 26; +pub const SYS_alarm: ::c_long = 4000 + 27; +pub const SYS_pause: ::c_long = 4000 + 29; +pub const SYS_utime: ::c_long = 4000 + 30; +pub const SYS_stty: ::c_long = 4000 + 31; +pub const SYS_gtty: ::c_long = 4000 + 32; +pub const SYS_access: ::c_long = 4000 + 33; +pub const SYS_nice: ::c_long = 4000 + 34; +pub const SYS_ftime: ::c_long = 4000 + 35; +pub const SYS_sync: ::c_long = 4000 + 36; +pub const SYS_kill: ::c_long = 4000 + 37; +pub const SYS_rename: ::c_long = 4000 + 38; +pub const SYS_mkdir: ::c_long = 4000 + 39; +pub const SYS_rmdir: ::c_long = 4000 + 40; +pub const SYS_dup: ::c_long = 4000 + 41; +pub const SYS_pipe: ::c_long = 4000 + 42; +pub const SYS_times: ::c_long = 4000 + 43; +pub const SYS_prof: ::c_long = 4000 + 44; +pub const SYS_brk: ::c_long = 4000 + 45; +pub const SYS_setgid: ::c_long = 4000 + 46; +pub const SYS_getgid: ::c_long = 4000 + 47; +pub const SYS_signal: ::c_long = 4000 + 48; +pub const SYS_geteuid: ::c_long = 4000 + 49; +pub const SYS_getegid: ::c_long = 4000 + 50; +pub const SYS_acct: ::c_long = 4000 + 51; +pub const SYS_umount2: ::c_long = 4000 + 52; +pub const SYS_lock: ::c_long = 4000 + 53; +pub const SYS_ioctl: ::c_long = 4000 + 54; +pub const SYS_fcntl: ::c_long = 4000 + 55; +pub const SYS_mpx: ::c_long = 4000 + 56; +pub const SYS_setpgid: ::c_long = 4000 + 57; +pub const SYS_ulimit: ::c_long = 4000 + 58; +pub const SYS_umask: ::c_long = 4000 + 60; +pub const SYS_chroot: ::c_long = 4000 + 61; +pub const SYS_ustat: ::c_long = 4000 + 62; +pub const SYS_dup2: ::c_long = 4000 + 63; +pub const SYS_getppid: ::c_long = 4000 + 64; +pub const SYS_getpgrp: ::c_long = 4000 + 65; +pub const SYS_setsid: ::c_long = 4000 + 66; +pub const SYS_sigaction: ::c_long = 4000 + 67; +pub const SYS_sgetmask: ::c_long = 4000 + 68; +pub const SYS_ssetmask: ::c_long = 4000 + 69; +pub const SYS_setreuid: ::c_long = 4000 + 70; +pub const SYS_setregid: ::c_long = 4000 + 71; +pub const SYS_sigsuspend: ::c_long = 4000 + 72; +pub const SYS_sigpending: ::c_long = 4000 + 73; +pub const SYS_sethostname: ::c_long = 4000 + 74; +pub const SYS_setrlimit: ::c_long = 4000 + 75; +pub const SYS_getrlimit: ::c_long = 4000 + 76; +pub const SYS_getrusage: ::c_long = 4000 + 77; +pub const SYS_gettimeofday: ::c_long = 4000 + 78; +pub const SYS_settimeofday: ::c_long = 4000 + 79; +pub const SYS_getgroups: ::c_long = 4000 + 80; +pub const SYS_setgroups: ::c_long = 4000 + 81; +pub const SYS_symlink: ::c_long = 4000 + 83; +pub const SYS_readlink: ::c_long = 4000 + 85; +pub const SYS_uselib: ::c_long = 4000 + 86; +pub const SYS_swapon: ::c_long = 4000 + 87; +pub const SYS_reboot: ::c_long = 4000 + 88; +pub const SYS_readdir: ::c_long = 4000 + 89; +pub const SYS_mmap: ::c_long = 4000 + 90; +pub const SYS_munmap: ::c_long = 4000 + 91; +pub const SYS_truncate: ::c_long = 4000 + 92; +pub const SYS_ftruncate: ::c_long = 4000 + 93; +pub const SYS_fchmod: ::c_long = 4000 + 94; +pub const SYS_fchown: ::c_long = 4000 + 95; +pub const SYS_getpriority: ::c_long = 4000 + 96; +pub const SYS_setpriority: ::c_long = 4000 + 97; +pub const SYS_profil: ::c_long = 4000 + 98; +pub const SYS_statfs: ::c_long = 4000 + 99; +pub const SYS_fstatfs: ::c_long = 4000 + 100; +pub const SYS_ioperm: ::c_long = 4000 + 101; +pub const SYS_socketcall: ::c_long = 4000 + 102; +pub const SYS_syslog: ::c_long = 4000 + 103; +pub const SYS_setitimer: ::c_long = 4000 + 104; +pub const SYS_getitimer: ::c_long = 4000 + 105; +pub const SYS_stat: ::c_long = 4000 + 106; +pub const SYS_lstat: ::c_long = 4000 + 107; +pub const SYS_fstat: ::c_long = 4000 + 108; +pub const SYS_iopl: ::c_long = 4000 + 110; +pub const SYS_vhangup: ::c_long = 4000 + 111; +pub const SYS_idle: ::c_long = 4000 + 112; +pub const SYS_vm86: ::c_long = 4000 + 113; +pub const SYS_wait4: ::c_long = 4000 + 114; +pub const SYS_swapoff: ::c_long = 4000 + 115; +pub const SYS_sysinfo: ::c_long = 4000 + 116; +pub const SYS_ipc: ::c_long = 4000 + 117; +pub const SYS_fsync: ::c_long = 4000 + 118; +pub const SYS_sigreturn: ::c_long = 4000 + 119; +pub const SYS_clone: ::c_long = 4000 + 120; +pub const SYS_setdomainname: ::c_long = 4000 + 121; +pub const SYS_uname: ::c_long = 4000 + 122; +pub const SYS_modify_ldt: ::c_long = 4000 + 123; +pub const SYS_adjtimex: ::c_long = 4000 + 124; +pub const SYS_mprotect: ::c_long = 4000 + 125; +pub const SYS_sigprocmask: ::c_long = 4000 + 126; +pub const SYS_create_module: ::c_long = 4000 + 127; +pub const SYS_init_module: ::c_long = 4000 + 128; +pub const SYS_delete_module: ::c_long = 4000 + 129; +pub const SYS_get_kernel_syms: ::c_long = 4000 + 130; +pub const SYS_quotactl: ::c_long = 4000 + 131; +pub const SYS_getpgid: ::c_long = 4000 + 132; +pub const SYS_fchdir: ::c_long = 4000 + 133; +pub const SYS_bdflush: ::c_long = 4000 + 134; +pub const SYS_sysfs: ::c_long = 4000 + 135; +pub const SYS_personality: ::c_long = 4000 + 136; +pub const SYS_afs_syscall: ::c_long = 4000 + 137; +pub const SYS_setfsuid: ::c_long = 4000 + 138; +pub const SYS_setfsgid: ::c_long = 4000 + 139; +pub const SYS__llseek: ::c_long = 4000 + 140; +pub const SYS_getdents: ::c_long = 4000 + 141; +pub const SYS_flock: ::c_long = 4000 + 143; +pub const SYS_msync: ::c_long = 4000 + 144; +pub const SYS_readv: ::c_long = 4000 + 145; +pub const SYS_writev: ::c_long = 4000 + 146; +pub const SYS_cacheflush: ::c_long = 4000 + 147; +pub const SYS_cachectl: ::c_long = 4000 + 148; +pub const SYS_sysmips: ::c_long = 4000 + 149; +pub const SYS_getsid: ::c_long = 4000 + 151; +pub const SYS_fdatasync: ::c_long = 4000 + 152; +pub const SYS__sysctl: ::c_long = 4000 + 153; +pub const SYS_mlock: ::c_long = 4000 + 154; +pub const SYS_munlock: ::c_long = 4000 + 155; +pub const SYS_mlockall: ::c_long = 4000 + 156; +pub const SYS_munlockall: ::c_long = 4000 + 157; +pub const SYS_sched_setparam: ::c_long = 4000 + 158; +pub const SYS_sched_getparam: ::c_long = 4000 + 159; +pub const SYS_sched_setscheduler: ::c_long = 4000 + 160; +pub const SYS_sched_getscheduler: ::c_long = 4000 + 161; +pub const SYS_sched_yield: ::c_long = 4000 + 162; +pub const SYS_sched_get_priority_max: ::c_long = 4000 + 163; +pub const SYS_sched_get_priority_min: ::c_long = 4000 + 164; +pub const SYS_sched_rr_get_interval: ::c_long = 4000 + 165; +pub const SYS_nanosleep: ::c_long = 4000 + 166; +pub const SYS_mremap: ::c_long = 4000 + 167; +pub const SYS_accept: ::c_long = 4000 + 168; +pub const SYS_bind: ::c_long = 4000 + 169; +pub const SYS_connect: ::c_long = 4000 + 170; +pub const SYS_getpeername: ::c_long = 4000 + 171; +pub const SYS_getsockname: ::c_long = 4000 + 172; +pub const SYS_getsockopt: ::c_long = 4000 + 173; +pub const SYS_listen: ::c_long = 4000 + 174; +pub const SYS_recv: ::c_long = 4000 + 175; +pub const SYS_recvfrom: ::c_long = 4000 + 176; +pub const SYS_recvmsg: ::c_long = 4000 + 177; +pub const SYS_send: ::c_long = 4000 + 178; +pub const SYS_sendmsg: ::c_long = 4000 + 179; +pub const SYS_sendto: ::c_long = 4000 + 180; +pub const SYS_setsockopt: ::c_long = 4000 + 181; +pub const SYS_shutdown: ::c_long = 4000 + 182; +pub const SYS_socket: ::c_long = 4000 + 183; +pub const SYS_socketpair: ::c_long = 4000 + 184; +pub const SYS_setresuid: ::c_long = 4000 + 185; +pub const SYS_getresuid: ::c_long = 4000 + 186; +pub const SYS_query_module: ::c_long = 4000 + 187; +pub const SYS_poll: ::c_long = 4000 + 188; +pub const SYS_nfsservctl: ::c_long = 4000 + 189; +pub const SYS_setresgid: ::c_long = 4000 + 190; +pub const SYS_getresgid: ::c_long = 4000 + 191; +pub const SYS_prctl: ::c_long = 4000 + 192; +pub const SYS_rt_sigreturn: ::c_long = 4000 + 193; +pub const SYS_rt_sigaction: ::c_long = 4000 + 194; +pub const SYS_rt_sigprocmask: ::c_long = 4000 + 195; +pub const SYS_rt_sigpending: ::c_long = 4000 + 196; +pub const SYS_rt_sigtimedwait: ::c_long = 4000 + 197; +pub const SYS_rt_sigqueueinfo: ::c_long = 4000 + 198; +pub const SYS_rt_sigsuspend: ::c_long = 4000 + 199; +pub const SYS_chown: ::c_long = 4000 + 202; +pub const SYS_getcwd: ::c_long = 4000 + 203; +pub const SYS_capget: ::c_long = 4000 + 204; +pub const SYS_capset: ::c_long = 4000 + 205; +pub const SYS_sigaltstack: ::c_long = 4000 + 206; +pub const SYS_sendfile: ::c_long = 4000 + 207; +pub const SYS_getpmsg: ::c_long = 4000 + 208; +pub const SYS_putpmsg: ::c_long = 4000 + 209; +pub const SYS_mmap2: ::c_long = 4000 + 210; +pub const SYS_truncate64: ::c_long = 4000 + 211; +pub const SYS_ftruncate64: ::c_long = 4000 + 212; +pub const SYS_stat64: ::c_long = 4000 + 213; +pub const SYS_lstat64: ::c_long = 4000 + 214; +pub const SYS_fstat64: ::c_long = 4000 + 215; +pub const SYS_pivot_root: ::c_long = 4000 + 216; +pub const SYS_mincore: ::c_long = 4000 + 217; +pub const SYS_madvise: ::c_long = 4000 + 218; +pub const SYS_getdents64: ::c_long = 4000 + 219; +pub const SYS_fcntl64: ::c_long = 4000 + 220; +pub const SYS_gettid: ::c_long = 4000 + 222; +pub const SYS_readahead: ::c_long = 4000 + 223; +pub const SYS_setxattr: ::c_long = 4000 + 224; +pub const SYS_lsetxattr: ::c_long = 4000 + 225; +pub const SYS_fsetxattr: ::c_long = 4000 + 226; +pub const SYS_getxattr: ::c_long = 4000 + 227; +pub const SYS_lgetxattr: ::c_long = 4000 + 228; +pub const SYS_fgetxattr: ::c_long = 4000 + 229; +pub const SYS_listxattr: ::c_long = 4000 + 230; +pub const SYS_llistxattr: ::c_long = 4000 + 231; +pub const SYS_flistxattr: ::c_long = 4000 + 232; +pub const SYS_removexattr: ::c_long = 4000 + 233; +pub const SYS_lremovexattr: ::c_long = 4000 + 234; +pub const SYS_fremovexattr: ::c_long = 4000 + 235; +pub const SYS_tkill: ::c_long = 4000 + 236; +pub const SYS_sendfile64: ::c_long = 4000 + 237; +pub const SYS_futex: ::c_long = 4000 + 238; +pub const SYS_sched_setaffinity: ::c_long = 4000 + 239; +pub const SYS_sched_getaffinity: ::c_long = 4000 + 240; +pub const SYS_io_setup: ::c_long = 4000 + 241; +pub const SYS_io_destroy: ::c_long = 4000 + 242; +pub const SYS_io_getevents: ::c_long = 4000 + 243; +pub const SYS_io_submit: ::c_long = 4000 + 244; +pub const SYS_io_cancel: ::c_long = 4000 + 245; +pub const SYS_exit_group: ::c_long = 4000 + 246; +pub const SYS_lookup_dcookie: ::c_long = 4000 + 247; +pub const SYS_epoll_create: ::c_long = 4000 + 248; +pub const SYS_epoll_ctl: ::c_long = 4000 + 249; +pub const SYS_epoll_wait: ::c_long = 4000 + 250; +pub const SYS_remap_file_pages: ::c_long = 4000 + 251; +pub const SYS_set_tid_address: ::c_long = 4000 + 252; +pub const SYS_restart_syscall: ::c_long = 4000 + 253; +pub const SYS_statfs64: ::c_long = 4000 + 255; +pub const SYS_fstatfs64: ::c_long = 4000 + 256; +pub const SYS_timer_create: ::c_long = 4000 + 257; +pub const SYS_timer_settime: ::c_long = 4000 + 258; +pub const SYS_timer_gettime: ::c_long = 4000 + 259; +pub const SYS_timer_getoverrun: ::c_long = 4000 + 260; +pub const SYS_timer_delete: ::c_long = 4000 + 261; +pub const SYS_clock_settime: ::c_long = 4000 + 262; +pub const SYS_clock_gettime: ::c_long = 4000 + 263; +pub const SYS_clock_getres: ::c_long = 4000 + 264; +pub const SYS_clock_nanosleep: ::c_long = 4000 + 265; +pub const SYS_tgkill: ::c_long = 4000 + 266; +pub const SYS_utimes: ::c_long = 4000 + 267; +pub const SYS_mbind: ::c_long = 4000 + 268; +pub const SYS_get_mempolicy: ::c_long = 4000 + 269; +pub const SYS_set_mempolicy: ::c_long = 4000 + 270; +pub const SYS_mq_open: ::c_long = 4000 + 271; +pub const SYS_mq_unlink: ::c_long = 4000 + 272; +pub const SYS_mq_timedsend: ::c_long = 4000 + 273; +pub const SYS_mq_timedreceive: ::c_long = 4000 + 274; +pub const SYS_mq_notify: ::c_long = 4000 + 275; +pub const SYS_mq_getsetattr: ::c_long = 4000 + 276; +pub const SYS_vserver: ::c_long = 4000 + 277; +pub const SYS_waitid: ::c_long = 4000 + 278; +/* pub const SYS_sys_setaltroot: ::c_long = 4000 + 279; */ +pub const SYS_add_key: ::c_long = 4000 + 280; +pub const SYS_request_key: ::c_long = 4000 + 281; +pub const SYS_keyctl: ::c_long = 4000 + 282; +pub const SYS_set_thread_area: ::c_long = 4000 + 283; +pub const SYS_inotify_init: ::c_long = 4000 + 284; +pub const SYS_inotify_add_watch: ::c_long = 4000 + 285; +pub const SYS_inotify_rm_watch: ::c_long = 4000 + 286; +pub const SYS_migrate_pages: ::c_long = 4000 + 287; +pub const SYS_openat: ::c_long = 4000 + 288; +pub const SYS_mkdirat: ::c_long = 4000 + 289; +pub const SYS_mknodat: ::c_long = 4000 + 290; +pub const SYS_fchownat: ::c_long = 4000 + 291; +pub const SYS_futimesat: ::c_long = 4000 + 292; +pub const SYS_unlinkat: ::c_long = 4000 + 294; +pub const SYS_renameat: ::c_long = 4000 + 295; +pub const SYS_linkat: ::c_long = 4000 + 296; +pub const SYS_symlinkat: ::c_long = 4000 + 297; +pub const SYS_readlinkat: ::c_long = 4000 + 298; +pub const SYS_fchmodat: ::c_long = 4000 + 299; +pub const SYS_faccessat: ::c_long = 4000 + 300; +pub const SYS_pselect6: ::c_long = 4000 + 301; +pub const SYS_ppoll: ::c_long = 4000 + 302; +pub const SYS_unshare: ::c_long = 4000 + 303; +pub const SYS_splice: ::c_long = 4000 + 304; +pub const SYS_sync_file_range: ::c_long = 4000 + 305; +pub const SYS_tee: ::c_long = 4000 + 306; +pub const SYS_vmsplice: ::c_long = 4000 + 307; +pub const SYS_move_pages: ::c_long = 4000 + 308; +pub const SYS_set_robust_list: ::c_long = 4000 + 309; +pub const SYS_get_robust_list: ::c_long = 4000 + 310; +pub const SYS_kexec_load: ::c_long = 4000 + 311; +pub const SYS_getcpu: ::c_long = 4000 + 312; +pub const SYS_epoll_pwait: ::c_long = 4000 + 313; +pub const SYS_ioprio_set: ::c_long = 4000 + 314; +pub const SYS_ioprio_get: ::c_long = 4000 + 315; +pub const SYS_utimensat: ::c_long = 4000 + 316; +pub const SYS_signalfd: ::c_long = 4000 + 317; +pub const SYS_timerfd: ::c_long = 4000 + 318; +pub const SYS_eventfd: ::c_long = 4000 + 319; +pub const SYS_fallocate: ::c_long = 4000 + 320; +pub const SYS_timerfd_create: ::c_long = 4000 + 321; +pub const SYS_timerfd_gettime: ::c_long = 4000 + 322; +pub const SYS_timerfd_settime: ::c_long = 4000 + 323; +pub const SYS_signalfd4: ::c_long = 4000 + 324; +pub const SYS_eventfd2: ::c_long = 4000 + 325; +pub const SYS_epoll_create1: ::c_long = 4000 + 326; +pub const SYS_dup3: ::c_long = 4000 + 327; +pub const SYS_pipe2: ::c_long = 4000 + 328; +pub const SYS_inotify_init1: ::c_long = 4000 + 329; +pub const SYS_preadv: ::c_long = 4000 + 330; +pub const SYS_pwritev: ::c_long = 4000 + 331; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 4000 + 332; +pub const SYS_perf_event_open: ::c_long = 4000 + 333; +pub const SYS_accept4: ::c_long = 4000 + 334; +pub const SYS_recvmmsg: ::c_long = 4000 + 335; +pub const SYS_fanotify_init: ::c_long = 4000 + 336; +pub const SYS_fanotify_mark: ::c_long = 4000 + 337; +pub const SYS_prlimit64: ::c_long = 4000 + 338; +pub const SYS_name_to_handle_at: ::c_long = 4000 + 339; +pub const SYS_open_by_handle_at: ::c_long = 4000 + 340; +pub const SYS_clock_adjtime: ::c_long = 4000 + 341; +pub const SYS_syncfs: ::c_long = 4000 + 342; +pub const SYS_sendmmsg: ::c_long = 4000 + 343; +pub const SYS_setns: ::c_long = 4000 + 344; +pub const SYS_process_vm_readv: ::c_long = 4000 + 345; +pub const SYS_process_vm_writev: ::c_long = 4000 + 346; +pub const SYS_kcmp: ::c_long = 4000 + 347; +pub const SYS_finit_module: ::c_long = 4000 + 348; +pub const SYS_sched_setattr: ::c_long = 4000 + 349; +pub const SYS_sched_getattr: ::c_long = 4000 + 350; +pub const SYS_renameat2: ::c_long = 4000 + 351; +pub const SYS_seccomp: ::c_long = 4000 + 352; +pub const SYS_getrandom: ::c_long = 4000 + 353; +pub const SYS_memfd_create: ::c_long = 4000 + 354; +pub const SYS_bpf: ::c_long = 4000 + 355; +pub const SYS_execveat: ::c_long = 4000 + 356; +pub const SYS_userfaultfd: ::c_long = 4000 + 357; +pub const SYS_membarrier: ::c_long = 4000 + 358; +pub const SYS_mlock2: ::c_long = 4000 + 359; +pub const SYS_copy_file_range: ::c_long = 4000 + 360; +pub const SYS_preadv2: ::c_long = 4000 + 361; +pub const SYS_pwritev2: ::c_long = 4000 + 362; +pub const SYS_pkey_mprotect: ::c_long = 4000 + 363; +pub const SYS_pkey_alloc: ::c_long = 4000 + 364; +pub const SYS_pkey_free: ::c_long = 4000 + 365; +pub const SYS_statx: ::c_long = 4000 + 366; +pub const SYS_pidfd_send_signal: ::c_long = 4000 + 424; +pub const SYS_io_uring_setup: ::c_long = 4000 + 425; +pub const SYS_io_uring_enter: ::c_long = 4000 + 426; +pub const SYS_io_uring_register: ::c_long = 4000 + 427; +pub const SYS_open_tree: ::c_long = 4000 + 428; +pub const SYS_move_mount: ::c_long = 4000 + 429; +pub const SYS_fsopen: ::c_long = 4000 + 430; +pub const SYS_fsconfig: ::c_long = 4000 + 431; +pub const SYS_fsmount: ::c_long = 4000 + 432; +pub const SYS_fspick: ::c_long = 4000 + 433; +pub const SYS_pidfd_open: ::c_long = 4000 + 434; +pub const SYS_clone3: ::c_long = 4000 + 435; +pub const SYS_close_range: ::c_long = 4000 + 436; +pub const SYS_openat2: ::c_long = 4000 + 437; +pub const SYS_pidfd_getfd: ::c_long = 4000 + 438; +pub const SYS_faccessat2: ::c_long = 4000 + 439; +pub const SYS_process_madvise: ::c_long = 4000 + 440; +pub const SYS_epoll_pwait2: ::c_long = 4000 + 441; +pub const SYS_mount_setattr: ::c_long = 4000 + 442; +pub const SYS_quotactl_fd: ::c_long = 4000 + 443; +pub const SYS_landlock_create_ruleset: ::c_long = 4000 + 444; +pub const SYS_landlock_add_rule: ::c_long = 4000 + 445; +pub const SYS_landlock_restrict_self: ::c_long = 4000 + 446; +pub const SYS_memfd_secret: ::c_long = 4000 + 447; +pub const SYS_process_mrelease: ::c_long = 4000 + 448; +pub const SYS_futex_waitv: ::c_long = 4000 + 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 4000 + 450; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mod.rs new file mode 100644 index 000000000..cecd6dcab --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mod.rs @@ -0,0 +1,65 @@ +pub type c_long = i32; +pub type c_ulong = u32; +pub type nlink_t = u32; +pub type blksize_t = ::c_long; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; +pub type regoff_t = ::c_int; + +s! { + pub struct pthread_attr_t { + __size: [u32; 9] + } + + pub struct sigset_t { + __val: [::c_ulong; 32], + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::socklen_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: ::socklen_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct sem_t { + __val: [::c_int; 4], + } +} + +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; + +cfg_if! { + if #[cfg(any(target_arch = "x86"))] { + mod x86; + pub use self::x86::*; + } else if #[cfg(any(target_arch = "mips"))] { + mod mips; + pub use self::mips::*; + } else if #[cfg(any(target_arch = "arm"))] { + mod arm; + pub use self::arm::*; + } else if #[cfg(any(target_arch = "powerpc"))] { + mod powerpc; + pub use self::powerpc::*; + } else if #[cfg(any(target_arch = "hexagon"))] { + mod hexagon; + pub use self::hexagon::*; + } else if #[cfg(any(target_arch = "riscv32"))] { + mod riscv32; + pub use self::riscv32::*; + } else { + // Unknown target_arch + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/powerpc.rs new file mode 100644 index 000000000..b1669ade7 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -0,0 +1,809 @@ +pub type c_char = u8; +pub type wchar_t = i32; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __st_rdev_padding: ::c_short, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_long; 2], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __st_rdev_padding: ::c_short, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_long; 2], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_int, + __pad1: ::c_int, + __pad2: ::c_longlong, + __pad3: ::c_longlong + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + __unused1: ::c_int, + pub shm_atime: ::time_t, + __unused2: ::c_int, + pub shm_dtime: ::time_t, + __unused3: ::c_int, + pub shm_ctime: ::time_t, + __unused4: ::c_int, + pub shm_segsz: ::size_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::c_ulong, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + __unused1: ::c_int, + pub msg_stime: ::time_t, + __unused2: ::c_int, + pub msg_rtime: ::time_t, + __unused3: ::c_int, + pub msg_ctime: ::time_t, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + #[cfg(target_endian = "little")] + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + #[cfg(target_endian = "big")] + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } +} + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const SIGSTKSZ: ::size_t = 10240; +pub const MINSIGSTKSZ: ::size_t = 4096; + +pub const O_DIRECT: ::c_int = 0x20000; +pub const O_DIRECTORY: ::c_int = 0x4000; +pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_LARGEFILE: ::c_int = 0x10000; + +pub const MCL_CURRENT: ::c_int = 0x2000; +pub const MCL_FUTURE: ::c_int = 0x4000; +pub const CBAUD: ::tcflag_t = 0o0000377; +pub const TAB1: ::c_int = 0x00000400; +pub const TAB2: ::c_int = 0x00000800; +pub const TAB3: ::c_int = 0x00000C00; +pub const CR1: ::c_int = 0x00001000; +pub const CR2: ::c_int = 0x00002000; +pub const CR3: ::c_int = 0x00003000; +pub const FF1: ::c_int = 0x00004000; +pub const BS1: ::c_int = 0x00008000; +pub const VT1: ::c_int = 0x00010000; +pub const VWERASE: usize = 10; +pub const VREPRINT: usize = 11; +pub const VSUSP: usize = 12; +pub const VSTART: usize = 13; +pub const VSTOP: usize = 14; +pub const VDISCARD: usize = 16; +pub const VTIME: usize = 7; +pub const IXON: ::tcflag_t = 0x00000200; +pub const IXOFF: ::tcflag_t = 0x00000400; +pub const ONLCR: ::tcflag_t = 0x00000002; +pub const CSIZE: ::tcflag_t = 0x00000300; +pub const CS6: ::tcflag_t = 0x00000100; +pub const CS7: ::tcflag_t = 0x00000200; +pub const CS8: ::tcflag_t = 0x00000300; +pub const CSTOPB: ::tcflag_t = 0x00000400; +pub const CREAD: ::tcflag_t = 0x00000800; +pub const PARENB: ::tcflag_t = 0x00001000; +pub const PARODD: ::tcflag_t = 0x00002000; +pub const HUPCL: ::tcflag_t = 0x00004000; +pub const CLOCAL: ::tcflag_t = 0x00008000; +pub const ECHOKE: ::tcflag_t = 0x00000001; +pub const ECHOE: ::tcflag_t = 0x00000002; +pub const ECHOK: ::tcflag_t = 0x00000004; +pub const ECHONL: ::tcflag_t = 0x00000010; +pub const ECHOPRT: ::tcflag_t = 0x00000020; +pub const ECHOCTL: ::tcflag_t = 0x00000040; +pub const ISIG: ::tcflag_t = 0x00000080; +pub const ICANON: ::tcflag_t = 0x00000100; +pub const PENDIN: ::tcflag_t = 0x20000000; +pub const NOFLSH: ::tcflag_t = 0x80000000; +pub const CIBAUD: ::tcflag_t = 0o00077600000; +pub const CBAUDEX: ::tcflag_t = 0o000020; +pub const VSWTC: usize = 9; +pub const OLCUC: ::tcflag_t = 0o000004; +pub const NLDLY: ::tcflag_t = 0o001400; +pub const CRDLY: ::tcflag_t = 0o030000; +pub const TABDLY: ::tcflag_t = 0o006000; +pub const BSDLY: ::tcflag_t = 0o100000; +pub const FFDLY: ::tcflag_t = 0o040000; +pub const VTDLY: ::tcflag_t = 0o200000; +pub const XTABS: ::tcflag_t = 0o006000; +pub const B57600: ::speed_t = 0o000020; +pub const B115200: ::speed_t = 0o000021; +pub const B230400: ::speed_t = 0o000022; +pub const B460800: ::speed_t = 0o000023; +pub const B500000: ::speed_t = 0o000024; +pub const B576000: ::speed_t = 0o000025; +pub const B921600: ::speed_t = 0o000026; +pub const B1000000: ::speed_t = 0o000027; +pub const B1152000: ::speed_t = 0o000030; +pub const B1500000: ::speed_t = 0o000031; +pub const B2000000: ::speed_t = 0o000032; +pub const B2500000: ::speed_t = 0o000033; +pub const B3000000: ::speed_t = 0o000034; +pub const B3500000: ::speed_t = 0o000035; +pub const B4000000: ::speed_t = 0o000036; + +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; + +pub const SOCK_NONBLOCK: ::c_int = 2048; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x00080; +pub const MAP_NORESERVE: ::c_int = 0x00040; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const PTRACE_SYSEMU: ::c_int = 0x1d; +pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 0x1e; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_SEQPACKET: ::c_int = 5; + +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EDEADLOCK: ::c_int = 58; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ERFKILL: ::c_int = 132; +pub const EHWPOISON: ::c_int = 133; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const EXTPROC: ::tcflag_t = 0x10000000; + +pub const MAP_HUGETLB: ::c_int = 0x040000; + +pub const F_GETLK: ::c_int = 12; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 13; +pub const F_SETLKW: ::c_int = 14; +pub const F_SETOWN: ::c_int = 8; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const VEOF: usize = 4; +pub const VEOL: usize = 6; +pub const VEOL2: usize = 8; +pub const VMIN: usize = 5; +pub const IEXTEN: ::tcflag_t = 0x00000400; +pub const TOSTOP: ::tcflag_t = 0x00400000; +pub const FLUSHO: ::tcflag_t = 0x00800000; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +// Syscall table +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_waitpid: ::c_long = 7; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_time: ::c_long = 13; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_break: ::c_long = 17; +pub const SYS_oldstat: ::c_long = 18; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_umount: ::c_long = 22; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_stime: ::c_long = 25; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_alarm: ::c_long = 27; +pub const SYS_oldfstat: ::c_long = 28; +pub const SYS_pause: ::c_long = 29; +pub const SYS_utime: ::c_long = 30; +pub const SYS_stty: ::c_long = 31; +pub const SYS_gtty: ::c_long = 32; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_ftime: ::c_long = 35; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_prof: ::c_long = 44; +pub const SYS_brk: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_signal: ::c_long = 48; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_lock: ::c_long = 53; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_mpx: ::c_long = 56; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_ulimit: ::c_long = 58; +pub const SYS_oldolduname: ::c_long = 59; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_sgetmask: ::c_long = 68; +pub const SYS_ssetmask: ::c_long = 69; +pub const SYS_setreuid: ::c_long = 70; +pub const SYS_setregid: ::c_long = 71; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrlimit: ::c_long = 76; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_getgroups: ::c_long = 80; +pub const SYS_setgroups: ::c_long = 81; +pub const SYS_select: ::c_long = 82; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_oldlstat: ::c_long = 84; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_readdir: ::c_long = 89; +pub const SYS_mmap: ::c_long = 90; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_fchown: ::c_long = 95; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_profil: ::c_long = 98; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_ioperm: ::c_long = 101; +pub const SYS_socketcall: ::c_long = 102; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_olduname: ::c_long = 109; +pub const SYS_iopl: ::c_long = 110; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_idle: ::c_long = 112; +pub const SYS_vm86: ::c_long = 113; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_ipc: ::c_long = 117; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_modify_ldt: ::c_long = 123; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_create_module: ::c_long = 127; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_get_kernel_syms: ::c_long = 130; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_afs_syscall: ::c_long = 137; +pub const SYS_setfsuid: ::c_long = 138; +pub const SYS_setfsgid: ::c_long = 139; +pub const SYS__llseek: ::c_long = 140; +pub const SYS_getdents: ::c_long = 141; +pub const SYS__newselect: ::c_long = 142; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_setresuid: ::c_long = 164; +pub const SYS_getresuid: ::c_long = 165; +pub const SYS_query_module: ::c_long = 166; +pub const SYS_poll: ::c_long = 167; +pub const SYS_nfsservctl: ::c_long = 168; +pub const SYS_setresgid: ::c_long = 169; +pub const SYS_getresgid: ::c_long = 170; +pub const SYS_prctl: ::c_long = 171; +pub const SYS_rt_sigreturn: ::c_long = 172; +pub const SYS_rt_sigaction: ::c_long = 173; +pub const SYS_rt_sigprocmask: ::c_long = 174; +pub const SYS_rt_sigpending: ::c_long = 175; +pub const SYS_rt_sigtimedwait: ::c_long = 176; +pub const SYS_rt_sigqueueinfo: ::c_long = 177; +pub const SYS_rt_sigsuspend: ::c_long = 178; +pub const SYS_pread64: ::c_long = 179; +pub const SYS_pwrite64: ::c_long = 180; +pub const SYS_chown: ::c_long = 181; +pub const SYS_getcwd: ::c_long = 182; +pub const SYS_capget: ::c_long = 183; +pub const SYS_capset: ::c_long = 184; +pub const SYS_sigaltstack: ::c_long = 185; +pub const SYS_sendfile: ::c_long = 186; +pub const SYS_getpmsg: ::c_long = 187; +pub const SYS_putpmsg: ::c_long = 188; +pub const SYS_vfork: ::c_long = 189; +pub const SYS_ugetrlimit: ::c_long = 190; +pub const SYS_readahead: ::c_long = 191; +pub const SYS_mmap2: ::c_long = 192; +pub const SYS_truncate64: ::c_long = 193; +pub const SYS_ftruncate64: ::c_long = 194; +pub const SYS_stat64: ::c_long = 195; +pub const SYS_lstat64: ::c_long = 196; +pub const SYS_fstat64: ::c_long = 197; +pub const SYS_pciconfig_read: ::c_long = 198; +pub const SYS_pciconfig_write: ::c_long = 199; +pub const SYS_pciconfig_iobase: ::c_long = 200; +pub const SYS_multiplexer: ::c_long = 201; +pub const SYS_getdents64: ::c_long = 202; +pub const SYS_pivot_root: ::c_long = 203; +pub const SYS_fcntl64: ::c_long = 204; +pub const SYS_madvise: ::c_long = 205; +pub const SYS_mincore: ::c_long = 206; +pub const SYS_gettid: ::c_long = 207; +pub const SYS_tkill: ::c_long = 208; +pub const SYS_setxattr: ::c_long = 209; +pub const SYS_lsetxattr: ::c_long = 210; +pub const SYS_fsetxattr: ::c_long = 211; +pub const SYS_getxattr: ::c_long = 212; +pub const SYS_lgetxattr: ::c_long = 213; +pub const SYS_fgetxattr: ::c_long = 214; +pub const SYS_listxattr: ::c_long = 215; +pub const SYS_llistxattr: ::c_long = 216; +pub const SYS_flistxattr: ::c_long = 217; +pub const SYS_removexattr: ::c_long = 218; +pub const SYS_lremovexattr: ::c_long = 219; +pub const SYS_fremovexattr: ::c_long = 220; +pub const SYS_futex: ::c_long = 221; +pub const SYS_sched_setaffinity: ::c_long = 222; +pub const SYS_sched_getaffinity: ::c_long = 223; +pub const SYS_tuxcall: ::c_long = 225; +pub const SYS_sendfile64: ::c_long = 226; +pub const SYS_io_setup: ::c_long = 227; +pub const SYS_io_destroy: ::c_long = 228; +pub const SYS_io_getevents: ::c_long = 229; +pub const SYS_io_submit: ::c_long = 230; +pub const SYS_io_cancel: ::c_long = 231; +pub const SYS_set_tid_address: ::c_long = 232; +pub const SYS_fadvise64: ::c_long = 233; +pub const SYS_exit_group: ::c_long = 234; +pub const SYS_lookup_dcookie: ::c_long = 235; +pub const SYS_epoll_create: ::c_long = 236; +pub const SYS_epoll_ctl: ::c_long = 237; +pub const SYS_epoll_wait: ::c_long = 238; +pub const SYS_remap_file_pages: ::c_long = 239; +pub const SYS_timer_create: ::c_long = 240; +pub const SYS_timer_settime: ::c_long = 241; +pub const SYS_timer_gettime: ::c_long = 242; +pub const SYS_timer_getoverrun: ::c_long = 243; +pub const SYS_timer_delete: ::c_long = 244; +pub const SYS_clock_settime: ::c_long = 245; +pub const SYS_clock_gettime: ::c_long = 246; +pub const SYS_clock_getres: ::c_long = 247; +pub const SYS_clock_nanosleep: ::c_long = 248; +pub const SYS_swapcontext: ::c_long = 249; +pub const SYS_tgkill: ::c_long = 250; +pub const SYS_utimes: ::c_long = 251; +pub const SYS_statfs64: ::c_long = 252; +pub const SYS_fstatfs64: ::c_long = 253; +pub const SYS_fadvise64_64: ::c_long = 254; +pub const SYS_rtas: ::c_long = 255; +pub const SYS_sys_debug_setcontext: ::c_long = 256; +pub const SYS_migrate_pages: ::c_long = 258; +pub const SYS_mbind: ::c_long = 259; +pub const SYS_get_mempolicy: ::c_long = 260; +pub const SYS_set_mempolicy: ::c_long = 261; +pub const SYS_mq_open: ::c_long = 262; +pub const SYS_mq_unlink: ::c_long = 263; +pub const SYS_mq_timedsend: ::c_long = 264; +pub const SYS_mq_timedreceive: ::c_long = 265; +pub const SYS_mq_notify: ::c_long = 266; +pub const SYS_mq_getsetattr: ::c_long = 267; +pub const SYS_kexec_load: ::c_long = 268; +pub const SYS_add_key: ::c_long = 269; +pub const SYS_request_key: ::c_long = 270; +pub const SYS_keyctl: ::c_long = 271; +pub const SYS_waitid: ::c_long = 272; +pub const SYS_ioprio_set: ::c_long = 273; +pub const SYS_ioprio_get: ::c_long = 274; +pub const SYS_inotify_init: ::c_long = 275; +pub const SYS_inotify_add_watch: ::c_long = 276; +pub const SYS_inotify_rm_watch: ::c_long = 277; +pub const SYS_spu_run: ::c_long = 278; +pub const SYS_spu_create: ::c_long = 279; +pub const SYS_pselect6: ::c_long = 280; +pub const SYS_ppoll: ::c_long = 281; +pub const SYS_unshare: ::c_long = 282; +pub const SYS_splice: ::c_long = 283; +pub const SYS_tee: ::c_long = 284; +pub const SYS_vmsplice: ::c_long = 285; +pub const SYS_openat: ::c_long = 286; +pub const SYS_mkdirat: ::c_long = 287; +pub const SYS_mknodat: ::c_long = 288; +pub const SYS_fchownat: ::c_long = 289; +pub const SYS_futimesat: ::c_long = 290; +pub const SYS_fstatat64: ::c_long = 291; +pub const SYS_unlinkat: ::c_long = 292; +pub const SYS_renameat: ::c_long = 293; +pub const SYS_linkat: ::c_long = 294; +pub const SYS_symlinkat: ::c_long = 295; +pub const SYS_readlinkat: ::c_long = 296; +pub const SYS_fchmodat: ::c_long = 297; +pub const SYS_faccessat: ::c_long = 298; +pub const SYS_get_robust_list: ::c_long = 299; +pub const SYS_set_robust_list: ::c_long = 300; +pub const SYS_move_pages: ::c_long = 301; +pub const SYS_getcpu: ::c_long = 302; +pub const SYS_epoll_pwait: ::c_long = 303; +pub const SYS_utimensat: ::c_long = 304; +pub const SYS_signalfd: ::c_long = 305; +pub const SYS_timerfd_create: ::c_long = 306; +pub const SYS_eventfd: ::c_long = 307; +pub const SYS_sync_file_range2: ::c_long = 308; +pub const SYS_fallocate: ::c_long = 309; +pub const SYS_subpage_prot: ::c_long = 310; +pub const SYS_timerfd_settime: ::c_long = 311; +pub const SYS_timerfd_gettime: ::c_long = 312; +pub const SYS_signalfd4: ::c_long = 313; +pub const SYS_eventfd2: ::c_long = 314; +pub const SYS_epoll_create1: ::c_long = 315; +pub const SYS_dup3: ::c_long = 316; +pub const SYS_pipe2: ::c_long = 317; +pub const SYS_inotify_init1: ::c_long = 318; +pub const SYS_perf_event_open: ::c_long = 319; +pub const SYS_preadv: ::c_long = 320; +pub const SYS_pwritev: ::c_long = 321; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; +pub const SYS_fanotify_init: ::c_long = 323; +pub const SYS_fanotify_mark: ::c_long = 324; +pub const SYS_prlimit64: ::c_long = 325; +pub const SYS_socket: ::c_long = 326; +pub const SYS_bind: ::c_long = 327; +pub const SYS_connect: ::c_long = 328; +pub const SYS_listen: ::c_long = 329; +pub const SYS_accept: ::c_long = 330; +pub const SYS_getsockname: ::c_long = 331; +pub const SYS_getpeername: ::c_long = 332; +pub const SYS_socketpair: ::c_long = 333; +pub const SYS_send: ::c_long = 334; +pub const SYS_sendto: ::c_long = 335; +pub const SYS_recv: ::c_long = 336; +pub const SYS_recvfrom: ::c_long = 337; +pub const SYS_shutdown: ::c_long = 338; +pub const SYS_setsockopt: ::c_long = 339; +pub const SYS_getsockopt: ::c_long = 340; +pub const SYS_sendmsg: ::c_long = 341; +pub const SYS_recvmsg: ::c_long = 342; +pub const SYS_recvmmsg: ::c_long = 343; +pub const SYS_accept4: ::c_long = 344; +pub const SYS_name_to_handle_at: ::c_long = 345; +pub const SYS_open_by_handle_at: ::c_long = 346; +pub const SYS_clock_adjtime: ::c_long = 347; +pub const SYS_syncfs: ::c_long = 348; +pub const SYS_sendmmsg: ::c_long = 349; +pub const SYS_setns: ::c_long = 350; +pub const SYS_process_vm_readv: ::c_long = 351; +pub const SYS_process_vm_writev: ::c_long = 352; +pub const SYS_finit_module: ::c_long = 353; +pub const SYS_kcmp: ::c_long = 354; +pub const SYS_sched_setattr: ::c_long = 355; +pub const SYS_sched_getattr: ::c_long = 356; +pub const SYS_renameat2: ::c_long = 357; +pub const SYS_seccomp: ::c_long = 358; +pub const SYS_getrandom: ::c_long = 359; +pub const SYS_memfd_create: ::c_long = 360; +pub const SYS_bpf: ::c_long = 361; +pub const SYS_execveat: ::c_long = 362; +pub const SYS_switch_endian: ::c_long = 363; +pub const SYS_userfaultfd: ::c_long = 364; +pub const SYS_membarrier: ::c_long = 365; +pub const SYS_mlock2: ::c_long = 378; +pub const SYS_copy_file_range: ::c_long = 379; +pub const SYS_preadv2: ::c_long = 380; +pub const SYS_pwritev2: ::c_long = 381; +pub const SYS_kexec_file_load: ::c_long = 382; +pub const SYS_statx: ::c_long = 383; +pub const SYS_pkey_alloc: ::c_long = 384; +pub const SYS_pkey_free: ::c_long = 385; +pub const SYS_pkey_mprotect: ::c_long = 386; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +extern "C" { + pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/align.rs new file mode 100644 index 000000000..048268c96 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: (i64, f64) + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs new file mode 100644 index 000000000..bf7a4f59c --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -0,0 +1,794 @@ +//! RISC-V-specific definitions for 32-bit linux-like values + +pub type c_char = u8; +pub type wchar_t = ::c_int; + +s! { + pub struct pthread_attr_t { + __size: [::c_ulong; 7], + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub __pad1: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub __pad2: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2usize], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub __pad1: ::dev_t, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub __pad2: ::c_int, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2], + } + + pub struct statfs { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_frsize: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 4], + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub __f_spare: [::c_int; 6], + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [u64; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t, + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_ushort, + __pad1: ::c_ushort, + pub __seq: ::c_ushort, + __pad2: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused5: ::c_ulong, + __unused6: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + __unused1: ::c_int, + pub msg_rtime: ::time_t, + __unused2: ::c_int, + pub msg_ctime: ::time_t, + __unused3: ::c_int, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } +} + +//pub const RLIM_INFINITY: ::rlim_t = !0; +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const TIOCGSOFTCAR: ::c_ulong = 21529; +pub const TIOCSSOFTCAR: ::c_ulong = 21530; +pub const TIOCGRS485: ::c_int = 21550; +pub const TIOCSRS485: ::c_int = 21551; +//pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +//pub const RLIMIT_AS: ::__rlimit_resource_t = 9; +//pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; +//pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; +//pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 1052672; +pub const MAP_GROWSDOWN: ::c_int = 256; +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SA_ONSTACK: ::c_int = 8; +pub const SA_SIGINFO: ::c_int = 4; +pub const SA_NOCLDWAIT: ::c_int = 2; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0; +pub const SIG_UNBLOCK: ::c_int = 1; +pub const POLLWRNORM: ::c_short = 256; +pub const POLLWRBAND: ::c_short = 512; +pub const O_ASYNC: ::c_int = 8192; +pub const O_NDELAY: ::c_int = 2048; +pub const EFD_NONBLOCK: ::c_int = 2048; +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; +pub const SFD_NONBLOCK: ::c_int = 2048; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; +pub const TIOCLINUX: ::c_ulong = 21532; +pub const TIOCGSERIAL: ::c_ulong = 21534; +pub const TIOCEXCL: ::c_ulong = 21516; +pub const TIOCNXCL: ::c_ulong = 21517; +pub const TIOCSCTTY: ::c_ulong = 21518; +pub const TIOCSTI: ::c_ulong = 21522; +pub const TIOCMGET: ::c_ulong = 21525; +pub const TIOCMBIS: ::c_ulong = 21526; +pub const TIOCMBIC: ::c_ulong = 21527; +pub const TIOCMSET: ::c_ulong = 21528; +pub const TIOCCONS: ::c_ulong = 21533; +pub const TIOCM_ST: ::c_int = 8; +pub const TIOCM_SR: ::c_int = 16; +pub const TIOCM_CTS: ::c_int = 32; +pub const TIOCM_CAR: ::c_int = 64; +pub const TIOCM_RNG: ::c_int = 128; +pub const TIOCM_DSR: ::c_int = 256; + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +pub const O_DIRECT: ::c_int = 16384; +pub const O_DIRECTORY: ::c_int = 65536; +pub const O_NOFOLLOW: ::c_int = 131072; +pub const MAP_HUGETLB: ::c_int = 262144; +pub const MAP_LOCKED: ::c_int = 8192; +pub const MAP_NORESERVE: ::c_int = 16384; +pub const MAP_ANON: ::c_int = 32; +pub const MAP_ANONYMOUS: ::c_int = 32; +pub const MAP_DENYWRITE: ::c_int = 2048; +pub const MAP_EXECUTABLE: ::c_int = 4096; +pub const MAP_POPULATE: ::c_int = 32768; +pub const MAP_NONBLOCK: ::c_int = 65536; +pub const MAP_STACK: ::c_int = 131072; +pub const MAP_SYNC: ::c_int = 0x080000; +pub const EDEADLOCK: ::c_int = 35; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const FIOCLEX: ::c_int = 21585; +pub const FIONCLEX: ::c_int = 21584; +pub const FIONBIO: ::c_int = 21537; +pub const MCL_CURRENT: ::c_int = 1; +pub const MCL_FUTURE: ::c_int = 2; +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 4111; +pub const TAB1: ::tcflag_t = 2048; +pub const TAB2: ::tcflag_t = 4096; +pub const TAB3: ::tcflag_t = 6144; +pub const CR1: ::tcflag_t = 512; +pub const CR2: ::tcflag_t = 1024; +pub const CR3: ::tcflag_t = 1536; +pub const FF1: ::tcflag_t = 32768; +pub const BS1: ::tcflag_t = 8192; +pub const VT1: ::tcflag_t = 16384; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 1024; +pub const IXOFF: ::tcflag_t = 4096; +pub const ONLCR: ::tcflag_t = 4; +pub const CSIZE: ::tcflag_t = 48; +pub const CS6: ::tcflag_t = 16; +pub const CS7: ::tcflag_t = 32; +pub const CS8: ::tcflag_t = 48; +pub const CSTOPB: ::tcflag_t = 64; +pub const CREAD: ::tcflag_t = 128; +pub const PARENB: ::tcflag_t = 256; +pub const PARODD: ::tcflag_t = 512; +pub const HUPCL: ::tcflag_t = 1024; +pub const CLOCAL: ::tcflag_t = 2048; +pub const ECHOKE: ::tcflag_t = 2048; +pub const ECHOE: ::tcflag_t = 16; +pub const ECHOK: ::tcflag_t = 32; +pub const ECHONL: ::tcflag_t = 64; +pub const ECHOPRT: ::tcflag_t = 1024; +pub const ECHOCTL: ::tcflag_t = 512; +pub const ISIG: ::tcflag_t = 1; +pub const ICANON: ::tcflag_t = 2; +pub const PENDIN: ::tcflag_t = 16384; +pub const NOFLSH: ::tcflag_t = 128; +pub const CIBAUD: ::tcflag_t = 269418496; +pub const CBAUDEX: ::tcflag_t = 4096; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 2; +pub const NLDLY: ::tcflag_t = 256; +pub const CRDLY: ::tcflag_t = 1536; +pub const TABDLY: ::tcflag_t = 6144; +pub const BSDLY: ::tcflag_t = 8192; +pub const FFDLY: ::tcflag_t = 32768; +pub const VTDLY: ::tcflag_t = 16384; +pub const XTABS: ::tcflag_t = 6144; +pub const B0: ::speed_t = 0; +pub const B50: ::speed_t = 1; +pub const B75: ::speed_t = 2; +pub const B110: ::speed_t = 3; +pub const B134: ::speed_t = 4; +pub const B150: ::speed_t = 5; +pub const B200: ::speed_t = 6; +pub const B300: ::speed_t = 7; +pub const B600: ::speed_t = 8; +pub const B1200: ::speed_t = 9; +pub const B1800: ::speed_t = 10; +pub const B2400: ::speed_t = 11; +pub const B4800: ::speed_t = 12; +pub const B9600: ::speed_t = 13; +pub const B19200: ::speed_t = 14; +pub const B38400: ::speed_t = 15; +pub const EXTA: ::speed_t = 14; +pub const EXTB: ::speed_t = 15; +pub const B57600: ::speed_t = 4097; +pub const B115200: ::speed_t = 4098; +pub const B230400: ::speed_t = 4099; +pub const B460800: ::speed_t = 4100; +pub const B500000: ::speed_t = 4101; +pub const B576000: ::speed_t = 4102; +pub const B921600: ::speed_t = 4103; +pub const B1000000: ::speed_t = 4104; +pub const B1152000: ::speed_t = 4105; +pub const B1500000: ::speed_t = 4106; +pub const B2000000: ::speed_t = 4107; +pub const B2500000: ::speed_t = 4108; +pub const B3000000: ::speed_t = 4109; +pub const B3500000: ::speed_t = 4110; +pub const B4000000: ::speed_t = 4111; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 32768; +pub const TOSTOP: ::tcflag_t = 256; +pub const FLUSHO: ::tcflag_t = 4096; +pub const EXTPROC: ::tcflag_t = 65536; +pub const TCGETS: ::c_int = 21505; +pub const TCSETS: ::c_int = 21506; +pub const TCSETSW: ::c_int = 21507; +pub const TCSETSF: ::c_int = 21508; +pub const TCGETA: ::c_int = 21509; +pub const TCSETA: ::c_int = 21510; +pub const TCSETAW: ::c_int = 21511; +pub const TCSETAF: ::c_int = 21512; +pub const TCSBRK: ::c_int = 21513; +pub const TCXONC: ::c_int = 21514; +pub const TCFLSH: ::c_int = 21515; +pub const TIOCINQ: ::c_int = 21531; +pub const TIOCGPGRP: ::c_int = 21519; +pub const TIOCSPGRP: ::c_int = 21520; +pub const TIOCOUTQ: ::c_int = 21521; +pub const TIOCGWINSZ: ::c_int = 21523; +pub const TIOCSWINSZ: ::c_int = 21524; +pub const FIONREAD: ::c_int = 21531; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; + +pub const SYS_read: ::c_long = 63; +pub const SYS_write: ::c_long = 64; +pub const SYS_close: ::c_long = 57; +pub const SYS_fstat: ::c_long = 80; +pub const SYS_lseek: ::c_long = 62; +pub const SYS_mmap: ::c_long = 222; +pub const SYS_mprotect: ::c_long = 226; +pub const SYS_munmap: ::c_long = 215; +pub const SYS_brk: ::c_long = 214; +pub const SYS_rt_sigaction: ::c_long = 134; +pub const SYS_rt_sigprocmask: ::c_long = 135; +pub const SYS_rt_sigreturn: ::c_long = 139; +pub const SYS_ioctl: ::c_long = 29; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_readv: ::c_long = 65; +pub const SYS_writev: ::c_long = 66; +pub const SYS_sched_yield: ::c_long = 124; +pub const SYS_mremap: ::c_long = 216; +pub const SYS_msync: ::c_long = 227; +pub const SYS_mincore: ::c_long = 232; +pub const SYS_madvise: ::c_long = 233; +pub const SYS_shmget: ::c_long = 194; +pub const SYS_shmat: ::c_long = 196; +pub const SYS_shmctl: ::c_long = 195; +pub const SYS_dup: ::c_long = 23; +pub const SYS_nanosleep: ::c_long = 101; +pub const SYS_getitimer: ::c_long = 102; +pub const SYS_setitimer: ::c_long = 103; +pub const SYS_getpid: ::c_long = 172; +pub const SYS_sendfile: ::c_long = 71; +pub const SYS_socket: ::c_long = 198; +pub const SYS_connect: ::c_long = 203; +pub const SYS_accept: ::c_long = 202; +pub const SYS_sendto: ::c_long = 206; +pub const SYS_recvfrom: ::c_long = 207; +pub const SYS_sendmsg: ::c_long = 211; +pub const SYS_recvmsg: ::c_long = 212; +pub const SYS_shutdown: ::c_long = 210; +pub const SYS_bind: ::c_long = 200; +pub const SYS_listen: ::c_long = 201; +pub const SYS_getsockname: ::c_long = 204; +pub const SYS_getpeername: ::c_long = 205; +pub const SYS_socketpair: ::c_long = 199; +pub const SYS_setsockopt: ::c_long = 208; +pub const SYS_getsockopt: ::c_long = 209; +pub const SYS_clone: ::c_long = 220; +pub const SYS_execve: ::c_long = 221; +pub const SYS_exit: ::c_long = 93; +pub const SYS_wait4: ::c_long = 260; +pub const SYS_kill: ::c_long = 129; +pub const SYS_uname: ::c_long = 160; +pub const SYS_semget: ::c_long = 190; +pub const SYS_semop: ::c_long = 193; +pub const SYS_semctl: ::c_long = 191; +pub const SYS_shmdt: ::c_long = 197; +pub const SYS_msgget: ::c_long = 186; +pub const SYS_msgsnd: ::c_long = 189; +pub const SYS_msgrcv: ::c_long = 188; +pub const SYS_msgctl: ::c_long = 187; +pub const SYS_fcntl: ::c_long = 25; +pub const SYS_flock: ::c_long = 32; +pub const SYS_fsync: ::c_long = 82; +pub const SYS_fdatasync: ::c_long = 83; +pub const SYS_truncate: ::c_long = 45; +pub const SYS_ftruncate: ::c_long = 46; +pub const SYS_getcwd: ::c_long = 17; +pub const SYS_chdir: ::c_long = 49; +pub const SYS_fchdir: ::c_long = 50; +pub const SYS_fchmod: ::c_long = 52; +pub const SYS_fchown: ::c_long = 55; +pub const SYS_umask: ::c_long = 166; +pub const SYS_gettimeofday: ::c_long = 169; +pub const SYS_getrlimit: ::c_long = 163; +pub const SYS_getrusage: ::c_long = 165; +pub const SYS_sysinfo: ::c_long = 179; +pub const SYS_times: ::c_long = 153; +pub const SYS_ptrace: ::c_long = 117; +pub const SYS_getuid: ::c_long = 174; +pub const SYS_syslog: ::c_long = 116; +pub const SYS_getgid: ::c_long = 176; +pub const SYS_setuid: ::c_long = 146; +pub const SYS_setgid: ::c_long = 144; +pub const SYS_geteuid: ::c_long = 175; +pub const SYS_getegid: ::c_long = 177; +pub const SYS_setpgid: ::c_long = 154; +pub const SYS_getppid: ::c_long = 173; +pub const SYS_setsid: ::c_long = 157; +pub const SYS_setreuid: ::c_long = 145; +pub const SYS_setregid: ::c_long = 143; +pub const SYS_getgroups: ::c_long = 158; +pub const SYS_setgroups: ::c_long = 159; +pub const SYS_setresuid: ::c_long = 147; +pub const SYS_getresuid: ::c_long = 148; +pub const SYS_setresgid: ::c_long = 149; +pub const SYS_getresgid: ::c_long = 150; +pub const SYS_getpgid: ::c_long = 155; +pub const SYS_setfsuid: ::c_long = 151; +pub const SYS_setfsgid: ::c_long = 152; +pub const SYS_getsid: ::c_long = 156; +pub const SYS_capget: ::c_long = 90; +pub const SYS_capset: ::c_long = 91; +pub const SYS_rt_sigpending: ::c_long = 136; +pub const SYS_rt_sigtimedwait: ::c_long = 137; +pub const SYS_rt_sigqueueinfo: ::c_long = 138; +pub const SYS_rt_sigsuspend: ::c_long = 133; +pub const SYS_sigaltstack: ::c_long = 132; +pub const SYS_personality: ::c_long = 92; +pub const SYS_statfs: ::c_long = 43; +pub const SYS_fstatfs: ::c_long = 44; +pub const SYS_getpriority: ::c_long = 141; +pub const SYS_setpriority: ::c_long = 140; +pub const SYS_sched_setparam: ::c_long = 118; +pub const SYS_sched_getparam: ::c_long = 121; +pub const SYS_sched_setscheduler: ::c_long = 119; +pub const SYS_sched_getscheduler: ::c_long = 120; +pub const SYS_sched_get_priority_max: ::c_long = 125; +pub const SYS_sched_get_priority_min: ::c_long = 126; +pub const SYS_sched_rr_get_interval: ::c_long = 127; +pub const SYS_mlock: ::c_long = 228; +pub const SYS_munlock: ::c_long = 229; +pub const SYS_mlockall: ::c_long = 230; +pub const SYS_munlockall: ::c_long = 231; +pub const SYS_vhangup: ::c_long = 58; +pub const SYS_pivot_root: ::c_long = 41; +pub const SYS_prctl: ::c_long = 167; +pub const SYS_adjtimex: ::c_long = 171; +pub const SYS_setrlimit: ::c_long = 164; +pub const SYS_chroot: ::c_long = 51; +pub const SYS_sync: ::c_long = 81; +pub const SYS_acct: ::c_long = 89; +pub const SYS_settimeofday: ::c_long = 170; +pub const SYS_mount: ::c_long = 40; +pub const SYS_umount2: ::c_long = 39; +pub const SYS_swapon: ::c_long = 224; +pub const SYS_swapoff: ::c_long = 225; +pub const SYS_reboot: ::c_long = 142; +pub const SYS_sethostname: ::c_long = 161; +pub const SYS_setdomainname: ::c_long = 162; +pub const SYS_init_module: ::c_long = 105; +pub const SYS_delete_module: ::c_long = 106; +pub const SYS_quotactl: ::c_long = 60; +pub const SYS_nfsservctl: ::c_long = 42; +pub const SYS_gettid: ::c_long = 178; +pub const SYS_readahead: ::c_long = 213; +pub const SYS_setxattr: ::c_long = 5; +pub const SYS_lsetxattr: ::c_long = 6; +pub const SYS_fsetxattr: ::c_long = 7; +pub const SYS_getxattr: ::c_long = 8; +pub const SYS_lgetxattr: ::c_long = 9; +pub const SYS_fgetxattr: ::c_long = 10; +pub const SYS_listxattr: ::c_long = 11; +pub const SYS_llistxattr: ::c_long = 12; +pub const SYS_flistxattr: ::c_long = 13; +pub const SYS_removexattr: ::c_long = 14; +pub const SYS_lremovexattr: ::c_long = 15; +pub const SYS_fremovexattr: ::c_long = 16; +pub const SYS_tkill: ::c_long = 130; +pub const SYS_futex: ::c_long = 98; +pub const SYS_sched_setaffinity: ::c_long = 122; +pub const SYS_sched_getaffinity: ::c_long = 123; +pub const SYS_io_setup: ::c_long = 0; +pub const SYS_io_destroy: ::c_long = 1; +pub const SYS_io_getevents: ::c_long = 4; +pub const SYS_io_submit: ::c_long = 2; +pub const SYS_io_cancel: ::c_long = 3; +pub const SYS_lookup_dcookie: ::c_long = 18; +pub const SYS_remap_file_pages: ::c_long = 234; +pub const SYS_getdents64: ::c_long = 61; +pub const SYS_set_tid_address: ::c_long = 96; +pub const SYS_restart_syscall: ::c_long = 128; +pub const SYS_semtimedop: ::c_long = 192; +pub const SYS_fadvise64: ::c_long = 223; +pub const SYS_timer_create: ::c_long = 107; +pub const SYS_timer_settime: ::c_long = 110; +pub const SYS_timer_gettime: ::c_long = 108; +pub const SYS_timer_getoverrun: ::c_long = 109; +pub const SYS_timer_delete: ::c_long = 111; +pub const SYS_clock_settime: ::c_long = 112; +pub const SYS_clock_gettime: ::c_long = 113; +pub const SYS_clock_getres: ::c_long = 114; +pub const SYS_clock_nanosleep: ::c_long = 115; +pub const SYS_exit_group: ::c_long = 94; +pub const SYS_epoll_ctl: ::c_long = 21; +pub const SYS_tgkill: ::c_long = 131; +pub const SYS_mbind: ::c_long = 235; +pub const SYS_set_mempolicy: ::c_long = 237; +pub const SYS_get_mempolicy: ::c_long = 236; +pub const SYS_mq_open: ::c_long = 180; +pub const SYS_mq_unlink: ::c_long = 181; +pub const SYS_mq_timedsend: ::c_long = 182; +pub const SYS_mq_timedreceive: ::c_long = 183; +pub const SYS_mq_notify: ::c_long = 184; +pub const SYS_mq_getsetattr: ::c_long = 185; +pub const SYS_kexec_load: ::c_long = 104; +pub const SYS_waitid: ::c_long = 95; +pub const SYS_add_key: ::c_long = 217; +pub const SYS_request_key: ::c_long = 218; +pub const SYS_keyctl: ::c_long = 219; +pub const SYS_ioprio_set: ::c_long = 30; +pub const SYS_ioprio_get: ::c_long = 31; +pub const SYS_inotify_add_watch: ::c_long = 27; +pub const SYS_inotify_rm_watch: ::c_long = 28; +pub const SYS_migrate_pages: ::c_long = 238; +pub const SYS_openat: ::c_long = 56; +pub const SYS_mkdirat: ::c_long = 34; +pub const SYS_mknodat: ::c_long = 33; +pub const SYS_fchownat: ::c_long = 54; +pub const SYS_newfstatat: ::c_long = 79; +pub const SYS_unlinkat: ::c_long = 35; +pub const SYS_linkat: ::c_long = 37; +pub const SYS_symlinkat: ::c_long = 36; +pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_fchmodat: ::c_long = 53; +pub const SYS_faccessat: ::c_long = 48; +pub const SYS_pselect6: ::c_long = 72; +pub const SYS_ppoll: ::c_long = 73; +pub const SYS_unshare: ::c_long = 97; +pub const SYS_set_robust_list: ::c_long = 99; +pub const SYS_get_robust_list: ::c_long = 100; +pub const SYS_splice: ::c_long = 76; +pub const SYS_tee: ::c_long = 77; +pub const SYS_sync_file_range: ::c_long = 84; +pub const SYS_vmsplice: ::c_long = 75; +pub const SYS_move_pages: ::c_long = 239; +pub const SYS_utimensat: ::c_long = 88; +pub const SYS_epoll_pwait: ::c_long = 22; +pub const SYS_timerfd_create: ::c_long = 85; +pub const SYS_fallocate: ::c_long = 47; +pub const SYS_timerfd_settime: ::c_long = 86; +pub const SYS_timerfd_gettime: ::c_long = 87; +pub const SYS_accept4: ::c_long = 242; +pub const SYS_signalfd4: ::c_long = 74; +pub const SYS_eventfd2: ::c_long = 19; +pub const SYS_epoll_create1: ::c_long = 20; +pub const SYS_dup3: ::c_long = 24; +pub const SYS_pipe2: ::c_long = 59; +pub const SYS_inotify_init1: ::c_long = 26; +pub const SYS_preadv: ::c_long = 69; +pub const SYS_pwritev: ::c_long = 70; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; +pub const SYS_perf_event_open: ::c_long = 241; +pub const SYS_recvmmsg: ::c_long = 243; +pub const SYS_fanotify_init: ::c_long = 262; +pub const SYS_fanotify_mark: ::c_long = 263; +pub const SYS_prlimit64: ::c_long = 261; +pub const SYS_name_to_handle_at: ::c_long = 264; +pub const SYS_open_by_handle_at: ::c_long = 265; +pub const SYS_clock_adjtime: ::c_long = 266; +pub const SYS_syncfs: ::c_long = 267; +pub const SYS_sendmmsg: ::c_long = 269; +pub const SYS_setns: ::c_long = 268; +pub const SYS_getcpu: ::c_long = 168; +pub const SYS_process_vm_readv: ::c_long = 270; +pub const SYS_process_vm_writev: ::c_long = 271; +pub const SYS_kcmp: ::c_long = 272; +pub const SYS_finit_module: ::c_long = 273; +pub const SYS_sched_setattr: ::c_long = 274; +pub const SYS_sched_getattr: ::c_long = 275; +pub const SYS_renameat2: ::c_long = 276; +pub const SYS_seccomp: ::c_long = 277; +pub const SYS_getrandom: ::c_long = 278; +pub const SYS_memfd_create: ::c_long = 279; +pub const SYS_bpf: ::c_long = 280; +pub const SYS_execveat: ::c_long = 281; +pub const SYS_userfaultfd: ::c_long = 282; +pub const SYS_membarrier: ::c_long = 283; +pub const SYS_mlock2: ::c_long = 284; +pub const SYS_copy_file_range: ::c_long = 285; +pub const SYS_preadv2: ::c_long = 286; +pub const SYS_pwritev2: ::c_long = 287; +pub const SYS_pkey_mprotect: ::c_long = 288; +pub const SYS_pkey_alloc: ::c_long = 289; +pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/align.rs new file mode 100644 index 000000000..79544176a --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [f64; 3] + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/mod.rs new file mode 100644 index 000000000..aaca917fa --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -0,0 +1,899 @@ +pub type c_char = i8; +pub type wchar_t = i32; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + __st_dev_padding: ::c_int, + __st_ino_truncated: ::c_long, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __st_rdev_padding: ::c_int, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_ino: ::ino_t, + } + + pub struct stat64 { + pub st_dev: ::dev_t, + __st_dev_padding: ::c_int, + __st_ino_truncated: ::c_long, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __st_rdev_padding: ::c_int, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_ino: ::ino_t, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_int, + __unused1: ::c_long, + __unused2: ::c_long + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + __unused1: ::c_int, + pub shm_dtime: ::time_t, + __unused2: ::c_int, + pub shm_ctime: ::time_t, + __unused3: ::c_int, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::c_ulong, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + __unused1: ::c_int, + pub msg_rtime: ::time_t, + __unused2: ::c_int, + pub msg_ctime: ::time_t, + __unused3: ::c_int, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct mcontext_t { + __private: [u32; 22] + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } +} + +s_no_extra_traits! { + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask: ::sigset_t, + __private: [u8; 112], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for ucontext_t { + fn eq(&self, other: &ucontext_t) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_sigmask == other.uc_sigmask + && self + .__private + .iter() + .zip(other.__private.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for ucontext_t {} + + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_flags) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field("uc_sigmask", &self.uc_sigmask) + // Ignore __private field + .finish() + } + } + + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_flags.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + self.uc_sigmask.hash(state); + self.__private.hash(state); + } + } + } +} + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; + +pub const O_DIRECT: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_LARGEFILE: ::c_int = 0o0100000; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::c_int = 0x00000800; +pub const TAB2: ::c_int = 0x00001000; +pub const TAB3: ::c_int = 0x00001800; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; + +pub const SOCK_NONBLOCK: ::c_int = 2048; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_SEQPACKET: ::c_int = 5; + +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EDEADLOCK: ::c_int = EDEADLK; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ERFKILL: ::c_int = 132; +pub const EHWPOISON: ::c_int = 133; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const EXTPROC: ::tcflag_t = 0x00010000; + +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_32BIT: ::c_int = 0x0040; + +pub const F_GETLK: ::c_int = 12; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 13; +pub const F_SETLKW: ::c_int = 14; +pub const F_SETOWN: ::c_int = 8; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const VEOF: usize = 4; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const PTRACE_SYSEMU: ::c_int = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 32; + +// Syscall table +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_waitpid: ::c_long = 7; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_time: ::c_long = 13; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_break: ::c_long = 17; +pub const SYS_oldstat: ::c_long = 18; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_umount: ::c_long = 22; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_stime: ::c_long = 25; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_alarm: ::c_long = 27; +pub const SYS_oldfstat: ::c_long = 28; +pub const SYS_pause: ::c_long = 29; +pub const SYS_utime: ::c_long = 30; +pub const SYS_stty: ::c_long = 31; +pub const SYS_gtty: ::c_long = 32; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_ftime: ::c_long = 35; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_prof: ::c_long = 44; +pub const SYS_brk: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_signal: ::c_long = 48; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_lock: ::c_long = 53; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_mpx: ::c_long = 56; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_ulimit: ::c_long = 58; +pub const SYS_oldolduname: ::c_long = 59; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_sgetmask: ::c_long = 68; +pub const SYS_ssetmask: ::c_long = 69; +pub const SYS_setreuid: ::c_long = 70; +pub const SYS_setregid: ::c_long = 71; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrlimit: ::c_long = 76; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_getgroups: ::c_long = 80; +pub const SYS_setgroups: ::c_long = 81; +pub const SYS_select: ::c_long = 82; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_oldlstat: ::c_long = 84; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_readdir: ::c_long = 89; +pub const SYS_mmap: ::c_long = 90; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_fchown: ::c_long = 95; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_profil: ::c_long = 98; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_ioperm: ::c_long = 101; +pub const SYS_socketcall: ::c_long = 102; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_olduname: ::c_long = 109; +pub const SYS_iopl: ::c_long = 110; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_idle: ::c_long = 112; +pub const SYS_vm86old: ::c_long = 113; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_ipc: ::c_long = 117; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_modify_ldt: ::c_long = 123; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_create_module: ::c_long = 127; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_get_kernel_syms: ::c_long = 130; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_afs_syscall: ::c_long = 137; +pub const SYS_setfsuid: ::c_long = 138; +pub const SYS_setfsgid: ::c_long = 139; +pub const SYS__llseek: ::c_long = 140; +pub const SYS_getdents: ::c_long = 141; +pub const SYS__newselect: ::c_long = 142; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_setresuid: ::c_long = 164; +pub const SYS_getresuid: ::c_long = 165; +pub const SYS_vm86: ::c_long = 166; +pub const SYS_query_module: ::c_long = 167; +pub const SYS_poll: ::c_long = 168; +pub const SYS_nfsservctl: ::c_long = 169; +pub const SYS_setresgid: ::c_long = 170; +pub const SYS_getresgid: ::c_long = 171; +pub const SYS_prctl: ::c_long = 172; +pub const SYS_rt_sigreturn: ::c_long = 173; +pub const SYS_rt_sigaction: ::c_long = 174; +pub const SYS_rt_sigprocmask: ::c_long = 175; +pub const SYS_rt_sigpending: ::c_long = 176; +pub const SYS_rt_sigtimedwait: ::c_long = 177; +pub const SYS_rt_sigqueueinfo: ::c_long = 178; +pub const SYS_rt_sigsuspend: ::c_long = 179; +pub const SYS_pread64: ::c_long = 180; +pub const SYS_pwrite64: ::c_long = 181; +pub const SYS_chown: ::c_long = 182; +pub const SYS_getcwd: ::c_long = 183; +pub const SYS_capget: ::c_long = 184; +pub const SYS_capset: ::c_long = 185; +pub const SYS_sigaltstack: ::c_long = 186; +pub const SYS_sendfile: ::c_long = 187; +pub const SYS_getpmsg: ::c_long = 188; +pub const SYS_putpmsg: ::c_long = 189; +pub const SYS_vfork: ::c_long = 190; +pub const SYS_ugetrlimit: ::c_long = 191; +pub const SYS_mmap2: ::c_long = 192; +pub const SYS_truncate64: ::c_long = 193; +pub const SYS_ftruncate64: ::c_long = 194; +pub const SYS_stat64: ::c_long = 195; +pub const SYS_lstat64: ::c_long = 196; +pub const SYS_fstat64: ::c_long = 197; +pub const SYS_lchown32: ::c_long = 198; +pub const SYS_getuid32: ::c_long = 199; +pub const SYS_getgid32: ::c_long = 200; +pub const SYS_geteuid32: ::c_long = 201; +pub const SYS_getegid32: ::c_long = 202; +pub const SYS_setreuid32: ::c_long = 203; +pub const SYS_setregid32: ::c_long = 204; +pub const SYS_getgroups32: ::c_long = 205; +pub const SYS_setgroups32: ::c_long = 206; +pub const SYS_fchown32: ::c_long = 207; +pub const SYS_setresuid32: ::c_long = 208; +pub const SYS_getresuid32: ::c_long = 209; +pub const SYS_setresgid32: ::c_long = 210; +pub const SYS_getresgid32: ::c_long = 211; +pub const SYS_chown32: ::c_long = 212; +pub const SYS_setuid32: ::c_long = 213; +pub const SYS_setgid32: ::c_long = 214; +pub const SYS_setfsuid32: ::c_long = 215; +pub const SYS_setfsgid32: ::c_long = 216; +pub const SYS_pivot_root: ::c_long = 217; +pub const SYS_mincore: ::c_long = 218; +pub const SYS_madvise: ::c_long = 219; +pub const SYS_getdents64: ::c_long = 220; +pub const SYS_fcntl64: ::c_long = 221; +pub const SYS_gettid: ::c_long = 224; +pub const SYS_readahead: ::c_long = 225; +pub const SYS_setxattr: ::c_long = 226; +pub const SYS_lsetxattr: ::c_long = 227; +pub const SYS_fsetxattr: ::c_long = 228; +pub const SYS_getxattr: ::c_long = 229; +pub const SYS_lgetxattr: ::c_long = 230; +pub const SYS_fgetxattr: ::c_long = 231; +pub const SYS_listxattr: ::c_long = 232; +pub const SYS_llistxattr: ::c_long = 233; +pub const SYS_flistxattr: ::c_long = 234; +pub const SYS_removexattr: ::c_long = 235; +pub const SYS_lremovexattr: ::c_long = 236; +pub const SYS_fremovexattr: ::c_long = 237; +pub const SYS_tkill: ::c_long = 238; +pub const SYS_sendfile64: ::c_long = 239; +pub const SYS_futex: ::c_long = 240; +pub const SYS_sched_setaffinity: ::c_long = 241; +pub const SYS_sched_getaffinity: ::c_long = 242; +pub const SYS_set_thread_area: ::c_long = 243; +pub const SYS_get_thread_area: ::c_long = 244; +pub const SYS_io_setup: ::c_long = 245; +pub const SYS_io_destroy: ::c_long = 246; +pub const SYS_io_getevents: ::c_long = 247; +pub const SYS_io_submit: ::c_long = 248; +pub const SYS_io_cancel: ::c_long = 249; +pub const SYS_fadvise64: ::c_long = 250; +pub const SYS_exit_group: ::c_long = 252; +pub const SYS_lookup_dcookie: ::c_long = 253; +pub const SYS_epoll_create: ::c_long = 254; +pub const SYS_epoll_ctl: ::c_long = 255; +pub const SYS_epoll_wait: ::c_long = 256; +pub const SYS_remap_file_pages: ::c_long = 257; +pub const SYS_set_tid_address: ::c_long = 258; +pub const SYS_timer_create: ::c_long = 259; +pub const SYS_timer_settime: ::c_long = 260; +pub const SYS_timer_gettime: ::c_long = 261; +pub const SYS_timer_getoverrun: ::c_long = 262; +pub const SYS_timer_delete: ::c_long = 263; +pub const SYS_clock_settime: ::c_long = 264; +pub const SYS_clock_gettime: ::c_long = 265; +pub const SYS_clock_getres: ::c_long = 266; +pub const SYS_clock_nanosleep: ::c_long = 267; +pub const SYS_statfs64: ::c_long = 268; +pub const SYS_fstatfs64: ::c_long = 269; +pub const SYS_tgkill: ::c_long = 270; +pub const SYS_utimes: ::c_long = 271; +pub const SYS_fadvise64_64: ::c_long = 272; +pub const SYS_vserver: ::c_long = 273; +pub const SYS_mbind: ::c_long = 274; +pub const SYS_get_mempolicy: ::c_long = 275; +pub const SYS_set_mempolicy: ::c_long = 276; +pub const SYS_mq_open: ::c_long = 277; +pub const SYS_mq_unlink: ::c_long = 278; +pub const SYS_mq_timedsend: ::c_long = 279; +pub const SYS_mq_timedreceive: ::c_long = 280; +pub const SYS_mq_notify: ::c_long = 281; +pub const SYS_mq_getsetattr: ::c_long = 282; +pub const SYS_kexec_load: ::c_long = 283; +pub const SYS_waitid: ::c_long = 284; +pub const SYS_add_key: ::c_long = 286; +pub const SYS_request_key: ::c_long = 287; +pub const SYS_keyctl: ::c_long = 288; +pub const SYS_ioprio_set: ::c_long = 289; +pub const SYS_ioprio_get: ::c_long = 290; +pub const SYS_inotify_init: ::c_long = 291; +pub const SYS_inotify_add_watch: ::c_long = 292; +pub const SYS_inotify_rm_watch: ::c_long = 293; +pub const SYS_migrate_pages: ::c_long = 294; +pub const SYS_openat: ::c_long = 295; +pub const SYS_mkdirat: ::c_long = 296; +pub const SYS_mknodat: ::c_long = 297; +pub const SYS_fchownat: ::c_long = 298; +pub const SYS_futimesat: ::c_long = 299; +pub const SYS_fstatat64: ::c_long = 300; +pub const SYS_unlinkat: ::c_long = 301; +pub const SYS_renameat: ::c_long = 302; +pub const SYS_linkat: ::c_long = 303; +pub const SYS_symlinkat: ::c_long = 304; +pub const SYS_readlinkat: ::c_long = 305; +pub const SYS_fchmodat: ::c_long = 306; +pub const SYS_faccessat: ::c_long = 307; +pub const SYS_pselect6: ::c_long = 308; +pub const SYS_ppoll: ::c_long = 309; +pub const SYS_unshare: ::c_long = 310; +pub const SYS_set_robust_list: ::c_long = 311; +pub const SYS_get_robust_list: ::c_long = 312; +pub const SYS_splice: ::c_long = 313; +pub const SYS_sync_file_range: ::c_long = 314; +pub const SYS_tee: ::c_long = 315; +pub const SYS_vmsplice: ::c_long = 316; +pub const SYS_move_pages: ::c_long = 317; +pub const SYS_getcpu: ::c_long = 318; +pub const SYS_epoll_pwait: ::c_long = 319; +pub const SYS_utimensat: ::c_long = 320; +pub const SYS_signalfd: ::c_long = 321; +pub const SYS_timerfd_create: ::c_long = 322; +pub const SYS_eventfd: ::c_long = 323; +pub const SYS_fallocate: ::c_long = 324; +pub const SYS_timerfd_settime: ::c_long = 325; +pub const SYS_timerfd_gettime: ::c_long = 326; +pub const SYS_signalfd4: ::c_long = 327; +pub const SYS_eventfd2: ::c_long = 328; +pub const SYS_epoll_create1: ::c_long = 329; +pub const SYS_dup3: ::c_long = 330; +pub const SYS_pipe2: ::c_long = 331; +pub const SYS_inotify_init1: ::c_long = 332; +pub const SYS_preadv: ::c_long = 333; +pub const SYS_pwritev: ::c_long = 334; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 335; +pub const SYS_perf_event_open: ::c_long = 336; +pub const SYS_recvmmsg: ::c_long = 337; +pub const SYS_fanotify_init: ::c_long = 338; +pub const SYS_fanotify_mark: ::c_long = 339; +pub const SYS_prlimit64: ::c_long = 340; +pub const SYS_name_to_handle_at: ::c_long = 341; +pub const SYS_open_by_handle_at: ::c_long = 342; +pub const SYS_clock_adjtime: ::c_long = 343; +pub const SYS_syncfs: ::c_long = 344; +pub const SYS_sendmmsg: ::c_long = 345; +pub const SYS_setns: ::c_long = 346; +pub const SYS_process_vm_readv: ::c_long = 347; +pub const SYS_process_vm_writev: ::c_long = 348; +pub const SYS_kcmp: ::c_long = 349; +pub const SYS_finit_module: ::c_long = 350; +pub const SYS_sched_setattr: ::c_long = 351; +pub const SYS_sched_getattr: ::c_long = 352; +pub const SYS_renameat2: ::c_long = 353; +pub const SYS_seccomp: ::c_long = 354; +pub const SYS_getrandom: ::c_long = 355; +pub const SYS_memfd_create: ::c_long = 356; +pub const SYS_bpf: ::c_long = 357; +pub const SYS_execveat: ::c_long = 358; +pub const SYS_socket: ::c_long = 359; +pub const SYS_socketpair: ::c_long = 360; +pub const SYS_bind: ::c_long = 361; +pub const SYS_connect: ::c_long = 362; +pub const SYS_listen: ::c_long = 363; +pub const SYS_accept4: ::c_long = 364; +pub const SYS_getsockopt: ::c_long = 365; +pub const SYS_setsockopt: ::c_long = 366; +pub const SYS_getsockname: ::c_long = 367; +pub const SYS_getpeername: ::c_long = 368; +pub const SYS_sendto: ::c_long = 369; +pub const SYS_sendmsg: ::c_long = 370; +pub const SYS_recvfrom: ::c_long = 371; +pub const SYS_recvmsg: ::c_long = 372; +pub const SYS_shutdown: ::c_long = 373; +pub const SYS_userfaultfd: ::c_long = 374; +pub const SYS_membarrier: ::c_long = 375; +pub const SYS_mlock2: ::c_long = 376; +pub const SYS_copy_file_range: ::c_long = 377; +pub const SYS_preadv2: ::c_long = 378; +pub const SYS_pwritev2: ::c_long = 379; +pub const SYS_pkey_mprotect: ::c_long = 380; +pub const SYS_pkey_alloc: ::c_long = 381; +pub const SYS_pkey_free: ::c_long = 382; +pub const SYS_statx: ::c_long = 383; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +// offsets in user_regs_structs, from sys/reg.h +pub const EBX: ::c_int = 0; +pub const ECX: ::c_int = 1; +pub const EDX: ::c_int = 2; +pub const ESI: ::c_int = 3; +pub const EDI: ::c_int = 4; +pub const EBP: ::c_int = 5; +pub const EAX: ::c_int = 6; +pub const DS: ::c_int = 7; +pub const ES: ::c_int = 8; +pub const FS: ::c_int = 9; +pub const GS: ::c_int = 10; +pub const ORIG_EAX: ::c_int = 11; +pub const EIP: ::c_int = 12; +pub const CS: ::c_int = 13; +pub const EFL: ::c_int = 14; +pub const UESP: ::c_int = 15; +pub const SS: ::c_int = 16; + +extern "C" { + pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/align.rs new file mode 100644 index 000000000..a4bf9bff4 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/align.rs @@ -0,0 +1,42 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f32; 8] + } +} + +s! { + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[repr(align(16))] + pub struct mcontext_t { + pub fault_address: ::c_ulong, + pub regs: [::c_ulong; 31], + pub sp: ::c_ulong, + pub pc: ::c_ulong, + pub pstate: ::c_ulong, + __reserved: [[u64; 32]; 16], + } + + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs new file mode 100644 index 000000000..4535e73ee --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs @@ -0,0 +1,7 @@ +s! { + pub struct user_fpsimd_struct { + pub vregs: [::__uint128_t; 32], + pub fpsr: u32, + pub fpcr: u32, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs new file mode 100644 index 000000000..14b4bc6d6 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -0,0 +1,660 @@ +pub type c_char = u8; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; +pub type wchar_t = u32; +pub type nlink_t = u32; +pub type blksize_t = ::c_int; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad0: ::c_ulong, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + __pad1: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_uint; 2], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad0: ::c_ulong, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + __pad1: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_uint; 2], + } + + pub struct user_regs_struct { + pub regs: [::c_ulonglong; 31], + pub sp: ::c_ulonglong, + pub pc: ::c_ulonglong, + pub pstate: ::c_ulonglong, + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong, + } +} + +pub const O_APPEND: ::c_int = 1024; +pub const O_DIRECT: ::c_int = 0x10000; +pub const O_DIRECTORY: ::c_int = 0x4000; +pub const O_LARGEFILE: ::c_int = 0x20000; +pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_ASYNC: ::c_int = 0x2000; + +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ERFKILL: ::c_int = 132; +pub const EHWPOISON: ::c_int = 133; + +// bits/hwcap.h +pub const HWCAP_FP: ::c_ulong = 1 << 0; +pub const HWCAP_ASIMD: ::c_ulong = 1 << 1; +pub const HWCAP_EVTSTRM: ::c_ulong = 1 << 2; +pub const HWCAP_AES: ::c_ulong = 1 << 3; +pub const HWCAP_PMULL: ::c_ulong = 1 << 4; +pub const HWCAP_SHA1: ::c_ulong = 1 << 5; +pub const HWCAP_SHA2: ::c_ulong = 1 << 6; +pub const HWCAP_CRC32: ::c_ulong = 1 << 7; +pub const HWCAP_ATOMICS: ::c_ulong = 1 << 8; +pub const HWCAP_FPHP: ::c_ulong = 1 << 9; +pub const HWCAP_ASIMDHP: ::c_ulong = 1 << 10; +pub const HWCAP_CPUID: ::c_ulong = 1 << 11; +pub const HWCAP_ASIMDRDM: ::c_ulong = 1 << 12; +pub const HWCAP_JSCVT: ::c_ulong = 1 << 13; +pub const HWCAP_FCMA: ::c_ulong = 1 << 14; +pub const HWCAP_LRCPC: ::c_ulong = 1 << 15; +pub const HWCAP_DCPOP: ::c_ulong = 1 << 16; +pub const HWCAP_SHA3: ::c_ulong = 1 << 17; +pub const HWCAP_SM3: ::c_ulong = 1 << 18; +pub const HWCAP_SM4: ::c_ulong = 1 << 19; +pub const HWCAP_ASIMDDP: ::c_ulong = 1 << 20; +pub const HWCAP_SHA512: ::c_ulong = 1 << 21; +pub const HWCAP_SVE: ::c_ulong = 1 << 22; +pub const HWCAP_ASIMDFHM: ::c_ulong = 1 << 23; +pub const HWCAP_DIT: ::c_ulong = 1 << 24; +pub const HWCAP_USCAT: ::c_ulong = 1 << 25; +pub const HWCAP_ILRCPC: ::c_ulong = 1 << 26; +pub const HWCAP_FLAGM: ::c_ulong = 1 << 27; +pub const HWCAP_SSBS: ::c_ulong = 1 << 28; +pub const HWCAP_SB: ::c_ulong = 1 << 29; +pub const HWCAP_PACA: ::c_ulong = 1 << 30; +pub const HWCAP_PACG: ::c_ulong = 1 << 31; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const VEOF: usize = 4; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const MINSIGSTKSZ: ::size_t = 6144; +pub const SIGSTKSZ: ::size_t = 12288; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const SYS_io_setup: ::c_long = 0; +pub const SYS_io_destroy: ::c_long = 1; +pub const SYS_io_submit: ::c_long = 2; +pub const SYS_io_cancel: ::c_long = 3; +pub const SYS_io_getevents: ::c_long = 4; +pub const SYS_setxattr: ::c_long = 5; +pub const SYS_lsetxattr: ::c_long = 6; +pub const SYS_fsetxattr: ::c_long = 7; +pub const SYS_getxattr: ::c_long = 8; +pub const SYS_lgetxattr: ::c_long = 9; +pub const SYS_fgetxattr: ::c_long = 10; +pub const SYS_listxattr: ::c_long = 11; +pub const SYS_llistxattr: ::c_long = 12; +pub const SYS_flistxattr: ::c_long = 13; +pub const SYS_removexattr: ::c_long = 14; +pub const SYS_lremovexattr: ::c_long = 15; +pub const SYS_fremovexattr: ::c_long = 16; +pub const SYS_getcwd: ::c_long = 17; +pub const SYS_lookup_dcookie: ::c_long = 18; +pub const SYS_eventfd2: ::c_long = 19; +pub const SYS_epoll_create1: ::c_long = 20; +pub const SYS_epoll_ctl: ::c_long = 21; +pub const SYS_epoll_pwait: ::c_long = 22; +pub const SYS_dup: ::c_long = 23; +pub const SYS_dup3: ::c_long = 24; +pub const SYS_fcntl: ::c_long = 25; +pub const SYS_inotify_init1: ::c_long = 26; +pub const SYS_inotify_add_watch: ::c_long = 27; +pub const SYS_inotify_rm_watch: ::c_long = 28; +pub const SYS_ioctl: ::c_long = 29; +pub const SYS_ioprio_set: ::c_long = 30; +pub const SYS_ioprio_get: ::c_long = 31; +pub const SYS_flock: ::c_long = 32; +pub const SYS_mknodat: ::c_long = 33; +pub const SYS_mkdirat: ::c_long = 34; +pub const SYS_unlinkat: ::c_long = 35; +pub const SYS_symlinkat: ::c_long = 36; +pub const SYS_linkat: ::c_long = 37; +pub const SYS_renameat: ::c_long = 38; +pub const SYS_umount2: ::c_long = 39; +pub const SYS_mount: ::c_long = 40; +pub const SYS_pivot_root: ::c_long = 41; +pub const SYS_nfsservctl: ::c_long = 42; +pub const SYS_statfs: ::c_long = 43; +pub const SYS_fstatfs: ::c_long = 44; +pub const SYS_truncate: ::c_long = 45; +pub const SYS_ftruncate: ::c_long = 46; +pub const SYS_fallocate: ::c_long = 47; +pub const SYS_faccessat: ::c_long = 48; +pub const SYS_chdir: ::c_long = 49; +pub const SYS_fchdir: ::c_long = 50; +pub const SYS_chroot: ::c_long = 51; +pub const SYS_fchmod: ::c_long = 52; +pub const SYS_fchmodat: ::c_long = 53; +pub const SYS_fchownat: ::c_long = 54; +pub const SYS_fchown: ::c_long = 55; +pub const SYS_openat: ::c_long = 56; +pub const SYS_close: ::c_long = 57; +pub const SYS_vhangup: ::c_long = 58; +pub const SYS_pipe2: ::c_long = 59; +pub const SYS_quotactl: ::c_long = 60; +pub const SYS_getdents64: ::c_long = 61; +pub const SYS_lseek: ::c_long = 62; +pub const SYS_read: ::c_long = 63; +pub const SYS_write: ::c_long = 64; +pub const SYS_readv: ::c_long = 65; +pub const SYS_writev: ::c_long = 66; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_preadv: ::c_long = 69; +pub const SYS_pwritev: ::c_long = 70; +pub const SYS_pselect6: ::c_long = 72; +pub const SYS_ppoll: ::c_long = 73; +pub const SYS_signalfd4: ::c_long = 74; +pub const SYS_vmsplice: ::c_long = 75; +pub const SYS_splice: ::c_long = 76; +pub const SYS_tee: ::c_long = 77; +pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_newfstatat: ::c_long = 79; +pub const SYS_fstat: ::c_long = 80; +pub const SYS_sync: ::c_long = 81; +pub const SYS_fsync: ::c_long = 82; +pub const SYS_fdatasync: ::c_long = 83; +pub const SYS_sync_file_range: ::c_long = 84; +pub const SYS_timerfd_create: ::c_long = 85; +pub const SYS_timerfd_settime: ::c_long = 86; +pub const SYS_timerfd_gettime: ::c_long = 87; +pub const SYS_utimensat: ::c_long = 88; +pub const SYS_acct: ::c_long = 89; +pub const SYS_capget: ::c_long = 90; +pub const SYS_capset: ::c_long = 91; +pub const SYS_personality: ::c_long = 92; +pub const SYS_exit: ::c_long = 93; +pub const SYS_exit_group: ::c_long = 94; +pub const SYS_waitid: ::c_long = 95; +pub const SYS_set_tid_address: ::c_long = 96; +pub const SYS_unshare: ::c_long = 97; +pub const SYS_futex: ::c_long = 98; +pub const SYS_set_robust_list: ::c_long = 99; +pub const SYS_get_robust_list: ::c_long = 100; +pub const SYS_nanosleep: ::c_long = 101; +pub const SYS_getitimer: ::c_long = 102; +pub const SYS_setitimer: ::c_long = 103; +pub const SYS_kexec_load: ::c_long = 104; +pub const SYS_init_module: ::c_long = 105; +pub const SYS_delete_module: ::c_long = 106; +pub const SYS_timer_create: ::c_long = 107; +pub const SYS_timer_gettime: ::c_long = 108; +pub const SYS_timer_getoverrun: ::c_long = 109; +pub const SYS_timer_settime: ::c_long = 110; +pub const SYS_timer_delete: ::c_long = 111; +pub const SYS_clock_settime: ::c_long = 112; +pub const SYS_clock_gettime: ::c_long = 113; +pub const SYS_clock_getres: ::c_long = 114; +pub const SYS_clock_nanosleep: ::c_long = 115; +pub const SYS_syslog: ::c_long = 116; +pub const SYS_ptrace: ::c_long = 117; +pub const SYS_sched_setparam: ::c_long = 118; +pub const SYS_sched_setscheduler: ::c_long = 119; +pub const SYS_sched_getscheduler: ::c_long = 120; +pub const SYS_sched_getparam: ::c_long = 121; +pub const SYS_sched_setaffinity: ::c_long = 122; +pub const SYS_sched_getaffinity: ::c_long = 123; +pub const SYS_sched_yield: ::c_long = 124; +pub const SYS_sched_get_priority_max: ::c_long = 125; +pub const SYS_sched_get_priority_min: ::c_long = 126; +pub const SYS_sched_rr_get_interval: ::c_long = 127; +pub const SYS_restart_syscall: ::c_long = 128; +pub const SYS_kill: ::c_long = 129; +pub const SYS_tkill: ::c_long = 130; +pub const SYS_tgkill: ::c_long = 131; +pub const SYS_sigaltstack: ::c_long = 132; +pub const SYS_rt_sigsuspend: ::c_long = 133; +pub const SYS_rt_sigaction: ::c_long = 134; +pub const SYS_rt_sigprocmask: ::c_long = 135; +pub const SYS_rt_sigpending: ::c_long = 136; +pub const SYS_rt_sigtimedwait: ::c_long = 137; +pub const SYS_rt_sigqueueinfo: ::c_long = 138; +pub const SYS_rt_sigreturn: ::c_long = 139; +pub const SYS_setpriority: ::c_long = 140; +pub const SYS_getpriority: ::c_long = 141; +pub const SYS_reboot: ::c_long = 142; +pub const SYS_setregid: ::c_long = 143; +pub const SYS_setgid: ::c_long = 144; +pub const SYS_setreuid: ::c_long = 145; +pub const SYS_setuid: ::c_long = 146; +pub const SYS_setresuid: ::c_long = 147; +pub const SYS_getresuid: ::c_long = 148; +pub const SYS_setresgid: ::c_long = 149; +pub const SYS_getresgid: ::c_long = 150; +pub const SYS_setfsuid: ::c_long = 151; +pub const SYS_setfsgid: ::c_long = 152; +pub const SYS_times: ::c_long = 153; +pub const SYS_setpgid: ::c_long = 154; +pub const SYS_getpgid: ::c_long = 155; +pub const SYS_getsid: ::c_long = 156; +pub const SYS_setsid: ::c_long = 157; +pub const SYS_getgroups: ::c_long = 158; +pub const SYS_setgroups: ::c_long = 159; +pub const SYS_uname: ::c_long = 160; +pub const SYS_sethostname: ::c_long = 161; +pub const SYS_setdomainname: ::c_long = 162; +pub const SYS_getrlimit: ::c_long = 163; +pub const SYS_setrlimit: ::c_long = 164; +pub const SYS_getrusage: ::c_long = 165; +pub const SYS_umask: ::c_long = 166; +pub const SYS_prctl: ::c_long = 167; +pub const SYS_getcpu: ::c_long = 168; +pub const SYS_gettimeofday: ::c_long = 169; +pub const SYS_settimeofday: ::c_long = 170; +pub const SYS_adjtimex: ::c_long = 171; +pub const SYS_getpid: ::c_long = 172; +pub const SYS_getppid: ::c_long = 173; +pub const SYS_getuid: ::c_long = 174; +pub const SYS_geteuid: ::c_long = 175; +pub const SYS_getgid: ::c_long = 176; +pub const SYS_getegid: ::c_long = 177; +pub const SYS_gettid: ::c_long = 178; +pub const SYS_sysinfo: ::c_long = 179; +pub const SYS_mq_open: ::c_long = 180; +pub const SYS_mq_unlink: ::c_long = 181; +pub const SYS_mq_timedsend: ::c_long = 182; +pub const SYS_mq_timedreceive: ::c_long = 183; +pub const SYS_mq_notify: ::c_long = 184; +pub const SYS_mq_getsetattr: ::c_long = 185; +pub const SYS_msgget: ::c_long = 186; +pub const SYS_msgctl: ::c_long = 187; +pub const SYS_msgrcv: ::c_long = 188; +pub const SYS_msgsnd: ::c_long = 189; +pub const SYS_semget: ::c_long = 190; +pub const SYS_semctl: ::c_long = 191; +pub const SYS_semtimedop: ::c_long = 192; +pub const SYS_semop: ::c_long = 193; +pub const SYS_shmget: ::c_long = 194; +pub const SYS_shmctl: ::c_long = 195; +pub const SYS_shmat: ::c_long = 196; +pub const SYS_shmdt: ::c_long = 197; +pub const SYS_socket: ::c_long = 198; +pub const SYS_socketpair: ::c_long = 199; +pub const SYS_bind: ::c_long = 200; +pub const SYS_listen: ::c_long = 201; +pub const SYS_accept: ::c_long = 202; +pub const SYS_connect: ::c_long = 203; +pub const SYS_getsockname: ::c_long = 204; +pub const SYS_getpeername: ::c_long = 205; +pub const SYS_sendto: ::c_long = 206; +pub const SYS_recvfrom: ::c_long = 207; +pub const SYS_setsockopt: ::c_long = 208; +pub const SYS_getsockopt: ::c_long = 209; +pub const SYS_shutdown: ::c_long = 210; +pub const SYS_sendmsg: ::c_long = 211; +pub const SYS_recvmsg: ::c_long = 212; +pub const SYS_readahead: ::c_long = 213; +pub const SYS_brk: ::c_long = 214; +pub const SYS_munmap: ::c_long = 215; +pub const SYS_mremap: ::c_long = 216; +pub const SYS_add_key: ::c_long = 217; +pub const SYS_request_key: ::c_long = 218; +pub const SYS_keyctl: ::c_long = 219; +pub const SYS_clone: ::c_long = 220; +pub const SYS_execve: ::c_long = 221; +pub const SYS_mmap: ::c_long = 222; +pub const SYS_swapon: ::c_long = 224; +pub const SYS_swapoff: ::c_long = 225; +pub const SYS_mprotect: ::c_long = 226; +pub const SYS_msync: ::c_long = 227; +pub const SYS_mlock: ::c_long = 228; +pub const SYS_munlock: ::c_long = 229; +pub const SYS_mlockall: ::c_long = 230; +pub const SYS_munlockall: ::c_long = 231; +pub const SYS_mincore: ::c_long = 232; +pub const SYS_madvise: ::c_long = 233; +pub const SYS_remap_file_pages: ::c_long = 234; +pub const SYS_mbind: ::c_long = 235; +pub const SYS_get_mempolicy: ::c_long = 236; +pub const SYS_set_mempolicy: ::c_long = 237; +pub const SYS_migrate_pages: ::c_long = 238; +pub const SYS_move_pages: ::c_long = 239; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; +pub const SYS_perf_event_open: ::c_long = 241; +pub const SYS_accept4: ::c_long = 242; +pub const SYS_recvmmsg: ::c_long = 243; +pub const SYS_wait4: ::c_long = 260; +pub const SYS_prlimit64: ::c_long = 261; +pub const SYS_fanotify_init: ::c_long = 262; +pub const SYS_fanotify_mark: ::c_long = 263; +pub const SYS_name_to_handle_at: ::c_long = 264; +pub const SYS_open_by_handle_at: ::c_long = 265; +pub const SYS_clock_adjtime: ::c_long = 266; +pub const SYS_syncfs: ::c_long = 267; +pub const SYS_setns: ::c_long = 268; +pub const SYS_sendmmsg: ::c_long = 269; +pub const SYS_process_vm_readv: ::c_long = 270; +pub const SYS_process_vm_writev: ::c_long = 271; +pub const SYS_kcmp: ::c_long = 272; +pub const SYS_finit_module: ::c_long = 273; +pub const SYS_sched_setattr: ::c_long = 274; +pub const SYS_sched_getattr: ::c_long = 275; +pub const SYS_renameat2: ::c_long = 276; +pub const SYS_seccomp: ::c_long = 277; +pub const SYS_getrandom: ::c_long = 278; +pub const SYS_memfd_create: ::c_long = 279; +pub const SYS_bpf: ::c_long = 280; +pub const SYS_execveat: ::c_long = 281; +pub const SYS_userfaultfd: ::c_long = 282; +pub const SYS_membarrier: ::c_long = 283; +pub const SYS_mlock2: ::c_long = 284; +pub const SYS_copy_file_range: ::c_long = 285; +pub const SYS_preadv2: ::c_long = 286; +pub const SYS_pwritev2: ::c_long = 287; +pub const SYS_pkey_mprotect: ::c_long = 288; +pub const SYS_pkey_alloc: ::c_long = 289; +pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::c_int = 0x00000800; +pub const TAB2: ::c_int = 0x00001000; +pub const TAB3: ::c_int = 0x00001800; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const EDEADLK: ::c_int = 35; +pub const EDEADLOCK: ::c_int = EDEADLK; + +pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} + +cfg_if! { + if #[cfg(libc_int128)] { + mod int128; + pub use self::int128::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mips64.rs new file mode 100644 index 000000000..22ac91690 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -0,0 +1,690 @@ +pub type c_char = i8; +pub type wchar_t = i32; +pub type __u64 = ::c_ulong; +pub type __s64 = ::c_long; +pub type nlink_t = u64; +pub type blksize_t = i64; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + __pad1: [::c_int; 3], + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: [::c_uint; 2], + pub st_size: ::off_t, + __pad3: ::c_int, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + __pad4: ::c_uint, + pub st_blocks: ::blkcnt_t, + __pad5: [::c_int; 14], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + __pad1: [::c_int; 3], + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: [::c_uint; 2], + pub st_size: ::off_t, + __pad3: ::c_int, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + __pad4: ::c_uint, + pub st_blocks: ::blkcnt_t, + __pad5: [::c_int; 14], + } + + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 5], + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 5], + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_int, + __pad1: ::c_int, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } +} + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; + +pub const SYS_read: ::c_long = 5000 + 0; +pub const SYS_write: ::c_long = 5000 + 1; +pub const SYS_open: ::c_long = 5000 + 2; +pub const SYS_close: ::c_long = 5000 + 3; +pub const SYS_stat: ::c_long = 5000 + 4; +pub const SYS_fstat: ::c_long = 5000 + 5; +pub const SYS_lstat: ::c_long = 5000 + 6; +pub const SYS_poll: ::c_long = 5000 + 7; +pub const SYS_lseek: ::c_long = 5000 + 8; +pub const SYS_mmap: ::c_long = 5000 + 9; +pub const SYS_mprotect: ::c_long = 5000 + 10; +pub const SYS_munmap: ::c_long = 5000 + 11; +pub const SYS_brk: ::c_long = 5000 + 12; +pub const SYS_rt_sigaction: ::c_long = 5000 + 13; +pub const SYS_rt_sigprocmask: ::c_long = 5000 + 14; +pub const SYS_ioctl: ::c_long = 5000 + 15; +pub const SYS_pread64: ::c_long = 5000 + 16; +pub const SYS_pwrite64: ::c_long = 5000 + 17; +pub const SYS_readv: ::c_long = 5000 + 18; +pub const SYS_writev: ::c_long = 5000 + 19; +pub const SYS_access: ::c_long = 5000 + 20; +pub const SYS_pipe: ::c_long = 5000 + 21; +pub const SYS__newselect: ::c_long = 5000 + 22; +pub const SYS_sched_yield: ::c_long = 5000 + 23; +pub const SYS_mremap: ::c_long = 5000 + 24; +pub const SYS_msync: ::c_long = 5000 + 25; +pub const SYS_mincore: ::c_long = 5000 + 26; +pub const SYS_madvise: ::c_long = 5000 + 27; +pub const SYS_shmget: ::c_long = 5000 + 28; +pub const SYS_shmat: ::c_long = 5000 + 29; +pub const SYS_shmctl: ::c_long = 5000 + 30; +pub const SYS_dup: ::c_long = 5000 + 31; +pub const SYS_dup2: ::c_long = 5000 + 32; +pub const SYS_pause: ::c_long = 5000 + 33; +pub const SYS_nanosleep: ::c_long = 5000 + 34; +pub const SYS_getitimer: ::c_long = 5000 + 35; +pub const SYS_setitimer: ::c_long = 5000 + 36; +pub const SYS_alarm: ::c_long = 5000 + 37; +pub const SYS_getpid: ::c_long = 5000 + 38; +pub const SYS_sendfile: ::c_long = 5000 + 39; +pub const SYS_socket: ::c_long = 5000 + 40; +pub const SYS_connect: ::c_long = 5000 + 41; +pub const SYS_accept: ::c_long = 5000 + 42; +pub const SYS_sendto: ::c_long = 5000 + 43; +pub const SYS_recvfrom: ::c_long = 5000 + 44; +pub const SYS_sendmsg: ::c_long = 5000 + 45; +pub const SYS_recvmsg: ::c_long = 5000 + 46; +pub const SYS_shutdown: ::c_long = 5000 + 47; +pub const SYS_bind: ::c_long = 5000 + 48; +pub const SYS_listen: ::c_long = 5000 + 49; +pub const SYS_getsockname: ::c_long = 5000 + 50; +pub const SYS_getpeername: ::c_long = 5000 + 51; +pub const SYS_socketpair: ::c_long = 5000 + 52; +pub const SYS_setsockopt: ::c_long = 5000 + 53; +pub const SYS_getsockopt: ::c_long = 5000 + 54; +pub const SYS_clone: ::c_long = 5000 + 55; +pub const SYS_fork: ::c_long = 5000 + 56; +pub const SYS_execve: ::c_long = 5000 + 57; +pub const SYS_exit: ::c_long = 5000 + 58; +pub const SYS_wait4: ::c_long = 5000 + 59; +pub const SYS_kill: ::c_long = 5000 + 60; +pub const SYS_uname: ::c_long = 5000 + 61; +pub const SYS_semget: ::c_long = 5000 + 62; +pub const SYS_semop: ::c_long = 5000 + 63; +pub const SYS_semctl: ::c_long = 5000 + 64; +pub const SYS_shmdt: ::c_long = 5000 + 65; +pub const SYS_msgget: ::c_long = 5000 + 66; +pub const SYS_msgsnd: ::c_long = 5000 + 67; +pub const SYS_msgrcv: ::c_long = 5000 + 68; +pub const SYS_msgctl: ::c_long = 5000 + 69; +pub const SYS_fcntl: ::c_long = 5000 + 70; +pub const SYS_flock: ::c_long = 5000 + 71; +pub const SYS_fsync: ::c_long = 5000 + 72; +pub const SYS_fdatasync: ::c_long = 5000 + 73; +pub const SYS_truncate: ::c_long = 5000 + 74; +pub const SYS_ftruncate: ::c_long = 5000 + 75; +pub const SYS_getdents: ::c_long = 5000 + 76; +pub const SYS_getcwd: ::c_long = 5000 + 77; +pub const SYS_chdir: ::c_long = 5000 + 78; +pub const SYS_fchdir: ::c_long = 5000 + 79; +pub const SYS_rename: ::c_long = 5000 + 80; +pub const SYS_mkdir: ::c_long = 5000 + 81; +pub const SYS_rmdir: ::c_long = 5000 + 82; +pub const SYS_creat: ::c_long = 5000 + 83; +pub const SYS_link: ::c_long = 5000 + 84; +pub const SYS_unlink: ::c_long = 5000 + 85; +pub const SYS_symlink: ::c_long = 5000 + 86; +pub const SYS_readlink: ::c_long = 5000 + 87; +pub const SYS_chmod: ::c_long = 5000 + 88; +pub const SYS_fchmod: ::c_long = 5000 + 89; +pub const SYS_chown: ::c_long = 5000 + 90; +pub const SYS_fchown: ::c_long = 5000 + 91; +pub const SYS_lchown: ::c_long = 5000 + 92; +pub const SYS_umask: ::c_long = 5000 + 93; +pub const SYS_gettimeofday: ::c_long = 5000 + 94; +pub const SYS_getrlimit: ::c_long = 5000 + 95; +pub const SYS_getrusage: ::c_long = 5000 + 96; +pub const SYS_sysinfo: ::c_long = 5000 + 97; +pub const SYS_times: ::c_long = 5000 + 98; +pub const SYS_ptrace: ::c_long = 5000 + 99; +pub const SYS_getuid: ::c_long = 5000 + 100; +pub const SYS_syslog: ::c_long = 5000 + 101; +pub const SYS_getgid: ::c_long = 5000 + 102; +pub const SYS_setuid: ::c_long = 5000 + 103; +pub const SYS_setgid: ::c_long = 5000 + 104; +pub const SYS_geteuid: ::c_long = 5000 + 105; +pub const SYS_getegid: ::c_long = 5000 + 106; +pub const SYS_setpgid: ::c_long = 5000 + 107; +pub const SYS_getppid: ::c_long = 5000 + 108; +pub const SYS_getpgrp: ::c_long = 5000 + 109; +pub const SYS_setsid: ::c_long = 5000 + 110; +pub const SYS_setreuid: ::c_long = 5000 + 111; +pub const SYS_setregid: ::c_long = 5000 + 112; +pub const SYS_getgroups: ::c_long = 5000 + 113; +pub const SYS_setgroups: ::c_long = 5000 + 114; +pub const SYS_setresuid: ::c_long = 5000 + 115; +pub const SYS_getresuid: ::c_long = 5000 + 116; +pub const SYS_setresgid: ::c_long = 5000 + 117; +pub const SYS_getresgid: ::c_long = 5000 + 118; +pub const SYS_getpgid: ::c_long = 5000 + 119; +pub const SYS_setfsuid: ::c_long = 5000 + 120; +pub const SYS_setfsgid: ::c_long = 5000 + 121; +pub const SYS_getsid: ::c_long = 5000 + 122; +pub const SYS_capget: ::c_long = 5000 + 123; +pub const SYS_capset: ::c_long = 5000 + 124; +pub const SYS_rt_sigpending: ::c_long = 5000 + 125; +pub const SYS_rt_sigtimedwait: ::c_long = 5000 + 126; +pub const SYS_rt_sigqueueinfo: ::c_long = 5000 + 127; +pub const SYS_rt_sigsuspend: ::c_long = 5000 + 128; +pub const SYS_sigaltstack: ::c_long = 5000 + 129; +pub const SYS_utime: ::c_long = 5000 + 130; +pub const SYS_mknod: ::c_long = 5000 + 131; +pub const SYS_personality: ::c_long = 5000 + 132; +pub const SYS_ustat: ::c_long = 5000 + 133; +pub const SYS_statfs: ::c_long = 5000 + 134; +pub const SYS_fstatfs: ::c_long = 5000 + 135; +pub const SYS_sysfs: ::c_long = 5000 + 136; +pub const SYS_getpriority: ::c_long = 5000 + 137; +pub const SYS_setpriority: ::c_long = 5000 + 138; +pub const SYS_sched_setparam: ::c_long = 5000 + 139; +pub const SYS_sched_getparam: ::c_long = 5000 + 140; +pub const SYS_sched_setscheduler: ::c_long = 5000 + 141; +pub const SYS_sched_getscheduler: ::c_long = 5000 + 142; +pub const SYS_sched_get_priority_max: ::c_long = 5000 + 143; +pub const SYS_sched_get_priority_min: ::c_long = 5000 + 144; +pub const SYS_sched_rr_get_interval: ::c_long = 5000 + 145; +pub const SYS_mlock: ::c_long = 5000 + 146; +pub const SYS_munlock: ::c_long = 5000 + 147; +pub const SYS_mlockall: ::c_long = 5000 + 148; +pub const SYS_munlockall: ::c_long = 5000 + 149; +pub const SYS_vhangup: ::c_long = 5000 + 150; +pub const SYS_pivot_root: ::c_long = 5000 + 151; +pub const SYS__sysctl: ::c_long = 5000 + 152; +pub const SYS_prctl: ::c_long = 5000 + 153; +pub const SYS_adjtimex: ::c_long = 5000 + 154; +pub const SYS_setrlimit: ::c_long = 5000 + 155; +pub const SYS_chroot: ::c_long = 5000 + 156; +pub const SYS_sync: ::c_long = 5000 + 157; +pub const SYS_acct: ::c_long = 5000 + 158; +pub const SYS_settimeofday: ::c_long = 5000 + 159; +pub const SYS_mount: ::c_long = 5000 + 160; +pub const SYS_umount2: ::c_long = 5000 + 161; +pub const SYS_swapon: ::c_long = 5000 + 162; +pub const SYS_swapoff: ::c_long = 5000 + 163; +pub const SYS_reboot: ::c_long = 5000 + 164; +pub const SYS_sethostname: ::c_long = 5000 + 165; +pub const SYS_setdomainname: ::c_long = 5000 + 166; +pub const SYS_create_module: ::c_long = 5000 + 167; +pub const SYS_init_module: ::c_long = 5000 + 168; +pub const SYS_delete_module: ::c_long = 5000 + 169; +pub const SYS_get_kernel_syms: ::c_long = 5000 + 170; +pub const SYS_query_module: ::c_long = 5000 + 171; +pub const SYS_quotactl: ::c_long = 5000 + 172; +pub const SYS_nfsservctl: ::c_long = 5000 + 173; +pub const SYS_getpmsg: ::c_long = 5000 + 174; +pub const SYS_putpmsg: ::c_long = 5000 + 175; +pub const SYS_afs_syscall: ::c_long = 5000 + 176; +pub const SYS_gettid: ::c_long = 5000 + 178; +pub const SYS_readahead: ::c_long = 5000 + 179; +pub const SYS_setxattr: ::c_long = 5000 + 180; +pub const SYS_lsetxattr: ::c_long = 5000 + 181; +pub const SYS_fsetxattr: ::c_long = 5000 + 182; +pub const SYS_getxattr: ::c_long = 5000 + 183; +pub const SYS_lgetxattr: ::c_long = 5000 + 184; +pub const SYS_fgetxattr: ::c_long = 5000 + 185; +pub const SYS_listxattr: ::c_long = 5000 + 186; +pub const SYS_llistxattr: ::c_long = 5000 + 187; +pub const SYS_flistxattr: ::c_long = 5000 + 188; +pub const SYS_removexattr: ::c_long = 5000 + 189; +pub const SYS_lremovexattr: ::c_long = 5000 + 190; +pub const SYS_fremovexattr: ::c_long = 5000 + 191; +pub const SYS_tkill: ::c_long = 5000 + 192; +pub const SYS_futex: ::c_long = 5000 + 194; +pub const SYS_sched_setaffinity: ::c_long = 5000 + 195; +pub const SYS_sched_getaffinity: ::c_long = 5000 + 196; +pub const SYS_cacheflush: ::c_long = 5000 + 197; +pub const SYS_cachectl: ::c_long = 5000 + 198; +pub const SYS_sysmips: ::c_long = 5000 + 199; +pub const SYS_io_setup: ::c_long = 5000 + 200; +pub const SYS_io_destroy: ::c_long = 5000 + 201; +pub const SYS_io_getevents: ::c_long = 5000 + 202; +pub const SYS_io_submit: ::c_long = 5000 + 203; +pub const SYS_io_cancel: ::c_long = 5000 + 204; +pub const SYS_exit_group: ::c_long = 5000 + 205; +pub const SYS_lookup_dcookie: ::c_long = 5000 + 206; +pub const SYS_epoll_create: ::c_long = 5000 + 207; +pub const SYS_epoll_ctl: ::c_long = 5000 + 208; +pub const SYS_epoll_wait: ::c_long = 5000 + 209; +pub const SYS_remap_file_pages: ::c_long = 5000 + 210; +pub const SYS_rt_sigreturn: ::c_long = 5000 + 211; +pub const SYS_set_tid_address: ::c_long = 5000 + 212; +pub const SYS_restart_syscall: ::c_long = 5000 + 213; +pub const SYS_semtimedop: ::c_long = 5000 + 214; +pub const SYS_fadvise64: ::c_long = 5000 + 215; +pub const SYS_timer_create: ::c_long = 5000 + 216; +pub const SYS_timer_settime: ::c_long = 5000 + 217; +pub const SYS_timer_gettime: ::c_long = 5000 + 218; +pub const SYS_timer_getoverrun: ::c_long = 5000 + 219; +pub const SYS_timer_delete: ::c_long = 5000 + 220; +pub const SYS_clock_settime: ::c_long = 5000 + 221; +pub const SYS_clock_gettime: ::c_long = 5000 + 222; +pub const SYS_clock_getres: ::c_long = 5000 + 223; +pub const SYS_clock_nanosleep: ::c_long = 5000 + 224; +pub const SYS_tgkill: ::c_long = 5000 + 225; +pub const SYS_utimes: ::c_long = 5000 + 226; +pub const SYS_mbind: ::c_long = 5000 + 227; +pub const SYS_get_mempolicy: ::c_long = 5000 + 228; +pub const SYS_set_mempolicy: ::c_long = 5000 + 229; +pub const SYS_mq_open: ::c_long = 5000 + 230; +pub const SYS_mq_unlink: ::c_long = 5000 + 231; +pub const SYS_mq_timedsend: ::c_long = 5000 + 232; +pub const SYS_mq_timedreceive: ::c_long = 5000 + 233; +pub const SYS_mq_notify: ::c_long = 5000 + 234; +pub const SYS_mq_getsetattr: ::c_long = 5000 + 235; +pub const SYS_vserver: ::c_long = 5000 + 236; +pub const SYS_waitid: ::c_long = 5000 + 237; +/* pub const SYS_sys_setaltroot: ::c_long = 5000 + 238; */ +pub const SYS_add_key: ::c_long = 5000 + 239; +pub const SYS_request_key: ::c_long = 5000 + 240; +pub const SYS_keyctl: ::c_long = 5000 + 241; +pub const SYS_set_thread_area: ::c_long = 5000 + 242; +pub const SYS_inotify_init: ::c_long = 5000 + 243; +pub const SYS_inotify_add_watch: ::c_long = 5000 + 244; +pub const SYS_inotify_rm_watch: ::c_long = 5000 + 245; +pub const SYS_migrate_pages: ::c_long = 5000 + 246; +pub const SYS_openat: ::c_long = 5000 + 247; +pub const SYS_mkdirat: ::c_long = 5000 + 248; +pub const SYS_mknodat: ::c_long = 5000 + 249; +pub const SYS_fchownat: ::c_long = 5000 + 250; +pub const SYS_futimesat: ::c_long = 5000 + 251; +pub const SYS_newfstatat: ::c_long = 5000 + 252; +pub const SYS_unlinkat: ::c_long = 5000 + 253; +pub const SYS_renameat: ::c_long = 5000 + 254; +pub const SYS_linkat: ::c_long = 5000 + 255; +pub const SYS_symlinkat: ::c_long = 5000 + 256; +pub const SYS_readlinkat: ::c_long = 5000 + 257; +pub const SYS_fchmodat: ::c_long = 5000 + 258; +pub const SYS_faccessat: ::c_long = 5000 + 259; +pub const SYS_pselect6: ::c_long = 5000 + 260; +pub const SYS_ppoll: ::c_long = 5000 + 261; +pub const SYS_unshare: ::c_long = 5000 + 262; +pub const SYS_splice: ::c_long = 5000 + 263; +pub const SYS_sync_file_range: ::c_long = 5000 + 264; +pub const SYS_tee: ::c_long = 5000 + 265; +pub const SYS_vmsplice: ::c_long = 5000 + 266; +pub const SYS_move_pages: ::c_long = 5000 + 267; +pub const SYS_set_robust_list: ::c_long = 5000 + 268; +pub const SYS_get_robust_list: ::c_long = 5000 + 269; +pub const SYS_kexec_load: ::c_long = 5000 + 270; +pub const SYS_getcpu: ::c_long = 5000 + 271; +pub const SYS_epoll_pwait: ::c_long = 5000 + 272; +pub const SYS_ioprio_set: ::c_long = 5000 + 273; +pub const SYS_ioprio_get: ::c_long = 5000 + 274; +pub const SYS_utimensat: ::c_long = 5000 + 275; +pub const SYS_signalfd: ::c_long = 5000 + 276; +pub const SYS_timerfd: ::c_long = 5000 + 277; +pub const SYS_eventfd: ::c_long = 5000 + 278; +pub const SYS_fallocate: ::c_long = 5000 + 279; +pub const SYS_timerfd_create: ::c_long = 5000 + 280; +pub const SYS_timerfd_gettime: ::c_long = 5000 + 281; +pub const SYS_timerfd_settime: ::c_long = 5000 + 282; +pub const SYS_signalfd4: ::c_long = 5000 + 283; +pub const SYS_eventfd2: ::c_long = 5000 + 284; +pub const SYS_epoll_create1: ::c_long = 5000 + 285; +pub const SYS_dup3: ::c_long = 5000 + 286; +pub const SYS_pipe2: ::c_long = 5000 + 287; +pub const SYS_inotify_init1: ::c_long = 5000 + 288; +pub const SYS_preadv: ::c_long = 5000 + 289; +pub const SYS_pwritev: ::c_long = 5000 + 290; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 5000 + 291; +pub const SYS_perf_event_open: ::c_long = 5000 + 292; +pub const SYS_accept4: ::c_long = 5000 + 293; +pub const SYS_recvmmsg: ::c_long = 5000 + 294; +pub const SYS_fanotify_init: ::c_long = 5000 + 295; +pub const SYS_fanotify_mark: ::c_long = 5000 + 296; +pub const SYS_prlimit64: ::c_long = 5000 + 297; +pub const SYS_name_to_handle_at: ::c_long = 5000 + 298; +pub const SYS_open_by_handle_at: ::c_long = 5000 + 299; +pub const SYS_clock_adjtime: ::c_long = 5000 + 300; +pub const SYS_syncfs: ::c_long = 5000 + 301; +pub const SYS_sendmmsg: ::c_long = 5000 + 302; +pub const SYS_setns: ::c_long = 5000 + 303; +pub const SYS_process_vm_readv: ::c_long = 5000 + 304; +pub const SYS_process_vm_writev: ::c_long = 5000 + 305; +pub const SYS_kcmp: ::c_long = 5000 + 306; +pub const SYS_finit_module: ::c_long = 5000 + 307; +pub const SYS_getdents64: ::c_long = 5000 + 308; +pub const SYS_sched_setattr: ::c_long = 5000 + 309; +pub const SYS_sched_getattr: ::c_long = 5000 + 310; +pub const SYS_renameat2: ::c_long = 5000 + 311; +pub const SYS_seccomp: ::c_long = 5000 + 312; +pub const SYS_getrandom: ::c_long = 5000 + 313; +pub const SYS_memfd_create: ::c_long = 5000 + 314; +pub const SYS_bpf: ::c_long = 5000 + 315; +pub const SYS_execveat: ::c_long = 5000 + 316; +pub const SYS_userfaultfd: ::c_long = 5000 + 317; +pub const SYS_membarrier: ::c_long = 5000 + 318; +pub const SYS_mlock2: ::c_long = 5000 + 319; +pub const SYS_copy_file_range: ::c_long = 5000 + 320; +pub const SYS_preadv2: ::c_long = 5000 + 321; +pub const SYS_pwritev2: ::c_long = 5000 + 322; +pub const SYS_pkey_mprotect: ::c_long = 5000 + 323; +pub const SYS_pkey_alloc: ::c_long = 5000 + 324; +pub const SYS_pkey_free: ::c_long = 5000 + 325; +pub const SYS_statx: ::c_long = 5000 + 326; +pub const SYS_pidfd_send_signal: ::c_long = 5000 + 424; +pub const SYS_io_uring_setup: ::c_long = 5000 + 425; +pub const SYS_io_uring_enter: ::c_long = 5000 + 426; +pub const SYS_io_uring_register: ::c_long = 5000 + 427; +pub const SYS_open_tree: ::c_long = 5000 + 428; +pub const SYS_move_mount: ::c_long = 5000 + 429; +pub const SYS_fsopen: ::c_long = 5000 + 430; +pub const SYS_fsconfig: ::c_long = 5000 + 431; +pub const SYS_fsmount: ::c_long = 5000 + 432; +pub const SYS_fspick: ::c_long = 5000 + 433; +pub const SYS_pidfd_open: ::c_long = 5000 + 434; +pub const SYS_clone3: ::c_long = 5000 + 435; +pub const SYS_close_range: ::c_long = 5000 + 436; +pub const SYS_openat2: ::c_long = 5000 + 437; +pub const SYS_pidfd_getfd: ::c_long = 5000 + 438; +pub const SYS_faccessat2: ::c_long = 5000 + 439; +pub const SYS_process_madvise: ::c_long = 5000 + 440; +pub const SYS_epoll_pwait2: ::c_long = 5000 + 441; +pub const SYS_mount_setattr: ::c_long = 5000 + 442; +pub const SYS_quotactl_fd: ::c_long = 5000 + 443; +pub const SYS_landlock_create_ruleset: ::c_long = 5000 + 444; +pub const SYS_landlock_add_rule: ::c_long = 5000 + 445; +pub const SYS_landlock_restrict_self: ::c_long = 5000 + 446; +pub const SYS_memfd_secret: ::c_long = 5000 + 447; +pub const SYS_process_mrelease: ::c_long = 5000 + 448; +pub const SYS_futex_waitv: ::c_long = 5000 + 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 5000 + 450; + +pub const O_DIRECT: ::c_int = 0x8000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; + +pub const O_APPEND: ::c_int = 8; +pub const O_CREAT: ::c_int = 256; +pub const O_EXCL: ::c_int = 1024; +pub const O_NOCTTY: ::c_int = 2048; +pub const O_NONBLOCK: ::c_int = 128; +pub const O_SYNC: ::c_int = 0x4010; +pub const O_RSYNC: ::c_int = 0x4010; +pub const O_DSYNC: ::c_int = 0x10; +pub const O_ASYNC: ::c_int = 0x1000; +pub const O_LARGEFILE: ::c_int = 0x2000; + +pub const EDEADLK: ::c_int = 45; +pub const ENAMETOOLONG: ::c_int = 78; +pub const ENOLCK: ::c_int = 46; +pub const ENOSYS: ::c_int = 89; +pub const ENOTEMPTY: ::c_int = 93; +pub const ELOOP: ::c_int = 90; +pub const ENOMSG: ::c_int = 35; +pub const EIDRM: ::c_int = 36; +pub const ECHRNG: ::c_int = 37; +pub const EL2NSYNC: ::c_int = 38; +pub const EL3HLT: ::c_int = 39; +pub const EL3RST: ::c_int = 40; +pub const ELNRNG: ::c_int = 41; +pub const EUNATCH: ::c_int = 42; +pub const ENOCSI: ::c_int = 43; +pub const EL2HLT: ::c_int = 44; +pub const EBADE: ::c_int = 50; +pub const EBADR: ::c_int = 51; +pub const EXFULL: ::c_int = 52; +pub const ENOANO: ::c_int = 53; +pub const EBADRQC: ::c_int = 54; +pub const EBADSLT: ::c_int = 55; +pub const EDEADLOCK: ::c_int = 56; +pub const EMULTIHOP: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 79; +pub const ENOTUNIQ: ::c_int = 80; +pub const EBADFD: ::c_int = 81; +pub const EBADMSG: ::c_int = 77; +pub const EREMCHG: ::c_int = 82; +pub const ELIBACC: ::c_int = 83; +pub const ELIBBAD: ::c_int = 84; +pub const ELIBSCN: ::c_int = 85; +pub const ELIBMAX: ::c_int = 86; +pub const ELIBEXEC: ::c_int = 87; +pub const EILSEQ: ::c_int = 88; +pub const ERESTART: ::c_int = 91; +pub const ESTRPIPE: ::c_int = 92; +pub const EUSERS: ::c_int = 94; +pub const ENOTSOCK: ::c_int = 95; +pub const EDESTADDRREQ: ::c_int = 96; +pub const EMSGSIZE: ::c_int = 97; +pub const EPROTOTYPE: ::c_int = 98; +pub const ENOPROTOOPT: ::c_int = 99; +pub const EPROTONOSUPPORT: ::c_int = 120; +pub const ESOCKTNOSUPPORT: ::c_int = 121; +pub const EOPNOTSUPP: ::c_int = 122; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 123; +pub const EAFNOSUPPORT: ::c_int = 124; +pub const EADDRINUSE: ::c_int = 125; +pub const EADDRNOTAVAIL: ::c_int = 126; +pub const ENETDOWN: ::c_int = 127; +pub const ENETUNREACH: ::c_int = 128; +pub const ENETRESET: ::c_int = 129; +pub const ECONNABORTED: ::c_int = 130; +pub const ECONNRESET: ::c_int = 131; +pub const ENOBUFS: ::c_int = 132; +pub const EISCONN: ::c_int = 133; +pub const ENOTCONN: ::c_int = 134; +pub const ESHUTDOWN: ::c_int = 143; +pub const ETOOMANYREFS: ::c_int = 144; +pub const ETIMEDOUT: ::c_int = 145; +pub const ECONNREFUSED: ::c_int = 146; +pub const EHOSTDOWN: ::c_int = 147; +pub const EHOSTUNREACH: ::c_int = 148; +pub const EALREADY: ::c_int = 149; +pub const EINPROGRESS: ::c_int = 150; +pub const ESTALE: ::c_int = 151; +pub const EUCLEAN: ::c_int = 135; +pub const ENOTNAM: ::c_int = 137; +pub const ENAVAIL: ::c_int = 138; +pub const EISNAM: ::c_int = 139; +pub const EREMOTEIO: ::c_int = 140; +pub const EDQUOT: ::c_int = 1133; +pub const ENOMEDIUM: ::c_int = 159; +pub const EMEDIUMTYPE: ::c_int = 160; +pub const ECANCELED: ::c_int = 158; +pub const ENOKEY: ::c_int = 161; +pub const EKEYEXPIRED: ::c_int = 162; +pub const EKEYREVOKED: ::c_int = 163; +pub const EKEYREJECTED: ::c_int = 164; +pub const EOWNERDEAD: ::c_int = 165; +pub const ENOTRECOVERABLE: ::c_int = 166; +pub const ERFKILL: ::c_int = 167; + +pub const MAP_ANON: ::c_int = 0x800; +pub const MAP_GROWSDOWN: ::c_int = 0x1000; +pub const MAP_DENYWRITE: ::c_int = 0x2000; +pub const MAP_EXECUTABLE: ::c_int = 0x4000; +pub const MAP_LOCKED: ::c_int = 0x8000; +pub const MAP_NORESERVE: ::c_int = 0x400; +pub const MAP_POPULATE: ::c_int = 0x10000; +pub const MAP_NONBLOCK: ::c_int = 0x20000; +pub const MAP_STACK: ::c_int = 0x40000; +pub const MAP_HUGETLB: ::c_int = 0x080000; + +pub const SOCK_STREAM: ::c_int = 2; +pub const SOCK_DGRAM: ::c_int = 1; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000008; +pub const SA_NOCLDWAIT: ::c_int = 0x00010000; + +pub const SIGCHLD: ::c_int = 18; +pub const SIGBUS: ::c_int = 10; +pub const SIGTTIN: ::c_int = 26; +pub const SIGTTOU: ::c_int = 27; +pub const SIGXCPU: ::c_int = 30; +pub const SIGXFSZ: ::c_int = 31; +pub const SIGVTALRM: ::c_int = 28; +pub const SIGPROF: ::c_int = 29; +pub const SIGWINCH: ::c_int = 20; +pub const SIGUSR1: ::c_int = 16; +pub const SIGUSR2: ::c_int = 17; +pub const SIGCONT: ::c_int = 25; +pub const SIGSTOP: ::c_int = 23; +pub const SIGTSTP: ::c_int = 24; +pub const SIGURG: ::c_int = 21; +pub const SIGIO: ::c_int = 22; +pub const SIGSYS: ::c_int = 12; +pub const SIGPOLL: ::c_int = 22; +pub const SIGPWR: ::c_int = 19; +pub const SIG_SETMASK: ::c_int = 3; +pub const SIG_BLOCK: ::c_int = 0x1; +pub const SIG_UNBLOCK: ::c_int = 0x2; + +pub const POLLWRNORM: ::c_short = 0x004; +pub const POLLWRBAND: ::c_short = 0x100; + +pub const VEOF: usize = 16; +pub const VEOL: usize = 17; +pub const VEOL2: usize = 6; +pub const VMIN: usize = 4; +pub const IEXTEN: ::tcflag_t = 0x00000100; +pub const TOSTOP: ::tcflag_t = 0x00008000; +pub const FLUSHO: ::tcflag_t = 0x00002000; +pub const EXTPROC: ::tcflag_t = 0o200000; + +pub const F_GETLK: ::c_int = 14; +pub const F_GETOWN: ::c_int = 23; +pub const F_SETOWN: ::c_int = 24; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const EHWPOISON: ::c_int = 168; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mod.rs new file mode 100644 index 000000000..f437355d9 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mod.rs @@ -0,0 +1,167 @@ +pub type c_long = i64; +pub type c_ulong = u64; +pub type regoff_t = ::c_long; + +s! { + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct pthread_attr_t { + __size: [u64; 7] + } + + pub struct sigset_t { + __val: [::c_ulong; 16], + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::c_ulong, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + pub msg_rtime: ::time_t, + pub msg_ctime: ::time_t, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + #[cfg(target_endian = "big")] + __pad1: ::c_int, + pub msg_iovlen: ::c_int, + #[cfg(target_endian = "little")] + __pad1: ::c_int, + pub msg_control: *mut ::c_void, + #[cfg(target_endian = "big")] + __pad2: ::c_int, + pub msg_controllen: ::socklen_t, + #[cfg(target_endian = "little")] + __pad2: ::c_int, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + #[cfg(target_endian = "big")] + pub __pad1: ::c_int, + pub cmsg_len: ::socklen_t, + #[cfg(target_endian = "little")] + pub __pad1: ::c_int, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct sem_t { + __val: [::c_int; 8], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub _pad: [::c_int; 29], + _align: [usize; 0], + } +} + +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; + +pub const SOCK_NONBLOCK: ::c_int = 2048; + +pub const SOCK_SEQPACKET: ::c_int = 5; + +extern "C" { + pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; +} + +cfg_if! { + if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } else if #[cfg(target_arch = "mips64")] { + mod mips64; + pub use self::mips64::*; + } else if #[cfg(any(target_arch = "powerpc64"))] { + mod powerpc64; + pub use self::powerpc64::*; + } else if #[cfg(any(target_arch = "s390x"))] { + mod s390x; + pub use self::s390x::*; + } else if #[cfg(any(target_arch = "x86_64"))] { + mod x86_64; + pub use self::x86_64::*; + } else if #[cfg(any(target_arch = "riscv64"))] { + mod riscv64; + pub use self::riscv64::*; + } else { + // Unknown target_arch + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/powerpc64.rs new file mode 100644 index 000000000..c9bd94135 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -0,0 +1,697 @@ +pub type c_char = u8; +pub type wchar_t = i32; +pub type __u64 = ::c_ulong; +pub type __s64 = ::c_long; +pub type nlink_t = u64; +pub type blksize_t = ::c_long; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + __pad0: ::c_int, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_long; 3], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + __pad0: ::c_int, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __reserved: [::c_long; 3], + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_int, + __unused1: ::c_long, + __unused2: ::c_long + } +} + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_32BIT: ::c_int = 0x0040; +pub const O_APPEND: ::c_int = 1024; +pub const O_DIRECT: ::c_int = 0x20000; +pub const O_DIRECTORY: ::c_int = 0x4000; +pub const O_LARGEFILE: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_ASYNC: ::c_int = 0x2000; + +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ERFKILL: ::c_int = 132; +pub const EHWPOISON: ::c_int = 133; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const PTRACE_SYSEMU: ::c_int = 0x1d; +pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 0x1e; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const VEOF: usize = 4; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const SIGSTKSZ: ::size_t = 10240; +pub const MINSIGSTKSZ: ::size_t = 4096; + +// Syscall table +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_waitpid: ::c_long = 7; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_time: ::c_long = 13; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_break: ::c_long = 17; +pub const SYS_oldstat: ::c_long = 18; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_umount: ::c_long = 22; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_stime: ::c_long = 25; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_alarm: ::c_long = 27; +pub const SYS_oldfstat: ::c_long = 28; +pub const SYS_pause: ::c_long = 29; +pub const SYS_utime: ::c_long = 30; +pub const SYS_stty: ::c_long = 31; +pub const SYS_gtty: ::c_long = 32; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_ftime: ::c_long = 35; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_prof: ::c_long = 44; +pub const SYS_brk: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_signal: ::c_long = 48; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_lock: ::c_long = 53; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_mpx: ::c_long = 56; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_ulimit: ::c_long = 58; +pub const SYS_oldolduname: ::c_long = 59; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_sgetmask: ::c_long = 68; +pub const SYS_ssetmask: ::c_long = 69; +pub const SYS_setreuid: ::c_long = 70; +pub const SYS_setregid: ::c_long = 71; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrlimit: ::c_long = 76; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_getgroups: ::c_long = 80; +pub const SYS_setgroups: ::c_long = 81; +pub const SYS_select: ::c_long = 82; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_oldlstat: ::c_long = 84; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_readdir: ::c_long = 89; +pub const SYS_mmap: ::c_long = 90; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_fchown: ::c_long = 95; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_profil: ::c_long = 98; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_ioperm: ::c_long = 101; +pub const SYS_socketcall: ::c_long = 102; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_olduname: ::c_long = 109; +pub const SYS_iopl: ::c_long = 110; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_idle: ::c_long = 112; +pub const SYS_vm86: ::c_long = 113; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_ipc: ::c_long = 117; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_modify_ldt: ::c_long = 123; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_create_module: ::c_long = 127; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_get_kernel_syms: ::c_long = 130; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ +pub const SYS_setfsuid: ::c_long = 138; +pub const SYS_setfsgid: ::c_long = 139; +pub const SYS__llseek: ::c_long = 140; +pub const SYS_getdents: ::c_long = 141; +pub const SYS__newselect: ::c_long = 142; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_setresuid: ::c_long = 164; +pub const SYS_getresuid: ::c_long = 165; +pub const SYS_query_module: ::c_long = 166; +pub const SYS_poll: ::c_long = 167; +pub const SYS_nfsservctl: ::c_long = 168; +pub const SYS_setresgid: ::c_long = 169; +pub const SYS_getresgid: ::c_long = 170; +pub const SYS_prctl: ::c_long = 171; +pub const SYS_rt_sigreturn: ::c_long = 172; +pub const SYS_rt_sigaction: ::c_long = 173; +pub const SYS_rt_sigprocmask: ::c_long = 174; +pub const SYS_rt_sigpending: ::c_long = 175; +pub const SYS_rt_sigtimedwait: ::c_long = 176; +pub const SYS_rt_sigqueueinfo: ::c_long = 177; +pub const SYS_rt_sigsuspend: ::c_long = 178; +pub const SYS_pread64: ::c_long = 179; +pub const SYS_pwrite64: ::c_long = 180; +pub const SYS_chown: ::c_long = 181; +pub const SYS_getcwd: ::c_long = 182; +pub const SYS_capget: ::c_long = 183; +pub const SYS_capset: ::c_long = 184; +pub const SYS_sigaltstack: ::c_long = 185; +pub const SYS_sendfile: ::c_long = 186; +pub const SYS_getpmsg: ::c_long = 187; /* some people actually want streams */ +pub const SYS_putpmsg: ::c_long = 188; /* some people actually want streams */ +pub const SYS_vfork: ::c_long = 189; +pub const SYS_ugetrlimit: ::c_long = 190; /* SuS compliant getrlimit */ +pub const SYS_readahead: ::c_long = 191; +pub const SYS_pciconfig_read: ::c_long = 198; +pub const SYS_pciconfig_write: ::c_long = 199; +pub const SYS_pciconfig_iobase: ::c_long = 200; +pub const SYS_multiplexer: ::c_long = 201; +pub const SYS_getdents64: ::c_long = 202; +pub const SYS_pivot_root: ::c_long = 203; +pub const SYS_madvise: ::c_long = 205; +pub const SYS_mincore: ::c_long = 206; +pub const SYS_gettid: ::c_long = 207; +pub const SYS_tkill: ::c_long = 208; +pub const SYS_setxattr: ::c_long = 209; +pub const SYS_lsetxattr: ::c_long = 210; +pub const SYS_fsetxattr: ::c_long = 211; +pub const SYS_getxattr: ::c_long = 212; +pub const SYS_lgetxattr: ::c_long = 213; +pub const SYS_fgetxattr: ::c_long = 214; +pub const SYS_listxattr: ::c_long = 215; +pub const SYS_llistxattr: ::c_long = 216; +pub const SYS_flistxattr: ::c_long = 217; +pub const SYS_removexattr: ::c_long = 218; +pub const SYS_lremovexattr: ::c_long = 219; +pub const SYS_fremovexattr: ::c_long = 220; +pub const SYS_futex: ::c_long = 221; +pub const SYS_sched_setaffinity: ::c_long = 222; +pub const SYS_sched_getaffinity: ::c_long = 223; +pub const SYS_tuxcall: ::c_long = 225; +pub const SYS_io_setup: ::c_long = 227; +pub const SYS_io_destroy: ::c_long = 228; +pub const SYS_io_getevents: ::c_long = 229; +pub const SYS_io_submit: ::c_long = 230; +pub const SYS_io_cancel: ::c_long = 231; +pub const SYS_set_tid_address: ::c_long = 232; +pub const SYS_exit_group: ::c_long = 234; +pub const SYS_lookup_dcookie: ::c_long = 235; +pub const SYS_epoll_create: ::c_long = 236; +pub const SYS_epoll_ctl: ::c_long = 237; +pub const SYS_epoll_wait: ::c_long = 238; +pub const SYS_remap_file_pages: ::c_long = 239; +pub const SYS_timer_create: ::c_long = 240; +pub const SYS_timer_settime: ::c_long = 241; +pub const SYS_timer_gettime: ::c_long = 242; +pub const SYS_timer_getoverrun: ::c_long = 243; +pub const SYS_timer_delete: ::c_long = 244; +pub const SYS_clock_settime: ::c_long = 245; +pub const SYS_clock_gettime: ::c_long = 246; +pub const SYS_clock_getres: ::c_long = 247; +pub const SYS_clock_nanosleep: ::c_long = 248; +pub const SYS_swapcontext: ::c_long = 249; +pub const SYS_tgkill: ::c_long = 250; +pub const SYS_utimes: ::c_long = 251; +pub const SYS_statfs64: ::c_long = 252; +pub const SYS_fstatfs64: ::c_long = 253; +pub const SYS_rtas: ::c_long = 255; +pub const SYS_sys_debug_setcontext: ::c_long = 256; +pub const SYS_migrate_pages: ::c_long = 258; +pub const SYS_mbind: ::c_long = 259; +pub const SYS_get_mempolicy: ::c_long = 260; +pub const SYS_set_mempolicy: ::c_long = 261; +pub const SYS_mq_open: ::c_long = 262; +pub const SYS_mq_unlink: ::c_long = 263; +pub const SYS_mq_timedsend: ::c_long = 264; +pub const SYS_mq_timedreceive: ::c_long = 265; +pub const SYS_mq_notify: ::c_long = 266; +pub const SYS_mq_getsetattr: ::c_long = 267; +pub const SYS_kexec_load: ::c_long = 268; +pub const SYS_add_key: ::c_long = 269; +pub const SYS_request_key: ::c_long = 270; +pub const SYS_keyctl: ::c_long = 271; +pub const SYS_waitid: ::c_long = 272; +pub const SYS_ioprio_set: ::c_long = 273; +pub const SYS_ioprio_get: ::c_long = 274; +pub const SYS_inotify_init: ::c_long = 275; +pub const SYS_inotify_add_watch: ::c_long = 276; +pub const SYS_inotify_rm_watch: ::c_long = 277; +pub const SYS_spu_run: ::c_long = 278; +pub const SYS_spu_create: ::c_long = 279; +pub const SYS_pselect6: ::c_long = 280; +pub const SYS_ppoll: ::c_long = 281; +pub const SYS_unshare: ::c_long = 282; +pub const SYS_splice: ::c_long = 283; +pub const SYS_tee: ::c_long = 284; +pub const SYS_vmsplice: ::c_long = 285; +pub const SYS_openat: ::c_long = 286; +pub const SYS_mkdirat: ::c_long = 287; +pub const SYS_mknodat: ::c_long = 288; +pub const SYS_fchownat: ::c_long = 289; +pub const SYS_futimesat: ::c_long = 290; +pub const SYS_newfstatat: ::c_long = 291; +pub const SYS_unlinkat: ::c_long = 292; +pub const SYS_renameat: ::c_long = 293; +pub const SYS_linkat: ::c_long = 294; +pub const SYS_symlinkat: ::c_long = 295; +pub const SYS_readlinkat: ::c_long = 296; +pub const SYS_fchmodat: ::c_long = 297; +pub const SYS_faccessat: ::c_long = 298; +pub const SYS_get_robust_list: ::c_long = 299; +pub const SYS_set_robust_list: ::c_long = 300; +pub const SYS_move_pages: ::c_long = 301; +pub const SYS_getcpu: ::c_long = 302; +pub const SYS_epoll_pwait: ::c_long = 303; +pub const SYS_utimensat: ::c_long = 304; +pub const SYS_signalfd: ::c_long = 305; +pub const SYS_timerfd_create: ::c_long = 306; +pub const SYS_eventfd: ::c_long = 307; +pub const SYS_sync_file_range2: ::c_long = 308; +pub const SYS_fallocate: ::c_long = 309; +pub const SYS_subpage_prot: ::c_long = 310; +pub const SYS_timerfd_settime: ::c_long = 311; +pub const SYS_timerfd_gettime: ::c_long = 312; +pub const SYS_signalfd4: ::c_long = 313; +pub const SYS_eventfd2: ::c_long = 314; +pub const SYS_epoll_create1: ::c_long = 315; +pub const SYS_dup3: ::c_long = 316; +pub const SYS_pipe2: ::c_long = 317; +pub const SYS_inotify_init1: ::c_long = 318; +pub const SYS_perf_event_open: ::c_long = 319; +pub const SYS_preadv: ::c_long = 320; +pub const SYS_pwritev: ::c_long = 321; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; +pub const SYS_fanotify_init: ::c_long = 323; +pub const SYS_fanotify_mark: ::c_long = 324; +pub const SYS_prlimit64: ::c_long = 325; +pub const SYS_socket: ::c_long = 326; +pub const SYS_bind: ::c_long = 327; +pub const SYS_connect: ::c_long = 328; +pub const SYS_listen: ::c_long = 329; +pub const SYS_accept: ::c_long = 330; +pub const SYS_getsockname: ::c_long = 331; +pub const SYS_getpeername: ::c_long = 332; +pub const SYS_socketpair: ::c_long = 333; +pub const SYS_send: ::c_long = 334; +pub const SYS_sendto: ::c_long = 335; +pub const SYS_recv: ::c_long = 336; +pub const SYS_recvfrom: ::c_long = 337; +pub const SYS_shutdown: ::c_long = 338; +pub const SYS_setsockopt: ::c_long = 339; +pub const SYS_getsockopt: ::c_long = 340; +pub const SYS_sendmsg: ::c_long = 341; +pub const SYS_recvmsg: ::c_long = 342; +pub const SYS_recvmmsg: ::c_long = 343; +pub const SYS_accept4: ::c_long = 344; +pub const SYS_name_to_handle_at: ::c_long = 345; +pub const SYS_open_by_handle_at: ::c_long = 346; +pub const SYS_clock_adjtime: ::c_long = 347; +pub const SYS_syncfs: ::c_long = 348; +pub const SYS_sendmmsg: ::c_long = 349; +pub const SYS_setns: ::c_long = 350; +pub const SYS_process_vm_readv: ::c_long = 351; +pub const SYS_process_vm_writev: ::c_long = 352; +pub const SYS_finit_module: ::c_long = 353; +pub const SYS_kcmp: ::c_long = 354; +pub const SYS_sched_setattr: ::c_long = 355; +pub const SYS_sched_getattr: ::c_long = 356; +pub const SYS_renameat2: ::c_long = 357; +pub const SYS_seccomp: ::c_long = 358; +pub const SYS_getrandom: ::c_long = 359; +pub const SYS_memfd_create: ::c_long = 360; +pub const SYS_bpf: ::c_long = 361; +pub const SYS_execveat: ::c_long = 362; +pub const SYS_switch_endian: ::c_long = 363; +pub const SYS_userfaultfd: ::c_long = 364; +pub const SYS_membarrier: ::c_long = 365; +pub const SYS_mlock2: ::c_long = 378; +pub const SYS_copy_file_range: ::c_long = 379; +pub const SYS_preadv2: ::c_long = 380; +pub const SYS_pwritev2: ::c_long = 381; +pub const SYS_kexec_file_load: ::c_long = 382; +pub const SYS_statx: ::c_long = 383; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +pub const EDEADLK: ::c_int = 58; +pub const EDEADLOCK: ::c_int = EDEADLK; + +pub const EXTPROC: ::tcflag_t = 0x10000000; +pub const VEOL: usize = 6; +pub const VEOL2: usize = 8; +pub const VMIN: usize = 5; +pub const IEXTEN: ::tcflag_t = 0x00000400; +pub const TOSTOP: ::tcflag_t = 0x00400000; +pub const FLUSHO: ::tcflag_t = 0x00800000; + +pub const MCL_CURRENT: ::c_int = 0x2000; +pub const MCL_FUTURE: ::c_int = 0x4000; +pub const CBAUD: ::tcflag_t = 0xff; +pub const TAB1: ::c_int = 0x400; +pub const TAB2: ::c_int = 0x800; +pub const TAB3: ::c_int = 0xc00; +pub const CR1: ::c_int = 0x1000; +pub const CR2: ::c_int = 0x2000; +pub const CR3: ::c_int = 0x3000; +pub const FF1: ::c_int = 0x4000; +pub const BS1: ::c_int = 0x8000; +pub const VT1: ::c_int = 0x10000; +pub const VWERASE: usize = 10; +pub const VREPRINT: usize = 11; +pub const VSUSP: usize = 12; +pub const VSTART: usize = 13; +pub const VSTOP: usize = 14; +pub const VDISCARD: usize = 16; +pub const VTIME: usize = 7; +pub const IXON: ::tcflag_t = 0x00000200; +pub const IXOFF: ::tcflag_t = 0x00000400; +pub const ONLCR: ::tcflag_t = 0x2; +pub const CSIZE: ::tcflag_t = 0x00000300; + +pub const CS6: ::tcflag_t = 0x00000100; +pub const CS7: ::tcflag_t = 0x00000200; +pub const CS8: ::tcflag_t = 0x00000300; +pub const CSTOPB: ::tcflag_t = 0x00000400; +pub const CREAD: ::tcflag_t = 0x00000800; +pub const PARENB: ::tcflag_t = 0x00001000; +pub const PARODD: ::tcflag_t = 0x00002000; +pub const HUPCL: ::tcflag_t = 0x00004000; +pub const CLOCAL: ::tcflag_t = 0x00008000; +pub const ECHOKE: ::tcflag_t = 0x00000001; +pub const ECHOE: ::tcflag_t = 0x00000002; +pub const ECHOK: ::tcflag_t = 0x00000004; +pub const ECHONL: ::tcflag_t = 0x00000010; +pub const ECHOPRT: ::tcflag_t = 0x00000020; +pub const ECHOCTL: ::tcflag_t = 0x00000040; +pub const ISIG: ::tcflag_t = 0x00000080; +pub const ICANON: ::tcflag_t = 0x00000100; +pub const PENDIN: ::tcflag_t = 0x20000000; +pub const NOFLSH: ::tcflag_t = 0x80000000; + +pub const CIBAUD: ::tcflag_t = 0o77600000; +pub const CBAUDEX: ::tcflag_t = 0o0000020; +pub const VSWTC: usize = 9; +pub const OLCUC: ::tcflag_t = 0o000004; +pub const NLDLY: ::tcflag_t = 0o0001400; +pub const CRDLY: ::tcflag_t = 0o0030000; +pub const TABDLY: ::tcflag_t = 0o0006000; +pub const BSDLY: ::tcflag_t = 0o0100000; +pub const FFDLY: ::tcflag_t = 0o0040000; +pub const VTDLY: ::tcflag_t = 0o0200000; +pub const XTABS: ::tcflag_t = 0o00006000; + +pub const B57600: ::speed_t = 0o00020; +pub const B115200: ::speed_t = 0o00021; +pub const B230400: ::speed_t = 0o00022; +pub const B460800: ::speed_t = 0o00023; +pub const B500000: ::speed_t = 0o00024; +pub const B576000: ::speed_t = 0o00025; +pub const B921600: ::speed_t = 0o00026; +pub const B1000000: ::speed_t = 0o00027; +pub const B1152000: ::speed_t = 0o00030; +pub const B1500000: ::speed_t = 0o00031; +pub const B2000000: ::speed_t = 0o00032; +pub const B2500000: ::speed_t = 0o00033; +pub const B3000000: ::speed_t = 0o00034; +pub const B3500000: ::speed_t = 0o00035; +pub const B4000000: ::speed_t = 0o00036; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/align.rs new file mode 100644 index 000000000..48d152a57 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/align.rs @@ -0,0 +1,44 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + pub struct ucontext_t { + pub __uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct mcontext_t { + pub __gregs: [::c_ulong; 32], + pub __fpregs: __riscv_mc_fp_state, + } + + #[allow(missing_debug_implementations)] + pub union __riscv_mc_fp_state { + pub __f: __riscv_mc_f_ext_state, + pub __d: __riscv_mc_d_ext_state, + pub __q: __riscv_mc_q_ext_state, + } + + #[allow(missing_debug_implementations)] + pub struct __riscv_mc_f_ext_state { + pub __f: [::c_uint; 32], + pub __fcsr: ::c_uint, + } + + #[allow(missing_debug_implementations)] + pub struct __riscv_mc_d_ext_state { + pub __f: [::c_ulonglong; 32], + pub __fcsr: ::c_uint, + } + + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct __riscv_mc_q_ext_state { + pub __f: [::c_ulonglong; 64], + pub __fcsr: ::c_uint, + pub __glibc_reserved: [::c_uint; 3], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs new file mode 100644 index 000000000..9e9dbf6c8 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -0,0 +1,726 @@ +//! RISC-V-specific definitions for 64-bit linux-like values + +pub type c_char = u8; +pub type wchar_t = ::c_int; + +pub type nlink_t = ::c_uint; +pub type blksize_t = ::c_int; +pub type fsblkcnt64_t = ::c_ulong; +pub type fsfilcnt64_t = ::c_ulong; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; + +s! { + pub struct pthread_attr_t { + __size: [::c_ulong; 7], + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub __pad1: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub __pad2: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2usize], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub __pad1: ::dev_t, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub __pad2: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2], + } + + pub struct statfs { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_frsize: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 4], + } + + pub struct statfs64 { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsfilcnt64_t, + pub f_ffree: ::fsfilcnt64_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_frsize: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 4], + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub __f_spare: [::c_int; 6], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsfilcnt64_t, + pub f_ffree: ::fsfilcnt64_t, + pub f_favail: ::fsfilcnt64_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub __f_spare: [::c_int; 6], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [u64; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t, + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_ushort, + __pad1: ::c_ushort, + pub __seq: ::c_ushort, + __pad2: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused5: ::c_ulong, + __unused6: ::c_ulong, + } +} + +pub const SYS_read: ::c_long = 63; +pub const SYS_write: ::c_long = 64; +pub const SYS_close: ::c_long = 57; +pub const SYS_fstat: ::c_long = 80; +pub const SYS_lseek: ::c_long = 62; +pub const SYS_mmap: ::c_long = 222; +pub const SYS_mprotect: ::c_long = 226; +pub const SYS_munmap: ::c_long = 215; +pub const SYS_brk: ::c_long = 214; +pub const SYS_rt_sigaction: ::c_long = 134; +pub const SYS_rt_sigprocmask: ::c_long = 135; +pub const SYS_rt_sigreturn: ::c_long = 139; +pub const SYS_ioctl: ::c_long = 29; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_readv: ::c_long = 65; +pub const SYS_writev: ::c_long = 66; +pub const SYS_sched_yield: ::c_long = 124; +pub const SYS_mremap: ::c_long = 216; +pub const SYS_msync: ::c_long = 227; +pub const SYS_mincore: ::c_long = 232; +pub const SYS_madvise: ::c_long = 233; +pub const SYS_shmget: ::c_long = 194; +pub const SYS_shmat: ::c_long = 196; +pub const SYS_shmctl: ::c_long = 195; +pub const SYS_dup: ::c_long = 23; +pub const SYS_nanosleep: ::c_long = 101; +pub const SYS_getitimer: ::c_long = 102; +pub const SYS_setitimer: ::c_long = 103; +pub const SYS_getpid: ::c_long = 172; +pub const SYS_sendfile: ::c_long = 71; +pub const SYS_socket: ::c_long = 198; +pub const SYS_connect: ::c_long = 203; +pub const SYS_accept: ::c_long = 202; +pub const SYS_sendto: ::c_long = 206; +pub const SYS_recvfrom: ::c_long = 207; +pub const SYS_sendmsg: ::c_long = 211; +pub const SYS_recvmsg: ::c_long = 212; +pub const SYS_shutdown: ::c_long = 210; +pub const SYS_bind: ::c_long = 200; +pub const SYS_listen: ::c_long = 201; +pub const SYS_getsockname: ::c_long = 204; +pub const SYS_getpeername: ::c_long = 205; +pub const SYS_socketpair: ::c_long = 199; +pub const SYS_setsockopt: ::c_long = 208; +pub const SYS_getsockopt: ::c_long = 209; +pub const SYS_clone: ::c_long = 220; +pub const SYS_execve: ::c_long = 221; +pub const SYS_exit: ::c_long = 93; +pub const SYS_wait4: ::c_long = 260; +pub const SYS_kill: ::c_long = 129; +pub const SYS_uname: ::c_long = 160; +pub const SYS_semget: ::c_long = 190; +pub const SYS_semop: ::c_long = 193; +pub const SYS_semctl: ::c_long = 191; +pub const SYS_shmdt: ::c_long = 197; +pub const SYS_msgget: ::c_long = 186; +pub const SYS_msgsnd: ::c_long = 189; +pub const SYS_msgrcv: ::c_long = 188; +pub const SYS_msgctl: ::c_long = 187; +pub const SYS_fcntl: ::c_long = 25; +pub const SYS_flock: ::c_long = 32; +pub const SYS_fsync: ::c_long = 82; +pub const SYS_fdatasync: ::c_long = 83; +pub const SYS_truncate: ::c_long = 45; +pub const SYS_ftruncate: ::c_long = 46; +pub const SYS_getcwd: ::c_long = 17; +pub const SYS_chdir: ::c_long = 49; +pub const SYS_fchdir: ::c_long = 50; +pub const SYS_fchmod: ::c_long = 52; +pub const SYS_fchown: ::c_long = 55; +pub const SYS_umask: ::c_long = 166; +pub const SYS_gettimeofday: ::c_long = 169; +pub const SYS_getrlimit: ::c_long = 163; +pub const SYS_getrusage: ::c_long = 165; +pub const SYS_sysinfo: ::c_long = 179; +pub const SYS_times: ::c_long = 153; +pub const SYS_ptrace: ::c_long = 117; +pub const SYS_getuid: ::c_long = 174; +pub const SYS_syslog: ::c_long = 116; +pub const SYS_getgid: ::c_long = 176; +pub const SYS_setuid: ::c_long = 146; +pub const SYS_setgid: ::c_long = 144; +pub const SYS_geteuid: ::c_long = 175; +pub const SYS_getegid: ::c_long = 177; +pub const SYS_setpgid: ::c_long = 154; +pub const SYS_getppid: ::c_long = 173; +pub const SYS_setsid: ::c_long = 157; +pub const SYS_setreuid: ::c_long = 145; +pub const SYS_setregid: ::c_long = 143; +pub const SYS_getgroups: ::c_long = 158; +pub const SYS_setgroups: ::c_long = 159; +pub const SYS_setresuid: ::c_long = 147; +pub const SYS_getresuid: ::c_long = 148; +pub const SYS_setresgid: ::c_long = 149; +pub const SYS_getresgid: ::c_long = 150; +pub const SYS_getpgid: ::c_long = 155; +pub const SYS_setfsuid: ::c_long = 151; +pub const SYS_setfsgid: ::c_long = 152; +pub const SYS_getsid: ::c_long = 156; +pub const SYS_capget: ::c_long = 90; +pub const SYS_capset: ::c_long = 91; +pub const SYS_rt_sigpending: ::c_long = 136; +pub const SYS_rt_sigtimedwait: ::c_long = 137; +pub const SYS_rt_sigqueueinfo: ::c_long = 138; +pub const SYS_rt_sigsuspend: ::c_long = 133; +pub const SYS_sigaltstack: ::c_long = 132; +pub const SYS_personality: ::c_long = 92; +pub const SYS_statfs: ::c_long = 43; +pub const SYS_fstatfs: ::c_long = 44; +pub const SYS_getpriority: ::c_long = 141; +pub const SYS_setpriority: ::c_long = 140; +pub const SYS_sched_setparam: ::c_long = 118; +pub const SYS_sched_getparam: ::c_long = 121; +pub const SYS_sched_setscheduler: ::c_long = 119; +pub const SYS_sched_getscheduler: ::c_long = 120; +pub const SYS_sched_get_priority_max: ::c_long = 125; +pub const SYS_sched_get_priority_min: ::c_long = 126; +pub const SYS_sched_rr_get_interval: ::c_long = 127; +pub const SYS_mlock: ::c_long = 228; +pub const SYS_munlock: ::c_long = 229; +pub const SYS_mlockall: ::c_long = 230; +pub const SYS_munlockall: ::c_long = 231; +pub const SYS_vhangup: ::c_long = 58; +pub const SYS_pivot_root: ::c_long = 41; +pub const SYS_prctl: ::c_long = 167; +pub const SYS_adjtimex: ::c_long = 171; +pub const SYS_setrlimit: ::c_long = 164; +pub const SYS_chroot: ::c_long = 51; +pub const SYS_sync: ::c_long = 81; +pub const SYS_acct: ::c_long = 89; +pub const SYS_settimeofday: ::c_long = 170; +pub const SYS_mount: ::c_long = 40; +pub const SYS_umount2: ::c_long = 39; +pub const SYS_swapon: ::c_long = 224; +pub const SYS_swapoff: ::c_long = 225; +pub const SYS_reboot: ::c_long = 142; +pub const SYS_sethostname: ::c_long = 161; +pub const SYS_setdomainname: ::c_long = 162; +pub const SYS_init_module: ::c_long = 105; +pub const SYS_delete_module: ::c_long = 106; +pub const SYS_quotactl: ::c_long = 60; +pub const SYS_nfsservctl: ::c_long = 42; +pub const SYS_gettid: ::c_long = 178; +pub const SYS_readahead: ::c_long = 213; +pub const SYS_setxattr: ::c_long = 5; +pub const SYS_lsetxattr: ::c_long = 6; +pub const SYS_fsetxattr: ::c_long = 7; +pub const SYS_getxattr: ::c_long = 8; +pub const SYS_lgetxattr: ::c_long = 9; +pub const SYS_fgetxattr: ::c_long = 10; +pub const SYS_listxattr: ::c_long = 11; +pub const SYS_llistxattr: ::c_long = 12; +pub const SYS_flistxattr: ::c_long = 13; +pub const SYS_removexattr: ::c_long = 14; +pub const SYS_lremovexattr: ::c_long = 15; +pub const SYS_fremovexattr: ::c_long = 16; +pub const SYS_tkill: ::c_long = 130; +pub const SYS_futex: ::c_long = 98; +pub const SYS_sched_setaffinity: ::c_long = 122; +pub const SYS_sched_getaffinity: ::c_long = 123; +pub const SYS_io_setup: ::c_long = 0; +pub const SYS_io_destroy: ::c_long = 1; +pub const SYS_io_getevents: ::c_long = 4; +pub const SYS_io_submit: ::c_long = 2; +pub const SYS_io_cancel: ::c_long = 3; +pub const SYS_lookup_dcookie: ::c_long = 18; +pub const SYS_remap_file_pages: ::c_long = 234; +pub const SYS_getdents64: ::c_long = 61; +pub const SYS_set_tid_address: ::c_long = 96; +pub const SYS_restart_syscall: ::c_long = 128; +pub const SYS_semtimedop: ::c_long = 192; +pub const SYS_fadvise64: ::c_long = 223; +pub const SYS_timer_create: ::c_long = 107; +pub const SYS_timer_settime: ::c_long = 110; +pub const SYS_timer_gettime: ::c_long = 108; +pub const SYS_timer_getoverrun: ::c_long = 109; +pub const SYS_timer_delete: ::c_long = 111; +pub const SYS_clock_settime: ::c_long = 112; +pub const SYS_clock_gettime: ::c_long = 113; +pub const SYS_clock_getres: ::c_long = 114; +pub const SYS_clock_nanosleep: ::c_long = 115; +pub const SYS_exit_group: ::c_long = 94; +pub const SYS_epoll_ctl: ::c_long = 21; +pub const SYS_tgkill: ::c_long = 131; +pub const SYS_mbind: ::c_long = 235; +pub const SYS_set_mempolicy: ::c_long = 237; +pub const SYS_get_mempolicy: ::c_long = 236; +pub const SYS_mq_open: ::c_long = 180; +pub const SYS_mq_unlink: ::c_long = 181; +pub const SYS_mq_timedsend: ::c_long = 182; +pub const SYS_mq_timedreceive: ::c_long = 183; +pub const SYS_mq_notify: ::c_long = 184; +pub const SYS_mq_getsetattr: ::c_long = 185; +pub const SYS_kexec_load: ::c_long = 104; +pub const SYS_waitid: ::c_long = 95; +pub const SYS_add_key: ::c_long = 217; +pub const SYS_request_key: ::c_long = 218; +pub const SYS_keyctl: ::c_long = 219; +pub const SYS_ioprio_set: ::c_long = 30; +pub const SYS_ioprio_get: ::c_long = 31; +pub const SYS_inotify_add_watch: ::c_long = 27; +pub const SYS_inotify_rm_watch: ::c_long = 28; +pub const SYS_migrate_pages: ::c_long = 238; +pub const SYS_openat: ::c_long = 56; +pub const SYS_mkdirat: ::c_long = 34; +pub const SYS_mknodat: ::c_long = 33; +pub const SYS_fchownat: ::c_long = 54; +pub const SYS_newfstatat: ::c_long = 79; +pub const SYS_unlinkat: ::c_long = 35; +pub const SYS_linkat: ::c_long = 37; +pub const SYS_symlinkat: ::c_long = 36; +pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_fchmodat: ::c_long = 53; +pub const SYS_faccessat: ::c_long = 48; +pub const SYS_pselect6: ::c_long = 72; +pub const SYS_ppoll: ::c_long = 73; +pub const SYS_unshare: ::c_long = 97; +pub const SYS_set_robust_list: ::c_long = 99; +pub const SYS_get_robust_list: ::c_long = 100; +pub const SYS_splice: ::c_long = 76; +pub const SYS_tee: ::c_long = 77; +pub const SYS_sync_file_range: ::c_long = 84; +pub const SYS_vmsplice: ::c_long = 75; +pub const SYS_move_pages: ::c_long = 239; +pub const SYS_utimensat: ::c_long = 88; +pub const SYS_epoll_pwait: ::c_long = 22; +pub const SYS_timerfd_create: ::c_long = 85; +pub const SYS_fallocate: ::c_long = 47; +pub const SYS_timerfd_settime: ::c_long = 86; +pub const SYS_timerfd_gettime: ::c_long = 87; +pub const SYS_accept4: ::c_long = 242; +pub const SYS_signalfd4: ::c_long = 74; +pub const SYS_eventfd2: ::c_long = 19; +pub const SYS_epoll_create1: ::c_long = 20; +pub const SYS_dup3: ::c_long = 24; +pub const SYS_pipe2: ::c_long = 59; +pub const SYS_inotify_init1: ::c_long = 26; +pub const SYS_preadv: ::c_long = 69; +pub const SYS_pwritev: ::c_long = 70; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; +pub const SYS_perf_event_open: ::c_long = 241; +pub const SYS_recvmmsg: ::c_long = 243; +pub const SYS_fanotify_init: ::c_long = 262; +pub const SYS_fanotify_mark: ::c_long = 263; +pub const SYS_prlimit64: ::c_long = 261; +pub const SYS_name_to_handle_at: ::c_long = 264; +pub const SYS_open_by_handle_at: ::c_long = 265; +pub const SYS_clock_adjtime: ::c_long = 266; +pub const SYS_syncfs: ::c_long = 267; +pub const SYS_sendmmsg: ::c_long = 269; +pub const SYS_setns: ::c_long = 268; +pub const SYS_getcpu: ::c_long = 168; +pub const SYS_process_vm_readv: ::c_long = 270; +pub const SYS_process_vm_writev: ::c_long = 271; +pub const SYS_kcmp: ::c_long = 272; +pub const SYS_finit_module: ::c_long = 273; +pub const SYS_sched_setattr: ::c_long = 274; +pub const SYS_sched_getattr: ::c_long = 275; +pub const SYS_renameat2: ::c_long = 276; +pub const SYS_seccomp: ::c_long = 277; +pub const SYS_getrandom: ::c_long = 278; +pub const SYS_memfd_create: ::c_long = 279; +pub const SYS_bpf: ::c_long = 280; +pub const SYS_execveat: ::c_long = 281; +pub const SYS_userfaultfd: ::c_long = 282; +pub const SYS_membarrier: ::c_long = 283; +pub const SYS_mlock2: ::c_long = 284; +pub const SYS_copy_file_range: ::c_long = 285; +pub const SYS_preadv2: ::c_long = 286; +pub const SYS_pwritev2: ::c_long = 287; +pub const SYS_pkey_mprotect: ::c_long = 288; +pub const SYS_pkey_alloc: ::c_long = 289; +pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; + +pub const O_APPEND: ::c_int = 1024; +pub const O_DIRECT: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_LARGEFILE: ::c_int = 0; +pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_ASYNC: ::c_int = 0x2000; + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; + +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const VEOF: usize = 4; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::c_int = 0x00000800; +pub const TAB2: ::c_int = 0x00001000; +pub const TAB3: ::c_int = 0x00001800; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const EDEADLK: ::c_int = 35; +pub const EDEADLOCK: ::c_int = EDEADLK; +pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; + +pub const NGREG: usize = 32; +pub const REG_PC: usize = 0; +pub const REG_RA: usize = 1; +pub const REG_SP: usize = 2; +pub const REG_TP: usize = 4; +pub const REG_S0: usize = 8; +pub const REG_S1: usize = 9; +pub const REG_A0: usize = 10; +pub const REG_S2: usize = 18; +pub const REG_NARGS: usize = 8; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/s390x.rs new file mode 100644 index 000000000..f338dcc54 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -0,0 +1,726 @@ +pub type blksize_t = i64; +pub type c_char = u8; +pub type nlink_t = u64; +pub type wchar_t = i32; +pub type greg_t = u64; +pub type __u64 = u64; +pub type __s64 = i64; + +s! { + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_int, + __pad1: ::c_long, + __pad2: ::c_long, + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + __unused: [::c_long; 3], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + __unused: [::c_long; 3], + } + + pub struct statfs { + pub f_type: ::c_uint, + pub f_bsize: ::c_uint, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_uint, + pub f_frsize: ::c_uint, + pub f_flags: ::c_uint, + pub f_spare: [::c_uint; 4], + } + + pub struct statfs64 { + pub f_type: ::c_uint, + pub f_bsize: ::c_uint, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_uint, + pub f_frsize: ::c_uint, + pub f_flags: ::c_uint, + pub f_spare: [::c_uint; 4], + } +} + +s_no_extra_traits! { + // FIXME: This is actually a union. + pub struct fpreg_t { + pub d: ::c_double, + // f: ::c_float, + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for fpreg_t { + fn eq(&self, other: &fpreg_t) -> bool { + self.d == other.d + } + } + + impl Eq for fpreg_t {} + + impl ::fmt::Debug for fpreg_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("fpreg_t") + .field("d", &self.d) + .finish() + } + } + + impl ::hash::Hash for fpreg_t { + fn hash(&self, state: &mut H) { + let d: u64 = unsafe { ::mem::transmute(self.d) }; + d.hash(state); + } + } + } +} + +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; + +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNREFUSED: ::c_int = 111; +pub const ECONNRESET: ::c_int = 104; +pub const EDEADLK: ::c_int = 35; +pub const ENOSYS: ::c_int = 38; +pub const ENOTCONN: ::c_int = 107; +pub const ETIMEDOUT: ::c_int = 110; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_LARGEFILE: ::c_int = 0x8000; +pub const O_NONBLOCK: ::c_int = 2048; +pub const SA_NOCLDWAIT: ::c_int = 2; +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 4; +pub const SIGBUS: ::c_int = 7; +pub const SIGSTKSZ: ::size_t = 0x2000; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const SIG_SETMASK: ::c_int = 2; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const O_NOCTTY: ::c_int = 256; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 0x101000; +pub const O_DIRECT: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const PTRACE_SYSEMU: ::c_int = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 32; + +pub const EDEADLOCK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGCHLD: ::c_int = 17; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const O_ASYNC: ::c_int = 0x2000; + +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; + +pub const EXTPROC: ::tcflag_t = 0x00010000; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const VTIME: usize = 5; +pub const VSWTC: usize = 7; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VSUSP: usize = 10; +pub const VREPRINT: usize = 12; +pub const VDISCARD: usize = 13; +pub const VWERASE: usize = 14; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const ONLCR: ::tcflag_t = 0o000004; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const FF1: ::tcflag_t = 0x00008000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const CBAUD: ::speed_t = 0o010017; +pub const CSIZE: ::tcflag_t = 0o000060; +pub const CS6: ::tcflag_t = 0o000020; +pub const CS7: ::tcflag_t = 0o000040; +pub const CS8: ::tcflag_t = 0o000060; +pub const CSTOPB: ::tcflag_t = 0o000100; +pub const CREAD: ::tcflag_t = 0o000200; +pub const PARENB: ::tcflag_t = 0o000400; +pub const PARODD: ::tcflag_t = 0o001000; +pub const HUPCL: ::tcflag_t = 0o002000; +pub const CLOCAL: ::tcflag_t = 0o004000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; +pub const CIBAUD: ::tcflag_t = 0o02003600000; + +pub const ISIG: ::tcflag_t = 0o000001; +pub const ICANON: ::tcflag_t = 0o000002; +pub const XCASE: ::tcflag_t = 0o000004; +pub const ECHOE: ::tcflag_t = 0o000020; +pub const ECHOK: ::tcflag_t = 0o000040; +pub const ECHONL: ::tcflag_t = 0o000100; +pub const NOFLSH: ::tcflag_t = 0o000200; +pub const ECHOCTL: ::tcflag_t = 0o001000; +pub const ECHOPRT: ::tcflag_t = 0o002000; +pub const ECHOKE: ::tcflag_t = 0o004000; +pub const PENDIN: ::tcflag_t = 0o040000; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const IXON: ::tcflag_t = 0o002000; +pub const IXOFF: ::tcflag_t = 0o010000; + +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_restart_syscall: ::c_long = 7; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_umount: ::c_long = 22; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_alarm: ::c_long = 27; +pub const SYS_pause: ::c_long = 29; +pub const SYS_utime: ::c_long = 30; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_brk: ::c_long = 45; +pub const SYS_signal: ::c_long = 48; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_readdir: ::c_long = 89; +pub const SYS_mmap: ::c_long = 90; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_socketcall: ::c_long = 102; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_lookup_dcookie: ::c_long = 110; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_idle: ::c_long = 112; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_ipc: ::c_long = 117; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_create_module: ::c_long = 127; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_get_kernel_syms: ::c_long = 130; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ +pub const SYS_getdents: ::c_long = 141; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_query_module: ::c_long = 167; +pub const SYS_poll: ::c_long = 168; +pub const SYS_nfsservctl: ::c_long = 169; +pub const SYS_prctl: ::c_long = 172; +pub const SYS_rt_sigreturn: ::c_long = 173; +pub const SYS_rt_sigaction: ::c_long = 174; +pub const SYS_rt_sigprocmask: ::c_long = 175; +pub const SYS_rt_sigpending: ::c_long = 176; +pub const SYS_rt_sigtimedwait: ::c_long = 177; +pub const SYS_rt_sigqueueinfo: ::c_long = 178; +pub const SYS_rt_sigsuspend: ::c_long = 179; +pub const SYS_pread64: ::c_long = 180; +pub const SYS_pwrite64: ::c_long = 181; +pub const SYS_getcwd: ::c_long = 183; +pub const SYS_capget: ::c_long = 184; +pub const SYS_capset: ::c_long = 185; +pub const SYS_sigaltstack: ::c_long = 186; +pub const SYS_sendfile: ::c_long = 187; +pub const SYS_getpmsg: ::c_long = 188; +pub const SYS_putpmsg: ::c_long = 189; +pub const SYS_vfork: ::c_long = 190; +pub const SYS_pivot_root: ::c_long = 217; +pub const SYS_mincore: ::c_long = 218; +pub const SYS_madvise: ::c_long = 219; +pub const SYS_getdents64: ::c_long = 220; +pub const SYS_readahead: ::c_long = 222; +pub const SYS_setxattr: ::c_long = 224; +pub const SYS_lsetxattr: ::c_long = 225; +pub const SYS_fsetxattr: ::c_long = 226; +pub const SYS_getxattr: ::c_long = 227; +pub const SYS_lgetxattr: ::c_long = 228; +pub const SYS_fgetxattr: ::c_long = 229; +pub const SYS_listxattr: ::c_long = 230; +pub const SYS_llistxattr: ::c_long = 231; +pub const SYS_flistxattr: ::c_long = 232; +pub const SYS_removexattr: ::c_long = 233; +pub const SYS_lremovexattr: ::c_long = 234; +pub const SYS_fremovexattr: ::c_long = 235; +pub const SYS_gettid: ::c_long = 236; +pub const SYS_tkill: ::c_long = 237; +pub const SYS_futex: ::c_long = 238; +pub const SYS_sched_setaffinity: ::c_long = 239; +pub const SYS_sched_getaffinity: ::c_long = 240; +pub const SYS_tgkill: ::c_long = 241; +pub const SYS_io_setup: ::c_long = 243; +pub const SYS_io_destroy: ::c_long = 244; +pub const SYS_io_getevents: ::c_long = 245; +pub const SYS_io_submit: ::c_long = 246; +pub const SYS_io_cancel: ::c_long = 247; +pub const SYS_exit_group: ::c_long = 248; +pub const SYS_epoll_create: ::c_long = 249; +pub const SYS_epoll_ctl: ::c_long = 250; +pub const SYS_epoll_wait: ::c_long = 251; +pub const SYS_set_tid_address: ::c_long = 252; +pub const SYS_fadvise64: ::c_long = 253; +pub const SYS_timer_create: ::c_long = 254; +pub const SYS_timer_settime: ::c_long = 255; +pub const SYS_timer_gettime: ::c_long = 256; +pub const SYS_timer_getoverrun: ::c_long = 257; +pub const SYS_timer_delete: ::c_long = 258; +pub const SYS_clock_settime: ::c_long = 259; +pub const SYS_clock_gettime: ::c_long = 260; +pub const SYS_clock_getres: ::c_long = 261; +pub const SYS_clock_nanosleep: ::c_long = 262; +pub const SYS_statfs64: ::c_long = 265; +pub const SYS_fstatfs64: ::c_long = 266; +pub const SYS_remap_file_pages: ::c_long = 267; +pub const SYS_mbind: ::c_long = 268; +pub const SYS_get_mempolicy: ::c_long = 269; +pub const SYS_set_mempolicy: ::c_long = 270; +pub const SYS_mq_open: ::c_long = 271; +pub const SYS_mq_unlink: ::c_long = 272; +pub const SYS_mq_timedsend: ::c_long = 273; +pub const SYS_mq_timedreceive: ::c_long = 274; +pub const SYS_mq_notify: ::c_long = 275; +pub const SYS_mq_getsetattr: ::c_long = 276; +pub const SYS_kexec_load: ::c_long = 277; +pub const SYS_add_key: ::c_long = 278; +pub const SYS_request_key: ::c_long = 279; +pub const SYS_keyctl: ::c_long = 280; +pub const SYS_waitid: ::c_long = 281; +pub const SYS_ioprio_set: ::c_long = 282; +pub const SYS_ioprio_get: ::c_long = 283; +pub const SYS_inotify_init: ::c_long = 284; +pub const SYS_inotify_add_watch: ::c_long = 285; +pub const SYS_inotify_rm_watch: ::c_long = 286; +pub const SYS_migrate_pages: ::c_long = 287; +pub const SYS_openat: ::c_long = 288; +pub const SYS_mkdirat: ::c_long = 289; +pub const SYS_mknodat: ::c_long = 290; +pub const SYS_fchownat: ::c_long = 291; +pub const SYS_futimesat: ::c_long = 292; +pub const SYS_unlinkat: ::c_long = 294; +pub const SYS_renameat: ::c_long = 295; +pub const SYS_linkat: ::c_long = 296; +pub const SYS_symlinkat: ::c_long = 297; +pub const SYS_readlinkat: ::c_long = 298; +pub const SYS_fchmodat: ::c_long = 299; +pub const SYS_faccessat: ::c_long = 300; +pub const SYS_pselect6: ::c_long = 301; +pub const SYS_ppoll: ::c_long = 302; +pub const SYS_unshare: ::c_long = 303; +pub const SYS_set_robust_list: ::c_long = 304; +pub const SYS_get_robust_list: ::c_long = 305; +pub const SYS_splice: ::c_long = 306; +pub const SYS_sync_file_range: ::c_long = 307; +pub const SYS_tee: ::c_long = 308; +pub const SYS_vmsplice: ::c_long = 309; +pub const SYS_move_pages: ::c_long = 310; +pub const SYS_getcpu: ::c_long = 311; +pub const SYS_epoll_pwait: ::c_long = 312; +pub const SYS_utimes: ::c_long = 313; +pub const SYS_fallocate: ::c_long = 314; +pub const SYS_utimensat: ::c_long = 315; +pub const SYS_signalfd: ::c_long = 316; +pub const SYS_timerfd: ::c_long = 317; +pub const SYS_eventfd: ::c_long = 318; +pub const SYS_timerfd_create: ::c_long = 319; +pub const SYS_timerfd_settime: ::c_long = 320; +pub const SYS_timerfd_gettime: ::c_long = 321; +pub const SYS_signalfd4: ::c_long = 322; +pub const SYS_eventfd2: ::c_long = 323; +pub const SYS_inotify_init1: ::c_long = 324; +pub const SYS_pipe2: ::c_long = 325; +pub const SYS_dup3: ::c_long = 326; +pub const SYS_epoll_create1: ::c_long = 327; +pub const SYS_preadv: ::c_long = 328; +pub const SYS_pwritev: ::c_long = 329; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 330; +pub const SYS_perf_event_open: ::c_long = 331; +pub const SYS_fanotify_init: ::c_long = 332; +pub const SYS_fanotify_mark: ::c_long = 333; +pub const SYS_prlimit64: ::c_long = 334; +pub const SYS_name_to_handle_at: ::c_long = 335; +pub const SYS_open_by_handle_at: ::c_long = 336; +pub const SYS_clock_adjtime: ::c_long = 337; +pub const SYS_syncfs: ::c_long = 338; +pub const SYS_setns: ::c_long = 339; +pub const SYS_process_vm_readv: ::c_long = 340; +pub const SYS_process_vm_writev: ::c_long = 341; +pub const SYS_s390_runtime_instr: ::c_long = 342; +pub const SYS_kcmp: ::c_long = 343; +pub const SYS_finit_module: ::c_long = 344; +pub const SYS_sched_setattr: ::c_long = 345; +pub const SYS_sched_getattr: ::c_long = 346; +pub const SYS_renameat2: ::c_long = 347; +pub const SYS_seccomp: ::c_long = 348; +pub const SYS_getrandom: ::c_long = 349; +pub const SYS_memfd_create: ::c_long = 350; +pub const SYS_bpf: ::c_long = 351; +pub const SYS_s390_pci_mmio_write: ::c_long = 352; +pub const SYS_s390_pci_mmio_read: ::c_long = 353; +pub const SYS_execveat: ::c_long = 354; +pub const SYS_userfaultfd: ::c_long = 355; +pub const SYS_membarrier: ::c_long = 356; +pub const SYS_recvmmsg: ::c_long = 357; +pub const SYS_sendmmsg: ::c_long = 358; +pub const SYS_socket: ::c_long = 359; +pub const SYS_socketpair: ::c_long = 360; +pub const SYS_bind: ::c_long = 361; +pub const SYS_connect: ::c_long = 362; +pub const SYS_listen: ::c_long = 363; +pub const SYS_accept4: ::c_long = 364; +pub const SYS_getsockopt: ::c_long = 365; +pub const SYS_setsockopt: ::c_long = 366; +pub const SYS_getsockname: ::c_long = 367; +pub const SYS_getpeername: ::c_long = 368; +pub const SYS_sendto: ::c_long = 369; +pub const SYS_sendmsg: ::c_long = 370; +pub const SYS_recvfrom: ::c_long = 371; +pub const SYS_recvmsg: ::c_long = 372; +pub const SYS_shutdown: ::c_long = 373; +pub const SYS_mlock2: ::c_long = 374; +pub const SYS_copy_file_range: ::c_long = 375; +pub const SYS_preadv2: ::c_long = 376; +pub const SYS_pwritev2: ::c_long = 377; +pub const SYS_lchown: ::c_long = 198; +pub const SYS_setuid: ::c_long = 213; +pub const SYS_getuid: ::c_long = 199; +pub const SYS_setgid: ::c_long = 214; +pub const SYS_getgid: ::c_long = 200; +pub const SYS_geteuid: ::c_long = 201; +pub const SYS_setreuid: ::c_long = 203; +pub const SYS_setregid: ::c_long = 204; +pub const SYS_getrlimit: ::c_long = 191; +pub const SYS_getgroups: ::c_long = 205; +pub const SYS_fchown: ::c_long = 207; +pub const SYS_setresuid: ::c_long = 208; +pub const SYS_setresgid: ::c_long = 210; +pub const SYS_getresgid: ::c_long = 211; +pub const SYS_select: ::c_long = 142; +pub const SYS_getegid: ::c_long = 202; +pub const SYS_setgroups: ::c_long = 206; +pub const SYS_getresuid: ::c_long = 209; +pub const SYS_chown: ::c_long = 212; +pub const SYS_setfsuid: ::c_long = 215; +pub const SYS_setfsgid: ::c_long = 216; +pub const SYS_newfstatat: ::c_long = 293; +pub const SYS_statx: ::c_long = 379; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/align.rs new file mode 100644 index 000000000..94391a01a --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/align.rs @@ -0,0 +1,25 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } + +} + +s! { + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs new file mode 100644 index 000000000..9decf91bc --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -0,0 +1,917 @@ +pub type c_char = i8; +pub type wchar_t = i32; +pub type nlink_t = u64; +pub type blksize_t = ::c_long; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; +pub type greg_t = i64; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + __pad0: ::c_int, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_long; 3], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + __pad0: ::c_int, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __reserved: [::c_long; 3], + } + + pub struct user_regs_struct { + pub r15: ::c_ulong, + pub r14: ::c_ulong, + pub r13: ::c_ulong, + pub r12: ::c_ulong, + pub rbp: ::c_ulong, + pub rbx: ::c_ulong, + pub r11: ::c_ulong, + pub r10: ::c_ulong, + pub r9: ::c_ulong, + pub r8: ::c_ulong, + pub rax: ::c_ulong, + pub rcx: ::c_ulong, + pub rdx: ::c_ulong, + pub rsi: ::c_ulong, + pub rdi: ::c_ulong, + pub orig_rax: ::c_ulong, + pub rip: ::c_ulong, + pub cs: ::c_ulong, + pub eflags: ::c_ulong, + pub rsp: ::c_ulong, + pub ss: ::c_ulong, + pub fs_base: ::c_ulong, + pub gs_base: ::c_ulong, + pub ds: ::c_ulong, + pub es: ::c_ulong, + pub fs: ::c_ulong, + pub gs: ::c_ulong, + } + + pub struct user { + pub regs: user_regs_struct, + pub u_fpvalid: ::c_int, + pub i387: user_fpregs_struct, + pub u_tsize: ::c_ulong, + pub u_dsize: ::c_ulong, + pub u_ssize: ::c_ulong, + pub start_code: ::c_ulong, + pub start_stack: ::c_ulong, + pub signal: ::c_long, + __reserved: ::c_int, + #[cfg(target_pointer_width = "32")] + __pad1: u32, + pub u_ar0: *mut user_regs_struct, + #[cfg(target_pointer_width = "32")] + __pad2: u32, + pub u_fpstate: *mut user_fpregs_struct, + pub magic: ::c_ulong, + pub u_comm: [::c_char; 32], + pub u_debugreg: [::c_ulong; 8], + } + + // GitHub repo: ifduyue/musl/ + // commit: b4b1e10364c8737a632be61582e05a8d3acf5690 + // file: arch/x86_64/bits/signal.h#L80-L84 + pub struct mcontext_t { + pub gregs: [greg_t; 23], + __private: [u64; 9], + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_int, + __unused1: ::c_long, + __unused2: ::c_long + } +} + +s_no_extra_traits! { + pub struct user_fpregs_struct { + pub cwd: ::c_ushort, + pub swd: ::c_ushort, + pub ftw: ::c_ushort, + pub fop: ::c_ushort, + pub rip: ::c_ulong, + pub rdp: ::c_ulong, + pub mxcsr: ::c_uint, + pub mxcr_mask: ::c_uint, + pub st_space: [::c_uint; 32], + pub xmm_space: [::c_uint; 64], + padding: [::c_uint; 24], + } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask: ::sigset_t, + __private: [u8; 512], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for user_fpregs_struct { + fn eq(&self, other: &user_fpregs_struct) -> bool { + self.cwd == other.cwd + && self.swd == other.swd + && self.ftw == other.ftw + && self.fop == other.fop + && self.rip == other.rip + && self.rdp == other.rdp + && self.mxcsr == other.mxcsr + && self.mxcr_mask == other.mxcr_mask + && self.st_space == other.st_space + && self + .xmm_space + .iter() + .zip(other.xmm_space.iter()) + .all(|(a,b)| a == b) + // Ignore padding field + } + } + + impl Eq for user_fpregs_struct {} + + impl ::fmt::Debug for user_fpregs_struct { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("user_fpregs_struct") + .field("cwd", &self.cwd) + .field("ftw", &self.ftw) + .field("fop", &self.fop) + .field("rip", &self.rip) + .field("rdp", &self.rdp) + .field("mxcsr", &self.mxcsr) + .field("mxcr_mask", &self.mxcr_mask) + .field("st_space", &self.st_space) + // FIXME: .field("xmm_space", &self.xmm_space) + // Ignore padding field + .finish() + } + } + + impl ::hash::Hash for user_fpregs_struct { + fn hash(&self, state: &mut H) { + self.cwd.hash(state); + self.ftw.hash(state); + self.fop.hash(state); + self.rip.hash(state); + self.rdp.hash(state); + self.mxcsr.hash(state); + self.mxcr_mask.hash(state); + self.st_space.hash(state); + self.xmm_space.hash(state); + // Ignore padding field + } + } + + impl PartialEq for ucontext_t { + fn eq(&self, other: &ucontext_t) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_sigmask == other.uc_sigmask + && self + .__private + .iter() + .zip(other.__private.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for ucontext_t {} + + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_flags) + .field("uc_link", &self.uc_link) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field("uc_sigmask", &self.uc_sigmask) + // Ignore __private field + .finish() + } + } + + impl ::hash::Hash for ucontext_t { + fn hash(&self, state: &mut H) { + self.uc_flags.hash(state); + self.uc_link.hash(state); + self.uc_stack.hash(state); + self.uc_mcontext.hash(state); + self.uc_sigmask.hash(state); + self.__private.hash(state); + } + } + } +} + +// Syscall table + +pub const SYS_read: ::c_long = 0; +pub const SYS_write: ::c_long = 1; +pub const SYS_open: ::c_long = 2; +pub const SYS_close: ::c_long = 3; +pub const SYS_stat: ::c_long = 4; +pub const SYS_fstat: ::c_long = 5; +pub const SYS_lstat: ::c_long = 6; +pub const SYS_poll: ::c_long = 7; +pub const SYS_lseek: ::c_long = 8; +pub const SYS_mmap: ::c_long = 9; +pub const SYS_mprotect: ::c_long = 10; +pub const SYS_munmap: ::c_long = 11; +pub const SYS_brk: ::c_long = 12; +pub const SYS_rt_sigaction: ::c_long = 13; +pub const SYS_rt_sigprocmask: ::c_long = 14; +pub const SYS_rt_sigreturn: ::c_long = 15; +pub const SYS_ioctl: ::c_long = 16; +pub const SYS_pread64: ::c_long = 17; +pub const SYS_pwrite64: ::c_long = 18; +pub const SYS_readv: ::c_long = 19; +pub const SYS_writev: ::c_long = 20; +pub const SYS_access: ::c_long = 21; +pub const SYS_pipe: ::c_long = 22; +pub const SYS_select: ::c_long = 23; +pub const SYS_sched_yield: ::c_long = 24; +pub const SYS_mremap: ::c_long = 25; +pub const SYS_msync: ::c_long = 26; +pub const SYS_mincore: ::c_long = 27; +pub const SYS_madvise: ::c_long = 28; +pub const SYS_shmget: ::c_long = 29; +pub const SYS_shmat: ::c_long = 30; +pub const SYS_shmctl: ::c_long = 31; +pub const SYS_dup: ::c_long = 32; +pub const SYS_dup2: ::c_long = 33; +pub const SYS_pause: ::c_long = 34; +pub const SYS_nanosleep: ::c_long = 35; +pub const SYS_getitimer: ::c_long = 36; +pub const SYS_alarm: ::c_long = 37; +pub const SYS_setitimer: ::c_long = 38; +pub const SYS_getpid: ::c_long = 39; +pub const SYS_sendfile: ::c_long = 40; +pub const SYS_socket: ::c_long = 41; +pub const SYS_connect: ::c_long = 42; +pub const SYS_accept: ::c_long = 43; +pub const SYS_sendto: ::c_long = 44; +pub const SYS_recvfrom: ::c_long = 45; +pub const SYS_sendmsg: ::c_long = 46; +pub const SYS_recvmsg: ::c_long = 47; +pub const SYS_shutdown: ::c_long = 48; +pub const SYS_bind: ::c_long = 49; +pub const SYS_listen: ::c_long = 50; +pub const SYS_getsockname: ::c_long = 51; +pub const SYS_getpeername: ::c_long = 52; +pub const SYS_socketpair: ::c_long = 53; +pub const SYS_setsockopt: ::c_long = 54; +pub const SYS_getsockopt: ::c_long = 55; +pub const SYS_clone: ::c_long = 56; +pub const SYS_fork: ::c_long = 57; +pub const SYS_vfork: ::c_long = 58; +pub const SYS_execve: ::c_long = 59; +pub const SYS_exit: ::c_long = 60; +pub const SYS_wait4: ::c_long = 61; +pub const SYS_kill: ::c_long = 62; +pub const SYS_uname: ::c_long = 63; +pub const SYS_semget: ::c_long = 64; +pub const SYS_semop: ::c_long = 65; +pub const SYS_semctl: ::c_long = 66; +pub const SYS_shmdt: ::c_long = 67; +pub const SYS_msgget: ::c_long = 68; +pub const SYS_msgsnd: ::c_long = 69; +pub const SYS_msgrcv: ::c_long = 70; +pub const SYS_msgctl: ::c_long = 71; +pub const SYS_fcntl: ::c_long = 72; +pub const SYS_flock: ::c_long = 73; +pub const SYS_fsync: ::c_long = 74; +pub const SYS_fdatasync: ::c_long = 75; +pub const SYS_truncate: ::c_long = 76; +pub const SYS_ftruncate: ::c_long = 77; +pub const SYS_getdents: ::c_long = 78; +pub const SYS_getcwd: ::c_long = 79; +pub const SYS_chdir: ::c_long = 80; +pub const SYS_fchdir: ::c_long = 81; +pub const SYS_rename: ::c_long = 82; +pub const SYS_mkdir: ::c_long = 83; +pub const SYS_rmdir: ::c_long = 84; +pub const SYS_creat: ::c_long = 85; +pub const SYS_link: ::c_long = 86; +pub const SYS_unlink: ::c_long = 87; +pub const SYS_symlink: ::c_long = 88; +pub const SYS_readlink: ::c_long = 89; +pub const SYS_chmod: ::c_long = 90; +pub const SYS_fchmod: ::c_long = 91; +pub const SYS_chown: ::c_long = 92; +pub const SYS_fchown: ::c_long = 93; +pub const SYS_lchown: ::c_long = 94; +pub const SYS_umask: ::c_long = 95; +pub const SYS_gettimeofday: ::c_long = 96; +pub const SYS_getrlimit: ::c_long = 97; +pub const SYS_getrusage: ::c_long = 98; +pub const SYS_sysinfo: ::c_long = 99; +pub const SYS_times: ::c_long = 100; +pub const SYS_ptrace: ::c_long = 101; +pub const SYS_getuid: ::c_long = 102; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_getgid: ::c_long = 104; +pub const SYS_setuid: ::c_long = 105; +pub const SYS_setgid: ::c_long = 106; +pub const SYS_geteuid: ::c_long = 107; +pub const SYS_getegid: ::c_long = 108; +pub const SYS_setpgid: ::c_long = 109; +pub const SYS_getppid: ::c_long = 110; +pub const SYS_getpgrp: ::c_long = 111; +pub const SYS_setsid: ::c_long = 112; +pub const SYS_setreuid: ::c_long = 113; +pub const SYS_setregid: ::c_long = 114; +pub const SYS_getgroups: ::c_long = 115; +pub const SYS_setgroups: ::c_long = 116; +pub const SYS_setresuid: ::c_long = 117; +pub const SYS_getresuid: ::c_long = 118; +pub const SYS_setresgid: ::c_long = 119; +pub const SYS_getresgid: ::c_long = 120; +pub const SYS_getpgid: ::c_long = 121; +pub const SYS_setfsuid: ::c_long = 122; +pub const SYS_setfsgid: ::c_long = 123; +pub const SYS_getsid: ::c_long = 124; +pub const SYS_capget: ::c_long = 125; +pub const SYS_capset: ::c_long = 126; +pub const SYS_rt_sigpending: ::c_long = 127; +pub const SYS_rt_sigtimedwait: ::c_long = 128; +pub const SYS_rt_sigqueueinfo: ::c_long = 129; +pub const SYS_rt_sigsuspend: ::c_long = 130; +pub const SYS_sigaltstack: ::c_long = 131; +pub const SYS_utime: ::c_long = 132; +pub const SYS_mknod: ::c_long = 133; +pub const SYS_uselib: ::c_long = 134; +pub const SYS_personality: ::c_long = 135; +pub const SYS_ustat: ::c_long = 136; +pub const SYS_statfs: ::c_long = 137; +pub const SYS_fstatfs: ::c_long = 138; +pub const SYS_sysfs: ::c_long = 139; +pub const SYS_getpriority: ::c_long = 140; +pub const SYS_setpriority: ::c_long = 141; +pub const SYS_sched_setparam: ::c_long = 142; +pub const SYS_sched_getparam: ::c_long = 143; +pub const SYS_sched_setscheduler: ::c_long = 144; +pub const SYS_sched_getscheduler: ::c_long = 145; +pub const SYS_sched_get_priority_max: ::c_long = 146; +pub const SYS_sched_get_priority_min: ::c_long = 147; +pub const SYS_sched_rr_get_interval: ::c_long = 148; +pub const SYS_mlock: ::c_long = 149; +pub const SYS_munlock: ::c_long = 150; +pub const SYS_mlockall: ::c_long = 151; +pub const SYS_munlockall: ::c_long = 152; +pub const SYS_vhangup: ::c_long = 153; +pub const SYS_modify_ldt: ::c_long = 154; +pub const SYS_pivot_root: ::c_long = 155; +pub const SYS__sysctl: ::c_long = 156; +pub const SYS_prctl: ::c_long = 157; +pub const SYS_arch_prctl: ::c_long = 158; +pub const SYS_adjtimex: ::c_long = 159; +pub const SYS_setrlimit: ::c_long = 160; +pub const SYS_chroot: ::c_long = 161; +pub const SYS_sync: ::c_long = 162; +pub const SYS_acct: ::c_long = 163; +pub const SYS_settimeofday: ::c_long = 164; +pub const SYS_mount: ::c_long = 165; +pub const SYS_umount2: ::c_long = 166; +pub const SYS_swapon: ::c_long = 167; +pub const SYS_swapoff: ::c_long = 168; +pub const SYS_reboot: ::c_long = 169; +pub const SYS_sethostname: ::c_long = 170; +pub const SYS_setdomainname: ::c_long = 171; +pub const SYS_iopl: ::c_long = 172; +pub const SYS_ioperm: ::c_long = 173; +pub const SYS_create_module: ::c_long = 174; +pub const SYS_init_module: ::c_long = 175; +pub const SYS_delete_module: ::c_long = 176; +pub const SYS_get_kernel_syms: ::c_long = 177; +pub const SYS_query_module: ::c_long = 178; +pub const SYS_quotactl: ::c_long = 179; +pub const SYS_nfsservctl: ::c_long = 180; +pub const SYS_getpmsg: ::c_long = 181; +pub const SYS_putpmsg: ::c_long = 182; +pub const SYS_afs_syscall: ::c_long = 183; +pub const SYS_tuxcall: ::c_long = 184; +pub const SYS_security: ::c_long = 185; +pub const SYS_gettid: ::c_long = 186; +pub const SYS_readahead: ::c_long = 187; +pub const SYS_setxattr: ::c_long = 188; +pub const SYS_lsetxattr: ::c_long = 189; +pub const SYS_fsetxattr: ::c_long = 190; +pub const SYS_getxattr: ::c_long = 191; +pub const SYS_lgetxattr: ::c_long = 192; +pub const SYS_fgetxattr: ::c_long = 193; +pub const SYS_listxattr: ::c_long = 194; +pub const SYS_llistxattr: ::c_long = 195; +pub const SYS_flistxattr: ::c_long = 196; +pub const SYS_removexattr: ::c_long = 197; +pub const SYS_lremovexattr: ::c_long = 198; +pub const SYS_fremovexattr: ::c_long = 199; +pub const SYS_tkill: ::c_long = 200; +pub const SYS_time: ::c_long = 201; +pub const SYS_futex: ::c_long = 202; +pub const SYS_sched_setaffinity: ::c_long = 203; +pub const SYS_sched_getaffinity: ::c_long = 204; +pub const SYS_set_thread_area: ::c_long = 205; +pub const SYS_io_setup: ::c_long = 206; +pub const SYS_io_destroy: ::c_long = 207; +pub const SYS_io_getevents: ::c_long = 208; +pub const SYS_io_submit: ::c_long = 209; +pub const SYS_io_cancel: ::c_long = 210; +pub const SYS_get_thread_area: ::c_long = 211; +pub const SYS_lookup_dcookie: ::c_long = 212; +pub const SYS_epoll_create: ::c_long = 213; +pub const SYS_epoll_ctl_old: ::c_long = 214; +pub const SYS_epoll_wait_old: ::c_long = 215; +pub const SYS_remap_file_pages: ::c_long = 216; +pub const SYS_getdents64: ::c_long = 217; +pub const SYS_set_tid_address: ::c_long = 218; +pub const SYS_restart_syscall: ::c_long = 219; +pub const SYS_semtimedop: ::c_long = 220; +pub const SYS_fadvise64: ::c_long = 221; +pub const SYS_timer_create: ::c_long = 222; +pub const SYS_timer_settime: ::c_long = 223; +pub const SYS_timer_gettime: ::c_long = 224; +pub const SYS_timer_getoverrun: ::c_long = 225; +pub const SYS_timer_delete: ::c_long = 226; +pub const SYS_clock_settime: ::c_long = 227; +pub const SYS_clock_gettime: ::c_long = 228; +pub const SYS_clock_getres: ::c_long = 229; +pub const SYS_clock_nanosleep: ::c_long = 230; +pub const SYS_exit_group: ::c_long = 231; +pub const SYS_epoll_wait: ::c_long = 232; +pub const SYS_epoll_ctl: ::c_long = 233; +pub const SYS_tgkill: ::c_long = 234; +pub const SYS_utimes: ::c_long = 235; +pub const SYS_vserver: ::c_long = 236; +pub const SYS_mbind: ::c_long = 237; +pub const SYS_set_mempolicy: ::c_long = 238; +pub const SYS_get_mempolicy: ::c_long = 239; +pub const SYS_mq_open: ::c_long = 240; +pub const SYS_mq_unlink: ::c_long = 241; +pub const SYS_mq_timedsend: ::c_long = 242; +pub const SYS_mq_timedreceive: ::c_long = 243; +pub const SYS_mq_notify: ::c_long = 244; +pub const SYS_mq_getsetattr: ::c_long = 245; +pub const SYS_kexec_load: ::c_long = 246; +pub const SYS_waitid: ::c_long = 247; +pub const SYS_add_key: ::c_long = 248; +pub const SYS_request_key: ::c_long = 249; +pub const SYS_keyctl: ::c_long = 250; +pub const SYS_ioprio_set: ::c_long = 251; +pub const SYS_ioprio_get: ::c_long = 252; +pub const SYS_inotify_init: ::c_long = 253; +pub const SYS_inotify_add_watch: ::c_long = 254; +pub const SYS_inotify_rm_watch: ::c_long = 255; +pub const SYS_migrate_pages: ::c_long = 256; +pub const SYS_openat: ::c_long = 257; +pub const SYS_mkdirat: ::c_long = 258; +pub const SYS_mknodat: ::c_long = 259; +pub const SYS_fchownat: ::c_long = 260; +pub const SYS_futimesat: ::c_long = 261; +pub const SYS_newfstatat: ::c_long = 262; +pub const SYS_unlinkat: ::c_long = 263; +pub const SYS_renameat: ::c_long = 264; +pub const SYS_linkat: ::c_long = 265; +pub const SYS_symlinkat: ::c_long = 266; +pub const SYS_readlinkat: ::c_long = 267; +pub const SYS_fchmodat: ::c_long = 268; +pub const SYS_faccessat: ::c_long = 269; +pub const SYS_pselect6: ::c_long = 270; +pub const SYS_ppoll: ::c_long = 271; +pub const SYS_unshare: ::c_long = 272; +pub const SYS_set_robust_list: ::c_long = 273; +pub const SYS_get_robust_list: ::c_long = 274; +pub const SYS_splice: ::c_long = 275; +pub const SYS_tee: ::c_long = 276; +pub const SYS_sync_file_range: ::c_long = 277; +pub const SYS_vmsplice: ::c_long = 278; +pub const SYS_move_pages: ::c_long = 279; +pub const SYS_utimensat: ::c_long = 280; +pub const SYS_epoll_pwait: ::c_long = 281; +pub const SYS_signalfd: ::c_long = 282; +pub const SYS_timerfd_create: ::c_long = 283; +pub const SYS_eventfd: ::c_long = 284; +pub const SYS_fallocate: ::c_long = 285; +pub const SYS_timerfd_settime: ::c_long = 286; +pub const SYS_timerfd_gettime: ::c_long = 287; +pub const SYS_accept4: ::c_long = 288; +pub const SYS_signalfd4: ::c_long = 289; +pub const SYS_eventfd2: ::c_long = 290; +pub const SYS_epoll_create1: ::c_long = 291; +pub const SYS_dup3: ::c_long = 292; +pub const SYS_pipe2: ::c_long = 293; +pub const SYS_inotify_init1: ::c_long = 294; +pub const SYS_preadv: ::c_long = 295; +pub const SYS_pwritev: ::c_long = 296; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 297; +pub const SYS_perf_event_open: ::c_long = 298; +pub const SYS_recvmmsg: ::c_long = 299; +pub const SYS_fanotify_init: ::c_long = 300; +pub const SYS_fanotify_mark: ::c_long = 301; +pub const SYS_prlimit64: ::c_long = 302; +pub const SYS_name_to_handle_at: ::c_long = 303; +pub const SYS_open_by_handle_at: ::c_long = 304; +pub const SYS_clock_adjtime: ::c_long = 305; +pub const SYS_syncfs: ::c_long = 306; +pub const SYS_sendmmsg: ::c_long = 307; +pub const SYS_setns: ::c_long = 308; +pub const SYS_getcpu: ::c_long = 309; +pub const SYS_process_vm_readv: ::c_long = 310; +pub const SYS_process_vm_writev: ::c_long = 311; +pub const SYS_kcmp: ::c_long = 312; +pub const SYS_finit_module: ::c_long = 313; +pub const SYS_sched_setattr: ::c_long = 314; +pub const SYS_sched_getattr: ::c_long = 315; +pub const SYS_renameat2: ::c_long = 316; +pub const SYS_seccomp: ::c_long = 317; +pub const SYS_getrandom: ::c_long = 318; +pub const SYS_memfd_create: ::c_long = 319; +pub const SYS_kexec_file_load: ::c_long = 320; +pub const SYS_bpf: ::c_long = 321; +pub const SYS_execveat: ::c_long = 322; +pub const SYS_userfaultfd: ::c_long = 323; +pub const SYS_membarrier: ::c_long = 324; +pub const SYS_mlock2: ::c_long = 325; +pub const SYS_copy_file_range: ::c_long = 326; +pub const SYS_preadv2: ::c_long = 327; +pub const SYS_pwritev2: ::c_long = 328; +pub const SYS_pkey_mprotect: ::c_long = 329; +pub const SYS_pkey_alloc: ::c_long = 330; +pub const SYS_pkey_free: ::c_long = 331; +pub const SYS_statx: ::c_long = 332; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +// offsets in user_regs_structs, from sys/reg.h +pub const R15: ::c_int = 0; +pub const R14: ::c_int = 1; +pub const R13: ::c_int = 2; +pub const R12: ::c_int = 3; +pub const RBP: ::c_int = 4; +pub const RBX: ::c_int = 5; +pub const R11: ::c_int = 6; +pub const R10: ::c_int = 7; +pub const R9: ::c_int = 8; +pub const R8: ::c_int = 9; +pub const RAX: ::c_int = 10; +pub const RCX: ::c_int = 11; +pub const RDX: ::c_int = 12; +pub const RSI: ::c_int = 13; +pub const RDI: ::c_int = 14; +pub const ORIG_RAX: ::c_int = 15; +pub const RIP: ::c_int = 16; +pub const CS: ::c_int = 17; +pub const EFLAGS: ::c_int = 18; +pub const RSP: ::c_int = 19; +pub const SS: ::c_int = 20; +pub const FS_BASE: ::c_int = 21; +pub const GS_BASE: ::c_int = 22; +pub const DS: ::c_int = 23; +pub const ES: ::c_int = 24; +pub const FS: ::c_int = 25; +pub const GS: ::c_int = 26; + +// offsets in mcontext_t.gregs from bits/signal.h +// GitHub repo: ifduyue/musl/ +// commit: b4b1e10364c8737a632be61582e05a8d3acf5690 +// file: arch/x86_64/bits/signal.h#L9-L56 +pub const REG_R8: ::c_int = 0; +pub const REG_R9: ::c_int = 1; +pub const REG_R10: ::c_int = 2; +pub const REG_R11: ::c_int = 3; +pub const REG_R12: ::c_int = 4; +pub const REG_R13: ::c_int = 5; +pub const REG_R14: ::c_int = 6; +pub const REG_R15: ::c_int = 7; +pub const REG_RDI: ::c_int = 8; +pub const REG_RSI: ::c_int = 9; +pub const REG_RBP: ::c_int = 10; +pub const REG_RBX: ::c_int = 11; +pub const REG_RDX: ::c_int = 12; +pub const REG_RAX: ::c_int = 13; +pub const REG_RCX: ::c_int = 14; +pub const REG_RSP: ::c_int = 15; +pub const REG_RIP: ::c_int = 16; +pub const REG_EFL: ::c_int = 17; +pub const REG_CSGSFS: ::c_int = 18; +pub const REG_ERR: ::c_int = 19; +pub const REG_TRAPNO: ::c_int = 20; +pub const REG_OLDMASK: ::c_int = 21; +pub const REG_CR2: ::c_int = 22; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_32BIT: ::c_int = 0x0040; +pub const O_APPEND: ::c_int = 1024; +pub const O_DIRECT: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_LARGEFILE: ::c_int = 0; +pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_ASYNC: ::c_int = 0x2000; + +pub const PTRACE_SYSEMU: ::c_int = 31; +pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 32; + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; + +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ERFKILL: ::c_int = 132; +pub const EHWPOISON: ::c_int = 133; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + +pub const VEOF: usize = 4; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::c_int = 0x00000800; +pub const TAB2: ::c_int = 0x00001000; +pub const TAB3: ::c_int = 0x00001800; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const EDEADLK: ::c_int = 35; +pub const EDEADLOCK: ::c_int = EDEADLK; + +pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/lfs64.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/lfs64.rs new file mode 100644 index 000000000..27c1d2583 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/lfs64.rs @@ -0,0 +1,241 @@ +#[inline] +pub unsafe extern "C" fn creat64(path: *const ::c_char, mode: ::mode_t) -> ::c_int { + ::creat(path, mode) +} + +#[inline] +pub unsafe extern "C" fn fallocate64( + fd: ::c_int, + mode: ::c_int, + offset: ::off64_t, + len: ::off64_t, +) -> ::c_int { + ::fallocate(fd, mode, offset, len) +} + +#[inline] +pub unsafe extern "C" fn fgetpos64(stream: *mut ::FILE, pos: *mut ::fpos64_t) -> ::c_int { + ::fgetpos(stream, pos as *mut _) +} + +#[inline] +pub unsafe extern "C" fn fopen64(pathname: *const ::c_char, mode: *const ::c_char) -> *mut ::FILE { + ::fopen(pathname, mode) +} + +#[inline] +pub unsafe extern "C" fn freopen64( + pathname: *const ::c_char, + mode: *const ::c_char, + stream: *mut ::FILE, +) -> *mut ::FILE { + ::freopen(pathname, mode, stream) +} + +#[inline] +pub unsafe extern "C" fn fseeko64( + stream: *mut ::FILE, + offset: ::off64_t, + whence: ::c_int, +) -> ::c_int { + ::fseeko(stream, offset, whence) +} + +#[inline] +pub unsafe extern "C" fn fsetpos64(stream: *mut ::FILE, pos: *const ::fpos64_t) -> ::c_int { + ::fsetpos(stream, pos as *mut _) +} + +#[inline] +pub unsafe extern "C" fn fstat64(fildes: ::c_int, buf: *mut ::stat64) -> ::c_int { + ::fstat(fildes, buf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn fstatat64( + fd: ::c_int, + path: *const ::c_char, + buf: *mut ::stat64, + flag: ::c_int, +) -> ::c_int { + ::fstatat(fd, path, buf as *mut _, flag) +} + +#[inline] +pub unsafe extern "C" fn fstatfs64(fd: ::c_int, buf: *mut ::statfs64) -> ::c_int { + ::fstatfs(fd, buf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn fstatvfs64(fd: ::c_int, buf: *mut ::statvfs64) -> ::c_int { + ::fstatvfs(fd, buf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn ftello64(stream: *mut ::FILE) -> ::off64_t { + ::ftello(stream) +} + +#[inline] +pub unsafe extern "C" fn ftruncate64(fd: ::c_int, length: ::off64_t) -> ::c_int { + ::ftruncate(fd, length) +} + +#[inline] +pub unsafe extern "C" fn getrlimit64(resource: ::c_int, rlim: *mut ::rlimit64) -> ::c_int { + ::getrlimit(resource, rlim as *mut _) +} + +#[inline] +pub unsafe extern "C" fn lseek64(fd: ::c_int, offset: ::off64_t, whence: ::c_int) -> ::off64_t { + ::lseek(fd, offset, whence) +} + +#[inline] +pub unsafe extern "C" fn lstat64(path: *const ::c_char, buf: *mut ::stat64) -> ::c_int { + ::lstat(path, buf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn mmap64( + addr: *mut ::c_void, + length: ::size_t, + prot: ::c_int, + flags: ::c_int, + fd: ::c_int, + offset: ::off64_t, +) -> *mut ::c_void { + ::mmap(addr, length, prot, flags, fd, offset) +} + +// These functions are variadic in the C ABI since the `mode` argument is "optional". Variadic +// `extern "C"` functions are unstable in Rust so we cannot write a shim function for these +// entrypoints. See https://github.com/rust-lang/rust/issues/44930. +// +// These aliases are mostly fine though, neither function takes a LFS64-namespaced type as an +// argument, nor do their names clash with any declared types. +pub use open as open64; +pub use openat as openat64; + +#[inline] +pub unsafe extern "C" fn posix_fadvise64( + fd: ::c_int, + offset: ::off64_t, + len: ::off64_t, + advice: ::c_int, +) -> ::c_int { + ::posix_fadvise(fd, offset, len, advice) +} + +#[inline] +pub unsafe extern "C" fn posix_fallocate64( + fd: ::c_int, + offset: ::off64_t, + len: ::off64_t, +) -> ::c_int { + ::posix_fallocate(fd, offset, len) +} + +#[inline] +pub unsafe extern "C" fn pread64( + fd: ::c_int, + buf: *mut ::c_void, + count: ::size_t, + offset: ::off64_t, +) -> ::ssize_t { + ::pread(fd, buf, count, offset) +} + +#[inline] +pub unsafe extern "C" fn preadv64( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, +) -> ::ssize_t { + ::preadv(fd, iov, iovcnt, offset) +} + +#[inline] +pub unsafe extern "C" fn prlimit64( + pid: ::pid_t, + resource: ::c_int, + new_limit: *const ::rlimit64, + old_limit: *mut ::rlimit64, +) -> ::c_int { + ::prlimit(pid, resource, new_limit as *mut _, old_limit as *mut _) +} + +#[inline] +pub unsafe extern "C" fn pwrite64( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + offset: ::off64_t, +) -> ::ssize_t { + ::pwrite(fd, buf, count, offset) +} + +#[inline] +pub unsafe extern "C" fn pwritev64( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, +) -> ::ssize_t { + ::pwritev(fd, iov, iovcnt, offset) +} + +#[inline] +pub unsafe extern "C" fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64 { + ::readdir(dirp) as *mut _ +} + +#[inline] +pub unsafe extern "C" fn readdir64_r( + dirp: *mut ::DIR, + entry: *mut ::dirent64, + result: *mut *mut ::dirent64, +) -> ::c_int { + ::readdir_r(dirp, entry as *mut _, result as *mut _) +} + +#[inline] +pub unsafe extern "C" fn sendfile64( + out_fd: ::c_int, + in_fd: ::c_int, + offset: *mut ::off64_t, + count: ::size_t, +) -> ::ssize_t { + ::sendfile(out_fd, in_fd, offset, count) +} + +#[inline] +pub unsafe extern "C" fn setrlimit64(resource: ::c_int, rlim: *const ::rlimit64) -> ::c_int { + ::setrlimit(resource, rlim as *mut _) +} + +#[inline] +pub unsafe extern "C" fn stat64(pathname: *const ::c_char, statbuf: *mut ::stat64) -> ::c_int { + ::stat(pathname, statbuf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn statfs64(pathname: *const ::c_char, buf: *mut ::statfs64) -> ::c_int { + ::statfs(pathname, buf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn statvfs64(path: *const ::c_char, buf: *mut ::statvfs64) -> ::c_int { + ::statvfs(path, buf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn tmpfile64() -> *mut ::FILE { + ::tmpfile() +} + +#[inline] +pub unsafe extern "C" fn truncate64(path: *const ::c_char, length: ::off64_t) -> ::c_int { + ::truncate(path, length) +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/mod.rs new file mode 100644 index 000000000..4c6053389 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/mod.rs @@ -0,0 +1,806 @@ +pub type pthread_t = *mut ::c_void; +pub type clock_t = c_long; +#[cfg_attr( + not(feature = "rustc-dep-of-std"), + deprecated( + since = "0.2.80", + note = "This type is changed to 64-bit in musl 1.2.0, \ + we'll follow that change in the future release. \ + See #1848 for more info." + ) +)] +pub type time_t = c_long; +pub type suseconds_t = c_long; +pub type ino_t = u64; +pub type off_t = i64; +pub type blkcnt_t = i64; + +pub type shmatt_t = ::c_ulong; +pub type msgqnum_t = ::c_ulong; +pub type msglen_t = ::c_ulong; +pub type fsblkcnt_t = ::c_ulonglong; +pub type fsfilcnt_t = ::c_ulonglong; +pub type rlim_t = ::c_ulonglong; + +cfg_if! { + if #[cfg(doc)] { + // Used in `linux::arch` to define ioctl constants. + pub(crate) type Ioctl = ::c_int; + } else { + #[doc(hidden)] + pub type Ioctl = ::c_int; + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + #[repr(C)] + struct siginfo_sigfault { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + si_addr: *mut ::c_void, + } + (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_si_value { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + _si_timerid: ::c_int, + _si_overrun: ::c_int, + si_value: ::sigval, + } + (*(self as *const siginfo_t as *const siginfo_si_value)).si_value + } +} + +cfg_if! { + if #[cfg(libc_union)] { + // Internal, for casts to access union fields + #[repr(C)] + struct sifields_sigchld { + si_pid: ::pid_t, + si_uid: ::uid_t, + si_status: ::c_int, + si_utime: ::c_long, + si_stime: ::c_long, + } + impl ::Copy for sifields_sigchld {} + impl ::Clone for sifields_sigchld { + fn clone(&self) -> sifields_sigchld { + *self + } + } + + // Internal, for casts to access union fields + #[repr(C)] + union sifields { + _align_pointer: *mut ::c_void, + sigchld: sifields_sigchld, + } + + // Internal, for casts to access union fields. Note that some variants + // of sifields start with a pointer, which makes the alignment of + // sifields vary on 32-bit and 64-bit architectures. + #[repr(C)] + struct siginfo_f { + _siginfo_base: [::c_int; 3], + sifields: sifields, + } + + impl siginfo_t { + unsafe fn sifields(&self) -> &sifields { + &(*(self as *const siginfo_t as *const siginfo_f)).sifields + } + + pub unsafe fn si_pid(&self) -> ::pid_t { + self.sifields().sigchld.si_pid + } + + pub unsafe fn si_uid(&self) -> ::uid_t { + self.sifields().sigchld.si_uid + } + + pub unsafe fn si_status(&self) -> ::c_int { + self.sifields().sigchld.si_status + } + + pub unsafe fn si_utime(&self) -> ::c_long { + self.sifields().sigchld.si_utime + } + + pub unsafe fn si_stime(&self) -> ::c_long { + self.sifields().sigchld.si_stime + } + } + } +} + +s! { + pub struct aiocb { + pub aio_fildes: ::c_int, + pub aio_lio_opcode: ::c_int, + pub aio_reqprio: ::c_int, + pub aio_buf: *mut ::c_void, + pub aio_nbytes: ::size_t, + pub aio_sigevent: ::sigevent, + __td: *mut ::c_void, + __lock: [::c_int; 2], + __err: ::c_int, + __ret: ::ssize_t, + pub aio_offset: off_t, + __next: *mut ::c_void, + __prev: *mut ::c_void, + #[cfg(target_pointer_width = "32")] + __dummy4: [::c_char; 24], + #[cfg(target_pointer_width = "64")] + __dummy4: [::c_char; 16], + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + #[cfg(target_endian = "little")] + pub f_fsid: ::c_ulong, + #[cfg(target_pointer_width = "32")] + __f_unused: ::c_int, + #[cfg(target_endian = "big")] + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; ::NCCS], + pub __c_ispeed: ::speed_t, + pub __c_ospeed: ::speed_t, + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct regex_t { + __re_nsub: ::size_t, + __opaque: *mut ::c_void, + __padding: [*mut ::c_void; 4usize], + __nsub2: ::size_t, + __padding2: ::c_char, + } + + pub struct rtentry { + pub rt_pad1: ::c_ulong, + pub rt_dst: ::sockaddr, + pub rt_gateway: ::sockaddr, + pub rt_genmask: ::sockaddr, + pub rt_flags: ::c_ushort, + pub rt_pad2: ::c_short, + pub rt_pad3: ::c_ulong, + pub rt_tos: ::c_uchar, + pub rt_class: ::c_uchar, + #[cfg(target_pointer_width = "64")] + pub rt_pad4: [::c_short; 3usize], + #[cfg(not(target_pointer_width = "64"))] + pub rt_pad4: [::c_short; 1usize], + pub rt_metric: ::c_short, + pub rt_dev: *mut ::c_char, + pub rt_mtu: ::c_ulong, + pub rt_window: ::c_ulong, + pub rt_irtt: ::c_ushort, + } + + pub struct __exit_status { + pub e_termination: ::c_short, + pub e_exit: ::c_short, + } + + pub struct Elf64_Chdr { + pub ch_type: ::Elf64_Word, + pub ch_reserved: ::Elf64_Word, + pub ch_size: ::Elf64_Xword, + pub ch_addralign: ::Elf64_Xword, + } + + pub struct Elf32_Chdr { + pub ch_type: ::Elf32_Word, + pub ch_size: ::Elf32_Word, + pub ch_addralign: ::Elf32_Word, + } + + pub struct timex { + pub modes: ::c_uint, + pub offset: ::c_long, + pub freq: ::c_long, + pub maxerror: ::c_long, + pub esterror: ::c_long, + pub status: ::c_int, + pub constant: ::c_long, + pub precision: ::c_long, + pub tolerance: ::c_long, + pub time: ::timeval, + pub tick: ::c_long, + pub ppsfreq: ::c_long, + pub jitter: ::c_long, + pub shift: ::c_int, + pub stabil: ::c_long, + pub jitcnt: ::c_long, + pub calcnt: ::c_long, + pub errcnt: ::c_long, + pub stbcnt: ::c_long, + pub tai: ::c_int, + pub __padding: [::c_int; 11], + } + + pub struct ntptimeval { + pub time: ::timeval, + pub maxerror: ::c_long, + pub esterror: ::c_long, + } +} + +s_no_extra_traits! { + pub struct sysinfo { + pub uptime: ::c_ulong, + pub loads: [::c_ulong; 3], + pub totalram: ::c_ulong, + pub freeram: ::c_ulong, + pub sharedram: ::c_ulong, + pub bufferram: ::c_ulong, + pub totalswap: ::c_ulong, + pub freeswap: ::c_ulong, + pub procs: ::c_ushort, + pub pad: ::c_ushort, + pub totalhigh: ::c_ulong, + pub freehigh: ::c_ulong, + pub mem_unit: ::c_uint, + pub __reserved: [::c_char; 256], + } + + // FIXME: musl added paddings and adjusted + // layout in 1.2.0 but our CI is still 1.1.24. + // So, I'm leaving some fields as cfg for now. + // ref. https://github.com/bminor/musl/commit/ + // 1e7f0fcd7ff2096904fd93a2ee6d12a2392be392 + // + // OpenHarmony uses the musl 1.2 layout. + pub struct utmpx { + pub ut_type: ::c_short, + __ut_pad1: ::c_short, + pub ut_pid: ::pid_t, + pub ut_line: [::c_char; 32], + pub ut_id: [::c_char; 4], + pub ut_user: [::c_char; 32], + pub ut_host: [::c_char; 256], + pub ut_exit: __exit_status, + + #[cfg(target_env = "musl")] + pub ut_session: ::c_long, + + #[cfg(target_env = "ohos")] + #[cfg(target_endian = "little")] + pub ut_session: ::c_int, + #[cfg(target_env = "ohos")] + #[cfg(target_endian = "little")] + __ut_pad2: ::c_int, + + #[cfg(target_env = "ohos")] + #[cfg(not(target_endian = "little"))] + __ut_pad2: ::c_int, + #[cfg(target_env = "ohos")] + #[cfg(not(target_endian = "little"))] + pub ut_session: ::c_int, + + pub ut_tv: ::timeval, + pub ut_addr_v6: [::c_uint; 4], + __unused: [::c_char; 20], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for sysinfo { + fn eq(&self, other: &sysinfo) -> bool { + self.uptime == other.uptime + && self.loads == other.loads + && self.totalram == other.totalram + && self.freeram == other.freeram + && self.sharedram == other.sharedram + && self.bufferram == other.bufferram + && self.totalswap == other.totalswap + && self.freeswap == other.freeswap + && self.procs == other.procs + && self.pad == other.pad + && self.totalhigh == other.totalhigh + && self.freehigh == other.freehigh + && self.mem_unit == other.mem_unit + && self + .__reserved + .iter() + .zip(other.__reserved.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for sysinfo {} + + impl ::fmt::Debug for sysinfo { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sysinfo") + .field("uptime", &self.uptime) + .field("loads", &self.loads) + .field("totalram", &self.totalram) + .field("freeram", &self.freeram) + .field("sharedram", &self.sharedram) + .field("bufferram", &self.bufferram) + .field("totalswap", &self.totalswap) + .field("freeswap", &self.freeswap) + .field("procs", &self.procs) + .field("pad", &self.pad) + .field("totalhigh", &self.totalhigh) + .field("freehigh", &self.freehigh) + .field("mem_unit", &self.mem_unit) + // FIXME: .field("__reserved", &self.__reserved) + .finish() + } + } + + impl ::hash::Hash for sysinfo { + fn hash(&self, state: &mut H) { + self.uptime.hash(state); + self.loads.hash(state); + self.totalram.hash(state); + self.freeram.hash(state); + self.sharedram.hash(state); + self.bufferram.hash(state); + self.totalswap.hash(state); + self.freeswap.hash(state); + self.procs.hash(state); + self.pad.hash(state); + self.totalhigh.hash(state); + self.freehigh.hash(state); + self.mem_unit.hash(state); + self.__reserved.hash(state); + } + } + + impl PartialEq for utmpx { + fn eq(&self, other: &utmpx) -> bool { + self.ut_type == other.ut_type + //&& self.__ut_pad1 == other.__ut_pad1 + && self.ut_pid == other.ut_pid + && self.ut_line == other.ut_line + && self.ut_id == other.ut_id + && self.ut_user == other.ut_user + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + && self.ut_exit == other.ut_exit + && self.ut_session == other.ut_session + //&& self.__ut_pad2 == other.__ut_pad2 + && self.ut_tv == other.ut_tv + && self.ut_addr_v6 == other.ut_addr_v6 + && self.__unused == other.__unused + } + } + + impl Eq for utmpx {} + + impl ::fmt::Debug for utmpx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmpx") + .field("ut_type", &self.ut_type) + //.field("__ut_pad1", &self.__ut_pad1) + .field("ut_pid", &self.ut_pid) + .field("ut_line", &self.ut_line) + .field("ut_id", &self.ut_id) + .field("ut_user", &self.ut_user) + //FIXME: .field("ut_host", &self.ut_host) + .field("ut_exit", &self.ut_exit) + .field("ut_session", &self.ut_session) + //.field("__ut_pad2", &self.__ut_pad2) + .field("ut_tv", &self.ut_tv) + .field("ut_addr_v6", &self.ut_addr_v6) + .field("__unused", &self.__unused) + .finish() + } + } + + impl ::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { + self.ut_type.hash(state); + //self.__ut_pad1.hash(state); + self.ut_pid.hash(state); + self.ut_line.hash(state); + self.ut_id.hash(state); + self.ut_user.hash(state); + self.ut_host.hash(state); + self.ut_exit.hash(state); + self.ut_session.hash(state); + //self.__ut_pad2.hash(state); + self.ut_tv.hash(state); + self.ut_addr_v6.hash(state); + self.__unused.hash(state); + } + } + } +} + +// include/sys/mman.h +/* + * Huge page size encoding when MAP_HUGETLB is specified, and a huge page + * size other than the default is desired. See hugetlb_encode.h. + * All known huge page size encodings are provided here. It is the + * responsibility of the application to know which sizes are supported on + * the running system. See mmap(2) man page for details. + */ +pub const MAP_HUGE_SHIFT: ::c_int = 26; +pub const MAP_HUGE_MASK: ::c_int = 0x3f; + +pub const MAP_HUGE_64KB: ::c_int = 16 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_512KB: ::c_int = 19 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_1MB: ::c_int = 20 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_2MB: ::c_int = 21 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_8MB: ::c_int = 23 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_16MB: ::c_int = 24 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_32MB: ::c_int = 25 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_256MB: ::c_int = 28 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_512MB: ::c_int = 29 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_1GB: ::c_int = 30 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_2GB: ::c_int = 31 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_16GB: ::c_int = 34 << MAP_HUGE_SHIFT; + +pub const MS_RMT_MASK: ::c_ulong = 0x02800051; + +pub const SFD_CLOEXEC: ::c_int = 0x080000; + +pub const NCCS: usize = 32; + +pub const O_TRUNC: ::c_int = 512; +pub const O_NOATIME: ::c_int = 0o1000000; +pub const O_CLOEXEC: ::c_int = 0x80000; +pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; + +pub const EBFONT: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EDOTDOT: ::c_int = 73; + +pub const F_RDLCK: ::c_int = 0; +pub const F_WRLCK: ::c_int = 1; +pub const F_UNLCK: ::c_int = 2; + +pub const SA_NODEFER: ::c_int = 0x40000000; +pub const SA_RESETHAND: ::c_int = 0x80000000; +pub const SA_RESTART: ::c_int = 0x10000000; +pub const SA_NOCLDSTOP: ::c_int = 0x00000001; + +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; + +pub const EFD_CLOEXEC: ::c_int = 0x80000; + +pub const BUFSIZ: ::c_uint = 1024; +pub const TMP_MAX: ::c_uint = 10000; +pub const FOPEN_MAX: ::c_uint = 1000; +pub const FILENAME_MAX: ::c_uint = 4096; +pub const O_PATH: ::c_int = 0o10000000; +pub const O_EXEC: ::c_int = 0o10000000; +pub const O_SEARCH: ::c_int = 0o10000000; +pub const O_ACCMODE: ::c_int = 0o10000003; +pub const O_NDELAY: ::c_int = O_NONBLOCK; +pub const NI_MAXHOST: ::socklen_t = 255; +pub const PTHREAD_STACK_MIN: ::size_t = 2048; + +pub const POSIX_MADV_DONTNEED: ::c_int = 4; + +pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; + +pub const SOCK_DCCP: ::c_int = 6; +pub const SOCK_PACKET: ::c_int = 10; + +pub const SOMAXCONN: ::c_int = 128; + +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] +pub const SIGUNUSED: ::c_int = ::SIGSYS; + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; + +pub const CPU_SETSIZE: ::c_int = 128; + +pub const PTRACE_TRACEME: ::c_int = 0; +pub const PTRACE_PEEKTEXT: ::c_int = 1; +pub const PTRACE_PEEKDATA: ::c_int = 2; +pub const PTRACE_PEEKUSER: ::c_int = 3; +pub const PTRACE_POKETEXT: ::c_int = 4; +pub const PTRACE_POKEDATA: ::c_int = 5; +pub const PTRACE_POKEUSER: ::c_int = 6; +pub const PTRACE_CONT: ::c_int = 7; +pub const PTRACE_KILL: ::c_int = 8; +pub const PTRACE_SINGLESTEP: ::c_int = 9; +pub const PTRACE_GETREGS: ::c_int = 12; +pub const PTRACE_SETREGS: ::c_int = 13; +pub const PTRACE_GETFPREGS: ::c_int = 14; +pub const PTRACE_SETFPREGS: ::c_int = 15; +pub const PTRACE_ATTACH: ::c_int = 16; +pub const PTRACE_DETACH: ::c_int = 17; +pub const PTRACE_GETFPXREGS: ::c_int = 18; +pub const PTRACE_SETFPXREGS: ::c_int = 19; +pub const PTRACE_SYSCALL: ::c_int = 24; +pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; +pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; +pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; +pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; +pub const PTRACE_GETREGSET: ::c_int = 0x4204; +pub const PTRACE_SETREGSET: ::c_int = 0x4205; +pub const PTRACE_SEIZE: ::c_int = 0x4206; +pub const PTRACE_INTERRUPT: ::c_int = 0x4207; +pub const PTRACE_LISTEN: ::c_int = 0x4208; +pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; + +pub const FAN_MARK_INODE: ::c_uint = 0x0000_0000; +pub const FAN_MARK_MOUNT: ::c_uint = 0x0000_0010; +// NOTE: FAN_MARK_FILESYSTEM requires Linux Kernel >= 4.20.0 +pub const FAN_MARK_FILESYSTEM: ::c_uint = 0x0000_0100; + +pub const AF_IB: ::c_int = 27; +pub const AF_MPLS: ::c_int = 28; +pub const AF_NFC: ::c_int = 39; +pub const AF_VSOCK: ::c_int = 40; +pub const AF_XDP: ::c_int = 44; +pub const PF_IB: ::c_int = AF_IB; +pub const PF_MPLS: ::c_int = AF_MPLS; +pub const PF_NFC: ::c_int = AF_NFC; +pub const PF_VSOCK: ::c_int = AF_VSOCK; +pub const PF_XDP: ::c_int = AF_XDP; + +pub const EFD_NONBLOCK: ::c_int = ::O_NONBLOCK; + +pub const SFD_NONBLOCK: ::c_int = ::O_NONBLOCK; + +pub const PIDFD_NONBLOCK: ::c_uint = O_NONBLOCK as ::c_uint; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; + +pub const CLOCK_SGI_CYCLE: ::clockid_t = 10; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; + +pub const REG_OK: ::c_int = 0; + +pub const PRIO_PROCESS: ::c_int = 0; +pub const PRIO_PGRP: ::c_int = 1; +pub const PRIO_USER: ::c_int = 2; + +pub const ADJ_OFFSET: ::c_uint = 0x0001; +pub const ADJ_FREQUENCY: ::c_uint = 0x0002; +pub const ADJ_MAXERROR: ::c_uint = 0x0004; +pub const ADJ_ESTERROR: ::c_uint = 0x0008; +pub const ADJ_STATUS: ::c_uint = 0x0010; +pub const ADJ_TIMECONST: ::c_uint = 0x0020; +pub const ADJ_TAI: ::c_uint = 0x0080; +pub const ADJ_SETOFFSET: ::c_uint = 0x0100; +pub const ADJ_MICRO: ::c_uint = 0x1000; +pub const ADJ_NANO: ::c_uint = 0x2000; +pub const ADJ_TICK: ::c_uint = 0x4000; +pub const ADJ_OFFSET_SINGLESHOT: ::c_uint = 0x8001; +pub const ADJ_OFFSET_SS_READ: ::c_uint = 0xa001; +pub const MOD_OFFSET: ::c_uint = ADJ_OFFSET; +pub const MOD_FREQUENCY: ::c_uint = ADJ_FREQUENCY; +pub const MOD_MAXERROR: ::c_uint = ADJ_MAXERROR; +pub const MOD_ESTERROR: ::c_uint = ADJ_ESTERROR; +pub const MOD_STATUS: ::c_uint = ADJ_STATUS; +pub const MOD_TIMECONST: ::c_uint = ADJ_TIMECONST; +pub const MOD_CLKB: ::c_uint = ADJ_TICK; +pub const MOD_CLKA: ::c_uint = ADJ_OFFSET_SINGLESHOT; +pub const MOD_TAI: ::c_uint = ADJ_TAI; +pub const MOD_MICRO: ::c_uint = ADJ_MICRO; +pub const MOD_NANO: ::c_uint = ADJ_NANO; +pub const STA_PLL: ::c_int = 0x0001; +pub const STA_PPSFREQ: ::c_int = 0x0002; +pub const STA_PPSTIME: ::c_int = 0x0004; +pub const STA_FLL: ::c_int = 0x0008; +pub const STA_INS: ::c_int = 0x0010; +pub const STA_DEL: ::c_int = 0x0020; +pub const STA_UNSYNC: ::c_int = 0x0040; +pub const STA_FREQHOLD: ::c_int = 0x0080; +pub const STA_PPSSIGNAL: ::c_int = 0x0100; +pub const STA_PPSJITTER: ::c_int = 0x0200; +pub const STA_PPSWANDER: ::c_int = 0x0400; +pub const STA_PPSERROR: ::c_int = 0x0800; +pub const STA_CLOCKERR: ::c_int = 0x1000; +pub const STA_NANO: ::c_int = 0x2000; +pub const STA_MODE: ::c_int = 0x4000; +pub const STA_CLK: ::c_int = 0x8000; +pub const STA_RONLY: ::c_int = STA_PPSSIGNAL + | STA_PPSJITTER + | STA_PPSWANDER + | STA_PPSERROR + | STA_CLOCKERR + | STA_NANO + | STA_MODE + | STA_CLK; + +pub const TIME_OK: ::c_int = 0; +pub const TIME_INS: ::c_int = 1; +pub const TIME_DEL: ::c_int = 2; +pub const TIME_OOP: ::c_int = 3; +pub const TIME_WAIT: ::c_int = 4; +pub const TIME_ERROR: ::c_int = 5; +pub const TIME_BAD: ::c_int = TIME_ERROR; +pub const MAXTC: ::c_long = 6; + +cfg_if! { + if #[cfg(target_arch = "s390x")] { + pub const POSIX_FADV_DONTNEED: ::c_int = 6; + pub const POSIX_FADV_NOREUSE: ::c_int = 7; + } else { + pub const POSIX_FADV_DONTNEED: ::c_int = 4; + pub const POSIX_FADV_NOREUSE: ::c_int = 5; + } +} + +extern "C" { + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_uint, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_uint, + timeout: *mut ::timespec, + ) -> ::c_int; + + pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; + pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + pub fn prlimit( + pid: ::pid_t, + resource: ::c_int, + new_limit: *const ::rlimit, + old_limit: *mut ::rlimit, + ) -> ::c_int; + pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn ptrace(request: ::c_int, ...) -> ::c_long; + pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; + pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; + // Musl targets need the `mask` argument of `fanotify_mark` be specified + // `::c_ulonglong` instead of `u64` or there will be a type mismatch between + // `long long unsigned int` and the expected `uint64_t`. + pub fn fanotify_mark( + fd: ::c_int, + flags: ::c_uint, + mask: ::c_ulonglong, + dirfd: ::c_int, + path: *const ::c_char, + ) -> ::c_int; + pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; + + // Added in `musl` 1.1.20 + pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t); + // Added in `musl` 1.2.2 + pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; + + pub fn adjtimex(buf: *mut ::timex) -> ::c_int; + pub fn clock_adjtime(clk_id: ::clockid_t, buf: *mut ::timex) -> ::c_int; + + pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; + + pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int; + pub fn mlock2(addr: *const ::c_void, len: ::size_t, flags: ::c_uint) -> ::c_int; + pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t; + + pub fn euidaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; + pub fn eaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; + + pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; + + pub fn strftime( + s: *mut ::c_char, + max: ::size_t, + format: *const ::c_char, + tm: *const ::tm, + ) -> ::size_t; + pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; + + pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; + pub fn basename(path: *mut ::c_char) -> *mut ::c_char; +} + +// Alias to 64 to mimic glibc's LFS64 support +mod lfs64; +pub use self::lfs64::*; + +cfg_if! { + if #[cfg(any(target_arch = "x86_64", + target_arch = "aarch64", + target_arch = "mips64", + target_arch = "powerpc64", + target_arch = "s390x", + target_arch = "riscv64"))] { + mod b64; + pub use self::b64::*; + } else if #[cfg(any(target_arch = "x86", + target_arch = "mips", + target_arch = "powerpc", + target_arch = "hexagon", + target_arch = "riscv32", + target_arch = "arm"))] { + mod b32; + pub use self::b32::*; + } else { } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/no_align.rs new file mode 100644 index 000000000..6f5f2f7c0 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/no_align.rs @@ -0,0 +1,130 @@ +macro_rules! expand_align { + () => { + s! { + pub struct pthread_mutexattr_t { + #[cfg(any(target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "loongarch64", + all(target_arch = "aarch64", + any(target_env = "musl", target_env = "ohos"))))] + __align: [::c_int; 0], + #[cfg(not(any(target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "loongarch64", + all(target_arch = "aarch64", + any(target_env = "musl", target_env = "ohos")))))] + __align: [::c_long; 0], + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + pub struct pthread_rwlockattr_t { + #[cfg(any(target_env = "musl", target_env = "ohos"))] + __align: [::c_int; 0], + #[cfg(not(any(target_env = "musl", target_env = "ohos")))] + __align: [::c_long; 0], + size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], + } + + pub struct pthread_condattr_t { + __align: [::c_int; 0], + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } + + pub struct pthread_barrierattr_t { + __align: [::c_int; 0], + size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T], + } + + pub struct fanotify_event_metadata { + __align: [::c_long; 0], + pub event_len: __u32, + pub vers: __u8, + pub reserved: __u8, + pub metadata_len: __u16, + pub mask: __u64, + pub fd: ::c_int, + pub pid: ::c_int, + } + } + + s_no_extra_traits! { + pub struct pthread_cond_t { + #[cfg(any(target_env = "musl", target_env = "ohos"))] + __align: [*const ::c_void; 0], + #[cfg(not(any(target_env = "musl", target_env = "ohos")))] + __align: [::c_longlong; 0], + size: [u8; ::__SIZEOF_PTHREAD_COND_T], + } + + pub struct pthread_mutex_t { + #[cfg(any(target_arch = "mips", + target_arch = "arm", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + all(target_arch = "x86_64", + target_pointer_width = "32")))] + __align: [::c_long; 0], + #[cfg(not(any(target_arch = "mips", + target_arch = "arm", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + all(target_arch = "x86_64", + target_pointer_width = "32"))))] + __align: [::c_longlong; 0], + size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + } + + pub struct pthread_rwlock_t { + #[cfg(any(target_arch = "mips", + target_arch = "arm", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + all(target_arch = "x86_64", + target_pointer_width = "32")))] + __align: [::c_long; 0], + #[cfg(not(any(target_arch = "mips", + target_arch = "arm", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + all(target_arch = "x86_64", + target_pointer_width = "32"))))] + __align: [::c_longlong; 0], + size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + } + + pub struct pthread_barrier_t { + #[cfg(any(target_arch = "mips", + target_arch = "arm", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + all(target_arch = "x86_64", + target_pointer_width = "32")))] + __align: [::c_long; 0], + #[cfg(not(any(target_arch = "mips", + target_arch = "arm", + target_arch = "m68k", + target_arch = "powerpc", + target_arch = "sparc", + all(target_arch = "x86_64", + target_pointer_width = "32"))))] + __align: [::c_longlong; 0], + size: [u8; ::__SIZEOF_PTHREAD_BARRIER_T], + } + } + }; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/non_exhaustive.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/non_exhaustive.rs new file mode 100644 index 000000000..e2e2cb847 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/non_exhaustive.rs @@ -0,0 +1,9 @@ +s! { + // linux/openat2.h + #[non_exhaustive] + pub struct open_how { + pub flags: ::__u64, + pub mode: ::__u64, + pub resolve: ::__u64, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/align.rs new file mode 100644 index 000000000..e6610bb7b --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/align.rs @@ -0,0 +1,28 @@ +macro_rules! expand_align { + () => { + s! { + #[cfg_attr(any(target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64"), + repr(align(4)))] + #[cfg_attr(not(any(target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64")), + repr(align(8)))] + pub struct pthread_mutexattr_t { + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + #[repr(align(4))] + pub struct pthread_condattr_t { + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } + } + }; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/align.rs new file mode 100644 index 000000000..4a0e07460 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/align.rs @@ -0,0 +1,13 @@ +s! { + // FIXME this is actually a union + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + pub struct sem_t { + #[cfg(target_pointer_width = "32")] + __size: [::c_char; 16], + #[cfg(target_pointer_width = "64")] + __size: [::c_char; 32], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/mod.rs new file mode 100644 index 000000000..cff82f005 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -0,0 +1,925 @@ +pub type c_char = u8; +pub type wchar_t = ::c_uint; +pub type c_long = i32; +pub type c_ulong = u32; +pub type time_t = ::c_long; + +pub type clock_t = ::c_long; +pub type fsblkcnt_t = ::c_ulong; +pub type fsfilcnt_t = ::c_ulong; +pub type ino_t = ::c_ulong; +pub type off_t = ::c_long; +pub type pthread_t = ::c_ulong; +pub type suseconds_t = ::c_long; + +pub type nlink_t = ::c_uint; +pub type blksize_t = ::c_long; +pub type blkcnt_t = ::c_long; + +pub type fsblkcnt64_t = u64; +pub type fsfilcnt64_t = u64; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; + +s! { + pub struct cmsghdr { + pub cmsg_len: ::size_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::socklen_t, + pub msg_flags: ::c_int, + } + + pub struct pthread_attr_t { + __size: [::c_long; 9], + } + + pub struct stat { + pub st_dev: ::c_ulonglong, + __pad1: ::c_ushort, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::c_ulonglong, + __pad2: ::c_ushort, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused4: ::c_ulong, + __unused5: ::c_ulong, + } + + pub struct stat64 + { + pub st_dev: ::c_ulonglong, + pub __pad1: ::c_uint, + pub __st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::c_ulonglong, + pub __pad2: ::c_uint, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_ino: ::ino64_t, + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct sysinfo { + pub uptime: ::c_long, + pub loads: [::c_ulong; 3], + pub totalram: ::c_ulong, + pub freeram: ::c_ulong, + pub sharedram: ::c_ulong, + pub bufferram: ::c_ulong, + pub totalswap: ::c_ulong, + pub freeswap: ::c_ulong, + pub procs: ::c_ushort, + pub pad: ::c_ushort, + pub totalhigh: ::c_ulong, + pub freehigh: ::c_ulong, + pub mem_unit: ::c_uint, + pub _f: [::c_char; 8], + } + + pub struct statfs { + pub f_type: ::c_int, + pub f_bsize: ::c_int, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_int, + pub f_frsize: ::c_int, + pub f_flags: ::c_int, + pub f_spare: [::c_int; 4], + } + + pub struct statfs64 { + pub f_type: ::c_int, + pub f_bsize: ::c_int, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsfilcnt64_t, + pub f_ffree: ::fsfilcnt64_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_int, + pub f_frsize: ::c_int, + pub f_flags: ::c_int, + pub f_spare: [::c_int; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct sigset_t { + __val: [::c_ulong; 2], + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_flags: ::c_ulong, + pub sa_restorer: ::Option, + pub sa_mask: sigset_t, + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; ::NCCS], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub _pad: [::c_int; 29], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t, + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_ushort, + __pad1: ::c_ushort, + pub __seq: ::c_ushort, + __pad2: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + __unused1: ::c_ulong, + pub msg_rtime: ::time_t, + __unused2: ::c_ulong, + pub msg_ctime: ::time_t, + __unused3: ::c_ulong, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __unused4: ::c_ulong, + __unused5: ::c_ulong, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + __unused1: ::c_ulong, + pub shm_dtime: ::time_t, + __unused2: ::c_ulong, + pub shm_ctime: ::time_t, + __unused3: ::c_ulong, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused4: ::c_ulong, + __unused5: ::c_ulong, + } +} + +pub const O_CLOEXEC: ::c_int = 0o2000000; +pub const __SIZEOF_PTHREAD_ATTR_T: usize = 36; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_COND_COMPAT_T: usize = 12; +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +pub const NCCS: usize = 32; + +// I wasn't able to find those constants +// in uclibc build environment for armv7 +pub const MAP_HUGETLB: ::c_int = 0x040000; // from linux/other/mod.rs + +// autogenerated constants with hand tuned types +pub const B0: ::speed_t = 0; +pub const B1000000: ::speed_t = 0x1008; +pub const B110: ::speed_t = 0x3; +pub const B115200: ::speed_t = 0x1002; +pub const B1152000: ::speed_t = 0x1009; +pub const B1200: ::speed_t = 0x9; +pub const B134: ::speed_t = 0x4; +pub const B150: ::speed_t = 0x5; +pub const B1500000: ::speed_t = 0x100a; +pub const B1800: ::speed_t = 0xa; +pub const B19200: ::speed_t = 0xe; +pub const B200: ::speed_t = 0x6; +pub const B2000000: ::speed_t = 0x100b; +pub const B230400: ::speed_t = 0x1003; +pub const B2400: ::speed_t = 0xb; +pub const B2500000: ::speed_t = 0x100c; +pub const B300: ::speed_t = 0x7; +pub const B3000000: ::speed_t = 0x100d; +pub const B3500000: ::speed_t = 0x100e; +pub const B38400: ::speed_t = 0xf; +pub const B4000000: ::speed_t = 0x100f; +pub const B460800: ::speed_t = 0x1004; +pub const B4800: ::speed_t = 0xc; +pub const B50: ::speed_t = 0x1; +pub const B500000: ::speed_t = 0x1005; +pub const B57600: ::speed_t = 0x1001; +pub const B576000: ::speed_t = 0x1006; +pub const B600: ::speed_t = 0x8; +pub const B75: ::speed_t = 0x2; +pub const B921600: ::speed_t = 0x1007; +pub const B9600: ::speed_t = 0xd; +pub const BS1: ::c_int = 0x2000; +pub const BSDLY: ::c_int = 0x2000; +pub const CBAUD: ::tcflag_t = 0x100f; +pub const CBAUDEX: ::tcflag_t = 0x1000; +pub const CIBAUD: ::tcflag_t = 0x100f0000; +pub const CLOCAL: ::tcflag_t = 0x800; +pub const CPU_SETSIZE: ::c_int = 0x400; +pub const CR1: ::c_int = 0x200; +pub const CR2: ::c_int = 0x400; +pub const CR3: ::c_int = 0x600; +pub const CRDLY: ::c_int = 0x600; +pub const CREAD: ::tcflag_t = 0x80; +pub const CS6: ::tcflag_t = 0x10; +pub const CS7: ::tcflag_t = 0x20; +pub const CS8: ::tcflag_t = 0x30; +pub const CSIZE: ::tcflag_t = 0x30; +pub const CSTOPB: ::tcflag_t = 0x40; +pub const EADDRINUSE: ::c_int = 0x62; +pub const EADDRNOTAVAIL: ::c_int = 0x63; +pub const EADV: ::c_int = 0x44; +pub const EAFNOSUPPORT: ::c_int = 0x61; +pub const EALREADY: ::c_int = 0x72; +pub const EBADE: ::c_int = 0x34; +pub const EBADFD: ::c_int = 0x4d; +pub const EBADMSG: ::c_int = 0x4a; +pub const EBADR: ::c_int = 0x35; +pub const EBADRQC: ::c_int = 0x38; +pub const EBADSLT: ::c_int = 0x39; +pub const EBFONT: ::c_int = 0x3b; +pub const ECANCELED: ::c_int = 0x7d; +pub const ECHOCTL: ::tcflag_t = 0x200; +pub const ECHOE: ::tcflag_t = 0x10; +pub const ECHOK: ::tcflag_t = 0x20; +pub const ECHOKE: ::tcflag_t = 0x800; +pub const ECHONL: ::tcflag_t = 0x40; +pub const ECHOPRT: ::tcflag_t = 0x400; +pub const ECHRNG: ::c_int = 0x2c; +pub const ECOMM: ::c_int = 0x46; +pub const ECONNABORTED: ::c_int = 0x67; +pub const ECONNREFUSED: ::c_int = 0x6f; +pub const ECONNRESET: ::c_int = 0x68; +pub const EDEADLK: ::c_int = 0x23; +pub const EDESTADDRREQ: ::c_int = 0x59; +pub const EDOTDOT: ::c_int = 0x49; +pub const EDQUOT: ::c_int = 0x7a; +pub const EFD_CLOEXEC: ::c_int = 0x80000; +pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const EHOSTDOWN: ::c_int = 0x70; +pub const EHOSTUNREACH: ::c_int = 0x71; +pub const EHWPOISON: ::c_int = 0x85; +pub const EIDRM: ::c_int = 0x2b; +pub const EILSEQ: ::c_int = 0x54; +pub const EINPROGRESS: ::c_int = 0x73; +pub const EISCONN: ::c_int = 0x6a; +pub const EISNAM: ::c_int = 0x78; +pub const EKEYEXPIRED: ::c_int = 0x7f; +pub const EKEYREJECTED: ::c_int = 0x81; +pub const EKEYREVOKED: ::c_int = 0x80; +pub const EL2HLT: ::c_int = 0x33; +pub const EL2NSYNC: ::c_int = 0x2d; +pub const EL3HLT: ::c_int = 0x2e; +pub const EL3RST: ::c_int = 0x2f; +pub const ELIBACC: ::c_int = 0x4f; +pub const ELIBBAD: ::c_int = 0x50; +pub const ELIBEXEC: ::c_int = 0x53; +pub const ELIBMAX: ::c_int = 0x52; +pub const ELIBSCN: ::c_int = 0x51; +pub const ELNRNG: ::c_int = 0x30; +pub const ELOOP: ::c_int = 0x28; +pub const EMEDIUMTYPE: ::c_int = 0x7c; +pub const EMSGSIZE: ::c_int = 0x5a; +pub const EMULTIHOP: ::c_int = 0x48; +pub const ENAMETOOLONG: ::c_int = 0x24; +pub const ENAVAIL: ::c_int = 0x77; +pub const ENETDOWN: ::c_int = 0x64; +pub const ENETRESET: ::c_int = 0x66; +pub const ENETUNREACH: ::c_int = 0x65; +pub const ENOANO: ::c_int = 0x37; +pub const ENOBUFS: ::c_int = 0x69; +pub const ENOCSI: ::c_int = 0x32; +pub const ENODATA: ::c_int = 0x3d; +pub const ENOKEY: ::c_int = 0x7e; +pub const ENOLCK: ::c_int = 0x25; +pub const ENOLINK: ::c_int = 0x43; +pub const ENOMEDIUM: ::c_int = 0x7b; +pub const ENOMSG: ::c_int = 0x2a; +pub const ENONET: ::c_int = 0x40; +pub const ENOPKG: ::c_int = 0x41; +pub const ENOPROTOOPT: ::c_int = 0x5c; +pub const ENOSR: ::c_int = 0x3f; +pub const ENOSTR: ::c_int = 0x3c; +pub const ENOSYS: ::c_int = 0x26; +pub const ENOTCONN: ::c_int = 0x6b; +pub const ENOTEMPTY: ::c_int = 0x27; +pub const ENOTNAM: ::c_int = 0x76; +pub const ENOTRECOVERABLE: ::c_int = 0x83; +pub const ENOTSOCK: ::c_int = 0x58; +pub const ENOTUNIQ: ::c_int = 0x4c; +pub const EOPNOTSUPP: ::c_int = 0x5f; +pub const EOVERFLOW: ::c_int = 0x4b; +pub const EOWNERDEAD: ::c_int = 0x82; +pub const EPFNOSUPPORT: ::c_int = 0x60; +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; +pub const EPROTO: ::c_int = 0x47; +pub const EPROTONOSUPPORT: ::c_int = 0x5d; +pub const EPROTOTYPE: ::c_int = 0x5b; +pub const EREMCHG: ::c_int = 0x4e; +pub const EREMOTE: ::c_int = 0x42; +pub const EREMOTEIO: ::c_int = 0x79; +pub const ERESTART: ::c_int = 0x55; +pub const ERFKILL: ::c_int = 0x84; +pub const ESHUTDOWN: ::c_int = 0x6c; +pub const ESOCKTNOSUPPORT: ::c_int = 0x5e; +pub const ESRMNT: ::c_int = 0x45; +pub const ESTALE: ::c_int = 0x74; +pub const ESTRPIPE: ::c_int = 0x56; +pub const ETIME: ::c_int = 0x3e; +pub const ETIMEDOUT: ::c_int = 0x6e; +pub const ETOOMANYREFS: ::c_int = 0x6d; +pub const EUCLEAN: ::c_int = 0x75; +pub const EUNATCH: ::c_int = 0x31; +pub const EUSERS: ::c_int = 0x57; +pub const EXFULL: ::c_int = 0x36; +pub const FF1: ::c_int = 0x8000; +pub const FFDLY: ::c_int = 0x8000; +pub const FLUSHO: ::tcflag_t = 0x1000; +pub const F_GETLK: ::c_int = 0x5; +pub const F_SETLK: ::c_int = 0x6; +pub const F_SETLKW: ::c_int = 0x7; +pub const HUPCL: ::tcflag_t = 0x400; +pub const ICANON: ::tcflag_t = 0x2; +pub const IEXTEN: ::tcflag_t = 0x8000; +pub const ISIG: ::tcflag_t = 0x1; +pub const IXOFF: ::tcflag_t = 0x1000; +pub const IXON: ::tcflag_t = 0x400; +pub const MAP_ANON: ::c_int = 0x20; +pub const MAP_ANONYMOUS: ::c_int = 0x20; +pub const MAP_DENYWRITE: ::c_int = 0x800; +pub const MAP_EXECUTABLE: ::c_int = 0x1000; +pub const MAP_GROWSDOWN: ::c_int = 0x100; +pub const MAP_LOCKED: ::c_int = 0x2000; +pub const MAP_NONBLOCK: ::c_int = 0x10000; +pub const MAP_NORESERVE: ::c_int = 0x4000; +pub const MAP_POPULATE: ::c_int = 0x8000; +pub const MAP_STACK: ::c_int = 0x20000; +pub const NLDLY: ::tcflag_t = 0x100; +pub const NOFLSH: ::tcflag_t = 0x80; +pub const OLCUC: ::tcflag_t = 0x2; +pub const ONLCR: ::tcflag_t = 0x4; +pub const O_ACCMODE: ::c_int = 0x3; +pub const O_APPEND: ::c_int = 0x400; +pub const O_ASYNC: ::c_int = 0o20000; +pub const O_CREAT: ::c_int = 0x40; +pub const O_DIRECT: ::c_int = 0x10000; +pub const O_DIRECTORY: ::c_int = 0x4000; +pub const O_DSYNC: ::c_int = O_SYNC; +pub const O_EXCL: ::c_int = 0x80; +pub const O_FSYNC: ::c_int = O_SYNC; +pub const O_LARGEFILE: ::c_int = 0o400000; +pub const O_NDELAY: ::c_int = O_NONBLOCK; +pub const O_NOATIME: ::c_int = 0o1000000; +pub const O_NOCTTY: ::c_int = 0x100; +pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const O_NONBLOCK: ::c_int = 0x800; +pub const O_PATH: ::c_int = 0o10000000; +pub const O_RSYNC: ::c_int = O_SYNC; +pub const O_SYNC: ::c_int = 0o10000; +pub const O_TRUNC: ::c_int = 0x200; +pub const PARENB: ::tcflag_t = 0x100; +pub const PARODD: ::tcflag_t = 0x200; +pub const PENDIN: ::tcflag_t = 0x4000; +pub const POLLWRBAND: ::c_short = 0x200; +pub const POLLWRNORM: ::c_short = 0x100; +pub const PTHREAD_STACK_MIN: ::size_t = 16384; +pub const RTLD_GLOBAL: ::c_int = 0x00100; +pub const PIDFD_NONBLOCK: ::c_int = 0x800; + +// These are typed unsigned to match sigaction +pub const SA_NOCLDSTOP: ::c_ulong = 0x1; +pub const SA_NOCLDWAIT: ::c_ulong = 0x2; +pub const SA_SIGINFO: ::c_ulong = 0x4; +pub const SA_NODEFER: ::c_ulong = 0x40000000; +pub const SA_ONSTACK: ::c_ulong = 0x8000000; +pub const SA_RESETHAND: ::c_ulong = 0x80000000; +pub const SA_RESTART: ::c_ulong = 0x10000000; + +pub const SFD_CLOEXEC: ::c_int = 0x80000; +pub const SFD_NONBLOCK: ::c_int = 0x800; +pub const SIGBUS: ::c_int = 0x7; +pub const SIGCHLD: ::c_int = 0x11; +pub const SIGCONT: ::c_int = 0x12; +pub const SIGIO: ::c_int = 0x1d; +pub const SIGPROF: ::c_int = 0x1b; +pub const SIGPWR: ::c_int = 0x1e; +pub const SIGSTKFLT: ::c_int = 0x10; +pub const SIGSTKSZ: ::size_t = 8192; +pub const SIGSTOP: ::c_int = 0x13; +pub const SIGSYS: ::c_int = 0x1f; +pub const SIGTSTP: ::c_int = 0x14; +pub const SIGTTIN: ::c_int = 0x15; +pub const SIGTTOU: ::c_int = 0x16; +pub const SIGURG: ::c_int = 0x17; +pub const SIGUSR1: ::c_int = 0xa; +pub const SIGUSR2: ::c_int = 0xc; +pub const SIGVTALRM: ::c_int = 0x1a; +pub const SIGWINCH: ::c_int = 0x1c; +pub const SIGXCPU: ::c_int = 0x18; +pub const SIGXFSZ: ::c_int = 0x19; +pub const SIG_BLOCK: ::c_int = 0; +pub const SIG_SETMASK: ::c_int = 0x2; +pub const SIG_UNBLOCK: ::c_int = 0x1; +pub const SOCK_DGRAM: ::c_int = 0x2; +pub const SOCK_NONBLOCK: ::c_int = 0o0004000; +pub const SOCK_SEQPACKET: ::c_int = 0x5; +pub const SOCK_STREAM: ::c_int = 0x1; + +pub const TAB1: ::c_int = 0x800; +pub const TAB2: ::c_int = 0x1000; +pub const TAB3: ::c_int = 0x1800; +pub const TABDLY: ::c_int = 0x1800; +pub const TCSADRAIN: ::c_int = 0x1; +pub const TCSAFLUSH: ::c_int = 0x2; +pub const TCSANOW: ::c_int = 0; +pub const TOSTOP: ::tcflag_t = 0x100; +pub const VDISCARD: usize = 0xd; +pub const VEOF: usize = 0x4; +pub const VEOL: usize = 0xb; +pub const VEOL2: usize = 0x10; +pub const VMIN: usize = 0x6; +pub const VREPRINT: usize = 0xc; +pub const VSTART: usize = 0x8; +pub const VSTOP: usize = 0x9; +pub const VSUSP: usize = 0xa; +pub const VSWTC: usize = 0x7; +pub const VT1: ::c_int = 0x4000; +pub const VTDLY: ::c_int = 0x4000; +pub const VTIME: usize = 0x5; +pub const VWERASE: usize = 0xe; +pub const XTABS: ::tcflag_t = 0x1800; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; + +// Syscall table is copied from src/unix/notbsd/linux/musl/b32/arm.rs +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_pause: ::c_long = 29; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_brk: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_setreuid: ::c_long = 70; +pub const SYS_setregid: ::c_long = 71; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_getgroups: ::c_long = 80; +pub const SYS_setgroups: ::c_long = 81; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_fchown: ::c_long = 95; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_setfsuid: ::c_long = 138; +pub const SYS_setfsgid: ::c_long = 139; +pub const SYS__llseek: ::c_long = 140; +pub const SYS_getdents: ::c_long = 141; +pub const SYS__newselect: ::c_long = 142; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_setresuid: ::c_long = 164; +pub const SYS_getresuid: ::c_long = 165; +pub const SYS_poll: ::c_long = 168; +pub const SYS_nfsservctl: ::c_long = 169; +pub const SYS_setresgid: ::c_long = 170; +pub const SYS_getresgid: ::c_long = 171; +pub const SYS_prctl: ::c_long = 172; +pub const SYS_rt_sigreturn: ::c_long = 173; +pub const SYS_rt_sigaction: ::c_long = 174; +pub const SYS_rt_sigprocmask: ::c_long = 175; +pub const SYS_rt_sigpending: ::c_long = 176; +pub const SYS_rt_sigtimedwait: ::c_long = 177; +pub const SYS_rt_sigqueueinfo: ::c_long = 178; +pub const SYS_rt_sigsuspend: ::c_long = 179; +pub const SYS_pread64: ::c_long = 180; +pub const SYS_pwrite64: ::c_long = 181; +pub const SYS_chown: ::c_long = 182; +pub const SYS_getcwd: ::c_long = 183; +pub const SYS_capget: ::c_long = 184; +pub const SYS_capset: ::c_long = 185; +pub const SYS_sigaltstack: ::c_long = 186; +pub const SYS_sendfile: ::c_long = 187; +pub const SYS_vfork: ::c_long = 190; +pub const SYS_ugetrlimit: ::c_long = 191; +pub const SYS_mmap2: ::c_long = 192; +pub const SYS_truncate64: ::c_long = 193; +pub const SYS_ftruncate64: ::c_long = 194; +pub const SYS_stat64: ::c_long = 195; +pub const SYS_lstat64: ::c_long = 196; +pub const SYS_fstat64: ::c_long = 197; +pub const SYS_lchown32: ::c_long = 198; +pub const SYS_getuid32: ::c_long = 199; +pub const SYS_getgid32: ::c_long = 200; +pub const SYS_geteuid32: ::c_long = 201; +pub const SYS_getegid32: ::c_long = 202; +pub const SYS_setreuid32: ::c_long = 203; +pub const SYS_setregid32: ::c_long = 204; +pub const SYS_getgroups32: ::c_long = 205; +pub const SYS_setgroups32: ::c_long = 206; +pub const SYS_fchown32: ::c_long = 207; +pub const SYS_setresuid32: ::c_long = 208; +pub const SYS_getresuid32: ::c_long = 209; +pub const SYS_setresgid32: ::c_long = 210; +pub const SYS_getresgid32: ::c_long = 211; +pub const SYS_chown32: ::c_long = 212; +pub const SYS_setuid32: ::c_long = 213; +pub const SYS_setgid32: ::c_long = 214; +pub const SYS_setfsuid32: ::c_long = 215; +pub const SYS_setfsgid32: ::c_long = 216; +pub const SYS_getdents64: ::c_long = 217; +pub const SYS_pivot_root: ::c_long = 218; +pub const SYS_mincore: ::c_long = 219; +pub const SYS_madvise: ::c_long = 220; +pub const SYS_fcntl64: ::c_long = 221; +pub const SYS_gettid: ::c_long = 224; +pub const SYS_readahead: ::c_long = 225; +pub const SYS_setxattr: ::c_long = 226; +pub const SYS_lsetxattr: ::c_long = 227; +pub const SYS_fsetxattr: ::c_long = 228; +pub const SYS_getxattr: ::c_long = 229; +pub const SYS_lgetxattr: ::c_long = 230; +pub const SYS_fgetxattr: ::c_long = 231; +pub const SYS_listxattr: ::c_long = 232; +pub const SYS_llistxattr: ::c_long = 233; +pub const SYS_flistxattr: ::c_long = 234; +pub const SYS_removexattr: ::c_long = 235; +pub const SYS_lremovexattr: ::c_long = 236; +pub const SYS_fremovexattr: ::c_long = 237; +pub const SYS_tkill: ::c_long = 238; +pub const SYS_sendfile64: ::c_long = 239; +pub const SYS_futex: ::c_long = 240; +pub const SYS_sched_setaffinity: ::c_long = 241; +pub const SYS_sched_getaffinity: ::c_long = 242; +pub const SYS_io_setup: ::c_long = 243; +pub const SYS_io_destroy: ::c_long = 244; +pub const SYS_io_getevents: ::c_long = 245; +pub const SYS_io_submit: ::c_long = 246; +pub const SYS_io_cancel: ::c_long = 247; +pub const SYS_exit_group: ::c_long = 248; +pub const SYS_lookup_dcookie: ::c_long = 249; +pub const SYS_epoll_create: ::c_long = 250; +pub const SYS_epoll_ctl: ::c_long = 251; +pub const SYS_epoll_wait: ::c_long = 252; +pub const SYS_remap_file_pages: ::c_long = 253; +pub const SYS_set_tid_address: ::c_long = 256; +pub const SYS_timer_create: ::c_long = 257; +pub const SYS_timer_settime: ::c_long = 258; +pub const SYS_timer_gettime: ::c_long = 259; +pub const SYS_timer_getoverrun: ::c_long = 260; +pub const SYS_timer_delete: ::c_long = 261; +pub const SYS_clock_settime: ::c_long = 262; +pub const SYS_clock_gettime: ::c_long = 263; +pub const SYS_clock_getres: ::c_long = 264; +pub const SYS_clock_nanosleep: ::c_long = 265; +pub const SYS_statfs64: ::c_long = 266; +pub const SYS_fstatfs64: ::c_long = 267; +pub const SYS_tgkill: ::c_long = 268; +pub const SYS_utimes: ::c_long = 269; +pub const SYS_pciconfig_iobase: ::c_long = 271; +pub const SYS_pciconfig_read: ::c_long = 272; +pub const SYS_pciconfig_write: ::c_long = 273; +pub const SYS_mq_open: ::c_long = 274; +pub const SYS_mq_unlink: ::c_long = 275; +pub const SYS_mq_timedsend: ::c_long = 276; +pub const SYS_mq_timedreceive: ::c_long = 277; +pub const SYS_mq_notify: ::c_long = 278; +pub const SYS_mq_getsetattr: ::c_long = 279; +pub const SYS_waitid: ::c_long = 280; +pub const SYS_socket: ::c_long = 281; +pub const SYS_bind: ::c_long = 282; +pub const SYS_connect: ::c_long = 283; +pub const SYS_listen: ::c_long = 284; +pub const SYS_accept: ::c_long = 285; +pub const SYS_getsockname: ::c_long = 286; +pub const SYS_getpeername: ::c_long = 287; +pub const SYS_socketpair: ::c_long = 288; +pub const SYS_send: ::c_long = 289; +pub const SYS_sendto: ::c_long = 290; +pub const SYS_recv: ::c_long = 291; +pub const SYS_recvfrom: ::c_long = 292; +pub const SYS_shutdown: ::c_long = 293; +pub const SYS_setsockopt: ::c_long = 294; +pub const SYS_getsockopt: ::c_long = 295; +pub const SYS_sendmsg: ::c_long = 296; +pub const SYS_recvmsg: ::c_long = 297; +pub const SYS_semop: ::c_long = 298; +pub const SYS_semget: ::c_long = 299; +pub const SYS_semctl: ::c_long = 300; +pub const SYS_msgsnd: ::c_long = 301; +pub const SYS_msgrcv: ::c_long = 302; +pub const SYS_msgget: ::c_long = 303; +pub const SYS_msgctl: ::c_long = 304; +pub const SYS_shmat: ::c_long = 305; +pub const SYS_shmdt: ::c_long = 306; +pub const SYS_shmget: ::c_long = 307; +pub const SYS_shmctl: ::c_long = 308; +pub const SYS_add_key: ::c_long = 309; +pub const SYS_request_key: ::c_long = 310; +pub const SYS_keyctl: ::c_long = 311; +pub const SYS_semtimedop: ::c_long = 312; +pub const SYS_vserver: ::c_long = 313; +pub const SYS_ioprio_set: ::c_long = 314; +pub const SYS_ioprio_get: ::c_long = 315; +pub const SYS_inotify_init: ::c_long = 316; +pub const SYS_inotify_add_watch: ::c_long = 317; +pub const SYS_inotify_rm_watch: ::c_long = 318; +pub const SYS_mbind: ::c_long = 319; +pub const SYS_get_mempolicy: ::c_long = 320; +pub const SYS_set_mempolicy: ::c_long = 321; +pub const SYS_openat: ::c_long = 322; +pub const SYS_mkdirat: ::c_long = 323; +pub const SYS_mknodat: ::c_long = 324; +pub const SYS_fchownat: ::c_long = 325; +pub const SYS_futimesat: ::c_long = 326; +pub const SYS_fstatat64: ::c_long = 327; +pub const SYS_unlinkat: ::c_long = 328; +pub const SYS_renameat: ::c_long = 329; +pub const SYS_linkat: ::c_long = 330; +pub const SYS_symlinkat: ::c_long = 331; +pub const SYS_readlinkat: ::c_long = 332; +pub const SYS_fchmodat: ::c_long = 333; +pub const SYS_faccessat: ::c_long = 334; +pub const SYS_pselect6: ::c_long = 335; +pub const SYS_ppoll: ::c_long = 336; +pub const SYS_unshare: ::c_long = 337; +pub const SYS_set_robust_list: ::c_long = 338; +pub const SYS_get_robust_list: ::c_long = 339; +pub const SYS_splice: ::c_long = 340; +pub const SYS_tee: ::c_long = 342; +pub const SYS_vmsplice: ::c_long = 343; +pub const SYS_move_pages: ::c_long = 344; +pub const SYS_getcpu: ::c_long = 345; +pub const SYS_epoll_pwait: ::c_long = 346; +pub const SYS_kexec_load: ::c_long = 347; +pub const SYS_utimensat: ::c_long = 348; +pub const SYS_signalfd: ::c_long = 349; +pub const SYS_timerfd_create: ::c_long = 350; +pub const SYS_eventfd: ::c_long = 351; +pub const SYS_fallocate: ::c_long = 352; +pub const SYS_timerfd_settime: ::c_long = 353; +pub const SYS_timerfd_gettime: ::c_long = 354; +pub const SYS_signalfd4: ::c_long = 355; +pub const SYS_eventfd2: ::c_long = 356; +pub const SYS_epoll_create1: ::c_long = 357; +pub const SYS_dup3: ::c_long = 358; +pub const SYS_pipe2: ::c_long = 359; +pub const SYS_inotify_init1: ::c_long = 360; +pub const SYS_preadv: ::c_long = 361; +pub const SYS_pwritev: ::c_long = 362; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 363; +pub const SYS_perf_event_open: ::c_long = 364; +pub const SYS_recvmmsg: ::c_long = 365; +pub const SYS_accept4: ::c_long = 366; +pub const SYS_fanotify_init: ::c_long = 367; +pub const SYS_fanotify_mark: ::c_long = 368; +pub const SYS_prlimit64: ::c_long = 369; +pub const SYS_name_to_handle_at: ::c_long = 370; +pub const SYS_open_by_handle_at: ::c_long = 371; +pub const SYS_clock_adjtime: ::c_long = 372; +pub const SYS_syncfs: ::c_long = 373; +pub const SYS_sendmmsg: ::c_long = 374; +pub const SYS_setns: ::c_long = 375; +pub const SYS_process_vm_readv: ::c_long = 376; +pub const SYS_process_vm_writev: ::c_long = 377; +pub const SYS_kcmp: ::c_long = 378; +pub const SYS_finit_module: ::c_long = 379; +pub const SYS_sched_setattr: ::c_long = 380; +pub const SYS_sched_getattr: ::c_long = 381; +pub const SYS_renameat2: ::c_long = 382; +pub const SYS_seccomp: ::c_long = 383; +pub const SYS_getrandom: ::c_long = 384; +pub const SYS_memfd_create: ::c_long = 385; +pub const SYS_bpf: ::c_long = 386; +pub const SYS_execveat: ::c_long = 387; +pub const SYS_userfaultfd: ::c_long = 388; +pub const SYS_membarrier: ::c_long = 389; +pub const SYS_mlock2: ::c_long = 390; +pub const SYS_copy_file_range: ::c_long = 391; +pub const SYS_preadv2: ::c_long = 392; +pub const SYS_pwritev2: ::c_long = 393; +pub const SYS_pkey_mprotect: ::c_long = 394; +pub const SYS_pkey_alloc: ::c_long = 395; +pub const SYS_pkey_free: ::c_long = 396; +// FIXME: should be a `c_long` too, but a bug slipped in. +pub const SYS_statx: ::c_int = 397; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } else { + mod no_align; + pub use self::no_align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/no_align.rs new file mode 100644 index 000000000..e32bf673d --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/no_align.rs @@ -0,0 +1,10 @@ +s! { + // FIXME this is actually a union + pub struct sem_t { + #[cfg(target_pointer_width = "32")] + __size: [::c_char; 16], + #[cfg(target_pointer_width = "64")] + __size: [::c_char; 32], + __align: [::c_long; 0], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs new file mode 100644 index 000000000..4a0e07460 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs @@ -0,0 +1,13 @@ +s! { + // FIXME this is actually a union + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + pub struct sem_t { + #[cfg(target_pointer_width = "32")] + __size: [::c_char; 16], + #[cfg(target_pointer_width = "64")] + __size: [::c_char; 32], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs new file mode 100644 index 000000000..a5aca85a3 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -0,0 +1,692 @@ +pub type c_char = i8; +pub type c_long = i32; +pub type c_ulong = u32; +pub type clock_t = i32; +pub type time_t = i32; +pub type suseconds_t = i32; +pub type wchar_t = i32; +pub type off_t = i32; +pub type ino_t = u32; +pub type blkcnt_t = i32; +pub type blksize_t = i32; +pub type nlink_t = u32; +pub type fsblkcnt_t = ::c_ulong; +pub type fsfilcnt_t = ::c_ulong; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; +pub type fsblkcnt64_t = u64; +pub type fsfilcnt64_t = u64; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + st_pad1: [::c_long; 2], + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_pad2: [::c_long; 1], + pub st_size: ::off_t, + st_pad3: ::c_long, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + st_pad5: [::c_long; 14], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + st_pad1: [::c_long; 2], + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + st_pad2: [::c_long; 2], + pub st_size: ::off64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + st_pad3: ::c_long, + pub st_blocks: ::blkcnt64_t, + st_pad5: [::c_long; 14], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsfilcnt64_t, + pub f_ffree: ::fsfilcnt64_t, + pub f_favail: ::fsfilcnt64_t, + pub f_fsid: ::c_ulong, + pub __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub __f_spare: [::c_int; 6], + } + + pub struct pthread_attr_t { + __size: [u32; 9] + } + + pub struct sigaction { + pub sa_flags: ::c_uint, + pub sa_sigaction: ::sighandler_t, + pub sa_mask: sigset_t, + _restorer: *mut ::c_void, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } + + pub struct sigset_t { + __val: [::c_ulong; 4], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_code: ::c_int, + pub si_errno: ::c_int, + pub _pad: [::c_int; 29], + } + + pub struct glob64_t { + pub gl_pathc: ::size_t, + pub gl_pathv: *mut *mut ::c_char, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + + __unused1: *mut ::c_void, + __unused2: *mut ::c_void, + __unused3: *mut ::c_void, + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_uint, + pub __seq: ::c_ushort, + __pad1: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused4: ::c_ulong, + __unused5: ::c_ulong + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + #[cfg(target_endian = "big")] + __glibc_reserved1: ::c_ulong, + pub msg_stime: ::time_t, + #[cfg(target_endian = "little")] + __glibc_reserved1: ::c_ulong, + #[cfg(target_endian = "big")] + __glibc_reserved2: ::c_ulong, + pub msg_rtime: ::time_t, + #[cfg(target_endian = "little")] + __glibc_reserved2: ::c_ulong, + #[cfg(target_endian = "big")] + __glibc_reserved3: ::c_ulong, + pub msg_ctime: ::time_t, + #[cfg(target_endian = "little")] + __glibc_reserved3: ::c_ulong, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __glibc_reserved4: ::c_ulong, + __glibc_reserved5: ::c_ulong, + } + + pub struct statfs { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_frsize: ::c_long, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_files: ::fsblkcnt_t, + pub f_ffree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::c_long, + f_spare: [::c_long; 6], + } + + pub struct statfs64 { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_frsize: ::c_long, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_files: ::fsblkcnt64_t, + pub f_ffree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 5], + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::size_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: ::size_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; ::NCCS], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_sysid: ::c_long, + pub l_pid: ::pid_t, + pad: [::c_long; 4], + } + + pub struct sysinfo { + pub uptime: ::c_long, + pub loads: [::c_ulong; 3], + pub totalram: ::c_ulong, + pub freeram: ::c_ulong, + pub sharedram: ::c_ulong, + pub bufferram: ::c_ulong, + pub totalswap: ::c_ulong, + pub freeswap: ::c_ulong, + pub procs: ::c_ushort, + pub pad: ::c_ushort, + pub totalhigh: ::c_ulong, + pub freehigh: ::c_ulong, + pub mem_unit: ::c_uint, + pub _f: [::c_char; 8], + } +} + +pub const __SIZEOF_PTHREAD_ATTR_T: usize = 36; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; + +pub const SYS_syscall: ::c_long = 4000 + 0; +pub const SYS_exit: ::c_long = 4000 + 1; +pub const SYS_fork: ::c_long = 4000 + 2; +pub const SYS_read: ::c_long = 4000 + 3; +pub const SYS_write: ::c_long = 4000 + 4; +pub const SYS_open: ::c_long = 4000 + 5; +pub const SYS_close: ::c_long = 4000 + 6; +pub const SYS_waitpid: ::c_long = 4000 + 7; +pub const SYS_creat: ::c_long = 4000 + 8; +pub const SYS_link: ::c_long = 4000 + 9; +pub const SYS_unlink: ::c_long = 4000 + 10; +pub const SYS_execve: ::c_long = 4000 + 11; +pub const SYS_chdir: ::c_long = 4000 + 12; +pub const SYS_time: ::c_long = 4000 + 13; +pub const SYS_mknod: ::c_long = 4000 + 14; +pub const SYS_chmod: ::c_long = 4000 + 15; +pub const SYS_lchown: ::c_long = 4000 + 16; +pub const SYS_break: ::c_long = 4000 + 17; +pub const SYS_lseek: ::c_long = 4000 + 19; +pub const SYS_getpid: ::c_long = 4000 + 20; +pub const SYS_mount: ::c_long = 4000 + 21; +pub const SYS_umount: ::c_long = 4000 + 22; +pub const SYS_setuid: ::c_long = 4000 + 23; +pub const SYS_getuid: ::c_long = 4000 + 24; +pub const SYS_stime: ::c_long = 4000 + 25; +pub const SYS_ptrace: ::c_long = 4000 + 26; +pub const SYS_alarm: ::c_long = 4000 + 27; +pub const SYS_pause: ::c_long = 4000 + 29; +pub const SYS_utime: ::c_long = 4000 + 30; +pub const SYS_stty: ::c_long = 4000 + 31; +pub const SYS_gtty: ::c_long = 4000 + 32; +pub const SYS_access: ::c_long = 4000 + 33; +pub const SYS_nice: ::c_long = 4000 + 34; +pub const SYS_ftime: ::c_long = 4000 + 35; +pub const SYS_sync: ::c_long = 4000 + 36; +pub const SYS_kill: ::c_long = 4000 + 37; +pub const SYS_rename: ::c_long = 4000 + 38; +pub const SYS_mkdir: ::c_long = 4000 + 39; +pub const SYS_rmdir: ::c_long = 4000 + 40; +pub const SYS_dup: ::c_long = 4000 + 41; +pub const SYS_pipe: ::c_long = 4000 + 42; +pub const SYS_times: ::c_long = 4000 + 43; +pub const SYS_prof: ::c_long = 4000 + 44; +pub const SYS_brk: ::c_long = 4000 + 45; +pub const SYS_setgid: ::c_long = 4000 + 46; +pub const SYS_getgid: ::c_long = 4000 + 47; +pub const SYS_signal: ::c_long = 4000 + 48; +pub const SYS_geteuid: ::c_long = 4000 + 49; +pub const SYS_getegid: ::c_long = 4000 + 50; +pub const SYS_acct: ::c_long = 4000 + 51; +pub const SYS_umount2: ::c_long = 4000 + 52; +pub const SYS_lock: ::c_long = 4000 + 53; +pub const SYS_ioctl: ::c_long = 4000 + 54; +pub const SYS_fcntl: ::c_long = 4000 + 55; +pub const SYS_mpx: ::c_long = 4000 + 56; +pub const SYS_setpgid: ::c_long = 4000 + 57; +pub const SYS_ulimit: ::c_long = 4000 + 58; +pub const SYS_umask: ::c_long = 4000 + 60; +pub const SYS_chroot: ::c_long = 4000 + 61; +pub const SYS_ustat: ::c_long = 4000 + 62; +pub const SYS_dup2: ::c_long = 4000 + 63; +pub const SYS_getppid: ::c_long = 4000 + 64; +pub const SYS_getpgrp: ::c_long = 4000 + 65; +pub const SYS_setsid: ::c_long = 4000 + 66; +pub const SYS_sigaction: ::c_long = 4000 + 67; +pub const SYS_sgetmask: ::c_long = 4000 + 68; +pub const SYS_ssetmask: ::c_long = 4000 + 69; +pub const SYS_setreuid: ::c_long = 4000 + 70; +pub const SYS_setregid: ::c_long = 4000 + 71; +pub const SYS_sigsuspend: ::c_long = 4000 + 72; +pub const SYS_sigpending: ::c_long = 4000 + 73; +pub const SYS_sethostname: ::c_long = 4000 + 74; +pub const SYS_setrlimit: ::c_long = 4000 + 75; +pub const SYS_getrlimit: ::c_long = 4000 + 76; +pub const SYS_getrusage: ::c_long = 4000 + 77; +pub const SYS_gettimeofday: ::c_long = 4000 + 78; +pub const SYS_settimeofday: ::c_long = 4000 + 79; +pub const SYS_getgroups: ::c_long = 4000 + 80; +pub const SYS_setgroups: ::c_long = 4000 + 81; +pub const SYS_symlink: ::c_long = 4000 + 83; +pub const SYS_readlink: ::c_long = 4000 + 85; +pub const SYS_uselib: ::c_long = 4000 + 86; +pub const SYS_swapon: ::c_long = 4000 + 87; +pub const SYS_reboot: ::c_long = 4000 + 88; +pub const SYS_readdir: ::c_long = 4000 + 89; +pub const SYS_mmap: ::c_long = 4000 + 90; +pub const SYS_munmap: ::c_long = 4000 + 91; +pub const SYS_truncate: ::c_long = 4000 + 92; +pub const SYS_ftruncate: ::c_long = 4000 + 93; +pub const SYS_fchmod: ::c_long = 4000 + 94; +pub const SYS_fchown: ::c_long = 4000 + 95; +pub const SYS_getpriority: ::c_long = 4000 + 96; +pub const SYS_setpriority: ::c_long = 4000 + 97; +pub const SYS_profil: ::c_long = 4000 + 98; +pub const SYS_statfs: ::c_long = 4000 + 99; +pub const SYS_fstatfs: ::c_long = 4000 + 100; +pub const SYS_ioperm: ::c_long = 4000 + 101; +pub const SYS_socketcall: ::c_long = 4000 + 102; +pub const SYS_syslog: ::c_long = 4000 + 103; +pub const SYS_setitimer: ::c_long = 4000 + 104; +pub const SYS_getitimer: ::c_long = 4000 + 105; +pub const SYS_stat: ::c_long = 4000 + 106; +pub const SYS_lstat: ::c_long = 4000 + 107; +pub const SYS_fstat: ::c_long = 4000 + 108; +pub const SYS_iopl: ::c_long = 4000 + 110; +pub const SYS_vhangup: ::c_long = 4000 + 111; +pub const SYS_idle: ::c_long = 4000 + 112; +pub const SYS_vm86: ::c_long = 4000 + 113; +pub const SYS_wait4: ::c_long = 4000 + 114; +pub const SYS_swapoff: ::c_long = 4000 + 115; +pub const SYS_sysinfo: ::c_long = 4000 + 116; +pub const SYS_ipc: ::c_long = 4000 + 117; +pub const SYS_fsync: ::c_long = 4000 + 118; +pub const SYS_sigreturn: ::c_long = 4000 + 119; +pub const SYS_clone: ::c_long = 4000 + 120; +pub const SYS_setdomainname: ::c_long = 4000 + 121; +pub const SYS_uname: ::c_long = 4000 + 122; +pub const SYS_modify_ldt: ::c_long = 4000 + 123; +pub const SYS_adjtimex: ::c_long = 4000 + 124; +pub const SYS_mprotect: ::c_long = 4000 + 125; +pub const SYS_sigprocmask: ::c_long = 4000 + 126; +pub const SYS_create_module: ::c_long = 4000 + 127; +pub const SYS_init_module: ::c_long = 4000 + 128; +pub const SYS_delete_module: ::c_long = 4000 + 129; +pub const SYS_get_kernel_syms: ::c_long = 4000 + 130; +pub const SYS_quotactl: ::c_long = 4000 + 131; +pub const SYS_getpgid: ::c_long = 4000 + 132; +pub const SYS_fchdir: ::c_long = 4000 + 133; +pub const SYS_bdflush: ::c_long = 4000 + 134; +pub const SYS_sysfs: ::c_long = 4000 + 135; +pub const SYS_personality: ::c_long = 4000 + 136; +pub const SYS_afs_syscall: ::c_long = 4000 + 137; +pub const SYS_setfsuid: ::c_long = 4000 + 138; +pub const SYS_setfsgid: ::c_long = 4000 + 139; +pub const SYS__llseek: ::c_long = 4000 + 140; +pub const SYS_getdents: ::c_long = 4000 + 141; +pub const SYS__newselect: ::c_long = 4000 + 142; +pub const SYS_flock: ::c_long = 4000 + 143; +pub const SYS_msync: ::c_long = 4000 + 144; +pub const SYS_readv: ::c_long = 4000 + 145; +pub const SYS_writev: ::c_long = 4000 + 146; +pub const SYS_cacheflush: ::c_long = 4000 + 147; +pub const SYS_cachectl: ::c_long = 4000 + 148; +pub const SYS_sysmips: ::c_long = 4000 + 149; +pub const SYS_getsid: ::c_long = 4000 + 151; +pub const SYS_fdatasync: ::c_long = 4000 + 152; +pub const SYS__sysctl: ::c_long = 4000 + 153; +pub const SYS_mlock: ::c_long = 4000 + 154; +pub const SYS_munlock: ::c_long = 4000 + 155; +pub const SYS_mlockall: ::c_long = 4000 + 156; +pub const SYS_munlockall: ::c_long = 4000 + 157; +pub const SYS_sched_setparam: ::c_long = 4000 + 158; +pub const SYS_sched_getparam: ::c_long = 4000 + 159; +pub const SYS_sched_setscheduler: ::c_long = 4000 + 160; +pub const SYS_sched_getscheduler: ::c_long = 4000 + 161; +pub const SYS_sched_yield: ::c_long = 4000 + 162; +pub const SYS_sched_get_priority_max: ::c_long = 4000 + 163; +pub const SYS_sched_get_priority_min: ::c_long = 4000 + 164; +pub const SYS_sched_rr_get_interval: ::c_long = 4000 + 165; +pub const SYS_nanosleep: ::c_long = 4000 + 166; +pub const SYS_mremap: ::c_long = 4000 + 167; +pub const SYS_accept: ::c_long = 4000 + 168; +pub const SYS_bind: ::c_long = 4000 + 169; +pub const SYS_connect: ::c_long = 4000 + 170; +pub const SYS_getpeername: ::c_long = 4000 + 171; +pub const SYS_getsockname: ::c_long = 4000 + 172; +pub const SYS_getsockopt: ::c_long = 4000 + 173; +pub const SYS_listen: ::c_long = 4000 + 174; +pub const SYS_recv: ::c_long = 4000 + 175; +pub const SYS_recvfrom: ::c_long = 4000 + 176; +pub const SYS_recvmsg: ::c_long = 4000 + 177; +pub const SYS_send: ::c_long = 4000 + 178; +pub const SYS_sendmsg: ::c_long = 4000 + 179; +pub const SYS_sendto: ::c_long = 4000 + 180; +pub const SYS_setsockopt: ::c_long = 4000 + 181; +pub const SYS_shutdown: ::c_long = 4000 + 182; +pub const SYS_socket: ::c_long = 4000 + 183; +pub const SYS_socketpair: ::c_long = 4000 + 184; +pub const SYS_setresuid: ::c_long = 4000 + 185; +pub const SYS_getresuid: ::c_long = 4000 + 186; +pub const SYS_query_module: ::c_long = 4000 + 187; +pub const SYS_poll: ::c_long = 4000 + 188; +pub const SYS_nfsservctl: ::c_long = 4000 + 189; +pub const SYS_setresgid: ::c_long = 4000 + 190; +pub const SYS_getresgid: ::c_long = 4000 + 191; +pub const SYS_prctl: ::c_long = 4000 + 192; +pub const SYS_rt_sigreturn: ::c_long = 4000 + 193; +pub const SYS_rt_sigaction: ::c_long = 4000 + 194; +pub const SYS_rt_sigprocmask: ::c_long = 4000 + 195; +pub const SYS_rt_sigpending: ::c_long = 4000 + 196; +pub const SYS_rt_sigtimedwait: ::c_long = 4000 + 197; +pub const SYS_rt_sigqueueinfo: ::c_long = 4000 + 198; +pub const SYS_rt_sigsuspend: ::c_long = 4000 + 199; +pub const SYS_pread64: ::c_long = 4000 + 200; +pub const SYS_pwrite64: ::c_long = 4000 + 201; +pub const SYS_chown: ::c_long = 4000 + 202; +pub const SYS_getcwd: ::c_long = 4000 + 203; +pub const SYS_capget: ::c_long = 4000 + 204; +pub const SYS_capset: ::c_long = 4000 + 205; +pub const SYS_sigaltstack: ::c_long = 4000 + 206; +pub const SYS_sendfile: ::c_long = 4000 + 207; +pub const SYS_getpmsg: ::c_long = 4000 + 208; +pub const SYS_putpmsg: ::c_long = 4000 + 209; +pub const SYS_mmap2: ::c_long = 4000 + 210; +pub const SYS_truncate64: ::c_long = 4000 + 211; +pub const SYS_ftruncate64: ::c_long = 4000 + 212; +pub const SYS_stat64: ::c_long = 4000 + 213; +pub const SYS_lstat64: ::c_long = 4000 + 214; +pub const SYS_fstat64: ::c_long = 4000 + 215; +pub const SYS_pivot_root: ::c_long = 4000 + 216; +pub const SYS_mincore: ::c_long = 4000 + 217; +pub const SYS_madvise: ::c_long = 4000 + 218; +pub const SYS_getdents64: ::c_long = 4000 + 219; +pub const SYS_fcntl64: ::c_long = 4000 + 220; +pub const SYS_gettid: ::c_long = 4000 + 222; +pub const SYS_readahead: ::c_long = 4000 + 223; +pub const SYS_setxattr: ::c_long = 4000 + 224; +pub const SYS_lsetxattr: ::c_long = 4000 + 225; +pub const SYS_fsetxattr: ::c_long = 4000 + 226; +pub const SYS_getxattr: ::c_long = 4000 + 227; +pub const SYS_lgetxattr: ::c_long = 4000 + 228; +pub const SYS_fgetxattr: ::c_long = 4000 + 229; +pub const SYS_listxattr: ::c_long = 4000 + 230; +pub const SYS_llistxattr: ::c_long = 4000 + 231; +pub const SYS_flistxattr: ::c_long = 4000 + 232; +pub const SYS_removexattr: ::c_long = 4000 + 233; +pub const SYS_lremovexattr: ::c_long = 4000 + 234; +pub const SYS_fremovexattr: ::c_long = 4000 + 235; +pub const SYS_tkill: ::c_long = 4000 + 236; +pub const SYS_sendfile64: ::c_long = 4000 + 237; +pub const SYS_futex: ::c_long = 4000 + 238; +pub const SYS_sched_setaffinity: ::c_long = 4000 + 239; +pub const SYS_sched_getaffinity: ::c_long = 4000 + 240; +pub const SYS_io_setup: ::c_long = 4000 + 241; +pub const SYS_io_destroy: ::c_long = 4000 + 242; +pub const SYS_io_getevents: ::c_long = 4000 + 243; +pub const SYS_io_submit: ::c_long = 4000 + 244; +pub const SYS_io_cancel: ::c_long = 4000 + 245; +pub const SYS_exit_group: ::c_long = 4000 + 246; +pub const SYS_lookup_dcookie: ::c_long = 4000 + 247; +pub const SYS_epoll_create: ::c_long = 4000 + 248; +pub const SYS_epoll_ctl: ::c_long = 4000 + 249; +pub const SYS_epoll_wait: ::c_long = 4000 + 250; +pub const SYS_remap_file_pages: ::c_long = 4000 + 251; +pub const SYS_set_tid_address: ::c_long = 4000 + 252; +pub const SYS_restart_syscall: ::c_long = 4000 + 253; +pub const SYS_fadvise64: ::c_long = 4000 + 254; +pub const SYS_statfs64: ::c_long = 4000 + 255; +pub const SYS_fstatfs64: ::c_long = 4000 + 256; +pub const SYS_timer_create: ::c_long = 4000 + 257; +pub const SYS_timer_settime: ::c_long = 4000 + 258; +pub const SYS_timer_gettime: ::c_long = 4000 + 259; +pub const SYS_timer_getoverrun: ::c_long = 4000 + 260; +pub const SYS_timer_delete: ::c_long = 4000 + 261; +pub const SYS_clock_settime: ::c_long = 4000 + 262; +pub const SYS_clock_gettime: ::c_long = 4000 + 263; +pub const SYS_clock_getres: ::c_long = 4000 + 264; +pub const SYS_clock_nanosleep: ::c_long = 4000 + 265; +pub const SYS_tgkill: ::c_long = 4000 + 266; +pub const SYS_utimes: ::c_long = 4000 + 267; +pub const SYS_mbind: ::c_long = 4000 + 268; +pub const SYS_get_mempolicy: ::c_long = 4000 + 269; +pub const SYS_set_mempolicy: ::c_long = 4000 + 270; +pub const SYS_mq_open: ::c_long = 4000 + 271; +pub const SYS_mq_unlink: ::c_long = 4000 + 272; +pub const SYS_mq_timedsend: ::c_long = 4000 + 273; +pub const SYS_mq_timedreceive: ::c_long = 4000 + 274; +pub const SYS_mq_notify: ::c_long = 4000 + 275; +pub const SYS_mq_getsetattr: ::c_long = 4000 + 276; +pub const SYS_vserver: ::c_long = 4000 + 277; +pub const SYS_waitid: ::c_long = 4000 + 278; +/* pub const SYS_sys_setaltroot: ::c_long = 4000 + 279; */ +pub const SYS_add_key: ::c_long = 4000 + 280; +pub const SYS_request_key: ::c_long = 4000 + 281; +pub const SYS_keyctl: ::c_long = 4000 + 282; +pub const SYS_set_thread_area: ::c_long = 4000 + 283; +pub const SYS_inotify_init: ::c_long = 4000 + 284; +pub const SYS_inotify_add_watch: ::c_long = 4000 + 285; +pub const SYS_inotify_rm_watch: ::c_long = 4000 + 286; +pub const SYS_migrate_pages: ::c_long = 4000 + 287; +pub const SYS_openat: ::c_long = 4000 + 288; +pub const SYS_mkdirat: ::c_long = 4000 + 289; +pub const SYS_mknodat: ::c_long = 4000 + 290; +pub const SYS_fchownat: ::c_long = 4000 + 291; +pub const SYS_futimesat: ::c_long = 4000 + 292; +pub const SYS_fstatat64: ::c_long = 4000 + 293; +pub const SYS_unlinkat: ::c_long = 4000 + 294; +pub const SYS_renameat: ::c_long = 4000 + 295; +pub const SYS_linkat: ::c_long = 4000 + 296; +pub const SYS_symlinkat: ::c_long = 4000 + 297; +pub const SYS_readlinkat: ::c_long = 4000 + 298; +pub const SYS_fchmodat: ::c_long = 4000 + 299; +pub const SYS_faccessat: ::c_long = 4000 + 300; +pub const SYS_pselect6: ::c_long = 4000 + 301; +pub const SYS_ppoll: ::c_long = 4000 + 302; +pub const SYS_unshare: ::c_long = 4000 + 303; +pub const SYS_splice: ::c_long = 4000 + 304; +pub const SYS_sync_file_range: ::c_long = 4000 + 305; +pub const SYS_tee: ::c_long = 4000 + 306; +pub const SYS_vmsplice: ::c_long = 4000 + 307; +pub const SYS_move_pages: ::c_long = 4000 + 308; +pub const SYS_set_robust_list: ::c_long = 4000 + 309; +pub const SYS_get_robust_list: ::c_long = 4000 + 310; +pub const SYS_kexec_load: ::c_long = 4000 + 311; +pub const SYS_getcpu: ::c_long = 4000 + 312; +pub const SYS_epoll_pwait: ::c_long = 4000 + 313; +pub const SYS_ioprio_set: ::c_long = 4000 + 314; +pub const SYS_ioprio_get: ::c_long = 4000 + 315; +pub const SYS_utimensat: ::c_long = 4000 + 316; +pub const SYS_signalfd: ::c_long = 4000 + 317; +pub const SYS_timerfd: ::c_long = 4000 + 318; +pub const SYS_eventfd: ::c_long = 4000 + 319; +pub const SYS_fallocate: ::c_long = 4000 + 320; +pub const SYS_timerfd_create: ::c_long = 4000 + 321; +pub const SYS_timerfd_gettime: ::c_long = 4000 + 322; +pub const SYS_timerfd_settime: ::c_long = 4000 + 323; +pub const SYS_signalfd4: ::c_long = 4000 + 324; +pub const SYS_eventfd2: ::c_long = 4000 + 325; +pub const SYS_epoll_create1: ::c_long = 4000 + 326; +pub const SYS_dup3: ::c_long = 4000 + 327; +pub const SYS_pipe2: ::c_long = 4000 + 328; +pub const SYS_inotify_init1: ::c_long = 4000 + 329; +pub const SYS_preadv: ::c_long = 4000 + 330; +pub const SYS_pwritev: ::c_long = 4000 + 331; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 4000 + 332; +pub const SYS_perf_event_open: ::c_long = 4000 + 333; +pub const SYS_accept4: ::c_long = 4000 + 334; +pub const SYS_recvmmsg: ::c_long = 4000 + 335; +pub const SYS_fanotify_init: ::c_long = 4000 + 336; +pub const SYS_fanotify_mark: ::c_long = 4000 + 337; +pub const SYS_prlimit64: ::c_long = 4000 + 338; +pub const SYS_name_to_handle_at: ::c_long = 4000 + 339; +pub const SYS_open_by_handle_at: ::c_long = 4000 + 340; +pub const SYS_clock_adjtime: ::c_long = 4000 + 341; +pub const SYS_syncfs: ::c_long = 4000 + 342; +pub const SYS_sendmmsg: ::c_long = 4000 + 343; +pub const SYS_setns: ::c_long = 4000 + 344; +pub const SYS_process_vm_readv: ::c_long = 4000 + 345; +pub const SYS_process_vm_writev: ::c_long = 4000 + 346; +pub const SYS_kcmp: ::c_long = 4000 + 347; +pub const SYS_finit_module: ::c_long = 4000 + 348; +pub const SYS_sched_setattr: ::c_long = 4000 + 349; +pub const SYS_sched_getattr: ::c_long = 4000 + 350; +pub const SYS_renameat2: ::c_long = 4000 + 351; +pub const SYS_seccomp: ::c_long = 4000 + 352; +pub const SYS_getrandom: ::c_long = 4000 + 353; +pub const SYS_memfd_create: ::c_long = 4000 + 354; +pub const SYS_bpf: ::c_long = 4000 + 355; +pub const SYS_execveat: ::c_long = 4000 + 356; +pub const SYS_userfaultfd: ::c_long = 4000 + 357; +pub const SYS_membarrier: ::c_long = 4000 + 358; +pub const SYS_mlock2: ::c_long = 4000 + 359; +pub const SYS_copy_file_range: ::c_long = 4000 + 360; +pub const SYS_preadv2: ::c_long = 4000 + 361; +pub const SYS_pwritev2: ::c_long = 4000 + 362; +pub const SYS_pkey_mprotect: ::c_long = 4000 + 363; +pub const SYS_pkey_alloc: ::c_long = 4000 + 364; +pub const SYS_pkey_free: ::c_long = 4000 + 365; +pub const SYS_statx: ::c_long = 4000 + 366; +pub const SYS_pidfd_send_signal: ::c_long = 4000 + 424; +pub const SYS_io_uring_setup: ::c_long = 4000 + 425; +pub const SYS_io_uring_enter: ::c_long = 4000 + 426; +pub const SYS_io_uring_register: ::c_long = 4000 + 427; +pub const SYS_open_tree: ::c_long = 4000 + 428; +pub const SYS_move_mount: ::c_long = 4000 + 429; +pub const SYS_fsopen: ::c_long = 4000 + 430; +pub const SYS_fsconfig: ::c_long = 4000 + 431; +pub const SYS_fsmount: ::c_long = 4000 + 432; +pub const SYS_fspick: ::c_long = 4000 + 433; +pub const SYS_pidfd_open: ::c_long = 4000 + 434; +pub const SYS_clone3: ::c_long = 4000 + 435; +pub const SYS_close_range: ::c_long = 4000 + 436; +pub const SYS_openat2: ::c_long = 4000 + 437; +pub const SYS_pidfd_getfd: ::c_long = 4000 + 438; +pub const SYS_faccessat2: ::c_long = 4000 + 439; +pub const SYS_process_madvise: ::c_long = 4000 + 440; +pub const SYS_epoll_pwait2: ::c_long = 4000 + 441; +pub const SYS_mount_setattr: ::c_long = 4000 + 442; +pub const SYS_quotactl_fd: ::c_long = 4000 + 443; +pub const SYS_landlock_create_ruleset: ::c_long = 4000 + 444; +pub const SYS_landlock_add_rule: ::c_long = 4000 + 445; +pub const SYS_landlock_restrict_self: ::c_long = 4000 + 446; +pub const SYS_memfd_secret: ::c_long = 4000 + 447; +pub const SYS_process_mrelease: ::c_long = 4000 + 448; +pub const SYS_futex_waitv: ::c_long = 4000 + 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 4000 + 450; + +#[link(name = "util")] +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; + pub fn glob64( + pattern: *const ::c_char, + flags: ::c_int, + errfunc: ::Option ::c_int>, + pglob: *mut glob64_t, + ) -> ::c_int; + pub fn globfree64(pglob: *mut glob64_t); + pub fn pthread_attr_getaffinity_np( + attr: *const ::pthread_attr_t, + cpusetsize: ::size_t, + cpuset: *mut ::cpu_set_t, + ) -> ::c_int; + pub fn pthread_attr_setaffinity_np( + attr: *mut ::pthread_attr_t, + cpusetsize: ::size_t, + cpuset: *const ::cpu_set_t, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } else { + mod no_align; + pub use self::no_align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs new file mode 100644 index 000000000..e32bf673d --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs @@ -0,0 +1,10 @@ +s! { + // FIXME this is actually a union + pub struct sem_t { + #[cfg(target_pointer_width = "32")] + __size: [::c_char; 16], + #[cfg(target_pointer_width = "64")] + __size: [::c_char; 32], + __align: [::c_long; 0], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs new file mode 100644 index 000000000..21e21907d --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs @@ -0,0 +1,10 @@ +s! { + // FIXME this is actually a union + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + pub struct sem_t { + __size: [::c_char; 32], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs new file mode 100644 index 000000000..8ca100fcd --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs @@ -0,0 +1,207 @@ +pub type blkcnt_t = i64; +pub type blksize_t = i64; +pub type c_char = i8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type fsblkcnt_t = ::c_ulong; +pub type fsfilcnt_t = ::c_ulong; +pub type ino_t = u64; +pub type nlink_t = u64; +pub type off_t = i64; +pub type suseconds_t = i64; +pub type time_t = i64; +pub type wchar_t = i32; + +s! { + pub struct stat { + pub st_dev: ::c_ulong, + st_pad1: [::c_long; 2], + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::c_ulong, + st_pad2: [::c_ulong; 1], + pub st_size: ::off_t, + st_pad3: ::c_long, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + st_pad4: ::c_long, + pub st_blocks: ::blkcnt_t, + st_pad5: [::c_long; 7], + } + + pub struct stat64 { + pub st_dev: ::c_ulong, + st_pad1: [::c_long; 2], + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::c_ulong, + st_pad2: [::c_long; 2], + pub st_size: ::off64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + st_pad3: ::c_long, + pub st_blocks: ::blkcnt64_t, + st_pad5: [::c_long; 7], + } + + pub struct pthread_attr_t { + __size: [::c_ulong; 7] + } + + pub struct sigaction { + pub sa_flags: ::c_int, + pub sa_sigaction: ::sighandler_t, + pub sa_mask: sigset_t, + _restorer: *mut ::c_void, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } + + pub struct sigset_t { + __size: [::c_ulong; 16], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_code: ::c_int, + pub si_errno: ::c_int, + _pad: ::c_int, + _pad2: [::c_long; 14], + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_uint, + pub __seq: ::c_ushort, + __pad1: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused4: ::c_ulong, + __unused5: ::c_ulong + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + pub msg_rtime: ::time_t, + pub msg_ctime: ::time_t, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __glibc_reserved4: ::c_ulong, + __glibc_reserved5: ::c_ulong, + } + + pub struct statfs { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_frsize: ::c_long, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_files: ::fsblkcnt_t, + pub f_ffree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::c_long, + f_spare: [::c_long; 6], + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::size_t, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::size_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: ::size_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; ::NCCS], + } + + pub struct sysinfo { + pub uptime: ::c_long, + pub loads: [::c_ulong; 3], + pub totalram: ::c_ulong, + pub freeram: ::c_ulong, + pub sharedram: ::c_ulong, + pub bufferram: ::c_ulong, + pub totalswap: ::c_ulong, + pub freeswap: ::c_ulong, + pub procs: ::c_ushort, + pub pad: ::c_ushort, + pub totalhigh: ::c_ulong, + pub freehigh: ::c_ulong, + pub mem_unit: ::c_uint, + pub _f: [::c_char; 0], + } +} + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; + +pub const SYS_gettid: ::c_long = 5178; // Valid for n64 + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } else { + mod no_align; + pub use self::no_align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs new file mode 100644 index 000000000..8909114cd --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs @@ -0,0 +1,7 @@ +s! { + // FIXME this is actually a union + pub struct sem_t { + __size: [::c_char; 32], + __align: [::c_long; 0], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mod.rs new file mode 100644 index 000000000..56bfcc5d3 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mod.rs @@ -0,0 +1,310 @@ +pub type pthread_t = ::c_ulong; + +pub const SFD_CLOEXEC: ::c_int = 0x080000; + +pub const NCCS: usize = 32; + +pub const O_TRUNC: ::c_int = 512; + +pub const O_CLOEXEC: ::c_int = 0x80000; + +pub const EBFONT: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EDOTDOT: ::c_int = 73; + +pub const SA_NODEFER: ::c_int = 0x40000000; +pub const SA_RESETHAND: ::c_int = 0x80000000; +pub const SA_RESTART: ::c_int = 0x10000000; +pub const SA_NOCLDSTOP: ::c_int = 0x00000001; + +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; + +pub const EFD_CLOEXEC: ::c_int = 0x80000; + +pub const TMP_MAX: ::c_uint = 238328; +pub const _SC_2_C_VERSION: ::c_int = 96; +pub const O_ACCMODE: ::c_int = 3; +pub const O_DIRECT: ::c_int = 0x8000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_NOATIME: ::c_int = 0x40000; +pub const O_PATH: ::c_int = 0o010000000; + +pub const O_APPEND: ::c_int = 8; +pub const O_CREAT: ::c_int = 256; +pub const O_EXCL: ::c_int = 1024; +pub const O_NOCTTY: ::c_int = 2048; +pub const O_NONBLOCK: ::c_int = 128; +pub const O_SYNC: ::c_int = 0x10; +pub const O_RSYNC: ::c_int = 0x10; +pub const O_DSYNC: ::c_int = 0x10; +pub const O_FSYNC: ::c_int = 0x10; +pub const O_ASYNC: ::c_int = 0x1000; +pub const O_LARGEFILE: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x80; + +pub const SOCK_NONBLOCK: ::c_int = 128; +pub const PIDFD_NONBLOCK: ::c_int = 128; + +pub const EDEADLK: ::c_int = 45; +pub const ENAMETOOLONG: ::c_int = 78; +pub const ENOLCK: ::c_int = 46; +pub const ENOSYS: ::c_int = 89; +pub const ENOTEMPTY: ::c_int = 93; +pub const ELOOP: ::c_int = 90; +pub const ENOMSG: ::c_int = 35; +pub const EIDRM: ::c_int = 36; +pub const ECHRNG: ::c_int = 37; +pub const EL2NSYNC: ::c_int = 38; +pub const EL3HLT: ::c_int = 39; +pub const EL3RST: ::c_int = 40; +pub const ELNRNG: ::c_int = 41; +pub const EUNATCH: ::c_int = 42; +pub const ENOCSI: ::c_int = 43; +pub const EL2HLT: ::c_int = 44; +pub const EBADE: ::c_int = 50; +pub const EBADR: ::c_int = 51; +pub const EXFULL: ::c_int = 52; +pub const FFDLY: ::c_int = 0o0100000; +pub const ENOANO: ::c_int = 53; +pub const EBADRQC: ::c_int = 54; +pub const EBADSLT: ::c_int = 55; +pub const EMULTIHOP: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 79; +pub const ENOTUNIQ: ::c_int = 80; +pub const EBADFD: ::c_int = 81; +pub const EBADMSG: ::c_int = 77; +pub const EREMCHG: ::c_int = 82; +pub const ELIBACC: ::c_int = 83; +pub const ELIBBAD: ::c_int = 84; +pub const ELIBSCN: ::c_int = 85; +pub const ELIBMAX: ::c_int = 86; +pub const ELIBEXEC: ::c_int = 87; +pub const EILSEQ: ::c_int = 88; +pub const ERESTART: ::c_int = 91; +pub const ESTRPIPE: ::c_int = 92; +pub const EUSERS: ::c_int = 94; +pub const ENOTSOCK: ::c_int = 95; +pub const EDESTADDRREQ: ::c_int = 96; +pub const EMSGSIZE: ::c_int = 97; +pub const EPROTOTYPE: ::c_int = 98; +pub const ENOPROTOOPT: ::c_int = 99; +pub const EPROTONOSUPPORT: ::c_int = 120; +pub const ESOCKTNOSUPPORT: ::c_int = 121; +pub const EOPNOTSUPP: ::c_int = 122; +pub const EPFNOSUPPORT: ::c_int = 123; +pub const EAFNOSUPPORT: ::c_int = 124; +pub const EADDRINUSE: ::c_int = 125; +pub const EADDRNOTAVAIL: ::c_int = 126; +pub const ENETDOWN: ::c_int = 127; +pub const ENETUNREACH: ::c_int = 128; +pub const ENETRESET: ::c_int = 129; +pub const ECONNABORTED: ::c_int = 130; +pub const ECONNRESET: ::c_int = 131; +pub const ENOBUFS: ::c_int = 132; +pub const EISCONN: ::c_int = 133; +pub const ENOTCONN: ::c_int = 134; +pub const ESHUTDOWN: ::c_int = 143; +pub const ETOOMANYREFS: ::c_int = 144; +pub const ETIMEDOUT: ::c_int = 145; +pub const ECONNREFUSED: ::c_int = 146; +pub const EHOSTDOWN: ::c_int = 147; +pub const EHOSTUNREACH: ::c_int = 148; +pub const EALREADY: ::c_int = 149; +pub const EINPROGRESS: ::c_int = 150; +pub const ESTALE: ::c_int = 151; +pub const EUCLEAN: ::c_int = 135; +pub const ENOTNAM: ::c_int = 137; +pub const ENAVAIL: ::c_int = 138; +pub const EISNAM: ::c_int = 139; +pub const EREMOTEIO: ::c_int = 140; +pub const EDQUOT: ::c_int = 1133; +pub const ENOMEDIUM: ::c_int = 159; +pub const EMEDIUMTYPE: ::c_int = 160; +pub const ECANCELED: ::c_int = 158; +pub const ENOKEY: ::c_int = 161; +pub const EKEYEXPIRED: ::c_int = 162; +pub const EKEYREVOKED: ::c_int = 163; +pub const EKEYREJECTED: ::c_int = 164; +pub const EOWNERDEAD: ::c_int = 165; +pub const ENOTRECOVERABLE: ::c_int = 166; +pub const ERFKILL: ::c_int = 167; + +pub const MAP_NORESERVE: ::c_int = 0x400; +pub const MAP_ANON: ::c_int = 0x800; +pub const MAP_ANONYMOUS: ::c_int = 0x800; +pub const MAP_GROWSDOWN: ::c_int = 0x1000; +pub const MAP_DENYWRITE: ::c_int = 0x2000; +pub const MAP_EXECUTABLE: ::c_int = 0x4000; +pub const MAP_LOCKED: ::c_int = 0x8000; +pub const MAP_POPULATE: ::c_int = 0x10000; +pub const MAP_NONBLOCK: ::c_int = 0x20000; +pub const MAP_STACK: ::c_int = 0x40000; + +pub const NLDLY: ::tcflag_t = 0o0000400; + +pub const SOCK_STREAM: ::c_int = 2; +pub const SOCK_DGRAM: ::c_int = 1; +pub const SOCK_SEQPACKET: ::c_int = 5; + +pub const SA_ONSTACK: ::c_uint = 0x08000000; +pub const SA_SIGINFO: ::c_uint = 0x00000008; +pub const SA_NOCLDWAIT: ::c_int = 0x00010000; + +pub const SIGCHLD: ::c_int = 18; +pub const SIGBUS: ::c_int = 10; +pub const SIGTTIN: ::c_int = 26; +pub const SIGTTOU: ::c_int = 27; +pub const SIGXCPU: ::c_int = 30; +pub const SIGXFSZ: ::c_int = 31; +pub const SIGVTALRM: ::c_int = 28; +pub const SIGPROF: ::c_int = 29; +pub const SIGWINCH: ::c_int = 20; +pub const SIGUSR1: ::c_int = 16; +pub const SIGUSR2: ::c_int = 17; +pub const SIGCONT: ::c_int = 25; +pub const SIGSTOP: ::c_int = 23; +pub const SIGTSTP: ::c_int = 24; +pub const SIGURG: ::c_int = 21; +pub const SIGIO: ::c_int = 22; +pub const SIGSYS: ::c_int = 12; +pub const SIGPWR: ::c_int = 19; +pub const SIG_SETMASK: ::c_int = 3; +pub const SIG_BLOCK: ::c_int = 0x1; +pub const SIG_UNBLOCK: ::c_int = 0x2; + +pub const POLLWRNORM: ::c_short = 0x004; +pub const POLLWRBAND: ::c_short = 0x100; + +pub const PTHREAD_STACK_MIN: ::size_t = 16384; + +pub const VEOF: usize = 16; +pub const VEOL: usize = 17; +pub const VEOL2: usize = 6; +pub const VMIN: usize = 4; +pub const IEXTEN: ::tcflag_t = 0x00000100; +pub const TOSTOP: ::tcflag_t = 0x00008000; +pub const FLUSHO: ::tcflag_t = 0x00002000; +pub const TCSANOW: ::c_int = 0x540e; +pub const TCSADRAIN: ::c_int = 0x540f; +pub const TCSAFLUSH: ::c_int = 0x5410; + +pub const CPU_SETSIZE: ::c_int = 0x400; + +pub const EFD_NONBLOCK: ::c_int = 0x80; + +pub const F_GETLK: ::c_int = 14; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; + +pub const SFD_NONBLOCK: ::c_int = 0x80; + +pub const RTLD_GLOBAL: ::c_int = 0x4; + +pub const SIGSTKSZ: ::size_t = 8192; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const CBAUDEX: ::tcflag_t = 0o0010000; +pub const CIBAUD: ::tcflag_t = 0o002003600000; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const TABDLY: ::tcflag_t = 0o0014000; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const BSDLY: ::tcflag_t = 0o0020000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const XTABS: ::tcflag_t = 0o0014000; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSWTC: usize = 7; +pub const VTDLY: ::c_int = 0o0040000; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const OLCUC: ::tcflag_t = 0o0000002; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CRDLY: ::c_int = 0o0003000; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; + +pub const MAP_HUGETLB: ::c_int = 0x80000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +cfg_if! { + if #[cfg(target_arch = "mips")] { + mod mips32; + pub use self::mips32::*; + } else if #[cfg(target_arch = "mips64")] { + mod mips64; + pub use self::mips64::*; + } else { + // Unknown target_arch + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mod.rs new file mode 100644 index 000000000..4a01e0cd8 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mod.rs @@ -0,0 +1,392 @@ +pub type shmatt_t = ::c_ulong; +pub type msgqnum_t = ::c_ulong; +pub type msglen_t = ::c_ulong; +pub type regoff_t = ::c_int; +pub type rlim_t = ::c_ulong; +pub type __rlimit_resource_t = ::c_ulong; +pub type __priority_which_t = ::c_uint; + +cfg_if! { + if #[cfg(doc)] { + // Used in `linux::arch` to define ioctl constants. + pub(crate) type Ioctl = ::c_ulong; + } else { + #[doc(hidden)] + pub type Ioctl = ::c_ulong; + } +} + +s! { + pub struct statvfs { // Different than GNU! + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + #[cfg(target_endian = "little")] + pub f_fsid: ::c_ulong, + #[cfg(target_pointer_width = "32")] + __f_unused: ::c_int, + #[cfg(target_endian = "big")] + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct regex_t { + __buffer: *mut ::c_void, + __allocated: ::size_t, + __used: ::size_t, + __syntax: ::c_ulong, + __fastmap: *mut ::c_char, + __translate: *mut ::c_char, + __re_nsub: ::size_t, + __bitfield: u8, + } + + pub struct rtentry { + pub rt_pad1: ::c_ulong, + pub rt_dst: ::sockaddr, + pub rt_gateway: ::sockaddr, + pub rt_genmask: ::sockaddr, + pub rt_flags: ::c_ushort, + pub rt_pad2: ::c_short, + pub rt_pad3: ::c_ulong, + pub rt_tos: ::c_uchar, + pub rt_class: ::c_uchar, + #[cfg(target_pointer_width = "64")] + pub rt_pad4: [::c_short; 3usize], + #[cfg(not(target_pointer_width = "64"))] + pub rt_pad4: ::c_short, + pub rt_metric: ::c_short, + pub rt_dev: *mut ::c_char, + pub rt_mtu: ::c_ulong, + pub rt_window: ::c_ulong, + pub rt_irtt: ::c_ushort, + } + + pub struct __exit_status { + pub e_termination: ::c_short, + pub e_exit: ::c_short, + } + + pub struct ptrace_peeksiginfo_args { + pub off: ::__u64, + pub flags: ::__u32, + pub nr: ::__s32, + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + #[repr(C)] + struct siginfo_sigfault { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + si_addr: *mut ::c_void, + } + (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_si_value { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + _si_timerid: ::c_int, + _si_overrun: ::c_int, + si_value: ::sigval, + } + (*(self as *const siginfo_t as *const siginfo_si_value)).si_value + } +} + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const SIGEV_THREAD_ID: ::c_int = 4; + +pub const AF_VSOCK: ::c_int = 40; + +// Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the +// following are only available on newer Linux versions than the versions +// currently used in CI in some configurations, so we define them here. +pub const BINDERFS_SUPER_MAGIC: ::c_long = 0x6c6f6f70; +pub const XFS_SUPER_MAGIC: ::c_long = 0x58465342; + +pub const PTRACE_TRACEME: ::c_int = 0; +pub const PTRACE_PEEKTEXT: ::c_int = 1; +pub const PTRACE_PEEKDATA: ::c_int = 2; +pub const PTRACE_PEEKUSER: ::c_int = 3; +pub const PTRACE_POKETEXT: ::c_int = 4; +pub const PTRACE_POKEDATA: ::c_int = 5; +pub const PTRACE_POKEUSER: ::c_int = 6; +pub const PTRACE_CONT: ::c_int = 7; +pub const PTRACE_KILL: ::c_int = 8; +pub const PTRACE_SINGLESTEP: ::c_int = 9; +pub const PTRACE_GETREGS: ::c_int = 12; +pub const PTRACE_SETREGS: ::c_int = 13; +pub const PTRACE_GETFPREGS: ::c_int = 14; +pub const PTRACE_SETFPREGS: ::c_int = 15; +pub const PTRACE_ATTACH: ::c_int = 16; +pub const PTRACE_DETACH: ::c_int = 17; +pub const PTRACE_GETFPXREGS: ::c_int = 18; +pub const PTRACE_SETFPXREGS: ::c_int = 19; +pub const PTRACE_SYSCALL: ::c_int = 24; +pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; +pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; +pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; +pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; +pub const PTRACE_GETREGSET: ::c_int = 0x4204; +pub const PTRACE_SETREGSET: ::c_int = 0x4205; +pub const PTRACE_SEIZE: ::c_int = 0x4206; +pub const PTRACE_INTERRUPT: ::c_int = 0x4207; +pub const PTRACE_LISTEN: ::c_int = 0x4208; + +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + +// These are different than GNU! +pub const LC_CTYPE: ::c_int = 0; +pub const LC_NUMERIC: ::c_int = 1; +pub const LC_TIME: ::c_int = 3; +pub const LC_COLLATE: ::c_int = 4; +pub const LC_MONETARY: ::c_int = 2; +pub const LC_MESSAGES: ::c_int = 5; +pub const LC_ALL: ::c_int = 6; +// end different section + +// MS_ flags for mount(2) +pub const MS_RMT_MASK: ::c_ulong = ::MS_RDONLY | ::MS_SYNCHRONOUS | ::MS_MANDLOCK | ::MS_I_VERSION; + +pub const ENOTSUP: ::c_int = EOPNOTSUPP; + +pub const IPV6_JOIN_GROUP: ::c_int = 20; +pub const IPV6_LEAVE_GROUP: ::c_int = 21; + +// These are different from GNU +pub const ABDAY_1: ::nl_item = 0x300; +pub const ABDAY_2: ::nl_item = 0x301; +pub const ABDAY_3: ::nl_item = 0x302; +pub const ABDAY_4: ::nl_item = 0x303; +pub const ABDAY_5: ::nl_item = 0x304; +pub const ABDAY_6: ::nl_item = 0x305; +pub const ABDAY_7: ::nl_item = 0x306; +pub const DAY_1: ::nl_item = 0x307; +pub const DAY_2: ::nl_item = 0x308; +pub const DAY_3: ::nl_item = 0x309; +pub const DAY_4: ::nl_item = 0x30A; +pub const DAY_5: ::nl_item = 0x30B; +pub const DAY_6: ::nl_item = 0x30C; +pub const DAY_7: ::nl_item = 0x30D; +pub const ABMON_1: ::nl_item = 0x30E; +pub const ABMON_2: ::nl_item = 0x30F; +pub const ABMON_3: ::nl_item = 0x310; +pub const ABMON_4: ::nl_item = 0x311; +pub const ABMON_5: ::nl_item = 0x312; +pub const ABMON_6: ::nl_item = 0x313; +pub const ABMON_7: ::nl_item = 0x314; +pub const ABMON_8: ::nl_item = 0x315; +pub const ABMON_9: ::nl_item = 0x316; +pub const ABMON_10: ::nl_item = 0x317; +pub const ABMON_11: ::nl_item = 0x318; +pub const ABMON_12: ::nl_item = 0x319; +pub const MON_1: ::nl_item = 0x31A; +pub const MON_2: ::nl_item = 0x31B; +pub const MON_3: ::nl_item = 0x31C; +pub const MON_4: ::nl_item = 0x31D; +pub const MON_5: ::nl_item = 0x31E; +pub const MON_6: ::nl_item = 0x31F; +pub const MON_7: ::nl_item = 0x320; +pub const MON_8: ::nl_item = 0x321; +pub const MON_9: ::nl_item = 0x322; +pub const MON_10: ::nl_item = 0x323; +pub const MON_11: ::nl_item = 0x324; +pub const MON_12: ::nl_item = 0x325; +pub const AM_STR: ::nl_item = 0x326; +pub const PM_STR: ::nl_item = 0x327; +pub const D_T_FMT: ::nl_item = 0x328; +pub const D_FMT: ::nl_item = 0x329; +pub const T_FMT: ::nl_item = 0x32A; +pub const T_FMT_AMPM: ::nl_item = 0x32B; +pub const ERA: ::nl_item = 0x32C; +pub const ERA_D_FMT: ::nl_item = 0x32E; +pub const ALT_DIGITS: ::nl_item = 0x32F; +pub const ERA_D_T_FMT: ::nl_item = 0x330; +pub const ERA_T_FMT: ::nl_item = 0x331; +pub const CODESET: ::nl_item = 10; +pub const CRNCYSTR: ::nl_item = 0x215; +pub const RADIXCHAR: ::nl_item = 0x100; +pub const THOUSEP: ::nl_item = 0x101; +pub const NOEXPR: ::nl_item = 0x501; +pub const YESSTR: ::nl_item = 0x502; +pub const NOSTR: ::nl_item = 0x503; + +// Different than Gnu. +pub const FILENAME_MAX: ::c_uint = 4095; + +pub const PRIO_PROCESS: ::c_int = 0; +pub const PRIO_PGRP: ::c_int = 1; +pub const PRIO_USER: ::c_int = 2; + +pub const SOMAXCONN: ::c_int = 128; + +pub const ST_RELATIME: ::c_ulong = 4096; + +pub const AF_NFC: ::c_int = PF_NFC; +pub const BUFSIZ: ::c_int = 4096; +pub const EDEADLOCK: ::c_int = EDEADLK; +pub const EXTA: ::c_uint = B19200; +pub const EXTB: ::c_uint = B38400; +pub const EXTPROC: ::tcflag_t = 0200000; +pub const FAN_MARK_FILESYSTEM: ::c_int = 0x00000100; +pub const FAN_MARK_INODE: ::c_int = 0x00000000; +pub const FAN_MARK_MOUNT: ::c_int = 0x10; +pub const FOPEN_MAX: ::c_int = 16; +pub const F_GETOWN: ::c_int = 9; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; +pub const F_RDLCK: ::c_int = 0; +pub const F_SETOWN: ::c_int = 8; +pub const F_UNLCK: ::c_int = 2; +pub const F_WRLCK: ::c_int = 1; +pub const IPV6_MULTICAST_ALL: ::c_int = 29; +pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; +pub const MAP_HUGE_SHIFT: ::c_int = 26; +pub const MAP_HUGE_MASK: ::c_int = 0x3f; +pub const MAP_HUGE_64KB: ::c_int = 16 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_512KB: ::c_int = 19 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_1MB: ::c_int = 20 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_2MB: ::c_int = 21 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_8MB: ::c_int = 23 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_16MB: ::c_int = 24 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_32MB: ::c_int = 25 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_256MB: ::c_int = 28 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_512MB: ::c_int = 29 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_1GB: ::c_int = 30 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_2GB: ::c_int = 31 << MAP_HUGE_SHIFT; +pub const MAP_HUGE_16GB: ::c_int = 34 << MAP_HUGE_SHIFT; +pub const MINSIGSTKSZ: ::c_int = 2048; +pub const MSG_COPY: ::c_int = 040000; +pub const NI_MAXHOST: ::socklen_t = 1025; +pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; +pub const PACKET_MR_UNICAST: ::c_int = 3; +pub const PF_NFC: ::c_int = 39; +pub const PF_VSOCK: ::c_int = 40; +pub const POSIX_MADV_DONTNEED: ::c_int = 4; +pub const PTRACE_EVENT_STOP: ::c_int = 128; +pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; +pub const RTLD_NOLOAD: ::c_int = 0x00004; +pub const RUSAGE_THREAD: ::c_int = 1; +pub const SHM_EXEC: ::c_int = 0100000; +pub const SIGPOLL: ::c_int = SIGIO; +pub const SOCK_DCCP: ::c_int = 6; +pub const SOCK_PACKET: ::c_int = 10; +pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15; +pub const UDP_GRO: ::c_int = 104; +pub const UDP_SEGMENT: ::c_int = 103; +pub const YESEXPR: ::c_int = ((5) << 8) | (0); + +extern "C" { + pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + + pub fn pthread_rwlockattr_getkind_np( + attr: *const ::pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setkind_np( + attr: *mut ::pthread_rwlockattr_t, + val: ::c_int, + ) -> ::c_int; + + pub fn ptrace(request: ::c_uint, ...) -> ::c_long; + + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + timeout: *mut ::timespec, + ) -> ::c_int; + + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::c_int; + pub fn forkpty( + amaster: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::pid_t; + + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + + pub fn pwritev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, + ) -> ::ssize_t; + pub fn preadv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, + ) -> ::ssize_t; + + pub fn sethostid(hostid: ::c_long) -> ::c_int; + pub fn fanotify_mark( + fd: ::c_int, + flags: ::c_uint, + mask: u64, + dirfd: ::c_int, + path: *const ::c_char, + ) -> ::c_int; + pub fn getrlimit64(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit64) -> ::c_int; + pub fn setrlimit64(resource: ::__rlimit_resource_t, rlim: *const ::rlimit64) -> ::c_int; + pub fn getrlimit(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit) -> ::c_int; + pub fn setrlimit(resource: ::__rlimit_resource_t, rlim: *const ::rlimit) -> ::c_int; + pub fn getpriority(which: ::__priority_which_t, who: ::id_t) -> ::c_int; + pub fn setpriority(which: ::__priority_which_t, who: ::id_t, prio: ::c_int) -> ::c_int; +} + +cfg_if! { + if #[cfg(any(target_arch = "mips", target_arch = "mips64"))] { + mod mips; + pub use self::mips::*; + } else if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } else if #[cfg(target_arch = "arm")] { + mod arm; + pub use self::arm::*; + } else { + pub use unsupported_target; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/no_align.rs new file mode 100644 index 000000000..a73dbded5 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/no_align.rs @@ -0,0 +1,53 @@ +macro_rules! expand_align { + () => { + s! { + pub struct pthread_mutex_t { + #[cfg(any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc"))] + __align: [::c_long; 0], + #[cfg(any(libc_align, + target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc"))] + __align: [::c_longlong; 0], + size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + } + + pub struct pthread_rwlock_t { + #[cfg(any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc"))] + __align: [::c_long; 0], + #[cfg(not(any( + target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc")))] + __align: [::c_longlong; 0], + size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + } + + pub struct pthread_mutexattr_t { + #[cfg(any(target_arch = "x86_64", target_arch = "powerpc64", + target_arch = "mips64", target_arch = "s390x", + target_arch = "sparc64"))] + __align: [::c_int; 0], + #[cfg(not(any(target_arch = "x86_64", target_arch = "powerpc64", + target_arch = "mips64", target_arch = "s390x", + target_arch = "sparc64")))] + __align: [::c_long; 0], + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + pub struct pthread_cond_t { + __align: [::c_longlong; 0], + size: [u8; ::__SIZEOF_PTHREAD_COND_T], + } + + pub struct pthread_condattr_t { + __align: [::c_int; 0], + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } + } + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs new file mode 100644 index 000000000..c7cbafa16 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs @@ -0,0 +1,53 @@ +/// L4Re specifics +/// This module contains definitions required by various L4Re libc backends. +/// Some of them are formally not part of the libc, but are a dependency of the +/// libc and hence we should provide them here. + +pub type l4_umword_t = ::c_ulong; // Unsigned machine word. +pub type pthread_t = *mut ::c_void; + +s! { + /// CPU sets. + pub struct l4_sched_cpu_set_t { + // from the L4Re docs + /// Combination of granularity and offset. + /// + /// The granularity defines how many CPUs each bit in map describes. + /// The offset is the numer of the first CPU described by the first + /// bit in the bitmap. + /// offset must be a multiple of 2^graularity. + /// + /// | MSB | LSB | + /// | ---------------- | ------------------- | + /// | 8bit granularity | 24bit offset .. | + gran_offset: l4_umword_t , + /// Bitmap of CPUs. + map: l4_umword_t , + } +} + +#[cfg(target_os = "l4re")] +#[allow(missing_debug_implementations)] +pub struct pthread_attr_t { + pub __detachstate: ::c_int, + pub __schedpolicy: ::c_int, + pub __schedparam: super::__sched_param, + pub __inheritsched: ::c_int, + pub __scope: ::c_int, + pub __guardsize: ::size_t, + pub __stackaddr_set: ::c_int, + pub __stackaddr: *mut ::c_void, // better don't use it + pub __stacksize: ::size_t, + // L4Re specifics + pub affinity: l4_sched_cpu_set_t, + pub create_flags: ::c_uint, +} + +// L4Re requires a min stack size of 64k; that isn't defined in uClibc, but +// somewhere in the core libraries. uClibc wants 16k, but that's not enough. +pub const PTHREAD_STACK_MIN: usize = 65536; + +// Misc other constants required for building. +pub const SIGIO: ::c_int = 29; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/mod.rs new file mode 100644 index 000000000..390119e3b --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -0,0 +1,345 @@ +//! Definitions for uclibc on 64bit systems +pub type blkcnt_t = i64; +pub type blksize_t = i64; +pub type clock_t = i64; +pub type c_char = u8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type fsblkcnt_t = ::c_ulong; +pub type fsfilcnt_t = ::c_ulong; +pub type fsword_t = ::c_long; +pub type ino_t = ::c_ulong; +pub type nlink_t = ::c_uint; +pub type off_t = ::c_long; +// [uClibc docs] Note stat64 has the same shape as stat for x86-64. +pub type stat64 = stat; +pub type suseconds_t = ::c_long; +pub type time_t = ::c_int; +pub type wchar_t = ::c_int; + +pub type fsblkcnt64_t = u64; +pub type fsfilcnt64_t = u64; +pub type __u64 = ::c_ulong; +pub type __s64 = ::c_long; + +s! { + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_ushort, // read / write + __pad1: ::c_ushort, + pub __seq: ::c_ushort, + __pad2: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } + + #[cfg(not(target_os = "l4re"))] + pub struct pthread_attr_t { + __detachstate: ::c_int, + __schedpolicy: ::c_int, + __schedparam: __sched_param, + __inheritsched: ::c_int, + __scope: ::c_int, + __guardsize: ::size_t, + __stackaddr_set: ::c_int, + __stackaddr: *mut ::c_void, // better don't use it + __stacksize: ::size_t, + } + + pub struct __sched_param { + __sched_priority: ::c_int, + } + + pub struct siginfo_t { + si_signo: ::c_int, // signal number + si_errno: ::c_int, // if not zero: error value of signal, see errno.h + si_code: ::c_int, // signal code + pub _pad: [::c_int; 28], // unported union + _align: [usize; 0], + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, // segment size in bytes + pub shm_atime: ::time_t, // time of last shmat() + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + pub msg_rtime: ::time_t, + pub msg_ctime: ::time_t, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __ignored1: ::c_ulong, + __ignored2: ::c_ulong, + } + + pub struct sockaddr { + pub sa_family: ::sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_in { + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [u8; 8], + } + + pub struct sockaddr_in6 { + pub sin6_family: ::sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + // ------------------------------------------------------------ + // definitions below are *unverified* and might **break** the software +// pub struct in_addr { +// pub s_addr: in_addr_t, +// } +// +// pub struct in6_addr { +// pub s6_addr: [u8; 16], +// #[cfg(not(libc_align))] +// __align: [u32; 0], +// } + + pub struct stat { + pub st_dev: ::c_ulong, + pub st_ino: ::ino_t, + // According to uclibc/libc/sysdeps/linux/x86_64/bits/stat.h, order of + // nlink and mode are swapped on 64 bit systems. + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::c_ulong, // dev_t + pub st_size: off_t, // file size + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_ulong, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_ulong, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_ulong, + st_pad4: [::c_long; 3] + } + + pub struct sigaction { + pub sa_handler: ::sighandler_t, + pub sa_flags: ::c_ulong, + pub sa_restorer: ::Option, + pub sa_mask: ::sigset_t, + } + + pub struct stack_t { // FIXME + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct statfs { // FIXME + pub f_type: fsword_t, + pub f_bsize: fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: fsword_t, + pub f_frsize: fsword_t, + f_spare: [fsword_t; 5], + } + + pub struct statfs64 { + pub f_type: ::c_int, + pub f_bsize: ::c_int, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsfilcnt64_t, + pub f_ffree: ::fsfilcnt64_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_int, + pub f_frsize: ::c_int, + pub f_flags: ::c_int, + pub f_spare: [::c_int; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct msghdr { // FIXME + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::size_t, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::size_t, + pub msg_flags: ::c_int, + } + + pub struct termios { // FIXME + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; ::NCCS], + } + + pub struct sigset_t { // FIXME + __val: [::c_ulong; 16], + } + + pub struct sysinfo { // FIXME + pub uptime: ::c_long, + pub loads: [::c_ulong; 3], + pub totalram: ::c_ulong, + pub freeram: ::c_ulong, + pub sharedram: ::c_ulong, + pub bufferram: ::c_ulong, + pub totalswap: ::c_ulong, + pub freeswap: ::c_ulong, + pub procs: ::c_ushort, + pub pad: ::c_ushort, + pub totalhigh: ::c_ulong, + pub freehigh: ::c_ulong, + pub mem_unit: ::c_uint, + pub _f: [::c_char; 0], + } + + pub struct glob_t { // FIXME + pub gl_pathc: ::size_t, + pub gl_pathv: *mut *mut c_char, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + __unused1: *mut ::c_void, + __unused2: *mut ::c_void, + __unused3: *mut ::c_void, + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + } + + pub struct cpu_set_t { // FIXME + #[cfg(target_pointer_width = "32")] + bits: [u32; 32], + #[cfg(target_pointer_width = "64")] + bits: [u64; 16], + } + + pub struct fsid_t { // FIXME + __val: [::c_int; 2], + } + + // FIXME this is actually a union + pub struct sem_t { + #[cfg(target_pointer_width = "32")] + __size: [::c_char; 16], + #[cfg(target_pointer_width = "64")] + __size: [::c_char; 32], + __align: [::c_long; 0], + } + + pub struct cmsghdr { + pub cmsg_len: ::size_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } +} + +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + pub struct dirent { + pub d_ino: ::ino64_t, + pub d_off: ::off64_t, + pub d_reclen: u16, + pub d_type: u8, + pub d_name: [::c_char; 256], + } +} + +// constants +pub const ENAMETOOLONG: ::c_int = 36; // File name too long +pub const ENOTEMPTY: ::c_int = 39; // Directory not empty +pub const ELOOP: ::c_int = 40; // Too many symbolic links encountered +pub const EADDRINUSE: ::c_int = 98; // Address already in use +pub const EADDRNOTAVAIL: ::c_int = 99; // Cannot assign requested address +pub const ENETDOWN: ::c_int = 100; // Network is down +pub const ENETUNREACH: ::c_int = 101; // Network is unreachable +pub const ECONNABORTED: ::c_int = 103; // Software caused connection abort +pub const ECONNREFUSED: ::c_int = 111; // Connection refused +pub const ECONNRESET: ::c_int = 104; // Connection reset by peer +pub const EDEADLK: ::c_int = 35; // Resource deadlock would occur +pub const ENOSYS: ::c_int = 38; // Function not implemented +pub const ENOTCONN: ::c_int = 107; // Transport endpoint is not connected +pub const ETIMEDOUT: ::c_int = 110; // connection timed out +pub const ESTALE: ::c_int = 116; // Stale file handle +pub const EHOSTUNREACH: ::c_int = 113; // No route to host +pub const EDQUOT: ::c_int = 122; // Quota exceeded +pub const EOPNOTSUPP: ::c_int = 0x5f; +pub const ENODATA: ::c_int = 0x3d; +pub const O_APPEND: ::c_int = 02000; +pub const O_ACCMODE: ::c_int = 0003; +pub const O_CLOEXEC: ::c_int = 0x80000; +pub const O_CREAT: ::c_int = 0100; +pub const O_DIRECTORY: ::c_int = 0200000; +pub const O_EXCL: ::c_int = 0200; +pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_NONBLOCK: ::c_int = 04000; +pub const O_TRUNC: ::c_int = 01000; +pub const NCCS: usize = 32; +pub const SIG_SETMASK: ::c_int = 2; // Set the set of blocked signals +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const SOCK_DGRAM: ::c_int = 2; // connectionless, unreliable datagrams +pub const SOCK_STREAM: ::c_int = 1; // …/common/bits/socket_type.h +pub const __SIZEOF_PTHREAD_COND_T: usize = 48; +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +pub const PIDFD_NONBLOCK: ::c_int = 04000; + +cfg_if! { + if #[cfg(target_os = "l4re")] { + mod l4re; + pub use self::l4re::*; + } else { + mod other; + pub use other::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/other.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/other.rs new file mode 100644 index 000000000..481577cfc --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/other.rs @@ -0,0 +1,5 @@ +// Thestyle checker discourages the use of #[cfg], so this has to go into a +// separate module +pub type pthread_t = ::c_ulong; + +pub const PTHREAD_STACK_MIN: usize = 16384; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/mod.rs new file mode 100644 index 000000000..764f3ae79 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/mod.rs @@ -0,0 +1,1901 @@ +pub type sa_family_t = u16; +pub type speed_t = ::c_uint; +pub type tcflag_t = ::c_uint; +pub type clockid_t = ::c_int; +pub type timer_t = *mut ::c_void; +pub type key_t = ::c_int; +pub type id_t = ::c_uint; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum timezone {} +impl ::Copy for timezone {} +impl ::Clone for timezone { + fn clone(&self) -> timezone { + *self + } +} + +s! { + pub struct in_addr { + pub s_addr: ::in_addr_t, + } + + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct ip_mreqn { + pub imr_multiaddr: in_addr, + pub imr_address: in_addr, + pub imr_ifindex: ::c_int, + } + + pub struct ip_mreq_source { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + pub imr_sourceaddr: in_addr, + } + + pub struct sockaddr { + pub sa_family: sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_in { + pub sin_family: sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [u8; 8], + } + + pub struct sockaddr_in6 { + pub sin6_family: sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + // The order of the `ai_addr` field in this struct is crucial + // for converting between the Rust and C types. + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: socklen_t, + + #[cfg(any(target_os = "linux", + target_os = "emscripten"))] + pub ai_addr: *mut ::sockaddr, + + pub ai_canonname: *mut c_char, + + #[cfg(target_os = "android")] + pub ai_addr: *mut ::sockaddr, + + pub ai_next: *mut addrinfo, + } + + pub struct sockaddr_ll { + pub sll_family: ::c_ushort, + pub sll_protocol: ::c_ushort, + pub sll_ifindex: ::c_int, + pub sll_hatype: ::c_ushort, + pub sll_pkttype: ::c_uchar, + pub sll_halen: ::c_uchar, + pub sll_addr: [::c_uchar; 8] + } + + pub struct fd_set { + fds_bits: [::c_ulong; FD_SETSIZE / ULONG_SIZE], + } + + pub struct tm { + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int, + pub tm_gmtoff: ::c_long, + pub tm_zone: *const ::c_char, + } + + pub struct sched_param { + pub sched_priority: ::c_int, + #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] + pub sched_ss_low_priority: ::c_int, + #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] + pub sched_ss_repl_period: ::timespec, + #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] + pub sched_ss_init_budget: ::timespec, + #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] + pub sched_ss_max_repl: ::c_int, + } + + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } + + pub struct lconv { + pub decimal_point: *mut ::c_char, + pub thousands_sep: *mut ::c_char, + pub grouping: *mut ::c_char, + pub int_curr_symbol: *mut ::c_char, + pub currency_symbol: *mut ::c_char, + pub mon_decimal_point: *mut ::c_char, + pub mon_thousands_sep: *mut ::c_char, + pub mon_grouping: *mut ::c_char, + pub positive_sign: *mut ::c_char, + pub negative_sign: *mut ::c_char, + pub int_frac_digits: ::c_char, + pub frac_digits: ::c_char, + pub p_cs_precedes: ::c_char, + pub p_sep_by_space: ::c_char, + pub n_cs_precedes: ::c_char, + pub n_sep_by_space: ::c_char, + pub p_sign_posn: ::c_char, + pub n_sign_posn: ::c_char, + pub int_p_cs_precedes: ::c_char, + pub int_p_sep_by_space: ::c_char, + pub int_n_cs_precedes: ::c_char, + pub int_n_sep_by_space: ::c_char, + pub int_p_sign_posn: ::c_char, + pub int_n_sign_posn: ::c_char, + } + + pub struct in_pktinfo { + pub ipi_ifindex: ::c_int, + pub ipi_spec_dst: ::in_addr, + pub ipi_addr: ::in_addr, + } + + pub struct ifaddrs { + pub ifa_next: *mut ifaddrs, + pub ifa_name: *mut c_char, + pub ifa_flags: ::c_uint, + pub ifa_addr: *mut ::sockaddr, + pub ifa_netmask: *mut ::sockaddr, + pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union + pub ifa_data: *mut ::c_void + } + + pub struct in6_rtmsg { + rtmsg_dst: ::in6_addr, + rtmsg_src: ::in6_addr, + rtmsg_gateway: ::in6_addr, + rtmsg_type: u32, + rtmsg_dst_len: u16, + rtmsg_src_len: u16, + rtmsg_metric: u32, + rtmsg_info: ::c_ulong, + rtmsg_flags: u32, + rtmsg_ifindex: ::c_int, + } + + pub struct arpreq { + pub arp_pa: ::sockaddr, + pub arp_ha: ::sockaddr, + pub arp_flags: ::c_int, + pub arp_netmask: ::sockaddr, + pub arp_dev: [::c_char; 16], + } + + pub struct arpreq_old { + pub arp_pa: ::sockaddr, + pub arp_ha: ::sockaddr, + pub arp_flags: ::c_int, + pub arp_netmask: ::sockaddr, + } + + pub struct arphdr { + pub ar_hrd: u16, + pub ar_pro: u16, + pub ar_hln: u8, + pub ar_pln: u8, + pub ar_op: u16, + } + + pub struct mmsghdr { + pub msg_hdr: ::msghdr, + pub msg_len: ::c_uint, + } +} + +s_no_extra_traits! { + #[cfg_attr( + any( + all( + target_arch = "x86", + not(target_env = "musl"), + not(target_os = "android")), + target_arch = "x86_64"), + repr(packed))] + pub struct epoll_event { + pub events: u32, + pub u64: u64, + } + + pub struct sockaddr_un { + pub sun_family: sa_family_t, + pub sun_path: [::c_char; 108] + } + + pub struct sockaddr_storage { + pub ss_family: sa_family_t, + #[cfg(target_pointer_width = "32")] + __ss_pad2: [u8; 128 - 2 - 4], + #[cfg(target_pointer_width = "64")] + __ss_pad2: [u8; 128 - 2 - 8], + __ss_align: ::size_t, + } + + pub struct utsname { + pub sysname: [::c_char; 65], + pub nodename: [::c_char; 65], + pub release: [::c_char; 65], + pub version: [::c_char; 65], + pub machine: [::c_char; 65], + pub domainname: [::c_char; 65] + } + + pub struct sigevent { + pub sigev_value: ::sigval, + pub sigev_signo: ::c_int, + pub sigev_notify: ::c_int, + // Actually a union. We only expose sigev_notify_thread_id because it's + // the most useful member + pub sigev_notify_thread_id: ::c_int, + #[cfg(target_pointer_width = "64")] + __unused1: [::c_int; 11], + #[cfg(target_pointer_width = "32")] + __unused1: [::c_int; 12] + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for epoll_event { + fn eq(&self, other: &epoll_event) -> bool { + self.events == other.events + && self.u64 == other.u64 + } + } + impl Eq for epoll_event {} + impl ::fmt::Debug for epoll_event { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let events = self.events; + let u64 = self.u64; + f.debug_struct("epoll_event") + .field("events", &events) + .field("u64", &u64) + .finish() + } + } + impl ::hash::Hash for epoll_event { + fn hash(&self, state: &mut H) { + let events = self.events; + let u64 = self.u64; + events.hash(state); + u64.hash(state); + } + } + + impl PartialEq for sockaddr_un { + fn eq(&self, other: &sockaddr_un) -> bool { + self.sun_family == other.sun_family + && self + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a, b)| a == b) + } + } + impl Eq for sockaddr_un {} + impl ::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_un") + .field("sun_family", &self.sun_family) + // FIXME: .field("sun_path", &self.sun_path) + .finish() + } + } + impl ::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { + self.sun_family.hash(state); + self.sun_path.hash(state); + } + } + + impl PartialEq for sockaddr_storage { + fn eq(&self, other: &sockaddr_storage) -> bool { + self.ss_family == other.ss_family + && self + .__ss_pad2 + .iter() + .zip(other.__ss_pad2.iter()) + .all(|(a, b)| a == b) + } + } + + impl Eq for sockaddr_storage {} + + impl ::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_storage") + .field("ss_family", &self.ss_family) + .field("__ss_align", &self.__ss_align) + // FIXME: .field("__ss_pad2", &self.__ss_pad2) + .finish() + } + } + + impl ::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { + self.ss_family.hash(state); + self.__ss_pad2.hash(state); + } + } + + impl PartialEq for utsname { + fn eq(&self, other: &utsname) -> bool { + self.sysname + .iter() + .zip(other.sysname.iter()) + .all(|(a, b)| a == b) + && self + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a, b)| a == b) + && self + .release + .iter() + .zip(other.release.iter()) + .all(|(a, b)| a == b) + && self + .version + .iter() + .zip(other.version.iter()) + .all(|(a, b)| a == b) + && self + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a, b)| a == b) + && self + .domainname + .iter() + .zip(other.domainname.iter()) + .all(|(a, b)| a == b) + } + } + + impl Eq for utsname {} + + impl ::fmt::Debug for utsname { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utsname") + // FIXME: .field("sysname", &self.sysname) + // FIXME: .field("nodename", &self.nodename) + // FIXME: .field("release", &self.release) + // FIXME: .field("version", &self.version) + // FIXME: .field("machine", &self.machine) + // FIXME: .field("domainname", &self.domainname) + .finish() + } + } + + impl ::hash::Hash for utsname { + fn hash(&self, state: &mut H) { + self.sysname.hash(state); + self.nodename.hash(state); + self.release.hash(state); + self.version.hash(state); + self.machine.hash(state); + self.domainname.hash(state); + } + } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_value == other.sigev_value + && self.sigev_signo == other.sigev_signo + && self.sigev_notify == other.sigev_notify + && self.sigev_notify_thread_id + == other.sigev_notify_thread_id + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_value", &self.sigev_value) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_notify", &self.sigev_notify) + .field("sigev_notify_thread_id", + &self.sigev_notify_thread_id) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_value.hash(state); + self.sigev_signo.hash(state); + self.sigev_notify.hash(state); + self.sigev_notify_thread_id.hash(state); + } + } + } +} + +// intentionally not public, only used for fd_set +cfg_if! { + if #[cfg(target_pointer_width = "32")] { + const ULONG_SIZE: usize = 32; + } else if #[cfg(target_pointer_width = "64")] { + const ULONG_SIZE: usize = 64; + } else { + // Unknown target_pointer_width + } +} + +pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: ::c_int = 0; +pub const RAND_MAX: ::c_int = 2147483647; +pub const EOF: ::c_int = -1; +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; +pub const _IOFBF: ::c_int = 0; +pub const _IONBF: ::c_int = 2; +pub const _IOLBF: ::c_int = 1; + +pub const F_DUPFD: ::c_int = 0; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; + +// Linux-specific fcntls +pub const F_SETLEASE: ::c_int = 1024; +pub const F_GETLEASE: ::c_int = 1025; +pub const F_NOTIFY: ::c_int = 1026; +pub const F_CANCELLK: ::c_int = 1029; +pub const F_DUPFD_CLOEXEC: ::c_int = 1030; +pub const F_SETPIPE_SZ: ::c_int = 1031; +pub const F_GETPIPE_SZ: ::c_int = 1032; +pub const F_ADD_SEALS: ::c_int = 1033; +pub const F_GET_SEALS: ::c_int = 1034; + +pub const F_SEAL_SEAL: ::c_int = 0x0001; +pub const F_SEAL_SHRINK: ::c_int = 0x0002; +pub const F_SEAL_GROW: ::c_int = 0x0004; +pub const F_SEAL_WRITE: ::c_int = 0x0008; + +// FIXME(#235): Include file sealing fcntls once we have a way to verify them. + +pub const SIGTRAP: ::c_int = 5; + +pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; +pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; + +pub const CLOCK_REALTIME: ::clockid_t = 0; +pub const CLOCK_MONOTONIC: ::clockid_t = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; +pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 3; +pub const CLOCK_MONOTONIC_RAW: ::clockid_t = 4; +pub const CLOCK_REALTIME_COARSE: ::clockid_t = 5; +pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = 6; +pub const CLOCK_BOOTTIME: ::clockid_t = 7; +pub const CLOCK_REALTIME_ALARM: ::clockid_t = 8; +pub const CLOCK_BOOTTIME_ALARM: ::clockid_t = 9; +pub const CLOCK_TAI: ::clockid_t = 11; +pub const TIMER_ABSTIME: ::c_int = 1; + +pub const RUSAGE_SELF: ::c_int = 0; + +pub const O_RDONLY: ::c_int = 0; +pub const O_WRONLY: ::c_int = 1; +pub const O_RDWR: ::c_int = 2; + +pub const SOCK_CLOEXEC: ::c_int = O_CLOEXEC; + +pub const S_IFIFO: ::mode_t = 4096; +pub const S_IFCHR: ::mode_t = 8192; +pub const S_IFBLK: ::mode_t = 24576; +pub const S_IFDIR: ::mode_t = 16384; +pub const S_IFREG: ::mode_t = 32768; +pub const S_IFLNK: ::mode_t = 40960; +pub const S_IFSOCK: ::mode_t = 49152; +pub const S_IFMT: ::mode_t = 61440; +pub const S_IRWXU: ::mode_t = 448; +pub const S_IXUSR: ::mode_t = 64; +pub const S_IWUSR: ::mode_t = 128; +pub const S_IRUSR: ::mode_t = 256; +pub const S_IRWXG: ::mode_t = 56; +pub const S_IXGRP: ::mode_t = 8; +pub const S_IWGRP: ::mode_t = 16; +pub const S_IRGRP: ::mode_t = 32; +pub const S_IRWXO: ::mode_t = 7; +pub const S_IXOTH: ::mode_t = 1; +pub const S_IWOTH: ::mode_t = 2; +pub const S_IROTH: ::mode_t = 4; +pub const F_OK: ::c_int = 0; +pub const R_OK: ::c_int = 4; +pub const W_OK: ::c_int = 2; +pub const X_OK: ::c_int = 1; +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGABRT: ::c_int = 6; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGSEGV: ::c_int = 11; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; + +pub const PROT_NONE: ::c_int = 0; +pub const PROT_READ: ::c_int = 1; +pub const PROT_WRITE: ::c_int = 2; +pub const PROT_EXEC: ::c_int = 4; + +pub const XATTR_CREATE: ::c_int = 0x1; +pub const XATTR_REPLACE: ::c_int = 0x2; + +cfg_if! { + if #[cfg(target_os = "android")] { + pub const RLIM64_INFINITY: ::c_ulonglong = !0; + } else { + pub const RLIM64_INFINITY: ::rlim64_t = !0; + } +} + +cfg_if! { + if #[cfg(target_env = "ohos")] { + pub const LC_CTYPE: ::c_int = 0; + pub const LC_NUMERIC: ::c_int = 1; + pub const LC_TIME: ::c_int = 2; + pub const LC_COLLATE: ::c_int = 3; + pub const LC_MONETARY: ::c_int = 4; + pub const LC_MESSAGES: ::c_int = 5; + pub const LC_PAPER: ::c_int = 6; + pub const LC_NAME: ::c_int = 7; + pub const LC_ADDRESS: ::c_int = 8; + pub const LC_TELEPHONE: ::c_int = 9; + pub const LC_MEASUREMENT: ::c_int = 10; + pub const LC_IDENTIFICATION: ::c_int = 11; + pub const LC_ALL: ::c_int = 12; + } else if #[cfg(not(target_env = "uclibc"))] { + pub const LC_CTYPE: ::c_int = 0; + pub const LC_NUMERIC: ::c_int = 1; + pub const LC_TIME: ::c_int = 2; + pub const LC_COLLATE: ::c_int = 3; + pub const LC_MONETARY: ::c_int = 4; + pub const LC_MESSAGES: ::c_int = 5; + pub const LC_ALL: ::c_int = 6; + } +} + +pub const LC_CTYPE_MASK: ::c_int = 1 << LC_CTYPE; +pub const LC_NUMERIC_MASK: ::c_int = 1 << LC_NUMERIC; +pub const LC_TIME_MASK: ::c_int = 1 << LC_TIME; +pub const LC_COLLATE_MASK: ::c_int = 1 << LC_COLLATE; +pub const LC_MONETARY_MASK: ::c_int = 1 << LC_MONETARY; +pub const LC_MESSAGES_MASK: ::c_int = 1 << LC_MESSAGES; +// LC_ALL_MASK defined per platform + +pub const MAP_FILE: ::c_int = 0x0000; +pub const MAP_SHARED: ::c_int = 0x0001; +pub const MAP_PRIVATE: ::c_int = 0x0002; +pub const MAP_FIXED: ::c_int = 0x0010; + +pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; + +// MS_ flags for msync(2) +pub const MS_ASYNC: ::c_int = 0x0001; +pub const MS_INVALIDATE: ::c_int = 0x0002; +pub const MS_SYNC: ::c_int = 0x0004; + +// MS_ flags for mount(2) +pub const MS_RDONLY: ::c_ulong = 0x01; +pub const MS_NOSUID: ::c_ulong = 0x02; +pub const MS_NODEV: ::c_ulong = 0x04; +pub const MS_NOEXEC: ::c_ulong = 0x08; +pub const MS_SYNCHRONOUS: ::c_ulong = 0x10; +pub const MS_REMOUNT: ::c_ulong = 0x20; +pub const MS_MANDLOCK: ::c_ulong = 0x40; +pub const MS_DIRSYNC: ::c_ulong = 0x80; +pub const MS_NOATIME: ::c_ulong = 0x0400; +pub const MS_NODIRATIME: ::c_ulong = 0x0800; +pub const MS_BIND: ::c_ulong = 0x1000; +pub const MS_MOVE: ::c_ulong = 0x2000; +pub const MS_REC: ::c_ulong = 0x4000; +pub const MS_SILENT: ::c_ulong = 0x8000; +pub const MS_POSIXACL: ::c_ulong = 0x010000; +pub const MS_UNBINDABLE: ::c_ulong = 0x020000; +pub const MS_PRIVATE: ::c_ulong = 0x040000; +pub const MS_SLAVE: ::c_ulong = 0x080000; +pub const MS_SHARED: ::c_ulong = 0x100000; +pub const MS_RELATIME: ::c_ulong = 0x200000; +pub const MS_KERNMOUNT: ::c_ulong = 0x400000; +pub const MS_I_VERSION: ::c_ulong = 0x800000; +pub const MS_STRICTATIME: ::c_ulong = 0x1000000; +pub const MS_LAZYTIME: ::c_ulong = 0x2000000; +pub const MS_ACTIVE: ::c_ulong = 0x40000000; +pub const MS_MGC_VAL: ::c_ulong = 0xc0ed0000; +pub const MS_MGC_MSK: ::c_ulong = 0xffff0000; + +pub const SCM_RIGHTS: ::c_int = 0x01; +pub const SCM_CREDENTIALS: ::c_int = 0x02; + +pub const PROT_GROWSDOWN: ::c_int = 0x1000000; +pub const PROT_GROWSUP: ::c_int = 0x2000000; + +pub const MAP_TYPE: ::c_int = 0x000f; + +pub const MADV_NORMAL: ::c_int = 0; +pub const MADV_RANDOM: ::c_int = 1; +pub const MADV_SEQUENTIAL: ::c_int = 2; +pub const MADV_WILLNEED: ::c_int = 3; +pub const MADV_DONTNEED: ::c_int = 4; +pub const MADV_FREE: ::c_int = 8; +pub const MADV_REMOVE: ::c_int = 9; +pub const MADV_DONTFORK: ::c_int = 10; +pub const MADV_DOFORK: ::c_int = 11; +pub const MADV_MERGEABLE: ::c_int = 12; +pub const MADV_UNMERGEABLE: ::c_int = 13; +pub const MADV_HUGEPAGE: ::c_int = 14; +pub const MADV_NOHUGEPAGE: ::c_int = 15; +pub const MADV_DONTDUMP: ::c_int = 16; +pub const MADV_DODUMP: ::c_int = 17; +pub const MADV_WIPEONFORK: ::c_int = 18; +pub const MADV_KEEPONFORK: ::c_int = 19; +pub const MADV_COLD: ::c_int = 20; +pub const MADV_PAGEOUT: ::c_int = 21; +pub const MADV_HWPOISON: ::c_int = 100; +cfg_if! { + if #[cfg(not(target_os = "emscripten"))] { + pub const MADV_POPULATE_READ: ::c_int = 22; + pub const MADV_POPULATE_WRITE: ::c_int = 23; + pub const MADV_DONTNEED_LOCKED: ::c_int = 24; + } +} + +pub const IFF_UP: ::c_int = 0x1; +pub const IFF_BROADCAST: ::c_int = 0x2; +pub const IFF_DEBUG: ::c_int = 0x4; +pub const IFF_LOOPBACK: ::c_int = 0x8; +pub const IFF_POINTOPOINT: ::c_int = 0x10; +pub const IFF_NOTRAILERS: ::c_int = 0x20; +pub const IFF_RUNNING: ::c_int = 0x40; +pub const IFF_NOARP: ::c_int = 0x80; +pub const IFF_PROMISC: ::c_int = 0x100; +pub const IFF_ALLMULTI: ::c_int = 0x200; +pub const IFF_MASTER: ::c_int = 0x400; +pub const IFF_SLAVE: ::c_int = 0x800; +pub const IFF_MULTICAST: ::c_int = 0x1000; +pub const IFF_PORTSEL: ::c_int = 0x2000; +pub const IFF_AUTOMEDIA: ::c_int = 0x4000; +pub const IFF_DYNAMIC: ::c_int = 0x8000; + +pub const SOL_IP: ::c_int = 0; +pub const SOL_TCP: ::c_int = 6; +pub const SOL_UDP: ::c_int = 17; +pub const SOL_IPV6: ::c_int = 41; +pub const SOL_ICMPV6: ::c_int = 58; +pub const SOL_RAW: ::c_int = 255; +pub const SOL_DECNET: ::c_int = 261; +pub const SOL_X25: ::c_int = 262; +pub const SOL_PACKET: ::c_int = 263; +pub const SOL_ATM: ::c_int = 264; +pub const SOL_AAL: ::c_int = 265; +pub const SOL_IRDA: ::c_int = 266; +pub const SOL_NETBEUI: ::c_int = 267; +pub const SOL_LLC: ::c_int = 268; +pub const SOL_DCCP: ::c_int = 269; +pub const SOL_NETLINK: ::c_int = 270; +pub const SOL_TIPC: ::c_int = 271; +pub const SOL_BLUETOOTH: ::c_int = 274; +pub const SOL_ALG: ::c_int = 279; + +pub const AF_UNSPEC: ::c_int = 0; +pub const AF_UNIX: ::c_int = 1; +pub const AF_LOCAL: ::c_int = 1; +pub const AF_INET: ::c_int = 2; +pub const AF_AX25: ::c_int = 3; +pub const AF_IPX: ::c_int = 4; +pub const AF_APPLETALK: ::c_int = 5; +pub const AF_NETROM: ::c_int = 6; +pub const AF_BRIDGE: ::c_int = 7; +pub const AF_ATMPVC: ::c_int = 8; +pub const AF_X25: ::c_int = 9; +pub const AF_INET6: ::c_int = 10; +pub const AF_ROSE: ::c_int = 11; +pub const AF_DECnet: ::c_int = 12; +pub const AF_NETBEUI: ::c_int = 13; +pub const AF_SECURITY: ::c_int = 14; +pub const AF_KEY: ::c_int = 15; +pub const AF_NETLINK: ::c_int = 16; +pub const AF_ROUTE: ::c_int = AF_NETLINK; +pub const AF_PACKET: ::c_int = 17; +pub const AF_ASH: ::c_int = 18; +pub const AF_ECONET: ::c_int = 19; +pub const AF_ATMSVC: ::c_int = 20; +pub const AF_RDS: ::c_int = 21; +pub const AF_SNA: ::c_int = 22; +pub const AF_IRDA: ::c_int = 23; +pub const AF_PPPOX: ::c_int = 24; +pub const AF_WANPIPE: ::c_int = 25; +pub const AF_LLC: ::c_int = 26; +pub const AF_CAN: ::c_int = 29; +pub const AF_TIPC: ::c_int = 30; +pub const AF_BLUETOOTH: ::c_int = 31; +pub const AF_IUCV: ::c_int = 32; +pub const AF_RXRPC: ::c_int = 33; +pub const AF_ISDN: ::c_int = 34; +pub const AF_PHONET: ::c_int = 35; +pub const AF_IEEE802154: ::c_int = 36; +pub const AF_CAIF: ::c_int = 37; +pub const AF_ALG: ::c_int = 38; + +pub const PF_UNSPEC: ::c_int = AF_UNSPEC; +pub const PF_UNIX: ::c_int = AF_UNIX; +pub const PF_LOCAL: ::c_int = AF_LOCAL; +pub const PF_INET: ::c_int = AF_INET; +pub const PF_AX25: ::c_int = AF_AX25; +pub const PF_IPX: ::c_int = AF_IPX; +pub const PF_APPLETALK: ::c_int = AF_APPLETALK; +pub const PF_NETROM: ::c_int = AF_NETROM; +pub const PF_BRIDGE: ::c_int = AF_BRIDGE; +pub const PF_ATMPVC: ::c_int = AF_ATMPVC; +pub const PF_X25: ::c_int = AF_X25; +pub const PF_INET6: ::c_int = AF_INET6; +pub const PF_ROSE: ::c_int = AF_ROSE; +pub const PF_DECnet: ::c_int = AF_DECnet; +pub const PF_NETBEUI: ::c_int = AF_NETBEUI; +pub const PF_SECURITY: ::c_int = AF_SECURITY; +pub const PF_KEY: ::c_int = AF_KEY; +pub const PF_NETLINK: ::c_int = AF_NETLINK; +pub const PF_ROUTE: ::c_int = AF_ROUTE; +pub const PF_PACKET: ::c_int = AF_PACKET; +pub const PF_ASH: ::c_int = AF_ASH; +pub const PF_ECONET: ::c_int = AF_ECONET; +pub const PF_ATMSVC: ::c_int = AF_ATMSVC; +pub const PF_RDS: ::c_int = AF_RDS; +pub const PF_SNA: ::c_int = AF_SNA; +pub const PF_IRDA: ::c_int = AF_IRDA; +pub const PF_PPPOX: ::c_int = AF_PPPOX; +pub const PF_WANPIPE: ::c_int = AF_WANPIPE; +pub const PF_LLC: ::c_int = AF_LLC; +pub const PF_CAN: ::c_int = AF_CAN; +pub const PF_TIPC: ::c_int = AF_TIPC; +pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; +pub const PF_IUCV: ::c_int = AF_IUCV; +pub const PF_RXRPC: ::c_int = AF_RXRPC; +pub const PF_ISDN: ::c_int = AF_ISDN; +pub const PF_PHONET: ::c_int = AF_PHONET; +pub const PF_IEEE802154: ::c_int = AF_IEEE802154; +pub const PF_CAIF: ::c_int = AF_CAIF; +pub const PF_ALG: ::c_int = AF_ALG; + +pub const MSG_OOB: ::c_int = 1; +pub const MSG_PEEK: ::c_int = 2; +pub const MSG_DONTROUTE: ::c_int = 4; +pub const MSG_CTRUNC: ::c_int = 8; +pub const MSG_TRUNC: ::c_int = 0x20; +pub const MSG_DONTWAIT: ::c_int = 0x40; +pub const MSG_EOR: ::c_int = 0x80; +pub const MSG_WAITALL: ::c_int = 0x100; +pub const MSG_FIN: ::c_int = 0x200; +pub const MSG_SYN: ::c_int = 0x400; +pub const MSG_CONFIRM: ::c_int = 0x800; +pub const MSG_RST: ::c_int = 0x1000; +pub const MSG_ERRQUEUE: ::c_int = 0x2000; +pub const MSG_NOSIGNAL: ::c_int = 0x4000; +pub const MSG_MORE: ::c_int = 0x8000; +pub const MSG_WAITFORONE: ::c_int = 0x10000; +pub const MSG_FASTOPEN: ::c_int = 0x20000000; +pub const MSG_CMSG_CLOEXEC: ::c_int = 0x40000000; + +pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; + +pub const SOCK_RAW: ::c_int = 3; +pub const SOCK_RDM: ::c_int = 4; +pub const IP_TOS: ::c_int = 1; +pub const IP_TTL: ::c_int = 2; +pub const IP_HDRINCL: ::c_int = 3; +pub const IP_OPTIONS: ::c_int = 4; +pub const IP_ROUTER_ALERT: ::c_int = 5; +pub const IP_RECVOPTS: ::c_int = 6; +pub const IP_RETOPTS: ::c_int = 7; +pub const IP_PKTINFO: ::c_int = 8; +pub const IP_PKTOPTIONS: ::c_int = 9; +pub const IP_MTU_DISCOVER: ::c_int = 10; +pub const IP_RECVERR: ::c_int = 11; +pub const IP_RECVTTL: ::c_int = 12; +pub const IP_RECVTOS: ::c_int = 13; +pub const IP_MTU: ::c_int = 14; +pub const IP_FREEBIND: ::c_int = 15; +pub const IP_IPSEC_POLICY: ::c_int = 16; +pub const IP_XFRM_POLICY: ::c_int = 17; +pub const IP_PASSSEC: ::c_int = 18; +pub const IP_TRANSPARENT: ::c_int = 19; +pub const IP_ORIGDSTADDR: ::c_int = 20; +pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR; +pub const IP_MINTTL: ::c_int = 21; +pub const IP_NODEFRAG: ::c_int = 22; +pub const IP_CHECKSUM: ::c_int = 23; +pub const IP_BIND_ADDRESS_NO_PORT: ::c_int = 24; +pub const IP_MULTICAST_IF: ::c_int = 32; +pub const IP_MULTICAST_TTL: ::c_int = 33; +pub const IP_MULTICAST_LOOP: ::c_int = 34; +pub const IP_ADD_MEMBERSHIP: ::c_int = 35; +pub const IP_DROP_MEMBERSHIP: ::c_int = 36; +pub const IP_UNBLOCK_SOURCE: ::c_int = 37; +pub const IP_BLOCK_SOURCE: ::c_int = 38; +pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 39; +pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 40; +pub const IP_MSFILTER: ::c_int = 41; +pub const IP_MULTICAST_ALL: ::c_int = 49; +pub const IP_UNICAST_IF: ::c_int = 50; + +pub const IP_DEFAULT_MULTICAST_TTL: ::c_int = 1; +pub const IP_DEFAULT_MULTICAST_LOOP: ::c_int = 1; + +pub const IP_PMTUDISC_DONT: ::c_int = 0; +pub const IP_PMTUDISC_WANT: ::c_int = 1; +pub const IP_PMTUDISC_DO: ::c_int = 2; +pub const IP_PMTUDISC_PROBE: ::c_int = 3; +pub const IP_PMTUDISC_INTERFACE: ::c_int = 4; +pub const IP_PMTUDISC_OMIT: ::c_int = 5; + +// IPPROTO_IP defined in src/unix/mod.rs +/// Hop-by-hop option header +pub const IPPROTO_HOPOPTS: ::c_int = 0; +// IPPROTO_ICMP defined in src/unix/mod.rs +/// group mgmt protocol +pub const IPPROTO_IGMP: ::c_int = 2; +/// for compatibility +pub const IPPROTO_IPIP: ::c_int = 4; +// IPPROTO_TCP defined in src/unix/mod.rs +/// exterior gateway protocol +pub const IPPROTO_EGP: ::c_int = 8; +/// pup +pub const IPPROTO_PUP: ::c_int = 12; +// IPPROTO_UDP defined in src/unix/mod.rs +/// xns idp +pub const IPPROTO_IDP: ::c_int = 22; +/// tp-4 w/ class negotiation +pub const IPPROTO_TP: ::c_int = 29; +/// DCCP +pub const IPPROTO_DCCP: ::c_int = 33; +// IPPROTO_IPV6 defined in src/unix/mod.rs +/// IP6 routing header +pub const IPPROTO_ROUTING: ::c_int = 43; +/// IP6 fragmentation header +pub const IPPROTO_FRAGMENT: ::c_int = 44; +/// resource reservation +pub const IPPROTO_RSVP: ::c_int = 46; +/// General Routing Encap. +pub const IPPROTO_GRE: ::c_int = 47; +/// IP6 Encap Sec. Payload +pub const IPPROTO_ESP: ::c_int = 50; +/// IP6 Auth Header +pub const IPPROTO_AH: ::c_int = 51; +// IPPROTO_ICMPV6 defined in src/unix/mod.rs +/// IP6 no next header +pub const IPPROTO_NONE: ::c_int = 59; +/// IP6 destination option +pub const IPPROTO_DSTOPTS: ::c_int = 60; +pub const IPPROTO_MTP: ::c_int = 92; +/// encapsulation header +pub const IPPROTO_ENCAP: ::c_int = 98; +/// Protocol indep. multicast +pub const IPPROTO_PIM: ::c_int = 103; +/// IP Payload Comp. Protocol +pub const IPPROTO_COMP: ::c_int = 108; +/// SCTP +pub const IPPROTO_SCTP: ::c_int = 132; +pub const IPPROTO_MH: ::c_int = 135; +pub const IPPROTO_UDPLITE: ::c_int = 136; +/// raw IP packet +pub const IPPROTO_RAW: ::c_int = 255; +pub const IPPROTO_BEETPH: ::c_int = 94; +pub const IPPROTO_MPLS: ::c_int = 137; +/// Multipath TCP +pub const IPPROTO_MPTCP: ::c_int = 262; + +pub const MCAST_EXCLUDE: ::c_int = 0; +pub const MCAST_INCLUDE: ::c_int = 1; +pub const MCAST_JOIN_GROUP: ::c_int = 42; +pub const MCAST_BLOCK_SOURCE: ::c_int = 43; +pub const MCAST_UNBLOCK_SOURCE: ::c_int = 44; +pub const MCAST_LEAVE_GROUP: ::c_int = 45; +pub const MCAST_JOIN_SOURCE_GROUP: ::c_int = 46; +pub const MCAST_LEAVE_SOURCE_GROUP: ::c_int = 47; +pub const MCAST_MSFILTER: ::c_int = 48; + +pub const IPV6_ADDRFORM: ::c_int = 1; +pub const IPV6_2292PKTINFO: ::c_int = 2; +pub const IPV6_2292HOPOPTS: ::c_int = 3; +pub const IPV6_2292DSTOPTS: ::c_int = 4; +pub const IPV6_2292RTHDR: ::c_int = 5; +pub const IPV6_2292PKTOPTIONS: ::c_int = 6; +pub const IPV6_CHECKSUM: ::c_int = 7; +pub const IPV6_2292HOPLIMIT: ::c_int = 8; +pub const IPV6_NEXTHOP: ::c_int = 9; +pub const IPV6_AUTHHDR: ::c_int = 10; +pub const IPV6_UNICAST_HOPS: ::c_int = 16; +pub const IPV6_MULTICAST_IF: ::c_int = 17; +pub const IPV6_MULTICAST_HOPS: ::c_int = 18; +pub const IPV6_MULTICAST_LOOP: ::c_int = 19; +pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; +pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; +pub const IPV6_ROUTER_ALERT: ::c_int = 22; +pub const IPV6_MTU_DISCOVER: ::c_int = 23; +pub const IPV6_MTU: ::c_int = 24; +pub const IPV6_RECVERR: ::c_int = 25; +pub const IPV6_V6ONLY: ::c_int = 26; +pub const IPV6_JOIN_ANYCAST: ::c_int = 27; +pub const IPV6_LEAVE_ANYCAST: ::c_int = 28; +pub const IPV6_IPSEC_POLICY: ::c_int = 34; +pub const IPV6_XFRM_POLICY: ::c_int = 35; +pub const IPV6_HDRINCL: ::c_int = 36; +pub const IPV6_RECVPKTINFO: ::c_int = 49; +pub const IPV6_PKTINFO: ::c_int = 50; +pub const IPV6_RECVHOPLIMIT: ::c_int = 51; +pub const IPV6_HOPLIMIT: ::c_int = 52; +pub const IPV6_RECVHOPOPTS: ::c_int = 53; +pub const IPV6_HOPOPTS: ::c_int = 54; +pub const IPV6_RTHDRDSTOPTS: ::c_int = 55; +pub const IPV6_RECVRTHDR: ::c_int = 56; +pub const IPV6_RTHDR: ::c_int = 57; +pub const IPV6_RECVDSTOPTS: ::c_int = 58; +pub const IPV6_DSTOPTS: ::c_int = 59; +pub const IPV6_RECVPATHMTU: ::c_int = 60; +pub const IPV6_PATHMTU: ::c_int = 61; +pub const IPV6_DONTFRAG: ::c_int = 62; +pub const IPV6_RECVTCLASS: ::c_int = 66; +pub const IPV6_TCLASS: ::c_int = 67; +pub const IPV6_AUTOFLOWLABEL: ::c_int = 70; +pub const IPV6_ADDR_PREFERENCES: ::c_int = 72; +pub const IPV6_MINHOPCOUNT: ::c_int = 73; +pub const IPV6_ORIGDSTADDR: ::c_int = 74; +pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR; +pub const IPV6_TRANSPARENT: ::c_int = 75; +pub const IPV6_UNICAST_IF: ::c_int = 76; +pub const IPV6_PREFER_SRC_TMP: ::c_int = 0x0001; +pub const IPV6_PREFER_SRC_PUBLIC: ::c_int = 0x0002; +pub const IPV6_PREFER_SRC_PUBTMP_DEFAULT: ::c_int = 0x0100; +pub const IPV6_PREFER_SRC_COA: ::c_int = 0x0004; +pub const IPV6_PREFER_SRC_HOME: ::c_int = 0x0400; +pub const IPV6_PREFER_SRC_CGA: ::c_int = 0x0008; +pub const IPV6_PREFER_SRC_NONCGA: ::c_int = 0x0800; + +pub const IPV6_PMTUDISC_DONT: ::c_int = 0; +pub const IPV6_PMTUDISC_WANT: ::c_int = 1; +pub const IPV6_PMTUDISC_DO: ::c_int = 2; +pub const IPV6_PMTUDISC_PROBE: ::c_int = 3; +pub const IPV6_PMTUDISC_INTERFACE: ::c_int = 4; +pub const IPV6_PMTUDISC_OMIT: ::c_int = 5; + +pub const TCP_NODELAY: ::c_int = 1; +pub const TCP_MAXSEG: ::c_int = 2; +pub const TCP_CORK: ::c_int = 3; +pub const TCP_KEEPIDLE: ::c_int = 4; +pub const TCP_KEEPINTVL: ::c_int = 5; +pub const TCP_KEEPCNT: ::c_int = 6; +pub const TCP_SYNCNT: ::c_int = 7; +pub const TCP_LINGER2: ::c_int = 8; +pub const TCP_DEFER_ACCEPT: ::c_int = 9; +pub const TCP_WINDOW_CLAMP: ::c_int = 10; +pub const TCP_INFO: ::c_int = 11; +pub const TCP_QUICKACK: ::c_int = 12; +pub const TCP_CONGESTION: ::c_int = 13; +pub const TCP_MD5SIG: ::c_int = 14; +cfg_if! { + if #[cfg(all(target_os = "linux", any( + target_env = "gnu", + target_env = "musl", + target_env = "ohos" + )))] { + // WARN: deprecated + pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15; + } +} +pub const TCP_THIN_LINEAR_TIMEOUTS: ::c_int = 16; +pub const TCP_THIN_DUPACK: ::c_int = 17; +pub const TCP_USER_TIMEOUT: ::c_int = 18; +pub const TCP_REPAIR: ::c_int = 19; +pub const TCP_REPAIR_QUEUE: ::c_int = 20; +pub const TCP_QUEUE_SEQ: ::c_int = 21; +pub const TCP_REPAIR_OPTIONS: ::c_int = 22; +pub const TCP_FASTOPEN: ::c_int = 23; +pub const TCP_TIMESTAMP: ::c_int = 24; +pub const TCP_NOTSENT_LOWAT: ::c_int = 25; +pub const TCP_CC_INFO: ::c_int = 26; +pub const TCP_SAVE_SYN: ::c_int = 27; +pub const TCP_SAVED_SYN: ::c_int = 28; +cfg_if! { + if #[cfg(not(target_os = "emscripten"))] { + // NOTE: emscripten doesn't support these options yet. + + pub const TCP_REPAIR_WINDOW: ::c_int = 29; + pub const TCP_FASTOPEN_CONNECT: ::c_int = 30; + pub const TCP_ULP: ::c_int = 31; + pub const TCP_MD5SIG_EXT: ::c_int = 32; + pub const TCP_FASTOPEN_KEY: ::c_int = 33; + pub const TCP_FASTOPEN_NO_COOKIE: ::c_int = 34; + pub const TCP_ZEROCOPY_RECEIVE: ::c_int = 35; + pub const TCP_INQ: ::c_int = 36; + pub const TCP_CM_INQ: ::c_int = TCP_INQ; + // NOTE: Some CI images doesn't have this option yet. + // pub const TCP_TX_DELAY: ::c_int = 37; + pub const TCP_MD5SIG_MAXKEYLEN: usize = 80; + } +} + +pub const SO_DEBUG: ::c_int = 1; + +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; + +pub const LOCK_SH: ::c_int = 1; +pub const LOCK_EX: ::c_int = 2; +pub const LOCK_NB: ::c_int = 4; +pub const LOCK_UN: ::c_int = 8; + +pub const SS_ONSTACK: ::c_int = 1; +pub const SS_DISABLE: ::c_int = 2; + +pub const PATH_MAX: ::c_int = 4096; + +pub const UIO_MAXIOV: ::c_int = 1024; + +pub const FD_SETSIZE: usize = 1024; + +pub const EPOLLIN: ::c_int = 0x1; +pub const EPOLLPRI: ::c_int = 0x2; +pub const EPOLLOUT: ::c_int = 0x4; +pub const EPOLLERR: ::c_int = 0x8; +pub const EPOLLHUP: ::c_int = 0x10; +pub const EPOLLRDNORM: ::c_int = 0x40; +pub const EPOLLRDBAND: ::c_int = 0x80; +pub const EPOLLWRNORM: ::c_int = 0x100; +pub const EPOLLWRBAND: ::c_int = 0x200; +pub const EPOLLMSG: ::c_int = 0x400; +pub const EPOLLRDHUP: ::c_int = 0x2000; +pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000; +pub const EPOLLWAKEUP: ::c_int = 0x20000000; +pub const EPOLLONESHOT: ::c_int = 0x40000000; +pub const EPOLLET: ::c_int = 0x80000000; + +pub const EPOLL_CTL_ADD: ::c_int = 1; +pub const EPOLL_CTL_MOD: ::c_int = 3; +pub const EPOLL_CTL_DEL: ::c_int = 2; + +pub const MNT_FORCE: ::c_int = 0x1; +pub const MNT_DETACH: ::c_int = 0x2; +pub const MNT_EXPIRE: ::c_int = 0x4; +pub const UMOUNT_NOFOLLOW: ::c_int = 0x8; + +pub const Q_GETFMT: ::c_int = 0x800004; +pub const Q_GETINFO: ::c_int = 0x800005; +pub const Q_SETINFO: ::c_int = 0x800006; +pub const QIF_BLIMITS: u32 = 1; +pub const QIF_SPACE: u32 = 2; +pub const QIF_ILIMITS: u32 = 4; +pub const QIF_INODES: u32 = 8; +pub const QIF_BTIME: u32 = 16; +pub const QIF_ITIME: u32 = 32; +pub const QIF_LIMITS: u32 = 5; +pub const QIF_USAGE: u32 = 10; +pub const QIF_TIMES: u32 = 48; +pub const QIF_ALL: u32 = 63; + +pub const Q_SYNC: ::c_int = 0x800001; +pub const Q_QUOTAON: ::c_int = 0x800002; +pub const Q_QUOTAOFF: ::c_int = 0x800003; +pub const Q_GETQUOTA: ::c_int = 0x800007; +pub const Q_SETQUOTA: ::c_int = 0x800008; + +pub const TCIOFF: ::c_int = 2; +pub const TCION: ::c_int = 3; +pub const TCOOFF: ::c_int = 0; +pub const TCOON: ::c_int = 1; +pub const TCIFLUSH: ::c_int = 0; +pub const TCOFLUSH: ::c_int = 1; +pub const TCIOFLUSH: ::c_int = 2; +pub const NL0: ::tcflag_t = 0x00000000; +pub const NL1: ::tcflag_t = 0x00000100; +pub const TAB0: ::tcflag_t = 0x00000000; +pub const CR0: ::tcflag_t = 0x00000000; +pub const FF0: ::tcflag_t = 0x00000000; +pub const BS0: ::tcflag_t = 0x00000000; +pub const VT0: ::tcflag_t = 0x00000000; +pub const VERASE: usize = 2; +pub const VKILL: usize = 3; +pub const VINTR: usize = 0; +pub const VQUIT: usize = 1; +pub const VLNEXT: usize = 15; +pub const IGNBRK: ::tcflag_t = 0x00000001; +pub const BRKINT: ::tcflag_t = 0x00000002; +pub const IGNPAR: ::tcflag_t = 0x00000004; +pub const PARMRK: ::tcflag_t = 0x00000008; +pub const INPCK: ::tcflag_t = 0x00000010; +pub const ISTRIP: ::tcflag_t = 0x00000020; +pub const INLCR: ::tcflag_t = 0x00000040; +pub const IGNCR: ::tcflag_t = 0x00000080; +pub const ICRNL: ::tcflag_t = 0x00000100; +pub const IXANY: ::tcflag_t = 0x00000800; +pub const IMAXBEL: ::tcflag_t = 0x00002000; +pub const OPOST: ::tcflag_t = 0x1; +pub const CS5: ::tcflag_t = 0x00000000; +pub const CRTSCTS: ::tcflag_t = 0x80000000; +pub const ECHO: ::tcflag_t = 0x00000008; +pub const OCRNL: ::tcflag_t = 0o000010; +pub const ONOCR: ::tcflag_t = 0o000020; +pub const ONLRET: ::tcflag_t = 0o000040; +pub const OFILL: ::tcflag_t = 0o000100; +pub const OFDEL: ::tcflag_t = 0o000200; + +pub const CLONE_VM: ::c_int = 0x100; +pub const CLONE_FS: ::c_int = 0x200; +pub const CLONE_FILES: ::c_int = 0x400; +pub const CLONE_SIGHAND: ::c_int = 0x800; +pub const CLONE_PTRACE: ::c_int = 0x2000; +pub const CLONE_VFORK: ::c_int = 0x4000; +pub const CLONE_PARENT: ::c_int = 0x8000; +pub const CLONE_THREAD: ::c_int = 0x10000; +pub const CLONE_NEWNS: ::c_int = 0x20000; +pub const CLONE_SYSVSEM: ::c_int = 0x40000; +pub const CLONE_SETTLS: ::c_int = 0x80000; +pub const CLONE_PARENT_SETTID: ::c_int = 0x100000; +pub const CLONE_CHILD_CLEARTID: ::c_int = 0x200000; +pub const CLONE_DETACHED: ::c_int = 0x400000; +pub const CLONE_UNTRACED: ::c_int = 0x800000; +pub const CLONE_CHILD_SETTID: ::c_int = 0x01000000; +pub const CLONE_NEWCGROUP: ::c_int = 0x02000000; +pub const CLONE_NEWUTS: ::c_int = 0x04000000; +pub const CLONE_NEWIPC: ::c_int = 0x08000000; +pub const CLONE_NEWUSER: ::c_int = 0x10000000; +pub const CLONE_NEWPID: ::c_int = 0x20000000; +pub const CLONE_NEWNET: ::c_int = 0x40000000; +pub const CLONE_IO: ::c_int = 0x80000000; + +pub const WNOHANG: ::c_int = 0x00000001; +pub const WUNTRACED: ::c_int = 0x00000002; +pub const WSTOPPED: ::c_int = WUNTRACED; +pub const WEXITED: ::c_int = 0x00000004; +pub const WCONTINUED: ::c_int = 0x00000008; +pub const WNOWAIT: ::c_int = 0x01000000; + +// Options for personality(2). +pub const ADDR_NO_RANDOMIZE: ::c_int = 0x0040000; +pub const MMAP_PAGE_ZERO: ::c_int = 0x0100000; +pub const ADDR_COMPAT_LAYOUT: ::c_int = 0x0200000; +pub const READ_IMPLIES_EXEC: ::c_int = 0x0400000; +pub const ADDR_LIMIT_32BIT: ::c_int = 0x0800000; +pub const SHORT_INODE: ::c_int = 0x1000000; +pub const WHOLE_SECONDS: ::c_int = 0x2000000; +pub const STICKY_TIMEOUTS: ::c_int = 0x4000000; +pub const ADDR_LIMIT_3GB: ::c_int = 0x8000000; + +// Options set using PTRACE_SETOPTIONS. +pub const PTRACE_O_TRACESYSGOOD: ::c_int = 0x00000001; +pub const PTRACE_O_TRACEFORK: ::c_int = 0x00000002; +pub const PTRACE_O_TRACEVFORK: ::c_int = 0x00000004; +pub const PTRACE_O_TRACECLONE: ::c_int = 0x00000008; +pub const PTRACE_O_TRACEEXEC: ::c_int = 0x00000010; +pub const PTRACE_O_TRACEVFORKDONE: ::c_int = 0x00000020; +pub const PTRACE_O_TRACEEXIT: ::c_int = 0x00000040; +pub const PTRACE_O_TRACESECCOMP: ::c_int = 0x00000080; +pub const PTRACE_O_SUSPEND_SECCOMP: ::c_int = 0x00200000; +pub const PTRACE_O_EXITKILL: ::c_int = 0x00100000; +pub const PTRACE_O_MASK: ::c_int = 0x003000ff; + +// Wait extended result codes for the above trace options. +pub const PTRACE_EVENT_FORK: ::c_int = 1; +pub const PTRACE_EVENT_VFORK: ::c_int = 2; +pub const PTRACE_EVENT_CLONE: ::c_int = 3; +pub const PTRACE_EVENT_EXEC: ::c_int = 4; +pub const PTRACE_EVENT_VFORK_DONE: ::c_int = 5; +pub const PTRACE_EVENT_EXIT: ::c_int = 6; +pub const PTRACE_EVENT_SECCOMP: ::c_int = 7; + +pub const __WNOTHREAD: ::c_int = 0x20000000; +pub const __WALL: ::c_int = 0x40000000; +pub const __WCLONE: ::c_int = 0x80000000; + +pub const SPLICE_F_MOVE: ::c_uint = 0x01; +pub const SPLICE_F_NONBLOCK: ::c_uint = 0x02; +pub const SPLICE_F_MORE: ::c_uint = 0x04; +pub const SPLICE_F_GIFT: ::c_uint = 0x08; + +pub const RTLD_LOCAL: ::c_int = 0; +pub const RTLD_LAZY: ::c_int = 1; + +pub const POSIX_FADV_NORMAL: ::c_int = 0; +pub const POSIX_FADV_RANDOM: ::c_int = 1; +pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_FADV_WILLNEED: ::c_int = 3; + +pub const AT_FDCWD: ::c_int = -100; +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x100; +pub const AT_REMOVEDIR: ::c_int = 0x200; +pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; +pub const AT_NO_AUTOMOUNT: ::c_int = 0x800; +pub const AT_EMPTY_PATH: ::c_int = 0x1000; +pub const AT_RECURSIVE: ::c_int = 0x8000; + +pub const LOG_CRON: ::c_int = 9 << 3; +pub const LOG_AUTHPRIV: ::c_int = 10 << 3; +pub const LOG_FTP: ::c_int = 11 << 3; +pub const LOG_PERROR: ::c_int = 0x20; + +pub const PIPE_BUF: usize = 4096; + +pub const SI_LOAD_SHIFT: ::c_uint = 16; + +// si_code values for SIGBUS signal +pub const BUS_ADRALN: ::c_int = 1; +pub const BUS_ADRERR: ::c_int = 2; +pub const BUS_OBJERR: ::c_int = 3; +// Linux-specific si_code values for SIGBUS signal +pub const BUS_MCEERR_AR: ::c_int = 4; +pub const BUS_MCEERR_AO: ::c_int = 5; + +// si_code values for SIGCHLD signal +pub const CLD_EXITED: ::c_int = 1; +pub const CLD_KILLED: ::c_int = 2; +pub const CLD_DUMPED: ::c_int = 3; +pub const CLD_TRAPPED: ::c_int = 4; +pub const CLD_STOPPED: ::c_int = 5; +pub const CLD_CONTINUED: ::c_int = 6; + +pub const SIGEV_SIGNAL: ::c_int = 0; +pub const SIGEV_NONE: ::c_int = 1; +pub const SIGEV_THREAD: ::c_int = 2; + +pub const P_ALL: idtype_t = 0; +pub const P_PID: idtype_t = 1; +pub const P_PGID: idtype_t = 2; +cfg_if! { + if #[cfg(not(target_os = "emscripten"))] { + pub const P_PIDFD: idtype_t = 3; + } +} + +pub const UTIME_OMIT: c_long = 1073741822; +pub const UTIME_NOW: c_long = 1073741823; + +pub const POLLIN: ::c_short = 0x1; +pub const POLLPRI: ::c_short = 0x2; +pub const POLLOUT: ::c_short = 0x4; +pub const POLLERR: ::c_short = 0x8; +pub const POLLHUP: ::c_short = 0x10; +pub const POLLNVAL: ::c_short = 0x20; +pub const POLLRDNORM: ::c_short = 0x040; +pub const POLLRDBAND: ::c_short = 0x080; +#[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))] +pub const POLLRDHUP: ::c_short = 0x2000; +#[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] +pub const POLLRDHUP: ::c_short = 0x800; + +pub const IPTOS_LOWDELAY: u8 = 0x10; +pub const IPTOS_THROUGHPUT: u8 = 0x08; +pub const IPTOS_RELIABILITY: u8 = 0x04; +pub const IPTOS_MINCOST: u8 = 0x02; + +pub const IPTOS_PREC_NETCONTROL: u8 = 0xe0; +pub const IPTOS_PREC_INTERNETCONTROL: u8 = 0xc0; +pub const IPTOS_PREC_CRITIC_ECP: u8 = 0xa0; +pub const IPTOS_PREC_FLASHOVERRIDE: u8 = 0x80; +pub const IPTOS_PREC_FLASH: u8 = 0x60; +pub const IPTOS_PREC_IMMEDIATE: u8 = 0x40; +pub const IPTOS_PREC_PRIORITY: u8 = 0x20; +pub const IPTOS_PREC_ROUTINE: u8 = 0x00; + +pub const IPTOS_ECN_MASK: u8 = 0x03; +pub const IPTOS_ECN_ECT1: u8 = 0x01; +pub const IPTOS_ECN_ECT0: u8 = 0x02; +pub const IPTOS_ECN_CE: u8 = 0x03; + +pub const IPOPT_COPY: u8 = 0x80; +pub const IPOPT_CLASS_MASK: u8 = 0x60; +pub const IPOPT_NUMBER_MASK: u8 = 0x1f; + +pub const IPOPT_CONTROL: u8 = 0x00; +pub const IPOPT_RESERVED1: u8 = 0x20; +pub const IPOPT_MEASUREMENT: u8 = 0x40; +pub const IPOPT_RESERVED2: u8 = 0x60; +pub const IPOPT_END: u8 = 0 | IPOPT_CONTROL; +pub const IPOPT_NOOP: u8 = 1 | IPOPT_CONTROL; +pub const IPOPT_SEC: u8 = 2 | IPOPT_CONTROL | IPOPT_COPY; +pub const IPOPT_LSRR: u8 = 3 | IPOPT_CONTROL | IPOPT_COPY; +pub const IPOPT_TIMESTAMP: u8 = 4 | IPOPT_MEASUREMENT; +pub const IPOPT_RR: u8 = 7 | IPOPT_CONTROL; +pub const IPOPT_SID: u8 = 8 | IPOPT_CONTROL | IPOPT_COPY; +pub const IPOPT_SSRR: u8 = 9 | IPOPT_CONTROL | IPOPT_COPY; +pub const IPOPT_RA: u8 = 20 | IPOPT_CONTROL | IPOPT_COPY; +pub const IPVERSION: u8 = 4; +pub const MAXTTL: u8 = 255; +pub const IPDEFTTL: u8 = 64; +pub const IPOPT_OPTVAL: u8 = 0; +pub const IPOPT_OLEN: u8 = 1; +pub const IPOPT_OFFSET: u8 = 2; +pub const IPOPT_MINOFF: u8 = 4; +pub const MAX_IPOPTLEN: u8 = 40; +pub const IPOPT_NOP: u8 = IPOPT_NOOP; +pub const IPOPT_EOL: u8 = IPOPT_END; +pub const IPOPT_TS: u8 = IPOPT_TIMESTAMP; +pub const IPOPT_TS_TSONLY: u8 = 0; +pub const IPOPT_TS_TSANDADDR: u8 = 1; +pub const IPOPT_TS_PRESPEC: u8 = 3; + +pub const ARPOP_RREQUEST: u16 = 3; +pub const ARPOP_RREPLY: u16 = 4; +pub const ARPOP_InREQUEST: u16 = 8; +pub const ARPOP_InREPLY: u16 = 9; +pub const ARPOP_NAK: u16 = 10; + +pub const ATF_NETMASK: ::c_int = 0x20; +pub const ATF_DONTPUB: ::c_int = 0x40; + +pub const ARPHRD_NETROM: u16 = 0; +pub const ARPHRD_ETHER: u16 = 1; +pub const ARPHRD_EETHER: u16 = 2; +pub const ARPHRD_AX25: u16 = 3; +pub const ARPHRD_PRONET: u16 = 4; +pub const ARPHRD_CHAOS: u16 = 5; +pub const ARPHRD_IEEE802: u16 = 6; +pub const ARPHRD_ARCNET: u16 = 7; +pub const ARPHRD_APPLETLK: u16 = 8; +pub const ARPHRD_DLCI: u16 = 15; +pub const ARPHRD_ATM: u16 = 19; +pub const ARPHRD_METRICOM: u16 = 23; +pub const ARPHRD_IEEE1394: u16 = 24; +pub const ARPHRD_EUI64: u16 = 27; +pub const ARPHRD_INFINIBAND: u16 = 32; + +pub const ARPHRD_SLIP: u16 = 256; +pub const ARPHRD_CSLIP: u16 = 257; +pub const ARPHRD_SLIP6: u16 = 258; +pub const ARPHRD_CSLIP6: u16 = 259; +pub const ARPHRD_RSRVD: u16 = 260; +pub const ARPHRD_ADAPT: u16 = 264; +pub const ARPHRD_ROSE: u16 = 270; +pub const ARPHRD_X25: u16 = 271; +pub const ARPHRD_HWX25: u16 = 272; +pub const ARPHRD_CAN: u16 = 280; +pub const ARPHRD_PPP: u16 = 512; +pub const ARPHRD_CISCO: u16 = 513; +pub const ARPHRD_HDLC: u16 = ARPHRD_CISCO; +pub const ARPHRD_LAPB: u16 = 516; +pub const ARPHRD_DDCMP: u16 = 517; +pub const ARPHRD_RAWHDLC: u16 = 518; + +pub const ARPHRD_TUNNEL: u16 = 768; +pub const ARPHRD_TUNNEL6: u16 = 769; +pub const ARPHRD_FRAD: u16 = 770; +pub const ARPHRD_SKIP: u16 = 771; +pub const ARPHRD_LOOPBACK: u16 = 772; +pub const ARPHRD_LOCALTLK: u16 = 773; +pub const ARPHRD_FDDI: u16 = 774; +pub const ARPHRD_BIF: u16 = 775; +pub const ARPHRD_SIT: u16 = 776; +pub const ARPHRD_IPDDP: u16 = 777; +pub const ARPHRD_IPGRE: u16 = 778; +pub const ARPHRD_PIMREG: u16 = 779; +pub const ARPHRD_HIPPI: u16 = 780; +pub const ARPHRD_ASH: u16 = 781; +pub const ARPHRD_ECONET: u16 = 782; +pub const ARPHRD_IRDA: u16 = 783; +pub const ARPHRD_FCPP: u16 = 784; +pub const ARPHRD_FCAL: u16 = 785; +pub const ARPHRD_FCPL: u16 = 786; +pub const ARPHRD_FCFABRIC: u16 = 787; +pub const ARPHRD_IEEE802_TR: u16 = 800; +pub const ARPHRD_IEEE80211: u16 = 801; +pub const ARPHRD_IEEE80211_PRISM: u16 = 802; +pub const ARPHRD_IEEE80211_RADIOTAP: u16 = 803; +pub const ARPHRD_IEEE802154: u16 = 804; + +pub const ARPHRD_VOID: u16 = 0xFFFF; +pub const ARPHRD_NONE: u16 = 0xFFFE; + +cfg_if! { + if #[cfg(target_os = "emscripten")] { + // Emscripten does not define any `*_SUPER_MAGIC` constants. + } else if #[cfg(not(target_arch = "s390x"))] { + pub const ADFS_SUPER_MAGIC: ::c_long = 0x0000adf5; + pub const AFFS_SUPER_MAGIC: ::c_long = 0x0000adff; + pub const AFS_SUPER_MAGIC: ::c_long = 0x5346414f; + pub const AUTOFS_SUPER_MAGIC: ::c_long = 0x0187; + pub const BPF_FS_MAGIC: ::c_long = 0xcafe4a11; + pub const BTRFS_SUPER_MAGIC: ::c_long = 0x9123683e; + pub const CGROUP2_SUPER_MAGIC: ::c_long = 0x63677270; + pub const CGROUP_SUPER_MAGIC: ::c_long = 0x27e0eb; + pub const CODA_SUPER_MAGIC: ::c_long = 0x73757245; + pub const CRAMFS_MAGIC: ::c_long = 0x28cd3d45; + pub const DEBUGFS_MAGIC: ::c_long = 0x64626720; + pub const DEVPTS_SUPER_MAGIC: ::c_long = 0x1cd1; + pub const ECRYPTFS_SUPER_MAGIC: ::c_long = 0xf15f; + pub const EFS_SUPER_MAGIC: ::c_long = 0x00414a53; + pub const EXT2_SUPER_MAGIC: ::c_long = 0x0000ef53; + pub const EXT3_SUPER_MAGIC: ::c_long = 0x0000ef53; + pub const EXT4_SUPER_MAGIC: ::c_long = 0x0000ef53; + pub const F2FS_SUPER_MAGIC: ::c_long = 0xf2f52010; + pub const FUSE_SUPER_MAGIC: ::c_long = 0x65735546; + pub const FUTEXFS_SUPER_MAGIC: ::c_long = 0xbad1dea; + pub const HOSTFS_SUPER_MAGIC: ::c_long = 0x00c0ffee; + pub const HPFS_SUPER_MAGIC: ::c_long = 0xf995e849; + pub const HUGETLBFS_MAGIC: ::c_long = 0x958458f6; + pub const ISOFS_SUPER_MAGIC: ::c_long = 0x00009660; + pub const JFFS2_SUPER_MAGIC: ::c_long = 0x000072b6; + pub const MINIX2_SUPER_MAGIC2: ::c_long = 0x00002478; + pub const MINIX2_SUPER_MAGIC: ::c_long = 0x00002468; + pub const MINIX3_SUPER_MAGIC: ::c_long = 0x4d5a; + pub const MINIX_SUPER_MAGIC2: ::c_long = 0x0000138f; + pub const MINIX_SUPER_MAGIC: ::c_long = 0x0000137f; + pub const MSDOS_SUPER_MAGIC: ::c_long = 0x00004d44; + pub const NCP_SUPER_MAGIC: ::c_long = 0x0000564c; + pub const NFS_SUPER_MAGIC: ::c_long = 0x00006969; + pub const NILFS_SUPER_MAGIC: ::c_long = 0x3434; + pub const OCFS2_SUPER_MAGIC: ::c_long = 0x7461636f; + pub const OPENPROM_SUPER_MAGIC: ::c_long = 0x00009fa1; + pub const OVERLAYFS_SUPER_MAGIC: ::c_long = 0x794c7630; + pub const PROC_SUPER_MAGIC: ::c_long = 0x00009fa0; + pub const QNX4_SUPER_MAGIC: ::c_long = 0x0000002f; + pub const QNX6_SUPER_MAGIC: ::c_long = 0x68191122; + pub const RDTGROUP_SUPER_MAGIC: ::c_long = 0x7655821; + pub const REISERFS_SUPER_MAGIC: ::c_long = 0x52654973; + pub const SECURITYFS_MAGIC: ::c_long = 0x73636673; + pub const SELINUX_MAGIC: ::c_long = 0xf97cff8c; + pub const SMACK_MAGIC: ::c_long = 0x43415d53; + pub const SMB_SUPER_MAGIC: ::c_long = 0x0000517b; + pub const SYSFS_MAGIC: ::c_long = 0x62656572; + pub const TMPFS_MAGIC: ::c_long = 0x01021994; + pub const TRACEFS_MAGIC: ::c_long = 0x74726163; + pub const UDF_SUPER_MAGIC: ::c_long = 0x15013346; + pub const USBDEVICE_SUPER_MAGIC: ::c_long = 0x00009fa2; + pub const XENFS_SUPER_MAGIC: ::c_long = 0xabba1974; + pub const NSFS_MAGIC: ::c_long = 0x6e736673; + } else if #[cfg(target_arch = "s390x")] { + pub const ADFS_SUPER_MAGIC: ::c_uint = 0x0000adf5; + pub const AFFS_SUPER_MAGIC: ::c_uint = 0x0000adff; + pub const AFS_SUPER_MAGIC: ::c_uint = 0x5346414f; + pub const AUTOFS_SUPER_MAGIC: ::c_uint = 0x0187; + pub const BPF_FS_MAGIC: ::c_uint = 0xcafe4a11; + pub const BTRFS_SUPER_MAGIC: ::c_uint = 0x9123683e; + pub const CGROUP2_SUPER_MAGIC: ::c_uint = 0x63677270; + pub const CGROUP_SUPER_MAGIC: ::c_uint = 0x27e0eb; + pub const CODA_SUPER_MAGIC: ::c_uint = 0x73757245; + pub const CRAMFS_MAGIC: ::c_uint = 0x28cd3d45; + pub const DEBUGFS_MAGIC: ::c_uint = 0x64626720; + pub const DEVPTS_SUPER_MAGIC: ::c_uint = 0x1cd1; + pub const ECRYPTFS_SUPER_MAGIC: ::c_uint = 0xf15f; + pub const EFS_SUPER_MAGIC: ::c_uint = 0x00414a53; + pub const EXT2_SUPER_MAGIC: ::c_uint = 0x0000ef53; + pub const EXT3_SUPER_MAGIC: ::c_uint = 0x0000ef53; + pub const EXT4_SUPER_MAGIC: ::c_uint = 0x0000ef53; + pub const F2FS_SUPER_MAGIC: ::c_uint = 0xf2f52010; + pub const FUSE_SUPER_MAGIC: ::c_uint = 0x65735546; + pub const FUTEXFS_SUPER_MAGIC: ::c_uint = 0xbad1dea; + pub const HOSTFS_SUPER_MAGIC: ::c_uint = 0x00c0ffee; + pub const HPFS_SUPER_MAGIC: ::c_uint = 0xf995e849; + pub const HUGETLBFS_MAGIC: ::c_uint = 0x958458f6; + pub const ISOFS_SUPER_MAGIC: ::c_uint = 0x00009660; + pub const JFFS2_SUPER_MAGIC: ::c_uint = 0x000072b6; + pub const MINIX2_SUPER_MAGIC2: ::c_uint = 0x00002478; + pub const MINIX2_SUPER_MAGIC: ::c_uint = 0x00002468; + pub const MINIX3_SUPER_MAGIC: ::c_uint = 0x4d5a; + pub const MINIX_SUPER_MAGIC2: ::c_uint = 0x0000138f; + pub const MINIX_SUPER_MAGIC: ::c_uint = 0x0000137f; + pub const MSDOS_SUPER_MAGIC: ::c_uint = 0x00004d44; + pub const NCP_SUPER_MAGIC: ::c_uint = 0x0000564c; + pub const NFS_SUPER_MAGIC: ::c_uint = 0x00006969; + pub const NILFS_SUPER_MAGIC: ::c_uint = 0x3434; + pub const OCFS2_SUPER_MAGIC: ::c_uint = 0x7461636f; + pub const OPENPROM_SUPER_MAGIC: ::c_uint = 0x00009fa1; + pub const OVERLAYFS_SUPER_MAGIC: ::c_uint = 0x794c7630; + pub const PROC_SUPER_MAGIC: ::c_uint = 0x00009fa0; + pub const QNX4_SUPER_MAGIC: ::c_uint = 0x0000002f; + pub const QNX6_SUPER_MAGIC: ::c_uint = 0x68191122; + pub const RDTGROUP_SUPER_MAGIC: ::c_uint = 0x7655821; + pub const REISERFS_SUPER_MAGIC: ::c_uint = 0x52654973; + pub const SECURITYFS_MAGIC: ::c_uint = 0x73636673; + pub const SELINUX_MAGIC: ::c_uint = 0xf97cff8c; + pub const SMACK_MAGIC: ::c_uint = 0x43415d53; + pub const SMB_SUPER_MAGIC: ::c_uint = 0x0000517b; + pub const SYSFS_MAGIC: ::c_uint = 0x62656572; + pub const TMPFS_MAGIC: ::c_uint = 0x01021994; + pub const TRACEFS_MAGIC: ::c_uint = 0x74726163; + pub const UDF_SUPER_MAGIC: ::c_uint = 0x15013346; + pub const USBDEVICE_SUPER_MAGIC: ::c_uint = 0x00009fa2; + pub const XENFS_SUPER_MAGIC: ::c_uint = 0xabba1974; + pub const NSFS_MAGIC: ::c_uint = 0x6e736673; + } +} + +const_fn! { + {const} fn CMSG_ALIGN(len: usize) -> usize { + len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) + } +} + +f! { + pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { + if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { + (*mhdr).msg_control as *mut cmsghdr + } else { + 0 as *mut cmsghdr + } + } + + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut ::c_uchar { + cmsg.offset(1) as *mut ::c_uchar + } + + pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) + as ::c_uint + } + + pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { + CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length + } + + pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] &= !(1 << (fd % size)); + return + } + + pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 + } + + pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] |= 1 << (fd % size); + return + } + + pub fn FD_ZERO(set: *mut fd_set) -> () { + for slot in (*set).fds_bits.iter_mut() { + *slot = 0; + } + } +} + +safe_f! { + pub fn SIGRTMAX() -> ::c_int { + unsafe { __libc_current_sigrtmax() } + } + + pub fn SIGRTMIN() -> ::c_int { + unsafe { __libc_current_sigrtmin() } + } + + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + (status & 0xff) == 0x7f + } + + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } + + pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + status == 0xffff + } + + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + ((status & 0x7f) + 1) as i8 >= 2 + } + + pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + status & 0x7f + } + + pub {const} fn WIFEXITED(status: ::c_int) -> bool { + (status & 0x7f) == 0 + } + + pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } + + pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + (status & 0x80) != 0 + } + + pub {const} fn W_EXITCODE(ret: ::c_int, sig: ::c_int) -> ::c_int { + (ret << 8) | sig + } + + pub {const} fn W_STOPCODE(sig: ::c_int) -> ::c_int { + (sig << 8) | 0x7f + } + + pub {const} fn QCMD(cmd: ::c_int, type_: ::c_int) -> ::c_int { + (cmd << 8) | (type_ & 0x00ff) + } + + pub {const} fn IPOPT_COPIED(o: u8) -> u8 { + o & IPOPT_COPY + } + + pub {const} fn IPOPT_CLASS(o: u8) -> u8 { + o & IPOPT_CLASS_MASK + } + + pub {const} fn IPOPT_NUMBER(o: u8) -> u8 { + o & IPOPT_NUMBER_MASK + } + + pub {const} fn IPTOS_ECN(x: u8) -> u8 { + x & ::IPTOS_ECN_MASK + } + + #[allow(ellipsis_inclusive_range_patterns)] + pub {const} fn KERNEL_VERSION(a: u32, b: u32, c: u32) -> u32 { + ((a << 16) + (b << 8)) + match c { + 0 ... 255 => c, + _ => 255, + } + } +} + +extern "C" { + #[doc(hidden)] + pub fn __libc_current_sigrtmax() -> ::c_int; + #[doc(hidden)] + pub fn __libc_current_sigrtmin() -> ::c_int; + + pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; + pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + pub fn fdatasync(fd: ::c_int) -> ::c_int; + pub fn mincore(addr: *mut ::c_void, len: ::size_t, vec: *mut ::c_uchar) -> ::c_int; + + pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; + + pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + + pub fn pthread_getattr_np(native: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; + pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn setgroups(ngroups: ::size_t, ptr: *const ::gid_t) -> ::c_int; + pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; + pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; + pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; + pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; + pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; + pub fn duplocale(base: ::locale_t) -> ::locale_t; + pub fn freelocale(loc: ::locale_t); + pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; + pub fn uselocale(loc: ::locale_t) -> ::locale_t; + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_mutexattr_setpshared( + attr: *mut pthread_mutexattr_t, + pshared: ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_getpshared( + attr: *const pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; + pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> ::c_int; + pub fn clearenv() -> ::c_int; + pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) + -> ::c_int; + pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; + pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; + pub fn acct(filename: *const ::c_char) -> ::c_int; + pub fn brk(addr: *mut ::c_void) -> ::c_int; + pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; + #[deprecated( + since = "0.2.66", + note = "causes memory corruption, see rust-lang/libc#1596" + )] + pub fn vfork() -> ::pid_t; + pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; + pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; + pub fn wait4( + pid: ::pid_t, + status: *mut ::c_int, + options: ::c_int, + rusage: *mut ::rusage, + ) -> ::pid_t; + pub fn login_tty(fd: ::c_int) -> ::c_int; + pub fn execvpe( + file: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + pub fn fexecve( + fd: ::c_int, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; + pub fn freeifaddrs(ifa: *mut ::ifaddrs); + pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; + + pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + + pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn uname(buf: *mut ::utsname) -> ::c_int; + + pub fn strchrnul(s: *const ::c_char, c: ::c_int) -> *mut ::c_char; +} + +// LFS64 extensions +// +// * musl has 64-bit versions only so aliases the LFS64 symbols to the standard ones +// * ulibc doesn't have preadv64/pwritev64 +cfg_if! { + if #[cfg(not(target_env = "musl"))] { + extern "C" { + pub fn fstatfs64(fd: ::c_int, buf: *mut statfs64) -> ::c_int; + pub fn statvfs64(path: *const ::c_char, buf: *mut statvfs64) -> ::c_int; + pub fn fstatvfs64(fd: ::c_int, buf: *mut statvfs64) -> ::c_int; + pub fn statfs64(path: *const ::c_char, buf: *mut statfs64) -> ::c_int; + pub fn creat64(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn fstat64(fildes: ::c_int, buf: *mut stat64) -> ::c_int; + pub fn fstatat64( + dirfd: ::c_int, + pathname: *const c_char, + buf: *mut stat64, + flags: ::c_int, + ) -> ::c_int; + pub fn ftruncate64(fd: ::c_int, length: off64_t) -> ::c_int; + pub fn lseek64(fd: ::c_int, offset: off64_t, whence: ::c_int) -> off64_t; + pub fn lstat64(path: *const c_char, buf: *mut stat64) -> ::c_int; + pub fn mmap64( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + flags: ::c_int, + fd: ::c_int, + offset: off64_t, + ) -> *mut ::c_void; + pub fn open64(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; + pub fn openat64(fd: ::c_int, path: *const c_char, oflag: ::c_int, ...) -> ::c_int; + pub fn posix_fadvise64( + fd: ::c_int, + offset: ::off64_t, + len: ::off64_t, + advise: ::c_int, + ) -> ::c_int; + pub fn pread64( + fd: ::c_int, + buf: *mut ::c_void, + count: ::size_t, + offset: off64_t + ) -> ::ssize_t; + pub fn pwrite64( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + offset: off64_t, + ) -> ::ssize_t; + pub fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64; + pub fn readdir64_r( + dirp: *mut ::DIR, + entry: *mut ::dirent64, + result: *mut *mut ::dirent64, + ) -> ::c_int; + pub fn stat64(path: *const c_char, buf: *mut stat64) -> ::c_int; + pub fn truncate64(path: *const c_char, length: off64_t) -> ::c_int; + } + } +} + +cfg_if! { + if #[cfg(not(any(target_env = "uclibc", target_env = "musl")))] { + extern "C" { + pub fn preadv64( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, + ) -> ::ssize_t; + pub fn pwritev64( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, + ) -> ::ssize_t; + } + } +} + +cfg_if! { + if #[cfg(not(target_env = "uclibc"))] { + extern "C" { + // uclibc has separate non-const version of this function + pub fn forkpty( + amaster: *mut ::c_int, + name: *mut ::c_char, + termp: *const termios, + winp: *const ::winsize, + ) -> ::pid_t; + // uclibc has separate non-const version of this function + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *const termios, + winp: *const ::winsize, + ) -> ::c_int; + } + } +} + +cfg_if! { + if #[cfg(target_os = "emscripten")] { + mod emscripten; + pub use self::emscripten::*; + } else if #[cfg(target_os = "linux")] { + mod linux; + pub use self::linux::*; + } else if #[cfg(target_os = "l4re")] { + mod linux; + pub use self::linux::*; + } else if #[cfg(target_os = "android")] { + mod android; + pub use self::android::*; + } else { + // Unknown target_os + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/mod.rs new file mode 100644 index 000000000..762470a7f --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/mod.rs @@ -0,0 +1,1625 @@ +//! Definitions found commonly among almost all Unix derivatives +//! +//! More functions and definitions can be found in the more specific modules +//! according to the platform in question. + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_int = i32; +pub type c_uint = u32; +pub type c_float = f32; +pub type c_double = f64; +pub type c_longlong = i64; +pub type c_ulonglong = u64; +pub type intmax_t = i64; +pub type uintmax_t = u64; + +pub type size_t = usize; +pub type ptrdiff_t = isize; +pub type intptr_t = isize; +pub type uintptr_t = usize; +pub type ssize_t = isize; + +pub type pid_t = i32; +pub type in_addr_t = u32; +pub type in_port_t = u16; +pub type sighandler_t = ::size_t; +pub type cc_t = ::c_uchar; + +cfg_if! { + if #[cfg(any(target_os = "espidf", target_os = "horizon", target_os = "vita"))] { + pub type uid_t = ::c_ushort; + pub type gid_t = ::c_ushort; + } else if #[cfg(target_os = "nto")] { + pub type uid_t = i32; + pub type gid_t = i32; + } else { + pub type uid_t = u32; + pub type gid_t = u32; + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum DIR {} +impl ::Copy for DIR {} +impl ::Clone for DIR { + fn clone(&self) -> DIR { + *self + } +} +pub type locale_t = *mut ::c_void; + +s! { + pub struct group { + pub gr_name: *mut ::c_char, + pub gr_passwd: *mut ::c_char, + pub gr_gid: ::gid_t, + pub gr_mem: *mut *mut ::c_char, + } + + pub struct utimbuf { + pub actime: time_t, + pub modtime: time_t, + } + + pub struct timeval { + pub tv_sec: time_t, + pub tv_usec: suseconds_t, + } + + // linux x32 compatibility + // See https://sourceware.org/bugzilla/show_bug.cgi?id=16437 + pub struct timespec { + pub tv_sec: time_t, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + pub tv_nsec: i64, + #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] + pub tv_nsec: ::c_long, + } + + pub struct rlimit { + pub rlim_cur: rlim_t, + pub rlim_max: rlim_t, + } + + pub struct rusage { + pub ru_utime: timeval, + pub ru_stime: timeval, + pub ru_maxrss: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad1: u32, + pub ru_ixrss: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad2: u32, + pub ru_idrss: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad3: u32, + pub ru_isrss: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad4: u32, + pub ru_minflt: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad5: u32, + pub ru_majflt: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad6: u32, + pub ru_nswap: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad7: u32, + pub ru_inblock: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad8: u32, + pub ru_oublock: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad9: u32, + pub ru_msgsnd: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad10: u32, + pub ru_msgrcv: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad11: u32, + pub ru_nsignals: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad12: u32, + pub ru_nvcsw: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad13: u32, + pub ru_nivcsw: c_long, + #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] + __pad14: u32, + + #[cfg(any(target_env = "musl", target_env = "ohos", target_os = "emscripten"))] + __reserved: [c_long; 16], + } + + pub struct ipv6_mreq { + pub ipv6mr_multiaddr: in6_addr, + #[cfg(target_os = "android")] + pub ipv6mr_interface: ::c_int, + #[cfg(not(target_os = "android"))] + pub ipv6mr_interface: ::c_uint, + } + + pub struct hostent { + pub h_name: *mut ::c_char, + pub h_aliases: *mut *mut ::c_char, + pub h_addrtype: ::c_int, + pub h_length: ::c_int, + pub h_addr_list: *mut *mut ::c_char, + } + + pub struct iovec { + pub iov_base: *mut ::c_void, + pub iov_len: ::size_t, + } + + pub struct pollfd { + pub fd: ::c_int, + pub events: ::c_short, + pub revents: ::c_short, + } + + pub struct winsize { + pub ws_row: ::c_ushort, + pub ws_col: ::c_ushort, + pub ws_xpixel: ::c_ushort, + pub ws_ypixel: ::c_ushort, + } + + pub struct linger { + pub l_onoff: ::c_int, + pub l_linger: ::c_int, + } + + pub struct sigval { + // Actually a union of an int and a void* + pub sival_ptr: *mut ::c_void + } + + // + pub struct itimerval { + pub it_interval: ::timeval, + pub it_value: ::timeval, + } + + // + pub struct tms { + pub tms_utime: ::clock_t, + pub tms_stime: ::clock_t, + pub tms_cutime: ::clock_t, + pub tms_cstime: ::clock_t, + } + + pub struct servent { + pub s_name: *mut ::c_char, + pub s_aliases: *mut *mut ::c_char, + pub s_port: ::c_int, + pub s_proto: *mut ::c_char, + } + + pub struct protoent { + pub p_name: *mut ::c_char, + pub p_aliases: *mut *mut ::c_char, + pub p_proto: ::c_int, + } +} + +pub const INT_MIN: c_int = -2147483648; +pub const INT_MAX: c_int = 2147483647; + +pub const SIG_DFL: sighandler_t = 0 as sighandler_t; +pub const SIG_IGN: sighandler_t = 1 as sighandler_t; +pub const SIG_ERR: sighandler_t = !0 as sighandler_t; +cfg_if! { + if #[cfg(not(target_os = "nto"))] { + pub const DT_UNKNOWN: u8 = 0; + pub const DT_FIFO: u8 = 1; + pub const DT_CHR: u8 = 2; + pub const DT_DIR: u8 = 4; + pub const DT_BLK: u8 = 6; + pub const DT_REG: u8 = 8; + pub const DT_LNK: u8 = 10; + pub const DT_SOCK: u8 = 12; + } +} +cfg_if! { + if #[cfg(not(target_os = "redox"))] { + pub const FD_CLOEXEC: ::c_int = 0x1; + } +} + +cfg_if! { + if #[cfg(not(target_os = "nto"))] + { + pub const USRQUOTA: ::c_int = 0; + pub const GRPQUOTA: ::c_int = 1; + } +} +pub const SIGIOT: ::c_int = 6; + +pub const S_ISUID: ::mode_t = 0x800; +pub const S_ISGID: ::mode_t = 0x400; +pub const S_ISVTX: ::mode_t = 0x200; + +cfg_if! { + if #[cfg(not(any(target_os = "haiku", target_os = "illumos", + target_os = "solaris")))] { + pub const IF_NAMESIZE: ::size_t = 16; + pub const IFNAMSIZ: ::size_t = IF_NAMESIZE; + } +} + +pub const LOG_EMERG: ::c_int = 0; +pub const LOG_ALERT: ::c_int = 1; +pub const LOG_CRIT: ::c_int = 2; +pub const LOG_ERR: ::c_int = 3; +pub const LOG_WARNING: ::c_int = 4; +pub const LOG_NOTICE: ::c_int = 5; +pub const LOG_INFO: ::c_int = 6; +pub const LOG_DEBUG: ::c_int = 7; + +pub const LOG_KERN: ::c_int = 0; +pub const LOG_USER: ::c_int = 1 << 3; +pub const LOG_MAIL: ::c_int = 2 << 3; +pub const LOG_DAEMON: ::c_int = 3 << 3; +pub const LOG_AUTH: ::c_int = 4 << 3; +pub const LOG_SYSLOG: ::c_int = 5 << 3; +pub const LOG_LPR: ::c_int = 6 << 3; +pub const LOG_NEWS: ::c_int = 7 << 3; +pub const LOG_UUCP: ::c_int = 8 << 3; +pub const LOG_LOCAL0: ::c_int = 16 << 3; +pub const LOG_LOCAL1: ::c_int = 17 << 3; +pub const LOG_LOCAL2: ::c_int = 18 << 3; +pub const LOG_LOCAL3: ::c_int = 19 << 3; +pub const LOG_LOCAL4: ::c_int = 20 << 3; +pub const LOG_LOCAL5: ::c_int = 21 << 3; +pub const LOG_LOCAL6: ::c_int = 22 << 3; +pub const LOG_LOCAL7: ::c_int = 23 << 3; + +cfg_if! { + if #[cfg(not(target_os = "haiku"))] { + pub const LOG_PID: ::c_int = 0x01; + pub const LOG_CONS: ::c_int = 0x02; + pub const LOG_ODELAY: ::c_int = 0x04; + pub const LOG_NDELAY: ::c_int = 0x08; + pub const LOG_NOWAIT: ::c_int = 0x10; + } +} +pub const LOG_PRIMASK: ::c_int = 7; +pub const LOG_FACMASK: ::c_int = 0x3f8; + +cfg_if! { + if #[cfg(not(target_os = "nto"))] + { + pub const PRIO_MIN: ::c_int = -20; + pub const PRIO_MAX: ::c_int = 20; + } +} +pub const IPPROTO_ICMP: ::c_int = 1; +pub const IPPROTO_ICMPV6: ::c_int = 58; +pub const IPPROTO_TCP: ::c_int = 6; +pub const IPPROTO_UDP: ::c_int = 17; +pub const IPPROTO_IP: ::c_int = 0; +pub const IPPROTO_IPV6: ::c_int = 41; + +pub const INADDR_LOOPBACK: in_addr_t = 2130706433; +pub const INADDR_ANY: in_addr_t = 0; +pub const INADDR_BROADCAST: in_addr_t = 4294967295; +pub const INADDR_NONE: in_addr_t = 4294967295; + +pub const ARPOP_REQUEST: u16 = 1; +pub const ARPOP_REPLY: u16 = 2; + +pub const ATF_COM: ::c_int = 0x02; +pub const ATF_PERM: ::c_int = 0x04; +pub const ATF_PUBL: ::c_int = 0x08; +pub const ATF_USETRAILERS: ::c_int = 0x10; + +cfg_if! { + if #[cfg(any(target_os = "l4re", target_os = "espidf"))] { + // required libraries for L4Re and the ESP-IDF framework are linked externally, ATM + } else if #[cfg(feature = "std")] { + // cargo build, don't pull in anything extra as the libstd dep + // already pulls in all libs. + } else if #[cfg(all(target_os = "linux", + any(target_env = "gnu", target_env = "uclibc"), + feature = "rustc-dep-of-std"))] { + #[link(name = "util", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static"))] + #[link(name = "rt", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static"))] + #[link(name = "pthread", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static"))] + #[link(name = "m", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static"))] + #[link(name = "dl", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static"))] + #[link(name = "c", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static"))] + #[link(name = "gcc_eh", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static"))] + #[link(name = "gcc", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static"))] + #[link(name = "c", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static"))] + #[link(name = "util", cfg(not(target_feature = "crt-static")))] + #[link(name = "rt", cfg(not(target_feature = "crt-static")))] + #[link(name = "pthread", cfg(not(target_feature = "crt-static")))] + #[link(name = "m", cfg(not(target_feature = "crt-static")))] + #[link(name = "dl", cfg(not(target_feature = "crt-static")))] + #[link(name = "c", cfg(not(target_feature = "crt-static")))] + extern {} + } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { + #[cfg_attr(feature = "rustc-dep-of-std", + link(name = "c", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static")))] + #[cfg_attr(feature = "rustc-dep-of-std", + link(name = "c", cfg(not(target_feature = "crt-static"))))] + extern {} + } else if #[cfg(target_os = "emscripten")] { + #[link(name = "c")] + extern {} + } else if #[cfg(all(target_os = "android", feature = "rustc-dep-of-std"))] { + #[link(name = "c", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static"))] + #[link(name = "m", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static"))] + #[link(name = "m", cfg(not(target_feature = "crt-static")))] + #[link(name = "c", cfg(not(target_feature = "crt-static")))] + extern {} + } else if #[cfg(any(target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos", + target_os = "android", + target_os = "openbsd", + target_os = "nto", + ))] { + #[link(name = "c")] + #[link(name = "m")] + extern {} + } else if #[cfg(target_os = "haiku")] { + #[link(name = "root")] + #[link(name = "network")] + extern {} + } else if #[cfg(target_env = "newlib")] { + #[link(name = "c")] + #[link(name = "m")] + extern {} + } else if #[cfg(target_os = "hermit")] { + // no_default_libraries is set to false for HermitCore, so only a link + // to "pthread" needs to be added. + #[link(name = "pthread")] + extern {} + } else if #[cfg(target_env = "illumos")] { + #[link(name = "c")] + #[link(name = "m")] + extern {} + } else if #[cfg(target_os = "redox")] { + #[cfg_attr(feature = "rustc-dep-of-std", + link(name = "c", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static")))] + #[cfg_attr(feature = "rustc-dep-of-std", + link(name = "c", cfg(not(target_feature = "crt-static"))))] + extern {} + } else if #[cfg(target_env = "aix")] { + #[link(name = "c")] + #[link(name = "m")] + #[link(name = "bsd")] + #[link(name = "pthread")] + extern {} + } else { + #[link(name = "c")] + #[link(name = "m")] + #[link(name = "rt")] + #[link(name = "pthread")] + extern {} + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum FILE {} +impl ::Copy for FILE {} +impl ::Clone for FILE { + fn clone(&self) -> FILE { + *self + } +} +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum fpos_t {} // FIXME: fill this out with a struct +impl ::Copy for fpos_t {} +impl ::Clone for fpos_t { + fn clone(&self) -> fpos_t { + *self + } +} + +extern "C" { + pub fn isalnum(c: c_int) -> c_int; + pub fn isalpha(c: c_int) -> c_int; + pub fn iscntrl(c: c_int) -> c_int; + pub fn isdigit(c: c_int) -> c_int; + pub fn isgraph(c: c_int) -> c_int; + pub fn islower(c: c_int) -> c_int; + pub fn isprint(c: c_int) -> c_int; + pub fn ispunct(c: c_int) -> c_int; + pub fn isspace(c: c_int) -> c_int; + pub fn isupper(c: c_int) -> c_int; + pub fn isxdigit(c: c_int) -> c_int; + pub fn isblank(c: c_int) -> c_int; + pub fn tolower(c: c_int) -> c_int; + pub fn toupper(c: c_int) -> c_int; + pub fn qsort( + base: *mut c_void, + num: size_t, + size: size_t, + compar: ::Option c_int>, + ); + pub fn bsearch( + key: *const c_void, + base: *const c_void, + num: size_t, + size: size_t, + compar: ::Option c_int>, + ) -> *mut c_void; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fopen$UNIX2003" + )] + pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "freopen$UNIX2003" + )] + pub fn freopen(filename: *const c_char, mode: *const c_char, file: *mut FILE) -> *mut FILE; + + pub fn fflush(file: *mut FILE) -> c_int; + pub fn fclose(file: *mut FILE) -> c_int; + pub fn remove(filename: *const c_char) -> c_int; + pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; + pub fn tmpfile() -> *mut FILE; + pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int; + pub fn setbuf(stream: *mut FILE, buf: *mut c_char); + pub fn getchar() -> c_int; + pub fn putchar(c: c_int) -> c_int; + pub fn fgetc(stream: *mut FILE) -> c_int; + pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; + pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fputs$UNIX2003" + )] + pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; + pub fn puts(s: *const c_char) -> c_int; + pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; + pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fwrite$UNIX2003" + )] + pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; + pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; + pub fn ftell(stream: *mut FILE) -> c_long; + pub fn rewind(stream: *mut FILE); + #[cfg_attr(target_os = "netbsd", link_name = "__fgetpos50")] + pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__fsetpos50")] + pub fn fsetpos(stream: *mut FILE, ptr: *const fpos_t) -> c_int; + pub fn feof(stream: *mut FILE) -> c_int; + pub fn ferror(stream: *mut FILE) -> c_int; + pub fn clearerr(stream: *mut FILE); + pub fn perror(s: *const c_char); + pub fn atof(s: *const c_char) -> c_double; + pub fn atoi(s: *const c_char) -> c_int; + pub fn atol(s: *const c_char) -> c_long; + pub fn atoll(s: *const c_char) -> c_longlong; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "strtod$UNIX2003" + )] + pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; + pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float; + pub fn strtol(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_long; + pub fn strtoll(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_longlong; + pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulong; + pub fn strtoull(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulonglong; + pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; + pub fn malloc(size: size_t) -> *mut c_void; + pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; + pub fn free(p: *mut c_void); + pub fn abort() -> !; + pub fn exit(status: c_int) -> !; + pub fn _exit(status: c_int) -> !; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "system$UNIX2003" + )] + pub fn system(s: *const c_char) -> c_int; + pub fn getenv(s: *const c_char) -> *mut c_char; + + pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; + pub fn stpcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; + pub fn strncat(s: *mut c_char, ct: *const c_char, n: size_t) -> *mut c_char; + pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; + pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; + pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; + pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char; + pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char; + pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t; + pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t; + pub fn strdup(cs: *const c_char) -> *mut c_char; + pub fn strndup(cs: *const c_char, n: size_t) -> *mut c_char; + pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; + pub fn strncasecmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; + pub fn strlen(cs: *const c_char) -> size_t; + pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "strerror$UNIX2003" + )] + pub fn strerror(n: c_int) -> *mut c_char; + pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; + pub fn strtok_r(s: *mut c_char, t: *const c_char, p: *mut *mut c_char) -> *mut c_char; + pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; + pub fn strsignal(sig: c_int) -> *mut c_char; + pub fn wcslen(buf: *const wchar_t) -> size_t; + pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; + + pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t; + pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; + pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; +} + +extern "C" { + #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam50")] + pub fn getpwnam(name: *const ::c_char) -> *mut passwd; + #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid50")] + pub fn getpwuid(uid: ::uid_t) -> *mut passwd; + + pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; + pub fn printf(format: *const ::c_char, ...) -> ::c_int; + pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int; + pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; + #[cfg_attr( + all(target_os = "linux", not(target_env = "uclibc")), + link_name = "__isoc99_fscanf" + )] + pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; + #[cfg_attr( + all(target_os = "linux", not(target_env = "uclibc")), + link_name = "__isoc99_scanf" + )] + pub fn scanf(format: *const ::c_char, ...) -> ::c_int; + #[cfg_attr( + all(target_os = "linux", not(target_env = "uclibc")), + link_name = "__isoc99_sscanf" + )] + pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; + pub fn getchar_unlocked() -> ::c_int; + pub fn putchar_unlocked(c: ::c_int) -> ::c_int; + + #[cfg(not(all( + libc_cfg_target_vendor, + target_arch = "powerpc", + target_vendor = "nintendo" + )))] + #[cfg_attr(target_os = "netbsd", link_name = "__socket30")] + #[cfg_attr(target_os = "illumos", link_name = "__xnet_socket")] + #[cfg_attr(target_os = "espidf", link_name = "lwip_socket")] + pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int; + #[cfg(not(all( + libc_cfg_target_vendor, + target_arch = "powerpc", + target_vendor = "nintendo" + )))] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "connect$UNIX2003" + )] + #[cfg_attr(target_os = "illumos", link_name = "__xnet_connect")] + #[cfg_attr(target_os = "espidf", link_name = "lwip_connect")] + pub fn connect(socket: ::c_int, address: *const sockaddr, len: socklen_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "listen$UNIX2003" + )] + #[cfg_attr(target_os = "espidf", link_name = "lwip_listen")] + pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; + #[cfg(not(all( + libc_cfg_target_vendor, + target_arch = "powerpc", + target_vendor = "nintendo" + )))] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "accept$UNIX2003" + )] + #[cfg_attr(target_os = "espidf", link_name = "lwip_accept")] + pub fn accept(socket: ::c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> ::c_int; + #[cfg(not(all( + libc_cfg_target_vendor, + target_arch = "powerpc", + target_vendor = "nintendo" + )))] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "getpeername$UNIX2003" + )] + #[cfg_attr(target_os = "espidf", link_name = "lwip_getpeername")] + pub fn getpeername( + socket: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + ) -> ::c_int; + #[cfg(not(all( + libc_cfg_target_vendor, + target_arch = "powerpc", + target_vendor = "nintendo" + )))] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "getsockname$UNIX2003" + )] + #[cfg_attr(target_os = "espidf", link_name = "lwip_getsockname")] + pub fn getsockname( + socket: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + ) -> ::c_int; + #[cfg_attr(target_os = "espidf", link_name = "lwip_setsockopt")] + pub fn setsockopt( + socket: ::c_int, + level: ::c_int, + name: ::c_int, + value: *const ::c_void, + option_len: socklen_t, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "socketpair$UNIX2003" + )] + #[cfg_attr(target_os = "illumos", link_name = "__xnet_socketpair")] + pub fn socketpair( + domain: ::c_int, + type_: ::c_int, + protocol: ::c_int, + socket_vector: *mut ::c_int, + ) -> ::c_int; + #[cfg(not(all( + libc_cfg_target_vendor, + target_arch = "powerpc", + target_vendor = "nintendo" + )))] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sendto$UNIX2003" + )] + #[cfg_attr(target_os = "illumos", link_name = "__xnet_sendto")] + #[cfg_attr(target_os = "espidf", link_name = "lwip_sendto")] + pub fn sendto( + socket: ::c_int, + buf: *const ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *const sockaddr, + addrlen: socklen_t, + ) -> ::ssize_t; + #[cfg_attr(target_os = "espidf", link_name = "lwip_shutdown")] + pub fn shutdown(socket: ::c_int, how: ::c_int) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "chmod$UNIX2003" + )] + pub fn chmod(path: *const c_char, mode: mode_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fchmod$UNIX2003" + )] + pub fn fchmod(fd: ::c_int, mode: mode_t) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", not(target_arch = "aarch64")), + link_name = "fstat$INODE64" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__fstat50")] + #[cfg_attr( + all(target_os = "freebsd", any(freebsd11, freebsd10)), + link_name = "fstat@FBSD_1.0" + )] + pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; + + pub fn mkdir(path: *const c_char, mode: mode_t) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", not(target_arch = "aarch64")), + link_name = "stat$INODE64" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__stat50")] + #[cfg_attr( + all(target_os = "freebsd", any(freebsd11, freebsd10)), + link_name = "stat@FBSD_1.0" + )] + pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; + + pub fn pclose(stream: *mut ::FILE) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fdopen$UNIX2003" + )] + pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; + pub fn fileno(stream: *mut ::FILE) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "open$UNIX2003" + )] + pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "creat$UNIX2003" + )] + pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fcntl$UNIX2003" + )] + pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "opendir$INODE64" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "opendir$INODE64$UNIX2003" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__opendir30")] + pub fn opendir(dirname: *const c_char) -> *mut ::DIR; + + #[cfg_attr( + all(target_os = "macos", not(target_arch = "aarch64")), + link_name = "readdir$INODE64" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__readdir30")] + #[cfg_attr( + all(target_os = "freebsd", any(freebsd11, freebsd10)), + link_name = "readdir@FBSD_1.0" + )] + pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "closedir$UNIX2003" + )] + pub fn closedir(dirp: *mut ::DIR) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "rewinddir$INODE64" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "rewinddir$INODE64$UNIX2003" + )] + pub fn rewinddir(dirp: *mut ::DIR); + + pub fn fchmodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + flags: ::c_int, + ) -> ::c_int; + pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; + pub fn fchownat( + dirfd: ::c_int, + pathname: *const ::c_char, + owner: ::uid_t, + group: ::gid_t, + flags: ::c_int, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", not(target_arch = "aarch64")), + link_name = "fstatat$INODE64" + )] + #[cfg_attr( + all(target_os = "freebsd", any(freebsd11, freebsd10)), + link_name = "fstatat@FBSD_1.1" + )] + pub fn fstatat( + dirfd: ::c_int, + pathname: *const ::c_char, + buf: *mut stat, + flags: ::c_int, + ) -> ::c_int; + pub fn linkat( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + flags: ::c_int, + ) -> ::c_int; + pub fn renameat( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + ) -> ::c_int; + pub fn symlinkat( + target: *const ::c_char, + newdirfd: ::c_int, + linkpath: *const ::c_char, + ) -> ::c_int; + pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int) -> ::c_int; + + pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; + pub fn alarm(seconds: ::c_uint) -> ::c_uint; + pub fn chdir(dir: *const c_char) -> ::c_int; + pub fn fchdir(dirfd: ::c_int) -> ::c_int; + pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "lchown$UNIX2003" + )] + pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "close$NOCANCEL$UNIX2003" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "close$NOCANCEL" + )] + pub fn close(fd: ::c_int) -> ::c_int; + pub fn dup(fd: ::c_int) -> ::c_int; + pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; + pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; + pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; + pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; + pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn execve( + prog: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> ::c_int; + pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn fork() -> pid_t; + pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; + pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; + pub fn getegid() -> gid_t; + pub fn geteuid() -> uid_t; + pub fn getgid() -> gid_t; + pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int; + #[cfg_attr(target_os = "illumos", link_name = "getloginx")] + pub fn getlogin() -> *mut c_char; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "getopt$UNIX2003" + )] + pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int; + pub fn getpgid(pid: pid_t) -> pid_t; + pub fn getpgrp() -> pid_t; + pub fn getpid() -> pid_t; + pub fn getppid() -> pid_t; + pub fn getuid() -> uid_t; + pub fn isatty(fd: ::c_int) -> ::c_int; + pub fn link(src: *const c_char, dst: *const c_char) -> ::c_int; + pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; + pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; + pub fn pipe(fds: *mut ::c_int) -> ::c_int; + pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "read$UNIX2003" + )] + pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) -> ::ssize_t; + pub fn rmdir(path: *const c_char) -> ::c_int; + pub fn seteuid(uid: uid_t) -> ::c_int; + pub fn setegid(gid: gid_t) -> ::c_int; + pub fn setgid(gid: gid_t) -> ::c_int; + pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int; + pub fn setsid() -> pid_t; + pub fn setuid(uid: uid_t) -> ::c_int; + pub fn setreuid(ruid: uid_t, euid: uid_t) -> ::c_int; + pub fn setregid(rgid: gid_t, egid: gid_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sleep$UNIX2003" + )] + pub fn sleep(secs: ::c_uint) -> ::c_uint; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "nanosleep$UNIX2003" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__nanosleep50")] + pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> ::c_int; + pub fn tcgetpgrp(fd: ::c_int) -> pid_t; + pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; + pub fn ttyname(fd: ::c_int) -> *mut c_char; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "ttyname_r$UNIX2003" + )] + #[cfg_attr(target_os = "illumos", link_name = "__posix_ttyname_r")] + pub fn ttyname_r(fd: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + pub fn unlink(c: *const c_char) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "wait$UNIX2003" + )] + pub fn wait(status: *mut ::c_int) -> pid_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "waitpid$UNIX2003" + )] + pub fn waitpid(pid: pid_t, status: *mut ::c_int, options: ::c_int) -> pid_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "write$UNIX2003" + )] + pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pread$UNIX2003" + )] + pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pwrite$UNIX2003" + )] + pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; + pub fn umask(mask: mode_t) -> mode_t; + + #[cfg_attr(target_os = "netbsd", link_name = "__utime50")] + pub fn utime(file: *const c_char, buf: *const utimbuf) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "kill$UNIX2003" + )] + pub fn kill(pid: pid_t, sig: ::c_int) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "killpg$UNIX2003" + )] + pub fn killpg(pgrp: pid_t, sig: ::c_int) -> ::c_int; + + pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; + pub fn munlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; + pub fn mlockall(flags: ::c_int) -> ::c_int; + pub fn munlockall() -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "mmap$UNIX2003" + )] + pub fn mmap( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + flags: ::c_int, + fd: ::c_int, + offset: off_t, + ) -> *mut ::c_void; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "munmap$UNIX2003" + )] + pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; + + pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint; + pub fn if_indextoname(ifindex: ::c_uint, ifname: *mut ::c_char) -> *mut ::c_char; + + #[cfg_attr( + all(target_os = "macos", not(target_arch = "aarch64")), + link_name = "lstat$INODE64" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__lstat50")] + #[cfg_attr( + all(target_os = "freebsd", any(freebsd11, freebsd10)), + link_name = "lstat@FBSD_1.0" + )] + pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fsync$UNIX2003" + )] + pub fn fsync(fd: ::c_int) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "setenv$UNIX2003" + )] + pub fn setenv(name: *const c_char, val: *const c_char, overwrite: ::c_int) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "unsetenv$UNIX2003" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__unsetenv13")] + pub fn unsetenv(name: *const c_char) -> ::c_int; + + pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; + + pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; + pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; + + pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; + + #[cfg_attr(target_os = "netbsd", link_name = "__getrusage50")] + pub fn getrusage(resource: ::c_int, usage: *mut rusage) -> ::c_int; + + #[cfg_attr( + any( + target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos" + ), + link_name = "realpath$DARWIN_EXTSN" + )] + pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) -> *mut ::c_char; + + pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; + + #[cfg_attr(target_os = "netbsd", link_name = "__times13")] + pub fn times(buf: *mut ::tms) -> ::clock_t; + + pub fn pthread_self() -> ::pthread_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_join$UNIX2003" + )] + pub fn pthread_join(native: ::pthread_t, value: *mut *mut ::c_void) -> ::c_int; + pub fn pthread_exit(value: *mut ::c_void) -> !; + pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, stack_size: ::size_t) -> ::c_int; + pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, state: ::c_int) -> ::c_int; + pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__libc_thr_yield")] + pub fn sched_yield() -> ::c_int; + pub fn pthread_key_create( + key: *mut pthread_key_t, + dtor: ::Option, + ) -> ::c_int; + pub fn pthread_key_delete(key: pthread_key_t) -> ::c_int; + pub fn pthread_getspecific(key: pthread_key_t) -> *mut ::c_void; + pub fn pthread_setspecific(key: pthread_key_t, value: *const ::c_void) -> ::c_int; + pub fn pthread_mutex_init( + lock: *mut pthread_mutex_t, + attr: *const pthread_mutexattr_t, + ) -> ::c_int; + pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> ::c_int; + + pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_mutexattr_destroy$UNIX2003" + )] + pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> ::c_int; + pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, _type: ::c_int) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_cond_init$UNIX2003" + )] + pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) + -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_cond_wait$UNIX2003" + )] + pub fn pthread_cond_wait(cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_cond_timedwait$UNIX2003" + )] + pub fn pthread_cond_timedwait( + cond: *mut pthread_cond_t, + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> ::c_int; + pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> ::c_int; + pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int; + pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> ::c_int; + pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_init$UNIX2003" + )] + pub fn pthread_rwlock_init( + lock: *mut pthread_rwlock_t, + attr: *const pthread_rwlockattr_t, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_destroy$UNIX2003" + )] + pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_rdlock$UNIX2003" + )] + pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_tryrdlock$UNIX2003" + )] + pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_wrlock$UNIX2003" + )] + pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_trywrlock$UNIX2003" + )] + pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_unlock$UNIX2003" + )] + pub fn pthread_rwlock_unlock(lock: *mut pthread_rwlock_t) -> ::c_int; + pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) -> ::c_int; + pub fn pthread_rwlockattr_destroy(attr: *mut pthread_rwlockattr_t) -> ::c_int; + + #[cfg_attr(target_os = "illumos", link_name = "__xnet_getsockopt")] + #[cfg_attr(target_os = "espidf", link_name = "lwip_getsockopt")] + pub fn getsockopt( + sockfd: ::c_int, + level: ::c_int, + optname: ::c_int, + optval: *mut ::c_void, + optlen: *mut ::socklen_t, + ) -> ::c_int; + pub fn raise(signum: ::c_int) -> ::c_int; + + #[cfg_attr(target_os = "netbsd", link_name = "__utimes50")] + pub fn utimes(filename: *const ::c_char, times: *const ::timeval) -> ::c_int; + pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; + pub fn dlerror() -> *mut ::c_char; + pub fn dlsym(handle: *mut ::c_void, symbol: *const ::c_char) -> *mut ::c_void; + pub fn dlclose(handle: *mut ::c_void) -> ::c_int; + + #[cfg(not(all( + libc_cfg_target_vendor, + target_arch = "powerpc", + target_vendor = "nintendo" + )))] + #[cfg_attr(target_os = "illumos", link_name = "__xnet_getaddrinfo")] + #[cfg_attr(target_os = "espidf", link_name = "lwip_getaddrinfo")] + pub fn getaddrinfo( + node: *const c_char, + service: *const c_char, + hints: *const addrinfo, + res: *mut *mut addrinfo, + ) -> ::c_int; + #[cfg(not(all( + libc_cfg_target_vendor, + target_arch = "powerpc", + target_vendor = "nintendo" + )))] + #[cfg_attr(target_os = "espidf", link_name = "lwip_freeaddrinfo")] + pub fn freeaddrinfo(res: *mut addrinfo); + pub fn hstrerror(errcode: ::c_int) -> *const ::c_char; + pub fn gai_strerror(errcode: ::c_int) -> *const ::c_char; + #[cfg_attr( + any( + all( + target_os = "linux", + not(any(target_env = "musl", target_env = "ohos")) + ), + target_os = "freebsd", + target_os = "dragonfly", + target_os = "haiku" + ), + link_name = "__res_init" + )] + #[cfg_attr( + any( + target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos" + ), + link_name = "res_9_init" + )] + pub fn res_init() -> ::c_int; + + #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] + #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] + // FIXME: for `time_t` + pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; + #[cfg_attr(target_os = "netbsd", link_name = "__localtime_r50")] + #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] + // FIXME: for `time_t` + pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "mktime$UNIX2003" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__mktime50")] + #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] + // FIXME: for `time_t` + pub fn mktime(tm: *mut tm) -> time_t; + #[cfg_attr(target_os = "netbsd", link_name = "__time50")] + #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] + // FIXME: for `time_t` + pub fn time(time: *mut time_t) -> time_t; + #[cfg_attr(target_os = "netbsd", link_name = "__gmtime50")] + #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] + // FIXME: for `time_t` + pub fn gmtime(time_p: *const time_t) -> *mut tm; + #[cfg_attr(target_os = "netbsd", link_name = "__locatime50")] + #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] + // FIXME: for `time_t` + pub fn localtime(time_p: *const time_t) -> *mut tm; + #[cfg_attr(target_os = "netbsd", link_name = "__difftime50")] + #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] + // FIXME: for `time_t` + pub fn difftime(time1: time_t, time0: time_t) -> ::c_double; + #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")] + #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] + // FIXME: for `time_t` + pub fn timegm(tm: *mut ::tm) -> time_t; + + #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] + #[cfg_attr( + all(target_os = "freebsd", any(freebsd11, freebsd10)), + link_name = "mknod@FBSD_1.0" + )] + pub fn mknod(pathname: *const ::c_char, mode: ::mode_t, dev: ::dev_t) -> ::c_int; + pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn endservent(); + pub fn getservbyname(name: *const ::c_char, proto: *const ::c_char) -> *mut servent; + pub fn getservbyport(port: ::c_int, proto: *const ::c_char) -> *mut servent; + pub fn getservent() -> *mut servent; + pub fn setservent(stayopen: ::c_int); + pub fn getprotobyname(name: *const ::c_char) -> *mut protoent; + pub fn getprotobynumber(proto: ::c_int) -> *mut protoent; + pub fn chroot(name: *const ::c_char) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "usleep$UNIX2003" + )] + pub fn usleep(secs: ::c_uint) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "send$UNIX2003" + )] + #[cfg_attr(target_os = "espidf", link_name = "lwip_send")] + pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "recv$UNIX2003" + )] + #[cfg_attr(target_os = "espidf", link_name = "lwip_recv")] + pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "putenv$UNIX2003" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__putenv50")] + pub fn putenv(string: *mut c_char) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "poll$UNIX2003" + )] + pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "select$1050" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "select$UNIX2003" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__select50")] + pub fn select( + nfds: ::c_int, + readfds: *mut fd_set, + writefds: *mut fd_set, + errorfds: *mut fd_set, + timeout: *mut timeval, + ) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__setlocale50")] + pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char; + pub fn localeconv() -> *mut lconv; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sem_wait$UNIX2003" + )] + pub fn sem_wait(sem: *mut sem_t) -> ::c_int; + pub fn sem_trywait(sem: *mut sem_t) -> ::c_int; + pub fn sem_post(sem: *mut sem_t) -> ::c_int; + pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> ::c_int; + pub fn fstatvfs(fd: ::c_int, buf: *mut statvfs) -> ::c_int; + + #[cfg_attr(target_os = "netbsd", link_name = "__sigemptyset14")] + pub fn sigemptyset(set: *mut sigset_t) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__sigaddset14")] + pub fn sigaddset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__sigfillset14")] + pub fn sigfillset(set: *mut sigset_t) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__sigdelset14")] + pub fn sigdelset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__sigismember14")] + pub fn sigismember(set: *const sigset_t, signum: ::c_int) -> ::c_int; + + #[cfg_attr(target_os = "netbsd", link_name = "__sigprocmask14")] + pub fn sigprocmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__sigpending14")] + pub fn sigpending(set: *mut sigset_t) -> ::c_int; + + pub fn sysconf(name: ::c_int) -> ::c_long; + + pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; + + pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int; + pub fn ftello(stream: *mut ::FILE) -> ::off_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "tcdrain$UNIX2003" + )] + pub fn tcdrain(fd: ::c_int) -> ::c_int; + pub fn cfgetispeed(termios: *const ::termios) -> ::speed_t; + pub fn cfgetospeed(termios: *const ::termios) -> ::speed_t; + pub fn cfsetispeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; + pub fn cfsetospeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; + pub fn tcgetattr(fd: ::c_int, termios: *mut ::termios) -> ::c_int; + pub fn tcsetattr(fd: ::c_int, optional_actions: ::c_int, termios: *const ::termios) -> ::c_int; + pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int; + pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int; + pub fn tcgetsid(fd: ::c_int) -> ::pid_t; + pub fn tcsendbreak(fd: ::c_int, duration: ::c_int) -> ::c_int; + pub fn mkstemp(template: *mut ::c_char) -> ::c_int; + pub fn mkdtemp(template: *mut ::c_char) -> *mut ::c_char; + + pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char; + + pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int); + pub fn closelog(); + pub fn setlogmask(maskpri: ::c_int) -> ::c_int; + #[cfg_attr(target_os = "macos", link_name = "syslog$DARWIN_EXTSN")] + pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "nice$UNIX2003" + )] + pub fn nice(incr: ::c_int) -> ::c_int; + + pub fn grantpt(fd: ::c_int) -> ::c_int; + pub fn posix_openpt(flags: ::c_int) -> ::c_int; + pub fn ptsname(fd: ::c_int) -> *mut ::c_char; + pub fn unlockpt(fd: ::c_int) -> ::c_int; + + pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t; + + pub fn lockf(fd: ::c_int, cmd: ::c_int, len: ::off_t) -> ::c_int; + +} +cfg_if! { + if #[cfg(not(any(target_os = "emscripten", + target_os = "android", + target_os = "haiku", + target_os = "nto")))] { + extern "C" { + pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> ::c_int; + pub fn stpncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; + } + } +} + +cfg_if! { + if #[cfg(not(target_os = "aix"))] { + extern "C" { + pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; + } + } +} + +cfg_if! { + if #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] { + extern "C" { + pub fn open_wmemstream( + ptr: *mut *mut wchar_t, + sizeloc: *mut size_t, + ) -> *mut FILE; + } + } +} + +cfg_if! { + if #[cfg(not(target_os = "redox"))] { + extern { + pub fn getsid(pid: pid_t) -> pid_t; + #[cfg_attr(all(target_os = "macos", target_arch = "x86"), + link_name = "pause$UNIX2003")] + pub fn pause() -> ::c_int; + + pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, + mode: ::mode_t) -> ::c_int; + pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, + flags: ::c_int, ...) -> ::c_int; + + #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), + link_name = "fdopendir$INODE64")] + #[cfg_attr(all(target_os = "macos", target_arch = "x86"), + link_name = "fdopendir$INODE64$UNIX2003")] + pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; + + #[cfg_attr(all(target_os = "macos", not(target_arch = "aarch64")), + link_name = "readdir_r$INODE64")] + #[cfg_attr(target_os = "netbsd", link_name = "__readdir_r30")] + #[cfg_attr( + all(target_os = "freebsd", any(freebsd11, freebsd10)), + link_name = "readdir_r@FBSD_1.0" + )] + #[allow(non_autolinks)] // FIXME: `<>` breaks line length limit. + /// The 64-bit libc on Solaris and illumos only has readdir_r. If a + /// 32-bit Solaris or illumos target is ever created, it should use + /// __posix_readdir_r. See libc(3LIB) on Solaris or illumos: + /// https://illumos.org/man/3lib/libc + /// https://docs.oracle.com/cd/E36784_01/html/E36873/libc-3lib.html + /// https://www.unix.com/man-page/opensolaris/3LIB/libc/ + pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, + result: *mut *mut ::dirent) -> ::c_int; + } + } +} + +cfg_if! { + if #[cfg(target_os = "nto")] { + extern { + pub fn readlinkat(dirfd: ::c_int, + pathname: *const ::c_char, + buf: *mut ::c_char, + bufsiz: ::size_t) -> ::c_int; + pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::c_int; + pub fn pselect( + nfds: ::c_int, + readfds: *mut fd_set, + writefds: *mut fd_set, + errorfds: *mut fd_set, + timeout: *mut timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + } + } else { + extern { + pub fn readlinkat(dirfd: ::c_int, + pathname: *const ::c_char, + buf: *mut ::c_char, + bufsiz: ::size_t) -> ::ssize_t; + pub fn fmemopen(buf: *mut c_void, size: size_t, mode: *const c_char) -> *mut FILE; + pub fn open_memstream(ptr: *mut *mut c_char, sizeloc: *mut size_t) -> *mut FILE; + pub fn atexit(cb: extern "C" fn()) -> c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__sigaction14")] + pub fn sigaction( + signum: ::c_int, + act: *const sigaction, + oldact: *mut sigaction + ) -> ::c_int; + pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "pselect$1050" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pselect$UNIX2003" + )] + #[cfg_attr(target_os = "netbsd", link_name = "__pselect50")] + pub fn pselect( + nfds: ::c_int, + readfds: *mut fd_set, + writefds: *mut fd_set, + errorfds: *mut fd_set, + timeout: *const timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + } + } +} + +cfg_if! { + if #[cfg(not(any(target_os = "solaris", + target_os = "illumos", + target_os = "nto", + )))] { + extern { + pub fn cfmakeraw(termios: *mut ::termios); + pub fn cfsetspeed(termios: *mut ::termios, + speed: ::speed_t) -> ::c_int; + } + } +} + +cfg_if! { + if #[cfg(target_env = "newlib")] { + mod newlib; + pub use self::newlib::*; + } else if #[cfg(any(target_os = "linux", + target_os = "l4re", + target_os = "android", + target_os = "emscripten"))] { + mod linux_like; + pub use self::linux_like::*; + } else if #[cfg(any(target_os = "macos", + target_os = "ios", + target_os = "tvos", + target_os = "watchos", + target_os = "freebsd", + target_os = "dragonfly", + target_os = "openbsd", + target_os = "netbsd"))] { + mod bsd; + pub use self::bsd::*; + } else if #[cfg(any(target_os = "solaris", + target_os = "illumos"))] { + mod solarish; + pub use self::solarish::*; + } else if #[cfg(target_os = "haiku")] { + mod haiku; + pub use self::haiku::*; + } else if #[cfg(target_os = "hermit")] { + mod hermit; + pub use self::hermit::*; + } else if #[cfg(target_os = "redox")] { + mod redox; + pub use self::redox::*; + } else if #[cfg(target_os = "nto")] { + mod nto; + pub use self::nto::*; + } else if #[cfg(target_os = "aix")] { + mod aix; + pub use self::aix::*; + } else { + // Unknown target_os + } +} + +cfg_if! { + if #[cfg(libc_core_cvoid)] { + pub use ::ffi::c_void; + } else { + // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help + // enable more optimization opportunities around it recognizing things + // like malloc/free. + #[repr(u8)] + #[allow(missing_copy_implementations)] + #[allow(missing_debug_implementations)] + pub enum c_void { + // Two dummy variants so the #[repr] attribute can be used. + #[doc(hidden)] + __variant1, + #[doc(hidden)] + __variant2, + } + } +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } else { + mod no_align; + pub use self::no_align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/aarch64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/aarch64/mod.rs new file mode 100644 index 000000000..d686b3692 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/newlib/aarch64/mod.rs @@ -0,0 +1,54 @@ +pub type clock_t = ::c_long; +pub type c_char = u8; +pub type wchar_t = u32; + +pub type c_long = i64; +pub type c_ulong = u64; + +s! { + pub struct sockaddr { + pub sa_len: u8, + pub sa_family: ::sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_in6 { + pub sin6_len: u8, + pub sin6_family: ::sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [::c_char; 8], + } +} + +pub const AF_INET6: ::c_int = 23; + +pub const FIONBIO: ::c_ulong = 1; + +pub const POLLIN: ::c_short = 0x1; +pub const POLLPRI: ::c_short = 0x2; +pub const POLLOUT: ::c_short = 0x4; +pub const POLLERR: ::c_short = 0x8; +pub const POLLHUP: ::c_short = 0x10; +pub const POLLNVAL: ::c_short = 0x20; + +pub const SOL_SOCKET: ::c_int = 65535; + +pub const MSG_OOB: ::c_int = 1; +pub const MSG_PEEK: ::c_int = 2; +pub const MSG_DONTWAIT: ::c_int = 4; +pub const MSG_DONTROUTE: ::c_int = 0; +pub const MSG_WAITALL: ::c_int = 0; +pub const MSG_MORE: ::c_int = 0; +pub const MSG_NOSIGNAL: ::c_int = 0; + +pub use crate::unix::newlib::generic::{sigset_t, stat}; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/align.rs new file mode 100644 index 000000000..db9beb835 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/newlib/align.rs @@ -0,0 +1,61 @@ +macro_rules! expand_align { + () => { + s! { + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc"))), + repr(align(8)))] + pub struct pthread_mutex_t { // Unverified + size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + } + + #[cfg_attr(all(target_pointer_width = "32", + any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc")), + repr(align(4)))] + #[cfg_attr(any(target_pointer_width = "64", + not(any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc"))), + repr(align(8)))] + pub struct pthread_rwlock_t { // Unverified + size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + } + + #[cfg_attr(any(target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64"), + repr(align(4)))] + #[cfg_attr(not(any(target_pointer_width = "32", + target_arch = "x86_64", + target_arch = "powerpc64", + target_arch = "mips64", + target_arch = "s390x", + target_arch = "sparc64")), + repr(align(8)))] + pub struct pthread_mutexattr_t { // Unverified + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + #[repr(align(8))] + pub struct pthread_cond_t { // Unverified + size: [u8; ::__SIZEOF_PTHREAD_COND_T], + } + + #[repr(align(4))] + pub struct pthread_condattr_t { // Unverified + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } + } + }; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/arm/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/arm/mod.rs new file mode 100644 index 000000000..f644349cb --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/newlib/arm/mod.rs @@ -0,0 +1,56 @@ +pub type clock_t = ::c_long; +pub type c_char = u8; +pub type wchar_t = u32; + +pub type c_long = i32; +pub type c_ulong = u32; + +s! { + pub struct sockaddr { + pub sa_family: ::sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_in6 { + pub sin6_family: ::sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct sockaddr_in { + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [u8; 8], + } + + pub struct sockaddr_storage { + pub ss_family: ::sa_family_t, + pub __ss_padding: [u8; 26], + } +} + +pub const AF_INET6: ::c_int = 23; + +pub const FIONBIO: ::c_ulong = 1; + +pub const POLLIN: ::c_short = 0x1; +pub const POLLPRI: ::c_short = 0x2; +pub const POLLHUP: ::c_short = 0x4; +pub const POLLERR: ::c_short = 0x8; +pub const POLLOUT: ::c_short = 0x10; +pub const POLLNVAL: ::c_short = 0x20; + +pub const SOL_SOCKET: ::c_int = 65535; + +pub const MSG_OOB: ::c_int = 1; +pub const MSG_PEEK: ::c_int = 2; +pub const MSG_DONTWAIT: ::c_int = 4; +pub const MSG_DONTROUTE: ::c_int = 0; +pub const MSG_WAITALL: ::c_int = 0; +pub const MSG_MORE: ::c_int = 0; +pub const MSG_NOSIGNAL: ::c_int = 0; + +pub use crate::unix::newlib::generic::{sigset_t, stat}; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/espidf/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/espidf/mod.rs new file mode 100644 index 000000000..804cd6645 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/newlib/espidf/mod.rs @@ -0,0 +1,110 @@ +pub type clock_t = ::c_ulong; +pub type c_char = i8; +pub type wchar_t = u32; + +pub type c_long = i32; +pub type c_ulong = u32; + +s! { + pub struct cmsghdr { + pub cmsg_len: ::socklen_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::socklen_t, + pub msg_flags: ::c_int, + } + + pub struct sockaddr_un { + pub sun_family: ::sa_family_t, + pub sun_path: [::c_char; 108], + } + + pub struct sockaddr { + pub sa_len: u8, + pub sa_family: ::sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_in6 { + pub sin6_len: u8, + pub sin6_family: ::sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [::c_char; 8], + } + + pub struct sockaddr_storage { + pub s2_len: u8, + pub ss_family: ::sa_family_t, + pub s2_data1: [::c_char; 2], + pub s2_data2: [u32; 3], + pub s2_data3: [u32; 3], + } +} + +pub const AF_UNIX: ::c_int = 1; +pub const AF_INET6: ::c_int = 10; + +pub const FIONBIO: ::c_ulong = 2147772030; + +pub const POLLIN: ::c_short = 1 << 0; +pub const POLLRDNORM: ::c_short = 1 << 1; +pub const POLLRDBAND: ::c_short = 1 << 2; +pub const POLLPRI: ::c_short = POLLRDBAND; +pub const POLLOUT: ::c_short = 1 << 3; +pub const POLLWRNORM: ::c_short = POLLOUT; +pub const POLLWRBAND: ::c_short = 1 << 4; +pub const POLLERR: ::c_short = 1 << 5; +pub const POLLHUP: ::c_short = 1 << 6; + +pub const SOL_SOCKET: ::c_int = 0xfff; + +pub const MSG_OOB: ::c_int = 0x04; +pub const MSG_PEEK: ::c_int = 0x01; +pub const MSG_DONTWAIT: ::c_int = 0x08; +pub const MSG_DONTROUTE: ::c_int = 0x4; +pub const MSG_WAITALL: ::c_int = 0x02; +pub const MSG_MORE: ::c_int = 0x10; +pub const MSG_NOSIGNAL: ::c_int = 0x20; +pub const MSG_TRUNC: ::c_int = 0x04; +pub const MSG_CTRUNC: ::c_int = 0x08; +pub const MSG_EOR: ::c_int = 0x08; + +pub const PTHREAD_STACK_MIN: ::size_t = 768; + +extern "C" { + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(_: *mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + + pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + + #[link_name = "lwip_sendmsg"] + pub fn sendmsg(s: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; + #[link_name = "lwip_recvmsg"] + pub fn recvmsg(s: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + + pub fn eventfd(initval: ::c_uint, flags: ::c_int) -> ::c_int; +} + +pub use crate::unix::newlib::generic::{sigset_t, stat}; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/generic.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/generic.rs new file mode 100644 index 000000000..db7797f17 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/newlib/generic.rs @@ -0,0 +1,27 @@ +//! Common types used by most newlib platforms + +s! { + pub struct sigset_t { + __val: [::c_ulong; 16], + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_atime: ::time_t, + pub st_spare1: ::c_long, + pub st_mtime: ::time_t, + pub st_spare2: ::c_long, + pub st_ctime: ::time_t, + pub st_spare3: ::c_long, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_spare4: [::c_long; 2usize], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/horizon/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/horizon/mod.rs new file mode 100644 index 000000000..bcb93ad9d --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/newlib/horizon/mod.rs @@ -0,0 +1,268 @@ +//! ARMv6K Nintendo 3DS C Newlib definitions + +pub type c_char = u8; +pub type c_long = i32; +pub type c_ulong = u32; + +pub type wchar_t = ::c_uint; + +pub type u_register_t = ::c_uint; +pub type u_char = ::c_uchar; +pub type u_short = ::c_ushort; +pub type u_int = ::c_uint; +pub type u_long = c_ulong; +pub type ushort = ::c_ushort; +pub type uint = ::c_uint; +pub type ulong = c_ulong; +pub type clock_t = c_ulong; +pub type daddr_t = c_long; +pub type caddr_t = *mut c_char; +pub type sbintime_t = ::c_longlong; +pub type sigset_t = ::c_ulong; + +s! { + pub struct sockaddr { + pub sa_family: ::sa_family_t, + pub sa_data: [::c_char; 26usize], + } + + pub struct sockaddr_storage { + pub ss_family: ::sa_family_t, + pub __ss_padding: [::c_char; 26usize], + } + + pub struct sockaddr_in { + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + } + + pub struct sockaddr_in6 { + pub sin6_family: ::sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct sockaddr_un { + pub sun_len: ::c_uchar, + pub sun_family: ::sa_family_t, + pub sun_path: [::c_char; 104usize], + } + + pub struct sched_param { + pub sched_priority: ::c_int, + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_atim: ::timespec, + pub st_mtim: ::timespec, + pub st_ctim: ::timespec, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_spare4: [::c_long; 2usize], + } +} + +pub const SIGEV_NONE: ::c_int = 1; +pub const SIGEV_SIGNAL: ::c_int = 2; +pub const SIGEV_THREAD: ::c_int = 3; +pub const SA_NOCLDSTOP: ::c_int = 1; +pub const MINSIGSTKSZ: ::c_int = 2048; +pub const SIGSTKSZ: ::c_int = 8192; +pub const SS_ONSTACK: ::c_int = 1; +pub const SS_DISABLE: ::c_int = 2; +pub const SIG_SETMASK: ::c_int = 0; +pub const SIG_BLOCK: ::c_int = 1; +pub const SIG_UNBLOCK: ::c_int = 2; +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGTRAP: ::c_int = 5; +pub const SIGABRT: ::c_int = 6; +pub const SIGEMT: ::c_int = 7; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGBUS: ::c_int = 10; +pub const SIGSEGV: ::c_int = 11; +pub const SIGSYS: ::c_int = 12; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; +pub const SIGURG: ::c_int = 16; +pub const SIGSTOP: ::c_int = 17; +pub const SIGTSTP: ::c_int = 18; +pub const SIGCONT: ::c_int = 19; +pub const SIGCHLD: ::c_int = 20; +pub const SIGCLD: ::c_int = 20; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGIO: ::c_int = 23; +pub const SIGPOLL: ::c_int = 23; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGLOST: ::c_int = 29; +pub const SIGUSR1: ::c_int = 30; +pub const SIGUSR2: ::c_int = 31; +pub const NSIG: ::c_int = 32; +pub const CLOCK_ENABLED: ::c_uint = 1; +pub const CLOCK_DISABLED: ::c_uint = 0; +pub const CLOCK_ALLOWED: ::c_uint = 1; +pub const CLOCK_DISALLOWED: ::c_uint = 0; +pub const TIMER_ABSTIME: ::c_uint = 4; +pub const SOL_SOCKET: ::c_int = 65535; +pub const MSG_OOB: ::c_int = 1; +pub const MSG_PEEK: ::c_int = 2; +pub const MSG_DONTWAIT: ::c_int = 4; +pub const MSG_DONTROUTE: ::c_int = 0; +pub const MSG_WAITALL: ::c_int = 0; +pub const MSG_MORE: ::c_int = 0; +pub const MSG_NOSIGNAL: ::c_int = 0; +pub const SOL_CONFIG: ::c_uint = 65534; + +pub const _SC_PAGESIZE: ::c_int = 8; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 51; + +pub const PTHREAD_STACK_MIN: ::size_t = 4096; +pub const WNOHANG: ::c_int = 1; + +pub const POLLIN: ::c_short = 0x0001; +pub const POLLPRI: ::c_short = 0x0002; +pub const POLLOUT: ::c_short = 0x0004; +pub const POLLRDNORM: ::c_short = 0x0040; +pub const POLLWRNORM: ::c_short = POLLOUT; +pub const POLLRDBAND: ::c_short = 0x0080; +pub const POLLWRBAND: ::c_short = 0x0100; +pub const POLLERR: ::c_short = 0x0008; +pub const POLLHUP: ::c_short = 0x0010; +pub const POLLNVAL: ::c_short = 0x0020; + +pub const EAI_AGAIN: ::c_int = 2; +pub const EAI_BADFLAGS: ::c_int = 3; +pub const EAI_FAIL: ::c_int = 4; +pub const EAI_SERVICE: ::c_int = 9; +pub const EAI_SYSTEM: ::c_int = 11; +pub const EAI_BADHINTS: ::c_int = 12; +pub const EAI_PROTOCOL: ::c_int = 13; +pub const EAI_OVERFLOW: ::c_int = 14; +pub const EAI_MAX: ::c_int = 15; + +pub const AF_UNIX: ::c_int = 1; +pub const AF_INET6: ::c_int = 23; + +pub const FIONBIO: ::c_ulong = 1; + +pub const RTLD_DEFAULT: *mut ::c_void = 0 as *mut ::c_void; + +// For pthread get/setschedparam +pub const SCHED_FIFO: ::c_int = 1; +pub const SCHED_RR: ::c_int = 2; + +// For getrandom() +pub const GRND_NONBLOCK: ::c_uint = 0x1; +pub const GRND_RANDOM: ::c_uint = 0x2; + +// Horizon OS works doesn't or can't hold any of this information +safe_f! { + pub {const} fn WIFSTOPPED(_status: ::c_int) -> bool { + false + } + + pub {const} fn WSTOPSIG(_status: ::c_int) -> ::c_int { + 0 + } + + pub {const} fn WIFCONTINUED(_status: ::c_int) -> bool { + true + } + + pub {const} fn WIFSIGNALED(_status: ::c_int) -> bool { + false + } + + pub {const} fn WTERMSIG(_status: ::c_int) -> ::c_int { + 0 + } + + pub {const} fn WIFEXITED(_status: ::c_int) -> bool { + true + } + + pub {const} fn WEXITSTATUS(_status: ::c_int) -> ::c_int { + 0 + } + + pub {const} fn WCOREDUMP(_status: ::c_int) -> bool { + false + } +} + +extern "C" { + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(_: *mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + + pub fn pthread_attr_getschedparam( + attr: *const ::pthread_attr_t, + param: *mut sched_param, + ) -> ::c_int; + + pub fn pthread_attr_setschedparam( + attr: *mut ::pthread_attr_t, + param: *const sched_param, + ) -> ::c_int; + + pub fn pthread_attr_getprocessorid_np( + attr: *const ::pthread_attr_t, + processor_id: *mut ::c_int, + ) -> ::c_int; + + pub fn pthread_attr_setprocessorid_np( + attr: *mut ::pthread_attr_t, + processor_id: ::c_int, + ) -> ::c_int; + + pub fn pthread_getschedparam( + native: ::pthread_t, + policy: *mut ::c_int, + param: *mut ::sched_param, + ) -> ::c_int; + + pub fn pthread_setschedparam( + native: ::pthread_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + + pub fn pthread_condattr_getclock( + attr: *const ::pthread_condattr_t, + clock_id: *mut ::clockid_t, + ) -> ::c_int; + + pub fn pthread_condattr_setclock( + attr: *mut ::pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + + pub fn pthread_getprocessorid_np() -> ::c_int; + + pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + + pub fn gethostid() -> ::c_long; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/mod.rs new file mode 100644 index 000000000..ce84f1421 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/newlib/mod.rs @@ -0,0 +1,789 @@ +pub type blkcnt_t = i32; +pub type blksize_t = i32; + +cfg_if! { + if #[cfg(target_os = "vita")] { + pub type clockid_t = ::c_uint; + } else { + pub type clockid_t = ::c_ulong; + } +} + +cfg_if! { + if #[cfg(any(target_os = "espidf"))] { + pub type dev_t = ::c_short; + pub type ino_t = ::c_ushort; + pub type off_t = ::c_long; + } else if #[cfg(any(target_os = "vita"))] { + pub type dev_t = ::c_short; + pub type ino_t = ::c_ushort; + pub type off_t = ::c_int; + } else { + pub type dev_t = u32; + pub type ino_t = u32; + pub type off_t = i64; + } +} + +pub type fsblkcnt_t = u64; +pub type fsfilcnt_t = u32; +pub type id_t = u32; +pub type key_t = ::c_int; +pub type loff_t = ::c_longlong; +pub type mode_t = ::c_uint; +pub type nfds_t = u32; +pub type nlink_t = ::c_ushort; +pub type pthread_t = ::c_ulong; +pub type pthread_key_t = ::c_uint; +pub type rlim_t = u32; + +cfg_if! { + if #[cfg(target_os = "horizon")] { + pub type sa_family_t = u16; + } else { + pub type sa_family_t = u8; + } +} + +pub type socklen_t = u32; +pub type speed_t = u32; +pub type suseconds_t = i32; +pub type tcflag_t = ::c_uint; +pub type useconds_t = u32; + +cfg_if! { + if #[cfg(any(target_os = "horizon", all(target_os = "espidf", espidf_time64)))] { + pub type time_t = ::c_longlong; + } else { + pub type time_t = i32; + } +} + +s! { + // The order of the `ai_addr` field in this struct is crucial + // for converting between the Rust and C types. + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: socklen_t, + + #[cfg(target_os = "espidf")] + pub ai_addr: *mut sockaddr, + + pub ai_canonname: *mut ::c_char, + + #[cfg(not(any( + target_os = "espidf", + all(libc_cfg_target_vendor, target_arch = "powerpc", target_vendor = "nintendo"))))] + pub ai_addr: *mut sockaddr, + + pub ai_next: *mut addrinfo, + } + + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct linger { + pub l_onoff: ::c_int, + pub l_linger: ::c_int, + } + + pub struct in_addr { + pub s_addr: ::in_addr_t, + } + + pub struct hostent { + pub h_name: *mut ::c_char, + pub h_aliases: *mut *mut ::c_char, + pub h_addrtype: ::c_int, + pub h_length: ::c_int, + pub h_addr_list: *mut *mut ::c_char, + pub h_addr: *mut ::c_char, + } + + pub struct pollfd { + pub fd: ::c_int, + pub events: ::c_int, + pub revents: ::c_int, + } + + pub struct lconv { + pub decimal_point: *mut ::c_char, + pub thousands_sep: *mut ::c_char, + pub grouping: *mut ::c_char, + pub int_curr_symbol: *mut ::c_char, + pub currency_symbol: *mut ::c_char, + pub mon_decimal_point: *mut ::c_char, + pub mon_thousands_sep: *mut ::c_char, + pub mon_grouping: *mut ::c_char, + pub positive_sign: *mut ::c_char, + pub negative_sign: *mut ::c_char, + pub int_frac_digits: ::c_char, + pub frac_digits: ::c_char, + pub p_cs_precedes: ::c_char, + pub p_sep_by_space: ::c_char, + pub n_cs_precedes: ::c_char, + pub n_sep_by_space: ::c_char, + pub p_sign_posn: ::c_char, + pub n_sign_posn: ::c_char, + pub int_n_cs_precedes: ::c_char, + pub int_n_sep_by_space: ::c_char, + pub int_n_sign_posn: ::c_char, + pub int_p_cs_precedes: ::c_char, + pub int_p_sep_by_space: ::c_char, + pub int_p_sign_posn: ::c_char, + } + + pub struct tm { + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int, + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: fsblkcnt_t, + pub f_bfree: fsblkcnt_t, + pub f_bavail: fsblkcnt_t, + pub f_files: fsfilcnt_t, + pub f_ffree: fsfilcnt_t, + pub f_favail: fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + } + + pub struct sigaction { + pub sa_handler: extern fn(arg1: ::c_int), + pub sa_mask: sigset_t, + pub sa_flags: ::c_int, + } + + pub struct dirent { + #[cfg(not(target_os = "vita"))] + pub d_ino: ino_t, + #[cfg(not(target_os = "vita"))] + pub d_type: ::c_uchar, + #[cfg(target_os = "vita")] + __offset: [u8; 88], + pub d_name: [::c_char; 256usize], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: usize, + } + + pub struct fd_set { // Unverified + fds_bits: [::c_ulong; FD_SETSIZE / ULONG_SIZE], + } + + pub struct passwd { // Unverified + pub pw_name: *mut ::c_char, + pub pw_passwd: *mut ::c_char, + pub pw_uid: ::uid_t, + pub pw_gid: ::gid_t, + pub pw_gecos: *mut ::c_char, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char, + } + + pub struct termios { // Unverified + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; ::NCCS], + } + + pub struct sem_t { // Unverified + __size: [::c_char; 16], + } + + pub struct Dl_info { // Unverified + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } + + pub struct utsname { // Unverified + pub sysname: [::c_char; 65], + pub nodename: [::c_char; 65], + pub release: [::c_char; 65], + pub version: [::c_char; 65], + pub machine: [::c_char; 65], + pub domainname: [::c_char; 65] + } + + pub struct cpu_set_t { // Unverified + bits: [u32; 32], + } + + pub struct pthread_attr_t { // Unverified + __size: [u8; __SIZEOF_PTHREAD_ATTR_T] + } + + pub struct pthread_rwlockattr_t { // Unverified + __size: [u8; __SIZEOF_PTHREAD_RWLOCKATTR_T] + } +} + +// unverified constants +align_const! { + pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + size: [__PTHREAD_INITIALIZER_BYTE; __SIZEOF_PTHREAD_MUTEX_T], + }; + pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + size: [__PTHREAD_INITIALIZER_BYTE; __SIZEOF_PTHREAD_COND_T], + }; + pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + size: [__PTHREAD_INITIALIZER_BYTE; __SIZEOF_PTHREAD_RWLOCK_T], + }; +} +pub const NCCS: usize = 32; + +cfg_if! { + if #[cfg(target_os = "espidf")] { + const __PTHREAD_INITIALIZER_BYTE: u8 = 0xff; + pub const __SIZEOF_PTHREAD_ATTR_T: usize = 32; + pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 4; + pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 12; + pub const __SIZEOF_PTHREAD_COND_T: usize = 4; + pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 8; + pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 4; + pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 12; + pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; + } else if #[cfg(target_os = "vita")] { + const __PTHREAD_INITIALIZER_BYTE: u8 = 0xff; + pub const __SIZEOF_PTHREAD_ATTR_T: usize = 4; + pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 4; + pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; + pub const __SIZEOF_PTHREAD_COND_T: usize = 4; + pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; + pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 4; + pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 4; + pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 4; + } else { + const __PTHREAD_INITIALIZER_BYTE: u8 = 0; + pub const __SIZEOF_PTHREAD_ATTR_T: usize = 56; + pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; + pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; + pub const __SIZEOF_PTHREAD_COND_T: usize = 48; + pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; + pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; + pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; + pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; + } +} + +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +pub const __PTHREAD_MUTEX_HAVE_PREV: usize = 1; +pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: usize = 1; +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; + +cfg_if! { + if #[cfg(any(target_os = "horizon", target_os = "espidf"))] { + pub const FD_SETSIZE: usize = 64; + } else if #[cfg(target_os = "vita")] { + pub const FD_SETSIZE: usize = 256; + } else { + pub const FD_SETSIZE: usize = 1024; + } +} +// intentionally not public, only used for fd_set +const ULONG_SIZE: usize = 32; + +// Other constants +pub const EPERM: ::c_int = 1; +pub const ENOENT: ::c_int = 2; +pub const ESRCH: ::c_int = 3; +pub const EINTR: ::c_int = 4; +pub const EIO: ::c_int = 5; +pub const ENXIO: ::c_int = 6; +pub const E2BIG: ::c_int = 7; +pub const ENOEXEC: ::c_int = 8; +pub const EBADF: ::c_int = 9; +pub const ECHILD: ::c_int = 10; +pub const EAGAIN: ::c_int = 11; +pub const ENOMEM: ::c_int = 12; +pub const EACCES: ::c_int = 13; +pub const EFAULT: ::c_int = 14; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const EXDEV: ::c_int = 18; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENFILE: ::c_int = 23; +pub const EMFILE: ::c_int = 24; +pub const ENOTTY: ::c_int = 25; +pub const ETXTBSY: ::c_int = 26; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const ESPIPE: ::c_int = 29; +pub const EROFS: ::c_int = 30; +pub const EMLINK: ::c_int = 31; +pub const EPIPE: ::c_int = 32; +pub const EDOM: ::c_int = 33; +pub const ERANGE: ::c_int = 34; +pub const ENOMSG: ::c_int = 35; +pub const EIDRM: ::c_int = 36; +pub const EDEADLK: ::c_int = 45; +pub const ENOLCK: ::c_int = 46; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENOLINK: ::c_int = 67; +pub const EPROTO: ::c_int = 71; +pub const EMULTIHOP: ::c_int = 74; +pub const EBADMSG: ::c_int = 77; +pub const EFTYPE: ::c_int = 79; +pub const ENOSYS: ::c_int = 88; +pub const ENOTEMPTY: ::c_int = 90; +pub const ENAMETOOLONG: ::c_int = 91; +pub const ELOOP: ::c_int = 92; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EAFNOSUPPORT: ::c_int = 106; +pub const EPROTOTYPE: ::c_int = 107; +pub const ENOTSOCK: ::c_int = 108; +pub const ENOPROTOOPT: ::c_int = 109; +pub const ECONNREFUSED: ::c_int = 111; +pub const EADDRINUSE: ::c_int = 112; +pub const ECONNABORTED: ::c_int = 113; +pub const ENETUNREACH: ::c_int = 114; +pub const ENETDOWN: ::c_int = 115; +pub const ETIMEDOUT: ::c_int = 116; +pub const EHOSTDOWN: ::c_int = 117; +pub const EHOSTUNREACH: ::c_int = 118; +pub const EINPROGRESS: ::c_int = 119; +pub const EALREADY: ::c_int = 120; +pub const EDESTADDRREQ: ::c_int = 121; +pub const EMSGSIZE: ::c_int = 122; +pub const EPROTONOSUPPORT: ::c_int = 123; +pub const EADDRNOTAVAIL: ::c_int = 125; +pub const ENETRESET: ::c_int = 126; +pub const EISCONN: ::c_int = 127; +pub const ENOTCONN: ::c_int = 128; +pub const ETOOMANYREFS: ::c_int = 129; +pub const EDQUOT: ::c_int = 132; +pub const ESTALE: ::c_int = 133; +pub const ENOTSUP: ::c_int = 134; +pub const EILSEQ: ::c_int = 138; +pub const EOVERFLOW: ::c_int = 139; +pub const ECANCELED: ::c_int = 140; +pub const ENOTRECOVERABLE: ::c_int = 141; +pub const EOWNERDEAD: ::c_int = 142; +pub const EWOULDBLOCK: ::c_int = 11; + +pub const F_DUPFD: ::c_int = 0; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; +pub const F_GETOWN: ::c_int = 5; +pub const F_SETOWN: ::c_int = 6; +pub const F_GETLK: ::c_int = 7; +pub const F_SETLK: ::c_int = 8; +pub const F_SETLKW: ::c_int = 9; +pub const F_RGETLK: ::c_int = 10; +pub const F_RSETLK: ::c_int = 11; +pub const F_CNVT: ::c_int = 12; +pub const F_RSETLKW: ::c_int = 13; +pub const F_DUPFD_CLOEXEC: ::c_int = 14; + +pub const O_RDONLY: ::c_int = 0; +pub const O_WRONLY: ::c_int = 1; +pub const O_RDWR: ::c_int = 2; +pub const O_APPEND: ::c_int = 8; +pub const O_CREAT: ::c_int = 512; +pub const O_TRUNC: ::c_int = 1024; +pub const O_EXCL: ::c_int = 2048; +pub const O_SYNC: ::c_int = 8192; +pub const O_NONBLOCK: ::c_int = 16384; + +pub const O_ACCMODE: ::c_int = 3; +pub const O_CLOEXEC: ::c_int = 0x80000; + +pub const RTLD_LAZY: ::c_int = 0x1; + +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; + +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; + +pub const FIOCLEX: ::c_ulong = 0x20006601; +pub const FIONCLEX: ::c_ulong = 0x20006602; + +pub const S_BLKSIZE: ::mode_t = 1024; +pub const S_IREAD: ::mode_t = 256; +pub const S_IWRITE: ::mode_t = 128; +pub const S_IEXEC: ::mode_t = 64; +pub const S_ENFMT: ::mode_t = 1024; +pub const S_IFMT: ::mode_t = 61440; +pub const S_IFDIR: ::mode_t = 16384; +pub const S_IFCHR: ::mode_t = 8192; +pub const S_IFBLK: ::mode_t = 24576; +pub const S_IFREG: ::mode_t = 32768; +pub const S_IFLNK: ::mode_t = 40960; +pub const S_IFSOCK: ::mode_t = 49152; +pub const S_IFIFO: ::mode_t = 4096; +pub const S_IRUSR: ::mode_t = 256; +pub const S_IWUSR: ::mode_t = 128; +pub const S_IXUSR: ::mode_t = 64; +pub const S_IRGRP: ::mode_t = 32; +pub const S_IWGRP: ::mode_t = 16; +pub const S_IXGRP: ::mode_t = 8; +pub const S_IROTH: ::mode_t = 4; +pub const S_IWOTH: ::mode_t = 2; +pub const S_IXOTH: ::mode_t = 1; + +pub const SOL_TCP: ::c_int = 6; + +pub const PF_UNSPEC: ::c_int = 0; +pub const PF_INET: ::c_int = 2; +pub const PF_INET6: ::c_int = 23; + +pub const AF_UNSPEC: ::c_int = 0; +pub const AF_INET: ::c_int = 2; + +pub const CLOCK_REALTIME: ::clockid_t = 1; +pub const CLOCK_MONOTONIC: ::clockid_t = 4; +pub const CLOCK_BOOTTIME: ::clockid_t = 4; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; + +pub const SO_BINTIME: ::c_int = 0x2000; +pub const SO_NO_OFFLOAD: ::c_int = 0x4000; +pub const SO_NO_DDP: ::c_int = 0x8000; +pub const SO_REUSEPORT_LB: ::c_int = 0x10000; +pub const SO_LABEL: ::c_int = 0x1009; +pub const SO_PEERLABEL: ::c_int = 0x1010; +pub const SO_LISTENQLIMIT: ::c_int = 0x1011; +pub const SO_LISTENQLEN: ::c_int = 0x1012; +pub const SO_LISTENINCQLEN: ::c_int = 0x1013; +pub const SO_SETFIB: ::c_int = 0x1014; +pub const SO_USER_COOKIE: ::c_int = 0x1015; +pub const SO_PROTOCOL: ::c_int = 0x1016; +pub const SO_PROTOTYPE: ::c_int = SO_PROTOCOL; +pub const SO_VENDOR: ::c_int = 0x80000000; +pub const SO_DEBUG: ::c_int = 0x01; +pub const SO_ACCEPTCONN: ::c_int = 0x0002; +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_USELOOPBACK: ::c_int = 0x0040; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_OOBINLINE: ::c_int = 0x0100; +pub const SO_REUSEPORT: ::c_int = 0x0200; +pub const SO_TIMESTAMP: ::c_int = 0x0400; +pub const SO_NOSIGPIPE: ::c_int = 0x0800; +pub const SO_ACCEPTFILTER: ::c_int = 0x1000; +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_SNDLOWAT: ::c_int = 0x1003; +pub const SO_RCVLOWAT: ::c_int = 0x1004; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +cfg_if! { + if #[cfg(target_os = "horizon")] { + pub const SO_ERROR: ::c_int = 0x1009; + } else { + pub const SO_ERROR: ::c_int = 0x1007; + } +} +pub const SO_TYPE: ::c_int = 0x1008; + +pub const SOCK_CLOEXEC: ::c_int = O_CLOEXEC; + +pub const INET_ADDRSTRLEN: ::c_int = 16; + +// https://github.com/bminor/newlib/blob/HEAD/newlib/libc/sys/linux/include/net/if.h#L121 +pub const IFF_UP: ::c_int = 0x1; // interface is up +pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid +pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging +pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net +pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link +pub const IFF_NOTRAILERS: ::c_int = 0x20; // avoid use of trailers +pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated +pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol +pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets +pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets +pub const IFF_OACTIVE: ::c_int = 0x400; // transmission in progress +pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions +pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit +pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit +pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit +pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection +pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast + +pub const TCP_NODELAY: ::c_int = 8193; +pub const TCP_MAXSEG: ::c_int = 8194; +pub const TCP_NOPUSH: ::c_int = 4; +pub const TCP_NOOPT: ::c_int = 8; +pub const TCP_KEEPIDLE: ::c_int = 256; +pub const TCP_KEEPINTVL: ::c_int = 512; +pub const TCP_KEEPCNT: ::c_int = 1024; + +cfg_if! { + if #[cfg(target_os = "horizon")] { + pub const IP_TOS: ::c_int = 7; + } else { + pub const IP_TOS: ::c_int = 3; + } +} +pub const IP_TTL: ::c_int = 8; +pub const IP_MULTICAST_IF: ::c_int = 9; +pub const IP_MULTICAST_TTL: ::c_int = 10; +pub const IP_MULTICAST_LOOP: ::c_int = 11; +pub const IP_ADD_MEMBERSHIP: ::c_int = 11; +pub const IP_DROP_MEMBERSHIP: ::c_int = 12; + +pub const IPV6_UNICAST_HOPS: ::c_int = 4; +pub const IPV6_MULTICAST_IF: ::c_int = 9; +pub const IPV6_MULTICAST_HOPS: ::c_int = 10; +pub const IPV6_MULTICAST_LOOP: ::c_int = 11; +pub const IPV6_V6ONLY: ::c_int = 27; +pub const IPV6_JOIN_GROUP: ::c_int = 12; +pub const IPV6_LEAVE_GROUP: ::c_int = 13; +pub const IPV6_ADD_MEMBERSHIP: ::c_int = 12; +pub const IPV6_DROP_MEMBERSHIP: ::c_int = 13; + +pub const HOST_NOT_FOUND: ::c_int = 1; +pub const NO_DATA: ::c_int = 2; +pub const NO_ADDRESS: ::c_int = 2; +pub const NO_RECOVERY: ::c_int = 3; +pub const TRY_AGAIN: ::c_int = 4; + +pub const AI_PASSIVE: ::c_int = 1; +pub const AI_CANONNAME: ::c_int = 2; +pub const AI_NUMERICHOST: ::c_int = 4; +pub const AI_NUMERICSERV: ::c_int = 0; +pub const AI_ADDRCONFIG: ::c_int = 0; + +pub const NI_MAXHOST: ::c_int = 1025; +pub const NI_MAXSERV: ::c_int = 32; +pub const NI_NOFQDN: ::c_int = 1; +pub const NI_NUMERICHOST: ::c_int = 2; +pub const NI_NAMEREQD: ::c_int = 4; +pub const NI_NUMERICSERV: ::c_int = 0; +pub const NI_DGRAM: ::c_int = 0; + +pub const EAI_FAMILY: ::c_int = -303; +pub const EAI_MEMORY: ::c_int = -304; +pub const EAI_NONAME: ::c_int = -305; +pub const EAI_SOCKTYPE: ::c_int = -307; + +pub const EXIT_SUCCESS: ::c_int = 0; +pub const EXIT_FAILURE: ::c_int = 1; + +pub const PRIO_PROCESS: ::c_int = 0; +pub const PRIO_PGRP: ::c_int = 1; +pub const PRIO_USER: ::c_int = 2; + +f! { + pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let fd = fd as usize; + (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); + return + } + + pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let fd = fd as usize; + return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0 + } + + pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let fd = fd as usize; + (*set).fds_bits[fd / bits] |= 1 << (fd % bits); + return + } + + pub fn FD_ZERO(set: *mut fd_set) -> () { + for slot in (*set).fds_bits.iter_mut() { + *slot = 0; + } + } +} + +extern "C" { + pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; + pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + + #[cfg_attr(target_os = "linux", link_name = "__xpg_strerror_r")] + pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + + pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; + pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + + pub fn abs(i: ::c_int) -> ::c_int; + pub fn labs(i: ::c_long) -> ::c_long; + pub fn rand() -> ::c_int; + pub fn srand(seed: ::c_uint); + + #[cfg(not(all( + libc_cfg_target_vendor, + target_arch = "powerpc", + target_vendor = "nintendo" + )))] + #[cfg_attr(target_os = "espidf", link_name = "lwip_bind")] + pub fn bind(fd: ::c_int, addr: *const sockaddr, len: socklen_t) -> ::c_int; + pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn clock_gettime(clock_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_getres(clock_id: ::clockid_t, res: *mut ::timespec) -> ::c_int; + #[cfg_attr(target_os = "espidf", link_name = "lwip_close")] + pub fn closesocket(sockfd: ::c_int) -> ::c_int; + pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; + #[cfg(not(all( + libc_cfg_target_vendor, + target_arch = "powerpc", + target_vendor = "nintendo" + )))] + #[cfg_attr(target_os = "espidf", link_name = "lwip_recvfrom")] + pub fn recvfrom( + fd: ::c_int, + buf: *mut ::c_void, + n: usize, + flags: ::c_int, + addr: *mut sockaddr, + addr_len: *mut socklen_t, + ) -> isize; + #[cfg(not(all( + libc_cfg_target_vendor, + target_arch = "powerpc", + target_vendor = "nintendo" + )))] + pub fn getnameinfo( + sa: *const sockaddr, + salen: socklen_t, + host: *mut ::c_char, + hostlen: socklen_t, + serv: *mut ::c_char, + servlen: socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn fexecve( + fd: ::c_int, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; + pub fn sem_close(sem: *mut sem_t) -> ::c_int; + pub fn getdtablesize() -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; + pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; + pub fn sem_unlink(name: *const ::c_char) -> ::c_int; + pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn uname(buf: *mut ::utsname) -> ::c_int; +} + +mod generic; + +cfg_if! { + if #[cfg(target_os = "espidf")] { + mod espidf; + pub use self::espidf::*; + } else if #[cfg(target_os = "horizon")] { + mod horizon; + pub use self::horizon::*; + } else if #[cfg(target_os = "vita")] { + mod vita; + pub use self::vita::*; + } else if #[cfg(target_arch = "arm")] { + mod arm; + pub use self::arm::*; + } else if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } else if #[cfg(target_arch = "powerpc")] { + mod powerpc; + pub use self::powerpc::*; + } else { + // Only tested on ARM so far. Other platforms might have different + // definitions for types and constants. + pub use target_arch_not_implemented; + } +} + +cfg_if! { + if #[cfg(libc_align)] { + #[macro_use] + mod align; + } else { + #[macro_use] + mod no_align; + } +} +expand_align!(); diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/no_align.rs new file mode 100644 index 000000000..ce3aca4ed --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/newlib/no_align.rs @@ -0,0 +1,51 @@ +macro_rules! expand_align { + () => { + s! { + pub struct pthread_mutex_t { // Unverified + #[cfg(any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc"))] + __align: [::c_long; 0], + #[cfg(not(any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc")))] + __align: [::c_longlong; 0], + size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], + } + + pub struct pthread_rwlock_t { // Unverified + #[cfg(any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc"))] + __align: [::c_long; 0], + #[cfg(not(any(target_arch = "mips", + target_arch = "arm", + target_arch = "powerpc")))] + __align: [::c_longlong; 0], + size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], + } + + pub struct pthread_mutexattr_t { // Unverified + #[cfg(any(target_arch = "x86_64", target_arch = "powerpc64", + target_arch = "mips64", target_arch = "s390x", + target_arch = "sparc64"))] + __align: [::c_int; 0], + #[cfg(not(any(target_arch = "x86_64", target_arch = "powerpc64", + target_arch = "mips64", target_arch = "s390x", + target_arch = "sparc64")))] + __align: [::c_long; 0], + size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], + } + + pub struct pthread_cond_t { // Unverified + __align: [::c_longlong; 0], + size: [u8; ::__SIZEOF_PTHREAD_COND_T], + } + + pub struct pthread_condattr_t { // Unverified + __align: [::c_int; 0], + size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], + } + } + }; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/powerpc/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/powerpc/mod.rs new file mode 100644 index 000000000..6bed1ce27 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/newlib/powerpc/mod.rs @@ -0,0 +1,16 @@ +pub type clock_t = ::c_ulong; +pub type c_char = u8; +pub type wchar_t = ::c_int; + +pub type c_long = i32; +pub type c_ulong = u32; + +pub use crate::unix::newlib::generic::{sigset_t, stat}; + +// the newlib shipped with devkitPPC does not support the following components: +// - sockaddr +// - AF_INET6 +// - FIONBIO +// - POLL* +// - SOL_SOCKET +// - MSG_* diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/vita/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/vita/mod.rs new file mode 100644 index 000000000..6e2e4d3eb --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/newlib/vita/mod.rs @@ -0,0 +1,201 @@ +pub type clock_t = ::c_long; + +pub type c_char = i8; +pub type wchar_t = u32; + +pub type c_long = i32; +pub type c_ulong = u32; + +pub type sigset_t = ::c_ulong; + +s! { + pub struct sockaddr { + pub sa_len: u8, + pub sa_family: ::sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_in6 { + pub sin6_len: u8, + pub sin6_family: ::sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_vport: ::in_port_t, + pub sin6_scope_id: u32, + } + + pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_vport: ::in_port_t, + pub sin_zero: [u8; 6], + } + + pub struct sockaddr_un { + pub sun_family: ::sa_family_t, + pub sun_path: [::c_char; 108usize], + } + + pub struct sockaddr_storage { + pub ss_len: u8, + pub ss_family: ::sa_family_t, + pub __ss_pad1: [u8; 4], + pub __ss_align: i64, + pub __ss_pad2: [u8; 4], + } + + pub struct sched_param { + pub sched_priority: ::c_int, + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_atime: ::time_t, + pub st_mtime: ::time_t, + pub st_ctime: ::time_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_spare4: [::c_long; 2usize], + } +} + +pub const AF_UNIX: ::c_int = 1; +pub const AF_INET6: ::c_int = 24; + +pub const FIONBIO: ::c_ulong = 1; + +pub const POLLIN: ::c_short = 0x0001; +pub const POLLPRI: ::c_short = POLLIN; +pub const POLLOUT: ::c_short = 0x0004; +pub const POLLERR: ::c_short = 0x0008; +pub const POLLHUP: ::c_short = 0x0010; +pub const POLLNVAL: ::c_short = 0x0020; + +pub const RTLD_DEFAULT: *mut ::c_void = 0 as *mut ::c_void; + +pub const SOL_SOCKET: ::c_int = 0xffff; +pub const SO_NONBLOCK: ::c_int = 0x1100; + +pub const MSG_OOB: ::c_int = 0x1; +pub const MSG_PEEK: ::c_int = 0x2; +pub const MSG_DONTROUTE: ::c_int = 0x4; +pub const MSG_EOR: ::c_int = 0x8; +pub const MSG_TRUNC: ::c_int = 0x10; +pub const MSG_CTRUNC: ::c_int = 0x20; +pub const MSG_WAITALL: ::c_int = 0x40; +pub const MSG_DONTWAIT: ::c_int = 0x80; +pub const MSG_BCAST: ::c_int = 0x100; +pub const MSG_MCAST: ::c_int = 0x200; + +pub const UTIME_OMIT: c_long = -1; +pub const AT_FDCWD: ::c_int = -2; + +pub const O_DIRECTORY: ::c_int = 0x200000; +pub const O_NOFOLLOW: ::c_int = 0x100000; + +pub const AT_EACCESS: ::c_int = 1; +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 2; +pub const AT_SYMLINK_FOLLOW: ::c_int = 4; +pub const AT_REMOVEDIR: ::c_int = 8; + +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGTRAP: ::c_int = 5; +pub const SIGABRT: ::c_int = 6; +pub const SIGEMT: ::c_int = 7; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGBUS: ::c_int = 10; +pub const SIGSEGV: ::c_int = 11; +pub const SIGSYS: ::c_int = 12; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; + +pub const EAI_BADFLAGS: ::c_int = -1; +pub const EAI_NONAME: ::c_int = -2; +pub const EAI_AGAIN: ::c_int = -3; +pub const EAI_FAIL: ::c_int = -4; +pub const EAI_NODATA: ::c_int = -5; +pub const EAI_FAMILY: ::c_int = -6; +pub const EAI_SOCKTYPE: ::c_int = -7; +pub const EAI_SERVICE: ::c_int = -8; +pub const EAI_ADDRFAMILY: ::c_int = -9; +pub const EAI_MEMORY: ::c_int = -10; +pub const EAI_SYSTEM: ::c_int = -11; +pub const EAI_OVERFLOW: ::c_int = -12; + +pub const _SC_PAGESIZE: ::c_int = 8; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 51; +pub const PTHREAD_STACK_MIN: ::size_t = 32 * 1024; + +extern "C" { + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(_: *mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + + pub fn pthread_attr_getschedparam( + attr: *const ::pthread_attr_t, + param: *mut sched_param, + ) -> ::c_int; + + pub fn pthread_attr_setschedparam( + attr: *mut ::pthread_attr_t, + param: *const sched_param, + ) -> ::c_int; + + pub fn pthread_attr_getprocessorid_np( + attr: *const ::pthread_attr_t, + processor_id: *mut ::c_int, + ) -> ::c_int; + + pub fn pthread_attr_setprocessorid_np( + attr: *mut ::pthread_attr_t, + processor_id: ::c_int, + ) -> ::c_int; + + pub fn pthread_getschedparam( + native: ::pthread_t, + policy: *mut ::c_int, + param: *mut ::sched_param, + ) -> ::c_int; + + pub fn pthread_setschedparam( + native: ::pthread_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + + pub fn pthread_condattr_getclock( + attr: *const ::pthread_condattr_t, + clock_id: *mut ::clockid_t, + ) -> ::c_int; + + pub fn pthread_condattr_setclock( + attr: *mut ::pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + + pub fn pthread_getprocessorid_np() -> ::c_int; + + pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/no_align.rs new file mode 100644 index 000000000..f6b9f4c12 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/no_align.rs @@ -0,0 +1,6 @@ +s! { + pub struct in6_addr { + pub s6_addr: [u8; 16], + __align: [u32; 0], + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/nto/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/unix/nto/aarch64.rs new file mode 100644 index 000000000..6faf8159c --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/nto/aarch64.rs @@ -0,0 +1,36 @@ +pub type c_char = u8; +pub type wchar_t = u32; +pub type c_long = i64; +pub type c_ulong = u64; +pub type time_t = i64; + +s! { + pub struct aarch64_qreg_t { + pub qlo: u64, + pub qhi: u64, + } + + pub struct aarch64_fpu_registers { + pub reg: [::aarch64_qreg_t; 32], + pub fpsr: u32, + pub fpcr: u32, + } + + pub struct aarch64_cpu_registers { + pub gpr: [u64; 32], + pub elr: u64, + pub pstate: u64, + } + + #[repr(align(16))] + pub struct mcontext_t { + pub cpu: ::aarch64_cpu_registers, + pub fpu: ::aarch64_fpu_registers, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/nto/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/nto/mod.rs new file mode 100644 index 000000000..5d13568e4 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/nto/mod.rs @@ -0,0 +1,3285 @@ +pub type clock_t = u32; + +pub type sa_family_t = u8; +pub type speed_t = ::c_uint; +pub type tcflag_t = ::c_uint; +pub type clockid_t = ::c_int; +pub type timer_t = ::c_int; +pub type key_t = ::c_uint; +pub type id_t = ::c_int; + +pub type useconds_t = u32; +pub type dev_t = u32; +pub type socklen_t = u32; +pub type mode_t = u32; +pub type rlim64_t = u64; +pub type mqd_t = ::c_int; +pub type nfds_t = ::c_uint; +pub type idtype_t = ::c_uint; +pub type errno_t = ::c_int; +pub type rsize_t = c_ulong; + +pub type Elf32_Half = u16; +pub type Elf32_Word = u32; +pub type Elf32_Off = u32; +pub type Elf32_Addr = u32; +pub type Elf32_Lword = u64; +pub type Elf32_Sword = i32; + +pub type Elf64_Half = u16; +pub type Elf64_Word = u32; +pub type Elf64_Off = u64; +pub type Elf64_Addr = u64; +pub type Elf64_Xword = u64; +pub type Elf64_Sxword = i64; +pub type Elf64_Lword = u64; +pub type Elf64_Sword = i32; + +pub type Elf32_Section = u16; +pub type Elf64_Section = u16; + +pub type _Time32t = u32; + +pub type pthread_t = ::c_int; +pub type regoff_t = ::ssize_t; + +pub type nlink_t = u32; +pub type blksize_t = u32; +pub type suseconds_t = i32; + +pub type ino_t = u64; +pub type off_t = i64; +pub type blkcnt_t = u64; +pub type msgqnum_t = u64; +pub type msglen_t = u64; +pub type fsblkcnt_t = u64; +pub type fsfilcnt_t = u64; +pub type rlim_t = u64; +pub type posix_spawn_file_actions_t = *mut ::c_void; +pub type posix_spawnattr_t = ::uintptr_t; + +pub type pthread_mutex_t = ::sync_t; +pub type pthread_mutexattr_t = ::_sync_attr; +pub type pthread_cond_t = ::sync_t; +pub type pthread_condattr_t = ::_sync_attr; +pub type pthread_rwlockattr_t = ::_sync_attr; +pub type pthread_key_t = ::c_int; +pub type pthread_spinlock_t = sync_t; +pub type pthread_barrierattr_t = _sync_attr; +pub type sem_t = sync_t; + +pub type nl_item = ::c_int; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum timezone {} +impl ::Copy for timezone {} +impl ::Clone for timezone { + fn clone(&self) -> timezone { + *self + } +} + +s! { + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + #[repr(packed)] + pub struct in_addr { + pub s_addr: ::in_addr_t, + } + + pub struct sockaddr { + pub sa_len: u8, + pub sa_family: sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [i8; 8], + } + + pub struct sockaddr_in6 { + pub sin6_len: u8, + pub sin6_family: sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + // The order of the `ai_addr` field in this struct is crucial + // for converting between the Rust and C types. + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: socklen_t, + pub ai_canonname: *mut c_char, + pub ai_addr: *mut ::sockaddr, + pub ai_next: *mut addrinfo, + } + + pub struct fd_set { + fds_bits: [::c_uint; 2 * FD_SETSIZE / ULONG_SIZE], + } + + pub struct tm { + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int, + pub tm_gmtoff: ::c_long, + pub tm_zone: *const ::c_char, + } + + #[repr(align(8))] + pub struct sched_param { + pub sched_priority: ::c_int, + pub sched_curpriority: ::c_int, + pub reserved: [::c_int; 10], + } + + #[repr(align(8))] + pub struct __sched_param { + pub __sched_priority: ::c_int, + pub __sched_curpriority: ::c_int, + pub reserved: [::c_int; 10], + } + + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } + + pub struct lconv { + pub currency_symbol: *mut ::c_char, + pub int_curr_symbol: *mut ::c_char, + pub mon_decimal_point: *mut ::c_char, + pub mon_grouping: *mut ::c_char, + pub mon_thousands_sep: *mut ::c_char, + pub negative_sign: *mut ::c_char, + pub positive_sign: *mut ::c_char, + pub frac_digits: ::c_char, + pub int_frac_digits: ::c_char, + pub n_cs_precedes: ::c_char, + pub n_sep_by_space: ::c_char, + pub n_sign_posn: ::c_char, + pub p_cs_precedes: ::c_char, + pub p_sep_by_space: ::c_char, + pub p_sign_posn: ::c_char, + + pub int_n_cs_precedes: ::c_char, + pub int_n_sep_by_space: ::c_char, + pub int_n_sign_posn: ::c_char, + pub int_p_cs_precedes: ::c_char, + pub int_p_sep_by_space: ::c_char, + pub int_p_sign_posn: ::c_char, + + pub decimal_point: *mut ::c_char, + pub grouping: *mut ::c_char, + pub thousands_sep: *mut ::c_char, + + pub _Frac_grouping: *mut ::c_char, + pub _Frac_sep: *mut ::c_char, + pub _False: *mut ::c_char, + pub _True: *mut ::c_char, + + pub _No: *mut ::c_char, + pub _Yes: *mut ::c_char, + pub _Nostr: *mut ::c_char, + pub _Yesstr: *mut ::c_char, + pub _Reserved: [*mut ::c_char; 8], + } + + pub struct in_pktinfo { + pub ipi_addr: ::in_addr, + pub ipi_ifindex: ::c_uint, + } + + pub struct ifaddrs { + pub ifa_next: *mut ifaddrs, + pub ifa_name: *mut c_char, + pub ifa_flags: ::c_uint, + pub ifa_addr: *mut ::sockaddr, + pub ifa_netmask: *mut ::sockaddr, + pub ifa_dstaddr: *mut ::sockaddr, + pub ifa_data: *mut ::c_void + } + + pub struct arpreq { + pub arp_pa: ::sockaddr, + pub arp_ha: ::sockaddr, + pub arp_flags: ::c_int, + } + + #[repr(packed)] + pub struct arphdr { + pub ar_hrd: u16, + pub ar_pro: u16, + pub ar_hln: u8, + pub ar_pln: u8, + pub ar_op: u16, + } + + pub struct mmsghdr { + pub msg_hdr: ::msghdr, + pub msg_len: ::c_uint, + } + + #[repr(align(8))] + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_code: ::c_int, + pub si_errno: ::c_int, + __data: [u8; 36], // union + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_flags: ::c_int, + pub sa_mask: ::sigset_t, + } + + pub struct _sync { + _union: ::c_uint, + __owner: ::c_uint, + } + pub struct rlimit64 { + pub rlim_cur: rlim64_t, + pub rlim_max: rlim64_t, + } + + pub struct glob_t { + pub gl_pathc: ::size_t, + pub gl_matchc: ::c_int, + pub gl_pathv: *mut *mut c_char, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + pub gl_errfunc: extern "C" fn(*const ::c_char, ::c_int) -> ::c_int, + + __unused1: *mut ::c_void, + __unused2: *mut ::c_void, + __unused3: *mut ::c_void, + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + } + + pub struct passwd { + pub pw_name: *mut ::c_char, + pub pw_passwd: *mut ::c_char, + pub pw_uid: ::uid_t, + pub pw_gid: ::gid_t, + pub pw_age: *mut ::c_char, + pub pw_comment: *mut ::c_char, + pub pw_gecos: *mut ::c_char, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char, + } + + pub struct if_nameindex { + pub if_index: ::c_uint, + pub if_name: *mut ::c_char, + } + + pub struct sembuf { + pub sem_num: ::c_ushort, + pub sem_op: ::c_short, + pub sem_flg: ::c_short, + } + + pub struct Elf32_Ehdr { + pub e_ident: [::c_uchar; 16], + pub e_type: Elf32_Half, + pub e_machine: Elf32_Half, + pub e_version: Elf32_Word, + pub e_entry: Elf32_Addr, + pub e_phoff: Elf32_Off, + pub e_shoff: Elf32_Off, + pub e_flags: Elf32_Word, + pub e_ehsize: Elf32_Half, + pub e_phentsize: Elf32_Half, + pub e_phnum: Elf32_Half, + pub e_shentsize: Elf32_Half, + pub e_shnum: Elf32_Half, + pub e_shstrndx: Elf32_Half, + } + + pub struct Elf64_Ehdr { + pub e_ident: [::c_uchar; 16], + pub e_type: Elf64_Half, + pub e_machine: Elf64_Half, + pub e_version: Elf64_Word, + pub e_entry: Elf64_Addr, + pub e_phoff: Elf64_Off, + pub e_shoff: Elf64_Off, + pub e_flags: Elf64_Word, + pub e_ehsize: Elf64_Half, + pub e_phentsize: Elf64_Half, + pub e_phnum: Elf64_Half, + pub e_shentsize: Elf64_Half, + pub e_shnum: Elf64_Half, + pub e_shstrndx: Elf64_Half, + } + + pub struct Elf32_Sym { + pub st_name: Elf32_Word, + pub st_value: Elf32_Addr, + pub st_size: Elf32_Word, + pub st_info: ::c_uchar, + pub st_other: ::c_uchar, + pub st_shndx: Elf32_Section, + } + + pub struct Elf64_Sym { + pub st_name: Elf64_Word, + pub st_info: ::c_uchar, + pub st_other: ::c_uchar, + pub st_shndx: Elf64_Section, + pub st_value: Elf64_Addr, + pub st_size: Elf64_Xword, + } + + pub struct Elf32_Phdr { + pub p_type: Elf32_Word, + pub p_offset: Elf32_Off, + pub p_vaddr: Elf32_Addr, + pub p_paddr: Elf32_Addr, + pub p_filesz: Elf32_Word, + pub p_memsz: Elf32_Word, + pub p_flags: Elf32_Word, + pub p_align: Elf32_Word, + } + + pub struct Elf64_Phdr { + pub p_type: Elf64_Word, + pub p_flags: Elf64_Word, + pub p_offset: Elf64_Off, + pub p_vaddr: Elf64_Addr, + pub p_paddr: Elf64_Addr, + pub p_filesz: Elf64_Xword, + pub p_memsz: Elf64_Xword, + pub p_align: Elf64_Xword, + } + + pub struct Elf32_Shdr { + pub sh_name: Elf32_Word, + pub sh_type: Elf32_Word, + pub sh_flags: Elf32_Word, + pub sh_addr: Elf32_Addr, + pub sh_offset: Elf32_Off, + pub sh_size: Elf32_Word, + pub sh_link: Elf32_Word, + pub sh_info: Elf32_Word, + pub sh_addralign: Elf32_Word, + pub sh_entsize: Elf32_Word, + } + + pub struct Elf64_Shdr { + pub sh_name: Elf64_Word, + pub sh_type: Elf64_Word, + pub sh_flags: Elf64_Xword, + pub sh_addr: Elf64_Addr, + pub sh_offset: Elf64_Off, + pub sh_size: Elf64_Xword, + pub sh_link: Elf64_Word, + pub sh_info: Elf64_Word, + pub sh_addralign: Elf64_Xword, + pub sh_entsize: Elf64_Xword, + } + + pub struct in6_pktinfo { + pub ipi6_addr: ::in6_addr, + pub ipi6_ifindex: ::c_uint, + } + + pub struct inotify_event { + pub wd: ::c_int, + pub mask: u32, + pub cookie: u32, + pub len: u32 + } + + pub struct regmatch_t { + pub rm_so: regoff_t, + pub rm_eo: regoff_t, + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::socklen_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: ::socklen_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_cc: [::cc_t; ::NCCS], + __reserved: [::c_uint; 3], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, + } + + pub struct mallinfo { + pub arena: ::c_int, + pub ordblks: ::c_int, + pub smblks: ::c_int, + pub hblks: ::c_int, + pub hblkhd: ::c_int, + pub usmblks: ::c_int, + pub fsmblks: ::c_int, + pub uordblks: ::c_int, + pub fordblks: ::c_int, + pub keepcost: ::c_int, + } + + pub struct flock { + pub l_type: i16, + pub l_whence: i16, + pub l_zero1: i32, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + pub l_sysid: u32, + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_basetype: [::c_char; 16], + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + f_filler: [::c_uint; 21], + } + + pub struct aiocb { + pub aio_fildes: ::c_int, + pub aio_reqprio: ::c_int, + pub aio_offset: off_t, + pub aio_buf: *mut ::c_void, + pub aio_nbytes: ::size_t, + pub aio_sigevent: ::sigevent, + pub aio_lio_opcode: ::c_int, + pub _aio_lio_state: *mut ::c_void, + _aio_pad: [::c_int; 3], + pub _aio_next: *mut ::aiocb, + pub _aio_flag: ::c_uint, + pub _aio_iotype: ::c_uint, + pub _aio_result: ::ssize_t, + pub _aio_error: ::c_uint, + pub _aio_suspend: *mut ::c_void, + pub _aio_plist: *mut ::c_void, + pub _aio_policy: ::c_int, + pub _aio_param: ::__sched_param, + } + + pub struct pthread_attr_t { + __data1: ::c_long, + __data2: [u8; 96] + } + + pub struct ipc_perm { + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub seq: ::c_uint, + pub key: ::key_t, + _reserved: [::c_int; 4], + } + + pub struct regex_t { + re_magic: ::c_int, + re_nsub: ::size_t, + re_endp: *const ::c_char, + re_g: *mut ::c_void, + } + + pub struct _thread_attr { + pub __flags: ::c_int, + pub __stacksize: ::size_t, + pub __stackaddr: *mut ::c_void, + pub __exitfunc: ::Option, + pub __policy: ::c_int, + pub __param: ::__sched_param, + pub __guardsize: ::c_uint, + pub __prealloc: ::c_uint, + __spare: [::c_int; 2], + } + + pub struct _sync_attr { + pub __protocol: ::c_int, + pub __flags: ::c_int, + pub __prioceiling: ::c_int, + pub __clockid: ::c_int, + pub __count: ::c_int, + __reserved: [::c_int; 3], + } + + pub struct sockcred { + pub sc_uid: ::uid_t, + pub sc_euid: ::uid_t, + pub sc_gid: ::gid_t, + pub sc_egid: ::gid_t, + pub sc_ngroups: ::c_int, + pub sc_groups: [::gid_t; 1], + } + + pub struct bpf_program { + pub bf_len: ::c_uint, + pub bf_insns: *mut ::bpf_insn, + } + + pub struct bpf_stat { + pub bs_recv: u64, + pub bs_drop: u64, + pub bs_capt: u64, + bs_padding: [u64; 13], + } + + pub struct bpf_version { + pub bv_major: ::c_ushort, + pub bv_minor: ::c_ushort, + } + + pub struct bpf_hdr { + pub bh_tstamp: ::timeval, + pub bh_caplen: u32, + pub bh_datalen: u32, + pub bh_hdrlen: u16, + } + + pub struct bpf_insn { + pub code: u16, + pub jt: ::c_uchar, + pub jf: ::c_uchar, + pub k: u32, + } + + pub struct bpf_dltlist { + pub bfl_len: ::c_uint, + pub bfl_list: *mut ::c_uint, + } + + pub struct unpcbid { + pub unp_pid: ::pid_t, + pub unp_euid: ::uid_t, + pub unp_egid: ::gid_t, + } + + pub struct dl_phdr_info { + pub dlpi_addr: ::Elf64_Addr, + pub dlpi_name: *const ::c_char, + pub dlpi_phdr: *const ::Elf64_Phdr, + pub dlpi_phnum: ::Elf64_Half, + } + + #[repr(align(8))] + pub struct ucontext_t { + pub uc_link: *mut ucontext_t, + pub uc_sigmask: ::sigset_t, + pub uc_stack: stack_t, + pub uc_mcontext: mcontext_t, + } +} + +s_no_extra_traits! { + pub struct sockaddr_un { + pub sun_len: u8, + pub sun_family: sa_family_t, + pub sun_path: [::c_char; 104] + } + + pub struct sockaddr_storage { + pub ss_len: u8, + pub ss_family: sa_family_t, + __ss_pad1: [::c_char; 6], + __ss_align: i64, + __ss_pad2: [::c_char; 112], + } + + pub struct utsname { + pub sysname: [::c_char; _SYSNAME_SIZE], + pub nodename: [::c_char; _SYSNAME_SIZE], + pub release: [::c_char; _SYSNAME_SIZE], + pub version: [::c_char; _SYSNAME_SIZE], + pub machine: [::c_char; _SYSNAME_SIZE], + } + + pub struct sigevent { + pub sigev_notify: ::c_int, + __sigev_un1: usize, // union + pub sigev_value: ::sigval, + __sigev_un2: usize, // union + + } + pub struct dirent { + pub d_ino: ::ino_t, + pub d_offset: ::off_t, + pub d_reclen: ::c_short, + pub d_namelen: ::c_short, + pub d_name: [::c_char; 1], // flex array + } + + pub struct dirent_extra { + pub d_datalen: u16, + pub d_type: u16, + pub d_reserved: u32, + } + + pub struct stat { + pub st_ino: ::ino_t, + pub st_size: ::off_t, + pub st_dev: ::dev_t, + pub st_rdev: ::dev_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub __old_st_mtime: ::_Time32t, + pub __old_st_atime: ::_Time32t, + pub __old_st_ctime: ::_Time32t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_blocksize: ::blksize_t, + pub st_nblocks: i32, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_mtim: ::timespec, + pub st_atim: ::timespec, + pub st_ctim: ::timespec, + } + + pub struct sigset_t { + __val: [u32; 2], + } + + pub struct mq_attr { + pub mq_maxmsg: ::c_long, + pub mq_msgsize: ::c_long, + pub mq_flags: ::c_long, + pub mq_curmsgs: ::c_long, + pub mq_sendwait: ::c_long, + pub mq_recvwait: ::c_long, + } + + pub struct msg { + pub msg_next: *mut ::msg, + pub msg_type: ::c_long, + pub msg_ts: ::c_ushort, + pub msg_spot: ::c_short, + _pad: [u8; 4], + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_first: *mut ::msg, + pub msg_last: *mut ::msg, + pub msg_cbytes: ::msglen_t, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + pub msg_stime: ::time_t, + msg_pad1: ::c_long, + pub msg_rtime: ::time_t, + msg_pad2: ::c_long, + pub msg_ctime: ::time_t, + msg_pad3: ::c_long, + msg_pad4: [::c_long; 4], + } + + pub struct sockaddr_dl { + pub sdl_len: ::c_uchar, + pub sdl_family: ::sa_family_t, + pub sdl_index: u16, + pub sdl_type: ::c_uchar, + pub sdl_nlen: ::c_uchar, + pub sdl_alen: ::c_uchar, + pub sdl_slen: ::c_uchar, + pub sdl_data: [::c_char; 12], + } + + pub struct sync_t { + __u: ::c_uint, // union + pub __owner: ::c_uint, + } + + #[repr(align(4))] + pub struct pthread_barrier_t { // union + __pad: [u8; 28], // union + } + + pub struct pthread_rwlock_t { + pub __active: ::c_int, + pub __blockedwriters: ::c_int, + pub __blockedreaders: ::c_int, + pub __heavy: ::c_int, + pub __lock: ::pthread_mutex_t, // union + pub __rcond: ::pthread_cond_t, // union + pub __wcond: ::pthread_cond_t, // union + pub __owner: ::c_uint, + pub __spare: ::c_uint, + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for sockaddr_un { + fn eq(&self, other: &sockaddr_un) -> bool { + self.sun_len == other.sun_len + && self.sun_family == other.sun_family + && self + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for sockaddr_un {} + + impl ::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_un") + .field("sun_len", &self.sun_len) + .field("sun_family", &self.sun_family) + // FIXME: .field("sun_path", &self.sun_path) + .finish() + } + } + + impl ::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { + self.sun_len.hash(state); + self.sun_family.hash(state); + self.sun_path.hash(state); + } + } + + impl PartialEq for utsname { + fn eq(&self, other: &utsname) -> bool { + self.sysname + .iter() + .zip(other.sysname.iter()) + .all(|(a,b)| a == b) + && self + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a,b)| a == b) + && self + .release + .iter() + .zip(other.release.iter()) + .all(|(a,b)| a == b) + && self + .version + .iter() + .zip(other.version.iter()) + .all(|(a,b)| a == b) + && self + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for utsname {} + + impl ::fmt::Debug for utsname { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utsname") + // FIXME: .field("sysname", &self.sysname) + // FIXME: .field("nodename", &self.nodename) + // FIXME: .field("release", &self.release) + // FIXME: .field("version", &self.version) + // FIXME: .field("machine", &self.machine) + .finish() + } + } + + impl ::hash::Hash for utsname { + fn hash(&self, state: &mut H) { + self.sysname.hash(state); + self.nodename.hash(state); + self.release.hash(state); + self.version.hash(state); + self.machine.hash(state); + } + } + + impl PartialEq for mq_attr { + fn eq(&self, other: &mq_attr) -> bool { + self.mq_maxmsg == other.mq_maxmsg && + self.mq_msgsize == other.mq_msgsize && + self.mq_flags == other.mq_flags && + self.mq_curmsgs == other.mq_curmsgs && + self.mq_msgsize == other.mq_msgsize && + self.mq_sendwait == other.mq_sendwait && + self.mq_recvwait == other.mq_recvwait + } + } + + impl Eq for mq_attr {} + + impl ::fmt::Debug for mq_attr { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mq_attr") + .field("mq_maxmsg", &self.mq_maxmsg) + .field("mq_msgsize", &self.mq_msgsize) + .field("mq_flags", &self.mq_flags) + .field("mq_curmsgs", &self.mq_curmsgs) + .field("mq_msgsize", &self.mq_msgsize) + .field("mq_sendwait", &self.mq_sendwait) + .field("mq_recvwait", &self.mq_recvwait) + .finish() + } + } + + impl PartialEq for sockaddr_storage { + fn eq(&self, other: &sockaddr_storage) -> bool { + self.ss_len == other.ss_len + && self.ss_family == other.ss_family + && self.__ss_pad1 == other.__ss_pad1 + && self.__ss_align == other.__ss_align + && self + .__ss_pad2 + .iter() + .zip(other.__ss_pad2.iter()) + .all(|(a, b)| a == b) + } + } + + impl Eq for sockaddr_storage {} + + impl ::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_storage") + .field("ss_len", &self.ss_len) + .field("ss_family", &self.ss_family) + .field("__ss_pad1", &self.__ss_pad1) + .field("__ss_align", &self.__ss_align) + // FIXME: .field("__ss_pad2", &self.__ss_pad2) + .finish() + } + } + + impl ::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { + self.ss_len.hash(state); + self.ss_family.hash(state); + self.__ss_pad1.hash(state); + self.__ss_align.hash(state); + self.__ss_pad2.hash(state); + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_ino == other.d_ino + && self.d_offset == other.d_offset + && self.d_reclen == other.d_reclen + && self.d_namelen == other.d_namelen + && self + .d_name[..self.d_namelen as _] + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for dirent {} + + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_ino", &self.d_ino) + .field("d_offset", &self.d_offset) + .field("d_reclen", &self.d_reclen) + .field("d_namelen", &self.d_namelen) + .field("d_name", &&self.d_name[..self.d_namelen as _]) + .finish() + } + } + + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_ino.hash(state); + self.d_offset.hash(state); + self.d_reclen.hash(state); + self.d_namelen.hash(state); + self.d_name[..self.d_namelen as _].hash(state); + } + } + } +} + +pub const _SYSNAME_SIZE: usize = 256 + 1; +pub const RLIM_INFINITY: ::rlim_t = 0xfffffffffffffffd; +pub const O_LARGEFILE: ::c_int = 0o0100000; + +// intentionally not public, only used for fd_set +cfg_if! { + if #[cfg(target_pointer_width = "32")] { + const ULONG_SIZE: usize = 32; + } else if #[cfg(target_pointer_width = "64")] { + const ULONG_SIZE: usize = 64; + } else { + // Unknown target_pointer_width + } +} + +pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: ::c_int = 0; +pub const RAND_MAX: ::c_int = 32767; +pub const EOF: ::c_int = -1; +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; +pub const _IOFBF: ::c_int = 0; +pub const _IONBF: ::c_int = 2; +pub const _IOLBF: ::c_int = 1; + +pub const F_DUPFD: ::c_int = 0; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; + +pub const F_DUPFD_CLOEXEC: ::c_int = 5; + +pub const SIGTRAP: ::c_int = 5; + +pub const CLOCK_REALTIME: ::clockid_t = 0; +pub const CLOCK_MONOTONIC: ::clockid_t = 2; +pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 3; +pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 4; +pub const TIMER_ABSTIME: ::c_uint = 0x80000000; + +pub const RUSAGE_SELF: ::c_int = 0; + +pub const F_OK: ::c_int = 0; +pub const X_OK: ::c_int = 1; +pub const W_OK: ::c_int = 2; +pub const R_OK: ::c_int = 4; + +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; + +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGABRT: ::c_int = 6; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGSEGV: ::c_int = 11; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; + +pub const PROT_NONE: ::c_int = 0x00000000; +pub const PROT_READ: ::c_int = 0x00000100; +pub const PROT_WRITE: ::c_int = 0x00000200; +pub const PROT_EXEC: ::c_int = 0x00000400; + +pub const MAP_FILE: ::c_int = 0; +pub const MAP_SHARED: ::c_int = 1; +pub const MAP_PRIVATE: ::c_int = 2; +pub const MAP_FIXED: ::c_int = 0x10; + +pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; + +pub const MS_ASYNC: ::c_int = 1; +pub const MS_INVALIDATE: ::c_int = 4; +pub const MS_SYNC: ::c_int = 2; + +pub const SCM_RIGHTS: ::c_int = 0x01; +pub const SCM_TIMESTAMP: ::c_int = 0x02; +pub const SCM_CREDS: ::c_int = 0x04; + +pub const MAP_TYPE: ::c_int = 0x3; + +pub const IFF_UP: ::c_int = 0x00000001; +pub const IFF_BROADCAST: ::c_int = 0x00000002; +pub const IFF_DEBUG: ::c_int = 0x00000004; +pub const IFF_LOOPBACK: ::c_int = 0x00000008; +pub const IFF_POINTOPOINT: ::c_int = 0x00000010; +pub const IFF_NOTRAILERS: ::c_int = 0x00000020; +pub const IFF_RUNNING: ::c_int = 0x00000040; +pub const IFF_NOARP: ::c_int = 0x00000080; +pub const IFF_PROMISC: ::c_int = 0x00000100; +pub const IFF_ALLMULTI: ::c_int = 0x00000200; +pub const IFF_MULTICAST: ::c_int = 0x00008000; + +pub const AF_UNSPEC: ::c_int = 0; +pub const AF_UNIX: ::c_int = AF_LOCAL; +pub const AF_LOCAL: ::c_int = 1; +pub const AF_INET: ::c_int = 2; +pub const AF_IPX: ::c_int = 23; +pub const AF_APPLETALK: ::c_int = 16; +pub const AF_INET6: ::c_int = 24; +pub const AF_ROUTE: ::c_int = 17; +pub const AF_SNA: ::c_int = 11; +pub const AF_BLUETOOTH: ::c_int = 31; +pub const AF_ISDN: ::c_int = 26; + +pub const PF_UNSPEC: ::c_int = AF_UNSPEC; +pub const PF_UNIX: ::c_int = PF_LOCAL; +pub const PF_LOCAL: ::c_int = AF_LOCAL; +pub const PF_INET: ::c_int = AF_INET; +pub const PF_IPX: ::c_int = AF_IPX; +pub const PF_APPLETALK: ::c_int = AF_APPLETALK; +pub const PF_INET6: ::c_int = AF_INET6; +pub const pseudo_AF_KEY: ::c_int = 29; +pub const PF_KEY: ::c_int = pseudo_AF_KEY; +pub const PF_ROUTE: ::c_int = AF_ROUTE; +pub const PF_SNA: ::c_int = AF_SNA; + +pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; +pub const PF_ISDN: ::c_int = AF_ISDN; + +pub const SOMAXCONN: ::c_int = 128; + +pub const MSG_OOB: ::c_int = 0x0001; +pub const MSG_PEEK: ::c_int = 0x0002; +pub const MSG_DONTROUTE: ::c_int = 0x0004; +pub const MSG_CTRUNC: ::c_int = 0x0020; +pub const MSG_TRUNC: ::c_int = 0x0010; +pub const MSG_DONTWAIT: ::c_int = 0x0080; +pub const MSG_EOR: ::c_int = 0x0008; +pub const MSG_WAITALL: ::c_int = 0x0040; +pub const MSG_NOSIGNAL: ::c_int = 0x0800; +pub const MSG_WAITFORONE: ::c_int = 0x2000; + +pub const IP_TOS: ::c_int = 3; +pub const IP_TTL: ::c_int = 4; +pub const IP_HDRINCL: ::c_int = 2; +pub const IP_OPTIONS: ::c_int = 1; +pub const IP_RECVOPTS: ::c_int = 5; +pub const IP_RETOPTS: ::c_int = 8; +pub const IP_PKTINFO: ::c_int = 25; +pub const IP_IPSEC_POLICY_COMPAT: ::c_int = 22; +pub const IP_MULTICAST_IF: ::c_int = 9; +pub const IP_MULTICAST_TTL: ::c_int = 10; +pub const IP_MULTICAST_LOOP: ::c_int = 11; +pub const IP_ADD_MEMBERSHIP: ::c_int = 12; +pub const IP_DROP_MEMBERSHIP: ::c_int = 13; +pub const IP_DEFAULT_MULTICAST_TTL: ::c_int = 1; +pub const IP_DEFAULT_MULTICAST_LOOP: ::c_int = 1; + +pub const IPPROTO_HOPOPTS: ::c_int = 0; +pub const IPPROTO_IGMP: ::c_int = 2; +pub const IPPROTO_IPIP: ::c_int = 4; +pub const IPPROTO_EGP: ::c_int = 8; +pub const IPPROTO_PUP: ::c_int = 12; +pub const IPPROTO_IDP: ::c_int = 22; +pub const IPPROTO_TP: ::c_int = 29; +pub const IPPROTO_ROUTING: ::c_int = 43; +pub const IPPROTO_FRAGMENT: ::c_int = 44; +pub const IPPROTO_RSVP: ::c_int = 46; +pub const IPPROTO_GRE: ::c_int = 47; +pub const IPPROTO_ESP: ::c_int = 50; +pub const IPPROTO_AH: ::c_int = 51; +pub const IPPROTO_NONE: ::c_int = 59; +pub const IPPROTO_DSTOPTS: ::c_int = 60; +pub const IPPROTO_ENCAP: ::c_int = 98; +pub const IPPROTO_PIM: ::c_int = 103; +pub const IPPROTO_SCTP: ::c_int = 132; +pub const IPPROTO_RAW: ::c_int = 255; +pub const IPPROTO_MAX: ::c_int = 256; +pub const IPPROTO_CARP: ::c_int = 112; +pub const IPPROTO_DIVERT: ::c_int = 259; +pub const IPPROTO_DONE: ::c_int = 257; +pub const IPPROTO_EON: ::c_int = 80; +pub const IPPROTO_ETHERIP: ::c_int = 97; +pub const IPPROTO_GGP: ::c_int = 3; +pub const IPPROTO_IPCOMP: ::c_int = 108; +pub const IPPROTO_MOBILE: ::c_int = 55; + +pub const IPV6_RTHDR_LOOSE: ::c_int = 0; +pub const IPV6_RTHDR_STRICT: ::c_int = 1; +pub const IPV6_UNICAST_HOPS: ::c_int = 4; +pub const IPV6_MULTICAST_IF: ::c_int = 9; +pub const IPV6_MULTICAST_HOPS: ::c_int = 10; +pub const IPV6_MULTICAST_LOOP: ::c_int = 11; +pub const IPV6_JOIN_GROUP: ::c_int = 12; +pub const IPV6_LEAVE_GROUP: ::c_int = 13; +pub const IPV6_CHECKSUM: ::c_int = 26; +pub const IPV6_V6ONLY: ::c_int = 27; +pub const IPV6_IPSEC_POLICY_COMPAT: ::c_int = 28; +pub const IPV6_RTHDRDSTOPTS: ::c_int = 35; +pub const IPV6_RECVPKTINFO: ::c_int = 36; +pub const IPV6_RECVHOPLIMIT: ::c_int = 37; +pub const IPV6_RECVRTHDR: ::c_int = 38; +pub const IPV6_RECVHOPOPTS: ::c_int = 39; +pub const IPV6_RECVDSTOPTS: ::c_int = 40; +pub const IPV6_RECVPATHMTU: ::c_int = 43; +pub const IPV6_PATHMTU: ::c_int = 44; +pub const IPV6_PKTINFO: ::c_int = 46; +pub const IPV6_HOPLIMIT: ::c_int = 47; +pub const IPV6_NEXTHOP: ::c_int = 48; +pub const IPV6_HOPOPTS: ::c_int = 49; +pub const IPV6_DSTOPTS: ::c_int = 50; +pub const IPV6_RECVTCLASS: ::c_int = 57; +pub const IPV6_TCLASS: ::c_int = 61; +pub const IPV6_DONTFRAG: ::c_int = 62; + +pub const TCP_NODELAY: ::c_int = 0x01; +pub const TCP_MAXSEG: ::c_int = 0x02; +pub const TCP_MD5SIG: ::c_int = 0x10; +pub const TCP_KEEPALIVE: ::c_int = 0x04; + +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; + +pub const LOCK_SH: ::c_int = 0x1; +pub const LOCK_EX: ::c_int = 0x2; +pub const LOCK_NB: ::c_int = 0x4; +pub const LOCK_UN: ::c_int = 0x8; + +pub const SS_ONSTACK: ::c_int = 1; +pub const SS_DISABLE: ::c_int = 2; + +pub const PATH_MAX: ::c_int = 1024; + +pub const UIO_MAXIOV: ::c_int = 1024; + +pub const FD_SETSIZE: usize = 256; + +pub const TCIOFF: ::c_int = 0x0002; +pub const TCION: ::c_int = 0x0003; +pub const TCOOFF: ::c_int = 0x0000; +pub const TCOON: ::c_int = 0x0001; +pub const TCIFLUSH: ::c_int = 0; +pub const TCOFLUSH: ::c_int = 1; +pub const TCIOFLUSH: ::c_int = 2; +pub const NL0: ::tcflag_t = 0x000; +pub const NL1: ::tcflag_t = 0x100; +pub const TAB0: ::tcflag_t = 0x0000; +pub const CR0: ::tcflag_t = 0x000; +pub const FF0: ::tcflag_t = 0x0000; +pub const BS0: ::tcflag_t = 0x0000; +pub const VT0: ::tcflag_t = 0x0000; +pub const VERASE: usize = 2; +pub const VKILL: usize = 3; +pub const VINTR: usize = 0; +pub const VQUIT: usize = 1; +pub const VLNEXT: usize = 15; +pub const IGNBRK: ::tcflag_t = 0x00000001; +pub const BRKINT: ::tcflag_t = 0x00000002; +pub const IGNPAR: ::tcflag_t = 0x00000004; +pub const PARMRK: ::tcflag_t = 0x00000008; +pub const INPCK: ::tcflag_t = 0x00000010; +pub const ISTRIP: ::tcflag_t = 0x00000020; +pub const INLCR: ::tcflag_t = 0x00000040; +pub const IGNCR: ::tcflag_t = 0x00000080; +pub const ICRNL: ::tcflag_t = 0x00000100; +pub const IXANY: ::tcflag_t = 0x00000800; +pub const IMAXBEL: ::tcflag_t = 0x00002000; +pub const OPOST: ::tcflag_t = 0x00000001; +pub const CS5: ::tcflag_t = 0x00; +pub const ECHO: ::tcflag_t = 0x00000008; +pub const OCRNL: ::tcflag_t = 0x00000008; +pub const ONOCR: ::tcflag_t = 0x00000010; +pub const ONLRET: ::tcflag_t = 0x00000020; +pub const OFILL: ::tcflag_t = 0x00000040; +pub const OFDEL: ::tcflag_t = 0x00000080; + +pub const WNOHANG: ::c_int = 0x0040; +pub const WUNTRACED: ::c_int = 0x0004; +pub const WSTOPPED: ::c_int = WUNTRACED; +pub const WEXITED: ::c_int = 0x0001; +pub const WCONTINUED: ::c_int = 0x0008; +pub const WNOWAIT: ::c_int = 0x0080; +pub const WTRAPPED: ::c_int = 0x0002; + +pub const RTLD_LOCAL: ::c_int = 0x0200; +pub const RTLD_LAZY: ::c_int = 0x0001; + +pub const POSIX_FADV_NORMAL: ::c_int = 0; +pub const POSIX_FADV_RANDOM: ::c_int = 2; +pub const POSIX_FADV_SEQUENTIAL: ::c_int = 1; +pub const POSIX_FADV_WILLNEED: ::c_int = 3; + +pub const AT_FDCWD: ::c_int = -100; +pub const AT_EACCESS: ::c_int = 0x0001; +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x0002; +pub const AT_SYMLINK_FOLLOW: ::c_int = 0x0004; +pub const AT_REMOVEDIR: ::c_int = 0x0008; + +pub const LOG_CRON: ::c_int = 9 << 3; +pub const LOG_AUTHPRIV: ::c_int = 10 << 3; +pub const LOG_FTP: ::c_int = 11 << 3; +pub const LOG_PERROR: ::c_int = 0x20; + +pub const PIPE_BUF: usize = 5120; + +pub const CLD_EXITED: ::c_int = 1; +pub const CLD_KILLED: ::c_int = 2; +pub const CLD_DUMPED: ::c_int = 3; +pub const CLD_TRAPPED: ::c_int = 4; +pub const CLD_STOPPED: ::c_int = 5; +pub const CLD_CONTINUED: ::c_int = 6; + +pub const UTIME_OMIT: c_long = 0x40000002; +pub const UTIME_NOW: c_long = 0x40000001; + +pub const POLLIN: ::c_short = POLLRDNORM | POLLRDBAND; +pub const POLLPRI: ::c_short = 0x0008; +pub const POLLOUT: ::c_short = 0x0002; +pub const POLLERR: ::c_short = 0x0020; +pub const POLLHUP: ::c_short = 0x0040; +pub const POLLNVAL: ::c_short = 0x1000; +pub const POLLRDNORM: ::c_short = 0x0001; +pub const POLLRDBAND: ::c_short = 0x0004; + +pub const IPTOS_LOWDELAY: u8 = 0x10; +pub const IPTOS_THROUGHPUT: u8 = 0x08; +pub const IPTOS_RELIABILITY: u8 = 0x04; +pub const IPTOS_MINCOST: u8 = 0x02; + +pub const IPTOS_PREC_NETCONTROL: u8 = 0xe0; +pub const IPTOS_PREC_INTERNETCONTROL: u8 = 0xc0; +pub const IPTOS_PREC_CRITIC_ECP: u8 = 0xa0; +pub const IPTOS_PREC_FLASHOVERRIDE: u8 = 0x80; +pub const IPTOS_PREC_FLASH: u8 = 0x60; +pub const IPTOS_PREC_IMMEDIATE: u8 = 0x40; +pub const IPTOS_PREC_PRIORITY: u8 = 0x20; +pub const IPTOS_PREC_ROUTINE: u8 = 0x00; + +pub const IPTOS_ECN_MASK: u8 = 0x03; +pub const IPTOS_ECN_ECT1: u8 = 0x01; +pub const IPTOS_ECN_ECT0: u8 = 0x02; +pub const IPTOS_ECN_CE: u8 = 0x03; + +pub const IPOPT_CONTROL: u8 = 0x00; +pub const IPOPT_RESERVED1: u8 = 0x20; +pub const IPOPT_RESERVED2: u8 = 0x60; +pub const IPOPT_LSRR: u8 = 131; +pub const IPOPT_RR: u8 = 7; +pub const IPOPT_SSRR: u8 = 137; +pub const IPDEFTTL: u8 = 64; +pub const IPOPT_OPTVAL: u8 = 0; +pub const IPOPT_OLEN: u8 = 1; +pub const IPOPT_OFFSET: u8 = 2; +pub const IPOPT_MINOFF: u8 = 4; +pub const IPOPT_NOP: u8 = 1; +pub const IPOPT_EOL: u8 = 0; +pub const IPOPT_TS: u8 = 68; +pub const IPOPT_TS_TSONLY: u8 = 0; +pub const IPOPT_TS_TSANDADDR: u8 = 1; +pub const IPOPT_TS_PRESPEC: u8 = 3; + +pub const MAX_IPOPTLEN: u8 = 40; +pub const IPVERSION: u8 = 4; +pub const MAXTTL: u8 = 255; + +pub const ARPHRD_ETHER: u16 = 1; +pub const ARPHRD_IEEE802: u16 = 6; +pub const ARPHRD_ARCNET: u16 = 7; +pub const ARPHRD_IEEE1394: u16 = 24; + +pub const SOL_SOCKET: ::c_int = 0xffff; + +pub const SO_DEBUG: ::c_int = 0x0001; +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_TYPE: ::c_int = 0x1008; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_OOBINLINE: ::c_int = 0x0100; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_REUSEPORT: ::c_int = 0x0200; +pub const SO_RCVLOWAT: ::c_int = 0x1004; +pub const SO_SNDLOWAT: ::c_int = 0x1003; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_BINDTODEVICE: ::c_int = 0x0800; +pub const SO_TIMESTAMP: ::c_int = 0x0400; +pub const SO_ACCEPTCONN: ::c_int = 0x0002; + +pub const TIOCM_LE: ::c_int = 0x0100; +pub const TIOCM_DTR: ::c_int = 0x0001; +pub const TIOCM_RTS: ::c_int = 0x0002; +pub const TIOCM_ST: ::c_int = 0x0200; +pub const TIOCM_SR: ::c_int = 0x0400; +pub const TIOCM_CTS: ::c_int = 0x1000; +pub const TIOCM_CAR: ::c_int = TIOCM_CD; +pub const TIOCM_CD: ::c_int = 0x8000; +pub const TIOCM_RNG: ::c_int = TIOCM_RI; +pub const TIOCM_RI: ::c_int = 0x4000; +pub const TIOCM_DSR: ::c_int = 0x2000; + +pub const SCHED_OTHER: ::c_int = 3; +pub const SCHED_FIFO: ::c_int = 1; +pub const SCHED_RR: ::c_int = 2; + +pub const IPC_PRIVATE: ::key_t = 0; + +pub const IPC_CREAT: ::c_int = 0o001000; +pub const IPC_EXCL: ::c_int = 0o002000; +pub const IPC_NOWAIT: ::c_int = 0o004000; + +pub const IPC_RMID: ::c_int = 0; +pub const IPC_SET: ::c_int = 1; +pub const IPC_STAT: ::c_int = 2; + +pub const MSG_NOERROR: ::c_int = 0o010000; + +pub const LOG_NFACILITIES: ::c_int = 24; + +pub const SEM_FAILED: *mut ::sem_t = 0xFFFFFFFFFFFFFFFF as *mut sem_t; + +pub const AI_PASSIVE: ::c_int = 0x00000001; +pub const AI_CANONNAME: ::c_int = 0x00000002; +pub const AI_NUMERICHOST: ::c_int = 0x00000004; + +pub const AI_NUMERICSERV: ::c_int = 0x00000008; + +pub const EAI_BADFLAGS: ::c_int = 3; +pub const EAI_NONAME: ::c_int = 8; +pub const EAI_AGAIN: ::c_int = 2; +pub const EAI_FAIL: ::c_int = 4; +pub const EAI_NODATA: ::c_int = 7; +pub const EAI_FAMILY: ::c_int = 5; +pub const EAI_SOCKTYPE: ::c_int = 10; +pub const EAI_SERVICE: ::c_int = 9; +pub const EAI_MEMORY: ::c_int = 6; +pub const EAI_SYSTEM: ::c_int = 11; +pub const EAI_OVERFLOW: ::c_int = 14; + +pub const NI_NUMERICHOST: ::c_int = 0x00000002; +pub const NI_NUMERICSERV: ::c_int = 0x00000008; +pub const NI_NOFQDN: ::c_int = 0x00000001; +pub const NI_NAMEREQD: ::c_int = 0x00000004; +pub const NI_DGRAM: ::c_int = 0x00000010; + +pub const AIO_CANCELED: ::c_int = 0; +pub const AIO_NOTCANCELED: ::c_int = 2; +pub const AIO_ALLDONE: ::c_int = 1; +pub const LIO_READ: ::c_int = 1; +pub const LIO_WRITE: ::c_int = 2; +pub const LIO_NOP: ::c_int = 0; +pub const LIO_WAIT: ::c_int = 1; +pub const LIO_NOWAIT: ::c_int = 0; + +pub const ITIMER_REAL: ::c_int = 0; +pub const ITIMER_VIRTUAL: ::c_int = 1; +pub const ITIMER_PROF: ::c_int = 2; + +pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x00000010; +pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x00000001; +pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x00000004; +pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x00000002; +pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x00000400; +pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x00000040; + +pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; + +pub const RTF_UP: ::c_ushort = 0x0001; +pub const RTF_GATEWAY: ::c_ushort = 0x0002; + +pub const RTF_HOST: ::c_ushort = 0x0004; +pub const RTF_DYNAMIC: ::c_ushort = 0x0010; +pub const RTF_MODIFIED: ::c_ushort = 0x0020; +pub const RTF_REJECT: ::c_ushort = 0x0008; +pub const RTF_STATIC: ::c_ushort = 0x0800; +pub const RTF_XRESOLVE: ::c_ushort = 0x0200; +pub const RTF_BROADCAST: u32 = 0x80000; +pub const RTM_NEWADDR: u16 = 0xc; +pub const RTM_DELADDR: u16 = 0xd; +pub const RTA_DST: ::c_ushort = 0x1; +pub const RTA_GATEWAY: ::c_ushort = 0x2; + +pub const UDP_ENCAP: ::c_int = 100; + +pub const IN_ACCESS: u32 = 0x00000001; +pub const IN_MODIFY: u32 = 0x00000002; +pub const IN_ATTRIB: u32 = 0x00000004; +pub const IN_CLOSE_WRITE: u32 = 0x00000008; +pub const IN_CLOSE_NOWRITE: u32 = 0x00000010; +pub const IN_CLOSE: u32 = IN_CLOSE_WRITE | IN_CLOSE_NOWRITE; +pub const IN_OPEN: u32 = 0x00000020; +pub const IN_MOVED_FROM: u32 = 0x00000040; +pub const IN_MOVED_TO: u32 = 0x00000080; +pub const IN_MOVE: u32 = IN_MOVED_FROM | IN_MOVED_TO; +pub const IN_CREATE: u32 = 0x00000100; +pub const IN_DELETE: u32 = 0x00000200; +pub const IN_DELETE_SELF: u32 = 0x00000400; +pub const IN_MOVE_SELF: u32 = 0x00000800; +pub const IN_UNMOUNT: u32 = 0x00002000; +pub const IN_Q_OVERFLOW: u32 = 0x00004000; +pub const IN_IGNORED: u32 = 0x00008000; +pub const IN_ONLYDIR: u32 = 0x01000000; +pub const IN_DONT_FOLLOW: u32 = 0x02000000; + +pub const IN_ISDIR: u32 = 0x40000000; +pub const IN_ONESHOT: u32 = 0x80000000; + +pub const REG_EXTENDED: ::c_int = 0o0001; +pub const REG_ICASE: ::c_int = 0o0002; +pub const REG_NEWLINE: ::c_int = 0o0010; +pub const REG_NOSUB: ::c_int = 0o0004; + +pub const REG_NOTBOL: ::c_int = 0o00001; +pub const REG_NOTEOL: ::c_int = 0o00002; + +pub const REG_ENOSYS: ::c_int = 17; +pub const REG_NOMATCH: ::c_int = 1; +pub const REG_BADPAT: ::c_int = 2; +pub const REG_ECOLLATE: ::c_int = 3; +pub const REG_ECTYPE: ::c_int = 4; +pub const REG_EESCAPE: ::c_int = 5; +pub const REG_ESUBREG: ::c_int = 6; +pub const REG_EBRACK: ::c_int = 7; +pub const REG_EPAREN: ::c_int = 8; +pub const REG_EBRACE: ::c_int = 9; +pub const REG_BADBR: ::c_int = 10; +pub const REG_ERANGE: ::c_int = 11; +pub const REG_ESPACE: ::c_int = 12; +pub const REG_BADRPT: ::c_int = 13; + +// errno.h +pub const EOK: ::c_int = 0; +pub const EWOULDBLOCK: ::c_int = EAGAIN; +pub const EPERM: ::c_int = 1; +pub const ENOENT: ::c_int = 2; +pub const ESRCH: ::c_int = 3; +pub const EINTR: ::c_int = 4; +pub const EIO: ::c_int = 5; +pub const ENXIO: ::c_int = 6; +pub const E2BIG: ::c_int = 7; +pub const ENOEXEC: ::c_int = 8; +pub const EBADF: ::c_int = 9; +pub const ECHILD: ::c_int = 10; +pub const EAGAIN: ::c_int = 11; +pub const ENOMEM: ::c_int = 12; +pub const EACCES: ::c_int = 13; +pub const EFAULT: ::c_int = 14; +pub const ENOTBLK: ::c_int = 15; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const EXDEV: ::c_int = 18; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENFILE: ::c_int = 23; +pub const EMFILE: ::c_int = 24; +pub const ENOTTY: ::c_int = 25; +pub const ETXTBSY: ::c_int = 26; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const ESPIPE: ::c_int = 29; +pub const EROFS: ::c_int = 30; +pub const EMLINK: ::c_int = 31; +pub const EPIPE: ::c_int = 32; +pub const EDOM: ::c_int = 33; +pub const ERANGE: ::c_int = 34; +pub const ENOMSG: ::c_int = 35; +pub const EIDRM: ::c_int = 36; +pub const ECHRNG: ::c_int = 37; +pub const EL2NSYNC: ::c_int = 38; +pub const EL3HLT: ::c_int = 39; +pub const EL3RST: ::c_int = 40; +pub const ELNRNG: ::c_int = 41; +pub const EUNATCH: ::c_int = 42; +pub const ENOCSI: ::c_int = 43; +pub const EL2HLT: ::c_int = 44; +pub const EDEADLK: ::c_int = 45; +pub const ENOLCK: ::c_int = 46; +pub const ECANCELED: ::c_int = 47; +pub const EDQUOT: ::c_int = 49; +pub const EBADE: ::c_int = 50; +pub const EBADR: ::c_int = 51; +pub const EXFULL: ::c_int = 52; +pub const ENOANO: ::c_int = 53; +pub const EBADRQC: ::c_int = 54; +pub const EBADSLT: ::c_int = 55; +pub const EDEADLOCK: ::c_int = 56; +pub const EBFONT: ::c_int = 57; +pub const EOWNERDEAD: ::c_int = 58; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EMULTIHOP: ::c_int = 74; +pub const EBADMSG: ::c_int = 77; +pub const ENAMETOOLONG: ::c_int = 78; +pub const EOVERFLOW: ::c_int = 79; +pub const ENOTUNIQ: ::c_int = 80; +pub const EBADFD: ::c_int = 81; +pub const EREMCHG: ::c_int = 82; +pub const ELIBACC: ::c_int = 83; +pub const ELIBBAD: ::c_int = 84; +pub const ELIBSCN: ::c_int = 85; +pub const ELIBMAX: ::c_int = 86; +pub const ELIBEXEC: ::c_int = 87; +pub const EILSEQ: ::c_int = 88; +pub const ENOSYS: ::c_int = 89; +pub const ELOOP: ::c_int = 90; +pub const ERESTART: ::c_int = 91; +pub const ESTRPIPE: ::c_int = 92; +pub const ENOTEMPTY: ::c_int = 93; +pub const EUSERS: ::c_int = 94; +pub const ENOTRECOVERABLE: ::c_int = 95; +pub const EOPNOTSUPP: ::c_int = 103; +pub const EFPOS: ::c_int = 110; +pub const ESTALE: ::c_int = 122; +pub const EINPROGRESS: ::c_int = 236; +pub const EALREADY: ::c_int = 237; +pub const ENOTSOCK: ::c_int = 238; +pub const EDESTADDRREQ: ::c_int = 239; +pub const EMSGSIZE: ::c_int = 240; +pub const EPROTOTYPE: ::c_int = 241; +pub const ENOPROTOOPT: ::c_int = 242; +pub const EPROTONOSUPPORT: ::c_int = 243; +pub const ESOCKTNOSUPPORT: ::c_int = 244; +pub const EPFNOSUPPORT: ::c_int = 246; +pub const EAFNOSUPPORT: ::c_int = 247; +pub const EADDRINUSE: ::c_int = 248; +pub const EADDRNOTAVAIL: ::c_int = 249; +pub const ENETDOWN: ::c_int = 250; +pub const ENETUNREACH: ::c_int = 251; +pub const ENETRESET: ::c_int = 252; +pub const ECONNABORTED: ::c_int = 253; +pub const ECONNRESET: ::c_int = 254; +pub const ENOBUFS: ::c_int = 255; +pub const EISCONN: ::c_int = 256; +pub const ENOTCONN: ::c_int = 257; +pub const ESHUTDOWN: ::c_int = 258; +pub const ETOOMANYREFS: ::c_int = 259; +pub const ETIMEDOUT: ::c_int = 260; +pub const ECONNREFUSED: ::c_int = 261; +pub const EHOSTDOWN: ::c_int = 264; +pub const EHOSTUNREACH: ::c_int = 265; +pub const EBADRPC: ::c_int = 272; +pub const ERPCMISMATCH: ::c_int = 273; +pub const EPROGUNAVAIL: ::c_int = 274; +pub const EPROGMISMATCH: ::c_int = 275; +pub const EPROCUNAVAIL: ::c_int = 276; +pub const ENOREMOTE: ::c_int = 300; +pub const ENONDP: ::c_int = 301; +pub const EBADFSYS: ::c_int = 302; +pub const EMORE: ::c_int = 309; +pub const ECTRLTERM: ::c_int = 310; +pub const ENOLIC: ::c_int = 311; +pub const ESRVRFAULT: ::c_int = 312; +pub const EENDIAN: ::c_int = 313; +pub const ESECTYPEINVAL: ::c_int = 314; + +pub const RUSAGE_CHILDREN: ::c_int = -1; +pub const L_tmpnam: ::c_uint = 255; + +pub const _PC_LINK_MAX: ::c_int = 1; +pub const _PC_MAX_CANON: ::c_int = 2; +pub const _PC_MAX_INPUT: ::c_int = 3; +pub const _PC_NAME_MAX: ::c_int = 4; +pub const _PC_PATH_MAX: ::c_int = 5; +pub const _PC_PIPE_BUF: ::c_int = 6; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 9; +pub const _PC_NO_TRUNC: ::c_int = 7; +pub const _PC_VDISABLE: ::c_int = 8; +pub const _PC_SYNC_IO: ::c_int = 14; +pub const _PC_ASYNC_IO: ::c_int = 12; +pub const _PC_PRIO_IO: ::c_int = 13; +pub const _PC_SOCK_MAXBUF: ::c_int = 15; +pub const _PC_FILESIZEBITS: ::c_int = 16; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 22; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 23; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 24; +pub const _PC_REC_XFER_ALIGN: ::c_int = 25; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 21; +pub const _PC_SYMLINK_MAX: ::c_int = 17; +pub const _PC_2_SYMLINKS: ::c_int = 20; + +pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; +pub const _SC_ARG_MAX: ::c_int = 1; +pub const _SC_CHILD_MAX: ::c_int = 2; +pub const _SC_CLK_TCK: ::c_int = 3; +pub const _SC_NGROUPS_MAX: ::c_int = 4; +pub const _SC_OPEN_MAX: ::c_int = 5; +pub const _SC_JOB_CONTROL: ::c_int = 6; +pub const _SC_SAVED_IDS: ::c_int = 7; +pub const _SC_VERSION: ::c_int = 8; +pub const _SC_PASS_MAX: ::c_int = 9; +pub const _SC_PAGESIZE: ::c_int = 11; +pub const _SC_XOPEN_VERSION: ::c_int = 12; +pub const _SC_STREAM_MAX: ::c_int = 13; +pub const _SC_TZNAME_MAX: ::c_int = 14; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 15; +pub const _SC_AIO_MAX: ::c_int = 16; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 17; +pub const _SC_DELAYTIMER_MAX: ::c_int = 18; +pub const _SC_MQ_OPEN_MAX: ::c_int = 19; +pub const _SC_MQ_PRIO_MAX: ::c_int = 20; +pub const _SC_RTSIG_MAX: ::c_int = 21; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 22; +pub const _SC_SEM_VALUE_MAX: ::c_int = 23; +pub const _SC_SIGQUEUE_MAX: ::c_int = 24; +pub const _SC_TIMER_MAX: ::c_int = 25; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 26; +pub const _SC_FSYNC: ::c_int = 27; +pub const _SC_MAPPED_FILES: ::c_int = 28; +pub const _SC_MEMLOCK: ::c_int = 29; +pub const _SC_MEMLOCK_RANGE: ::c_int = 30; +pub const _SC_MEMORY_PROTECTION: ::c_int = 31; +pub const _SC_MESSAGE_PASSING: ::c_int = 32; +pub const _SC_PRIORITIZED_IO: ::c_int = 33; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 34; +pub const _SC_REALTIME_SIGNALS: ::c_int = 35; +pub const _SC_SEMAPHORES: ::c_int = 36; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 37; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 38; +pub const _SC_TIMERS: ::c_int = 39; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 40; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 41; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 42; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 43; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 44; +pub const _SC_THREAD_STACK_MIN: ::c_int = 45; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 46; +pub const _SC_TTY_NAME_MAX: ::c_int = 47; +pub const _SC_THREADS: ::c_int = 48; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 49; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 50; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 51; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 52; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 53; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 54; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 55; +pub const _SC_2_CHAR_TERM: ::c_int = 56; +pub const _SC_2_C_BIND: ::c_int = 57; +pub const _SC_2_C_DEV: ::c_int = 58; +pub const _SC_2_C_VERSION: ::c_int = 59; +pub const _SC_2_FORT_DEV: ::c_int = 60; +pub const _SC_2_FORT_RUN: ::c_int = 61; +pub const _SC_2_LOCALEDEF: ::c_int = 62; +pub const _SC_2_SW_DEV: ::c_int = 63; +pub const _SC_2_UPE: ::c_int = 64; +pub const _SC_2_VERSION: ::c_int = 65; +pub const _SC_ATEXIT_MAX: ::c_int = 66; +pub const _SC_AVPHYS_PAGES: ::c_int = 67; +pub const _SC_BC_BASE_MAX: ::c_int = 68; +pub const _SC_BC_DIM_MAX: ::c_int = 69; +pub const _SC_BC_SCALE_MAX: ::c_int = 70; +pub const _SC_BC_STRING_MAX: ::c_int = 71; +pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 72; +pub const _SC_CHAR_BIT: ::c_int = 73; +pub const _SC_CHAR_MAX: ::c_int = 74; +pub const _SC_CHAR_MIN: ::c_int = 75; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 76; +pub const _SC_EQUIV_CLASS_MAX: ::c_int = 77; +pub const _SC_EXPR_NEST_MAX: ::c_int = 78; +pub const _SC_INT_MAX: ::c_int = 79; +pub const _SC_INT_MIN: ::c_int = 80; +pub const _SC_LINE_MAX: ::c_int = 81; +pub const _SC_LONG_BIT: ::c_int = 82; +pub const _SC_MB_LEN_MAX: ::c_int = 83; +pub const _SC_NL_ARGMAX: ::c_int = 84; +pub const _SC_NL_LANGMAX: ::c_int = 85; +pub const _SC_NL_MSGMAX: ::c_int = 86; +pub const _SC_NL_NMAX: ::c_int = 87; +pub const _SC_NL_SETMAX: ::c_int = 88; +pub const _SC_NL_TEXTMAX: ::c_int = 89; +pub const _SC_NPROCESSORS_CONF: ::c_int = 90; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 91; +pub const _SC_NZERO: ::c_int = 92; +pub const _SC_PHYS_PAGES: ::c_int = 93; +pub const _SC_PII: ::c_int = 94; +pub const _SC_PII_INTERNET: ::c_int = 95; +pub const _SC_PII_INTERNET_DGRAM: ::c_int = 96; +pub const _SC_PII_INTERNET_STREAM: ::c_int = 97; +pub const _SC_PII_OSI: ::c_int = 98; +pub const _SC_PII_OSI_CLTS: ::c_int = 99; +pub const _SC_PII_OSI_COTS: ::c_int = 100; +pub const _SC_PII_OSI_M: ::c_int = 101; +pub const _SC_PII_SOCKET: ::c_int = 102; +pub const _SC_PII_XTI: ::c_int = 103; +pub const _SC_POLL: ::c_int = 104; +pub const _SC_RE_DUP_MAX: ::c_int = 105; +pub const _SC_SCHAR_MAX: ::c_int = 106; +pub const _SC_SCHAR_MIN: ::c_int = 107; +pub const _SC_SELECT: ::c_int = 108; +pub const _SC_SHRT_MAX: ::c_int = 109; +pub const _SC_SHRT_MIN: ::c_int = 110; +pub const _SC_SSIZE_MAX: ::c_int = 111; +pub const _SC_T_IOV_MAX: ::c_int = 112; +pub const _SC_UCHAR_MAX: ::c_int = 113; +pub const _SC_UINT_MAX: ::c_int = 114; +pub const _SC_UIO_MAXIOV: ::c_int = 115; +pub const _SC_ULONG_MAX: ::c_int = 116; +pub const _SC_USHRT_MAX: ::c_int = 117; +pub const _SC_WORD_BIT: ::c_int = 118; +pub const _SC_XOPEN_CRYPT: ::c_int = 119; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 120; +pub const _SC_XOPEN_SHM: ::c_int = 121; +pub const _SC_XOPEN_UNIX: ::c_int = 122; +pub const _SC_XOPEN_XCU_VERSION: ::c_int = 123; +pub const _SC_XOPEN_XPG2: ::c_int = 124; +pub const _SC_XOPEN_XPG3: ::c_int = 125; +pub const _SC_XOPEN_XPG4: ::c_int = 126; +pub const _SC_XBS5_ILP32_OFF32: ::c_int = 127; +pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 128; +pub const _SC_XBS5_LP64_OFF64: ::c_int = 129; +pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 130; +pub const _SC_ADVISORY_INFO: ::c_int = 131; +pub const _SC_CPUTIME: ::c_int = 132; +pub const _SC_SPAWN: ::c_int = 133; +pub const _SC_SPORADIC_SERVER: ::c_int = 134; +pub const _SC_THREAD_CPUTIME: ::c_int = 135; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 136; +pub const _SC_TIMEOUTS: ::c_int = 137; +pub const _SC_BARRIERS: ::c_int = 138; +pub const _SC_CLOCK_SELECTION: ::c_int = 139; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 140; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 141; +pub const _SC_SPIN_LOCKS: ::c_int = 142; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 143; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 144; +pub const _SC_TRACE: ::c_int = 145; +pub const _SC_TRACE_INHERIT: ::c_int = 146; +pub const _SC_TRACE_LOG: ::c_int = 147; +pub const _SC_2_PBS: ::c_int = 148; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 149; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 150; +pub const _SC_2_PBS_LOCATE: ::c_int = 151; +pub const _SC_2_PBS_MESSAGE: ::c_int = 152; +pub const _SC_2_PBS_TRACK: ::c_int = 153; +pub const _SC_HOST_NAME_MAX: ::c_int = 154; +pub const _SC_IOV_MAX: ::c_int = 155; +pub const _SC_IPV6: ::c_int = 156; +pub const _SC_RAW_SOCKETS: ::c_int = 157; +pub const _SC_REGEXP: ::c_int = 158; +pub const _SC_SHELL: ::c_int = 159; +pub const _SC_SS_REPL_MAX: ::c_int = 160; +pub const _SC_SYMLOOP_MAX: ::c_int = 161; +pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 162; +pub const _SC_TRACE_NAME_MAX: ::c_int = 163; +pub const _SC_TRACE_SYS_MAX: ::c_int = 164; +pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 165; +pub const _SC_V6_ILP32_OFF32: ::c_int = 166; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 167; +pub const _SC_V6_LP64_OFF64: ::c_int = 168; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 169; +pub const _SC_XOPEN_REALTIME: ::c_int = 170; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 171; +pub const _SC_XOPEN_LEGACY: ::c_int = 172; +pub const _SC_XOPEN_STREAMS: ::c_int = 173; +pub const _SC_V7_ILP32_OFF32: ::c_int = 176; +pub const _SC_V7_ILP32_OFFBIG: ::c_int = 177; +pub const _SC_V7_LP64_OFF64: ::c_int = 178; +pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 179; + +pub const GLOB_ERR: ::c_int = 0x0001; +pub const GLOB_MARK: ::c_int = 0x0002; +pub const GLOB_NOSORT: ::c_int = 0x0004; +pub const GLOB_DOOFFS: ::c_int = 0x0008; +pub const GLOB_NOCHECK: ::c_int = 0x0010; +pub const GLOB_APPEND: ::c_int = 0x0020; +pub const GLOB_NOESCAPE: ::c_int = 0x0040; + +pub const GLOB_NOSPACE: ::c_int = 1; +pub const GLOB_ABORTED: ::c_int = 2; +pub const GLOB_NOMATCH: ::c_int = 3; + +pub const S_IEXEC: mode_t = ::S_IXUSR; +pub const S_IWRITE: mode_t = ::S_IWUSR; +pub const S_IREAD: mode_t = ::S_IRUSR; + +pub const S_IFIFO: ::mode_t = 0x1000; +pub const S_IFCHR: ::mode_t = 0x2000; +pub const S_IFDIR: ::mode_t = 0x4000; +pub const S_IFBLK: ::mode_t = 0x6000; +pub const S_IFREG: ::mode_t = 0x8000; +pub const S_IFLNK: ::mode_t = 0xA000; +pub const S_IFSOCK: ::mode_t = 0xC000; +pub const S_IFMT: ::mode_t = 0xF000; + +pub const S_IXOTH: ::mode_t = 0o000001; +pub const S_IWOTH: ::mode_t = 0o000002; +pub const S_IROTH: ::mode_t = 0o000004; +pub const S_IRWXO: ::mode_t = 0o000007; +pub const S_IXGRP: ::mode_t = 0o000010; +pub const S_IWGRP: ::mode_t = 0o000020; +pub const S_IRGRP: ::mode_t = 0o000040; +pub const S_IRWXG: ::mode_t = 0o000070; +pub const S_IXUSR: ::mode_t = 0o000100; +pub const S_IWUSR: ::mode_t = 0o000200; +pub const S_IRUSR: ::mode_t = 0o000400; +pub const S_IRWXU: ::mode_t = 0o000700; + +pub const F_LOCK: ::c_int = 1; +pub const F_TEST: ::c_int = 3; +pub const F_TLOCK: ::c_int = 2; +pub const F_ULOCK: ::c_int = 0; + +pub const ST_RDONLY: ::c_ulong = 0x01; +pub const ST_NOSUID: ::c_ulong = 0x04; +pub const ST_NOEXEC: ::c_ulong = 0x02; +pub const ST_NOATIME: ::c_ulong = 0x20; + +pub const RTLD_NEXT: *mut ::c_void = -3i64 as *mut ::c_void; +pub const RTLD_DEFAULT: *mut ::c_void = -2i64 as *mut ::c_void; +pub const RTLD_NODELETE: ::c_int = 0x1000; +pub const RTLD_NOW: ::c_int = 0x0002; + +pub const EMPTY: ::c_short = 0; +pub const RUN_LVL: ::c_short = 1; +pub const BOOT_TIME: ::c_short = 2; +pub const NEW_TIME: ::c_short = 4; +pub const OLD_TIME: ::c_short = 3; +pub const INIT_PROCESS: ::c_short = 5; +pub const LOGIN_PROCESS: ::c_short = 6; +pub const USER_PROCESS: ::c_short = 7; +pub const DEAD_PROCESS: ::c_short = 8; +pub const ACCOUNTING: ::c_short = 9; + +pub const ENOTSUP: ::c_int = 48; + +pub const BUFSIZ: ::c_uint = 1024; +pub const TMP_MAX: ::c_uint = 26 * 26 * 26; +pub const FOPEN_MAX: ::c_uint = 16; +pub const FILENAME_MAX: ::c_uint = 255; + +pub const NI_MAXHOST: ::socklen_t = 1025; +pub const M_KEEP: ::c_int = 4; +pub const REG_STARTEND: ::c_int = 0o00004; +pub const VEOF: usize = 4; + +pub const RTLD_GLOBAL: ::c_int = 0x0100; +pub const RTLD_NOLOAD: ::c_int = 0x0004; + +pub const O_RDONLY: ::c_int = 0o000000; +pub const O_WRONLY: ::c_int = 0o000001; +pub const O_RDWR: ::c_int = 0o000002; + +pub const O_EXEC: ::c_int = 0o00003; +pub const O_ASYNC: ::c_int = 0o0200000; +pub const O_NDELAY: ::c_int = O_NONBLOCK; +pub const O_TRUNC: ::c_int = 0o001000; +pub const O_CLOEXEC: ::c_int = 0o020000; +pub const O_DIRECTORY: ::c_int = 0o4000000; +pub const O_ACCMODE: ::c_int = 0o000007; +pub const O_APPEND: ::c_int = 0o000010; +pub const O_CREAT: ::c_int = 0o000400; +pub const O_EXCL: ::c_int = 0o002000; +pub const O_NOCTTY: ::c_int = 0o004000; +pub const O_NONBLOCK: ::c_int = 0o000200; +pub const O_SYNC: ::c_int = 0o000040; +pub const O_RSYNC: ::c_int = 0o000100; +pub const O_DSYNC: ::c_int = 0o000020; +pub const O_NOFOLLOW: ::c_int = 0o010000; + +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + +pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_RAW: ::c_int = 3; +pub const SOCK_RDM: ::c_int = 4; +pub const SOCK_CLOEXEC: ::c_int = 0x10000000; + +pub const SA_SIGINFO: ::c_int = 0x0002; +pub const SA_NOCLDWAIT: ::c_int = 0x0020; +pub const SA_NODEFER: ::c_int = 0x0010; +pub const SA_RESETHAND: ::c_int = 0x0004; +pub const SA_NOCLDSTOP: ::c_int = 0x0001; + +pub const SIGTTIN: ::c_int = 26; +pub const SIGTTOU: ::c_int = 27; +pub const SIGXCPU: ::c_int = 30; +pub const SIGXFSZ: ::c_int = 31; +pub const SIGVTALRM: ::c_int = 28; +pub const SIGPROF: ::c_int = 29; +pub const SIGWINCH: ::c_int = 20; +pub const SIGCHLD: ::c_int = 18; +pub const SIGBUS: ::c_int = 10; +pub const SIGUSR1: ::c_int = 16; +pub const SIGUSR2: ::c_int = 17; +pub const SIGCONT: ::c_int = 25; +pub const SIGSTOP: ::c_int = 23; +pub const SIGTSTP: ::c_int = 24; +pub const SIGURG: ::c_int = 21; +pub const SIGIO: ::c_int = SIGPOLL; +pub const SIGSYS: ::c_int = 12; +pub const SIGPOLL: ::c_int = 22; +pub const SIGPWR: ::c_int = 19; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0; +pub const SIG_UNBLOCK: ::c_int = 1; + +pub const POLLWRNORM: ::c_short = ::POLLOUT; +pub const POLLWRBAND: ::c_short = 0x0010; + +pub const F_SETLK: ::c_int = 106; +pub const F_SETLKW: ::c_int = 107; +pub const F_ALLOCSP: ::c_int = 110; +pub const F_FREESP: ::c_int = 111; +pub const F_GETLK: ::c_int = 114; + +pub const F_RDLCK: ::c_int = 1; +pub const F_WRLCK: ::c_int = 2; +pub const F_UNLCK: ::c_int = 3; + +pub const NCCS: usize = 40; + +pub const MAP_ANON: ::c_int = MAP_ANONYMOUS; +pub const MAP_ANONYMOUS: ::c_int = 0x00080000; + +pub const MCL_CURRENT: ::c_int = 0x000000001; +pub const MCL_FUTURE: ::c_int = 0x000000002; + +pub const _TIO_CBAUD: ::tcflag_t = 15; +pub const CBAUD: ::tcflag_t = _TIO_CBAUD; +pub const TAB1: ::tcflag_t = 0x0800; +pub const TAB2: ::tcflag_t = 0x1000; +pub const TAB3: ::tcflag_t = 0x1800; +pub const CR1: ::tcflag_t = 0x200; +pub const CR2: ::tcflag_t = 0x400; +pub const CR3: ::tcflag_t = 0x600; +pub const FF1: ::tcflag_t = 0x8000; +pub const BS1: ::tcflag_t = 0x2000; +pub const VT1: ::tcflag_t = 0x4000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 17; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x00000004; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x10; +pub const CS7: ::tcflag_t = 0x20; +pub const CS8: ::tcflag_t = 0x30; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const OLCUC: ::tcflag_t = 0x00000002; +pub const NLDLY: ::tcflag_t = 0x00000100; +pub const CRDLY: ::tcflag_t = 0x00000600; +pub const TABDLY: ::tcflag_t = 0x00001800; +pub const BSDLY: ::tcflag_t = 0x00002000; +pub const FFDLY: ::tcflag_t = 0x00008000; +pub const VTDLY: ::tcflag_t = 0x00004000; +pub const XTABS: ::tcflag_t = 0x1800; + +pub const B0: ::speed_t = 0; +pub const B50: ::speed_t = 1; +pub const B75: ::speed_t = 2; +pub const B110: ::speed_t = 3; +pub const B134: ::speed_t = 4; +pub const B150: ::speed_t = 5; +pub const B200: ::speed_t = 6; +pub const B300: ::speed_t = 7; +pub const B600: ::speed_t = 8; +pub const B1200: ::speed_t = 9; +pub const B1800: ::speed_t = 10; +pub const B2400: ::speed_t = 11; +pub const B4800: ::speed_t = 12; +pub const B9600: ::speed_t = 13; +pub const B19200: ::speed_t = 14; +pub const B38400: ::speed_t = 15; +pub const EXTA: ::speed_t = 14; +pub const EXTB: ::speed_t = 15; +pub const B57600: ::speed_t = 57600; +pub const B115200: ::speed_t = 115200; + +pub const VEOL: usize = 5; +pub const VEOL2: usize = 6; +pub const VMIN: usize = 16; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; + +pub const TCSANOW: ::c_int = 0x0001; +pub const TCSADRAIN: ::c_int = 0x0002; +pub const TCSAFLUSH: ::c_int = 0x0004; + +pub const HW_MACHINE: ::c_int = 1; +pub const HW_MODEL: ::c_int = 2; +pub const HW_NCPU: ::c_int = 3; +pub const HW_BYTEORDER: ::c_int = 4; +pub const HW_PHYSMEM: ::c_int = 5; +pub const HW_USERMEM: ::c_int = 6; +pub const HW_PAGESIZE: ::c_int = 7; +pub const HW_DISKNAMES: ::c_int = 8; +pub const HW_IOSTATS: ::c_int = 9; +pub const HW_MACHINE_ARCH: ::c_int = 10; +pub const HW_ALIGNBYTES: ::c_int = 11; +pub const HW_CNMAGIC: ::c_int = 12; +pub const HW_PHYSMEM64: ::c_int = 13; +pub const HW_USERMEM64: ::c_int = 14; +pub const HW_IOSTATNAMES: ::c_int = 15; +pub const HW_MAXID: ::c_int = 15; + +pub const CTL_UNSPEC: ::c_int = 0; +pub const CTL_KERN: ::c_int = 1; +pub const CTL_VM: ::c_int = 2; +pub const CTL_VFS: ::c_int = 3; +pub const CTL_NET: ::c_int = 4; +pub const CTL_DEBUG: ::c_int = 5; +pub const CTL_HW: ::c_int = 6; +pub const CTL_MACHDEP: ::c_int = 7; +pub const CTL_USER: ::c_int = 8; +pub const CTL_QNX: ::c_int = 9; +pub const CTL_PROC: ::c_int = 10; +pub const CTL_VENDOR: ::c_int = 11; +pub const CTL_EMUL: ::c_int = 12; +pub const CTL_SECURITY: ::c_int = 13; +pub const CTL_MAXID: ::c_int = 14; + +pub const DAY_1: ::nl_item = 8; +pub const DAY_2: ::nl_item = 9; +pub const DAY_3: ::nl_item = 10; +pub const DAY_4: ::nl_item = 11; +pub const DAY_5: ::nl_item = 12; +pub const DAY_6: ::nl_item = 13; +pub const DAY_7: ::nl_item = 14; + +pub const MON_1: ::nl_item = 22; +pub const MON_2: ::nl_item = 23; +pub const MON_3: ::nl_item = 24; +pub const MON_4: ::nl_item = 25; +pub const MON_5: ::nl_item = 26; +pub const MON_6: ::nl_item = 27; +pub const MON_7: ::nl_item = 28; +pub const MON_8: ::nl_item = 29; +pub const MON_9: ::nl_item = 30; +pub const MON_10: ::nl_item = 31; +pub const MON_11: ::nl_item = 32; +pub const MON_12: ::nl_item = 33; + +pub const ABDAY_1: ::nl_item = 15; +pub const ABDAY_2: ::nl_item = 16; +pub const ABDAY_3: ::nl_item = 17; +pub const ABDAY_4: ::nl_item = 18; +pub const ABDAY_5: ::nl_item = 19; +pub const ABDAY_6: ::nl_item = 20; +pub const ABDAY_7: ::nl_item = 21; + +pub const ABMON_1: ::nl_item = 34; +pub const ABMON_2: ::nl_item = 35; +pub const ABMON_3: ::nl_item = 36; +pub const ABMON_4: ::nl_item = 37; +pub const ABMON_5: ::nl_item = 38; +pub const ABMON_6: ::nl_item = 39; +pub const ABMON_7: ::nl_item = 40; +pub const ABMON_8: ::nl_item = 41; +pub const ABMON_9: ::nl_item = 42; +pub const ABMON_10: ::nl_item = 43; +pub const ABMON_11: ::nl_item = 44; +pub const ABMON_12: ::nl_item = 45; + +pub const AF_ARP: ::c_int = 28; +pub const AF_CCITT: ::c_int = 10; +pub const AF_CHAOS: ::c_int = 5; +pub const AF_CNT: ::c_int = 21; +pub const AF_COIP: ::c_int = 20; +pub const AF_DATAKIT: ::c_int = 9; +pub const AF_DECnet: ::c_int = 12; +pub const AF_DLI: ::c_int = 13; +pub const AF_E164: ::c_int = 26; +pub const AF_ECMA: ::c_int = 8; +pub const AF_HYLINK: ::c_int = 15; +pub const AF_IEEE80211: ::c_int = 32; +pub const AF_IMPLINK: ::c_int = 3; +pub const AF_ISO: ::c_int = 7; +pub const AF_LAT: ::c_int = 14; +pub const AF_LINK: ::c_int = 18; +pub const AF_NATM: ::c_int = 27; +pub const AF_NS: ::c_int = 6; +pub const AF_OSI: ::c_int = 7; +pub const AF_PUP: ::c_int = 4; +pub const ALT_DIGITS: ::nl_item = 50; +pub const AM_STR: ::nl_item = 6; +pub const B76800: ::speed_t = 76800; + +pub const BIOCFLUSH: ::c_int = 17000; +pub const BIOCGBLEN: ::c_int = 1074020966; +pub const BIOCGDLT: ::c_int = 1074020970; +pub const BIOCGDLTLIST: ::c_int = -1072676233; +pub const BIOCGETIF: ::c_int = 1083196011; +pub const BIOCGHDRCMPLT: ::c_int = 1074020980; +pub const BIOCGRTIMEOUT: ::c_int = 1074807406; +pub const BIOCGSEESENT: ::c_int = 1074020984; +pub const BIOCGSTATS: ::c_int = 1082147439; +pub const BIOCIMMEDIATE: ::c_int = -2147204496; +pub const BIOCPROMISC: ::c_int = 17001; +pub const BIOCSBLEN: ::c_int = -1073462682; +pub const BIOCSDLT: ::c_int = -2147204490; +pub const BIOCSETF: ::c_int = -2146418073; +pub const BIOCSETIF: ::c_int = -2138029460; +pub const BIOCSHDRCMPLT: ::c_int = -2147204491; +pub const BIOCSRTIMEOUT: ::c_int = -2146418067; +pub const BIOCSSEESENT: ::c_int = -2147204487; +pub const BIOCVERSION: ::c_int = 1074020977; + +pub const BPF_ALIGNMENT: usize = ::mem::size_of::<::c_long>(); +pub const CHAR_BIT: usize = 8; +pub const CODESET: ::nl_item = 1; +pub const CRNCYSTR: ::nl_item = 55; + +pub const D_FLAG_FILTER: ::c_int = 0x00000001; +pub const D_FLAG_STAT: ::c_int = 0x00000002; +pub const D_FLAG_STAT_FORM_MASK: ::c_int = 0x000000f0; +pub const D_FLAG_STAT_FORM_T32_2001: ::c_int = 0x00000010; +pub const D_FLAG_STAT_FORM_T32_2008: ::c_int = 0x00000020; +pub const D_FLAG_STAT_FORM_T64_2008: ::c_int = 0x00000030; +pub const D_FLAG_STAT_FORM_UNSET: ::c_int = 0x00000000; + +pub const D_FMT: ::nl_item = 3; +pub const D_GETFLAG: ::c_int = 1; +pub const D_SETFLAG: ::c_int = 2; +pub const D_T_FMT: ::nl_item = 2; +pub const ERA: ::nl_item = 46; +pub const ERA_D_FMT: ::nl_item = 47; +pub const ERA_D_T_FMT: ::nl_item = 48; +pub const ERA_T_FMT: ::nl_item = 49; +pub const RADIXCHAR: ::nl_item = 51; +pub const THOUSEP: ::nl_item = 52; +pub const YESEXPR: ::nl_item = 53; +pub const NOEXPR: ::nl_item = 54; +pub const F_GETOWN: ::c_int = 35; + +pub const FIONBIO: ::c_int = -2147195266; +pub const FIOASYNC: ::c_int = -2147195267; +pub const FIOCLEX: ::c_int = 26113; +pub const FIOGETOWN: ::c_int = 1074030203; +pub const FIONCLEX: ::c_int = 26114; +pub const FIONREAD: ::c_int = 1074030207; +pub const FIONSPACE: ::c_int = 1074030200; +pub const FIONWRITE: ::c_int = 1074030201; +pub const FIOSETOWN: ::c_int = -2147195268; + +pub const F_SETOWN: ::c_int = 36; +pub const IFF_ACCEPTRTADV: ::c_int = 0x40000000; +pub const IFF_IP6FORWARDING: ::c_int = 0x20000000; +pub const IFF_LINK0: ::c_int = 0x00001000; +pub const IFF_LINK1: ::c_int = 0x00002000; +pub const IFF_LINK2: ::c_int = 0x00004000; +pub const IFF_OACTIVE: ::c_int = 0x00000400; +pub const IFF_SHIM: ::c_int = 0x80000000; +pub const IFF_SIMPLEX: ::c_int = 0x00000800; +pub const IHFLOW: tcflag_t = 0x00000001; +pub const IIDLE: tcflag_t = 0x00000008; +pub const IP_RECVDSTADDR: ::c_int = 7; +pub const IP_RECVIF: ::c_int = 20; +pub const IPTOS_ECN_NOTECT: u8 = 0x00; +pub const IUCLC: tcflag_t = 0x00000200; +pub const IUTF8: tcflag_t = 0x0004000; + +pub const KERN_ARGMAX: ::c_int = 8; +pub const KERN_ARND: ::c_int = 81; +pub const KERN_BOOTTIME: ::c_int = 21; +pub const KERN_CLOCKRATE: ::c_int = 12; +pub const KERN_FILE: ::c_int = 15; +pub const KERN_HOSTID: ::c_int = 11; +pub const KERN_HOSTNAME: ::c_int = 10; +pub const KERN_IOV_MAX: ::c_int = 38; +pub const KERN_JOB_CONTROL: ::c_int = 19; +pub const KERN_LOGSIGEXIT: ::c_int = 46; +pub const KERN_MAXFILES: ::c_int = 7; +pub const KERN_MAXID: ::c_int = 83; +pub const KERN_MAXPROC: ::c_int = 6; +pub const KERN_MAXVNODES: ::c_int = 5; +pub const KERN_NGROUPS: ::c_int = 18; +pub const KERN_OSRELEASE: ::c_int = 2; +pub const KERN_OSREV: ::c_int = 3; +pub const KERN_OSTYPE: ::c_int = 1; +pub const KERN_POSIX1: ::c_int = 17; +pub const KERN_PROC: ::c_int = 14; +pub const KERN_PROC_ALL: ::c_int = 0; +pub const KERN_PROC_ARGS: ::c_int = 48; +pub const KERN_PROC_ENV: ::c_int = 3; +pub const KERN_PROC_GID: ::c_int = 7; +pub const KERN_PROC_PGRP: ::c_int = 2; +pub const KERN_PROC_PID: ::c_int = 1; +pub const KERN_PROC_RGID: ::c_int = 8; +pub const KERN_PROC_RUID: ::c_int = 6; +pub const KERN_PROC_SESSION: ::c_int = 3; +pub const KERN_PROC_TTY: ::c_int = 4; +pub const KERN_PROC_UID: ::c_int = 5; +pub const KERN_PROF: ::c_int = 16; +pub const KERN_SAVED_IDS: ::c_int = 20; +pub const KERN_SECURELVL: ::c_int = 9; +pub const KERN_VERSION: ::c_int = 4; +pub const KERN_VNODE: ::c_int = 13; + +pub const LC_ALL: ::c_int = 63; +pub const LC_COLLATE: ::c_int = 1; +pub const LC_CTYPE: ::c_int = 2; +pub const LC_MESSAGES: ::c_int = 32; +pub const LC_MONETARY: ::c_int = 4; +pub const LC_NUMERIC: ::c_int = 8; +pub const LC_TIME: ::c_int = 16; + +pub const LOCAL_CONNWAIT: ::c_int = 0x0002; +pub const LOCAL_CREDS: ::c_int = 0x0001; +pub const LOCAL_PEEREID: ::c_int = 0x0003; + +pub const MAP_STACK: ::c_int = 0x00001000; +pub const MNT_NOEXEC: ::c_int = 0x02; +pub const MNT_NOSUID: ::c_int = 0x04; +pub const MNT_RDONLY: ::c_int = 0x01; + +pub const MSG_NOTIFICATION: ::c_int = 0x0400; + +pub const NET_RT_DUMP: ::c_int = 1; +pub const NET_RT_FLAGS: ::c_int = 2; +pub const NET_RT_IFLIST: ::c_int = 4; +pub const NI_NUMERICSCOPE: ::c_int = 0x00000040; +pub const OHFLOW: tcflag_t = 0x00000002; +pub const P_ALL: idtype_t = 0; +pub const PARSTK: tcflag_t = 0x00000004; +pub const PF_ARP: ::c_int = 28; +pub const PF_CCITT: ::c_int = 10; +pub const PF_CHAOS: ::c_int = 5; +pub const PF_CNT: ::c_int = 21; +pub const PF_COIP: ::c_int = 20; +pub const PF_DATAKIT: ::c_int = 9; +pub const PF_DECnet: ::c_int = 12; +pub const PF_DLI: ::c_int = 13; +pub const PF_ECMA: ::c_int = 8; +pub const PF_HYLINK: ::c_int = 15; +pub const PF_IMPLINK: ::c_int = 3; +pub const PF_ISO: ::c_int = 7; +pub const PF_LAT: ::c_int = 14; +pub const PF_LINK: ::c_int = 18; +pub const PF_NATM: ::c_int = 27; +pub const PF_OSI: ::c_int = 7; +pub const PF_PIP: ::c_int = 25; +pub const PF_PUP: ::c_int = 4; +pub const PF_RTIP: ::c_int = 22; +pub const PF_XTP: ::c_int = 19; +pub const PM_STR: ::nl_item = 7; +pub const POSIX_MADV_DONTNEED: ::c_int = 4; +pub const POSIX_MADV_NORMAL: ::c_int = 0; +pub const POSIX_MADV_RANDOM: ::c_int = 2; +pub const POSIX_MADV_SEQUENTIAL: ::c_int = 1; +pub const POSIX_MADV_WILLNEED: ::c_int = 3; +pub const _POSIX_VDISABLE: ::c_int = 0; +pub const P_PGID: idtype_t = 2; +pub const P_PID: idtype_t = 1; +pub const PRIO_PGRP: ::c_int = 1; +pub const PRIO_PROCESS: ::c_int = 0; +pub const PRIO_USER: ::c_int = 2; +pub const pseudo_AF_HDRCMPLT: ::c_int = 30; +pub const pseudo_AF_PIP: ::c_int = 25; +pub const pseudo_AF_RTIP: ::c_int = 22; +pub const pseudo_AF_XTP: ::c_int = 19; +pub const REG_ASSERT: ::c_int = 15; +pub const REG_ATOI: ::c_int = 255; +pub const REG_BACKR: ::c_int = 0x400; +pub const REG_BASIC: ::c_int = 0x00; +pub const REG_DUMP: ::c_int = 0x80; +pub const REG_EMPTY: ::c_int = 14; +pub const REG_INVARG: ::c_int = 16; +pub const REG_ITOA: ::c_int = 0o400; +pub const REG_LARGE: ::c_int = 0x200; +pub const REG_NOSPEC: ::c_int = 0x10; +pub const REG_OK: ::c_int = 0; +pub const REG_PEND: ::c_int = 0x20; +pub const REG_TRACE: ::c_int = 0x100; + +pub const RLIMIT_AS: ::c_int = 6; +pub const RLIMIT_CORE: ::c_int = 4; +pub const RLIMIT_CPU: ::c_int = 0; +pub const RLIMIT_DATA: ::c_int = 2; +pub const RLIMIT_FSIZE: ::c_int = 1; +pub const RLIMIT_MEMLOCK: ::c_int = 7; +pub const RLIMIT_NOFILE: ::c_int = 5; +pub const RLIMIT_NPROC: ::c_int = 8; +pub const RLIMIT_RSS: ::c_int = 6; +pub const RLIMIT_STACK: ::c_int = 3; +pub const RLIMIT_VMEM: ::c_int = 6; +pub const RLIM_NLIMITS: ::c_int = 14; + +pub const SCHED_ADJTOHEAD: ::c_int = 5; +pub const SCHED_ADJTOTAIL: ::c_int = 6; +pub const SCHED_MAXPOLICY: ::c_int = 7; +pub const SCHED_SETPRIO: ::c_int = 7; +pub const SCHED_SPORADIC: ::c_int = 4; + +pub const SHM_ANON: *mut ::c_char = -1isize as *mut ::c_char; +pub const SIGCLD: ::c_int = SIGCHLD; +pub const SIGDEADLK: ::c_int = 7; +pub const SIGEMT: ::c_int = 7; +pub const SIGEV_NONE: ::c_int = 0; +pub const SIGEV_SIGNAL: ::c_int = 129; +pub const SIGEV_THREAD: ::c_int = 135; +pub const SIOCGIFADDR: ::c_int = -1064277727; +pub const SO_FIB: ::c_int = 0x100a; +pub const SO_OVERFLOWED: ::c_int = 0x1009; +pub const SO_SETFIB: ::c_int = 0x100a; +pub const SO_TXPRIO: ::c_int = 0x100b; +pub const SO_USELOOPBACK: ::c_int = 0x0040; +pub const SO_VLANPRIO: ::c_int = 0x100c; +pub const _SS_ALIGNSIZE: usize = ::mem::size_of::(); +pub const _SS_MAXSIZE: usize = 128; +pub const _SS_PAD1SIZE: usize = _SS_ALIGNSIZE - 2; +pub const _SS_PAD2SIZE: usize = _SS_MAXSIZE - 2 - _SS_PAD1SIZE - _SS_ALIGNSIZE; +pub const TC_CPOSIX: tcflag_t = CLOCAL | CREAD | CSIZE | CSTOPB | HUPCL | PARENB | PARODD; +pub const TCGETS: ::c_int = 0x404c540d; +pub const TC_IPOSIX: tcflag_t = + BRKINT | ICRNL | IGNBRK | IGNPAR | INLCR | INPCK | ISTRIP | IXOFF | IXON | PARMRK; +pub const TC_LPOSIX: tcflag_t = + ECHO | ECHOE | ECHOK | ECHONL | ICANON | IEXTEN | ISIG | NOFLSH | TOSTOP; +pub const TC_OPOSIX: tcflag_t = OPOST; +pub const T_FMT_AMPM: ::nl_item = 5; + +pub const TIOCCBRK: ::c_int = 29818; +pub const TIOCCDTR: ::c_int = 29816; +pub const TIOCDRAIN: ::c_int = 29790; +pub const TIOCEXCL: ::c_int = 29709; +pub const TIOCFLUSH: ::c_int = -2147191792; +pub const TIOCGETA: ::c_int = 1078752275; +pub const TIOCGPGRP: ::c_int = 1074033783; +pub const TIOCGWINSZ: ::c_int = 1074295912; +pub const TIOCMBIC: ::c_int = -2147191701; +pub const TIOCMBIS: ::c_int = -2147191700; +pub const TIOCMGET: ::c_int = 1074033770; +pub const TIOCMSET: ::c_int = -2147191699; +pub const TIOCNOTTY: ::c_int = 29809; +pub const TIOCNXCL: ::c_int = 29710; +pub const TIOCOUTQ: ::c_int = 1074033779; +pub const TIOCPKT: ::c_int = -2147191696; +pub const TIOCPKT_DATA: ::c_int = 0x00; +pub const TIOCPKT_DOSTOP: ::c_int = 0x20; +pub const TIOCPKT_FLUSHREAD: ::c_int = 0x01; +pub const TIOCPKT_FLUSHWRITE: ::c_int = 0x02; +pub const TIOCPKT_IOCTL: ::c_int = 0x40; +pub const TIOCPKT_NOSTOP: ::c_int = 0x10; +pub const TIOCPKT_START: ::c_int = 0x08; +pub const TIOCPKT_STOP: ::c_int = 0x04; +pub const TIOCSBRK: ::c_int = 29819; +pub const TIOCSCTTY: ::c_int = 29793; +pub const TIOCSDTR: ::c_int = 29817; +pub const TIOCSETA: ::c_int = -2142473196; +pub const TIOCSETAF: ::c_int = -2142473194; +pub const TIOCSETAW: ::c_int = -2142473195; +pub const TIOCSPGRP: ::c_int = -2147191690; +pub const TIOCSTART: ::c_int = 29806; +pub const TIOCSTI: ::c_int = -2147388302; +pub const TIOCSTOP: ::c_int = 29807; +pub const TIOCSWINSZ: ::c_int = -2146929561; + +pub const USER_CS_PATH: ::c_int = 1; +pub const USER_BC_BASE_MAX: ::c_int = 2; +pub const USER_BC_DIM_MAX: ::c_int = 3; +pub const USER_BC_SCALE_MAX: ::c_int = 4; +pub const USER_BC_STRING_MAX: ::c_int = 5; +pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6; +pub const USER_EXPR_NEST_MAX: ::c_int = 7; +pub const USER_LINE_MAX: ::c_int = 8; +pub const USER_RE_DUP_MAX: ::c_int = 9; +pub const USER_POSIX2_VERSION: ::c_int = 10; +pub const USER_POSIX2_C_BIND: ::c_int = 11; +pub const USER_POSIX2_C_DEV: ::c_int = 12; +pub const USER_POSIX2_CHAR_TERM: ::c_int = 13; +pub const USER_POSIX2_FORT_DEV: ::c_int = 14; +pub const USER_POSIX2_FORT_RUN: ::c_int = 15; +pub const USER_POSIX2_LOCALEDEF: ::c_int = 16; +pub const USER_POSIX2_SW_DEV: ::c_int = 17; +pub const USER_POSIX2_UPE: ::c_int = 18; +pub const USER_STREAM_MAX: ::c_int = 19; +pub const USER_TZNAME_MAX: ::c_int = 20; +pub const USER_ATEXIT_MAX: ::c_int = 21; +pub const USER_MAXID: ::c_int = 22; + +pub const VDOWN: usize = 31; +pub const VINS: usize = 32; +pub const VDEL: usize = 33; +pub const VRUB: usize = 34; +pub const VCAN: usize = 35; +pub const VHOME: usize = 36; +pub const VEND: usize = 37; +pub const VSPARE3: usize = 38; +pub const VSPARE4: usize = 39; +pub const VSWTCH: usize = 7; +pub const VDSUSP: usize = 11; +pub const VFWD: usize = 18; +pub const VLOGIN: usize = 19; +pub const VPREFIX: usize = 20; +pub const VSUFFIX: usize = 24; +pub const VLEFT: usize = 28; +pub const VRIGHT: usize = 29; +pub const VUP: usize = 30; +pub const XCASE: tcflag_t = 0x00000004; + +pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0x00; +pub const PTHREAD_CREATE_DETACHED: ::c_int = 0x01; + +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3; +pub const PTHREAD_STACK_MIN: ::size_t = 256; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = 0; +pub const PTHREAD_MUTEX_STALLED: ::c_int = 0x00; +pub const PTHREAD_MUTEX_ROBUST: ::c_int = 0x10; +pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0x00; +pub const PTHREAD_PROCESS_SHARED: ::c_int = 0x01; + +pub const PTHREAD_KEYS_MAX: usize = 128; + +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + __u: 0x80000000, + __owner: 0xffffffff, +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + __u: CLOCK_REALTIME as u32, + __owner: 0xfffffffb, +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + __active: 0, + __blockedwriters: 0, + __blockedreaders: 0, + __heavy: 0, + __lock: PTHREAD_MUTEX_INITIALIZER, + __rcond: PTHREAD_COND_INITIALIZER, + __wcond: PTHREAD_COND_INITIALIZER, + __owner: -2i32 as ::c_uint, + __spare: 0, +}; + +const_fn! { + {const} fn _CMSG_ALIGN(len: usize) -> usize { + len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) + } + + {const} fn _ALIGN(p: usize, b: usize) -> usize { + (p + b - 1) & !(b-1) + } +} + +f! { + pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { + if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { + (*mhdr).msg_control as *mut cmsghdr + } else { + 0 as *mut cmsghdr + } + } + + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) + -> *mut ::cmsghdr + { + let msg = _CMSG_ALIGN((*cmsg).cmsg_len as usize); + let next = cmsg as usize + msg + _CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); + if next > (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize { + 0 as *mut ::cmsghdr + } else { + (cmsg as usize + msg) as *mut ::cmsghdr + } + } + + pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { + (cmsg as *mut ::c_uchar) + .offset(_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + } + + pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { + _CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length + } + + pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + (_CMSG_ALIGN(::mem::size_of::()) + _CMSG_ALIGN(length as usize) ) + as ::c_uint + } + + pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] &= !(1 << (fd % size)); + return + } + + pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 + } + + pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] |= 1 << (fd % size); + return + } + + pub fn FD_ZERO(set: *mut fd_set) -> () { + for slot in (*set).fds_bits.iter_mut() { + *slot = 0; + } + } + + pub fn _DEXTRA_FIRST(_d: *const dirent) -> *mut ::dirent_extra { + let _f = &((*(_d)).d_name) as *const _; + let _s = _d as usize; + + _ALIGN(_s + _f as usize - _s + (*_d).d_namelen as usize + 1, 8) as *mut ::dirent_extra + } + + pub fn _DEXTRA_VALID(_x: *const ::dirent_extra, _d: *const dirent) -> bool { + let sz = _x as usize - _d as usize + ::mem::size_of::<::dirent_extra>(); + let rsz = (*_d).d_reclen as usize; + + if sz > rsz || sz + (*_x).d_datalen as usize > rsz { + false + } else { + true + } + } + + pub fn _DEXTRA_NEXT(_x: *const ::dirent_extra) -> *mut ::dirent_extra { + _ALIGN( + _x as usize + ::mem::size_of::<::dirent_extra>() + (*_x).d_datalen as usize, 8 + ) as *mut ::dirent_extra + } + + pub fn SOCKCREDSIZE(ngrps: usize) -> usize { + let ngrps = if ngrps > 0 { + ngrps - 1 + } else { + 0 + }; + ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps + } +} + +safe_f! { + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + (status & 0xff) == 0x7f + } + + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } + + pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + status == 0xffff + } + + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + ((status & 0x7f) + 1) as i8 >= 2 + } + + pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + status & 0x7f + } + + pub {const} fn WIFEXITED(status: ::c_int) -> bool { + (status & 0x7f) == 0 + } + + pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } + + pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + (status & 0x80) != 0 + } + + pub {const} fn IPTOS_ECN(x: u8) -> u8 { + x & ::IPTOS_ECN_MASK + } +} + +// Network related functions are provided by libsocket and regex +// functions are provided by libregex. +#[link(name = "socket")] +#[link(name = "regex")] + +extern "C" { + pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; + pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + pub fn fdatasync(fd: ::c_int) -> ::c_int; + pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; + pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; + pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + + pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; + + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; + pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; + + pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; + + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_mutexattr_setpshared( + attr: *mut pthread_mutexattr_t, + pshared: ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_getpshared( + attr: *const pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; + pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> *mut ::c_char; + pub fn clearenv() -> ::c_int; + pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) + -> ::c_int; + pub fn wait4( + pid: ::pid_t, + status: *mut ::c_int, + options: ::c_int, + rusage: *mut ::rusage, + ) -> ::pid_t; + pub fn execvpe( + file: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + + pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; + pub fn freeifaddrs(ifa: *mut ::ifaddrs); + pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; + + pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + + pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::c_int; + pub fn forkpty( + amaster: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::pid_t; + pub fn login_tty(fd: ::c_int) -> ::c_int; + + pub fn uname(buf: *mut ::utsname) -> ::c_int; + + pub fn getpeereid(socket: ::c_int, euid: *mut ::uid_t, egid: *mut ::gid_t) -> ::c_int; + + pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + + pub fn abs(i: ::c_int) -> ::c_int; + pub fn labs(i: ::c_long) -> ::c_long; + pub fn rand() -> ::c_int; + pub fn srand(seed: ::c_uint); + + pub fn setpwent(); + pub fn endpwent(); + pub fn getpwent() -> *mut passwd; + pub fn setgrent(); + pub fn endgrent(); + pub fn getgrent() -> *mut ::group; + pub fn setspent(); + pub fn endspent(); + + pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; + + pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + + pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; + pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + pub fn pthread_setschedprio(native: ::pthread_t, priority: ::c_int) -> ::c_int; + + pub fn if_nameindex() -> *mut if_nameindex; + pub fn if_freenameindex(ptr: *mut if_nameindex); + + pub fn glob( + pattern: *const c_char, + flags: ::c_int, + errfunc: ::Option ::c_int>, + pglob: *mut ::glob_t, + ) -> ::c_int; + pub fn globfree(pglob: *mut ::glob_t); + + pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + + pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + + pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + + pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + + pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; + pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; + + pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; + pub fn sync(); + pub fn pthread_getschedparam( + native: ::pthread_t, + policy: *mut ::c_int, + param: *mut ::sched_param, + ) -> ::c_int; + pub fn umount(target: *const ::c_char, flags: ::c_int) -> ::c_int; + pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; + pub fn settimeofday(tv: *const ::timeval, tz: *const ::c_void) -> ::c_int; + pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + pub fn mount( + special_device: *const ::c_char, + mount_directory: *const ::c_char, + flags: ::c_int, + mount_type: *const ::c_char, + mount_data: *const ::c_void, + mount_datalen: ::c_int, + ) -> ::c_int; + pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; + pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_barrierattr_init(__attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_destroy(__attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_getpshared( + __attr: *const ::pthread_barrierattr_t, + __pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_barrierattr_setpshared( + __attr: *mut ::pthread_barrierattr_t, + __pshared: ::c_int, + ) -> ::c_int; + pub fn pthread_barrier_init( + __barrier: *mut ::pthread_barrier_t, + __attr: *const ::pthread_barrierattr_t, + __count: ::c_uint, + ) -> ::c_int; + pub fn pthread_barrier_destroy(__barrier: *mut ::pthread_barrier_t) -> ::c_int; + pub fn pthread_barrier_wait(__barrier: *mut ::pthread_barrier_t) -> ::c_int; + + pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; + pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; + pub fn pthread_condattr_getpshared( + attr: *const pthread_condattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_setschedparam( + native: ::pthread_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn sem_close(sem: *mut sem_t) -> ::c_int; + pub fn getdtablesize() -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; + pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; + pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; + pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; + pub fn sem_unlink(name: *const ::c_char) -> ::c_int; + pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + pub fn getgrouplist( + user: *const ::c_char, + group: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_getpshared( + attr: *const pthread_mutexattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_getrobust( + attr: *const pthread_mutexattr_t, + robustness: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setrobust( + attr: *mut pthread_mutexattr_t, + robustness: ::c_int, + ) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int; + pub fn setitimer( + which: ::c_int, + value: *const ::itimerval, + ovalue: *mut ::itimerval, + ) -> ::c_int; + pub fn posix_spawn( + pid: *mut ::pid_t, + path: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnp( + pid: *mut ::pid_t, + file: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_getsigdefault( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getflags( + attr: *const posix_spawnattr_t, + flags: *mut ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; + pub fn posix_spawnattr_getpgroup( + attr: *const posix_spawnattr_t, + flags: *mut ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; + pub fn posix_spawnattr_getschedpolicy( + attr: *const posix_spawnattr_t, + flags: *mut ::c_int, + ) -> ::c_int; + pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; + pub fn posix_spawnattr_getschedparam( + attr: *const posix_spawnattr_t, + param: *mut ::sched_param, + ) -> ::c_int; + pub fn posix_spawnattr_setschedparam( + attr: *mut posix_spawnattr_t, + param: *const ::sched_param, + ) -> ::c_int; + + pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_addopen( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + path: *const ::c_char, + oflag: ::c_int, + mode: ::mode_t, + ) -> ::c_int; + pub fn posix_spawn_file_actions_addclose( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + ) -> ::c_int; + pub fn posix_spawn_file_actions_adddup2( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + newfd: ::c_int, + ) -> ::c_int; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn faccessat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn inotify_rm_watch(fd: ::c_int, wd: ::c_int) -> ::c_int; + pub fn inotify_init() -> ::c_int; + pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int; + + pub fn gettid() -> ::pid_t; + + pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; + + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_uint, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_uint, + timeout: *mut ::timespec, + ) -> ::c_int; + + pub fn mallopt(param: ::c_int, value: i64) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + + pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; + pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; + + pub fn mallinfo() -> ::mallinfo; + pub fn getpwent_r( + pwd: *mut ::passwd, + buf: *mut ::c_char, + __bufsize: ::c_int, + __result: *mut *mut ::passwd, + ) -> ::c_int; + pub fn pthread_getname_np(thread: ::pthread_t, name: *mut ::c_char, len: ::c_int) -> ::c_int; + pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int; + + pub fn sysctl( + _: *const ::c_int, + _: ::c_uint, + _: *mut ::c_void, + _: *mut ::size_t, + _: *const ::c_void, + _: ::size_t, + ) -> ::c_int; + + pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; + pub fn setrlimit(resource: ::c_int, rlp: *const ::rlimit) -> ::c_int; + + pub fn lio_listio( + __mode: ::c_int, + __list: *const *mut aiocb, + __nent: ::c_int, + __sig: *mut sigevent, + ) -> ::c_int; + + pub fn dl_iterate_phdr( + callback: ::Option< + unsafe extern "C" fn( + info: *const dl_phdr_info, + size: ::size_t, + data: *mut ::c_void, + ) -> ::c_int, + >, + data: *mut ::c_void, + ) -> ::c_int; + + pub fn memset_s(s: *mut ::c_void, smax: ::size_t, c: ::c_int, n: ::size_t) -> ::c_int; + + pub fn regcomp( + __preg: *mut ::regex_t, + __pattern: *const ::c_char, + __cflags: ::c_int, + ) -> ::c_int; + pub fn regexec( + __preg: *const ::regex_t, + __str: *const ::c_char, + __nmatch: ::size_t, + __pmatch: *mut ::regmatch_t, + __eflags: ::c_int, + ) -> ::c_int; + pub fn regerror( + __errcode: ::c_int, + __preg: *const ::regex_t, + __errbuf: *mut ::c_char, + __errbuf_size: ::size_t, + ) -> ::size_t; + pub fn regfree(__preg: *mut ::regex_t); + pub fn dirfd(__dirp: *mut ::DIR) -> ::c_int; + pub fn dircntl(dir: *mut ::DIR, cmd: ::c_int, ...) -> ::c_int; + + pub fn aio_cancel(__fd: ::c_int, __aiocbp: *mut ::aiocb) -> ::c_int; + pub fn aio_error(__aiocbp: *const ::aiocb) -> ::c_int; + pub fn aio_fsync(__operation: ::c_int, __aiocbp: *mut ::aiocb) -> ::c_int; + pub fn aio_read(__aiocbp: *mut ::aiocb) -> ::c_int; + pub fn aio_return(__aiocpb: *mut ::aiocb) -> ::ssize_t; + pub fn aio_suspend( + __list: *const *const ::aiocb, + __nent: ::c_int, + __timeout: *const ::timespec, + ) -> ::c_int; + pub fn aio_write(__aiocpb: *mut ::aiocb) -> ::c_int; + + pub fn mq_close(__mqdes: ::mqd_t) -> ::c_int; + pub fn mq_getattr(__mqdes: ::mqd_t, __mqstat: *mut ::mq_attr) -> ::c_int; + pub fn mq_notify(__mqdes: ::mqd_t, __notification: *const ::sigevent) -> ::c_int; + pub fn mq_open(__name: *const ::c_char, __oflag: ::c_int, ...) -> ::mqd_t; + pub fn mq_receive( + __mqdes: ::mqd_t, + __msg_ptr: *mut ::c_char, + __msg_len: ::size_t, + __msg_prio: *mut ::c_uint, + ) -> ::ssize_t; + pub fn mq_send( + __mqdes: ::mqd_t, + __msg_ptr: *const ::c_char, + __msg_len: ::size_t, + __msg_prio: ::c_uint, + ) -> ::c_int; + pub fn mq_setattr( + __mqdes: ::mqd_t, + __mqstat: *const mq_attr, + __omqstat: *mut mq_attr, + ) -> ::c_int; + pub fn mq_timedreceive( + __mqdes: ::mqd_t, + __msg_ptr: *mut ::c_char, + __msg_len: ::size_t, + __msg_prio: *mut ::c_uint, + __abs_timeout: *const ::timespec, + ) -> ::ssize_t; + pub fn mq_timedsend( + __mqdes: ::mqd_t, + __msg_ptr: *const ::c_char, + __msg_len: ::size_t, + __msg_prio: ::c_uint, + __abs_timeout: *const ::timespec, + ) -> ::c_int; + pub fn mq_unlink(__name: *const ::c_char) -> ::c_int; + pub fn __get_errno_ptr() -> *mut ::c_int; + + // System page, see https://www.qnx.com/developers/docs/7.1#com.qnx.doc.neutrino.building/topic/syspage/syspage_about.html + pub static mut _syspage_ptr: *mut syspage_entry; + + // Function on the stack after a call to pthread_create(). This is used + // as a sentinel to work around an infitnite loop in the unwinding code. + pub fn __my_thread_exit(value_ptr: *mut *const ::c_void); +} + +// Models the implementation in stdlib.h. Ctest will fail if trying to use the +// default symbol from libc +pub unsafe fn atexit(cb: extern "C" fn()) -> ::c_int { + extern "C" { + static __dso_handle: *mut ::c_void; + pub fn __cxa_atexit( + cb: extern "C" fn(), + __arg: *mut ::c_void, + __dso: *mut ::c_void, + ) -> ::c_int; + } + __cxa_atexit(cb, 0 as *mut ::c_void, __dso_handle) +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + #[repr(C)] + struct siginfo_si_addr { + _pad: [u8; 32], + si_addr: *mut ::c_void, + } + (*(self as *const siginfo_t as *const siginfo_si_addr)).si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_si_value { + _pad: [u8; 32], + si_value: ::sigval, + } + (*(self as *const siginfo_t as *const siginfo_si_value)).si_value + } + + pub unsafe fn si_pid(&self) -> ::pid_t { + #[repr(C)] + struct siginfo_si_pid { + _pad: [u8; 16], + si_pid: ::pid_t, + } + (*(self as *const siginfo_t as *const siginfo_si_pid)).si_pid + } + + pub unsafe fn si_uid(&self) -> ::uid_t { + #[repr(C)] + struct siginfo_si_uid { + _pad: [u8; 24], + si_uid: ::uid_t, + } + (*(self as *const siginfo_t as *const siginfo_si_uid)).si_uid + } + + pub unsafe fn si_status(&self) -> ::c_int { + #[repr(C)] + struct siginfo_si_status { + _pad: [u8; 28], + si_status: ::c_int, + } + (*(self as *const siginfo_t as *const siginfo_si_status)).si_status + } +} + +cfg_if! { + if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } + else if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } + else { + panic!("Unsupported arch"); + } +} + +mod neutrino; +pub use self::neutrino::*; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/nto/neutrino.rs b/src/rust/vendor/libc-0.2.146/src/unix/nto/neutrino.rs new file mode 100644 index 000000000..cedd21659 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/nto/neutrino.rs @@ -0,0 +1,1288 @@ +pub type nto_job_t = ::sync_t; + +s! { + pub struct intrspin { + pub value: ::c_uint, // volatile + } + + pub struct iov_t { + pub iov_base: *mut ::c_void, // union + pub iov_len: ::size_t, + } + + pub struct _itimer { + pub nsec: u64, + pub interval_nsec: u64, + } + + pub struct _msg_info64 { + pub nd: u32, + pub srcnd: u32, + pub pid: ::pid_t, + pub tid: i32, + pub chid: i32, + pub scoid: i32, + pub coid: i32, + pub priority: i16, + pub flags: i16, + pub msglen: isize, + pub srcmsglen: isize, + pub dstmsglen: isize, + pub type_id: u32, + reserved: u32, + } + + pub struct _cred_info { + pub ruid: ::uid_t, + pub euid: ::uid_t, + pub suid: ::uid_t, + pub rgid: ::gid_t, + pub egid: ::gid_t, + pub sgid: ::gid_t, + pub ngroups: u32, + pub grouplist: [::gid_t; 8], + } + + pub struct _client_info { + pub nd: u32, + pub pid: ::pid_t, + pub sid: ::pid_t, + pub flags: u32, + pub cred: ::_cred_info, + } + + pub struct _client_able { + pub ability: u32, + pub flags: u32, + pub range_lo: u64, + pub range_hi: u64, + } + + pub struct nto_channel_config { + pub event: ::sigevent, + pub num_pulses: ::c_uint, + pub rearm_threshold: ::c_uint, + pub options: ::c_uint, + reserved: [::c_uint; 3], + } + + // TODO: The following structures are defined in a header file which doesn't + // appear as part of the default headers found in a standard installation + // of Neutrino 7.1 SDP. Commented out for now. + //pub struct _asyncmsg_put_header { + // pub err: ::c_int, + // pub iov: *mut ::iov_t, + // pub parts: ::c_int, + // pub handle: ::c_uint, + // pub cb: ::Option< + // unsafe extern "C" fn( + // err: ::c_int, + // buf: *mut ::c_void, + // handle: ::c_uint, + // ) -> ::c_int>, + // pub put_hdr_flags: ::c_uint, + //} + + //pub struct _asyncmsg_connection_attr { + // pub call_back: ::Option< + // unsafe extern "C" fn( + // err: ::c_int, + // buff: *mut ::c_void, + // handle: ::c_uint, + // ) -> ::c_int>, + // pub buffer_size: ::size_t, + // pub max_num_buffer: ::c_uint, + // pub trigger_num_msg: ::c_uint, + // pub trigger_time: ::_itimer, + // reserve: ::c_uint, + //} + + //pub struct _asyncmsg_connection_descriptor { + // pub flags: ::c_uint, + // pub sendq_size: ::c_uint, + // pub sendq_head: ::c_uint, + // pub sendq_tail: ::c_uint, + // pub sendq_free: ::c_uint, + // pub err: ::c_int, + // pub ev: ::sigevent, + // pub num_curmsg: ::c_uint, + // pub ttimer: ::timer_t, + // pub block_con: ::pthread_cond_t, + // pub mu: ::pthread_mutex_t, + // reserved: ::c_uint, + // pub attr: ::_asyncmsg_connection_attr, + // pub reserves: [::c_uint; 3], + // pub sendq: [::_asyncmsg_put_header; 1], // flexarray + //} + + pub struct __c_anonymous_struct_ev { + pub event: ::sigevent, + pub coid: ::c_int, + } + + pub struct _channel_connect_attr { // union + pub ev: ::__c_anonymous_struct_ev, + } + + pub struct _sighandler_info { + pub siginfo: ::siginfo_t, + pub handler: ::Option, + pub context: *mut ::c_void, + } + + pub struct __c_anonymous_struct_time { + pub length: ::c_uint, + pub scale: ::c_uint, + } + + pub struct _idle_hook { + pub hook_size: ::c_uint, + pub cmd: ::c_uint, + pub mode: ::c_uint, + pub latency: ::c_uint, + pub next_fire: u64, + pub curr_time: u64, + pub tod_adjust: u64, + pub resp: ::c_uint, + pub time: __c_anonymous_struct_time, + pub trigger: ::sigevent, + pub intrs: *mut ::c_uint, + pub block_stack_size: ::c_uint, + } + + pub struct _clockadjust { + pub tick_count: u32, + pub tick_nsec_inc: i32, + } + + pub struct qtime_entry { + pub cycles_per_sec: u64, + pub nsec_tod_adjust: u64, // volatile + pub nsec: u64, // volatile + pub nsec_inc: u32, + pub boot_time: u32, + pub adjust: _clockadjust, + pub timer_rate: u32, + pub timer_scale: i32, + pub timer_load: u32, + pub intr: i32, + pub epoch: u32, + pub flags: u32, + pub rr_interval_mul: u32, + pub timer_load_hi: u32, + pub nsec_stable: u64, // volatile + pub timer_load_max: u64, + pub timer_prog_time: u32, + spare: [u32; 7], + } + + pub struct _sched_info { + pub priority_min: ::c_int, + pub priority_max: ::c_int, + pub interval: u64, + pub priority_priv: ::c_int, + reserved: [::c_int; 11], + } + + pub struct _timer_info { + pub itime: ::_itimer, + pub otime: ::_itimer, + pub flags: u32, + pub tid: i32, + pub notify: i32, + pub clockid: ::clockid_t, + pub overruns: u32, + pub event: ::sigevent, // union + } + + pub struct _clockperiod { + pub nsec: u32, + pub fract: i32, + } +} + +s_no_extra_traits! { + pub struct syspage_entry_info { + pub entry_off: u16, + pub entry_size: u16, + } + + pub struct syspage_array_info { + entry_off: u16, + entry_size: u16, + element_size: u16, + } + + #[repr(align(8))] + pub struct syspage_entry { + pub size: u16, + pub total_size: u16, + pub type_: u16, + pub num_cpu: u16, + pub system_private: syspage_entry_info, + pub old_asinfo: syspage_entry_info, + pub __mangle_name_to_cause_compilation_errs_meminfo: syspage_entry_info, + pub hwinfo: syspage_entry_info, + pub old_cpuinfo: syspage_entry_info, + pub old_cacheattr: syspage_entry_info, + pub qtime: syspage_entry_info, + pub callout: syspage_entry_info, + pub callin: syspage_entry_info, + pub typed_strings: syspage_entry_info, + pub strings: syspage_entry_info, + pub old_intrinfo: syspage_entry_info, + pub smp: syspage_entry_info, + pub pminfo: syspage_entry_info, + pub old_mdriver: syspage_entry_info, + spare0: [u32; 1], + __reserved: [u8; 160], // anonymous union with architecture dependent structs + pub new_asinfo: syspage_array_info, + pub new_cpuinfo: syspage_array_info, + pub new_cacheattr: syspage_array_info, + pub new_intrinfo: syspage_array_info, + pub new_mdriver: syspage_array_info, + } +} + +pub const SYSMGR_PID: u32 = 1; +pub const SYSMGR_CHID: u32 = 1; +pub const SYSMGR_COID: u32 = _NTO_SIDE_CHANNEL; +pub const SYSMGR_HANDLE: u32 = 0; + +pub const STATE_DEAD: ::c_int = 0x00; +pub const STATE_RUNNING: ::c_int = 0x01; +pub const STATE_READY: ::c_int = 0x02; +pub const STATE_STOPPED: ::c_int = 0x03; +pub const STATE_SEND: ::c_int = 0x04; +pub const STATE_RECEIVE: ::c_int = 0x05; +pub const STATE_REPLY: ::c_int = 0x06; +pub const STATE_STACK: ::c_int = 0x07; +pub const STATE_WAITTHREAD: ::c_int = 0x08; +pub const STATE_WAITPAGE: ::c_int = 0x09; +pub const STATE_SIGSUSPEND: ::c_int = 0x0a; +pub const STATE_SIGWAITINFO: ::c_int = 0x0b; +pub const STATE_NANOSLEEP: ::c_int = 0x0c; +pub const STATE_MUTEX: ::c_int = 0x0d; +pub const STATE_CONDVAR: ::c_int = 0x0e; +pub const STATE_JOIN: ::c_int = 0x0f; +pub const STATE_INTR: ::c_int = 0x10; +pub const STATE_SEM: ::c_int = 0x11; +pub const STATE_WAITCTX: ::c_int = 0x12; +pub const STATE_NET_SEND: ::c_int = 0x13; +pub const STATE_NET_REPLY: ::c_int = 0x14; +pub const STATE_MAX: ::c_int = 0x18; + +pub const _NTO_TIMEOUT_RECEIVE: i32 = 1 << STATE_RECEIVE; +pub const _NTO_TIMEOUT_SEND: i32 = 1 << STATE_SEND; +pub const _NTO_TIMEOUT_REPLY: i32 = 1 << STATE_REPLY; +pub const _NTO_TIMEOUT_SIGSUSPEND: i32 = 1 << STATE_SIGSUSPEND; +pub const _NTO_TIMEOUT_SIGWAITINFO: i32 = 1 << STATE_SIGWAITINFO; +pub const _NTO_TIMEOUT_NANOSLEEP: i32 = 1 << STATE_NANOSLEEP; +pub const _NTO_TIMEOUT_MUTEX: i32 = 1 << STATE_MUTEX; +pub const _NTO_TIMEOUT_CONDVAR: i32 = 1 << STATE_CONDVAR; +pub const _NTO_TIMEOUT_JOIN: i32 = 1 << STATE_JOIN; +pub const _NTO_TIMEOUT_INTR: i32 = 1 << STATE_INTR; +pub const _NTO_TIMEOUT_SEM: i32 = 1 << STATE_SEM; + +pub const _NTO_MI_ENDIAN_BIG: u32 = 1; +pub const _NTO_MI_ENDIAN_DIFF: u32 = 2; +pub const _NTO_MI_UNBLOCK_REQ: u32 = 256; +pub const _NTO_MI_NET_CRED_DIRTY: u32 = 512; +pub const _NTO_MI_CONSTRAINED: u32 = 1024; +pub const _NTO_MI_CHROOT: u32 = 2048; +pub const _NTO_MI_BITS_64: u32 = 4096; +pub const _NTO_MI_BITS_DIFF: u32 = 8192; +pub const _NTO_MI_SANDBOX: u32 = 16384; + +pub const _NTO_CI_ENDIAN_BIG: u32 = 1; +pub const _NTO_CI_BKGND_PGRP: u32 = 4; +pub const _NTO_CI_ORPHAN_PGRP: u32 = 8; +pub const _NTO_CI_STOPPED: u32 = 128; +pub const _NTO_CI_UNABLE: u32 = 256; +pub const _NTO_CI_TYPE_ID: u32 = 512; +pub const _NTO_CI_CHROOT: u32 = 2048; +pub const _NTO_CI_BITS_64: u32 = 4096; +pub const _NTO_CI_SANDBOX: u32 = 16384; +pub const _NTO_CI_LOADER: u32 = 32768; +pub const _NTO_CI_FULL_GROUPS: u32 = 2147483648; + +pub const _NTO_TI_ACTIVE: u32 = 1; +pub const _NTO_TI_ABSOLUTE: u32 = 2; +pub const _NTO_TI_EXPIRED: u32 = 4; +pub const _NTO_TI_TOD_BASED: u32 = 8; +pub const _NTO_TI_TARGET_PROCESS: u32 = 16; +pub const _NTO_TI_REPORT_TOLERANCE: u32 = 32; +pub const _NTO_TI_PRECISE: u32 = 64; +pub const _NTO_TI_TOLERANT: u32 = 128; +pub const _NTO_TI_WAKEUP: u32 = 256; +pub const _NTO_TI_PROCESS_TOLERANT: u32 = 512; +pub const _NTO_TI_HIGH_RESOLUTION: u32 = 1024; + +pub const _PULSE_TYPE: u32 = 0; +pub const _PULSE_SUBTYPE: u32 = 0; +pub const _PULSE_CODE_UNBLOCK: i32 = -32; +pub const _PULSE_CODE_DISCONNECT: i32 = -33; +pub const _PULSE_CODE_THREADDEATH: i32 = -34; +pub const _PULSE_CODE_COIDDEATH: i32 = -35; +pub const _PULSE_CODE_NET_ACK: i32 = -36; +pub const _PULSE_CODE_NET_UNBLOCK: i32 = -37; +pub const _PULSE_CODE_NET_DETACH: i32 = -38; +pub const _PULSE_CODE_RESTART: i32 = -39; +pub const _PULSE_CODE_NORESTART: i32 = -40; +pub const _PULSE_CODE_UNBLOCK_RESTART: i32 = -41; +pub const _PULSE_CODE_UNBLOCK_TIMER: i32 = -42; +pub const _PULSE_CODE_MINAVAIL: u32 = 0; +pub const _PULSE_CODE_MAXAVAIL: u32 = 127; + +pub const _NTO_HARD_FLAGS_END: u32 = 1; + +pub const _NTO_PULSE_IF_UNIQUE: u32 = 4096; +pub const _NTO_PULSE_REPLACE: u32 = 8192; + +pub const _NTO_PF_NOCLDSTOP: u32 = 1; +pub const _NTO_PF_LOADING: u32 = 2; +pub const _NTO_PF_TERMING: u32 = 4; +pub const _NTO_PF_ZOMBIE: u32 = 8; +pub const _NTO_PF_NOZOMBIE: u32 = 16; +pub const _NTO_PF_FORKED: u32 = 32; +pub const _NTO_PF_ORPHAN_PGRP: u32 = 64; +pub const _NTO_PF_STOPPED: u32 = 128; +pub const _NTO_PF_DEBUG_STOPPED: u32 = 256; +pub const _NTO_PF_BKGND_PGRP: u32 = 512; +pub const _NTO_PF_NOISYNC: u32 = 1024; +pub const _NTO_PF_CONTINUED: u32 = 2048; +pub const _NTO_PF_CHECK_INTR: u32 = 4096; +pub const _NTO_PF_COREDUMP: u32 = 8192; +pub const _NTO_PF_RING0: u32 = 32768; +pub const _NTO_PF_SLEADER: u32 = 65536; +pub const _NTO_PF_WAITINFO: u32 = 131072; +pub const _NTO_PF_DESTROYALL: u32 = 524288; +pub const _NTO_PF_NOCOREDUMP: u32 = 1048576; +pub const _NTO_PF_WAITDONE: u32 = 4194304; +pub const _NTO_PF_TERM_WAITING: u32 = 8388608; +pub const _NTO_PF_ASLR: u32 = 16777216; +pub const _NTO_PF_EXECED: u32 = 33554432; +pub const _NTO_PF_APP_STOPPED: u32 = 67108864; +pub const _NTO_PF_64BIT: u32 = 134217728; +pub const _NTO_PF_NET: u32 = 268435456; +pub const _NTO_PF_NOLAZYSTACK: u32 = 536870912; +pub const _NTO_PF_NOEXEC_STACK: u32 = 1073741824; +pub const _NTO_PF_LOADER_PERMS: u32 = 2147483648; + +pub const _NTO_TF_INTR_PENDING: u32 = 65536; +pub const _NTO_TF_DETACHED: u32 = 131072; +pub const _NTO_TF_SHR_MUTEX: u32 = 262144; +pub const _NTO_TF_SHR_MUTEX_EUID: u32 = 524288; +pub const _NTO_TF_THREADS_HOLD: u32 = 1048576; +pub const _NTO_TF_UNBLOCK_REQ: u32 = 4194304; +pub const _NTO_TF_ALIGN_FAULT: u32 = 16777216; +pub const _NTO_TF_SSTEP: u32 = 33554432; +pub const _NTO_TF_ALLOCED_STACK: u32 = 67108864; +pub const _NTO_TF_NOMULTISIG: u32 = 134217728; +pub const _NTO_TF_LOW_LATENCY: u32 = 268435456; +pub const _NTO_TF_IOPRIV: u32 = 2147483648; + +pub const _NTO_TCTL_IO_PRIV: u32 = 1; +pub const _NTO_TCTL_THREADS_HOLD: u32 = 2; +pub const _NTO_TCTL_THREADS_CONT: u32 = 3; +pub const _NTO_TCTL_RUNMASK: u32 = 4; +pub const _NTO_TCTL_ALIGN_FAULT: u32 = 5; +pub const _NTO_TCTL_RUNMASK_GET_AND_SET: u32 = 6; +pub const _NTO_TCTL_PERFCOUNT: u32 = 7; +pub const _NTO_TCTL_ONE_THREAD_HOLD: u32 = 8; +pub const _NTO_TCTL_ONE_THREAD_CONT: u32 = 9; +pub const _NTO_TCTL_RUNMASK_GET_AND_SET_INHERIT: u32 = 10; +pub const _NTO_TCTL_NAME: u32 = 11; +pub const _NTO_TCTL_RCM_GET_AND_SET: u32 = 12; +pub const _NTO_TCTL_SHR_MUTEX: u32 = 13; +pub const _NTO_TCTL_IO: u32 = 14; +pub const _NTO_TCTL_NET_KIF_GET_AND_SET: u32 = 15; +pub const _NTO_TCTL_LOW_LATENCY: u32 = 16; +pub const _NTO_TCTL_ADD_EXIT_EVENT: u32 = 17; +pub const _NTO_TCTL_DEL_EXIT_EVENT: u32 = 18; +pub const _NTO_TCTL_IO_LEVEL: u32 = 19; +pub const _NTO_TCTL_RESERVED: u32 = 2147483648; +pub const _NTO_TCTL_IO_LEVEL_INHERIT: u32 = 1073741824; +pub const _NTO_IO_LEVEL_NONE: u32 = 1; +pub const _NTO_IO_LEVEL_1: u32 = 2; +pub const _NTO_IO_LEVEL_2: u32 = 3; + +pub const _NTO_THREAD_NAME_MAX: u32 = 100; + +pub const _NTO_CHF_FIXED_PRIORITY: u32 = 1; +pub const _NTO_CHF_UNBLOCK: u32 = 2; +pub const _NTO_CHF_THREAD_DEATH: u32 = 4; +pub const _NTO_CHF_DISCONNECT: u32 = 8; +pub const _NTO_CHF_NET_MSG: u32 = 16; +pub const _NTO_CHF_SENDER_LEN: u32 = 32; +pub const _NTO_CHF_COID_DISCONNECT: u32 = 64; +pub const _NTO_CHF_REPLY_LEN: u32 = 128; +pub const _NTO_CHF_PULSE_POOL: u32 = 256; +pub const _NTO_CHF_ASYNC_NONBLOCK: u32 = 512; +pub const _NTO_CHF_ASYNC: u32 = 1024; +pub const _NTO_CHF_GLOBAL: u32 = 2048; +pub const _NTO_CHF_PRIVATE: u32 = 4096; +pub const _NTO_CHF_MSG_PAUSING: u32 = 8192; +pub const _NTO_CHF_INHERIT_RUNMASK: u32 = 16384; +pub const _NTO_CHF_UNBLOCK_TIMER: u32 = 32768; + +pub const _NTO_CHO_CUSTOM_EVENT: u32 = 1; + +pub const _NTO_COF_CLOEXEC: u32 = 1; +pub const _NTO_COF_DEAD: u32 = 2; +pub const _NTO_COF_NOSHARE: u32 = 64; +pub const _NTO_COF_NETCON: u32 = 128; +pub const _NTO_COF_NONBLOCK: u32 = 256; +pub const _NTO_COF_ASYNC: u32 = 512; +pub const _NTO_COF_GLOBAL: u32 = 1024; +pub const _NTO_COF_NOEVENT: u32 = 2048; +pub const _NTO_COF_INSECURE: u32 = 4096; +pub const _NTO_COF_REG_EVENTS: u32 = 8192; +pub const _NTO_COF_UNREG_EVENTS: u32 = 16384; +pub const _NTO_COF_MASK: u32 = 65535; + +pub const _NTO_SIDE_CHANNEL: u32 = 1073741824; + +pub const _NTO_CONNECTION_SCOID: u32 = 65536; +pub const _NTO_GLOBAL_CHANNEL: u32 = 1073741824; + +pub const _NTO_TIMEOUT_MASK: u32 = (1 << STATE_MAX) - 1; +pub const _NTO_TIMEOUT_ACTIVE: u32 = 1 << STATE_MAX; +pub const _NTO_TIMEOUT_IMMEDIATE: u32 = 1 << (STATE_MAX + 1); + +pub const _NTO_IC_LATENCY: u32 = 0; + +pub const _NTO_INTR_FLAGS_END: u32 = 1; +pub const _NTO_INTR_FLAGS_NO_UNMASK: u32 = 2; +pub const _NTO_INTR_FLAGS_PROCESS: u32 = 4; +pub const _NTO_INTR_FLAGS_TRK_MSK: u32 = 8; +pub const _NTO_INTR_FLAGS_ARRAY: u32 = 16; +pub const _NTO_INTR_FLAGS_EXCLUSIVE: u32 = 32; +pub const _NTO_INTR_FLAGS_FPU: u32 = 64; + +pub const _NTO_INTR_CLASS_EXTERNAL: u32 = 0; +pub const _NTO_INTR_CLASS_SYNTHETIC: u32 = 2147418112; + +pub const _NTO_INTR_SPARE: u32 = 2147483647; + +pub const _NTO_HOOK_IDLE: u32 = 2147418113; +pub const _NTO_HOOK_OVERDRIVE: u32 = 2147418114; +pub const _NTO_HOOK_LAST: u32 = 2147418114; +pub const _NTO_HOOK_IDLE2_FLAG: u32 = 32768; + +pub const _NTO_IH_CMD_SLEEP_SETUP: u32 = 1; +pub const _NTO_IH_CMD_SLEEP_BLOCK: u32 = 2; +pub const _NTO_IH_CMD_SLEEP_WAKEUP: u32 = 4; +pub const _NTO_IH_CMD_SLEEP_ONLINE: u32 = 8; +pub const _NTO_IH_RESP_NEEDS_BLOCK: u32 = 1; +pub const _NTO_IH_RESP_NEEDS_WAKEUP: u32 = 2; +pub const _NTO_IH_RESP_NEEDS_ONLINE: u32 = 4; +pub const _NTO_IH_RESP_SYNC_TIME: u32 = 16; +pub const _NTO_IH_RESP_SYNC_TLB: u32 = 32; +pub const _NTO_IH_RESP_SUGGEST_OFFLINE: u32 = 256; +pub const _NTO_IH_RESP_SLEEP_MODE_REACHED: u32 = 512; +pub const _NTO_IH_RESP_DELIVER_INTRS: u32 = 1024; + +pub const _NTO_READIOV_SEND: u32 = 0; +pub const _NTO_READIOV_REPLY: u32 = 1; + +pub const _NTO_KEYDATA_VTID: u32 = 2147483648; + +pub const _NTO_KEYDATA_PATHSIGN: u32 = 32768; +pub const _NTO_KEYDATA_OP_MASK: u32 = 255; +pub const _NTO_KEYDATA_VERIFY: u32 = 0; +pub const _NTO_KEYDATA_CALCULATE: u32 = 1; +pub const _NTO_KEYDATA_CALCULATE_REUSE: u32 = 2; +pub const _NTO_KEYDATA_PATHSIGN_VERIFY: u32 = 32768; +pub const _NTO_KEYDATA_PATHSIGN_CALCULATE: u32 = 32769; +pub const _NTO_KEYDATA_PATHSIGN_CALCULATE_REUSE: u32 = 32770; + +pub const _NTO_SCTL_SETPRIOCEILING: u32 = 1; +pub const _NTO_SCTL_GETPRIOCEILING: u32 = 2; +pub const _NTO_SCTL_SETEVENT: u32 = 3; +pub const _NTO_SCTL_MUTEX_WAKEUP: u32 = 4; +pub const _NTO_SCTL_MUTEX_CONSISTENT: u32 = 5; +pub const _NTO_SCTL_SEM_VALUE: u32 = 6; + +pub const _NTO_CLIENTINFO_GETGROUPS: u32 = 1; +pub const _NTO_CLIENTINFO_GETTYPEID: u32 = 2; + +extern "C" { + pub fn ChannelCreate(__flags: ::c_uint) -> ::c_int; + pub fn ChannelCreate_r(__flags: ::c_uint) -> ::c_int; + pub fn ChannelCreatePulsePool( + __flags: ::c_uint, + __config: *const nto_channel_config, + ) -> ::c_int; + pub fn ChannelCreateExt( + __flags: ::c_uint, + __mode: ::mode_t, + __bufsize: usize, + __maxnumbuf: ::c_uint, + __ev: *const ::sigevent, + __cred: *mut _cred_info, + ) -> ::c_int; + pub fn ChannelDestroy(__chid: ::c_int) -> ::c_int; + pub fn ChannelDestroy_r(__chid: ::c_int) -> ::c_int; + pub fn ConnectAttach( + __nd: u32, + __pid: ::pid_t, + __chid: ::c_int, + __index: ::c_uint, + __flags: ::c_int, + ) -> ::c_int; + pub fn ConnectAttach_r( + __nd: u32, + __pid: ::pid_t, + __chid: ::c_int, + __index: ::c_uint, + __flags: ::c_int, + ) -> ::c_int; + + // TODO: The following function uses a structure defined in a header file + // which doesn't appear as part of the default headers found in a + // standard installation of Neutrino 7.1 SDP. Commented out for now. + //pub fn ConnectAttachExt( + // __nd: u32, + // __pid: ::pid_t, + // __chid: ::c_int, + // __index: ::c_uint, + // __flags: ::c_int, + // __cd: *mut _asyncmsg_connection_descriptor, + //) -> ::c_int; + pub fn ConnectDetach(__coid: ::c_int) -> ::c_int; + pub fn ConnectDetach_r(__coid: ::c_int) -> ::c_int; + pub fn ConnectServerInfo(__pid: ::pid_t, __coid: ::c_int, __info: *mut _msg_info64) -> ::c_int; + pub fn ConnectServerInfo_r( + __pid: ::pid_t, + __coid: ::c_int, + __info: *mut _msg_info64, + ) -> ::c_int; + pub fn ConnectClientInfoExtraArgs( + __scoid: ::c_int, + __info_pp: *mut _client_info, + __ngroups: ::c_int, + __abilities: *mut _client_able, + __nable: ::c_int, + __type_id: *mut ::c_uint, + ) -> ::c_int; + pub fn ConnectClientInfoExtraArgs_r( + __scoid: ::c_int, + __info_pp: *mut _client_info, + __ngroups: ::c_int, + __abilities: *mut _client_able, + __nable: ::c_int, + __type_id: *mut ::c_uint, + ) -> ::c_int; + pub fn ConnectClientInfo( + __scoid: ::c_int, + __info: *mut _client_info, + __ngroups: ::c_int, + ) -> ::c_int; + pub fn ConnectClientInfo_r( + __scoid: ::c_int, + __info: *mut _client_info, + __ngroups: ::c_int, + ) -> ::c_int; + pub fn ConnectClientInfoExt( + __scoid: ::c_int, + __info_pp: *mut *mut _client_info, + flags: ::c_int, + ) -> ::c_int; + pub fn ClientInfoExtFree(__info_pp: *mut *mut _client_info) -> ::c_int; + pub fn ConnectClientInfoAble( + __scoid: ::c_int, + __info_pp: *mut *mut _client_info, + flags: ::c_int, + abilities: *mut _client_able, + nable: ::c_int, + ) -> ::c_int; + pub fn ConnectFlags( + __pid: ::pid_t, + __coid: ::c_int, + __mask: ::c_uint, + __bits: ::c_uint, + ) -> ::c_int; + pub fn ConnectFlags_r( + __pid: ::pid_t, + __coid: ::c_int, + __mask: ::c_uint, + __bits: ::c_uint, + ) -> ::c_int; + pub fn ChannelConnectAttr( + __id: ::c_uint, + __old_attr: *mut _channel_connect_attr, + __new_attr: *mut _channel_connect_attr, + __flags: ::c_uint, + ) -> ::c_int; + pub fn MsgSend( + __coid: ::c_int, + __smsg: *const ::c_void, + __sbytes: usize, + __rmsg: *mut ::c_void, + __rbytes: usize, + ) -> ::c_long; + pub fn MsgSend_r( + __coid: ::c_int, + __smsg: *const ::c_void, + __sbytes: usize, + __rmsg: *mut ::c_void, + __rbytes: usize, + ) -> ::c_long; + pub fn MsgSendnc( + __coid: ::c_int, + __smsg: *const ::c_void, + __sbytes: usize, + __rmsg: *mut ::c_void, + __rbytes: usize, + ) -> ::c_long; + pub fn MsgSendnc_r( + __coid: ::c_int, + __smsg: *const ::c_void, + __sbytes: usize, + __rmsg: *mut ::c_void, + __rbytes: usize, + ) -> ::c_long; + pub fn MsgSendsv( + __coid: ::c_int, + __smsg: *const ::c_void, + __sbytes: usize, + __riov: *const ::iovec, + __rparts: usize, + ) -> ::c_long; + pub fn MsgSendsv_r( + __coid: ::c_int, + __smsg: *const ::c_void, + __sbytes: usize, + __riov: *const ::iovec, + __rparts: usize, + ) -> ::c_long; + pub fn MsgSendsvnc( + __coid: ::c_int, + __smsg: *const ::c_void, + __sbytes: usize, + __riov: *const ::iovec, + __rparts: usize, + ) -> ::c_long; + pub fn MsgSendsvnc_r( + __coid: ::c_int, + __smsg: *const ::c_void, + __sbytes: usize, + __riov: *const ::iovec, + __rparts: usize, + ) -> ::c_long; + pub fn MsgSendvs( + __coid: ::c_int, + __siov: *const ::iovec, + __sparts: usize, + __rmsg: *mut ::c_void, + __rbytes: usize, + ) -> ::c_long; + pub fn MsgSendvs_r( + __coid: ::c_int, + __siov: *const ::iovec, + __sparts: usize, + __rmsg: *mut ::c_void, + __rbytes: usize, + ) -> ::c_long; + pub fn MsgSendvsnc( + __coid: ::c_int, + __siov: *const ::iovec, + __sparts: usize, + __rmsg: *mut ::c_void, + __rbytes: usize, + ) -> ::c_long; + pub fn MsgSendvsnc_r( + __coid: ::c_int, + __siov: *const ::iovec, + __sparts: usize, + __rmsg: *mut ::c_void, + __rbytes: usize, + ) -> ::c_long; + pub fn MsgSendv( + __coid: ::c_int, + __siov: *const ::iovec, + __sparts: usize, + __riov: *const ::iovec, + __rparts: usize, + ) -> ::c_long; + pub fn MsgSendv_r( + __coid: ::c_int, + __siov: *const ::iovec, + __sparts: usize, + __riov: *const ::iovec, + __rparts: usize, + ) -> ::c_long; + pub fn MsgSendvnc( + __coid: ::c_int, + __siov: *const ::iovec, + __sparts: usize, + __riov: *const ::iovec, + __rparts: usize, + ) -> ::c_long; + pub fn MsgSendvnc_r( + __coid: ::c_int, + __siov: *const ::iovec, + __sparts: usize, + __riov: *const ::iovec, + __rparts: usize, + ) -> ::c_long; + pub fn MsgReceive( + __chid: ::c_int, + __msg: *mut ::c_void, + __bytes: usize, + __info: *mut _msg_info64, + ) -> ::c_int; + pub fn MsgReceive_r( + __chid: ::c_int, + __msg: *mut ::c_void, + __bytes: usize, + __info: *mut _msg_info64, + ) -> ::c_int; + pub fn MsgReceivev( + __chid: ::c_int, + __iov: *const ::iovec, + __parts: usize, + __info: *mut _msg_info64, + ) -> ::c_int; + pub fn MsgReceivev_r( + __chid: ::c_int, + __iov: *const ::iovec, + __parts: usize, + __info: *mut _msg_info64, + ) -> ::c_int; + pub fn MsgReceivePulse( + __chid: ::c_int, + __pulse: *mut ::c_void, + __bytes: usize, + __info: *mut _msg_info64, + ) -> ::c_int; + pub fn MsgReceivePulse_r( + __chid: ::c_int, + __pulse: *mut ::c_void, + __bytes: usize, + __info: *mut _msg_info64, + ) -> ::c_int; + pub fn MsgReceivePulsev( + __chid: ::c_int, + __iov: *const ::iovec, + __parts: usize, + __info: *mut _msg_info64, + ) -> ::c_int; + pub fn MsgReceivePulsev_r( + __chid: ::c_int, + __iov: *const ::iovec, + __parts: usize, + __info: *mut _msg_info64, + ) -> ::c_int; + pub fn MsgReply( + __rcvid: ::c_int, + __status: ::c_long, + __msg: *const ::c_void, + __bytes: usize, + ) -> ::c_int; + pub fn MsgReply_r( + __rcvid: ::c_int, + __status: ::c_long, + __msg: *const ::c_void, + __bytes: usize, + ) -> ::c_int; + pub fn MsgReplyv( + __rcvid: ::c_int, + __status: ::c_long, + __iov: *const ::iovec, + __parts: usize, + ) -> ::c_int; + pub fn MsgReplyv_r( + __rcvid: ::c_int, + __status: ::c_long, + __iov: *const ::iovec, + __parts: usize, + ) -> ::c_int; + pub fn MsgReadiov( + __rcvid: ::c_int, + __iov: *const ::iovec, + __parts: usize, + __offset: usize, + __flags: ::c_int, + ) -> isize; + pub fn MsgReadiov_r( + __rcvid: ::c_int, + __iov: *const ::iovec, + __parts: usize, + __offset: usize, + __flags: ::c_int, + ) -> isize; + pub fn MsgRead( + __rcvid: ::c_int, + __msg: *mut ::c_void, + __bytes: usize, + __offset: usize, + ) -> isize; + pub fn MsgRead_r( + __rcvid: ::c_int, + __msg: *mut ::c_void, + __bytes: usize, + __offset: usize, + ) -> isize; + pub fn MsgReadv( + __rcvid: ::c_int, + __iov: *const ::iovec, + __parts: usize, + __offset: usize, + ) -> isize; + pub fn MsgReadv_r( + __rcvid: ::c_int, + __iov: *const ::iovec, + __parts: usize, + __offset: usize, + ) -> isize; + pub fn MsgWrite( + __rcvid: ::c_int, + __msg: *const ::c_void, + __bytes: usize, + __offset: usize, + ) -> isize; + pub fn MsgWrite_r( + __rcvid: ::c_int, + __msg: *const ::c_void, + __bytes: usize, + __offset: usize, + ) -> isize; + pub fn MsgWritev( + __rcvid: ::c_int, + __iov: *const ::iovec, + __parts: usize, + __offset: usize, + ) -> isize; + pub fn MsgWritev_r( + __rcvid: ::c_int, + __iov: *const ::iovec, + __parts: usize, + __offset: usize, + ) -> isize; + pub fn MsgSendPulse( + __coid: ::c_int, + __priority: ::c_int, + __code: ::c_int, + __value: ::c_int, + ) -> ::c_int; + pub fn MsgSendPulse_r( + __coid: ::c_int, + __priority: ::c_int, + __code: ::c_int, + __value: ::c_int, + ) -> ::c_int; + pub fn MsgSendPulsePtr( + __coid: ::c_int, + __priority: ::c_int, + __code: ::c_int, + __value: *mut ::c_void, + ) -> ::c_int; + pub fn MsgSendPulsePtr_r( + __coid: ::c_int, + __priority: ::c_int, + __code: ::c_int, + __value: *mut ::c_void, + ) -> ::c_int; + pub fn MsgDeliverEvent(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int; + pub fn MsgDeliverEvent_r(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int; + pub fn MsgVerifyEvent(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int; + pub fn MsgVerifyEvent_r(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int; + pub fn MsgRegisterEvent(__event: *mut ::sigevent, __coid: ::c_int) -> ::c_int; + pub fn MsgRegisterEvent_r(__event: *mut ::sigevent, __coid: ::c_int) -> ::c_int; + pub fn MsgUnregisterEvent(__event: *const ::sigevent) -> ::c_int; + pub fn MsgUnregisterEvent_r(__event: *const ::sigevent) -> ::c_int; + pub fn MsgInfo(__rcvid: ::c_int, __info: *mut _msg_info64) -> ::c_int; + pub fn MsgInfo_r(__rcvid: ::c_int, __info: *mut _msg_info64) -> ::c_int; + pub fn MsgKeyData( + __rcvid: ::c_int, + __oper: ::c_int, + __key: u32, + __newkey: *mut u32, + __iov: *const ::iovec, + __parts: ::c_int, + ) -> ::c_int; + pub fn MsgKeyData_r( + __rcvid: ::c_int, + __oper: ::c_int, + __key: u32, + __newkey: *mut u32, + __iov: *const ::iovec, + __parts: ::c_int, + ) -> ::c_int; + pub fn MsgError(__rcvid: ::c_int, __err: ::c_int) -> ::c_int; + pub fn MsgError_r(__rcvid: ::c_int, __err: ::c_int) -> ::c_int; + pub fn MsgCurrent(__rcvid: ::c_int) -> ::c_int; + pub fn MsgCurrent_r(__rcvid: ::c_int) -> ::c_int; + pub fn MsgSendAsyncGbl( + __coid: ::c_int, + __smsg: *const ::c_void, + __sbytes: usize, + __msg_prio: ::c_uint, + ) -> ::c_int; + pub fn MsgSendAsync(__coid: ::c_int) -> ::c_int; + pub fn MsgReceiveAsyncGbl( + __chid: ::c_int, + __rmsg: *mut ::c_void, + __rbytes: usize, + __info: *mut _msg_info64, + __coid: ::c_int, + ) -> ::c_int; + pub fn MsgReceiveAsync(__chid: ::c_int, __iov: *const ::iovec, __parts: ::c_uint) -> ::c_int; + pub fn MsgPause(__rcvid: ::c_int, __cookie: ::c_uint) -> ::c_int; + pub fn MsgPause_r(__rcvid: ::c_int, __cookie: ::c_uint) -> ::c_int; + + pub fn SignalKill( + __nd: u32, + __pid: ::pid_t, + __tid: ::c_int, + __signo: ::c_int, + __code: ::c_int, + __value: ::c_int, + ) -> ::c_int; + pub fn SignalKill_r( + __nd: u32, + __pid: ::pid_t, + __tid: ::c_int, + __signo: ::c_int, + __code: ::c_int, + __value: ::c_int, + ) -> ::c_int; + pub fn SignalKillSigval( + __nd: u32, + __pid: ::pid_t, + __tid: ::c_int, + __signo: ::c_int, + __code: ::c_int, + __value: *const ::sigval, + ) -> ::c_int; + pub fn SignalKillSigval_r( + __nd: u32, + __pid: ::pid_t, + __tid: ::c_int, + __signo: ::c_int, + __code: ::c_int, + __value: *const ::sigval, + ) -> ::c_int; + pub fn SignalReturn(__info: *mut _sighandler_info) -> ::c_int; + pub fn SignalFault(__sigcode: ::c_uint, __regs: *mut ::c_void, __refaddr: usize) -> ::c_int; + pub fn SignalAction( + __pid: ::pid_t, + __sigstub: unsafe extern "C" fn(), + __signo: ::c_int, + __act: *const ::sigaction, + __oact: *mut ::sigaction, + ) -> ::c_int; + pub fn SignalAction_r( + __pid: ::pid_t, + __sigstub: unsafe extern "C" fn(), + __signo: ::c_int, + __act: *const ::sigaction, + __oact: *mut ::sigaction, + ) -> ::c_int; + pub fn SignalProcmask( + __pid: ::pid_t, + __tid: ::c_int, + __how: ::c_int, + __set: *const ::sigset_t, + __oldset: *mut ::sigset_t, + ) -> ::c_int; + pub fn SignalProcmask_r( + __pid: ::pid_t, + __tid: ::c_int, + __how: ::c_int, + __set: *const ::sigset_t, + __oldset: *mut ::sigset_t, + ) -> ::c_int; + pub fn SignalSuspend(__set: *const ::sigset_t) -> ::c_int; + pub fn SignalSuspend_r(__set: *const ::sigset_t) -> ::c_int; + pub fn SignalWaitinfo(__set: *const ::sigset_t, __info: *mut ::siginfo_t) -> ::c_int; + pub fn SignalWaitinfo_r(__set: *const ::sigset_t, __info: *mut ::siginfo_t) -> ::c_int; + pub fn SignalWaitinfoMask( + __set: *const ::sigset_t, + __info: *mut ::siginfo_t, + __mask: *const ::sigset_t, + ) -> ::c_int; + pub fn SignalWaitinfoMask_r( + __set: *const ::sigset_t, + __info: *mut ::siginfo_t, + __mask: *const ::sigset_t, + ) -> ::c_int; + pub fn ThreadCreate( + __pid: ::pid_t, + __func: unsafe extern "C" fn(__arg: *mut ::c_void) -> *mut ::c_void, + __arg: *mut ::c_void, + __attr: *const ::_thread_attr, + ) -> ::c_int; + pub fn ThreadCreate_r( + __pid: ::pid_t, + __func: unsafe extern "C" fn(__arg: *mut ::c_void) -> *mut ::c_void, + __arg: *mut ::c_void, + __attr: *const ::_thread_attr, + ) -> ::c_int; + + pub fn ThreadDestroy(__tid: ::c_int, __priority: ::c_int, __status: *mut ::c_void) -> ::c_int; + pub fn ThreadDestroy_r(__tid: ::c_int, __priority: ::c_int, __status: *mut ::c_void) + -> ::c_int; + pub fn ThreadDetach(__tid: ::c_int) -> ::c_int; + pub fn ThreadDetach_r(__tid: ::c_int) -> ::c_int; + pub fn ThreadJoin(__tid: ::c_int, __status: *mut *mut ::c_void) -> ::c_int; + pub fn ThreadJoin_r(__tid: ::c_int, __status: *mut *mut ::c_void) -> ::c_int; + pub fn ThreadCancel(__tid: ::c_int, __canstub: unsafe extern "C" fn()) -> ::c_int; + pub fn ThreadCancel_r(__tid: ::c_int, __canstub: unsafe extern "C" fn()) -> ::c_int; + pub fn ThreadCtl(__cmd: ::c_int, __data: *mut ::c_void) -> ::c_int; + pub fn ThreadCtl_r(__cmd: ::c_int, __data: *mut ::c_void) -> ::c_int; + pub fn ThreadCtlExt( + __pid: ::pid_t, + __tid: ::c_int, + __cmd: ::c_int, + __data: *mut ::c_void, + ) -> ::c_int; + pub fn ThreadCtlExt_r( + __pid: ::pid_t, + __tid: ::c_int, + __cmd: ::c_int, + __data: *mut ::c_void, + ) -> ::c_int; + + pub fn InterruptHookTrace( + __handler: ::Option *const ::sigevent>, + __flags: ::c_uint, + ) -> ::c_int; + pub fn InterruptHookIdle( + __handler: ::Option, + __flags: ::c_uint, + ) -> ::c_int; + pub fn InterruptHookIdle2( + __handler: ::Option< + unsafe extern "C" fn(arg1: ::c_uint, arg2: *mut syspage_entry, arg3: *mut _idle_hook), + >, + __flags: ::c_uint, + ) -> ::c_int; + pub fn InterruptHookOverdriveEvent(__event: *const ::sigevent, __flags: ::c_uint) -> ::c_int; + pub fn InterruptAttachEvent( + __intr: ::c_int, + __event: *const ::sigevent, + __flags: ::c_uint, + ) -> ::c_int; + pub fn InterruptAttachEvent_r( + __intr: ::c_int, + __event: *const ::sigevent, + __flags: ::c_uint, + ) -> ::c_int; + pub fn InterruptAttach( + __intr: ::c_int, + __handler: ::Option< + unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const ::sigevent, + >, + __area: *const ::c_void, + __size: ::c_int, + __flags: ::c_uint, + ) -> ::c_int; + pub fn InterruptAttach_r( + __intr: ::c_int, + __handler: ::Option< + unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const ::sigevent, + >, + __area: *const ::c_void, + __size: ::c_int, + __flags: ::c_uint, + ) -> ::c_int; + pub fn InterruptAttachArray( + __intr: ::c_int, + __handler: ::Option< + unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const *const ::sigevent, + >, + __area: *const ::c_void, + __size: ::c_int, + __flags: ::c_uint, + ) -> ::c_int; + pub fn InterruptAttachArray_r( + __intr: ::c_int, + __handler: ::Option< + unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const *const ::sigevent, + >, + __area: *const ::c_void, + __size: ::c_int, + __flags: ::c_uint, + ) -> ::c_int; + pub fn InterruptDetach(__id: ::c_int) -> ::c_int; + pub fn InterruptDetach_r(__id: ::c_int) -> ::c_int; + pub fn InterruptWait(__flags: ::c_int, __timeout: *const u64) -> ::c_int; + pub fn InterruptWait_r(__flags: ::c_int, __timeout: *const u64) -> ::c_int; + pub fn InterruptCharacteristic( + __type: ::c_int, + __id: ::c_int, + __new: *mut ::c_uint, + __old: *mut ::c_uint, + ) -> ::c_int; + pub fn InterruptCharacteristic_r( + __type: ::c_int, + __id: ::c_int, + __new: *mut ::c_uint, + __old: *mut ::c_uint, + ) -> ::c_int; + + pub fn SchedGet(__pid: ::pid_t, __tid: ::c_int, __param: *mut ::sched_param) -> ::c_int; + pub fn SchedGet_r(__pid: ::pid_t, __tid: ::c_int, __param: *mut ::sched_param) -> ::c_int; + pub fn SchedGetCpuNum() -> ::c_uint; + pub fn SchedSet( + __pid: ::pid_t, + __tid: ::c_int, + __algorithm: ::c_int, + __param: *const ::sched_param, + ) -> ::c_int; + pub fn SchedSet_r( + __pid: ::pid_t, + __tid: ::c_int, + __algorithm: ::c_int, + __param: *const ::sched_param, + ) -> ::c_int; + pub fn SchedInfo(__pid: ::pid_t, __algorithm: ::c_int, __info: *mut ::_sched_info) -> ::c_int; + pub fn SchedInfo_r(__pid: ::pid_t, __algorithm: ::c_int, __info: *mut ::_sched_info) + -> ::c_int; + pub fn SchedYield() -> ::c_int; + pub fn SchedYield_r() -> ::c_int; + pub fn SchedCtl(__cmd: ::c_int, __data: *mut ::c_void, __length: usize) -> ::c_int; + pub fn SchedCtl_r(__cmd: ::c_int, __data: *mut ::c_void, __length: usize) -> ::c_int; + pub fn SchedJobCreate(__job: *mut nto_job_t) -> ::c_int; + pub fn SchedJobCreate_r(__job: *mut nto_job_t) -> ::c_int; + pub fn SchedJobDestroy(__job: *mut nto_job_t) -> ::c_int; + pub fn SchedJobDestroy_r(__job: *mut nto_job_t) -> ::c_int; + pub fn SchedWaypoint( + __job: *mut nto_job_t, + __new: *const i64, + __max: *const i64, + __old: *mut i64, + ) -> ::c_int; + pub fn SchedWaypoint_r( + __job: *mut nto_job_t, + __new: *const i64, + __max: *const i64, + __old: *mut i64, + ) -> ::c_int; + + pub fn TimerCreate(__id: ::clockid_t, __notify: *const ::sigevent) -> ::c_int; + pub fn TimerCreate_r(__id: ::clockid_t, __notify: *const ::sigevent) -> ::c_int; + pub fn TimerDestroy(__id: ::timer_t) -> ::c_int; + pub fn TimerDestroy_r(__id: ::timer_t) -> ::c_int; + pub fn TimerSettime( + __id: ::timer_t, + __flags: ::c_int, + __itime: *const ::_itimer, + __oitime: *mut ::_itimer, + ) -> ::c_int; + pub fn TimerSettime_r( + __id: ::timer_t, + __flags: ::c_int, + __itime: *const ::_itimer, + __oitime: *mut ::_itimer, + ) -> ::c_int; + pub fn TimerInfo( + __pid: ::pid_t, + __id: ::timer_t, + __flags: ::c_int, + __info: *mut ::_timer_info, + ) -> ::c_int; + pub fn TimerInfo_r( + __pid: ::pid_t, + __id: ::timer_t, + __flags: ::c_int, + __info: *mut ::_timer_info, + ) -> ::c_int; + pub fn TimerAlarm( + __id: ::clockid_t, + __itime: *const ::_itimer, + __otime: *mut ::_itimer, + ) -> ::c_int; + pub fn TimerAlarm_r( + __id: ::clockid_t, + __itime: *const ::_itimer, + __otime: *mut ::_itimer, + ) -> ::c_int; + pub fn TimerTimeout( + __id: ::clockid_t, + __flags: ::c_int, + __notify: *const ::sigevent, + __ntime: *const u64, + __otime: *mut u64, + ) -> ::c_int; + pub fn TimerTimeout_r( + __id: ::clockid_t, + __flags: ::c_int, + __notify: *const ::sigevent, + __ntime: *const u64, + __otime: *mut u64, + ) -> ::c_int; + + pub fn SyncTypeCreate( + __type: ::c_uint, + __sync: *mut ::sync_t, + __attr: *const ::_sync_attr, + ) -> ::c_int; + pub fn SyncTypeCreate_r( + __type: ::c_uint, + __sync: *mut ::sync_t, + __attr: *const ::_sync_attr, + ) -> ::c_int; + pub fn SyncDestroy(__sync: *mut ::sync_t) -> ::c_int; + pub fn SyncDestroy_r(__sync: *mut ::sync_t) -> ::c_int; + pub fn SyncCtl(__cmd: ::c_int, __sync: *mut ::sync_t, __data: *mut ::c_void) -> ::c_int; + pub fn SyncCtl_r(__cmd: ::c_int, __sync: *mut ::sync_t, __data: *mut ::c_void) -> ::c_int; + pub fn SyncMutexEvent(__sync: *mut ::sync_t, event: *const ::sigevent) -> ::c_int; + pub fn SyncMutexEvent_r(__sync: *mut ::sync_t, event: *const ::sigevent) -> ::c_int; + pub fn SyncMutexLock(__sync: *mut ::sync_t) -> ::c_int; + pub fn SyncMutexLock_r(__sync: *mut ::sync_t) -> ::c_int; + pub fn SyncMutexUnlock(__sync: *mut ::sync_t) -> ::c_int; + pub fn SyncMutexUnlock_r(__sync: *mut ::sync_t) -> ::c_int; + pub fn SyncMutexRevive(__sync: *mut ::sync_t) -> ::c_int; + pub fn SyncMutexRevive_r(__sync: *mut ::sync_t) -> ::c_int; + pub fn SyncCondvarWait(__sync: *mut ::sync_t, __mutex: *mut ::sync_t) -> ::c_int; + pub fn SyncCondvarWait_r(__sync: *mut ::sync_t, __mutex: *mut ::sync_t) -> ::c_int; + pub fn SyncCondvarSignal(__sync: *mut ::sync_t, __all: ::c_int) -> ::c_int; + pub fn SyncCondvarSignal_r(__sync: *mut ::sync_t, __all: ::c_int) -> ::c_int; + pub fn SyncSemPost(__sync: *mut ::sync_t) -> ::c_int; + pub fn SyncSemPost_r(__sync: *mut ::sync_t) -> ::c_int; + pub fn SyncSemWait(__sync: *mut ::sync_t, __tryto: ::c_int) -> ::c_int; + pub fn SyncSemWait_r(__sync: *mut ::sync_t, __tryto: ::c_int) -> ::c_int; + + pub fn ClockTime(__id: ::clockid_t, _new: *const u64, __old: *mut u64) -> ::c_int; + pub fn ClockTime_r(__id: ::clockid_t, _new: *const u64, __old: *mut u64) -> ::c_int; + pub fn ClockAdjust( + __id: ::clockid_t, + _new: *const ::_clockadjust, + __old: *mut ::_clockadjust, + ) -> ::c_int; + pub fn ClockAdjust_r( + __id: ::clockid_t, + _new: *const ::_clockadjust, + __old: *mut ::_clockadjust, + ) -> ::c_int; + pub fn ClockPeriod( + __id: ::clockid_t, + _new: *const ::_clockperiod, + __old: *mut ::_clockperiod, + __reserved: ::c_int, + ) -> ::c_int; + pub fn ClockPeriod_r( + __id: ::clockid_t, + _new: *const ::_clockperiod, + __old: *mut ::_clockperiod, + __reserved: ::c_int, + ) -> ::c_int; + pub fn ClockId(__pid: ::pid_t, __tid: ::c_int) -> ::c_int; + pub fn ClockId_r(__pid: ::pid_t, __tid: ::c_int) -> ::c_int; + + // + //TODO: The following commented out functions are implemented in assembly. + // We can implmement them either via a C stub or rust's inline assembly. + // + //pub fn InterruptEnable(); + //pub fn InterruptDisable(); + pub fn InterruptMask(__intr: ::c_int, __id: ::c_int) -> ::c_int; + pub fn InterruptUnmask(__intr: ::c_int, __id: ::c_int) -> ::c_int; + //pub fn InterruptLock(__spin: *mut ::intrspin); + //pub fn InterruptUnlock(__spin: *mut ::intrspin); + //pub fn InterruptStatus() -> ::c_uint; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/nto/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/nto/x86_64.rs new file mode 100644 index 000000000..3a1d230bb --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/nto/x86_64.rs @@ -0,0 +1,132 @@ +pub type c_char = i8; +pub type wchar_t = u32; +pub type c_long = i64; +pub type c_ulong = u64; +pub type time_t = i64; + +s! { + #[repr(align(8))] + pub struct x86_64_cpu_registers { + pub rdi: u64, + pub rsi: u64, + pub rdx: u64, + pub r10: u64, + pub r8: u64, + pub r9: u64, + pub rax: u64, + pub rbx: u64, + pub rbp: u64, + pub rcx: u64, + pub r11: u64, + pub r12: u64, + pub r13: u64, + pub r14: u64, + pub r15: u64, + pub rip: u64, + pub cs: u32, + rsvd1: u32, + pub rflags: u64, + pub rsp: u64, + pub ss: u32, + rsvd2: u32, + } + + #[repr(align(8))] + pub struct mcontext_t { + pub cpu: x86_64_cpu_registers, + #[cfg(libc_union)] + pub fpu: x86_64_fpu_registers, + #[cfg(not(libc_union))] + __reserved: [u8; 1024], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } + + pub struct fsave_area_64 { + pub fpu_control_word: u32, + pub fpu_status_word: u32, + pub fpu_tag_word: u32, + pub fpu_ip: u32, + pub fpu_cs: u32, + pub fpu_op: u32, + pub fpu_ds: u32, + pub st_regs: [u8; 80], + } + + pub struct fxsave_area_64 { + pub fpu_control_word: u16, + pub fpu_status_word: u16, + pub fpu_tag_word: u16, + pub fpu_operand: u16, + pub fpu_rip: u64, + pub fpu_rdp: u64, + pub mxcsr: u32, + pub mxcsr_mask: u32, + pub st_regs: [u8; 128], + pub xmm_regs: [u8; 128], + reserved2: [u8; 224], + } + + pub struct fpu_extention_savearea_64 { + pub other: [u8; 512], + pub xstate_bv: u64, + pub xstate_undef: [u64; 7], + pub xstate_info: [u8; 224], + } +} + +s_no_extra_traits! { + #[cfg(libc_union)] + pub union x86_64_fpu_registers { + pub fsave_area: fsave_area_64, + pub fxsave_area: fxsave_area_64, + pub xsave_area: fpu_extention_savearea_64, + pub data: [u8; 1024], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + #[cfg(libc_union)] + impl Eq for x86_64_fpu_registers {} + + #[cfg(libc_union)] + impl PartialEq for x86_64_fpu_registers { + fn eq(&self, other: &x86_64_fpu_registers) -> bool { + unsafe { + self.fsave_area == other.fsave_area + || self.fxsave_area == other.fxsave_area + || self.xsave_area == other.xsave_area + } + } + } + + #[cfg(libc_union)] + impl ::fmt::Debug for x86_64_fpu_registers { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + unsafe { + f.debug_struct("x86_64_fpu_registers") + .field("fsave_area", &self.fsave_area) + .field("fxsave_area", &self.fxsave_area) + .field("xsave_area", &self.xsave_area) + .finish() + } + } + } + + #[cfg(libc_union)] + impl ::hash::Hash for x86_64_fpu_registers { + fn hash(&self, state: &mut H) { + unsafe { + self.fsave_area.hash(state); + self.fxsave_area.hash(state); + self.xsave_area.hash(state); + } + } + } + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/redox/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/redox/mod.rs new file mode 100644 index 000000000..5003cda0a --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/redox/mod.rs @@ -0,0 +1,1335 @@ +pub type c_char = i8; +pub type wchar_t = i32; + +cfg_if! { + if #[cfg(target_pointer_width = "32")] { + pub type c_long = i32; + pub type c_ulong = u32; + } +} + +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + pub type c_long = i64; + pub type c_ulong = u64; + } +} + +pub type blkcnt_t = ::c_ulong; +pub type blksize_t = ::c_long; +pub type clock_t = ::c_long; +pub type clockid_t = ::c_int; +pub type dev_t = ::c_long; +pub type fsblkcnt_t = ::c_ulong; +pub type fsfilcnt_t = ::c_ulong; +pub type ino_t = ::c_ulong; +pub type mode_t = ::c_int; +pub type nfds_t = ::c_ulong; +pub type nlink_t = ::c_ulong; +pub type off_t = ::c_longlong; +pub type pthread_t = *mut ::c_void; +pub type pthread_attr_t = *mut ::c_void; +pub type pthread_cond_t = *mut ::c_void; +pub type pthread_condattr_t = *mut ::c_void; +// Must be usize due to libstd/sys_common/thread_local.rs, +// should technically be *mut ::c_void +pub type pthread_key_t = usize; +pub type pthread_mutex_t = *mut ::c_void; +pub type pthread_mutexattr_t = *mut ::c_void; +pub type pthread_rwlock_t = *mut ::c_void; +pub type pthread_rwlockattr_t = *mut ::c_void; +pub type rlim_t = ::c_ulonglong; +pub type sa_family_t = u16; +pub type sem_t = *mut ::c_void; +pub type sigset_t = ::c_ulong; +pub type socklen_t = u32; +pub type speed_t = u32; +pub type suseconds_t = ::c_int; +pub type tcflag_t = u32; +pub type time_t = ::c_longlong; +pub type id_t = ::c_uint; +pub type pid_t = usize; +pub type uid_t = u32; +pub type gid_t = u32; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum timezone {} +impl ::Copy for timezone {} +impl ::Clone for timezone { + fn clone(&self) -> timezone { + *self + } +} + +s_no_extra_traits! { + #[repr(C)] + pub struct utsname { + pub sysname: [::c_char; UTSLENGTH], + pub nodename: [::c_char; UTSLENGTH], + pub release: [::c_char; UTSLENGTH], + pub version: [::c_char; UTSLENGTH], + pub machine: [::c_char; UTSLENGTH], + pub domainname: [::c_char; UTSLENGTH], + } + + pub struct dirent { + pub d_ino: ::ino_t, + pub d_off: ::off_t, + pub d_reclen: ::c_ushort, + pub d_type: ::c_uchar, + pub d_name: [::c_char; 256], + } + + pub struct sockaddr_un { + pub sun_family: ::sa_family_t, + pub sun_path: [::c_char; 108] + } + + pub struct sockaddr_storage { + pub ss_family: ::sa_family_t, + __ss_padding: [ + u8; + 128 - + ::core::mem::size_of::() - + ::core::mem::size_of::() + ], + __ss_align: ::c_ulong, + } +} + +s! { + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: ::size_t, + pub ai_canonname: *mut ::c_char, + pub ai_addr: *mut ::sockaddr, + pub ai_next: *mut ::addrinfo, + } + + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } + + pub struct epoll_event { + pub events: u32, + pub u64: u64, + pub _pad: u64, + } + + pub struct fd_set { + fds_bits: [::c_ulong; ::FD_SETSIZE / ULONG_SIZE], + } + + pub struct in_addr { + pub s_addr: ::in_addr_t, + } + + pub struct ip_mreq { + pub imr_multiaddr: ::in_addr, + pub imr_interface: ::in_addr, + } + + pub struct lconv { + pub currency_symbol: *const ::c_char, + pub decimal_point: *const ::c_char, + pub frac_digits: ::c_char, + pub grouping: *const ::c_char, + pub int_curr_symbol: *const ::c_char, + pub int_frac_digits: ::c_char, + pub mon_decimal_point: *const ::c_char, + pub mon_grouping: *const ::c_char, + pub mon_thousands_sep: *const ::c_char, + pub negative_sign: *const ::c_char, + pub n_cs_precedes: ::c_char, + pub n_sep_by_space: ::c_char, + pub n_sign_posn: ::c_char, + pub positive_sign: *const ::c_char, + pub p_cs_precedes: ::c_char, + pub p_sep_by_space: ::c_char, + pub p_sign_posn: ::c_char, + pub thousands_sep: *const ::c_char, + } + + pub struct passwd { + pub pw_name: *mut ::c_char, + pub pw_passwd: *mut ::c_char, + pub pw_uid: ::uid_t, + pub pw_gid: ::gid_t, + pub pw_gecos: *mut ::c_char, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char, + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_flags: ::c_ulong, + pub sa_restorer: ::Option, + pub sa_mask: ::sigset_t, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct sockaddr { + pub sa_family: ::sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_in { + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [::c_char; 8], + } + + pub struct sockaddr_in6 { + pub sin6_family: ::sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + _pad: [::c_char; 24], + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; ::NCCS], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, + } + + pub struct tm { + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int, + pub tm_gmtoff: ::c_long, + pub tm_zone: *const ::c_char, + } + + pub struct ucred { + pub pid: pid_t, + pub uid: uid_t, + pub gid: gid_t, + } +} + +pub const UTSLENGTH: usize = 65; + +// intentionally not public, only used for fd_set +cfg_if! { + if #[cfg(target_pointer_width = "32")] { + const ULONG_SIZE: usize = 32; + } else if #[cfg(target_pointer_width = "64")] { + const ULONG_SIZE: usize = 64; + } else { + // Unknown target_pointer_width + } +} + +// limits.h +pub const PATH_MAX: ::c_int = 4096; + +// fcntl.h +pub const F_GETLK: ::c_int = 5; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_ULOCK: ::c_int = 0; +pub const F_LOCK: ::c_int = 1; +pub const F_TLOCK: ::c_int = 2; +pub const F_TEST: ::c_int = 3; + +// FIXME: relibc { +pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; +// } + +// dlfcn.h +pub const RTLD_LAZY: ::c_int = 0x0001; +pub const RTLD_NOW: ::c_int = 0x0002; +pub const RTLD_GLOBAL: ::c_int = 0x0100; +pub const RTLD_LOCAL: ::c_int = 0x0000; + +// errno.h +pub const EPERM: ::c_int = 1; /* Operation not permitted */ +pub const ENOENT: ::c_int = 2; /* No such file or directory */ +pub const ESRCH: ::c_int = 3; /* No such process */ +pub const EINTR: ::c_int = 4; /* Interrupted system call */ +pub const EIO: ::c_int = 5; /* I/O error */ +pub const ENXIO: ::c_int = 6; /* No such device or address */ +pub const E2BIG: ::c_int = 7; /* Argument list too long */ +pub const ENOEXEC: ::c_int = 8; /* Exec format error */ +pub const EBADF: ::c_int = 9; /* Bad file number */ +pub const ECHILD: ::c_int = 10; /* No child processes */ +pub const EAGAIN: ::c_int = 11; /* Try again */ +pub const ENOMEM: ::c_int = 12; /* Out of memory */ +pub const EACCES: ::c_int = 13; /* Permission denied */ +pub const EFAULT: ::c_int = 14; /* Bad address */ +pub const ENOTBLK: ::c_int = 15; /* Block device required */ +pub const EBUSY: ::c_int = 16; /* Device or resource busy */ +pub const EEXIST: ::c_int = 17; /* File exists */ +pub const EXDEV: ::c_int = 18; /* Cross-device link */ +pub const ENODEV: ::c_int = 19; /* No such device */ +pub const ENOTDIR: ::c_int = 20; /* Not a directory */ +pub const EISDIR: ::c_int = 21; /* Is a directory */ +pub const EINVAL: ::c_int = 22; /* Invalid argument */ +pub const ENFILE: ::c_int = 23; /* File table overflow */ +pub const EMFILE: ::c_int = 24; /* Too many open files */ +pub const ENOTTY: ::c_int = 25; /* Not a typewriter */ +pub const ETXTBSY: ::c_int = 26; /* Text file busy */ +pub const EFBIG: ::c_int = 27; /* File too large */ +pub const ENOSPC: ::c_int = 28; /* No space left on device */ +pub const ESPIPE: ::c_int = 29; /* Illegal seek */ +pub const EROFS: ::c_int = 30; /* Read-only file system */ +pub const EMLINK: ::c_int = 31; /* Too many links */ +pub const EPIPE: ::c_int = 32; /* Broken pipe */ +pub const EDOM: ::c_int = 33; /* Math argument out of domain of func */ +pub const ERANGE: ::c_int = 34; /* Math result not representable */ +pub const EDEADLK: ::c_int = 35; /* Resource deadlock would occur */ +pub const ENAMETOOLONG: ::c_int = 36; /* File name too long */ +pub const ENOLCK: ::c_int = 37; /* No record locks available */ +pub const ENOSYS: ::c_int = 38; /* Function not implemented */ +pub const ENOTEMPTY: ::c_int = 39; /* Directory not empty */ +pub const ELOOP: ::c_int = 40; /* Too many symbolic links encountered */ +pub const EWOULDBLOCK: ::c_int = 41; /* Operation would block */ +pub const ENOMSG: ::c_int = 42; /* No message of desired type */ +pub const EIDRM: ::c_int = 43; /* Identifier removed */ +pub const ECHRNG: ::c_int = 44; /* Channel number out of range */ +pub const EL2NSYNC: ::c_int = 45; /* Level 2 not synchronized */ +pub const EL3HLT: ::c_int = 46; /* Level 3 halted */ +pub const EL3RST: ::c_int = 47; /* Level 3 reset */ +pub const ELNRNG: ::c_int = 48; /* Link number out of range */ +pub const EUNATCH: ::c_int = 49; /* Protocol driver not attached */ +pub const ENOCSI: ::c_int = 50; /* No CSI structure available */ +pub const EL2HLT: ::c_int = 51; /* Level 2 halted */ +pub const EBADE: ::c_int = 52; /* Invalid exchange */ +pub const EBADR: ::c_int = 53; /* Invalid request descriptor */ +pub const EXFULL: ::c_int = 54; /* Exchange full */ +pub const ENOANO: ::c_int = 55; /* No anode */ +pub const EBADRQC: ::c_int = 56; /* Invalid request code */ +pub const EBADSLT: ::c_int = 57; /* Invalid slot */ +pub const EDEADLOCK: ::c_int = 58; /* Resource deadlock would occur */ +pub const EBFONT: ::c_int = 59; /* Bad font file format */ +pub const ENOSTR: ::c_int = 60; /* Device not a stream */ +pub const ENODATA: ::c_int = 61; /* No data available */ +pub const ETIME: ::c_int = 62; /* Timer expired */ +pub const ENOSR: ::c_int = 63; /* Out of streams resources */ +pub const ENONET: ::c_int = 64; /* Machine is not on the network */ +pub const ENOPKG: ::c_int = 65; /* Package not installed */ +pub const EREMOTE: ::c_int = 66; /* Object is remote */ +pub const ENOLINK: ::c_int = 67; /* Link has been severed */ +pub const EADV: ::c_int = 68; /* Advertise error */ +pub const ESRMNT: ::c_int = 69; /* Srmount error */ +pub const ECOMM: ::c_int = 70; /* Communication error on send */ +pub const EPROTO: ::c_int = 71; /* Protocol error */ +pub const EMULTIHOP: ::c_int = 72; /* Multihop attempted */ +pub const EDOTDOT: ::c_int = 73; /* RFS specific error */ +pub const EBADMSG: ::c_int = 74; /* Not a data message */ +pub const EOVERFLOW: ::c_int = 75; /* Value too large for defined data type */ +pub const ENOTUNIQ: ::c_int = 76; /* Name not unique on network */ +pub const EBADFD: ::c_int = 77; /* File descriptor in bad state */ +pub const EREMCHG: ::c_int = 78; /* Remote address changed */ +pub const ELIBACC: ::c_int = 79; /* Can not access a needed shared library */ +pub const ELIBBAD: ::c_int = 80; /* Accessing a corrupted shared library */ +pub const ELIBSCN: ::c_int = 81; /* .lib section in a.out corrupted */ +/* Attempting to link in too many shared libraries */ +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; /* Cannot exec a shared library directly */ +pub const EILSEQ: ::c_int = 84; /* Illegal byte sequence */ +/* Interrupted system call should be restarted */ +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; /* Streams pipe error */ +pub const EUSERS: ::c_int = 87; /* Too many users */ +pub const ENOTSOCK: ::c_int = 88; /* Socket operation on non-socket */ +pub const EDESTADDRREQ: ::c_int = 89; /* Destination address required */ +pub const EMSGSIZE: ::c_int = 90; /* Message too long */ +pub const EPROTOTYPE: ::c_int = 91; /* Protocol wrong type for socket */ +pub const ENOPROTOOPT: ::c_int = 92; /* Protocol not available */ +pub const EPROTONOSUPPORT: ::c_int = 93; /* Protocol not supported */ +pub const ESOCKTNOSUPPORT: ::c_int = 94; /* Socket type not supported */ +/* Operation not supported on transport endpoint */ +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; /* Protocol family not supported */ +/* Address family not supported by protocol */ +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; /* Address already in use */ +pub const EADDRNOTAVAIL: ::c_int = 99; /* Cannot assign requested address */ +pub const ENETDOWN: ::c_int = 100; /* Network is down */ +pub const ENETUNREACH: ::c_int = 101; /* Network is unreachable */ +/* Network dropped connection because of reset */ +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; /* Software caused connection abort */ +pub const ECONNRESET: ::c_int = 104; /* Connection reset by peer */ +pub const ENOBUFS: ::c_int = 105; /* No buffer space available */ +pub const EISCONN: ::c_int = 106; /* Transport endpoint is already connected */ +pub const ENOTCONN: ::c_int = 107; /* Transport endpoint is not connected */ +/* Cannot send after transport endpoint shutdown */ +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; /* Too many references: cannot splice */ +pub const ETIMEDOUT: ::c_int = 110; /* Connection timed out */ +pub const ECONNREFUSED: ::c_int = 111; /* Connection refused */ +pub const EHOSTDOWN: ::c_int = 112; /* Host is down */ +pub const EHOSTUNREACH: ::c_int = 113; /* No route to host */ +pub const EALREADY: ::c_int = 114; /* Operation already in progress */ +pub const EINPROGRESS: ::c_int = 115; /* Operation now in progress */ +pub const ESTALE: ::c_int = 116; /* Stale NFS file handle */ +pub const EUCLEAN: ::c_int = 117; /* Structure needs cleaning */ +pub const ENOTNAM: ::c_int = 118; /* Not a XENIX named type file */ +pub const ENAVAIL: ::c_int = 119; /* No XENIX semaphores available */ +pub const EISNAM: ::c_int = 120; /* Is a named type file */ +pub const EREMOTEIO: ::c_int = 121; /* Remote I/O error */ +pub const EDQUOT: ::c_int = 122; /* Quota exceeded */ +pub const ENOMEDIUM: ::c_int = 123; /* No medium found */ +pub const EMEDIUMTYPE: ::c_int = 124; /* Wrong medium type */ +pub const ECANCELED: ::c_int = 125; /* Operation Canceled */ +pub const ENOKEY: ::c_int = 126; /* Required key not available */ +pub const EKEYEXPIRED: ::c_int = 127; /* Key has expired */ +pub const EKEYREVOKED: ::c_int = 128; /* Key has been revoked */ +pub const EKEYREJECTED: ::c_int = 129; /* Key was rejected by service */ +pub const EOWNERDEAD: ::c_int = 130; /* Owner died */ +pub const ENOTRECOVERABLE: ::c_int = 131; /* State not recoverable */ + +// fcntl.h +pub const F_DUPFD: ::c_int = 0; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; +// FIXME: relibc { +pub const F_DUPFD_CLOEXEC: ::c_int = ::F_DUPFD; +// } +pub const FD_CLOEXEC: ::c_int = 0x0100_0000; +pub const O_RDONLY: ::c_int = 0x0001_0000; +pub const O_WRONLY: ::c_int = 0x0002_0000; +pub const O_RDWR: ::c_int = 0x0003_0000; +pub const O_ACCMODE: ::c_int = 0x0003_0000; +pub const O_NONBLOCK: ::c_int = 0x0004_0000; +pub const O_APPEND: ::c_int = 0x0008_0000; +pub const O_SHLOCK: ::c_int = 0x0010_0000; +pub const O_EXLOCK: ::c_int = 0x0020_0000; +pub const O_ASYNC: ::c_int = 0x0040_0000; +pub const O_FSYNC: ::c_int = 0x0080_0000; +pub const O_CLOEXEC: ::c_int = 0x0100_0000; +pub const O_CREAT: ::c_int = 0x0200_0000; +pub const O_TRUNC: ::c_int = 0x0400_0000; +pub const O_EXCL: ::c_int = 0x0800_0000; +pub const O_DIRECTORY: ::c_int = 0x1000_0000; +pub const O_PATH: ::c_int = 0x2000_0000; +pub const O_SYMLINK: ::c_int = 0x4000_0000; +// Negative to allow it to be used as int +// FIXME: Fix negative values missing from includes +pub const O_NOFOLLOW: ::c_int = -0x8000_0000; + +// locale.h +pub const LC_ALL: ::c_int = 0; +pub const LC_COLLATE: ::c_int = 1; +pub const LC_CTYPE: ::c_int = 2; +pub const LC_MESSAGES: ::c_int = 3; +pub const LC_MONETARY: ::c_int = 4; +pub const LC_NUMERIC: ::c_int = 5; +pub const LC_TIME: ::c_int = 6; + +// netdb.h +pub const AI_PASSIVE: ::c_int = 0x0001; +pub const AI_CANONNAME: ::c_int = 0x0002; +pub const AI_NUMERICHOST: ::c_int = 0x0004; +pub const AI_V4MAPPED: ::c_int = 0x0008; +pub const AI_ALL: ::c_int = 0x0010; +pub const AI_ADDRCONFIG: ::c_int = 0x0020; +pub const AI_NUMERICSERV: ::c_int = 0x0400; +pub const EAI_BADFLAGS: ::c_int = -1; +pub const EAI_NONAME: ::c_int = -2; +pub const EAI_AGAIN: ::c_int = -3; +pub const EAI_FAIL: ::c_int = -4; +pub const EAI_NODATA: ::c_int = -5; +pub const EAI_FAMILY: ::c_int = -6; +pub const EAI_SOCKTYPE: ::c_int = -7; +pub const EAI_SERVICE: ::c_int = -8; +pub const EAI_ADDRFAMILY: ::c_int = -9; +pub const EAI_MEMORY: ::c_int = -10; +pub const EAI_SYSTEM: ::c_int = -11; +pub const EAI_OVERFLOW: ::c_int = -12; +pub const NI_MAXHOST: ::c_int = 1025; +pub const NI_MAXSERV: ::c_int = 32; +pub const NI_NUMERICHOST: ::c_int = 0x0001; +pub const NI_NUMERICSERV: ::c_int = 0x0002; +pub const NI_NOFQDN: ::c_int = 0x0004; +pub const NI_NAMEREQD: ::c_int = 0x0008; +pub const NI_DGRAM: ::c_int = 0x0010; + +// netinet/in.h +// FIXME: relibc { +pub const IP_TTL: ::c_int = 2; +pub const IPV6_UNICAST_HOPS: ::c_int = 16; +pub const IPV6_MULTICAST_IF: ::c_int = 17; +pub const IPV6_MULTICAST_HOPS: ::c_int = 18; +pub const IPV6_MULTICAST_LOOP: ::c_int = 19; +pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; +pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; +pub const IPV6_V6ONLY: ::c_int = 26; +pub const IP_MULTICAST_IF: ::c_int = 32; +pub const IP_MULTICAST_TTL: ::c_int = 33; +pub const IP_MULTICAST_LOOP: ::c_int = 34; +pub const IP_ADD_MEMBERSHIP: ::c_int = 35; +pub const IP_DROP_MEMBERSHIP: ::c_int = 36; +pub const IPPROTO_RAW: ::c_int = 255; +// } + +// netinet/tcp.h +pub const TCP_NODELAY: ::c_int = 1; +// FIXME: relibc { +pub const TCP_KEEPIDLE: ::c_int = 1; +// } + +// poll.h +pub const POLLIN: ::c_short = 0x001; +pub const POLLPRI: ::c_short = 0x002; +pub const POLLOUT: ::c_short = 0x004; +pub const POLLERR: ::c_short = 0x008; +pub const POLLHUP: ::c_short = 0x010; +pub const POLLNVAL: ::c_short = 0x020; +pub const POLLRDNORM: ::c_short = 0x040; +pub const POLLRDBAND: ::c_short = 0x080; +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +// pthread.h +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; +pub const PTHREAD_MUTEX_INITIALIZER: ::pthread_mutex_t = -1isize as *mut _; +pub const PTHREAD_COND_INITIALIZER: ::pthread_cond_t = -1isize as *mut _; +pub const PTHREAD_RWLOCK_INITIALIZER: ::pthread_rwlock_t = -1isize as *mut _; +pub const PTHREAD_STACK_MIN: ::size_t = 4096; + +// signal.h +pub const SIG_BLOCK: ::c_int = 0; +pub const SIG_UNBLOCK: ::c_int = 1; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGTRAP: ::c_int = 5; +pub const SIGABRT: ::c_int = 6; +pub const SIGBUS: ::c_int = 7; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGUSR1: ::c_int = 10; +pub const SIGSEGV: ::c_int = 11; +pub const SIGUSR2: ::c_int = 12; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGCHLD: ::c_int = 17; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGURG: ::c_int = 23; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGIO: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIGSYS: ::c_int = 31; +pub const NSIG: ::c_int = 32; + +pub const SA_NOCLDSTOP: ::c_ulong = 0x00000001; +pub const SA_NOCLDWAIT: ::c_ulong = 0x00000002; +pub const SA_SIGINFO: ::c_ulong = 0x00000004; +pub const SA_RESTORER: ::c_ulong = 0x04000000; +pub const SA_ONSTACK: ::c_ulong = 0x08000000; +pub const SA_RESTART: ::c_ulong = 0x10000000; +pub const SA_NODEFER: ::c_ulong = 0x40000000; +pub const SA_RESETHAND: ::c_ulong = 0x80000000; + +// sys/file.h +pub const LOCK_SH: ::c_int = 1; +pub const LOCK_EX: ::c_int = 2; +pub const LOCK_NB: ::c_int = 4; +pub const LOCK_UN: ::c_int = 8; + +// sys/epoll.h +pub const EPOLL_CLOEXEC: ::c_int = 0x0100_0000; +pub const EPOLL_CTL_ADD: ::c_int = 1; +pub const EPOLL_CTL_DEL: ::c_int = 2; +pub const EPOLL_CTL_MOD: ::c_int = 3; +pub const EPOLLIN: ::c_int = 1; +pub const EPOLLPRI: ::c_int = 0; +pub const EPOLLOUT: ::c_int = 2; +pub const EPOLLRDNORM: ::c_int = 0; +pub const EPOLLNVAL: ::c_int = 0; +pub const EPOLLRDBAND: ::c_int = 0; +pub const EPOLLWRNORM: ::c_int = 0; +pub const EPOLLWRBAND: ::c_int = 0; +pub const EPOLLMSG: ::c_int = 0; +pub const EPOLLERR: ::c_int = 0; +pub const EPOLLHUP: ::c_int = 0; +pub const EPOLLRDHUP: ::c_int = 0; +pub const EPOLLEXCLUSIVE: ::c_int = 0; +pub const EPOLLWAKEUP: ::c_int = 0; +pub const EPOLLONESHOT: ::c_int = 0; +pub const EPOLLET: ::c_int = 0; + +// sys/stat.h +pub const S_IFMT: ::c_int = 0o0_170_000; +pub const S_IFDIR: ::c_int = 0o040_000; +pub const S_IFCHR: ::c_int = 0o020_000; +pub const S_IFBLK: ::c_int = 0o060_000; +pub const S_IFREG: ::c_int = 0o100_000; +pub const S_IFIFO: ::c_int = 0o010_000; +pub const S_IFLNK: ::c_int = 0o120_000; +pub const S_IFSOCK: ::c_int = 0o140_000; +pub const S_IRWXU: ::c_int = 0o0_700; +pub const S_IRUSR: ::c_int = 0o0_400; +pub const S_IWUSR: ::c_int = 0o0_200; +pub const S_IXUSR: ::c_int = 0o0_100; +pub const S_IRWXG: ::c_int = 0o0_070; +pub const S_IRGRP: ::c_int = 0o0_040; +pub const S_IWGRP: ::c_int = 0o0_020; +pub const S_IXGRP: ::c_int = 0o0_010; +pub const S_IRWXO: ::c_int = 0o0_007; +pub const S_IROTH: ::c_int = 0o0_004; +pub const S_IWOTH: ::c_int = 0o0_002; +pub const S_IXOTH: ::c_int = 0o0_001; + +// stdlib.h +pub const EXIT_SUCCESS: ::c_int = 0; +pub const EXIT_FAILURE: ::c_int = 1; + +// sys/ioctl.h +// FIXME: relibc { +pub const FIONREAD: ::c_ulong = 0x541B; +pub const FIONBIO: ::c_ulong = 0x5421; +pub const FIOCLEX: ::c_ulong = 0x5451; +// } +pub const TCGETS: ::c_ulong = 0x5401; +pub const TCSETS: ::c_ulong = 0x5402; +pub const TCFLSH: ::c_ulong = 0x540B; +pub const TIOCGPGRP: ::c_ulong = 0x540F; +pub const TIOCSPGRP: ::c_ulong = 0x5410; +pub const TIOCGWINSZ: ::c_ulong = 0x5413; +pub const TIOCSWINSZ: ::c_ulong = 0x5414; + +// sys/mman.h +pub const PROT_NONE: ::c_int = 0x0000; +pub const PROT_READ: ::c_int = 0x0004; +pub const PROT_WRITE: ::c_int = 0x0002; +pub const PROT_EXEC: ::c_int = 0x0001; + +pub const MADV_NORMAL: ::c_int = 0; +pub const MADV_RANDOM: ::c_int = 1; +pub const MADV_SEQUENTIAL: ::c_int = 2; +pub const MADV_WILLNEED: ::c_int = 3; +pub const MADV_DONTNEED: ::c_int = 4; + +pub const MAP_SHARED: ::c_int = 0x0001; +pub const MAP_PRIVATE: ::c_int = 0x0002; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; +pub const MAP_FIXED: ::c_int = 0x0010; +pub const MAP_FAILED: *mut ::c_void = !0 as _; + +pub const MS_ASYNC: ::c_int = 0x0001; +pub const MS_INVALIDATE: ::c_int = 0x0002; +pub const MS_SYNC: ::c_int = 0x0004; + +// sys/select.h +pub const FD_SETSIZE: usize = 1024; + +// sys/socket.h +pub const AF_INET: ::c_int = 2; +pub const AF_INET6: ::c_int = 10; +pub const AF_UNIX: ::c_int = 1; +pub const AF_UNSPEC: ::c_int = 0; +pub const PF_INET: ::c_int = 2; +pub const PF_INET6: ::c_int = 10; +pub const PF_UNIX: ::c_int = 1; +pub const PF_UNSPEC: ::c_int = 0; +pub const MSG_CTRUNC: ::c_int = 8; +pub const MSG_DONTROUTE: ::c_int = 4; +pub const MSG_EOR: ::c_int = 128; +pub const MSG_OOB: ::c_int = 1; +pub const MSG_PEEK: ::c_int = 2; +pub const MSG_TRUNC: ::c_int = 32; +pub const MSG_DONTWAIT: ::c_int = 64; +pub const MSG_WAITALL: ::c_int = 256; +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; +pub const SO_DEBUG: ::c_int = 1; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_LINGER: ::c_int = 13; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_PASSCRED: ::c_int = 16; +pub const SO_PEERCRED: ::c_int = 17; +pub const SO_RCVLOWAT: ::c_int = 18; +pub const SO_SNDLOWAT: ::c_int = 19; +pub const SO_RCVTIMEO: ::c_int = 20; +pub const SO_SNDTIMEO: ::c_int = 21; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_PEERSEC: ::c_int = 31; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_NONBLOCK: ::c_int = 0o4_000; +pub const SOCK_CLOEXEC: ::c_int = 0o2_000_000; +pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOL_SOCKET: ::c_int = 1; + +// sys/termios.h +pub const VEOF: usize = 0; +pub const VEOL: usize = 1; +pub const VEOL2: usize = 2; +pub const VERASE: usize = 3; +pub const VWERASE: usize = 4; +pub const VKILL: usize = 5; +pub const VREPRINT: usize = 6; +pub const VSWTC: usize = 7; +pub const VINTR: usize = 8; +pub const VQUIT: usize = 9; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 12; +pub const VSTOP: usize = 13; +pub const VLNEXT: usize = 14; +pub const VDISCARD: usize = 15; +pub const VMIN: usize = 16; +pub const VTIME: usize = 17; +pub const NCCS: usize = 32; + +pub const IGNBRK: ::tcflag_t = 0o000_001; +pub const BRKINT: ::tcflag_t = 0o000_002; +pub const IGNPAR: ::tcflag_t = 0o000_004; +pub const PARMRK: ::tcflag_t = 0o000_010; +pub const INPCK: ::tcflag_t = 0o000_020; +pub const ISTRIP: ::tcflag_t = 0o000_040; +pub const INLCR: ::tcflag_t = 0o000_100; +pub const IGNCR: ::tcflag_t = 0o000_200; +pub const ICRNL: ::tcflag_t = 0o000_400; +pub const IXON: ::tcflag_t = 0o001_000; +pub const IXOFF: ::tcflag_t = 0o002_000; + +pub const OPOST: ::tcflag_t = 0o000_001; +pub const ONLCR: ::tcflag_t = 0o000_002; +pub const OLCUC: ::tcflag_t = 0o000_004; +pub const OCRNL: ::tcflag_t = 0o000_010; +pub const ONOCR: ::tcflag_t = 0o000_020; +pub const ONLRET: ::tcflag_t = 0o000_040; +pub const OFILL: ::tcflag_t = 0o0000_100; +pub const OFDEL: ::tcflag_t = 0o0000_200; + +pub const B0: speed_t = 0o000_000; +pub const B50: speed_t = 0o000_001; +pub const B75: speed_t = 0o000_002; +pub const B110: speed_t = 0o000_003; +pub const B134: speed_t = 0o000_004; +pub const B150: speed_t = 0o000_005; +pub const B200: speed_t = 0o000_006; +pub const B300: speed_t = 0o000_007; +pub const B600: speed_t = 0o000_010; +pub const B1200: speed_t = 0o000_011; +pub const B1800: speed_t = 0o000_012; +pub const B2400: speed_t = 0o000_013; +pub const B4800: speed_t = 0o000_014; +pub const B9600: speed_t = 0o000_015; +pub const B19200: speed_t = 0o000_016; +pub const B38400: speed_t = 0o000_017; + +pub const B57600: speed_t = 0o0_020; +pub const B115200: speed_t = 0o0_021; +pub const B230400: speed_t = 0o0_022; +pub const B460800: speed_t = 0o0_023; +pub const B500000: speed_t = 0o0_024; +pub const B576000: speed_t = 0o0_025; +pub const B921600: speed_t = 0o0_026; +pub const B1000000: speed_t = 0o0_027; +pub const B1152000: speed_t = 0o0_030; +pub const B1500000: speed_t = 0o0_031; +pub const B2000000: speed_t = 0o0_032; +pub const B2500000: speed_t = 0o0_033; +pub const B3000000: speed_t = 0o0_034; +pub const B3500000: speed_t = 0o0_035; +pub const B4000000: speed_t = 0o0_036; + +pub const CSIZE: ::tcflag_t = 0o001_400; +pub const CS5: ::tcflag_t = 0o000_000; +pub const CS6: ::tcflag_t = 0o000_400; +pub const CS7: ::tcflag_t = 0o001_000; +pub const CS8: ::tcflag_t = 0o001_400; + +pub const CSTOPB: ::tcflag_t = 0o002_000; +pub const CREAD: ::tcflag_t = 0o004_000; +pub const PARENB: ::tcflag_t = 0o010_000; +pub const PARODD: ::tcflag_t = 0o020_000; +pub const HUPCL: ::tcflag_t = 0o040_000; + +pub const CLOCAL: ::tcflag_t = 0o0100000; + +pub const ISIG: ::tcflag_t = 0x0000_0080; +pub const ICANON: ::tcflag_t = 0x0000_0100; +pub const ECHO: ::tcflag_t = 0x0000_0008; +pub const ECHOE: ::tcflag_t = 0x0000_0002; +pub const ECHOK: ::tcflag_t = 0x0000_0004; +pub const ECHONL: ::tcflag_t = 0x0000_0010; +pub const NOFLSH: ::tcflag_t = 0x8000_0000; +pub const TOSTOP: ::tcflag_t = 0x0040_0000; +pub const IEXTEN: ::tcflag_t = 0x0000_0400; + +pub const TCOOFF: ::c_int = 0; +pub const TCOON: ::c_int = 1; +pub const TCIOFF: ::c_int = 2; +pub const TCION: ::c_int = 3; + +pub const TCIFLUSH: ::c_int = 0; +pub const TCOFLUSH: ::c_int = 1; +pub const TCIOFLUSH: ::c_int = 2; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +// sys/wait.h +pub const WNOHANG: ::c_int = 1; +pub const WUNTRACED: ::c_int = 2; + +pub const WSTOPPED: ::c_int = 2; +pub const WEXITED: ::c_int = 4; +pub const WCONTINUED: ::c_int = 8; +pub const WNOWAIT: ::c_int = 0x0100_0000; + +pub const __WNOTHREAD: ::c_int = 0x2000_0000; +pub const __WALL: ::c_int = 0x4000_0000; +#[allow(overflowing_literals)] +pub const __WCLONE: ::c_int = 0x8000_0000; + +// time.h +pub const CLOCK_REALTIME: ::c_int = 1; +pub const CLOCK_MONOTONIC: ::c_int = 4; +pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; +pub const CLOCKS_PER_SEC: ::clock_t = 1_000_000; + +// unistd.h +// POSIX.1 { +pub const _SC_ARG_MAX: ::c_int = 0; +pub const _SC_CHILD_MAX: ::c_int = 1; +pub const _SC_CLK_TCK: ::c_int = 2; +pub const _SC_NGROUPS_MAX: ::c_int = 3; +pub const _SC_OPEN_MAX: ::c_int = 4; +pub const _SC_STREAM_MAX: ::c_int = 5; +pub const _SC_TZNAME_MAX: ::c_int = 6; +// ... +pub const _SC_VERSION: ::c_int = 29; +pub const _SC_PAGESIZE: ::c_int = 30; +pub const _SC_PAGE_SIZE: ::c_int = 30; +// ... +pub const _SC_RE_DUP_MAX: ::c_int = 44; +// ... +pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; +pub const _SC_TTY_NAME_MAX: ::c_int = 72; +// ... +pub const _SC_SYMLOOP_MAX: ::c_int = 173; +// ... +pub const _SC_HOST_NAME_MAX: ::c_int = 180; +// } POSIX.1 + +pub const F_OK: ::c_int = 0; +pub const R_OK: ::c_int = 4; +pub const W_OK: ::c_int = 2; +pub const X_OK: ::c_int = 1; + +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; + +pub const _PC_LINK_MAX: ::c_int = 0; +pub const _PC_MAX_CANON: ::c_int = 1; +pub const _PC_MAX_INPUT: ::c_int = 2; +pub const _PC_NAME_MAX: ::c_int = 3; +pub const _PC_PATH_MAX: ::c_int = 4; +pub const _PC_PIPE_BUF: ::c_int = 5; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; +pub const _PC_NO_TRUNC: ::c_int = 7; +pub const _PC_VDISABLE: ::c_int = 8; +pub const _PC_SYNC_IO: ::c_int = 9; +pub const _PC_ASYNC_IO: ::c_int = 10; +pub const _PC_PRIO_IO: ::c_int = 11; +pub const _PC_SOCK_MAXBUF: ::c_int = 12; +pub const _PC_FILESIZEBITS: ::c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; +pub const _PC_REC_XFER_ALIGN: ::c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; +pub const _PC_SYMLINK_MAX: ::c_int = 19; +pub const _PC_2_SYMLINKS: ::c_int = 20; + +pub const PRIO_PROCESS: ::c_int = 0; +pub const PRIO_PGRP: ::c_int = 1; +pub const PRIO_USER: ::c_int = 2; + +// wait.h +f! { + pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] &= !(1 << (fd % size)); + return + } + + pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 + } + + pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] |= 1 << (fd % size); + return + } + + pub fn FD_ZERO(set: *mut fd_set) -> () { + for slot in (*set).fds_bits.iter_mut() { + *slot = 0; + } + } +} + +safe_f! { + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + (status & 0xff) == 0x7f + } + + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } + + pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + status == 0xffff + } + + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + ((status & 0x7f) + 1) as i8 >= 2 + } + + pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + status & 0x7f + } + + pub {const} fn WIFEXITED(status: ::c_int) -> bool { + (status & 0x7f) == 0 + } + + pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } + + pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + (status & 0x80) != 0 + } +} + +extern "C" { + // errno.h + pub fn __errno_location() -> *mut ::c_int; + pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + + // unistd.h + pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; + pub fn getdtablesize() -> ::c_int; + + // grp.h + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn getgrouplist( + user: *const ::c_char, + group: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; + + // malloc.h + pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + + // netdb.h + pub fn getnameinfo( + addr: *const ::sockaddr, + addrlen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + servlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + + // pthread.h + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + pub fn pthread_create( + tid: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + start: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + arg: *mut ::c_void, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + + // pwd.h + pub fn getpwent() -> *mut passwd; + pub fn setpwent(); + pub fn endpwent(); + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + + // signal.h + pub fn pthread_sigmask( + how: ::c_int, + set: *const ::sigset_t, + oldset: *mut ::sigset_t, + ) -> ::c_int; + pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; + pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; + pub fn sigtimedwait( + set: *const sigset_t, + sig: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + + // stdlib.h + pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; + + // string.h + pub fn strlcat(dst: *mut ::c_char, src: *const ::c_char, siz: ::size_t) -> ::size_t; + pub fn strlcpy(dst: *mut ::c_char, src: *const ::c_char, siz: ::size_t) -> ::size_t; + + // sys/epoll.h + pub fn epoll_create(size: ::c_int) -> ::c_int; + pub fn epoll_create1(flags: ::c_int) -> ::c_int; + pub fn epoll_wait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + ) -> ::c_int; + pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) + -> ::c_int; + + // sys/ioctl.h + pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; + + // sys/mman.h + pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; + pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + + // sys/resource.h + pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; + pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + + // sys/socket.h + pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; + + // sys/stat.h + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + + // sys/uio.h + pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + + // sys/utsname.h + pub fn uname(utsname: *mut utsname) -> ::c_int; + + // time.h + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + + // strings.h + pub fn explicit_bzero(p: *mut ::c_void, len: ::size_t); + + pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; + pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; + + pub fn getsubopt( + optionp: *mut *mut c_char, + tokens: *const *mut c_char, + valuep: *mut *mut c_char, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_ino == other.d_ino + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for dirent {} + + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_ino", &self.d_ino) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_ino.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for sockaddr_un { + fn eq(&self, other: &sockaddr_un) -> bool { + self.sun_family == other.sun_family + && self + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for sockaddr_un {} + + impl ::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_un") + .field("sun_family", &self.sun_family) + // FIXME: .field("sun_path", &self.sun_path) + .finish() + } + } + + impl ::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { + self.sun_family.hash(state); + self.sun_path.hash(state); + } + } + + impl PartialEq for sockaddr_storage { + fn eq(&self, other: &sockaddr_storage) -> bool { + self.ss_family == other.ss_family + && self.__ss_align == self.__ss_align + && self + .__ss_padding + .iter() + .zip(other.__ss_padding.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for sockaddr_storage {} + + impl ::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_storage") + .field("ss_family", &self.ss_family) + .field("__ss_align", &self.__ss_align) + // FIXME: .field("__ss_padding", &self.__ss_padding) + .finish() + } + } + + impl ::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { + self.ss_family.hash(state); + self.__ss_padding.hash(state); + self.__ss_align.hash(state); + } + } + + impl PartialEq for utsname { + fn eq(&self, other: &utsname) -> bool { + self.sysname + .iter() + .zip(other.sysname.iter()) + .all(|(a, b)| a == b) + && self + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a, b)| a == b) + && self + .release + .iter() + .zip(other.release.iter()) + .all(|(a, b)| a == b) + && self + .version + .iter() + .zip(other.version.iter()) + .all(|(a, b)| a == b) + && self + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a, b)| a == b) + && self + .domainname + .iter() + .zip(other.domainname.iter()) + .all(|(a, b)| a == b) + } + } + + impl Eq for utsname {} + + impl ::fmt::Debug for utsname { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utsname") + // FIXME: .field("sysname", &self.sysname) + // FIXME: .field("nodename", &self.nodename) + // FIXME: .field("release", &self.release) + // FIXME: .field("version", &self.version) + // FIXME: .field("machine", &self.machine) + // FIXME: .field("domainname", &self.domainname) + .finish() + } + } + + impl ::hash::Hash for utsname { + fn hash(&self, state: &mut H) { + self.sysname.hash(state); + self.nodename.hash(state); + self.release.hash(state); + self.version.hash(state); + self.machine.hash(state); + self.domainname.hash(state); + } + } + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/compat.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/compat.rs new file mode 100644 index 000000000..cbf955a31 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/solarish/compat.rs @@ -0,0 +1,220 @@ +// Common functions that are unfortunately missing on illumos and +// Solaris, but often needed by other crates. + +use core::cmp::min; +use unix::solarish::*; + +const PTEM: &[u8] = b"ptem\0"; +const LDTERM: &[u8] = b"ldterm\0"; + +pub unsafe fn cfmakeraw(termios: *mut ::termios) { + (*termios).c_iflag &= + !(IMAXBEL | IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); + (*termios).c_oflag &= !OPOST; + (*termios).c_lflag &= !(ECHO | ECHONL | ICANON | ISIG | IEXTEN); + (*termios).c_cflag &= !(CSIZE | PARENB); + (*termios).c_cflag |= CS8; + + // By default, most software expects a pending read to block until at + // least one byte becomes available. As per termio(7I), this requires + // setting the MIN and TIME parameters appropriately. + // + // As a somewhat unfortunate artefact of history, the MIN and TIME slots + // in the control character array overlap with the EOF and EOL slots used + // for canonical mode processing. Because the EOF character needs to be + // the ASCII EOT value (aka Control-D), it has the byte value 4. When + // switching to raw mode, this is interpreted as a MIN value of 4; i.e., + // reads will block until at least four bytes have been input. + // + // Other platforms with a distinct MIN slot like Linux and FreeBSD appear + // to default to a MIN value of 1, so we'll force that value here: + (*termios).c_cc[VMIN] = 1; + (*termios).c_cc[VTIME] = 0; +} + +pub unsafe fn cfsetspeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int { + // Neither of these functions on illumos or Solaris actually ever + // return an error + ::cfsetispeed(termios, speed); + ::cfsetospeed(termios, speed); + 0 +} + +unsafe fn bail(fdm: ::c_int, fds: ::c_int) -> ::c_int { + let e = *___errno(); + if fds >= 0 { + ::close(fds); + } + if fdm >= 0 { + ::close(fdm); + } + *___errno() = e; + return -1; +} + +pub unsafe fn openpty( + amain: *mut ::c_int, + asubord: *mut ::c_int, + name: *mut ::c_char, + termp: *const termios, + winp: *const ::winsize, +) -> ::c_int { + // Open the main pseudo-terminal device, making sure not to set it as the + // controlling terminal for this process: + let fdm = ::posix_openpt(O_RDWR | O_NOCTTY); + if fdm < 0 { + return -1; + } + + // Set permissions and ownership on the subordinate device and unlock it: + if ::grantpt(fdm) < 0 || ::unlockpt(fdm) < 0 { + return bail(fdm, -1); + } + + // Get the path name of the subordinate device: + let subordpath = ::ptsname(fdm); + if subordpath.is_null() { + return bail(fdm, -1); + } + + // Open the subordinate device without setting it as the controlling + // terminal for this process: + let fds = ::open(subordpath, O_RDWR | O_NOCTTY); + if fds < 0 { + return bail(fdm, -1); + } + + // Check if the STREAMS modules are already pushed: + let setup = ::ioctl(fds, I_FIND, LDTERM.as_ptr()); + if setup < 0 { + return bail(fdm, fds); + } else if setup == 0 { + // The line discipline is not present, so push the appropriate STREAMS + // modules for the subordinate device: + if ::ioctl(fds, I_PUSH, PTEM.as_ptr()) < 0 || ::ioctl(fds, I_PUSH, LDTERM.as_ptr()) < 0 { + return bail(fdm, fds); + } + } + + // If provided, set the terminal parameters: + if !termp.is_null() && ::tcsetattr(fds, TCSAFLUSH, termp) != 0 { + return bail(fdm, fds); + } + + // If provided, set the window size: + if !winp.is_null() && ::ioctl(fds, TIOCSWINSZ, winp) < 0 { + return bail(fdm, fds); + } + + // If the caller wants the name of the subordinate device, copy it out. + // + // Note that this is a terrible interface: there appears to be no standard + // upper bound on the copy length for this pointer. Nobody should pass + // anything but NULL here, preferring instead to use ptsname(3C) directly. + if !name.is_null() { + ::strcpy(name, subordpath); + } + + *amain = fdm; + *asubord = fds; + 0 +} + +pub unsafe fn forkpty( + amain: *mut ::c_int, + name: *mut ::c_char, + termp: *const termios, + winp: *const ::winsize, +) -> ::pid_t { + let mut fds = -1; + + if openpty(amain, &mut fds, name, termp, winp) != 0 { + return -1; + } + + let pid = ::fork(); + if pid < 0 { + return bail(*amain, fds); + } else if pid > 0 { + // In the parent process, we close the subordinate device and return the + // process ID of the new child: + ::close(fds); + return pid; + } + + // The rest of this function executes in the child process. + + // Close the main side of the pseudo-terminal pair: + ::close(*amain); + + // Use TIOCSCTTY to set the subordinate device as our controlling + // terminal. This will fail (with ENOTTY) if we are not the leader in + // our own session, so we call setsid() first. Finally, arrange for + // the pseudo-terminal to occupy the standard I/O descriptors. + if ::setsid() < 0 + || ::ioctl(fds, TIOCSCTTY, 0) < 0 + || ::dup2(fds, 0) < 0 + || ::dup2(fds, 1) < 0 + || ::dup2(fds, 2) < 0 + { + // At this stage there are no particularly good ways to handle failure. + // Exit as abruptly as possible, using _exit() to avoid messing with any + // state still shared with the parent process. + ::_exit(EXIT_FAILURE); + } + // Close the inherited descriptor, taking care to avoid closing the standard + // descriptors by mistake: + if fds > 2 { + ::close(fds); + } + + 0 +} + +pub unsafe fn getpwent_r( + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, +) -> ::c_int { + let old_errno = *::___errno(); + *::___errno() = 0; + *result = native_getpwent_r( + pwd, + buf, + min(buflen, ::c_int::max_value() as ::size_t) as ::c_int, + ); + + let ret = if (*result).is_null() { + *::___errno() + } else { + 0 + }; + *::___errno() = old_errno; + + ret +} + +pub unsafe fn getgrent_r( + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, +) -> ::c_int { + let old_errno = *::___errno(); + *::___errno() = 0; + *result = native_getgrent_r( + grp, + buf, + min(buflen, ::c_int::max_value() as ::size_t) as ::c_int, + ); + + let ret = if (*result).is_null() { + *::___errno() + } else { + 0 + }; + *::___errno() = old_errno; + + ret +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/illumos.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/illumos.rs new file mode 100644 index 000000000..404f013da --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/solarish/illumos.rs @@ -0,0 +1,88 @@ +s! { + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_amp: *mut ::c_void, + pub shm_lkcnt: ::c_ushort, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + pub shm_cnattch: ::c_ulong, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_pad4: [i64; 4], + } + + pub struct fil_info { + pub fi_flags: ::c_int, + pub fi_pos: ::c_int, + pub fi_name: [::c_char; ::FILNAME_MAX as usize], + } +} + +pub const AF_LOCAL: ::c_int = 1; // AF_UNIX +pub const AF_FILE: ::c_int = 1; // AF_UNIX + +pub const EFD_SEMAPHORE: ::c_int = 0x1; +pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const EFD_CLOEXEC: ::c_int = 0x80000; + +pub const TCP_KEEPIDLE: ::c_int = 34; +pub const TCP_KEEPCNT: ::c_int = 35; +pub const TCP_KEEPINTVL: ::c_int = 36; +pub const TCP_CONGESTION: ::c_int = 37; + +// These constants are correct for 64-bit programs or 32-bit programs that are +// not using large-file mode. If Rust ever supports anything other than 64-bit +// compilation on illumos, this may require adjustment: +pub const F_OFD_GETLK: ::c_int = 47; +pub const F_OFD_SETLK: ::c_int = 48; +pub const F_OFD_SETLKW: ::c_int = 49; +pub const F_FLOCK: ::c_int = 53; +pub const F_FLOCKW: ::c_int = 54; + +pub const F_DUPFD_CLOEXEC: ::c_int = 37; +pub const F_DUP2FD_CLOEXEC: ::c_int = 36; + +pub const FIL_ATTACH: ::c_int = 0x1; +pub const FIL_DETACH: ::c_int = 0x2; +pub const FIL_LIST: ::c_int = 0x3; +pub const FILNAME_MAX: ::c_int = 32; +pub const FILF_PROG: ::c_int = 0x1; +pub const FILF_AUTO: ::c_int = 0x2; +pub const FILF_BYPASS: ::c_int = 0x4; +pub const SOL_FILTER: ::c_int = 0xfffc; + +pub const MADV_PURGE: ::c_int = 9; + +pub const B1000000: ::speed_t = 24; +pub const B1152000: ::speed_t = 25; +pub const B1500000: ::speed_t = 26; +pub const B2000000: ::speed_t = 27; +pub const B2500000: ::speed_t = 28; +pub const B3000000: ::speed_t = 29; +pub const B3500000: ::speed_t = 30; +pub const B4000000: ::speed_t = 31; + +// sys/systeminfo.h +pub const SI_ADDRESS_WIDTH: ::c_int = 520; + +extern "C" { + pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; + + pub fn mincore(addr: ::caddr_t, len: ::size_t, vec: *mut ::c_char) -> ::c_int; + + pub fn pset_bind_lwp( + pset: ::psetid_t, + id: ::id_t, + pid: ::pid_t, + opset: *mut ::psetid_t, + ) -> ::c_int; + pub fn pset_getloadavg(pset: ::psetid_t, load: *mut ::c_double, num: ::c_int) -> ::c_int; + + pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; + pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) + -> ::ssize_t; + pub fn getpagesizes2(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/mod.rs new file mode 100644 index 000000000..400de8a26 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/solarish/mod.rs @@ -0,0 +1,3302 @@ +pub type c_char = i8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type caddr_t = *mut ::c_char; + +pub type clockid_t = ::c_int; +pub type blkcnt_t = ::c_long; +pub type clock_t = ::c_long; +pub type daddr_t = ::c_long; +pub type dev_t = ::c_ulong; +pub type fsblkcnt_t = ::c_ulong; +pub type fsfilcnt_t = ::c_ulong; +pub type ino_t = ::c_ulong; +pub type key_t = ::c_int; +pub type major_t = ::c_uint; +pub type minor_t = ::c_uint; +pub type mode_t = ::c_uint; +pub type nlink_t = ::c_uint; +pub type rlim_t = ::c_ulong; +pub type speed_t = ::c_uint; +pub type tcflag_t = ::c_uint; +pub type time_t = ::c_long; +pub type timer_t = ::c_int; +pub type wchar_t = ::c_int; +pub type nfds_t = ::c_ulong; +pub type projid_t = ::c_int; +pub type zoneid_t = ::c_int; +pub type psetid_t = ::c_int; +pub type processorid_t = ::c_int; +pub type chipid_t = ::c_int; +pub type ctid_t = ::id_t; + +pub type suseconds_t = ::c_long; +pub type off_t = ::c_long; +pub type useconds_t = ::c_uint; +pub type socklen_t = ::c_uint; +pub type sa_family_t = u16; +pub type pthread_t = ::c_uint; +pub type pthread_key_t = ::c_uint; +pub type thread_t = ::c_uint; +pub type blksize_t = ::c_int; +pub type nl_item = ::c_int; +pub type mqd_t = *mut ::c_void; +pub type id_t = ::c_int; +pub type idtype_t = ::c_uint; +pub type shmatt_t = ::c_ulong; + +pub type lgrp_rsrc_t = ::c_int; +pub type lgrp_affinity_t = ::c_int; +pub type lgrp_id_t = ::id_t; +pub type lgrp_mem_size_t = ::c_longlong; +pub type lgrp_cookie_t = ::uintptr_t; +pub type lgrp_content_t = ::c_uint; +pub type lgrp_lat_between_t = ::c_uint; +pub type lgrp_mem_size_flag_t = ::c_uint; +pub type lgrp_view_t = ::c_uint; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum timezone {} +impl ::Copy for timezone {} +impl ::Clone for timezone { + fn clone(&self) -> timezone { + *self + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum ucred_t {} +impl ::Copy for ucred_t {} +impl ::Clone for ucred_t { + fn clone(&self) -> ucred_t { + *self + } +} + +s! { + pub struct in_addr { + pub s_addr: ::in_addr_t, + } + + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct ip_mreq_source { + pub imr_multiaddr: in_addr, + pub imr_sourceaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct ipc_perm { + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub seq: ::c_uint, + pub key: ::key_t, + } + + pub struct sockaddr { + pub sa_family: sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_in { + pub sin_family: sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [::c_char; 8] + } + + pub struct sockaddr_in6 { + pub sin6_family: sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + pub __sin6_src_id: u32 + } + + pub struct passwd { + pub pw_name: *mut ::c_char, + pub pw_passwd: *mut ::c_char, + pub pw_uid: ::uid_t, + pub pw_gid: ::gid_t, + pub pw_age: *mut ::c_char, + pub pw_comment: *mut ::c_char, + pub pw_gecos: *mut ::c_char, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char + } + + pub struct ifaddrs { + pub ifa_next: *mut ifaddrs, + pub ifa_name: *mut ::c_char, + pub ifa_flags: ::c_ulong, + pub ifa_addr: *mut ::sockaddr, + pub ifa_netmask: *mut ::sockaddr, + pub ifa_dstaddr: *mut ::sockaddr, + pub ifa_data: *mut ::c_void + } + + pub struct itimerspec { + pub it_interval: ::timespec, + pub it_value: ::timespec, + } + + pub struct tm { + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::socklen_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: ::socklen_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct pthread_attr_t { + __pthread_attrp: *mut ::c_void + } + + pub struct pthread_mutex_t { + __pthread_mutex_flag1: u16, + __pthread_mutex_flag2: u8, + __pthread_mutex_ceiling: u8, + __pthread_mutex_type: u16, + __pthread_mutex_magic: u16, + __pthread_mutex_lock: u64, + __pthread_mutex_data: u64 + } + + pub struct pthread_mutexattr_t { + __pthread_mutexattrp: *mut ::c_void + } + + pub struct pthread_cond_t { + __pthread_cond_flag: [u8; 4], + __pthread_cond_type: u16, + __pthread_cond_magic: u16, + __pthread_cond_data: u64 + } + + pub struct pthread_condattr_t { + __pthread_condattrp: *mut ::c_void, + } + + pub struct pthread_rwlock_t { + __pthread_rwlock_readers: i32, + __pthread_rwlock_type: u16, + __pthread_rwlock_magic: u16, + __pthread_rwlock_mutex: ::pthread_mutex_t, + __pthread_rwlock_readercv: ::pthread_cond_t, + __pthread_rwlock_writercv: ::pthread_cond_t + } + + pub struct pthread_rwlockattr_t { + __pthread_rwlockattrp: *mut ::c_void, + } + + pub struct dirent { + pub d_ino: ::ino_t, + pub d_off: ::off_t, + pub d_reclen: u16, + pub d_name: [::c_char; 3] + } + + pub struct glob_t { + pub gl_pathc: ::size_t, + pub gl_pathv: *mut *mut ::c_char, + pub gl_offs: ::size_t, + __unused1: *mut ::c_void, + __unused2: ::c_int, + __unused3: ::c_int, + __unused4: ::c_int, + __unused5: *mut ::c_void, + __unused6: *mut ::c_void, + __unused7: *mut ::c_void, + __unused8: *mut ::c_void, + __unused9: *mut ::c_void, + __unused10: *mut ::c_void, + } + + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + #[cfg(target_arch = "sparc64")] + __sparcv9_pad: ::c_int, + pub ai_addrlen: ::socklen_t, + pub ai_canonname: *mut ::c_char, + pub ai_addr: *mut ::sockaddr, + pub ai_next: *mut addrinfo, + } + + pub struct sigset_t { + bits: [u32; 4], + } + + pub struct sigaction { + pub sa_flags: ::c_int, + pub sa_sigaction: ::sighandler_t, + pub sa_mask: sigset_t, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_basetype: [::c_char; 16], + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub f_fstr: [::c_char; 32] + } + + pub struct sendfilevec_t { + pub sfv_fd: ::c_int, + pub sfv_flag: ::c_uint, + pub sfv_off: ::off_t, + pub sfv_len: ::size_t, + } + + pub struct sched_param { + pub sched_priority: ::c_int, + sched_pad: [::c_int; 8] + } + + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub st_size: ::off_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + __unused: [::c_char; 16] + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_cc: [::cc_t; ::NCCS] + } + + pub struct lconv { + pub decimal_point: *mut ::c_char, + pub thousands_sep: *mut ::c_char, + pub grouping: *mut ::c_char, + pub int_curr_symbol: *mut ::c_char, + pub currency_symbol: *mut ::c_char, + pub mon_decimal_point: *mut ::c_char, + pub mon_thousands_sep: *mut ::c_char, + pub mon_grouping: *mut ::c_char, + pub positive_sign: *mut ::c_char, + pub negative_sign: *mut ::c_char, + pub int_frac_digits: ::c_char, + pub frac_digits: ::c_char, + pub p_cs_precedes: ::c_char, + pub p_sep_by_space: ::c_char, + pub n_cs_precedes: ::c_char, + pub n_sep_by_space: ::c_char, + pub p_sign_posn: ::c_char, + pub n_sign_posn: ::c_char, + pub int_p_cs_precedes: ::c_char, + pub int_p_sep_by_space: ::c_char, + pub int_n_cs_precedes: ::c_char, + pub int_n_sep_by_space: ::c_char, + pub int_p_sign_posn: ::c_char, + pub int_n_sign_posn: ::c_char, + } + + pub struct sem_t { + pub sem_count: u32, + pub sem_type: u16, + pub sem_magic: u16, + pub sem_pad1: [u64; 3], + pub sem_pad2: [u64; 2] + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_sysid: ::c_int, + pub l_pid: ::pid_t, + pub l_pad: [::c_long; 4] + } + + pub struct if_nameindex { + pub if_index: ::c_uint, + pub if_name: *mut ::c_char, + } + + pub struct mq_attr { + pub mq_flags: ::c_long, + pub mq_maxmsg: ::c_long, + pub mq_msgsize: ::c_long, + pub mq_curmsgs: ::c_long, + _pad: [::c_int; 12] + } + + pub struct port_event { + pub portev_events: ::c_int, + pub portev_source: ::c_ushort, + pub portev_pad: ::c_ushort, + pub portev_object: ::uintptr_t, + pub portev_user: *mut ::c_void, + } + + pub struct port_notify { + pub portnfy_port: ::c_int, + pub portnfy_user: *mut ::c_void, + } + + pub struct exit_status { + e_termination: ::c_short, + e_exit: ::c_short, + } + + pub struct utmp { + pub ut_user: [::c_char; 8], + pub ut_id: [::c_char; 4], + pub ut_line: [::c_char; 12], + pub ut_pid: ::c_short, + pub ut_type: ::c_short, + pub ut_exit: exit_status, + pub ut_time: ::time_t, + } + + pub struct timex { + pub modes: u32, + pub offset: i32, + pub freq: i32, + pub maxerror: i32, + pub esterror: i32, + pub status: i32, + pub constant: i32, + pub precision: i32, + pub tolerance: i32, + pub ppsfreq: i32, + pub jitter: i32, + pub shift: i32, + pub stabil: i32, + pub jitcnt: i32, + pub calcnt: i32, + pub errcnt: i32, + pub stbcnt: i32, + } + + pub struct ntptimeval { + pub time: ::timeval, + pub maxerror: i32, + pub esterror: i32, + } + + pub struct mmapobj_result_t { + pub mr_addr: ::caddr_t, + pub mr_msize: ::size_t, + pub mr_fsize: ::size_t, + pub mr_offset: ::size_t, + pub mr_prot: ::c_uint, + pub mr_flags: ::c_uint, + } + + pub struct lgrp_affinity_args { + pub idtype: ::idtype_t, + pub id: ::id_t, + pub lgrp: ::lgrp_id_t, + pub aff: ::lgrp_affinity_t, + } + + pub struct processor_info_t { + pub pi_state: ::c_int, + pub pi_processor_type: [::c_char; PI_TYPELEN as usize], + pub pi_fputypes: [::c_char; PI_FPUTYPE as usize], + pub pi_clock: ::c_int, + } + + pub struct option { + pub name: *const ::c_char, + pub has_arg: ::c_int, + pub flag: *mut ::c_int, + pub val: ::c_int, + } +} + +s_no_extra_traits! { + #[cfg_attr(all( + any(target_arch = "x86", target_arch = "x86_64"), + libc_packedN + ), repr(packed(4)))] + #[cfg_attr(all( + any(target_arch = "x86", target_arch = "x86_64"), + not(libc_packedN) + ), repr(packed))] + pub struct epoll_event { + pub events: u32, + pub u64: u64, + } + + pub struct utmpx { + pub ut_user: [::c_char; _UTX_USERSIZE], + pub ut_id: [::c_char; _UTX_IDSIZE], + pub ut_line: [::c_char; _UTX_LINESIZE], + pub ut_pid: ::pid_t, + pub ut_type: ::c_short, + pub ut_exit: exit_status, + pub ut_tv: ::timeval, + pub ut_session: ::c_int, + pub ut_pad: [::c_int; _UTX_PADSIZE], + pub ut_syslen: ::c_short, + pub ut_host: [::c_char; _UTX_HOSTSIZE], + } + + pub struct sockaddr_un { + pub sun_family: sa_family_t, + pub sun_path: [c_char; 108] + } + + pub struct utsname { + pub sysname: [::c_char; 257], + pub nodename: [::c_char; 257], + pub release: [::c_char; 257], + pub version: [::c_char; 257], + pub machine: [::c_char; 257], + } + + pub struct fd_set { + #[cfg(target_pointer_width = "64")] + fds_bits: [i64; FD_SETSIZE / 64], + #[cfg(target_pointer_width = "32")] + fds_bits: [i32; FD_SETSIZE / 32], + } + + pub struct sockaddr_storage { + pub ss_family: ::sa_family_t, + __ss_pad1: [u8; 6], + __ss_align: i64, + __ss_pad2: [u8; 240], + } + + #[cfg_attr(all(target_pointer_width = "64", libc_align), repr(align(8)))] + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_code: ::c_int, + pub si_errno: ::c_int, + #[cfg(target_pointer_width = "64")] + pub si_pad: ::c_int, + + __data_pad: [::c_int; SIGINFO_DATA_SIZE], + } + + pub struct sockaddr_dl { + pub sdl_family: ::c_ushort, + pub sdl_index: ::c_ushort, + pub sdl_type: ::c_uchar, + pub sdl_nlen: ::c_uchar, + pub sdl_alen: ::c_uchar, + pub sdl_slen: ::c_uchar, + pub sdl_data: [::c_char; 244], + } + + pub struct sigevent { + pub sigev_notify: ::c_int, + pub sigev_signo: ::c_int, + pub sigev_value: ::sigval, + pub ss_sp: *mut ::c_void, + pub sigev_notify_attributes: *const ::pthread_attr_t, + __sigev_pad2: ::c_int, + } + + #[cfg(libc_union)] + #[cfg_attr(libc_align, repr(align(16)))] + pub union pad128_t { + // pub _q in this structure would be a "long double", of 16 bytes + pub _l: [i32; 4], + } + + #[cfg(libc_union)] + #[cfg_attr(libc_align, repr(align(16)))] + pub union upad128_t { + // pub _q in this structure would be a "long double", of 16 bytes + pub _l: [u32; 4], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for utmpx { + fn eq(&self, other: &utmpx) -> bool { + self.ut_type == other.ut_type + && self.ut_pid == other.ut_pid + && self.ut_user == other.ut_user + && self.ut_line == other.ut_line + && self.ut_id == other.ut_id + && self.ut_exit == other.ut_exit + && self.ut_session == other.ut_session + && self.ut_tv == other.ut_tv + && self.ut_syslen == other.ut_syslen + && self.ut_pad == other.ut_pad + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for utmpx {} + + impl ::fmt::Debug for utmpx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmpx") + .field("ut_user", &self.ut_user) + .field("ut_id", &self.ut_id) + .field("ut_line", &self.ut_line) + .field("ut_pid", &self.ut_pid) + .field("ut_type", &self.ut_type) + .field("ut_exit", &self.ut_exit) + .field("ut_tv", &self.ut_tv) + .field("ut_session", &self.ut_session) + .field("ut_pad", &self.ut_pad) + .field("ut_syslen", &self.ut_syslen) + .field("ut_host", &&self.ut_host[..]) + .finish() + } + } + + impl ::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { + self.ut_user.hash(state); + self.ut_type.hash(state); + self.ut_pid.hash(state); + self.ut_line.hash(state); + self.ut_id.hash(state); + self.ut_host.hash(state); + self.ut_exit.hash(state); + self.ut_session.hash(state); + self.ut_tv.hash(state); + self.ut_syslen.hash(state); + self.ut_pad.hash(state); + } + } + + impl PartialEq for epoll_event { + fn eq(&self, other: &epoll_event) -> bool { + self.events == other.events + && self.u64 == other.u64 + } + } + impl Eq for epoll_event {} + impl ::fmt::Debug for epoll_event { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let events = self.events; + let u64 = self.u64; + f.debug_struct("epoll_event") + .field("events", &events) + .field("u64", &u64) + .finish() + } + } + impl ::hash::Hash for epoll_event { + fn hash(&self, state: &mut H) { + let events = self.events; + let u64 = self.u64; + events.hash(state); + u64.hash(state); + } + } + + impl PartialEq for sockaddr_un { + fn eq(&self, other: &sockaddr_un) -> bool { + self.sun_family == other.sun_family + && self + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a, b)| a == b) + } + } + impl Eq for sockaddr_un {} + impl ::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_un") + .field("sun_family", &self.sun_family) + // FIXME: .field("sun_path", &self.sun_path) + .finish() + } + } + impl ::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { + self.sun_family.hash(state); + self.sun_path.hash(state); + } + } + + impl PartialEq for utsname { + fn eq(&self, other: &utsname) -> bool { + self.sysname + .iter() + .zip(other.sysname.iter()) + .all(|(a, b)| a == b) + && self + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a, b)| a == b) + && self + .release + .iter() + .zip(other.release.iter()) + .all(|(a, b)| a == b) + && self + .version + .iter() + .zip(other.version.iter()) + .all(|(a, b)| a == b) + && self + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a, b)| a == b) + } + } + impl Eq for utsname {} + impl ::fmt::Debug for utsname { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utsname") + // FIXME: .field("sysname", &self.sysname) + // FIXME: .field("nodename", &self.nodename) + // FIXME: .field("release", &self.release) + // FIXME: .field("version", &self.version) + // FIXME: .field("machine", &self.machine) + .finish() + } + } + impl ::hash::Hash for utsname { + fn hash(&self, state: &mut H) { + self.sysname.hash(state); + self.nodename.hash(state); + self.release.hash(state); + self.version.hash(state); + self.machine.hash(state); + } + } + + impl PartialEq for fd_set { + fn eq(&self, other: &fd_set) -> bool { + self.fds_bits + .iter() + .zip(other.fds_bits.iter()) + .all(|(a, b)| a == b) + } + } + impl Eq for fd_set {} + impl ::fmt::Debug for fd_set { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("fd_set") + // FIXME: .field("fds_bits", &self.fds_bits) + .finish() + } + } + impl ::hash::Hash for fd_set { + fn hash(&self, state: &mut H) { + self.fds_bits.hash(state); + } + } + + impl PartialEq for sockaddr_storage { + fn eq(&self, other: &sockaddr_storage) -> bool { + self.ss_family == other.ss_family + && self.__ss_pad1 == other.__ss_pad1 + && self.__ss_align == other.__ss_align + && self + .__ss_pad2 + .iter() + .zip(other.__ss_pad2.iter()) + .all(|(a, b)| a == b) + } + } + impl Eq for sockaddr_storage {} + impl ::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_storage") + .field("ss_family", &self.ss_family) + .field("__ss_pad1", &self.__ss_pad1) + .field("__ss_align", &self.__ss_align) + // FIXME: .field("__ss_pad2", &self.__ss_pad2) + .finish() + } + } + impl ::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { + self.ss_family.hash(state); + self.__ss_pad1.hash(state); + self.__ss_align.hash(state); + self.__ss_pad2.hash(state); + } + } + + impl siginfo_t { + /// The siginfo_t will have differing contents based on the delivered signal. Based on + /// `si_signo`, this determines how many of the `c_int` pad fields contain valid data + /// exposed by the C unions. + /// + /// It is not yet exhausitive for the OS-defined types, and defaults to assuming the + /// entire data pad area is "valid" for otherwise unrecognized signal numbers. + fn data_field_count(&self) -> usize { + match self.si_signo { + ::SIGSEGV | ::SIGBUS | ::SIGILL | ::SIGTRAP | ::SIGFPE => { + ::mem::size_of::() / ::mem::size_of::<::c_int>() + } + ::SIGCLD => ::mem::size_of::() / ::mem::size_of::<::c_int>(), + ::SIGHUP + | ::SIGINT + | ::SIGQUIT + | ::SIGABRT + | ::SIGSYS + | ::SIGPIPE + | ::SIGALRM + | ::SIGTERM + | ::SIGUSR1 + | ::SIGUSR2 + | ::SIGPWR + | ::SIGWINCH + | ::SIGURG => ::mem::size_of::() / ::mem::size_of::<::c_int>(), + _ => SIGINFO_DATA_SIZE, + } + } + } + impl PartialEq for siginfo_t { + fn eq(&self, other: &siginfo_t) -> bool { + if self.si_signo == other.si_signo + && self.si_code == other.si_code + && self.si_errno == other.si_errno { + // FIXME: The `si_pad` field in the 64-bit version of the struct is ignored + // (for now) when doing comparisons. + + let field_count = self.data_field_count(); + self.__data_pad[..field_count] + .iter() + .zip(other.__data_pad[..field_count].iter()) + .all(|(a, b)| a == b) + } else { + false + } + } + } + impl Eq for siginfo_t {} + impl ::fmt::Debug for siginfo_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("siginfo_t") + .field("si_signo", &self.si_signo) + .field("si_code", &self.si_code) + .field("si_errno", &self.si_errno) + // FIXME: .field("__pad", &self.__pad) + .finish() + } + } + impl ::hash::Hash for siginfo_t { + fn hash(&self, state: &mut H) { + self.si_signo.hash(state); + self.si_code.hash(state); + self.si_errno.hash(state); + + // FIXME: The `si_pad` field in the 64-bit version of the struct is ignored + // (for now) when doing hashing. + + let field_count = self.data_field_count(); + self.__data_pad[..field_count].hash(state) + } + } + + impl PartialEq for sockaddr_dl { + fn eq(&self, other: &sockaddr_dl) -> bool { + self.sdl_family == other.sdl_family + && self.sdl_index == other.sdl_index + && self.sdl_type == other.sdl_type + && self.sdl_nlen == other.sdl_nlen + && self.sdl_alen == other.sdl_alen + && self.sdl_slen == other.sdl_slen + && self + .sdl_data + .iter() + .zip(other.sdl_data.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for sockaddr_dl {} + impl ::fmt::Debug for sockaddr_dl { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_dl") + .field("sdl_family", &self.sdl_family) + .field("sdl_index", &self.sdl_index) + .field("sdl_type", &self.sdl_type) + .field("sdl_nlen", &self.sdl_nlen) + .field("sdl_alen", &self.sdl_alen) + .field("sdl_slen", &self.sdl_slen) + // FIXME: .field("sdl_data", &self.sdl_data) + .finish() + } + } + impl ::hash::Hash for sockaddr_dl { + fn hash(&self, state: &mut H) { + self.sdl_family.hash(state); + self.sdl_index.hash(state); + self.sdl_type.hash(state); + self.sdl_nlen.hash(state); + self.sdl_alen.hash(state); + self.sdl_slen.hash(state); + self.sdl_data.hash(state); + } + } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_notify == other.sigev_notify + && self.sigev_signo == other.sigev_signo + && self.sigev_value == other.sigev_value + && self.ss_sp == other.ss_sp + && self.sigev_notify_attributes + == other.sigev_notify_attributes + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_notify", &self.sigev_notify) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_value", &self.sigev_value) + .field("ss_sp", &self.ss_sp) + .field("sigev_notify_attributes", + &self.sigev_notify_attributes) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_notify.hash(state); + self.sigev_signo.hash(state); + self.sigev_value.hash(state); + self.ss_sp.hash(state); + self.sigev_notify_attributes.hash(state); + } + } + + #[cfg(libc_union)] + impl PartialEq for pad128_t { + fn eq(&self, other: &pad128_t) -> bool { + unsafe { + // FIXME: self._q == other._q || + self._l == other._l + } + } + } + #[cfg(libc_union)] + impl Eq for pad128_t {} + #[cfg(libc_union)] + impl ::fmt::Debug for pad128_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + unsafe { + f.debug_struct("pad128_t") + // FIXME: .field("_q", &{self._q}) + .field("_l", &{self._l}) + .finish() + } + } + } + #[cfg(libc_union)] + impl ::hash::Hash for pad128_t { + fn hash(&self, state: &mut H) { + unsafe { + // FIXME: state.write_i64(self._q as i64); + self._l.hash(state); + } + } + } + #[cfg(libc_union)] + impl PartialEq for upad128_t { + fn eq(&self, other: &upad128_t) -> bool { + unsafe { + // FIXME: self._q == other._q || + self._l == other._l + } + } + } + #[cfg(libc_union)] + impl Eq for upad128_t {} + #[cfg(libc_union)] + impl ::fmt::Debug for upad128_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + unsafe { + f.debug_struct("upad128_t") + // FIXME: .field("_q", &{self._q}) + .field("_l", &{self._l}) + .finish() + } + } + } + #[cfg(libc_union)] + impl ::hash::Hash for upad128_t { + fn hash(&self, state: &mut H) { + unsafe { + // FIXME: state.write_i64(self._q as i64); + self._l.hash(state); + } + } + } + } +} + +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + const SIGINFO_DATA_SIZE: usize = 60; + } else { + const SIGINFO_DATA_SIZE: usize = 29; + } +} + +#[repr(C)] +struct siginfo_fault { + addr: *mut ::c_void, + trapno: ::c_int, + pc: *mut ::caddr_t, +} +impl ::Copy for siginfo_fault {} +impl ::Clone for siginfo_fault { + fn clone(&self) -> Self { + *self + } +} + +#[repr(C)] +struct siginfo_cldval { + utime: ::clock_t, + status: ::c_int, + stime: ::clock_t, +} +impl ::Copy for siginfo_cldval {} +impl ::Clone for siginfo_cldval { + fn clone(&self) -> Self { + *self + } +} + +#[repr(C)] +struct siginfo_killval { + uid: ::uid_t, + value: ::sigval, + // Pad out to match the SIGCLD value size + _pad: *mut ::c_void, +} +impl ::Copy for siginfo_killval {} +impl ::Clone for siginfo_killval { + fn clone(&self) -> Self { + *self + } +} + +#[repr(C)] +struct siginfo_sigcld { + pid: ::pid_t, + val: siginfo_cldval, + ctid: ::ctid_t, + zoneid: ::zoneid_t, +} +impl ::Copy for siginfo_sigcld {} +impl ::Clone for siginfo_sigcld { + fn clone(&self) -> Self { + *self + } +} + +#[repr(C)] +struct siginfo_kill { + pid: ::pid_t, + val: siginfo_killval, + ctid: ::ctid_t, + zoneid: ::zoneid_t, +} +impl ::Copy for siginfo_kill {} +impl ::Clone for siginfo_kill { + fn clone(&self) -> Self { + *self + } +} + +impl siginfo_t { + unsafe fn sidata(&self) -> T { + *((&self.__data_pad) as *const ::c_int as *const T) + } + pub unsafe fn si_addr(&self) -> *mut ::c_void { + let sifault: siginfo_fault = self.sidata(); + sifault.addr + } + pub unsafe fn si_uid(&self) -> ::uid_t { + let kill: siginfo_kill = self.sidata(); + kill.val.uid + } + pub unsafe fn si_value(&self) -> ::sigval { + let kill: siginfo_kill = self.sidata(); + kill.val.value + } + pub unsafe fn si_pid(&self) -> ::pid_t { + let sigcld: siginfo_sigcld = self.sidata(); + sigcld.pid + } + pub unsafe fn si_status(&self) -> ::c_int { + let sigcld: siginfo_sigcld = self.sidata(); + sigcld.val.status + } + pub unsafe fn si_utime(&self) -> ::c_long { + let sigcld: siginfo_sigcld = self.sidata(); + sigcld.val.utime + } + pub unsafe fn si_stime(&self) -> ::c_long { + let sigcld: siginfo_sigcld = self.sidata(); + sigcld.val.stime + } +} + +pub const LC_CTYPE: ::c_int = 0; +pub const LC_NUMERIC: ::c_int = 1; +pub const LC_TIME: ::c_int = 2; +pub const LC_COLLATE: ::c_int = 3; +pub const LC_MONETARY: ::c_int = 4; +pub const LC_MESSAGES: ::c_int = 5; +pub const LC_ALL: ::c_int = 6; +pub const LC_CTYPE_MASK: ::c_int = 1 << LC_CTYPE; +pub const LC_NUMERIC_MASK: ::c_int = 1 << LC_NUMERIC; +pub const LC_TIME_MASK: ::c_int = 1 << LC_TIME; +pub const LC_COLLATE_MASK: ::c_int = 1 << LC_COLLATE; +pub const LC_MONETARY_MASK: ::c_int = 1 << LC_MONETARY; +pub const LC_MESSAGES_MASK: ::c_int = 1 << LC_MESSAGES; +pub const LC_ALL_MASK: ::c_int = LC_CTYPE_MASK + | LC_NUMERIC_MASK + | LC_TIME_MASK + | LC_COLLATE_MASK + | LC_MONETARY_MASK + | LC_MESSAGES_MASK; + +pub const DAY_1: ::nl_item = 1; +pub const DAY_2: ::nl_item = 2; +pub const DAY_3: ::nl_item = 3; +pub const DAY_4: ::nl_item = 4; +pub const DAY_5: ::nl_item = 5; +pub const DAY_6: ::nl_item = 6; +pub const DAY_7: ::nl_item = 7; + +pub const ABDAY_1: ::nl_item = 8; +pub const ABDAY_2: ::nl_item = 9; +pub const ABDAY_3: ::nl_item = 10; +pub const ABDAY_4: ::nl_item = 11; +pub const ABDAY_5: ::nl_item = 12; +pub const ABDAY_6: ::nl_item = 13; +pub const ABDAY_7: ::nl_item = 14; + +pub const MON_1: ::nl_item = 15; +pub const MON_2: ::nl_item = 16; +pub const MON_3: ::nl_item = 17; +pub const MON_4: ::nl_item = 18; +pub const MON_5: ::nl_item = 19; +pub const MON_6: ::nl_item = 20; +pub const MON_7: ::nl_item = 21; +pub const MON_8: ::nl_item = 22; +pub const MON_9: ::nl_item = 23; +pub const MON_10: ::nl_item = 24; +pub const MON_11: ::nl_item = 25; +pub const MON_12: ::nl_item = 26; + +pub const ABMON_1: ::nl_item = 27; +pub const ABMON_2: ::nl_item = 28; +pub const ABMON_3: ::nl_item = 29; +pub const ABMON_4: ::nl_item = 30; +pub const ABMON_5: ::nl_item = 31; +pub const ABMON_6: ::nl_item = 32; +pub const ABMON_7: ::nl_item = 33; +pub const ABMON_8: ::nl_item = 34; +pub const ABMON_9: ::nl_item = 35; +pub const ABMON_10: ::nl_item = 36; +pub const ABMON_11: ::nl_item = 37; +pub const ABMON_12: ::nl_item = 38; + +pub const RADIXCHAR: ::nl_item = 39; +pub const THOUSEP: ::nl_item = 40; +pub const YESSTR: ::nl_item = 41; +pub const NOSTR: ::nl_item = 42; +pub const CRNCYSTR: ::nl_item = 43; + +pub const D_T_FMT: ::nl_item = 44; +pub const D_FMT: ::nl_item = 45; +pub const T_FMT: ::nl_item = 46; +pub const AM_STR: ::nl_item = 47; +pub const PM_STR: ::nl_item = 48; + +pub const CODESET: ::nl_item = 49; +pub const T_FMT_AMPM: ::nl_item = 50; +pub const ERA: ::nl_item = 51; +pub const ERA_D_FMT: ::nl_item = 52; +pub const ERA_D_T_FMT: ::nl_item = 53; +pub const ERA_T_FMT: ::nl_item = 54; +pub const ALT_DIGITS: ::nl_item = 55; +pub const YESEXPR: ::nl_item = 56; +pub const NOEXPR: ::nl_item = 57; +pub const _DATE_FMT: ::nl_item = 58; +pub const MAXSTRMSG: ::nl_item = 58; + +pub const PATH_MAX: ::c_int = 1024; + +pub const SA_ONSTACK: ::c_int = 0x00000001; +pub const SA_RESETHAND: ::c_int = 0x00000002; +pub const SA_RESTART: ::c_int = 0x00000004; +pub const SA_SIGINFO: ::c_int = 0x00000008; +pub const SA_NODEFER: ::c_int = 0x00000010; +pub const SA_NOCLDWAIT: ::c_int = 0x00010000; +pub const SA_NOCLDSTOP: ::c_int = 0x00020000; + +pub const SS_ONSTACK: ::c_int = 1; +pub const SS_DISABLE: ::c_int = 2; + +pub const FIOCLEX: ::c_int = 0x20006601; +pub const FIONCLEX: ::c_int = 0x20006602; +pub const FIONREAD: ::c_int = 0x4004667f; +pub const FIONBIO: ::c_int = 0x8004667e; +pub const FIOASYNC: ::c_int = 0x8004667d; +pub const FIOSETOWN: ::c_int = 0x8004667c; +pub const FIOGETOWN: ::c_int = 0x4004667b; + +pub const SIGCHLD: ::c_int = 18; +pub const SIGCLD: ::c_int = ::SIGCHLD; +pub const SIGBUS: ::c_int = 10; +pub const SIGINFO: ::c_int = 41; +pub const SIG_BLOCK: ::c_int = 1; +pub const SIG_UNBLOCK: ::c_int = 2; +pub const SIG_SETMASK: ::c_int = 3; + +pub const SIGEV_NONE: ::c_int = 1; +pub const SIGEV_SIGNAL: ::c_int = 2; +pub const SIGEV_THREAD: ::c_int = 3; + +pub const CLD_EXITED: ::c_int = 1; +pub const CLD_KILLED: ::c_int = 2; +pub const CLD_DUMPED: ::c_int = 3; +pub const CLD_TRAPPED: ::c_int = 4; +pub const CLD_STOPPED: ::c_int = 5; +pub const CLD_CONTINUED: ::c_int = 6; + +pub const IP_RECVDSTADDR: ::c_int = 0x7; +pub const IP_SEC_OPT: ::c_int = 0x22; + +pub const IPV6_UNICAST_HOPS: ::c_int = 0x5; +pub const IPV6_MULTICAST_IF: ::c_int = 0x6; +pub const IPV6_MULTICAST_HOPS: ::c_int = 0x7; +pub const IPV6_MULTICAST_LOOP: ::c_int = 0x8; +pub const IPV6_RECVPKTINFO: ::c_int = 0x12; +pub const IPV6_SEC_OPT: ::c_int = 0x22; +pub const IPV6_V6ONLY: ::c_int = 0x27; + +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + pub const FD_SETSIZE: usize = 65536; + } else { + pub const FD_SETSIZE: usize = 1024; + } +} + +pub const ST_RDONLY: ::c_ulong = 1; +pub const ST_NOSUID: ::c_ulong = 2; + +pub const NI_MAXHOST: ::socklen_t = 1025; +pub const NI_MAXSERV: ::socklen_t = 32; + +pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: ::c_int = 0; +pub const RAND_MAX: ::c_int = 32767; +pub const EOF: ::c_int = -1; +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; +pub const SEEK_DATA: ::c_int = 3; +pub const SEEK_HOLE: ::c_int = 4; +pub const _IOFBF: ::c_int = 0; +pub const _IONBF: ::c_int = 4; +pub const _IOLBF: ::c_int = 64; +pub const BUFSIZ: ::c_uint = 1024; +pub const FOPEN_MAX: ::c_uint = 20; +pub const FILENAME_MAX: ::c_uint = 1024; +pub const L_tmpnam: ::c_uint = 25; +pub const TMP_MAX: ::c_uint = 17576; + +pub const GRND_NONBLOCK: ::c_uint = 0x0001; +pub const GRND_RANDOM: ::c_uint = 0x0002; + +pub const O_RDONLY: ::c_int = 0; +pub const O_WRONLY: ::c_int = 1; +pub const O_RDWR: ::c_int = 2; +pub const O_NDELAY: ::c_int = 0x04; +pub const O_APPEND: ::c_int = 8; +pub const O_DSYNC: ::c_int = 0x40; +pub const O_CREAT: ::c_int = 256; +pub const O_EXCL: ::c_int = 1024; +pub const O_NOCTTY: ::c_int = 2048; +pub const O_TRUNC: ::c_int = 512; +pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_DIRECTORY: ::c_int = 0x1000000; +pub const O_SEARCH: ::c_int = 0x200000; +pub const O_EXEC: ::c_int = 0x400000; +pub const O_CLOEXEC: ::c_int = 0x800000; +pub const O_ACCMODE: ::c_int = 0x600003; +pub const O_XATTR: ::c_int = 0x4000; +pub const S_IFIFO: mode_t = 4096; +pub const S_IFCHR: mode_t = 8192; +pub const S_IFBLK: mode_t = 24576; +pub const S_IFDIR: mode_t = 16384; +pub const S_IFREG: mode_t = 32768; +pub const S_IFLNK: mode_t = 40960; +pub const S_IFSOCK: mode_t = 49152; +pub const S_IFMT: mode_t = 61440; +pub const S_IEXEC: mode_t = 64; +pub const S_IWRITE: mode_t = 128; +pub const S_IREAD: mode_t = 256; +pub const S_IRWXU: mode_t = 448; +pub const S_IXUSR: mode_t = 64; +pub const S_IWUSR: mode_t = 128; +pub const S_IRUSR: mode_t = 256; +pub const S_IRWXG: mode_t = 56; +pub const S_IXGRP: mode_t = 8; +pub const S_IWGRP: mode_t = 16; +pub const S_IRGRP: mode_t = 32; +pub const S_IRWXO: mode_t = 7; +pub const S_IXOTH: mode_t = 1; +pub const S_IWOTH: mode_t = 2; +pub const S_IROTH: mode_t = 4; +pub const F_OK: ::c_int = 0; +pub const R_OK: ::c_int = 4; +pub const W_OK: ::c_int = 2; +pub const X_OK: ::c_int = 1; +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; +pub const F_LOCK: ::c_int = 1; +pub const F_TEST: ::c_int = 3; +pub const F_TLOCK: ::c_int = 2; +pub const F_ULOCK: ::c_int = 0; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_GETLK: ::c_int = 14; +pub const F_ALLOCSP: ::c_int = 10; +pub const F_FREESP: ::c_int = 11; +pub const F_BLOCKS: ::c_int = 18; +pub const F_BLKSIZE: ::c_int = 19; +pub const F_SHARE: ::c_int = 40; +pub const F_UNSHARE: ::c_int = 41; +pub const F_ISSTREAM: ::c_int = 13; +pub const F_PRIV: ::c_int = 15; +pub const F_NPRIV: ::c_int = 16; +pub const F_QUOTACTL: ::c_int = 17; +pub const F_GETOWN: ::c_int = 23; +pub const F_SETOWN: ::c_int = 24; +pub const F_REVOKE: ::c_int = 25; +pub const F_HASREMOTELOCKS: ::c_int = 26; +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGABRT: ::c_int = 6; +pub const SIGEMT: ::c_int = 7; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGSEGV: ::c_int = 11; +pub const SIGSYS: ::c_int = 12; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; +pub const SIGUSR1: ::c_int = 16; +pub const SIGUSR2: ::c_int = 17; +pub const SIGPWR: ::c_int = 19; +pub const SIGWINCH: ::c_int = 20; +pub const SIGURG: ::c_int = 21; +pub const SIGPOLL: ::c_int = 22; +pub const SIGIO: ::c_int = SIGPOLL; +pub const SIGSTOP: ::c_int = 23; +pub const SIGTSTP: ::c_int = 24; +pub const SIGCONT: ::c_int = 25; +pub const SIGTTIN: ::c_int = 26; +pub const SIGTTOU: ::c_int = 27; +pub const SIGVTALRM: ::c_int = 28; +pub const SIGPROF: ::c_int = 29; +pub const SIGXCPU: ::c_int = 30; +pub const SIGXFSZ: ::c_int = 31; + +pub const WNOHANG: ::c_int = 0x40; +pub const WUNTRACED: ::c_int = 0x04; + +pub const WEXITED: ::c_int = 0x01; +pub const WTRAPPED: ::c_int = 0x02; +pub const WSTOPPED: ::c_int = WUNTRACED; +pub const WCONTINUED: ::c_int = 0x08; +pub const WNOWAIT: ::c_int = 0x80; + +pub const AT_FDCWD: ::c_int = 0xffd19553; +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x1000; +pub const AT_SYMLINK_FOLLOW: ::c_int = 0x2000; +pub const AT_REMOVEDIR: ::c_int = 0x1; +pub const _AT_TRIGGER: ::c_int = 0x2; +pub const AT_EACCESS: ::c_int = 0x4; + +pub const P_PID: idtype_t = 0; +pub const P_PPID: idtype_t = 1; +pub const P_PGID: idtype_t = 2; +pub const P_SID: idtype_t = 3; +pub const P_CID: idtype_t = 4; +pub const P_UID: idtype_t = 5; +pub const P_GID: idtype_t = 6; +pub const P_ALL: idtype_t = 7; +pub const P_LWPID: idtype_t = 8; +pub const P_TASKID: idtype_t = 9; +pub const P_PROJID: idtype_t = 10; +pub const P_POOLID: idtype_t = 11; +pub const P_ZONEID: idtype_t = 12; +pub const P_CTID: idtype_t = 13; +pub const P_CPUID: idtype_t = 14; +pub const P_PSETID: idtype_t = 15; + +pub const PBIND_NONE: ::processorid_t = -1; +pub const PBIND_QUERY: ::processorid_t = -2; +pub const PBIND_HARD: ::processorid_t = -3; +pub const PBIND_SOFT: ::processorid_t = -4; + +pub const PS_NONE: ::c_int = -1; +pub const PS_QUERY: ::c_int = -2; +pub const PS_MYID: ::c_int = -3; +pub const PS_SOFT: ::c_int = -4; +pub const PS_HARD: ::c_int = -5; +pub const PS_QUERY_TYPE: ::c_int = -6; +pub const PS_SYSTEM: ::c_int = 1; +pub const PS_PRIVATE: ::c_int = 2; + +pub const UTIME_OMIT: c_long = -2; +pub const UTIME_NOW: c_long = -1; + +pub const PROT_NONE: ::c_int = 0; +pub const PROT_READ: ::c_int = 1; +pub const PROT_WRITE: ::c_int = 2; +pub const PROT_EXEC: ::c_int = 4; + +pub const MAP_FILE: ::c_int = 0; +pub const MAP_SHARED: ::c_int = 0x0001; +pub const MAP_PRIVATE: ::c_int = 0x0002; +pub const MAP_FIXED: ::c_int = 0x0010; +pub const MAP_NORESERVE: ::c_int = 0x40; +pub const MAP_ANON: ::c_int = 0x0100; +pub const MAP_ANONYMOUS: ::c_int = 0x0100; +pub const MAP_RENAME: ::c_int = 0x20; +pub const MAP_ALIGN: ::c_int = 0x200; +pub const MAP_TEXT: ::c_int = 0x400; +pub const MAP_INITDATA: ::c_int = 0x800; +pub const MAP_32BIT: ::c_int = 0x80; +pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const MS_SYNC: ::c_int = 0x0004; +pub const MS_ASYNC: ::c_int = 0x0001; +pub const MS_INVALIDATE: ::c_int = 0x0002; + +pub const MMOBJ_PADDING: ::c_uint = 0x10000; +pub const MMOBJ_INTERPRET: ::c_uint = 0x20000; +pub const MR_PADDING: ::c_uint = 0x1; +pub const MR_HDR_ELF: ::c_uint = 0x2; + +pub const EPERM: ::c_int = 1; +pub const ENOENT: ::c_int = 2; +pub const ESRCH: ::c_int = 3; +pub const EINTR: ::c_int = 4; +pub const EIO: ::c_int = 5; +pub const ENXIO: ::c_int = 6; +pub const E2BIG: ::c_int = 7; +pub const ENOEXEC: ::c_int = 8; +pub const EBADF: ::c_int = 9; +pub const ECHILD: ::c_int = 10; +pub const EAGAIN: ::c_int = 11; +pub const ENOMEM: ::c_int = 12; +pub const EACCES: ::c_int = 13; +pub const EFAULT: ::c_int = 14; +pub const ENOTBLK: ::c_int = 15; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const EXDEV: ::c_int = 18; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENFILE: ::c_int = 23; +pub const EMFILE: ::c_int = 24; +pub const ENOTTY: ::c_int = 25; +pub const ETXTBSY: ::c_int = 26; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const ESPIPE: ::c_int = 29; +pub const EROFS: ::c_int = 30; +pub const EMLINK: ::c_int = 31; +pub const EPIPE: ::c_int = 32; +pub const EDOM: ::c_int = 33; +pub const ERANGE: ::c_int = 34; +pub const ENOMSG: ::c_int = 35; +pub const EIDRM: ::c_int = 36; +pub const ECHRNG: ::c_int = 37; +pub const EL2NSYNC: ::c_int = 38; +pub const EL3HLT: ::c_int = 39; +pub const EL3RST: ::c_int = 40; +pub const ELNRNG: ::c_int = 41; +pub const EUNATCH: ::c_int = 42; +pub const ENOCSI: ::c_int = 43; +pub const EL2HLT: ::c_int = 44; +pub const EDEADLK: ::c_int = 45; +pub const ENOLCK: ::c_int = 46; +pub const ECANCELED: ::c_int = 47; +pub const ENOTSUP: ::c_int = 48; +pub const EDQUOT: ::c_int = 49; +pub const EBADE: ::c_int = 50; +pub const EBADR: ::c_int = 51; +pub const EXFULL: ::c_int = 52; +pub const ENOANO: ::c_int = 53; +pub const EBADRQC: ::c_int = 54; +pub const EBADSLT: ::c_int = 55; +pub const EDEADLOCK: ::c_int = 56; +pub const EBFONT: ::c_int = 57; +pub const EOWNERDEAD: ::c_int = 58; +pub const ENOTRECOVERABLE: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const ELOCKUNMAPPED: ::c_int = 72; +pub const ENOTACTIVE: ::c_int = 73; +pub const EMULTIHOP: ::c_int = 74; +pub const EADI: ::c_int = 75; +pub const EBADMSG: ::c_int = 77; +pub const ENAMETOOLONG: ::c_int = 78; +pub const EOVERFLOW: ::c_int = 79; +pub const ENOTUNIQ: ::c_int = 80; +pub const EBADFD: ::c_int = 81; +pub const EREMCHG: ::c_int = 82; +pub const ELIBACC: ::c_int = 83; +pub const ELIBBAD: ::c_int = 84; +pub const ELIBSCN: ::c_int = 85; +pub const ELIBMAX: ::c_int = 86; +pub const ELIBEXEC: ::c_int = 87; +pub const EILSEQ: ::c_int = 88; +pub const ENOSYS: ::c_int = 89; +pub const ELOOP: ::c_int = 90; +pub const ERESTART: ::c_int = 91; +pub const ESTRPIPE: ::c_int = 92; +pub const ENOTEMPTY: ::c_int = 93; +pub const EUSERS: ::c_int = 94; +pub const ENOTSOCK: ::c_int = 95; +pub const EDESTADDRREQ: ::c_int = 96; +pub const EMSGSIZE: ::c_int = 97; +pub const EPROTOTYPE: ::c_int = 98; +pub const ENOPROTOOPT: ::c_int = 99; +pub const EPROTONOSUPPORT: ::c_int = 120; +pub const ESOCKTNOSUPPORT: ::c_int = 121; +pub const EOPNOTSUPP: ::c_int = 122; +pub const EPFNOSUPPORT: ::c_int = 123; +pub const EAFNOSUPPORT: ::c_int = 124; +pub const EADDRINUSE: ::c_int = 125; +pub const EADDRNOTAVAIL: ::c_int = 126; +pub const ENETDOWN: ::c_int = 127; +pub const ENETUNREACH: ::c_int = 128; +pub const ENETRESET: ::c_int = 129; +pub const ECONNABORTED: ::c_int = 130; +pub const ECONNRESET: ::c_int = 131; +pub const ENOBUFS: ::c_int = 132; +pub const EISCONN: ::c_int = 133; +pub const ENOTCONN: ::c_int = 134; +pub const ESHUTDOWN: ::c_int = 143; +pub const ETOOMANYREFS: ::c_int = 144; +pub const ETIMEDOUT: ::c_int = 145; +pub const ECONNREFUSED: ::c_int = 146; +pub const EHOSTDOWN: ::c_int = 147; +pub const EHOSTUNREACH: ::c_int = 148; +pub const EWOULDBLOCK: ::c_int = EAGAIN; +pub const EALREADY: ::c_int = 149; +pub const EINPROGRESS: ::c_int = 150; +pub const ESTALE: ::c_int = 151; + +pub const EAI_AGAIN: ::c_int = 2; +pub const EAI_BADFLAGS: ::c_int = 3; +pub const EAI_FAIL: ::c_int = 4; +pub const EAI_FAMILY: ::c_int = 5; +pub const EAI_MEMORY: ::c_int = 6; +pub const EAI_NODATA: ::c_int = 7; +pub const EAI_NONAME: ::c_int = 8; +pub const EAI_SERVICE: ::c_int = 9; +pub const EAI_SOCKTYPE: ::c_int = 10; +pub const EAI_SYSTEM: ::c_int = 11; +pub const EAI_OVERFLOW: ::c_int = 12; + +pub const NI_NOFQDN: ::c_uint = 0x0001; +pub const NI_NUMERICHOST: ::c_uint = 0x0002; +pub const NI_NAMEREQD: ::c_uint = 0x0004; +pub const NI_NUMERICSERV: ::c_uint = 0x0008; +pub const NI_DGRAM: ::c_uint = 0x0010; +pub const NI_WITHSCOPEID: ::c_uint = 0x0020; +pub const NI_NUMERICSCOPE: ::c_uint = 0x0040; + +pub const F_DUPFD: ::c_int = 0; +pub const F_DUP2FD: ::c_int = 9; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; +pub const F_GETXFL: ::c_int = 45; + +pub const SIGTRAP: ::c_int = 5; + +pub const GLOB_APPEND: ::c_int = 32; +pub const GLOB_DOOFFS: ::c_int = 16; +pub const GLOB_ERR: ::c_int = 1; +pub const GLOB_MARK: ::c_int = 2; +pub const GLOB_NOCHECK: ::c_int = 8; +pub const GLOB_NOSORT: ::c_int = 4; +pub const GLOB_NOESCAPE: ::c_int = 64; + +pub const GLOB_NOSPACE: ::c_int = -2; +pub const GLOB_ABORTED: ::c_int = -1; +pub const GLOB_NOMATCH: ::c_int = -3; + +pub const POLLIN: ::c_short = 0x1; +pub const POLLPRI: ::c_short = 0x2; +pub const POLLOUT: ::c_short = 0x4; +pub const POLLERR: ::c_short = 0x8; +pub const POLLHUP: ::c_short = 0x10; +pub const POLLNVAL: ::c_short = 0x20; +pub const POLLNORM: ::c_short = 0x0040; +pub const POLLRDNORM: ::c_short = 0x0040; +pub const POLLWRNORM: ::c_short = 0x4; /* POLLOUT */ +pub const POLLRDBAND: ::c_short = 0x0080; +pub const POLLWRBAND: ::c_short = 0x0100; + +pub const POSIX_MADV_NORMAL: ::c_int = 0; +pub const POSIX_MADV_RANDOM: ::c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_MADV_WILLNEED: ::c_int = 3; +pub const POSIX_MADV_DONTNEED: ::c_int = 4; + +pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; +pub const PTHREAD_CREATE_DETACHED: ::c_int = 0x40; +pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; +pub const PTHREAD_PROCESS_PRIVATE: ::c_ushort = 0; +pub const PTHREAD_STACK_MIN: ::size_t = 4096; + +pub const SIGSTKSZ: ::size_t = 8192; + +// https://illumos.org/man/3c/clock_gettime +// https://github.com/illumos/illumos-gate/ +// blob/HEAD/usr/src/lib/libc/amd64/sys/__clock_gettime.s +// clock_gettime(3c) doesn't seem to accept anything other than CLOCK_REALTIME +// or __CLOCK_REALTIME0 +// +// https://github.com/illumos/illumos-gate/ +// blob/HEAD/usr/src/uts/common/sys/time_impl.h +// Confusing! CLOCK_HIGHRES==CLOCK_MONOTONIC==4 +// __CLOCK_REALTIME0==0 is an obsoleted version of CLOCK_REALTIME==3 +pub const CLOCK_REALTIME: ::clockid_t = 3; +pub const CLOCK_MONOTONIC: ::clockid_t = 4; +pub const TIMER_RELTIME: ::c_int = 0; +pub const TIMER_ABSTIME: ::c_int = 1; + +pub const RLIMIT_CPU: ::c_int = 0; +pub const RLIMIT_FSIZE: ::c_int = 1; +pub const RLIMIT_DATA: ::c_int = 2; +pub const RLIMIT_STACK: ::c_int = 3; +pub const RLIMIT_CORE: ::c_int = 4; +pub const RLIMIT_NOFILE: ::c_int = 5; +pub const RLIMIT_VMEM: ::c_int = 6; +pub const RLIMIT_AS: ::c_int = RLIMIT_VMEM; + +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] +pub const RLIM_NLIMITS: rlim_t = 7; +pub const RLIM_INFINITY: rlim_t = 0xfffffffffffffffd; + +pub const RUSAGE_SELF: ::c_int = 0; +pub const RUSAGE_CHILDREN: ::c_int = -1; + +pub const MADV_NORMAL: ::c_int = 0; +pub const MADV_RANDOM: ::c_int = 1; +pub const MADV_SEQUENTIAL: ::c_int = 2; +pub const MADV_WILLNEED: ::c_int = 3; +pub const MADV_DONTNEED: ::c_int = 4; +pub const MADV_FREE: ::c_int = 5; +pub const MADV_ACCESS_DEFAULT: ::c_int = 6; +pub const MADV_ACCESS_LWP: ::c_int = 7; +pub const MADV_ACCESS_MANY: ::c_int = 8; + +pub const AF_UNSPEC: ::c_int = 0; +pub const AF_UNIX: ::c_int = 1; +pub const AF_INET: ::c_int = 2; +pub const AF_IMPLINK: ::c_int = 3; +pub const AF_PUP: ::c_int = 4; +pub const AF_CHAOS: ::c_int = 5; +pub const AF_NS: ::c_int = 6; +pub const AF_NBS: ::c_int = 7; +pub const AF_ECMA: ::c_int = 8; +pub const AF_DATAKIT: ::c_int = 9; +pub const AF_CCITT: ::c_int = 10; +pub const AF_SNA: ::c_int = 11; +pub const AF_DECnet: ::c_int = 12; +pub const AF_DLI: ::c_int = 13; +pub const AF_LAT: ::c_int = 14; +pub const AF_HYLINK: ::c_int = 15; +pub const AF_APPLETALK: ::c_int = 16; +pub const AF_NIT: ::c_int = 17; +pub const AF_802: ::c_int = 18; +pub const AF_OSI: ::c_int = 19; +pub const AF_X25: ::c_int = 20; +pub const AF_OSINET: ::c_int = 21; +pub const AF_GOSIP: ::c_int = 22; +pub const AF_IPX: ::c_int = 23; +pub const AF_ROUTE: ::c_int = 24; +pub const AF_LINK: ::c_int = 25; +pub const AF_INET6: ::c_int = 26; +pub const AF_KEY: ::c_int = 27; +pub const AF_NCA: ::c_int = 28; +pub const AF_POLICY: ::c_int = 29; +pub const AF_INET_OFFLOAD: ::c_int = 30; +pub const AF_TRILL: ::c_int = 31; +pub const AF_PACKET: ::c_int = 32; + +pub const PF_UNSPEC: ::c_int = AF_UNSPEC; +pub const PF_UNIX: ::c_int = AF_UNIX; +pub const PF_LOCAL: ::c_int = PF_UNIX; +pub const PF_FILE: ::c_int = PF_UNIX; +pub const PF_INET: ::c_int = AF_INET; +pub const PF_IMPLINK: ::c_int = AF_IMPLINK; +pub const PF_PUP: ::c_int = AF_PUP; +pub const PF_CHAOS: ::c_int = AF_CHAOS; +pub const PF_NS: ::c_int = AF_NS; +pub const PF_NBS: ::c_int = AF_NBS; +pub const PF_ECMA: ::c_int = AF_ECMA; +pub const PF_DATAKIT: ::c_int = AF_DATAKIT; +pub const PF_CCITT: ::c_int = AF_CCITT; +pub const PF_SNA: ::c_int = AF_SNA; +pub const PF_DECnet: ::c_int = AF_DECnet; +pub const PF_DLI: ::c_int = AF_DLI; +pub const PF_LAT: ::c_int = AF_LAT; +pub const PF_HYLINK: ::c_int = AF_HYLINK; +pub const PF_APPLETALK: ::c_int = AF_APPLETALK; +pub const PF_NIT: ::c_int = AF_NIT; +pub const PF_802: ::c_int = AF_802; +pub const PF_OSI: ::c_int = AF_OSI; +pub const PF_X25: ::c_int = AF_X25; +pub const PF_OSINET: ::c_int = AF_OSINET; +pub const PF_GOSIP: ::c_int = AF_GOSIP; +pub const PF_IPX: ::c_int = AF_IPX; +pub const PF_ROUTE: ::c_int = AF_ROUTE; +pub const PF_LINK: ::c_int = AF_LINK; +pub const PF_INET6: ::c_int = AF_INET6; +pub const PF_KEY: ::c_int = AF_KEY; +pub const PF_NCA: ::c_int = AF_NCA; +pub const PF_POLICY: ::c_int = AF_POLICY; +pub const PF_INET_OFFLOAD: ::c_int = AF_INET_OFFLOAD; +pub const PF_TRILL: ::c_int = AF_TRILL; +pub const PF_PACKET: ::c_int = AF_PACKET; + +pub const SOCK_DGRAM: ::c_int = 1; +pub const SOCK_STREAM: ::c_int = 2; +pub const SOCK_RAW: ::c_int = 4; +pub const SOCK_RDM: ::c_int = 5; +pub const SOCK_SEQPACKET: ::c_int = 6; +pub const IP_MULTICAST_IF: ::c_int = 16; +pub const IP_MULTICAST_TTL: ::c_int = 17; +pub const IP_MULTICAST_LOOP: ::c_int = 18; +pub const IP_TTL: ::c_int = 4; +pub const IP_HDRINCL: ::c_int = 2; +pub const IP_ADD_MEMBERSHIP: ::c_int = 19; +pub const IP_DROP_MEMBERSHIP: ::c_int = 20; +pub const IPV6_JOIN_GROUP: ::c_int = 9; +pub const IPV6_LEAVE_GROUP: ::c_int = 10; +pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 23; +pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 24; +pub const IP_BLOCK_SOURCE: ::c_int = 21; +pub const IP_UNBLOCK_SOURCE: ::c_int = 22; + +// These TCP socket options are common between illumos and Solaris, while higher +// numbers have generally diverged: +pub const TCP_NODELAY: ::c_int = 0x1; +pub const TCP_MAXSEG: ::c_int = 0x2; +pub const TCP_KEEPALIVE: ::c_int = 0x8; +pub const TCP_NOTIFY_THRESHOLD: ::c_int = 0x10; +pub const TCP_ABORT_THRESHOLD: ::c_int = 0x11; +pub const TCP_CONN_NOTIFY_THRESHOLD: ::c_int = 0x12; +pub const TCP_CONN_ABORT_THRESHOLD: ::c_int = 0x13; +pub const TCP_RECVDSTADDR: ::c_int = 0x14; +pub const TCP_INIT_CWND: ::c_int = 0x15; +pub const TCP_KEEPALIVE_THRESHOLD: ::c_int = 0x16; +pub const TCP_KEEPALIVE_ABORT_THRESHOLD: ::c_int = 0x17; +pub const TCP_CORK: ::c_int = 0x18; +pub const TCP_RTO_INITIAL: ::c_int = 0x19; +pub const TCP_RTO_MIN: ::c_int = 0x1a; +pub const TCP_RTO_MAX: ::c_int = 0x1b; +pub const TCP_LINGER2: ::c_int = 0x1c; + +pub const UDP_NAT_T_ENDPOINT: ::c_int = 0x0103; + +pub const SOMAXCONN: ::c_int = 128; + +pub const SOL_SOCKET: ::c_int = 0xffff; +pub const SO_DEBUG: ::c_int = 0x01; +pub const SO_ACCEPTCONN: ::c_int = 0x0002; +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_USELOOPBACK: ::c_int = 0x0040; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_OOBINLINE: ::c_int = 0x0100; +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_SNDLOWAT: ::c_int = 0x1003; +pub const SO_RCVLOWAT: ::c_int = 0x1004; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_TYPE: ::c_int = 0x1008; +pub const SO_TIMESTAMP: ::c_int = 0x1013; + +pub const SCM_RIGHTS: ::c_int = 0x1010; +pub const SCM_UCRED: ::c_int = 0x1012; +pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; + +pub const MSG_OOB: ::c_int = 0x1; +pub const MSG_PEEK: ::c_int = 0x2; +pub const MSG_DONTROUTE: ::c_int = 0x4; +pub const MSG_EOR: ::c_int = 0x8; +pub const MSG_CTRUNC: ::c_int = 0x10; +pub const MSG_TRUNC: ::c_int = 0x20; +pub const MSG_WAITALL: ::c_int = 0x40; +pub const MSG_DONTWAIT: ::c_int = 0x80; +pub const MSG_NOTIFICATION: ::c_int = 0x100; +pub const MSG_NOSIGNAL: ::c_int = 0x200; +pub const MSG_DUPCTRL: ::c_int = 0x800; +pub const MSG_XPG4_2: ::c_int = 0x8000; +pub const MSG_MAXIOVLEN: ::c_int = 16; + +pub const IF_NAMESIZE: ::size_t = 32; +pub const IFNAMSIZ: ::size_t = 16; + +// https://docs.oracle.com/cd/E23824_01/html/821-1475/if-7p.html +pub const IFF_UP: ::c_int = 0x0000000001; // Address is up +pub const IFF_BROADCAST: ::c_int = 0x0000000002; // Broadcast address valid +pub const IFF_DEBUG: ::c_int = 0x0000000004; // Turn on debugging +pub const IFF_LOOPBACK: ::c_int = 0x0000000008; // Loopback net +pub const IFF_POINTOPOINT: ::c_int = 0x0000000010; // Interface is p-to-p +pub const IFF_NOTRAILERS: ::c_int = 0x0000000020; // Avoid use of trailers +pub const IFF_RUNNING: ::c_int = 0x0000000040; // Resources allocated +pub const IFF_NOARP: ::c_int = 0x0000000080; // No address res. protocol +pub const IFF_PROMISC: ::c_int = 0x0000000100; // Receive all packets +pub const IFF_ALLMULTI: ::c_int = 0x0000000200; // Receive all multicast pkts +pub const IFF_INTELLIGENT: ::c_int = 0x0000000400; // Protocol code on board +pub const IFF_MULTICAST: ::c_int = 0x0000000800; // Supports multicast + +// Multicast using broadcst. add. +pub const IFF_MULTI_BCAST: ::c_int = 0x0000001000; +pub const IFF_UNNUMBERED: ::c_int = 0x0000002000; // Non-unique address +pub const IFF_DHCPRUNNING: ::c_int = 0x0000004000; // DHCP controls interface +pub const IFF_PRIVATE: ::c_int = 0x0000008000; // Do not advertise +pub const IFF_NOXMIT: ::c_int = 0x0000010000; // Do not transmit pkts + +// No address - just on-link subnet +pub const IFF_NOLOCAL: ::c_int = 0x0000020000; +pub const IFF_DEPRECATED: ::c_int = 0x0000040000; // Address is deprecated +pub const IFF_ADDRCONF: ::c_int = 0x0000080000; // Addr. from stateless addrconf +pub const IFF_ROUTER: ::c_int = 0x0000100000; // Router on interface +pub const IFF_NONUD: ::c_int = 0x0000200000; // No NUD on interface +pub const IFF_ANYCAST: ::c_int = 0x0000400000; // Anycast address +pub const IFF_NORTEXCH: ::c_int = 0x0000800000; // Don't xchange rout. info +pub const IFF_IPV4: ::c_int = 0x0001000000; // IPv4 interface +pub const IFF_IPV6: ::c_int = 0x0002000000; // IPv6 interface +pub const IFF_NOFAILOVER: ::c_int = 0x0008000000; // in.mpathd test address +pub const IFF_FAILED: ::c_int = 0x0010000000; // Interface has failed +pub const IFF_STANDBY: ::c_int = 0x0020000000; // Interface is a hot-spare +pub const IFF_INACTIVE: ::c_int = 0x0040000000; // Functioning but not used +pub const IFF_OFFLINE: ::c_int = 0x0080000000; // Interface is offline + // If CoS marking is supported +pub const IFF_COS_ENABLED: ::c_longlong = 0x0200000000; +pub const IFF_PREFERRED: ::c_longlong = 0x0400000000; // Prefer as source addr. +pub const IFF_TEMPORARY: ::c_longlong = 0x0800000000; // RFC3041 +pub const IFF_FIXEDMTU: ::c_longlong = 0x1000000000; // MTU set with SIOCSLIFMTU +pub const IFF_VIRTUAL: ::c_longlong = 0x2000000000; // Cannot send/receive pkts +pub const IFF_DUPLICATE: ::c_longlong = 0x4000000000; // Local address in use +pub const IFF_IPMP: ::c_longlong = 0x8000000000; // IPMP IP interface + +// sys/ipc.h: +pub const IPC_ALLOC: ::c_int = 0x8000; +pub const IPC_CREAT: ::c_int = 0x200; +pub const IPC_EXCL: ::c_int = 0x400; +pub const IPC_NOWAIT: ::c_int = 0x800; +pub const IPC_PRIVATE: key_t = 0; +pub const IPC_RMID: ::c_int = 10; +pub const IPC_SET: ::c_int = 11; +pub const IPC_SEAT: ::c_int = 12; + +// sys/shm.h +pub const SHM_R: ::c_int = 0o400; +pub const SHM_W: ::c_int = 0o200; +pub const SHM_RDONLY: ::c_int = 0o10000; +pub const SHM_RND: ::c_int = 0o20000; +pub const SHM_SHARE_MMU: ::c_int = 0o40000; +pub const SHM_PAGEABLE: ::c_int = 0o100000; + +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; + +pub const LOCK_SH: ::c_int = 1; +pub const LOCK_EX: ::c_int = 2; +pub const LOCK_NB: ::c_int = 4; +pub const LOCK_UN: ::c_int = 8; + +pub const F_RDLCK: ::c_short = 1; +pub const F_WRLCK: ::c_short = 2; +pub const F_UNLCK: ::c_short = 3; + +pub const O_SYNC: ::c_int = 16; +pub const O_NONBLOCK: ::c_int = 128; + +pub const IPPROTO_RAW: ::c_int = 255; + +pub const _PC_LINK_MAX: ::c_int = 1; +pub const _PC_MAX_CANON: ::c_int = 2; +pub const _PC_MAX_INPUT: ::c_int = 3; +pub const _PC_NAME_MAX: ::c_int = 4; +pub const _PC_PATH_MAX: ::c_int = 5; +pub const _PC_PIPE_BUF: ::c_int = 6; +pub const _PC_NO_TRUNC: ::c_int = 7; +pub const _PC_VDISABLE: ::c_int = 8; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 9; +pub const _PC_ASYNC_IO: ::c_int = 10; +pub const _PC_PRIO_IO: ::c_int = 11; +pub const _PC_SYNC_IO: ::c_int = 12; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; +pub const _PC_REC_XFER_ALIGN: ::c_int = 17; +pub const _PC_SYMLINK_MAX: ::c_int = 18; +pub const _PC_2_SYMLINKS: ::c_int = 19; +pub const _PC_ACL_ENABLED: ::c_int = 20; +pub const _PC_MIN_HOLE_SIZE: ::c_int = 21; +pub const _PC_CASE_BEHAVIOR: ::c_int = 22; +pub const _PC_SATTR_ENABLED: ::c_int = 23; +pub const _PC_SATTR_EXISTS: ::c_int = 24; +pub const _PC_ACCESS_FILTERING: ::c_int = 25; +pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 26; +pub const _PC_FILESIZEBITS: ::c_int = 67; +pub const _PC_XATTR_ENABLED: ::c_int = 100; +pub const _PC_LAST: ::c_int = 101; +pub const _PC_XATTR_EXISTS: ::c_int = 101; + +pub const _SC_ARG_MAX: ::c_int = 1; +pub const _SC_CHILD_MAX: ::c_int = 2; +pub const _SC_CLK_TCK: ::c_int = 3; +pub const _SC_NGROUPS_MAX: ::c_int = 4; +pub const _SC_OPEN_MAX: ::c_int = 5; +pub const _SC_JOB_CONTROL: ::c_int = 6; +pub const _SC_SAVED_IDS: ::c_int = 7; +pub const _SC_VERSION: ::c_int = 8; +pub const _SC_PASS_MAX: ::c_int = 9; +pub const _SC_LOGNAME_MAX: ::c_int = 10; +pub const _SC_PAGESIZE: ::c_int = 11; +pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; +pub const _SC_XOPEN_VERSION: ::c_int = 12; +pub const _SC_NPROCESSORS_CONF: ::c_int = 14; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 15; +pub const _SC_STREAM_MAX: ::c_int = 16; +pub const _SC_TZNAME_MAX: ::c_int = 17; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 18; +pub const _SC_AIO_MAX: ::c_int = 19; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 20; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 21; +pub const _SC_DELAYTIMER_MAX: ::c_int = 22; +pub const _SC_FSYNC: ::c_int = 23; +pub const _SC_MAPPED_FILES: ::c_int = 24; +pub const _SC_MEMLOCK: ::c_int = 25; +pub const _SC_MEMLOCK_RANGE: ::c_int = 26; +pub const _SC_MEMORY_PROTECTION: ::c_int = 27; +pub const _SC_MESSAGE_PASSING: ::c_int = 28; +pub const _SC_MQ_OPEN_MAX: ::c_int = 29; +pub const _SC_MQ_PRIO_MAX: ::c_int = 30; +pub const _SC_PRIORITIZED_IO: ::c_int = 31; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 32; +pub const _SC_REALTIME_SIGNALS: ::c_int = 33; +pub const _SC_RTSIG_MAX: ::c_int = 34; +pub const _SC_SEMAPHORES: ::c_int = 35; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 36; +pub const _SC_SEM_VALUE_MAX: ::c_int = 37; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 38; +pub const _SC_SIGQUEUE_MAX: ::c_int = 39; +pub const _SC_SIGRT_MIN: ::c_int = 40; +pub const _SC_SIGRT_MAX: ::c_int = 41; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 42; +pub const _SC_TIMERS: ::c_int = 43; +pub const _SC_TIMER_MAX: ::c_int = 44; +pub const _SC_2_C_BIND: ::c_int = 45; +pub const _SC_2_C_DEV: ::c_int = 46; +pub const _SC_2_C_VERSION: ::c_int = 47; +pub const _SC_2_FORT_DEV: ::c_int = 48; +pub const _SC_2_FORT_RUN: ::c_int = 49; +pub const _SC_2_LOCALEDEF: ::c_int = 50; +pub const _SC_2_SW_DEV: ::c_int = 51; +pub const _SC_2_UPE: ::c_int = 52; +pub const _SC_2_VERSION: ::c_int = 53; +pub const _SC_BC_BASE_MAX: ::c_int = 54; +pub const _SC_BC_DIM_MAX: ::c_int = 55; +pub const _SC_BC_SCALE_MAX: ::c_int = 56; +pub const _SC_BC_STRING_MAX: ::c_int = 57; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 58; +pub const _SC_EXPR_NEST_MAX: ::c_int = 59; +pub const _SC_LINE_MAX: ::c_int = 60; +pub const _SC_RE_DUP_MAX: ::c_int = 61; +pub const _SC_XOPEN_CRYPT: ::c_int = 62; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 63; +pub const _SC_XOPEN_SHM: ::c_int = 64; +pub const _SC_2_CHAR_TERM: ::c_int = 66; +pub const _SC_XOPEN_XCU_VERSION: ::c_int = 67; +pub const _SC_ATEXIT_MAX: ::c_int = 76; +pub const _SC_IOV_MAX: ::c_int = 77; +pub const _SC_XOPEN_UNIX: ::c_int = 78; +pub const _SC_T_IOV_MAX: ::c_int = 79; +pub const _SC_PHYS_PAGES: ::c_int = 500; +pub const _SC_AVPHYS_PAGES: ::c_int = 501; +pub const _SC_COHER_BLKSZ: ::c_int = 503; +pub const _SC_SPLIT_CACHE: ::c_int = 504; +pub const _SC_ICACHE_SZ: ::c_int = 505; +pub const _SC_DCACHE_SZ: ::c_int = 506; +pub const _SC_ICACHE_LINESZ: ::c_int = 507; +pub const _SC_DCACHE_LINESZ: ::c_int = 508; +pub const _SC_ICACHE_BLKSZ: ::c_int = 509; +pub const _SC_DCACHE_BLKSZ: ::c_int = 510; +pub const _SC_DCACHE_TBLKSZ: ::c_int = 511; +pub const _SC_ICACHE_ASSOC: ::c_int = 512; +pub const _SC_DCACHE_ASSOC: ::c_int = 513; +pub const _SC_MAXPID: ::c_int = 514; +pub const _SC_STACK_PROT: ::c_int = 515; +pub const _SC_NPROCESSORS_MAX: ::c_int = 516; +pub const _SC_CPUID_MAX: ::c_int = 517; +pub const _SC_EPHID_MAX: ::c_int = 518; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 568; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 569; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 570; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 571; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 572; +pub const _SC_THREAD_STACK_MIN: ::c_int = 573; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 574; +pub const _SC_TTY_NAME_MAX: ::c_int = 575; +pub const _SC_THREADS: ::c_int = 576; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 577; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 578; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 579; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 580; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 581; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 582; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 583; +pub const _SC_XOPEN_LEGACY: ::c_int = 717; +pub const _SC_XOPEN_REALTIME: ::c_int = 718; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 719; +pub const _SC_XBS5_ILP32_OFF32: ::c_int = 720; +pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 721; +pub const _SC_XBS5_LP64_OFF64: ::c_int = 722; +pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 723; +pub const _SC_2_PBS: ::c_int = 724; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 725; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 726; +pub const _SC_2_PBS_LOCATE: ::c_int = 728; +pub const _SC_2_PBS_MESSAGE: ::c_int = 729; +pub const _SC_2_PBS_TRACK: ::c_int = 730; +pub const _SC_ADVISORY_INFO: ::c_int = 731; +pub const _SC_BARRIERS: ::c_int = 732; +pub const _SC_CLOCK_SELECTION: ::c_int = 733; +pub const _SC_CPUTIME: ::c_int = 734; +pub const _SC_HOST_NAME_MAX: ::c_int = 735; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 736; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 737; +pub const _SC_REGEXP: ::c_int = 738; +pub const _SC_SHELL: ::c_int = 739; +pub const _SC_SPAWN: ::c_int = 740; +pub const _SC_SPIN_LOCKS: ::c_int = 741; +pub const _SC_SPORADIC_SERVER: ::c_int = 742; +pub const _SC_SS_REPL_MAX: ::c_int = 743; +pub const _SC_SYMLOOP_MAX: ::c_int = 744; +pub const _SC_THREAD_CPUTIME: ::c_int = 745; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 746; +pub const _SC_TIMEOUTS: ::c_int = 747; +pub const _SC_TRACE: ::c_int = 748; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 749; +pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 750; +pub const _SC_TRACE_INHERIT: ::c_int = 751; +pub const _SC_TRACE_LOG: ::c_int = 752; +pub const _SC_TRACE_NAME_MAX: ::c_int = 753; +pub const _SC_TRACE_SYS_MAX: ::c_int = 754; +pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 755; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 756; +pub const _SC_V6_ILP32_OFF32: ::c_int = 757; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 758; +pub const _SC_V6_LP64_OFF64: ::c_int = 759; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 760; +pub const _SC_XOPEN_STREAMS: ::c_int = 761; +pub const _SC_IPV6: ::c_int = 762; +pub const _SC_RAW_SOCKETS: ::c_int = 763; + +pub const _MUTEX_MAGIC: u16 = 0x4d58; // MX +pub const _COND_MAGIC: u16 = 0x4356; // CV +pub const _RWL_MAGIC: u16 = 0x5257; // RW + +pub const NCCS: usize = 19; + +pub const LOG_CRON: ::c_int = 15 << 3; + +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + __pthread_mutex_flag1: 0, + __pthread_mutex_flag2: 0, + __pthread_mutex_ceiling: 0, + __pthread_mutex_type: PTHREAD_PROCESS_PRIVATE, + __pthread_mutex_magic: _MUTEX_MAGIC, + __pthread_mutex_lock: 0, + __pthread_mutex_data: 0, +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + __pthread_cond_flag: [0; 4], + __pthread_cond_type: PTHREAD_PROCESS_PRIVATE, + __pthread_cond_magic: _COND_MAGIC, + __pthread_cond_data: 0, +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + __pthread_rwlock_readers: 0, + __pthread_rwlock_type: PTHREAD_PROCESS_PRIVATE, + __pthread_rwlock_magic: _RWL_MAGIC, + __pthread_rwlock_mutex: PTHREAD_MUTEX_INITIALIZER, + __pthread_rwlock_readercv: PTHREAD_COND_INITIALIZER, + __pthread_rwlock_writercv: PTHREAD_COND_INITIALIZER, +}; +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 4; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; + +pub const RTLD_NEXT: *mut ::c_void = -1isize as *mut ::c_void; +pub const RTLD_DEFAULT: *mut ::c_void = -2isize as *mut ::c_void; +pub const RTLD_SELF: *mut ::c_void = -3isize as *mut ::c_void; +pub const RTLD_PROBE: *mut ::c_void = -4isize as *mut ::c_void; + +pub const RTLD_LAZY: ::c_int = 0x1; +pub const RTLD_NOW: ::c_int = 0x2; +pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_LOCAL: ::c_int = 0x0; +pub const RTLD_PARENT: ::c_int = 0x200; +pub const RTLD_GROUP: ::c_int = 0x400; +pub const RTLD_WORLD: ::c_int = 0x800; +pub const RTLD_NODELETE: ::c_int = 0x1000; +pub const RTLD_FIRST: ::c_int = 0x2000; +pub const RTLD_CONFGEN: ::c_int = 0x10000; + +pub const PORT_SOURCE_AIO: ::c_int = 1; +pub const PORT_SOURCE_TIMER: ::c_int = 2; +pub const PORT_SOURCE_USER: ::c_int = 3; +pub const PORT_SOURCE_FD: ::c_int = 4; +pub const PORT_SOURCE_ALERT: ::c_int = 5; +pub const PORT_SOURCE_MQ: ::c_int = 6; +pub const PORT_SOURCE_FILE: ::c_int = 7; + +pub const NONROOT_USR: ::c_short = 2; +pub const _UTX_USERSIZE: usize = 32; +pub const _UTX_LINESIZE: usize = 32; +pub const _UTX_PADSIZE: usize = 5; +pub const _UTX_IDSIZE: usize = 4; +pub const _UTX_HOSTSIZE: usize = 257; +pub const EMPTY: ::c_short = 0; +pub const RUN_LVL: ::c_short = 1; +pub const BOOT_TIME: ::c_short = 2; +pub const OLD_TIME: ::c_short = 3; +pub const NEW_TIME: ::c_short = 4; +pub const INIT_PROCESS: ::c_short = 5; +pub const LOGIN_PROCESS: ::c_short = 6; +pub const USER_PROCESS: ::c_short = 7; +pub const DEAD_PROCESS: ::c_short = 8; +pub const ACCOUNTING: ::c_short = 9; +pub const DOWN_TIME: ::c_short = 10; + +const _TIOC: ::c_int = ('T' as i32) << 8; +const tIOC: ::c_int = ('t' as i32) << 8; +pub const TCGETA: ::c_int = _TIOC | 1; +pub const TCSETA: ::c_int = _TIOC | 2; +pub const TCSETAW: ::c_int = _TIOC | 3; +pub const TCSETAF: ::c_int = _TIOC | 4; +pub const TCSBRK: ::c_int = _TIOC | 5; +pub const TCXONC: ::c_int = _TIOC | 6; +pub const TCFLSH: ::c_int = _TIOC | 7; +pub const TCDSET: ::c_int = _TIOC | 32; +pub const TCGETS: ::c_int = _TIOC | 13; +pub const TCSETS: ::c_int = _TIOC | 14; +pub const TCSANOW: ::c_int = _TIOC | 14; +pub const TCSETSW: ::c_int = _TIOC | 15; +pub const TCSADRAIN: ::c_int = _TIOC | 15; +pub const TCSETSF: ::c_int = _TIOC | 16; +pub const TCSAFLUSH: ::c_int = _TIOC | 16; +pub const TCIFLUSH: ::c_int = 0; +pub const TCOFLUSH: ::c_int = 1; +pub const TCIOFLUSH: ::c_int = 2; +pub const TCOOFF: ::c_int = 0; +pub const TCOON: ::c_int = 1; +pub const TCIOFF: ::c_int = 2; +pub const TCION: ::c_int = 3; +pub const TIOC: ::c_int = _TIOC; +pub const TIOCKBON: ::c_int = _TIOC | 8; +pub const TIOCKBOF: ::c_int = _TIOC | 9; +pub const TIOCGWINSZ: ::c_int = _TIOC | 104; +pub const TIOCSWINSZ: ::c_int = _TIOC | 103; +pub const TIOCGSOFTCAR: ::c_int = _TIOC | 105; +pub const TIOCSSOFTCAR: ::c_int = _TIOC | 106; +pub const TIOCGPPS: ::c_int = _TIOC | 125; +pub const TIOCSPPS: ::c_int = _TIOC | 126; +pub const TIOCGPPSEV: ::c_int = _TIOC | 127; +pub const TIOCGETD: ::c_int = tIOC | 0; +pub const TIOCSETD: ::c_int = tIOC | 1; +pub const TIOCHPCL: ::c_int = tIOC | 2; +pub const TIOCGETP: ::c_int = tIOC | 8; +pub const TIOCSETP: ::c_int = tIOC | 9; +pub const TIOCSETN: ::c_int = tIOC | 10; +pub const TIOCEXCL: ::c_int = tIOC | 13; +pub const TIOCNXCL: ::c_int = tIOC | 14; +pub const TIOCFLUSH: ::c_int = tIOC | 16; +pub const TIOCSETC: ::c_int = tIOC | 17; +pub const TIOCGETC: ::c_int = tIOC | 18; +pub const TIOCLBIS: ::c_int = tIOC | 127; +pub const TIOCLBIC: ::c_int = tIOC | 126; +pub const TIOCLSET: ::c_int = tIOC | 125; +pub const TIOCLGET: ::c_int = tIOC | 124; +pub const TIOCSBRK: ::c_int = tIOC | 123; +pub const TIOCCBRK: ::c_int = tIOC | 122; +pub const TIOCSDTR: ::c_int = tIOC | 121; +pub const TIOCCDTR: ::c_int = tIOC | 120; +pub const TIOCSLTC: ::c_int = tIOC | 117; +pub const TIOCGLTC: ::c_int = tIOC | 116; +pub const TIOCOUTQ: ::c_int = tIOC | 115; +pub const TIOCNOTTY: ::c_int = tIOC | 113; +pub const TIOCSCTTY: ::c_int = tIOC | 132; +pub const TIOCSTOP: ::c_int = tIOC | 111; +pub const TIOCSTART: ::c_int = tIOC | 110; +pub const TIOCSILOOP: ::c_int = tIOC | 109; +pub const TIOCCILOOP: ::c_int = tIOC | 108; +pub const TIOCGPGRP: ::c_int = tIOC | 20; +pub const TIOCSPGRP: ::c_int = tIOC | 21; +pub const TIOCGSID: ::c_int = tIOC | 22; +pub const TIOCSTI: ::c_int = tIOC | 23; +pub const TIOCMSET: ::c_int = tIOC | 26; +pub const TIOCMBIS: ::c_int = tIOC | 27; +pub const TIOCMBIC: ::c_int = tIOC | 28; +pub const TIOCMGET: ::c_int = tIOC | 29; +pub const TIOCREMOTE: ::c_int = tIOC | 30; +pub const TIOCSIGNAL: ::c_int = tIOC | 31; + +pub const TIOCM_LE: ::c_int = 0o0001; +pub const TIOCM_DTR: ::c_int = 0o0002; +pub const TIOCM_RTS: ::c_int = 0o0004; +pub const TIOCM_ST: ::c_int = 0o0010; +pub const TIOCM_SR: ::c_int = 0o0020; +pub const TIOCM_CTS: ::c_int = 0o0040; +pub const TIOCM_CAR: ::c_int = 0o0100; +pub const TIOCM_CD: ::c_int = TIOCM_CAR; +pub const TIOCM_RNG: ::c_int = 0o0200; +pub const TIOCM_RI: ::c_int = TIOCM_RNG; +pub const TIOCM_DSR: ::c_int = 0o0400; + +pub const EPOLLIN: ::c_int = 0x1; +pub const EPOLLPRI: ::c_int = 0x2; +pub const EPOLLOUT: ::c_int = 0x4; +pub const EPOLLRDNORM: ::c_int = 0x40; +pub const EPOLLRDBAND: ::c_int = 0x80; +pub const EPOLLWRNORM: ::c_int = 0x100; +pub const EPOLLWRBAND: ::c_int = 0x200; +pub const EPOLLMSG: ::c_int = 0x400; +pub const EPOLLERR: ::c_int = 0x8; +pub const EPOLLHUP: ::c_int = 0x10; +pub const EPOLLET: ::c_int = 0x80000000; +pub const EPOLLRDHUP: ::c_int = 0x2000; +pub const EPOLLONESHOT: ::c_int = 0x40000000; +pub const EPOLLWAKEUP: ::c_int = 0x20000000; +pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000; +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; +pub const EPOLL_CTL_ADD: ::c_int = 1; +pub const EPOLL_CTL_MOD: ::c_int = 3; +pub const EPOLL_CTL_DEL: ::c_int = 2; + +/* termios */ +pub const B0: speed_t = 0; +pub const B50: speed_t = 1; +pub const B75: speed_t = 2; +pub const B110: speed_t = 3; +pub const B134: speed_t = 4; +pub const B150: speed_t = 5; +pub const B200: speed_t = 6; +pub const B300: speed_t = 7; +pub const B600: speed_t = 8; +pub const B1200: speed_t = 9; +pub const B1800: speed_t = 10; +pub const B2400: speed_t = 11; +pub const B4800: speed_t = 12; +pub const B9600: speed_t = 13; +pub const B19200: speed_t = 14; +pub const B38400: speed_t = 15; +pub const B57600: speed_t = 16; +pub const B76800: speed_t = 17; +pub const B115200: speed_t = 18; +pub const B153600: speed_t = 19; +pub const B230400: speed_t = 20; +pub const B307200: speed_t = 21; +pub const B460800: speed_t = 22; +pub const B921600: speed_t = 23; +pub const CSTART: ::tcflag_t = 0o21; +pub const CSTOP: ::tcflag_t = 0o23; +pub const CSWTCH: ::tcflag_t = 0o32; +pub const CBAUD: ::tcflag_t = 0o17; +pub const CIBAUD: ::tcflag_t = 0o3600000; +pub const CBAUDEXT: ::tcflag_t = 0o10000000; +pub const CIBAUDEXT: ::tcflag_t = 0o20000000; +pub const CSIZE: ::tcflag_t = 0o000060; +pub const CS5: ::tcflag_t = 0; +pub const CS6: ::tcflag_t = 0o000020; +pub const CS7: ::tcflag_t = 0o000040; +pub const CS8: ::tcflag_t = 0o000060; +pub const CSTOPB: ::tcflag_t = 0o000100; +pub const ECHO: ::tcflag_t = 0o000010; +pub const ECHOE: ::tcflag_t = 0o000020; +pub const ECHOK: ::tcflag_t = 0o000040; +pub const ECHONL: ::tcflag_t = 0o000100; +pub const ECHOCTL: ::tcflag_t = 0o001000; +pub const ECHOPRT: ::tcflag_t = 0o002000; +pub const ECHOKE: ::tcflag_t = 0o004000; +pub const EXTPROC: ::tcflag_t = 0o200000; +pub const IGNBRK: ::tcflag_t = 0o000001; +pub const BRKINT: ::tcflag_t = 0o000002; +pub const IGNPAR: ::tcflag_t = 0o000004; +pub const PARMRK: ::tcflag_t = 0o000010; +pub const INPCK: ::tcflag_t = 0o000020; +pub const ISTRIP: ::tcflag_t = 0o000040; +pub const INLCR: ::tcflag_t = 0o000100; +pub const IGNCR: ::tcflag_t = 0o000200; +pub const ICRNL: ::tcflag_t = 0o000400; +pub const IUCLC: ::tcflag_t = 0o001000; +pub const IXON: ::tcflag_t = 0o002000; +pub const IXOFF: ::tcflag_t = 0o010000; +pub const IXANY: ::tcflag_t = 0o004000; +pub const IMAXBEL: ::tcflag_t = 0o020000; +pub const DOSMODE: ::tcflag_t = 0o100000; +pub const OPOST: ::tcflag_t = 0o000001; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const ONLCR: ::tcflag_t = 0o000004; +pub const OCRNL: ::tcflag_t = 0o000010; +pub const ONOCR: ::tcflag_t = 0o000020; +pub const ONLRET: ::tcflag_t = 0o000040; +pub const OFILL: ::tcflag_t = 0o0000100; +pub const OFDEL: ::tcflag_t = 0o0000200; +pub const CREAD: ::tcflag_t = 0o000200; +pub const PARENB: ::tcflag_t = 0o000400; +pub const PARODD: ::tcflag_t = 0o001000; +pub const HUPCL: ::tcflag_t = 0o002000; +pub const CLOCAL: ::tcflag_t = 0o004000; +pub const CRTSXOFF: ::tcflag_t = 0o10000000000; +pub const CRTSCTS: ::tcflag_t = 0o20000000000; +pub const ISIG: ::tcflag_t = 0o000001; +pub const ICANON: ::tcflag_t = 0o000002; +pub const IEXTEN: ::tcflag_t = 0o100000; +pub const TOSTOP: ::tcflag_t = 0o000400; +pub const FLUSHO: ::tcflag_t = 0o020000; +pub const PENDIN: ::tcflag_t = 0o040000; +pub const NOFLSH: ::tcflag_t = 0o000200; +pub const VINTR: usize = 0; +pub const VQUIT: usize = 1; +pub const VERASE: usize = 2; +pub const VKILL: usize = 3; +pub const VEOF: usize = 4; +pub const VEOL: usize = 5; +pub const VEOL2: usize = 6; +pub const VMIN: usize = 4; +pub const VTIME: usize = 5; +pub const VSWTCH: usize = 7; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VSUSP: usize = 10; +pub const VDSUSP: usize = 11; +pub const VREPRINT: usize = 12; +pub const VDISCARD: usize = 13; +pub const VWERASE: usize = 14; +pub const VLNEXT: usize = 15; +pub const VSTATUS: usize = 16; +pub const VERASE2: usize = 17; + +// +const STR: ::c_int = (b'S' as ::c_int) << 8; +pub const I_NREAD: ::c_int = STR | 0o1; +pub const I_PUSH: ::c_int = STR | 0o2; +pub const I_POP: ::c_int = STR | 0o3; +pub const I_LOOK: ::c_int = STR | 0o4; +pub const I_FLUSH: ::c_int = STR | 0o5; +pub const I_SRDOPT: ::c_int = STR | 0o6; +pub const I_GRDOPT: ::c_int = STR | 0o7; +pub const I_STR: ::c_int = STR | 0o10; +pub const I_SETSIG: ::c_int = STR | 0o11; +pub const I_GETSIG: ::c_int = STR | 0o12; +pub const I_FIND: ::c_int = STR | 0o13; +pub const I_LINK: ::c_int = STR | 0o14; +pub const I_UNLINK: ::c_int = STR | 0o15; +pub const I_PEEK: ::c_int = STR | 0o17; +pub const I_FDINSERT: ::c_int = STR | 0o20; +pub const I_SENDFD: ::c_int = STR | 0o21; +pub const I_RECVFD: ::c_int = STR | 0o16; +pub const I_SWROPT: ::c_int = STR | 0o23; +pub const I_GWROPT: ::c_int = STR | 0o24; +pub const I_LIST: ::c_int = STR | 0o25; +pub const I_PLINK: ::c_int = STR | 0o26; +pub const I_PUNLINK: ::c_int = STR | 0o27; +pub const I_ANCHOR: ::c_int = STR | 0o30; +pub const I_FLUSHBAND: ::c_int = STR | 0o34; +pub const I_CKBAND: ::c_int = STR | 0o35; +pub const I_GETBAND: ::c_int = STR | 0o36; +pub const I_ATMARK: ::c_int = STR | 0o37; +pub const I_SETCLTIME: ::c_int = STR | 0o40; +pub const I_GETCLTIME: ::c_int = STR | 0o41; +pub const I_CANPUT: ::c_int = STR | 0o42; +pub const I_SERROPT: ::c_int = STR | 0o43; +pub const I_GERROPT: ::c_int = STR | 0o44; +pub const I_ESETSIG: ::c_int = STR | 0o45; +pub const I_EGETSIG: ::c_int = STR | 0o46; +pub const __I_PUSH_NOCTTY: ::c_int = STR | 0o47; + +// 3SOCKET flags +pub const SOCK_CLOEXEC: ::c_int = 0x080000; +pub const SOCK_NONBLOCK: ::c_int = 0x100000; +pub const SOCK_NDELAY: ::c_int = 0x200000; + +// +pub const SCALE_KG: ::c_int = 1 << 6; +pub const SCALE_KF: ::c_int = 1 << 16; +pub const SCALE_KH: ::c_int = 1 << 2; +pub const MAXTC: ::c_int = 1 << 6; +pub const SCALE_PHASE: ::c_int = 1 << 22; +pub const SCALE_USEC: ::c_int = 1 << 16; +pub const SCALE_UPDATE: ::c_int = SCALE_KG * MAXTC; +pub const FINEUSEC: ::c_int = 1 << 22; +pub const MAXPHASE: ::c_int = 512000; +pub const MAXFREQ: ::c_int = 512 * SCALE_USEC; +pub const MAXTIME: ::c_int = 200 << PPS_AVG; +pub const MINSEC: ::c_int = 16; +pub const MAXSEC: ::c_int = 1200; +pub const PPS_AVG: ::c_int = 2; +pub const PPS_SHIFT: ::c_int = 2; +pub const PPS_SHIFTMAX: ::c_int = 8; +pub const PPS_VALID: ::c_int = 120; +pub const MAXGLITCH: ::c_int = 30; +pub const MOD_OFFSET: u32 = 0x0001; +pub const MOD_FREQUENCY: u32 = 0x0002; +pub const MOD_MAXERROR: u32 = 0x0004; +pub const MOD_ESTERROR: u32 = 0x0008; +pub const MOD_STATUS: u32 = 0x0010; +pub const MOD_TIMECONST: u32 = 0x0020; +pub const MOD_CLKB: u32 = 0x4000; +pub const MOD_CLKA: u32 = 0x8000; +pub const STA_PLL: u32 = 0x0001; +pub const STA_PPSFREQ: i32 = 0x0002; +pub const STA_PPSTIME: i32 = 0x0004; +pub const STA_FLL: i32 = 0x0008; +pub const STA_INS: i32 = 0x0010; +pub const STA_DEL: i32 = 0x0020; +pub const STA_UNSYNC: i32 = 0x0040; +pub const STA_FREQHOLD: i32 = 0x0080; +pub const STA_PPSSIGNAL: i32 = 0x0100; +pub const STA_PPSJITTER: i32 = 0x0200; +pub const STA_PPSWANDER: i32 = 0x0400; +pub const STA_PPSERROR: i32 = 0x0800; +pub const STA_CLOCKERR: i32 = 0x1000; +pub const STA_RONLY: i32 = + STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR | STA_CLOCKERR; +pub const TIME_OK: i32 = 0; +pub const TIME_INS: i32 = 1; +pub const TIME_DEL: i32 = 2; +pub const TIME_OOP: i32 = 3; +pub const TIME_WAIT: i32 = 4; +pub const TIME_ERROR: i32 = 5; + +pub const PRIO_PROCESS: ::c_int = 0; +pub const PRIO_PGRP: ::c_int = 1; +pub const PRIO_USER: ::c_int = 2; + +pub const SCHED_OTHER: ::c_int = 0; +pub const SCHED_FIFO: ::c_int = 1; +pub const SCHED_RR: ::c_int = 2; +pub const SCHED_SYS: ::c_int = 3; +pub const SCHED_IA: ::c_int = 4; +pub const SCHED_FSS: ::c_int = 5; +pub const SCHED_FX: ::c_int = 6; + +// sys/priv.h +pub const PRIV_DEBUG: ::c_uint = 0x0001; +pub const PRIV_AWARE: ::c_uint = 0x0002; +pub const PRIV_AWARE_INHERIT: ::c_uint = 0x0004; +pub const __PROC_PROTECT: ::c_uint = 0x0008; +pub const NET_MAC_AWARE: ::c_uint = 0x0010; +pub const NET_MAC_AWARE_INHERIT: ::c_uint = 0x0020; +pub const PRIV_AWARE_RESET: ::c_uint = 0x0040; +pub const PRIV_XPOLICY: ::c_uint = 0x0080; +pub const PRIV_PFEXEC: ::c_uint = 0x0100; +pub const PRIV_USER: ::c_uint = PRIV_DEBUG + | NET_MAC_AWARE + | NET_MAC_AWARE_INHERIT + | PRIV_XPOLICY + | PRIV_AWARE_RESET + | PRIV_PFEXEC; + +// sys/systeminfo.h +pub const SI_SYSNAME: ::c_int = 1; +pub const SI_HOSTNAME: ::c_int = 2; +pub const SI_RELEASE: ::c_int = 3; +pub const SI_VERSION: ::c_int = 4; +pub const SI_MACHINE: ::c_int = 5; +pub const SI_ARCHITECTURE: ::c_int = 6; +pub const SI_HW_SERIAL: ::c_int = 7; +pub const SI_HW_PROVIDER: ::c_int = 8; +pub const SI_SET_HOSTNAME: ::c_int = 258; +pub const SI_SET_SRPC_DOMAIN: ::c_int = 265; +pub const SI_PLATFORM: ::c_int = 513; +pub const SI_ISALIST: ::c_int = 514; +pub const SI_DHCP_CACHE: ::c_int = 515; +pub const SI_ARCHITECTURE_32: ::c_int = 516; +pub const SI_ARCHITECTURE_64: ::c_int = 517; +pub const SI_ARCHITECTURE_K: ::c_int = 518; +pub const SI_ARCHITECTURE_NATIVE: ::c_int = 519; + +// sys/lgrp_user.h +pub const LGRP_COOKIE_NONE: ::lgrp_cookie_t = 0; +pub const LGRP_AFF_NONE: ::lgrp_affinity_t = 0x0; +pub const LGRP_AFF_WEAK: ::lgrp_affinity_t = 0x10; +pub const LGRP_AFF_STRONG: ::lgrp_affinity_t = 0x100; +pub const LGRP_RSRC_COUNT: ::lgrp_rsrc_t = 2; +pub const LGRP_RSRC_CPU: ::lgrp_rsrc_t = 0; +pub const LGRP_RSRC_MEM: ::lgrp_rsrc_t = 1; +pub const LGRP_CONTENT_ALL: ::lgrp_content_t = 0; +pub const LGRP_CONTENT_HIERARCHY: ::lgrp_content_t = LGRP_CONTENT_ALL; +pub const LGRP_CONTENT_DIRECT: ::lgrp_content_t = 1; +pub const LGRP_LAT_CPU_TO_MEM: ::lgrp_lat_between_t = 0; +pub const LGRP_MEM_SZ_FREE: ::lgrp_mem_size_flag_t = 0; +pub const LGRP_MEM_SZ_INSTALLED: ::lgrp_mem_size_flag_t = 1; +pub const LGRP_VIEW_CALLER: ::lgrp_view_t = 0; +pub const LGRP_VIEW_OS: ::lgrp_view_t = 1; + +// sys/processor.h + +pub const P_OFFLINE: ::c_int = 0x001; +pub const P_ONLINE: ::c_int = 0x002; +pub const P_STATUS: ::c_int = 0x003; +pub const P_FAULTED: ::c_int = 0x004; +pub const P_POWEROFF: ::c_int = 0x005; +pub const P_NOINTR: ::c_int = 0x006; +pub const P_SPARE: ::c_int = 0x007; +pub const P_DISABLED: ::c_int = 0x008; +pub const P_FORCED: ::c_int = 0x10000000; +pub const PI_TYPELEN: ::c_int = 16; +pub const PI_FPUTYPE: ::c_int = 32; + +// sys/auxv.h +pub const AT_SUN_HWCAP: ::c_uint = 2009; +pub const AT_SUN_HWCAP2: ::c_uint = 2023; +pub const AT_SUN_FPTYPE: ::c_uint = 2027; + +// As per sys/socket.h, header alignment must be 8 bytes on SPARC +// and 4 bytes everywhere else: +#[cfg(target_arch = "sparc64")] +const _CMSG_HDR_ALIGNMENT: usize = 8; +#[cfg(not(target_arch = "sparc64"))] +const _CMSG_HDR_ALIGNMENT: usize = 4; + +const _CMSG_DATA_ALIGNMENT: usize = ::mem::size_of::<::c_int>(); + +const NEWDEV: ::c_int = 1; + +const_fn! { + {const} fn _CMSG_HDR_ALIGN(p: usize) -> usize { + (p + _CMSG_HDR_ALIGNMENT - 1) & !(_CMSG_HDR_ALIGNMENT - 1) + } + + {const} fn _CMSG_DATA_ALIGN(p: usize) -> usize { + (p + _CMSG_DATA_ALIGNMENT - 1) & !(_CMSG_DATA_ALIGNMENT - 1) + } +} + +f! { + pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { + _CMSG_DATA_ALIGN(cmsg.offset(1) as usize) as *mut ::c_uchar + } + + pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { + _CMSG_DATA_ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length + } + + pub fn CMSG_FIRSTHDR(mhdr: *const ::msghdr) -> *mut ::cmsghdr { + if ((*mhdr).msg_controllen as usize) < ::mem::size_of::<::cmsghdr>() { + 0 as *mut ::cmsghdr + } else { + (*mhdr).msg_control as *mut ::cmsghdr + } + } + + pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) + -> *mut ::cmsghdr + { + if cmsg.is_null() { + return ::CMSG_FIRSTHDR(mhdr); + }; + let next = _CMSG_HDR_ALIGN(cmsg as usize + (*cmsg).cmsg_len as usize + + ::mem::size_of::<::cmsghdr>()); + let max = (*mhdr).msg_control as usize + + (*mhdr).msg_controllen as usize; + if next > max { + 0 as *mut ::cmsghdr + } else { + _CMSG_HDR_ALIGN(cmsg as usize + (*cmsg).cmsg_len as usize) + as *mut ::cmsghdr + } + } + + pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + _CMSG_HDR_ALIGN(::mem::size_of::<::cmsghdr>() as usize + + length as usize) as ::c_uint + } + + pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let fd = fd as usize; + (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); + return + } + + pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let fd = fd as usize; + return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0 + } + + pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + let fd = fd as usize; + (*set).fds_bits[fd / bits] |= 1 << (fd % bits); + return + } + + pub fn FD_ZERO(set: *mut fd_set) -> () { + for slot in (*set).fds_bits.iter_mut() { + *slot = 0; + } + } +} + +safe_f! { + pub {const} fn WIFEXITED(status: ::c_int) -> bool { + (status & 0xFF) == 0 + } + + pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + (status >> 8) & 0xFF + } + + pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + status & 0x7F + } + + pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + (status & 0xffff) == 0xffff + } + + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + (status & 0xff00) >> 8 + } + + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + ((status & 0xff) > 0) && (status & 0xff00 == 0) + } + + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + ((status & 0xff) == 0x7f) && ((status & 0xff00) != 0) + } + + pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + (status & 0x80) != 0 + } + + pub {const} fn MR_GET_TYPE(flags: ::c_uint) -> ::c_uint { + flags & 0x0000ffff + } +} + +extern "C" { + pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; + pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + + pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + + pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; + pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + + pub fn abs(i: ::c_int) -> ::c_int; + pub fn acct(filename: *const ::c_char) -> ::c_int; + pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + pub fn labs(i: ::c_long) -> ::c_long; + pub fn rand() -> ::c_int; + pub fn srand(seed: ::c_uint); + pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + pub fn getrandom(bbuf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn settimeofday(tp: *const ::timeval, tz: *const ::c_void) -> ::c_int; + pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; + pub fn freeifaddrs(ifa: *mut ::ifaddrs); + + pub fn stack_getbounds(sp: *mut ::stack_t) -> ::c_int; + pub fn getgrouplist( + name: *const ::c_char, + basegid: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; + pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; + pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; + pub fn ioctl(fildes: ::c_int, request: ::c_int, ...) -> ::c_int; + pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn ___errno() -> *mut ::c_int; + pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn setpwent(); + pub fn endpwent(); + pub fn getpwent() -> *mut passwd; + pub fn fdatasync(fd: ::c_int) -> ::c_int; + pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; + pub fn duplocale(base: ::locale_t) -> ::locale_t; + pub fn freelocale(loc: ::locale_t); + pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; + pub fn uselocale(loc: ::locale_t) -> ::locale_t; + pub fn getprogname() -> *const ::c_char; + pub fn setprogname(name: *const ::c_char); + pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; + pub fn getpriority(which: ::c_int, who: ::c_int) -> ::c_int; + pub fn setpriority(which: ::c_int, who: ::c_int, prio: ::c_int) -> ::c_int; + + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; + pub fn if_nameindex() -> *mut if_nameindex; + pub fn if_freenameindex(ptr: *mut if_nameindex); + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn pthread_getname_np(tid: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn pthread_setname_np(tid: ::pthread_t, name: *const ::c_char) -> ::c_int; + pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) + -> ::c_int; + + #[cfg_attr(target_os = "illumos", link_name = "_glob_ext")] + pub fn glob( + pattern: *const ::c_char, + flags: ::c_int, + errfunc: ::Option ::c_int>, + pglob: *mut ::glob_t, + ) -> ::c_int; + + #[cfg_attr(target_os = "illumos", link_name = "_globfree_ext")] + pub fn globfree(pglob: *mut ::glob_t); + + pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + + pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; + + pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; + + pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; + + pub fn shmget(key: key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; + + pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; + pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + + pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + + pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + + pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + + pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; + pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; + pub fn futimesat(fd: ::c_int, path: *const ::c_char, times: *const ::timeval) -> ::c_int; + pub fn futimens(dirfd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; + pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + + #[cfg_attr(target_os = "illumos", link_name = "__xnet_bind")] + pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; + + pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + + #[cfg_attr(target_os = "illumos", link_name = "__xnet_sendmsg")] + pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; + #[cfg_attr(target_os = "illumos", link_name = "__xnet_recvmsg")] + pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn accept4( + fd: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + flags: ::c_int, + ) -> ::c_int; + + pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; + pub fn mq_close(mqd: ::mqd_t) -> ::c_int; + pub fn mq_unlink(name: *const ::c_char) -> ::c_int; + pub fn mq_receive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + ) -> ::ssize_t; + pub fn mq_timedreceive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::ssize_t; + pub fn mq_send( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + ) -> ::c_int; + pub fn mq_timedsend( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::c_int; + pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; + pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; + pub fn port_create() -> ::c_int; + pub fn port_associate( + port: ::c_int, + source: ::c_int, + object: ::uintptr_t, + events: ::c_int, + user: *mut ::c_void, + ) -> ::c_int; + pub fn port_dissociate(port: ::c_int, source: ::c_int, object: ::uintptr_t) -> ::c_int; + pub fn port_get(port: ::c_int, pe: *mut port_event, timeout: *mut ::timespec) -> ::c_int; + pub fn port_getn( + port: ::c_int, + pe_list: *mut port_event, + max: ::c_uint, + nget: *mut ::c_uint, + timeout: *mut ::timespec, + ) -> ::c_int; + pub fn port_send(port: ::c_int, events: ::c_int, user: *mut ::c_void) -> ::c_int; + pub fn port_sendn( + port_list: *mut ::c_int, + error_list: *mut ::c_int, + nent: ::c_uint, + events: ::c_int, + user: *mut ::c_void, + ) -> ::c_int; + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "__posix_getgrgid_r" + )] + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; + pub fn sem_close(sem: *mut sem_t) -> ::c_int; + pub fn getdtablesize() -> ::c_int; + + // The epoll functions are actually only present on illumos. However, + // there are things using epoll on illumos (built using the + // x86_64-pc-solaris target) which would break until the illumos target is + // present in rustc. + pub fn epoll_pwait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + sigmask: *const ::sigset_t, + ) -> ::c_int; + + pub fn epoll_create(size: ::c_int) -> ::c_int; + pub fn epoll_create1(flags: ::c_int) -> ::c_int; + pub fn epoll_wait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + ) -> ::c_int; + pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) + -> ::c_int; + + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "__posix_getgrnam_r" + )] + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn thr_self() -> ::thread_t; + pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; + pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; + pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; + pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; + pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; + pub fn sched_getparam(pid: ::pid_t, param: *mut sched_param) -> ::c_int; + pub fn sched_setparam(pid: ::pid_t, param: *const sched_param) -> ::c_int; + pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn sem_unlink(name: *const ::c_char) -> ::c_int; + pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "__posix_getpwnam_r" + )] + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "__posix_getpwuid_r" + )] + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "getpwent_r" + )] + fn native_getpwent_r(pwd: *mut passwd, buf: *mut ::c_char, buflen: ::c_int) -> *mut passwd; + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "getgrent_r" + )] + fn native_getgrent_r(grp: *mut ::group, buf: *mut ::c_char, buflen: ::c_int) -> *mut ::group; + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "__posix_sigwait" + )] + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + pub fn setgrent(); + pub fn endgrent(); + pub fn getgrent() -> *mut ::group; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + + pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; + pub fn uname(buf: *mut ::utsname) -> ::c_int; + pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; + + pub fn makeutx(ux: *const utmpx) -> *mut utmpx; + pub fn modutx(ux: *const utmpx) -> *mut utmpx; + pub fn updwtmpx(file: *const ::c_char, ut: *const utmpx) -> ::c_int; + pub fn utmpxname(file: *const ::c_char) -> ::c_int; + pub fn getutxent() -> *mut utmpx; + pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + pub fn setutxent(); + pub fn endutxent(); + + pub fn endutent(); + pub fn getutent() -> *mut utmp; + pub fn getutid(u: *const utmp) -> *mut utmp; + pub fn getutline(u: *const utmp) -> *mut utmp; + pub fn pututline(u: *const utmp) -> *mut utmp; + pub fn setutent(); + pub fn utmpname(file: *const ::c_char) -> ::c_int; + + pub fn getutmp(ux: *const utmpx, u: *mut utmp); + pub fn getutmpx(u: *const utmp, ux: *mut utmpx); + pub fn updwtmp(file: *const ::c_char, u: *mut utmp); + + pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; + pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; + + pub fn timer_create(clock_id: clockid_t, evp: *mut sigevent, timerid: *mut timer_t) -> ::c_int; + pub fn timer_delete(timerid: timer_t) -> ::c_int; + pub fn timer_getoverrun(timerid: timer_t) -> ::c_int; + pub fn timer_gettime(timerid: timer_t, value: *mut itimerspec) -> ::c_int; + pub fn timer_settime( + timerid: timer_t, + flags: ::c_int, + value: *const itimerspec, + ovalue: *mut itimerspec, + ) -> ::c_int; + + pub fn ucred_get(pid: ::pid_t) -> *mut ucred_t; + pub fn getpeerucred(fd: ::c_int, ucred: *mut *mut ucred_t) -> ::c_int; + + pub fn ucred_free(ucred: *mut ucred_t); + + pub fn ucred_geteuid(ucred: *const ucred_t) -> ::uid_t; + pub fn ucred_getruid(ucred: *const ucred_t) -> ::uid_t; + pub fn ucred_getsuid(ucred: *const ucred_t) -> ::uid_t; + pub fn ucred_getegid(ucred: *const ucred_t) -> ::gid_t; + pub fn ucred_getrgid(ucred: *const ucred_t) -> ::gid_t; + pub fn ucred_getsgid(ucred: *const ucred_t) -> ::gid_t; + pub fn ucred_getgroups(ucred: *const ucred_t, groups: *mut *const ::gid_t) -> ::c_int; + pub fn ucred_getpid(ucred: *const ucred_t) -> ::pid_t; + pub fn ucred_getprojid(ucred: *const ucred_t) -> projid_t; + pub fn ucred_getzoneid(ucred: *const ucred_t) -> zoneid_t; + pub fn ucred_getpflags(ucred: *const ucred_t, flags: ::c_uint) -> ::c_uint; + + pub fn ucred_size() -> ::size_t; + + pub fn pset_create(newpset: *mut ::psetid_t) -> ::c_int; + pub fn pset_destroy(pset: ::psetid_t) -> ::c_int; + pub fn pset_assign(pset: ::psetid_t, cpu: ::processorid_t, opset: *mut psetid_t) -> ::c_int; + pub fn pset_info( + pset: ::psetid_t, + tpe: *mut ::c_int, + numcpus: *mut ::c_uint, + cpulist: *mut processorid_t, + ) -> ::c_int; + pub fn pset_bind( + pset: ::psetid_t, + idtype: ::idtype_t, + id: ::id_t, + opset: *mut psetid_t, + ) -> ::c_int; + pub fn pset_list(pset: *mut psetid_t, numpsets: *mut ::c_uint) -> ::c_int; + pub fn pset_setattr(pset: psetid_t, attr: ::c_uint) -> ::c_int; + pub fn pset_getattr(pset: psetid_t, attr: *mut ::c_uint) -> ::c_int; + pub fn processor_bind( + idtype: ::idtype_t, + id: ::id_t, + new_binding: ::processorid_t, + old_binding: *mut processorid_t, + ) -> ::c_int; + pub fn p_online(processorid: ::processorid_t, flag: ::c_int) -> ::c_int; + pub fn processor_info(processorid: ::processorid_t, infop: *mut processor_info_t) -> ::c_int; + + pub fn getexecname() -> *const ::c_char; + + pub fn gethostid() -> ::c_long; + + pub fn getpflags(flags: ::c_uint) -> ::c_uint; + pub fn setpflags(flags: ::c_uint, value: ::c_uint) -> ::c_int; + + pub fn sysinfo(command: ::c_int, buf: *mut ::c_char, count: ::c_long) -> ::c_int; + + pub fn faccessat(fd: ::c_int, path: *const ::c_char, amode: ::c_int, flag: ::c_int) -> ::c_int; + + // #include + #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] + pub fn dl_iterate_phdr( + callback: ::Option< + unsafe extern "C" fn( + info: *mut dl_phdr_info, + size: usize, + data: *mut ::c_void, + ) -> ::c_int, + >, + data: *mut ::c_void, + ) -> ::c_int; + pub fn getpagesize() -> ::c_int; + pub fn getpagesizes(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int; + pub fn mmapobj( + fd: ::c_int, + flags: ::c_uint, + storage: *mut mmapobj_result_t, + elements: *mut ::c_uint, + arg: *mut ::c_void, + ) -> ::c_int; + pub fn meminfo( + inaddr: *const u64, + addr_count: ::c_int, + info_req: *const ::c_uint, + info_count: ::c_int, + outdata: *mut u64, + validity: *mut ::c_uint, + ) -> ::c_int; + + pub fn strcasecmp_l(s1: *const ::c_char, s2: *const ::c_char, loc: ::locale_t) -> ::c_int; + pub fn strncasecmp_l( + s1: *const ::c_char, + s2: *const ::c_char, + n: ::size_t, + loc: ::locale_t, + ) -> ::c_int; + pub fn strsep(string: *mut *mut ::c_char, delim: *const ::c_char) -> *mut ::c_char; + + pub fn getisax(array: *mut u32, n: ::c_uint) -> ::c_uint; + + pub fn backtrace(buffer: *mut *mut ::c_void, size: ::c_int) -> ::c_int; + pub fn backtrace_symbols(buffer: *const *mut ::c_void, size: ::c_int) -> *mut *mut ::c_char; + pub fn backtrace_symbols_fd(buffer: *const *mut ::c_void, size: ::c_int, fd: ::c_int); + + pub fn getopt_long( + argc: ::c_int, + argv: *const *mut c_char, + optstring: *const c_char, + longopts: *const option, + longindex: *mut ::c_int, + ) -> ::c_int; + + pub fn sync(); + + fn __major(version: ::c_int, devnum: ::dev_t) -> ::major_t; + fn __minor(version: ::c_int, devnum: ::dev_t) -> ::minor_t; + fn __makedev(version: ::c_int, majdev: ::major_t, mindev: ::minor_t) -> ::dev_t; +} + +#[link(name = "sendfile")] +extern "C" { + pub fn sendfile(out_fd: ::c_int, in_fd: ::c_int, off: *mut ::off_t, len: ::size_t) + -> ::ssize_t; + pub fn sendfilev( + fildes: ::c_int, + vec: *const sendfilevec_t, + sfvcnt: ::c_int, + xferred: *mut ::size_t, + ) -> ::ssize_t; +} + +#[link(name = "lgrp")] +extern "C" { + pub fn lgrp_init(view: lgrp_view_t) -> lgrp_cookie_t; + pub fn lgrp_fini(cookie: lgrp_cookie_t) -> ::c_int; + pub fn lgrp_affinity_get( + idtype: ::idtype_t, + id: ::id_t, + lgrp: ::lgrp_id_t, + ) -> ::lgrp_affinity_t; + pub fn lgrp_affinity_set( + idtype: ::idtype_t, + id: ::id_t, + lgrp: ::lgrp_id_t, + aff: lgrp_affinity_t, + ) -> ::lgrp_affinity_t; + pub fn lgrp_cpus( + cookie: ::lgrp_cookie_t, + lgrp: ::lgrp_id_t, + cpuids: *mut ::processorid_t, + count: ::c_uint, + content: ::lgrp_content_t, + ) -> ::c_int; + pub fn lgrp_mem_size( + cookie: ::lgrp_cookie_t, + lgrp: ::lgrp_id_t, + tpe: ::lgrp_mem_size_flag_t, + content: ::lgrp_content_t, + ) -> ::lgrp_mem_size_t; + pub fn lgrp_nlgrps(cookie: ::lgrp_cookie_t) -> ::c_int; + pub fn lgrp_view(cookie: ::lgrp_cookie_t) -> ::lgrp_view_t; + pub fn lgrp_home(idtype: ::idtype_t, id: ::id_t) -> ::lgrp_id_t; + pub fn lgrp_version(version: ::c_int) -> ::c_int; + pub fn lgrp_resources( + cookie: ::lgrp_cookie_t, + lgrp: ::lgrp_id_t, + lgrps: *mut ::lgrp_id_t, + count: ::c_uint, + tpe: ::lgrp_rsrc_t, + ) -> ::c_int; + pub fn lgrp_root(cookie: ::lgrp_cookie_t) -> ::lgrp_id_t; +} + +pub unsafe fn major(device: ::dev_t) -> ::major_t { + __major(NEWDEV, device) +} + +pub unsafe fn minor(device: ::dev_t) -> ::minor_t { + __minor(NEWDEV, device) +} + +pub unsafe fn makedev(maj: ::major_t, min: ::minor_t) -> ::dev_t { + __makedev(NEWDEV, maj, min) +} + +mod compat; +pub use self::compat::*; + +cfg_if! { + if #[cfg(target_os = "illumos")] { + mod illumos; + pub use self::illumos::*; + } else if #[cfg(target_os = "solaris")] { + mod solaris; + pub use self::solaris::*; + } else { + // Unknown target_os + } +} + +cfg_if! { + if #[cfg(target_arch = "x86_64")] { + mod x86_64; + mod x86_common; + pub use self::x86_64::*; + pub use self::x86_common::*; + } else if #[cfg(target_arch = "x86")] { + mod x86; + mod x86_common; + pub use self::x86::*; + pub use self::x86_common::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/solaris.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/solaris.rs new file mode 100644 index 000000000..80bad281e --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/solarish/solaris.rs @@ -0,0 +1,101 @@ +pub type door_attr_t = ::c_uint; +pub type door_id_t = ::c_ulonglong; + +s! { + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_flags: ::uintptr_t, + pub shm_lkcnt: ::c_ushort, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + pub shm_cnattch: ::c_ulong, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_amp: *mut ::c_void, + pub shm_gransize: u64, + pub shm_allocated: u64, + pub shm_pad4: [i64; 1], + } + + pub struct door_desc_t__d_data__d_desc { + pub d_descriptor: ::c_int, + pub d_id: ::door_id_t + } +} + +s_no_extra_traits! { + #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] + pub union door_desc_t__d_data { + pub d_desc: door_desc_t__d_data__d_desc, + d_resv: [::c_int; 5], /* Check out /usr/include/sys/door.h */ + } + + #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] + pub struct door_desc_t { + pub d_attributes: door_attr_t, + pub d_data: door_desc_t__d_data, + } + + #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] + pub struct door_arg_t { + pub data_ptr: *const ::c_char, + pub data_size: ::size_t, + pub desc_ptr: *const door_desc_t, + pub dec_num: ::c_uint, + pub rbuf: *const ::c_char, + pub rsize: ::size_t, + } +} + +pub const PORT_SOURCE_POSTWAIT: ::c_int = 8; +pub const PORT_SOURCE_SIGNAL: ::c_int = 9; + +pub const AF_LOCAL: ::c_int = 0; +pub const AF_FILE: ::c_int = 0; + +pub const TCP_KEEPIDLE: ::c_int = 0x1d; +pub const TCP_KEEPINTVL: ::c_int = 0x1e; +pub const TCP_KEEPCNT: ::c_int = 0x1f; + +pub const F_DUPFD_CLOEXEC: ::c_int = 47; +pub const F_DUPFD_CLOFORK: ::c_int = 49; +pub const F_DUP2FD_CLOEXEC: ::c_int = 48; +pub const F_DUP2FD_CLOFORK: ::c_int = 50; + +extern "C" { + pub fn fexecve( + fd: ::c_int, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + + pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; + + pub fn door_call(d: ::c_int, params: *const door_arg_t) -> ::c_int; + pub fn door_return( + data_ptr: *const ::c_char, + data_size: ::size_t, + desc_ptr: *const door_desc_t, + num_desc: ::c_uint, + ); + pub fn door_create( + server_procedure: extern "C" fn( + cookie: *const ::c_void, + argp: *const ::c_char, + arg_size: ::size_t, + dp: *const door_desc_t, + n_desc: ::c_uint, + ), + cookie: *const ::c_void, + attributes: door_attr_t, + ) -> ::c_int; + + pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; + + pub fn pthread_getattr_np(thread: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + + pub fn euidaccess(path: *const ::c_char, amode: ::c_int) -> ::c_int; +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86.rs new file mode 100644 index 000000000..23f52ad3c --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86.rs @@ -0,0 +1,29 @@ +pub type Elf32_Addr = ::c_ulong; +pub type Elf32_Half = ::c_ushort; +pub type Elf32_Off = ::c_ulong; +pub type Elf32_Sword = ::c_long; +pub type Elf32_Word = ::c_ulong; +pub type Elf32_Lword = ::c_ulonglong; +pub type Elf32_Phdr = __c_anonymous_Elf32_Phdr; + +s! { + pub struct __c_anonymous_Elf32_Phdr { + pub p_type: ::Elf32_Word, + pub p_offset: ::Elf32_Off, + pub p_vaddr: ::Elf32_Addr, + pub p_paddr: ::Elf32_Addr, + pub p_filesz: ::Elf32_Word, + pub p_memsz: ::Elf32_Word, + pub p_flags: ::Elf32_Word, + pub p_align: ::Elf32_Word, + } + + pub struct dl_phdr_info { + pub dlpi_addr: ::Elf32_Addr, + pub dlpi_name: *const ::c_char, + pub dlpi_phdr: *const ::Elf32_Phdr, + pub dlpi_phnum: ::Elf32_Half, + pub dlpi_adds: ::c_ulonglong, + pub dlpi_subs: ::c_ulonglong, + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_64.rs new file mode 100644 index 000000000..bca552f37 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_64.rs @@ -0,0 +1,190 @@ +pub type greg_t = ::c_long; + +pub type Elf64_Addr = ::c_ulong; +pub type Elf64_Half = ::c_ushort; +pub type Elf64_Off = ::c_ulong; +pub type Elf64_Sword = ::c_int; +pub type Elf64_Sxword = ::c_long; +pub type Elf64_Word = ::c_uint; +pub type Elf64_Xword = ::c_ulong; +pub type Elf64_Lword = ::c_ulong; +pub type Elf64_Phdr = __c_anonymous_Elf64_Phdr; + +s! { + pub struct __c_anonymous_fpchip_state { + pub cw: u16, + pub sw: u16, + pub fctw: u8, + pub __fx_rsvd: u8, + pub fop: u16, + pub rip: u64, + pub rdp: u64, + pub mxcsr: u32, + pub mxcsr_mask: u32, + pub st: [::upad128_t; 8], + pub xmm: [::upad128_t; 16], + pub __fx_ign: [::upad128_t; 6], + pub status: u32, + pub xstatus: u32, + } + + pub struct __c_anonymous_Elf64_Phdr { + pub p_type: ::Elf64_Word, + pub p_flags: ::Elf64_Word, + pub p_offset: ::Elf64_Off, + pub p_vaddr: ::Elf64_Addr, + pub p_paddr: ::Elf64_Addr, + pub p_filesz: ::Elf64_Xword, + pub p_memsz: ::Elf64_Xword, + pub p_align: ::Elf64_Xword, + } + + pub struct dl_phdr_info { + pub dlpi_addr: ::Elf64_Addr, + pub dlpi_name: *const ::c_char, + pub dlpi_phdr: *const ::Elf64_Phdr, + pub dlpi_phnum: ::Elf64_Half, + pub dlpi_adds: ::c_ulonglong, + pub dlpi_subs: ::c_ulonglong, + } +} + +s_no_extra_traits! { + #[cfg(libc_union)] + pub union __c_anonymous_fp_reg_set { + pub fpchip_state: __c_anonymous_fpchip_state, + pub f_fpregs: [[u32; 13]; 10], + } + + pub struct fpregset_t { + pub fp_reg_set: __c_anonymous_fp_reg_set, + } + + pub struct mcontext_t { + pub gregs: [::greg_t; 28], + pub fpregs: fpregset_t, + } + + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_sigmask: ::sigset_t, + pub uc_stack: ::stack_t, + pub uc_mcontext: mcontext_t, + pub uc_filler: [::c_long; 5], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_fp_reg_set { + fn eq(&self, other: &__c_anonymous_fp_reg_set) -> bool { + unsafe { + self.fpchip_state == other.fpchip_state || + self. + f_fpregs. + iter(). + zip(other.f_fpregs.iter()). + all(|(a, b)| a == b) + } + } + } + #[cfg(libc_union)] + impl Eq for __c_anonymous_fp_reg_set {} + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_fp_reg_set { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + unsafe { + f.debug_struct("__c_anonymous_fp_reg_set") + .field("fpchip_state", &{self.fpchip_state}) + .field("f_fpregs", &{self.f_fpregs}) + .finish() + } + } + } + impl PartialEq for fpregset_t { + fn eq(&self, other: &fpregset_t) -> bool { + self.fp_reg_set == other.fp_reg_set + } + } + impl Eq for fpregset_t {} + impl ::fmt::Debug for fpregset_t { + fn fmt(&self, f:&mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("fpregset_t") + .field("fp_reg_set", &self.fp_reg_set) + .finish() + } + } + impl PartialEq for mcontext_t { + fn eq(&self, other: &mcontext_t) -> bool { + self.gregs == other.gregs && + self.fpregs == other.fpregs + } + } + impl Eq for mcontext_t {} + impl ::fmt::Debug for mcontext_t { + fn fmt(&self, f:&mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("mcontext_t") + .field("gregs", &self.gregs) + .field("fpregs", &self.fpregs) + .finish() + } + } + impl PartialEq for ucontext_t { + fn eq(&self, other: &ucontext_t) -> bool { + self.uc_flags == other.uc_flags + && self.uc_link == other.uc_link + && self.uc_sigmask == other.uc_sigmask + && self.uc_stack == other.uc_stack + && self.uc_mcontext == other.uc_mcontext + && self.uc_filler == other.uc_filler + } + } + impl Eq for ucontext_t {} + impl ::fmt::Debug for ucontext_t { + fn fmt(&self, f:&mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ucontext_t") + .field("uc_flags", &self.uc_flags) + .field("uc_link", &self.uc_link) + .field("uc_sigmask", &self.uc_sigmask) + .field("uc_stack", &self.uc_stack) + .field("uc_mcontext", &self.uc_mcontext) + .field("uc_filler", &self.uc_filler) + .finish() + } + } + + } +} + +// sys/regset.h + +pub const REG_GSBASE: ::c_int = 27; +pub const REG_FSBASE: ::c_int = 26; +pub const REG_DS: ::c_int = 25; +pub const REG_ES: ::c_int = 24; +pub const REG_GS: ::c_int = 23; +pub const REG_FS: ::c_int = 22; +pub const REG_SS: ::c_int = 21; +pub const REG_RSP: ::c_int = 20; +pub const REG_RFL: ::c_int = 19; +pub const REG_CS: ::c_int = 18; +pub const REG_RIP: ::c_int = 17; +pub const REG_ERR: ::c_int = 16; +pub const REG_TRAPNO: ::c_int = 15; +pub const REG_RAX: ::c_int = 14; +pub const REG_RCX: ::c_int = 13; +pub const REG_RDX: ::c_int = 12; +pub const REG_RBX: ::c_int = 11; +pub const REG_RBP: ::c_int = 10; +pub const REG_RSI: ::c_int = 9; +pub const REG_RDI: ::c_int = 8; +pub const REG_R8: ::c_int = 7; +pub const REG_R9: ::c_int = 6; +pub const REG_R10: ::c_int = 5; +pub const REG_R11: ::c_int = 4; +pub const REG_R12: ::c_int = 3; +pub const REG_R13: ::c_int = 2; +pub const REG_R14: ::c_int = 1; +pub const REG_R15: ::c_int = 0; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_common.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_common.rs new file mode 100644 index 000000000..515f23490 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_common.rs @@ -0,0 +1,65 @@ +// AT_SUN_HWCAP +pub const AV_386_FPU: u32 = 0x00001; +pub const AV_386_TSC: u32 = 0x00002; +pub const AV_386_CX8: u32 = 0x00004; +pub const AV_386_SEP: u32 = 0x00008; +pub const AV_386_AMD_SYSC: u32 = 0x00010; +pub const AV_386_CMOV: u32 = 0x00020; +pub const AV_386_MMX: u32 = 0x00040; +pub const AV_386_AMD_MMX: u32 = 0x00080; +pub const AV_386_AMD_3DNow: u32 = 0x00100; +pub const AV_386_AMD_3DNowx: u32 = 0x00200; +pub const AV_386_FXSR: u32 = 0x00400; +pub const AV_386_SSE: u32 = 0x00800; +pub const AV_386_SSE2: u32 = 0x01000; +pub const AV_386_CX16: u32 = 0x10000; +pub const AV_386_AHF: u32 = 0x20000; +pub const AV_386_TSCP: u32 = 0x40000; +pub const AV_386_AMD_SSE4A: u32 = 0x80000; +pub const AV_386_POPCNT: u32 = 0x100000; +pub const AV_386_AMD_LZCNT: u32 = 0x200000; +pub const AV_386_SSSE3: u32 = 0x400000; +pub const AV_386_SSE4_1: u32 = 0x800000; +pub const AV_386_SSE4_2: u32 = 0x1000000; +pub const AV_386_MOVBE: u32 = 0x2000000; +pub const AV_386_AES: u32 = 0x4000000; +pub const AV_386_PCLMULQDQ: u32 = 0x8000000; +pub const AV_386_XSAVE: u32 = 0x10000000; +pub const AV_386_AVX: u32 = 0x20000000; +pub const AV_386_VMX: u32 = 0x40000000; +pub const AV_386_AMD_SVM: u32 = 0x80000000; +// AT_SUN_HWCAP2 +pub const AV_386_2_F16C: u32 = 0x00000001; +pub const AV_386_2_RDRAND: u32 = 0x00000002; +pub const AV_386_2_BMI1: u32 = 0x00000004; +pub const AV_386_2_BMI2: u32 = 0x00000008; +pub const AV_386_2_FMA: u32 = 0x00000010; +pub const AV_386_2_AVX2: u32 = 0x00000020; +pub const AV_386_2_ADX: u32 = 0x00000040; +pub const AV_386_2_RDSEED: u32 = 0x00000080; +pub const AV_386_2_AVX512F: u32 = 0x00000100; +pub const AV_386_2_AVX512DQ: u32 = 0x00000200; +pub const AV_386_2_AVX512IFMA: u32 = 0x00000400; +pub const AV_386_2_AVX512PF: u32 = 0x00000800; +pub const AV_386_2_AVX512ER: u32 = 0x00001000; +pub const AV_386_2_AVX512CD: u32 = 0x00002000; +pub const AV_386_2_AVX512BW: u32 = 0x00004000; +pub const AV_386_2_AVX512VL: u32 = 0x00008000; +pub const AV_386_2_AVX512VBMI: u32 = 0x00010000; +pub const AV_386_2_AVX512VPOPCDQ: u32 = 0x00020000; +pub const AV_386_2_AVX512_4NNIW: u32 = 0x00040000; +pub const AV_386_2_AVX512_4FMAPS: u32 = 0x00080000; +pub const AV_386_2_SHA: u32 = 0x00100000; +pub const AV_386_2_FSGSBASE: u32 = 0x00200000; +pub const AV_386_2_CLFLUSHOPT: u32 = 0x00400000; +pub const AV_386_2_CLWB: u32 = 0x00800000; +pub const AV_386_2_MONITORX: u32 = 0x01000000; +pub const AV_386_2_CLZERO: u32 = 0x02000000; +pub const AV_386_2_AVX512_VNNI: u32 = 0x04000000; +pub const AV_386_2_VPCLMULQDQ: u32 = 0x08000000; +pub const AV_386_2_VAES: u32 = 0x10000000; +// AT_SUN_FPTYPE +pub const AT_386_FPINFO_NONE: u32 = 0; +pub const AT_386_FPINFO_FXSAVE: u32 = 1; +pub const AT_386_FPINFO_XSAVE: u32 = 2; +pub const AT_386_FPINFO_XSAVE_AMD: u32 = 3; diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/aarch64.rs new file mode 100644 index 000000000..4032488b6 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/vxworks/aarch64.rs @@ -0,0 +1,4 @@ +pub type c_char = u8; +pub type wchar_t = u32; +pub type c_long = i64; +pub type c_ulong = u64; diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/arm.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/arm.rs new file mode 100644 index 000000000..55240068a --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/vxworks/arm.rs @@ -0,0 +1,4 @@ +pub type c_char = u8; +pub type wchar_t = u32; +pub type c_long = i32; +pub type c_ulong = u32; diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/mod.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/mod.rs new file mode 100644 index 000000000..c337a8279 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/vxworks/mod.rs @@ -0,0 +1,1930 @@ +//! Interface to VxWorks C library + +use core::mem::size_of; +use core::ptr::null_mut; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum DIR {} +impl ::Copy for DIR {} +impl ::Clone for DIR { + fn clone(&self) -> DIR { + *self + } +} + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_int = i32; +pub type c_uint = u32; +pub type c_float = f32; +pub type c_double = f64; +pub type c_longlong = i64; +pub type c_ulonglong = u64; +pub type intmax_t = i64; +pub type uintmax_t = u64; + +pub type uintptr_t = usize; +pub type intptr_t = isize; +pub type ptrdiff_t = isize; +pub type size_t = ::uintptr_t; +pub type ssize_t = ::intptr_t; + +pub type pid_t = ::c_int; +pub type in_addr_t = u32; +pub type sighandler_t = ::size_t; +pub type cpuset_t = u32; + +pub type blkcnt_t = ::c_long; +pub type blksize_t = ::c_long; +pub type ino_t = ::c_ulong; + +pub type rlim_t = ::c_ulong; +pub type suseconds_t = ::c_long; +pub type time_t = ::c_long; + +pub type errno_t = ::c_int; + +pub type useconds_t = ::c_ulong; + +pub type socklen_t = ::c_uint; + +pub type pthread_t = ::c_ulong; + +pub type clockid_t = ::c_int; + +//defined for the structs +pub type dev_t = ::c_ulong; +pub type mode_t = ::c_int; +pub type nlink_t = ::c_ulong; +pub type uid_t = ::c_ushort; +pub type gid_t = ::c_ushort; +pub type sigset_t = ::c_ulonglong; +pub type key_t = ::c_long; + +pub type nfds_t = ::c_uint; +pub type stat64 = ::stat; + +pub type pthread_key_t = ::c_ulong; + +// From b_off_t.h +pub type off_t = ::c_longlong; +pub type off64_t = off_t; + +// From b_BOOL.h +pub type BOOL = ::c_int; + +// From vxWind.h .. +pub type _Vx_OBJ_HANDLE = ::c_int; +pub type _Vx_TASK_ID = ::_Vx_OBJ_HANDLE; +pub type _Vx_MSG_Q_ID = ::_Vx_OBJ_HANDLE; +pub type _Vx_SEM_ID_KERNEL = ::_Vx_OBJ_HANDLE; +pub type _Vx_RTP_ID = ::_Vx_OBJ_HANDLE; +pub type _Vx_SD_ID = ::_Vx_OBJ_HANDLE; +pub type _Vx_CONDVAR_ID = ::_Vx_OBJ_HANDLE; +pub type _Vx_SEM_ID = *mut ::_Vx_semaphore; +pub type OBJ_HANDLE = ::_Vx_OBJ_HANDLE; +pub type TASK_ID = ::OBJ_HANDLE; +pub type MSG_Q_ID = ::OBJ_HANDLE; +pub type SEM_ID_KERNEL = ::OBJ_HANDLE; +pub type RTP_ID = ::OBJ_HANDLE; +pub type SD_ID = ::OBJ_HANDLE; +pub type CONDVAR_ID = ::OBJ_HANDLE; + +// From vxTypes.h +pub type _Vx_usr_arg_t = isize; +pub type _Vx_exit_code_t = isize; +pub type _Vx_ticks_t = ::c_uint; +pub type _Vx_ticks64_t = ::c_ulonglong; + +pub type sa_family_t = ::c_uchar; + +// mqueue.h +pub type mqd_t = ::c_int; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum _Vx_semaphore {} +impl ::Copy for _Vx_semaphore {} +impl ::Clone for _Vx_semaphore { + fn clone(&self) -> _Vx_semaphore { + *self + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + self.si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + self.si_value + } + + pub unsafe fn si_pid(&self) -> ::pid_t { + self.si_pid + } + + pub unsafe fn si_uid(&self) -> ::uid_t { + self.si_uid + } + + pub unsafe fn si_status(&self) -> ::c_int { + self.si_status + } +} + +s! { + // b_pthread_condattr_t.h + pub struct pthread_condattr_t { + pub condAttrStatus: ::c_int, + pub condAttrPshared: ::c_int, + pub condAttrClockId: ::clockid_t, + } + + // b_pthread_cond_t.h + pub struct pthread_cond_t{ + pub condSemId: ::_Vx_SEM_ID, + pub condValid: ::c_int, + pub condInitted: ::c_int, + pub condRefCount: ::c_int, + pub condMutex: *mut ::pthread_mutex_t, + pub condAttr: ::pthread_condattr_t, + pub condSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX] + } + + // b_pthread_rwlockattr_t.h + pub struct pthread_rwlockattr_t { + pub rwlockAttrStatus: ::c_int, + pub rwlockAttrPshared: ::c_int, + pub rwlockAttrMaxReaders: ::c_uint, + pub rwlockAttrConformOpt: ::c_uint, + } + + // b_pthread_rwlock_t.h + pub struct pthread_rwlock_t { + pub rwlockSemId: :: _Vx_SEM_ID, + pub rwlockReadersRefCount: ::c_uint, + pub rwlockValid: ::c_int, + pub rwlockInitted: ::c_int, + pub rwlockAttr: ::pthread_rwlockattr_t, + pub rwlockSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX] + } + + // b_struct_timeval.h + pub struct timeval { + pub tv_sec: ::time_t, + pub tv_usec: ::suseconds_t, + } + + // socket.h + pub struct linger { + pub l_onoff: ::c_int, + pub l_linger: ::c_int, + } + + pub struct sockaddr { + pub sa_len : ::c_uchar, + pub sa_family : sa_family_t, + pub sa_data : [::c_char; 14], + } + + pub struct iovec { + pub iov_base: *mut ::c_void, + pub iov_len: ::size_t, + } + + pub struct msghdr { + pub msg_name: *mut c_void, + pub msg_namelen: socklen_t, + pub msg_iov: *mut iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut c_void, + pub msg_controllen: socklen_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: socklen_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + // poll.h + pub struct pollfd { + pub fd : ::c_int, + pub events : ::c_short, + pub revents : ::c_short, + } + + // resource.h + pub struct rlimit { + pub rlim_cur : ::rlim_t, + pub rlim_max : ::rlim_t, + } + + // stat.h + pub struct stat { + pub st_dev : ::dev_t, + pub st_ino : ::ino_t, + pub st_mode : ::mode_t, + pub st_nlink : ::nlink_t, + pub st_uid : ::uid_t, + pub st_gid : ::gid_t, + pub st_rdev : ::dev_t, + pub st_size : ::off_t, + pub st_atime : ::time_t, + pub st_mtime : ::time_t, + pub st_ctime : ::time_t, + pub st_blksize : ::blksize_t, + pub st_blocks : ::blkcnt_t, + pub st_attrib : ::c_uchar, + pub st_reserved1 : ::c_int, + pub st_reserved2 : ::c_int, + pub st_reserved3 : ::c_int, + pub st_reserved4 : ::c_int, + } + + //b_struct__Timespec.h + pub struct _Timespec { + pub tv_sec : ::time_t, + pub tv_nsec : ::c_long, + } + + // b_struct__Sched_param.h + pub struct _Sched_param { + pub sched_priority: ::c_int, /* scheduling priority */ + pub sched_ss_low_priority: ::c_int, /* low scheduling priority */ + pub sched_ss_repl_period: ::_Timespec, /* replenishment period */ + pub sched_ss_init_budget: ::_Timespec, /* initial budget */ + pub sched_ss_max_repl: ::c_int, /* max pending replenishment */ + + } + + // b_pthread_attr_t.h + pub struct pthread_attr_t { + pub threadAttrStatus : ::c_int, + pub threadAttrStacksize : ::size_t, + pub threadAttrStackaddr : *mut ::c_void, + pub threadAttrGuardsize : ::size_t, + pub threadAttrDetachstate : ::c_int, + pub threadAttrContentionscope : ::c_int, + pub threadAttrInheritsched : ::c_int, + pub threadAttrSchedpolicy : ::c_int, + pub threadAttrName : *mut ::c_char, + pub threadAttrOptions : ::c_int, + pub threadAttrSchedparam : ::_Sched_param, + } + + // signal.h + + pub struct sigaction { + pub sa_u : ::sa_u_t, + pub sa_mask : ::sigset_t, + pub sa_flags : ::c_int, + } + + // b_stack_t.h + pub struct stack_t { + pub ss_sp : *mut ::c_void, + pub ss_size : ::size_t, + pub ss_flags : ::c_int, + } + + // signal.h + pub struct siginfo_t { + pub si_signo : ::c_int, + pub si_code : ::c_int, + pub si_value : ::sigval, + pub si_errno : ::c_int, + pub si_status: ::c_int, + pub si_addr: *mut ::c_void, + pub si_uid: ::uid_t, + pub si_pid: ::pid_t, + } + + // pthread.h (krnl) + // b_pthread_mutexattr_t.h (usr) + pub struct pthread_mutexattr_t { + mutexAttrStatus : ::c_int, + mutexAttrPshared : ::c_int, + mutexAttrProtocol : ::c_int, + mutexAttrPrioceiling : ::c_int, + mutexAttrType : ::c_int, + } + + // pthread.h (krnl) + // b_pthread_mutex_t.h (usr) + pub struct pthread_mutex_t { + pub mutexSemId: ::_Vx_SEM_ID, /*_Vx_SEM_ID ..*/ + pub mutexValid: ::c_int, + pub mutexInitted: ::c_int, + pub mutexCondRefCount: ::c_int, + pub mutexSavPriority: ::c_int, + pub mutexAttr: ::pthread_mutexattr_t, + pub mutexSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX], + } + + // b_struct_timespec.h + pub struct timespec { + pub tv_sec: ::time_t, + pub tv_nsec: ::c_long, + } + + // time.h + pub struct tm { + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int, + } + + // in.h + pub struct in_addr { + pub s_addr: in_addr_t, + } + + // in.h + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + // in6.h + #[repr(align(4))] + pub struct in6_addr { + pub s6_addr: [u8; 16], + } + + // in6.h + pub struct ipv6_mreq { + pub ipv6mr_multiaddr: in6_addr, + pub ipv6mr_interface: ::c_uint, + } + + // netdb.h + pub struct addrinfo { + pub ai_flags : ::c_int, + pub ai_family : ::c_int, + pub ai_socktype : ::c_int, + pub ai_protocol : ::c_int, + pub ai_addrlen : ::size_t, + pub ai_canonname: *mut ::c_char, + pub ai_addr : *mut ::sockaddr, + pub ai_next : *mut ::addrinfo, + } + + // in.h + pub struct sockaddr_in { + pub sin_len : u8, + pub sin_family: u8, + pub sin_port : u16, + pub sin_addr : ::in_addr, + pub sin_zero : [::c_char; 8], + } + + // in6.h + pub struct sockaddr_in6 { + pub sin6_len : u8, + pub sin6_family : u8, + pub sin6_port : u16, + pub sin6_flowinfo: u32, + pub sin6_addr : ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } + + pub struct mq_attr { + pub mq_maxmsg: ::c_long, + pub mq_msgsize: ::c_long, + pub mq_flags: ::c_long, + pub mq_curmsgs: ::c_long, + } +} + +s_no_extra_traits! { + // dirent.h + pub struct dirent { + pub d_ino : ::ino_t, + pub d_name : [::c_char; _PARM_NAME_MAX as usize + 1], + } + + pub struct sockaddr_un { + pub sun_len: u8, + pub sun_family: sa_family_t, + pub sun_path: [::c_char; 104] + } + + // rtpLibCommon.h + pub struct RTP_DESC { + pub status : ::c_int, + pub options : u32, + pub entrAddr : *mut ::c_void, + pub initTaskId: ::TASK_ID, + pub parentId : ::RTP_ID, + pub pathName : [::c_char; VX_RTP_NAME_LENGTH as usize + 1], + pub taskCnt : ::c_int, + pub textStart : *mut ::c_void, + pub textEnd : *mut ::c_void, + } + // socket.h + pub struct sockaddr_storage { + pub ss_len : ::c_uchar, + pub ss_family : ::sa_family_t, + pub __ss_pad1 : [::c_char; _SS_PAD1SIZE], + pub __ss_align : i32, + pub __ss_pad2 : [::c_char; _SS_PAD2SIZE], + } + + pub union sa_u_t { + pub sa_handler : ::Option !>, + pub sa_sigaction: ::Option !>, + } + + pub union sigval { + pub sival_int : ::c_int, + pub sival_ptr : *mut ::c_void, + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_ino", &self.d_ino) + .field("d_name", &&self.d_name[..]) + .finish() + } + } + + impl ::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_un") + .field("sun_len", &self.sun_len) + .field("sun_family", &self.sun_family) + .field("sun_path", &&self.sun_path[..]) + .finish() + } + } + + impl ::fmt::Debug for RTP_DESC { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("RTP_DESC") + .field("status", &self.status) + .field("options", &self.options) + .field("entrAddr", &self.entrAddr) + .field("initTaskId", &self.initTaskId) + .field("parentId", &self.parentId) + .field("pathName", &&self.pathName[..]) + .field("taskCnt", &self.taskCnt) + .field("textStart", &self.textStart) + .field("textEnd", &self.textEnd) + .finish() + } + } + impl ::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_storage") + .field("ss_len", &self.ss_len) + .field("ss_family", &self.ss_family) + .field("__ss_pad1", &&self.__ss_pad1[..]) + .field("__ss_align", &self.__ss_align) + .field("__ss_pad2", &&self.__ss_pad2[..]) + .finish() + } + } + + impl PartialEq for sa_u_t { + fn eq(&self, other: &sa_u_t) -> bool { + unsafe { + let h1 = match self.sa_handler { + Some(handler) => handler as usize, + None => 0 as usize, + }; + let h2 = match other.sa_handler { + Some(handler) => handler as usize, + None => 0 as usize, + }; + h1 == h2 + } + } + } + impl Eq for sa_u_t {} + impl ::fmt::Debug for sa_u_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + unsafe { + let h = match self.sa_handler { + Some(handler) => handler as usize, + None => 0 as usize, + }; + + f.debug_struct("sa_u_t") + .field("sa_handler", &h) + .finish() + } + } + } + impl ::hash::Hash for sa_u_t { + fn hash(&self, state: &mut H) { + unsafe { + let h = match self.sa_handler { + Some(handler) => handler as usize, + None => 0 as usize, + }; + h.hash(state) + } + } + } + + impl PartialEq for sigval { + fn eq(&self, other: &sigval) -> bool { + unsafe { self.sival_ptr as usize == other.sival_ptr as usize } + } + } + impl Eq for sigval {} + impl ::fmt::Debug for sigval { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigval") + .field("sival_ptr", unsafe { &(self.sival_ptr as usize) }) + .finish() + } + } + impl ::hash::Hash for sigval { + fn hash(&self, state: &mut H) { + unsafe { (self.sival_ptr as usize).hash(state) }; + } + } + } +} + +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; + +pub const EXIT_SUCCESS: ::c_int = 0; +pub const EXIT_FAILURE: ::c_int = 1; + +pub const EAI_SERVICE: ::c_int = 9; +pub const EAI_SOCKTYPE: ::c_int = 10; +pub const EAI_SYSTEM: ::c_int = 11; + +// This is not defined in vxWorks, but we have to define it here +// to make the building pass for getrandom and libstd, FIXME +pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; + +//Clock Lib Stuff +pub const CLOCK_REALTIME: ::c_int = 0x0; +pub const CLOCK_MONOTONIC: ::c_int = 0x1; +pub const CLOCK_PROCESS_CPUTIME_ID: ::c_int = 0x2; +pub const CLOCK_THREAD_CPUTIME_ID: ::c_int = 0x3; +pub const TIMER_ABSTIME: ::c_int = 0x1; +pub const TIMER_RELTIME: ::c_int = 0x0; + +// PTHREAD STUFF +pub const PTHREAD_INITIALIZED_OBJ: ::c_int = 0xF70990EF; +pub const PTHREAD_DESTROYED_OBJ: ::c_int = -1; +pub const PTHREAD_VALID_OBJ: ::c_int = 0xEC542A37; +pub const PTHREAD_INVALID_OBJ: ::c_int = -1; +pub const PTHREAD_UNUSED_YET_OBJ: ::c_int = -1; + +pub const PTHREAD_PRIO_NONE: ::c_int = 0; +pub const PTHREAD_PRIO_INHERIT: ::c_int = 1; +pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; + +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_STACK_MIN: usize = 4096; +pub const _PTHREAD_SHARED_SEM_NAME_MAX: usize = 30; + +// ERRNO STUFF +pub const OK: ::c_int = 0; +pub const EPERM: ::c_int = 1; /* Not owner */ +pub const ENOENT: ::c_int = 2; /* No such file or directory */ +pub const ESRCH: ::c_int = 3; /* No such process */ +pub const EINTR: ::c_int = 4; /* Interrupted system call */ +pub const EIO: ::c_int = 5; /* I/O error */ +pub const ENXIO: ::c_int = 6; /* No such device or address */ +pub const E2BIG: ::c_int = 7; /* Arg list too long */ +pub const ENOEXEC: ::c_int = 8; /* Exec format error */ +pub const EBADF: ::c_int = 9; /* Bad file number */ +pub const ECHILD: ::c_int = 10; /* No children */ +pub const EAGAIN: ::c_int = 11; /* No more processes */ +pub const ENOMEM: ::c_int = 12; /* Not enough core */ +pub const EACCES: ::c_int = 13; /* Permission denied */ +pub const EFAULT: ::c_int = 14; +pub const ENOTEMPTY: ::c_int = 15; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const EXDEV: ::c_int = 18; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENAMETOOLONG: ::c_int = 26; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const ESPIPE: ::c_int = 29; +pub const EROFS: ::c_int = 30; +pub const EMLINK: ::c_int = 31; +pub const EPIPE: ::c_int = 32; +pub const EDEADLK: ::c_int = 33; +pub const ERANGE: ::c_int = 38; +pub const EDESTADDRREQ: ::c_int = 40; +pub const EPROTOTYPE: ::c_int = 41; +pub const ENOPROTOOPT: ::c_int = 42; +pub const EPROTONOSUPPORT: ::c_int = 43; +pub const ESOCKTNOSUPPORT: ::c_int = 44; +pub const EOPNOTSUPP: ::c_int = 45; +pub const EPFNOSUPPORT: ::c_int = 46; +pub const EAFNOSUPPORT: ::c_int = 47; +pub const EADDRINUSE: ::c_int = 48; +pub const EADDRNOTAVAIL: ::c_int = 49; +pub const ENOTSOCK: ::c_int = 50; +pub const ENETUNREACH: ::c_int = 51; +pub const ENETRESET: ::c_int = 52; +pub const ECONNABORTED: ::c_int = 53; +pub const ECONNRESET: ::c_int = 54; +pub const ENOBUFS: ::c_int = 55; +pub const EISCONN: ::c_int = 56; +pub const ENOTCONN: ::c_int = 57; +pub const ESHUTDOWN: ::c_int = 58; +pub const ETOOMANYREFS: ::c_int = 59; +pub const ETIMEDOUT: ::c_int = 60; +pub const ECONNREFUSED: ::c_int = 61; +pub const ENETDOWN: ::c_int = 62; +pub const ETXTBSY: ::c_int = 63; +pub const ELOOP: ::c_int = 64; +pub const EHOSTUNREACH: ::c_int = 65; +pub const EINPROGRESS: ::c_int = 68; +pub const EALREADY: ::c_int = 69; +pub const EWOULDBLOCK: ::c_int = 70; +pub const ENOSYS: ::c_int = 71; +pub const EDQUOT: ::c_int = 83; +pub const ESTALE: ::c_int = 88; + +// NFS errnos: Refer to pkgs_v2/storage/fs/nfs/h/nfs/nfsCommon.h +const M_nfsStat: ::c_int = 48 << 16; +enum nfsstat { + NFSERR_REMOTE = 71, + NFSERR_WFLUSH = 99, + NFSERR_BADHANDLE = 10001, + NFSERR_NOT_SYNC = 10002, + NFSERR_BAD_COOKIE = 10003, + NFSERR_TOOSMALL = 10005, + NFSERR_BADTYPE = 10007, + NFSERR_JUKEBOX = 10008, +} + +pub const S_nfsLib_NFS_OK: ::c_int = OK; +pub const S_nfsLib_NFSERR_PERM: ::c_int = EPERM; +pub const S_nfsLib_NFSERR_NOENT: ::c_int = ENOENT; +pub const S_nfsLib_NFSERR_IO: ::c_int = EIO; +pub const S_nfsLib_NFSERR_NXIO: ::c_int = ENXIO; +pub const S_nfsLib_NFSERR_ACCESS: ::c_int = EACCES; +pub const S_nfsLib_NFSERR_EXIST: ::c_int = EEXIST; +pub const S_nfsLib_NFSERR_ENODEV: ::c_int = ENODEV; +pub const S_nfsLib_NFSERR_NOTDIR: ::c_int = ENOTDIR; +pub const S_nfsLib_NFSERR_ISDIR: ::c_int = EISDIR; +pub const S_nfsLib_NFSERR_INVAL: ::c_int = EINVAL; +pub const S_nfsLib_NFSERR_FBIG: ::c_int = EFBIG; +pub const S_nfsLib_NFSERR_NOSPC: ::c_int = ENOSPC; +pub const S_nfsLib_NFSERR_ROFS: ::c_int = EROFS; +pub const S_nfsLib_NFSERR_NAMETOOLONG: ::c_int = ENAMETOOLONG; +pub const S_nfsLib_NFSERR_NOTEMPTY: ::c_int = ENOTEMPTY; +pub const S_nfsLib_NFSERR_DQUOT: ::c_int = EDQUOT; +pub const S_nfsLib_NFSERR_STALE: ::c_int = ESTALE; +pub const S_nfsLib_NFSERR_WFLUSH: ::c_int = M_nfsStat | nfsstat::NFSERR_WFLUSH as ::c_int; +pub const S_nfsLib_NFSERR_REMOTE: ::c_int = M_nfsStat | nfsstat::NFSERR_REMOTE as ::c_int; +pub const S_nfsLib_NFSERR_BADHANDLE: ::c_int = M_nfsStat | nfsstat::NFSERR_BADHANDLE as ::c_int; +pub const S_nfsLib_NFSERR_NOT_SYNC: ::c_int = M_nfsStat | nfsstat::NFSERR_NOT_SYNC as ::c_int; +pub const S_nfsLib_NFSERR_BAD_COOKIE: ::c_int = M_nfsStat | nfsstat::NFSERR_BAD_COOKIE as ::c_int; +pub const S_nfsLib_NFSERR_NOTSUPP: ::c_int = EOPNOTSUPP; +pub const S_nfsLib_NFSERR_TOOSMALL: ::c_int = M_nfsStat | nfsstat::NFSERR_TOOSMALL as ::c_int; +pub const S_nfsLib_NFSERR_SERVERFAULT: ::c_int = EIO; +pub const S_nfsLib_NFSERR_BADTYPE: ::c_int = M_nfsStat | nfsstat::NFSERR_BADTYPE as ::c_int; +pub const S_nfsLib_NFSERR_JUKEBOX: ::c_int = M_nfsStat | nfsstat::NFSERR_JUKEBOX as ::c_int; + +// in.h +pub const IPPROTO_IP: ::c_int = 0; +pub const IPPROTO_IPV6: ::c_int = 41; + +pub const IP_TTL: ::c_int = 4; +pub const IP_MULTICAST_IF: ::c_int = 9; +pub const IP_MULTICAST_TTL: ::c_int = 10; +pub const IP_MULTICAST_LOOP: ::c_int = 11; +pub const IP_ADD_MEMBERSHIP: ::c_int = 12; +pub const IP_DROP_MEMBERSHIP: ::c_int = 13; + +// in6.h +pub const IPV6_V6ONLY: ::c_int = 1; +pub const IPV6_UNICAST_HOPS: ::c_int = 4; +pub const IPV6_MULTICAST_IF: ::c_int = 9; +pub const IPV6_MULTICAST_HOPS: ::c_int = 10; +pub const IPV6_MULTICAST_LOOP: ::c_int = 11; +pub const IPV6_ADD_MEMBERSHIP: ::c_int = 12; +pub const IPV6_DROP_MEMBERSHIP: ::c_int = 13; + +// STAT Stuff +pub const S_IFMT: ::c_int = 0xf000; +pub const S_IFIFO: ::c_int = 0x1000; +pub const S_IFCHR: ::c_int = 0x2000; +pub const S_IFDIR: ::c_int = 0x4000; +pub const S_IFBLK: ::c_int = 0x6000; +pub const S_IFREG: ::c_int = 0x8000; +pub const S_IFLNK: ::c_int = 0xa000; +pub const S_IFSHM: ::c_int = 0xb000; +pub const S_IFSOCK: ::c_int = 0xc000; +pub const S_ISUID: ::c_int = 0x0800; +pub const S_ISGID: ::c_int = 0x0400; +pub const S_ISTXT: ::c_int = 0x0200; +pub const S_IRUSR: ::c_int = 0x0100; +pub const S_IWUSR: ::c_int = 0x0080; +pub const S_IXUSR: ::c_int = 0x0040; +pub const S_IRWXU: ::c_int = 0x01c0; +pub const S_IRGRP: ::c_int = 0x0020; +pub const S_IWGRP: ::c_int = 0x0010; +pub const S_IXGRP: ::c_int = 0x0008; +pub const S_IRWXG: ::c_int = 0x0038; +pub const S_IROTH: ::c_int = 0x0004; +pub const S_IWOTH: ::c_int = 0x0002; +pub const S_IXOTH: ::c_int = 0x0001; +pub const S_IRWXO: ::c_int = 0x0007; + +// socket.h +pub const SOL_SOCKET: ::c_int = 0xffff; + +pub const SO_DEBUG: ::c_int = 0x0001; +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_RCVLOWAT: ::c_int = 0x0012; +pub const SO_SNDLOWAT: ::c_int = 0x0013; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_ACCEPTCONN: ::c_int = 0x001e; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_USELOOPBACK: ::c_int = 0x0040; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_REUSEPORT: ::c_int = 0x0200; + +pub const SO_VLAN: ::c_int = 0x8000; + +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_TYPE: ::c_int = 0x1008; +pub const SO_BINDTODEVICE: ::c_int = 0x1010; +pub const SO_OOBINLINE: ::c_int = 0x1011; +pub const SO_CONNTIMEO: ::c_int = 0x100a; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_RAW: ::c_int = 3; +pub const SOCK_RDM: ::c_int = 4; +pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOCK_PACKET: ::c_int = 10; + +pub const _SS_MAXSIZE: usize = 128; +pub const _SS_ALIGNSIZE: usize = size_of::(); +pub const _SS_PAD1SIZE: usize = _SS_ALIGNSIZE - size_of::<::c_uchar>() - size_of::<::sa_family_t>(); +pub const _SS_PAD2SIZE: usize = _SS_MAXSIZE + - size_of::<::c_uchar>() + - size_of::<::sa_family_t>() + - _SS_PAD1SIZE + - _SS_ALIGNSIZE; + +pub const MSG_OOB: ::c_int = 0x0001; +pub const MSG_PEEK: ::c_int = 0x0002; +pub const MSG_DONTROUTE: ::c_int = 0x0004; +pub const MSG_EOR: ::c_int = 0x0008; +pub const MSG_TRUNC: ::c_int = 0x0010; +pub const MSG_CTRUNC: ::c_int = 0x0020; +pub const MSG_WAITALL: ::c_int = 0x0040; +pub const MSG_DONTWAIT: ::c_int = 0x0080; +pub const MSG_EOF: ::c_int = 0x0100; +pub const MSG_EXP: ::c_int = 0x0200; +pub const MSG_MBUF: ::c_int = 0x0400; +pub const MSG_NOTIFICATION: ::c_int = 0x0800; +pub const MSG_COMPAT: ::c_int = 0x8000; + +pub const AF_UNSPEC: ::c_int = 0; +pub const AF_LOCAL: ::c_int = 1; +pub const AF_UNIX: ::c_int = AF_LOCAL; +pub const AF_INET: ::c_int = 2; +pub const AF_NETLINK: ::c_int = 16; +pub const AF_ROUTE: ::c_int = 17; +pub const AF_LINK: ::c_int = 18; +pub const AF_PACKET: ::c_int = 19; +pub const pseudo_AF_KEY: ::c_int = 27; +pub const AF_KEY: ::c_int = pseudo_AF_KEY; +pub const AF_INET6: ::c_int = 28; +pub const AF_SOCKDEV: ::c_int = 31; +pub const AF_TIPC: ::c_int = 33; +pub const AF_MIPC: ::c_int = 34; +pub const AF_MIPC_SAFE: ::c_int = 35; +pub const AF_MAX: ::c_int = 37; + +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; + +pub const IPPROTO_TCP: ::c_int = 6; +pub const TCP_NODELAY: ::c_int = 1; +pub const TCP_MAXSEG: ::c_int = 2; +pub const TCP_NOPUSH: ::c_int = 3; +pub const TCP_KEEPIDLE: ::c_int = 4; +pub const TCP_KEEPINTVL: ::c_int = 5; +pub const TCP_KEEPCNT: ::c_int = 6; + +// ioLib.h +pub const FIONREAD: ::c_int = 0x40040001; +pub const FIOFLUSH: ::c_int = 2; +pub const FIOOPTIONS: ::c_int = 3; +pub const FIOBAUDRATE: ::c_int = 4; +pub const FIODISKFORMAT: ::c_int = 5; +pub const FIODISKINIT: ::c_int = 6; +pub const FIOSEEK: ::c_int = 7; +pub const FIOWHERE: ::c_int = 8; +pub const FIODIRENTRY: ::c_int = 9; +pub const FIORENAME: ::c_int = 10; +pub const FIOREADYCHANGE: ::c_int = 11; +pub const FIODISKCHANGE: ::c_int = 13; +pub const FIOCANCEL: ::c_int = 14; +pub const FIOSQUEEZE: ::c_int = 15; +pub const FIOGETNAME: ::c_int = 18; +pub const FIONBIO: ::c_int = 0x90040010; + +// limits.h +pub const PATH_MAX: ::c_int = _PARM_PATH_MAX; +pub const _POSIX_PATH_MAX: ::c_int = 256; + +// Some poll stuff +pub const POLLIN: ::c_short = 0x0001; +pub const POLLPRI: ::c_short = 0x0002; +pub const POLLOUT: ::c_short = 0x0004; +pub const POLLRDNORM: ::c_short = 0x0040; +pub const POLLWRNORM: ::c_short = POLLOUT; +pub const POLLRDBAND: ::c_short = 0x0080; +pub const POLLWRBAND: ::c_short = 0x0100; +pub const POLLERR: ::c_short = 0x0008; +pub const POLLHUP: ::c_short = 0x0010; +pub const POLLNVAL: ::c_short = 0x0020; + +// fnctlcom.h +pub const FD_CLOEXEC: ::c_int = 1; +pub const F_DUPFD: ::c_int = 0; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; +pub const F_GETOWN: ::c_int = 5; +pub const F_SETOWN: ::c_int = 6; +pub const F_GETLK: ::c_int = 7; +pub const F_SETLK: ::c_int = 8; +pub const F_SETLKW: ::c_int = 9; +pub const F_DUPFD_CLOEXEC: ::c_int = 14; + +// signal.h +pub const SIG_DFL: sighandler_t = 0 as sighandler_t; +pub const SIG_IGN: sighandler_t = 1 as sighandler_t; +pub const SIG_ERR: sighandler_t = -1 as isize as sighandler_t; + +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGTRAP: ::c_int = 5; +pub const SIGABRT: ::c_int = 6; +pub const SIGEMT: ::c_int = 7; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGBUS: ::c_int = 10; +pub const SIGSEGV: ::c_int = 11; +pub const SIGFMT: ::c_int = 12; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; +pub const SIGCNCL: ::c_int = 16; +pub const SIGSTOP: ::c_int = 17; +pub const SIGTSTP: ::c_int = 18; +pub const SIGCONT: ::c_int = 19; +pub const SIGCHLD: ::c_int = 20; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; + +pub const SIG_BLOCK: ::c_int = 1; +pub const SIG_UNBLOCK: ::c_int = 2; +pub const SIG_SETMASK: ::c_int = 3; + +pub const SI_SYNC: ::c_int = 0; +pub const SI_USER: ::c_int = -1; +pub const SI_QUEUE: ::c_int = -2; +pub const SI_TIMER: ::c_int = -3; +pub const SI_ASYNCIO: ::c_int = -4; +pub const SI_MESGQ: ::c_int = -5; +pub const SI_CHILD: ::c_int = -6; +pub const SI_KILL: ::c_int = SI_USER; + +// vxParams.h definitions +pub const _PARM_NAME_MAX: ::c_int = 255; +pub const _PARM_PATH_MAX: ::c_int = 1024; + +// WAIT STUFF +pub const WNOHANG: ::c_int = 0x01; +pub const WUNTRACED: ::c_int = 0x02; + +const PTHREAD_MUTEXATTR_INITIALIZER: pthread_mutexattr_t = pthread_mutexattr_t { + mutexAttrStatus: PTHREAD_INITIALIZED_OBJ, + mutexAttrProtocol: PTHREAD_PRIO_NONE, + mutexAttrPrioceiling: 0, + mutexAttrType: PTHREAD_MUTEX_DEFAULT, + mutexAttrPshared: 1, +}; +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + mutexSemId: null_mut(), + mutexValid: PTHREAD_VALID_OBJ, + mutexInitted: PTHREAD_UNUSED_YET_OBJ, + mutexCondRefCount: 0, + mutexSavPriority: -1, + mutexAttr: PTHREAD_MUTEXATTR_INITIALIZER, + mutexSemName: [0; _PTHREAD_SHARED_SEM_NAME_MAX], +}; + +const PTHREAD_CONDATTR_INITIALIZER: pthread_condattr_t = pthread_condattr_t { + condAttrStatus: 0xf70990ef, + condAttrPshared: 1, + condAttrClockId: CLOCK_REALTIME, +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + condSemId: null_mut(), + condValid: PTHREAD_VALID_OBJ, + condInitted: PTHREAD_UNUSED_YET_OBJ, + condRefCount: 0, + condMutex: null_mut(), + condAttr: PTHREAD_CONDATTR_INITIALIZER, + condSemName: [0; _PTHREAD_SHARED_SEM_NAME_MAX], +}; + +const PTHREAD_RWLOCKATTR_INITIALIZER: pthread_rwlockattr_t = pthread_rwlockattr_t { + rwlockAttrStatus: PTHREAD_INITIALIZED_OBJ, + rwlockAttrPshared: 1, + rwlockAttrMaxReaders: 0, + rwlockAttrConformOpt: 1, +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + rwlockSemId: null_mut(), + rwlockReadersRefCount: 0, + rwlockValid: PTHREAD_VALID_OBJ, + rwlockInitted: PTHREAD_UNUSED_YET_OBJ, + rwlockAttr: PTHREAD_RWLOCKATTR_INITIALIZER, + rwlockSemName: [0; _PTHREAD_SHARED_SEM_NAME_MAX], +}; + +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; + +// rtpLibCommon.h +pub const VX_RTP_NAME_LENGTH: ::c_int = 255; +pub const RTP_ID_ERROR: ::RTP_ID = -1; + +// h/public/unistd.h +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 21; // Via unistd.h +pub const _SC_PAGESIZE: ::c_int = 39; +pub const O_ACCMODE: ::c_int = 3; +pub const O_CLOEXEC: ::c_int = 0x100000; // fcntlcom +pub const O_EXCL: ::c_int = 0x0800; +pub const O_CREAT: ::c_int = 0x0200; +pub const O_TRUNC: ::c_int = 0x0400; +pub const O_APPEND: ::c_int = 0x0008; +pub const O_RDWR: ::c_int = 0x0002; +pub const O_WRONLY: ::c_int = 0x0001; +pub const O_RDONLY: ::c_int = 0; +pub const O_NONBLOCK: ::c_int = 0x4000; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum FILE {} +impl ::Copy for FILE {} +impl ::Clone for FILE { + fn clone(&self) -> FILE { + *self + } +} +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum fpos_t {} // FIXME: fill this out with a struct +impl ::Copy for fpos_t {} +impl ::Clone for fpos_t { + fn clone(&self) -> fpos_t { + *self + } +} + +f! { + pub {const} fn CMSG_ALIGN(len: usize) -> usize { + len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) + } + + pub fn CMSG_NXTHDR(mhdr: *const msghdr, + cmsg: *const cmsghdr) -> *mut cmsghdr { + let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) + + CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); + let max = (*mhdr).msg_control as usize + + (*mhdr).msg_controllen as usize; + if next <= max { + (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) + as *mut ::cmsghdr + } else { + 0 as *mut ::cmsghdr + } + } + + pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { + if (*mhdr).msg_controllen as usize > 0 { + (*mhdr).msg_control as *mut cmsghdr + } else { + 0 as *mut cmsghdr + } + } + + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut ::c_uchar { + (cmsg as *mut ::c_uchar) + .offset(CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + } + + pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) + as ::c_uint + } + + pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { + CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length + } +} + +extern "C" { + pub fn isalnum(c: c_int) -> c_int; + pub fn isalpha(c: c_int) -> c_int; + pub fn iscntrl(c: c_int) -> c_int; + pub fn isdigit(c: c_int) -> c_int; + pub fn isgraph(c: c_int) -> c_int; + pub fn islower(c: c_int) -> c_int; + pub fn isprint(c: c_int) -> c_int; + pub fn ispunct(c: c_int) -> c_int; + pub fn isspace(c: c_int) -> c_int; + pub fn isupper(c: c_int) -> c_int; + pub fn isxdigit(c: c_int) -> c_int; + pub fn isblank(c: c_int) -> c_int; + pub fn tolower(c: c_int) -> c_int; + pub fn toupper(c: c_int) -> c_int; + pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; + pub fn freopen(filename: *const c_char, mode: *const c_char, file: *mut FILE) -> *mut FILE; + pub fn fflush(file: *mut FILE) -> c_int; + pub fn fclose(file: *mut FILE) -> c_int; + pub fn remove(filename: *const c_char) -> c_int; + pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; + pub fn tmpfile() -> *mut FILE; + pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int; + pub fn setbuf(stream: *mut FILE, buf: *mut c_char); + pub fn getchar() -> c_int; + pub fn putchar(c: c_int) -> c_int; + pub fn fgetc(stream: *mut FILE) -> c_int; + pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; + pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; + pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; + pub fn puts(s: *const c_char) -> c_int; + pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; + pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; + pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; + pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; + pub fn ftell(stream: *mut FILE) -> c_long; + pub fn rewind(stream: *mut FILE); + pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int; + pub fn fsetpos(stream: *mut FILE, ptr: *const fpos_t) -> c_int; + pub fn feof(stream: *mut FILE) -> c_int; + pub fn ferror(stream: *mut FILE) -> c_int; + pub fn perror(s: *const c_char); + pub fn atof(s: *const c_char) -> c_double; + pub fn atoi(s: *const c_char) -> c_int; + pub fn atol(s: *const c_char) -> c_long; + pub fn atoll(s: *const c_char) -> c_longlong; + pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; + pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float; + pub fn strtol(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_long; + pub fn strtoll(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_longlong; + pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulong; + pub fn strtoull(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulonglong; + pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; + pub fn malloc(size: size_t) -> *mut c_void; + pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; + pub fn free(p: *mut c_void); + pub fn abort() -> !; + pub fn exit(status: c_int) -> !; + pub fn atexit(cb: extern "C" fn()) -> c_int; + pub fn system(s: *const c_char) -> c_int; + pub fn getenv(s: *const c_char) -> *mut c_char; + + pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; + pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; + pub fn strncat(s: *mut c_char, ct: *const c_char, n: size_t) -> *mut c_char; + pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; + pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; + pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; + pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char; + pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char; + pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t; + pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t; + pub fn strdup(cs: *const c_char) -> *mut c_char; + pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; + pub fn strncasecmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; + pub fn strlen(cs: *const c_char) -> size_t; + pub fn strerror(n: c_int) -> *mut c_char; + pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; + pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; + pub fn wcslen(buf: *const wchar_t) -> size_t; + pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; + + pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t; + pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; + pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; +} + +extern "C" { + pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; + pub fn printf(format: *const ::c_char, ...) -> ::c_int; + pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int; + pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; + pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; + pub fn scanf(format: *const ::c_char, ...) -> ::c_int; + pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; + pub fn getchar_unlocked() -> ::c_int; + pub fn putchar_unlocked(c: ::c_int) -> ::c_int; + pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; + pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; + pub fn fileno(stream: *mut ::FILE) -> ::c_int; + pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn rewinddir(dirp: *mut ::DIR); + pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; + pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; + pub fn alarm(seconds: ::c_uint) -> ::c_uint; + pub fn fchdir(dirfd: ::c_int) -> ::c_int; + pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; + pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; + pub fn getegid() -> gid_t; + pub fn geteuid() -> uid_t; + pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int; + pub fn getlogin() -> *mut c_char; + pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int; + pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; + pub fn pause() -> ::c_int; + pub fn seteuid(uid: uid_t) -> ::c_int; + pub fn setegid(gid: gid_t) -> ::c_int; + pub fn sleep(secs: ::c_uint) -> ::c_uint; + pub fn ttyname(fd: ::c_int) -> *mut c_char; + pub fn wait(status: *mut ::c_int) -> pid_t; + pub fn umask(mask: mode_t) -> mode_t; + pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; + pub fn mlockall(flags: ::c_int) -> ::c_int; + pub fn munlockall() -> ::c_int; + + pub fn mmap( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + flags: ::c_int, + fd: ::c_int, + offset: off_t, + ) -> *mut ::c_void; + pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; + pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; + + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn pthread_exit(value: *mut ::c_void) -> !; + pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, state: ::c_int) -> ::c_int; + + pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + + pub fn sigaddset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; + + pub fn sigaction(signum: ::c_int, act: *const sigaction, oldact: *mut sigaction) -> ::c_int; + + pub fn utimes(filename: *const ::c_char, times: *const ::timeval) -> ::c_int; + + #[link_name = "_rtld_dlopen"] + pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; + + #[link_name = "_rtld_dlerror"] + pub fn dlerror() -> *mut ::c_char; + + #[link_name = "_rtld_dlsym"] + pub fn dlsym(handle: *mut ::c_void, symbol: *const ::c_char) -> *mut ::c_void; + + #[link_name = "_rtld_dlclose"] + pub fn dlclose(handle: *mut ::c_void) -> ::c_int; + + #[link_name = "_rtld_dladdr"] + pub fn dladdr(addr: *mut ::c_void, info: *mut Dl_info) -> ::c_int; + + // time.h + pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; + pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; + pub fn mktime(tm: *mut tm) -> time_t; + pub fn time(time: *mut time_t) -> time_t; + pub fn gmtime(time_p: *const time_t) -> *mut tm; + pub fn localtime(time_p: *const time_t) -> *mut tm; + pub fn timegm(tm: *mut tm) -> time_t; + pub fn difftime(time1: time_t, time0: time_t) -> ::c_double; + pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn usleep(secs: ::useconds_t) -> ::c_int; + pub fn putenv(string: *mut c_char) -> ::c_int; + pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char; + + pub fn sigprocmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; + pub fn sigpending(set: *mut sigset_t) -> ::c_int; + + pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; + + pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int; + pub fn ftello(stream: *mut ::FILE) -> ::off_t; + pub fn mkstemp(template: *mut ::c_char) -> ::c_int; + + pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char; + + pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int); + pub fn closelog(); + pub fn setlogmask(maskpri: ::c_int) -> ::c_int; + pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); + pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t; + +} + +extern "C" { + // stdlib.h + pub fn memalign(block_size: ::size_t, size_arg: ::size_t) -> *mut ::c_void; + + // ioLib.h + pub fn getcwd(buf: *mut ::c_char, size: ::size_t) -> *mut ::c_char; + + // ioLib.h + pub fn chdir(attr: *const ::c_char) -> ::c_int; + + // pthread.h + pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int; + + // pthread.h + pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> ::c_int; + + // pthread.h + pub fn pthread_mutexattr_settype(pAttr: *mut ::pthread_mutexattr_t, pType: ::c_int) -> ::c_int; + + // pthread.h + pub fn pthread_mutex_init( + mutex: *mut pthread_mutex_t, + attr: *const pthread_mutexattr_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_mutex_destroy(mutex: *mut pthread_mutex_t) -> ::c_int; + + // pthread.h + pub fn pthread_mutex_lock(mutex: *mut pthread_mutex_t) -> ::c_int; + + // pthread.h + pub fn pthread_mutex_trylock(mutex: *mut pthread_mutex_t) -> ::c_int; + + // pthread.h + pub fn pthread_mutex_timedlock(attr: *mut pthread_mutex_t, spec: *const timespec) -> ::c_int; + + // pthread.h + pub fn pthread_mutex_unlock(mutex: *mut pthread_mutex_t) -> ::c_int; + + // pthread.h + pub fn pthread_attr_setname(pAttr: *mut ::pthread_attr_t, name: *mut ::c_char) -> ::c_int; + + // pthread.h + pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, stacksize: ::size_t) -> ::c_int; + + // pthread.h + pub fn pthread_attr_getstacksize(attr: *const ::pthread_attr_t, size: *mut ::size_t) + -> ::c_int; + + // pthread.h + pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; + + // pthread.h + pub fn pthread_create( + pThread: *mut ::pthread_t, + pAttr: *const ::pthread_attr_t, + start_routine: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + + // pthread.h + pub fn pthread_attr_destroy(thread: *mut ::pthread_attr_t) -> ::c_int; + + // pthread.h + pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; + + // int pthread_atfork (void (*)(void), void (*)(void), void (*)(void)); + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + // stat.h + pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; + + // stat.h + pub fn lstat(path: *const ::c_char, buf: *mut stat) -> ::c_int; + + // unistd.h + pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; + + // dirent.h + pub fn readdir_r(pDir: *mut ::DIR, entry: *mut ::dirent, result: *mut *mut ::dirent) + -> ::c_int; + + // dirent.h + pub fn readdir(pDir: *mut ::DIR) -> *mut ::dirent; + + // fcntl.h or + // ioLib.h + pub fn open(path: *const ::c_char, oflag: ::c_int, ...) -> ::c_int; + + // poll.h + pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; + + // pthread.h + pub fn pthread_condattr_init(attr: *mut ::pthread_condattr_t) -> ::c_int; + + // pthread.h + pub fn pthread_condattr_destroy(attr: *mut ::pthread_condattr_t) -> ::c_int; + + // pthread.h + pub fn pthread_condattr_getclock( + pAttr: *const ::pthread_condattr_t, + pClockId: *mut ::clockid_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_condattr_setclock( + pAttr: *mut ::pthread_condattr_t, + clockId: ::clockid_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_cond_init( + cond: *mut ::pthread_cond_t, + attr: *const ::pthread_condattr_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int; + + // pthread.h + pub fn pthread_cond_signal(cond: *mut ::pthread_cond_t) -> ::c_int; + + // pthread.h + pub fn pthread_cond_broadcast(cond: *mut ::pthread_cond_t) -> ::c_int; + + // pthread.h + pub fn pthread_cond_wait(cond: *mut ::pthread_cond_t, mutex: *mut ::pthread_mutex_t) + -> ::c_int; + + // pthread.h + pub fn pthread_rwlockattr_init(attr: *mut ::pthread_rwlockattr_t) -> ::c_int; + + // pthread.h + pub fn pthread_rwlockattr_destroy(attr: *mut ::pthread_rwlockattr_t) -> ::c_int; + + // pthread.h + pub fn pthread_rwlockattr_setmaxreaders( + attr: *mut ::pthread_rwlockattr_t, + attr2: ::c_uint, + ) -> ::c_int; + + // pthread.h + pub fn pthread_rwlock_init( + attr: *mut ::pthread_rwlock_t, + host: *const ::pthread_rwlockattr_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_rwlock_destroy(attr: *mut ::pthread_rwlock_t) -> ::c_int; + + // pthread.h + pub fn pthread_rwlock_rdlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; + + // pthread.h + pub fn pthread_rwlock_tryrdlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; + + // pthread.h + pub fn pthread_rwlock_timedrdlock( + attr: *mut ::pthread_rwlock_t, + host: *const ::timespec, + ) -> ::c_int; + + // pthread.h + pub fn pthread_rwlock_wrlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; + + // pthread.h + pub fn pthread_rwlock_trywrlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; + + // pthread.h + pub fn pthread_rwlock_timedwrlock( + attr: *mut ::pthread_rwlock_t, + host: *const ::timespec, + ) -> ::c_int; + + // pthread.h + pub fn pthread_rwlock_unlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; + + // pthread.h + pub fn pthread_key_create( + key: *mut ::pthread_key_t, + dtor: ::Option, + ) -> ::c_int; + + // pthread.h + pub fn pthread_key_delete(key: ::pthread_key_t) -> ::c_int; + + // pthread.h + pub fn pthread_setspecific(key: ::pthread_key_t, value: *const ::c_void) -> ::c_int; + + // pthread.h + pub fn pthread_getspecific(key: ::pthread_key_t) -> *mut ::c_void; + + // pthread.h + pub fn pthread_cond_timedwait( + cond: *mut ::pthread_cond_t, + mutex: *mut ::pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + + // pthread.h + pub fn pthread_attr_getname(attr: *mut ::pthread_attr_t, name: *mut *mut ::c_char) -> ::c_int; + + // pthread.h + pub fn pthread_join(thread: ::pthread_t, status: *mut *mut ::c_void) -> ::c_int; + + // pthread.h + pub fn pthread_self() -> ::pthread_t; + + // clockLib.h + pub fn clock_gettime(clock_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; + + // clockLib.h + pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + + // clockLib.h + pub fn clock_getres(clock_id: ::clockid_t, res: *mut ::timespec) -> ::c_int; + + // clockLib.h + pub fn clock_nanosleep( + clock_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + + // timerLib.h + pub fn nanosleep(rqtp: *const ::timespec, rmtp: *mut ::timespec) -> ::c_int; + + // socket.h + pub fn accept(s: ::c_int, addr: *mut ::sockaddr, addrlen: *mut ::socklen_t) -> ::c_int; + + // socket.h + pub fn bind(fd: ::c_int, addr: *const sockaddr, len: socklen_t) -> ::c_int; + + // socket.h + pub fn connect(s: ::c_int, name: *const ::sockaddr, namelen: ::socklen_t) -> ::c_int; + + // socket.h + pub fn getpeername(s: ::c_int, name: *mut ::sockaddr, namelen: *mut ::socklen_t) -> ::c_int; + + // socket.h + pub fn getsockname( + socket: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + ) -> ::c_int; + + // socket.h + pub fn getsockopt( + sockfd: ::c_int, + level: ::c_int, + optname: ::c_int, + optval: *mut ::c_void, + optlen: *mut ::socklen_t, + ) -> ::c_int; + + // socket.h + pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; + + // socket.h + pub fn recv(s: ::c_int, buf: *mut ::c_void, bufLen: ::size_t, flags: ::c_int) -> ::ssize_t; + + // socket.h + pub fn recvfrom( + s: ::c_int, + buf: *mut ::c_void, + bufLen: ::size_t, + flags: ::c_int, + from: *mut ::sockaddr, + pFromLen: *mut ::socklen_t, + ) -> ::ssize_t; + + pub fn recvmsg(socket: ::c_int, mp: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + + // socket.h + pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; + + pub fn sendmsg(socket: ::c_int, mp: *const ::msghdr, flags: ::c_int) -> ::ssize_t; + + // socket.h + pub fn sendto( + socket: ::c_int, + buf: *const ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *const sockaddr, + addrlen: socklen_t, + ) -> ::ssize_t; + + // socket.h + pub fn setsockopt( + socket: ::c_int, + level: ::c_int, + name: ::c_int, + value: *const ::c_void, + option_len: socklen_t, + ) -> ::c_int; + + // socket.h + pub fn shutdown(s: ::c_int, how: ::c_int) -> ::c_int; + + // socket.h + pub fn socket(domain: ::c_int, _type: ::c_int, protocol: ::c_int) -> ::c_int; + + // icotl.h + pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; + + // fcntl.h + pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; + + // ntp_rfc2553.h for kernel + // netdb.h for user + pub fn gai_strerror(errcode: ::c_int) -> *mut ::c_char; + + // ioLib.h or + // unistd.h + pub fn close(fd: ::c_int) -> ::c_int; + + // ioLib.h or + // unistd.h + pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) -> ::ssize_t; + + // ioLib.h or + // unistd.h + pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t; + + // ioLib.h or + // unistd.h + pub fn isatty(fd: ::c_int) -> ::c_int; + + // ioLib.h or + // unistd.h + pub fn dup(src: ::c_int) -> ::c_int; + + // ioLib.h or + // unistd.h + pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; + + // ioLib.h or + // unistd.h + pub fn pipe(fds: *mut ::c_int) -> ::c_int; + + // ioLib.h or + // unistd.h + pub fn unlink(pathname: *const ::c_char) -> ::c_int; + + // unistd.h and + // ioLib.h + pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; + + // netdb.h + pub fn getaddrinfo( + node: *const ::c_char, + service: *const ::c_char, + hints: *const addrinfo, + res: *mut *mut addrinfo, + ) -> ::c_int; + + // netdb.h + pub fn freeaddrinfo(res: *mut addrinfo); + + // signal.h + pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; + + // unistd.h + pub fn getpid() -> pid_t; + + // unistd.h + pub fn getppid() -> pid_t; + + // wait.h + pub fn waitpid(pid: pid_t, status: *mut ::c_int, optons: ::c_int) -> pid_t; + + // unistd.h + pub fn sysconf(attr: ::c_int) -> ::c_long; + + // stdlib.h + pub fn setenv( + // setenv.c + envVarName: *const ::c_char, + envVarValue: *const ::c_char, + overwrite: ::c_int, + ) -> ::c_int; + + // stdlib.h + pub fn unsetenv( + // setenv.c + envVarName: *const ::c_char, + ) -> ::c_int; + + // stdlib.h + pub fn realpath(fileName: *const ::c_char, resolvedName: *mut ::c_char) -> *mut ::c_char; + + // unistd.h + pub fn link(src: *const ::c_char, dst: *const ::c_char) -> ::c_int; + + // unistd.h + pub fn readlink(path: *const ::c_char, buf: *mut ::c_char, bufsize: ::size_t) -> ::ssize_t; + + // unistd.h + pub fn symlink(path1: *const ::c_char, path2: *const ::c_char) -> ::c_int; + + // dirent.h + pub fn opendir(name: *const ::c_char) -> *mut ::DIR; + + // unistd.h + pub fn rmdir(path: *const ::c_char) -> ::c_int; + + // stat.h + pub fn mkdir(dirName: *const ::c_char, mode: ::mode_t) -> ::c_int; + + // stat.h + pub fn chmod(path: *const ::c_char, mode: ::mode_t) -> ::c_int; + + // stat.h + pub fn fchmod(attr1: ::c_int, attr2: ::mode_t) -> ::c_int; + + // unistd.h + pub fn fsync(fd: ::c_int) -> ::c_int; + + // dirent.h + pub fn closedir(ptr: *mut ::DIR) -> ::c_int; + + // sched.h + pub fn sched_yield() -> ::c_int; + + // errnoLib.h + pub fn errnoSet(err: ::c_int) -> ::c_int; + + // errnoLib.h + pub fn errnoGet() -> ::c_int; + + // unistd.h + pub fn _exit(status: ::c_int) -> !; + + // unistd.h + pub fn setgid(gid: ::gid_t) -> ::c_int; + + // unistd.h + pub fn getgid() -> ::gid_t; + + // unistd.h + pub fn setuid(uid: ::uid_t) -> ::c_int; + + // unistd.h + pub fn getuid() -> ::uid_t; + + // signal.h + pub fn sigemptyset(__set: *mut sigset_t) -> ::c_int; + + // pthread.h for kernel + // signal.h for user + pub fn pthread_sigmask( + __how: ::c_int, + __set: *const sigset_t, + __oset: *mut sigset_t, + ) -> ::c_int; + + // signal.h for user + pub fn kill(__pid: pid_t, __signo: ::c_int) -> ::c_int; + + // signal.h for user + pub fn sigqueue(__pid: pid_t, __signo: ::c_int, __value: ::sigval) -> ::c_int; + + // signal.h for user + pub fn _sigqueue( + rtpId: ::RTP_ID, + signo: ::c_int, + pValue: *const ::sigval, + sigCode: ::c_int, + ) -> ::c_int; + + // signal.h + pub fn taskKill(taskId: ::TASK_ID, signo: ::c_int) -> ::c_int; + + // signal.h + pub fn raise(__signo: ::c_int) -> ::c_int; + + // taskLibCommon.h + pub fn taskIdSelf() -> ::TASK_ID; + pub fn taskDelay(ticks: ::_Vx_ticks_t) -> ::c_int; + + // rtpLibCommon.h + pub fn rtpInfoGet(rtpId: ::RTP_ID, rtpStruct: *mut ::RTP_DESC) -> ::c_int; + pub fn rtpSpawn( + pubrtpFileName: *const ::c_char, + argv: *mut *const ::c_char, + envp: *mut *const ::c_char, + priority: ::c_int, + uStackSize: ::size_t, + options: ::c_int, + taskOptions: ::c_int, + ) -> RTP_ID; + + // ioLib.h + pub fn _realpath(fileName: *const ::c_char, resolvedName: *mut ::c_char) -> *mut ::c_char; + + // pathLib.h + pub fn _pathIsAbsolute(filepath: *const ::c_char, pNameTail: *mut *const ::c_char) -> BOOL; + + pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + + // randomNumGen.h + pub fn randBytes(buf: *mut c_uchar, length: c_int) -> c_int; + pub fn randABytes(buf: *mut c_uchar, length: c_int) -> c_int; + pub fn randUBytes(buf: *mut c_uchar, length: c_int) -> c_int; + pub fn randSecure() -> c_int; + + // mqueue.h + pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; + pub fn mq_close(mqd: ::mqd_t) -> ::c_int; + pub fn mq_unlink(name: *const ::c_char) -> ::c_int; + pub fn mq_receive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + ) -> ::ssize_t; + pub fn mq_timedreceive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::ssize_t; + pub fn mq_send( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + ) -> ::c_int; + pub fn mq_timedsend( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::c_int; + pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; + pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; +} + +//Dummy functions, these don't really exist in VxWorks. + +// wait.h macros +safe_f! { + pub {const} fn WIFEXITED(status: ::c_int) -> bool { + (status & 0xFF00) == 0 + } + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + (status & 0xFF00) != 0 + } + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + (status & 0xFF0000) != 0 + } + pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + status & 0xFF + } + pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + (status >> 8) & 0xFF + } + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + (status >> 16) & 0xFF + } +} + +pub fn pread(_fd: ::c_int, _buf: *mut ::c_void, _count: ::size_t, _offset: off64_t) -> ::ssize_t { + -1 +} + +pub fn pwrite( + _fd: ::c_int, + _buf: *const ::c_void, + _count: ::size_t, + _offset: off64_t, +) -> ::ssize_t { + -1 +} +pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int { + // check to see if align is a power of 2 and if align is a multiple + // of sizeof(void *) + if (align & align - 1 != 0) || (align as usize % size_of::<::size_t>() != 0) { + return ::EINVAL; + } + + unsafe { + // posix_memalign should not set errno + let e = ::errnoGet(); + + let temp = memalign(align, size); + ::errnoSet(e as ::c_int); + + if temp.is_null() { + ::ENOMEM + } else { + *memptr = temp; + 0 + } + } +} + +cfg_if! { + if #[cfg(libc_core_cvoid)] { + pub use ::ffi::c_void; + } else { + // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help + // enable more optimization opportunities around it recognizing things + // like malloc/free. + #[repr(u8)] + #[allow(missing_copy_implementations)] + #[allow(missing_debug_implementations)] + pub enum c_void { + // Two dummy variants so the #[repr] attribute can be used. + #[doc(hidden)] + __variant1, + #[doc(hidden)] + __variant2, + } + } +} + +cfg_if! { + if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } else if #[cfg(any(target_arch = "arm"))] { + mod arm; + pub use self::arm::*; + } else if #[cfg(any(target_arch = "x86"))] { + mod x86; + pub use self::x86::*; + } else if #[cfg(any(target_arch = "x86_64"))] { + mod x86_64; + pub use self::x86_64::*; + } else if #[cfg(any(target_arch = "powerpc"))] { + mod powerpc; + pub use self::powerpc::*; + } else if #[cfg(any(target_arch = "powerpc64"))] { + mod powerpc64; + pub use self::powerpc64::*; + } else { + // Unknown target_arch + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/powerpc.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/powerpc.rs new file mode 100644 index 000000000..55240068a --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/vxworks/powerpc.rs @@ -0,0 +1,4 @@ +pub type c_char = u8; +pub type wchar_t = u32; +pub type c_long = i32; +pub type c_ulong = u32; diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/powerpc64.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/powerpc64.rs new file mode 100644 index 000000000..4032488b6 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/vxworks/powerpc64.rs @@ -0,0 +1,4 @@ +pub type c_char = u8; +pub type wchar_t = u32; +pub type c_long = i64; +pub type c_ulong = u64; diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/x86.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/x86.rs new file mode 100644 index 000000000..e617bb83c --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/vxworks/x86.rs @@ -0,0 +1,4 @@ +pub type c_char = i8; +pub type wchar_t = i32; +pub type c_long = i32; +pub type c_ulong = u32; diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/x86_64.rs new file mode 100644 index 000000000..5e95ea256 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/vxworks/x86_64.rs @@ -0,0 +1,4 @@ +pub type c_char = i8; +pub type wchar_t = i32; +pub type c_long = i64; +pub type c_ulong = u64; diff --git a/src/rust/vendor/libc-0.2.146/src/wasi.rs b/src/rust/vendor/libc-0.2.146/src/wasi.rs new file mode 100644 index 000000000..1a855e0e0 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/wasi.rs @@ -0,0 +1,830 @@ +use super::{Send, Sync}; + +pub use ffi::c_void; + +pub type c_char = i8; +pub type c_uchar = u8; +pub type c_schar = i8; +pub type c_int = i32; +pub type c_uint = u32; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_long = i32; +pub type c_ulong = u32; +pub type c_longlong = i64; +pub type c_ulonglong = u64; +pub type intmax_t = i64; +pub type uintmax_t = u64; +pub type size_t = usize; +pub type ssize_t = isize; +pub type ptrdiff_t = isize; +pub type intptr_t = isize; +pub type uintptr_t = usize; +pub type off_t = i64; +pub type pid_t = i32; +pub type clock_t = c_longlong; +pub type time_t = c_longlong; +pub type c_double = f64; +pub type c_float = f32; +pub type ino_t = u64; +pub type sigset_t = c_uchar; +pub type suseconds_t = c_longlong; +pub type mode_t = u32; +pub type dev_t = u64; +pub type uid_t = u32; +pub type gid_t = u32; +pub type nlink_t = u64; +pub type blksize_t = c_long; +pub type blkcnt_t = i64; +pub type nfds_t = c_ulong; +pub type wchar_t = i32; +pub type nl_item = c_int; +pub type __wasi_rights_t = u64; + +s_no_extra_traits! { + #[repr(align(16))] + #[allow(missing_debug_implementations)] + pub struct max_align_t { + priv_: [f64; 4] + } +} + +#[allow(missing_copy_implementations)] +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum FILE {} +#[allow(missing_copy_implementations)] +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum DIR {} +#[allow(missing_copy_implementations)] +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum __locale_struct {} + +pub type locale_t = *mut __locale_struct; + +s_paren! { + // in wasi-libc clockid_t is const struct __clockid* (where __clockid is an opaque struct), + // but that's an implementation detail that we don't want to have to deal with + #[repr(transparent)] + pub struct clockid_t(*const u8); +} + +unsafe impl Send for clockid_t {} +unsafe impl Sync for clockid_t {} + +s! { + #[repr(align(8))] + pub struct fpos_t { + data: [u8; 16], + } + + pub struct tm { + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub __tm_gmtoff: c_int, + pub __tm_zone: *const c_char, + pub __tm_nsec: c_int, + } + + pub struct timeval { + pub tv_sec: time_t, + pub tv_usec: suseconds_t, + } + + pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: c_long, + } + + pub struct tms { + pub tms_utime: clock_t, + pub tms_stime: clock_t, + pub tms_cutime: clock_t, + pub tms_cstime: clock_t, + } + + pub struct itimerspec { + pub it_interval: timespec, + pub it_value: timespec, + } + + pub struct iovec { + pub iov_base: *mut c_void, + pub iov_len: size_t, + } + + pub struct lconv { + pub decimal_point: *mut c_char, + pub thousands_sep: *mut c_char, + pub grouping: *mut c_char, + pub int_curr_symbol: *mut c_char, + pub currency_symbol: *mut c_char, + pub mon_decimal_point: *mut c_char, + pub mon_thousands_sep: *mut c_char, + pub mon_grouping: *mut c_char, + pub positive_sign: *mut c_char, + pub negative_sign: *mut c_char, + pub int_frac_digits: c_char, + pub frac_digits: c_char, + pub p_cs_precedes: c_char, + pub p_sep_by_space: c_char, + pub n_cs_precedes: c_char, + pub n_sep_by_space: c_char, + pub p_sign_posn: c_char, + pub n_sign_posn: c_char, + pub int_p_cs_precedes: c_char, + pub int_p_sep_by_space: c_char, + pub int_n_cs_precedes: c_char, + pub int_n_sep_by_space: c_char, + pub int_p_sign_posn: c_char, + pub int_n_sign_posn: c_char, + } + + pub struct pollfd { + pub fd: c_int, + pub events: c_short, + pub revents: c_short, + } + + pub struct rusage { + pub ru_utime: timeval, + pub ru_stime: timeval, + } + + pub struct stat { + pub st_dev: dev_t, + pub st_ino: ino_t, + pub st_nlink: nlink_t, + pub st_mode: mode_t, + pub st_uid: uid_t, + pub st_gid: gid_t, + __pad0: c_uint, + pub st_rdev: dev_t, + pub st_size: off_t, + pub st_blksize: blksize_t, + pub st_blocks: blkcnt_t, + pub st_atim: timespec, + pub st_mtim: timespec, + pub st_ctim: timespec, + __reserved: [c_longlong; 3], + } +} + +// Declare dirent outside of s! so that it doesn't implement Copy, Eq, Hash, +// etc., since it contains a flexible array member with a dynamic size. +#[repr(C)] +#[allow(missing_copy_implementations)] +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub struct dirent { + pub d_ino: ino_t, + pub d_type: c_uchar, + /// d_name is declared in WASI libc as a flexible array member, which + /// can't be directly expressed in Rust. As an imperfect workaround, + /// declare it as a zero-length array instead. + pub d_name: [c_char; 0], +} + +pub const EXIT_SUCCESS: c_int = 0; +pub const EXIT_FAILURE: c_int = 1; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; +pub const SEEK_SET: c_int = 0; +pub const SEEK_CUR: c_int = 1; +pub const SEEK_END: c_int = 2; +pub const _IOFBF: c_int = 0; +pub const _IONBF: c_int = 2; +pub const _IOLBF: c_int = 1; +pub const F_GETFD: c_int = 1; +pub const F_SETFD: c_int = 2; +pub const F_GETFL: c_int = 3; +pub const F_SETFL: c_int = 4; +pub const FD_CLOEXEC: c_int = 1; +pub const FD_SETSIZE: size_t = 1024; +pub const O_APPEND: c_int = 0x0001; +pub const O_DSYNC: c_int = 0x0002; +pub const O_NONBLOCK: c_int = 0x0004; +pub const O_RSYNC: c_int = 0x0008; +pub const O_SYNC: c_int = 0x0010; +pub const O_CREAT: c_int = 0x0001 << 12; +pub const O_DIRECTORY: c_int = 0x0002 << 12; +pub const O_EXCL: c_int = 0x0004 << 12; +pub const O_TRUNC: c_int = 0x0008 << 12; +pub const O_NOFOLLOW: c_int = 0x01000000; +pub const O_EXEC: c_int = 0x02000000; +pub const O_RDONLY: c_int = 0x04000000; +pub const O_SEARCH: c_int = 0x08000000; +pub const O_WRONLY: c_int = 0x10000000; +pub const O_CLOEXEC: c_int = 0x0; +pub const O_RDWR: c_int = O_WRONLY | O_RDONLY; +pub const O_ACCMODE: c_int = O_EXEC | O_RDWR | O_SEARCH; +pub const O_NOCTTY: c_int = 0x0; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; +pub const POSIX_FADV_NORMAL: c_int = 0; +pub const POSIX_FADV_RANDOM: c_int = 2; +pub const POSIX_FADV_SEQUENTIAL: c_int = 1; +pub const POSIX_FADV_WILLNEED: c_int = 3; +pub const AT_FDCWD: ::c_int = -2; +pub const AT_EACCESS: c_int = 0x0; +pub const AT_SYMLINK_NOFOLLOW: c_int = 0x1; +pub const AT_SYMLINK_FOLLOW: c_int = 0x2; +pub const AT_REMOVEDIR: c_int = 0x4; +pub const UTIME_OMIT: c_long = 0xfffffffe; +pub const UTIME_NOW: c_long = 0xffffffff; +pub const S_IFIFO: mode_t = 49152; +pub const S_IFCHR: mode_t = 8192; +pub const S_IFBLK: mode_t = 24576; +pub const S_IFDIR: mode_t = 16384; +pub const S_IFREG: mode_t = 32768; +pub const S_IFLNK: mode_t = 40960; +pub const S_IFSOCK: mode_t = 49152; +pub const S_IFMT: mode_t = 57344; +pub const S_IRWXO: mode_t = 0x7; +pub const S_IXOTH: mode_t = 0x1; +pub const S_IWOTH: mode_t = 0x2; +pub const S_IROTH: mode_t = 0x4; +pub const S_IRWXG: mode_t = 0x38; +pub const S_IXGRP: mode_t = 0x8; +pub const S_IWGRP: mode_t = 0x10; +pub const S_IRGRP: mode_t = 0x20; +pub const S_IRWXU: mode_t = 0x1c0; +pub const S_IXUSR: mode_t = 0x40; +pub const S_IWUSR: mode_t = 0x80; +pub const S_IRUSR: mode_t = 0x100; +pub const S_ISVTX: mode_t = 0x200; +pub const S_ISGID: mode_t = 0x400; +pub const S_ISUID: mode_t = 0x800; +pub const DT_UNKNOWN: u8 = 0; +pub const DT_BLK: u8 = 1; +pub const DT_CHR: u8 = 2; +pub const DT_DIR: u8 = 3; +pub const DT_REG: u8 = 4; +pub const DT_LNK: u8 = 7; +pub const FIONREAD: c_int = 1; +pub const FIONBIO: c_int = 2; +pub const F_OK: ::c_int = 0; +pub const R_OK: ::c_int = 4; +pub const W_OK: ::c_int = 2; +pub const X_OK: ::c_int = 1; +pub const POLLIN: ::c_short = 0x1; +pub const POLLOUT: ::c_short = 0x2; +pub const POLLERR: ::c_short = 0x1000; +pub const POLLHUP: ::c_short = 0x2000; +pub const POLLNVAL: ::c_short = 0x4000; +pub const POLLRDNORM: ::c_short = 0x1; +pub const POLLWRNORM: ::c_short = 0x2; + +pub const E2BIG: c_int = 1; +pub const EACCES: c_int = 2; +pub const EADDRINUSE: c_int = 3; +pub const EADDRNOTAVAIL: c_int = 4; +pub const EAFNOSUPPORT: c_int = 5; +pub const EAGAIN: c_int = 6; +pub const EALREADY: c_int = 7; +pub const EBADF: c_int = 8; +pub const EBADMSG: c_int = 9; +pub const EBUSY: c_int = 10; +pub const ECANCELED: c_int = 11; +pub const ECHILD: c_int = 12; +pub const ECONNABORTED: c_int = 13; +pub const ECONNREFUSED: c_int = 14; +pub const ECONNRESET: c_int = 15; +pub const EDEADLK: c_int = 16; +pub const EDESTADDRREQ: c_int = 17; +pub const EDOM: c_int = 18; +pub const EDQUOT: c_int = 19; +pub const EEXIST: c_int = 20; +pub const EFAULT: c_int = 21; +pub const EFBIG: c_int = 22; +pub const EHOSTUNREACH: c_int = 23; +pub const EIDRM: c_int = 24; +pub const EILSEQ: c_int = 25; +pub const EINPROGRESS: c_int = 26; +pub const EINTR: c_int = 27; +pub const EINVAL: c_int = 28; +pub const EIO: c_int = 29; +pub const EISCONN: c_int = 30; +pub const EISDIR: c_int = 31; +pub const ELOOP: c_int = 32; +pub const EMFILE: c_int = 33; +pub const EMLINK: c_int = 34; +pub const EMSGSIZE: c_int = 35; +pub const EMULTIHOP: c_int = 36; +pub const ENAMETOOLONG: c_int = 37; +pub const ENETDOWN: c_int = 38; +pub const ENETRESET: c_int = 39; +pub const ENETUNREACH: c_int = 40; +pub const ENFILE: c_int = 41; +pub const ENOBUFS: c_int = 42; +pub const ENODEV: c_int = 43; +pub const ENOENT: c_int = 44; +pub const ENOEXEC: c_int = 45; +pub const ENOLCK: c_int = 46; +pub const ENOLINK: c_int = 47; +pub const ENOMEM: c_int = 48; +pub const ENOMSG: c_int = 49; +pub const ENOPROTOOPT: c_int = 50; +pub const ENOSPC: c_int = 51; +pub const ENOSYS: c_int = 52; +pub const ENOTCONN: c_int = 53; +pub const ENOTDIR: c_int = 54; +pub const ENOTEMPTY: c_int = 55; +pub const ENOTRECOVERABLE: c_int = 56; +pub const ENOTSOCK: c_int = 57; +pub const ENOTSUP: c_int = 58; +pub const ENOTTY: c_int = 59; +pub const ENXIO: c_int = 60; +pub const EOVERFLOW: c_int = 61; +pub const EOWNERDEAD: c_int = 62; +pub const EPERM: c_int = 63; +pub const EPIPE: c_int = 64; +pub const EPROTO: c_int = 65; +pub const EPROTONOSUPPORT: c_int = 66; +pub const EPROTOTYPE: c_int = 67; +pub const ERANGE: c_int = 68; +pub const EROFS: c_int = 69; +pub const ESPIPE: c_int = 70; +pub const ESRCH: c_int = 71; +pub const ESTALE: c_int = 72; +pub const ETIMEDOUT: c_int = 73; +pub const ETXTBSY: c_int = 74; +pub const EXDEV: c_int = 75; +pub const ENOTCAPABLE: c_int = 76; +pub const EOPNOTSUPP: c_int = ENOTSUP; +pub const EWOULDBLOCK: c_int = EAGAIN; + +pub const _SC_PAGESIZE: c_int = 30; +pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; +pub const _SC_IOV_MAX: c_int = 60; +pub const _SC_SYMLOOP_MAX: c_int = 173; + +pub static CLOCK_MONOTONIC: clockid_t = unsafe { clockid_t(ptr_addr_of!(_CLOCK_MONOTONIC)) }; +pub static CLOCK_PROCESS_CPUTIME_ID: clockid_t = + unsafe { clockid_t(ptr_addr_of!(_CLOCK_PROCESS_CPUTIME_ID)) }; +pub static CLOCK_REALTIME: clockid_t = unsafe { clockid_t(ptr_addr_of!(_CLOCK_REALTIME)) }; +pub static CLOCK_THREAD_CPUTIME_ID: clockid_t = + unsafe { clockid_t(ptr_addr_of!(_CLOCK_THREAD_CPUTIME_ID)) }; + +pub const ABDAY_1: ::nl_item = 0x20000; +pub const ABDAY_2: ::nl_item = 0x20001; +pub const ABDAY_3: ::nl_item = 0x20002; +pub const ABDAY_4: ::nl_item = 0x20003; +pub const ABDAY_5: ::nl_item = 0x20004; +pub const ABDAY_6: ::nl_item = 0x20005; +pub const ABDAY_7: ::nl_item = 0x20006; + +pub const DAY_1: ::nl_item = 0x20007; +pub const DAY_2: ::nl_item = 0x20008; +pub const DAY_3: ::nl_item = 0x20009; +pub const DAY_4: ::nl_item = 0x2000A; +pub const DAY_5: ::nl_item = 0x2000B; +pub const DAY_6: ::nl_item = 0x2000C; +pub const DAY_7: ::nl_item = 0x2000D; + +pub const ABMON_1: ::nl_item = 0x2000E; +pub const ABMON_2: ::nl_item = 0x2000F; +pub const ABMON_3: ::nl_item = 0x20010; +pub const ABMON_4: ::nl_item = 0x20011; +pub const ABMON_5: ::nl_item = 0x20012; +pub const ABMON_6: ::nl_item = 0x20013; +pub const ABMON_7: ::nl_item = 0x20014; +pub const ABMON_8: ::nl_item = 0x20015; +pub const ABMON_9: ::nl_item = 0x20016; +pub const ABMON_10: ::nl_item = 0x20017; +pub const ABMON_11: ::nl_item = 0x20018; +pub const ABMON_12: ::nl_item = 0x20019; + +pub const MON_1: ::nl_item = 0x2001A; +pub const MON_2: ::nl_item = 0x2001B; +pub const MON_3: ::nl_item = 0x2001C; +pub const MON_4: ::nl_item = 0x2001D; +pub const MON_5: ::nl_item = 0x2001E; +pub const MON_6: ::nl_item = 0x2001F; +pub const MON_7: ::nl_item = 0x20020; +pub const MON_8: ::nl_item = 0x20021; +pub const MON_9: ::nl_item = 0x20022; +pub const MON_10: ::nl_item = 0x20023; +pub const MON_11: ::nl_item = 0x20024; +pub const MON_12: ::nl_item = 0x20025; + +pub const AM_STR: ::nl_item = 0x20026; +pub const PM_STR: ::nl_item = 0x20027; + +pub const D_T_FMT: ::nl_item = 0x20028; +pub const D_FMT: ::nl_item = 0x20029; +pub const T_FMT: ::nl_item = 0x2002A; +pub const T_FMT_AMPM: ::nl_item = 0x2002B; + +pub const ERA: ::nl_item = 0x2002C; +pub const ERA_D_FMT: ::nl_item = 0x2002E; +pub const ALT_DIGITS: ::nl_item = 0x2002F; +pub const ERA_D_T_FMT: ::nl_item = 0x20030; +pub const ERA_T_FMT: ::nl_item = 0x20031; + +pub const CODESET: ::nl_item = 14; +pub const CRNCYSTR: ::nl_item = 0x4000F; +pub const RADIXCHAR: ::nl_item = 0x10000; +pub const THOUSEP: ::nl_item = 0x10001; +pub const YESEXPR: ::nl_item = 0x50000; +pub const NOEXPR: ::nl_item = 0x50001; +pub const YESSTR: ::nl_item = 0x50002; +pub const NOSTR: ::nl_item = 0x50003; + +#[cfg_attr( + feature = "rustc-dep-of-std", + link( + name = "c", + kind = "static", + modifiers = "-bundle", + cfg(target_feature = "crt-static") + ) +)] +#[cfg_attr( + feature = "rustc-dep-of-std", + link(name = "c", cfg(not(target_feature = "crt-static"))) +)] +extern "C" { + pub fn _Exit(code: c_int) -> !; + pub fn _exit(code: c_int) -> !; + pub fn abort() -> !; + pub fn aligned_alloc(a: size_t, b: size_t) -> *mut c_void; + pub fn calloc(amt: size_t, amt2: size_t) -> *mut c_void; + pub fn exit(code: c_int) -> !; + pub fn free(ptr: *mut c_void); + pub fn getenv(s: *const c_char) -> *mut c_char; + pub fn malloc(amt: size_t) -> *mut c_void; + pub fn malloc_usable_size(ptr: *mut c_void) -> size_t; + pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; + pub fn rand() -> c_int; + pub fn read(fd: c_int, ptr: *mut c_void, size: size_t) -> ssize_t; + pub fn realloc(ptr: *mut c_void, amt: size_t) -> *mut c_void; + pub fn setenv(k: *const c_char, v: *const c_char, a: c_int) -> c_int; + pub fn unsetenv(k: *const c_char) -> c_int; + pub fn clearenv() -> ::c_int; + pub fn write(fd: c_int, ptr: *const c_void, size: size_t) -> ssize_t; + pub static mut environ: *mut *mut c_char; + pub fn fopen(a: *const c_char, b: *const c_char) -> *mut FILE; + pub fn freopen(a: *const c_char, b: *const c_char, f: *mut FILE) -> *mut FILE; + pub fn fclose(f: *mut FILE) -> c_int; + pub fn remove(a: *const c_char) -> c_int; + pub fn rename(a: *const c_char, b: *const c_char) -> c_int; + pub fn feof(f: *mut FILE) -> c_int; + pub fn ferror(f: *mut FILE) -> c_int; + pub fn fflush(f: *mut FILE) -> c_int; + pub fn clearerr(f: *mut FILE); + pub fn fseek(f: *mut FILE, b: c_long, c: c_int) -> c_int; + pub fn ftell(f: *mut FILE) -> c_long; + pub fn rewind(f: *mut FILE); + pub fn fgetpos(f: *mut FILE, pos: *mut fpos_t) -> c_int; + pub fn fsetpos(f: *mut FILE, pos: *const fpos_t) -> c_int; + pub fn fread(buf: *mut c_void, a: size_t, b: size_t, f: *mut FILE) -> size_t; + pub fn fwrite(buf: *const c_void, a: size_t, b: size_t, f: *mut FILE) -> size_t; + pub fn fgetc(f: *mut FILE) -> c_int; + pub fn getc(f: *mut FILE) -> c_int; + pub fn getchar() -> c_int; + pub fn ungetc(a: c_int, f: *mut FILE) -> c_int; + pub fn fputc(a: c_int, f: *mut FILE) -> c_int; + pub fn putc(a: c_int, f: *mut FILE) -> c_int; + pub fn putchar(a: c_int) -> c_int; + pub fn fputs(a: *const c_char, f: *mut FILE) -> c_int; + pub fn puts(a: *const c_char) -> c_int; + pub fn perror(a: *const c_char); + pub fn srand(a: c_uint); + pub fn atexit(a: extern "C" fn()) -> c_int; + pub fn at_quick_exit(a: extern "C" fn()) -> c_int; + pub fn quick_exit(a: c_int) -> !; + pub fn posix_memalign(a: *mut *mut c_void, b: size_t, c: size_t) -> c_int; + pub fn rand_r(a: *mut c_uint) -> c_int; + pub fn random() -> c_long; + pub fn srandom(a: c_uint); + pub fn putenv(a: *mut c_char) -> c_int; + pub fn clock() -> clock_t; + pub fn time(a: *mut time_t) -> time_t; + pub fn difftime(a: time_t, b: time_t) -> c_double; + pub fn mktime(a: *mut tm) -> time_t; + pub fn strftime(a: *mut c_char, b: size_t, c: *const c_char, d: *const tm) -> size_t; + pub fn gmtime(a: *const time_t) -> *mut tm; + pub fn gmtime_r(a: *const time_t, b: *mut tm) -> *mut tm; + pub fn localtime(a: *const time_t) -> *mut tm; + pub fn localtime_r(a: *const time_t, b: *mut tm) -> *mut tm; + pub fn asctime_r(a: *const tm, b: *mut c_char) -> *mut c_char; + pub fn ctime_r(a: *const time_t, b: *mut c_char) -> *mut c_char; + + static _CLOCK_MONOTONIC: u8; + static _CLOCK_PROCESS_CPUTIME_ID: u8; + static _CLOCK_REALTIME: u8; + static _CLOCK_THREAD_CPUTIME_ID: u8; + pub fn nanosleep(a: *const timespec, b: *mut timespec) -> c_int; + pub fn clock_getres(a: clockid_t, b: *mut timespec) -> c_int; + pub fn clock_gettime(a: clockid_t, b: *mut timespec) -> c_int; + pub fn clock_nanosleep(a: clockid_t, a2: c_int, b: *const timespec, c: *mut timespec) -> c_int; + + pub fn isalnum(c: c_int) -> c_int; + pub fn isalpha(c: c_int) -> c_int; + pub fn iscntrl(c: c_int) -> c_int; + pub fn isdigit(c: c_int) -> c_int; + pub fn isgraph(c: c_int) -> c_int; + pub fn islower(c: c_int) -> c_int; + pub fn isprint(c: c_int) -> c_int; + pub fn ispunct(c: c_int) -> c_int; + pub fn isspace(c: c_int) -> c_int; + pub fn isupper(c: c_int) -> c_int; + pub fn isxdigit(c: c_int) -> c_int; + pub fn isblank(c: c_int) -> c_int; + pub fn tolower(c: c_int) -> c_int; + pub fn toupper(c: c_int) -> c_int; + pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int; + pub fn setbuf(stream: *mut FILE, buf: *mut c_char); + pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; + pub fn atof(s: *const c_char) -> c_double; + pub fn atoi(s: *const c_char) -> c_int; + pub fn atol(s: *const c_char) -> c_long; + pub fn atoll(s: *const c_char) -> c_longlong; + pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; + pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float; + pub fn strtol(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_long; + pub fn strtoll(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_longlong; + pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulong; + pub fn strtoull(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulonglong; + + pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; + pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; + pub fn strncat(s: *mut c_char, ct: *const c_char, n: size_t) -> *mut c_char; + pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; + pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; + pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; + pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char; + pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char; + pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t; + pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t; + pub fn strdup(cs: *const c_char) -> *mut c_char; + pub fn strndup(cs: *const c_char, n: size_t) -> *mut c_char; + pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; + pub fn strncasecmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; + pub fn strlen(cs: *const c_char) -> size_t; + pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; + pub fn strerror(n: c_int) -> *mut c_char; + pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; + pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; + + pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; + pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; + + pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; + pub fn printf(format: *const ::c_char, ...) -> ::c_int; + pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int; + pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; + pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; + pub fn scanf(format: *const ::c_char, ...) -> ::c_int; + pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; + pub fn getchar_unlocked() -> ::c_int; + pub fn putchar_unlocked(c: ::c_int) -> ::c_int; + + pub fn shutdown(socket: ::c_int, how: ::c_int) -> ::c_int; + pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; + pub fn mkdir(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; + pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; + pub fn fileno(stream: *mut ::FILE) -> ::c_int; + pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; + pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; + pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; + pub fn opendir(dirname: *const c_char) -> *mut ::DIR; + pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; + pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; + pub fn closedir(dirp: *mut ::DIR) -> ::c_int; + pub fn rewinddir(dirp: *mut ::DIR); + pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + + pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int, ...) -> ::c_int; + pub fn fstatat( + dirfd: ::c_int, + pathname: *const ::c_char, + buf: *mut stat, + flags: ::c_int, + ) -> ::c_int; + pub fn linkat( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + flags: ::c_int, + ) -> ::c_int; + pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn readlinkat( + dirfd: ::c_int, + pathname: *const ::c_char, + buf: *mut ::c_char, + bufsiz: ::size_t, + ) -> ::ssize_t; + pub fn renameat( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + ) -> ::c_int; + pub fn symlinkat( + target: *const ::c_char, + newdirfd: ::c_int, + linkpath: *const ::c_char, + ) -> ::c_int; + pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int) -> ::c_int; + + pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; + pub fn close(fd: ::c_int) -> ::c_int; + pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; + pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int; + pub fn isatty(fd: ::c_int) -> ::c_int; + pub fn link(src: *const c_char, dst: *const c_char) -> ::c_int; + pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; + pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; + pub fn rmdir(path: *const c_char) -> ::c_int; + pub fn sleep(secs: ::c_uint) -> ::c_uint; + pub fn unlink(c: *const c_char) -> ::c_int; + pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; + pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; + + pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; + + pub fn fsync(fd: ::c_int) -> ::c_int; + pub fn fdatasync(fd: ::c_int) -> ::c_int; + + pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; + + pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; + pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; + + pub fn getrusage(resource: ::c_int, usage: *mut rusage) -> ::c_int; + + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn times(buf: *mut ::tms) -> ::clock_t; + + pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + + pub fn usleep(secs: ::c_uint) -> ::c_int; + pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; + pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; + pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; + pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char; + pub fn localeconv() -> *mut lconv; + + pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::ssize_t; + + pub fn timegm(tm: *mut ::tm) -> time_t; + + pub fn sysconf(name: ::c_int) -> ::c_long; + + pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; + + pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int; + pub fn ftello(stream: *mut ::FILE) -> ::off_t; + pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + + pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t; + + pub fn faccessat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) + -> ::ssize_t; + pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; + pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; + pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; + pub fn abs(i: c_int) -> c_int; + pub fn labs(i: c_long) -> c_long; + pub fn duplocale(base: ::locale_t) -> ::locale_t; + pub fn freelocale(loc: ::locale_t); + pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; + pub fn uselocale(loc: ::locale_t) -> ::locale_t; + pub fn sched_yield() -> ::c_int; + pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; + pub fn chdir(dir: *const c_char) -> ::c_int; + + pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + pub fn nl_langinfo_l(item: ::nl_item, loc: ::locale_t) -> *mut ::c_char; + + pub fn __wasilibc_register_preopened_fd(fd: c_int, path: *const c_char) -> c_int; + pub fn __wasilibc_fd_renumber(fd: c_int, newfd: c_int) -> c_int; + pub fn __wasilibc_unlinkat(fd: c_int, path: *const c_char) -> c_int; + pub fn __wasilibc_rmdirat(fd: c_int, path: *const c_char) -> c_int; + pub fn __wasilibc_find_relpath( + path: *const c_char, + abs_prefix: *mut *const c_char, + relative_path: *mut *mut c_char, + relative_path_len: usize, + ) -> c_int; + pub fn __wasilibc_tell(fd: c_int) -> ::off_t; + pub fn __wasilibc_nocwd___wasilibc_unlinkat(dirfd: c_int, path: *const c_char) -> c_int; + pub fn __wasilibc_nocwd___wasilibc_rmdirat(dirfd: c_int, path: *const c_char) -> c_int; + pub fn __wasilibc_nocwd_linkat( + olddirfd: c_int, + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + flags: c_int, + ) -> c_int; + pub fn __wasilibc_nocwd_symlinkat( + target: *const c_char, + dirfd: c_int, + path: *const c_char, + ) -> c_int; + pub fn __wasilibc_nocwd_readlinkat( + dirfd: c_int, + path: *const c_char, + buf: *mut c_char, + bufsize: usize, + ) -> isize; + pub fn __wasilibc_nocwd_faccessat( + dirfd: c_int, + path: *const c_char, + mode: c_int, + flags: c_int, + ) -> c_int; + pub fn __wasilibc_nocwd_renameat( + olddirfd: c_int, + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + ) -> c_int; + pub fn __wasilibc_nocwd_openat_nomode(dirfd: c_int, path: *const c_char, flags: c_int) + -> c_int; + pub fn __wasilibc_nocwd_fstatat( + dirfd: c_int, + path: *const c_char, + buf: *mut stat, + flags: c_int, + ) -> c_int; + pub fn __wasilibc_nocwd_mkdirat_nomode(dirfd: c_int, path: *const c_char) -> c_int; + pub fn __wasilibc_nocwd_utimensat( + dirfd: c_int, + path: *const c_char, + times: *const ::timespec, + flags: c_int, + ) -> c_int; + pub fn __wasilibc_nocwd_opendirat(dirfd: c_int, path: *const c_char) -> *mut ::DIR; + pub fn __wasilibc_access(pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; + pub fn __wasilibc_stat(pathname: *const c_char, buf: *mut stat, flags: c_int) -> c_int; + pub fn __wasilibc_utimens( + pathname: *const c_char, + times: *const ::timespec, + flags: c_int, + ) -> c_int; + pub fn __wasilibc_link(oldpath: *const c_char, newpath: *const c_char, flags: c_int) -> c_int; + pub fn __wasilibc_link_oldat( + olddirfd: c_int, + oldpath: *const c_char, + newpath: *const c_char, + flags: c_int, + ) -> c_int; + pub fn __wasilibc_link_newat( + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + flags: c_int, + ) -> c_int; + pub fn __wasilibc_rename_oldat( + olddirfd: c_int, + oldpath: *const c_char, + newpath: *const c_char, + ) -> c_int; + pub fn __wasilibc_rename_newat( + oldpath: *const c_char, + newdirfd: c_int, + newpath: *const c_char, + ) -> c_int; + + pub fn arc4random() -> u32; + pub fn arc4random_buf(a: *mut c_void, b: size_t); + pub fn arc4random_uniform(a: u32) -> u32; + + pub fn __errno_location() -> *mut ::c_int; +} diff --git a/src/rust/vendor/libc-0.2.146/src/windows/gnu/align.rs b/src/rust/vendor/libc-0.2.146/src/windows/gnu/align.rs new file mode 100644 index 000000000..3af99e3ca --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/windows/gnu/align.rs @@ -0,0 +1,19 @@ +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } + } + } else if #[cfg(target_pointer_width = "32")] { + s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [i64; 6] + } + } + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/windows/gnu/mod.rs b/src/rust/vendor/libc-0.2.146/src/windows/gnu/mod.rs new file mode 100644 index 000000000..3e7d38b8e --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/windows/gnu/mod.rs @@ -0,0 +1,23 @@ +pub const L_tmpnam: ::c_uint = 14; +pub const TMP_MAX: ::c_uint = 0x7fff; + +// stdio file descriptor numbers +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; + +extern "C" { + pub fn strcasecmp(s1: *const ::c_char, s2: *const ::c_char) -> ::c_int; + pub fn strncasecmp(s1: *const ::c_char, s2: *const ::c_char, n: ::size_t) -> ::c_int; + + // NOTE: For MSVC target, `wmemchr` is only a inline function in `` + // header file. We cannot find a way to link to that symbol from Rust. + pub fn wmemchr(cx: *const ::wchar_t, c: ::wchar_t, n: ::size_t) -> *mut ::wchar_t; +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/windows/mod.rs b/src/rust/vendor/libc-0.2.146/src/windows/mod.rs new file mode 100644 index 000000000..26bff7f7a --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/windows/mod.rs @@ -0,0 +1,600 @@ +//! Windows CRT definitions + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_int = i32; +pub type c_uint = u32; +pub type c_float = f32; +pub type c_double = f64; +pub type c_longlong = i64; +pub type c_ulonglong = u64; +pub type intmax_t = i64; +pub type uintmax_t = u64; + +pub type size_t = usize; +pub type ptrdiff_t = isize; +pub type intptr_t = isize; +pub type uintptr_t = usize; +pub type ssize_t = isize; +pub type sighandler_t = usize; + +pub type c_char = i8; +pub type c_long = i32; +pub type c_ulong = u32; +pub type wchar_t = u16; + +pub type clock_t = i32; + +pub type errno_t = ::c_int; + +cfg_if! { + if #[cfg(all(target_arch = "x86", target_env = "gnu"))] { + pub type time_t = i32; + } else { + pub type time_t = i64; + } +} + +pub type off_t = i32; +pub type dev_t = u32; +pub type ino_t = u16; +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum timezone {} +impl ::Copy for timezone {} +impl ::Clone for timezone { + fn clone(&self) -> timezone { + *self + } +} +pub type time64_t = i64; + +pub type SOCKET = ::uintptr_t; + +s! { + // note this is the struct called stat64 in Windows. Not stat, nor stati64. + pub struct stat { + pub st_dev: dev_t, + pub st_ino: ino_t, + pub st_mode: u16, + pub st_nlink: ::c_short, + pub st_uid: ::c_short, + pub st_gid: ::c_short, + pub st_rdev: dev_t, + pub st_size: i64, + pub st_atime: time64_t, + pub st_mtime: time64_t, + pub st_ctime: time64_t, + } + + // note that this is called utimbuf64 in Windows + pub struct utimbuf { + pub actime: time64_t, + pub modtime: time64_t, + } + + pub struct tm { + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int, + } + + pub struct timeval { + pub tv_sec: c_long, + pub tv_usec: c_long, + } + + pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: c_long, + } + + pub struct sockaddr { + pub sa_family: c_ushort, + pub sa_data: [c_char; 14], + } +} + +pub const INT_MIN: c_int = -2147483648; +pub const INT_MAX: c_int = 2147483647; + +pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: ::c_int = 0; +pub const RAND_MAX: ::c_int = 32767; +pub const EOF: ::c_int = -1; +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; +pub const _IOFBF: ::c_int = 0; +pub const _IONBF: ::c_int = 4; +pub const _IOLBF: ::c_int = 64; +pub const BUFSIZ: ::c_uint = 512; +pub const FOPEN_MAX: ::c_uint = 20; +pub const FILENAME_MAX: ::c_uint = 260; + +// fcntl.h +pub const O_RDONLY: ::c_int = 0x0000; +pub const O_WRONLY: ::c_int = 0x0001; +pub const O_RDWR: ::c_int = 0x0002; +pub const O_APPEND: ::c_int = 0x0008; +pub const O_CREAT: ::c_int = 0x0100; +pub const O_TRUNC: ::c_int = 0x0200; +pub const O_EXCL: ::c_int = 0x0400; +pub const O_TEXT: ::c_int = 0x4000; +pub const O_BINARY: ::c_int = 0x8000; +pub const _O_WTEXT: ::c_int = 0x10000; +pub const _O_U16TEXT: ::c_int = 0x20000; +pub const _O_U8TEXT: ::c_int = 0x40000; +pub const O_RAW: ::c_int = O_BINARY; +pub const O_NOINHERIT: ::c_int = 0x0080; +pub const O_TEMPORARY: ::c_int = 0x0040; +pub const _O_SHORT_LIVED: ::c_int = 0x1000; +pub const _O_OBTAIN_DIR: ::c_int = 0x2000; +pub const O_SEQUENTIAL: ::c_int = 0x0020; +pub const O_RANDOM: ::c_int = 0x0010; + +pub const S_IFCHR: ::c_int = 8192; +pub const S_IFDIR: ::c_int = 16384; +pub const S_IFREG: ::c_int = 32768; +pub const S_IFMT: ::c_int = 61440; +pub const S_IEXEC: ::c_int = 64; +pub const S_IWRITE: ::c_int = 128; +pub const S_IREAD: ::c_int = 256; + +pub const LC_ALL: ::c_int = 0; +pub const LC_COLLATE: ::c_int = 1; +pub const LC_CTYPE: ::c_int = 2; +pub const LC_MONETARY: ::c_int = 3; +pub const LC_NUMERIC: ::c_int = 4; +pub const LC_TIME: ::c_int = 5; + +pub const EPERM: ::c_int = 1; +pub const ENOENT: ::c_int = 2; +pub const ESRCH: ::c_int = 3; +pub const EINTR: ::c_int = 4; +pub const EIO: ::c_int = 5; +pub const ENXIO: ::c_int = 6; +pub const E2BIG: ::c_int = 7; +pub const ENOEXEC: ::c_int = 8; +pub const EBADF: ::c_int = 9; +pub const ECHILD: ::c_int = 10; +pub const EAGAIN: ::c_int = 11; +pub const ENOMEM: ::c_int = 12; +pub const EACCES: ::c_int = 13; +pub const EFAULT: ::c_int = 14; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const EXDEV: ::c_int = 18; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENFILE: ::c_int = 23; +pub const EMFILE: ::c_int = 24; +pub const ENOTTY: ::c_int = 25; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const ESPIPE: ::c_int = 29; +pub const EROFS: ::c_int = 30; +pub const EMLINK: ::c_int = 31; +pub const EPIPE: ::c_int = 32; +pub const EDOM: ::c_int = 33; +pub const ERANGE: ::c_int = 34; +pub const EDEADLK: ::c_int = 36; +pub const EDEADLOCK: ::c_int = 36; +pub const ENAMETOOLONG: ::c_int = 38; +pub const ENOLCK: ::c_int = 39; +pub const ENOSYS: ::c_int = 40; +pub const ENOTEMPTY: ::c_int = 41; +pub const EILSEQ: ::c_int = 42; +pub const STRUNCATE: ::c_int = 80; + +// POSIX Supplement (from errno.h) +pub const EADDRINUSE: ::c_int = 100; +pub const EADDRNOTAVAIL: ::c_int = 101; +pub const EAFNOSUPPORT: ::c_int = 102; +pub const EALREADY: ::c_int = 103; +pub const EBADMSG: ::c_int = 104; +pub const ECANCELED: ::c_int = 105; +pub const ECONNABORTED: ::c_int = 106; +pub const ECONNREFUSED: ::c_int = 107; +pub const ECONNRESET: ::c_int = 108; +pub const EDESTADDRREQ: ::c_int = 109; +pub const EHOSTUNREACH: ::c_int = 110; +pub const EIDRM: ::c_int = 111; +pub const EINPROGRESS: ::c_int = 112; +pub const EISCONN: ::c_int = 113; +pub const ELOOP: ::c_int = 114; +pub const EMSGSIZE: ::c_int = 115; +pub const ENETDOWN: ::c_int = 116; +pub const ENETRESET: ::c_int = 117; +pub const ENETUNREACH: ::c_int = 118; +pub const ENOBUFS: ::c_int = 119; +pub const ENODATA: ::c_int = 120; +pub const ENOLINK: ::c_int = 121; +pub const ENOMSG: ::c_int = 122; +pub const ENOPROTOOPT: ::c_int = 123; +pub const ENOSR: ::c_int = 124; +pub const ENOSTR: ::c_int = 125; +pub const ENOTCONN: ::c_int = 126; +pub const ENOTRECOVERABLE: ::c_int = 127; +pub const ENOTSOCK: ::c_int = 128; +pub const ENOTSUP: ::c_int = 129; +pub const EOPNOTSUPP: ::c_int = 130; +pub const EOVERFLOW: ::c_int = 132; +pub const EOWNERDEAD: ::c_int = 133; +pub const EPROTO: ::c_int = 134; +pub const EPROTONOSUPPORT: ::c_int = 135; +pub const EPROTOTYPE: ::c_int = 136; +pub const ETIME: ::c_int = 137; +pub const ETIMEDOUT: ::c_int = 138; +pub const ETXTBSY: ::c_int = 139; +pub const EWOULDBLOCK: ::c_int = 140; + +// signal codes +pub const SIGINT: ::c_int = 2; +pub const SIGILL: ::c_int = 4; +pub const SIGFPE: ::c_int = 8; +pub const SIGSEGV: ::c_int = 11; +pub const SIGTERM: ::c_int = 15; +pub const SIGABRT: ::c_int = 22; +pub const NSIG: ::c_int = 23; + +pub const SIG_ERR: ::c_int = -1; +pub const SIG_DFL: ::sighandler_t = 0; +pub const SIG_IGN: ::sighandler_t = 1; +pub const SIG_GET: ::sighandler_t = 2; +pub const SIG_SGE: ::sighandler_t = 3; +pub const SIG_ACK: ::sighandler_t = 4; + +// inline comment below appeases style checker +#[cfg(all(target_env = "msvc", feature = "rustc-dep-of-std"))] // " if " +#[link(name = "msvcrt", cfg(not(target_feature = "crt-static")))] +#[link(name = "libcmt", cfg(target_feature = "crt-static"))] +extern "C" {} + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum FILE {} +impl ::Copy for FILE {} +impl ::Clone for FILE { + fn clone(&self) -> FILE { + *self + } +} +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum fpos_t {} // FIXME: fill this out with a struct +impl ::Copy for fpos_t {} +impl ::Clone for fpos_t { + fn clone(&self) -> fpos_t { + *self + } +} + +// Special handling for all print and scan type functions because of https://github.com/rust-lang/libc/issues/2860 +cfg_if! { + if #[cfg(not(feature = "rustc-dep-of-std"))] { + #[cfg_attr( + all(windows, target_env = "msvc"), + link(name = "legacy_stdio_definitions") + )] + extern "C" { + pub fn printf(format: *const c_char, ...) -> ::c_int; + pub fn fprintf(stream: *mut FILE, format: *const c_char, ...) -> ::c_int; + } + } +} + +extern "C" { + pub fn isalnum(c: c_int) -> c_int; + pub fn isalpha(c: c_int) -> c_int; + pub fn iscntrl(c: c_int) -> c_int; + pub fn isdigit(c: c_int) -> c_int; + pub fn isgraph(c: c_int) -> c_int; + pub fn islower(c: c_int) -> c_int; + pub fn isprint(c: c_int) -> c_int; + pub fn ispunct(c: c_int) -> c_int; + pub fn isspace(c: c_int) -> c_int; + pub fn isupper(c: c_int) -> c_int; + pub fn isxdigit(c: c_int) -> c_int; + pub fn isblank(c: c_int) -> c_int; + pub fn tolower(c: c_int) -> c_int; + pub fn toupper(c: c_int) -> c_int; + pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; + pub fn freopen(filename: *const c_char, mode: *const c_char, file: *mut FILE) -> *mut FILE; + pub fn fflush(file: *mut FILE) -> c_int; + pub fn fclose(file: *mut FILE) -> c_int; + pub fn remove(filename: *const c_char) -> c_int; + pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; + pub fn tmpfile() -> *mut FILE; + pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int; + pub fn setbuf(stream: *mut FILE, buf: *mut c_char); + pub fn getchar() -> c_int; + pub fn putchar(c: c_int) -> c_int; + pub fn fgetc(stream: *mut FILE) -> c_int; + pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; + pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; + pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; + pub fn puts(s: *const c_char) -> c_int; + pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; + pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; + pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; + pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; + pub fn ftell(stream: *mut FILE) -> c_long; + pub fn rewind(stream: *mut FILE); + pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int; + pub fn fsetpos(stream: *mut FILE, ptr: *const fpos_t) -> c_int; + pub fn feof(stream: *mut FILE) -> c_int; + pub fn ferror(stream: *mut FILE) -> c_int; + pub fn perror(s: *const c_char); + pub fn atof(s: *const c_char) -> c_double; + pub fn atoi(s: *const c_char) -> c_int; + pub fn atol(s: *const c_char) -> c_long; + pub fn atoll(s: *const c_char) -> c_longlong; + pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; + pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float; + pub fn strtol(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_long; + pub fn strtoll(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_longlong; + pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulong; + pub fn strtoull(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulonglong; + pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; + pub fn malloc(size: size_t) -> *mut c_void; + pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; + pub fn free(p: *mut c_void); + pub fn abort() -> !; + pub fn exit(status: c_int) -> !; + pub fn _exit(status: c_int) -> !; + pub fn atexit(cb: extern "C" fn()) -> c_int; + pub fn system(s: *const c_char) -> c_int; + pub fn getenv(s: *const c_char) -> *mut c_char; + + pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; + pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; + pub fn strncat(s: *mut c_char, ct: *const c_char, n: size_t) -> *mut c_char; + pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; + pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; + pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; + pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char; + pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char; + pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t; + pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t; + pub fn strdup(cs: *const c_char) -> *mut c_char; + pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn strlen(cs: *const c_char) -> size_t; + pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; + pub fn strerror(n: c_int) -> *mut c_char; + pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; + pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; + pub fn wcslen(buf: *const wchar_t) -> size_t; + pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; + + pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; + pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; + + pub fn abs(i: c_int) -> c_int; + pub fn labs(i: c_long) -> c_long; + pub fn rand() -> c_int; + pub fn srand(seed: c_uint); + + pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t; + pub fn raise(signum: c_int) -> c_int; + + #[link_name = "_gmtime64_s"] + pub fn gmtime_s(destTime: *mut tm, srcTime: *const time_t) -> ::c_int; + #[link_name = "_localtime64_s"] + pub fn localtime_s(tmDest: *mut tm, sourceTime: *const time_t) -> ::errno_t; + #[link_name = "_time64"] + pub fn time(destTime: *mut time_t) -> time_t; + #[link_name = "_chmod"] + pub fn chmod(path: *const c_char, mode: ::c_int) -> ::c_int; + #[link_name = "_wchmod"] + pub fn wchmod(path: *const wchar_t, mode: ::c_int) -> ::c_int; + #[link_name = "_mkdir"] + pub fn mkdir(path: *const c_char) -> ::c_int; + #[link_name = "_wrmdir"] + pub fn wrmdir(path: *const wchar_t) -> ::c_int; + #[link_name = "_fstat64"] + pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; + #[link_name = "_stat64"] + pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; + #[link_name = "_wstat64"] + pub fn wstat(path: *const wchar_t, buf: *mut stat) -> ::c_int; + #[link_name = "_wutime64"] + pub fn wutime(file: *const wchar_t, buf: *mut utimbuf) -> ::c_int; + #[link_name = "_popen"] + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + #[link_name = "_pclose"] + pub fn pclose(stream: *mut ::FILE) -> ::c_int; + #[link_name = "_fdopen"] + pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; + #[link_name = "_fileno"] + pub fn fileno(stream: *mut ::FILE) -> ::c_int; + #[link_name = "_open"] + pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; + #[link_name = "_wopen"] + pub fn wopen(path: *const wchar_t, oflag: ::c_int, ...) -> ::c_int; + #[link_name = "_creat"] + pub fn creat(path: *const c_char, mode: ::c_int) -> ::c_int; + #[link_name = "_access"] + pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; + #[link_name = "_chdir"] + pub fn chdir(dir: *const c_char) -> ::c_int; + #[link_name = "_close"] + pub fn close(fd: ::c_int) -> ::c_int; + #[link_name = "_dup"] + pub fn dup(fd: ::c_int) -> ::c_int; + #[link_name = "_dup2"] + pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; + #[link_name = "_execl"] + pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> intptr_t; + #[link_name = "_wexecl"] + pub fn wexecl(path: *const wchar_t, arg0: *const wchar_t, ...) -> intptr_t; + #[link_name = "_execle"] + pub fn execle(path: *const c_char, arg0: *const c_char, ...) -> intptr_t; + #[link_name = "_wexecle"] + pub fn wexecle(path: *const wchar_t, arg0: *const wchar_t, ...) -> intptr_t; + #[link_name = "_execlp"] + pub fn execlp(path: *const c_char, arg0: *const c_char, ...) -> intptr_t; + #[link_name = "_wexeclp"] + pub fn wexeclp(path: *const wchar_t, arg0: *const wchar_t, ...) -> intptr_t; + #[link_name = "_execlpe"] + pub fn execlpe(path: *const c_char, arg0: *const c_char, ...) -> intptr_t; + #[link_name = "_wexeclpe"] + pub fn wexeclpe(path: *const wchar_t, arg0: *const wchar_t, ...) -> intptr_t; + #[link_name = "_execv"] + pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::intptr_t; + #[link_name = "_execve"] + pub fn execve( + prog: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> ::c_int; + #[link_name = "_execvp"] + pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; + #[link_name = "_execvpe"] + pub fn execvpe( + c: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> ::c_int; + #[link_name = "_wexecv"] + pub fn wexecv(prog: *const wchar_t, argv: *const *const wchar_t) -> ::intptr_t; + #[link_name = "_wexecve"] + pub fn wexecve( + prog: *const wchar_t, + argv: *const *const wchar_t, + envp: *const *const wchar_t, + ) -> ::intptr_t; + #[link_name = "_wexecvp"] + pub fn wexecvp(c: *const wchar_t, argv: *const *const wchar_t) -> ::intptr_t; + #[link_name = "_wexecvpe"] + pub fn wexecvpe( + c: *const wchar_t, + argv: *const *const wchar_t, + envp: *const *const wchar_t, + ) -> ::intptr_t; + #[link_name = "_getcwd"] + pub fn getcwd(buf: *mut c_char, size: ::c_int) -> *mut c_char; + #[link_name = "_getpid"] + pub fn getpid() -> ::c_int; + #[link_name = "_isatty"] + pub fn isatty(fd: ::c_int) -> ::c_int; + #[link_name = "_lseek"] + pub fn lseek(fd: ::c_int, offset: c_long, origin: ::c_int) -> c_long; + #[link_name = "_lseeki64"] + pub fn lseek64(fd: ::c_int, offset: c_longlong, origin: ::c_int) -> c_longlong; + #[link_name = "_pipe"] + pub fn pipe(fds: *mut ::c_int, psize: ::c_uint, textmode: ::c_int) -> ::c_int; + #[link_name = "_read"] + pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::c_uint) -> ::c_int; + #[link_name = "_rmdir"] + pub fn rmdir(path: *const c_char) -> ::c_int; + #[link_name = "_unlink"] + pub fn unlink(c: *const c_char) -> ::c_int; + #[link_name = "_write"] + pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::c_uint) -> ::c_int; + #[link_name = "_commit"] + pub fn commit(fd: ::c_int) -> ::c_int; + #[link_name = "_get_osfhandle"] + pub fn get_osfhandle(fd: ::c_int) -> ::intptr_t; + #[link_name = "_open_osfhandle"] + pub fn open_osfhandle(osfhandle: ::intptr_t, flags: ::c_int) -> ::c_int; + pub fn setlocale(category: ::c_int, locale: *const c_char) -> *mut c_char; + #[link_name = "_wsetlocale"] + pub fn wsetlocale(category: ::c_int, locale: *const wchar_t) -> *mut wchar_t; + #[link_name = "_aligned_malloc"] + pub fn aligned_malloc(size: size_t, alignment: size_t) -> *mut c_void; + #[link_name = "_aligned_free"] + pub fn aligned_free(ptr: *mut ::c_void); + #[link_name = "_putenv"] + pub fn putenv(envstring: *const ::c_char) -> ::c_int; + #[link_name = "_wputenv"] + pub fn wputenv(envstring: *const ::wchar_t) -> ::c_int; + #[link_name = "_putenv_s"] + pub fn putenv_s(envstring: *const ::c_char, value_string: *const ::c_char) -> ::errno_t; + #[link_name = "_wputenv_s"] + pub fn wputenv_s(envstring: *const ::wchar_t, value_string: *const ::wchar_t) -> ::errno_t; +} + +extern "system" { + pub fn listen(s: SOCKET, backlog: ::c_int) -> ::c_int; + pub fn accept(s: SOCKET, addr: *mut ::sockaddr, addrlen: *mut ::c_int) -> SOCKET; + pub fn bind(s: SOCKET, name: *const ::sockaddr, namelen: ::c_int) -> ::c_int; + pub fn connect(s: SOCKET, name: *const ::sockaddr, namelen: ::c_int) -> ::c_int; + pub fn getpeername(s: SOCKET, name: *mut ::sockaddr, nameln: *mut ::c_int) -> ::c_int; + pub fn getsockname(s: SOCKET, name: *mut ::sockaddr, nameln: *mut ::c_int) -> ::c_int; + pub fn getsockopt( + s: SOCKET, + level: ::c_int, + optname: ::c_int, + optval: *mut ::c_char, + optlen: *mut ::c_int, + ) -> ::c_int; + pub fn recvfrom( + s: SOCKET, + buf: *mut ::c_char, + len: ::c_int, + flags: ::c_int, + from: *mut ::sockaddr, + fromlen: *mut ::c_int, + ) -> ::c_int; + pub fn sendto( + s: SOCKET, + buf: *const ::c_char, + len: ::c_int, + flags: ::c_int, + to: *const ::sockaddr, + tolen: ::c_int, + ) -> ::c_int; + pub fn setsockopt( + s: SOCKET, + level: ::c_int, + optname: ::c_int, + optval: *const ::c_char, + optlen: ::c_int, + ) -> ::c_int; + pub fn socket(af: ::c_int, socket_type: ::c_int, protocol: ::c_int) -> SOCKET; +} + +cfg_if! { + if #[cfg(libc_core_cvoid)] { + pub use ::ffi::c_void; + } else { + // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help + // enable more optimization opportunities around it recognizing things + // like malloc/free. + #[repr(u8)] + #[allow(missing_copy_implementations)] + #[allow(missing_debug_implementations)] + pub enum c_void { + // Two dummy variants so the #[repr] attribute can be used. + #[doc(hidden)] + __variant1, + #[doc(hidden)] + __variant2, + } + } +} + +cfg_if! { + if #[cfg(all(target_env = "gnu"))] { + mod gnu; + pub use self::gnu::*; + } else if #[cfg(all(target_env = "msvc"))] { + mod msvc; + pub use self::msvc::*; + } else { + // Unknown target_env + } +} diff --git a/src/rust/vendor/libc-0.2.146/src/windows/msvc/mod.rs b/src/rust/vendor/libc-0.2.146/src/windows/msvc/mod.rs new file mode 100644 index 000000000..f5a1d95f3 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/windows/msvc/mod.rs @@ -0,0 +1,20 @@ +pub const L_tmpnam: ::c_uint = 260; +pub const TMP_MAX: ::c_uint = 0x7fff_ffff; + +// POSIX Supplement (from errno.h) +// This particular error code is only currently available in msvc toolchain +pub const EOTHER: ::c_int = 131; + +extern "C" { + #[link_name = "_stricmp"] + pub fn stricmp(s1: *const ::c_char, s2: *const ::c_char) -> ::c_int; + #[link_name = "_strnicmp"] + pub fn strnicmp(s1: *const ::c_char, s2: *const ::c_char, n: ::size_t) -> ::c_int; + #[link_name = "_memccpy"] + pub fn memccpy( + dest: *mut ::c_void, + src: *const ::c_void, + c: ::c_int, + count: ::size_t, + ) -> *mut ::c_void; +} diff --git a/src/rust/vendor/libc-0.2.146/src/xous.rs b/src/rust/vendor/libc-0.2.146/src/xous.rs new file mode 100644 index 000000000..e6c0c2573 --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/src/xous.rs @@ -0,0 +1,49 @@ +//! Xous C type definitions + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_int = i32; +pub type c_uint = u32; +pub type c_float = f32; +pub type c_double = f64; +pub type c_longlong = i64; +pub type c_ulonglong = u64; +pub type intmax_t = i64; +pub type uintmax_t = u64; + +pub type size_t = usize; +pub type ptrdiff_t = isize; +pub type intptr_t = isize; +pub type uintptr_t = usize; +pub type ssize_t = isize; + +pub type off_t = i64; +pub type c_char = u8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type wchar_t = u32; + +pub const INT_MIN: c_int = -2147483648; +pub const INT_MAX: c_int = 2147483647; + +cfg_if! { + if #[cfg(libc_core_cvoid)] { + pub use ::ffi::c_void; + } else { + // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help + // enable more optimization opportunities around it recognizing things + // like malloc/free. + #[repr(u8)] + #[allow(missing_copy_implementations)] + #[allow(missing_debug_implementations)] + pub enum c_void { + // Two dummy variants so the #[repr] attribute can be used. + #[doc(hidden)] + __variant1, + #[doc(hidden)] + __variant2, + } + } +} diff --git a/src/rust/vendor/libc-0.2.146/tests/const_fn.rs b/src/rust/vendor/libc-0.2.146/tests/const_fn.rs new file mode 100644 index 000000000..0e7e1864b --- /dev/null +++ b/src/rust/vendor/libc-0.2.146/tests/const_fn.rs @@ -0,0 +1,5 @@ +#![cfg(libc_const_extern_fn)] // If this does not hold, the file is empty + +#[cfg(target_os = "linux")] +const _FOO: libc::c_uint = unsafe { libc::CMSG_SPACE(1) }; +//^ if CMSG_SPACE is not const, this will fail to compile diff --git a/src/rust/vendor/libc/.cargo-checksum.json b/src/rust/vendor/libc/.cargo-checksum.json index 0b6b1a56e..e0d99fd3a 100644 --- a/src/rust/vendor/libc/.cargo-checksum.json +++ b/src/rust/vendor/libc/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"CONTRIBUTING.md":"bdc90b52cf803faac96e594069a86dd8ea150d5ba7fb3e6cadfc08dac4c7b0ce","Cargo.toml":"1923cc2c3bb1b4849872da9eab12ff3e60ad065e74d41148dbf7d1e5812c0bd9","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"ecc47e284f8d007fc048666d5108dd41cdc440ab9eedfe8c47d1634613522787","build.rs":"5bd78d7e4e79b183fb1dab92cd640a611330131d54c479c69adbe87cbdc95ae3","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"7f986e5f5e68d25ef04d386fd2f640e8be8f15427a8d4a458ea01d26b8dca0ca","src/fuchsia/aarch64.rs":"893fcec48142d273063ffd814dca33fbec92205fd39ada97075f85201d803996","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"30f4dc83ef120300d61896696512436377c5f36f1431d98ab7e01e498c0c47d5","src/fuchsia/no_align.rs":"303f3f1b255e0088b5715094353cf00476131d8e94e6aebb3f469557771c8b8a","src/fuchsia/riscv64.rs":"617cd75e79e0e20f664db764a4dc2a396d9fd11a4d95371acd91ed4811293b11","src/fuchsia/x86_64.rs":"93a3632b5cf67d2a6bcb7dc0a558605252d5fe689e0f38d8aa2ec5852255ac87","src/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/hermit/mod.rs":"d3bfce41e4463d4be8020a2d063c9bfa8b665f45f1cc6cbf3163f5d01e7cb21f","src/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/lib.rs":"24111461547739f3646f95bcb66c43f2ae679a727ff5938299434c522c02e458","src/macros.rs":"b457eb028b8e8ab3c24bb7292b874ad4e491edbb83594f6a3da024df5348c088","src/psp.rs":"dd31aabd46171d474ec5828372e28588935120e7355c90c105360d8fa9264c1c","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/solid/aarch64.rs":"a726e47f324adf73a4a0b67a2c183408d0cad105ae66acf36db37a42ab7f8707","src/solid/arm.rs":"e39a4f74ebbef3b97b8c95758ad741123d84ed3eb48d9cf4f1f4872097fc27fe","src/solid/mod.rs":"5f4151dca5132e4b4e4c23ab9737e12856dddbdc0ca3f7dbc004328ef3c8acde","src/switch.rs":"9da3dd39b3de45a7928789926e8572d00e1e11a39e6f7289a1349aadce90edba","src/unix/aix/mod.rs":"54229b5e774669c16912112e8b50fa938db76f534971222a11723a05195a0948","src/unix/aix/powerpc64.rs":"cf374d81139d45f9d77c6a764f640bfbf7e0a5903689652c8296f8e10d55169b","src/unix/align.rs":"2cdc7c826ef7ae61f5171c5ae8c445a743d86f1a7f2d9d7e4ceeec56d6874f65","src/unix/bsd/apple/b32/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b32/mod.rs":"2546ad3eb6aecb95f916648bc63264117c92b4b4859532b34cb011e4c75a5a72","src/unix/bsd/apple/b64/aarch64/align.rs":"e8eb38d064b5fefec6f37d42873820a0483e7c758ed336cc59a7155455ca89c9","src/unix/bsd/apple/b64/aarch64/mod.rs":"44c217a4f263afe7a97435de9323d20a96c37836f899ca0925306d4b7e073c27","src/unix/bsd/apple/b64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/mod.rs":"f5e278a1af7fb358891d1c9be4eb7e815aaca0c5cb738d0c3604ba2208a856f7","src/unix/bsd/apple/b64/x86_64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/x86_64/mod.rs":"8c87c5855038aae5d433c8f5eb3b29b0a175879a0245342b3bfd83bdf4cfd936","src/unix/bsd/apple/long_array.rs":"3cf1f19b812e6d093c819dc65ce55b13491963e0780eda0d0bd1577603e81948","src/unix/bsd/apple/mod.rs":"a6662488273ffff2a097403281db6b5f4cd1a325f7a1582264bb8da0b553a822","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"f2e78625fe1eb14f43e730a3987eba888cb8ac04c23008e7c2d2f7c72258b9e6","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"6c8e216385f53a4bf5f171749b57602fc34a4e4b160a44ca31c058cb0c8a2126","src/unix/bsd/freebsdlike/freebsd/arm.rs":"59d6a670eea562fb87686e243e0a84603d29a2028a3d4b3f99ccc01bd04d2f47","src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs":"9808d152c1196aa647f1b0f0cf84dac8c930da7d7f897a44975545e3d9d17681","src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs":"e243ae0e89623d4fa9f85afe14369cc5fd5f2028ea715773dbec722ba80dac1f","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"bef9fae288a4f29e941ea369be1cd20b170040e60665a4d49a4a9e79009b72d8","src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs":"3c514e037694ce22724abb3c9c4687defda7f0e3456b615ca73593e860e38b16","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs":"318abe48bfdd1c74ecd6afbd6c9329c5c72ce4f7d420edd6be2fc12b223ae32f","src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs":"e7b5863e222d6cc416b6b0fbe71690fad909e899b4c4ae810bbca117e4fcb650","src/unix/bsd/freebsdlike/freebsd/mod.rs":"4c3cd57aaf7fbce072e28e0d2d285b5fda9702e924561d2fd01e49e6ee186a98","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","src/unix/bsd/freebsdlike/freebsd/riscv64.rs":"fa4bed4c58cad24ba3395941c7fa6b11e089551a04714f9561078e400f5b2b62","src/unix/bsd/freebsdlike/freebsd/x86.rs":"6766e2ce85e187b306cd3b0b8d7e15b8f4042c5cff81d89b3af69ecc99c70ab0","src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs":"0e1f69a88fca1c32874b1daf5db3d446fefbe518dca497f096cc9168c39dde70","src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs":"51e4dd0c8ae247bb652feda5adad9333ea3bb30c750c3a3935e0b0e47d7803eb","src/unix/bsd/freebsdlike/mod.rs":"0eacafac87fb3a32ef1b85980fece2792e70eba9856af18a7407cc35be68ea57","src/unix/bsd/mod.rs":"dad51a24a524e92bfe9de3ac3b7d394d86058b9b8a1ccd4efa9bbb5c78e7fa1a","src/unix/bsd/netbsdlike/mod.rs":"0a66f7de43710e35a6a546e6c39066aa8b91a6efadb71db88738b0a577fd5537","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"65dcb58d11e8d8028401a9d07ca3eb4cb4f053e04249cc877353449d84ccc4cb","src/unix/bsd/netbsdlike/netbsd/arm.rs":"58cdbb70b0d6f536551f0f3bb3725d2d75c4690db12c26c034e7d6ec4a924452","src/unix/bsd/netbsdlike/netbsd/mod.rs":"90dd33ef20dc3be8aef5bd152a6a06e7ab34f9527b3978487b593aaa16a907bd","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"ee7ff5d89d0ed22f531237b5059aa669df93a3b5c489fa641465ace8d405bf41","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"9489f4b3e4566f43bb12dfb92238960613dac7f6a45cc13068a8d152b902d7d9","src/unix/bsd/netbsdlike/netbsd/x86.rs":"20692320e36bfe028d1a34d16fe12ca77aa909cb02bda167376f98f1a09aefe7","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"1afe5ef46b14397cdd68664b5b232e4f5b035b6db1d4cf411c899d51ebca9f30","src/unix/bsd/netbsdlike/openbsd/aarch64.rs":"dd91931d373b7ecaf6e2de25adadee10d16fa9b12c2cbacdff3eb291e1ba36af","src/unix/bsd/netbsdlike/openbsd/arm.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/mips64.rs":"8532a189ae10c7d668d9d4065da8b05d124e09bd39442c9f74a7f231c43eca48","src/unix/bsd/netbsdlike/openbsd/mod.rs":"892e0b409ced2dfd81d98cbe9630eb83979c1668d323b304a91be13aa711d5db","src/unix/bsd/netbsdlike/openbsd/powerpc.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/powerpc64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/riscv64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/sparc64.rs":"d04fd287afbaa2c5df9d48c94e8374a532a3ba491b424ddf018270c7312f4085","src/unix/bsd/netbsdlike/openbsd/x86.rs":"6f7f5c4fde2a2259eb547890cbd86570cea04ef85347d7569e94e679448bec87","src/unix/bsd/netbsdlike/openbsd/x86_64.rs":"d31db31630289c85af3339dbe357998a21ca584cbae31607448fe2cf7675a4e1","src/unix/haiku/b32.rs":"a2efdbf7158a6da341e1db9176b0ab193ba88b449616239ed95dced11f54d87b","src/unix/haiku/b64.rs":"ff8115367d3d7d354f792d6176dfaaa26353f57056197b563bf4681f91ff7985","src/unix/haiku/mod.rs":"d7ec086b73db4f72799179627aa6330a513dcf786b06e19c75ff884d1235948e","src/unix/haiku/native.rs":"dbfcbf4954a79d1df2ff58e0590bbcb8c57dfc7a32392aa73ee4726b66bd6cc8","src/unix/haiku/x86_64.rs":"3ec3aeeb7ed208b8916f3e32d42bfd085ff5e16936a1a35d9a52789f043b7237","src/unix/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/unix/hermit/mod.rs":"a1494a0bddf301cceb0d9b8529a84b5882fe855ceae77a1c4e8d6034e705e26c","src/unix/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/unix/linux_like/android/b32/arm.rs":"ce582de7e983a33d3bfad13075c53aac9016cee35f06ad8653ee9072c3ec2564","src/unix/linux_like/android/b32/mod.rs":"7c173e0375119bf06a3081652faede95e5bcd6858e7576b7533d037978737c8f","src/unix/linux_like/android/b32/x86/align.rs":"812914e4241df82e32b12375ca3374615dc3a4bdd4cf31f0423c5815320c0dab","src/unix/linux_like/android/b32/x86/mod.rs":"e6d107efbcd37b5b85dfa18f683300cbf768ffa0237997a9fa52b184a53323ac","src/unix/linux_like/android/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/android/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/android/b64/aarch64/mod.rs":"171f8c37a2d2e45065bd3547dfcec70b02aa3da34cd99d259d150c753f620846","src/unix/linux_like/android/b64/mod.rs":"71e4fcbe952bfa4a5f9022f3972e906917b38f729b9d8ef57cd5d179104894ac","src/unix/linux_like/android/b64/riscv64/align.rs":"0bf138f84e5327d8339bcd4adf071a6832b516445e597552c82bbd881095e3a8","src/unix/linux_like/android/b64/riscv64/mod.rs":"19d4bf2237c47127eba9144e0b82e995bc079315e719179a91813b0ae7b0e49d","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"4ec2de11a9b65c4325b7b991f0b99a414975e0e61ba8668caca5d921e9b314d1","src/unix/linux_like/android/mod.rs":"0fd148ab2c1d08817b81345b579492b54ac4376647ade089ce1d7cfea6b365fd","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/mod.rs":"712c52856ee323b8057b9452e4ab484a0e652581a530b67c3db25e819919d718","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"87401c80ff504def5cd4309a53a63fdd481642980b9daaa7fee0164a807c2c61","src/unix/linux_like/linux/arch/generic/mod.rs":"778742250aa456cb94efe67a4f8d0213827d90ab74eb5074f9afb9a30e6ea71c","src/unix/linux_like/linux/arch/mips/mod.rs":"60ace1dd76aa88d6b3b5e52fef4bec7881d452780dfff635474067b512e03df1","src/unix/linux_like/linux/arch/mod.rs":"466a29622e47c6c7f1500682b2eb17f5566dd81b322cd6348f0fdd355cec593a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"bef6b7af9e5e2b4e5545c9c7e3e23a8b743277a0ed95853e7eddc38e44299f02","src/unix/linux_like/linux/arch/sparc/mod.rs":"91593ec0440f1dd8f8e612028f432c44c14089286e2aca50e10511ab942db8c3","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"6ec0eb3ee93f7ae99fd714b4deabfb5e97fbcefd8c26f5a45fb8e7150899cdeb","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"9ab3e97b579a9122690cd01026e14528862860346b700aafbb755a7e04054f7f","src/unix/linux_like/linux/gnu/b32/m68k/align.rs":"8faa92f77a9232c035418d45331774e64a9a841d99c91791570a203bf2b45bcb","src/unix/linux_like/linux/gnu/b32/m68k/mod.rs":"6aab7f1b864e9691d14aa7d389f717c4077b8eed72a7f11e3b8c7fef245e4046","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"6b9a5dac6f937ddc1453e808e3c43502c87143332df9e43ac64fb8b1eda6c116","src/unix/linux_like/linux/gnu/b32/mod.rs":"caade9dc8b7179711102da342819bdf330c42c796b4587d0ed419550dab2e9ad","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"5c5d90326b54b57b98eff4745fe7a3fb02f053b2dc782241a73e807b491936a3","src/unix/linux_like/linux/gnu/b32/riscv32/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"491a9a97cf712985b75d3ad714691ef60898d88c78bc386a6917de0a6774cc26","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"80894eece66e9348f45d1b07ad37c757ea694bbd10ed49d3f920b34e9f51a9a3","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"c703cc5e9de2dc31d9e5831bfb6f354d6e3518b2ae02263f68a9a70f1c0167e2","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"ea39d5fd8ca5a71314127d1e1f542bca34ac566eac9a95662076d91ea4bee548","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"bf4611b737813deef6787babf6c01698605f3b75482269b8546318667bc68e29","src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"11a950697fdda0258c6e37c6b13993348c8de4134105ed4faa79358e53175072","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"d7be998105fc2f6248b7fdfcedb5a0519122d28625fcfd5dccf72617fb30c45e","src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs":"060aa33cc737966c691aab8511c5c5729e551458ce18d0e284e0d45f39beeb60","src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs":"18edada8aa5d4127d9aa1bd81c62b5a4209f1efd8b2b2631e801c9e855ab1480","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"628c410b9aaec3c8f43838a28616b577a1d6de60a9799b09bb884d80281f96eb","src/unix/linux_like/linux/gnu/b64/mod.rs":"3c6555f30a7a8852757b31a542ea73fb6a16a6e27e838397e819278ad56e57a4","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"c778a136f06c2ffeacea19fa14ce79b828f91b67a002dec5ce87289bae36234e","src/unix/linux_like/linux/gnu/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"c8f07efc5ddd5d874f1ebc329cd6907818d132ac3e30f4f2a4b04be3fb388551","src/unix/linux_like/linux/gnu/b64/s390x.rs":"a2fd9277c2dcf76f7a16a3bcca745d5a9932c765c0dc2feb31c3641be25eb0aa","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"e8047e9966a2b90063e0151a0278c54885e7b323286cf5ab55cbaf151fc772d3","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"62e822478356db4a73b6bbd1b36d825b893939ab4b308ec11b0578bcc4b49769","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"891e595d33714b9883b92f0554d1d361fba2b6c3f6cac09a288252f44c6ec667","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"38f74ce15d9662ce4818815a2b87be1618d5e45f190f7e4db84ff3285b4421fb","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"b20218a11364a6dec87f96d6c0d8b19e660697ab09ad5ee0e9b3a9dafedaaebb","src/unix/linux_like/linux/gnu/mod.rs":"a105e27dac14401935ad2acb60618c0d0c078f65d5bc06c92940d6ab93659b96","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"657a86280094d5ce31e1f85d116c95637cb994baeb724b78dcbd7684b9be1b96","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"f5b217a93f99c2852f7fd1459f529798372fa7df84ee0cfd3d8cdd5b2021b8cf","src/unix/linux_like/linux/musl/b32/hexagon.rs":"226a8b64ce9c75abbbee6d2dceb0b44f7b6c750c4102ebd4d015194afee6666e","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"16f614dd59695497a01b542deacd1669335678bdd0b14d16dde482fb5c4e02f4","src/unix/linux_like/linux/musl/b32/mod.rs":"31677597fd9544c4b1ec1477628288f6273fabbc06e38f33da862ad55f019ce1","src/unix/linux_like/linux/musl/b32/powerpc.rs":"69e3ab4471f876055215a7fccabe514e69299ecfe2fa95d989e4d799e03f43e9","src/unix/linux_like/linux/musl/b32/riscv32/align.rs":"efd2accf33b87de7c7547903359a5da896edc33cd6c719552c7474b60d4a5d48","src/unix/linux_like/linux/musl/b32/riscv32/mod.rs":"7b067c7989a80e35daa9987af799d97dd1fb3df71ef82285137f51fbad2354d9","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"de632ac323bd2bb4f83d4826d6eb7e29d4b0e6293aa0c4cb9c99ef0fcabc71b7","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"6ba32725d24d7d8e6aa111f3b57aafa318f83b606abe96561329151829821133","src/unix/linux_like/linux/musl/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"31e75179cbb4e26425b3f5b052e358f593153da662884655e60801d852e55dc2","src/unix/linux_like/linux/musl/b64/mips64.rs":"9a5d29f666332bb056d0e2951e9de989aa1dc016075f009db3f2f628e0cdda8c","src/unix/linux_like/linux/musl/b64/mod.rs":"884243eb5af7df963d858d5baf47e622b45f04e0ae701728b134e986191b614b","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"e77f4cf5d65320023043e4354725397f6b079c1b7b6b3cef2c3293350b46b303","src/unix/linux_like/linux/musl/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/musl/b64/riscv64/mod.rs":"a80b1813148dec8bc396c02638978c0b4e5e040edafd56d98f8683fe2ae51ab5","src/unix/linux_like/linux/musl/b64/s390x.rs":"80a92e54e47016d051c7bd55bee9580cbedd298164199d71a67d49167e744432","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"77309276ad7a42cbe59ca381f23590b7a143aded05555b34a5b307b808cbca6e","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"032863c74d3ca73cb75483218f9bd774ae1ae7d3646d2ffb21e4cc7d4b5e0e3d","src/unix/linux_like/linux/musl/lfs64.rs":"3e4fb381f3a0756520bde0f1692d4fa45e4ae8133bf7d7c64b0e3fdd512f235f","src/unix/linux_like/linux/musl/mod.rs":"f79e4d7bef14f422c6a77f1573ff503a82305bfa5ac3e4c6f571c09212b75620","src/unix/linux_like/linux/no_align.rs":"1a754a4af299894a79835aa092d8322d301179e2b20609defd6bb4bc880e6b4a","src/unix/linux_like/linux/non_exhaustive.rs":"181a05bf94fdb911db83ce793b993bd6548a4115b306a7ef3c10f745a8fea3e9","src/unix/linux_like/linux/uclibc/align.rs":"9ed16138d8e439bd90930845a65eafa7ebd67366e6bf633936d44014f6e4c959","src/unix/linux_like/linux/uclibc/arm/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/arm/mod.rs":"50288ff9e411ab0966da24838f2c2a5618021bc19c422a04f577b2979ef4081e","src/unix/linux_like/linux/uclibc/arm/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips32/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs":"d0c4434e2bf813372c418a8f516c706cdccc9f7be2f0921b2207b0afdb66fe81","src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips64/align.rs":"a7bdcb18a37a2d91e64d5fad83ea3edc78f5412adb28f77ab077dbb26dd08b2d","src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs":"3f38ee6a4690b9d7594be20d216467a34d955f7653c2c8ce1e6147daeb53f1e0","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"a048fce1c2d9b1ad57305642e8ad05ca0f0c7e4753267a2e2d6b4fee5db3b072","src/unix/linux_like/linux/uclibc/mod.rs":"1c3d25cddcfefa2bd17bdc81550826be31a08eef235e13f825f169a5029c8bca","src/unix/linux_like/linux/uclibc/no_align.rs":"3f28637046524618adaa1012e26cb7ffe94b9396e6b518cccdc69d59f274d709","src/unix/linux_like/linux/uclibc/x86_64/l4re.rs":"024eba5753e852dbdd212427351affe7e83f9916c1864bce414d7aa2618f192e","src/unix/linux_like/linux/uclibc/x86_64/mod.rs":"196d03affbefb85716937c15904831e731eb222ee906e05e42102d639a8152ea","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"640f1fd760d2fb61f0a3af5b1e9b43a69d706588759d61d2f7ee3b83cc972854","src/unix/mod.rs":"22bebe5c76ea2ff9e7a2aa38e13d6466800d04ef799e2ba8253864a72c314444","src/unix/newlib/aarch64/mod.rs":"bac93836a9a57b2c710f32f852e92a4d11ad6759ab0fb6ad33e71d60e53278af","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"cbba6b3e957eceb496806e60de8725a23ff3fa0015983b4b4fa27b233732b526","src/unix/newlib/espidf/mod.rs":"816f235f4aa4baabba7f2606b31d0fdb03988c52194c966728de8690bf17299d","src/unix/newlib/generic.rs":"eab066d9f0a0f3eb53cc1073d01496bba0110989e1f6a59838afd19f870cd599","src/unix/newlib/horizon/mod.rs":"7cc5cc120437421db139bfa6a90b18168cd3070bdd0f5be96d40fe4c996f3ca1","src/unix/newlib/mod.rs":"9e36de3fd78e10cb6b9a59dc5ebe5a1b44a63ccb91433bb33653fb30d0c303c6","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"0202ffd57caf75b6afa2c9717750ffb96e375ac33df0ae9609a3f831be393b67","src/unix/newlib/vita/mod.rs":"68e0ce186b44e0b3031eb824710e7454dc2a9df98db98120840c3c6f4d885871","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/nto/aarch64.rs":"4709c9afdc8d583be876598e7c238499ee3e8da5bd2baa614d9c7dd414851555","src/unix/nto/mod.rs":"8b8f5d0e5251f5385849c554629e9320c0f7ddf37078a458cc8767a9214392e9","src/unix/nto/neutrino.rs":"62198d95ccc0fe7ece6f9d5c0b29fc22303ef458886efb5e09aad524eca2ab7b","src/unix/nto/x86_64.rs":"a3e18e93c2999da1cd7a6f748a4b60c07aefb73d8ea2aafec19a84cfb040bc8e","src/unix/redox/mod.rs":"73658b0d28c82a122875aa2b45c489834f4de58c378add7932bbaf3ffb2ae789","src/unix/solarish/compat.rs":"00f1ee3faec9da69204e42f025f6735dd13d894071a154425dcc43ecbdd06e7f","src/unix/solarish/illumos.rs":"cd93c2d84722bbf9933a92842a8998eb0b2afc962f50bc2546ad127b82809fa7","src/unix/solarish/mod.rs":"55ce4624745e31ad226b47fde177a46176a89da3fa5030663673a115102471f9","src/unix/solarish/solaris.rs":"41b350a89ddf01cd12a10f93640f92be53be0b0d976021cdc08da17bf3e72edf","src/unix/solarish/x86.rs":"e86e806df0caed72765040eaa2f3c883198d1aa91508540adf9b7008c77f522e","src/unix/solarish/x86_64.rs":"ec2b01f194eb8a6a27133c57681da195a949e03098f3ea1e847227a9c09ef5fc","src/unix/solarish/x86_common.rs":"ac869d9c3c95645c22460468391eb1982023c3a8e02b9e06a72e3aef3d5f1eac","src/vxworks/aarch64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/arm.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/mod.rs":"e4edcbcf43a325e738c9465507594d0c87abf3f0e2b9b046c1425f8d44bdad0f","src/vxworks/powerpc.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/powerpc64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/x86.rs":"552f007f38317620b23889cb7c49d1d115841252439060122f52f434fbc6e5ba","src/vxworks/x86_64.rs":"018d92be3ad628a129eff9f2f5dfbc0883d8b8e5f2fa917b900a7f98ed6b514a","src/wasi.rs":"09ee3b3348b212b050f6ca8ae008a28679ea44a375674307a4e7c9ca0d3ed7d5","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"a9a95e9ebc0102c334650607351d4d4dbaff0eaf7730eed1c8020d20e9bbebfd","src/windows/msvc/mod.rs":"c068271e00fca6b62bc4bf44bcf142cfc38caeded9b6c4e01d1ceef3ccf986f4","src/xous.rs":"eb0675f25ba01f73072d2b70907fb8abb1148facefe5a20756c49250f3d65fae","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"} \ No newline at end of file +{"files":{"CONTRIBUTING.md":"a93fcda0a76e1975fcfb0aa2ba00c9b1864f9ae6062704a294d81a3688898e10","Cargo.toml":"a4fd0b57f9e9365869b9c6030ffa4ca30d84c43deda5883aa5a58d8775877ff9","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"4da2919bb509f3f06163778478494f780ca6627cb79ccab5d2c828c8d88dc133","build.rs":"c26a84b1e50468025002c5e7201b9c104e7e7aec167def54f811b68c0e94a644","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"7f986e5f5e68d25ef04d386fd2f640e8be8f15427a8d4a458ea01d26b8dca0ca","src/fuchsia/aarch64.rs":"893fcec48142d273063ffd814dca33fbec92205fd39ada97075f85201d803996","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"07410f511835da540e5bdc55f7384c71cd7836fe63bbca6be547de825f823c03","src/fuchsia/no_align.rs":"303f3f1b255e0088b5715094353cf00476131d8e94e6aebb3f469557771c8b8a","src/fuchsia/riscv64.rs":"617cd75e79e0e20f664db764a4dc2a396d9fd11a4d95371acd91ed4811293b11","src/fuchsia/x86_64.rs":"93a3632b5cf67d2a6bcb7dc0a558605252d5fe689e0f38d8aa2ec5852255ac87","src/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/hermit/mod.rs":"2d04cfa0d55dc0a2e36fdc4a45819b9d3722af19bb1932778b44feb4c2f81036","src/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/lib.rs":"9d7030ba3e21064a0f3a8e79927c70d5a95a0026be61be084f3ab021e243e503","src/macros.rs":"5f985b3de7b18833f866bf832b8ffb0430f0f70aa9a468b6a2c855c1bf9d33e4","src/psp.rs":"0a7d5121a8cc2903009f586c00e4ae2d6126d24eb90531dafaba6f59823aa6b2","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/solid/aarch64.rs":"a726e47f324adf73a4a0b67a2c183408d0cad105ae66acf36db37a42ab7f8707","src/solid/arm.rs":"e39a4f74ebbef3b97b8c95758ad741123d84ed3eb48d9cf4f1f4872097fc27fe","src/solid/mod.rs":"5f4151dca5132e4b4e4c23ab9737e12856dddbdc0ca3f7dbc004328ef3c8acde","src/switch.rs":"9da3dd39b3de45a7928789926e8572d00e1e11a39e6f7289a1349aadce90edba","src/teeos/mod.rs":"eb664b3e94bcd44d8c8147b56c2187139d01bf8402ee0bb81967a5a50a3e927f","src/unix/aix/mod.rs":"a1ed0ae0164eb783297e185908f6c61c67d5ac82d4f6ab9c559c4d7e0fea51c3","src/unix/aix/powerpc64.rs":"cf374d81139d45f9d77c6a764f640bfbf7e0a5903689652c8296f8e10d55169b","src/unix/align.rs":"2cdc7c826ef7ae61f5171c5ae8c445a743d86f1a7f2d9d7e4ceeec56d6874f65","src/unix/bsd/apple/b32/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b32/mod.rs":"2546ad3eb6aecb95f916648bc63264117c92b4b4859532b34cb011e4c75a5a72","src/unix/bsd/apple/b64/aarch64/align.rs":"2eaf0f561a32bdcbf4e0477c8895d5e7bcb5cdebd5fef7b4df2ca8e38e144d94","src/unix/bsd/apple/b64/aarch64/mod.rs":"44c217a4f263afe7a97435de9323d20a96c37836f899ca0925306d4b7e073c27","src/unix/bsd/apple/b64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/mod.rs":"f5e278a1af7fb358891d1c9be4eb7e815aaca0c5cb738d0c3604ba2208a856f7","src/unix/bsd/apple/b64/x86_64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/x86_64/mod.rs":"8c87c5855038aae5d433c8f5eb3b29b0a175879a0245342b3bfd83bdf4cfd936","src/unix/bsd/apple/long_array.rs":"3cf1f19b812e6d093c819dc65ce55b13491963e0780eda0d0bd1577603e81948","src/unix/bsd/apple/mod.rs":"e8ed82a15cc3a21337894a123bf8d3cbc9b176224a6709bf6b602a266ff97651","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"2777f94909a798df1b8030fb86d02e2118d0ac3e49e9a542df54a569ca5ae2f9","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"6c8e216385f53a4bf5f171749b57602fc34a4e4b160a44ca31c058cb0c8a2126","src/unix/bsd/freebsdlike/freebsd/arm.rs":"59d6a670eea562fb87686e243e0a84603d29a2028a3d4b3f99ccc01bd04d2f47","src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs":"9808d152c1196aa647f1b0f0cf84dac8c930da7d7f897a44975545e3d9d17681","src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs":"e243ae0e89623d4fa9f85afe14369cc5fd5f2028ea715773dbec722ba80dac1f","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"bef9fae288a4f29e941ea369be1cd20b170040e60665a4d49a4a9e79009b72d8","src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs":"88be47524b28b6635ccb1e85ea511bf17337be0af7e9baa740c341ac9e83a6f7","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs":"6ddc6abf6d5ccaea0d8cccf521e8ca6457efcad3086af4155628d5d06d672346","src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs":"e7b5863e222d6cc416b6b0fbe71690fad909e899b4c4ae810bbca117e4fcb650","src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs":"93115c1a9faa43ebf58b7dee3582aed5a54291b284764e370e7f649b2e6a9565","src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs":"e7b5863e222d6cc416b6b0fbe71690fad909e899b4c4ae810bbca117e4fcb650","src/unix/bsd/freebsdlike/freebsd/mod.rs":"9fb4dd76676d9a91cf1e10e48dad2f010c03bb40ee3c1da863a98b7a2245d4cb","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","src/unix/bsd/freebsdlike/freebsd/riscv64.rs":"fa4bed4c58cad24ba3395941c7fa6b11e089551a04714f9561078e400f5b2b62","src/unix/bsd/freebsdlike/freebsd/x86.rs":"6766e2ce85e187b306cd3b0b8d7e15b8f4042c5cff81d89b3af69ecc99c70ab0","src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs":"0e1f69a88fca1c32874b1daf5db3d446fefbe518dca497f096cc9168c39dde70","src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs":"51e4dd0c8ae247bb652feda5adad9333ea3bb30c750c3a3935e0b0e47d7803eb","src/unix/bsd/freebsdlike/mod.rs":"dca41da072ffb96ba9fd96cefdf629937284a850dd933949cb7f7c5930f3ac54","src/unix/bsd/mod.rs":"1cd730c416c4a00457e5e159ef7d3631966ac5326e15c7a853e03c7d66a90307","src/unix/bsd/netbsdlike/mod.rs":"ea60540aa4edd4e43136749d5df497b1dc072b9912b6030dd1ab794a6d1c3c3c","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"057ee877db7193ba0dc10801b9a6563ac6dbdb78376d6851a84cb12b30841759","src/unix/bsd/netbsdlike/netbsd/arm.rs":"949b55e4dee1c8c511f4f061a6a57ac876a6c0eabfaf5cc20e9ab40d8f41b2e0","src/unix/bsd/netbsdlike/netbsd/mips.rs":"88be18ac43ba224c77e78e4179b6761debc5e6c30a258fac56263809c7af4fbc","src/unix/bsd/netbsdlike/netbsd/mod.rs":"b8d6f089fc8eb2cb59e45335a26c9ce871b846216c9859b553c6b91982f8de33","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"ee7ff5d89d0ed22f531237b5059aa669df93a3b5c489fa641465ace8d405bf41","src/unix/bsd/netbsdlike/netbsd/riscv64.rs":"1cbe2e5ed681cb1054b699da37daaf6c714267df7d332c90fc2a589b11579625","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"9489f4b3e4566f43bb12dfb92238960613dac7f6a45cc13068a8d152b902d7d9","src/unix/bsd/netbsdlike/netbsd/x86.rs":"20692320e36bfe028d1a34d16fe12ca77aa909cb02bda167376f98f1a09aefe7","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"532b76199d6c71ff996eade9f906c55a72c9aff489595d25a21e21878cfd740b","src/unix/bsd/netbsdlike/openbsd/aarch64.rs":"dd91931d373b7ecaf6e2de25adadee10d16fa9b12c2cbacdff3eb291e1ba36af","src/unix/bsd/netbsdlike/openbsd/arm.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/mips64.rs":"8532a189ae10c7d668d9d4065da8b05d124e09bd39442c9f74a7f231c43eca48","src/unix/bsd/netbsdlike/openbsd/mod.rs":"7b93b5b24b3c72a79b2de19b47ac2f56b29d87e9fc8f4c721a63d1e87ec83fcc","src/unix/bsd/netbsdlike/openbsd/powerpc.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/powerpc64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/riscv64.rs":"1fe3332dc705a13e6242219970f5449d6d7a73e2e6c8537ab8e421d8a6f2e3ff","src/unix/bsd/netbsdlike/openbsd/sparc64.rs":"d04fd287afbaa2c5df9d48c94e8374a532a3ba491b424ddf018270c7312f4085","src/unix/bsd/netbsdlike/openbsd/x86.rs":"6f7f5c4fde2a2259eb547890cbd86570cea04ef85347d7569e94e679448bec87","src/unix/bsd/netbsdlike/openbsd/x86_64.rs":"d31db31630289c85af3339dbe357998a21ca584cbae31607448fe2cf7675a4e1","src/unix/haiku/b32.rs":"a2efdbf7158a6da341e1db9176b0ab193ba88b449616239ed95dced11f54d87b","src/unix/haiku/b64.rs":"ff8115367d3d7d354f792d6176dfaaa26353f57056197b563bf4681f91ff7985","src/unix/haiku/mod.rs":"a97c51465d706e0dea8a7e2850d927c4ed78a7aa6603468d8b8df59ae1f2d296","src/unix/haiku/native.rs":"3bbf42c3e3e437e8b626be67c72b6adcec60646eb5dd4bf8471a603cbbb5e5a4","src/unix/haiku/x86_64.rs":"3ec3aeeb7ed208b8916f3e32d42bfd085ff5e16936a1a35d9a52789f043b7237","src/unix/hurd/align.rs":"03c79b2cd8270ebd0cf93cb475a8f1ff85b28175ea0de007ede17cad94a89b03","src/unix/hurd/b32.rs":"2ba90ed973f90366c36a6387833a3df42abfee9622d4a0352635937d4a89eaf4","src/unix/hurd/b64.rs":"d919b4aec9b3080ad24c125c57b2c8b2e483d72045f1554c429d14560355846f","src/unix/hurd/mod.rs":"6a2f0db80a3cd34b55ef82e357da4d453d5d190a2dd4501bfa5d0bb9bca0de4f","src/unix/hurd/no_align.rs":"03c79b2cd8270ebd0cf93cb475a8f1ff85b28175ea0de007ede17cad94a89b03","src/unix/linux_like/android/b32/arm.rs":"ce582de7e983a33d3bfad13075c53aac9016cee35f06ad8653ee9072c3ec2564","src/unix/linux_like/android/b32/mod.rs":"7c173e0375119bf06a3081652faede95e5bcd6858e7576b7533d037978737c8f","src/unix/linux_like/android/b32/x86/align.rs":"812914e4241df82e32b12375ca3374615dc3a4bdd4cf31f0423c5815320c0dab","src/unix/linux_like/android/b32/x86/mod.rs":"e6d107efbcd37b5b85dfa18f683300cbf768ffa0237997a9fa52b184a53323ac","src/unix/linux_like/android/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/android/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/android/b64/aarch64/mod.rs":"873af67c4a9757ead56bc797d04efcecd311ecbf0084ebdd198fb690463ef299","src/unix/linux_like/android/b64/mod.rs":"71e4fcbe952bfa4a5f9022f3972e906917b38f729b9d8ef57cd5d179104894ac","src/unix/linux_like/android/b64/riscv64/align.rs":"0bf138f84e5327d8339bcd4adf071a6832b516445e597552c82bbd881095e3a8","src/unix/linux_like/android/b64/riscv64/mod.rs":"19d4bf2237c47127eba9144e0b82e995bc079315e719179a91813b0ae7b0e49d","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"4ec2de11a9b65c4325b7b991f0b99a414975e0e61ba8668caca5d921e9b314d1","src/unix/linux_like/android/mod.rs":"d68feed235b945ff6e32a8d5c8b659b04966f42a7a77722b454dce2b54561cbd","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/lfs64.rs":"3776af30a758d765a88920ec4fde442ab89040da13d3b3625c7fbcb8a958559f","src/unix/linux_like/emscripten/mod.rs":"70d4591730a731ee32788a9d8d2de379592844ec36b7d1723514179605587713","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"bc5abcd38e2320171e0981e773c9c5fe3e0d5a66fdff049228f6a1acad80ef8b","src/unix/linux_like/linux/arch/generic/mod.rs":"3ab533349696d24505adb6bb9183d73fd5e3b17e2f90dd21478af2a47b4d6fa8","src/unix/linux_like/linux/arch/mips/mod.rs":"ca3db0e3ae852abf18f3588e40d5d64707fcc1829e08ddc5da1080e1a92c8851","src/unix/linux_like/linux/arch/mod.rs":"5bd5361f8a6ab4e18bbba6da9f92c164ae252b15a0ed10064812544aa1fdf198","src/unix/linux_like/linux/arch/powerpc/mod.rs":"0bc2d2667a00eca81f4abeb6d613a90848a947f51224103f83268928b8197629","src/unix/linux_like/linux/arch/sparc/mod.rs":"5e6777863e74a9e2aa9dc487f1059783dd211babc2b32d6bf676f311e49c55d6","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"6ec0eb3ee93f7ae99fd714b4deabfb5e97fbcefd8c26f5a45fb8e7150899cdeb","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"f68ec59b6407f9d4e326f3e71a41ec21f19ecfc703edf9a93e496f661fed5506","src/unix/linux_like/linux/gnu/b32/csky/align.rs":"3fed009dc9af3cc81be7087da9d2d7d1f39845e4497e290259c5cdbae25f039d","src/unix/linux_like/linux/gnu/b32/csky/mod.rs":"8729b68e433e94c2128e51a7db4fd555938e4be4dc64584c352b24a20d9c8e91","src/unix/linux_like/linux/gnu/b32/m68k/align.rs":"8faa92f77a9232c035418d45331774e64a9a841d99c91791570a203bf2b45bcb","src/unix/linux_like/linux/gnu/b32/m68k/mod.rs":"80956d3fef163ecf248828a6f38782dd8ae856d86b1bb5aac2de36032dbd8ea0","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"96e22350d5d132d917c743d6560464500652c67b52c3d0e8474494487df3365d","src/unix/linux_like/linux/gnu/b32/mod.rs":"b56625dd20dd48a8699034d349ef089c540c0ddcbf8a3481d598d101f8b40b78","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"20fc3cc4fe1ef6617b63b61b897f782ceb9c2842fc718f504a1840537229bf47","src/unix/linux_like/linux/gnu/b32/riscv32/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"887288a0a1cfff319d0e15edcdc4fcb31fd643ff41715ec5244c8f2413624169","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"cc4342b949e4d796f304acd9dfe3f721a1c2f37fec16b42d3bb27dc94723af37","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"06d4db4ee8352f62a0a5ead0c4d6ea0a78feff522f19b9bc5772f6dd920ffd80","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"fdf1c72375a2167699157e0dd825422690bb6719f7bc69515a2e5846d0431d7c","src/unix/linux_like/linux/gnu/b64/aarch64/fallback.rs":"832e7487249c1c0bb6e9911ce3f7d32ca22378e42392ab83c56915cbc59d8be3","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"bf4611b737813deef6787babf6c01698605f3b75482269b8546318667bc68e29","src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"11a950697fdda0258c6e37c6b13993348c8de4134105ed4faa79358e53175072","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"8202614484da36c388d2ffdd2554c56bb4f9db8e5bd621f8c36114cdcfeec644","src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs":"060aa33cc737966c691aab8511c5c5729e551458ce18d0e284e0d45f39beeb60","src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs":"10f025edecebc6e0ed8fdae4736ebe7564189741d5b910433f07c21fc12a94d8","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"73532be4b5775acf9524c77feeefe1f6d1936ceffef908d01dd2586986520f2d","src/unix/linux_like/linux/gnu/b64/mod.rs":"6a160ef25439c4fecdb0e3bd0b818742263c791364da874d4febd3aa644ec8e2","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"a90c2641616c620e9d1fea87695ce046e14f9da2282bb93f761eeb4077c74741","src/unix/linux_like/linux/gnu/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"dec86883731f7b8419bff35b125b40eefc927090c1510f6daf931726f7965c0b","src/unix/linux_like/linux/gnu/b64/s390x.rs":"1ea9e39432ce6bf68779d33546dacd7d39477a9f8fc3da4f4f339e4538cb74c3","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"bed381c44cec2a5b50125f7e548ab487d4c829006c971d152a611b7141760052","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"62e822478356db4a73b6bbd1b36d825b893939ab4b308ec11b0578bcc4b49769","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"332846e4a5920d7e6b05df0448a2333c5dd00fb27cb33654648f507ee89dbec5","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"38f74ce15d9662ce4818815a2b87be1618d5e45f190f7e4db84ff3285b4421fb","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"b20218a11364a6dec87f96d6c0d8b19e660697ab09ad5ee0e9b3a9dafedaaebb","src/unix/linux_like/linux/gnu/mod.rs":"78ce3d4fe6dcb9dc90210526023a1421502e341a7c39d769fd385001c1eb3b8d","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"efdc36b0e95a87b45093756e766cded003bac6fbd9493cd1af158f7476b2d3e2","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"af10147d7c3661751750a58ffad089d5d18d180cd18303c653aef126c07ccd91","src/unix/linux_like/linux/musl/b32/hexagon.rs":"d079cab42529f7dab699334d43168c74ff4aa0282f11040a8b7d274b65767a7a","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"e44043766f7cd26de7ffa4232654afb6feb03e58dbd5890717970887bd003151","src/unix/linux_like/linux/musl/b32/mod.rs":"31677597fd9544c4b1ec1477628288f6273fabbc06e38f33da862ad55f019ce1","src/unix/linux_like/linux/musl/b32/powerpc.rs":"3dae56a4e7789bcc5314e419fea5e4b2495367b4f1a49d1c9477c60225d65eef","src/unix/linux_like/linux/musl/b32/riscv32/align.rs":"efd2accf33b87de7c7547903359a5da896edc33cd6c719552c7474b60d4a5d48","src/unix/linux_like/linux/musl/b32/riscv32/mod.rs":"3ee845d272f91a1908d5f421d7c353e1f14681bbdfef64410e408f4c14365a91","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"f2b53ae0034c833244b7cdb8c670349bf8272a03abf04152eba65cf62810484d","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"6ba32725d24d7d8e6aa111f3b57aafa318f83b606abe96561329151829821133","src/unix/linux_like/linux/musl/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"45ce6897afcc960267bb7505702b639daf94dc69428a213bf1aefd367ca32adc","src/unix/linux_like/linux/musl/b64/loongarch64/align.rs":"060aa33cc737966c691aab8511c5c5729e551458ce18d0e284e0d45f39beeb60","src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs":"3d9ef92e682a1789544a2bd20cad5a5623db9d7d9f5d0a3692bb0230af034165","src/unix/linux_like/linux/musl/b64/mips64.rs":"a968ef9c54fa22293085f318c8472c1754482df92cc500568dc33bd807d71ea6","src/unix/linux_like/linux/musl/b64/mod.rs":"20ceaf90a03c24a2eb154a5dffbfc9a538348404db5b554a3d8126021ba45509","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"140e579800a67315f4cb8a42b22aa8157eae34ffe626e77e421b43c53c23b34d","src/unix/linux_like/linux/musl/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/musl/b64/riscv64/mod.rs":"c5944526d7e19cd43e9d14d119a1d98f8780db7ecbcc79e69d7b9348e596b520","src/unix/linux_like/linux/musl/b64/s390x.rs":"8557b3477ca8cefef7fce764a3c25441929a54e50ead4091f6f7823c427cd728","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"77309276ad7a42cbe59ca381f23590b7a143aded05555b34a5b307b808cbca6e","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"a91c4f18027c9958037f78ae48f6352d23cb4e6f2995b2cc8de7dce0e5759470","src/unix/linux_like/linux/musl/lfs64.rs":"3e4fb381f3a0756520bde0f1692d4fa45e4ae8133bf7d7c64b0e3fdd512f235f","src/unix/linux_like/linux/musl/mod.rs":"ac8ccdb25116ecdfa44eacaffefb21329aa286713c44a12dbe2c1614f2a2748a","src/unix/linux_like/linux/no_align.rs":"62cdca0e011937aaf09a51ca86d9f0ee0fdb05f61ec3c058e6a5d5fa6357d784","src/unix/linux_like/linux/non_exhaustive.rs":"181a05bf94fdb911db83ce793b993bd6548a4115b306a7ef3c10f745a8fea3e9","src/unix/linux_like/linux/uclibc/align.rs":"9ed16138d8e439bd90930845a65eafa7ebd67366e6bf633936d44014f6e4c959","src/unix/linux_like/linux/uclibc/arm/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/arm/mod.rs":"50288ff9e411ab0966da24838f2c2a5618021bc19c422a04f577b2979ef4081e","src/unix/linux_like/linux/uclibc/arm/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips32/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs":"d0c4434e2bf813372c418a8f516c706cdccc9f7be2f0921b2207b0afdb66fe81","src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips64/align.rs":"a7bdcb18a37a2d91e64d5fad83ea3edc78f5412adb28f77ab077dbb26dd08b2d","src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs":"3f38ee6a4690b9d7594be20d216467a34d955f7653c2c8ce1e6147daeb53f1e0","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"a048fce1c2d9b1ad57305642e8ad05ca0f0c7e4753267a2e2d6b4fee5db3b072","src/unix/linux_like/linux/uclibc/mod.rs":"193a03fa4aa5345394e39d2115c9427e806c9f28b0fde685719119e1c90ca08a","src/unix/linux_like/linux/uclibc/no_align.rs":"3f28637046524618adaa1012e26cb7ffe94b9396e6b518cccdc69d59f274d709","src/unix/linux_like/linux/uclibc/x86_64/l4re.rs":"8485b9182b7c67f7344fab377e7cc2a72afefd9ab63837c860514abba9728d76","src/unix/linux_like/linux/uclibc/x86_64/mod.rs":"196d03affbefb85716937c15904831e731eb222ee906e05e42102d639a8152ea","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"863f628cbaa864911ffebc58e9fb788b6c6a9651955fc401ac1f40f20eb62505","src/unix/mod.rs":"e3a98b62b83a1e42675e968c05b2281d612a66cdc09c4e3b4c16921c31a9e254","src/unix/newlib/aarch64/mod.rs":"964c096288da836b53c0c71d7f3a97048d177da220a69314c5ce93ba330d72af","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"cf754f8b1197489fca01e881a4b4b146e814998e4b365f116fa1a102c00e6a4e","src/unix/newlib/espidf/mod.rs":"689e29a9fff5a263e5ab8410d0a8919f77fa64aa12f4d71f71085a6f07f19f67","src/unix/newlib/generic.rs":"5f0b5d07ddb5a5d60580f9561fdb05e9218d9751d4068c4aadad2ba6b950aabf","src/unix/newlib/horizon/mod.rs":"3a521d22bf932fc01c1d26d1f9bff20f11b1855b03c8236a8eb18310f6cab5a8","src/unix/newlib/mod.rs":"e5d5faf27a6336b9f1c02b8726427801d906a14dae766852b4e85c1a92df06c8","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"cc9e188711b9bf614323ad6c48e0d2e1a1ecc5d3bc64961ba451f29c6c22d2d8","src/unix/newlib/vita/mod.rs":"ff1caf74bb0696fe15d60dbac598db4520cd538aa0f5989713d97d008eee6ad8","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/nto/aarch64.rs":"4709c9afdc8d583be876598e7c238499ee3e8da5bd2baa614d9c7dd414851555","src/unix/nto/mod.rs":"07268897fc8810f2fed22ab56f87757f71c73ba401abd848bccca6b183a13b02","src/unix/nto/neutrino.rs":"799bff4ab01a6424db6c5a2b76aa5679826d41495f9d13c63485bf13bc80026b","src/unix/nto/x86_64.rs":"a3e18e93c2999da1cd7a6f748a4b60c07aefb73d8ea2aafec19a84cfb040bc8e","src/unix/redox/mod.rs":"e75a319975472fe9e0873244fb07c5d2004672b7a4cf7a3cb01532d6d394cb8a","src/unix/solarish/compat.rs":"00f1ee3faec9da69204e42f025f6735dd13d894071a154425dcc43ecbdd06e7f","src/unix/solarish/illumos.rs":"cd93c2d84722bbf9933a92842a8998eb0b2afc962f50bc2546ad127b82809fa7","src/unix/solarish/mod.rs":"3e550d95419169febf094c425451ca86b12821fa17839b4b0ba7520b145a5820","src/unix/solarish/solaris.rs":"41b350a89ddf01cd12a10f93640f92be53be0b0d976021cdc08da17bf3e72edf","src/unix/solarish/x86.rs":"e86e806df0caed72765040eaa2f3c883198d1aa91508540adf9b7008c77f522e","src/unix/solarish/x86_64.rs":"ec2b01f194eb8a6a27133c57681da195a949e03098f3ea1e847227a9c09ef5fc","src/unix/solarish/x86_common.rs":"ac869d9c3c95645c22460468391eb1982023c3a8e02b9e06a72e3aef3d5f1eac","src/vxworks/aarch64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/arm.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/mod.rs":"4105a2e6a6c9908fc1f2a770ede052bb0d6a5d9d49e32d815f557081efc49860","src/vxworks/powerpc.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/powerpc64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/x86.rs":"552f007f38317620b23889cb7c49d1d115841252439060122f52f434fbc6e5ba","src/vxworks/x86_64.rs":"018d92be3ad628a129eff9f2f5dfbc0883d8b8e5f2fa917b900a7f98ed6b514a","src/wasi.rs":"d4147353537d7556076ff1a1c4cb96cc2dae9416a5d176ba8a077ad55ab7ec18","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"9fdc5e1c62c441abef7bc62a7343efb2041edc24db9ac0efc0f74df55b69e249","src/windows/msvc/mod.rs":"c068271e00fca6b62bc4bf44bcf142cfc38caeded9b6c4e01d1ceef3ccf986f4","src/xous.rs":"eb0675f25ba01f73072d2b70907fb8abb1148facefe5a20756c49250f3d65fae","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"} \ No newline at end of file diff --git a/src/rust/vendor/libc/CONTRIBUTING.md b/src/rust/vendor/libc/CONTRIBUTING.md index 8c551dbdb..b6f41cc6d 100644 --- a/src/rust/vendor/libc/CONTRIBUTING.md +++ b/src/rust/vendor/libc/CONTRIBUTING.md @@ -3,6 +3,13 @@ Welcome! If you are reading this document, it means you are interested in contributing to the `libc` crate. +## v0.2 changes + +If you want to add your changes to v0.2, please submit them to the `libc-0.2` branch. +If you want to add any breaking changes, it should be submitted to the main branch, +which has changes for v0.3. +We will support and make a new release for v0.2 until we make the first release of v0.3. + ## Adding an API Want to use an API which currently isn't bound in `libc`? It's quite easy to add @@ -54,7 +61,7 @@ We have two automated tests running on [GitHub Actions](https://github.com/rust- - `cd libc-test && cargo test` - Use the `skip_*()` functions in `build.rs` if you really need a workaround. 2. Style checker - - `rustc ci/style.rs && ./style src` + - [`sh ci/style.sh`](https://github.com/rust-lang/libc/blob/main/ci/style.sh) ## Breaking change policy diff --git a/src/rust/vendor/libc/Cargo.toml b/src/rust/vendor/libc/Cargo.toml index 4f114eeed..66f41e140 100644 --- a/src/rust/vendor/libc/Cargo.toml +++ b/src/rust/vendor/libc/Cargo.toml @@ -11,7 +11,7 @@ [package] name = "libc" -version = "0.2.146" +version = "0.2.155" authors = ["The Rust Project Developers"] build = "build.rs" exclude = [ @@ -20,6 +20,10 @@ exclude = [ "/.cirrus.yml", "/triagebot.toml", ] +autobins = false +autoexamples = false +autotests = false +autobenches = false description = """ Raw FFI bindings to platform libraries like libc. """ @@ -42,10 +46,129 @@ license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/libc" [package.metadata.docs.rs] +cargo-args = ["-Zbuild-std=core"] +default-target = "x86_64-unknown-linux-gnu" features = [ "const-extern-fn", "extra_traits", ] +targets = [ + "aarch64-apple-darwin", + "aarch64-apple-ios", + "aarch64-linux-android", + "aarch64-pc-windows-msvc", + "aarch64-unknown-freebsd", + "aarch64-unknown-fuchsia", + "aarch64-unknown-hermit", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "aarch64-unknown-netbsd", + "aarch64-unknown-openbsd", + "aarch64-wrs-vxworks", + "arm-linux-androideabi", + "arm-unknown-linux-gnueabi", + "arm-unknown-linux-gnueabihf", + "arm-unknown-linux-musleabi", + "arm-unknown-linux-musleabihf", + "armebv7r-none-eabi", + "armebv7r-none-eabihf", + "armv5te-unknown-linux-gnueabi", + "armv5te-unknown-linux-musleabi", + "armv7-linux-androideabi", + "armv7-unknown-linux-gnueabihf", + "armv7-unknown-linux-musleabihf", + "armv7-wrs-vxworks-eabihf", + "armv7r-none-eabi", + "armv7r-none-eabihf", + "hexagon-unknown-linux-musl", + "i586-pc-windows-msvc", + "i586-unknown-linux-gnu", + "i586-unknown-linux-musl", + "i686-linux-android", + "i686-pc-windows-gnu", + "i686-pc-windows-msvc", + "i686-pc-windows-msvc", + "i686-unknown-freebsd", + "i686-unknown-haiku", + "i686-unknown-linux-gnu", + "i686-unknown-linux-musl", + "i686-unknown-netbsd", + "i686-unknown-openbsd", + "i686-wrs-vxworks", + "mips-unknown-linux-gnu", + "mips-unknown-linux-musl", + "mips64-unknown-linux-gnuabi64", + "mips64-unknown-linux-muslabi64", + "mips64el-unknown-linux-gnuabi64", + "mips64el-unknown-linux-muslabi64", + "mipsel-sony-psp", + "mipsel-unknown-linux-gnu", + "mipsel-unknown-linux-musl", + "nvptx64-nvidia-cuda", + "powerpc-unknown-linux-gnu", + "powerpc-unknown-linux-gnuspe", + "powerpc-unknown-netbsd", + "powerpc-wrs-vxworks", + "powerpc-wrs-vxworks-spe", + "powerpc64-unknown-freebsd", + "powerpc64-unknown-linux-gnu", + "powerpc64-wrs-vxworks", + "powerpc64le-unknown-linux-gnu", + "riscv32gc-unknown-linux-gnu", + "riscv32i-unknown-none-elf", + "riscv32imac-unknown-none-elf", + "riscv32imc-unknown-none-elf", + "riscv64gc-unknown-freebsd", + "riscv64gc-unknown-hermit", + "riscv64gc-unknown-linux-gnu", + "riscv64gc-unknown-linux-musl", + "riscv64gc-unknown-none-elf", + "riscv64imac-unknown-none-elf", + "s390x-unknown-linux-gnu", + "s390x-unknown-linux-musl", + "sparc-unknown-linux-gnu", + "sparc64-unknown-linux-gnu", + "sparc64-unknown-netbsd", + "sparcv9-sun-solaris", + "thumbv6m-none-eabi", + "thumbv7em-none-eabi", + "thumbv7em-none-eabihf", + "thumbv7m-none-eabi", + "thumbv7neon-linux-androideabi", + "thumbv7neon-unknown-linux-gnueabihf", + "wasm32-unknown-emscripten", + "wasm32-unknown-unknown", + "wasm32-wasi", + "x86_64-apple-darwin", + "x86_64-apple-ios", + "x86_64-fortanix-unknown-sgx", + "x86_64-linux-android", + "x86_64-pc-solaris", + "x86_64-pc-windows-gnu", + "x86_64-pc-windows-msvc", + "x86_64-unknown-dragonfly", + "x86_64-unknown-freebsd", + "x86_64-unknown-fuchsia", + "x86_64-unknown-haiku", + "x86_64-unknown-hermit", + "x86_64-unknown-illumos", + "x86_64-unknown-l4re-uclibc", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-gnux32", + "x86_64-unknown-linux-musl", + "x86_64-unknown-netbsd", + "x86_64-unknown-openbsd", + "x86_64-unknown-redox", + "x86_64-wrs-vxworks", +] + +[lib] +name = "libc" +path = "src/lib.rs" + +[[test]] +name = "const_fn" +path = "tests/const_fn.rs" [dependencies.rustc-std-workspace-core] version = "1.0.0" diff --git a/src/rust/vendor/libc/README.md b/src/rust/vendor/libc/README.md index 43d706d0f..395b94ce0 100644 --- a/src/rust/vendor/libc/README.md +++ b/src/rust/vendor/libc/README.md @@ -16,6 +16,15 @@ More detailed information about the design of this library can be found in its [rfc]: https://github.com/rust-lang/rfcs/blob/HEAD/text/1291-promote-libc.md +## v0.3 Roadmap + +The main branch is now for v0.3 which has some breaking changes. + +For v0.2, please submit PRs to the `libc-0.2` branch instead. +We will stop making new v0.2 releases once we release v0.3 on crates.io. + +See the [tracking issue](https://github.com/rust-lang/libc/issues/3248) for details. + ## Usage Add the following to your `Cargo.toml`: @@ -60,7 +69,7 @@ newer Rust features are only available on newer Rust toolchains: ## Platform support -[Platform-specific documentation (HEAD)][docs.head]. +You can see the platform(target)-specific docs on [docs.rs], select a platform you want to see. See [`ci/build.sh`](https://github.com/rust-lang/libc/blob/HEAD/ci/build.sh) @@ -107,4 +116,3 @@ dual licensed as above, without any additional terms or conditions. [Documentation]: https://docs.rs/libc/badge.svg [docs.rs]: https://docs.rs/libc [License]: https://img.shields.io/crates/l/libc.svg -[docs.head]: https://rust-lang.github.io/libc/#platform-specific-documentation diff --git a/src/rust/vendor/libc/build.rs b/src/rust/vendor/libc/build.rs index 79bec0ea4..ee0d86ede 100644 --- a/src/rust/vendor/libc/build.rs +++ b/src/rust/vendor/libc/build.rs @@ -7,11 +7,14 @@ use std::string::String; // need to know all the possible cfgs that this script will set. If you need to set another cfg // make sure to add it to this list as well. const ALLOWED_CFGS: &'static [&'static str] = &[ + "emscripten_new_stat_abi", + "espidf_time64", "freebsd10", "freebsd11", "freebsd12", "freebsd13", "freebsd14", + "freebsd15", "libc_align", "libc_cfg_target_vendor", "libc_const_extern_fn", @@ -32,9 +35,12 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ // Extra values to allow for check-cfg. const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[ - ("target_os", &["switch", "aix", "ohos"]), + ("target_os", &["switch", "aix", "ohos", "hurd", "visionos"]), ("target_env", &["illumos", "wasi", "aix", "ohos"]), - ("target_arch", &["loongarch64"]), + ( + "target_arch", + &["loongarch64", "mips32r6", "mips64r6", "csky"], + ), ]; fn main() { @@ -46,7 +52,7 @@ fn main() { let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok(); let const_extern_fn_cargo_feature = env::var("CARGO_FEATURE_CONST_EXTERN_FN").is_ok(); let libc_ci = env::var("LIBC_CI").is_ok(); - let libc_check_cfg = env::var("LIBC_CHECK_CFG").is_ok(); + let libc_check_cfg = env::var("LIBC_CHECK_CFG").is_ok() || rustc_minor_ver >= 80; if env::var("CARGO_FEATURE_USE_STD").is_ok() { println!( @@ -55,20 +61,27 @@ fn main() { ); } - // The ABI of libc used by libstd is backward compatible with FreeBSD 10. + // The ABI of libc used by std is backward compatible with FreeBSD 12. // The ABI of libc from crates.io is backward compatible with FreeBSD 11. // // On CI, we detect the actual FreeBSD version and match its ABI exactly, // running tests to ensure that the ABI is correct. match which_freebsd() { - Some(10) if libc_ci || rustc_dep_of_std => set_cfg("freebsd10"), + Some(10) if libc_ci => set_cfg("freebsd10"), Some(11) if libc_ci => set_cfg("freebsd11"), - Some(12) if libc_ci => set_cfg("freebsd12"), + Some(12) if libc_ci || rustc_dep_of_std => set_cfg("freebsd12"), Some(13) if libc_ci => set_cfg("freebsd13"), Some(14) if libc_ci => set_cfg("freebsd14"), + Some(15) if libc_ci => set_cfg("freebsd15"), Some(_) | None => set_cfg("freebsd11"), } + match emcc_version_code() { + Some(v) if (v >= 30142) => set_cfg("emscripten_new_stat_abi"), + // Non-Emscripten or version < 3.1.42. + Some(_) | None => (), + } + // On CI: deny all warnings if libc_ci { set_cfg("libc_deny_warnings"); @@ -157,11 +170,19 @@ fn main() { // https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg if libc_check_cfg { for cfg in ALLOWED_CFGS { - println!("cargo:rustc-check-cfg=values({})", cfg); + if rustc_minor_ver >= 75 { + println!("cargo:rustc-check-cfg=cfg({})", cfg); + } else { + println!("cargo:rustc-check-cfg=values({})", cfg); + } } for &(name, values) in CHECK_CFG_EXTRA { let values = values.join("\",\""); - println!("cargo:rustc-check-cfg=values({},\"{}\")", name, values); + if rustc_minor_ver >= 75 { + println!("cargo:rustc-check-cfg=cfg({},values(\"{}\"))", name, values); + } else { + println!("cargo:rustc-check-cfg=values({},\"{}\")", name, values); + } } } } @@ -234,10 +255,41 @@ fn which_freebsd() -> Option { s if s.starts_with("12") => Some(12), s if s.starts_with("13") => Some(13), s if s.starts_with("14") => Some(14), + s if s.starts_with("15") => Some(15), _ => None, } } +fn emcc_version_code() -> Option { + let output = std::process::Command::new("emcc") + .arg("-dumpversion") + .output() + .ok(); + if output.is_none() { + return None; + } + let output = output.unwrap(); + if !output.status.success() { + return None; + } + + let stdout = String::from_utf8(output.stdout).ok(); + if stdout.is_none() { + return None; + } + let version = stdout.unwrap(); + + // Some Emscripten versions come with `-git` attached, so split the + // version string also on the `-` char. + let mut pieces = version.trim().split(|c| c == '.' || c == '-'); + + let major = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0); + let minor = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0); + let patch = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0); + + Some(major * 10000 + minor * 100 + patch) +} + fn set_cfg(cfg: &str) { if !ALLOWED_CFGS.contains(&cfg) { panic!("trying to set cfg {}, but it is not in ALLOWED_CFGS", cfg); diff --git a/src/rust/vendor/libc/src/fuchsia/mod.rs b/src/rust/vendor/libc/src/fuchsia/mod.rs index 3e922e766..4e028ff6c 100644 --- a/src/rust/vendor/libc/src/fuchsia/mod.rs +++ b/src/rust/vendor/libc/src/fuchsia/mod.rs @@ -2679,7 +2679,87 @@ pub const PT_GNU_STACK: u32 = 0x6474e551; pub const PT_GNU_RELRO: u32 = 0x6474e552; // Ethernet protocol IDs. +pub const ETH_P_LOOP: ::c_int = 0x0060; +pub const ETH_P_PUP: ::c_int = 0x0200; +pub const ETH_P_PUPAT: ::c_int = 0x0201; pub const ETH_P_IP: ::c_int = 0x0800; +pub const ETH_P_X25: ::c_int = 0x0805; +pub const ETH_P_ARP: ::c_int = 0x0806; +pub const ETH_P_BPQ: ::c_int = 0x08FF; +pub const ETH_P_IEEEPUP: ::c_int = 0x0a00; +pub const ETH_P_IEEEPUPAT: ::c_int = 0x0a01; +pub const ETH_P_BATMAN: ::c_int = 0x4305; +pub const ETH_P_DEC: ::c_int = 0x6000; +pub const ETH_P_DNA_DL: ::c_int = 0x6001; +pub const ETH_P_DNA_RC: ::c_int = 0x6002; +pub const ETH_P_DNA_RT: ::c_int = 0x6003; +pub const ETH_P_LAT: ::c_int = 0x6004; +pub const ETH_P_DIAG: ::c_int = 0x6005; +pub const ETH_P_CUST: ::c_int = 0x6006; +pub const ETH_P_SCA: ::c_int = 0x6007; +pub const ETH_P_TEB: ::c_int = 0x6558; +pub const ETH_P_RARP: ::c_int = 0x8035; +pub const ETH_P_ATALK: ::c_int = 0x809B; +pub const ETH_P_AARP: ::c_int = 0x80F3; +pub const ETH_P_8021Q: ::c_int = 0x8100; +pub const ETH_P_IPX: ::c_int = 0x8137; +pub const ETH_P_IPV6: ::c_int = 0x86DD; +pub const ETH_P_PAUSE: ::c_int = 0x8808; +pub const ETH_P_SLOW: ::c_int = 0x8809; +pub const ETH_P_WCCP: ::c_int = 0x883E; +pub const ETH_P_MPLS_UC: ::c_int = 0x8847; +pub const ETH_P_MPLS_MC: ::c_int = 0x8848; +pub const ETH_P_ATMMPOA: ::c_int = 0x884c; +pub const ETH_P_PPP_DISC: ::c_int = 0x8863; +pub const ETH_P_PPP_SES: ::c_int = 0x8864; +pub const ETH_P_LINK_CTL: ::c_int = 0x886c; +pub const ETH_P_ATMFATE: ::c_int = 0x8884; +pub const ETH_P_PAE: ::c_int = 0x888E; +pub const ETH_P_AOE: ::c_int = 0x88A2; +pub const ETH_P_8021AD: ::c_int = 0x88A8; +pub const ETH_P_802_EX1: ::c_int = 0x88B5; +pub const ETH_P_TIPC: ::c_int = 0x88CA; +pub const ETH_P_8021AH: ::c_int = 0x88E7; +pub const ETH_P_MVRP: ::c_int = 0x88F5; +pub const ETH_P_1588: ::c_int = 0x88F7; +pub const ETH_P_PRP: ::c_int = 0x88FB; +pub const ETH_P_FCOE: ::c_int = 0x8906; +pub const ETH_P_TDLS: ::c_int = 0x890D; +pub const ETH_P_FIP: ::c_int = 0x8914; +pub const ETH_P_80221: ::c_int = 0x8917; +pub const ETH_P_LOOPBACK: ::c_int = 0x9000; +pub const ETH_P_QINQ1: ::c_int = 0x9100; +pub const ETH_P_QINQ2: ::c_int = 0x9200; +pub const ETH_P_QINQ3: ::c_int = 0x9300; +pub const ETH_P_EDSA: ::c_int = 0xDADA; +pub const ETH_P_AF_IUCV: ::c_int = 0xFBFB; + +pub const ETH_P_802_3_MIN: ::c_int = 0x0600; + +pub const ETH_P_802_3: ::c_int = 0x0001; +pub const ETH_P_AX25: ::c_int = 0x0002; +pub const ETH_P_ALL: ::c_int = 0x0003; +pub const ETH_P_802_2: ::c_int = 0x0004; +pub const ETH_P_SNAP: ::c_int = 0x0005; +pub const ETH_P_DDCMP: ::c_int = 0x0006; +pub const ETH_P_WAN_PPP: ::c_int = 0x0007; +pub const ETH_P_PPP_MP: ::c_int = 0x0008; +pub const ETH_P_LOCALTALK: ::c_int = 0x0009; +pub const ETH_P_CAN: ::c_int = 0x000C; +pub const ETH_P_CANFD: ::c_int = 0x000D; +pub const ETH_P_PPPTALK: ::c_int = 0x0010; +pub const ETH_P_TR_802_2: ::c_int = 0x0011; +pub const ETH_P_MOBITEX: ::c_int = 0x0015; +pub const ETH_P_CONTROL: ::c_int = 0x0016; +pub const ETH_P_IRDA: ::c_int = 0x0017; +pub const ETH_P_ECONET: ::c_int = 0x0018; +pub const ETH_P_HDLC: ::c_int = 0x0019; +pub const ETH_P_ARCNET: ::c_int = 0x001A; +pub const ETH_P_DSA: ::c_int = 0x001B; +pub const ETH_P_TRAILER: ::c_int = 0x001C; +pub const ETH_P_PHONET: ::c_int = 0x00F5; +pub const ETH_P_IEEE802154: ::c_int = 0x00F6; +pub const ETH_P_CAIF: ::c_int = 0x00F7; pub const SFD_CLOEXEC: ::c_int = 0x080000; @@ -2731,7 +2811,10 @@ pub const POSIX_MADV_DONTNEED: ::c_int = 4; pub const RLIM_INFINITY: ::rlim_t = !0; pub const RLIMIT_RTTIME: ::c_int = 15; +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: ::c_int = 16; +#[allow(deprecated)] +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::c_int = RLIMIT_NLIMITS; pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; @@ -3150,6 +3233,9 @@ pub const O_DIRECT: ::c_int = 0x00000800; pub const O_LARGEFILE: ::c_int = 0x00001000; pub const O_NOFOLLOW: ::c_int = 0x00000080; +pub const HUGETLB_FLAG_ENCODE_SHIFT: u32 = 26; +pub const MAP_HUGE_SHIFT: u32 = 26; + // intentionally not public, only used for fd_set cfg_if! { if #[cfg(target_pointer_width = "32")] { @@ -3687,6 +3773,10 @@ extern "C" { pub fn pthread_exit(value: *mut ::c_void) -> !; pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_attr_getstacksize( + attr: *const ::pthread_attr_t, + stacksize: *mut ::size_t, + ) -> ::c_int; pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, stack_size: ::size_t) -> ::c_int; pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, state: ::c_int) -> ::c_int; pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; @@ -3736,6 +3826,8 @@ extern "C" { pub fn pthread_rwlock_unlock(lock: *mut pthread_rwlock_t) -> ::c_int; pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) -> ::c_int; pub fn pthread_rwlockattr_destroy(attr: *mut pthread_rwlockattr_t) -> ::c_int; + pub fn pthread_getname_np(thread: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int; pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; pub fn getsockopt( @@ -4017,7 +4109,7 @@ extern "C" { host: *mut ::c_char, hostlen: ::socklen_t, serv: *mut ::c_char, - sevlen: ::socklen_t, + servlen: ::socklen_t, flags: ::c_int, ) -> ::c_int; pub fn reboot(how_to: ::c_int) -> ::c_int; @@ -4161,6 +4253,7 @@ extern "C" { attr: *const ::pthread_attr_t, guardsize: *mut ::size_t, ) -> ::c_int; + pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; diff --git a/src/rust/vendor/libc/src/hermit/mod.rs b/src/rust/vendor/libc/src/hermit/mod.rs index bffcefdd8..7543c8257 100644 --- a/src/rust/vendor/libc/src/hermit/mod.rs +++ b/src/rust/vendor/libc/src/hermit/mod.rs @@ -1,7 +1,4 @@ -// libc port for HermitCore (https://hermitcore.org) -// -// Ported by Colin Fink -// and Stefan Lankes +//! Hermit C types definition pub type c_schar = i8; pub type c_uchar = u8; diff --git a/src/rust/vendor/libc/src/lib.rs b/src/rust/vendor/libc/src/lib.rs index d9bd318d1..1b6f0c077 100644 --- a/src/rust/vendor/libc/src/lib.rs +++ b/src/rust/vendor/libc/src/lib.rs @@ -1,8 +1,4 @@ //! libc - Raw FFI bindings to platforms' system libraries -//! -//! [Documentation for other platforms][pd]. -//! -//! [pd]: https://rust-lang.github.io/libc/#platform-specific-documentation #![crate_name = "libc"] #![crate_type = "rlib"] #![allow( @@ -139,6 +135,12 @@ cfg_if! { mod hermit; pub use hermit::*; + } else if #[cfg(target_os = "teeos")] { + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod teeos; + pub use teeos::*; } else if #[cfg(all(target_env = "sgx", target_vendor = "fortanix"))] { mod fixed_width_ints; pub use fixed_width_ints::*; diff --git a/src/rust/vendor/libc/src/macros.rs b/src/rust/vendor/libc/src/macros.rs index fd473702f..beb80024d 100644 --- a/src/rust/vendor/libc/src/macros.rs +++ b/src/rust/vendor/libc/src/macros.rs @@ -120,6 +120,12 @@ macro_rules! s_no_extra_traits { ); } +macro_rules! missing { + ($($(#[$attr:meta])* pub enum $i:ident {})*) => ($( + $(#[$attr])* #[allow(missing_copy_implementations)] pub enum $i { } + )*); +} + macro_rules! e { ($($(#[$attr:meta])* pub enum $i:ident { $($field:tt)* })*) => ($( __item! { diff --git a/src/rust/vendor/libc/src/psp.rs b/src/rust/vendor/libc/src/psp.rs index 575232dad..a4ca029b6 100644 --- a/src/rust/vendor/libc/src/psp.rs +++ b/src/rust/vendor/libc/src/psp.rs @@ -1382,15 +1382,18 @@ s_paren! { pub struct SceUid(pub i32); #[repr(transparent)] + #[allow(dead_code)] pub struct SceMpeg(*mut *mut c_void); #[repr(transparent)] + #[allow(dead_code)] pub struct SceMpegStream(*mut c_void); #[repr(transparent)] pub struct Mp3Handle(pub i32); #[repr(transparent)] + #[allow(dead_code)] pub struct RegHandle(u32); } diff --git a/src/rust/vendor/libc/src/teeos/mod.rs b/src/rust/vendor/libc/src/teeos/mod.rs new file mode 100644 index 000000000..25e06ffaa --- /dev/null +++ b/src/rust/vendor/libc/src/teeos/mod.rs @@ -0,0 +1,1385 @@ +//! Libc bindings for teeos +//! +//! Apparently the loader just dynamically links it anyway, but fails +//! when linking is explicitly requested. +#![allow(non_camel_case_types)] +#![allow(non_snake_case)] + +// only supported on Rust > 1.59, so we can directly reexport c_void from core. +pub use core::ffi::c_void; + +use Option; + +pub type c_schar = i8; + +pub type c_uchar = u8; + +pub type c_short = i16; + +pub type c_ushort = u16; + +pub type c_int = i32; + +pub type c_uint = u32; + +pub type c_bool = i32; + +pub type c_float = f32; + +pub type c_double = f64; + +pub type c_longlong = i64; + +pub type c_ulonglong = u64; + +pub type intmax_t = i64; + +pub type uintmax_t = u64; + +pub type size_t = usize; + +pub type ptrdiff_t = isize; + +pub type intptr_t = isize; + +pub type uintptr_t = usize; + +pub type ssize_t = isize; + +pub type pid_t = c_int; + +// aarch64 specifc +pub type c_char = u8; + +pub type wchar_t = u32; + +pub type c_long = i64; + +pub type c_ulong = u64; + +#[repr(align(16))] +pub struct _CLongDouble(pub u128); + +// long double in C means A float point value, which has 128bit length. +// but some bit maybe not used, so the really length of long double could be 80(x86) or 128(power pc/IEEE) +// this is different from f128(not stable and not included default) in Rust, so we use u128 for FFI(Rust to C). +// this is unstable and will couse to memfault/data abort. +pub type c_longdouble = _CLongDouble; + +pub type pthread_t = c_ulong; + +pub type pthread_key_t = c_uint; + +pub type pthread_spinlock_t = c_int; + +pub type off_t = i64; + +pub type time_t = c_long; + +pub type clock_t = c_long; + +pub type clockid_t = c_int; + +pub type suseconds_t = c_long; + +pub type once_fn = extern "C" fn() -> c_void; + +pub type pthread_once_t = c_int; + +pub type va_list = *mut c_char; + +pub type wint_t = c_uint; + +pub type wctype_t = c_ulong; + +pub type cmpfunc = extern "C" fn(x: *const c_void, y: *const c_void) -> c_int; + +#[repr(align(8))] +#[repr(C)] +pub struct pthread_cond_t { + #[doc(hidden)] + size: [u8; __SIZEOF_PTHREAD_COND_T], +} + +#[repr(align(8))] +#[repr(C)] +pub struct pthread_mutex_t { + #[doc(hidden)] + size: [u8; __SIZEOF_PTHREAD_MUTEX_T], +} + +#[repr(align(4))] +#[repr(C)] +pub struct pthread_mutexattr_t { + #[doc(hidden)] + size: [u8; __SIZEOF_PTHREAD_MUTEXATTR_T], +} + +#[repr(align(4))] +#[repr(C)] +pub struct pthread_condattr_t { + #[doc(hidden)] + size: [u8; __SIZEOF_PTHREAD_CONDATTR_T], +} + +#[repr(C)] +pub struct pthread_attr_t { + __size: [u64; 7], +} + +#[repr(C)] +pub struct cpu_set_t { + bits: [c_ulong; 128 / core::mem::size_of::()], +} + +#[repr(C)] +pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: c_long, +} + +#[repr(C)] +pub struct timeval { + pub tv_sec: time_t, + pub tv_usec: suseconds_t, +} + +#[repr(C)] +pub struct tm { + pub tm_sec: c_int, + pub tm_min: c_int, + pub tm_hour: c_int, + pub tm_mday: c_int, + pub tm_mon: c_int, + pub tm_year: c_int, + pub tm_wday: c_int, + pub tm_yday: c_int, + pub tm_isdst: c_int, + pub __tm_gmtoff: c_long, + pub __tm_zone: *const c_char, +} + +#[repr(C)] +pub struct mbstate_t { + pub __opaque1: c_uint, + pub __opaque2: c_uint, +} + +#[repr(C)] +pub struct sem_t { + pub __val: [c_int; 4 * core::mem::size_of::() / core::mem::size_of::()], +} + +#[repr(C)] +pub struct div_t { + pub quot: c_int, + pub rem: c_int, +} + +// fcntl +pub const O_CREAT: u32 = 0100; + +pub const O_EXCL: u32 = 0200; + +pub const O_NOCTTY: u32 = 0400; + +pub const O_TRUNC: u32 = 01000; + +pub const O_APPEND: u32 = 02000; + +pub const O_NONBLOCK: u32 = 04000; + +pub const O_DSYNC: u32 = 010000; + +pub const O_SYNC: u32 = 04010000; + +pub const O_RSYNC: u32 = 04010000; + +pub const O_DIRECTORY: u32 = 0200000; + +pub const O_NOFOLLOW: u32 = 0400000; + +pub const O_CLOEXEC: u32 = 02000000; + +pub const O_ASYNC: u32 = 020000; + +pub const O_DIRECT: u32 = 040000; + +pub const O_LARGEFILE: u32 = 0100000; + +pub const O_NOATIME: u32 = 01000000; + +pub const O_PATH: u32 = 010000000; + +pub const O_TMPFILE: u32 = 020200000; + +pub const O_NDELAY: u32 = O_NONBLOCK; + +pub const F_DUPFD: u32 = 0; + +pub const F_GETFD: u32 = 1; + +pub const F_SETFD: u32 = 2; + +pub const F_GETFL: u32 = 3; + +pub const F_SETFL: u32 = 4; + +pub const F_SETOWN: u32 = 8; + +pub const F_GETOWN: u32 = 9; + +pub const F_SETSIG: u32 = 10; + +pub const F_GETSIG: u32 = 11; + +pub const F_GETLK: u32 = 12; + +pub const F_SETLK: u32 = 13; + +pub const F_SETLKW: u32 = 14; + +pub const F_SETOWN_EX: u32 = 15; + +pub const F_GETOWN_EX: u32 = 16; + +pub const F_GETOWNER_UIDS: u32 = 17; + +// mman +pub const MAP_FAILED: u64 = 0xffffffffffffffff; + +pub const MAP_FIXED_NOREPLACE: u32 = 0x100000; + +pub const MAP_SHARED_VALIDATE: u32 = 0x03; + +pub const MAP_SHARED: u32 = 0x01; + +pub const MAP_PRIVATE: u32 = 0x02; + +pub const MAP_TYPE: u32 = 0x0f; + +pub const MAP_FIXED: u32 = 0x10; + +pub const MAP_ANON: u32 = 0x20; + +pub const MAP_ANONYMOUS: u32 = MAP_ANON; + +pub const MAP_NORESERVE: u32 = 0x4000; + +pub const MAP_GROWSDOWN: u32 = 0x0100; + +pub const MAP_DENYWRITE: u32 = 0x0800; + +pub const MAP_EXECUTABLE: u32 = 0x1000; + +pub const MAP_LOCKED: u32 = 0x2000; + +pub const MAP_POPULATE: u32 = 0x8000; + +pub const MAP_NONBLOCK: u32 = 0x10000; + +pub const MAP_STACK: u32 = 0x20000; + +pub const MAP_HUGETLB: u32 = 0x40000; + +pub const MAP_SYNC: u32 = 0x80000; + +pub const MAP_FILE: u32 = 0; + +pub const MAP_HUGE_SHIFT: u32 = 26; + +pub const MAP_HUGE_MASK: u32 = 0x3f; + +pub const MAP_HUGE_16KB: u32 = 14 << 26; + +pub const MAP_HUGE_64KB: u32 = 16 << 26; + +pub const MAP_HUGE_512KB: u32 = 19 << 26; + +pub const MAP_HUGE_1MB: u32 = 20 << 26; + +pub const MAP_HUGE_2MB: u32 = 21 << 26; + +pub const MAP_HUGE_8MB: u32 = 23 << 26; + +pub const MAP_HUGE_16MB: u32 = 24 << 26; + +pub const MAP_HUGE_32MB: u32 = 25 << 26; + +pub const MAP_HUGE_256MB: u32 = 28 << 26; + +pub const MAP_HUGE_512MB: u32 = 29 << 26; + +pub const MAP_HUGE_1GB: u32 = 30 << 26; + +pub const MAP_HUGE_2GB: u32 = 31 << 26; + +pub const MAP_HUGE_16GB: u32 = 34u32 << 26; + +pub const PROT_NONE: u32 = 0; + +pub const PROT_READ: u32 = 1; + +pub const PROT_WRITE: u32 = 2; + +pub const PROT_EXEC: u32 = 4; + +pub const PROT_GROWSDOWN: u32 = 0x01000000; + +pub const PROT_GROWSUP: u32 = 0x02000000; + +pub const MS_ASYNC: u32 = 1; + +pub const MS_INVALIDATE: u32 = 2; + +pub const MS_SYNC: u32 = 4; + +pub const MCL_CURRENT: u32 = 1; + +pub const MCL_FUTURE: u32 = 2; + +pub const MCL_ONFAULT: u32 = 4; + +pub const POSIX_MADV_NORMAL: u32 = 0; + +pub const POSIX_MADV_RANDOM: u32 = 1; + +pub const POSIX_MADV_SEQUENTIAL: u32 = 2; + +pub const POSIX_MADV_WILLNEED: u32 = 3; + +pub const POSIX_MADV_DONTNEED: u32 = 4; + +// wctype +pub const WCTYPE_ALNUM: u64 = 1; + +pub const WCTYPE_ALPHA: u64 = 2; + +pub const WCTYPE_BLANK: u64 = 3; + +pub const WCTYPE_CNTRL: u64 = 4; + +pub const WCTYPE_DIGIT: u64 = 5; + +pub const WCTYPE_GRAPH: u64 = 6; + +pub const WCTYPE_LOWER: u64 = 7; + +pub const WCTYPE_PRINT: u64 = 8; + +pub const WCTYPE_PUNCT: u64 = 9; + +pub const WCTYPE_SPACE: u64 = 10; + +pub const WCTYPE_UPPER: u64 = 11; + +pub const WCTYPE_XDIGIT: u64 = 12; + +// locale +pub const LC_CTYPE: i32 = 0; + +pub const LC_NUMERIC: i32 = 1; + +pub const LC_TIME: i32 = 2; + +pub const LC_COLLATE: i32 = 3; + +pub const LC_MONETARY: i32 = 4; + +pub const LC_MESSAGES: i32 = 5; + +pub const LC_ALL: i32 = 6; + +// pthread +pub const __SIZEOF_PTHREAD_COND_T: usize = 48; + +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; + +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; + +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; + +// errno.h +pub const EPERM: c_int = 1; + +pub const ENOENT: c_int = 2; + +pub const ESRCH: c_int = 3; + +pub const EINTR: c_int = 4; + +pub const EIO: c_int = 5; + +pub const ENXIO: c_int = 6; + +pub const E2BIG: c_int = 7; + +pub const ENOEXEC: c_int = 8; + +pub const EBADF: c_int = 9; + +pub const ECHILD: c_int = 10; + +pub const EAGAIN: c_int = 11; + +pub const ENOMEM: c_int = 12; + +pub const EACCES: c_int = 13; + +pub const EFAULT: c_int = 14; + +pub const ENOTBLK: c_int = 15; + +pub const EBUSY: c_int = 16; + +pub const EEXIST: c_int = 17; + +pub const EXDEV: c_int = 18; + +pub const ENODEV: c_int = 19; + +pub const ENOTDIR: c_int = 20; + +pub const EISDIR: c_int = 21; + +pub const EINVAL: c_int = 22; + +pub const ENFILE: c_int = 23; + +pub const EMFILE: c_int = 24; + +pub const ENOTTY: c_int = 25; + +pub const ETXTBSY: c_int = 26; + +pub const EFBIG: c_int = 27; + +pub const ENOSPC: c_int = 28; + +pub const ESPIPE: c_int = 29; + +pub const EROFS: c_int = 30; + +pub const EMLINK: c_int = 31; + +pub const EPIPE: c_int = 32; + +pub const EDOM: c_int = 33; + +pub const ERANGE: c_int = 34; + +pub const EDEADLK: c_int = 35; + +pub const ENAMETOOLONG: c_int = 36; + +pub const ENOLCK: c_int = 37; + +pub const ENOSYS: c_int = 38; + +pub const ENOTEMPTY: c_int = 39; + +pub const ELOOP: c_int = 40; + +pub const EWOULDBLOCK: c_int = EAGAIN; + +pub const ENOMSG: c_int = 42; + +pub const EIDRM: c_int = 43; + +pub const ECHRNG: c_int = 44; + +pub const EL2NSYNC: c_int = 45; + +pub const EL3HLT: c_int = 46; + +pub const EL3RST: c_int = 47; + +pub const ELNRNG: c_int = 48; + +pub const EUNATCH: c_int = 49; + +pub const ENOCSI: c_int = 50; + +pub const EL2HLT: c_int = 51; + +pub const EBADE: c_int = 52; + +pub const EBADR: c_int = 53; + +pub const EXFULL: c_int = 54; + +pub const ENOANO: c_int = 55; + +pub const EBADRQC: c_int = 56; + +pub const EBADSLT: c_int = 57; + +pub const EDEADLOCK: c_int = EDEADLK; + +pub const EBFONT: c_int = 59; + +pub const ENOSTR: c_int = 60; + +pub const ENODATA: c_int = 61; + +pub const ETIME: c_int = 62; + +pub const ENOSR: c_int = 63; + +pub const ENONET: c_int = 64; + +pub const ENOPKG: c_int = 65; + +pub const EREMOTE: c_int = 66; + +pub const ENOLINK: c_int = 67; + +pub const EADV: c_int = 68; + +pub const ESRMNT: c_int = 69; + +pub const ECOMM: c_int = 70; + +pub const EPROTO: c_int = 71; + +pub const EMULTIHOP: c_int = 72; + +pub const EDOTDOT: c_int = 73; + +pub const EBADMSG: c_int = 74; + +pub const EOVERFLOW: c_int = 75; + +pub const ENOTUNIQ: c_int = 76; + +pub const EBADFD: c_int = 77; + +pub const EREMCHG: c_int = 78; + +pub const ELIBACC: c_int = 79; + +pub const ELIBBAD: c_int = 80; + +pub const ELIBSCN: c_int = 81; + +pub const ELIBMAX: c_int = 82; + +pub const ELIBEXEC: c_int = 83; + +pub const EILSEQ: c_int = 84; + +pub const ERESTART: c_int = 85; + +pub const ESTRPIPE: c_int = 86; + +pub const EUSERS: c_int = 87; + +pub const ENOTSOCK: c_int = 88; + +pub const EDESTADDRREQ: c_int = 89; + +pub const EMSGSIZE: c_int = 90; + +pub const EPROTOTYPE: c_int = 91; + +pub const ENOPROTOOPT: c_int = 92; + +pub const EPROTONOSUPPOR: c_int = 93; + +pub const ESOCKTNOSUPPOR: c_int = 94; + +pub const EOPNOTSUPP: c_int = 95; + +pub const ENOTSUP: c_int = EOPNOTSUPP; + +pub const EPFNOSUPPORT: c_int = 96; + +pub const EAFNOSUPPORT: c_int = 97; + +pub const EADDRINUSE: c_int = 98; + +pub const EADDRNOTAVAIL: c_int = 99; + +pub const ENETDOWN: c_int = 100; + +pub const ENETUNREACH: c_int = 101; + +pub const ENETRESET: c_int = 102; + +pub const ECONNABORTED: c_int = 103; + +pub const ECONNRESET: c_int = 104; + +pub const ENOBUFS: c_int = 105; + +pub const EISCONN: c_int = 106; + +pub const ENOTCONN: c_int = 107; + +pub const ESHUTDOWN: c_int = 108; + +pub const ETOOMANYREFS: c_int = 109; + +pub const ETIMEDOUT: c_int = 110; + +pub const ECONNREFUSED: c_int = 111; + +pub const EHOSTDOWN: c_int = 112; + +pub const EHOSTUNREACH: c_int = 113; + +pub const EALREADY: c_int = 114; + +pub const EINPROGRESS: c_int = 115; + +pub const ESTALE: c_int = 116; + +pub const EUCLEAN: c_int = 117; + +pub const ENOTNAM: c_int = 118; + +pub const ENAVAIL: c_int = 119; + +pub const EISNAM: c_int = 120; + +pub const EREMOTEIO: c_int = 121; + +pub const EDQUOT: c_int = 122; + +pub const ENOMEDIUM: c_int = 123; + +pub const EMEDIUMTYPE: c_int = 124; + +pub const ECANCELED: c_int = 125; + +pub const ENOKEY: c_int = 126; + +pub const EKEYEXPIRED: c_int = 127; + +pub const EKEYREVOKED: c_int = 128; + +pub const EKEYREJECTED: c_int = 129; + +pub const EOWNERDEAD: c_int = 130; + +pub const ENOTRECOVERABLE: c_int = 131; + +pub const ERFKILL: c_int = 132; + +pub const EHWPOISON: c_int = 133; + +// pthread_attr.h +pub const TEESMP_THREAD_ATTR_CA_WILDCARD: c_int = 0; + +pub const TEESMP_THREAD_ATTR_CA_INHERIT: c_int = -1; + +pub const TEESMP_THREAD_ATTR_TASK_ID_INHERIT: c_int = -1; + +pub const TEESMP_THREAD_ATTR_HAS_SHADOW: c_int = 0x1; + +pub const TEESMP_THREAD_ATTR_NO_SHADOW: c_int = 0x0; + +// unistd.h +pub const _SC_ARG_MAX: c_int = 0; + +pub const _SC_CHILD_MAX: c_int = 1; + +pub const _SC_CLK_TCK: c_int = 2; + +pub const _SC_NGROUPS_MAX: c_int = 3; + +pub const _SC_OPEN_MAX: c_int = 4; + +pub const _SC_STREAM_MAX: c_int = 5; + +pub const _SC_TZNAME_MAX: c_int = 6; + +pub const _SC_JOB_CONTROL: c_int = 7; + +pub const _SC_SAVED_IDS: c_int = 8; + +pub const _SC_REALTIME_SIGNALS: c_int = 9; + +pub const _SC_PRIORITY_SCHEDULING: c_int = 10; + +pub const _SC_TIMERS: c_int = 11; + +pub const _SC_ASYNCHRONOUS_IO: c_int = 12; + +pub const _SC_PRIORITIZED_IO: c_int = 13; + +pub const _SC_SYNCHRONIZED_IO: c_int = 14; + +pub const _SC_FSYNC: c_int = 15; + +pub const _SC_MAPPED_FILES: c_int = 16; + +pub const _SC_MEMLOCK: c_int = 17; + +pub const _SC_MEMLOCK_RANGE: c_int = 18; + +pub const _SC_MEMORY_PROTECTION: c_int = 19; + +pub const _SC_MESSAGE_PASSING: c_int = 20; + +pub const _SC_SEMAPHORES: c_int = 21; + +pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 22; + +pub const _SC_AIO_LISTIO_MAX: c_int = 23; + +pub const _SC_AIO_MAX: c_int = 24; + +pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 25; + +pub const _SC_DELAYTIMER_MAX: c_int = 26; + +pub const _SC_MQ_OPEN_MAX: c_int = 27; + +pub const _SC_MQ_PRIO_MAX: c_int = 28; + +pub const _SC_VERSION: c_int = 29; + +pub const _SC_PAGE_SIZE: c_int = 30; + +pub const _SC_PAGESIZE: c_int = 30; /* !! */ + +pub const _SC_RTSIG_MAX: c_int = 31; + +pub const _SC_SEM_NSEMS_MAX: c_int = 32; + +pub const _SC_SEM_VALUE_MAX: c_int = 33; + +pub const _SC_SIGQUEUE_MAX: c_int = 34; + +pub const _SC_TIMER_MAX: c_int = 35; + +pub const _SC_BC_BASE_MAX: c_int = 36; + +pub const _SC_BC_DIM_MAX: c_int = 37; + +pub const _SC_BC_SCALE_MAX: c_int = 38; + +pub const _SC_BC_STRING_MAX: c_int = 39; + +pub const _SC_COLL_WEIGHTS_MAX: c_int = 40; + +pub const _SC_EXPR_NEST_MAX: c_int = 42; + +pub const _SC_LINE_MAX: c_int = 43; + +pub const _SC_RE_DUP_MAX: c_int = 44; + +pub const _SC_2_VERSION: c_int = 46; + +pub const _SC_2_C_BIND: c_int = 47; + +pub const _SC_2_C_DEV: c_int = 48; + +pub const _SC_2_FORT_DEV: c_int = 49; + +pub const _SC_2_FORT_RUN: c_int = 50; + +pub const _SC_2_SW_DEV: c_int = 51; + +pub const _SC_2_LOCALEDEF: c_int = 52; + +pub const _SC_UIO_MAXIOV: c_int = 60; /* !! */ + +pub const _SC_IOV_MAX: c_int = 60; + +pub const _SC_THREADS: c_int = 67; + +pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 68; + +pub const _SC_GETGR_R_SIZE_MAX: c_int = 69; + +pub const _SC_GETPW_R_SIZE_MAX: c_int = 70; + +pub const _SC_LOGIN_NAME_MAX: c_int = 71; + +pub const _SC_TTY_NAME_MAX: c_int = 72; + +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 73; + +pub const _SC_THREAD_KEYS_MAX: c_int = 74; + +pub const _SC_THREAD_STACK_MIN: c_int = 75; + +pub const _SC_THREAD_THREADS_MAX: c_int = 76; + +pub const _SC_THREAD_ATTR_STACKADDR: c_int = 77; + +pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 78; + +pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 79; + +pub const _SC_THREAD_PRIO_INHERIT: c_int = 80; + +pub const _SC_THREAD_PRIO_PROTECT: c_int = 81; + +pub const _SC_THREAD_PROCESS_SHARED: c_int = 82; + +pub const _SC_NPROCESSORS_CONF: c_int = 83; + +pub const _SC_NPROCESSORS_ONLN: c_int = 84; + +pub const _SC_PHYS_PAGES: c_int = 85; + +pub const _SC_AVPHYS_PAGES: c_int = 86; + +pub const _SC_ATEXIT_MAX: c_int = 87; + +pub const _SC_PASS_MAX: c_int = 88; + +pub const _SC_XOPEN_VERSION: c_int = 89; + +pub const _SC_XOPEN_XCU_VERSION: c_int = 90; + +pub const _SC_XOPEN_UNIX: c_int = 91; + +pub const _SC_XOPEN_CRYPT: c_int = 92; + +pub const _SC_XOPEN_ENH_I18N: c_int = 93; + +pub const _SC_XOPEN_SHM: c_int = 94; + +pub const _SC_2_CHAR_TERM: c_int = 95; + +pub const _SC_2_UPE: c_int = 97; + +pub const _SC_XOPEN_XPG2: c_int = 98; + +pub const _SC_XOPEN_XPG3: c_int = 99; + +pub const _SC_XOPEN_XPG4: c_int = 100; + +pub const _SC_NZERO: c_int = 109; + +pub const _SC_XBS5_ILP32_OFF32: c_int = 125; + +pub const _SC_XBS5_ILP32_OFFBIG: c_int = 126; + +pub const _SC_XBS5_LP64_OFF64: c_int = 127; + +pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 128; + +pub const _SC_XOPEN_LEGACY: c_int = 129; + +pub const _SC_XOPEN_REALTIME: c_int = 130; + +pub const _SC_XOPEN_REALTIME_THREADS: c_int = 131; + +pub const _SC_ADVISORY_INFO: c_int = 132; + +pub const _SC_BARRIERS: c_int = 133; + +pub const _SC_CLOCK_SELECTION: c_int = 137; + +pub const _SC_CPUTIME: c_int = 138; + +pub const _SC_THREAD_CPUTIME: c_int = 139; + +pub const _SC_MONOTONIC_CLOCK: c_int = 149; + +pub const _SC_READER_WRITER_LOCKS: c_int = 153; + +pub const _SC_SPIN_LOCKS: c_int = 154; + +pub const _SC_REGEXP: c_int = 155; + +pub const _SC_SHELL: c_int = 157; + +pub const _SC_SPAWN: c_int = 159; + +pub const _SC_SPORADIC_SERVER: c_int = 160; + +pub const _SC_THREAD_SPORADIC_SERVER: c_int = 161; + +pub const _SC_TIMEOUTS: c_int = 164; + +pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 165; + +pub const _SC_2_PBS: c_int = 168; + +pub const _SC_2_PBS_ACCOUNTING: c_int = 169; + +pub const _SC_2_PBS_LOCATE: c_int = 170; + +pub const _SC_2_PBS_MESSAGE: c_int = 171; + +pub const _SC_2_PBS_TRACK: c_int = 172; + +pub const _SC_SYMLOOP_MAX: c_int = 173; + +pub const _SC_STREAMS: c_int = 174; + +pub const _SC_2_PBS_CHECKPOINT: c_int = 175; + +pub const _SC_V6_ILP32_OFF32: c_int = 176; + +pub const _SC_V6_ILP32_OFFBIG: c_int = 177; + +pub const _SC_V6_LP64_OFF64: c_int = 178; + +pub const _SC_V6_LPBIG_OFFBIG: c_int = 179; + +pub const _SC_HOST_NAME_MAX: c_int = 180; + +pub const _SC_TRACE: c_int = 181; + +pub const _SC_TRACE_EVENT_FILTER: c_int = 182; + +pub const _SC_TRACE_INHERIT: c_int = 183; + +pub const _SC_TRACE_LOG: c_int = 184; + +pub const _SC_IPV6: c_int = 235; + +pub const _SC_RAW_SOCKETS: c_int = 236; + +pub const _SC_V7_ILP32_OFF32: c_int = 237; + +pub const _SC_V7_ILP32_OFFBIG: c_int = 238; + +pub const _SC_V7_LP64_OFF64: c_int = 239; + +pub const _SC_V7_LPBIG_OFFBIG: c_int = 240; + +pub const _SC_SS_REPL_MAX: c_int = 241; + +pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 242; + +pub const _SC_TRACE_NAME_MAX: c_int = 243; + +pub const _SC_TRACE_SYS_MAX: c_int = 244; + +pub const _SC_TRACE_USER_EVENT_MAX: c_int = 245; + +pub const _SC_XOPEN_STREAMS: c_int = 246; + +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 247; + +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 248; + +// limits.h +pub const PTHREAD_KEYS_MAX: c_int = 128; + +pub const PTHREAD_STACK_MIN: c_int = 2048; + +pub const PTHREAD_DESTRUCTOR_ITERATIONS: c_int = 4; + +pub const SEM_VALUE_MAX: c_int = 0x7fffffff; + +pub const SEM_NSEMS_MAX: c_int = 256; + +pub const DELAYTIMER_MAX: c_int = 0x7fffffff; + +pub const MQ_PRIO_MAX: c_int = 32768; + +pub const LOGIN_NAME_MAX: c_int = 256; + +// time.h +pub const CLOCK_REALTIME: clockid_t = 0; + +pub const CLOCK_MONOTONIC: clockid_t = 1; + +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + size: [0; __SIZEOF_PTHREAD_MUTEX_T], +}; + +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + size: [0; __SIZEOF_PTHREAD_COND_T], +}; + +pub const PTHREAD_MUTEX_NORMAL: c_int = 0; + +pub const PTHREAD_MUTEX_RECURSIVE: c_int = 1; + +pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 2; + +pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL; + +pub const PTHREAD_MUTEX_STALLED: c_int = 0; + +pub const PTHREAD_MUTEX_ROBUST: c_int = 1; + +extern "C" { + // ---- ALLOC ----------------------------------------------------------------------------- + pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; + + pub fn malloc(size: size_t) -> *mut c_void; + + pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; + + pub fn aligned_alloc(align: size_t, len: size_t) -> *mut c_void; + + pub fn free(p: *mut c_void); + + pub fn posix_memalign(memptr: *mut *mut c_void, align: size_t, size: size_t) -> c_int; + + pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + + pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t; + + pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; + + pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + + pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; + + pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; + + // ----- PTHREAD --------------------------------------------------------------------------- + pub fn pthread_self() -> pthread_t; + + pub fn pthread_join(native: pthread_t, value: *mut *mut c_void) -> c_int; + + // detach or pthread_attr_setdetachstate must not be called! + //pub fn pthread_detach(thread: pthread_t) -> c_int; + + pub fn pthread_exit(value: *mut c_void) -> !; + + pub fn pthread_attr_init(attr: *mut pthread_attr_t) -> c_int; + + pub fn pthread_attr_destroy(attr: *mut pthread_attr_t) -> c_int; + + pub fn pthread_attr_getstack( + attr: *const pthread_attr_t, + stackaddr: *mut *mut c_void, + stacksize: *mut size_t, + ) -> c_int; + + pub fn pthread_attr_setstacksize(attr: *mut pthread_attr_t, stack_size: size_t) -> c_int; + + pub fn pthread_attr_getstacksize(attr: *const pthread_attr_t, size: *mut size_t) -> c_int; + + pub fn pthread_attr_settee( + attr: *mut pthread_attr_t, + ca: c_int, + task_id: c_int, + shadow: c_int, + ) -> c_int; + + // C-TA API do not include this interface, but TA can use. + pub fn sched_yield() -> c_int; + + pub fn pthread_key_create( + key: *mut pthread_key_t, + dtor: Option, + ) -> c_int; + + pub fn pthread_key_delete(key: pthread_key_t) -> c_int; + + pub fn pthread_getspecific(key: pthread_key_t) -> *mut c_void; + + pub fn pthread_setspecific(key: pthread_key_t, value: *const c_void) -> c_int; + + pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> c_int; + + pub fn pthread_mutex_init( + lock: *mut pthread_mutex_t, + attr: *const pthread_mutexattr_t, + ) -> c_int; + + pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> c_int; + + pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> c_int; + + pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> c_int; + + pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> c_int; + + pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> c_int; + + pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, _type: c_int) -> c_int; + + pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, pshared: c_int) -> c_int; + + pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> c_int; + + pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> c_int; + + pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) -> c_int; + + pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> c_int; + + pub fn pthread_cond_wait(cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t) -> c_int; + + pub fn pthread_cond_timedwait( + cond: *mut pthread_cond_t, + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + + pub fn pthread_mutexattr_setrobust(attr: *mut pthread_mutexattr_t, robustness: c_int) -> c_int; + + pub fn pthread_create( + native: *mut pthread_t, + attr: *const pthread_attr_t, + f: extern "C" fn(*mut c_void) -> *mut c_void, + value: *mut c_void, + ) -> c_int; + + pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: c_int) -> c_int; + + pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> c_int; + + pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> c_int; + + pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> c_int; + + pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> c_int; + + pub fn pthread_setschedprio(native: pthread_t, priority: c_int) -> c_int; + + pub fn pthread_once(pot: *mut pthread_once_t, f: Option) -> c_int; + + pub fn pthread_equal(p1: pthread_t, p2: pthread_t) -> c_int; + + pub fn pthread_mutexattr_setprotocol(a: *mut pthread_mutexattr_t, protocol: c_int) -> c_int; + + pub fn pthread_attr_setstack( + attr: *mut pthread_attr_t, + stack: *mut c_void, + size: size_t, + ) -> c_int; + + pub fn pthread_setaffinity_np(td: pthread_t, size: size_t, set: *const cpu_set_t) -> c_int; + + pub fn pthread_getaffinity_np(td: pthread_t, size: size_t, set: *mut cpu_set_t) -> c_int; + + // stdio.h + pub fn printf(fmt: *const c_char, ...) -> c_int; + + pub fn scanf(fmt: *const c_char, ...) -> c_int; + + pub fn snprintf(s: *mut c_char, n: size_t, fmt: *const c_char, ...) -> c_int; + + pub fn sprintf(s: *mut c_char, fmt: *const c_char, ...) -> c_int; + + pub fn vsnprintf(s: *mut c_char, n: size_t, fmt: *const c_char, ap: va_list) -> c_int; + + pub fn vsprintf(s: *mut c_char, fmt: *const c_char, ap: va_list) -> c_int; + + // Not available. + //pub fn pthread_setname_np(thread: pthread_t, name: *const c_char) -> c_int; + + pub fn abort() -> !; + + // Not available. + //pub fn prctl(op: c_int, ...) -> c_int; + + pub fn sched_getaffinity(pid: pid_t, cpusetsize: size_t, cpuset: *mut cpu_set_t) -> c_int; + + pub fn sched_setaffinity(pid: pid_t, cpusetsize: size_t, cpuset: *const cpu_set_t) -> c_int; + + // sysconf is currently only implemented as a stub. + pub fn sysconf(name: c_int) -> c_long; + + // mman.h + pub fn mmap( + addr: *mut c_void, + len: size_t, + prot: c_int, + flags: c_int, + fd: c_int, + offset: off_t, + ) -> *mut c_void; + pub fn munmap(addr: *mut c_void, len: size_t) -> c_int; + + // errno.h + pub fn __errno_location() -> *mut c_int; + + pub fn strerror(e: c_int) -> *mut c_char; + + // time.h + pub fn clock_gettime(clock_id: clockid_t, tp: *mut timespec) -> c_int; + + // unistd + pub fn getpid() -> pid_t; + + // time + pub fn gettimeofday(tv: *mut timeval, tz: *mut c_void) -> c_int; + + pub fn strftime( + restrict: *mut c_char, + sz: size_t, + _restrict: *const c_char, + __restrict: *const tm, + ) -> size_t; + + pub fn time(t: *mut time_t) -> time_t; + + // sem + pub fn sem_close(sem: *mut sem_t) -> c_int; + + pub fn sem_destroy(sem: *mut sem_t) -> c_int; + + pub fn sem_getvalue(sem: *mut sem_t, valp: *mut c_int) -> c_int; + + pub fn sem_init(sem: *mut sem_t, pshared: c_int, value: c_uint) -> c_int; + + pub fn sem_open(name: *const c_char, flags: c_int, ...) -> *mut sem_t; + + pub fn sem_post(sem: *mut sem_t) -> c_int; + + pub fn sem_unlink(name: *const c_char) -> c_int; + + pub fn sem_wait(sem: *mut sem_t) -> c_int; + + // locale + pub fn setlocale(cat: c_int, name: *const c_char) -> *mut c_char; + + pub fn strcoll(l: *const c_char, r: *const c_char) -> c_int; + + pub fn strxfrm(dest: *mut c_char, src: *const c_char, n: size_t) -> size_t; + + pub fn strtod(s: *const c_char, p: *mut *mut c_char) -> c_double; + + // multibyte + pub fn mbrtowc(wc: *mut wchar_t, src: *const c_char, n: size_t, st: *mut mbstate_t) -> size_t; + + pub fn wcrtomb(s: *mut c_char, wc: wchar_t, st: *mut mbstate_t) -> size_t; + + pub fn wctob(c: wint_t) -> c_int; + + // prng + pub fn srandom(seed: c_uint); + + pub fn initstate(seed: c_uint, state: *mut c_char, size: size_t) -> *mut c_char; + + pub fn setstate(state: *mut c_char) -> *mut c_char; + + pub fn random() -> c_long; + + // string + pub fn strchr(s: *const c_char, c: c_int) -> *mut c_char; + + pub fn strlen(cs: *const c_char) -> size_t; + + pub fn strcmp(l: *const c_char, r: *const c_char) -> c_int; + + pub fn strcpy(dest: *mut c_char, src: *const c_char) -> *mut c_char; + + pub fn strncmp(_l: *const c_char, r: *const c_char, n: size_t) -> c_int; + + pub fn strncpy(dest: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; + + pub fn strnlen(cs: *const c_char, n: size_t) -> size_t; + + pub fn strrchr(s: *const c_char, c: c_int) -> *mut c_char; + + pub fn strstr(h: *const c_char, n: *const c_char) -> *mut c_char; + + pub fn wcschr(s: *const wchar_t, c: wchar_t) -> *mut wchar_t; + + pub fn wcslen(s: *const wchar_t) -> size_t; + + // ctype + pub fn isalpha(c: c_int) -> c_int; + + pub fn isascii(c: c_int) -> c_int; + + pub fn isdigit(c: c_int) -> c_int; + + pub fn islower(c: c_int) -> c_int; + + pub fn isprint(c: c_int) -> c_int; + + pub fn isspace(c: c_int) -> c_int; + + pub fn iswctype(wc: wint_t, ttype: wctype_t) -> c_int; + + pub fn iswdigit(wc: wint_t) -> c_int; + + pub fn iswlower(wc: wint_t) -> c_int; + + pub fn iswspace(wc: wint_t) -> c_int; + + pub fn iswupper(wc: wint_t) -> c_int; + + pub fn towupper(wc: wint_t) -> wint_t; + + pub fn towlower(wc: wint_t) -> wint_t; + + // cmath + pub fn atan(x: c_double) -> c_double; + + pub fn ceil(x: c_double) -> c_double; + + pub fn ceilf(x: c_float) -> c_float; + + pub fn exp(x: c_double) -> c_double; + + pub fn fabs(x: c_double) -> c_double; + + pub fn floor(x: c_double) -> c_double; + + pub fn frexp(x: c_double, e: *mut c_int) -> c_double; + + pub fn log(x: c_double) -> c_double; + + pub fn log2(x: c_double) -> c_double; + + pub fn pow(x: c_double, y: c_double) -> c_double; + + pub fn roundf(x: c_float) -> c_float; + + pub fn scalbn(x: c_double, n: c_int) -> c_double; + + pub fn sqrt(x: c_double) -> c_double; + + // stdlib + pub fn abs(x: c_int) -> c_int; + + pub fn atof(s: *const c_char) -> c_double; + + pub fn atoi(s: *const c_char) -> c_int; + + pub fn atol(s: *const c_char) -> c_long; + + pub fn atoll(s: *const c_char) -> c_longlong; + + pub fn bsearch( + key: *const c_void, + base: *const c_void, + nel: size_t, + width: size_t, + cmp: cmpfunc, + ) -> *mut c_void; + + pub fn div(num: c_int, den: c_int) -> div_t; + + pub fn ecvt(x: c_double, n: c_int, dp: *mut c_int, sign: *mut c_int) -> *mut c_char; + + pub fn imaxabs(a: intmax_t) -> intmax_t; + + pub fn llabs(a: c_longlong) -> c_longlong; + + pub fn qsort(base: *mut c_void, nel: size_t, width: size_t, cmp: cmpfunc); + + pub fn strtoul(s: *const c_char, p: *mut *mut c_char, base: c_int) -> c_ulong; + + pub fn strtol(s: *const c_char, p: *mut *mut c_char, base: c_int) -> c_long; + + pub fn wcstod(s: *const wchar_t, p: *mut *mut wchar_t) -> c_double; +} + +pub fn errno() -> c_int { + unsafe { *__errno_location() } +} + +pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int { + let mut s: u32 = 0; + let size_of_mask = core::mem::size_of_val(&cpuset.bits[0]); + + for i in cpuset.bits[..(size / size_of_mask)].iter() { + s += i.count_ones(); + } + s as c_int +} + +pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int { + CPU_COUNT_S(core::mem::size_of::(), cpuset) +} diff --git a/src/rust/vendor/libc/src/unix/aix/mod.rs b/src/rust/vendor/libc/src/unix/aix/mod.rs index 325d7d654..b3ce43a37 100644 --- a/src/rust/vendor/libc/src/unix/aix/mod.rs +++ b/src/rust/vendor/libc/src/unix/aix/mod.rs @@ -1,7 +1,6 @@ -pub type c_char = i8; +pub type c_char = u8; pub type caddr_t = *mut ::c_char; -// FIXME: clockid_t must be c_long, but time.rs accepts only i32 -pub type clockid_t = ::c_int; +pub type clockid_t = ::c_longlong; pub type blkcnt_t = ::c_long; pub type clock_t = ::c_int; pub type daddr_t = ::c_long; @@ -1762,6 +1761,7 @@ pub const PRIO_USER: ::c_int = 2; pub const RUSAGE_THREAD: ::c_int = 1; pub const RLIM_SAVED_MAX: ::c_ulong = RLIM_INFINITY - 1; pub const RLIM_SAVED_CUR: ::c_ulong = RLIM_INFINITY - 2; +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::c_int = 10; // sys/sched.h @@ -2669,6 +2669,7 @@ extern "C" { attr: *const ::pthread_attr_t, guardsize: *mut ::size_t, ) -> ::c_int; + pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int; pub fn pthread_attr_getschedparam( attr: *const ::pthread_attr_t, param: *mut sched_param, @@ -2888,7 +2889,7 @@ extern "C" { host: *mut ::c_char, hostlen: ::size_t, serv: *mut ::c_char, - sevlen: ::size_t, + servlen: ::size_t, flags: ::c_int, ) -> ::c_int; pub fn getpagesize() -> ::c_int; @@ -3273,7 +3274,13 @@ extern "C" { pub fn splice(socket1: ::c_int, socket2: ::c_int, flags: ::c_int) -> ::c_int; pub fn srand(seed: ::c_uint); pub fn srand48(seed: ::c_long); - pub fn stat64(path: *const c_char, buf: *mut stat64) -> ::c_int; + pub fn stat64(path: *const ::c_char, buf: *mut stat64) -> ::c_int; + pub fn stat64at( + dirfd: ::c_int, + path: *const ::c_char, + buf: *mut stat64, + flags: ::c_int, + ) -> ::c_int; pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; pub fn statfs64(path: *const ::c_char, buf: *mut statfs64) -> ::c_int; pub fn statvfs64(path: *const ::c_char, buf: *mut statvfs64) -> ::c_int; diff --git a/src/rust/vendor/libc/src/unix/bsd/apple/b64/aarch64/align.rs b/src/rust/vendor/libc/src/unix/bsd/apple/b64/aarch64/align.rs index 29db97ec7..131e15b69 100644 --- a/src/rust/vendor/libc/src/unix/bsd/apple/b64/aarch64/align.rs +++ b/src/rust/vendor/libc/src/unix/bsd/apple/b64/aarch64/align.rs @@ -15,7 +15,6 @@ s! { pub uc_link: *mut ::ucontext_t, pub uc_mcsize: usize, pub uc_mcontext: mcontext_t, - __mcontext_data: __darwin_mcontext64, } pub struct __darwin_mcontext64 { diff --git a/src/rust/vendor/libc/src/unix/bsd/apple/mod.rs b/src/rust/vendor/libc/src/unix/bsd/apple/mod.rs index c6f254ea5..d9e3831ea 100644 --- a/src/rust/vendor/libc/src/unix/bsd/apple/mod.rs +++ b/src/rust/vendor/libc/src/unix/bsd/apple/mod.rs @@ -145,6 +145,16 @@ pub type CCRNGStatus = ::CCCryptorStatus; pub type copyfile_state_t = *mut ::c_void; pub type copyfile_flags_t = u32; +pub type copyfile_callback_t = ::Option< + extern "C" fn( + ::c_int, + ::c_int, + copyfile_state_t, + *const ::c_char, + *const ::c_char, + *mut ::c_void, + ) -> ::c_int, +>; pub type attrgroup_t = u32; pub type vol_capabilities_set_t = [u32; 4]; @@ -368,6 +378,25 @@ s! { pub fst_bytesalloc: ::off_t, } + pub struct fpunchhole_t { + pub fp_flags: ::c_uint, /* unused */ + pub reserved: ::c_uint, /* (to maintain 8-byte alignment) */ + pub fp_offset: ::off_t, /* IN: start of the region */ + pub fp_length: ::off_t, /* IN: size of the region */ + } + + pub struct ftrimactivefile_t { + pub fta_offset: ::off_t, + pub fta_length: ::off_t, + } + + pub struct fspecread_t { + pub fsr_flags: ::c_uint, + pub reserved: ::c_uint, + pub fsr_offset: ::off_t, + pub fsr_length: ::off_t, + } + pub struct radvisory { pub ra_offset: ::off_t, pub ra_count: ::c_int, @@ -768,7 +797,7 @@ s! { pub struct sockaddr_ndrv { pub snd_len: ::c_uchar, pub snd_family: ::c_uchar, - pub snd_name: [::c_uchar; 16] // IFNAMSIZ from if.h + pub snd_name: [::c_uchar; ::IFNAMSIZ], } // sys/socket.h @@ -1100,6 +1129,58 @@ s! { pub validattr: attribute_set_t, pub nativeattr: attribute_set_t, } + + #[cfg_attr(libc_packedN, repr(packed(4)))] + pub struct ifconf { + pub ifc_len: ::c_int, + #[cfg(libc_union)] + pub ifc_ifcu: __c_anonymous_ifc_ifcu, + #[cfg(not(libc_union))] + pub ifc_ifcu: *mut ifreq, + } + + #[cfg_attr(libc_align, repr(align(8)))] + pub struct tcp_connection_info { + pub tcpi_state: u8, + pub tcpi_snd_wscale: u8, + pub tcpi_rcv_wscale: u8, + __pad1: u8, + pub tcpi_options: u32, + pub tcpi_flags: u32, + pub tcpi_rto: u32, + pub tcpi_maxseg: u32, + pub tcpi_snd_ssthresh: u32, + pub tcpi_snd_cwnd: u32, + pub tcpi_snd_wnd: u32, + pub tcpi_snd_sbbytes: u32, + pub tcpi_rcv_wnd: u32, + pub tcpi_rttcur: u32, + pub tcpi_srtt: u32, + pub tcpi_rttvar: u32, + pub tcpi_tfo_cookie_req: u32, + pub tcpi_tfo_cookie_rcv: u32, + pub tcpi_tfo_syn_loss: u32, + pub tcpi_tfo_syn_data_sent: u32, + pub tcpi_tfo_syn_data_acked: u32, + pub tcpi_tfo_syn_data_rcv: u32, + pub tcpi_tfo_cookie_req_rcv: u32, + pub tcpi_tfo_cookie_sent: u32, + pub tcpi_tfo_cookie_invalid: u32, + pub tcpi_tfo_cookie_wrong: u32, + pub tcpi_tfo_no_cookie_rcv: u32, + pub tcpi_tfo_heuristics_disable: u32, + pub tcpi_tfo_send_blackhole: u32, + pub tcpi_tfo_recv_blackhole: u32, + pub tcpi_tfo_onebyte_proxy: u32, + __pad2: u32, + pub tcpi_txpackets: u64, + pub tcpi_txbytes: u64, + pub tcpi_txretransmitbytes: u64, + pub tcpi_rxpackets: u64, + pub tcpi_rxbytes: u64, + pub tcpi_rxoutoforderbytes: u64, + pub tcpi_rxretransmitpackets: u64, + } } s_no_extra_traits! { @@ -1390,6 +1471,60 @@ s_no_extra_traits! { pub svm_port: ::c_uint, pub svm_cid: ::c_uint, } + + pub struct ifdevmtu { + pub ifdm_current: ::c_int, + pub ifdm_min: ::c_int, + pub ifdm_max: ::c_int, + } + + #[cfg(libc_union)] + pub union __c_anonymous_ifk_data { + pub ifk_ptr: *mut ::c_void, + pub ifk_value: ::c_int, + } + + #[cfg_attr(libc_packedN, repr(packed(4)))] + pub struct ifkpi { + pub ifk_module_id: ::c_uint, + pub ifk_type: ::c_uint, + #[cfg(libc_union)] + pub ifk_data: __c_anonymous_ifk_data, + } + + #[cfg(libc_union)] + pub union __c_anonymous_ifr_ifru { + pub ifru_addr: ::sockaddr, + pub ifru_dstaddr: ::sockaddr, + pub ifru_broadaddr: ::sockaddr, + pub ifru_flags: ::c_short, + pub ifru_metrics: ::c_int, + pub ifru_mtu: ::c_int, + pub ifru_phys: ::c_int, + pub ifru_media: ::c_int, + pub ifru_intval: ::c_int, + pub ifru_data: *mut ::c_char, + pub ifru_devmtu: ifdevmtu, + pub ifru_kpi: ifkpi, + pub ifru_wake_flags: u32, + pub ifru_route_refcnt: u32, + pub ifru_cap: [::c_int; 2], + pub ifru_functional_type: u32, + } + + pub struct ifreq { + pub ifr_name: [::c_char; ::IFNAMSIZ], + #[cfg(libc_union)] + pub ifr_ifru: __c_anonymous_ifr_ifru, + #[cfg(not(libc_union))] + pub ifr_ifru: ::sockaddr, + } + + #[cfg(libc_union)] + pub union __c_anonymous_ifc_ifcu { + pub ifcu_buf: *mut ::c_char, + pub ifcu_req: *mut ifreq, + } } impl siginfo_t { @@ -2738,6 +2873,222 @@ cfg_if! { svm_cid.hash(state); } } + + impl PartialEq for ifdevmtu { + fn eq(&self, other: &ifdevmtu) -> bool { + self.ifdm_current == other.ifdm_current + && self.ifdm_min == other.ifdm_min + && self.ifdm_max == other.ifdm_max + } + } + + impl Eq for ifdevmtu {} + + impl ::fmt::Debug for ifdevmtu { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifdevmtu") + .field("ifdm_current", &self.ifdm_current) + .field("ifdm_min", &self.ifdm_min) + .field("ifdm_max", &self.ifdm_max) + .finish() + } + } + + impl ::hash::Hash for ifdevmtu { + fn hash(&self, state: &mut H) { + self.ifdm_current.hash(state); + self.ifdm_min.hash(state); + self.ifdm_max.hash(state); + } + } + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_ifk_data { + fn eq(&self, other: &__c_anonymous_ifk_data) -> bool { + unsafe { + self.ifk_ptr == other.ifk_ptr + && self.ifk_value == other.ifk_value + } + } + } + + #[cfg(libc_union)] + impl Eq for __c_anonymous_ifk_data {} + + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ifk_data { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("__c_anonymous_ifk_data") + .field("ifk_ptr", unsafe { &self.ifk_ptr }) + .field("ifk_value", unsafe { &self.ifk_value }) + .finish() + } + } + #[cfg(libc_union)] + impl ::hash::Hash for __c_anonymous_ifk_data { + fn hash(&self, state: &mut H) { + unsafe { + self.ifk_ptr.hash(state); + self.ifk_value.hash(state); + } + } + } + + impl PartialEq for ifkpi { + fn eq(&self, other: &ifkpi) -> bool { + self.ifk_module_id == other.ifk_module_id + && self.ifk_type == other.ifk_type + } + } + + impl Eq for ifkpi {} + + impl ::fmt::Debug for ifkpi { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifkpi") + .field("ifk_module_id", &self.ifk_module_id) + .field("ifk_type", &self.ifk_type) + .finish() + } + } + + impl ::hash::Hash for ifkpi { + fn hash(&self, state: &mut H) { + self.ifk_module_id.hash(state); + self.ifk_type.hash(state); + } + } + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_ifr_ifru { + fn eq(&self, other: &__c_anonymous_ifr_ifru) -> bool { + unsafe { + self.ifru_addr == other.ifru_addr + && self.ifru_dstaddr == other.ifru_dstaddr + && self.ifru_broadaddr == other.ifru_broadaddr + && self.ifru_flags == other.ifru_flags + && self.ifru_metrics == other.ifru_metrics + && self.ifru_mtu == other.ifru_mtu + && self.ifru_phys == other.ifru_phys + && self.ifru_media == other.ifru_media + && self.ifru_intval == other.ifru_intval + && self.ifru_data == other.ifru_data + && self.ifru_devmtu == other.ifru_devmtu + && self.ifru_kpi == other.ifru_kpi + && self.ifru_wake_flags == other.ifru_wake_flags + && self.ifru_route_refcnt == other.ifru_route_refcnt + && self.ifru_cap.iter().zip(other.ifru_cap.iter()).all(|(a,b)| a == b) + && self.ifru_functional_type == other.ifru_functional_type + } + } + } + + #[cfg(libc_union)] + impl Eq for __c_anonymous_ifr_ifru {} + + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ifr_ifru { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("__c_anonymous_ifr_ifru") + .field("ifru_addr", unsafe { &self.ifru_addr }) + .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) + .field("ifru_broadaddr", unsafe { &self.ifru_broadaddr }) + .field("ifru_flags", unsafe { &self.ifru_flags }) + .field("ifru_metrics", unsafe { &self.ifru_metrics }) + .field("ifru_mtu", unsafe { &self.ifru_mtu }) + .field("ifru_phys", unsafe { &self.ifru_phys }) + .field("ifru_media", unsafe { &self.ifru_media }) + .field("ifru_intval", unsafe { &self.ifru_intval }) + .field("ifru_data", unsafe { &self.ifru_data }) + .field("ifru_devmtu", unsafe { &self.ifru_devmtu }) + .field("ifru_kpi", unsafe { &self.ifru_kpi }) + .field("ifru_wake_flags", unsafe { &self.ifru_wake_flags }) + .field("ifru_route_refcnt", unsafe { &self.ifru_route_refcnt }) + .field("ifru_cap", unsafe { &self.ifru_cap }) + .field("ifru_functional_type", unsafe { &self.ifru_functional_type }) + .finish() + } + } + + #[cfg(libc_union)] + impl ::hash::Hash for __c_anonymous_ifr_ifru { + fn hash(&self, state: &mut H) { + unsafe { + self.ifru_addr.hash(state); + self.ifru_dstaddr.hash(state); + self.ifru_broadaddr.hash(state); + self.ifru_flags.hash(state); + self.ifru_metrics.hash(state); + self.ifru_mtu.hash(state); + self.ifru_phys.hash(state); + self.ifru_media.hash(state); + self.ifru_intval.hash(state); + self.ifru_data.hash(state); + self.ifru_devmtu.hash(state); + self.ifru_kpi.hash(state); + self.ifru_wake_flags.hash(state); + self.ifru_route_refcnt.hash(state); + self.ifru_cap.hash(state); + self.ifru_functional_type.hash(state); + } + } + } + + impl PartialEq for ifreq { + fn eq(&self, other: &ifreq) -> bool { + self.ifr_name == other.ifr_name + && self.ifr_ifru == other.ifr_ifru + } + } + + impl Eq for ifreq {} + + impl ::fmt::Debug for ifreq { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifreq") + .field("ifr_name", &self.ifr_name) + .field("ifr_ifru", &self.ifr_ifru) + .finish() + } + } + + impl ::hash::Hash for ifreq { + fn hash(&self, state: &mut H) { + self.ifr_name.hash(state); + self.ifr_ifru.hash(state); + } + } + + #[cfg(libc_union)] + impl Eq for __c_anonymous_ifc_ifcu {} + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_ifc_ifcu { + fn eq(&self, other: &__c_anonymous_ifc_ifcu) -> bool { + unsafe { + self.ifcu_buf == other.ifcu_buf && + self.ifcu_req == other.ifcu_req + } + } + } + + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ifc_ifcu { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifc_ifcu") + .field("ifcu_buf", unsafe { &self.ifcu_buf }) + .field("ifcu_req", unsafe { &self.ifcu_req }) + .finish() + } + } + + #[cfg(libc_union)] + impl ::hash::Hash for __c_anonymous_ifc_ifcu { + fn hash(&self, state: &mut H) { + unsafe { self.ifcu_buf.hash(state) }; + unsafe { self.ifcu_req.hash(state) }; + } + } } } @@ -2876,6 +3227,24 @@ pub const _PC_PIPE_BUF: ::c_int = 6; pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; pub const _PC_NO_TRUNC: ::c_int = 8; pub const _PC_VDISABLE: ::c_int = 9; +pub const _PC_NAME_CHARS_MAX: ::c_int = 10; +pub const _PC_CASE_SENSITIVE: ::c_int = 11; +pub const _PC_CASE_PRESERVING: ::c_int = 12; +pub const _PC_EXTENDED_SECURITY_NP: ::c_int = 13; +pub const _PC_AUTH_OPAQUE_NP: ::c_int = 14; +pub const _PC_2_SYMLINKS: ::c_int = 15; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 16; +pub const _PC_ASYNC_IO: ::c_int = 17; +pub const _PC_FILESIZEBITS: ::c_int = 18; +pub const _PC_PRIO_IO: ::c_int = 19; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 20; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 21; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 22; +pub const _PC_REC_XFER_ALIGN: ::c_int = 23; +pub const _PC_SYMLINK_MAX: ::c_int = 24; +pub const _PC_SYNC_IO: ::c_int = 25; +pub const _PC_XATTR_SIZE_BITS: ::c_int = 26; +pub const _PC_MIN_HOLE_SIZE: ::c_int = 27; pub const O_EVTONLY: ::c_int = 0x00008000; pub const O_NOCTTY: ::c_int = 0x00020000; pub const O_DIRECTORY: ::c_int = 0x00100000; @@ -2883,6 +3252,8 @@ pub const O_SYMLINK: ::c_int = 0x00200000; pub const O_DSYNC: ::c_int = 0x00400000; pub const O_CLOEXEC: ::c_int = 0x01000000; pub const O_NOFOLLOW_ANY: ::c_int = 0x20000000; +pub const O_EXEC: ::c_int = 0x40000000; +pub const O_SEARCH: ::c_int = O_EXEC | O_DIRECTORY; pub const S_IFIFO: mode_t = 4096; pub const S_IFCHR: mode_t = 8192; pub const S_IFBLK: mode_t = 24576; @@ -3231,6 +3602,9 @@ pub const F_GLOBAL_NOCACHE: ::c_int = 55; pub const F_NODIRECT: ::c_int = 62; pub const F_LOG2PHYS_EXT: ::c_int = 65; pub const F_BARRIERFSYNC: ::c_int = 85; +pub const F_PUNCHHOLE: ::c_int = 99; +pub const F_TRIM_ACTIVE_FILE: ::c_int = 100; +pub const F_SPECULATIVE_READ: ::c_int = 101; pub const F_GETPATH_NOFIRMLINK: ::c_int = 102; pub const F_ALLOCATECONTIG: ::c_uint = 0x02; @@ -3764,6 +4138,7 @@ pub const IP_RECVDSTADDR: ::c_int = 7; pub const IP_ADD_MEMBERSHIP: ::c_int = 12; pub const IP_DROP_MEMBERSHIP: ::c_int = 13; pub const IP_RECVIF: ::c_int = 20; +pub const IP_RECVTTL: ::c_int = 24; pub const IP_BOUND_IF: ::c_int = 25; pub const IP_PKTINFO: ::c_int = 26; pub const IP_RECVTOS: ::c_int = 27; @@ -3773,6 +4148,7 @@ pub const IPV6_LEAVE_GROUP: ::c_int = 13; pub const IPV6_CHECKSUM: ::c_int = 26; pub const IPV6_RECVTCLASS: ::c_int = 35; pub const IPV6_TCLASS: ::c_int = 36; +pub const IPV6_RECVHOPLIMIT: ::c_int = 37; pub const IPV6_PKTINFO: ::c_int = 46; pub const IPV6_HOPLIMIT: ::c_int = 47; pub const IPV6_RECVPKTINFO: ::c_int = 61; @@ -3790,6 +4166,7 @@ pub const TCP_KEEPINTVL: ::c_int = 0x101; pub const TCP_KEEPCNT: ::c_int = 0x102; /// Enable/Disable TCP Fastopen on this socket pub const TCP_FASTOPEN: ::c_int = 0x105; +pub const TCP_CONNECTION_INFO: ::c_int = 0x106; pub const SOL_LOCAL: ::c_int = 0; @@ -4189,6 +4566,7 @@ pub const RTLD_FIRST: ::c_int = 0x100; pub const RTLD_NODELETE: ::c_int = 0x80; pub const RTLD_NOLOAD: ::c_int = 0x10; pub const RTLD_GLOBAL: ::c_int = 0x8; +pub const RTLD_MAIN_ONLY: *mut ::c_void = -5isize as *mut ::c_void; pub const _WSTOPPED: ::c_int = 0o177; @@ -4686,12 +5064,12 @@ pub const MNT_SNAPSHOT: ::c_int = 0x40000000; pub const MNT_NOBLOCK: ::c_int = 0x00020000; // sys/spawn.h: -pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; -pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; -pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x04; -pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x08; -pub const POSIX_SPAWN_SETEXEC: ::c_int = 0x40; -pub const POSIX_SPAWN_START_SUSPENDED: ::c_int = 0x80; +pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x0001; +pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x0002; +pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x0004; +pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x0008; +pub const POSIX_SPAWN_SETEXEC: ::c_int = 0x0040; +pub const POSIX_SPAWN_START_SUSPENDED: ::c_int = 0x0080; pub const POSIX_SPAWN_CLOEXEC_DEFAULT: ::c_int = 0x4000; // sys/ipc.h: @@ -4910,6 +5288,19 @@ pub const COPYFILE_PROGRESS: ::c_int = 4; pub const COPYFILE_CONTINUE: ::c_int = 0; pub const COPYFILE_SKIP: ::c_int = 1; pub const COPYFILE_QUIT: ::c_int = 2; +pub const COPYFILE_STATE_SRC_FD: ::c_int = 1; +pub const COPYFILE_STATE_SRC_FILENAME: ::c_int = 2; +pub const COPYFILE_STATE_DST_FD: ::c_int = 3; +pub const COPYFILE_STATE_DST_FILENAME: ::c_int = 4; +pub const COPYFILE_STATE_QUARANTINE: ::c_int = 5; +pub const COPYFILE_STATE_STATUS_CB: ::c_int = 6; +pub const COPYFILE_STATE_STATUS_CTX: ::c_int = 7; +pub const COPYFILE_STATE_COPIED: ::c_int = 8; +pub const COPYFILE_STATE_XATTRNAME: ::c_int = 9; +pub const COPYFILE_STATE_WAS_CLONED: ::c_int = 10; +pub const COPYFILE_STATE_SRC_BSIZE: ::c_int = 11; +pub const COPYFILE_STATE_DST_BSIZE: ::c_int = 12; +pub const COPYFILE_STATE_BSIZE: ::c_int = 13; // pub const ATTR_BIT_MAP_COUNT: ::c_ushort = 5; @@ -5277,12 +5668,6 @@ extern "C" { pub fn asctime(tm: *const ::tm) -> *mut ::c_char; pub fn ctime(clock: *const time_t) -> *mut ::c_char; pub fn getdate(datestr: *const ::c_char) -> *mut ::tm; - pub fn strftime( - buf: *mut ::c_char, - maxsize: ::size_t, - format: *const ::c_char, - timeptr: *const ::tm, - ) -> ::size_t; pub fn strptime( buf: *const ::c_char, format: *const ::c_char, @@ -5297,7 +5682,7 @@ extern "C" { host: *mut ::c_char, hostlen: ::socklen_t, serv: *mut ::c_char, - sevlen: ::socklen_t, + servlen: ::socklen_t, flags: ::c_int, ) -> ::c_int; pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; @@ -5733,6 +6118,18 @@ extern "C" { subpref: *mut ::cpu_subtype_t, ocount: *mut ::size_t, ) -> ::c_int; + pub fn posix_spawnattr_getbinpref_np( + attr: *const posix_spawnattr_t, + count: ::size_t, + pref: *mut ::cpu_type_t, + ocount: *mut ::size_t, + ) -> ::c_int; + pub fn posix_spawnattr_setbinpref_np( + attr: *mut posix_spawnattr_t, + count: ::size_t, + pref: *mut ::cpu_type_t, + ocount: *mut ::size_t, + ) -> ::c_int; pub fn posix_spawnattr_set_qos_class_np( attr: *mut posix_spawnattr_t, qos_class: ::qos_class_t, @@ -5818,6 +6215,10 @@ extern "C" { state: copyfile_state_t, flags: copyfile_flags_t, ) -> ::c_int; + pub fn copyfile_state_free(s: copyfile_state_t) -> ::c_int; + pub fn copyfile_state_alloc() -> copyfile_state_t; + pub fn copyfile_state_get(s: copyfile_state_t, flags: u32, dst: *mut ::c_void) -> ::c_int; + pub fn copyfile_state_set(s: copyfile_state_t, flags: u32, src: *const ::c_void) -> ::c_int; // Added in macOS 10.13 // ISO/IEC 9899:2011 ("ISO C11") K.3.7.4.1 @@ -5902,7 +6303,7 @@ extern "C" { buffersize: u32, ) -> ::c_int; pub fn proc_kmsgbuf(buffer: *mut ::c_void, buffersize: u32) -> ::c_int; - pub fn proc_libversion(major: *mut ::c_int, mintor: *mut ::c_int) -> ::c_int; + pub fn proc_libversion(major: *mut ::c_int, minor: *mut ::c_int) -> ::c_int; pub fn proc_pid_rusage(pid: ::c_int, flavor: ::c_int, buffer: *mut rusage_info_t) -> ::c_int; // Available from Big Sur @@ -5919,6 +6320,7 @@ extern "C" { pub fn sethostid(hostid: ::c_long); pub fn CCRandomGenerateBytes(bytes: *mut ::c_void, size: ::size_t) -> ::CCRNGStatus; + pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; pub fn _NSGetExecutablePath(buf: *mut ::c_char, bufsize: *mut u32) -> ::c_int; pub fn _NSGetEnviron() -> *mut *mut *mut ::c_char; @@ -5937,6 +6339,13 @@ extern "C" { inheritance: ::vm_inherit_t, ) -> ::kern_return_t; + pub fn vm_allocate( + target_task: vm_map_t, + address: *mut vm_address_t, + size: vm_size_t, + flags: ::c_int, + ) -> ::kern_return_t; + pub fn vm_deallocate( target_task: vm_map_t, address: vm_address_t, @@ -6058,6 +6467,20 @@ extern "C" { pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; pub fn basename(path: *mut ::c_char) -> *mut ::c_char; + + pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + pub fn freadlink(fd: ::c_int, buf: *mut ::c_char, size: ::size_t) -> ::c_int; + pub fn execvP( + file: *const ::c_char, + search_path: *const ::c_char, + argv: *const *mut ::c_char, + ) -> ::c_int; } pub unsafe fn mach_task_self() -> ::mach_port_t { @@ -6072,7 +6495,7 @@ cfg_if! { } } cfg_if! { - if #[cfg(any(target_os = "macos", target_os = "ios"))] { + if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos", target_os = "visionos"))] { extern "C" { pub fn memmem( haystack: *const ::c_void, diff --git a/src/rust/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs index b3a5be449..6ade7949a 100644 --- a/src/rust/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1678,6 +1678,12 @@ extern "C" { pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; pub fn basename(path: *mut ::c_char) -> *mut ::c_char; + pub fn getmntinfo(mntbufp: *mut *mut ::statfs, flags: ::c_int) -> ::c_int; + pub fn getmntvinfo( + mntbufp: *mut *mut ::statfs, + mntvbufp: *mut *mut ::statvfs, + flags: ::c_int, + ) -> ::c_int; } #[link(name = "rt")] diff --git a/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index 0e04a12e7..ec6bce2a0 100644 --- a/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -1,4 +1,4 @@ -// APIs in FreeBSD 14 that have changed since 11. +// APIs in FreeBSD 13 that have changed since 11. pub type nlink_t = u64; pub type dev_t = u64; diff --git a/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index a86ca6e7c..160a4baae 100644 --- a/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -1,4 +1,4 @@ -// APIs in FreeBSD 13 that have changed since 11. +// APIs in FreeBSD 14 that have changed since 11. pub type nlink_t = u64; pub type dev_t = u64; diff --git a/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs new file mode 100644 index 000000000..80c6fa168 --- /dev/null +++ b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs @@ -0,0 +1,34 @@ +#[repr(C)] +#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] +pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_nlink: ::nlink_t, + pub st_mode: ::mode_t, + st_padding0: i16, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + st_padding1: i32, + pub st_rdev: ::dev_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_birthtime: ::time_t, + pub st_birthtime_nsec: ::c_long, + pub st_size: ::off_t, + pub st_blocks: ::blkcnt_t, + pub st_blksize: ::blksize_t, + pub st_flags: ::fflags_t, + pub st_gen: u64, + pub st_spare: [u64; 10], +} + +impl ::Copy for ::stat {} +impl ::Clone for ::stat { + fn clone(&self) -> ::stat { + *self + } +} diff --git a/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs new file mode 100644 index 000000000..d73215a68 --- /dev/null +++ b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -0,0 +1,546 @@ +// APIs in FreeBSD 15 that have changed since 11. + +pub type nlink_t = u64; +pub type dev_t = u64; +pub type ino_t = ::c_ulong; +pub type shmatt_t = ::c_uint; +pub type kpaddr_t = u64; +pub type kssize_t = i64; +pub type domainset_t = __c_anonymous_domainset; + +s! { + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + } + + pub struct kevent { + pub ident: ::uintptr_t, + pub filter: ::c_short, + pub flags: ::c_ushort, + pub fflags: ::c_uint, + pub data: i64, + pub udata: *mut ::c_void, + pub ext: [u64; 4], + } + + pub struct kvm_page { + pub kp_version: ::u_int, + pub kp_paddr: ::kpaddr_t, + pub kp_kmap_vaddr: ::kvaddr_t, + pub kp_dmap_vaddr: ::kvaddr_t, + pub kp_prot: ::vm_prot_t, + pub kp_offset: ::off_t, + pub kp_len: ::size_t, + } + + pub struct __c_anonymous_domainset { + _priv: [::uintptr_t; 4], + } + + pub struct kinfo_proc { + /// Size of this structure. + pub ki_structsize: ::c_int, + /// Reserved: layout identifier. + pub ki_layout: ::c_int, + /// Address of command arguments. + pub ki_args: *mut ::pargs, + // This is normally "struct proc". + /// Address of proc. + pub ki_paddr: *mut ::c_void, + // This is normally "struct user". + /// Kernel virtual address of u-area. + pub ki_addr: *mut ::c_void, + // This is normally "struct vnode". + /// Pointer to trace file. + pub ki_tracep: *mut ::c_void, + // This is normally "struct vnode". + /// Pointer to executable file. + pub ki_textvp: *mut ::c_void, + // This is normally "struct filedesc". + /// Pointer to open file info. + pub ki_fd: *mut ::c_void, + // This is normally "struct vmspace". + /// Pointer to kernel vmspace struct. + pub ki_vmspace: *mut ::c_void, + /// Sleep address. + pub ki_wchan: *const ::c_void, + /// Process identifier. + pub ki_pid: ::pid_t, + /// Parent process ID. + pub ki_ppid: ::pid_t, + /// Process group ID. + pub ki_pgid: ::pid_t, + /// tty process group ID. + pub ki_tpgid: ::pid_t, + /// Process session ID. + pub ki_sid: ::pid_t, + /// Terminal session ID. + pub ki_tsid: ::pid_t, + /// Job control counter. + pub ki_jobc: ::c_short, + /// Unused (just here for alignment). + pub ki_spare_short1: ::c_short, + /// Controlling tty dev. + pub ki_tdev_freebsd11: u32, + /// Signals arrived but not delivered. + pub ki_siglist: ::sigset_t, + /// Current signal mask. + pub ki_sigmask: ::sigset_t, + /// Signals being ignored. + pub ki_sigignore: ::sigset_t, + /// Signals being caught by user. + pub ki_sigcatch: ::sigset_t, + /// Effective user ID. + pub ki_uid: ::uid_t, + /// Real user ID. + pub ki_ruid: ::uid_t, + /// Saved effective user ID. + pub ki_svuid: ::uid_t, + /// Real group ID. + pub ki_rgid: ::gid_t, + /// Saved effective group ID. + pub ki_svgid: ::gid_t, + /// Number of groups. + pub ki_ngroups: ::c_short, + /// Unused (just here for alignment). + pub ki_spare_short2: ::c_short, + /// Groups. + pub ki_groups: [::gid_t; ::KI_NGROUPS], + /// Virtual size. + pub ki_size: ::vm_size_t, + /// Current resident set size in pages. + pub ki_rssize: ::segsz_t, + /// Resident set size before last swap. + pub ki_swrss: ::segsz_t, + /// Text size (pages) XXX. + pub ki_tsize: ::segsz_t, + /// Data size (pages) XXX. + pub ki_dsize: ::segsz_t, + /// Stack size (pages). + pub ki_ssize: ::segsz_t, + /// Exit status for wait & stop signal. + pub ki_xstat: ::u_short, + /// Accounting flags. + pub ki_acflag: ::u_short, + /// %cpu for process during `ki_swtime`. + pub ki_pctcpu: ::fixpt_t, + /// Time averaged value of `ki_cpticks`. + pub ki_estcpu: ::u_int, + /// Time since last blocked. + pub ki_slptime: ::u_int, + /// Time swapped in or out. + pub ki_swtime: ::u_int, + /// Number of copy-on-write faults. + pub ki_cow: ::u_int, + /// Real time in microsec. + pub ki_runtime: u64, + /// Starting time. + pub ki_start: ::timeval, + /// Time used by process children. + pub ki_childtime: ::timeval, + /// P_* flags. + pub ki_flag: ::c_long, + /// KI_* flags (below). + pub ki_kiflag: ::c_long, + /// Kernel trace points. + pub ki_traceflag: ::c_int, + /// S* process status. + pub ki_stat: ::c_char, + /// Process "nice" value. + pub ki_nice: i8, // signed char + /// Process lock (prevent swap) count. + pub ki_lock: ::c_char, + /// Run queue index. + pub ki_rqindex: ::c_char, + /// Which cpu we are on. + pub ki_oncpu_old: ::c_uchar, + /// Last cpu we were on. + pub ki_lastcpu_old: ::c_uchar, + /// Thread name. + pub ki_tdname: [::c_char; ::TDNAMLEN + 1], + /// Wchan message. + pub ki_wmesg: [::c_char; ::WMESGLEN + 1], + /// Setlogin name. + pub ki_login: [::c_char; ::LOGNAMELEN + 1], + /// Lock name. + pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], + /// Command name. + pub ki_comm: [::c_char; ::COMMLEN + 1], + /// Emulation name. + pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], + /// Login class. + pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], + /// More thread name. + pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], + /// Spare string space. + pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq + /// Spare room for growth. + pub ki_spareints: [::c_int; ::KI_NSPARE_INT], + /// Controlling tty dev. + pub ki_tdev: u64, + /// Which cpu we are on. + pub ki_oncpu: ::c_int, + /// Last cpu we were on. + pub ki_lastcpu: ::c_int, + /// PID of tracing process. + pub ki_tracer: ::c_int, + /// P2_* flags. + pub ki_flag2: ::c_int, + /// Default FIB number. + pub ki_fibnum: ::c_int, + /// Credential flags. + pub ki_cr_flags: ::u_int, + /// Process jail ID. + pub ki_jid: ::c_int, + /// Number of threads in total. + pub ki_numthreads: ::c_int, + /// Thread ID. + pub ki_tid: ::lwpid_t, + /// Process priority. + pub ki_pri: ::priority, + /// Process rusage statistics. + pub ki_rusage: ::rusage, + /// rusage of children processes. + pub ki_rusage_ch: ::rusage, + // This is normally "struct pcb". + /// Kernel virtual addr of pcb. + pub ki_pcb: *mut ::c_void, + /// Kernel virtual addr of stack. + pub ki_kstack: *mut ::c_void, + /// User convenience pointer. + pub ki_udata: *mut ::c_void, + // This is normally "struct thread". + pub ki_tdaddr: *mut ::c_void, + // This is normally "struct pwddesc". + /// Pointer to process paths info. + pub ki_pd: *mut ::c_void, + pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR], + pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG], + /// PS_* flags. + pub ki_sflag: ::c_long, + /// kthread flag. + pub ki_tdflags: ::c_long, + } +} + +s_no_extra_traits! { + pub struct dirent { + pub d_fileno: ::ino_t, + pub d_off: ::off_t, + pub d_reclen: u16, + pub d_type: u8, + d_pad0: u8, + pub d_namlen: u16, + d_pad1: u16, + pub d_name: [::c_char; 256], + } + + pub struct statfs { + pub f_version: u32, + pub f_type: u32, + pub f_flags: u64, + pub f_bsize: u64, + pub f_iosize: u64, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: i64, + pub f_files: u64, + pub f_ffree: i64, + pub f_syncwrites: u64, + pub f_asyncwrites: u64, + pub f_syncreads: u64, + pub f_asyncreads: u64, + f_spare: [u64; 10], + pub f_namemax: u32, + pub f_owner: ::uid_t, + pub f_fsid: ::fsid_t, + f_charspare: [::c_char; 80], + pub f_fstypename: [::c_char; 16], + pub f_mntfromname: [::c_char; 1024], + pub f_mntonname: [::c_char; 1024], + } + + pub struct vnstat { + pub vn_fileid: u64, + pub vn_size: u64, + pub vn_dev: u64, + pub vn_fsid: u64, + pub vn_mntdir: *mut ::c_char, + pub vn_type: ::c_int, + pub vn_mode: u16, + pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for statfs { + fn eq(&self, other: &statfs) -> bool { + self.f_version == other.f_version + && self.f_type == other.f_type + && self.f_flags == other.f_flags + && self.f_bsize == other.f_bsize + && self.f_iosize == other.f_iosize + && self.f_blocks == other.f_blocks + && self.f_bfree == other.f_bfree + && self.f_bavail == other.f_bavail + && self.f_files == other.f_files + && self.f_ffree == other.f_ffree + && self.f_syncwrites == other.f_syncwrites + && self.f_asyncwrites == other.f_asyncwrites + && self.f_syncreads == other.f_syncreads + && self.f_asyncreads == other.f_asyncreads + && self.f_namemax == other.f_namemax + && self.f_owner == other.f_owner + && self.f_fsid == other.f_fsid + && self.f_fstypename == other.f_fstypename + && self + .f_mntfromname + .iter() + .zip(other.f_mntfromname.iter()) + .all(|(a,b)| a == b) + && self + .f_mntonname + .iter() + .zip(other.f_mntonname.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for statfs {} + impl ::fmt::Debug for statfs { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("statfs") + .field("f_bsize", &self.f_bsize) + .field("f_iosize", &self.f_iosize) + .field("f_blocks", &self.f_blocks) + .field("f_bfree", &self.f_bfree) + .field("f_bavail", &self.f_bavail) + .field("f_files", &self.f_files) + .field("f_ffree", &self.f_ffree) + .field("f_syncwrites", &self.f_syncwrites) + .field("f_asyncwrites", &self.f_asyncwrites) + .field("f_syncreads", &self.f_syncreads) + .field("f_asyncreads", &self.f_asyncreads) + .field("f_namemax", &self.f_namemax) + .field("f_owner", &self.f_owner) + .field("f_fsid", &self.f_fsid) + .field("f_fstypename", &self.f_fstypename) + .field("f_mntfromname", &&self.f_mntfromname[..]) + .field("f_mntonname", &&self.f_mntonname[..]) + .finish() + } + } + impl ::hash::Hash for statfs { + fn hash(&self, state: &mut H) { + self.f_version.hash(state); + self.f_type.hash(state); + self.f_flags.hash(state); + self.f_bsize.hash(state); + self.f_iosize.hash(state); + self.f_blocks.hash(state); + self.f_bfree.hash(state); + self.f_bavail.hash(state); + self.f_files.hash(state); + self.f_ffree.hash(state); + self.f_syncwrites.hash(state); + self.f_asyncwrites.hash(state); + self.f_syncreads.hash(state); + self.f_asyncreads.hash(state); + self.f_namemax.hash(state); + self.f_owner.hash(state); + self.f_fsid.hash(state); + self.f_charspare.hash(state); + self.f_fstypename.hash(state); + self.f_mntfromname.hash(state); + self.f_mntonname.hash(state); + } + } + + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_fileno == other.d_fileno + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self.d_namlen == other.d_namlen + && self + .d_name[..self.d_namlen as _] + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for dirent {} + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_fileno", &self.d_fileno) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + .field("d_namlen", &self.d_namlen) + .field("d_name", &&self.d_name[..self.d_namlen as _]) + .finish() + } + } + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_fileno.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_namlen.hash(state); + self.d_name[..self.d_namlen as _].hash(state); + } + } + + impl PartialEq for vnstat { + fn eq(&self, other: &vnstat) -> bool { + let self_vn_devname: &[::c_char] = &self.vn_devname; + let other_vn_devname: &[::c_char] = &other.vn_devname; + + self.vn_fileid == other.vn_fileid && + self.vn_size == other.vn_size && + self.vn_dev == other.vn_dev && + self.vn_fsid == other.vn_fsid && + self.vn_mntdir == other.vn_mntdir && + self.vn_type == other.vn_type && + self.vn_mode == other.vn_mode && + self_vn_devname == other_vn_devname + } + } + impl Eq for vnstat {} + impl ::fmt::Debug for vnstat { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + let self_vn_devname: &[::c_char] = &self.vn_devname; + + f.debug_struct("vnstat") + .field("vn_fileid", &self.vn_fileid) + .field("vn_size", &self.vn_size) + .field("vn_dev", &self.vn_dev) + .field("vn_fsid", &self.vn_fsid) + .field("vn_mntdir", &self.vn_mntdir) + .field("vn_type", &self.vn_type) + .field("vn_mode", &self.vn_mode) + .field("vn_devname", &self_vn_devname) + .finish() + } + } + impl ::hash::Hash for vnstat { + fn hash(&self, state: &mut H) { + let self_vn_devname: &[::c_char] = &self.vn_devname; + + self.vn_fileid.hash(state); + self.vn_size.hash(state); + self.vn_dev.hash(state); + self.vn_fsid.hash(state); + self.vn_mntdir.hash(state); + self.vn_type.hash(state); + self.vn_mode.hash(state); + self_vn_devname.hash(state); + } + } + } +} + +pub const RAND_MAX: ::c_int = 0x7fff_ffff; +pub const ELAST: ::c_int = 97; + +pub const KF_TYPE_EVENTFD: ::c_int = 13; + +/// max length of devicename +pub const SPECNAMELEN: ::c_int = 255; +pub const KI_NSPARE_PTR: usize = 5; + +/// domainset policies +pub const DOMAINSET_POLICY_INVALID: ::c_int = 0; +pub const DOMAINSET_POLICY_ROUNDROBIN: ::c_int = 1; +pub const DOMAINSET_POLICY_FIRSTTOUCH: ::c_int = 2; +pub const DOMAINSET_POLICY_PREFER: ::c_int = 3; +pub const DOMAINSET_POLICY_INTERLEAVE: ::c_int = 4; + +pub const MINCORE_SUPER: ::c_int = 0x60; + +safe_f! { + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + let mut dev = 0; + dev |= ((major & 0xffffff00) as dev_t) << 32; + dev |= ((major & 0x000000ff) as dev_t) << 8; + dev |= ((minor & 0x0000ff00) as dev_t) << 24; + dev |= ((minor & 0xffff00ff) as dev_t) << 0; + dev + } +} + +f! { + pub fn major(dev: ::dev_t) -> ::c_int { + (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int + } + + pub fn minor(dev: ::dev_t) -> ::c_int { + (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int + } +} + +extern "C" { + pub fn setgrent(); + pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; + pub fn freelocale(loc: ::locale_t); + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtyp: ::c_long, + msgflg: ::c_int, + ) -> ::ssize_t; + + pub fn cpuset_getdomain( + level: ::cpulevel_t, + which: ::cpuwhich_t, + id: ::id_t, + setsize: ::size_t, + mask: *mut ::domainset_t, + policy: *mut ::c_int, + ) -> ::c_int; + pub fn cpuset_setdomain( + level: ::cpulevel_t, + which: ::cpuwhich_t, + id: ::id_t, + setsize: ::size_t, + mask: *const ::domainset_t, + policy: ::c_int, + ) -> ::c_int; + + pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; + pub fn basename(path: *mut ::c_char) -> *mut ::c_char; +} + +#[link(name = "kvm")] +extern "C" { + pub fn kvm_kerndisp(kd: *mut ::kvm_t) -> ::kssize_t; +} + +cfg_if! { + if #[cfg(any(target_arch = "x86_64", + target_arch = "aarch64", + target_arch = "riscv64"))] { + mod b64; + pub use self::b64::*; + } +} + +cfg_if! { + if #[cfg(target_arch = "x86_64")] { + mod x86_64; + pub use self::x86_64::*; + } +} diff --git a/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs new file mode 100644 index 000000000..01d0b4328 --- /dev/null +++ b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs @@ -0,0 +1,12 @@ +pub const PROC_KPTI_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN; +pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: ::c_int = 1; +pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: ::c_int = 2; +pub const PROC_KPTI_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 1; +pub const PROC_KPTI_STATUS_ACTIVE: ::c_int = 0x80000000; +pub const PROC_LA_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN + 2; +pub const PROC_LA_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 3; +pub const PROC_LA_CTL_LA48_ON_EXEC: ::c_int = 1; +pub const PROC_LA_CTL_LA57_ON_EXEC: ::c_int = 2; +pub const PROC_LA_CTL_DEFAULT_ON_EXEC: ::c_int = 3; +pub const PROC_LA_STATUS_LA48: ::c_int = 0x01000000; +pub const PROC_LA_STATUS_LA57: ::c_int = 0x02000000; diff --git a/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs index 4138af576..195c6cb3e 100644 --- a/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -48,6 +48,8 @@ pub type cpusetid_t = ::c_int; pub type sctp_assoc_t = u32; +pub type eventfd_t = u64; + #[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] #[repr(u32)] pub enum devstat_support_flags { @@ -365,9 +367,13 @@ s! { } pub struct cpuset_t { - #[cfg(target_pointer_width = "64")] + #[cfg(all(any(freebsd15, freebsd14), target_pointer_width = "64"))] + __bits: [::c_long; 16], + #[cfg(all(any(freebsd15, freebsd14), target_pointer_width = "32"))] + __bits: [::c_long; 32], + #[cfg(all(not(any(freebsd15, freebsd14)), target_pointer_width = "64"))] __bits: [::c_long; 4], - #[cfg(target_pointer_width = "32")] + #[cfg(all(not(any(freebsd15, freebsd14)), target_pointer_width = "32"))] __bits: [::c_long; 8], } @@ -591,9 +597,9 @@ s! { pub sa_peer: ::sockaddr_storage, pub type_: ::c_int, pub dname: [::c_char; 32], - #[cfg(any(freebsd12, freebsd13, freebsd14))] + #[cfg(any(freebsd12, freebsd13, freebsd14, freebsd15))] pub sendq: ::c_uint, - #[cfg(any(freebsd12, freebsd13, freebsd14))] + #[cfg(any(freebsd12, freebsd13, freebsd14, freebsd15))] pub recvq: ::c_uint, } @@ -967,6 +973,8 @@ s! { pub ifc_len: ::c_int, #[cfg(libc_union)] pub ifc_ifcu: __c_anonymous_ifc_ifcu, + #[cfg(not(libc_union))] + pub ifc_ifcu: *mut ifreq, } pub struct au_mask_t { @@ -996,6 +1004,8 @@ s! { pub pcbcnt: u32, } + // Note: this structure will change in a backwards-incompatible way in + // FreeBSD 15. pub struct tcp_info { pub tcpi_state: u8, pub __tcpi_ca_state: u8, @@ -1036,25 +1046,41 @@ s! { pub tcpi_snd_rexmitpack: u32, pub tcpi_rcv_ooopack: u32, pub tcpi_snd_zerowin: u32, - #[cfg(freebsd14)] + #[cfg(any(freebsd15, freebsd14))] pub tcpi_delivered_ce: u32, - #[cfg(freebsd14)] + #[cfg(any(freebsd15, freebsd14))] pub tcpi_received_ce: u32, - #[cfg(freebsd14)] + #[cfg(any(freebsd15, freebsd14))] pub __tcpi_delivered_e1_bytes: u32, - #[cfg(freebsd14)] + #[cfg(any(freebsd15, freebsd14))] pub __tcpi_delivered_e0_bytes: u32, - #[cfg(freebsd14)] + #[cfg(any(freebsd15, freebsd14))] pub __tcpi_delivered_ce_bytes: u32, - #[cfg(freebsd14)] + #[cfg(any(freebsd15, freebsd14))] pub __tcpi_received_e1_bytes: u32, - #[cfg(freebsd14)] + #[cfg(any(freebsd15, freebsd14))] pub __tcpi_received_e0_bytes: u32, - #[cfg(freebsd14)] + #[cfg(any(freebsd15, freebsd14))] pub __tcpi_received_ce_bytes: u32, + #[cfg(any(freebsd15, freebsd14))] + pub tcpi_total_tlp: u32, + #[cfg(any(freebsd15, freebsd14))] + pub tcpi_total_tlp_bytes: u64, + #[cfg(any(freebsd15, freebsd14))] + pub tcpi_snd_una: u32, + #[cfg(any(freebsd15, freebsd14))] + pub tcpi_snd_max: u32, + #[cfg(any(freebsd15, freebsd14))] + pub tcpi_rcv_numsacks: u32, + #[cfg(any(freebsd15, freebsd14))] + pub tcpi_rcv_adv: u32, + #[cfg(any(freebsd15, freebsd14))] + pub tcpi_dupacks: u32, #[cfg(freebsd14)] - pub __tcpi_pad: [u32; 19], - #[cfg(not(freebsd14))] + pub __tcpi_pad: [u32; 10], + #[cfg(freebsd15)] + pub __tcpi_pad: [u32; 14], + #[cfg(not(any(freebsd15, freebsd14)))] pub __tcpi_pad: [u32; 26], } @@ -1382,9 +1408,9 @@ s_no_extra_traits! { } pub struct ptsstat { - #[cfg(any(freebsd12, freebsd13, freebsd14))] + #[cfg(any(freebsd12, freebsd13, freebsd14, freebsd15))] pub dev: u64, - #[cfg(not(any(freebsd12, freebsd13, freebsd14)))] + #[cfg(not(any(freebsd12, freebsd13, freebsd14, freebsd15)))] pub dev: u32, pub devname: [::c_char; SPECNAMELEN as usize + 1], } @@ -2597,7 +2623,13 @@ pub const DEVSTAT_N_TRANS_FLAGS: ::c_int = 4; pub const DEVSTAT_NAME_LEN: ::c_int = 16; // sys/cpuset.h -pub const CPU_SETSIZE: ::c_int = 256; +cfg_if! { + if #[cfg(any(freebsd15, freebsd14))] { + pub const CPU_SETSIZE: ::c_int = 1024; + } else { + pub const CPU_SETSIZE: ::c_int = 256; + } +} pub const SIGEV_THREAD_ID: ::c_int = 4; @@ -2664,7 +2696,9 @@ pub const Q_SETQUOTA: ::c_int = 0x800; pub const MAP_GUARD: ::c_int = 0x00002000; pub const MAP_EXCL: ::c_int = 0x00004000; pub const MAP_PREFAULT_READ: ::c_int = 0x00040000; -pub const MAP_ALIGNED_SUPER: ::c_int = 1 << 24; +pub const MAP_ALIGNMENT_SHIFT: ::c_int = 24; +pub const MAP_ALIGNMENT_MASK: ::c_int = 0xff << MAP_ALIGNMENT_SHIFT; +pub const MAP_ALIGNED_SUPER: ::c_int = 1 << MAP_ALIGNMENT_SHIFT; pub const POSIX_FADV_NORMAL: ::c_int = 0; pub const POSIX_FADV_RANDOM: ::c_int = 1; @@ -3168,6 +3202,7 @@ pub const IFF_LOOPBACK: ::c_int = 0x8; /// (i) is a point-to-point link pub const IFF_POINTOPOINT: ::c_int = 0x10; /// (i) calls if_input in net epoch +#[deprecated(since = "0.2.149", note = "Removed in FreeBSD 14")] pub const IFF_KNOWSEPOCH: ::c_int = 0x20; /// (d) resources allocated pub const IFF_RUNNING: ::c_int = 0x40; @@ -3215,6 +3250,7 @@ pub const IFF_DYING: ::c_int = 0x200000; /// (n) interface is being renamed pub const IFF_RENAMING: ::c_int = 0x400000; /// interface is not part of any groups +#[deprecated(since = "0.2.149", note = "Removed in FreeBSD 14")] pub const IFF_NOGROUP: ::c_int = 0x800000; /// link invalid/unknown @@ -3839,11 +3875,6 @@ pub const F_SEAL_WRITE: ::c_int = 8; // for use with fspacectl pub const SPACECTL_DEALLOC: ::c_int = 1; -// For getrandom() -pub const GRND_NONBLOCK: ::c_uint = 0x1; -pub const GRND_RANDOM: ::c_uint = 0x2; -pub const GRND_INSECURE: ::c_uint = 0x4; - // For realhostname* api pub const HOSTNAME_FOUND: ::c_int = 0; pub const HOSTNAME_INCORRECTNAME: ::c_int = 1; @@ -3857,6 +3888,7 @@ pub const RFMEM: ::c_int = 32; pub const RFNOWAIT: ::c_int = 64; pub const RFCFDG: ::c_int = 4096; pub const RFTHREAD: ::c_int = 8192; +pub const RFSIGSHARE: ::c_int = 16384; pub const RFLINUXTHPN: ::c_int = 65536; pub const RFTSIGZMB: ::c_int = 524288; pub const RFSPAWN: ::c_int = 2147483648; @@ -4693,6 +4725,18 @@ pub const RB_POWERCYCLE: ::c_int = 0x400000; pub const RB_PROBE: ::c_int = 0x10000000; pub const RB_MULTIPLE: ::c_int = 0x20000000; +// sys/time.h +pub const CLOCK_BOOTTIME: ::clockid_t = ::CLOCK_UPTIME; +pub const CLOCK_REALTIME_COARSE: ::clockid_t = ::CLOCK_REALTIME_FAST; +pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = ::CLOCK_MONOTONIC_FAST; + +// sys/timerfd.h + +pub const TFD_NONBLOCK: ::c_int = ::O_NONBLOCK; +pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC; +pub const TFD_TIMER_ABSTIME: ::c_int = 0x01; +pub const TFD_TIMER_CANCEL_ON_SET: ::c_int = 0x02; + cfg_if! { if #[cfg(libc_const_extern_fn)] { pub const fn MAP_ALIGNED(a: ::c_int) -> ::c_int { @@ -4820,6 +4864,14 @@ f! { }; ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps } + + pub fn PROT_MAX(x: ::c_int) -> ::c_int { + x << 16 + } + + pub fn PROT_MAX_EXTRACT(x: ::c_int) -> ::c_int { + (x >> 16) & (::PROT_READ | ::PROT_WRITE | ::PROT_EXEC) + } } safe_f! { @@ -5313,13 +5365,6 @@ extern "C" { pub fn getpagesizes(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int; pub fn clock_getcpuclockid2(arg1: ::id_t, arg2: ::c_int, arg3: *mut clockid_t) -> ::c_int; - pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; - pub fn strchrnul(s: *const ::c_char, c: ::c_int) -> *mut ::c_char; pub fn shm_create_largepage( @@ -5338,11 +5383,11 @@ extern "C" { pub fn setaudit(auditinfo: *const auditinfo_t) -> ::c_int; pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; + pub fn eventfd_read(fd: ::c_int, value: *mut eventfd_t) -> ::c_int; + pub fn eventfd_write(fd: ::c_int, value: eventfd_t) -> ::c_int; pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; pub fn elf_aux_info(aux: ::c_int, buf: *mut ::c_void, buflen: ::c_int) -> ::c_int; pub fn setproctitle_fast(fmt: *const ::c_char, ...); pub fn timingsafe_bcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int; @@ -5406,6 +5451,17 @@ extern "C" { infotype: *mut ::c_uint, flags: *mut ::c_int, ) -> ::ssize_t; + + pub fn timerfd_create(clockid: ::c_int, flags: ::c_int) -> ::c_int; + pub fn timerfd_gettime(fd: ::c_int, curr_value: *mut itimerspec) -> ::c_int; + pub fn timerfd_settime( + fd: ::c_int, + flags: ::c_int, + new_value: *const itimerspec, + old_value: *mut itimerspec, + ) -> ::c_int; + pub fn closefrom(lowfd: ::c_int); + pub fn close_range(lowfd: ::c_uint, highfd: ::c_uint, flags: ::c_int) -> ::c_int; } #[link(name = "memstat")] @@ -5647,7 +5703,10 @@ extern "C" { } cfg_if! { - if #[cfg(freebsd14)] { + if #[cfg(freebsd15)] { + mod freebsd15; + pub use self::freebsd15::*; + } else if #[cfg(freebsd14)] { mod freebsd14; pub use self::freebsd14::*; } else if #[cfg(freebsd13)] { diff --git a/src/rust/vendor/libc/src/unix/bsd/freebsdlike/mod.rs b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/mod.rs index fe69ca420..9b555e42e 100644 --- a/src/rust/vendor/libc/src/unix/bsd/freebsdlike/mod.rs +++ b/src/rust/vendor/libc/src/unix/bsd/freebsdlike/mod.rs @@ -824,15 +824,12 @@ pub const CLOCK_VIRTUAL: ::clockid_t = 1; pub const CLOCK_PROF: ::clockid_t = 2; pub const CLOCK_MONOTONIC: ::clockid_t = 4; pub const CLOCK_UPTIME: ::clockid_t = 5; -pub const CLOCK_BOOTTIME: ::clockid_t = CLOCK_UPTIME; pub const CLOCK_UPTIME_PRECISE: ::clockid_t = 7; pub const CLOCK_UPTIME_FAST: ::clockid_t = 8; pub const CLOCK_REALTIME_PRECISE: ::clockid_t = 9; pub const CLOCK_REALTIME_FAST: ::clockid_t = 10; -pub const CLOCK_REALTIME_COARSE: ::clockid_t = CLOCK_REALTIME_FAST; pub const CLOCK_MONOTONIC_PRECISE: ::clockid_t = 11; pub const CLOCK_MONOTONIC_FAST: ::clockid_t = 12; -pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = CLOCK_MONOTONIC_FAST; pub const CLOCK_SECOND: ::clockid_t = 13; pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 14; pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 15; @@ -1459,6 +1456,11 @@ pub const RB_GDB: ::c_int = 0x8000; pub const RB_MUTE: ::c_int = 0x10000; pub const RB_SELFTEST: ::c_int = 0x20000; +// For getrandom() +pub const GRND_NONBLOCK: ::c_uint = 0x1; +pub const GRND_RANDOM: ::c_uint = 0x2; +pub const GRND_INSECURE: ::c_uint = 0x4; + safe_f! { pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { status == 0x13 @@ -1493,6 +1495,13 @@ extern "C" { atflag: ::c_int, ) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; @@ -1590,6 +1599,7 @@ extern "C" { attr: *const ::pthread_attr_t, guardsize: *mut ::size_t, ) -> ::c_int; + pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int; pub fn pthread_attr_getstack( attr: *const ::pthread_attr_t, stackaddr: *mut *mut ::c_void, @@ -1645,6 +1655,12 @@ extern "C" { pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; pub fn pthread_get_name_np(tid: ::pthread_t, name: *mut ::c_char, len: ::size_t); pub fn pthread_set_name_np(tid: ::pthread_t, name: *const ::c_char); + pub fn pthread_getname_np( + thread: ::pthread_t, + buffer: *mut ::c_char, + length: ::size_t, + ) -> ::c_int; + pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int; pub fn pthread_setschedparam( native: ::pthread_t, policy: ::c_int, @@ -1771,6 +1787,17 @@ extern "C" { len: ::c_int, ) -> ::c_int; pub fn reboot(howto: ::c_int) -> ::c_int; + + pub fn exect( + path: *const ::c_char, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn execvP( + file: *const ::c_char, + search_path: *const ::c_char, + argv: *const *mut ::c_char, + ) -> ::c_int; } #[link(name = "rt")] @@ -1807,6 +1834,9 @@ extern "C" { abs_timeout: *const ::timespec, ) -> ::c_int; pub fn mq_unlink(name: *const ::c_char) -> ::c_int; + + pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; } #[link(name = "util")] diff --git a/src/rust/vendor/libc/src/unix/bsd/mod.rs b/src/rust/vendor/libc/src/unix/bsd/mod.rs index 6ce041357..6ee2a3de4 100644 --- a/src/rust/vendor/libc/src/unix/bsd/mod.rs +++ b/src/rust/vendor/libc/src/unix/bsd/mod.rs @@ -39,6 +39,7 @@ s! { target_os = "ios", target_os = "tvos", target_os = "watchos", + target_os = "visionos", target_os = "netbsd", target_os = "openbsd")))] pub pw_fields: ::c_int, @@ -761,6 +762,7 @@ extern "C" { )] #[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")] pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; + pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; pub fn sem_close(sem: *mut sem_t) -> ::c_int; pub fn getdtablesize() -> ::c_int; pub fn getgrnam_r( @@ -899,10 +901,24 @@ extern "C" { longopts: *const option, longindex: *mut ::c_int, ) -> ::c_int; + + pub fn strftime( + buf: *mut ::c_char, + maxsize: ::size_t, + format: *const ::c_char, + timeptr: *const ::tm, + ) -> ::size_t; + pub fn strftime_l( + buf: *mut ::c_char, + maxsize: ::size_t, + format: *const ::c_char, + timeptr: *const ::tm, + locale: ::locale_t, + ) -> ::size_t; } cfg_if! { - if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos", target_os = "watchos"))] { + if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos", target_os = "watchos", target_os = "visionos"))] { mod apple; pub use self::apple::*; } else if #[cfg(any(target_os = "openbsd", target_os = "netbsd"))] { diff --git a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/mod.rs b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/mod.rs index c43a4b9e8..e92cf6594 100644 --- a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/mod.rs +++ b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/mod.rs @@ -364,6 +364,13 @@ pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; pub const POSIX_MADV_WILLNEED: ::c_int = 3; pub const POSIX_MADV_DONTNEED: ::c_int = 4; +pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; +pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; +pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x04; +pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x08; +pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10; +pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20; + pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; @@ -646,6 +653,12 @@ pub const TIOCM_RI: ::c_int = TIOCM_RNG; pub const TIMER_ABSTIME: ::c_int = 1; +// sys/reboot.h + +pub const RB_AUTOBOOT: ::c_int = 0; + +pub const TCP_INFO: ::c_int = 9; + #[link(name = "util")] extern "C" { pub fn setgrent(); @@ -736,6 +749,94 @@ extern "C" { pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; + pub fn execvpe( + file: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + pub fn waitid( + idtype: idtype_t, + id: ::id_t, + infop: *mut ::siginfo_t, + options: ::c_int, + ) -> ::c_int; + + pub fn posix_spawn( + pid: *mut ::pid_t, + path: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnp( + pid: *mut ::pid_t, + file: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_getsigdefault( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getflags( + attr: *const posix_spawnattr_t, + flags: *mut ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; + pub fn posix_spawnattr_getpgroup( + attr: *const posix_spawnattr_t, + flags: *mut ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; + pub fn posix_spawnattr_getschedpolicy( + attr: *const posix_spawnattr_t, + flags: *mut ::c_int, + ) -> ::c_int; + pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; + pub fn posix_spawnattr_getschedparam( + attr: *const posix_spawnattr_t, + param: *mut ::sched_param, + ) -> ::c_int; + pub fn posix_spawnattr_setschedparam( + attr: *mut posix_spawnattr_t, + param: *const ::sched_param, + ) -> ::c_int; + + pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_addopen( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + path: *const ::c_char, + oflag: ::c_int, + mode: ::mode_t, + ) -> ::c_int; + pub fn posix_spawn_file_actions_addclose( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + ) -> ::c_int; + pub fn posix_spawn_file_actions_adddup2( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + newfd: ::c_int, + ) -> ::c_int; } extern "C" { diff --git a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/aarch64.rs index 7b895f632..45bca4778 100644 --- a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/aarch64.rs +++ b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/aarch64.rs @@ -101,3 +101,62 @@ pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 0; pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 1; pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 2; pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 3; + +pub const _REG_R0: ::c_int = 0; +pub const _REG_R1: ::c_int = 1; +pub const _REG_R2: ::c_int = 2; +pub const _REG_R3: ::c_int = 3; +pub const _REG_R4: ::c_int = 4; +pub const _REG_R5: ::c_int = 5; +pub const _REG_R6: ::c_int = 6; +pub const _REG_R7: ::c_int = 7; +pub const _REG_R8: ::c_int = 8; +pub const _REG_R9: ::c_int = 9; +pub const _REG_R10: ::c_int = 10; +pub const _REG_R11: ::c_int = 11; +pub const _REG_R12: ::c_int = 12; +pub const _REG_R13: ::c_int = 13; +pub const _REG_R14: ::c_int = 14; +pub const _REG_R15: ::c_int = 15; +pub const _REG_CPSR: ::c_int = 16; +pub const _REG_X0: ::c_int = 0; +pub const _REG_X1: ::c_int = 1; +pub const _REG_X2: ::c_int = 2; +pub const _REG_X3: ::c_int = 3; +pub const _REG_X4: ::c_int = 4; +pub const _REG_X5: ::c_int = 5; +pub const _REG_X6: ::c_int = 6; +pub const _REG_X7: ::c_int = 7; +pub const _REG_X8: ::c_int = 8; +pub const _REG_X9: ::c_int = 9; +pub const _REG_X10: ::c_int = 10; +pub const _REG_X11: ::c_int = 11; +pub const _REG_X12: ::c_int = 12; +pub const _REG_X13: ::c_int = 13; +pub const _REG_X14: ::c_int = 14; +pub const _REG_X15: ::c_int = 15; +pub const _REG_X16: ::c_int = 16; +pub const _REG_X17: ::c_int = 17; +pub const _REG_X18: ::c_int = 18; +pub const _REG_X19: ::c_int = 19; +pub const _REG_X20: ::c_int = 20; +pub const _REG_X21: ::c_int = 21; +pub const _REG_X22: ::c_int = 22; +pub const _REG_X23: ::c_int = 23; +pub const _REG_X24: ::c_int = 24; +pub const _REG_X25: ::c_int = 25; +pub const _REG_X26: ::c_int = 26; +pub const _REG_X27: ::c_int = 27; +pub const _REG_X28: ::c_int = 28; +pub const _REG_X29: ::c_int = 29; +pub const _REG_X30: ::c_int = 30; +pub const _REG_X31: ::c_int = 31; +pub const _REG_ELR: ::c_int = 32; +pub const _REG_SPSR: ::c_int = 33; +pub const _REG_TIPDR: ::c_int = 34; + +pub const _REG_RV: ::c_int = _REG_X0; +pub const _REG_FP: ::c_int = _REG_X29; +pub const _REG_LR: ::c_int = _REG_X30; +pub const _REG_SP: ::c_int = _REG_X31; +pub const _REG_PC: ::c_int = _REG_ELR; diff --git a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/arm.rs b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/arm.rs index 4bf3ccd02..b5000d34d 100644 --- a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/arm.rs +++ b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/arm.rs @@ -20,3 +20,62 @@ pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3; pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4; + +pub const _REG_R0: ::c_int = 0; +pub const _REG_R1: ::c_int = 1; +pub const _REG_R2: ::c_int = 2; +pub const _REG_R3: ::c_int = 3; +pub const _REG_R4: ::c_int = 4; +pub const _REG_R5: ::c_int = 5; +pub const _REG_R6: ::c_int = 6; +pub const _REG_R7: ::c_int = 7; +pub const _REG_R8: ::c_int = 8; +pub const _REG_R9: ::c_int = 9; +pub const _REG_R10: ::c_int = 10; +pub const _REG_R11: ::c_int = 11; +pub const _REG_R12: ::c_int = 12; +pub const _REG_R13: ::c_int = 13; +pub const _REG_R14: ::c_int = 14; +pub const _REG_R15: ::c_int = 15; +pub const _REG_CPSR: ::c_int = 16; +pub const _REG_X0: ::c_int = 0; +pub const _REG_X1: ::c_int = 1; +pub const _REG_X2: ::c_int = 2; +pub const _REG_X3: ::c_int = 3; +pub const _REG_X4: ::c_int = 4; +pub const _REG_X5: ::c_int = 5; +pub const _REG_X6: ::c_int = 6; +pub const _REG_X7: ::c_int = 7; +pub const _REG_X8: ::c_int = 8; +pub const _REG_X9: ::c_int = 9; +pub const _REG_X10: ::c_int = 10; +pub const _REG_X11: ::c_int = 11; +pub const _REG_X12: ::c_int = 12; +pub const _REG_X13: ::c_int = 13; +pub const _REG_X14: ::c_int = 14; +pub const _REG_X15: ::c_int = 15; +pub const _REG_X16: ::c_int = 16; +pub const _REG_X17: ::c_int = 17; +pub const _REG_X18: ::c_int = 18; +pub const _REG_X19: ::c_int = 19; +pub const _REG_X20: ::c_int = 20; +pub const _REG_X21: ::c_int = 21; +pub const _REG_X22: ::c_int = 22; +pub const _REG_X23: ::c_int = 23; +pub const _REG_X24: ::c_int = 24; +pub const _REG_X25: ::c_int = 25; +pub const _REG_X26: ::c_int = 26; +pub const _REG_X27: ::c_int = 27; +pub const _REG_X28: ::c_int = 28; +pub const _REG_X29: ::c_int = 29; +pub const _REG_X30: ::c_int = 30; +pub const _REG_X31: ::c_int = 31; +pub const _REG_ELR: ::c_int = 32; +pub const _REG_SPSR: ::c_int = 33; +pub const _REG_TIPDR: ::c_int = 34; + +pub const _REG_RV: ::c_int = _REG_R0; +pub const _REG_FP: ::c_int = _REG_R11; +pub const _REG_LR: ::c_int = _REG_R13; +pub const _REG_SP: ::c_int = _REG_R14; +pub const _REG_PC: ::c_int = _REG_R15; diff --git a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mips.rs b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mips.rs new file mode 100644 index 000000000..a536254ce --- /dev/null +++ b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mips.rs @@ -0,0 +1,21 @@ +use PT_FIRSTMACH; + +pub type c_long = i32; +pub type c_ulong = u32; +pub type c_char = i8; +pub type __cpu_simple_lock_nv_t = ::c_int; + +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; +pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; +pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3; +pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4; diff --git a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs index 46035df31..7c63db8e0 100644 --- a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -10,7 +10,7 @@ type __pthread_spin_t = __cpu_simple_lock_nv_t; pub type vm_size_t = ::uintptr_t; // FIXME: deprecated since long time pub type lwpid_t = ::c_uint; pub type shmatt_t = ::c_uint; -pub type cpuid_t = u64; +pub type cpuid_t = ::c_ulong; pub type cpuset_t = _cpuset; pub type pthread_spin_t = ::c_uchar; pub type timer_t = ::c_int; @@ -60,6 +60,39 @@ impl siginfo_t { self.si_addr } + pub unsafe fn si_code(&self) -> ::c_int { + self.si_code + } + + pub unsafe fn si_errno(&self) -> ::c_int { + self.si_errno + } + + pub unsafe fn si_pid(&self) -> ::pid_t { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + __pad1: ::c_int, + _pid: ::pid_t, + } + (*(self as *const siginfo_t as *const siginfo_timer))._pid + } + + pub unsafe fn si_uid(&self) -> ::uid_t { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + __pad1: ::c_int, + _pid: ::pid_t, + _uid: ::uid_t, + } + (*(self as *const siginfo_t as *const siginfo_timer))._uid + } + pub unsafe fn si_value(&self) -> ::sigval { #[repr(C)] struct siginfo_timer { @@ -1516,7 +1549,6 @@ pub const TCP_KEEPIDLE: ::c_int = 3; pub const TCP_KEEPINTVL: ::c_int = 5; pub const TCP_KEEPCNT: ::c_int = 6; pub const TCP_KEEPINIT: ::c_int = 7; -pub const TCP_INFO: ::c_int = 9; pub const TCP_MD5SIG: ::c_int = 0x10; pub const TCP_CONGCTL: ::c_int = 0x20; @@ -1527,6 +1559,7 @@ pub const SOCK_FLAGS_MASK: ::c_int = 0xf0000000; pub const SO_SNDTIMEO: ::c_int = 0x100b; pub const SO_RCVTIMEO: ::c_int = 0x100c; +pub const SO_NOSIGPIPE: ::c_int = 0x0800; pub const SO_ACCEPTFILTER: ::c_int = 0x1000; pub const SO_TIMESTAMP: ::c_int = 0x2000; pub const SO_OVERFLOWED: ::c_int = 0x1009; @@ -1667,6 +1700,7 @@ pub const O_DSYNC: ::c_int = 0x10000; pub const MAP_RENAME: ::c_int = 0x20; pub const MAP_NORESERVE: ::c_int = 0x40; pub const MAP_HASSEMAPHORE: ::c_int = 0x200; +pub const MAP_TRYFIXED: ::c_int = 0x400; pub const MAP_WIRED: ::c_int = 0x800; pub const MAP_STACK: ::c_int = 0x2000; // map alignment aliases for MAP_ALIGNED @@ -1852,6 +1886,9 @@ pub const MNT_NODEVMTIME: ::c_int = 0x40000000; pub const MNT_SOFTDEP: ::c_int = 0x80000000; pub const MNT_POSIX1EACLS: ::c_int = 0x00000800; pub const MNT_ACLS: ::c_int = MNT_POSIX1EACLS; +pub const MNT_WAIT: ::c_int = 1; +pub const MNT_NOWAIT: ::c_int = 2; +pub const MNT_LAZY: ::c_int = 3; // pub const NTP_API: ::c_int = 4; @@ -2306,13 +2343,6 @@ pub const PT_LWPNEXT: ::c_int = 25; pub const PT_SET_SIGPASS: ::c_int = 26; pub const PT_GET_SIGPASS: ::c_int = 27; pub const PT_FIRSTMACH: ::c_int = 32; - -pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; -pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; -pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x04; -pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x08; -pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10; -pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20; pub const POSIX_SPAWN_RETURNERROR: ::c_int = 0x40; // Flags for chflags(2) @@ -2359,33 +2389,6 @@ pub const LSZOMB: ::c_int = 5; pub const LSONPROC: ::c_int = 7; pub const LSSUSPENDED: ::c_int = 8; -pub const _REG_RDI: ::c_int = 0; -pub const _REG_RSI: ::c_int = 1; -pub const _REG_RDX: ::c_int = 2; -pub const _REG_RCX: ::c_int = 3; -pub const _REG_R8: ::c_int = 4; -pub const _REG_R9: ::c_int = 5; -pub const _REG_R10: ::c_int = 6; -pub const _REG_R11: ::c_int = 7; -pub const _REG_R12: ::c_int = 8; -pub const _REG_R13: ::c_int = 9; -pub const _REG_R14: ::c_int = 10; -pub const _REG_R15: ::c_int = 11; -pub const _REG_RBP: ::c_int = 12; -pub const _REG_RBX: ::c_int = 13; -pub const _REG_RAX: ::c_int = 14; -pub const _REG_GS: ::c_int = 15; -pub const _REG_FS: ::c_int = 16; -pub const _REG_ES: ::c_int = 17; -pub const _REG_DS: ::c_int = 18; -pub const _REG_TRAPNO: ::c_int = 19; -pub const _REG_ERR: ::c_int = 20; -pub const _REG_RIP: ::c_int = 21; -pub const _REG_CS: ::c_int = 22; -pub const _REG_RFLAGS: ::c_int = 23; -pub const _REG_RSP: ::c_int = 24; -pub const _REG_SS: ::c_int = 25; - // sys/xattr.h pub const XATTR_CREATE: ::c_int = 0x01; pub const XATTR_REPLACE: ::c_int = 0x02; @@ -2397,6 +2400,20 @@ pub const GRND_NONBLOCK: ::c_uint = 0x1; pub const GRND_RANDOM: ::c_uint = 0x2; pub const GRND_INSECURE: ::c_uint = 0x4; +// sys/reboot.h +pub const RB_ASKNAME: ::c_int = 0x000000001; +pub const RB_SINGLE: ::c_int = 0x000000002; +pub const RB_NOSYNC: ::c_int = 0x000000004; +pub const RB_HALT: ::c_int = 0x000000008; +pub const RB_INITNAME: ::c_int = 0x000000010; +pub const RB_KDB: ::c_int = 0x000000040; +pub const RB_RDONLY: ::c_int = 0x000000080; +pub const RB_DUMP: ::c_int = 0x000000100; +pub const RB_MINIROOT: ::c_int = 0x000000200; +pub const RB_STRING: ::c_int = 0x000000400; +pub const RB_POWERDOWN: ::c_int = RB_HALT | 0x000000800; +pub const RB_USERCONF: ::c_int = 0x000001000; + cfg_if! { if #[cfg(libc_const_extern_fn)] { @@ -2529,12 +2546,6 @@ extern "C" { pub fn fchflags(fd: ::c_int, flags: ::c_ulong) -> ::c_int; pub fn lchflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; - pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - pub fn extattr_list_fd( fd: ::c_int, attrnamespace: ::c_int, @@ -2643,7 +2654,7 @@ extern "C" { host: *mut ::c_char, hostlen: ::socklen_t, serv: *mut ::c_char, - sevlen: ::socklen_t, + servlen: ::socklen_t, flags: ::c_int, ) -> ::c_int; pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; @@ -2727,6 +2738,7 @@ extern "C" { attr: *const ::pthread_attr_t, guardsize: *mut ::size_t, ) -> ::c_int; + pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int; pub fn pthread_attr_getstack( attr: *const ::pthread_attr_t, stackaddr: *mut *mut ::c_void, @@ -2757,12 +2769,6 @@ extern "C" { timeout: *const ::timespec, ) -> ::c_int; pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; - pub fn waitid( - idtype: idtype_t, - id: ::id_t, - infop: *mut ::siginfo_t, - options: ::c_int, - ) -> ::c_int; pub fn duplocale(base: ::locale_t) -> ::locale_t; pub fn freelocale(loc: ::locale_t); @@ -2875,83 +2881,9 @@ extern "C" { ts: *const ::timespec, sigmask: *const ::sigset_t, ) -> ::c_int; - pub fn posix_spawn( - pid: *mut ::pid_t, - path: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawnp( - pid: *mut ::pid_t, - file: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_getsigdefault( - attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigdefault( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getsigmask( - attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigmask( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getflags( - attr: *const posix_spawnattr_t, - flags: *mut ::c_short, - ) -> ::c_int; - pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; - pub fn posix_spawnattr_getpgroup( - attr: *const posix_spawnattr_t, - flags: *mut ::pid_t, - ) -> ::c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; - pub fn posix_spawnattr_getschedpolicy( - attr: *const posix_spawnattr_t, - flags: *mut ::c_int, - ) -> ::c_int; - pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; - pub fn posix_spawnattr_getschedparam( - attr: *const posix_spawnattr_t, - param: *mut ::sched_param, - ) -> ::c_int; - pub fn posix_spawnattr_setschedparam( - attr: *mut posix_spawnattr_t, - param: *const ::sched_param, - ) -> ::c_int; - - pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_addopen( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - path: *const ::c_char, - oflag: ::c_int, - mode: ::mode_t, - ) -> ::c_int; - pub fn posix_spawn_file_actions_addclose( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; - pub fn posix_spawn_file_actions_adddup2( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - newfd: ::c_int, - ) -> ::c_int; pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + + pub fn reboot(mode: ::c_int, bootstr: *mut ::c_char) -> ::c_int; } #[link(name = "rt")] @@ -3153,6 +3085,38 @@ extern "C" { pub fn kinfo_getvmmap(pid: ::pid_t, cntp: *mut ::size_t) -> *mut kinfo_vmentry; } +#[link(name = "execinfo")] +extern "C" { + pub fn backtrace(addrlist: *mut *mut ::c_void, len: ::size_t) -> ::size_t; + pub fn backtrace_symbols(addrlist: *const *mut ::c_void, len: ::size_t) -> *mut *mut ::c_char; + pub fn backtrace_symbols_fd( + addrlist: *const *mut ::c_void, + len: ::size_t, + fd: ::c_int, + ) -> ::c_int; + pub fn backtrace_symbols_fmt( + addrlist: *const *mut ::c_void, + len: ::size_t, + fmt: *const ::c_char, + ) -> *mut *mut ::c_char; + pub fn backtrace_symbols_fd_fmt( + addrlist: *const *mut ::c_void, + len: ::size_t, + fd: ::c_int, + fmt: *const ::c_char, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(libc_union)] { + extern { + // these functions use statvfs: + pub fn getmntinfo(mntbufp: *mut *mut ::statvfs, flags: ::c_int) -> ::c_int; + pub fn getvfsstat(buf: *mut statvfs, bufsize: ::size_t, flags: ::c_int) -> ::c_int; + } + } +} + cfg_if! { if #[cfg(target_arch = "aarch64")] { mod aarch64; @@ -3172,6 +3136,12 @@ cfg_if! { } else if #[cfg(target_arch = "x86")] { mod x86; pub use self::x86::*; + } else if #[cfg(target_arch = "mips")] { + mod mips; + pub use self::mips::*; + } else if #[cfg(target_arch = "riscv64")] { + mod riscv64; + pub use self::riscv64::*; } else { // Unknown target_arch } diff --git a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/riscv64.rs b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/riscv64.rs new file mode 100644 index 000000000..bc09149ef --- /dev/null +++ b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/riscv64.rs @@ -0,0 +1,21 @@ +use PT_FIRSTMACH; + +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_char = u8; +pub type __cpu_simple_lock_nv_t = ::c_int; + +cfg_if! { + if #[cfg(libc_const_size_of)] { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; + } else { + #[doc(hidden)] + pub const _ALIGNBYTES: usize = 8 - 1; + } +} + +pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 0; +pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 1; +pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 2; +pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 3; diff --git a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86_64.rs b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86_64.rs index 2f6e44545..ba259074f 100644 --- a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86_64.rs +++ b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86_64.rs @@ -38,3 +38,30 @@ pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3; pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4; + +pub const _REG_RDI: ::c_int = 0; +pub const _REG_RSI: ::c_int = 1; +pub const _REG_RDX: ::c_int = 2; +pub const _REG_RCX: ::c_int = 3; +pub const _REG_R8: ::c_int = 4; +pub const _REG_R9: ::c_int = 5; +pub const _REG_R10: ::c_int = 6; +pub const _REG_R11: ::c_int = 7; +pub const _REG_R12: ::c_int = 8; +pub const _REG_R13: ::c_int = 9; +pub const _REG_R14: ::c_int = 10; +pub const _REG_R15: ::c_int = 11; +pub const _REG_RBP: ::c_int = 12; +pub const _REG_RBX: ::c_int = 13; +pub const _REG_RAX: ::c_int = 14; +pub const _REG_GS: ::c_int = 15; +pub const _REG_FS: ::c_int = 16; +pub const _REG_ES: ::c_int = 17; +pub const _REG_DS: ::c_int = 18; +pub const _REG_TRAPNO: ::c_int = 19; +pub const _REG_ERR: ::c_int = 20; +pub const _REG_RIP: ::c_int = 21; +pub const _REG_CS: ::c_int = 22; +pub const _REG_RFLAGS: ::c_int = 23; +pub const _REG_RSP: ::c_int = 24; +pub const _REG_SS: ::c_int = 25; diff --git a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs index 7fe81b3aa..8f470aff9 100644 --- a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -41,6 +41,10 @@ pub type Elf64_Xword = u64; pub type ENTRY = entry; pub type ACTION = ::c_uint; +// spawn.h +pub type posix_spawnattr_t = *mut ::c_void; +pub type posix_spawn_file_actions_t = *mut ::c_void; + cfg_if! { if #[cfg(target_pointer_width = "64")] { type Elf_Addr = Elf64_Addr; @@ -533,6 +537,76 @@ s! { pub key: *mut ::c_char, pub data: *mut ::c_void, } + + pub struct ifreq { + pub ifr_name: [::c_char; ::IFNAMSIZ], + #[cfg(libc_union)] + pub ifr_ifru: __c_anonymous_ifr_ifru, + #[cfg(not(libc_union))] + pub ifr_ifru: ::sockaddr, + } + + 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 tcpi_snd_wscale: u8, + pub tcpi_rcv_wscale: u8, + 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, + pub tcpi_last_data_sent: u32, + pub tcpi_last_ack_sent: u32, + pub tcpi_last_data_recv: u32, + pub tcpi_last_ack_recv: u32, + 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_snd_wnd: u32, + pub tcpi_snd_nxt: u32, + pub tcpi_rcv_nxt: u32, + pub tcpi_toe_tid: u32, + pub tcpi_snd_rexmitpack: u32, + pub tcpi_rcv_ooopack: u32, + pub tcpi_snd_zerowin: u32, + pub tcpi_rttmin: u32, + pub tcpi_max_sndwnd: u32, + pub tcpi_rcv_adv: u32, + pub tcpi_rcv_up: u32, + pub tcpi_snd_una: u32, + pub tcpi_snd_up: u32, + pub tcpi_snd_wl1: u32, + pub tcpi_snd_wl2: u32, + pub tcpi_snd_max: u32, + pub tcpi_ts_recent: u32, + pub tcpi_ts_recent_age: u32, + pub tcpi_rfbuf_cnt: u32, + pub tcpi_rfbuf_ts: u32, + pub tcpi_so_rcv_sb_cc: u32, + pub tcpi_so_rcv_sb_hiwat: u32, + pub tcpi_so_rcv_sb_lowat: u32, + pub tcpi_so_rcv_sb_wat: u32, + pub tcpi_so_snd_sb_cc: u32, + pub tcpi_so_snd_sb_hiwat: u32, + pub tcpi_so_snd_sb_lowat: u32, + pub tcpi_so_snd_sb_wat: u32, + } } impl siginfo_t { @@ -540,12 +614,46 @@ impl siginfo_t { self.si_addr } - pub unsafe fn si_value(&self) -> ::sigval { + pub unsafe fn si_code(&self) -> ::c_int { + self.si_code + } + + pub unsafe fn si_errno(&self) -> ::c_int { + self.si_errno + } + + pub unsafe fn si_pid(&self) -> ::pid_t { #[repr(C)] struct siginfo_timer { _si_signo: ::c_int, + _si_code: ::c_int, _si_errno: ::c_int, + _pad: [::c_int; SI_PAD], + _pid: ::pid_t, + } + (*(self as *const siginfo_t as *const siginfo_timer))._pid + } + + pub unsafe fn si_uid(&self) -> ::uid_t { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, _si_code: ::c_int, + _si_errno: ::c_int, + _pad: [::c_int; SI_PAD], + _pid: ::pid_t, + _uid: ::uid_t, + } + (*(self as *const siginfo_t as *const siginfo_timer))._uid + } + + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_code: ::c_int, + _si_errno: ::c_int, + _pad: [::c_int; SI_PAD], _pid: ::pid_t, _uid: ::uid_t, value: ::sigval, @@ -608,6 +716,18 @@ s_no_extra_traits! { align: [::c_char; 160], } + #[cfg(libc_union)] + pub union __c_anonymous_ifr_ifru { + pub ifru_addr: ::sockaddr, + pub ifru_dstaddr: ::sockaddr, + pub ifru_broadaddr: ::sockaddr, + pub ifru_flags: ::c_short, + pub ifru_metric: ::c_int, + pub ifru_vnetid: i64, + pub ifru_media: u64, + pub ifru_data: ::caddr_t, + pub ifru_index: ::c_uint, + } } cfg_if! { @@ -814,6 +934,60 @@ cfg_if! { unsafe { self.align.hash(state) }; } } + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_ifr_ifru { + fn eq(&self, other: &__c_anonymous_ifr_ifru) -> bool { + unsafe { + self.ifru_addr == other.ifru_addr + && self.ifru_dstaddr == other.ifru_dstaddr + && self.ifru_broadaddr == other.ifru_broadaddr + && self.ifru_flags == other.ifru_flags + && self.ifru_metric == other.ifru_metric + && self.ifru_vnetid == other.ifru_vnetid + && self.ifru_media == other.ifru_media + && self.ifru_data == other.ifru_data + && self.ifru_index == other.ifru_index + } + } + } + + #[cfg(libc_union)] + impl Eq for __c_anonymous_ifr_ifru {} + + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ifr_ifru { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("__c_anonymous_ifr_ifru") + .field("ifru_addr", unsafe { &self.ifru_addr }) + .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) + .field("ifru_broadaddr", unsafe { &self.ifru_broadaddr }) + .field("ifru_flags", unsafe { &self.ifru_flags }) + .field("ifru_metric", unsafe { &self.ifru_metric }) + .field("ifru_vnetid", unsafe { &self.ifru_vnetid }) + .field("ifru_media", unsafe { &self.ifru_media }) + .field("ifru_data", unsafe { &self.ifru_data }) + .field("ifru_index", unsafe { &self.ifru_index }) + .finish() + } + } + + #[cfg(libc_union)] + impl ::hash::Hash for __c_anonymous_ifr_ifru { + fn hash(&self, state: &mut H) { + unsafe { + self.ifru_addr.hash(state); + self.ifru_dstaddr.hash(state); + self.ifru_broadaddr.hash(state); + self.ifru_flags.hash(state); + self.ifru_metric.hash(state); + self.ifru_vnetid.hash(state); + self.ifru_media.hash(state); + self.ifru_data.hash(state); + self.ifru_index.hash(state); + } + } + } } } @@ -999,6 +1173,8 @@ pub const SO_NETPROC: ::c_int = 0x1020; pub const SO_RTABLE: ::c_int = 0x1021; pub const SO_PEERCRED: ::c_int = 0x1022; pub const SO_SPLICE: ::c_int = 0x1023; +pub const SO_DOMAIN: ::c_int = 0x1024; +pub const SO_PROTOCOL: ::c_int = 0x1025; // sys/netinet/in.h // Protocols (RFC 1700) @@ -1119,6 +1295,7 @@ pub const O_DSYNC: ::c_int = 128; pub const MAP_RENAME: ::c_int = 0x0000; pub const MAP_NORESERVE: ::c_int = 0x0000; pub const MAP_HASSEMAPHORE: ::c_int = 0x0000; +pub const MAP_TRYFIXED: ::c_int = 0; pub const EIPSEC: ::c_int = 82; pub const ENOMEDIUM: ::c_int = 85; @@ -1576,6 +1753,9 @@ pub const NTFS_MFLAG_ALLNAMES: ::c_int = 0x2; pub const TMPFS_ARGS_VERSION: ::c_int = 1; +const SI_MAXSZ: ::size_t = 128; +const SI_PAD: ::size_t = (SI_MAXSZ / ::mem::size_of::<::c_int>()) - 3; + pub const MAP_STACK: ::c_int = 0x4000; pub const MAP_CONCEAL: ::c_int = 0x8000; @@ -1655,6 +1835,30 @@ pub const SF_ARCHIVED: ::c_uint = 0x00010000; pub const SF_IMMUTABLE: ::c_uint = 0x00020000; pub const SF_APPEND: ::c_uint = 0x00040000; +// sys/exec_elf.h - Legal values for p_type (segment type). +pub const PT_NULL: u32 = 0; +pub const PT_LOAD: u32 = 1; +pub const PT_DYNAMIC: u32 = 2; +pub const PT_INTERP: u32 = 3; +pub const PT_NOTE: u32 = 4; +pub const PT_SHLIB: u32 = 5; +pub const PT_PHDR: u32 = 6; +pub const PT_TLS: u32 = 7; +pub const PT_LOOS: u32 = 0x60000000; +pub const PT_HIOS: u32 = 0x6fffffff; +pub const PT_LOPROC: u32 = 0x70000000; +pub const PT_HIPROC: u32 = 0x7fffffff; + +pub const PT_GNU_EH_FRAME: u32 = 0x6474e550; +pub const PT_GNU_RELRO: u32 = 0x6474e552; + +// sys/exec_elf.h - Legal values for p_flags (segment flags). +pub const PF_X: u32 = 0x1; +pub const PF_W: u32 = 0x2; +pub const PF_R: u32 = 0x4; +pub const PF_MASKOS: u32 = 0x0ff00000; +pub const PF_MASKPROC: u32 = 0xf0000000; + // sys/mount.h pub const MNT_NOPERM: ::c_int = 0x00000020; pub const MNT_WXALLOWED: ::c_int = 0x00000800; @@ -1693,6 +1897,25 @@ pub const LC_ALL_MASK: ::c_int = (1 << _LC_LAST) - 2; pub const LC_GLOBAL_LOCALE: ::locale_t = -1isize as ::locale_t; +// sys/reboot.h +pub const RB_ASKNAME: ::c_int = 0x00001; +pub const RB_SINGLE: ::c_int = 0x00002; +pub const RB_NOSYNC: ::c_int = 0x00004; +pub const RB_HALT: ::c_int = 0x00008; +pub const RB_INITNAME: ::c_int = 0x00010; +pub const RB_KDB: ::c_int = 0x00040; +pub const RB_RDONLY: ::c_int = 0x00080; +pub const RB_DUMP: ::c_int = 0x00100; +pub const RB_MINIROOT: ::c_int = 0x00200; +pub const RB_CONFIG: ::c_int = 0x00400; +pub const RB_TIMEBAD: ::c_int = 0x00800; +pub const RB_POWERDOWN: ::c_int = 0x01000; +pub const RB_SERCONS: ::c_int = 0x02000; +pub const RB_USERREQ: ::c_int = 0x04000; +pub const RB_RESET: ::c_int = 0x08000; +pub const RB_GOODRANDOM: ::c_int = 0x10000; +pub const RB_UNHIBERNATE: ::c_int = 0x20000; + const_fn! { {const} fn _ALIGN(p: usize) -> usize { (p + _ALIGNBYTES) & !_ALIGNBYTES @@ -1777,11 +2000,6 @@ safe_f! { extern "C" { pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; pub fn settimeofday(tp: *const ::timeval, tz: *const ::timezone) -> ::c_int; - pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; pub fn pledge(promises: *const ::c_char, execpromises: *const ::c_char) -> ::c_int; pub fn unveil(path: *const ::c_char, permissions: *const ::c_char) -> ::c_int; pub fn strtonum( @@ -1825,6 +2043,7 @@ extern "C" { attr: *const ::pthread_attr_t, guardsize: *mut ::size_t, ) -> ::c_int; + pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int; pub fn pthread_attr_getstack( attr: *const ::pthread_attr_t, stackaddr: *mut *mut ::c_void, @@ -1924,6 +2143,8 @@ extern "C" { ) -> ::c_int; pub fn mimmutable(addr: *mut ::c_void, len: ::size_t) -> ::c_int; + + pub fn reboot(mode: ::c_int) -> ::c_int; } #[link(name = "execinfo")] diff --git a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/openbsd/riscv64.rs b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/openbsd/riscv64.rs index 99350ec8d..35f1672bb 100644 --- a/src/rust/vendor/libc/src/unix/bsd/netbsdlike/openbsd/riscv64.rs +++ b/src/rust/vendor/libc/src/unix/bsd/netbsdlike/openbsd/riscv64.rs @@ -1,6 +1,25 @@ pub type c_long = i64; pub type c_ulong = u64; pub type c_char = u8; +pub type ucontext_t = sigcontext; + +s! { + pub struct sigcontext { + __sc_unused: ::c_int, + pub sc_mask: ::c_int, + pub sc_ra: ::c_long, + pub sc_sp: ::c_long, + pub sc_gp: ::c_long, + pub sc_tp: ::c_long, + pub sc_t: [::c_long; 7], + pub sc_s: [::c_long; 12], + pub sc_a: [::c_long; 8], + pub sc_sepc: ::c_long, + pub sc_f: [::c_long; 32], + pub sc_fcsr: ::c_long, + pub sc_cookie: ::c_long, + } +} // should be pub(crate), but that requires Rust 1.18.0 cfg_if! { diff --git a/src/rust/vendor/libc/src/unix/haiku/mod.rs b/src/rust/vendor/libc/src/unix/haiku/mod.rs index 24aa599c0..0e60a1c6e 100644 --- a/src/rust/vendor/libc/src/unix/haiku/mod.rs +++ b/src/rust/vendor/libc/src/unix/haiku/mod.rs @@ -706,7 +706,7 @@ pub const F_RDLCK: ::c_int = 0x0040; pub const F_UNLCK: ::c_int = 0x0200; pub const F_WRLCK: ::c_int = 0x0400; -pub const AT_FDCWD: ::c_int = -1; +pub const AT_FDCWD: ::c_int = -100; pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x01; pub const AT_SYMLINK_FOLLOW: ::c_int = 0x02; pub const AT_REMOVEDIR: ::c_int = 0x04; @@ -741,6 +741,7 @@ pub const RLIMIT_AS: ::c_int = 6; pub const RLIM_INFINITY: ::rlim_t = 0xffffffff; // Haiku specific pub const RLIMIT_NOVMON: ::c_int = 7; +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::c_int = 8; pub const RUSAGE_SELF: ::c_int = 0; @@ -864,7 +865,7 @@ pub const LC_NUMERIC: ::c_int = 4; pub const LC_TIME: ::c_int = 5; pub const LC_MESSAGES: ::c_int = 6; -// FIXME: Haiku does not have MAP_FILE, but libstd/os.rs requires it +// FIXME: Haiku does not have MAP_FILE, but library/std/os.rs requires it pub const MAP_FILE: ::c_int = 0x00; pub const MAP_SHARED: ::c_int = 0x01; pub const MAP_PRIVATE: ::c_int = 0x02; @@ -1191,6 +1192,80 @@ pub const _SC_REGEXP: ::c_int = 62; pub const _SC_SYMLOOP_MAX: ::c_int = 63; pub const _SC_SHELL: ::c_int = 64; pub const _SC_TTY_NAME_MAX: ::c_int = 65; +pub const _SC_ADVISORY_INFO: ::c_int = 66; +pub const _SC_BARRIERS: ::c_int = 67; +pub const _SC_CLOCK_SELECTION: ::c_int = 68; +pub const _SC_FSYNC: ::c_int = 69; +pub const _SC_IPV6: ::c_int = 70; +pub const _SC_MEMLOCK: ::c_int = 71; +pub const _SC_MEMLOCK_RANGE: ::c_int = 72; +pub const _SC_MESSAGE_PASSING: ::c_int = 73; +pub const _SC_PRIORITIZED_IO: ::c_int = 74; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 75; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 76; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 77; +pub const _SC_SPAWN: ::c_int = 78; +pub const _SC_SPIN_LOCKS: ::c_int = 79; +pub const _SC_SPORADIC_SERVER: ::c_int = 80; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 81; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 82; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 83; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 84; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 85; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 86; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 87; +pub const _SC_TIMEOUTS: ::c_int = 88; +pub const _SC_TRACE: ::c_int = 89; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 90; +pub const _SC_TRACE_INHERIT: ::c_int = 91; +pub const _SC_TRACE_LOG: ::c_int = 92; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 93; +pub const _SC_V6_ILP32_OFF32: ::c_int = 94; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 95; +pub const _SC_V6_LP64_OFF64: ::c_int = 96; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 97; +pub const _SC_V7_ILP32_OFF32: ::c_int = 98; +pub const _SC_V7_ILP32_OFFBIG: ::c_int = 99; +pub const _SC_V7_LP64_OFF64: ::c_int = 100; +pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 101; +pub const _SC_2_C_BIND: ::c_int = 102; +pub const _SC_2_C_DEV: ::c_int = 103; +pub const _SC_2_CHAR_TERM: ::c_int = 104; +pub const _SC_2_FORT_DEV: ::c_int = 105; +pub const _SC_2_FORT_RUN: ::c_int = 106; +pub const _SC_2_LOCALEDEF: ::c_int = 107; +pub const _SC_2_PBS: ::c_int = 108; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 109; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 110; +pub const _SC_2_PBS_LOCATE: ::c_int = 111; +pub const _SC_2_PBS_MESSAGE: ::c_int = 112; +pub const _SC_2_PBS_TRACK: ::c_int = 113; +pub const _SC_2_SW_DEV: ::c_int = 114; +pub const _SC_2_UPE: ::c_int = 115; +pub const _SC_2_VERSION: ::c_int = 116; +pub const _SC_XOPEN_CRYPT: ::c_int = 117; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 118; +pub const _SC_XOPEN_REALTIME: ::c_int = 119; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 120; +pub const _SC_XOPEN_SHM: ::c_int = 121; +pub const _SC_XOPEN_STREAMS: ::c_int = 122; +pub const _SC_XOPEN_UNIX: ::c_int = 123; +pub const _SC_XOPEN_UUCP: ::c_int = 124; +pub const _SC_XOPEN_VERSION: ::c_int = 125; +pub const _SC_BC_BASE_MAX: ::c_int = 129; +pub const _SC_BC_DIM_MAX: ::c_int = 130; +pub const _SC_BC_SCALE_MAX: ::c_int = 131; +pub const _SC_BC_STRING_MAX: ::c_int = 132; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 133; +pub const _SC_EXPR_NEST_MAX: ::c_int = 134; +pub const _SC_LINE_MAX: ::c_int = 135; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 136; +pub const _SC_MQ_OPEN_MAX: ::c_int = 137; +pub const _SC_MQ_PRIO_MAX: ::c_int = 138; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 139; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 140; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 141; +pub const _SC_RE_DUP_MAX: ::c_int = 142; pub const PTHREAD_STACK_MIN: ::size_t = 8192; @@ -1385,8 +1460,9 @@ pub const TCGB_RI: ::c_int = 0x04; pub const TCGB_DCD: ::c_int = 0x08; pub const TIOCM_CTS: ::c_int = TCGB_CTS; pub const TIOCM_CD: ::c_int = TCGB_DCD; -pub const TIOCM_CAR: ::c_int = TIOCM_CD; +pub const TIOCM_CAR: ::c_int = TCGB_DCD; pub const TIOCM_RI: ::c_int = TCGB_RI; +pub const TIOCM_RNG: ::c_int = TCGB_RI; pub const TIOCM_DSR: ::c_int = TCGB_DSR; pub const TIOCM_DTR: ::c_int = 0x10; pub const TIOCM_RTS: ::c_int = 0x20; @@ -1429,17 +1505,14 @@ pub const TCGETA: ::c_ulong = 0x8000; pub const TCSETA: ::c_ulong = TCGETA + 1; pub const TCSETAF: ::c_ulong = TCGETA + 2; pub const TCSETAW: ::c_ulong = TCGETA + 3; -pub const TCWAITEVENT: ::c_ulong = TCGETA + 4; pub const TCSBRK: ::c_ulong = TCGETA + 5; pub const TCFLSH: ::c_ulong = TCGETA + 6; pub const TCXONC: ::c_ulong = TCGETA + 7; -pub const TCQUERYCONNECTED: ::c_ulong = TCGETA + 8; pub const TCGETBITS: ::c_ulong = TCGETA + 9; pub const TCSETDTR: ::c_ulong = TCGETA + 10; pub const TCSETRTS: ::c_ulong = TCGETA + 11; pub const TIOCGWINSZ: ::c_ulong = TCGETA + 12; pub const TIOCSWINSZ: ::c_ulong = TCGETA + 13; -pub const TCVTIME: ::c_ulong = TCGETA + 14; pub const TIOCGPGRP: ::c_ulong = TCGETA + 15; pub const TIOCSPGRP: ::c_ulong = TCGETA + 16; pub const TIOCSCTTY: ::c_ulong = TCGETA + 17; @@ -1449,6 +1522,10 @@ pub const TIOCSBRK: ::c_ulong = TCGETA + 20; pub const TIOCCBRK: ::c_ulong = TCGETA + 21; pub const TIOCMBIS: ::c_ulong = TCGETA + 22; pub const TIOCMBIC: ::c_ulong = TCGETA + 23; +pub const TIOCGSID: ::c_ulong = TCGETA + 24; +pub const TIOCOUTQ: ::c_ulong = TCGETA + 25; +pub const TIOCEXCL: ::c_ulong = TCGETA + 26; +pub const TIOCNXCL: ::c_ulong = TCGETA + 27; pub const PRIO_PROCESS: ::c_int = 0; pub const PRIO_PGRP: ::c_int = 1; @@ -1679,6 +1756,7 @@ extern "C" { attr: *const ::pthread_attr_t, guardsize: *mut ::size_t, ) -> ::c_int; + pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int; pub fn pthread_attr_getstack( attr: *const ::pthread_attr_t, stackaddr: *mut *mut ::c_void, @@ -1706,7 +1784,7 @@ extern "C" { host: *mut ::c_char, hostlen: ::socklen_t, serv: *mut ::c_char, - sevlen: ::socklen_t, + servlen: ::socklen_t, flags: ::c_int, ) -> ::c_int; pub fn pthread_mutex_timedlock( @@ -1780,6 +1858,7 @@ extern "C" { groupcount: *mut ::c_int, ) -> ::c_int; pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; + pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; pub fn sem_close(sem: *mut sem_t) -> ::c_int; pub fn getdtablesize() -> ::c_int; pub fn getgrnam_r( @@ -2063,6 +2142,14 @@ extern "C" { search: *const ::c_void, searchLength: ::size_t, ) -> *mut ::c_void; + + pub fn pthread_getattr_np(thread: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_getname_np( + thread: ::pthread_t, + buffer: *mut ::c_char, + length: ::size_t, + ) -> ::c_int; + pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int; } cfg_if! { diff --git a/src/rust/vendor/libc/src/unix/haiku/native.rs b/src/rust/vendor/libc/src/unix/haiku/native.rs index 44bcc1e3b..62d6392fa 100644 --- a/src/rust/vendor/libc/src/unix/haiku/native.rs +++ b/src/rust/vendor/libc/src/unix/haiku/native.rs @@ -197,6 +197,50 @@ e! { B_UTILITIES_DIRECTORY, B_PACKAGE_LINKS_DIRECTORY, } + + // kernel/OS.h + + pub enum topology_level_type { + B_TOPOLOGY_UNKNOWN, + B_TOPOLOGY_ROOT, + B_TOPOLOGY_SMT, + B_TOPOLOGY_CORE, + B_TOPOLOGY_PACKAGE, + } + + pub enum cpu_platform { + B_CPU_UNKNOWN, + B_CPU_x86, + B_CPU_x86_64, + B_CPU_PPC, + B_CPU_PPC_64, + B_CPU_M68K, + B_CPU_ARM, + B_CPU_ARM_64, + B_CPU_ALPHA, + B_CPU_MIPS, + B_CPU_SH, + B_CPU_SPARC, + B_CPU_RISC_V + } + + pub enum cpu_vendor { + B_CPU_VENDOR_UNKNOWN, + B_CPU_VENDOR_AMD, + B_CPU_VENDOR_CYRIX, + B_CPU_VENDOR_IDT, + B_CPU_VENDOR_INTEL, + B_CPU_VENDOR_NATIONAL_SEMICONDUCTOR, + B_CPU_VENDOR_RISE, + B_CPU_VENDOR_TRANSMETA, + B_CPU_VENDOR_VIA, + B_CPU_VENDOR_IBM, + B_CPU_VENDOR_MOTOROLA, + B_CPU_VENDOR_NEC, + B_CPU_VENDOR_HYGON, + B_CPU_VENDOR_SUN, + B_CPU_VENDOR_FUJITSU + } } s! { @@ -310,6 +354,19 @@ s! { pub events: u16 } + pub struct cpu_topology_root_info { + pub platform: cpu_platform, + } + + pub struct cpu_topology_package_info { + pub vendor: cpu_vendor, + pub cache_line_size: u32, + } + + pub struct cpu_topology_core_info { + pub model: u32, + pub default_frequency: u64, + } // kernel/fs_attr.h pub struct attr_info { pub type_: u32, @@ -412,6 +469,23 @@ s_no_extra_traits! { pub as_chars: [::c_char; 16], pub regs: __c_anonymous_regs, } + + #[cfg(libc_union)] + pub union __c_anonymous_cpu_topology_info_data { + pub root: cpu_topology_root_info, + pub package: cpu_topology_package_info, + pub core: cpu_topology_core_info, + } + + pub struct cpu_topology_node_info { + pub id: u32, + pub type_: topology_level_type, + pub level: u32, + #[cfg(libc_union)] + pub data: __c_anonymous_cpu_topology_info_data, + #[cfg(not(libc_union))] + pub data: cpu_topology_core_info, + } } cfg_if! { @@ -446,6 +520,50 @@ cfg_if! { } } } + + #[cfg(libc_union)] + impl PartialEq for __c_anonymous_cpu_topology_info_data { + fn eq(&self, other: &__c_anonymous_cpu_topology_info_data) -> bool { + unsafe { + self.root == other.root + || self.package == other.package + || self.core == other.core + } + } + } + #[cfg(libc_union)] + impl Eq for __c_anonymous_cpu_topology_info_data {} + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_cpu_topology_info_data { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + unsafe { + f.debug_struct("__c_anonymous_cpu_topology_info_data") + .field("root", &self.root) + .field("package", &self.package) + .field("core", &self.core) + .finish() + } + } + } + + impl PartialEq for cpu_topology_node_info { + fn eq(&self, other: &cpu_topology_node_info) -> bool { + self.id == other.id + && self.type_ == other.type_ + && self.level == other.level + } + } + + impl Eq for cpu_topology_node_info {} + impl ::fmt::Debug for cpu_topology_node_info { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("cpu_topology_node_info") + .field("id", &self.id) + .field("type", &self.type_) + .field("level", &self.level) + .finish() + } + } } } @@ -1026,6 +1144,10 @@ extern "C" { info: *mut cpu_info, size: ::size_t, ) -> status_t; + pub fn get_cpu_topology_info( + topologyInfos: *mut cpu_topology_node_info, + topologyInfoCount: *mut u32, + ) -> status_t; pub fn is_computer_on() -> i32; pub fn is_computer_on_fire() -> ::c_double; pub fn send_signal(threadID: thread_id, signal: ::c_uint) -> ::c_int; diff --git a/src/rust/vendor/libc/src/unix/hurd/align.rs b/src/rust/vendor/libc/src/unix/hurd/align.rs new file mode 100644 index 000000000..1dd7d8e54 --- /dev/null +++ b/src/rust/vendor/libc/src/unix/hurd/align.rs @@ -0,0 +1 @@ +// Placeholder file diff --git a/src/rust/vendor/libc/src/unix/hurd/b32.rs b/src/rust/vendor/libc/src/unix/hurd/b32.rs new file mode 100644 index 000000000..7e82a91d3 --- /dev/null +++ b/src/rust/vendor/libc/src/unix/hurd/b32.rs @@ -0,0 +1,93 @@ +pub type c_long = i32; +pub type c_ulong = u32; + +pub type __int64_t = ::c_longlong; +pub type __uint64_t = ::c_ulonglong; + +pub type int_fast16_t = ::c_int; +pub type int_fast32_t = ::c_int; +pub type int_fast64_t = ::c_longlong; +pub type uint_fast16_t = ::c_uint; +pub type uint_fast32_t = ::c_uint; +pub type uint_fast64_t = ::c_ulonglong; + +pub type __quad_t = ::c_longlong; +pub type __u_quad_t = ::c_ulonglong; +pub type __intmax_t = ::c_longlong; +pub type __uintmax_t = ::c_ulonglong; + +pub type __squad_type = ::__int64_t; +pub type __uquad_type = ::__uint64_t; +pub type __sword_type = ::c_int; +pub type __uword_type = ::c_uint; +pub type __slong32_type = ::c_long; +pub type __ulong32_type = ::c_ulong; +pub type __s64_type = ::__int64_t; +pub type __u64_type = ::__uint64_t; + +pub type __ipc_pid_t = ::c_ushort; + +pub type Elf32_Half = u16; +pub type Elf32_Word = u32; +pub type Elf32_Off = u32; +pub type Elf32_Addr = u32; +pub type Elf32_Section = u16; + +pub type Elf_Addr = ::Elf32_Addr; +pub type Elf_Half = ::Elf32_Half; +pub type Elf_Ehdr = ::Elf32_Ehdr; +pub type Elf_Phdr = ::Elf32_Phdr; +pub type Elf_Shdr = ::Elf32_Shdr; +pub type Elf_Sym = ::Elf32_Sym; + +s! { + pub struct Elf32_Ehdr { + pub e_ident: [::c_uchar; 16], + pub e_type: Elf32_Half, + pub e_machine: Elf32_Half, + pub e_version: Elf32_Word, + pub e_entry: Elf32_Addr, + pub e_phoff: Elf32_Off, + pub e_shoff: Elf32_Off, + pub e_flags: Elf32_Word, + pub e_ehsize: Elf32_Half, + pub e_phentsize: Elf32_Half, + pub e_phnum: Elf32_Half, + pub e_shentsize: Elf32_Half, + pub e_shnum: Elf32_Half, + pub e_shstrndx: Elf32_Half, + } + + pub struct Elf32_Shdr { + pub sh_name: Elf32_Word, + pub sh_type: Elf32_Word, + pub sh_flags: Elf32_Word, + pub sh_addr: Elf32_Addr, + pub sh_offset: Elf32_Off, + pub sh_size: Elf32_Word, + pub sh_link: Elf32_Word, + pub sh_info: Elf32_Word, + pub sh_addralign: Elf32_Word, + pub sh_entsize: Elf32_Word, + } + + pub struct Elf32_Sym { + pub st_name: Elf32_Word, + pub st_value: Elf32_Addr, + pub st_size: Elf32_Word, + pub st_info: ::c_uchar, + pub st_other: ::c_uchar, + pub st_shndx: Elf32_Section, + } + + pub struct Elf32_Phdr { + pub p_type: ::Elf32_Word, + pub p_offset: ::Elf32_Off, + pub p_vaddr: ::Elf32_Addr, + pub p_paddr: ::Elf32_Addr, + pub p_filesz: ::Elf32_Word, + pub p_memsz: ::Elf32_Word, + pub p_flags: ::Elf32_Word, + pub p_align: ::Elf32_Word, + } +} diff --git a/src/rust/vendor/libc/src/unix/hurd/b64.rs b/src/rust/vendor/libc/src/unix/hurd/b64.rs new file mode 100644 index 000000000..e2e502af2 --- /dev/null +++ b/src/rust/vendor/libc/src/unix/hurd/b64.rs @@ -0,0 +1,95 @@ +pub type c_long = i64; +pub type c_ulong = u64; + +pub type __int64_t = ::c_long; +pub type __uint64_t = ::c_ulong; + +pub type int_fast16_t = ::c_long; +pub type int_fast32_t = ::c_long; +pub type int_fast64_t = ::c_long; +pub type uint_fast16_t = ::c_ulong; +pub type uint_fast32_t = ::c_ulong; +pub type uint_fast64_t = ::c_ulong; + +pub type __quad_t = ::c_long; +pub type __u_quad_t = ::c_ulong; +pub type __intmax_t = ::c_long; +pub type __uintmax_t = ::c_ulong; + +pub type __squad_type = ::c_long; +pub type __uquad_type = ::c_ulong; +pub type __sword_type = ::c_long; +pub type __uword_type = ::c_ulong; +pub type __slong32_type = ::c_int; +pub type __ulong32_type = ::c_uint; +pub type __s64_type = ::c_long; +pub type __u64_type = ::c_ulong; + +pub type __ipc_pid_t = ::c_int; + +pub type Elf64_Half = u16; +pub type Elf64_Word = u32; +pub type Elf64_Off = u64; +pub type Elf64_Addr = u64; +pub type Elf64_Xword = u64; +pub type Elf64_Sxword = i64; +pub type Elf64_Section = u16; + +pub type Elf_Addr = ::Elf64_Addr; +pub type Elf_Half = ::Elf64_Half; +pub type Elf_Ehdr = ::Elf64_Ehdr; +pub type Elf_Phdr = ::Elf64_Phdr; +pub type Elf_Shdr = ::Elf64_Shdr; +pub type Elf_Sym = ::Elf64_Sym; + +s! { + pub struct Elf64_Ehdr { + pub e_ident: [::c_uchar; 16], + pub e_type: Elf64_Half, + pub e_machine: Elf64_Half, + pub e_version: Elf64_Word, + pub e_entry: Elf64_Addr, + pub e_phoff: Elf64_Off, + pub e_shoff: Elf64_Off, + pub e_flags: Elf64_Word, + pub e_ehsize: Elf64_Half, + pub e_phentsize: Elf64_Half, + pub e_phnum: Elf64_Half, + pub e_shentsize: Elf64_Half, + pub e_shnum: Elf64_Half, + pub e_shstrndx: Elf64_Half, + } + + pub struct Elf64_Shdr { + pub sh_name: Elf64_Word, + pub sh_type: Elf64_Word, + pub sh_flags: Elf64_Xword, + pub sh_addr: Elf64_Addr, + pub sh_offset: Elf64_Off, + pub sh_size: Elf64_Xword, + pub sh_link: Elf64_Word, + pub sh_info: Elf64_Word, + pub sh_addralign: Elf64_Xword, + pub sh_entsize: Elf64_Xword, + } + + pub struct Elf64_Sym { + pub st_name: Elf64_Word, + pub st_info: ::c_uchar, + pub st_other: ::c_uchar, + pub st_shndx: Elf64_Section, + pub st_value: Elf64_Addr, + pub st_size: Elf64_Xword, + } + + pub struct Elf64_Phdr { + pub p_type: ::Elf64_Word, + pub p_flags: ::Elf64_Word, + pub p_offset: ::Elf64_Off, + pub p_vaddr: ::Elf64_Addr, + pub p_paddr: ::Elf64_Addr, + pub p_filesz: ::Elf64_Xword, + pub p_memsz: ::Elf64_Xword, + pub p_align: ::Elf64_Xword, + } +} diff --git a/src/rust/vendor/libc/src/unix/hurd/mod.rs b/src/rust/vendor/libc/src/unix/hurd/mod.rs new file mode 100644 index 000000000..2701649f6 --- /dev/null +++ b/src/rust/vendor/libc/src/unix/hurd/mod.rs @@ -0,0 +1,4687 @@ +#![allow(dead_code)] + +// types +pub type c_char = i8; + +pub type __s16_type = ::c_short; +pub type __u16_type = ::c_ushort; +pub type __s32_type = ::c_int; +pub type __u32_type = ::c_uint; +pub type __slongword_type = ::c_long; +pub type __ulongword_type = ::c_ulong; + +pub type __u_char = ::c_uchar; +pub type __u_short = ::c_ushort; +pub type __u_int = ::c_uint; +pub type __u_long = ::c_ulong; +pub type __int8_t = ::c_schar; +pub type __uint8_t = ::c_uchar; +pub type __int16_t = ::c_short; +pub type __uint16_t = ::c_ushort; +pub type __int32_t = ::c_int; +pub type __uint32_t = ::c_uint; +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 __dev_t = __uword_type; +pub type __uid_t = __u32_type; +pub type __gid_t = __u32_type; +pub type __ino_t = __ulongword_type; +pub type __ino64_t = __uquad_type; +pub type __mode_t = __u32_type; +pub type __nlink_t = __uword_type; +pub type __off_t = __slongword_type; +pub type __off64_t = __squad_type; +pub type __pid_t = __s32_type; +pub type __rlim_t = __ulongword_type; +pub type __rlim64_t = __uquad_type; +pub type __blkcnt_t = __slongword_type; +pub type __blkcnt64_t = __squad_type; +pub type __fsblkcnt_t = __ulongword_type; +pub type __fsblkcnt64_t = __uquad_type; +pub type __fsfilcnt_t = __ulongword_type; +pub type __fsfilcnt64_t = __uquad_type; +pub type __fsword_t = __sword_type; +pub type __id_t = __u32_type; +pub type __clock_t = __slongword_type; +pub type __time_t = __slongword_type; +pub type __useconds_t = __u32_type; +pub type __suseconds_t = __slongword_type; +pub type __suseconds64_t = __squad_type; +pub type __daddr_t = __s32_type; +pub type __key_t = __s32_type; +pub type __clockid_t = __s32_type; +pub type __timer_t = __uword_type; +pub type __blksize_t = __slongword_type; +pub type __fsid_t = __uquad_type; +pub type __ssize_t = __sword_type; +pub type __syscall_slong_t = __slongword_type; +pub type __syscall_ulong_t = __ulongword_type; +pub type __cpu_mask = __ulongword_type; + +pub type __loff_t = __off64_t; +pub type __caddr_t = *mut ::c_char; +pub type __intptr_t = __sword_type; +pub type __ptrdiff_t = __sword_type; +pub type __socklen_t = __u32_type; +pub type __sig_atomic_t = ::c_int; +pub type __time64_t = __int64_t; +pub type ssize_t = __ssize_t; +pub type size_t = ::c_ulong; +pub type wchar_t = ::c_int; +pub type wint_t = ::c_uint; +pub type gid_t = __gid_t; +pub type uid_t = __uid_t; +pub type off_t = __off_t; +pub type off64_t = __off64_t; +pub type useconds_t = __useconds_t; +pub type pid_t = __pid_t; +pub type socklen_t = __socklen_t; + +pub type in_addr_t = u32; + +pub type _Float32 = f32; +pub type _Float64 = f64; +pub type _Float32x = f64; +pub type _Float64x = f64; + +pub type __locale_t = *mut __locale_struct; +pub type locale_t = __locale_t; + +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 ino64_t = __ino64_t; +pub type dev_t = __dev_t; +pub type mode_t = __mode_t; +pub type nlink_t = __nlink_t; +pub type id_t = __id_t; +pub type daddr_t = __daddr_t; +pub type caddr_t = __caddr_t; +pub type key_t = __key_t; +pub type clock_t = __clock_t; +pub type clockid_t = __clockid_t; +pub type time_t = __time_t; +pub type timer_t = __timer_t; +pub type suseconds_t = __suseconds_t; +pub type ulong = ::c_ulong; +pub type ushort = ::c_ushort; +pub type uint = ::c_uint; +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 = ::c_int; +pub type __sigset_t = ::c_ulong; +pub type sigset_t = __sigset_t; + +pub type __fd_mask = ::c_long; +pub type fd_mask = __fd_mask; +pub type blksize_t = __blksize_t; +pub type blkcnt_t = __blkcnt_t; +pub type fsblkcnt_t = __fsblkcnt_t; +pub type fsfilcnt_t = __fsfilcnt_t; +pub type blkcnt64_t = __blkcnt64_t; +pub type fsblkcnt64_t = __fsblkcnt64_t; +pub type fsfilcnt64_t = __fsfilcnt64_t; + +pub type __pthread_spinlock_t = ::c_int; +pub type __tss_t = ::c_int; +pub type __thrd_t = ::c_long; +pub type __pthread_t = ::c_long; +pub type pthread_t = __pthread_t; +pub type __pthread_process_shared = ::c_uint; +pub type __pthread_inheritsched = ::c_uint; +pub type __pthread_contentionscope = ::c_uint; +pub type __pthread_detachstate = ::c_uint; +pub type pthread_attr_t = __pthread_attr; +pub type __pthread_mutex_protocol = ::c_uint; +pub type __pthread_mutex_type = ::c_uint; +pub type __pthread_mutex_robustness = ::c_uint; +pub type pthread_mutexattr_t = __pthread_mutexattr; +pub type pthread_mutex_t = __pthread_mutex; +pub type pthread_condattr_t = __pthread_condattr; +pub type pthread_cond_t = __pthread_cond; +pub type pthread_spinlock_t = __pthread_spinlock_t; +pub type pthread_rwlockattr_t = __pthread_rwlockattr; +pub type pthread_rwlock_t = __pthread_rwlock; +pub type pthread_barrierattr_t = __pthread_barrierattr; +pub type pthread_barrier_t = __pthread_barrier; +pub type __pthread_key = ::c_int; +pub type pthread_key_t = __pthread_key; +pub type pthread_once_t = __pthread_once; + +pub type __rlimit_resource = ::c_uint; +pub type __rlimit_resource_t = __rlimit_resource; +pub type rlim_t = __rlim_t; +pub type rlim64_t = __rlim64_t; + +pub type __rusage_who = ::c_int; + +pub type __priority_which = ::c_uint; + +pub type sa_family_t = ::c_uchar; + +pub type in_port_t = u16; + +pub type __sigval_t = ::sigval; + +pub type sigevent_t = sigevent; + +pub type nfds_t = ::c_ulong; + +pub type tcflag_t = ::c_uint; +pub type cc_t = ::c_uchar; +pub type speed_t = ::c_int; + +pub type sigval_t = ::sigval; + +pub type greg_t = ::c_int; +pub type gregset_t = [greg_t; 19usize]; + +pub type __ioctl_dir = ::c_uint; + +pub type __ioctl_datum = ::c_uint; + +pub type __error_t_codes = ::c_int; + +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; +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; +pub type int_fast8_t = ::c_schar; +pub type uint_fast8_t = ::c_uchar; +pub type intmax_t = __intmax_t; +pub type uintmax_t = __uintmax_t; + +pub type tcp_seq = u32; + +pub type tcp_ca_state = ::c_uint; + +pub type idtype_t = ::c_uint; + +pub type mqd_t = ::c_int; + +pub type Lmid_t = ::c_long; + +pub type regoff_t = ::c_int; + +pub type nl_item = ::c_int; + +pub type iconv_t = *mut ::c_void; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum fpos64_t {} // FIXME: fill this out with a struct +impl ::Copy for fpos64_t {} +impl ::Clone for fpos64_t { + fn clone(&self) -> fpos64_t { + *self + } +} + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum timezone {} +impl ::Copy for timezone {} +impl ::Clone for timezone { + fn clone(&self) -> timezone { + *self + } +} + +// structs +s! { + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + pub struct ip_mreqn { + pub imr_multiaddr: in_addr, + pub imr_address: in_addr, + pub imr_ifindex: ::c_int, + } + + pub struct ip_mreq_source { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + pub imr_sourceaddr: in_addr, + } + + pub struct sockaddr { + pub sa_len: ::c_uchar, + pub sa_family: sa_family_t, + pub sa_data: [::c_char; 14usize], + } + + pub struct in_addr { + pub s_addr: in_addr_t, + } + + pub struct sockaddr_in { + pub sin_len: ::c_uchar, + pub sin_family: sa_family_t, + pub sin_port: in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [::c_uchar; 8usize], + } + + pub struct sockaddr_in6 { + pub sin6_len: ::c_uchar, + pub sin6_family: sa_family_t, + pub sin6_port: in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct sockaddr_un { + pub sun_len: ::c_uchar, + pub sun_family: sa_family_t, + pub sun_path: [::c_char; 108usize], + } + + pub struct sockaddr_storage { + pub ss_len: ::c_uchar, + pub ss_family: sa_family_t, + pub __ss_padding: [::c_char; 122usize], + pub __ss_align: __uint32_t, + } + + pub struct sockaddr_at { + pub _address: u8, + } + + pub struct sockaddr_ax25 { + pub _address: u8, + } + + pub struct sockaddr_x25 { + pub _address: u8, + } + + pub struct sockaddr_dl { + pub _address: u8, + } + pub struct sockaddr_eon { + pub _address: u8, + } + pub struct sockaddr_inarp { + pub _address: u8, + } + + pub struct sockaddr_ipx { + pub _address: u8, + } + pub struct sockaddr_iso { + pub _address: u8, + } + + pub struct sockaddr_ns { + pub _address: u8, + } + + pub struct addrinfo { + pub ai_flags: ::c_int, + pub ai_family: ::c_int, + pub ai_socktype: ::c_int, + pub ai_protocol: ::c_int, + pub ai_addrlen: socklen_t, + pub ai_addr: *mut sockaddr, + pub ai_canonname: *mut ::c_char, + pub ai_next: *mut addrinfo, + } + + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut ::c_void, + pub msg_controllen: socklen_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: ::socklen_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + + pub struct dirent { + pub d_ino: __ino_t, + pub d_reclen: ::c_ushort, + pub d_type: ::c_uchar, + pub d_namlen: ::c_uchar, + pub d_name: [::c_char; 1usize], + } + + pub struct dirent64 { + pub d_ino: __ino64_t, + pub d_reclen: ::c_ushort, + pub d_type: ::c_uchar, + pub d_namlen: ::c_uchar, + pub d_name: [::c_char; 1usize], + } + + pub struct fd_set { + pub fds_bits: [__fd_mask; 8usize], + } + + pub struct termios { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_cc: [::cc_t; 20usize], + pub __ispeed: ::speed_t, + pub __ospeed: ::speed_t, + } + + pub struct mallinfo { + pub arena: ::c_int, + pub ordblks: ::c_int, + pub smblks: ::c_int, + pub hblks: ::c_int, + pub hblkhd: ::c_int, + pub usmblks: ::c_int, + pub fsmblks: ::c_int, + pub uordblks: ::c_int, + pub fordblks: ::c_int, + pub keepcost: ::c_int, + } + + pub struct mallinfo2 { + pub arena: ::size_t, + pub ordblks: ::size_t, + pub smblks: ::size_t, + pub hblks: ::size_t, + pub hblkhd: ::size_t, + pub usmblks: ::size_t, + pub fsmblks: ::size_t, + pub uordblks: ::size_t, + pub fordblks: ::size_t, + pub keepcost: ::size_t, + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: __sigset_t, + pub sa_flags: ::c_int, + } + + pub struct sigevent { + pub sigev_value: ::sigval, + pub sigev_signo: ::c_int, + pub sigev_notify: ::c_int, + __unused1: *mut ::c_void, //actually a function pointer + pub sigev_notify_attributes: *mut pthread_attr_t, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub si_pid: __pid_t, + pub si_uid: __uid_t, + pub si_addr: *mut ::c_void, + pub si_status: ::c_int, + pub si_band: ::c_long, + pub si_value: ::sigval, + } + + pub struct timespec { + pub tv_sec: __time_t, + pub tv_nsec: __syscall_slong_t, + } + + pub struct __locale_data { + pub _address: u8, + } + + pub struct stat { + pub st_fstype: ::c_int, + pub st_dev: __fsid_t, /* Actually st_fsid */ + pub st_ino: __ino_t, + pub st_gen: ::c_uint, + pub st_rdev: __dev_t, + pub st_mode: __mode_t, + pub st_nlink: __nlink_t, + pub st_uid: __uid_t, + pub st_gid: __gid_t, + pub st_size: __off_t, + pub st_atim: ::timespec, + pub st_mtim: ::timespec, + pub st_ctim: ::timespec, + pub st_blksize: __blksize_t, + pub st_blocks: __blkcnt_t, + pub st_author: __uid_t, + pub st_flags: ::c_uint, + pub st_spare: [::c_int; 11usize], + } + + pub struct stat64 { + pub st_fstype: ::c_int, + pub st_fsid: __fsid_t, + pub st_ino: __ino64_t, + pub st_gen: ::c_uint, + pub st_rdev: __dev_t, + pub st_mode: __mode_t, + pub st_nlink: __nlink_t, + pub st_uid: __uid_t, + pub st_gid: __gid_t, + pub st_size: __off64_t, + pub st_atim: ::timespec, + pub st_mtim: ::timespec, + pub st_ctim: ::timespec, + pub st_blksize: __blksize_t, + pub st_blocks: __blkcnt64_t, + pub st_author: __uid_t, + pub st_flags: ::c_uint, + pub st_spare: [::c_int; 8usize], + } + + pub struct statx { + pub stx_mask: u32, + pub stx_blksize: u32, + pub stx_attributes: u64, + pub stx_nlink: u32, + pub stx_uid: u32, + pub stx_gid: u32, + pub stx_mode: u16, + __statx_pad1: [u16; 1], + pub stx_ino: u64, + pub stx_size: u64, + pub stx_blocks: u64, + pub stx_attributes_mask: u64, + pub stx_atime: ::statx_timestamp, + pub stx_btime: ::statx_timestamp, + pub stx_ctime: ::statx_timestamp, + pub stx_mtime: ::statx_timestamp, + pub stx_rdev_major: u32, + pub stx_rdev_minor: u32, + pub stx_dev_major: u32, + pub stx_dev_minor: u32, + __statx_pad2: [u64; 14], + } + + pub struct statx_timestamp { + pub tv_sec: i64, + pub tv_nsec: u32, + pub __statx_timestamp_pad1: [i32; 1], + } + + pub struct statfs { + pub f_type: ::c_uint, + pub f_bsize: ::c_ulong, + pub f_blocks: __fsblkcnt_t, + pub f_bfree: __fsblkcnt_t, + pub f_bavail: __fsblkcnt_t, + pub f_files: __fsblkcnt_t, + pub f_ffree: __fsblkcnt_t, + pub f_fsid: __fsid_t, + pub f_namelen: ::c_ulong, + pub f_favail: __fsfilcnt_t, + pub f_frsize: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_spare: [::c_uint; 3usize], + } + + pub struct statfs64 { + pub f_type: ::c_uint, + pub f_bsize: ::c_ulong, + pub f_blocks: __fsblkcnt64_t, + pub f_bfree: __fsblkcnt64_t, + pub f_bavail: __fsblkcnt64_t, + pub f_files: __fsblkcnt64_t, + pub f_ffree: __fsblkcnt64_t, + pub f_fsid: __fsid_t, + pub f_namelen: ::c_ulong, + pub f_favail: __fsfilcnt64_t, + pub f_frsize: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_spare: [::c_uint ; 3usize], + } + + pub struct statvfs { + pub __f_type: ::c_uint, + pub f_bsize: ::c_ulong, + pub f_blocks: __fsblkcnt_t, + pub f_bfree: __fsblkcnt_t, + pub f_bavail: __fsblkcnt_t, + pub f_files: __fsfilcnt_t, + pub f_ffree: __fsfilcnt_t, + pub f_fsid: __fsid_t, + pub f_namemax: ::c_ulong, + pub f_favail: __fsfilcnt_t, + pub f_frsize: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_spare: [::c_uint; 3usize], + } + + pub struct statvfs64 { + pub __f_type: ::c_uint, + pub f_bsize: ::c_ulong, + pub f_blocks: __fsblkcnt64_t, + pub f_bfree: __fsblkcnt64_t, + pub f_bavail: __fsblkcnt64_t, + pub f_files: __fsfilcnt64_t, + pub f_ffree: __fsfilcnt64_t, + pub f_fsid: __fsid_t, + pub f_namemax: ::c_ulong, + pub f_favail: __fsfilcnt64_t, + pub f_frsize: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_spare: [::c_uint; 3usize], + } + + pub struct aiocb { + pub aio_fildes: ::c_int, + pub aio_lio_opcode: ::c_int, + pub aio_reqprio: ::c_int, + pub aio_buf: *mut ::c_void, + pub aio_nbytes: ::size_t, + pub aio_sigevent: ::sigevent, + __next_prio: *mut aiocb, + __abs_prio: ::c_int, + __policy: ::c_int, + __error_code: ::c_int, + __return_value: ::ssize_t, + pub aio_offset: off_t, + #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))] + __unused1: [::c_char; 4], + __glibc_reserved: [::c_char; 32] + } + + pub struct mq_attr { + pub mq_flags: ::c_long, + pub mq_maxmsg: ::c_long, + pub mq_msgsize: ::c_long, + pub mq_curmsgs: ::c_long, + } + + pub struct __exit_status { + pub e_termination: ::c_short, + pub e_exit: ::c_short, + } + + #[cfg_attr(target_pointer_width = "32", + repr(align(4)))] + #[cfg_attr(target_pointer_width = "64", + repr(align(8)))] + pub struct sem_t { + __size: [::c_char; 20usize], + } + + pub struct __pthread { + pub _address: u8, + } + + pub struct __pthread_mutexattr { + pub __prioceiling: ::c_int, + pub __protocol: __pthread_mutex_protocol, + pub __pshared: __pthread_process_shared, + pub __mutex_type: __pthread_mutex_type, + } + pub struct __pthread_mutex { + pub __lock: ::c_uint, + pub __owner_id: ::c_uint, + pub __cnt: ::c_uint, + pub __shpid: ::c_int, + pub __type: ::c_int, + pub __flags: ::c_int, + pub __reserved1: ::c_uint, + pub __reserved2: ::c_uint, + } + + pub struct __pthread_condattr { + pub __pshared: __pthread_process_shared, + pub __clock: __clockid_t, + } + + pub struct __pthread_rwlockattr { + pub __pshared: __pthread_process_shared, + } + + pub struct __pthread_barrierattr { + pub __pshared: __pthread_process_shared, + } + + pub struct __pthread_once { + pub __run: ::c_int, + pub __lock: __pthread_spinlock_t, + } + + pub struct __pthread_cond { + pub __lock: __pthread_spinlock_t, + pub __queue: *mut __pthread, + pub __attr: *mut __pthread_condattr, + pub __wrefs: ::c_uint, + pub __data: *mut ::c_void, + } + + pub struct __pthread_attr { + pub __schedparam: sched_param, + pub __stackaddr: *mut ::c_void, + pub __stacksize: size_t, + pub __guardsize: size_t, + pub __detachstate: __pthread_detachstate, + pub __inheritsched: __pthread_inheritsched, + pub __contentionscope: __pthread_contentionscope, + pub __schedpolicy: ::c_int, + } + + pub struct __pthread_rwlock { + pub __held: __pthread_spinlock_t, + pub __lock: __pthread_spinlock_t, + pub __readers: ::c_int, + pub __readerqueue: *mut __pthread, + pub __writerqueue: *mut __pthread, + pub __attr: *mut __pthread_rwlockattr, + pub __data: *mut ::c_void, + } + + pub struct __pthread_barrier { + pub __lock: __pthread_spinlock_t, + pub __queue: *mut __pthread, + pub __pending: ::c_uint, + pub __count: ::c_uint, + pub __attr: *mut __pthread_barrierattr, + pub __data: *mut ::c_void, + } + + pub struct seminfo { + pub semmap: ::c_int, + pub semmni: ::c_int, + pub semmns: ::c_int, + pub semmnu: ::c_int, + pub semmsl: ::c_int, + pub semopm: ::c_int, + pub semume: ::c_int, + pub semusz: ::c_int, + pub semvmx: ::c_int, + pub semaem: ::c_int, + } + + pub struct _IO_FILE { + _unused: [u8; 0], + } + + pub struct sched_param { + pub sched_priority: ::c_int, + } + + pub struct iovec { + pub iov_base: *mut ::c_void, + pub iov_len: size_t, + } + + pub struct passwd { + pub pw_name: *mut ::c_char, + pub pw_passwd: *mut ::c_char, + pub pw_uid: __uid_t, + pub pw_gid: __gid_t, + pub pw_gecos: *mut ::c_char, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char, + } + + pub struct spwd { + pub sp_namp: *mut ::c_char, + pub sp_pwdp: *mut ::c_char, + pub sp_lstchg: ::c_long, + pub sp_min: ::c_long, + pub sp_max: ::c_long, + pub sp_warn: ::c_long, + pub sp_inact: ::c_long, + pub sp_expire: ::c_long, + pub sp_flag: ::c_ulong, + } + + pub struct itimerspec { + pub it_interval: ::timespec, + pub it_value: ::timespec, + } + + pub struct tm { + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int, + pub tm_gmtoff: ::c_long, + pub tm_zone: *const ::c_char, + } + + pub struct lconv { + pub decimal_point: *mut ::c_char, + pub thousands_sep: *mut ::c_char, + pub grouping: *mut ::c_char, + pub int_curr_symbol: *mut ::c_char, + pub currency_symbol: *mut ::c_char, + pub mon_decimal_point: *mut ::c_char, + pub mon_thousands_sep: *mut ::c_char, + pub mon_grouping: *mut ::c_char, + pub positive_sign: *mut ::c_char, + pub negative_sign: *mut ::c_char, + pub int_frac_digits: ::c_char, + pub frac_digits: ::c_char, + pub p_cs_precedes: ::c_char, + pub p_sep_by_space: ::c_char, + pub n_cs_precedes: ::c_char, + pub n_sep_by_space: ::c_char, + pub p_sign_posn: ::c_char, + pub n_sign_posn: ::c_char, + pub int_p_cs_precedes: ::c_char, + pub int_p_sep_by_space: ::c_char, + pub int_n_cs_precedes: ::c_char, + pub int_n_sep_by_space: ::c_char, + pub int_p_sign_posn: ::c_char, + pub int_n_sign_posn: ::c_char, + } + + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } + + pub struct ifaddrs { + pub ifa_next: *mut ifaddrs, + pub ifa_name: *mut c_char, + pub ifa_flags: ::c_uint, + pub ifa_addr: *mut ::sockaddr, + pub ifa_netmask: *mut ::sockaddr, + pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union + pub ifa_data: *mut ::c_void + } + + pub struct arpreq { + pub arp_pa: ::sockaddr, + pub arp_ha: ::sockaddr, + pub arp_flags: ::c_int, + pub arp_netmask: ::sockaddr, + pub arp_dev: [::c_char; 16], + } + + pub struct arpreq_old { + pub arp_pa: ::sockaddr, + pub arp_ha: ::sockaddr, + pub arp_flags: ::c_int, + pub arp_netmask: ::sockaddr, + } + + pub struct arphdr { + pub ar_hrd: u16, + pub ar_pro: u16, + pub ar_hln: u8, + pub ar_pln: u8, + pub ar_op: u16, + } + + pub struct arpd_request { + pub req: ::c_ushort, + pub ip: u32, + pub dev: ::c_ulong, + pub stamp: ::c_ulong, + pub updated: ::c_ulong, + pub ha: [::c_uchar; ::MAX_ADDR_LEN], + } + + pub struct mmsghdr { + pub msg_hdr: ::msghdr, + pub msg_len: ::c_uint, + } + + pub struct ifreq { + /// interface name, e.g. "en0" + pub ifr_name: [::c_char; ::IFNAMSIZ], + pub ifr_ifru: ::sockaddr, + } + + pub struct __locale_struct { + pub __locales: [*mut __locale_data; 13usize], + pub __ctype_b: *const ::c_ushort, + pub __ctype_tolower: *const ::c_int, + pub __ctype_toupper: *const ::c_int, + pub __names: [*const ::c_char; 13usize], + } + + pub struct utsname { + pub sysname: [::c_char; 65], + pub nodename: [::c_char; 65], + pub release: [::c_char; 65], + pub version: [::c_char; 65], + pub machine: [::c_char; 65], + pub domainname: [::c_char; 65] + } + + pub struct rlimit64 { + pub rlim_cur: rlim64_t, + pub rlim_max: rlim64_t, + } + + pub struct stack_t { + pub ss_sp: * mut ::c_void, + pub ss_size: ::size_t, + pub ss_flags: ::c_int, + } + + pub struct dl_phdr_info { + pub dlpi_addr: Elf_Addr, + pub dlpi_name: *const ::c_char, + pub dlpi_phdr: *const Elf_Phdr, + pub dlpi_phnum: Elf_Half, + pub dlpi_adds: ::c_ulonglong, + pub dlpi_subs: ::c_ulonglong, + pub dlpi_tls_modid: ::size_t, + pub dlpi_tls_data: *mut ::c_void, + } + + pub struct flock { + #[cfg(target_pointer_width = "32")] + pub l_type : ::c_int, + #[cfg(target_pointer_width = "32")] + pub l_whence : ::c_int, + #[cfg(target_pointer_width = "64")] + pub l_type : ::c_short, + #[cfg(target_pointer_width = "64")] + pub l_whence : ::c_short, + pub l_start : __off_t, + pub l_len : __off_t, + pub l_pid : __pid_t, + } + + pub struct flock64 { + #[cfg(target_pointer_width = "32")] + pub l_type : ::c_int, + #[cfg(target_pointer_width = "32")] + pub l_whence : ::c_int, + #[cfg(target_pointer_width = "64")] + pub l_type : ::c_short, + #[cfg(target_pointer_width = "64")] + pub l_whence : ::c_short, + pub l_start : __off_t, + pub l_len : __off64_t, + pub l_pid : __pid_t, + } + + pub struct glob_t { + pub gl_pathc: ::size_t, + pub gl_pathv: *mut *mut c_char, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + + __unused1: *mut ::c_void, + __unused2: *mut ::c_void, + __unused3: *mut ::c_void, + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + } + + pub struct glob64_t { + pub gl_pathc: ::size_t, + pub gl_pathv: *mut *mut ::c_char, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, + + __unused1: *mut ::c_void, + __unused2: *mut ::c_void, + __unused3: *mut ::c_void, + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, + } + + pub struct regex_t { + __buffer: *mut ::c_void, + __allocated: ::size_t, + __used: ::size_t, + __syntax: ::c_ulong, + __fastmap: *mut ::c_char, + __translate: *mut ::c_char, + __re_nsub: ::size_t, + __bitfield: u8, + } + + pub struct cpu_set_t { + #[cfg(all(target_pointer_width = "32", + not(target_arch = "x86_64")))] + bits: [u32; 32], + #[cfg(not(all(target_pointer_width = "32", + not(target_arch = "x86_64"))))] + bits: [u64; 16], + } + + pub struct if_nameindex { + pub if_index: ::c_uint, + pub if_name: *mut ::c_char, + } + + // System V IPC + pub struct msginfo { + pub msgpool: ::c_int, + pub msgmap: ::c_int, + pub msgmax: ::c_int, + pub msgmnb: ::c_int, + pub msgmni: ::c_int, + pub msgssz: ::c_int, + pub msgtql: ::c_int, + pub msgseg: ::c_ushort, + } + + pub struct sembuf { + pub sem_num: ::c_ushort, + pub sem_op: ::c_short, + pub sem_flg: ::c_short, + } + + pub struct mntent { + pub mnt_fsname: *mut ::c_char, + pub mnt_dir: *mut ::c_char, + pub mnt_type: *mut ::c_char, + pub mnt_opts: *mut ::c_char, + pub mnt_freq: ::c_int, + pub mnt_passno: ::c_int, + } + + pub struct posix_spawn_file_actions_t { + __allocated: ::c_int, + __used: ::c_int, + __actions: *mut ::c_int, + __pad: [::c_int; 16], + } + + pub struct posix_spawnattr_t { + __flags: ::c_short, + __pgrp: ::pid_t, + __sd: ::sigset_t, + __ss: ::sigset_t, + __sp: ::sched_param, + __policy: ::c_int, + __pad: [::c_int; 16], + } + + pub struct regmatch_t { + pub rm_so: regoff_t, + pub rm_eo: regoff_t, + } + + pub struct option { + pub name: *const ::c_char, + pub has_arg: ::c_int, + pub flag: *mut ::c_int, + pub val: ::c_int, + } + +} + +s_no_extra_traits! { + pub struct utmpx { + pub ut_type: ::c_short, + pub ut_pid: ::pid_t, + pub ut_line: [::c_char; __UT_LINESIZE], + pub ut_id: [::c_char; 4], + + pub ut_user: [::c_char; __UT_NAMESIZE], + pub ut_host: [::c_char; __UT_HOSTSIZE], + pub ut_exit: __exit_status, + + #[cfg(any( all(target_pointer_width = "32", + not(target_arch = "x86_64"))))] + pub ut_session: ::c_long, + #[cfg(any(all(target_pointer_width = "32", + not(target_arch = "x86_64"))))] + pub ut_tv: ::timeval, + + #[cfg(not(any(all(target_pointer_width = "32", + not(target_arch = "x86_64")))))] + pub ut_session: i32, + #[cfg(not(any(all(target_pointer_width = "32", + not(target_arch = "x86_64")))))] + pub ut_tv: __timeval, + + pub ut_addr_v6: [i32; 4], + __glibc_reserved: [::c_char; 20], + } +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for utmpx { + fn eq(&self, other: &utmpx) -> bool { + self.ut_type == other.ut_type + && self.ut_pid == other.ut_pid + && self.ut_line == other.ut_line + && self.ut_id == other.ut_id + && self.ut_user == other.ut_user + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + && self.ut_exit == other.ut_exit + && self.ut_session == other.ut_session + && self.ut_tv == other.ut_tv + && self.ut_addr_v6 == other.ut_addr_v6 + && self.__glibc_reserved == other.__glibc_reserved + } + } + + impl Eq for utmpx {} + + impl ::fmt::Debug for utmpx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmpx") + .field("ut_type", &self.ut_type) + .field("ut_pid", &self.ut_pid) + .field("ut_line", &self.ut_line) + .field("ut_id", &self.ut_id) + .field("ut_user", &self.ut_user) + // FIXME: .field("ut_host", &self.ut_host) + .field("ut_exit", &self.ut_exit) + .field("ut_session", &self.ut_session) + .field("ut_tv", &self.ut_tv) + .field("ut_addr_v6", &self.ut_addr_v6) + .field("__glibc_reserved", &self.__glibc_reserved) + .finish() + } + } + + impl ::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { + self.ut_type.hash(state); + self.ut_pid.hash(state); + self.ut_line.hash(state); + self.ut_id.hash(state); + self.ut_user.hash(state); + self.ut_host.hash(state); + self.ut_exit.hash(state); + self.ut_session.hash(state); + self.ut_tv.hash(state); + self.ut_addr_v6.hash(state); + self.__glibc_reserved.hash(state); + } + } + } +} + +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + self.si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + self.si_value + } + + pub unsafe fn si_pid(&self) -> ::pid_t { + self.si_pid + } + + pub unsafe fn si_uid(&self) -> ::uid_t { + self.si_uid + } + + pub unsafe fn si_status(&self) -> ::c_int { + self.si_status + } +} + +// const + +// aio.h +pub const AIO_CANCELED: ::c_int = 0; +pub const AIO_NOTCANCELED: ::c_int = 1; +pub const AIO_ALLDONE: ::c_int = 2; +pub const LIO_READ: ::c_int = 0; +pub const LIO_WRITE: ::c_int = 1; +pub const LIO_NOP: ::c_int = 2; +pub const LIO_WAIT: ::c_int = 0; +pub const LIO_NOWAIT: ::c_int = 1; + +// glob.h +pub const GLOB_ERR: ::c_int = 1 << 0; +pub const GLOB_MARK: ::c_int = 1 << 1; +pub const GLOB_NOSORT: ::c_int = 1 << 2; +pub const GLOB_DOOFFS: ::c_int = 1 << 3; +pub const GLOB_NOCHECK: ::c_int = 1 << 4; +pub const GLOB_APPEND: ::c_int = 1 << 5; +pub const GLOB_NOESCAPE: ::c_int = 1 << 6; + +pub const GLOB_NOSPACE: ::c_int = 1; +pub const GLOB_ABORTED: ::c_int = 2; +pub const GLOB_NOMATCH: ::c_int = 3; + +pub const GLOB_PERIOD: ::c_int = 1 << 7; +pub const GLOB_ALTDIRFUNC: ::c_int = 1 << 9; +pub const GLOB_BRACE: ::c_int = 1 << 10; +pub const GLOB_NOMAGIC: ::c_int = 1 << 11; +pub const GLOB_TILDE: ::c_int = 1 << 12; +pub const GLOB_ONLYDIR: ::c_int = 1 << 13; +pub const GLOB_TILDE_CHECK: ::c_int = 1 << 14; + +// ipc.h +pub const IPC_PRIVATE: ::key_t = 0; + +pub const IPC_CREAT: ::c_int = 0o1000; +pub const IPC_EXCL: ::c_int = 0o2000; +pub const IPC_NOWAIT: ::c_int = 0o4000; + +pub const IPC_RMID: ::c_int = 0; +pub const IPC_SET: ::c_int = 1; +pub const IPC_STAT: ::c_int = 2; +pub const IPC_INFO: ::c_int = 3; +pub const MSG_STAT: ::c_int = 11; +pub const MSG_INFO: ::c_int = 12; + +pub const MSG_NOERROR: ::c_int = 0o10000; +pub const MSG_EXCEPT: ::c_int = 0o20000; + +// shm.h +pub const SHM_R: ::c_int = 0o400; +pub const SHM_W: ::c_int = 0o200; + +pub const SHM_RDONLY: ::c_int = 0o10000; +pub const SHM_RND: ::c_int = 0o20000; +pub const SHM_REMAP: ::c_int = 0o40000; + +pub const SHM_LOCK: ::c_int = 11; +pub const SHM_UNLOCK: ::c_int = 12; +// unistd.h +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; +pub const __FD_SETSIZE: usize = 256; +pub const R_OK: ::c_int = 4; +pub const W_OK: ::c_int = 2; +pub const X_OK: ::c_int = 1; +pub const F_OK: ::c_int = 0; +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; +pub const SEEK_DATA: ::c_int = 3; +pub const SEEK_HOLE: ::c_int = 4; +pub const L_SET: ::c_int = 0; +pub const L_INCR: ::c_int = 1; +pub const L_XTND: ::c_int = 2; +pub const F_ULOCK: ::c_int = 0; +pub const F_LOCK: ::c_int = 1; +pub const F_TLOCK: ::c_int = 2; +pub const F_TEST: ::c_int = 3; +pub const CLOSE_RANGE_CLOEXEC: ::c_int = 4; + +// stdio.h +pub const EOF: ::c_int = -1; + +// stdlib.h +pub const WNOHANG: ::c_int = 1; +pub const WUNTRACED: ::c_int = 2; +pub const WSTOPPED: ::c_int = 2; +pub const WCONTINUED: ::c_int = 4; +pub const WNOWAIT: ::c_int = 8; +pub const WEXITED: ::c_int = 16; +pub const __W_CONTINUED: ::c_int = 65535; +pub const __WCOREFLAG: ::c_int = 128; +pub const RAND_MAX: ::c_int = 2147483647; +pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: ::c_int = 0; +pub const __LITTLE_ENDIAN: usize = 1234; +pub const __BIG_ENDIAN: usize = 4321; +pub const __PDP_ENDIAN: usize = 3412; +pub const __BYTE_ORDER: usize = 1234; +pub const __FLOAT_WORD_ORDER: usize = 1234; +pub const LITTLE_ENDIAN: usize = 1234; +pub const BIG_ENDIAN: usize = 4321; +pub const PDP_ENDIAN: usize = 3412; +pub const BYTE_ORDER: usize = 1234; + +// sys/select.h +pub const FD_SETSIZE: usize = 256; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32; +pub const __SIZEOF_PTHREAD_ATTR_T: usize = 32; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 28; +pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 24; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 16; +pub const __SIZEOF_PTHREAD_COND_T: usize = 20; +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 8; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_ONCE_T: usize = 8; +pub const __PTHREAD_SPIN_LOCK_INITIALIZER: ::c_int = 0; +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; + +// sys/resource.h +pub const RLIM_INFINITY: ::rlim_t = 2147483647; +pub const RLIM64_INFINITY: ::rlim64_t = 9223372036854775807; +pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY; +pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY; +pub const PRIO_MIN: ::c_int = -20; +pub const PRIO_MAX: ::c_int = 20; + +// pwd.h +pub const NSS_BUFLEN_PASSWD: usize = 1024; + +// sys/socket.h +pub const SOCK_TYPE_MASK: usize = 15; +pub const PF_UNSPEC: ::c_int = 0; +pub const PF_LOCAL: ::c_int = 1; +pub const PF_UNIX: ::c_int = 1; +pub const PF_FILE: ::c_int = 1; +pub const PF_INET: ::c_int = 2; +pub const PF_IMPLINK: ::c_int = 3; +pub const PF_PUP: ::c_int = 4; +pub const PF_CHAOS: ::c_int = 5; +pub const PF_NS: ::c_int = 6; +pub const PF_ISO: ::c_int = 7; +pub const PF_OSI: ::c_int = 7; +pub const PF_ECMA: ::c_int = 8; +pub const PF_DATAKIT: ::c_int = 9; +pub const PF_CCITT: ::c_int = 10; +pub const PF_SNA: ::c_int = 11; +pub const PF_DECnet: ::c_int = 12; +pub const PF_DLI: ::c_int = 13; +pub const PF_LAT: ::c_int = 14; +pub const PF_HYLINK: ::c_int = 15; +pub const PF_APPLETALK: ::c_int = 16; +pub const PF_ROUTE: ::c_int = 17; +pub const PF_XTP: ::c_int = 19; +pub const PF_COIP: ::c_int = 20; +pub const PF_CNT: ::c_int = 21; +pub const PF_RTIP: ::c_int = 22; +pub const PF_IPX: ::c_int = 23; +pub const PF_SIP: ::c_int = 24; +pub const PF_PIP: ::c_int = 25; +pub const PF_INET6: ::c_int = 26; +pub const PF_MAX: ::c_int = 27; +pub const AF_UNSPEC: ::c_int = 0; +pub const AF_LOCAL: ::c_int = 1; +pub const AF_UNIX: ::c_int = 1; +pub const AF_FILE: ::c_int = 1; +pub const AF_INET: ::c_int = 2; +pub const AF_IMPLINK: ::c_int = 3; +pub const AF_PUP: ::c_int = 4; +pub const AF_CHAOS: ::c_int = 5; +pub const AF_NS: ::c_int = 6; +pub const AF_ISO: ::c_int = 7; +pub const AF_OSI: ::c_int = 7; +pub const AF_ECMA: ::c_int = 8; +pub const AF_DATAKIT: ::c_int = 9; +pub const AF_CCITT: ::c_int = 10; +pub const AF_SNA: ::c_int = 11; +pub const AF_DECnet: ::c_int = 12; +pub const AF_DLI: ::c_int = 13; +pub const AF_LAT: ::c_int = 14; +pub const AF_HYLINK: ::c_int = 15; +pub const AF_APPLETALK: ::c_int = 16; +pub const AF_ROUTE: ::c_int = 17; +pub const pseudo_AF_XTP: ::c_int = 19; +pub const AF_COIP: ::c_int = 20; +pub const AF_CNT: ::c_int = 21; +pub const pseudo_AF_RTIP: ::c_int = 22; +pub const AF_IPX: ::c_int = 23; +pub const AF_SIP: ::c_int = 24; +pub const pseudo_AF_PIP: ::c_int = 25; +pub const AF_INET6: ::c_int = 26; +pub const AF_MAX: ::c_int = 27; +pub const SOMAXCONN: ::c_int = 4096; +pub const _SS_SIZE: usize = 128; +pub const CMGROUP_MAX: usize = 16; +pub const SOL_SOCKET: ::c_int = 65535; + +// sys/time.h +pub const ITIMER_REAL: ::c_int = 0; +pub const ITIMER_VIRTUAL: ::c_int = 1; +pub const ITIMER_PROF: ::c_int = 2; + +// netinet/in.h +pub const SOL_IP: ::c_int = 0; +pub const SOL_TCP: ::c_int = 6; +pub const SOL_UDP: ::c_int = 17; +pub const SOL_IPV6: ::c_int = 41; +pub const SOL_ICMPV6: ::c_int = 58; +pub const IP_OPTIONS: ::c_int = 1; +pub const IP_HDRINCL: ::c_int = 2; +pub const IP_TOS: ::c_int = 3; +pub const IP_TTL: ::c_int = 4; +pub const IP_RECVOPTS: ::c_int = 5; +pub const IP_RECVRETOPTS: ::c_int = 6; +pub const IP_RECVDSTADDR: ::c_int = 7; +pub const IP_RETOPTS: ::c_int = 8; +pub const IP_MULTICAST_IF: ::c_int = 9; +pub const IP_MULTICAST_TTL: ::c_int = 10; +pub const IP_MULTICAST_LOOP: ::c_int = 11; +pub const IP_ADD_MEMBERSHIP: ::c_int = 12; +pub const IP_DROP_MEMBERSHIP: ::c_int = 13; +pub const IPV6_ADDRFORM: ::c_int = 1; +pub const IPV6_2292PKTINFO: ::c_int = 2; +pub const IPV6_2292HOPOPTS: ::c_int = 3; +pub const IPV6_2292DSTOPTS: ::c_int = 4; +pub const IPV6_2292RTHDR: ::c_int = 5; +pub const IPV6_2292PKTOPTIONS: ::c_int = 6; +pub const IPV6_CHECKSUM: ::c_int = 7; +pub const IPV6_2292HOPLIMIT: ::c_int = 8; +pub const IPV6_RXINFO: ::c_int = 2; +pub const IPV6_TXINFO: ::c_int = 2; +pub const SCM_SRCINFO: ::c_int = 2; +pub const IPV6_UNICAST_HOPS: ::c_int = 16; +pub const IPV6_MULTICAST_IF: ::c_int = 17; +pub const IPV6_MULTICAST_HOPS: ::c_int = 18; +pub const IPV6_MULTICAST_LOOP: ::c_int = 19; +pub const IPV6_JOIN_GROUP: ::c_int = 20; +pub const IPV6_LEAVE_GROUP: ::c_int = 21; +pub const IPV6_ROUTER_ALERT: ::c_int = 22; +pub const IPV6_MTU_DISCOVER: ::c_int = 23; +pub const IPV6_MTU: ::c_int = 24; +pub const IPV6_RECVERR: ::c_int = 25; +pub const IPV6_V6ONLY: ::c_int = 26; +pub const IPV6_JOIN_ANYCAST: ::c_int = 27; +pub const IPV6_LEAVE_ANYCAST: ::c_int = 28; +pub const IPV6_RECVPKTINFO: ::c_int = 49; +pub const IPV6_PKTINFO: ::c_int = 50; +pub const IPV6_RECVHOPLIMIT: ::c_int = 51; +pub const IPV6_HOPLIMIT: ::c_int = 52; +pub const IPV6_RECVHOPOPTS: ::c_int = 53; +pub const IPV6_HOPOPTS: ::c_int = 54; +pub const IPV6_RTHDRDSTOPTS: ::c_int = 55; +pub const IPV6_RECVRTHDR: ::c_int = 56; +pub const IPV6_RTHDR: ::c_int = 57; +pub const IPV6_RECVDSTOPTS: ::c_int = 58; +pub const IPV6_DSTOPTS: ::c_int = 59; +pub const IPV6_RECVPATHMTU: ::c_int = 60; +pub const IPV6_PATHMTU: ::c_int = 61; +pub const IPV6_DONTFRAG: ::c_int = 62; +pub const IPV6_RECVTCLASS: ::c_int = 66; +pub const IPV6_TCLASS: ::c_int = 67; +pub const IPV6_ADDR_PREFERENCES: ::c_int = 72; +pub const IPV6_MINHOPCOUNT: ::c_int = 73; +pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; +pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; +pub const IPV6_RXHOPOPTS: ::c_int = 3; +pub const IPV6_RXDSTOPTS: ::c_int = 4; +pub const IPV6_RTHDR_LOOSE: ::c_int = 0; +pub const IPV6_RTHDR_STRICT: ::c_int = 1; +pub const IPV6_RTHDR_TYPE_0: ::c_int = 0; +pub const IN_CLASSA_NET: u32 = 4278190080; +pub const IN_CLASSA_NSHIFT: usize = 24; +pub const IN_CLASSA_HOST: u32 = 16777215; +pub const IN_CLASSA_MAX: u32 = 128; +pub const IN_CLASSB_NET: u32 = 4294901760; +pub const IN_CLASSB_NSHIFT: usize = 16; +pub const IN_CLASSB_HOST: u32 = 65535; +pub const IN_CLASSB_MAX: u32 = 65536; +pub const IN_CLASSC_NET: u32 = 4294967040; +pub const IN_CLASSC_NSHIFT: usize = 8; +pub const IN_CLASSC_HOST: u32 = 255; +pub const IN_LOOPBACKNET: u32 = 127; +pub const INET_ADDRSTRLEN: usize = 16; +pub const INET6_ADDRSTRLEN: usize = 46; + +// netinet/ip.h +pub const IPTOS_TOS_MASK: u8 = 0x1E; +pub const IPTOS_PREC_MASK: u8 = 0xE0; + +pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; + +pub const IPTOS_LOWDELAY: u8 = 0x10; +pub const IPTOS_THROUGHPUT: u8 = 0x08; +pub const IPTOS_RELIABILITY: u8 = 0x04; +pub const IPTOS_MINCOST: u8 = 0x02; + +pub const IPTOS_PREC_NETCONTROL: u8 = 0xe0; +pub const IPTOS_PREC_INTERNETCONTROL: u8 = 0xc0; +pub const IPTOS_PREC_CRITIC_ECP: u8 = 0xa0; +pub const IPTOS_PREC_FLASHOVERRIDE: u8 = 0x80; +pub const IPTOS_PREC_FLASH: u8 = 0x60; +pub const IPTOS_PREC_IMMEDIATE: u8 = 0x40; +pub const IPTOS_PREC_PRIORITY: u8 = 0x20; +pub const IPTOS_PREC_ROUTINE: u8 = 0x00; + +pub const IPTOS_ECN_MASK: u8 = 0x03; +pub const IPTOS_ECN_ECT1: u8 = 0x01; +pub const IPTOS_ECN_ECT0: u8 = 0x02; +pub const IPTOS_ECN_CE: u8 = 0x03; + +pub const IPOPT_COPY: u8 = 0x80; +pub const IPOPT_CLASS_MASK: u8 = 0x60; +pub const IPOPT_NUMBER_MASK: u8 = 0x1f; + +pub const IPOPT_CONTROL: u8 = 0x00; +pub const IPOPT_RESERVED1: u8 = 0x20; +pub const IPOPT_MEASUREMENT: u8 = 0x40; +pub const IPOPT_RESERVED2: u8 = 0x60; +pub const IPOPT_END: u8 = 0 | IPOPT_CONTROL; +pub const IPOPT_NOOP: u8 = 1 | IPOPT_CONTROL; +pub const IPOPT_SEC: u8 = 2 | IPOPT_CONTROL | IPOPT_COPY; +pub const IPOPT_LSRR: u8 = 3 | IPOPT_CONTROL | IPOPT_COPY; +pub const IPOPT_TIMESTAMP: u8 = 4 | IPOPT_MEASUREMENT; +pub const IPOPT_RR: u8 = 7 | IPOPT_CONTROL; +pub const IPOPT_SID: u8 = 8 | IPOPT_CONTROL | IPOPT_COPY; +pub const IPOPT_SSRR: u8 = 9 | IPOPT_CONTROL | IPOPT_COPY; +pub const IPOPT_RA: u8 = 20 | IPOPT_CONTROL | IPOPT_COPY; +pub const IPVERSION: u8 = 4; +pub const MAXTTL: u8 = 255; +pub const IPDEFTTL: u8 = 64; +pub const IPOPT_OPTVAL: u8 = 0; +pub const IPOPT_OLEN: u8 = 1; +pub const IPOPT_OFFSET: u8 = 2; +pub const IPOPT_MINOFF: u8 = 4; +pub const MAX_IPOPTLEN: u8 = 40; +pub const IPOPT_NOP: u8 = IPOPT_NOOP; +pub const IPOPT_EOL: u8 = IPOPT_END; +pub const IPOPT_TS: u8 = IPOPT_TIMESTAMP; +pub const IPOPT_TS_TSONLY: u8 = 0; +pub const IPOPT_TS_TSANDADDR: u8 = 1; +pub const IPOPT_TS_PRESPEC: u8 = 3; + +// net/if_arp.h +pub const ARPOP_REQUEST: u16 = 1; +pub const ARPOP_REPLY: u16 = 2; +pub const ARPOP_RREQUEST: u16 = 3; +pub const ARPOP_RREPLY: u16 = 4; +pub const ARPOP_InREQUEST: u16 = 8; +pub const ARPOP_InREPLY: u16 = 9; +pub const ARPOP_NAK: u16 = 10; + +pub const MAX_ADDR_LEN: usize = 7; +pub const ARPD_UPDATE: ::c_ushort = 0x01; +pub const ARPD_LOOKUP: ::c_ushort = 0x02; +pub const ARPD_FLUSH: ::c_ushort = 0x03; +pub const ATF_MAGIC: ::c_int = 0x80; + +pub const ATF_NETMASK: ::c_int = 0x20; +pub const ATF_DONTPUB: ::c_int = 0x40; + +pub const ARPHRD_NETROM: u16 = 0; +pub const ARPHRD_ETHER: u16 = 1; +pub const ARPHRD_EETHER: u16 = 2; +pub const ARPHRD_AX25: u16 = 3; +pub const ARPHRD_PRONET: u16 = 4; +pub const ARPHRD_CHAOS: u16 = 5; +pub const ARPHRD_IEEE802: u16 = 6; +pub const ARPHRD_ARCNET: u16 = 7; +pub const ARPHRD_APPLETLK: u16 = 8; +pub const ARPHRD_DLCI: u16 = 15; +pub const ARPHRD_ATM: u16 = 19; +pub const ARPHRD_METRICOM: u16 = 23; +pub const ARPHRD_IEEE1394: u16 = 24; +pub const ARPHRD_EUI64: u16 = 27; +pub const ARPHRD_INFINIBAND: u16 = 32; + +pub const ARPHRD_SLIP: u16 = 256; +pub const ARPHRD_CSLIP: u16 = 257; +pub const ARPHRD_SLIP6: u16 = 258; +pub const ARPHRD_CSLIP6: u16 = 259; +pub const ARPHRD_RSRVD: u16 = 260; +pub const ARPHRD_ADAPT: u16 = 264; +pub const ARPHRD_ROSE: u16 = 270; +pub const ARPHRD_X25: u16 = 271; +pub const ARPHRD_HWX25: u16 = 272; +pub const ARPHRD_CAN: u16 = 280; +pub const ARPHRD_PPP: u16 = 512; +pub const ARPHRD_CISCO: u16 = 513; +pub const ARPHRD_HDLC: u16 = ARPHRD_CISCO; +pub const ARPHRD_LAPB: u16 = 516; +pub const ARPHRD_DDCMP: u16 = 517; +pub const ARPHRD_RAWHDLC: u16 = 518; + +pub const ARPHRD_TUNNEL: u16 = 768; +pub const ARPHRD_TUNNEL6: u16 = 769; +pub const ARPHRD_FRAD: u16 = 770; +pub const ARPHRD_SKIP: u16 = 771; +pub const ARPHRD_LOOPBACK: u16 = 772; +pub const ARPHRD_LOCALTLK: u16 = 773; +pub const ARPHRD_FDDI: u16 = 774; +pub const ARPHRD_BIF: u16 = 775; +pub const ARPHRD_SIT: u16 = 776; +pub const ARPHRD_IPDDP: u16 = 777; +pub const ARPHRD_IPGRE: u16 = 778; +pub const ARPHRD_PIMREG: u16 = 779; +pub const ARPHRD_HIPPI: u16 = 780; +pub const ARPHRD_ASH: u16 = 781; +pub const ARPHRD_ECONET: u16 = 782; +pub const ARPHRD_IRDA: u16 = 783; +pub const ARPHRD_FCPP: u16 = 784; +pub const ARPHRD_FCAL: u16 = 785; +pub const ARPHRD_FCPL: u16 = 786; +pub const ARPHRD_FCFABRIC: u16 = 787; +pub const ARPHRD_IEEE802_TR: u16 = 800; +pub const ARPHRD_IEEE80211: u16 = 801; +pub const ARPHRD_IEEE80211_PRISM: u16 = 802; +pub const ARPHRD_IEEE80211_RADIOTAP: u16 = 803; +pub const ARPHRD_IEEE802154: u16 = 804; + +pub const ARPHRD_VOID: u16 = 0xFFFF; +pub const ARPHRD_NONE: u16 = 0xFFFE; + +// bits/posix1_lim.h +pub const _POSIX_AIO_LISTIO_MAX: usize = 2; +pub const _POSIX_AIO_MAX: usize = 1; +pub const _POSIX_ARG_MAX: usize = 4096; +pub const _POSIX_CHILD_MAX: usize = 25; +pub const _POSIX_DELAYTIMER_MAX: usize = 32; +pub const _POSIX_HOST_NAME_MAX: usize = 255; +pub const _POSIX_LINK_MAX: usize = 8; +pub const _POSIX_LOGIN_NAME_MAX: usize = 9; +pub const _POSIX_MAX_CANON: usize = 255; +pub const _POSIX_MAX_INPUT: usize = 255; +pub const _POSIX_MQ_OPEN_MAX: usize = 8; +pub const _POSIX_MQ_PRIO_MAX: usize = 32; +pub const _POSIX_NAME_MAX: usize = 14; +pub const _POSIX_NGROUPS_MAX: usize = 8; +pub const _POSIX_OPEN_MAX: usize = 20; +pub const _POSIX_FD_SETSIZE: usize = 20; +pub const _POSIX_PATH_MAX: usize = 256; +pub const _POSIX_PIPE_BUF: usize = 512; +pub const _POSIX_RE_DUP_MAX: usize = 255; +pub const _POSIX_RTSIG_MAX: usize = 8; +pub const _POSIX_SEM_NSEMS_MAX: usize = 256; +pub const _POSIX_SEM_VALUE_MAX: usize = 32767; +pub const _POSIX_SIGQUEUE_MAX: usize = 32; +pub const _POSIX_SSIZE_MAX: usize = 32767; +pub const _POSIX_STREAM_MAX: usize = 8; +pub const _POSIX_SYMLINK_MAX: usize = 255; +pub const _POSIX_SYMLOOP_MAX: usize = 8; +pub const _POSIX_TIMER_MAX: usize = 32; +pub const _POSIX_TTY_NAME_MAX: usize = 9; +pub const _POSIX_TZNAME_MAX: usize = 6; +pub const _POSIX_QLIMIT: usize = 1; +pub const _POSIX_HIWAT: usize = 512; +pub const _POSIX_UIO_MAXIOV: usize = 16; +pub const _POSIX_CLOCKRES_MIN: usize = 20000000; +pub const NAME_MAX: usize = 255; +pub const NGROUPS_MAX: usize = 256; +pub const _POSIX_THREAD_KEYS_MAX: usize = 128; +pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: usize = 4; +pub const _POSIX_THREAD_THREADS_MAX: usize = 64; +pub const SEM_VALUE_MAX: ::c_int = 2147483647; +pub const MAXNAMLEN: usize = 255; + +// netdb.h +pub const _PATH_HEQUIV: &'static [u8; 17usize] = b"/etc/hosts.equiv\0"; +pub const _PATH_HOSTS: &'static [u8; 11usize] = b"/etc/hosts\0"; +pub const _PATH_NETWORKS: &'static [u8; 14usize] = b"/etc/networks\0"; +pub const _PATH_NSSWITCH_CONF: &'static [u8; 19usize] = b"/etc/nsswitch.conf\0"; +pub const _PATH_PROTOCOLS: &'static [u8; 15usize] = b"/etc/protocols\0"; +pub const _PATH_SERVICES: &'static [u8; 14usize] = b"/etc/services\0"; +pub const HOST_NOT_FOUND: ::c_int = 1; +pub const TRY_AGAIN: ::c_int = 2; +pub const NO_RECOVERY: ::c_int = 3; +pub const NO_DATA: ::c_int = 4; +pub const NETDB_INTERNAL: ::c_int = -1; +pub const NETDB_SUCCESS: ::c_int = 0; +pub const NO_ADDRESS: ::c_int = 4; +pub const IPPORT_RESERVED: ::c_int = 1024; +pub const SCOPE_DELIMITER: u8 = 37u8; +pub const GAI_WAIT: ::c_int = 0; +pub const GAI_NOWAIT: ::c_int = 1; +pub const AI_PASSIVE: ::c_int = 1; +pub const AI_CANONNAME: ::c_int = 2; +pub const AI_NUMERICHOST: ::c_int = 4; +pub const AI_V4MAPPED: ::c_int = 8; +pub const AI_ALL: ::c_int = 16; +pub const AI_ADDRCONFIG: ::c_int = 32; +pub const AI_IDN: ::c_int = 64; +pub const AI_CANONIDN: ::c_int = 128; +pub const AI_NUMERICSERV: ::c_int = 1024; +pub const EAI_BADFLAGS: ::c_int = -1; +pub const EAI_NONAME: ::c_int = -2; +pub const EAI_AGAIN: ::c_int = -3; +pub const EAI_FAIL: ::c_int = -4; +pub const EAI_FAMILY: ::c_int = -6; +pub const EAI_SOCKTYPE: ::c_int = -7; +pub const EAI_SERVICE: ::c_int = -8; +pub const EAI_MEMORY: ::c_int = -10; +pub const EAI_SYSTEM: ::c_int = -11; +pub const EAI_OVERFLOW: ::c_int = -12; +pub const EAI_NODATA: ::c_int = -5; +pub const EAI_ADDRFAMILY: ::c_int = -9; +pub const EAI_INPROGRESS: ::c_int = -100; +pub const EAI_CANCELED: ::c_int = -101; +pub const EAI_NOTCANCELED: ::c_int = -102; +pub const EAI_ALLDONE: ::c_int = -103; +pub const EAI_INTR: ::c_int = -104; +pub const EAI_IDN_ENCODE: ::c_int = -105; +pub const NI_MAXHOST: usize = 1025; +pub const NI_MAXSERV: usize = 32; +pub const NI_NUMERICHOST: ::c_int = 1; +pub const NI_NUMERICSERV: ::c_int = 2; +pub const NI_NOFQDN: ::c_int = 4; +pub const NI_NAMEREQD: ::c_int = 8; +pub const NI_DGRAM: ::c_int = 16; +pub const NI_IDN: ::c_int = 32; + +// time.h +pub const CLOCK_REALTIME: ::clockid_t = 0; +pub const CLOCK_MONOTONIC: ::clockid_t = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; +pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 3; +pub const CLOCK_MONOTONIC_RAW: ::clockid_t = 4; +pub const CLOCK_REALTIME_COARSE: ::clockid_t = 5; +pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = 6; +pub const TIMER_ABSTIME: ::c_int = 1; +pub const TIME_UTC: ::c_int = 1; + +// sys/poll.h +pub const POLLIN: i16 = 1; +pub const POLLPRI: i16 = 2; +pub const POLLOUT: i16 = 4; +pub const POLLRDNORM: i16 = 1; +pub const POLLRDBAND: i16 = 2; +pub const POLLWRNORM: i16 = 4; +pub const POLLWRBAND: i16 = 4; +pub const POLLERR: i16 = 8; +pub const POLLHUP: i16 = 16; +pub const POLLNVAL: i16 = 32; + +// locale.h +pub const __LC_CTYPE: usize = 0; +pub const __LC_NUMERIC: usize = 1; +pub const __LC_TIME: usize = 2; +pub const __LC_COLLATE: usize = 3; +pub const __LC_MONETARY: usize = 4; +pub const __LC_MESSAGES: usize = 5; +pub const __LC_ALL: usize = 6; +pub const __LC_PAPER: usize = 7; +pub const __LC_NAME: usize = 8; +pub const __LC_ADDRESS: usize = 9; +pub const __LC_TELEPHONE: usize = 10; +pub const __LC_MEASUREMENT: usize = 11; +pub const __LC_IDENTIFICATION: usize = 12; +pub const LC_CTYPE: ::c_int = 0; +pub const LC_NUMERIC: ::c_int = 1; +pub const LC_TIME: ::c_int = 2; +pub const LC_COLLATE: ::c_int = 3; +pub const LC_MONETARY: ::c_int = 4; +pub const LC_MESSAGES: ::c_int = 5; +pub const LC_ALL: ::c_int = 6; +pub const LC_PAPER: ::c_int = 7; +pub const LC_NAME: ::c_int = 8; +pub const LC_ADDRESS: ::c_int = 9; +pub const LC_TELEPHONE: ::c_int = 10; +pub const LC_MEASUREMENT: ::c_int = 11; +pub const LC_IDENTIFICATION: ::c_int = 12; +pub const LC_CTYPE_MASK: ::c_int = 1; +pub const LC_NUMERIC_MASK: ::c_int = 2; +pub const LC_TIME_MASK: ::c_int = 4; +pub const LC_COLLATE_MASK: ::c_int = 8; +pub const LC_MONETARY_MASK: ::c_int = 16; +pub const LC_MESSAGES_MASK: ::c_int = 32; +pub const LC_PAPER_MASK: ::c_int = 128; +pub const LC_NAME_MASK: ::c_int = 256; +pub const LC_ADDRESS_MASK: ::c_int = 512; +pub const LC_TELEPHONE_MASK: ::c_int = 1024; +pub const LC_MEASUREMENT_MASK: ::c_int = 2048; +pub const LC_IDENTIFICATION_MASK: ::c_int = 4096; +pub const LC_ALL_MASK: ::c_int = 8127; + +pub const ABDAY_1: ::nl_item = 0x20000; +pub const ABDAY_2: ::nl_item = 0x20001; +pub const ABDAY_3: ::nl_item = 0x20002; +pub const ABDAY_4: ::nl_item = 0x20003; +pub const ABDAY_5: ::nl_item = 0x20004; +pub const ABDAY_6: ::nl_item = 0x20005; +pub const ABDAY_7: ::nl_item = 0x20006; + +pub const DAY_1: ::nl_item = 0x20007; +pub const DAY_2: ::nl_item = 0x20008; +pub const DAY_3: ::nl_item = 0x20009; +pub const DAY_4: ::nl_item = 0x2000A; +pub const DAY_5: ::nl_item = 0x2000B; +pub const DAY_6: ::nl_item = 0x2000C; +pub const DAY_7: ::nl_item = 0x2000D; + +pub const ABMON_1: ::nl_item = 0x2000E; +pub const ABMON_2: ::nl_item = 0x2000F; +pub const ABMON_3: ::nl_item = 0x20010; +pub const ABMON_4: ::nl_item = 0x20011; +pub const ABMON_5: ::nl_item = 0x20012; +pub const ABMON_6: ::nl_item = 0x20013; +pub const ABMON_7: ::nl_item = 0x20014; +pub const ABMON_8: ::nl_item = 0x20015; +pub const ABMON_9: ::nl_item = 0x20016; +pub const ABMON_10: ::nl_item = 0x20017; +pub const ABMON_11: ::nl_item = 0x20018; +pub const ABMON_12: ::nl_item = 0x20019; + +pub const MON_1: ::nl_item = 0x2001A; +pub const MON_2: ::nl_item = 0x2001B; +pub const MON_3: ::nl_item = 0x2001C; +pub const MON_4: ::nl_item = 0x2001D; +pub const MON_5: ::nl_item = 0x2001E; +pub const MON_6: ::nl_item = 0x2001F; +pub const MON_7: ::nl_item = 0x20020; +pub const MON_8: ::nl_item = 0x20021; +pub const MON_9: ::nl_item = 0x20022; +pub const MON_10: ::nl_item = 0x20023; +pub const MON_11: ::nl_item = 0x20024; +pub const MON_12: ::nl_item = 0x20025; + +pub const AM_STR: ::nl_item = 0x20026; +pub const PM_STR: ::nl_item = 0x20027; + +pub const D_T_FMT: ::nl_item = 0x20028; +pub const D_FMT: ::nl_item = 0x20029; +pub const T_FMT: ::nl_item = 0x2002A; +pub const T_FMT_AMPM: ::nl_item = 0x2002B; + +pub const ERA: ::nl_item = 0x2002C; +pub const ERA_D_FMT: ::nl_item = 0x2002E; +pub const ALT_DIGITS: ::nl_item = 0x2002F; +pub const ERA_D_T_FMT: ::nl_item = 0x20030; +pub const ERA_T_FMT: ::nl_item = 0x20031; + +pub const CODESET: ::nl_item = 14; +pub const CRNCYSTR: ::nl_item = 0x4000F; +pub const RADIXCHAR: ::nl_item = 0x10000; +pub const THOUSEP: ::nl_item = 0x10001; +pub const YESEXPR: ::nl_item = 0x50000; +pub const NOEXPR: ::nl_item = 0x50001; +pub const YESSTR: ::nl_item = 0x50002; +pub const NOSTR: ::nl_item = 0x50003; + +// reboot.h +pub const RB_AUTOBOOT: ::c_int = 0x0; +pub const RB_ASKNAME: ::c_int = 0x1; +pub const RB_SINGLE: ::c_int = 0x2; +pub const RB_KBD: ::c_int = 0x4; +pub const RB_HALT: ::c_int = 0x8; +pub const RB_INITNAME: ::c_int = 0x10; +pub const RB_DFLTROOT: ::c_int = 0x20; +pub const RB_NOBOOTRC: ::c_int = 0x20; +pub const RB_ALTBOOT: ::c_int = 0x40; +pub const RB_UNIPROC: ::c_int = 0x80; +pub const RB_DEBUGGER: ::c_int = 0x1000; + +// semaphore.h +pub const __SIZEOF_SEM_T: usize = 20; +pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t; + +// termios.h +pub const IGNBRK: ::tcflag_t = 1; +pub const BRKINT: ::tcflag_t = 2; +pub const IGNPAR: ::tcflag_t = 4; +pub const PARMRK: ::tcflag_t = 8; +pub const INPCK: ::tcflag_t = 16; +pub const ISTRIP: ::tcflag_t = 32; +pub const INLCR: ::tcflag_t = 64; +pub const IGNCR: ::tcflag_t = 128; +pub const ICRNL: ::tcflag_t = 256; +pub const IXON: ::tcflag_t = 512; +pub const IXOFF: ::tcflag_t = 1024; +pub const IXANY: ::tcflag_t = 2048; +pub const IMAXBEL: ::tcflag_t = 8192; +pub const IUCLC: ::tcflag_t = 16384; +pub const OPOST: ::tcflag_t = 1; +pub const ONLCR: ::tcflag_t = 2; +pub const ONOEOT: ::tcflag_t = 8; +pub const OCRNL: ::tcflag_t = 16; +pub const ONOCR: ::tcflag_t = 32; +pub const ONLRET: ::tcflag_t = 64; +pub const NLDLY: ::tcflag_t = 768; +pub const NL0: ::tcflag_t = 0; +pub const NL1: ::tcflag_t = 256; +pub const TABDLY: ::tcflag_t = 3076; +pub const TAB0: ::tcflag_t = 0; +pub const TAB1: ::tcflag_t = 1024; +pub const TAB2: ::tcflag_t = 2048; +pub const TAB3: ::tcflag_t = 4; +pub const CRDLY: ::tcflag_t = 12288; +pub const CR0: ::tcflag_t = 0; +pub const CR1: ::tcflag_t = 4096; +pub const CR2: ::tcflag_t = 8192; +pub const CR3: ::tcflag_t = 12288; +pub const FFDLY: ::tcflag_t = 16384; +pub const FF0: ::tcflag_t = 0; +pub const FF1: ::tcflag_t = 16384; +pub const BSDLY: ::tcflag_t = 32768; +pub const BS0: ::tcflag_t = 0; +pub const BS1: ::tcflag_t = 32768; +pub const VTDLY: ::tcflag_t = 65536; +pub const VT0: ::tcflag_t = 0; +pub const VT1: ::tcflag_t = 65536; +pub const OLCUC: ::tcflag_t = 131072; +pub const OFILL: ::tcflag_t = 262144; +pub const OFDEL: ::tcflag_t = 524288; +pub const CIGNORE: ::tcflag_t = 1; +pub const CSIZE: ::tcflag_t = 768; +pub const CS5: ::tcflag_t = 0; +pub const CS6: ::tcflag_t = 256; +pub const CS7: ::tcflag_t = 512; +pub const CS8: ::tcflag_t = 768; +pub const CSTOPB: ::tcflag_t = 1024; +pub const CREAD: ::tcflag_t = 2048; +pub const PARENB: ::tcflag_t = 4096; +pub const PARODD: ::tcflag_t = 8192; +pub const HUPCL: ::tcflag_t = 16384; +pub const CLOCAL: ::tcflag_t = 32768; +pub const CRTSCTS: ::tcflag_t = 65536; +pub const CRTS_IFLOW: ::tcflag_t = 65536; +pub const CCTS_OFLOW: ::tcflag_t = 65536; +pub const CDTRCTS: ::tcflag_t = 131072; +pub const MDMBUF: ::tcflag_t = 1048576; +pub const CHWFLOW: ::tcflag_t = 1245184; +pub const ECHOKE: ::tcflag_t = 1; +pub const _ECHOE: ::tcflag_t = 2; +pub const ECHOE: ::tcflag_t = 2; +pub const _ECHOK: ::tcflag_t = 4; +pub const ECHOK: ::tcflag_t = 4; +pub const _ECHO: ::tcflag_t = 8; +pub const ECHO: ::tcflag_t = 8; +pub const _ECHONL: ::tcflag_t = 16; +pub const ECHONL: ::tcflag_t = 16; +pub const ECHOPRT: ::tcflag_t = 32; +pub const ECHOCTL: ::tcflag_t = 64; +pub const _ISIG: ::tcflag_t = 128; +pub const ISIG: ::tcflag_t = 128; +pub const _ICANON: ::tcflag_t = 256; +pub const ICANON: ::tcflag_t = 256; +pub const ALTWERASE: ::tcflag_t = 512; +pub const _IEXTEN: ::tcflag_t = 1024; +pub const IEXTEN: ::tcflag_t = 1024; +pub const EXTPROC: ::tcflag_t = 2048; +pub const _TOSTOP: ::tcflag_t = 4194304; +pub const TOSTOP: ::tcflag_t = 4194304; +pub const FLUSHO: ::tcflag_t = 8388608; +pub const NOKERNINFO: ::tcflag_t = 33554432; +pub const PENDIN: ::tcflag_t = 536870912; +pub const _NOFLSH: ::tcflag_t = 2147483648; +pub const NOFLSH: ::tcflag_t = 2147483648; +pub const VEOF: usize = 0; +pub const VEOL: usize = 1; +pub const VEOL2: usize = 2; +pub const VERASE: usize = 3; +pub const VWERASE: usize = 4; +pub const VKILL: usize = 5; +pub const VREPRINT: usize = 6; +pub const VINTR: usize = 8; +pub const VQUIT: usize = 9; +pub const VSUSP: usize = 10; +pub const VDSUSP: usize = 11; +pub const VSTART: usize = 12; +pub const VSTOP: usize = 13; +pub const VLNEXT: usize = 14; +pub const VDISCARD: usize = 15; +pub const VMIN: usize = 16; +pub const VTIME: usize = 17; +pub const VSTATUS: usize = 18; +pub const NCCS: usize = 20; +pub const B0: ::speed_t = 0; +pub const B50: ::speed_t = 50; +pub const B75: ::speed_t = 75; +pub const B110: ::speed_t = 110; +pub const B134: ::speed_t = 134; +pub const B150: ::speed_t = 150; +pub const B200: ::speed_t = 200; +pub const B300: ::speed_t = 300; +pub const B600: ::speed_t = 600; +pub const B1200: ::speed_t = 1200; +pub const B1800: ::speed_t = 1800; +pub const B2400: ::speed_t = 2400; +pub const B4800: ::speed_t = 4800; +pub const B9600: ::speed_t = 9600; +pub const B7200: ::speed_t = 7200; +pub const B14400: ::speed_t = 14400; +pub const B19200: ::speed_t = 19200; +pub const B28800: ::speed_t = 28800; +pub const B38400: ::speed_t = 38400; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const B57600: ::speed_t = 57600; +pub const B76800: ::speed_t = 76800; +pub const B115200: ::speed_t = 115200; +pub const B230400: ::speed_t = 230400; +pub const B460800: ::speed_t = 460800; +pub const B500000: ::speed_t = 500000; +pub const B576000: ::speed_t = 576000; +pub const B921600: ::speed_t = 921600; +pub const B1000000: ::speed_t = 1000000; +pub const B1152000: ::speed_t = 1152000; +pub const B1500000: ::speed_t = 1500000; +pub const B2000000: ::speed_t = 2000000; +pub const B2500000: ::speed_t = 2500000; +pub const B3000000: ::speed_t = 3000000; +pub const B3500000: ::speed_t = 3500000; +pub const B4000000: ::speed_t = 4000000; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; +pub const TCSASOFT: ::c_int = 16; +pub const TCIFLUSH: ::c_int = 1; +pub const TCOFLUSH: ::c_int = 2; +pub const TCIOFLUSH: ::c_int = 3; +pub const TCOOFF: ::c_int = 1; +pub const TCOON: ::c_int = 2; +pub const TCIOFF: ::c_int = 3; +pub const TCION: ::c_int = 4; +pub const TTYDEF_IFLAG: ::tcflag_t = 11042; +pub const TTYDEF_LFLAG: ::tcflag_t = 1483; +pub const TTYDEF_CFLAG: ::tcflag_t = 23040; +pub const TTYDEF_SPEED: ::tcflag_t = 9600; +pub const CEOL: u8 = 0u8; +pub const CERASE: u8 = 127; +pub const CMIN: u8 = 1; +pub const CQUIT: u8 = 28; +pub const CTIME: u8 = 0; +pub const CBRK: u8 = 0u8; + +// dlfcn.h +pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; +pub const RTLD_NEXT: *mut ::c_void = -1i64 as *mut ::c_void; +pub const RTLD_LAZY: ::c_int = 1; +pub const RTLD_NOW: ::c_int = 2; +pub const RTLD_BINDING_MASK: ::c_int = 3; +pub const RTLD_NOLOAD: ::c_int = 4; +pub const RTLD_DEEPBIND: ::c_int = 8; +pub const RTLD_GLOBAL: ::c_int = 256; +pub const RTLD_LOCAL: ::c_int = 0; +pub const RTLD_NODELETE: ::c_int = 4096; +pub const DLFO_STRUCT_HAS_EH_DBASE: usize = 1; +pub const DLFO_STRUCT_HAS_EH_COUNT: usize = 0; +pub const LM_ID_BASE: c_long = 0; +pub const LM_ID_NEWLM: c_long = -1; + +// bits/signum_generic.h +pub const SIGINT: ::c_int = 2; +pub const SIGILL: ::c_int = 4; +pub const SIGABRT: ::c_int = 6; +pub const SIGFPE: ::c_int = 8; +pub const SIGSEGV: ::c_int = 11; +pub const SIGTERM: ::c_int = 15; +pub const SIGHUP: ::c_int = 1; +pub const SIGQUIT: ::c_int = 3; +pub const SIGTRAP: ::c_int = 5; +pub const SIGKILL: ::c_int = 9; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGIOT: ::c_int = 6; +pub const SIGBUS: ::c_int = 10; +pub const SIGSYS: ::c_int = 12; +pub const SIGEMT: ::c_int = 7; +pub const SIGINFO: ::c_int = 29; +pub const SIGLOST: ::c_int = 32; +pub const SIGURG: ::c_int = 16; +pub const SIGSTOP: ::c_int = 17; +pub const SIGTSTP: ::c_int = 18; +pub const SIGCONT: ::c_int = 19; +pub const SIGCHLD: ::c_int = 20; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGPOLL: ::c_int = 23; +pub const SIGXCPU: ::c_int = 24; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGUSR1: ::c_int = 30; +pub const SIGUSR2: ::c_int = 31; +pub const SIGWINCH: ::c_int = 28; +pub const SIGIO: ::c_int = 23; +pub const SIGCLD: ::c_int = 20; +pub const __SIGRTMIN: usize = 32; +pub const __SIGRTMAX: usize = 32; +pub const _NSIG: usize = 33; +pub const NSIG: usize = 33; + +// bits/sigaction.h +pub const SA_ONSTACK: ::c_int = 1; +pub const SA_RESTART: ::c_int = 2; +pub const SA_NODEFER: ::c_int = 16; +pub const SA_RESETHAND: ::c_int = 4; +pub const SA_NOCLDSTOP: ::c_int = 8; +pub const SA_SIGINFO: ::c_int = 64; +pub const SA_INTERRUPT: ::c_int = 0; +pub const SA_NOMASK: ::c_int = 16; +pub const SA_ONESHOT: ::c_int = 4; +pub const SA_STACK: ::c_int = 1; +pub const SIG_BLOCK: ::c_int = 1; +pub const SIG_UNBLOCK: ::c_int = 2; +pub const SIG_SETMASK: ::c_int = 3; + +// bits/sigcontext.h +pub const FPC_IE: u16 = 1; +pub const FPC_IM: u16 = 1; +pub const FPC_DE: u16 = 2; +pub const FPC_DM: u16 = 2; +pub const FPC_ZE: u16 = 4; +pub const FPC_ZM: u16 = 4; +pub const FPC_OE: u16 = 8; +pub const FPC_OM: u16 = 8; +pub const FPC_UE: u16 = 16; +pub const FPC_PE: u16 = 32; +pub const FPC_PC: u16 = 768; +pub const FPC_PC_24: u16 = 0; +pub const FPC_PC_53: u16 = 512; +pub const FPC_PC_64: u16 = 768; +pub const FPC_RC: u16 = 3072; +pub const FPC_RC_RN: u16 = 0; +pub const FPC_RC_RD: u16 = 1024; +pub const FPC_RC_RU: u16 = 2048; +pub const FPC_RC_CHOP: u16 = 3072; +pub const FPC_IC: u16 = 4096; +pub const FPC_IC_PROJ: u16 = 0; +pub const FPC_IC_AFF: u16 = 4096; +pub const FPS_IE: u16 = 1; +pub const FPS_DE: u16 = 2; +pub const FPS_ZE: u16 = 4; +pub const FPS_OE: u16 = 8; +pub const FPS_UE: u16 = 16; +pub const FPS_PE: u16 = 32; +pub const FPS_SF: u16 = 64; +pub const FPS_ES: u16 = 128; +pub const FPS_C0: u16 = 256; +pub const FPS_C1: u16 = 512; +pub const FPS_C2: u16 = 1024; +pub const FPS_TOS: u16 = 14336; +pub const FPS_TOS_SHIFT: u16 = 11; +pub const FPS_C3: u16 = 16384; +pub const FPS_BUSY: u16 = 32768; +pub const FPE_INTOVF_TRAP: ::c_int = 1; +pub const FPE_INTDIV_FAULT: ::c_int = 2; +pub const FPE_FLTOVF_FAULT: ::c_int = 3; +pub const FPE_FLTDIV_FAULT: ::c_int = 4; +pub const FPE_FLTUND_FAULT: ::c_int = 5; +pub const FPE_SUBRNG_FAULT: ::c_int = 7; +pub const FPE_FLTDNR_FAULT: ::c_int = 8; +pub const FPE_FLTINX_FAULT: ::c_int = 9; +pub const FPE_EMERR_FAULT: ::c_int = 10; +pub const FPE_EMBND_FAULT: ::c_int = 11; +pub const ILL_INVOPR_FAULT: ::c_int = 1; +pub const ILL_STACK_FAULT: ::c_int = 2; +pub const ILL_FPEOPR_FAULT: ::c_int = 3; +pub const DBG_SINGLE_TRAP: ::c_int = 1; +pub const DBG_BRKPNT_FAULT: ::c_int = 2; +pub const __NGREG: usize = 19; +pub const NGREG: usize = 19; + +// bits/sigstack.h +pub const MINSIGSTKSZ: usize = 8192; +pub const SIGSTKSZ: usize = 40960; + +// sys/stat.h +pub const __S_IFMT: mode_t = 61440; +pub const __S_IFDIR: mode_t = 16384; +pub const __S_IFCHR: mode_t = 8192; +pub const __S_IFBLK: mode_t = 24576; +pub const __S_IFREG: mode_t = 32768; +pub const __S_IFLNK: mode_t = 40960; +pub const __S_IFSOCK: mode_t = 49152; +pub const __S_IFIFO: mode_t = 4096; +pub const __S_ISUID: mode_t = 2048; +pub const __S_ISGID: mode_t = 1024; +pub const __S_ISVTX: mode_t = 512; +pub const __S_IREAD: mode_t = 256; +pub const __S_IWRITE: mode_t = 128; +pub const __S_IEXEC: mode_t = 64; +pub const S_INOCACHE: mode_t = 65536; +pub const S_IUSEUNK: mode_t = 131072; +pub const S_IUNKNOWN: mode_t = 1835008; +pub const S_IUNKSHIFT: mode_t = 12; +pub const S_IPTRANS: mode_t = 2097152; +pub const S_IATRANS: mode_t = 4194304; +pub const S_IROOT: mode_t = 8388608; +pub const S_ITRANS: mode_t = 14680064; +pub const S_IMMAP0: mode_t = 16777216; +pub const CMASK: mode_t = 18; +pub const UF_SETTABLE: ::c_uint = 65535; +pub const UF_NODUMP: ::c_uint = 1; +pub const UF_IMMUTABLE: ::c_uint = 2; +pub const UF_APPEND: ::c_uint = 4; +pub const UF_OPAQUE: ::c_uint = 8; +pub const UF_NOUNLINK: ::c_uint = 16; +pub const SF_SETTABLE: ::c_uint = 4294901760; +pub const SF_ARCHIVED: ::c_uint = 65536; +pub const SF_IMMUTABLE: ::c_uint = 131072; +pub const SF_APPEND: ::c_uint = 262144; +pub const SF_NOUNLINK: ::c_uint = 1048576; +pub const SF_SNAPSHOT: ::c_uint = 2097152; +pub const UTIME_NOW: ::c_long = -1; +pub const UTIME_OMIT: ::c_long = -2; +pub const S_IFMT: ::mode_t = 61440; +pub const S_IFDIR: ::mode_t = 16384; +pub const S_IFCHR: ::mode_t = 8192; +pub const S_IFBLK: ::mode_t = 24576; +pub const S_IFREG: ::mode_t = 32768; +pub const S_IFIFO: ::mode_t = 4096; +pub const S_IFLNK: ::mode_t = 40960; +pub const S_IFSOCK: ::mode_t = 49152; +pub const S_ISUID: ::mode_t = 2048; +pub const S_ISGID: ::mode_t = 1024; +pub const S_ISVTX: ::mode_t = 512; +pub const S_IRUSR: ::mode_t = 256; +pub const S_IWUSR: ::mode_t = 128; +pub const S_IXUSR: ::mode_t = 64; +pub const S_IRWXU: ::mode_t = 448; +pub const S_IREAD: ::mode_t = 256; +pub const S_IWRITE: ::mode_t = 128; +pub const S_IEXEC: ::mode_t = 64; +pub const S_IRGRP: ::mode_t = 32; +pub const S_IWGRP: ::mode_t = 16; +pub const S_IXGRP: ::mode_t = 8; +pub const S_IRWXG: ::mode_t = 56; +pub const S_IROTH: ::mode_t = 4; +pub const S_IWOTH: ::mode_t = 2; +pub const S_IXOTH: ::mode_t = 1; +pub const S_IRWXO: ::mode_t = 7; +pub const ACCESSPERMS: ::mode_t = 511; +pub const ALLPERMS: ::mode_t = 4095; +pub const DEFFILEMODE: ::mode_t = 438; +pub const S_BLKSIZE: usize = 512; +pub const STATX_TYPE: ::c_uint = 1; +pub const STATX_MODE: ::c_uint = 2; +pub const STATX_NLINK: ::c_uint = 4; +pub const STATX_UID: ::c_uint = 8; +pub const STATX_GID: ::c_uint = 16; +pub const STATX_ATIME: ::c_uint = 32; +pub const STATX_MTIME: ::c_uint = 64; +pub const STATX_CTIME: ::c_uint = 128; +pub const STATX_INO: ::c_uint = 256; +pub const STATX_SIZE: ::c_uint = 512; +pub const STATX_BLOCKS: ::c_uint = 1024; +pub const STATX_BASIC_STATS: ::c_uint = 2047; +pub const STATX_ALL: ::c_uint = 4095; +pub const STATX_BTIME: ::c_uint = 2048; +pub const STATX_MNT_ID: ::c_uint = 4096; +pub const STATX_DIOALIGN: ::c_uint = 8192; +pub const STATX__RESERVED: ::c_uint = 2147483648; +pub const STATX_ATTR_COMPRESSED: ::c_uint = 4; +pub const STATX_ATTR_IMMUTABLE: ::c_uint = 16; +pub const STATX_ATTR_APPEND: ::c_uint = 32; +pub const STATX_ATTR_NODUMP: ::c_uint = 64; +pub const STATX_ATTR_ENCRYPTED: ::c_uint = 2048; +pub const STATX_ATTR_AUTOMOUNT: ::c_uint = 4096; +pub const STATX_ATTR_MOUNT_ROOT: ::c_uint = 8192; +pub const STATX_ATTR_VERITY: ::c_uint = 1048576; +pub const STATX_ATTR_DAX: ::c_uint = 2097152; + +// sys/ioctl.h +pub const TIOCM_LE: ::c_int = 1; +pub const TIOCM_DTR: ::c_int = 2; +pub const TIOCM_RTS: ::c_int = 4; +pub const TIOCM_ST: ::c_int = 8; +pub const TIOCM_SR: ::c_int = 16; +pub const TIOCM_CTS: ::c_int = 32; +pub const TIOCM_CAR: ::c_int = 64; +pub const TIOCM_CD: ::c_int = 64; +pub const TIOCM_RNG: ::c_int = 128; +pub const TIOCM_RI: ::c_int = 128; +pub const TIOCM_DSR: ::c_int = 256; +pub const TIOCPKT_DATA: ::c_int = 0; +pub const TIOCPKT_FLUSHREAD: ::c_int = 1; +pub const TIOCPKT_FLUSHWRITE: ::c_int = 2; +pub const TIOCPKT_STOP: ::c_int = 4; +pub const TIOCPKT_START: ::c_int = 8; +pub const TIOCPKT_NOSTOP: ::c_int = 16; +pub const TIOCPKT_DOSTOP: ::c_int = 32; +pub const TIOCPKT_IOCTL: ::c_int = 64; +pub const TTYDISC: ::c_int = 0; +pub const TABLDISC: ::c_int = 3; +pub const SLIPDISC: ::c_int = 4; +pub const TANDEM: ::tcflag_t = 1; +pub const CBREAK: ::tcflag_t = 2; +pub const LCASE: ::tcflag_t = 4; +pub const CRMOD: ::tcflag_t = 16; +pub const RAW: ::tcflag_t = 32; +pub const ODDP: ::tcflag_t = 64; +pub const EVENP: ::tcflag_t = 128; +pub const ANYP: ::tcflag_t = 192; +pub const NLDELAY: ::tcflag_t = 768; +pub const NL2: ::tcflag_t = 512; +pub const NL3: ::tcflag_t = 768; +pub const TBDELAY: ::tcflag_t = 3072; +pub const XTABS: ::tcflag_t = 3072; +pub const CRDELAY: ::tcflag_t = 12288; +pub const VTDELAY: ::tcflag_t = 16384; +pub const BSDELAY: ::tcflag_t = 32768; +pub const ALLDELAY: ::tcflag_t = 65280; +pub const CRTBS: ::tcflag_t = 65536; +pub const PRTERA: ::tcflag_t = 131072; +pub const CRTERA: ::tcflag_t = 262144; +pub const TILDE: ::tcflag_t = 524288; +pub const LITOUT: ::tcflag_t = 2097152; +pub const NOHANG: ::tcflag_t = 16777216; +pub const L001000: ::tcflag_t = 33554432; +pub const CRTKIL: ::tcflag_t = 67108864; +pub const PASS8: ::tcflag_t = 134217728; +pub const CTLECH: ::tcflag_t = 268435456; +pub const DECCTQ: ::tcflag_t = 1073741824; + +pub const FIONBIO: ::c_ulong = 0xa008007e; +pub const FIONREAD: ::c_ulong = 0x6008007f; +pub const TIOCSWINSZ: ::c_ulong = 0x90200767; +pub const TIOCGWINSZ: ::c_ulong = 0x50200768; +pub const TIOCEXCL: ::c_ulong = 0x70d; +pub const TIOCNXCL: ::c_ulong = 0x70e; +pub const TIOCSCTTY: ::c_ulong = 0x761; + +pub const FIOCLEX: ::c_ulong = 1; + +// fcntl.h +pub const O_EXEC: ::c_int = 4; +pub const O_NORW: ::c_int = 0; +pub const O_RDONLY: ::c_int = 1; +pub const O_WRONLY: ::c_int = 2; +pub const O_RDWR: ::c_int = 3; +pub const O_ACCMODE: ::c_int = 3; +pub const O_LARGEFILE: ::c_int = 0; +pub const O_CREAT: ::c_int = 16; +pub const O_EXCL: ::c_int = 32; +pub const O_NOLINK: ::c_int = 64; +pub const O_NOTRANS: ::c_int = 128; +pub const O_NOFOLLOW: ::c_int = 1048576; +pub const O_DIRECTORY: ::c_int = 2097152; +pub const O_APPEND: ::c_int = 256; +pub const O_ASYNC: ::c_int = 512; +pub const O_FSYNC: ::c_int = 1024; +pub const O_SYNC: ::c_int = 1024; +pub const O_NOATIME: ::c_int = 2048; +pub const O_SHLOCK: ::c_int = 131072; +pub const O_EXLOCK: ::c_int = 262144; +pub const O_DSYNC: ::c_int = 1024; +pub const O_RSYNC: ::c_int = 1024; +pub const O_NONBLOCK: ::c_int = 8; +pub const O_NDELAY: ::c_int = 8; +pub const O_HURD: ::c_int = 458751; +pub const O_TRUNC: ::c_int = 65536; +pub const O_CLOEXEC: ::c_int = 4194304; +pub const O_IGNORE_CTTY: ::c_int = 524288; +pub const O_TMPFILE: ::c_int = 8388608; +pub const O_NOCTTY: ::c_int = 0; +pub const FREAD: ::c_int = 1; +pub const FWRITE: ::c_int = 2; +pub const FASYNC: ::c_int = 512; +pub const FCREAT: ::c_int = 16; +pub const FEXCL: ::c_int = 32; +pub const FTRUNC: ::c_int = 65536; +pub const FNOCTTY: ::c_int = 0; +pub const FFSYNC: ::c_int = 1024; +pub const FSYNC: ::c_int = 1024; +pub const FAPPEND: ::c_int = 256; +pub const FNONBLOCK: ::c_int = 8; +pub const FNDELAY: ::c_int = 8; +pub const F_DUPFD: ::c_int = 0; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; +pub const F_GETOWN: ::c_int = 5; +pub const F_SETOWN: ::c_int = 6; +pub const F_GETLK: ::c_int = 7; +pub const F_SETLK: ::c_int = 8; +pub const F_SETLKW: ::c_int = 9; +pub const F_GETLK64: ::c_int = 10; +pub const F_SETLK64: ::c_int = 11; +pub const F_SETLKW64: ::c_int = 12; +pub const F_DUPFD_CLOEXEC: ::c_int = 1030; +pub const FD_CLOEXEC: ::c_int = 1; +pub const F_RDLCK: ::c_int = 1; +pub const F_WRLCK: ::c_int = 2; +pub const F_UNLCK: ::c_int = 3; +pub const POSIX_FADV_NORMAL: ::c_int = 0; +pub const POSIX_FADV_RANDOM: ::c_int = 1; +pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_FADV_WILLNEED: ::c_int = 3; +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; +pub const AT_FDCWD: ::c_int = -100; +pub const AT_SYMLINK_NOFOLLOW: ::c_int = 256; +pub const AT_REMOVEDIR: ::c_int = 512; +pub const AT_SYMLINK_FOLLOW: ::c_int = 1024; +pub const AT_NO_AUTOMOUNT: ::c_int = 2048; +pub const AT_EMPTY_PATH: ::c_int = 4096; +pub const AT_STATX_SYNC_TYPE: ::c_int = 24576; +pub const AT_STATX_SYNC_AS_STAT: ::c_int = 0; +pub const AT_STATX_FORCE_SYNC: ::c_int = 8192; +pub const AT_STATX_DONT_SYNC: ::c_int = 16384; +pub const AT_RECURSIVE: ::c_int = 32768; +pub const AT_EACCESS: ::c_int = 512; + +// sys/uio.h +pub const RWF_HIPRI: ::c_int = 1; +pub const RWF_DSYNC: ::c_int = 2; +pub const RWF_SYNC: ::c_int = 4; +pub const RWF_NOWAIT: ::c_int = 8; +pub const RWF_APPEND: ::c_int = 16; + +// errno.h +pub const EPERM: ::c_int = 1073741825; +pub const ENOENT: ::c_int = 1073741826; +pub const ESRCH: ::c_int = 1073741827; +pub const EINTR: ::c_int = 1073741828; +pub const EIO: ::c_int = 1073741829; +pub const ENXIO: ::c_int = 1073741830; +pub const E2BIG: ::c_int = 1073741831; +pub const ENOEXEC: ::c_int = 1073741832; +pub const EBADF: ::c_int = 1073741833; +pub const ECHILD: ::c_int = 1073741834; +pub const EDEADLK: ::c_int = 1073741835; +pub const ENOMEM: ::c_int = 1073741836; +pub const EACCES: ::c_int = 1073741837; +pub const EFAULT: ::c_int = 1073741838; +pub const ENOTBLK: ::c_int = 1073741839; +pub const EBUSY: ::c_int = 1073741840; +pub const EEXIST: ::c_int = 1073741841; +pub const EXDEV: ::c_int = 1073741842; +pub const ENODEV: ::c_int = 1073741843; +pub const ENOTDIR: ::c_int = 1073741844; +pub const EISDIR: ::c_int = 1073741845; +pub const EINVAL: ::c_int = 1073741846; +pub const EMFILE: ::c_int = 1073741848; +pub const ENFILE: ::c_int = 1073741847; +pub const ENOTTY: ::c_int = 1073741849; +pub const ETXTBSY: ::c_int = 1073741850; +pub const EFBIG: ::c_int = 1073741851; +pub const ENOSPC: ::c_int = 1073741852; +pub const ESPIPE: ::c_int = 1073741853; +pub const EROFS: ::c_int = 1073741854; +pub const EMLINK: ::c_int = 1073741855; +pub const EPIPE: ::c_int = 1073741856; +pub const EDOM: ::c_int = 1073741857; +pub const ERANGE: ::c_int = 1073741858; +pub const EAGAIN: ::c_int = 1073741859; +pub const EWOULDBLOCK: ::c_int = 1073741859; +pub const EINPROGRESS: ::c_int = 1073741860; +pub const EALREADY: ::c_int = 1073741861; +pub const ENOTSOCK: ::c_int = 1073741862; +pub const EMSGSIZE: ::c_int = 1073741864; +pub const EPROTOTYPE: ::c_int = 1073741865; +pub const ENOPROTOOPT: ::c_int = 1073741866; +pub const EPROTONOSUPPORT: ::c_int = 1073741867; +pub const ESOCKTNOSUPPORT: ::c_int = 1073741868; +pub const EOPNOTSUPP: ::c_int = 1073741869; +pub const EPFNOSUPPORT: ::c_int = 1073741870; +pub const EAFNOSUPPORT: ::c_int = 1073741871; +pub const EADDRINUSE: ::c_int = 1073741872; +pub const EADDRNOTAVAIL: ::c_int = 1073741873; +pub const ENETDOWN: ::c_int = 1073741874; +pub const ENETUNREACH: ::c_int = 1073741875; +pub const ENETRESET: ::c_int = 1073741876; +pub const ECONNABORTED: ::c_int = 1073741877; +pub const ECONNRESET: ::c_int = 1073741878; +pub const ENOBUFS: ::c_int = 1073741879; +pub const EISCONN: ::c_int = 1073741880; +pub const ENOTCONN: ::c_int = 1073741881; +pub const EDESTADDRREQ: ::c_int = 1073741863; +pub const ESHUTDOWN: ::c_int = 1073741882; +pub const ETOOMANYREFS: ::c_int = 1073741883; +pub const ETIMEDOUT: ::c_int = 1073741884; +pub const ECONNREFUSED: ::c_int = 1073741885; +pub const ELOOP: ::c_int = 1073741886; +pub const ENAMETOOLONG: ::c_int = 1073741887; +pub const EHOSTDOWN: ::c_int = 1073741888; +pub const EHOSTUNREACH: ::c_int = 1073741889; +pub const ENOTEMPTY: ::c_int = 1073741890; +pub const EPROCLIM: ::c_int = 1073741891; +pub const EUSERS: ::c_int = 1073741892; +pub const EDQUOT: ::c_int = 1073741893; +pub const ESTALE: ::c_int = 1073741894; +pub const EREMOTE: ::c_int = 1073741895; +pub const EBADRPC: ::c_int = 1073741896; +pub const ERPCMISMATCH: ::c_int = 1073741897; +pub const EPROGUNAVAIL: ::c_int = 1073741898; +pub const EPROGMISMATCH: ::c_int = 1073741899; +pub const EPROCUNAVAIL: ::c_int = 1073741900; +pub const ENOLCK: ::c_int = 1073741901; +pub const EFTYPE: ::c_int = 1073741903; +pub const EAUTH: ::c_int = 1073741904; +pub const ENEEDAUTH: ::c_int = 1073741905; +pub const ENOSYS: ::c_int = 1073741902; +pub const ELIBEXEC: ::c_int = 1073741907; +pub const ENOTSUP: ::c_int = 1073741942; +pub const EILSEQ: ::c_int = 1073741930; +pub const EBACKGROUND: ::c_int = 1073741924; +pub const EDIED: ::c_int = 1073741925; +pub const EGREGIOUS: ::c_int = 1073741927; +pub const EIEIO: ::c_int = 1073741928; +pub const EGRATUITOUS: ::c_int = 1073741929; +pub const EBADMSG: ::c_int = 1073741931; +pub const EIDRM: ::c_int = 1073741932; +pub const EMULTIHOP: ::c_int = 1073741933; +pub const ENODATA: ::c_int = 1073741934; +pub const ENOLINK: ::c_int = 1073741935; +pub const ENOMSG: ::c_int = 1073741936; +pub const ENOSR: ::c_int = 1073741937; +pub const ENOSTR: ::c_int = 1073741938; +pub const EOVERFLOW: ::c_int = 1073741939; +pub const EPROTO: ::c_int = 1073741940; +pub const ETIME: ::c_int = 1073741941; +pub const ECANCELED: ::c_int = 1073741943; +pub const EOWNERDEAD: ::c_int = 1073741944; +pub const ENOTRECOVERABLE: ::c_int = 1073741945; +pub const EMACH_SEND_IN_PROGRESS: ::c_int = 268435457; +pub const EMACH_SEND_INVALID_DATA: ::c_int = 268435458; +pub const EMACH_SEND_INVALID_DEST: ::c_int = 268435459; +pub const EMACH_SEND_TIMED_OUT: ::c_int = 268435460; +pub const EMACH_SEND_WILL_NOTIFY: ::c_int = 268435461; +pub const EMACH_SEND_NOTIFY_IN_PROGRESS: ::c_int = 268435462; +pub const EMACH_SEND_INTERRUPTED: ::c_int = 268435463; +pub const EMACH_SEND_MSG_TOO_SMALL: ::c_int = 268435464; +pub const EMACH_SEND_INVALID_REPLY: ::c_int = 268435465; +pub const EMACH_SEND_INVALID_RIGHT: ::c_int = 268435466; +pub const EMACH_SEND_INVALID_NOTIFY: ::c_int = 268435467; +pub const EMACH_SEND_INVALID_MEMORY: ::c_int = 268435468; +pub const EMACH_SEND_NO_BUFFER: ::c_int = 268435469; +pub const EMACH_SEND_NO_NOTIFY: ::c_int = 268435470; +pub const EMACH_SEND_INVALID_TYPE: ::c_int = 268435471; +pub const EMACH_SEND_INVALID_HEADER: ::c_int = 268435472; +pub const EMACH_RCV_IN_PROGRESS: ::c_int = 268451841; +pub const EMACH_RCV_INVALID_NAME: ::c_int = 268451842; +pub const EMACH_RCV_TIMED_OUT: ::c_int = 268451843; +pub const EMACH_RCV_TOO_LARGE: ::c_int = 268451844; +pub const EMACH_RCV_INTERRUPTED: ::c_int = 268451845; +pub const EMACH_RCV_PORT_CHANGED: ::c_int = 268451846; +pub const EMACH_RCV_INVALID_NOTIFY: ::c_int = 268451847; +pub const EMACH_RCV_INVALID_DATA: ::c_int = 268451848; +pub const EMACH_RCV_PORT_DIED: ::c_int = 268451849; +pub const EMACH_RCV_IN_SET: ::c_int = 268451850; +pub const EMACH_RCV_HEADER_ERROR: ::c_int = 268451851; +pub const EMACH_RCV_BODY_ERROR: ::c_int = 268451852; +pub const EKERN_INVALID_ADDRESS: ::c_int = 1; +pub const EKERN_PROTECTION_FAILURE: ::c_int = 2; +pub const EKERN_NO_SPACE: ::c_int = 3; +pub const EKERN_INVALID_ARGUMENT: ::c_int = 4; +pub const EKERN_FAILURE: ::c_int = 5; +pub const EKERN_RESOURCE_SHORTAGE: ::c_int = 6; +pub const EKERN_NOT_RECEIVER: ::c_int = 7; +pub const EKERN_NO_ACCESS: ::c_int = 8; +pub const EKERN_MEMORY_FAILURE: ::c_int = 9; +pub const EKERN_MEMORY_ERROR: ::c_int = 10; +pub const EKERN_NOT_IN_SET: ::c_int = 12; +pub const EKERN_NAME_EXISTS: ::c_int = 13; +pub const EKERN_ABORTED: ::c_int = 14; +pub const EKERN_INVALID_NAME: ::c_int = 15; +pub const EKERN_INVALID_TASK: ::c_int = 16; +pub const EKERN_INVALID_RIGHT: ::c_int = 17; +pub const EKERN_INVALID_VALUE: ::c_int = 18; +pub const EKERN_UREFS_OVERFLOW: ::c_int = 19; +pub const EKERN_INVALID_CAPABILITY: ::c_int = 20; +pub const EKERN_RIGHT_EXISTS: ::c_int = 21; +pub const EKERN_INVALID_HOST: ::c_int = 22; +pub const EKERN_MEMORY_PRESENT: ::c_int = 23; +pub const EKERN_WRITE_PROTECTION_FAILURE: ::c_int = 24; +pub const EKERN_TERMINATED: ::c_int = 26; +pub const EKERN_TIMEDOUT: ::c_int = 27; +pub const EKERN_INTERRUPTED: ::c_int = 28; +pub const EMIG_TYPE_ERROR: ::c_int = -300; +pub const EMIG_REPLY_MISMATCH: ::c_int = -301; +pub const EMIG_REMOTE_ERROR: ::c_int = -302; +pub const EMIG_BAD_ID: ::c_int = -303; +pub const EMIG_BAD_ARGUMENTS: ::c_int = -304; +pub const EMIG_NO_REPLY: ::c_int = -305; +pub const EMIG_EXCEPTION: ::c_int = -306; +pub const EMIG_ARRAY_TOO_LARGE: ::c_int = -307; +pub const EMIG_SERVER_DIED: ::c_int = -308; +pub const EMIG_DESTROY_REQUEST: ::c_int = -309; +pub const ED_IO_ERROR: ::c_int = 2500; +pub const ED_WOULD_BLOCK: ::c_int = 2501; +pub const ED_NO_SUCH_DEVICE: ::c_int = 2502; +pub const ED_ALREADY_OPEN: ::c_int = 2503; +pub const ED_DEVICE_DOWN: ::c_int = 2504; +pub const ED_INVALID_OPERATION: ::c_int = 2505; +pub const ED_INVALID_RECNUM: ::c_int = 2506; +pub const ED_INVALID_SIZE: ::c_int = 2507; +pub const ED_NO_MEMORY: ::c_int = 2508; +pub const ED_READ_ONLY: ::c_int = 2509; +pub const _HURD_ERRNOS: usize = 122; + +// sched.h +pub const SCHED_OTHER: ::c_int = 0; +pub const SCHED_FIFO: ::c_int = 1; +pub const SCHED_RR: ::c_int = 2; +pub const _BITS_TYPES_STRUCT_SCHED_PARAM: usize = 1; +pub const __CPU_SETSIZE: usize = 1024; +pub const CPU_SETSIZE: usize = 1024; + +// pthread.h +pub const PTHREAD_SPINLOCK_INITIALIZER: ::c_int = 0; +pub const PTHREAD_CANCEL_DISABLE: ::c_int = 0; +pub const PTHREAD_CANCEL_ENABLE: ::c_int = 1; +pub const PTHREAD_CANCEL_DEFERRED: ::c_int = 0; +pub const PTHREAD_CANCEL_ASYNCHRONOUS: ::c_int = 1; +pub const PTHREAD_BARRIER_SERIAL_THREAD: ::c_int = -1; + +// netinet/tcp.h +pub const TCP_NODELAY: ::c_int = 1; +pub const TCP_MAXSEG: ::c_int = 2; +pub const TCP_CORK: ::c_int = 3; +pub const TCP_KEEPIDLE: ::c_int = 4; +pub const TCP_KEEPINTVL: ::c_int = 5; +pub const TCP_KEEPCNT: ::c_int = 6; +pub const TCP_SYNCNT: ::c_int = 7; +pub const TCP_LINGER2: ::c_int = 8; +pub const TCP_DEFER_ACCEPT: ::c_int = 9; +pub const TCP_WINDOW_CLAMP: ::c_int = 10; +pub const TCP_INFO: ::c_int = 11; +pub const TCP_QUICKACK: ::c_int = 12; +pub const TCP_CONGESTION: ::c_int = 13; +pub const TCP_MD5SIG: ::c_int = 14; +pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15; +pub const TCP_THIN_LINEAR_TIMEOUTS: ::c_int = 16; +pub const TCP_THIN_DUPACK: ::c_int = 17; +pub const TCP_USER_TIMEOUT: ::c_int = 18; +pub const TCP_REPAIR: ::c_int = 19; +pub const TCP_REPAIR_QUEUE: ::c_int = 20; +pub const TCP_QUEUE_SEQ: ::c_int = 21; +pub const TCP_REPAIR_OPTIONS: ::c_int = 22; +pub const TCP_FASTOPEN: ::c_int = 23; +pub const TCP_TIMESTAMP: ::c_int = 24; +pub const TCP_NOTSENT_LOWAT: ::c_int = 25; +pub const TCP_CC_INFO: ::c_int = 26; +pub const TCP_SAVE_SYN: ::c_int = 27; +pub const TCP_SAVED_SYN: ::c_int = 28; +pub const TCP_REPAIR_WINDOW: ::c_int = 29; +pub const TCP_FASTOPEN_CONNECT: ::c_int = 30; +pub const TCP_ULP: ::c_int = 31; +pub const TCP_MD5SIG_EXT: ::c_int = 32; +pub const TCP_FASTOPEN_KEY: ::c_int = 33; +pub const TCP_FASTOPEN_NO_COOKIE: ::c_int = 34; +pub const TCP_ZEROCOPY_RECEIVE: ::c_int = 35; +pub const TCP_INQ: ::c_int = 36; +pub const TCP_CM_INQ: ::c_int = 36; +pub const TCP_TX_DELAY: ::c_int = 37; +pub const TCP_REPAIR_ON: ::c_int = 1; +pub const TCP_REPAIR_OFF: ::c_int = 0; +pub const TCP_REPAIR_OFF_NO_WP: ::c_int = -1; + +// stdint.h +pub const INT8_MIN: i8 = -128; +pub const INT16_MIN: i16 = -32768; +pub const INT32_MIN: i32 = -2147483648; +pub const INT8_MAX: i8 = 127; +pub const INT16_MAX: i16 = 32767; +pub const INT32_MAX: i32 = 2147483647; +pub const UINT8_MAX: u8 = 255; +pub const UINT16_MAX: u16 = 65535; +pub const UINT32_MAX: u32 = 4294967295; +pub const INT_LEAST8_MIN: int_least8_t = -128; +pub const INT_LEAST16_MIN: int_least16_t = -32768; +pub const INT_LEAST32_MIN: int_least32_t = -2147483648; +pub const INT_LEAST8_MAX: int_least8_t = 127; +pub const INT_LEAST16_MAX: int_least16_t = 32767; +pub const INT_LEAST32_MAX: int_least32_t = 2147483647; +pub const UINT_LEAST8_MAX: uint_least8_t = 255; +pub const UINT_LEAST16_MAX: uint_least16_t = 65535; +pub const UINT_LEAST32_MAX: uint_least32_t = 4294967295; +pub const INT_FAST8_MIN: int_fast8_t = -128; +pub const INT_FAST16_MIN: int_fast16_t = -2147483648; +pub const INT_FAST32_MIN: int_fast32_t = -2147483648; +pub const INT_FAST8_MAX: int_fast8_t = 127; +pub const INT_FAST16_MAX: int_fast16_t = 2147483647; +pub const INT_FAST32_MAX: int_fast32_t = 2147483647; +pub const UINT_FAST8_MAX: uint_fast8_t = 255; +pub const UINT_FAST16_MAX: uint_fast16_t = 4294967295; +pub const UINT_FAST32_MAX: uint_fast32_t = 4294967295; +pub const INTPTR_MIN: __intptr_t = -2147483648; +pub const INTPTR_MAX: __intptr_t = 2147483647; +pub const UINTPTR_MAX: usize = 4294967295; +pub const PTRDIFF_MIN: __ptrdiff_t = -2147483648; +pub const PTRDIFF_MAX: __ptrdiff_t = 2147483647; +pub const SIG_ATOMIC_MIN: __sig_atomic_t = -2147483648; +pub const SIG_ATOMIC_MAX: __sig_atomic_t = 2147483647; +pub const SIZE_MAX: usize = 4294967295; +pub const WINT_MIN: wint_t = 0; +pub const WINT_MAX: wint_t = 4294967295; +pub const INT8_WIDTH: usize = 8; +pub const UINT8_WIDTH: usize = 8; +pub const INT16_WIDTH: usize = 16; +pub const UINT16_WIDTH: usize = 16; +pub const INT32_WIDTH: usize = 32; +pub const UINT32_WIDTH: usize = 32; +pub const INT64_WIDTH: usize = 64; +pub const UINT64_WIDTH: usize = 64; +pub const INT_LEAST8_WIDTH: usize = 8; +pub const UINT_LEAST8_WIDTH: usize = 8; +pub const INT_LEAST16_WIDTH: usize = 16; +pub const UINT_LEAST16_WIDTH: usize = 16; +pub const INT_LEAST32_WIDTH: usize = 32; +pub const UINT_LEAST32_WIDTH: usize = 32; +pub const INT_LEAST64_WIDTH: usize = 64; +pub const UINT_LEAST64_WIDTH: usize = 64; +pub const INT_FAST8_WIDTH: usize = 8; +pub const UINT_FAST8_WIDTH: usize = 8; +pub const INT_FAST16_WIDTH: usize = 32; +pub const UINT_FAST16_WIDTH: usize = 32; +pub const INT_FAST32_WIDTH: usize = 32; +pub const UINT_FAST32_WIDTH: usize = 32; +pub const INT_FAST64_WIDTH: usize = 64; +pub const UINT_FAST64_WIDTH: usize = 64; +pub const INTPTR_WIDTH: usize = 32; +pub const UINTPTR_WIDTH: usize = 32; +pub const INTMAX_WIDTH: usize = 64; +pub const UINTMAX_WIDTH: usize = 64; +pub const PTRDIFF_WIDTH: usize = 32; +pub const SIG_ATOMIC_WIDTH: usize = 32; +pub const SIZE_WIDTH: usize = 32; +pub const WCHAR_WIDTH: usize = 32; +pub const WINT_WIDTH: usize = 32; + +pub const TH_FIN: u8 = 1; +pub const TH_SYN: u8 = 2; +pub const TH_RST: u8 = 4; +pub const TH_PUSH: u8 = 8; +pub const TH_ACK: u8 = 16; +pub const TH_URG: u8 = 32; +pub const TCPOPT_EOL: u8 = 0; +pub const TCPOPT_NOP: u8 = 1; +pub const TCPOPT_MAXSEG: u8 = 2; +pub const TCPOLEN_MAXSEG: u8 = 4; +pub const TCPOPT_WINDOW: u8 = 3; +pub const TCPOLEN_WINDOW: u8 = 3; +pub const TCPOPT_SACK_PERMITTED: u8 = 4; +pub const TCPOLEN_SACK_PERMITTED: u8 = 2; +pub const TCPOPT_SACK: u8 = 5; +pub const TCPOPT_TIMESTAMP: u8 = 8; +pub const TCPOLEN_TIMESTAMP: u8 = 10; +pub const TCPOLEN_TSTAMP_APPA: u8 = 12; +pub const TCPOPT_TSTAMP_HDR: u32 = 16844810; +pub const TCP_MSS: usize = 512; +pub const TCP_MAXWIN: usize = 65535; +pub const TCP_MAX_WINSHIFT: usize = 14; +pub const TCPI_OPT_TIMESTAMPS: u8 = 1; +pub const TCPI_OPT_SACK: u8 = 2; +pub const TCPI_OPT_WSCALE: u8 = 4; +pub const TCPI_OPT_ECN: u8 = 8; +pub const TCPI_OPT_ECN_SEEN: u8 = 16; +pub const TCPI_OPT_SYN_DATA: u8 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: usize = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: usize = 1; +pub const TCP_COOKIE_MIN: usize = 8; +pub const TCP_COOKIE_MAX: usize = 16; +pub const TCP_COOKIE_PAIR_SIZE: usize = 32; +pub const TCP_COOKIE_IN_ALWAYS: ::c_int = 1; +pub const TCP_COOKIE_OUT_NEVER: ::c_int = 2; +pub const TCP_S_DATA_IN: ::c_int = 4; +pub const TCP_S_DATA_OUT: ::c_int = 8; +pub const TCP_MSS_DEFAULT: usize = 536; +pub const TCP_MSS_DESIRED: usize = 1220; + +// sys/wait.h +pub const WCOREFLAG: ::c_int = 128; +pub const WAIT_ANY: pid_t = -1; +pub const WAIT_MYPGRP: pid_t = 0; + +// sys/file.h +pub const LOCK_SH: ::c_int = 1; +pub const LOCK_EX: ::c_int = 2; +pub const LOCK_UN: ::c_int = 8; +pub const LOCK_NB: ::c_int = 4; + +// sys/mman.h +pub const PROT_NONE: ::c_int = 0; +pub const PROT_READ: ::c_int = 4; +pub const PROT_WRITE: ::c_int = 2; +pub const PROT_EXEC: ::c_int = 1; +pub const MAP_FILE: ::c_int = 1; +pub const MAP_ANON: ::c_int = 2; +pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; +pub const MAP_TYPE: ::c_int = 15; +pub const MAP_COPY: ::c_int = 32; +pub const MAP_SHARED: ::c_int = 16; +pub const MAP_PRIVATE: ::c_int = 0; +pub const MAP_FIXED: ::c_int = 256; +pub const MAP_NOEXTEND: ::c_int = 512; +pub const MAP_HASSEMPHORE: ::c_int = 1024; +pub const MAP_INHERIT: ::c_int = 2048; +pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; +pub const MADV_NORMAL: ::c_int = 0; +pub const MADV_RANDOM: ::c_int = 1; +pub const MADV_SEQUENTIAL: ::c_int = 2; +pub const MADV_WILLNEED: ::c_int = 3; +pub const MADV_DONTNEED: ::c_int = 4; +pub const POSIX_MADV_NORMAL: ::c_int = 0; +pub const POSIX_MADV_RANDOM: ::c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_MADV_WILLNEED: ::c_int = 3; +pub const POSIX_MADV_WONTNEED: ::c_int = 4; + +pub const MS_ASYNC: ::c_int = 1; +pub const MS_SYNC: ::c_int = 0; +pub const MS_INVALIDATE: ::c_int = 2; +pub const MREMAP_MAYMOVE: ::c_int = 1; +pub const MREMAP_FIXED: ::c_int = 2; +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +// spawn.h +pub const POSIX_SPAWN_USEVFORK: ::c_int = 64; +pub const POSIX_SPAWN_SETSID: ::c_int = 128; + +// sys/syslog.h +pub const LOG_CRON: ::c_int = 9 << 3; +pub const LOG_AUTHPRIV: ::c_int = 10 << 3; +pub const LOG_FTP: ::c_int = 11 << 3; +pub const LOG_PERROR: ::c_int = 0x20; + +// net/if.h +pub const IFF_UP: ::c_int = 0x1; +pub const IFF_BROADCAST: ::c_int = 0x2; +pub const IFF_DEBUG: ::c_int = 0x4; +pub const IFF_LOOPBACK: ::c_int = 0x8; +pub const IFF_POINTOPOINT: ::c_int = 0x10; +pub const IFF_NOTRAILERS: ::c_int = 0x20; +pub const IFF_RUNNING: ::c_int = 0x40; +pub const IFF_NOARP: ::c_int = 0x80; +pub const IFF_PROMISC: ::c_int = 0x100; +pub const IFF_ALLMULTI: ::c_int = 0x200; +pub const IFF_MASTER: ::c_int = 0x400; +pub const IFF_SLAVE: ::c_int = 0x800; +pub const IFF_MULTICAST: ::c_int = 0x1000; +pub const IFF_PORTSEL: ::c_int = 0x2000; +pub const IFF_AUTOMEDIA: ::c_int = 0x4000; +pub const IFF_DYNAMIC: ::c_int = 0x8000; + +// random.h +pub const GRND_NONBLOCK: ::c_uint = 1; +pub const GRND_RANDOM: ::c_uint = 2; +pub const GRND_INSECURE: ::c_uint = 4; + +pub const _PC_LINK_MAX: ::c_int = 0; +pub const _PC_MAX_CANON: ::c_int = 1; +pub const _PC_MAX_INPUT: ::c_int = 2; +pub const _PC_NAME_MAX: ::c_int = 3; +pub const _PC_PATH_MAX: ::c_int = 4; +pub const _PC_PIPE_BUF: ::c_int = 5; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; +pub const _PC_NO_TRUNC: ::c_int = 7; +pub const _PC_VDISABLE: ::c_int = 8; +pub const _PC_SYNC_IO: ::c_int = 9; +pub const _PC_ASYNC_IO: ::c_int = 10; +pub const _PC_PRIO_IO: ::c_int = 11; +pub const _PC_SOCK_MAXBUF: ::c_int = 12; +pub const _PC_FILESIZEBITS: ::c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; +pub const _PC_REC_XFER_ALIGN: ::c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; +pub const _PC_SYMLINK_MAX: ::c_int = 19; +pub const _PC_2_SYMLINKS: ::c_int = 20; +pub const _SC_ARG_MAX: ::c_int = 0; +pub const _SC_CHILD_MAX: ::c_int = 1; +pub const _SC_CLK_TCK: ::c_int = 2; +pub const _SC_NGROUPS_MAX: ::c_int = 3; +pub const _SC_OPEN_MAX: ::c_int = 4; +pub const _SC_STREAM_MAX: ::c_int = 5; +pub const _SC_TZNAME_MAX: ::c_int = 6; +pub const _SC_JOB_CONTROL: ::c_int = 7; +pub const _SC_SAVED_IDS: ::c_int = 8; +pub const _SC_REALTIME_SIGNALS: ::c_int = 9; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 10; +pub const _SC_TIMERS: ::c_int = 11; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 12; +pub const _SC_PRIORITIZED_IO: ::c_int = 13; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 14; +pub const _SC_FSYNC: ::c_int = 15; +pub const _SC_MAPPED_FILES: ::c_int = 16; +pub const _SC_MEMLOCK: ::c_int = 17; +pub const _SC_MEMLOCK_RANGE: ::c_int = 18; +pub const _SC_MEMORY_PROTECTION: ::c_int = 19; +pub const _SC_MESSAGE_PASSING: ::c_int = 20; +pub const _SC_SEMAPHORES: ::c_int = 21; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 22; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 23; +pub const _SC_AIO_MAX: ::c_int = 24; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 25; +pub const _SC_DELAYTIMER_MAX: ::c_int = 26; +pub const _SC_MQ_OPEN_MAX: ::c_int = 27; +pub const _SC_MQ_PRIO_MAX: ::c_int = 28; +pub const _SC_VERSION: ::c_int = 29; +pub const _SC_PAGESIZE: ::c_int = 30; +pub const _SC_PAGE_SIZE: ::c_int = 30; +pub const _SC_RTSIG_MAX: ::c_int = 31; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 32; +pub const _SC_SEM_VALUE_MAX: ::c_int = 33; +pub const _SC_SIGQUEUE_MAX: ::c_int = 34; +pub const _SC_TIMER_MAX: ::c_int = 35; +pub const _SC_BC_BASE_MAX: ::c_int = 36; +pub const _SC_BC_DIM_MAX: ::c_int = 37; +pub const _SC_BC_SCALE_MAX: ::c_int = 38; +pub const _SC_BC_STRING_MAX: ::c_int = 39; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 40; +pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41; +pub const _SC_EXPR_NEST_MAX: ::c_int = 42; +pub const _SC_LINE_MAX: ::c_int = 43; +pub const _SC_RE_DUP_MAX: ::c_int = 44; +pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45; +pub const _SC_2_VERSION: ::c_int = 46; +pub const _SC_2_C_BIND: ::c_int = 47; +pub const _SC_2_C_DEV: ::c_int = 48; +pub const _SC_2_FORT_DEV: ::c_int = 49; +pub const _SC_2_FORT_RUN: ::c_int = 50; +pub const _SC_2_SW_DEV: ::c_int = 51; +pub const _SC_2_LOCALEDEF: ::c_int = 52; +pub const _SC_PII: ::c_int = 53; +pub const _SC_PII_XTI: ::c_int = 54; +pub const _SC_PII_SOCKET: ::c_int = 55; +pub const _SC_PII_INTERNET: ::c_int = 56; +pub const _SC_PII_OSI: ::c_int = 57; +pub const _SC_POLL: ::c_int = 58; +pub const _SC_SELECT: ::c_int = 59; +pub const _SC_UIO_MAXIOV: ::c_int = 60; +pub const _SC_IOV_MAX: ::c_int = 60; +pub const _SC_PII_INTERNET_STREAM: ::c_int = 61; +pub const _SC_PII_INTERNET_DGRAM: ::c_int = 62; +pub const _SC_PII_OSI_COTS: ::c_int = 63; +pub const _SC_PII_OSI_CLTS: ::c_int = 64; +pub const _SC_PII_OSI_M: ::c_int = 65; +pub const _SC_T_IOV_MAX: ::c_int = 66; +pub const _SC_THREADS: ::c_int = 67; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 68; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 69; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 70; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; +pub const _SC_TTY_NAME_MAX: ::c_int = 72; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 73; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 74; +pub const _SC_THREAD_STACK_MIN: ::c_int = 75; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 82; +pub const _SC_NPROCESSORS_CONF: ::c_int = 83; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 84; +pub const _SC_PHYS_PAGES: ::c_int = 85; +pub const _SC_AVPHYS_PAGES: ::c_int = 86; +pub const _SC_ATEXIT_MAX: ::c_int = 87; +pub const _SC_PASS_MAX: ::c_int = 88; +pub const _SC_XOPEN_VERSION: ::c_int = 89; +pub const _SC_XOPEN_XCU_VERSION: ::c_int = 90; +pub const _SC_XOPEN_UNIX: ::c_int = 91; +pub const _SC_XOPEN_CRYPT: ::c_int = 92; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 93; +pub const _SC_XOPEN_SHM: ::c_int = 94; +pub const _SC_2_CHAR_TERM: ::c_int = 95; +pub const _SC_2_C_VERSION: ::c_int = 96; +pub const _SC_2_UPE: ::c_int = 97; +pub const _SC_XOPEN_XPG2: ::c_int = 98; +pub const _SC_XOPEN_XPG3: ::c_int = 99; +pub const _SC_XOPEN_XPG4: ::c_int = 100; +pub const _SC_CHAR_BIT: ::c_int = 101; +pub const _SC_CHAR_MAX: ::c_int = 102; +pub const _SC_CHAR_MIN: ::c_int = 103; +pub const _SC_INT_MAX: ::c_int = 104; +pub const _SC_INT_MIN: ::c_int = 105; +pub const _SC_LONG_BIT: ::c_int = 106; +pub const _SC_WORD_BIT: ::c_int = 107; +pub const _SC_MB_LEN_MAX: ::c_int = 108; +pub const _SC_NZERO: ::c_int = 109; +pub const _SC_SSIZE_MAX: ::c_int = 110; +pub const _SC_SCHAR_MAX: ::c_int = 111; +pub const _SC_SCHAR_MIN: ::c_int = 112; +pub const _SC_SHRT_MAX: ::c_int = 113; +pub const _SC_SHRT_MIN: ::c_int = 114; +pub const _SC_UCHAR_MAX: ::c_int = 115; +pub const _SC_UINT_MAX: ::c_int = 116; +pub const _SC_ULONG_MAX: ::c_int = 117; +pub const _SC_USHRT_MAX: ::c_int = 118; +pub const _SC_NL_ARGMAX: ::c_int = 119; +pub const _SC_NL_LANGMAX: ::c_int = 120; +pub const _SC_NL_MSGMAX: ::c_int = 121; +pub const _SC_NL_NMAX: ::c_int = 122; +pub const _SC_NL_SETMAX: ::c_int = 123; +pub const _SC_NL_TEXTMAX: ::c_int = 124; +pub const _SC_XBS5_ILP32_OFF32: ::c_int = 125; +pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 126; +pub const _SC_XBS5_LP64_OFF64: ::c_int = 127; +pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 128; +pub const _SC_XOPEN_LEGACY: ::c_int = 129; +pub const _SC_XOPEN_REALTIME: ::c_int = 130; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 131; +pub const _SC_ADVISORY_INFO: ::c_int = 132; +pub const _SC_BARRIERS: ::c_int = 133; +pub const _SC_BASE: ::c_int = 134; +pub const _SC_C_LANG_SUPPORT: ::c_int = 135; +pub const _SC_C_LANG_SUPPORT_R: ::c_int = 136; +pub const _SC_CLOCK_SELECTION: ::c_int = 137; +pub const _SC_CPUTIME: ::c_int = 138; +pub const _SC_THREAD_CPUTIME: ::c_int = 139; +pub const _SC_DEVICE_IO: ::c_int = 140; +pub const _SC_DEVICE_SPECIFIC: ::c_int = 141; +pub const _SC_DEVICE_SPECIFIC_R: ::c_int = 142; +pub const _SC_FD_MGMT: ::c_int = 143; +pub const _SC_FIFO: ::c_int = 144; +pub const _SC_PIPE: ::c_int = 145; +pub const _SC_FILE_ATTRIBUTES: ::c_int = 146; +pub const _SC_FILE_LOCKING: ::c_int = 147; +pub const _SC_FILE_SYSTEM: ::c_int = 148; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 149; +pub const _SC_MULTI_PROCESS: ::c_int = 150; +pub const _SC_SINGLE_PROCESS: ::c_int = 151; +pub const _SC_NETWORKING: ::c_int = 152; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 153; +pub const _SC_SPIN_LOCKS: ::c_int = 154; +pub const _SC_REGEXP: ::c_int = 155; +pub const _SC_REGEX_VERSION: ::c_int = 156; +pub const _SC_SHELL: ::c_int = 157; +pub const _SC_SIGNALS: ::c_int = 158; +pub const _SC_SPAWN: ::c_int = 159; +pub const _SC_SPORADIC_SERVER: ::c_int = 160; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 161; +pub const _SC_SYSTEM_DATABASE: ::c_int = 162; +pub const _SC_SYSTEM_DATABASE_R: ::c_int = 163; +pub const _SC_TIMEOUTS: ::c_int = 164; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 165; +pub const _SC_USER_GROUPS: ::c_int = 166; +pub const _SC_USER_GROUPS_R: ::c_int = 167; +pub const _SC_2_PBS: ::c_int = 168; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 169; +pub const _SC_2_PBS_LOCATE: ::c_int = 170; +pub const _SC_2_PBS_MESSAGE: ::c_int = 171; +pub const _SC_2_PBS_TRACK: ::c_int = 172; +pub const _SC_SYMLOOP_MAX: ::c_int = 173; +pub const _SC_STREAMS: ::c_int = 174; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 175; +pub const _SC_V6_ILP32_OFF32: ::c_int = 176; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 177; +pub const _SC_V6_LP64_OFF64: ::c_int = 178; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 179; +pub const _SC_HOST_NAME_MAX: ::c_int = 180; +pub const _SC_TRACE: ::c_int = 181; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 182; +pub const _SC_TRACE_INHERIT: ::c_int = 183; +pub const _SC_TRACE_LOG: ::c_int = 184; +pub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 185; +pub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 186; +pub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 187; +pub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 188; +pub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 189; +pub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 190; +pub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 191; +pub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 192; +pub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 193; +pub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 194; +pub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 195; +pub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 196; +pub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 197; +pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 198; +pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 199; +pub const _SC_IPV6: ::c_int = 235; +pub const _SC_RAW_SOCKETS: ::c_int = 236; +pub const _SC_V7_ILP32_OFF32: ::c_int = 237; +pub const _SC_V7_ILP32_OFFBIG: ::c_int = 238; +pub const _SC_V7_LP64_OFF64: ::c_int = 239; +pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 240; +pub const _SC_SS_REPL_MAX: ::c_int = 241; +pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 242; +pub const _SC_TRACE_NAME_MAX: ::c_int = 243; +pub const _SC_TRACE_SYS_MAX: ::c_int = 244; +pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 245; +pub const _SC_XOPEN_STREAMS: ::c_int = 246; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248; +pub const _SC_MINSIGSTKSZ: ::c_int = 249; +pub const _SC_SIGSTKSZ: ::c_int = 250; + +pub const _CS_PATH: ::c_int = 0; +pub const _CS_V6_WIDTH_RESTRICTED_ENVS: ::c_int = 1; +pub const _CS_GNU_LIBC_VERSION: ::c_int = 2; +pub const _CS_GNU_LIBPTHREAD_VERSION: ::c_int = 3; +pub const _CS_V5_WIDTH_RESTRICTED_ENVS: ::c_int = 4; +pub const _CS_V7_WIDTH_RESTRICTED_ENVS: ::c_int = 5; +pub const _CS_LFS_CFLAGS: ::c_int = 1000; +pub const _CS_LFS_LDFLAGS: ::c_int = 1001; +pub const _CS_LFS_LIBS: ::c_int = 1002; +pub const _CS_LFS_LINTFLAGS: ::c_int = 1003; +pub const _CS_LFS64_CFLAGS: ::c_int = 1004; +pub const _CS_LFS64_LDFLAGS: ::c_int = 1005; +pub const _CS_LFS64_LIBS: ::c_int = 1006; +pub const _CS_LFS64_LINTFLAGS: ::c_int = 1007; +pub const _CS_XBS5_ILP32_OFF32_CFLAGS: ::c_int = 1100; +pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: ::c_int = 1101; +pub const _CS_XBS5_ILP32_OFF32_LIBS: ::c_int = 1102; +pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: ::c_int = 1103; +pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: ::c_int = 1104; +pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: ::c_int = 1105; +pub const _CS_XBS5_ILP32_OFFBIG_LIBS: ::c_int = 1106; +pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: ::c_int = 1107; +pub const _CS_XBS5_LP64_OFF64_CFLAGS: ::c_int = 1108; +pub const _CS_XBS5_LP64_OFF64_LDFLAGS: ::c_int = 1109; +pub const _CS_XBS5_LP64_OFF64_LIBS: ::c_int = 1110; +pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: ::c_int = 1111; +pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: ::c_int = 1112; +pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: ::c_int = 1113; +pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: ::c_int = 1114; +pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: ::c_int = 1115; +pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: ::c_int = 1116; +pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: ::c_int = 1117; +pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: ::c_int = 1118; +pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: ::c_int = 1119; +pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: ::c_int = 1120; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: ::c_int = 1121; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: ::c_int = 1122; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: ::c_int = 1123; +pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: ::c_int = 1124; +pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: ::c_int = 1125; +pub const _CS_POSIX_V6_LP64_OFF64_LIBS: ::c_int = 1126; +pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: ::c_int = 1127; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: ::c_int = 1128; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: ::c_int = 1129; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: ::c_int = 1130; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: ::c_int = 1131; +pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: ::c_int = 1132; +pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: ::c_int = 1133; +pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: ::c_int = 1134; +pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: ::c_int = 1135; +pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: ::c_int = 1136; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: ::c_int = 1137; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: ::c_int = 1138; +pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: ::c_int = 1139; +pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: ::c_int = 1140; +pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: ::c_int = 1141; +pub const _CS_POSIX_V7_LP64_OFF64_LIBS: ::c_int = 1142; +pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: ::c_int = 1143; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: ::c_int = 1144; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: ::c_int = 1145; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: ::c_int = 1146; +pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: ::c_int = 1147; +pub const _CS_V6_ENV: ::c_int = 1148; +pub const _CS_V7_ENV: ::c_int = 1149; + +pub const PTHREAD_PROCESS_PRIVATE: __pthread_process_shared = 0; +pub const PTHREAD_PROCESS_SHARED: __pthread_process_shared = 1; + +pub const PTHREAD_EXPLICIT_SCHED: __pthread_inheritsched = 0; +pub const PTHREAD_INHERIT_SCHED: __pthread_inheritsched = 1; + +pub const PTHREAD_SCOPE_SYSTEM: __pthread_contentionscope = 0; +pub const PTHREAD_SCOPE_PROCESS: __pthread_contentionscope = 1; + +pub const PTHREAD_CREATE_JOINABLE: __pthread_detachstate = 0; +pub const PTHREAD_CREATE_DETACHED: __pthread_detachstate = 1; + +pub const PTHREAD_PRIO_NONE: __pthread_mutex_protocol = 0; +pub const PTHREAD_PRIO_INHERIT: __pthread_mutex_protocol = 1; +pub const PTHREAD_PRIO_PROTECT: __pthread_mutex_protocol = 2; + +pub const PTHREAD_MUTEX_TIMED: __pthread_mutex_type = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: __pthread_mutex_type = 1; +pub const PTHREAD_MUTEX_RECURSIVE: __pthread_mutex_type = 2; + +pub const PTHREAD_MUTEX_STALLED: __pthread_mutex_robustness = 0; +pub const PTHREAD_MUTEX_ROBUST: __pthread_mutex_robustness = 256; + +pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; +pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; +pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; +pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; +pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; +pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 6; +pub const RLIMIT_NPROC: ::__rlimit_resource_t = 7; +pub const RLIMIT_OFILE: ::__rlimit_resource_t = 8; +pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 8; +pub const RLIMIT_SBSIZE: ::__rlimit_resource_t = 9; +pub const RLIMIT_AS: ::__rlimit_resource_t = 10; +pub const RLIMIT_VMEM: ::__rlimit_resource_t = 10; +pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = 11; +pub const RLIM_NLIMITS: ::__rlimit_resource_t = 11; + +pub const RUSAGE_SELF: __rusage_who = 0; +pub const RUSAGE_CHILDREN: __rusage_who = -1; + +pub const PRIO_PROCESS: __priority_which = 0; +pub const PRIO_PGRP: __priority_which = 1; +pub const PRIO_USER: __priority_which = 2; + +pub const __UT_LINESIZE: usize = 32; +pub const __UT_NAMESIZE: usize = 32; +pub const __UT_HOSTSIZE: usize = 256; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_RAW: ::c_int = 3; +pub const SOCK_RDM: ::c_int = 4; +pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOCK_CLOEXEC: ::c_int = 4194304; +pub const SOCK_NONBLOCK: ::c_int = 2048; + +pub const MSG_OOB: ::c_int = 1; +pub const MSG_PEEK: ::c_int = 2; +pub const MSG_DONTROUTE: ::c_int = 4; +pub const MSG_EOR: ::c_int = 8; +pub const MSG_TRUNC: ::c_int = 16; +pub const MSG_CTRUNC: ::c_int = 32; +pub const MSG_WAITALL: ::c_int = 64; +pub const MSG_DONTWAIT: ::c_int = 128; +pub const MSG_NOSIGNAL: ::c_int = 1024; +pub const MSG_CMSG_CLOEXEC: ::c_int = 0x40000000; + +pub const SCM_RIGHTS: ::c_int = 1; +pub const SCM_TIMESTAMP: ::c_int = 2; +pub const SCM_CREDS: ::c_int = 3; + +pub const SO_DEBUG: ::c_int = 1; +pub const SO_ACCEPTCONN: ::c_int = 2; +pub const SO_REUSEADDR: ::c_int = 4; +pub const SO_KEEPALIVE: ::c_int = 8; +pub const SO_DONTROUTE: ::c_int = 16; +pub const SO_BROADCAST: ::c_int = 32; +pub const SO_USELOOPBACK: ::c_int = 64; +pub const SO_LINGER: ::c_int = 128; +pub const SO_OOBINLINE: ::c_int = 256; +pub const SO_REUSEPORT: ::c_int = 512; +pub const SO_SNDBUF: ::c_int = 4097; +pub const SO_RCVBUF: ::c_int = 4098; +pub const SO_SNDLOWAT: ::c_int = 4099; +pub const SO_RCVLOWAT: ::c_int = 4100; +pub const SO_SNDTIMEO: ::c_int = 4101; +pub const SO_RCVTIMEO: ::c_int = 4102; +pub const SO_ERROR: ::c_int = 4103; +pub const SO_STYLE: ::c_int = 4104; +pub const SO_TYPE: ::c_int = 4104; + +pub const IPPROTO_IP: ::c_int = 0; +pub const IPPROTO_ICMP: ::c_int = 1; +pub const IPPROTO_IGMP: ::c_int = 2; +pub const IPPROTO_IPIP: ::c_int = 4; +pub const IPPROTO_TCP: ::c_int = 6; +pub const IPPROTO_EGP: ::c_int = 8; +pub const IPPROTO_PUP: ::c_int = 12; +pub const IPPROTO_UDP: ::c_int = 17; +pub const IPPROTO_IDP: ::c_int = 22; +pub const IPPROTO_TP: ::c_int = 29; +pub const IPPROTO_DCCP: ::c_int = 33; +pub const IPPROTO_IPV6: ::c_int = 41; +pub const IPPROTO_RSVP: ::c_int = 46; +pub const IPPROTO_GRE: ::c_int = 47; +pub const IPPROTO_ESP: ::c_int = 50; +pub const IPPROTO_AH: ::c_int = 51; +pub const IPPROTO_MTP: ::c_int = 92; +pub const IPPROTO_BEETPH: ::c_int = 94; +pub const IPPROTO_ENCAP: ::c_int = 98; +pub const IPPROTO_PIM: ::c_int = 103; +pub const IPPROTO_COMP: ::c_int = 108; +pub const IPPROTO_L2TP: ::c_int = 115; +pub const IPPROTO_SCTP: ::c_int = 132; +pub const IPPROTO_UDPLITE: ::c_int = 136; +pub const IPPROTO_MPLS: ::c_int = 137; +pub const IPPROTO_ETHERNET: ::c_int = 143; +pub const IPPROTO_RAW: ::c_int = 255; +pub const IPPROTO_MPTCP: ::c_int = 262; +pub const IPPROTO_MAX: ::c_int = 263; + +pub const IPPROTO_HOPOPTS: ::c_int = 0; +pub const IPPROTO_ROUTING: ::c_int = 43; +pub const IPPROTO_FRAGMENT: ::c_int = 44; +pub const IPPROTO_ICMPV6: ::c_int = 58; +pub const IPPROTO_NONE: ::c_int = 59; +pub const IPPROTO_DSTOPTS: ::c_int = 60; +pub const IPPROTO_MH: ::c_int = 135; + +pub const IPPORT_ECHO: in_port_t = 7; +pub const IPPORT_DISCARD: in_port_t = 9; +pub const IPPORT_SYSTAT: in_port_t = 11; +pub const IPPORT_DAYTIME: in_port_t = 13; +pub const IPPORT_NETSTAT: in_port_t = 15; +pub const IPPORT_FTP: in_port_t = 21; +pub const IPPORT_TELNET: in_port_t = 23; +pub const IPPORT_SMTP: in_port_t = 25; +pub const IPPORT_TIMESERVER: in_port_t = 37; +pub const IPPORT_NAMESERVER: in_port_t = 42; +pub const IPPORT_WHOIS: in_port_t = 43; +pub const IPPORT_MTP: in_port_t = 57; +pub const IPPORT_TFTP: in_port_t = 69; +pub const IPPORT_RJE: in_port_t = 77; +pub const IPPORT_FINGER: in_port_t = 79; +pub const IPPORT_TTYLINK: in_port_t = 87; +pub const IPPORT_SUPDUP: in_port_t = 95; +pub const IPPORT_EXECSERVER: in_port_t = 512; +pub const IPPORT_LOGINSERVER: in_port_t = 513; +pub const IPPORT_CMDSERVER: in_port_t = 514; +pub const IPPORT_EFSSERVER: in_port_t = 520; +pub const IPPORT_BIFFUDP: in_port_t = 512; +pub const IPPORT_WHOSERVER: in_port_t = 513; +pub const IPPORT_ROUTESERVER: in_port_t = 520; +pub const IPPORT_USERRESERVED: in_port_t = 5000; + +pub const DT_UNKNOWN: ::c_uchar = 0; +pub const DT_FIFO: ::c_uchar = 1; +pub const DT_CHR: ::c_uchar = 2; +pub const DT_DIR: ::c_uchar = 4; +pub const DT_BLK: ::c_uchar = 6; +pub const DT_REG: ::c_uchar = 8; +pub const DT_LNK: ::c_uchar = 10; +pub const DT_SOCK: ::c_uchar = 12; +pub const DT_WHT: ::c_uchar = 14; + +pub const ST_RDONLY: ::c_ulong = 1; +pub const ST_NOSUID: ::c_ulong = 2; +pub const ST_NOEXEC: ::c_ulong = 8; +pub const ST_SYNCHRONOUS: ::c_ulong = 16; +pub const ST_NOATIME: ::c_ulong = 32; +pub const ST_RELATIME: ::c_ulong = 64; + +pub const RTLD_DI_LMID: ::c_int = 1; +pub const RTLD_DI_LINKMAP: ::c_int = 2; +pub const RTLD_DI_CONFIGADDR: ::c_int = 3; +pub const RTLD_DI_SERINFO: ::c_int = 4; +pub const RTLD_DI_SERINFOSIZE: ::c_int = 5; +pub const RTLD_DI_ORIGIN: ::c_int = 6; +pub const RTLD_DI_PROFILENAME: ::c_int = 7; +pub const RTLD_DI_PROFILEOUT: ::c_int = 8; +pub const RTLD_DI_TLS_MODID: ::c_int = 9; +pub const RTLD_DI_TLS_DATA: ::c_int = 10; +pub const RTLD_DI_PHDR: ::c_int = 11; +pub const RTLD_DI_MAX: ::c_int = 11; + +pub const SI_ASYNCIO: ::c_int = -4; +pub const SI_MESGQ: ::c_int = -3; +pub const SI_TIMER: ::c_int = -2; +pub const SI_QUEUE: ::c_int = -1; +pub const SI_USER: ::c_int = 0; + +pub const ILL_ILLOPC: ::c_int = 1; +pub const ILL_ILLOPN: ::c_int = 2; +pub const ILL_ILLADR: ::c_int = 3; +pub const ILL_ILLTRP: ::c_int = 4; +pub const ILL_PRVOPC: ::c_int = 5; +pub const ILL_PRVREG: ::c_int = 6; +pub const ILL_COPROC: ::c_int = 7; +pub const ILL_BADSTK: ::c_int = 8; + +pub const FPE_INTDIV: ::c_int = 1; +pub const FPE_INTOVF: ::c_int = 2; +pub const FPE_FLTDIV: ::c_int = 3; +pub const FPE_FLTOVF: ::c_int = 4; +pub const FPE_FLTUND: ::c_int = 5; +pub const FPE_FLTRES: ::c_int = 6; +pub const FPE_FLTINV: ::c_int = 7; +pub const FPE_FLTSUB: ::c_int = 8; + +pub const SEGV_MAPERR: ::c_int = 1; +pub const SEGV_ACCERR: ::c_int = 2; + +pub const BUS_ADRALN: ::c_int = 1; +pub const BUS_ADRERR: ::c_int = 2; +pub const BUS_OBJERR: ::c_int = 3; + +pub const TRAP_BRKPT: ::c_int = 1; +pub const TRAP_TRACE: ::c_int = 2; + +pub const CLD_EXITED: ::c_int = 1; +pub const CLD_KILLED: ::c_int = 2; +pub const CLD_DUMPED: ::c_int = 3; +pub const CLD_TRAPPED: ::c_int = 4; +pub const CLD_STOPPED: ::c_int = 5; +pub const CLD_CONTINUED: ::c_int = 6; + +pub const POLL_IN: ::c_int = 1; +pub const POLL_OUT: ::c_int = 2; +pub const POLL_MSG: ::c_int = 3; +pub const POLL_ERR: ::c_int = 4; +pub const POLL_PRI: ::c_int = 5; +pub const POLL_HUP: ::c_int = 6; + +pub const SIGEV_SIGNAL: ::c_int = 0; +pub const SIGEV_NONE: ::c_int = 1; +pub const SIGEV_THREAD: ::c_int = 2; + +pub const REG_GS: ::c_uint = 0; +pub const REG_FS: ::c_uint = 1; +pub const REG_ES: ::c_uint = 2; +pub const REG_DS: ::c_uint = 3; +pub const REG_EDI: ::c_uint = 4; +pub const REG_ESI: ::c_uint = 5; +pub const REG_EBP: ::c_uint = 6; +pub const REG_ESP: ::c_uint = 7; +pub const REG_EBX: ::c_uint = 8; +pub const REG_EDX: ::c_uint = 9; +pub const REG_ECX: ::c_uint = 10; +pub const REG_EAX: ::c_uint = 11; +pub const REG_TRAPNO: ::c_uint = 12; +pub const REG_ERR: ::c_uint = 13; +pub const REG_EIP: ::c_uint = 14; +pub const REG_CS: ::c_uint = 15; +pub const REG_EFL: ::c_uint = 16; +pub const REG_UESP: ::c_uint = 17; +pub const REG_SS: ::c_uint = 18; + +pub const IOC_VOID: __ioctl_dir = 0; +pub const IOC_OUT: __ioctl_dir = 1; +pub const IOC_IN: __ioctl_dir = 2; +pub const IOC_INOUT: __ioctl_dir = 3; + +pub const IOC_8: __ioctl_datum = 0; +pub const IOC_16: __ioctl_datum = 1; +pub const IOC_32: __ioctl_datum = 2; +pub const IOC_64: __ioctl_datum = 3; + +pub const TCP_ESTABLISHED: ::c_uint = 1; +pub const TCP_SYN_SENT: ::c_uint = 2; +pub const TCP_SYN_RECV: ::c_uint = 3; +pub const TCP_FIN_WAIT1: ::c_uint = 4; +pub const TCP_FIN_WAIT2: ::c_uint = 5; +pub const TCP_TIME_WAIT: ::c_uint = 6; +pub const TCP_CLOSE: ::c_uint = 7; +pub const TCP_CLOSE_WAIT: ::c_uint = 8; +pub const TCP_LAST_ACK: ::c_uint = 9; +pub const TCP_LISTEN: ::c_uint = 10; +pub const TCP_CLOSING: ::c_uint = 11; + +pub const TCP_CA_Open: tcp_ca_state = 0; +pub const TCP_CA_Disorder: tcp_ca_state = 1; +pub const TCP_CA_CWR: tcp_ca_state = 2; +pub const TCP_CA_Recovery: tcp_ca_state = 3; +pub const TCP_CA_Loss: tcp_ca_state = 4; + +pub const TCP_NO_QUEUE: ::c_uint = 0; +pub const TCP_RECV_QUEUE: ::c_uint = 1; +pub const TCP_SEND_QUEUE: ::c_uint = 2; +pub const TCP_QUEUES_NR: ::c_uint = 3; + +pub const P_ALL: idtype_t = 0; +pub const P_PID: idtype_t = 1; +pub const P_PGID: idtype_t = 2; + +pub const SS_ONSTACK: ::c_int = 1; +pub const SS_DISABLE: ::c_int = 4; + +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + __lock: 0, + __owner_id: 0, + __cnt: 0, + __shpid: 0, + __type: PTHREAD_MUTEX_TIMED as ::c_int, + __flags: 0, + __reserved1: 0, + __reserved2: 0, +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + __lock: __PTHREAD_SPIN_LOCK_INITIALIZER, + __queue: 0i64 as *mut __pthread, + __attr: 0i64 as *mut __pthread_condattr, + __wrefs: 0, + __data: 0i64 as *mut ::c_void, +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + __held: __PTHREAD_SPIN_LOCK_INITIALIZER, + __lock: __PTHREAD_SPIN_LOCK_INITIALIZER, + __readers: 0, + __readerqueue: 0i64 as *mut __pthread, + __writerqueue: 0i64 as *mut __pthread, + __attr: 0i64 as *mut __pthread_rwlockattr, + __data: 0i64 as *mut ::c_void, +}; +pub const PTHREAD_STACK_MIN: ::size_t = 0; + +const_fn! { + {const} fn CMSG_ALIGN(len: usize) -> usize { + len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) + } +} + +// functions +f! { + pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { + if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { + (*mhdr).msg_control as *mut cmsghdr + } else { + 0 as *mut cmsghdr + } + } + + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut ::c_uchar { + cmsg.offset(1) as *mut ::c_uchar + } + + pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) + as ::c_uint + } + + pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { + CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length + } + + pub fn CMSG_NXTHDR(mhdr: *const msghdr, + cmsg: *const cmsghdr) -> *mut cmsghdr { + if ((*cmsg).cmsg_len as usize) < ::mem::size_of::() { + return 0 as *mut cmsghdr; + }; + let next = (cmsg as usize + + CMSG_ALIGN((*cmsg).cmsg_len as usize)) + as *mut cmsghdr; + let max = (*mhdr).msg_control as usize + + (*mhdr).msg_controllen as usize; + if (next.offset(1)) as usize > max || + next as usize + CMSG_ALIGN((*next).cmsg_len as usize) > max + { + 0 as *mut cmsghdr + } else { + next as *mut cmsghdr + } + } + + pub fn CPU_ALLOC_SIZE(count: ::c_int) -> ::size_t { + let _dummy: cpu_set_t = ::mem::zeroed(); + let size_in_bits = 8 * ::mem::size_of_val(&_dummy.bits[0]); + ((count as ::size_t + size_in_bits - 1) / 8) as ::size_t + } + + pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { + for slot in cpuset.bits.iter_mut() { + *slot = 0; + } + } + + pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let size_in_bits + = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.bits[idx] |= 1 << offset; + () + } + + pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { + let size_in_bits + = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + cpuset.bits[idx] &= !(1 << offset); + () + } + + pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { + let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); + let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); + 0 != (cpuset.bits[idx] & (1 << offset)) + } + + pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> ::c_int { + let mut s: u32 = 0; + let size_of_mask = ::mem::size_of_val(&cpuset.bits[0]); + for i in cpuset.bits[..(size / size_of_mask)].iter() { + s += i.count_ones(); + }; + s as ::c_int + } + + pub fn CPU_COUNT(cpuset: &cpu_set_t) -> ::c_int { + CPU_COUNT_S(::mem::size_of::(), cpuset) + } + + pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { + set1.bits == set2.bits + } + + pub fn major(dev: ::dev_t) -> ::c_uint { + ((dev >> 8) & 0xff) as ::c_uint + } + + pub fn minor(dev: ::dev_t) -> ::c_uint { + (dev & 0xffff00ff) as ::c_uint + } + + pub fn IPTOS_TOS(tos: u8) -> u8 { + tos & IPTOS_TOS_MASK + } + + pub fn IPTOS_PREC(tos: u8) -> u8 { + tos & IPTOS_PREC_MASK + } + + pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] &= !(1 << (fd % size)); + return + } + + pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 + } + + pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { + let fd = fd as usize; + let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; + (*set).fds_bits[fd / size] |= 1 << (fd % size); + return + } + + pub fn FD_ZERO(set: *mut fd_set) -> () { + for slot in (*set).fds_bits.iter_mut() { + *slot = 0; + } + } +} + +extern "C" { + pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; + + pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; + pub fn futimens(__fd: ::c_int, __times: *const ::timespec) -> ::c_int; + + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; + + pub fn mkfifoat(__fd: ::c_int, __path: *const ::c_char, __mode: __mode_t) -> ::c_int; + + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + + pub fn __libc_current_sigrtmin() -> ::c_int; + + pub fn __libc_current_sigrtmax() -> ::c_int; + + pub fn wait4( + pid: ::pid_t, + status: *mut ::c_int, + options: ::c_int, + rusage: *mut ::rusage, + ) -> ::pid_t; + + pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) + -> ::c_int; + + pub fn sigwait(__set: *const sigset_t, __sig: *mut ::c_int) -> ::c_int; + + pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; + + pub fn ioctl(__fd: ::c_int, __request: ::c_ulong, ...) -> ::c_int; + + pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; + + pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; + + pub fn pread64(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off64_t) -> ::ssize_t; + pub fn pwrite64( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + offset: off64_t, + ) -> ::ssize_t; + + pub fn readv(__fd: ::c_int, __iovec: *const ::iovec, __count: ::c_int) -> ::ssize_t; + pub fn writev(__fd: ::c_int, __iovec: *const ::iovec, __count: ::c_int) -> ::ssize_t; + + pub fn preadv( + __fd: ::c_int, + __iovec: *const ::iovec, + __count: ::c_int, + __offset: __off_t, + ) -> ssize_t; + pub fn pwritev( + __fd: ::c_int, + __iovec: *const ::iovec, + __count: ::c_int, + __offset: __off_t, + ) -> ssize_t; + + pub fn preadv64( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, + ) -> ::ssize_t; + pub fn pwritev64( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, + ) -> ::ssize_t; + + pub fn fread_unlocked( + buf: *mut ::c_void, + size: ::size_t, + nobj: ::size_t, + stream: *mut ::FILE, + ) -> ::size_t; + + pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; + pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; + pub fn aio_suspend( + aiocb_list: *const *const aiocb, + nitems: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; + pub fn lio_listio( + mode: ::c_int, + aiocb_list: *const *mut aiocb, + nitems: ::c_int, + sevp: *mut ::sigevent, + ) -> ::c_int; + + pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; + pub fn mq_close(mqd: ::mqd_t) -> ::c_int; + pub fn mq_unlink(name: *const ::c_char) -> ::c_int; + pub fn mq_receive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + ) -> ::ssize_t; + pub fn mq_timedreceive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msg_prio: *mut ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::ssize_t; + pub fn mq_send( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + ) -> ::c_int; + pub fn mq_timedsend( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msg_prio: ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::c_int; + pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; + pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; + + pub fn lseek64(__fd: ::c_int, __offset: __off64_t, __whence: ::c_int) -> __off64_t; + + pub fn lseek(__fd: ::c_int, __offset: __off_t, __whence: ::c_int) -> __off_t; + + pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; + pub fn fseeko64(stream: *mut ::FILE, offset: ::off64_t, whence: ::c_int) -> ::c_int; + pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; + pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; + + pub fn bind(__fd: ::c_int, __addr: *const sockaddr, __len: socklen_t) -> ::c_int; + + pub fn accept4( + fd: ::c_int, + addr: *mut ::sockaddr, + len: *mut ::socklen_t, + flg: ::c_int, + ) -> ::c_int; + + pub fn ppoll( + fds: *mut ::pollfd, + nfds: nfds_t, + timeout: *const ::timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + + pub fn recvmsg(__fd: ::c_int, __message: *mut msghdr, __flags: ::c_int) -> ::ssize_t; + + pub fn sendmsg(__fd: ::c_int, __message: *const msghdr, __flags: ::c_int) -> ssize_t; + + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; + + pub fn sendfile( + out_fd: ::c_int, + in_fd: ::c_int, + offset: *mut off_t, + count: ::size_t, + ) -> ::ssize_t; + pub fn sendfile64( + out_fd: ::c_int, + in_fd: ::c_int, + offset: *mut off64_t, + count: ::size_t, + ) -> ::ssize_t; + + pub fn shutdown(__fd: ::c_int, __how: ::c_int) -> ::c_int; + + pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; + pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; + pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; + pub fn if_nameindex() -> *mut if_nameindex; + pub fn if_freenameindex(ptr: *mut if_nameindex); + + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + servlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + + pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; + pub fn freeifaddrs(ifa: *mut ::ifaddrs); + + pub fn uname(buf: *mut ::utsname) -> ::c_int; + + pub fn gethostid() -> ::c_long; + pub fn sethostid(hostid: ::c_long) -> ::c_int; + + pub fn setpwent(); + pub fn endpwent(); + pub fn getpwent() -> *mut passwd; + pub fn setgrent(); + pub fn endgrent(); + pub fn getgrent() -> *mut ::group; + pub fn setspent(); + pub fn endspent(); + pub fn getspent() -> *mut spwd; + + pub fn getspnam(name: *const ::c_char) -> *mut spwd; + + pub fn getpwent_r( + pwd: *mut ::passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::passwd, + ) -> ::c_int; + pub fn getgrent_r( + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn fgetpwent_r( + stream: *mut ::FILE, + pwd: *mut ::passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::passwd, + ) -> ::c_int; + pub fn fgetgrent_r( + stream: *mut ::FILE, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + + pub fn putpwent(p: *const ::passwd, stream: *mut ::FILE) -> ::c_int; + pub fn putgrent(grp: *const ::group, stream: *mut ::FILE) -> ::c_int; + + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + + pub fn fgetspent_r( + fp: *mut ::FILE, + spbuf: *mut ::spwd, + buf: *mut ::c_char, + buflen: ::size_t, + spbufp: *mut *mut ::spwd, + ) -> ::c_int; + pub fn sgetspent_r( + s: *const ::c_char, + spbuf: *mut ::spwd, + buf: *mut ::c_char, + buflen: ::size_t, + spbufp: *mut *mut ::spwd, + ) -> ::c_int; + pub fn getspent_r( + spbuf: *mut ::spwd, + buf: *mut ::c_char, + buflen: ::size_t, + spbufp: *mut *mut ::spwd, + ) -> ::c_int; + + pub fn getspnam_r( + name: *const ::c_char, + spbuf: *mut spwd, + buf: *mut ::c_char, + buflen: ::size_t, + spbufp: *mut *mut spwd, + ) -> ::c_int; + + // mntent.h + pub fn getmntent_r( + stream: *mut ::FILE, + mntbuf: *mut ::mntent, + buf: *mut ::c_char, + buflen: ::c_int, + ) -> *mut ::mntent; + + pub fn utmpname(file: *const ::c_char) -> ::c_int; + pub fn utmpxname(file: *const ::c_char) -> ::c_int; + pub fn getutxent() -> *mut utmpx; + pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + pub fn setutxent(); + pub fn endutxent(); + + pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; + pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; + pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; + pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; + + pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; + + pub fn getgrgid(gid: ::gid_t) -> *mut ::group; + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + + pub fn getgrnam(name: *const ::c_char) -> *mut ::group; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + + pub fn getgrouplist( + user: *const ::c_char, + group: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; + + pub fn setgroups(ngroups: ::size_t, ptr: *const ::gid_t) -> ::c_int; + + pub fn acct(filename: *const ::c_char) -> ::c_int; + + pub fn setmntent(filename: *const ::c_char, ty: *const ::c_char) -> *mut ::FILE; + pub fn getmntent(stream: *mut ::FILE) -> *mut ::mntent; + pub fn addmntent(stream: *mut ::FILE, mnt: *const ::mntent) -> ::c_int; + pub fn endmntent(streamp: *mut ::FILE) -> ::c_int; + pub fn hasmntopt(mnt: *const ::mntent, opt: *const ::c_char) -> *mut ::c_char; + + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + pub fn pthread_kill(__threadid: ::pthread_t, __signo: ::c_int) -> ::c_int; + pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; + pub fn __pthread_equal(__t1: __pthread_t, __t2: __pthread_t) -> ::c_int; + + pub fn pthread_getattr_np(__thr: ::pthread_t, __attr: *mut pthread_attr_t) -> ::c_int; + + pub fn pthread_attr_getguardsize( + __attr: *const pthread_attr_t, + __guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int; + + pub fn pthread_attr_getstack( + __attr: *const pthread_attr_t, + __stackaddr: *mut *mut ::c_void, + __stacksize: *mut ::size_t, + ) -> ::c_int; + + pub fn pthread_mutexattr_getpshared( + attr: *const pthread_mutexattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setpshared( + attr: *mut pthread_mutexattr_t, + pshared: ::c_int, + ) -> ::c_int; + + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + + pub fn pthread_rwlockattr_getpshared( + attr: *const pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; + + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + __attr: *mut pthread_condattr_t, + __clock_id: __clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_getpshared( + attr: *const pthread_condattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; + + pub fn pthread_once(control: *mut pthread_once_t, routine: extern "C" fn()) -> ::c_int; + + pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; + pub fn pthread_barrierattr_getpshared( + attr: *const ::pthread_barrierattr_t, + shared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_barrierattr_setpshared( + attr: *mut ::pthread_barrierattr_t, + shared: ::c_int, + ) -> ::c_int; + pub fn pthread_barrier_init( + barrier: *mut pthread_barrier_t, + attr: *const ::pthread_barrierattr_t, + count: ::c_uint, + ) -> ::c_int; + pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; + pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; + pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; + pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + + pub fn pthread_sigmask( + __how: ::c_int, + __newmask: *const __sigset_t, + __oldmask: *mut __sigset_t, + ) -> ::c_int; + + pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; + pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn pthread_getschedparam( + native: ::pthread_t, + policy: *mut ::c_int, + param: *mut ::sched_param, + ) -> ::c_int; + pub fn pthread_setschedparam( + native: ::pthread_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + + pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; + + pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; + pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; + pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + + pub fn clock_getres(__clock_id: clockid_t, __res: *mut ::timespec) -> ::c_int; + pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut ::timespec) -> ::c_int; + pub fn clock_settime(__clock_id: clockid_t, __tp: *const ::timespec) -> ::c_int; + pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; + + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + + pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; + pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char; + + pub fn strftime( + s: *mut ::c_char, + max: ::size_t, + format: *const ::c_char, + tm: *const ::tm, + ) -> ::size_t; + pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; + + pub fn timer_create( + clockid: ::clockid_t, + sevp: *mut ::sigevent, + timerid: *mut ::timer_t, + ) -> ::c_int; + pub fn timer_delete(timerid: ::timer_t) -> ::c_int; + pub fn timer_getoverrun(timerid: ::timer_t) -> ::c_int; + pub fn timer_gettime(timerid: ::timer_t, curr_value: *mut ::itimerspec) -> ::c_int; + pub fn timer_settime( + timerid: ::timer_t, + flags: ::c_int, + new_value: *const ::itimerspec, + old_value: *mut ::itimerspec, + ) -> ::c_int; + + pub fn fstat(__fd: ::c_int, __buf: *mut stat) -> ::c_int; + pub fn fstat64(__fd: ::c_int, __buf: *mut stat64) -> ::c_int; + + pub fn fstatat( + __fd: ::c_int, + __file: *const ::c_char, + __buf: *mut stat, + __flag: ::c_int, + ) -> ::c_int; + pub fn fstatat64( + __fd: ::c_int, + __file: *const ::c_char, + __buf: *mut stat64, + __flag: ::c_int, + ) -> ::c_int; + + pub fn statx( + dirfd: ::c_int, + pathname: *const c_char, + flags: ::c_int, + mask: ::c_uint, + statxbuf: *mut statx, + ) -> ::c_int; + + pub fn ftruncate(__fd: ::c_int, __length: __off_t) -> ::c_int; + pub fn ftruncate64(__fd: ::c_int, __length: __off64_t) -> ::c_int; + pub fn truncate64(__file: *const ::c_char, __length: __off64_t) -> ::c_int; + + pub fn lstat(__file: *const ::c_char, __buf: *mut stat) -> ::c_int; + pub fn lstat64(__file: *const ::c_char, __buf: *mut stat64) -> ::c_int; + + pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; + pub fn statfs64(__file: *const ::c_char, __buf: *mut statfs64) -> ::c_int; + pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; + pub fn fstatfs64(__fildes: ::c_int, __buf: *mut statfs64) -> ::c_int; + + pub fn statvfs(__file: *const ::c_char, __buf: *mut statvfs) -> ::c_int; + pub fn statvfs64(__file: *const ::c_char, __buf: *mut statvfs64) -> ::c_int; + pub fn fstatvfs(__fildes: ::c_int, __buf: *mut statvfs) -> ::c_int; + pub fn fstatvfs64(__fildes: ::c_int, __buf: *mut statvfs64) -> ::c_int; + + pub fn open(__file: *const ::c_char, __oflag: ::c_int, ...) -> ::c_int; + pub fn open64(__file: *const ::c_char, __oflag: ::c_int, ...) -> ::c_int; + + pub fn openat(__fd: ::c_int, __file: *const ::c_char, __oflag: ::c_int, ...) -> ::c_int; + pub fn openat64(__fd: ::c_int, __file: *const ::c_char, __oflag: ::c_int, ...) -> ::c_int; + + pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn freopen64( + filename: *const c_char, + mode: *const c_char, + file: *mut ::FILE, + ) -> *mut ::FILE; + + pub fn creat64(path: *const c_char, mode: mode_t) -> ::c_int; + + pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; + pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; + pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; + pub fn tmpfile64() -> *mut ::FILE; + + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + + pub fn getdtablesize() -> ::c_int; + + // Added in `glibc` 2.34 + pub fn close_range(first: ::c_uint, last: ::c_uint, flags: ::c_int) -> ::c_int; + + pub fn openpty( + __amaster: *mut ::c_int, + __aslave: *mut ::c_int, + __name: *mut ::c_char, + __termp: *const termios, + __winp: *const ::winsize, + ) -> ::c_int; + + pub fn forkpty( + __amaster: *mut ::c_int, + __name: *mut ::c_char, + __termp: *const termios, + __winp: *const ::winsize, + ) -> ::pid_t; + + pub fn getpt() -> ::c_int; + pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> ::c_int; + pub fn login_tty(fd: ::c_int) -> ::c_int; + + pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; + + pub fn clearenv() -> ::c_int; + + pub fn execveat( + dirfd: ::c_int, + pathname: *const ::c_char, + argv: *const *mut c_char, + envp: *const *mut c_char, + flags: ::c_int, + ) -> ::c_int; + pub fn execvpe( + file: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + pub fn fexecve( + fd: ::c_int, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + + pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + + // posix/spawn.h + pub fn posix_spawn( + pid: *mut ::pid_t, + path: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnp( + pid: *mut ::pid_t, + file: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; + pub fn posix_spawnattr_getsigdefault( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getflags( + attr: *const posix_spawnattr_t, + flags: *mut ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; + pub fn posix_spawnattr_getpgroup( + attr: *const posix_spawnattr_t, + flags: *mut ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; + pub fn posix_spawnattr_getschedpolicy( + attr: *const posix_spawnattr_t, + flags: *mut ::c_int, + ) -> ::c_int; + pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; + pub fn posix_spawnattr_getschedparam( + attr: *const posix_spawnattr_t, + param: *mut ::sched_param, + ) -> ::c_int; + pub fn posix_spawnattr_setschedparam( + attr: *mut posix_spawnattr_t, + param: *const ::sched_param, + ) -> ::c_int; + + pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; + pub fn posix_spawn_file_actions_addopen( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + path: *const ::c_char, + oflag: ::c_int, + mode: ::mode_t, + ) -> ::c_int; + pub fn posix_spawn_file_actions_addclose( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + ) -> ::c_int; + pub fn posix_spawn_file_actions_adddup2( + actions: *mut posix_spawn_file_actions_t, + fd: ::c_int, + newfd: ::c_int, + ) -> ::c_int; + + // Added in `glibc` 2.29 + pub fn posix_spawn_file_actions_addchdir_np( + actions: *mut ::posix_spawn_file_actions_t, + path: *const ::c_char, + ) -> ::c_int; + // Added in `glibc` 2.29 + pub fn posix_spawn_file_actions_addfchdir_np( + actions: *mut ::posix_spawn_file_actions_t, + fd: ::c_int, + ) -> ::c_int; + // Added in `glibc` 2.34 + pub fn posix_spawn_file_actions_addclosefrom_np( + actions: *mut ::posix_spawn_file_actions_t, + from: ::c_int, + ) -> ::c_int; + // Added in `glibc` 2.35 + pub fn posix_spawn_file_actions_addtcsetpgrp_np( + actions: *mut ::posix_spawn_file_actions_t, + tcfd: ::c_int, + ) -> ::c_int; + + pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; + pub fn shm_unlink(name: *const ::c_char) -> ::c_int; + + pub fn euidaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; + pub fn eaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; + + pub fn faccessat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::c_int, + flags: ::c_int, + ) -> ::c_int; + + pub fn stat(__file: *const ::c_char, __buf: *mut stat) -> ::c_int; + pub fn stat64(__file: *const ::c_char, __buf: *mut stat64) -> ::c_int; + + pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; + pub fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64; + pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, result: *mut *mut ::dirent) + -> ::c_int; + pub fn readdir64_r( + dirp: *mut ::DIR, + entry: *mut ::dirent64, + result: *mut *mut ::dirent64, + ) -> ::c_int; + pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); + pub fn telldir(dirp: *mut ::DIR) -> ::c_long; + + pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; + + #[link_name = "__xpg_strerror_r"] + pub fn strerror_r(__errnum: ::c_int, __buf: *mut ::c_char, __buflen: ::size_t) -> ::c_int; + + pub fn __errno_location() -> *mut ::c_int; + + pub fn mmap64( + __addr: *mut ::c_void, + __len: size_t, + __prot: ::c_int, + __flags: ::c_int, + __fd: ::c_int, + __offset: __off64_t, + ) -> *mut ::c_void; + + pub fn mremap( + addr: *mut ::c_void, + len: ::size_t, + new_len: ::size_t, + flags: ::c_int, + ... + ) -> *mut ::c_void; + + pub fn mprotect(__addr: *mut ::c_void, __len: ::size_t, __prot: ::c_int) -> ::c_int; + + pub fn msync(__addr: *mut ::c_void, __len: ::size_t, __flags: ::c_int) -> ::c_int; + pub fn sync(); + pub fn syncfs(fd: ::c_int) -> ::c_int; + pub fn fdatasync(fd: ::c_int) -> ::c_int; + + pub fn fallocate64(fd: ::c_int, mode: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; + pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; + pub fn posix_fallocate64(fd: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; + + pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; + + pub fn posix_fadvise64( + fd: ::c_int, + offset: ::off64_t, + len: ::off64_t, + advise: ::c_int, + ) -> ::c_int; + + pub fn madvise(__addr: *mut ::c_void, __len: ::size_t, __advice: ::c_int) -> ::c_int; + + pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; + + pub fn getrlimit(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit) -> ::c_int; + pub fn getrlimit64(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit64) -> ::c_int; + pub fn setrlimit(resource: ::__rlimit_resource_t, rlim: *const ::rlimit) -> ::c_int; + pub fn setrlimit64(resource: ::__rlimit_resource_t, rlim: *const ::rlimit64) -> ::c_int; + + pub fn getpriority(which: ::__priority_which, who: ::id_t) -> ::c_int; + pub fn setpriority(which: ::__priority_which, who: ::id_t, prio: ::c_int) -> ::c_int; + + pub fn getrandom(__buffer: *mut ::c_void, __length: ::size_t, __flags: ::c_uint) -> ::ssize_t; + pub fn getentropy(__buffer: *mut ::c_void, __length: ::size_t) -> ::c_int; + + pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; + pub fn memmem( + haystack: *const ::c_void, + haystacklen: ::size_t, + needle: *const ::c_void, + needlelen: ::size_t, + ) -> *mut ::c_void; + pub fn strchrnul(s: *const ::c_char, c: ::c_int) -> *mut ::c_char; + + pub fn abs(i: ::c_int) -> ::c_int; + pub fn labs(i: ::c_long) -> ::c_long; + pub fn rand() -> ::c_int; + pub fn srand(seed: ::c_uint); + + pub fn drand48() -> ::c_double; + pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; + pub fn lrand48() -> ::c_long; + pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; + pub fn mrand48() -> ::c_long; + pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; + pub fn srand48(seed: ::c_long); + pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; + pub fn lcong48(p: *mut ::c_ushort); + + pub fn qsort_r( + base: *mut ::c_void, + num: ::size_t, + size: ::size_t, + compar: ::Option< + unsafe extern "C" fn(*const ::c_void, *const ::c_void, *mut ::c_void) -> ::c_int, + >, + arg: *mut ::c_void, + ); + + pub fn brk(addr: *mut ::c_void) -> ::c_int; + pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; + + pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + pub fn mallopt(param: ::c_int, value: ::c_int) -> ::c_int; + + pub fn mallinfo() -> ::mallinfo; + pub fn mallinfo2() -> ::mallinfo2; + pub fn malloc_info(options: ::c_int, stream: *mut ::FILE) -> ::c_int; + pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t; + pub fn malloc_trim(__pad: ::size_t) -> ::c_int; + + pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; + pub fn iconv( + cd: iconv_t, + inbuf: *mut *mut ::c_char, + inbytesleft: *mut ::size_t, + outbuf: *mut *mut ::c_char, + outbytesleft: *mut ::size_t, + ) -> ::size_t; + pub fn iconv_close(cd: iconv_t) -> ::c_int; + + pub fn getopt_long( + argc: ::c_int, + argv: *const *mut c_char, + optstring: *const c_char, + longopts: *const option, + longindex: *mut ::c_int, + ) -> ::c_int; + + pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int; + + pub fn reboot(how_to: ::c_int) -> ::c_int; + + pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; + + pub fn regexec( + preg: *const ::regex_t, + input: *const ::c_char, + nmatch: ::size_t, + pmatch: *mut regmatch_t, + eflags: ::c_int, + ) -> ::c_int; + + pub fn regerror( + errcode: ::c_int, + preg: *const ::regex_t, + errbuf: *mut ::c_char, + errbuf_size: ::size_t, + ) -> ::size_t; + + pub fn regfree(preg: *mut ::regex_t); + + pub fn glob( + pattern: *const c_char, + flags: ::c_int, + errfunc: ::Option ::c_int>, + pglob: *mut ::glob_t, + ) -> ::c_int; + pub fn globfree(pglob: *mut ::glob_t); + + pub fn glob64( + pattern: *const ::c_char, + flags: ::c_int, + errfunc: ::Option ::c_int>, + pglob: *mut glob64_t, + ) -> ::c_int; + pub fn globfree64(pglob: *mut glob64_t); + + pub fn getxattr( + path: *const c_char, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn lgetxattr( + path: *const c_char, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn fgetxattr( + filedes: ::c_int, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn setxattr( + path: *const c_char, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn lsetxattr( + path: *const c_char, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn fsetxattr( + filedes: ::c_int, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn listxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; + pub fn llistxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; + pub fn flistxattr(filedes: ::c_int, list: *mut c_char, size: ::size_t) -> ::ssize_t; + pub fn removexattr(path: *const c_char, name: *const c_char) -> ::c_int; + pub fn lremovexattr(path: *const c_char, name: *const c_char) -> ::c_int; + pub fn fremovexattr(filedes: ::c_int, name: *const c_char) -> ::c_int; + + pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; + /// POSIX version of `basename(3)`, defined in `libgen.h`. + #[link_name = "__xpg_basename"] + pub fn posix_basename(path: *mut ::c_char) -> *mut ::c_char; + /// GNU version of `basename(3)`, defined in `string.h`. + #[link_name = "basename"] + pub fn gnu_basename(path: *const ::c_char) -> *mut ::c_char; + + pub fn dlmopen(lmid: Lmid_t, filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; + pub fn dlinfo(handle: *mut ::c_void, request: ::c_int, info: *mut ::c_void) -> ::c_int; + pub fn dladdr1( + addr: *const ::c_void, + info: *mut ::Dl_info, + extra_info: *mut *mut ::c_void, + flags: ::c_int, + ) -> ::c_int; + + pub fn duplocale(base: ::locale_t) -> ::locale_t; + pub fn freelocale(loc: ::locale_t); + pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; + pub fn uselocale(loc: ::locale_t) -> ::locale_t; + pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; + pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; + + pub fn dl_iterate_phdr( + callback: ::Option< + unsafe extern "C" fn( + info: *mut ::dl_phdr_info, + size: ::size_t, + data: *mut ::c_void, + ) -> ::c_int, + >, + data: *mut ::c_void, + ) -> ::c_int; + + pub fn gnu_get_libc_release() -> *const ::c_char; + pub fn gnu_get_libc_version() -> *const ::c_char; +} + +safe_f! { + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + let major = major as ::dev_t; + let minor = minor as ::dev_t; + let mut dev = 0; + dev |= major << 8; + dev |= minor; + dev + } + + pub fn SIGRTMAX() -> ::c_int { + unsafe { __libc_current_sigrtmax() } + } + + pub fn SIGRTMIN() -> ::c_int { + unsafe { __libc_current_sigrtmin() } + } + + pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { + (status & 0xff) == 0x7f + } + + pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } + + pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { + status == 0xffff + } + + pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { + ((status & 0x7f) + 1) as i8 >= 2 + } + + pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { + status & 0x7f + } + + pub {const} fn WIFEXITED(status: ::c_int) -> bool { + (status & 0x7f) == 0 + } + + pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } + + pub {const} fn WCOREDUMP(status: ::c_int) -> bool { + (status & 0x80) != 0 + } + + pub {const} fn W_EXITCODE(ret: ::c_int, sig: ::c_int) -> ::c_int { + (ret << 8) | sig + } + + pub {const} fn W_STOPCODE(sig: ::c_int) -> ::c_int { + (sig << 8) | 0x7f + } + + pub {const} fn QCMD(cmd: ::c_int, type_: ::c_int) -> ::c_int { + (cmd << 8) | (type_ & 0x00ff) + } + + pub {const} fn IPOPT_COPIED(o: u8) -> u8 { + o & IPOPT_COPY + } + + pub {const} fn IPOPT_CLASS(o: u8) -> u8 { + o & IPOPT_CLASS_MASK + } + + pub {const} fn IPOPT_NUMBER(o: u8) -> u8 { + o & IPOPT_NUMBER_MASK + } + + pub {const} fn IPTOS_ECN(x: u8) -> u8 { + x & ::IPTOS_ECN_MASK + } +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } else { + mod no_align; + pub use self::no_align::*; + } +} + +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + mod b64; + pub use self::b64::*; + } else { + mod b32; + pub use self::b32::*; + } +} diff --git a/src/rust/vendor/libc/src/unix/hurd/no_align.rs b/src/rust/vendor/libc/src/unix/hurd/no_align.rs new file mode 100644 index 000000000..1dd7d8e54 --- /dev/null +++ b/src/rust/vendor/libc/src/unix/hurd/no_align.rs @@ -0,0 +1 @@ +// Placeholder file diff --git a/src/rust/vendor/libc/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/android/b64/aarch64/mod.rs index e7247fbb6..7b87a1d49 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -191,6 +191,7 @@ pub const SYS_vhangup: ::c_long = 58; pub const SYS_pipe2: ::c_long = 59; pub const SYS_quotactl: ::c_long = 60; pub const SYS_getdents64: ::c_long = 61; +pub const SYS_lseek: ::c_long = 62; pub const SYS_read: ::c_long = 63; pub const SYS_write: ::c_long = 64; pub const SYS_readv: ::c_long = 65; @@ -347,6 +348,7 @@ pub const SYS_request_key: ::c_long = 218; pub const SYS_keyctl: ::c_long = 219; pub const SYS_clone: ::c_long = 220; pub const SYS_execve: ::c_long = 221; +pub const SYS_mmap: ::c_long = 222; pub const SYS_swapon: ::c_long = 224; pub const SYS_swapoff: ::c_long = 225; pub const SYS_mprotect: ::c_long = 226; @@ -412,6 +414,9 @@ pub const SYS_fsmount: ::c_long = 432; pub const SYS_fspick: ::c_long = 433; pub const SYS_syscalls: ::c_long = 436; +pub const PROT_BTI: ::c_int = 0x10; +pub const PROT_MTE: ::c_int = 0x20; + cfg_if! { if #[cfg(libc_align)] { mod align; diff --git a/src/rust/vendor/libc/src/unix/linux_like/android/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/android/mod.rs index f3622fdb0..fb0b06701 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/android/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/android/mod.rs @@ -46,6 +46,12 @@ pub type Elf64_Off = u64; pub type Elf64_Word = u32; pub type Elf64_Xword = u64; +pub type eventfd_t = u64; + +// these structs sit behind a heap allocation on Android +pub type posix_spawn_file_actions_t = *mut ::c_void; +pub type posix_spawnattr_t = *mut ::c_void; + s! { pub struct stack_t { pub ss_sp: *mut ::c_void, @@ -350,6 +356,11 @@ s! { pub args: [::__u64; 6], } + pub struct seccomp_metadata { + pub filter_off: ::__u64, + pub flags: ::__u64, + } + pub struct ptrace_peeksiginfo_args { pub off: ::__u64, pub flags: ::__u32, @@ -489,6 +500,22 @@ s! { pub flag: *mut ::c_int, pub val: ::c_int, } + + pub struct __c_anonymous_ifru_map { + pub mem_start: ::c_ulong, + pub mem_end: ::c_ulong, + pub base_addr: ::c_ushort, + pub irq: ::c_uchar, + pub dma: ::c_uchar, + pub port: ::c_uchar, + } + + pub struct in6_ifreq { + pub ifr6_addr: ::in6_addr, + pub ifr6_prefixlen: u32, + pub ifr6_ifindex: ::c_int, + } + } s_no_extra_traits! { @@ -584,6 +611,50 @@ s_no_extra_traits! { __serial: ::c_uint, __value: [[::c_char; 4]; 23], } + + #[cfg(libc_union)] + pub union __c_anonymous_ifr_ifru { + pub ifru_addr: ::sockaddr, + pub ifru_dstaddr: ::sockaddr, + pub ifru_broadaddr: ::sockaddr, + pub ifru_netmask: ::sockaddr, + pub ifru_hwaddr: ::sockaddr, + pub ifru_flags: ::c_short, + pub ifru_ifindex: ::c_int, + pub ifru_metric: ::c_int, + pub ifru_mtu: ::c_int, + pub ifru_map: __c_anonymous_ifru_map, + pub ifru_slave: [::c_char; ::IFNAMSIZ], + pub ifru_newname: [::c_char; ::IFNAMSIZ], + pub ifru_data: *mut ::c_char, + } + + pub struct ifreq { + /// interface name, e.g. "en0" + pub ifr_name: [::c_char; ::IFNAMSIZ], + #[cfg(libc_union)] + pub ifr_ifru: __c_anonymous_ifr_ifru, + #[cfg(not(libc_union))] + pub ifr_ifru: ::sockaddr, + } + + #[cfg(libc_union)] + pub union __c_anonymous_ifc_ifcu { + pub ifcu_buf: *mut ::c_char, + pub ifcu_req: *mut ::ifreq, + } + + /* Structure used in SIOCGIFCONF request. Used to retrieve interface + configuration for machine (useful for programs which must know all + networks accessible). */ + pub struct ifconf { + pub ifc_len: ::c_int, /* Size of buffer. */ + #[cfg(libc_union)] + pub ifc_ifcu: __c_anonymous_ifc_ifcu, + #[cfg(not(libc_union))] + pub ifc_ifcu: *mut ::ifreq, + } + } cfg_if! { @@ -931,6 +1002,53 @@ cfg_if! { } } + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ifr_ifru { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifr_ifru") + .field("ifru_addr", unsafe { &self.ifru_addr }) + .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) + .field("ifru_broadaddr", unsafe { &self.ifru_broadaddr }) + .field("ifru_netmask", unsafe { &self.ifru_netmask }) + .field("ifru_hwaddr", unsafe { &self.ifru_hwaddr }) + .field("ifru_flags", unsafe { &self.ifru_flags }) + .field("ifru_ifindex", unsafe { &self.ifru_ifindex }) + .field("ifru_metric", unsafe { &self.ifru_metric }) + .field("ifru_mtu", unsafe { &self.ifru_mtu }) + .field("ifru_map", unsafe { &self.ifru_map }) + .field("ifru_slave", unsafe { &self.ifru_slave }) + .field("ifru_newname", unsafe { &self.ifru_newname }) + .field("ifru_data", unsafe { &self.ifru_data }) + .finish() + } + } + impl ::fmt::Debug for ifreq { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifreq") + .field("ifr_name", &self.ifr_name) + .field("ifr_ifru", &self.ifr_ifru) + .finish() + } + } + + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ifc_ifcu { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifr_ifru") + .field("ifcu_buf", unsafe { &self.ifcu_buf }) + .field("ifcu_req", unsafe { &self.ifcu_req }) + .finish() + } + } + impl ::fmt::Debug for ifconf { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifconf") + .field("ifc_len", &self.ifc_len) + .field("ifc_ifcu", &self.ifc_ifcu) + .finish() + } + } + #[allow(deprecated)] impl af_alg_iv { fn as_slice(&self) -> &[u8] { @@ -1068,140 +1186,155 @@ pub const _PC_SYNC_IO: ::c_int = 19; pub const FIONBIO: ::c_int = 0x5421; -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_BC_BASE_MAX: ::c_int = 1; -pub const _SC_BC_DIM_MAX: ::c_int = 2; -pub const _SC_BC_SCALE_MAX: ::c_int = 3; -pub const _SC_BC_STRING_MAX: ::c_int = 4; -pub const _SC_CHILD_MAX: ::c_int = 5; -pub const _SC_CLK_TCK: ::c_int = 6; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 7; -pub const _SC_EXPR_NEST_MAX: ::c_int = 8; -pub const _SC_LINE_MAX: ::c_int = 9; -pub const _SC_NGROUPS_MAX: ::c_int = 10; -pub const _SC_OPEN_MAX: ::c_int = 11; -pub const _SC_PASS_MAX: ::c_int = 12; -pub const _SC_2_C_BIND: ::c_int = 13; -pub const _SC_2_C_DEV: ::c_int = 14; -pub const _SC_2_C_VERSION: ::c_int = 15; -pub const _SC_2_CHAR_TERM: ::c_int = 16; -pub const _SC_2_FORT_DEV: ::c_int = 17; -pub const _SC_2_FORT_RUN: ::c_int = 18; -pub const _SC_2_LOCALEDEF: ::c_int = 19; -pub const _SC_2_SW_DEV: ::c_int = 20; -pub const _SC_2_UPE: ::c_int = 21; -pub const _SC_2_VERSION: ::c_int = 22; -pub const _SC_JOB_CONTROL: ::c_int = 23; -pub const _SC_SAVED_IDS: ::c_int = 24; -pub const _SC_VERSION: ::c_int = 25; -pub const _SC_RE_DUP_MAX: ::c_int = 26; -pub const _SC_STREAM_MAX: ::c_int = 27; -pub const _SC_TZNAME_MAX: ::c_int = 28; -pub const _SC_XOPEN_CRYPT: ::c_int = 29; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 30; -pub const _SC_XOPEN_SHM: ::c_int = 31; -pub const _SC_XOPEN_VERSION: ::c_int = 32; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 33; -pub const _SC_XOPEN_REALTIME: ::c_int = 34; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 35; -pub const _SC_XOPEN_LEGACY: ::c_int = 36; -pub const _SC_ATEXIT_MAX: ::c_int = 37; -pub const _SC_IOV_MAX: ::c_int = 38; -pub const _SC_PAGESIZE: ::c_int = 39; -pub const _SC_PAGE_SIZE: ::c_int = 40; -pub const _SC_XOPEN_UNIX: ::c_int = 41; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 42; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 43; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 44; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 45; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 46; -pub const _SC_AIO_MAX: ::c_int = 47; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 48; -pub const _SC_DELAYTIMER_MAX: ::c_int = 49; -pub const _SC_MQ_OPEN_MAX: ::c_int = 50; -pub const _SC_MQ_PRIO_MAX: ::c_int = 51; -pub const _SC_RTSIG_MAX: ::c_int = 52; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 53; -pub const _SC_SEM_VALUE_MAX: ::c_int = 54; -pub const _SC_SIGQUEUE_MAX: ::c_int = 55; -pub const _SC_TIMER_MAX: ::c_int = 56; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 57; -pub const _SC_FSYNC: ::c_int = 58; -pub const _SC_MAPPED_FILES: ::c_int = 59; -pub const _SC_MEMLOCK: ::c_int = 60; -pub const _SC_MEMLOCK_RANGE: ::c_int = 61; -pub const _SC_MEMORY_PROTECTION: ::c_int = 62; -pub const _SC_MESSAGE_PASSING: ::c_int = 63; -pub const _SC_PRIORITIZED_IO: ::c_int = 64; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 65; -pub const _SC_REALTIME_SIGNALS: ::c_int = 66; -pub const _SC_SEMAPHORES: ::c_int = 67; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 68; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 69; -pub const _SC_TIMERS: ::c_int = 70; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 71; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 72; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 73; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 74; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 75; -pub const _SC_THREAD_STACK_MIN: ::c_int = 76; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 77; -pub const _SC_TTY_NAME_MAX: ::c_int = 78; -pub const _SC_THREADS: ::c_int = 79; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 80; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 81; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 82; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 83; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 84; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 85; -pub const _SC_NPROCESSORS_CONF: ::c_int = 96; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 97; -pub const _SC_PHYS_PAGES: ::c_int = 98; -pub const _SC_AVPHYS_PAGES: ::c_int = 99; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 100; - -pub const _SC_2_PBS: ::c_int = 101; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 102; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 103; -pub const _SC_2_PBS_LOCATE: ::c_int = 104; -pub const _SC_2_PBS_MESSAGE: ::c_int = 105; -pub const _SC_2_PBS_TRACK: ::c_int = 106; -pub const _SC_ADVISORY_INFO: ::c_int = 107; -pub const _SC_BARRIERS: ::c_int = 108; -pub const _SC_CLOCK_SELECTION: ::c_int = 109; -pub const _SC_CPUTIME: ::c_int = 110; -pub const _SC_HOST_NAME_MAX: ::c_int = 111; -pub const _SC_IPV6: ::c_int = 112; -pub const _SC_RAW_SOCKETS: ::c_int = 113; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 114; -pub const _SC_REGEXP: ::c_int = 115; -pub const _SC_SHELL: ::c_int = 116; -pub const _SC_SPAWN: ::c_int = 117; -pub const _SC_SPIN_LOCKS: ::c_int = 118; -pub const _SC_SPORADIC_SERVER: ::c_int = 119; -pub const _SC_SS_REPL_MAX: ::c_int = 120; -pub const _SC_SYMLOOP_MAX: ::c_int = 121; -pub const _SC_THREAD_CPUTIME: ::c_int = 122; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 123; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 124; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 125; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 126; -pub const _SC_TIMEOUTS: ::c_int = 127; -pub const _SC_TRACE: ::c_int = 128; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 129; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 130; -pub const _SC_TRACE_INHERIT: ::c_int = 131; -pub const _SC_TRACE_LOG: ::c_int = 132; -pub const _SC_TRACE_NAME_MAX: ::c_int = 133; -pub const _SC_TRACE_SYS_MAX: ::c_int = 134; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 135; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 136; -pub const _SC_V7_ILP32_OFF32: ::c_int = 137; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 138; -pub const _SC_V7_LP64_OFF64: ::c_int = 139; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 140; -pub const _SC_XOPEN_STREAMS: ::c_int = 141; -pub const _SC_XOPEN_UUCP: ::c_int = 142; +pub const _SC_ARG_MAX: ::c_int = 0x0000; +pub const _SC_BC_BASE_MAX: ::c_int = 0x0001; +pub const _SC_BC_DIM_MAX: ::c_int = 0x0002; +pub const _SC_BC_SCALE_MAX: ::c_int = 0x0003; +pub const _SC_BC_STRING_MAX: ::c_int = 0x0004; +pub const _SC_CHILD_MAX: ::c_int = 0x0005; +pub const _SC_CLK_TCK: ::c_int = 0x0006; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 0x0007; +pub const _SC_EXPR_NEST_MAX: ::c_int = 0x0008; +pub const _SC_LINE_MAX: ::c_int = 0x0009; +pub const _SC_NGROUPS_MAX: ::c_int = 0x000a; +pub const _SC_OPEN_MAX: ::c_int = 0x000b; +pub const _SC_PASS_MAX: ::c_int = 0x000c; +pub const _SC_2_C_BIND: ::c_int = 0x000d; +pub const _SC_2_C_DEV: ::c_int = 0x000e; +pub const _SC_2_C_VERSION: ::c_int = 0x000f; +pub const _SC_2_CHAR_TERM: ::c_int = 0x0010; +pub const _SC_2_FORT_DEV: ::c_int = 0x0011; +pub const _SC_2_FORT_RUN: ::c_int = 0x0012; +pub const _SC_2_LOCALEDEF: ::c_int = 0x0013; +pub const _SC_2_SW_DEV: ::c_int = 0x0014; +pub const _SC_2_UPE: ::c_int = 0x0015; +pub const _SC_2_VERSION: ::c_int = 0x0016; +pub const _SC_JOB_CONTROL: ::c_int = 0x0017; +pub const _SC_SAVED_IDS: ::c_int = 0x0018; +pub const _SC_VERSION: ::c_int = 0x0019; +pub const _SC_RE_DUP_MAX: ::c_int = 0x001a; +pub const _SC_STREAM_MAX: ::c_int = 0x001b; +pub const _SC_TZNAME_MAX: ::c_int = 0x001c; +pub const _SC_XOPEN_CRYPT: ::c_int = 0x001d; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 0x001e; +pub const _SC_XOPEN_SHM: ::c_int = 0x001f; +pub const _SC_XOPEN_VERSION: ::c_int = 0x0020; +pub const _SC_XOPEN_XCU_VERSION: ::c_int = 0x0021; +pub const _SC_XOPEN_REALTIME: ::c_int = 0x0022; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 0x0023; +pub const _SC_XOPEN_LEGACY: ::c_int = 0x0024; +pub const _SC_ATEXIT_MAX: ::c_int = 0x0025; +pub const _SC_IOV_MAX: ::c_int = 0x0026; +pub const _SC_UIO_MAXIOV: ::c_int = _SC_IOV_MAX; +pub const _SC_PAGESIZE: ::c_int = 0x0027; +pub const _SC_PAGE_SIZE: ::c_int = 0x0028; +pub const _SC_XOPEN_UNIX: ::c_int = 0x0029; +pub const _SC_XBS5_ILP32_OFF32: ::c_int = 0x002a; +pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 0x002b; +pub const _SC_XBS5_LP64_OFF64: ::c_int = 0x002c; +pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 0x002d; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 0x002e; +pub const _SC_AIO_MAX: ::c_int = 0x002f; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 0x0030; +pub const _SC_DELAYTIMER_MAX: ::c_int = 0x0031; +pub const _SC_MQ_OPEN_MAX: ::c_int = 0x0032; +pub const _SC_MQ_PRIO_MAX: ::c_int = 0x0033; +pub const _SC_RTSIG_MAX: ::c_int = 0x0034; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 0x0035; +pub const _SC_SEM_VALUE_MAX: ::c_int = 0x0036; +pub const _SC_SIGQUEUE_MAX: ::c_int = 0x0037; +pub const _SC_TIMER_MAX: ::c_int = 0x0038; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 0x0039; +pub const _SC_FSYNC: ::c_int = 0x003a; +pub const _SC_MAPPED_FILES: ::c_int = 0x003b; +pub const _SC_MEMLOCK: ::c_int = 0x003c; +pub const _SC_MEMLOCK_RANGE: ::c_int = 0x003d; +pub const _SC_MEMORY_PROTECTION: ::c_int = 0x003e; +pub const _SC_MESSAGE_PASSING: ::c_int = 0x003f; +pub const _SC_PRIORITIZED_IO: ::c_int = 0x0040; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 0x0041; +pub const _SC_REALTIME_SIGNALS: ::c_int = 0x0042; +pub const _SC_SEMAPHORES: ::c_int = 0x0043; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 0x0044; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 0x0045; +pub const _SC_TIMERS: ::c_int = 0x0046; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 0x0047; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 0x0048; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 0x0049; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 0x004a; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 0x004b; +pub const _SC_THREAD_STACK_MIN: ::c_int = 0x004c; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 0x004d; +pub const _SC_TTY_NAME_MAX: ::c_int = 0x004e; +pub const _SC_THREADS: ::c_int = 0x004f; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 0x0050; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 0x0051; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 0x0052; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 0x0053; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 0x0054; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 0x0055; +pub const _SC_NPROCESSORS_CONF: ::c_int = 0x0060; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 0x0061; +pub const _SC_PHYS_PAGES: ::c_int = 0x0062; +pub const _SC_AVPHYS_PAGES: ::c_int = 0x0063; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 0x0064; +pub const _SC_2_PBS: ::c_int = 0x0065; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 0x0066; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 0x0067; +pub const _SC_2_PBS_LOCATE: ::c_int = 0x0068; +pub const _SC_2_PBS_MESSAGE: ::c_int = 0x0069; +pub const _SC_2_PBS_TRACK: ::c_int = 0x006a; +pub const _SC_ADVISORY_INFO: ::c_int = 0x006b; +pub const _SC_BARRIERS: ::c_int = 0x006c; +pub const _SC_CLOCK_SELECTION: ::c_int = 0x006d; +pub const _SC_CPUTIME: ::c_int = 0x006e; +pub const _SC_HOST_NAME_MAX: ::c_int = 0x006f; +pub const _SC_IPV6: ::c_int = 0x0070; +pub const _SC_RAW_SOCKETS: ::c_int = 0x0071; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 0x0072; +pub const _SC_REGEXP: ::c_int = 0x0073; +pub const _SC_SHELL: ::c_int = 0x0074; +pub const _SC_SPAWN: ::c_int = 0x0075; +pub const _SC_SPIN_LOCKS: ::c_int = 0x0076; +pub const _SC_SPORADIC_SERVER: ::c_int = 0x0077; +pub const _SC_SS_REPL_MAX: ::c_int = 0x0078; +pub const _SC_SYMLOOP_MAX: ::c_int = 0x0079; +pub const _SC_THREAD_CPUTIME: ::c_int = 0x007a; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 0x007b; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 0x007c; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 0x007d; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 0x007e; +pub const _SC_TIMEOUTS: ::c_int = 0x007f; +pub const _SC_TRACE: ::c_int = 0x0080; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 0x0081; +pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 0x0082; +pub const _SC_TRACE_INHERIT: ::c_int = 0x0083; +pub const _SC_TRACE_LOG: ::c_int = 0x0084; +pub const _SC_TRACE_NAME_MAX: ::c_int = 0x0085; +pub const _SC_TRACE_SYS_MAX: ::c_int = 0x0086; +pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 0x0087; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 0x0088; +pub const _SC_V7_ILP32_OFF32: ::c_int = 0x0089; +pub const _SC_V7_ILP32_OFFBIG: ::c_int = 0x008a; +pub const _SC_V7_LP64_OFF64: ::c_int = 0x008b; +pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 0x008c; +pub const _SC_XOPEN_STREAMS: ::c_int = 0x008d; +pub const _SC_XOPEN_UUCP: ::c_int = 0x008e; +pub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 0x008f; +pub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 0x0090; +pub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 0x0091; +pub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 0x0092; +pub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 0x0093; +pub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 0x0094; +pub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 0x0095; +pub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 0x0096; +pub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 0x0097; +pub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 0x0098; +pub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 0x0099; +pub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 0x009a; +pub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 0x009b; +pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 0x009c; +pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 0x009d; pub const F_LOCK: ::c_int = 1; pub const F_TEST: ::c_int = 3; @@ -1219,6 +1352,9 @@ pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_EXPLICIT_SCHED: ::c_int = 0; +pub const PTHREAD_INHERIT_SCHED: ::c_int = 1; + // stdio.h pub const RENAME_NOREPLACE: ::c_int = 1; pub const RENAME_EXCHANGE: ::c_int = 2; @@ -1441,12 +1577,26 @@ pub const SO_PEERSEC: ::c_int = 31; pub const SO_SNDBUFFORCE: ::c_int = 32; pub const SO_RCVBUFFORCE: ::c_int = 33; pub const SO_PASSSEC: ::c_int = 34; +pub const SO_TIMESTAMPNS: ::c_int = 35; +// pub const SO_TIMESTAMPNS_OLD: ::c_int = 35; pub const SO_MARK: ::c_int = 36; +pub const SO_TIMESTAMPING: ::c_int = 37; +// pub const SO_TIMESTAMPING_OLD: ::c_int = 37; pub const SO_PROTOCOL: ::c_int = 38; pub const SO_DOMAIN: ::c_int = 39; pub const SO_RXQ_OVFL: ::c_int = 40; pub const SO_PEEK_OFF: ::c_int = 42; pub const SO_BUSY_POLL: ::c_int = 46; +pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 54; +pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 58; +pub const SO_TIMESTAMP_NEW: ::c_int = 63; +pub const SO_TIMESTAMPNS_NEW: ::c_int = 64; +pub const SO_TIMESTAMPING_NEW: ::c_int = 65; + +// Defined in unix/linux_like/mod.rs +// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; +pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; +pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; pub const IPTOS_ECN_NOTECT: u8 = 0x00; @@ -1508,6 +1658,7 @@ pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; pub const PTRACE_GETREGSET: ::c_int = 0x4204; pub const PTRACE_SETREGSET: ::c_int = 0x4205; +pub const PTRACE_SECCOMP_GET_METADATA: ::c_int = 0x420d; pub const PTRACE_EVENT_STOP: ::c_int = 128; @@ -1539,6 +1690,7 @@ pub const RLIMIT_MSGQUEUE: ::c_int = 12; pub const RLIMIT_NICE: ::c_int = 13; pub const RLIMIT_RTPRIO: ::c_int = 14; +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::c_int = 16; pub const RLIM_INFINITY: ::rlim_t = !0; @@ -1683,6 +1835,7 @@ pub const REG_BACKR: ::c_int = 1024; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::tcflag_t = 0x00000800; @@ -1775,6 +1928,34 @@ pub const BLKIOOPT: ::c_int = 0x1279; pub const BLKSSZGET: ::c_int = 0x1268; pub const BLKPBSZGET: ::c_int = 0x127B; +cfg_if! { + // Those type are constructed using the _IOC macro + // DD-SS_SSSS_SSSS_SSSS-TTTT_TTTT-NNNN_NNNN + // where D stands for direction (either None (00), Read (01) or Write (11)) + // where S stands for size (int, long, struct...) + // where T stands for type ('f','v','X'...) + // where N stands for NR (NumbeR) + if #[cfg(any(target_arch = "x86", target_arch = "arm"))] { + pub const FS_IOC_GETFLAGS: ::c_int = 0x80046601; + pub const FS_IOC_SETFLAGS: ::c_int = 0x40046602; + pub const FS_IOC_GETVERSION: ::c_int = 0x80047601; + pub const FS_IOC_SETVERSION: ::c_int = 0x40047602; + pub const FS_IOC32_GETFLAGS: ::c_int = 0x80046601; + pub const FS_IOC32_SETFLAGS: ::c_int = 0x40046602; + pub const FS_IOC32_GETVERSION: ::c_int = 0x80047601; + pub const FS_IOC32_SETVERSION: ::c_int = 0x40047602; + } else if #[cfg(any(target_arch = "x86_64", target_arch = "riscv64", target_arch = "aarch64"))] { + pub const FS_IOC_GETFLAGS: ::c_int = 0x80086601; + pub const FS_IOC_SETFLAGS: ::c_int = 0x40086602; + pub const FS_IOC_GETVERSION: ::c_int = 0x80087601; + pub const FS_IOC_SETVERSION: ::c_int = 0x40087602; + pub const FS_IOC32_GETFLAGS: ::c_int = 0x80046601; + pub const FS_IOC32_SETFLAGS: ::c_int = 0x40046602; + pub const FS_IOC32_GETVERSION: ::c_int = 0x80047601; + pub const FS_IOC32_SETVERSION: ::c_int = 0x40047602; + } +} + pub const EAI_AGAIN: ::c_int = 2; pub const EAI_BADFLAGS: ::c_int = 3; pub const EAI_FAIL: ::c_int = 4; @@ -1817,6 +1998,7 @@ pub const NLM_F_MULTI: ::c_int = 2; pub const NLM_F_ACK: ::c_int = 4; pub const NLM_F_ECHO: ::c_int = 8; pub const NLM_F_DUMP_INTR: ::c_int = 16; +pub const NLM_F_DUMP_FILTERED: ::c_int = 32; pub const NLM_F_ROOT: ::c_int = 0x100; pub const NLM_F_MATCH: ::c_int = 0x200; @@ -2112,6 +2294,8 @@ pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; pub const MFD_CLOEXEC: ::c_uint = 0x0001; pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; pub const MFD_HUGETLB: ::c_uint = 0x0004; +pub const MFD_NOEXEC_SEAL: ::c_uint = 0x0008; +pub const MFD_EXEC: ::c_uint = 0x0010; pub const MFD_HUGE_64KB: ::c_uint = 0x40000000; pub const MFD_HUGE_512KB: ::c_uint = 0x4c000000; pub const MFD_HUGE_1MB: ::c_uint = 0x50000000; @@ -2455,6 +2639,7 @@ pub const IFF_TUN: ::c_int = 0x0001; pub const IFF_TAP: ::c_int = 0x0002; pub const IFF_NAPI: ::c_int = 0x0010; pub const IFF_NAPI_FRAGS: ::c_int = 0x0020; +pub const IFF_NO_CARRIER: ::c_int = 0x0040; pub const IFF_NO_PI: ::c_int = 0x1000; pub const IFF_ONE_QUEUE: ::c_int = 0x2000; pub const IFF_VNET_HDR: ::c_int = 0x4000; @@ -2464,6 +2649,14 @@ pub const IFF_ATTACH_QUEUE: ::c_int = 0x0200; pub const IFF_DETACH_QUEUE: ::c_int = 0x0400; pub const IFF_PERSIST: ::c_int = 0x0800; pub const IFF_NOFILTER: ::c_int = 0x1000; +// Features for GSO (TUNSETOFFLOAD) +pub const TUN_F_CSUM: ::c_uint = 0x01; +pub const TUN_F_TSO4: ::c_uint = 0x02; +pub const TUN_F_TSO6: ::c_uint = 0x04; +pub const TUN_F_TSO_ECN: ::c_uint = 0x08; +pub const TUN_F_UFO: ::c_uint = 0x10; +pub const TUN_F_USO4: ::c_uint = 0x20; +pub const TUN_F_USO6: ::c_uint = 0x40; // start android/platform/bionic/libc/kernel/uapi/linux/if_ether.h // from https://android.googlesource.com/platform/bionic/+/HEAD/libc/kernel/uapi/linux/if_ether.h @@ -2566,8 +2759,91 @@ pub const ETH_P_XDSA: ::c_int = 0x00F8; /* see rust-lang/libc#924 pub const ETH_P_MAP: ::c_int = 0x00F9;*/ // end android/platform/bionic/libc/kernel/uapi/linux/if_ether.h +// start android/platform/bionic/libc/kernel/uapi/linux/neighbour.h +pub const NDA_UNSPEC: ::c_ushort = 0; +pub const NDA_DST: ::c_ushort = 1; +pub const NDA_LLADDR: ::c_ushort = 2; +pub const NDA_CACHEINFO: ::c_ushort = 3; +pub const NDA_PROBES: ::c_ushort = 4; +pub const NDA_VLAN: ::c_ushort = 5; +pub const NDA_PORT: ::c_ushort = 6; +pub const NDA_VNI: ::c_ushort = 7; +pub const NDA_IFINDEX: ::c_ushort = 8; +pub const NDA_MASTER: ::c_ushort = 9; +pub const NDA_LINK_NETNSID: ::c_ushort = 10; +pub const NDA_SRC_VNI: ::c_ushort = 11; +pub const NDA_PROTOCOL: ::c_ushort = 12; +pub const NDA_NH_ID: ::c_ushort = 13; +pub const NDA_FDB_EXT_ATTRS: ::c_ushort = 14; +pub const NDA_FLAGS_EXT: ::c_ushort = 15; +pub const NDA_NDM_STATE_MASK: ::c_ushort = 16; +pub const NDA_NDM_FLAGS_MASK: ::c_ushort = 17; + +pub const NTF_USE: u8 = 0x01; +pub const NTF_SELF: u8 = 0x02; +pub const NTF_MASTER: u8 = 0x04; +pub const NTF_PROXY: u8 = 0x08; +pub const NTF_EXT_LEARNED: u8 = 0x10; +pub const NTF_OFFLOADED: u8 = 0x20; +pub const NTF_STICKY: u8 = 0x40; +pub const NTF_ROUTER: u8 = 0x80; + +pub const NTF_EXT_MANAGED: u8 = 0x01; +pub const NTF_EXT_LOCKED: u8 = 0x02; + +pub const NUD_NONE: u16 = 0x00; +pub const NUD_INCOMPLETE: u16 = 0x01; +pub const NUD_REACHABLE: u16 = 0x02; +pub const NUD_STALE: u16 = 0x04; +pub const NUD_DELAY: u16 = 0x08; +pub const NUD_PROBE: u16 = 0x10; +pub const NUD_FAILED: u16 = 0x20; +pub const NUD_NOARP: u16 = 0x40; +pub const NUD_PERMANENT: u16 = 0x80; + +pub const NDTPA_UNSPEC: ::c_ushort = 0; +pub const NDTPA_IFINDEX: ::c_ushort = 1; +pub const NDTPA_REFCNT: ::c_ushort = 2; +pub const NDTPA_REACHABLE_TIME: ::c_ushort = 3; +pub const NDTPA_BASE_REACHABLE_TIME: ::c_ushort = 4; +pub const NDTPA_RETRANS_TIME: ::c_ushort = 5; +pub const NDTPA_GC_STALETIME: ::c_ushort = 6; +pub const NDTPA_DELAY_PROBE_TIME: ::c_ushort = 7; +pub const NDTPA_QUEUE_LEN: ::c_ushort = 8; +pub const NDTPA_APP_PROBES: ::c_ushort = 9; +pub const NDTPA_UCAST_PROBES: ::c_ushort = 10; +pub const NDTPA_MCAST_PROBES: ::c_ushort = 11; +pub const NDTPA_ANYCAST_DELAY: ::c_ushort = 12; +pub const NDTPA_PROXY_DELAY: ::c_ushort = 13; +pub const NDTPA_PROXY_QLEN: ::c_ushort = 14; +pub const NDTPA_LOCKTIME: ::c_ushort = 15; +pub const NDTPA_QUEUE_LENBYTES: ::c_ushort = 16; +pub const NDTPA_MCAST_REPROBES: ::c_ushort = 17; +pub const NDTPA_PAD: ::c_ushort = 18; +pub const NDTPA_INTERVAL_PROBE_TIME_MS: ::c_ushort = 19; + +pub const NDTA_UNSPEC: ::c_ushort = 0; +pub const NDTA_NAME: ::c_ushort = 1; +pub const NDTA_THRESH1: ::c_ushort = 2; +pub const NDTA_THRESH2: ::c_ushort = 3; +pub const NDTA_THRESH3: ::c_ushort = 4; +pub const NDTA_CONFIG: ::c_ushort = 5; +pub const NDTA_PARMS: ::c_ushort = 6; +pub const NDTA_STATS: ::c_ushort = 7; +pub const NDTA_GC_INTERVAL: ::c_ushort = 8; +pub const NDTA_PAD: ::c_ushort = 9; + +pub const FDB_NOTIFY_BIT: u16 = 0x01; +pub const FDB_NOTIFY_INACTIVE_BIT: u16 = 0x02; + +pub const NFEA_UNSPEC: ::c_ushort = 0; +pub const NFEA_ACTIVITY_NOTIFY: ::c_ushort = 1; +pub const NFEA_DONT_REFRESH: ::c_ushort = 2; +// end android/platform/bionic/libc/kernel/uapi/linux/neighbour.h + pub const SIOCADDRT: ::c_ulong = 0x0000890B; pub const SIOCDELRT: ::c_ulong = 0x0000890C; +pub const SIOCRTMSG: ::c_ulong = 0x0000890D; pub const SIOCGIFNAME: ::c_ulong = 0x00008910; pub const SIOCSIFLINK: ::c_ulong = 0x00008911; pub const SIOCGIFCONF: ::c_ulong = 0x00008912; @@ -2587,6 +2863,7 @@ pub const SIOCGIFMEM: ::c_ulong = 0x0000891F; pub const SIOCSIFMEM: ::c_ulong = 0x00008920; pub const SIOCGIFMTU: ::c_ulong = 0x00008921; pub const SIOCSIFMTU: ::c_ulong = 0x00008922; +pub const SIOCSIFNAME: ::c_ulong = 0x00008923; pub const SIOCSIFHWADDR: ::c_ulong = 0x00008924; pub const SIOCGIFENCAP: ::c_ulong = 0x00008925; pub const SIOCSIFENCAP: ::c_ulong = 0x00008926; @@ -2595,6 +2872,24 @@ pub const SIOCGIFSLAVE: ::c_ulong = 0x00008929; pub const SIOCSIFSLAVE: ::c_ulong = 0x00008930; pub const SIOCADDMULTI: ::c_ulong = 0x00008931; pub const SIOCDELMULTI: ::c_ulong = 0x00008932; +pub const SIOCGIFINDEX: ::c_ulong = 0x00008933; +pub const SIOGIFINDEX: ::c_ulong = SIOCGIFINDEX; +pub const SIOCSIFPFLAGS: ::c_ulong = 0x00008934; +pub const SIOCGIFPFLAGS: ::c_ulong = 0x00008935; +pub const SIOCDIFADDR: ::c_ulong = 0x00008936; +pub const SIOCSIFHWBROADCAST: ::c_ulong = 0x00008937; +pub const SIOCGIFCOUNT: ::c_ulong = 0x00008938; +pub const SIOCGIFBR: ::c_ulong = 0x00008940; +pub const SIOCSIFBR: ::c_ulong = 0x00008941; +pub const SIOCGIFTXQLEN: ::c_ulong = 0x00008942; +pub const SIOCSIFTXQLEN: ::c_ulong = 0x00008943; +pub const SIOCETHTOOL: ::c_ulong = 0x00008946; +pub const SIOCGMIIPHY: ::c_ulong = 0x00008947; +pub const SIOCGMIIREG: ::c_ulong = 0x00008948; +pub const SIOCSMIIREG: ::c_ulong = 0x00008949; +pub const SIOCWANDEV: ::c_ulong = 0x0000894A; +pub const SIOCOUTQNSD: ::c_ulong = 0x0000894B; +pub const SIOCGSKNS: ::c_ulong = 0x0000894C; pub const SIOCDARP: ::c_ulong = 0x00008953; pub const SIOCGARP: ::c_ulong = 0x00008954; pub const SIOCSARP: ::c_ulong = 0x00008955; @@ -2603,11 +2898,46 @@ pub const SIOCGRARP: ::c_ulong = 0x00008961; pub const SIOCSRARP: ::c_ulong = 0x00008962; pub const SIOCGIFMAP: ::c_ulong = 0x00008970; pub const SIOCSIFMAP: ::c_ulong = 0x00008971; +pub const SIOCADDDLCI: ::c_ulong = 0x00008980; +pub const SIOCDELDLCI: ::c_ulong = 0x00008981; +pub const SIOCGIFVLAN: ::c_ulong = 0x00008982; +pub const SIOCSIFVLAN: ::c_ulong = 0x00008983; +pub const SIOCBONDENSLAVE: ::c_ulong = 0x00008990; +pub const SIOCBONDRELEASE: ::c_ulong = 0x00008991; +pub const SIOCBONDSETHWADDR: ::c_ulong = 0x00008992; +pub const SIOCBONDSLAVEINFOQUERY: ::c_ulong = 0x00008993; +pub const SIOCBONDINFOQUERY: ::c_ulong = 0x00008994; +pub const SIOCBONDCHANGEACTIVE: ::c_ulong = 0x00008995; +pub const SIOCBRADDBR: ::c_ulong = 0x000089a0; +pub const SIOCBRDELBR: ::c_ulong = 0x000089a1; +pub const SIOCBRADDIF: ::c_ulong = 0x000089a2; +pub const SIOCBRDELIF: ::c_ulong = 0x000089a3; +pub const SIOCSHWTSTAMP: ::c_ulong = 0x000089b0; +pub const SIOCGHWTSTAMP: ::c_ulong = 0x000089b1; +pub const SIOCDEVPRIVATE: ::c_ulong = 0x000089F0; +pub const SIOCPROTOPRIVATE: ::c_ulong = 0x000089E0; // linux/module.h pub const MODULE_INIT_IGNORE_MODVERSIONS: ::c_uint = 0x0001; pub const MODULE_INIT_IGNORE_VERMAGIC: ::c_uint = 0x0002; +// linux/net_tstamp.h +pub const SOF_TIMESTAMPING_TX_HARDWARE: ::c_uint = 1 << 0; +pub const SOF_TIMESTAMPING_TX_SOFTWARE: ::c_uint = 1 << 1; +pub const SOF_TIMESTAMPING_RX_HARDWARE: ::c_uint = 1 << 2; +pub const SOF_TIMESTAMPING_RX_SOFTWARE: ::c_uint = 1 << 3; +pub const SOF_TIMESTAMPING_SOFTWARE: ::c_uint = 1 << 4; +pub const SOF_TIMESTAMPING_SYS_HARDWARE: ::c_uint = 1 << 5; +pub const SOF_TIMESTAMPING_RAW_HARDWARE: ::c_uint = 1 << 6; +pub const SOF_TIMESTAMPING_OPT_ID: ::c_uint = 1 << 7; +pub const SOF_TIMESTAMPING_TX_SCHED: ::c_uint = 1 << 8; +pub const SOF_TIMESTAMPING_TX_ACK: ::c_uint = 1 << 9; +pub const SOF_TIMESTAMPING_OPT_CMSG: ::c_uint = 1 << 10; +pub const SOF_TIMESTAMPING_OPT_TSONLY: ::c_uint = 1 << 11; +pub const SOF_TIMESTAMPING_OPT_STATS: ::c_uint = 1 << 12; +pub const SOF_TIMESTAMPING_OPT_PKTINFO: ::c_uint = 1 << 13; +pub const SOF_TIMESTAMPING_OPT_TX_SWHW: ::c_uint = 1 << 14; + #[deprecated( since = "0.2.55", note = "ENOATTR is not available on Android; use ENODATA instead" @@ -2620,6 +2950,7 @@ pub const ALG_SET_IV: ::c_int = 2; pub const ALG_SET_OP: ::c_int = 3; pub const ALG_SET_AEAD_ASSOCLEN: ::c_int = 4; pub const ALG_SET_AEAD_AUTHSIZE: ::c_int = 5; +pub const ALG_SET_DRBG_ENTROPY: ::c_int = 6; pub const ALG_OP_DECRYPT: ::c_int = 0; pub const ALG_OP_ENCRYPT: ::c_int = 1; @@ -2690,6 +3021,7 @@ pub const FUTEX_WAIT_BITSET: ::c_int = 9; pub const FUTEX_WAKE_BITSET: ::c_int = 10; pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11; pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12; +pub const FUTEX_LOCK_PI2: ::c_int = 13; pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; pub const FUTEX_CLOCK_REALTIME: ::c_int = 256; @@ -2886,6 +3218,19 @@ pub const IFLA_CARRIER_DOWN_COUNT: ::c_ushort = 48; pub const IFLA_NEW_IFINDEX: ::c_ushort = 49; pub const IFLA_MIN_MTU: ::c_ushort = 50; pub const IFLA_MAX_MTU: ::c_ushort = 51; +pub const IFLA_PROP_LIST: ::c_ushort = 52; +pub const IFLA_ALT_IFNAME: ::c_ushort = 53; +pub const IFLA_PERM_ADDRESS: ::c_ushort = 54; +pub const IFLA_PROTO_DOWN_REASON: ::c_ushort = 55; +pub const IFLA_PARENT_DEV_NAME: ::c_ushort = 56; +pub const IFLA_PARENT_DEV_BUS_NAME: ::c_ushort = 57; +pub const IFLA_GRO_MAX_SIZE: ::c_ushort = 58; +pub const IFLA_TSO_MAX_SIZE: ::c_ushort = 59; +pub const IFLA_TSO_MAX_SEGS: ::c_ushort = 60; +pub const IFLA_ALLMULTI: ::c_ushort = 61; +pub const IFLA_DEVLINK_PORT: ::c_ushort = 62; +pub const IFLA_GSO_IPV4_MAX_SIZE: ::c_ushort = 63; +pub const IFLA_GRO_IPV4_MAX_SIZE: ::c_ushort = 64; pub const IFLA_INFO_UNSPEC: ::c_ushort = 0; pub const IFLA_INFO_KIND: ::c_ushort = 1; @@ -3014,6 +3359,168 @@ pub const RTMSG_DELDEVICE: u32 = 0x12; pub const RTMSG_NEWROUTE: u32 = 0x21; pub const RTMSG_DELROUTE: u32 = 0x22; +pub const CTL_KERN: ::c_int = 1; +pub const CTL_VM: ::c_int = 2; +pub const CTL_NET: ::c_int = 3; +pub const CTL_FS: ::c_int = 5; +pub const CTL_DEBUG: ::c_int = 6; +pub const CTL_DEV: ::c_int = 7; +pub const CTL_BUS: ::c_int = 8; +pub const CTL_ABI: ::c_int = 9; +pub const CTL_CPU: ::c_int = 10; + +pub const CTL_BUS_ISA: ::c_int = 1; + +pub const INOTIFY_MAX_USER_INSTANCES: ::c_int = 1; +pub const INOTIFY_MAX_USER_WATCHES: ::c_int = 2; +pub const INOTIFY_MAX_QUEUED_EVENTS: ::c_int = 3; + +pub const KERN_OSTYPE: ::c_int = 1; +pub const KERN_OSRELEASE: ::c_int = 2; +pub const KERN_OSREV: ::c_int = 3; +pub const KERN_VERSION: ::c_int = 4; +pub const KERN_SECUREMASK: ::c_int = 5; +pub const KERN_PROF: ::c_int = 6; +pub const KERN_NODENAME: ::c_int = 7; +pub const KERN_DOMAINNAME: ::c_int = 8; +pub const KERN_PANIC: ::c_int = 15; +pub const KERN_REALROOTDEV: ::c_int = 16; +pub const KERN_SPARC_REBOOT: ::c_int = 21; +pub const KERN_CTLALTDEL: ::c_int = 22; +pub const KERN_PRINTK: ::c_int = 23; +pub const KERN_NAMETRANS: ::c_int = 24; +pub const KERN_PPC_HTABRECLAIM: ::c_int = 25; +pub const KERN_PPC_ZEROPAGED: ::c_int = 26; +pub const KERN_PPC_POWERSAVE_NAP: ::c_int = 27; +pub const KERN_MODPROBE: ::c_int = 28; +pub const KERN_SG_BIG_BUFF: ::c_int = 29; +pub const KERN_ACCT: ::c_int = 30; +pub const KERN_PPC_L2CR: ::c_int = 31; +pub const KERN_RTSIGNR: ::c_int = 32; +pub const KERN_RTSIGMAX: ::c_int = 33; +pub const KERN_SHMMAX: ::c_int = 34; +pub const KERN_MSGMAX: ::c_int = 35; +pub const KERN_MSGMNB: ::c_int = 36; +pub const KERN_MSGPOOL: ::c_int = 37; +pub const KERN_SYSRQ: ::c_int = 38; +pub const KERN_MAX_THREADS: ::c_int = 39; +pub const KERN_RANDOM: ::c_int = 40; +pub const KERN_SHMALL: ::c_int = 41; +pub const KERN_MSGMNI: ::c_int = 42; +pub const KERN_SEM: ::c_int = 43; +pub const KERN_SPARC_STOP_A: ::c_int = 44; +pub const KERN_SHMMNI: ::c_int = 45; +pub const KERN_OVERFLOWUID: ::c_int = 46; +pub const KERN_OVERFLOWGID: ::c_int = 47; +pub const KERN_SHMPATH: ::c_int = 48; +pub const KERN_HOTPLUG: ::c_int = 49; +pub const KERN_IEEE_EMULATION_WARNINGS: ::c_int = 50; +pub const KERN_S390_USER_DEBUG_LOGGING: ::c_int = 51; +pub const KERN_CORE_USES_PID: ::c_int = 52; +pub const KERN_TAINTED: ::c_int = 53; +pub const KERN_CADPID: ::c_int = 54; +pub const KERN_PIDMAX: ::c_int = 55; +pub const KERN_CORE_PATTERN: ::c_int = 56; +pub const KERN_PANIC_ON_OOPS: ::c_int = 57; +pub const KERN_HPPA_PWRSW: ::c_int = 58; +pub const KERN_HPPA_UNALIGNED: ::c_int = 59; +pub const KERN_PRINTK_RATELIMIT: ::c_int = 60; +pub const KERN_PRINTK_RATELIMIT_BURST: ::c_int = 61; +pub const KERN_PTY: ::c_int = 62; +pub const KERN_NGROUPS_MAX: ::c_int = 63; +pub const KERN_SPARC_SCONS_PWROFF: ::c_int = 64; +pub const KERN_HZ_TIMER: ::c_int = 65; +pub const KERN_UNKNOWN_NMI_PANIC: ::c_int = 66; +pub const KERN_BOOTLOADER_TYPE: ::c_int = 67; +pub const KERN_RANDOMIZE: ::c_int = 68; +pub const KERN_SETUID_DUMPABLE: ::c_int = 69; +pub const KERN_SPIN_RETRY: ::c_int = 70; +pub const KERN_ACPI_VIDEO_FLAGS: ::c_int = 71; +pub const KERN_IA64_UNALIGNED: ::c_int = 72; +pub const KERN_COMPAT_LOG: ::c_int = 73; +pub const KERN_MAX_LOCK_DEPTH: ::c_int = 74; + +pub const VM_OVERCOMMIT_MEMORY: ::c_int = 5; +pub const VM_PAGE_CLUSTER: ::c_int = 10; +pub const VM_DIRTY_BACKGROUND: ::c_int = 11; +pub const VM_DIRTY_RATIO: ::c_int = 12; +pub const VM_DIRTY_WB_CS: ::c_int = 13; +pub const VM_DIRTY_EXPIRE_CS: ::c_int = 14; +pub const VM_NR_PDFLUSH_THREADS: ::c_int = 15; +pub const VM_OVERCOMMIT_RATIO: ::c_int = 16; +pub const VM_PAGEBUF: ::c_int = 17; +pub const VM_HUGETLB_PAGES: ::c_int = 18; +pub const VM_SWAPPINESS: ::c_int = 19; +pub const VM_LOWMEM_RESERVE_RATIO: ::c_int = 20; +pub const VM_MIN_FREE_KBYTES: ::c_int = 21; +pub const VM_MAX_MAP_COUNT: ::c_int = 22; +pub const VM_LAPTOP_MODE: ::c_int = 23; +pub const VM_BLOCK_DUMP: ::c_int = 24; +pub const VM_HUGETLB_GROUP: ::c_int = 25; +pub const VM_VFS_CACHE_PRESSURE: ::c_int = 26; +pub const VM_LEGACY_VA_LAYOUT: ::c_int = 27; +pub const VM_SWAP_TOKEN_TIMEOUT: ::c_int = 28; +pub const VM_DROP_PAGECACHE: ::c_int = 29; +pub const VM_PERCPU_PAGELIST_FRACTION: ::c_int = 30; +pub const VM_ZONE_RECLAIM_MODE: ::c_int = 31; +pub const VM_MIN_UNMAPPED: ::c_int = 32; +pub const VM_PANIC_ON_OOM: ::c_int = 33; +pub const VM_VDSO_ENABLED: ::c_int = 34; + +pub const NET_CORE: ::c_int = 1; +pub const NET_ETHER: ::c_int = 2; +pub const NET_802: ::c_int = 3; +pub const NET_UNIX: ::c_int = 4; +pub const NET_IPV4: ::c_int = 5; +pub const NET_IPX: ::c_int = 6; +pub const NET_ATALK: ::c_int = 7; +pub const NET_NETROM: ::c_int = 8; +pub const NET_AX25: ::c_int = 9; +pub const NET_BRIDGE: ::c_int = 10; +pub const NET_ROSE: ::c_int = 11; +pub const NET_IPV6: ::c_int = 12; +pub const NET_X25: ::c_int = 13; +pub const NET_TR: ::c_int = 14; +pub const NET_DECNET: ::c_int = 15; +pub const NET_ECONET: ::c_int = 16; +pub const NET_SCTP: ::c_int = 17; +pub const NET_LLC: ::c_int = 18; +pub const NET_NETFILTER: ::c_int = 19; +pub const NET_DCCP: ::c_int = 20; +pub const HUGETLB_FLAG_ENCODE_SHIFT: ::c_int = 26; +pub const MAP_HUGE_SHIFT: ::c_int = HUGETLB_FLAG_ENCODE_SHIFT; + +// include/linux/sched.h +pub const PF_VCPU: ::c_int = 0x00000001; +pub const PF_IDLE: ::c_int = 0x00000002; +pub const PF_EXITING: ::c_int = 0x00000004; +pub const PF_POSTCOREDUMP: ::c_int = 0x00000008; +pub const PF_IO_WORKER: ::c_int = 0x00000010; +pub const PF_WQ_WORKER: ::c_int = 0x00000020; +pub const PF_FORKNOEXEC: ::c_int = 0x00000040; +pub const PF_MCE_PROCESS: ::c_int = 0x00000080; +pub const PF_SUPERPRIV: ::c_int = 0x00000100; +pub const PF_DUMPCORE: ::c_int = 0x00000200; +pub const PF_SIGNALED: ::c_int = 0x00000400; +pub const PF_MEMALLOC: ::c_int = 0x00000800; +pub const PF_NPROC_EXCEEDED: ::c_int = 0x00001000; +pub const PF_USED_MATH: ::c_int = 0x00002000; +pub const PF_USER_WORKER: ::c_int = 0x00004000; +pub const PF_NOFREEZE: ::c_int = 0x00008000; + +pub const PF_KSWAPD: ::c_int = 0x00020000; +pub const PF_MEMALLOC_NOFS: ::c_int = 0x00040000; +pub const PF_MEMALLOC_NOIO: ::c_int = 0x00080000; +pub const PF_LOCAL_THROTTLE: ::c_int = 0x00100000; +pub const PF_KTHREAD: ::c_int = 0x00200000; +pub const PF_RANDOMIZE: ::c_int = 0x00400000; + +pub const PF_NO_SETAFFINITY: ::c_int = 0x04000000; +pub const PF_MCE_EARLY: ::c_int = 0x08000000; +pub const PF_MEMALLOC_PIN: ::c_int = 0x10000000; + +pub const PF_SUSPEND_TASK: ::c_int = 0x80000000; + // Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the // following are only available on newer Linux versions than the versions // currently used in CI in some configurations, so we define them here. @@ -3154,7 +3661,7 @@ extern "C" { host: *mut ::c_char, hostlen: ::size_t, serv: *mut ::c_char, - sevlen: ::size_t, + servlen: ::size_t, flags: ::c_int, ) -> ::c_int; pub fn preadv(fd: ::c_int, iov: *const ::iovec, count: ::c_int, offset: ::off_t) -> ::ssize_t; @@ -3289,6 +3796,8 @@ extern "C" { flags: ::c_uint, ) -> ::ssize_t; pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; + pub fn eventfd_read(fd: ::c_int, value: *mut eventfd_t) -> ::c_int; + pub fn eventfd_write(fd: ::c_int, value: eventfd_t) -> ::c_int; pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; @@ -3361,6 +3870,12 @@ extern "C" { attr: *const ::pthread_attr_t, guardsize: *mut ::size_t, ) -> ::c_int; + pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int; + pub fn pthread_attr_getinheritsched( + attr: *const ::pthread_attr_t, + flag: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_attr_setinheritsched(attr: *mut ::pthread_attr_t, flag: ::c_int) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; pub fn pthread_condattr_getpshared( @@ -3383,7 +3898,13 @@ extern "C" { pub fn sendfile( out_fd: ::c_int, in_fd: ::c_int, - offset: *mut off_t, + offset: *mut ::off_t, + count: ::size_t, + ) -> ::ssize_t; + pub fn sendfile64( + out_fd: ::c_int, + in_fd: ::c_int, + offset: *mut ::off64_t, count: ::size_t, ) -> ::ssize_t; pub fn setfsgid(gid: ::gid_t) -> ::c_int; @@ -3503,7 +4024,9 @@ extern "C" { pub fn gettid() -> ::pid_t; + /// Only available in API Version 28+ pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; + pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int; @@ -3556,6 +4079,20 @@ extern "C" { needle: *const ::c_void, needlelen: ::size_t, ) -> *mut ::c_void; + pub fn fread_unlocked( + buf: *mut ::c_void, + size: ::size_t, + nobj: ::size_t, + stream: *mut ::FILE, + ) -> ::size_t; + pub fn fwrite_unlocked( + buf: *const ::c_void, + size: ::size_t, + nobj: ::size_t, + stream: *mut ::FILE, + ) -> ::size_t; + pub fn fflush_unlocked(stream: *mut ::FILE) -> ::c_int; + pub fn fgets_unlocked(buf: *mut ::c_char, size: ::c_int, stream: *mut ::FILE) -> *mut ::c_char; } cfg_if! { diff --git a/src/rust/vendor/libc/src/unix/linux_like/emscripten/lfs64.rs b/src/rust/vendor/libc/src/unix/linux_like/emscripten/lfs64.rs new file mode 100644 index 000000000..1616cc904 --- /dev/null +++ b/src/rust/vendor/libc/src/unix/linux_like/emscripten/lfs64.rs @@ -0,0 +1,213 @@ +// In-sync with ../linux/musl/lfs64.rs except for fallocate64, prlimit64 and sendfile64 + +#[inline] +pub unsafe extern "C" fn creat64(path: *const ::c_char, mode: ::mode_t) -> ::c_int { + ::creat(path, mode) +} + +#[inline] +pub unsafe extern "C" fn fgetpos64(stream: *mut ::FILE, pos: *mut ::fpos64_t) -> ::c_int { + ::fgetpos(stream, pos as *mut _) +} + +#[inline] +pub unsafe extern "C" fn fopen64(pathname: *const ::c_char, mode: *const ::c_char) -> *mut ::FILE { + ::fopen(pathname, mode) +} + +#[inline] +pub unsafe extern "C" fn freopen64( + pathname: *const ::c_char, + mode: *const ::c_char, + stream: *mut ::FILE, +) -> *mut ::FILE { + ::freopen(pathname, mode, stream) +} + +#[inline] +pub unsafe extern "C" fn fseeko64( + stream: *mut ::FILE, + offset: ::off64_t, + whence: ::c_int, +) -> ::c_int { + ::fseeko(stream, offset, whence) +} + +#[inline] +pub unsafe extern "C" fn fsetpos64(stream: *mut ::FILE, pos: *const ::fpos64_t) -> ::c_int { + ::fsetpos(stream, pos as *mut _) +} + +#[inline] +pub unsafe extern "C" fn fstat64(fildes: ::c_int, buf: *mut ::stat64) -> ::c_int { + ::fstat(fildes, buf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn fstatat64( + fd: ::c_int, + path: *const ::c_char, + buf: *mut ::stat64, + flag: ::c_int, +) -> ::c_int { + ::fstatat(fd, path, buf as *mut _, flag) +} + +#[inline] +pub unsafe extern "C" fn fstatfs64(fd: ::c_int, buf: *mut ::statfs64) -> ::c_int { + ::fstatfs(fd, buf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn fstatvfs64(fd: ::c_int, buf: *mut ::statvfs64) -> ::c_int { + ::fstatvfs(fd, buf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn ftello64(stream: *mut ::FILE) -> ::off64_t { + ::ftello(stream) +} + +#[inline] +pub unsafe extern "C" fn ftruncate64(fd: ::c_int, length: ::off64_t) -> ::c_int { + ::ftruncate(fd, length) +} + +#[inline] +pub unsafe extern "C" fn getrlimit64(resource: ::c_int, rlim: *mut ::rlimit64) -> ::c_int { + ::getrlimit(resource, rlim as *mut _) +} + +#[inline] +pub unsafe extern "C" fn lseek64(fd: ::c_int, offset: ::off64_t, whence: ::c_int) -> ::off64_t { + ::lseek(fd, offset, whence) +} + +#[inline] +pub unsafe extern "C" fn lstat64(path: *const ::c_char, buf: *mut ::stat64) -> ::c_int { + ::lstat(path, buf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn mmap64( + addr: *mut ::c_void, + length: ::size_t, + prot: ::c_int, + flags: ::c_int, + fd: ::c_int, + offset: ::off64_t, +) -> *mut ::c_void { + ::mmap(addr, length, prot, flags, fd, offset) +} + +// These functions are variadic in the C ABI since the `mode` argument is "optional". Variadic +// `extern "C"` functions are unstable in Rust so we cannot write a shim function for these +// entrypoints. See https://github.com/rust-lang/rust/issues/44930. +// +// These aliases are mostly fine though, neither function takes a LFS64-namespaced type as an +// argument, nor do their names clash with any declared types. +pub use open as open64; +pub use openat as openat64; + +#[inline] +pub unsafe extern "C" fn posix_fadvise64( + fd: ::c_int, + offset: ::off64_t, + len: ::off64_t, + advice: ::c_int, +) -> ::c_int { + ::posix_fadvise(fd, offset, len, advice) +} + +#[inline] +pub unsafe extern "C" fn posix_fallocate64( + fd: ::c_int, + offset: ::off64_t, + len: ::off64_t, +) -> ::c_int { + ::posix_fallocate(fd, offset, len) +} + +#[inline] +pub unsafe extern "C" fn pread64( + fd: ::c_int, + buf: *mut ::c_void, + count: ::size_t, + offset: ::off64_t, +) -> ::ssize_t { + ::pread(fd, buf, count, offset) +} + +#[inline] +pub unsafe extern "C" fn preadv64( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, +) -> ::ssize_t { + ::preadv(fd, iov, iovcnt, offset) +} + +#[inline] +pub unsafe extern "C" fn pwrite64( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + offset: ::off64_t, +) -> ::ssize_t { + ::pwrite(fd, buf, count, offset) +} + +#[inline] +pub unsafe extern "C" fn pwritev64( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, +) -> ::ssize_t { + ::pwritev(fd, iov, iovcnt, offset) +} + +#[inline] +pub unsafe extern "C" fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64 { + ::readdir(dirp) as *mut _ +} + +#[inline] +pub unsafe extern "C" fn readdir64_r( + dirp: *mut ::DIR, + entry: *mut ::dirent64, + result: *mut *mut ::dirent64, +) -> ::c_int { + ::readdir_r(dirp, entry as *mut _, result as *mut _) +} + +#[inline] +pub unsafe extern "C" fn setrlimit64(resource: ::c_int, rlim: *const ::rlimit64) -> ::c_int { + ::setrlimit(resource, rlim as *mut _) +} + +#[inline] +pub unsafe extern "C" fn stat64(pathname: *const ::c_char, statbuf: *mut ::stat64) -> ::c_int { + ::stat(pathname, statbuf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn statfs64(pathname: *const ::c_char, buf: *mut ::statfs64) -> ::c_int { + ::statfs(pathname, buf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn statvfs64(path: *const ::c_char, buf: *mut ::statvfs64) -> ::c_int { + ::statvfs(path, buf as *mut _) +} + +#[inline] +pub unsafe extern "C" fn tmpfile64() -> *mut ::FILE { + ::tmpfile() +} + +#[inline] +pub unsafe extern "C" fn truncate64(path: *const ::c_char, length: ::off64_t) -> ::c_int { + ::truncate(path, length) +} diff --git a/src/rust/vendor/libc/src/unix/linux_like/emscripten/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/emscripten/mod.rs index 5b947b634..1dc607496 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/emscripten/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/emscripten/mod.rs @@ -5,10 +5,6 @@ pub type dev_t = u32; pub type socklen_t = u32; pub type pthread_t = c_ulong; pub type mode_t = u32; -pub type ino64_t = u64; -pub type off64_t = i64; -pub type blkcnt64_t = i32; -pub type rlim64_t = u64; pub type shmatt_t = ::c_ulong; pub type mqd_t = ::c_int; pub type msgqnum_t = ::c_ulong; @@ -29,11 +25,23 @@ pub type blkcnt_t = i32; pub type blksize_t = c_long; pub type fsblkcnt_t = u32; pub type fsfilcnt_t = u32; -pub type rlim_t = ::c_ulonglong; +pub type rlim_t = u64; pub type c_long = i32; pub type c_ulong = u32; pub type nlink_t = u32; +pub type ino64_t = ::ino_t; +pub type off64_t = ::off_t; +pub type blkcnt64_t = ::blkcnt_t; +pub type rlim64_t = ::rlim_t; + +pub type rlimit64 = ::rlimit; +pub type flock64 = ::flock; +pub type stat64 = ::stat; +pub type statfs64 = ::statfs; +pub type statvfs64 = ::statvfs; +pub type dirent64 = ::dirent; + #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos64_t {} // FIXME: fill this out with a struct impl ::Copy for fpos64_t {} @@ -44,11 +52,6 @@ impl ::Clone for fpos64_t { } s! { - pub struct rlimit64 { - pub rlim_cur: rlim64_t, - pub rlim_max: rlim64_t, - } - pub struct glob_t { pub gl_pathc: ::size_t, pub gl_pathv: *mut *mut c_char, @@ -223,14 +226,6 @@ s! { pub l_pid: ::pid_t, } - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - pub struct pthread_attr_t { __size: [u32; 11] } @@ -260,35 +255,16 @@ s! { } pub struct stat { pub st_dev: ::dev_t, + #[cfg(not(emscripten_new_stat_abi))] __st_dev_padding: ::c_int, + #[cfg(not(emscripten_new_stat_abi))] __st_ino_truncated: ::c_long, pub st_mode: ::mode_t, pub st_nlink: ::nlink_t, pub st_uid: ::uid_t, pub st_gid: ::gid_t, pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_int, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::ino_t, - } - - pub struct stat64 { - pub st_dev: ::dev_t, - __st_dev_padding: ::c_int, - __st_ino_truncated: ::c_long, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, + #[cfg(not(emscripten_new_stat_abi))] __st_rdev_padding: ::c_int, pub st_size: ::off_t, pub st_blksize: ::blksize_t, @@ -364,37 +340,6 @@ s! { _align: [usize; 0], } - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u32, - pub f_bfree: u32, - pub f_bavail: u32, - pub f_files: u32, - pub f_ffree: u32, - pub f_favail: u32, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - pub struct arpd_request { pub req: ::c_ushort, pub ip: u32, @@ -414,14 +359,6 @@ s_no_extra_traits! { pub d_name: [::c_char; 256], } - pub struct dirent64 { - pub d_ino: ::ino64_t, - pub d_off: ::off64_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], - } - pub struct sysinfo { pub uptime: ::c_ulong, pub loads: [::c_ulong; 3], @@ -485,41 +422,6 @@ cfg_if! { } } - impl PartialEq for dirent64 { - fn eq(&self, other: &dirent64) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent64 {} - impl ::fmt::Debug for dirent64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent64") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - impl ::hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - impl PartialEq for sysinfo { fn eq(&self, other: &sysinfo) -> bool { self.uptime == other.uptime @@ -1328,7 +1230,10 @@ pub const POSIX_FADV_NOREUSE: ::c_int = 5; pub const POSIX_MADV_DONTNEED: ::c_int = 0; pub const RLIM_INFINITY: ::rlim_t = !0; +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: ::c_int = 15; +#[allow(deprecated)] +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::c_int = RLIMIT_NLIMITS; pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; @@ -1757,8 +1662,6 @@ safe_f! { } extern "C" { - pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; @@ -1779,17 +1682,6 @@ extern "C" { pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; pub fn __errno_location() -> *mut ::c_int; - pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn freopen64( - filename: *const c_char, - mode: *const c_char, - file: *mut ::FILE, - ) -> *mut ::FILE; - pub fn tmpfile64() -> *mut ::FILE; - pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; - pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; - pub fn fseeko64(stream: *mut ::FILE, offset: ::off64_t, whence: ::c_int) -> ::c_int; - pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; @@ -1810,7 +1702,7 @@ extern "C" { host: *mut ::c_char, hostlen: ::socklen_t, serv: *mut ::c_char, - sevlen: ::socklen_t, + servlen: ::socklen_t, flags: ::c_int, ) -> ::c_int; pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; @@ -1886,6 +1778,10 @@ extern "C" { pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; } +// Alias to 64 to mimic glibc's LFS64 support +mod lfs64; +pub use self::lfs64::*; + cfg_if! { if #[cfg(libc_align)] { #[macro_use] diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/align.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/align.rs index 97f811dac..1036e23dc 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/align.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/align.rs @@ -5,6 +5,7 @@ macro_rules! expand_align { target_arch = "x86_64", target_arch = "powerpc64", target_arch = "mips64", + target_arch = "mips64r6", target_arch = "s390x", target_arch = "sparc64", target_arch = "aarch64", @@ -16,6 +17,7 @@ macro_rules! expand_align { target_arch = "x86_64", target_arch = "powerpc64", target_arch = "mips64", + target_arch = "mips64r6", target_arch = "s390x", target_arch = "sparc64", target_arch = "aarch64", @@ -83,9 +85,11 @@ macro_rules! expand_align { #[cfg_attr(all(target_pointer_width = "32", any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "hexagon", target_arch = "m68k", + target_arch = "csky", target_arch = "powerpc", target_arch = "sparc", target_arch = "x86_64", @@ -93,9 +97,11 @@ macro_rules! expand_align { repr(align(4)))] #[cfg_attr(any(target_pointer_width = "64", not(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "hexagon", target_arch = "m68k", + target_arch = "csky", target_arch = "powerpc", target_arch = "sparc", target_arch = "x86_64", @@ -108,9 +114,11 @@ macro_rules! expand_align { #[cfg_attr(all(target_pointer_width = "32", any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "hexagon", target_arch = "m68k", + target_arch = "csky", target_arch = "powerpc", target_arch = "sparc", target_arch = "x86_64", @@ -118,6 +126,7 @@ macro_rules! expand_align { repr(align(4)))] #[cfg_attr(any(target_pointer_width = "64", not(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "hexagon", target_arch = "m68k", @@ -132,9 +141,11 @@ macro_rules! expand_align { #[cfg_attr(all(target_pointer_width = "32", any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "hexagon", target_arch = "m68k", + target_arch = "csky", target_arch = "powerpc", target_arch = "sparc", target_arch = "x86_64", @@ -142,9 +153,11 @@ macro_rules! expand_align { repr(align(4)))] #[cfg_attr(any(target_pointer_width = "64", not(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "hexagon", target_arch = "m68k", + target_arch = "csky", target_arch = "powerpc", target_arch = "sparc", target_arch = "x86_64", diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/arch/generic/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/arch/generic/mod.rs index 7bc94c6f0..2f437e16d 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/arch/generic/mod.rs @@ -95,6 +95,7 @@ cfg_if! { if #[cfg(all(any(target_arch = "x86", target_arch = "x86_64", target_arch = "aarch64", + target_arch = "csky", target_arch = "loongarch64"), not(any(target_env = "musl", target_env = "ohos"))))] { pub const SO_TIMESTAMP_NEW: ::c_int = 63; @@ -115,6 +116,7 @@ cfg_if! { target_arch = "aarch64", target_arch = "riscv64", target_arch = "s390x", + target_arch = "csky", target_arch = "loongarch64"))] { pub const FICLONE: ::c_ulong = 0x40049409; pub const FICLONERANGE: ::c_ulong = 0x4020940D; @@ -209,6 +211,38 @@ pub const BLKIOOPT: ::Ioctl = 0x1279; pub const BLKSSZGET: ::Ioctl = 0x1268; pub const BLKPBSZGET: ::Ioctl = 0x127B; +cfg_if! { + // Those type are constructed using the _IOC macro + // DD-SS_SSSS_SSSS_SSSS-TTTT_TTTT-NNNN_NNNN + // where D stands for direction (either None (00), Read (01) or Write (11)) + // where S stands for size (int, long, struct...) + // where T stands for type ('f','v','X'...) + // where N stands for NR (NumbeR) + if #[cfg(any(target_arch = "x86", target_arch = "arm", target_arch = "csky"))] { + pub const FS_IOC_GETFLAGS: ::Ioctl = 0x80046601; + pub const FS_IOC_SETFLAGS: ::Ioctl = 0x40046602; + pub const FS_IOC_GETVERSION: ::Ioctl = 0x80047601; + pub const FS_IOC_SETVERSION: ::Ioctl = 0x40047602; + pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x80046601; + pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x40046602; + pub const FS_IOC32_GETVERSION: ::Ioctl = 0x80047601; + pub const FS_IOC32_SETVERSION: ::Ioctl = 0x40047602; + } else if #[cfg(any(target_arch = "x86_64", + target_arch = "riscv64", + target_arch = "aarch64", + target_arch = "s390x", + target_arch = "loongarch64"))] { + pub const FS_IOC_GETFLAGS: ::Ioctl = 0x80086601; + pub const FS_IOC_SETFLAGS: ::Ioctl = 0x40086602; + pub const FS_IOC_GETVERSION: ::Ioctl = 0x80087601; + pub const FS_IOC_SETVERSION: ::Ioctl = 0x40087602; + pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x80046601; + pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x40046602; + pub const FS_IOC32_GETVERSION: ::Ioctl = 0x80047601; + pub const FS_IOC32_SETVERSION: ::Ioctl = 0x40047602; + } +} + cfg_if! { if #[cfg(any(target_arch = "arm", target_arch = "s390x"))] { @@ -255,6 +289,8 @@ cfg_if! { pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; + #[allow(deprecated)] + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { @@ -275,16 +311,21 @@ cfg_if! { pub const RLIMIT_NICE: ::c_int = 13; pub const RLIMIT_RTPRIO: ::c_int = 14; pub const RLIMIT_RTTIME: ::c_int = 15; + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::c_int = 15; + #[allow(deprecated)] + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS; } } cfg_if! { if #[cfg(target_env = "gnu")] { + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; } else if #[cfg(target_env = "uclibc")] { + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::__rlimit_resource_t = 15; } } diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/arch/mips/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/arch/mips/mod.rs index 34c00a293..6a96aa9c3 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/arch/mips/mod.rs @@ -193,6 +193,34 @@ pub const BLKIOOPT: ::Ioctl = 0x20001279; pub const BLKSSZGET: ::Ioctl = 0x20001268; pub const BLKPBSZGET: ::Ioctl = 0x2000127B; +cfg_if! { + // Those type are constructed using the _IOC macro + // DD-SS_SSSS_SSSS_SSSS-TTTT_TTTT-NNNN_NNNN + // where D stands for direction (either None (00), Read (01) or Write (11)) + // where S stands for size (int, long, struct...) + // where T stands for type ('f','v','X'...) + // where N stands for NR (NumbeR) + if #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] { + pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40046601; + pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80046602; + pub const FS_IOC_GETVERSION: ::Ioctl = 0x40047601; + pub const FS_IOC_SETVERSION: ::Ioctl = 0x80047602; + pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x40046601; + pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; + pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; + pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; + } else if #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))] { + pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40086601; + pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80086602; + pub const FS_IOC_GETVERSION: ::Ioctl = 0x40087601; + pub const FS_IOC_SETVERSION: ::Ioctl = 0x80087602; + pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x40046601; + pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; + pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; + pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; + } +} + cfg_if! { if #[cfg(target_env = "musl")] { pub const TIOCGRS485: ::Ioctl = 0x4020542e; @@ -237,6 +265,8 @@ cfg_if! { pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; + #[allow(deprecated)] + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; } else if #[cfg(target_env = "musl")] { @@ -257,7 +287,10 @@ cfg_if! { pub const RLIMIT_NICE: ::c_int = 13; pub const RLIMIT_RTPRIO: ::c_int = 14; pub const RLIMIT_RTTIME: ::c_int = 15; + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::c_int = 15; + #[allow(deprecated)] + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS; pub const RLIM_INFINITY: ::rlim_t = !0; } @@ -265,14 +298,16 @@ cfg_if! { cfg_if! { if #[cfg(target_env = "gnu")] { + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; } else if #[cfg(target_env = "uclibc")] { + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::__rlimit_resource_t = 15; } } cfg_if! { - if #[cfg(target_arch = "mips64", + if #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"), any(target_env = "gnu", target_env = "uclibc"))] { pub const RLIM_INFINITY: ::rlim_t = !0; @@ -280,7 +315,7 @@ cfg_if! { } cfg_if! { - if #[cfg(target_arch = "mips", + if #[cfg(any(target_arch = "mips", target_arch = "mips32r6"), any(target_env = "gnu", target_env = "uclibc"))] { pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/arch/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/arch/mod.rs index c1528f593..7f6ddc5a7 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/arch/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/arch/mod.rs @@ -1,5 +1,8 @@ cfg_if! { - if #[cfg(any(target_arch = "mips", target_arch = "mips64"))] { + if #[cfg(any(target_arch = "mips", + target_arch = "mips32r6", + target_arch = "mips64", + target_arch = "mips64r6"))] { mod mips; pub use self::mips::*; } else if #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))] { diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/arch/powerpc/mod.rs index 64c3eaab5..27834dbfe 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -179,6 +179,34 @@ pub const BLKSSZGET: ::Ioctl = 0x20001268; pub const BLKPBSZGET: ::Ioctl = 0x2000127B; //pub const FIOQSIZE: ::Ioctl = 0x40086680; +cfg_if! { + // Those type are constructed using the _IOC macro + // DD-SS_SSSS_SSSS_SSSS-TTTT_TTTT-NNNN_NNNN + // where D stands for direction (either None (00), Read (01) or Write (11)) + // where S stands for size (int, long, struct...) + // where T stands for type ('f','v','X'...) + // where N stands for NR (NumbeR) + if #[cfg(target_arch = "powerpc")] { + pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40046601; + pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80046602; + pub const FS_IOC_GETVERSION: ::Ioctl = 0x40047601; + pub const FS_IOC_SETVERSION: ::Ioctl = 0x80047602; + pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x40046601; + pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; + pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; + pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; + } else if #[cfg(target_arch = "powerpc64")] { + pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40086601; + pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80086602; + pub const FS_IOC_GETVERSION: ::Ioctl = 0x40087601; + pub const FS_IOC_SETVERSION: ::Ioctl = 0x80087602; + pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x40046601; + pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; + pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; + pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; + } +} + pub const TIOCM_LE: ::c_int = 0x001; pub const TIOCM_DTR: ::c_int = 0x002; pub const TIOCM_RTS: ::c_int = 0x004; @@ -215,7 +243,10 @@ cfg_if! { pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; + #[allow(deprecated)] + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; } else if #[cfg(target_env = "musl")] { @@ -236,7 +267,10 @@ cfg_if! { pub const RLIMIT_NICE: ::c_int = 13; pub const RLIMIT_RTPRIO: ::c_int = 14; pub const RLIMIT_RTTIME: ::c_int = 15; + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::c_int = 15; + #[allow(deprecated)] + #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS; } } diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/arch/sparc/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/arch/sparc/mod.rs index da3e388e3..fce466c77 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/arch/sparc/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/arch/sparc/mod.rs @@ -216,7 +216,10 @@ pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; +#[allow(deprecated)] +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; cfg_if! { @@ -226,3 +229,31 @@ cfg_if! { pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; } } + +cfg_if! { + // Those type are constructed using the _IOC macro + // DD-SS_SSSS_SSSS_SSSS-TTTT_TTTT-NNNN_NNNN + // where D stands for direction (either None (00), Read (01) or Write (11)) + // where S stands for size (int, long, struct...) + // where T stands for type ('f','v','X'...) + // where N stands for NR (NumbeR) + if #[cfg(target_arch = "sparc")] { + pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40046601; + pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80046602; + pub const FS_IOC_GETVERSION: ::Ioctl = 0x40047601; + pub const FS_IOC_SETVERSION: ::Ioctl = 0x80047602; + pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x40046601; + pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; + pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; + pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; + } else if #[cfg(target_arch = "sparc64")] { + pub const FS_IOC_GETFLAGS: ::Ioctl = 0x40086601; + pub const FS_IOC_SETFLAGS: ::Ioctl = 0x80086602; + pub const FS_IOC_GETVERSION: ::Ioctl = 0x40087601; + pub const FS_IOC_SETVERSION: ::Ioctl = 0x80087602; + pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x40046601; + pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x80046602; + pub const FS_IOC32_GETVERSION: ::Ioctl = 0x40047601; + pub const FS_IOC32_SETVERSION: ::Ioctl = 0x80047602; + } +} diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index fd690a17e..89c93aba8 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -162,12 +162,6 @@ s! { pub ss_size: ::size_t } - pub struct seccomp_notif_sizes { - pub seccomp_notif: ::__u16, - pub seccomp_notif_resp: ::__u16, - pub seccomp_data: ::__u16, - } - pub struct mcontext_t { pub trap_no: ::c_ulong, pub error_code: ::c_ulong, @@ -341,6 +335,7 @@ pub const SOCK_DGRAM: ::c_int = 2; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const POLLWRNORM: ::c_short = 0x100; pub const POLLWRBAND: ::c_short = 0x200; @@ -465,11 +460,6 @@ pub const B3000000: ::speed_t = 0o010015; pub const B3500000: ::speed_t = 0o010016; pub const B4000000: ::speed_t = 0o010017; -pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; -pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; -pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; -pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; - pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/csky/align.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/csky/align.rs new file mode 100644 index 000000000..825546be9 --- /dev/null +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/csky/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [i64; 2] + } +} diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/csky/mod.rs new file mode 100644 index 000000000..5e92e3007 --- /dev/null +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -0,0 +1,741 @@ +pub type c_char = u8; +pub type wchar_t = u32; + +s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct statfs { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_ushort, + __pad1: ::c_ushort, + pub __seq: ::c_ushort, + __pad2: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } + + pub struct stat64 { + pub st_dev: ::dev_t, + __pad1: ::c_uint, + __st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: ::c_uint, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_ino: ::ino64_t, + } + + pub struct statfs64 { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + pub f_spare: [::__fsword_t; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + __unused1: ::c_ulong, + pub shm_dtime: ::time_t, + __unused2: ::c_ulong, + pub shm_ctime: ::time_t, + __unused3: ::c_ulong, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __unused4: ::c_ulong, + __unused5: ::c_ulong + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + __glibc_reserved1: ::c_ulong, + pub msg_rtime: ::time_t, + __glibc_reserved2: ::c_ulong, + pub msg_ctime: ::time_t, + __glibc_reserved3: ::c_ulong, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __glibc_reserved4: ::c_ulong, + __glibc_reserved5: ::c_ulong, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } +} + +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const O_DIRECT: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_LARGEFILE: ::c_int = 0o100000; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 0x101000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x800; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const EDEADLOCK: ::c_int = 35; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; + +pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const SFD_NONBLOCK: ::c_int = 0x0800; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] +pub const SIGUNUSED: ::c_int = 31; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; +pub const EXTPROC: ::tcflag_t = 0x00010000; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +// Syscall table +pub const SYS_read: ::c_long = 63; +pub const SYS_write: ::c_long = 64; +pub const SYS_close: ::c_long = 57; +pub const SYS_fstat: ::c_long = 80; +pub const SYS_lseek: ::c_long = 62; +pub const SYS_mmap: ::c_long = 222; +pub const SYS_mprotect: ::c_long = 226; +pub const SYS_munmap: ::c_long = 215; +pub const SYS_brk: ::c_long = 214; +pub const SYS_rt_sigaction: ::c_long = 134; +pub const SYS_rt_sigprocmask: ::c_long = 135; +pub const SYS_rt_sigreturn: ::c_long = 139; +pub const SYS_ioctl: ::c_long = 29; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_readv: ::c_long = 65; +pub const SYS_writev: ::c_long = 66; +pub const SYS_sched_yield: ::c_long = 124; +pub const SYS_mremap: ::c_long = 216; +pub const SYS_msync: ::c_long = 227; +pub const SYS_mincore: ::c_long = 232; +pub const SYS_madvise: ::c_long = 233; +pub const SYS_shmget: ::c_long = 194; +pub const SYS_shmat: ::c_long = 196; +pub const SYS_shmctl: ::c_long = 195; +pub const SYS_dup: ::c_long = 23; +pub const SYS_nanosleep: ::c_long = 101; +pub const SYS_getitimer: ::c_long = 102; +pub const SYS_setitimer: ::c_long = 103; +pub const SYS_getpid: ::c_long = 172; +pub const SYS_sendfile: ::c_long = 71; +pub const SYS_socket: ::c_long = 198; +pub const SYS_connect: ::c_long = 203; +pub const SYS_accept: ::c_long = 202; +pub const SYS_sendto: ::c_long = 206; +pub const SYS_recvfrom: ::c_long = 207; +pub const SYS_sendmsg: ::c_long = 211; +pub const SYS_recvmsg: ::c_long = 212; +pub const SYS_shutdown: ::c_long = 210; +pub const SYS_bind: ::c_long = 200; +pub const SYS_listen: ::c_long = 201; +pub const SYS_getsockname: ::c_long = 204; +pub const SYS_getpeername: ::c_long = 205; +pub const SYS_socketpair: ::c_long = 199; +pub const SYS_setsockopt: ::c_long = 208; +pub const SYS_getsockopt: ::c_long = 209; +pub const SYS_clone: ::c_long = 220; +pub const SYS_execve: ::c_long = 221; +pub const SYS_exit: ::c_long = 93; +pub const SYS_wait4: ::c_long = 260; +pub const SYS_kill: ::c_long = 129; +pub const SYS_uname: ::c_long = 160; +pub const SYS_semget: ::c_long = 190; +pub const SYS_semop: ::c_long = 193; +pub const SYS_semctl: ::c_long = 191; +pub const SYS_shmdt: ::c_long = 197; +pub const SYS_msgget: ::c_long = 186; +pub const SYS_msgsnd: ::c_long = 189; +pub const SYS_msgrcv: ::c_long = 188; +pub const SYS_msgctl: ::c_long = 187; +pub const SYS_fcntl: ::c_long = 25; +pub const SYS_flock: ::c_long = 32; +pub const SYS_fsync: ::c_long = 82; +pub const SYS_fdatasync: ::c_long = 83; +pub const SYS_truncate: ::c_long = 45; +pub const SYS_ftruncate: ::c_long = 46; +pub const SYS_getcwd: ::c_long = 17; +pub const SYS_chdir: ::c_long = 49; +pub const SYS_fchdir: ::c_long = 50; +pub const SYS_fchmod: ::c_long = 52; +pub const SYS_fchown: ::c_long = 55; +pub const SYS_umask: ::c_long = 166; +pub const SYS_gettimeofday: ::c_long = 169; +pub const SYS_getrlimit: ::c_long = 163; +pub const SYS_getrusage: ::c_long = 165; +pub const SYS_sysinfo: ::c_long = 179; +pub const SYS_times: ::c_long = 153; +pub const SYS_ptrace: ::c_long = 117; +pub const SYS_getuid: ::c_long = 174; +pub const SYS_syslog: ::c_long = 116; +pub const SYS_getgid: ::c_long = 176; +pub const SYS_setuid: ::c_long = 146; +pub const SYS_setgid: ::c_long = 144; +pub const SYS_geteuid: ::c_long = 175; +pub const SYS_getegid: ::c_long = 177; +pub const SYS_setpgid: ::c_long = 154; +pub const SYS_getppid: ::c_long = 173; +pub const SYS_setsid: ::c_long = 157; +pub const SYS_setreuid: ::c_long = 145; +pub const SYS_setregid: ::c_long = 143; +pub const SYS_getgroups: ::c_long = 158; +pub const SYS_setgroups: ::c_long = 159; +pub const SYS_setresuid: ::c_long = 147; +pub const SYS_getresuid: ::c_long = 148; +pub const SYS_setresgid: ::c_long = 149; +pub const SYS_getresgid: ::c_long = 150; +pub const SYS_getpgid: ::c_long = 155; +pub const SYS_setfsuid: ::c_long = 151; +pub const SYS_setfsgid: ::c_long = 152; +pub const SYS_getsid: ::c_long = 156; +pub const SYS_capget: ::c_long = 90; +pub const SYS_capset: ::c_long = 91; +pub const SYS_rt_sigpending: ::c_long = 136; +pub const SYS_rt_sigtimedwait: ::c_long = 137; +pub const SYS_rt_sigqueueinfo: ::c_long = 138; +pub const SYS_rt_sigsuspend: ::c_long = 133; +pub const SYS_sigaltstack: ::c_long = 132; +pub const SYS_personality: ::c_long = 92; +pub const SYS_statfs: ::c_long = 43; +pub const SYS_fstatfs: ::c_long = 44; +pub const SYS_getpriority: ::c_long = 141; +pub const SYS_setpriority: ::c_long = 140; +pub const SYS_sched_setparam: ::c_long = 118; +pub const SYS_sched_getparam: ::c_long = 121; +pub const SYS_sched_setscheduler: ::c_long = 119; +pub const SYS_sched_getscheduler: ::c_long = 120; +pub const SYS_sched_get_priority_max: ::c_long = 125; +pub const SYS_sched_get_priority_min: ::c_long = 126; +pub const SYS_sched_rr_get_interval: ::c_long = 127; +pub const SYS_mlock: ::c_long = 228; +pub const SYS_munlock: ::c_long = 229; +pub const SYS_mlockall: ::c_long = 230; +pub const SYS_munlockall: ::c_long = 231; +pub const SYS_vhangup: ::c_long = 58; +pub const SYS_pivot_root: ::c_long = 41; +pub const SYS_prctl: ::c_long = 167; +pub const SYS_adjtimex: ::c_long = 171; +pub const SYS_setrlimit: ::c_long = 164; +pub const SYS_chroot: ::c_long = 51; +pub const SYS_sync: ::c_long = 81; +pub const SYS_acct: ::c_long = 89; +pub const SYS_settimeofday: ::c_long = 170; +pub const SYS_mount: ::c_long = 40; +pub const SYS_umount2: ::c_long = 39; +pub const SYS_swapon: ::c_long = 224; +pub const SYS_swapoff: ::c_long = 225; +pub const SYS_reboot: ::c_long = 142; +pub const SYS_sethostname: ::c_long = 161; +pub const SYS_setdomainname: ::c_long = 162; +pub const SYS_init_module: ::c_long = 105; +pub const SYS_delete_module: ::c_long = 106; +pub const SYS_quotactl: ::c_long = 60; +pub const SYS_nfsservctl: ::c_long = 42; +pub const SYS_gettid: ::c_long = 178; +pub const SYS_readahead: ::c_long = 213; +pub const SYS_setxattr: ::c_long = 5; +pub const SYS_lsetxattr: ::c_long = 6; +pub const SYS_fsetxattr: ::c_long = 7; +pub const SYS_getxattr: ::c_long = 8; +pub const SYS_lgetxattr: ::c_long = 9; +pub const SYS_fgetxattr: ::c_long = 10; +pub const SYS_listxattr: ::c_long = 11; +pub const SYS_llistxattr: ::c_long = 12; +pub const SYS_flistxattr: ::c_long = 13; +pub const SYS_removexattr: ::c_long = 14; +pub const SYS_lremovexattr: ::c_long = 15; +pub const SYS_fremovexattr: ::c_long = 16; +pub const SYS_tkill: ::c_long = 130; +pub const SYS_futex: ::c_long = 98; +pub const SYS_sched_setaffinity: ::c_long = 122; +pub const SYS_sched_getaffinity: ::c_long = 123; +pub const SYS_io_setup: ::c_long = 0; +pub const SYS_io_destroy: ::c_long = 1; +pub const SYS_io_getevents: ::c_long = 4; +pub const SYS_io_submit: ::c_long = 2; +pub const SYS_io_cancel: ::c_long = 3; +pub const SYS_lookup_dcookie: ::c_long = 18; +pub const SYS_remap_file_pages: ::c_long = 234; +pub const SYS_getdents64: ::c_long = 61; +pub const SYS_set_tid_address: ::c_long = 96; +pub const SYS_restart_syscall: ::c_long = 128; +pub const SYS_semtimedop: ::c_long = 192; +pub const SYS_fadvise64: ::c_long = 223; +pub const SYS_timer_create: ::c_long = 107; +pub const SYS_timer_settime: ::c_long = 110; +pub const SYS_timer_gettime: ::c_long = 108; +pub const SYS_timer_getoverrun: ::c_long = 109; +pub const SYS_timer_delete: ::c_long = 111; +pub const SYS_clock_settime: ::c_long = 112; +pub const SYS_clock_gettime: ::c_long = 113; +pub const SYS_clock_getres: ::c_long = 114; +pub const SYS_clock_nanosleep: ::c_long = 115; +pub const SYS_exit_group: ::c_long = 94; +pub const SYS_epoll_ctl: ::c_long = 21; +pub const SYS_tgkill: ::c_long = 131; +pub const SYS_mbind: ::c_long = 235; +pub const SYS_set_mempolicy: ::c_long = 237; +pub const SYS_get_mempolicy: ::c_long = 236; +pub const SYS_mq_open: ::c_long = 180; +pub const SYS_mq_unlink: ::c_long = 181; +pub const SYS_mq_timedsend: ::c_long = 182; +pub const SYS_mq_timedreceive: ::c_long = 183; +pub const SYS_mq_notify: ::c_long = 184; +pub const SYS_mq_getsetattr: ::c_long = 185; +pub const SYS_kexec_load: ::c_long = 104; +pub const SYS_waitid: ::c_long = 95; +pub const SYS_add_key: ::c_long = 217; +pub const SYS_request_key: ::c_long = 218; +pub const SYS_keyctl: ::c_long = 219; +pub const SYS_ioprio_set: ::c_long = 30; +pub const SYS_ioprio_get: ::c_long = 31; +pub const SYS_inotify_add_watch: ::c_long = 27; +pub const SYS_inotify_rm_watch: ::c_long = 28; +pub const SYS_migrate_pages: ::c_long = 238; +pub const SYS_openat: ::c_long = 56; +pub const SYS_mkdirat: ::c_long = 34; +pub const SYS_mknodat: ::c_long = 33; +pub const SYS_fchownat: ::c_long = 54; +pub const SYS_newfstatat: ::c_long = 79; +pub const SYS_unlinkat: ::c_long = 35; +pub const SYS_linkat: ::c_long = 37; +pub const SYS_symlinkat: ::c_long = 36; +pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_fchmodat: ::c_long = 53; +pub const SYS_faccessat: ::c_long = 48; +pub const SYS_pselect6: ::c_long = 72; +pub const SYS_ppoll: ::c_long = 73; +pub const SYS_unshare: ::c_long = 97; +pub const SYS_set_robust_list: ::c_long = 99; +pub const SYS_get_robust_list: ::c_long = 100; +pub const SYS_splice: ::c_long = 76; +pub const SYS_tee: ::c_long = 77; +pub const SYS_sync_file_range: ::c_long = 84; +pub const SYS_vmsplice: ::c_long = 75; +pub const SYS_move_pages: ::c_long = 239; +pub const SYS_utimensat: ::c_long = 88; +pub const SYS_epoll_pwait: ::c_long = 22; +pub const SYS_timerfd_create: ::c_long = 85; +pub const SYS_fallocate: ::c_long = 47; +pub const SYS_timerfd_settime: ::c_long = 86; +pub const SYS_timerfd_gettime: ::c_long = 87; +pub const SYS_accept4: ::c_long = 242; +pub const SYS_signalfd4: ::c_long = 74; +pub const SYS_eventfd2: ::c_long = 19; +pub const SYS_epoll_create1: ::c_long = 20; +pub const SYS_dup3: ::c_long = 24; +pub const SYS_pipe2: ::c_long = 59; +pub const SYS_inotify_init1: ::c_long = 26; +pub const SYS_preadv: ::c_long = 69; +pub const SYS_pwritev: ::c_long = 70; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; +pub const SYS_perf_event_open: ::c_long = 241; +pub const SYS_recvmmsg: ::c_long = 243; +pub const SYS_fanotify_init: ::c_long = 262; +pub const SYS_fanotify_mark: ::c_long = 263; +pub const SYS_prlimit64: ::c_long = 261; +pub const SYS_name_to_handle_at: ::c_long = 264; +pub const SYS_open_by_handle_at: ::c_long = 265; +pub const SYS_clock_adjtime: ::c_long = 266; +pub const SYS_syncfs: ::c_long = 267; +pub const SYS_sendmmsg: ::c_long = 269; +pub const SYS_setns: ::c_long = 268; +pub const SYS_getcpu: ::c_long = 168; +pub const SYS_process_vm_readv: ::c_long = 270; +pub const SYS_process_vm_writev: ::c_long = 271; +pub const SYS_kcmp: ::c_long = 272; +pub const SYS_finit_module: ::c_long = 273; +pub const SYS_sched_setattr: ::c_long = 274; +pub const SYS_sched_getattr: ::c_long = 275; +pub const SYS_renameat2: ::c_long = 276; +pub const SYS_seccomp: ::c_long = 277; +pub const SYS_getrandom: ::c_long = 278; +pub const SYS_memfd_create: ::c_long = 279; +pub const SYS_bpf: ::c_long = 280; +pub const SYS_execveat: ::c_long = 281; +pub const SYS_userfaultfd: ::c_long = 282; +pub const SYS_membarrier: ::c_long = 283; +pub const SYS_mlock2: ::c_long = 284; +pub const SYS_copy_file_range: ::c_long = 285; +pub const SYS_preadv2: ::c_long = 286; +pub const SYS_pwritev2: ::c_long = 287; +pub const SYS_pkey_mprotect: ::c_long = 288; +pub const SYS_pkey_alloc: ::c_long = 289; +pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; +pub const SYS_rseq: ::c_long = 293; +pub const SYS_syscall: ::c_long = 294; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_memfd_secret: ::c_long = 447; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index 69725ee7c..8ca7d3d21 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -293,6 +293,7 @@ pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const POLLWRNORM: ::c_short = 0x100; pub const POLLWRBAND: ::c_short = 0x200; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 6a03f0ba8..fa2707500 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -719,6 +719,7 @@ pub const RTLD_NOLOAD: ::c_int = 0x8; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/mod.rs index 66d1d016f..d5b11347e 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -43,34 +43,34 @@ cfg_if! { s! { pub struct stat { - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] pub st_dev: ::dev_t, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] pub st_dev: ::c_ulong, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] __pad1: ::c_short, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad1: [::c_long; 3], pub st_ino: ::ino_t, pub st_mode: ::mode_t, pub st_nlink: ::nlink_t, pub st_uid: ::uid_t, pub st_gid: ::gid_t, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] pub st_rdev: ::dev_t, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] pub st_rdev: ::c_ulong, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] __pad2: ::c_short, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad2: [::c_long; 2], pub st_size: ::off_t, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad3: ::c_long, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] pub st_blksize: ::blksize_t, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] pub st_blocks: ::blkcnt_t, pub st_atime: ::time_t, pub st_atime_nsec: ::c_long, @@ -78,15 +78,15 @@ s! { pub st_mtime_nsec: ::c_long, pub st_ctime: ::time_t, pub st_ctime_nsec: ::c_long, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] __unused4: ::c_long, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] __unused5: ::c_long, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] pub st_blksize: ::blksize_t, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] pub st_blocks: ::blkcnt_t, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad5: [::c_long; 14], } @@ -140,12 +140,12 @@ s! { #[cfg(target_arch = "powerpc")] __reserved: ::__syscall_ulong_t, pub sem_otime: ::time_t, - #[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6", target_arch = "powerpc")))] __reserved: ::__syscall_ulong_t, #[cfg(target_arch = "powerpc")] __reserved2: ::__syscall_ulong_t, pub sem_ctime: ::time_t, - #[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6", target_arch = "powerpc")))] __reserved2: ::__syscall_ulong_t, pub sem_nsems: ::__syscall_ulong_t, __glibc_reserved3: ::__syscall_ulong_t, @@ -337,7 +337,7 @@ cfg_if! { } else if #[cfg(target_arch = "arm")] { mod arm; pub use self::arm::*; - } else if #[cfg(target_arch = "mips")] { + } else if #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] { mod mips; pub use self::mips::*; } else if #[cfg(target_arch = "m68k")] { @@ -352,6 +352,9 @@ cfg_if! { } else if #[cfg(target_arch = "riscv32")] { mod riscv32; pub use self::riscv32::*; + } else if #[cfg(target_arch = "csky")] { + mod csky; + pub use self::csky::*; } else { // Unknown target_arch } diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/powerpc.rs index e70b216bf..dd5732e0d 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -293,6 +293,7 @@ pub const SOCK_DGRAM: ::c_int = 2; pub const MCL_CURRENT: ::c_int = 0x2000; pub const MCL_FUTURE: ::c_int = 0x4000; +pub const MCL_ONFAULT: ::c_int = 0x8000; pub const POLLWRNORM: ::c_short = 0x100; pub const POLLWRBAND: ::c_short = 0x200; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index f3b130cbc..65b7aaa78 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -393,6 +393,7 @@ pub const EISNAM: ::c_int = 120; pub const EREMOTEIO: ::c_int = 121; pub const MCL_CURRENT: ::c_int = 1; pub const MCL_FUTURE: ::c_int = 2; +pub const MCL_ONFAULT: ::c_int = 4; pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; pub const CBAUD: ::tcflag_t = 4111; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 57ad9fe8e..da9cf29c4 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -363,6 +363,7 @@ pub const EREMOTEIO: ::c_int = 121; pub const MCL_CURRENT: ::c_int = 0x2000; pub const MCL_FUTURE: ::c_int = 0x4000; +pub const MCL_ONFAULT: ::c_int = 0x8000; pub const SIGSTKSZ: ::size_t = 16384; pub const MINSIGSTKSZ: ::size_t = 4096; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 93622387e..27f477bb4 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -236,11 +236,6 @@ s! { pub ss_size: ::size_t } - pub struct seccomp_notif_sizes { - pub seccomp_notif: ::__u16, - pub seccomp_notif_resp: ::__u16, - pub seccomp_data: ::__u16, - } } s_no_extra_traits! { @@ -507,6 +502,7 @@ pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const POLLWRNORM: ::c_short = 0x100; pub const POLLWRBAND: ::c_short = 0x200; @@ -1089,11 +1085,6 @@ pub const REG_EFL: ::c_int = 16; pub const REG_UESP: ::c_int = 17; pub const REG_SS: ::c_int = 18; -pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; -pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; -pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; -pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; - extern "C" { pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs index 06173be66..a035773c7 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs @@ -27,13 +27,6 @@ s! { __reserved: [[u64; 32]; 16], } - #[repr(align(16))] - pub struct user_fpsimd_struct { - pub vregs: [[u64; 2]; 32], - pub fpsr: ::c_uint, - pub fpcr: ::c_uint, - } - #[repr(align(8))] pub struct clone_args { pub flags: ::c_ulonglong, diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/fallback.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/fallback.rs new file mode 100644 index 000000000..398fbb537 --- /dev/null +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/fallback.rs @@ -0,0 +1,8 @@ +s! { + #[repr(align(16))] + pub struct user_fpsimd_struct { + pub vregs: [[u64; 2]; 32], + pub fpsr: ::c_uint, + pub fpcr: ::c_uint, + } +} diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index f46ea941b..284a1788f 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -197,11 +197,6 @@ s! { pub ss_size: ::size_t } - pub struct seccomp_notif_sizes { - pub seccomp_notif: ::__u16, - pub seccomp_notif_resp: ::__u16, - pub seccomp_data: ::__u16, - } } pub const VEOF: usize = 4; @@ -423,6 +418,7 @@ pub const EDEADLOCK: ::c_int = 35; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const SIGSTKSZ: ::size_t = 16384; pub const MINSIGSTKSZ: ::size_t = 5120; @@ -512,11 +508,6 @@ pub const B3000000: ::speed_t = 0o010015; pub const B3500000: ::speed_t = 0o010016; pub const B4000000: ::speed_t = 0o010017; -pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; -pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; -pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; -pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; - pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; @@ -902,6 +893,9 @@ pub const SYS_process_mrelease: ::c_long = 448; pub const SYS_futex_waitv: ::c_long = 449; pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const PROT_BTI: ::c_int = 0x10; +pub const PROT_MTE: ::c_int = 0x20; + extern "C" { pub fn sysctl( name: *mut ::c_int, @@ -928,11 +922,16 @@ cfg_if! { mod align; pub use self::align::*; } + + } cfg_if! { if #[cfg(libc_int128)] { mod int128; pub use self::int128::*; + } else if #[cfg(libc_align)] { + mod fallback; + pub use self::fallback::*; } } diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index ea59181bc..ac3f88905 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -264,6 +264,21 @@ align_const! { }; } +pub const HWCAP_LOONGARCH_CPUCFG: ::c_ulong = 1 << 0; +pub const HWCAP_LOONGARCH_LAM: ::c_ulong = 1 << 1; +pub const HWCAP_LOONGARCH_UAL: ::c_ulong = 1 << 2; +pub const HWCAP_LOONGARCH_FPU: ::c_ulong = 1 << 3; +pub const HWCAP_LOONGARCH_LSX: ::c_ulong = 1 << 4; +pub const HWCAP_LOONGARCH_LASX: ::c_ulong = 1 << 5; +pub const HWCAP_LOONGARCH_CRC32: ::c_ulong = 1 << 6; +pub const HWCAP_LOONGARCH_COMPLEX: ::c_ulong = 1 << 7; +pub const HWCAP_LOONGARCH_CRYPTO: ::c_ulong = 1 << 8; +pub const HWCAP_LOONGARCH_LVZ: ::c_ulong = 1 << 9; +pub const HWCAP_LOONGARCH_LBT_X86: ::c_ulong = 1 << 10; +pub const HWCAP_LOONGARCH_LBT_ARM: ::c_ulong = 1 << 11; +pub const HWCAP_LOONGARCH_LBT_MIPS: ::c_ulong = 1 << 12; +pub const HWCAP_LOONGARCH_PTW: ::c_ulong = 1 << 13; + pub const SYS_io_setup: ::c_long = 0; pub const SYS_io_destroy: ::c_long = 1; pub const SYS_io_submit: ::c_long = 2; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index 66b29a8aa..f7b52be80 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -823,6 +823,7 @@ pub const RTLD_NOLOAD: ::c_int = 0x8; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/mod.rs index 443958cff..ff394e33a 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -72,6 +72,7 @@ s! { target_arch = "aarch64", target_arch = "loongarch64", target_arch = "mips64", + target_arch = "mips64r6", target_arch = "powerpc64", target_arch = "riscv64", target_arch = "sparc64")))] @@ -81,6 +82,7 @@ s! { target_arch = "aarch64", target_arch = "loongarch64", target_arch = "mips64", + target_arch = "mips64r6", target_arch = "powerpc64", target_arch = "riscv64", target_arch = "sparc64")))] @@ -105,7 +107,7 @@ cfg_if! { } else if #[cfg(any(target_arch = "sparc64"))] { mod sparc64; pub use self::sparc64::*; - } else if #[cfg(any(target_arch = "mips64"))] { + } else if #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))] { mod mips64; pub use self::mips64::*; } else if #[cfg(any(target_arch = "s390x"))] { diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 2b225e480..3088c25a2 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -473,6 +473,7 @@ pub const EREMOTEIO: ::c_int = 121; pub const MCL_CURRENT: ::c_int = 0x2000; pub const MCL_FUTURE: ::c_int = 0x4000; +pub const MCL_ONFAULT: ::c_int = 0x8000; pub const SIGSTKSZ: ::size_t = 0x4000; pub const MINSIGSTKSZ: ::size_t = 4096; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index c65a562ac..64f5cf10f 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -432,6 +432,7 @@ pub const PTRACE_GETREGS: ::c_uint = 12; pub const PTRACE_SETREGS: ::c_uint = 13; pub const MCL_CURRENT: ::c_int = 1; pub const MCL_FUTURE: ::c_int = 2; +pub const MCL_ONFAULT: ::c_int = 4; pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; pub const CBAUD: ::tcflag_t = 4111; @@ -539,6 +540,14 @@ pub const REG_A0: usize = 10; pub const REG_S2: usize = 18; pub const REG_NARGS: usize = 8; +pub const COMPAT_HWCAP_ISA_I: ::c_ulong = 1 << (b'I' - b'A'); +pub const COMPAT_HWCAP_ISA_M: ::c_ulong = 1 << (b'M' - b'A'); +pub const COMPAT_HWCAP_ISA_A: ::c_ulong = 1 << (b'A' - b'A'); +pub const COMPAT_HWCAP_ISA_F: ::c_ulong = 1 << (b'F' - b'A'); +pub const COMPAT_HWCAP_ISA_D: ::c_ulong = 1 << (b'D' - b'A'); +pub const COMPAT_HWCAP_ISA_C: ::c_ulong = 1 << (b'C' - b'A'); +pub const COMPAT_HWCAP_ISA_V: ::c_ulong = 1 << (b'V' - b'A'); + pub const SYS_read: ::c_long = 63; pub const SYS_write: ::c_long = 64; pub const SYS_close: ::c_long = 57; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/s390x.rs index c2c4f31cf..61ee2dcc9 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -481,6 +481,7 @@ pub const PTRACE_DETACH: ::c_uint = 17; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const EFD_NONBLOCK: ::c_int = 0x800; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index 2427c7a0a..de2f0d6e4 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -444,6 +444,7 @@ pub const EREMOTEIO: ::c_int = 121; pub const MCL_CURRENT: ::c_int = 0x2000; pub const MCL_FUTURE: ::c_int = 0x4000; +pub const MCL_ONFAULT: ::c_int = 0x8000; pub const SIGSTKSZ: ::size_t = 16384; pub const MINSIGSTKSZ: ::size_t = 4096; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index e6307e282..609c74429 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -260,12 +260,6 @@ s! { __unused5: u64 } - pub struct seccomp_notif_sizes { - pub seccomp_notif: ::__u16, - pub seccomp_notif_resp: ::__u16, - pub seccomp_data: ::__u16, - } - pub struct ptrace_rseq_configuration { pub rseq_abi_pointer: ::__u64, pub rseq_abi_size: ::__u32, @@ -651,6 +645,7 @@ pub const PR_SPEC_INDIRECT_BRANCH: ::c_int = 1; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; @@ -802,11 +797,6 @@ pub const REG_TRAPNO: ::c_int = 20; pub const REG_OLDMASK: ::c_int = 21; pub const REG_CR2: ::c_int = 22; -pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; -pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; -pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; -pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; - extern "C" { pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/mod.rs index ba4664bf5..4b3ee5a15 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/gnu/mod.rs @@ -3,6 +3,7 @@ pub type __priority_which_t = ::c_uint; pub type __rlimit_resource_t = ::c_uint; pub type Lmid_t = ::c_long; pub type regoff_t = ::c_int; +pub type __kernel_rwf_t = ::c_int; cfg_if! { if #[cfg(doc)] { @@ -116,13 +117,17 @@ s! { target_arch = "sparc", target_arch = "sparc64", target_arch = "mips", - target_arch = "mips64")))] + target_arch = "mips32r6", + target_arch = "mips64", + target_arch = "mips64r6")))] pub c_ispeed: ::speed_t, #[cfg(not(any( target_arch = "sparc", target_arch = "sparc64", target_arch = "mips", - target_arch = "mips64")))] + target_arch = "mips32r6", + target_arch = "mips64", + target_arch = "mips64r6")))] pub c_ospeed: ::speed_t, } @@ -351,6 +356,104 @@ s! { #[cfg(libc_union)] pub u: __c_anonymous_ptrace_syscall_info_data, } + + // linux/if_xdp.h + + pub struct sockaddr_xdp { + pub sxdp_family: ::__u16, + pub sxdp_flags: ::__u16, + pub sxdp_ifindex: ::__u32, + pub sxdp_queue_id: ::__u32, + pub sxdp_shared_umem_fd: ::__u32, + } + + pub struct xdp_ring_offset { + pub producer: ::__u64, + pub consumer: ::__u64, + pub desc: ::__u64, + pub flags: ::__u64, + } + + pub struct xdp_mmap_offsets { + pub rx: xdp_ring_offset, + pub tx: xdp_ring_offset, + pub fr: xdp_ring_offset, + pub cr: xdp_ring_offset, + } + + pub struct xdp_ring_offset_v1 { + pub producer: ::__u64, + pub consumer: ::__u64, + pub desc: ::__u64, + } + + pub struct xdp_mmap_offsets_v1 { + pub rx: xdp_ring_offset_v1, + pub tx: xdp_ring_offset_v1, + pub fr: xdp_ring_offset_v1, + pub cr: xdp_ring_offset_v1, + } + + pub struct xdp_umem_reg { + pub addr: ::__u64, + pub len: ::__u64, + pub chunk_size: ::__u32, + pub headroom: ::__u32, + pub flags: ::__u32, + } + + pub struct xdp_umem_reg_v1 { + pub addr: ::__u64, + pub len: ::__u64, + pub chunk_size: ::__u32, + pub headroom: ::__u32, + } + + pub struct xdp_statistics { + pub rx_dropped: ::__u64, + pub rx_invalid_descs: ::__u64, + pub tx_invalid_descs: ::__u64, + pub rx_ring_full: ::__u64, + pub rx_fill_ring_empty_descs: ::__u64, + pub tx_ring_empty_descs: ::__u64, + } + + pub struct xdp_statistics_v1 { + pub rx_dropped: ::__u64, + pub rx_invalid_descs: ::__u64, + pub tx_invalid_descs: ::__u64, + } + + pub struct xdp_options { + pub flags: ::__u32, + } + + pub struct xdp_desc { + pub addr: ::__u64, + pub len: ::__u32, + pub options: ::__u32, + } + + pub struct iocb { + pub aio_data: ::__u64, + #[cfg(target_endian = "little")] + pub aio_key: ::__u32, + #[cfg(target_endian = "little")] + pub aio_rw_flags: ::__kernel_rwf_t, + #[cfg(target_endian = "big")] + pub aio_rw_flags: ::__kernel_rwf_t, + #[cfg(target_endian = "big")] + pub aio_key: ::__u32, + pub aio_lio_opcode: ::__u16, + pub aio_reqprio: ::__s16, + pub aio_fildes: ::__u32, + pub aio_buf: ::__u64, + pub aio_nbytes: ::__u64, + pub aio_offset: ::__s64, + aio_reserved2: ::__u64, + pub aio_flags: ::__u32, + pub aio_resfd: ::__u32, + } } impl siginfo_t { @@ -714,11 +817,6 @@ pub const SOCK_SEQPACKET: ::c_int = 5; pub const SOCK_DCCP: ::c_int = 6; pub const SOCK_PACKET: ::c_int = 10; -pub const FAN_MARK_INODE: ::c_uint = 0x0000_0000; -pub const FAN_MARK_MOUNT: ::c_uint = 0x0000_0010; -// NOTE: FAN_MARK_FILESYSTEM requires Linux Kernel >= 4.20.0 -pub const FAN_MARK_FILESYSTEM: ::c_uint = 0x0000_0100; - pub const AF_IB: ::c_int = 27; pub const AF_MPLS: ::c_int = 28; pub const AF_NFC: ::c_int = 39; @@ -853,6 +951,8 @@ pub const PTRACE_SEIZE: ::c_uint = 0x4206; pub const PTRACE_INTERRUPT: ::c_uint = 0x4207; pub const PTRACE_LISTEN: ::c_uint = 0x4208; pub const PTRACE_PEEKSIGINFO: ::c_uint = 0x4209; +pub const PTRACE_GETSIGMASK: ::c_uint = 0x420a; +pub const PTRACE_SETSIGMASK: ::c_uint = 0x420b; pub const PTRACE_GET_SYSCALL_INFO: ::c_uint = 0x420e; pub const PTRACE_SYSCALL_INFO_NONE: ::__u8 = 0; pub const PTRACE_SYSCALL_INFO_ENTRY: ::__u8 = 1; @@ -919,6 +1019,38 @@ pub const GENL_UNS_ADMIN_PERM: ::c_int = 0x10; pub const GENL_ID_VFS_DQUOT: ::c_int = ::NLMSG_MIN_TYPE + 1; pub const GENL_ID_PMCRAID: ::c_int = ::NLMSG_MIN_TYPE + 2; +// linux/if_xdp.h +pub const XDP_SHARED_UMEM: ::__u16 = 1 << 0; +pub const XDP_COPY: ::__u16 = 1 << 1; +pub const XDP_ZEROCOPY: ::__u16 = 1 << 2; +pub const XDP_USE_NEED_WAKEUP: ::__u16 = 1 << 3; +pub const XDP_USE_SG: ::__u16 = 1 << 4; + +pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: ::__u32 = 1 << 0; + +pub const XDP_RING_NEED_WAKEUP: ::__u32 = 1 << 0; + +pub const XDP_MMAP_OFFSETS: ::c_int = 1; +pub const XDP_RX_RING: ::c_int = 2; +pub const XDP_TX_RING: ::c_int = 3; +pub const XDP_UMEM_REG: ::c_int = 4; +pub const XDP_UMEM_FILL_RING: ::c_int = 5; +pub const XDP_UMEM_COMPLETION_RING: ::c_int = 6; +pub const XDP_STATISTICS: ::c_int = 7; +pub const XDP_OPTIONS: ::c_int = 8; + +pub const XDP_OPTIONS_ZEROCOPY: ::__u32 = 1 << 0; + +pub const XDP_PGOFF_RX_RING: ::off_t = 0; +pub const XDP_PGOFF_TX_RING: ::off_t = 0x80000000; +pub const XDP_UMEM_PGOFF_FILL_RING: ::c_ulonglong = 0x100000000; +pub const XDP_UMEM_PGOFF_COMPLETION_RING: ::c_ulonglong = 0x180000000; + +pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: ::c_int = 48; +pub const XSK_UNALIGNED_BUF_ADDR_MASK: ::c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1; + +pub const XDP_PKT_CONTD: ::__u32 = 1 << 0; + // elf.h pub const NT_PRSTATUS: ::c_int = 1; pub const NT_PRFPREG: ::c_int = 2; @@ -940,6 +1072,11 @@ pub const NT_PRFPXREG: ::c_int = 20; pub const ELFOSABI_ARM_AEABI: u8 = 64; +// linux/sched.h +pub const CLONE_NEWTIME: ::c_int = 0x80; +pub const CLONE_CLEAR_SIGHAND: ::c_int = 0x100000000; +pub const CLONE_INTO_CGROUP: ::c_int = 0x200000000; + // linux/keyctl.h pub const KEYCTL_DH_COMPUTE: u32 = 23; pub const KEYCTL_PKEY_QUERY: u32 = 24; @@ -954,7 +1091,10 @@ pub const KEYCTL_SUPPORTS_DECRYPT: u32 = 0x02; pub const KEYCTL_SUPPORTS_SIGN: u32 = 0x04; pub const KEYCTL_SUPPORTS_VERIFY: u32 = 0x08; cfg_if! { - if #[cfg(not(any(target_arch="mips", target_arch="mips64")))] { + if #[cfg(not(any(target_arch = "mips", + target_arch = "mips32r6", + target_arch = "mips64", + target_arch = "mips64r6")))] { pub const KEYCTL_MOVE: u32 = 30; pub const KEYCTL_CAPABILITIES: u32 = 31; @@ -1017,7 +1157,17 @@ pub const STATX_ATTR_DAX: ::c_int = 0x00200000; pub const SOMAXCONN: ::c_int = 4096; -//sys/timex.h +// linux/mount.h +pub const MOVE_MOUNT_F_SYMLINKS: ::c_uint = 0x00000001; +pub const MOVE_MOUNT_F_AUTOMOUNTS: ::c_uint = 0x00000002; +pub const MOVE_MOUNT_F_EMPTY_PATH: ::c_uint = 0x00000004; +pub const MOVE_MOUNT_T_SYMLINKS: ::c_uint = 0x00000010; +pub const MOVE_MOUNT_T_AUTOMOUNTS: ::c_uint = 0x00000020; +pub const MOVE_MOUNT_T_EMPTY_PATH: ::c_uint = 0x00000040; +pub const MOVE_MOUNT_SET_GROUP: ::c_uint = 0x00000100; +pub const MOVE_MOUNT_BENEATH: ::c_uint = 0x00000200; + +// sys/timex.h pub const ADJ_OFFSET: ::c_uint = 0x0001; pub const ADJ_FREQUENCY: ::c_uint = 0x0002; pub const ADJ_MAXERROR: ::c_uint = 0x0004; @@ -1076,6 +1226,18 @@ pub const TIME_ERROR: ::c_int = 5; pub const TIME_BAD: ::c_int = TIME_ERROR; pub const MAXTC: ::c_long = 6; +// Portable GLOB_* flags are defined at the `linux_like` level. +// The following are GNU extensions. +pub const GLOB_PERIOD: ::c_int = 1 << 7; +pub const GLOB_ALTDIRFUNC: ::c_int = 1 << 9; +pub const GLOB_BRACE: ::c_int = 1 << 10; +pub const GLOB_NOMAGIC: ::c_int = 1 << 11; +pub const GLOB_TILDE: ::c_int = 1 << 12; +pub const GLOB_ONLYDIR: ::c_int = 1 << 13; +pub const GLOB_TILDE_CHECK: ::c_int = 1 << 14; + +pub const MADV_COLLAPSE: ::c_int = 25; + cfg_if! { if #[cfg(any( target_arch = "arm", @@ -1316,14 +1478,6 @@ extern "C" { pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char; - pub fn strftime( - s: *mut ::c_char, - max: ::size_t, - format: *const ::c_char, - tm: *const ::tm, - ) -> ::size_t; - pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; /// POSIX version of `basename(3)`, defined in `libgen.h`. #[link_name = "__xpg_basename"] @@ -1372,13 +1526,26 @@ extern "C" { buf: *mut ::c_char, buflen: ::c_int, ) -> *mut ::mntent; + + pub fn execveat( + dirfd: ::c_int, + pathname: *const ::c_char, + argv: *const *mut c_char, + envp: *const *mut c_char, + flags: ::c_int, + ) -> ::c_int; + + // Added in `glibc` 2.34 + pub fn close_range(first: ::c_uint, last: ::c_uint, flags: ::c_int) -> ::c_int; } cfg_if! { if #[cfg(any(target_arch = "x86", target_arch = "arm", target_arch = "m68k", + target_arch = "csky", target_arch = "mips", + target_arch = "mips32r6", target_arch = "powerpc", target_arch = "sparc", target_arch = "riscv32"))] { @@ -1388,6 +1555,7 @@ cfg_if! { target_arch = "aarch64", target_arch = "powerpc64", target_arch = "mips64", + target_arch = "mips64r6", target_arch = "s390x", target_arch = "sparc64", target_arch = "riscv64", diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/mod.rs index e52b3d3a8..dc0d3eaca 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/mod.rs @@ -14,6 +14,7 @@ pub type nl_item = ::c_int; pub type idtype_t = ::c_uint; pub type loff_t = ::c_longlong; pub type pthread_key_t = ::c_uint; +pub type pthread_once_t = ::c_int; pub type pthread_spinlock_t = ::c_int; pub type __u8 = ::c_uchar; @@ -51,13 +52,10 @@ pub type iconv_t = *mut ::c_void; // linux/sctp.h pub type sctp_assoc_t = ::__s32; -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos64_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos64_t {} -impl ::Clone for fpos64_t { - fn clone(&self) -> fpos64_t { - *self - } +pub type eventfd_t = u64; +missing! { + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub enum fpos64_t {} // FIXME: fill this out with a struct } s! { @@ -577,6 +575,34 @@ s! { pub args: [::__u64; 6], } + pub struct seccomp_notif_sizes { + pub seccomp_notif: ::__u16, + pub seccomp_notif_resp: ::__u16, + pub seccomp_data: ::__u16, + } + + pub struct seccomp_notif { + pub id: ::__u64, + pub pid: ::__u32, + pub flags: ::__u32, + pub data: seccomp_data, + } + + pub struct seccomp_notif_resp { + pub id: ::__u64, + pub val: ::__s64, + pub error: ::__s32, + pub flags: ::__u32, + } + + pub struct seccomp_notif_addfd { + pub id: ::__u64, + pub flags: ::__u32, + pub srcfd: ::__u32, + pub newfd: ::__u32, + pub newfd_flags: ::__u32, + } + pub struct nlmsghdr { pub nlmsg_len: u32, pub nlmsg_type: u16, @@ -685,6 +711,37 @@ s! { pub rlim_cur: rlim64_t, pub rlim_max: rlim64_t, } + + // linux/tls.h + + pub struct tls_crypto_info { + pub version: ::__u16, + pub cipher_type: ::__u16, + } + + pub struct tls12_crypto_info_aes_gcm_128 { + pub info: tls_crypto_info, + pub iv: [::c_uchar; TLS_CIPHER_AES_GCM_128_IV_SIZE], + pub key: [::c_uchar; TLS_CIPHER_AES_GCM_128_KEY_SIZE], + pub salt: [::c_uchar; TLS_CIPHER_AES_GCM_128_SALT_SIZE], + pub rec_seq: [::c_uchar; TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE], + } + + pub struct tls12_crypto_info_aes_gcm_256 { + pub info: tls_crypto_info, + pub iv: [::c_uchar; TLS_CIPHER_AES_GCM_256_IV_SIZE], + pub key: [::c_uchar; TLS_CIPHER_AES_GCM_256_KEY_SIZE], + pub salt: [::c_uchar; TLS_CIPHER_AES_GCM_256_SALT_SIZE], + pub rec_seq: [::c_uchar; TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE], + } + + pub struct tls12_crypto_info_chacha20_poly1305 { + pub info: tls_crypto_info, + pub iv: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE], + pub key: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE], + pub salt: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE], + pub rec_seq: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE], + } } s_no_extra_traits! { @@ -791,6 +848,23 @@ s_no_extra_traits! { pub ifr_ifru: ::sockaddr, } + #[cfg(libc_union)] + pub union __c_anonymous_ifc_ifcu { + pub ifcu_buf: *mut ::c_char, + pub ifcu_req: *mut ::ifreq, + } + + /* Structure used in SIOCGIFCONF request. Used to retrieve interface + configuration for machine (useful for programs which must know all + networks accessible). */ + pub struct ifconf { + pub ifc_len: ::c_int, /* Size of buffer. */ + #[cfg(libc_union)] + pub ifc_ifcu: __c_anonymous_ifc_ifcu, + #[cfg(not(libc_union))] + pub ifc_ifcu: *mut ::ifreq, + } + pub struct hwtstamp_config { pub flags: ::c_int, pub tx_type: ::c_int, @@ -804,6 +878,17 @@ s_no_extra_traits! { pub d_type: ::c_uchar, pub d_name: [::c_char; 256], } + + pub struct sched_attr { + pub size: ::__u32, + pub sched_policy: ::__u32, + pub sched_flags: ::__u64, + pub sched_nice: ::__s32, + pub sched_priority: ::__u32, + pub sched_runtime: ::__u64, + pub sched_deadline: ::__u64, + pub sched_period: ::__u64, + } } s_no_extra_traits! { @@ -1228,6 +1313,23 @@ cfg_if! { } } + #[cfg(libc_union)] + impl ::fmt::Debug for __c_anonymous_ifc_ifcu { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifr_ifru") + .field("ifcu_buf", unsafe { &self.ifcu_buf }) + .field("ifcu_req", unsafe { &self.ifcu_req }) + .finish() + } + } + impl ::fmt::Debug for ifconf { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("ifconf") + .field("ifc_len", &self.ifc_len) + .field("ifc_ifcu", &self.ifc_ifcu) + .finish() + } + } impl ::fmt::Debug for hwtstamp_config { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("hwtstamp_config") @@ -1252,6 +1354,46 @@ cfg_if! { self.rx_filter.hash(state); } } + + impl ::fmt::Debug for sched_attr { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sched_attr") + .field("size", &self.size) + .field("sched_policy", &self.sched_policy) + .field("sched_flags", &self.sched_flags) + .field("sched_nice", &self.sched_nice) + .field("sched_priority", &self.sched_priority) + .field("sched_runtime", &self.sched_runtime) + .field("sched_deadline", &self.sched_deadline) + .field("sched_period", &self.sched_period) + .finish() + } + } + impl PartialEq for sched_attr { + fn eq(&self, other: &sched_attr) -> bool { + self.size == other.size && + self.sched_policy == other.sched_policy && + self.sched_flags == other.sched_flags && + self.sched_nice == other.sched_nice && + self.sched_priority == other.sched_priority && + self.sched_runtime == other.sched_runtime && + self.sched_deadline == other.sched_deadline && + self.sched_period == other.sched_period + } + } + impl Eq for sched_attr {} + impl ::hash::Hash for sched_attr { + fn hash(&self, state: &mut H) { + self.size.hash(state); + self.sched_policy.hash(state); + self.sched_flags.hash(state); + self.sched_nice.hash(state); + self.sched_priority.hash(state); + self.sched_runtime.hash(state); + self.sched_deadline.hash(state); + self.sched_period.hash(state); + } + } } } @@ -1699,6 +1841,7 @@ pub const AT_EXECFN: ::c_ulong = 31; // defined in arch//include/uapi/asm/auxvec.h but has the same value // wherever it is defined. pub const AT_SYSINFO_EHDR: ::c_ulong = 33; +pub const AT_MINSIGSTKSZ: ::c_ulong = 51; pub const GLOB_ERR: ::c_int = 1 << 0; pub const GLOB_MARK: ::c_int = 1 << 1; @@ -1829,6 +1972,10 @@ pub const IFLA_INFO_SLAVE_DATA: ::c_ushort = 5; // linux/if_tun.h pub const IFF_TUN: ::c_int = 0x0001; pub const IFF_TAP: ::c_int = 0x0002; +pub const IFF_NAPI: ::c_int = 0x0010; +pub const IFF_NAPI_FRAGS: ::c_int = 0x0020; +// Used in TUNSETIFF to bring up tun/tap without carrier +pub const IFF_NO_CARRIER: ::c_int = 0x0040; pub const IFF_NO_PI: ::c_int = 0x1000; // Read queue size pub const TUN_READQ_SIZE: ::c_short = 500; @@ -1846,6 +1993,20 @@ pub const IFF_DETACH_QUEUE: ::c_int = 0x0400; // read-only flag pub const IFF_PERSIST: ::c_int = 0x0800; pub const IFF_NOFILTER: ::c_int = 0x1000; +// Socket options +pub const TUN_TX_TIMESTAMP: ::c_int = 1; +// Features for GSO (TUNSETOFFLOAD) +pub const TUN_F_CSUM: ::c_uint = 0x01; +pub const TUN_F_TSO4: ::c_uint = 0x02; +pub const TUN_F_TSO6: ::c_uint = 0x04; +pub const TUN_F_TSO_ECN: ::c_uint = 0x08; +pub const TUN_F_UFO: ::c_uint = 0x10; +pub const TUN_F_USO4: ::c_uint = 0x20; +pub const TUN_F_USO6: ::c_uint = 0x40; +// Protocol info prepended to the packets (when IFF_NO_PI is not set) +pub const TUN_PKT_STRIP: ::c_int = 0x0001; +// Accept all multicast packets +pub const TUN_FLT_ALLMULTI: ::c_int = 0x0001; // Since Linux 3.1 pub const SEEK_DATA: ::c_int = 3; @@ -1903,6 +2064,7 @@ align_const! { size: [0; __SIZEOF_PTHREAD_RWLOCK_T], }; } +pub const PTHREAD_ONCE_INIT: pthread_once_t = 0; pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; @@ -1914,22 +2076,14 @@ pub const PTHREAD_PRIO_INHERIT: ::c_int = 1; pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; +pub const PTHREAD_INHERIT_SCHED: ::c_int = 0; +pub const PTHREAD_EXPLICIT_SCHED: ::c_int = 1; pub const __SIZEOF_PTHREAD_COND_T: usize = 48; pub const RENAME_NOREPLACE: ::c_uint = 1; pub const RENAME_EXCHANGE: ::c_uint = 2; pub const RENAME_WHITEOUT: ::c_uint = 4; -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; -pub const SCHED_BATCH: ::c_int = 3; -pub const SCHED_IDLE: ::c_int = 5; - -pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000; - -pub const CLONE_PIDFD: ::c_int = 0x1000; - // netinet/in.h // NOTE: These are in addition to the constants defined in src/unix/mod.rs @@ -2018,6 +2172,7 @@ pub const NI_NUMERICSERV: ::c_int = 2; pub const NI_NOFQDN: ::c_int = 4; pub const NI_NAMEREQD: ::c_int = 8; pub const NI_DGRAM: ::c_int = 16; +pub const NI_IDN: ::c_int = 32; pub const SYNC_FILE_RANGE_WAIT_BEFORE: ::c_uint = 1; pub const SYNC_FILE_RANGE_WRITE: ::c_uint = 2; @@ -2187,13 +2342,22 @@ pub const GRND_NONBLOCK: ::c_uint = 0x0001; pub const GRND_RANDOM: ::c_uint = 0x0002; pub const GRND_INSECURE: ::c_uint = 0x0004; +// pub const SECCOMP_MODE_DISABLED: ::c_uint = 0; pub const SECCOMP_MODE_STRICT: ::c_uint = 1; pub const SECCOMP_MODE_FILTER: ::c_uint = 2; +pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; +pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; +pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; +pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; + pub const SECCOMP_FILTER_FLAG_TSYNC: ::c_ulong = 1; pub const SECCOMP_FILTER_FLAG_LOG: ::c_ulong = 2; pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: ::c_ulong = 4; +pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: ::c_ulong = 8; +pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: ::c_ulong = 16; +pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: ::c_ulong = 32; pub const SECCOMP_RET_KILL_PROCESS: ::c_uint = 0x80000000; pub const SECCOMP_RET_KILL_THREAD: ::c_uint = 0x00000000; @@ -2208,6 +2372,11 @@ pub const SECCOMP_RET_ACTION_FULL: ::c_uint = 0xffff0000; pub const SECCOMP_RET_ACTION: ::c_uint = 0x7fff0000; pub const SECCOMP_RET_DATA: ::c_uint = 0x0000ffff; +pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: ::c_ulong = 1; + +pub const SECCOMP_ADDFD_FLAG_SETFD: ::c_ulong = 1; +pub const SECCOMP_ADDFD_FLAG_SEND: ::c_ulong = 2; + pub const ITIMER_REAL: ::c_int = 0; pub const ITIMER_VIRTUAL: ::c_int = 1; pub const ITIMER_PROF: ::c_int = 2; @@ -2265,6 +2434,8 @@ pub const CMSPAR: ::tcflag_t = 0o10000000000; pub const MFD_CLOEXEC: ::c_uint = 0x0001; pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; pub const MFD_HUGETLB: ::c_uint = 0x0004; +pub const MFD_NOEXEC_SEAL: ::c_uint = 0x0008; +pub const MFD_EXEC: ::c_uint = 0x0010; pub const MFD_HUGE_64KB: ::c_uint = 0x40000000; pub const MFD_HUGE_512KB: ::c_uint = 0x4c000000; pub const MFD_HUGE_1MB: ::c_uint = 0x50000000; @@ -2766,6 +2937,7 @@ pub const SIOCGIFMEM: ::c_ulong = 0x0000891F; pub const SIOCSIFMEM: ::c_ulong = 0x00008920; pub const SIOCGIFMTU: ::c_ulong = 0x00008921; pub const SIOCSIFMTU: ::c_ulong = 0x00008922; +pub const SIOCSIFNAME: ::c_ulong = 0x00008923; pub const SIOCSIFHWADDR: ::c_ulong = 0x00008924; pub const SIOCGIFENCAP: ::c_ulong = 0x00008925; pub const SIOCSIFENCAP: ::c_ulong = 0x00008926; @@ -2803,6 +2975,293 @@ pub const SIOCSIFMAP: ::c_ulong = 0x00008971; pub const SIOCSHWTSTAMP: ::c_ulong = 0x000089b0; pub const SIOCGHWTSTAMP: ::c_ulong = 0x000089b1; +// wireless.h +pub const WIRELESS_EXT: ::c_ulong = 0x16; + +pub const SIOCSIWCOMMIT: ::c_ulong = 0x8B00; +pub const SIOCGIWNAME: ::c_ulong = 0x8B01; + +pub const SIOCSIWNWID: ::c_ulong = 0x8B02; +pub const SIOCGIWNWID: ::c_ulong = 0x8B03; +pub const SIOCSIWFREQ: ::c_ulong = 0x8B04; +pub const SIOCGIWFREQ: ::c_ulong = 0x8B05; +pub const SIOCSIWMODE: ::c_ulong = 0x8B06; +pub const SIOCGIWMODE: ::c_ulong = 0x8B07; +pub const SIOCSIWSENS: ::c_ulong = 0x8B08; +pub const SIOCGIWSENS: ::c_ulong = 0x8B09; + +pub const SIOCSIWRANGE: ::c_ulong = 0x8B0A; +pub const SIOCGIWRANGE: ::c_ulong = 0x8B0B; +pub const SIOCSIWPRIV: ::c_ulong = 0x8B0C; +pub const SIOCGIWPRIV: ::c_ulong = 0x8B0D; +pub const SIOCSIWSTATS: ::c_ulong = 0x8B0E; +pub const SIOCGIWSTATS: ::c_ulong = 0x8B0F; + +pub const SIOCSIWSPY: ::c_ulong = 0x8B10; +pub const SIOCGIWSPY: ::c_ulong = 0x8B11; +pub const SIOCSIWTHRSPY: ::c_ulong = 0x8B12; +pub const SIOCGIWTHRSPY: ::c_ulong = 0x8B13; + +pub const SIOCSIWAP: ::c_ulong = 0x8B14; +pub const SIOCGIWAP: ::c_ulong = 0x8B15; +pub const SIOCGIWAPLIST: ::c_ulong = 0x8B17; +pub const SIOCSIWSCAN: ::c_ulong = 0x8B18; +pub const SIOCGIWSCAN: ::c_ulong = 0x8B19; + +pub const SIOCSIWESSID: ::c_ulong = 0x8B1A; +pub const SIOCGIWESSID: ::c_ulong = 0x8B1B; +pub const SIOCSIWNICKN: ::c_ulong = 0x8B1C; +pub const SIOCGIWNICKN: ::c_ulong = 0x8B1D; + +pub const SIOCSIWRATE: ::c_ulong = 0x8B20; +pub const SIOCGIWRATE: ::c_ulong = 0x8B21; +pub const SIOCSIWRTS: ::c_ulong = 0x8B22; +pub const SIOCGIWRTS: ::c_ulong = 0x8B23; +pub const SIOCSIWFRAG: ::c_ulong = 0x8B24; +pub const SIOCGIWFRAG: ::c_ulong = 0x8B25; +pub const SIOCSIWTXPOW: ::c_ulong = 0x8B26; +pub const SIOCGIWTXPOW: ::c_ulong = 0x8B27; +pub const SIOCSIWRETRY: ::c_ulong = 0x8B28; +pub const SIOCGIWRETRY: ::c_ulong = 0x8B29; + +pub const SIOCSIWENCODE: ::c_ulong = 0x8B2A; +pub const SIOCGIWENCODE: ::c_ulong = 0x8B2B; + +pub const SIOCSIWPOWER: ::c_ulong = 0x8B2C; +pub const SIOCGIWPOWER: ::c_ulong = 0x8B2D; + +pub const SIOCSIWGENIE: ::c_ulong = 0x8B30; +pub const SIOCGIWGENIE: ::c_ulong = 0x8B31; + +pub const SIOCSIWMLME: ::c_ulong = 0x8B16; + +pub const SIOCSIWAUTH: ::c_ulong = 0x8B32; +pub const SIOCGIWAUTH: ::c_ulong = 0x8B33; + +pub const SIOCSIWENCODEEXT: ::c_ulong = 0x8B34; +pub const SIOCGIWENCODEEXT: ::c_ulong = 0x8B35; + +pub const SIOCSIWPMKSA: ::c_ulong = 0x8B36; + +pub const SIOCIWFIRSTPRIV: ::c_ulong = 0x8BE0; +pub const SIOCIWLASTPRIV: ::c_ulong = 0x8BFF; + +pub const SIOCIWFIRST: ::c_ulong = 0x8B00; +pub const SIOCIWLAST: ::c_ulong = SIOCIWLASTPRIV; + +pub const IWEVTXDROP: ::c_ulong = 0x8C00; +pub const IWEVQUAL: ::c_ulong = 0x8C01; +pub const IWEVCUSTOM: ::c_ulong = 0x8C02; +pub const IWEVREGISTERED: ::c_ulong = 0x8C03; +pub const IWEVEXPIRED: ::c_ulong = 0x8C04; +pub const IWEVGENIE: ::c_ulong = 0x8C05; +pub const IWEVMICHAELMICFAILURE: ::c_ulong = 0x8C06; +pub const IWEVASSOCREQIE: ::c_ulong = 0x8C07; +pub const IWEVASSOCRESPIE: ::c_ulong = 0x8C08; +pub const IWEVPMKIDCAND: ::c_ulong = 0x8C09; +pub const IWEVFIRST: ::c_ulong = 0x8C00; + +pub const IW_PRIV_TYPE_MASK: ::c_ulong = 0x7000; +pub const IW_PRIV_TYPE_NONE: ::c_ulong = 0x0000; +pub const IW_PRIV_TYPE_BYTE: ::c_ulong = 0x1000; +pub const IW_PRIV_TYPE_CHAR: ::c_ulong = 0x2000; +pub const IW_PRIV_TYPE_INT: ::c_ulong = 0x4000; +pub const IW_PRIV_TYPE_FLOAT: ::c_ulong = 0x5000; +pub const IW_PRIV_TYPE_ADDR: ::c_ulong = 0x6000; + +pub const IW_PRIV_SIZE_FIXED: ::c_ulong = 0x0800; + +pub const IW_PRIV_SIZE_MASK: ::c_ulong = 0x07FF; + +pub const IW_MAX_FREQUENCIES: usize = 32; +pub const IW_MAX_BITRATES: usize = 32; +pub const IW_MAX_TXPOWER: usize = 8; +pub const IW_MAX_SPY: usize = 8; +pub const IW_MAX_AP: usize = 64; +pub const IW_ESSID_MAX_SIZE: usize = 32; + +pub const IW_MODE_AUTO: usize = 0; +pub const IW_MODE_ADHOC: usize = 1; +pub const IW_MODE_INFRA: usize = 2; +pub const IW_MODE_MASTER: usize = 3; +pub const IW_MODE_REPEAT: usize = 4; +pub const IW_MODE_SECOND: usize = 5; +pub const IW_MODE_MONITOR: usize = 6; +pub const IW_MODE_MESH: usize = 7; + +pub const IW_QUAL_QUAL_UPDATED: ::c_ulong = 0x01; +pub const IW_QUAL_LEVEL_UPDATED: ::c_ulong = 0x02; +pub const IW_QUAL_NOISE_UPDATED: ::c_ulong = 0x04; +pub const IW_QUAL_ALL_UPDATED: ::c_ulong = 0x07; +pub const IW_QUAL_DBM: ::c_ulong = 0x08; +pub const IW_QUAL_QUAL_INVALID: ::c_ulong = 0x10; +pub const IW_QUAL_LEVEL_INVALID: ::c_ulong = 0x20; +pub const IW_QUAL_NOISE_INVALID: ::c_ulong = 0x40; +pub const IW_QUAL_RCPI: ::c_ulong = 0x80; +pub const IW_QUAL_ALL_INVALID: ::c_ulong = 0x70; + +pub const IW_FREQ_AUTO: ::c_ulong = 0x00; +pub const IW_FREQ_FIXED: ::c_ulong = 0x01; + +pub const IW_MAX_ENCODING_SIZES: usize = 8; +pub const IW_ENCODING_TOKEN_MAX: usize = 64; + +pub const IW_ENCODE_INDEX: ::c_ulong = 0x00FF; +pub const IW_ENCODE_FLAGS: ::c_ulong = 0xFF00; +pub const IW_ENCODE_MODE: ::c_ulong = 0xF000; +pub const IW_ENCODE_DISABLED: ::c_ulong = 0x8000; +pub const IW_ENCODE_ENABLED: ::c_ulong = 0x0000; +pub const IW_ENCODE_RESTRICTED: ::c_ulong = 0x4000; +pub const IW_ENCODE_OPEN: ::c_ulong = 0x2000; +pub const IW_ENCODE_NOKEY: ::c_ulong = 0x0800; +pub const IW_ENCODE_TEMP: ::c_ulong = 0x0400; + +pub const IW_POWER_ON: ::c_ulong = 0x0000; +pub const IW_POWER_TYPE: ::c_ulong = 0xF000; +pub const IW_POWER_PERIOD: ::c_ulong = 0x1000; +pub const IW_POWER_TIMEOUT: ::c_ulong = 0x2000; +pub const IW_POWER_MODE: ::c_ulong = 0x0F00; +pub const IW_POWER_UNICAST_R: ::c_ulong = 0x0100; +pub const IW_POWER_MULTICAST_R: ::c_ulong = 0x0200; +pub const IW_POWER_ALL_R: ::c_ulong = 0x0300; +pub const IW_POWER_FORCE_S: ::c_ulong = 0x0400; +pub const IW_POWER_REPEATER: ::c_ulong = 0x0800; +pub const IW_POWER_MODIFIER: ::c_ulong = 0x000F; +pub const IW_POWER_MIN: ::c_ulong = 0x0001; +pub const IW_POWER_MAX: ::c_ulong = 0x0002; +pub const IW_POWER_RELATIVE: ::c_ulong = 0x0004; + +pub const IW_TXPOW_TYPE: ::c_ulong = 0x00FF; +pub const IW_TXPOW_DBM: ::c_ulong = 0x0000; +pub const IW_TXPOW_MWATT: ::c_ulong = 0x0001; +pub const IW_TXPOW_RELATIVE: ::c_ulong = 0x0002; +pub const IW_TXPOW_RANGE: ::c_ulong = 0x1000; + +pub const IW_RETRY_ON: ::c_ulong = 0x0000; +pub const IW_RETRY_TYPE: ::c_ulong = 0xF000; +pub const IW_RETRY_LIMIT: ::c_ulong = 0x1000; +pub const IW_RETRY_LIFETIME: ::c_ulong = 0x2000; +pub const IW_RETRY_MODIFIER: ::c_ulong = 0x00FF; +pub const IW_RETRY_MIN: ::c_ulong = 0x0001; +pub const IW_RETRY_MAX: ::c_ulong = 0x0002; +pub const IW_RETRY_RELATIVE: ::c_ulong = 0x0004; +pub const IW_RETRY_SHORT: ::c_ulong = 0x0010; +pub const IW_RETRY_LONG: ::c_ulong = 0x0020; + +pub const IW_SCAN_DEFAULT: ::c_ulong = 0x0000; +pub const IW_SCAN_ALL_ESSID: ::c_ulong = 0x0001; +pub const IW_SCAN_THIS_ESSID: ::c_ulong = 0x0002; +pub const IW_SCAN_ALL_FREQ: ::c_ulong = 0x0004; +pub const IW_SCAN_THIS_FREQ: ::c_ulong = 0x0008; +pub const IW_SCAN_ALL_MODE: ::c_ulong = 0x0010; +pub const IW_SCAN_THIS_MODE: ::c_ulong = 0x0020; +pub const IW_SCAN_ALL_RATE: ::c_ulong = 0x0040; +pub const IW_SCAN_THIS_RATE: ::c_ulong = 0x0080; + +pub const IW_SCAN_TYPE_ACTIVE: usize = 0; +pub const IW_SCAN_TYPE_PASSIVE: usize = 1; + +pub const IW_SCAN_MAX_DATA: usize = 4096; + +pub const IW_SCAN_CAPA_NONE: ::c_ulong = 0x00; +pub const IW_SCAN_CAPA_ESSID: ::c_ulong = 0x01; +pub const IW_SCAN_CAPA_BSSID: ::c_ulong = 0x02; +pub const IW_SCAN_CAPA_CHANNEL: ::c_ulong = 0x04; +pub const IW_SCAN_CAPA_MODE: ::c_ulong = 0x08; +pub const IW_SCAN_CAPA_RATE: ::c_ulong = 0x10; +pub const IW_SCAN_CAPA_TYPE: ::c_ulong = 0x20; +pub const IW_SCAN_CAPA_TIME: ::c_ulong = 0x40; + +pub const IW_CUSTOM_MAX: ::c_ulong = 256; + +pub const IW_GENERIC_IE_MAX: ::c_ulong = 1024; + +pub const IW_MLME_DEAUTH: ::c_ulong = 0; +pub const IW_MLME_DISASSOC: ::c_ulong = 1; +pub const IW_MLME_AUTH: ::c_ulong = 2; +pub const IW_MLME_ASSOC: ::c_ulong = 3; + +pub const IW_AUTH_INDEX: ::c_ulong = 0x0FFF; +pub const IW_AUTH_FLAGS: ::c_ulong = 0xF000; + +pub const IW_AUTH_WPA_VERSION: usize = 0; +pub const IW_AUTH_CIPHER_PAIRWISE: usize = 1; +pub const IW_AUTH_CIPHER_GROUP: usize = 2; +pub const IW_AUTH_KEY_MGMT: usize = 3; +pub const IW_AUTH_TKIP_COUNTERMEASURES: usize = 4; +pub const IW_AUTH_DROP_UNENCRYPTED: usize = 5; +pub const IW_AUTH_80211_AUTH_ALG: usize = 6; +pub const IW_AUTH_WPA_ENABLED: usize = 7; +pub const IW_AUTH_RX_UNENCRYPTED_EAPOL: usize = 8; +pub const IW_AUTH_ROAMING_CONTROL: usize = 9; +pub const IW_AUTH_PRIVACY_INVOKED: usize = 10; +pub const IW_AUTH_CIPHER_GROUP_MGMT: usize = 11; +pub const IW_AUTH_MFP: usize = 12; + +pub const IW_AUTH_WPA_VERSION_DISABLED: ::c_ulong = 0x00000001; +pub const IW_AUTH_WPA_VERSION_WPA: ::c_ulong = 0x00000002; +pub const IW_AUTH_WPA_VERSION_WPA2: ::c_ulong = 0x00000004; + +pub const IW_AUTH_CIPHER_NONE: ::c_ulong = 0x00000001; +pub const IW_AUTH_CIPHER_WEP40: ::c_ulong = 0x00000002; +pub const IW_AUTH_CIPHER_TKIP: ::c_ulong = 0x00000004; +pub const IW_AUTH_CIPHER_CCMP: ::c_ulong = 0x00000008; +pub const IW_AUTH_CIPHER_WEP104: ::c_ulong = 0x00000010; +pub const IW_AUTH_CIPHER_AES_CMAC: ::c_ulong = 0x00000020; + +pub const IW_AUTH_KEY_MGMT_802_1X: usize = 1; +pub const IW_AUTH_KEY_MGMT_PSK: usize = 2; + +pub const IW_AUTH_ALG_OPEN_SYSTEM: ::c_ulong = 0x00000001; +pub const IW_AUTH_ALG_SHARED_KEY: ::c_ulong = 0x00000002; +pub const IW_AUTH_ALG_LEAP: ::c_ulong = 0x00000004; + +pub const IW_AUTH_ROAMING_ENABLE: usize = 0; +pub const IW_AUTH_ROAMING_DISABLE: usize = 1; + +pub const IW_AUTH_MFP_DISABLED: usize = 0; +pub const IW_AUTH_MFP_OPTIONAL: usize = 1; +pub const IW_AUTH_MFP_REQUIRED: usize = 2; + +pub const IW_ENCODE_SEQ_MAX_SIZE: usize = 8; + +pub const IW_ENCODE_ALG_NONE: usize = 0; +pub const IW_ENCODE_ALG_WEP: usize = 1; +pub const IW_ENCODE_ALG_TKIP: usize = 2; +pub const IW_ENCODE_ALG_CCMP: usize = 3; +pub const IW_ENCODE_ALG_PMK: usize = 4; +pub const IW_ENCODE_ALG_AES_CMAC: usize = 5; + +pub const IW_ENCODE_EXT_TX_SEQ_VALID: ::c_ulong = 0x00000001; +pub const IW_ENCODE_EXT_RX_SEQ_VALID: ::c_ulong = 0x00000002; +pub const IW_ENCODE_EXT_GROUP_KEY: ::c_ulong = 0x00000004; +pub const IW_ENCODE_EXT_SET_TX_KEY: ::c_ulong = 0x00000008; + +pub const IW_MICFAILURE_KEY_ID: ::c_ulong = 0x00000003; +pub const IW_MICFAILURE_GROUP: ::c_ulong = 0x00000004; +pub const IW_MICFAILURE_PAIRWISE: ::c_ulong = 0x00000008; +pub const IW_MICFAILURE_STAKEY: ::c_ulong = 0x00000010; +pub const IW_MICFAILURE_COUNT: ::c_ulong = 0x00000060; + +pub const IW_ENC_CAPA_WPA: ::c_ulong = 0x00000001; +pub const IW_ENC_CAPA_WPA2: ::c_ulong = 0x00000002; +pub const IW_ENC_CAPA_CIPHER_TKIP: ::c_ulong = 0x00000004; +pub const IW_ENC_CAPA_CIPHER_CCMP: ::c_ulong = 0x00000008; +pub const IW_ENC_CAPA_4WAY_HANDSHAKE: ::c_ulong = 0x00000010; + +pub const IW_PMKSA_ADD: usize = 1; +pub const IW_PMKSA_REMOVE: usize = 2; +pub const IW_PMKSA_FLUSH: usize = 3; + +pub const IW_PMKID_LEN: usize = 16; + +pub const IW_PMKID_CAND_PREAUTH: ::c_ulong = 0x00000001; + +pub const IW_EV_LCP_PK_LEN: usize = 4; + +pub const IW_EV_CHAR_PK_LEN: usize = IW_EV_LCP_PK_LEN + ::IFNAMSIZ; +pub const IW_EV_POINT_PK_LEN: usize = IW_EV_LCP_PK_LEN + 4; + pub const IPTOS_TOS_MASK: u8 = 0x1E; pub const IPTOS_PREC_MASK: u8 = 0xE0; @@ -3182,12 +3641,54 @@ pub const HWTSTAMP_FILTER_PTP_V2_SYNC: ::c_uint = 13; pub const HWTSTAMP_FILTER_PTP_V2_DELAY_REQ: ::c_uint = 14; pub const HWTSTAMP_FILTER_NTP_ALL: ::c_uint = 15; +// linux/tls.h +pub const TLS_TX: ::c_int = 1; +pub const TLS_RX: ::c_int = 2; + +pub const TLS_1_2_VERSION_MAJOR: ::__u8 = 0x3; +pub const TLS_1_2_VERSION_MINOR: ::__u8 = 0x3; +pub const TLS_1_2_VERSION: ::__u16 = + ((TLS_1_2_VERSION_MAJOR as ::__u16) << 8) | (TLS_1_2_VERSION_MINOR as ::__u16); + +pub const TLS_1_3_VERSION_MAJOR: ::__u8 = 0x3; +pub const TLS_1_3_VERSION_MINOR: ::__u8 = 0x4; +pub const TLS_1_3_VERSION: ::__u16 = + ((TLS_1_3_VERSION_MAJOR as ::__u16) << 8) | (TLS_1_3_VERSION_MINOR as ::__u16); + +pub const TLS_CIPHER_AES_GCM_128: ::__u16 = 51; +pub const TLS_CIPHER_AES_GCM_128_IV_SIZE: usize = 8; +pub const TLS_CIPHER_AES_GCM_128_KEY_SIZE: usize = 16; +pub const TLS_CIPHER_AES_GCM_128_SALT_SIZE: usize = 4; +pub const TLS_CIPHER_AES_GCM_128_TAG_SIZE: usize = 16; +pub const TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE: usize = 8; + +pub const TLS_CIPHER_AES_GCM_256: ::__u16 = 52; +pub const TLS_CIPHER_AES_GCM_256_IV_SIZE: usize = 8; +pub const TLS_CIPHER_AES_GCM_256_KEY_SIZE: usize = 32; +pub const TLS_CIPHER_AES_GCM_256_SALT_SIZE: usize = 4; +pub const TLS_CIPHER_AES_GCM_256_TAG_SIZE: usize = 16; +pub const TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE: usize = 8; + +pub const TLS_CIPHER_CHACHA20_POLY1305: ::__u16 = 54; +pub const TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE: usize = 12; +pub const TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE: usize = 32; +pub const TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE: usize = 0; +pub const TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE: usize = 16; +pub const TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE: usize = 8; + +pub const TLS_SET_RECORD_TYPE: ::c_int = 1; +pub const TLS_GET_RECORD_TYPE: ::c_int = 2; + +pub const SOL_TLS: ::c_int = 282; + // linux/if_alg.h pub const ALG_SET_KEY: ::c_int = 1; pub const ALG_SET_IV: ::c_int = 2; pub const ALG_SET_OP: ::c_int = 3; pub const ALG_SET_AEAD_ASSOCLEN: ::c_int = 4; pub const ALG_SET_AEAD_AUTHSIZE: ::c_int = 5; +pub const ALG_SET_DRBG_ENTROPY: ::c_int = 6; +pub const ALG_SET_KEY_BY_KEY_SERIAL: ::c_int = 7; pub const ALG_OP_DECRYPT: ::c_int = 0; pub const ALG_OP_ENCRYPT: ::c_int = 1; @@ -3544,20 +4045,33 @@ pub const UINPUT_MAX_NAME_SIZE: usize = 80; // uapi/linux/fanotify.h pub const FAN_ACCESS: u64 = 0x0000_0001; pub const FAN_MODIFY: u64 = 0x0000_0002; +pub const FAN_ATTRIB: u64 = 0x0000_0004; pub const FAN_CLOSE_WRITE: u64 = 0x0000_0008; pub const FAN_CLOSE_NOWRITE: u64 = 0x0000_0010; pub const FAN_OPEN: u64 = 0x0000_0020; +pub const FAN_MOVED_FROM: u64 = 0x0000_0040; +pub const FAN_MOVED_TO: u64 = 0x0000_0080; +pub const FAN_CREATE: u64 = 0x0000_0100; +pub const FAN_DELETE: u64 = 0x0000_0200; +pub const FAN_DELETE_SELF: u64 = 0x0000_0400; +pub const FAN_MOVE_SELF: u64 = 0x0000_0800; +pub const FAN_OPEN_EXEC: u64 = 0x0000_1000; pub const FAN_Q_OVERFLOW: u64 = 0x0000_4000; +pub const FAN_FS_ERROR: u64 = 0x0000_8000; pub const FAN_OPEN_PERM: u64 = 0x0001_0000; pub const FAN_ACCESS_PERM: u64 = 0x0002_0000; - -pub const FAN_ONDIR: u64 = 0x4000_0000; +pub const FAN_OPEN_EXEC_PERM: u64 = 0x0004_0000; pub const FAN_EVENT_ON_CHILD: u64 = 0x0800_0000; +pub const FAN_RENAME: u64 = 0x1000_0000; + +pub const FAN_ONDIR: u64 = 0x4000_0000; + pub const FAN_CLOSE: u64 = FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE; +pub const FAN_MOVE: u64 = FAN_MOVED_FROM | FAN_MOVED_TO; pub const FAN_CLOEXEC: ::c_uint = 0x0000_0001; pub const FAN_NONBLOCK: ::c_uint = 0x0000_0002; @@ -3568,6 +4082,18 @@ pub const FAN_CLASS_PRE_CONTENT: ::c_uint = 0x0000_0008; pub const FAN_UNLIMITED_QUEUE: ::c_uint = 0x0000_0010; pub const FAN_UNLIMITED_MARKS: ::c_uint = 0x0000_0020; +pub const FAN_ENABLE_AUDIT: ::c_uint = 0x0000_0040; + +pub const FAN_REPORT_PIDFD: ::c_uint = 0x0000_0080; +pub const FAN_REPORT_TID: ::c_uint = 0x0000_0100; +pub const FAN_REPORT_FID: ::c_uint = 0x0000_0200; +pub const FAN_REPORT_DIR_FID: ::c_uint = 0x0000_0400; +pub const FAN_REPORT_NAME: ::c_uint = 0x0000_0800; +pub const FAN_REPORT_TARGET_FID: ::c_uint = 0x0000_1000; + +pub const FAN_REPORT_DFID_NAME: ::c_uint = FAN_REPORT_DIR_FID | FAN_REPORT_NAME; +pub const FAN_REPORT_DFID_NAME_TARGET: ::c_uint = + FAN_REPORT_DFID_NAME | FAN_REPORT_FID | FAN_REPORT_TARGET_FID; pub const FAN_MARK_ADD: ::c_uint = 0x0000_0001; pub const FAN_MARK_REMOVE: ::c_uint = 0x0000_0002; @@ -3576,13 +4102,37 @@ pub const FAN_MARK_ONLYDIR: ::c_uint = 0x0000_0008; pub const FAN_MARK_IGNORED_MASK: ::c_uint = 0x0000_0020; pub const FAN_MARK_IGNORED_SURV_MODIFY: ::c_uint = 0x0000_0040; pub const FAN_MARK_FLUSH: ::c_uint = 0x0000_0080; +pub const FAN_MARK_EVICTABLE: ::c_uint = 0x0000_0200; +pub const FAN_MARK_IGNORE: ::c_uint = 0x0000_0400; + +pub const FAN_MARK_INODE: ::c_uint = 0x0000_0000; +pub const FAN_MARK_MOUNT: ::c_uint = 0x0000_0010; +pub const FAN_MARK_FILESYSTEM: ::c_uint = 0x0000_0100; + +pub const FAN_MARK_IGNORE_SURV: ::c_uint = FAN_MARK_IGNORE | FAN_MARK_IGNORED_SURV_MODIFY; pub const FANOTIFY_METADATA_VERSION: u8 = 3; +pub const FAN_EVENT_INFO_TYPE_FID: u8 = 1; +pub const FAN_EVENT_INFO_TYPE_DFID_NAME: u8 = 2; +pub const FAN_EVENT_INFO_TYPE_DFID: u8 = 3; +pub const FAN_EVENT_INFO_TYPE_PIDFD: u8 = 4; +pub const FAN_EVENT_INFO_TYPE_ERROR: u8 = 5; + +pub const FAN_EVENT_INFO_TYPE_OLD_DFID_NAME: u8 = 10; +pub const FAN_EVENT_INFO_TYPE_NEW_DFID_NAME: u8 = 12; + +pub const FAN_RESPONSE_INFO_NONE: u8 = 0; +pub const FAN_RESPONSE_INFO_AUDIT_RULE: u8 = 1; + pub const FAN_ALLOW: u32 = 0x01; pub const FAN_DENY: u32 = 0x02; +pub const FAN_AUDIT: u32 = 0x10; +pub const FAN_INFO: u32 = 0x20; pub const FAN_NOFD: ::c_int = -1; +pub const FAN_NOPIDFD: ::c_int = FAN_NOFD; +pub const FAN_EPIDFD: ::c_int = -2; pub const FUTEX_WAIT: ::c_int = 0; pub const FUTEX_WAKE: ::c_int = 1; @@ -3922,6 +4472,198 @@ pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192; /// maximum number of services provided on the same listening port pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32; +pub const CTL_KERN: ::c_int = 1; +pub const CTL_VM: ::c_int = 2; +pub const CTL_NET: ::c_int = 3; +pub const CTL_FS: ::c_int = 5; +pub const CTL_DEBUG: ::c_int = 6; +pub const CTL_DEV: ::c_int = 7; +pub const CTL_BUS: ::c_int = 8; +pub const CTL_ABI: ::c_int = 9; +pub const CTL_CPU: ::c_int = 10; + +pub const CTL_BUS_ISA: ::c_int = 1; + +pub const INOTIFY_MAX_USER_INSTANCES: ::c_int = 1; +pub const INOTIFY_MAX_USER_WATCHES: ::c_int = 2; +pub const INOTIFY_MAX_QUEUED_EVENTS: ::c_int = 3; + +pub const KERN_OSTYPE: ::c_int = 1; +pub const KERN_OSRELEASE: ::c_int = 2; +pub const KERN_OSREV: ::c_int = 3; +pub const KERN_VERSION: ::c_int = 4; +pub const KERN_SECUREMASK: ::c_int = 5; +pub const KERN_PROF: ::c_int = 6; +pub const KERN_NODENAME: ::c_int = 7; +pub const KERN_DOMAINNAME: ::c_int = 8; +pub const KERN_PANIC: ::c_int = 15; +pub const KERN_REALROOTDEV: ::c_int = 16; +pub const KERN_SPARC_REBOOT: ::c_int = 21; +pub const KERN_CTLALTDEL: ::c_int = 22; +pub const KERN_PRINTK: ::c_int = 23; +pub const KERN_NAMETRANS: ::c_int = 24; +pub const KERN_PPC_HTABRECLAIM: ::c_int = 25; +pub const KERN_PPC_ZEROPAGED: ::c_int = 26; +pub const KERN_PPC_POWERSAVE_NAP: ::c_int = 27; +pub const KERN_MODPROBE: ::c_int = 28; +pub const KERN_SG_BIG_BUFF: ::c_int = 29; +pub const KERN_ACCT: ::c_int = 30; +pub const KERN_PPC_L2CR: ::c_int = 31; +pub const KERN_RTSIGNR: ::c_int = 32; +pub const KERN_RTSIGMAX: ::c_int = 33; +pub const KERN_SHMMAX: ::c_int = 34; +pub const KERN_MSGMAX: ::c_int = 35; +pub const KERN_MSGMNB: ::c_int = 36; +pub const KERN_MSGPOOL: ::c_int = 37; +pub const KERN_SYSRQ: ::c_int = 38; +pub const KERN_MAX_THREADS: ::c_int = 39; +pub const KERN_RANDOM: ::c_int = 40; +pub const KERN_SHMALL: ::c_int = 41; +pub const KERN_MSGMNI: ::c_int = 42; +pub const KERN_SEM: ::c_int = 43; +pub const KERN_SPARC_STOP_A: ::c_int = 44; +pub const KERN_SHMMNI: ::c_int = 45; +pub const KERN_OVERFLOWUID: ::c_int = 46; +pub const KERN_OVERFLOWGID: ::c_int = 47; +pub const KERN_SHMPATH: ::c_int = 48; +pub const KERN_HOTPLUG: ::c_int = 49; +pub const KERN_IEEE_EMULATION_WARNINGS: ::c_int = 50; +pub const KERN_S390_USER_DEBUG_LOGGING: ::c_int = 51; +pub const KERN_CORE_USES_PID: ::c_int = 52; +pub const KERN_TAINTED: ::c_int = 53; +pub const KERN_CADPID: ::c_int = 54; +pub const KERN_PIDMAX: ::c_int = 55; +pub const KERN_CORE_PATTERN: ::c_int = 56; +pub const KERN_PANIC_ON_OOPS: ::c_int = 57; +pub const KERN_HPPA_PWRSW: ::c_int = 58; +pub const KERN_HPPA_UNALIGNED: ::c_int = 59; +pub const KERN_PRINTK_RATELIMIT: ::c_int = 60; +pub const KERN_PRINTK_RATELIMIT_BURST: ::c_int = 61; +pub const KERN_PTY: ::c_int = 62; +pub const KERN_NGROUPS_MAX: ::c_int = 63; +pub const KERN_SPARC_SCONS_PWROFF: ::c_int = 64; +pub const KERN_HZ_TIMER: ::c_int = 65; +pub const KERN_UNKNOWN_NMI_PANIC: ::c_int = 66; +pub const KERN_BOOTLOADER_TYPE: ::c_int = 67; +pub const KERN_RANDOMIZE: ::c_int = 68; +pub const KERN_SETUID_DUMPABLE: ::c_int = 69; +pub const KERN_SPIN_RETRY: ::c_int = 70; +pub const KERN_ACPI_VIDEO_FLAGS: ::c_int = 71; +pub const KERN_IA64_UNALIGNED: ::c_int = 72; +pub const KERN_COMPAT_LOG: ::c_int = 73; +pub const KERN_MAX_LOCK_DEPTH: ::c_int = 74; +pub const KERN_NMI_WATCHDOG: ::c_int = 75; +pub const KERN_PANIC_ON_NMI: ::c_int = 76; + +pub const VM_OVERCOMMIT_MEMORY: ::c_int = 5; +pub const VM_PAGE_CLUSTER: ::c_int = 10; +pub const VM_DIRTY_BACKGROUND: ::c_int = 11; +pub const VM_DIRTY_RATIO: ::c_int = 12; +pub const VM_DIRTY_WB_CS: ::c_int = 13; +pub const VM_DIRTY_EXPIRE_CS: ::c_int = 14; +pub const VM_NR_PDFLUSH_THREADS: ::c_int = 15; +pub const VM_OVERCOMMIT_RATIO: ::c_int = 16; +pub const VM_PAGEBUF: ::c_int = 17; +pub const VM_HUGETLB_PAGES: ::c_int = 18; +pub const VM_SWAPPINESS: ::c_int = 19; +pub const VM_LOWMEM_RESERVE_RATIO: ::c_int = 20; +pub const VM_MIN_FREE_KBYTES: ::c_int = 21; +pub const VM_MAX_MAP_COUNT: ::c_int = 22; +pub const VM_LAPTOP_MODE: ::c_int = 23; +pub const VM_BLOCK_DUMP: ::c_int = 24; +pub const VM_HUGETLB_GROUP: ::c_int = 25; +pub const VM_VFS_CACHE_PRESSURE: ::c_int = 26; +pub const VM_LEGACY_VA_LAYOUT: ::c_int = 27; +pub const VM_SWAP_TOKEN_TIMEOUT: ::c_int = 28; +pub const VM_DROP_PAGECACHE: ::c_int = 29; +pub const VM_PERCPU_PAGELIST_FRACTION: ::c_int = 30; +pub const VM_ZONE_RECLAIM_MODE: ::c_int = 31; +pub const VM_MIN_UNMAPPED: ::c_int = 32; +pub const VM_PANIC_ON_OOM: ::c_int = 33; +pub const VM_VDSO_ENABLED: ::c_int = 34; +pub const VM_MIN_SLAB: ::c_int = 35; + +pub const NET_CORE: ::c_int = 1; +pub const NET_ETHER: ::c_int = 2; +pub const NET_802: ::c_int = 3; +pub const NET_UNIX: ::c_int = 4; +pub const NET_IPV4: ::c_int = 5; +pub const NET_IPX: ::c_int = 6; +pub const NET_ATALK: ::c_int = 7; +pub const NET_NETROM: ::c_int = 8; +pub const NET_AX25: ::c_int = 9; +pub const NET_BRIDGE: ::c_int = 10; +pub const NET_ROSE: ::c_int = 11; +pub const NET_IPV6: ::c_int = 12; +pub const NET_X25: ::c_int = 13; +pub const NET_TR: ::c_int = 14; +pub const NET_DECNET: ::c_int = 15; +pub const NET_ECONET: ::c_int = 16; +pub const NET_SCTP: ::c_int = 17; +pub const NET_LLC: ::c_int = 18; +pub const NET_NETFILTER: ::c_int = 19; +pub const NET_DCCP: ::c_int = 20; +pub const NET_IRDA: ::c_int = 412; + +// include/linux/sched.h +pub const PF_VCPU: ::c_int = 0x00000001; +pub const PF_IDLE: ::c_int = 0x00000002; +pub const PF_EXITING: ::c_int = 0x00000004; +pub const PF_POSTCOREDUMP: ::c_int = 0x00000008; +pub const PF_IO_WORKER: ::c_int = 0x00000010; +pub const PF_WQ_WORKER: ::c_int = 0x00000020; +pub const PF_FORKNOEXEC: ::c_int = 0x00000040; +pub const PF_MCE_PROCESS: ::c_int = 0x00000080; +pub const PF_SUPERPRIV: ::c_int = 0x00000100; +pub const PF_DUMPCORE: ::c_int = 0x00000200; +pub const PF_SIGNALED: ::c_int = 0x00000400; +pub const PF_MEMALLOC: ::c_int = 0x00000800; +pub const PF_NPROC_EXCEEDED: ::c_int = 0x00001000; +pub const PF_USED_MATH: ::c_int = 0x00002000; +pub const PF_USER_WORKER: ::c_int = 0x00004000; +pub const PF_NOFREEZE: ::c_int = 0x00008000; +pub const PF_KSWAPD: ::c_int = 0x00020000; +pub const PF_MEMALLOC_NOFS: ::c_int = 0x00040000; +pub const PF_MEMALLOC_NOIO: ::c_int = 0x00080000; +pub const PF_LOCAL_THROTTLE: ::c_int = 0x00100000; +pub const PF_KTHREAD: ::c_int = 0x00200000; +pub const PF_RANDOMIZE: ::c_int = 0x00400000; +pub const PF_NO_SETAFFINITY: ::c_int = 0x04000000; +pub const PF_MCE_EARLY: ::c_int = 0x08000000; +pub const PF_MEMALLOC_PIN: ::c_int = 0x10000000; + +pub const CSIGNAL: ::c_int = 0x000000ff; + +pub const SCHED_NORMAL: ::c_int = 0; +pub const SCHED_OTHER: ::c_int = 0; +pub const SCHED_FIFO: ::c_int = 1; +pub const SCHED_RR: ::c_int = 2; +pub const SCHED_BATCH: ::c_int = 3; +pub const SCHED_IDLE: ::c_int = 5; +pub const SCHED_DEADLINE: ::c_int = 6; + +pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000; + +pub const CLONE_PIDFD: ::c_int = 0x1000; + +pub const SCHED_FLAG_RESET_ON_FORK: ::c_int = 0x01; +pub const SCHED_FLAG_RECLAIM: ::c_int = 0x02; +pub const SCHED_FLAG_DL_OVERRUN: ::c_int = 0x04; +pub const SCHED_FLAG_KEEP_POLICY: ::c_int = 0x08; +pub const SCHED_FLAG_KEEP_PARAMS: ::c_int = 0x10; +pub const SCHED_FLAG_UTIL_CLAMP_MIN: ::c_int = 0x20; +pub const SCHED_FLAG_UTIL_CLAMP_MAX: ::c_int = 0x40; + +pub const SCHED_FLAG_KEEP_ALL: ::c_int = SCHED_FLAG_KEEP_POLICY | SCHED_FLAG_KEEP_PARAMS; + +pub const SCHED_FLAG_UTIL_CLAMP: ::c_int = SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX; + +pub const SCHED_FLAG_ALL: ::c_int = SCHED_FLAG_RESET_ON_FORK + | SCHED_FLAG_RECLAIM + | SCHED_FLAG_DL_OVERRUN + | SCHED_FLAG_KEEP_ALL + | SCHED_FLAG_UTIL_CLAMP; + f! { pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1) @@ -3937,7 +4679,7 @@ f! { as *mut cmsghdr; let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize; - if (next.offset(1)) as usize > max || + if (next.wrapping_offset(1)) as usize > max || next as usize + super::CMSG_ALIGN((*next).cmsg_len as usize) > max { 0 as *mut cmsghdr @@ -4136,7 +4878,7 @@ cfg_if! { host: *mut ::c_char, hostlen: ::socklen_t, serv: *mut ::c_char, - sevlen: ::socklen_t, + servlen: ::socklen_t, flags: ::c_int, ) -> ::c_int; pub fn getloadavg( @@ -4495,6 +5237,9 @@ extern "C" { flags: ::c_uint, ) -> ::ssize_t; pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; + pub fn eventfd_read(fd: ::c_int, value: *mut eventfd_t) -> ::c_int; + pub fn eventfd_write(fd: ::c_int, value: eventfd_t) -> ::c_int; + pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; @@ -4576,6 +5321,28 @@ extern "C" { attr: *const ::pthread_attr_t, guardsize: *mut ::size_t, ) -> ::c_int; + pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int; + pub fn pthread_attr_getinheritsched( + attr: *const ::pthread_attr_t, + inheritsched: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_attr_setinheritsched( + attr: *mut ::pthread_attr_t, + inheritsched: ::c_int, + ) -> ::c_int; + pub fn pthread_attr_getschedpolicy( + attr: *const ::pthread_attr_t, + policy: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_attr_setschedpolicy(attr: *mut ::pthread_attr_t, policy: ::c_int) -> ::c_int; + pub fn pthread_attr_getschedparam( + attr: *const ::pthread_attr_t, + param: *mut ::sched_param, + ) -> ::c_int; + pub fn pthread_attr_setschedparam( + attr: *mut ::pthread_attr_t, + param: *const ::sched_param, + ) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; pub fn pthread_condattr_getpshared( @@ -4764,7 +5531,7 @@ extern "C" { newfd: ::c_int, ) -> ::c_int; pub fn fread_unlocked( - ptr: *mut ::c_void, + buf: *mut ::c_void, size: ::size_t, nobj: ::size_t, stream: *mut ::FILE, @@ -4842,6 +5609,8 @@ extern "C" { longindex: *mut ::c_int, ) -> ::c_int; + pub fn pthread_once(control: *mut pthread_once_t, routine: extern "C" fn()) -> ::c_int; + pub fn copy_file_range( fd_in: ::c_int, off_in: *mut ::off64_t, diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/arm/mod.rs index c47fa2c4c..8225f26ad 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -235,6 +235,7 @@ pub const O_LARGEFILE: ::c_int = 0o400000; pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::c_int = 0x00000800; pub const TAB2: ::c_int = 0x00001000; @@ -311,8 +312,6 @@ pub const O_SYNC: ::c_int = 1052672; pub const O_RSYNC: ::c_int = 1052672; pub const O_DSYNC: ::c_int = 4096; -pub const SOCK_NONBLOCK: ::c_int = 2048; - pub const MAP_ANON: ::c_int = 0x0020; pub const MAP_GROWSDOWN: ::c_int = 0x0100; pub const MAP_DENYWRITE: ::c_int = 0x0800; @@ -326,7 +325,6 @@ pub const MAP_SYNC: ::c_int = 0x080000; pub const SOCK_STREAM: ::c_int = 1; pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_SEQPACKET: ::c_int = 5; pub const EDEADLK: ::c_int = 35; pub const ENAMETOOLONG: ::c_int = 36; @@ -451,9 +449,6 @@ pub const F_GETOWN: ::c_int = 9; pub const F_SETLK: ::c_int = 13; pub const F_SETLKW: ::c_int = 14; pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; pub const VEOF: usize = 4; pub const VEOL: usize = 11; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/hexagon.rs index f83d208d5..089c06f85 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -225,9 +225,6 @@ pub const F_GETOWN_EX: ::c_int = 16; pub const F_GETSIG: ::c_int = 11; pub const F_LINUX_SPECIFIC_BASE: ::c_int = 1024; pub const FLUSHO: ::c_int = 4096; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; pub const F_OWNER_PGRP: ::c_int = 2; pub const F_OWNER_PID: ::c_int = 1; pub const F_OWNER_TID: ::c_int = 0; @@ -265,7 +262,6 @@ pub const PF_FILE: ::c_int = 1; pub const PF_KCM: ::c_int = 41; pub const PF_MAX: ::c_int = 43; pub const PF_QIPCRTR: ::c_int = 42; -#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const SA_ONSTACK: ::c_int = 0x08000000; pub const SA_SIGINFO: ::c_int = 0x00000004; pub const SA_NOCLDWAIT: ::c_int = 0x00000002; @@ -295,8 +291,6 @@ pub const SIG_SETMASK: ::c_int = 2; // FIXME check these pub const SIG_BLOCK: ::c_int = 0x000000; pub const SIG_UNBLOCK: ::c_int = 0x01; pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_NONBLOCK: ::c_int = 2048; -pub const SOCK_SEQPACKET: ::c_int = 5; pub const SOCK_STREAM: ::c_int = 1; pub const SOL_CAIF: ::c_int = 278; pub const SOL_IUCV: ::c_int = 277; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/mips/mod.rs index d09b8278e..2fb405bbc 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -174,6 +174,7 @@ pub const O_LARGEFILE: ::c_int = 0x2000; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::c_int = 0x00000800; pub const TAB2: ::c_int = 0x00001000; @@ -250,8 +251,6 @@ pub const O_SYNC: ::c_int = 0o40020; pub const O_RSYNC: ::c_int = 0o40020; pub const O_DSYNC: ::c_int = 0o020; -pub const SOCK_NONBLOCK: ::c_int = 0o200; - pub const MAP_ANON: ::c_int = 0x800; pub const MAP_GROWSDOWN: ::c_int = 0x1000; pub const MAP_DENYWRITE: ::c_int = 0x2000; @@ -351,7 +350,6 @@ pub const ERFKILL: ::c_int = 167; pub const SOCK_STREAM: ::c_int = 2; pub const SOCK_DGRAM: ::c_int = 1; -pub const SOCK_SEQPACKET: ::c_int = 5; pub const SA_ONSTACK: ::c_int = 0x08000000; pub const SA_SIGINFO: ::c_int = 8; @@ -388,9 +386,6 @@ pub const F_GETOWN: ::c_int = 23; pub const F_SETLK: ::c_int = 34; pub const F_SETLKW: ::c_int = 35; pub const F_SETOWN: ::c_int = 24; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; pub const VEOF: usize = 16; pub const VEOL: usize = 17; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/powerpc.rs index b1669ade7..bdf25455f 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -167,6 +167,7 @@ pub const O_LARGEFILE: ::c_int = 0x10000; pub const MCL_CURRENT: ::c_int = 0x2000; pub const MCL_FUTURE: ::c_int = 0x4000; +pub const MCL_ONFAULT: ::c_int = 0x8000; pub const CBAUD: ::tcflag_t = 0o0000377; pub const TAB1: ::c_int = 0x00000400; pub const TAB2: ::c_int = 0x00000800; @@ -243,8 +244,6 @@ pub const O_SYNC: ::c_int = 1052672; pub const O_RSYNC: ::c_int = 1052672; pub const O_DSYNC: ::c_int = 4096; -pub const SOCK_NONBLOCK: ::c_int = 2048; - pub const MAP_ANON: ::c_int = 0x0020; pub const MAP_GROWSDOWN: ::c_int = 0x0100; pub const MAP_DENYWRITE: ::c_int = 0x0800; @@ -262,7 +261,6 @@ pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 0x1e; pub const SOCK_STREAM: ::c_int = 1; pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_SEQPACKET: ::c_int = 5; pub const EDEADLK: ::c_int = 35; pub const ENAMETOOLONG: ::c_int = 36; @@ -380,16 +378,11 @@ pub const SIG_UNBLOCK: ::c_int = 0x01; pub const EXTPROC: ::tcflag_t = 0x10000000; -pub const MAP_HUGETLB: ::c_int = 0x040000; - pub const F_GETLK: ::c_int = 12; pub const F_GETOWN: ::c_int = 9; pub const F_SETLK: ::c_int = 13; pub const F_SETLKW: ::c_int = 14; pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; pub const VEOF: usize = 4; pub const VEOL: usize = 6; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index bf7a4f59c..f963f645a 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -323,9 +323,11 @@ pub const POLLWRBAND: ::c_short = 512; pub const O_ASYNC: ::c_int = 8192; pub const O_NDELAY: ::c_int = 2048; pub const EFD_NONBLOCK: ::c_int = 2048; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; pub const F_SETOWN: ::c_int = 8; +pub const F_GETOWN: ::c_int = 9; +pub const F_GETLK: ::c_int = 12; +pub const F_SETLK: ::c_int = 13; +pub const F_SETLKW: ::c_int = 14; pub const SFD_NONBLOCK: ::c_int = 2048; pub const TCSANOW: ::c_int = 0; pub const TCSADRAIN: ::c_int = 1; @@ -353,6 +355,7 @@ pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; pub const O_DIRECT: ::c_int = 16384; pub const O_DIRECTORY: ::c_int = 65536; +pub const O_LARGEFILE: ::c_int = 0o0100000; pub const O_NOFOLLOW: ::c_int = 131072; pub const MAP_HUGETLB: ::c_int = 262144; pub const MAP_LOCKED: ::c_int = 8192; @@ -376,6 +379,7 @@ pub const FIONCLEX: ::c_int = 21584; pub const FIONBIO: ::c_int = 21537; pub const MCL_CURRENT: ::c_int = 1; pub const MCL_FUTURE: ::c_int = 2; +pub const MCL_ONFAULT: ::c_int = 4; pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; pub const CBAUD: ::tcflag_t = 4111; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/x86/mod.rs index aaca917fa..12280851e 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -157,6 +157,22 @@ s! { } s_no_extra_traits! { + pub struct user_fpxregs_struct { + pub cwd: ::c_ushort, + pub swd: ::c_ushort, + pub twd: ::c_ushort, + pub fop: ::c_ushort, + pub fip: ::c_long, + pub fcs: ::c_long, + pub foo: ::c_long, + pub fos: ::c_long, + pub mxcsr: ::c_long, + __reserved: ::c_long, + pub st_space: [::c_long; 32], + pub xmm_space: [::c_long; 32], + padding: [::c_long; 56], + } + pub struct ucontext_t { pub uc_flags: ::c_ulong, pub uc_link: *mut ucontext_t, @@ -169,6 +185,64 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { + impl PartialEq for user_fpxregs_struct { + fn eq(&self, other: &user_fpxregs_struct) -> bool { + self.cwd == other.cwd + && self.swd == other.swd + && self.twd == other.twd + && self.fop == other.fop + && self.fip == other.fip + && self.fcs == other.fcs + && self.foo == other.foo + && self.fos == other.fos + && self.mxcsr == other.mxcsr + // Ignore __reserved field + && self.st_space == other.st_space + && self.xmm_space == other.xmm_space + // Ignore padding field + } + } + + impl Eq for user_fpxregs_struct {} + + impl ::fmt::Debug for user_fpxregs_struct { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("user_fpxregs_struct") + .field("cwd", &self.cwd) + .field("swd", &self.swd) + .field("twd", &self.twd) + .field("fop", &self.fop) + .field("fip", &self.fip) + .field("fcs", &self.fcs) + .field("foo", &self.foo) + .field("fos", &self.fos) + .field("mxcsr", &self.mxcsr) + // Ignore __reserved field + .field("st_space", &self.st_space) + .field("xmm_space", &self.xmm_space) + // Ignore padding field + .finish() + } + } + + impl ::hash::Hash for user_fpxregs_struct { + fn hash(&self, state: &mut H) { + self.cwd.hash(state); + self.swd.hash(state); + self.twd.hash(state); + self.fop.hash(state); + self.fip.hash(state); + self.fcs.hash(state); + self.foo.hash(state); + self.fos.hash(state); + self.mxcsr.hash(state); + // Ignore __reserved field + self.st_space.hash(state); + self.xmm_space.hash(state); + // Ignore padding field + } + } + impl PartialEq for ucontext_t { fn eq(&self, other: &ucontext_t) -> bool { self.uc_flags == other.uc_flags @@ -224,6 +298,7 @@ pub const O_LARGEFILE: ::c_int = 0o0100000; pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::c_int = 0x00000800; pub const TAB2: ::c_int = 0x00001000; @@ -300,8 +375,6 @@ pub const O_SYNC: ::c_int = 1052672; pub const O_RSYNC: ::c_int = 1052672; pub const O_DSYNC: ::c_int = 4096; -pub const SOCK_NONBLOCK: ::c_int = 2048; - pub const MAP_ANON: ::c_int = 0x0020; pub const MAP_GROWSDOWN: ::c_int = 0x0100; pub const MAP_DENYWRITE: ::c_int = 0x0800; @@ -315,7 +388,6 @@ pub const MAP_SYNC: ::c_int = 0x080000; pub const SOCK_STREAM: ::c_int = 1; pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_SEQPACKET: ::c_int = 5; pub const EDEADLK: ::c_int = 35; pub const ENAMETOOLONG: ::c_int = 36; @@ -441,9 +513,6 @@ pub const F_GETOWN: ::c_int = 9; pub const F_SETLK: ::c_int = 13; pub const F_SETLKW: ::c_int = 14; pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; pub const VEOF: usize = 4; pub const VEOL: usize = 11; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 14b4bc6d6..54e072b31 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -250,9 +250,6 @@ pub const F_GETOWN: ::c_int = 9; pub const F_SETLK: ::c_int = 6; pub const F_SETLKW: ::c_int = 7; pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; pub const VEOF: usize = 4; @@ -567,6 +564,7 @@ pub const SYS_set_mempolicy_home_node: ::c_long = 450; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::c_int = 0x00000800; pub const TAB2: ::c_int = 0x00001000; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs new file mode 100644 index 000000000..dc191f51f --- /dev/null +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs @@ -0,0 +1,40 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } +} + +s! { + pub struct ucontext_t { + pub uc_flags: ::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: ::stack_t, + pub uc_sigmask: ::sigset_t, + pub uc_mcontext: mcontext_t, + } + + #[repr(align(16))] + pub struct mcontext_t { + pub __pc: ::c_ulonglong, + pub __gregs: [::c_ulonglong; 32], + pub __flags: ::c_uint, + pub __extcontext: [::c_ulonglong; 0], + } + + #[repr(align(8))] + pub struct clone_args { + pub flags: ::c_ulonglong, + pub pidfd: ::c_ulonglong, + pub child_tid: ::c_ulonglong, + pub parent_tid: ::c_ulonglong, + pub exit_signal: ::c_ulonglong, + pub stack: ::c_ulonglong, + pub stack_size: ::c_ulonglong, + pub tls: ::c_ulonglong, + pub set_tid: ::c_ulonglong, + pub set_tid_size: ::c_ulonglong, + pub cgroup: ::c_ulonglong, + } +} diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs new file mode 100644 index 000000000..59a824b23 --- /dev/null +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -0,0 +1,669 @@ +//! LoongArch-specific definitions for 64-bit linux-like values + +pub type c_char = i8; +pub type wchar_t = ::c_int; + +pub type nlink_t = ::c_uint; +pub type blksize_t = ::c_int; +pub type fsblkcnt64_t = ::c_ulong; +pub type fsfilcnt64_t = ::c_ulong; +pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; + +s! { + pub struct pthread_attr_t { + __size: [::c_ulong; 7], + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad1: ::dev_t, + pub st_size: ::off_t, + pub st_blksize: ::blksize_t, + __pad2: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2usize], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + pub __pad1: ::dev_t, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub __pad2: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_int; 2], + } + + pub struct statfs { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_frsize: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 4], + } + + pub struct statfs64 { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_blocks: ::fsblkcnt64_t, + pub f_bfree: ::fsblkcnt64_t, + pub f_bavail: ::fsblkcnt64_t, + pub f_files: ::fsfilcnt64_t, + pub f_ffree: ::fsfilcnt64_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_frsize: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 4], + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::c_uint, + pub __seq: ::c_ushort, + __pad2: ::c_ushort, + __unused1: ::c_ulong, + __unused2: ::c_ulong, + } + + pub struct user_regs_struct { + pub regs: [u64; 32], + pub orig_a0: u64, + pub csr_era: u64, + pub csr_badv: u64, + pub reserved: [u64; 10], + + } + + pub struct user_fp_struct { + pub fpr: [u64; 32], + pub fcc: u64, + pub fcsr: u32, + } +} + +pub const SYS_io_setup: ::c_long = 0; +pub const SYS_io_destroy: ::c_long = 1; +pub const SYS_io_submit: ::c_long = 2; +pub const SYS_io_cancel: ::c_long = 3; +pub const SYS_io_getevents: ::c_long = 4; +pub const SYS_setxattr: ::c_long = 5; +pub const SYS_lsetxattr: ::c_long = 6; +pub const SYS_fsetxattr: ::c_long = 7; +pub const SYS_getxattr: ::c_long = 8; +pub const SYS_lgetxattr: ::c_long = 9; +pub const SYS_fgetxattr: ::c_long = 10; +pub const SYS_listxattr: ::c_long = 11; +pub const SYS_llistxattr: ::c_long = 12; +pub const SYS_flistxattr: ::c_long = 13; +pub const SYS_removexattr: ::c_long = 14; +pub const SYS_lremovexattr: ::c_long = 15; +pub const SYS_fremovexattr: ::c_long = 16; +pub const SYS_getcwd: ::c_long = 17; +pub const SYS_lookup_dcookie: ::c_long = 18; +pub const SYS_eventfd2: ::c_long = 19; +pub const SYS_epoll_create1: ::c_long = 20; +pub const SYS_epoll_ctl: ::c_long = 21; +pub const SYS_epoll_pwait: ::c_long = 22; +pub const SYS_dup: ::c_long = 23; +pub const SYS_dup3: ::c_long = 24; +pub const SYS_fcntl: ::c_long = 25; +pub const SYS_inotify_init1: ::c_long = 26; +pub const SYS_inotify_add_watch: ::c_long = 27; +pub const SYS_inotify_rm_watch: ::c_long = 28; +pub const SYS_ioctl: ::c_long = 29; +pub const SYS_ioprio_set: ::c_long = 30; +pub const SYS_ioprio_get: ::c_long = 31; +pub const SYS_flock: ::c_long = 32; +pub const SYS_mknodat: ::c_long = 33; +pub const SYS_mkdirat: ::c_long = 34; +pub const SYS_unlinkat: ::c_long = 35; +pub const SYS_symlinkat: ::c_long = 36; +pub const SYS_linkat: ::c_long = 37; +pub const SYS_umount2: ::c_long = 39; +pub const SYS_mount: ::c_long = 40; +pub const SYS_pivot_root: ::c_long = 41; +pub const SYS_nfsservctl: ::c_long = 42; +pub const SYS_statfs: ::c_long = 43; +pub const SYS_fstatfs: ::c_long = 44; +pub const SYS_truncate: ::c_long = 45; +pub const SYS_ftruncate: ::c_long = 46; +pub const SYS_fallocate: ::c_long = 47; +pub const SYS_faccessat: ::c_long = 48; +pub const SYS_chdir: ::c_long = 49; +pub const SYS_fchdir: ::c_long = 50; +pub const SYS_chroot: ::c_long = 51; +pub const SYS_fchmod: ::c_long = 52; +pub const SYS_fchmodat: ::c_long = 53; +pub const SYS_fchownat: ::c_long = 54; +pub const SYS_fchown: ::c_long = 55; +pub const SYS_openat: ::c_long = 56; +pub const SYS_close: ::c_long = 57; +pub const SYS_vhangup: ::c_long = 58; +pub const SYS_pipe2: ::c_long = 59; +pub const SYS_quotactl: ::c_long = 60; +pub const SYS_getdents64: ::c_long = 61; +pub const SYS_lseek: ::c_long = 62; +pub const SYS_read: ::c_long = 63; +pub const SYS_write: ::c_long = 64; +pub const SYS_readv: ::c_long = 65; +pub const SYS_writev: ::c_long = 66; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_preadv: ::c_long = 69; +pub const SYS_pwritev: ::c_long = 70; +pub const SYS_sendfile: ::c_long = 71; +pub const SYS_pselect6: ::c_long = 72; +pub const SYS_ppoll: ::c_long = 73; +pub const SYS_signalfd4: ::c_long = 74; +pub const SYS_vmsplice: ::c_long = 75; +pub const SYS_splice: ::c_long = 76; +pub const SYS_tee: ::c_long = 77; +pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_sync: ::c_long = 81; +pub const SYS_fsync: ::c_long = 82; +pub const SYS_fdatasync: ::c_long = 83; +pub const SYS_sync_file_range: ::c_long = 84; +pub const SYS_timerfd_create: ::c_long = 85; +pub const SYS_timerfd_settime: ::c_long = 86; +pub const SYS_timerfd_gettime: ::c_long = 87; +pub const SYS_utimensat: ::c_long = 88; +pub const SYS_acct: ::c_long = 89; +pub const SYS_capget: ::c_long = 90; +pub const SYS_capset: ::c_long = 91; +pub const SYS_personality: ::c_long = 92; +pub const SYS_exit: ::c_long = 93; +pub const SYS_exit_group: ::c_long = 94; +pub const SYS_waitid: ::c_long = 95; +pub const SYS_set_tid_address: ::c_long = 96; +pub const SYS_unshare: ::c_long = 97; +pub const SYS_futex: ::c_long = 98; +pub const SYS_set_robust_list: ::c_long = 99; +pub const SYS_get_robust_list: ::c_long = 100; +pub const SYS_nanosleep: ::c_long = 101; +pub const SYS_getitimer: ::c_long = 102; +pub const SYS_setitimer: ::c_long = 103; +pub const SYS_kexec_load: ::c_long = 104; +pub const SYS_init_module: ::c_long = 105; +pub const SYS_delete_module: ::c_long = 106; +pub const SYS_timer_create: ::c_long = 107; +pub const SYS_timer_gettime: ::c_long = 108; +pub const SYS_timer_getoverrun: ::c_long = 109; +pub const SYS_timer_settime: ::c_long = 110; +pub const SYS_timer_delete: ::c_long = 111; +pub const SYS_clock_settime: ::c_long = 112; +pub const SYS_clock_gettime: ::c_long = 113; +pub const SYS_clock_getres: ::c_long = 114; +pub const SYS_clock_nanosleep: ::c_long = 115; +pub const SYS_syslog: ::c_long = 116; +pub const SYS_ptrace: ::c_long = 117; +pub const SYS_sched_setparam: ::c_long = 118; +pub const SYS_sched_setscheduler: ::c_long = 119; +pub const SYS_sched_getscheduler: ::c_long = 120; +pub const SYS_sched_getparam: ::c_long = 121; +pub const SYS_sched_setaffinity: ::c_long = 122; +pub const SYS_sched_getaffinity: ::c_long = 123; +pub const SYS_sched_yield: ::c_long = 124; +pub const SYS_sched_get_priority_max: ::c_long = 125; +pub const SYS_sched_get_priority_min: ::c_long = 126; +pub const SYS_sched_rr_get_interval: ::c_long = 127; +pub const SYS_restart_syscall: ::c_long = 128; +pub const SYS_kill: ::c_long = 129; +pub const SYS_tkill: ::c_long = 130; +pub const SYS_tgkill: ::c_long = 131; +pub const SYS_sigaltstack: ::c_long = 132; +pub const SYS_rt_sigsuspend: ::c_long = 133; +pub const SYS_rt_sigaction: ::c_long = 134; +pub const SYS_rt_sigprocmask: ::c_long = 135; +pub const SYS_rt_sigpending: ::c_long = 136; +pub const SYS_rt_sigtimedwait: ::c_long = 137; +pub const SYS_rt_sigqueueinfo: ::c_long = 138; +pub const SYS_rt_sigreturn: ::c_long = 139; +pub const SYS_setpriority: ::c_long = 140; +pub const SYS_getpriority: ::c_long = 141; +pub const SYS_reboot: ::c_long = 142; +pub const SYS_setregid: ::c_long = 143; +pub const SYS_setgid: ::c_long = 144; +pub const SYS_setreuid: ::c_long = 145; +pub const SYS_setuid: ::c_long = 146; +pub const SYS_setresuid: ::c_long = 147; +pub const SYS_getresuid: ::c_long = 148; +pub const SYS_setresgid: ::c_long = 149; +pub const SYS_getresgid: ::c_long = 150; +pub const SYS_setfsuid: ::c_long = 151; +pub const SYS_setfsgid: ::c_long = 152; +pub const SYS_times: ::c_long = 153; +pub const SYS_setpgid: ::c_long = 154; +pub const SYS_getpgid: ::c_long = 155; +pub const SYS_getsid: ::c_long = 156; +pub const SYS_setsid: ::c_long = 157; +pub const SYS_getgroups: ::c_long = 158; +pub const SYS_setgroups: ::c_long = 159; +pub const SYS_uname: ::c_long = 160; +pub const SYS_sethostname: ::c_long = 161; +pub const SYS_setdomainname: ::c_long = 162; +pub const SYS_getrusage: ::c_long = 165; +pub const SYS_umask: ::c_long = 166; +pub const SYS_prctl: ::c_long = 167; +pub const SYS_getcpu: ::c_long = 168; +pub const SYS_gettimeofday: ::c_long = 169; +pub const SYS_settimeofday: ::c_long = 170; +pub const SYS_adjtimex: ::c_long = 171; +pub const SYS_getpid: ::c_long = 172; +pub const SYS_getppid: ::c_long = 173; +pub const SYS_getuid: ::c_long = 174; +pub const SYS_geteuid: ::c_long = 175; +pub const SYS_getgid: ::c_long = 176; +pub const SYS_getegid: ::c_long = 177; +pub const SYS_gettid: ::c_long = 178; +pub const SYS_sysinfo: ::c_long = 179; +pub const SYS_mq_open: ::c_long = 180; +pub const SYS_mq_unlink: ::c_long = 181; +pub const SYS_mq_timedsend: ::c_long = 182; +pub const SYS_mq_timedreceive: ::c_long = 183; +pub const SYS_mq_notify: ::c_long = 184; +pub const SYS_mq_getsetattr: ::c_long = 185; +pub const SYS_msgget: ::c_long = 186; +pub const SYS_msgctl: ::c_long = 187; +pub const SYS_msgrcv: ::c_long = 188; +pub const SYS_msgsnd: ::c_long = 189; +pub const SYS_semget: ::c_long = 190; +pub const SYS_semctl: ::c_long = 191; +pub const SYS_semtimedop: ::c_long = 192; +pub const SYS_semop: ::c_long = 193; +pub const SYS_shmget: ::c_long = 194; +pub const SYS_shmctl: ::c_long = 195; +pub const SYS_shmat: ::c_long = 196; +pub const SYS_shmdt: ::c_long = 197; +pub const SYS_socket: ::c_long = 198; +pub const SYS_socketpair: ::c_long = 199; +pub const SYS_bind: ::c_long = 200; +pub const SYS_listen: ::c_long = 201; +pub const SYS_accept: ::c_long = 202; +pub const SYS_connect: ::c_long = 203; +pub const SYS_getsockname: ::c_long = 204; +pub const SYS_getpeername: ::c_long = 205; +pub const SYS_sendto: ::c_long = 206; +pub const SYS_recvfrom: ::c_long = 207; +pub const SYS_setsockopt: ::c_long = 208; +pub const SYS_getsockopt: ::c_long = 209; +pub const SYS_shutdown: ::c_long = 210; +pub const SYS_sendmsg: ::c_long = 211; +pub const SYS_recvmsg: ::c_long = 212; +pub const SYS_readahead: ::c_long = 213; +pub const SYS_brk: ::c_long = 214; +pub const SYS_munmap: ::c_long = 215; +pub const SYS_mremap: ::c_long = 216; +pub const SYS_add_key: ::c_long = 217; +pub const SYS_request_key: ::c_long = 218; +pub const SYS_keyctl: ::c_long = 219; +pub const SYS_clone: ::c_long = 220; +pub const SYS_execve: ::c_long = 221; +pub const SYS_mmap: ::c_long = 222; +pub const SYS_fadvise64: ::c_long = 223; +pub const SYS_swapon: ::c_long = 224; +pub const SYS_swapoff: ::c_long = 225; +pub const SYS_mprotect: ::c_long = 226; +pub const SYS_msync: ::c_long = 227; +pub const SYS_mlock: ::c_long = 228; +pub const SYS_munlock: ::c_long = 229; +pub const SYS_mlockall: ::c_long = 230; +pub const SYS_munlockall: ::c_long = 231; +pub const SYS_mincore: ::c_long = 232; +pub const SYS_madvise: ::c_long = 233; +pub const SYS_remap_file_pages: ::c_long = 234; +pub const SYS_mbind: ::c_long = 235; +pub const SYS_get_mempolicy: ::c_long = 236; +pub const SYS_set_mempolicy: ::c_long = 237; +pub const SYS_migrate_pages: ::c_long = 238; +pub const SYS_move_pages: ::c_long = 239; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; +pub const SYS_perf_event_open: ::c_long = 241; +pub const SYS_accept4: ::c_long = 242; +pub const SYS_recvmmsg: ::c_long = 243; +pub const SYS_arch_specific_syscall: ::c_long = 244; +pub const SYS_wait4: ::c_long = 260; +pub const SYS_prlimit64: ::c_long = 261; +pub const SYS_fanotify_init: ::c_long = 262; +pub const SYS_fanotify_mark: ::c_long = 263; +pub const SYS_name_to_handle_at: ::c_long = 264; +pub const SYS_open_by_handle_at: ::c_long = 265; +pub const SYS_clock_adjtime: ::c_long = 266; +pub const SYS_syncfs: ::c_long = 267; +pub const SYS_setns: ::c_long = 268; +pub const SYS_sendmmsg: ::c_long = 269; +pub const SYS_process_vm_readv: ::c_long = 270; +pub const SYS_process_vm_writev: ::c_long = 271; +pub const SYS_kcmp: ::c_long = 272; +pub const SYS_finit_module: ::c_long = 273; +pub const SYS_sched_setattr: ::c_long = 274; +pub const SYS_sched_getattr: ::c_long = 275; +pub const SYS_renameat2: ::c_long = 276; +pub const SYS_seccomp: ::c_long = 277; +pub const SYS_getrandom: ::c_long = 278; +pub const SYS_memfd_create: ::c_long = 279; +pub const SYS_bpf: ::c_long = 280; +pub const SYS_execveat: ::c_long = 281; +pub const SYS_userfaultfd: ::c_long = 282; +pub const SYS_membarrier: ::c_long = 283; +pub const SYS_mlock2: ::c_long = 284; +pub const SYS_copy_file_range: ::c_long = 285; +pub const SYS_preadv2: ::c_long = 286; +pub const SYS_pwritev2: ::c_long = 287; +pub const SYS_pkey_mprotect: ::c_long = 288; +pub const SYS_pkey_alloc: ::c_long = 289; +pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; +pub const SYS_io_pgetevents: ::c_long = 292; +pub const SYS_rseq: ::c_long = 293; +pub const SYS_kexec_file_load: ::c_long = 294; +pub const SYS_pidfd_send_signal: ::c_long = 424; +pub const SYS_io_uring_setup: ::c_long = 425; +pub const SYS_io_uring_enter: ::c_long = 426; +pub const SYS_io_uring_register: ::c_long = 427; +pub const SYS_open_tree: ::c_long = 428; +pub const SYS_move_mount: ::c_long = 429; +pub const SYS_fsopen: ::c_long = 430; +pub const SYS_fsconfig: ::c_long = 431; +pub const SYS_fsmount: ::c_long = 432; +pub const SYS_fspick: ::c_long = 433; +pub const SYS_pidfd_open: ::c_long = 434; +pub const SYS_clone3: ::c_long = 435; +pub const SYS_close_range: ::c_long = 436; +pub const SYS_openat2: ::c_long = 437; +pub const SYS_pidfd_getfd: ::c_long = 438; +pub const SYS_faccessat2: ::c_long = 439; +pub const SYS_process_madvise: ::c_long = 440; +pub const SYS_epoll_pwait2: ::c_long = 441; +pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_quotactl_fd: ::c_long = 443; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; +pub const SYS_process_mrelease: ::c_long = 448; +pub const SYS_futex_waitv: ::c_long = 449; +pub const SYS_set_mempolicy_home_node: ::c_long = 450; +pub const SYS_cachestat: ::c_long = 451; +pub const SYS_fchmodat2: ::c_long = 452; +pub const SYS_map_shadow_stack: ::c_long = 453; +pub const SYS_futex_wake: ::c_long = 454; +pub const SYS_futex_wait: ::c_long = 455; +pub const SYS_futex_requeue: ::c_long = 456; + +pub const O_APPEND: ::c_int = 1024; +pub const O_DIRECT: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_LARGEFILE: ::c_int = 0; +pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_ASYNC: ::c_int = 4096; + +pub const SIGSTKSZ: ::size_t = 16384; +pub const MINSIGSTKSZ: ::size_t = 4096; + +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0; +pub const SIG_UNBLOCK: ::c_int = 1; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; + +pub const VEOF: usize = 4; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_SYNC: ::c_int = 0x080000; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::c_int = 0x00000800; +pub const TAB2: ::c_int = 0x00001000; +pub const TAB3: ::c_int = 0x00001800; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const EDEADLK: ::c_int = 35; +pub const EDEADLOCK: ::c_int = EDEADLK; +pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 0x00008000; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const FLUSHO: ::tcflag_t = 0x00001000; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/mips64.rs index 22ac91690..18fa6c664 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -612,12 +612,10 @@ pub const F_GETOWN: ::c_int = 23; pub const F_SETOWN: ::c_int = 24; pub const F_SETLK: ::c_int = 6; pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::tcflag_t = 0x00000800; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs index f437355d9..d59343064 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs @@ -134,10 +134,6 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -pub const SOCK_NONBLOCK: ::c_int = 2048; - -pub const SOCK_SEQPACKET: ::c_int = 5; - extern "C" { pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; } @@ -161,6 +157,9 @@ cfg_if! { } else if #[cfg(any(target_arch = "riscv64"))] { mod riscv64; pub use self::riscv64::*; + } else if #[cfg(any(target_arch = "loongarch64"))] { + mod loongarch64; + pub use self::loongarch64::*; } else { // Unknown target_arch } diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/powerpc64.rs index c9bd94135..202abe879 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -212,9 +212,6 @@ pub const F_GETOWN: ::c_int = 9; pub const F_SETLK: ::c_int = 6; pub const F_SETLKW: ::c_int = 7; pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; pub const VEOF: usize = 4; @@ -626,6 +623,7 @@ pub const FLUSHO: ::tcflag_t = 0x00800000; pub const MCL_CURRENT: ::c_int = 0x2000; pub const MCL_FUTURE: ::c_int = 0x4000; +pub const MCL_ONFAULT: ::c_int = 0x8000; pub const CBAUD: ::tcflag_t = 0xff; pub const TAB1: ::c_int = 0x400; pub const TAB2: ::c_int = 0x800; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index 9e9dbf6c8..393f54d3f 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -469,6 +469,9 @@ pub const SYS_faccessat2: ::c_long = 439; pub const SYS_process_madvise: ::c_long = 440; pub const SYS_epoll_pwait2: ::c_long = 441; pub const SYS_mount_setattr: ::c_long = 442; +pub const SYS_landlock_create_ruleset: ::c_long = 444; +pub const SYS_landlock_add_rule: ::c_long = 445; +pub const SYS_landlock_restrict_self: ::c_long = 446; pub const O_APPEND: ::c_int = 1024; pub const O_DIRECT: ::c_int = 0x4000; @@ -604,9 +607,6 @@ pub const F_GETOWN: ::c_int = 9; pub const F_SETLK: ::c_int = 6; pub const F_SETLKW: ::c_int = 7; pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; pub const VEOF: usize = 4; @@ -630,6 +630,7 @@ pub const MAP_SYNC: ::c_int = 0x080000; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::c_int = 0x00000800; pub const TAB2: ::c_int = 0x00001000; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/s390x.rs index f338dcc54..aa4cbf87f 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -290,15 +290,13 @@ pub const EXTPROC: ::tcflag_t = 0x00010000; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const F_GETLK: ::c_int = 5; pub const F_GETOWN: ::c_int = 9; pub const F_SETOWN: ::c_int = 8; pub const F_SETLK: ::c_int = 6; pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; pub const VTIME: usize = 5; pub const VSWTC: usize = 7; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 9decf91bc..4d1786800 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -805,9 +805,6 @@ pub const F_GETOWN: ::c_int = 9; pub const F_SETLK: ::c_int = 6; pub const F_SETLKW: ::c_int = 7; pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; pub const VEOF: usize = 4; @@ -831,6 +828,7 @@ pub const MAP_SYNC: ::c_int = 0x080000; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::c_int = 0x00000800; pub const TAB2: ::c_int = 0x00001000; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/mod.rs index 4c6053389..36d8c2038 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/musl/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/musl/mod.rs @@ -271,6 +271,83 @@ s! { pub maxerror: ::c_long, pub esterror: ::c_long, } + + // linux/if_xdp.h + + pub struct sockaddr_xdp { + pub sxdp_family: ::__u16, + pub sxdp_flags: ::__u16, + pub sxdp_ifindex: ::__u32, + pub sxdp_queue_id: ::__u32, + pub sxdp_shared_umem_fd: ::__u32, + } + + pub struct xdp_ring_offset { + pub producer: ::__u64, + pub consumer: ::__u64, + pub desc: ::__u64, + pub flags: ::__u64, + } + + pub struct xdp_mmap_offsets { + pub rx: xdp_ring_offset, + pub tx: xdp_ring_offset, + pub fr: xdp_ring_offset, + pub cr: xdp_ring_offset, + } + + pub struct xdp_ring_offset_v1 { + pub producer: ::__u64, + pub consumer: ::__u64, + pub desc: ::__u64, + } + + pub struct xdp_mmap_offsets_v1 { + pub rx: xdp_ring_offset_v1, + pub tx: xdp_ring_offset_v1, + pub fr: xdp_ring_offset_v1, + pub cr: xdp_ring_offset_v1, + } + + pub struct xdp_umem_reg { + pub addr: ::__u64, + pub len: ::__u64, + pub chunk_size: ::__u32, + pub headroom: ::__u32, + pub flags: ::__u32, + } + + pub struct xdp_umem_reg_v1 { + pub addr: ::__u64, + pub len: ::__u64, + pub chunk_size: ::__u32, + pub headroom: ::__u32, + } + + pub struct xdp_statistics { + pub rx_dropped: ::__u64, + pub rx_invalid_descs: ::__u64, + pub tx_invalid_descs: ::__u64, + pub rx_ring_full: ::__u64, + pub rx_fill_ring_empty_descs: ::__u64, + pub tx_ring_empty_descs: ::__u64, + } + + pub struct xdp_statistics_v1 { + pub rx_dropped: ::__u64, + pub rx_invalid_descs: ::__u64, + pub tx_invalid_descs: ::__u64, + } + + pub struct xdp_options { + pub flags: ::__u32, + } + + pub struct xdp_desc { + pub addr: ::__u64, + pub len: ::__u32, + pub options: ::__u32, + } } s_no_extra_traits! { @@ -512,6 +589,10 @@ pub const ECOMM: ::c_int = 70; pub const EPROTO: ::c_int = 71; pub const EDOTDOT: ::c_int = 73; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; + pub const F_RDLCK: ::c_int = 0; pub const F_WRLCK: ::c_int = 1; pub const F_UNLCK: ::c_int = 2; @@ -541,7 +622,9 @@ pub const POSIX_MADV_DONTNEED: ::c_int = 4; pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; +pub const SOCK_SEQPACKET: ::c_int = 5; pub const SOCK_DCCP: ::c_int = 6; +pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK; pub const SOCK_PACKET: ::c_int = 10; pub const SOMAXCONN: ::c_int = 128; @@ -585,11 +668,8 @@ pub const PTRACE_SEIZE: ::c_int = 0x4206; pub const PTRACE_INTERRUPT: ::c_int = 0x4207; pub const PTRACE_LISTEN: ::c_int = 0x4208; pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; - -pub const FAN_MARK_INODE: ::c_uint = 0x0000_0000; -pub const FAN_MARK_MOUNT: ::c_uint = 0x0000_0010; -// NOTE: FAN_MARK_FILESYSTEM requires Linux Kernel >= 4.20.0 -pub const FAN_MARK_FILESYSTEM: ::c_uint = 0x0000_0100; +pub const PTRACE_GETSIGMASK: ::c_uint = 0x420a; +pub const PTRACE_SETSIGMASK: ::c_uint = 0x420b; pub const AF_IB: ::c_int = 27; pub const AF_MPLS: ::c_int = 28; @@ -700,6 +780,40 @@ pub const TIME_ERROR: ::c_int = 5; pub const TIME_BAD: ::c_int = TIME_ERROR; pub const MAXTC: ::c_long = 6; +pub const SOL_XDP: ::c_int = 283; + +// linux/if_xdp.h +pub const XDP_SHARED_UMEM: ::__u16 = 1 << 0; +pub const XDP_COPY: ::__u16 = 1 << 1; +pub const XDP_ZEROCOPY: ::__u16 = 1 << 2; +pub const XDP_USE_NEED_WAKEUP: ::__u16 = 1 << 3; +pub const XDP_USE_SG: ::__u16 = 1 << 4; + +pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: ::__u32 = 1 << 0; + +pub const XDP_RING_NEED_WAKEUP: ::__u32 = 1 << 0; + +pub const XDP_MMAP_OFFSETS: ::c_int = 1; +pub const XDP_RX_RING: ::c_int = 2; +pub const XDP_TX_RING: ::c_int = 3; +pub const XDP_UMEM_REG: ::c_int = 4; +pub const XDP_UMEM_FILL_RING: ::c_int = 5; +pub const XDP_UMEM_COMPLETION_RING: ::c_int = 6; +pub const XDP_STATISTICS: ::c_int = 7; +pub const XDP_OPTIONS: ::c_int = 8; + +pub const XDP_OPTIONS_ZEROCOPY: ::__u32 = 1 << 0; + +pub const XDP_PGOFF_RX_RING: ::off_t = 0; +pub const XDP_PGOFF_TX_RING: ::off_t = 0x80000000; +pub const XDP_UMEM_PGOFF_FILL_RING: ::c_ulonglong = 0x100000000; +pub const XDP_UMEM_PGOFF_COMPLETION_RING: ::c_ulonglong = 0x180000000; + +pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: ::c_int = 48; +pub const XSK_UNALIGNED_BUF_ADDR_MASK: ::c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1; + +pub const XDP_PKT_CONTD: ::__u32 = 1 << 0; + cfg_if! { if #[cfg(target_arch = "s390x")] { pub const POSIX_FADV_DONTNEED: ::c_int = 6; @@ -769,14 +883,6 @@ extern "C" { pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; - pub fn strftime( - s: *mut ::c_char, - max: ::size_t, - format: *const ::c_char, - tm: *const ::tm, - ) -> ::size_t; - pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; pub fn basename(path: *mut ::c_char) -> *mut ::c_char; } @@ -791,7 +897,8 @@ cfg_if! { target_arch = "mips64", target_arch = "powerpc64", target_arch = "s390x", - target_arch = "riscv64"))] { + target_arch = "riscv64", + target_arch = "loongarch64"))] { mod b64; pub use self::b64::*; } else if #[cfg(any(target_arch = "x86", diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/no_align.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/no_align.rs index 6f5f2f7c0..328a5cc48 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/no_align.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/no_align.rs @@ -5,6 +5,7 @@ macro_rules! expand_align { #[cfg(any(target_arch = "x86_64", target_arch = "powerpc64", target_arch = "mips64", + target_arch = "mips64r6", target_arch = "s390x", target_arch = "sparc64", target_arch = "riscv64", @@ -16,6 +17,7 @@ macro_rules! expand_align { #[cfg(not(any(target_arch = "x86_64", target_arch = "powerpc64", target_arch = "mips64", + target_arch = "mips64r6", target_arch = "s390x", target_arch = "sparc64", target_arch = "riscv64", @@ -68,16 +70,20 @@ macro_rules! expand_align { pub struct pthread_mutex_t { #[cfg(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "m68k", + target_arch = "csky", target_arch = "powerpc", target_arch = "sparc", all(target_arch = "x86_64", target_pointer_width = "32")))] __align: [::c_long; 0], #[cfg(not(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "m68k", + target_arch = "csky", target_arch = "powerpc", target_arch = "sparc", all(target_arch = "x86_64", @@ -88,16 +94,20 @@ macro_rules! expand_align { pub struct pthread_rwlock_t { #[cfg(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "m68k", + target_arch = "csky", target_arch = "powerpc", target_arch = "sparc", all(target_arch = "x86_64", target_pointer_width = "32")))] __align: [::c_long; 0], #[cfg(not(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "m68k", + target_arch = "csky", target_arch = "powerpc", target_arch = "sparc", all(target_arch = "x86_64", @@ -108,16 +118,20 @@ macro_rules! expand_align { pub struct pthread_barrier_t { #[cfg(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "m68k", + target_arch = "csky", target_arch = "powerpc", target_arch = "sparc", all(target_arch = "x86_64", target_pointer_width = "32")))] __align: [::c_long; 0], #[cfg(not(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "m68k", + target_arch = "csky", target_arch = "powerpc", target_arch = "sparc", all(target_arch = "x86_64", diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/uclibc/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/uclibc/mod.rs index 4a01e0cd8..48b03e9ee 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/uclibc/mod.rs @@ -109,6 +109,7 @@ impl siginfo_t { pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const MCL_ONFAULT: ::c_int = 0x0004; pub const SIGEV_THREAD_ID: ::c_int = 4; @@ -245,9 +246,6 @@ pub const EDEADLOCK: ::c_int = EDEADLK; pub const EXTA: ::c_uint = B19200; pub const EXTB: ::c_uint = B38400; pub const EXTPROC: ::tcflag_t = 0200000; -pub const FAN_MARK_FILESYSTEM: ::c_int = 0x00000100; -pub const FAN_MARK_INODE: ::c_int = 0x00000000; -pub const FAN_MARK_MOUNT: ::c_int = 0x10; pub const FOPEN_MAX: ::c_int = 16; pub const F_GETOWN: ::c_int = 9; pub const F_OFD_GETLK: ::c_int = 36; @@ -282,7 +280,9 @@ pub const PF_NFC: ::c_int = 39; pub const PF_VSOCK: ::c_int = 40; pub const POSIX_MADV_DONTNEED: ::c_int = 4; pub const PTRACE_EVENT_STOP: ::c_int = 128; +pub const PTRACE_GETSIGMASK: ::c_uint = 0x420a; pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; +pub const PTRACE_SETSIGMASK: ::c_uint = 0x420b; pub const RTLD_NOLOAD: ::c_int = 0x00004; pub const RUSAGE_THREAD: ::c_int = 1; pub const SHM_EXEC: ::c_int = 0100000; @@ -343,7 +343,7 @@ extern "C" { host: *mut ::c_char, hostlen: ::socklen_t, serv: *mut ::c_char, - sevlen: ::socklen_t, + servlen: ::socklen_t, flags: ::c_int, ) -> ::c_int; diff --git a/src/rust/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs b/src/rust/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs index c7cbafa16..56a0e37f6 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs @@ -13,7 +13,7 @@ s! { /// Combination of granularity and offset. /// /// The granularity defines how many CPUs each bit in map describes. - /// The offset is the numer of the first CPU described by the first + /// The offset is the number of the first CPU described by the first /// bit in the bitmap. /// offset must be a multiple of 2^graularity. /// diff --git a/src/rust/vendor/libc/src/unix/linux_like/mod.rs b/src/rust/vendor/libc/src/unix/linux_like/mod.rs index 764f3ae79..749c8a16d 100644 --- a/src/rust/vendor/libc/src/unix/linux_like/mod.rs +++ b/src/rust/vendor/libc/src/unix/linux_like/mod.rs @@ -6,13 +6,9 @@ pub type timer_t = *mut ::c_void; pub type key_t = ::c_int; pub type id_t = ::c_uint; -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { - fn clone(&self) -> timezone { - *self - } +missing! { + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub enum timezone {} } s! { @@ -918,6 +914,8 @@ pub const IPPROTO_BEETPH: ::c_int = 94; pub const IPPROTO_MPLS: ::c_int = 137; /// Multipath TCP pub const IPPROTO_MPTCP: ::c_int = 262; +/// Ethernet-within-IPv6 encapsulation. +pub const IPPROTO_ETHERNET: ::c_int = 143; pub const MCAST_EXCLUDE: ::c_int = 0; pub const MCAST_INCLUDE: ::c_int = 1; @@ -1777,14 +1775,29 @@ extern "C" { pub fn uname(buf: *mut ::utsname) -> ::c_int; pub fn strchrnul(s: *const ::c_char, c: ::c_int) -> *mut ::c_char; + + pub fn strftime( + s: *mut ::c_char, + max: ::size_t, + format: *const ::c_char, + tm: *const ::tm, + ) -> ::size_t; + pub fn strftime_l( + s: *mut ::c_char, + max: ::size_t, + format: *const ::c_char, + tm: *const ::tm, + locale: ::locale_t, + ) -> ::size_t; + pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; } // LFS64 extensions // -// * musl has 64-bit versions only so aliases the LFS64 symbols to the standard ones +// * musl and Emscripten has 64-bit versions only so aliases the LFS64 symbols to the standard ones // * ulibc doesn't have preadv64/pwritev64 cfg_if! { - if #[cfg(not(target_env = "musl"))] { + if #[cfg(not(any(target_env = "musl", target_os = "emscripten")))] { extern "C" { pub fn fstatfs64(fd: ::c_int, buf: *mut statfs64) -> ::c_int; pub fn statvfs64(path: *const ::c_char, buf: *mut statvfs64) -> ::c_int; @@ -1842,7 +1855,7 @@ cfg_if! { } cfg_if! { - if #[cfg(not(any(target_env = "uclibc", target_env = "musl")))] { + if #[cfg(not(any(target_env = "uclibc", target_env = "musl", target_os = "emscripten")))] { extern "C" { pub fn preadv64( fd: ::c_int, diff --git a/src/rust/vendor/libc/src/unix/mod.rs b/src/rust/vendor/libc/src/unix/mod.rs index 762470a7f..49984d3f0 100644 --- a/src/rust/vendor/libc/src/unix/mod.rs +++ b/src/rust/vendor/libc/src/unix/mod.rs @@ -41,13 +41,9 @@ cfg_if! { } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum DIR {} -impl ::Copy for DIR {} -impl ::Clone for DIR { - fn clone(&self) -> DIR { - *self - } +missing! { + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub enum DIR {} } pub type locale_t = *mut ::c_void; @@ -321,7 +317,7 @@ cfg_if! { if #[cfg(any(target_os = "l4re", target_os = "espidf"))] { // required libraries for L4Re and the ESP-IDF framework are linked externally, ATM } else if #[cfg(feature = "std")] { - // cargo build, don't pull in anything extra as the libstd dep + // cargo build, don't pull in anything extra as the std dep // already pulls in all libs. } else if #[cfg(all(target_os = "linux", any(target_env = "gnu", target_env = "uclibc"), @@ -373,6 +369,7 @@ cfg_if! { target_os = "ios", target_os = "tvos", target_os = "watchos", + target_os = "visionos", target_os = "android", target_os = "openbsd", target_os = "nto", @@ -388,11 +385,6 @@ cfg_if! { #[link(name = "c")] #[link(name = "m")] extern {} - } else if #[cfg(target_os = "hermit")] { - // no_default_libraries is set to false for HermitCore, so only a link - // to "pthread" needs to be added. - #[link(name = "pthread")] - extern {} } else if #[cfg(target_env = "illumos")] { #[link(name = "c")] #[link(name = "m")] @@ -419,21 +411,11 @@ cfg_if! { } } -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum FILE {} -impl ::Copy for FILE {} -impl ::Clone for FILE { - fn clone(&self) -> FILE { - *self - } -} -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos_t {} -impl ::Clone for fpos_t { - fn clone(&self) -> fpos_t { - *self - } +missing! { + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub enum FILE {} + #[cfg_attr(feature = "extra_traits", derive(Debug))] + pub enum fpos_t {} // FIXME: fill this out with a struct } extern "C" { @@ -1061,7 +1043,8 @@ extern "C" { target_os = "macos", target_os = "ios", target_os = "tvos", - target_os = "watchos" + target_os = "watchos", + target_os = "visionos" ), link_name = "realpath$DARWIN_EXTSN" )] @@ -1081,6 +1064,10 @@ extern "C" { pub fn pthread_exit(value: *mut ::c_void) -> !; pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int; + pub fn pthread_attr_getstacksize( + attr: *const ::pthread_attr_t, + stacksize: *mut ::size_t, + ) -> ::c_int; pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, stack_size: ::size_t) -> ::c_int; pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, state: ::c_int) -> ::c_int; pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; @@ -1233,7 +1220,8 @@ extern "C" { target_os = "macos", target_os = "ios", target_os = "tvos", - target_os = "watchos" + target_os = "watchos", + target_os = "visionos" ), link_name = "res_9_init" )] @@ -1413,6 +1401,7 @@ extern "C" { pub fn lockf(fd: ::c_int, cmd: ::c_int, len: ::off_t) -> ::c_int; } + cfg_if! { if #[cfg(not(any(target_os = "emscripten", target_os = "android", @@ -1420,6 +1409,15 @@ cfg_if! { target_os = "nto")))] { extern "C" { pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> ::c_int; + } + } +} + +cfg_if! { + if #[cfg(not(any(target_os = "emscripten", + target_os = "android", + target_os = "nto")))] { + extern "C" { pub fn stpncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; } } @@ -1499,6 +1497,11 @@ cfg_if! { timeout: *mut timespec, sigmask: *const sigset_t, ) -> ::c_int; + pub fn sigaction( + signum: ::c_int, + act: *const sigaction, + oldact: *mut sigaction + ) -> ::c_int; } } else { extern { @@ -1564,6 +1567,7 @@ cfg_if! { target_os = "ios", target_os = "tvos", target_os = "watchos", + target_os = "visionos", target_os = "freebsd", target_os = "dragonfly", target_os = "openbsd", @@ -1577,9 +1581,6 @@ cfg_if! { } else if #[cfg(target_os = "haiku")] { mod haiku; pub use self::haiku::*; - } else if #[cfg(target_os = "hermit")] { - mod hermit; - pub use self::hermit::*; } else if #[cfg(target_os = "redox")] { mod redox; pub use self::redox::*; @@ -1589,6 +1590,9 @@ cfg_if! { } else if #[cfg(target_os = "aix")] { mod aix; pub use self::aix::*; + } else if #[cfg(target_os = "hurd")] { + mod hurd; + pub use self::hurd::*; } else { // Unknown target_os } diff --git a/src/rust/vendor/libc/src/unix/newlib/aarch64/mod.rs b/src/rust/vendor/libc/src/unix/newlib/aarch64/mod.rs index d686b3692..2b4713c9a 100644 --- a/src/rust/vendor/libc/src/unix/newlib/aarch64/mod.rs +++ b/src/rust/vendor/libc/src/unix/newlib/aarch64/mod.rs @@ -51,4 +51,4 @@ pub const MSG_WAITALL: ::c_int = 0; pub const MSG_MORE: ::c_int = 0; pub const MSG_NOSIGNAL: ::c_int = 0; -pub use crate::unix::newlib::generic::{sigset_t, stat}; +pub use crate::unix::newlib::generic::{dirent, sigset_t, stat}; diff --git a/src/rust/vendor/libc/src/unix/newlib/arm/mod.rs b/src/rust/vendor/libc/src/unix/newlib/arm/mod.rs index f644349cb..23b75977e 100644 --- a/src/rust/vendor/libc/src/unix/newlib/arm/mod.rs +++ b/src/rust/vendor/libc/src/unix/newlib/arm/mod.rs @@ -53,4 +53,4 @@ pub const MSG_WAITALL: ::c_int = 0; pub const MSG_MORE: ::c_int = 0; pub const MSG_NOSIGNAL: ::c_int = 0; -pub use crate::unix::newlib::generic::{sigset_t, stat}; +pub use crate::unix::newlib::generic::{dirent, sigset_t, stat}; diff --git a/src/rust/vendor/libc/src/unix/newlib/espidf/mod.rs b/src/rust/vendor/libc/src/unix/newlib/espidf/mod.rs index 804cd6645..e2e98ee9c 100644 --- a/src/rust/vendor/libc/src/unix/newlib/espidf/mod.rs +++ b/src/rust/vendor/libc/src/unix/newlib/espidf/mod.rs @@ -89,6 +89,16 @@ pub const MSG_EOR: ::c_int = 0x08; pub const PTHREAD_STACK_MIN: ::size_t = 768; +pub const SIGABRT: ::size_t = 1; +pub const SIGFPE: ::size_t = 1; +pub const SIGILL: ::size_t = 1; +pub const SIGINT: ::size_t = 1; +pub const SIGSEGV: ::size_t = 1; +pub const SIGTERM: ::size_t = 1; +pub const SIGHUP: ::size_t = 1; +pub const SIGQUIT: ::size_t = 1; +pub const NSIG: ::size_t = 2; + extern "C" { pub fn pthread_create( native: *mut ::pthread_t, @@ -107,4 +117,4 @@ extern "C" { pub fn eventfd(initval: ::c_uint, flags: ::c_int) -> ::c_int; } -pub use crate::unix::newlib::generic::{sigset_t, stat}; +pub use crate::unix::newlib::generic::{dirent, sigset_t, stat}; diff --git a/src/rust/vendor/libc/src/unix/newlib/generic.rs b/src/rust/vendor/libc/src/unix/newlib/generic.rs index db7797f17..e45413a7a 100644 --- a/src/rust/vendor/libc/src/unix/newlib/generic.rs +++ b/src/rust/vendor/libc/src/unix/newlib/generic.rs @@ -24,4 +24,10 @@ s! { pub st_blocks: ::blkcnt_t, pub st_spare4: [::c_long; 2usize], } + + pub struct dirent { + pub d_ino: ::ino_t, + pub d_type: ::c_uchar, + pub d_name: [::c_char; 256usize], + } } diff --git a/src/rust/vendor/libc/src/unix/newlib/horizon/mod.rs b/src/rust/vendor/libc/src/unix/newlib/horizon/mod.rs index bcb93ad9d..9c70f7b03 100644 --- a/src/rust/vendor/libc/src/unix/newlib/horizon/mod.rs +++ b/src/rust/vendor/libc/src/unix/newlib/horizon/mod.rs @@ -266,3 +266,5 @@ extern "C" { pub fn gethostid() -> ::c_long; } + +pub use crate::unix::newlib::generic::dirent; diff --git a/src/rust/vendor/libc/src/unix/newlib/mod.rs b/src/rust/vendor/libc/src/unix/newlib/mod.rs index ce84f1421..a572cc38b 100644 --- a/src/rust/vendor/libc/src/unix/newlib/mod.rs +++ b/src/rust/vendor/libc/src/unix/newlib/mod.rs @@ -1,13 +1,7 @@ pub type blkcnt_t = i32; pub type blksize_t = i32; -cfg_if! { - if #[cfg(target_os = "vita")] { - pub type clockid_t = ::c_uint; - } else { - pub type clockid_t = ::c_ulong; - } -} +pub type clockid_t = ::c_ulong; cfg_if! { if #[cfg(any(target_os = "espidf"))] { @@ -170,16 +164,6 @@ s! { pub sa_flags: ::c_int, } - pub struct dirent { - #[cfg(not(target_os = "vita"))] - pub d_ino: ino_t, - #[cfg(not(target_os = "vita"))] - pub d_type: ::c_uchar, - #[cfg(target_os = "vita")] - __offset: [u8; 88], - pub d_name: [::c_char; 256usize], - } - pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, @@ -546,8 +530,16 @@ pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast -pub const TCP_NODELAY: ::c_int = 8193; -pub const TCP_MAXSEG: ::c_int = 8194; +cfg_if! { + if #[cfg(target_os = "vita")] { + pub const TCP_NODELAY: ::c_int = 1; + pub const TCP_MAXSEG: ::c_int = 2; + } else { + pub const TCP_NODELAY: ::c_int = 8193; + pub const TCP_MAXSEG: ::c_int = 8194; + } +} + pub const TCP_NOPUSH: ::c_int = 4; pub const TCP_NOOPT: ::c_int = 8; pub const TCP_KEEPIDLE: ::c_int = 256; @@ -561,13 +553,25 @@ cfg_if! { pub const IP_TOS: ::c_int = 3; } } -pub const IP_TTL: ::c_int = 8; +cfg_if! { + if #[cfg(target_os = "vita")] { + pub const IP_TTL: ::c_int = 4; + } else { + pub const IP_TTL: ::c_int = 8; + } +} pub const IP_MULTICAST_IF: ::c_int = 9; pub const IP_MULTICAST_TTL: ::c_int = 10; pub const IP_MULTICAST_LOOP: ::c_int = 11; -pub const IP_ADD_MEMBERSHIP: ::c_int = 11; -pub const IP_DROP_MEMBERSHIP: ::c_int = 12; - +cfg_if! { + if #[cfg(target_os = "vita")] { + pub const IP_ADD_MEMBERSHIP: ::c_int = 12; + pub const IP_DROP_MEMBERSHIP: ::c_int = 13; + } else { + pub const IP_ADD_MEMBERSHIP: ::c_int = 11; + pub const IP_DROP_MEMBERSHIP: ::c_int = 12; + } +} pub const IPV6_UNICAST_HOPS: ::c_int = 4; pub const IPV6_MULTICAST_IF: ::c_int = 9; pub const IPV6_MULTICAST_HOPS: ::c_int = 10; @@ -598,10 +602,15 @@ pub const NI_NAMEREQD: ::c_int = 4; pub const NI_NUMERICSERV: ::c_int = 0; pub const NI_DGRAM: ::c_int = 0; -pub const EAI_FAMILY: ::c_int = -303; -pub const EAI_MEMORY: ::c_int = -304; -pub const EAI_NONAME: ::c_int = -305; -pub const EAI_SOCKTYPE: ::c_int = -307; +cfg_if! { + // Defined in vita/mod.rs for "vita" + if #[cfg(not(target_os = "vita"))] { + pub const EAI_FAMILY: ::c_int = -303; + pub const EAI_MEMORY: ::c_int = -304; + pub const EAI_NONAME: ::c_int = -305; + pub const EAI_SOCKTYPE: ::c_int = -307; + } +} pub const EXIT_SUCCESS: ::c_int = 0; pub const EXIT_FAILURE: ::c_int = 1; diff --git a/src/rust/vendor/libc/src/unix/newlib/powerpc/mod.rs b/src/rust/vendor/libc/src/unix/newlib/powerpc/mod.rs index 6bed1ce27..10faadbdf 100644 --- a/src/rust/vendor/libc/src/unix/newlib/powerpc/mod.rs +++ b/src/rust/vendor/libc/src/unix/newlib/powerpc/mod.rs @@ -5,7 +5,7 @@ pub type wchar_t = ::c_int; pub type c_long = i32; pub type c_ulong = u32; -pub use crate::unix::newlib::generic::{sigset_t, stat}; +pub use crate::unix::newlib::generic::{dirent, sigset_t, stat}; // the newlib shipped with devkitPPC does not support the following components: // - sockaddr diff --git a/src/rust/vendor/libc/src/unix/newlib/vita/mod.rs b/src/rust/vendor/libc/src/unix/newlib/vita/mod.rs index 6e2e4d3eb..d4c6955f3 100644 --- a/src/rust/vendor/libc/src/unix/newlib/vita/mod.rs +++ b/src/rust/vendor/libc/src/unix/newlib/vita/mod.rs @@ -9,6 +9,16 @@ pub type c_ulong = u32; pub type sigset_t = ::c_ulong; s! { + pub struct msghdr { + pub msg_name: *mut ::c_void, + pub msg_namelen: ::socklen_t, + pub msg_iov: *mut ::iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut ::c_void, + pub msg_controllen: ::socklen_t, + pub msg_flags: ::c_int, + } + pub struct sockaddr { pub sa_len: u8, pub sa_family: ::sa_family_t, @@ -35,6 +45,7 @@ s! { } pub struct sockaddr_un { + pub ss_len: u8, pub sun_family: ::sa_family_t, pub sun_path: [::c_char; 108usize], } @@ -42,9 +53,9 @@ s! { pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: ::sa_family_t, - pub __ss_pad1: [u8; 4], + pub __ss_pad1: [u8; 2], pub __ss_align: i64, - pub __ss_pad2: [u8; 4], + pub __ss_pad2: [u8; 116], } pub struct sched_param { @@ -67,16 +78,33 @@ s! { pub st_blocks: ::blkcnt_t, pub st_spare4: [::c_long; 2usize], } + + #[repr(align(8))] + pub struct dirent { + __offset: [u8; 88], + pub d_name: [::c_char; 256usize], + __pad: [u8; 8], + } } pub const AF_UNIX: ::c_int = 1; pub const AF_INET6: ::c_int = 24; +pub const SOCK_RAW: ::c_int = 3; +pub const SOCK_RDM: ::c_int = 4; +pub const SOCK_SEQPACKET: ::c_int = 5; + +pub const SOMAXCONN: ::c_int = 128; + pub const FIONBIO: ::c_ulong = 1; pub const POLLIN: ::c_short = 0x0001; pub const POLLPRI: ::c_short = POLLIN; pub const POLLOUT: ::c_short = 0x0004; +pub const POLLRDNORM: ::c_short = POLLIN; +pub const POLLRDBAND: ::c_short = POLLIN; +pub const POLLWRNORM: ::c_short = POLLOUT; +pub const POLLWRBAND: ::c_short = POLLOUT; pub const POLLERR: ::c_short = 0x0008; pub const POLLHUP: ::c_short = 0x0010; pub const POLLNVAL: ::c_short = 0x0020; @@ -141,11 +169,16 @@ pub const _SC_PAGESIZE: ::c_int = 8; pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 51; pub const PTHREAD_STACK_MIN: ::size_t = 32 * 1024; +pub const IP_HDRINCL: ::c_int = 2; + extern "C" { pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; + pub fn sendmsg(s: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn recvmsg(s: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn pthread_create( native: *mut ::pthread_t, attr: *const ::pthread_attr_t, @@ -198,4 +231,6 @@ extern "C" { pub fn pthread_getprocessorid_np() -> ::c_int; pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; + + pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; } diff --git a/src/rust/vendor/libc/src/unix/nto/mod.rs b/src/rust/vendor/libc/src/unix/nto/mod.rs index 5d13568e4..9eef23458 100644 --- a/src/rust/vendor/libc/src/unix/nto/mod.rs +++ b/src/rust/vendor/libc/src/unix/nto/mod.rs @@ -80,6 +80,33 @@ impl ::Clone for timezone { } s! { + pub struct dirent_extra { + pub d_datalen: u16, + pub d_type: u16, + pub d_reserved: u32, + } + + pub struct stat { + pub st_ino: ::ino_t, + pub st_size: ::off_t, + pub st_dev: ::dev_t, + pub st_rdev: ::dev_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub __old_st_mtime: ::_Time32t, + pub __old_st_atime: ::_Time32t, + pub __old_st_ctime: ::_Time32t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_blocksize: ::blksize_t, + pub st_nblocks: i32, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt_t, + pub st_mtim: ::timespec, + pub st_atim: ::timespec, + pub st_ctim: ::timespec, + } + pub struct ip_mreq { pub imr_multiaddr: in_addr, pub imr_interface: in_addr, @@ -641,7 +668,9 @@ s_no_extra_traits! { pub struct sigevent { pub sigev_notify: ::c_int, - __sigev_un1: usize, // union + pub __padding1: ::c_int, + pub sigev_signo: ::c_int, // union + pub __padding2: ::c_int, pub sigev_value: ::sigval, __sigev_un2: usize, // union @@ -654,33 +683,6 @@ s_no_extra_traits! { pub d_name: [::c_char; 1], // flex array } - pub struct dirent_extra { - pub d_datalen: u16, - pub d_type: u16, - pub d_reserved: u32, - } - - pub struct stat { - pub st_ino: ::ino_t, - pub st_size: ::off_t, - pub st_dev: ::dev_t, - pub st_rdev: ::dev_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub __old_st_mtime: ::_Time32t, - pub __old_st_atime: ::_Time32t, - pub __old_st_ctime: ::_Time32t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_blocksize: ::blksize_t, - pub st_nblocks: i32, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_mtim: ::timespec, - pub st_atim: ::timespec, - pub st_ctim: ::timespec, - } - pub struct sigset_t { __val: [u32; 2], } @@ -756,6 +758,37 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { + // sigevent + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_notify == other.sigev_notify + && self.sigev_signo == other.sigev_signo + && self.sigev_value == other.sigev_value + && self.__sigev_un2 + == other.__sigev_un2 + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_notify", &self.sigev_notify) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_value", &self.sigev_value) + .field("__sigev_un2", + &self.__sigev_un2) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_notify.hash(state); + self.sigev_signo.hash(state); + self.sigev_value.hash(state); + self.__sigev_un2.hash(state); + } + } + impl PartialEq for sockaddr_un { fn eq(&self, other: &sockaddr_un) -> bool { self.sun_len == other.sun_len @@ -767,9 +800,7 @@ cfg_if! { .all(|(a,b)| a == b) } } - impl Eq for sockaddr_un {} - impl ::fmt::Debug for sockaddr_un { fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { f.debug_struct("sockaddr_un") @@ -788,6 +819,168 @@ cfg_if! { } } + // sigset_t + impl PartialEq for sigset_t { + fn eq(&self, other: &sigset_t) -> bool { + self.__val == other.__val + } + } + impl Eq for sigset_t {} + impl ::fmt::Debug for sigset_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigset_t") + .field("__val", &self.__val) + .finish() + } + } + impl ::hash::Hash for sigset_t { + fn hash(&self, state: &mut H) { + self.__val.hash(state); + } + } + + // msg + impl ::fmt::Debug for msg { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("msg") + .field("msg_next", &self.msg_next) + .field("msg_type", &self.msg_type) + .field("msg_ts", &self.msg_ts) + .field("msg_spot", &self.msg_spot) + .finish() + } + } + + // msqid_ds + impl ::fmt::Debug for msqid_ds { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("msqid_ds") + .field("msg_perm", &self.msg_perm) + .field("msg_first", &self.msg_first) + .field("msg_cbytes", &self.msg_cbytes) + .field("msg_qnum", &self.msg_qnum) + .field("msg_qbytes", &self.msg_qbytes) + .field("msg_lspid", &self.msg_lspid) + .field("msg_lrpid", &self.msg_lrpid) + .field("msg_stime", &self.msg_stime) + .field("msg_rtime", &self.msg_rtime) + .field("msg_ctime", &self.msg_ctime) + .finish() + } + } + + // sockaddr_dl + impl ::fmt::Debug for sockaddr_dl { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_dl") + .field("sdl_len", &self.sdl_len) + .field("sdl_family", &self.sdl_family) + .field("sdl_index", &self.sdl_index) + .field("sdl_type", &self.sdl_type) + .field("sdl_nlen", &self.sdl_nlen) + .field("sdl_alen", &self.sdl_alen) + .field("sdl_slen", &self.sdl_slen) + .field("sdl_data", &self.sdl_data) + .finish() + } + } + impl PartialEq for sockaddr_dl { + fn eq(&self, other: &sockaddr_dl) -> bool { + self.sdl_len == other.sdl_len + && self.sdl_family == other.sdl_family + && self.sdl_index == other.sdl_index + && self.sdl_type == other.sdl_type + && self.sdl_nlen == other.sdl_nlen + && self.sdl_alen == other.sdl_alen + && self.sdl_slen == other.sdl_slen + && self + .sdl_data + .iter() + .zip(other.sdl_data.iter()) + .all(|(a,b)| a == b) + } + } + impl Eq for sockaddr_dl {} + impl ::hash::Hash for sockaddr_dl { + fn hash(&self, state: &mut H) { + self.sdl_len.hash(state); + self.sdl_family.hash(state); + self.sdl_index.hash(state); + self.sdl_type.hash(state); + self.sdl_nlen.hash(state); + self.sdl_alen.hash(state); + self.sdl_slen.hash(state); + self.sdl_data.hash(state); + } + } + + // sync_t + impl ::fmt::Debug for sync_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sync_t") + .field("__owner", &self.__owner) + .field("__u", &self.__u) + .finish() + } + } + + // pthread_barrier_t + impl ::fmt::Debug for pthread_barrier_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_barrier_t") + .field("__pad", &self.__pad) + .finish() + } + } + + // pthread_rwlock_t + impl ::fmt::Debug for pthread_rwlock_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("pthread_rwlock_t") + .field("__active", &self.__active) + .field("__blockedwriters", &self.__blockedwriters) + .field("__blockedreaders", &self.__blockedreaders) + .field("__heavy", &self.__heavy) + .field("__lock", &self.__lock) + .field("__rcond", &self.__rcond) + .field("__wcond", &self.__wcond) + .field("__owner", &self.__owner) + .field("__spare", &self.__spare) + .finish() + } + } + + // syspage_entry + impl ::fmt::Debug for syspage_entry { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("syspage_entry") + .field("size", &self.size) + .field("total_size", &self.total_size) + .field("type_", &self.type_) + .field("num_cpu", &self.num_cpu) + .field("system_private", &self.system_private) + .field("old_asinfo", &self.old_asinfo) + .field("hwinfo", &self.hwinfo) + .field("old_cpuinfo", &self.old_cpuinfo) + .field("old_cacheattr", &self.old_cacheattr) + .field("qtime", &self.qtime) + .field("callout", &self.callout) + .field("callin", &self.callin) + .field("typed_strings", &self.typed_strings) + .field("strings", &self.strings) + .field("old_intrinfo", &self.old_intrinfo) + .field("smp", &self.smp) + .field("pminfo", &self.pminfo) + .field("old_mdriver", &self.old_mdriver) + .field("new_asinfo", &self.new_asinfo) + .field("new_cpuinfo", &self.new_cpuinfo) + .field("new_cacheattr", &self.new_cacheattr) + .field("new_intrinfo", &self.new_intrinfo) + .field("new_mdriver", &self.new_mdriver) + .finish() + } + } + impl PartialEq for utsname { fn eq(&self, other: &utsname) -> bool { self.sysname @@ -868,6 +1061,16 @@ cfg_if! { .finish() } } + impl ::hash::Hash for mq_attr { + fn hash(&self, state: &mut H) { + self.mq_maxmsg.hash(state); + self.mq_msgsize.hash(state); + self.mq_flags.hash(state); + self.mq_curmsgs.hash(state); + self.mq_sendwait.hash(state); + self.mq_recvwait.hash(state); + } + } impl PartialEq for sockaddr_storage { fn eq(&self, other: &sockaddr_storage) -> bool { @@ -2354,6 +2557,7 @@ pub const RLIMIT_NPROC: ::c_int = 8; pub const RLIMIT_RSS: ::c_int = 6; pub const RLIMIT_STACK: ::c_int = 3; pub const RLIMIT_VMEM: ::c_int = 6; +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::c_int = 14; pub const SCHED_ADJTOHEAD: ::c_int = 5; @@ -2606,6 +2810,14 @@ f! { }; ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps } + + pub fn major(dev: ::dev_t) -> ::c_uint { + ((dev as ::c_uint) >> 10) & 0x3f + } + + pub fn minor(dev: ::dev_t) -> ::c_uint { + (dev as ::c_uint) & 0x3ff + } } safe_f! { @@ -2644,6 +2856,10 @@ safe_f! { pub {const} fn IPTOS_ECN(x: u8) -> u8 { x & ::IPTOS_ECN_MASK } + + pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { + ((major << 10) | (minor)) as ::dev_t + } } // Network related functions are provided by libsocket and regex @@ -2658,6 +2874,12 @@ extern "C" { pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + pub fn mknodat( + __fd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: ::dev_t, + ) -> ::c_int; pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; @@ -2871,6 +3093,7 @@ extern "C" { attr: *const ::pthread_attr_t, guardsize: *mut ::size_t, ) -> ::c_int; + pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; pub fn pthread_condattr_getpshared( @@ -3060,7 +3283,7 @@ extern "C" { host: *mut ::c_char, hostlen: ::socklen_t, serv: *mut ::c_char, - sevlen: ::socklen_t, + servlen: ::socklen_t, flags: ::c_int, ) -> ::c_int; diff --git a/src/rust/vendor/libc/src/unix/nto/neutrino.rs b/src/rust/vendor/libc/src/unix/nto/neutrino.rs index cedd21659..1a6f7da9c 100644 --- a/src/rust/vendor/libc/src/unix/nto/neutrino.rs +++ b/src/rust/vendor/libc/src/unix/nto/neutrino.rs @@ -1,6 +1,16 @@ pub type nto_job_t = ::sync_t; s! { + pub struct syspage_entry_info { + pub entry_off: u16, + pub entry_size: u16, + } + pub struct syspage_array_info { + entry_off: u16, + entry_size: u16, + element_size: u16, + } + pub struct intrspin { pub value: ::c_uint, // volatile } @@ -202,16 +212,6 @@ s! { } s_no_extra_traits! { - pub struct syspage_entry_info { - pub entry_off: u16, - pub entry_size: u16, - } - - pub struct syspage_array_info { - entry_off: u16, - entry_size: u16, - element_size: u16, - } #[repr(align(8))] pub struct syspage_entry { diff --git a/src/rust/vendor/libc/src/unix/redox/mod.rs b/src/rust/vendor/libc/src/unix/redox/mod.rs index 5003cda0a..5036f4580 100644 --- a/src/rust/vendor/libc/src/unix/redox/mod.rs +++ b/src/rust/vendor/libc/src/unix/redox/mod.rs @@ -28,20 +28,13 @@ pub type nfds_t = ::c_ulong; pub type nlink_t = ::c_ulong; pub type off_t = ::c_longlong; pub type pthread_t = *mut ::c_void; -pub type pthread_attr_t = *mut ::c_void; -pub type pthread_cond_t = *mut ::c_void; -pub type pthread_condattr_t = *mut ::c_void; -// Must be usize due to libstd/sys_common/thread_local.rs, +// Must be usize due to library/std/sys_common/thread_local.rs, // should technically be *mut ::c_void pub type pthread_key_t = usize; -pub type pthread_mutex_t = *mut ::c_void; -pub type pthread_mutexattr_t = *mut ::c_void; -pub type pthread_rwlock_t = *mut ::c_void; -pub type pthread_rwlockattr_t = *mut ::c_void; pub type rlim_t = ::c_ulonglong; pub type sa_family_t = u16; pub type sem_t = *mut ::c_void; -pub type sigset_t = ::c_ulong; +pub type sigset_t = ::c_ulonglong; pub type socklen_t = u32; pub type speed_t = u32; pub type suseconds_t = ::c_int; @@ -265,7 +258,74 @@ s! { pub uid: uid_t, pub gid: gid_t, } + + #[cfg_attr(target_pointer_width = "32", repr(C, align(4)))] + #[cfg_attr(target_pointer_width = "64", repr(C, align(8)))] + pub struct pthread_attr_t { + bytes: [u8; _PTHREAD_ATTR_SIZE], + } + #[repr(C)] + #[repr(align(4))] + pub struct pthread_barrier_t { + bytes: [u8; _PTHREAD_BARRIER_SIZE], + } + #[repr(C)] + #[repr(align(4))] + pub struct pthread_barrierattr_t { + bytes: [u8; _PTHREAD_BARRIERATTR_SIZE], + } + #[repr(C)] + #[repr(align(4))] + pub struct pthread_mutex_t { + bytes: [u8; _PTHREAD_MUTEX_SIZE], + } + #[repr(C)] + #[repr(align(4))] + pub struct pthread_rwlock_t { + bytes: [u8; _PTHREAD_RWLOCK_SIZE], + } + #[repr(C)] + #[repr(align(4))] + pub struct pthread_mutexattr_t { + bytes: [u8; _PTHREAD_MUTEXATTR_SIZE], + } + #[repr(C)] + #[repr(align(1))] + pub struct pthread_rwlockattr_t { + bytes: [u8; _PTHREAD_RWLOCKATTR_SIZE], + } + #[repr(C)] + #[repr(align(4))] + pub struct pthread_cond_t { + bytes: [u8; _PTHREAD_COND_SIZE], + } + #[repr(C)] + #[repr(align(4))] + pub struct pthread_condattr_t { + bytes: [u8; _PTHREAD_CONDATTR_SIZE], + } + #[repr(C)] + #[repr(align(4))] + pub struct pthread_once_t { + bytes: [u8; _PTHREAD_ONCE_SIZE], + } + #[repr(C)] + #[repr(align(4))] + pub struct pthread_spinlock_t { + bytes: [u8; _PTHREAD_SPINLOCK_SIZE], + } } +const _PTHREAD_ATTR_SIZE: usize = 32; +const _PTHREAD_RWLOCKATTR_SIZE: usize = 1; +const _PTHREAD_RWLOCK_SIZE: usize = 4; +const _PTHREAD_BARRIER_SIZE: usize = 24; +const _PTHREAD_BARRIERATTR_SIZE: usize = 4; +const _PTHREAD_CONDATTR_SIZE: usize = 8; +const _PTHREAD_COND_SIZE: usize = 8; +const _PTHREAD_MUTEX_SIZE: usize = 12; +const _PTHREAD_MUTEXATTR_SIZE: usize = 20; +const _PTHREAD_ONCE_SIZE: usize = 4; +const _PTHREAD_SPINLOCK_SIZE: usize = 4; pub const UTSLENGTH: usize = 65; @@ -549,9 +609,15 @@ pub const POLLWRBAND: ::c_short = 0x200; // pthread.h pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_MUTEX_INITIALIZER: ::pthread_mutex_t = -1isize as *mut _; -pub const PTHREAD_COND_INITIALIZER: ::pthread_cond_t = -1isize as *mut _; -pub const PTHREAD_RWLOCK_INITIALIZER: ::pthread_rwlock_t = -1isize as *mut _; +pub const PTHREAD_MUTEX_INITIALIZER: ::pthread_mutex_t = ::pthread_mutex_t { + bytes: [0; _PTHREAD_MUTEX_SIZE], +}; +pub const PTHREAD_COND_INITIALIZER: ::pthread_cond_t = ::pthread_cond_t { + bytes: [0; _PTHREAD_COND_SIZE], +}; +pub const PTHREAD_RWLOCK_INITIALIZER: ::pthread_rwlock_t = ::pthread_rwlock_t { + bytes: [0; _PTHREAD_RWLOCK_SIZE], +}; pub const PTHREAD_STACK_MIN: ::size_t = 4096; // signal.h @@ -611,22 +677,22 @@ pub const EPOLL_CLOEXEC: ::c_int = 0x0100_0000; pub const EPOLL_CTL_ADD: ::c_int = 1; pub const EPOLL_CTL_DEL: ::c_int = 2; pub const EPOLL_CTL_MOD: ::c_int = 3; -pub const EPOLLIN: ::c_int = 1; -pub const EPOLLPRI: ::c_int = 0; -pub const EPOLLOUT: ::c_int = 2; -pub const EPOLLRDNORM: ::c_int = 0; -pub const EPOLLNVAL: ::c_int = 0; -pub const EPOLLRDBAND: ::c_int = 0; -pub const EPOLLWRNORM: ::c_int = 0; -pub const EPOLLWRBAND: ::c_int = 0; -pub const EPOLLMSG: ::c_int = 0; -pub const EPOLLERR: ::c_int = 0; -pub const EPOLLHUP: ::c_int = 0; -pub const EPOLLRDHUP: ::c_int = 0; -pub const EPOLLEXCLUSIVE: ::c_int = 0; -pub const EPOLLWAKEUP: ::c_int = 0; -pub const EPOLLONESHOT: ::c_int = 0; -pub const EPOLLET: ::c_int = 0; +pub const EPOLLIN: ::c_int = 0x001; +pub const EPOLLPRI: ::c_int = 0x002; +pub const EPOLLOUT: ::c_int = 0x004; +pub const EPOLLERR: ::c_int = 0x008; +pub const EPOLLHUP: ::c_int = 0x010; +pub const EPOLLNVAL: ::c_int = 0x020; +pub const EPOLLRDNORM: ::c_int = 0x040; +pub const EPOLLRDBAND: ::c_int = 0x080; +pub const EPOLLWRNORM: ::c_int = 0x100; +pub const EPOLLWRBAND: ::c_int = 0x200; +pub const EPOLLMSG: ::c_int = 0x400; +pub const EPOLLRDHUP: ::c_int = 0x2000; +pub const EPOLLEXCLUSIVE: ::c_int = 1 << 28; +pub const EPOLLWAKEUP: ::c_int = 1 << 29; +pub const EPOLLONESHOT: ::c_int = 1 << 30; +pub const EPOLLET: ::c_int = 1 << 31; // sys/stat.h pub const S_IFMT: ::c_int = 0o0_170_000; @@ -663,6 +729,7 @@ pub const FIOCLEX: ::c_ulong = 0x5451; pub const TCGETS: ::c_ulong = 0x5401; pub const TCSETS: ::c_ulong = 0x5402; pub const TCFLSH: ::c_ulong = 0x540B; +pub const TIOCSCTTY: ::c_ulong = 0x540E; pub const TIOCGPGRP: ::c_ulong = 0x540F; pub const TIOCSPGRP: ::c_ulong = 0x5410; pub const TIOCGWINSZ: ::c_ulong = 0x5413; @@ -747,6 +814,7 @@ pub const SOCK_NONBLOCK: ::c_int = 0o4_000; pub const SOCK_CLOEXEC: ::c_int = 0o2_000_000; pub const SOCK_SEQPACKET: ::c_int = 5; pub const SOL_SOCKET: ::c_int = 1; +pub const SOMAXCONN: ::c_int = 128; // sys/termios.h pub const VEOF: usize = 0; @@ -1014,6 +1082,10 @@ extern "C" { pub fn getdtablesize() -> ::c_int; // grp.h + pub fn getgrent() -> *mut ::group; + pub fn setgrent(); + pub fn endgrent(); + pub fn getgrgid(gid: ::gid_t) -> *mut ::group; pub fn getgrgid_r( gid: ::gid_t, grp: *mut ::group, @@ -1021,6 +1093,7 @@ extern "C" { buflen: ::size_t, result: *mut *mut ::group, ) -> ::c_int; + pub fn getgrnam(name: *const ::c_char) -> *mut ::group; pub fn getgrnam_r( name: *const ::c_char, grp: *mut ::group, @@ -1066,6 +1139,15 @@ extern "C" { clock_id: ::clockid_t, ) -> ::c_int; + //pty.h + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *const termios, + winp: *const ::winsize, + ) -> ::c_int; + // pwd.h pub fn getpwent() -> *mut passwd; pub fn setpwent(); @@ -1101,9 +1183,15 @@ extern "C" { pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; // stdlib.h + pub fn getsubopt( + optionp: *mut *mut c_char, + tokens: *const *mut c_char, + valuep: *mut *mut c_char, + ) -> ::c_int; pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; // string.h + pub fn explicit_bzero(p: *mut ::c_void, len: ::size_t); pub fn strlcat(dst: *mut ::c_char, src: *const ::c_char, siz: ::size_t) -> ::size_t; pub fn strlcpy(dst: *mut ::c_char, src: *const ::c_char, siz: ::size_t) -> ::size_t; @@ -1130,6 +1218,8 @@ extern "C" { pub fn shm_unlink(name: *const ::c_char) -> ::c_int; // sys/resource.h + pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; + pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; @@ -1158,17 +1248,8 @@ extern "C" { pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - // strings.h - pub fn explicit_bzero(p: *mut ::c_void, len: ::size_t); - - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - - pub fn getsubopt( - optionp: *mut *mut c_char, - tokens: *const *mut c_char, - valuep: *mut *mut c_char, - ) -> ::c_int; + // utmp.h + pub fn login_tty(fd: ::c_int) -> ::c_int; } cfg_if! { diff --git a/src/rust/vendor/libc/src/unix/solarish/mod.rs b/src/rust/vendor/libc/src/unix/solarish/mod.rs index 400de8a26..7ed00413d 100644 --- a/src/rust/vendor/libc/src/unix/solarish/mod.rs +++ b/src/rust/vendor/libc/src/unix/solarish/mod.rs @@ -1294,12 +1294,13 @@ pub const O_EXCL: ::c_int = 1024; pub const O_NOCTTY: ::c_int = 2048; pub const O_TRUNC: ::c_int = 512; pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_DIRECTORY: ::c_int = 0x1000000; pub const O_SEARCH: ::c_int = 0x200000; pub const O_EXEC: ::c_int = 0x400000; pub const O_CLOEXEC: ::c_int = 0x800000; pub const O_ACCMODE: ::c_int = 0x600003; pub const O_XATTR: ::c_int = 0x4000; +pub const O_DIRECTORY: ::c_int = 0x1000000; +pub const O_DIRECT: ::c_int = 0x2000000; pub const S_IFIFO: mode_t = 4096; pub const S_IFCHR: mode_t = 8192; pub const S_IFBLK: mode_t = 24576; @@ -1825,7 +1826,10 @@ pub const SO_SNDTIMEO: ::c_int = 0x1005; pub const SO_RCVTIMEO: ::c_int = 0x1006; pub const SO_ERROR: ::c_int = 0x1007; pub const SO_TYPE: ::c_int = 0x1008; +pub const SO_PROTOTYPE: ::c_int = 0x1009; +pub const SO_DOMAIN: ::c_int = 0x100c; pub const SO_TIMESTAMP: ::c_int = 0x1013; +pub const SO_EXCLBIND: ::c_int = 0x1015; pub const SCM_RIGHTS: ::c_int = 0x1010; pub const SCM_UCRED: ::c_int = 0x1012; @@ -2586,6 +2590,9 @@ const _CMSG_DATA_ALIGNMENT: usize = ::mem::size_of::<::c_int>(); const NEWDEV: ::c_int = 1; +// sys/sendfile.h +pub const SFV_FD_SELF: ::c_int = -2; + const_fn! { {const} fn _CMSG_HDR_ALIGN(p: usize) -> usize { (p + _CMSG_HDR_ALIGNMENT - 1) & !(_CMSG_HDR_ALIGNMENT - 1) @@ -2751,7 +2758,7 @@ extern "C" { host: *mut ::c_char, hostlen: ::socklen_t, serv: *mut ::c_char, - sevlen: ::socklen_t, + servlen: ::socklen_t, flags: ::c_int, ) -> ::c_int; pub fn setpwent(); @@ -2946,6 +2953,7 @@ extern "C" { result: *mut *mut ::group, ) -> ::c_int; pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; + pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; pub fn sem_close(sem: *mut sem_t) -> ::c_int; pub fn getdtablesize() -> ::c_int; @@ -3201,9 +3209,9 @@ extern "C" { pub fn sync(); - fn __major(version: ::c_int, devnum: ::dev_t) -> ::major_t; - fn __minor(version: ::c_int, devnum: ::dev_t) -> ::minor_t; - fn __makedev(version: ::c_int, majdev: ::major_t, mindev: ::minor_t) -> ::dev_t; + pub fn __major(version: ::c_int, devnum: ::dev_t) -> ::major_t; + pub fn __minor(version: ::c_int, devnum: ::dev_t) -> ::minor_t; + pub fn __makedev(version: ::c_int, majdev: ::major_t, mindev: ::minor_t) -> ::dev_t; } #[link(name = "sendfile")] diff --git a/src/rust/vendor/libc/src/vxworks/mod.rs b/src/rust/vendor/libc/src/vxworks/mod.rs index c337a8279..43afbc3e2 100644 --- a/src/rust/vendor/libc/src/vxworks/mod.rs +++ b/src/rust/vendor/libc/src/vxworks/mod.rs @@ -582,8 +582,8 @@ pub const EAI_SERVICE: ::c_int = 9; pub const EAI_SOCKTYPE: ::c_int = 10; pub const EAI_SYSTEM: ::c_int = 11; -// This is not defined in vxWorks, but we have to define it here -// to make the building pass for getrandom and libstd, FIXME +// FIXME: This is not defined in vxWorks, but we have to define it here +// to make the building pass for getrandom and std pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; //Clock Lib Stuff @@ -1018,6 +1018,21 @@ pub const O_WRONLY: ::c_int = 0x0001; pub const O_RDONLY: ::c_int = 0; pub const O_NONBLOCK: ::c_int = 0x4000; +// mman.h +pub const PROT_NONE: ::c_int = 0x0000; +pub const PROT_READ: ::c_int = 0x0001; +pub const PROT_WRITE: ::c_int = 0x0002; +pub const PROT_EXEC: ::c_int = 0x0004; + +pub const MAP_SHARED: ::c_int = 0x0001; +pub const MAP_PRIVATE: ::c_int = 0x0002; +pub const MAP_ANON: ::c_int = 0x0004; +pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; +pub const MAP_FIXED: ::c_int = 0x0010; +pub const MAP_CONTIG: ::c_int = 0x0020; + +pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; + #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum FILE {} impl ::Copy for FILE {} @@ -1218,6 +1233,8 @@ extern "C" { ) -> *mut ::c_void; pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; + pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; + pub fn shm_unlink(name: *const ::c_char) -> ::c_int; pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; pub fn pthread_exit(value: *mut ::c_void) -> !; @@ -1909,19 +1926,19 @@ cfg_if! { if #[cfg(target_arch = "aarch64")] { mod aarch64; pub use self::aarch64::*; - } else if #[cfg(any(target_arch = "arm"))] { + } else if #[cfg(target_arch = "arm")] { mod arm; pub use self::arm::*; - } else if #[cfg(any(target_arch = "x86"))] { + } else if #[cfg(target_arch = "x86")] { mod x86; pub use self::x86::*; - } else if #[cfg(any(target_arch = "x86_64"))] { + } else if #[cfg(target_arch = "x86_64")] { mod x86_64; pub use self::x86_64::*; - } else if #[cfg(any(target_arch = "powerpc"))] { + } else if #[cfg(target_arch = "powerpc")] { mod powerpc; pub use self::powerpc::*; - } else if #[cfg(any(target_arch = "powerpc64"))] { + } else if #[cfg(target_arch = "powerpc64")] { mod powerpc64; pub use self::powerpc64::*; } else { diff --git a/src/rust/vendor/libc/src/wasi.rs b/src/rust/vendor/libc/src/wasi.rs index 1a855e0e0..ae490bf94 100644 --- a/src/rust/vendor/libc/src/wasi.rs +++ b/src/rust/vendor/libc/src/wasi.rs @@ -65,6 +65,7 @@ s_paren! { // in wasi-libc clockid_t is const struct __clockid* (where __clockid is an opaque struct), // but that's an implementation detail that we don't want to have to deal with #[repr(transparent)] + #[allow(dead_code)] pub struct clockid_t(*const u8); } diff --git a/src/rust/vendor/libc/src/windows/mod.rs b/src/rust/vendor/libc/src/windows/mod.rs index 26bff7f7a..196f1f2e4 100644 --- a/src/rust/vendor/libc/src/windows/mod.rs +++ b/src/rust/vendor/libc/src/windows/mod.rs @@ -345,6 +345,7 @@ extern "C" { pub fn strtoull(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulonglong; pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; pub fn malloc(size: size_t) -> *mut c_void; + pub fn _msize(p: *mut c_void) -> size_t; pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; pub fn free(p: *mut c_void); pub fn abort() -> !; diff --git a/src/rust/vendor/r-efi-alloc/.cargo-checksum.json b/src/rust/vendor/r-efi-alloc/.cargo-checksum.json new file mode 100644 index 000000000..51139ddda --- /dev/null +++ b/src/rust/vendor/r-efi-alloc/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"AUTHORS":"55d8cf02d643567a242b9254a2e41c6cb7bd98aa47ead94ce539c62ef4da48f7","Cargo.lock":"341a9a66eee665547a2c57deec1c76b0b168d2e53fdbac7e05b66ffbcdf49237","Cargo.toml":"eabc82db884192f59c18a57e4142e3d77ac96dabe71e3471f073ef6b6acc1aa5","README.md":"48875585beb3906a4065824ccd77c11bf79aaff2ac2582395634435246d7fe09","examples/hello-world.rs":"cb8ef4666ab620b95d9d51bf3b38e1d40d747fffe26f008f8dff85aa6076900c","src/alloc.rs":"25906c8f4e44ab3430b4a37d2e768f2cfcedb300c22cad991aa4a4924cbd875b","src/global.rs":"020311b8e8e3414367606690a31e314b2eff8ff130c6b12d74ac2086e4498b47","src/lib.rs":"1f05b30aabc722b408c8ea92a08780bc6fcc9ceadc45cce95c5a8ad352c66680","src/raw.rs":"4cd2a2eb3f92c99b25afad659944e624e6937261faf0d1078357eda1624730d8"},"package":"31d6f09fe2b6ad044bc3d2c34ce4979796581afd2f1ebc185837e02421e02fd7"} \ No newline at end of file diff --git a/src/rust/vendor/r-efi-alloc/AUTHORS b/src/rust/vendor/r-efi-alloc/AUTHORS new file mode 100644 index 000000000..5e622bd94 --- /dev/null +++ b/src/rust/vendor/r-efi-alloc/AUTHORS @@ -0,0 +1,60 @@ +LICENSE: + This project is triple-licensed under the MIT License, the Apache + License, Version 2.0, and the GNU Lesser General Public License, + Version 2.1+. + +AUTHORS-MIT: + 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. + +AUTHORS-ASL: + 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. + +AUTHORS-LGPL: + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; If not, see . + +COPYRIGHT: (ordered alphabetically) + Copyright (C) 2017-2022 Red Hat, Inc. + +AUTHORS: (ordered alphabetically) + Ayush Singh + David Rheinsberg + Mizuho MORI + Tom Gundersen diff --git a/src/rust/vendor/r-efi-alloc/Cargo.lock b/src/rust/vendor/r-efi-alloc/Cargo.lock new file mode 100644 index 000000000..aa5aad86b --- /dev/null +++ b/src/rust/vendor/r-efi-alloc/Cargo.lock @@ -0,0 +1,33 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "compiler_builtins" +version = "0.1.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "989b2c1ca6e90ad06fdc69d1d1862fa28d27a977be6d92ae2fa762cf61fe0b10" +dependencies = [ + "rustc-std-workspace-core", +] + +[[package]] +name = "r-efi" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c4257a6ffb364d7f938c0311733a793327639b3d34c0b4af0b3bb775ef3e1b8" + +[[package]] +name = "r-efi-alloc" +version = "1.0.0" +dependencies = [ + "compiler_builtins", + "r-efi", + "rustc-std-workspace-core", +] + +[[package]] +name = "rustc-std-workspace-core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1956f5517128a2b6f23ab2dadf1a976f4f5b27962e7724c2bf3d45e539ec098c" diff --git a/src/rust/vendor/r-efi-alloc/Cargo.toml b/src/rust/vendor/r-efi-alloc/Cargo.toml new file mode 100644 index 000000000..ab82d6d7f --- /dev/null +++ b/src/rust/vendor/r-efi-alloc/Cargo.toml @@ -0,0 +1,62 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2018" +name = "r-efi-alloc" +version = "1.0.0" +authors = [ + "David Rheinsberg ", + "Tom Gundersen ", +] +description = "UEFI Memory Allocator Integration" +homepage = "https://github.com/r-efi/r-efi/wiki" +readme = "README.md" +keywords = [ + "efi", + "uefi", + "firmware", + "alloc", + "memory", +] +categories = [ + "embedded", + "hardware-support", + "memory-management", + "no-std", + "os", +] +license = "MIT OR Apache-2.0 OR LGPL-2.1-or-later" +repository = "https://github.com/r-efi/r-efi-alloc" + +[[example]] +name = "hello-world" +required-features = ["examples"] + +[dependencies.compiler_builtins] +version = "0.1.79" +optional = true + +[dependencies.core] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-core" + +[dependencies.r-efi] +version = "4.0.0" + +[features] +allocator_api = [] +examples = [] +rustc-dep-of-std = [ + "compiler_builtins/rustc-dep-of-std", + "core", +] diff --git a/src/rust/vendor/r-efi-alloc/README.md b/src/rust/vendor/r-efi-alloc/README.md new file mode 100644 index 000000000..013320eaf --- /dev/null +++ b/src/rust/vendor/r-efi-alloc/README.md @@ -0,0 +1,77 @@ +r-efi-alloc +=========== + +UEFI Memory Allocator Integration + +The r-efi-alloc project integrates the UEFI memory allocator routines with the +rust standard library allocation hooks. This allows using the `alloc` standard +library of rust on UEFI systems. + +### Project + + * **Website**: + * **Bug Tracker**: + +### Requirements + +The requirements for this project are: + + * `rustc >= 1.62.0` + * `r-efi >= 4.0.0` + +### Build + +To build this project, run: + +```sh +cargo build +``` + +Available configuration options are: + + * **allocator_api**: Provide integration with the experimental upstream rust + allocators (tracked with the `allocator_api` feature). + + * **examples**: This feature-selector enables compilation of examples. This + is disabled by default, since they will only compile + successfully on UEFI targets. + +No special requirements exist to compile for UEFI targets. Native compilations +work out of the box without any adjustments. For cross-compilations, either use +the toolchains distributed through `rustup`, build your own toolchains, or use +`-Zbuild-std` as shown below. + +If you do not use the official toolchains, you will likely need a nightly rust +compiler with the rust-src component enabled: + +```sh +rustup toolchain install nightly +# OR +rustup update + +rustup component add --toolchain nightly rust-src +``` + +Be sure to update all components to the most recent version. + +##### Build via: cargo/rustc nightly with -Zbuild-std + +```sh +cargo +nightly build \ + -Zbuild-std=core,compiler_builtins,alloc \ + -Zbuild-std-features=compiler-builtins-mem \ + --target x86_64-unknown-uefi \ + --features examples \ + --examples +``` + +### Repository: + + - **web**: + - **https**: `https://github.com/r-efi/r-efi-alloc.git` + - **ssh**: `git@github.com:r-efi/r-efi-alloc.git` + +### License: + + - **MIT** OR **Apache-2.0** OR **LGPL-2.1-or-later** + - See AUTHORS file for details. diff --git a/src/rust/vendor/r-efi-alloc/examples/hello-world.rs b/src/rust/vendor/r-efi-alloc/examples/hello-world.rs new file mode 100644 index 000000000..e1265f868 --- /dev/null +++ b/src/rust/vendor/r-efi-alloc/examples/hello-world.rs @@ -0,0 +1,118 @@ +// Example: Hello World! +// +// This example extends the Hello-World example from the `r-efi` crate. The +// main entry-point now installs a global rust allocator and calls into the +// `efi_run()` function. The latter then prints the string "Hello World!\n" to +// console-out, waits for any key-input, and returns. +// +// Unlike the original example, here we make use of the global allocator by +// using the types from rust's `alloc::*` crate. These needs dynamic +// allocations, and we can now serve them by providing the allocator from +// `r-efi-alloc`. +// +// To integrate the allocator with rust, we need to provide a global variable +// annotated as `#[global_allocator]`. It must implement the `GlobalAlloc` +// trait. We use the `Bridge` type from our crate to serve this. Furthermore, +// we need to define a callback to be invoked in out-of-memory situations. We +// simply make it forward the error to our panic-handler, which we already +// provided in the previous example. +// +// The error-handler required by the `alloc::*` objects is unstable as well, +// so the `alloc_error_handler` feature is required. + +#![feature(alloc_error_handler)] +#![no_main] +#![no_std] + +extern crate alloc; + +use alloc::string::String; +use alloc::vec::Vec; +use r_efi::efi; + +#[global_allocator] +static GLOBAL_ALLOCATOR: r_efi_alloc::global::Bridge = r_efi_alloc::global::Bridge::new(); + +#[alloc_error_handler] +fn rust_oom_handler(_layout: core::alloc::Layout) -> ! { + panic!(); +} + +#[panic_handler] +fn rust_panic_handler(_info: &core::panic::PanicInfo) -> ! { + loop {} +} + +// This is the wrapped entry-point of this Hello-World UEFI Application. The +// caller provides us with an extended environment, by guaranteeing us a global +// rust allocator. Hence, we can now make use of all the `alloc::*` objects. +// +// Similar to the Hello-World example from `r-efi`, this example just prints +// "Hello World!\n" to standard-output, waits for any key input, then exits. +// +// With `alloc::*` to our disposal, we use normal rust strings, and convert +// them to UTF-16 vectors before passing them to UEFI. +pub fn efi_run(_h: efi::Handle, st: *mut efi::SystemTable) -> efi::Status { + let s: String; + let mut v: Vec; + + // Create string and convert to UTF-16. We need a terminating NUL, since + // UEFI uses C-String style wide-strings. + s = String::from("Hello World!\n"); + v = s.encode_utf16().collect(); + v.push(0); + + // Print the string on console-out. + let r = + unsafe { ((*(*st).con_out).output_string)((*st).con_out, v.as_mut_slice().as_mut_ptr()) }; + if r.is_error() { + return r; + } + + // Wait for key input, by waiting on the `wait_for_key` event hook. + let r = unsafe { + let mut x: usize = 0; + ((*(*st).boot_services).wait_for_event)(1, &mut (*(*st).con_in).wait_for_key, &mut x) + }; + if r.is_error() { + return r; + } + + efi::Status::SUCCESS +} + +// This is the main UEFI entry point, called by the UEFI environment when the +// application is spawned. We use it to create an allocator and attach it to +// the global allocator bridge. Then we invoke the `efi_run()` function as if +// it was the main entry-point. Since the attachment is dropped after +// `efi_run()` returns, the allocator is available throughout the entire +// runtime. +// +// Note that both calls here require unsafe code: +// +// * Allocator::from_system_table(): We must guarantee `SystemTable` survives +// longer than the allocator object we create. This is trivially true +// here, since we pass in the system-table from the UEFI core, which is +// guaranteed to outlive us. However, we must make sure not to call +// ExitBootServices() and friends, obviously. +// +// * Bridge::attach(): This function is unsafe, since it requires the caller +// to guarantee that all memory allocations are released before it is +// detached. Since we do not perform allocations ourselves here, we know +// that they must be released before `efi_run()` returns. Hence, we are +// safe as well. +// +// Lastly, we use the `LoaderData` annotation for all memory allocations. +// Depending on your UEFI application type you might want different allocators +// for different operations. The rust global allocator is a fixed type, so you +// need to use custom-allocators for all allocations that need to be put in +// different memory regions. +#[no_mangle] +pub extern "C" fn efi_main(h: efi::Handle, st: *mut efi::SystemTable) -> efi::Status { + unsafe { + let mut allocator = r_efi_alloc::alloc::Allocator::from_system_table(st, efi::LOADER_DATA); + let _attachment = GLOBAL_ALLOCATOR.attach(&mut allocator); + + efi_run(h, st) + } +} diff --git a/src/rust/vendor/r-efi-alloc/src/alloc.rs b/src/rust/vendor/r-efi-alloc/src/alloc.rs new file mode 100644 index 000000000..db0bcf210 --- /dev/null +++ b/src/rust/vendor/r-efi-alloc/src/alloc.rs @@ -0,0 +1,144 @@ +//! UEFI Memory Allocators +//! +//! This module provides a memory allocator that integrates with the UEFI pool +//! allocator. It exports an `Allocator` type that wraps a System-Table +//! together with a UEFI memory type and forwards memory requests to the UEFI +//! pool allocator. +//! +//! The allocator implements the `core::alloc::Allocator` API defined by the +//! rust standard library. Furthermore, as an alternative to this unstable +//! standard library trait, raw alloc and dealloc functions are provided that +//! map to their equivalents from the `raw` module. +//! +//! The `core::alloc::Allocator` trait is only implemented if the +//! `allocator_api` feature is enabled. This requires a nightly / unstable +//! compiler. If the feature is not enabled, only the raw interface is +//! available. + +use r_efi::efi; + +/// Memory Allocator +/// +/// This crate implements a rust memory allocator that forwards requests to the +/// UEFI pool allocator. It takes a System-Table as input, as well as the +/// memory type to use as backing, and then forwards all memory allocation +/// requests to the `AllocatePool()` UEFI system. +/// +/// The `core::alloc::Allocator` trait is implemented for this allocator. +/// Hence, this allocator can also be used to back the global memory-allocator +/// of `liballoc` (or `libstd`). See the `Global` type for an implementation of +/// the global allocator, based on this type. +pub struct Allocator { + system_table: *mut efi::SystemTable, + memory_type: efi::MemoryType, +} + +impl Allocator { + /// Create Allocator from UEFI System-Table + /// + /// This creates a new Allocator object from a UEFI System-Table pointer + /// and the memory-type to use for allocations. That is, all allocations on + /// this object will be tunnelled through the `AllocatePool` API on the + /// given System-Table. Allocations will always use the memory type given + /// as `memtype`. + /// + /// Note that this interface is unsafe, since the caller must guarantee + /// that the System-Table is valid for as long as the Allocator is. + /// Furthermore, the caller must guarantee validity of the + /// system-table-interface. The latter is usually guaranteed by the + /// provider of the System-Table. The former is usually just a matter of + /// tearing down the allocator before returning from your application + /// entry-point. + pub unsafe fn from_system_table( + st: *mut efi::SystemTable, + memtype: efi::MemoryType, + ) -> Allocator { + Allocator { + system_table: st, + memory_type: memtype, + } + } + + /// Allocate Memory from UEFI Boot-Services + /// + /// Use the UEFI `allocate_pool` boot-services to request a block of memory + /// satisfying the given memory layout. The memory type tied to this + /// allocator object is used. + /// + /// This returns a null-pointer if the allocator could not serve the + /// request (which on UEFI implies out-of-memory). Otherwise, a non-null + /// pointer to the aligned block is returned. + /// + /// Safety + /// ------ + /// + /// To ensure safety of this interface, the caller must guarantee: + /// + /// * The allocation size must not be 0. The function will panic + /// otherwise. + /// + /// * The returned pointer is not necessarily the same pointer as returned + /// by `allocate_pool` of the boot-services. A caller must not assume + /// this when forwarding the pointer to other allocation services + /// outside of this module. + pub unsafe fn alloc(&self, layout: core::alloc::Layout) -> *mut u8 { + crate::raw::alloc(self.system_table, layout, self.memory_type) + } + + /// Deallocate Memory from UEFI Boot-Services + /// + /// Use the UEFI `free_pool` boot-services to release a block of memory + /// previously allocated through `alloc()`. + /// + /// Safety + /// ------ + /// + /// To ensure safety of this interface, the caller must guarantee: + /// + /// * The memory block must be the same as previously returned by a call + /// to `alloc()`. Every memory block must be released exactly once. + /// + /// * The passed layout must match the layout used to allocate the memory + /// block. + pub unsafe fn dealloc(&self, ptr: *mut u8, layout: core::alloc::Layout) { + crate::raw::dealloc(self.system_table, ptr, layout) + } +} + +#[cfg(feature = "allocator_api")] +unsafe impl core::alloc::Allocator for Allocator { + fn allocate( + &self, + layout: core::alloc::Layout, + ) -> Result, core::alloc::AllocError> { + let size = layout.size(); + + let ptr = if size > 0 { + unsafe { + crate::raw::alloc(self.system_table, layout, self.memory_type) + } + } else { + layout.dangling().as_ptr() as *mut _ + }; + + if ptr.is_null() { + Err(core::alloc::AllocError) + } else { + Ok( + core::ptr::NonNull::new( + core::ptr::slice_from_raw_parts(ptr, size) as *mut _, + ).unwrap(), + ) + } + } + + unsafe fn deallocate( + &self, + ptr: core::ptr::NonNull, + layout: core::alloc::Layout, + ) { + if layout.size() != 0 { + crate::raw::dealloc(self.system_table, ptr.as_ptr(), layout) + } + } +} diff --git a/src/rust/vendor/r-efi-alloc/src/global.rs b/src/rust/vendor/r-efi-alloc/src/global.rs new file mode 100644 index 000000000..e222d55aa --- /dev/null +++ b/src/rust/vendor/r-efi-alloc/src/global.rs @@ -0,0 +1,235 @@ +//! Global Allocator Bridge +//! +//! This module provides a bridge between the global-allocator interface of +//! the rust standard library and the allocators of this crate. The stabilized +//! interface of the rust compiler and standard-library to the global allocator +//! is provided by the `core::alloc::GlobalAlloc` trait and the +//! `global_allocator` attribute. The types provided by this module implement +//! this trait and can be used to register a global allocator. +//! +//! Only one crate in every dependency graph can use the `global_allocator` +//! attribute to mark one static variable as the global allocator of the entire +//! application. The type of it must implement `GlobalAlloc`. Note that this +//! attribute can only be used in the crate-root, not in sub-modules. +//! +//! UEFI is, however, not a natural fit for the global-allocator trait. On UEFI +//! systems, access to all system APIs is done through the system table, which +//! is passed as argument to the application entry-point. Therefore, it is up +//! to the implementor of the entry-point to set up the global state inherent +//! to rust's global allocator. +//! +//! # Examples +//! +//! The following UEFI application simply registers an allocator with its +//! system-table and then invokes `uefi_run()`. The latter can then operate +//! under the assumption that an allocator is available and ready. Once the +//! function returns, the allocator is automatically torn down. +//! +//! This is a typical use of the `r-efi-alloc` crate. Only applications that +//! actually exit the boot-services, or access UEFI outside of regular UEFI +//! application and driver environments will have to use the custom allocator +//! interfaces. +//! +//! ```ignore +//! #![no_main] +//! #![no_std] +//! +//! use r_efi::efi; +//! use r_efi_alloc::{alloc::Allocator, global::Bridge}; +//! +//! #[global_allocator] +//! static GLOBAL_ALLOCATOR: Bridge = Bridge::new(); +//! +//! #[no_mangle] +//! pub extern "C" fn efi_main( +//! h: efi::Handle, +//! st: *mut efi::SystemTable, +//! ) -> efi::Status { +//! unsafe { +//! let mut allocator = Allocator::from_system_table(st, efi::LOADER_DATA); +//! let _attachment = GLOBAL_ALLOCATOR.attach(&mut allocator); +//! +//! efi_run(h, st) +//! } +//! } +//! +//! pub fn efi_run(h: efi::Handle, st: *mut efi::SystemTable) -> efi::Status { +//! ... +//! } +//! ``` + +use core::sync::atomic; + +/// Bridge for Global Allocators +/// +/// This bridge connects static allocator variables to the dynamic UEFI +/// allocator interfaces. The bridge object implements the `GlobalAlloc` +/// interface and can thus be marked as `global_allocator`. +/// +/// The need for a bridge arises from the fact that UEFI requires access to +/// the system-table to allocate memory, and the system-table is only available +/// as argument to the entry-point. Hence, this bridge represents a dynamic +/// link between the global allocator and a runtime allocator created by the +/// application. +/// +/// The main API of the bridge is the `attach()` function, which allows to +/// attach an allocator to the bridge, which is thereon used for allocations. +/// Only a single allocator can be attached to a bridge at a time, and any +/// global allocations will fail if no allocator is attached. +/// +/// The `attach()` operation returns an object that represents the attachment. +/// To release it, the attachment object has to be dropped. Note that the +/// caller must ensure that any global allocator is released before an +/// allocator attachment is released. +pub struct Bridge { + attachment: atomic::AtomicPtr, +} + +/// Bridge Attachment +/// +/// This type represents the attachment of an allocator to a bridge. It is +/// returned by the `attach()` operation of a bridge. This type has no exposed +/// API other than a custom `drop()` implementation, which releases the +/// attachment. +pub struct Attachment<'alloc, 'bridge> { + allocator: &'alloc mut crate::alloc::Allocator, + bridge: &'bridge Bridge, +} + +impl Bridge { + /// Create Bridge + /// + /// The Bridge type represents the global allocator. Since the latter + /// cannot be instantiated at compile-time (on UEFI the system-table + /// address can only be resolved at runtime, since it is passed as argument + /// to the entry point), it is implemented as a bridge between the actual + /// allocator object and the global allocator. By default, the bridge + /// object has no allocator linked. Any allocation requests will thusly + /// yield an allocation error. + /// + /// To make use of a bridge, you have to instantiate an allocator object + /// and attach it via the `attach()` method. + /// + /// You can create as many bridges as you like. However, to mark a bridge + /// as global allocator, you have to make it a global, static variable and + /// annotate it with `#[global_allocator]`. Only one such variable is + /// allowed to exist in any crate tree, and it must be declared in the root + /// module of a given crate. + pub const fn new() -> Bridge { + Bridge { + attachment: atomic::AtomicPtr::new(core::ptr::null_mut()), + } + } + + unsafe fn raw_attach(&self, ptr: *mut crate::alloc::Allocator) -> Option<()> { + // Set @ptr as the attachment on this bridge. This only succeeds if + // there is not already an attachment set. + // We use a compare_exchange() to change the attachment if it was NULL. + // We use Release semantics, so any stores to your allocator are + // visible once the attachment is written. On error, no ordering + // guarantees are given, since this interface is not meant to be a + // programmatic query. + // Note that the Release pairs with the Acquire in the GlobalAlloc + // trait below. + // + // This interface is unsafe since the caller must guarantee to detach + // the bridge before it is destroyed. There are no runtime guarantees + // given by this interface, it is all left to the caller. + let p = self.attachment.compare_exchange( + core::ptr::null_mut(), + ptr, + atomic::Ordering::Release, + atomic::Ordering::Relaxed, + ); + + if p.is_ok() { + Some(()) + } else { + None + } + } + + unsafe fn raw_detach(&self, ptr: *mut crate::alloc::Allocator) { + // Detach @ptr from this bridge. The caller must guarantee @ptr is + // already attached to the bridge. This function will panic if @ptr is + // not the current attachment. + // + // We use compare_exchange() to replace the old attachment with NULL. + // If it was not NULL, we panic. No ordering guarantees are required, + // since there is no dependent state. + let p = self.attachment.compare_exchange( + ptr, + core::ptr::null_mut(), + atomic::Ordering::Relaxed, + atomic::Ordering::Relaxed, + ); + assert!(p.is_ok()); + } + + /// Attach an allocator + /// + /// This attaches the allocator given as @allocator to the bridge. If there + /// is an allocator attached already, this will yield `None`. Otherwise, an + /// attachment is returned that represents this link. Dropping the + /// attachment will detach the allocator from the bridge. + /// + /// As long as an allocator is attached to a bridge, allocations through + /// this bridge (via rust's `GlobalAlloc` trait) will be served by this + /// allocator. + /// + /// This is an unsafe interface. It is the caller's responsibility to + /// guarantee that the attachment survives all outstanding allocations. + /// That is, any allocated memory must be released before detaching the + /// allocator. + pub unsafe fn attach<'alloc, 'bridge>( + &'bridge self, + allocator: &'alloc mut crate::alloc::Allocator, + ) -> Option> { + match self.raw_attach(allocator) { + None => None, + Some(()) => Some(Attachment { + allocator: allocator, + bridge: self, + }), + } + } +} + +impl<'alloc, 'bridge> Drop for Attachment<'alloc, 'bridge> { + fn drop(&mut self) { + unsafe { + self.bridge.raw_detach(self.allocator); + } + } +} + +// This implements GlobalAlloc for our bridge. This trait is used by the rust +// ecosystem to serve global memory allocations. For this to work, you must +// have a bridge as static variable annotated as `#[global_allocator]`. +// +// We simply forward all allocation requests to the attached allocator. If the +// allocator is NULL, we fail the allocations. +// +// Note that the bridge interface must guarantee that an attachment survives +// all allocations. That is, you must drop/deallocate all memory before +// dropping your attachment. See the description of the bridge interface for +// details. +unsafe impl core::alloc::GlobalAlloc for Bridge { + unsafe fn alloc(&self, layout: core::alloc::Layout) -> *mut u8 { + let allocator = self.attachment.load(atomic::Ordering::Acquire); + + if allocator.is_null() { + return core::ptr::null_mut(); + } + + (&*allocator).alloc(layout) + } + + unsafe fn dealloc(&self, ptr: *mut u8, layout: core::alloc::Layout) { + let allocator = self.attachment.load(atomic::Ordering::Acquire); + + assert!(!allocator.is_null()); + + (&*allocator).dealloc(ptr, layout) + } +} diff --git a/src/rust/vendor/r-efi-alloc/src/lib.rs b/src/rust/vendor/r-efi-alloc/src/lib.rs new file mode 100644 index 000000000..602baab1f --- /dev/null +++ b/src/rust/vendor/r-efi-alloc/src/lib.rs @@ -0,0 +1,28 @@ +//! UEFI Memory Allocator Integration +//! +//! This crate integrates the memory allocators of the rust standard library +//! with the memory allocators provided by UEFI systems. The `raw` module +//! implements the underlying unsafe allocator to interact with UEFI memory +//! allocations from within rust. The `global` module implements the stable +//! `GlobalAlloc` interface of the rust standard library, thus providing +//! UEFI memory allocators to the rust standard library. Lastly, `alloc` +//! implements the unstable `core::alloc::Allocator` trait which likely +//! will take the role of the main rust memory allocators in the future. + +// The `core::alloc::Allocator` trait is still unstable and hidden behind the +// `allocator_api` feature. Make sure to enable it, so we can implement this +// trait. The `alloc_layout_extra` feature provides additional extensions to +// the stable `Layout` object (in particular `dangling()` for ZSTs). +#![cfg_attr( + feature = "allocator_api", + feature(alloc_layout_extra, allocator_api) +)] + +// We need no features of std, so mark the crate as `no_std` (more importantly, +// `std` might not even be available on UEFI systems). However, pull in `std` +// during tests, so we can run them on the host. +#![cfg_attr(not(test), no_std)] + +pub mod alloc; +pub mod global; +pub mod raw; diff --git a/src/rust/vendor/r-efi-alloc/src/raw.rs b/src/rust/vendor/r-efi-alloc/src/raw.rs new file mode 100644 index 000000000..a4d61d8b2 --- /dev/null +++ b/src/rust/vendor/r-efi-alloc/src/raw.rs @@ -0,0 +1,235 @@ +//! Raw Allocator +//! +//! This module exposes the raw handlers behind the UEFI allocator. The +//! allocator traits of the standard library are marked as unstable, hence this +//! module provides stable access to the same functionality, if required. +//! +//! Use of the raw allocator is only recommended if the other exposes APIs are +//! not an option. + +use r_efi::efi; + +// UEFI guarantees 8-byte alignments through `AllocatePool()`. Any request +// higher than this alignment needs to take special precautions to align the +// returned pointer, and revert that step when freeing the memory block again. +const POOL_ALIGNMENT: usize = 8usize; + +// Alignment Marker +// +// Since UEFI has no functions to allocate blocks of arbitrary alignment, we +// have to work around this. We extend the allocation size by the required +// alignment and then offset the pointer before returning it. This will +// properly align the pointer to the given request. +// +// However, when freeing memory again, we have to somehow get back the original +// pointer. Therefore, we store the original address directly in front of the +// memory block that we just aligned. When freeing memory, we simply retrieve +// this marker and free the original address. +#[repr(C)] +struct Marker(*mut u8); + +fn align_request(size: usize, align: usize) -> usize { + // If the alignment request is within UEFI guarantees, there is no need to + // adjust the size request. In all other cases, we might have to align the + // allocated memory block. Hence, we increment the request size by the + // alignment size. Strictly speaking, we only need `align - POOL_ALIGNMENT` + // as additional space, since the pool alignment is always guaranteed by + // UEFI. However, by adding the full alignment we are guaranteed + // `POOL_ALIGNMENT` extra space. This extra space is used to store a marker + // so we can retrieve the original pointer when freeing the memory space. + if align > POOL_ALIGNMENT { + size + align + } else { + size + } +} + +unsafe fn align_block(ptr: *mut u8, align: usize) -> *mut u8 { + // This function takes a pointer returned by the pool-allocator, and aligns + // it to the requested alignment. If this alignment is smaller than the + // guaranteed pool alignment, there is nothing to be done. If it is bigger, + // we will have to offset the pointer. We rely on the caller using + // `align_request()` to increase the allocation size beforehand. We then + // store the original address as `Marker` in front of the aligned pointer, + // so `unalign_block()` can retrieve it again. + if align > POOL_ALIGNMENT { + // In `align_request()` we guarantee the allocation size includes an + // additional `align` bytes. Since the pool allocation already + // guaranteed an alignment of `POOL_ALIGNMENT`, we know that + // `offset >= POOL_ALIGNMENT` here. We then verify that + // `POOL_ALIGNMENT` serves the needs of our `Marker` object. Note that + // all but the first assertion are constant expressions, so the + // compiler will optimize them away. + let offset = align - (ptr as usize & (align - 1)); + assert!(offset >= POOL_ALIGNMENT); + assert!(POOL_ALIGNMENT >= core::mem::size_of::()); + assert!(POOL_ALIGNMENT >= core::mem::align_of::()); + + // We calculated the alignment-offset, so adjust the pointer and store + // the original address directly in front. This will allow + // `unalign_block()` to retrieve the original address, so it can free + // the entire memory block. + let aligned = ptr.add(offset); + core::ptr::write((aligned as *mut Marker).offset(-1), Marker(ptr)); + aligned + } else { + ptr + } +} + +unsafe fn unalign_block(ptr: *mut u8, align: usize) -> *mut u8 { + // This undoes what `align_block()` did. That is, we retrieve the original + // address that was stored directly in front of the aligned block, and + // return it to the caller. Note that this is only the case if the + // alignment exceeded the guaranteed alignment of the allocator. + if align > POOL_ALIGNMENT { + core::ptr::read((ptr as *mut Marker).offset(-1)).0 + } else { + ptr + } +} + +/// Allocate Memory from UEFI Boot-Services +/// +/// Use the UEFI `allocate_pool` boot-services to request a block of memory +/// satisfying the given memory layout. The `memory_type` parameter specifies +/// which UEFI allocator to use. +/// +/// This returns a null-pointer if the allocator could not serve the request +/// (which on UEFI implies out-of-memory). Otherwise, a non-null pointer to +/// the aligned block is returned. +/// +/// Safety +/// ------ +/// +/// To ensure safety of this interface, the caller must guarantee: +/// +/// * The allocation size must not be 0. The function will panic otherwise. +/// +/// * It must be safe for this function to call `allocate_pool` of the +/// boot-services provided via the system-table. It is the responsibility of +/// the caller to retain boot-services until the returned allocation is +/// released via `dealloc()`, or to account for it otherwise. +/// +/// * The returned pointer is not necessarily the same pointer as returned +/// by `allocate_pool` of the boot-services. A caller must not assume this +/// when forwarding the pointer to other allocation services. +pub unsafe fn alloc( + system_table: *mut efi::SystemTable, + layout: core::alloc::Layout, + memory_type: efi::MemoryType, +) -> *mut u8 { + // `Layout` guarantees the size+align combination does not overflow. + let align = layout.align(); + let size = layout.size(); + + // Verify our increased requirements are met. + assert!(size > 0); + + // We need extra allocation space to guarantee large alignment requests. If + // `size+align` overflows, there will be insufficient address-space for the + // request, so make it fail early. + if size.checked_add(align).is_none() { + return core::ptr::null_mut(); + } + + // We forward the allocation request to `AllocatePool()`. This takes the + // memory-type and size as argument, and places a pointer to the allocation + // in an output argument. Note that UEFI guarantees 8-byte alignment (i.e., + // `POOL_ALIGNMENT`). To support higher alignments, see the + // `align_request() / align_block() / unalign_block()` helpers. + let mut ptr: *mut core::ffi::c_void = core::ptr::null_mut(); + let size_allocated = align_request(size, align); + let r = unsafe { + ((*(*system_table).boot_services).allocate_pool)( + memory_type, + size_allocated, + &mut ptr, + ) + }; + + // The only real error-scenario is OOM ("out-of-memory"). UEFI does not + // clearly specify what a return value of NULL+success means (but indicates + // in a lot of cases that NULL is never a valid pointer). Furthermore, + // since the 0-page is usually unmapped and not available for + // EFI_CONVENTIONAL_MEMORY, a NULL pointer cannot be a valid return + // pointer. Therefore, we treat both a function failure as well as a NULL + // pointer the same. + // No known UEFI implementation returns `NULL`, hence this is mostly a + // safety net in case any unknown implementation fails to adhere. + if r.is_error() || ptr.is_null() { + core::ptr::null_mut() + } else { + unsafe { align_block(ptr as *mut u8, align) } + } +} + +/// Deallocate Memory from UEFI Boot-Services +/// +/// Use the UEFI `free_pool` boot-services to release a block of memory +/// previously allocated through `alloc()`. +/// +/// Safety +/// ------ +/// +/// The memory block must be the same as previously returned by `alloc()`. +/// Furthermore, this function must be able to call the UEFI boot-servies +/// through the specified system table, and this must match the same +/// boot-services the memory block was allocated through. +/// +/// The passed layout must match the layout used to allocate the memory block. +pub unsafe fn dealloc( + system_table: *mut efi::SystemTable, + ptr: *mut u8, + layout: core::alloc::Layout, +) { + // UEFI never allows null-pointers for allocations, hence such a pointer + // cannot have been retrieved through `alloc()` previously. + assert!(!ptr.is_null()); + + // Un-align the pointer to get access to the actual start of the block. + let original = unalign_block( + ptr, + layout.align(), + ) as *mut core::ffi::c_void; + + // Release the memory block via the boot-services. + let r = ((*(*system_table).boot_services).free_pool)(original); + + // The spec allows returning errors from `FreePool()`. However, it + // must serve any valid requests. Only `INVALID_PARAMETER` is + // listed as possible error. Hence, there is no point in forwarding + // the return value. We still assert on it to improve diagnostics + // in early-boot situations. This should be a negligible + // performance penalty. + assert!(!r.is_error()); +} + +#[cfg(test)] +mod tests { + use super::*; + + // Test the `align_request()` helper and verify that it correctly + // calculates the supported alignment requests. + #[test] + fn align() { + let ptrsize = std::mem::size_of::<*mut ()>(); + + // UEFI ABI specifies that allocation alignment minimum is always 8. So + // this can be statically verified. + assert_eq!(POOL_ALIGNMENT, 8); + + // Loop over allocation-request sizes from 0-256 and alignments from + // 1-128, and verify that in case of overalignment there is at least + // space for one additional pointer to store in the allocation. + for i in 0..256 { + for j in &[1, 2, 4, 8, 16, 32, 64, 128] { + if *j <= 8 { + assert_eq!(align_request(i, *j), i); + } else { + assert!(align_request(i, *j) > i + ptrsize); + } + } + } + } +} diff --git a/src/rust/vendor/r-efi/.cargo-checksum.json b/src/rust/vendor/r-efi/.cargo-checksum.json new file mode 100644 index 000000000..a567d2179 --- /dev/null +++ b/src/rust/vendor/r-efi/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"AUTHORS":"4c505f93bebf6d3ad5ede2dbe204a1a82e25de7c212322c8d81c7382dcda7d48","Cargo.lock":"0f7ec224f4914f8a1481667a6d5049a005830a7bd4be6a12a4cfc295ec058785","Cargo.toml":"ffebdb18b68704468bd172655de7ccce4ec7348525c8c5783e2bed887fd01ed3","Makefile":"b445cfadd750b564ba8ef072754a4eed5aa127f12faa6e5b15a35b748d28b6fb","NEWS.md":"433e9f5269144babf81a789fe6c41b1afc230265fcbc0dec7d8c006e5fee035d","README.md":"420f65fec3ba2e89d49da51b222d2881d26959037a7b7d3794143db4bd4627b1","examples/freestanding.rs":"0be5eb60397228306aa9f8afc533e32926d210205a7359e14da903159482416d","examples/gop-query.rs":"3257c55d6ae4572db1bfcaf20bc05990ea92d46c5d292eb99c278242f1007e2c","examples/hello-world.rs":"1a398f93a54bfddaab6ba3e0145cf70496266c44b9748a11ff569a9a18063bc4","src/base.rs":"6ffb7f15904aa0c3fd42381193967784647278d398a9c159ce7396d000f92817","src/hii.rs":"d0b19b7cc7b0c2c4d70e2891554ed6d7f941388709476eab6fa7bad129c583ed","src/lib.rs":"8e33ce72094daa873a3f2e94572fd79aab18725b7c3e3e9d82d3ddce210c1025","src/protocols.rs":"94763cb44ea97b3cb0ed3b7daf7f405da9461cac2c1654b0e4ce0f68d4a8f3f1","src/protocols/absolute_pointer.rs":"46ad9792ea021f47e4fedf8d3c07769872e056c39936c9647492a52455558b41","src/protocols/block_io.rs":"4f70d38453f057bb240988d7fac593ffa0f38a0057c6e8855f34ff37801e7f3d","src/protocols/bus_specific_driver_override.rs":"a695a18e6729020919f99880fb14c2a26f565471f15d6300cb67475d33ec6087","src/protocols/debug_support.rs":"a03fc44a2ad151e58eff3bd72f910b63bfadd5802ac2fc157fc94c2030bd9fa9","src/protocols/debugport.rs":"bc491b03444ec35593a9cde519d0ab5fc863a046073dd813f1eb58c075da45dc","src/protocols/decompress.rs":"a4c67d958f0b9a392840a53eef69369acc6f545f90369685b3cae3c32e5cbc51","src/protocols/device_path.rs":"1a8c897f8e392fd7fe60d829b7852d22dd847f5f64bf1382e58e7776d9a176a2","src/protocols/device_path_from_text.rs":"e972d7699fb031df9da2c4d5623ae289d4cc282116b634218039b97d1e7628fe","src/protocols/device_path_to_text.rs":"9929d0797ab4892051bd15ac831dc2566f7106ec9edec0fd289b3c780a2b0976","src/protocols/device_path_utilities.rs":"7d7e9ba66e9f8add3c77718bd605e6e434598f2834236e7805aba57b531eba30","src/protocols/disk_io.rs":"01a68686dae958b4fbd9fd5bbc556cf41b61e7da281a0b4ea56e62e61822d843","src/protocols/disk_io2.rs":"33aeb807ab9b78534787f44e0a3a8c52afe057e23b48ecb6703195cd0b135a8e","src/protocols/driver_binding.rs":"f48363c5afd21aac39cbd2644be0e861acc4b182bc14c68a4f84e94a5f001f8d","src/protocols/driver_diagnostics2.rs":"62b0ffe6760ae0e90e51652c667ec623cef3bbd44c17fb89881a24167b1b446c","src/protocols/driver_family_override.rs":"004aceae8540766d87eb2cef9c8c37ab5aa3755920af6d960cb9171a41acb4a1","src/protocols/file.rs":"25f09f54cf3ebd69366bde5160218247c6712ae19dac17a36ec4e2881b214f93","src/protocols/graphics_output.rs":"9e9b7ac05b92ac0a9680506edb3ed36ebbac2dc9c800268b2c54cbf539e9dd9e","src/protocols/hii_database.rs":"faa82d420085dee851f8a332db00c888e7ed1685d43e2c286790a34b2ecfdf7a","src/protocols/hii_font.rs":"092f45c74335c524ee379508e2b6925ed9033c7c10928e64b2489ca3778a4723","src/protocols/hii_font_ex.rs":"2400b2092c14da2aa09c62266356321d4b96838dc41c5918a2f3e0e1e3920318","src/protocols/hii_package_list.rs":"6bb29d076697bb3b672913b98f55995f9efcba830b4ab6bfed29bd8402aa70ab","src/protocols/hii_string.rs":"1327ba9e108900ddafec98c02534c81104c3c47cad32a7d17c7b7a7ee723c86f","src/protocols/ip4.rs":"252d244ec9b098fcee6a185ffa98cbdee34164c7872fe30b07d5e8dfdf7a8fe3","src/protocols/ip6.rs":"72a51653aa4535f7b136a7bacaa1718e0a68be847d4a716c6e76b7f75a94e6ea","src/protocols/load_file.rs":"8aa4a43db3da6c71398eb9408b2be9b893eb2147e5317a0f977e998db2910cba","src/protocols/load_file2.rs":"5be9c5d501b4f10a44ba91448fce5d4a20c01eab9a8f7fb3c63eaa62cbb1c2f4","src/protocols/loaded_image.rs":"ff1c0ac600feeb780fe50920cc39cb2738d0749f00fb273658c8f34e6d382609","src/protocols/loaded_image_device_path.rs":"66e8fe3477785dadf96401da10e203ba729e54d7eddedaffc4d17acc9a0daf7f","src/protocols/managed_network.rs":"592111dee58137a21f3b49211baf0d9c73a14ca9de95fa31d7e87435ded3808d","src/protocols/mp_services.rs":"509e7d483df52ab1ba1f9241bb7b286ffe205c4328557b3115cd290b4c9f8278","src/protocols/pci_io.rs":"43dac18dfa284d83836ff1ccfb8e40d48ef94533b72cdb99ce30a768f70be67c","src/protocols/platform_driver_override.rs":"f0ada483bccd90f31a6f0ce8831ea00885b66ca558e34e347ec775cbc171534c","src/protocols/rng.rs":"279ce976d190889064d0159b10586bab9a2e5670368b460be4497ead523d6dda","src/protocols/service_binding.rs":"256920333ea26fabd3b62ba8a8b25068349acab6da01a807dfba3307a45d79a0","src/protocols/shell.rs":"3259b0bf2574da6b2343da0b9ce46980d296a8e6d8c2fe36df3a07d0629ad653","src/protocols/shell_dynamic_command.rs":"9c2f977fe4e0757b633de49627a9645d81c821a39e752cb329f6285d376fe52d","src/protocols/shell_parameters.rs":"fb88c63822a14dc94e96f7912fa5409f68b669105fb81459b969ec066002e352","src/protocols/simple_file_system.rs":"e3d870bdaf3ae0f0cded7817a4eda6d5dea2e0b77855cd21c7ac05046c77b564","src/protocols/simple_network.rs":"8b8c49872488cc0e759efe74c04fc65f5d7637dca7d9a0a1cedb5dafb2597acb","src/protocols/simple_text_input.rs":"d9a7e8cbf508daedaa26dc8301e52be957edfcc12be9e962b8504584aee669a8","src/protocols/simple_text_input_ex.rs":"84ccd2ff2c354c0447a9c46406ad76de018495d5f85979cf35d78b7070a8f63c","src/protocols/simple_text_output.rs":"05857880b5c0a6fb6ce83eedcc7fa25107f368950ab18a3d0ef1ed669d3456df","src/protocols/tcp4.rs":"2131cf06fd856017ea45135fb59264a43fabc3db1b7ddc90cd19c169ccdacae9","src/protocols/tcp6.rs":"98c24c43632acc60f2dc558c13a03657f93edca735435c50b9f2cc5625f7d3bb","src/protocols/timestamp.rs":"118cc4a54da4f53a4bb2fbf66cde8c433208266a22b59b4e370393f5a40c20a9","src/protocols/udp4.rs":"c4d344a40c674524383be51621a485d15ccfffaa94a1050c7a4642199fa91bf6","src/protocols/udp6.rs":"ea4ee2154e045a4e5992688e6cafed2d5a5de41f2796f5c070e739818b361550","src/system.rs":"5d078c96af81ca1102162dd4d896074618eba1f82a1179cde87a41d88c452682","src/vendor.rs":"6cc53fe0e98220fe627d82c9b27f1468095358bb26634a8c19274495888138af","src/vendor/intel/console_control.rs":"03a7fdf97ab1836353266786811ac47171d1c425dcead707f5ed0e2e834873fb"},"package":"c47196f636c4cc0634b73b0405323d177753c2e15e866952c64ea22902567a34"} \ No newline at end of file diff --git a/src/rust/vendor/r-efi/AUTHORS b/src/rust/vendor/r-efi/AUTHORS new file mode 100644 index 000000000..b40c24818 --- /dev/null +++ b/src/rust/vendor/r-efi/AUTHORS @@ -0,0 +1,71 @@ +LICENSE: + This project is triple-licensed under the MIT License, the Apache + License, Version 2.0, and the GNU Lesser General Public License, + Version 2.1+. + +AUTHORS-MIT: + 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. + +AUTHORS-ASL: + 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. + +AUTHORS-LGPL: + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; If not, see . + +COPYRIGHT: (ordered alphabetically) + Copyright (C) 2017-2023 Red Hat, Inc. + Copyright (C) 2019-2023 Microsoft Corporation + Copyright (C) 2022-2023 David Rheinsberg + +AUTHORS: (ordered alphabetically) + Alex James + Ayush Singh + Boris-Chengbiao Zhou + Bret Barkelew + David Rheinsberg + Dmitry Mostovenko + Hiroki Tokunaga + Joe Richey + John Schock + Michael Kubacki + Richard Wiedenhöft + Rob Bradford , + Tom Gundersen diff --git a/src/rust/vendor/r-efi/Cargo.lock b/src/rust/vendor/r-efi/Cargo.lock new file mode 100644 index 000000000..8cedb765e --- /dev/null +++ b/src/rust/vendor/r-efi/Cargo.lock @@ -0,0 +1,26 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "compiler_builtins" +version = "0.1.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d68bc55329711cd719c2687bb147bc06211b0521f97ef398280108ccb23227e9" +dependencies = [ + "rustc-std-workspace-core", +] + +[[package]] +name = "r-efi" +version = "4.4.0" +dependencies = [ + "compiler_builtins", + "rustc-std-workspace-core", +] + +[[package]] +name = "rustc-std-workspace-core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1956f5517128a2b6f23ab2dadf1a976f4f5b27962e7724c2bf3d45e539ec098c" diff --git a/src/rust/vendor/r-efi/Cargo.toml b/src/rust/vendor/r-efi/Cargo.toml new file mode 100644 index 000000000..00a450d99 --- /dev/null +++ b/src/rust/vendor/r-efi/Cargo.toml @@ -0,0 +1,64 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2018" +rust-version = "1.68" +name = "r-efi" +version = "4.4.0" +description = "UEFI Reference Specification Protocol Constants and Definitions" +homepage = "https://github.com/r-efi/r-efi/wiki" +readme = "README.md" +keywords = [ + "boot", + "efi", + "firmware", + "specification", + "uefi", +] +categories = [ + "embedded", + "hardware-support", + "no-std", + "os", +] +license = "MIT OR Apache-2.0 OR LGPL-2.1-or-later" +repository = "https://github.com/r-efi/r-efi" + +[[example]] +name = "freestanding" +required-features = ["native"] + +[[example]] +name = "gop-query" +required-features = ["native"] + +[[example]] +name = "hello-world" +required-features = ["native"] + +[dependencies.compiler_builtins] +version = "0.1.0" +optional = true + +[dependencies.core] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-core" + +[features] +efiapi = [] +examples = ["native"] +native = [] +rustc-dep-of-std = [ + "compiler_builtins/rustc-dep-of-std", + "core", +] diff --git a/src/rust/vendor/r-efi/Makefile b/src/rust/vendor/r-efi/Makefile new file mode 100644 index 000000000..d1d4b16d2 --- /dev/null +++ b/src/rust/vendor/r-efi/Makefile @@ -0,0 +1,85 @@ +# +# Maintenance Makefile +# + +# Enforce bash with fatal errors. +SHELL := /bin/bash -eo pipefail + +# Keep intermediates around on failures for better caching. +.SECONDARY: + +# Default build and source directories. +BUILDDIR ?= ./build +SRCDIR ?= . + +# +# Target: help +# + +.PHONY: help +help: + @# 80-width marker: + @# 01234567012345670123456701234567012345670123456701234567012345670123456701234567 + @echo "make [TARGETS...]" + @echo + @echo "The following targets are provided by this maintenance makefile:" + @echo + @echo " help: Print this usage information" + @echo + @echo " publish-github: Publish a release to GitHub" + +# +# Target: BUILDDIR +# + +$(BUILDDIR)/: + mkdir -p "$@" + +$(BUILDDIR)/%/: + mkdir -p "$@" + +# +# Target: FORCE +# +# Used as alternative to `.PHONY` if the target is not fixed. +# + +.PHONY: FORCE +FORCE: + +# +# Target: publish-* +# + +PUBLISH_REPO ?= r-efi/r-efi +PUBLISH_VERSION ?= + +define PUBLISH_RELNOTES_PY +with open('NEWS.md', 'r') as f: + notes = f.read().split("\n## CHANGES WITH ")[1:] + notes = dict(map(lambda v: (v[:v.find(":")], v), notes)) + notes = notes["$(PUBLISH_VERSION)"].strip() +print(" # r-efi - UEFI Reference Specification Protocol Constants and Definitions\n") +print(" ## CHANGES WITH", notes) +endef + +export PUBLISH_RELNOTES_PY +export PUBLISH_REPO +export PUBLISH_VERSION + +.PHONY: publish-github +publish-github: + test ! -z "$${PUBLISH_REPO}" + test ! -z "$${PUBLISH_VERSION}" + python \ + - \ + <<<"$${PUBLISH_RELNOTES_PY}" \ + | gh \ + release \ + --repo "$${PUBLISH_REPO}" \ + create \ + --verify-tag \ + --title \ + "r-efi-$${PUBLISH_VERSION}" \ + --notes-file - \ + "v$${PUBLISH_VERSION}" diff --git a/src/rust/vendor/r-efi/NEWS.md b/src/rust/vendor/r-efi/NEWS.md new file mode 100644 index 000000000..a810726d4 --- /dev/null +++ b/src/rust/vendor/r-efi/NEWS.md @@ -0,0 +1,248 @@ +# r-efi - UEFI Reference Specification Protocol Constants and Definitions + +## CHANGES WITH 4.4.0: + + * Add definitions for `UNACCEPTED_MEMORY_TYPE`, media device subtypes + for device paths, before-EBS and after-RTB event groups, missing + memory attributes. + + * Add memory masks for common memory attribute classes. The symbol + names are takend from EDK2, yet their purpose is defined in the + specification. + + * New protocols: platform_driver_override, bus_specific_driver_override, + driver_family_override, load_file, load_file2, pci-io + + Contributions from: David Rheinsberg, Dmitry Mostovenko, John Schock, + Michael Kubacki + + - Dußlingen, 2024-03-27 + +## CHANGES WITH 4.3.0: + + * Change alignment of `Guid` to 4 (was 8 before). This deviates from + the specification, but aligns with EDK2. This should fix alignment + mismatches when combining r-efi with EDK2, or other UEFI + implementations. + + * `Guid` gained a new constructor `from_bytes()` to allow creating + GUID-abstractions from foreign types based on the standardized + memory representation. + + * Add all configuration-table GUIDs mentioned in the spec. These are + often rooted in external specifications, but are strongly related + to UEFI. + + * Add configuration-table definitions for RT_PROPERTIES and + CONFORMANCE_PROFILES. + + * New protocols: hii_package_list, absolute_pointer + + Contributions from: David Rheinsberg, John Schock, Michael Kubacki, + Nicholas Bishop + + - Dußlingen, 2023-10-18 + +## CHANGES WITH 4.2.0: + + * Bump required compiler version to: rust-1.68 + + * New Protocols: debugport, debug-support, driver-diagnostics2, + mp-services, shell, shell-dynamic-command, + shell-parameters, udp-4, udp-6 + + * Use const-generics instead of ZSTs to represent dynamic trailing + members in C structs. + + * The `examples` feature has been renamed to `native` (a backwards + compatible feature is left in place). + + * Add support for riscv64. + + * Use the official rust `efiapi` calling convention. This was + stabilized with rust-1.68. + + Contributions from: Ayush Singh, David Rheinsberg, Rob Bradford + + - Dußlingen, 2023-03-20 + +## CHANGES WITH 4.1.0: + + * New Protocols: device-path-{from,to}-text, ip4, ip6, managed-network, + rng, service-binding, tcp4, tcp6, timestamp + + * `ImageEntryPoint` is now correctly annotated as `eficall`. + + * `Time` now derives `Default`. + + * Fix nullable function pointers to use `Option`. + + * Function prototypes now have an explicit type definition and can be + used independent of their protocol definition. + + * The new `rust-dep-of-std` feature option allows pulling in r-efi + into the rust standard library. It prepares the crate workspace to + be suitable for the standard library. It has no use outside of this. + + * Adopt the MIT license as 3rd licensing option to allow for + integration into the rust compiler and ecosystem. + + Contributions from: Ayush Singh, David Rheinsberg, Joe Richey + + - Tübingen, 2022-08-23 + +## CHANGES WITH 4.0.0: + + * Convert all enums to constants with type-aliases. This is an API + break, but it is needed for spec-compliance. With the old enums, one + couldn't encode all the possible values defined by the spec. + Especially, the vendor-reserved ranges were unable to be encoded in + a safe manner. Also see commit 401a91901e860 for a detailed + discussion. + API users likely need to convert their CamelCase enum usage to the + new UPPER_CASE constants. + + * Convert all incomplete types to empty arrays. This affects all + structures that use trailing unbound arrays. These are actually ABI + incompatible with UEFI, since rust represents raw-pointers to such + types as fat-pointers. Such arrays have now been converted to empty + arrays, which should still allow accessing the memory location and + retaining structure properties, but avoids fat-pointers. + This is an API break, so you might have to adjust your accessors of + those trailing structure members. + + * Implement `Clone` and `Copy` for most basic structures. Since these + are used as plain carriers, no higher clone/copy logic is needed. It + should be clear from the project-description, that only basic UEFI + compatibility is provided. + + * Add the console-control vendor protocol. This protocol allows + controlling console properties. It is not part of the UEFI + specification, but rather defined by the TianoCore project. + + * Add a new example showing how to use the GOP functions to query the + active graphics device. + + Contributions from: David Rheinsberg, GGRei, Hiroki Tokunaga, + Richard Wiedenhöft + + - Tübingen, 2021-06-23 + +## CHANGES WITH 3.2.0: + + * Add new protocols: DiskIo, DiskIo2, BlockIo, DriverBinding + + * Extend the Device-Path payload structure and add the HardDriveMedia + payload. + + * Add HII definitions: A new top-level module `hii` with all the basic + HII constants, as well as a handful of HII protocols (hii_database, + hii_font, hii_string) + + * Document new `-Zbuild-std` based cross-compilation, serving as + official rust alternative to cargo-xbuild. + + Contributions from: Alex James, Bret Barkelew, David Rheinsberg, + Michael Kubacki + + - Tübingen, 2020-10-23 + +## CHANGES WITH 3.1.0: + + * Add the basic networking types to `r_efi::base`. This includes MAC + and IP address types. + + * Add the EFI_SIMPLE_NETWORK_PROTOCOL definitions and all required + constants to make basic networking available. + + * Add a new uefi-cross example, which is copied from upstream rustc + sources, so we can test local modifications to it. + + Contributions from: Alex James, David Rheinsberg + + - Tübingen, 2020-09-10 + +## CHANGES WITH 3.0.0: + + * Fix a missing parameter in `BootServices::locate_device_path()`. The + prototype incorrectly had 2 arguments, while the official version + takes 3. The final `handle` argument was missing. + This is an API break in `r-efi`. It should have a limited impact, + since the function was mostly useless without a handle. + Thanks to Michael Kubacki for catching this! + + * Adjust the `device_path` parameter in a bunch of `BootServices` + calls. This used to take a `*mut c_void` parameter, since the device + path protocol was not implemented. + Since we have to bump the major version anyway, we use this to also + fix these argument-types to the correct device-path protocol type, + which has been implemented some time ago. + + Contributions from: David Rheinsberg, Michael Kubacki + + - Tübingen, 2020-04-24 + +## CHANGES WITH 2.2.0: + + * Provide `as_usize()` accessor for `efi::Status` types. This allows + accessing the raw underlying value of a status object. + + * The project moved to its new home at: github.com/r-efi/r-efi + + Contributions from: David Rheinsberg, Joe Richey + + - Tübingen, 2020-04-16 + +## CHANGES WITH 2.1.0: + + * Add the graphics-output-protocol. + + * Expose reserved fields in open structures, otherwise they cannot be + instantiated from outside the crate itself. + + Contributions from: David Herrmann, Richard Wiedenhöft, Rob Bradford + + - Tübingen, 2019-03-20 + +## CHANGES WITH 2.0.0: + + * Add a set of UEFI protocols, including simple-text-input, + file-protocol, simple-file-system, device-path, and more. + + * Fix signature of `BootServices::allocate_pages`. + + Contributions from: David Rheinsberg, Richard Wiedenhöft, Tom Gundersen + + - Tübingen, 2019-03-01 + +## CHANGES WITH 1.0.0: + + * Enhance the basic UEFI type integration with the rust ecosystem. Add + `Debug`, `Eq`, `Ord`, ... derivations, provide converters to/from the + core library, and document the internal workings. + + * Fix `Boolean` to use `newtype(u8)` to make it ABI compatible to UEFI. + This now accepts any byte value that UEFI accetps without any + conversion required. + + Contributions from: Boris-Chengbiao Zhou, David Rheinsberg, Tom + Gundersen + + - Tübingen, 2019-02-14 + +## CHANGES WITH 0.1.1: + + * Feature gate examples to make `cargo test` work on non-UEFI systems + like CI. + + Contributions from: David Herrmann + + - Tübingen, 2018-12-10 + +## CHANGES WITH 0.1.0: + + * Initial release of r-efi. + + Contributions from: David Herrmann + + - Tübingen, 2018-12-10 diff --git a/src/rust/vendor/r-efi/README.md b/src/rust/vendor/r-efi/README.md new file mode 100644 index 000000000..b5b8f8757 --- /dev/null +++ b/src/rust/vendor/r-efi/README.md @@ -0,0 +1,99 @@ +r-efi +===== + +UEFI Reference Specification Protocol Constants and Definitions + +The r-efi project provides the protocol constants and definitions of the +UEFI Reference Specification as native rust code. The scope of this project is +limited to those protocol definitions. The protocols are not actually +implemented. As such, this project serves as base for any UEFI application that +needs to interact with UEFI, or implement (parts of) the UEFI specification. + +### Project + + * **Website**: + * **Bug Tracker**: + +### Requirements + +The requirements for this project are: + + * `rustc >= 1.68.0` + +### Build + +To build this project, run: + +```sh +cargo build +``` + +Available configuration options are: + + * **native**: This feature-selector enables compilation of modules and + examples that require native UEFI targets. Those will not + compile on foreign targets and thus are guarded by this flag. + +##### Build via: official toolchains + +Starting with rust-version 1.68, rustup distributes pre-compiled toolchains for +many UEFI targets. You can enumerate and install them via `rustup`. This +example shows how to enumerate all available targets for your stable toolchain +and then install the UEFI target for the `x86_64` architecture: + +```sh +rustup target list --toolchain=stable +rustup target add --toolchain=stable x86_64-unknown-uefi +``` + +This project can then be compiled directly for the selected target: + +```sh +cargo +stable build \ + --examples \ + --features native \ + --lib \ + --target x86_64-unknown-uefi +``` + +##### Build via: cargo/rustc nightly with -Zbuild-std + +If no pre-compiled toolchains are available for your selected target, you can +compile the project and the required parts of the standard library via the +experimental `-Zbuild-std` feature of rustc. This requires a nightly compiler: + +```sh +cargo +nightly build \ + -Zbuild-std=core,compiler_builtins,alloc \ + -Zbuild-std-features=compiler-builtins-mem \ + --examples \ + --features native \ + --lib \ + --target x86_64-unknown-uefi +``` + +##### Build via: foreign target + +The project can be built for non-UEFI targets via the standard rust toolchains. +This allows non-UEFI targets to interact with UEFI systems or otherwise host +UEFI operations. Furthermore, this allows running the foreign test-suite of +this project as long as the target supports the full standard library: + +```sh +cargo +stable build --all-targets +cargo +stable test --all-targets +``` + +Note that the `native` feature must not be enabled for foreign targets as it +will not compile on non-UEFI systems. + +### Repository: + + - **web**: + - **https**: `https://github.com/r-efi/r-efi.git` + - **ssh**: `git@github.com:r-efi/r-efi.git` + +### License: + + - **MIT** OR **Apache-2.0** OR **LGPL-2.1-or-later** + - See AUTHORS file for details. diff --git a/src/rust/vendor/r-efi/examples/freestanding.rs b/src/rust/vendor/r-efi/examples/freestanding.rs new file mode 100644 index 000000000..1c4e3aaf4 --- /dev/null +++ b/src/rust/vendor/r-efi/examples/freestanding.rs @@ -0,0 +1,34 @@ +// Example: Freestanding +// +// This example is a plain UEFI application without any external requirements +// but `core`. It immediately returns control to the caller upon execution, +// yielding the exit code 0. +// +// The `main` function serves as entry-point. Depending on your +// target-configuration, it must be exported with a pre-configured name so the +// linker will correctly mark it as entry-point. The target configurations +// shipped with upstream rust-lang use `efi_main` as symbol name. +// +// Additionally, a panic handler is provided. This is executed by rust on +// panic. For simplicity, we simply end up in an infinite loop. For real +// applications, this method should probably call into +// `SystemTable->boot_services->exit()` to exit the UEFI application. Note, +// however, that UEFI applications are likely to run in the same address space +// as the entire firmware. Hence, halting the machine might be a viable +// alternative. All that is out-of-scope for this example, though. +// +// Note that as of rust-1.31.0, all features used here are stabilized. No +// unstable features are required, nor do we rely on nightly compilers. + +#![no_main] +#![no_std] + +#[panic_handler] +fn panic_handler(_info: &core::panic::PanicInfo) -> ! { + loop {} +} + +#[export_name = "efi_main"] +pub extern "C" fn main(_h: *mut core::ffi::c_void, _st: *mut core::ffi::c_void) -> usize { + 0 +} diff --git a/src/rust/vendor/r-efi/examples/gop-query.rs b/src/rust/vendor/r-efi/examples/gop-query.rs new file mode 100644 index 000000000..b4ab4c370 --- /dev/null +++ b/src/rust/vendor/r-efi/examples/gop-query.rs @@ -0,0 +1,188 @@ +// Example: Graphics Query +// +// This is a slightly more complex UEFI application than `hello-world`. It +// locates the graphics-output-protocol, queries its current mode and prints +// the current resolution to the UEFI console. +// +// This example should make everyone aware that UEFI programing in Rust really +// asks for helper layers. While the C/FFI/Spec API can be used directly, it +// is quite cumbersome. Especially the error handling is overly difficult. +// +// Nevertheless, this example shows how to find UEFI protocol and invoke +// their member functions. +// +// Like all the other r-efi examples, it is a standalone example. That is, no +// UTF-16 helpers are pulled in, nor any allocators or panic frameworks. For +// real world scenarios, you really should choose such helpers. + +#![no_main] +#![no_std] + +use r_efi::efi; + +#[panic_handler] +fn panic_handler(_info: &core::panic::PanicInfo) -> ! { + loop {} +} + +fn fail(_r: efi::Status) -> ! { + panic!(); +} + +// A simple `itoa()`-ish function that takes a u32 and turns it into a UTF-16 +// string. It always prints exactly 10 characters, so leading zeroes are used +// for small numbers. +fn utoa(mut u: u32, a: &mut [u16]) { + for i in 0..10 { + a[9 - i] = 0x0030u16 + ((u % 10) as u16); + u = u / 10; + } +} + +// A simple helper that takes two integers and prints them to the UEFI console +// with a short prefix. It uses a UTF-16 buffer and fills in the numbers before +// printing the entire buffer. +fn print_xy(st: *mut efi::SystemTable, x: u32, y: u32) { + let mut s = [ + 0x0058u16, 0x0059u16, 0x003au16, // "XY:" + 0x0020u16, // " " + 0x0020u16, 0x0020u16, 0x0020u16, 0x0020u16, // " " + 0x0020u16, 0x0020u16, 0x0020u16, 0x0020u16, // " " + 0x0020u16, 0x0020u16, // " " + 0x0078u16, // "x" + 0x0020u16, 0x0020u16, 0x0020u16, 0x0020u16, // " " + 0x0020u16, 0x0020u16, 0x0020u16, 0x0020u16, // " " + 0x0020u16, 0x0020u16, // " " + 0x000au16, // "\n" + 0x0000u16, // NUL + ]; + + utoa(x, &mut s[4..14]); + utoa(y, &mut s[15..25]); + + unsafe { + let r = ((*(*st).con_out).output_string)((*st).con_out, s.as_ptr() as *mut efi::Char16); + if r.is_error() { + fail(r); + } + } +} + +// This function locates singleton UEFI protocols. Those protocols do not +// require to register listener handles, but are globally available to all +// UEFI applications. It takes a GUID of the protocol to locate and returns +// the protocol pointer on success. +fn locate_singleton( + st: *mut efi::SystemTable, + guid: *const efi::Guid, +) -> Result<*mut core::ffi::c_void, efi::Status> { + let mut interface: *mut core::ffi::c_void = core::ptr::null_mut(); + let mut handles: *mut efi::Handle = core::ptr::null_mut(); + let mut n_handles: usize = 0; + let mut r: efi::Status; + + // Use `locate_handle_buffer()` to find all handles that support the + // specified protocol. + unsafe { + if (*st).hdr.revision < efi::SYSTEM_TABLE_REVISION_1_10 { + // We use `LocateHandleBuffer`, which was introduced in 1.10. + return Err(efi::Status::UNSUPPORTED); + } + + let r = ((*(*st).boot_services).locate_handle_buffer)( + efi::BY_PROTOCOL, + guid as *mut _, + core::ptr::null_mut(), + &mut n_handles, + &mut handles, + ); + match r { + efi::Status::SUCCESS => {} + efi::Status::NOT_FOUND => return Err(r), + efi::Status::OUT_OF_RESOURCES => return Err(r), + _ => panic!(), + }; + } + + // Now that we have all handles with the specified protocol, query it for + // the protocol interface. We loop here, even though every item should + // succeed. Lets be on the safe side. + // Secondly, we use `handle_protocol()` here, but really should be using + // `open_protocol()`. But for singleton protocols, this does not matter, + // so lets use the simple path for now. + unsafe { + r = efi::Status::NOT_FOUND; + for i in 0..n_handles { + r = ((*(*st).boot_services).handle_protocol)( + *handles.offset(core::convert::TryFrom::::try_from(i).unwrap()), + guid as *mut _, + &mut interface, + ); + match r { + efi::Status::SUCCESS => break, + efi::Status::UNSUPPORTED => continue, + _ => panic!(), + }; + } + } + + // Free the allocated buffer memory of `handles`. This was allocated on the + // pool by `locate_handle_buffer()`. + unsafe { + let r = ((*(*st).boot_services).free_pool)(handles as *mut core::ffi::c_void); + assert!(!r.is_error()); + } + + // In case we found nothing, return `NOT_FOUND`, otherwise return the + // interface identifier. + match r { + efi::Status::SUCCESS => Ok(interface), + _ => Err(efi::Status::NOT_FOUND), + } +} + +// A simple helper that queries the current mode of the GraphicsOutputProtocol +// and returns the x and y dimensions on success. +fn query_gop( + gop: *mut efi::protocols::graphics_output::Protocol, +) -> Result<(u32, u32), efi::Status> { + let mut info: *mut efi::protocols::graphics_output::ModeInformation = core::ptr::null_mut(); + let mut z_info: usize = 0; + + unsafe { + // We could just look at `gop->mode->info`, but lets query the mode + // instead to show how to query other modes than the active one. + let r = ((*gop).query_mode)(gop, (*(*gop).mode).mode, &mut z_info, &mut info); + match r { + efi::Status::SUCCESS => {} + efi::Status::DEVICE_ERROR => return Err(r), + _ => panic!(), + }; + if z_info < core::mem::size_of_val(&*info) { + return Err(efi::Status::UNSUPPORTED); + } + + Ok(((*info).horizontal_resolution, (*info).vertical_resolution)) + } +} + +// This is the UEFI application entrypoint. We use it to locate the GOP +// pointer, query the current mode, and then print it to the system console. +#[export_name = "efi_main"] +pub extern "C" fn main(_h: efi::Handle, st: *mut efi::SystemTable) -> efi::Status { + let r = locate_singleton(st, &efi::protocols::graphics_output::PROTOCOL_GUID); + let gop = match r { + Ok(v) => v, + Err(r) => fail(r), + }; + + let r = query_gop(gop as _); + let v = match r { + Ok(v) => v, + Err(r) => fail(r), + }; + + print_xy(st, v.0, v.1); + + efi::Status::SUCCESS +} diff --git a/src/rust/vendor/r-efi/examples/hello-world.rs b/src/rust/vendor/r-efi/examples/hello-world.rs new file mode 100644 index 000000000..25b5243ac --- /dev/null +++ b/src/rust/vendor/r-efi/examples/hello-world.rs @@ -0,0 +1,55 @@ +// Example: Hello World! +// +// This is an example UEFI application that prints "Hello World!", then waits +// for key input before it exits. It serves as base example how to write UEFI +// applications without any helper modules other than the UEFI protocol +// definitions. +// +// This example builds upon the `freestanding.rs` example, using the same setup +// and rust integration. See there for details on the panic-handler and entry +// point configuration. +// +// Note that UEFI uses UTF-16 strings. Since rust literals are UTF-8, we have +// to use an open-coded, zero-terminated, UTF-16 array as argument to +// `output_string()`. Similarly to the panic handler, real applications should +// rather use UTF-16 modules. + +#![no_main] +#![no_std] + +use r_efi::efi; + +#[panic_handler] +fn panic_handler(_info: &core::panic::PanicInfo) -> ! { + loop {} +} + +#[export_name = "efi_main"] +pub extern "C" fn main(_h: efi::Handle, st: *mut efi::SystemTable) -> efi::Status { + let s = [ + 0x0048u16, 0x0065u16, 0x006cu16, 0x006cu16, 0x006fu16, // "Hello" + 0x0020u16, // " " + 0x0057u16, 0x006fu16, 0x0072u16, 0x006cu16, 0x0064u16, // "World" + 0x0021u16, // "!" + 0x000au16, // "\n" + 0x0000u16, // NUL + ]; + + // Print "Hello World!". + let r = + unsafe { ((*(*st).con_out).output_string)((*st).con_out, s.as_ptr() as *mut efi::Char16) }; + if r.is_error() { + return r; + } + + // Wait for key input, by waiting on the `wait_for_key` event hook. + let r = unsafe { + let mut x: usize = 0; + ((*(*st).boot_services).wait_for_event)(1, &mut (*(*st).con_in).wait_for_key, &mut x) + }; + if r.is_error() { + return r; + } + + efi::Status::SUCCESS +} diff --git a/src/rust/vendor/r-efi/src/base.rs b/src/rust/vendor/r-efi/src/base.rs new file mode 100644 index 000000000..eb66f99fd --- /dev/null +++ b/src/rust/vendor/r-efi/src/base.rs @@ -0,0 +1,923 @@ +//! UEFI Base Environment +//! +//! This module defines the base environment for UEFI development. It provides types and macros as +//! declared in the UEFI specification, as well as de-facto standard additions provided by the +//! reference implementation by Intel. +//! +//! # Target Configuration +//! +//! Wherever possible, native rust types are used to represent their UEFI counter-parts. However, +//! this means the ABI depends on the implementation of said rust types. Hence, native rust types +//! are only used where rust supports a stable ABI of said types, and their ABI matches the ABI +//! defined by the UEFI specification. +//! +//! Nevertheless, even if the ABI of a specific type is marked stable, this does not imply that it +//! is the same across architectures. For instance, rust's `u64` type has the same binary +//! representation as the `UINT64` type in UEFI. But this does not imply that it has the same +//! binary representation on `x86_64` and on `ppc64be`. As a result of this, the compilation of +//! this module is tied to the target-configuration you passed to the rust compiler. Wherever +//! possible and reasonable, any architecture differences are abstracted, though. This means that +//! in most cases you can use this module even though your target-configuration might not match +//! the native UEFI target-configuration. +//! +//! The recommend way to compile your code, is to use the native target-configuration for UEFI. +//! These configurations are not necessarily included in the upstream rust compiler. Hence, you +//! might have to craft one yourself. For all systems that we can test on, we make sure to push +//! the target configuration into upstream rust-lang. +//! +//! However, there are situations where you want to access UEFI data from a non-native host. For +//! instance, a UEFI boot loader might store data in boot variables, formatted according to types +//! declared in the UEFI specification. An OS booted thereafter might want to access these +//! variables, but it might be compiled with a different target-configuration than the UEFI +//! environment that it was booted from. A similar situation occurs when you call UEFI runtime +//! functions from your OS. In all those cases, you should very likely be able to use this module +//! to interact with UEFI as well. This is, because most bits of the target-configuration of UEFI +//! and your OS very likely match. In fact, to figure out whether this is safe, you need to make +//! sure that the rust ABI would match in both target-configurations. If it is, all other details +//! are handled within this module just fine. +//! +//! In case of doubt, contact us! +//! +//! # Core Primitives +//! +//! Several of the UEFI primitives are represented by native Rust. These have no type aliases or +//! other definitions here, but you are recommended to use native rust directly. These include: +//! +//! * `NULL`, `void *`: Void pointers have a native rust implementation in +//! [`c_void`](core::ffi::c_void). `NULL` is represented through +//! [`null`](core::ptr::null) and [`is_null()`](core::ptr) for +//! all pointer types. +//! * `uint8_t`..`uint64_t`, +//! `int8_t`..`int64_t`: Fixed-size integers are represented by their native rust equivalents +//! (`u8`..`u64`, `i8`..`i64`). +//! +//! * `UINTN`, `INTN`: Native-sized (or instruction-width sized) integers are represented by +//! their native rust equivalents (`usize`, `isize`). +//! +//! # UEFI Details +//! +//! The UEFI Specification describes its target environments in detail. Each supported +//! architecture has a separate section with details on calling conventions, CPU setup, and more. +//! You are highly recommended to conduct the UEFI Specification for details on the programming +//! environment. Following a summary of key parts relevant to rust developers: +//! +//! * Similar to rust, integers are either fixed-size, or native size. This maps nicely to the +//! native rust types. The common `long`, `int`, `short` types known from ISO-C are not used. +//! Whenever you refer to memory (either pointing to it, or remember the size of a memory +//! block), the native size integers should be your tool of choice. +//! +//! * Even though the CPU might run in any endianness, all stored data is little-endian. That +//! means, if you encounter integers split into byte-arrays (e.g., +//! `CEfiDevicePathProtocol.length`), you must assume it is little-endian encoded. But if you +//! encounter native integers, you must assume they are encoded in native endianness. +//! For now the UEFI specification only defines little-endian architectures, hence this did not +//! pop up as actual issue. Future extensions might change this, though. +//! +//! * The Microsoft calling-convention is used. That is, all external calls to UEFI functions +//! follow a calling convention that is very similar to that used on Microsoft Windows. All +//! such ABI functions must be marked with the right calling-convention. The UEFI Specification +//! defines some additional common rules for all its APIs, though. You will most likely not see +//! any of these mentioned in the individual API documentions. So here is a short reminder: +//! +//! * Pointers must reference physical-memory locations (no I/O mappings, no +//! virtual addresses, etc.). Once ExitBootServices() was called, and the +//! virtual address mapping was set, you must provide virtual-memory +//! locations instead. +//! * Pointers must be correctly aligned. +//! * NULL is disallowed, unless explicitly mentioned otherwise. +//! * Data referenced by pointers is undefined on error-return from a +//! function. +//! * You must not pass data larger than native-size (sizeof(CEfiUSize)) on +//! the stack. You must pass them by reference. +//! +//! * Stack size is at least 128KiB and 16-byte aligned. All stack space might be marked +//! non-executable! Once ExitBootServices() was called, you must guarantee at least 4KiB of +//! stack space, 16-byte aligned for all runtime services you call. +//! Details might differ depending on architectures. But the numbers here should serve as +//! ball-park figures. + +// Target Architecture +// +// The UEFI Specification explicitly lists all supported target architectures. While external +// implementors are free to port UEFI to other targets, we need information on the target +// architecture to successfully compile for it. This includes calling-conventions, register +// layouts, endianness, and more. Most of these details are hidden in the rust-target-declaration. +// However, some details are still left to the actual rust code. +// +// This initial check just makes sure the compilation is halted with a suitable error message if +// the target architecture is not supported. +// +// We try to minimize conditional compilations as much as possible. A simple search for +// `target_arch` should reveal all uses throughout the code-base. If you add your target to this +// error-check, you must adjust all other uses as well. +// +// Similarly, UEFI only defines configurations for little-endian architectures so far. Several +// bits of the specification are thus unclear how they would be applied on big-endian systems. We +// therefore mark it as unsupported. If you override this, you are on your own. +#[cfg(not(any( + target_arch = "arm", + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "x86", + target_arch = "x86_64" +)))] +compile_error!("The target architecture is not supported."); +#[cfg(not(target_endian = "little"))] +compile_error!("The target endianness is not supported."); + +// eficall_abi!() +// +// This macro is the architecture-dependent implementation of eficall!(). See the documentation of +// the eficall!() macro for a description. Nowadays, this simply maps to `extern "efiapi"`, since +// this has been stabilized with rust-1.68. + +#[macro_export] +#[doc(hidden)] +macro_rules! eficall_abi { + (($($prefix:tt)*),($($suffix:tt)*)) => { $($prefix)* extern "efiapi" $($suffix)* }; +} + +/// Annotate function with UEFI calling convention +/// +/// Since rust-1.68 you can use `extern "efiapi"` as calling-convention to achieve the same +/// behavior as this macro. This macro is kept for backwards-compatibility only, but will nowadays +/// map to `extern "efiapi"`. +/// +/// This macro takes a function-declaration as argument and produces the same function-declaration +/// but annotated with the correct calling convention. Since the default `extern "C"` annotation +/// depends on your compiler defaults, we cannot use it. Instead, this macro selects the default +/// for your target platform. +/// +/// Ideally, the macro would expand to `extern ""` so you would be able to write: +/// +/// ```ignore +/// // THIS DOES NOT WORK! +/// pub fn eficall!{} foobar() { +/// // ... +/// } +/// ``` +/// +/// However, macros are evaluated too late for this to work. Instead, the entire construct must be +/// wrapped in a macro, which then expands to the same construct but with `extern ""` +/// inserted at the correct place: +/// +/// ``` +/// use r_efi::{eficall, eficall_abi}; +/// +/// eficall!{pub fn foobar() { +/// // ... +/// }} +/// +/// type FooBar = eficall!{fn(u8) -> (u8)}; +/// ``` +/// +/// The `eficall!{}` macro takes either a function-type or function-definition as argument. It +/// inserts `extern ""` after the function qualifiers, but before the `fn` keyword. +/// +/// # Internals +/// +/// The `eficall!{}` macro tries to parse the function header so it can insert `extern ""` at +/// the right place. If, for whatever reason, this does not work with a particular syntax, you can +/// use the internal `eficall_abi!{}` macro. This macro takes two token-streams as input and +/// evaluates to the concatenation of both token-streams, but separated by the selected ABI. +/// +/// For instance, the following 3 type definitions are equivalent, assuming the selected ABI +/// is "C": +/// +/// ``` +/// use r_efi::{eficall, eficall_abi}; +/// +/// type FooBar1 = unsafe extern "C" fn(u8) -> (u8); +/// type FooBar2 = eficall!{unsafe fn(u8) -> (u8)}; +/// type FooBar3 = eficall_abi!{(unsafe), (fn(u8) -> (u8))}; +/// ``` +/// +/// # Calling Conventions +/// +/// The UEFI specification defines the calling convention for each platform individually. It +/// usually refers to other standards for details, but adds some restrictions on top. As of this +/// writing, it mentions: +/// +/// * aarch32 / arm: The `aapcs` calling-convention is used. It is native to aarch32 and described +/// in a document called +/// "Procedure Call Standard for the ARM Architecture". It is openly distributed +/// by ARM and widely known under the keyword `aapcs`. +/// * aarch64: The `aapcs64` calling-convention is used. It is native to aarch64 and described in +/// a document called +/// "Procedure Call Standard for the ARM 64-bit Architecture (AArch64)". It is openly +/// distributed by ARM and widely known under the keyword `aapcs64`. +/// * ia-64: The "P64 C Calling Convention" as described in the +/// "Itanium Software Conventions and Runtime Architecture Guide". It is also +/// standardized in the "Intel Itanium SAL Specification". +/// * RISC-V: The "Standard RISC-V C Calling Convention" is used. The UEFI specification +/// describes it in detail, but also refers to the official RISC-V resources for +/// detailed information. +/// * x86 / ia-32: The `cdecl` C calling convention is used. Originated in the C Language and +/// originally tightly coupled to C specifics. Unclear whether a formal +/// specification exists (does anyone know?). Most compilers support it under the +/// `cdecl` keyword, and in nearly all situations it is the default on x86. +/// * x86_64 / amd64 / x64: The `win64` calling-convention is used. It is similar to the `sysv64` +/// convention that is used on most non-windows x86_64 systems, but not +/// exactly the same. Microsoft provides open documentation on it. See +/// MSDN "x64 Software Conventions -> Calling Conventions". +/// The UEFI Specification does not directly refer to `win64`, but +/// contains a full specification of the calling convention itself. +/// +/// Note that in most cases the UEFI Specification adds several more restrictions on top of the +/// common calling-conventions. These restrictions usually do not affect how the compiler will lay +/// out the function calls. Instead, it usually only restricts the set of APIs that are allowed in +/// UEFI. Therefore, most compilers already support the calling conventions used on UEFI. +/// +/// # Variadics +/// +/// For some reason, the rust compiler allows variadics only in combination with the `"C"` calling +/// convention, even if the selected calling-convention matches what `"C"` would select on the +/// target platform. Hence, you will very likely be unable to use variadics with this macro. +/// Luckily, all of the UEFI functions that use variadics are wrappers around more low-level +/// accessors, so they are not necessarily required. +#[macro_export] +macro_rules! eficall { + // Muncher + // + // The `@munch()` rules are internal and should not be invoked directly. We walk through the + // input, moving one token after the other from the suffix into the prefix until we find the + // position where to insert `extern ""`. This muncher never drops any tokens, hence we + // can safely match invalid statements just fine, as the compiler will later print proper + // diagnostics when parsing the macro output. + // Once done, we invoke the `eficall_abi!{}` macro, which simply inserts the correct ABI. + (@munch(($($prefix:tt)*),(pub $($suffix:tt)*))) => { eficall!{@munch(($($prefix)* pub),($($suffix)*))} }; + (@munch(($($prefix:tt)*),(unsafe $($suffix:tt)*))) => { eficall!{@munch(($($prefix)* unsafe),($($suffix)*))} }; + (@munch(($($prefix:tt)*),($($suffix:tt)*))) => { eficall_abi!{($($prefix)*),($($suffix)*)} }; + + // Entry Point + // + // This captures the entire argument and invokes its own TT-muncher, but splits the input into + // prefix and suffix, so the TT-muncher can walk through it. Note that initially everything is + // in the suffix and the prefix is empty. + ($($arg:tt)*) => { eficall!{@munch((),($($arg)*))} }; +} + +/// Boolean Type +/// +/// This boolean type works very similar to the rust primitive type of [`bool`]. However, the rust +/// primitive type has no stable ABI, hence we provide this type to represent booleans on the FFI +/// interface. +/// +/// UEFI defines booleans to be 1-byte integers, which can only have the values of `0` or `1`. +/// However, in practice anything non-zero is considered `true` by nearly all UEFI systems. Hence, +/// this type implements a boolean over `u8` and maps `0` to `false`, everything else to `true`. +/// +/// The binary representation of this type is ABI. That is, you are allowed to transmute from and +/// to `u8`. Furthermore, this type never modifies its binary representation. If it was +/// initialized as, or transmuted from, a specific integer value, this value will be retained. +/// However, on the rust side you will never see the integer value. It instead behaves truly as a +/// boolean. If you need access to the integer value, you have to transmute it back to `u8`. +#[repr(C)] +#[derive(Clone, Copy, Debug, Eq)] +pub struct Boolean(u8); + +/// Single-byte Character Type +/// +/// The `Char8` type represents single-byte characters. UEFI defines them to be ASCII compatible, +/// using the ISO-Latin-1 character set. +pub type Char8 = u8; + +/// Dual-byte Character Type +/// +/// The `Char16` type represents dual-byte characters. UEFI defines them to be UCS-2 encoded. +pub type Char16 = u16; + +/// Status Codes +/// +/// UEFI uses the `Status` type to represent all kinds of status codes. This includes return codes +/// from functions, but also complex state of different devices and drivers. It is a simple +/// `usize`, but wrapped in a rust-type to allow us to implement helpers on this type. Depending +/// on the context, different state is stored in it. Note that it is always binary compatible to a +/// usize! +#[repr(C)] +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub struct Status(usize); + +/// Object Handles +/// +/// Handles represent access to an opaque object. Handles are untyped by default, but get a +/// meaning when you combine them with an interface. Internally, they are simple void pointers. It +/// is the UEFI driver model that applies meaning to them. +pub type Handle = *mut core::ffi::c_void; + +/// Event Objects +/// +/// Event objects represent hooks into the main-loop of a UEFI environment. They allow to register +/// callbacks, to be invoked when a specific event happens. In most cases you use events to +/// register timer-based callbacks, as well as chaining events together. Internally, they are +/// simple void pointers. It is the UEFI task management that applies meaning to them. +pub type Event = *mut core::ffi::c_void; + +/// Logical Block Addresses +/// +/// The LBA type is used to denote logical block addresses of block devices. It is a simple 64-bit +/// integer, that is used to denote addresses when working with block devices. +pub type Lba = u64; + +/// Thread Priority Levels +/// +/// The process model of UEFI systems is highly simplified. Priority levels are used to order +/// execution of pending tasks. The TPL type denotes a priority level of a specific task. The +/// higher the number, the higher the priority. It is a simple integer type, but its range is +/// usually highly restricted. The UEFI task management provides constants and accessors for TPLs. +pub type Tpl = usize; + +/// Physical Memory Address +/// +/// A simple 64bit integer containing a physical memory address. +pub type PhysicalAddress = u64; + +/// Virtual Memory Address +/// +/// A simple 64bit integer containing a virtual memory address. +pub type VirtualAddress = u64; + +/// Application Entry Point +/// +/// This type defines the entry-point of UEFI applications. It is ABI and cannot be changed. +/// Whenever you load UEFI images, the entry-point is called with this signature. +/// +/// In most cases the UEFI image (or application) is unloaded when control returns from the entry +/// point. In case of UEFI drivers, they can request to stay loaded until an explicit unload. +/// +/// The system table is provided as mutable pointer. This is, because there is no guarantee that +/// timer interrupts do not modify the table. Furthermore, exiting boot services causes several +/// modifications on that table. And lastly, the system table lives longer than the function +/// invocation, if invoked as an UEFI driver. +/// In most cases it is perfectly fine to cast the pointer to a real rust reference. However, this +/// should be an explicit decision by the caller. +pub type ImageEntryPoint = eficall! {fn(Handle, *mut crate::system::SystemTable) -> Status}; + +/// Globally Unique Identifiers +/// +/// The `Guid` type represents globally unique identifiers as defined by RFC-4122 (i.e., only the +/// `10x` variant is used), with the caveat that LE is used instead of BE. +/// +/// Note that only the binary representation of Guids is stable. You are highly recommended to +/// interpret Guids as 128bit integers. +/// +/// The UEFI specification requires the type to be 64-bit aligned, yet EDK2 uses a mere 32-bit +/// alignment. Hence, for compatibility, a 32-bit alignment is used. +/// +/// UEFI uses the Microsoft-style Guid format. Hence, a lot of documentation and code refers to +/// these Guids. If you thusly cannot treat Guids as 128-bit integers, this Guid type allows you +/// to access the individual fields of the Microsoft-style Guid. A reminder of the Guid encoding: +/// +/// ```text +/// 0 1 2 3 +/// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +/// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +/// | time_low | +/// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +/// | time_mid | time_hi_and_version | +/// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +/// |clk_seq_hi_res | clk_seq_low | node (0-1) | +/// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +/// | node (2-5) | +/// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +/// ``` +/// +/// The individual fields are encoded as little-endian. Accessors are provided for the Guid +/// structure allowing access to these fields in native endian byte order. +#[repr(C, align(4))] +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub struct Guid { + time_low: [u8; 4], + time_mid: [u8; 2], + time_hi_and_version: [u8; 2], + clk_seq_hi_res: u8, + clk_seq_low: u8, + node: [u8; 6], +} + +/// Network MAC Address +/// +/// This type encapsulates a single networking media access control address +/// (MAC). It is a simple 32 bytes buffer with no special alignment. Note that +/// no comparison function are defined by default, since trailing bytes of the +/// address might be random. +/// +/// The interpretation of the content differs depending on the protocol it is +/// used with. See each documentation for details. In most cases this contains +/// an Ethernet address. +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct MacAddress { + pub addr: [u8; 32], +} + +/// IPv4 Address +/// +/// Binary representation of an IPv4 address. It is encoded in network byte +/// order (i.e., big endian). Note that no special alignment restrictions are +/// defined by the standard specification. +#[repr(C)] +#[derive(Clone, Copy, Debug, Eq, PartialEq, Default)] +pub struct Ipv4Address { + pub addr: [u8; 4], +} + +/// IPv6 Address +/// +/// Binary representation of an IPv6 address, encoded in network byte order +/// (i.e., big endian). Similar to the IPv4 address, no special alignment +/// restrictions are defined by the standard specification. +#[repr(C)] +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub struct Ipv6Address { + pub addr: [u8; 16], +} + +/// IP Address +/// +/// A union type over the different IP addresses available. Alignment is always +/// fixed to 4-bytes. Note that trailing bytes might be random, so no +/// comparison functions are derived. +#[repr(C, align(4))] +#[derive(Clone, Copy)] +pub union IpAddress { + pub addr: [u32; 4], + pub v4: Ipv4Address, + pub v6: Ipv6Address, +} + +impl Boolean { + /// Literal False + /// + /// This constant represents the `false` value of the `Boolean` type. + pub const FALSE: Boolean = Boolean(0u8); + + /// Literal True + /// + /// This constant represents the `true` value of the `Boolean` type. + pub const TRUE: Boolean = Boolean(1u8); +} + +impl From for Boolean { + fn from(v: u8) -> Self { + Boolean(v) + } +} + +impl From for Boolean { + fn from(v: bool) -> Self { + match v { + false => Boolean::FALSE, + true => Boolean::TRUE, + } + } +} + +impl Default for Boolean { + fn default() -> Self { + Self::FALSE + } +} + +impl From for bool { + fn from(v: Boolean) -> Self { + match v.0 { + 0 => false, + _ => true, + } + } +} + +impl PartialEq for Boolean { + fn eq(&self, other: &Boolean) -> bool { + >::from(*self) == (*other).into() + } +} + +impl PartialEq for Boolean { + fn eq(&self, other: &bool) -> bool { + *other == (*self).into() + } +} + +impl Status { + const WIDTH: usize = 8usize * core::mem::size_of::(); + const MASK: usize = 0xc0 << (Status::WIDTH - 8); + const ERROR_MASK: usize = 0x80 << (Status::WIDTH - 8); + const WARNING_MASK: usize = 0x00 << (Status::WIDTH - 8); + + /// Success Code + /// + /// This code represents a successfull function invocation. Its value is guaranteed to be 0. + /// However, note that warnings are considered success as well, so this is not the only code + /// that can be returned by UEFI functions on success. However, in nearly all situations + /// warnings are not allowed, so the effective result will be SUCCESS. + pub const SUCCESS: Status = Status::from_usize(0); + + // List of predefined error codes + pub const LOAD_ERROR: Status = Status::from_usize(1 | Status::ERROR_MASK); + pub const INVALID_PARAMETER: Status = Status::from_usize(2 | Status::ERROR_MASK); + pub const UNSUPPORTED: Status = Status::from_usize(3 | Status::ERROR_MASK); + pub const BAD_BUFFER_SIZE: Status = Status::from_usize(4 | Status::ERROR_MASK); + pub const BUFFER_TOO_SMALL: Status = Status::from_usize(5 | Status::ERROR_MASK); + pub const NOT_READY: Status = Status::from_usize(6 | Status::ERROR_MASK); + pub const DEVICE_ERROR: Status = Status::from_usize(7 | Status::ERROR_MASK); + pub const WRITE_PROTECTED: Status = Status::from_usize(8 | Status::ERROR_MASK); + pub const OUT_OF_RESOURCES: Status = Status::from_usize(9 | Status::ERROR_MASK); + pub const VOLUME_CORRUPTED: Status = Status::from_usize(10 | Status::ERROR_MASK); + pub const VOLUME_FULL: Status = Status::from_usize(11 | Status::ERROR_MASK); + pub const NO_MEDIA: Status = Status::from_usize(12 | Status::ERROR_MASK); + pub const MEDIA_CHANGED: Status = Status::from_usize(13 | Status::ERROR_MASK); + pub const NOT_FOUND: Status = Status::from_usize(14 | Status::ERROR_MASK); + pub const ACCESS_DENIED: Status = Status::from_usize(15 | Status::ERROR_MASK); + pub const NO_RESPONSE: Status = Status::from_usize(16 | Status::ERROR_MASK); + pub const NO_MAPPING: Status = Status::from_usize(17 | Status::ERROR_MASK); + pub const TIMEOUT: Status = Status::from_usize(18 | Status::ERROR_MASK); + pub const NOT_STARTED: Status = Status::from_usize(19 | Status::ERROR_MASK); + pub const ALREADY_STARTED: Status = Status::from_usize(20 | Status::ERROR_MASK); + pub const ABORTED: Status = Status::from_usize(21 | Status::ERROR_MASK); + pub const ICMP_ERROR: Status = Status::from_usize(22 | Status::ERROR_MASK); + pub const TFTP_ERROR: Status = Status::from_usize(23 | Status::ERROR_MASK); + pub const PROTOCOL_ERROR: Status = Status::from_usize(24 | Status::ERROR_MASK); + pub const INCOMPATIBLE_VERSION: Status = Status::from_usize(25 | Status::ERROR_MASK); + pub const SECURITY_VIOLATION: Status = Status::from_usize(26 | Status::ERROR_MASK); + pub const CRC_ERROR: Status = Status::from_usize(27 | Status::ERROR_MASK); + pub const END_OF_MEDIA: Status = Status::from_usize(28 | Status::ERROR_MASK); + pub const END_OF_FILE: Status = Status::from_usize(31 | Status::ERROR_MASK); + pub const INVALID_LANGUAGE: Status = Status::from_usize(32 | Status::ERROR_MASK); + pub const COMPROMISED_DATA: Status = Status::from_usize(33 | Status::ERROR_MASK); + pub const IP_ADDRESS_CONFLICT: Status = Status::from_usize(34 | Status::ERROR_MASK); + pub const HTTP_ERROR: Status = Status::from_usize(35 | Status::ERROR_MASK); + + // List of error codes from protocols + // UDP4 + pub const NETWORK_UNREACHABLE: Status = Status::from_usize(100 | Status::ERROR_MASK); + pub const HOST_UNREACHABLE: Status = Status::from_usize(101 | Status::ERROR_MASK); + pub const PROTOCOL_UNREACHABLE: Status = Status::from_usize(102 | Status::ERROR_MASK); + pub const PORT_UNREACHABLE: Status = Status::from_usize(103 | Status::ERROR_MASK); + // TCP4 + pub const CONNECTION_FIN: Status = Status::from_usize(104 | Status::ERROR_MASK); + pub const CONNECTION_RESET: Status = Status::from_usize(105 | Status::ERROR_MASK); + pub const CONNECTION_REFUSED: Status = Status::from_usize(106 | Status::ERROR_MASK); + + // List of predefined warning codes + pub const WARN_UNKNOWN_GLYPH: Status = Status::from_usize(1 | Status::WARNING_MASK); + pub const WARN_DELETE_FAILURE: Status = Status::from_usize(2 | Status::WARNING_MASK); + pub const WARN_WRITE_FAILURE: Status = Status::from_usize(3 | Status::WARNING_MASK); + pub const WARN_BUFFER_TOO_SMALL: Status = Status::from_usize(4 | Status::WARNING_MASK); + pub const WARN_STALE_DATA: Status = Status::from_usize(5 | Status::WARNING_MASK); + pub const WARN_FILE_SYSTEM: Status = Status::from_usize(6 | Status::WARNING_MASK); + pub const WARN_RESET_REQUIRED: Status = Status::from_usize(7 | Status::WARNING_MASK); + + /// Create Status Code from Integer + /// + /// This takes the literal value of a status code and turns it into a `Status` object. Note + /// that we want it as `const fn` so we cannot use `core::convert::From`. + pub const fn from_usize(v: usize) -> Status { + Status(v) + } + + /// Return Underlying Integer Representation + /// + /// This takes the `Status` object and returns the underlying integer representation as + /// defined by the UEFI specification. + pub const fn as_usize(&self) -> usize { + self.0 + } + + fn value(&self) -> usize { + self.0 + } + + fn mask(&self) -> usize { + self.value() & Status::MASK + } + + /// Check whether this is an error + /// + /// This returns true if the given status code is considered an error. Errors mean the + /// operation did not succeed, nor produce any valuable output. Output parameters must be + /// considered invalid if an error was returned. That is, its content is not well defined. + pub fn is_error(&self) -> bool { + self.mask() == Status::ERROR_MASK + } + + /// Check whether this is a warning + /// + /// This returns true if the given status code is considered a warning. Warnings are to be + /// treated as success, but might indicate data loss or other device errors. However, if an + /// operation returns with a warning code, it must be considered successfull, and the output + /// parameters are valid. + pub fn is_warning(&self) -> bool { + self.value() != 0 && self.mask() == Status::WARNING_MASK + } +} + +impl From for Result { + fn from(status: Status) -> Self { + if status.is_error() { + Err(status) + } else { + Ok(status) + } + } +} + +impl Guid { + const fn u32_to_bytes_le(num: u32) -> [u8; 4] { + [ + num as u8, + (num >> 8) as u8, + (num >> 16) as u8, + (num >> 24) as u8, + ] + } + + const fn u32_from_bytes_le(bytes: &[u8; 4]) -> u32 { + (bytes[0] as u32) + | ((bytes[1] as u32) << 8) + | ((bytes[2] as u32) << 16) + | ((bytes[3] as u32) << 24) + } + + const fn u16_to_bytes_le(num: u16) -> [u8; 2] { + [num as u8, (num >> 8) as u8] + } + + const fn u16_from_bytes_le(bytes: &[u8; 2]) -> u16 { + (bytes[0] as u16) | ((bytes[1] as u16) << 8) + } + + /// Initialize a Guid from its individual fields + /// + /// This function initializes a Guid object given the individual fields as specified in the + /// UEFI specification. That is, if you simply copy the literals from the specification into + /// your code, this function will correctly initialize the Guid object. + /// + /// In other words, this takes the individual fields in native endian and converts them to the + /// correct endianness for a UEFI Guid. + /// + /// Due to the fact that UEFI Guids use variant 2 of the UUID specification in a little-endian + /// (or even mixed-endian) format, the following transformation is likely applied from text + /// representation to binary representation: + /// + /// 00112233-4455-6677-8899-aabbccddeeff + /// => + /// 33 22 11 00 55 44 77 66 88 99 aa bb cc dd ee ff + /// + /// (Note that UEFI protocols often use `88-99` instead of `8899`) + /// The first 3 parts use little-endian notation, the last 2 use big-endian. + pub const fn from_fields( + time_low: u32, + time_mid: u16, + time_hi_and_version: u16, + clk_seq_hi_res: u8, + clk_seq_low: u8, + node: &[u8; 6], + ) -> Guid { + Guid { + time_low: Self::u32_to_bytes_le(time_low), + time_mid: Self::u16_to_bytes_le(time_mid), + time_hi_and_version: Self::u16_to_bytes_le(time_hi_and_version), + clk_seq_hi_res: clk_seq_hi_res, + clk_seq_low: clk_seq_low, + node: *node, + } + } + + /// Access a Guid as individual fields + /// + /// This decomposes a Guid back into the individual fields as given in the specification. The + /// individual fields are returned in native-endianness. + pub const fn as_fields(&self) -> (u32, u16, u16, u8, u8, &[u8; 6]) { + ( + Self::u32_from_bytes_le(&self.time_low), + Self::u16_from_bytes_le(&self.time_mid), + Self::u16_from_bytes_le(&self.time_hi_and_version), + self.clk_seq_hi_res, + self.clk_seq_low, + &self.node, + ) + } + + /// Initialize a Guid from its byte representation + /// + /// Create a new Guid object from its byte representation. This + /// reinterprets the bytes as a Guid and copies them into a new Guid + /// instance. Note that you can safely transmute instead. + /// + /// See `as_bytes()` for the inverse operation. + pub fn from_bytes(bytes: &[u8; 16]) -> Self { + unsafe { core::mem::transmute::<[u8; 16], Guid>(*bytes) } + } + + /// Access a Guid as raw byte array + /// + /// This provides access to a Guid through a byte array. It is a simple re-interpretation of + /// the Guid value as a 128-bit byte array. No conversion is performed. This is a simple cast. + pub fn as_bytes(&self) -> &[u8; 16] { + unsafe { core::mem::transmute::<&Guid, &[u8; 16]>(self) } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::mem::{align_of, size_of}; + + // Verify Type Size and Alignemnt + // + // Since UEFI defines explicitly the ABI of their types, we can verify that our implementation + // is correct by checking the size and alignment of the ABI types matches what the spec + // mandates. + #[test] + fn type_size_and_alignment() { + // + // Booleans + // + + assert_eq!(size_of::(), 1); + assert_eq!(align_of::(), 1); + + // + // Char8 / Char16 + // + + assert_eq!(size_of::(), 1); + assert_eq!(align_of::(), 1); + assert_eq!(size_of::(), 2); + assert_eq!(align_of::(), 2); + + assert_eq!(size_of::(), size_of::()); + assert_eq!(align_of::(), align_of::()); + assert_eq!(size_of::(), size_of::()); + assert_eq!(align_of::(), align_of::()); + + // + // Status + // + + assert_eq!(size_of::(), size_of::()); + assert_eq!(align_of::(), align_of::()); + + // + // Handles / Events + // + + assert_eq!(size_of::(), size_of::()); + assert_eq!(align_of::(), align_of::()); + assert_eq!(size_of::(), size_of::()); + assert_eq!(align_of::(), align_of::()); + + assert_eq!(size_of::(), size_of::<*mut ()>()); + assert_eq!(align_of::(), align_of::<*mut ()>()); + assert_eq!(size_of::(), size_of::<*mut ()>()); + assert_eq!(align_of::(), align_of::<*mut ()>()); + + // + // Lba / Tpl + // + + assert_eq!(size_of::(), size_of::()); + assert_eq!(align_of::(), align_of::()); + assert_eq!(size_of::(), size_of::()); + assert_eq!(align_of::(), align_of::()); + + // + // PhysicalAddress / VirtualAddress + // + + assert_eq!(size_of::(), size_of::()); + assert_eq!(align_of::(), align_of::()); + assert_eq!(size_of::(), size_of::()); + assert_eq!(align_of::(), align_of::()); + + // + // ImageEntryPoint + // + + assert_eq!(size_of::(), size_of::()); + assert_eq!(align_of::(), align_of::()); + + // + // Guid + // + + assert_eq!(size_of::(), 16); + assert_eq!(align_of::(), 4); + + // + // Networking Types + // + + assert_eq!(size_of::(), 32); + assert_eq!(align_of::(), 1); + assert_eq!(size_of::(), 4); + assert_eq!(align_of::(), 1); + assert_eq!(size_of::(), 16); + assert_eq!(align_of::(), 1); + assert_eq!(size_of::(), 16); + assert_eq!(align_of::(), 4); + } + + #[test] + fn eficall() { + // + // Make sure the eficall!{} macro can deal with all kinds of function callbacks. + // + + let _: eficall! {fn()}; + let _: eficall! {unsafe fn()}; + let _: eficall! {fn(i32)}; + let _: eficall! {fn(i32) -> i32}; + let _: eficall! {fn(i32, i32) -> (i32, i32)}; + + eficall! {fn _unused00() {}} + eficall! {unsafe fn _unused01() {}} + eficall! {pub unsafe fn _unused02() {}} + } + + // Verify Boolean ABI + // + // Even though booleans are strictly 1-bit, and thus 0 or 1, in practice all UEFI systems + // treat it more like C does, and a boolean formatted as `u8` now allows any value other than + // 0 to represent `true`. Make sure we support the same. + #[test] + fn booleans() { + // Verify PartialEq works. + assert_ne!(Boolean::FALSE, Boolean::TRUE); + + // Verify Boolean<->bool conversion and comparison works. + assert_eq!(Boolean::FALSE, false); + assert_eq!(Boolean::TRUE, true); + + // Iterate all possible values for `u8` and verify 0 behaves as `false`, and everything + // else behaves as `true`. We verify both, the natural constructor through `From`, as well + // as a transmute. + for i in 0u8..=255u8 { + let v1: Boolean = i.into(); + let v2: Boolean = unsafe { std::mem::transmute::(i) }; + + assert_eq!(v1, v2); + assert_eq!(v1, v1); + assert_eq!(v2, v2); + + match i { + 0 => { + assert_eq!(v1, Boolean::FALSE); + assert_eq!(v1, false); + assert_eq!(v2, Boolean::FALSE); + assert_eq!(v2, false); + + assert_ne!(v1, Boolean::TRUE); + assert_ne!(v1, true); + assert_ne!(v2, Boolean::TRUE); + assert_ne!(v2, true); + } + _ => { + assert_eq!(v1, Boolean::TRUE); + assert_eq!(v1, true); + assert_eq!(v2, Boolean::TRUE); + assert_eq!(v2, true); + + assert_ne!(v1, Boolean::FALSE); + assert_ne!(v1, false); + assert_ne!(v2, Boolean::FALSE); + assert_ne!(v2, false); + } + } + } + } + + // Verify Guid Manipulations + // + // Test that creation of Guids from fields and bytes yields the expected + // values, and conversions work as expected. + #[test] + fn guid() { + let fields = ( + 0x550e8400, + 0xe29b, + 0x41d4, + 0xa7, + 0x16, + &[0x44, 0x66, 0x55, 0x44, 0x00, 0x00], + ); + #[rustfmt::skip] + let bytes = [ + 0x00, 0x84, 0x0e, 0x55, + 0x9b, 0xe2, + 0xd4, 0x41, + 0xa7, + 0x16, + 0x44, 0x66, 0x55, 0x44, 0x00, 0x00, + ]; + let (f0, f1, f2, f3, f4, f5) = fields; + let g_fields = Guid::from_fields(f0, f1, f2, f3, f4, f5); + let g_bytes = Guid::from_bytes(&bytes); + + assert_eq!(g_fields, g_bytes); + assert_eq!(g_fields.as_bytes(), &bytes); + assert_eq!(g_bytes.as_fields(), fields); + } +} diff --git a/src/rust/vendor/r-efi/src/hii.rs b/src/rust/vendor/r-efi/src/hii.rs new file mode 100644 index 000000000..340176b62 --- /dev/null +++ b/src/rust/vendor/r-efi/src/hii.rs @@ -0,0 +1,1300 @@ +//! Human Interface Infrastructure (HII) +//! +//! This module contains bindings and definitions copied from Section 33.3 of +//! the UEFI spec, as well as the core HII related definitions. + +// +// Core HII Definitions +// + +// This is the exception to the rule. It's defined in 34.8 (HII_DATABASE +// protocol), not 33.3, but it's used throughout the HII protocols, so it makes +// sense to be defined at the base. +pub type Handle = *mut core::ffi::c_void; + +// +// 33.3.1 Package Lists and Package Headers +// + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct PackageHeader { + pub length: [u8; 3], + pub r#type: u8, + pub data: [u8; N], +} + +pub const PACKAGE_TYPE_ALL: u8 = 0x00; +pub const PACKAGE_TYPE_GUID: u8 = 0x01; +pub const PACKAGE_FORMS: u8 = 0x02; +pub const PACKAGE_STRINGS: u8 = 0x04; +pub const PACKAGE_FONTS: u8 = 0x05; +pub const PACKAGE_IMAGES: u8 = 0x06; +pub const PACKAGE_SIMPLE_FONTS: u8 = 0x07; +pub const PACKAGE_DEVICE_PATH: u8 = 0x08; +pub const PACKAGE_KEYBOARD_LAYOUT: u8 = 0x09; +pub const PACKAGE_ANIMATIONS: u8 = 0x0A; +pub const PACKAGE_END: u8 = 0xDF; +pub const PACKAGE_TYPE_SYSTEM_BEGIN: u8 = 0xE0; +pub const PACKAGE_TYPE_SYSTEM_END: u8 = 0xFF; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct PackageListHeader { + pub package_list_guid: crate::base::Guid, + pub package_length: u32, +} + +// +// 33.3.3 Font Package +// + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct FontPackageHdr { + pub header: PackageHeader, + pub hdr_size: u32, + pub glyph_block_offset: u32, + pub cell: GlyphInfo, + pub font_style: FontStyle, + pub font_family: [crate::base::Char16; N], +} + +pub type FontStyle = u32; + +pub const FONT_STYLE_NORMAL: FontStyle = 0x00000000; +pub const FONT_STYLE_BOLD: FontStyle = 0x00000001; +pub const FONT_STYLE_ITALIC: FontStyle = 0x00000002; +pub const FONT_STYLE_EMBOSS: FontStyle = 0x00010000; +pub const FONT_STYLE_OUTLINE: FontStyle = 0x00020000; +pub const FONT_STYLE_SHADOW: FontStyle = 0x00040000; +pub const FONT_STYLE_UNDERLINE: FontStyle = 0x00080000; +pub const FONT_STYLE_DBL_UNDER: FontStyle = 0x00100000; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GlyphBlock { + pub block_type: u8, + pub block_body: [u8; N], +} + +pub const GIBT_END: u8 = 0x00; +pub const GIBT_GLYPH: u8 = 0x10; +pub const GIBT_GLYPHS: u8 = 0x11; +pub const GIBT_GLYPH_DEFAULT: u8 = 0x12; +pub const GIBT_GLYPHS_DEFAULT: u8 = 0x13; +pub const GIBT_GLYPH_VARIABILITY: u8 = 0x14; +pub const GIBT_DUPLICATE: u8 = 0x20; +pub const GIBT_SKIP2: u8 = 0x21; +pub const GIBT_SKIP1: u8 = 0x22; +pub const GIBT_DEFAULTS: u8 = 0x23; +pub const GIBT_EXT1: u8 = 0x30; +pub const GIBT_EXT2: u8 = 0x31; +pub const GIBT_EXT4: u8 = 0x32; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GlyphInfo { + pub width: u16, + pub height: u16, + pub offset_x: i16, + pub offset_y: i16, + pub advance_x: i16, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GibtDefaultsBlock { + pub header: GlyphBlock, + pub cell: GlyphInfo, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GibtDuplicateBlock { + pub header: GlyphBlock, + pub char_value: crate::base::Char16, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GlyphGibtEndBlock { + pub header: GlyphBlock, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GibtExt1Block { + pub header: GlyphBlock, + pub block_type_2: u8, + pub length: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GibtExt2Block { + pub header: GlyphBlock, + pub block_type_2: u8, + pub length: u16, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GibtExt4Block { + pub header: GlyphBlock, + pub block_type_2: u8, + pub length: u32, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GibtGlyphBlock { + pub header: GlyphBlock, + pub cell: GlyphInfo, + pub bitmap_data: [u8; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GibtGlyphsBlock { + pub header: GlyphBlock, + pub cell: GlyphInfo, + pub count: u16, + pub bitmap_data: [u8; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GibtGlyphDefaultBlock { + pub header: GlyphBlock, + pub bitmap_data: [u8; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GibtGlypshDefaultBlock { + pub header: GlyphBlock, + pub count: u16, + pub bitmap_data: [u8; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GibtSkip2Block { + pub header: GlyphBlock, + pub skip_count: u16, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GibtSkip1Block { + pub header: GlyphBlock, + pub skip_count: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct GibtVariabilityBlock { + pub header: GlyphBlock, + pub cell: GlyphInfo, + pub glyph_pack_in_bits: u8, + pub bitmap_data: [u8; N], +} + +// +// 33.3.8 Forms Package +// + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct FormPackageHdr { + pub header: PackageHeader, + pub op_code_header: IfrOpHeader, + // Op-Codes Follow... +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrOpHeader { + pub op_code: u8, + pub length_and_scope: u8, // Length:7, Scope:1 +} + +pub type QuestionId = u16; +pub type ImageId = u16; +pub type StringId = u16; +pub type FormId = u16; +pub type VarstoreId = u16; +pub type AnimationId = u16; + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrQuestionHeader { + pub header: IfrStatementHeader, + pub question_id: QuestionId, + pub var_store_id: VarstoreId, + pub var_store_info: IfrQuestionHeaderVarstoreInfo, + pub flags: u8, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub union IfrQuestionHeaderVarstoreInfo { + pub var_name: StringId, + pub var_offset: u16, +} + +pub const IFR_FLAG_READ_ONLY: u8 = 0x01; +pub const IFR_FLAG_CALLBACK: u8 = 0x04; +pub const IFR_FLAG_RESET_REQUIRED: u8 = 0x10; +pub const IFR_FLAG_REST_STYLE: u8 = 0x20; +pub const IFR_FLAG_RECONNECT_REQUIRED: u8 = 0x40; +pub const IFR_FLAG_OPTIONS_ONLY: u8 = 0x80; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrStatementHeader { + pub prompt: StringId, + pub help: StringId, +} + +pub const IFR_FORM_OP: u8 = 0x01; +pub const IFR_SUBTITLE_OP: u8 = 0x02; +pub const IFR_TEXT_OP: u8 = 0x03; +pub const IFR_IMAGE_OP: u8 = 0x04; +pub const IFR_ONE_OF_OP: u8 = 0x05; +pub const IFR_CHECKBOX_OP: u8 = 0x06; +pub const IFR_NUMERIC_OP: u8 = 0x07; +pub const IFR_PASSWORD_OP: u8 = 0x08; +pub const IFR_ONE_OF_OPTION_OP: u8 = 0x09; +pub const IFR_SUPPRESS_IF_OP: u8 = 0x0A; +pub const IFR_LOCKED_OP: u8 = 0x0B; +pub const IFR_ACTION_OP: u8 = 0x0C; +pub const IFR_RESET_BUTTON_OP: u8 = 0x0D; +pub const IFR_FORM_SET_OP: u8 = 0x0E; +pub const IFR_REF_OP: u8 = 0x0F; +pub const IFR_NO_SUBMIT_IF_OP: u8 = 0x10; +pub const IFR_INCONSISTENT_IF_OP: u8 = 0x11; +pub const IFR_EQ_ID_VAL_OP: u8 = 0x12; +pub const IFR_EQ_ID_ID_OP: u8 = 0x13; +pub const IFR_EQ_ID_VAL_LIST_OP: u8 = 0x14; +pub const IFR_AND_OP: u8 = 0x15; +pub const IFR_OR_OP: u8 = 0x16; +pub const IFR_NOT_OP: u8 = 0x17; +pub const IFR_RULE_OP: u8 = 0x18; +pub const IFR_GRAY_OUT_IF_OP: u8 = 0x19; +pub const IFR_DATE_OP: u8 = 0x1A; +pub const IFR_TIME_OP: u8 = 0x1B; +pub const IFR_STRING_OP: u8 = 0x1C; +pub const IFR_REFRESH_OP: u8 = 0x1D; +pub const IFR_DISABLE_IF_OP: u8 = 0x1E; +pub const IFR_ANIMATION_OP: u8 = 0x1F; +pub const IFR_TO_LOWER_OP: u8 = 0x20; +pub const IFR_TO_UPPER_OP: u8 = 0x21; +pub const IFR_MAP_OP: u8 = 0x22; +pub const IFR_ORDERED_LIST_OP: u8 = 0x23; +pub const IFR_VARSTORE_OP: u8 = 0x24; +pub const IFR_VARSTORE_NAME_VALUE_OP: u8 = 0x25; +pub const IFR_VARSTORE_EFI_OP: u8 = 0x26; +pub const IFR_VARSTORE_DEVICE_OP: u8 = 0x27; +pub const IFR_VERSION_OP: u8 = 0x28; +pub const IFR_END_OP: u8 = 0x29; +pub const IFR_MATCH_OP: u8 = 0x2A; +pub const IFR_GET_OP: u8 = 0x2B; +pub const IFR_SET_OP: u8 = 0x2C; +pub const IFR_READ_OP: u8 = 0x2D; +pub const IFR_WRITE_OP: u8 = 0x2E; +pub const IFR_EQUAL_OP: u8 = 0x2F; +pub const IFR_NOT_EQUAL_OP: u8 = 0x30; +pub const IFR_GREATER_THAN_OP: u8 = 0x31; +pub const IFR_GREATER_EQUAL_OP: u8 = 0x32; +pub const IFR_LESS_THAN_OP: u8 = 0x33; +pub const IFR_LESS_EQUAL_OP: u8 = 0x34; +pub const IFR_BITWISE_AND_OP: u8 = 0x35; +pub const IFR_BITWISE_OR_OP: u8 = 0x36; +pub const IFR_BITWISE_NOT_OP: u8 = 0x37; +pub const IFR_SHIFT_LEFT_OP: u8 = 0x38; +pub const IFR_SHIFT_RIGHT_OP: u8 = 0x39; +pub const IFR_ADD_OP: u8 = 0x3A; +pub const IFR_SUBTRACT_OP: u8 = 0x3B; +pub const IFR_MULTIPLY_OP: u8 = 0x3C; +pub const IFR_DIVIDE_OP: u8 = 0x3D; +pub const IFR_MODULO_OP: u8 = 0x3E; +pub const IFR_RULE_REF_OP: u8 = 0x3F; +pub const IFR_QUESTION_REF1_OP: u8 = 0x40; +pub const IFR_QUESTION_REF2_OP: u8 = 0x41; +pub const IFR_UINT8_OP: u8 = 0x42; +pub const IFR_UINT16_OP: u8 = 0x43; +pub const IFR_UINT32_OP: u8 = 0x44; +pub const IFR_UINT64_OP: u8 = 0x45; +pub const IFR_TRUE_OP: u8 = 0x46; +pub const IFR_FALSE_OP: u8 = 0x47; +pub const IFR_TO_UINT_OP: u8 = 0x48; +pub const IFR_TO_STRING_OP: u8 = 0x49; +pub const IFR_TO_BOOLEAN_OP: u8 = 0x4A; +pub const IFR_MID_OP: u8 = 0x4B; +pub const IFR_FIND_OP: u8 = 0x4C; +pub const IFR_TOKEN_OP: u8 = 0x4D; +pub const IFR_STRING_REF1_OP: u8 = 0x4E; +pub const IFR_STRING_REF2_OP: u8 = 0x4F; +pub const IFR_CONDITIONAL_OP: u8 = 0x50; +pub const IFR_QUESTION_REF3_OP: u8 = 0x51; +pub const IFR_ZERO_OP: u8 = 0x52; +pub const IFR_ONE_OP: u8 = 0x53; +pub const IFR_ONES_OP: u8 = 0x54; +pub const IFR_UNDEFINED_OP: u8 = 0x55; +pub const IFR_LENGTH_OP: u8 = 0x56; +pub const IFR_DUP_OP: u8 = 0x57; +pub const IFR_THIS_OP: u8 = 0x58; +pub const IFR_SPAN_OP: u8 = 0x59; +pub const IFR_VALUE_OP: u8 = 0x5A; +pub const IFR_DEFAULT_OP: u8 = 0x5B; +pub const IFR_DEFAULTSTORE_OP: u8 = 0x5C; +pub const IFR_FORM_MAP_OP: u8 = 0x5D; +pub const IFR_CATENATE_OP: u8 = 0x5E; +pub const IFR_GUID_OP: u8 = 0x5F; +pub const IFR_SECURITY_OP: u8 = 0x60; +pub const IFR_MODAL_TAG_OP: u8 = 0x61; +pub const IFR_REFRESH_ID_OP: u8 = 0x62; +pub const IFR_WARNING_IF_OP: u8 = 0x63; +pub const IFR_MATCH2_OP: u8 = 0x64; + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrAction { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, + pub question_config: StringId, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrAction1 { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrAnimation { + pub header: IfrOpHeader, + pub id: AnimationId, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrAdd { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrAnd { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrBitwiseAnd { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrBitwiseNot { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrBitwiseOr { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrCatenate { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrCheckbox { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, + pub flags: u8, +} + +pub const IFR_CHECKBOX_DEFAULT: u8 = 0x01; +pub const IFR_CHECKBOX_DEFAULT_MFG: u8 = 0x02; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrConditional { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrDate { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, + pub flags: u8, +} + +pub const QF_DATE_YEAR_SUPPRESS: u8 = 0x01; +pub const QF_DATE_MONTH_SUPPRESS: u8 = 0x02; +pub const QF_DATE_DAY_SUPPRESS: u8 = 0x04; +pub const QF_DATE_STORAGE: u8 = 0x30; + +pub const QF_DATE_STORAGE_NORMAL: u8 = 0x00; +pub const QF_DATE_STORAGE_TIME: u8 = 0x10; +pub const QF_DATE_STORAGE_WAKEUP: u8 = 0x20; + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrDefault { + pub header: IfrOpHeader, + pub default_id: u16, + pub r#type: u8, + pub value: IfrTypeValue, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrDefault2 { + pub header: IfrOpHeader, + pub default_id: u16, + pub r#type: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrDefaultstore { + pub header: IfrOpHeader, + pub default_name: StringId, + pub default_id: u16, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrDisableIf { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrDivide { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrDup { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrEnd { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrEqual { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrEqIdId { + pub header: IfrOpHeader, + pub question_id_1: QuestionId, + pub question_id_2: QuestionId, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrEqIdValList { + pub header: IfrOpHeader, + pub question_id: QuestionId, + pub list_length: u16, + pub value_list: [u16; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrEqIdVal { + pub header: IfrOpHeader, + pub question_id: QuestionId, + pub value: u16, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrFalse { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrFind { + pub header: IfrOpHeader, + pub format: u8, +} + +pub const IFR_FF_CASE_SENSITIVE: u8 = 0x00; +pub const IFR_FF_CASE_INSENSITIVE: u8 = 0x01; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrForm { + pub header: IfrOpHeader, + pub form_id: FormId, + pub form_title: StringId, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrFormMapMethod { + pub method_title: StringId, + pub method_identifier: crate::base::Guid, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrFormMap { + pub header: IfrOpHeader, + pub form_id: FormId, + pub methods: [IfrFormMapMethod; N], +} + +pub const STANDARD_FORM_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x3bd2f4ec, + 0xe524, + 0x46e4, + 0xa9, + 0xd8, + &[0x51, 0x01, 0x17, 0x42, 0x55, 0x62], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrFormSet { + pub header: IfrOpHeader, + pub guid: crate::base::Guid, + pub form_set_title: StringId, + pub help: StringId, + pub flags: u8, + pub class_guid: [crate::base::Guid; N], +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrGet { + pub header: IfrOpHeader, + pub var_store_id: VarstoreId, + pub var_store_info: IfrGetVarStoreInfo, + pub var_store_type: u8, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub union IfrGetVarStoreInfo { + pub var_name: StringId, + pub var_offset: u16, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrGrayOutIf { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrGreaterEqual { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrGreaterThan { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrGuid { + pub header: IfrOpHeader, + pub guid: crate::base::Guid, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrImage { + pub id: ImageId, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrInconsistentIf { + pub header: IfrOpHeader, + pub error: StringId, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrLength { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrLessEqual { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrLessThan { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrLocked { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrMap { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrMatch { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrMid { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrModalTag { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrModulo { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrMultiply { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrNot { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrNotEqual { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrNoSubmitIf { + pub header: IfrOpHeader, + pub error: StringId, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrNumericDataU8 { + pub min_value: u8, + pub max_value: u8, + pub step: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrNumericDataU16 { + pub min_value: u16, + pub max_value: u16, + pub step: u16, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrNumericDataU32 { + pub min_value: u32, + pub max_value: u32, + pub step: u32, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrNumericDataU64 { + pub min_value: u64, + pub max_value: u64, + pub step: u64, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub union IfrNumericData { + pub r#u8: IfrNumericDataU8, + pub r#u16: IfrNumericDataU16, + pub r#u32: IfrNumericDataU32, + pub r#u64: IfrNumericDataU64, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrNumeric { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, + pub flags: u8, + pub data: IfrNumericData, +} + +pub const IFR_NUMERIC_SIZE: u8 = 0x03; +pub const IFR_NUMERIC_SIZE_1: u8 = 0x00; +pub const IFR_NUMERIC_SIZE_2: u8 = 0x01; +pub const IFR_NUMERIC_SIZE_4: u8 = 0x02; +pub const IFR_NUMERIC_SIZE_8: u8 = 0x03; + +pub const IFR_DISPLAY: u8 = 0x30; +pub const IFR_DISPLAY_INT_DEC: u8 = 0x00; +pub const IFR_DISPLAY_UINT_DEC: u8 = 0x10; +pub const IFR_DISPLAY_UINT_HEX: u8 = 0x20; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrOne { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrOnes { + pub header: IfrOpHeader, +} + +type IfrOneOfData = IfrNumericData; + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrOneOf { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, + pub flags: u8, + pub data: IfrOneOfData, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrOneOfOption { + pub header: IfrOpHeader, + pub option: StringId, + pub flags: u8, + pub r#type: u8, + pub value: IfrTypeValue, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub union IfrTypeValue { + pub r#u8: u8, + pub r#u16: u16, + pub r#u32: u32, + pub r#u64: u64, + pub b: crate::base::Boolean, + pub time: Time, + pub date: Date, + pub string: StringId, + pub r#ref: Ref, + pub buffer: [u8; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Time { + pub hour: u8, + pub minute: u8, + pub second: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Date { + pub year: u16, + pub month: u8, + pub day: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Ref { + pub question_id: QuestionId, + pub form_id: FormId, + pub form_set_guid: crate::base::Guid, + pub device_path: StringId, +} + +pub const IFR_TYPE_NUM_SIZE_8: u8 = 0x00; +pub const IFR_TYPE_NUM_SIZE_16: u8 = 0x01; +pub const IFR_TYPE_NUM_SIZE_32: u8 = 0x02; +pub const IFR_TYPE_NUM_SIZE_64: u8 = 0x03; +pub const IFR_TYPE_BOOLEAN: u8 = 0x04; +pub const IFR_TYPE_TIME: u8 = 0x05; +pub const IFR_TYPE_DATE: u8 = 0x06; +pub const IFR_TYPE_STRING: u8 = 0x07; +pub const IFR_TYPE_OTHER: u8 = 0x08; +pub const IFR_TYPE_UNDEFINED: u8 = 0x09; +pub const IFR_TYPE_ACTION: u8 = 0x0A; +pub const IFR_TYPE_BUFFER: u8 = 0x0B; +pub const IFR_TYPE_REF: u8 = 0x0C; + +pub const IFR_OPTION_DEFAULT: u8 = 0x10; +pub const IFR_OPTION_DEFAULT_MFG: u8 = 0x20; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrOr { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrOrderedList { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, + pub max_containers: u8, + pub flags: u8, +} + +pub const IFR_UNIQUE_SET: u8 = 0x01; +pub const IFR_NO_EMPTY_SET: u8 = 0x02; + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrPassword { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, + pub min_size: u16, + pub max_size: u16, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrQuestionRef1 { + pub header: IfrOpHeader, + pub question_id: QuestionId, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrQuestionRef2 { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrQuestionRef3 { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrQuestionRef32 { + pub header: IfrOpHeader, + pub device_path: StringId, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrQuestionRef33 { + pub header: IfrOpHeader, + pub device_path: StringId, + pub guid: crate::base::Guid, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrRead { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrRef { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, + pub form_id: FormId, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrRef2 { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, + pub form_id: FormId, + pub question_id: QuestionId, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrRef3 { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, + pub form_id: FormId, + pub question_id: QuestionId, + pub form_set_id: crate::base::Guid, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrRef4 { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, + pub form_id: FormId, + pub question_id: QuestionId, + pub form_set_id: crate::base::Guid, + pub device_path: StringId, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrRef5 { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrRefresh { + pub header: IfrOpHeader, + pub refresh_interval: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrRefreshId { + pub header: IfrOpHeader, + pub refresh_event_group_id: crate::base::Guid, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrResetButton { + pub header: IfrOpHeader, + pub statement: IfrStatementHeader, + pub deafult_id: DefaultId, +} + +pub type DefaultId = u16; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrRule { + pub header: IfrOpHeader, + pub rule_id: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrRuleRef { + pub header: IfrOpHeader, + pub rule_id: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrSecurity { + pub header: IfrOpHeader, + pub permissions: crate::base::Guid, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub union IfrSetVarStoreInfo { + pub var_name: StringId, + pub var_offset: u16, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrSet { + pub header: IfrOpHeader, + pub var_store_id: VarstoreId, + pub var_store_info: IfrSetVarStoreInfo, + pub var_store_type: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrShiftLeft { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrShiftRight { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrSpan { + pub header: IfrOpHeader, + pub flags: u8, +} + +pub const IFR_FLAGS_FIRST_MATCHING: u8 = 0x00; +pub const IFR_FLAGS_FIRST_NON_MATCHING: u8 = 0x01; + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrString { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, + pub min_size: u8, + pub max_size: u8, + pub flags: u8, +} + +pub const IFR_STRING_MULTI_LINE: u8 = 0x01; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrStringRef1 { + pub header: IfrOpHeader, + pub string_id: StringId, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrStringRef2 { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrSubtitle { + pub header: IfrOpHeader, + pub statement: IfrStatementHeader, + pub flags: u8, +} + +pub const IFR_FLAGS_HORIZONTAL: u8 = 0x01; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrSubtract { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrSuppressIf { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrText { + pub header: IfrOpHeader, + pub statement: IfrStatementHeader, + pub text_two: StringId, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrThis { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IfrTime { + pub header: IfrOpHeader, + pub question: IfrQuestionHeader, + pub flags: u8, +} + +pub const QF_TIME_HOUR_SUPPRESS: u8 = 0x01; +pub const QF_TIME_MINUTE_SUPPRESS: u8 = 0x02; +pub const QF_TIME_SECOND_SUPPRESS: u8 = 0x04; +pub const QF_TIME_STORAGE: u8 = 0x30; + +pub const QF_TIME_STORAGE_NORMAL: u8 = 0x00; +pub const QF_TIME_STORAGE_TIME: u8 = 0x10; +pub const QF_TIME_STORAGE_WAKEUP: u8 = 0x20; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrToken { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrToBoolean { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrToLower { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrToString { + pub header: IfrOpHeader, + pub format: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrToUint { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrToUpper { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrTrue { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrUint8 { + pub header: IfrOpHeader, + pub value: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrUint16 { + pub header: IfrOpHeader, + pub value: u16, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrUint32 { + pub header: IfrOpHeader, + pub value: u32, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrUint64 { + pub header: IfrOpHeader, + pub value: u64, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrUndefined { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrValue { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrVarstore { + pub header: IfrOpHeader, + pub guid: crate::base::Guid, + pub var_store_id: VarstoreId, + pub size: u16, + pub name: [u8; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrVarstoreNameValue { + pub header: IfrOpHeader, + pub var_store_id: VarstoreId, + pub guid: crate::base::Guid, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrVarstoreEfi { + pub header: IfrOpHeader, + pub var_store_id: VarstoreId, + pub guid: crate::base::Guid, + pub attributes: u32, + pub size: u16, + pub name: [u8; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrVarstoreDevice { + pub header: IfrOpHeader, + pub device_path: StringId, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrVersion { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrWrite { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrZero { + pub header: IfrOpHeader, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrWarningIf { + pub header: IfrOpHeader, + pub warning: StringId, + pub time_out: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IfrMatch2 { + pub header: IfrOpHeader, + pub syntax_type: crate::base::Guid, +} diff --git a/src/rust/vendor/r-efi/src/lib.rs b/src/rust/vendor/r-efi/src/lib.rs new file mode 100644 index 000000000..b15b83e46 --- /dev/null +++ b/src/rust/vendor/r-efi/src/lib.rs @@ -0,0 +1,166 @@ +//! UEFI Reference Specification Protocol Constants and Definitions +//! +//! This project provides protocol constants and definitions as defined in the UEFI Reference +//! Specification. The aim is to provide all these constants as C-ABI compatible imports to rust. +//! Safe rust abstractions over the UEFI API are out of scope of this project. That is, the +//! purpose is really just to extract all the bits and pieces from the specification and provide +//! them as rust types and constants. +//! +//! While we strongly recommend using safe abstractions to interact with UEFI systems, this +//! project serves both as base to write those abstractions, but also as last resort if you have +//! to deal with quirks and peculiarities of UEFI systems directly. Therefore, several examples +//! are included, which show how to interact with UEFI systems from rust. These serve both as +//! documentation for anyone interested in how the system works, but also as base for anyone +//! implementing safe abstractions on top. +//! +//! # Target Configuration +//! +//! Rust code can be compiled natively for UEFI systems. However, you are quite unlikely to have a +//! rust compiler running in an UEFI environment. Therefore, you will most likely want to cross +//! compile your rust code for UEFI systems. To do this, you need a target-configuration for UEFI +//! systems. As of rust-1.61, upstream rust includes the following UEFI targets: +//! +//! * `aarch64-unknown-uefi`: A native UEFI target for aarch64 systems (64bit ARM). +//! * `i686-unknown-uefi`: A native UEFI target for i686 systems (32bit Intel x86). +//! * `x86_64-unknown-uefi`: A native UEFI target for x86-64 systems (64bit Intel x86). +//! +//! If none of these targets match your architecture, you have to create the target specification +//! yourself. Feel free to contact the `r-efi` project for help. +//! +//! # Transpose Guidelines +//! +//! The UEFI specification provides C language symbols and definitions of all +//! its protocols and features. Those are integral parts of the specification +//! and UEFI programming is often tightly coupled with the C language. For +//! better compatibility to existing UEFI documentation, all the rust symbols +//! are transposed from C following strict rules, aiming for close similarity +//! to specification. This section gives a rationale on some of the less +//! obvious choices and tries to describe as many of those rules as possible. +//! +//! * `no enums`: Rust enums do not allow random discriminant values. However, +//! many UEFI enumerations use reserved ranges for vendor defined values. +//! These cannot be represented with rust enums in an efficient manner. +//! Hence, any enumerations are turned into rust constants with an +//! accompanying type alias. +//! +//! A detailed discussion can be found in: +//! +//! ```gitlog +//! commit 401a91901e860a5c0cd0f92b75dda0a72cf65322 +//! Author: David Rheinsberg +//! Date: Wed Apr 21 12:07:07 2021 +0200 +//! +//! r-efi: convert enums to constants +//! ``` +//! +//! * `no incomplete types`: Several structures use incomplete structure types +//! by using an unbound array as last member. While rust can easily +//! represent those within its type-system, such structures become DSTs, +//! hence even raw pointers to them become fat-pointers, and would thus +//! violate the UEFI ABI. +//! +//! Instead, we use const-generics to allow compile-time adjustment of the +//! variable-sized structures, with a default value of 0. This allows +//! computing different sizes of the structures without any runtime overhead. +//! +//! * `nullable callbacks as Option`: Rust has no raw function pointers, but +//! just normal Rust function pointers. Those, however, have no valid null +//! value. The Rust ABI guarantees that `Option` is an C-ABI +//! compatible replacement for nullable function pointers, with `None` being +//! mapped to `NULL`. Hence, whenever UEFI APIs require nullable function +//! pointers, we use `Option`. +//! +//! * `prefer *mut over *const`: Whenever we transpose pointers from the +//! specification into Rust, we prefer `*mut` in almost all cases. `*const` +//! should only be used if the underlying value is known not to be accessible +//! via any other mutable pointer type. Since this is rarely the case in +//! UEFI, we avoid it. +//! +//! The reasoning is that Rust allows coercing immutable types into `*const` +//! pointers, without any explicit casting required. However, immutable Rust +//! references require that no other mutable reference exists simultaneously. +//! This is not a guarantee of `const`-pointers in C / UEFI, hence this +//! coercion is usually ill-advised or even wrong. +//! +//! Lastly, note that `*mut` and `*const` and be `as`-casted in both +//! directions without violating any Rust guarantees. Any UB concerns always +//! stem from the safety guarantees of the surrounding code, not of the +//! raw-pointer handling. +//! +//! # Examples +//! +//! To write free-standing UEFI applications, you need to disable the entry-point provided by rust +//! and instead provide your own. Most target-configurations look for a function called `efi_main` +//! during linking and set it as entry point. If you use the target-configurations provided with +//! upstream rust, they will pick the function called `efi_main` as entry-point. +//! +//! The following example shows a minimal UEFI application, which simply returns success upon +//! invocation. Note that you must provide your own panic-handler when running without `libstd`. +//! In our case, we use a trivial implementation that simply loops forever. +//! +//! ```ignore +//! #![no_main] +//! #![no_std] +//! +//! use r_efi::efi; +//! +//! #[panic_handler] +//! fn panic_handler(_info: &core::panic::PanicInfo) -> ! { +//! loop {} +//! } +//! +//! #[export_name = "efi_main"] +//! pub extern fn main(_h: efi::Handle, _st: *mut efi::SystemTable) -> efi::Status { +//! efi::Status::SUCCESS +//! } +//! ``` + +// Mark this crate as `no_std`. We have no std::* dependencies (and we better don't have them), +// so no reason to require it. This does not mean that you cannot use std::* with UEFI. You have +// to port it to UEFI first, though. +// +// In case of unit-test compilation, we pull in `std` and drop the `no_std` marker. This allows +// basic unit-tests on the compilation host. For integration tests, we have separate compilation +// units, so they will be unaffected by this. +#![cfg_attr(not(test), no_std)] + +// Import the different core modules. We separate them into different modules to make it easier to +// work on them and describe what each part implements. This is different to the reference +// implementation, which uses a flat namespace due to its origins in the C language. For +// compatibility, we provide this flat namespace as well. See the `efi` submodule. +#[macro_use] +pub mod base; +#[macro_use] +pub mod hii; +#[macro_use] +pub mod system; + +// Import the protocols. Each protocol is separated into its own module, readily imported by the +// meta `protocols` module. Note that this puts all symbols into their respective protocol +// namespace, thus clearly separating them (unlike the UEFI Specification, which more often than +// not violates its own namespacing). +pub mod protocols; + +// Import vendor protocols. They are just like protocols in `protocols`, but +// separated for better namespacing. +pub mod vendor; + +/// Flat EFI Namespace +/// +/// The EFI namespace re-exports all symbols in a single, flat namespace. This allows mirroring +/// the entire EFI namespace as given in the specification and makes it easier to refer to them +/// with the same names as the reference C implementation. +/// +/// Note that the individual protocols are put into submodules. The specification does this in +/// most parts as well (by prefixing all symbols). This is not true in all cases, as the +/// specification suffers from lack of namespaces in the reference C language. However, we decided +/// to namespace the remaining bits as well, for better consistency throughout the API. This +/// should be self-explanatory in nearly all cases. +pub mod efi { + pub use crate::base::*; + pub use crate::system::*; + + pub use crate::hii; + pub use crate::protocols; + pub use crate::vendor; +} diff --git a/src/rust/vendor/r-efi/src/protocols.rs b/src/rust/vendor/r-efi/src/protocols.rs new file mode 100644 index 000000000..c136e8b3f --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols.rs @@ -0,0 +1,53 @@ +//! UEFI Protocols +//! +//! The UEFI Specification splits most of its non-core parts into separate protocols. They can +//! refer to each other, but their documentation and implementation is split apart. We provide +//! each protocol as a separate module, so it is clearly defined where a symbol belongs to. + +pub mod absolute_pointer; +pub mod block_io; +pub mod bus_specific_driver_override; +pub mod debug_support; +pub mod debugport; +pub mod decompress; +pub mod device_path; +pub mod device_path_from_text; +pub mod device_path_to_text; +pub mod device_path_utilities; +pub mod disk_io; +pub mod disk_io2; +pub mod driver_binding; +pub mod driver_diagnostics2; +pub mod driver_family_override; +pub mod file; +pub mod graphics_output; +pub mod hii_database; +pub mod hii_font; +pub mod hii_font_ex; +pub mod hii_package_list; +pub mod hii_string; +pub mod ip4; +pub mod ip6; +pub mod load_file; +pub mod load_file2; +pub mod loaded_image; +pub mod loaded_image_device_path; +pub mod managed_network; +pub mod mp_services; +pub mod pci_io; +pub mod platform_driver_override; +pub mod rng; +pub mod service_binding; +pub mod shell; +pub mod shell_dynamic_command; +pub mod shell_parameters; +pub mod simple_file_system; +pub mod simple_network; +pub mod simple_text_input; +pub mod simple_text_input_ex; +pub mod simple_text_output; +pub mod tcp4; +pub mod tcp6; +pub mod timestamp; +pub mod udp4; +pub mod udp6; diff --git a/src/rust/vendor/r-efi/src/protocols/absolute_pointer.rs b/src/rust/vendor/r-efi/src/protocols/absolute_pointer.rs new file mode 100644 index 000000000..e9aaeca6f --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/absolute_pointer.rs @@ -0,0 +1,69 @@ +//! Absolute Pointer Protocol +//! +//! Provides a simple method for accessing absolute pointer devices. This +//! includes devices such as touch screens and digitizers. The Absolute Pointer +//! Protocol allows information about a pointer device to be retrieved. The +//! protocol is attached to the device handle of an absolute pointer device, +//! and can be used for input from the user in the preboot environment. +//! +//! Supported devices may return 1, 2, or 3 axis of information. The Z axis may +//! optionally be used to return pressure data measurements derived from user +//! pen force. +//! +//! All supported devices must support a touch-active status. Supported devices +//! may optionally support a second input button, for example a pen +//! side-button. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x8d59d32b, + 0xc655, + 0x4ae9, + 0x9b, + 0x15, + &[0xf2, 0x59, 0x04, 0x99, 0x2a, 0x43], +); + +pub const SUPPORTS_ALT_ACTIVE: u32 = 0x00000001; +pub const SUPPORTS_PRESSURE_AS_Z: u32 = 0x00000002; + +#[derive(Clone, Copy, Debug, Default)] +#[repr(C)] +pub struct Mode { + pub absolute_min_x: u64, + pub absolute_min_y: u64, + pub absolute_min_z: u64, + pub absolute_max_x: u64, + pub absolute_max_y: u64, + pub absolute_max_z: u64, + pub attributes: u32, +} + +pub const TOUCH_ACTIVE: u32 = 0x00000001; +pub const ALT_ACTIVE: u32 = 0x00000002; + +#[derive(Clone, Copy, Debug, Default)] +#[repr(C)] +pub struct State { + pub current_x: u64, + pub current_y: u64, + pub current_z: u64, + pub active_buttons: u32, +} + +pub type Reset = eficall! {fn( + this: *mut Protocol, + extended_verification: bool, +) -> crate::base::Status}; + +pub type GetState = eficall! {fn( + this: *mut Protocol, + state: *mut State, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub reset: Reset, + pub get_state: GetState, + pub wait_for_input: crate::efi::Event, + pub mode: *mut Mode, +} diff --git a/src/rust/vendor/r-efi/src/protocols/block_io.rs b/src/rust/vendor/r-efi/src/protocols/block_io.rs new file mode 100644 index 000000000..26a2c0a10 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/block_io.rs @@ -0,0 +1,70 @@ +//! Block I/O Protocol +//! +//! Used to abstract mass storage devices to allow code running in the EFI boot services environment +//! to access the storage devices without specific knowledge of the type of device or controller that +//! manages the device. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x964e5b21, + 0x6459, + 0x11d2, + 0x8e, + 0x39, + &[0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b], +); + +pub const REVISION: u64 = 0x0000000000010000u64; +pub const REVISION2: u64 = 0x0000000000020001u64; +pub const REVISION3: u64 = 0x000000000002001fu64; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Media { + pub media_id: u32, + pub removable_media: bool, + pub media_present: bool, + pub logical_partition: bool, + pub read_only: bool, + pub write_caching: bool, + pub block_size: u32, + pub io_align: u32, + pub last_block: crate::base::Lba, + pub lowest_aligned_lba: crate::base::Lba, + pub logical_blocks_per_physical_block: u32, + pub optimal_transfer_length_granularity: u32, +} + +pub type ProtocolReset = eficall! {fn( + *mut Protocol, + crate::base::Boolean, +) -> crate::base::Status}; + +pub type ProtocolReadBlocks = eficall! {fn( + *mut Protocol, + u32, + crate::base::Lba, + usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolWriteBlocks = eficall! {fn( + *mut Protocol, + u32, + crate::base::Lba, + usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolFlushBlocks = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub revision: u64, + pub media: *const Media, + pub reset: ProtocolReset, + pub read_blocks: ProtocolReadBlocks, + pub write_blocks: ProtocolWriteBlocks, + pub flush_blocks: ProtocolFlushBlocks, +} diff --git a/src/rust/vendor/r-efi/src/protocols/bus_specific_driver_override.rs b/src/rust/vendor/r-efi/src/protocols/bus_specific_driver_override.rs new file mode 100644 index 000000000..f9e2cda27 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/bus_specific_driver_override.rs @@ -0,0 +1,32 @@ +//! Bus Specific Driver Override Protocol +//! +//! This protocol matches one or more drivers to a controller. This protocol is +//! produced by a bus driver, and it is installed on the child handles of buses +//! that require a bus specific algorithm for matching drivers to controllers. +//! This protocol is used by the `EFI_BOOT_SERVICES.ConnectController()` boot +//! service to select the best driver for a controller. All of the drivers +//! returned by this protocol have a higher precedence than drivers found in +//! the general EFI Driver Binding search algorithm, but a lower precedence +//! than those drivers returned by the EFI Platform Driver Override Protocol. +//! If more than one driver image handle is returned by this protocol, then the +//! drivers image handles are returned in order from highest precedence to +//! lowest precedence. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x3bc1b285, + 0x8a15, + 0x4a82, + 0xaa, + 0xbf, + &[0x4d, 0x7d, 0x13, 0xfb, 0x32, 0x65], +); + +pub type ProtocolGetDriver = eficall! {fn( + *mut Protocol, + *mut crate::base::Handle, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub get_driver: ProtocolGetDriver, +} diff --git a/src/rust/vendor/r-efi/src/protocols/debug_support.rs b/src/rust/vendor/r-efi/src/protocols/debug_support.rs new file mode 100644 index 000000000..c8272e910 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/debug_support.rs @@ -0,0 +1,835 @@ +//! Debug Support Protocol +//! +//! It provides the services to allow the debug agent to register callback functions that are +//! called either periodically or when specific processor exceptions occur. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x2755590c, + 0x6f3c, + 0x42fa, + 0x9e, + 0xa4, + &[0xa3, 0xba, 0x54, 0x3c, 0xda, 0x25], +); + +pub type InstructionSetArchitecture = u32; + +pub const ISA_IA32: InstructionSetArchitecture = 0x014c; +pub const ISA_X64: InstructionSetArchitecture = 0x8664; +pub const ISA_IPF: InstructionSetArchitecture = 0x0200; +pub const ISA_EBC: InstructionSetArchitecture = 0x0ebc; +pub const ISA_ARM: InstructionSetArchitecture = 0x1c2; +pub const ISA_AARCH64: InstructionSetArchitecture = 0xaa64; +pub const ISA_RISCV32: InstructionSetArchitecture = 0x5032; +pub const ISA_RISCV64: InstructionSetArchitecture = 0x5064; +pub const ISA_RISCV128: InstructionSetArchitecture = 0x5128; + +#[repr(C)] +#[derive(Clone, Copy)] +pub union SystemContext { + pub system_context_ebc: *mut SystemContextEbc, + pub system_context_ia32: *mut SystemContextIa32, + pub system_context_x64: *mut SystemContextX64, + pub system_context_ipf: *mut SystemContextIpf, + pub system_context_arm: *mut SystemContextArm, + pub system_context_aarch64: *mut SystemContextAArch64, + pub system_context_riscv32: *mut SystemContextRiscV32, + pub system_context_riscv64: *mut SystemContextRiscV64, + pub system_context_riscv128: *mut SystemContextRiscV128, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct SystemContextEbc { + pub r0: u64, + pub r1: u64, + pub r2: u64, + pub r3: u64, + pub r4: u64, + pub r5: u64, + pub r6: u64, + pub r7: u64, + pub flags: u64, + pub control_flags: u64, + pub ip: u64, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct SystemContextRiscV32 { + // Integer registers + pub zero: u32, + pub ra: u32, + pub sp: u32, + pub gp: u32, + pub tp: u32, + pub t0: u32, + pub t1: u32, + pub t2: u32, + pub s0fp: u32, + pub s1: u32, + pub a0: u32, + pub a1: u32, + pub a2: u32, + pub a3: u32, + pub a4: u32, + pub a5: u32, + pub a6: u32, + pub a7: u32, + pub s2: u32, + pub s3: u32, + pub s4: u32, + pub s5: u32, + pub s6: u32, + pub s7: u32, + pub s8: u32, + pub s9: u32, + pub s10: u32, + pub s11: u32, + pub t3: u32, + pub t4: u32, + pub t5: u32, + pub t6: u32, + // Floating registers for F, D and Q Standard Extensions + pub ft0: u128, + pub ft1: u128, + pub ft2: u128, + pub ft3: u128, + pub ft4: u128, + pub ft5: u128, + pub ft6: u128, + pub ft7: u128, + pub fs0: u128, + pub fs1: u128, + pub fa0: u128, + pub fa1: u128, + pub fa2: u128, + pub fa3: u128, + pub fa4: u128, + pub fa5: u128, + pub fa6: u128, + pub fa7: u128, + pub fs2: u128, + pub fs3: u128, + pub fs4: u128, + pub fs5: u128, + pub fs6: u128, + pub fs7: u128, + pub fs8: u128, + pub fs9: u128, + pub fs10: u128, + pub fs11: u128, + pub ft8: u128, + pub ft9: u128, + pub ft10: u128, + pub ft11: u128, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct SystemContextRiscV64 { + // Integer registers + pub zero: u64, + pub ra: u64, + pub sp: u64, + pub gp: u64, + pub tp: u64, + pub t0: u64, + pub t1: u64, + pub t2: u64, + pub s0fp: u64, + pub s1: u64, + pub a0: u64, + pub a1: u64, + pub a2: u64, + pub a3: u64, + pub a4: u64, + pub a5: u64, + pub a6: u64, + pub a7: u64, + pub s2: u64, + pub s3: u64, + pub s4: u64, + pub s5: u64, + pub s6: u64, + pub s7: u64, + pub s8: u64, + pub s9: u64, + pub s10: u64, + pub s11: u64, + pub t3: u64, + pub t4: u64, + pub t5: u64, + pub t6: u64, + // Floating registers for F, D and Q Standard Extensions + pub ft0: u128, + pub ft1: u128, + pub ft2: u128, + pub ft3: u128, + pub ft4: u128, + pub ft5: u128, + pub ft6: u128, + pub ft7: u128, + pub fs0: u128, + pub fs1: u128, + pub fa0: u128, + pub fa1: u128, + pub fa2: u128, + pub fa3: u128, + pub fa4: u128, + pub fa5: u128, + pub fa6: u128, + pub fa7: u128, + pub fs2: u128, + pub fs3: u128, + pub fs4: u128, + pub fs5: u128, + pub fs6: u128, + pub fs7: u128, + pub fs8: u128, + pub fs9: u128, + pub fs10: u128, + pub fs11: u128, + pub ft8: u128, + pub ft9: u128, + pub ft10: u128, + pub ft11: u128, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct SystemContextRiscV128 { + // Integer registers + pub zero: u128, + pub ra: u128, + pub sp: u128, + pub gp: u128, + pub tp: u128, + pub t0: u128, + pub t1: u128, + pub t2: u128, + pub s0fp: u128, + pub s1: u128, + pub a0: u128, + pub a1: u128, + pub a2: u128, + pub a3: u128, + pub a4: u128, + pub a5: u128, + pub a6: u128, + pub a7: u128, + pub s2: u128, + pub s3: u128, + pub s4: u128, + pub s5: u128, + pub s6: u128, + pub s7: u128, + pub s8: u128, + pub s9: u128, + pub s10: u128, + pub s11: u128, + pub t3: u128, + pub t4: u128, + pub t5: u128, + pub t6: u128, + // Floating registers for F, D and Q Standard Extensions + pub ft0: u128, + pub ft1: u128, + pub ft2: u128, + pub ft3: u128, + pub ft4: u128, + pub ft5: u128, + pub ft6: u128, + pub ft7: u128, + pub fs0: u128, + pub fs1: u128, + pub fa0: u128, + pub fa1: u128, + pub fa2: u128, + pub fa3: u128, + pub fa4: u128, + pub fa5: u128, + pub fa6: u128, + pub fa7: u128, + pub fs2: u128, + pub fs3: u128, + pub fs4: u128, + pub fs5: u128, + pub fs6: u128, + pub fs7: u128, + pub fs8: u128, + pub fs9: u128, + pub fs10: u128, + pub fs11: u128, + pub ft8: u128, + pub ft9: u128, + pub ft10: u128, + pub ft11: u128, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct SystemContextIa32 { + // ExceptionData is additional data pushed on the stack by some types of IA-32 exceptions + pub exception_data: u32, + pub fx_save_state: FxSaveStateIA32, + pub dr0: u32, + pub dr1: u32, + pub dr2: u32, + pub dr3: u32, + pub dr6: u32, + pub dr7: u32, + pub cr0: u32, + // Reserved + pub cr1: u32, + pub cr2: u32, + pub cr3: u32, + pub cr4: u32, + pub eflags: u32, + pub ldtr: u32, + pub tr: u32, + pub gdtr: [u32; 2], + pub idtr: [u32; 2], + pub eip: u32, + pub gs: u32, + pub fs: u32, + pub es: u32, + pub ds: u32, + pub cs: u32, + pub ss: u32, + pub edi: u32, + pub esi: u32, + pub ebp: u32, + pub esp: u32, + pub ebx: u32, + pub edx: u32, + pub ecx: u32, + pub eax: u32, +} + +// FXSAVE_STATE - FP / MMX / XMM registers +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct FxSaveStateIA32 { + pub fcw: u16, + pub fsw: u16, + pub ftw: u16, + pub opcode: u16, + pub eip: u32, + pub cs: u16, + pub reserved_1: u16, + pub data_offset: u32, + pub ds: u16, + pub reserved_2: [u8; 10], + pub st0mm0: [u8; 10], + pub reserved_3: [u8; 6], + pub st1mm1: [u8; 10], + pub reserved_4: [u8; 6], + pub st2mm2: [u8; 10], + pub reserved_5: [u8; 6], + pub st3mm3: [u8; 10], + pub reserved_6: [u8; 6], + pub st4mm4: [u8; 10], + pub reserved_7: [u8; 6], + pub st5mm5: [u8; 10], + pub reserved_8: [u8; 6], + pub st6mm6: [u8; 10], + pub reserved_9: [u8; 6], + pub st7mm7: [u8; 10], + pub reserved_10: [u8; 6], + pub xmm0: [u8; 16], + pub xmm1: [u8; 16], + pub xmm2: [u8; 16], + pub xmm3: [u8; 16], + pub xmm4: [u8; 16], + pub xmm5: [u8; 16], + pub xmm6: [u8; 16], + pub xmm7: [u8; 16], + pub reserved_11: [u8; 14 * 16], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct SystemContextX64 { + // ExceptionData is additional data pushed on the stack by some types of x64 64-bit mode exceptions + pub exception_data: u64, + pub fx_save_state: FxSaveStateX64, + pub dr0: u64, + pub dr1: u64, + pub dr2: u64, + pub dr3: u64, + pub dr6: u64, + pub dr7: u64, + pub cr0: u64, + // Reserved + pub cr1: u64, + pub cr2: u64, + pub cr3: u64, + pub cr4: u64, + pub cr8: u64, + pub rflags: u64, + pub ldtr: u64, + pub tr: u64, + pub gdtr: [u64; 2], + pub idtr: [u64; 2], + pub rip: u64, + pub gs: u64, + pub fs: u64, + pub es: u64, + pub ds: u64, + pub cs: u64, + pub ss: u64, + pub rdi: u64, + pub rsi: u64, + pub rbp: u64, + pub rsp: u64, + pub rbx: u64, + pub rdx: u64, + pub rcx: u64, + pub rax: u64, + pub r8: u64, + pub r9: u64, + pub r10: u64, + pub r11: u64, + pub r12: u64, + pub r13: u64, + pub r14: u64, + pub r15: u64, +} + +// FXSAVE_STATE – FP / MMX / XMM registers +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct FxSaveStateX64 { + pub fcw: u16, + pub fsw: u16, + pub ftw: u16, + pub opcode: u16, + pub rip: u64, + pub data_offset: u64, + pub reserved_1: [u8; 8], + pub st0mm0: [u8; 10], + pub reserved_2: [u8; 6], + pub st1mm1: [u8; 10], + pub reserved_3: [u8; 6], + pub st2mm2: [u8; 10], + pub reserved_4: [u8; 6], + pub st3mm3: [u8; 10], + pub reserved_5: [u8; 6], + pub st4mm4: [u8; 10], + pub reserved_6: [u8; 6], + pub st5mm5: [u8; 10], + pub reserved_7: [u8; 6], + pub st6mm6: [u8; 10], + pub reserved_8: [u8; 6], + pub st7mm7: [u8; 10], + pub reserved_9: [u8; 6], + pub xmm0: [u8; 16], + pub xmm1: [u8; 16], + pub xmm2: [u8; 16], + pub xmm3: [u8; 16], + pub xmm4: [u8; 16], + pub xmm5: [u8; 16], + pub xmm6: [u8; 16], + pub xmm7: [u8; 16], + pub reserved_11: [u8; 14 * 16], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct SystemContextIpf { + pub reserved: u64, + pub r1: u64, + pub r2: u64, + pub r3: u64, + pub r4: u64, + pub r5: u64, + pub r6: u64, + pub r7: u64, + pub r8: u64, + pub r9: u64, + pub r10: u64, + pub r11: u64, + pub r12: u64, + pub r13: u64, + pub r14: u64, + pub r15: u64, + pub r16: u64, + pub r17: u64, + pub r18: u64, + pub r19: u64, + pub r20: u64, + pub r21: u64, + pub r22: u64, + pub r23: u64, + pub r24: u64, + pub r25: u64, + pub r26: u64, + pub r27: u64, + pub r28: u64, + pub r29: u64, + pub r30: u64, + pub r31: u64, + pub f2: [u64; 2], + pub f3: [u64; 2], + pub f4: [u64; 2], + pub f5: [u64; 2], + pub f6: [u64; 2], + pub f7: [u64; 2], + pub f8: [u64; 2], + pub f9: [u64; 2], + pub f10: [u64; 2], + pub f11: [u64; 2], + pub f12: [u64; 2], + pub f13: [u64; 2], + pub f14: [u64; 2], + pub f15: [u64; 2], + pub f16: [u64; 2], + pub f17: [u64; 2], + pub f18: [u64; 2], + pub f19: [u64; 2], + pub f20: [u64; 2], + pub f21: [u64; 2], + pub f22: [u64; 2], + pub f23: [u64; 2], + pub f24: [u64; 2], + pub f25: [u64; 2], + pub f26: [u64; 2], + pub f27: [u64; 2], + pub f28: [u64; 2], + pub f29: [u64; 2], + pub f30: [u64; 2], + pub f31: [u64; 2], + pub pr: u64, + pub b0: u64, + pub b1: u64, + pub b2: u64, + pub b3: u64, + pub b4: u64, + pub b5: u64, + pub b6: u64, + pub b7: u64, + // application registers + pub ar_rsc: u64, + pub ar_bsp: u64, + pub ar_bspstore: u64, + pub ar_rnat: u64, + pub ar_fcr: u64, + pub ar_eflag: u64, + pub ar_csd: u64, + pub ar_ssd: u64, + pub ar_cflg: u64, + pub ar_fsr: u64, + pub ar_fir: u64, + pub ar_fdr: u64, + pub ar_ccv: u64, + pub ar_unat: u64, + pub ar_fpsr: u64, + pub ar_pfs: u64, + pub ar_lc: u64, + pub ar_ec: u64, + // control registers + pub cr_dcr: u64, + pub cr_itm: u64, + pub cr_iva: u64, + pub cr_pta: u64, + pub cr_ipsr: u64, + pub cr_isr: u64, + pub cr_iip: u64, + pub cr_ifa: u64, + pub cr_itir: u64, + pub cr_iipa: u64, + pub cr_ifs: u64, + pub cr_iim: u64, + pub cr_iha: u64, + // debug registers + pub dbr0: u64, + pub dbr1: u64, + pub dbr2: u64, + pub dbr3: u64, + pub dbr4: u64, + pub dbr5: u64, + pub dbr6: u64, + pub dbr7: u64, + pub ibr0: u64, + pub ibr1: u64, + pub ibr2: u64, + pub ibr3: u64, + pub ibr4: u64, + pub ibr5: u64, + pub ibr6: u64, + pub ibr7: u64, + // virtual Registers + pub int_nat: u64, // nat bits for r1-r31 +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct SystemContextArm { + pub r0: u32, + pub r1: u32, + pub r2: u32, + pub r3: u32, + pub r4: u32, + pub r5: u32, + pub r6: u32, + pub r7: u32, + pub r8: u32, + pub r9: u32, + pub r10: u32, + pub r11: u32, + pub r12: u32, + pub sp: u32, + pub lr: u32, + pub pc: u32, + pub cpsr: u32, + pub dfsr: u32, + pub dfar: u32, + pub ifsr: u32, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct SystemContextAArch64 { + // General Purpose Registers + pub x0: u64, + pub x1: u64, + pub x2: u64, + pub x3: u64, + pub x4: u64, + pub x5: u64, + pub x6: u64, + pub x7: u64, + pub x8: u64, + pub x9: u64, + pub x10: u64, + pub x11: u64, + pub x12: u64, + pub x13: u64, + pub x14: u64, + pub x15: u64, + pub x16: u64, + pub x17: u64, + pub x18: u64, + pub x19: u64, + pub x20: u64, + pub x21: u64, + pub x22: u64, + pub x23: u64, + pub x24: u64, + pub x25: u64, + pub x26: u64, + pub x27: u64, + pub x28: u64, + pub fp: u64, // x29 - Frame Pointer + pub lr: u64, // x30 - Link Register + pub sp: u64, // x31 - Stack Pointer + // FP/SIMD Registers + pub v0: [u64; 2], + pub v1: [u64; 2], + pub v2: [u64; 2], + pub v3: [u64; 2], + pub v4: [u64; 2], + pub v5: [u64; 2], + pub v6: [u64; 2], + pub v7: [u64; 2], + pub v8: [u64; 2], + pub v9: [u64; 2], + pub v10: [u64; 2], + pub v11: [u64; 2], + pub v12: [u64; 2], + pub v13: [u64; 2], + pub v14: [u64; 2], + pub v15: [u64; 2], + pub v16: [u64; 2], + pub v17: [u64; 2], + pub v18: [u64; 2], + pub v19: [u64; 2], + pub v20: [u64; 2], + pub v21: [u64; 2], + pub v22: [u64; 2], + pub v23: [u64; 2], + pub v24: [u64; 2], + pub v25: [u64; 2], + pub v26: [u64; 2], + pub v27: [u64; 2], + pub v28: [u64; 2], + pub v29: [u64; 2], + pub v30: [u64; 2], + pub v31: [u64; 2], + pub elr: u64, // Exception Link Register + pub spsr: u64, // Saved Processor Status Register + pub fpsr: u64, // Floating Point Status Register + pub esr: u64, // Exception Syndrome Register + pub far: u64, // Fault Address Register +} + +pub type ExceptionType = isize; + +// EBC Exception types +pub const EXCEPT_EBC_UNDEFINED: ExceptionType = 0; +pub const EXCEPT_EBC_DIVIDE_ERROR: ExceptionType = 1; +pub const EXCEPT_EBC_DEBUG: ExceptionType = 2; +pub const EXCEPT_EBC_BREAKPOINT: ExceptionType = 3; +pub const EXCEPT_EBC_OVERFLOW: ExceptionType = 4; +pub const EXCEPT_EBC_INVALID_OPCODE: ExceptionType = 5; +pub const EXCEPT_EBC_STACK_FAULT: ExceptionType = 6; +pub const EXCEPT_EBC_ALIGNMENT_CHECK: ExceptionType = 7; +pub const EXCEPT_EBC_INSTRUCTION_ENCODING: ExceptionType = 8; +pub const EXCEPT_EBC_BAD_BREAK: ExceptionType = 9; +pub const EXCEPT_EBC_SINGLE_STEP: ExceptionType = 10; + +// IA-32 Exception types +pub const EXCEPT_IA32_DIVIDE_ERROR: ExceptionType = 0; +pub const EXCEPT_IA32_DEBUG: ExceptionType = 1; +pub const EXCEPT_IA32_NMI: ExceptionType = 2; +pub const EXCEPT_IA32_BREAKPOINT: ExceptionType = 3; +pub const EXCEPT_IA32_OVERFLOW: ExceptionType = 4; +pub const EXCEPT_IA32_BOUND: ExceptionType = 5; +pub const EXCEPT_IA32_INVALID_OPCODE: ExceptionType = 6; +pub const EXCEPT_IA32_DOUBLE_FAULT: ExceptionType = 8; +pub const EXCEPT_IA32_INVALID_TSS: ExceptionType = 10; +pub const EXCEPT_IA32_SEG_NOT_PRESENT: ExceptionType = 11; +pub const EXCEPT_IA32_STACK_FAULT: ExceptionType = 12; +pub const EXCEPT_IA32_GP_FAULT: ExceptionType = 13; +pub const EXCEPT_IA32_PAGE_FAULT: ExceptionType = 14; +pub const EXCEPT_IA32_FP_ERROR: ExceptionType = 16; +pub const EXCEPT_IA32_ALIGNMENT_CHECK: ExceptionType = 17; +pub const EXCEPT_IA32_MACHINE_CHECK: ExceptionType = 18; +pub const EXCEPT_IA32_SIMD: ExceptionType = 19; + +// X64 Exception types +pub const EXCEPT_X64_DIVIDE_ERROR: ExceptionType = 0; +pub const EXCEPT_X64_DEBUG: ExceptionType = 1; +pub const EXCEPT_X64_NMI: ExceptionType = 2; +pub const EXCEPT_X64_BREAKPOINT: ExceptionType = 3; +pub const EXCEPT_X64_OVERFLOW: ExceptionType = 4; +pub const EXCEPT_X64_BOUND: ExceptionType = 5; +pub const EXCEPT_X64_INVALID_OPCODE: ExceptionType = 6; +pub const EXCEPT_X64_DOUBLE_FAULT: ExceptionType = 8; +pub const EXCEPT_X64_INVALID_TSS: ExceptionType = 10; +pub const EXCEPT_X64_SEG_NOT_PRESENT: ExceptionType = 11; +pub const EXCEPT_X64_STACK_FAULT: ExceptionType = 12; +pub const EXCEPT_X64_GP_FAULT: ExceptionType = 13; +pub const EXCEPT_X64_PAGE_FAULT: ExceptionType = 14; +pub const EXCEPT_X64_FP_ERROR: ExceptionType = 16; +pub const EXCEPT_X64_ALIGNMENT_CHECK: ExceptionType = 17; +pub const EXCEPT_X64_MACHINE_CHECK: ExceptionType = 18; +pub const EXCEPT_X64_SIMD: ExceptionType = 19; + +// Itanium Processor Family Exception types +pub const EXCEPT_IPF_VHTP_TRANSLATION: ExceptionType = 0; +pub const EXCEPT_IPF_INSTRUCTION_TLB: ExceptionType = 1; +pub const EXCEPT_IPF_DATA_TLB: ExceptionType = 2; +pub const EXCEPT_IPF_ALT_INSTRUCTION_TLB: ExceptionType = 3; +pub const EXCEPT_IPF_ALT_DATA_TLB: ExceptionType = 4; +pub const EXCEPT_IPF_DATA_NESTED_TLB: ExceptionType = 5; +pub const EXCEPT_IPF_INSTRUCTION_KEY_MISSED: ExceptionType = 6; +pub const EXCEPT_IPF_DATA_KEY_MISSED: ExceptionType = 7; +pub const EXCEPT_IPF_DIRTY_BIT: ExceptionType = 8; +pub const EXCEPT_IPF_INSTRUCTION_ACCESS_BIT: ExceptionType = 9; +pub const EXCEPT_IPF_DATA_ACCESS_BIT: ExceptionType = 10; +pub const EXCEPT_IPF_BREAKPOINT: ExceptionType = 11; +pub const EXCEPT_IPF_EXTERNAL_INTERRUPT: ExceptionType = 12; +// 13 - 19 reserved +pub const EXCEPT_IPF_PAGE_NOT_PRESENT: ExceptionType = 20; +pub const EXCEPT_IPF_KEY_PERMISSION: ExceptionType = 21; +pub const EXCEPT_IPF_INSTRUCTION_ACCESS_RIGHTS: ExceptionType = 22; +pub const EXCEPT_IPF_DATA_ACCESS_RIGHTS: ExceptionType = 23; +pub const EXCEPT_IPF_GENERAL_EXCEPTION: ExceptionType = 24; +pub const EXCEPT_IPF_DISABLED_FP_REGISTER: ExceptionType = 25; +pub const EXCEPT_IPF_NAT_CONSUMPTION: ExceptionType = 26; +pub const EXCEPT_IPF_SPECULATION: ExceptionType = 27; +// 28 reserved +pub const EXCEPT_IPF_DEBUG: ExceptionType = 29; +pub const EXCEPT_IPF_UNALIGNED_REFERENCE: ExceptionType = 30; +pub const EXCEPT_IPF_UNSUPPORTED_DATA_REFERENCE: ExceptionType = 31; +pub const EXCEPT_IPF_FP_FAULT: ExceptionType = 32; +pub const EXCEPT_IPF_FP_TRAP: ExceptionType = 33; +pub const EXCEPT_IPF_LOWER_PRIVILEGE_TRANSFER_TRAP: ExceptionType = 34; +pub const EXCEPT_IPF_TAKEN_BRANCH: ExceptionType = 35; +pub const EXCEPT_IPF_SINGLE_STEP: ExceptionType = 36; +// 37 - 44 reserved +pub const EXCEPT_IPF_IA32_EXCEPTION: ExceptionType = 45; +pub const EXCEPT_IPF_IA32_INTERCEPT: ExceptionType = 46; +pub const EXCEPT_IPF_IA32_INTERRUPT: ExceptionType = 47; + +// ARM processor exception types +pub const EXCEPT_ARM_RESET: ExceptionType = 0; +pub const EXCEPT_ARM_UNDEFINED_INSTRUCTION: ExceptionType = 1; +pub const EXCEPT_ARM_SOFTWARE_INTERRUPT: ExceptionType = 2; +pub const EXCEPT_ARM_PREFETCH_ABORT: ExceptionType = 3; +pub const EXCEPT_ARM_DATA_ABORT: ExceptionType = 4; +pub const EXCEPT_ARM_RESERVED: ExceptionType = 5; +pub const EXCEPT_ARM_IRQ: ExceptionType = 6; +pub const EXCEPT_ARM_FIQ: ExceptionType = 7; +pub const MAX_ARM_EXCEPTION: ExceptionType = EXCEPT_ARM_FIQ; + +// AARCH64 processor exception types. +pub const EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS: ExceptionType = 0; +pub const EXCEPT_AARCH64_IRQ: ExceptionType = 1; +pub const EXCEPT_AARCH64_FIQ: ExceptionType = 2; +pub const EXCEPT_AARCH64_SERROR: ExceptionType = 3; +pub const MAX_AARCH64_EXCEPTION: ExceptionType = EXCEPT_AARCH64_SERROR; + +// RISC-V processor exception types. +pub const EXCEPT_RISCV_INST_MISALIGNED: ExceptionType = 0; +pub const EXCEPT_RISCV_INST_ACCESS_FAULT: ExceptionType = 1; +pub const EXCEPT_RISCV_ILLEGAL_INST: ExceptionType = 2; +pub const EXCEPT_RISCV_BREAKPOINT: ExceptionType = 3; +pub const EXCEPT_RISCV_LOAD_ADDRESS_MISALIGNED: ExceptionType = 4; +pub const EXCEPT_RISCV_LOAD_ACCESS_FAULT: ExceptionType = 5; +pub const EXCEPT_RISCV_STORE_AMO_ADDRESS_MISALIGNED: ExceptionType = 6; +pub const EXCEPT_RISCV_STORE_AMO_ACCESS_FAULT: ExceptionType = 7; +pub const EXCEPT_RISCV_ENV_CALL_FROM_UMODE: ExceptionType = 8; +pub const EXCEPT_RISCV_ENV_CALL_FROM_SMODE: ExceptionType = 9; +pub const EXCEPT_RISCV_ENV_CALL_FROM_MMODE: ExceptionType = 11; +pub const EXCEPT_RISCV_INST_PAGE_FAULT: ExceptionType = 12; +pub const EXCEPT_RISCV_LOAD_PAGE_FAULT: ExceptionType = 13; +pub const EXCEPT_RISCV_STORE_AMO_PAGE_FAULT: ExceptionType = 15; + +// RISC-V processor interrupt types. +pub const EXCEPT_RISCV_SUPERVISOR_SOFTWARE_INT: ExceptionType = 1; +pub const EXCEPT_RISCV_MACHINE_SOFTWARE_INT: ExceptionType = 3; +pub const EXCEPT_RISCV_SUPERVISOR_TIMER_INT: ExceptionType = 5; +pub const EXCEPT_RISCV_MACHINE_TIMER_INT: ExceptionType = 7; +pub const EXCEPT_RISCV_SUPERVISOR_EXTERNAL_INT: ExceptionType = 9; +pub const EXCEPT_RISCV_MACHINE_EXTERNAL_INT: ExceptionType = 11; + +pub type GetMaximumProcessorIndex = eficall! {fn( + *mut Protocol, + *mut usize, +) -> crate::base::Status}; + +pub type PeriodicCallback = eficall! {fn(SystemContext)}; + +pub type RegisterPeriodicCallback = eficall! {fn( + *mut Protocol, + usize, + Option, +) -> crate::base::Status}; + +pub type ExceptionCallback = eficall! {fn(ExceptionType, SystemContext)}; + +pub type RegisterExceptionCallback = eficall! {fn( + *mut Protocol, + usize, + Option, + ExceptionType, +) -> crate::base::Status}; + +pub type InvalidateInstructionCache = eficall! {fn( + *mut Protocol, + usize, + *mut core::ffi::c_void, + u64, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub isa: InstructionSetArchitecture, + pub get_maximum_processor_index: GetMaximumProcessorIndex, + pub register_periodic_callback: RegisterPeriodicCallback, + pub register_exception_callback: RegisterExceptionCallback, + pub invalidate_instruction_cache: InvalidateInstructionCache, +} diff --git a/src/rust/vendor/r-efi/src/protocols/debugport.rs b/src/rust/vendor/r-efi/src/protocols/debugport.rs new file mode 100644 index 000000000..a335fd971 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/debugport.rs @@ -0,0 +1,42 @@ +//! Debug Port Protocol +//! +//! It provides the communication link between the debug agent and the remote host. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xeba4e8d2, + 0x3858, + 0x41ec, + 0xa2, + 0x81, + &[0x26, 0x47, 0xba, 0x96, 0x60, 0xd0], +); + +pub type Reset = eficall! {fn( + *mut Protocol, +) -> *mut crate::base::Status}; + +pub type Write = eficall! {fn( + *mut Protocol, + u32, + *mut usize, + *mut core::ffi::c_void +) -> *mut crate::base::Status}; + +pub type Read = eficall! {fn( + *mut Protocol, + u32, + *mut usize, + *mut core::ffi::c_void +) -> *mut crate::base::Status}; + +pub type Poll = eficall! {fn( + *mut Protocol, +) -> *mut crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub reset: Reset, + pub write: Write, + pub read: Read, + pub poll: Poll, +} diff --git a/src/rust/vendor/r-efi/src/protocols/decompress.rs b/src/rust/vendor/r-efi/src/protocols/decompress.rs new file mode 100644 index 000000000..640369ad0 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/decompress.rs @@ -0,0 +1,37 @@ +//! Decompress Protocol +//! +//! The decompress protocol provides a decompression service that allows a compressed source +//! buffer in memory to be decompressed into a destination buffer in memory. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xd8117cfe, + 0x94a6, + 0x11d4, + 0x9a, + 0x3a, + &[0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d], +); + +pub type ProtocolGetInfo = eficall! {fn( + *mut Protocol, + *mut core::ffi::c_void, + u32, + *mut u32, + *mut u32, +) -> crate::base::Status}; + +pub type ProtocolDecompress = eficall! {fn( + *mut Protocol, + *mut core::ffi::c_void, + u32, + *mut core::ffi::c_void, + u32, + *mut core::ffi::c_void, + u32, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub get_info: ProtocolGetInfo, + pub decompress: ProtocolDecompress, +} diff --git a/src/rust/vendor/r-efi/src/protocols/device_path.rs b/src/rust/vendor/r-efi/src/protocols/device_path.rs new file mode 100644 index 000000000..93455f508 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/device_path.rs @@ -0,0 +1,82 @@ +//! Device Path Protocol +//! +//! The device path protocol defines how to obtain generic path/location information +//! concerning the phisycal or logical device. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x09576e91, + 0x6d3f, + 0x11d2, + 0x8e, + 0x39, + &[0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b], +); + +pub const TYPE_HARDWARE: u8 = 0x01; +pub const TYPE_ACPI: u8 = 0x02; +pub const TYPE_MESSAGING: u8 = 0x03; +pub const TYPE_MEDIA: u8 = 0x04; +pub const TYPE_BIOS: u8 = 0x05; +pub const TYPE_END: u8 = 0x7f; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Protocol { + pub r#type: u8, + pub sub_type: u8, + pub length: [u8; 2], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct End { + pub header: Protocol, +} + +impl End { + pub const SUBTYPE_INSTANCE: u8 = 0x01; + pub const SUBTYPE_ENTIRE: u8 = 0xff; +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Hardware { + pub header: Protocol, +} + +impl Hardware { + pub const SUBTYPE_PCI: u8 = 0x01; + pub const SUBTYPE_PCCARD: u8 = 0x02; + pub const SUBTYPE_MMAP: u8 = 0x03; + pub const SUBTYPE_VENDOR: u8 = 0x04; + pub const SUBTYPE_CONTROLLER: u8 = 0x05; + pub const SUBTYPE_BMC: u8 = 0x06; +} + +#[repr(C, packed)] +#[derive(Clone, Copy, Debug)] +pub struct HardDriveMedia { + pub header: Protocol, + pub partition_number: u32, + pub partition_start: u64, + pub partition_size: u64, + pub partition_signature: [u8; 16], + pub partition_format: u8, + pub signature_type: u8, +} + +pub struct Media { + pub header: Protocol, +} + +impl Media { + pub const SUBTYPE_HARDDRIVE: u8 = 0x01; + pub const SUBTYPE_CDROM: u8 = 0x02; + pub const SUBTYPE_VENDOR: u8 = 0x03; + pub const SUBTYPE_FILE_PATH: u8 = 0x04; + pub const SUBTYPE_MEDIA_PROTOCOL: u8 = 0x05; + pub const SUBTYPE_PIWG_FIRMWARE_FILE: u8 = 0x06; + pub const SUBTYPE_PIWG_FIRMWARE_VOLUME: u8 = 0x07; + pub const SUBTYPE_RELATIVE_OFFSET_RANGE: u8 = 0x08; + pub const SUBTYPE_RAM_DISK: u8 = 0x09; +} diff --git a/src/rust/vendor/r-efi/src/protocols/device_path_from_text.rs b/src/rust/vendor/r-efi/src/protocols/device_path_from_text.rs new file mode 100644 index 000000000..b9191edd9 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/device_path_from_text.rs @@ -0,0 +1,26 @@ +//! Device Path From Text Protocol +//! +//! Convert text to device paths and device nodes. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x5c99a21, + 0xc70f, + 0x4ad2, + 0x8a, + 0x5f, + &[0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e], +); + +pub type DevicePathFromTextNode = eficall! {fn( + *const crate::base::Char16, +) -> *mut crate::protocols::device_path::Protocol}; + +pub type DevicePathFromTextPath = eficall! {fn( + *const crate::base::Char16, +) -> *mut crate::protocols::device_path::Protocol}; + +#[repr(C)] +pub struct Protocol { + pub convert_text_to_device_node: DevicePathFromTextNode, + pub convert_text_to_device_path: DevicePathFromTextPath, +} diff --git a/src/rust/vendor/r-efi/src/protocols/device_path_to_text.rs b/src/rust/vendor/r-efi/src/protocols/device_path_to_text.rs new file mode 100644 index 000000000..c0b98337e --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/device_path_to_text.rs @@ -0,0 +1,30 @@ +//! Device Path to Text Protocol +//! +//! Convert device nodes and paths to text. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x8b843e20, + 0x8132, + 0x4852, + 0x90, + 0xcc, + &[0x55, 0x1a, 0x4e, 0x4a, 0x7f, 0x1c], +); + +pub type DevicePathToTextNode = eficall! {fn( + *mut crate::protocols::device_path::Protocol, + crate::base::Boolean, + crate::base::Boolean, +) -> *mut crate::base::Char16}; + +pub type DevicePathToTextPath = eficall! {fn( + *mut crate::protocols::device_path::Protocol, + crate::base::Boolean, + crate::base::Boolean, +) -> *mut crate::base::Char16}; + +#[repr(C)] +pub struct Protocol { + pub convert_device_node_to_text: DevicePathToTextNode, + pub convert_device_path_to_text: DevicePathToTextPath, +} diff --git a/src/rust/vendor/r-efi/src/protocols/device_path_utilities.rs b/src/rust/vendor/r-efi/src/protocols/device_path_utilities.rs new file mode 100644 index 000000000..d34aea819 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/device_path_utilities.rs @@ -0,0 +1,63 @@ +//! Device Path Utilities Protocol +//! +//! The device-path utilities protocol provides common utilities for creating and manipulating +//! device paths and device nodes. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x379be4e, + 0xd706, + 0x437d, + 0xb0, + 0x37, + &[0xed, 0xb8, 0x2f, 0xb7, 0x72, 0xa4], +); + +pub type ProtocolGetDevicePathSize = eficall! {fn( + *const crate::protocols::device_path::Protocol, +) -> usize}; + +pub type ProtocolDuplicateDevicePath = eficall! {fn( + *const crate::protocols::device_path::Protocol, +) -> *mut crate::protocols::device_path::Protocol}; + +pub type ProtocolAppendDevicePath = eficall! {fn( + *const crate::protocols::device_path::Protocol, + *const crate::protocols::device_path::Protocol, +) -> *mut crate::protocols::device_path::Protocol}; + +pub type ProtocolAppendDeviceNode = eficall! {fn( + *const crate::protocols::device_path::Protocol, + *const crate::protocols::device_path::Protocol, +) -> *mut crate::protocols::device_path::Protocol}; + +pub type ProtocolAppendDevicePathInstance = eficall! {fn( + *const crate::protocols::device_path::Protocol, + *const crate::protocols::device_path::Protocol, +) -> *mut crate::protocols::device_path::Protocol}; + +pub type ProtocolGetNextDevicePathInstance = eficall! {fn( + *mut *mut crate::protocols::device_path::Protocol, + *mut usize, +) -> *mut crate::protocols::device_path::Protocol}; + +pub type ProtocolIsDevicePathMultiInstance = eficall! {fn( + *const crate::protocols::device_path::Protocol, +) -> crate::base::Boolean}; + +pub type ProtocolCreateDeviceNode = eficall! {fn( + u8, + u8, + u16, +) -> *mut crate::protocols::device_path::Protocol}; + +#[repr(C)] +pub struct Protocol { + pub get_device_path_size: ProtocolGetDevicePathSize, + pub duplicate_device_path: ProtocolDuplicateDevicePath, + pub append_device_path: ProtocolAppendDevicePath, + pub append_device_node: ProtocolAppendDeviceNode, + pub append_device_path_instance: ProtocolAppendDevicePathInstance, + pub get_next_device_path_instance: ProtocolGetNextDevicePathInstance, + pub is_device_path_multi_instance: ProtocolIsDevicePathMultiInstance, + pub create_device_node: ProtocolCreateDeviceNode, +} diff --git a/src/rust/vendor/r-efi/src/protocols/disk_io.rs b/src/rust/vendor/r-efi/src/protocols/disk_io.rs new file mode 100644 index 000000000..dd3093f13 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/disk_io.rs @@ -0,0 +1,40 @@ +//! Disk I/O Protocol +//! +//! Abstracts block accesses of the Block I/O protocol to a more general offset-length protocol. +//! Firmware is responsible for adding this protocol to any Block I/O interface that appears +//! in the system that does not already have a Disk I/O protocol. File systems and other disk +//! access code utilize the Disk I/O protocol. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xce345171, + 0xba0b, + 0x11d2, + 0x8e, + 0x4f, + &[0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b], +); + +pub const REVISION: u64 = 0x0000000000010000u64; + +pub type ProtocolReadDisk = eficall! {fn( + *mut Protocol, + u32, + u64, + usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolWriteDisk = eficall! {fn( + *mut Protocol, + u32, + u64, + usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub revision: u64, + pub read_disk: ProtocolReadDisk, + pub write_disk: ProtocolWriteDisk, +} diff --git a/src/rust/vendor/r-efi/src/protocols/disk_io2.rs b/src/rust/vendor/r-efi/src/protocols/disk_io2.rs new file mode 100644 index 000000000..777ed4b44 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/disk_io2.rs @@ -0,0 +1,58 @@ +//! Disk I/O 2 Protocol +//! +//! Extends the Disk I/O protocol interface to enable non-blocking / +//! asynchronous byte-oriented disk operation. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x151c8eae, + 0x7f2c, + 0x472c, + 0x9e, + 0x54, + &[0x98, 0x28, 0x19, 0x4f, 0x6a, 0x88], +); + +pub const REVISION: u64 = 0x0000000000020000u64; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Token { + event: crate::base::Event, + transaction_status: crate::base::Status, +} + +pub type ProtocolCancel = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +pub type ProtocolReadDiskEx = eficall! {fn( + *mut Protocol, + u32, + u64, + *mut Token, + usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolWriteDiskEx = eficall! {fn( + *mut Protocol, + u32, + u64, + *mut Token, + usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolFlushDiskEx = eficall! {fn( + *mut Protocol, + *mut Token, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub revision: u64, + pub cancel: ProtocolCancel, + pub read_disk_ex: ProtocolReadDiskEx, + pub write_disk_ex: ProtocolWriteDiskEx, + pub flush_disk_ex: ProtocolFlushDiskEx, +} diff --git a/src/rust/vendor/r-efi/src/protocols/driver_binding.rs b/src/rust/vendor/r-efi/src/protocols/driver_binding.rs new file mode 100644 index 000000000..7ba2ee328 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/driver_binding.rs @@ -0,0 +1,42 @@ +//! Driver Binding Protocol +//! +//! Provides the services required to determine if a driver supports a given controller. If +//! a controller is supported, then it also provides routines to start and stop the controller. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x18a031ab, + 0xb443, + 0x4d1a, + 0xa5, + 0xc0, + &[0x0c, 0x09, 0x26, 0x1e, 0x9f, 0x71], +); + +pub type ProtocolSupported = eficall! {fn( + *mut Protocol, + crate::base::Handle, + *mut crate::protocols::device_path::Protocol, +) -> crate::base::Status}; + +pub type ProtocolStart = eficall! {fn( + *mut Protocol, + crate::base::Handle, + *mut crate::protocols::device_path::Protocol, +) -> crate::base::Status}; + +pub type ProtocolStop = eficall! {fn( + *mut Protocol, + crate::base::Handle, + usize, + *mut crate::base::Handle, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub supported: ProtocolSupported, + pub start: ProtocolStart, + pub stop: ProtocolStop, + pub version: u32, + pub image_handle: crate::base::Handle, + pub driver_binding_handle: crate::base::Handle, +} diff --git a/src/rust/vendor/r-efi/src/protocols/driver_diagnostics2.rs b/src/rust/vendor/r-efi/src/protocols/driver_diagnostics2.rs new file mode 100644 index 000000000..dff5bd446 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/driver_diagnostics2.rs @@ -0,0 +1,38 @@ +//! Driver Diagnostics Protocol +//! +//! Defined in UEFI Specification, Section 11.4 +//! Used to perform diagnostics on a controller that a UEFI driver is managing. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x4d330321, + 0x025f, + 0x4aac, + 0x90, + 0xd8, + &[0x5e, 0xd9, 0x00, 0x17, 0x3b, 0x63], +); + +pub type Type = u32; + +pub const TYPE_STANDARD: Type = 0; +pub const TYPE_EXTENDED: Type = 1; +pub const TYPE_MANUFACTURING: Type = 2; +pub const TYPE_CANCEL: Type = 3; +pub const TYPE_MAXIMUM: Type = 4; + +pub type RunDiagnostics = eficall! {fn( + *mut Protocol, + crate::base::Handle, + crate::base::Handle, + Type, + *mut crate::base::Char8, + *mut *mut crate::base::Guid, + *mut usize, + *mut *mut crate::base::Char16, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub run_diagnostics: RunDiagnostics, + pub supported_languages: *mut crate::base::Char8, +} diff --git a/src/rust/vendor/r-efi/src/protocols/driver_family_override.rs b/src/rust/vendor/r-efi/src/protocols/driver_family_override.rs new file mode 100644 index 000000000..d1924764a --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/driver_family_override.rs @@ -0,0 +1,23 @@ +//! Driver Family Override Protocol +//! +//! When installed, the Driver Family Override Protocol informs the UEFI Boot +//! Service `ConnectController()` that this driver is higher priority than the +//! list of drivers returned by the Bus Specific Driver Override Protocol. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xb1ee129e, + 0xda36, + 0x4181, + 0x91, + 0xf8, + &[0x04, 0xa4, 0x92, 0x37, 0x66, 0xa7], +); + +pub type ProtocolGetVersion = eficall! {fn( + *mut Protocol, +) -> u32}; + +#[repr(C)] +pub struct Protocol { + pub get_version: ProtocolGetVersion, +} diff --git a/src/rust/vendor/r-efi/src/protocols/file.rs b/src/rust/vendor/r-efi/src/protocols/file.rs new file mode 100644 index 000000000..4a66ce294 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/file.rs @@ -0,0 +1,183 @@ +//! File Protocol +//! +//! Provides an interface to interact with both files and directories. This protocol is typically +//! obtained via an EFI_SIMPLE_FILE_SYSTEM protocol or via another EFI_FILE_PROTOCOL. + +pub const REVISION: u64 = 0x0000_0000_0001_0000u64; +pub const REVISION2: u64 = 0x0000_0000_0002_0000u64; +pub const LATEST_REVISION: u64 = REVISION2; + +pub const MODE_READ: u64 = 0x0000000000000001u64; +pub const MODE_WRITE: u64 = 0x0000000000000002u64; +pub const MODE_CREATE: u64 = 0x8000000000000000u64; + +pub const READ_ONLY: u64 = 0x0000000000000001u64; +pub const HIDDEN: u64 = 0x0000000000000002u64; +pub const SYSTEM: u64 = 0x0000000000000004u64; +pub const RESERVED: u64 = 0x0000000000000008u64; +pub const DIRECTORY: u64 = 0x0000000000000010u64; +pub const ARCHIVE: u64 = 0x0000000000000020u64; +pub const VALID_ATTR: u64 = 0x0000000000000037u64; + +pub const INFO_ID: crate::base::Guid = crate::base::Guid::from_fields( + 0x09576e92, + 0x6d3f, + 0x11d2, + 0x8e, + 0x39, + &[0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b], +); +pub const SYSTEM_INFO_ID: crate::base::Guid = crate::base::Guid::from_fields( + 0x09576e93, + 0x6d3f, + 0x11d2, + 0x8e, + 0x39, + &[0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b], +); +pub const SYSTEM_VOLUME_LABEL_ID: crate::base::Guid = crate::base::Guid::from_fields( + 0xdb47d7d3, + 0xfe81, + 0x11d3, + 0x9a, + 0x35, + &[0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IoToken { + pub event: crate::base::Event, + pub status: crate::base::Status, + pub buffer_size: usize, + pub buffer: *mut core::ffi::c_void, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Info { + pub size: u64, + pub file_size: u64, + pub physical_size: u64, + pub create_time: crate::system::Time, + pub last_access_time: crate::system::Time, + pub modification_time: crate::system::Time, + pub attribute: u64, + pub file_name: [crate::base::Char16; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct SystemInfo { + pub size: u64, + pub read_only: crate::base::Boolean, + pub volume_size: u64, + pub free_space: u64, + pub block_size: u32, + pub volume_label: [crate::base::Char16; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct SystemVolumeLabel { + pub volume_label: [crate::base::Char16; N], +} + +pub type ProtocolOpen = eficall! {fn( + *mut Protocol, + *mut *mut Protocol, + *mut crate::base::Char16, + u64, + u64, +) -> crate::base::Status}; + +pub type ProtocolClose = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +pub type ProtocolDelete = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +pub type ProtocolRead = eficall! {fn( + *mut Protocol, + *mut usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolWrite = eficall! {fn( + *mut Protocol, + *mut usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolGetPosition = eficall! {fn( + *mut Protocol, + *mut u64, +) -> crate::base::Status}; + +pub type ProtocolSetPosition = eficall! {fn( + *mut Protocol, + u64, +) -> crate::base::Status}; + +pub type ProtocolGetInfo = eficall! {fn( + *mut Protocol, + *mut crate::base::Guid, + *mut usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolSetInfo = eficall! {fn( + *mut Protocol, + *mut crate::base::Guid, + usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolFlush = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +pub type ProtocolOpenEx = eficall! {fn( + *mut Protocol, + *mut *mut Protocol, + *mut crate::base::Char16, + u64, + u64, + *mut IoToken, +) -> crate::base::Status}; + +pub type ProtocolReadEx = eficall! {fn( + *mut Protocol, + *mut IoToken, +) -> crate::base::Status}; + +pub type ProtocolWriteEx = eficall! {fn( + *mut Protocol, + *mut IoToken, +) -> crate::base::Status}; + +pub type ProtocolFlushEx = eficall! {fn( + *mut Protocol, + *mut IoToken, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub revision: u64, + pub open: ProtocolOpen, + pub close: ProtocolClose, + pub delete: ProtocolDelete, + pub read: ProtocolRead, + pub write: ProtocolWrite, + pub get_position: ProtocolGetPosition, + pub set_position: ProtocolSetPosition, + pub get_info: ProtocolGetInfo, + pub set_info: ProtocolSetInfo, + pub flush: ProtocolFlush, + pub open_ex: ProtocolOpenEx, + pub read_ex: ProtocolReadEx, + pub write_ex: ProtocolWriteEx, + pub flush_ex: ProtocolFlushEx, +} diff --git a/src/rust/vendor/r-efi/src/protocols/graphics_output.rs b/src/rust/vendor/r-efi/src/protocols/graphics_output.rs new file mode 100644 index 000000000..a6a4438b8 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/graphics_output.rs @@ -0,0 +1,103 @@ +//! Graphics Output Protocol +//! +//! Provides means to configure graphics hardware and get access to +//! framebuffers. Replaces the old UGA interface from EFI with a +//! VGA-independent API. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x9042a9de, + 0x23dc, + 0x4a38, + 0x96, + 0xfb, + &[0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct PixelBitmask { + pub red_mask: u32, + pub green_mask: u32, + pub blue_mask: u32, + pub reserved_mask: u32, +} + +pub type GraphicsPixelFormat = u32; + +pub const PIXEL_RED_GREEN_BLUE_RESERVED_8_BIT_PER_COLOR: GraphicsPixelFormat = 0x00000000; +pub const PIXEL_BLUE_GREEN_RED_RESERVED_8_BIT_PER_COLOR: GraphicsPixelFormat = 0x00000001; +pub const PIXEL_BIT_MASK: GraphicsPixelFormat = 0x00000002; +pub const PIXEL_BLT_ONLY: GraphicsPixelFormat = 0x00000003; +pub const PIXEL_FORMAT_MAX: GraphicsPixelFormat = 0x00000004; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ModeInformation { + pub version: u32, + pub horizontal_resolution: u32, + pub vertical_resolution: u32, + pub pixel_format: GraphicsPixelFormat, + pub pixel_information: PixelBitmask, + pub pixels_per_scan_line: u32, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Mode { + pub max_mode: u32, + pub mode: u32, + pub info: *mut ModeInformation, + pub size_of_info: usize, + pub frame_buffer_base: crate::base::PhysicalAddress, + pub frame_buffer_size: usize, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct BltPixel { + pub blue: u8, + pub green: u8, + pub red: u8, + pub reserved: u8, +} + +pub type BltOperation = u32; + +pub const BLT_VIDEO_FILL: BltOperation = 0x00000000; +pub const BLT_VIDEO_TO_BLT_BUFFER: BltOperation = 0x00000001; +pub const BLT_BUFFER_TO_VIDEO: BltOperation = 0x00000002; +pub const BLT_VIDEO_TO_VIDEO: BltOperation = 0x00000003; +pub const BLT_OPERATION_MAX: BltOperation = 0x00000004; + +pub type ProtocolQueryMode = eficall! {fn( + *mut Protocol, + u32, + *mut usize, + *mut *mut ModeInformation, +) -> crate::base::Status}; + +pub type ProtocolSetMode = eficall! {fn( + *mut Protocol, + u32, +) -> crate::base::Status}; + +pub type ProtocolBlt = eficall! {fn( + *mut Protocol, + *mut BltPixel, + BltOperation, + usize, + usize, + usize, + usize, + usize, + usize, + usize, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub query_mode: ProtocolQueryMode, + pub set_mode: ProtocolSetMode, + pub blt: ProtocolBlt, + pub mode: *mut Mode, +} diff --git a/src/rust/vendor/r-efi/src/protocols/hii_database.rs b/src/rust/vendor/r-efi/src/protocols/hii_database.rs new file mode 100644 index 000000000..579c43cf2 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/hii_database.rs @@ -0,0 +1,299 @@ +//! Human Interface Infrastructure (HII) Protocol +//! +//! Database manager for HII-related data structures. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xef9fc172, + 0xa1b2, + 0x4693, + 0xb3, + 0x27, + &[0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42], +); + +pub const SET_KEYBOARD_LAYOUT_EVENT_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x14982a4f, + 0xb0ed, + 0x45b8, + 0xa8, + 0x11, + &[0x5a, 0x7a, 0x9b, 0xc2, 0x32, 0xdf], +); + +pub type ProtocolNewPackageList = eficall! {fn( + *const Protocol, + *const crate::hii::PackageListHeader, + crate::base::Handle, + *mut crate::hii::Handle, +) -> crate::base::Status}; + +pub type ProtocolRemovePackageList = eficall! {fn( + *const Protocol, + crate::hii::Handle, +) -> crate::base::Status}; + +pub type ProtocolUpdatePackageList = eficall! {fn( + *const Protocol, + crate::hii::Handle, + *const crate::hii::PackageListHeader, +) -> crate::base::Status}; + +pub type ProtocolListPackageLists = eficall! {fn( + *const Protocol, + u8, + *const crate::base::Guid, + *mut usize, + *mut crate::hii::Handle, +) -> crate::base::Status}; + +pub type ProtocolExportPackageLists = eficall! {fn( + *const Protocol, + crate::hii::Handle, + *mut usize, + *mut crate::hii::PackageListHeader, +) -> crate::base::Status}; + +pub type ProtocolRegisterPackageNotify = eficall! {fn( + *const Protocol, + u8, + *const crate::base::Guid, + Notify, + NotifyType, + *mut crate::base::Handle, +) -> crate::base::Status}; + +pub type ProtocolUnregisterPackageNotify = eficall! {fn( + *const Protocol, + crate::base::Handle, +) -> crate::base::Status}; + +pub type ProtocolFindKeyboardLayouts = eficall! {fn( + *const Protocol, + *mut u16, + *mut crate::base::Guid, +) -> crate::base::Status}; + +pub type ProtocolGetKeyboardLayout = eficall! {fn( + *const Protocol, + *const crate::base::Guid, + *mut u16, + *mut KeyboardLayout, +) -> crate::base::Status}; + +pub type ProtocolSetKeyboardLayout = eficall! {fn( + *const Protocol, + *mut crate::base::Guid, +) -> crate::base::Status}; + +pub type ProtocolGetPackageListHandle = eficall! {fn( + *const Protocol, + crate::hii::Handle, + *mut crate::base::Handle, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub new_package_list: ProtocolNewPackageList, + pub remove_package_list: ProtocolRemovePackageList, + pub update_package_list: ProtocolUpdatePackageList, + pub list_package_lists: ProtocolListPackageLists, + pub export_package_lists: ProtocolExportPackageLists, + pub register_package_notify: ProtocolRegisterPackageNotify, + pub unregister_package_notify: ProtocolUnregisterPackageNotify, + pub find_keyboard_layouts: ProtocolFindKeyboardLayouts, + pub get_keyboard_layout: ProtocolGetKeyboardLayout, + pub set_keyboard_layout: ProtocolSetKeyboardLayout, + pub get_package_list_handle: ProtocolGetPackageListHandle, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct KeyboardLayout { + pub layout_length: u16, + pub guid: crate::base::Guid, + pub layout_descriptor_string_offset: u32, + pub descriptor_count: u8, + pub descriptors: [KeyDescriptor; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct KeyDescriptor { + pub key: Key, + pub unicode: crate::base::Char16, + pub shifted_unicode: crate::base::Char16, + pub alt_gr_unicode: crate::base::Char16, + pub shifted_alt_gr_unicode: crate::base::Char16, + pub modifier: u16, + pub affected_attribute: u16, +} + +pub const AFFECTED_BY_STANDARD_SHIFT: u16 = 0x0001; +pub const AFFECTED_BY_CAPS_LOCK: u16 = 0x0002; +pub const AFFECTED_BY_NUM_LOCK: u16 = 0x0004; + +pub type Key = u32; + +pub const EFI_KEY_LCTRL: Key = 0x00000000; +pub const EFI_KEY_A0: Key = 0x00000001; +pub const EFI_KEY_LALT: Key = 0x00000002; +pub const EFI_KEY_SPACE_BAR: Key = 0x00000003; +pub const EFI_KEY_A2: Key = 0x00000004; +pub const EFI_KEY_A3: Key = 0x00000005; +pub const EFI_KEY_A4: Key = 0x00000006; +pub const EFI_KEY_RCTRL: Key = 0x00000007; +pub const EFI_KEY_LEFT_ARROW: Key = 0x00000008; +pub const EFI_KEY_DOWN_ARROW: Key = 0x00000009; +pub const EFI_KEY_RIGHT_ARROW: Key = 0x0000000a; +pub const EFI_KEY_ZERO: Key = 0x0000000b; +pub const EFI_KEY_PERIOD: Key = 0x0000000c; +pub const EFI_KEY_ENTER: Key = 0x0000000d; +pub const EFI_KEY_LSHIFT: Key = 0x0000000e; +pub const EFI_KEY_B0: Key = 0x0000000f; +pub const EFI_KEY_B1: Key = 0x00000010; +pub const EFI_KEY_B2: Key = 0x00000011; +pub const EFI_KEY_B3: Key = 0x00000012; +pub const EFI_KEY_B4: Key = 0x00000013; +pub const EFI_KEY_B5: Key = 0x00000014; +pub const EFI_KEY_B6: Key = 0x00000015; +pub const EFI_KEY_B7: Key = 0x00000016; +pub const EFI_KEY_B8: Key = 0x00000017; +pub const EFI_KEY_B9: Key = 0x00000018; +pub const EFI_KEY_B10: Key = 0x00000019; +pub const EFI_KEY_RSHIFT: Key = 0x0000001a; +pub const EFI_KEY_UP_ARROW: Key = 0x0000001b; +pub const EFI_KEY_ONE: Key = 0x0000001c; +pub const EFI_KEY_TWO: Key = 0x0000001d; +pub const EFI_KEY_THREE: Key = 0x0000001e; +pub const EFI_KEY_CAPS_LOCK: Key = 0x0000001f; +pub const EFI_KEY_C1: Key = 0x00000020; +pub const EFI_KEY_C2: Key = 0x00000021; +pub const EFI_KEY_C3: Key = 0x00000022; +pub const EFI_KEY_C4: Key = 0x00000023; +pub const EFI_KEY_C5: Key = 0x00000024; +pub const EFI_KEY_C6: Key = 0x00000025; +pub const EFI_KEY_C7: Key = 0x00000026; +pub const EFI_KEY_C8: Key = 0x00000027; +pub const EFI_KEY_C9: Key = 0x00000028; +pub const EFI_KEY_C10: Key = 0x00000029; +pub const EFI_KEY_C11: Key = 0x0000002a; +pub const EFI_KEY_C12: Key = 0x0000002b; +pub const EFI_KEY_FOUR: Key = 0x0000002c; +pub const EFI_KEY_FIVE: Key = 0x0000002d; +pub const EFI_KEY_SIX: Key = 0x0000002e; +pub const EFI_KEY_PLUS: Key = 0x0000002f; +pub const EFI_KEY_TAB: Key = 0x00000030; +pub const EFI_KEY_D1: Key = 0x00000031; +pub const EFI_KEY_D2: Key = 0x00000032; +pub const EFI_KEY_D3: Key = 0x00000033; +pub const EFI_KEY_D4: Key = 0x00000034; +pub const EFI_KEY_D5: Key = 0x00000035; +pub const EFI_KEY_D6: Key = 0x00000036; +pub const EFI_KEY_D7: Key = 0x00000037; +pub const EFI_KEY_D8: Key = 0x00000038; +pub const EFI_KEY_D9: Key = 0x00000039; +pub const EFI_KEY_D10: Key = 0x0000003a; +pub const EFI_KEY_D11: Key = 0x0000003b; +pub const EFI_KEY_D12: Key = 0x0000003c; +pub const EFI_KEY_D13: Key = 0x0000003d; +pub const EFI_KEY_DEL: Key = 0x0000003e; +pub const EFI_KEY_END: Key = 0x0000003f; +pub const EFI_KEY_PGDN: Key = 0x00000040; +pub const EFI_KEY_SEVEN: Key = 0x00000041; +pub const EFI_KEY_EIGHT: Key = 0x00000042; +pub const EFI_KEY_NINE: Key = 0x00000043; +pub const EFI_KEY_E0: Key = 0x00000044; +pub const EFI_KEY_E1: Key = 0x00000045; +pub const EFI_KEY_E2: Key = 0x00000046; +pub const EFI_KEY_E3: Key = 0x00000047; +pub const EFI_KEY_E4: Key = 0x00000048; +pub const EFI_KEY_E5: Key = 0x00000049; +pub const EFI_KEY_E6: Key = 0x0000004a; +pub const EFI_KEY_E7: Key = 0x0000004b; +pub const EFI_KEY_E8: Key = 0x0000004c; +pub const EFI_KEY_E9: Key = 0x0000004d; +pub const EFI_KEY_E10: Key = 0x0000004e; +pub const EFI_KEY_E11: Key = 0x0000004f; +pub const EFI_KEY_E12: Key = 0x00000050; +pub const EFI_KEY_BACK_SPACE: Key = 0x00000051; +pub const EFI_KEY_INS: Key = 0x00000052; +pub const EFI_KEY_HOME: Key = 0x00000053; +pub const EFI_KEY_PGUP: Key = 0x00000054; +pub const EFI_KEY_NLCK: Key = 0x00000055; +pub const EFI_KEY_SLASH: Key = 0x00000056; +pub const EFI_KEY_ASTERISK: Key = 0x00000057; +pub const EFI_KEY_MINUS: Key = 0x00000058; +pub const EFI_KEY_ESC: Key = 0x00000059; +pub const EFI_KEY_F1: Key = 0x0000005a; +pub const EFI_KEY_F2: Key = 0x0000005b; +pub const EFI_KEY_F3: Key = 0x0000005c; +pub const EFI_KEY_F4: Key = 0x0000005d; +pub const EFI_KEY_F5: Key = 0x0000005e; +pub const EFI_KEY_F6: Key = 0x0000005f; +pub const EFI_KEY_F7: Key = 0x00000060; +pub const EFI_KEY_F8: Key = 0x00000061; +pub const EFI_KEY_F9: Key = 0x00000062; +pub const EFI_KEY_F10: Key = 0x00000063; +pub const EFI_KEY_F11: Key = 0x00000064; +pub const EFI_KEY_F12: Key = 0x00000065; +pub const EFI_KEY_PRINT: Key = 0x00000066; +pub const EFI_KEY_SLCK: Key = 0x00000067; +pub const EFI_KEY_PAUSE: Key = 0x00000068; + +pub const NULL_MODIFIER: u16 = 0x0000; +pub const LEFT_CONTROL_MODIFIER: u16 = 0x0001; +pub const RIGHT_CONTROL_MODIFIER: u16 = 0x0002; +pub const LEFT_ALT_MODIFIER: u16 = 0x0003; +pub const RIGHT_ALT_MODIFIER: u16 = 0x0004; +pub const ALT_GR_MODIFIER: u16 = 0x0005; +pub const INSERT_MODIFIER: u16 = 0x0006; +pub const DELETE_MODIFIER: u16 = 0x0007; +pub const PAGE_DOWN_MODIFIER: u16 = 0x0008; +pub const PAGE_UP_MODIFIER: u16 = 0x0009; +pub const HOME_MODIFIER: u16 = 0x000A; +pub const END_MODIFIER: u16 = 0x000B; +pub const LEFT_SHIFT_MODIFIER: u16 = 0x000C; +pub const RIGHT_SHIFT_MODIFIER: u16 = 0x000D; +pub const CAPS_LOCK_MODIFIER: u16 = 0x000E; +pub const NUM_LOCK_MODIFIER: u16 = 0x000F; +pub const LEFT_ARROW_MODIFIER: u16 = 0x0010; +pub const RIGHT_ARROW_MODIFIER: u16 = 0x0011; +pub const DOWN_ARROW_MODIFIER: u16 = 0x0012; +pub const UP_ARROW_MODIFIER: u16 = 0x0013; +pub const NS_KEY_MODIFIER: u16 = 0x0014; +pub const NS_KEY_DEPENDENCY_MODIFIER: u16 = 0x0015; +pub const FUNCTION_KEY_ONE_MODIFIER: u16 = 0x0016; +pub const FUNCTION_KEY_TWO_MODIFIER: u16 = 0x0017; +pub const FUNCTION_KEY_THREE_MODIFIER: u16 = 0x0018; +pub const FUNCTION_KEY_FOUR_MODIFIER: u16 = 0x0019; +pub const FUNCTION_KEY_FIVE_MODIFIER: u16 = 0x001A; +pub const FUNCTION_KEY_SIX_MODIFIER: u16 = 0x001B; +pub const FUNCTION_KEY_SEVEN_MODIFIER: u16 = 0x001C; +pub const FUNCTION_KEY_EIGHT_MODIFIER: u16 = 0x001D; +pub const FUNCTION_KEY_NINE_MODIFIER: u16 = 0x001E; +pub const FUNCTION_KEY_TEN_MODIFIER: u16 = 0x001F; +pub const FUNCTION_KEY_ELEVEN_MODIFIER: u16 = 0x0020; +pub const FUNCTION_KEY_TWELVE_MODIFIER: u16 = 0x0021; +pub const PRINT_MODIFIER: u16 = 0x0022; +pub const SYS_REQUEST_MODIFIER: u16 = 0x0023; +pub const SCROLL_LOCK_MODIFIER: u16 = 0x0024; +pub const PAUSE_MODIFIER: u16 = 0x0025; +pub const BREAK_MODIFIER: u16 = 0x0026; +pub const LEFT_LOGO_MODIFIER: u16 = 0x0027; +pub const RIGHT_LOGO_MODIFIER: u16 = 0x0028; +pub const MENU_MODIFIER: u16 = 0x0029; + +pub type Notify = eficall! {fn( + u8, + *const crate::base::Guid, + *const crate::hii::PackageHeader, + crate::hii::Handle, + NotifyType, +) -> crate::base::Status}; + +pub type NotifyType = usize; + +pub const NOTIFY_NEW_PACK: NotifyType = 0x00000001; +pub const NOTIFY_REMOVE_PACK: NotifyType = 0x00000002; +pub const NOTIFY_EXPORT_PACK: NotifyType = 0x00000004; +pub const NOTIFY_ADD_PACK: NotifyType = 0x00000008; diff --git a/src/rust/vendor/r-efi/src/protocols/hii_font.rs b/src/rust/vendor/r-efi/src/protocols/hii_font.rs new file mode 100644 index 000000000..4ca7bf7b3 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/hii_font.rs @@ -0,0 +1,87 @@ +//! HII Font Protocol + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xe9ca4775, + 0x8657, + 0x47fc, + 0x97, + 0xe7, + &[0x7e, 0xd6, 0x5a, 0x08, 0x43, 0x24], +); + +pub type ProtocolStringToImage = eficall! {fn( + *const Protocol, + OutFlags, + String, + *const super::hii_font_ex::DisplayInfo, + *mut *mut super::hii_font_ex::ImageOutput, + usize, + usize, + *mut *mut RowInfo, + *mut usize, + *mut usize, +) -> crate::base::Status}; + +pub type ProtocolStringIdToImage = eficall! {fn( + *const Protocol, + OutFlags, + crate::hii::Handle, + crate::hii::StringId, + *const crate::base::Char8, + *const super::hii_font_ex::DisplayInfo, + *mut *mut super::hii_font_ex::ImageOutput, + usize, + usize, + *mut *mut RowInfo, + *mut usize, + *mut usize, +) -> crate::base::Status}; + +pub type ProtocolGetGlyph = eficall! {fn( + *const Protocol, + crate::base::Char16, + *const super::hii_font_ex::DisplayInfo, + *mut *mut super::hii_font_ex::ImageOutput, + *mut usize, +) -> crate::base::Status}; + +pub type ProtocolGetFontInfo = eficall! {fn( + *const Protocol, + *mut Handle, + *const super::hii_font_ex::DisplayInfo, + *mut *mut super::hii_font_ex::DisplayInfo, + String, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub string_to_image: ProtocolStringToImage, + pub string_id_to_image: ProtocolStringIdToImage, + pub get_glyph: ProtocolGetGlyph, + pub get_font_info: ProtocolGetFontInfo, +} + +pub type OutFlags = u32; + +pub const OUT_FLAG_CLIP: OutFlags = 0x00000001; +pub const OUT_FLAG_WRAP: OutFlags = 0x00000002; +pub const OUT_FLAG_CLIP_CLEAN_Y: OutFlags = 0x00000004; +pub const OUT_FLAG_CLIP_CLEAN_X: OutFlags = 0x00000008; +pub const OUT_FLAG_TRANSPARENT: OutFlags = 0x00000010; +pub const IGNORE_IF_NO_GLYPH: OutFlags = 0x00000020; +pub const IGNORE_LINE_BREAK: OutFlags = 0x00000040; +pub const DIRECT_TO_SCREEN: OutFlags = 0x00000080; + +pub type String = *mut crate::base::Char16; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct RowInfo { + pub start_index: usize, + pub end_index: usize, + pub line_height: usize, + pub line_width: usize, + pub baseline_offset: usize, +} + +pub type Handle = *mut core::ffi::c_void; diff --git a/src/rust/vendor/r-efi/src/protocols/hii_font_ex.rs b/src/rust/vendor/r-efi/src/protocols/hii_font_ex.rs new file mode 100644 index 000000000..92466986f --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/hii_font_ex.rs @@ -0,0 +1,107 @@ +//! HII Font Ex Protocol + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x849e6875, + 0xdb35, + 0x4df8, + 0xb4, + 0x1e, + &[0xc8, 0xf3, 0x37, 0x18, 0x07, 0x3f], +); + +pub type ProtocolStringToImageEx = eficall! {fn( + *const Protocol, + super::hii_font::OutFlags, + super::hii_font::String, + *const DisplayInfo, + *mut *mut ImageOutput, + usize, + usize, + *mut *mut super::hii_font::RowInfo, + *mut usize, + *mut usize, +) -> crate::base::Status}; + +pub type ProtocolStringIdToImageEx = eficall! {fn( + *const Protocol, + super::hii_font::OutFlags, + crate::hii::Handle, + crate::hii::StringId, + *const crate::base::Char8, + *const DisplayInfo, + *mut *mut ImageOutput, + usize, + usize, + *mut *mut super::hii_font::RowInfo, + *mut usize, + *mut usize, +) -> crate::base::Status}; + +pub type ProtocolGetGlyphEx = eficall! {fn( + *const Protocol, + crate::base::Char16, + *const DisplayInfo, + *mut *mut ImageOutput, + usize, +) -> crate::base::Status}; + +pub type ProtocolGetFontInfoEx = eficall! {fn( + *const Protocol, + *mut super::hii_font::Handle, + *const DisplayInfo, + *mut *mut DisplayInfo, + super::hii_font::String, +) -> crate::base::Status}; + +pub type ProtocolGetGlyphInfo = eficall! {fn( + *const Protocol, + crate::base::Char16, + *const DisplayInfo, + *mut crate::hii::GlyphInfo, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub string_to_image_ex: ProtocolStringToImageEx, + pub string_id_to_image_ex: ProtocolStringIdToImageEx, + pub get_glyph_ex: ProtocolGetGlyphEx, + pub get_font_info_ex: ProtocolGetFontInfoEx, + pub get_glyph_info: ProtocolGetGlyphInfo, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct DisplayInfo { + pub foreground_color: super::graphics_output::BltPixel, + pub background_color: super::graphics_output::BltPixel, + pub font_info_mask: InfoMask, + pub font_info: super::hii_string::Info, +} + +pub type InfoMask = u32; + +pub const INFO_SYS_FONT: InfoMask = 0x00000001; +pub const INFO_SYS_SIZE: InfoMask = 0x00000002; +pub const INFO_SYS_STYLE: InfoMask = 0x00000004; +pub const INFO_SYS_FORE_COLOR: InfoMask = 0x00000010; +pub const INFO_SYS_BACK_COLOR: InfoMask = 0x00000020; +pub const INFO_RESIZE: InfoMask = 0x00001000; +pub const INFO_RESTYLE: InfoMask = 0x00002000; +pub const INFO_ANY_FONT: InfoMask = 0x00010000; +pub const INFO_ANY_SIZE: InfoMask = 0x00020000; +pub const INFO_ANY_STYLE: InfoMask = 0x00040000; + +#[repr(C)] +#[derive(Clone, Copy)] +pub union ImageOutputImage { + pub bitmap: *mut super::graphics_output::BltPixel, + pub screen: *mut super::graphics_output::Protocol, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct ImageOutput { + pub width: u16, + pub height: u16, + pub image: ImageOutputImage, +} diff --git a/src/rust/vendor/r-efi/src/protocols/hii_package_list.rs b/src/rust/vendor/r-efi/src/protocols/hii_package_list.rs new file mode 100644 index 000000000..3a9c6fdbd --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/hii_package_list.rs @@ -0,0 +1,14 @@ +//! Human Interface Infrastructure (HII) Package List Protocol +//! +//! Installed onto an image handle during load if the image contains a custom PE/COFF +//! resource with type 'HII'. The protocol's interface pointer points to the HII package +//! list which is contained in the resource's data. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x6a1ee763, + 0xd47a, + 0x43b4, + 0xaa, + 0xbe, + &[0xef, 0x1d, 0xe2, 0xab, 0x56, 0xfc], +); diff --git a/src/rust/vendor/r-efi/src/protocols/hii_string.rs b/src/rust/vendor/r-efi/src/protocols/hii_string.rs new file mode 100644 index 000000000..c7a1d6e33 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/hii_string.rs @@ -0,0 +1,71 @@ +//! HII String Protocol + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xfd96974, + 0x23aa, + 0x4cdc, + 0xb9, + 0xcb, + &[0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a], +); + +pub type ProtocolNewString = eficall! {fn( + *const Protocol, + crate::hii::Handle, + *mut crate::hii::StringId, + *const crate::base::Char8, + *const crate::base::Char16, + super::hii_font::String, + *const Info, +) -> crate::base::Status}; + +pub type ProtocolGetString = eficall! {fn( + *const Protocol, + *const crate::base::Char8, + crate::hii::Handle, + crate::hii::StringId, + super::hii_font::String, + *mut usize, + *mut *mut Info, +) -> crate::base::Status}; + +pub type ProtocolSetString = eficall! {fn( + *const Protocol, + crate::hii::Handle, + crate::hii::StringId, + *const crate::base::Char8, + super::hii_font::String, + *const Info, +) -> crate::base::Status}; + +pub type ProtocolGetLanguages = eficall! {fn( + *const Protocol, + crate::hii::Handle, + *mut crate::base::Char8, + *mut usize, +) -> crate::base::Status}; + +pub type ProtocolGetSecondaryLanguages = eficall! {fn( + *const Protocol, + crate::hii::Handle, + *const crate::base::Char8, + *mut crate::base::Char8, + *mut usize, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub new_string: ProtocolNewString, + pub get_string: ProtocolGetString, + pub set_string: ProtocolSetString, + pub get_languages: ProtocolGetLanguages, + pub get_secondary_languages: ProtocolGetSecondaryLanguages, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Info { + pub font_style: crate::hii::FontStyle, + pub font_size: u16, + pub font_name: [crate::base::Char16; N], +} diff --git a/src/rust/vendor/r-efi/src/protocols/ip4.rs b/src/rust/vendor/r-efi/src/protocols/ip4.rs new file mode 100644 index 000000000..1a57b5c99 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/ip4.rs @@ -0,0 +1,202 @@ +//! IPv4 Protocol +//! +//! It implements a simple packet-oriented interface that can be used by +//! drivers, daemons, and applications to transmit and receive network packets. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x41d94cd2, + 0x35b6, + 0x455a, + 0x82, + 0x58, + &[0xd4, 0xe5, 0x13, 0x34, 0xaa, 0xdd], +); + +pub const SERVICE_BINDING_PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xc51711e7, + 0xb4bf, + 0x404a, + 0xbf, + 0xb8, + &[0x0a, 0x04, 0x8e, 0xf1, 0xff, 0xe4], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ConfigData { + pub default_protocol: u8, + pub accept_any_protocol: crate::base::Boolean, + pub accept_icmp_errors: crate::base::Boolean, + pub accept_broadcast: crate::base::Boolean, + pub accept_promiscuous: crate::base::Boolean, + pub use_default_address: crate::base::Boolean, + pub station_address: crate::base::Ipv4Address, + pub subnet_mask: crate::base::Ipv4Address, + pub type_of_service: u8, + pub time_to_live: u8, + pub do_not_fragment: crate::base::Boolean, + pub raw_data: crate::base::Boolean, + pub receive_timeout: u32, + pub transmit_timeout: u32, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct RouteTable { + pub subnet_address: crate::base::Ipv4Address, + pub subnet_mask: crate::base::Ipv4Address, + pub gateway_address: crate::base::Ipv4Address, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IcmpType { + pub r#type: u8, + pub code: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ModeData { + pub is_started: crate::base::Boolean, + pub max_packet_size: u32, + pub config_data: ConfigData, + pub is_configured: crate::base::Boolean, + pub group_count: u32, + pub group_table: *mut crate::base::Ipv4Address, + pub route_count: u32, + pub route_table: *mut RouteTable, + pub icmp_type_count: u32, + pub icmp_type_list: *mut IcmpType, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct CompletionToken { + pub event: crate::base::Event, + pub status: crate::base::Status, + pub packet: CompletionTokenPacket, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub union CompletionTokenPacket { + pub rx_data: *mut ReceiveData, + pub tx_data: *mut TransmitData, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ReceiveData { + pub time_stamp: crate::system::Time, + pub recycle_signal: crate::base::Event, + pub header_length: u32, + pub header: *mut Header, + pub options_length: u32, + pub options: *mut core::ffi::c_void, + pub data_length: u32, + pub fragment_count: u32, + pub fragment_table: [FragmentData; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct TransmitData { + pub destination_address: crate::base::Ipv4Address, + pub override_data: *mut OverrideData, + pub options_length: u32, + pub options_buffer: *mut core::ffi::c_void, + pub total_data_length: u32, + pub fragment_count: u32, + pub fragment_table: [FragmentData; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Header { + pub header_length_and_version: u8, + pub type_of_service: u8, + pub total_length: u16, + pub identification: u16, + pub fragmentation: u16, + pub time_to_live: u8, + pub protocol: u8, + pub checksum: u16, + pub source_address: crate::base::Ipv4Address, + pub destination_address: crate::base::Ipv4Address, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct FragmentData { + pub fragment_length: u32, + pub fragment_buffer: *mut core::ffi::c_void, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct OverrideData { + pub source_address: crate::base::Ipv4Address, + pub gateway_address: crate::base::Ipv4Address, + pub protocol: u8, + pub type_of_service: u8, + pub time_to_live: u8, + pub do_not_fragment: crate::base::Boolean, +} + +pub type ProtocolGetModeData = eficall! {fn( + *mut Protocol, + *mut ModeData, + *mut crate::protocols::managed_network::ConfigData, + *mut crate::protocols::simple_network::Mode, +) -> crate::base::Status}; + +pub type ProtocolConfigure = eficall! {fn( + *mut Protocol, + *mut ConfigData, +) -> crate::base::Status}; + +pub type ProtocolGroups = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut crate::base::Ipv4Address, +) -> crate::base::Status}; + +pub type ProtocolRoutes = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut crate::base::Ipv4Address, + *mut crate::base::Ipv4Address, + *mut crate::base::Ipv4Address, +) -> crate::base::Status}; + +pub type ProtocolTransmit = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolReceive = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolCancel = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolPoll = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub get_mode_data: ProtocolGetModeData, + pub configure: ProtocolConfigure, + pub groups: ProtocolGroups, + pub routes: ProtocolRoutes, + pub transmit: ProtocolTransmit, + pub receive: ProtocolReceive, + pub cancel: ProtocolCancel, + pub poll: ProtocolPoll, +} diff --git a/src/rust/vendor/r-efi/src/protocols/ip6.rs b/src/rust/vendor/r-efi/src/protocols/ip6.rs new file mode 100644 index 000000000..ad03e8f1f --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/ip6.rs @@ -0,0 +1,264 @@ +//! IPv6 Protocol +//! +//! It implements a simple packet-oriented interface that can be used by +//! drivers, daemons, and applications to transmit and receive network packets. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x2c8759d5, + 0x5c2d, + 0x66ef, + 0x92, + 0x5f, + &[0xb6, 0x6c, 0x10, 0x19, 0x57, 0xe2], +); + +pub const SERVICE_BINDING_PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xec835dd3, + 0xfe0f, + 0x617b, + 0xa6, + 0x21, + &[0xb3, 0x50, 0xc3, 0xe1, 0x33, 0x88], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ModeData { + pub is_started: crate::base::Boolean, + pub max_packet_size: u32, + pub config_data: ConfigData, + pub is_configured: crate::base::Boolean, + pub address_count: u32, + pub address_list: *mut AddressInfo, + pub group_count: u32, + pub group_table: *mut crate::base::Ipv6Address, + pub route_count: u32, + pub route_table: *mut RouteTable, + pub neighbor_count: u32, + pub neighbor_cache: *mut NeighborCache, + pub prefix_count: u32, + pub prefix_table: *mut AddressInfo, + pub icmp_type_count: u32, + pub icmp_type_list: *mut IcmpType, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ConfigData { + pub default_protocol: u8, + pub accept_any_protocol: crate::base::Boolean, + pub accept_icmp_errors: crate::base::Boolean, + pub accept_promiscuous: crate::base::Boolean, + pub destination_address: crate::base::Ipv6Address, + pub station_address: crate::base::Ipv6Address, + pub traffic_class: u8, + pub hop_limit: u8, + pub flow_lable: u32, + pub receive_timeout: u32, + pub transmit_timeout: u32, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct AddressInfo { + pub address: crate::base::Ipv6Address, + pub prefix_length: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct RouteTable { + pub gateway: crate::base::Ipv6Address, + pub destination: crate::base::Ipv6Address, + pub prefix_length: u8, +} + +pub type NeighborState = u32; + +pub const NEIGHBOR_IN_COMPLETE: NeighborState = 0x00000000; +pub const NEIGHBOR_REACHABLE: NeighborState = 0x00000001; +pub const NEIGHBOR_STATE: NeighborState = 0x00000002; +pub const NEIGHBOR_DELAY: NeighborState = 0x00000003; +pub const NEIGHBOR_PROBE: NeighborState = 0x00000004; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct NeighborCache { + pub neighbor: crate::base::Ipv6Address, + pub link_address: crate::base::MacAddress, + pub state: NeighborState, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct IcmpType { + pub r#type: u8, + pub code: u8, +} + +pub const ICMP_V6_DEST_UNREACHABLE: u8 = 0x01; +pub const ICMP_V6_PACKET_TOO_BIG: u8 = 0x02; +pub const ICMP_V6_TIME_EXCEEDED: u8 = 0x03; +pub const ICMP_V6_PARAMETER_PROBLEM: u8 = 0x04; + +pub const ICMP_V6_ECHO_REQUEST: u8 = 0x80; +pub const ICMP_V6_ECHO_REPLY: u8 = 0x81; +pub const ICMP_V6_LISTENER_QUERY: u8 = 0x82; +pub const ICMP_V6_LISTENER_REPORT: u8 = 0x83; +pub const ICMP_V6_LISTENER_DONE: u8 = 0x84; +pub const ICMP_V6_ROUTER_SOLICIT: u8 = 0x85; +pub const ICMP_V6_ROUTER_ADVERTISE: u8 = 0x86; +pub const ICMP_V6_NEIGHBOR_SOLICIT: u8 = 0x87; +pub const ICMP_V6_NEIGHBOR_ADVERTISE: u8 = 0x88; +pub const ICMP_V6_REDIRECT: u8 = 0x89; +pub const ICMP_V6_LISTENER_REPORT_2: u8 = 0x8f; + +pub const ICMP_V6_NO_ROUTE_TO_DEST: u8 = 0x00; +pub const ICMP_V6_COMM_PROHIBITED: u8 = 0x01; +pub const ICMP_V6_BEYOND_SCOPE: u8 = 0x02; +pub const ICMP_V6_ADDR_UNREACHABLE: u8 = 0x03; +pub const ICMP_V6_PORT_UNREACHABLE: u8 = 0x04; +pub const ICMP_V6_SOURCE_ADDR_FAILED: u8 = 0x05; +pub const ICMP_V6_ROUTE_REJECTED: u8 = 0x06; + +pub const ICMP_V6_TIMEOUT_HOP_LIMIT: u8 = 0x00; +pub const ICMP_V6_TIMEOUT_REASSEMBLE: u8 = 0x01; + +pub const ICMP_V6_ERRONEOUS_HEADER: u8 = 0x00; +pub const ICMP_V6_UNRECOGNIZE_NEXT_HDR: u8 = 0x01; +pub const ICMP_V6_UNRECOGNIZE_OPTION: u8 = 0x02; + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct CompletionToken { + pub event: crate::base::Event, + pub status: crate::base::Status, + pub packet: CompletionTokenPacket, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub union CompletionTokenPacket { + pub rx_data: *mut ReceiveData, + pub tx_data: *mut TransmitData, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ReceiveData { + pub time_stamp: crate::system::Time, + pub recycle_signal: crate::base::Event, + pub header_length: u32, + pub header: *mut Header, + pub data_length: u32, + pub fragment_count: u32, + pub fragment_table: [FragmentData; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Header { + pub traffic_class_h_version: u8, + pub flow_label_h_traffic_class_l: u8, + pub flow_label_l: u16, + pub payload_length: u16, + pub next_header: u8, + pub hop_limit: u8, + pub source_address: crate::base::Ipv6Address, + pub destination_address: crate::base::Ipv6Address, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct FragmentData { + pub fragment_length: u32, + pub fragment_buffer: *mut core::ffi::c_void, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct TransmitData { + pub destination_address: *mut crate::base::Ipv6Address, + pub override_data: *mut OverrideData, + pub ext_hdrs_length: u32, + pub ext_hdrs: *mut core::ffi::c_void, + pub next_header: u8, + pub data_length: u32, + pub fragment_count: u32, + pub fragment_table: [FragmentData; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct OverrideData { + pub protocol: u8, + pub hop_limit: u8, + pub flow_label: u32, +} + +pub type ProtocolGetModeData = eficall! {fn( + *mut Protocol, + *mut ModeData, + *mut crate::protocols::managed_network::ConfigData, + *mut crate::protocols::simple_network::Mode, +) -> crate::base::Status}; + +pub type ProtocolConfigure = eficall! {fn( + *mut Protocol, + *mut ConfigData, +) -> crate::base::Status}; + +pub type ProtocolGroups = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut crate::base::Ipv6Address, +) -> crate::base::Status}; + +pub type ProtocolRoutes = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut crate::base::Ipv6Address, + u8, + *mut crate::base::Ipv6Address, +) -> crate::base::Status}; + +pub type ProtocolNeighbors = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut crate::base::Ipv6Address, + *mut crate::base::MacAddress, + u32, + crate::base::Boolean, +) -> crate::base::Status}; + +pub type ProtocolTransmit = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolReceive = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolCancel = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolPoll = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub get_mode_data: ProtocolGetModeData, + pub configure: ProtocolConfigure, + pub groups: ProtocolGroups, + pub routes: ProtocolRoutes, + pub neighbors: ProtocolNeighbors, + pub transmit: ProtocolTransmit, + pub receive: ProtocolReceive, + pub cancel: ProtocolCancel, + pub poll: ProtocolPoll, +} diff --git a/src/rust/vendor/r-efi/src/protocols/load_file.rs b/src/rust/vendor/r-efi/src/protocols/load_file.rs new file mode 100644 index 000000000..fc70f1fa1 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/load_file.rs @@ -0,0 +1,26 @@ +//! Load File Protocol +//! +//! The Load File protocol is used to obtain files, that are primarily boot +//! options, from arbitrary devices. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x56ec3091, + 0x954c, + 0x11d2, + 0x8e, + 0x3f, + &[0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b], +); + +pub type ProtocolLoadFile = eficall! {fn( + *mut Protocol, + *mut crate::protocols::device_path::Protocol, + crate::base::Boolean, + *mut usize, + *mut core::ffi::c_void +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub load_file: ProtocolLoadFile, +} diff --git a/src/rust/vendor/r-efi/src/protocols/load_file2.rs b/src/rust/vendor/r-efi/src/protocols/load_file2.rs new file mode 100644 index 000000000..0b7c31f47 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/load_file2.rs @@ -0,0 +1,15 @@ +//! Load File 2 Protocol +//! +//! The Load File 2 protocol is used to obtain files from arbitrary devices +//! that are not boot options. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x4006c0c1, + 0xfcb3, + 0x403e, + 0x99, + 0x6d, + &[0x4a, 0x6c, 0x87, 0x24, 0xe0, 0x6d], +); + +pub type Protocol = crate::protocols::load_file::Protocol; diff --git a/src/rust/vendor/r-efi/src/protocols/loaded_image.rs b/src/rust/vendor/r-efi/src/protocols/loaded_image.rs new file mode 100644 index 000000000..5005d76a2 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/loaded_image.rs @@ -0,0 +1,39 @@ +//! Loaded Image Protocol +//! +//! The loaded image protocol defines how to obtain information about a loaded image from an +//! image handle. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x5b1b31a1, + 0x9562, + 0x11d2, + 0x8e, + 0x3f, + &[0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b], +); + +pub const REVISION: u32 = 0x00001000u32; + +pub type ProtocolUnload = eficall! {fn( + crate::base::Handle, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub revision: u32, + pub parent_handle: crate::base::Handle, + pub system_table: *mut crate::system::SystemTable, + + pub device_handle: crate::base::Handle, + pub file_path: *mut crate::protocols::device_path::Protocol, + pub reserved: *mut core::ffi::c_void, + + pub load_options_size: u32, + pub load_options: *mut core::ffi::c_void, + + pub image_base: *mut core::ffi::c_void, + pub image_size: u64, + pub image_code_type: crate::system::MemoryType, + pub image_data_type: crate::system::MemoryType, + pub unload: ProtocolUnload, +} diff --git a/src/rust/vendor/r-efi/src/protocols/loaded_image_device_path.rs b/src/rust/vendor/r-efi/src/protocols/loaded_image_device_path.rs new file mode 100644 index 000000000..55067317f --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/loaded_image_device_path.rs @@ -0,0 +1,13 @@ +//! Loaded Image Device Path Protocol +//! +//! The loaded image device path protocol provides the device path of a loaded image, using the +//! protocol structures of the device-path and loaded-image protocols. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xbc62157e, + 0x3e33, + 0x4fec, + 0x99, + 0x20, + &[0x2d, 0x3b, 0x36, 0xd7, 0x50, 0xdf], +); diff --git a/src/rust/vendor/r-efi/src/protocols/managed_network.rs b/src/rust/vendor/r-efi/src/protocols/managed_network.rs new file mode 100644 index 000000000..12d516b4b --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/managed_network.rs @@ -0,0 +1,147 @@ +//! Managed Network Protocol +//! +//! It provides raw (unformatted) asynchronous network packet I/O services. +//! These services make it possible for multiple-event-driven drivers and +//! applications to access and use the system network interfaces at the same +//! time. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x7ab33a91, + 0xace5, + 0x4326, + 0xb5, + 0x72, + &[0xe7, 0xee, 0x33, 0xd3, 0x9f, 0x16], +); + +pub const SERVICE_BINDING_PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xf36ff770, + 0xa7e1, + 0x42cf, + 0x9e, + 0xd2, + &[0x56, 0xf0, 0xf2, 0x71, 0xf4, 0x4c], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ConfigData { + pub received_queue_timeout_value: u32, + pub transmit_queue_timeout_value: u32, + pub protocol_type_filter: u16, + pub enable_unicast_receive: crate::base::Boolean, + pub enable_multicast_receive: crate::base::Boolean, + pub enable_broadcast_receive: crate::base::Boolean, + pub enable_promiscuous_receive: crate::base::Boolean, + pub flush_queues_on_reset: crate::base::Boolean, + pub enable_receive_timestamps: crate::base::Boolean, + pub disable_background_polling: crate::base::Boolean, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct CompletionToken { + pub event: crate::base::Event, + pub status: crate::base::Status, + pub packet: CompletionTokenPacket, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub union CompletionTokenPacket { + pub rx_data: *mut ReceiveData, + pub tx_data: *mut TransmitData, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ReceiveData { + pub timestamp: crate::system::Time, + pub recycle_event: crate::base::Event, + pub packet_length: u32, + pub header_length: u32, + pub address_length: u32, + pub data_length: u32, + pub broadcast_flag: crate::base::Boolean, + pub multicast_flag: crate::base::Boolean, + pub promiscuous_flag: crate::base::Boolean, + pub protocol_type: u16, + pub destination_address: *mut core::ffi::c_void, + pub source_address: *mut core::ffi::c_void, + pub media_header: *mut core::ffi::c_void, + pub packet_data: *mut core::ffi::c_void, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct TransmitData { + pub destination_address: *mut crate::base::MacAddress, + pub source_address: *mut crate::base::MacAddress, + pub protocol_type: u16, + pub data_length: u32, + pub header_length: u16, + pub fragment_count: u16, + pub fragment_table: [FragmentData; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct FragmentData { + pub fragment_length: u32, + pub fragment_buffer: *mut core::ffi::c_void, +} + +pub type ProtocolGetModeData = eficall! {fn( + *mut Protocol, + *mut ConfigData, + *mut crate::protocols::simple_network::Mode, +) -> crate::base::Status}; + +pub type ProtocolConfigure = eficall! {fn( + *mut Protocol, + *mut ConfigData, +) -> crate::base::Status}; + +pub type ProtocolMcastIpToMac = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut crate::base::IpAddress, + *mut crate::base::MacAddress, +) -> crate::base::Status}; + +pub type ProtocolGroups = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut crate::base::MacAddress, +) -> crate::base::Status}; + +pub type ProtocolTransmit = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolReceive = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolCancel = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolPoll = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub get_mode_data: ProtocolGetModeData, + pub configure: ProtocolConfigure, + pub mcast_ip_to_mac: ProtocolMcastIpToMac, + pub groups: ProtocolGroups, + pub transmit: ProtocolTransmit, + pub receive: ProtocolReceive, + pub cancel: ProtocolCancel, + pub poll: ProtocolPoll, +} diff --git a/src/rust/vendor/r-efi/src/protocols/mp_services.rs b/src/rust/vendor/r-efi/src/protocols/mp_services.rs new file mode 100644 index 000000000..6163b4c51 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/mp_services.rs @@ -0,0 +1,121 @@ +//! Multi-Processor Services Protocol +//! +//! This Protocol is defined in the UEFI Platform Integration Specification, +//! Section 13.4. +//! +//! This provides a generalized way of performing the following tasks: +//! - Retrieving information of multi-processor environments. +//! - Dispatching user-provided function to APs. +//! - Maintain MP-related processor status. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x3fdda605, + 0xa76e, + 0x4f46, + 0xad, + 0x29, + &[0x12, 0xf4, 0x53, 0x1b, 0x3d, 0x08], +); + +pub const PROCESSOR_AS_BSP_BIT: u32 = 0x00000001; +pub const PROCESSOR_ENABLED_BIT: u32 = 0x00000002; +pub const PROCESSOR_HEALTH_STATUS_BIT: u32 = 0x00000004; + +pub const END_OF_CPU_LIST: usize = usize::MAX; + +#[repr(C)] +#[derive(Debug, Clone, Copy)] +pub struct CpuPhysicalLocation { + pub package: u32, + pub core: u32, + pub thread: u32, +} + +#[repr(C)] +#[derive(Debug, Clone, Copy)] +pub struct CpuPhysicalLocation2 { + pub package: u32, + pub module: u32, + pub tile: u32, + pub die: u32, + pub core: u32, + pub thread: u32, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub union ExtendedProcessorInformation { + pub location2: CpuPhysicalLocation2, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct ProcessorInformation { + pub processor_id: u64, + pub status_flag: u32, + pub location: CpuPhysicalLocation, + pub extended_information: ExtendedProcessorInformation, +} + +pub type ApProcedure = eficall! {fn(*mut core::ffi::c_void)}; + +pub type GetNumberOfProcessors = eficall! {fn( + *mut Protocol, + *mut usize, + *mut usize, +) -> crate::base::Status}; + +pub type GetProcessorInfo = eficall! {fn( + *mut Protocol, + usize, + *mut ProcessorInformation, +) -> crate::base::Status}; + +pub type StartupAllAps = eficall! {fn( + *mut Protocol, + ApProcedure, + crate::base::Boolean, + crate::base::Event, + usize, + *mut core::ffi::c_void, + *mut *mut usize, +) -> crate::base::Status}; + +pub type StartupThisAp = eficall! {fn( + *mut Protocol, + ApProcedure, + usize, + crate::base::Event, + usize, + *mut core::ffi::c_void, + *mut crate::base::Boolean, +) -> crate::base::Status}; + +pub type SwitchBsp = eficall! {fn( + *mut Protocol, + usize, + crate::base::Boolean, +) -> crate::base::Status}; + +pub type EnableDisableAp = eficall! {fn( + *mut Protocol, + usize, + crate::base::Boolean, + *mut u32, +) -> crate::base::Status}; + +pub type WhoAmI = eficall! {fn( + *mut Protocol, + *mut usize, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub get_number_of_processors: GetNumberOfProcessors, + pub get_processor_info: GetProcessorInfo, + pub startup_all_aps: StartupAllAps, + pub startup_this_ap: StartupThisAp, + pub switch_bsp: SwitchBsp, + pub enable_disable_ap: EnableDisableAp, + pub who_am_i: WhoAmI, +} diff --git a/src/rust/vendor/r-efi/src/protocols/pci_io.rs b/src/rust/vendor/r-efi/src/protocols/pci_io.rs new file mode 100644 index 000000000..68787d1a1 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/pci_io.rs @@ -0,0 +1,203 @@ +//! PCI I/O Protocol +//! +//! Used by code, typically drivers, running in the EFI boot services +//! environment to access memory and I/O on a PCI controller. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x4cf5b200, + 0x68b8, + 0x4ca5, + 0x9e, + 0xec, + &[0xb2, 0x3e, 0x3f, 0x50, 0x02, 0x9a], +); + +pub type Width = u32; + +pub const WIDTH_UINT8: Width = 0x00000000; +pub const WIDTH_UINT16: Width = 0x00000001; +pub const WIDTH_UINT32: Width = 0x00000002; +pub const WIDTH_UINT64: Width = 0x00000003; +pub const WIDTH_FIFO_UINT8: Width = 0x00000004; +pub const WIDTH_FIFO_UINT16: Width = 0x00000005; +pub const WIDTH_FIFO_UINT32: Width = 0x00000006; +pub const WIDTH_FIFO_UINT64: Width = 0x00000007; +pub const WIDTH_FILL_UINT8: Width = 0x00000008; +pub const WIDTH_FILL_UINT16: Width = 0x00000009; +pub const WIDTH_FILL_UINT32: Width = 0x0000000a; +pub const WIDTH_FILL_UINT64: Width = 0x0000000b; +pub const WIDTH_MAXIMUM: Width = 0x0000000c; + +pub type Operation = u32; + +pub const OPERATION_BUS_MASTER_READ: Operation = 0x00000000; +pub const OPERATION_BUS_MASTER_WRITE: Operation = 0x00000001; +pub const OPERATION_BUS_MASTER_COMMON_BUFFER: Operation = 0x00000002; +pub const OPERATION_MAXIMUM: Operation = 0x00000003; + +pub type Attribute = u64; + +pub const ATTRIBUTE_ISA_MOTHERBOARD_IO: Attribute = 0x00000001; +pub const ATTRIBUTE_ISA_IO: Attribute = 0x00000002; +pub const ATTRIBUTE_VGA_PALETTE_IO: Attribute = 0x00000004; +pub const ATTRIBUTE_VGA_MEMORY: Attribute = 0x00000008; +pub const ATTRIBUTE_VGA_IO: Attribute = 0x00000010; +pub const ATTRIBUTE_IDE_PRIMARY_IO: Attribute = 0x00000020; +pub const ATTRIBUTE_IDE_SECONDARY_IO: Attribute = 0x00000040; +pub const ATTRIBUTE_MEMORY_WRITE_COMBINE: Attribute = 0x00000080; +pub const ATTRIBUTE_IO: Attribute = 0x00000100; +pub const ATTRIBUTE_MEMORY: Attribute = 0x00000200; +pub const ATTRIBUTE_BUS_MASTER: Attribute = 0x00000400; +pub const ATTRIBUTE_MEMORY_CACHED: Attribute = 0x00000800; +pub const ATTRIBUTE_MEMORY_DISABLE: Attribute = 0x00001000; +pub const ATTRIBUTE_EMBEDDED_DEVICE: Attribute = 0x00002000; +pub const ATTRIBUTE_EMBEDDED_ROM: Attribute = 0x00004000; +pub const ATTRIBUTE_DUAL_ADDRESS_CYCLE: Attribute = 0x00008000; +pub const ATTRIBUTE_ISA_IO_16: Attribute = 0x00010000; +pub const ATTRIBUTE_VGA_PALETTE_IO_16: Attribute = 0x00020000; +pub const ATTRIBUTE_VGA_IO_16: Attribute = 0x00040000; + +pub type AttributeOperation = u32; + +pub const ATTRIBUTE_OPERATION_GET: AttributeOperation = 0x00000000; +pub const ATTRIBUTE_OPERATION_SET: AttributeOperation = 0x00000001; +pub const ATTRIBUTE_OPERATION_ENABLE: AttributeOperation = 0x00000002; +pub const ATTRIBUTE_OPERATION_DISABLE: AttributeOperation = 0x00000003; +pub const ATTRIBUTE_OPERATION_SUPPORTED: AttributeOperation = 0x00000004; +pub const ATTRIBUTE_OPERATION_MAXIMUM: AttributeOperation = 0x00000005; + +pub const PASS_THROUGH_BAR: u8 = 0xff; + +pub type ProtocolPollIoMem = eficall! {fn( + *mut Protocol, + Width, + u8, + u64, + u64, + u64, + u64, + *mut u64, +) -> crate::base::Status}; + +pub type ProtocolIoMem = eficall! {fn( + *mut Protocol, + Width, + u8, + u64, + usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolConfig = eficall! {fn( + *mut Protocol, + Width, + u32, + usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolCopyMem = eficall! {fn( + *mut Protocol, + Width, + u8, + u64, + u8, + u64, + usize, +) -> crate::base::Status}; + +pub type ProtocolMap = eficall! {fn( + *mut Protocol, + Operation, + *mut core::ffi::c_void, + *mut usize, + *mut crate::base::PhysicalAddress, + *mut *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolUnmap = eficall! {fn( + *mut Protocol, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolAllocateBuffer = eficall! {fn( + *mut Protocol, + crate::system::AllocateType, + crate::system::MemoryType, + usize, + *mut *mut core::ffi::c_void, + Attribute, +) -> crate::base::Status}; + +pub type ProtocolFreeBuffer = eficall! {fn( + *mut Protocol, + usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolFlush = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +pub type ProtocolGetLocation = eficall! {fn( + *mut Protocol, + *mut usize, + *mut usize, + *mut usize, + *mut usize, +) -> crate::base::Status}; + +pub type ProtocolAttributes = eficall! {fn( + *mut Protocol, + AttributeOperation, + Attribute, + *mut Attribute, +) -> crate::base::Status}; + +pub type ProtocolGetBarAttributes = eficall! {fn( + *mut Protocol, + u8, + *mut Attribute, + *mut *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolSetBarAttributes = eficall! {fn( + *mut Protocol, + Attribute, + u8, + *mut u64, + *mut u64, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Access { + pub read: ProtocolIoMem, + pub write: ProtocolIoMem, +} + +#[repr(C)] +pub struct ConfigAccess { + pub read: ProtocolConfig, + pub write: ProtocolConfig, +} + +#[repr(C)] +pub struct Protocol { + pub poll_mem: ProtocolPollIoMem, + pub poll_io: ProtocolPollIoMem, + pub mem: Access, + pub io: Access, + pub pci: ConfigAccess, + pub copy_mem: ProtocolCopyMem, + pub map: ProtocolMap, + pub unmap: ProtocolUnmap, + pub allocate_buffer: ProtocolAllocateBuffer, + pub free_buffer: ProtocolFreeBuffer, + pub flush: ProtocolFlush, + pub get_location: ProtocolGetLocation, + pub attributes: ProtocolAttributes, + pub get_bar_attributes: ProtocolGetBarAttributes, + pub set_bar_attributes: ProtocolSetBarAttributes, + pub rom_size: u64, + pub rom_image: *mut core::ffi::c_void, +} diff --git a/src/rust/vendor/r-efi/src/protocols/platform_driver_override.rs b/src/rust/vendor/r-efi/src/protocols/platform_driver_override.rs new file mode 100644 index 000000000..30ceb8d33 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/platform_driver_override.rs @@ -0,0 +1,46 @@ +//! Platform Driver Override Protocol +//! +//! This protocol matches one or more drivers to a controller. A platform driver +//! produces this protocol, and it is installed on a separate handle. This +//! protocol is used by the `EFI_BOOT_SERVICES.ConnectController()` boot service +//! to select the best driver for a controller. All of the drivers returned by +//! this protocol have a higher precedence than drivers found from an EFI Bus +//! Specific Driver Override Protocol or drivers found from the general UEFI +//! driver binding search algorithm. If more than one driver is returned by this +//! protocol, then the drivers are returned in order from highest precedence to +//! lowest precedence. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x6b30c738, + 0xa391, + 0x11d4, + 0x9a, + 0x3b, + &[0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d], +); + +pub type ProtocolGetDriver = eficall! {fn( + *mut Protocol, + crate::base::Handle, + *mut crate::base::Handle, +) -> crate::base::Status}; + +pub type ProtocolGetDriverPath = eficall! {fn( + *mut Protocol, + crate::base::Handle, + *mut *mut crate::protocols::device_path::Protocol +) -> crate::base::Status}; + +pub type ProtocolDriverLoaded = eficall! {fn( + *mut Protocol, + crate::base::Handle, + *mut crate::protocols::device_path::Protocol, + crate::base::Handle, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub get_driver: ProtocolGetDriver, + pub get_driver_path: ProtocolGetDriverPath, + pub driver_loaded: ProtocolDriverLoaded, +} diff --git a/src/rust/vendor/r-efi/src/protocols/rng.rs b/src/rust/vendor/r-efi/src/protocols/rng.rs new file mode 100644 index 000000000..92eb01375 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/rng.rs @@ -0,0 +1,83 @@ +//! Random Number Generator Protocol +//! +//! This protocol is used to provide random numbers for use in applications, or +//! entropy for seeding other random number generators. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x3152bca5, + 0xeade, + 0x433d, + 0x86, + 0x2e, + &[0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44], +); + +pub type Algorithm = crate::base::Guid; + +pub const ALGORITHM_SP800_90_HASH_256_GUID: Algorithm = crate::base::Guid::from_fields( + 0xa7af67cb, + 0x603b, + 0x4d42, + 0xba, + 0x21, + &[0x70, 0xbf, 0xb6, 0x29, 0x3f, 0x96], +); +pub const ALGORITHM_SP800_90_HMAC_256_GUID: Algorithm = crate::base::Guid::from_fields( + 0xc5149b43, + 0xae85, + 0x4f53, + 0x99, + 0x82, + &[0xb9, 0x43, 0x35, 0xd3, 0xa9, 0xe7], +); +pub const ALGORITHM_SP800_90_CTR_256_GUID: Algorithm = crate::base::Guid::from_fields( + 0x44f0de6e, + 0x4d8c, + 0x4045, + 0xa8, + 0xc7, + &[0x4d, 0xd1, 0x68, 0x85, 0x6b, 0x9e], +); +pub const ALGORITHM_X9_31_3DES_GUID: Algorithm = crate::base::Guid::from_fields( + 0x63c4785a, + 0xca34, + 0x4012, + 0xa3, + 0xc8, + &[0x0b, 0x6a, 0x32, 0x4f, 0x55, 0x46], +); +pub const ALGORITHM_X9_31_AES_GUID: Algorithm = crate::base::Guid::from_fields( + 0xacd03321, + 0x777e, + 0x4d3d, + 0xb1, + 0xc8, + &[0x20, 0xcf, 0xd8, 0x88, 0x20, 0xc9], +); +pub const ALGORITHM_RAW: Algorithm = crate::base::Guid::from_fields( + 0xe43176d7, + 0xb6e8, + 0x4827, + 0xb7, + 0x84, + &[0x7f, 0xfd, 0xc4, 0xb6, 0x85, 0x61], +); + +pub type ProtocolGetInfo = eficall! {fn( + *mut Protocol, + *mut usize, + *mut Algorithm, +) -> crate::base::Status}; + +pub type ProtocolGetRng = eficall! {fn( + *mut Protocol, + *mut Algorithm, + usize, + *mut u8, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub get_info: ProtocolGetInfo, + pub get_rng: ProtocolGetRng, +} diff --git a/src/rust/vendor/r-efi/src/protocols/service_binding.rs b/src/rust/vendor/r-efi/src/protocols/service_binding.rs new file mode 100644 index 000000000..67c69f91f --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/service_binding.rs @@ -0,0 +1,20 @@ +//! Service Binding Protocol +//! +//! Provides services that are required to create and destroy child handles +//! that support a given set of protocols. + +pub type ProtocolCreateChild = eficall! {fn( + *mut Protocol, + *mut crate::base::Handle, +) -> crate::base::Status}; + +pub type ProtocolDestroyChild = eficall! {fn( + *mut Protocol, + crate::base::Handle, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub create_child: ProtocolCreateChild, + pub destroy_child: ProtocolDestroyChild, +} diff --git a/src/rust/vendor/r-efi/src/protocols/shell.rs b/src/rust/vendor/r-efi/src/protocols/shell.rs new file mode 100644 index 000000000..01b6b2c68 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/shell.rs @@ -0,0 +1,295 @@ +//! Shell Protocol +//! +//! Provides shell services to UEFI applications. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x6302d008, + 0x7f9b, + 0x4f30, + 0x87, + 0xac, + &[0x60, 0xc9, 0xfe, 0xf5, 0xda, 0x4e], +); + +pub const MAJOR_VERSION: u32 = 0x00000002; +pub const MINOR_VERSION: u32 = 0x00000002; + +pub type FileHandle = *mut core::ffi::c_void; + +pub type DeviceNameFlags = u32; +pub const DEVICE_NAME_USE_COMPONENT_NAME: DeviceNameFlags = 0x00000001; +pub const DEVICE_NAME_USE_DEVICE_PATH: DeviceNameFlags = 0x00000002; + +#[repr(C)] +pub struct ListEntry { + pub flink: *mut ListEntry, + pub blink: *mut ListEntry, +} + +#[repr(C)] +pub struct FileInfo { + pub link: ListEntry, + pub status: crate::base::Status, + pub full_name: *mut crate::base::Char16, + pub file_name: *mut crate::base::Char16, + pub handle: FileHandle, + pub info: *mut crate::protocols::file::Info, +} + +pub type Execute = eficall! {fn( + *mut crate::base::Handle, + *mut crate::base::Char16, + *mut *mut crate::base::Char16, + *mut crate::base::Status, +) -> crate::base::Status}; + +pub type GetEnv = eficall! {fn( + *mut crate::base::Char16, +) -> *mut crate::base::Char16}; + +pub type SetEnv = eficall! {fn( + *mut crate::base::Char16, + *mut crate::base::Char16, + crate::base::Boolean, +) -> crate::base::Status}; + +pub type GetAlias = eficall! {fn( + *mut crate::base::Char16, + *mut crate::base::Boolean, +) -> *mut crate::base::Char16}; + +pub type SetAlias = eficall! {fn( + *mut crate::base::Char16, + *mut crate::base::Char16, + crate::base::Boolean, + crate::base::Boolean, +) -> crate::base::Status}; + +pub type GetHelpText = eficall! {fn( + *mut crate::base::Char16, + *mut crate::base::Char16, + *mut *mut crate::base::Char16, +) -> crate::base::Status}; + +pub type GetDevicePathFromMap = eficall! {fn( + *mut crate::base::Char16, +) -> *mut crate::protocols::device_path::Protocol}; + +pub type GetMapFromDevicePath = eficall! {fn( + *mut *mut crate::protocols::device_path::Protocol, +) -> *mut crate::base::Char16}; + +pub type GetDevicePathFromFilePath = eficall! {fn( + *mut crate::base::Char16, +) -> *mut crate::protocols::device_path::Protocol}; + +pub type GetFilePathFromDevicePath = eficall! {fn( + *mut crate::protocols::device_path::Protocol, +) -> *mut crate::base::Char16}; + +pub type SetMap = eficall! {fn( + *mut crate::protocols::device_path::Protocol, + *mut crate::base::Char16, +) -> crate::base::Status}; + +pub type GetCurDir = eficall! {fn( + *mut crate::base::Char16, +) -> *mut crate::base::Char16}; + +pub type SetCurDir = eficall! {fn( + *mut crate::base::Char16, + *mut crate::base::Char16, +) -> crate::base::Status}; + +pub type OpenFileList = eficall! {fn( + *mut crate::base::Char16, + u64, + *mut *mut FileInfo, +) -> crate::base::Status}; + +pub type FreeFileList = eficall! {fn( + *mut *mut FileInfo, +) -> crate::base::Status}; + +pub type RemoveDupInFileList = eficall! {fn( + *mut *mut FileInfo, +) -> crate::base::Status}; + +pub type BatchIsActive = eficall! {fn() -> crate::base::Boolean}; + +pub type IsRootShell = eficall! {fn() -> crate::base::Boolean}; + +pub type EnablePageBreak = eficall! {fn()}; + +pub type DisablePageBreak = eficall! {fn()}; + +pub type GetPageBreak = eficall! {fn() -> crate::base::Boolean}; + +pub type GetDeviceName = eficall! {fn( + crate::base::Handle, + DeviceNameFlags, + *mut crate::base::Char8, + *mut *mut crate::base::Char16, +) -> crate::base::Status}; + +pub type GetFileInfo = eficall! {fn( + FileHandle, +) -> *mut crate::protocols::file::Info}; + +pub type SetFileInfo = eficall! {fn( + FileHandle, + *mut crate::protocols::file::Info +) -> crate::base::Status}; + +pub type OpenFileByName = eficall! {fn( + *mut crate::base::Char16, + *mut FileHandle, + u64, +) -> crate::base::Status}; + +pub type CloseFile = eficall! {fn( + FileHandle, +) -> crate::base::Status}; + +pub type CreateFile = eficall! {fn( + *mut crate::base::Char16, + u64, + *mut FileHandle, +) -> crate::base::Status}; + +pub type ReadFile = eficall! {fn( + FileHandle, + *mut usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type WriteFile = eficall! {fn( + FileHandle, + *mut usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type DeleteFile = eficall! {fn( + FileHandle, +) -> crate::base::Status}; + +pub type DeleteFileByName = eficall! {fn( + *mut crate::base::Char16, +) -> crate::base::Status}; + +pub type GetFilePosition = eficall! {fn( + FileHandle, + *mut u64, +) -> crate::base::Status}; + +pub type SetFilePosition = eficall! {fn( + FileHandle, + u64, +) -> crate::base::Status}; + +pub type FlushFile = eficall! {fn( + FileHandle, +) -> crate::base::Status}; + +pub type FindFiles = eficall! {fn( + *mut crate::base::Char16, + *mut *mut FileInfo, +) -> crate::base::Status}; + +pub type FindFilesInDir = eficall! {fn( + FileHandle, + *mut *mut FileInfo, +) -> crate::base::Status}; + +pub type GetFileSize = eficall! {fn( + FileHandle, + *mut u64, +) -> crate::base::Status}; + +pub type OpenRoot = eficall! {fn( + *mut crate::protocols::device_path::Protocol, + *mut FileHandle, +) -> crate::base::Status}; + +pub type OpenRootByHandle = eficall! {fn( + crate::base::Handle, + *mut FileHandle, +) -> crate::base::Status}; + +pub type RegisterGuidName = eficall! {fn( + *mut crate::base::Guid, + *mut crate::base::Char16, +) -> crate::base::Status}; + +pub type GetGuidName = eficall! {fn( + *mut crate::base::Guid, + *mut *mut crate::base::Char16, +) -> crate::base::Status}; + +pub type GetGuidFromName = eficall! {fn( + *mut crate::base::Char16, + *mut crate::base::Guid, +) -> crate::base::Status}; + +pub type GetEnvEx = eficall! {fn( + *mut crate::base::Char16, + *mut u32, +) -> *mut crate::base::Char16}; + +#[repr(C)] +pub struct Protocol { + pub execute: Execute, + pub get_env: GetEnv, + pub set_env: SetEnv, + pub get_alias: GetAlias, + pub set_alias: SetAlias, + pub get_help_text: GetHelpText, + pub get_device_path_from_map: GetDevicePathFromMap, + pub get_map_from_device_path: GetMapFromDevicePath, + pub get_device_path_from_file_path: GetDevicePathFromFilePath, + pub get_file_path_from_device_path: GetFilePathFromDevicePath, + pub set_map: SetMap, + + pub get_cur_dir: GetCurDir, + pub set_cur_dir: SetCurDir, + pub open_file_list: OpenFileList, + pub free_file_list: FreeFileList, + pub remove_dup_in_file_list: RemoveDupInFileList, + + pub batch_is_active: BatchIsActive, + pub is_root_shell: IsRootShell, + pub enable_page_break: EnablePageBreak, + pub disable_page_break: DisablePageBreak, + pub get_page_break: GetPageBreak, + pub get_device_name: GetDeviceName, + + pub get_file_info: GetFileInfo, + pub set_file_info: SetFileInfo, + pub open_file_by_name: OpenFileByName, + pub close_file: CloseFile, + pub create_file: CreateFile, + pub read_file: ReadFile, + pub write_file: WriteFile, + pub delete_file: DeleteFile, + pub delete_file_by_name: DeleteFileByName, + pub get_file_position: GetFilePosition, + pub set_file_position: SetFilePosition, + pub flush_file: FlushFile, + pub find_files: FindFiles, + pub find_files_in_dir: FindFilesInDir, + pub get_file_size: GetFileSize, + + pub open_root: OpenRoot, + pub open_root_by_handle: OpenRootByHandle, + + pub execution_break: crate::base::Event, + + pub major_version: u32, + pub minor_version: u32, + pub register_guid_name: RegisterGuidName, + pub get_guid_name: GetGuidName, + pub get_guid_from_name: GetGuidFromName, + + // Shell 2.1 + pub get_env_ex: GetEnvEx, +} diff --git a/src/rust/vendor/r-efi/src/protocols/shell_dynamic_command.rs b/src/rust/vendor/r-efi/src/protocols/shell_dynamic_command.rs new file mode 100644 index 000000000..a1d775915 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/shell_dynamic_command.rs @@ -0,0 +1,33 @@ +//! Shell Dynamic Command Protocol +//! +//! Defined in UEFI Shell Specification, Section 2.4 + +use super::{shell, shell_parameters}; + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x3c7200e9, + 0x005f, + 0x4ea4, + 0x87, + 0xde, + &[0xa3, 0xdf, 0xac, 0x8a, 0x27, 0xc3], +); + +pub type CommandHandler = eficall! {fn( + *mut Protocol, + *mut crate::system::SystemTable, + *mut shell_parameters::Protocol, + *mut shell::Protocol, +) -> crate::base::Status}; + +pub type CommandGetHelp = eficall! {fn( + *mut Protocol, + *mut crate::base::Char8, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub command_name: *mut crate::base::Char16, + pub handler: CommandHandler, + pub get_help: CommandGetHelp, +} diff --git a/src/rust/vendor/r-efi/src/protocols/shell_parameters.rs b/src/rust/vendor/r-efi/src/protocols/shell_parameters.rs new file mode 100644 index 000000000..e779d0add --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/shell_parameters.rs @@ -0,0 +1,23 @@ +//! Shell Parameters Protocol +//! +//! Defined in the UEFI Shell Specification, Section 2.3. + +use super::shell; + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x752f3136, + 0x4e16, + 0x4fdc, + 0xa2, + 0x2a, + &[0xe5, 0xf4, 0x68, 0x12, 0xf4, 0xca], +); + +#[repr(C)] +pub struct Protocol { + pub argv: *mut *mut crate::base::Char16, + pub argc: usize, + pub std_in: shell::FileHandle, + pub std_out: shell::FileHandle, + pub std_err: shell::FileHandle, +} diff --git a/src/rust/vendor/r-efi/src/protocols/simple_file_system.rs b/src/rust/vendor/r-efi/src/protocols/simple_file_system.rs new file mode 100644 index 000000000..0f0947b9b --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/simple_file_system.rs @@ -0,0 +1,26 @@ +//! Simple File System Protocol +//! +//! Provides the `open_volume` function returning a file protocol representing the root directory +//! of a filesystem. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x964e5b22, + 0x6459, + 0x11d2, + 0x8e, + 0x39, + &[0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b], +); + +pub const REVISION: u64 = 0x0000000000010000u64; + +pub type ProtocolOpenVolume = eficall! {fn( + *mut Protocol, + *mut *mut crate::protocols::file::Protocol, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub revision: u64, + pub open_volume: ProtocolOpenVolume, +} diff --git a/src/rust/vendor/r-efi/src/protocols/simple_network.rs b/src/rust/vendor/r-efi/src/protocols/simple_network.rs new file mode 100644 index 000000000..883ff31b4 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/simple_network.rs @@ -0,0 +1,196 @@ +//! Simple Network Protocol +//! +//! The simple network protcol provides services to initialize a network interface, transmit +//! packets, receive packets, and close a network interface. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xa19832b9, + 0xac25, + 0x11d3, + 0x9a, + 0x2d, + &[0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d], +); + +pub const REVISION: u64 = 0x0000000000010000u64; + +pub const MAX_MCAST_FILTER_CNT: usize = 16; + +pub const RECEIVE_UNICAST: u32 = 0x00000001u32; +pub const RECEIVE_MULTICAST: u32 = 0x00000002u32; +pub const RECEIVE_BROADCAST: u32 = 0x00000004u32; +pub const RECEIVE_PROMISCUOUS: u32 = 0x00000008u32; +pub const RECEIVE_PROMISCUOUS_MULTICAST: u32 = 0x00000010u32; + +pub const RECEIVE_INTERRUPT: u32 = 0x00000001u32; +pub const TRANSMIT_INTERRUPT: u32 = 0x00000002u32; +pub const COMMAND_INTERRUPT: u32 = 0x00000004u32; +pub const SOFTWARE_INTERRUPT: u32 = 0x000000008u32; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Mode { + pub state: u32, + pub hw_address_size: u32, + pub media_header_size: u32, + pub max_packet_size: u32, + pub nvram_size: u32, + pub nvram_access_size: u32, + pub receive_filter_mask: u32, + pub receive_filter_setting: u32, + pub max_mcast_filter_count: u32, + pub mcast_filter_count: u32, + pub mcast_filter: [crate::base::MacAddress; MAX_MCAST_FILTER_CNT], + pub current_address: crate::base::MacAddress, + pub broadcast_address: crate::base::MacAddress, + pub permanent_address: crate::base::MacAddress, + pub if_type: u8, + pub mac_address_changeable: crate::base::Boolean, + pub multiple_tx_supported: crate::base::Boolean, + pub media_present_supported: crate::base::Boolean, + pub media_present: crate::base::Boolean, +} + +pub type State = u32; + +pub const STOPPED: State = 0x00000000; +pub const STARTED: State = 0x00000001; +pub const INITIALIZED: State = 0x00000002; +pub const MAX_STATE: State = 0x00000003; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Statistics { + pub rx_total_frames: u64, + pub rx_good_frames: u64, + pub rx_undersize_frames: u64, + pub rx_oversize_frames: u64, + pub rx_dropped_frames: u64, + pub rx_unicast_frames: u64, + pub rx_broadcast_frames: u64, + pub rx_multicast_frames: u64, + pub rx_crc_error_frames: u64, + pub rx_total_bytes: u64, + pub tx_total_frames: u64, + pub tx_good_frames: u64, + pub tx_undersize_frames: u64, + pub tx_oversize_frames: u64, + pub tx_dropped_frames: u64, + pub tx_unicast_frames: u64, + pub tx_broadcast_frames: u64, + pub tx_multicast_frames: u64, + pub tx_crc_error_frames: u64, + pub tx_total_bytes: u64, + pub collisions: u64, + pub unsupported_protocol: u64, + pub rx_duplicated_frames: u64, + pub rx_decrypt_error_frames: u64, + pub tx_error_frames: u64, + pub tx_retry_frames: u64, +} + +pub type ProtocolStart = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +pub type ProtocolStop = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +pub type ProtocolInitialize = eficall! {fn( + *mut Protocol, + usize, + usize, +) -> crate::base::Status}; + +pub type ProtocolReset = eficall! {fn( + *mut Protocol, + crate::base::Boolean, +) -> crate::base::Status}; + +pub type ProtocolShutdown = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +pub type ProtocolReceiveFilters = eficall! {fn( + *mut Protocol, + u32, + u32, + crate::base::Boolean, + usize, + *mut crate::base::MacAddress, +) -> crate::base::Status}; + +pub type ProtocolStationAddress = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut crate::base::MacAddress, +) -> crate::base::Status}; + +pub type ProtocolStatistics = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut usize, + *mut Statistics, +) -> crate::base::Status}; + +pub type ProtocolMcastIpToMac = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut crate::base::IpAddress, + *mut crate::base::MacAddress, +) -> crate::base::Status}; + +pub type ProtocolNvData = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + usize, + usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolGetStatus = eficall! {fn( + *mut Protocol, + *mut u32, + *mut *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolTransmit = eficall! {fn( + *mut Protocol, + usize, + usize, + *mut core::ffi::c_void, + *mut crate::base::MacAddress, + *mut crate::base::MacAddress, + *mut u16, +) -> crate::base::Status}; + +pub type ProtocolReceive = eficall! {fn( + *mut Protocol, + *mut usize, + *mut usize, + *mut core::ffi::c_void, + *mut crate::base::MacAddress, + *mut crate::base::MacAddress, + *mut u16, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub revision: u64, + pub start: ProtocolStart, + pub stop: ProtocolStop, + pub initialize: ProtocolInitialize, + pub reset: ProtocolReset, + pub shutdown: ProtocolShutdown, + pub receive_filters: ProtocolReceiveFilters, + pub station_address: ProtocolStationAddress, + pub statistics: ProtocolStatistics, + pub mcast_ip_to_mac: ProtocolMcastIpToMac, + pub nv_data: ProtocolNvData, + pub get_status: ProtocolGetStatus, + pub transmit: ProtocolTransmit, + pub receive: ProtocolReceive, + pub wait_for_packet: crate::base::Event, + pub mode: *mut Mode, +} diff --git a/src/rust/vendor/r-efi/src/protocols/simple_text_input.rs b/src/rust/vendor/r-efi/src/protocols/simple_text_input.rs new file mode 100644 index 000000000..30f4104ef --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/simple_text_input.rs @@ -0,0 +1,38 @@ +//! Simple Text Input Protocol +//! +//! The simple-text-input protocol defines how to read basic key-strokes. It is limited to +//! non-modifiers and lacks any detailed reporting. It is mostly useful for debugging and admin +//! interaction. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x387477c1, + 0x69c7, + 0x11d2, + 0x8e, + 0x39, + &[0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug, Default)] +pub struct InputKey { + pub scan_code: u16, + pub unicode_char: crate::base::Char16, +} + +pub type ProtocolReset = eficall! {fn( + *mut Protocol, + crate::base::Boolean, +) -> crate::base::Status}; + +pub type ProtocolReadKeyStroke = eficall! {fn( + *mut Protocol, + *mut InputKey, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub reset: ProtocolReset, + pub read_key_stroke: ProtocolReadKeyStroke, + pub wait_for_key: crate::base::Event, +} diff --git a/src/rust/vendor/r-efi/src/protocols/simple_text_input_ex.rs b/src/rust/vendor/r-efi/src/protocols/simple_text_input_ex.rs new file mode 100644 index 000000000..f0baf8a97 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/simple_text_input_ex.rs @@ -0,0 +1,85 @@ +//! Extended Simple Text Input Protocol +//! +//! The simple-text-input-ex protocol extends the simple-text-input protocol by allowing more +//! details reporting about modifiers, etc. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xdd9e7534, + 0x7762, + 0x4698, + 0x8c, + 0x14, + &[0xf5, 0x85, 0x17, 0xa6, 0x25, 0xaa], +); + +pub const SHIFT_STATE_VALID: u32 = 0x80000000u32; +pub const RIGHT_SHIFT_PRESSED: u32 = 0x00000001u32; +pub const LEFT_SHIFT_PRESSED: u32 = 0x00000002u32; +pub const RIGHT_CONTROL_PRESSED: u32 = 0x00000004u32; +pub const LEFT_CONTROL_PRESSED: u32 = 0x00000008u32; +pub const RIGHT_ALT_PRESSED: u32 = 0x00000010u32; +pub const LEFT_ALT_PRESSED: u32 = 0x00000020u32; +pub const RIGHT_LOGO_PRESSED: u32 = 0x00000040u32; +pub const LEFT_LOGO_PRESSED: u32 = 0x00000080u32; +pub const MENU_KEY_PRESSED: u32 = 0x00000100u32; +pub const SYS_REQ_PRESSED: u32 = 0x00000200u32; + +pub const TOGGLE_STATE_VALID: u8 = 0x80u8; +pub const KEY_STATE_EXPOSED: u8 = 0x40u8; +pub const SCROLL_LOCK_ACTIVE: u8 = 0x01u8; +pub const NUM_LOCK_ACTIVE: u8 = 0x02u8; +pub const CAPS_LOCK_ACTIVE: u8 = 0x04u8; + +pub type KeyToggleState = u8; +pub type KeyNotifyFunction = eficall! {fn(*mut KeyData) -> crate::base::Status}; + +#[repr(C)] +#[derive(Clone, Copy, Debug, Default)] +pub struct KeyState { + pub key_shift_state: u32, + pub key_toggle_state: KeyToggleState, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Default)] +pub struct KeyData { + pub key: crate::protocols::simple_text_input::InputKey, + pub key_state: KeyState, +} + +pub type ProtocolReset = eficall! {fn( + *mut Protocol, + crate::base::Boolean, +) -> crate::base::Status}; + +pub type ProtocolReadKeyStrokeEx = eficall! {fn( + *mut Protocol, + *mut KeyData, +) -> crate::base::Status}; + +pub type ProtocolSetState = eficall! {fn( + *mut Protocol, + *mut KeyToggleState, +) -> crate::base::Status}; + +pub type ProtocolRegisterKeyNotify = eficall! {fn( + *mut Protocol, + *mut KeyData, + KeyNotifyFunction, + *mut *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type ProtocolUnregisterKeyNotify = eficall! {fn( + *mut Protocol, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub reset: ProtocolReset, + pub read_key_stroke_ex: ProtocolReadKeyStrokeEx, + pub wait_for_key_ex: crate::base::Event, + pub set_state: ProtocolSetState, + pub register_key_notify: ProtocolRegisterKeyNotify, + pub unregister_key_notify: ProtocolUnregisterKeyNotify, +} diff --git a/src/rust/vendor/r-efi/src/protocols/simple_text_output.rs b/src/rust/vendor/r-efi/src/protocols/simple_text_output.rs new file mode 100644 index 000000000..d100736db --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/simple_text_output.rs @@ -0,0 +1,86 @@ +//! Simple Text Output Protocol +//! +//! The simple-text-output protocol provides a simple way to print text on screen. It is modeled +//! around the old VGA-consoles, but does not carry all the old cruft. It expects a rectangular +//! text array and allows you to move the cursor around to write Unicode symbols to screen. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x387477c2, + 0x69c7, + 0x11d2, + 0x8e, + 0x39, + &[0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Mode { + pub max_mode: i32, + pub mode: i32, + pub attribute: i32, + pub cursor_column: i32, + pub cursor_row: i32, + pub cursor_visible: crate::base::Boolean, +} + +pub type ProtocolReset = eficall! {fn( + *mut Protocol, + crate::base::Boolean, +) -> crate::base::Status}; + +pub type ProtocolOutputString = eficall! {fn( + *mut Protocol, + *mut crate::base::Char16, +) -> crate::base::Status}; + +pub type ProtocolTestString = eficall! {fn( + *mut Protocol, + *mut crate::base::Char16, +) -> crate::base::Status}; + +pub type ProtocolQueryMode = eficall! {fn( + *mut Protocol, + usize, + *mut usize, + *mut usize, +) -> crate::base::Status}; + +pub type ProtocolSetMode = eficall! {fn( + *mut Protocol, + usize, +) -> crate::base::Status}; + +pub type ProtocolSetAttribute = eficall! {fn( + *mut Protocol, + usize, +) -> crate::base::Status}; + +pub type ProtocolClearScreen = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +pub type ProtocolSetCursorPosition = eficall! {fn( + *mut Protocol, + usize, + usize, +) -> crate::base::Status}; + +pub type ProtocolEnableCursor = eficall! {fn( + *mut Protocol, + crate::base::Boolean, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub reset: ProtocolReset, + pub output_string: ProtocolOutputString, + pub test_string: ProtocolTestString, + pub query_mode: ProtocolQueryMode, + pub set_mode: ProtocolSetMode, + pub set_attribute: ProtocolSetAttribute, + pub clear_screen: ProtocolClearScreen, + pub set_cursor_position: ProtocolSetCursorPosition, + pub enable_cursor: ProtocolEnableCursor, + pub mode: *mut Mode, +} diff --git a/src/rust/vendor/r-efi/src/protocols/tcp4.rs b/src/rust/vendor/r-efi/src/protocols/tcp4.rs new file mode 100644 index 000000000..051b1d8ef --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/tcp4.rs @@ -0,0 +1,224 @@ +//! Transmission Control Protocol version 4 +//! +//! It provides services to send and receive data streams. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x65530bc7, + 0xa359, + 0x410f, + 0xb0, + 0x10, + &[0x5a, 0xad, 0xc7, 0xec, 0x2b, 0x62], +); + +pub const SERVICE_BINDING_PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x00720665, + 0x67eb, + 0x4a99, + 0xba, + 0xf7, + &[0xd3, 0xc3, 0x3a, 0x1c, 0x7c, 0xc9], +); + +pub type ConnectionState = u32; + +pub const STATE_CLOSED: ConnectionState = 0x00000000; +pub const STATE_LISTEN: ConnectionState = 0x00000001; +pub const STATE_SYN_SENT: ConnectionState = 0x00000002; +pub const STATE_SYN_RECEIVED: ConnectionState = 0x00000003; +pub const STATE_ESTABLISHED: ConnectionState = 0x00000004; +pub const STATE_FIN_WAIT1: ConnectionState = 0x00000005; +pub const STATE_FIN_WAIT2: ConnectionState = 0x00000006; +pub const STATE_CLOSING: ConnectionState = 0x00000007; +pub const STATE_TIME_WAIT: ConnectionState = 0x00000008; +pub const STATE_CLOSE_WAIT: ConnectionState = 0x00000009; +pub const STATE_LAST_ACK: ConnectionState = 0x0000000a; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ConfigData { + pub type_of_service: u8, + pub time_to_live: u8, + pub access_point: AccessPoint, + pub control_option: *mut r#Option, +} + +impl Default for ConfigData { + fn default() -> Self { + Self { + type_of_service: Default::default(), + time_to_live: Default::default(), + access_point: Default::default(), + control_option: core::ptr::null_mut(), + } + } +} + +#[repr(C)] +#[derive(Clone, Copy, Debug, Default)] +pub struct AccessPoint { + pub use_default_address: crate::base::Boolean, + pub station_address: crate::base::Ipv4Address, + pub subnet_mask: crate::base::Ipv4Address, + pub station_port: u16, + pub remote_address: crate::base::Ipv4Address, + pub remote_port: u16, + pub active_flag: crate::base::Boolean, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct r#Option { + pub receive_buffer_size: u32, + pub send_buffer_size: u32, + pub max_syn_back_log: u32, + pub connection_timeout: u32, + pub data_retries: u32, + pub fin_timeout: u32, + pub time_wait_timeout: u32, + pub keep_alive_probes: u32, + pub keep_alive_time: u32, + pub keep_alive_interval: u32, + pub enable_nagle: crate::base::Boolean, + pub enable_time_stamp: crate::base::Boolean, + pub enable_window_scaling: crate::base::Boolean, + pub enable_selective_ack: crate::base::Boolean, + pub enable_path_mtu_discovery: crate::base::Boolean, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct CompletionToken { + pub event: crate::base::Event, + pub status: crate::base::Status, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ConnectionToken { + pub completion_token: CompletionToken, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ListenToken { + pub completion_token: CompletionToken, + pub new_child_handle: crate::base::Handle, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IoToken { + pub completion_token: CompletionToken, + pub packet: IoTokenPacket, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub union IoTokenPacket { + pub rx_data: *mut ReceiveData, + pub tx_data: *mut TransmitData, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ReceiveData { + pub urgent_flag: crate::base::Boolean, + pub data_length: u32, + pub fragment_count: u32, + pub fragment_table: [FragmentData; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct FragmentData { + pub fragment_length: u32, + pub fragment_buffer: *mut core::ffi::c_void, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct TransmitData { + pub push: crate::base::Boolean, + pub urgent: crate::base::Boolean, + pub data_length: u32, + pub fragment_count: u32, + pub fragment_table: [FragmentData; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct CloseToken { + pub completion_token: CompletionToken, + pub abort_on_close: crate::base::Boolean, +} + +pub type ProtocolGetModeData = eficall! {fn( + *mut Protocol, + *mut ConnectionState, + *mut ConfigData, + *mut crate::protocols::ip4::ModeData, + *mut crate::protocols::managed_network::ConfigData, + *mut crate::protocols::simple_network::Mode, +) -> crate::base::Status}; + +pub type ProtocolConfigure = eficall! {fn( + *mut Protocol, + *mut ConfigData, +) -> crate::base::Status}; + +pub type ProtocolRoutes = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut crate::base::Ipv4Address, + *mut crate::base::Ipv4Address, + *mut crate::base::Ipv4Address, +) -> crate::base::Status}; + +pub type ProtocolConnect = eficall! {fn( + *mut Protocol, + *mut ConnectionToken, +) -> crate::base::Status}; + +pub type ProtocolAccept = eficall! {fn( + *mut Protocol, + *mut ListenToken, +) -> crate::base::Status}; + +pub type ProtocolTransmit = eficall! {fn( + *mut Protocol, + *mut IoToken, +) -> crate::base::Status}; + +pub type ProtocolReceive = eficall! {fn( + *mut Protocol, + *mut IoToken, +) -> crate::base::Status}; + +pub type ProtocolClose = eficall! {fn( + *mut Protocol, + *mut CloseToken, +) -> crate::base::Status}; + +pub type ProtocolCancel = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolPoll = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub get_mode_data: ProtocolGetModeData, + pub configure: ProtocolConfigure, + pub routes: ProtocolRoutes, + pub connect: ProtocolConnect, + pub accept: ProtocolAccept, + pub transmit: ProtocolTransmit, + pub receive: ProtocolReceive, + pub close: ProtocolClose, + pub cancel: ProtocolCancel, + pub poll: ProtocolPoll, +} diff --git a/src/rust/vendor/r-efi/src/protocols/tcp6.rs b/src/rust/vendor/r-efi/src/protocols/tcp6.rs new file mode 100644 index 000000000..428b5c3eb --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/tcp6.rs @@ -0,0 +1,202 @@ +//! Transmission Control Protocol version 6 +//! +//! It provides services to send and receive data streams. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x46e44855, + 0xbd60, + 0x4ab7, + 0xab, + 0x0d, + &[0xa6, 0x79, 0xb9, 0x44, 0x7d, 0x77], +); + +pub const SERVICE_BINDING_PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xec20eb79, + 0x6c1a, + 0x4664, + 0x9a, + 0x0d, + &[0xd2, 0xe4, 0xcc, 0x16, 0xd6, 0x64], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct AccessPoint { + pub station_address: crate::base::Ipv6Address, + pub station_port: u16, + pub remote_address: crate::base::Ipv6Address, + pub remote_port: u16, + pub active_flag: crate::base::Boolean, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct r#Option { + pub receive_buffer_size: u32, + pub send_buffer_size: u32, + pub max_syn_back_log: u32, + pub connection_timeout: u32, + pub data_retries: u32, + pub fin_timeout: u32, + pub time_wait_timeout: u32, + pub keep_alive_probes: u32, + pub keep_alive_time: u32, + pub keep_alive_interval: u32, + pub enable_nagle: crate::base::Boolean, + pub enable_time_stamp: crate::base::Boolean, + pub enable_window_scaling: crate::base::Boolean, + pub enable_selective_ack: crate::base::Boolean, + pub enable_path_mtu_discovery: crate::base::Boolean, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ConfigData { + pub traffic_class: u8, + pub hop_limit: u8, + pub access_point: AccessPoint, + pub control_option: *mut r#Option, +} + +pub type ConnectionState = u32; + +pub const STATE_CLOSED: ConnectionState = 0x00000000; +pub const STATE_LISTEN: ConnectionState = 0x00000001; +pub const STATE_SYN_SENT: ConnectionState = 0x00000002; +pub const STATE_SYN_RECEIVED: ConnectionState = 0x00000003; +pub const STATE_ESTABLISHED: ConnectionState = 0x00000004; +pub const STATE_FIN_WAIT1: ConnectionState = 0x00000005; +pub const STATE_FIN_WAIT2: ConnectionState = 0x00000006; +pub const STATE_CLOSING: ConnectionState = 0x00000007; +pub const STATE_TIME_WAIT: ConnectionState = 0x00000008; +pub const STATE_CLOSE_WAIT: ConnectionState = 0x00000009; +pub const STATE_LAST_ACK: ConnectionState = 0x0000000a; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct CompletionToken { + pub event: crate::base::Event, + pub status: crate::base::Status, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ConnectionToken { + pub completion_token: CompletionToken, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ListenToken { + pub completion_token: CompletionToken, + pub new_child_handle: crate::base::Handle, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct IoToken { + pub completion_token: CompletionToken, + pub packet: IoTokenPacket, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub union IoTokenPacket { + pub rx_data: *mut ReceiveData, + pub tx_data: *mut TransmitData, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ReceiveData { + pub urgent_flag: crate::base::Boolean, + pub data_length: u32, + pub fragment_count: u32, + pub fragment_table: [FragmentData; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct FragmentData { + pub fragment_length: u32, + pub fragment_buffer: *mut core::ffi::c_void, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct TransmitData { + pub push: crate::base::Boolean, + pub urgent: crate::base::Boolean, + pub data_length: u32, + pub fragment_count: u32, + pub fragment_table: [FragmentData; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct CloseToken { + pub completion_token: CompletionToken, + pub abort_on_close: crate::base::Boolean, +} + +pub type ProtocolGetModeData = eficall! {fn( + *mut Protocol, + *mut ConnectionState, + *mut ConfigData, + *mut crate::protocols::ip6::ModeData, + *mut crate::protocols::managed_network::ConfigData, + *mut crate::protocols::simple_network::Mode, +) -> crate::base::Status}; + +pub type ProtocolConfigure = eficall! {fn( + *mut Protocol, + *mut ConfigData, +) -> crate::base::Status}; + +pub type ProtocolConnect = eficall! {fn( + *mut Protocol, + *mut ConnectionToken, +) -> crate::base::Status}; + +pub type ProtocolAccept = eficall! {fn( + *mut Protocol, + *mut ListenToken, +) -> crate::base::Status}; + +pub type ProtocolTransmit = eficall! {fn( + *mut Protocol, + *mut IoToken, +) -> crate::base::Status}; + +pub type ProtocolReceive = eficall! {fn( + *mut Protocol, + *mut IoToken, +) -> crate::base::Status}; + +pub type ProtocolClose = eficall! {fn( + *mut Protocol, + *mut CloseToken, +) -> crate::base::Status}; + +pub type ProtocolCancel = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolPoll = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub get_mode_data: ProtocolGetModeData, + pub configure: ProtocolConfigure, + pub connect: ProtocolConnect, + pub accept: ProtocolAccept, + pub transmit: ProtocolTransmit, + pub receive: ProtocolReceive, + pub close: ProtocolClose, + pub cancel: ProtocolCancel, + pub poll: ProtocolPoll, +} diff --git a/src/rust/vendor/r-efi/src/protocols/timestamp.rs b/src/rust/vendor/r-efi/src/protocols/timestamp.rs new file mode 100644 index 000000000..3e8f6b575 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/timestamp.rs @@ -0,0 +1,32 @@ +//! EFI Timestamp Protocol +//! +//! The Timestamp protocol provides a platform independent interface for +//! retrieving a high resolution timestamp counter. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xafbfde41, + 0x2e6e, + 0x4262, + 0xba, + 0x65, + &[0x62, 0xb9, 0x23, 0x6e, 0x54, 0x95], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct Properties { + pub frequency: u64, + pub end_value: u64, +} + +pub type ProtocolGetTimestamp = eficall! {fn() -> u64}; + +pub type ProtocolGetProperties = eficall! {fn( + *mut Properties, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub get_timestamp: ProtocolGetTimestamp, + pub get_properties: ProtocolGetProperties, +} diff --git a/src/rust/vendor/r-efi/src/protocols/udp4.rs b/src/rust/vendor/r-efi/src/protocols/udp4.rs new file mode 100644 index 000000000..f374235ce --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/udp4.rs @@ -0,0 +1,151 @@ +//! User Datagram Protocol V4 +//! +//! It provides simple packet-oriented services to transmit and receive UDP packets. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x3ad9df29, + 0x4501, + 0x478d, + 0xb1, + 0xf8, + &[0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3], +); + +pub const SERVICE_BINDING_PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x83f01464, + 0x99bd, + 0x45e5, + 0xb3, + 0x83, + &[0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ConfigData { + pub accept_broadcast: crate::base::Boolean, + pub accept_promiscuous: crate::base::Boolean, + pub accept_any_port: crate::base::Boolean, + pub allow_duplicate_port: crate::base::Boolean, + pub type_of_service: u8, + pub time_to_live: u8, + pub do_not_fragment: crate::base::Boolean, + pub receive_timeout: u32, + pub transmit_timeout: u32, + pub use_default_address: crate::base::Boolean, + pub station_address: crate::base::Ipv4Address, + pub subnet_mask: crate::base::Ipv4Address, + pub station_port: u16, + pub remote_address: crate::base::Ipv4Address, + pub remote_port: u16, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct SessionData { + pub source_address: crate::base::Ipv4Address, + pub source_port: u16, + pub destination_address: crate::base::Ipv4Address, + pub destination_port: u16, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct FragmentData { + pub fragment_length: u32, + pub fragment_buffer: *mut core::ffi::c_void, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct ReceiveData { + pub time_stamp: crate::system::Time, + pub recycle_signal: crate::base::Event, + pub udp_session: SessionData, + pub data_length: u32, + pub fragment_count: u32, + pub fragment_table: [FragmentData; N], +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct TransmitData { + pub udp_session_data: *mut SessionData, + pub gateway_address: *mut crate::base::Ipv4Address, + pub data_length: u32, + pub fragment_count: u32, + pub fragment_table: [FragmentData; N], +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub union CompletionTokenPacket { + pub rx_data: *mut ReceiveData, + pub tx_data: *mut TransmitData, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct CompletionToken { + pub event: crate::base::Event, + pub status: crate::base::Status, + pub packet: CompletionTokenPacket, +} + +pub type ProtocolGetModeData = eficall! {fn( + *mut Protocol, + *mut ConfigData, + *mut crate::protocols::ip4::ModeData, + *mut crate::protocols::managed_network::ConfigData, + *mut crate::protocols::simple_network::Mode, +) -> crate::base::Status}; + +pub type ProtocolConfigure = eficall! {fn( + *mut Protocol, + *mut ConfigData, +) -> crate::base::Status}; + +pub type ProtocolGroups = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut crate::base::Ipv4Address, +) -> crate::base::Status}; + +pub type ProtocolRoutes = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut crate::base::Ipv4Address, + *mut crate::base::Ipv4Address, + *mut crate::base::Ipv4Address, +) -> crate::base::Status}; + +pub type ProtocolTransmit = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolReceive = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolCancel = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolPoll = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub get_mode_data: ProtocolGetModeData, + pub configure: ProtocolConfigure, + pub groups: ProtocolGroups, + pub routes: ProtocolRoutes, + pub transmit: ProtocolTransmit, + pub receive: ProtocolReceive, + pub cancel: ProtocolCancel, + pub poll: ProtocolPoll, +} diff --git a/src/rust/vendor/r-efi/src/protocols/udp6.rs b/src/rust/vendor/r-efi/src/protocols/udp6.rs new file mode 100644 index 000000000..796863be4 --- /dev/null +++ b/src/rust/vendor/r-efi/src/protocols/udp6.rs @@ -0,0 +1,137 @@ +//! User Datagram Protocol V6 +//! +//! It provides simple packet-oriented services to transmit and receive UDP packets. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x4f948815, + 0xb4b9, + 0x43cb, + 0x8a, + 0x33, + &[0x90, 0xe0, 0x60, 0xb3, 0x49, 0x55], +); + +pub const SERVICE_BINDING_PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x66ed4721, + 0x3c98, + 0x4d3e, + 0x81, + 0xe3, + &[0xd0, 0x3d, 0xd3, 0x9a, 0x72, 0x54], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ConfigData { + pub accept_promiscuous: crate::base::Boolean, + pub accept_any_port: crate::base::Boolean, + pub allow_duplicate_port: crate::base::Boolean, + pub traffic_class: u8, + pub hop_limit: u8, + pub receive_timeout: u32, + pub transmit_timeout: u32, + pub station_address: crate::base::Ipv6Address, + pub station_port: u16, + pub remote_address: crate::base::Ipv6Address, + pub remote_port: u16, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct SessionData { + pub source_address: crate::base::Ipv6Address, + pub source_port: u16, + pub destination_address: crate::base::Ipv6Address, + pub destination_port: u16, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct FragmentData { + pub fragment_length: u32, + pub fragment_buffer: *mut core::ffi::c_void, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct ReceiveData { + pub time_stamp: crate::system::Time, + pub recycle_signal: crate::base::Event, + pub udp_session: SessionData, + pub data_length: u32, + pub fragment_count: u32, + pub fragment_table: [FragmentData; N], +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct TransmitData { + pub udp_session_data: *mut SessionData, + pub data_length: u32, + pub fragment_count: u32, + pub fragment_table: [FragmentData; N], +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub union CompletionTokenPacket { + pub rx_data: *mut ReceiveData, + pub tx_data: *mut TransmitData, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct CompletionToken { + pub event: crate::base::Event, + pub status: crate::base::Status, + pub packet: CompletionTokenPacket, +} + +pub type ProtocolGetModeData = eficall! {fn( + *mut Protocol, + *mut ConfigData, + *mut crate::protocols::ip6::ModeData, + *mut crate::protocols::managed_network::ConfigData, + *mut crate::protocols::simple_network::Mode, +) -> crate::base::Status}; + +pub type ProtocolConfigure = eficall! {fn( + *mut Protocol, + *mut ConfigData, +) -> crate::base::Status}; + +pub type ProtocolGroups = eficall! {fn( + *mut Protocol, + crate::base::Boolean, + *mut crate::base::Ipv6Address, +) -> crate::base::Status}; + +pub type ProtocolTransmit = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolReceive = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolCancel = eficall! {fn( + *mut Protocol, + *mut CompletionToken, +) -> crate::base::Status}; + +pub type ProtocolPoll = eficall! {fn( + *mut Protocol, +) -> crate::base::Status}; + +#[repr(C)] +pub struct Protocol { + pub get_mode_data: ProtocolGetModeData, + pub configure: ProtocolConfigure, + pub groups: ProtocolGroups, + pub transmit: ProtocolTransmit, + pub receive: ProtocolReceive, + pub cancel: ProtocolCancel, + pub poll: ProtocolPoll, +} diff --git a/src/rust/vendor/r-efi/src/system.rs b/src/rust/vendor/r-efi/src/system.rs new file mode 100644 index 000000000..e1c54d5dc --- /dev/null +++ b/src/rust/vendor/r-efi/src/system.rs @@ -0,0 +1,1130 @@ +//! UEFI System Integration +//! +//! This header defines the structures and types of the surrounding system of an UEFI application. +//! It contains the definitions of the system table, the runtime and boot services, as well as +//! common types. +//! +//! We do not document the behavior of each of these types and functions. They follow the UEFI +//! specification, which does a well-enough job of documenting each. This file just provides you +//! the rust definitions of each symbol and some limited hints on some pecularities. + +// +// Time Management +// +// UEFI time management is modeled around the EFI_TIME structure, which represents any arbitrary +// timestamp. The runtime and boot services provide helper functions to query and set the system +// time. +// + +pub const TIME_ADJUST_DAYLIGHT: u8 = 0x01u8; +pub const TIME_IN_DAYLIGHT: u8 = 0x02u8; + +pub const UNSPECIFIED_TIMEZONE: i16 = 0x07ffi16; + +// Cannot derive `Eq` etc. due to uninitialized `pad2` field. +#[repr(C)] +#[derive(Clone, Copy, Debug, Default)] +pub struct Time { + pub year: u16, + pub month: u8, + pub day: u8, + pub hour: u8, + pub minute: u8, + pub second: u8, + pub pad1: u8, + pub nanosecond: u32, + pub timezone: i16, + pub daylight: u8, + pub pad2: u8, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct TimeCapabilities { + pub resolution: u32, + pub accuracy: u32, + pub sets_to_zero: crate::base::Boolean, +} + +// +// UEFI Variables +// +// UEFI systems provide a way to store global variables. These can be persistent or volatile. The +// variable store must be provided by the platform, but persistent storage might not be available. +// + +pub const VARIABLE_NON_VOLATILE: u32 = 0x00000001u32; +pub const VARIABLE_BOOTSERVICE_ACCESS: u32 = 0x00000002u32; +pub const VARIABLE_RUNTIME_ACCESS: u32 = 0x00000004u32; +pub const VARIABLE_HARDWARE_ERROR_RECORD: u32 = 0x00000008u32; +pub const VARIABLE_AUTHENTICATED_WRITE_ACCESS: u32 = 0x00000010u32; +pub const VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS: u32 = 0x00000020u32; +pub const VARIABLE_APPEND_WRITE: u32 = 0x00000040u32; +pub const VARIABLE_ENHANCED_AUTHENTICATED_ACCESS: u32 = 0x00000080u32; + +pub const VARIABLE_AUTHENTICATION_3_CERT_ID_SHA256: u32 = 0x1u32; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct VariableAuthentication3CertId { + pub r#type: u8, + pub id_size: u32, + pub id: [u8; N], +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct VariableAuthentication { + pub monotonic_count: u64, + pub auth_info: [u8; N], // WIN_CERTIFICATE_UEFI_ID from PE/COFF +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct VariableAuthentication2 { + pub timestamp: Time, + pub auth_info: [u8; N], // WIN_CERTIFICATE_UEFI_ID from PE/COFF +} + +pub const VARIABLE_AUTHENTICATION_3_TIMESTAMP_TYPE: u32 = 0x1u32; +pub const VARIABLE_AUTHENTICATION_3_NONCE_TYPE: u32 = 0x2u32; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct VariableAuthentication3 { + pub version: u8, + pub r#type: u8, + pub metadata_size: u32, + pub flags: u32, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct VariableAuthentication3Nonce { + pub nonce_size: u32, + pub nonce: [u8; N], +} + +pub const HARDWARE_ERROR_VARIABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x414E6BDD, + 0xE47B, + 0x47cc, + 0xB2, + 0x44, + &[0xBB, 0x61, 0x02, 0x0C, 0xF5, 0x16], +); + +// +// Virtual Mappings +// +// UEFI runs in an 1-to-1 mapping from virtual to physical addresses. But once you exit boot +// services, you can apply any address mapping you want, as long as you inform UEFI about it (or, +// alternatively, stop using the UEFI runtime services). +// + +pub const OPTIONAL_POINTER: u32 = 0x00000001u32; + +// +// System Reset +// +// UEFI provides access to firmware functions to reset the system. This includes a wide variety of +// different possible resets. +// + +pub type ResetType = u32; + +pub const RESET_COLD: ResetType = 0x00000000; +pub const RESET_WARM: ResetType = 0x00000001; +pub const RESET_SHUTDOWN: ResetType = 0x00000002; +pub const RESET_PLATFORM_SPECIFIC: ResetType = 0x00000003; + +// +// Update Capsules +// +// The process of firmware updates is generalized in UEFI. There are small blobs called capsules +// that you can push into the firmware to be run either immediately or on next reboot. +// + +#[repr(C)] +#[derive(Clone, Copy)] +pub union CapsuleBlockDescriptorUnion { + pub data_block: crate::base::PhysicalAddress, + pub continuation_pointer: crate::base::PhysicalAddress, +} + +#[repr(C)] +#[derive(Clone, Copy)] +pub struct CapsuleBlockDescriptor { + pub length: u64, + pub data: CapsuleBlockDescriptorUnion, +} + +pub const CAPSULE_FLAGS_PERSIST_ACROSS_RESET: u32 = 0x00010000u32; +pub const CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE: u32 = 0x00020000u32; +pub const CAPSULE_FLAGS_INITIATE_RESET: u32 = 0x00040000u32; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct CapsuleHeader { + pub capsule_guid: crate::base::Guid, + pub header_size: u32, + pub flags: u32, + pub capsule_image_size: u32, +} + +pub const OS_INDICATIONS_BOOT_TO_FW_UI: u64 = 0x0000000000000001u64; +pub const OS_INDICATIONS_TIMESTAMP_REVOCATION: u64 = 0x0000000000000002u64; +pub const OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED: u64 = 0x0000000000000004u64; +pub const OS_INDICATIONS_FMP_CAPSULE_SUPPORTED: u64 = 0x0000000000000008u64; +pub const OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED: u64 = 0x0000000000000010u64; +pub const OS_INDICATIONS_START_OS_RECOVERY: u64 = 0x0000000000000020u64; +pub const OS_INDICATIONS_START_PLATFORM_RECOVERY: u64 = 0x0000000000000040u64; + +pub const CAPSULE_REPORT_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x39b68c46, + 0xf7fb, + 0x441b, + 0xb6, + 0xec, + &[0x16, 0xb0, 0xf6, 0x98, 0x21, 0xf3], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct CapsuleResultVariableHeader { + pub variable_total_size: u32, + pub reserved: u32, + pub capsule_guid: crate::base::Guid, + pub capsule_processed: Time, + pub capsule_status: crate::base::Status, +} + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct CapsuleResultVariableFMP { + pub version: u16, + pub payload_index: u8, + pub update_image_index: u8, + pub update_image_type_id: crate::base::Guid, + pub capsule_file_name_and_target: [crate::base::Char16; N], +} + +// +// Tasks +// +// UEFI uses a simplified task model, and only ever runs on a single CPU. Usually, there is only +// one single task running on the system, which is the current execution. No interrupts are +// supported, other than timer interrupts. That is, all device management must be reliant on +// polling. +// +// You can, however, register callbacks to be run by the UEFI core. That is, either when execution +// is returned to the UEFI core, or when a timer interrupt fires, the scheduler will run the +// highest priority task next, interrupting the current task. You can use simple +// task-priority-levels (TPL) to adjust the priority of your callbacks and current task. +// + +pub const EVT_TIMER: u32 = 0x80000000u32; +pub const EVT_RUNTIME: u32 = 0x40000000u32; +pub const EVT_NOTIFY_WAIT: u32 = 0x00000100u32; +pub const EVT_NOTIFY_SIGNAL: u32 = 0x00000200u32; +pub const EVT_SIGNAL_EXIT_BOOT_SERVICES: u32 = 0x00000201u32; +pub const EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE: u32 = 0x60000202u32; + +pub type EventNotify = eficall! {fn(crate::base::Event, *mut core::ffi::c_void)}; + +pub const EVENT_GROUP_EXIT_BOOT_SERVICES: crate::base::Guid = crate::base::Guid::from_fields( + 0x27abf055, + 0xb1b8, + 0x4c26, + 0x80, + 0x48, + &[0x74, 0x8f, 0x37, 0xba, 0xa2, 0xdf], +); +pub const EVENT_GROUP_BEFORE_EXIT_BOOT_SERVICES: crate::base::Guid = crate::base::Guid::from_fields( + 0x8be0e274, + 0x3970, + 0x4b44, + 0x80, + 0xc5, + &[0x1a, 0xb9, 0x50, 0x2f, 0x3b, 0xfc], +); +pub const EVENT_GROUP_VIRTUAL_ADDRESS_CHANGE: crate::base::Guid = crate::base::Guid::from_fields( + 0x13fa7698, + 0xc831, + 0x49c7, + 0x87, + 0xea, + &[0x8f, 0x43, 0xfc, 0xc2, 0x51, 0x96], +); +pub const EVENT_GROUP_MEMORY_MAP_CHANGE: crate::base::Guid = crate::base::Guid::from_fields( + 0x78bee926, + 0x692f, + 0x48fd, + 0x9e, + 0xdb, + &[0x1, 0x42, 0x2e, 0xf0, 0xd7, 0xab], +); +pub const EVENT_GROUP_READY_TO_BOOT: crate::base::Guid = crate::base::Guid::from_fields( + 0x7ce88fb3, + 0x4bd7, + 0x4679, + 0x87, + 0xa8, + &[0xa8, 0xd8, 0xde, 0xe5, 0x0d, 0x2b], +); +pub const EVENT_GROUP_AFTER_READY_TO_BOOT: crate::base::Guid = crate::base::Guid::from_fields( + 0x3a2a00ad, + 0x98b9, + 0x4cdf, + 0xa4, + 0x78, + &[0x70, 0x27, 0x77, 0xf1, 0xc1, 0x0b], +); +pub const EVENT_GROUP_RESET_SYSTEM: crate::base::Guid = crate::base::Guid::from_fields( + 0x62da6a56, + 0x13fb, + 0x485a, + 0xa8, + 0xda, + &[0xa3, 0xdd, 0x79, 0x12, 0xcb, 0x6b], +); + +pub type TimerDelay = u32; + +pub const TIMER_CANCEL: TimerDelay = 0x00000000; +pub const TIMER_PERIODIC: TimerDelay = 0x00000001; +pub const TIMER_RELATIVE: TimerDelay = 0x00000002; + +pub const TPL_APPLICATION: crate::base::Tpl = 4; +pub const TPL_CALLBACK: crate::base::Tpl = 8; +pub const TPL_NOTIFY: crate::base::Tpl = 16; +pub const TPL_HIGH_LEVEL: crate::base::Tpl = 31; + +// +// Memory management +// +// The UEFI boot services provide you pool-allocation helpers to reserve memory. The region for +// each allocation can be selected by the caller, allowing to reserve memory that even survives +// beyond boot services. However, dynamic allocations can only performed via boot services, so no +// dynamic modifications can be done once you exit boot services. +// + +pub type AllocateType = u32; + +pub const ALLOCATE_ANY_PAGES: AllocateType = 0x00000000; +pub const ALLOCATE_MAX_ADDRESS: AllocateType = 0x00000001; +pub const ALLOCATE_ADDRESS: AllocateType = 0x00000002; + +pub type MemoryType = u32; + +pub const RESERVED_MEMORY_TYPE: MemoryType = 0x00000000; +pub const LOADER_CODE: MemoryType = 0x00000001; +pub const LOADER_DATA: MemoryType = 0x00000002; +pub const BOOT_SERVICES_CODE: MemoryType = 0x00000003; +pub const BOOT_SERVICES_DATA: MemoryType = 0x00000004; +pub const RUNTIME_SERVICES_CODE: MemoryType = 0x00000005; +pub const RUNTIME_SERVICES_DATA: MemoryType = 0x00000006; +pub const CONVENTIONAL_MEMORY: MemoryType = 0x00000007; +pub const UNUSABLE_MEMORY: MemoryType = 0x00000008; +pub const ACPI_RECLAIM_MEMORY: MemoryType = 0x00000009; +pub const ACPI_MEMORY_NVS: MemoryType = 0x0000000a; +pub const MEMORY_MAPPED_IO: MemoryType = 0x0000000b; +pub const MEMORY_MAPPED_IO_PORT_SPACE: MemoryType = 0x0000000c; +pub const PAL_CODE: MemoryType = 0x0000000d; +pub const PERSISTENT_MEMORY: MemoryType = 0x0000000e; +pub const UNACCEPTED_MEMORY_TYPE: MemoryType = 0x0000000f; + +pub const MEMORY_UC: u64 = 0x0000000000000001u64; +pub const MEMORY_WC: u64 = 0x0000000000000002u64; +pub const MEMORY_WT: u64 = 0x0000000000000004u64; +pub const MEMORY_WB: u64 = 0x0000000000000008u64; +pub const MEMORY_UCE: u64 = 0x0000000000000010u64; +pub const MEMORY_WP: u64 = 0x0000000000001000u64; +pub const MEMORY_RP: u64 = 0x0000000000002000u64; +pub const MEMORY_XP: u64 = 0x0000000000004000u64; +pub const MEMORY_NV: u64 = 0x0000000000008000u64; +pub const MEMORY_MORE_RELIABLE: u64 = 0x0000000000010000u64; +pub const MEMORY_RO: u64 = 0x0000000000020000u64; +pub const MEMORY_SP: u64 = 0x0000000000040000u64; +pub const MEMORY_CPU_CRYPTO: u64 = 0x0000000000080000u64; +pub const MEMORY_RUNTIME: u64 = 0x8000000000000000u64; +pub const MEMORY_ISA_VALID: u64 = 0x4000000000000000u64; +pub const MEMORY_ISA_MASK: u64 = 0x0FFFF00000000000u64; + +/// Mask of memory attributes that specify cacheability attributes. No symbol +/// is defined by the spec, but the attributes are annotated in the spec. Note +/// that `MEMORY_WP`, despite its name, is treated as cacheability attribute. +/// Use `MEMORY_RO` as replacement access attribute (see the spec for details). +pub const CACHE_ATTRIBUTE_MASK: u64 = + MEMORY_UC | MEMORY_WC | MEMORY_WT | MEMORY_WB | MEMORY_UCE | MEMORY_WP; + +/// Mask of memory attributes that specify access protection attributes. No +/// symbol is defined by the spec, but the attributes are annotated in the +/// spec. Note that `MEMORY_WP` is treated as cacheability attribute, and its +/// access protection functionality is replaced by `MEMORY_RO`. +pub const MEMORY_ACCESS_MASK: u64 = MEMORY_RP | MEMORY_XP | MEMORY_RO; + +/// Mask of memory attributes that specify properties of a memory region that +/// can be managed via the CPU architecture protocol. +pub const MEMORY_ATTRIBUTE_MASK: u64 = MEMORY_ACCESS_MASK | MEMORY_SP | MEMORY_CPU_CRYPTO; + +pub const MEMORY_DESCRIPTOR_VERSION: u32 = 0x00000001u32; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct MemoryDescriptor { + pub r#type: u32, + pub physical_start: crate::base::PhysicalAddress, + pub virtual_start: crate::base::VirtualAddress, + pub number_of_pages: u64, + pub attribute: u64, +} + +// +// Protocol Management +// +// The UEFI driver model provides ways to have bus-drivers, device-drivers, and applications as +// separate, independent entities. They use protocols to communicate, and handles to refer to +// common state. Drivers and devices can be registered dynamically at runtime, and can support +// hotplugging. +// + +pub type InterfaceType = u32; + +pub const NATIVE_INTERFACE: InterfaceType = 0x00000000; + +pub type LocateSearchType = u32; + +pub const ALL_HANDLES: LocateSearchType = 0x00000000; +pub const BY_REGISTER_NOTIFY: LocateSearchType = 0x00000001; +pub const BY_PROTOCOL: LocateSearchType = 0x00000002; + +pub const OPEN_PROTOCOL_BY_HANDLE_PROTOCOL: u32 = 0x00000001u32; +pub const OPEN_PROTOCOL_GET_PROTOCOL: u32 = 0x00000002u32; +pub const OPEN_PROTOCOL_TEST_PROTOCOL: u32 = 0x00000004u32; +pub const OPEN_PROTOCOL_BY_CHILD_CONTROLLER: u32 = 0x00000008u32; +pub const OPEN_PROTOCOL_BY_DRIVER: u32 = 0x00000010u32; +pub const OPEN_PROTOCOL_EXCLUSIVE: u32 = 0x00000020u32; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct OpenProtocolInformationEntry { + pub agent_handle: crate::base::Handle, + pub controller_handle: crate::base::Handle, + pub attributes: u32, + pub open_count: u32, +} + +// +// Configuration Tables +// +// The system table contains an array of auxiliary tables, indexed by their GUID, called +// configuration tables. Each table uses the generic ConfigurationTable structure as header. +// + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ConfigurationTable { + pub vendor_guid: crate::base::Guid, + pub vendor_table: *mut core::ffi::c_void, +} + +pub const RT_PROPERTIES_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xeb66918a, + 0x7eef, + 0x402a, + 0x84, + 0x2e, + &[0x93, 0x1d, 0x21, 0xc3, 0x8a, 0xe9], +); + +pub const RT_PROPERTIES_TABLE_VERSION: u16 = 0x0001; + +pub const RT_SUPPORTED_GET_TIME: u32 = 0x0000001; +pub const RT_SUPPORTED_SET_TIME: u32 = 0x0000002; +pub const RT_SUPPORTED_GET_WAKEUP_TIME: u32 = 0x0000004; +pub const RT_SUPPORTED_SET_WAKEUP_TIME: u32 = 0x0000008; +pub const RT_SUPPORTED_GET_VARIABLE: u32 = 0x00000010; +pub const RT_SUPPORTED_GET_NEXT_VARIABLE_NAME: u32 = 0x00000020; +pub const RT_SUPPORTED_SET_VARIABLE: u32 = 0x00000040; +pub const RT_SUPPORTED_SET_VIRTUAL_ADDRESS_MAP: u32 = 0x00000080; +pub const RT_SUPPORTED_CONVERT_POINTER: u32 = 0x00000100; +pub const RT_SUPPORTED_GET_NEXT_HIGH_MONOTONIC_COUNT: u32 = 0x00000200; +pub const RT_SUPPORTED_RESET_SYSTEM: u32 = 0x00000400; +pub const RT_SUPPORTED_UPDATE_CAPSULE: u32 = 0x00000800; +pub const RT_SUPPORTED_QUERY_CAPSULE_CAPABILITIES: u32 = 0x00001000; +pub const RT_SUPPORTED_QUERY_VARIABLE_INFO: u32 = 0x00002000; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct RtPropertiesTable { + pub version: u16, + pub length: u16, + pub runtime_services_supported: u32, +} + +pub const PROPERTIES_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x880aaca3, + 0x4adc, + 0x4a04, + 0x90, + 0x79, + &[0xb7, 0x47, 0x34, 0x8, 0x25, 0xe5], +); + +pub const PROPERTIES_TABLE_VERSION: u32 = 0x00010000u32; + +pub const PROPERTIES_RUNTIME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA: u64 = 0x1u64; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct PropertiesTable { + pub version: u32, + pub length: u32, + pub memory_protection_attribute: u64, +} + +pub const MEMORY_ATTRIBUTES_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xdcfa911d, + 0x26eb, + 0x469f, + 0xa2, + 0x20, + &[0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20], +); + +pub const MEMORY_ATTRIBUTES_TABLE_VERSION: u32 = 0x00000001u32; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct MemoryAttributesTable { + pub version: u32, + pub number_of_entries: u32, + pub descriptor_size: u32, + pub reserved: u32, + pub entry: [MemoryDescriptor; N], +} + +pub const CONFORMANCE_PROFILES_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x36122546, + 0xf7e7, + 0x4c8f, + 0xbd, + 0x9b, + &[0xeb, 0x85, 0x25, 0xb5, 0x0c, 0x0b], +); + +pub const CONFORMANCE_PROFILES_TABLE_VERSION: u16 = 0x0001; + +pub const CONFORMANCE_PROFILES_UEFI_SPEC_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x523c91af, + 0xa195, + 0x4382, + 0x81, + 0x8d, + &[0x29, 0x5f, 0xe4, 0x00, 0x64, 0x65], +); + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct ConformanceProfilesTable { + pub version: u16, + pub number_of_profiles: u16, + pub conformance_profiles: [crate::base::Guid; N], +} + +// +// External Configuration Tables +// +// This lists the Guids of configuration tables of other industry standards, as listed in +// the UEFI specification. See each standard for details on the data included in each table. +// + +pub const ACPI_10_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xeb9d2d30, + 0x2d88, + 0x11d3, + 0x9a, + 0x16, + &[0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d], +); + +pub const ACPI_20_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x8868e871, + 0xe4f1, + 0x11d3, + 0xbc, + 0x22, + &[0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81], +); + +pub const DTB_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xb1b621d5, + 0xf19c, + 0x41a5, + 0x83, + 0x0b, + &[0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0], +); + +pub const JSON_CAPSULE_DATA_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x35e7a725, + 0x8dd2, + 0x4cac, + 0x80, + 0x11, + &[0x33, 0xcd, 0xa8, 0x10, 0x90, 0x56], +); + +pub const JSON_CAPSULE_RESULT_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xdbc461c3, + 0xb3de, + 0x422a, + 0xb9, + 0xb4, + &[0x98, 0x86, 0xfd, 0x49, 0xa1, 0xe5], +); + +pub const JSON_CONFIG_DATA_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0x87367f87, + 0x1119, + 0x41ce, + 0xaa, + 0xec, + &[0x8b, 0xe0, 0x11, 0x1f, 0x55, 0x8a], +); + +pub const MPS_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xeb9d2d2f, + 0x2d88, + 0x11d3, + 0x9a, + 0x16, + &[0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d], +); + +pub const SAL_SYSTEM_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xeb9d2d32, + 0x2d88, + 0x11d3, + 0x9a, + 0x16, + &[0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d], +); + +pub const SMBIOS_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xeb9d2d31, + 0x2d88, + 0x11d3, + 0x9a, + 0x16, + &[0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d], +); + +pub const SMBIOS3_TABLE_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xf2fd1544, + 0x9794, + 0x4a2c, + 0x99, + 0x2e, + &[0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94], +); + +// +// Global Tables +// +// UEFI uses no global state, so all access to UEFI internal state is done through vtables you get +// passed to your entry-point. The global entry is the system-table, which encorporates several +// sub-tables, including the runtime and boot service tables, and configuration tables (including +// vendor extensions). +// + +pub const SPECIFICATION_REVISION: u32 = SYSTEM_TABLE_REVISION; + +#[repr(C)] +#[derive(Clone, Copy, Debug)] +pub struct TableHeader { + pub signature: u64, + pub revision: u32, + pub header_size: u32, + pub crc32: u32, + pub reserved: u32, +} + +pub const RUNTIME_SERVICES_SIGNATURE: u64 = 0x56524553544e5552u64; // "RUNTSERV" +pub const RUNTIME_SERVICES_REVISION: u32 = SPECIFICATION_REVISION; + +pub type RuntimeGetTime = eficall! {fn( + *mut Time, + *mut TimeCapabilities, +) -> crate::base::Status}; + +pub type RuntimeSetTime = eficall! {fn( + *mut Time, +) -> crate::base::Status}; + +pub type RuntimeGetWakeupTime = eficall! {fn( + *mut crate::base::Boolean, + *mut crate::base::Boolean, + *mut Time, +) -> crate::base::Status}; + +pub type RuntimeSetWakeupTime = eficall! {fn( + crate::base::Boolean, + *mut Time, +) -> crate::base::Status}; + +pub type RuntimeSetVirtualAddressMap = eficall! {fn( + usize, + usize, + u32, + *mut MemoryDescriptor, +) -> crate::base::Status}; + +pub type RuntimeConvertPointer = eficall! {fn( + usize, + *mut *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type RuntimeGetVariable = eficall! {fn( + *mut crate::base::Char16, + *mut crate::base::Guid, + *mut u32, + *mut usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type RuntimeGetNextVariableName = eficall! {fn( + *mut usize, + *mut crate::base::Char16, + *mut crate::base::Guid, +) -> crate::base::Status}; + +pub type RuntimeSetVariable = eficall! {fn( + *mut crate::base::Char16, + *mut crate::base::Guid, + u32, + usize, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type RuntimeGetNextHighMonoCount = eficall! {fn( + *mut u32, +) -> crate::base::Status}; + +pub type RuntimeResetSystem = eficall! {fn( + ResetType, + crate::base::Status, + usize, + *mut core::ffi::c_void, +)}; + +pub type RuntimeUpdateCapsule = eficall! {fn( + *mut *mut CapsuleHeader, + usize, + crate::base::PhysicalAddress, +) -> crate::base::Status}; + +pub type RuntimeQueryCapsuleCapabilities = eficall! {fn( + *mut *mut CapsuleHeader, + usize, + *mut u64, + *mut ResetType, +) -> crate::base::Status}; + +pub type RuntimeQueryVariableInfo = eficall! {fn( + u32, + *mut u64, + *mut u64, + *mut u64, +) -> crate::base::Status}; + +#[repr(C)] +pub struct RuntimeServices { + pub hdr: TableHeader, + + pub get_time: RuntimeGetTime, + pub set_time: RuntimeSetTime, + pub get_wakeup_time: RuntimeGetWakeupTime, + pub set_wakeup_time: RuntimeSetWakeupTime, + + pub set_virtual_address_map: RuntimeSetVirtualAddressMap, + pub convert_pointer: RuntimeConvertPointer, + + pub get_variable: RuntimeGetVariable, + pub get_next_variable_name: RuntimeGetNextVariableName, + pub set_variable: RuntimeSetVariable, + + pub get_next_high_mono_count: RuntimeGetNextHighMonoCount, + pub reset_system: RuntimeResetSystem, + + pub update_capsule: RuntimeUpdateCapsule, + pub query_capsule_capabilities: RuntimeQueryCapsuleCapabilities, + pub query_variable_info: RuntimeQueryVariableInfo, +} + +pub const BOOT_SERVICES_SIGNATURE: u64 = 0x56524553544f4f42u64; // "BOOTSERV" +pub const BOOT_SERVICES_REVISION: u32 = SPECIFICATION_REVISION; + +pub type BootRaiseTpl = eficall! {fn( + crate::base::Tpl, +) -> crate::base::Tpl}; + +pub type BootRestoreTpl = eficall! {fn( + crate::base::Tpl, +)}; + +pub type BootAllocatePages = eficall! {fn( + AllocateType, + MemoryType, + usize, + *mut crate::base::PhysicalAddress, +) -> crate::base::Status}; + +pub type BootFreePages = eficall! {fn( + crate::base::PhysicalAddress, + usize, +) -> crate::base::Status}; + +pub type BootGetMemoryMap = eficall! {fn( + *mut usize, + *mut MemoryDescriptor, + *mut usize, + *mut usize, + *mut u32, +) -> crate::base::Status}; + +pub type BootAllocatePool = eficall! {fn( + MemoryType, + usize, + *mut *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type BootFreePool = eficall! {fn( + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type BootCreateEvent = eficall! {fn( + u32, + crate::base::Tpl, + Option, + *mut core::ffi::c_void, + *mut crate::base::Event, +) -> crate::base::Status}; + +pub type BootSetTimer = eficall! {fn( + crate::base::Event, + TimerDelay, + u64, +) -> crate::base::Status}; + +pub type BootWaitForEvent = eficall! {fn( + usize, + *mut crate::base::Event, + *mut usize, +) -> crate::base::Status}; + +pub type BootSignalEvent = eficall! {fn( + crate::base::Event, +) -> crate::base::Status}; + +pub type BootCloseEvent = eficall! {fn( + crate::base::Event, +) -> crate::base::Status}; + +pub type BootCheckEvent = eficall! {fn( + crate::base::Event, +) -> crate::base::Status}; + +pub type BootInstallProtocolInterface = eficall! {fn( + *mut crate::base::Handle, + *mut crate::base::Guid, + InterfaceType, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type BootReinstallProtocolInterface = eficall! {fn( + crate::base::Handle, + *mut crate::base::Guid, + *mut core::ffi::c_void, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type BootUninstallProtocolInterface = eficall! {fn( + crate::base::Handle, + *mut crate::base::Guid, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type BootHandleProtocol = eficall! {fn( + crate::base::Handle, + *mut crate::base::Guid, + *mut *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type BootRegisterProtocolNotify = eficall! {fn( + *mut crate::base::Guid, + crate::base::Event, + *mut *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type BootLocateHandle = eficall! {fn( + LocateSearchType, + *mut crate::base::Guid, + *mut core::ffi::c_void, + *mut usize, + *mut crate::base::Handle, +) -> crate::base::Status}; + +pub type BootLocateDevicePath = eficall! {fn( + *mut crate::base::Guid, + *mut *mut crate::protocols::device_path::Protocol, + *mut crate::base::Handle, +) -> crate::base::Status}; + +pub type BootInstallConfigurationTable = eficall! {fn( + *mut crate::base::Guid, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type BootLoadImage = eficall! {fn( + crate::base::Boolean, + crate::base::Handle, + *mut crate::protocols::device_path::Protocol, + *mut core::ffi::c_void, + usize, + *mut crate::base::Handle, +) -> crate::base::Status}; + +pub type BootStartImage = eficall! {fn( + crate::base::Handle, + *mut usize, + *mut *mut crate::base::Char16, +) -> crate::base::Status}; + +pub type BootExit = eficall! {fn( + crate::base::Handle, + crate::base::Status, + usize, + *mut crate::base::Char16, +) -> crate::base::Status}; + +pub type BootUnloadImage = eficall! {fn( + crate::base::Handle, +) -> crate::base::Status}; + +pub type BootExitBootServices = eficall! {fn( + crate::base::Handle, + usize, +) -> crate::base::Status}; + +pub type BootGetNextMonotonicCount = eficall! {fn( + *mut u64, +) -> crate::base::Status}; + +pub type BootStall = eficall! {fn( + usize, +) -> crate::base::Status}; + +pub type BootSetWatchdogTimer = eficall! {fn( + usize, + u64, + usize, + *mut crate::base::Char16, +) -> crate::base::Status}; + +pub type BootConnectController = eficall! {fn( + crate::base::Handle, + *mut crate::base::Handle, + *mut crate::protocols::device_path::Protocol, + crate::base::Boolean, +) -> crate::base::Status}; + +pub type BootDisconnectController = eficall! {fn( + crate::base::Handle, + crate::base::Handle, + crate::base::Handle, +) -> crate::base::Status}; + +pub type BootOpenProtocol = eficall! {fn( + crate::base::Handle, + *mut crate::base::Guid, + *mut *mut core::ffi::c_void, + crate::base::Handle, + crate::base::Handle, + u32, +) -> crate::base::Status}; + +pub type BootCloseProtocol = eficall! {fn( + crate::base::Handle, + *mut crate::base::Guid, + crate::base::Handle, + crate::base::Handle, +) -> crate::base::Status}; + +pub type BootOpenProtocolInformation = eficall! {fn( + crate::base::Handle, + *mut crate::base::Guid, + *mut *mut OpenProtocolInformationEntry, + *mut usize, +) -> crate::base::Status}; + +pub type BootProtocolsPerHandle = eficall! {fn( + crate::base::Handle, + *mut *mut *mut crate::base::Guid, + *mut usize, +) -> crate::base::Status}; + +pub type BootLocateHandleBuffer = eficall! {fn( + LocateSearchType, + *mut crate::base::Guid, + *mut core::ffi::c_void, + *mut usize, + *mut *mut crate::base::Handle, +) -> crate::base::Status}; + +pub type BootLocateProtocol = eficall! {fn( + *mut crate::base::Guid, + *mut core::ffi::c_void, + *mut *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type BootInstallMultipleProtocolInterfaces = eficall! {fn( + *mut crate::base::Handle, + // XXX: Actual definition is variadic. See eficall!{} for details. + *mut core::ffi::c_void, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type BootUninstallMultipleProtocolInterfaces = eficall! {fn( + *mut crate::base::Handle, + // XXX: Actual definition is variadic. See eficall!{} for details. + *mut core::ffi::c_void, + *mut core::ffi::c_void, +) -> crate::base::Status}; + +pub type BootCalculateCrc32 = eficall! {fn( + *mut core::ffi::c_void, + usize, + *mut u32, +) -> crate::base::Status}; + +pub type BootCopyMem = eficall! {fn( + *mut core::ffi::c_void, + *mut core::ffi::c_void, + usize, +)}; + +pub type BootSetMem = eficall! {fn( + *mut core::ffi::c_void, + usize, + u8, +)}; + +pub type BootCreateEventEx = eficall! {fn( + u32, + crate::base::Tpl, + Option, + *const core::ffi::c_void, + *const crate::base::Guid, + *mut crate::base::Event, +) -> crate::base::Status}; + +#[repr(C)] +pub struct BootServices { + pub hdr: TableHeader, + + pub raise_tpl: BootRaiseTpl, + pub restore_tpl: BootRestoreTpl, + + pub allocate_pages: BootAllocatePages, + pub free_pages: BootFreePages, + pub get_memory_map: BootGetMemoryMap, + pub allocate_pool: BootAllocatePool, + pub free_pool: BootFreePool, + + pub create_event: BootCreateEvent, + pub set_timer: BootSetTimer, + pub wait_for_event: BootWaitForEvent, + pub signal_event: BootSignalEvent, + pub close_event: BootCloseEvent, + pub check_event: BootCheckEvent, + + pub install_protocol_interface: BootInstallProtocolInterface, + pub reinstall_protocol_interface: BootReinstallProtocolInterface, + pub uninstall_protocol_interface: BootUninstallProtocolInterface, + pub handle_protocol: BootHandleProtocol, + pub reserved: *mut core::ffi::c_void, + pub register_protocol_notify: BootRegisterProtocolNotify, + pub locate_handle: BootLocateHandle, + pub locate_device_path: BootLocateDevicePath, + + pub install_configuration_table: BootInstallConfigurationTable, + + pub load_image: BootLoadImage, + pub start_image: BootStartImage, + pub exit: BootExit, + pub unload_image: BootUnloadImage, + pub exit_boot_services: BootExitBootServices, + + pub get_next_monotonic_count: BootGetNextMonotonicCount, + pub stall: BootStall, + pub set_watchdog_timer: BootSetWatchdogTimer, + + // 1.1+ + pub connect_controller: BootConnectController, + pub disconnect_controller: BootDisconnectController, + + pub open_protocol: BootOpenProtocol, + pub close_protocol: BootCloseProtocol, + pub open_protocol_information: BootOpenProtocolInformation, + + pub protocols_per_handle: BootProtocolsPerHandle, + pub locate_handle_buffer: BootLocateHandleBuffer, + pub locate_protocol: BootLocateProtocol, + pub install_multiple_protocol_interfaces: BootInstallMultipleProtocolInterfaces, + pub uninstall_multiple_protocol_interfaces: BootUninstallMultipleProtocolInterfaces, + + pub calculate_crc32: BootCalculateCrc32, + + pub copy_mem: BootCopyMem, + pub set_mem: BootSetMem, + + // 2.0+ + pub create_event_ex: BootCreateEventEx, +} + +pub const SYSTEM_TABLE_REVISION_2_70: u32 = (2 << 16) | (70); +pub const SYSTEM_TABLE_REVISION_2_60: u32 = (2 << 16) | (60); +pub const SYSTEM_TABLE_REVISION_2_50: u32 = (2 << 16) | (50); +pub const SYSTEM_TABLE_REVISION_2_40: u32 = (2 << 16) | (40); +pub const SYSTEM_TABLE_REVISION_2_31: u32 = (2 << 16) | (31); +pub const SYSTEM_TABLE_REVISION_2_30: u32 = (2 << 16) | (30); +pub const SYSTEM_TABLE_REVISION_2_20: u32 = (2 << 16) | (20); +pub const SYSTEM_TABLE_REVISION_2_10: u32 = (2 << 16) | (10); +pub const SYSTEM_TABLE_REVISION_2_00: u32 = (2 << 16) | (0); +pub const SYSTEM_TABLE_REVISION_1_10: u32 = (1 << 16) | (10); +pub const SYSTEM_TABLE_REVISION_1_02: u32 = (1 << 16) | (2); + +pub const SYSTEM_TABLE_SIGNATURE: u64 = 0x5453595320494249u64; // "IBI SYST" +pub const SYSTEM_TABLE_REVISION: u32 = SYSTEM_TABLE_REVISION_2_70; + +#[repr(C)] +pub struct SystemTable { + pub hdr: TableHeader, + pub firmware_vendor: *mut crate::base::Char16, + pub firmware_revision: u32, + + pub console_in_handle: crate::base::Handle, + pub con_in: *mut crate::protocols::simple_text_input::Protocol, + pub console_out_handle: crate::base::Handle, + pub con_out: *mut crate::protocols::simple_text_output::Protocol, + pub standard_error_handle: crate::base::Handle, + pub std_err: *mut crate::protocols::simple_text_output::Protocol, + + pub runtime_services: *mut RuntimeServices, + pub boot_services: *mut BootServices, + + pub number_of_table_entries: usize, + pub configuration_table: *mut ConfigurationTable, +} diff --git a/src/rust/vendor/r-efi/src/vendor.rs b/src/rust/vendor/r-efi/src/vendor.rs new file mode 100644 index 000000000..d931b8fc3 --- /dev/null +++ b/src/rust/vendor/r-efi/src/vendor.rs @@ -0,0 +1,10 @@ +//! UEFI Vendor Protocols +//! +//! Many vendor protocols are not part of the official specification. But we +//! still allow importing them here, so we have a central place to collect +//! them. Note that we separate them by vendor-name, which is not the best +//! name-space but should be acceptible. + +pub mod intel { + pub mod console_control; +} diff --git a/src/rust/vendor/r-efi/src/vendor/intel/console_control.rs b/src/rust/vendor/r-efi/src/vendor/intel/console_control.rs new file mode 100644 index 000000000..a6fbf1588 --- /dev/null +++ b/src/rust/vendor/r-efi/src/vendor/intel/console_control.rs @@ -0,0 +1,37 @@ +//! Console Control Protocol +//! +//! The console-control protocols allows modifying the behavior of the default +//! console device. It is supported by TianoCore and widely adopted. + +pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields( + 0xf42f7782, + 0x012e, + 0x4c12, + 0x99, + 0x56, + &[0x49, 0xf9, 0x43, 0x04, 0xf7, 0x21], +); + +pub type ScreenMode = u32; + +pub const SCREEN_TEXT: ScreenMode = 0x00000000; +pub const SCREEN_GRAPHICS: ScreenMode = 0x00000001; +pub const SCREEN_MAX_VALUE: ScreenMode = 0x00000002; + +#[repr(C)] +pub struct Protocol { + pub get_mode: eficall! {fn( + *mut Protocol, + *mut ScreenMode, + *mut crate::base::Boolean, + *mut crate::base::Boolean, + ) -> crate::base::Status}, + pub set_mode: eficall! {fn( + *mut Protocol, + ScreenMode, + ) -> crate::base::Status}, + pub lock_std_in: eficall! {fn( + *mut Protocol, + *mut crate::base::Char16, + ) -> crate::base::Status}, +} diff --git a/src/rust/vendor/rustc-demangle/.cargo-checksum.json b/src/rust/vendor/rustc-demangle/.cargo-checksum.json new file mode 100644 index 000000000..24432280a --- /dev/null +++ b/src/rust/vendor/rustc-demangle/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"1e2ff162f1fae19b2e5af0e0e3385e194c929ce98416e8b8af4b9e99412bb0d2","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"3bb7af78423e95b207beebd452cdd973d65663cf25a0fc9358c588f53783293c","src/legacy.rs":"b4d5a140ed0bf2d792431961d6fd44a21c99235489a2c9f6717d1577a42c09ce","src/lib.rs":"607fe60c1e65da3f86a0b4b8fececb7db79049a0cd4cb316492e8e6593bf39c6","src/v0-large-test-symbols/early-recursion-limit":"96861a7042db35ee0bd04802820d0f2d6a3b534ce13547912b6364001ffd1494","src/v0.rs":"bcfaed410cf8383843e2ee8fd3fd46e133cb95a330d431fe6b24062d4762074f"},"package":"719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"} \ No newline at end of file diff --git a/src/rust/vendor/rustc-demangle/Cargo.toml b/src/rust/vendor/rustc-demangle/Cargo.toml new file mode 100644 index 000000000..c4e53abff --- /dev/null +++ b/src/rust/vendor/rustc-demangle/Cargo.toml @@ -0,0 +1,58 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +name = "rustc-demangle" +version = "0.1.24" +authors = ["Alex Crichton "] +build = false +autobins = false +autoexamples = false +autotests = false +autobenches = false +description = """ +Rust compiler symbol demangling. +""" +homepage = "https://github.com/rust-lang/rustc-demangle" +documentation = "https://docs.rs/rustc-demangle" +readme = "README.md" +license = "MIT/Apache-2.0" +repository = "https://github.com/rust-lang/rustc-demangle" + +[package.metadata.docs.rs] +features = ["std"] +rustdoc-args = [ + "--cfg", + "docsrs", +] + +[profile.release] +lto = true + +[lib] +name = "rustc_demangle" +path = "src/lib.rs" + +[dependencies.compiler_builtins] +version = "0.1.2" +optional = true + +[dependencies.core] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-core" + +[features] +rustc-dep-of-std = [ + "core", + "compiler_builtins", +] +std = [] diff --git a/src/rust/vendor/rustc-demangle/LICENSE-APACHE b/src/rust/vendor/rustc-demangle/LICENSE-APACHE new file mode 100644 index 000000000..16fe87b06 --- /dev/null +++ b/src/rust/vendor/rustc-demangle/LICENSE-APACHE @@ -0,0 +1,201 @@ + 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. diff --git a/src/rust/vendor/rustc-demangle/LICENSE-MIT b/src/rust/vendor/rustc-demangle/LICENSE-MIT new file mode 100644 index 000000000..39e0ed660 --- /dev/null +++ b/src/rust/vendor/rustc-demangle/LICENSE-MIT @@ -0,0 +1,25 @@ +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. diff --git a/src/rust/vendor/rustc-demangle/README.md b/src/rust/vendor/rustc-demangle/README.md new file mode 100644 index 000000000..0833e1e24 --- /dev/null +++ b/src/rust/vendor/rustc-demangle/README.md @@ -0,0 +1,48 @@ +# rustc-demangle + +Demangling for Rust symbols, written in Rust. + +[Documentation](https://docs.rs/rustc-demangle) + +## Usage + +You can add this as a dependency via your `Cargo.toml` + +```toml +[dependencies] +rustc-demangle = "0.1" +``` + +and then be sure to check out the [crate +documentation](https://docs.rs/rustc-demangle) for usage. + +## Usage from non-Rust languages + +You can also use this crate from other languages via the C API wrapper in the +`crates/capi` directory. This can be build with: + +```sh +$ cargo build -p rustc-demangle-capi --release +``` + +You'll then find `target/release/librustc_demangle.a` and +`target/release/librustc_demangle.so` (or a different name depending on your +platform). These objects implement the interface specified in +`crates/capi/include/rustc_demangle.h`. + +# License + +This project is licensed under either of + + * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or + http://www.apache.org/licenses/LICENSE-2.0) + * MIT license ([LICENSE-MIT](LICENSE-MIT) or + http://opensource.org/licenses/MIT) + +at your option. + +### Contribution + +Unless you explicitly state otherwise, any contribution intentionally submitted +for inclusion in rustc-demangle you, as defined in the Apache-2.0 license, shall +be dual licensed as above, without any additional terms or conditions. diff --git a/src/rust/vendor/rustc-demangle/src/legacy.rs b/src/rust/vendor/rustc-demangle/src/legacy.rs new file mode 100644 index 000000000..d55f3a1fd --- /dev/null +++ b/src/rust/vendor/rustc-demangle/src/legacy.rs @@ -0,0 +1,392 @@ +use core::char; +use core::fmt; + +/// Representation of a demangled symbol name. +pub struct Demangle<'a> { + inner: &'a str, + /// The number of ::-separated elements in the original name. + elements: usize, +} + +/// De-mangles a Rust symbol into a more readable version +/// +/// All Rust symbols by default are mangled as they contain characters that +/// cannot be represented in all object files. The mangling mechanism is similar +/// to C++'s, but Rust has a few specifics to handle items like lifetimes in +/// symbols. +/// +/// This function will take a **mangled** symbol and return a value. When printed, +/// the de-mangled version will be written. If the symbol does not look like +/// a mangled symbol, the original value will be written instead. +/// +/// # Examples +/// +/// ``` +/// use rustc_demangle::demangle; +/// +/// assert_eq!(demangle("_ZN4testE").to_string(), "test"); +/// assert_eq!(demangle("_ZN3foo3barE").to_string(), "foo::bar"); +/// assert_eq!(demangle("foo").to_string(), "foo"); +/// ``` + +// All Rust symbols are in theory lists of "::"-separated identifiers. Some +// assemblers, however, can't handle these characters in symbol names. To get +// around this, we use C++-style mangling. The mangling method is: +// +// 1. Prefix the symbol with "_ZN" +// 2. For each element of the path, emit the length plus the element +// 3. End the path with "E" +// +// For example, "_ZN4testE" => "test" and "_ZN3foo3barE" => "foo::bar". +// +// We're the ones printing our backtraces, so we can't rely on anything else to +// demangle our symbols. It's *much* nicer to look at demangled symbols, so +// this function is implemented to give us nice pretty output. +// +// Note that this demangler isn't quite as fancy as it could be. We have lots +// of other information in our symbols like hashes, version, type information, +// etc. Additionally, this doesn't handle glue symbols at all. +pub fn demangle(s: &str) -> Result<(Demangle, &str), ()> { + // First validate the symbol. If it doesn't look like anything we're + // expecting, we just print it literally. Note that we must handle non-Rust + // symbols because we could have any function in the backtrace. + let inner = if s.starts_with("_ZN") { + &s[3..] + } else if s.starts_with("ZN") { + // On Windows, dbghelp strips leading underscores, so we accept "ZN...E" + // form too. + &s[2..] + } else if s.starts_with("__ZN") { + // On OSX, symbols are prefixed with an extra _ + &s[4..] + } else { + return Err(()); + }; + + // only work with ascii text + if inner.bytes().any(|c| c & 0x80 != 0) { + return Err(()); + } + + let mut elements = 0; + let mut chars = inner.chars(); + let mut c = chars.next().ok_or(())?; + while c != 'E' { + // Decode an identifier element's length. + if !c.is_digit(10) { + return Err(()); + } + let mut len = 0usize; + while let Some(d) = c.to_digit(10) { + len = len + .checked_mul(10) + .and_then(|len| len.checked_add(d as usize)) + .ok_or(())?; + c = chars.next().ok_or(())?; + } + + // `c` already contains the first character of this identifier, skip it and + // all the other characters of this identifier, to reach the next element. + for _ in 0..len { + c = chars.next().ok_or(())?; + } + + elements += 1; + } + + Ok((Demangle { inner, elements }, chars.as_str())) +} + +// Rust hashes are hex digits with an `h` prepended. +fn is_rust_hash(s: &str) -> bool { + s.starts_with('h') && s[1..].chars().all(|c| c.is_digit(16)) +} + +impl<'a> fmt::Display for Demangle<'a> { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + // Alright, let's do this. + let mut inner = self.inner; + for element in 0..self.elements { + let mut rest = inner; + while rest.chars().next().unwrap().is_digit(10) { + rest = &rest[1..]; + } + let i: usize = inner[..(inner.len() - rest.len())].parse().unwrap(); + inner = &rest[i..]; + rest = &rest[..i]; + // Skip printing the hash if alternate formatting + // was requested. + if f.alternate() && element + 1 == self.elements && is_rust_hash(&rest) { + break; + } + if element != 0 { + f.write_str("::")?; + } + if rest.starts_with("_$") { + rest = &rest[1..]; + } + loop { + if rest.starts_with('.') { + if let Some('.') = rest[1..].chars().next() { + f.write_str("::")?; + rest = &rest[2..]; + } else { + f.write_str(".")?; + rest = &rest[1..]; + } + } else if rest.starts_with('$') { + let (escape, after_escape) = if let Some(end) = rest[1..].find('$') { + (&rest[1..=end], &rest[end + 2..]) + } else { + break; + }; + + // see src/librustc_codegen_utils/symbol_names/legacy.rs for these mappings + let unescaped = match escape { + "SP" => "@", + "BP" => "*", + "RF" => "&", + "LT" => "<", + "GT" => ">", + "LP" => "(", + "RP" => ")", + "C" => ",", + + _ => { + if escape.starts_with('u') { + let digits = &escape[1..]; + let all_lower_hex = digits.chars().all(|c| match c { + '0'..='9' | 'a'..='f' => true, + _ => false, + }); + let c = u32::from_str_radix(digits, 16) + .ok() + .and_then(char::from_u32); + if let (true, Some(c)) = (all_lower_hex, c) { + // FIXME(eddyb) do we need to filter out control codepoints? + if !c.is_control() { + c.fmt(f)?; + rest = after_escape; + continue; + } + } + } + break; + } + }; + f.write_str(unescaped)?; + rest = after_escape; + } else if let Some(i) = rest.find(|c| c == '$' || c == '.') { + f.write_str(&rest[..i])?; + rest = &rest[i..]; + } else { + break; + } + } + f.write_str(rest)?; + } + + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use std::prelude::v1::*; + + macro_rules! t { + ($a:expr, $b:expr) => { + assert!(ok($a, $b)) + }; + } + + macro_rules! t_err { + ($a:expr) => { + assert!(ok_err($a)) + }; + } + + macro_rules! t_nohash { + ($a:expr, $b:expr) => {{ + assert_eq!(format!("{:#}", ::demangle($a)), $b); + }}; + } + + fn ok(sym: &str, expected: &str) -> bool { + match ::try_demangle(sym) { + Ok(s) => { + if s.to_string() == expected { + true + } else { + println!("\n{}\n!=\n{}\n", s, expected); + false + } + } + Err(_) => { + println!("error demangling"); + false + } + } + } + + fn ok_err(sym: &str) -> bool { + match ::try_demangle(sym) { + Ok(_) => { + println!("succeeded in demangling"); + false + } + Err(_) => ::demangle(sym).to_string() == sym, + } + } + + #[test] + fn demangle() { + t_err!("test"); + t!("_ZN4testE", "test"); + t_err!("_ZN4test"); + t!("_ZN4test1a2bcE", "test::a::bc"); + } + + #[test] + fn demangle_dollars() { + t!("_ZN4$RP$E", ")"); + t!("_ZN8$RF$testE", "&test"); + t!("_ZN8$BP$test4foobE", "*test::foob"); + t!("_ZN9$u20$test4foobE", " test::foob"); + t!("_ZN35Bar$LT$$u5b$u32$u3b$$u20$4$u5d$$GT$E", "Bar<[u32; 4]>"); + } + + #[test] + fn demangle_many_dollars() { + t!("_ZN13test$u20$test4foobE", "test test::foob"); + t!("_ZN12test$BP$test4foobE", "test*test::foob"); + } + + #[test] + fn demangle_osx() { + t!( + "__ZN5alloc9allocator6Layout9for_value17h02a996811f781011E", + "alloc::allocator::Layout::for_value::h02a996811f781011" + ); + t!("__ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap18_MSG_FILE_LINE_COL17haf7cb8d5824ee659E", ">::unwrap::_MSG_FILE_LINE_COL::haf7cb8d5824ee659"); + t!("__ZN4core5slice89_$LT$impl$u20$core..iter..traits..IntoIterator$u20$for$u20$$RF$$u27$a$u20$$u5b$T$u5d$$GT$9into_iter17h450e234d27262170E", "core::slice::::into_iter::h450e234d27262170"); + } + + #[test] + fn demangle_windows() { + t!("ZN4testE", "test"); + t!("ZN13test$u20$test4foobE", "test test::foob"); + t!("ZN12test$RF$test4foobE", "test&test::foob"); + } + + #[test] + fn demangle_elements_beginning_with_underscore() { + t!("_ZN13_$LT$test$GT$E", ""); + t!("_ZN28_$u7b$$u7b$closure$u7d$$u7d$E", "{{closure}}"); + t!("_ZN15__STATIC_FMTSTRE", "__STATIC_FMTSTR"); + } + + #[test] + fn demangle_trait_impls() { + t!( + "_ZN71_$LT$Test$u20$$u2b$$u20$$u27$static$u20$as$u20$foo..Bar$LT$Test$GT$$GT$3barE", + ">::bar" + ); + } + + #[test] + fn demangle_without_hash() { + let s = "_ZN3foo17h05af221e174051e9E"; + t!(s, "foo::h05af221e174051e9"); + t_nohash!(s, "foo"); + } + + #[test] + fn demangle_without_hash_edgecases() { + // One element, no hash. + t_nohash!("_ZN3fooE", "foo"); + // Two elements, no hash. + t_nohash!("_ZN3foo3barE", "foo::bar"); + // Longer-than-normal hash. + t_nohash!("_ZN3foo20h05af221e174051e9abcE", "foo"); + // Shorter-than-normal hash. + t_nohash!("_ZN3foo5h05afE", "foo"); + // Valid hash, but not at the end. + t_nohash!("_ZN17h05af221e174051e93fooE", "h05af221e174051e9::foo"); + // Not a valid hash, missing the 'h'. + t_nohash!("_ZN3foo16ffaf221e174051e9E", "foo::ffaf221e174051e9"); + // Not a valid hash, has a non-hex-digit. + t_nohash!("_ZN3foo17hg5af221e174051e9E", "foo::hg5af221e174051e9"); + } + + #[test] + fn demangle_thinlto() { + // One element, no hash. + t!("_ZN3fooE.llvm.9D1C9369", "foo"); + t!("_ZN3fooE.llvm.9D1C9369@@16", "foo"); + t_nohash!( + "_ZN9backtrace3foo17hbb467fcdaea5d79bE.llvm.A5310EB9", + "backtrace::foo" + ); + } + + #[test] + fn demangle_llvm_ir_branch_labels() { + t!("_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17haf9727c2edfbc47bE.exit.i.i", "core::slice:: for [T]>::index_mut::haf9727c2edfbc47b.exit.i.i"); + t_nohash!("_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17haf9727c2edfbc47bE.exit.i.i", "core::slice:: for [T]>::index_mut.exit.i.i"); + } + + #[test] + fn demangle_ignores_suffix_that_doesnt_look_like_a_symbol() { + t_err!("_ZN3fooE.llvm moocow"); + } + + #[test] + fn dont_panic() { + ::demangle("_ZN2222222222222222222222EE").to_string(); + ::demangle("_ZN5*70527e27.ll34csaғE").to_string(); + ::demangle("_ZN5*70527a54.ll34_$b.1E").to_string(); + ::demangle( + "\ + _ZN5~saäb4e\n\ + 2734cOsbE\n\ + 5usage20h)3\0\0\0\0\0\0\07e2734cOsbE\ + ", + ) + .to_string(); + } + + #[test] + fn invalid_no_chop() { + t_err!("_ZNfooE"); + } + + #[test] + fn handle_assoc_types() { + t!("_ZN151_$LT$alloc..boxed..Box$LT$alloc..boxed..FnBox$LT$A$C$$u20$Output$u3d$R$GT$$u20$$u2b$$u20$$u27$a$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$9call_once17h69e8f44b3723e1caE", " + 'a> as core::ops::function::FnOnce>::call_once::h69e8f44b3723e1ca"); + } + + #[test] + fn handle_bang() { + t!( + "_ZN88_$LT$core..result..Result$LT$$u21$$C$$u20$E$GT$$u20$as$u20$std..process..Termination$GT$6report17hfc41d0da4a40b3e8E", + " as std::process::Termination>::report::hfc41d0da4a40b3e8" + ); + } + + #[test] + fn demangle_utf8_idents() { + t_nohash!( + "_ZN11utf8_idents157_$u10e1$$u10d0$$u10ed$$u10db$$u10d4$$u10da$$u10d0$$u10d3$_$u10d2$$u10d4$$u10db$$u10e0$$u10d8$$u10d4$$u10da$$u10d8$_$u10e1$$u10d0$$u10d3$$u10d8$$u10da$$u10d8$17h21634fd5714000aaE", + "utf8_idents::საჭმელად_გემრიელი_სადილი" + ); + } + + #[test] + fn demangle_issue_60925() { + t_nohash!( + "_ZN11issue_609253foo37Foo$LT$issue_60925..llv$u6d$..Foo$GT$3foo17h059a991a004536adE", + "issue_60925::foo::Foo::foo" + ); + } +} diff --git a/src/rust/vendor/rustc-demangle/src/lib.rs b/src/rust/vendor/rustc-demangle/src/lib.rs new file mode 100644 index 000000000..cafec2f92 --- /dev/null +++ b/src/rust/vendor/rustc-demangle/src/lib.rs @@ -0,0 +1,588 @@ +//! Demangle Rust compiler symbol names. +//! +//! This crate provides a `demangle` function which will return a `Demangle` +//! sentinel value that can be used to learn about the demangled version of a +//! symbol name. The demangled representation will be the same as the original +//! if it doesn't look like a mangled symbol name. +//! +//! `Demangle` can be formatted with the `Display` trait. The alternate +//! modifier (`#`) can be used to format the symbol name without the +//! trailing hash value. +//! +//! # Examples +//! +//! ``` +//! use rustc_demangle::demangle; +//! +//! assert_eq!(demangle("_ZN4testE").to_string(), "test"); +//! assert_eq!(demangle("_ZN3foo3barE").to_string(), "foo::bar"); +//! assert_eq!(demangle("foo").to_string(), "foo"); +//! // With hash +//! assert_eq!(format!("{}", demangle("_ZN3foo17h05af221e174051e9E")), "foo::h05af221e174051e9"); +//! // Without hash +//! assert_eq!(format!("{:#}", demangle("_ZN3foo17h05af221e174051e9E")), "foo"); +//! ``` + +#![no_std] +#![deny(missing_docs)] +#![cfg_attr(docsrs, feature(doc_cfg))] + +#[cfg(any(test, feature = "std"))] +#[macro_use] +extern crate std; + +// HACK(eddyb) helper macros for tests. +#[cfg(test)] +macro_rules! assert_contains { + ($s:expr, $needle:expr) => {{ + let (s, needle) = ($s, $needle); + assert!( + s.contains(needle), + "{:?} should've contained {:?}", + s, + needle + ); + }}; +} +#[cfg(test)] +macro_rules! assert_ends_with { + ($s:expr, $suffix:expr) => {{ + let (s, suffix) = ($s, $suffix); + assert!( + s.ends_with(suffix), + "{:?} should've ended in {:?}", + s, + suffix + ); + }}; +} + +mod legacy; +mod v0; + +use core::fmt::{self, Write as _}; + +/// Representation of a demangled symbol name. +pub struct Demangle<'a> { + style: Option>, + original: &'a str, + suffix: &'a str, +} + +enum DemangleStyle<'a> { + Legacy(legacy::Demangle<'a>), + V0(v0::Demangle<'a>), +} + +/// De-mangles a Rust symbol into a more readable version +/// +/// This function will take a **mangled** symbol and return a value. When printed, +/// the de-mangled version will be written. If the symbol does not look like +/// a mangled symbol, the original value will be written instead. +/// +/// # Examples +/// +/// ``` +/// use rustc_demangle::demangle; +/// +/// assert_eq!(demangle("_ZN4testE").to_string(), "test"); +/// assert_eq!(demangle("_ZN3foo3barE").to_string(), "foo::bar"); +/// assert_eq!(demangle("foo").to_string(), "foo"); +/// ``` +pub fn demangle(mut s: &str) -> Demangle { + // During ThinLTO LLVM may import and rename internal symbols, so strip out + // those endings first as they're one of the last manglings applied to symbol + // names. + let llvm = ".llvm."; + if let Some(i) = s.find(llvm) { + let candidate = &s[i + llvm.len()..]; + let all_hex = candidate.chars().all(|c| match c { + 'A'..='F' | '0'..='9' | '@' => true, + _ => false, + }); + + if all_hex { + s = &s[..i]; + } + } + + let mut suffix = ""; + let mut style = match legacy::demangle(s) { + Ok((d, s)) => { + suffix = s; + Some(DemangleStyle::Legacy(d)) + } + Err(()) => match v0::demangle(s) { + Ok((d, s)) => { + suffix = s; + Some(DemangleStyle::V0(d)) + } + // FIXME(eddyb) would it make sense to treat an unknown-validity + // symbol (e.g. one that errored with `RecursedTooDeep`) as + // v0-mangled, and have the error show up in the demangling? + // (that error already gets past this initial check, and therefore + // will show up in the demangling, if hidden behind a backref) + Err(v0::ParseError::Invalid) | Err(v0::ParseError::RecursedTooDeep) => None, + }, + }; + + // Output like LLVM IR adds extra period-delimited words. See if + // we are in that case and save the trailing words if so. + if !suffix.is_empty() { + if suffix.starts_with('.') && is_symbol_like(suffix) { + // Keep the suffix. + } else { + // Reset the suffix and invalidate the demangling. + suffix = ""; + style = None; + } + } + + Demangle { + style, + original: s, + suffix, + } +} + +#[cfg(feature = "std")] +fn demangle_line( + line: &str, + output: &mut impl std::io::Write, + include_hash: bool, +) -> std::io::Result<()> { + let mut head = 0; + while head < line.len() { + // Move to the next potential match + let next_head = match (line[head..].find("_ZN"), line[head..].find("_R")) { + (Some(idx), None) | (None, Some(idx)) => head + idx, + (Some(idx1), Some(idx2)) => head + idx1.min(idx2), + (None, None) => { + // No more matches... + line.len() + } + }; + output.write_all(line[head..next_head].as_bytes())?; + head = next_head; + // Find the non-matching character. + // + // If we do not find a character, then until the end of the line is the + // thing to demangle. + let match_end = line[head..] + .find(|ch: char| !(ch == '$' || ch == '.' || ch == '_' || ch.is_ascii_alphanumeric())) + .map(|idx| head + idx) + .unwrap_or(line.len()); + + let mangled = &line[head..match_end]; + head = head + mangled.len(); + if let Ok(demangled) = try_demangle(mangled) { + if include_hash { + write!(output, "{}", demangled)?; + } else { + write!(output, "{:#}", demangled)?; + } + } else { + output.write_all(mangled.as_bytes())?; + } + } + Ok(()) +} + +/// Process a stream of data from `input` into the provided `output`, demangling any symbols found +/// within. +/// +/// Note that the underlying implementation will perform many relatively small writes to the +/// output. If the output is expensive to write to (e.g., requires syscalls), consider using +/// `std::io::BufWriter`. +#[cfg(feature = "std")] +#[cfg_attr(docsrs, doc(cfg(feature = "std")))] +pub fn demangle_stream( + input: &mut R, + output: &mut W, + include_hash: bool, +) -> std::io::Result<()> { + let mut buf = std::string::String::new(); + // We read in lines to reduce the memory usage at any time. + // + // demangle_line is also more efficient with relatively small buffers as it will copy around + // trailing data during demangling. In the future we might directly stream to the output but at + // least right now that seems to be less efficient. + while input.read_line(&mut buf)? > 0 { + demangle_line(&buf, output, include_hash)?; + buf.clear(); + } + Ok(()) +} + +/// Error returned from the `try_demangle` function below when demangling fails. +#[derive(Debug, Clone)] +pub struct TryDemangleError { + _priv: (), +} + +/// The same as `demangle`, except return an `Err` if the string does not appear +/// to be a Rust symbol, rather than "demangling" the given string as a no-op. +/// +/// ``` +/// extern crate rustc_demangle; +/// +/// let not_a_rust_symbol = "la la la"; +/// +/// // The `try_demangle` function will reject strings which are not Rust symbols. +/// assert!(rustc_demangle::try_demangle(not_a_rust_symbol).is_err()); +/// +/// // While `demangle` will just pass the non-symbol through as a no-op. +/// assert_eq!(rustc_demangle::demangle(not_a_rust_symbol).as_str(), not_a_rust_symbol); +/// ``` +pub fn try_demangle(s: &str) -> Result { + let sym = demangle(s); + if sym.style.is_some() { + Ok(sym) + } else { + Err(TryDemangleError { _priv: () }) + } +} + +impl<'a> Demangle<'a> { + /// Returns the underlying string that's being demangled. + pub fn as_str(&self) -> &'a str { + self.original + } +} + +fn is_symbol_like(s: &str) -> bool { + s.chars().all(|c| { + // Once `char::is_ascii_punctuation` and `char::is_ascii_alphanumeric` + // have been stable for long enough, use those instead for clarity + is_ascii_alphanumeric(c) || is_ascii_punctuation(c) + }) +} + +// Copied from the documentation of `char::is_ascii_alphanumeric` +fn is_ascii_alphanumeric(c: char) -> bool { + match c { + '\u{0041}'..='\u{005A}' | '\u{0061}'..='\u{007A}' | '\u{0030}'..='\u{0039}' => true, + _ => false, + } +} + +// Copied from the documentation of `char::is_ascii_punctuation` +fn is_ascii_punctuation(c: char) -> bool { + match c { + '\u{0021}'..='\u{002F}' + | '\u{003A}'..='\u{0040}' + | '\u{005B}'..='\u{0060}' + | '\u{007B}'..='\u{007E}' => true, + _ => false, + } +} + +impl<'a> fmt::Display for DemangleStyle<'a> { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match *self { + DemangleStyle::Legacy(ref d) => fmt::Display::fmt(d, f), + DemangleStyle::V0(ref d) => fmt::Display::fmt(d, f), + } + } +} + +// Maximum size of the symbol that we'll print. +const MAX_SIZE: usize = 1_000_000; + +#[derive(Copy, Clone, Debug)] +struct SizeLimitExhausted; + +struct SizeLimitedFmtAdapter { + remaining: Result, + inner: F, +} + +impl fmt::Write for SizeLimitedFmtAdapter { + fn write_str(&mut self, s: &str) -> fmt::Result { + self.remaining = self + .remaining + .and_then(|r| r.checked_sub(s.len()).ok_or(SizeLimitExhausted)); + + match self.remaining { + Ok(_) => self.inner.write_str(s), + Err(SizeLimitExhausted) => Err(fmt::Error), + } + } +} + +impl<'a> fmt::Display for Demangle<'a> { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match self.style { + None => f.write_str(self.original)?, + Some(ref d) => { + let alternate = f.alternate(); + let mut size_limited_fmt = SizeLimitedFmtAdapter { + remaining: Ok(MAX_SIZE), + inner: &mut *f, + }; + let fmt_result = if alternate { + write!(size_limited_fmt, "{:#}", d) + } else { + write!(size_limited_fmt, "{}", d) + }; + let size_limit_result = size_limited_fmt.remaining.map(|_| ()); + + // Translate a `fmt::Error` generated by `SizeLimitedFmtAdapter` + // into an error message, instead of propagating it upwards + // (which could cause panicking from inside e.g. `std::io::print`). + match (fmt_result, size_limit_result) { + (Err(_), Err(SizeLimitExhausted)) => f.write_str("{size limit reached}")?, + + _ => { + fmt_result?; + size_limit_result + .expect("`fmt::Error` from `SizeLimitedFmtAdapter` was discarded"); + } + } + } + } + f.write_str(self.suffix) + } +} + +impl<'a> fmt::Debug for Demangle<'a> { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fmt::Display::fmt(self, f) + } +} + +#[cfg(test)] +mod tests { + use std::prelude::v1::*; + + macro_rules! t { + ($a:expr, $b:expr) => { + assert!(ok($a, $b)) + }; + } + + macro_rules! t_err { + ($a:expr) => { + assert!(ok_err($a)) + }; + } + + macro_rules! t_nohash { + ($a:expr, $b:expr) => {{ + assert_eq!(format!("{:#}", super::demangle($a)), $b); + }}; + } + + fn ok(sym: &str, expected: &str) -> bool { + match super::try_demangle(sym) { + Ok(s) => { + if s.to_string() == expected { + true + } else { + println!("\n{}\n!=\n{}\n", s, expected); + false + } + } + Err(_) => { + println!("error demangling"); + false + } + } + } + + fn ok_err(sym: &str) -> bool { + match super::try_demangle(sym) { + Ok(_) => { + println!("succeeded in demangling"); + false + } + Err(_) => super::demangle(sym).to_string() == sym, + } + } + + #[test] + fn demangle() { + t_err!("test"); + t!("_ZN4testE", "test"); + t_err!("_ZN4test"); + t!("_ZN4test1a2bcE", "test::a::bc"); + } + + #[test] + fn demangle_dollars() { + t!("_ZN4$RP$E", ")"); + t!("_ZN8$RF$testE", "&test"); + t!("_ZN8$BP$test4foobE", "*test::foob"); + t!("_ZN9$u20$test4foobE", " test::foob"); + t!("_ZN35Bar$LT$$u5b$u32$u3b$$u20$4$u5d$$GT$E", "Bar<[u32; 4]>"); + } + + #[test] + fn demangle_many_dollars() { + t!("_ZN13test$u20$test4foobE", "test test::foob"); + t!("_ZN12test$BP$test4foobE", "test*test::foob"); + } + + #[test] + fn demangle_osx() { + t!( + "__ZN5alloc9allocator6Layout9for_value17h02a996811f781011E", + "alloc::allocator::Layout::for_value::h02a996811f781011" + ); + t!("__ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap18_MSG_FILE_LINE_COL17haf7cb8d5824ee659E", ">::unwrap::_MSG_FILE_LINE_COL::haf7cb8d5824ee659"); + t!("__ZN4core5slice89_$LT$impl$u20$core..iter..traits..IntoIterator$u20$for$u20$$RF$$u27$a$u20$$u5b$T$u5d$$GT$9into_iter17h450e234d27262170E", "core::slice::::into_iter::h450e234d27262170"); + } + + #[test] + fn demangle_windows() { + t!("ZN4testE", "test"); + t!("ZN13test$u20$test4foobE", "test test::foob"); + t!("ZN12test$RF$test4foobE", "test&test::foob"); + } + + #[test] + fn demangle_elements_beginning_with_underscore() { + t!("_ZN13_$LT$test$GT$E", ""); + t!("_ZN28_$u7b$$u7b$closure$u7d$$u7d$E", "{{closure}}"); + t!("_ZN15__STATIC_FMTSTRE", "__STATIC_FMTSTR"); + } + + #[test] + fn demangle_trait_impls() { + t!( + "_ZN71_$LT$Test$u20$$u2b$$u20$$u27$static$u20$as$u20$foo..Bar$LT$Test$GT$$GT$3barE", + ">::bar" + ); + } + + #[test] + fn demangle_without_hash() { + let s = "_ZN3foo17h05af221e174051e9E"; + t!(s, "foo::h05af221e174051e9"); + t_nohash!(s, "foo"); + } + + #[test] + fn demangle_without_hash_edgecases() { + // One element, no hash. + t_nohash!("_ZN3fooE", "foo"); + // Two elements, no hash. + t_nohash!("_ZN3foo3barE", "foo::bar"); + // Longer-than-normal hash. + t_nohash!("_ZN3foo20h05af221e174051e9abcE", "foo"); + // Shorter-than-normal hash. + t_nohash!("_ZN3foo5h05afE", "foo"); + // Valid hash, but not at the end. + t_nohash!("_ZN17h05af221e174051e93fooE", "h05af221e174051e9::foo"); + // Not a valid hash, missing the 'h'. + t_nohash!("_ZN3foo16ffaf221e174051e9E", "foo::ffaf221e174051e9"); + // Not a valid hash, has a non-hex-digit. + t_nohash!("_ZN3foo17hg5af221e174051e9E", "foo::hg5af221e174051e9"); + } + + #[test] + fn demangle_thinlto() { + // One element, no hash. + t!("_ZN3fooE.llvm.9D1C9369", "foo"); + t!("_ZN3fooE.llvm.9D1C9369@@16", "foo"); + t_nohash!( + "_ZN9backtrace3foo17hbb467fcdaea5d79bE.llvm.A5310EB9", + "backtrace::foo" + ); + } + + #[test] + fn demangle_llvm_ir_branch_labels() { + t!("_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17haf9727c2edfbc47bE.exit.i.i", "core::slice:: for [T]>::index_mut::haf9727c2edfbc47b.exit.i.i"); + t_nohash!("_ZN4core5slice77_$LT$impl$u20$core..ops..index..IndexMut$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$9index_mut17haf9727c2edfbc47bE.exit.i.i", "core::slice:: for [T]>::index_mut.exit.i.i"); + } + + #[test] + fn demangle_ignores_suffix_that_doesnt_look_like_a_symbol() { + t_err!("_ZN3fooE.llvm moocow"); + } + + #[test] + fn dont_panic() { + super::demangle("_ZN2222222222222222222222EE").to_string(); + super::demangle("_ZN5*70527e27.ll34csaғE").to_string(); + super::demangle("_ZN5*70527a54.ll34_$b.1E").to_string(); + super::demangle( + "\ + _ZN5~saäb4e\n\ + 2734cOsbE\n\ + 5usage20h)3\0\0\0\0\0\0\07e2734cOsbE\ + ", + ) + .to_string(); + } + + #[test] + fn invalid_no_chop() { + t_err!("_ZNfooE"); + } + + #[test] + fn handle_assoc_types() { + t!("_ZN151_$LT$alloc..boxed..Box$LT$alloc..boxed..FnBox$LT$A$C$$u20$Output$u3d$R$GT$$u20$$u2b$$u20$$u27$a$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$9call_once17h69e8f44b3723e1caE", " + 'a> as core::ops::function::FnOnce>::call_once::h69e8f44b3723e1ca"); + } + + #[test] + fn handle_bang() { + t!( + "_ZN88_$LT$core..result..Result$LT$$u21$$C$$u20$E$GT$$u20$as$u20$std..process..Termination$GT$6report17hfc41d0da4a40b3e8E", + " as std::process::Termination>::report::hfc41d0da4a40b3e8" + ); + } + + #[test] + fn limit_recursion() { + assert_contains!( + super::demangle("_RNvB_1a").to_string(), + "{recursion limit reached}" + ); + assert_contains!( + super::demangle("_RMC0RB2_").to_string(), + "{recursion limit reached}" + ); + } + + #[test] + fn limit_output() { + assert_ends_with!( + super::demangle("RYFG_FGyyEvRYFF_EvRYFFEvERLB_B_B_ERLRjB_B_B_").to_string(), + "{size limit reached}" + ); + // NOTE(eddyb) somewhat reduced version of the above, effectively + // ` fn()>` with a larger number of lifetimes in `...`. + assert_ends_with!( + super::demangle("_RMC0FGZZZ_Eu").to_string(), + "{size limit reached}" + ); + } + + #[cfg(feature = "std")] + fn demangle_str(input: &str) -> String { + let mut output = Vec::new(); + super::demangle_line(input, &mut output, false); + String::from_utf8(output).unwrap() + } + + #[test] + #[cfg(feature = "std")] + fn find_multiple() { + assert_eq!( + demangle_str("_ZN3fooE.llvm moocow _ZN3fooE.llvm"), + "foo.llvm moocow foo.llvm" + ); + } + + #[test] + #[cfg(feature = "std")] + fn interleaved_new_legacy() { + assert_eq!( + demangle_str("_ZN3fooE.llvm moocow _RNvMNtNtNtNtCs8a2262Dv4r_3mio3sys4unix8selector5epollNtB2_8Selector6select _ZN3fooE.llvm"), + "foo.llvm moocow ::select foo.llvm" + ); + } +} diff --git a/src/rust/vendor/rustc-demangle/src/v0-large-test-symbols/early-recursion-limit b/src/rust/vendor/rustc-demangle/src/v0-large-test-symbols/early-recursion-limit new file mode 100644 index 000000000..914d416f7 --- /dev/null +++ b/src/rust/vendor/rustc-demangle/src/v0-large-test-symbols/early-recursion-limit @@ -0,0 +1,10 @@ +# NOTE: empty lines, and lines starting with `#`, are ignored. + +# Large test symbols for `v0::test::demangling_limits`, that specifically cause +# a `RecursedTooDeep` error from `v0::demangle`'s shallow traversal (sanity check) +# of the mangled symbol, i.e. before any printing coudl be attempted. + +RICu4$TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOSOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTxxxxxRICu4,-xOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTxxxxxRICu4,-xOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTxxxxxRICu4,-xOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTxxxxxRICu4,-xOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTxxxxxRICu4,-xOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTxxxxxRICu4,-xOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTxxxxxRICu4,-xOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTxxxxxRICu4,-xOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTYTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTxxxxxRICu4,-xOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTxxxxxRICu4,-xOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTxxxxxRICu5,-xOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTxxxxxRICu3.,-xOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOxxxRICu4,-xxxxffff..ffffffffffffffffffffffffffffffffffffffffffffffffffffffffxxxxxxxxxxxxxxxxxxxRaRBRaR>R>xxxu2IC,-xxxxxxRIC4xxxOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTxxxxxRICu4.,-xOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTTTOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOxxxRICu4,-xxxxffff..ffffffffffffffffffffffffffffffffffffffffffffffffffffffffxxxxxxxxxxxxxxxxxxxRaRBRaR>R>xxxu2IC,-xxxxxxRIC4xxx..K..xRBRaR>RICu6$-RBKIQARICu6$-RBKIQAA........TvvKKKKKKKKKxxxxxxxxxxxxxxxBKIQARICu6$-RBKIQAA...._.xxx +RIYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRYYYYYYYYYXB_RXB_lYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRYYYYYYYYYXB_RXB_lYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRYFhhhhYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYNYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRYYYYYYYYYXB_RXB_lYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRYYYYYYYYYXB_RXB_lYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYNYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRYYYYYYYYYXB_RXB_lYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRYYYYYYYYYXB_RXB_lYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRYFhhhhYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYNYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRYYYYYYYYYXB_RXB_lYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRYYYYYYYYYXB_RXB_lYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRYYYYYYYYYXB_RXB_lYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRXB_RXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYIBRIIRIIBRCIByEEj_ByEEj_EEj +RYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSYYYYSSSSSSSSSSSSSSSSSYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYSSSSRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRSSSSSSSRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRSSSSSSSRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRSSSSSSSYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYyYYYbYYYYYYYYYYYYYYRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYYYYYYYYYYYmYYYYYYYYYYYYYYYYYYYYYRCu3YYYYYYYYYYYPYYYYYYbYYYYYYYYYRYYYYYYYYYYYYYYYYYYSSSSSSSSSSSS +RYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYyYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYR; diff --git a/src/rust/vendor/rustc-demangle/src/v0.rs b/src/rust/vendor/rustc-demangle/src/v0.rs new file mode 100644 index 000000000..81cbdc44c --- /dev/null +++ b/src/rust/vendor/rustc-demangle/src/v0.rs @@ -0,0 +1,1536 @@ +use core::convert::TryFrom; +use core::{char, fmt, iter, mem, str}; + +#[allow(unused_macros)] +macro_rules! write { + ($($ignored:tt)*) => { + compile_error!( + "use `self.print(value)` or `fmt::Trait::fmt(&value, self.out)`, \ + instead of `write!(self.out, \"{...}\", value)`" + ) + }; +} + +// Maximum recursion depth when parsing symbols before we just bail out saying +// "this symbol is invalid" +const MAX_DEPTH: u32 = 500; + +/// Representation of a demangled symbol name. +pub struct Demangle<'a> { + inner: &'a str, +} + +#[derive(PartialEq, Eq, Debug)] +pub enum ParseError { + /// Symbol doesn't match the expected `v0` grammar. + Invalid, + + /// Parsing the symbol crossed the recursion limit (see `MAX_DEPTH`). + RecursedTooDeep, +} + +/// De-mangles a Rust symbol into a more readable version +/// +/// This function will take a **mangled** symbol and return a value. When printed, +/// the de-mangled version will be written. If the symbol does not look like +/// a mangled symbol, the original value will be written instead. +pub fn demangle(s: &str) -> Result<(Demangle, &str), ParseError> { + // First validate the symbol. If it doesn't look like anything we're + // expecting, we just print it literally. Note that we must handle non-Rust + // symbols because we could have any function in the backtrace. + let inner; + if s.len() > 2 && s.starts_with("_R") { + inner = &s[2..]; + } else if s.len() > 1 && s.starts_with('R') { + // On Windows, dbghelp strips leading underscores, so we accept "R..." + // form too. + inner = &s[1..]; + } else if s.len() > 3 && s.starts_with("__R") { + // On OSX, symbols are prefixed with an extra _ + inner = &s[3..]; + } else { + return Err(ParseError::Invalid); + } + + // Paths always start with uppercase characters. + match inner.as_bytes()[0] { + b'A'..=b'Z' => {} + _ => return Err(ParseError::Invalid), + } + + // only work with ascii text + if inner.bytes().any(|c| c & 0x80 != 0) { + return Err(ParseError::Invalid); + } + + // Verify that the symbol is indeed a valid path. + let try_parse_path = |parser| { + let mut dummy_printer = Printer { + parser: Ok(parser), + out: None, + bound_lifetime_depth: 0, + }; + dummy_printer + .print_path(false) + .expect("`fmt::Error`s should be impossible without a `fmt::Formatter`"); + dummy_printer.parser + }; + let mut parser = Parser { + sym: inner, + next: 0, + depth: 0, + }; + parser = try_parse_path(parser)?; + + // Instantiating crate (paths always start with uppercase characters). + if let Some(&(b'A'..=b'Z')) = parser.sym.as_bytes().get(parser.next) { + parser = try_parse_path(parser)?; + } + + Ok((Demangle { inner }, &parser.sym[parser.next..])) +} + +impl<'s> fmt::Display for Demangle<'s> { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + let mut printer = Printer { + parser: Ok(Parser { + sym: self.inner, + next: 0, + depth: 0, + }), + out: Some(f), + bound_lifetime_depth: 0, + }; + printer.print_path(true) + } +} + +struct Ident<'s> { + /// ASCII part of the identifier. + ascii: &'s str, + /// Punycode insertion codes for Unicode codepoints, if any. + punycode: &'s str, +} + +const SMALL_PUNYCODE_LEN: usize = 128; + +impl<'s> Ident<'s> { + /// Attempt to decode punycode on the stack (allocation-free), + /// and pass the char slice to the closure, if successful. + /// This supports up to `SMALL_PUNYCODE_LEN` characters. + fn try_small_punycode_decode R, R>(&self, f: F) -> Option { + let mut out = ['\0'; SMALL_PUNYCODE_LEN]; + let mut out_len = 0; + let r = self.punycode_decode(|i, c| { + // Check there's space left for another character. + out.get(out_len).ok_or(())?; + + // Move the characters after the insert position. + let mut j = out_len; + out_len += 1; + + while j > i { + out[j] = out[j - 1]; + j -= 1; + } + + // Insert the new character. + out[i] = c; + + Ok(()) + }); + if r.is_ok() { + Some(f(&out[..out_len])) + } else { + None + } + } + + /// Decode punycode as insertion positions and characters + /// and pass them to the closure, which can return `Err(())` + /// to stop the decoding process. + fn punycode_decode Result<(), ()>>( + &self, + mut insert: F, + ) -> Result<(), ()> { + let mut punycode_bytes = self.punycode.bytes().peekable(); + if punycode_bytes.peek().is_none() { + return Err(()); + } + + let mut len = 0; + + // Populate initial output from ASCII fragment. + for c in self.ascii.chars() { + insert(len, c)?; + len += 1; + } + + // Punycode parameters and initial state. + let base = 36; + let t_min = 1; + let t_max = 26; + let skew = 38; + let mut damp = 700; + let mut bias = 72; + let mut i: usize = 0; + let mut n: usize = 0x80; + + loop { + // Read one delta value. + let mut delta: usize = 0; + let mut w = 1; + let mut k: usize = 0; + loop { + use core::cmp::{max, min}; + + k += base; + let t = min(max(k.saturating_sub(bias), t_min), t_max); + + let d = match punycode_bytes.next() { + Some(d @ b'a'..=b'z') => d - b'a', + Some(d @ b'0'..=b'9') => 26 + (d - b'0'), + _ => return Err(()), + }; + let d = d as usize; + delta = delta.checked_add(d.checked_mul(w).ok_or(())?).ok_or(())?; + if d < t { + break; + } + w = w.checked_mul(base - t).ok_or(())?; + } + + // Compute the new insert position and character. + len += 1; + i = i.checked_add(delta).ok_or(())?; + n = n.checked_add(i / len).ok_or(())?; + i %= len; + + let n_u32 = n as u32; + let c = if n_u32 as usize == n { + char::from_u32(n_u32).ok_or(())? + } else { + return Err(()); + }; + + // Insert the new character and increment the insert position. + insert(i, c)?; + i += 1; + + // If there are no more deltas, decoding is complete. + if punycode_bytes.peek().is_none() { + return Ok(()); + } + + // Perform bias adaptation. + delta /= damp; + damp = 2; + + delta += delta / len; + let mut k = 0; + while delta > ((base - t_min) * t_max) / 2 { + delta /= base - t_min; + k += base; + } + bias = k + ((base - t_min + 1) * delta) / (delta + skew); + } + } +} + +impl<'s> fmt::Display for Ident<'s> { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + self.try_small_punycode_decode(|chars| { + for &c in chars { + c.fmt(f)?; + } + Ok(()) + }) + .unwrap_or_else(|| { + if !self.punycode.is_empty() { + f.write_str("punycode{")?; + + // Reconstruct a standard Punycode encoding, + // by using `-` as the separator. + if !self.ascii.is_empty() { + f.write_str(self.ascii)?; + f.write_str("-")?; + } + f.write_str(self.punycode)?; + + f.write_str("}") + } else { + f.write_str(self.ascii) + } + }) + } +} + +/// Sequence of lowercase hexadecimal nibbles (`0-9a-f`), used by leaf consts. +struct HexNibbles<'s> { + nibbles: &'s str, +} + +impl<'s> HexNibbles<'s> { + /// Decode an integer value (with the "most significant nibble" first), + /// returning `None` if it can't fit in an `u64`. + // FIXME(eddyb) should this "just" use `u128` instead? + fn try_parse_uint(&self) -> Option { + let nibbles = self.nibbles.trim_start_matches("0"); + + if nibbles.len() > 16 { + return None; + } + + let mut v = 0; + for nibble in nibbles.chars() { + v = (v << 4) | (nibble.to_digit(16).unwrap() as u64); + } + Some(v) + } + + /// Decode a UTF-8 byte sequence (with each byte using a pair of nibbles) + /// into individual `char`s, returning `None` for invalid UTF-8. + fn try_parse_str_chars(&self) -> Option + 's> { + if self.nibbles.len() % 2 != 0 { + return None; + } + + // FIXME(eddyb) use `array_chunks` instead, when that becomes stable. + let mut bytes = self + .nibbles + .as_bytes() + .chunks_exact(2) + .map(|slice| match slice { + [a, b] => [a, b], + _ => unreachable!(), + }) + .map(|[&hi, &lo]| { + let half = |nibble: u8| (nibble as char).to_digit(16).unwrap() as u8; + (half(hi) << 4) | half(lo) + }); + + let chars = iter::from_fn(move || { + // As long as there are any bytes left, there's at least one more + // UTF-8-encoded `char` to decode (or the possibility of error). + bytes.next().map(|first_byte| -> Result { + // FIXME(eddyb) this `enum` and `fn` should be somewhere in `core`. + enum Utf8FirstByteError { + ContinuationByte, + TooLong, + } + fn utf8_len_from_first_byte(byte: u8) -> Result { + match byte { + 0x00..=0x7f => Ok(1), + 0x80..=0xbf => Err(Utf8FirstByteError::ContinuationByte), + 0xc0..=0xdf => Ok(2), + 0xe0..=0xef => Ok(3), + 0xf0..=0xf7 => Ok(4), + 0xf8..=0xff => Err(Utf8FirstByteError::TooLong), + } + } + + // Collect the appropriate amount of bytes (up to 4), according + // to the UTF-8 length implied by the first byte. + let utf8_len = utf8_len_from_first_byte(first_byte).map_err(|_| ())?; + let utf8 = &mut [first_byte, 0, 0, 0][..utf8_len]; + for i in 1..utf8_len { + utf8[i] = bytes.next().ok_or(())?; + } + + // Fully validate the UTF-8 sequence. + let s = str::from_utf8(utf8).map_err(|_| ())?; + + // Since we included exactly one UTF-8 sequence, and validation + // succeeded, `str::chars` should return exactly one `char`. + let mut chars = s.chars(); + match (chars.next(), chars.next()) { + (Some(c), None) => Ok(c), + _ => unreachable!( + "str::from_utf8({:?}) = {:?} was expected to have 1 char, \ + but {} chars were found", + utf8, + s, + s.chars().count() + ), + } + }) + }); + + // HACK(eddyb) doing a separate validation iteration like this might be + // wasteful, but it's easier to avoid starting to print a string literal + // in the first place, than to abort it mid-string. + if chars.clone().any(|r| r.is_err()) { + None + } else { + Some(chars.map(Result::unwrap)) + } + } +} + +fn basic_type(tag: u8) -> Option<&'static str> { + Some(match tag { + b'b' => "bool", + b'c' => "char", + b'e' => "str", + b'u' => "()", + b'a' => "i8", + b's' => "i16", + b'l' => "i32", + b'x' => "i64", + b'n' => "i128", + b'i' => "isize", + b'h' => "u8", + b't' => "u16", + b'm' => "u32", + b'y' => "u64", + b'o' => "u128", + b'j' => "usize", + b'f' => "f32", + b'd' => "f64", + b'z' => "!", + b'p' => "_", + b'v' => "...", + + _ => return None, + }) +} + +struct Parser<'s> { + sym: &'s str, + next: usize, + depth: u32, +} + +impl<'s> Parser<'s> { + fn push_depth(&mut self) -> Result<(), ParseError> { + self.depth += 1; + if self.depth > MAX_DEPTH { + Err(ParseError::RecursedTooDeep) + } else { + Ok(()) + } + } + + fn pop_depth(&mut self) { + self.depth -= 1; + } + + fn peek(&self) -> Option { + self.sym.as_bytes().get(self.next).cloned() + } + + fn eat(&mut self, b: u8) -> bool { + if self.peek() == Some(b) { + self.next += 1; + true + } else { + false + } + } + + fn next(&mut self) -> Result { + let b = self.peek().ok_or(ParseError::Invalid)?; + self.next += 1; + Ok(b) + } + + fn hex_nibbles(&mut self) -> Result, ParseError> { + let start = self.next; + loop { + match self.next()? { + b'0'..=b'9' | b'a'..=b'f' => {} + b'_' => break, + _ => return Err(ParseError::Invalid), + } + } + Ok(HexNibbles { + nibbles: &self.sym[start..self.next - 1], + }) + } + + fn digit_10(&mut self) -> Result { + let d = match self.peek() { + Some(d @ b'0'..=b'9') => d - b'0', + _ => return Err(ParseError::Invalid), + }; + self.next += 1; + Ok(d) + } + + fn digit_62(&mut self) -> Result { + let d = match self.peek() { + Some(d @ b'0'..=b'9') => d - b'0', + Some(d @ b'a'..=b'z') => 10 + (d - b'a'), + Some(d @ b'A'..=b'Z') => 10 + 26 + (d - b'A'), + _ => return Err(ParseError::Invalid), + }; + self.next += 1; + Ok(d) + } + + fn integer_62(&mut self) -> Result { + if self.eat(b'_') { + return Ok(0); + } + + let mut x: u64 = 0; + while !self.eat(b'_') { + let d = self.digit_62()? as u64; + x = x.checked_mul(62).ok_or(ParseError::Invalid)?; + x = x.checked_add(d).ok_or(ParseError::Invalid)?; + } + x.checked_add(1).ok_or(ParseError::Invalid) + } + + fn opt_integer_62(&mut self, tag: u8) -> Result { + if !self.eat(tag) { + return Ok(0); + } + self.integer_62()?.checked_add(1).ok_or(ParseError::Invalid) + } + + fn disambiguator(&mut self) -> Result { + self.opt_integer_62(b's') + } + + fn namespace(&mut self) -> Result, ParseError> { + match self.next()? { + // Special namespaces, like closures and shims. + ns @ b'A'..=b'Z' => Ok(Some(ns as char)), + + // Implementation-specific/unspecified namespaces. + b'a'..=b'z' => Ok(None), + + _ => Err(ParseError::Invalid), + } + } + + fn backref(&mut self) -> Result, ParseError> { + let s_start = self.next - 1; + let i = self.integer_62()?; + if i >= s_start as u64 { + return Err(ParseError::Invalid); + } + let mut new_parser = Parser { + sym: self.sym, + next: i as usize, + depth: self.depth, + }; + new_parser.push_depth()?; + Ok(new_parser) + } + + fn ident(&mut self) -> Result, ParseError> { + let is_punycode = self.eat(b'u'); + let mut len = self.digit_10()? as usize; + if len != 0 { + while let Ok(d) = self.digit_10() { + len = len.checked_mul(10).ok_or(ParseError::Invalid)?; + len = len.checked_add(d as usize).ok_or(ParseError::Invalid)?; + } + } + + // Skip past the optional `_` separator. + self.eat(b'_'); + + let start = self.next; + self.next = self.next.checked_add(len).ok_or(ParseError::Invalid)?; + if self.next > self.sym.len() { + return Err(ParseError::Invalid); + } + + let ident = &self.sym[start..self.next]; + + if is_punycode { + let ident = match ident.bytes().rposition(|b| b == b'_') { + Some(i) => Ident { + ascii: &ident[..i], + punycode: &ident[i + 1..], + }, + None => Ident { + ascii: "", + punycode: ident, + }, + }; + if ident.punycode.is_empty() { + return Err(ParseError::Invalid); + } + Ok(ident) + } else { + Ok(Ident { + ascii: ident, + punycode: "", + }) + } + } +} + +struct Printer<'a, 'b: 'a, 's> { + /// The input parser to demangle from, or `Err` if any (parse) error was + /// encountered (in order to disallow further likely-incorrect demangling). + /// + /// See also the documentation on the `invalid!` and `parse!` macros below. + parser: Result, ParseError>, + + /// The output formatter to demangle to, or `None` while skipping printing. + out: Option<&'a mut fmt::Formatter<'b>>, + + /// Cumulative number of lifetimes bound by `for<...>` binders ('G'), + /// anywhere "around" the current entity (e.g. type) being demangled. + /// This value is not tracked while skipping printing, as it'd be unused. + /// + /// See also the documentation on the `Printer::in_binder` method. + bound_lifetime_depth: u32, +} + +impl ParseError { + /// Snippet to print when the error is initially encountered. + fn message(&self) -> &str { + match self { + ParseError::Invalid => "{invalid syntax}", + ParseError::RecursedTooDeep => "{recursion limit reached}", + } + } +} + +/// Mark the parser as errored (with `ParseError::Invalid`), print the +/// appropriate message (see `ParseError::message`) and return early. +macro_rules! invalid { + ($printer:ident) => {{ + let err = ParseError::Invalid; + $printer.print(err.message())?; + $printer.parser = Err(err); + return Ok(()); + }}; +} + +/// Call a parser method (if the parser hasn't errored yet), +/// and mark the parser as errored if it returns `Err`. +/// +/// If the parser errored, before or now, this returns early, +/// from the current function, after printing either: +/// * for a new error, the appropriate message (see `ParseError::message`) +/// * for an earlier error, only `?` - this allows callers to keep printing +/// the approximate syntax of the path/type/const, despite having errors, +/// e.g. `Vec<[(A, ?); ?]>` instead of `Vec<[(A, ?` +macro_rules! parse { + ($printer:ident, $method:ident $(($($arg:expr),*))*) => { + match $printer.parser { + Ok(ref mut parser) => match parser.$method($($($arg),*)*) { + Ok(x) => x, + Err(err) => { + $printer.print(err.message())?; + $printer.parser = Err(err); + return Ok(()); + } + } + Err(_) => return $printer.print("?"), + } + }; +} + +impl<'a, 'b, 's> Printer<'a, 'b, 's> { + /// Eat the given character from the parser, + /// returning `false` if the parser errored. + fn eat(&mut self, b: u8) -> bool { + self.parser.as_mut().map(|p| p.eat(b)) == Ok(true) + } + + /// Skip printing (i.e. `self.out` will be `None`) for the duration of the + /// given closure. This should not change parsing behavior, only disable the + /// output, but there may be optimizations (such as not traversing backrefs). + fn skipping_printing(&mut self, f: F) + where + F: FnOnce(&mut Self) -> fmt::Result, + { + let orig_out = self.out.take(); + f(self).expect("`fmt::Error`s should be impossible without a `fmt::Formatter`"); + self.out = orig_out; + } + + /// Print the target of a backref, using the given closure. + /// When printing is being skipped, the backref will only be parsed, + /// ignoring the backref's target completely. + fn print_backref(&mut self, f: F) -> fmt::Result + where + F: FnOnce(&mut Self) -> fmt::Result, + { + let backref_parser = parse!(self, backref); + + if self.out.is_none() { + return Ok(()); + } + + let orig_parser = mem::replace(&mut self.parser, Ok(backref_parser)); + let r = f(self); + self.parser = orig_parser; + r + } + + fn pop_depth(&mut self) { + if let Ok(ref mut parser) = self.parser { + parser.pop_depth(); + } + } + + /// Output the given value to `self.out` (using `fmt::Display` formatting), + /// if printing isn't being skipped. + fn print(&mut self, x: impl fmt::Display) -> fmt::Result { + if let Some(out) = &mut self.out { + fmt::Display::fmt(&x, out)?; + } + Ok(()) + } + + /// Output the given `char`s (escaped using `char::escape_debug`), with the + /// whole sequence wrapped in quotes, for either a `char` or `&str` literal, + /// if printing isn't being skipped. + fn print_quoted_escaped_chars( + &mut self, + quote: char, + chars: impl Iterator, + ) -> fmt::Result { + if let Some(out) = &mut self.out { + use core::fmt::Write; + + out.write_char(quote)?; + for c in chars { + // Special-case not escaping a single/double quote, when + // inside the opposite kind of quote. + if matches!((quote, c), ('\'', '"') | ('"', '\'')) { + out.write_char(c)?; + continue; + } + + for escaped in c.escape_debug() { + out.write_char(escaped)?; + } + } + out.write_char(quote)?; + } + Ok(()) + } + + /// Print the lifetime according to the previously decoded index. + /// An index of `0` always refers to `'_`, but starting with `1`, + /// indices refer to late-bound lifetimes introduced by a binder. + fn print_lifetime_from_index(&mut self, lt: u64) -> fmt::Result { + // Bound lifetimes aren't tracked when skipping printing. + if self.out.is_none() { + return Ok(()); + } + + self.print("'")?; + if lt == 0 { + return self.print("_"); + } + match (self.bound_lifetime_depth as u64).checked_sub(lt) { + Some(depth) => { + // Try to print lifetimes alphabetically first. + if depth < 26 { + let c = (b'a' + depth as u8) as char; + self.print(c) + } else { + // Use `'_123` after running out of letters. + self.print("_")?; + self.print(depth) + } + } + None => invalid!(self), + } + } + + /// Optionally enter a binder ('G') for late-bound lifetimes, + /// printing e.g. `for<'a, 'b> ` before calling the closure, + /// and make those lifetimes visible to it (via depth level). + fn in_binder(&mut self, f: F) -> fmt::Result + where + F: FnOnce(&mut Self) -> fmt::Result, + { + let bound_lifetimes = parse!(self, opt_integer_62(b'G')); + + // Don't track bound lifetimes when skipping printing. + if self.out.is_none() { + return f(self); + } + + if bound_lifetimes > 0 { + self.print("for<")?; + for i in 0..bound_lifetimes { + if i > 0 { + self.print(", ")?; + } + self.bound_lifetime_depth += 1; + self.print_lifetime_from_index(1)?; + } + self.print("> ")?; + } + + let r = f(self); + + // Restore `bound_lifetime_depth` to the previous value. + self.bound_lifetime_depth -= bound_lifetimes as u32; + + r + } + + /// Print list elements using the given closure and separator, + /// until the end of the list ('E') is found, or the parser errors. + /// Returns the number of elements printed. + fn print_sep_list(&mut self, f: F, sep: &str) -> Result + where + F: Fn(&mut Self) -> fmt::Result, + { + let mut i = 0; + while self.parser.is_ok() && !self.eat(b'E') { + if i > 0 { + self.print(sep)?; + } + f(self)?; + i += 1; + } + Ok(i) + } + + fn print_path(&mut self, in_value: bool) -> fmt::Result { + parse!(self, push_depth); + + let tag = parse!(self, next); + match tag { + b'C' => { + let dis = parse!(self, disambiguator); + let name = parse!(self, ident); + + self.print(name)?; + if let Some(out) = &mut self.out { + if !out.alternate() && dis != 0 { + out.write_str("[")?; + fmt::LowerHex::fmt(&dis, out)?; + out.write_str("]")?; + } + } + } + b'N' => { + let ns = parse!(self, namespace); + + self.print_path(in_value)?; + + // HACK(eddyb) if the parser is already marked as having errored, + // `parse!` below will print a `?` without its preceding `::` + // (because printing the `::` is skipped in certain conditions, + // i.e. a lowercase namespace with an empty identifier), + // so in order to get `::?`, the `::` has to be printed here. + if self.parser.is_err() { + self.print("::")?; + } + + let dis = parse!(self, disambiguator); + let name = parse!(self, ident); + + match ns { + // Special namespaces, like closures and shims. + Some(ns) => { + self.print("::{")?; + match ns { + 'C' => self.print("closure")?, + 'S' => self.print("shim")?, + _ => self.print(ns)?, + } + if !name.ascii.is_empty() || !name.punycode.is_empty() { + self.print(":")?; + self.print(name)?; + } + self.print("#")?; + self.print(dis)?; + self.print("}")?; + } + + // Implementation-specific/unspecified namespaces. + None => { + if !name.ascii.is_empty() || !name.punycode.is_empty() { + self.print("::")?; + self.print(name)?; + } + } + } + } + b'M' | b'X' | b'Y' => { + if tag != b'Y' { + // Ignore the `impl`'s own path. + parse!(self, disambiguator); + self.skipping_printing(|this| this.print_path(false)); + } + + self.print("<")?; + self.print_type()?; + if tag != b'M' { + self.print(" as ")?; + self.print_path(false)?; + } + self.print(">")?; + } + b'I' => { + self.print_path(in_value)?; + if in_value { + self.print("::")?; + } + self.print("<")?; + self.print_sep_list(Self::print_generic_arg, ", ")?; + self.print(">")?; + } + b'B' => { + self.print_backref(|this| this.print_path(in_value))?; + } + _ => invalid!(self), + } + + self.pop_depth(); + Ok(()) + } + + fn print_generic_arg(&mut self) -> fmt::Result { + if self.eat(b'L') { + let lt = parse!(self, integer_62); + self.print_lifetime_from_index(lt) + } else if self.eat(b'K') { + self.print_const(false) + } else { + self.print_type() + } + } + + fn print_type(&mut self) -> fmt::Result { + let tag = parse!(self, next); + + if let Some(ty) = basic_type(tag) { + return self.print(ty); + } + + parse!(self, push_depth); + + match tag { + b'R' | b'Q' => { + self.print("&")?; + if self.eat(b'L') { + let lt = parse!(self, integer_62); + if lt != 0 { + self.print_lifetime_from_index(lt)?; + self.print(" ")?; + } + } + if tag != b'R' { + self.print("mut ")?; + } + self.print_type()?; + } + + b'P' | b'O' => { + self.print("*")?; + if tag != b'P' { + self.print("mut ")?; + } else { + self.print("const ")?; + } + self.print_type()?; + } + + b'A' | b'S' => { + self.print("[")?; + self.print_type()?; + if tag == b'A' { + self.print("; ")?; + self.print_const(true)?; + } + self.print("]")?; + } + b'T' => { + self.print("(")?; + let count = self.print_sep_list(Self::print_type, ", ")?; + if count == 1 { + self.print(",")?; + } + self.print(")")?; + } + b'F' => self.in_binder(|this| { + let is_unsafe = this.eat(b'U'); + let abi = if this.eat(b'K') { + if this.eat(b'C') { + Some("C") + } else { + let abi = parse!(this, ident); + if abi.ascii.is_empty() || !abi.punycode.is_empty() { + invalid!(this); + } + Some(abi.ascii) + } + } else { + None + }; + + if is_unsafe { + this.print("unsafe ")?; + } + + if let Some(abi) = abi { + this.print("extern \"")?; + + // If the ABI had any `-`, they were replaced with `_`, + // so the parts between `_` have to be re-joined with `-`. + let mut parts = abi.split('_'); + this.print(parts.next().unwrap())?; + for part in parts { + this.print("-")?; + this.print(part)?; + } + + this.print("\" ")?; + } + + this.print("fn(")?; + this.print_sep_list(Self::print_type, ", ")?; + this.print(")")?; + + if this.eat(b'u') { + // Skip printing the return type if it's 'u', i.e. `()`. + } else { + this.print(" -> ")?; + this.print_type()?; + } + + Ok(()) + })?, + b'D' => { + self.print("dyn ")?; + self.in_binder(|this| { + this.print_sep_list(Self::print_dyn_trait, " + ")?; + Ok(()) + })?; + + if !self.eat(b'L') { + invalid!(self); + } + let lt = parse!(self, integer_62); + if lt != 0 { + self.print(" + ")?; + self.print_lifetime_from_index(lt)?; + } + } + b'B' => { + self.print_backref(Self::print_type)?; + } + _ => { + // Go back to the tag, so `print_path` also sees it. + let _ = self.parser.as_mut().map(|p| p.next -= 1); + self.print_path(false)?; + } + } + + self.pop_depth(); + Ok(()) + } + + /// A trait in a trait object may have some "existential projections" + /// (i.e. associated type bindings) after it, which should be printed + /// in the `<...>` of the trait, e.g. `dyn Trait`. + /// To this end, this method will keep the `<...>` of an 'I' path + /// open, by omitting the `>`, and return `Ok(true)` in that case. + fn print_path_maybe_open_generics(&mut self) -> Result { + if self.eat(b'B') { + // NOTE(eddyb) the closure may not run if printing is being skipped, + // but in that case the returned boolean doesn't matter. + let mut open = false; + self.print_backref(|this| { + open = this.print_path_maybe_open_generics()?; + Ok(()) + })?; + Ok(open) + } else if self.eat(b'I') { + self.print_path(false)?; + self.print("<")?; + self.print_sep_list(Self::print_generic_arg, ", ")?; + Ok(true) + } else { + self.print_path(false)?; + Ok(false) + } + } + + fn print_dyn_trait(&mut self) -> fmt::Result { + let mut open = self.print_path_maybe_open_generics()?; + + while self.eat(b'p') { + if !open { + self.print("<")?; + open = true; + } else { + self.print(", ")?; + } + + let name = parse!(self, ident); + self.print(name)?; + self.print(" = ")?; + self.print_type()?; + } + + if open { + self.print(">")?; + } + + Ok(()) + } + + fn print_const(&mut self, in_value: bool) -> fmt::Result { + let tag = parse!(self, next); + + parse!(self, push_depth); + + // Only literals (and the names of `const` generic parameters, but they + // don't get mangled at all), can appear in generic argument position + // without any disambiguation, all other expressions require braces. + // To avoid duplicating the mapping between `tag` and what syntax gets + // used (especially any special-casing), every case that needs braces + // has to call `open_brace(self)?` (and the closing brace is automatic). + let mut opened_brace = false; + let mut open_brace_if_outside_expr = |this: &mut Self| { + // If this expression is nested in another, braces aren't required. + if in_value { + return Ok(()); + } + + opened_brace = true; + this.print("{") + }; + + match tag { + b'p' => self.print("_")?, + + // Primitive leaves with hex-encoded values (see `basic_type`). + b'h' | b't' | b'm' | b'y' | b'o' | b'j' => self.print_const_uint(tag)?, + b'a' | b's' | b'l' | b'x' | b'n' | b'i' => { + if self.eat(b'n') { + self.print("-")?; + } + + self.print_const_uint(tag)?; + } + b'b' => match parse!(self, hex_nibbles).try_parse_uint() { + Some(0) => self.print("false")?, + Some(1) => self.print("true")?, + _ => invalid!(self), + }, + b'c' => { + let valid_char = parse!(self, hex_nibbles) + .try_parse_uint() + .and_then(|v| u32::try_from(v).ok()) + .and_then(char::from_u32); + match valid_char { + Some(c) => self.print_quoted_escaped_chars('\'', iter::once(c))?, + None => invalid!(self), + } + } + b'e' => { + // NOTE(eddyb) a string literal `"..."` has type `&str`, so + // to get back the type `str`, `*"..."` syntax is needed + // (even if that may not be valid in Rust itself). + open_brace_if_outside_expr(self)?; + self.print("*")?; + + self.print_const_str_literal()?; + } + + b'R' | b'Q' => { + // NOTE(eddyb) this prints `"..."` instead of `&*"..."`, which + // is what `Re..._` would imply (see comment for `str` above). + if tag == b'R' && self.eat(b'e') { + self.print_const_str_literal()?; + } else { + open_brace_if_outside_expr(self)?; + self.print("&")?; + if tag != b'R' { + self.print("mut ")?; + } + self.print_const(true)?; + } + } + b'A' => { + open_brace_if_outside_expr(self)?; + self.print("[")?; + self.print_sep_list(|this| this.print_const(true), ", ")?; + self.print("]")?; + } + b'T' => { + open_brace_if_outside_expr(self)?; + self.print("(")?; + let count = self.print_sep_list(|this| this.print_const(true), ", ")?; + if count == 1 { + self.print(",")?; + } + self.print(")")?; + } + b'V' => { + open_brace_if_outside_expr(self)?; + self.print_path(true)?; + match parse!(self, next) { + b'U' => {} + b'T' => { + self.print("(")?; + self.print_sep_list(|this| this.print_const(true), ", ")?; + self.print(")")?; + } + b'S' => { + self.print(" { ")?; + self.print_sep_list( + |this| { + parse!(this, disambiguator); + let name = parse!(this, ident); + this.print(name)?; + this.print(": ")?; + this.print_const(true) + }, + ", ", + )?; + self.print(" }")?; + } + _ => invalid!(self), + } + } + b'B' => { + self.print_backref(|this| this.print_const(in_value))?; + } + _ => invalid!(self), + } + + if opened_brace { + self.print("}")?; + } + + self.pop_depth(); + Ok(()) + } + + fn print_const_uint(&mut self, ty_tag: u8) -> fmt::Result { + let hex = parse!(self, hex_nibbles); + + match hex.try_parse_uint() { + Some(v) => self.print(v)?, + + // Print anything that doesn't fit in `u64` verbatim. + None => { + self.print("0x")?; + self.print(hex.nibbles)?; + } + } + + if let Some(out) = &mut self.out { + if !out.alternate() { + let ty = basic_type(ty_tag).unwrap(); + self.print(ty)?; + } + } + + Ok(()) + } + + fn print_const_str_literal(&mut self) -> fmt::Result { + match parse!(self, hex_nibbles).try_parse_str_chars() { + Some(chars) => self.print_quoted_escaped_chars('"', chars), + None => invalid!(self), + } + } +} + +#[cfg(test)] +mod tests { + use std::prelude::v1::*; + + macro_rules! t { + ($a:expr, $b:expr) => {{ + assert_eq!(format!("{}", ::demangle($a)), $b); + }}; + } + macro_rules! t_nohash { + ($a:expr, $b:expr) => {{ + assert_eq!(format!("{:#}", ::demangle($a)), $b); + }}; + } + macro_rules! t_nohash_type { + ($a:expr, $b:expr) => { + t_nohash!(concat!("_RMC0", $a), concat!("<", $b, ">")) + }; + } + macro_rules! t_const { + ($mangled:expr, $value:expr) => { + t_nohash!( + concat!("_RIC0K", $mangled, "E"), + concat!("::<", $value, ">") + ) + }; + } + macro_rules! t_const_suffixed { + ($mangled:expr, $value:expr, $value_ty_suffix:expr) => {{ + t_const!($mangled, $value); + t!( + concat!("_RIC0K", $mangled, "E"), + concat!("::<", $value, $value_ty_suffix, ">") + ); + }}; + } + + #[test] + fn demangle_crate_with_leading_digit() { + t_nohash!("_RNvC6_123foo3bar", "123foo::bar"); + } + + #[test] + fn demangle_crate_with_zero_disambiguator() { + t!("_RC4f128", "f128"); + t_nohash!("_RC4f128", "f128"); + } + + #[test] + fn demangle_utf8_idents() { + t_nohash!( + "_RNqCs4fqI2P2rA04_11utf8_identsu30____7hkackfecea1cbdathfdh9hlq6y", + "utf8_idents::საჭმელად_გემრიელი_სადილი" + ); + } + + #[test] + fn demangle_closure() { + t_nohash!( + "_RNCNCNgCs6DXkGYLi8lr_2cc5spawn00B5_", + "cc::spawn::{closure#0}::{closure#0}" + ); + t_nohash!( + "_RNCINkXs25_NgCsbmNqQUJIY6D_4core5sliceINyB9_4IterhENuNgNoBb_4iter8iterator8Iterator9rpositionNCNgNpB9_6memchr7memrchrs_0E0Bb_", + " as core::iter::iterator::Iterator>::rposition::::{closure#0}" + ); + } + + #[test] + fn demangle_dyn_trait() { + t_nohash!( + "_RINbNbCskIICzLVDPPb_5alloc5alloc8box_freeDINbNiB4_5boxed5FnBoxuEp6OutputuEL_ECs1iopQbuBiw2_3std", + "alloc::alloc::box_free::>" + ); + } + + #[test] + fn demangle_const_generics_preview() { + // NOTE(eddyb) this was hand-written, before rustc had working + // const generics support (but the mangling format did include them). + t_nohash_type!( + "INtC8arrayvec8ArrayVechKj7b_E", + "arrayvec::ArrayVec" + ); + t_const_suffixed!("j7b_", "123", "usize"); + } + + #[test] + fn demangle_min_const_generics() { + t_const!("p", "_"); + t_const_suffixed!("hb_", "11", "u8"); + t_const_suffixed!("off00ff00ff00ff00ff_", "0xff00ff00ff00ff00ff", "u128"); + t_const_suffixed!("s98_", "152", "i16"); + t_const_suffixed!("anb_", "-11", "i8"); + t_const!("b0_", "false"); + t_const!("b1_", "true"); + t_const!("c76_", "'v'"); + t_const!("c22_", r#"'"'"#); + t_const!("ca_", "'\\n'"); + t_const!("c2202_", "'∂'"); + } + + #[test] + fn demangle_const_str() { + t_const!("e616263_", "{*\"abc\"}"); + t_const!("e27_", r#"{*"'"}"#); + t_const!("e090a_", "{*\"\\t\\n\"}"); + t_const!("ee28882c3bc_", "{*\"∂ü\"}"); + t_const!( + "ee183a1e18390e183ade1839be18394e1839ae18390e183935fe18392e18394e1839b\ + e183a0e18398e18394e1839ae183985fe183a1e18390e18393e18398e1839ae18398_", + "{*\"საჭმელად_გემრიელი_სადილი\"}" + ); + t_const!( + "ef09f908af09fa688f09fa686f09f90ae20c2a720f09f90b6f09f9192e298\ + 95f09f94a520c2a720f09fa7a1f09f929bf09f929af09f9299f09f929c_", + "{*\"🐊🦈🦆🐮 § 🐶👒☕🔥 § 🧡💛💚💙💜\"}" + ); + } + + // NOTE(eddyb) this uses the same strings as `demangle_const_str` and should + // be kept in sync with it - while a macro could be used to generate both + // `str` and `&str` tests, from a single list of strings, this seems clearer. + #[test] + fn demangle_const_ref_str() { + t_const!("Re616263_", "\"abc\""); + t_const!("Re27_", r#""'""#); + t_const!("Re090a_", "\"\\t\\n\""); + t_const!("Ree28882c3bc_", "\"∂ü\""); + t_const!( + "Ree183a1e18390e183ade1839be18394e1839ae18390e183935fe18392e18394e1839b\ + e183a0e18398e18394e1839ae183985fe183a1e18390e18393e18398e1839ae18398_", + "\"საჭმელად_გემრიელი_სადილი\"" + ); + t_const!( + "Ref09f908af09fa688f09fa686f09f90ae20c2a720f09f90b6f09f9192e298\ + 95f09f94a520c2a720f09fa7a1f09f929bf09f929af09f9299f09f929c_", + "\"🐊🦈🦆🐮 § 🐶👒☕🔥 § 🧡💛💚💙💜\"" + ); + } + + #[test] + fn demangle_const_ref() { + t_const!("Rp", "{&_}"); + t_const!("Rh7b_", "{&123}"); + t_const!("Rb0_", "{&false}"); + t_const!("Rc58_", "{&'X'}"); + t_const!("RRRh0_", "{&&&0}"); + t_const!("RRRe_", "{&&\"\"}"); + t_const!("QAE", "{&mut []}"); + } + + #[test] + fn demangle_const_array() { + t_const!("AE", "{[]}"); + t_const!("Aj0_E", "{[0]}"); + t_const!("Ah1_h2_h3_E", "{[1, 2, 3]}"); + t_const!("ARe61_Re62_Re63_E", "{[\"a\", \"b\", \"c\"]}"); + t_const!("AAh1_h2_EAh3_h4_EE", "{[[1, 2], [3, 4]]}"); + } + + #[test] + fn demangle_const_tuple() { + t_const!("TE", "{()}"); + t_const!("Tj0_E", "{(0,)}"); + t_const!("Th1_b0_E", "{(1, false)}"); + t_const!( + "TRe616263_c78_RAh1_h2_h3_EE", + "{(\"abc\", 'x', &[1, 2, 3])}" + ); + } + + #[test] + fn demangle_const_adt() { + t_const!( + "VNvINtNtC4core6option6OptionjE4NoneU", + "{core::option::Option::::None}" + ); + t_const!( + "VNvINtNtC4core6option6OptionjE4SomeTj0_E", + "{core::option::Option::::Some(0)}" + ); + t_const!( + "VNtC3foo3BarS1sRe616263_2chc78_5sliceRAh1_h2_h3_EE", + "{foo::Bar { s: \"abc\", ch: 'x', slice: &[1, 2, 3] }}" + ); + } + + #[test] + fn demangle_exponential_explosion() { + // NOTE(eddyb) because of the prefix added by `t_nohash_type!` is + // 3 bytes long, `B2_` refers to the start of the type, not `B_`. + // 6 backrefs (`B8_E` through `B3_E`) result in 2^6 = 64 copies of `_`. + // Also, because the `p` (`_`) type is after all of the starts of the + // backrefs, it can be replaced with any other type, independently. + t_nohash_type!( + concat!("TTTTTT", "p", "B8_E", "B7_E", "B6_E", "B5_E", "B4_E", "B3_E"), + "((((((_, _), (_, _)), ((_, _), (_, _))), (((_, _), (_, _)), ((_, _), (_, _)))), \ + ((((_, _), (_, _)), ((_, _), (_, _))), (((_, _), (_, _)), ((_, _), (_, _))))), \ + (((((_, _), (_, _)), ((_, _), (_, _))), (((_, _), (_, _)), ((_, _), (_, _)))), \ + ((((_, _), (_, _)), ((_, _), (_, _))), (((_, _), (_, _)), ((_, _), (_, _))))))" + ); + } + + #[test] + fn demangle_thinlto() { + t_nohash!("_RC3foo.llvm.9D1C9369", "foo"); + t_nohash!("_RC3foo.llvm.9D1C9369@@16", "foo"); + t_nohash!("_RNvC9backtrace3foo.llvm.A5310EB9", "backtrace::foo"); + } + + #[test] + fn demangle_extra_suffix() { + // From alexcrichton/rustc-demangle#27: + t_nohash!( + "_RNvNtNtNtNtCs92dm3009vxr_4rand4rngs7adapter9reseeding4fork23FORK_HANDLER_REGISTERED.0.0", + "rand::rngs::adapter::reseeding::fork::FORK_HANDLER_REGISTERED.0.0" + ); + } + + #[test] + fn demangling_limits() { + // Stress tests found via fuzzing. + + for sym in include_str!("v0-large-test-symbols/early-recursion-limit") + .lines() + .filter(|line| !line.is_empty() && !line.starts_with('#')) + { + assert_eq!( + super::demangle(sym).map(|_| ()), + Err(super::ParseError::RecursedTooDeep) + ); + } + + assert_contains!( + ::demangle( + "RIC20tRYIMYNRYFG05_EB5_B_B6_RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR\ + RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRB_E", + ) + .to_string(), + "{recursion limit reached}" + ); + } + + #[test] + fn recursion_limit_leaks() { + // NOTE(eddyb) this test checks that both paths and types support the + // recursion limit correctly, i.e. matching `push_depth` and `pop_depth`, + // and don't leak "recursion levels" and trip the limit. + // The test inputs are generated on the fly, using a repeated pattern, + // as hardcoding the actual strings would be too verbose. + // Also, `MAX_DEPTH` can be directly used, instead of assuming its value. + for &(sym_leaf, expected_leaf) in &[("p", "_"), ("Rp", "&_"), ("C1x", "x")] { + let mut sym = format!("_RIC0p"); + let mut expected = format!("::<_"); + for _ in 0..(super::MAX_DEPTH * 2) { + sym.push_str(sym_leaf); + expected.push_str(", "); + expected.push_str(expected_leaf); + } + sym.push('E'); + expected.push('>'); + + t_nohash!(&sym, expected); + } + } + + #[test] + fn recursion_limit_backref_free_bypass() { + // NOTE(eddyb) this test checks that long symbols cannot bypass the + // recursion limit by not using backrefs, and cause a stack overflow. + + // This value was chosen to be high enough that stack overflows were + // observed even with `cargo test --release`. + let depth = 100_000; + + // In order to hide the long mangling from the initial "shallow" parse, + // it's nested in an identifier (crate name), preceding its use. + let mut sym = format!("_RIC{}", depth); + let backref_start = sym.len() - 2; + for _ in 0..depth { + sym.push('R'); + } + + // Write a backref to just after the length of the identifier. + sym.push('B'); + sym.push(char::from_digit((backref_start - 1) as u32, 36).unwrap()); + sym.push('_'); + + // Close the `I` at the start. + sym.push('E'); + + assert_contains!(::demangle(&sym).to_string(), "{recursion limit reached}"); + } +} diff --git a/src/rust/vendor/rustc-std-workspace-alloc/.cargo-checksum.json b/src/rust/vendor/rustc-std-workspace-alloc/.cargo-checksum.json new file mode 100644 index 000000000..ce1535e33 --- /dev/null +++ b/src/rust/vendor/rustc-std-workspace-alloc/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"32df7c9030f058cde971d4fa46f775fe8498948995ef31197712dfb44bbc5a2e","src/lib.rs":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"package":"ff66d57013a5686e1917ed6a025d54dd591fcda71a41fe07edf4d16726aefa86"} \ No newline at end of file diff --git a/src/rust/vendor/rustc-std-workspace-alloc/Cargo.toml b/src/rust/vendor/rustc-std-workspace-alloc/Cargo.toml new file mode 100644 index 000000000..4075e82bf --- /dev/null +++ b/src/rust/vendor/rustc-std-workspace-alloc/Cargo.toml @@ -0,0 +1,21 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g. crates.io) dependencies +# +# If you believe there's an error in this file please file an +# issue against the rust-lang/cargo repository. If you're +# editing this file be aware that the upstream Cargo.toml +# will likely look very different (and much more reasonable) + +[package] +edition = "2018" +name = "rustc-std-workspace-alloc" +version = "1.0.0" +authors = ["Alex Crichton "] +description = "workspace hack" +license = "MIT/Apache-2.0" + +[dependencies] diff --git a/src/rust/vendor/rustc-std-workspace-alloc/src/lib.rs b/src/rust/vendor/rustc-std-workspace-alloc/src/lib.rs new file mode 100644 index 000000000..e69de29bb diff --git a/src/rust/vendor/rustc-std-workspace-core/.cargo-checksum.json b/src/rust/vendor/rustc-std-workspace-core/.cargo-checksum.json new file mode 100644 index 000000000..6ec3d59c0 --- /dev/null +++ b/src/rust/vendor/rustc-std-workspace-core/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"ac7ce15b820ee532ba739d5fc54f1b22f3052ed794ce72534655fd4a3688655f","src/lib.rs":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"package":"1956f5517128a2b6f23ab2dadf1a976f4f5b27962e7724c2bf3d45e539ec098c"} \ No newline at end of file diff --git a/src/rust/vendor/rustc-std-workspace-core/Cargo.toml b/src/rust/vendor/rustc-std-workspace-core/Cargo.toml new file mode 100644 index 000000000..7a5a96154 --- /dev/null +++ b/src/rust/vendor/rustc-std-workspace-core/Cargo.toml @@ -0,0 +1,20 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g. crates.io) dependencies +# +# If you believe there's an error in this file please file an +# issue against the rust-lang/cargo repository. If you're +# editing this file be aware that the upstream Cargo.toml +# will likely look very different (and much more reasonable) + +[package] +name = "rustc-std-workspace-core" +version = "1.0.0" +authors = ["Alex Crichton "] +description = "Explicitly empty crate for rust-lang/rust integration\n" +license = "MIT/Apache-2.0" + +[dependencies] diff --git a/src/rust/vendor/rustc-std-workspace-core/src/lib.rs b/src/rust/vendor/rustc-std-workspace-core/src/lib.rs new file mode 100644 index 000000000..e69de29bb diff --git a/src/rust/vendor/rustc-std-workspace-std/.cargo-checksum.json b/src/rust/vendor/rustc-std-workspace-std/.cargo-checksum.json new file mode 100644 index 000000000..0347332b9 --- /dev/null +++ b/src/rust/vendor/rustc-std-workspace-std/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"5e538762c6d69bdba26ffd6d3ea4992a26be4efbbc712a954b8966ea8a996125","src/lib.rs":"1cd5d6ff8a49d84295b9e1266a7aa49c9867ac3678d063fb7f75a6b5ec6279ed"},"package":"aba676a20abe46e5b0f1b0deae474aaaf31407e6c71147159890574599da04ef"} \ No newline at end of file diff --git a/src/rust/vendor/rustc-std-workspace-std/Cargo.toml b/src/rust/vendor/rustc-std-workspace-std/Cargo.toml new file mode 100644 index 000000000..ed4752ae7 --- /dev/null +++ b/src/rust/vendor/rustc-std-workspace-std/Cargo.toml @@ -0,0 +1,21 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies +# +# If you believe there's an error in this file please file an +# issue against the rust-lang/cargo repository. If you're +# editing this file be aware that the upstream Cargo.toml +# will likely look very different (and much more reasonable) + +[package] +name = "rustc-std-workspace-std" +version = "1.0.1" +authors = ["Alex Crichton "] +description = "Workaround for rustbuild" +license = "MIT/Apache-2.0" + +[lib] +name = "std" diff --git a/src/rust/vendor/rustc-std-workspace-std/src/lib.rs b/src/rust/vendor/rustc-std-workspace-std/src/lib.rs new file mode 100644 index 000000000..f40d09caf --- /dev/null +++ b/src/rust/vendor/rustc-std-workspace-std/src/lib.rs @@ -0,0 +1 @@ +pub use std::*; diff --git a/src/rust/vendor/unicode-width/.cargo-checksum.json b/src/rust/vendor/unicode-width/.cargo-checksum.json new file mode 100644 index 000000000..54a32a5da --- /dev/null +++ b/src/rust/vendor/unicode-width/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"COPYRIGHT":"23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d","Cargo.toml":"0dbe815fd47ef27da34bd28d02d085c3562b566b25af1bb9a01c9831931d20cc","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0","README.md":"502a7ed6b7e6bdca527fb40b8a17fe4ada70eedbd8f9be116fa49ee87ee3a019","benches/benches.rs":"4cfb510cd83882f31eacc974c65acd2b6a0ce659aadf300de921e659ace7d587","scripts/unicode.py":"4ebd86ce847ec3a93c8337a97ab11a9ce4deed7152c44d43576aa6c1aa99e31f","src/lib.rs":"f22ddddb0087228ac07d980284d7fef8df31e7c0440a02b335869571bbfb3d0f","src/tables.rs":"8b537b900a9c45bf702f1cf0aa868235b2b576a46065df77d70dbd6781e9f1e5","tests/tests.rs":"81beec78aa6c92b3e975226239d643bc7f51379ab3358ae697bed40cf0011462"},"package":"68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6"} \ No newline at end of file diff --git a/src/rust/vendor/unicode-width/COPYRIGHT b/src/rust/vendor/unicode-width/COPYRIGHT new file mode 100644 index 000000000..b286ec16a --- /dev/null +++ b/src/rust/vendor/unicode-width/COPYRIGHT @@ -0,0 +1,7 @@ +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. diff --git a/src/rust/vendor/unicode-width/Cargo.toml b/src/rust/vendor/unicode-width/Cargo.toml new file mode 100644 index 000000000..7527aa19a --- /dev/null +++ b/src/rust/vendor/unicode-width/Cargo.toml @@ -0,0 +1,68 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +name = "unicode-width" +version = "0.1.12" +authors = [ + "kwantam ", + "Manish Goregaokar ", +] +exclude = [ + "target/*", + "Cargo.lock", +] +description = """ +Determine displayed width of `char` and `str` types +according to Unicode Standard Annex #11 rules. +""" +homepage = "https://github.com/unicode-rs/unicode-width" +readme = "README.md" +keywords = [ + "text", + "width", + "unicode", +] +categories = [ + "command-line-interface", + "internationalization", + "no-std::no-alloc", + "text-processing", +] +license = "MIT OR Apache-2.0" +repository = "https://github.com/unicode-rs/unicode-width" + +[dependencies.compiler_builtins] +version = "0.1" +optional = true + +[dependencies.core] +version = "1.0" +optional = true +package = "rustc-std-workspace-core" + +[dependencies.std] +version = "1.0" +optional = true +package = "rustc-std-workspace-std" + +[dev-dependencies.unicode-normalization] +version = "0.1.23" + +[features] +default = [] +no_std = [] +rustc-dep-of-std = [ + "std", + "core", + "compiler_builtins", +] diff --git a/src/rust/vendor/unicode-width/LICENSE-APACHE b/src/rust/vendor/unicode-width/LICENSE-APACHE new file mode 100644 index 000000000..16fe87b06 --- /dev/null +++ b/src/rust/vendor/unicode-width/LICENSE-APACHE @@ -0,0 +1,201 @@ + 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. diff --git a/src/rust/vendor/unicode-width/LICENSE-MIT b/src/rust/vendor/unicode-width/LICENSE-MIT new file mode 100644 index 000000000..e69282e38 --- /dev/null +++ b/src/rust/vendor/unicode-width/LICENSE-MIT @@ -0,0 +1,25 @@ +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. diff --git a/src/rust/vendor/unicode-width/README.md b/src/rust/vendor/unicode-width/README.md new file mode 100644 index 000000000..e49eaab24 --- /dev/null +++ b/src/rust/vendor/unicode-width/README.md @@ -0,0 +1,56 @@ +# `unicode-width` + +[![Build status](https://github.com/unicode-rs/unicode-width/actions/workflows/rust.yml/badge.svg)](https://travis-ci.org/unicode-rs/unicode-width) +[![crates.io version](https://img.shields.io/crates/v/unicode-width)](https://crates.io/crates/unicode-width) +[![Docs status](https://img.shields.io/docsrs/unicode-width)](https://docs.rs/unicode-width/) + +Determine displayed width of `char` and `str` types according to [Unicode Standard Annex #11][UAX11], +other portions of the Unicode standard, and common implementations of POSIX [`wcwidth()`](https://pubs.opengroup.org/onlinepubs/9699919799/). + +This crate is `#![no_std]`. + +[UAX11]: http://www.unicode.org/reports/tr11/ + +```rust +use unicode_width::UnicodeWidthStr; + +fn main() { + let teststr = "Hello, world!"; + let width = UnicodeWidthStr::width(teststr); + println!("{}", teststr); + println!("The above string is {} columns wide.", width); + let width = teststr.width_cjk(); + println!("The above string is {} columns wide (CJK).", width); +} +``` + +**NOTE:** The computed width values may not match the actual rendered column +width. For example, the woman scientist emoji comprises of a woman emoji, a +zero-width joiner and a microscope emoji. Such [emoji ZWJ sequences](https://www.unicode.org/reports/tr51/#Emoji_ZWJ_Sequences) +are considered to have the sum of the widths of their constituent parts: + +```rust +extern crate unicode_width; +use unicode_width::UnicodeWidthStr; + +fn main() { + assert_eq!(UnicodeWidthStr::width("👩"), 2); // Woman + assert_eq!(UnicodeWidthStr::width("🔬"), 2); // Microscope + assert_eq!(UnicodeWidthStr::width("👩‍🔬"), 4); // Woman scientist +} +``` + +Additionally, [defective combining character sequences](https://unicode.org/glossary/#defective_combining_character_sequence) +and nonstandard [Korean jamo](https://unicode.org/glossary/#jamo) sequences may +be rendered with a different width than what this crate says. (This is not an +exhaustive list.) + +## crates.io + +You can use this package in your project by adding the following +to your `Cargo.toml`: + +```toml +[dependencies] +unicode-width = "0.1.11" +``` diff --git a/src/rust/vendor/unicode-width/benches/benches.rs b/src/rust/vendor/unicode-width/benches/benches.rs new file mode 100644 index 000000000..44aaee6a3 --- /dev/null +++ b/src/rust/vendor/unicode-width/benches/benches.rs @@ -0,0 +1,114 @@ +// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. +#![feature(test)] + +extern crate test; + +use std::iter; + +use test::Bencher; + +use unicode_width::{UnicodeWidthChar, UnicodeWidthStr}; + +#[bench] +fn cargo(b: &mut Bencher) { + let string = iter::repeat('a').take(4096).collect::(); + + b.iter(|| { + for c in string.chars() { + test::black_box(UnicodeWidthChar::width(c)); + } + }); +} + +#[bench] +#[allow(deprecated)] +fn stdlib(b: &mut Bencher) { + let string = iter::repeat('a').take(4096).collect::(); + + b.iter(|| { + for c in string.chars() { + test::black_box(c.width()); + } + }); +} + +#[bench] +fn simple_if(b: &mut Bencher) { + let string = iter::repeat('a').take(4096).collect::(); + + b.iter(|| { + for c in string.chars() { + test::black_box(simple_width_if(c)); + } + }); +} + +#[bench] +fn simple_match(b: &mut Bencher) { + let string = iter::repeat('a').take(4096).collect::(); + + b.iter(|| { + for c in string.chars() { + test::black_box(simple_width_match(c)); + } + }); +} + +#[inline] +fn simple_width_if(c: char) -> Option { + let cu = c as u32; + if cu < 127 { + if cu > 31 { + Some(1) + } else if cu == 0 { + Some(0) + } else { + None + } + } else { + UnicodeWidthChar::width(c) + } +} + +#[inline] +fn simple_width_match(c: char) -> Option { + match c as u32 { + cu if cu == 0 => Some(0), + cu if cu < 0x20 => None, + cu if cu < 0x7f => Some(1), + _ => UnicodeWidthChar::width(c), + } +} + +#[bench] +fn enwik8(b: &mut Bencher) { + // To benchmark, download & unzip `enwik8` from https://data.deepai.org/enwik8.zip + let data_path = "bench_data/enwik8"; + let string = std::fs::read_to_string(data_path).unwrap_or_default(); + b.iter(|| test::black_box(UnicodeWidthStr::width(string.as_str()))); +} + +#[bench] +fn jawiki(b: &mut Bencher) { + // To benchmark, download & extract `jawiki-20220501-pages-articles-multistream-index.txt` from + // https://dumps.wikimedia.org/jawiki/20220501/jawiki-20220501-pages-articles-multistream-index.txt.bz2 + let data_path = "bench_data/jawiki-20220501-pages-articles-multistream-index.txt"; + let string = std::fs::read_to_string(data_path).unwrap_or_default(); + b.iter(|| test::black_box(UnicodeWidthStr::width(string.as_str()))); +} + +#[bench] +fn emoji(b: &mut Bencher) { + // To benchmark, download emoji-style.txt from https://www.unicode.org/emoji/charts/emoji-style.txt + let data_path = "bench_data/emoji-style.txt"; + let string = std::fs::read_to_string(data_path).unwrap_or_default(); + b.iter(|| test::black_box(UnicodeWidthStr::width(string.as_str()))); +} diff --git a/src/rust/vendor/unicode-width/scripts/unicode.py b/src/rust/vendor/unicode-width/scripts/unicode.py new file mode 100755 index 000000000..edf3528d8 --- /dev/null +++ b/src/rust/vendor/unicode-width/scripts/unicode.py @@ -0,0 +1,700 @@ +#!/usr/bin/env python3 +# +# Copyright 2011-2022 The Rust Project Developers. See the COPYRIGHT +# file at the top-level directory of this distribution and at +# http://rust-lang.org/COPYRIGHT. +# +# Licensed under the Apache License, Version 2.0 or the MIT license +# , at your +# option. This file may not be copied, modified, or distributed +# except according to those terms. + +# This script uses the following Unicode tables: +# +# - DerivedCoreProperties.txt +# - EastAsianWidth.txt +# - HangulSyllableType.txt +# - PropList.txt +# - ReadMe.txt +# - emoji/emoji-variation-sequences.txt +# +# Since this should not require frequent updates, we just store this +# out-of-line and check the generated module into git. + +import enum +import math +import os +import re +import sys +from collections import defaultdict +from itertools import batched + +NUM_CODEPOINTS = 0x110000 +"""An upper bound for which `range(0, NUM_CODEPOINTS)` contains Unicode's codespace.""" + +MAX_CODEPOINT_BITS = math.ceil(math.log2(NUM_CODEPOINTS - 1)) +"""The maximum number of bits required to represent a Unicode codepoint.""" + + +class OffsetType(enum.IntEnum): + """Represents the data type of a lookup table's offsets. Each variant's value represents the + number of bits required to represent that variant's type.""" + + U2 = 2 + """Offsets are 2-bit unsigned integers, packed four-per-byte.""" + U4 = 4 + """Offsets are 4-bit unsigned integers, packed two-per-byte.""" + U8 = 8 + """Each offset is a single byte (u8).""" + + +TABLE_CFGS = [ + (13, MAX_CODEPOINT_BITS, OffsetType.U8), + (6, 13, OffsetType.U8), + (0, 6, OffsetType.U2), +] +"""Represents the format of each level of the multi-level lookup table. +A level's entry is of the form `(low_bit, cap_bit, offset_type)`. +This means that every sub-table in that level is indexed by bits `low_bit..cap_bit` of the +codepoint and those tables offsets are stored according to `offset_type`. + +If this is edited, you must ensure that `emit_module` reflects your changes.""" + +MODULE_FILENAME = "tables.rs" +"""The filename of the emitted Rust module (will be created in the working directory)""" + +Codepoint = int +BitPos = int + + +def fetch_open(filename: str): + """Opens `filename` and return its corresponding file object. If `filename` isn't on disk, + fetches it from `http://www.unicode.org/Public/UNIDATA/`. Exits with code 1 on failure. + """ + basename = os.path.basename(filename) + if not os.path.exists(basename): + os.system(f"curl -O http://www.unicode.org/Public/UNIDATA/{filename}") + try: + return open(basename, encoding="utf-8") + except OSError: + sys.stderr.write(f"cannot load {basename}") + sys.exit(1) + + +def load_unicode_version() -> "tuple[int, int, int]": + """Returns the current Unicode version by fetching and processing `ReadMe.txt`.""" + with fetch_open("ReadMe.txt") as readme: + pattern = r"for Version (\d+)\.(\d+)\.(\d+) of the Unicode" + return tuple(map(int, re.search(pattern, readme.read()).groups())) + + +class EffectiveWidth(enum.IntEnum): + """Represents the width of a Unicode character. All East Asian Width classes resolve into + either `EffectiveWidth.NARROW`, `EffectiveWidth.WIDE`, or `EffectiveWidth.AMBIGUOUS`. + """ + + ZERO = 0 + """ Zero columns wide. """ + NARROW = 1 + """ One column wide. """ + WIDE = 2 + """ Two columns wide. """ + AMBIGUOUS = 3 + """ Two columns wide in a CJK context. One column wide in all other contexts. """ + + +def load_east_asian_widths() -> "list[EffectiveWidth]": + """Return a list of effective widths, indexed by codepoint. + Widths are determined by fetching and parsing `EastAsianWidth.txt`. + + `Neutral`, `Narrow`, and `Halfwidth` characters are assigned `EffectiveWidth.NARROW`. + + `Wide` and `Fullwidth` characters are assigned `EffectiveWidth.WIDE`. + + `Ambiguous` chracters are assigned `EffectiveWidth.AMBIGUOUS`.""" + with fetch_open("EastAsianWidth.txt") as eaw: + # matches a width assignment for a single codepoint, i.e. "1F336;N # ..." + single = re.compile(r"^([0-9A-F]+)\s+;\s+(\w+) +# (\w+)") + # matches a width assignment for a range of codepoints, i.e. "3001..3003;W # ..." + multiple = re.compile(r"^([0-9A-F]+)\.\.([0-9A-F]+)\s+;\s+(\w+) +# (\w+)") + # map between width category code and condensed width + width_codes = { + **{c: EffectiveWidth.NARROW for c in ["N", "Na", "H"]}, + **{c: EffectiveWidth.WIDE for c in ["W", "F"]}, + "A": EffectiveWidth.AMBIGUOUS, + } + + width_map = [] + current = 0 + for line in eaw.readlines(): + raw_data = None # (low, high, width) + if match := single.match(line): + raw_data = (match.group(1), match.group(1), match.group(2)) + elif match := multiple.match(line): + raw_data = (match.group(1), match.group(2), match.group(3)) + else: + continue + low = int(raw_data[0], 16) + high = int(raw_data[1], 16) + width = width_codes[raw_data[2]] + + assert current <= high + while current <= high: + # Some codepoints don't fall into any of the ranges in EastAsianWidth.txt. + # All such codepoints are implicitly given Neural width (resolves to narrow) + width_map.append(EffectiveWidth.NARROW if current < low else width) + current += 1 + + while len(width_map) < NUM_CODEPOINTS: + # Catch any leftover codepoints and assign them implicit Neutral/narrow width. + width_map.append(EffectiveWidth.NARROW) + + return width_map + + +def load_zero_widths() -> "list[bool]": + """Returns a list `l` where `l[c]` is true if codepoint `c` is considered a zero-width + character. `c` is considered a zero-width character if + + - it is a control character, + - or if it has the `Default_Ignorable_Code_Point` property (determined from `DerivedCoreProperties.txt`), + - or if it has the `Grapheme_Extend` property (determined from `DerivedCoreProperties.txt`), + - or if it one of eight characters that should be `Grapheme_Extend` but aren't due to a Unicode spec bug, + - or if it has a `Hangul_Syllable_Type` of `Vowel_Jamo` or `Trailing_Jamo` (determined from `HangulSyllableType.txt`). + """ + + zw_map = [False] * NUM_CODEPOINTS + + # Control characters have width 0 + for c in range(0x00, 0x20): + zw_map[c] = True + for c in range(0x7F, 0xA0): + zw_map[c] = True + + # `Default_Ignorable_Code_Point`s also have 0 width: + # https://www.unicode.org/faq/unsup_char.html#3 + # https://www.unicode.org/versions/Unicode15.1.0/ch05.pdf#G40095 + # + # `Grapheme_Extend` includes characters with general category `Mn` or `Me`, + # as well as a few `Mc` characters that need to be included so that + # canonically equivalent sequences have the same width. + with fetch_open("DerivedCoreProperties.txt") as properties: + single = re.compile( + r"^([0-9A-F]+)\s+;\s+(?:Default_Ignorable_Code_Point|Grapheme_Extend)\s+" + ) + multiple = re.compile( + r"^([0-9A-F]+)\.\.([0-9A-F]+)\s+;\s+(?:Default_Ignorable_Code_Point|Grapheme_Extend)\s+" + ) + + for line in properties.readlines(): + raw_data = None # (low, high) + if match := single.match(line): + raw_data = (match.group(1), match.group(1)) + elif match := multiple.match(line): + raw_data = (match.group(1), match.group(2)) + else: + continue + low = int(raw_data[0], 16) + high = int(raw_data[1], 16) + for cp in range(low, high + 1): + zw_map[cp] = True + + # Unicode spec bug: these should be `Grapheme_Cluster_Break=Extend`, + # as they canonically decompose to two characters with this property, + # but they aren't. + for c in [0x0CC0, 0x0CC7, 0x0CC8, 0x0CCA, 0x0CCB, 0x1B3B, 0x1B3D, 0x1B43]: + zw_map[c] = True + + # Treat `Hangul_Syllable_Type`s of `Vowel_Jamo` and `Trailing_Jamo` + # as zero-width. This matches the behavior of glibc `wcwidth`. + # + # Decomposed Hangul characters consist of 3 parts: a `Leading_Jamo`, + # a `Vowel_Jamo`, and an optional `Trailing_Jamo`. Together these combine + # into a single wide grapheme. So we treat vowel and trailing jamo as + # 0-width, such that only the width of the leading jamo is counted + # and the resulting grapheme has width 2. + # + # (See the Unicode Standard sections 3.12 and 18.6 for more on Hangul) + with fetch_open("HangulSyllableType.txt") as categories: + single = re.compile(r"^([0-9A-F]+)\s+;\s+(V|T)\s+") + multiple = re.compile(r"^([0-9A-F]+)\.\.([0-9A-F]+)\s+;\s+(V|T)\s+") + + for line in categories.readlines(): + raw_data = None # (low, high) + if match := single.match(line): + raw_data = (match.group(1), match.group(1)) + elif match := multiple.match(line): + raw_data = (match.group(1), match.group(2)) + else: + continue + low = int(raw_data[0], 16) + high = int(raw_data[1], 16) + for cp in range(low, high + 1): + zw_map[cp] = True + + # Special case: U+115F HANGUL CHOSEONG FILLER. + # U+115F is a `Default_Ignorable_Code_Point`, and therefore would normally have + # zero width. However, the expected usage is to combine it with vowel or trailing jamo + # (which are considered 0-width on their own) to form a composed Hangul syllable with + # width 2. Therefore, we treat it as having width 2. + zw_map[0x115F] = False + + return zw_map + + +class Bucket: + """A bucket contains a group of codepoints and an ordered width list. If one bucket's width + list overlaps with another's width list, those buckets can be merged via `try_extend`. + """ + + def __init__(self): + """Creates an empty bucket.""" + self.entry_set = set() + self.widths = [] + + def append(self, codepoint: Codepoint, width: EffectiveWidth): + """Adds a codepoint/width pair to the bucket, and appends `width` to the width list.""" + self.entry_set.add((codepoint, width)) + self.widths.append(width) + + def try_extend(self, attempt: "Bucket") -> bool: + """If either `self` or `attempt`'s width list starts with the other bucket's width list, + set `self`'s width list to the longer of the two, add all of `attempt`'s codepoints + into `self`, and return `True`. Otherwise, return `False`.""" + (less, more) = (self.widths, attempt.widths) + if len(self.widths) > len(attempt.widths): + (less, more) = (attempt.widths, self.widths) + if less != more[: len(less)]: + return False + self.entry_set |= attempt.entry_set + self.widths = more + return True + + def entries(self) -> "list[tuple[Codepoint, EffectiveWidth]]": + """Return a list of the codepoint/width pairs in this bucket, sorted by codepoint.""" + result = list(self.entry_set) + result.sort() + return result + + def width(self) -> "EffectiveWidth | None": + """If all codepoints in this bucket have the same width, return that width; otherwise, + return `None`.""" + if len(self.widths) == 0: + return None + potential_width = self.widths[0] + for width in self.widths[1:]: + if potential_width != width: + return None + return potential_width + + +def make_buckets(entries, low_bit: BitPos, cap_bit: BitPos) -> "list[Bucket]": + """Partitions the `(Codepoint, EffectiveWidth)` tuples in `entries` into `Bucket`s. All + codepoints with identical bits from `low_bit` to `cap_bit` (exclusive) are placed in the + same bucket. Returns a list of the buckets in increasing order of those bits.""" + num_bits = cap_bit - low_bit + assert num_bits > 0 + buckets = [Bucket() for _ in range(0, 2**num_bits)] + mask = (1 << num_bits) - 1 + for codepoint, width in entries: + buckets[(codepoint >> low_bit) & mask].append(codepoint, width) + return buckets + + +class Table: + """Represents a lookup table. Each table contains a certain number of subtables; each + subtable is indexed by a contiguous bit range of the codepoint and contains a list + of `2**(number of bits in bit range)` entries. (The bit range is the same for all subtables.) + + Typically, tables contain a list of buckets of codepoints. Bucket `i`'s codepoints should + be indexed by sub-table `i` in the next-level lookup table. The entries of this table are + indexes into the bucket list (~= indexes into the sub-tables of the next-level table.) The + key to compression is that two different buckets in two different sub-tables may have the + same width list, which means that they can be merged into the same bucket. + + If no bucket contains two codepoints with different widths, calling `indices_to_widths` will + discard the buckets and convert the entries into `EffectiveWidth` values.""" + + def __init__( + self, entry_groups, low_bit: BitPos, cap_bit: BitPos, offset_type: OffsetType + ): + """Create a lookup table with a sub-table for each `(Codepoint, EffectiveWidth)` iterator + in `entry_groups`. Each sub-table is indexed by codepoint bits in `low_bit..cap_bit`, + and each table entry is represented in the format specified by `offset_type`. Asserts + that this table is actually representable with `offset_type`.""" + self.low_bit = low_bit + self.cap_bit = cap_bit + self.offset_type = offset_type + self.entries = [] + self.indexed = [] + + buckets = [] + for entries in entry_groups: + buckets.extend(make_buckets(entries, self.low_bit, self.cap_bit)) + + for bucket in buckets: + for i, existing in enumerate(self.indexed): + if existing.try_extend(bucket): + self.entries.append(i) + break + else: + self.entries.append(len(self.indexed)) + self.indexed.append(bucket) + + # Validate offset type + for index in self.entries: + assert index < (1 << int(self.offset_type)) + + def indices_to_widths(self): + """Destructively converts the indices in this table to the `EffectiveWidth` values of + their buckets. Assumes that no bucket contains codepoints with different widths. + """ + self.entries = list(map(lambda i: int(self.indexed[i].width()), self.entries)) + del self.indexed + + def buckets(self): + """Returns an iterator over this table's buckets.""" + return self.indexed + + def to_bytes(self) -> "list[int]": + """Returns this table's entries as a list of bytes. The bytes are formatted according to + the `OffsetType` which the table was created with, converting any `EffectiveWidth` entries + to their enum variant's integer value. For example, with `OffsetType.U2`, each byte will + contain four packed 2-bit entries.""" + entries_per_byte = 8 // int(self.offset_type) + byte_array = [] + for i in range(0, len(self.entries), entries_per_byte): + byte = 0 + for j in range(0, entries_per_byte): + byte |= self.entries[i + j] << (j * int(self.offset_type)) + byte_array.append(byte) + return byte_array + + +def make_tables( + table_cfgs: "list[tuple[BitPos, BitPos, OffsetType]]", entries +) -> "list[Table]": + """Creates a table for each configuration in `table_cfgs`, with the first config corresponding + to the top-level lookup table, the second config corresponding to the second-level lookup + table, and so forth. `entries` is an iterator over the `(Codepoint, EffectiveWidth)` pairs + to include in the top-level table.""" + tables = [] + entry_groups = [entries] + for low_bit, cap_bit, offset_type in table_cfgs: + table = Table(entry_groups, low_bit, cap_bit, offset_type) + entry_groups = map(lambda bucket: bucket.entries(), table.buckets()) + tables.append(table) + return tables + + +def load_variation_sequences() -> "list[int]": + """Outputs a list of character ranages, corresponding to all the valid characters for starting + an emoji presentation sequence.""" + + with fetch_open("emoji/emoji-variation-sequences.txt") as sequences: + # Match all emoji presentation sequences + # (one codepoint followed by U+FE0F, and labeled "emoji style") + sequence = re.compile(r"^([0-9A-F]+)\s+FE0F\s*;\s+emoji style") + codepoints = [] + for line in sequences.readlines(): + if match := sequence.match(line): + cp = int(match.group(1), 16) + codepoints.append(cp) + return codepoints + + +def make_variation_sequence_table( + seqs: "list[int]", + width_map: "list[EffectiveWidth]", +) -> "tuple[list[int], list[list[int]]]": + """Generates 2-level lookup table for whether a codepoint might start an emoji presentation sequence. + (Characters that are always wide may be excluded.) + The first level is a match on all but the 10 LSB, the second level is a 1024-bit bitmap for those 10 LSB. + """ + + prefixes_dict = defaultdict(set) + for cp in seqs: + prefixes_dict[cp >> 10].add(cp & 0x3FF) + + # We don't strictly need to keep track of characters that are always wide, + # because being in an emoji variation seq won't affect their width. + # So store their info only when it wouldn't inflate the size of the tables. + for k in list(prefixes_dict.keys()): + if all( + map( + lambda cp: width_map[(k << 10) | cp] == EffectiveWidth.WIDE, + prefixes_dict[k], + ) + ): + del prefixes_dict[k] + + indexes = list(prefixes_dict.keys()) + + # Similarly, we can spuriously return `true` for always-wide characters + # even if not part of a presentation seq; this saves an additional lookup, + # so we should do it where there is no size cost. + for cp, width in enumerate(width_map): + if width == EffectiveWidth.WIDE and (cp >> 10) in indexes: + prefixes_dict[cp >> 10].add(cp & 0x3FF) + + leaves = [] + for cps in prefixes_dict.values(): + leaf = [0] * 128 + for cp in cps: + idx_in_leaf, bit_shift = divmod(cp, 8) + leaf[idx_in_leaf] |= 1 << bit_shift + leaves.append(leaf) + return (indexes, leaves) + + +def emit_module( + out_name: str, + unicode_version: "tuple[int, int, int]", + tables: "list[Table]", + variation_table: "tuple[list[int], list[list[int]]]", +): + """Outputs a Rust module to `out_name` using table data from `tables`. + If `TABLE_CFGS` is edited, you may need to edit the included code for `lookup_width`. + """ + if os.path.exists(out_name): + os.remove(out_name) + with open(out_name, "w", newline="\n", encoding="utf-8") as module: + module.write( + """// Copyright 2012-2022 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// NOTE: The following code was generated by "scripts/unicode.py", do not edit directly +""" + ) + module.write( + f""" +/// The version of [Unicode](http://www.unicode.org/) +/// that this version of unicode-width is based on. +pub const UNICODE_VERSION: (u8, u8, u8) = {unicode_version}; +""" + ) + + module.write( + """ +pub mod charwidth { + /// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c` by + /// consulting a multi-level lookup table. + /// If `is_cjk == true`, ambiguous width characters are treated as double width; otherwise, + /// they're treated as single width. + /// + /// # Maintenance + /// The tables themselves are autogenerated but this function is hardcoded. You should have + /// nothing to worry about if you re-run `unicode.py` (for example, when updating Unicode.) + /// However, if you change the *actual structure* of the lookup tables (perhaps by editing the + /// `TABLE_CFGS` global in `unicode.py`) you must ensure that this code reflects those changes. + #[inline] + fn lookup_width(c: char, is_cjk: bool) -> usize { + let cp = c as usize; + + let t1_offset = TABLES_0[cp >> 13 & 0xFF]; + + // Each sub-table in TABLES_1 is 7 bits, and each stored entry is a byte, + // so each sub-table is 128 bytes in size. + // (Sub-tables are selected using the computed offset from the previous table.) + let t2_offset = TABLES_1[128 * usize::from(t1_offset) + (cp >> 6 & 0x7F)]; + + // Each sub-table in TABLES_2 is 6 bits, but each stored entry is 2 bits. + // This is accomplished by packing four stored entries into one byte. + // So each sub-table is 2**(6-2) == 16 bytes in size. + // Since this is the last table, each entry represents an encoded width. + let packed_widths = TABLES_2[16 * usize::from(t2_offset) + (cp >> 2 & 0xF)]; + + // Extract the packed width + let width = packed_widths >> (2 * (cp & 0b11)) & 0b11; + + // A width of 3 signifies that the codepoint is ambiguous width. + if width == 3 { + if is_cjk { + 2 + } else { + 1 + } + } else { + width.into() + } + } +""" + ) + + variation_idx, variation_leaves = variation_table + + module.write( + """ + /// Whether this character forms an [emoji presentation sequence] + /// (https://www.unicode.org/reports/tr51/#def_emoji_presentation_sequence) + /// when followed by `'\\u{FEOF}'`. + /// Emoji presentation sequences are considered to have width 2. + /// This may spuriously return `true` or `false` for characters that are always wide. + #[inline] + pub fn starts_emoji_presentation_seq(c: char) -> bool { + let cp: u32 = c.into(); + // First level of lookup uses all but 10 LSB + let top_bits = cp >> 10; + let idx_of_leaf: usize = match top_bits { +""" + ) + + for i, msbs in enumerate(variation_idx): + module.write(f" {msbs} => {i},\n") + + module.write( + """ _ => return false, + }; + // Extract the 3-9th (0-indexed) least significant bits of `cp`, + // and use them to index into `leaf_row`. + let idx_within_leaf = usize::try_from((cp >> 3) & 0x7F).unwrap(); + let leaf_byte = EMOJI_PRESENTATION_LEAVES.0[idx_of_leaf][idx_within_leaf]; + // Use the 3 LSB of `cp` to index into `leaf_byte`. + ((leaf_byte >> (cp & 7)) & 1) == 1 + } +""" + ) + + module.write( + """ + /// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c`, or + /// `None` if `c` is a control character other than `'\\x00'`. + /// If `is_cjk == true`, ambiguous width characters are treated as double width; otherwise, + /// they're treated as single width. + #[inline] + pub fn width(c: char, is_cjk: bool) -> Option { + if c < '\\u{7F}' { + if c >= '\\u{20}' { + // U+0020 to U+007F (exclusive) are single-width ASCII codepoints + Some(1) + } else if c == '\\0' { + // U+0000 *is* a control code, but it's special-cased + Some(0) + } else { + // U+0001 to U+0020 (exclusive) are control codes + None + } + } else if c >= '\\u{A0}' { + // No characters >= U+00A0 are control codes, so we can consult the lookup tables + Some(lookup_width(c, is_cjk)) + } else { + // U+007F to U+00A0 (exclusive) are control codes + None + } + } +""" + ) + + subtable_count = 1 + for i, table in enumerate(tables): + new_subtable_count = len(table.buckets()) + if i == len(tables) - 1: + table.indices_to_widths() # for the last table, indices == widths + byte_array = table.to_bytes() + module.write( + f""" + /// Autogenerated. {subtable_count} sub-table(s). Consult [`lookup_width`] for layout info. + static TABLES_{i}: [u8; {len(byte_array)}] = [""" + ) + for j, byte in enumerate(byte_array): + # Add line breaks for every 15th entry (chosen to match what rustfmt does) + if j % 15 == 0: + module.write("\n ") + module.write(f" 0x{byte:02X},") + module.write("\n ];\n") + subtable_count = new_subtable_count + + # emoji table + + module.write( + f""" + #[repr(align(128))] + struct Align128(T); + /// Array of 1024-bit bitmaps. Index into the correct (obtained from `EMOJI_PRESENTATION_INDEX`) + /// bitmap with the 10 LSB of your codepoint to get whether it can start an emoji presentation seq. + static EMOJI_PRESENTATION_LEAVES: Align128<[[u8; 128]; {len(variation_leaves)}]> = Align128([ +""" + ) + for leaf in variation_leaves: + module.write(" [\n") + for row in batched(leaf, 14): + module.write(" ") + for entry in row: + module.write(f" 0x{entry:02X},") + module.write("\n") + module.write(" ],\n") + + module.write(" ]);\n") + + module.write("}\n") + + +def main(module_filename: str): + """Obtain character data from the latest version of Unicode, transform it into a multi-level + lookup table for character width, and write a Rust module utilizing that table to + `module_filename`. + + We obey the following rules, in decreasing order of importance: + + - Emoji presentation sequences are double-width. + - The soft hyphen (`U+00AD`) is single-width. (https://archive.is/fCT3c) + - Hangul jamo medial vowels & final consonants are zero-width. + - `Default_Ignorable_Code_Point`s are zero-width, except for U+115F HANGUL CHOSEONG FILLER. + - Control characters are zero-width. + - `Grapheme_Extend` chracters, as well as eight characters that NFD decompose to `Grapheme_Extend` chracters, + are zero-width. + - Codepoints with an East Asian Width of `Ambigous` are ambiguous-width. + - Codepoints with an East Asian Width of `Wide` or `Fullwidth` are double-width. + - All other codepoints (including unassigned codepoints and codepoints with an East Asian Width + of `Neutral`, `Narrow`, or `Halfwidth`) are single-width. + + These rules are based off of UAX11, other Unicode standards, and various `wcwidth()` implementations. + """ + version = load_unicode_version() + print(f"Generating module for Unicode {version[0]}.{version[1]}.{version[2]}") + + eaw_map = load_east_asian_widths() + zw_map = load_zero_widths() + + # Characters marked as zero-width in zw_map should be zero-width in the final map + width_map = list( + map(lambda x: EffectiveWidth.ZERO if x[1] else x[0], zip(eaw_map, zw_map)) + ) + + # Override for soft hyphen + width_map[0x00AD] = EffectiveWidth.NARROW + + tables = make_tables(TABLE_CFGS, enumerate(width_map)) + + emoji_variations = load_variation_sequences() + variation_table = make_variation_sequence_table(emoji_variations, width_map) + + print("------------------------") + total_size = 0 + for i, table in enumerate(tables): + size_bytes = len(table.to_bytes()) + print(f"Table {i} size: {size_bytes} bytes") + total_size += size_bytes + emoji_index_size = len(variation_table[0]) * 4 + print(f"Emoji presentation index size: {emoji_index_size} bytes") + total_size += emoji_index_size + emoji_leaves_size = len(variation_table[1]) * len(variation_table[1][0]) + print(f"Emoji presentation leaves size: {emoji_leaves_size} bytes") + total_size += emoji_leaves_size + print("------------------------") + print(f" Total size: {total_size} bytes") + + emit_module(module_filename, version, tables, variation_table) + print(f'Wrote to "{module_filename}"') + + +if __name__ == "__main__": + main(MODULE_FILENAME) diff --git a/src/rust/vendor/unicode-width/src/lib.rs b/src/rust/vendor/unicode-width/src/lib.rs new file mode 100644 index 000000000..339d795bb --- /dev/null +++ b/src/rust/vendor/unicode-width/src/lib.rs @@ -0,0 +1,177 @@ +// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +//! Determine displayed width of `char` and `str` types according to +//! [Unicode Standard Annex #11](http://www.unicode.org/reports/tr11/), +//! other portions of the Unicode standard, and common implementations of +//! POSIX [`wcwidth()`](https://pubs.opengroup.org/onlinepubs/9699919799/). +//! See the [Rules for determining width](#rules-for-determining-width) section +//! for the exact rules. +//! +//! This crate is `#![no_std]`. +//! +//! ```rust +//! use unicode_width::UnicodeWidthStr; +//! +//! let teststr = "Hello, world!"; +//! let width = UnicodeWidthStr::width(teststr); +//! println!("{}", teststr); +//! println!("The above string is {} columns wide.", width); +//! let width = teststr.width_cjk(); +//! println!("The above string is {} columns wide (CJK).", width); +//! ``` +//! +//! # Rules for determining width +//! +//! This crate currently uses the following rules to determine the width of a +//! character or string, in order of decreasing precedence. These may be tweaked in the future. +//! +//! 1. [Emoji presentation sequences](https://unicode.org/reports/tr51/#def_emoji_presentation_sequence) +//! have width 2. (The width of a string may therefore differ from the sum of the widths of its characters.) +//! 2. [`'\u{00AD}'` SOFT HYPHEN](https://util.unicode.org/UnicodeJsps/character.jsp?a=00AD) has width 1. +//! 3. [`'\u{115F}'` HANGUL CHOSEONG FILLER](https://util.unicode.org/UnicodeJsps/character.jsp?a=115F) has width 2. +//! 4. The following have width 0: +//! - [Characters](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BDefault_Ignorable_Code_Point%7D) +//! with the [`Default_Ignorable_Code_Point`](https://www.unicode.org/versions/Unicode15.0.0/ch05.pdf#G40095) property. +//! - [Characters](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BGrapheme_Extend%7D) +//! with the [`Grapheme_Extend`] property. +//! - The following 8 characters, all of which have NFD decompositions consisting of two [`Grapheme_Extend`] chracters: +//! - [`'\u{0CC0}'` KANNADA VOWEL SIGN II](https://util.unicode.org/UnicodeJsps/character.jsp?a=0CC0), +//! - [`'\u{0CC7}'` KANNADA VOWEL SIGN EE](https://util.unicode.org/UnicodeJsps/character.jsp?a=0CC7), +//! - [`'\u{0CC8}'` KANNADA VOWEL SIGN AI](https://util.unicode.org/UnicodeJsps/character.jsp?a=0CC8), +//! - [`'\u{0CCA}'` KANNADA VOWEL SIGN O](https://util.unicode.org/UnicodeJsps/character.jsp?a=0CCA), +//! - [`'\u{0CCB}'` KANNADA VOWEL SIGN OO](https://util.unicode.org/UnicodeJsps/character.jsp?a=0CCB), +//! - [`'\u{1B3B}'` BALINESE VOWEL SIGN RA REPA TEDUNG](https://util.unicode.org/UnicodeJsps/character.jsp?a=1B3B), +//! - [`'\u{1B3D}'` BALINESE VOWEL SIGN LA LENGA TEDUNG](https://util.unicode.org/UnicodeJsps/character.jsp?a=1B3D), and +//! - [`'\u{1B43}'` BALINESE VOWEL SIGN PEPET TEDUNG](https://util.unicode.org/UnicodeJsps/character.jsp?a=1B43). +//! - [Characters](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BHangul_Syllable_Type%3DV%7D%5Cp%7BHangul_Syllable_Type%3DT%7D) +//! with a [`Hangul_Syllable_Type`](https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf#G45593) +//! of `Vowel_Jamo` (`V`) or `Trailing_Jamo` (`T`). +//! - [`'\0'` NUL](https://util.unicode.org/UnicodeJsps/character.jsp?a=0000). +//! 5. The [control characters](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BCc%7D) +//! have no defined width, and are ignored when determining the width of a string. +//! 6. [Characters](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BEast_Asian_Width%3DF%7D%5Cp%7BEast_Asian_Width%3DW%7D) +//! with an [`East_Asian_Width`] of [`Fullwidth` (`F`)](https://www.unicode.org/reports/tr11/#ED2) +//! or [`Wide` (`W`)](https://www.unicode.org/reports/tr11/#ED4) have width 2. +//! 7. [Characters](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BEast_Asian_Width%3DA%7D) +//! with an [`East_Asian_Width`] of [`Ambiguous` (`A`)](https://www.unicode.org/reports/tr11/#ED6) +//! have width 2 in an East Asian context, and width 1 otherwise. +//! 8. All other characters have width 1. +//! +//! [`East_Asian_Width`]: https://www.unicode.org/reports/tr11/#ED1 +//! [`Grapheme_Extend`]: https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf#G52443 + +//! +//! ## Canonical equivalence +//! +//! The non-CJK width methods guarantee that canonically equivalent strings are assigned the same width. +//! However, this guarantee does not currently hold for the CJK width variants. + +#![forbid(unsafe_code)] +#![deny(missing_docs)] +#![doc( + html_logo_url = "https://unicode-rs.github.io/unicode-rs_sm.png", + html_favicon_url = "https://unicode-rs.github.io/unicode-rs_sm.png" +)] +#![no_std] + +use tables::charwidth as cw; +pub use tables::UNICODE_VERSION; + +mod tables; + +/// Methods for determining displayed width of Unicode characters. +pub trait UnicodeWidthChar { + /// Returns the character's displayed width in columns, or `None` if the + /// character is a control character other than `'\x00'`. + /// + /// This function treats characters in the Ambiguous category according + /// to [Unicode Standard Annex #11](http://www.unicode.org/reports/tr11/) + /// as 1 column wide. This is consistent with the recommendations for non-CJK + /// contexts, or when the context cannot be reliably determined. + fn width(self) -> Option; + + /// Returns the character's displayed width in columns, or `None` if the + /// character is a control character other than `'\x00'`. + /// + /// This function treats characters in the Ambiguous category according + /// to [Unicode Standard Annex #11](http://www.unicode.org/reports/tr11/) + /// as 2 columns wide. This is consistent with the recommendations for + /// CJK contexts. + fn width_cjk(self) -> Option; +} + +impl UnicodeWidthChar for char { + #[inline] + fn width(self) -> Option { + cw::width(self, false) + } + + #[inline] + fn width_cjk(self) -> Option { + cw::width(self, true) + } +} + +/// Methods for determining displayed width of Unicode strings. +pub trait UnicodeWidthStr { + /// Returns the string's displayed width in columns. + /// + /// Control characters are treated as having zero width, + /// and [emoji presentation sequences](https://unicode.org/reports/tr51/#def_emoji_presentation_sequence) + /// are assigned width 2. + /// + /// This function treats characters in the Ambiguous category according + /// to [Unicode Standard Annex #11](http://www.unicode.org/reports/tr11/) + /// as 1 column wide. This is consistent with the recommendations for + /// non-CJK contexts, or when the context cannot be reliably determined. + fn width(&self) -> usize; + + /// Returns the string's displayed width in columns. + /// + /// Control characters are treated as having zero width, + /// and [emoji presentation sequences](https://unicode.org/reports/tr51/#def_emoji_presentation_sequence) + /// are assigned width 2. + /// + /// This function treats characters in the Ambiguous category according + /// to [Unicode Standard Annex #11](http://www.unicode.org/reports/tr11/) + /// as 2 column wide. This is consistent with the recommendations for + /// CJK contexts. + fn width_cjk(&self) -> usize; +} + +impl UnicodeWidthStr for str { + #[inline] + fn width(&self) -> usize { + str_width(self, false) + } + + #[inline] + fn width_cjk(&self) -> usize { + str_width(self, true) + } +} + +fn str_width(s: &str, is_cjk: bool) -> usize { + s.chars() + .rfold((0, false), |(sum, was_fe0f), c| { + if c == '\u{FE0F}' { + (sum, true) + } else { + let add = if was_fe0f && cw::starts_emoji_presentation_seq(c) { + 2 + } else { + cw::width(c, is_cjk).unwrap_or(0) + }; + (sum + add, false) + } + }) + .0 +} diff --git a/src/rust/vendor/unicode-width/src/tables.rs b/src/rust/vendor/unicode-width/src/tables.rs new file mode 100644 index 000000000..2bdc7b367 --- /dev/null +++ b/src/rust/vendor/unicode-width/src/tables.rs @@ -0,0 +1,647 @@ +// Copyright 2012-2022 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// NOTE: The following code was generated by "scripts/unicode.py", do not edit directly + +/// The version of [Unicode](http://www.unicode.org/) +/// that this version of unicode-width is based on. +pub const UNICODE_VERSION: (u8, u8, u8) = (15, 1, 0); + +pub mod charwidth { + /// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c` by + /// consulting a multi-level lookup table. + /// If `is_cjk == true`, ambiguous width characters are treated as double width; otherwise, + /// they're treated as single width. + /// + /// # Maintenance + /// The tables themselves are autogenerated but this function is hardcoded. You should have + /// nothing to worry about if you re-run `unicode.py` (for example, when updating Unicode.) + /// However, if you change the *actual structure* of the lookup tables (perhaps by editing the + /// `TABLE_CFGS` global in `unicode.py`) you must ensure that this code reflects those changes. + #[inline] + fn lookup_width(c: char, is_cjk: bool) -> usize { + let cp = c as usize; + + let t1_offset = TABLES_0[cp >> 13 & 0xFF]; + + // Each sub-table in TABLES_1 is 7 bits, and each stored entry is a byte, + // so each sub-table is 128 bytes in size. + // (Sub-tables are selected using the computed offset from the previous table.) + let t2_offset = TABLES_1[128 * usize::from(t1_offset) + (cp >> 6 & 0x7F)]; + + // Each sub-table in TABLES_2 is 6 bits, but each stored entry is 2 bits. + // This is accomplished by packing four stored entries into one byte. + // So each sub-table is 2**(6-2) == 16 bytes in size. + // Since this is the last table, each entry represents an encoded width. + let packed_widths = TABLES_2[16 * usize::from(t2_offset) + (cp >> 2 & 0xF)]; + + // Extract the packed width + let width = packed_widths >> (2 * (cp & 0b11)) & 0b11; + + // A width of 3 signifies that the codepoint is ambiguous width. + if width == 3 { + if is_cjk { + 2 + } else { + 1 + } + } else { + width.into() + } + } + + /// Whether this character forms an [emoji presentation sequence] + /// (https://www.unicode.org/reports/tr51/#def_emoji_presentation_sequence) + /// when followed by `'\u{FEOF}'`. + /// Emoji presentation sequences are considered to have width 2. + /// This may spuriously return `true` or `false` for characters that are always wide. + #[inline] + pub fn starts_emoji_presentation_seq(c: char) -> bool { + let cp: u32 = c.into(); + // First level of lookup uses all but 10 LSB + let top_bits = cp >> 10; + let idx_of_leaf: usize = match top_bits { + 0 => 0, + 8 => 1, + 9 => 2, + 10 => 3, + 124 => 4, + 125 => 5, + _ => return false, + }; + // Extract the 3-9th (0-indexed) least significant bits of `cp`, + // and use them to index into `leaf_row`. + let idx_within_leaf = usize::try_from((cp >> 3) & 0x7F).unwrap(); + let leaf_byte = EMOJI_PRESENTATION_LEAVES.0[idx_of_leaf][idx_within_leaf]; + // Use the 3 LSB of `cp` to index into `leaf_byte`. + ((leaf_byte >> (cp & 7)) & 1) == 1 + } + + /// Returns the [UAX #11](https://www.unicode.org/reports/tr11/) based width of `c`, or + /// `None` if `c` is a control character other than `'\x00'`. + /// If `is_cjk == true`, ambiguous width characters are treated as double width; otherwise, + /// they're treated as single width. + #[inline] + pub fn width(c: char, is_cjk: bool) -> Option { + if c < '\u{7F}' { + if c >= '\u{20}' { + // U+0020 to U+007F (exclusive) are single-width ASCII codepoints + Some(1) + } else if c == '\0' { + // U+0000 *is* a control code, but it's special-cased + Some(0) + } else { + // U+0001 to U+0020 (exclusive) are control codes + None + } + } else if c >= '\u{A0}' { + // No characters >= U+00A0 are control codes, so we can consult the lookup tables + Some(lookup_width(c, is_cjk)) + } else { + // U+007F to U+00A0 (exclusive) are control codes + None + } + } + + /// Autogenerated. 1 sub-table(s). Consult [`lookup_width`] for layout info. + static TABLES_0: [u8; 256] = [ + 0x00, 0x01, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, + 0x0E, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x0F, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x0F, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x10, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x12, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, + ]; + + /// Autogenerated. 19 sub-table(s). Consult [`lookup_width`] for layout info. + static TABLES_1: [u8; 2432] = [ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x06, 0x08, 0x06, 0x09, 0x0A, 0x0B, 0x0C, + 0x0D, 0x0E, 0x0F, 0x10, 0x06, 0x06, 0x06, 0x11, 0x12, 0x13, 0x14, 0x06, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x22, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, + 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x06, 0x3C, 0x3D, 0x0A, 0x0A, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x06, 0x44, 0x06, 0x45, 0x06, 0x06, 0x06, 0x46, + 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x06, 0x06, 0x4F, 0x06, 0x06, 0x06, 0x0A, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, + 0x57, 0x58, 0x59, 0x5A, 0x06, 0x5B, 0x06, 0x06, 0x5C, 0x06, 0x5D, 0x5E, 0x5F, 0x5E, 0x60, + 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x6A, 0x6B, 0x06, 0x06, 0x06, 0x06, 0x06, 0x6C, + 0x06, 0x01, 0x06, 0x6D, 0x06, 0x06, 0x6E, 0x6F, 0x3C, 0x3C, 0x3C, 0x70, 0x71, 0x72, 0x73, + 0x3C, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x06, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x7A, 0x7B, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7C, 0x7D, 0x7E, + 0x06, 0x06, 0x06, 0x06, 0x7F, 0x06, 0x06, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x06, 0x06, 0x06, 0x89, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x8A, + 0x8B, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x8C, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x8D, 0x8E, 0x06, 0x01, 0x72, 0x8F, 0x90, 0x91, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x92, 0x06, 0x06, 0x06, 0x93, 0x06, 0x94, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x95, 0x06, 0x06, 0x96, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x97, 0x06, 0x06, 0x06, 0x06, 0x06, 0x98, 0x99, 0x06, 0x9A, 0x9B, 0x06, + 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0x2F, 0x06, 0xA5, 0x2D, 0xA6, 0x06, + 0x06, 0xA7, 0xA8, 0xA9, 0xAA, 0x06, 0x06, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0x06, 0xB0, 0x06, + 0x06, 0x06, 0xB1, 0x06, 0x06, 0x06, 0xB2, 0xB3, 0x06, 0xB4, 0xB5, 0xB6, 0xB7, 0x06, 0x06, + 0x06, 0x06, 0x06, 0xB8, 0x06, 0xB9, 0x06, 0xBA, 0xBB, 0xBC, 0x06, 0x06, 0x06, 0x06, 0xBD, + 0xBE, 0xBF, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xC0, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0xC1, 0xC2, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xC3, 0xC4, 0xC5, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xC6, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0xC7, 0xC8, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xC9, 0x3C, 0x3C, 0x3C, 0x3C, 0xCA, + 0xCB, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xCC, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0xCD, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xCE, + 0xCF, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xD0, 0xD1, 0x06, 0x06, 0xD2, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xD3, 0xD4, + 0xD5, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xD6, 0x06, 0xC3, 0x06, 0xC2, 0x06, 0x06, 0x06, + 0x06, 0x06, 0xD7, 0xD8, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xD8, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xD9, 0x06, 0xDA, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0xDB, 0x06, 0x06, 0xDC, + 0xDD, 0xDE, 0xDF, 0x06, 0xE0, 0xE1, 0x06, 0x06, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0x3C, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0x3C, 0xED, 0x3C, 0xEE, 0x06, 0x06, 0x06, 0xEF, 0x06, 0x06, + 0x06, 0x06, 0xF0, 0xF1, 0x3C, 0x3C, 0x06, 0xF2, 0xF3, 0xF4, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, + 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xE9, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, + 0x5E, 0xF5, + ]; + + /// Autogenerated. 246 sub-table(s). Consult [`lookup_width`] for layout info. + static TABLES_2: [u8; 3936] = [ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xD7, 0x77, 0x75, 0xFF, + 0xF7, 0x7F, 0xFF, 0x55, 0x75, 0x55, 0x55, 0x57, 0xD5, 0x57, 0xF5, 0x5F, 0x75, 0x7F, 0x5F, + 0xF7, 0xD5, 0x7F, 0x77, 0x5D, 0x55, 0x55, 0x55, 0xDD, 0x55, 0xD5, 0x55, 0x55, 0xF5, 0xD5, + 0x55, 0xFD, 0x55, 0x57, 0xD5, 0x7F, 0x57, 0xFF, 0x5D, 0xF5, 0x55, 0x55, 0x55, 0x55, 0xF5, + 0xD5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, 0x77, 0x77, 0x77, 0x57, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5D, 0x55, 0x55, + 0x55, 0x5D, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xD7, 0xFD, 0x5D, 0x57, 0x55, + 0xFF, 0xDD, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0xFD, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0x5F, 0x55, 0xFD, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, + 0x5F, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5D, + 0x55, 0x55, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x5D, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x15, 0x00, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x41, 0x10, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x40, 0x54, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, + 0x55, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x14, 0x00, + 0x14, 0x04, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x05, 0x00, 0x00, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x05, 0x10, 0x00, 0x00, 0x01, 0x01, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, + 0x54, 0x01, 0x00, 0x54, 0x51, 0x01, 0x00, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x44, 0x01, 0x54, 0x55, 0x51, 0x55, 0x15, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x45, 0x41, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x54, 0x41, 0x15, 0x14, 0x50, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x50, 0x51, 0x55, 0x55, 0x01, 0x10, 0x54, 0x51, 0x55, 0x55, 0x55, 0x55, 0x05, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x04, 0x01, 0x54, 0x55, 0x51, 0x55, 0x01, 0x55, + 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x54, 0x55, 0x55, 0x51, 0x55, + 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x54, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x04, 0x54, 0x05, 0x04, + 0x50, 0x55, 0x41, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x14, 0x44, + 0x05, 0x04, 0x50, 0x55, 0x41, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, + 0x44, 0x01, 0x54, 0x55, 0x51, 0x55, 0x15, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x15, 0x05, 0x44, 0x55, 0x15, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x51, 0x00, 0x40, 0x55, 0x55, 0x15, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x51, 0x00, 0x00, 0x54, 0x55, 0x55, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x11, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x00, 0x00, 0x40, 0x00, 0x04, 0x55, 0x01, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0x45, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x04, 0x00, 0x41, 0x41, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x50, 0x05, 0x54, 0x55, 0x55, 0x55, 0x01, 0x54, 0x55, 0x55, 0x45, + 0x41, 0x55, 0x51, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x10, 0x00, 0x50, 0x55, 0x45, 0x01, 0x00, 0x00, 0x55, 0x55, 0x51, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x41, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x40, 0x15, 0x54, 0x55, 0x45, 0x55, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x15, 0x14, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x45, 0x00, 0x40, 0x44, 0x01, 0x00, 0x54, 0x15, 0x00, 0x00, 0x14, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x50, + 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x55, 0x55, + 0x55, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x50, 0x10, 0x50, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x50, 0x11, 0x50, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, + 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x54, + 0x51, 0x55, 0x54, 0x50, 0x55, 0x55, 0x55, 0x15, 0x00, 0xD7, 0x7F, 0x5F, 0x5F, 0x7F, 0xFF, + 0x05, 0x40, 0xF7, 0x5D, 0xD5, 0x75, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, + 0x00, 0x00, 0x00, 0x55, 0x57, 0x55, 0xD5, 0xFD, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x57, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0x55, 0x55, 0xD5, 0x5D, 0x5D, 0x55, 0xD5, 0x75, + 0x55, 0x55, 0x7D, 0x75, 0xD5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xD5, + 0x57, 0xD5, 0x7F, 0xFF, 0xFF, 0xFF, 0x55, 0xFF, 0xFF, 0x5F, 0x55, 0x55, 0x55, 0x5D, 0x55, + 0xFF, 0xFF, 0x5F, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x75, 0x57, 0x55, 0x55, 0x55, 0xD5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xF7, 0xD5, + 0xD7, 0xD5, 0x5D, 0x5D, 0x75, 0xFD, 0xD7, 0xDD, 0xFF, 0x77, 0x55, 0xFF, 0x55, 0x5F, 0x55, + 0x55, 0x57, 0x57, 0x75, 0x55, 0x55, 0x55, 0x5F, 0xFF, 0xF5, 0xF5, 0x55, 0x55, 0x55, 0x55, + 0xF5, 0xF5, 0x55, 0x55, 0x55, 0x5D, 0x5D, 0x55, 0x55, 0x5D, 0x55, 0x55, 0x55, 0x55, 0x55, + 0xD5, 0x55, 0x55, 0x55, 0x55, 0x75, 0x55, 0xA5, 0x55, 0x55, 0x55, 0x69, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xA9, 0x56, 0x96, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x55, 0x55, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xF5, 0x5F, 0x55, 0x55, + 0xDF, 0xFF, 0x5F, 0x55, 0xF5, 0xF5, 0x55, 0x5F, 0x5F, 0xF5, 0xD7, 0xF5, 0x5F, 0x55, 0x55, + 0x55, 0xF5, 0x5F, 0x55, 0xD5, 0x55, 0x55, 0x55, 0x69, 0x55, 0x7D, 0x5D, 0xF5, 0x55, 0x5A, + 0x55, 0x77, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x77, 0x55, 0xAA, 0xAA, 0xAA, + 0x55, 0x55, 0x55, 0xDF, 0xDF, 0x7F, 0xDF, 0x55, 0x55, 0x55, 0x95, 0x55, 0x55, 0x55, 0x55, + 0x95, 0x55, 0x55, 0xF5, 0x59, 0x55, 0xA5, 0x55, 0x55, 0x55, 0x55, 0xE9, 0x55, 0xFA, 0xFF, + 0xEF, 0xFF, 0xFE, 0xFF, 0xFF, 0xDF, 0x55, 0xEF, 0xFF, 0xAF, 0xFB, 0xEF, 0xFB, 0x55, 0x59, + 0xA5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x55, 0x55, 0x55, 0x55, 0x5D, 0x55, + 0x55, 0x55, 0x66, 0x95, 0x9A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xF5, 0xFF, 0xFF, + 0x55, 0x55, 0x55, 0x55, 0x55, 0xA9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x55, 0x55, + 0x95, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x95, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0xF9, 0x5F, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, + 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x9A, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x5A, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0x0A, 0x00, 0xAA, 0xAA, 0xAA, 0x6A, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0x6A, 0x81, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0xA9, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xA8, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0x6A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x95, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xFF, 0xFF, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x15, 0x40, 0x00, 0x00, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x50, 0x55, 0x55, 0x55, 0x45, 0x45, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x41, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x00, 0x00, 0x00, 0x00, 0x50, 0x55, 0x55, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x05, 0x00, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x50, + 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x56, 0x40, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x05, 0x50, 0x50, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x40, 0x41, 0x41, 0x55, 0x55, 0x15, + 0x55, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x04, 0x14, 0x54, + 0x05, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x55, 0x45, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x54, 0x51, 0x55, + 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x5A, 0x55, 0x00, + 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0xAA, 0xAA, 0xAA, + 0xAA, 0x6A, 0xAA, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x05, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0xAA, 0x6A, 0x55, 0x55, 0x00, 0x00, 0x54, 0x5D, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x40, 0x55, 0x01, + 0x41, 0x55, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x15, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x41, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x54, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x01, 0x55, 0x05, 0x00, 0x00, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x14, 0x54, 0x55, 0x15, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x40, 0x41, 0x55, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x01, 0x00, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x55, 0x55, 0x55, 0x50, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x40, 0x55, 0x55, + 0x01, 0x14, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x50, 0x04, 0x55, 0x45, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x15, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x15, 0x55, 0x55, 0x55, 0x05, 0x00, 0x54, 0x00, 0x54, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x00, 0x00, 0x05, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x14, 0x00, 0x44, 0x11, 0x04, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x15, 0x05, 0x50, 0x55, 0x10, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x40, 0x11, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x51, 0x00, 0x10, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x01, 0x05, 0x10, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x41, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x55, 0x15, 0x44, 0x15, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x05, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x01, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, + 0x14, 0x40, 0x55, 0x15, 0x55, 0x55, 0x01, 0x40, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x00, 0x40, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x00, 0x40, 0x00, 0x10, 0x55, 0x55, 0x55, 0x55, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x41, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x01, 0x40, 0x45, 0x10, 0x00, 0x10, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x11, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0x54, 0x55, 0x55, 0x50, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x40, 0x55, 0x44, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x15, 0x00, + 0x00, 0x00, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x54, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x40, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x15, 0x40, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0x54, 0x55, 0x55, 0x5A, + 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x5A, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0xAA, 0xA9, 0xAA, 0x69, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0x6A, 0x55, 0x55, 0x55, 0x65, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x6A, 0x59, 0x55, + 0x55, 0x55, 0xAA, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x41, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x11, 0x50, 0x05, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x01, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0x50, 0x55, 0x55, 0x55, 0x55, + 0x05, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, + 0x51, 0x55, 0x55, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x55, 0x55, 0x55, 0x55, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x10, 0x04, 0x40, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x40, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x95, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xFF, 0xFF, 0x7F, 0x55, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x5F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x5F, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xEF, 0xAB, 0xAA, 0xEA, 0xFF, 0xFF, 0xFF, 0xFF, 0x57, 0x55, 0x55, 0x55, 0x55, 0x6A, + 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, + 0xAA, 0xAA, 0x56, 0x55, 0x5A, 0x55, 0x55, 0x55, 0xAA, 0x5A, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x56, 0x55, 0x55, 0xA9, 0xAA, 0x9A, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xA6, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0x95, 0xAA, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, + 0xAA, 0x56, 0x56, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, 0xA6, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x96, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x5A, 0x55, 0x55, 0x95, 0x6A, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0x65, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x69, 0x55, 0x55, 0x55, 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x95, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0x5A, + 0x55, 0x56, 0x6A, 0xA9, 0x55, 0xAA, 0x55, 0x55, 0x95, 0x56, 0x55, 0xAA, 0xAA, 0x56, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0x55, 0x56, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x6A, + 0xAA, 0xAA, 0x9A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xAA, + 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0x9A, 0xAA, 0x5A, 0x55, 0xA5, 0xAA, 0xAA, 0xAA, 0x55, 0xAA, 0xAA, 0x56, + 0x55, 0xAA, 0xAA, 0x56, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x5F, + ]; + + #[repr(align(128))] + struct Align128(T); + /// Array of 1024-bit bitmaps. Index into the correct (obtained from `EMOJI_PRESENTATION_INDEX`) + /// bitmap with the 10 LSB of your codepoint to get whether it can start an emoji presentation seq. + static EMOJI_PRESENTATION_LEAVES: Align128<[[u8; 128]; 6]> = Align128([ + [ + 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + ], + [ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xFE, + 0x0F, 0x07, + ], + [ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x40, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x1F, 0x40, 0x32, 0x21, 0x4D, 0xC4, + 0x00, 0x07, 0x05, 0xFF, 0x0F, 0x80, 0x69, 0x01, 0x00, 0xC8, 0x00, 0x00, 0xFC, 0x1A, + 0x83, 0x0C, 0x03, 0x60, 0x30, 0xC1, 0x1A, 0x00, 0x00, 0x06, 0xBF, 0x27, 0x24, 0xBF, + 0x54, 0x20, 0x02, 0x01, 0x18, 0x00, 0x90, 0x50, 0xB8, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xE0, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + ], + [ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + ], + [ + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x40, 0xFE, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x0F, 0xFF, 0x01, 0x03, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xCF, 0xCE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xB9, 0xFF, + ], + [ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x7E, + 0xFF, 0xFF, 0xFF, 0x80, 0xF9, 0x07, 0x80, 0x3C, 0x61, 0x00, 0x30, 0x01, 0x06, 0x10, + 0x1C, 0x00, 0x0E, 0x70, 0x0A, 0x81, 0x08, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xF8, 0xE7, 0xF0, 0x3F, 0x1A, 0xF9, 0x1F, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, + 0x01, 0x00, + ], + ]); +} diff --git a/src/rust/vendor/unicode-width/tests/tests.rs b/src/rust/vendor/unicode-width/tests/tests.rs new file mode 100644 index 000000000..47218e441 --- /dev/null +++ b/src/rust/vendor/unicode-width/tests/tests.rs @@ -0,0 +1,167 @@ +// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +use unicode_width::{UnicodeWidthChar, UnicodeWidthStr}; + +#[test] +fn test_str() { + assert_eq!(UnicodeWidthStr::width("hello"), 10); + assert_eq!("hello".width_cjk(), 10); + assert_eq!(UnicodeWidthStr::width("\0\0\0\x01\x01"), 0); + assert_eq!("\0\0\0\x01\x01".width_cjk(), 0); + assert_eq!(UnicodeWidthStr::width(""), 0); + assert_eq!("".width_cjk(), 0); + assert_eq!( + UnicodeWidthStr::width("\u{2081}\u{2082}\u{2083}\u{2084}"), + 4 + ); + assert_eq!("\u{2081}\u{2082}\u{2083}\u{2084}".width_cjk(), 8); +} + +#[test] +fn test_emoji() { + // Example from the README. + assert_eq!(UnicodeWidthStr::width("👩"), 2); // Woman + assert_eq!(UnicodeWidthStr::width("🔬"), 2); // Microscope + assert_eq!(UnicodeWidthStr::width("👩‍🔬"), 4); // Woman scientist +} + +#[test] +fn test_char() { + assert_eq!(UnicodeWidthChar::width('h'), Some(2)); + assert_eq!('h'.width_cjk(), Some(2)); + assert_eq!(UnicodeWidthChar::width('\x00'), Some(0)); + assert_eq!('\x00'.width_cjk(), Some(0)); + assert_eq!(UnicodeWidthChar::width('\x01'), None); + assert_eq!('\x01'.width_cjk(), None); + assert_eq!(UnicodeWidthChar::width('\u{2081}'), Some(1)); + assert_eq!('\u{2081}'.width_cjk(), Some(2)); +} + +#[test] +fn test_char2() { + assert_eq!(UnicodeWidthChar::width('\x00'), Some(0)); + assert_eq!('\x00'.width_cjk(), Some(0)); + + assert_eq!(UnicodeWidthChar::width('\x0A'), None); + assert_eq!('\x0A'.width_cjk(), None); + + assert_eq!(UnicodeWidthChar::width('w'), Some(1)); + assert_eq!('w'.width_cjk(), Some(1)); + + assert_eq!(UnicodeWidthChar::width('h'), Some(2)); + assert_eq!('h'.width_cjk(), Some(2)); + + assert_eq!(UnicodeWidthChar::width('\u{AD}'), Some(1)); + assert_eq!('\u{AD}'.width_cjk(), Some(1)); + + assert_eq!(UnicodeWidthChar::width('\u{1160}'), Some(0)); + assert_eq!('\u{1160}'.width_cjk(), Some(0)); + + assert_eq!(UnicodeWidthChar::width('\u{a1}'), Some(1)); + assert_eq!('\u{a1}'.width_cjk(), Some(2)); + + assert_eq!(UnicodeWidthChar::width('\u{300}'), Some(0)); + assert_eq!('\u{300}'.width_cjk(), Some(0)); +} + +#[test] +fn unicode_12() { + assert_eq!(UnicodeWidthChar::width('\u{1F971}'), Some(2)); +} + +#[test] +fn test_default_ignorable() { + assert_eq!(UnicodeWidthChar::width('\u{E0000}'), Some(0)); + + assert_eq!(UnicodeWidthChar::width('\u{1160}'), Some(0)); + assert_eq!(UnicodeWidthChar::width('\u{3164}'), Some(0)); + assert_eq!(UnicodeWidthChar::width('\u{FFA0}'), Some(0)); +} + +#[test] +fn test_jamo() { + assert_eq!(UnicodeWidthChar::width('\u{1100}'), Some(2)); + assert_eq!(UnicodeWidthChar::width('\u{A97C}'), Some(2)); + // Special case: U+115F HANGUL CHOSEONG FILLER + assert_eq!(UnicodeWidthChar::width('\u{115F}'), Some(2)); + assert_eq!(UnicodeWidthChar::width('\u{1160}'), Some(0)); + assert_eq!(UnicodeWidthChar::width('\u{D7C6}'), Some(0)); + assert_eq!(UnicodeWidthChar::width('\u{11A8}'), Some(0)); + assert_eq!(UnicodeWidthChar::width('\u{D7FB}'), Some(0)); +} + +#[test] +fn test_prepended_concatenation_marks() { + assert_eq!(UnicodeWidthChar::width('\u{0600}'), Some(1)); + assert_eq!(UnicodeWidthChar::width('\u{070F}'), Some(1)); + assert_eq!(UnicodeWidthChar::width('\u{08E2}'), Some(1)); + assert_eq!(UnicodeWidthChar::width('\u{110BD}'), Some(1)); +} + +#[test] +fn test_interlinear_annotation_chars() { + assert_eq!(UnicodeWidthChar::width('\u{FFF9}'), Some(1)); + assert_eq!(UnicodeWidthChar::width('\u{FFFA}'), Some(1)); + assert_eq!(UnicodeWidthChar::width('\u{FFFB}'), Some(1)); +} + +#[test] +fn test_hieroglyph_format_controls() { + assert_eq!(UnicodeWidthChar::width('\u{13430}'), Some(1)); + assert_eq!(UnicodeWidthChar::width('\u{13436}'), Some(1)); + assert_eq!(UnicodeWidthChar::width('\u{1343C}'), Some(1)); +} + +#[test] +fn test_marks() { + // Nonspacing marks have 0 width + assert_eq!(UnicodeWidthChar::width('\u{0301}'), Some(0)); + // Enclosing marks have 0 width + assert_eq!(UnicodeWidthChar::width('\u{20DD}'), Some(0)); + // Some spacing marks have width 1 + assert_eq!(UnicodeWidthChar::width('\u{09CB}'), Some(1)); + // But others have width 0 + assert_eq!(UnicodeWidthChar::width('\u{09BE}'), Some(0)); +} + +#[test] +fn test_canonical_equivalence() { + for c in '\0'..='\u{10FFFF}' { + let mut nfd = String::new(); + unicode_normalization::char::decompose_canonical(c, |d| nfd.push(d)); + assert_eq!( + c.width().unwrap_or(0), + nfd.width(), + "U+{:04X} '{c}' → U+{:04X?} \"{nfd}\"", + u32::from(c), + nfd.chars().map(u32::from).collect::>() + ); + // this doesn't hold + //assert_eq!(c.width_cjk().unwrap_or(0), nfd.width_cjk(), "{c}, {nfd}"); + } +} + +#[test] +fn test_emoji_presentation() { + assert_eq!(UnicodeWidthChar::width('\u{0023}'), Some(1)); + assert_eq!(UnicodeWidthChar::width('\u{FE0F}'), Some(0)); + assert_eq!(UnicodeWidthStr::width("\u{0023}\u{FE0F}"), 2); + assert_eq!(UnicodeWidthStr::width("a\u{0023}\u{FE0F}a"), 4); + assert_eq!(UnicodeWidthStr::width("\u{0023}a\u{FE0F}"), 2); + assert_eq!(UnicodeWidthStr::width("a\u{FE0F}"), 1); + assert_eq!(UnicodeWidthStr::width("\u{0023}\u{0023}\u{FE0F}a"), 4); + + assert_eq!(UnicodeWidthStr::width("\u{002A}\u{FE0F}"), 2); + assert_eq!(UnicodeWidthStr::width("\u{23F9}\u{FE0F}"), 2); + assert_eq!(UnicodeWidthStr::width("\u{24C2}\u{FE0F}"), 2); + assert_eq!(UnicodeWidthStr::width("\u{1F6F3}\u{FE0F}"), 2); + assert_eq!(UnicodeWidthStr::width("\u{1F700}\u{FE0F}"), 1); +} diff --git a/src/rust/vendor/unwinding/.cargo-checksum.json b/src/rust/vendor/unwinding/.cargo-checksum.json new file mode 100644 index 000000000..1ac67f6b7 --- /dev/null +++ b/src/rust/vendor/unwinding/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"fd7e41cc7b3744108423fea02f7345294c68c18fb67b0004588836d1cf526a7c","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"e0dfc20bf5b45a644a36eda999e3d62271f716a2d98dd5fb04528e8bef011769","rust-toolchain":"2ce1c1fe5e79a52424c9d88d99f5a2c95dcf5b4f4a82431bb9e5710cfb39e184","src/abi.rs":"f60ea0aa4be05500d84b2237a23a3657edef2ba19cdd91722c506e396ffcff19","src/arch.rs":"87953b9d1cb4b8cdd8f5a2c9f9446b70697579729957af59500ae0b257758a14","src/lib.rs":"014e2cd20833989f44e7547985b782c2b4f5dcbeefe9a38762b75549f7e10121","src/panic.rs":"2e1b8f0785d91c8b730683aebfb287d73dee5751e51e3bd1d1512abfc4ea15d4","src/panic_handler.rs":"d536b09d9ff1d26d41494f89a4dada3aa491a7612e9de6d4b18952dad4ad2799","src/panic_handler_dummy.rs":"e3c0b2961a5606aa1833abd0693b08ff350bcbf91ba2e732d00b9c35c619df2d","src/panicking.rs":"17f0c97225be532e69e16c9d1fe076ff6a74903462bb4180ff13691405a19972","src/personality.rs":"7335b8d7189e4380690111f5afe9049f9b4e19bed681b9d23b596c0fd3206516","src/personality_dummy.rs":"8dc3248a84e0aec700594be066603f7e4134566d7dc8e9969f2e6a62cd46290e","src/print.rs":"429278d7f2cd847b2d01fbc374f2b54aae72a46f7f0e86a8755f402328ea6c8f","src/system_alloc.rs":"7c9dab07314052fd5be6d729345f7caa83ad1b7e39f29e696c9ad2852a06ae26","src/unwinder/arch/aarch64.rs":"cf05a04ff270053a7aef1dc0ae73b493c071e7673897d94e37d37328c44e4887","src/unwinder/arch/mod.rs":"6b798447db635c19b4451395e2922e45698808b989a6bf59902e424726897db4","src/unwinder/arch/riscv32.rs":"77382b6560051dc1d0a719badc8bb74706ae6493d07b0cdba07b5fabf699e048","src/unwinder/arch/riscv64.rs":"eed32b7417bd9cc6469c3e31b3dcff518fa6d2022f2e580bfdc6a44ff24d9f15","src/unwinder/arch/x86.rs":"33242747dc9d553bc4c7ff3c4e7f1278d81d8a664739750eada60906b73409cd","src/unwinder/arch/x86_64.rs":"273eaf66bf81fcbd9b46f50a51bf2108b1e7116bbf4121830b86fe8fc94d4887","src/unwinder/find_fde/custom.rs":"1703194d9ed61991865e05b27b6ef52031a18a54959d583d6f9769ceeb11b6f8","src/unwinder/find_fde/fixed.rs":"79ebddc97feb899fdaa23b7831e7cc8f9406dd627bddc7dc4f66793a5196e1e5","src/unwinder/find_fde/gnu_eh_frame_hdr.rs":"3e150d182ee67417b7c0f71f2e359790cc7962c882c00710f5d4f653db453e85","src/unwinder/find_fde/mod.rs":"17f1ae38fd3cc237c6a735168e47430515e234b822cb24155af78c3b5a62f152","src/unwinder/find_fde/phdr.rs":"0086778de0e8f979327dfc8f3384aaa9a8903bb6add168ad44d6cd5066ca6930","src/unwinder/find_fde/registry.rs":"e367166bcb27a4270a388eb972924f0f4892e2b8008cf96f6f9a6b4ebd1f5f29","src/unwinder/frame.rs":"e9db5603611b8be52dca09a17cc006f8f48965f2de66470848afc4876402b102","src/unwinder/mod.rs":"de7091270ba75eb1e2383a10b3fbbd2df32a326e8444b17bcab2dd2fff1cf7f7","src/util.rs":"23347e2066173c980dbc48403045b3967c1685afa674dabc6493aa494179b944","tests/compile_tests.rs":"5bac8c161112e360ce58acd62f324180f029c7ba683afcb7e9fc5e3a00b9a3ef"},"package":"37a19a21a537f635c16c7576f22d0f2f7d63353c1337ad4ce0d8001c7952a25b"} \ No newline at end of file diff --git a/src/rust/vendor/unwinding/Cargo.toml b/src/rust/vendor/unwinding/Cargo.toml new file mode 100644 index 000000000..851d1eee0 --- /dev/null +++ b/src/rust/vendor/unwinding/Cargo.toml @@ -0,0 +1,92 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +name = "unwinding" +version = "0.2.1" +authors = ["Gary Guo "] +description = "Unwinding library in Rust and for Rust" +readme = "README.md" +license = "MIT OR Apache-2.0" +repository = "https://github.com/nbdd0121/unwinding/" + +[package.metadata.docs.rs] +features = ["panic-handler"] + +[profile.release] +debug = 2 + +[dependencies.compiler_builtins] +version = "0.1.2" +optional = true + +[dependencies.core] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-core" + +[dependencies.gimli] +version = "0.28" +features = ["read-core"] +default-features = false + +[dependencies.libc] +version = "0.2" +optional = true + +[dependencies.spin] +version = "0.9.8" +features = [ + "mutex", + "spin_mutex", +] +optional = true +default-features = false + +[features] +alloc = [] +default = [ + "unwinder", + "dwarf-expr", + "hide-trace", + "fde-phdr-dl", + "fde-registry", +] +dwarf-expr = [] +fde-custom = [] +fde-gnu-eh-frame-hdr = [] +fde-phdr = ["libc"] +fde-phdr-aux = ["fde-phdr"] +fde-phdr-dl = ["fde-phdr"] +fde-registry = ["alloc"] +fde-static = [] +hide-trace = [] +panic = [ + "panicking", + "alloc", +] +panic-handler = [ + "print", + "panic", +] +panic-handler-dummy = [] +panicking = [] +personality = [] +personality-dummy = [] +print = ["libc"] +rustc-dep-of-std = [ + "core", + "gimli/rustc-dep-of-std", + "compiler_builtins", +] +system-alloc = [] +unwinder = [] diff --git a/src/rust/vendor/unwinding/LICENSE-APACHE b/src/rust/vendor/unwinding/LICENSE-APACHE new file mode 100644 index 000000000..1b5ec8b78 --- /dev/null +++ b/src/rust/vendor/unwinding/LICENSE-APACHE @@ -0,0 +1,176 @@ + 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 diff --git a/src/rust/vendor/unwinding/LICENSE-MIT b/src/rust/vendor/unwinding/LICENSE-MIT new file mode 100644 index 000000000..31aa79387 --- /dev/null +++ b/src/rust/vendor/unwinding/LICENSE-MIT @@ -0,0 +1,23 @@ +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. diff --git a/src/rust/vendor/unwinding/README.md b/src/rust/vendor/unwinding/README.md new file mode 100644 index 000000000..3b5f86bda --- /dev/null +++ b/src/rust/vendor/unwinding/README.md @@ -0,0 +1,75 @@ +Unwinding library in Rust and for Rust +====================================== + +[![crates.io](https://img.shields.io/crates/v/unwinding.svg)](https://crates.io/crates/unwinding) +[![docs.rs](https://docs.rs/unwinding/badge.svg)](https://docs.rs/unwinding) +[![license](https://img.shields.io/crates/l/unwinding.svg)](https://crates.io/crates/unwinding) + +This library serves two purposes: +1. Provide a pure Rust alternative to libgcc_eh or libunwind. +2. Provide easier unwinding support for `#![no_std]` targets. + +Currently supports x86_64, x86, RV64, RV32 and AArch64. + +## Unwinder + +The unwinder can be enabled with `unwinder` feature. Here are the feature gates related to the unwinder: + +| Feature | Default | Description | +|--------------------- |---------|-| +| unwinder | Yes | The primary feature gate to enable the unwinder | +| fde-phdr-dl | Yes | Use `dl_iterator_phdr` to retrieve frame unwind table. Depends on libc. | +| fde-phdr-aux | No | Use ELF auxiliary vector to retrieve frame unwind table. Depends on libc. | +| fde-registry | Yes | Provide `__register__frame` and others for dynamic registration. Requires either `libc` or `spin` for a mutex implementation. | +| fde-gnu-eh-frame-hdr | No | Use `__executable_start`, `__etext` and `__GNU_EH_FRAME_HDR` to retrieve frame unwind table. The former two symbols are usually provided by the linker, while the last one is provided if GNU LD is used and --eh-frame-hdr option is enabled. | +| fde-static | No | Use `__executable_start`, `__etext` and `__eh_frame` to retrieve frame unwind table. The former two symbols are usually provided by the linker, while the last one would need to be provided by the user via linker script. | +| fde-custom | No | Allow the program to provide a custom means of retrieving frame unwind table at runtime via the `set_custom_eh_frame_finder` function. | +| dwarf-expr | Yes | Enable the dwarf expression evaluator. Usually not necessary for Rust | +| hide-trace | Yes | Hide unwinder frames in back trace | + +If you want to use the unwinder for other Rust (C++, or any programs that utilize the unwinder), you can build the [`unwinding_dyn`](cdylib) crate provided, and use `LD_PRELOAD` to replace the system unwinder with it. +```sh +cd cdylib +cargo build --release +# Test the unwinder using rustc. Why not :) +LD_PRELOAD=`../target/release/libunwinding_dyn.so` rustc +nightly -Ztreat-err-as-bug +``` + +If you want to link to the unwinder in a Rust binary, simply add +```rust +extern crate unwinding; +``` + +## Personality and other utilities + +The library also provides Rust personality function. This can work with the unwinder described above or with a different unwinder. This can be handy if you are working on a `#![no_std]` binary/staticlib/cdylib and you still want unwinding support. + +Here are the feature gates related: + +| Feature | Default | Description | +|---------------|---------|-| +| personality | No | Provides `#[lang = eh_personality]` | +| print | No | Provides `(e)?print(ln)?`. This is really only here because panic handler needs to print things. Depends on libc. | +| panicking | No | Provides a generic `begin_panic` and `catch_unwind`. Only stack unwinding functionality is provided, memory allocation and panic handling is left to the user. | +| panic | No | Provides Rust `begin_panic` and `catch_unwind`. Only stack unwinding functionality is provided and no printing is done, because this feature does not depend on libc. | +| panic-handler | No | Provides `#[panic_handler]`. Provides similar behaviour on panic to std, with `RUST_BACKTRACE` support as well. Stack trace won't have symbols though. Depends on libc. | +| system-alloc | No | Provides a global allocator which calls `malloc` and friends. Provided for convience. | + +If you are writing a `#![no_std]` program, simply enable `personality`, `panic-handler` and `system-alloc` in addition to the defaults, you instantly obtains the ability to do unwinding! An example is given in the [`example/` folder](example). + +## Baremetal + +To use this library for baremetal projects, disable default features and enable `unwinder`, `fde-static`, `personality`, `panic`. `dwarf-expr` and `hide-trace` are optional. Modify the linker script by +```ld +/* Inserting these two lines */ +. = ALIGN(8); +PROVIDE(__eh_frame = .); +/* before .eh_frame rule */ +.eh_frame : { KEEP (*(.eh_frame)) *(.eh_frame.*) } +``` + +And that's it! After you ensured that the global allocator is functional, you can use `unwinding::panic::begin_panic` to initiate an unwing and catch using `unwinding::panic::catch_unwind`, as if you have a `std`. + +If your linker supports `--eh-frame-hdr` you can also try to use `fde-gnu-eh-frame-hdr` instead of `fde-static`. GNU LD will provides a `__GNU_EH_FRAME_HDR` magic symbol so you don't have to provide `__eh_frame` through linker script. + +If you have your own version of `thread_local` and `println!` working, you can port [`panic_handler.rs`](src/panic_handler.rs) for double-panic protection and stack traces! diff --git a/src/rust/vendor/unwinding/rust-toolchain b/src/rust/vendor/unwinding/rust-toolchain new file mode 100644 index 000000000..5d56faf9a --- /dev/null +++ b/src/rust/vendor/unwinding/rust-toolchain @@ -0,0 +1,2 @@ +[toolchain] +channel = "nightly" diff --git a/src/rust/vendor/unwinding/src/abi.rs b/src/rust/vendor/unwinding/src/abi.rs new file mode 100644 index 000000000..12766c118 --- /dev/null +++ b/src/rust/vendor/unwinding/src/abi.rs @@ -0,0 +1,172 @@ +use core::ffi::c_void; +use core::ops; + +use crate::util::*; + +#[cfg(not(feature = "unwinder"))] +use crate::arch::Arch; +#[cfg(feature = "unwinder")] +pub use crate::unwinder::*; + +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq)] +pub struct UnwindReasonCode(pub c_int); + +#[allow(unused)] +impl UnwindReasonCode { + pub const NO_REASON: Self = Self(0); + pub const FOREIGN_EXCEPTION_CAUGHT: Self = Self(1); + pub const FATAL_PHASE2_ERROR: Self = Self(2); + pub const FATAL_PHASE1_ERROR: Self = Self(3); + pub const NORMAL_STOP: Self = Self(4); + pub const END_OF_STACK: Self = Self(5); + pub const HANDLER_FOUND: Self = Self(6); + pub const INSTALL_CONTEXT: Self = Self(7); + pub const CONTINUE_UNWIND: Self = Self(8); +} + +#[repr(transparent)] +#[derive(Clone, Copy, PartialEq, Eq)] +pub struct UnwindAction(pub c_int); + +impl UnwindAction { + pub const SEARCH_PHASE: Self = Self(1); + pub const CLEANUP_PHASE: Self = Self(2); + pub const HANDLER_FRAME: Self = Self(4); + pub const FORCE_UNWIND: Self = Self(8); + pub const END_OF_STACK: Self = Self(16); +} + +impl ops::BitOr for UnwindAction { + type Output = Self; + + #[inline] + fn bitor(self, rhs: Self) -> Self { + Self(self.0 | rhs.0) + } +} + +impl UnwindAction { + #[inline] + pub const fn empty() -> Self { + Self(0) + } + + #[inline] + pub const fn contains(&self, other: Self) -> bool { + self.0 & other.0 != 0 + } +} + +pub type UnwindExceptionCleanupFn = unsafe extern "C" fn(UnwindReasonCode, *mut UnwindException); + +pub type UnwindStopFn = unsafe extern "C" fn( + c_int, + UnwindAction, + u64, + *mut UnwindException, + &mut UnwindContext<'_>, + *mut c_void, +) -> UnwindReasonCode; + +#[cfg(not(feature = "unwinder"))] +#[repr(C)] +pub struct UnwindException { + pub exception_class: u64, + pub exception_cleanup: Option, + private: [usize; Arch::UNWIND_PRIVATE_DATA_SIZE], +} + +pub type UnwindTraceFn = + extern "C" fn(ctx: &UnwindContext<'_>, arg: *mut c_void) -> UnwindReasonCode; + +#[cfg(not(feature = "unwinder"))] +#[repr(C)] +pub struct UnwindContext<'a> { + opaque: usize, + phantom: core::marker::PhantomData<&'a ()>, +} + +pub type PersonalityRoutine = unsafe extern "C" fn( + c_int, + UnwindAction, + u64, + *mut UnwindException, + &mut UnwindContext<'_>, +) -> UnwindReasonCode; + +#[cfg(not(feature = "unwinder"))] +macro_rules! binding { + () => {}; + (unsafe extern $abi: literal fn $name: ident ($($arg: ident : $arg_ty: ty),*$(,)?) $(-> $ret: ty)?; $($rest: tt)*) => { + extern $abi { + pub fn $name($($arg: $arg_ty),*) $(-> $ret)?; + } + binding!($($rest)*); + }; + + (extern $abi: literal fn $name: ident ($($arg: ident : $arg_ty: ty),*$(,)?) $(-> $ret: ty)?; $($rest: tt)*) => { + #[allow(non_snake_case)] + #[inline] + pub fn $name($($arg: $arg_ty),*) $(-> $ret)? { + extern $abi { + fn $name($($arg: $arg_ty),*) $(-> $ret)?; + } + unsafe { $name($($arg),*) } + } + binding!($($rest)*); + }; +} + +#[cfg(feature = "unwinder")] +macro_rules! binding { + () => {}; + (unsafe extern $abi: literal fn $name: ident ($($arg: ident : $arg_ty: ty),*$(,)?) $(-> $ret: ty)?; $($rest: tt)*) => { + const _: unsafe extern $abi fn($($arg_ty),*) $(-> $ret)? = $name; + }; + + (extern $abi: literal fn $name: ident ($($arg: ident : $arg_ty: ty),*$(,)?) $(-> $ret: ty)?; $($rest: tt)*) => { + const _: extern $abi fn($($arg_ty),*) $(-> $ret)? = $name; + }; +} + +binding! { + extern "C" fn _Unwind_GetGR(unwind_ctx: &UnwindContext<'_>, index: c_int) -> usize; + extern "C" fn _Unwind_GetCFA(unwind_ctx: &UnwindContext<'_>) -> usize; + extern "C" fn _Unwind_SetGR( + unwind_ctx: &mut UnwindContext<'_>, + index: c_int, + value: usize, + ); + extern "C" fn _Unwind_GetIP(unwind_ctx: &UnwindContext<'_>) -> usize; + extern "C" fn _Unwind_GetIPInfo( + unwind_ctx: &UnwindContext<'_>, + ip_before_insn: &mut c_int, + ) -> usize; + extern "C" fn _Unwind_SetIP( + unwind_ctx: &mut UnwindContext<'_>, + value: usize, + ); + extern "C" fn _Unwind_GetLanguageSpecificData(unwind_ctx: &UnwindContext<'_>) -> *mut c_void; + extern "C" fn _Unwind_GetRegionStart(unwind_ctx: &UnwindContext<'_>) -> usize; + extern "C" fn _Unwind_GetTextRelBase(unwind_ctx: &UnwindContext<'_>) -> usize; + extern "C" fn _Unwind_GetDataRelBase(unwind_ctx: &UnwindContext<'_>) -> usize; + extern "C" fn _Unwind_FindEnclosingFunction(pc: *mut c_void) -> *mut c_void; + unsafe extern "C-unwind" fn _Unwind_RaiseException( + exception: *mut UnwindException, + ) -> UnwindReasonCode; + unsafe extern "C-unwind" fn _Unwind_ForcedUnwind( + exception: *mut UnwindException, + stop: UnwindStopFn, + stop_arg: *mut c_void, + ) -> UnwindReasonCode; + unsafe extern "C-unwind" fn _Unwind_Resume(exception: *mut UnwindException) -> !; + unsafe extern "C-unwind" fn _Unwind_Resume_or_Rethrow( + exception: *mut UnwindException, + ) -> UnwindReasonCode; + unsafe extern "C" fn _Unwind_DeleteException(exception: *mut UnwindException); + extern "C-unwind" fn _Unwind_Backtrace( + trace: UnwindTraceFn, + trace_argument: *mut c_void, + ) -> UnwindReasonCode; +} diff --git a/src/rust/vendor/unwinding/src/arch.rs b/src/rust/vendor/unwinding/src/arch.rs new file mode 100644 index 000000000..33b38119c --- /dev/null +++ b/src/rust/vendor/unwinding/src/arch.rs @@ -0,0 +1,80 @@ +#[cfg(target_arch = "x86_64")] +mod x86_64 { + use gimli::{Register, X86_64}; + + pub struct Arch; + + #[allow(unused)] + impl Arch { + pub const SP: Register = X86_64::RSP; + pub const RA: Register = X86_64::RA; + + pub const UNWIND_DATA_REG: (Register, Register) = (X86_64::RAX, X86_64::RDX); + pub const UNWIND_PRIVATE_DATA_SIZE: usize = 6; + } +} +#[cfg(target_arch = "x86_64")] +pub use x86_64::*; + +#[cfg(target_arch = "x86")] +mod x86 { + use gimli::{Register, X86}; + + pub struct Arch; + + #[allow(unused)] + impl Arch { + pub const SP: Register = X86::ESP; + pub const RA: Register = X86::RA; + + pub const UNWIND_DATA_REG: (Register, Register) = (X86::EAX, X86::EDX); + pub const UNWIND_PRIVATE_DATA_SIZE: usize = 5; + } +} +#[cfg(target_arch = "x86")] +pub use x86::*; + +#[cfg(any(target_arch = "riscv64", target_arch = "riscv32"))] +mod riscv { + use gimli::{Register, RiscV}; + + pub struct Arch; + + #[allow(unused)] + impl Arch { + pub const SP: Register = RiscV::SP; + pub const RA: Register = RiscV::RA; + + pub const UNWIND_DATA_REG: (Register, Register) = (RiscV::A0, RiscV::A1); + pub const UNWIND_PRIVATE_DATA_SIZE: usize = 2; + } +} +#[cfg(any(target_arch = "riscv64", target_arch = "riscv32"))] +pub use riscv::*; + +#[cfg(target_arch = "aarch64")] +mod aarch64 { + use gimli::{AArch64, Register}; + + pub struct Arch; + + #[allow(unused)] + impl Arch { + pub const SP: Register = AArch64::SP; + pub const RA: Register = AArch64::X30; + + pub const UNWIND_DATA_REG: (Register, Register) = (AArch64::X0, AArch64::X1); + pub const UNWIND_PRIVATE_DATA_SIZE: usize = 2; + } +} +#[cfg(target_arch = "aarch64")] +pub use aarch64::*; + +#[cfg(not(any( + target_arch = "x86_64", + target_arch = "x86", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "aarch64" +)))] +compile_error!("Current architecture is not supported"); diff --git a/src/rust/vendor/unwinding/src/lib.rs b/src/rust/vendor/unwinding/src/lib.rs new file mode 100644 index 000000000..44ecc37fc --- /dev/null +++ b/src/rust/vendor/unwinding/src/lib.rs @@ -0,0 +1,57 @@ +#![doc = include_str!("../README.md")] +#![feature(c_unwind)] +#![feature(naked_functions)] +#![feature(non_exhaustive_omitted_patterns_lint)] +// lang_items is an internal feature. `internal_features` lint is added recently +// so also allow unknown lints to prevent warning in older nightly versions. +#![cfg_attr( + any(feature = "personality", feature = "personality-dummy"), + allow(internal_features) +)] +#![cfg_attr( + any(feature = "personality", feature = "personality-dummy"), + feature(lang_items) +)] +#![cfg_attr( + any(feature = "panicking", feature = "panic-handler-dummy"), + feature(core_intrinsics) +)] +#![cfg_attr(feature = "panic-handler", feature(thread_local))] +#![warn(rust_2018_idioms)] +#![warn(unsafe_op_in_unsafe_fn)] +#![no_std] + +#[cfg(feature = "alloc")] +extern crate alloc; + +#[cfg(feature = "unwinder")] +mod unwinder; + +#[cfg(all(feature = "unwinder", feature = "fde-custom"))] +pub use unwinder::custom_eh_frame_finder; + +pub mod abi; + +mod arch; +mod util; + +#[cfg(feature = "print")] +pub mod print; + +#[cfg(feature = "personality")] +mod personality; +#[cfg(all(not(feature = "personality"), feature = "personality-dummy"))] +mod personality_dummy; + +#[cfg(feature = "panic")] +pub mod panic; +#[cfg(feature = "panicking")] +pub mod panicking; + +#[cfg(feature = "panic-handler")] +mod panic_handler; +#[cfg(all(not(feature = "panic-handler"), feature = "panic-handler-dummy"))] +mod panic_handler_dummy; + +#[cfg(feature = "system-alloc")] +mod system_alloc; diff --git a/src/rust/vendor/unwinding/src/panic.rs b/src/rust/vendor/unwinding/src/panic.rs new file mode 100644 index 000000000..b69e958eb --- /dev/null +++ b/src/rust/vendor/unwinding/src/panic.rs @@ -0,0 +1,88 @@ +use alloc::boxed::Box; +use core::any::Any; +use core::mem::MaybeUninit; + +use crate::abi::*; +#[cfg(feature = "panic-handler")] +pub use crate::panic_handler::*; +use crate::panicking::Exception; + +static CANARY: u8 = 0; + +#[repr(transparent)] +struct RustPanic(Box, DropGuard); + +struct DropGuard; + +impl Drop for DropGuard { + fn drop(&mut self) { + #[cfg(feature = "panic-handler")] + { + drop_panic(); + } + crate::util::abort(); + } +} + +#[repr(C)] +struct ExceptionWithPayload { + exception: MaybeUninit, + // See rust/library/panic_unwind/src/gcc.rs for the canary values + canary: *const u8, + payload: RustPanic, +} + +unsafe impl Exception for RustPanic { + const CLASS: [u8; 8] = *b"MOZ\0RUST"; + + fn wrap(this: Self) -> *mut UnwindException { + Box::into_raw(Box::new(ExceptionWithPayload { + exception: MaybeUninit::uninit(), + canary: &CANARY, + payload: this, + })) as *mut UnwindException + } + + unsafe fn unwrap(ex: *mut UnwindException) -> Self { + let ex = ex as *mut ExceptionWithPayload; + let canary = unsafe { core::ptr::addr_of!((*ex).canary).read() }; + if !core::ptr::eq(canary, &CANARY) { + // This is a Rust exception but not generated by us. + #[cfg(feature = "panic-handler")] + { + foreign_exception(); + } + crate::util::abort(); + } + let ex = unsafe { Box::from_raw(ex) }; + ex.payload + } +} + +pub fn begin_panic(payload: Box) -> UnwindReasonCode { + crate::panicking::begin_panic(RustPanic(payload, DropGuard)) +} + +pub fn catch_unwind R>(f: F) -> Result> { + #[cold] + fn process_panic(p: Option) -> Box { + match p { + None => { + #[cfg(feature = "panic-handler")] + { + foreign_exception(); + } + crate::util::abort(); + } + Some(e) => { + #[cfg(feature = "panic-handler")] + { + panic_caught(); + } + core::mem::forget(e.1); + e.0 + } + } + } + crate::panicking::catch_unwind(f).map_err(process_panic) +} diff --git a/src/rust/vendor/unwinding/src/panic_handler.rs b/src/rust/vendor/unwinding/src/panic_handler.rs new file mode 100644 index 000000000..1d07768d7 --- /dev/null +++ b/src/rust/vendor/unwinding/src/panic_handler.rs @@ -0,0 +1,103 @@ +use crate::abi::*; +use crate::print::*; +use alloc::boxed::Box; +use core::any::Any; +use core::cell::Cell; +use core::ffi::c_void; +use core::panic::{Location, PanicInfo}; +use core::sync::atomic::{AtomicI32, Ordering}; + +#[thread_local] +static PANIC_COUNT: Cell = Cell::new(0); + +#[link(name = "c")] +extern "C" {} + +pub(crate) fn drop_panic() { + eprintln!("Rust panics must be rethrown"); +} + +pub(crate) fn foreign_exception() { + eprintln!("Rust cannot catch foreign exceptions"); +} + +pub(crate) fn panic_caught() { + PANIC_COUNT.set(0); +} + +fn check_env() -> bool { + static ENV: AtomicI32 = AtomicI32::new(-1); + + let env = ENV.load(Ordering::Relaxed); + if env != -1 { + return env != 0; + } + + let val = unsafe { + let ptr = libc::getenv(b"RUST_BACKTRACE\0".as_ptr() as _); + if ptr.is_null() { + b"" + } else { + let len = libc::strlen(ptr); + core::slice::from_raw_parts(ptr as *const u8, len) + } + }; + let (note, env) = match val { + b"" => (true, false), + b"1" | b"full" => (false, true), + _ => (false, false), + }; + + // Issue a note for the first panic. + if ENV.swap(env as _, Ordering::Relaxed) == -1 && note { + eprintln!("note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace"); + } + env +} + +fn stack_trace() { + struct CallbackData { + counter: usize, + } + extern "C" fn callback(unwind_ctx: &UnwindContext<'_>, arg: *mut c_void) -> UnwindReasonCode { + let data = unsafe { &mut *(arg as *mut CallbackData) }; + data.counter += 1; + eprintln!( + "{:4}:{:#19x} - ", + data.counter, + _Unwind_GetIP(unwind_ctx) + ); + UnwindReasonCode::NO_REASON + } + let mut data = CallbackData { counter: 0 }; + _Unwind_Backtrace(callback, &mut data as *mut _ as _); +} + +fn do_panic(msg: Box) -> ! { + if PANIC_COUNT.get() >= 1 { + stack_trace(); + eprintln!("thread panicked while processing panic. aborting."); + crate::util::abort(); + } + PANIC_COUNT.set(1); + if check_env() { + stack_trace(); + } + let code = crate::panic::begin_panic(Box::new(msg)); + eprintln!("failed to initiate panic, error {}", code.0); + crate::util::abort(); +} + +#[panic_handler] +fn panic(info: &PanicInfo<'_>) -> ! { + eprintln!("{}", info); + + struct NoPayload; + do_panic(Box::new(NoPayload)) +} + +#[track_caller] +pub fn panic_any(msg: M) -> ! { + eprintln!("panicked at {}", Location::caller()); + do_panic(Box::new(msg)) +} diff --git a/src/rust/vendor/unwinding/src/panic_handler_dummy.rs b/src/rust/vendor/unwinding/src/panic_handler_dummy.rs new file mode 100644 index 000000000..6770705ec --- /dev/null +++ b/src/rust/vendor/unwinding/src/panic_handler_dummy.rs @@ -0,0 +1,6 @@ +use core::panic::PanicInfo; + +#[panic_handler] +fn panic(_info: &PanicInfo<'_>) -> ! { + crate::util::abort(); +} diff --git a/src/rust/vendor/unwinding/src/panicking.rs b/src/rust/vendor/unwinding/src/panicking.rs new file mode 100644 index 000000000..9c83bfe4a --- /dev/null +++ b/src/rust/vendor/unwinding/src/panicking.rs @@ -0,0 +1,71 @@ +use core::mem::ManuallyDrop; + +use crate::abi::*; + +pub unsafe trait Exception { + const CLASS: [u8; 8]; + + fn wrap(this: Self) -> *mut UnwindException; + unsafe fn unwrap(ex: *mut UnwindException) -> Self; +} + +pub fn begin_panic(exception: E) -> UnwindReasonCode { + unsafe extern "C" fn exception_cleanup( + _unwind_code: UnwindReasonCode, + exception: *mut UnwindException, + ) { + unsafe { E::unwrap(exception) }; + } + + let ex = E::wrap(exception); + unsafe { + (*ex).exception_class = u64::from_be_bytes(E::CLASS); + (*ex).exception_cleanup = Some(exception_cleanup::); + _Unwind_RaiseException(ex) + } +} + +pub fn catch_unwind R>(f: F) -> Result> { + #[repr(C)] + union Data { + f: ManuallyDrop, + r: ManuallyDrop, + p: ManuallyDrop>, + } + + let mut data = Data { + f: ManuallyDrop::new(f), + }; + + let data_ptr = &mut data as *mut _ as *mut u8; + unsafe { + return if core::intrinsics::r#try(do_call::, data_ptr, do_catch::) == 0 { + Ok(ManuallyDrop::into_inner(data.r)) + } else { + Err(ManuallyDrop::into_inner(data.p)) + }; + } + + #[inline] + fn do_call R, R>(data: *mut u8) { + unsafe { + let data = &mut *(data as *mut Data); + let f = ManuallyDrop::take(&mut data.f); + data.r = ManuallyDrop::new(f()); + } + } + + #[cold] + fn do_catch(data: *mut u8, exception: *mut u8) { + unsafe { + let data = &mut *(data as *mut ManuallyDrop>); + let exception = exception as *mut UnwindException; + if (*exception).exception_class != u64::from_be_bytes(E::CLASS) { + _Unwind_DeleteException(exception); + *data = ManuallyDrop::new(None); + return; + } + *data = ManuallyDrop::new(Some(E::unwrap(exception))); + } + } +} diff --git a/src/rust/vendor/unwinding/src/personality.rs b/src/rust/vendor/unwinding/src/personality.rs new file mode 100644 index 000000000..3bbdb1698 --- /dev/null +++ b/src/rust/vendor/unwinding/src/personality.rs @@ -0,0 +1,181 @@ +// References: +// https://github.com/rust-lang/rust/blob/c4be230b4a30eb74e3a3908455731ebc2f731d3d/library/panic_unwind/src/gcc.rs +// https://github.com/rust-lang/rust/blob/c4be230b4a30eb74e3a3908455731ebc2f731d3d/library/panic_unwind/src/dwarf/eh.rs +// https://docs.rs/gimli/0.25.0/src/gimli/read/cfi.rs.html + +use core::mem; +use gimli::{constants, NativeEndian}; +use gimli::{EndianSlice, Error, Pointer, Reader}; + +use crate::abi::*; +use crate::arch::*; +use crate::util::*; + +#[derive(Debug)] +enum EHAction { + None, + Cleanup(usize), + Catch(usize), +} + +fn parse_pointer_encoding(input: &mut StaticSlice) -> gimli::Result { + let eh_pe = input.read_u8()?; + let eh_pe = constants::DwEhPe(eh_pe); + + if eh_pe.is_valid_encoding() { + Ok(eh_pe) + } else { + Err(gimli::Error::UnknownPointerEncoding) + } +} + +fn parse_encoded_pointer( + encoding: constants::DwEhPe, + unwind_ctx: &UnwindContext<'_>, + input: &mut StaticSlice, +) -> gimli::Result { + if encoding == constants::DW_EH_PE_omit { + return Err(Error::CannotParseOmitPointerEncoding); + } + + let base = match encoding.application() { + constants::DW_EH_PE_absptr => 0, + constants::DW_EH_PE_pcrel => input.slice().as_ptr() as u64, + constants::DW_EH_PE_textrel => _Unwind_GetTextRelBase(unwind_ctx) as u64, + constants::DW_EH_PE_datarel => _Unwind_GetDataRelBase(unwind_ctx) as u64, + constants::DW_EH_PE_funcrel => _Unwind_GetRegionStart(unwind_ctx) as u64, + constants::DW_EH_PE_aligned => return Err(Error::UnsupportedPointerEncoding), + _ => unreachable!(), + }; + + let offset = match encoding.format() { + constants::DW_EH_PE_absptr => input.read_address(mem::size_of::() as _), + constants::DW_EH_PE_uleb128 => input.read_uleb128(), + constants::DW_EH_PE_udata2 => input.read_u16().map(u64::from), + constants::DW_EH_PE_udata4 => input.read_u32().map(u64::from), + constants::DW_EH_PE_udata8 => input.read_u64(), + constants::DW_EH_PE_sleb128 => input.read_sleb128().map(|a| a as u64), + constants::DW_EH_PE_sdata2 => input.read_i16().map(|a| a as u64), + constants::DW_EH_PE_sdata4 => input.read_i32().map(|a| a as u64), + constants::DW_EH_PE_sdata8 => input.read_i64().map(|a| a as u64), + _ => unreachable!(), + }?; + + let address = base.wrapping_add(offset); + Ok(if encoding.is_indirect() { + Pointer::Indirect(address) + } else { + Pointer::Direct(address) + }) +} + +fn find_eh_action( + reader: &mut StaticSlice, + unwind_ctx: &UnwindContext<'_>, +) -> gimli::Result { + let func_start = _Unwind_GetRegionStart(unwind_ctx); + let mut ip_before_instr = 0; + let ip = _Unwind_GetIPInfo(unwind_ctx, &mut ip_before_instr); + let ip = if ip_before_instr != 0 { ip } else { ip - 1 }; + + let start_encoding = parse_pointer_encoding(reader)?; + let lpad_base = if !start_encoding.is_absent() { + unsafe { deref_pointer(parse_encoded_pointer(start_encoding, unwind_ctx, reader)?) } + } else { + func_start + }; + + let ttype_encoding = parse_pointer_encoding(reader)?; + if !ttype_encoding.is_absent() { + reader.read_uleb128()?; + } + + let call_site_encoding = parse_pointer_encoding(reader)?; + let call_site_table_length = reader.read_uleb128()?; + reader.truncate(call_site_table_length as _)?; + + while !reader.is_empty() { + let cs_start = unsafe { + deref_pointer(parse_encoded_pointer( + call_site_encoding, + unwind_ctx, + reader, + )?) + }; + let cs_len = unsafe { + deref_pointer(parse_encoded_pointer( + call_site_encoding, + unwind_ctx, + reader, + )?) + }; + let cs_lpad = unsafe { + deref_pointer(parse_encoded_pointer( + call_site_encoding, + unwind_ctx, + reader, + )?) + }; + let cs_action = reader.read_uleb128()?; + if ip < func_start + cs_start { + break; + } + if ip < func_start + cs_start + cs_len { + if cs_lpad == 0 { + return Ok(EHAction::None); + } else { + let lpad = lpad_base + cs_lpad; + return Ok(match cs_action { + 0 => EHAction::Cleanup(lpad), + _ => EHAction::Catch(lpad), + }); + } + } + } + Ok(EHAction::None) +} + +#[lang = "eh_personality"] +unsafe fn rust_eh_personality( + version: c_int, + actions: UnwindAction, + _exception_class: u64, + exception: *mut UnwindException, + unwind_ctx: &mut UnwindContext<'_>, +) -> UnwindReasonCode { + if version != 1 { + return UnwindReasonCode::FATAL_PHASE1_ERROR; + } + + let lsda = _Unwind_GetLanguageSpecificData(unwind_ctx); + if lsda.is_null() { + return UnwindReasonCode::CONTINUE_UNWIND; + } + + let mut lsda = EndianSlice::new(unsafe { get_unlimited_slice(lsda as _) }, NativeEndian); + let eh_action = match find_eh_action(&mut lsda, unwind_ctx) { + Ok(v) => v, + Err(_) => return UnwindReasonCode::FATAL_PHASE1_ERROR, + }; + + if actions.contains(UnwindAction::SEARCH_PHASE) { + match eh_action { + EHAction::None | EHAction::Cleanup(_) => UnwindReasonCode::CONTINUE_UNWIND, + EHAction::Catch(_) => UnwindReasonCode::HANDLER_FOUND, + } + } else { + match eh_action { + EHAction::None => UnwindReasonCode::CONTINUE_UNWIND, + EHAction::Cleanup(lpad) | EHAction::Catch(lpad) => { + _Unwind_SetGR( + unwind_ctx, + Arch::UNWIND_DATA_REG.0 .0 as _, + exception as usize, + ); + _Unwind_SetGR(unwind_ctx, Arch::UNWIND_DATA_REG.1 .0 as _, 0); + _Unwind_SetIP(unwind_ctx, lpad); + UnwindReasonCode::INSTALL_CONTEXT + } + } + } +} diff --git a/src/rust/vendor/unwinding/src/personality_dummy.rs b/src/rust/vendor/unwinding/src/personality_dummy.rs new file mode 100644 index 000000000..ff026c7b9 --- /dev/null +++ b/src/rust/vendor/unwinding/src/personality_dummy.rs @@ -0,0 +1,16 @@ +use crate::abi::*; +use crate::util::*; + +#[lang = "eh_personality"] +unsafe extern "C" fn personality( + version: c_int, + _actions: UnwindAction, + _exception_class: u64, + _exception: *mut UnwindException, + _ctx: &mut UnwindContext<'_>, +) -> UnwindReasonCode { + if version != 1 { + return UnwindReasonCode::FATAL_PHASE1_ERROR; + } + UnwindReasonCode::CONTINUE_UNWIND +} diff --git a/src/rust/vendor/unwinding/src/print.rs b/src/rust/vendor/unwinding/src/print.rs new file mode 100644 index 000000000..fc6d9ac63 --- /dev/null +++ b/src/rust/vendor/unwinding/src/print.rs @@ -0,0 +1,70 @@ +pub use crate::{eprint, eprintln, print, println}; + +#[doc(hidden)] +pub struct StdoutPrinter; +impl core::fmt::Write for StdoutPrinter { + fn write_str(&mut self, s: &str) -> core::fmt::Result { + unsafe { libc::printf(b"%.*s\0".as_ptr() as _, s.len() as i32, s.as_ptr()) }; + Ok(()) + } +} + +#[doc(hidden)] +pub struct StderrPrinter; +impl core::fmt::Write for StderrPrinter { + fn write_str(&mut self, s: &str) -> core::fmt::Result { + unsafe { libc::write(libc::STDERR_FILENO, s.as_ptr() as _, s.len() as _) }; + Ok(()) + } +} + +#[macro_export] +macro_rules! println { + ($($arg:tt)*) => ({ + use core::fmt::Write; + let _ = core::writeln!($crate::print::StdoutPrinter, $($arg)*); + }) +} + +#[macro_export] +macro_rules! print { + ($($arg:tt)*) => ({ + use core::fmt::Write; + let _ = core::write!($crate::print::StdoutPrinter, $($arg)*); + }) +} + +#[macro_export] +macro_rules! eprintln { + ($($arg:tt)*) => ({ + use core::fmt::Write; + let _ = core::writeln!($crate::print::StderrPrinter, $($arg)*); + }) +} + +#[macro_export] +macro_rules! eprint { + ($($arg:tt)*) => ({ + use core::fmt::Write; + let _ = core::write!($crate::print::StderrPrinter, $($arg)*); + }) +} + +#[macro_export] +macro_rules! dbg { + () => { + $crate::eprintln!("[{}:{}]", ::core::file!(), ::core::line!()) + }; + ($val:expr $(,)?) => { + match $val { + tmp => { + $crate::eprintln!("[{}:{}] {} = {:#?}", + ::core::file!(), ::core::line!(), ::core::stringify!($val), &tmp); + tmp + } + } + }; + ($($val:expr),+ $(,)?) => { + ($($crate::dbg!($val)),+,) + }; +} diff --git a/src/rust/vendor/unwinding/src/system_alloc.rs b/src/rust/vendor/unwinding/src/system_alloc.rs new file mode 100644 index 000000000..51e8bdbf0 --- /dev/null +++ b/src/rust/vendor/unwinding/src/system_alloc.rs @@ -0,0 +1,63 @@ +use core::alloc::{GlobalAlloc, Layout}; +use core::{cmp, mem, ptr}; + +pub struct System; + +const MIN_ALIGN: usize = mem::size_of::() * 2; + +// Taken std +unsafe impl GlobalAlloc for System { + #[inline] + unsafe fn alloc(&self, layout: Layout) -> *mut u8 { + if layout.align() <= MIN_ALIGN && layout.align() <= layout.size() { + unsafe { libc::malloc(layout.size()) as *mut u8 } + } else { + let mut out = ptr::null_mut(); + let align = layout.align().max(mem::size_of::()); + let ret = unsafe { libc::posix_memalign(&mut out, align, layout.size()) }; + if ret != 0 { + ptr::null_mut() + } else { + out as *mut u8 + } + } + } + + #[inline] + unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 { + if layout.align() <= MIN_ALIGN && layout.align() <= layout.size() { + unsafe { libc::calloc(layout.size(), 1) as *mut u8 } + } else { + let ptr = unsafe { self.alloc(layout) }; + if !ptr.is_null() { + unsafe { ptr::write_bytes(ptr, 0, layout.size()) }; + } + ptr + } + } + + #[inline] + unsafe fn dealloc(&self, ptr: *mut u8, _layout: Layout) { + unsafe { libc::free(ptr as *mut libc::c_void) } + } + + #[inline] + unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 { + if layout.align() <= MIN_ALIGN && layout.align() <= new_size { + unsafe { libc::realloc(ptr as *mut libc::c_void, new_size) as *mut u8 } + } else { + let new_layout = unsafe { Layout::from_size_align_unchecked(new_size, layout.align()) }; + + let new_ptr = unsafe { self.alloc(new_layout) }; + if !new_ptr.is_null() { + let size = cmp::min(layout.size(), new_size); + unsafe { ptr::copy_nonoverlapping(ptr, new_ptr, size) }; + unsafe { self.dealloc(ptr, layout) }; + } + new_ptr + } + } +} + +#[global_allocator] +pub static GLOBAL: System = System; diff --git a/src/rust/vendor/unwinding/src/unwinder/arch/aarch64.rs b/src/rust/vendor/unwinding/src/unwinder/arch/aarch64.rs new file mode 100644 index 000000000..f65332cc4 --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/arch/aarch64.rs @@ -0,0 +1,142 @@ +use core::arch::asm; +use core::fmt; +use core::ops; +use gimli::{AArch64, Register}; + +// Match DWARF_FRAME_REGISTERS in libgcc +pub const MAX_REG_RULES: usize = 97; + +#[repr(C)] +#[derive(Clone, Default)] +pub struct Context { + pub gp: [usize; 31], + pub sp: usize, + pub fp: [usize; 32], +} + +impl fmt::Debug for Context { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + let mut fmt = fmt.debug_struct("Context"); + for i in 0..=30 { + fmt.field( + AArch64::register_name(Register(i as _)).unwrap(), + &self.gp[i], + ); + } + fmt.field("sp", &self.sp); + for i in 0..=31 { + fmt.field( + AArch64::register_name(Register((i + 64) as _)).unwrap(), + &self.fp[i], + ); + } + fmt.finish() + } +} + +impl ops::Index for Context { + type Output = usize; + + fn index(&self, reg: Register) -> &usize { + match reg { + Register(0..=30) => &self.gp[reg.0 as usize], + AArch64::SP => &self.sp, + Register(64..=95) => &self.fp[(reg.0 - 64) as usize], + _ => unimplemented!(), + } + } +} + +impl ops::IndexMut for Context { + fn index_mut(&mut self, reg: Register) -> &mut usize { + match reg { + Register(0..=30) => &mut self.gp[reg.0 as usize], + AArch64::SP => &mut self.sp, + Register(64..=95) => &mut self.fp[(reg.0 - 64) as usize], + _ => unimplemented!(), + } + } +} + +#[naked] +pub extern "C-unwind" fn save_context(f: extern "C" fn(&mut Context, *mut ()), ptr: *mut ()) { + // No need to save caller-saved registers here. + unsafe { + asm!( + " + stp x29, x30, [sp, -16]! + sub sp, sp, 512 + mov x8, x0 + mov x0, sp + + stp d8, d9, [sp, 0x140] + stp d10, d11, [sp, 0x150] + stp d12, d13, [sp, 0x160] + stp d14, d15, [sp, 0x170] + + str x19, [sp, 0x98] + stp x20, x21, [sp, 0xA0] + stp x22, x23, [sp, 0xB0] + stp x24, x25, [sp, 0xC0] + stp x26, x27, [sp, 0xD0] + stp x28, x29, [sp, 0xE0] + add x2, sp, 528 + stp x30, x2, [sp, 0xF0] + + blr x8 + + add sp, sp, 512 + ldp x29, x30, [sp], 16 + ret + ", + options(noreturn) + ); + } +} + +#[naked] +pub unsafe extern "C" fn restore_context(ctx: &Context) -> ! { + unsafe { + asm!( + " + ldp d0, d1, [x0, 0x100] + ldp d2, d3, [x0, 0x110] + ldp d4, d5, [x0, 0x120] + ldp d6, d7, [x0, 0x130] + ldp d8, d9, [x0, 0x140] + ldp d10, d11, [x0, 0x150] + ldp d12, d13, [x0, 0x160] + ldp d14, d15, [x0, 0x170] + ldp d16, d17, [x0, 0x180] + ldp d18, d19, [x0, 0x190] + ldp d20, d21, [x0, 0x1A0] + ldp d22, d23, [x0, 0x1B0] + ldp d24, d25, [x0, 0x1C0] + ldp d26, d27, [x0, 0x1D0] + ldp d28, d29, [x0, 0x1E0] + ldp d30, d31, [x0, 0x1F0] + + ldp x2, x3, [x0, 0x10] + ldp x4, x5, [x0, 0x20] + ldp x6, x7, [x0, 0x30] + ldp x8, x9, [x0, 0x40] + ldp x10, x11, [x0, 0x50] + ldp x12, x13, [x0, 0x60] + ldp x14, x15, [x0, 0x70] + ldp x16, x17, [x0, 0x80] + ldp x18, x19, [x0, 0x90] + ldp x20, x21, [x0, 0xA0] + ldp x22, x23, [x0, 0xB0] + ldp x24, x25, [x0, 0xC0] + ldp x26, x27, [x0, 0xD0] + ldp x28, x29, [x0, 0xE0] + ldp x30, x1, [x0, 0xF0] + mov sp, x1 + + ldp x0, x1, [x0, 0x00] + ret + ", + options(noreturn) + ); + } +} diff --git a/src/rust/vendor/unwinding/src/unwinder/arch/mod.rs b/src/rust/vendor/unwinding/src/unwinder/arch/mod.rs new file mode 100644 index 000000000..815835358 --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/arch/mod.rs @@ -0,0 +1,33 @@ +#[cfg(target_arch = "x86_64")] +mod x86_64; +#[cfg(target_arch = "x86_64")] +pub use x86_64::*; + +#[cfg(target_arch = "x86")] +mod x86; +#[cfg(target_arch = "x86")] +pub use x86::*; + +#[cfg(target_arch = "riscv64")] +mod riscv64; +#[cfg(target_arch = "riscv64")] +pub use riscv64::*; + +#[cfg(target_arch = "riscv32")] +mod riscv32; +#[cfg(target_arch = "riscv32")] +pub use riscv32::*; + +#[cfg(target_arch = "aarch64")] +mod aarch64; +#[cfg(target_arch = "aarch64")] +pub use aarch64::*; + +#[cfg(not(any( + target_arch = "x86_64", + target_arch = "x86", + target_arch = "riscv64", + target_arch = "riscv32", + target_arch = "aarch64" +)))] +compile_error!("Current architecture is not supported"); diff --git a/src/rust/vendor/unwinding/src/unwinder/arch/riscv32.rs b/src/rust/vendor/unwinding/src/unwinder/arch/riscv32.rs new file mode 100644 index 000000000..1e8709e2c --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/arch/riscv32.rs @@ -0,0 +1,242 @@ +use core::arch::asm; +use core::fmt; +use core::ops; +use gimli::{Register, RiscV}; + +// Match DWARF_FRAME_REGISTERS in libgcc +pub const MAX_REG_RULES: usize = 65; + +#[cfg(all(target_feature = "f", not(target_feature = "d")))] +compile_error!("RISC-V with only F extension is not supported"); + +#[repr(C)] +#[derive(Clone, Default)] +pub struct Context { + pub gp: [usize; 32], + #[cfg(target_feature = "d")] + pub fp: [u64; 32], +} + +impl fmt::Debug for Context { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + let mut fmt = fmt.debug_struct("Context"); + for i in 0..=31 { + fmt.field(RiscV::register_name(Register(i as _)).unwrap(), &self.gp[i]); + } + #[cfg(target_feature = "d")] + for i in 0..=31 { + fmt.field( + RiscV::register_name(Register((i + 32) as _)).unwrap(), + &self.fp[i], + ); + } + fmt.finish() + } +} + +impl ops::Index for Context { + type Output = usize; + + fn index(&self, reg: Register) -> &usize { + match reg { + Register(0..=31) => &self.gp[reg.0 as usize], + // We cannot support indexing fp here. It is 64-bit if D extension is implemented, + // and 32-bit if only F extension is implemented. + _ => unimplemented!(), + } + } +} + +impl ops::IndexMut for Context { + fn index_mut(&mut self, reg: Register) -> &mut usize { + match reg { + Register(0..=31) => &mut self.gp[reg.0 as usize], + // We cannot support indexing fp here. It is 64-bit if D extension is implemented, + // and 32-bit if only F extension is implemented. + _ => unimplemented!(), + } + } +} + +macro_rules! code { + (save_gp) => { + " + sw x0, 0x00(sp) + sw ra, 0x04(sp) + sw t0, 0x08(sp) + sw gp, 0x0C(sp) + sw tp, 0x10(sp) + sw s0, 0x20(sp) + sw s1, 0x24(sp) + sw s2, 0x48(sp) + sw s3, 0x4C(sp) + sw s4, 0x50(sp) + sw s5, 0x54(sp) + sw s6, 0x58(sp) + sw s7, 0x5C(sp) + sw s8, 0x60(sp) + sw s9, 0x64(sp) + sw s10, 0x68(sp) + sw s11, 0x6C(sp) + " + }; + (save_fp) => { + " + fsd fs0, 0xC0(sp) + fsd fs1, 0xC8(sp) + fsd fs2, 0x110(sp) + fsd fs3, 0x118(sp) + fsd fs4, 0x120(sp) + fsd fs5, 0x128(sp) + fsd fs6, 0x130(sp) + fsd fs7, 0x138(sp) + fsd fs8, 0x140(sp) + fsd fs9, 0x148(sp) + fsd fs10, 0x150(sp) + fsd fs11, 0x158(sp) + " + }; + (restore_gp) => { + " + lw ra, 0x04(a0) + lw sp, 0x08(a0) + lw gp, 0x0C(a0) + lw tp, 0x10(a0) + lw t0, 0x14(a0) + lw t1, 0x18(a0) + lw t2, 0x1C(a0) + lw s0, 0x20(a0) + lw s1, 0x24(a0) + lw a1, 0x2C(a0) + lw a2, 0x30(a0) + lw a3, 0x34(a0) + lw a4, 0x38(a0) + lw a5, 0x3C(a0) + lw a6, 0x40(a0) + lw a7, 0x44(a0) + lw s2, 0x48(a0) + lw s3, 0x4C(a0) + lw s4, 0x50(a0) + lw s5, 0x54(a0) + lw s6, 0x58(a0) + lw s7, 0x5C(a0) + lw s8, 0x60(a0) + lw s9, 0x64(a0) + lw s10, 0x68(a0) + lw s11, 0x6C(a0) + lw t3, 0x70(a0) + lw t4, 0x74(a0) + lw t5, 0x78(a0) + lw t6, 0x7C(a0) + " + }; + (restore_fp) => { + " + fld ft0, 0x80(a0) + fld ft1, 0x88(a0) + fld ft2, 0x90(a0) + fld ft3, 0x98(a0) + fld ft4, 0xA0(a0) + fld ft5, 0xA8(a0) + fld ft6, 0xB0(a0) + fld ft7, 0xB8(a0) + fld fs0, 0xC0(a0) + fld fs1, 0xC8(a0) + fld fa0, 0xD0(a0) + fld fa1, 0xD8(a0) + fld fa2, 0xE0(a0) + fld fa3, 0xE8(a0) + fld fa4, 0xF0(a0) + fld fa5, 0xF8(a0) + fld fa6, 0x100(a0) + fld fa7, 0x108(a0) + fld fs2, 0x110(a0) + fld fs3, 0x118(a0) + fld fs4, 0x120(a0) + fld fs5, 0x128(a0) + fld fs6, 0x130(a0) + fld fs7, 0x138(a0) + fld fs8, 0x140(a0) + fld fs9, 0x148(a0) + fld fs10, 0x150(a0) + fld fs11, 0x158(a0) + fld ft8, 0x160(a0) + fld ft9, 0x168(a0) + fld ft10, 0x170(a0) + fld ft11, 0x178(a0) + " + }; +} + +#[naked] +pub extern "C-unwind" fn save_context(f: extern "C" fn(&mut Context, *mut ()), ptr: *mut ()) { + // No need to save caller-saved registers here. + #[cfg(target_feature = "d")] + unsafe { + asm!( + " + mv t0, sp + add sp, sp, -0x188 + sw ra, 0x180(sp) + ", + code!(save_gp), + code!(save_fp), + " + mv t0, a0 + mv a0, sp + jalr t0 + lw ra, 0x180(sp) + add sp, sp, 0x188 + ret + ", + options(noreturn) + ); + } + #[cfg(not(target_feature = "d"))] + unsafe { + asm!( + " + mv t0, sp + add sp, sp, -0x88 + sw ra, 0x80(sp) + ", + code!(save_gp), + " + mv t0, a0 + mv a0, sp + jalr t0 + lw ra, 0x80(sp) + add sp, sp, 0x88 + ret + ", + options(noreturn) + ); + } +} + +#[naked] +pub unsafe extern "C" fn restore_context(ctx: &Context) -> ! { + #[cfg(target_feature = "d")] + unsafe { + asm!( + code!(restore_fp), + code!(restore_gp), + " + lw a0, 0x28(a0) + ret + ", + options(noreturn) + ); + } + #[cfg(not(target_feature = "d"))] + unsafe { + asm!( + code!(restore_gp), + " + lw a0, 0x28(a0) + ret + ", + options(noreturn) + ); + } +} diff --git a/src/rust/vendor/unwinding/src/unwinder/arch/riscv64.rs b/src/rust/vendor/unwinding/src/unwinder/arch/riscv64.rs new file mode 100644 index 000000000..a680d7057 --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/arch/riscv64.rs @@ -0,0 +1,242 @@ +use core::arch::asm; +use core::fmt; +use core::ops; +use gimli::{Register, RiscV}; + +// Match DWARF_FRAME_REGISTERS in libgcc +pub const MAX_REG_RULES: usize = 65; + +#[cfg(all(target_feature = "f", not(target_feature = "d")))] +compile_error!("RISC-V with only F extension is not supported"); + +#[repr(C)] +#[derive(Clone, Default)] +pub struct Context { + pub gp: [usize; 32], + #[cfg(target_feature = "d")] + pub fp: [usize; 32], +} + +impl fmt::Debug for Context { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + let mut fmt = fmt.debug_struct("Context"); + for i in 0..=31 { + fmt.field(RiscV::register_name(Register(i as _)).unwrap(), &self.gp[i]); + } + #[cfg(target_feature = "d")] + for i in 0..=31 { + fmt.field( + RiscV::register_name(Register((i + 32) as _)).unwrap(), + &self.fp[i], + ); + } + fmt.finish() + } +} + +impl ops::Index for Context { + type Output = usize; + + fn index(&self, reg: Register) -> &usize { + match reg { + Register(0..=31) => &self.gp[reg.0 as usize], + #[cfg(target_feature = "d")] + Register(32..=63) => &self.fp[(reg.0 - 32) as usize], + _ => unimplemented!(), + } + } +} + +impl ops::IndexMut for Context { + fn index_mut(&mut self, reg: Register) -> &mut usize { + match reg { + Register(0..=31) => &mut self.gp[reg.0 as usize], + #[cfg(target_feature = "d")] + Register(32..=63) => &mut self.fp[(reg.0 - 32) as usize], + _ => unimplemented!(), + } + } +} + +macro_rules! code { + (save_gp) => { + " + sd x0, 0x00(sp) + sd ra, 0x08(sp) + sd t0, 0x10(sp) + sd gp, 0x18(sp) + sd tp, 0x20(sp) + sd s0, 0x40(sp) + sd s1, 0x48(sp) + sd s2, 0x90(sp) + sd s3, 0x98(sp) + sd s4, 0xA0(sp) + sd s5, 0xA8(sp) + sd s6, 0xB0(sp) + sd s7, 0xB8(sp) + sd s8, 0xC0(sp) + sd s9, 0xC8(sp) + sd s10, 0xD0(sp) + sd s11, 0xD8(sp) + " + }; + (save_fp) => { + " + fsd fs0, 0x140(sp) + fsd fs1, 0x148(sp) + fsd fs2, 0x190(sp) + fsd fs3, 0x198(sp) + fsd fs4, 0x1A0(sp) + fsd fs5, 0x1A8(sp) + fsd fs6, 0x1B0(sp) + fsd fs7, 0x1B8(sp) + fsd fs8, 0x1C0(sp) + fsd fs9, 0x1C8(sp) + fsd fs10, 0x1D0(sp) + fsd fs11, 0x1D8(sp) + " + }; + (restore_gp) => { + " + ld ra, 0x08(a0) + ld sp, 0x10(a0) + ld gp, 0x18(a0) + ld tp, 0x20(a0) + ld t0, 0x28(a0) + ld t1, 0x30(a0) + ld t2, 0x38(a0) + ld s0, 0x40(a0) + ld s1, 0x48(a0) + ld a1, 0x58(a0) + ld a2, 0x60(a0) + ld a3, 0x68(a0) + ld a4, 0x70(a0) + ld a5, 0x78(a0) + ld a6, 0x80(a0) + ld a7, 0x88(a0) + ld s2, 0x90(a0) + ld s3, 0x98(a0) + ld s4, 0xA0(a0) + ld s5, 0xA8(a0) + ld s6, 0xB0(a0) + ld s7, 0xB8(a0) + ld s8, 0xC0(a0) + ld s9, 0xC8(a0) + ld s10, 0xD0(a0) + ld s11, 0xD8(a0) + ld t3, 0xE0(a0) + ld t4, 0xE8(a0) + ld t5, 0xF0(a0) + ld t6, 0xF8(a0) + " + }; + (restore_fp) => { + " + fld ft0, 0x100(a0) + fld ft1, 0x108(a0) + fld ft2, 0x110(a0) + fld ft3, 0x118(a0) + fld ft4, 0x120(a0) + fld ft5, 0x128(a0) + fld ft6, 0x130(a0) + fld ft7, 0x138(a0) + fld fs0, 0x140(a0) + fld fs1, 0x148(a0) + fld fa0, 0x150(a0) + fld fa1, 0x158(a0) + fld fa2, 0x160(a0) + fld fa3, 0x168(a0) + fld fa4, 0x170(a0) + fld fa5, 0x178(a0) + fld fa6, 0x180(a0) + fld fa7, 0x188(a0) + fld fs2, 0x190(a0) + fld fs3, 0x198(a0) + fld fs4, 0x1A0(a0) + fld fs5, 0x1A8(a0) + fld fs6, 0x1B0(a0) + fld fs7, 0x1B8(a0) + fld fs8, 0x1C0(a0) + fld fs9, 0x1C8(a0) + fld fs10, 0x1D0(a0) + fld fs11, 0x1D8(a0) + fld ft8, 0x1E0(a0) + fld ft9, 0x1E8(a0) + fld ft10, 0x1F0(a0) + fld ft11, 0x1F8(a0) + " + }; +} + +#[naked] +pub extern "C-unwind" fn save_context(f: extern "C" fn(&mut Context, *mut ()), ptr: *mut ()) { + // No need to save caller-saved registers here. + #[cfg(target_feature = "d")] + unsafe { + asm!( + " + mv t0, sp + add sp, sp, -0x210 + sd ra, 0x200(sp) + ", + code!(save_gp), + code!(save_fp), + " + mv t0, a0 + mv a0, sp + jalr t0 + ld ra, 0x200(sp) + add sp, sp, 0x210 + ret + ", + options(noreturn) + ); + } + #[cfg(not(target_feature = "d"))] + unsafe { + asm!( + " + mv t0, sp + add sp, sp, -0x110 + sd ra, 0x100(sp) + ", + code!(save_gp), + " + mv t0, a0 + mv a0, sp + jalr t0 + ld ra, 0x100(sp) + add sp, sp, 0x110 + ret + ", + options(noreturn) + ); + } +} + +#[naked] +pub unsafe extern "C" fn restore_context(ctx: &Context) -> ! { + #[cfg(target_feature = "d")] + unsafe { + asm!( + code!(restore_fp), + code!(restore_gp), + " + ld a0, 0x50(a0) + ret + ", + options(noreturn) + ); + } + #[cfg(not(target_feature = "d"))] + unsafe { + asm!( + code!(restore_gp), + " + ld a0, 0x50(a0) + ret + ", + options(noreturn) + ); + } +} diff --git a/src/rust/vendor/unwinding/src/unwinder/arch/x86.rs b/src/rust/vendor/unwinding/src/unwinder/arch/x86.rs new file mode 100644 index 000000000..992afb66a --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/arch/x86.rs @@ -0,0 +1,136 @@ +use core::arch::asm; +use core::fmt; +use core::ops; +use gimli::{Register, X86}; + +// Match DWARF_FRAME_REGISTERS in libgcc +pub const MAX_REG_RULES: usize = 17; + +#[repr(C)] +#[derive(Clone, Default)] +pub struct Context { + pub registers: [usize; 8], + pub ra: usize, + pub mcxsr: usize, + pub fcw: usize, +} + +impl fmt::Debug for Context { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + let mut fmt = fmt.debug_struct("Context"); + for i in 0..=7 { + fmt.field( + X86::register_name(Register(i as _)).unwrap(), + &self.registers[i], + ); + } + fmt.field("ra", &self.ra) + .field("mcxsr", &self.mcxsr) + .field("fcw", &self.fcw) + .finish() + } +} + +impl ops::Index for Context { + type Output = usize; + + fn index(&self, reg: Register) -> &usize { + match reg { + Register(0..=7) => &self.registers[reg.0 as usize], + X86::RA => &self.ra, + X86::MXCSR => &self.mcxsr, + _ => unimplemented!(), + } + } +} + +impl ops::IndexMut for Context { + fn index_mut(&mut self, reg: Register) -> &mut usize { + match reg { + Register(0..=7) => &mut self.registers[reg.0 as usize], + X86::RA => &mut self.ra, + X86::MXCSR => &mut self.mcxsr, + _ => unimplemented!(), + } + } +} + +#[naked] +pub extern "C-unwind" fn save_context(f: extern "C" fn(&mut Context, *mut ()), ptr: *mut ()) { + // No need to save caller-saved registers here. + unsafe { + asm!( + " + sub esp, 52 + + mov [esp + 4], ecx + mov [esp + 8], edx + mov [esp + 12], ebx + + /* Adjust the stack to account for the return address */ + lea eax, [esp + 56] + mov [esp + 16], eax + + mov [esp + 20], ebp + mov [esp + 24], esi + mov [esp + 28], edi + + /* Return address */ + mov eax, [esp + 52] + mov [esp + 32], eax + + stmxcsr [esp + 36] + fnstcw [esp + 40] + + mov eax, [esp + 60] + mov ecx, esp + push eax + push ecx + call [esp + 64] + + add esp, 60 + ret + ", + options(noreturn) + ); + } +} + +#[naked] +pub unsafe extern "C" fn restore_context(ctx: &Context) -> ! { + unsafe { + asm!( + " + mov edx, [esp + 4] + + /* Restore stack */ + mov esp, [edx + 16] + + /* Restore callee-saved control registers */ + ldmxcsr [edx + 36] + fldcw [edx + 40] + + /* Restore return address */ + mov eax, [edx + 32] + push eax + + /* + * Restore general-purpose registers. Non-callee-saved registers are + * also restored because sometimes it's used to pass unwind arguments. + */ + mov eax, [edx + 0] + mov ecx, [edx + 4] + mov ebx, [edx + 12] + mov ebp, [edx + 20] + mov esi, [edx + 24] + mov edi, [edx + 28] + + /* EDX restored last */ + mov edx, [edx + 8] + + ret + ", + options(noreturn) + ); + } +} diff --git a/src/rust/vendor/unwinding/src/unwinder/arch/x86_64.rs b/src/rust/vendor/unwinding/src/unwinder/arch/x86_64.rs new file mode 100644 index 000000000..43876865c --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/arch/x86_64.rs @@ -0,0 +1,140 @@ +use core::arch::asm; +use core::fmt; +use core::ops; +use gimli::{Register, X86_64}; + +// Match DWARF_FRAME_REGISTERS in libgcc +pub const MAX_REG_RULES: usize = 17; + +#[repr(C)] +#[derive(Clone, Default)] +pub struct Context { + pub registers: [usize; 16], + pub ra: usize, + pub mcxsr: usize, + pub fcw: usize, +} + +impl fmt::Debug for Context { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + let mut fmt = fmt.debug_struct("Context"); + for i in 0..=15 { + fmt.field( + X86_64::register_name(Register(i as _)).unwrap(), + &self.registers[i], + ); + } + fmt.field("ra", &self.ra) + .field("mcxsr", &self.mcxsr) + .field("fcw", &self.fcw) + .finish() + } +} + +impl ops::Index for Context { + type Output = usize; + + fn index(&self, reg: Register) -> &usize { + match reg { + Register(0..=15) => &self.registers[reg.0 as usize], + X86_64::RA => &self.ra, + X86_64::MXCSR => &self.mcxsr, + X86_64::FCW => &self.fcw, + _ => unimplemented!(), + } + } +} + +impl ops::IndexMut for Context { + fn index_mut(&mut self, reg: Register) -> &mut usize { + match reg { + Register(0..=15) => &mut self.registers[reg.0 as usize], + X86_64::RA => &mut self.ra, + X86_64::MXCSR => &mut self.mcxsr, + X86_64::FCW => &mut self.fcw, + _ => unimplemented!(), + } + } +} + +#[naked] +pub extern "C-unwind" fn save_context(f: extern "C" fn(&mut Context, *mut ()), ptr: *mut ()) { + // No need to save caller-saved registers here. + unsafe { + asm!( + " + sub rsp, 0x98 + mov [rsp + 0x18], rbx + mov [rsp + 0x30], rbp + + /* Adjust the stack to account for the return address */ + lea rax, [rsp + 0xA0] + mov [rsp + 0x38], rax + + mov [rsp + 0x60], r12 + mov [rsp + 0x68], r13 + mov [rsp + 0x70], r14 + mov [rsp + 0x78], r15 + + /* Return address */ + mov rax, [rsp + 0x98] + mov [rsp + 0x80], rax + + stmxcsr [rsp + 0x88] + fnstcw [rsp + 0x90] + + mov rax, rdi + mov rdi, rsp + call rax + add rsp, 0x98 + ret + ", + options(noreturn) + ); + } +} + +#[naked] +pub unsafe extern "C" fn restore_context(ctx: &Context) -> ! { + unsafe { + asm!( + " + /* Restore stack */ + mov rsp, [rdi + 0x38] + + /* Restore callee-saved control registers */ + ldmxcsr [rdi + 0x88] + fldcw [rdi + 0x90] + + /* Restore return address */ + mov rax, [rdi + 0x80] + push rax + + /* + * Restore general-purpose registers. Non-callee-saved registers are + * also restored because sometimes it's used to pass unwind arguments. + */ + mov rax, [rdi + 0x00] + mov rdx, [rdi + 0x08] + mov rcx, [rdi + 0x10] + mov rbx, [rdi + 0x18] + mov rsi, [rdi + 0x20] + mov rbp, [rdi + 0x30] + mov r8 , [rdi + 0x40] + mov r9 , [rdi + 0x48] + mov r10, [rdi + 0x50] + mov r11, [rdi + 0x58] + mov r12, [rdi + 0x60] + mov r13, [rdi + 0x68] + mov r14, [rdi + 0x70] + mov r15, [rdi + 0x78] + + /* RDI restored last */ + mov rdi, [rdi + 0x28] + + ret + ", + options(noreturn) + ); + } +} diff --git a/src/rust/vendor/unwinding/src/unwinder/find_fde/custom.rs b/src/rust/vendor/unwinding/src/unwinder/find_fde/custom.rs new file mode 100644 index 000000000..25da562db --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/find_fde/custom.rs @@ -0,0 +1,171 @@ +use super::{FDEFinder, FDESearchResult}; +use crate::util::{deref_pointer, get_unlimited_slice}; + +use core::sync::atomic::{AtomicU32, Ordering}; +use gimli::{BaseAddresses, EhFrame, EhFrameHdr, NativeEndian, UnwindSection}; + +pub(crate) struct CustomFinder(()); + +pub(crate) fn get_finder() -> &'static CustomFinder { + &CustomFinder(()) +} + +impl FDEFinder for CustomFinder { + fn find_fde(&self, pc: usize) -> Option { + get_custom_eh_frame_finder().and_then(|eh_frame_finder| find_fde(eh_frame_finder, pc)) + } +} + +/// A trait for types whose values can be used as the global EH frame finder set by [`set_custom_eh_frame_finder`]. +pub unsafe trait EhFrameFinder { + fn find(&self, pc: usize) -> Option; +} + +pub struct FrameInfo { + pub text_base: Option, + pub kind: FrameInfoKind, +} + +pub enum FrameInfoKind { + EhFrameHdr(usize), + EhFrame(usize), +} + +static mut CUSTOM_EH_FRAME_FINDER: Option<&(dyn EhFrameFinder + Sync)> = None; + +static CUSTOM_EH_FRAME_FINDER_STATE: AtomicU32 = AtomicU32::new(UNINITIALIZED); + +const UNINITIALIZED: u32 = 0; +const INITIALIZING: u32 = 1; +const INITIALIZED: u32 = 2; + +/// The type returned by [`set_custom_eh_frame_finder`] if [`set_custom_eh_frame_finder`] has +/// already been called. +#[derive(Debug)] +pub struct SetCustomEhFrameFinderError(()); + +/// Sets the global EH frame finder. +/// +/// This function should only be called once during the lifetime of the program. +/// +/// # Errors +/// +/// An error is returned if this function has already been called during the lifetime of the +/// program. +pub fn set_custom_eh_frame_finder( + fde_finder: &'static (dyn EhFrameFinder + Sync), +) -> Result<(), SetCustomEhFrameFinderError> { + match CUSTOM_EH_FRAME_FINDER_STATE.compare_exchange( + UNINITIALIZED, + INITIALIZING, + Ordering::SeqCst, + Ordering::SeqCst, + ) { + Ok(UNINITIALIZED) => { + unsafe { + CUSTOM_EH_FRAME_FINDER = Some(fde_finder); + } + CUSTOM_EH_FRAME_FINDER_STATE.store(INITIALIZED, Ordering::SeqCst); + Ok(()) + } + Err(INITIALIZING) => { + while CUSTOM_EH_FRAME_FINDER_STATE.load(Ordering::SeqCst) == INITIALIZING { + core::hint::spin_loop(); + } + Err(SetCustomEhFrameFinderError(())) + } + Err(INITIALIZED) => Err(SetCustomEhFrameFinderError(())), + _ => { + unreachable!() + } + } +} + +fn get_custom_eh_frame_finder() -> Option<&'static dyn EhFrameFinder> { + if CUSTOM_EH_FRAME_FINDER_STATE.load(Ordering::SeqCst) == INITIALIZED { + Some(unsafe { CUSTOM_EH_FRAME_FINDER.unwrap() }) + } else { + None + } +} + +fn find_fde(eh_frame_finder: &T, pc: usize) -> Option { + let info = eh_frame_finder.find(pc)?; + let text_base = info.text_base; + match info.kind { + FrameInfoKind::EhFrameHdr(eh_frame_hdr) => { + find_fde_with_eh_frame_hdr(pc, text_base, eh_frame_hdr) + } + FrameInfoKind::EhFrame(eh_frame) => find_fde_with_eh_frame(pc, text_base, eh_frame), + } +} + +fn find_fde_with_eh_frame_hdr( + pc: usize, + text_base: Option, + eh_frame_hdr: usize, +) -> Option { + unsafe { + let mut bases = BaseAddresses::default().set_eh_frame_hdr(eh_frame_hdr as _); + if let Some(text_base) = text_base { + bases = bases.set_text(text_base as _); + } + let eh_frame_hdr = EhFrameHdr::new( + get_unlimited_slice(eh_frame_hdr as usize as _), + NativeEndian, + ) + .parse(&bases, core::mem::size_of::() as _) + .ok()?; + let eh_frame = deref_pointer(eh_frame_hdr.eh_frame_ptr()); + let bases = bases.set_eh_frame(eh_frame as _); + let eh_frame = EhFrame::new(get_unlimited_slice(eh_frame as _), NativeEndian); + + // Use binary search table for address if available. + if let Some(table) = eh_frame_hdr.table() { + if let Ok(fde) = + table.fde_for_address(&eh_frame, &bases, pc as _, EhFrame::cie_from_offset) + { + return Some(FDESearchResult { + fde, + bases, + eh_frame, + }); + } + } + + // Otherwise do the linear search. + if let Ok(fde) = eh_frame.fde_for_address(&bases, pc as _, EhFrame::cie_from_offset) { + return Some(FDESearchResult { + fde, + bases, + eh_frame, + }); + } + + None + } +} + +fn find_fde_with_eh_frame( + pc: usize, + text_base: Option, + eh_frame: usize, +) -> Option { + unsafe { + let mut bases = BaseAddresses::default().set_eh_frame(eh_frame as _); + if let Some(text_base) = text_base { + bases = bases.set_text(text_base as _); + } + let eh_frame = EhFrame::new(get_unlimited_slice(eh_frame as _), NativeEndian); + + if let Ok(fde) = eh_frame.fde_for_address(&bases, pc as _, EhFrame::cie_from_offset) { + return Some(FDESearchResult { + fde, + bases, + eh_frame, + }); + } + + None + } +} diff --git a/src/rust/vendor/unwinding/src/unwinder/find_fde/fixed.rs b/src/rust/vendor/unwinding/src/unwinder/find_fde/fixed.rs new file mode 100644 index 000000000..c9d619379 --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/find_fde/fixed.rs @@ -0,0 +1,44 @@ +use super::FDESearchResult; +use crate::util::*; + +use gimli::{BaseAddresses, EhFrame, NativeEndian, UnwindSection}; + +pub struct StaticFinder(()); + +pub fn get_finder() -> &'static StaticFinder { + &StaticFinder(()) +} + +extern "C" { + static __executable_start: u8; + static __etext: u8; + static __eh_frame: u8; +} + +impl super::FDEFinder for StaticFinder { + fn find_fde(&self, pc: usize) -> Option { + unsafe { + let text_start = &__executable_start as *const u8 as usize; + let text_end = &__etext as *const u8 as usize; + if !(text_start..text_end).contains(&pc) { + return None; + } + + let eh_frame = &__eh_frame as *const u8 as usize; + let bases = BaseAddresses::default() + .set_eh_frame(eh_frame as _) + .set_text(text_start as _); + let eh_frame = EhFrame::new(get_unlimited_slice(eh_frame as _), NativeEndian); + + if let Ok(fde) = eh_frame.fde_for_address(&bases, pc as _, EhFrame::cie_from_offset) { + return Some(FDESearchResult { + fde, + bases, + eh_frame, + }); + } + + None + } + } +} diff --git a/src/rust/vendor/unwinding/src/unwinder/find_fde/gnu_eh_frame_hdr.rs b/src/rust/vendor/unwinding/src/unwinder/find_fde/gnu_eh_frame_hdr.rs new file mode 100644 index 000000000..07507698f --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/find_fde/gnu_eh_frame_hdr.rs @@ -0,0 +1,66 @@ +use super::FDESearchResult; +use crate::util::*; + +use gimli::{BaseAddresses, EhFrame, EhFrameHdr, NativeEndian, UnwindSection}; + +pub struct StaticFinder(()); + +pub fn get_finder() -> &'static StaticFinder { + &StaticFinder(()) +} + +extern "C" { + static __executable_start: u8; + static __etext: u8; + static __GNU_EH_FRAME_HDR: u8; +} + +impl super::FDEFinder for StaticFinder { + fn find_fde(&self, pc: usize) -> Option { + unsafe { + let text_start = &__executable_start as *const u8 as usize; + let text_end = &__etext as *const u8 as usize; + if !(text_start..text_end).contains(&pc) { + return None; + } + + let eh_frame_hdr = &__GNU_EH_FRAME_HDR as *const u8 as usize; + let bases = BaseAddresses::default() + .set_text(text_start as _) + .set_eh_frame_hdr(eh_frame_hdr as _); + let eh_frame_hdr = EhFrameHdr::new( + get_unlimited_slice(eh_frame_hdr as usize as _), + NativeEndian, + ) + .parse(&bases, core::mem::size_of::() as _) + .ok()?; + let eh_frame = deref_pointer(eh_frame_hdr.eh_frame_ptr()); + let bases = bases.set_eh_frame(eh_frame as _); + let eh_frame = EhFrame::new(get_unlimited_slice(eh_frame as _), NativeEndian); + + // Use binary search table for address if available. + if let Some(table) = eh_frame_hdr.table() { + if let Ok(fde) = + table.fde_for_address(&eh_frame, &bases, pc as _, EhFrame::cie_from_offset) + { + return Some(FDESearchResult { + fde, + bases, + eh_frame, + }); + } + } + + // Otherwise do the linear search. + if let Ok(fde) = eh_frame.fde_for_address(&bases, pc as _, EhFrame::cie_from_offset) { + return Some(FDESearchResult { + fde, + bases, + eh_frame, + }); + } + + None + } + } +} diff --git a/src/rust/vendor/unwinding/src/unwinder/find_fde/mod.rs b/src/rust/vendor/unwinding/src/unwinder/find_fde/mod.rs new file mode 100644 index 000000000..4db64a039 --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/find_fde/mod.rs @@ -0,0 +1,64 @@ +#[cfg(feature = "fde-custom")] +mod custom; +#[cfg(feature = "fde-static")] +mod fixed; +#[cfg(feature = "fde-gnu-eh-frame-hdr")] +mod gnu_eh_frame_hdr; +#[cfg(feature = "fde-phdr")] +mod phdr; +#[cfg(feature = "fde-registry")] +mod registry; + +use crate::util::*; +use gimli::{BaseAddresses, EhFrame, FrameDescriptionEntry}; + +#[cfg(feature = "fde-custom")] +pub mod custom_eh_frame_finder { + pub use super::custom::{ + set_custom_eh_frame_finder, EhFrameFinder, FrameInfo, FrameInfoKind, + SetCustomEhFrameFinderError, + }; +} + +#[derive(Debug)] +pub struct FDESearchResult { + pub fde: FrameDescriptionEntry, + pub bases: BaseAddresses, + pub eh_frame: EhFrame, +} + +pub trait FDEFinder { + fn find_fde(&self, pc: usize) -> Option; +} + +pub struct GlobalFinder(()); + +impl FDEFinder for GlobalFinder { + fn find_fde(&self, pc: usize) -> Option { + #[cfg(feature = "fde-custom")] + if let Some(v) = custom::get_finder().find_fde(pc) { + return Some(v); + } + #[cfg(feature = "fde-registry")] + if let Some(v) = registry::get_finder().find_fde(pc) { + return Some(v); + } + #[cfg(feature = "fde-gnu-eh-frame-hdr")] + if let Some(v) = gnu_eh_frame_hdr::get_finder().find_fde(pc) { + return Some(v); + } + #[cfg(feature = "fde-phdr")] + if let Some(v) = phdr::get_finder().find_fde(pc) { + return Some(v); + } + #[cfg(feature = "fde-static")] + if let Some(v) = fixed::get_finder().find_fde(pc) { + return Some(v); + } + None + } +} + +pub fn get_finder() -> &'static GlobalFinder { + &GlobalFinder(()) +} diff --git a/src/rust/vendor/unwinding/src/unwinder/find_fde/phdr.rs b/src/rust/vendor/unwinding/src/unwinder/find_fde/phdr.rs new file mode 100644 index 000000000..a677fb272 --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/find_fde/phdr.rs @@ -0,0 +1,166 @@ +use super::FDESearchResult; +use crate::util::*; + +use core::mem; +use core::slice; +use gimli::{BaseAddresses, EhFrame, EhFrameHdr, NativeEndian, UnwindSection}; +use libc::{PT_DYNAMIC, PT_GNU_EH_FRAME, PT_LOAD}; + +#[cfg(target_pointer_width = "32")] +use libc::Elf32_Phdr as Elf_Phdr; +#[cfg(target_pointer_width = "64")] +use libc::Elf64_Phdr as Elf_Phdr; + +pub struct PhdrFinder(()); + +pub fn get_finder() -> &'static PhdrFinder { + &PhdrFinder(()) +} + +impl super::FDEFinder for PhdrFinder { + fn find_fde(&self, pc: usize) -> Option { + #[cfg(feature = "fde-phdr-aux")] + if let Some(v) = search_aux_phdr(pc) { + return Some(v); + } + #[cfg(feature = "fde-phdr-dl")] + if let Some(v) = search_dl_phdr(pc) { + return Some(v); + } + None + } +} + +#[cfg(feature = "fde-phdr-aux")] +fn search_aux_phdr(pc: usize) -> Option { + use libc::{getauxval, AT_PHDR, AT_PHNUM, PT_PHDR}; + + unsafe { + let phdr = getauxval(AT_PHDR) as *const Elf_Phdr; + let phnum = getauxval(AT_PHNUM) as usize; + let phdrs = slice::from_raw_parts(phdr, phnum); + // With known address of PHDR, we can calculate the base address in reverse. + let base = + phdrs.as_ptr() as usize - phdrs.iter().find(|x| x.p_type == PT_PHDR)?.p_vaddr as usize; + search_phdr(phdrs, base, pc) + } +} + +#[cfg(feature = "fde-phdr-dl")] +fn search_dl_phdr(pc: usize) -> Option { + use core::ffi::c_void; + use libc::{dl_iterate_phdr, dl_phdr_info}; + + struct CallbackData { + pc: usize, + result: Option, + } + + unsafe extern "C" fn phdr_callback( + info: *mut dl_phdr_info, + _size: usize, + data: *mut c_void, + ) -> c_int { + unsafe { + let data = &mut *(data as *mut CallbackData); + let phdrs = slice::from_raw_parts((*info).dlpi_phdr, (*info).dlpi_phnum as usize); + if let Some(v) = search_phdr(phdrs, (*info).dlpi_addr as _, data.pc) { + data.result = Some(v); + return 1; + } + 0 + } + } + + let mut data = CallbackData { pc, result: None }; + unsafe { dl_iterate_phdr(Some(phdr_callback), &mut data as *mut CallbackData as _) }; + data.result +} + +fn search_phdr(phdrs: &[Elf_Phdr], base: usize, pc: usize) -> Option { + unsafe { + let mut text = None; + let mut eh_frame_hdr = None; + let mut dynamic = None; + + for phdr in phdrs { + let start = base + phdr.p_vaddr as usize; + match phdr.p_type { + PT_LOAD => { + let end = start + phdr.p_memsz as usize; + let range = start..end; + if range.contains(&pc) { + text = Some(range); + } + } + PT_GNU_EH_FRAME => { + eh_frame_hdr = Some(start); + } + PT_DYNAMIC => { + dynamic = Some(start); + } + _ => (), + } + } + + let text = text?; + let eh_frame_hdr = eh_frame_hdr?; + + let mut bases = BaseAddresses::default() + .set_eh_frame_hdr(eh_frame_hdr as _) + .set_text(text.start as _); + + // Find the GOT section. + if let Some(start) = dynamic { + const DT_NULL: usize = 0; + const DT_PLTGOT: usize = 3; + + let mut tags = start as *const [usize; 2]; + let mut tag = *tags; + while tag[0] != DT_NULL { + if tag[0] == DT_PLTGOT { + bases = bases.set_got(tag[1] as _); + break; + } + tags = tags.add(1); + tag = *tags; + } + } + + // Parse .eh_frame_hdr section. + let eh_frame_hdr = EhFrameHdr::new( + get_unlimited_slice(eh_frame_hdr as usize as _), + NativeEndian, + ) + .parse(&bases, mem::size_of::() as _) + .ok()?; + + let eh_frame = deref_pointer(eh_frame_hdr.eh_frame_ptr()); + bases = bases.set_eh_frame(eh_frame as _); + let eh_frame = EhFrame::new(get_unlimited_slice(eh_frame as usize as _), NativeEndian); + + // Use binary search table for address if available. + if let Some(table) = eh_frame_hdr.table() { + if let Ok(fde) = + table.fde_for_address(&eh_frame, &bases, pc as _, EhFrame::cie_from_offset) + { + return Some(FDESearchResult { + fde, + bases, + eh_frame, + }); + } + } + + // Otherwise do the linear search. + if let Ok(fde) = eh_frame.fde_for_address(&bases, pc as _, EhFrame::cie_from_offset) { + return Some(FDESearchResult { + fde, + bases, + eh_frame, + }); + } + + None + } +} diff --git a/src/rust/vendor/unwinding/src/unwinder/find_fde/registry.rs b/src/rust/vendor/unwinding/src/unwinder/find_fde/registry.rs new file mode 100644 index 000000000..5341a35ac --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/find_fde/registry.rs @@ -0,0 +1,250 @@ +use super::FDESearchResult; +use crate::util::get_unlimited_slice; +use alloc::boxed::Box; +use core::ffi::c_void; +use core::mem::MaybeUninit; +use core::ops; +use core::ptr; +use gimli::{BaseAddresses, EhFrame, NativeEndian, UnwindSection}; + +enum Table { + Single(*const c_void), + Multiple(*const *const c_void), +} + +struct Object { + next: *mut Object, + tbase: usize, + dbase: usize, + table: Table, +} + +struct GlobalState { + object: *mut Object, +} + +unsafe impl Send for GlobalState {} + +pub struct Registry(()); + +// `unsafe` because there is no protection for reentrance. +unsafe fn lock_global_state() -> impl ops::DerefMut { + #[cfg(feature = "libc")] + { + static mut MUTEX: libc::pthread_mutex_t = libc::PTHREAD_MUTEX_INITIALIZER; + unsafe { libc::pthread_mutex_lock(&mut MUTEX) }; + + static mut STATE: GlobalState = GlobalState { + object: ptr::null_mut(), + }; + + struct LockGuard; + impl Drop for LockGuard { + fn drop(&mut self) { + unsafe { libc::pthread_mutex_unlock(&mut MUTEX) }; + } + } + + impl ops::Deref for LockGuard { + type Target = GlobalState; + fn deref(&self) -> &GlobalState { + unsafe { &STATE } + } + } + + impl ops::DerefMut for LockGuard { + fn deref_mut(&mut self) -> &mut GlobalState { + unsafe { &mut STATE } + } + } + + LockGuard + } + #[cfg(not(feature = "libc"))] + { + static MUTEX: spin::Mutex = spin::Mutex::new(GlobalState { + object: ptr::null_mut(), + }); + MUTEX.lock() + } + #[cfg(not(any(feature = "libc", feature = "spin")))] + compile_error!("Either feature \"libc\" or \"spin\" must be enabled to use \"fde-registry\"."); +} + +pub fn get_finder() -> &'static Registry { + &Registry(()) +} + +impl super::FDEFinder for Registry { + fn find_fde(&self, pc: usize) -> Option { + unsafe { + let guard = lock_global_state(); + let mut cur = guard.object; + + while !cur.is_null() { + let bases = BaseAddresses::default() + .set_text((*cur).tbase as _) + .set_got((*cur).dbase as _); + match (*cur).table { + Table::Single(addr) => { + let eh_frame = EhFrame::new(get_unlimited_slice(addr as _), NativeEndian); + let bases = bases.clone().set_eh_frame(addr as usize as _); + if let Ok(fde) = + eh_frame.fde_for_address(&bases, pc as _, EhFrame::cie_from_offset) + { + return Some(FDESearchResult { + fde, + bases, + eh_frame, + }); + } + } + Table::Multiple(mut addrs) => { + let mut addr = *addrs; + while !addr.is_null() { + let eh_frame = + EhFrame::new(get_unlimited_slice(addr as _), NativeEndian); + let bases = bases.clone().set_eh_frame(addr as usize as _); + if let Ok(fde) = + eh_frame.fde_for_address(&bases, pc as _, EhFrame::cie_from_offset) + { + return Some(FDESearchResult { + fde, + bases, + eh_frame, + }); + } + + addrs = addrs.add(1); + addr = *addrs; + } + } + } + + cur = (*cur).next; + } + } + + None + } +} + +#[no_mangle] +unsafe extern "C" fn __register_frame_info_bases( + begin: *const c_void, + ob: *mut Object, + tbase: *const c_void, + dbase: *const c_void, +) { + if begin.is_null() { + return; + } + + unsafe { + ob.write(Object { + next: core::ptr::null_mut(), + tbase: tbase as _, + dbase: dbase as _, + table: Table::Single(begin), + }); + + let mut guard = lock_global_state(); + (*ob).next = guard.object; + guard.object = ob; + } +} + +#[no_mangle] +unsafe extern "C" fn __register_frame_info(begin: *const c_void, ob: *mut Object) { + unsafe { __register_frame_info_bases(begin, ob, core::ptr::null_mut(), core::ptr::null_mut()) } +} + +#[no_mangle] +unsafe extern "C" fn __register_frame(begin: *const c_void) { + if begin.is_null() { + return; + } + + let storage = Box::into_raw(Box::new(MaybeUninit::::uninit())) as *mut Object; + unsafe { __register_frame_info(begin, storage) } +} + +#[no_mangle] +unsafe extern "C" fn __register_frame_info_table_bases( + begin: *const c_void, + ob: *mut Object, + tbase: *const c_void, + dbase: *const c_void, +) { + unsafe { + ob.write(Object { + next: core::ptr::null_mut(), + tbase: tbase as _, + dbase: dbase as _, + table: Table::Multiple(begin as _), + }); + + let mut guard = lock_global_state(); + (*ob).next = guard.object; + guard.object = ob; + } +} + +#[no_mangle] +unsafe extern "C" fn __register_frame_info_table(begin: *const c_void, ob: *mut Object) { + unsafe { + __register_frame_info_table_bases(begin, ob, core::ptr::null_mut(), core::ptr::null_mut()) + } +} + +#[no_mangle] +unsafe extern "C" fn __register_frame_table(begin: *const c_void) { + if begin.is_null() { + return; + } + + let storage = Box::into_raw(Box::new(MaybeUninit::::uninit())) as *mut Object; + unsafe { __register_frame_info_table(begin, storage) } +} + +#[no_mangle] +extern "C" fn __deregister_frame_info_bases(begin: *const c_void) -> *mut Object { + if begin.is_null() { + return core::ptr::null_mut(); + } + + let mut guard = unsafe { lock_global_state() }; + unsafe { + let mut prev = &mut guard.object; + let mut cur = *prev; + + while !cur.is_null() { + let found = match (*cur).table { + Table::Single(addr) => addr == begin, + _ => false, + }; + if found { + *prev = (*cur).next; + return cur; + } + prev = &mut (*cur).next; + cur = *prev; + } + } + + core::ptr::null_mut() +} + +#[no_mangle] +extern "C" fn __deregister_frame_info(begin: *const c_void) -> *mut Object { + __deregister_frame_info_bases(begin) +} + +#[no_mangle] +unsafe extern "C" fn __deregister_frame(begin: *const c_void) { + if begin.is_null() { + return; + } + let storage = __deregister_frame_info(begin); + drop(unsafe { Box::from_raw(storage as *mut MaybeUninit) }) +} diff --git a/src/rust/vendor/unwinding/src/unwinder/frame.rs b/src/rust/vendor/unwinding/src/unwinder/frame.rs new file mode 100644 index 000000000..9ede0a12d --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/frame.rs @@ -0,0 +1,198 @@ +use gimli::{ + BaseAddresses, CfaRule, Expression, Register, RegisterRule, UnwindContext, UnwindTableRow, +}; +#[cfg(feature = "dwarf-expr")] +use gimli::{Evaluation, EvaluationResult, Location, Value}; + +use super::arch::*; +use super::find_fde::{self, FDEFinder, FDESearchResult}; +use crate::abi::PersonalityRoutine; +use crate::arch::*; +use crate::util::*; + +struct StoreOnStack; + +// gimli's MSRV doesn't allow const generics, so we need to pick a supported array size. +const fn next_value(x: usize) -> usize { + let supported = [0, 1, 2, 3, 4, 8, 16, 32, 64, 128]; + let mut i = 0; + while i < supported.len() { + if supported[i] >= x { + return supported[i]; + } + i += 1; + } + 192 +} + +impl gimli::UnwindContextStorage for StoreOnStack { + type Rules = [(Register, RegisterRule); next_value(MAX_REG_RULES)]; + type Stack = [UnwindTableRow; 2]; +} + +#[cfg(feature = "dwarf-expr")] +impl gimli::EvaluationStorage for StoreOnStack { + type Stack = [Value; 64]; + type ExpressionStack = [(R, R); 0]; + type Result = [gimli::Piece; 1]; +} + +#[derive(Debug)] +pub struct Frame { + fde_result: FDESearchResult, + row: UnwindTableRow, +} + +impl Frame { + pub fn from_context(ctx: &Context, signal: bool) -> Result, gimli::Error> { + let mut ra = ctx[Arch::RA]; + + // Reached end of stack + if ra == 0 { + return Ok(None); + } + + // RA points to the *next* instruction, so move it back 1 byte for the call instruction. + if !signal { + ra -= 1; + } + + let fde_result = match find_fde::get_finder().find_fde(ra as _) { + Some(v) => v, + None => return Ok(None), + }; + let mut unwinder = UnwindContext::<_, StoreOnStack>::new_in(); + let row = fde_result + .fde + .unwind_info_for_address( + &fde_result.eh_frame, + &fde_result.bases, + &mut unwinder, + ra as _, + )? + .clone(); + + Ok(Some(Self { fde_result, row })) + } + + #[cfg(feature = "dwarf-expr")] + fn evaluate_expression( + &self, + ctx: &Context, + expr: Expression, + ) -> Result { + let mut eval = + Evaluation::<_, StoreOnStack>::new_in(expr.0, self.fde_result.fde.cie().encoding()); + let mut result = eval.evaluate()?; + loop { + match result { + EvaluationResult::Complete => break, + EvaluationResult::RequiresMemory { address, .. } => { + let value = unsafe { (address as usize as *const usize).read_unaligned() }; + result = eval.resume_with_memory(Value::Generic(value as _))?; + } + EvaluationResult::RequiresRegister { register, .. } => { + let value = ctx[register]; + result = eval.resume_with_register(Value::Generic(value as _))?; + } + EvaluationResult::RequiresRelocatedAddress(address) => { + let value = unsafe { (address as usize as *const usize).read_unaligned() }; + result = eval.resume_with_memory(Value::Generic(value as _))?; + } + _ => unreachable!(), + } + } + + Ok( + match eval + .as_result() + .last() + .ok_or(gimli::Error::PopWithEmptyStack)? + .location + { + Location::Address { address } => address as usize, + _ => unreachable!(), + }, + ) + } + + #[cfg(not(feature = "dwarf-expr"))] + fn evaluate_expression( + &self, + _ctx: &Context, + _expr: Expression, + ) -> Result { + Err(gimli::Error::UnsupportedEvaluation) + } + + pub fn adjust_stack_for_args(&self, ctx: &mut Context) { + let size = self.row.saved_args_size(); + ctx[Arch::SP] = ctx[Arch::SP].wrapping_add(size as usize); + } + + pub fn unwind(&self, ctx: &Context) -> Result { + let row = &self.row; + let mut new_ctx = ctx.clone(); + + let cfa = match *row.cfa() { + CfaRule::RegisterAndOffset { register, offset } => { + ctx[register].wrapping_add(offset as usize) + } + CfaRule::Expression(expr) => self.evaluate_expression(ctx, expr)?, + }; + + new_ctx[Arch::SP] = cfa as _; + new_ctx[Arch::RA] = 0; + + #[warn(non_exhaustive_omitted_patterns)] + for (reg, rule) in row.registers() { + let value = match *rule { + RegisterRule::Undefined | RegisterRule::SameValue => ctx[*reg], + RegisterRule::Offset(offset) => unsafe { + *((cfa.wrapping_add(offset as usize)) as *const usize) + }, + RegisterRule::ValOffset(offset) => cfa.wrapping_add(offset as usize), + RegisterRule::Register(r) => ctx[r], + RegisterRule::Expression(expr) => { + let addr = self.evaluate_expression(ctx, expr)?; + unsafe { *(addr as *const usize) } + } + RegisterRule::ValExpression(expr) => self.evaluate_expression(ctx, expr)?, + RegisterRule::Architectural => unreachable!(), + RegisterRule::Constant(value) => value as usize, + _ => unreachable!(), + }; + new_ctx[*reg] = value; + } + + Ok(new_ctx) + } + + pub fn bases(&self) -> &BaseAddresses { + &self.fde_result.bases + } + + pub fn personality(&self) -> Option { + self.fde_result + .fde + .personality() + .map(|x| unsafe { deref_pointer(x) }) + .map(|x| unsafe { core::mem::transmute(x) }) + } + + pub fn lsda(&self) -> usize { + self.fde_result + .fde + .lsda() + .map(|x| unsafe { deref_pointer(x) }) + .unwrap_or(0) + } + + pub fn initial_address(&self) -> usize { + self.fde_result.fde.initial_address() as _ + } + + pub fn is_signal_trampoline(&self) -> bool { + self.fde_result.fde.is_signal_trampoline() + } +} diff --git a/src/rust/vendor/unwinding/src/unwinder/mod.rs b/src/rust/vendor/unwinding/src/unwinder/mod.rs new file mode 100644 index 000000000..5bcc38323 --- /dev/null +++ b/src/rust/vendor/unwinding/src/unwinder/mod.rs @@ -0,0 +1,430 @@ +mod arch; +mod find_fde; +mod frame; + +use core::ffi::c_void; +use core::ptr; +use gimli::Register; + +use crate::abi::*; +use crate::arch::*; +use crate::util::*; +use arch::*; +use find_fde::FDEFinder; +use frame::Frame; + +#[cfg(feature = "fde-custom")] +pub use find_fde::custom_eh_frame_finder; + +// Helper function to turn `save_context` which takes function pointer to a closure-taking function. +fn with_context T>(f: F) -> T { + use core::mem::ManuallyDrop; + + union Data { + f: ManuallyDrop, + t: ManuallyDrop, + } + + extern "C" fn delegate T>(ctx: &mut Context, ptr: *mut ()) { + // SAFETY: This function is called exactly once; it extracts the function, call it and + // store the return value. This function is `extern "C"` so we don't need to worry about + // unwinding past it. + unsafe { + let data = &mut *ptr.cast::>(); + let t = ManuallyDrop::take(&mut data.f)(ctx); + data.t = ManuallyDrop::new(t); + } + } + + let mut data = Data { + f: ManuallyDrop::new(f), + }; + save_context(delegate::, ptr::addr_of_mut!(data).cast()); + unsafe { ManuallyDrop::into_inner(data.t) } +} + +#[repr(C)] +pub struct UnwindException { + pub exception_class: u64, + pub exception_cleanup: Option, + private_1: Option, + private_2: usize, + private_unused: [usize; Arch::UNWIND_PRIVATE_DATA_SIZE - 2], +} + +pub struct UnwindContext<'a> { + frame: Option<&'a Frame>, + ctx: &'a mut Context, + signal: bool, +} + +#[no_mangle] +pub extern "C" fn _Unwind_GetGR(unwind_ctx: &UnwindContext<'_>, index: c_int) -> usize { + unwind_ctx.ctx[Register(index as u16)] +} + +#[no_mangle] +pub extern "C" fn _Unwind_GetCFA(unwind_ctx: &UnwindContext<'_>) -> usize { + unwind_ctx.ctx[Arch::SP] +} + +#[no_mangle] +pub extern "C" fn _Unwind_SetGR(unwind_ctx: &mut UnwindContext<'_>, index: c_int, value: usize) { + unwind_ctx.ctx[Register(index as u16)] = value; +} + +#[no_mangle] +pub extern "C" fn _Unwind_GetIP(unwind_ctx: &UnwindContext<'_>) -> usize { + unwind_ctx.ctx[Arch::RA] +} + +#[no_mangle] +pub extern "C" fn _Unwind_GetIPInfo( + unwind_ctx: &UnwindContext<'_>, + ip_before_insn: &mut c_int, +) -> usize { + *ip_before_insn = unwind_ctx.signal as _; + unwind_ctx.ctx[Arch::RA] +} + +#[no_mangle] +pub extern "C" fn _Unwind_SetIP(unwind_ctx: &mut UnwindContext<'_>, value: usize) { + unwind_ctx.ctx[Arch::RA] = value; +} + +#[no_mangle] +pub extern "C" fn _Unwind_GetLanguageSpecificData(unwind_ctx: &UnwindContext<'_>) -> *mut c_void { + unwind_ctx + .frame + .map(|f| f.lsda() as *mut c_void) + .unwrap_or(ptr::null_mut()) +} + +#[no_mangle] +pub extern "C" fn _Unwind_GetRegionStart(unwind_ctx: &UnwindContext<'_>) -> usize { + unwind_ctx.frame.map(|f| f.initial_address()).unwrap_or(0) +} + +#[no_mangle] +pub extern "C" fn _Unwind_GetTextRelBase(unwind_ctx: &UnwindContext<'_>) -> usize { + unwind_ctx + .frame + .map(|f| f.bases().eh_frame.text.unwrap() as _) + .unwrap_or(0) +} + +#[no_mangle] +pub extern "C" fn _Unwind_GetDataRelBase(unwind_ctx: &UnwindContext<'_>) -> usize { + unwind_ctx + .frame + .map(|f| f.bases().eh_frame.data.unwrap() as _) + .unwrap_or(0) +} + +#[no_mangle] +pub extern "C" fn _Unwind_FindEnclosingFunction(pc: *mut c_void) -> *mut c_void { + find_fde::get_finder() + .find_fde(pc as usize - 1) + .map(|r| r.fde.initial_address() as usize as _) + .unwrap_or(ptr::null_mut()) +} + +macro_rules! try1 { + ($e: expr) => {{ + match $e { + Ok(v) => v, + Err(_) => return UnwindReasonCode::FATAL_PHASE1_ERROR, + } + }}; +} + +macro_rules! try2 { + ($e: expr) => {{ + match $e { + Ok(v) => v, + Err(_) => return UnwindReasonCode::FATAL_PHASE2_ERROR, + } + }}; +} + +#[inline(never)] +#[no_mangle] +pub unsafe extern "C-unwind" fn _Unwind_RaiseException( + exception: *mut UnwindException, +) -> UnwindReasonCode { + with_context(|saved_ctx| { + // Phase 1: Search for handler + let mut ctx = saved_ctx.clone(); + let mut signal = false; + loop { + if let Some(frame) = try1!(Frame::from_context(&ctx, signal)) { + if let Some(personality) = frame.personality() { + let result = unsafe { + personality( + 1, + UnwindAction::SEARCH_PHASE, + (*exception).exception_class, + exception, + &mut UnwindContext { + frame: Some(&frame), + ctx: &mut ctx, + signal, + }, + ) + }; + + match result { + UnwindReasonCode::CONTINUE_UNWIND => (), + UnwindReasonCode::HANDLER_FOUND => { + break; + } + _ => return UnwindReasonCode::FATAL_PHASE1_ERROR, + } + } + + ctx = try1!(frame.unwind(&ctx)); + signal = frame.is_signal_trampoline(); + } else { + return UnwindReasonCode::END_OF_STACK; + } + } + + // Disambiguate normal frame and signal frame. + let handler_cfa = ctx[Arch::SP] - signal as usize; + unsafe { + (*exception).private_1 = None; + (*exception).private_2 = handler_cfa; + } + + let code = raise_exception_phase2(exception, saved_ctx, handler_cfa); + match code { + UnwindReasonCode::INSTALL_CONTEXT => unsafe { restore_context(saved_ctx) }, + _ => code, + } + }) +} + +fn raise_exception_phase2( + exception: *mut UnwindException, + ctx: &mut Context, + handler_cfa: usize, +) -> UnwindReasonCode { + let mut signal = false; + loop { + if let Some(frame) = try2!(Frame::from_context(ctx, signal)) { + let frame_cfa = ctx[Arch::SP] - signal as usize; + if let Some(personality) = frame.personality() { + let code = unsafe { + personality( + 1, + UnwindAction::CLEANUP_PHASE + | if frame_cfa == handler_cfa { + UnwindAction::HANDLER_FRAME + } else { + UnwindAction::empty() + }, + (*exception).exception_class, + exception, + &mut UnwindContext { + frame: Some(&frame), + ctx, + signal, + }, + ) + }; + + match code { + UnwindReasonCode::CONTINUE_UNWIND => (), + UnwindReasonCode::INSTALL_CONTEXT => { + frame.adjust_stack_for_args(ctx); + return UnwindReasonCode::INSTALL_CONTEXT; + } + _ => return UnwindReasonCode::FATAL_PHASE2_ERROR, + } + } + + *ctx = try2!(frame.unwind(ctx)); + signal = frame.is_signal_trampoline(); + } else { + return UnwindReasonCode::FATAL_PHASE2_ERROR; + } + } +} + +#[inline(never)] +#[no_mangle] +pub unsafe extern "C-unwind" fn _Unwind_ForcedUnwind( + exception: *mut UnwindException, + stop: UnwindStopFn, + stop_arg: *mut c_void, +) -> UnwindReasonCode { + with_context(|ctx| { + unsafe { + (*exception).private_1 = Some(stop); + (*exception).private_2 = stop_arg as _; + } + + let code = force_unwind_phase2(exception, ctx, stop, stop_arg); + match code { + UnwindReasonCode::INSTALL_CONTEXT => unsafe { restore_context(ctx) }, + _ => code, + } + }) +} + +fn force_unwind_phase2( + exception: *mut UnwindException, + ctx: &mut Context, + stop: UnwindStopFn, + stop_arg: *mut c_void, +) -> UnwindReasonCode { + let mut signal = false; + loop { + let frame = try2!(Frame::from_context(ctx, signal)); + + let code = unsafe { + stop( + 1, + UnwindAction::FORCE_UNWIND + | UnwindAction::END_OF_STACK + | if frame.is_none() { + UnwindAction::END_OF_STACK + } else { + UnwindAction::empty() + }, + (*exception).exception_class, + exception, + &mut UnwindContext { + frame: frame.as_ref(), + ctx, + signal, + }, + stop_arg, + ) + }; + match code { + UnwindReasonCode::NO_REASON => (), + _ => return UnwindReasonCode::FATAL_PHASE2_ERROR, + } + + if let Some(frame) = frame { + if let Some(personality) = frame.personality() { + let code = unsafe { + personality( + 1, + UnwindAction::FORCE_UNWIND | UnwindAction::CLEANUP_PHASE, + (*exception).exception_class, + exception, + &mut UnwindContext { + frame: Some(&frame), + ctx, + signal, + }, + ) + }; + + match code { + UnwindReasonCode::CONTINUE_UNWIND => (), + UnwindReasonCode::INSTALL_CONTEXT => { + frame.adjust_stack_for_args(ctx); + return UnwindReasonCode::INSTALL_CONTEXT; + } + _ => return UnwindReasonCode::FATAL_PHASE2_ERROR, + } + } + + *ctx = try2!(frame.unwind(ctx)); + signal = frame.is_signal_trampoline(); + } else { + return UnwindReasonCode::END_OF_STACK; + } + } +} + +#[inline(never)] +#[no_mangle] +pub unsafe extern "C-unwind" fn _Unwind_Resume(exception: *mut UnwindException) -> ! { + with_context(|ctx| { + let code = match unsafe { (*exception).private_1 } { + None => { + let handler_cfa = unsafe { (*exception).private_2 }; + raise_exception_phase2(exception, ctx, handler_cfa) + } + Some(stop) => { + let stop_arg = unsafe { (*exception).private_2 as _ }; + force_unwind_phase2(exception, ctx, stop, stop_arg) + } + }; + assert!(code == UnwindReasonCode::INSTALL_CONTEXT); + + unsafe { restore_context(ctx) } + }) +} + +#[inline(never)] +#[no_mangle] +pub unsafe extern "C-unwind" fn _Unwind_Resume_or_Rethrow( + exception: *mut UnwindException, +) -> UnwindReasonCode { + let stop = match unsafe { (*exception).private_1 } { + None => return unsafe { _Unwind_RaiseException(exception) }, + Some(v) => v, + }; + + with_context(|ctx| { + let stop_arg = unsafe { (*exception).private_2 as _ }; + let code = force_unwind_phase2(exception, ctx, stop, stop_arg); + assert!(code == UnwindReasonCode::INSTALL_CONTEXT); + + unsafe { restore_context(ctx) } + }) +} + +#[no_mangle] +pub unsafe extern "C" fn _Unwind_DeleteException(exception: *mut UnwindException) { + if let Some(cleanup) = unsafe { (*exception).exception_cleanup } { + unsafe { cleanup(UnwindReasonCode::FOREIGN_EXCEPTION_CAUGHT, exception) }; + } +} + +#[inline(never)] +#[no_mangle] +pub extern "C-unwind" fn _Unwind_Backtrace( + trace: UnwindTraceFn, + trace_argument: *mut c_void, +) -> UnwindReasonCode { + with_context(|ctx| { + let mut ctx = ctx.clone(); + let mut signal = false; + let mut skipping = cfg!(feature = "hide-trace"); + + loop { + let frame = try1!(Frame::from_context(&ctx, signal)); + if !skipping { + let code = trace( + &UnwindContext { + frame: frame.as_ref(), + ctx: &mut ctx, + signal, + }, + trace_argument, + ); + match code { + UnwindReasonCode::NO_REASON => (), + _ => return UnwindReasonCode::FATAL_PHASE1_ERROR, + } + } + if let Some(frame) = frame { + if skipping { + if frame.initial_address() == _Unwind_Backtrace as usize { + skipping = false; + } + } + ctx = try1!(frame.unwind(&ctx)); + signal = frame.is_signal_trampoline(); + } else { + return UnwindReasonCode::END_OF_STACK; + } + } + }) +} diff --git a/src/rust/vendor/unwinding/src/util.rs b/src/rust/vendor/unwinding/src/util.rs new file mode 100644 index 000000000..7c66e81fa --- /dev/null +++ b/src/rust/vendor/unwinding/src/util.rs @@ -0,0 +1,41 @@ +use gimli::{EndianSlice, NativeEndian, Pointer}; + +pub type StaticSlice = EndianSlice<'static, NativeEndian>; + +pub unsafe fn get_unlimited_slice<'a>(start: *const u8) -> &'a [u8] { + // Create the largest possible slice for this address. + let start = start as usize; + let end = start.saturating_add(isize::MAX as _); + let len = end - start; + unsafe { core::slice::from_raw_parts(start as *const _, len) } +} + +pub unsafe fn deref_pointer(ptr: Pointer) -> usize { + match ptr { + Pointer::Direct(x) => x as _, + Pointer::Indirect(x) => unsafe { *(x as *const _) }, + } +} + +#[cfg(feature = "libc")] +pub use libc::c_int; + +#[cfg(not(feature = "libc"))] +#[allow(non_camel_case_types)] +pub type c_int = i32; + +#[cfg(all( + any(feature = "panic", feature = "panic-handler-dummy"), + feature = "libc" +))] +pub fn abort() -> ! { + unsafe { libc::abort() }; +} + +#[cfg(all( + any(feature = "panic", feature = "panic-handler-dummy"), + not(feature = "libc") +))] +pub fn abort() -> ! { + core::intrinsics::abort(); +} diff --git a/src/rust/vendor/unwinding/tests/compile_tests.rs b/src/rust/vendor/unwinding/tests/compile_tests.rs new file mode 100644 index 000000000..26a5697da --- /dev/null +++ b/src/rust/vendor/unwinding/tests/compile_tests.rs @@ -0,0 +1,20 @@ +use std::process::Command; + +#[test] +fn main() { + let dir = env!("CARGO_MANIFEST_DIR"); + + let tests = [ + "throw_and_catch", + "catch_std_exception", + "std_catch_exception", + ]; + + for test in tests { + let status = Command::new("./check.sh") + .current_dir(format!("{dir}/test_crates/{test}")) + .status() + .unwrap(); + assert!(status.success()); + } +} diff --git a/src/rust/vendor/wasi/.cargo-checksum.json b/src/rust/vendor/wasi/.cargo-checksum.json new file mode 100644 index 000000000..a13fe2be5 --- /dev/null +++ b/src/rust/vendor/wasi/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"CODE_OF_CONDUCT.md":"a13aaaf393818bd91207c618724d3fb74944ca5161201822a84af951bcf655ef","CONTRIBUTING.md":"2c908a3e263dc35dfed131c02ff907cd72fafb2c2096e4ba9b1e0cbb7a1b76df","Cargo.toml":"7a38e6f90e220716b5b3f82c0a187dfef180db8d1d262250325a655d1b9888e6","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-Apache-2.0_WITH_LLVM-exception":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","ORG_CODE_OF_CONDUCT.md":"a62b69bf86e605ee1bcbb2f0a12ba79e4cebb6983a7b6491949750aecc4f2178","README.md":"c021f687a5a61d9c308581401e7aa4454585a30c418abdd02e3a1ef71daa035f","SECURITY.md":"4d75afb09dd28eb5982e3a1f768ee398d90204669ceef3240a16b31dcf04148a","src/lib.rs":"040651dd678b7788d7cc7a8fdc5f50f664d46bd18976bf638bcb4c827a1793d7","src/lib_generated.rs":"130977e4eaac5e9623caba3d5911616051c8b2cee926333213271a25b733a5df"},"package":"9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"} \ No newline at end of file diff --git a/src/rust/vendor/wasi/CODE_OF_CONDUCT.md b/src/rust/vendor/wasi/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..5c5ebdd25 --- /dev/null +++ b/src/rust/vendor/wasi/CODE_OF_CONDUCT.md @@ -0,0 +1,49 @@ +# Contributor Covenant Code of Conduct + +*Note*: this Code of Conduct pertains to individuals' behavior. Please also see the [Organizational Code of Conduct][OCoC]. + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the Bytecode Alliance CoC team at [report@bytecodealliance.org](mailto:report@bytecodealliance.org). The CoC team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The CoC team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the Bytecode Alliance's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[OCoC]: ORG_CODE_OF_CONDUCT.md +[homepage]: https://www.contributor-covenant.org +[version]: https://www.contributor-covenant.org/version/1/4/ diff --git a/src/rust/vendor/wasi/CONTRIBUTING.md b/src/rust/vendor/wasi/CONTRIBUTING.md new file mode 100644 index 000000000..2db6d0ddf --- /dev/null +++ b/src/rust/vendor/wasi/CONTRIBUTING.md @@ -0,0 +1,8 @@ +# Contributing to wasi-core + +wasi-core follows the same development style as Cranelift, so checkout +[Cranelift's CONTRIBUTING.md]. Of course, for wasi-core-specific issues, please +use the [wasi-core issue tracker]. + +[Cranelift's CONTRIBUTING.md]: https://github.com/CraneStation/cranelift/blob/master/CONTRIBUTING.md +[wasi-core issue tracker]: https://github.com/CraneStation/wasi-core/issues/new diff --git a/src/rust/vendor/wasi/Cargo.toml b/src/rust/vendor/wasi/Cargo.toml new file mode 100644 index 000000000..c41e35e9e --- /dev/null +++ b/src/rust/vendor/wasi/Cargo.toml @@ -0,0 +1,42 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2018" +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +authors = ["The Cranelift Project Developers"] +description = "Experimental WASI API bindings for Rust" +documentation = "https://docs.rs/wasi" +readme = "README.md" +keywords = ["webassembly", "wasm"] +categories = ["no-std", "wasm"] +license = "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT" +repository = "https://github.com/bytecodealliance/wasi" +[dependencies.compiler_builtins] +version = "0.1" +optional = true + +[dependencies.core] +version = "1.0" +optional = true +package = "rustc-std-workspace-core" + +[dependencies.rustc-std-workspace-alloc] +version = "1.0" +optional = true + +[features] +default = ["std"] +rustc-dep-of-std = ["compiler_builtins", "core", "rustc-std-workspace-alloc"] +std = [] +[badges.maintenance] +status = "experimental" diff --git a/src/rust/vendor/wasi/LICENSE-APACHE b/src/rust/vendor/wasi/LICENSE-APACHE new file mode 100644 index 000000000..16fe87b06 --- /dev/null +++ b/src/rust/vendor/wasi/LICENSE-APACHE @@ -0,0 +1,201 @@ + 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. diff --git a/src/rust/vendor/wasi/LICENSE-Apache-2.0_WITH_LLVM-exception b/src/rust/vendor/wasi/LICENSE-Apache-2.0_WITH_LLVM-exception new file mode 100644 index 000000000..f9d81955f --- /dev/null +++ b/src/rust/vendor/wasi/LICENSE-Apache-2.0_WITH_LLVM-exception @@ -0,0 +1,220 @@ + + 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. + diff --git a/src/rust/vendor/wasi/LICENSE-MIT b/src/rust/vendor/wasi/LICENSE-MIT new file mode 100644 index 000000000..31aa79387 --- /dev/null +++ b/src/rust/vendor/wasi/LICENSE-MIT @@ -0,0 +1,23 @@ +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. diff --git a/src/rust/vendor/wasi/ORG_CODE_OF_CONDUCT.md b/src/rust/vendor/wasi/ORG_CODE_OF_CONDUCT.md new file mode 100644 index 000000000..6f4fb3f53 --- /dev/null +++ b/src/rust/vendor/wasi/ORG_CODE_OF_CONDUCT.md @@ -0,0 +1,143 @@ +# Bytecode Alliance Organizational Code of Conduct (OCoC) + +*Note*: this Code of Conduct pertains to organizations' behavior. Please also see the [Individual Code of Conduct](CODE_OF_CONDUCT.md). + +## Preamble + +The Bytecode Alliance (BA) welcomes involvement from organizations, +including commercial organizations. This document is an +*organizational* code of conduct, intended particularly to provide +guidance to commercial organizations. It is distinct from the +[Individual Code of Conduct (ICoC)](CODE_OF_CONDUCT.md), and does not +replace the ICoC. This OCoC applies to any group of people acting in +concert as a BA member or as a participant in BA activities, whether +or not that group is formally incorporated in some jurisdiction. + +The code of conduct described below is not a set of rigid rules, and +we did not write it to encompass every conceivable scenario that might +arise. For example, it is theoretically possible there would be times +when asserting patents is in the best interest of the BA community as +a whole. In such instances, consult with the BA, strive for +consensus, and interpret these rules with an intent that is generous +to the community the BA serves. + +While we may revise these guidelines from time to time based on +real-world experience, overall they are based on a simple principle: + +*Bytecode Alliance members should observe the distinction between + public community functions and private functions — especially + commercial ones — and should ensure that the latter support, or at + least do not harm, the former.* + +## Guidelines + + * **Do not cause confusion about Wasm standards or interoperability.** + + Having an interoperable WebAssembly core is a high priority for + the BA, and members should strive to preserve that core. It is fine + to develop additional non-standard features or APIs, but they + should always be clearly distinguished from the core interoperable + Wasm. + + Treat the WebAssembly name and any BA-associated names with + respect, and follow BA trademark and branding guidelines. If you + distribute a customized version of software originally produced by + the BA, or if you build a product or service using BA-derived + software, use names that clearly distinguish your work from the + original. (You should still provide proper attribution to the + original, of course, wherever such attribution would normally be + given.) + + Further, do not use the WebAssembly name or BA-associated names in + other public namespaces in ways that could cause confusion, e.g., + in company names, names of commercial service offerings, domain + names, publicly-visible social media accounts or online service + accounts, etc. It may sometimes be reasonable, however, to + register such a name in a new namespace and then immediately donate + control of that account to the BA, because that would help the project + maintain its identity. + + For further guidance, see the BA Trademark and Branding Policy + [TODO: create policy, then insert link]. + + * **Do not restrict contributors.** If your company requires + employees or contractors to sign non-compete agreements, those + agreements must not prevent people from participating in the BA or + contributing to related projects. + + This does not mean that all non-compete agreements are incompatible + with this code of conduct. For example, a company may restrict an + employee's ability to solicit the company's customers. However, an + agreement must not block any form of technical or social + participation in BA activities, including but not limited to the + implementation of particular features. + + The accumulation of experience and expertise in individual persons, + who are ultimately free to direct their energy and attention as + they decide, is one of the most important drivers of progress in + open source projects. A company that limits this freedom may hinder + the success of the BA's efforts. + + * **Do not use patents as offensive weapons.** If any BA participant + prevents the adoption or development of BA technologies by + asserting its patents, that undermines the purpose of the + coalition. The collaboration fostered by the BA cannot include + members who act to undermine its work. + + * **Practice responsible disclosure** for security vulnerabilities. + Use designated, non-public reporting channels to disclose technical + vulnerabilities, and give the project a reasonable period to + respond, remediate, and patch. [TODO: optionally include the + security vulnerability reporting URL here.] + + Vulnerability reporters may patch their company's own offerings, as + long as that patching does not significantly delay the reporting of + the vulnerability. Vulnerability information should never be used + for unilateral commercial advantage. Vendors may legitimately + compete on the speed and reliability with which they deploy + security fixes, but withholding vulnerability information damages + everyone in the long run by risking harm to the BA project's + reputation and to the security of all users. + + * **Respect the letter and spirit of open source practice.** While + there is not space to list here all possible aspects of standard + open source practice, some examples will help show what we mean: + + * Abide by all applicable open source license terms. Do not engage + in copyright violation or misattribution of any kind. + + * Do not claim others' ideas or designs as your own. + + * When others engage in publicly visible work (e.g., an upcoming + demo that is coordinated in a public issue tracker), do not + unilaterally announce early releases or early demonstrations of + that work ahead of their schedule in order to secure private + advantage (such as marketplace advantage) for yourself. + + The BA reserves the right to determine what constitutes good open + source practices and to take action as it deems appropriate to + encourage, and if necessary enforce, such practices. + +## Enforcement + +Instances of organizational behavior in violation of the OCoC may +be reported by contacting the Bytecode Alliance CoC team at +[report@bytecodealliance.org](mailto:report@bytecodealliance.org). The +CoC team will review and investigate all complaints, and will respond +in a way that it deems appropriate to the circumstances. The CoC team +is obligated to maintain confidentiality with regard to the reporter of +an incident. Further details of specific enforcement policies may be +posted separately. + +When the BA deems an organization in violation of this OCoC, the BA +will, at its sole discretion, determine what action to take. The BA +will decide what type, degree, and duration of corrective action is +needed, if any, before a violating organization can be considered for +membership (if it was not already a member) or can have its membership +reinstated (if it was a member and the BA canceled its membership due +to the violation). + +In practice, the BA's first approach will be to start a conversation, +with punitive enforcement used only as a last resort. Violations +often turn out to be unintentional and swiftly correctable with all +parties acting in good faith. diff --git a/src/rust/vendor/wasi/README.md b/src/rust/vendor/wasi/README.md new file mode 100644 index 000000000..801f56a4e --- /dev/null +++ b/src/rust/vendor/wasi/README.md @@ -0,0 +1,94 @@ +
+

wasi

+ +A Bytecode Alliance project + +

+ WASI API Bindings for Rust +

+ +

+ Crates.io version + Download + docs.rs docs +

+
+ +This crate contains API bindings for [WASI](https://github.com/WebAssembly/WASI) +system calls in Rust, and currently reflects the `wasi_snapshot_preview1` +module. This crate is quite low-level and provides conceptually a "system call" +interface. In most settings, it's better to use the Rust standard library, which +has WASI support. + +The `wasi` crate is also entirely procedurally generated from the `*.witx` files +describing the WASI apis. While some conveniences are provided the bindings here +are intentionally low-level! + +# Usage + +First you can depend on this crate via `Cargo.toml`: + +```toml +[dependencies] +wasi = "0.8.0" +``` + +Next you can use the APIs in the root of the module like so: + +```rust +fn main() { + let stdout = 1; + let message = "Hello, World!\n"; + let data = [wasi::Ciovec { + buf: message.as_ptr(), + buf_len: message.len(), + }]; + wasi::fd_write(stdout, &data).unwrap(); +} +``` + +Next you can use a tool like [`cargo +wasi`](https://github.com/bytecodealliance/cargo-wasi) to compile and run your +project: + +To compile Rust projects to wasm using WASI, use the `wasm32-wasi` target, +like this: + +``` +$ cargo wasi run + Compiling wasi v0.8.0+wasi-snapshot-preview1 + Compiling wut v0.1.0 (/code) + Finished dev [unoptimized + debuginfo] target(s) in 0.34s + Running `/.cargo/bin/cargo-wasi target/wasm32-wasi/debug/wut.wasm` + Running `target/wasm32-wasi/debug/wut.wasm` +Hello, World! +``` + +# Development + +The bulk of the `wasi` crate is generated by the `witx-bindgen` tool, which lives at +`crates/witx-bindgen` and is part of the cargo workspace. + +The `src/lib_generated.rs` file can be re-generated with the following +command: + +``` +cargo run -p witx-bindgen -- crates/witx-bindgen/WASI/phases/snapshot/witx/wasi_snapshot_preview1.witx > src/lib_generated.rs +``` + +Note that this uses the WASI standard repository as a submodule. If you do not +have this submodule present in your source tree, run: +``` +git submodule update --init +``` + +# License + +This project is licensed under the Apache 2.0 license with the LLVM exception. +See [LICENSE](LICENSE) for more details. + +### Contribution + +Unless you explicitly state otherwise, any contribution intentionally submitted +for inclusion in this project by you, as defined in the Apache-2.0 license, +shall be licensed as above, without any additional terms or conditions. diff --git a/src/rust/vendor/wasi/SECURITY.md b/src/rust/vendor/wasi/SECURITY.md new file mode 100644 index 000000000..3513b9cb3 --- /dev/null +++ b/src/rust/vendor/wasi/SECURITY.md @@ -0,0 +1,29 @@ +# Security Policy + +Building secure foundations for software development is at the core of what we do in the Bytecode Alliance. Contributions of external security researchers are a vital part of that. + +## Scope + +If you believe you've found a security issue in any website, service, or software owned or operated by the Bytecode Alliance, we encourage you to notify us. + +## How to Submit a Report + +To submit a vulnerability report to the Bytecode Alliance, please contact us at [security@bytecodealliance.org](mailto:security@bytecodealliance.org). Your submission will be reviewed and validated by a member of our security team. + +## Safe Harbor + +The Bytecode Alliance supports safe harbor for security researchers who: + +* Make a good faith effort to avoid privacy violations, destruction of data, and interruption or degradation of our services. +* Only interact with accounts you own or with explicit permission of the account holder. If you do encounter Personally Identifiable Information (PII) contact us immediately, do not proceed with access, and immediately purge any local information. +* Provide us with a reasonable amount of time to resolve vulnerabilities prior to any disclosure to the public or a third-party. + +We will consider activities conducted consistent with this policy to constitute "authorized" conduct and will not pursue civil action or initiate a complaint to law enforcement. We will help to the extent we can if legal action is initiated by a third party against you. + +Please submit a report to us before engaging in conduct that may be inconsistent with or unaddressed by this policy. + +## Preferences + +* Please provide detailed reports with reproducible steps and a clearly defined impact. +* Submit one vulnerability per report. +* Social engineering (e.g. phishing, vishing, smishing) is prohibited. diff --git a/src/rust/vendor/wasi/src/lib.rs b/src/rust/vendor/wasi/src/lib.rs new file mode 100644 index 000000000..0df207b60 --- /dev/null +++ b/src/rust/vendor/wasi/src/lib.rs @@ -0,0 +1,47 @@ +//! Raw API bindings to the WebAssembly System Interface (WASI) +//! +//! This crate provides Rust API bindings to WASI APIs. All WASI APIs are +//! exported from this crate and provided with the appropriate type signatures. +//! This crate is entirely procedurally generated from the `*.witx` files that +//! describe the WASI API. +//! +//! # WASI API Version +//! +//! The WASI API is evolving over time. It is both gaining new features as well +//! as tweaking the ABI of existing features. As a result it's important to +//! understand what version of this crate you're using and how it relates to +//! the WASI version of the spec. +//! +//! The WASI specification is organized into phases where there is a snapshot +//! at any one point in time describing the current state of the specification. +//! This crate implements a particular snapshot. You can find the snapshot +//! version implemented in this crate in the build metadata of the crate +//! version number. For example something like `0.9.0+wasi-snapshot-preview1` +//! means that this crate's own personal version is 0.9.0 and it implements the +//! `wasi-snapshot-preview1` snapshot. A major release of this crate (i.e. +//! bumping the "0.9.0") is expected whenever the generated code changes +//! or a new WASI snapshot is used. +//! +//! # Crate Features +//! +//! This crate supports one feature, `std`, which implements the standard +//! `Error` trait for the exported [`Error`] type in this crate. This is +//! enabled by default but can be disabled to make the library `no_std` +//! compatible. + +#![no_std] + +mod lib_generated; +pub use lib_generated::*; + +/// Special `Dircookie` value indicating the start of a directory. +pub const DIRCOOKIE_START: Dircookie = 0; + +/// The "standard input" descriptor number. +pub const FD_STDIN: Fd = 0; + +/// The "standard output" descriptor number. +pub const FD_STDOUT: Fd = 1; + +/// The "standard error" descriptor number. +pub const FD_STDERR: Fd = 2; diff --git a/src/rust/vendor/wasi/src/lib_generated.rs b/src/rust/vendor/wasi/src/lib_generated.rs new file mode 100644 index 000000000..641528178 --- /dev/null +++ b/src/rust/vendor/wasi/src/lib_generated.rs @@ -0,0 +1,2366 @@ +// This file is automatically generated, DO NOT EDIT +// +// To regenerate this file run the `crates/witx-bindgen` command + +use core::fmt; +use core::mem::MaybeUninit; +pub type Size = usize; +pub type Filesize = u64; +pub type Timestamp = u64; +#[repr(transparent)] +#[derive(Copy, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)] +pub struct Clockid(u32); +/// The clock measuring real time. Time value zero corresponds with +/// 1970-01-01T00:00:00Z. +pub const CLOCKID_REALTIME: Clockid = Clockid(0); +/// The store-wide monotonic clock, which is defined as a clock measuring +/// real time, whose value cannot be adjusted and which cannot have negative +/// clock jumps. The epoch of this clock is undefined. The absolute time +/// value of this clock therefore has no meaning. +pub const CLOCKID_MONOTONIC: Clockid = Clockid(1); +/// The CPU-time clock associated with the current process. +pub const CLOCKID_PROCESS_CPUTIME_ID: Clockid = Clockid(2); +/// The CPU-time clock associated with the current thread. +pub const CLOCKID_THREAD_CPUTIME_ID: Clockid = Clockid(3); +impl Clockid { + pub const fn raw(&self) -> u32 { + self.0 + } + + pub fn name(&self) -> &'static str { + match self.0 { + 0 => "REALTIME", + 1 => "MONOTONIC", + 2 => "PROCESS_CPUTIME_ID", + 3 => "THREAD_CPUTIME_ID", + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } + pub fn message(&self) -> &'static str { + match self.0 { + 0 => { + "The clock measuring real time. Time value zero corresponds with +1970-01-01T00:00:00Z." + } + 1 => { + "The store-wide monotonic clock, which is defined as a clock measuring +real time, whose value cannot be adjusted and which cannot have negative +clock jumps. The epoch of this clock is undefined. The absolute time +value of this clock therefore has no meaning." + } + 2 => "The CPU-time clock associated with the current process.", + 3 => "The CPU-time clock associated with the current thread.", + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } +} +impl fmt::Debug for Clockid { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Clockid") + .field("code", &self.0) + .field("name", &self.name()) + .field("message", &self.message()) + .finish() + } +} + +#[repr(transparent)] +#[derive(Copy, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)] +pub struct Errno(u16); +/// No error occurred. System call completed successfully. +pub const ERRNO_SUCCESS: Errno = Errno(0); +/// Argument list too long. +pub const ERRNO_2BIG: Errno = Errno(1); +/// Permission denied. +pub const ERRNO_ACCES: Errno = Errno(2); +/// Address in use. +pub const ERRNO_ADDRINUSE: Errno = Errno(3); +/// Address not available. +pub const ERRNO_ADDRNOTAVAIL: Errno = Errno(4); +/// Address family not supported. +pub const ERRNO_AFNOSUPPORT: Errno = Errno(5); +/// Resource unavailable, or operation would block. +pub const ERRNO_AGAIN: Errno = Errno(6); +/// Connection already in progress. +pub const ERRNO_ALREADY: Errno = Errno(7); +/// Bad file descriptor. +pub const ERRNO_BADF: Errno = Errno(8); +/// Bad message. +pub const ERRNO_BADMSG: Errno = Errno(9); +/// Device or resource busy. +pub const ERRNO_BUSY: Errno = Errno(10); +/// Operation canceled. +pub const ERRNO_CANCELED: Errno = Errno(11); +/// No child processes. +pub const ERRNO_CHILD: Errno = Errno(12); +/// Connection aborted. +pub const ERRNO_CONNABORTED: Errno = Errno(13); +/// Connection refused. +pub const ERRNO_CONNREFUSED: Errno = Errno(14); +/// Connection reset. +pub const ERRNO_CONNRESET: Errno = Errno(15); +/// Resource deadlock would occur. +pub const ERRNO_DEADLK: Errno = Errno(16); +/// Destination address required. +pub const ERRNO_DESTADDRREQ: Errno = Errno(17); +/// Mathematics argument out of domain of function. +pub const ERRNO_DOM: Errno = Errno(18); +/// Reserved. +pub const ERRNO_DQUOT: Errno = Errno(19); +/// File exists. +pub const ERRNO_EXIST: Errno = Errno(20); +/// Bad address. +pub const ERRNO_FAULT: Errno = Errno(21); +/// File too large. +pub const ERRNO_FBIG: Errno = Errno(22); +/// Host is unreachable. +pub const ERRNO_HOSTUNREACH: Errno = Errno(23); +/// Identifier removed. +pub const ERRNO_IDRM: Errno = Errno(24); +/// Illegal byte sequence. +pub const ERRNO_ILSEQ: Errno = Errno(25); +/// Operation in progress. +pub const ERRNO_INPROGRESS: Errno = Errno(26); +/// Interrupted function. +pub const ERRNO_INTR: Errno = Errno(27); +/// Invalid argument. +pub const ERRNO_INVAL: Errno = Errno(28); +/// I/O error. +pub const ERRNO_IO: Errno = Errno(29); +/// Socket is connected. +pub const ERRNO_ISCONN: Errno = Errno(30); +/// Is a directory. +pub const ERRNO_ISDIR: Errno = Errno(31); +/// Too many levels of symbolic links. +pub const ERRNO_LOOP: Errno = Errno(32); +/// File descriptor value too large. +pub const ERRNO_MFILE: Errno = Errno(33); +/// Too many links. +pub const ERRNO_MLINK: Errno = Errno(34); +/// Message too large. +pub const ERRNO_MSGSIZE: Errno = Errno(35); +/// Reserved. +pub const ERRNO_MULTIHOP: Errno = Errno(36); +/// Filename too long. +pub const ERRNO_NAMETOOLONG: Errno = Errno(37); +/// Network is down. +pub const ERRNO_NETDOWN: Errno = Errno(38); +/// Connection aborted by network. +pub const ERRNO_NETRESET: Errno = Errno(39); +/// Network unreachable. +pub const ERRNO_NETUNREACH: Errno = Errno(40); +/// Too many files open in system. +pub const ERRNO_NFILE: Errno = Errno(41); +/// No buffer space available. +pub const ERRNO_NOBUFS: Errno = Errno(42); +/// No such device. +pub const ERRNO_NODEV: Errno = Errno(43); +/// No such file or directory. +pub const ERRNO_NOENT: Errno = Errno(44); +/// Executable file format error. +pub const ERRNO_NOEXEC: Errno = Errno(45); +/// No locks available. +pub const ERRNO_NOLCK: Errno = Errno(46); +/// Reserved. +pub const ERRNO_NOLINK: Errno = Errno(47); +/// Not enough space. +pub const ERRNO_NOMEM: Errno = Errno(48); +/// No message of the desired type. +pub const ERRNO_NOMSG: Errno = Errno(49); +/// Protocol not available. +pub const ERRNO_NOPROTOOPT: Errno = Errno(50); +/// No space left on device. +pub const ERRNO_NOSPC: Errno = Errno(51); +/// Function not supported. +pub const ERRNO_NOSYS: Errno = Errno(52); +/// The socket is not connected. +pub const ERRNO_NOTCONN: Errno = Errno(53); +/// Not a directory or a symbolic link to a directory. +pub const ERRNO_NOTDIR: Errno = Errno(54); +/// Directory not empty. +pub const ERRNO_NOTEMPTY: Errno = Errno(55); +/// State not recoverable. +pub const ERRNO_NOTRECOVERABLE: Errno = Errno(56); +/// Not a socket. +pub const ERRNO_NOTSOCK: Errno = Errno(57); +/// Not supported, or operation not supported on socket. +pub const ERRNO_NOTSUP: Errno = Errno(58); +/// Inappropriate I/O control operation. +pub const ERRNO_NOTTY: Errno = Errno(59); +/// No such device or address. +pub const ERRNO_NXIO: Errno = Errno(60); +/// Value too large to be stored in data type. +pub const ERRNO_OVERFLOW: Errno = Errno(61); +/// Previous owner died. +pub const ERRNO_OWNERDEAD: Errno = Errno(62); +/// Operation not permitted. +pub const ERRNO_PERM: Errno = Errno(63); +/// Broken pipe. +pub const ERRNO_PIPE: Errno = Errno(64); +/// Protocol error. +pub const ERRNO_PROTO: Errno = Errno(65); +/// Protocol not supported. +pub const ERRNO_PROTONOSUPPORT: Errno = Errno(66); +/// Protocol wrong type for socket. +pub const ERRNO_PROTOTYPE: Errno = Errno(67); +/// Result too large. +pub const ERRNO_RANGE: Errno = Errno(68); +/// Read-only file system. +pub const ERRNO_ROFS: Errno = Errno(69); +/// Invalid seek. +pub const ERRNO_SPIPE: Errno = Errno(70); +/// No such process. +pub const ERRNO_SRCH: Errno = Errno(71); +/// Reserved. +pub const ERRNO_STALE: Errno = Errno(72); +/// Connection timed out. +pub const ERRNO_TIMEDOUT: Errno = Errno(73); +/// Text file busy. +pub const ERRNO_TXTBSY: Errno = Errno(74); +/// Cross-device link. +pub const ERRNO_XDEV: Errno = Errno(75); +/// Extension: Capabilities insufficient. +pub const ERRNO_NOTCAPABLE: Errno = Errno(76); +impl Errno { + pub const fn raw(&self) -> u16 { + self.0 + } + + pub fn name(&self) -> &'static str { + match self.0 { + 0 => "SUCCESS", + 1 => "2BIG", + 2 => "ACCES", + 3 => "ADDRINUSE", + 4 => "ADDRNOTAVAIL", + 5 => "AFNOSUPPORT", + 6 => "AGAIN", + 7 => "ALREADY", + 8 => "BADF", + 9 => "BADMSG", + 10 => "BUSY", + 11 => "CANCELED", + 12 => "CHILD", + 13 => "CONNABORTED", + 14 => "CONNREFUSED", + 15 => "CONNRESET", + 16 => "DEADLK", + 17 => "DESTADDRREQ", + 18 => "DOM", + 19 => "DQUOT", + 20 => "EXIST", + 21 => "FAULT", + 22 => "FBIG", + 23 => "HOSTUNREACH", + 24 => "IDRM", + 25 => "ILSEQ", + 26 => "INPROGRESS", + 27 => "INTR", + 28 => "INVAL", + 29 => "IO", + 30 => "ISCONN", + 31 => "ISDIR", + 32 => "LOOP", + 33 => "MFILE", + 34 => "MLINK", + 35 => "MSGSIZE", + 36 => "MULTIHOP", + 37 => "NAMETOOLONG", + 38 => "NETDOWN", + 39 => "NETRESET", + 40 => "NETUNREACH", + 41 => "NFILE", + 42 => "NOBUFS", + 43 => "NODEV", + 44 => "NOENT", + 45 => "NOEXEC", + 46 => "NOLCK", + 47 => "NOLINK", + 48 => "NOMEM", + 49 => "NOMSG", + 50 => "NOPROTOOPT", + 51 => "NOSPC", + 52 => "NOSYS", + 53 => "NOTCONN", + 54 => "NOTDIR", + 55 => "NOTEMPTY", + 56 => "NOTRECOVERABLE", + 57 => "NOTSOCK", + 58 => "NOTSUP", + 59 => "NOTTY", + 60 => "NXIO", + 61 => "OVERFLOW", + 62 => "OWNERDEAD", + 63 => "PERM", + 64 => "PIPE", + 65 => "PROTO", + 66 => "PROTONOSUPPORT", + 67 => "PROTOTYPE", + 68 => "RANGE", + 69 => "ROFS", + 70 => "SPIPE", + 71 => "SRCH", + 72 => "STALE", + 73 => "TIMEDOUT", + 74 => "TXTBSY", + 75 => "XDEV", + 76 => "NOTCAPABLE", + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } + pub fn message(&self) -> &'static str { + match self.0 { + 0 => "No error occurred. System call completed successfully.", + 1 => "Argument list too long.", + 2 => "Permission denied.", + 3 => "Address in use.", + 4 => "Address not available.", + 5 => "Address family not supported.", + 6 => "Resource unavailable, or operation would block.", + 7 => "Connection already in progress.", + 8 => "Bad file descriptor.", + 9 => "Bad message.", + 10 => "Device or resource busy.", + 11 => "Operation canceled.", + 12 => "No child processes.", + 13 => "Connection aborted.", + 14 => "Connection refused.", + 15 => "Connection reset.", + 16 => "Resource deadlock would occur.", + 17 => "Destination address required.", + 18 => "Mathematics argument out of domain of function.", + 19 => "Reserved.", + 20 => "File exists.", + 21 => "Bad address.", + 22 => "File too large.", + 23 => "Host is unreachable.", + 24 => "Identifier removed.", + 25 => "Illegal byte sequence.", + 26 => "Operation in progress.", + 27 => "Interrupted function.", + 28 => "Invalid argument.", + 29 => "I/O error.", + 30 => "Socket is connected.", + 31 => "Is a directory.", + 32 => "Too many levels of symbolic links.", + 33 => "File descriptor value too large.", + 34 => "Too many links.", + 35 => "Message too large.", + 36 => "Reserved.", + 37 => "Filename too long.", + 38 => "Network is down.", + 39 => "Connection aborted by network.", + 40 => "Network unreachable.", + 41 => "Too many files open in system.", + 42 => "No buffer space available.", + 43 => "No such device.", + 44 => "No such file or directory.", + 45 => "Executable file format error.", + 46 => "No locks available.", + 47 => "Reserved.", + 48 => "Not enough space.", + 49 => "No message of the desired type.", + 50 => "Protocol not available.", + 51 => "No space left on device.", + 52 => "Function not supported.", + 53 => "The socket is not connected.", + 54 => "Not a directory or a symbolic link to a directory.", + 55 => "Directory not empty.", + 56 => "State not recoverable.", + 57 => "Not a socket.", + 58 => "Not supported, or operation not supported on socket.", + 59 => "Inappropriate I/O control operation.", + 60 => "No such device or address.", + 61 => "Value too large to be stored in data type.", + 62 => "Previous owner died.", + 63 => "Operation not permitted.", + 64 => "Broken pipe.", + 65 => "Protocol error.", + 66 => "Protocol not supported.", + 67 => "Protocol wrong type for socket.", + 68 => "Result too large.", + 69 => "Read-only file system.", + 70 => "Invalid seek.", + 71 => "No such process.", + 72 => "Reserved.", + 73 => "Connection timed out.", + 74 => "Text file busy.", + 75 => "Cross-device link.", + 76 => "Extension: Capabilities insufficient.", + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } +} +impl fmt::Debug for Errno { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Errno") + .field("code", &self.0) + .field("name", &self.name()) + .field("message", &self.message()) + .finish() + } +} +impl fmt::Display for Errno { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{} (error {})", self.name(), self.0) + } +} + +#[cfg(feature = "std")] +extern crate std; +#[cfg(feature = "std")] +impl std::error::Error for Errno {} + +pub type Rights = u64; +/// The right to invoke `fd_datasync`. +/// If `path_open` is set, includes the right to invoke +/// `path_open` with `fdflags::dsync`. +pub const RIGHTS_FD_DATASYNC: Rights = 1 << 0; +/// The right to invoke `fd_read` and `sock_recv`. +/// If `rights::fd_seek` is set, includes the right to invoke `fd_pread`. +pub const RIGHTS_FD_READ: Rights = 1 << 1; +/// The right to invoke `fd_seek`. This flag implies `rights::fd_tell`. +pub const RIGHTS_FD_SEEK: Rights = 1 << 2; +/// The right to invoke `fd_fdstat_set_flags`. +pub const RIGHTS_FD_FDSTAT_SET_FLAGS: Rights = 1 << 3; +/// The right to invoke `fd_sync`. +/// If `path_open` is set, includes the right to invoke +/// `path_open` with `fdflags::rsync` and `fdflags::dsync`. +pub const RIGHTS_FD_SYNC: Rights = 1 << 4; +/// The right to invoke `fd_seek` in such a way that the file offset +/// remains unaltered (i.e., `whence::cur` with offset zero), or to +/// invoke `fd_tell`. +pub const RIGHTS_FD_TELL: Rights = 1 << 5; +/// The right to invoke `fd_write` and `sock_send`. +/// If `rights::fd_seek` is set, includes the right to invoke `fd_pwrite`. +pub const RIGHTS_FD_WRITE: Rights = 1 << 6; +/// The right to invoke `fd_advise`. +pub const RIGHTS_FD_ADVISE: Rights = 1 << 7; +/// The right to invoke `fd_allocate`. +pub const RIGHTS_FD_ALLOCATE: Rights = 1 << 8; +/// The right to invoke `path_create_directory`. +pub const RIGHTS_PATH_CREATE_DIRECTORY: Rights = 1 << 9; +/// If `path_open` is set, the right to invoke `path_open` with `oflags::creat`. +pub const RIGHTS_PATH_CREATE_FILE: Rights = 1 << 10; +/// The right to invoke `path_link` with the file descriptor as the +/// source directory. +pub const RIGHTS_PATH_LINK_SOURCE: Rights = 1 << 11; +/// The right to invoke `path_link` with the file descriptor as the +/// target directory. +pub const RIGHTS_PATH_LINK_TARGET: Rights = 1 << 12; +/// The right to invoke `path_open`. +pub const RIGHTS_PATH_OPEN: Rights = 1 << 13; +/// The right to invoke `fd_readdir`. +pub const RIGHTS_FD_READDIR: Rights = 1 << 14; +/// The right to invoke `path_readlink`. +pub const RIGHTS_PATH_READLINK: Rights = 1 << 15; +/// The right to invoke `path_rename` with the file descriptor as the source directory. +pub const RIGHTS_PATH_RENAME_SOURCE: Rights = 1 << 16; +/// The right to invoke `path_rename` with the file descriptor as the target directory. +pub const RIGHTS_PATH_RENAME_TARGET: Rights = 1 << 17; +/// The right to invoke `path_filestat_get`. +pub const RIGHTS_PATH_FILESTAT_GET: Rights = 1 << 18; +/// The right to change a file's size (there is no `path_filestat_set_size`). +/// If `path_open` is set, includes the right to invoke `path_open` with `oflags::trunc`. +pub const RIGHTS_PATH_FILESTAT_SET_SIZE: Rights = 1 << 19; +/// The right to invoke `path_filestat_set_times`. +pub const RIGHTS_PATH_FILESTAT_SET_TIMES: Rights = 1 << 20; +/// The right to invoke `fd_filestat_get`. +pub const RIGHTS_FD_FILESTAT_GET: Rights = 1 << 21; +/// The right to invoke `fd_filestat_set_size`. +pub const RIGHTS_FD_FILESTAT_SET_SIZE: Rights = 1 << 22; +/// The right to invoke `fd_filestat_set_times`. +pub const RIGHTS_FD_FILESTAT_SET_TIMES: Rights = 1 << 23; +/// The right to invoke `path_symlink`. +pub const RIGHTS_PATH_SYMLINK: Rights = 1 << 24; +/// The right to invoke `path_remove_directory`. +pub const RIGHTS_PATH_REMOVE_DIRECTORY: Rights = 1 << 25; +/// The right to invoke `path_unlink_file`. +pub const RIGHTS_PATH_UNLINK_FILE: Rights = 1 << 26; +/// If `rights::fd_read` is set, includes the right to invoke `poll_oneoff` to subscribe to `eventtype::fd_read`. +/// If `rights::fd_write` is set, includes the right to invoke `poll_oneoff` to subscribe to `eventtype::fd_write`. +pub const RIGHTS_POLL_FD_READWRITE: Rights = 1 << 27; +/// The right to invoke `sock_shutdown`. +pub const RIGHTS_SOCK_SHUTDOWN: Rights = 1 << 28; +/// The right to invoke `sock_accept`. +pub const RIGHTS_SOCK_ACCEPT: Rights = 1 << 29; + +pub type Fd = u32; +#[repr(C)] +#[derive(Copy, Clone, Debug)] +pub struct Iovec { + /// The address of the buffer to be filled. + pub buf: *mut u8, + /// The length of the buffer to be filled. + pub buf_len: Size, +} +#[repr(C)] +#[derive(Copy, Clone, Debug)] +pub struct Ciovec { + /// The address of the buffer to be written. + pub buf: *const u8, + /// The length of the buffer to be written. + pub buf_len: Size, +} +pub type IovecArray<'a> = &'a [Iovec]; +pub type CiovecArray<'a> = &'a [Ciovec]; +pub type Filedelta = i64; +#[repr(transparent)] +#[derive(Copy, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)] +pub struct Whence(u8); +/// Seek relative to start-of-file. +pub const WHENCE_SET: Whence = Whence(0); +/// Seek relative to current position. +pub const WHENCE_CUR: Whence = Whence(1); +/// Seek relative to end-of-file. +pub const WHENCE_END: Whence = Whence(2); +impl Whence { + pub const fn raw(&self) -> u8 { + self.0 + } + + pub fn name(&self) -> &'static str { + match self.0 { + 0 => "SET", + 1 => "CUR", + 2 => "END", + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } + pub fn message(&self) -> &'static str { + match self.0 { + 0 => "Seek relative to start-of-file.", + 1 => "Seek relative to current position.", + 2 => "Seek relative to end-of-file.", + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } +} +impl fmt::Debug for Whence { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Whence") + .field("code", &self.0) + .field("name", &self.name()) + .field("message", &self.message()) + .finish() + } +} + +pub type Dircookie = u64; +pub type Dirnamlen = u32; +pub type Inode = u64; +#[repr(transparent)] +#[derive(Copy, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)] +pub struct Filetype(u8); +/// The type of the file descriptor or file is unknown or is different from any of the other types specified. +pub const FILETYPE_UNKNOWN: Filetype = Filetype(0); +/// The file descriptor or file refers to a block device inode. +pub const FILETYPE_BLOCK_DEVICE: Filetype = Filetype(1); +/// The file descriptor or file refers to a character device inode. +pub const FILETYPE_CHARACTER_DEVICE: Filetype = Filetype(2); +/// The file descriptor or file refers to a directory inode. +pub const FILETYPE_DIRECTORY: Filetype = Filetype(3); +/// The file descriptor or file refers to a regular file inode. +pub const FILETYPE_REGULAR_FILE: Filetype = Filetype(4); +/// The file descriptor or file refers to a datagram socket. +pub const FILETYPE_SOCKET_DGRAM: Filetype = Filetype(5); +/// The file descriptor or file refers to a byte-stream socket. +pub const FILETYPE_SOCKET_STREAM: Filetype = Filetype(6); +/// The file refers to a symbolic link inode. +pub const FILETYPE_SYMBOLIC_LINK: Filetype = Filetype(7); +impl Filetype { + pub const fn raw(&self) -> u8 { + self.0 + } + + pub fn name(&self) -> &'static str { + match self.0 { + 0 => "UNKNOWN", + 1 => "BLOCK_DEVICE", + 2 => "CHARACTER_DEVICE", + 3 => "DIRECTORY", + 4 => "REGULAR_FILE", + 5 => "SOCKET_DGRAM", + 6 => "SOCKET_STREAM", + 7 => "SYMBOLIC_LINK", + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } + pub fn message(&self) -> &'static str { + match self.0 {0 => "The type of the file descriptor or file is unknown or is different from any of the other types specified.",1 => "The file descriptor or file refers to a block device inode.",2 => "The file descriptor or file refers to a character device inode.",3 => "The file descriptor or file refers to a directory inode.",4 => "The file descriptor or file refers to a regular file inode.",5 => "The file descriptor or file refers to a datagram socket.",6 => "The file descriptor or file refers to a byte-stream socket.",7 => "The file refers to a symbolic link inode.",_ => unsafe { core::hint::unreachable_unchecked() },} + } +} +impl fmt::Debug for Filetype { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Filetype") + .field("code", &self.0) + .field("name", &self.name()) + .field("message", &self.message()) + .finish() + } +} + +#[repr(C)] +#[derive(Copy, Clone, Debug)] +pub struct Dirent { + /// The offset of the next directory entry stored in this directory. + pub d_next: Dircookie, + /// The serial number of the file referred to by this directory entry. + pub d_ino: Inode, + /// The length of the name of the directory entry. + pub d_namlen: Dirnamlen, + /// The type of the file referred to by this directory entry. + pub d_type: Filetype, +} +#[repr(transparent)] +#[derive(Copy, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)] +pub struct Advice(u8); +/// The application has no advice to give on its behavior with respect to the specified data. +pub const ADVICE_NORMAL: Advice = Advice(0); +/// The application expects to access the specified data sequentially from lower offsets to higher offsets. +pub const ADVICE_SEQUENTIAL: Advice = Advice(1); +/// The application expects to access the specified data in a random order. +pub const ADVICE_RANDOM: Advice = Advice(2); +/// The application expects to access the specified data in the near future. +pub const ADVICE_WILLNEED: Advice = Advice(3); +/// The application expects that it will not access the specified data in the near future. +pub const ADVICE_DONTNEED: Advice = Advice(4); +/// The application expects to access the specified data once and then not reuse it thereafter. +pub const ADVICE_NOREUSE: Advice = Advice(5); +impl Advice { + pub const fn raw(&self) -> u8 { + self.0 + } + + pub fn name(&self) -> &'static str { + match self.0 { + 0 => "NORMAL", + 1 => "SEQUENTIAL", + 2 => "RANDOM", + 3 => "WILLNEED", + 4 => "DONTNEED", + 5 => "NOREUSE", + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } + pub fn message(&self) -> &'static str { + match self.0 {0 => "The application has no advice to give on its behavior with respect to the specified data.",1 => "The application expects to access the specified data sequentially from lower offsets to higher offsets.",2 => "The application expects to access the specified data in a random order.",3 => "The application expects to access the specified data in the near future.",4 => "The application expects that it will not access the specified data in the near future.",5 => "The application expects to access the specified data once and then not reuse it thereafter.",_ => unsafe { core::hint::unreachable_unchecked() },} + } +} +impl fmt::Debug for Advice { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Advice") + .field("code", &self.0) + .field("name", &self.name()) + .field("message", &self.message()) + .finish() + } +} + +pub type Fdflags = u16; +/// Append mode: Data written to the file is always appended to the file's end. +pub const FDFLAGS_APPEND: Fdflags = 1 << 0; +/// Write according to synchronized I/O data integrity completion. Only the data stored in the file is synchronized. +pub const FDFLAGS_DSYNC: Fdflags = 1 << 1; +/// Non-blocking mode. +pub const FDFLAGS_NONBLOCK: Fdflags = 1 << 2; +/// Synchronized read I/O operations. +pub const FDFLAGS_RSYNC: Fdflags = 1 << 3; +/// Write according to synchronized I/O file integrity completion. In +/// addition to synchronizing the data stored in the file, the implementation +/// may also synchronously update the file's metadata. +pub const FDFLAGS_SYNC: Fdflags = 1 << 4; + +#[repr(C)] +#[derive(Copy, Clone, Debug)] +pub struct Fdstat { + /// File type. + pub fs_filetype: Filetype, + /// File descriptor flags. + pub fs_flags: Fdflags, + /// Rights that apply to this file descriptor. + pub fs_rights_base: Rights, + /// Maximum set of rights that may be installed on new file descriptors that + /// are created through this file descriptor, e.g., through `path_open`. + pub fs_rights_inheriting: Rights, +} +pub type Device = u64; +pub type Fstflags = u16; +/// Adjust the last data access timestamp to the value stored in `filestat::atim`. +pub const FSTFLAGS_ATIM: Fstflags = 1 << 0; +/// Adjust the last data access timestamp to the time of clock `clockid::realtime`. +pub const FSTFLAGS_ATIM_NOW: Fstflags = 1 << 1; +/// Adjust the last data modification timestamp to the value stored in `filestat::mtim`. +pub const FSTFLAGS_MTIM: Fstflags = 1 << 2; +/// Adjust the last data modification timestamp to the time of clock `clockid::realtime`. +pub const FSTFLAGS_MTIM_NOW: Fstflags = 1 << 3; + +pub type Lookupflags = u32; +/// As long as the resolved path corresponds to a symbolic link, it is expanded. +pub const LOOKUPFLAGS_SYMLINK_FOLLOW: Lookupflags = 1 << 0; + +pub type Oflags = u16; +/// Create file if it does not exist. +pub const OFLAGS_CREAT: Oflags = 1 << 0; +/// Fail if not a directory. +pub const OFLAGS_DIRECTORY: Oflags = 1 << 1; +/// Fail if file already exists. +pub const OFLAGS_EXCL: Oflags = 1 << 2; +/// Truncate file to size 0. +pub const OFLAGS_TRUNC: Oflags = 1 << 3; + +pub type Linkcount = u64; +#[repr(C)] +#[derive(Copy, Clone, Debug)] +pub struct Filestat { + /// Device ID of device containing the file. + pub dev: Device, + /// File serial number. + pub ino: Inode, + /// File type. + pub filetype: Filetype, + /// Number of hard links to the file. + pub nlink: Linkcount, + /// For regular files, the file size in bytes. For symbolic links, the length in bytes of the pathname contained in the symbolic link. + pub size: Filesize, + /// Last data access timestamp. + pub atim: Timestamp, + /// Last data modification timestamp. + pub mtim: Timestamp, + /// Last file status change timestamp. + pub ctim: Timestamp, +} +pub type Userdata = u64; +#[repr(transparent)] +#[derive(Copy, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)] +pub struct Eventtype(u8); +/// The time value of clock `subscription_clock::id` has +/// reached timestamp `subscription_clock::timeout`. +pub const EVENTTYPE_CLOCK: Eventtype = Eventtype(0); +/// File descriptor `subscription_fd_readwrite::file_descriptor` has data +/// available for reading. This event always triggers for regular files. +pub const EVENTTYPE_FD_READ: Eventtype = Eventtype(1); +/// File descriptor `subscription_fd_readwrite::file_descriptor` has capacity +/// available for writing. This event always triggers for regular files. +pub const EVENTTYPE_FD_WRITE: Eventtype = Eventtype(2); +impl Eventtype { + pub const fn raw(&self) -> u8 { + self.0 + } + + pub fn name(&self) -> &'static str { + match self.0 { + 0 => "CLOCK", + 1 => "FD_READ", + 2 => "FD_WRITE", + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } + pub fn message(&self) -> &'static str { + match self.0 { + 0 => { + "The time value of clock `subscription_clock::id` has +reached timestamp `subscription_clock::timeout`." + } + 1 => { + "File descriptor `subscription_fd_readwrite::file_descriptor` has data +available for reading. This event always triggers for regular files." + } + 2 => { + "File descriptor `subscription_fd_readwrite::file_descriptor` has capacity +available for writing. This event always triggers for regular files." + } + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } +} +impl fmt::Debug for Eventtype { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Eventtype") + .field("code", &self.0) + .field("name", &self.name()) + .field("message", &self.message()) + .finish() + } +} + +pub type Eventrwflags = u16; +/// The peer of this socket has closed or disconnected. +pub const EVENTRWFLAGS_FD_READWRITE_HANGUP: Eventrwflags = 1 << 0; + +#[repr(C)] +#[derive(Copy, Clone, Debug)] +pub struct EventFdReadwrite { + /// The number of bytes available for reading or writing. + pub nbytes: Filesize, + /// The state of the file descriptor. + pub flags: Eventrwflags, +} +#[repr(C)] +#[derive(Copy, Clone, Debug)] +pub struct Event { + /// User-provided value that got attached to `subscription::userdata`. + pub userdata: Userdata, + /// If non-zero, an error that occurred while processing the subscription request. + pub error: Errno, + /// The type of event that occured + pub type_: Eventtype, + /// The contents of the event, if it is an `eventtype::fd_read` or + /// `eventtype::fd_write`. `eventtype::clock` events ignore this field. + pub fd_readwrite: EventFdReadwrite, +} +pub type Subclockflags = u16; +/// If set, treat the timestamp provided in +/// `subscription_clock::timeout` as an absolute timestamp of clock +/// `subscription_clock::id`. If clear, treat the timestamp +/// provided in `subscription_clock::timeout` relative to the +/// current time value of clock `subscription_clock::id`. +pub const SUBCLOCKFLAGS_SUBSCRIPTION_CLOCK_ABSTIME: Subclockflags = 1 << 0; + +#[repr(C)] +#[derive(Copy, Clone, Debug)] +pub struct SubscriptionClock { + /// The clock against which to compare the timestamp. + pub id: Clockid, + /// The absolute or relative timestamp. + pub timeout: Timestamp, + /// The amount of time that the implementation may wait additionally + /// to coalesce with other events. + pub precision: Timestamp, + /// Flags specifying whether the timeout is absolute or relative + pub flags: Subclockflags, +} +#[repr(C)] +#[derive(Copy, Clone, Debug)] +pub struct SubscriptionFdReadwrite { + /// The file descriptor on which to wait for it to become ready for reading or writing. + pub file_descriptor: Fd, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union SubscriptionUU { + pub clock: SubscriptionClock, + pub fd_read: SubscriptionFdReadwrite, + pub fd_write: SubscriptionFdReadwrite, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SubscriptionU { + pub tag: u8, + pub u: SubscriptionUU, +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub struct Subscription { + /// User-provided value that is attached to the subscription in the + /// implementation and returned through `event::userdata`. + pub userdata: Userdata, + /// The type of the event to which to subscribe, and its contents + pub u: SubscriptionU, +} +pub type Exitcode = u32; +#[repr(transparent)] +#[derive(Copy, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)] +pub struct Signal(u8); +/// No signal. Note that POSIX has special semantics for `kill(pid, 0)`, +/// so this value is reserved. +pub const SIGNAL_NONE: Signal = Signal(0); +/// Hangup. +/// Action: Terminates the process. +pub const SIGNAL_HUP: Signal = Signal(1); +/// Terminate interrupt signal. +/// Action: Terminates the process. +pub const SIGNAL_INT: Signal = Signal(2); +/// Terminal quit signal. +/// Action: Terminates the process. +pub const SIGNAL_QUIT: Signal = Signal(3); +/// Illegal instruction. +/// Action: Terminates the process. +pub const SIGNAL_ILL: Signal = Signal(4); +/// Trace/breakpoint trap. +/// Action: Terminates the process. +pub const SIGNAL_TRAP: Signal = Signal(5); +/// Process abort signal. +/// Action: Terminates the process. +pub const SIGNAL_ABRT: Signal = Signal(6); +/// Access to an undefined portion of a memory object. +/// Action: Terminates the process. +pub const SIGNAL_BUS: Signal = Signal(7); +/// Erroneous arithmetic operation. +/// Action: Terminates the process. +pub const SIGNAL_FPE: Signal = Signal(8); +/// Kill. +/// Action: Terminates the process. +pub const SIGNAL_KILL: Signal = Signal(9); +/// User-defined signal 1. +/// Action: Terminates the process. +pub const SIGNAL_USR1: Signal = Signal(10); +/// Invalid memory reference. +/// Action: Terminates the process. +pub const SIGNAL_SEGV: Signal = Signal(11); +/// User-defined signal 2. +/// Action: Terminates the process. +pub const SIGNAL_USR2: Signal = Signal(12); +/// Write on a pipe with no one to read it. +/// Action: Ignored. +pub const SIGNAL_PIPE: Signal = Signal(13); +/// Alarm clock. +/// Action: Terminates the process. +pub const SIGNAL_ALRM: Signal = Signal(14); +/// Termination signal. +/// Action: Terminates the process. +pub const SIGNAL_TERM: Signal = Signal(15); +/// Child process terminated, stopped, or continued. +/// Action: Ignored. +pub const SIGNAL_CHLD: Signal = Signal(16); +/// Continue executing, if stopped. +/// Action: Continues executing, if stopped. +pub const SIGNAL_CONT: Signal = Signal(17); +/// Stop executing. +/// Action: Stops executing. +pub const SIGNAL_STOP: Signal = Signal(18); +/// Terminal stop signal. +/// Action: Stops executing. +pub const SIGNAL_TSTP: Signal = Signal(19); +/// Background process attempting read. +/// Action: Stops executing. +pub const SIGNAL_TTIN: Signal = Signal(20); +/// Background process attempting write. +/// Action: Stops executing. +pub const SIGNAL_TTOU: Signal = Signal(21); +/// High bandwidth data is available at a socket. +/// Action: Ignored. +pub const SIGNAL_URG: Signal = Signal(22); +/// CPU time limit exceeded. +/// Action: Terminates the process. +pub const SIGNAL_XCPU: Signal = Signal(23); +/// File size limit exceeded. +/// Action: Terminates the process. +pub const SIGNAL_XFSZ: Signal = Signal(24); +/// Virtual timer expired. +/// Action: Terminates the process. +pub const SIGNAL_VTALRM: Signal = Signal(25); +/// Profiling timer expired. +/// Action: Terminates the process. +pub const SIGNAL_PROF: Signal = Signal(26); +/// Window changed. +/// Action: Ignored. +pub const SIGNAL_WINCH: Signal = Signal(27); +/// I/O possible. +/// Action: Terminates the process. +pub const SIGNAL_POLL: Signal = Signal(28); +/// Power failure. +/// Action: Terminates the process. +pub const SIGNAL_PWR: Signal = Signal(29); +/// Bad system call. +/// Action: Terminates the process. +pub const SIGNAL_SYS: Signal = Signal(30); +impl Signal { + pub const fn raw(&self) -> u8 { + self.0 + } + + pub fn name(&self) -> &'static str { + match self.0 { + 0 => "NONE", + 1 => "HUP", + 2 => "INT", + 3 => "QUIT", + 4 => "ILL", + 5 => "TRAP", + 6 => "ABRT", + 7 => "BUS", + 8 => "FPE", + 9 => "KILL", + 10 => "USR1", + 11 => "SEGV", + 12 => "USR2", + 13 => "PIPE", + 14 => "ALRM", + 15 => "TERM", + 16 => "CHLD", + 17 => "CONT", + 18 => "STOP", + 19 => "TSTP", + 20 => "TTIN", + 21 => "TTOU", + 22 => "URG", + 23 => "XCPU", + 24 => "XFSZ", + 25 => "VTALRM", + 26 => "PROF", + 27 => "WINCH", + 28 => "POLL", + 29 => "PWR", + 30 => "SYS", + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } + pub fn message(&self) -> &'static str { + match self.0 { + 0 => { + "No signal. Note that POSIX has special semantics for `kill(pid, 0)`, +so this value is reserved." + } + 1 => { + "Hangup. +Action: Terminates the process." + } + 2 => { + "Terminate interrupt signal. +Action: Terminates the process." + } + 3 => { + "Terminal quit signal. +Action: Terminates the process." + } + 4 => { + "Illegal instruction. +Action: Terminates the process." + } + 5 => { + "Trace/breakpoint trap. +Action: Terminates the process." + } + 6 => { + "Process abort signal. +Action: Terminates the process." + } + 7 => { + "Access to an undefined portion of a memory object. +Action: Terminates the process." + } + 8 => { + "Erroneous arithmetic operation. +Action: Terminates the process." + } + 9 => { + "Kill. +Action: Terminates the process." + } + 10 => { + "User-defined signal 1. +Action: Terminates the process." + } + 11 => { + "Invalid memory reference. +Action: Terminates the process." + } + 12 => { + "User-defined signal 2. +Action: Terminates the process." + } + 13 => { + "Write on a pipe with no one to read it. +Action: Ignored." + } + 14 => { + "Alarm clock. +Action: Terminates the process." + } + 15 => { + "Termination signal. +Action: Terminates the process." + } + 16 => { + "Child process terminated, stopped, or continued. +Action: Ignored." + } + 17 => { + "Continue executing, if stopped. +Action: Continues executing, if stopped." + } + 18 => { + "Stop executing. +Action: Stops executing." + } + 19 => { + "Terminal stop signal. +Action: Stops executing." + } + 20 => { + "Background process attempting read. +Action: Stops executing." + } + 21 => { + "Background process attempting write. +Action: Stops executing." + } + 22 => { + "High bandwidth data is available at a socket. +Action: Ignored." + } + 23 => { + "CPU time limit exceeded. +Action: Terminates the process." + } + 24 => { + "File size limit exceeded. +Action: Terminates the process." + } + 25 => { + "Virtual timer expired. +Action: Terminates the process." + } + 26 => { + "Profiling timer expired. +Action: Terminates the process." + } + 27 => { + "Window changed. +Action: Ignored." + } + 28 => { + "I/O possible. +Action: Terminates the process." + } + 29 => { + "Power failure. +Action: Terminates the process." + } + 30 => { + "Bad system call. +Action: Terminates the process." + } + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } +} +impl fmt::Debug for Signal { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Signal") + .field("code", &self.0) + .field("name", &self.name()) + .field("message", &self.message()) + .finish() + } +} + +pub type Riflags = u16; +/// Returns the message without removing it from the socket's receive queue. +pub const RIFLAGS_RECV_PEEK: Riflags = 1 << 0; +/// On byte-stream sockets, block until the full amount of data can be returned. +pub const RIFLAGS_RECV_WAITALL: Riflags = 1 << 1; + +pub type Roflags = u16; +/// Returned by `sock_recv`: Message data has been truncated. +pub const ROFLAGS_RECV_DATA_TRUNCATED: Roflags = 1 << 0; + +pub type Siflags = u16; +pub type Sdflags = u8; +/// Disables further receive operations. +pub const SDFLAGS_RD: Sdflags = 1 << 0; +/// Disables further send operations. +pub const SDFLAGS_WR: Sdflags = 1 << 1; + +#[repr(transparent)] +#[derive(Copy, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)] +pub struct Preopentype(u8); +/// A pre-opened directory. +pub const PREOPENTYPE_DIR: Preopentype = Preopentype(0); +impl Preopentype { + pub const fn raw(&self) -> u8 { + self.0 + } + + pub fn name(&self) -> &'static str { + match self.0 { + 0 => "DIR", + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } + pub fn message(&self) -> &'static str { + match self.0 { + 0 => "A pre-opened directory.", + _ => unsafe { core::hint::unreachable_unchecked() }, + } + } +} +impl fmt::Debug for Preopentype { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Preopentype") + .field("code", &self.0) + .field("name", &self.name()) + .field("message", &self.message()) + .finish() + } +} + +#[repr(C)] +#[derive(Copy, Clone, Debug)] +pub struct PrestatDir { + /// The length of the directory name for use with `fd_prestat_dir_name`. + pub pr_name_len: Size, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union PrestatU { + pub dir: PrestatDir, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct Prestat { + pub tag: u8, + pub u: PrestatU, +} + +/// Read command-line argument data. +/// The size of the array should match that returned by `args_sizes_get`. +/// Each argument is expected to be `\0` terminated. +pub unsafe fn args_get(argv: *mut *mut u8, argv_buf: *mut u8) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::args_get(argv as i32, argv_buf as i32); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Return command-line argument data sizes. +/// +/// ## Return +/// +/// Returns the number of arguments and the size of the argument string +/// data, or an error. +pub unsafe fn args_sizes_get() -> Result<(Size, Size), Errno> { + let mut rp0 = MaybeUninit::::uninit(); + let mut rp1 = MaybeUninit::::uninit(); + let ret = + wasi_snapshot_preview1::args_sizes_get(rp0.as_mut_ptr() as i32, rp1.as_mut_ptr() as i32); + match ret { + 0 => Ok(( + core::ptr::read(rp0.as_mut_ptr() as i32 as *const Size), + core::ptr::read(rp1.as_mut_ptr() as i32 as *const Size), + )), + _ => Err(Errno(ret as u16)), + } +} + +/// Read environment variable data. +/// The sizes of the buffers should match that returned by `environ_sizes_get`. +/// Key/value pairs are expected to be joined with `=`s, and terminated with `\0`s. +pub unsafe fn environ_get(environ: *mut *mut u8, environ_buf: *mut u8) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::environ_get(environ as i32, environ_buf as i32); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Return environment variable data sizes. +/// +/// ## Return +/// +/// Returns the number of environment variable arguments and the size of the +/// environment variable data. +pub unsafe fn environ_sizes_get() -> Result<(Size, Size), Errno> { + let mut rp0 = MaybeUninit::::uninit(); + let mut rp1 = MaybeUninit::::uninit(); + let ret = + wasi_snapshot_preview1::environ_sizes_get(rp0.as_mut_ptr() as i32, rp1.as_mut_ptr() as i32); + match ret { + 0 => Ok(( + core::ptr::read(rp0.as_mut_ptr() as i32 as *const Size), + core::ptr::read(rp1.as_mut_ptr() as i32 as *const Size), + )), + _ => Err(Errno(ret as u16)), + } +} + +/// Return the resolution of a clock. +/// Implementations are required to provide a non-zero value for supported clocks. For unsupported clocks, +/// return `errno::inval`. +/// Note: This is similar to `clock_getres` in POSIX. +/// +/// ## Parameters +/// +/// * `id` - The clock for which to return the resolution. +/// +/// ## Return +/// +/// The resolution of the clock, or an error if one happened. +pub unsafe fn clock_res_get(id: Clockid) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::clock_res_get(id.0 as i32, rp0.as_mut_ptr() as i32); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Timestamp)), + _ => Err(Errno(ret as u16)), + } +} + +/// Return the time value of a clock. +/// Note: This is similar to `clock_gettime` in POSIX. +/// +/// ## Parameters +/// +/// * `id` - The clock for which to return the time. +/// * `precision` - The maximum lag (exclusive) that the returned time value may have, compared to its actual value. +/// +/// ## Return +/// +/// The time value of the clock. +pub unsafe fn clock_time_get(id: Clockid, precision: Timestamp) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::clock_time_get( + id.0 as i32, + precision as i64, + rp0.as_mut_ptr() as i32, + ); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Timestamp)), + _ => Err(Errno(ret as u16)), + } +} + +/// Provide file advisory information on a file descriptor. +/// Note: This is similar to `posix_fadvise` in POSIX. +/// +/// ## Parameters +/// +/// * `offset` - The offset within the file to which the advisory applies. +/// * `len` - The length of the region to which the advisory applies. +/// * `advice` - The advice. +pub unsafe fn fd_advise( + fd: Fd, + offset: Filesize, + len: Filesize, + advice: Advice, +) -> Result<(), Errno> { + let ret = + wasi_snapshot_preview1::fd_advise(fd as i32, offset as i64, len as i64, advice.0 as i32); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Force the allocation of space in a file. +/// Note: This is similar to `posix_fallocate` in POSIX. +/// +/// ## Parameters +/// +/// * `offset` - The offset at which to start the allocation. +/// * `len` - The length of the area that is allocated. +pub unsafe fn fd_allocate(fd: Fd, offset: Filesize, len: Filesize) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::fd_allocate(fd as i32, offset as i64, len as i64); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Close a file descriptor. +/// Note: This is similar to `close` in POSIX. +pub unsafe fn fd_close(fd: Fd) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::fd_close(fd as i32); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Synchronize the data of a file to disk. +/// Note: This is similar to `fdatasync` in POSIX. +pub unsafe fn fd_datasync(fd: Fd) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::fd_datasync(fd as i32); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Get the attributes of a file descriptor. +/// Note: This returns similar flags to `fsync(fd, F_GETFL)` in POSIX, as well as additional fields. +/// +/// ## Return +/// +/// The buffer where the file descriptor's attributes are stored. +pub unsafe fn fd_fdstat_get(fd: Fd) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::fd_fdstat_get(fd as i32, rp0.as_mut_ptr() as i32); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Fdstat)), + _ => Err(Errno(ret as u16)), + } +} + +/// Adjust the flags associated with a file descriptor. +/// Note: This is similar to `fcntl(fd, F_SETFL, flags)` in POSIX. +/// +/// ## Parameters +/// +/// * `flags` - The desired values of the file descriptor flags. +pub unsafe fn fd_fdstat_set_flags(fd: Fd, flags: Fdflags) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::fd_fdstat_set_flags(fd as i32, flags as i32); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Adjust the rights associated with a file descriptor. +/// This can only be used to remove rights, and returns `errno::notcapable` if called in a way that would attempt to add rights +/// +/// ## Parameters +/// +/// * `fs_rights_base` - The desired rights of the file descriptor. +pub unsafe fn fd_fdstat_set_rights( + fd: Fd, + fs_rights_base: Rights, + fs_rights_inheriting: Rights, +) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::fd_fdstat_set_rights( + fd as i32, + fs_rights_base as i64, + fs_rights_inheriting as i64, + ); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Return the attributes of an open file. +/// +/// ## Return +/// +/// The buffer where the file's attributes are stored. +pub unsafe fn fd_filestat_get(fd: Fd) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::fd_filestat_get(fd as i32, rp0.as_mut_ptr() as i32); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Filestat)), + _ => Err(Errno(ret as u16)), + } +} + +/// Adjust the size of an open file. If this increases the file's size, the extra bytes are filled with zeros. +/// Note: This is similar to `ftruncate` in POSIX. +/// +/// ## Parameters +/// +/// * `size` - The desired file size. +pub unsafe fn fd_filestat_set_size(fd: Fd, size: Filesize) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::fd_filestat_set_size(fd as i32, size as i64); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Adjust the timestamps of an open file or directory. +/// Note: This is similar to `futimens` in POSIX. +/// +/// ## Parameters +/// +/// * `atim` - The desired values of the data access timestamp. +/// * `mtim` - The desired values of the data modification timestamp. +/// * `fst_flags` - A bitmask indicating which timestamps to adjust. +pub unsafe fn fd_filestat_set_times( + fd: Fd, + atim: Timestamp, + mtim: Timestamp, + fst_flags: Fstflags, +) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::fd_filestat_set_times( + fd as i32, + atim as i64, + mtim as i64, + fst_flags as i32, + ); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Read from a file descriptor, without using and updating the file descriptor's offset. +/// Note: This is similar to `preadv` in POSIX. +/// +/// ## Parameters +/// +/// * `iovs` - List of scatter/gather vectors in which to store data. +/// * `offset` - The offset within the file at which to read. +/// +/// ## Return +/// +/// The number of bytes read. +pub unsafe fn fd_pread(fd: Fd, iovs: IovecArray<'_>, offset: Filesize) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::fd_pread( + fd as i32, + iovs.as_ptr() as i32, + iovs.len() as i32, + offset as i64, + rp0.as_mut_ptr() as i32, + ); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Size)), + _ => Err(Errno(ret as u16)), + } +} + +/// Return a description of the given preopened file descriptor. +/// +/// ## Return +/// +/// The buffer where the description is stored. +pub unsafe fn fd_prestat_get(fd: Fd) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::fd_prestat_get(fd as i32, rp0.as_mut_ptr() as i32); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Prestat)), + _ => Err(Errno(ret as u16)), + } +} + +/// Return a description of the given preopened file descriptor. +/// +/// ## Parameters +/// +/// * `path` - A buffer into which to write the preopened directory name. +pub unsafe fn fd_prestat_dir_name(fd: Fd, path: *mut u8, path_len: Size) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::fd_prestat_dir_name(fd as i32, path as i32, path_len as i32); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Write to a file descriptor, without using and updating the file descriptor's offset. +/// Note: This is similar to `pwritev` in POSIX. +/// +/// ## Parameters +/// +/// * `iovs` - List of scatter/gather vectors from which to retrieve data. +/// * `offset` - The offset within the file at which to write. +/// +/// ## Return +/// +/// The number of bytes written. +pub unsafe fn fd_pwrite(fd: Fd, iovs: CiovecArray<'_>, offset: Filesize) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::fd_pwrite( + fd as i32, + iovs.as_ptr() as i32, + iovs.len() as i32, + offset as i64, + rp0.as_mut_ptr() as i32, + ); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Size)), + _ => Err(Errno(ret as u16)), + } +} + +/// Read from a file descriptor. +/// Note: This is similar to `readv` in POSIX. +/// +/// ## Parameters +/// +/// * `iovs` - List of scatter/gather vectors to which to store data. +/// +/// ## Return +/// +/// The number of bytes read. +pub unsafe fn fd_read(fd: Fd, iovs: IovecArray<'_>) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::fd_read( + fd as i32, + iovs.as_ptr() as i32, + iovs.len() as i32, + rp0.as_mut_ptr() as i32, + ); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Size)), + _ => Err(Errno(ret as u16)), + } +} + +/// Read directory entries from a directory. +/// When successful, the contents of the output buffer consist of a sequence of +/// directory entries. Each directory entry consists of a `dirent` object, +/// followed by `dirent::d_namlen` bytes holding the name of the directory +/// entry. +/// This function fills the output buffer as much as possible, potentially +/// truncating the last directory entry. This allows the caller to grow its +/// read buffer size in case it's too small to fit a single large directory +/// entry, or skip the oversized directory entry. +/// +/// ## Parameters +/// +/// * `buf` - The buffer where directory entries are stored +/// * `cookie` - The location within the directory to start reading +/// +/// ## Return +/// +/// The number of bytes stored in the read buffer. If less than the size of the read buffer, the end of the directory has been reached. +pub unsafe fn fd_readdir( + fd: Fd, + buf: *mut u8, + buf_len: Size, + cookie: Dircookie, +) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::fd_readdir( + fd as i32, + buf as i32, + buf_len as i32, + cookie as i64, + rp0.as_mut_ptr() as i32, + ); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Size)), + _ => Err(Errno(ret as u16)), + } +} + +/// Atomically replace a file descriptor by renumbering another file descriptor. +/// Due to the strong focus on thread safety, this environment does not provide +/// a mechanism to duplicate or renumber a file descriptor to an arbitrary +/// number, like `dup2()`. This would be prone to race conditions, as an actual +/// file descriptor with the same number could be allocated by a different +/// thread at the same time. +/// This function provides a way to atomically renumber file descriptors, which +/// would disappear if `dup2()` were to be removed entirely. +/// +/// ## Parameters +/// +/// * `to` - The file descriptor to overwrite. +pub unsafe fn fd_renumber(fd: Fd, to: Fd) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::fd_renumber(fd as i32, to as i32); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Move the offset of a file descriptor. +/// Note: This is similar to `lseek` in POSIX. +/// +/// ## Parameters +/// +/// * `offset` - The number of bytes to move. +/// * `whence` - The base from which the offset is relative. +/// +/// ## Return +/// +/// The new offset of the file descriptor, relative to the start of the file. +pub unsafe fn fd_seek(fd: Fd, offset: Filedelta, whence: Whence) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::fd_seek( + fd as i32, + offset, + whence.0 as i32, + rp0.as_mut_ptr() as i32, + ); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Filesize)), + _ => Err(Errno(ret as u16)), + } +} + +/// Synchronize the data and metadata of a file to disk. +/// Note: This is similar to `fsync` in POSIX. +pub unsafe fn fd_sync(fd: Fd) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::fd_sync(fd as i32); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Return the current offset of a file descriptor. +/// Note: This is similar to `lseek(fd, 0, SEEK_CUR)` in POSIX. +/// +/// ## Return +/// +/// The current offset of the file descriptor, relative to the start of the file. +pub unsafe fn fd_tell(fd: Fd) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::fd_tell(fd as i32, rp0.as_mut_ptr() as i32); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Filesize)), + _ => Err(Errno(ret as u16)), + } +} + +/// Write to a file descriptor. +/// Note: This is similar to `writev` in POSIX. +/// +/// ## Parameters +/// +/// * `iovs` - List of scatter/gather vectors from which to retrieve data. +pub unsafe fn fd_write(fd: Fd, iovs: CiovecArray<'_>) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::fd_write( + fd as i32, + iovs.as_ptr() as i32, + iovs.len() as i32, + rp0.as_mut_ptr() as i32, + ); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Size)), + _ => Err(Errno(ret as u16)), + } +} + +/// Create a directory. +/// Note: This is similar to `mkdirat` in POSIX. +/// +/// ## Parameters +/// +/// * `path` - The path at which to create the directory. +pub unsafe fn path_create_directory(fd: Fd, path: &str) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::path_create_directory( + fd as i32, + path.as_ptr() as i32, + path.len() as i32, + ); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Return the attributes of a file or directory. +/// Note: This is similar to `stat` in POSIX. +/// +/// ## Parameters +/// +/// * `flags` - Flags determining the method of how the path is resolved. +/// * `path` - The path of the file or directory to inspect. +/// +/// ## Return +/// +/// The buffer where the file's attributes are stored. +pub unsafe fn path_filestat_get(fd: Fd, flags: Lookupflags, path: &str) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::path_filestat_get( + fd as i32, + flags as i32, + path.as_ptr() as i32, + path.len() as i32, + rp0.as_mut_ptr() as i32, + ); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Filestat)), + _ => Err(Errno(ret as u16)), + } +} + +/// Adjust the timestamps of a file or directory. +/// Note: This is similar to `utimensat` in POSIX. +/// +/// ## Parameters +/// +/// * `flags` - Flags determining the method of how the path is resolved. +/// * `path` - The path of the file or directory to operate on. +/// * `atim` - The desired values of the data access timestamp. +/// * `mtim` - The desired values of the data modification timestamp. +/// * `fst_flags` - A bitmask indicating which timestamps to adjust. +pub unsafe fn path_filestat_set_times( + fd: Fd, + flags: Lookupflags, + path: &str, + atim: Timestamp, + mtim: Timestamp, + fst_flags: Fstflags, +) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::path_filestat_set_times( + fd as i32, + flags as i32, + path.as_ptr() as i32, + path.len() as i32, + atim as i64, + mtim as i64, + fst_flags as i32, + ); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Create a hard link. +/// Note: This is similar to `linkat` in POSIX. +/// +/// ## Parameters +/// +/// * `old_flags` - Flags determining the method of how the path is resolved. +/// * `old_path` - The source path from which to link. +/// * `new_fd` - The working directory at which the resolution of the new path starts. +/// * `new_path` - The destination path at which to create the hard link. +pub unsafe fn path_link( + old_fd: Fd, + old_flags: Lookupflags, + old_path: &str, + new_fd: Fd, + new_path: &str, +) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::path_link( + old_fd as i32, + old_flags as i32, + old_path.as_ptr() as i32, + old_path.len() as i32, + new_fd as i32, + new_path.as_ptr() as i32, + new_path.len() as i32, + ); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Open a file or directory. +/// The returned file descriptor is not guaranteed to be the lowest-numbered +/// file descriptor not currently open; it is randomized to prevent +/// applications from depending on making assumptions about indexes, since this +/// is error-prone in multi-threaded contexts. The returned file descriptor is +/// guaranteed to be less than 2**31. +/// Note: This is similar to `openat` in POSIX. +/// +/// ## Parameters +/// +/// * `dirflags` - Flags determining the method of how the path is resolved. +/// * `path` - The relative path of the file or directory to open, relative to the +/// `path_open::fd` directory. +/// * `oflags` - The method by which to open the file. +/// * `fs_rights_base` - The initial rights of the newly created file descriptor. The +/// implementation is allowed to return a file descriptor with fewer rights +/// than specified, if and only if those rights do not apply to the type of +/// file being opened. +/// The *base* rights are rights that will apply to operations using the file +/// descriptor itself, while the *inheriting* rights are rights that apply to +/// file descriptors derived from it. +/// +/// ## Return +/// +/// The file descriptor of the file that has been opened. +pub unsafe fn path_open( + fd: Fd, + dirflags: Lookupflags, + path: &str, + oflags: Oflags, + fs_rights_base: Rights, + fs_rights_inheriting: Rights, + fdflags: Fdflags, +) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::path_open( + fd as i32, + dirflags as i32, + path.as_ptr() as i32, + path.len() as i32, + oflags as i32, + fs_rights_base as i64, + fs_rights_inheriting as i64, + fdflags as i32, + rp0.as_mut_ptr() as i32, + ); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Fd)), + _ => Err(Errno(ret as u16)), + } +} + +/// Read the contents of a symbolic link. +/// Note: This is similar to `readlinkat` in POSIX. +/// +/// ## Parameters +/// +/// * `path` - The path of the symbolic link from which to read. +/// * `buf` - The buffer to which to write the contents of the symbolic link. +/// +/// ## Return +/// +/// The number of bytes placed in the buffer. +pub unsafe fn path_readlink( + fd: Fd, + path: &str, + buf: *mut u8, + buf_len: Size, +) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::path_readlink( + fd as i32, + path.as_ptr() as i32, + path.len() as i32, + buf as i32, + buf_len as i32, + rp0.as_mut_ptr() as i32, + ); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Size)), + _ => Err(Errno(ret as u16)), + } +} + +/// Remove a directory. +/// Return `errno::notempty` if the directory is not empty. +/// Note: This is similar to `unlinkat(fd, path, AT_REMOVEDIR)` in POSIX. +/// +/// ## Parameters +/// +/// * `path` - The path to a directory to remove. +pub unsafe fn path_remove_directory(fd: Fd, path: &str) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::path_remove_directory( + fd as i32, + path.as_ptr() as i32, + path.len() as i32, + ); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Rename a file or directory. +/// Note: This is similar to `renameat` in POSIX. +/// +/// ## Parameters +/// +/// * `old_path` - The source path of the file or directory to rename. +/// * `new_fd` - The working directory at which the resolution of the new path starts. +/// * `new_path` - The destination path to which to rename the file or directory. +pub unsafe fn path_rename(fd: Fd, old_path: &str, new_fd: Fd, new_path: &str) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::path_rename( + fd as i32, + old_path.as_ptr() as i32, + old_path.len() as i32, + new_fd as i32, + new_path.as_ptr() as i32, + new_path.len() as i32, + ); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Create a symbolic link. +/// Note: This is similar to `symlinkat` in POSIX. +/// +/// ## Parameters +/// +/// * `old_path` - The contents of the symbolic link. +/// * `new_path` - The destination path at which to create the symbolic link. +pub unsafe fn path_symlink(old_path: &str, fd: Fd, new_path: &str) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::path_symlink( + old_path.as_ptr() as i32, + old_path.len() as i32, + fd as i32, + new_path.as_ptr() as i32, + new_path.len() as i32, + ); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Unlink a file. +/// Return `errno::isdir` if the path refers to a directory. +/// Note: This is similar to `unlinkat(fd, path, 0)` in POSIX. +/// +/// ## Parameters +/// +/// * `path` - The path to a file to unlink. +pub unsafe fn path_unlink_file(fd: Fd, path: &str) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::path_unlink_file( + fd as i32, + path.as_ptr() as i32, + path.len() as i32, + ); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Concurrently poll for the occurrence of a set of events. +/// +/// ## Parameters +/// +/// * `in_` - The events to which to subscribe. +/// * `out` - The events that have occurred. +/// * `nsubscriptions` - Both the number of subscriptions and events. +/// +/// ## Return +/// +/// The number of events stored. +pub unsafe fn poll_oneoff( + in_: *const Subscription, + out: *mut Event, + nsubscriptions: Size, +) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::poll_oneoff( + in_ as i32, + out as i32, + nsubscriptions as i32, + rp0.as_mut_ptr() as i32, + ); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Size)), + _ => Err(Errno(ret as u16)), + } +} + +/// Terminate the process normally. An exit code of 0 indicates successful +/// termination of the program. The meanings of other values is dependent on +/// the environment. +/// +/// ## Parameters +/// +/// * `rval` - The exit code returned by the process. +pub unsafe fn proc_exit(rval: Exitcode) { + wasi_snapshot_preview1::proc_exit(rval as i32); +} + +/// Send a signal to the process of the calling thread. +/// Note: This is similar to `raise` in POSIX. +/// +/// ## Parameters +/// +/// * `sig` - The signal condition to trigger. +pub unsafe fn proc_raise(sig: Signal) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::proc_raise(sig.0 as i32); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Temporarily yield execution of the calling thread. +/// Note: This is similar to `sched_yield` in POSIX. +pub unsafe fn sched_yield() -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::sched_yield(); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Write high-quality random data into a buffer. +/// This function blocks when the implementation is unable to immediately +/// provide sufficient high-quality random data. +/// This function may execute slowly, so when large mounts of random data are +/// required, it's advisable to use this function to seed a pseudo-random +/// number generator, rather than to provide the random data directly. +/// +/// ## Parameters +/// +/// * `buf` - The buffer to fill with random data. +pub unsafe fn random_get(buf: *mut u8, buf_len: Size) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::random_get(buf as i32, buf_len as i32); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +/// Accept a new incoming connection. +/// Note: This is similar to `accept` in POSIX. +/// +/// ## Parameters +/// +/// * `fd` - The listening socket. +/// * `flags` - The desired values of the file descriptor flags. +/// +/// ## Return +/// +/// New socket connection +pub unsafe fn sock_accept(fd: Fd, flags: Fdflags) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::sock_accept(fd as i32, flags as i32, rp0.as_mut_ptr() as i32); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Fd)), + _ => Err(Errno(ret as u16)), + } +} + +/// Receive a message from a socket. +/// Note: This is similar to `recv` in POSIX, though it also supports reading +/// the data into multiple buffers in the manner of `readv`. +/// +/// ## Parameters +/// +/// * `ri_data` - List of scatter/gather vectors to which to store data. +/// * `ri_flags` - Message flags. +/// +/// ## Return +/// +/// Number of bytes stored in ri_data and message flags. +pub unsafe fn sock_recv( + fd: Fd, + ri_data: IovecArray<'_>, + ri_flags: Riflags, +) -> Result<(Size, Roflags), Errno> { + let mut rp0 = MaybeUninit::::uninit(); + let mut rp1 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::sock_recv( + fd as i32, + ri_data.as_ptr() as i32, + ri_data.len() as i32, + ri_flags as i32, + rp0.as_mut_ptr() as i32, + rp1.as_mut_ptr() as i32, + ); + match ret { + 0 => Ok(( + core::ptr::read(rp0.as_mut_ptr() as i32 as *const Size), + core::ptr::read(rp1.as_mut_ptr() as i32 as *const Roflags), + )), + _ => Err(Errno(ret as u16)), + } +} + +/// Send a message on a socket. +/// Note: This is similar to `send` in POSIX, though it also supports writing +/// the data from multiple buffers in the manner of `writev`. +/// +/// ## Parameters +/// +/// * `si_data` - List of scatter/gather vectors to which to retrieve data +/// * `si_flags` - Message flags. +/// +/// ## Return +/// +/// Number of bytes transmitted. +pub unsafe fn sock_send( + fd: Fd, + si_data: CiovecArray<'_>, + si_flags: Siflags, +) -> Result { + let mut rp0 = MaybeUninit::::uninit(); + let ret = wasi_snapshot_preview1::sock_send( + fd as i32, + si_data.as_ptr() as i32, + si_data.len() as i32, + si_flags as i32, + rp0.as_mut_ptr() as i32, + ); + match ret { + 0 => Ok(core::ptr::read(rp0.as_mut_ptr() as i32 as *const Size)), + _ => Err(Errno(ret as u16)), + } +} + +/// Shut down socket send and receive channels. +/// Note: This is similar to `shutdown` in POSIX. +/// +/// ## Parameters +/// +/// * `how` - Which channels on the socket to shut down. +pub unsafe fn sock_shutdown(fd: Fd, how: Sdflags) -> Result<(), Errno> { + let ret = wasi_snapshot_preview1::sock_shutdown(fd as i32, how as i32); + match ret { + 0 => Ok(()), + _ => Err(Errno(ret as u16)), + } +} + +pub mod wasi_snapshot_preview1 { + #[link(wasm_import_module = "wasi_snapshot_preview1")] + extern "C" { + /// Read command-line argument data. + /// The size of the array should match that returned by `args_sizes_get`. + /// Each argument is expected to be `\0` terminated. + pub fn args_get(arg0: i32, arg1: i32) -> i32; + /// Return command-line argument data sizes. + pub fn args_sizes_get(arg0: i32, arg1: i32) -> i32; + /// Read environment variable data. + /// The sizes of the buffers should match that returned by `environ_sizes_get`. + /// Key/value pairs are expected to be joined with `=`s, and terminated with `\0`s. + pub fn environ_get(arg0: i32, arg1: i32) -> i32; + /// Return environment variable data sizes. + pub fn environ_sizes_get(arg0: i32, arg1: i32) -> i32; + /// Return the resolution of a clock. + /// Implementations are required to provide a non-zero value for supported clocks. For unsupported clocks, + /// return `errno::inval`. + /// Note: This is similar to `clock_getres` in POSIX. + pub fn clock_res_get(arg0: i32, arg1: i32) -> i32; + /// Return the time value of a clock. + /// Note: This is similar to `clock_gettime` in POSIX. + pub fn clock_time_get(arg0: i32, arg1: i64, arg2: i32) -> i32; + /// Provide file advisory information on a file descriptor. + /// Note: This is similar to `posix_fadvise` in POSIX. + pub fn fd_advise(arg0: i32, arg1: i64, arg2: i64, arg3: i32) -> i32; + /// Force the allocation of space in a file. + /// Note: This is similar to `posix_fallocate` in POSIX. + pub fn fd_allocate(arg0: i32, arg1: i64, arg2: i64) -> i32; + /// Close a file descriptor. + /// Note: This is similar to `close` in POSIX. + pub fn fd_close(arg0: i32) -> i32; + /// Synchronize the data of a file to disk. + /// Note: This is similar to `fdatasync` in POSIX. + pub fn fd_datasync(arg0: i32) -> i32; + /// Get the attributes of a file descriptor. + /// Note: This returns similar flags to `fsync(fd, F_GETFL)` in POSIX, as well as additional fields. + pub fn fd_fdstat_get(arg0: i32, arg1: i32) -> i32; + /// Adjust the flags associated with a file descriptor. + /// Note: This is similar to `fcntl(fd, F_SETFL, flags)` in POSIX. + pub fn fd_fdstat_set_flags(arg0: i32, arg1: i32) -> i32; + /// Adjust the rights associated with a file descriptor. + /// This can only be used to remove rights, and returns `errno::notcapable` if called in a way that would attempt to add rights + pub fn fd_fdstat_set_rights(arg0: i32, arg1: i64, arg2: i64) -> i32; + /// Return the attributes of an open file. + pub fn fd_filestat_get(arg0: i32, arg1: i32) -> i32; + /// Adjust the size of an open file. If this increases the file's size, the extra bytes are filled with zeros. + /// Note: This is similar to `ftruncate` in POSIX. + pub fn fd_filestat_set_size(arg0: i32, arg1: i64) -> i32; + /// Adjust the timestamps of an open file or directory. + /// Note: This is similar to `futimens` in POSIX. + pub fn fd_filestat_set_times(arg0: i32, arg1: i64, arg2: i64, arg3: i32) -> i32; + /// Read from a file descriptor, without using and updating the file descriptor's offset. + /// Note: This is similar to `preadv` in POSIX. + pub fn fd_pread(arg0: i32, arg1: i32, arg2: i32, arg3: i64, arg4: i32) -> i32; + /// Return a description of the given preopened file descriptor. + pub fn fd_prestat_get(arg0: i32, arg1: i32) -> i32; + /// Return a description of the given preopened file descriptor. + pub fn fd_prestat_dir_name(arg0: i32, arg1: i32, arg2: i32) -> i32; + /// Write to a file descriptor, without using and updating the file descriptor's offset. + /// Note: This is similar to `pwritev` in POSIX. + pub fn fd_pwrite(arg0: i32, arg1: i32, arg2: i32, arg3: i64, arg4: i32) -> i32; + /// Read from a file descriptor. + /// Note: This is similar to `readv` in POSIX. + pub fn fd_read(arg0: i32, arg1: i32, arg2: i32, arg3: i32) -> i32; + /// Read directory entries from a directory. + /// When successful, the contents of the output buffer consist of a sequence of + /// directory entries. Each directory entry consists of a `dirent` object, + /// followed by `dirent::d_namlen` bytes holding the name of the directory + /// entry. + /// This function fills the output buffer as much as possible, potentially + /// truncating the last directory entry. This allows the caller to grow its + /// read buffer size in case it's too small to fit a single large directory + /// entry, or skip the oversized directory entry. + pub fn fd_readdir(arg0: i32, arg1: i32, arg2: i32, arg3: i64, arg4: i32) -> i32; + /// Atomically replace a file descriptor by renumbering another file descriptor. + /// Due to the strong focus on thread safety, this environment does not provide + /// a mechanism to duplicate or renumber a file descriptor to an arbitrary + /// number, like `dup2()`. This would be prone to race conditions, as an actual + /// file descriptor with the same number could be allocated by a different + /// thread at the same time. + /// This function provides a way to atomically renumber file descriptors, which + /// would disappear if `dup2()` were to be removed entirely. + pub fn fd_renumber(arg0: i32, arg1: i32) -> i32; + /// Move the offset of a file descriptor. + /// Note: This is similar to `lseek` in POSIX. + pub fn fd_seek(arg0: i32, arg1: i64, arg2: i32, arg3: i32) -> i32; + /// Synchronize the data and metadata of a file to disk. + /// Note: This is similar to `fsync` in POSIX. + pub fn fd_sync(arg0: i32) -> i32; + /// Return the current offset of a file descriptor. + /// Note: This is similar to `lseek(fd, 0, SEEK_CUR)` in POSIX. + pub fn fd_tell(arg0: i32, arg1: i32) -> i32; + /// Write to a file descriptor. + /// Note: This is similar to `writev` in POSIX. + pub fn fd_write(arg0: i32, arg1: i32, arg2: i32, arg3: i32) -> i32; + /// Create a directory. + /// Note: This is similar to `mkdirat` in POSIX. + pub fn path_create_directory(arg0: i32, arg1: i32, arg2: i32) -> i32; + /// Return the attributes of a file or directory. + /// Note: This is similar to `stat` in POSIX. + pub fn path_filestat_get(arg0: i32, arg1: i32, arg2: i32, arg3: i32, arg4: i32) -> i32; + /// Adjust the timestamps of a file or directory. + /// Note: This is similar to `utimensat` in POSIX. + pub fn path_filestat_set_times( + arg0: i32, + arg1: i32, + arg2: i32, + arg3: i32, + arg4: i64, + arg5: i64, + arg6: i32, + ) -> i32; + /// Create a hard link. + /// Note: This is similar to `linkat` in POSIX. + pub fn path_link( + arg0: i32, + arg1: i32, + arg2: i32, + arg3: i32, + arg4: i32, + arg5: i32, + arg6: i32, + ) -> i32; + /// Open a file or directory. + /// The returned file descriptor is not guaranteed to be the lowest-numbered + /// file descriptor not currently open; it is randomized to prevent + /// applications from depending on making assumptions about indexes, since this + /// is error-prone in multi-threaded contexts. The returned file descriptor is + /// guaranteed to be less than 2**31. + /// Note: This is similar to `openat` in POSIX. + pub fn path_open( + arg0: i32, + arg1: i32, + arg2: i32, + arg3: i32, + arg4: i32, + arg5: i64, + arg6: i64, + arg7: i32, + arg8: i32, + ) -> i32; + /// Read the contents of a symbolic link. + /// Note: This is similar to `readlinkat` in POSIX. + pub fn path_readlink( + arg0: i32, + arg1: i32, + arg2: i32, + arg3: i32, + arg4: i32, + arg5: i32, + ) -> i32; + /// Remove a directory. + /// Return `errno::notempty` if the directory is not empty. + /// Note: This is similar to `unlinkat(fd, path, AT_REMOVEDIR)` in POSIX. + pub fn path_remove_directory(arg0: i32, arg1: i32, arg2: i32) -> i32; + /// Rename a file or directory. + /// Note: This is similar to `renameat` in POSIX. + pub fn path_rename(arg0: i32, arg1: i32, arg2: i32, arg3: i32, arg4: i32, arg5: i32) + -> i32; + /// Create a symbolic link. + /// Note: This is similar to `symlinkat` in POSIX. + pub fn path_symlink(arg0: i32, arg1: i32, arg2: i32, arg3: i32, arg4: i32) -> i32; + /// Unlink a file. + /// Return `errno::isdir` if the path refers to a directory. + /// Note: This is similar to `unlinkat(fd, path, 0)` in POSIX. + pub fn path_unlink_file(arg0: i32, arg1: i32, arg2: i32) -> i32; + /// Concurrently poll for the occurrence of a set of events. + pub fn poll_oneoff(arg0: i32, arg1: i32, arg2: i32, arg3: i32) -> i32; + /// Terminate the process normally. An exit code of 0 indicates successful + /// termination of the program. The meanings of other values is dependent on + /// the environment. + pub fn proc_exit(arg0: i32) -> !; + /// Send a signal to the process of the calling thread. + /// Note: This is similar to `raise` in POSIX. + pub fn proc_raise(arg0: i32) -> i32; + /// Temporarily yield execution of the calling thread. + /// Note: This is similar to `sched_yield` in POSIX. + pub fn sched_yield() -> i32; + /// Write high-quality random data into a buffer. + /// This function blocks when the implementation is unable to immediately + /// provide sufficient high-quality random data. + /// This function may execute slowly, so when large mounts of random data are + /// required, it's advisable to use this function to seed a pseudo-random + /// number generator, rather than to provide the random data directly. + pub fn random_get(arg0: i32, arg1: i32) -> i32; + /// Accept a new incoming connection. + /// Note: This is similar to `accept` in POSIX. + pub fn sock_accept(arg0: i32, arg1: i32, arg2: i32) -> i32; + /// Receive a message from a socket. + /// Note: This is similar to `recv` in POSIX, though it also supports reading + /// the data into multiple buffers in the manner of `readv`. + pub fn sock_recv(arg0: i32, arg1: i32, arg2: i32, arg3: i32, arg4: i32, arg5: i32) -> i32; + /// Send a message on a socket. + /// Note: This is similar to `send` in POSIX, though it also supports writing + /// the data from multiple buffers in the manner of `writev`. + pub fn sock_send(arg0: i32, arg1: i32, arg2: i32, arg3: i32, arg4: i32) -> i32; + /// Shut down socket send and receive channels. + /// Note: This is similar to `shutdown` in POSIX. + pub fn sock_shutdown(arg0: i32, arg1: i32) -> i32; + } +} diff --git a/src/rust/vendor/windows-sys/.cargo-checksum.json b/src/rust/vendor/windows-sys/.cargo-checksum.json new file mode 100644 index 000000000..b6420f965 --- /dev/null +++ b/src/rust/vendor/windows-sys/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"ff53899cc9a441f18f66fd21c4784716a0aab5020a21cba5764ac8ee1e1f34cd","license-apache-2.0":"c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b","license-mit":"c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383","readme.md":"3bcfa95b17c7748ff6139e7482ebad2d24645ac3606e4b4f88318c72122d1386","src/Windows/Wdk/Foundation/mod.rs":"20b32a858e9053cf60501c1bf73e9e73429b559a0ead1d0f99c18cf5c7f87c62","src/Windows/Wdk/Graphics/Direct3D/mod.rs":"b491612762294e97e9618771a7e11adaff190a3df3c5a1494da47de3f2e55bda","src/Windows/Wdk/Graphics/mod.rs":"d69902b8e241ff56d3cac2a648b40946d999dee0c21d8e54e5b471d612a10373","src/Windows/Wdk/Storage/FileSystem/Minifilters/mod.rs":"355133683c937771170226d4dc8917792397fffef5fa96a6032f8b05bd3656c6","src/Windows/Wdk/Storage/FileSystem/mod.rs":"baf35fbdc604cfc7caca64a1b7d71fc1cfc7188cf3991eee46258b43e0f60984","src/Windows/Wdk/Storage/mod.rs":"b393a8f908458c172fe5eaac195789f9719e0a5d7a9cb6dc980dbdb8bd198a44","src/Windows/Wdk/System/IO/mod.rs":"5395da986f92e7a8aee4b7796f1fa23a33024807f592d0f517e6e41799249073","src/Windows/Wdk/System/OfflineRegistry/mod.rs":"c1766ae9cc54a51c63596f4f6eb9d916b8a36218871d72e7c8a33d5aa8007b19","src/Windows/Wdk/System/Registry/mod.rs":"599fbaec01766b0a165c90c484affbcfd882f92d2705666c2737d09ce0efb4ba","src/Windows/Wdk/System/SystemInformation/mod.rs":"be972dfea89c1b8bd86947535f0e47644703db97d94542f2f0915ca738be8de3","src/Windows/Wdk/System/SystemServices/mod.rs":"90ccad952368d2b69ffdf7b08a89d9be1bc91eba9b419cf3588e87ac212c7eb7","src/Windows/Wdk/System/Threading/mod.rs":"0bf570e60e23bb281f2b6ed5ff3127666a46fd3b214247f61bc7f46557c092da","src/Windows/Wdk/System/mod.rs":"0f83083d4a2c6fce7307ef3fc4f6091eab211614da07a3d49bbfe9558f881b9f","src/Windows/Wdk/mod.rs":"d1f4517f7544f2d83935da1cdd3e03e4f0d58ddc76998c5886de142b717fa465","src/Windows/Win32/Data/HtmlHelp/mod.rs":"e7e6fdccea3ad91cda27ec6698c99df6fc01d1489042e65afa3f53d5db5f8cab","src/Windows/Win32/Data/RightsManagement/mod.rs":"aba7db25a328ff884a14d8bfd988dc58a5ff4ef35f40839779f22a2ebe76cb57","src/Windows/Win32/Data/mod.rs":"bf6a79c22d6cafc75f44a7bfc72c816e479a17987064b7adfaa3ec2750f01e41","src/Windows/Win32/Devices/AllJoyn/mod.rs":"02babd5b386a1472f2319f0101314ee0912895b1699d2abc7ea75488f2bd10db","src/Windows/Win32/Devices/BiometricFramework/mod.rs":"d024c6786852af281eba3eab483b3591147f14faf7c32ab0732304f6a90ea93b","src/Windows/Win32/Devices/Bluetooth/mod.rs":"d7b988c92870a9c5bed800025d8b5392e5c2533e19ee38d074b612aa6a064f0c","src/Windows/Win32/Devices/Communication/mod.rs":"a6949a741e3f3eb5d1e0b3a403b5755c59736249eb2c169cf7580c0c05336db4","src/Windows/Win32/Devices/DeviceAndDriverInstallation/mod.rs":"36b76cb25dac4381126c2d13b7b449083eea1511a3f10ef4a12843b1c14a23a9","src/Windows/Win32/Devices/DeviceQuery/mod.rs":"cd220d5ffeb7f540d539f55a23dffa11913b5c60ed21bc263dfb7957b6f342fe","src/Windows/Win32/Devices/Display/mod.rs":"4a256453c780ae2c5ae5c13212334daab42e659c559f72d9bbf24a5e7fa53bc8","src/Windows/Win32/Devices/Enumeration/Pnp/mod.rs":"88efec18d6dc9dd4ececc24b0ed62d829bead8e78ee069ecb420756cf6db8b69","src/Windows/Win32/Devices/Enumeration/mod.rs":"bcb6ce6da58560617f5faa1eeb2adeab4c5160eb4e86da6f9fc05b38c557c4e7","src/Windows/Win32/Devices/Fax/mod.rs":"235cc2691da29c401c168bd9a618f0e9004c754d157adbf09df60a7e9df732d2","src/Windows/Win32/Devices/HumanInterfaceDevice/mod.rs":"13291bbd8971833a93552add6917c60eec9461e55b7723cc32ebc863bb773361","src/Windows/Win32/Devices/PortableDevices/mod.rs":"183b9f9f3978ca10c9b38cfefe15ebe99034488883c526019ae48656001d1df6","src/Windows/Win32/Devices/Properties/mod.rs":"3a453aae0c83ef10b5c29fc136c7f1b86163e8167767f7326e1745dd78c3a2d4","src/Windows/Win32/Devices/Pwm/mod.rs":"c8a5d4566e51b614bb2e8bcdd0ce2650fea5e147160af4dae800ea054897e207","src/Windows/Win32/Devices/Sensors/mod.rs":"9e2411c07e1b3be2e283b9023793703c625c156acf978f476045ad484a2dbae6","src/Windows/Win32/Devices/SerialCommunication/mod.rs":"960a3ab21f2ac344a95dad9a79cfbc64e0bc67cbdec168f62d1cfd8741fccce4","src/Windows/Win32/Devices/Tapi/mod.rs":"d603565057b5964c9808d3a8e36a5093be1c04e3fb7bc9293139a510ceeac0b2","src/Windows/Win32/Devices/Usb/mod.rs":"cdf192649ab39b9ba76805b420bc93f8b8f1ea4c40fcece02c1f4e2c3eff24a5","src/Windows/Win32/Devices/WebServicesOnDevices/mod.rs":"c793c7a26a9ccd75e790ce361cbe65b3bbc418a6d4eb386a59af09bc361a008c","src/Windows/Win32/Devices/mod.rs":"48fec1cc37dcf54ac7c2838bd3a2b62ea3c5fd26fed08f27cc8aa511c19cbbe8","src/Windows/Win32/Foundation/mod.rs":"ee8378fd7a513d263aca8d5d441625965c746658f5a595f571d82e7a6cf71b36","src/Windows/Win32/Gaming/mod.rs":"de10172a298f1ec41c0bed43e828c7f8049142adc66faaf99103beb7dc0d54e8","src/Windows/Win32/Globalization/mod.rs":"232b0887d68c4b573b4bb3d39e95bc27da3897b930cb1eff3ad8da60d5d342e5","src/Windows/Win32/Graphics/Dwm/mod.rs":"2c0c64f25df323385c877c768263a1e69063aa7817530b825f28d34d15a39a7c","src/Windows/Win32/Graphics/Gdi/mod.rs":"7541447de1a074b92c93d003fdf2897a04f279127a36d69ab0e4ab09ea8dae49","src/Windows/Win32/Graphics/GdiPlus/mod.rs":"13460005d472709cf33b4b143889eae4c057ddff920d23591d9b2c4defb2081d","src/Windows/Win32/Graphics/Hlsl/mod.rs":"f0fa2ad8f50faa1e9ca1e3183c5ab8c10359e254c781237f32afae931d475bb6","src/Windows/Win32/Graphics/OpenGL/mod.rs":"813403eb3eeea3da519b0ecfd4cbf630b2e85a0cc0730221ec3d40bd0e279ba0","src/Windows/Win32/Graphics/Printing/PrintTicket/mod.rs":"a7c5bfe6011003ed5247aa0544b21139fcf204df2c50714b324a28ea869468bc","src/Windows/Win32/Graphics/Printing/mod.rs":"0022861c3801ae72ea99f9641737e3ad556de90aed87b009b8d8061c03dd5315","src/Windows/Win32/Graphics/mod.rs":"b553dc21e2ca071ff6e215e882d22088a8ddc7dd029bb1bff8b655649e913a52","src/Windows/Win32/Management/MobileDeviceManagementRegistration/mod.rs":"70b13306d1a000e8ce7a70a714f33df6b1ef296d66c86945440641809ce906d3","src/Windows/Win32/Management/mod.rs":"4deebf9977e6b947f904b3333a5bf63538bf30f879af29c9212433e93b53817a","src/Windows/Win32/Media/Audio/mod.rs":"e844e42702f51310d5c2e60fd896ee0ee24a1f78f2adb8a06405fe69e1802365","src/Windows/Win32/Media/DxMediaObjects/mod.rs":"b09cb6e430fd9b94c39d137f76fc60d6880921a1aec9fcea613d27d8fae84fac","src/Windows/Win32/Media/KernelStreaming/mod.rs":"1b707e8b3615be48e4e0daad48b42fb78d6e7f0b99e3d2670ba1ec6965cd08b6","src/Windows/Win32/Media/Multimedia/mod.rs":"1276ebad2ed99b04e372cffd1a9ed66f64b901b022d8b38a502622be7aee0bc4","src/Windows/Win32/Media/Streaming/mod.rs":"bf38a5cfaa87724f7a759568cb4bcbf74ea5e29f8c1c1bb1f531a551bbf16bbb","src/Windows/Win32/Media/WindowsMediaFormat/mod.rs":"ed7253ea6a7a3d239e062849d5e37d9910f86e6c403be2223fa156826045c5e1","src/Windows/Win32/Media/mod.rs":"66744d3f4ee3c78f123178b27e9bfc490409f99b9c6d4e7dddfad84963acd028","src/Windows/Win32/NetworkManagement/Dhcp/mod.rs":"e17a7a0354748584d8fac6c3aba986b929b41b08d8e77fe55b95c034351be24d","src/Windows/Win32/NetworkManagement/Dns/mod.rs":"b4c2610b0abd259ff039ead42dc20a29126c6b9af1b66bac9fc180977447af45","src/Windows/Win32/NetworkManagement/InternetConnectionWizard/mod.rs":"f18f3c55cd887bcec82c56c2503bfb85576066553a377aa1380e34d6dbb374c8","src/Windows/Win32/NetworkManagement/IpHelper/mod.rs":"eb0be9b2a840b83779427fca04b94e39070b84b8be6cfe30ad96cd5b7cca4580","src/Windows/Win32/NetworkManagement/Multicast/mod.rs":"4a0ac5e8dbf9ae5bc3af47ad7b30b8f1f621c5247b0e0277de9f09f4eaf18056","src/Windows/Win32/NetworkManagement/Ndis/mod.rs":"f5b83dead2d196ea9a4b92b524f467a7d4d8f620c7219aef903ac098b5a05716","src/Windows/Win32/NetworkManagement/NetBios/mod.rs":"7487268b11ea45c93d1b998db8fe7f0750d1a18d1682f59f22cf0273d7e505fa","src/Windows/Win32/NetworkManagement/NetManagement/mod.rs":"fa4490af37605395433f34e0d2e9670772d45ad736e6822dd75942f82cb8de7c","src/Windows/Win32/NetworkManagement/NetShell/mod.rs":"937b4a1dff5225891cfcf5bf0ae09d7ace9912d532fa0f6cbcca36575139c060","src/Windows/Win32/NetworkManagement/NetworkDiagnosticsFramework/mod.rs":"2b4582e3aa60d4fed836fdc5c63dd2a0fc1fb7ac548bcbf36c72f965b5d72a45","src/Windows/Win32/NetworkManagement/P2P/mod.rs":"5b90f05db45b73cb274bcb0c865984c417d8c8ba1dd01e71cb7032cc4f6d936c","src/Windows/Win32/NetworkManagement/QoS/mod.rs":"69a6221529057028ea2f2ae622ed596efa33e9847586f73e204b2d33d59d142a","src/Windows/Win32/NetworkManagement/Rras/mod.rs":"126b5b0ea795c7fd479e6e311c2d81e490161c2f1ce135e98ed2a266e762cc04","src/Windows/Win32/NetworkManagement/Snmp/mod.rs":"7086b06425e3e575f7d34b5564bb45c83144118ae6b7391c9793fd6c54ee5b03","src/Windows/Win32/NetworkManagement/WNet/mod.rs":"b9f82d5d392996569f46e2f8a596193ffa65c7168112faee644fc81d2ff70769","src/Windows/Win32/NetworkManagement/WebDav/mod.rs":"72c65f43a52d99536e31a2381b8a7b21b5c830a394554294e417ab414b105f73","src/Windows/Win32/NetworkManagement/WiFi/mod.rs":"ce30e91ffff192954e32f223a1fceb4d06c8dcd0e4169a1ad9bfe0769a7b3532","src/Windows/Win32/NetworkManagement/WindowsConnectionManager/mod.rs":"7a31e03d9d9f5fe7738f8683cac2c885762396904cdedca14abd1e8a38220c73","src/Windows/Win32/NetworkManagement/WindowsFilteringPlatform/mod.rs":"35cbc85ab0134c3413001d71d4e7f4cf2d2a038ef44b42e5e16bd33fe52c80a1","src/Windows/Win32/NetworkManagement/WindowsFirewall/mod.rs":"18e103f13e37d1f21fc695159cdf960b8c916a8a4f6e9a3c09123af0e5da3e02","src/Windows/Win32/NetworkManagement/WindowsNetworkVirtualization/mod.rs":"b4694a524e8c55c2b6accf3852f05cfa012682cfbc3b22283de42ddfe0791ebc","src/Windows/Win32/NetworkManagement/mod.rs":"bfc0e3c898d79ebe20e6fc711facade5b632b4ae121c28077b7eab6934ed1992","src/Windows/Win32/Networking/ActiveDirectory/mod.rs":"639a6d76b7c099104294543d0dae12ab3f8ae22b2af6ea5950f49de0a19f1c27","src/Windows/Win32/Networking/Clustering/mod.rs":"30b0d72782908fb57ec3e4923fc12e54cafef70f17a7ebdc66c90a3b400e1c82","src/Windows/Win32/Networking/HttpServer/mod.rs":"fdf6a9414fd6c46e02ee9d9df85faaef18a7432ce2072e29c2b7e0e2967f0dfa","src/Windows/Win32/Networking/Ldap/mod.rs":"8c3038199930128460e763962bd72d6578ac75a291bb739ef1e50832b4f0d1ba","src/Windows/Win32/Networking/WebSocket/mod.rs":"8a58e2faf42e55f2118e612c48b06de28e388686f396cfaf443e7891b96d8d9c","src/Windows/Win32/Networking/WinHttp/mod.rs":"4920431d66810c59711b74d4eb7ff2d50fd5fa2b4ee666269afaf2a874b4ab5b","src/Windows/Win32/Networking/WinInet/mod.rs":"2ebfd5512d3c225946ee26b7b805f67d332b1463288407d346119f61d2e19733","src/Windows/Win32/Networking/WinSock/mod.rs":"204bc39a8213167dcab8dd273c57e5fae3afbac8fa3887dbe43ad082d55446e4","src/Windows/Win32/Networking/WindowsWebServices/mod.rs":"0b6fb56d4e757a9bc51b3fffc4652bb489ee2f767fdd2a439113a586a6fdeeb7","src/Windows/Win32/Networking/mod.rs":"0429eb5803f0703acdb3ea0f1c819ea6e9efa4293d485320d91383e2fa642c69","src/Windows/Win32/Security/AppLocker/mod.rs":"c9ffaf5bf45f3a730cfd0b008d49b138eeea192e6a8620c9973692c2326f758b","src/Windows/Win32/Security/Authentication/Identity/mod.rs":"64fed7fade2b48818b75efbe17f9b247bc7d3a90fac42369d8aee4569d1f24a9","src/Windows/Win32/Security/Authentication/mod.rs":"65750cc9bb1cd1bd24313b7da49f25c99166fecbf5b3919dc3c01f37553ee371","src/Windows/Win32/Security/Authorization/mod.rs":"8f815ef1e07914982c627898d4dc071a703e86240e9a9f946878e3210bc23ac7","src/Windows/Win32/Security/Credentials/mod.rs":"156b04b25235957710a9198355d42c2bda40bfa273368caf9d8b20caedc69e6a","src/Windows/Win32/Security/Cryptography/Catalog/mod.rs":"69e110c8b0d6cbc2efb8def07d2f7953897c012c46b1aa0500a46404b6969d3a","src/Windows/Win32/Security/Cryptography/Certificates/mod.rs":"cd37ae782fe0d80933233397a0cea700e2879676213e40bb6b352fdba893a54d","src/Windows/Win32/Security/Cryptography/Sip/mod.rs":"746640f8b09a2c9407d89ea592fb0c1aa1d6d7b2c149c1d756c6daf36e68d8b9","src/Windows/Win32/Security/Cryptography/UI/mod.rs":"fb911ef0f1fdb3bdf041742d4788b6ac3c7e320454769a33c18daca6d5fe8b50","src/Windows/Win32/Security/Cryptography/mod.rs":"3c35607f54a387487e2fffbfd671ce17147e0d38097a1663b8541ea68c848cf5","src/Windows/Win32/Security/DiagnosticDataQuery/mod.rs":"72d7fa7bafd06809dc294f76c26c48e94373575e73d238ec254f03408486fc29","src/Windows/Win32/Security/DirectoryServices/mod.rs":"9257d98cf9f707df30a6021f00da4d91788958ce3a7bd86f1dd1a085b98018c2","src/Windows/Win32/Security/EnterpriseData/mod.rs":"4cdda8f31619584faf5a773801d2f99998a5f5876eb0da7bc503afd6e5cbf8f4","src/Windows/Win32/Security/ExtensibleAuthenticationProtocol/mod.rs":"7ac85b9ad3ba8a235e8ee91227b3394e23ac8f47c9c19579fb74ae7ebd7947de","src/Windows/Win32/Security/Isolation/mod.rs":"258bad95b793de887dfe695e6a5b703b01828cb5233849be66cee18a3b6411e8","src/Windows/Win32/Security/LicenseProtection/mod.rs":"17a51f78e1ad133a82c098466abbd1028f852853c98a7d606dda18a2509b9099","src/Windows/Win32/Security/NetworkAccessProtection/mod.rs":"72a2ea527b530a0118cedbd6b728057c0ab67ee78058e19978424858b1e6b0d7","src/Windows/Win32/Security/WinTrust/mod.rs":"b4a6a71e80f47a37aa05b25bab93654652d79f885fbed5d928193d99ae70e5f5","src/Windows/Win32/Security/WinWlx/mod.rs":"f0c149a46394bd173158d2741531c7af850cb1180d9915d43a88fdee9e2fa855","src/Windows/Win32/Security/mod.rs":"b35db507ad9380695f15b7ba798d0e677e08cc84b905577489d7e63994f00673","src/Windows/Win32/Storage/Cabinets/mod.rs":"e928f4da0c576de84077ccea0448153c5a5636bad49d6ae0dc6151e4abbe19db","src/Windows/Win32/Storage/CloudFilters/mod.rs":"c7dd7180ca25d9b2e01fb5951541c69aaa3d015c31b6a6bafaccc11fd18a8c9f","src/Windows/Win32/Storage/Compression/mod.rs":"22cb1e9b4abbcc3c9345c3b62c5cabac80c0f74dbbab870f09d4030db12f43ca","src/Windows/Win32/Storage/DistributedFileSystem/mod.rs":"81d1d8652a2c8432754b123f875efc65a661ecde241f4541c698ec4336f89283","src/Windows/Win32/Storage/FileHistory/mod.rs":"51155942044b1c84ffa018b18851fe54f262a49ada60fff8df763ee9c38f4924","src/Windows/Win32/Storage/FileSystem/mod.rs":"62de1e36d41b1efdb8651c887dae8fbfb0ca2dc34e4d3a789e716f50e424630d","src/Windows/Win32/Storage/Imapi/mod.rs":"85bc966fe8a9aee71ba7e526058369a96d0a5b14389b284f377ba4d1df2c1c87","src/Windows/Win32/Storage/IndexServer/mod.rs":"938958de534b65e1af2a4afad5b6911a783e7517a136ed792d8e602fba9abfa6","src/Windows/Win32/Storage/InstallableFileSystems/mod.rs":"5d5c5f27be6e2c89b4bbb5507624cdf99bcb46f39b9d64e65f3f39edef7f9a49","src/Windows/Win32/Storage/IscsiDisc/mod.rs":"9ddbf4dc3615b17e361143cae523b89d0e55f5088fe938c1009453acbe115c1e","src/Windows/Win32/Storage/Jet/mod.rs":"a9644cd862855d6d8ffd38b19563145446ee589c6c7a8f18e7b9c25962fbd490","src/Windows/Win32/Storage/Nvme/mod.rs":"24c768d01640b48f3a8406e80a05f588c7edbff273f573e32ef1222bcfe6550d","src/Windows/Win32/Storage/OfflineFiles/mod.rs":"1731e23074a8c92669460d6ff84ef7a26cf32f11265c3cb59e93038c84439ed8","src/Windows/Win32/Storage/OperationRecorder/mod.rs":"5999d081c94f8c2323951a7126813803299bb60217550a48a90437a69be99db0","src/Windows/Win32/Storage/Packaging/Appx/mod.rs":"fa76e97d4e7a502db5ee733430c6c6146ca75f973822ac0158ae2752c0cace42","src/Windows/Win32/Storage/Packaging/mod.rs":"f7f0994f7816af4d9f18d8336544b3a9c3db62a272f79ce91cb6a573e665be6e","src/Windows/Win32/Storage/ProjectedFileSystem/mod.rs":"114963523c77ac74fae655943ac9aeca3de2aaf6558255a7d4483f0660738601","src/Windows/Win32/Storage/StructuredStorage/mod.rs":"72d8e7ed6e51bbb128fe759b36a31d08e397a021d3b70cbcce79cac6dee4a977","src/Windows/Win32/Storage/Vhd/mod.rs":"b57e26dc3b8a217b608fd9204025914d6c2b25005f52357afd6f69fb5bc43c6e","src/Windows/Win32/Storage/Xps/mod.rs":"b10b39e4c54fbad143957d884bd1867c21cc5135ca47c8ecc351ed3f0fdfd44d","src/Windows/Win32/Storage/mod.rs":"6a382c16cd957177330437b3ed9747c77f7dfdc4e826a14e1213ceb66e17706a","src/Windows/Win32/System/AddressBook/mod.rs":"0c3c6a0e9071d2fdaf0c475cde725a8370346d16cb000ebea373a11c72443388","src/Windows/Win32/System/Antimalware/mod.rs":"71c50e08bc1767e70a710d306b1b64a89ecf00fa6974aec62db4af002c8b2228","src/Windows/Win32/System/ApplicationInstallationAndServicing/mod.rs":"31c97e160a91fb59e9480970e2494119e83cce7f9e3f7945c7289347047037d5","src/Windows/Win32/System/ApplicationVerifier/mod.rs":"17c52576ab522266e72343d120252f0d4bb1e6b244ff9c5c5c38531a06d11ccf","src/Windows/Win32/System/ClrHosting/mod.rs":"fab866abe537be550bc3c77130b65e6106c53d933199a17f86fcf06ee75a8ae8","src/Windows/Win32/System/Com/Marshal/mod.rs":"1f04deab60c3ffa9a404486bf3aedf5799ef409393668513ee6645f5658829d5","src/Windows/Win32/System/Com/StructuredStorage/mod.rs":"56b25e3fbda76110db3e3c6335a4e27f703c7c7be9366e78d35f0f02d2994859","src/Windows/Win32/System/Com/Urlmon/mod.rs":"5bb352468e1c3487d54c8a8157a00dbb4a7385a565b7dc57ca07bd46c38f14ad","src/Windows/Win32/System/Com/mod.rs":"30e7c0b7ea3db8f9b9d9bafa85a3fbdd01070eb0cc43124306f210274f03cae5","src/Windows/Win32/System/ComponentServices/mod.rs":"7b2ba528379e4b22a7de4b61cadd925259cb972fb484da285c3360ca36e76ea4","src/Windows/Win32/System/Console/mod.rs":"a5eb9bef1283ad246c2171415afc4e0cd1626bcdeb8918d970e28f73b444cb14","src/Windows/Win32/System/CorrelationVector/mod.rs":"2170686b3dc82243a39c8e275cf5eb83a58d50ca5004324e9b3f99d0c54aaada","src/Windows/Win32/System/DataExchange/mod.rs":"197fb5fb49beb2653865bf1dead6193706be9900248d77eacc5733992f40b0ca","src/Windows/Win32/System/DeploymentServices/mod.rs":"3cb62aec8f2967d29f5efea0ffb1c48184fdedcc6d07f42e61fbd4a01e34252e","src/Windows/Win32/System/DeveloperLicensing/mod.rs":"30162501a442c7a8fa23ed72c9e6bf67768800fc170947b01f0bb09b64300deb","src/Windows/Win32/System/Diagnostics/Ceip/mod.rs":"ceda2ba33aa12edd1e02ad896320a35d0e7ea0f6d7b6ee5d53f28de18840ecf1","src/Windows/Win32/System/Diagnostics/Debug/Extensions/mod.rs":"04de20f10090af85880d15bef24029863fbdd18e069af06d47077a3f21f77b78","src/Windows/Win32/System/Diagnostics/Debug/mod.rs":"97be8fa2512bd4fb5c2097c8539e45a65ef75d7265eab01795252099291a7ae2","src/Windows/Win32/System/Diagnostics/Etw/mod.rs":"516ec30d47dc7633fded6f3b4612797bfdcd913386c6a718724b33d6ba4df2ac","src/Windows/Win32/System/Diagnostics/ProcessSnapshotting/mod.rs":"02d366ebf86d5d4a69821f72841789cd8e6a5e5982740f18088915e06224272b","src/Windows/Win32/System/Diagnostics/ToolHelp/mod.rs":"d8009a4856899743f52491fd1a6980f4fc4c8ca1f9e4a33751ccb31e32eb7934","src/Windows/Win32/System/Diagnostics/mod.rs":"26028a11b3e3bb236f387361b5866860d949379a91e65c6ea40eaf75ac8c9fe2","src/Windows/Win32/System/DistributedTransactionCoordinator/mod.rs":"19a760bac272c261189e25120c562988afcffc83ff792da604715a66d4d3f7e2","src/Windows/Win32/System/Environment/mod.rs":"56413bba141e59a0282467de796f47a922e4c8bd2dbb1a4fb7ec844cbad1a220","src/Windows/Win32/System/ErrorReporting/mod.rs":"20acdd9023d1b6586877556959fbc5c6858c8e775e3d2ee2728185410da99899","src/Windows/Win32/System/EventCollector/mod.rs":"acbbf978dfb0164de14f47c376b75f054bf98b68667be0f34f402082abe82df9","src/Windows/Win32/System/EventLog/mod.rs":"effc8b56a355a344456922ef5cdb7029f219396c7c0b118bef3ded086b4bb5f2","src/Windows/Win32/System/EventNotificationService/mod.rs":"9f7af63f6dd9e7056d68d8c8e2a52452a6c389563f0085d510242439e0df26f3","src/Windows/Win32/System/GroupPolicy/mod.rs":"50675fdcf9f72643b8fc252cef4cdf23e29fe064ae074dfe150a85d91cc83698","src/Windows/Win32/System/HostCompute/mod.rs":"128a34f564ce9b5241f8ea32c2fb7f823a660509bac6a4cd49ed69bb7346e728","src/Windows/Win32/System/HostComputeNetwork/mod.rs":"1568865224729da97e3ae2aec01bf9e2595ec8379f0191adcafcb20aa2fab1d7","src/Windows/Win32/System/HostComputeSystem/mod.rs":"bef988d2d76c40d0bbb77b81f811c7bcc766e3b59b07a9051ac76a2cf1fb90c4","src/Windows/Win32/System/Hypervisor/mod.rs":"215ce3706497cd6c935a518dcc40bf0ed78f7ee82679149c57e460787db62f7a","src/Windows/Win32/System/IO/mod.rs":"6488cd3decb96d7e0e83e556674cf4f8436931d799f7a86e7437ef97dda8660e","src/Windows/Win32/System/Iis/mod.rs":"c66fee548888b439ba1340778a3870c98a24e1b9f0b9db8a317df277583ae4ec","src/Windows/Win32/System/Ioctl/mod.rs":"e2ae22d1e07d9586fb61980784835d42c7ab54b43151aa74a56b5fa8b0672249","src/Windows/Win32/System/JobObjects/mod.rs":"45410125f4aaec823e36c7d68c86bf40879098cc2a0cebac969d04ba08a1ef58","src/Windows/Win32/System/Js/mod.rs":"c09797265f170f075485f08623cbdda8fa20fc277c37d941b7925c26446d67ff","src/Windows/Win32/System/Kernel/mod.rs":"03585feeb015913542d68ee10609725d372f8d83094f178f1bd18cab80ca88be","src/Windows/Win32/System/LibraryLoader/mod.rs":"03c6ba7b39cd63d1b9073465928c0e2f3fbf7ee6ec92262e9c864f596b55eb74","src/Windows/Win32/System/Mailslots/mod.rs":"043fdc8597e2f05a423f577923389d4f49b8dad8ac5b32ef32402992f4ce42aa","src/Windows/Win32/System/Mapi/mod.rs":"9f4b8ff581c141b6f79be2e0da1520ea7a869aa5a1e9c790755507abdeba1aa4","src/Windows/Win32/System/Memory/NonVolatile/mod.rs":"2672fd82e4cdcff746e174618a7243eafbd7c52e8b4d95de7b68b3c3afb3702c","src/Windows/Win32/System/Memory/mod.rs":"efa4bc12c33f715d7096ea3f582e65eb2720d37debf58764fadf36f6218ae63f","src/Windows/Win32/System/MessageQueuing/mod.rs":"24fe429da30d052254349c49048b36e60ae07c9fe5e45d2ed082111ee62a613c","src/Windows/Win32/System/MixedReality/mod.rs":"34a985476f50bdfd4d78410897962d69f2e52db6c6a626364bdf70860a42279b","src/Windows/Win32/System/Ole/mod.rs":"d3d4196c7e3f08d6fb193fd1991b60e7f4d45f45b56ebcba966a514dacbc5bcb","src/Windows/Win32/System/PasswordManagement/mod.rs":"948b79beeb324c878f62283f176090f5c348efb7a07c4e2cccc1e52524ec78ed","src/Windows/Win32/System/Performance/HardwareCounterProfiling/mod.rs":"794c452d4da8c13fceec76d5ea9346f91082dc74a003ad6d059a4050c3e149e5","src/Windows/Win32/System/Performance/mod.rs":"48fcfa03724690d1878c4690a3ad541c8d11065540ae7e5d923358247ade1e47","src/Windows/Win32/System/Pipes/mod.rs":"fcb982a3e590945e308cd7cead36d596ec425efd379b84d7c7eeb6779981b95c","src/Windows/Win32/System/Power/mod.rs":"defa33a0438046c08c716da7ddc17853cada024d1f30124dda0dc8dca53c975b","src/Windows/Win32/System/ProcessStatus/mod.rs":"ccf1ec510f71686cd2f946e7b78db571ff6f004e2ea2553a91a962d47d40b62e","src/Windows/Win32/System/Recovery/mod.rs":"1bfad927942ad4bad356b6903da74932be3698ae649ad64b59f172f1089e787a","src/Windows/Win32/System/Registry/mod.rs":"3dccaad2d607f25bd301c604cdb1fd5a65a771423c1945f130dc108689b64e12","src/Windows/Win32/System/RemoteDesktop/mod.rs":"f126140a22c0f4f3c89333385bac1e2967e756e75fbec1723c539f82e411626b","src/Windows/Win32/System/RemoteManagement/mod.rs":"5c6b6fc7921527679725122b7a2ca91c8f6912ac0781c6c096984fb82b661873","src/Windows/Win32/System/RestartManager/mod.rs":"b4e7233bd69e3a7ee28128da8b46d67d1c9f0ad30a5a881a9ef4c1f380a60fc9","src/Windows/Win32/System/Restore/mod.rs":"68edbac4b91925644041d3af65fb8fe19e27396a57f0383e9de1a385fe4558d3","src/Windows/Win32/System/Rpc/mod.rs":"a9249cd1232da6d0a689077600be964da37f6c67de108098345864856cb654cd","src/Windows/Win32/System/Search/Common/mod.rs":"9be8b496ca00d317d489d04e61ddaa47ae0b38a24b1bc16fabbde7dc001450c6","src/Windows/Win32/System/Search/mod.rs":"d7604d38d66fa4b05e33f7d4be2cb3e70af2d96e93fef8382ae6c5f532d8ebb3","src/Windows/Win32/System/SecurityCenter/mod.rs":"5e6be46cd0addd8777116291b2b689b0d80b09f636dec626bd0d8f7788437b86","src/Windows/Win32/System/Services/mod.rs":"23999c6d2249ed2d5e82b72496449c7342058bbaeb608f62f1b7d3ad5106bb30","src/Windows/Win32/System/SetupAndMigration/mod.rs":"d14b7414b79e72d10e44d2e81fe94b42acf770c8270f9bb1fc3f06a2d8647c71","src/Windows/Win32/System/Shutdown/mod.rs":"31e6f79f4a3a2d500ee38bc91ff164ba618b21e332fac9d7f9c1897307229623","src/Windows/Win32/System/StationsAndDesktops/mod.rs":"03cd113389fcb2337c06cbff36142ca764e737fe85921e0e020ea0b3dd2d0998","src/Windows/Win32/System/SubsystemForLinux/mod.rs":"5d0bd693d95c5015c24bf3caa98c0e992640f90e52edd407f8fd8fd45f65170d","src/Windows/Win32/System/SystemInformation/mod.rs":"15e25c04da5979826ca7f6e15de6ed788a61e0eb2e9215400dc7428d8dea70e2","src/Windows/Win32/System/SystemServices/mod.rs":"edd591c9ea164c7d6f4e7b7174f33054261a122a231f3ea8ce5cdacb5bcd2475","src/Windows/Win32/System/Threading/mod.rs":"6258ef99d17078002020644540a608a89cdf20436daefa3970a65348e6793c1c","src/Windows/Win32/System/Time/mod.rs":"1bfcb0aeb931adcab9b2739af96b1de90c3a43e29b510db9dccdacf6cc064587","src/Windows/Win32/System/TpmBaseServices/mod.rs":"16e445eb36e8f8124d3c6311d983cc4b7bbb5a2d1362a14ea5cdbac717884629","src/Windows/Win32/System/UserAccessLogging/mod.rs":"a668b512c3245bd85811a31d438504df260557a63225a80ed6ba0626e8539c80","src/Windows/Win32/System/Variant/mod.rs":"ac4697c87f732593f9d19f00e74ceaa59ed9b95abadd96068bce414d28cb4a8b","src/Windows/Win32/System/VirtualDosMachines/mod.rs":"f16da933dab5056880ef7b89645c767173b98d3569ad2bd55de3aa7f620252be","src/Windows/Win32/System/WindowsProgramming/mod.rs":"bec8a8dd0d79f57907b6d9227a66f27cbe3bc5e08184b72d596a91b0902a02b4","src/Windows/Win32/System/Wmi/mod.rs":"1cb49df5c1f918fffd8641890f1b18304f3cbc34a64894647551ec30d7f5068e","src/Windows/Win32/System/mod.rs":"1bd40cab9bc999eba658e06b15875b0ff419f6fbc60a261b982421b25fad5b86","src/Windows/Win32/UI/Accessibility/mod.rs":"eb8ea17d00dbdfaa0deb79737a517bc327139f2741406ff73af9dd604492ab67","src/Windows/Win32/UI/ColorSystem/mod.rs":"54c3d56ce9e16b54bfd4034e8b517f4b5559f7631e1e7817d7b27ee6115c694c","src/Windows/Win32/UI/Controls/Dialogs/mod.rs":"ae6da55cf126899dc7b172f75c9688b36e55996477c5c55013d67e80b1525f5f","src/Windows/Win32/UI/Controls/mod.rs":"f640c676c8c3511175fc2ffcf41f7d3486e139f1946b1573608a52bcfa411585","src/Windows/Win32/UI/HiDpi/mod.rs":"8e046edda260ef42d78340520f68d64e08a856916ceb824672f54f0546db01e6","src/Windows/Win32/UI/Input/Ime/mod.rs":"1a1d517ae3304be826625d56324c485196a83962ccf005a0cb1e8104075b324d","src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs":"a227d3f977501620aafd4bef4bf804cae218d8a6c626e842153eefefcfcc69d5","src/Windows/Win32/UI/Input/Pointer/mod.rs":"a5cfbfd22782024da5e34b833ebecd43d2e2ac5f9fb7b29d3b8d244c65049b18","src/Windows/Win32/UI/Input/Touch/mod.rs":"d38a8e8a13fa1ab62580c236ed206abd56b5e839a53022821388f38a4b0261da","src/Windows/Win32/UI/Input/XboxController/mod.rs":"a8bd54ecce694b157d657133cfb4823534782655634d29f1aaad80fbbeb24210","src/Windows/Win32/UI/Input/mod.rs":"b98a96fa62ba85c88acc2e869170b8ff7306c08283a79439e7ec0258d7d8ec55","src/Windows/Win32/UI/InteractionContext/mod.rs":"56a01b7954c67177deb242b6f31f2488e55d85d5b4a1b4c0d34a06fda2c46d02","src/Windows/Win32/UI/Magnification/mod.rs":"fcbb8c27d177af82aea12523cde88b69466ba25ee9c961a3a96e89ccdfa004fd","src/Windows/Win32/UI/Shell/PropertiesSystem/mod.rs":"fcf02f6ca53cf565cd7a07bfe63f7d9fa1ce776947e4efb86fe73daeb3029be4","src/Windows/Win32/UI/Shell/mod.rs":"9d1a035392107171083e6c4a22d59770868a7381e4c3346f052b231aeda08083","src/Windows/Win32/UI/TabletPC/mod.rs":"f03aec1df3d3f756aad83497a124312d0f3e60b09c316692c48642937d51deb4","src/Windows/Win32/UI/TextServices/mod.rs":"4ea89ba3ae55fc1ccbb1395e0d9451cb25a9a452a7108aedcf0adec887039081","src/Windows/Win32/UI/WindowsAndMessaging/mod.rs":"9c3346a8efaaebbb297e8493a5599712744b13e673580b6f00dfb051d2a530c8","src/Windows/Win32/UI/mod.rs":"52fe9e33b44eb0bb6de1b4639f40e8ee6b104b57cc76d5bf61f6f519e32d6506","src/Windows/Win32/Web/InternetExplorer/mod.rs":"de5746ea7790d7b89cf8e22977c3eb1496ec11154f994d1860f84807a138c6f6","src/Windows/Win32/Web/mod.rs":"f9db4e7e91da18e453720cf471f03b899abcc09f8ecb48f666eb1014f1e29701","src/Windows/Win32/mod.rs":"61b768982158ba0a197638a3911fd0139b358d14e202a901b28af0b8b16bd6f0","src/Windows/mod.rs":"50beed6deaa8af370b7844f34b2bc58079defac61a293a63b349e98e9a8e420d","src/core/literals.rs":"285762703adf45db848a8fcf8e0e4556e44401fbdcb92c2b03dbf09f230cfe43","src/core/mod.rs":"8cb0ee31f5e9631f6e7f4ff3d29263e7c246a98d7865e5d29e97a6963952ad35","src/lib.rs":"99089ddba17b0bfdc77f3a877a5d572c4adebca10d02a31d79e63879fd58b99d"},"package":"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"} \ No newline at end of file diff --git a/src/rust/vendor/windows-sys/Cargo.toml b/src/rust/vendor/windows-sys/Cargo.toml new file mode 100644 index 000000000..c354c739c --- /dev/null +++ b/src/rust/vendor/windows-sys/Cargo.toml @@ -0,0 +1,265 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +rust-version = "1.56" +name = "windows-sys" +version = "0.52.0" +authors = ["Microsoft"] +description = "Rust for Windows" +readme = "readme.md" +categories = ["os::windows-apis"] +license = "MIT OR Apache-2.0" +repository = "https://github.com/microsoft/windows-rs" + +[package.metadata.docs.rs] +all-features = true +default-target = "x86_64-pc-windows-msvc" +targets = [] + +[dependencies.windows-targets] +version = "0.52.0" + +[features] +Wdk = [] +Wdk_Foundation = ["Wdk"] +Wdk_Graphics = ["Wdk"] +Wdk_Graphics_Direct3D = ["Wdk_Graphics"] +Wdk_Storage = ["Wdk"] +Wdk_Storage_FileSystem = ["Wdk_Storage"] +Wdk_Storage_FileSystem_Minifilters = ["Wdk_Storage_FileSystem"] +Wdk_System = ["Wdk"] +Wdk_System_IO = ["Wdk_System"] +Wdk_System_OfflineRegistry = ["Wdk_System"] +Wdk_System_Registry = ["Wdk_System"] +Wdk_System_SystemInformation = ["Wdk_System"] +Wdk_System_SystemServices = ["Wdk_System"] +Wdk_System_Threading = ["Wdk_System"] +Win32 = [] +Win32_Data = ["Win32"] +Win32_Data_HtmlHelp = ["Win32_Data"] +Win32_Data_RightsManagement = ["Win32_Data"] +Win32_Devices = ["Win32"] +Win32_Devices_AllJoyn = ["Win32_Devices"] +Win32_Devices_BiometricFramework = ["Win32_Devices"] +Win32_Devices_Bluetooth = ["Win32_Devices"] +Win32_Devices_Communication = ["Win32_Devices"] +Win32_Devices_DeviceAndDriverInstallation = ["Win32_Devices"] +Win32_Devices_DeviceQuery = ["Win32_Devices"] +Win32_Devices_Display = ["Win32_Devices"] +Win32_Devices_Enumeration = ["Win32_Devices"] +Win32_Devices_Enumeration_Pnp = ["Win32_Devices_Enumeration"] +Win32_Devices_Fax = ["Win32_Devices"] +Win32_Devices_HumanInterfaceDevice = ["Win32_Devices"] +Win32_Devices_PortableDevices = ["Win32_Devices"] +Win32_Devices_Properties = ["Win32_Devices"] +Win32_Devices_Pwm = ["Win32_Devices"] +Win32_Devices_Sensors = ["Win32_Devices"] +Win32_Devices_SerialCommunication = ["Win32_Devices"] +Win32_Devices_Tapi = ["Win32_Devices"] +Win32_Devices_Usb = ["Win32_Devices"] +Win32_Devices_WebServicesOnDevices = ["Win32_Devices"] +Win32_Foundation = ["Win32"] +Win32_Gaming = ["Win32"] +Win32_Globalization = ["Win32"] +Win32_Graphics = ["Win32"] +Win32_Graphics_Dwm = ["Win32_Graphics"] +Win32_Graphics_Gdi = ["Win32_Graphics"] +Win32_Graphics_GdiPlus = ["Win32_Graphics"] +Win32_Graphics_Hlsl = ["Win32_Graphics"] +Win32_Graphics_OpenGL = ["Win32_Graphics"] +Win32_Graphics_Printing = ["Win32_Graphics"] +Win32_Graphics_Printing_PrintTicket = ["Win32_Graphics_Printing"] +Win32_Management = ["Win32"] +Win32_Management_MobileDeviceManagementRegistration = ["Win32_Management"] +Win32_Media = ["Win32"] +Win32_Media_Audio = ["Win32_Media"] +Win32_Media_DxMediaObjects = ["Win32_Media"] +Win32_Media_KernelStreaming = ["Win32_Media"] +Win32_Media_Multimedia = ["Win32_Media"] +Win32_Media_Streaming = ["Win32_Media"] +Win32_Media_WindowsMediaFormat = ["Win32_Media"] +Win32_NetworkManagement = ["Win32"] +Win32_NetworkManagement_Dhcp = ["Win32_NetworkManagement"] +Win32_NetworkManagement_Dns = ["Win32_NetworkManagement"] +Win32_NetworkManagement_InternetConnectionWizard = ["Win32_NetworkManagement"] +Win32_NetworkManagement_IpHelper = ["Win32_NetworkManagement"] +Win32_NetworkManagement_Multicast = ["Win32_NetworkManagement"] +Win32_NetworkManagement_Ndis = ["Win32_NetworkManagement"] +Win32_NetworkManagement_NetBios = ["Win32_NetworkManagement"] +Win32_NetworkManagement_NetManagement = ["Win32_NetworkManagement"] +Win32_NetworkManagement_NetShell = ["Win32_NetworkManagement"] +Win32_NetworkManagement_NetworkDiagnosticsFramework = ["Win32_NetworkManagement"] +Win32_NetworkManagement_P2P = ["Win32_NetworkManagement"] +Win32_NetworkManagement_QoS = ["Win32_NetworkManagement"] +Win32_NetworkManagement_Rras = ["Win32_NetworkManagement"] +Win32_NetworkManagement_Snmp = ["Win32_NetworkManagement"] +Win32_NetworkManagement_WNet = ["Win32_NetworkManagement"] +Win32_NetworkManagement_WebDav = ["Win32_NetworkManagement"] +Win32_NetworkManagement_WiFi = ["Win32_NetworkManagement"] +Win32_NetworkManagement_WindowsConnectionManager = ["Win32_NetworkManagement"] +Win32_NetworkManagement_WindowsFilteringPlatform = ["Win32_NetworkManagement"] +Win32_NetworkManagement_WindowsFirewall = ["Win32_NetworkManagement"] +Win32_NetworkManagement_WindowsNetworkVirtualization = ["Win32_NetworkManagement"] +Win32_Networking = ["Win32"] +Win32_Networking_ActiveDirectory = ["Win32_Networking"] +Win32_Networking_Clustering = ["Win32_Networking"] +Win32_Networking_HttpServer = ["Win32_Networking"] +Win32_Networking_Ldap = ["Win32_Networking"] +Win32_Networking_WebSocket = ["Win32_Networking"] +Win32_Networking_WinHttp = ["Win32_Networking"] +Win32_Networking_WinInet = ["Win32_Networking"] +Win32_Networking_WinSock = ["Win32_Networking"] +Win32_Networking_WindowsWebServices = ["Win32_Networking"] +Win32_Security = ["Win32"] +Win32_Security_AppLocker = ["Win32_Security"] +Win32_Security_Authentication = ["Win32_Security"] +Win32_Security_Authentication_Identity = ["Win32_Security_Authentication"] +Win32_Security_Authorization = ["Win32_Security"] +Win32_Security_Credentials = ["Win32_Security"] +Win32_Security_Cryptography = ["Win32_Security"] +Win32_Security_Cryptography_Catalog = ["Win32_Security_Cryptography"] +Win32_Security_Cryptography_Certificates = ["Win32_Security_Cryptography"] +Win32_Security_Cryptography_Sip = ["Win32_Security_Cryptography"] +Win32_Security_Cryptography_UI = ["Win32_Security_Cryptography"] +Win32_Security_DiagnosticDataQuery = ["Win32_Security"] +Win32_Security_DirectoryServices = ["Win32_Security"] +Win32_Security_EnterpriseData = ["Win32_Security"] +Win32_Security_ExtensibleAuthenticationProtocol = ["Win32_Security"] +Win32_Security_Isolation = ["Win32_Security"] +Win32_Security_LicenseProtection = ["Win32_Security"] +Win32_Security_NetworkAccessProtection = ["Win32_Security"] +Win32_Security_WinTrust = ["Win32_Security"] +Win32_Security_WinWlx = ["Win32_Security"] +Win32_Storage = ["Win32"] +Win32_Storage_Cabinets = ["Win32_Storage"] +Win32_Storage_CloudFilters = ["Win32_Storage"] +Win32_Storage_Compression = ["Win32_Storage"] +Win32_Storage_DistributedFileSystem = ["Win32_Storage"] +Win32_Storage_FileHistory = ["Win32_Storage"] +Win32_Storage_FileSystem = ["Win32_Storage"] +Win32_Storage_Imapi = ["Win32_Storage"] +Win32_Storage_IndexServer = ["Win32_Storage"] +Win32_Storage_InstallableFileSystems = ["Win32_Storage"] +Win32_Storage_IscsiDisc = ["Win32_Storage"] +Win32_Storage_Jet = ["Win32_Storage"] +Win32_Storage_Nvme = ["Win32_Storage"] +Win32_Storage_OfflineFiles = ["Win32_Storage"] +Win32_Storage_OperationRecorder = ["Win32_Storage"] +Win32_Storage_Packaging = ["Win32_Storage"] +Win32_Storage_Packaging_Appx = ["Win32_Storage_Packaging"] +Win32_Storage_ProjectedFileSystem = ["Win32_Storage"] +Win32_Storage_StructuredStorage = ["Win32_Storage"] +Win32_Storage_Vhd = ["Win32_Storage"] +Win32_Storage_Xps = ["Win32_Storage"] +Win32_System = ["Win32"] +Win32_System_AddressBook = ["Win32_System"] +Win32_System_Antimalware = ["Win32_System"] +Win32_System_ApplicationInstallationAndServicing = ["Win32_System"] +Win32_System_ApplicationVerifier = ["Win32_System"] +Win32_System_ClrHosting = ["Win32_System"] +Win32_System_Com = ["Win32_System"] +Win32_System_Com_Marshal = ["Win32_System_Com"] +Win32_System_Com_StructuredStorage = ["Win32_System_Com"] +Win32_System_Com_Urlmon = ["Win32_System_Com"] +Win32_System_ComponentServices = ["Win32_System"] +Win32_System_Console = ["Win32_System"] +Win32_System_CorrelationVector = ["Win32_System"] +Win32_System_DataExchange = ["Win32_System"] +Win32_System_DeploymentServices = ["Win32_System"] +Win32_System_DeveloperLicensing = ["Win32_System"] +Win32_System_Diagnostics = ["Win32_System"] +Win32_System_Diagnostics_Ceip = ["Win32_System_Diagnostics"] +Win32_System_Diagnostics_Debug = ["Win32_System_Diagnostics"] +Win32_System_Diagnostics_Debug_Extensions = ["Win32_System_Diagnostics_Debug"] +Win32_System_Diagnostics_Etw = ["Win32_System_Diagnostics"] +Win32_System_Diagnostics_ProcessSnapshotting = ["Win32_System_Diagnostics"] +Win32_System_Diagnostics_ToolHelp = ["Win32_System_Diagnostics"] +Win32_System_DistributedTransactionCoordinator = ["Win32_System"] +Win32_System_Environment = ["Win32_System"] +Win32_System_ErrorReporting = ["Win32_System"] +Win32_System_EventCollector = ["Win32_System"] +Win32_System_EventLog = ["Win32_System"] +Win32_System_EventNotificationService = ["Win32_System"] +Win32_System_GroupPolicy = ["Win32_System"] +Win32_System_HostCompute = ["Win32_System"] +Win32_System_HostComputeNetwork = ["Win32_System"] +Win32_System_HostComputeSystem = ["Win32_System"] +Win32_System_Hypervisor = ["Win32_System"] +Win32_System_IO = ["Win32_System"] +Win32_System_Iis = ["Win32_System"] +Win32_System_Ioctl = ["Win32_System"] +Win32_System_JobObjects = ["Win32_System"] +Win32_System_Js = ["Win32_System"] +Win32_System_Kernel = ["Win32_System"] +Win32_System_LibraryLoader = ["Win32_System"] +Win32_System_Mailslots = ["Win32_System"] +Win32_System_Mapi = ["Win32_System"] +Win32_System_Memory = ["Win32_System"] +Win32_System_Memory_NonVolatile = ["Win32_System_Memory"] +Win32_System_MessageQueuing = ["Win32_System"] +Win32_System_MixedReality = ["Win32_System"] +Win32_System_Ole = ["Win32_System"] +Win32_System_PasswordManagement = ["Win32_System"] +Win32_System_Performance = ["Win32_System"] +Win32_System_Performance_HardwareCounterProfiling = ["Win32_System_Performance"] +Win32_System_Pipes = ["Win32_System"] +Win32_System_Power = ["Win32_System"] +Win32_System_ProcessStatus = ["Win32_System"] +Win32_System_Recovery = ["Win32_System"] +Win32_System_Registry = ["Win32_System"] +Win32_System_RemoteDesktop = ["Win32_System"] +Win32_System_RemoteManagement = ["Win32_System"] +Win32_System_RestartManager = ["Win32_System"] +Win32_System_Restore = ["Win32_System"] +Win32_System_Rpc = ["Win32_System"] +Win32_System_Search = ["Win32_System"] +Win32_System_Search_Common = ["Win32_System_Search"] +Win32_System_SecurityCenter = ["Win32_System"] +Win32_System_Services = ["Win32_System"] +Win32_System_SetupAndMigration = ["Win32_System"] +Win32_System_Shutdown = ["Win32_System"] +Win32_System_StationsAndDesktops = ["Win32_System"] +Win32_System_SubsystemForLinux = ["Win32_System"] +Win32_System_SystemInformation = ["Win32_System"] +Win32_System_SystemServices = ["Win32_System"] +Win32_System_Threading = ["Win32_System"] +Win32_System_Time = ["Win32_System"] +Win32_System_TpmBaseServices = ["Win32_System"] +Win32_System_UserAccessLogging = ["Win32_System"] +Win32_System_Variant = ["Win32_System"] +Win32_System_VirtualDosMachines = ["Win32_System"] +Win32_System_WindowsProgramming = ["Win32_System"] +Win32_System_Wmi = ["Win32_System"] +Win32_UI = ["Win32"] +Win32_UI_Accessibility = ["Win32_UI"] +Win32_UI_ColorSystem = ["Win32_UI"] +Win32_UI_Controls = ["Win32_UI"] +Win32_UI_Controls_Dialogs = ["Win32_UI_Controls"] +Win32_UI_HiDpi = ["Win32_UI"] +Win32_UI_Input = ["Win32_UI"] +Win32_UI_Input_Ime = ["Win32_UI_Input"] +Win32_UI_Input_KeyboardAndMouse = ["Win32_UI_Input"] +Win32_UI_Input_Pointer = ["Win32_UI_Input"] +Win32_UI_Input_Touch = ["Win32_UI_Input"] +Win32_UI_Input_XboxController = ["Win32_UI_Input"] +Win32_UI_InteractionContext = ["Win32_UI"] +Win32_UI_Magnification = ["Win32_UI"] +Win32_UI_Shell = ["Win32_UI"] +Win32_UI_Shell_PropertiesSystem = ["Win32_UI_Shell"] +Win32_UI_TabletPC = ["Win32_UI"] +Win32_UI_TextServices = ["Win32_UI"] +Win32_UI_WindowsAndMessaging = ["Win32_UI"] +Win32_Web = ["Win32"] +Win32_Web_InternetExplorer = ["Win32_Web"] +default = [] +docs = [] diff --git a/src/rust/vendor/windows-sys/license-apache-2.0 b/src/rust/vendor/windows-sys/license-apache-2.0 new file mode 100644 index 000000000..b5ed4ecec --- /dev/null +++ b/src/rust/vendor/windows-sys/license-apache-2.0 @@ -0,0 +1,201 @@ + 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 (c) Microsoft Corporation. + + 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. diff --git a/src/rust/vendor/windows-sys/license-mit b/src/rust/vendor/windows-sys/license-mit new file mode 100644 index 000000000..9e841e7a2 --- /dev/null +++ b/src/rust/vendor/windows-sys/license-mit @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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 diff --git a/src/rust/vendor/windows-sys/readme.md b/src/rust/vendor/windows-sys/readme.md new file mode 100644 index 000000000..ee076f40c --- /dev/null +++ b/src/rust/vendor/windows-sys/readme.md @@ -0,0 +1,88 @@ +## Rust for Windows + +The [windows](https://crates.io/crates/windows) and [windows-sys](https://crates.io/crates/windows-sys) crates let you call any Windows API past, present, and future using code generated on the fly directly from the [metadata describing the API](https://github.com/microsoft/windows-rs/tree/master/crates/libs/bindgen/default) and right into your Rust package where you can call them as if they were just another Rust module. The Rust language projection follows in the tradition established by [C++/WinRT](https://github.com/microsoft/cppwinrt) of building language projections for Windows using standard languages and compilers, providing a natural and idiomatic way for Rust developers to call Windows APIs. + +* [Getting started](https://kennykerr.ca/rust-getting-started/) +* [Samples](https://github.com/microsoft/windows-rs/tree/0.52.0/crates/samples) +* [Releases](https://github.com/microsoft/windows-rs/releases) + +Start by adding the following to your Cargo.toml file: + +```toml +[dependencies.windows] +version = "0.52" +features = [ + "Data_Xml_Dom", + "Win32_Foundation", + "Win32_Security", + "Win32_System_Threading", + "Win32_UI_WindowsAndMessaging", +] +``` + +Make use of any Windows APIs as needed: + +```rust,no_run +use windows::{ + core::*, Data::Xml::Dom::*, Win32::Foundation::*, Win32::System::Threading::*, + Win32::UI::WindowsAndMessaging::*, +}; + +fn main() -> Result<()> { + let doc = XmlDocument::new()?; + doc.LoadXml(h!("hello world"))?; + + let root = doc.DocumentElement()?; + assert!(root.NodeName()? == "html"); + assert!(root.InnerText()? == "hello world"); + + unsafe { + let event = CreateEventW(None, true, false, None)?; + SetEvent(event)?; + WaitForSingleObject(event, 0); + CloseHandle(event)?; + + MessageBoxA(None, s!("Ansi"), s!("Caption"), MB_OK); + MessageBoxW(None, w!("Wide"), w!("Caption"), MB_OK); + } + + Ok(()) +} +``` + +## windows-sys + +The `windows-sys` crate is a zero-overhead fallback for the most demanding situations and primarily where the absolute best compile time is essential. It only includes function declarations (externs), structs, and constants. No convenience helpers, traits, or wrappers are provided. + +Start by adding the following to your Cargo.toml file: + +```toml +[dependencies.windows-sys] +version = "0.52" +features = [ + "Win32_Foundation", + "Win32_Security", + "Win32_System_Threading", + "Win32_UI_WindowsAndMessaging", +] +``` + +Make use of any Windows APIs as needed: + +```rust,no_run +use windows_sys::{ + core::*, Win32::Foundation::*, Win32::System::Threading::*, Win32::UI::WindowsAndMessaging::*, +}; + +fn main() { + unsafe { + let event = CreateEventW(std::ptr::null(), 1, 0, std::ptr::null()); + SetEvent(event); + WaitForSingleObject(event, 0); + CloseHandle(event); + + MessageBoxA(0, s!("Ansi"), s!("Caption"), MB_OK); + MessageBoxW(0, w!("Wide"), w!("Caption"), MB_OK); + } +} +``` diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/Foundation/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/Foundation/mod.rs new file mode 100644 index 000000000..1bbf58648 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/Foundation/mod.rs @@ -0,0 +1,2224 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtClose(handle : super::super::Win32::Foundation:: HANDLE) -> super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtQueryObject(handle : super::super::Win32::Foundation:: HANDLE, objectinformationclass : OBJECT_INFORMATION_CLASS, objectinformation : *mut ::core::ffi::c_void, objectinformationlength : u32, returnlength : *mut u32) -> super::super::Win32::Foundation:: NTSTATUS); +pub const DontUseThisType: POOL_TYPE = 3i32; +pub const DontUseThisTypeSession: POOL_TYPE = 35i32; +pub const IoPriorityCritical: IO_PRIORITY_HINT = 4i32; +pub const IoPriorityHigh: IO_PRIORITY_HINT = 3i32; +pub const IoPriorityLow: IO_PRIORITY_HINT = 1i32; +pub const IoPriorityNormal: IO_PRIORITY_HINT = 2i32; +pub const IoPriorityVeryLow: IO_PRIORITY_HINT = 0i32; +pub const LockQueueAfdWorkQueueLock: KSPIN_LOCK_QUEUE_NUMBER = 13i32; +pub const LockQueueBcbLock: KSPIN_LOCK_QUEUE_NUMBER = 14i32; +pub const LockQueueIoCancelLock: KSPIN_LOCK_QUEUE_NUMBER = 7i32; +pub const LockQueueIoCompletionLock: KSPIN_LOCK_QUEUE_NUMBER = 11i32; +pub const LockQueueIoDatabaseLock: KSPIN_LOCK_QUEUE_NUMBER = 10i32; +pub const LockQueueIoVpbLock: KSPIN_LOCK_QUEUE_NUMBER = 9i32; +pub const LockQueueMasterLock: KSPIN_LOCK_QUEUE_NUMBER = 5i32; +pub const LockQueueMaximumLock: KSPIN_LOCK_QUEUE_NUMBER = 17i32; +pub const LockQueueNonPagedPoolLock: KSPIN_LOCK_QUEUE_NUMBER = 6i32; +pub const LockQueueNtfsStructLock: KSPIN_LOCK_QUEUE_NUMBER = 12i32; +pub const LockQueueUnusedSpare0: KSPIN_LOCK_QUEUE_NUMBER = 0i32; +pub const LockQueueUnusedSpare1: KSPIN_LOCK_QUEUE_NUMBER = 1i32; +pub const LockQueueUnusedSpare15: KSPIN_LOCK_QUEUE_NUMBER = 15i32; +pub const LockQueueUnusedSpare16: KSPIN_LOCK_QUEUE_NUMBER = 16i32; +pub const LockQueueUnusedSpare2: KSPIN_LOCK_QUEUE_NUMBER = 2i32; +pub const LockQueueUnusedSpare3: KSPIN_LOCK_QUEUE_NUMBER = 3i32; +pub const LockQueueUnusedSpare8: KSPIN_LOCK_QUEUE_NUMBER = 8i32; +pub const LockQueueVacbLock: KSPIN_LOCK_QUEUE_NUMBER = 4i32; +pub const MaxIoPriorityTypes: IO_PRIORITY_HINT = 5i32; +pub const MaxPoolType: POOL_TYPE = 7i32; +pub const NonPagedPool: POOL_TYPE = 0i32; +pub const NonPagedPoolBase: POOL_TYPE = 0i32; +pub const NonPagedPoolBaseCacheAligned: POOL_TYPE = 4i32; +pub const NonPagedPoolBaseCacheAlignedMustS: POOL_TYPE = 6i32; +pub const NonPagedPoolBaseMustSucceed: POOL_TYPE = 2i32; +pub const NonPagedPoolCacheAligned: POOL_TYPE = 4i32; +pub const NonPagedPoolCacheAlignedMustS: POOL_TYPE = 6i32; +pub const NonPagedPoolCacheAlignedMustSSession: POOL_TYPE = 38i32; +pub const NonPagedPoolCacheAlignedSession: POOL_TYPE = 36i32; +pub const NonPagedPoolExecute: POOL_TYPE = 0i32; +pub const NonPagedPoolMustSucceed: POOL_TYPE = 2i32; +pub const NonPagedPoolMustSucceedSession: POOL_TYPE = 34i32; +pub const NonPagedPoolNx: POOL_TYPE = 512i32; +pub const NonPagedPoolNxCacheAligned: POOL_TYPE = 516i32; +pub const NonPagedPoolSession: POOL_TYPE = 32i32; +pub const NonPagedPoolSessionNx: POOL_TYPE = 544i32; +pub const ObjectBasicInformation: OBJECT_INFORMATION_CLASS = 0i32; +pub const ObjectTypeInformation: OBJECT_INFORMATION_CLASS = 2i32; +pub const PagedPool: POOL_TYPE = 1i32; +pub const PagedPoolCacheAligned: POOL_TYPE = 5i32; +pub const PagedPoolCacheAlignedSession: POOL_TYPE = 37i32; +pub const PagedPoolSession: POOL_TYPE = 33i32; +pub type IO_PRIORITY_HINT = i32; +pub type KSPIN_LOCK_QUEUE_NUMBER = i32; +pub type OBJECT_INFORMATION_CLASS = i32; +pub type POOL_TYPE = i32; +#[repr(C)] +#[doc = "Required features: `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct ACCESS_STATE { + pub OperationID: super::super::Win32::Foundation::LUID, + pub SecurityEvaluated: super::super::Win32::Foundation::BOOLEAN, + pub GenerateAudit: super::super::Win32::Foundation::BOOLEAN, + pub GenerateOnClose: super::super::Win32::Foundation::BOOLEAN, + pub PrivilegesAllocated: super::super::Win32::Foundation::BOOLEAN, + pub Flags: u32, + pub RemainingDesiredAccess: u32, + pub PreviouslyGrantedAccess: u32, + pub OriginalDesiredAccess: u32, + pub SubjectSecurityContext: SECURITY_SUBJECT_CONTEXT, + pub SecurityDescriptor: super::super::Win32::Security::PSECURITY_DESCRIPTOR, + pub AuxData: *mut ::core::ffi::c_void, + pub Privileges: ACCESS_STATE_0, + pub AuditPrivileges: super::super::Win32::Foundation::BOOLEAN, + pub ObjectName: super::super::Win32::Foundation::UNICODE_STRING, + pub ObjectTypeName: super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(all(feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for ACCESS_STATE {} +#[cfg(all(feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for ACCESS_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union ACCESS_STATE_0 { + pub InitialPrivilegeSet: super::System::SystemServices::INITIAL_PRIVILEGE_SET, + pub PrivilegeSet: super::super::Win32::Security::PRIVILEGE_SET, +} +#[cfg(all(feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for ACCESS_STATE_0 {} +#[cfg(all(feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for ACCESS_STATE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct DEVICE_OBJECT { + pub Type: i16, + pub Size: u16, + pub ReferenceCount: i32, + pub DriverObject: *mut DRIVER_OBJECT, + pub NextDevice: *mut DEVICE_OBJECT, + pub AttachedDevice: *mut DEVICE_OBJECT, + pub CurrentIrp: *mut IRP, + pub Timer: PIO_TIMER, + pub Flags: u32, + pub Characteristics: u32, + pub Vpb: *mut VPB, + pub DeviceExtension: *mut ::core::ffi::c_void, + pub DeviceType: u32, + pub StackSize: i8, + pub Queue: DEVICE_OBJECT_0, + pub AlignmentRequirement: u32, + pub DeviceQueue: KDEVICE_QUEUE, + pub Dpc: KDPC, + pub ActiveThreadCount: u32, + pub SecurityDescriptor: super::super::Win32::Security::PSECURITY_DESCRIPTOR, + pub DeviceLock: KEVENT, + pub SectorSize: u16, + pub Spare1: u16, + pub DeviceObjectExtension: *mut DEVOBJ_EXTENSION, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for DEVICE_OBJECT {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for DEVICE_OBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union DEVICE_OBJECT_0 { + pub ListEntry: super::super::Win32::System::Kernel::LIST_ENTRY, + pub Wcb: super::System::SystemServices::WAIT_CONTEXT_BLOCK, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for DEVICE_OBJECT_0 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for DEVICE_OBJECT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct DEVOBJ_EXTENSION { + pub Type: i16, + pub Size: u16, + pub DeviceObject: *mut DEVICE_OBJECT, + pub PowerFlags: u32, + pub Dope: *mut _DEVICE_OBJECT_POWER_EXTENSION, + pub ExtensionFlags: u32, + pub DeviceNode: *mut ::core::ffi::c_void, + pub AttachedTo: *mut DEVICE_OBJECT, + pub StartIoCount: i32, + pub StartIoKey: i32, + pub StartIoFlags: u32, + pub Vpb: *mut VPB, + pub DependencyNode: *mut ::core::ffi::c_void, + pub InterruptContext: *mut ::core::ffi::c_void, + pub InterruptCount: i32, + pub VerifierContext: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for DEVOBJ_EXTENSION {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for DEVOBJ_EXTENSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_HEADER { + pub Anonymous: DISPATCHER_HEADER_0, + pub SignalState: i32, + pub WaitListHead: super::super::Win32::System::Kernel::LIST_ENTRY, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union DISPATCHER_HEADER_0 { + pub Anonymous1: DISPATCHER_HEADER_0_0, + pub Anonymous2: DISPATCHER_HEADER_0_1, + pub Anonymous3: DISPATCHER_HEADER_0_2, + pub Anonymous4: DISPATCHER_HEADER_0_3, + pub Anonymous5: DISPATCHER_HEADER_0_4, + pub Anonymous6: DISPATCHER_HEADER_0_5, + pub Anonymous7: DISPATCHER_HEADER_0_6, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union DISPATCHER_HEADER_0_0 { + pub Lock: i32, + pub LockNV: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_HEADER_0_1 { + pub Type: u8, + pub Signalling: u8, + pub Size: u8, + pub Reserved1: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_HEADER_0_2 { + pub TimerType: u8, + pub Anonymous1: DISPATCHER_HEADER_0_2_0, + pub Hand: u8, + pub Anonymous2: DISPATCHER_HEADER_0_2_1, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union DISPATCHER_HEADER_0_2_0 { + pub TimerControlFlags: u8, + pub Anonymous: DISPATCHER_HEADER_0_2_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_2_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_HEADER_0_2_0_0 { + pub _bitfield: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_2_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union DISPATCHER_HEADER_0_2_1 { + pub TimerMiscFlags: u8, + pub Anonymous: DISPATCHER_HEADER_0_2_1_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_2_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_HEADER_0_2_1_0 { + pub _bitfield: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_2_1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_2_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_HEADER_0_3 { + pub Timer2Type: u8, + pub Anonymous: DISPATCHER_HEADER_0_3_0, + pub Timer2ComponentId: u8, + pub Timer2RelativeId: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union DISPATCHER_HEADER_0_3_0 { + pub Timer2Flags: u8, + pub Anonymous: DISPATCHER_HEADER_0_3_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_3_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_HEADER_0_3_0_0 { + pub _bitfield: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_3_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_3_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_HEADER_0_4 { + pub QueueType: u8, + pub Anonymous: DISPATCHER_HEADER_0_4_0, + pub QueueSize: u8, + pub QueueReserved: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_4 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union DISPATCHER_HEADER_0_4_0 { + pub QueueControlFlags: u8, + pub Anonymous: DISPATCHER_HEADER_0_4_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_4_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_4_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_HEADER_0_4_0_0 { + pub _bitfield: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_4_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_4_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_HEADER_0_5 { + pub ThreadType: u8, + pub ThreadReserved: u8, + pub Anonymous1: DISPATCHER_HEADER_0_5_0, + pub Anonymous2: DISPATCHER_HEADER_0_5_1, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_5 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union DISPATCHER_HEADER_0_5_0 { + pub ThreadControlFlags: u8, + pub Anonymous: DISPATCHER_HEADER_0_5_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_5_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_5_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_HEADER_0_5_0_0 { + pub _bitfield: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_5_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_5_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union DISPATCHER_HEADER_0_5_1 { + pub DebugActive: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_5_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_5_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_HEADER_0_6 { + pub MutantType: u8, + pub MutantSize: u8, + pub DpcActive: super::super::Win32::Foundation::BOOLEAN, + pub MutantReserved: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_HEADER_0_6 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_HEADER_0_6 { + fn clone(&self) -> Self { + *self + } +} +pub type DMA_COMMON_BUFFER_VECTOR = isize; +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct DRIVER_EXTENSION { + pub DriverObject: *mut DRIVER_OBJECT, + pub AddDevice: PDRIVER_ADD_DEVICE, + pub Count: u32, + pub ServiceKeyName: super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for DRIVER_EXTENSION {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for DRIVER_EXTENSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct DRIVER_OBJECT { + pub Type: i16, + pub Size: i16, + pub DeviceObject: *mut DEVICE_OBJECT, + pub Flags: u32, + pub DriverStart: *mut ::core::ffi::c_void, + pub DriverSize: u32, + pub DriverSection: *mut ::core::ffi::c_void, + pub DriverExtension: *mut DRIVER_EXTENSION, + pub DriverName: super::super::Win32::Foundation::UNICODE_STRING, + pub HardwareDatabase: *mut super::super::Win32::Foundation::UNICODE_STRING, + pub FastIoDispatch: *mut FAST_IO_DISPATCH, + pub DriverInit: PDRIVER_INITIALIZE, + pub DriverStartIo: PDRIVER_STARTIO, + pub DriverUnload: PDRIVER_UNLOAD, + pub MajorFunction: [PDRIVER_DISPATCH; 28], +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for DRIVER_OBJECT {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for DRIVER_OBJECT { + fn clone(&self) -> Self { + *self + } +} +pub type ECP_HEADER = isize; +pub type ECP_LIST = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct ERESOURCE { + pub SystemResourcesList: super::super::Win32::System::Kernel::LIST_ENTRY, + pub OwnerTable: *mut OWNER_ENTRY, + pub ActiveCount: i16, + pub Anonymous1: ERESOURCE_0, + pub SharedWaiters: *mut ::core::ffi::c_void, + pub ExclusiveWaiters: *mut ::core::ffi::c_void, + pub OwnerEntry: OWNER_ENTRY, + pub ActiveEntries: u32, + pub ContentionCount: u32, + pub NumberOfSharedWaiters: u32, + pub NumberOfExclusiveWaiters: u32, + pub Anonymous2: ERESOURCE_1, + pub SpinLock: usize, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for ERESOURCE {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for ERESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub union ERESOURCE_0 { + pub Flag: u16, + pub Anonymous: ERESOURCE_0_0, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for ERESOURCE_0 {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for ERESOURCE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct ERESOURCE_0_0 { + pub ReservedLowFlags: u8, + pub WaiterPriority: u8, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for ERESOURCE_0_0 {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for ERESOURCE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub union ERESOURCE_1 { + pub Address: *mut ::core::ffi::c_void, + pub CreatorBackTraceIndex: usize, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for ERESOURCE_1 {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for ERESOURCE_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAST_IO_DISPATCH { + pub SizeOfFastIoDispatch: u32, + pub FastIoCheckIfPossible: PFAST_IO_CHECK_IF_POSSIBLE, + pub FastIoRead: PFAST_IO_READ, + pub FastIoWrite: PFAST_IO_WRITE, + pub FastIoQueryBasicInfo: PFAST_IO_QUERY_BASIC_INFO, + pub FastIoQueryStandardInfo: PFAST_IO_QUERY_STANDARD_INFO, + pub FastIoLock: PFAST_IO_LOCK, + pub FastIoUnlockSingle: PFAST_IO_UNLOCK_SINGLE, + pub FastIoUnlockAll: PFAST_IO_UNLOCK_ALL, + pub FastIoUnlockAllByKey: PFAST_IO_UNLOCK_ALL_BY_KEY, + pub FastIoDeviceControl: PFAST_IO_DEVICE_CONTROL, + pub AcquireFileForNtCreateSection: PFAST_IO_ACQUIRE_FILE, + pub ReleaseFileForNtCreateSection: PFAST_IO_RELEASE_FILE, + pub FastIoDetachDevice: PFAST_IO_DETACH_DEVICE, + pub FastIoQueryNetworkOpenInfo: PFAST_IO_QUERY_NETWORK_OPEN_INFO, + pub AcquireForModWrite: PFAST_IO_ACQUIRE_FOR_MOD_WRITE, + pub MdlRead: PFAST_IO_MDL_READ, + pub MdlReadComplete: PFAST_IO_MDL_READ_COMPLETE, + pub PrepareMdlWrite: PFAST_IO_PREPARE_MDL_WRITE, + pub MdlWriteComplete: PFAST_IO_MDL_WRITE_COMPLETE, + pub FastIoReadCompressed: PFAST_IO_READ_COMPRESSED, + pub FastIoWriteCompressed: PFAST_IO_WRITE_COMPRESSED, + pub MdlReadCompleteCompressed: PFAST_IO_MDL_READ_COMPLETE_COMPRESSED, + pub MdlWriteCompleteCompressed: PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED, + pub FastIoQueryOpen: PFAST_IO_QUERY_OPEN, + pub ReleaseForModWrite: PFAST_IO_RELEASE_FOR_MOD_WRITE, + pub AcquireForCcFlush: PFAST_IO_ACQUIRE_FOR_CCFLUSH, + pub ReleaseForCcFlush: PFAST_IO_RELEASE_FOR_CCFLUSH, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAST_IO_DISPATCH {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAST_IO_DISPATCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct FAST_MUTEX { + pub Count: i32, + pub Owner: *mut ::core::ffi::c_void, + pub Contention: u32, + pub Event: KEVENT, + pub OldIrql: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for FAST_MUTEX {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for FAST_MUTEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FILE_OBJECT { + pub Type: i16, + pub Size: i16, + pub DeviceObject: *mut DEVICE_OBJECT, + pub Vpb: *mut VPB, + pub FsContext: *mut ::core::ffi::c_void, + pub FsContext2: *mut ::core::ffi::c_void, + pub SectionObjectPointer: *mut SECTION_OBJECT_POINTERS, + pub PrivateCacheMap: *mut ::core::ffi::c_void, + pub FinalStatus: super::super::Win32::Foundation::NTSTATUS, + pub RelatedFileObject: *mut FILE_OBJECT, + pub LockOperation: super::super::Win32::Foundation::BOOLEAN, + pub DeletePending: super::super::Win32::Foundation::BOOLEAN, + pub ReadAccess: super::super::Win32::Foundation::BOOLEAN, + pub WriteAccess: super::super::Win32::Foundation::BOOLEAN, + pub DeleteAccess: super::super::Win32::Foundation::BOOLEAN, + pub SharedRead: super::super::Win32::Foundation::BOOLEAN, + pub SharedWrite: super::super::Win32::Foundation::BOOLEAN, + pub SharedDelete: super::super::Win32::Foundation::BOOLEAN, + pub Flags: u32, + pub FileName: super::super::Win32::Foundation::UNICODE_STRING, + pub CurrentByteOffset: i64, + pub Waiters: u32, + pub Busy: u32, + pub LastLock: *mut ::core::ffi::c_void, + pub Lock: KEVENT, + pub Event: KEVENT, + pub CompletionContext: *mut IO_COMPLETION_CONTEXT, + pub IrpListLock: usize, + pub IrpList: super::super::Win32::System::Kernel::LIST_ENTRY, + pub FileObjectExtension: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FILE_OBJECT {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FILE_OBJECT { + fn clone(&self) -> Self { + *self + } +} +pub type IOMMU_DMA_DEVICE = isize; +pub type IOMMU_DMA_DOMAIN = isize; +#[repr(C)] +pub struct IO_COMPLETION_CONTEXT { + pub Port: *mut ::core::ffi::c_void, + pub Key: *mut ::core::ffi::c_void, + pub UsageCount: isize, +} +impl ::core::marker::Copy for IO_COMPLETION_CONTEXT {} +impl ::core::clone::Clone for IO_COMPLETION_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct IO_SECURITY_CONTEXT { + pub SecurityQos: *mut super::super::Win32::Security::SECURITY_QUALITY_OF_SERVICE, + pub AccessState: *mut ACCESS_STATE, + pub DesiredAccess: u32, + pub FullCreateOptions: u32, +} +#[cfg(all(feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for IO_SECURITY_CONTEXT {} +#[cfg(all(feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for IO_SECURITY_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION { + pub MajorFunction: u8, + pub MinorFunction: u8, + pub Flags: u8, + pub Control: u8, + pub Parameters: IO_STACK_LOCATION_0, + pub DeviceObject: *mut DEVICE_OBJECT, + pub FileObject: *mut FILE_OBJECT, + pub CompletionRoutine: PIO_COMPLETION_ROUTINE, + pub Context: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union IO_STACK_LOCATION_0 { + pub Create: IO_STACK_LOCATION_0_2, + pub CreatePipe: IO_STACK_LOCATION_0_1, + pub CreateMailslot: IO_STACK_LOCATION_0_0, + pub Read: IO_STACK_LOCATION_0_25, + pub Write: IO_STACK_LOCATION_0_38, + pub QueryDirectory: IO_STACK_LOCATION_0_16, + pub NotifyDirectory: IO_STACK_LOCATION_0_10, + pub NotifyDirectoryEx: IO_STACK_LOCATION_0_9, + pub QueryFile: IO_STACK_LOCATION_0_18, + pub SetFile: IO_STACK_LOCATION_0_28, + pub QueryEa: IO_STACK_LOCATION_0_17, + pub SetEa: IO_STACK_LOCATION_0_27, + pub QueryVolume: IO_STACK_LOCATION_0_23, + pub SetVolume: IO_STACK_LOCATION_0_32, + pub FileSystemControl: IO_STACK_LOCATION_0_5, + pub LockControl: IO_STACK_LOCATION_0_7, + pub DeviceIoControl: IO_STACK_LOCATION_0_4, + pub QuerySecurity: IO_STACK_LOCATION_0_22, + pub SetSecurity: IO_STACK_LOCATION_0_31, + pub MountVolume: IO_STACK_LOCATION_0_8, + pub VerifyVolume: IO_STACK_LOCATION_0_35, + pub Scsi: IO_STACK_LOCATION_0_26, + pub QueryQuota: IO_STACK_LOCATION_0_21, + pub SetQuota: IO_STACK_LOCATION_0_30, + pub QueryDeviceRelations: IO_STACK_LOCATION_0_14, + pub QueryInterface: IO_STACK_LOCATION_0_20, + pub DeviceCapabilities: IO_STACK_LOCATION_0_3, + pub FilterResourceRequirements: IO_STACK_LOCATION_0_6, + pub ReadWriteConfig: IO_STACK_LOCATION_0_24, + pub SetLock: IO_STACK_LOCATION_0_29, + pub QueryId: IO_STACK_LOCATION_0_19, + pub QueryDeviceText: IO_STACK_LOCATION_0_15, + pub UsageNotification: IO_STACK_LOCATION_0_34, + pub WaitWake: IO_STACK_LOCATION_0_37, + pub PowerSequence: IO_STACK_LOCATION_0_12, + pub Power: IO_STACK_LOCATION_0_13, + pub StartDevice: IO_STACK_LOCATION_0_33, + pub WMI: IO_STACK_LOCATION_0_36, + pub Others: IO_STACK_LOCATION_0_11, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_0 { + pub SecurityContext: *mut IO_SECURITY_CONTEXT, + pub Options: u32, + pub Reserved: u16, + pub ShareAccess: u16, + pub Parameters: *mut super::System::SystemServices::MAILSLOT_CREATE_PARAMETERS, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_0 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_1 { + pub SecurityContext: *mut IO_SECURITY_CONTEXT, + pub Options: u32, + pub Reserved: u16, + pub ShareAccess: u16, + pub Parameters: *mut super::System::SystemServices::NAMED_PIPE_CREATE_PARAMETERS, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_1 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_2 { + pub SecurityContext: *mut IO_SECURITY_CONTEXT, + pub Options: u32, + pub FileAttributes: u16, + pub ShareAccess: u16, + pub EaLength: u32, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_2 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_3 { + pub Capabilities: *mut super::System::SystemServices::DEVICE_CAPABILITIES, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_3 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_4 { + pub OutputBufferLength: u32, + pub InputBufferLength: u32, + pub IoControlCode: u32, + pub Type3InputBuffer: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_4 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_5 { + pub OutputBufferLength: u32, + pub InputBufferLength: u32, + pub FsControlCode: u32, + pub Type3InputBuffer: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_5 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_6 { + pub IoResourceRequirementList: *mut super::System::SystemServices::IO_RESOURCE_REQUIREMENTS_LIST, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_6 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_7 { + pub Length: *mut i64, + pub Key: u32, + pub ByteOffset: i64, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_7 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_8 { + pub Vpb: *mut VPB, + pub DeviceObject: *mut DEVICE_OBJECT, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_8 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_9 { + pub Length: u32, + pub CompletionFilter: u32, + pub DirectoryNotifyInformationClass: super::System::SystemServices::DIRECTORY_NOTIFY_INFORMATION_CLASS, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_9 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_10 { + pub Length: u32, + pub CompletionFilter: u32, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_10 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_11 { + pub Argument1: *mut ::core::ffi::c_void, + pub Argument2: *mut ::core::ffi::c_void, + pub Argument3: *mut ::core::ffi::c_void, + pub Argument4: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_11 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_12 { + pub PowerSequence: *mut super::System::SystemServices::POWER_SEQUENCE, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_12 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_12 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_13 { + pub Anonymous: IO_STACK_LOCATION_0_13_0, + pub Type: super::System::SystemServices::POWER_STATE_TYPE, + pub State: super::System::SystemServices::POWER_STATE, + pub ShutdownType: super::super::Win32::System::Power::POWER_ACTION, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_13 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_13 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union IO_STACK_LOCATION_0_13_0 { + pub SystemContext: u32, + pub SystemPowerStateContext: super::System::SystemServices::SYSTEM_POWER_STATE_CONTEXT, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_13_0 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_13_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_14 { + pub Type: super::System::SystemServices::DEVICE_RELATION_TYPE, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_14 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_14 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_15 { + pub DeviceTextType: super::System::SystemServices::DEVICE_TEXT_TYPE, + pub LocaleId: u32, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_15 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_15 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_16 { + pub Length: u32, + pub FileName: *mut super::super::Win32::Foundation::UNICODE_STRING, + pub FileInformationClass: super::super::Win32::System::WindowsProgramming::FILE_INFORMATION_CLASS, + pub FileIndex: u32, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_16 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_17 { + pub Length: u32, + pub EaList: *mut ::core::ffi::c_void, + pub EaListLength: u32, + pub EaIndex: u32, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_17 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_17 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_18 { + pub Length: u32, + pub FileInformationClass: super::super::Win32::System::WindowsProgramming::FILE_INFORMATION_CLASS, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_18 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_18 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_19 { + pub IdType: super::System::SystemServices::BUS_QUERY_ID_TYPE, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_19 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_19 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_20 { + pub InterfaceType: *const ::windows_sys::core::GUID, + pub Size: u16, + pub Version: u16, + pub Interface: *mut super::System::SystemServices::INTERFACE, + pub InterfaceSpecificData: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_20 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_20 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_21 { + pub Length: u32, + pub StartSid: super::super::Win32::Foundation::PSID, + pub SidList: *mut super::Storage::FileSystem::FILE_GET_QUOTA_INFORMATION, + pub SidListLength: u32, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_21 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_21 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_22 { + pub SecurityInformation: u32, + pub Length: u32, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_22 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_22 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_23 { + pub Length: u32, + pub FsInformationClass: super::Storage::FileSystem::FS_INFORMATION_CLASS, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_23 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_23 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_24 { + pub WhichSpace: u32, + pub Buffer: *mut ::core::ffi::c_void, + pub Offset: u32, + pub Length: u32, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_24 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_24 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_25 { + pub Length: u32, + pub Key: u32, + pub ByteOffset: i64, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_25 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_25 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_26 { + pub Srb: *mut _SCSI_REQUEST_BLOCK, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_26 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_26 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_27 { + pub Length: u32, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_27 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_27 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_28 { + pub Length: u32, + pub FileInformationClass: super::super::Win32::System::WindowsProgramming::FILE_INFORMATION_CLASS, + pub FileObject: *mut FILE_OBJECT, + pub Anonymous: IO_STACK_LOCATION_0_28_0, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_28 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_28 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union IO_STACK_LOCATION_0_28_0 { + pub Anonymous: IO_STACK_LOCATION_0_28_0_0, + pub ClusterCount: u32, + pub DeleteHandle: super::super::Win32::Foundation::HANDLE, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_28_0 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_28_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_28_0_0 { + pub ReplaceIfExists: super::super::Win32::Foundation::BOOLEAN, + pub AdvanceOnly: super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_28_0_0 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_28_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_29 { + pub Lock: super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_29 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_29 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_30 { + pub Length: u32, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_30 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_30 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_31 { + pub SecurityInformation: u32, + pub SecurityDescriptor: super::super::Win32::Security::PSECURITY_DESCRIPTOR, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_31 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_31 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_32 { + pub Length: u32, + pub FsInformationClass: super::Storage::FileSystem::FS_INFORMATION_CLASS, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_32 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_33 { + pub AllocatedResources: *mut super::System::SystemServices::CM_RESOURCE_LIST, + pub AllocatedResourcesTranslated: *mut super::System::SystemServices::CM_RESOURCE_LIST, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_33 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_33 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_34 { + pub InPath: super::super::Win32::Foundation::BOOLEAN, + pub Reserved: [super::super::Win32::Foundation::BOOLEAN; 3], + pub Type: super::System::SystemServices::DEVICE_USAGE_NOTIFICATION_TYPE, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_34 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_34 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_35 { + pub Vpb: *mut VPB, + pub DeviceObject: *mut DEVICE_OBJECT, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_35 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_35 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_36 { + pub ProviderId: usize, + pub DataPath: *mut ::core::ffi::c_void, + pub BufferSize: u32, + pub Buffer: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_36 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_36 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_37 { + pub PowerState: super::super::Win32::System::Power::SYSTEM_POWER_STATE, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_37 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_37 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_STACK_LOCATION_0_38 { + pub Length: u32, + pub Key: u32, + pub ByteOffset: i64, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_STACK_LOCATION_0_38 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_STACK_LOCATION_0_38 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IRP { + pub Type: i16, + pub Size: u16, + pub MdlAddress: *mut MDL, + pub Flags: u32, + pub AssociatedIrp: IRP_1, + pub ThreadListEntry: super::super::Win32::System::Kernel::LIST_ENTRY, + pub IoStatus: super::super::Win32::System::IO::IO_STATUS_BLOCK, + pub RequestorMode: i8, + pub PendingReturned: super::super::Win32::Foundation::BOOLEAN, + pub StackCount: u8, + pub CurrentLocation: u8, + pub Cancel: super::super::Win32::Foundation::BOOLEAN, + pub CancelIrql: u8, + pub ApcEnvironment: i8, + pub AllocationFlags: u8, + pub Anonymous: IRP_0, + pub UserEvent: *mut KEVENT, + pub Overlay: IRP_2, + pub CancelRoutine: PDRIVER_CANCEL, + pub UserBuffer: *mut ::core::ffi::c_void, + pub Tail: IRP_3, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IRP {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IRP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union IRP_0 { + pub UserIosb: *mut super::super::Win32::System::IO::IO_STATUS_BLOCK, + pub IoRingContext: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IRP_0 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IRP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union IRP_1 { + pub MasterIrp: *mut IRP, + pub IrpCount: i32, + pub SystemBuffer: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IRP_1 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IRP_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union IRP_2 { + pub AsynchronousParameters: IRP_2_0, + pub AllocationSize: i64, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IRP_2 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IRP_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IRP_2_0 { + pub Anonymous1: IRP_2_0_0, + pub Anonymous2: IRP_2_0_1, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IRP_2_0 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IRP_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union IRP_2_0_0 { + pub UserApcRoutine: super::super::Win32::System::IO::PIO_APC_ROUTINE, + pub IssuingProcess: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IRP_2_0_0 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IRP_2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union IRP_2_0_1 { + pub UserApcContext: *mut ::core::ffi::c_void, + pub IoRing: *mut _IORING_OBJECT, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IRP_2_0_1 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IRP_2_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union IRP_3 { + pub Overlay: IRP_3_0, + pub Apc: super::System::SystemServices::KAPC, + pub CompletionKey: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IRP_3 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IRP_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IRP_3_0 { + pub Anonymous1: IRP_3_0_0, + pub Thread: PETHREAD, + pub AuxiliaryBuffer: ::windows_sys::core::PSTR, + pub Anonymous2: IRP_3_0_1, + pub OriginalFileObject: *mut FILE_OBJECT, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IRP_3_0 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IRP_3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union IRP_3_0_0 { + pub DeviceQueueEntry: super::System::SystemServices::KDEVICE_QUEUE_ENTRY, + pub Anonymous: IRP_3_0_0_0, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IRP_3_0_0 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IRP_3_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IRP_3_0_0_0 { + pub DriverContext: [*mut ::core::ffi::c_void; 4], +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IRP_3_0_0_0 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IRP_3_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IRP_3_0_1 { + pub ListEntry: super::super::Win32::System::Kernel::LIST_ENTRY, + pub Anonymous: IRP_3_0_1_0, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IRP_3_0_1 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IRP_3_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union IRP_3_0_1_0 { + pub CurrentStackLocation: *mut IO_STACK_LOCATION, + pub PacketType: u32, +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IRP_3_0_1_0 {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IRP_3_0_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KDEVICE_QUEUE { + pub Type: i16, + pub Size: i16, + pub DeviceListHead: super::super::Win32::System::Kernel::LIST_ENTRY, + pub Lock: usize, + pub Busy: super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KDEVICE_QUEUE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KDEVICE_QUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct KDPC { + pub Anonymous: KDPC_0, + pub DpcListEntry: super::super::Win32::System::Kernel::SINGLE_LIST_ENTRY, + pub ProcessorHistory: usize, + pub DeferredRoutine: PKDEFERRED_ROUTINE, + pub DeferredContext: *mut ::core::ffi::c_void, + pub SystemArgument1: *mut ::core::ffi::c_void, + pub SystemArgument2: *mut ::core::ffi::c_void, + pub DpcData: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for KDPC {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for KDPC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub union KDPC_0 { + pub TargetInfoAsUlong: u32, + pub Anonymous: KDPC_0_0, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for KDPC_0 {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for KDPC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct KDPC_0_0 { + pub Type: u8, + pub Importance: u8, + pub Number: u16, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for KDPC_0_0 {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for KDPC_0_0 { + fn clone(&self) -> Self { + *self + } +} +pub type KENLISTMENT = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KEVENT { + pub Header: DISPATCHER_HEADER, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KEVENT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KEVENT { + fn clone(&self) -> Self { + *self + } +} +pub type KGDT = isize; +pub type KIDT = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KMUTANT { + pub Header: DISPATCHER_HEADER, + pub MutantListEntry: super::super::Win32::System::Kernel::LIST_ENTRY, + pub OwnerThread: *mut isize, + pub Anonymous: KMUTANT_0, + pub ApcDisable: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KMUTANT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KMUTANT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union KMUTANT_0 { + pub MutantFlags: u8, + pub Anonymous: KMUTANT_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KMUTANT_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KMUTANT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KMUTANT_0_0 { + pub _bitfield: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KMUTANT_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KMUTANT_0_0 { + fn clone(&self) -> Self { + *self + } +} +pub type KPCR = isize; +pub type KPRCB = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KQUEUE { + pub Header: DISPATCHER_HEADER, + pub EntryListHead: super::super::Win32::System::Kernel::LIST_ENTRY, + pub CurrentCount: u32, + pub MaximumCount: u32, + pub ThreadListHead: super::super::Win32::System::Kernel::LIST_ENTRY, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KQUEUE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KQUEUE { + fn clone(&self) -> Self { + *self + } +} +pub type KRESOURCEMANAGER = isize; +pub type KTM = isize; +pub type KTRANSACTION = isize; +pub type KTSS = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KWAIT_BLOCK { + pub WaitListEntry: super::super::Win32::System::Kernel::LIST_ENTRY, + pub WaitType: u8, + pub BlockState: u8, + pub WaitKey: u16, + pub Anonymous: KWAIT_BLOCK_0, + pub Object: *mut ::core::ffi::c_void, + pub SparePtr: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KWAIT_BLOCK {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KWAIT_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union KWAIT_BLOCK_0 { + pub Thread: *mut isize, + pub NotificationQueue: *mut KQUEUE, + pub Dpc: *mut KDPC, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KWAIT_BLOCK_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KWAIT_BLOCK_0 { + fn clone(&self) -> Self { + *self + } +} +pub type LOADER_PARAMETER_BLOCK = isize; +#[repr(C)] +pub struct MDL { + pub Next: *mut MDL, + pub Size: i16, + pub MdlFlags: i16, + pub Process: *mut isize, + pub MappedSystemVa: *mut ::core::ffi::c_void, + pub StartVa: *mut ::core::ffi::c_void, + pub ByteCount: u32, + pub ByteOffset: u32, +} +impl ::core::marker::Copy for MDL {} +impl ::core::clone::Clone for MDL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OBJECT_ATTRIBUTES { + pub Length: u32, + pub RootDirectory: super::super::Win32::Foundation::HANDLE, + pub ObjectName: *const super::super::Win32::Foundation::UNICODE_STRING, + pub Attributes: u32, + pub SecurityDescriptor: *const ::core::ffi::c_void, + pub SecurityQualityOfService: *const ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OBJECT_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OBJECT_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OBJECT_ATTRIBUTES32 { + pub Length: u32, + pub RootDirectory: u32, + pub ObjectName: u32, + pub Attributes: u32, + pub SecurityDescriptor: u32, + pub SecurityQualityOfService: u32, +} +impl ::core::marker::Copy for OBJECT_ATTRIBUTES32 {} +impl ::core::clone::Clone for OBJECT_ATTRIBUTES32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OBJECT_ATTRIBUTES64 { + pub Length: u32, + pub RootDirectory: u64, + pub ObjectName: u64, + pub Attributes: u32, + pub SecurityDescriptor: u64, + pub SecurityQualityOfService: u64, +} +impl ::core::marker::Copy for OBJECT_ATTRIBUTES64 {} +impl ::core::clone::Clone for OBJECT_ATTRIBUTES64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OBJECT_NAME_INFORMATION { + pub Name: super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OBJECT_NAME_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OBJECT_NAME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OWNER_ENTRY { + pub OwnerThread: usize, + pub Anonymous: OWNER_ENTRY_0, +} +impl ::core::marker::Copy for OWNER_ENTRY {} +impl ::core::clone::Clone for OWNER_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union OWNER_ENTRY_0 { + pub Anonymous: OWNER_ENTRY_0_0, + pub TableSize: u32, +} +impl ::core::marker::Copy for OWNER_ENTRY_0 {} +impl ::core::clone::Clone for OWNER_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OWNER_ENTRY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for OWNER_ENTRY_0_0 {} +impl ::core::clone::Clone for OWNER_ENTRY_0_0 { + fn clone(&self) -> Self { + *self + } +} +pub type PAFFINITY_TOKEN = isize; +pub type PBUS_HANDLER = isize; +pub type PCALLBACK_OBJECT = isize; +pub type PDEVICE_HANDLER_OBJECT = isize; +pub type PEJOB = isize; +pub type PEPROCESS = isize; +pub type PESILO = isize; +pub type PETHREAD = isize; +pub type PEX_RUNDOWN_REF_CACHE_AWARE = isize; +pub type PEX_TIMER = isize; +pub type PIO_REMOVE_LOCK_TRACKING_BLOCK = isize; +pub type PIO_TIMER = isize; +pub type PIO_WORKITEM = isize; +pub type PKINTERRUPT = isize; +pub type PKPROCESS = isize; +pub type PKTHREAD = isize; +pub type PNOTIFY_SYNC = isize; +pub type POBJECT_TYPE = isize; +pub type POHANDLE = isize; +pub type PPCW_BUFFER = isize; +pub type PPCW_INSTANCE = isize; +pub type PPCW_REGISTRATION = isize; +pub type PRKPROCESS = isize; +pub type PRKTHREAD = isize; +pub type PSILO_MONITOR = isize; +#[repr(C)] +pub struct RTL_SPLAY_LINKS { + pub Parent: *mut RTL_SPLAY_LINKS, + pub LeftChild: *mut RTL_SPLAY_LINKS, + pub RightChild: *mut RTL_SPLAY_LINKS, +} +impl ::core::marker::Copy for RTL_SPLAY_LINKS {} +impl ::core::clone::Clone for RTL_SPLAY_LINKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECTION_OBJECT_POINTERS { + pub DataSectionObject: *mut ::core::ffi::c_void, + pub SharedCacheMap: *mut ::core::ffi::c_void, + pub ImageSectionObject: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SECTION_OBJECT_POINTERS {} +impl ::core::clone::Clone for SECTION_OBJECT_POINTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct SECURITY_SUBJECT_CONTEXT { + pub ClientToken: *mut ::core::ffi::c_void, + pub ImpersonationLevel: super::super::Win32::Security::SECURITY_IMPERSONATION_LEVEL, + pub PrimaryToken: *mut ::core::ffi::c_void, + pub ProcessAuditId: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for SECURITY_SUBJECT_CONTEXT {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for SECURITY_SUBJECT_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +pub type SspiAsyncContext = isize; +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct TARGET_DEVICE_CUSTOM_NOTIFICATION { + pub Version: u16, + pub Size: u16, + pub Event: ::windows_sys::core::GUID, + pub FileObject: *mut FILE_OBJECT, + pub NameBufferOffset: i32, + pub CustomDataBuffer: [u8; 1], +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for TARGET_DEVICE_CUSTOM_NOTIFICATION {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for TARGET_DEVICE_CUSTOM_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct VPB { + pub Type: i16, + pub Size: i16, + pub Flags: u16, + pub VolumeLabelLength: u16, + pub DeviceObject: *mut DEVICE_OBJECT, + pub RealDevice: *mut DEVICE_OBJECT, + pub SerialNumber: u32, + pub ReferenceCount: u32, + pub VolumeLabel: [u16; 32], +} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for VPB {} +#[cfg(all(feature = "Wdk_Storage_FileSystem", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for VPB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct WORK_QUEUE_ITEM { + pub List: super::super::Win32::System::Kernel::LIST_ENTRY, + pub WorkerRoutine: PWORKER_THREAD_ROUTINE, + pub Parameter: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for WORK_QUEUE_ITEM {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for WORK_QUEUE_ITEM { + fn clone(&self) -> Self { + *self + } +} +pub type _DEVICE_OBJECT_POWER_EXTENSION = isize; +pub type _IORING_OBJECT = isize; +pub type _SCSI_REQUEST_BLOCK = isize; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDRIVER_ADD_DEVICE = ::core::option::Option super::super::Win32::Foundation::NTSTATUS>; +pub type PDRIVER_CANCEL = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDRIVER_DISPATCH = ::core::option::Option super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDRIVER_INITIALIZE = ::core::option::Option super::super::Win32::Foundation::NTSTATUS>; +pub type PDRIVER_STARTIO = ::core::option::Option ()>; +pub type PDRIVER_UNLOAD = ::core::option::Option ()>; +pub type PFAST_IO_ACQUIRE_FILE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_ACQUIRE_FOR_CCFLUSH = ::core::option::Option super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_ACQUIRE_FOR_MOD_WRITE = ::core::option::Option super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_CHECK_IF_POSSIBLE = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +pub type PFAST_IO_DETACH_DEVICE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_DEVICE_CONTROL = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_LOCK = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_MDL_READ = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_MDL_READ_COMPLETE = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_MDL_READ_COMPLETE_COMPRESSED = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_MDL_WRITE_COMPLETE = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_PREPARE_MDL_WRITE = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_QUERY_BASIC_INFO = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_QUERY_NETWORK_OPEN_INFO = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_QUERY_OPEN = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_QUERY_STANDARD_INFO = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_READ = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_READ_COMPRESSED = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +pub type PFAST_IO_RELEASE_FILE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_RELEASE_FOR_CCFLUSH = ::core::option::Option super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_RELEASE_FOR_MOD_WRITE = ::core::option::Option super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_UNLOCK_ALL = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_UNLOCK_ALL_BY_KEY = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_UNLOCK_SINGLE = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_WRITE = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAST_IO_WRITE_COMPRESSED = ::core::option::Option super::super::Win32::Foundation::BOOLEAN>; +pub type PFREE_FUNCTION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIO_COMPLETION_ROUTINE = ::core::option::Option super::super::Win32::Foundation::NTSTATUS>; +pub type PKDEFERRED_ROUTINE = ::core::option::Option ()>; +pub type PWORKER_THREAD_ROUTINE = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/Graphics/Direct3D/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/Graphics/Direct3D/mod.rs new file mode 100644 index 000000000..257f9f88f --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/Graphics/Direct3D/mod.rs @@ -0,0 +1,17032 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTAcquireKeyedMutex(param0 : *mut D3DKMT_ACQUIREKEYEDMUTEX) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTAcquireKeyedMutex2(param0 : *mut D3DKMT_ACQUIREKEYEDMUTEX2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTAdjustFullscreenGamma(param0 : *const D3DKMT_ADJUSTFULLSCREENGAMMA) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCancelPresents(param0 : *const D3DKMT_CANCEL_PRESENTS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn D3DKMTChangeSurfacePointer(param0 : *const D3DKMT_CHANGESURFACEPOINTER) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTChangeVideoMemoryReservation(param0 : *const D3DKMT_CHANGEVIDEOMEMORYRESERVATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCheckExclusiveOwnership() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCheckMonitorPowerState(param0 : *const D3DKMT_CHECKMONITORPOWERSTATE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCheckMultiPlaneOverlaySupport(param0 : *mut D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCheckMultiPlaneOverlaySupport2(param0 : *mut D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCheckMultiPlaneOverlaySupport3(param0 : *mut D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT3) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCheckOcclusion(param0 : *const D3DKMT_CHECKOCCLUSION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCheckSharedResourceAccess(param0 : *const D3DKMT_CHECKSHAREDRESOURCEACCESS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCheckVidPnExclusiveOwnership(param0 : *const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCloseAdapter(param0 : *const D3DKMT_CLOSEADAPTER) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTConfigureSharedResource(param0 : *const D3DKMT_CONFIGURESHAREDRESOURCE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateAllocation(param0 : *mut D3DKMT_CREATEALLOCATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateAllocation2(param0 : *mut D3DKMT_CREATEALLOCATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateContext(param0 : *mut D3DKMT_CREATECONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateContextVirtual(param0 : *const D3DKMT_CREATECONTEXTVIRTUAL) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn D3DKMTCreateDCFromMemory(param0 : *mut D3DKMT_CREATEDCFROMMEMORY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateDevice(param0 : *mut D3DKMT_CREATEDEVICE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateHwContext(param0 : *mut D3DKMT_CREATEHWCONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateHwQueue(param0 : *mut D3DKMT_CREATEHWQUEUE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateKeyedMutex(param0 : *mut D3DKMT_CREATEKEYEDMUTEX) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateKeyedMutex2(param0 : *mut D3DKMT_CREATEKEYEDMUTEX2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateOutputDupl(param0 : *const D3DKMT_CREATE_OUTPUTDUPL) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateOverlay(param0 : *mut D3DKMT_CREATEOVERLAY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreatePagingQueue(param0 : *mut D3DKMT_CREATEPAGINGQUEUE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateProtectedSession(param0 : *mut D3DKMT_CREATEPROTECTEDSESSION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateSynchronizationObject(param0 : *mut D3DKMT_CREATESYNCHRONIZATIONOBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTCreateSynchronizationObject2(param0 : *mut D3DKMT_CREATESYNCHRONIZATIONOBJECT2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTDestroyAllocation(param0 : *const D3DKMT_DESTROYALLOCATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTDestroyAllocation2(param0 : *const D3DKMT_DESTROYALLOCATION2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTDestroyContext(param0 : *const D3DKMT_DESTROYCONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn D3DKMTDestroyDCFromMemory(param0 : *const D3DKMT_DESTROYDCFROMMEMORY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTDestroyDevice(param0 : *const D3DKMT_DESTROYDEVICE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTDestroyHwContext(param0 : *const D3DKMT_DESTROYHWCONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTDestroyHwQueue(param0 : *const D3DKMT_DESTROYHWQUEUE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTDestroyKeyedMutex(param0 : *const D3DKMT_DESTROYKEYEDMUTEX) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTDestroyOutputDupl(param0 : *const D3DKMT_DESTROY_OUTPUTDUPL) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTDestroyOverlay(param0 : *const D3DKMT_DESTROYOVERLAY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTDestroyPagingQueue(param0 : *mut D3DDDI_DESTROYPAGINGQUEUE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTDestroyProtectedSession(param0 : *mut D3DKMT_DESTROYPROTECTEDSESSION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTDestroySynchronizationObject(param0 : *const D3DKMT_DESTROYSYNCHRONIZATIONOBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTEnumAdapters(param0 : *mut D3DKMT_ENUMADAPTERS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTEnumAdapters2(param0 : *mut D3DKMT_ENUMADAPTERS2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-dx-d3dkmt-l1-1-6.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTEnumAdapters3(param0 : *mut D3DKMT_ENUMADAPTERS3) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTEscape(param0 : *const D3DKMT_ESCAPE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTEvict(param0 : *mut D3DKMT_EVICT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTFlipOverlay(param0 : *const D3DKMT_FLIPOVERLAY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTFlushHeapTransitions(param0 : *const D3DKMT_FLUSHHEAPTRANSITIONS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTFreeGpuVirtualAddress(param0 : *const D3DKMT_FREEGPUVIRTUALADDRESS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetAllocationPriority(param0 : *const D3DKMT_GETALLOCATIONPRIORITY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetContextInProcessSchedulingPriority(param0 : *mut D3DKMT_GETCONTEXTINPROCESSSCHEDULINGPRIORITY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetContextSchedulingPriority(param0 : *mut D3DKMT_GETCONTEXTSCHEDULINGPRIORITY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetDWMVerticalBlankEvent(param0 : *const D3DKMT_GETVERTICALBLANKEVENT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetDeviceState(param0 : *mut D3DKMT_GETDEVICESTATE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetDisplayModeList(param0 : *mut D3DKMT_GETDISPLAYMODELIST) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetMultiPlaneOverlayCaps(param0 : *mut D3DKMT_GET_MULTIPLANE_OVERLAY_CAPS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetMultisampleMethodList(param0 : *mut D3DKMT_GETMULTISAMPLEMETHODLIST) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetOverlayState(param0 : *mut D3DKMT_GETOVERLAYSTATE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetPostCompositionCaps(param0 : *mut D3DKMT_GET_POST_COMPOSITION_CAPS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetPresentHistory(param0 : *mut D3DKMT_GETPRESENTHISTORY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetPresentQueueEvent(hadapter : u32, param1 : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetProcessDeviceRemovalSupport(param0 : *mut D3DKMT_GETPROCESSDEVICEREMOVALSUPPORT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetProcessSchedulingPriorityClass(param0 : super::super::super::Win32::Foundation:: HANDLE, param1 : *mut D3DKMT_SCHEDULINGPRIORITYCLASS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetResourcePresentPrivateDriverData(param0 : *mut D3DDDI_GETRESOURCEPRESENTPRIVATEDRIVERDATA) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetRuntimeData(param0 : *mut D3DKMT_GETRUNTIMEDATA) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetScanLine(param0 : *mut D3DKMT_GETSCANLINE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetSharedPrimaryHandle(param0 : *mut D3DKMT_GETSHAREDPRIMARYHANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTGetSharedResourceAdapterLuid(param0 : *mut D3DKMT_GETSHAREDRESOURCEADAPTERLUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTInvalidateActiveVidPn(param0 : *const D3DKMT_INVALIDATEACTIVEVIDPN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTInvalidateCache(param0 : *const D3DKMT_INVALIDATECACHE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTLock(param0 : *mut D3DKMT_LOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTLock2(param0 : *mut D3DKMT_LOCK2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTMakeResident(param0 : *mut D3DDDI_MAKERESIDENT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTMapGpuVirtualAddress(param0 : *mut D3DDDI_MAPGPUVIRTUALADDRESS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTMarkDeviceAsError(param0 : *const D3DKMT_MARKDEVICEASERROR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOfferAllocations(param0 : *const D3DKMT_OFFERALLOCATIONS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOpenAdapterFromDeviceName(param0 : *mut D3DKMT_OPENADAPTERFROMDEVICENAME) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOpenAdapterFromGdiDisplayName(param0 : *mut D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn D3DKMTOpenAdapterFromHdc(param0 : *mut D3DKMT_OPENADAPTERFROMHDC) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOpenAdapterFromLuid(param0 : *mut D3DKMT_OPENADAPTERFROMLUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOpenKeyedMutex(param0 : *mut D3DKMT_OPENKEYEDMUTEX) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOpenKeyedMutex2(param0 : *mut D3DKMT_OPENKEYEDMUTEX2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOpenKeyedMutexFromNtHandle(param0 : *mut D3DKMT_OPENKEYEDMUTEXFROMNTHANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn D3DKMTOpenNtHandleFromName(param0 : *mut D3DKMT_OPENNTHANDLEFROMNAME) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOpenProtectedSessionFromNtHandle(param0 : *mut D3DKMT_OPENPROTECTEDSESSIONFROMNTHANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOpenResource(param0 : *mut D3DKMT_OPENRESOURCE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOpenResource2(param0 : *mut D3DKMT_OPENRESOURCE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOpenResourceFromNtHandle(param0 : *mut D3DKMT_OPENRESOURCEFROMNTHANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOpenSyncObjectFromNtHandle(param0 : *mut D3DKMT_OPENSYNCOBJECTFROMNTHANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOpenSyncObjectFromNtHandle2(param0 : *mut D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn D3DKMTOpenSyncObjectNtHandleFromName(param0 : *mut D3DKMT_OPENSYNCOBJECTNTHANDLEFROMNAME) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOpenSynchronizationObject(param0 : *mut D3DKMT_OPENSYNCHRONIZATIONOBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOutputDuplGetFrameInfo(param0 : *mut D3DKMT_OUTPUTDUPL_GET_FRAMEINFO) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOutputDuplGetMetaData(param0 : *mut D3DKMT_OUTPUTDUPL_METADATA) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOutputDuplGetPointerShapeData(param0 : *mut D3DKMT_OUTPUTDUPL_GET_POINTER_SHAPE_DATA) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOutputDuplPresent(param0 : *const D3DKMT_OUTPUTDUPLPRESENT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-dx-d3dkmt-l1-1-4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOutputDuplPresentToHwQueue(param0 : *const D3DKMT_OUTPUTDUPLPRESENTTOHWQUEUE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTOutputDuplReleaseFrame(param0 : *mut D3DKMT_OUTPUTDUPL_RELEASE_FRAME) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTPollDisplayChildren(param0 : *const D3DKMT_POLLDISPLAYCHILDREN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTPresent(param0 : *mut D3DKMT_PRESENT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTPresentMultiPlaneOverlay(param0 : *const D3DKMT_PRESENT_MULTIPLANE_OVERLAY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTPresentMultiPlaneOverlay2(param0 : *const D3DKMT_PRESENT_MULTIPLANE_OVERLAY2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTPresentMultiPlaneOverlay3(param0 : *const D3DKMT_PRESENT_MULTIPLANE_OVERLAY3) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTPresentRedirected(param0 : *const D3DKMT_PRESENT_REDIRECTED) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTQueryAdapterInfo(param0 : *mut D3DKMT_QUERYADAPTERINFO) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTQueryAllocationResidency(param0 : *const D3DKMT_QUERYALLOCATIONRESIDENCY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTQueryClockCalibration(param0 : *mut D3DKMT_QUERYCLOCKCALIBRATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTQueryFSEBlock(param0 : *mut D3DKMT_QUERYFSEBLOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTQueryProcessOfferInfo(param0 : *mut D3DKMT_QUERYPROCESSOFFERINFO) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTQueryProtectedSessionInfoFromNtHandle(param0 : *mut D3DKMT_QUERYPROTECTEDSESSIONINFOFROMNTHANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTQueryProtectedSessionStatus(param0 : *mut D3DKMT_QUERYPROTECTEDSESSIONSTATUS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTQueryRemoteVidPnSourceFromGdiDisplayName(param0 : *mut D3DKMT_QUERYREMOTEVIDPNSOURCEFROMGDIDISPLAYNAME) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTQueryResourceInfo(param0 : *mut D3DKMT_QUERYRESOURCEINFO) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTQueryResourceInfoFromNtHandle(param0 : *mut D3DKMT_QUERYRESOURCEINFOFROMNTHANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTQueryStatistics(param0 : *const D3DKMT_QUERYSTATISTICS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTQueryVidPnExclusiveOwnership(param0 : *mut D3DKMT_QUERYVIDPNEXCLUSIVEOWNERSHIP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTQueryVideoMemoryInfo(param0 : *mut D3DKMT_QUERYVIDEOMEMORYINFO) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTReclaimAllocations(param0 : *mut D3DKMT_RECLAIMALLOCATIONS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTReclaimAllocations2(param0 : *mut D3DKMT_RECLAIMALLOCATIONS2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTRegisterTrimNotification(param0 : *mut D3DKMT_REGISTERTRIMNOTIFICATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTRegisterVailProcess(param0 : *const ::windows_sys::core::GUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTReleaseKeyedMutex(param0 : *mut D3DKMT_RELEASEKEYEDMUTEX) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTReleaseKeyedMutex2(param0 : *mut D3DKMT_RELEASEKEYEDMUTEX2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTReleaseProcessVidPnSourceOwners(param0 : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTRender(param0 : *mut D3DKMT_RENDER) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTReserveGpuVirtualAddress(param0 : *mut D3DDDI_RESERVEGPUVIRTUALADDRESS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetAllocationPriority(param0 : *const D3DKMT_SETALLOCATIONPRIORITY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetContextInProcessSchedulingPriority(param0 : *const D3DKMT_SETCONTEXTINPROCESSSCHEDULINGPRIORITY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetContextSchedulingPriority(param0 : *const D3DKMT_SETCONTEXTSCHEDULINGPRIORITY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetDisplayMode(param0 : *mut D3DKMT_SETDISPLAYMODE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetDisplayPrivateDriverFormat(param0 : *const D3DKMT_SETDISPLAYPRIVATEDRIVERFORMAT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetFSEBlock(param0 : *const D3DKMT_SETFSEBLOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetGammaRamp(param0 : *const D3DKMT_SETGAMMARAMP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetHwProtectionTeardownRecovery(param0 : *const D3DKMT_SETHWPROTECTIONTEARDOWNRECOVERY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetMonitorColorSpaceTransform(param0 : *const D3DKMT_SET_COLORSPACE_TRANSFORM) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetProcessSchedulingPriorityClass(param0 : super::super::super::Win32::Foundation:: HANDLE, param1 : D3DKMT_SCHEDULINGPRIORITYCLASS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetQueuedLimit(param0 : *const D3DKMT_SETQUEUEDLIMIT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetStablePowerState(param0 : *const D3DKMT_SETSTABLEPOWERSTATE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetSyncRefreshCountWaitTarget(param0 : *const D3DKMT_SETSYNCREFRESHCOUNTWAITTARGET) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetVidPnSourceHwProtection(param0 : *const D3DKMT_SETVIDPNSOURCEHWPROTECTION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetVidPnSourceOwner(param0 : *const D3DKMT_SETVIDPNSOURCEOWNER) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetVidPnSourceOwner1(param0 : *const D3DKMT_SETVIDPNSOURCEOWNER1) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSetVidPnSourceOwner2(param0 : *const D3DKMT_SETVIDPNSOURCEOWNER2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn D3DKMTShareObjects(cobjects : u32, hobjects : *const u32, pobjectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, dwdesiredaccess : u32, phsharednthandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSharedPrimaryLockNotification(param0 : *const D3DKMT_SHAREDPRIMARYLOCKNOTIFICATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSharedPrimaryUnLockNotification(param0 : *const D3DKMT_SHAREDPRIMARYUNLOCKNOTIFICATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSignalSynchronizationObject(param0 : *const D3DKMT_SIGNALSYNCHRONIZATIONOBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSignalSynchronizationObject2(param0 : *const D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSignalSynchronizationObjectFromCpu(param0 : *const D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMCPU) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSignalSynchronizationObjectFromGpu(param0 : *const D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSignalSynchronizationObjectFromGpu2(param0 : *const D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSubmitCommand(param0 : *const D3DKMT_SUBMITCOMMAND) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSubmitCommandToHwQueue(param0 : *const D3DKMT_SUBMITCOMMANDTOHWQUEUE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-dx-d3dkmt-l1-1-4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSubmitPresentBltToHwQueue(param0 : *const D3DKMT_SUBMITPRESENTBLTTOHWQUEUE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-dx-d3dkmt-l1-1-4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSubmitPresentToHwQueue(param0 : *mut D3DKMT_SUBMITPRESENTTOHWQUEUE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSubmitSignalSyncObjectsToHwQueue(param0 : *const D3DKMT_SUBMITSIGNALSYNCOBJECTSTOHWQUEUE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTSubmitWaitForSyncObjectsToHwQueue(param0 : *const D3DKMT_SUBMITWAITFORSYNCOBJECTSTOHWQUEUE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTTrimProcessCommitment(param0 : *mut D3DKMT_TRIMPROCESSCOMMITMENT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTUnlock(param0 : *const D3DKMT_UNLOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTUnlock2(param0 : *const D3DKMT_UNLOCK2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTUnregisterTrimNotification(param0 : *mut D3DKMT_UNREGISTERTRIMNOTIFICATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTUpdateAllocationProperty(param0 : *mut D3DDDI_UPDATEALLOCPROPERTY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTUpdateGpuVirtualAddress(param0 : *const D3DKMT_UPDATEGPUVIRTUALADDRESS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTUpdateOverlay(param0 : *const D3DKMT_UPDATEOVERLAY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTWaitForIdle(param0 : *const D3DKMT_WAITFORIDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTWaitForSynchronizationObject(param0 : *const D3DKMT_WAITFORSYNCHRONIZATIONOBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTWaitForSynchronizationObject2(param0 : *const D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTWaitForSynchronizationObjectFromCpu(param0 : *const D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMCPU) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTWaitForSynchronizationObjectFromGpu(param0 : *const D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMGPU) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTWaitForVerticalBlankEvent(param0 : *const D3DKMT_WAITFORVERTICALBLANKEVENT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn D3DKMTWaitForVerticalBlankEvent2(param0 : *const D3DKMT_WAITFORVERTICALBLANKEVENT2) -> super::super::super::Win32::Foundation:: NTSTATUS); +pub const D3DCLEAR_COMPUTERECTS: i32 = 8i32; +pub const D3DDDIFMT_A1: D3DDDIFORMAT = 118u32; +pub const D3DDDIFMT_A16B16G16R16: D3DDDIFORMAT = 36u32; +pub const D3DDDIFMT_A16B16G16R16F: D3DDDIFORMAT = 113u32; +pub const D3DDDIFMT_A1R5G5B5: D3DDDIFORMAT = 25u32; +pub const D3DDDIFMT_A2B10G10R10: D3DDDIFORMAT = 31u32; +pub const D3DDDIFMT_A2B10G10R10_XR_BIAS: D3DDDIFORMAT = 119u32; +pub const D3DDDIFMT_A2R10G10B10: D3DDDIFORMAT = 35u32; +pub const D3DDDIFMT_A2W10V10U10: D3DDDIFORMAT = 67u32; +pub const D3DDDIFMT_A32B32G32R32F: D3DDDIFORMAT = 116u32; +pub const D3DDDIFMT_A4L4: D3DDDIFORMAT = 52u32; +pub const D3DDDIFMT_A4R4G4B4: D3DDDIFORMAT = 26u32; +pub const D3DDDIFMT_A8: D3DDDIFORMAT = 28u32; +pub const D3DDDIFMT_A8B8G8R8: D3DDDIFORMAT = 32u32; +pub const D3DDDIFMT_A8L8: D3DDDIFORMAT = 51u32; +pub const D3DDDIFMT_A8P8: D3DDDIFORMAT = 40u32; +pub const D3DDDIFMT_A8R3G3B2: D3DDDIFORMAT = 29u32; +pub const D3DDDIFMT_A8R8G8B8: D3DDDIFORMAT = 21u32; +pub const D3DDDIFMT_BINARYBUFFER: D3DDDIFORMAT = 199u32; +pub const D3DDDIFMT_BITSTREAMDATA: D3DDDIFORMAT = 156u32; +pub const D3DDDIFMT_CxV8U8: D3DDDIFORMAT = 117u32; +pub const D3DDDIFMT_D15S1: D3DDDIFORMAT = 73u32; +pub const D3DDDIFMT_D16: D3DDDIFORMAT = 80u32; +pub const D3DDDIFMT_D16_LOCKABLE: D3DDDIFORMAT = 70u32; +pub const D3DDDIFMT_D24FS8: D3DDDIFORMAT = 83u32; +pub const D3DDDIFMT_D24S8: D3DDDIFORMAT = 75u32; +pub const D3DDDIFMT_D24X4S4: D3DDDIFORMAT = 79u32; +pub const D3DDDIFMT_D24X8: D3DDDIFORMAT = 77u32; +pub const D3DDDIFMT_D32: D3DDDIFORMAT = 71u32; +pub const D3DDDIFMT_D32F_LOCKABLE: D3DDDIFORMAT = 82u32; +pub const D3DDDIFMT_D32_LOCKABLE: D3DDDIFORMAT = 84u32; +pub const D3DDDIFMT_DEBLOCKINGDATA: D3DDDIFORMAT = 153u32; +pub const D3DDDIFMT_DXT1: D3DDDIFORMAT = 827611204u32; +pub const D3DDDIFMT_DXT2: D3DDDIFORMAT = 844388420u32; +pub const D3DDDIFMT_DXT3: D3DDDIFORMAT = 861165636u32; +pub const D3DDDIFMT_DXT4: D3DDDIFORMAT = 877942852u32; +pub const D3DDDIFMT_DXT5: D3DDDIFORMAT = 894720068u32; +pub const D3DDDIFMT_DXVACOMPBUFFER_BASE: D3DDDIFORMAT = 150u32; +pub const D3DDDIFMT_DXVACOMPBUFFER_MAX: D3DDDIFORMAT = 181u32; +pub const D3DDDIFMT_DXVA_RESERVED10: D3DDDIFORMAT = 160u32; +pub const D3DDDIFMT_DXVA_RESERVED11: D3DDDIFORMAT = 161u32; +pub const D3DDDIFMT_DXVA_RESERVED12: D3DDDIFORMAT = 162u32; +pub const D3DDDIFMT_DXVA_RESERVED13: D3DDDIFORMAT = 163u32; +pub const D3DDDIFMT_DXVA_RESERVED14: D3DDDIFORMAT = 164u32; +pub const D3DDDIFMT_DXVA_RESERVED15: D3DDDIFORMAT = 165u32; +pub const D3DDDIFMT_DXVA_RESERVED16: D3DDDIFORMAT = 166u32; +pub const D3DDDIFMT_DXVA_RESERVED17: D3DDDIFORMAT = 167u32; +pub const D3DDDIFMT_DXVA_RESERVED18: D3DDDIFORMAT = 168u32; +pub const D3DDDIFMT_DXVA_RESERVED19: D3DDDIFORMAT = 169u32; +pub const D3DDDIFMT_DXVA_RESERVED20: D3DDDIFORMAT = 170u32; +pub const D3DDDIFMT_DXVA_RESERVED21: D3DDDIFORMAT = 171u32; +pub const D3DDDIFMT_DXVA_RESERVED22: D3DDDIFORMAT = 172u32; +pub const D3DDDIFMT_DXVA_RESERVED23: D3DDDIFORMAT = 173u32; +pub const D3DDDIFMT_DXVA_RESERVED24: D3DDDIFORMAT = 174u32; +pub const D3DDDIFMT_DXVA_RESERVED25: D3DDDIFORMAT = 175u32; +pub const D3DDDIFMT_DXVA_RESERVED26: D3DDDIFORMAT = 176u32; +pub const D3DDDIFMT_DXVA_RESERVED27: D3DDDIFORMAT = 177u32; +pub const D3DDDIFMT_DXVA_RESERVED28: D3DDDIFORMAT = 178u32; +pub const D3DDDIFMT_DXVA_RESERVED29: D3DDDIFORMAT = 179u32; +pub const D3DDDIFMT_DXVA_RESERVED30: D3DDDIFORMAT = 180u32; +pub const D3DDDIFMT_DXVA_RESERVED31: D3DDDIFORMAT = 181u32; +pub const D3DDDIFMT_DXVA_RESERVED9: D3DDDIFORMAT = 159u32; +pub const D3DDDIFMT_FILMGRAINBUFFER: D3DDDIFORMAT = 158u32; +pub const D3DDDIFMT_G16R16: D3DDDIFORMAT = 34u32; +pub const D3DDDIFMT_G16R16F: D3DDDIFORMAT = 112u32; +pub const D3DDDIFMT_G32R32F: D3DDDIFORMAT = 115u32; +pub const D3DDDIFMT_G8R8: D3DDDIFORMAT = 91u32; +pub const D3DDDIFMT_G8R8_G8B8: D3DDDIFORMAT = 1111970375u32; +pub const D3DDDIFMT_INDEX16: D3DDDIFORMAT = 101u32; +pub const D3DDDIFMT_INDEX32: D3DDDIFORMAT = 102u32; +pub const D3DDDIFMT_INVERSEQUANTIZATIONDATA: D3DDDIFORMAT = 154u32; +pub const D3DDDIFMT_L16: D3DDDIFORMAT = 81u32; +pub const D3DDDIFMT_L6V5U5: D3DDDIFORMAT = 61u32; +pub const D3DDDIFMT_L8: D3DDDIFORMAT = 50u32; +pub const D3DDDIFMT_MACROBLOCKDATA: D3DDDIFORMAT = 151u32; +pub const D3DDDIFMT_MOTIONVECTORBUFFER: D3DDDIFORMAT = 157u32; +pub const D3DDDIFMT_MULTI2_ARGB8: D3DDDIFORMAT = 827606349u32; +pub const D3DDDIFMT_P8: D3DDDIFORMAT = 41u32; +pub const D3DDDIFMT_PICTUREPARAMSDATA: D3DDDIFORMAT = 150u32; +pub const D3DDDIFMT_Q16W16V16U16: D3DDDIFORMAT = 110u32; +pub const D3DDDIFMT_Q8W8V8U8: D3DDDIFORMAT = 63u32; +pub const D3DDDIFMT_R16F: D3DDDIFORMAT = 111u32; +pub const D3DDDIFMT_R32F: D3DDDIFORMAT = 114u32; +pub const D3DDDIFMT_R3G3B2: D3DDDIFORMAT = 27u32; +pub const D3DDDIFMT_R5G6B5: D3DDDIFORMAT = 23u32; +pub const D3DDDIFMT_R8: D3DDDIFORMAT = 92u32; +pub const D3DDDIFMT_R8G8B8: D3DDDIFORMAT = 20u32; +pub const D3DDDIFMT_R8G8_B8G8: D3DDDIFORMAT = 1195525970u32; +pub const D3DDDIFMT_RESIDUALDIFFERENCEDATA: D3DDDIFORMAT = 152u32; +pub const D3DDDIFMT_S1D15: D3DDDIFORMAT = 72u32; +pub const D3DDDIFMT_S8D24: D3DDDIFORMAT = 74u32; +pub const D3DDDIFMT_S8_LOCKABLE: D3DDDIFORMAT = 85u32; +pub const D3DDDIFMT_SLICECONTROLDATA: D3DDDIFORMAT = 155u32; +pub const D3DDDIFMT_UNKNOWN: D3DDDIFORMAT = 0u32; +pub const D3DDDIFMT_UYVY: D3DDDIFORMAT = 1498831189u32; +pub const D3DDDIFMT_V16U16: D3DDDIFORMAT = 64u32; +pub const D3DDDIFMT_V8U8: D3DDDIFORMAT = 60u32; +pub const D3DDDIFMT_VERTEXDATA: D3DDDIFORMAT = 100u32; +pub const D3DDDIFMT_W11V11U10: D3DDDIFORMAT = 65u32; +pub const D3DDDIFMT_X1R5G5B5: D3DDDIFORMAT = 24u32; +pub const D3DDDIFMT_X4R4G4B4: D3DDDIFORMAT = 30u32; +pub const D3DDDIFMT_X4S4D24: D3DDDIFORMAT = 78u32; +pub const D3DDDIFMT_X8B8G8R8: D3DDDIFORMAT = 33u32; +pub const D3DDDIFMT_X8D24: D3DDDIFORMAT = 76u32; +pub const D3DDDIFMT_X8L8V8U8: D3DDDIFORMAT = 62u32; +pub const D3DDDIFMT_X8R8G8B8: D3DDDIFORMAT = 22u32; +pub const D3DDDIFMT_YUY2: D3DDDIFORMAT = 844715353u32; +pub const D3DDDIGPUVIRTUALADDRESS_RESERVE_NO_ACCESS: D3DDDIGPUVIRTUALADDRESS_RESERVATION_TYPE = 0i32; +pub const D3DDDIGPUVIRTUALADDRESS_RESERVE_NO_COMMIT: D3DDDIGPUVIRTUALADDRESS_RESERVATION_TYPE = 2i32; +pub const D3DDDIGPUVIRTUALADDRESS_RESERVE_ZERO: D3DDDIGPUVIRTUALADDRESS_RESERVATION_TYPE = 1i32; +pub const D3DDDIMULTISAMPLE_10_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 10i32; +pub const D3DDDIMULTISAMPLE_11_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 11i32; +pub const D3DDDIMULTISAMPLE_12_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 12i32; +pub const D3DDDIMULTISAMPLE_13_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 13i32; +pub const D3DDDIMULTISAMPLE_14_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 14i32; +pub const D3DDDIMULTISAMPLE_15_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 15i32; +pub const D3DDDIMULTISAMPLE_16_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 16i32; +pub const D3DDDIMULTISAMPLE_2_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 2i32; +pub const D3DDDIMULTISAMPLE_3_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 3i32; +pub const D3DDDIMULTISAMPLE_4_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 4i32; +pub const D3DDDIMULTISAMPLE_5_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 5i32; +pub const D3DDDIMULTISAMPLE_6_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 6i32; +pub const D3DDDIMULTISAMPLE_7_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 7i32; +pub const D3DDDIMULTISAMPLE_8_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 8i32; +pub const D3DDDIMULTISAMPLE_9_SAMPLES: D3DDDIMULTISAMPLE_TYPE = 9i32; +pub const D3DDDIMULTISAMPLE_NONE: D3DDDIMULTISAMPLE_TYPE = 0i32; +pub const D3DDDIMULTISAMPLE_NONMASKABLE: D3DDDIMULTISAMPLE_TYPE = 1i32; +pub const D3DDDIPOOL_LOCALVIDMEM: D3DDDI_POOL = 3i32; +pub const D3DDDIPOOL_NONLOCALVIDMEM: D3DDDI_POOL = 4i32; +pub const D3DDDIPOOL_STAGINGMEM: D3DDDI_POOL = 5i32; +pub const D3DDDIPOOL_SYSTEMMEM: D3DDDI_POOL = 1i32; +pub const D3DDDIPOOL_VIDEOMEMORY: D3DDDI_POOL = 2i32; +pub const D3DDDI_ALLOCATIONPRIORITY_HIGH: u32 = 2684354560u32; +pub const D3DDDI_ALLOCATIONPRIORITY_LOW: u32 = 1342177280u32; +pub const D3DDDI_ALLOCATIONPRIORITY_MAXIMUM: u32 = 3355443200u32; +pub const D3DDDI_ALLOCATIONPRIORITY_MINIMUM: u32 = 671088640u32; +pub const D3DDDI_ALLOCATIONPRIORITY_NORMAL: u32 = 2013265920u32; +pub const D3DDDI_COLOR_SPACE_CUSTOM: D3DDDI_COLOR_SPACE_TYPE = -1i32; +pub const D3DDDI_COLOR_SPACE_RESERVED: D3DDDI_COLOR_SPACE_TYPE = 4i32; +pub const D3DDDI_COLOR_SPACE_RGB_FULL_G10_NONE_P709: D3DDDI_COLOR_SPACE_TYPE = 1i32; +pub const D3DDDI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020: D3DDDI_COLOR_SPACE_TYPE = 12i32; +pub const D3DDDI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020: D3DDDI_COLOR_SPACE_TYPE = 17i32; +pub const D3DDDI_COLOR_SPACE_RGB_FULL_G22_NONE_P709: D3DDDI_COLOR_SPACE_TYPE = 0i32; +pub const D3DDDI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020: D3DDDI_COLOR_SPACE_TYPE = 14i32; +pub const D3DDDI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020: D3DDDI_COLOR_SPACE_TYPE = 3i32; +pub const D3DDDI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709: D3DDDI_COLOR_SPACE_TYPE = 2i32; +pub const D3DDDI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020: D3DDDI_COLOR_SPACE_TYPE = 21i32; +pub const D3DDDI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709: D3DDDI_COLOR_SPACE_TYPE = 20i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020: D3DDDI_COLOR_SPACE_TYPE = 11i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601: D3DDDI_COLOR_SPACE_TYPE = 7i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709: D3DDDI_COLOR_SPACE_TYPE = 9i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601: D3DDDI_COLOR_SPACE_TYPE = 5i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020: D3DDDI_COLOR_SPACE_TYPE = 19i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020: D3DDDI_COLOR_SPACE_TYPE = 13i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020: D3DDDI_COLOR_SPACE_TYPE = 16i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020: D3DDDI_COLOR_SPACE_TYPE = 10i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601: D3DDDI_COLOR_SPACE_TYPE = 6i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709: D3DDDI_COLOR_SPACE_TYPE = 8i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020: D3DDDI_COLOR_SPACE_TYPE = 15i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020: D3DDDI_COLOR_SPACE_TYPE = 23i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709: D3DDDI_COLOR_SPACE_TYPE = 22i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020: D3DDDI_COLOR_SPACE_TYPE = 24i32; +pub const D3DDDI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020: D3DDDI_COLOR_SPACE_TYPE = 18i32; +pub const D3DDDI_CPU_NOTIFICATION: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE = 4i32; +pub const D3DDDI_DOORBELLSTATUS_CONNECTED: D3DDDI_DOORBELLSTATUS = 0i32; +pub const D3DDDI_DOORBELLSTATUS_CONNECTED_NOTIFY_KMD: D3DDDI_DOORBELLSTATUS = 1i32; +pub const D3DDDI_DOORBELLSTATUS_DISCONNECTED_ABORT: D3DDDI_DOORBELLSTATUS = 3i32; +pub const D3DDDI_DOORBELLSTATUS_DISCONNECTED_RETRY: D3DDDI_DOORBELLSTATUS = 2i32; +pub const D3DDDI_DOORBELL_PRIVATEDATA_MAX_BYTES_WDDM3_1: u32 = 16u32; +pub const D3DDDI_DRIVERESCAPETYPE_CPUEVENTUSAGE: D3DDDI_DRIVERESCAPETYPE = 2i32; +pub const D3DDDI_DRIVERESCAPETYPE_MAX: D3DDDI_DRIVERESCAPETYPE = 3i32; +pub const D3DDDI_DRIVERESCAPETYPE_TRANSLATEALLOCATIONHANDLE: D3DDDI_DRIVERESCAPETYPE = 0i32; +pub const D3DDDI_DRIVERESCAPETYPE_TRANSLATERESOURCEHANDLE: D3DDDI_DRIVERESCAPETYPE = 1i32; +pub const D3DDDI_FENCE: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE = 3i32; +pub const D3DDDI_FLIPINTERVAL_FOUR: D3DDDI_FLIPINTERVAL_TYPE = 4i32; +pub const D3DDDI_FLIPINTERVAL_IMMEDIATE: D3DDDI_FLIPINTERVAL_TYPE = 0i32; +pub const D3DDDI_FLIPINTERVAL_IMMEDIATE_ALLOW_TEARING: D3DDDI_FLIPINTERVAL_TYPE = 5i32; +pub const D3DDDI_FLIPINTERVAL_ONE: D3DDDI_FLIPINTERVAL_TYPE = 1i32; +pub const D3DDDI_FLIPINTERVAL_THREE: D3DDDI_FLIPINTERVAL_TYPE = 3i32; +pub const D3DDDI_FLIPINTERVAL_TWO: D3DDDI_FLIPINTERVAL_TYPE = 2i32; +pub const D3DDDI_GAMMARAMP_DEFAULT: D3DDDI_GAMMARAMP_TYPE = 1i32; +pub const D3DDDI_GAMMARAMP_DXGI_1: D3DDDI_GAMMARAMP_TYPE = 3i32; +pub const D3DDDI_GAMMARAMP_MATRIX_3x4: D3DDDI_GAMMARAMP_TYPE = 4i32; +pub const D3DDDI_GAMMARAMP_MATRIX_V2: D3DDDI_GAMMARAMP_TYPE = 5i32; +pub const D3DDDI_GAMMARAMP_RGB256x3x16: D3DDDI_GAMMARAMP_TYPE = 2i32; +pub const D3DDDI_GAMMARAMP_UNINITIALIZED: D3DDDI_GAMMARAMP_TYPE = 0i32; +pub const D3DDDI_HDR_METADATA_TYPE_HDR10: D3DDDI_HDR_METADATA_TYPE = 1i32; +pub const D3DDDI_HDR_METADATA_TYPE_HDR10PLUS: D3DDDI_HDR_METADATA_TYPE = 2i32; +pub const D3DDDI_HDR_METADATA_TYPE_NONE: D3DDDI_HDR_METADATA_TYPE = 0i32; +pub const D3DDDI_MAX_BROADCAST_CONTEXT: u32 = 64u32; +pub const D3DDDI_MAX_MPO_PRESENT_DIRTY_RECTS: u32 = 4095u32; +pub const D3DDDI_MAX_OBJECT_SIGNALED: u32 = 32u32; +pub const D3DDDI_MAX_OBJECT_WAITED_ON: u32 = 32u32; +pub const D3DDDI_MAX_WRITTEN_PRIMARIES: u32 = 16u32; +pub const D3DDDI_MONITORED_FENCE: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE = 5i32; +pub const D3DDDI_OFFER_PRIORITY_AUTO: D3DDDI_OFFER_PRIORITY = 4i32; +pub const D3DDDI_OFFER_PRIORITY_HIGH: D3DDDI_OFFER_PRIORITY = 3i32; +pub const D3DDDI_OFFER_PRIORITY_LOW: D3DDDI_OFFER_PRIORITY = 1i32; +pub const D3DDDI_OFFER_PRIORITY_NONE: D3DDDI_OFFER_PRIORITY = 0i32; +pub const D3DDDI_OFFER_PRIORITY_NORMAL: D3DDDI_OFFER_PRIORITY = 2i32; +pub const D3DDDI_OUTPUT_WIRE_COLOR_SPACE_G2084_P2020: D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE = 12i32; +pub const D3DDDI_OUTPUT_WIRE_COLOR_SPACE_G2084_P2020_DVLL: D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE = 33i32; +pub const D3DDDI_OUTPUT_WIRE_COLOR_SPACE_G2084_P2020_HDR10PLUS: D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE = 32i32; +pub const D3DDDI_OUTPUT_WIRE_COLOR_SPACE_G22_P2020: D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE = 31i32; +pub const D3DDDI_OUTPUT_WIRE_COLOR_SPACE_G22_P709: D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE = 0i32; +pub const D3DDDI_OUTPUT_WIRE_COLOR_SPACE_G22_P709_WCG: D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE = 30i32; +pub const D3DDDI_OUTPUT_WIRE_COLOR_SPACE_RESERVED: D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE = 4i32; +pub const D3DDDI_PAGINGQUEUE_PRIORITY_ABOVE_NORMAL: D3DDDI_PAGINGQUEUE_PRIORITY = 1i32; +pub const D3DDDI_PAGINGQUEUE_PRIORITY_BELOW_NORMAL: D3DDDI_PAGINGQUEUE_PRIORITY = -1i32; +pub const D3DDDI_PAGINGQUEUE_PRIORITY_NORMAL: D3DDDI_PAGINGQUEUE_PRIORITY = 0i32; +pub const D3DDDI_PERIODIC_MONITORED_FENCE: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE = 6i32; +pub const D3DDDI_QUERYREGISTRY_ADAPTERKEY: D3DDDI_QUERYREGISTRY_TYPE = 1i32; +pub const D3DDDI_QUERYREGISTRY_DRIVERIMAGEPATH: D3DDDI_QUERYREGISTRY_TYPE = 3i32; +pub const D3DDDI_QUERYREGISTRY_DRIVERSTOREPATH: D3DDDI_QUERYREGISTRY_TYPE = 2i32; +pub const D3DDDI_QUERYREGISTRY_MAX: D3DDDI_QUERYREGISTRY_TYPE = 4i32; +pub const D3DDDI_QUERYREGISTRY_SERVICEKEY: D3DDDI_QUERYREGISTRY_TYPE = 0i32; +pub const D3DDDI_QUERYREGISTRY_STATUS_BUFFER_OVERFLOW: D3DDDI_QUERYREGISTRY_STATUS = 1i32; +pub const D3DDDI_QUERYREGISTRY_STATUS_FAIL: D3DDDI_QUERYREGISTRY_STATUS = 2i32; +pub const D3DDDI_QUERYREGISTRY_STATUS_MAX: D3DDDI_QUERYREGISTRY_STATUS = 3i32; +pub const D3DDDI_QUERYREGISTRY_STATUS_SUCCESS: D3DDDI_QUERYREGISTRY_STATUS = 0i32; +pub const D3DDDI_RECLAIM_RESULT_DISCARDED: D3DDDI_RECLAIM_RESULT = 1i32; +pub const D3DDDI_RECLAIM_RESULT_NOT_COMMITTED: D3DDDI_RECLAIM_RESULT = 2i32; +pub const D3DDDI_RECLAIM_RESULT_OK: D3DDDI_RECLAIM_RESULT = 0i32; +pub const D3DDDI_ROTATION_180: D3DDDI_ROTATION = 3i32; +pub const D3DDDI_ROTATION_270: D3DDDI_ROTATION = 4i32; +pub const D3DDDI_ROTATION_90: D3DDDI_ROTATION = 2i32; +pub const D3DDDI_ROTATION_IDENTITY: D3DDDI_ROTATION = 1i32; +pub const D3DDDI_SCANLINEORDERING_INTERLACED: D3DDDI_SCANLINEORDERING = 2i32; +pub const D3DDDI_SCANLINEORDERING_PROGRESSIVE: D3DDDI_SCANLINEORDERING = 1i32; +pub const D3DDDI_SCANLINEORDERING_UNKNOWN: D3DDDI_SCANLINEORDERING = 0i32; +pub const D3DDDI_SEMAPHORE: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE = 2i32; +pub const D3DDDI_SYNCHRONIZATION_MUTEX: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE = 1i32; +pub const D3DDDI_SYNCHRONIZATION_TYPE_LIMIT: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE = 7i32; +pub const D3DDDI_SYNC_OBJECT_SIGNAL: u32 = 2u32; +pub const D3DDDI_SYNC_OBJECT_WAIT: u32 = 1u32; +pub const D3DDDI_UPDATEGPUVIRTUALADDRESS_COPY: D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_TYPE = 2i32; +pub const D3DDDI_UPDATEGPUVIRTUALADDRESS_MAP: D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_TYPE = 0i32; +pub const D3DDDI_UPDATEGPUVIRTUALADDRESS_MAP_PROTECT: D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_TYPE = 3i32; +pub const D3DDDI_UPDATEGPUVIRTUALADDRESS_UNMAP: D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_TYPE = 1i32; +pub const D3DDDI_VSSLO_INTERLACED_LOWERFIELDFIRST: D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING = 3i32; +pub const D3DDDI_VSSLO_INTERLACED_UPPERFIELDFIRST: D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING = 2i32; +pub const D3DDDI_VSSLO_OTHER: D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING = 255i32; +pub const D3DDDI_VSSLO_PROGRESSIVE: D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING = 1i32; +pub const D3DDDI_VSSLO_UNINITIALIZED: D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING = 0i32; +pub const D3DDEVCAPS_HWINDEXBUFFER: i32 = 67108864i32; +pub const D3DDEVCAPS_HWVERTEXBUFFER: i32 = 33554432i32; +pub const D3DDEVCAPS_SUBVOLUMELOCK: i32 = 134217728i32; +pub const D3DDEVINFOID_VCACHE: u32 = 4u32; +pub const D3DDP2OP_ADDDIRTYBOX: D3DHAL_DP2OPERATION = 67i32; +pub const D3DDP2OP_ADDDIRTYRECT: D3DHAL_DP2OPERATION = 66i32; +pub const D3DDP2OP_BLT: D3DHAL_DP2OPERATION = 81i32; +pub const D3DDP2OP_BUFFERBLT: D3DHAL_DP2OPERATION = 64i32; +pub const D3DDP2OP_CLEAR: D3DHAL_DP2OPERATION = 42i32; +pub const D3DDP2OP_CLIPPEDTRIANGLEFAN: D3DHAL_DP2OPERATION = 58i32; +pub const D3DDP2OP_COLORFILL: D3DHAL_DP2OPERATION = 82i32; +pub const D3DDP2OP_COMPOSERECTS: D3DHAL_DP2OPERATION = 98i32; +pub const D3DDP2OP_CREATELIGHT: D3DHAL_DP2OPERATION = 35i32; +pub const D3DDP2OP_CREATEPIXELSHADER: D3DHAL_DP2OPERATION = 54i32; +pub const D3DDP2OP_CREATEQUERY: D3DHAL_DP2OPERATION = 84i32; +pub const D3DDP2OP_CREATEVERTEXSHADER: D3DHAL_DP2OPERATION = 45i32; +pub const D3DDP2OP_CREATEVERTEXSHADERDECL: D3DHAL_DP2OPERATION = 71i32; +pub const D3DDP2OP_CREATEVERTEXSHADERFUNC: D3DHAL_DP2OPERATION = 74i32; +pub const D3DDP2OP_DELETEPIXELSHADER: D3DHAL_DP2OPERATION = 55i32; +pub const D3DDP2OP_DELETEQUERY: D3DHAL_DP2OPERATION = 90i32; +pub const D3DDP2OP_DELETEVERTEXSHADER: D3DHAL_DP2OPERATION = 46i32; +pub const D3DDP2OP_DELETEVERTEXSHADERDECL: D3DHAL_DP2OPERATION = 72i32; +pub const D3DDP2OP_DELETEVERTEXSHADERFUNC: D3DHAL_DP2OPERATION = 75i32; +pub const D3DDP2OP_DRAWINDEXEDPRIMITIVE: D3DHAL_DP2OPERATION = 53i32; +pub const D3DDP2OP_DRAWINDEXEDPRIMITIVE2: D3DHAL_DP2OPERATION = 60i32; +pub const D3DDP2OP_DRAWPRIMITIVE: D3DHAL_DP2OPERATION = 52i32; +pub const D3DDP2OP_DRAWPRIMITIVE2: D3DHAL_DP2OPERATION = 59i32; +pub const D3DDP2OP_DRAWRECTPATCH: D3DHAL_DP2OPERATION = 61i32; +pub const D3DDP2OP_DRAWTRIPATCH: D3DHAL_DP2OPERATION = 62i32; +pub const D3DDP2OP_GENERATEMIPSUBLEVELS: D3DHAL_DP2OPERATION = 89i32; +pub const D3DDP2OP_INDEXEDLINELIST: D3DHAL_DP2OPERATION = 2i32; +pub const D3DDP2OP_INDEXEDLINELIST2: D3DHAL_DP2OPERATION = 27i32; +pub const D3DDP2OP_INDEXEDLINESTRIP: D3DHAL_DP2OPERATION = 17i32; +pub const D3DDP2OP_INDEXEDTRIANGLEFAN: D3DHAL_DP2OPERATION = 22i32; +pub const D3DDP2OP_INDEXEDTRIANGLELIST: D3DHAL_DP2OPERATION = 3i32; +pub const D3DDP2OP_INDEXEDTRIANGLELIST2: D3DHAL_DP2OPERATION = 26i32; +pub const D3DDP2OP_INDEXEDTRIANGLESTRIP: D3DHAL_DP2OPERATION = 20i32; +pub const D3DDP2OP_ISSUEQUERY: D3DHAL_DP2OPERATION = 91i32; +pub const D3DDP2OP_LINELIST: D3DHAL_DP2OPERATION = 15i32; +pub const D3DDP2OP_LINELIST_IMM: D3DHAL_DP2OPERATION = 24i32; +pub const D3DDP2OP_LINESTRIP: D3DHAL_DP2OPERATION = 16i32; +pub const D3DDP2OP_MULTIPLYTRANSFORM: D3DHAL_DP2OPERATION = 65i32; +pub const D3DDP2OP_POINTS: D3DHAL_DP2OPERATION = 1i32; +pub const D3DDP2OP_RENDERSTATE: D3DHAL_DP2OPERATION = 8i32; +pub const D3DDP2OP_RESPONSECONTINUE: D3DHAL_DP2OPERATION = 87i32; +pub const D3DDP2OP_RESPONSEQUERY: D3DHAL_DP2OPERATION = 88i32; +pub const D3DDP2OP_SETCLIPPLANE: D3DHAL_DP2OPERATION = 44i32; +pub const D3DDP2OP_SETCONVOLUTIONKERNELMONO: D3DHAL_DP2OPERATION = 97i32; +pub const D3DDP2OP_SETDEPTHSTENCIL: D3DHAL_DP2OPERATION = 86i32; +pub const D3DDP2OP_SETINDICES: D3DHAL_DP2OPERATION = 51i32; +pub const D3DDP2OP_SETLIGHT: D3DHAL_DP2OPERATION = 34i32; +pub const D3DDP2OP_SETMATERIAL: D3DHAL_DP2OPERATION = 33i32; +pub const D3DDP2OP_SETPALETTE: D3DHAL_DP2OPERATION = 30i32; +pub const D3DDP2OP_SETPIXELSHADER: D3DHAL_DP2OPERATION = 56i32; +pub const D3DDP2OP_SETPIXELSHADERCONST: D3DHAL_DP2OPERATION = 57i32; +pub const D3DDP2OP_SETPIXELSHADERCONSTB: D3DHAL_DP2OPERATION = 94i32; +pub const D3DDP2OP_SETPIXELSHADERCONSTI: D3DHAL_DP2OPERATION = 93i32; +pub const D3DDP2OP_SETPRIORITY: D3DHAL_DP2OPERATION = 40i32; +pub const D3DDP2OP_SETRENDERTARGET: D3DHAL_DP2OPERATION = 41i32; +pub const D3DDP2OP_SETRENDERTARGET2: D3DHAL_DP2OPERATION = 85i32; +pub const D3DDP2OP_SETSCISSORRECT: D3DHAL_DP2OPERATION = 79i32; +pub const D3DDP2OP_SETSTREAMSOURCE: D3DHAL_DP2OPERATION = 49i32; +pub const D3DDP2OP_SETSTREAMSOURCE2: D3DHAL_DP2OPERATION = 80i32; +pub const D3DDP2OP_SETSTREAMSOURCEFREQ: D3DHAL_DP2OPERATION = 95i32; +pub const D3DDP2OP_SETSTREAMSOURCEUM: D3DHAL_DP2OPERATION = 50i32; +pub const D3DDP2OP_SETTEXLOD: D3DHAL_DP2OPERATION = 43i32; +pub const D3DDP2OP_SETTRANSFORM: D3DHAL_DP2OPERATION = 36i32; +pub const D3DDP2OP_SETVERTEXSHADER: D3DHAL_DP2OPERATION = 47i32; +pub const D3DDP2OP_SETVERTEXSHADERCONST: D3DHAL_DP2OPERATION = 48i32; +pub const D3DDP2OP_SETVERTEXSHADERCONSTB: D3DHAL_DP2OPERATION = 83i32; +pub const D3DDP2OP_SETVERTEXSHADERCONSTI: D3DHAL_DP2OPERATION = 77i32; +pub const D3DDP2OP_SETVERTEXSHADERDECL: D3DHAL_DP2OPERATION = 73i32; +pub const D3DDP2OP_SETVERTEXSHADERFUNC: D3DHAL_DP2OPERATION = 76i32; +pub const D3DDP2OP_STATESET: D3DHAL_DP2OPERATION = 39i32; +pub const D3DDP2OP_SURFACEBLT: D3DHAL_DP2OPERATION = 96i32; +pub const D3DDP2OP_TEXBLT: D3DHAL_DP2OPERATION = 38i32; +pub const D3DDP2OP_TEXTURESTAGESTATE: D3DHAL_DP2OPERATION = 25i32; +pub const D3DDP2OP_TRIANGLEFAN: D3DHAL_DP2OPERATION = 21i32; +pub const D3DDP2OP_TRIANGLEFAN_IMM: D3DHAL_DP2OPERATION = 23i32; +pub const D3DDP2OP_TRIANGLELIST: D3DHAL_DP2OPERATION = 18i32; +pub const D3DDP2OP_TRIANGLESTRIP: D3DHAL_DP2OPERATION = 19i32; +pub const D3DDP2OP_UPDATEPALETTE: D3DHAL_DP2OPERATION = 31i32; +pub const D3DDP2OP_VIEWPORTINFO: D3DHAL_DP2OPERATION = 28i32; +pub const D3DDP2OP_VOLUMEBLT: D3DHAL_DP2OPERATION = 63i32; +pub const D3DDP2OP_WINFO: D3DHAL_DP2OPERATION = 29i32; +pub const D3DDP2OP_ZRANGE: D3DHAL_DP2OPERATION = 32i32; +pub const D3DFVF_FOG: i32 = 8192i32; +pub const D3DGDI2_MAGIC: u32 = 4294967295u32; +pub const D3DGDI2_TYPE_DEFERRED_AGP_AWARE: u32 = 24u32; +pub const D3DGDI2_TYPE_DEFER_AGP_FREES: u32 = 32u32; +pub const D3DGDI2_TYPE_DXVERSION: u32 = 4u32; +pub const D3DGDI2_TYPE_FREE_DEFERRED_AGP: u32 = 25u32; +pub const D3DGDI2_TYPE_GETADAPTERGROUP: u32 = 19u32; +pub const D3DGDI2_TYPE_GETD3DCAPS8: u32 = 1u32; +pub const D3DGDI2_TYPE_GETD3DCAPS9: u32 = 16u32; +pub const D3DGDI2_TYPE_GETD3DQUERY: u32 = 34u32; +pub const D3DGDI2_TYPE_GETD3DQUERYCOUNT: u32 = 33u32; +pub const D3DGDI2_TYPE_GETDDIVERSION: u32 = 35u32; +pub const D3DGDI2_TYPE_GETEXTENDEDMODE: u32 = 18u32; +pub const D3DGDI2_TYPE_GETEXTENDEDMODECOUNT: u32 = 17u32; +pub const D3DGDI2_TYPE_GETFORMAT: u32 = 3u32; +pub const D3DGDI2_TYPE_GETFORMATCOUNT: u32 = 2u32; +pub const D3DGDI2_TYPE_GETMULTISAMPLEQUALITYLEVELS: u32 = 22u32; +pub const D3DGPU_NULL: u32 = 0u32; +pub const D3DHAL2_CB32_CLEAR: i32 = 2i32; +pub const D3DHAL2_CB32_DRAWONEINDEXEDPRIMITIVE: i32 = 8i32; +pub const D3DHAL2_CB32_DRAWONEPRIMITIVE: i32 = 4i32; +pub const D3DHAL2_CB32_DRAWPRIMITIVES: i32 = 16i32; +pub const D3DHAL2_CB32_SETRENDERTARGET: i32 = 1i32; +pub const D3DHAL3_CB32_CLEAR2: i32 = 1i32; +pub const D3DHAL3_CB32_DRAWPRIMITIVES2: i32 = 8i32; +pub const D3DHAL3_CB32_RESERVED: i32 = 2i32; +pub const D3DHAL3_CB32_VALIDATETEXTURESTAGESTATE: i32 = 4i32; +pub const D3DHALDP2_EXECUTEBUFFER: i32 = 2i32; +pub const D3DHALDP2_REQCOMMANDBUFSIZE: i32 = 32i32; +pub const D3DHALDP2_REQVERTEXBUFSIZE: i32 = 16i32; +pub const D3DHALDP2_SWAPCOMMANDBUFFER: i32 = 8i32; +pub const D3DHALDP2_SWAPVERTEXBUFFER: i32 = 4i32; +pub const D3DHALDP2_USERMEMVERTICES: i32 = 1i32; +pub const D3DHALDP2_VIDMEMCOMMANDBUF: i32 = 128i32; +pub const D3DHALDP2_VIDMEMVERTEXBUF: i32 = 64i32; +pub const D3DHALSTATE_GET_LIGHT: i32 = 2i32; +pub const D3DHALSTATE_GET_RENDER: i32 = 4i32; +pub const D3DHALSTATE_GET_TRANSFORM: i32 = 1i32; +pub const D3DHAL_COL_WEIGHTS: u32 = 2u32; +pub const D3DHAL_CONTEXT_BAD: i64 = 512i64; +pub const D3DHAL_EXECUTE_ABORT: i32 = 528i32; +pub const D3DHAL_EXECUTE_NORMAL: i32 = 0i32; +pub const D3DHAL_EXECUTE_OVERRIDE: i32 = 1i32; +pub const D3DHAL_EXECUTE_UNHANDLED: i32 = 529i32; +pub const D3DHAL_MAX_RSTATES: u32 = 256u32; +pub const D3DHAL_MAX_RSTATES_DX6: u32 = 256u32; +pub const D3DHAL_MAX_RSTATES_DX7: u32 = 256u32; +pub const D3DHAL_MAX_RSTATES_DX8: u32 = 256u32; +pub const D3DHAL_MAX_RSTATES_DX9: u32 = 256u32; +pub const D3DHAL_MAX_TEXTURESTATES: u32 = 13u32; +pub const D3DHAL_NUMCLIPVERTICES: u32 = 20u32; +pub const D3DHAL_OUTOFCONTEXTS: i64 = 513i64; +pub const D3DHAL_ROW_WEIGHTS: u32 = 1u32; +pub const D3DHAL_SAMPLER_MAXSAMP: u32 = 16u32; +pub const D3DHAL_SAMPLER_MAXVERTEXSAMP: u32 = 4u32; +pub const D3DHAL_SCENE_CAPTURE_END: i32 = 1i32; +pub const D3DHAL_SCENE_CAPTURE_START: i32 = 0i32; +pub const D3DHAL_SETLIGHT_DATA: u32 = 2u32; +pub const D3DHAL_SETLIGHT_DISABLE: u32 = 1u32; +pub const D3DHAL_SETLIGHT_ENABLE: u32 = 0u32; +pub const D3DHAL_STATESETBEGIN: u32 = 0u32; +pub const D3DHAL_STATESETCAPTURE: u32 = 4u32; +pub const D3DHAL_STATESETCREATE: u32 = 5u32; +pub const D3DHAL_STATESETDELETE: u32 = 2u32; +pub const D3DHAL_STATESETEND: u32 = 1u32; +pub const D3DHAL_STATESETEXECUTE: u32 = 3u32; +pub const D3DHAL_TEXTURESTATEBUF_SIZE: u32 = 14u32; +pub const D3DHAL_TSS_MAXSTAGES: u32 = 8u32; +pub const D3DHAL_TSS_RENDERSTATEBASE: u32 = 256u32; +pub const D3DHAL_TSS_STATESPERSTAGE: u32 = 64u32; +pub const D3DINFINITEINSTRUCTIONS: u32 = 4294967295u32; +pub const D3DKMDT_BITS_PER_COMPONENT_06: u32 = 1u32; +pub const D3DKMDT_BITS_PER_COMPONENT_08: u32 = 2u32; +pub const D3DKMDT_BITS_PER_COMPONENT_10: u32 = 4u32; +pub const D3DKMDT_BITS_PER_COMPONENT_12: u32 = 8u32; +pub const D3DKMDT_BITS_PER_COMPONENT_14: u32 = 16u32; +pub const D3DKMDT_BITS_PER_COMPONENT_16: u32 = 32u32; +pub const D3DKMDT_CB_INTENSITY: D3DKMDT_COLOR_BASIS = 1i32; +pub const D3DKMDT_CB_SCRGB: D3DKMDT_COLOR_BASIS = 3i32; +pub const D3DKMDT_CB_SRGB: D3DKMDT_COLOR_BASIS = 2i32; +pub const D3DKMDT_CB_UNINITIALIZED: D3DKMDT_COLOR_BASIS = 0i32; +pub const D3DKMDT_CB_YCBCR: D3DKMDT_COLOR_BASIS = 4i32; +pub const D3DKMDT_CB_YPBPR: D3DKMDT_COLOR_BASIS = 5i32; +pub const D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL_BYPASS: D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL = 2i32; +pub const D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL_ENABLE: D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL = 1i32; +pub const D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL_NO_CHANGE: D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL = 0i32; +pub const D3DKMDT_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY: D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY = 200i32; +pub const D3DKMDT_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY: D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY = 100i32; +pub const D3DKMDT_COMPUTE_PREEMPTION_NONE: D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY = 0i32; +pub const D3DKMDT_COMPUTE_PREEMPTION_SHADER_BOUNDARY: D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY = 500i32; +pub const D3DKMDT_COMPUTE_PREEMPTION_THREAD_BOUNDARY: D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY = 400i32; +pub const D3DKMDT_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY: D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY = 300i32; +pub const D3DKMDT_EPT_NOPIVOT: D3DKMDT_ENUMCOFUNCMODALITY_PIVOT_TYPE = 5i32; +pub const D3DKMDT_EPT_ROTATION: D3DKMDT_ENUMCOFUNCMODALITY_PIVOT_TYPE = 4i32; +pub const D3DKMDT_EPT_SCALING: D3DKMDT_ENUMCOFUNCMODALITY_PIVOT_TYPE = 3i32; +pub const D3DKMDT_EPT_UNINITIALIZED: D3DKMDT_ENUMCOFUNCMODALITY_PIVOT_TYPE = 0i32; +pub const D3DKMDT_EPT_VIDPNSOURCE: D3DKMDT_ENUMCOFUNCMODALITY_PIVOT_TYPE = 1i32; +pub const D3DKMDT_EPT_VIDPNTARGET: D3DKMDT_ENUMCOFUNCMODALITY_PIVOT_TYPE = 2i32; +pub const D3DKMDT_GDISURFACE_EXISTINGSYSMEM: D3DKMDT_GDISURFACETYPE = 5i32; +pub const D3DKMDT_GDISURFACE_INVALID: D3DKMDT_GDISURFACETYPE = 0i32; +pub const D3DKMDT_GDISURFACE_LOOKUPTABLE: D3DKMDT_GDISURFACETYPE = 4i32; +pub const D3DKMDT_GDISURFACE_STAGING: D3DKMDT_GDISURFACETYPE = 3i32; +pub const D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE: D3DKMDT_GDISURFACETYPE = 2i32; +pub const D3DKMDT_GDISURFACE_TEXTURE: D3DKMDT_GDISURFACETYPE = 1i32; +pub const D3DKMDT_GDISURFACE_TEXTURE_CPUVISIBLE: D3DKMDT_GDISURFACETYPE = 6i32; +pub const D3DKMDT_GDISURFACE_TEXTURE_CPUVISIBLE_CROSSADAPTER: D3DKMDT_GDISURFACETYPE = 8i32; +pub const D3DKMDT_GDISURFACE_TEXTURE_CROSSADAPTER: D3DKMDT_GDISURFACETYPE = 7i32; +pub const D3DKMDT_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY: D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY = 100i32; +pub const D3DKMDT_GRAPHICS_PREEMPTION_NONE: D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY = 0i32; +pub const D3DKMDT_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY: D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY = 400i32; +pub const D3DKMDT_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY: D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY = 200i32; +pub const D3DKMDT_GRAPHICS_PREEMPTION_SHADER_BOUNDARY: D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY = 500i32; +pub const D3DKMDT_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY: D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY = 300i32; +pub const D3DKMDT_GTF_COMPLIANT: D3DKMDT_GTFCOMPLIANCE = 1i32; +pub const D3DKMDT_GTF_NOTCOMPLIANT: D3DKMDT_GTFCOMPLIANCE = 2i32; +pub const D3DKMDT_GTF_UNINITIALIZED: D3DKMDT_GTFCOMPLIANCE = 0i32; +pub const D3DKMDT_MACROVISION_OEMCOPYPROTECTION_SIZE: u32 = 256u32; +pub const D3DKMDT_MAX_OVERLAYS_BITCOUNT: u32 = 2u32; +pub const D3DKMDT_MAX_VIDPN_SOURCES_BITCOUNT: u32 = 4u32; +pub const D3DKMDT_MCC_ENFORCE: D3DKMDT_MONITOR_CONNECTIVITY_CHECKS = 2i32; +pub const D3DKMDT_MCC_IGNORE: D3DKMDT_MONITOR_CONNECTIVITY_CHECKS = 1i32; +pub const D3DKMDT_MCC_UNINITIALIZED: D3DKMDT_MONITOR_CONNECTIVITY_CHECKS = 0i32; +pub const D3DKMDT_MCO_DEFAULTMONITORPROFILE: D3DKMDT_MONITOR_CAPABILITIES_ORIGIN = 1i32; +pub const D3DKMDT_MCO_DRIVER: D3DKMDT_MONITOR_CAPABILITIES_ORIGIN = 5i32; +pub const D3DKMDT_MCO_MONITORDESCRIPTOR: D3DKMDT_MONITOR_CAPABILITIES_ORIGIN = 2i32; +pub const D3DKMDT_MCO_MONITORDESCRIPTOR_REGISTRYOVERRIDE: D3DKMDT_MONITOR_CAPABILITIES_ORIGIN = 3i32; +pub const D3DKMDT_MCO_SPECIFICCAP_REGISTRYOVERRIDE: D3DKMDT_MONITOR_CAPABILITIES_ORIGIN = 4i32; +pub const D3DKMDT_MCO_UNINITIALIZED: D3DKMDT_MONITOR_CAPABILITIES_ORIGIN = 0i32; +pub const D3DKMDT_MDT_OTHER: D3DKMDT_MONITOR_DESCRIPTOR_TYPE = 255i32; +pub const D3DKMDT_MDT_UNINITIALIZED: D3DKMDT_MONITOR_DESCRIPTOR_TYPE = 0i32; +pub const D3DKMDT_MDT_VESA_EDID_V1_BASEBLOCK: D3DKMDT_MONITOR_DESCRIPTOR_TYPE = 1i32; +pub const D3DKMDT_MDT_VESA_EDID_V1_BLOCKMAP: D3DKMDT_MONITOR_DESCRIPTOR_TYPE = 2i32; +pub const D3DKMDT_MFRC_ACTIVESIZE: D3DKMDT_MONITOR_FREQUENCY_RANGE_CONSTRAINT = 1i32; +pub const D3DKMDT_MFRC_MAXPIXELRATE: D3DKMDT_MONITOR_FREQUENCY_RANGE_CONSTRAINT = 2i32; +pub const D3DKMDT_MFRC_UNINITIALIZED: D3DKMDT_MONITOR_FREQUENCY_RANGE_CONSTRAINT = 0i32; +pub const D3DKMDT_MOA_INTERRUPTIBLE: D3DKMDT_MONITOR_ORIENTATION_AWARENESS = 3i32; +pub const D3DKMDT_MOA_NONE: D3DKMDT_MONITOR_ORIENTATION_AWARENESS = 1i32; +pub const D3DKMDT_MOA_POLLED: D3DKMDT_MONITOR_ORIENTATION_AWARENESS = 2i32; +pub const D3DKMDT_MOA_UNINITIALIZED: D3DKMDT_MONITOR_ORIENTATION_AWARENESS = 0i32; +pub const D3DKMDT_MO_0DEG: D3DKMDT_MONITOR_ORIENTATION = 1i32; +pub const D3DKMDT_MO_180DEG: D3DKMDT_MONITOR_ORIENTATION = 3i32; +pub const D3DKMDT_MO_270DEG: D3DKMDT_MONITOR_ORIENTATION = 4i32; +pub const D3DKMDT_MO_90DEG: D3DKMDT_MONITOR_ORIENTATION = 2i32; +pub const D3DKMDT_MO_UNINITIALIZED: D3DKMDT_MONITOR_ORIENTATION = 0i32; +pub const D3DKMDT_MPR_ALLCAPS: D3DKMDT_MODE_PRUNING_REASON = 1i32; +pub const D3DKMDT_MPR_CLONE_PATH_PRUNED: D3DKMDT_MODE_PRUNING_REASON = 9i32; +pub const D3DKMDT_MPR_DEFAULT_PROFILE_MONITOR_SOURCE_MODE: D3DKMDT_MODE_PRUNING_REASON = 6i32; +pub const D3DKMDT_MPR_DESCRIPTOR_MONITOR_FREQUENCY_RANGE: D3DKMDT_MODE_PRUNING_REASON = 3i32; +pub const D3DKMDT_MPR_DESCRIPTOR_MONITOR_SOURCE_MODE: D3DKMDT_MODE_PRUNING_REASON = 2i32; +pub const D3DKMDT_MPR_DESCRIPTOR_OVERRIDE_MONITOR_FREQUENCY_RANGE: D3DKMDT_MODE_PRUNING_REASON = 5i32; +pub const D3DKMDT_MPR_DESCRIPTOR_OVERRIDE_MONITOR_SOURCE_MODE: D3DKMDT_MODE_PRUNING_REASON = 4i32; +pub const D3DKMDT_MPR_DRIVER_RECOMMENDED_MONITOR_SOURCE_MODE: D3DKMDT_MODE_PRUNING_REASON = 7i32; +pub const D3DKMDT_MPR_MAXVALID: D3DKMDT_MODE_PRUNING_REASON = 10i32; +pub const D3DKMDT_MPR_MONITOR_FREQUENCY_RANGE_OVERRIDE: D3DKMDT_MODE_PRUNING_REASON = 8i32; +pub const D3DKMDT_MPR_UNINITIALIZED: D3DKMDT_MODE_PRUNING_REASON = 0i32; +pub const D3DKMDT_MP_NOTPREFERRED: D3DKMDT_MODE_PREFERENCE = 2i32; +pub const D3DKMDT_MP_PREFERRED: D3DKMDT_MODE_PREFERENCE = 1i32; +pub const D3DKMDT_MP_UNINITIALIZED: D3DKMDT_MODE_PREFERENCE = 0i32; +pub const D3DKMDT_MTT_DEFAULTMONITORPROFILE: D3DKMDT_MONITOR_TIMING_TYPE = 5i32; +pub const D3DKMDT_MTT_DETAILED: D3DKMDT_MONITOR_TIMING_TYPE = 4i32; +pub const D3DKMDT_MTT_DRIVER: D3DKMDT_MONITOR_TIMING_TYPE = 6i32; +pub const D3DKMDT_MTT_ESTABLISHED: D3DKMDT_MONITOR_TIMING_TYPE = 1i32; +pub const D3DKMDT_MTT_EXTRASTANDARD: D3DKMDT_MONITOR_TIMING_TYPE = 3i32; +pub const D3DKMDT_MTT_STANDARD: D3DKMDT_MONITOR_TIMING_TYPE = 2i32; +pub const D3DKMDT_MTT_UNINITIALIZED: D3DKMDT_MONITOR_TIMING_TYPE = 0i32; +pub const D3DKMDT_PVAM_DIRECT: D3DKMDT_PIXEL_VALUE_ACCESS_MODE = 1i32; +pub const D3DKMDT_PVAM_PRESETPALETTE: D3DKMDT_PIXEL_VALUE_ACCESS_MODE = 2i32; +pub const D3DKMDT_PVAM_SETTABLEPALETTE: D3DKMDT_PIXEL_VALUE_ACCESS_MODE = 3i32; +pub const D3DKMDT_PVAM_UNINITIALIZED: D3DKMDT_PIXEL_VALUE_ACCESS_MODE = 0i32; +pub const D3DKMDT_RMT_GRAPHICS: D3DKMDT_VIDPN_SOURCE_MODE_TYPE = 1i32; +pub const D3DKMDT_RMT_GRAPHICS_STEREO: D3DKMDT_VIDPN_SOURCE_MODE_TYPE = 3i32; +pub const D3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCAN: D3DKMDT_VIDPN_SOURCE_MODE_TYPE = 4i32; +pub const D3DKMDT_RMT_TEXT: D3DKMDT_VIDPN_SOURCE_MODE_TYPE = 2i32; +pub const D3DKMDT_RMT_UNINITIALIZED: D3DKMDT_VIDPN_SOURCE_MODE_TYPE = 0i32; +pub const D3DKMDT_STANDARDALLOCATION_GDISURFACE: D3DKMDT_STANDARDALLOCATION_TYPE = 4i32; +pub const D3DKMDT_STANDARDALLOCATION_SHADOWSURFACE: D3DKMDT_STANDARDALLOCATION_TYPE = 2i32; +pub const D3DKMDT_STANDARDALLOCATION_SHAREDPRIMARYSURFACE: D3DKMDT_STANDARDALLOCATION_TYPE = 1i32; +pub const D3DKMDT_STANDARDALLOCATION_STAGINGSURFACE: D3DKMDT_STANDARDALLOCATION_TYPE = 3i32; +pub const D3DKMDT_STANDARDALLOCATION_VGPU: D3DKMDT_STANDARDALLOCATION_TYPE = 5i32; +pub const D3DKMDT_TRF_UNINITIALIZED: D3DKMDT_TEXT_RENDERING_FORMAT = 0i32; +pub const D3DKMDT_VOT_BNC: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 3i32; +pub const D3DKMDT_VOT_COMPONENT_VIDEO: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 3i32; +pub const D3DKMDT_VOT_COMPOSITE_VIDEO: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 2i32; +pub const D3DKMDT_VOT_DISPLAYPORT_EMBEDDED: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 11i32; +pub const D3DKMDT_VOT_DISPLAYPORT_EXTERNAL: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 10i32; +pub const D3DKMDT_VOT_DVI: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 4i32; +pub const D3DKMDT_VOT_D_JPN: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 8i32; +pub const D3DKMDT_VOT_HD15: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 0i32; +pub const D3DKMDT_VOT_HDMI: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 5i32; +pub const D3DKMDT_VOT_INDIRECT_WIRED: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 16i32; +pub const D3DKMDT_VOT_INTERNAL: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = -2147483648i32; +pub const D3DKMDT_VOT_LVDS: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 6i32; +pub const D3DKMDT_VOT_MIRACAST: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 15i32; +pub const D3DKMDT_VOT_OTHER: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = -1i32; +pub const D3DKMDT_VOT_RCA_3COMPONENT: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 3i32; +pub const D3DKMDT_VOT_RF: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 2i32; +pub const D3DKMDT_VOT_SDI: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 9i32; +pub const D3DKMDT_VOT_SDTVDONGLE: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 14i32; +pub const D3DKMDT_VOT_SVIDEO: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 1i32; +pub const D3DKMDT_VOT_SVIDEO_4PIN: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 1i32; +pub const D3DKMDT_VOT_SVIDEO_7PIN: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 1i32; +pub const D3DKMDT_VOT_UDI_EMBEDDED: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 13i32; +pub const D3DKMDT_VOT_UDI_EXTERNAL: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = 12i32; +pub const D3DKMDT_VOT_UNINITIALIZED: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = -2i32; +pub const D3DKMDT_VPPC_GRAPHICS: D3DKMDT_VIDPN_PRESENT_PATH_CONTENT = 1i32; +pub const D3DKMDT_VPPC_NOTSPECIFIED: D3DKMDT_VIDPN_PRESENT_PATH_CONTENT = 255i32; +pub const D3DKMDT_VPPC_UNINITIALIZED: D3DKMDT_VIDPN_PRESENT_PATH_CONTENT = 0i32; +pub const D3DKMDT_VPPC_VIDEO: D3DKMDT_VIDPN_PRESENT_PATH_CONTENT = 2i32; +pub const D3DKMDT_VPPI_DENARY: D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE = 10i32; +pub const D3DKMDT_VPPI_NONARY: D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE = 9i32; +pub const D3DKMDT_VPPI_OCTONARY: D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE = 8i32; +pub const D3DKMDT_VPPI_PRIMARY: D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE = 1i32; +pub const D3DKMDT_VPPI_QUATERNARY: D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE = 4i32; +pub const D3DKMDT_VPPI_QUINARY: D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE = 5i32; +pub const D3DKMDT_VPPI_SECONDARY: D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE = 2i32; +pub const D3DKMDT_VPPI_SENARY: D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE = 6i32; +pub const D3DKMDT_VPPI_SEPTENARY: D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE = 7i32; +pub const D3DKMDT_VPPI_TERTIARY: D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE = 3i32; +pub const D3DKMDT_VPPI_UNINITIALIZED: D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE = 0i32; +pub const D3DKMDT_VPPMT_MACROVISION_APSTRIGGER: D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_TYPE = 2i32; +pub const D3DKMDT_VPPMT_MACROVISION_FULLSUPPORT: D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_TYPE = 3i32; +pub const D3DKMDT_VPPMT_NOPROTECTION: D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_TYPE = 1i32; +pub const D3DKMDT_VPPMT_UNINITIALIZED: D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_TYPE = 0i32; +pub const D3DKMDT_VPPR_IDENTITY: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 1i32; +pub const D3DKMDT_VPPR_IDENTITY_OFFSET180: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 9i32; +pub const D3DKMDT_VPPR_IDENTITY_OFFSET270: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 13i32; +pub const D3DKMDT_VPPR_IDENTITY_OFFSET90: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 5i32; +pub const D3DKMDT_VPPR_NOTSPECIFIED: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 255i32; +pub const D3DKMDT_VPPR_ROTATE180: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 3i32; +pub const D3DKMDT_VPPR_ROTATE180_OFFSET180: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 11i32; +pub const D3DKMDT_VPPR_ROTATE180_OFFSET270: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 15i32; +pub const D3DKMDT_VPPR_ROTATE180_OFFSET90: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 7i32; +pub const D3DKMDT_VPPR_ROTATE270: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 4i32; +pub const D3DKMDT_VPPR_ROTATE270_OFFSET180: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 12i32; +pub const D3DKMDT_VPPR_ROTATE270_OFFSET270: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 16i32; +pub const D3DKMDT_VPPR_ROTATE270_OFFSET90: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 8i32; +pub const D3DKMDT_VPPR_ROTATE90: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 2i32; +pub const D3DKMDT_VPPR_ROTATE90_OFFSET180: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 10i32; +pub const D3DKMDT_VPPR_ROTATE90_OFFSET270: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 14i32; +pub const D3DKMDT_VPPR_ROTATE90_OFFSET90: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 6i32; +pub const D3DKMDT_VPPR_UNINITIALIZED: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 0i32; +pub const D3DKMDT_VPPR_UNPINNED: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = 254i32; +pub const D3DKMDT_VPPS_ASPECTRATIOCENTEREDMAX: D3DKMDT_VIDPN_PRESENT_PATH_SCALING = 4i32; +pub const D3DKMDT_VPPS_CENTERED: D3DKMDT_VIDPN_PRESENT_PATH_SCALING = 2i32; +pub const D3DKMDT_VPPS_CUSTOM: D3DKMDT_VIDPN_PRESENT_PATH_SCALING = 5i32; +pub const D3DKMDT_VPPS_IDENTITY: D3DKMDT_VIDPN_PRESENT_PATH_SCALING = 1i32; +pub const D3DKMDT_VPPS_NOTSPECIFIED: D3DKMDT_VIDPN_PRESENT_PATH_SCALING = 255i32; +pub const D3DKMDT_VPPS_RESERVED1: D3DKMDT_VIDPN_PRESENT_PATH_SCALING = 253i32; +pub const D3DKMDT_VPPS_STRETCHED: D3DKMDT_VIDPN_PRESENT_PATH_SCALING = 3i32; +pub const D3DKMDT_VPPS_UNINITIALIZED: D3DKMDT_VIDPN_PRESENT_PATH_SCALING = 0i32; +pub const D3DKMDT_VPPS_UNPINNED: D3DKMDT_VIDPN_PRESENT_PATH_SCALING = 254i32; +pub const D3DKMDT_VSS_APPLE: D3DKMDT_VIDEO_SIGNAL_STANDARD = 5i32; +pub const D3DKMDT_VSS_EIA_861: D3DKMDT_VIDEO_SIGNAL_STANDARD = 25i32; +pub const D3DKMDT_VSS_EIA_861A: D3DKMDT_VIDEO_SIGNAL_STANDARD = 26i32; +pub const D3DKMDT_VSS_EIA_861B: D3DKMDT_VIDEO_SIGNAL_STANDARD = 27i32; +pub const D3DKMDT_VSS_IBM: D3DKMDT_VIDEO_SIGNAL_STANDARD = 4i32; +pub const D3DKMDT_VSS_NTSC_443: D3DKMDT_VIDEO_SIGNAL_STANDARD = 8i32; +pub const D3DKMDT_VSS_NTSC_J: D3DKMDT_VIDEO_SIGNAL_STANDARD = 7i32; +pub const D3DKMDT_VSS_NTSC_M: D3DKMDT_VIDEO_SIGNAL_STANDARD = 6i32; +pub const D3DKMDT_VSS_OTHER: D3DKMDT_VIDEO_SIGNAL_STANDARD = 255i32; +pub const D3DKMDT_VSS_PAL_B: D3DKMDT_VIDEO_SIGNAL_STANDARD = 9i32; +pub const D3DKMDT_VSS_PAL_B1: D3DKMDT_VIDEO_SIGNAL_STANDARD = 10i32; +pub const D3DKMDT_VSS_PAL_D: D3DKMDT_VIDEO_SIGNAL_STANDARD = 14i32; +pub const D3DKMDT_VSS_PAL_G: D3DKMDT_VIDEO_SIGNAL_STANDARD = 11i32; +pub const D3DKMDT_VSS_PAL_H: D3DKMDT_VIDEO_SIGNAL_STANDARD = 12i32; +pub const D3DKMDT_VSS_PAL_I: D3DKMDT_VIDEO_SIGNAL_STANDARD = 13i32; +pub const D3DKMDT_VSS_PAL_K: D3DKMDT_VIDEO_SIGNAL_STANDARD = 28i32; +pub const D3DKMDT_VSS_PAL_K1: D3DKMDT_VIDEO_SIGNAL_STANDARD = 29i32; +pub const D3DKMDT_VSS_PAL_L: D3DKMDT_VIDEO_SIGNAL_STANDARD = 30i32; +pub const D3DKMDT_VSS_PAL_M: D3DKMDT_VIDEO_SIGNAL_STANDARD = 31i32; +pub const D3DKMDT_VSS_PAL_N: D3DKMDT_VIDEO_SIGNAL_STANDARD = 15i32; +pub const D3DKMDT_VSS_PAL_NC: D3DKMDT_VIDEO_SIGNAL_STANDARD = 16i32; +pub const D3DKMDT_VSS_SECAM_B: D3DKMDT_VIDEO_SIGNAL_STANDARD = 17i32; +pub const D3DKMDT_VSS_SECAM_D: D3DKMDT_VIDEO_SIGNAL_STANDARD = 18i32; +pub const D3DKMDT_VSS_SECAM_G: D3DKMDT_VIDEO_SIGNAL_STANDARD = 19i32; +pub const D3DKMDT_VSS_SECAM_H: D3DKMDT_VIDEO_SIGNAL_STANDARD = 20i32; +pub const D3DKMDT_VSS_SECAM_K: D3DKMDT_VIDEO_SIGNAL_STANDARD = 21i32; +pub const D3DKMDT_VSS_SECAM_K1: D3DKMDT_VIDEO_SIGNAL_STANDARD = 22i32; +pub const D3DKMDT_VSS_SECAM_L: D3DKMDT_VIDEO_SIGNAL_STANDARD = 23i32; +pub const D3DKMDT_VSS_SECAM_L1: D3DKMDT_VIDEO_SIGNAL_STANDARD = 24i32; +pub const D3DKMDT_VSS_UNINITIALIZED: D3DKMDT_VIDEO_SIGNAL_STANDARD = 0i32; +pub const D3DKMDT_VSS_VESA_CVT: D3DKMDT_VIDEO_SIGNAL_STANDARD = 3i32; +pub const D3DKMDT_VSS_VESA_DMT: D3DKMDT_VIDEO_SIGNAL_STANDARD = 1i32; +pub const D3DKMDT_VSS_VESA_GTF: D3DKMDT_VIDEO_SIGNAL_STANDARD = 2i32; +pub const D3DKMT_ACTIVATE_SPECIFIC_DIAG_TYPE_EXTRA_CCD_DATABASE_INFO: D3DKMT_ACTIVATE_SPECIFIC_DIAG_TYPE = 0i32; +pub const D3DKMT_ACTIVATE_SPECIFIC_DIAG_TYPE_MODES_PRUNED: D3DKMT_ACTIVATE_SPECIFIC_DIAG_TYPE = 15i32; +pub const D3DKMT_ADAPTER_VERIFIER_OPTION_VIDMM_FLAGS: D3DKMT_ADAPTER_VERIFIER_OPTION_TYPE = 1000i32; +pub const D3DKMT_ADAPTER_VERIFIER_OPTION_VIDMM_TRIM_INTERVAL: D3DKMT_ADAPTER_VERIFIER_OPTION_TYPE = 1001i32; +pub const D3DKMT_ALLOCATIONRESIDENCYSTATUS_NOTRESIDENT: D3DKMT_ALLOCATIONRESIDENCYSTATUS = 3i32; +pub const D3DKMT_ALLOCATIONRESIDENCYSTATUS_RESIDENTINGPUMEMORY: D3DKMT_ALLOCATIONRESIDENCYSTATUS = 1i32; +pub const D3DKMT_ALLOCATIONRESIDENCYSTATUS_RESIDENTINSHAREDMEMORY: D3DKMT_ALLOCATIONRESIDENCYSTATUS = 2i32; +pub const D3DKMT_AUXILIARYPRESENTINFO_TYPE_FLIPMANAGER: D3DKMT_AUXILIARYPRESENTINFO_TYPE = 0i32; +pub const D3DKMT_AllocationPriorityClassHigh: D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS = 3i32; +pub const D3DKMT_AllocationPriorityClassLow: D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS = 1i32; +pub const D3DKMT_AllocationPriorityClassMaximum: D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS = 4i32; +pub const D3DKMT_AllocationPriorityClassMinimum: D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS = 0i32; +pub const D3DKMT_AllocationPriorityClassNormal: D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS = 2i32; +pub const D3DKMT_BRIGHTNESS_INFO_BEGIN_MANUAL_MODE: D3DKMT_BRIGHTNESS_INFO_TYPE = 8i32; +pub const D3DKMT_BRIGHTNESS_INFO_END_MANUAL_MODE: D3DKMT_BRIGHTNESS_INFO_TYPE = 9i32; +pub const D3DKMT_BRIGHTNESS_INFO_GET: D3DKMT_BRIGHTNESS_INFO_TYPE = 2i32; +pub const D3DKMT_BRIGHTNESS_INFO_GET_CAPS: D3DKMT_BRIGHTNESS_INFO_TYPE = 4i32; +pub const D3DKMT_BRIGHTNESS_INFO_GET_NIT_RANGES: D3DKMT_BRIGHTNESS_INFO_TYPE = 11i32; +pub const D3DKMT_BRIGHTNESS_INFO_GET_POSSIBLE_LEVELS: D3DKMT_BRIGHTNESS_INFO_TYPE = 1i32; +pub const D3DKMT_BRIGHTNESS_INFO_GET_REDUCTION: D3DKMT_BRIGHTNESS_INFO_TYPE = 7i32; +pub const D3DKMT_BRIGHTNESS_INFO_SET: D3DKMT_BRIGHTNESS_INFO_TYPE = 3i32; +pub const D3DKMT_BRIGHTNESS_INFO_SET_OPTIMIZATION: D3DKMT_BRIGHTNESS_INFO_TYPE = 6i32; +pub const D3DKMT_BRIGHTNESS_INFO_SET_STATE: D3DKMT_BRIGHTNESS_INFO_TYPE = 5i32; +pub const D3DKMT_BRIGHTNESS_INFO_TOGGLE_LOGGING: D3DKMT_BRIGHTNESS_INFO_TYPE = 10i32; +pub const D3DKMT_CANCEL_PRESENTS_OPERATION_CANCEL_FROM: D3DKMT_CANCEL_PRESENTS_OPERATION = 0i32; +pub const D3DKMT_CANCEL_PRESENTS_OPERATION_REPROGRAM_INTERRUPT: D3DKMT_CANCEL_PRESENTS_OPERATION = 1i32; +pub const D3DKMT_CLIENTHINT_11ON12: D3DKMT_CLIENTHINT = 14i32; +pub const D3DKMT_CLIENTHINT_9ON12: D3DKMT_CLIENTHINT = 13i32; +pub const D3DKMT_CLIENTHINT_CDD: D3DKMT_CLIENTHINT = 2i32; +pub const D3DKMT_CLIENTHINT_CLON12: D3DKMT_CLIENTHINT = 17i32; +pub const D3DKMT_CLIENTHINT_CUDA: D3DKMT_CLIENTHINT = 5i32; +pub const D3DKMT_CLIENTHINT_DML_PYTORCH: D3DKMT_CLIENTHINT = 20i32; +pub const D3DKMT_CLIENTHINT_DML_TENSORFLOW: D3DKMT_CLIENTHINT = 18i32; +pub const D3DKMT_CLIENTHINT_DX10: D3DKMT_CLIENTHINT = 10i32; +pub const D3DKMT_CLIENTHINT_DX11: D3DKMT_CLIENTHINT = 11i32; +pub const D3DKMT_CLIENTHINT_DX12: D3DKMT_CLIENTHINT = 12i32; +pub const D3DKMT_CLIENTHINT_DX7: D3DKMT_CLIENTHINT = 7i32; +pub const D3DKMT_CLIENTHINT_DX8: D3DKMT_CLIENTHINT = 8i32; +pub const D3DKMT_CLIENTHINT_DX9: D3DKMT_CLIENTHINT = 9i32; +pub const D3DKMT_CLIENTHINT_GLON12: D3DKMT_CLIENTHINT = 16i32; +pub const D3DKMT_CLIENTHINT_MAX: D3DKMT_CLIENTHINT = 21i32; +pub const D3DKMT_CLIENTHINT_MFT_ENCODE: D3DKMT_CLIENTHINT = 15i32; +pub const D3DKMT_CLIENTHINT_ONEAPI_LEVEL0: D3DKMT_CLIENTHINT = 19i32; +pub const D3DKMT_CLIENTHINT_OPENCL: D3DKMT_CLIENTHINT = 3i32; +pub const D3DKMT_CLIENTHINT_OPENGL: D3DKMT_CLIENTHINT = 1i32; +pub const D3DKMT_CLIENTHINT_RESERVED: D3DKMT_CLIENTHINT = 6i32; +pub const D3DKMT_CLIENTHINT_UNKNOWN: D3DKMT_CLIENTHINT = 0i32; +pub const D3DKMT_CLIENTHINT_VULKAN: D3DKMT_CLIENTHINT = 4i32; +pub const D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER_COPY: D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER = 1i32; +pub const D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER_NONE: D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER = 0i32; +pub const D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER_SCANOUT: D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER = 3i32; +pub const D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER_TEXTURE: D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER = 2i32; +pub const D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT: u32 = 4u32; +pub const D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT: u32 = 128u32; +pub const D3DKMT_ClientPagingBuffer: D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE = 1i32; +pub const D3DKMT_ClientRenderBuffer: D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE = 0i32; +pub const D3DKMT_DEFRAG_ESCAPE_DEFRAG_DOWNWARD: D3DKMT_DEFRAG_ESCAPE_OPERATION = 2i32; +pub const D3DKMT_DEFRAG_ESCAPE_DEFRAG_PASS: D3DKMT_DEFRAG_ESCAPE_OPERATION = 3i32; +pub const D3DKMT_DEFRAG_ESCAPE_DEFRAG_UPWARD: D3DKMT_DEFRAG_ESCAPE_OPERATION = 1i32; +pub const D3DKMT_DEFRAG_ESCAPE_GET_FRAGMENTATION_STATS: D3DKMT_DEFRAG_ESCAPE_OPERATION = 0i32; +pub const D3DKMT_DEFRAG_ESCAPE_VERIFY_TRANSFER: D3DKMT_DEFRAG_ESCAPE_OPERATION = 4i32; +pub const D3DKMT_DEVICEESCAPE_RESTOREGAMMA: D3DKMT_DEVICEESCAPE_TYPE = 1i32; +pub const D3DKMT_DEVICEESCAPE_VIDPNFROMALLOCATION: D3DKMT_DEVICEESCAPE_TYPE = 0i32; +pub const D3DKMT_DEVICEEXECUTION_ACTIVE: D3DKMT_DEVICEEXECUTION_STATE = 1i32; +pub const D3DKMT_DEVICEEXECUTION_ERROR_DMAFAULT: D3DKMT_DEVICEEXECUTION_STATE = 6i32; +pub const D3DKMT_DEVICEEXECUTION_ERROR_DMAPAGEFAULT: D3DKMT_DEVICEEXECUTION_STATE = 7i32; +pub const D3DKMT_DEVICEEXECUTION_ERROR_OUTOFMEMORY: D3DKMT_DEVICEEXECUTION_STATE = 5i32; +pub const D3DKMT_DEVICEEXECUTION_HUNG: D3DKMT_DEVICEEXECUTION_STATE = 3i32; +pub const D3DKMT_DEVICEEXECUTION_RESET: D3DKMT_DEVICEEXECUTION_STATE = 2i32; +pub const D3DKMT_DEVICEEXECUTION_STOPPED: D3DKMT_DEVICEEXECUTION_STATE = 4i32; +pub const D3DKMT_DEVICESTATE_EXECUTION: D3DKMT_DEVICESTATE_TYPE = 1i32; +pub const D3DKMT_DEVICESTATE_PAGE_FAULT: D3DKMT_DEVICESTATE_TYPE = 5i32; +pub const D3DKMT_DEVICESTATE_PRESENT: D3DKMT_DEVICESTATE_TYPE = 2i32; +pub const D3DKMT_DEVICESTATE_PRESENT_DWM: D3DKMT_DEVICESTATE_TYPE = 4i32; +pub const D3DKMT_DEVICESTATE_PRESENT_QUEUE: D3DKMT_DEVICESTATE_TYPE = 6i32; +pub const D3DKMT_DEVICESTATE_RESET: D3DKMT_DEVICESTATE_TYPE = 3i32; +pub const D3DKMT_DEVICE_ERROR_REASON_DRIVER_ERROR: D3DKMT_DEVICE_ERROR_REASON = -2147483642i32; +pub const D3DKMT_DEVICE_ERROR_REASON_GENERIC: D3DKMT_DEVICE_ERROR_REASON = -2147483648i32; +pub const D3DKMT_DMMESCAPETYPE_ACTIVEVIDPN_COFUNCPATHMODALITY_INFO: D3DKMT_DMMESCAPETYPE = 11i32; +pub const D3DKMT_DMMESCAPETYPE_ACTIVEVIDPN_SOURCEMODESET_INFO: D3DKMT_DMMESCAPETYPE = 10i32; +pub const D3DKMT_DMMESCAPETYPE_GET_ACTIVEVIDPN_INFO: D3DKMT_DMMESCAPETYPE = 4i32; +pub const D3DKMT_DMMESCAPETYPE_GET_LASTCLIENTCOMMITTEDVIDPN_INFO: D3DKMT_DMMESCAPETYPE = 12i32; +pub const D3DKMT_DMMESCAPETYPE_GET_MONITORS_INFO: D3DKMT_DMMESCAPETYPE = 5i32; +pub const D3DKMT_DMMESCAPETYPE_GET_SUMMARY_INFO: D3DKMT_DMMESCAPETYPE = 1i32; +pub const D3DKMT_DMMESCAPETYPE_GET_VERSION_INFO: D3DKMT_DMMESCAPETYPE = 13i32; +pub const D3DKMT_DMMESCAPETYPE_GET_VIDEO_PRESENT_SOURCES_INFO: D3DKMT_DMMESCAPETYPE = 2i32; +pub const D3DKMT_DMMESCAPETYPE_GET_VIDEO_PRESENT_TARGETS_INFO: D3DKMT_DMMESCAPETYPE = 3i32; +pub const D3DKMT_DMMESCAPETYPE_RECENTLY_COMMITTED_VIDPNS_INFO: D3DKMT_DMMESCAPETYPE = 6i32; +pub const D3DKMT_DMMESCAPETYPE_RECENTLY_RECOMMENDED_VIDPNS_INFO: D3DKMT_DMMESCAPETYPE = 8i32; +pub const D3DKMT_DMMESCAPETYPE_RECENT_MODECHANGE_REQUESTS_INFO: D3DKMT_DMMESCAPETYPE = 7i32; +pub const D3DKMT_DMMESCAPETYPE_RECENT_MONITOR_PRESENCE_EVENTS_INFO: D3DKMT_DMMESCAPETYPE = 9i32; +pub const D3DKMT_DMMESCAPETYPE_UNINITIALIZED: D3DKMT_DMMESCAPETYPE = 0i32; +pub const D3DKMT_DMMESCAPETYPE_VIDPN_MGR_DIAGNOSTICS: D3DKMT_DMMESCAPETYPE = 14i32; +pub const D3DKMT_DeferredCommandBuffer: D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE = 1i32; +pub const D3DKMT_DeviceCommandBuffer: D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE = 6i32; +pub const D3DKMT_DmaPacketTypeMax: D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE = 4i32; +pub const D3DKMT_ESCAPE_ACTIVATE_SPECIFIC_DIAG: D3DKMT_ESCAPETYPE = 14i32; +pub const D3DKMT_ESCAPE_ADAPTER_VERIFIER_OPTION: D3DKMT_ESCAPETYPE = 29i32; +pub const D3DKMT_ESCAPE_BDD_FALLBACK: D3DKMT_ESCAPETYPE = 13i32; +pub const D3DKMT_ESCAPE_BDD_PNP: D3DKMT_ESCAPETYPE = 12i32; +pub const D3DKMT_ESCAPE_BRIGHTNESS: D3DKMT_ESCAPETYPE = 17i32; +pub const D3DKMT_ESCAPE_CCD_DATABASE: D3DKMT_ESCAPETYPE = 38i32; +pub const D3DKMT_ESCAPE_DEBUG_SNAPSHOT: D3DKMT_ESCAPETYPE = 6i32; +pub const D3DKMT_ESCAPE_DEVICE: D3DKMT_ESCAPETYPE = 4i32; +pub const D3DKMT_ESCAPE_DIAGNOSTICS: D3DKMT_ESCAPETYPE = 9i32; +pub const D3DKMT_ESCAPE_DMM: D3DKMT_ESCAPETYPE = 5i32; +pub const D3DKMT_ESCAPE_DOD_SET_DIRTYRECT_MODE: D3DKMT_ESCAPETYPE = 31i32; +pub const D3DKMT_ESCAPE_DRIVERPRIVATE: D3DKMT_ESCAPETYPE = 0i32; +pub const D3DKMT_ESCAPE_DRT_TEST: D3DKMT_ESCAPETYPE = 8i32; +pub const D3DKMT_ESCAPE_EDID_CACHE: D3DKMT_ESCAPETYPE = 18i32; +pub const D3DKMT_ESCAPE_FORCE_BDDFALLBACK_HEADLESS: D3DKMT_ESCAPETYPE = 24i32; +pub const D3DKMT_ESCAPE_GET_DISPLAY_CONFIGURATIONS: D3DKMT_ESCAPETYPE = 36i32; +pub const D3DKMT_ESCAPE_GET_EXTERNAL_DIAGNOSTICS: D3DKMT_ESCAPETYPE = 34i32; +pub const D3DKMT_ESCAPE_HISTORY_BUFFER_STATUS: D3DKMT_ESCAPETYPE = 21i32; +pub const D3DKMT_ESCAPE_IDD_REQUEST: D3DKMT_ESCAPETYPE = 30i32; +pub const D3DKMT_ESCAPE_LOG_CODEPOINT_PACKET: D3DKMT_ESCAPETYPE = 32i32; +pub const D3DKMT_ESCAPE_LOG_USERMODE_DAIG_PACKET: D3DKMT_ESCAPETYPE = 33i32; +pub const D3DKMT_ESCAPE_MIRACAST_ADAPTER_DIAG_INFO: D3DKMT_ESCAPETYPE = 23i32; +pub const D3DKMT_ESCAPE_MIRACAST_DISPLAY_REQUEST: D3DKMT_ESCAPETYPE = 20i32; +pub const D3DKMT_ESCAPE_MODES_PRUNED_OUT: D3DKMT_ESCAPETYPE = 15i32; +pub const D3DKMT_ESCAPE_OUTPUTDUPL_DIAGNOSTICS: D3DKMT_ESCAPETYPE = 11i32; +pub const D3DKMT_ESCAPE_OUTPUTDUPL_SNAPSHOT: D3DKMT_ESCAPETYPE = 10i32; +pub const D3DKMT_ESCAPE_PFN_CONTROL_DEFAULT: D3DKMT_ESCAPE_PFN_CONTROL_COMMAND = 0i32; +pub const D3DKMT_ESCAPE_PFN_CONTROL_FORCE_CPU: D3DKMT_ESCAPE_PFN_CONTROL_COMMAND = 1i32; +pub const D3DKMT_ESCAPE_PFN_CONTROL_FORCE_GPU: D3DKMT_ESCAPE_PFN_CONTROL_COMMAND = 2i32; +pub const D3DKMT_ESCAPE_PROCESS_VERIFIER_OPTION: D3DKMT_ESCAPETYPE = 28i32; +pub const D3DKMT_ESCAPE_QUERY_DMA_REMAPPING_STATUS: D3DKMT_ESCAPETYPE = 39i32; +pub const D3DKMT_ESCAPE_QUERY_IOMMU_STATUS: D3DKMT_ESCAPETYPE = 37i32; +pub const D3DKMT_ESCAPE_REQUEST_MACHINE_CRASH: D3DKMT_ESCAPETYPE = 25i32; +pub const D3DKMT_ESCAPE_SOFTGPU_ENABLE_DISABLE_HMD: D3DKMT_ESCAPETYPE = 27i32; +pub const D3DKMT_ESCAPE_TDRDBGCTRL: D3DKMT_ESCAPETYPE = 2i32; +pub const D3DKMT_ESCAPE_VIDMM: D3DKMT_ESCAPETYPE = 1i32; +pub const D3DKMT_ESCAPE_VIDSCH: D3DKMT_ESCAPETYPE = 3i32; +pub const D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE_SET_BASE_DESKTOP_DURATION: D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE = 0i32; +pub const D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE_SET_PROCESS_BOOST_ELIGIBLE: D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE = 2i32; +pub const D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE_SET_VSYNC_MULTIPLIER: D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE = 1i32; +pub const D3DKMT_ESCAPE_WHQL_INFO: D3DKMT_ESCAPETYPE = 16i32; +pub const D3DKMT_ESCAPE_WIN32K_BDD_FALLBACK: D3DKMT_ESCAPETYPE = 1029i32; +pub const D3DKMT_ESCAPE_WIN32K_COLOR_PROFILE_INFO: D3DKMT_ESCAPETYPE = 1036i32; +pub const D3DKMT_ESCAPE_WIN32K_DDA_TEST_CTL: D3DKMT_ESCAPETYPE = 1030i32; +pub const D3DKMT_ESCAPE_WIN32K_DISPBROKER_TEST: D3DKMT_ESCAPETYPE = 1035i32; +pub const D3DKMT_ESCAPE_WIN32K_DPI_INFO: D3DKMT_ESCAPETYPE = 1026i32; +pub const D3DKMT_ESCAPE_WIN32K_HIP_DEVICE_INFO: D3DKMT_ESCAPETYPE = 1024i32; +pub const D3DKMT_ESCAPE_WIN32K_PRESENTER_VIEW_INFO: D3DKMT_ESCAPETYPE = 1027i32; +pub const D3DKMT_ESCAPE_WIN32K_QUERY_CD_ROTATION_BLOCK: D3DKMT_ESCAPETYPE = 1025i32; +pub const D3DKMT_ESCAPE_WIN32K_SET_DIMMED_STATE: D3DKMT_ESCAPETYPE = 1037i32; +pub const D3DKMT_ESCAPE_WIN32K_SPECIALIZED_DISPLAY_TEST: D3DKMT_ESCAPETYPE = 1038i32; +pub const D3DKMT_ESCAPE_WIN32K_START: D3DKMT_ESCAPETYPE = 1024i32; +pub const D3DKMT_ESCAPE_WIN32K_SYSTEM_DPI: D3DKMT_ESCAPETYPE = 1028i32; +pub const D3DKMT_ESCAPE_WIN32K_USER_DETECTED_BLACK_SCREEN: D3DKMT_ESCAPETYPE = 1031i32; +pub const D3DKMT_FLIPMODEL_INDEPENDENT_FLIP_STAGE_FLIP_COMPLETE: D3DKMT_FLIPMODEL_INDEPENDENT_FLIP_STAGE = 1i32; +pub const D3DKMT_FLIPMODEL_INDEPENDENT_FLIP_STAGE_FLIP_SUBMITTED: D3DKMT_FLIPMODEL_INDEPENDENT_FLIP_STAGE = 0i32; +pub const D3DKMT_GDI_STYLE_HANDLE_DECORATION: u32 = 2u32; +pub const D3DKMT_GETPRESENTHISTORY_MAXTOKENS: u32 = 2048u32; +pub const D3DKMT_GET_PTE_MAX: u32 = 64u32; +pub const D3DKMT_GET_QUEUEDLIMIT_PRESENT: D3DKMT_QUEUEDLIMIT_TYPE = 2i32; +pub const D3DKMT_GPU_PREFERENCE_STATE_HIGH_PERFORMANCE: D3DKMT_GPU_PREFERENCE_QUERY_STATE = 1i32; +pub const D3DKMT_GPU_PREFERENCE_STATE_MINIMUM_POWER: D3DKMT_GPU_PREFERENCE_QUERY_STATE = 2i32; +pub const D3DKMT_GPU_PREFERENCE_STATE_NOT_FOUND: D3DKMT_GPU_PREFERENCE_QUERY_STATE = 4i32; +pub const D3DKMT_GPU_PREFERENCE_STATE_UNINITIALIZED: D3DKMT_GPU_PREFERENCE_QUERY_STATE = 0i32; +pub const D3DKMT_GPU_PREFERENCE_STATE_UNSPECIFIED: D3DKMT_GPU_PREFERENCE_QUERY_STATE = 3i32; +pub const D3DKMT_GPU_PREFERENCE_STATE_USER_SPECIFIED_GPU: D3DKMT_GPU_PREFERENCE_QUERY_STATE = 5i32; +pub const D3DKMT_GPU_PREFERENCE_TYPE_DX_DATABASE: D3DKMT_GPU_PREFERENCE_QUERY_TYPE = 1i32; +pub const D3DKMT_GPU_PREFERENCE_TYPE_IHV_DLIST: D3DKMT_GPU_PREFERENCE_QUERY_TYPE = 0i32; +pub const D3DKMT_GPU_PREFERENCE_TYPE_USER_PREFERENCE: D3DKMT_GPU_PREFERENCE_QUERY_TYPE = 2i32; +pub const D3DKMT_MAX_BUNDLE_OBJECTS_PER_HANDLE: u32 = 16u32; +pub const D3DKMT_MAX_DMM_ESCAPE_DATASIZE: i32 = 102400i32; +pub const D3DKMT_MAX_MULTIPLANE_OVERLAY_ALLOCATIONS_PER_PLANE: u32 = 256u32; +pub const D3DKMT_MAX_MULTIPLANE_OVERLAY_PLANES: u32 = 8u32; +pub const D3DKMT_MAX_OBJECTS_PER_HANDLE: u32 = 3u32; +pub const D3DKMT_MAX_PRESENT_HISTORY_RECTS: u32 = 16u32; +pub const D3DKMT_MAX_PRESENT_HISTORY_SCATTERBLTS: u32 = 12u32; +pub const D3DKMT_MAX_SEGMENT_COUNT: u32 = 32u32; +pub const D3DKMT_MAX_WAITFORVERTICALBLANK_OBJECTS: u32 = 8u32; +pub const D3DKMT_MEMORY_SEGMENT_GROUP_LOCAL: D3DKMT_MEMORY_SEGMENT_GROUP = 0i32; +pub const D3DKMT_MEMORY_SEGMENT_GROUP_NON_LOCAL: D3DKMT_MEMORY_SEGMENT_GROUP = 1i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_CANCELLED: D3DKMT_MIRACAST_DEVICE_STATUS = -2147483637i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_DEVICE_ERROR: D3DKMT_MIRACAST_DEVICE_STATUS = -2147483645i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_DEVICE_NOT_FOUND: D3DKMT_MIRACAST_DEVICE_STATUS = -2147483642i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_DEVICE_NOT_STARTED: D3DKMT_MIRACAST_DEVICE_STATUS = -2147483641i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_GPU_RESOURCE_IN_USE: D3DKMT_MIRACAST_DEVICE_STATUS = -2147483646i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_INSUFFICIENT_BANDWIDTH: D3DKMT_MIRACAST_DEVICE_STATUS = -2147483639i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_INSUFFICIENT_MEMORY: D3DKMT_MIRACAST_DEVICE_STATUS = -2147483638i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_INVALID_PARAMETER: D3DKMT_MIRACAST_DEVICE_STATUS = -2147483640i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_PENDING: D3DKMT_MIRACAST_DEVICE_STATUS = 2i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_REMOTE_SESSION: D3DKMT_MIRACAST_DEVICE_STATUS = -2147483643i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_SUCCESS: D3DKMT_MIRACAST_DEVICE_STATUS = 0i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_SUCCESS_NO_MONITOR: D3DKMT_MIRACAST_DEVICE_STATUS = 1i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_UNKOWN_ERROR: D3DKMT_MIRACAST_DEVICE_STATUS = -2147483647i32; +pub const D3DKMT_MIRACAST_DEVICE_STATUS_UNKOWN_PAIRING: D3DKMT_MIRACAST_DEVICE_STATUS = -2147483644i32; +pub const D3DKMT_MIRACAST_DRIVER_IHV: D3DKMT_MIRACAST_DRIVER_TYPE = 1i32; +pub const D3DKMT_MIRACAST_DRIVER_MS: D3DKMT_MIRACAST_DRIVER_TYPE = 2i32; +pub const D3DKMT_MIRACAST_DRIVER_NOT_SUPPORTED: D3DKMT_MIRACAST_DRIVER_TYPE = 0i32; +pub const D3DKMT_MULIIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE: D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT = 0i32; +pub const D3DKMT_MULTIPLANE_OVERLAY_BLEND_ALPHABLEND: D3DKMT_MULTIPLANE_OVERLAY_BLEND = 1i32; +pub const D3DKMT_MULTIPLANE_OVERLAY_BLEND_OPAQUE: D3DKMT_MULTIPLANE_OVERLAY_BLEND = 0i32; +pub const D3DKMT_MULTIPLANE_OVERLAY_FLAG_HORIZONTAL_FLIP: D3DKMT_MULTIPLANE_OVERLAY_FLAGS = 2i32; +pub const D3DKMT_MULTIPLANE_OVERLAY_FLAG_STATIC_CHECK: D3DKMT_MULTIPLANE_OVERLAY_FLAGS = 4i32; +pub const D3DKMT_MULTIPLANE_OVERLAY_FLAG_VERTICAL_FLIP: D3DKMT_MULTIPLANE_OVERLAY_FLAGS = 1i32; +pub const D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_HORIZONTAL: D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT = 1i32; +pub const D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_VERTICAL: D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT = 2i32; +pub const D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST: D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT = 2i32; +pub const D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST: D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT = 1i32; +pub const D3DKMT_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709: D3DKMT_MULTIPLANE_OVERLAY_YCbCr_FLAGS = 2i32; +pub const D3DKMT_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE: D3DKMT_MULTIPLANE_OVERLAY_YCbCr_FLAGS = 1i32; +pub const D3DKMT_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC: D3DKMT_MULTIPLANE_OVERLAY_YCbCr_FLAGS = 4i32; +pub const D3DKMT_MaxAllocationPriorityClass: D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS = 5i32; +pub const D3DKMT_MmIoFlipCommandBuffer: D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE = 3i32; +pub const D3DKMT_OFFER_PRIORITY_AUTO: D3DKMT_OFFER_PRIORITY = 4i32; +pub const D3DKMT_OFFER_PRIORITY_HIGH: D3DKMT_OFFER_PRIORITY = 3i32; +pub const D3DKMT_OFFER_PRIORITY_LOW: D3DKMT_OFFER_PRIORITY = 1i32; +pub const D3DKMT_OFFER_PRIORITY_NORMAL: D3DKMT_OFFER_PRIORITY = 2i32; +pub const D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE_COLOR: D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE = 2i32; +pub const D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR: D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE = 4i32; +pub const D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME: D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE = 1i32; +pub const D3DKMT_OUTPUTDUPL_METADATATYPE_DIRTY_RECTS: D3DKMT_OUTPUTDUPL_METADATATYPE = 0i32; +pub const D3DKMT_OUTPUTDUPL_METADATATYPE_MOVE_RECTS: D3DKMT_OUTPUTDUPL_METADATATYPE = 1i32; +pub const D3DKMT_PM_FLIPMANAGER: D3DKMT_PRESENT_MODEL = 9i32; +pub const D3DKMT_PM_REDIRECTED_BLT: D3DKMT_PRESENT_MODEL = 3i32; +pub const D3DKMT_PM_REDIRECTED_COMPOSITION: D3DKMT_PRESENT_MODEL = 7i32; +pub const D3DKMT_PM_REDIRECTED_FLIP: D3DKMT_PRESENT_MODEL = 2i32; +pub const D3DKMT_PM_REDIRECTED_GDI: D3DKMT_PRESENT_MODEL = 1i32; +pub const D3DKMT_PM_REDIRECTED_GDI_SYSMEM: D3DKMT_PRESENT_MODEL = 6i32; +pub const D3DKMT_PM_REDIRECTED_VISTABLT: D3DKMT_PRESENT_MODEL = 4i32; +pub const D3DKMT_PM_SCREENCAPTUREFENCE: D3DKMT_PRESENT_MODEL = 5i32; +pub const D3DKMT_PM_SURFACECOMPLETE: D3DKMT_PRESENT_MODEL = 8i32; +pub const D3DKMT_PM_UNINITIALIZED: D3DKMT_PRESENT_MODEL = 0i32; +pub const D3DKMT_PNP_KEY_HARDWARE: D3DKMT_PNP_KEY_TYPE = 1i32; +pub const D3DKMT_PNP_KEY_SOFTWARE: D3DKMT_PNP_KEY_TYPE = 2i32; +pub const D3DKMT_PROCESS_VERIFIER_OPTION_VIDMM_FLAGS: D3DKMT_PROCESS_VERIFIER_OPTION_TYPE = 1000i32; +pub const D3DKMT_PROCESS_VERIFIER_OPTION_VIDMM_RESTRICT_BUDGET: D3DKMT_PROCESS_VERIFIER_OPTION_TYPE = 1001i32; +pub const D3DKMT_PROTECTED_SESSION_STATUS_INVALID: D3DKMT_PROTECTED_SESSION_STATUS = 1i32; +pub const D3DKMT_PROTECTED_SESSION_STATUS_OK: D3DKMT_PROTECTED_SESSION_STATUS = 0i32; +pub const D3DKMT_PreemptionAttempt: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 0i32; +pub const D3DKMT_PreemptionAttemptMissAlreadyPreempting: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 13i32; +pub const D3DKMT_PreemptionAttemptMissAlreadyRunning: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 15i32; +pub const D3DKMT_PreemptionAttemptMissFenceCommand: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 7i32; +pub const D3DKMT_PreemptionAttemptMissGlobalBlock: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 14i32; +pub const D3DKMT_PreemptionAttemptMissLessPriority: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 10i32; +pub const D3DKMT_PreemptionAttemptMissNextFence: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 4i32; +pub const D3DKMT_PreemptionAttemptMissNoCommand: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 2i32; +pub const D3DKMT_PreemptionAttemptMissNotEnabled: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 3i32; +pub const D3DKMT_PreemptionAttemptMissNotMakingProgress: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 9i32; +pub const D3DKMT_PreemptionAttemptMissPagingCommand: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 5i32; +pub const D3DKMT_PreemptionAttemptMissRemainingPreemptionQuantum: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 12i32; +pub const D3DKMT_PreemptionAttemptMissRemainingQuantum: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 11i32; +pub const D3DKMT_PreemptionAttemptMissRenderPendingFlip: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 8i32; +pub const D3DKMT_PreemptionAttemptMissSplittedCommand: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 6i32; +pub const D3DKMT_PreemptionAttemptStatisticsMax: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 16i32; +pub const D3DKMT_PreemptionAttemptSuccess: D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = 1i32; +pub const D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT_MAX: u32 = 16u32; +pub const D3DKMT_QUERYSTATISTICS_ADAPTER: D3DKMT_QUERYSTATISTICS_TYPE = 0i32; +pub const D3DKMT_QUERYSTATISTICS_ADAPTER2: D3DKMT_QUERYSTATISTICS_TYPE = 11i32; +pub const D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS_MAX: u32 = 5u32; +pub const D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_MAX: u32 = 4u32; +pub const D3DKMT_QUERYSTATISTICS_NODE: D3DKMT_QUERYSTATISTICS_TYPE = 5i32; +pub const D3DKMT_QUERYSTATISTICS_NODE2: D3DKMT_QUERYSTATISTICS_TYPE = 18i32; +pub const D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER: D3DKMT_QUERYSTATISTICS_TYPE = 10i32; +pub const D3DKMT_QUERYSTATISTICS_PROCESS: D3DKMT_QUERYSTATISTICS_TYPE = 1i32; +pub const D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER: D3DKMT_QUERYSTATISTICS_TYPE = 2i32; +pub const D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER2: D3DKMT_QUERYSTATISTICS_TYPE = 13i32; +pub const D3DKMT_QUERYSTATISTICS_PROCESS_INTERFERENCE_BUCKET_COUNT: u32 = 9u32; +pub const D3DKMT_QUERYSTATISTICS_PROCESS_NODE: D3DKMT_QUERYSTATISTICS_TYPE = 6i32; +pub const D3DKMT_QUERYSTATISTICS_PROCESS_NODE2: D3DKMT_QUERYSTATISTICS_TYPE = 19i32; +pub const D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT: D3DKMT_QUERYSTATISTICS_TYPE = 4i32; +pub const D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT2: D3DKMT_QUERYSTATISTICS_TYPE = 14i32; +pub const D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_GROUP: D3DKMT_QUERYSTATISTICS_TYPE = 9i32; +pub const D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_GROUP2: D3DKMT_QUERYSTATISTICS_TYPE = 15i32; +pub const D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE: D3DKMT_QUERYSTATISTICS_TYPE = 8i32; +pub const D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_MAX: u32 = 8u32; +pub const D3DKMT_QUERYSTATISTICS_SEGMENT: D3DKMT_QUERYSTATISTICS_TYPE = 3i32; +pub const D3DKMT_QUERYSTATISTICS_SEGMENT2: D3DKMT_QUERYSTATISTICS_TYPE = 12i32; +pub const D3DKMT_QUERYSTATISTICS_SEGMENT_GROUP_USAGE: D3DKMT_QUERYSTATISTICS_TYPE = 17i32; +pub const D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX: u32 = 5u32; +pub const D3DKMT_QUERYSTATISTICS_SEGMENT_TYPE_APERTURE: D3DKMT_QUERYSTATISTICS_SEGMENT_TYPE = 0i32; +pub const D3DKMT_QUERYSTATISTICS_SEGMENT_TYPE_MEMORY: D3DKMT_QUERYSTATISTICS_SEGMENT_TYPE = 1i32; +pub const D3DKMT_QUERYSTATISTICS_SEGMENT_TYPE_SYSMEM: D3DKMT_QUERYSTATISTICS_SEGMENT_TYPE = 2i32; +pub const D3DKMT_QUERYSTATISTICS_SEGMENT_USAGE: D3DKMT_QUERYSTATISTICS_TYPE = 16i32; +pub const D3DKMT_QUERYSTATISTICS_VIDPNSOURCE: D3DKMT_QUERYSTATISTICS_TYPE = 7i32; +pub const D3DKMT_QueuePacketTypeMax: D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE = 8i32; +pub const D3DKMT_RenderCommandBuffer: D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE = 0i32; +pub const D3DKMT_SCHEDULINGPRIORITYCLASS_ABOVE_NORMAL: D3DKMT_SCHEDULINGPRIORITYCLASS = 3i32; +pub const D3DKMT_SCHEDULINGPRIORITYCLASS_BELOW_NORMAL: D3DKMT_SCHEDULINGPRIORITYCLASS = 1i32; +pub const D3DKMT_SCHEDULINGPRIORITYCLASS_HIGH: D3DKMT_SCHEDULINGPRIORITYCLASS = 4i32; +pub const D3DKMT_SCHEDULINGPRIORITYCLASS_IDLE: D3DKMT_SCHEDULINGPRIORITYCLASS = 0i32; +pub const D3DKMT_SCHEDULINGPRIORITYCLASS_NORMAL: D3DKMT_SCHEDULINGPRIORITYCLASS = 2i32; +pub const D3DKMT_SCHEDULINGPRIORITYCLASS_REALTIME: D3DKMT_SCHEDULINGPRIORITYCLASS = 5i32; +pub const D3DKMT_SETCONTEXTSCHEDULINGPRIORITY_ABSOLUTE: u32 = 1073741824u32; +pub const D3DKMT_SET_QUEUEDLIMIT_PRESENT: D3DKMT_QUEUEDLIMIT_TYPE = 1i32; +pub const D3DKMT_STANDARDALLOCATIONTYPE_EXISTINGHEAP: D3DKMT_STANDARDALLOCATIONTYPE = 1i32; +pub const D3DKMT_STANDARDALLOCATIONTYPE_INTERNALBACKINGSTORE: D3DKMT_STANDARDALLOCATIONTYPE = 2i32; +pub const D3DKMT_STANDARDALLOCATIONTYPE_MAX: D3DKMT_STANDARDALLOCATIONTYPE = 3i32; +pub const D3DKMT_SUBKEY_DX9: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DX9"); +pub const D3DKMT_SUBKEY_OPENGL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OpenGL"); +pub const D3DKMT_SignalCommandBuffer: D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE = 5i32; +pub const D3DKMT_SoftwareCommandBuffer: D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE = 7i32; +pub const D3DKMT_SystemCommandBuffer: D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE = 2i32; +pub const D3DKMT_SystemPagingBuffer: D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE = 2i32; +pub const D3DKMT_SystemPreemptionBuffer: D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE = 3i32; +pub const D3DKMT_TDRDBGCTRLTYPE_DISABLEBREAK: D3DKMT_TDRDBGCTRLTYPE = 1i32; +pub const D3DKMT_TDRDBGCTRLTYPE_ENABLEBREAK: D3DKMT_TDRDBGCTRLTYPE = 2i32; +pub const D3DKMT_TDRDBGCTRLTYPE_ENGINETDR: D3DKMT_TDRDBGCTRLTYPE = 8i32; +pub const D3DKMT_TDRDBGCTRLTYPE_FORCEDODTDR: D3DKMT_TDRDBGCTRLTYPE = 6i32; +pub const D3DKMT_TDRDBGCTRLTYPE_FORCEDODVSYNCTDR: D3DKMT_TDRDBGCTRLTYPE = 7i32; +pub const D3DKMT_TDRDBGCTRLTYPE_FORCETDR: D3DKMT_TDRDBGCTRLTYPE = 0i32; +pub const D3DKMT_TDRDBGCTRLTYPE_GPUTDR: D3DKMT_TDRDBGCTRLTYPE = 5i32; +pub const D3DKMT_TDRDBGCTRLTYPE_UNCONDITIONAL: D3DKMT_TDRDBGCTRLTYPE = 3i32; +pub const D3DKMT_TDRDBGCTRLTYPE_VSYNCTDR: D3DKMT_TDRDBGCTRLTYPE = 4i32; +pub const D3DKMT_VAD_ESCAPE_GETNUMVADS: D3DKMT_VAD_ESCAPE_COMMAND = 0i32; +pub const D3DKMT_VAD_ESCAPE_GETVAD: D3DKMT_VAD_ESCAPE_COMMAND = 1i32; +pub const D3DKMT_VAD_ESCAPE_GETVADRANGE: D3DKMT_VAD_ESCAPE_COMMAND = 2i32; +pub const D3DKMT_VAD_ESCAPE_GET_GPUMMU_CAPS: D3DKMT_VAD_ESCAPE_COMMAND = 4i32; +pub const D3DKMT_VAD_ESCAPE_GET_PTE: D3DKMT_VAD_ESCAPE_COMMAND = 3i32; +pub const D3DKMT_VAD_ESCAPE_GET_SEGMENT_CAPS: D3DKMT_VAD_ESCAPE_COMMAND = 5i32; +pub const D3DKMT_VERIFIER_OPTION_QUERY: D3DKMT_VERIFIER_OPTION_MODE = 0i32; +pub const D3DKMT_VERIFIER_OPTION_SET: D3DKMT_VERIFIER_OPTION_MODE = 1i32; +pub const D3DKMT_VIDMMESCAPETYPE_APERTURE_CORRUPTION_CHECK: D3DKMT_VIDMMESCAPETYPE = 3i32; +pub const D3DKMT_VIDMMESCAPETYPE_DEFRAG: D3DKMT_VIDMMESCAPETYPE = 15i32; +pub const D3DKMT_VIDMMESCAPETYPE_DELAYEXECUTION: D3DKMT_VIDMMESCAPETYPE = 16i32; +pub const D3DKMT_VIDMMESCAPETYPE_EVICT: D3DKMT_VIDMMESCAPETYPE = 5i32; +pub const D3DKMT_VIDMMESCAPETYPE_EVICT_BY_CRITERIA: D3DKMT_VIDMMESCAPETYPE = 13i32; +pub const D3DKMT_VIDMMESCAPETYPE_EVICT_BY_NT_HANDLE: D3DKMT_VIDMMESCAPETYPE = 6i32; +pub const D3DKMT_VIDMMESCAPETYPE_GET_BUDGET: D3DKMT_VIDMMESCAPETYPE = 11i32; +pub const D3DKMT_VIDMMESCAPETYPE_GET_VAD_INFO: D3DKMT_VIDMMESCAPETYPE = 7i32; +pub const D3DKMT_VIDMMESCAPETYPE_RESUME_PROCESS: D3DKMT_VIDMMESCAPETYPE = 10i32; +pub const D3DKMT_VIDMMESCAPETYPE_RUN_COHERENCY_TEST: D3DKMT_VIDMMESCAPETYPE = 1i32; +pub const D3DKMT_VIDMMESCAPETYPE_RUN_UNMAP_TO_DUMMY_PAGE_TEST: D3DKMT_VIDMMESCAPETYPE = 2i32; +pub const D3DKMT_VIDMMESCAPETYPE_SETFAULT: D3DKMT_VIDMMESCAPETYPE = 0i32; +pub const D3DKMT_VIDMMESCAPETYPE_SET_BUDGET: D3DKMT_VIDMMESCAPETYPE = 8i32; +pub const D3DKMT_VIDMMESCAPETYPE_SET_EVICTION_CONFIG: D3DKMT_VIDMMESCAPETYPE = 18i32; +pub const D3DKMT_VIDMMESCAPETYPE_SET_TRIM_INTERVALS: D3DKMT_VIDMMESCAPETYPE = 12i32; +pub const D3DKMT_VIDMMESCAPETYPE_SUSPEND_CPU_ACCESS_TEST: D3DKMT_VIDMMESCAPETYPE = 4i32; +pub const D3DKMT_VIDMMESCAPETYPE_SUSPEND_PROCESS: D3DKMT_VIDMMESCAPETYPE = 9i32; +pub const D3DKMT_VIDMMESCAPETYPE_VALIDATE_INTEGRITY: D3DKMT_VIDMMESCAPETYPE = 17i32; +pub const D3DKMT_VIDMMESCAPETYPE_WAKE: D3DKMT_VIDMMESCAPETYPE = 14i32; +pub const D3DKMT_VIDPNSOURCEOWNER_EMULATED: D3DKMT_VIDPNSOURCEOWNER_TYPE = 4i32; +pub const D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVE: D3DKMT_VIDPNSOURCEOWNER_TYPE = 2i32; +pub const D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVEGDI: D3DKMT_VIDPNSOURCEOWNER_TYPE = 3i32; +pub const D3DKMT_VIDPNSOURCEOWNER_SHARED: D3DKMT_VIDPNSOURCEOWNER_TYPE = 1i32; +pub const D3DKMT_VIDPNSOURCEOWNER_UNOWNED: D3DKMT_VIDPNSOURCEOWNER_TYPE = 0i32; +pub const D3DKMT_VIDSCHESCAPETYPE_CONFIGURE_TDR_LIMIT: D3DKMT_VIDSCHESCAPETYPE = 5i32; +pub const D3DKMT_VIDSCHESCAPETYPE_ENABLECONTEXTDELAY: D3DKMT_VIDSCHESCAPETYPE = 4i32; +pub const D3DKMT_VIDSCHESCAPETYPE_PFN_CONTROL: D3DKMT_VIDSCHESCAPETYPE = 7i32; +pub const D3DKMT_VIDSCHESCAPETYPE_PREEMPTIONCONTROL: D3DKMT_VIDSCHESCAPETYPE = 0i32; +pub const D3DKMT_VIDSCHESCAPETYPE_SUSPENDRESUME: D3DKMT_VIDSCHESCAPETYPE = 3i32; +pub const D3DKMT_VIDSCHESCAPETYPE_SUSPENDSCHEDULER: D3DKMT_VIDSCHESCAPETYPE = 1i32; +pub const D3DKMT_VIDSCHESCAPETYPE_TDRCONTROL: D3DKMT_VIDSCHESCAPETYPE = 2i32; +pub const D3DKMT_VIDSCHESCAPETYPE_VGPU_RESET: D3DKMT_VIDSCHESCAPETYPE = 6i32; +pub const D3DKMT_VIDSCHESCAPETYPE_VIRTUAL_REFRESH_RATE: D3DKMT_VIDSCHESCAPETYPE = 8i32; +pub const D3DKMT_WaitCommandBuffer: D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE = 4i32; +pub const D3DNTCLEAR_COMPUTERECTS: i32 = 8i32; +pub const D3DNTDP2OP_ADDDIRTYBOX: D3DNTHAL_DP2OPERATION = 67i32; +pub const D3DNTDP2OP_ADDDIRTYRECT: D3DNTHAL_DP2OPERATION = 66i32; +pub const D3DNTDP2OP_BLT: D3DNTHAL_DP2OPERATION = 81i32; +pub const D3DNTDP2OP_BUFFERBLT: D3DNTHAL_DP2OPERATION = 64i32; +pub const D3DNTDP2OP_CLEAR: D3DNTHAL_DP2OPERATION = 42i32; +pub const D3DNTDP2OP_CLIPPEDTRIANGLEFAN: D3DNTHAL_DP2OPERATION = 58i32; +pub const D3DNTDP2OP_COLORFILL: D3DNTHAL_DP2OPERATION = 82i32; +pub const D3DNTDP2OP_COMPOSERECTS: D3DNTHAL_DP2OPERATION = 98i32; +pub const D3DNTDP2OP_CREATELIGHT: D3DNTHAL_DP2OPERATION = 35i32; +pub const D3DNTDP2OP_CREATEPIXELSHADER: D3DNTHAL_DP2OPERATION = 54i32; +pub const D3DNTDP2OP_CREATEQUERY: D3DNTHAL_DP2OPERATION = 84i32; +pub const D3DNTDP2OP_CREATEVERTEXSHADER: D3DNTHAL_DP2OPERATION = 45i32; +pub const D3DNTDP2OP_CREATEVERTEXSHADERDECL: D3DNTHAL_DP2OPERATION = 71i32; +pub const D3DNTDP2OP_CREATEVERTEXSHADERFUNC: D3DNTHAL_DP2OPERATION = 74i32; +pub const D3DNTDP2OP_DELETEPIXELSHADER: D3DNTHAL_DP2OPERATION = 55i32; +pub const D3DNTDP2OP_DELETEQUERY: D3DNTHAL_DP2OPERATION = 90i32; +pub const D3DNTDP2OP_DELETEVERTEXSHADER: D3DNTHAL_DP2OPERATION = 46i32; +pub const D3DNTDP2OP_DELETEVERTEXSHADERDECL: D3DNTHAL_DP2OPERATION = 72i32; +pub const D3DNTDP2OP_DELETEVERTEXSHADERFUNC: D3DNTHAL_DP2OPERATION = 75i32; +pub const D3DNTDP2OP_DRAWINDEXEDPRIMITIVE: D3DNTHAL_DP2OPERATION = 53i32; +pub const D3DNTDP2OP_DRAWINDEXEDPRIMITIVE2: D3DNTHAL_DP2OPERATION = 60i32; +pub const D3DNTDP2OP_DRAWPRIMITIVE: D3DNTHAL_DP2OPERATION = 52i32; +pub const D3DNTDP2OP_DRAWPRIMITIVE2: D3DNTHAL_DP2OPERATION = 59i32; +pub const D3DNTDP2OP_DRAWRECTPATCH: D3DNTHAL_DP2OPERATION = 61i32; +pub const D3DNTDP2OP_DRAWTRIPATCH: D3DNTHAL_DP2OPERATION = 62i32; +pub const D3DNTDP2OP_GENERATEMIPSUBLEVELS: D3DNTHAL_DP2OPERATION = 89i32; +pub const D3DNTDP2OP_INDEXEDLINELIST: D3DNTHAL_DP2OPERATION = 2i32; +pub const D3DNTDP2OP_INDEXEDLINELIST2: D3DNTHAL_DP2OPERATION = 27i32; +pub const D3DNTDP2OP_INDEXEDLINESTRIP: D3DNTHAL_DP2OPERATION = 17i32; +pub const D3DNTDP2OP_INDEXEDTRIANGLEFAN: D3DNTHAL_DP2OPERATION = 22i32; +pub const D3DNTDP2OP_INDEXEDTRIANGLELIST: D3DNTHAL_DP2OPERATION = 3i32; +pub const D3DNTDP2OP_INDEXEDTRIANGLELIST2: D3DNTHAL_DP2OPERATION = 26i32; +pub const D3DNTDP2OP_INDEXEDTRIANGLESTRIP: D3DNTHAL_DP2OPERATION = 20i32; +pub const D3DNTDP2OP_ISSUEQUERY: D3DNTHAL_DP2OPERATION = 91i32; +pub const D3DNTDP2OP_LINELIST: D3DNTHAL_DP2OPERATION = 15i32; +pub const D3DNTDP2OP_LINELIST_IMM: D3DNTHAL_DP2OPERATION = 24i32; +pub const D3DNTDP2OP_LINESTRIP: D3DNTHAL_DP2OPERATION = 16i32; +pub const D3DNTDP2OP_MULTIPLYTRANSFORM: D3DNTHAL_DP2OPERATION = 65i32; +pub const D3DNTDP2OP_POINTS: D3DNTHAL_DP2OPERATION = 1i32; +pub const D3DNTDP2OP_RENDERSTATE: D3DNTHAL_DP2OPERATION = 8i32; +pub const D3DNTDP2OP_RESPONSECONTINUE: D3DNTHAL_DP2OPERATION = 87i32; +pub const D3DNTDP2OP_RESPONSEQUERY: D3DNTHAL_DP2OPERATION = 88i32; +pub const D3DNTDP2OP_SETCLIPPLANE: D3DNTHAL_DP2OPERATION = 44i32; +pub const D3DNTDP2OP_SETCONVOLUTIONKERNELMONO: D3DNTHAL_DP2OPERATION = 97i32; +pub const D3DNTDP2OP_SETDEPTHSTENCIL: D3DNTHAL_DP2OPERATION = 86i32; +pub const D3DNTDP2OP_SETINDICES: D3DNTHAL_DP2OPERATION = 51i32; +pub const D3DNTDP2OP_SETLIGHT: D3DNTHAL_DP2OPERATION = 34i32; +pub const D3DNTDP2OP_SETMATERIAL: D3DNTHAL_DP2OPERATION = 33i32; +pub const D3DNTDP2OP_SETPALETTE: D3DNTHAL_DP2OPERATION = 30i32; +pub const D3DNTDP2OP_SETPIXELSHADER: D3DNTHAL_DP2OPERATION = 56i32; +pub const D3DNTDP2OP_SETPIXELSHADERCONST: D3DNTHAL_DP2OPERATION = 57i32; +pub const D3DNTDP2OP_SETPIXELSHADERCONSTB: D3DNTHAL_DP2OPERATION = 94i32; +pub const D3DNTDP2OP_SETPIXELSHADERCONSTI: D3DNTHAL_DP2OPERATION = 93i32; +pub const D3DNTDP2OP_SETPRIORITY: D3DNTHAL_DP2OPERATION = 40i32; +pub const D3DNTDP2OP_SETRENDERTARGET: D3DNTHAL_DP2OPERATION = 41i32; +pub const D3DNTDP2OP_SETRENDERTARGET2: D3DNTHAL_DP2OPERATION = 85i32; +pub const D3DNTDP2OP_SETSCISSORRECT: D3DNTHAL_DP2OPERATION = 79i32; +pub const D3DNTDP2OP_SETSTREAMSOURCE: D3DNTHAL_DP2OPERATION = 49i32; +pub const D3DNTDP2OP_SETSTREAMSOURCE2: D3DNTHAL_DP2OPERATION = 80i32; +pub const D3DNTDP2OP_SETSTREAMSOURCEFREQ: D3DNTHAL_DP2OPERATION = 95i32; +pub const D3DNTDP2OP_SETSTREAMSOURCEUM: D3DNTHAL_DP2OPERATION = 50i32; +pub const D3DNTDP2OP_SETTEXLOD: D3DNTHAL_DP2OPERATION = 43i32; +pub const D3DNTDP2OP_SETTRANSFORM: D3DNTHAL_DP2OPERATION = 36i32; +pub const D3DNTDP2OP_SETVERTEXSHADER: D3DNTHAL_DP2OPERATION = 47i32; +pub const D3DNTDP2OP_SETVERTEXSHADERCONST: D3DNTHAL_DP2OPERATION = 48i32; +pub const D3DNTDP2OP_SETVERTEXSHADERCONSTB: D3DNTHAL_DP2OPERATION = 83i32; +pub const D3DNTDP2OP_SETVERTEXSHADERCONSTI: D3DNTHAL_DP2OPERATION = 77i32; +pub const D3DNTDP2OP_SETVERTEXSHADERDECL: D3DNTHAL_DP2OPERATION = 73i32; +pub const D3DNTDP2OP_SETVERTEXSHADERFUNC: D3DNTHAL_DP2OPERATION = 76i32; +pub const D3DNTDP2OP_STATESET: D3DNTHAL_DP2OPERATION = 39i32; +pub const D3DNTDP2OP_SURFACEBLT: D3DNTHAL_DP2OPERATION = 96i32; +pub const D3DNTDP2OP_TEXBLT: D3DNTHAL_DP2OPERATION = 38i32; +pub const D3DNTDP2OP_TEXTURESTAGESTATE: D3DNTHAL_DP2OPERATION = 25i32; +pub const D3DNTDP2OP_TRIANGLEFAN: D3DNTHAL_DP2OPERATION = 21i32; +pub const D3DNTDP2OP_TRIANGLEFAN_IMM: D3DNTHAL_DP2OPERATION = 23i32; +pub const D3DNTDP2OP_TRIANGLELIST: D3DNTHAL_DP2OPERATION = 18i32; +pub const D3DNTDP2OP_TRIANGLESTRIP: D3DNTHAL_DP2OPERATION = 19i32; +pub const D3DNTDP2OP_UPDATEPALETTE: D3DNTHAL_DP2OPERATION = 31i32; +pub const D3DNTDP2OP_VIEWPORTINFO: D3DNTHAL_DP2OPERATION = 28i32; +pub const D3DNTDP2OP_VOLUMEBLT: D3DNTHAL_DP2OPERATION = 63i32; +pub const D3DNTDP2OP_WINFO: D3DNTHAL_DP2OPERATION = 29i32; +pub const D3DNTDP2OP_ZRANGE: D3DNTHAL_DP2OPERATION = 32i32; +pub const D3DNTHAL2_CB32_SETRENDERTARGET: i32 = 1i32; +pub const D3DNTHAL3_CB32_CLEAR2: i32 = 1i32; +pub const D3DNTHAL3_CB32_DRAWPRIMITIVES2: i32 = 8i32; +pub const D3DNTHAL3_CB32_RESERVED: i32 = 2i32; +pub const D3DNTHAL3_CB32_VALIDATETEXTURESTAGESTATE: i32 = 4i32; +pub const D3DNTHALDP2_EXECUTEBUFFER: i32 = 2i32; +pub const D3DNTHALDP2_REQCOMMANDBUFSIZE: i32 = 32i32; +pub const D3DNTHALDP2_REQVERTEXBUFSIZE: i32 = 16i32; +pub const D3DNTHALDP2_SWAPCOMMANDBUFFER: i32 = 8i32; +pub const D3DNTHALDP2_SWAPVERTEXBUFFER: i32 = 4i32; +pub const D3DNTHALDP2_USERMEMVERTICES: i32 = 1i32; +pub const D3DNTHALDP2_VIDMEMCOMMANDBUF: i32 = 128i32; +pub const D3DNTHALDP2_VIDMEMVERTEXBUF: i32 = 64i32; +pub const D3DNTHAL_COL_WEIGHTS: u32 = 2u32; +pub const D3DNTHAL_CONTEXT_BAD: i64 = 512i64; +pub const D3DNTHAL_NUMCLIPVERTICES: u32 = 20u32; +pub const D3DNTHAL_OUTOFCONTEXTS: i64 = 513i64; +pub const D3DNTHAL_ROW_WEIGHTS: u32 = 1u32; +pub const D3DNTHAL_SCENE_CAPTURE_END: i32 = 1i32; +pub const D3DNTHAL_SCENE_CAPTURE_START: i32 = 0i32; +pub const D3DNTHAL_STATESETCREATE: u32 = 5u32; +pub const D3DNTHAL_TSS_MAXSTAGES: u32 = 8u32; +pub const D3DNTHAL_TSS_RENDERSTATEBASE: u32 = 256u32; +pub const D3DNTHAL_TSS_STATESPERSTAGE: u32 = 64u32; +pub const D3DPMISCCAPS_FOGINFVF: i32 = 8192i32; +pub const D3DPMISCCAPS_LINEPATTERNREP: i32 = 4i32; +pub const D3DPRASTERCAPS_PAT: i32 = 8i32; +pub const D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE: i32 = 8388608i32; +pub const D3DPS_COLOROUT_MAX_V2_0: u32 = 4u32; +pub const D3DPS_COLOROUT_MAX_V2_1: u32 = 4u32; +pub const D3DPS_COLOROUT_MAX_V3_0: u32 = 4u32; +pub const D3DPS_CONSTBOOLREG_MAX_SW_DX9: u32 = 2048u32; +pub const D3DPS_CONSTBOOLREG_MAX_V2_1: u32 = 16u32; +pub const D3DPS_CONSTBOOLREG_MAX_V3_0: u32 = 16u32; +pub const D3DPS_CONSTINTREG_MAX_SW_DX9: u32 = 2048u32; +pub const D3DPS_CONSTINTREG_MAX_V2_1: u32 = 16u32; +pub const D3DPS_CONSTINTREG_MAX_V3_0: u32 = 16u32; +pub const D3DPS_CONSTREG_MAX_DX8: u32 = 8u32; +pub const D3DPS_CONSTREG_MAX_SW_DX9: u32 = 8192u32; +pub const D3DPS_CONSTREG_MAX_V1_1: u32 = 8u32; +pub const D3DPS_CONSTREG_MAX_V1_2: u32 = 8u32; +pub const D3DPS_CONSTREG_MAX_V1_3: u32 = 8u32; +pub const D3DPS_CONSTREG_MAX_V1_4: u32 = 8u32; +pub const D3DPS_CONSTREG_MAX_V2_0: u32 = 32u32; +pub const D3DPS_CONSTREG_MAX_V2_1: u32 = 32u32; +pub const D3DPS_CONSTREG_MAX_V3_0: u32 = 224u32; +pub const D3DPS_INPUTREG_MAX_DX8: u32 = 8u32; +pub const D3DPS_INPUTREG_MAX_SW_DX9: u32 = 14u32; +pub const D3DPS_INPUTREG_MAX_V1_1: u32 = 2u32; +pub const D3DPS_INPUTREG_MAX_V1_2: u32 = 2u32; +pub const D3DPS_INPUTREG_MAX_V1_3: u32 = 2u32; +pub const D3DPS_INPUTREG_MAX_V1_4: u32 = 2u32; +pub const D3DPS_INPUTREG_MAX_V2_0: u32 = 2u32; +pub const D3DPS_INPUTREG_MAX_V2_1: u32 = 2u32; +pub const D3DPS_INPUTREG_MAX_V3_0: u32 = 10u32; +pub const D3DPS_MAXLOOPINITVALUE_V2_1: u32 = 255u32; +pub const D3DPS_MAXLOOPINITVALUE_V3_0: u32 = 255u32; +pub const D3DPS_MAXLOOPITERATIONCOUNT_V2_1: u32 = 255u32; +pub const D3DPS_MAXLOOPITERATIONCOUNT_V3_0: u32 = 255u32; +pub const D3DPS_MAXLOOPSTEP_V2_1: u32 = 128u32; +pub const D3DPS_MAXLOOPSTEP_V3_0: u32 = 128u32; +pub const D3DPS_PREDICATE_MAX_V2_1: u32 = 1u32; +pub const D3DPS_PREDICATE_MAX_V3_0: u32 = 1u32; +pub const D3DPS_TEMPREG_MAX_DX8: u32 = 8u32; +pub const D3DPS_TEMPREG_MAX_V1_1: u32 = 2u32; +pub const D3DPS_TEMPREG_MAX_V1_2: u32 = 2u32; +pub const D3DPS_TEMPREG_MAX_V1_3: u32 = 2u32; +pub const D3DPS_TEMPREG_MAX_V1_4: u32 = 6u32; +pub const D3DPS_TEMPREG_MAX_V2_0: u32 = 12u32; +pub const D3DPS_TEMPREG_MAX_V2_1: u32 = 32u32; +pub const D3DPS_TEMPREG_MAX_V3_0: u32 = 32u32; +pub const D3DPS_TEXTUREREG_MAX_DX8: u32 = 8u32; +pub const D3DPS_TEXTUREREG_MAX_V1_1: u32 = 4u32; +pub const D3DPS_TEXTUREREG_MAX_V1_2: u32 = 4u32; +pub const D3DPS_TEXTUREREG_MAX_V1_3: u32 = 4u32; +pub const D3DPS_TEXTUREREG_MAX_V1_4: u32 = 6u32; +pub const D3DPS_TEXTUREREG_MAX_V2_0: u32 = 8u32; +pub const D3DPS_TEXTUREREG_MAX_V2_1: u32 = 8u32; +pub const D3DPS_TEXTUREREG_MAX_V3_0: u32 = 0u32; +pub const D3DRENDERSTATE_EVICTMANAGEDTEXTURES: u32 = 61u32; +pub const D3DRENDERSTATE_SCENECAPTURE: u32 = 62u32; +pub const D3DRS_DELETERTPATCH: u32 = 169u32; +pub const D3DRS_MAXPIXELSHADERINST: u32 = 197u32; +pub const D3DRS_MAXVERTEXSHADERINST: u32 = 196u32; +pub const D3DTEXF_FLATCUBIC: u32 = 4u32; +pub const D3DTEXF_GAUSSIANCUBIC: u32 = 5u32; +pub const D3DTRANSFORMSTATE_WORLD1_DX7: u32 = 4u32; +pub const D3DTRANSFORMSTATE_WORLD2_DX7: u32 = 5u32; +pub const D3DTRANSFORMSTATE_WORLD3_DX7: u32 = 6u32; +pub const D3DTRANSFORMSTATE_WORLD_DX7: u32 = 1u32; +pub const D3DTSS_TEXTUREMAP: u32 = 0u32; +pub const D3DVSDE_BLENDINDICES: u32 = 2u32; +pub const D3DVSDE_BLENDWEIGHT: u32 = 1u32; +pub const D3DVSDE_DIFFUSE: u32 = 5u32; +pub const D3DVSDE_NORMAL: u32 = 3u32; +pub const D3DVSDE_NORMAL2: u32 = 16u32; +pub const D3DVSDE_POSITION: u32 = 0u32; +pub const D3DVSDE_POSITION2: u32 = 15u32; +pub const D3DVSDE_PSIZE: u32 = 4u32; +pub const D3DVSDE_SPECULAR: u32 = 6u32; +pub const D3DVSDE_TEXCOORD0: u32 = 7u32; +pub const D3DVSDE_TEXCOORD1: u32 = 8u32; +pub const D3DVSDE_TEXCOORD2: u32 = 9u32; +pub const D3DVSDE_TEXCOORD3: u32 = 10u32; +pub const D3DVSDE_TEXCOORD4: u32 = 11u32; +pub const D3DVSDE_TEXCOORD5: u32 = 12u32; +pub const D3DVSDE_TEXCOORD6: u32 = 13u32; +pub const D3DVSDE_TEXCOORD7: u32 = 14u32; +pub const D3DVSDT_D3DCOLOR: u32 = 4u32; +pub const D3DVSDT_FLOAT1: u32 = 0u32; +pub const D3DVSDT_FLOAT2: u32 = 1u32; +pub const D3DVSDT_FLOAT3: u32 = 2u32; +pub const D3DVSDT_FLOAT4: u32 = 3u32; +pub const D3DVSDT_SHORT2: u32 = 6u32; +pub const D3DVSDT_SHORT4: u32 = 7u32; +pub const D3DVSDT_UBYTE4: u32 = 5u32; +pub const D3DVSD_CONSTADDRESSSHIFT: u32 = 0u32; +pub const D3DVSD_CONSTCOUNTSHIFT: u32 = 25u32; +pub const D3DVSD_CONSTRSSHIFT: u32 = 16u32; +pub const D3DVSD_DATALOADTYPESHIFT: u32 = 28u32; +pub const D3DVSD_DATATYPESHIFT: u32 = 16u32; +pub const D3DVSD_EXTCOUNTSHIFT: u32 = 24u32; +pub const D3DVSD_EXTINFOSHIFT: u32 = 0u32; +pub const D3DVSD_SKIPCOUNTSHIFT: u32 = 16u32; +pub const D3DVSD_STREAMNUMBERSHIFT: u32 = 0u32; +pub const D3DVSD_STREAMTESSSHIFT: u32 = 28u32; +pub const D3DVSD_TOKENTYPESHIFT: u32 = 29u32; +pub const D3DVSD_TOKEN_CONSTMEM: D3DVSD_TOKENTYPE = 4i32; +pub const D3DVSD_TOKEN_END: D3DVSD_TOKENTYPE = 7i32; +pub const D3DVSD_TOKEN_EXT: D3DVSD_TOKENTYPE = 5i32; +pub const D3DVSD_TOKEN_NOP: D3DVSD_TOKENTYPE = 0i32; +pub const D3DVSD_TOKEN_STREAM: D3DVSD_TOKENTYPE = 1i32; +pub const D3DVSD_TOKEN_STREAMDATA: D3DVSD_TOKENTYPE = 2i32; +pub const D3DVSD_TOKEN_TESSELLATOR: D3DVSD_TOKENTYPE = 3i32; +pub const D3DVSD_VERTEXREGINSHIFT: u32 = 20u32; +pub const D3DVSD_VERTEXREGSHIFT: u32 = 0u32; +pub const D3DVS_ADDRREG_MAX_V1_1: u32 = 1u32; +pub const D3DVS_ADDRREG_MAX_V2_0: u32 = 1u32; +pub const D3DVS_ADDRREG_MAX_V2_1: u32 = 1u32; +pub const D3DVS_ADDRREG_MAX_V3_0: u32 = 1u32; +pub const D3DVS_ATTROUTREG_MAX_V1_1: u32 = 2u32; +pub const D3DVS_ATTROUTREG_MAX_V2_0: u32 = 2u32; +pub const D3DVS_ATTROUTREG_MAX_V2_1: u32 = 2u32; +pub const D3DVS_CONSTBOOLREG_MAX_SW_DX9: u32 = 2048u32; +pub const D3DVS_CONSTBOOLREG_MAX_V2_0: u32 = 16u32; +pub const D3DVS_CONSTBOOLREG_MAX_V2_1: u32 = 16u32; +pub const D3DVS_CONSTBOOLREG_MAX_V3_0: u32 = 16u32; +pub const D3DVS_CONSTINTREG_MAX_SW_DX9: u32 = 2048u32; +pub const D3DVS_CONSTINTREG_MAX_V2_0: u32 = 16u32; +pub const D3DVS_CONSTINTREG_MAX_V2_1: u32 = 16u32; +pub const D3DVS_CONSTINTREG_MAX_V3_0: u32 = 16u32; +pub const D3DVS_CONSTREG_MAX_V1_1: u32 = 96u32; +pub const D3DVS_CONSTREG_MAX_V2_0: u32 = 8192u32; +pub const D3DVS_CONSTREG_MAX_V2_1: u32 = 8192u32; +pub const D3DVS_CONSTREG_MAX_V3_0: u32 = 8192u32; +pub const D3DVS_INPUTREG_MAX_V1_1: u32 = 16u32; +pub const D3DVS_INPUTREG_MAX_V2_0: u32 = 16u32; +pub const D3DVS_INPUTREG_MAX_V2_1: u32 = 16u32; +pub const D3DVS_INPUTREG_MAX_V3_0: u32 = 16u32; +pub const D3DVS_LABEL_MAX_V3_0: u32 = 2048u32; +pub const D3DVS_MAXINSTRUCTIONCOUNT_V1_1: u32 = 128u32; +pub const D3DVS_MAXLOOPINITVALUE_V2_0: u32 = 255u32; +pub const D3DVS_MAXLOOPINITVALUE_V2_1: u32 = 255u32; +pub const D3DVS_MAXLOOPINITVALUE_V3_0: u32 = 255u32; +pub const D3DVS_MAXLOOPITERATIONCOUNT_V2_0: u32 = 255u32; +pub const D3DVS_MAXLOOPITERATIONCOUNT_V2_1: u32 = 255u32; +pub const D3DVS_MAXLOOPITERATIONCOUNT_V3_0: u32 = 255u32; +pub const D3DVS_MAXLOOPSTEP_V2_0: u32 = 128u32; +pub const D3DVS_MAXLOOPSTEP_V2_1: u32 = 128u32; +pub const D3DVS_MAXLOOPSTEP_V3_0: u32 = 128u32; +pub const D3DVS_OUTPUTREG_MAX_SW_DX9: u32 = 16u32; +pub const D3DVS_OUTPUTREG_MAX_V3_0: u32 = 12u32; +pub const D3DVS_PREDICATE_MAX_V2_1: u32 = 1u32; +pub const D3DVS_PREDICATE_MAX_V3_0: u32 = 1u32; +pub const D3DVS_TCRDOUTREG_MAX_V1_1: u32 = 8u32; +pub const D3DVS_TCRDOUTREG_MAX_V2_0: u32 = 8u32; +pub const D3DVS_TCRDOUTREG_MAX_V2_1: u32 = 8u32; +pub const D3DVS_TEMPREG_MAX_V1_1: u32 = 12u32; +pub const D3DVS_TEMPREG_MAX_V2_0: u32 = 12u32; +pub const D3DVS_TEMPREG_MAX_V2_1: u32 = 32u32; +pub const D3DVS_TEMPREG_MAX_V3_0: u32 = 32u32; +pub const D3DVTXPCAPS_NO_VSDT_UBYTE4: i32 = 128i32; +pub const D3D_UMD_INTERFACE_VERSION: u32 = 65536u32; +pub const D3D_UMD_INTERFACE_VERSION_VISTA: u32 = 12u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM1_3: u32 = 16386u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0: u32 = 20482u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1: u32 = 20480u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1_3: u32 = 20481u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M2_2: u32 = 20482u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1: u32 = 24579u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_1: u32 = 24576u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_2: u32 = 24577u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_3: u32 = 24578u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_4: u32 = 24579u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2: u32 = 28673u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2_1: u32 = 28672u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2_2: u32 = 28673u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3: u32 = 32769u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3_1: u32 = 32768u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3_2: u32 = 32769u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4: u32 = 36865u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4_1: u32 = 36864u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4_2: u32 = 36865u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5: u32 = 40962u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_1: u32 = 40960u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_2: u32 = 40961u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_3: u32 = 40962u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_6: u32 = 45059u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_6_1: u32 = 45056u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_6_2: u32 = 45057u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_6_3: u32 = 45058u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_6_4: u32 = 45059u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_7: u32 = 49153u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_7_1: u32 = 49152u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_7_2: u32 = 49153u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_8: u32 = 53248u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_8_1: u32 = 53248u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_9: u32 = 57344u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM2_9_1: u32 = 57344u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM3_0: u32 = 61440u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM3_0_1: u32 = 61440u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM3_1: u32 = 65536u32; +pub const D3D_UMD_INTERFACE_VERSION_WDDM3_1_1: u32 = 65536u32; +pub const D3D_UMD_INTERFACE_VERSION_WIN7: u32 = 8195u32; +pub const D3D_UMD_INTERFACE_VERSION_WIN8: u32 = 12292u32; +pub const D3D_UMD_INTERFACE_VERSION_WIN8_CP: u32 = 12290u32; +pub const D3D_UMD_INTERFACE_VERSION_WIN8_M3: u32 = 12289u32; +pub const D3D_UMD_INTERFACE_VERSION_WIN8_RC: u32 = 12291u32; +pub const DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR: i32 = 16i32; +pub const DIDDT1_AspectRatio_15x9: DISPLAYID_DETAILED_TIMING_TYPE_I_ASPECT_RATIO = 3i32; +pub const DIDDT1_AspectRatio_16x10: DISPLAYID_DETAILED_TIMING_TYPE_I_ASPECT_RATIO = 5i32; +pub const DIDDT1_AspectRatio_16x9: DISPLAYID_DETAILED_TIMING_TYPE_I_ASPECT_RATIO = 4i32; +pub const DIDDT1_AspectRatio_1x1: DISPLAYID_DETAILED_TIMING_TYPE_I_ASPECT_RATIO = 0i32; +pub const DIDDT1_AspectRatio_4x3: DISPLAYID_DETAILED_TIMING_TYPE_I_ASPECT_RATIO = 2i32; +pub const DIDDT1_AspectRatio_5x4: DISPLAYID_DETAILED_TIMING_TYPE_I_ASPECT_RATIO = 1i32; +pub const DIDDT1_Dependent: DISPLAYID_DETAILED_TIMING_TYPE_I_STEREO_MODE = 2i32; +pub const DIDDT1_Interlaced: DISPLAYID_DETAILED_TIMING_TYPE_I_SCANNING_MODE = 1i32; +pub const DIDDT1_Monoscopic: DISPLAYID_DETAILED_TIMING_TYPE_I_STEREO_MODE = 0i32; +pub const DIDDT1_Progressive: DISPLAYID_DETAILED_TIMING_TYPE_I_SCANNING_MODE = 0i32; +pub const DIDDT1_Stereo: DISPLAYID_DETAILED_TIMING_TYPE_I_STEREO_MODE = 1i32; +pub const DIDDT1_Sync_Negative: DISPLAYID_DETAILED_TIMING_TYPE_I_SYNC_POLARITY = 1i32; +pub const DIDDT1_Sync_Positive: DISPLAYID_DETAILED_TIMING_TYPE_I_SYNC_POLARITY = 0i32; +pub const DISPLAYID_DETAILED_TIMING_TYPE_I_SIZE: u32 = 20u32; +pub const DP2BLT_LINEAR: i32 = 2i32; +pub const DP2BLT_POINT: i32 = 1i32; +pub const DX9_DDI_VERSION: u32 = 4u32; +pub const DXGKDDI_INTERFACE_VERSION: u32 = 65540u32; +pub const DXGKDDI_INTERFACE_VERSION_VISTA: u32 = 4178u32; +pub const DXGKDDI_INTERFACE_VERSION_VISTA_SP1: u32 = 4179u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM1_3: u32 = 16386u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION: u32 = 16387u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM2_0: u32 = 20515u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM2_1: u32 = 24579u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM2_1_5: u32 = 24592u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM2_1_6: u32 = 24593u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM2_2: u32 = 28682u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM2_3: u32 = 32769u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM2_4: u32 = 36870u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM2_5: u32 = 40971u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM2_6: u32 = 45060u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM2_7: u32 = 49156u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM2_8: u32 = 53249u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM2_9: u32 = 57347u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM3_0: u32 = 61443u32; +pub const DXGKDDI_INTERFACE_VERSION_WDDM3_1: u32 = 65540u32; +pub const DXGKDDI_INTERFACE_VERSION_WIN7: u32 = 8197u32; +pub const DXGKDDI_INTERFACE_VERSION_WIN8: u32 = 12302u32; +pub const DXGKMDT_COPP_CERTIFICATE: DXGKMDT_CERTIFICATE_TYPE = 1i32; +pub const DXGKMDT_I2C_DEVICE_TRANSMITS_DATA_LENGTH: u32 = 1u32; +pub const DXGKMDT_I2C_NO_FLAGS: u32 = 0u32; +pub const DXGKMDT_INDIRECT_DISPLAY_CERTIFICATE: DXGKMDT_CERTIFICATE_TYPE = 3i32; +pub const DXGKMDT_OPM_128_BIT_RANDOM_NUMBER_SIZE: u32 = 16u32; +pub const DXGKMDT_OPM_ACP_LEVEL_ONE: DXGKMDT_OPM_ACP_PROTECTION_LEVEL = 1i32; +pub const DXGKMDT_OPM_ACP_LEVEL_THREE: DXGKMDT_OPM_ACP_PROTECTION_LEVEL = 3i32; +pub const DXGKMDT_OPM_ACP_LEVEL_TWO: DXGKMDT_OPM_ACP_PROTECTION_LEVEL = 2i32; +pub const DXGKMDT_OPM_ACP_OFF: DXGKMDT_OPM_ACP_PROTECTION_LEVEL = 0i32; +pub const DXGKMDT_OPM_ASPECT_RATIO_EN300294_BOX_14_BY_9_CENTER: DXGKMDT_OPM_IMAGE_ASPECT_RATIO_EN300294 = 1i32; +pub const DXGKMDT_OPM_ASPECT_RATIO_EN300294_BOX_14_BY_9_TOP: DXGKMDT_OPM_IMAGE_ASPECT_RATIO_EN300294 = 2i32; +pub const DXGKMDT_OPM_ASPECT_RATIO_EN300294_BOX_16_BY_9_CENTER: DXGKMDT_OPM_IMAGE_ASPECT_RATIO_EN300294 = 3i32; +pub const DXGKMDT_OPM_ASPECT_RATIO_EN300294_BOX_16_BY_9_TOP: DXGKMDT_OPM_IMAGE_ASPECT_RATIO_EN300294 = 4i32; +pub const DXGKMDT_OPM_ASPECT_RATIO_EN300294_BOX_GT_16_BY_9_CENTER: DXGKMDT_OPM_IMAGE_ASPECT_RATIO_EN300294 = 5i32; +pub const DXGKMDT_OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_16_BY_9_ANAMORPHIC: DXGKMDT_OPM_IMAGE_ASPECT_RATIO_EN300294 = 7i32; +pub const DXGKMDT_OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_4_BY_3: DXGKMDT_OPM_IMAGE_ASPECT_RATIO_EN300294 = 0i32; +pub const DXGKMDT_OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_4_BY_3_PROTECTED_CENTER: DXGKMDT_OPM_IMAGE_ASPECT_RATIO_EN300294 = 6i32; +pub const DXGKMDT_OPM_BUS_IMPLEMENTATION_MODIFIER_DAUGHTER_BOARD_CONNECTOR: DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION = 262144i32; +pub const DXGKMDT_OPM_BUS_IMPLEMENTATION_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE: DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION = 327680i32; +pub const DXGKMDT_OPM_BUS_IMPLEMENTATION_MODIFIER_INSIDE_OF_CHIPSET: DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION = 65536i32; +pub const DXGKMDT_OPM_BUS_IMPLEMENTATION_MODIFIER_NON_STANDARD: DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION = -2147483648i32; +pub const DXGKMDT_OPM_BUS_IMPLEMENTATION_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP: DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION = 131072i32; +pub const DXGKMDT_OPM_BUS_IMPLEMENTATION_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET: DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION = 196608i32; +pub const DXGKMDT_OPM_BUS_TYPE_AGP: DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION = 4i32; +pub const DXGKMDT_OPM_BUS_TYPE_OTHER: DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION = 0i32; +pub const DXGKMDT_OPM_BUS_TYPE_PCI: DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION = 1i32; +pub const DXGKMDT_OPM_BUS_TYPE_PCIEXPRESS: DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION = 3i32; +pub const DXGKMDT_OPM_BUS_TYPE_PCIX: DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION = 2i32; +pub const DXGKMDT_OPM_CERTIFICATE: DXGKMDT_CERTIFICATE_TYPE = 0i32; +pub const DXGKMDT_OPM_CGMSA_COPY_FREELY: DXGKMDT_OPM_CGMSA = 1i32; +pub const DXGKMDT_OPM_CGMSA_COPY_NEVER: DXGKMDT_OPM_CGMSA = 4i32; +pub const DXGKMDT_OPM_CGMSA_COPY_NO_MORE: DXGKMDT_OPM_CGMSA = 2i32; +pub const DXGKMDT_OPM_CGMSA_COPY_ONE_GENERATION: DXGKMDT_OPM_CGMSA = 3i32; +pub const DXGKMDT_OPM_CGMSA_OFF: DXGKMDT_OPM_CGMSA = 0i32; +pub const DXGKMDT_OPM_CONFIGURE_SETTING_DATA_SIZE: u32 = 4056u32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_COMPONENT_VIDEO: DXGKMDT_OPM_CONNECTOR_TYPE = 3i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_COMPOSITE_VIDEO: DXGKMDT_OPM_CONNECTOR_TYPE = 2i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_DISPLAYPORT_EMBEDDED: DXGKMDT_OPM_CONNECTOR_TYPE = 11i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_DISPLAYPORT_EXTERNAL: DXGKMDT_OPM_CONNECTOR_TYPE = 10i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_DVI: DXGKMDT_OPM_CONNECTOR_TYPE = 4i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_D_JPN: DXGKMDT_OPM_CONNECTOR_TYPE = 8i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_HD15: DXGKMDT_OPM_CONNECTOR_TYPE = 0i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_HDMI: DXGKMDT_OPM_CONNECTOR_TYPE = 5i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_LVDS: DXGKMDT_OPM_CONNECTOR_TYPE = 6i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_MIRACAST: DXGKMDT_OPM_CONNECTOR_TYPE = 15i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_OTHER: DXGKMDT_OPM_CONNECTOR_TYPE = -1i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_RESERVED: DXGKMDT_OPM_CONNECTOR_TYPE = 14i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_SDI: DXGKMDT_OPM_CONNECTOR_TYPE = 9i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_SVIDEO: DXGKMDT_OPM_CONNECTOR_TYPE = 1i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_A: DXGKMDT_OPM_CONNECTOR_TYPE = 16i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_B: DXGKMDT_OPM_CONNECTOR_TYPE = 17i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_UDI_EMBEDDED: DXGKMDT_OPM_CONNECTOR_TYPE = 13i32; +pub const DXGKMDT_OPM_CONNECTOR_TYPE_UDI_EXTERNAL: DXGKMDT_OPM_CONNECTOR_TYPE = 12i32; +pub const DXGKMDT_OPM_COPP_COMPATIBLE_BUS_TYPE_INTEGRATED: DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION = -2147483648i32; +pub const DXGKMDT_OPM_COPP_COMPATIBLE_CONNECTOR_TYPE_INTERNAL: DXGKMDT_OPM_CONNECTOR_TYPE = -2147483648i32; +pub const DXGKMDT_OPM_DPCP_OFF: DXGKMDT_OPM_DPCP_PROTECTION_LEVEL = 0i32; +pub const DXGKMDT_OPM_DPCP_ON: DXGKMDT_OPM_DPCP_PROTECTION_LEVEL = 1i32; +pub const DXGKMDT_OPM_DVI_CHARACTERISTIC_1_0: DXGKDT_OPM_DVI_CHARACTERISTICS = 1i32; +pub const DXGKMDT_OPM_DVI_CHARACTERISTIC_1_1_OR_ABOVE: DXGKDT_OPM_DVI_CHARACTERISTICS = 2i32; +pub const DXGKMDT_OPM_ENCRYPTED_PARAMETERS_SIZE: u32 = 256u32; +pub const DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6629a591_3b79_4cf3_924a_11e8e7811671); +pub const DXGKMDT_OPM_GET_ACTUAL_OUTPUT_FORMAT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7bf1ba3_ad13_4f8e_af98_0dcb3ca204cc); +pub const DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1957210a_7766_452a_b99a_d27aed54f03a); +pub const DXGKMDT_OPM_GET_ADAPTER_BUS_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6f4d673_6174_4184_8e35_f6db5200bcba); +pub const DXGKMDT_OPM_GET_CODEC_INFO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4f374491_8f5f_4445_9dba_95588f6b58b4); +pub const DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0db59d74_a992_492e_a0bd_c23fda564e00); +pub const DXGKMDT_OPM_GET_CONNECTOR_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x81d0bfd5_6afe_48c2_99c0_95a08f97c5da); +pub const DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x99c5ceff_5f1d_4879_81c1_c52443c9482b); +pub const DXGKMDT_OPM_GET_DVI_CHARACTERISTICS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa470b3bb_5dd7_4172_839c_3d3776e0ebf5); +pub const DXGKMDT_OPM_GET_INFORMATION_PARAMETERS_SIZE: u32 = 4056u32; +pub const DXGKMDT_OPM_GET_OUTPUT_HARDWARE_PROTECTION_SUPPORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3b129589_2af8_4ef0_96a2_704a845a218e); +pub const DXGKMDT_OPM_GET_OUTPUT_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x72cb6df3_244f_40ce_b09e_20506af6302f); +pub const DXGKMDT_OPM_GET_SUPPORTED_PROTECTION_TYPES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38f2a801_9a6c_48bb_9107_b6696e6f1797); +pub const DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb2075857_3eda_4d5d_88db_748f8c1a0549); +pub const DXGKMDT_OPM_HDCP_FLAG_NONE: DXGKMDT_OPM_HDCP_FLAG = 0i32; +pub const DXGKMDT_OPM_HDCP_FLAG_REPEATER: DXGKMDT_OPM_HDCP_FLAG = 1i32; +pub const DXGKMDT_OPM_HDCP_KEY_SELECTION_VECTOR_SIZE: u32 = 5u32; +pub const DXGKMDT_OPM_HDCP_OFF: DXGKMDT_OPM_HDCP_PROTECTION_LEVEL = 0i32; +pub const DXGKMDT_OPM_HDCP_ON: DXGKMDT_OPM_HDCP_PROTECTION_LEVEL = 1i32; +pub const DXGKMDT_OPM_INTERLEAVE_FORMAT_INTERLEAVED_EVEN_FIRST: DXGKMDT_OPM_INTERLEAVE_FORMAT = 3i32; +pub const DXGKMDT_OPM_INTERLEAVE_FORMAT_INTERLEAVED_ODD_FIRST: DXGKMDT_OPM_INTERLEAVE_FORMAT = 4i32; +pub const DXGKMDT_OPM_INTERLEAVE_FORMAT_OTHER: DXGKMDT_OPM_INTERLEAVE_FORMAT = 0i32; +pub const DXGKMDT_OPM_INTERLEAVE_FORMAT_PROGRESSIVE: DXGKMDT_OPM_INTERLEAVE_FORMAT = 2i32; +pub const DXGKMDT_OPM_OMAC_SIZE: u32 = 16u32; +pub const DXGKMDT_OPM_OUTPUT_HARDWARE_PROTECTION_NOT_SUPPORTED: DXGKMDT_OPM_OUTPUT_HARDWARE_PROTECTION = 0i32; +pub const DXGKMDT_OPM_OUTPUT_HARDWARE_PROTECTION_SUPPORTED: DXGKMDT_OPM_OUTPUT_HARDWARE_PROTECTION = 1i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_ARIBTRB15_1125I: DXGKMDT_OPM_PROTECTION_STANDARD = 16384i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_ARIBTRB15_525I: DXGKMDT_OPM_PROTECTION_STANDARD = 2048i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_ARIBTRB15_525P: DXGKMDT_OPM_PROTECTION_STANDARD = 4096i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_ARIBTRB15_750P: DXGKMDT_OPM_PROTECTION_STANDARD = 8192i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_CEA805A_TYPEA_1125I: DXGKMDT_OPM_PROTECTION_STANDARD = 128i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_CEA805A_TYPEA_525P: DXGKMDT_OPM_PROTECTION_STANDARD = 32i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_CEA805A_TYPEA_750P: DXGKMDT_OPM_PROTECTION_STANDARD = 64i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_CEA805A_TYPEB_1125I: DXGKMDT_OPM_PROTECTION_STANDARD = 1024i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_CEA805A_TYPEB_525P: DXGKMDT_OPM_PROTECTION_STANDARD = 256i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_CEA805A_TYPEB_750P: DXGKMDT_OPM_PROTECTION_STANDARD = 512i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_EIA608B_525: DXGKMDT_OPM_PROTECTION_STANDARD = 8i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_EN300294_625I: DXGKMDT_OPM_PROTECTION_STANDARD = 16i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_IEC61880_2_525I: DXGKMDT_OPM_PROTECTION_STANDARD = 2i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_IEC61880_525I: DXGKMDT_OPM_PROTECTION_STANDARD = 1i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_IEC62375_625P: DXGKMDT_OPM_PROTECTION_STANDARD = 4i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_NONE: DXGKMDT_OPM_PROTECTION_STANDARD = 0i32; +pub const DXGKMDT_OPM_PROTECTION_STANDARD_OTHER: DXGKMDT_OPM_PROTECTION_STANDARD = -2147483648i32; +pub const DXGKMDT_OPM_PROTECTION_TYPE_ACP: DXGKMDT_OPM_PROTECTION_TYPE = 2i32; +pub const DXGKMDT_OPM_PROTECTION_TYPE_CGMSA: DXGKMDT_OPM_PROTECTION_TYPE = 4i32; +pub const DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP: DXGKMDT_OPM_PROTECTION_TYPE = 1i32; +pub const DXGKMDT_OPM_PROTECTION_TYPE_DPCP: DXGKMDT_OPM_PROTECTION_TYPE = 16i32; +pub const DXGKMDT_OPM_PROTECTION_TYPE_HDCP: DXGKMDT_OPM_PROTECTION_TYPE = 8i32; +pub const DXGKMDT_OPM_PROTECTION_TYPE_MASK: DXGKMDT_OPM_PROTECTION_TYPE = -2147483585i32; +pub const DXGKMDT_OPM_PROTECTION_TYPE_NONE: DXGKMDT_OPM_PROTECTION_TYPE = 0i32; +pub const DXGKMDT_OPM_PROTECTION_TYPE_OTHER: DXGKMDT_OPM_PROTECTION_TYPE = -2147483648i32; +pub const DXGKMDT_OPM_PROTECTION_TYPE_SIZE: u32 = 4u32; +pub const DXGKMDT_OPM_PROTECTION_TYPE_TYPE_ENFORCEMENT_HDCP: DXGKMDT_OPM_PROTECTION_TYPE = 32i32; +pub const DXGKMDT_OPM_REDISTRIBUTION_CONTROL_REQUIRED: DXGKMDT_OPM_CGMSA = 8i32; +pub const DXGKMDT_OPM_REQUESTED_INFORMATION_SIZE: u32 = 4076u32; +pub const DXGKMDT_OPM_SET_ACP_AND_CGMSA_SIGNALING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x09a631a5_d684_4c60_8e4d_d3bb0f0be3ee); +pub const DXGKMDT_OPM_SET_HDCP_SRM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8b5ef5d1_c30d_44ff_84a5_ea71dce78f13); +pub const DXGKMDT_OPM_SET_PROTECTION_LEVEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9bb9327c_4eb5_4727_9f00_b42b0919c0da); +pub const DXGKMDT_OPM_SET_PROTECTION_LEVEL_ACCORDING_TO_CSS_DVD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x39ce333e_4cc0_44ae_bfcc_da50b5f82e72); +pub const DXGKMDT_OPM_STATUS_LINK_LOST: DXGKMDT_OPM_STATUS = 1i32; +pub const DXGKMDT_OPM_STATUS_NORMAL: DXGKMDT_OPM_STATUS = 0i32; +pub const DXGKMDT_OPM_STATUS_RENEGOTIATION_REQUIRED: DXGKMDT_OPM_STATUS = 2i32; +pub const DXGKMDT_OPM_STATUS_REVOKED_HDCP_DEVICE_ATTACHED: DXGKMDT_OPM_STATUS = 8i32; +pub const DXGKMDT_OPM_STATUS_TAMPERING_DETECTED: DXGKMDT_OPM_STATUS = 4i32; +pub const DXGKMDT_OPM_TYPE_ENFORCEMENT_HDCP_OFF: DXGKMDT_OPM_TYPE_ENFORCEMENT_HDCP_PROTECTION_LEVEL = 0i32; +pub const DXGKMDT_OPM_TYPE_ENFORCEMENT_HDCP_ON_WITH_NO_TYPE_RESTRICTION: DXGKMDT_OPM_TYPE_ENFORCEMENT_HDCP_PROTECTION_LEVEL = 1i32; +pub const DXGKMDT_OPM_TYPE_ENFORCEMENT_HDCP_ON_WITH_TYPE1_RESTRICTION: DXGKMDT_OPM_TYPE_ENFORCEMENT_HDCP_PROTECTION_LEVEL = 2i32; +pub const DXGKMDT_OPM_VOS_COPP_SEMANTICS: DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS = 0i32; +pub const DXGKMDT_OPM_VOS_OPM_INDIRECT_DISPLAY: DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS = 2i32; +pub const DXGKMDT_OPM_VOS_OPM_SEMANTICS: DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS = 1i32; +pub const DXGKMDT_UAB_CERTIFICATE: DXGKMDT_CERTIFICATE_TYPE = 2i32; +pub const DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_FRAME0: DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE = 1i32; +pub const DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_FRAME1: DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE = 2i32; +pub const DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_NONE: DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE = 0i32; +pub const DXGKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_CHECKERBOARD: D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT = 7i32; +pub const DXGKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_COLUMN_INTERLEAVED: D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT = 6i32; +pub const DXGKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_MONO: D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT = 0i32; +pub const DXGKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_MONO_OFFSET: D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT = 4i32; +pub const DXGKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_ROW_INTERLEAVED: D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT = 5i32; +pub const DXGKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_SEPARATE: D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT = 3i32; +pub const DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY_BILINEAR: DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY = 1i32; +pub const DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY_HIGH: DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY = 2i32; +pub const DXGKMT_POWER_SHARED_TYPE_AUDIO: DXGKMT_POWER_SHARED_TYPE = 0i32; +pub const DXGKVGPU_ESCAPE_TYPE_GET_VGPU_TYPE: DXGKVGPU_ESCAPE_TYPE = 4i32; +pub const DXGKVGPU_ESCAPE_TYPE_INITIALIZE: DXGKVGPU_ESCAPE_TYPE = 2i32; +pub const DXGKVGPU_ESCAPE_TYPE_PAUSE: DXGKVGPU_ESCAPE_TYPE = 6i32; +pub const DXGKVGPU_ESCAPE_TYPE_POWERTRANSITIONCOMPLETE: DXGKVGPU_ESCAPE_TYPE = 5i32; +pub const DXGKVGPU_ESCAPE_TYPE_READ_PCI_CONFIG: DXGKVGPU_ESCAPE_TYPE = 0i32; +pub const DXGKVGPU_ESCAPE_TYPE_RELEASE: DXGKVGPU_ESCAPE_TYPE = 3i32; +pub const DXGKVGPU_ESCAPE_TYPE_RESUME: DXGKVGPU_ESCAPE_TYPE = 7i32; +pub const DXGKVGPU_ESCAPE_TYPE_WRITE_PCI_CONFIG: DXGKVGPU_ESCAPE_TYPE = 1i32; +pub const DXGK_BRIGHTNESS_MAXIMUM_NIT_RANGE_COUNT: u32 = 16u32; +pub const DXGK_DDT_DISPLAYID: DXGK_DISPLAY_DESCRIPTOR_TYPE = 2u8; +pub const DXGK_DDT_EDID: DXGK_DISPLAY_DESCRIPTOR_TYPE = 1u8; +pub const DXGK_DDT_INVALID: DXGK_DISPLAY_DESCRIPTOR_TYPE = 0u8; +pub const DXGK_DIAG_PROCESS_NAME_LENGTH: u32 = 16u32; +pub const DXGK_DT_INVALID: DXGK_DISPLAY_TECHNOLOGY = 0u8; +pub const DXGK_DT_LCD: DXGK_DISPLAY_TECHNOLOGY = 2u8; +pub const DXGK_DT_MAX: DXGK_DISPLAY_TECHNOLOGY = 5u8; +pub const DXGK_DT_OLED: DXGK_DISPLAY_TECHNOLOGY = 3u8; +pub const DXGK_DT_OTHER: DXGK_DISPLAY_TECHNOLOGY = 1u8; +pub const DXGK_DT_PROJECTOR: DXGK_DISPLAY_TECHNOLOGY = 4u8; +pub const DXGK_DU_ACCESSORY: DXGK_DISPLAY_USAGE = 5u8; +pub const DXGK_DU_AR: DXGK_DISPLAY_USAGE = 2u8; +pub const DXGK_DU_GENERIC: DXGK_DISPLAY_USAGE = 1u8; +pub const DXGK_DU_INVALID: DXGK_DISPLAY_USAGE = 0u8; +pub const DXGK_DU_MAX: DXGK_DISPLAY_USAGE = 6u8; +pub const DXGK_DU_MEDICAL_IMAGING: DXGK_DISPLAY_USAGE = 4u8; +pub const DXGK_DU_VR: DXGK_DISPLAY_USAGE = 3u8; +pub const DXGK_ENGINE_TYPE_3D: DXGK_ENGINE_TYPE = 1i32; +pub const DXGK_ENGINE_TYPE_COPY: DXGK_ENGINE_TYPE = 6i32; +pub const DXGK_ENGINE_TYPE_CRYPTO: DXGK_ENGINE_TYPE = 8i32; +pub const DXGK_ENGINE_TYPE_MAX: DXGK_ENGINE_TYPE = 9i32; +pub const DXGK_ENGINE_TYPE_OTHER: DXGK_ENGINE_TYPE = 0i32; +pub const DXGK_ENGINE_TYPE_OVERLAY: DXGK_ENGINE_TYPE = 7i32; +pub const DXGK_ENGINE_TYPE_SCENE_ASSEMBLY: DXGK_ENGINE_TYPE = 5i32; +pub const DXGK_ENGINE_TYPE_VIDEO_DECODE: DXGK_ENGINE_TYPE = 2i32; +pub const DXGK_ENGINE_TYPE_VIDEO_ENCODE: DXGK_ENGINE_TYPE = 3i32; +pub const DXGK_ENGINE_TYPE_VIDEO_PROCESSING: DXGK_ENGINE_TYPE = 4i32; +pub const DXGK_GENERAL_ERROR_INVALID_INSTRUCTION: DXGK_GENERAL_ERROR_CODE = 1i32; +pub const DXGK_GENERAL_ERROR_PAGE_FAULT: DXGK_GENERAL_ERROR_CODE = 0i32; +pub const DXGK_GRAPHICSPOWER_VERSION: u32 = 4098u32; +pub const DXGK_GRAPHICSPOWER_VERSION_1_0: u32 = 4096u32; +pub const DXGK_GRAPHICSPOWER_VERSION_1_1: u32 = 4097u32; +pub const DXGK_GRAPHICSPOWER_VERSION_1_2: u32 = 4098u32; +pub const DXGK_MAX_GPUVERSION_NAME_LENGTH: u32 = 32u32; +pub const DXGK_MAX_METADATA_NAME_LENGTH: u32 = 32u32; +pub const DXGK_MAX_PAGE_TABLE_LEVEL_COUNT: u32 = 6u32; +pub const DXGK_MIN_PAGE_TABLE_LEVEL_COUNT: u32 = 2u32; +pub const DXGK_MIRACAST_CHUNK_TYPE_COLOR_CONVERT_COMPLETE: DXGK_MIRACAST_CHUNK_TYPE = 1i32; +pub const DXGK_MIRACAST_CHUNK_TYPE_ENCODE_COMPLETE: DXGK_MIRACAST_CHUNK_TYPE = 2i32; +pub const DXGK_MIRACAST_CHUNK_TYPE_ENCODE_DRIVER_DEFINED_1: DXGK_MIRACAST_CHUNK_TYPE = -2147483648i32; +pub const DXGK_MIRACAST_CHUNK_TYPE_ENCODE_DRIVER_DEFINED_2: DXGK_MIRACAST_CHUNK_TYPE = -2147483647i32; +pub const DXGK_MIRACAST_CHUNK_TYPE_FRAME_DROPPED: DXGK_MIRACAST_CHUNK_TYPE = 4i32; +pub const DXGK_MIRACAST_CHUNK_TYPE_FRAME_START: DXGK_MIRACAST_CHUNK_TYPE = 3i32; +pub const DXGK_MIRACAST_CHUNK_TYPE_UNKNOWN: DXGK_MIRACAST_CHUNK_TYPE = 0i32; +pub const DXGK_PAGE_FAULT_ADAPTER_RESET_REQUIRED: DXGK_PAGE_FAULT_FLAGS = 4i32; +pub const DXGK_PAGE_FAULT_ENGINE_RESET_REQUIRED: DXGK_PAGE_FAULT_FLAGS = 8i32; +pub const DXGK_PAGE_FAULT_FATAL_HARDWARE_ERROR: DXGK_PAGE_FAULT_FLAGS = 16i32; +pub const DXGK_PAGE_FAULT_FENCE_INVALID: DXGK_PAGE_FAULT_FLAGS = 2i32; +pub const DXGK_PAGE_FAULT_HW_CONTEXT_VALID: DXGK_PAGE_FAULT_FLAGS = 64i32; +pub const DXGK_PAGE_FAULT_IOMMU: DXGK_PAGE_FAULT_FLAGS = 32i32; +pub const DXGK_PAGE_FAULT_PROCESS_HANDLE_VALID: DXGK_PAGE_FAULT_FLAGS = 128i32; +pub const DXGK_PAGE_FAULT_WRITE: DXGK_PAGE_FAULT_FLAGS = 1i32; +pub const DXGK_PTE_PAGE_TABLE_PAGE_4KB: DXGK_PTE_PAGE_SIZE = 0i32; +pub const DXGK_PTE_PAGE_TABLE_PAGE_64KB: DXGK_PTE_PAGE_SIZE = 1i32; +pub const DXGK_RENDER_PIPELINE_STAGE_GEOMETRY_SHADER: DXGK_RENDER_PIPELINE_STAGE = 3i32; +pub const DXGK_RENDER_PIPELINE_STAGE_INPUT_ASSEMBLER: DXGK_RENDER_PIPELINE_STAGE = 1i32; +pub const DXGK_RENDER_PIPELINE_STAGE_OUTPUT_MERGER: DXGK_RENDER_PIPELINE_STAGE = 7i32; +pub const DXGK_RENDER_PIPELINE_STAGE_PIXEL_SHADER: DXGK_RENDER_PIPELINE_STAGE = 6i32; +pub const DXGK_RENDER_PIPELINE_STAGE_RASTERIZER: DXGK_RENDER_PIPELINE_STAGE = 5i32; +pub const DXGK_RENDER_PIPELINE_STAGE_STREAM_OUTPUT: DXGK_RENDER_PIPELINE_STAGE = 4i32; +pub const DXGK_RENDER_PIPELINE_STAGE_UNKNOWN: DXGK_RENDER_PIPELINE_STAGE = 0i32; +pub const DXGK_RENDER_PIPELINE_STAGE_VERTEX_SHADER: DXGK_RENDER_PIPELINE_STAGE = 2i32; +pub const DxgkBacklightOptimizationDesktop: DXGK_BACKLIGHT_OPTIMIZATION_LEVEL = 1i32; +pub const DxgkBacklightOptimizationDimmed: DXGK_BACKLIGHT_OPTIMIZATION_LEVEL = 3i32; +pub const DxgkBacklightOptimizationDisable: DXGK_BACKLIGHT_OPTIMIZATION_LEVEL = 0i32; +pub const DxgkBacklightOptimizationDynamic: DXGK_BACKLIGHT_OPTIMIZATION_LEVEL = 2i32; +pub const DxgkBacklightOptimizationEDR: DXGK_BACKLIGHT_OPTIMIZATION_LEVEL = 4i32; +pub const FLIPEX_TIMEOUT_USER: u32 = 2000u32; +pub const GUID_DEVINTERFACE_GRAPHICSPOWER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xea5c6870_e93c_4588_bef1_fec42fc9429a); +pub const HpdAwarenessAlwaysConnected: DXGK_CHILD_DEVICE_HPD_AWARENESS = 1i32; +pub const HpdAwarenessInterruptible: DXGK_CHILD_DEVICE_HPD_AWARENESS = 4i32; +pub const HpdAwarenessNone: DXGK_CHILD_DEVICE_HPD_AWARENESS = 2i32; +pub const HpdAwarenessPolled: DXGK_CHILD_DEVICE_HPD_AWARENESS = 3i32; +pub const HpdAwarenessUninitialized: DXGK_CHILD_DEVICE_HPD_AWARENESS = 0i32; +pub const IOCTL_GPUP_DRIVER_ESCAPE: u32 = 2253920u32; +pub const IOCTL_INTERNAL_GRAPHICSPOWER_REGISTER: u32 = 2304007u32; +pub const KMTQAITYPE_ADAPTERADDRESS: KMTQUERYADAPTERINFOTYPE = 6i32; +pub const KMTQAITYPE_ADAPTERADDRESS_RENDER: KMTQUERYADAPTERINFOTYPE = 53i32; +pub const KMTQAITYPE_ADAPTERGUID: KMTQUERYADAPTERINFOTYPE = 4i32; +pub const KMTQAITYPE_ADAPTERGUID_RENDER: KMTQUERYADAPTERINFOTYPE = 52i32; +pub const KMTQAITYPE_ADAPTERPERFDATA: KMTQUERYADAPTERINFOTYPE = 62i32; +pub const KMTQAITYPE_ADAPTERPERFDATA_CAPS: KMTQUERYADAPTERINFOTYPE = 63i32; +pub const KMTQAITYPE_ADAPTERREGISTRYINFO: KMTQUERYADAPTERINFOTYPE = 8i32; +pub const KMTQAITYPE_ADAPTERREGISTRYINFO_RENDER: KMTQUERYADAPTERINFOTYPE = 54i32; +pub const KMTQAITYPE_ADAPTERTYPE: KMTQUERYADAPTERINFOTYPE = 15i32; +pub const KMTQAITYPE_ADAPTERTYPE_RENDER: KMTQUERYADAPTERINFOTYPE = 57i32; +pub const KMTQAITYPE_BLOCKLIST_KERNEL: KMTQUERYADAPTERINFOTYPE = 50i32; +pub const KMTQAITYPE_BLOCKLIST_RUNTIME: KMTQUERYADAPTERINFOTYPE = 51i32; +pub const KMTQAITYPE_CHECKDRIVERUPDATESTATUS: KMTQUERYADAPTERINFOTYPE = 11i32; +pub const KMTQAITYPE_CHECKDRIVERUPDATESTATUS_RENDER: KMTQUERYADAPTERINFOTYPE = 55i32; +pub const KMTQAITYPE_CPDRIVERNAME: KMTQUERYADAPTERINFOTYPE = 26i32; +pub const KMTQAITYPE_CROSSADAPTERRESOURCE_SUPPORT: KMTQUERYADAPTERINFOTYPE = 76i32; +pub const KMTQAITYPE_CURRENTDISPLAYMODE: KMTQUERYADAPTERINFOTYPE = 9i32; +pub const KMTQAITYPE_DIRECTFLIP_SUPPORT: KMTQUERYADAPTERINFOTYPE = 19i32; +pub const KMTQAITYPE_DISPLAY_CAPS: KMTQUERYADAPTERINFOTYPE = 74i32; +pub const KMTQAITYPE_DISPLAY_UMDRIVERNAME: KMTQUERYADAPTERINFOTYPE = 71i32; +pub const KMTQAITYPE_DLIST_DRIVER_NAME: KMTQUERYADAPTERINFOTYPE = 21i32; +pub const KMTQAITYPE_DRIVERCAPS_EXT: KMTQUERYADAPTERINFOTYPE = 32i32; +pub const KMTQAITYPE_DRIVERVERSION: KMTQUERYADAPTERINFOTYPE = 13i32; +pub const KMTQAITYPE_DRIVERVERSION_RENDER: KMTQUERYADAPTERINFOTYPE = 56i32; +pub const KMTQAITYPE_DRIVER_DESCRIPTION: KMTQUERYADAPTERINFOTYPE = 65i32; +pub const KMTQAITYPE_DRIVER_DESCRIPTION_RENDER: KMTQUERYADAPTERINFOTYPE = 66i32; +pub const KMTQAITYPE_FLIPQUEUEINFO: KMTQUERYADAPTERINFOTYPE = 5i32; +pub const KMTQAITYPE_GETSEGMENTGROUPSIZE: KMTQUERYADAPTERINFOTYPE = 42i32; +pub const KMTQAITYPE_GETSEGMENTSIZE: KMTQUERYADAPTERINFOTYPE = 3i32; +pub const KMTQAITYPE_GET_DEVICE_VIDPN_OWNERSHIP_INFO: KMTQUERYADAPTERINFOTYPE = 47i32; +pub const KMTQAITYPE_HWDRM_SUPPORT: KMTQUERYADAPTERINFOTYPE = 44i32; +pub const KMTQAITYPE_HYBRID_DLIST_DLL_SUPPORT: KMTQUERYADAPTERINFOTYPE = 73i32; +pub const KMTQAITYPE_INDEPENDENTFLIP_SECONDARY_SUPPORT: KMTQUERYADAPTERINFOTYPE = 39i32; +pub const KMTQAITYPE_INDEPENDENTFLIP_SUPPORT: KMTQUERYADAPTERINFOTYPE = 28i32; +pub const KMTQAITYPE_KMD_DRIVER_VERSION: KMTQUERYADAPTERINFOTYPE = 49i32; +pub const KMTQAITYPE_MIRACASTCOMPANIONDRIVERNAME: KMTQUERYADAPTERINFOTYPE = 29i32; +pub const KMTQAITYPE_MODELIST: KMTQUERYADAPTERINFOTYPE = 10i32; +pub const KMTQAITYPE_MPO3DDI_SUPPORT: KMTQUERYADAPTERINFOTYPE = 43i32; +pub const KMTQAITYPE_MPOKERNELCAPS_SUPPORT: KMTQUERYADAPTERINFOTYPE = 45i32; +pub const KMTQAITYPE_MULTIPLANEOVERLAY_HUD_SUPPORT: KMTQUERYADAPTERINFOTYPE = 23i32; +pub const KMTQAITYPE_MULTIPLANEOVERLAY_SECONDARY_SUPPORT: KMTQUERYADAPTERINFOTYPE = 38i32; +pub const KMTQAITYPE_MULTIPLANEOVERLAY_STRETCH_SUPPORT: KMTQUERYADAPTERINFOTYPE = 46i32; +pub const KMTQAITYPE_MULTIPLANEOVERLAY_SUPPORT: KMTQUERYADAPTERINFOTYPE = 20i32; +pub const KMTQAITYPE_NODEMETADATA: KMTQUERYADAPTERINFOTYPE = 25i32; +pub const KMTQAITYPE_NODEPERFDATA: KMTQUERYADAPTERINFOTYPE = 61i32; +pub const KMTQAITYPE_OUTPUTDUPLCONTEXTSCOUNT: KMTQUERYADAPTERINFOTYPE = 16i32; +pub const KMTQAITYPE_PANELFITTER_SUPPORT: KMTQUERYADAPTERINFOTYPE = 40i32; +pub const KMTQAITYPE_PARAVIRTUALIZATION_RENDER: KMTQUERYADAPTERINFOTYPE = 68i32; +pub const KMTQAITYPE_PHYSICALADAPTERCOUNT: KMTQUERYADAPTERINFOTYPE = 30i32; +pub const KMTQAITYPE_PHYSICALADAPTERDEVICEIDS: KMTQUERYADAPTERINFOTYPE = 31i32; +pub const KMTQAITYPE_PHYSICALADAPTERPNPKEY: KMTQUERYADAPTERINFOTYPE = 41i32; +pub const KMTQAITYPE_QUERYREGISTRY: KMTQUERYADAPTERINFOTYPE = 48i32; +pub const KMTQAITYPE_QUERY_ADAPTER_UNIQUE_GUID: KMTQUERYADAPTERINFOTYPE = 60i32; +pub const KMTQAITYPE_QUERY_GPUMMU_CAPS: KMTQUERYADAPTERINFOTYPE = 34i32; +pub const KMTQAITYPE_QUERY_HW_PROTECTION_TEARDOWN_COUNT: KMTQUERYADAPTERINFOTYPE = 36i32; +pub const KMTQAITYPE_QUERY_ISBADDRIVERFORHWPROTECTIONDISABLED: KMTQUERYADAPTERINFOTYPE = 37i32; +pub const KMTQAITYPE_QUERY_MIRACAST_DRIVER_TYPE: KMTQUERYADAPTERINFOTYPE = 33i32; +pub const KMTQAITYPE_QUERY_MULTIPLANEOVERLAY_DECODE_SUPPORT: KMTQUERYADAPTERINFOTYPE = 35i32; +pub const KMTQAITYPE_SCANOUT_CAPS: KMTQUERYADAPTERINFOTYPE = 67i32; +pub const KMTQAITYPE_SERVICENAME: KMTQUERYADAPTERINFOTYPE = 69i32; +pub const KMTQAITYPE_SETWORKINGSETINFO: KMTQUERYADAPTERINFOTYPE = 7i32; +pub const KMTQAITYPE_TRACKEDWORKLOAD_SUPPORT: KMTQUERYADAPTERINFOTYPE = 72i32; +pub const KMTQAITYPE_UMDRIVERNAME: KMTQUERYADAPTERINFOTYPE = 1i32; +pub const KMTQAITYPE_UMDRIVERPRIVATE: KMTQUERYADAPTERINFOTYPE = 0i32; +pub const KMTQAITYPE_UMD_DRIVER_VERSION: KMTQUERYADAPTERINFOTYPE = 18i32; +pub const KMTQAITYPE_UMOPENGLINFO: KMTQUERYADAPTERINFOTYPE = 2i32; +pub const KMTQAITYPE_VGPUINTERFACEID: KMTQUERYADAPTERINFOTYPE = 79i32; +pub const KMTQAITYPE_VIRTUALADDRESSINFO: KMTQUERYADAPTERINFOTYPE = 12i32; +pub const KMTQAITYPE_WDDM_1_2_CAPS: KMTQUERYADAPTERINFOTYPE = 17i32; +pub const KMTQAITYPE_WDDM_1_2_CAPS_RENDER: KMTQUERYADAPTERINFOTYPE = 58i32; +pub const KMTQAITYPE_WDDM_1_3_CAPS: KMTQUERYADAPTERINFOTYPE = 22i32; +pub const KMTQAITYPE_WDDM_1_3_CAPS_RENDER: KMTQUERYADAPTERINFOTYPE = 59i32; +pub const KMTQAITYPE_WDDM_2_0_CAPS: KMTQUERYADAPTERINFOTYPE = 24i32; +pub const KMTQAITYPE_WDDM_2_7_CAPS: KMTQUERYADAPTERINFOTYPE = 70i32; +pub const KMTQAITYPE_WDDM_2_9_CAPS: KMTQUERYADAPTERINFOTYPE = 75i32; +pub const KMTQAITYPE_WDDM_3_0_CAPS: KMTQUERYADAPTERINFOTYPE = 77i32; +pub const KMTQAITYPE_WDDM_3_1_CAPS: KMTQUERYADAPTERINFOTYPE = 80i32; +pub const KMTQAITYPE_WSAUMDIMAGENAME: KMTQUERYADAPTERINFOTYPE = 78i32; +pub const KMTQAITYPE_XBOX: KMTQUERYADAPTERINFOTYPE = 27i32; +pub const KMTQUITYPE_GPUVERSION: KMTQUERYADAPTERINFOTYPE = 64i32; +pub const KMTUMDVERSION_DX10: KMTUMDVERSION = 1i32; +pub const KMTUMDVERSION_DX11: KMTUMDVERSION = 2i32; +pub const KMTUMDVERSION_DX12: KMTUMDVERSION = 3i32; +pub const KMTUMDVERSION_DX12_WSA32: KMTUMDVERSION = 4i32; +pub const KMTUMDVERSION_DX12_WSA64: KMTUMDVERSION = 5i32; +pub const KMTUMDVERSION_DX9: KMTUMDVERSION = 0i32; +pub const KMT_DISPLAY_UMDVERSION_1: KMT_DISPLAY_UMD_VERSION = 0i32; +pub const KMT_DRIVERVERSION_WDDM_1_0: D3DKMT_DRIVERVERSION = 1000i32; +pub const KMT_DRIVERVERSION_WDDM_1_1: D3DKMT_DRIVERVERSION = 1105i32; +pub const KMT_DRIVERVERSION_WDDM_1_1_PRERELEASE: D3DKMT_DRIVERVERSION = 1102i32; +pub const KMT_DRIVERVERSION_WDDM_1_2: D3DKMT_DRIVERVERSION = 1200i32; +pub const KMT_DRIVERVERSION_WDDM_1_3: D3DKMT_DRIVERVERSION = 1300i32; +pub const KMT_DRIVERVERSION_WDDM_2_0: D3DKMT_DRIVERVERSION = 2000i32; +pub const KMT_DRIVERVERSION_WDDM_2_1: D3DKMT_DRIVERVERSION = 2100i32; +pub const KMT_DRIVERVERSION_WDDM_2_2: D3DKMT_DRIVERVERSION = 2200i32; +pub const KMT_DRIVERVERSION_WDDM_2_3: D3DKMT_DRIVERVERSION = 2300i32; +pub const KMT_DRIVERVERSION_WDDM_2_4: D3DKMT_DRIVERVERSION = 2400i32; +pub const KMT_DRIVERVERSION_WDDM_2_5: D3DKMT_DRIVERVERSION = 2500i32; +pub const KMT_DRIVERVERSION_WDDM_2_6: D3DKMT_DRIVERVERSION = 2600i32; +pub const KMT_DRIVERVERSION_WDDM_2_7: D3DKMT_DRIVERVERSION = 2700i32; +pub const KMT_DRIVERVERSION_WDDM_2_8: D3DKMT_DRIVERVERSION = 2800i32; +pub const KMT_DRIVERVERSION_WDDM_2_9: D3DKMT_DRIVERVERSION = 2900i32; +pub const KMT_DRIVERVERSION_WDDM_3_0: D3DKMT_DRIVERVERSION = 3000i32; +pub const KMT_DRIVERVERSION_WDDM_3_1: D3DKMT_DRIVERVERSION = 3100i32; +pub const MAX_ENUM_ADAPTERS: u32 = 16u32; +pub const MiracastStartPending: D3DKMT_MIRACAST_DISPLAY_DEVICE_STATE = 1i32; +pub const MiracastStarted: D3DKMT_MIRACAST_DISPLAY_DEVICE_STATE = 2i32; +pub const MiracastStopPending: D3DKMT_MIRACAST_DISPLAY_DEVICE_STATE = 3i32; +pub const MiracastStopped: D3DKMT_MIRACAST_DISPLAY_DEVICE_STATE = 0i32; +pub const NUM_KMTUMDVERSIONS: KMTUMDVERSION = 6i32; +pub const NUM_KMT_DISPLAY_UMDVERSIONS: KMT_DISPLAY_UMD_VERSION = 1i32; +pub const OUTPUTDUPL_CONTEXT_DEBUG_STATUS_ACTIVE: OUTPUTDUPL_CONTEXT_DEBUG_STATUS = 1i32; +pub const OUTPUTDUPL_CONTEXT_DEBUG_STATUS_INACTIVE: OUTPUTDUPL_CONTEXT_DEBUG_STATUS = 0i32; +pub const OUTPUTDUPL_CONTEXT_DEBUG_STATUS_PENDING_DESTROY: OUTPUTDUPL_CONTEXT_DEBUG_STATUS = 2i32; +pub const OUTPUTDUPL_CREATE_MAX_KEYEDMUTXES: u32 = 3u32; +pub const RTPATCHFLAG_HASINFO: i32 = 2i32; +pub const RTPATCHFLAG_HASSEGS: i32 = 1i32; +pub const SHARED_ALLOCATION_WRITE: u32 = 1u32; +pub const _NT_D3DDEVCAPS_HWINDEXBUFFER: i32 = 67108864i32; +pub const _NT_D3DDEVCAPS_HWVERTEXBUFFER: i32 = 33554432i32; +pub const _NT_D3DDEVCAPS_SUBVOLUMELOCK: i32 = 134217728i32; +pub const _NT_D3DFVF_FOG: i32 = 8192i32; +pub const _NT_D3DGDI2_MAGIC: u32 = 4294967295u32; +pub const _NT_D3DGDI2_TYPE_DEFERRED_AGP_AWARE: u32 = 24u32; +pub const _NT_D3DGDI2_TYPE_DEFER_AGP_FREES: u32 = 32u32; +pub const _NT_D3DGDI2_TYPE_DXVERSION: u32 = 4u32; +pub const _NT_D3DGDI2_TYPE_FREE_DEFERRED_AGP: u32 = 25u32; +pub const _NT_D3DGDI2_TYPE_GETADAPTERGROUP: u32 = 19u32; +pub const _NT_D3DGDI2_TYPE_GETD3DCAPS8: u32 = 1u32; +pub const _NT_D3DGDI2_TYPE_GETD3DCAPS9: u32 = 16u32; +pub const _NT_D3DGDI2_TYPE_GETD3DQUERY: u32 = 34u32; +pub const _NT_D3DGDI2_TYPE_GETD3DQUERYCOUNT: u32 = 33u32; +pub const _NT_D3DGDI2_TYPE_GETDDIVERSION: u32 = 35u32; +pub const _NT_D3DGDI2_TYPE_GETEXTENDEDMODE: u32 = 18u32; +pub const _NT_D3DGDI2_TYPE_GETEXTENDEDMODECOUNT: u32 = 17u32; +pub const _NT_D3DGDI2_TYPE_GETFORMAT: u32 = 3u32; +pub const _NT_D3DGDI2_TYPE_GETFORMATCOUNT: u32 = 2u32; +pub const _NT_D3DGDI2_TYPE_GETMULTISAMPLEQUALITYLEVELS: u32 = 22u32; +pub const _NT_D3DPMISCCAPS_FOGINFVF: i32 = 8192i32; +pub const _NT_D3DPS_COLOROUT_MAX_V2_0: u32 = 4u32; +pub const _NT_D3DPS_COLOROUT_MAX_V2_1: u32 = 4u32; +pub const _NT_D3DPS_COLOROUT_MAX_V3_0: u32 = 4u32; +pub const _NT_D3DPS_CONSTBOOLREG_MAX_SW_DX9: u32 = 2048u32; +pub const _NT_D3DPS_CONSTBOOLREG_MAX_V2_1: u32 = 16u32; +pub const _NT_D3DPS_CONSTBOOLREG_MAX_V3_0: u32 = 16u32; +pub const _NT_D3DPS_CONSTINTREG_MAX_SW_DX9: u32 = 2048u32; +pub const _NT_D3DPS_CONSTINTREG_MAX_V2_1: u32 = 16u32; +pub const _NT_D3DPS_CONSTINTREG_MAX_V3_0: u32 = 16u32; +pub const _NT_D3DPS_CONSTREG_MAX_DX8: u32 = 8u32; +pub const _NT_D3DPS_CONSTREG_MAX_SW_DX9: u32 = 8192u32; +pub const _NT_D3DPS_CONSTREG_MAX_V1_1: u32 = 8u32; +pub const _NT_D3DPS_CONSTREG_MAX_V1_2: u32 = 8u32; +pub const _NT_D3DPS_CONSTREG_MAX_V1_3: u32 = 8u32; +pub const _NT_D3DPS_CONSTREG_MAX_V1_4: u32 = 8u32; +pub const _NT_D3DPS_CONSTREG_MAX_V2_0: u32 = 32u32; +pub const _NT_D3DPS_CONSTREG_MAX_V2_1: u32 = 32u32; +pub const _NT_D3DPS_CONSTREG_MAX_V3_0: u32 = 224u32; +pub const _NT_D3DPS_INPUTREG_MAX_DX8: u32 = 8u32; +pub const _NT_D3DPS_INPUTREG_MAX_V1_1: u32 = 2u32; +pub const _NT_D3DPS_INPUTREG_MAX_V1_2: u32 = 2u32; +pub const _NT_D3DPS_INPUTREG_MAX_V1_3: u32 = 2u32; +pub const _NT_D3DPS_INPUTREG_MAX_V1_4: u32 = 2u32; +pub const _NT_D3DPS_INPUTREG_MAX_V2_0: u32 = 2u32; +pub const _NT_D3DPS_INPUTREG_MAX_V2_1: u32 = 2u32; +pub const _NT_D3DPS_INPUTREG_MAX_V3_0: u32 = 12u32; +pub const _NT_D3DPS_MAXLOOPINITVALUE_V2_1: u32 = 255u32; +pub const _NT_D3DPS_MAXLOOPINITVALUE_V3_0: u32 = 255u32; +pub const _NT_D3DPS_MAXLOOPITERATIONCOUNT_V2_1: u32 = 255u32; +pub const _NT_D3DPS_MAXLOOPITERATIONCOUNT_V3_0: u32 = 255u32; +pub const _NT_D3DPS_MAXLOOPSTEP_V2_1: u32 = 128u32; +pub const _NT_D3DPS_MAXLOOPSTEP_V3_0: u32 = 128u32; +pub const _NT_D3DPS_PREDICATE_MAX_V2_1: u32 = 1u32; +pub const _NT_D3DPS_PREDICATE_MAX_V3_0: u32 = 1u32; +pub const _NT_D3DPS_TEMPREG_MAX_DX8: u32 = 8u32; +pub const _NT_D3DPS_TEMPREG_MAX_V1_1: u32 = 2u32; +pub const _NT_D3DPS_TEMPREG_MAX_V1_2: u32 = 2u32; +pub const _NT_D3DPS_TEMPREG_MAX_V1_3: u32 = 2u32; +pub const _NT_D3DPS_TEMPREG_MAX_V1_4: u32 = 6u32; +pub const _NT_D3DPS_TEMPREG_MAX_V2_0: u32 = 12u32; +pub const _NT_D3DPS_TEMPREG_MAX_V2_1: u32 = 32u32; +pub const _NT_D3DPS_TEMPREG_MAX_V3_0: u32 = 32u32; +pub const _NT_D3DPS_TEXTUREREG_MAX_DX8: u32 = 8u32; +pub const _NT_D3DPS_TEXTUREREG_MAX_V1_1: u32 = 4u32; +pub const _NT_D3DPS_TEXTUREREG_MAX_V1_2: u32 = 4u32; +pub const _NT_D3DPS_TEXTUREREG_MAX_V1_3: u32 = 4u32; +pub const _NT_D3DPS_TEXTUREREG_MAX_V1_4: u32 = 6u32; +pub const _NT_D3DPS_TEXTUREREG_MAX_V2_0: u32 = 8u32; +pub const _NT_D3DPS_TEXTUREREG_MAX_V2_1: u32 = 8u32; +pub const _NT_D3DPS_TEXTUREREG_MAX_V3_0: u32 = 0u32; +pub const _NT_D3DRS_DELETERTPATCH: u32 = 169u32; +pub const _NT_D3DVS_ADDRREG_MAX_V1_1: u32 = 1u32; +pub const _NT_D3DVS_ADDRREG_MAX_V2_0: u32 = 1u32; +pub const _NT_D3DVS_ADDRREG_MAX_V2_1: u32 = 1u32; +pub const _NT_D3DVS_ADDRREG_MAX_V3_0: u32 = 1u32; +pub const _NT_D3DVS_ATTROUTREG_MAX_V1_1: u32 = 2u32; +pub const _NT_D3DVS_ATTROUTREG_MAX_V2_0: u32 = 2u32; +pub const _NT_D3DVS_ATTROUTREG_MAX_V2_1: u32 = 2u32; +pub const _NT_D3DVS_CONSTBOOLREG_MAX_SW_DX9: u32 = 2048u32; +pub const _NT_D3DVS_CONSTBOOLREG_MAX_V2_0: u32 = 16u32; +pub const _NT_D3DVS_CONSTBOOLREG_MAX_V2_1: u32 = 16u32; +pub const _NT_D3DVS_CONSTBOOLREG_MAX_V3_0: u32 = 16u32; +pub const _NT_D3DVS_CONSTINTREG_MAX_SW_DX9: u32 = 2048u32; +pub const _NT_D3DVS_CONSTINTREG_MAX_V2_0: u32 = 16u32; +pub const _NT_D3DVS_CONSTINTREG_MAX_V2_1: u32 = 16u32; +pub const _NT_D3DVS_CONSTINTREG_MAX_V3_0: u32 = 16u32; +pub const _NT_D3DVS_CONSTREG_MAX_V1_1: u32 = 96u32; +pub const _NT_D3DVS_CONSTREG_MAX_V2_0: u32 = 8192u32; +pub const _NT_D3DVS_CONSTREG_MAX_V2_1: u32 = 8192u32; +pub const _NT_D3DVS_CONSTREG_MAX_V3_0: u32 = 8192u32; +pub const _NT_D3DVS_INPUTREG_MAX_V1_1: u32 = 16u32; +pub const _NT_D3DVS_INPUTREG_MAX_V2_0: u32 = 16u32; +pub const _NT_D3DVS_INPUTREG_MAX_V2_1: u32 = 16u32; +pub const _NT_D3DVS_INPUTREG_MAX_V3_0: u32 = 16u32; +pub const _NT_D3DVS_LABEL_MAX_V3_0: u32 = 2048u32; +pub const _NT_D3DVS_MAXINSTRUCTIONCOUNT_V1_1: u32 = 128u32; +pub const _NT_D3DVS_MAXLOOPINITVALUE_V2_0: u32 = 255u32; +pub const _NT_D3DVS_MAXLOOPINITVALUE_V2_1: u32 = 255u32; +pub const _NT_D3DVS_MAXLOOPINITVALUE_V3_0: u32 = 255u32; +pub const _NT_D3DVS_MAXLOOPITERATIONCOUNT_V2_0: u32 = 255u32; +pub const _NT_D3DVS_MAXLOOPITERATIONCOUNT_V2_1: u32 = 255u32; +pub const _NT_D3DVS_MAXLOOPITERATIONCOUNT_V3_0: u32 = 255u32; +pub const _NT_D3DVS_MAXLOOPSTEP_V2_0: u32 = 128u32; +pub const _NT_D3DVS_MAXLOOPSTEP_V2_1: u32 = 128u32; +pub const _NT_D3DVS_MAXLOOPSTEP_V3_0: u32 = 128u32; +pub const _NT_D3DVS_OUTPUTREG_MAX_SW_DX9: u32 = 16u32; +pub const _NT_D3DVS_OUTPUTREG_MAX_V3_0: u32 = 12u32; +pub const _NT_D3DVS_PREDICATE_MAX_V2_1: u32 = 1u32; +pub const _NT_D3DVS_PREDICATE_MAX_V3_0: u32 = 1u32; +pub const _NT_D3DVS_TCRDOUTREG_MAX_V1_1: u32 = 8u32; +pub const _NT_D3DVS_TCRDOUTREG_MAX_V2_0: u32 = 8u32; +pub const _NT_D3DVS_TCRDOUTREG_MAX_V2_1: u32 = 8u32; +pub const _NT_D3DVS_TEMPREG_MAX_V1_1: u32 = 12u32; +pub const _NT_D3DVS_TEMPREG_MAX_V2_0: u32 = 12u32; +pub const _NT_D3DVS_TEMPREG_MAX_V2_1: u32 = 32u32; +pub const _NT_D3DVS_TEMPREG_MAX_V3_0: u32 = 32u32; +pub const _NT_RTPATCHFLAG_HASINFO: i32 = 2i32; +pub const _NT_RTPATCHFLAG_HASSEGS: i32 = 1i32; +pub type D3DDDIFORMAT = u32; +pub type D3DDDIGPUVIRTUALADDRESS_RESERVATION_TYPE = i32; +pub type D3DDDIMULTISAMPLE_TYPE = i32; +pub type D3DDDI_COLOR_SPACE_TYPE = i32; +pub type D3DDDI_DOORBELLSTATUS = i32; +pub type D3DDDI_DRIVERESCAPETYPE = i32; +pub type D3DDDI_FLIPINTERVAL_TYPE = i32; +pub type D3DDDI_GAMMARAMP_TYPE = i32; +pub type D3DDDI_HDR_METADATA_TYPE = i32; +pub type D3DDDI_OFFER_PRIORITY = i32; +pub type D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE = i32; +pub type D3DDDI_PAGINGQUEUE_PRIORITY = i32; +pub type D3DDDI_POOL = i32; +pub type D3DDDI_QUERYREGISTRY_STATUS = i32; +pub type D3DDDI_QUERYREGISTRY_TYPE = i32; +pub type D3DDDI_RECLAIM_RESULT = i32; +pub type D3DDDI_ROTATION = i32; +pub type D3DDDI_SCANLINEORDERING = i32; +pub type D3DDDI_SYNCHRONIZATIONOBJECT_TYPE = i32; +pub type D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_TYPE = i32; +pub type D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING = i32; +pub type D3DHAL_DP2OPERATION = i32; +pub type D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL = i32; +pub type D3DKMDT_COLOR_BASIS = i32; +pub type D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY = i32; +pub type D3DKMDT_ENUMCOFUNCMODALITY_PIVOT_TYPE = i32; +pub type D3DKMDT_GDISURFACETYPE = i32; +pub type D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY = i32; +pub type D3DKMDT_GTFCOMPLIANCE = i32; +pub type D3DKMDT_MODE_PREFERENCE = i32; +pub type D3DKMDT_MODE_PRUNING_REASON = i32; +pub type D3DKMDT_MONITOR_CAPABILITIES_ORIGIN = i32; +pub type D3DKMDT_MONITOR_CONNECTIVITY_CHECKS = i32; +pub type D3DKMDT_MONITOR_DESCRIPTOR_TYPE = i32; +pub type D3DKMDT_MONITOR_FREQUENCY_RANGE_CONSTRAINT = i32; +pub type D3DKMDT_MONITOR_ORIENTATION = i32; +pub type D3DKMDT_MONITOR_ORIENTATION_AWARENESS = i32; +pub type D3DKMDT_MONITOR_TIMING_TYPE = i32; +pub type D3DKMDT_PIXEL_VALUE_ACCESS_MODE = i32; +pub type D3DKMDT_STANDARDALLOCATION_TYPE = i32; +pub type D3DKMDT_TEXT_RENDERING_FORMAT = i32; +pub type D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY = i32; +pub type D3DKMDT_VIDEO_SIGNAL_STANDARD = i32; +pub type D3DKMDT_VIDPN_PRESENT_PATH_CONTENT = i32; +pub type D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_TYPE = i32; +pub type D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE = i32; +pub type D3DKMDT_VIDPN_PRESENT_PATH_ROTATION = i32; +pub type D3DKMDT_VIDPN_PRESENT_PATH_SCALING = i32; +pub type D3DKMDT_VIDPN_SOURCE_MODE_TYPE = i32; +pub type D3DKMT_ACTIVATE_SPECIFIC_DIAG_TYPE = i32; +pub type D3DKMT_ADAPTER_VERIFIER_OPTION_TYPE = i32; +pub type D3DKMT_ALLOCATIONRESIDENCYSTATUS = i32; +pub type D3DKMT_AUXILIARYPRESENTINFO_TYPE = i32; +pub type D3DKMT_BRIGHTNESS_INFO_TYPE = i32; +pub type D3DKMT_CANCEL_PRESENTS_OPERATION = i32; +pub type D3DKMT_CLIENTHINT = i32; +pub type D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER = i32; +pub type D3DKMT_DEFRAG_ESCAPE_OPERATION = i32; +pub type D3DKMT_DEVICEESCAPE_TYPE = i32; +pub type D3DKMT_DEVICEEXECUTION_STATE = i32; +pub type D3DKMT_DEVICESTATE_TYPE = i32; +pub type D3DKMT_DEVICE_ERROR_REASON = i32; +pub type D3DKMT_DMMESCAPETYPE = i32; +pub type D3DKMT_DRIVERVERSION = i32; +pub type D3DKMT_ESCAPETYPE = i32; +pub type D3DKMT_ESCAPE_PFN_CONTROL_COMMAND = i32; +pub type D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE = i32; +pub type D3DKMT_FLIPMODEL_INDEPENDENT_FLIP_STAGE = i32; +pub type D3DKMT_GPU_PREFERENCE_QUERY_STATE = i32; +pub type D3DKMT_GPU_PREFERENCE_QUERY_TYPE = i32; +pub type D3DKMT_MEMORY_SEGMENT_GROUP = i32; +pub type D3DKMT_MIRACAST_DEVICE_STATUS = i32; +pub type D3DKMT_MIRACAST_DISPLAY_DEVICE_STATE = i32; +pub type D3DKMT_MIRACAST_DRIVER_TYPE = i32; +pub type D3DKMT_MULTIPLANE_OVERLAY_BLEND = i32; +pub type D3DKMT_MULTIPLANE_OVERLAY_FLAGS = i32; +pub type D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT = i32; +pub type D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT = i32; +pub type D3DKMT_MULTIPLANE_OVERLAY_YCbCr_FLAGS = i32; +pub type D3DKMT_OFFER_PRIORITY = i32; +pub type D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE = i32; +pub type D3DKMT_OUTPUTDUPL_METADATATYPE = i32; +pub type D3DKMT_PNP_KEY_TYPE = i32; +pub type D3DKMT_PRESENT_MODEL = i32; +pub type D3DKMT_PROCESS_VERIFIER_OPTION_TYPE = i32; +pub type D3DKMT_PROTECTED_SESSION_STATUS = i32; +pub type D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT = i32; +pub type D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS = i32; +pub type D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE = i32; +pub type D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE = i32; +pub type D3DKMT_QUERYSTATISTICS_SEGMENT_TYPE = i32; +pub type D3DKMT_QUERYSTATISTICS_TYPE = i32; +pub type D3DKMT_QUEUEDLIMIT_TYPE = i32; +pub type D3DKMT_SCHEDULINGPRIORITYCLASS = i32; +pub type D3DKMT_STANDARDALLOCATIONTYPE = i32; +pub type D3DKMT_TDRDBGCTRLTYPE = i32; +pub type D3DKMT_VAD_ESCAPE_COMMAND = i32; +pub type D3DKMT_VERIFIER_OPTION_MODE = i32; +pub type D3DKMT_VIDMMESCAPETYPE = i32; +pub type D3DKMT_VIDPNSOURCEOWNER_TYPE = i32; +pub type D3DKMT_VIDSCHESCAPETYPE = i32; +pub type D3DNTHAL_DP2OPERATION = i32; +pub type D3DVSD_TOKENTYPE = i32; +pub type DISPLAYID_DETAILED_TIMING_TYPE_I_ASPECT_RATIO = i32; +pub type DISPLAYID_DETAILED_TIMING_TYPE_I_SCANNING_MODE = i32; +pub type DISPLAYID_DETAILED_TIMING_TYPE_I_STEREO_MODE = i32; +pub type DISPLAYID_DETAILED_TIMING_TYPE_I_SYNC_POLARITY = i32; +pub type DXGKDT_OPM_DVI_CHARACTERISTICS = i32; +pub type DXGKMDT_CERTIFICATE_TYPE = i32; +pub type DXGKMDT_OPM_ACP_PROTECTION_LEVEL = i32; +pub type DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION = i32; +pub type DXGKMDT_OPM_CGMSA = i32; +pub type DXGKMDT_OPM_CONNECTOR_TYPE = i32; +pub type DXGKMDT_OPM_DPCP_PROTECTION_LEVEL = i32; +pub type DXGKMDT_OPM_HDCP_FLAG = i32; +pub type DXGKMDT_OPM_HDCP_PROTECTION_LEVEL = i32; +pub type DXGKMDT_OPM_IMAGE_ASPECT_RATIO_EN300294 = i32; +pub type DXGKMDT_OPM_INTERLEAVE_FORMAT = i32; +pub type DXGKMDT_OPM_OUTPUT_HARDWARE_PROTECTION = i32; +pub type DXGKMDT_OPM_PROTECTION_STANDARD = i32; +pub type DXGKMDT_OPM_PROTECTION_TYPE = i32; +pub type DXGKMDT_OPM_STATUS = i32; +pub type DXGKMDT_OPM_TYPE_ENFORCEMENT_HDCP_PROTECTION_LEVEL = i32; +pub type DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS = i32; +pub type DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE = i32; +pub type DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY = i32; +pub type DXGKMT_POWER_SHARED_TYPE = i32; +pub type DXGKVGPU_ESCAPE_TYPE = i32; +pub type DXGK_BACKLIGHT_OPTIMIZATION_LEVEL = i32; +pub type DXGK_CHILD_DEVICE_HPD_AWARENESS = i32; +pub type DXGK_DISPLAY_DESCRIPTOR_TYPE = u8; +pub type DXGK_DISPLAY_TECHNOLOGY = u8; +pub type DXGK_DISPLAY_USAGE = u8; +pub type DXGK_ENGINE_TYPE = i32; +pub type DXGK_GENERAL_ERROR_CODE = i32; +pub type DXGK_MIRACAST_CHUNK_TYPE = i32; +pub type DXGK_PAGE_FAULT_FLAGS = i32; +pub type DXGK_PTE_PAGE_SIZE = i32; +pub type DXGK_RENDER_PIPELINE_STAGE = i32; +pub type KMTQUERYADAPTERINFOTYPE = i32; +pub type KMTUMDVERSION = i32; +pub type KMT_DISPLAY_UMD_VERSION = i32; +pub type OUTPUTDUPL_CONTEXT_DEBUG_STATUS = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DCAPS8 { + pub DeviceType: super::super::super::Win32::Graphics::Direct3D9::D3DDEVTYPE, + pub AdapterOrdinal: u32, + pub Caps: u32, + pub Caps2: u32, + pub Caps3: u32, + pub PresentationIntervals: u32, + pub CursorCaps: u32, + pub DevCaps: u32, + pub PrimitiveMiscCaps: u32, + pub RasterCaps: u32, + pub ZCmpCaps: u32, + pub SrcBlendCaps: u32, + pub DestBlendCaps: u32, + pub AlphaCmpCaps: u32, + pub ShadeCaps: u32, + pub TextureCaps: u32, + pub TextureFilterCaps: u32, + pub CubeTextureFilterCaps: u32, + pub VolumeTextureFilterCaps: u32, + pub TextureAddressCaps: u32, + pub VolumeTextureAddressCaps: u32, + pub LineCaps: u32, + pub MaxTextureWidth: u32, + pub MaxTextureHeight: u32, + pub MaxVolumeExtent: u32, + pub MaxTextureRepeat: u32, + pub MaxTextureAspectRatio: u32, + pub MaxAnisotropy: u32, + pub MaxVertexW: f32, + pub GuardBandLeft: f32, + pub GuardBandTop: f32, + pub GuardBandRight: f32, + pub GuardBandBottom: f32, + pub ExtentsAdjust: f32, + pub StencilCaps: u32, + pub FVFCaps: u32, + pub TextureOpCaps: u32, + pub MaxTextureBlendStages: u32, + pub MaxSimultaneousTextures: u32, + pub VertexProcessingCaps: u32, + pub MaxActiveLights: u32, + pub MaxUserClipPlanes: u32, + pub MaxVertexBlendMatrices: u32, + pub MaxVertexBlendMatrixIndex: u32, + pub MaxPointSize: f32, + pub MaxPrimitiveCount: u32, + pub MaxVertexIndex: u32, + pub MaxStreams: u32, + pub MaxStreamStride: u32, + pub VertexShaderVersion: u32, + pub MaxVertexShaderConst: u32, + pub PixelShaderVersion: u32, + pub MaxPixelShaderValue: f32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DCAPS8 {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DCAPS8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDIARG_CREATERESOURCE { + pub Format: D3DDDIFORMAT, + pub Pool: D3DDDI_POOL, + pub MultisampleType: D3DDDIMULTISAMPLE_TYPE, + pub MultisampleQuality: u32, + pub pSurfList: *const D3DDDI_SURFACEINFO, + pub SurfCount: u32, + pub MipLevels: u32, + pub Fvf: u32, + pub VidPnSourceId: u32, + pub RefreshRate: D3DDDI_RATIONAL, + pub hResource: super::super::super::Win32::Foundation::HANDLE, + pub Flags: D3DDDI_RESOURCEFLAGS, + pub Rotation: D3DDDI_ROTATION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDIARG_CREATERESOURCE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDIARG_CREATERESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDIARG_CREATERESOURCE2 { + pub Format: D3DDDIFORMAT, + pub Pool: D3DDDI_POOL, + pub MultisampleType: D3DDDIMULTISAMPLE_TYPE, + pub MultisampleQuality: u32, + pub pSurfList: *const D3DDDI_SURFACEINFO, + pub SurfCount: u32, + pub MipLevels: u32, + pub Fvf: u32, + pub VidPnSourceId: u32, + pub RefreshRate: D3DDDI_RATIONAL, + pub hResource: super::super::super::Win32::Foundation::HANDLE, + pub Flags: D3DDDI_RESOURCEFLAGS, + pub Rotation: D3DDDI_ROTATION, + pub Flags2: D3DDDI_RESOURCEFLAGS2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDIARG_CREATERESOURCE2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDIARG_CREATERESOURCE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDICB_DESTROYALLOCATION2FLAGS { + pub Anonymous: D3DDDICB_DESTROYALLOCATION2FLAGS_0, +} +impl ::core::marker::Copy for D3DDDICB_DESTROYALLOCATION2FLAGS {} +impl ::core::clone::Clone for D3DDDICB_DESTROYALLOCATION2FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDICB_DESTROYALLOCATION2FLAGS_0 { + pub Anonymous: D3DDDICB_DESTROYALLOCATION2FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDICB_DESTROYALLOCATION2FLAGS_0 {} +impl ::core::clone::Clone for D3DDDICB_DESTROYALLOCATION2FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDICB_DESTROYALLOCATION2FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDICB_DESTROYALLOCATION2FLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDICB_DESTROYALLOCATION2FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDICB_LOCK2FLAGS { + pub Anonymous: D3DDDICB_LOCK2FLAGS_0, +} +impl ::core::marker::Copy for D3DDDICB_LOCK2FLAGS {} +impl ::core::clone::Clone for D3DDDICB_LOCK2FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDICB_LOCK2FLAGS_0 { + pub Anonymous: D3DDDICB_LOCK2FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDICB_LOCK2FLAGS_0 {} +impl ::core::clone::Clone for D3DDDICB_LOCK2FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDICB_LOCK2FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDICB_LOCK2FLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDICB_LOCK2FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDICB_LOCKFLAGS { + pub Anonymous: D3DDDICB_LOCKFLAGS_0, +} +impl ::core::marker::Copy for D3DDDICB_LOCKFLAGS {} +impl ::core::clone::Clone for D3DDDICB_LOCKFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDICB_LOCKFLAGS_0 { + pub Anonymous: D3DDDICB_LOCKFLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDICB_LOCKFLAGS_0 {} +impl ::core::clone::Clone for D3DDDICB_LOCKFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDICB_LOCKFLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDICB_LOCKFLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDICB_LOCKFLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDICB_SIGNALFLAGS { + pub Anonymous: D3DDDICB_SIGNALFLAGS_0, +} +impl ::core::marker::Copy for D3DDDICB_SIGNALFLAGS {} +impl ::core::clone::Clone for D3DDDICB_SIGNALFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDICB_SIGNALFLAGS_0 { + pub Anonymous: D3DDDICB_SIGNALFLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDICB_SIGNALFLAGS_0 {} +impl ::core::clone::Clone for D3DDDICB_SIGNALFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDICB_SIGNALFLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDICB_SIGNALFLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDICB_SIGNALFLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE { + pub Anonymous: D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE_0, +} +impl ::core::marker::Copy for D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE {} +impl ::core::clone::Clone for D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE_0 { + pub Anonymous: D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE_0_0, + pub Value: u64, +} +impl ::core::marker::Copy for D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE_0 {} +impl ::core::clone::Clone for D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE_0_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE_0_0 {} +impl ::core::clone::Clone for D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDIRECT { + pub left: i32, + pub top: i32, + pub right: i32, + pub bottom: i32, +} +impl ::core::marker::Copy for D3DDDIRECT {} +impl ::core::clone::Clone for D3DDDIRECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_ALLOCATIONINFO { + pub hAllocation: u32, + pub pSystemMem: *const ::core::ffi::c_void, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, + pub VidPnSourceId: u32, + pub Flags: D3DDDI_ALLOCATIONINFO_0, +} +impl ::core::marker::Copy for D3DDDI_ALLOCATIONINFO {} +impl ::core::clone::Clone for D3DDDI_ALLOCATIONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_ALLOCATIONINFO_0 { + pub Anonymous: D3DDDI_ALLOCATIONINFO_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_ALLOCATIONINFO_0 {} +impl ::core::clone::Clone for D3DDDI_ALLOCATIONINFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_ALLOCATIONINFO_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_ALLOCATIONINFO_0_0 {} +impl ::core::clone::Clone for D3DDDI_ALLOCATIONINFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_ALLOCATIONINFO2 { + pub hAllocation: u32, + pub Anonymous1: D3DDDI_ALLOCATIONINFO2_0, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, + pub VidPnSourceId: u32, + pub Flags: D3DDDI_ALLOCATIONINFO2_2, + pub GpuVirtualAddress: u64, + pub Anonymous2: D3DDDI_ALLOCATIONINFO2_1, + pub Reserved: [usize; 5], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_ALLOCATIONINFO2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_ALLOCATIONINFO2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DDDI_ALLOCATIONINFO2_0 { + pub hSection: super::super::super::Win32::Foundation::HANDLE, + pub pSystemMem: *const ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_ALLOCATIONINFO2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_ALLOCATIONINFO2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DDDI_ALLOCATIONINFO2_1 { + pub Priority: u32, + pub Unused: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_ALLOCATIONINFO2_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_ALLOCATIONINFO2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DDDI_ALLOCATIONINFO2_2 { + pub Anonymous: D3DDDI_ALLOCATIONINFO2_2_0, + pub Value: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_ALLOCATIONINFO2_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_ALLOCATIONINFO2_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_ALLOCATIONINFO2_2_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_ALLOCATIONINFO2_2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_ALLOCATIONINFO2_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_ALLOCATIONLIST { + pub hAllocation: u32, + pub Anonymous: D3DDDI_ALLOCATIONLIST_0, +} +impl ::core::marker::Copy for D3DDDI_ALLOCATIONLIST {} +impl ::core::clone::Clone for D3DDDI_ALLOCATIONLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_ALLOCATIONLIST_0 { + pub Anonymous: D3DDDI_ALLOCATIONLIST_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_ALLOCATIONLIST_0 {} +impl ::core::clone::Clone for D3DDDI_ALLOCATIONLIST_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_ALLOCATIONLIST_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_ALLOCATIONLIST_0_0 {} +impl ::core::clone::Clone for D3DDDI_ALLOCATIONLIST_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_CREATECONTEXTFLAGS { + pub Anonymous: D3DDDI_CREATECONTEXTFLAGS_0, +} +impl ::core::marker::Copy for D3DDDI_CREATECONTEXTFLAGS {} +impl ::core::clone::Clone for D3DDDI_CREATECONTEXTFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_CREATECONTEXTFLAGS_0 { + pub Anonymous: D3DDDI_CREATECONTEXTFLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_CREATECONTEXTFLAGS_0 {} +impl ::core::clone::Clone for D3DDDI_CREATECONTEXTFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_CREATECONTEXTFLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_CREATECONTEXTFLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDI_CREATECONTEXTFLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_CREATEHWCONTEXTFLAGS { + pub Anonymous: D3DDDI_CREATEHWCONTEXTFLAGS_0, +} +impl ::core::marker::Copy for D3DDDI_CREATEHWCONTEXTFLAGS {} +impl ::core::clone::Clone for D3DDDI_CREATEHWCONTEXTFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_CREATEHWCONTEXTFLAGS_0 { + pub Anonymous: D3DDDI_CREATEHWCONTEXTFLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_CREATEHWCONTEXTFLAGS_0 {} +impl ::core::clone::Clone for D3DDDI_CREATEHWCONTEXTFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_CREATEHWCONTEXTFLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_CREATEHWCONTEXTFLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDI_CREATEHWCONTEXTFLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_CREATEHWQUEUEFLAGS { + pub Anonymous: D3DDDI_CREATEHWQUEUEFLAGS_0, +} +impl ::core::marker::Copy for D3DDDI_CREATEHWQUEUEFLAGS {} +impl ::core::clone::Clone for D3DDDI_CREATEHWQUEUEFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_CREATEHWQUEUEFLAGS_0 { + pub Anonymous: D3DDDI_CREATEHWQUEUEFLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_CREATEHWQUEUEFLAGS_0 {} +impl ::core::clone::Clone for D3DDDI_CREATEHWQUEUEFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_CREATEHWQUEUEFLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_CREATEHWQUEUEFLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDI_CREATEHWQUEUEFLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_CREATENATIVEFENCEINFO { + pub InitialFenceValue: u64, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, + pub EngineAffinity: u32, + pub Flags: D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS, + pub hSyncObject: u32, + pub NativeFenceMapping: D3DDDI_NATIVEFENCEMAPPING, +} +impl ::core::marker::Copy for D3DDDI_CREATENATIVEFENCEINFO {} +impl ::core::clone::Clone for D3DDDI_CREATENATIVEFENCEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_DESTROYPAGINGQUEUE { + pub hPagingQueue: u32, +} +impl ::core::marker::Copy for D3DDDI_DESTROYPAGINGQUEUE {} +impl ::core::clone::Clone for D3DDDI_DESTROYPAGINGQUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_DRIVERESCAPE_CPUEVENTUSAGE { + pub EscapeType: D3DDDI_DRIVERESCAPETYPE, + pub hSyncObject: u32, + pub hKmdCpuEvent: u64, + pub Usage: [u32; 8], +} +impl ::core::marker::Copy for D3DDDI_DRIVERESCAPE_CPUEVENTUSAGE {} +impl ::core::clone::Clone for D3DDDI_DRIVERESCAPE_CPUEVENTUSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_DRIVERESCAPE_TRANSLATEALLOCATIONEHANDLE { + pub EscapeType: D3DDDI_DRIVERESCAPETYPE, + pub hAllocation: u32, +} +impl ::core::marker::Copy for D3DDDI_DRIVERESCAPE_TRANSLATEALLOCATIONEHANDLE {} +impl ::core::clone::Clone for D3DDDI_DRIVERESCAPE_TRANSLATEALLOCATIONEHANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_DRIVERESCAPE_TRANSLATERESOURCEHANDLE { + pub EscapeType: D3DDDI_DRIVERESCAPETYPE, + pub hResource: u32, +} +impl ::core::marker::Copy for D3DDDI_DRIVERESCAPE_TRANSLATERESOURCEHANDLE {} +impl ::core::clone::Clone for D3DDDI_DRIVERESCAPE_TRANSLATERESOURCEHANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_DXGI_RGB { + pub Red: f32, + pub Green: f32, + pub Blue: f32, +} +impl ::core::marker::Copy for D3DDDI_DXGI_RGB {} +impl ::core::clone::Clone for D3DDDI_DXGI_RGB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_ESCAPEFLAGS { + pub Anonymous: D3DDDI_ESCAPEFLAGS_0, +} +impl ::core::marker::Copy for D3DDDI_ESCAPEFLAGS {} +impl ::core::clone::Clone for D3DDDI_ESCAPEFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_ESCAPEFLAGS_0 { + pub Anonymous: D3DDDI_ESCAPEFLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_ESCAPEFLAGS_0 {} +impl ::core::clone::Clone for D3DDDI_ESCAPEFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_ESCAPEFLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_ESCAPEFLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDI_ESCAPEFLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_EVICT_FLAGS { + pub Anonymous: D3DDDI_EVICT_FLAGS_0, +} +impl ::core::marker::Copy for D3DDDI_EVICT_FLAGS {} +impl ::core::clone::Clone for D3DDDI_EVICT_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_EVICT_FLAGS_0 { + pub Anonymous: D3DDDI_EVICT_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_EVICT_FLAGS_0 {} +impl ::core::clone::Clone for D3DDDI_EVICT_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_EVICT_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_EVICT_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDI_EVICT_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_GAMMA_RAMP_DXGI_1 { + pub Scale: D3DDDI_DXGI_RGB, + pub Offset: D3DDDI_DXGI_RGB, + pub GammaCurve: [D3DDDI_DXGI_RGB; 1025], +} +impl ::core::marker::Copy for D3DDDI_GAMMA_RAMP_DXGI_1 {} +impl ::core::clone::Clone for D3DDDI_GAMMA_RAMP_DXGI_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_GAMMA_RAMP_RGB256x3x16 { + pub Red: [u16; 256], + pub Green: [u16; 256], + pub Blue: [u16; 256], +} +impl ::core::marker::Copy for D3DDDI_GAMMA_RAMP_RGB256x3x16 {} +impl ::core::clone::Clone for D3DDDI_GAMMA_RAMP_RGB256x3x16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_GETRESOURCEPRESENTPRIVATEDRIVERDATA { + pub hResource: u32, + pub PrivateDriverDataSize: u32, + pub pPrivateDriverData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for D3DDDI_GETRESOURCEPRESENTPRIVATEDRIVERDATA {} +impl ::core::clone::Clone for D3DDDI_GETRESOURCEPRESENTPRIVATEDRIVERDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_HDR_METADATA_HDR10 { + pub RedPrimary: [u16; 2], + pub GreenPrimary: [u16; 2], + pub BluePrimary: [u16; 2], + pub WhitePoint: [u16; 2], + pub MaxMasteringLuminance: u32, + pub MinMasteringLuminance: u32, + pub MaxContentLightLevel: u16, + pub MaxFrameAverageLightLevel: u16, +} +impl ::core::marker::Copy for D3DDDI_HDR_METADATA_HDR10 {} +impl ::core::clone::Clone for D3DDDI_HDR_METADATA_HDR10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_HDR_METADATA_HDR10PLUS { + pub Data: [u8; 72], +} +impl ::core::marker::Copy for D3DDDI_HDR_METADATA_HDR10PLUS {} +impl ::core::clone::Clone for D3DDDI_HDR_METADATA_HDR10PLUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_KERNELOVERLAYINFO { + pub hAllocation: u32, + pub DstRect: D3DDDIRECT, + pub SrcRect: D3DDDIRECT, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, +} +impl ::core::marker::Copy for D3DDDI_KERNELOVERLAYINFO {} +impl ::core::clone::Clone for D3DDDI_KERNELOVERLAYINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_MAKERESIDENT { + pub hPagingQueue: u32, + pub NumAllocations: u32, + pub AllocationList: *const u32, + pub PriorityList: *const u32, + pub Flags: D3DDDI_MAKERESIDENT_FLAGS, + pub PagingFenceValue: u64, + pub NumBytesToTrim: u64, +} +impl ::core::marker::Copy for D3DDDI_MAKERESIDENT {} +impl ::core::clone::Clone for D3DDDI_MAKERESIDENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_MAKERESIDENT_FLAGS { + pub Anonymous: D3DDDI_MAKERESIDENT_FLAGS_0, +} +impl ::core::marker::Copy for D3DDDI_MAKERESIDENT_FLAGS {} +impl ::core::clone::Clone for D3DDDI_MAKERESIDENT_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_MAKERESIDENT_FLAGS_0 { + pub Anonymous: D3DDDI_MAKERESIDENT_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_MAKERESIDENT_FLAGS_0 {} +impl ::core::clone::Clone for D3DDDI_MAKERESIDENT_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_MAKERESIDENT_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_MAKERESIDENT_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDI_MAKERESIDENT_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_MAPGPUVIRTUALADDRESS { + pub hPagingQueue: u32, + pub BaseAddress: u64, + pub MinimumAddress: u64, + pub MaximumAddress: u64, + pub hAllocation: u32, + pub OffsetInPages: u64, + pub SizeInPages: u64, + pub Protection: D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE, + pub DriverProtection: u64, + pub Reserved0: u32, + pub Reserved1: u64, + pub VirtualAddress: u64, + pub PagingFenceValue: u64, +} +impl ::core::marker::Copy for D3DDDI_MAPGPUVIRTUALADDRESS {} +impl ::core::clone::Clone for D3DDDI_MAPGPUVIRTUALADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_MULTISAMPLINGMETHOD { + pub NumSamples: u32, + pub NumQualityLevels: u32, +} +impl ::core::marker::Copy for D3DDDI_MULTISAMPLINGMETHOD {} +impl ::core::clone::Clone for D3DDDI_MULTISAMPLINGMETHOD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_NATIVEFENCEMAPPING { + pub CurrentValueCpuVa: *mut ::core::ffi::c_void, + pub CurrentValueGpuVa: u64, + pub MonitoredValueGpuVa: u64, +} +impl ::core::marker::Copy for D3DDDI_NATIVEFENCEMAPPING {} +impl ::core::clone::Clone for D3DDDI_NATIVEFENCEMAPPING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_OFFER_FLAGS { + pub Anonymous: D3DDDI_OFFER_FLAGS_0, +} +impl ::core::marker::Copy for D3DDDI_OFFER_FLAGS {} +impl ::core::clone::Clone for D3DDDI_OFFER_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_OFFER_FLAGS_0 { + pub Anonymous: D3DDDI_OFFER_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_OFFER_FLAGS_0 {} +impl ::core::clone::Clone for D3DDDI_OFFER_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_OFFER_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_OFFER_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDI_OFFER_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_OPENALLOCATIONINFO { + pub hAllocation: u32, + pub pPrivateDriverData: *const ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, +} +impl ::core::marker::Copy for D3DDDI_OPENALLOCATIONINFO {} +impl ::core::clone::Clone for D3DDDI_OPENALLOCATIONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_OPENALLOCATIONINFO2 { + pub hAllocation: u32, + pub pPrivateDriverData: *const ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, + pub GpuVirtualAddress: u64, + pub Reserved: [usize; 6], +} +impl ::core::marker::Copy for D3DDDI_OPENALLOCATIONINFO2 {} +impl ::core::clone::Clone for D3DDDI_OPENALLOCATIONINFO2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_PATCHLOCATIONLIST { + pub AllocationIndex: u32, + pub Anonymous: D3DDDI_PATCHLOCATIONLIST_0, + pub DriverId: u32, + pub AllocationOffset: u32, + pub PatchOffset: u32, + pub SplitOffset: u32, +} +impl ::core::marker::Copy for D3DDDI_PATCHLOCATIONLIST {} +impl ::core::clone::Clone for D3DDDI_PATCHLOCATIONLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_PATCHLOCATIONLIST_0 { + pub Anonymous: D3DDDI_PATCHLOCATIONLIST_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_PATCHLOCATIONLIST_0 {} +impl ::core::clone::Clone for D3DDDI_PATCHLOCATIONLIST_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_PATCHLOCATIONLIST_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_PATCHLOCATIONLIST_0_0 {} +impl ::core::clone::Clone for D3DDDI_PATCHLOCATIONLIST_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_QUERYREGISTRY_FLAGS { + pub Anonymous: D3DDDI_QUERYREGISTRY_FLAGS_0, +} +impl ::core::marker::Copy for D3DDDI_QUERYREGISTRY_FLAGS {} +impl ::core::clone::Clone for D3DDDI_QUERYREGISTRY_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_QUERYREGISTRY_FLAGS_0 { + pub Anonymous: D3DDDI_QUERYREGISTRY_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_QUERYREGISTRY_FLAGS_0 {} +impl ::core::clone::Clone for D3DDDI_QUERYREGISTRY_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_QUERYREGISTRY_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_QUERYREGISTRY_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDI_QUERYREGISTRY_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_QUERYREGISTRY_INFO { + pub QueryType: D3DDDI_QUERYREGISTRY_TYPE, + pub QueryFlags: D3DDDI_QUERYREGISTRY_FLAGS, + pub ValueName: [u16; 260], + pub ValueType: u32, + pub PhysicalAdapterIndex: u32, + pub OutputValueSize: u32, + pub Status: D3DDDI_QUERYREGISTRY_STATUS, + pub Anonymous: D3DDDI_QUERYREGISTRY_INFO_0, +} +impl ::core::marker::Copy for D3DDDI_QUERYREGISTRY_INFO {} +impl ::core::clone::Clone for D3DDDI_QUERYREGISTRY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_QUERYREGISTRY_INFO_0 { + pub OutputDword: u32, + pub OutputQword: u64, + pub OutputString: [u16; 1], + pub OutputBinary: [u8; 1], +} +impl ::core::marker::Copy for D3DDDI_QUERYREGISTRY_INFO_0 {} +impl ::core::clone::Clone for D3DDDI_QUERYREGISTRY_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_RATIONAL { + pub Numerator: u32, + pub Denominator: u32, +} +impl ::core::marker::Copy for D3DDDI_RATIONAL {} +impl ::core::clone::Clone for D3DDDI_RATIONAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_RESERVEGPUVIRTUALADDRESS { + pub Anonymous1: D3DDDI_RESERVEGPUVIRTUALADDRESS_0, + pub BaseAddress: u64, + pub MinimumAddress: u64, + pub MaximumAddress: u64, + pub Size: u64, + pub Anonymous2: D3DDDI_RESERVEGPUVIRTUALADDRESS_1, + pub Anonymous3: D3DDDI_RESERVEGPUVIRTUALADDRESS_2, + pub VirtualAddress: u64, + pub Anonymous4: D3DDDI_RESERVEGPUVIRTUALADDRESS_3, +} +impl ::core::marker::Copy for D3DDDI_RESERVEGPUVIRTUALADDRESS {} +impl ::core::clone::Clone for D3DDDI_RESERVEGPUVIRTUALADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_RESERVEGPUVIRTUALADDRESS_0 { + pub hPagingQueue: u32, + pub hAdapter: u32, +} +impl ::core::marker::Copy for D3DDDI_RESERVEGPUVIRTUALADDRESS_0 {} +impl ::core::clone::Clone for D3DDDI_RESERVEGPUVIRTUALADDRESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_RESERVEGPUVIRTUALADDRESS_1 { + pub ReservationType: D3DDDIGPUVIRTUALADDRESS_RESERVATION_TYPE, + pub Reserved0: u32, +} +impl ::core::marker::Copy for D3DDDI_RESERVEGPUVIRTUALADDRESS_1 {} +impl ::core::clone::Clone for D3DDDI_RESERVEGPUVIRTUALADDRESS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_RESERVEGPUVIRTUALADDRESS_2 { + pub DriverProtection: u64, + pub Reserved1: u64, +} +impl ::core::marker::Copy for D3DDDI_RESERVEGPUVIRTUALADDRESS_2 {} +impl ::core::clone::Clone for D3DDDI_RESERVEGPUVIRTUALADDRESS_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_RESERVEGPUVIRTUALADDRESS_3 { + pub PagingFenceValue: u64, + pub Reserved2: u64, +} +impl ::core::marker::Copy for D3DDDI_RESERVEGPUVIRTUALADDRESS_3 {} +impl ::core::clone::Clone for D3DDDI_RESERVEGPUVIRTUALADDRESS_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_RESOURCEFLAGS { + pub Anonymous: D3DDDI_RESOURCEFLAGS_0, +} +impl ::core::marker::Copy for D3DDDI_RESOURCEFLAGS {} +impl ::core::clone::Clone for D3DDDI_RESOURCEFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_RESOURCEFLAGS_0 { + pub Anonymous: D3DDDI_RESOURCEFLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_RESOURCEFLAGS_0 {} +impl ::core::clone::Clone for D3DDDI_RESOURCEFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_RESOURCEFLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_RESOURCEFLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDI_RESOURCEFLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_RESOURCEFLAGS2 { + pub Anonymous: D3DDDI_RESOURCEFLAGS2_0, +} +impl ::core::marker::Copy for D3DDDI_RESOURCEFLAGS2 {} +impl ::core::clone::Clone for D3DDDI_RESOURCEFLAGS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_RESOURCEFLAGS2_0 { + pub Anonymous: D3DDDI_RESOURCEFLAGS2_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_RESOURCEFLAGS2_0 {} +impl ::core::clone::Clone for D3DDDI_RESOURCEFLAGS2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_RESOURCEFLAGS2_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_RESOURCEFLAGS2_0_0 {} +impl ::core::clone::Clone for D3DDDI_RESOURCEFLAGS2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_SEGMENTPREFERENCE { + pub Anonymous: D3DDDI_SEGMENTPREFERENCE_0, +} +impl ::core::marker::Copy for D3DDDI_SEGMENTPREFERENCE {} +impl ::core::clone::Clone for D3DDDI_SEGMENTPREFERENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_SEGMENTPREFERENCE_0 { + pub Anonymous: D3DDDI_SEGMENTPREFERENCE_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_SEGMENTPREFERENCE_0 {} +impl ::core::clone::Clone for D3DDDI_SEGMENTPREFERENCE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_SEGMENTPREFERENCE_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_SEGMENTPREFERENCE_0_0 {} +impl ::core::clone::Clone for D3DDDI_SEGMENTPREFERENCE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_SURFACEINFO { + pub Width: u32, + pub Height: u32, + pub Depth: u32, + pub pSysMem: *const ::core::ffi::c_void, + pub SysMemPitch: u32, + pub SysMemSlicePitch: u32, +} +impl ::core::marker::Copy for D3DDDI_SURFACEINFO {} +impl ::core::clone::Clone for D3DDDI_SURFACEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_SYNCHRONIZATIONOBJECTINFO { + pub Type: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE, + pub Anonymous: D3DDDI_SYNCHRONIZATIONOBJECTINFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DDDI_SYNCHRONIZATIONOBJECTINFO_0 { + pub SynchronizationMutex: D3DDDI_SYNCHRONIZATIONOBJECTINFO_0_2, + pub Semaphore: D3DDDI_SYNCHRONIZATIONOBJECTINFO_0_1, + pub Reserved: D3DDDI_SYNCHRONIZATIONOBJECTINFO_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_0_0 { + pub Reserved: [u32; 16], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_0_1 { + pub MaxCount: u32, + pub InitialCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_0_2 { + pub InitialState: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2 { + pub Type: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE, + pub Flags: D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS, + pub Anonymous: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0, + pub SharedHandle: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0 { + pub SynchronizationMutex: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_6, + pub Semaphore: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_5, + pub Fence: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_1, + pub CPUNotification: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_0, + pub MonitoredFence: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_2, + pub PeriodicMonitoredFence: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_3, + pub Reserved: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_4, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_0 { + pub Event: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_1 { + pub FenceValue: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_2 { + pub InitialFenceValue: u64, + pub FenceValueCPUVirtualAddress: *mut ::core::ffi::c_void, + pub FenceValueGPUVirtualAddress: u64, + pub EngineAffinity: u32, + pub Padding: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_3 { + pub hAdapter: u32, + pub VidPnTargetId: u32, + pub Time: u64, + pub FenceValueCPUVirtualAddress: *mut ::core::ffi::c_void, + pub FenceValueGPUVirtualAddress: u64, + pub EngineAffinity: u32, + pub Padding: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_4 { + pub Reserved: [u64; 8], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_4 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_5 { + pub MaxCount: u32, + pub InitialCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_5 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_6 { + pub InitialState: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_6 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECTINFO2_0_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS { + pub Anonymous: D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_0, +} +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS {} +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_0 { + pub Anonymous: D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_0 {} +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_TRIMRESIDENCYSET_FLAGS { + pub Anonymous: D3DDDI_TRIMRESIDENCYSET_FLAGS_0, +} +impl ::core::marker::Copy for D3DDDI_TRIMRESIDENCYSET_FLAGS {} +impl ::core::clone::Clone for D3DDDI_TRIMRESIDENCYSET_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_TRIMRESIDENCYSET_FLAGS_0 { + pub Anonymous: D3DDDI_TRIMRESIDENCYSET_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_TRIMRESIDENCYSET_FLAGS_0 {} +impl ::core::clone::Clone for D3DDDI_TRIMRESIDENCYSET_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_TRIMRESIDENCYSET_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_TRIMRESIDENCYSET_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDI_TRIMRESIDENCYSET_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_UPDATEALLOCPROPERTY { + pub hPagingQueue: u32, + pub hAllocation: u32, + pub SupportedSegmentSet: u32, + pub PreferredSegment: D3DDDI_SEGMENTPREFERENCE, + pub Flags: D3DDDI_UPDATEALLOCPROPERTY_FLAGS, + pub PagingFenceValue: u64, + pub Anonymous: D3DDDI_UPDATEALLOCPROPERTY_0, +} +impl ::core::marker::Copy for D3DDDI_UPDATEALLOCPROPERTY {} +impl ::core::clone::Clone for D3DDDI_UPDATEALLOCPROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_UPDATEALLOCPROPERTY_0 { + pub Anonymous: D3DDDI_UPDATEALLOCPROPERTY_0_0, + pub PropertyMaskValue: u32, +} +impl ::core::marker::Copy for D3DDDI_UPDATEALLOCPROPERTY_0 {} +impl ::core::clone::Clone for D3DDDI_UPDATEALLOCPROPERTY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_UPDATEALLOCPROPERTY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_UPDATEALLOCPROPERTY_0_0 {} +impl ::core::clone::Clone for D3DDDI_UPDATEALLOCPROPERTY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_UPDATEALLOCPROPERTY_FLAGS { + pub Anonymous: D3DDDI_UPDATEALLOCPROPERTY_FLAGS_0, +} +impl ::core::marker::Copy for D3DDDI_UPDATEALLOCPROPERTY_FLAGS {} +impl ::core::clone::Clone for D3DDDI_UPDATEALLOCPROPERTY_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_UPDATEALLOCPROPERTY_FLAGS_0 { + pub Anonymous: D3DDDI_UPDATEALLOCPROPERTY_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_UPDATEALLOCPROPERTY_FLAGS_0 {} +impl ::core::clone::Clone for D3DDDI_UPDATEALLOCPROPERTY_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_UPDATEALLOCPROPERTY_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_UPDATEALLOCPROPERTY_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDI_UPDATEALLOCPROPERTY_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION { + pub OperationType: D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_TYPE, + pub Anonymous: D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0, +} +impl ::core::marker::Copy for D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION {} +impl ::core::clone::Clone for D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0 { + pub Map: D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_2, + pub MapProtect: D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_1, + pub Unmap: D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_3, + pub Copy: D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_0, +} +impl ::core::marker::Copy for D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0 {} +impl ::core::clone::Clone for D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_0 { + pub SourceAddress: u64, + pub SizeInBytes: u64, + pub DestAddress: u64, +} +impl ::core::marker::Copy for D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_0 {} +impl ::core::clone::Clone for D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_1 { + pub BaseAddress: u64, + pub SizeInBytes: u64, + pub hAllocation: u32, + pub AllocationOffsetInBytes: u64, + pub AllocationSizeInBytes: u64, + pub Protection: D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE, + pub DriverProtection: u64, +} +impl ::core::marker::Copy for D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_1 {} +impl ::core::clone::Clone for D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_2 { + pub BaseAddress: u64, + pub SizeInBytes: u64, + pub hAllocation: u32, + pub AllocationOffsetInBytes: u64, + pub AllocationSizeInBytes: u64, +} +impl ::core::marker::Copy for D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_2 {} +impl ::core::clone::Clone for D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_3 { + pub BaseAddress: u64, + pub SizeInBytes: u64, + pub Protection: D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE, +} +impl ::core::marker::Copy for D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_3 {} +impl ::core::clone::Clone for D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS { + pub Anonymous: D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS_0, +} +impl ::core::marker::Copy for D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS {} +impl ::core::clone::Clone for D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS_0 { + pub Anonymous: D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS_0 {} +impl ::core::clone::Clone for D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +pub struct D3DDEVICEDESC_V1 { + pub dwSize: u32, + pub dwFlags: u32, + pub dcmColorModel: u32, + pub dwDevCaps: u32, + pub dtcTransformCaps: super::super::super::Win32::Graphics::Direct3D9::D3DTRANSFORMCAPS, + pub bClipping: super::super::super::Win32::Foundation::BOOL, + pub dlcLightingCaps: super::super::super::Win32::Graphics::Direct3D9::D3DLIGHTINGCAPS, + pub dpcLineCaps: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMCAPS, + pub dpcTriCaps: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMCAPS, + pub dwDeviceRenderBitDepth: u32, + pub dwDeviceZBufferBitDepth: u32, + pub dwMaxBufferSize: u32, + pub dwMaxVertexCount: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::marker::Copy for D3DDEVICEDESC_V1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::clone::Clone for D3DDEVICEDESC_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +pub struct D3DDEVICEDESC_V2 { + pub dwSize: u32, + pub dwFlags: u32, + pub dcmColorModel: u32, + pub dwDevCaps: u32, + pub dtcTransformCaps: super::super::super::Win32::Graphics::Direct3D9::D3DTRANSFORMCAPS, + pub bClipping: super::super::super::Win32::Foundation::BOOL, + pub dlcLightingCaps: super::super::super::Win32::Graphics::Direct3D9::D3DLIGHTINGCAPS, + pub dpcLineCaps: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMCAPS, + pub dpcTriCaps: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMCAPS, + pub dwDeviceRenderBitDepth: u32, + pub dwDeviceZBufferBitDepth: u32, + pub dwMaxBufferSize: u32, + pub dwMaxVertexCount: u32, + pub dwMinTextureWidth: u32, + pub dwMinTextureHeight: u32, + pub dwMaxTextureWidth: u32, + pub dwMaxTextureHeight: u32, + pub dwMinStippleWidth: u32, + pub dwMaxStippleWidth: u32, + pub dwMinStippleHeight: u32, + pub dwMaxStippleHeight: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::marker::Copy for D3DDEVICEDESC_V2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::clone::Clone for D3DDEVICEDESC_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +pub struct D3DDEVICEDESC_V3 { + pub dwSize: u32, + pub dwFlags: u32, + pub dcmColorModel: u32, + pub dwDevCaps: u32, + pub dtcTransformCaps: super::super::super::Win32::Graphics::Direct3D9::D3DTRANSFORMCAPS, + pub bClipping: super::super::super::Win32::Foundation::BOOL, + pub dlcLightingCaps: super::super::super::Win32::Graphics::Direct3D9::D3DLIGHTINGCAPS, + pub dpcLineCaps: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMCAPS, + pub dpcTriCaps: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMCAPS, + pub dwDeviceRenderBitDepth: u32, + pub dwDeviceZBufferBitDepth: u32, + pub dwMaxBufferSize: u32, + pub dwMaxVertexCount: u32, + pub dwMinTextureWidth: u32, + pub dwMinTextureHeight: u32, + pub dwMaxTextureWidth: u32, + pub dwMaxTextureHeight: u32, + pub dwMinStippleWidth: u32, + pub dwMaxStippleWidth: u32, + pub dwMinStippleHeight: u32, + pub dwMaxStippleHeight: u32, + pub dwMaxTextureRepeat: u32, + pub dwMaxTextureAspectRatio: u32, + pub dwMaxAnisotropy: u32, + pub dvGuardBandLeft: f32, + pub dvGuardBandTop: f32, + pub dvGuardBandRight: f32, + pub dvGuardBandBottom: f32, + pub dvExtentsAdjust: f32, + pub dwStencilCaps: u32, + pub dwFVFCaps: u32, + pub dwTextureOpCaps: u32, + pub wMaxTextureBlendStages: u16, + pub wMaxSimultaneousTextures: u16, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::marker::Copy for D3DDEVICEDESC_V3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::clone::Clone for D3DDEVICEDESC_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DGPU_PHYSICAL_ADDRESS { + pub SegmentId: u32, + pub Padding: u32, + pub SegmentOffset: u64, +} +impl ::core::marker::Copy for D3DGPU_PHYSICAL_ADDRESS {} +impl ::core::clone::Clone for D3DGPU_PHYSICAL_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub struct D3DHAL_CALLBACKS { + pub dwSize: u32, + pub ContextCreate: LPD3DHAL_CONTEXTCREATECB, + pub ContextDestroy: LPD3DHAL_CONTEXTDESTROYCB, + pub ContextDestroyAll: LPD3DHAL_CONTEXTDESTROYALLCB, + pub SceneCapture: LPD3DHAL_SCENECAPTURECB, + pub lpReserved10: *mut ::core::ffi::c_void, + pub lpReserved11: *mut ::core::ffi::c_void, + pub RenderState: LPD3DHAL_RENDERSTATECB, + pub RenderPrimitive: LPD3DHAL_RENDERPRIMITIVECB, + pub dwReserved: u32, + pub TextureCreate: LPD3DHAL_TEXTURECREATECB, + pub TextureDestroy: LPD3DHAL_TEXTUREDESTROYCB, + pub TextureSwap: LPD3DHAL_TEXTURESWAPCB, + pub TextureGetSurf: LPD3DHAL_TEXTUREGETSURFCB, + pub lpReserved12: *mut ::core::ffi::c_void, + pub lpReserved13: *mut ::core::ffi::c_void, + pub lpReserved14: *mut ::core::ffi::c_void, + pub lpReserved15: *mut ::core::ffi::c_void, + pub lpReserved16: *mut ::core::ffi::c_void, + pub lpReserved17: *mut ::core::ffi::c_void, + pub lpReserved18: *mut ::core::ffi::c_void, + pub lpReserved19: *mut ::core::ffi::c_void, + pub lpReserved20: *mut ::core::ffi::c_void, + pub lpReserved21: *mut ::core::ffi::c_void, + pub GetState: LPD3DHAL_GETSTATECB, + pub dwReserved0: u32, + pub dwReserved1: u32, + pub dwReserved2: u32, + pub dwReserved3: u32, + pub dwReserved4: u32, + pub dwReserved5: u32, + pub dwReserved6: u32, + pub dwReserved7: u32, + pub dwReserved8: u32, + pub dwReserved9: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_CALLBACKS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub struct D3DHAL_CALLBACKS2 { + pub dwSize: u32, + pub dwFlags: u32, + pub SetRenderTarget: LPD3DHAL_SETRENDERTARGETCB, + pub Clear: LPD3DHAL_CLEARCB, + pub DrawOnePrimitive: LPD3DHAL_DRAWONEPRIMITIVECB, + pub DrawOneIndexedPrimitive: LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB, + pub DrawPrimitives: LPD3DHAL_DRAWPRIMITIVESCB, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_CALLBACKS2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_CALLBACKS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub struct D3DHAL_CALLBACKS3 { + pub dwSize: u32, + pub dwFlags: u32, + pub Clear2: LPD3DHAL_CLEAR2CB, + pub lpvReserved: *mut ::core::ffi::c_void, + pub ValidateTextureStageState: LPD3DHAL_VALIDATETEXTURESTAGESTATECB, + pub DrawPrimitives2: LPD3DHAL_DRAWPRIMITIVES2CB, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_CALLBACKS3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_CALLBACKS3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_CLEAR2DATA { + pub dwhContext: usize, + pub dwFlags: u32, + pub dwFillColor: u32, + pub dvFillDepth: f32, + pub dwFillStencil: u32, + pub lpRects: *mut super::super::super::Win32::Graphics::Direct3D9::D3DRECT, + pub dwNumRects: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_CLEAR2DATA {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_CLEAR2DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_CLEARDATA { + pub dwhContext: usize, + pub dwFlags: u32, + pub dwFillColor: u32, + pub dwFillDepth: u32, + pub lpRects: *mut super::super::super::Win32::Graphics::Direct3D9::D3DRECT, + pub dwNumRects: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_CLEARDATA {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_CLEARDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_CLIPPEDTRIANGLEFAN { + pub FirstVertexOffset: u32, + pub dwEdgeFlags: u32, + pub PrimitiveCount: u32, +} +impl ::core::marker::Copy for D3DHAL_CLIPPEDTRIANGLEFAN {} +impl ::core::clone::Clone for D3DHAL_CLIPPEDTRIANGLEFAN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub struct D3DHAL_CONTEXTCREATEDATA { + pub Anonymous1: D3DHAL_CONTEXTCREATEDATA_0, + pub Anonymous2: D3DHAL_CONTEXTCREATEDATA_1, + pub Anonymous3: D3DHAL_CONTEXTCREATEDATA_2, + pub Anonymous4: D3DHAL_CONTEXTCREATEDATA_3, + pub dwhContext: usize, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_CONTEXTCREATEDATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_CONTEXTCREATEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub union D3DHAL_CONTEXTCREATEDATA_0 { + pub lpDDGbl: *mut super::super::super::Win32::Graphics::DirectDraw::DDRAWI_DIRECTDRAW_GBL, + pub lpDDLcl: *mut super::super::super::Win32::Graphics::DirectDraw::DDRAWI_DIRECTDRAW_LCL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_CONTEXTCREATEDATA_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_CONTEXTCREATEDATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub union D3DHAL_CONTEXTCREATEDATA_1 { + pub lpDDS: super::super::super::Win32::Graphics::DirectDraw::IDirectDrawSurface, + pub lpDDSLcl: *mut super::super::super::Win32::Graphics::DirectDraw::DDRAWI_DDRAWSURFACE_LCL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_CONTEXTCREATEDATA_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_CONTEXTCREATEDATA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub union D3DHAL_CONTEXTCREATEDATA_2 { + pub lpDDSZ: super::super::super::Win32::Graphics::DirectDraw::IDirectDrawSurface, + pub lpDDSZLcl: *mut super::super::super::Win32::Graphics::DirectDraw::DDRAWI_DDRAWSURFACE_LCL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_CONTEXTCREATEDATA_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_CONTEXTCREATEDATA_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub union D3DHAL_CONTEXTCREATEDATA_3 { + pub dwPID: u32, + pub dwrstates: usize, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_CONTEXTCREATEDATA_3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_CONTEXTCREATEDATA_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_CONTEXTDESTROYALLDATA { + pub dwPID: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DHAL_CONTEXTDESTROYALLDATA {} +impl ::core::clone::Clone for D3DHAL_CONTEXTDESTROYALLDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_CONTEXTDESTROYDATA { + pub dwhContext: usize, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DHAL_CONTEXTDESTROYDATA {} +impl ::core::clone::Clone for D3DHAL_CONTEXTDESTROYDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_D3DDX6EXTENDEDCAPS { + pub dwSize: u32, + pub dwMinTextureWidth: u32, + pub dwMaxTextureWidth: u32, + pub dwMinTextureHeight: u32, + pub dwMaxTextureHeight: u32, + pub dwMinStippleWidth: u32, + pub dwMaxStippleWidth: u32, + pub dwMinStippleHeight: u32, + pub dwMaxStippleHeight: u32, + pub dwMaxTextureRepeat: u32, + pub dwMaxTextureAspectRatio: u32, + pub dwMaxAnisotropy: u32, + pub dvGuardBandLeft: f32, + pub dvGuardBandTop: f32, + pub dvGuardBandRight: f32, + pub dvGuardBandBottom: f32, + pub dvExtentsAdjust: f32, + pub dwStencilCaps: u32, + pub dwFVFCaps: u32, + pub dwTextureOpCaps: u32, + pub wMaxTextureBlendStages: u16, + pub wMaxSimultaneousTextures: u16, +} +impl ::core::marker::Copy for D3DHAL_D3DDX6EXTENDEDCAPS {} +impl ::core::clone::Clone for D3DHAL_D3DDX6EXTENDEDCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_D3DEXTENDEDCAPS { + pub dwSize: u32, + pub dwMinTextureWidth: u32, + pub dwMaxTextureWidth: u32, + pub dwMinTextureHeight: u32, + pub dwMaxTextureHeight: u32, + pub dwMinStippleWidth: u32, + pub dwMaxStippleWidth: u32, + pub dwMinStippleHeight: u32, + pub dwMaxStippleHeight: u32, + pub dwMaxTextureRepeat: u32, + pub dwMaxTextureAspectRatio: u32, + pub dwMaxAnisotropy: u32, + pub dvGuardBandLeft: f32, + pub dvGuardBandTop: f32, + pub dvGuardBandRight: f32, + pub dvGuardBandBottom: f32, + pub dvExtentsAdjust: f32, + pub dwStencilCaps: u32, + pub dwFVFCaps: u32, + pub dwTextureOpCaps: u32, + pub wMaxTextureBlendStages: u16, + pub wMaxSimultaneousTextures: u16, + pub dwMaxActiveLights: u32, + pub dvMaxVertexW: f32, + pub wMaxUserClipPlanes: u16, + pub wMaxVertexBlendMatrices: u16, + pub dwVertexProcessingCaps: u32, + pub dwReserved1: u32, + pub dwReserved2: u32, + pub dwReserved3: u32, + pub dwReserved4: u32, +} +impl ::core::marker::Copy for D3DHAL_D3DEXTENDEDCAPS {} +impl ::core::clone::Clone for D3DHAL_D3DEXTENDEDCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DP2ADDDIRTYBOX { + pub dwSurface: u32, + pub DirtyBox: super::super::super::Win32::Graphics::Direct3D9::D3DBOX, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DP2ADDDIRTYBOX {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DP2ADDDIRTYBOX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DHAL_DP2ADDDIRTYRECT { + pub dwSurface: u32, + pub rDirtyArea: super::super::super::Win32::Foundation::RECTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DHAL_DP2ADDDIRTYRECT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DHAL_DP2ADDDIRTYRECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DHAL_DP2BLT { + pub dwSource: u32, + pub rSource: super::super::super::Win32::Foundation::RECTL, + pub dwSourceMipLevel: u32, + pub dwDest: u32, + pub rDest: super::super::super::Win32::Foundation::RECTL, + pub dwDestMipLevel: u32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DHAL_DP2BLT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DHAL_DP2BLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DP2BUFFERBLT { + pub dwDDDestSurface: u32, + pub dwDDSrcSurface: u32, + pub dwOffset: u32, + pub rSrc: super::super::super::Win32::Graphics::Direct3D9::D3DRANGE, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DP2BUFFERBLT {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DP2BUFFERBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DHAL_DP2CLEAR { + pub dwFlags: u32, + pub dwFillColor: u32, + pub dvFillDepth: f32, + pub dwFillStencil: u32, + pub Rects: [super::super::super::Win32::Foundation::RECT; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DHAL_DP2CLEAR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DHAL_DP2CLEAR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DHAL_DP2COLORFILL { + pub dwSurface: u32, + pub rRect: super::super::super::Win32::Foundation::RECTL, + pub Color: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DHAL_DP2COLORFILL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DHAL_DP2COLORFILL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2COMMAND { + pub bCommand: u8, + pub bReserved: u8, + pub Anonymous: D3DHAL_DP2COMMAND_0, +} +impl ::core::marker::Copy for D3DHAL_DP2COMMAND {} +impl ::core::clone::Clone for D3DHAL_DP2COMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DHAL_DP2COMMAND_0 { + pub wPrimitiveCount: u16, + pub wStateCount: u16, +} +impl ::core::marker::Copy for D3DHAL_DP2COMMAND_0 {} +impl ::core::clone::Clone for D3DHAL_DP2COMMAND_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DP2COMPOSERECTS { + pub SrcSurfaceHandle: u32, + pub DstSurfaceHandle: u32, + pub SrcRectDescsVBHandle: u32, + pub NumRects: u32, + pub DstRectDescsVBHandle: u32, + pub Operation: super::super::super::Win32::Graphics::Direct3D9::D3DCOMPOSERECTSOP, + pub XOffset: i32, + pub YOffset: i32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DP2COMPOSERECTS {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DP2COMPOSERECTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2CREATELIGHT { + pub dwIndex: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2CREATELIGHT {} +impl ::core::clone::Clone for D3DHAL_DP2CREATELIGHT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2CREATEPIXELSHADER { + pub dwHandle: u32, + pub dwCodeSize: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2CREATEPIXELSHADER {} +impl ::core::clone::Clone for D3DHAL_DP2CREATEPIXELSHADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DP2CREATEQUERY { + pub dwQueryID: u32, + pub QueryType: super::super::super::Win32::Graphics::Direct3D9::D3DQUERYTYPE, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DP2CREATEQUERY {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DP2CREATEQUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2CREATEVERTEXSHADER { + pub dwHandle: u32, + pub dwDeclSize: u32, + pub dwCodeSize: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2CREATEVERTEXSHADER {} +impl ::core::clone::Clone for D3DHAL_DP2CREATEVERTEXSHADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2CREATEVERTEXSHADERDECL { + pub dwHandle: u32, + pub dwNumVertexElements: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2CREATEVERTEXSHADERDECL {} +impl ::core::clone::Clone for D3DHAL_DP2CREATEVERTEXSHADERDECL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2CREATEVERTEXSHADERFUNC { + pub dwHandle: u32, + pub dwSize: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2CREATEVERTEXSHADERFUNC {} +impl ::core::clone::Clone for D3DHAL_DP2CREATEVERTEXSHADERFUNC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2DELETEQUERY { + pub dwQueryID: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2DELETEQUERY {} +impl ::core::clone::Clone for D3DHAL_DP2DELETEQUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DP2DRAWINDEXEDPRIMITIVE { + pub primType: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMITIVETYPE, + pub BaseVertexIndex: i32, + pub MinIndex: u32, + pub NumVertices: u32, + pub StartIndex: u32, + pub PrimitiveCount: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DP2DRAWINDEXEDPRIMITIVE {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DP2DRAWINDEXEDPRIMITIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DP2DRAWINDEXEDPRIMITIVE2 { + pub primType: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMITIVETYPE, + pub BaseVertexOffset: i32, + pub MinIndex: u32, + pub NumVertices: u32, + pub StartIndexOffset: u32, + pub PrimitiveCount: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DP2DRAWINDEXEDPRIMITIVE2 {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DP2DRAWINDEXEDPRIMITIVE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DP2DRAWPRIMITIVE { + pub primType: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMITIVETYPE, + pub VStart: u32, + pub PrimitiveCount: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DP2DRAWPRIMITIVE {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DP2DRAWPRIMITIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DP2DRAWPRIMITIVE2 { + pub primType: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMITIVETYPE, + pub FirstVertexOffset: u32, + pub PrimitiveCount: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DP2DRAWPRIMITIVE2 {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DP2DRAWPRIMITIVE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2DRAWRECTPATCH { + pub Handle: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2DRAWRECTPATCH {} +impl ::core::clone::Clone for D3DHAL_DP2DRAWRECTPATCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2DRAWTRIPATCH { + pub Handle: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2DRAWTRIPATCH {} +impl ::core::clone::Clone for D3DHAL_DP2DRAWTRIPATCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2EXT { + pub dwExtToken: u32, + pub dwSize: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2EXT {} +impl ::core::clone::Clone for D3DHAL_DP2EXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DP2GENERATEMIPSUBLEVELS { + pub hSurface: u32, + pub Filter: super::super::super::Win32::Graphics::Direct3D9::D3DTEXTUREFILTERTYPE, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DP2GENERATEMIPSUBLEVELS {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DP2GENERATEMIPSUBLEVELS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2INDEXEDLINELIST { + pub wV1: u16, + pub wV2: u16, +} +impl ::core::marker::Copy for D3DHAL_DP2INDEXEDLINELIST {} +impl ::core::clone::Clone for D3DHAL_DP2INDEXEDLINELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2INDEXEDLINESTRIP { + pub wV: [u16; 2], +} +impl ::core::marker::Copy for D3DHAL_DP2INDEXEDLINESTRIP {} +impl ::core::clone::Clone for D3DHAL_DP2INDEXEDLINESTRIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2INDEXEDTRIANGLEFAN { + pub wV: [u16; 3], +} +impl ::core::marker::Copy for D3DHAL_DP2INDEXEDTRIANGLEFAN {} +impl ::core::clone::Clone for D3DHAL_DP2INDEXEDTRIANGLEFAN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2INDEXEDTRIANGLELIST { + pub wV1: u16, + pub wV2: u16, + pub wV3: u16, + pub wFlags: u16, +} +impl ::core::marker::Copy for D3DHAL_DP2INDEXEDTRIANGLELIST {} +impl ::core::clone::Clone for D3DHAL_DP2INDEXEDTRIANGLELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2INDEXEDTRIANGLELIST2 { + pub wV1: u16, + pub wV2: u16, + pub wV3: u16, +} +impl ::core::marker::Copy for D3DHAL_DP2INDEXEDTRIANGLELIST2 {} +impl ::core::clone::Clone for D3DHAL_DP2INDEXEDTRIANGLELIST2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2INDEXEDTRIANGLESTRIP { + pub wV: [u16; 3], +} +impl ::core::marker::Copy for D3DHAL_DP2INDEXEDTRIANGLESTRIP {} +impl ::core::clone::Clone for D3DHAL_DP2INDEXEDTRIANGLESTRIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2ISSUEQUERY { + pub dwQueryID: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2ISSUEQUERY {} +impl ::core::clone::Clone for D3DHAL_DP2ISSUEQUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2LINELIST { + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DHAL_DP2LINELIST {} +impl ::core::clone::Clone for D3DHAL_DP2LINELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2LINESTRIP { + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DHAL_DP2LINESTRIP {} +impl ::core::clone::Clone for D3DHAL_DP2LINESTRIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct3D9"))] +pub struct D3DHAL_DP2MULTIPLYTRANSFORM { + pub xfrmType: super::super::super::Win32::Graphics::Direct3D9::D3DTRANSFORMSTATETYPE, + pub matrix: super::super::super::Foundation::Numerics::Matrix4x4, +} +#[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::marker::Copy for D3DHAL_DP2MULTIPLYTRANSFORM {} +#[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::clone::Clone for D3DHAL_DP2MULTIPLYTRANSFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2PIXELSHADER { + pub dwHandle: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2PIXELSHADER {} +impl ::core::clone::Clone for D3DHAL_DP2PIXELSHADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2POINTS { + pub wCount: u16, + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DHAL_DP2POINTS {} +impl ::core::clone::Clone for D3DHAL_DP2POINTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DP2RENDERSTATE { + pub RenderState: super::super::super::Win32::Graphics::Direct3D9::D3DRENDERSTATETYPE, + pub Anonymous: D3DHAL_DP2RENDERSTATE_0, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DP2RENDERSTATE {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DP2RENDERSTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub union D3DHAL_DP2RENDERSTATE_0 { + pub dvState: f32, + pub dwState: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DP2RENDERSTATE_0 {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DP2RENDERSTATE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2RESPONSE { + pub bCommand: u8, + pub bReserved: u8, + pub wStateCount: u16, + pub dwTotalSize: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2RESPONSE {} +impl ::core::clone::Clone for D3DHAL_DP2RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2RESPONSEQUERY { + pub dwQueryID: u32, + pub dwSize: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2RESPONSEQUERY {} +impl ::core::clone::Clone for D3DHAL_DP2RESPONSEQUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETCLIPPLANE { + pub dwIndex: u32, + pub plane: [f32; 4], +} +impl ::core::marker::Copy for D3DHAL_DP2SETCLIPPLANE {} +impl ::core::clone::Clone for D3DHAL_DP2SETCLIPPLANE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETCONVOLUTIONKERNELMONO { + pub dwWidth: u32, + pub dwHeight: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETCONVOLUTIONKERNELMONO {} +impl ::core::clone::Clone for D3DHAL_DP2SETCONVOLUTIONKERNELMONO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETDEPTHSTENCIL { + pub hZBuffer: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETDEPTHSTENCIL {} +impl ::core::clone::Clone for D3DHAL_DP2SETDEPTHSTENCIL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETINDICES { + pub dwVBHandle: u32, + pub dwStride: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETINDICES {} +impl ::core::clone::Clone for D3DHAL_DP2SETINDICES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETLIGHT { + pub dwIndex: u32, + pub dwDataType: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETLIGHT {} +impl ::core::clone::Clone for D3DHAL_DP2SETLIGHT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETPALETTE { + pub dwPaletteHandle: u32, + pub dwPaletteFlags: u32, + pub dwSurfaceHandle: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETPALETTE {} +impl ::core::clone::Clone for D3DHAL_DP2SETPALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETPIXELSHADERCONST { + pub dwRegister: u32, + pub dwCount: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETPIXELSHADERCONST {} +impl ::core::clone::Clone for D3DHAL_DP2SETPIXELSHADERCONST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETPRIORITY { + pub dwDDSurface: u32, + pub dwPriority: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETPRIORITY {} +impl ::core::clone::Clone for D3DHAL_DP2SETPRIORITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETRENDERTARGET { + pub hRenderTarget: u32, + pub hZBuffer: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETRENDERTARGET {} +impl ::core::clone::Clone for D3DHAL_DP2SETRENDERTARGET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETRENDERTARGET2 { + pub RTIndex: u32, + pub hRenderTarget: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETRENDERTARGET2 {} +impl ::core::clone::Clone for D3DHAL_DP2SETRENDERTARGET2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETSTREAMSOURCE { + pub dwStream: u32, + pub dwVBHandle: u32, + pub dwStride: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETSTREAMSOURCE {} +impl ::core::clone::Clone for D3DHAL_DP2SETSTREAMSOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETSTREAMSOURCE2 { + pub dwStream: u32, + pub dwVBHandle: u32, + pub dwOffset: u32, + pub dwStride: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETSTREAMSOURCE2 {} +impl ::core::clone::Clone for D3DHAL_DP2SETSTREAMSOURCE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETSTREAMSOURCEFREQ { + pub dwStream: u32, + pub dwDivider: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETSTREAMSOURCEFREQ {} +impl ::core::clone::Clone for D3DHAL_DP2SETSTREAMSOURCEFREQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETSTREAMSOURCEUM { + pub dwStream: u32, + pub dwStride: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETSTREAMSOURCEUM {} +impl ::core::clone::Clone for D3DHAL_DP2SETSTREAMSOURCEUM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETTEXLOD { + pub dwDDSurface: u32, + pub dwLOD: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETTEXLOD {} +impl ::core::clone::Clone for D3DHAL_DP2SETTEXLOD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct3D9"))] +pub struct D3DHAL_DP2SETTRANSFORM { + pub xfrmType: super::super::super::Win32::Graphics::Direct3D9::D3DTRANSFORMSTATETYPE, + pub matrix: super::super::super::Foundation::Numerics::Matrix4x4, +} +#[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::marker::Copy for D3DHAL_DP2SETTRANSFORM {} +#[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::clone::Clone for D3DHAL_DP2SETTRANSFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2SETVERTEXSHADERCONST { + pub dwRegister: u32, + pub dwCount: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2SETVERTEXSHADERCONST {} +impl ::core::clone::Clone for D3DHAL_DP2SETVERTEXSHADERCONST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2STARTVERTEX { + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DHAL_DP2STARTVERTEX {} +impl ::core::clone::Clone for D3DHAL_DP2STARTVERTEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DP2STATESET { + pub dwOperation: u32, + pub dwParam: u32, + pub sbType: super::super::super::Win32::Graphics::Direct3D9::D3DSTATEBLOCKTYPE, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DP2STATESET {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DP2STATESET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DHAL_DP2SURFACEBLT { + pub dwSource: u32, + pub rSource: super::super::super::Win32::Foundation::RECTL, + pub dwSourceMipLevel: u32, + pub dwDest: u32, + pub rDest: super::super::super::Win32::Foundation::RECTL, + pub dwDestMipLevel: u32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DHAL_DP2SURFACEBLT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DHAL_DP2SURFACEBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DHAL_DP2TEXBLT { + pub dwDDDestSurface: u32, + pub dwDDSrcSurface: u32, + pub pDest: super::super::super::Win32::Foundation::POINT, + pub rSrc: super::super::super::Win32::Foundation::RECTL, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DHAL_DP2TEXBLT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DHAL_DP2TEXBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2TEXTURESTAGESTATE { + pub wStage: u16, + pub TSState: u16, + pub dwValue: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2TEXTURESTAGESTATE {} +impl ::core::clone::Clone for D3DHAL_DP2TEXTURESTAGESTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2TRIANGLEFAN { + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DHAL_DP2TRIANGLEFAN {} +impl ::core::clone::Clone for D3DHAL_DP2TRIANGLEFAN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2TRIANGLEFAN_IMM { + pub dwEdgeFlags: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2TRIANGLEFAN_IMM {} +impl ::core::clone::Clone for D3DHAL_DP2TRIANGLEFAN_IMM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2TRIANGLELIST { + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DHAL_DP2TRIANGLELIST {} +impl ::core::clone::Clone for D3DHAL_DP2TRIANGLELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2TRIANGLESTRIP { + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DHAL_DP2TRIANGLESTRIP {} +impl ::core::clone::Clone for D3DHAL_DP2TRIANGLESTRIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2UPDATEPALETTE { + pub dwPaletteHandle: u32, + pub wStartIndex: u16, + pub wNumEntries: u16, +} +impl ::core::marker::Copy for D3DHAL_DP2UPDATEPALETTE {} +impl ::core::clone::Clone for D3DHAL_DP2UPDATEPALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2VERTEXSHADER { + pub dwHandle: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2VERTEXSHADER {} +impl ::core::clone::Clone for D3DHAL_DP2VERTEXSHADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2VIEWPORTINFO { + pub dwX: u32, + pub dwY: u32, + pub dwWidth: u32, + pub dwHeight: u32, +} +impl ::core::marker::Copy for D3DHAL_DP2VIEWPORTINFO {} +impl ::core::clone::Clone for D3DHAL_DP2VIEWPORTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DP2VOLUMEBLT { + pub dwDDDestSurface: u32, + pub dwDDSrcSurface: u32, + pub dwDestX: u32, + pub dwDestY: u32, + pub dwDestZ: u32, + pub srcBox: super::super::super::Win32::Graphics::Direct3D9::D3DBOX, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DP2VOLUMEBLT {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DP2VOLUMEBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2WINFO { + pub dvWNear: f32, + pub dvWFar: f32, +} +impl ::core::marker::Copy for D3DHAL_DP2WINFO {} +impl ::core::clone::Clone for D3DHAL_DP2WINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DP2ZRANGE { + pub dvMinZ: f32, + pub dvMaxZ: f32, +} +impl ::core::marker::Copy for D3DHAL_DP2ZRANGE {} +impl ::core::clone::Clone for D3DHAL_DP2ZRANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA { + pub dwhContext: usize, + pub dwFlags: u32, + pub PrimitiveType: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMITIVETYPE, + pub Anonymous: D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA_0, + pub lpvVertices: *mut ::core::ffi::c_void, + pub dwNumVertices: u32, + pub lpwIndices: *mut u16, + pub dwNumIndices: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub union D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA_0 { + pub VertexType: super::super::super::Win32::Graphics::Direct3D9::D3DVERTEXTYPE, + pub dwFVFControl: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA_0 {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_DRAWONEPRIMITIVEDATA { + pub dwhContext: usize, + pub dwFlags: u32, + pub PrimitiveType: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMITIVETYPE, + pub Anonymous: D3DHAL_DRAWONEPRIMITIVEDATA_0, + pub lpvVertices: *mut ::core::ffi::c_void, + pub dwNumVertices: u32, + pub dwReserved: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DRAWONEPRIMITIVEDATA {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DRAWONEPRIMITIVEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub union D3DHAL_DRAWONEPRIMITIVEDATA_0 { + pub VertexType: super::super::super::Win32::Graphics::Direct3D9::D3DVERTEXTYPE, + pub dwFVFControl: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_DRAWONEPRIMITIVEDATA_0 {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_DRAWONEPRIMITIVEDATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DRAWPRIMCOUNTS { + pub wNumStateChanges: u16, + pub wPrimitiveType: u16, + pub wVertexType: u16, + pub wNumVertices: u16, +} +impl ::core::marker::Copy for D3DHAL_DRAWPRIMCOUNTS {} +impl ::core::clone::Clone for D3DHAL_DRAWPRIMCOUNTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub struct D3DHAL_DRAWPRIMITIVES2DATA { + pub dwhContext: usize, + pub dwFlags: u32, + pub dwVertexType: u32, + pub lpDDCommands: *mut super::super::super::Win32::Graphics::DirectDraw::DDRAWI_DDRAWSURFACE_LCL, + pub dwCommandOffset: u32, + pub dwCommandLength: u32, + pub Anonymous1: D3DHAL_DRAWPRIMITIVES2DATA_0, + pub dwVertexOffset: u32, + pub dwVertexLength: u32, + pub dwReqVertexBufSize: u32, + pub dwReqCommandBufSize: u32, + pub lpdwRStates: *mut u32, + pub Anonymous2: D3DHAL_DRAWPRIMITIVES2DATA_1, + pub dwErrorOffset: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_DRAWPRIMITIVES2DATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_DRAWPRIMITIVES2DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub union D3DHAL_DRAWPRIMITIVES2DATA_0 { + pub lpDDVertex: *mut super::super::super::Win32::Graphics::DirectDraw::DDRAWI_DDRAWSURFACE_LCL, + pub lpVertices: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_DRAWPRIMITIVES2DATA_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_DRAWPRIMITIVES2DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub union D3DHAL_DRAWPRIMITIVES2DATA_1 { + pub dwVertexSize: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_DRAWPRIMITIVES2DATA_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_DRAWPRIMITIVES2DATA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_DRAWPRIMITIVESDATA { + pub dwhContext: usize, + pub dwFlags: u32, + pub lpvData: *mut ::core::ffi::c_void, + pub dwFVFControl: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DHAL_DRAWPRIMITIVESDATA {} +impl ::core::clone::Clone for D3DHAL_DRAWPRIMITIVESDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DHAL_GETSTATEDATA { + pub dwhContext: usize, + pub dwWhich: u32, + pub ddState: super::super::super::Win32::Graphics::Direct3D9::D3DSTATE, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DHAL_GETSTATEDATA {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DHAL_GETSTATEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw"))] +pub struct D3DHAL_GLOBALDRIVERDATA { + pub dwSize: u32, + pub hwCaps: D3DDEVICEDESC_V1, + pub dwNumVertices: u32, + pub dwNumClipVertices: u32, + pub dwNumTextureFormats: u32, + pub lpTextureFormats: *mut super::super::super::Win32::Graphics::DirectDraw::DDSURFACEDESC, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DHAL_GLOBALDRIVERDATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DHAL_GLOBALDRIVERDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw"))] +pub struct D3DHAL_RENDERPRIMITIVEDATA { + pub dwhContext: usize, + pub dwOffset: u32, + pub dwStatus: u32, + pub lpExeBuf: super::super::super::Win32::Graphics::DirectDraw::IDirectDrawSurface, + pub dwTLOffset: u32, + pub lpTLBuf: super::super::super::Win32::Graphics::DirectDraw::IDirectDrawSurface, + pub diInstruction: super::super::super::Win32::Graphics::Direct3D9::D3DINSTRUCTION, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(all(feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DHAL_RENDERPRIMITIVEDATA {} +#[cfg(all(feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DHAL_RENDERPRIMITIVEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(feature = "Win32_Graphics_DirectDraw")] +pub struct D3DHAL_RENDERSTATEDATA { + pub dwhContext: usize, + pub dwOffset: u32, + pub dwCount: u32, + pub lpExeBuf: super::super::super::Win32::Graphics::DirectDraw::IDirectDrawSurface, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_Graphics_DirectDraw")] +impl ::core::marker::Copy for D3DHAL_RENDERSTATEDATA {} +#[cfg(feature = "Win32_Graphics_DirectDraw")] +impl ::core::clone::Clone for D3DHAL_RENDERSTATEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_SCENECAPTUREDATA { + pub dwhContext: usize, + pub dwFlag: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DHAL_SCENECAPTUREDATA {} +impl ::core::clone::Clone for D3DHAL_SCENECAPTUREDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub struct D3DHAL_SETRENDERTARGETDATA { + pub dwhContext: usize, + pub Anonymous1: D3DHAL_SETRENDERTARGETDATA_0, + pub Anonymous2: D3DHAL_SETRENDERTARGETDATA_1, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_SETRENDERTARGETDATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_SETRENDERTARGETDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub union D3DHAL_SETRENDERTARGETDATA_0 { + pub lpDDS: super::super::super::Win32::Graphics::DirectDraw::IDirectDrawSurface, + pub lpDDSLcl: *mut super::super::super::Win32::Graphics::DirectDraw::DDRAWI_DDRAWSURFACE_LCL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_SETRENDERTARGETDATA_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_SETRENDERTARGETDATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub union D3DHAL_SETRENDERTARGETDATA_1 { + pub lpDDSZ: super::super::super::Win32::Graphics::DirectDraw::IDirectDrawSurface, + pub lpDDSZLcl: *mut super::super::super::Win32::Graphics::DirectDraw::DDRAWI_DDRAWSURFACE_LCL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DHAL_SETRENDERTARGETDATA_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DHAL_SETRENDERTARGETDATA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(feature = "Win32_Graphics_DirectDraw")] +pub struct D3DHAL_TEXTURECREATEDATA { + pub dwhContext: usize, + pub lpDDS: super::super::super::Win32::Graphics::DirectDraw::IDirectDrawSurface, + pub dwHandle: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_Graphics_DirectDraw")] +impl ::core::marker::Copy for D3DHAL_TEXTURECREATEDATA {} +#[cfg(feature = "Win32_Graphics_DirectDraw")] +impl ::core::clone::Clone for D3DHAL_TEXTURECREATEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_TEXTUREDESTROYDATA { + pub dwhContext: usize, + pub dwHandle: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DHAL_TEXTUREDESTROYDATA {} +impl ::core::clone::Clone for D3DHAL_TEXTUREDESTROYDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_TEXTUREGETSURFDATA { + pub dwhContext: usize, + pub lpDDS: usize, + pub dwHandle: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DHAL_TEXTUREGETSURFDATA {} +impl ::core::clone::Clone for D3DHAL_TEXTUREGETSURFDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_TEXTURESWAPDATA { + pub dwhContext: usize, + pub dwHandle1: u32, + pub dwHandle2: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DHAL_TEXTURESWAPDATA {} +impl ::core::clone::Clone for D3DHAL_TEXTURESWAPDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DHAL_VALIDATETEXTURESTAGESTATEDATA { + pub dwhContext: usize, + pub dwFlags: u32, + pub dwReserved: usize, + pub dwNumPasses: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DHAL_VALIDATETEXTURESTAGESTATEDATA {} +impl ::core::clone::Clone for D3DHAL_VALIDATETEXTURESTAGESTATEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_2DREGION { + pub cx: u32, + pub cy: u32, +} +impl ::core::marker::Copy for D3DKMDT_2DREGION {} +impl ::core::clone::Clone for D3DKMDT_2DREGION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_3x4_COLORSPACE_TRANSFORM { + pub ColorMatrix3x4: [f32; 12], + pub ScalarMultiplier: f32, + pub LookupTable1D: [D3DDDI_DXGI_RGB; 4096], +} +impl ::core::marker::Copy for D3DKMDT_3x4_COLORSPACE_TRANSFORM {} +impl ::core::clone::Clone for D3DKMDT_3x4_COLORSPACE_TRANSFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_COLORSPACE_TRANSFORM_MATRIX_V2 { + pub StageControlLookupTable1DDegamma: D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL, + pub LookupTable1DDegamma: [D3DDDI_DXGI_RGB; 4096], + pub StageControlColorMatrix3x3: D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL, + pub ColorMatrix3x3: [f32; 9], + pub StageControlLookupTable1DRegamma: D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL, + pub LookupTable1DRegamma: [D3DDDI_DXGI_RGB; 4096], +} +impl ::core::marker::Copy for D3DKMDT_COLORSPACE_TRANSFORM_MATRIX_V2 {} +impl ::core::clone::Clone for D3DKMDT_COLORSPACE_TRANSFORM_MATRIX_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_COLOR_COEFF_DYNAMIC_RANGES { + pub FirstChannel: u32, + pub SecondChannel: u32, + pub ThirdChannel: u32, + pub FourthChannel: u32, +} +impl ::core::marker::Copy for D3DKMDT_COLOR_COEFF_DYNAMIC_RANGES {} +impl ::core::clone::Clone for D3DKMDT_COLOR_COEFF_DYNAMIC_RANGES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_DISPLAYMODE_FLAGS { + pub _bitfield1: u32, + pub _bitfield2: u32, +} +impl ::core::marker::Copy for D3DKMDT_DISPLAYMODE_FLAGS {} +impl ::core::clone::Clone for D3DKMDT_DISPLAYMODE_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_FREQUENCY_RANGE { + pub MinVSyncFreq: D3DDDI_RATIONAL, + pub MaxVSyncFreq: D3DDDI_RATIONAL, + pub MinHSyncFreq: D3DDDI_RATIONAL, + pub MaxHSyncFreq: D3DDDI_RATIONAL, +} +impl ::core::marker::Copy for D3DKMDT_FREQUENCY_RANGE {} +impl ::core::clone::Clone for D3DKMDT_FREQUENCY_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_GAMMA_RAMP { + pub Type: D3DDDI_GAMMARAMP_TYPE, + pub DataSize: usize, + pub Data: D3DKMDT_GAMMA_RAMP_0, +} +impl ::core::marker::Copy for D3DKMDT_GAMMA_RAMP {} +impl ::core::clone::Clone for D3DKMDT_GAMMA_RAMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMDT_GAMMA_RAMP_0 { + pub pRgb256x3x16: *mut D3DDDI_GAMMA_RAMP_RGB256x3x16, + pub pDxgi1: *mut D3DDDI_GAMMA_RAMP_DXGI_1, + pub p3x4: *mut D3DKMDT_3x4_COLORSPACE_TRANSFORM, + pub pMatrixV2: *mut D3DKMDT_COLORSPACE_TRANSFORM_MATRIX_V2, + pub pRaw: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for D3DKMDT_GAMMA_RAMP_0 {} +impl ::core::clone::Clone for D3DKMDT_GAMMA_RAMP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_GDISURFACEDATA { + pub Width: u32, + pub Height: u32, + pub Format: D3DDDIFORMAT, + pub Type: D3DKMDT_GDISURFACETYPE, + pub Flags: D3DKMDT_GDISURFACEFLAGS, + pub Pitch: u32, +} +impl ::core::marker::Copy for D3DKMDT_GDISURFACEDATA {} +impl ::core::clone::Clone for D3DKMDT_GDISURFACEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_GDISURFACEFLAGS { + pub Anonymous: D3DKMDT_GDISURFACEFLAGS_0, +} +impl ::core::marker::Copy for D3DKMDT_GDISURFACEFLAGS {} +impl ::core::clone::Clone for D3DKMDT_GDISURFACEFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMDT_GDISURFACEFLAGS_0 { + pub Anonymous: D3DKMDT_GDISURFACEFLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMDT_GDISURFACEFLAGS_0 {} +impl ::core::clone::Clone for D3DKMDT_GDISURFACEFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_GDISURFACEFLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMDT_GDISURFACEFLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMDT_GDISURFACEFLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_GRAPHICS_RENDERING_FORMAT { + pub PrimSurfSize: D3DKMDT_2DREGION, + pub VisibleRegionSize: D3DKMDT_2DREGION, + pub Stride: u32, + pub PixelFormat: D3DDDIFORMAT, + pub ColorBasis: D3DKMDT_COLOR_BASIS, + pub PixelValueAccessMode: D3DKMDT_PIXEL_VALUE_ACCESS_MODE, +} +impl ::core::marker::Copy for D3DKMDT_GRAPHICS_RENDERING_FORMAT {} +impl ::core::clone::Clone for D3DKMDT_GRAPHICS_RENDERING_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_MONITOR_DESCRIPTOR { + pub Id: u32, + pub Type: D3DKMDT_MONITOR_DESCRIPTOR_TYPE, + pub DataSize: usize, + pub pData: *mut ::core::ffi::c_void, + pub Origin: D3DKMDT_MONITOR_CAPABILITIES_ORIGIN, +} +impl ::core::marker::Copy for D3DKMDT_MONITOR_DESCRIPTOR {} +impl ::core::clone::Clone for D3DKMDT_MONITOR_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_MONITOR_FREQUENCY_RANGE { + pub Origin: D3DKMDT_MONITOR_CAPABILITIES_ORIGIN, + pub RangeLimits: D3DKMDT_FREQUENCY_RANGE, + pub ConstraintType: D3DKMDT_MONITOR_FREQUENCY_RANGE_CONSTRAINT, + pub Constraint: D3DKMDT_MONITOR_FREQUENCY_RANGE_0, +} +impl ::core::marker::Copy for D3DKMDT_MONITOR_FREQUENCY_RANGE {} +impl ::core::clone::Clone for D3DKMDT_MONITOR_FREQUENCY_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMDT_MONITOR_FREQUENCY_RANGE_0 { + pub ActiveSize: D3DKMDT_2DREGION, + pub MaxPixelRate: usize, +} +impl ::core::marker::Copy for D3DKMDT_MONITOR_FREQUENCY_RANGE_0 {} +impl ::core::clone::Clone for D3DKMDT_MONITOR_FREQUENCY_RANGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_MONITOR_SOURCE_MODE { + pub Id: u32, + pub VideoSignalInfo: D3DKMDT_VIDEO_SIGNAL_INFO, + pub ColorBasis: D3DKMDT_COLOR_BASIS, + pub ColorCoeffDynamicRanges: D3DKMDT_COLOR_COEFF_DYNAMIC_RANGES, + pub Origin: D3DKMDT_MONITOR_CAPABILITIES_ORIGIN, + pub Preference: D3DKMDT_MODE_PREFERENCE, +} +impl ::core::marker::Copy for D3DKMDT_MONITOR_SOURCE_MODE {} +impl ::core::clone::Clone for D3DKMDT_MONITOR_SOURCE_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_PALETTEDATA { + pub Red: u8, + pub Green: u8, + pub Blue: u8, + pub Unused: u8, +} +impl ::core::marker::Copy for D3DKMDT_PALETTEDATA {} +impl ::core::clone::Clone for D3DKMDT_PALETTEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_PREEMPTION_CAPS { + pub GraphicsPreemptionGranularity: D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY, + pub ComputePreemptionGranularity: D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY, +} +impl ::core::marker::Copy for D3DKMDT_PREEMPTION_CAPS {} +impl ::core::clone::Clone for D3DKMDT_PREEMPTION_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_SHADOWSURFACEDATA { + pub Width: u32, + pub Height: u32, + pub Format: D3DDDIFORMAT, + pub Pitch: u32, +} +impl ::core::marker::Copy for D3DKMDT_SHADOWSURFACEDATA {} +impl ::core::clone::Clone for D3DKMDT_SHADOWSURFACEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_SHAREDPRIMARYSURFACEDATA { + pub Width: u32, + pub Height: u32, + pub Format: D3DDDIFORMAT, + pub RefreshRate: D3DDDI_RATIONAL, + pub VidPnSourceId: u32, +} +impl ::core::marker::Copy for D3DKMDT_SHAREDPRIMARYSURFACEDATA {} +impl ::core::clone::Clone for D3DKMDT_SHAREDPRIMARYSURFACEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_STAGINGSURFACEDATA { + pub Width: u32, + pub Height: u32, + pub Pitch: u32, +} +impl ::core::marker::Copy for D3DKMDT_STAGINGSURFACEDATA {} +impl ::core::clone::Clone for D3DKMDT_STAGINGSURFACEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIDEO_PRESENT_SOURCE { + pub Id: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for D3DKMDT_VIDEO_PRESENT_SOURCE {} +impl ::core::clone::Clone for D3DKMDT_VIDEO_PRESENT_SOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMDT_VIDEO_PRESENT_TARGET { + pub Id: u32, + pub VideoOutputTechnology: D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY, + pub VideoOutputHpdAwareness: DXGK_CHILD_DEVICE_HPD_AWARENESS, + pub MonitorOrientationAwareness: D3DKMDT_MONITOR_ORIENTATION_AWARENESS, + pub SupportsSdtvModes: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMDT_VIDEO_PRESENT_TARGET {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMDT_VIDEO_PRESENT_TARGET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIDEO_SIGNAL_INFO { + pub VideoStandard: D3DKMDT_VIDEO_SIGNAL_STANDARD, + pub TotalSize: D3DKMDT_2DREGION, + pub ActiveSize: D3DKMDT_2DREGION, + pub VSyncFreq: D3DDDI_RATIONAL, + pub HSyncFreq: D3DDDI_RATIONAL, + pub PixelRate: usize, + pub Anonymous: D3DKMDT_VIDEO_SIGNAL_INFO_0, +} +impl ::core::marker::Copy for D3DKMDT_VIDEO_SIGNAL_INFO {} +impl ::core::clone::Clone for D3DKMDT_VIDEO_SIGNAL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMDT_VIDEO_SIGNAL_INFO_0 { + pub AdditionalSignalInfo: D3DKMDT_VIDEO_SIGNAL_INFO_0_0, + pub ScanLineOrdering: D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING, +} +impl ::core::marker::Copy for D3DKMDT_VIDEO_SIGNAL_INFO_0 {} +impl ::core::clone::Clone for D3DKMDT_VIDEO_SIGNAL_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIDEO_SIGNAL_INFO_0_0 { + pub _bitfield: i32, +} +impl ::core::marker::Copy for D3DKMDT_VIDEO_SIGNAL_INFO_0_0 {} +impl ::core::clone::Clone for D3DKMDT_VIDEO_SIGNAL_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIDPN_HW_CAPABILITY { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMDT_VIDPN_HW_CAPABILITY {} +impl ::core::clone::Clone for D3DKMDT_VIDPN_HW_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIDPN_PRESENT_PATH { + pub VidPnSourceId: u32, + pub VidPnTargetId: u32, + pub ImportanceOrdinal: D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE, + pub ContentTransformation: D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION, + pub VisibleFromActiveTLOffset: D3DKMDT_2DREGION, + pub VisibleFromActiveBROffset: D3DKMDT_2DREGION, + pub VidPnTargetColorBasis: D3DKMDT_COLOR_BASIS, + pub VidPnTargetColorCoeffDynamicRanges: D3DKMDT_COLOR_COEFF_DYNAMIC_RANGES, + pub Content: D3DKMDT_VIDPN_PRESENT_PATH_CONTENT, + pub CopyProtection: D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION, + pub GammaRamp: D3DKMDT_GAMMA_RAMP, +} +impl ::core::marker::Copy for D3DKMDT_VIDPN_PRESENT_PATH {} +impl ::core::clone::Clone for D3DKMDT_VIDPN_PRESENT_PATH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION { + pub CopyProtectionType: D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_TYPE, + pub APSTriggerBits: u32, + pub OEMCopyProtection: [u8; 256], + pub CopyProtectionSupport: D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_SUPPORT, +} +impl ::core::marker::Copy for D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION {} +impl ::core::clone::Clone for D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_SUPPORT { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_SUPPORT {} +impl ::core::clone::Clone for D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT {} +impl ::core::clone::Clone for D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT {} +impl ::core::clone::Clone for D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION { + pub Scaling: D3DKMDT_VIDPN_PRESENT_PATH_SCALING, + pub ScalingSupport: D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT, + pub Rotation: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION, + pub RotationSupport: D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT, +} +impl ::core::marker::Copy for D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION {} +impl ::core::clone::Clone for D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIDPN_SOURCE_MODE { + pub Id: u32, + pub Type: D3DKMDT_VIDPN_SOURCE_MODE_TYPE, + pub Format: D3DKMDT_VIDPN_SOURCE_MODE_0, +} +impl ::core::marker::Copy for D3DKMDT_VIDPN_SOURCE_MODE {} +impl ::core::clone::Clone for D3DKMDT_VIDPN_SOURCE_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMDT_VIDPN_SOURCE_MODE_0 { + pub Graphics: D3DKMDT_GRAPHICS_RENDERING_FORMAT, + pub Text: D3DKMDT_TEXT_RENDERING_FORMAT, +} +impl ::core::marker::Copy for D3DKMDT_VIDPN_SOURCE_MODE_0 {} +impl ::core::clone::Clone for D3DKMDT_VIDPN_SOURCE_MODE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIDPN_TARGET_MODE { + pub Id: u32, + pub VideoSignalInfo: D3DKMDT_VIDEO_SIGNAL_INFO, + pub Anonymous: D3DKMDT_VIDPN_TARGET_MODE_0, + pub MinimumVSyncFreq: D3DDDI_RATIONAL, +} +impl ::core::marker::Copy for D3DKMDT_VIDPN_TARGET_MODE {} +impl ::core::clone::Clone for D3DKMDT_VIDPN_TARGET_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMDT_VIDPN_TARGET_MODE_0 { + pub WireFormatAndPreference: D3DKMDT_WIRE_FORMAT_AND_PREFERENCE, + pub Anonymous: D3DKMDT_VIDPN_TARGET_MODE_0_0, +} +impl ::core::marker::Copy for D3DKMDT_VIDPN_TARGET_MODE_0 {} +impl ::core::clone::Clone for D3DKMDT_VIDPN_TARGET_MODE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIDPN_TARGET_MODE_0_0 { + pub _bitfield: i32, +} +impl ::core::marker::Copy for D3DKMDT_VIDPN_TARGET_MODE_0_0 {} +impl ::core::clone::Clone for D3DKMDT_VIDPN_TARGET_MODE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_VIRTUALGPUSURFACEDATA { + pub Size: u64, + pub Alignment: u32, + pub DriverSegmentId: u32, + pub PrivateDriverData: u32, +} +impl ::core::marker::Copy for D3DKMDT_VIRTUALGPUSURFACEDATA {} +impl ::core::clone::Clone for D3DKMDT_VIRTUALGPUSURFACEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMDT_WIRE_FORMAT_AND_PREFERENCE { + pub Anonymous: D3DKMDT_WIRE_FORMAT_AND_PREFERENCE_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMDT_WIRE_FORMAT_AND_PREFERENCE {} +impl ::core::clone::Clone for D3DKMDT_WIRE_FORMAT_AND_PREFERENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMDT_WIRE_FORMAT_AND_PREFERENCE_0 { + pub _bitfield: i32, +} +impl ::core::marker::Copy for D3DKMDT_WIRE_FORMAT_AND_PREFERENCE_0 {} +impl ::core::clone::Clone for D3DKMDT_WIRE_FORMAT_AND_PREFERENCE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ACQUIREKEYEDMUTEX { + pub hKeyedMutex: u32, + pub Key: u64, + pub pTimeout: *mut i64, + pub FenceValue: u64, +} +impl ::core::marker::Copy for D3DKMT_ACQUIREKEYEDMUTEX {} +impl ::core::clone::Clone for D3DKMT_ACQUIREKEYEDMUTEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ACQUIREKEYEDMUTEX2 { + pub hKeyedMutex: u32, + pub Key: u64, + pub pTimeout: *mut i64, + pub FenceValue: u64, + pub pPrivateRuntimeData: *mut ::core::ffi::c_void, + pub PrivateRuntimeDataSize: u32, +} +impl ::core::marker::Copy for D3DKMT_ACQUIREKEYEDMUTEX2 {} +impl ::core::clone::Clone for D3DKMT_ACQUIREKEYEDMUTEX2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_ACTIVATE_SPECIFIC_DIAG_ESCAPE { + pub Type: D3DKMT_ACTIVATE_SPECIFIC_DIAG_TYPE, + pub Activate: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_ACTIVATE_SPECIFIC_DIAG_ESCAPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_ACTIVATE_SPECIFIC_DIAG_ESCAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ADAPTERADDRESS { + pub BusNumber: u32, + pub DeviceNumber: u32, + pub FunctionNumber: u32, +} +impl ::core::marker::Copy for D3DKMT_ADAPTERADDRESS {} +impl ::core::clone::Clone for D3DKMT_ADAPTERADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_ADAPTERINFO { + pub hAdapter: u32, + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub NumOfSources: u32, + pub bPrecisePresentRegionsPreferred: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_ADAPTERINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_ADAPTERINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ADAPTERREGISTRYINFO { + pub AdapterString: [u16; 260], + pub BiosString: [u16; 260], + pub DacType: [u16; 260], + pub ChipType: [u16; 260], +} +impl ::core::marker::Copy for D3DKMT_ADAPTERREGISTRYINFO {} +impl ::core::clone::Clone for D3DKMT_ADAPTERREGISTRYINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ADAPTERTYPE { + pub Anonymous: D3DKMT_ADAPTERTYPE_0, +} +impl ::core::marker::Copy for D3DKMT_ADAPTERTYPE {} +impl ::core::clone::Clone for D3DKMT_ADAPTERTYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_ADAPTERTYPE_0 { + pub Anonymous: D3DKMT_ADAPTERTYPE_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_ADAPTERTYPE_0 {} +impl ::core::clone::Clone for D3DKMT_ADAPTERTYPE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ADAPTERTYPE_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_ADAPTERTYPE_0_0 {} +impl ::core::clone::Clone for D3DKMT_ADAPTERTYPE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ADAPTER_PERFDATA { + pub PhysicalAdapterIndex: u32, + pub MemoryFrequency: u64, + pub MaxMemoryFrequency: u64, + pub MaxMemoryFrequencyOC: u64, + pub MemoryBandwidth: u64, + pub PCIEBandwidth: u64, + pub FanRPM: u32, + pub Power: u32, + pub Temperature: u32, + pub PowerStateOverride: u8, +} +impl ::core::marker::Copy for D3DKMT_ADAPTER_PERFDATA {} +impl ::core::clone::Clone for D3DKMT_ADAPTER_PERFDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ADAPTER_PERFDATACAPS { + pub PhysicalAdapterIndex: u32, + pub MaxMemoryBandwidth: u64, + pub MaxPCIEBandwidth: u64, + pub MaxFanRPM: u32, + pub TemperatureMax: u32, + pub TemperatureWarning: u32, +} +impl ::core::marker::Copy for D3DKMT_ADAPTER_PERFDATACAPS {} +impl ::core::clone::Clone for D3DKMT_ADAPTER_PERFDATACAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ADAPTER_VERIFIER_OPTION { + pub Type: D3DKMT_ADAPTER_VERIFIER_OPTION_TYPE, + pub Mode: D3DKMT_VERIFIER_OPTION_MODE, + pub Data: D3DKMT_ADAPTER_VERIFIER_OPTION_DATA, +} +impl ::core::marker::Copy for D3DKMT_ADAPTER_VERIFIER_OPTION {} +impl ::core::clone::Clone for D3DKMT_ADAPTER_VERIFIER_OPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_ADAPTER_VERIFIER_OPTION_DATA { + pub VidMmFlags: D3DKMT_ADAPTER_VERIFIER_VIDMM_FLAGS, + pub VidMmTrimInterval: D3DKMT_ADAPTER_VERIFIER_VIDMM_TRIM_INTERVAL, +} +impl ::core::marker::Copy for D3DKMT_ADAPTER_VERIFIER_OPTION_DATA {} +impl ::core::clone::Clone for D3DKMT_ADAPTER_VERIFIER_OPTION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_ADAPTER_VERIFIER_VIDMM_FLAGS { + pub Anonymous: D3DKMT_ADAPTER_VERIFIER_VIDMM_FLAGS_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_ADAPTER_VERIFIER_VIDMM_FLAGS {} +impl ::core::clone::Clone for D3DKMT_ADAPTER_VERIFIER_VIDMM_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ADAPTER_VERIFIER_VIDMM_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_ADAPTER_VERIFIER_VIDMM_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_ADAPTER_VERIFIER_VIDMM_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ADAPTER_VERIFIER_VIDMM_TRIM_INTERVAL { + pub MinimumTrimInterval: u64, + pub MaximumTrimInterval: u64, + pub IdleTrimInterval: u64, +} +impl ::core::marker::Copy for D3DKMT_ADAPTER_VERIFIER_VIDMM_TRIM_INTERVAL {} +impl ::core::clone::Clone for D3DKMT_ADAPTER_VERIFIER_VIDMM_TRIM_INTERVAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ADJUSTFULLSCREENGAMMA { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub Scale: D3DDDI_DXGI_RGB, + pub Offset: D3DDDI_DXGI_RGB, +} +impl ::core::marker::Copy for D3DKMT_ADJUSTFULLSCREENGAMMA {} +impl ::core::clone::Clone for D3DKMT_ADJUSTFULLSCREENGAMMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_AUXILIARYPRESENTINFO { + pub size: u32, + pub r#type: D3DKMT_AUXILIARYPRESENTINFO_TYPE, +} +impl ::core::marker::Copy for D3DKMT_AUXILIARYPRESENTINFO {} +impl ::core::clone::Clone for D3DKMT_AUXILIARYPRESENTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_BDDFALLBACK_CTL { + pub ForceBddHeadlessNextFallback: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_BDDFALLBACK_CTL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_BDDFALLBACK_CTL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_BLOCKLIST_INFO { + pub Size: u32, + pub BlockList: [u16; 1], +} +impl ::core::marker::Copy for D3DKMT_BLOCKLIST_INFO {} +impl ::core::clone::Clone for D3DKMT_BLOCKLIST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_BLTMODEL_PRESENTHISTORYTOKEN { + pub hLogicalSurface: u64, + pub hPhysicalSurface: u64, + pub EventId: u64, + pub DirtyRegions: D3DKMT_DIRTYREGIONS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_BLTMODEL_PRESENTHISTORYTOKEN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_BLTMODEL_PRESENTHISTORYTOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_BRIGHTNESS_INFO { + pub Type: D3DKMT_BRIGHTNESS_INFO_TYPE, + pub ChildUid: u32, + pub Anonymous: D3DKMT_BRIGHTNESS_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_BRIGHTNESS_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_BRIGHTNESS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_BRIGHTNESS_INFO_0 { + pub PossibleLevels: D3DKMT_BRIGHTNESS_POSSIBLE_LEVELS, + pub Brightness: u8, + pub BrightnessCaps: DXGK_BRIGHTNESS_CAPS, + pub BrightnessState: DXGK_BRIGHTNESS_STATE, + pub OptimizationLevel: DXGK_BACKLIGHT_OPTIMIZATION_LEVEL, + pub ReductionInfo: DXGK_BACKLIGHT_INFO, + pub VerboseLogging: super::super::super::Win32::Foundation::BOOLEAN, + pub NitRanges: DXGK_BRIGHTNESS_GET_NIT_RANGES_OUT, + pub GetBrightnessMillinits: DXGK_BRIGHTNESS_GET_OUT, + pub SetBrightnessMillinits: DXGK_BRIGHTNESS_SET_IN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_BRIGHTNESS_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_BRIGHTNESS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_BRIGHTNESS_POSSIBLE_LEVELS { + pub LevelCount: u8, + pub BrightnessLevels: [u8; 256], +} +impl ::core::marker::Copy for D3DKMT_BRIGHTNESS_POSSIBLE_LEVELS {} +impl ::core::clone::Clone for D3DKMT_BRIGHTNESS_POSSIBLE_LEVELS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_BUDGETCHANGENOTIFICATION { + pub Context: *mut ::core::ffi::c_void, + pub Budget: u64, +} +impl ::core::marker::Copy for D3DKMT_BUDGETCHANGENOTIFICATION {} +impl ::core::clone::Clone for D3DKMT_BUDGETCHANGENOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CANCEL_PRESENTS { + pub cbSize: u32, + pub hDevice: u32, + pub Flags: D3DKMT_CANCEL_PRESENTS_FLAGS, + pub Operation: D3DKMT_CANCEL_PRESENTS_OPERATION, + pub CancelFromPresentId: u64, + pub CompSurfaceLuid: super::super::super::Win32::Foundation::LUID, + pub BindId: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CANCEL_PRESENTS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CANCEL_PRESENTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CANCEL_PRESENTS_FLAGS { + pub Anonymous: D3DKMT_CANCEL_PRESENTS_FLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_CANCEL_PRESENTS_FLAGS {} +impl ::core::clone::Clone for D3DKMT_CANCEL_PRESENTS_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_CANCEL_PRESENTS_FLAGS_0 { + pub ReprogramInterrupt: D3DKMT_CANCEL_PRESENTS_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_CANCEL_PRESENTS_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_CANCEL_PRESENTS_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CANCEL_PRESENTS_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_CANCEL_PRESENTS_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_CANCEL_PRESENTS_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct D3DKMT_CHANGESURFACEPOINTER { + pub hDC: super::super::super::Win32::Graphics::Gdi::HDC, + pub hBitmap: super::super::super::Win32::Foundation::HANDLE, + pub pSurfacePointer: *mut ::core::ffi::c_void, + pub Width: u32, + pub Height: u32, + pub Pitch: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DKMT_CHANGESURFACEPOINTER {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DKMT_CHANGESURFACEPOINTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CHANGEVIDEOMEMORYRESERVATION { + pub hProcess: super::super::super::Win32::Foundation::HANDLE, + pub hAdapter: u32, + pub MemorySegmentGroup: D3DKMT_MEMORY_SEGMENT_GROUP, + pub Reservation: u64, + pub PhysicalAdapterIndex: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CHANGEVIDEOMEMORYRESERVATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CHANGEVIDEOMEMORYRESERVATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CHECKMONITORPOWERSTATE { + pub hAdapter: u32, + pub VidPnSourceId: u32, +} +impl ::core::marker::Copy for D3DKMT_CHECKMONITORPOWERSTATE {} +impl ::core::clone::Clone for D3DKMT_CHECKMONITORPOWERSTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT { + pub hDevice: u32, + pub PlaneCount: u32, + pub pOverlayPlanes: *mut D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE, + pub Supported: super::super::super::Win32::Foundation::BOOL, + pub ReturnInfo: D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT2 { + pub hAdapter: u32, + pub hDevice: u32, + pub PlaneCount: u32, + pub pOverlayPlanes: *mut D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE2, + pub Supported: super::super::super::Win32::Foundation::BOOL, + pub ReturnInfo: D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT3 { + pub hAdapter: u32, + pub hDevice: u32, + pub PlaneCount: u32, + pub ppOverlayPlanes: *mut *mut D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE3, + pub PostCompositionCount: u32, + pub ppPostComposition: *mut *mut D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_WITH_SOURCE, + pub Supported: super::super::super::Win32::Foundation::BOOL, + pub ReturnInfo: D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CHECKOCCLUSION { + pub hWindow: super::super::super::Win32::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CHECKOCCLUSION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CHECKOCCLUSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CHECKSHAREDRESOURCEACCESS { + pub hResource: u32, + pub ClientPid: u32, +} +impl ::core::marker::Copy for D3DKMT_CHECKSHAREDRESOURCEACCESS {} +impl ::core::clone::Clone for D3DKMT_CHECKSHAREDRESOURCEACCESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP { + pub hAdapter: u32, + pub VidPnSourceId: u32, +} +impl ::core::marker::Copy for D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP {} +impl ::core::clone::Clone for D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE { + pub hResource: u32, + pub CompSurfaceLuid: super::super::super::Win32::Foundation::LUID, + pub VidPnSourceId: u32, + pub PlaneAttributes: D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE2 { + pub LayerIndex: u32, + pub hResource: u32, + pub CompSurfaceLuid: super::super::super::Win32::Foundation::LUID, + pub VidPnSourceId: u32, + pub PlaneAttributes: D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE3 { + pub LayerIndex: u32, + pub hResource: u32, + pub CompSurfaceLuid: super::super::super::Win32::Foundation::LUID, + pub VidPnSourceId: u32, + pub pPlaneAttributes: *mut D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES3, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO { + pub Anonymous: D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO_0, +} +impl ::core::marker::Copy for D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO {} +impl ::core::clone::Clone for D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO_0 { + pub Anonymous: D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO_0 {} +impl ::core::clone::Clone for D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO_0_0 {} +impl ::core::clone::Clone for D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CLOSEADAPTER { + pub hAdapter: u32, +} +impl ::core::marker::Copy for D3DKMT_CLOSEADAPTER {} +impl ::core::clone::Clone for D3DKMT_CLOSEADAPTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_COMPOSITION_PRESENTHISTORYTOKEN { + pub hPrivateData: u64, +} +impl ::core::marker::Copy for D3DKMT_COMPOSITION_PRESENTHISTORYTOKEN {} +impl ::core::clone::Clone for D3DKMT_COMPOSITION_PRESENTHISTORYTOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CONFIGURESHAREDRESOURCE { + pub hDevice: u32, + pub hResource: u32, + pub IsDwm: super::super::super::Win32::Foundation::BOOLEAN, + pub hProcess: super::super::super::Win32::Foundation::HANDLE, + pub AllowAccess: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CONFIGURESHAREDRESOURCE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CONFIGURESHAREDRESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CONNECT_DOORBELL { + pub hHwQueue: u32, + pub Flags: D3DKMT_CONNECT_DOORBELL_FLAGS, +} +impl ::core::marker::Copy for D3DKMT_CONNECT_DOORBELL {} +impl ::core::clone::Clone for D3DKMT_CONNECT_DOORBELL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CONNECT_DOORBELL_FLAGS { + pub Anonymous: D3DKMT_CONNECT_DOORBELL_FLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_CONNECT_DOORBELL_FLAGS {} +impl ::core::clone::Clone for D3DKMT_CONNECT_DOORBELL_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_CONNECT_DOORBELL_FLAGS_0 { + pub Anonymous: D3DKMT_CONNECT_DOORBELL_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_CONNECT_DOORBELL_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_CONNECT_DOORBELL_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CONNECT_DOORBELL_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_CONNECT_DOORBELL_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_CONNECT_DOORBELL_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CPDRIVERNAME { + pub ContentProtectionFileName: [u16; 260], +} +impl ::core::marker::Copy for D3DKMT_CPDRIVERNAME {} +impl ::core::clone::Clone for D3DKMT_CPDRIVERNAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CREATEALLOCATION { + pub hDevice: u32, + pub hResource: u32, + pub hGlobalShare: u32, + pub pPrivateRuntimeData: *const ::core::ffi::c_void, + pub PrivateRuntimeDataSize: u32, + pub Anonymous1: D3DKMT_CREATEALLOCATION_0, + pub PrivateDriverDataSize: u32, + pub NumAllocations: u32, + pub Anonymous2: D3DKMT_CREATEALLOCATION_1, + pub Flags: D3DKMT_CREATEALLOCATIONFLAGS, + pub hPrivateRuntimeResourceHandle: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CREATEALLOCATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CREATEALLOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_CREATEALLOCATION_0 { + pub pStandardAllocation: *mut D3DKMT_CREATESTANDARDALLOCATION, + pub pPrivateDriverData: *const ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CREATEALLOCATION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CREATEALLOCATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_CREATEALLOCATION_1 { + pub pAllocationInfo: *mut D3DDDI_ALLOCATIONINFO, + pub pAllocationInfo2: *mut D3DDDI_ALLOCATIONINFO2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CREATEALLOCATION_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CREATEALLOCATION_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATEALLOCATIONFLAGS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATEALLOCATIONFLAGS {} +impl ::core::clone::Clone for D3DKMT_CREATEALLOCATIONFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATECONTEXT { + pub hDevice: u32, + pub NodeOrdinal: u32, + pub EngineAffinity: u32, + pub Flags: D3DDDI_CREATECONTEXTFLAGS, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, + pub ClientHint: D3DKMT_CLIENTHINT, + pub hContext: u32, + pub pCommandBuffer: *mut ::core::ffi::c_void, + pub CommandBufferSize: u32, + pub pAllocationList: *mut D3DDDI_ALLOCATIONLIST, + pub AllocationListSize: u32, + pub pPatchLocationList: *mut D3DDDI_PATCHLOCATIONLIST, + pub PatchLocationListSize: u32, + pub CommandBuffer: u64, +} +impl ::core::marker::Copy for D3DKMT_CREATECONTEXT {} +impl ::core::clone::Clone for D3DKMT_CREATECONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATECONTEXTVIRTUAL { + pub hDevice: u32, + pub NodeOrdinal: u32, + pub EngineAffinity: u32, + pub Flags: D3DDDI_CREATECONTEXTFLAGS, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, + pub ClientHint: D3DKMT_CLIENTHINT, + pub hContext: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATECONTEXTVIRTUAL {} +impl ::core::clone::Clone for D3DKMT_CREATECONTEXTVIRTUAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct D3DKMT_CREATEDCFROMMEMORY { + pub pMemory: *mut ::core::ffi::c_void, + pub Format: D3DDDIFORMAT, + pub Width: u32, + pub Height: u32, + pub Pitch: u32, + pub hDeviceDc: super::super::super::Win32::Graphics::Gdi::HDC, + pub pColorTable: *mut super::super::super::Win32::Graphics::Gdi::PALETTEENTRY, + pub hDc: super::super::super::Win32::Graphics::Gdi::HDC, + pub hBitmap: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DKMT_CREATEDCFROMMEMORY {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DKMT_CREATEDCFROMMEMORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATEDEVICE { + pub Anonymous: D3DKMT_CREATEDEVICE_0, + pub Flags: D3DKMT_CREATEDEVICEFLAGS, + pub hDevice: u32, + pub pCommandBuffer: *mut ::core::ffi::c_void, + pub CommandBufferSize: u32, + pub pAllocationList: *mut D3DDDI_ALLOCATIONLIST, + pub AllocationListSize: u32, + pub pPatchLocationList: *mut D3DDDI_PATCHLOCATIONLIST, + pub PatchLocationListSize: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATEDEVICE {} +impl ::core::clone::Clone for D3DKMT_CREATEDEVICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_CREATEDEVICE_0 { + pub hAdapter: u32, + pub pAdapter: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for D3DKMT_CREATEDEVICE_0 {} +impl ::core::clone::Clone for D3DKMT_CREATEDEVICE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATEDEVICEFLAGS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATEDEVICEFLAGS {} +impl ::core::clone::Clone for D3DKMT_CREATEDEVICEFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATEHWCONTEXT { + pub hDevice: u32, + pub NodeOrdinal: u32, + pub EngineAffinity: u32, + pub Flags: D3DDDI_CREATEHWCONTEXTFLAGS, + pub PrivateDriverDataSize: u32, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub hHwContext: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATEHWCONTEXT {} +impl ::core::clone::Clone for D3DKMT_CREATEHWCONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATEHWQUEUE { + pub hHwContext: u32, + pub Flags: D3DDDI_CREATEHWQUEUEFLAGS, + pub PrivateDriverDataSize: u32, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub hHwQueue: u32, + pub hHwQueueProgressFence: u32, + pub HwQueueProgressFenceCPUVirtualAddress: *mut ::core::ffi::c_void, + pub HwQueueProgressFenceGPUVirtualAddress: u64, +} +impl ::core::marker::Copy for D3DKMT_CREATEHWQUEUE {} +impl ::core::clone::Clone for D3DKMT_CREATEHWQUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATEKEYEDMUTEX { + pub InitialValue: u64, + pub hSharedHandle: u32, + pub hKeyedMutex: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATEKEYEDMUTEX {} +impl ::core::clone::Clone for D3DKMT_CREATEKEYEDMUTEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATEKEYEDMUTEX2 { + pub InitialValue: u64, + pub hSharedHandle: u32, + pub hKeyedMutex: u32, + pub pPrivateRuntimeData: *mut ::core::ffi::c_void, + pub PrivateRuntimeDataSize: u32, + pub Flags: D3DKMT_CREATEKEYEDMUTEX2_FLAGS, +} +impl ::core::marker::Copy for D3DKMT_CREATEKEYEDMUTEX2 {} +impl ::core::clone::Clone for D3DKMT_CREATEKEYEDMUTEX2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATEKEYEDMUTEX2_FLAGS { + pub Anonymous: D3DKMT_CREATEKEYEDMUTEX2_FLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_CREATEKEYEDMUTEX2_FLAGS {} +impl ::core::clone::Clone for D3DKMT_CREATEKEYEDMUTEX2_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_CREATEKEYEDMUTEX2_FLAGS_0 { + pub Anonymous: D3DKMT_CREATEKEYEDMUTEX2_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATEKEYEDMUTEX2_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_CREATEKEYEDMUTEX2_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATEKEYEDMUTEX2_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATEKEYEDMUTEX2_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_CREATEKEYEDMUTEX2_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATENATIVEFENCE { + pub hDevice: u32, + pub Info: D3DDDI_CREATENATIVEFENCEINFO, +} +impl ::core::marker::Copy for D3DKMT_CREATENATIVEFENCE {} +impl ::core::clone::Clone for D3DKMT_CREATENATIVEFENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATEOVERLAY { + pub VidPnSourceId: u32, + pub hDevice: u32, + pub OverlayInfo: D3DDDI_KERNELOVERLAYINFO, + pub hOverlay: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATEOVERLAY {} +impl ::core::clone::Clone for D3DKMT_CREATEOVERLAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATEPAGINGQUEUE { + pub hDevice: u32, + pub Priority: D3DDDI_PAGINGQUEUE_PRIORITY, + pub hPagingQueue: u32, + pub hSyncObject: u32, + pub FenceValueCPUVirtualAddress: *mut ::core::ffi::c_void, + pub PhysicalAdapterIndex: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATEPAGINGQUEUE {} +impl ::core::clone::Clone for D3DKMT_CREATEPAGINGQUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATEPROTECTEDSESSION { + pub hDevice: u32, + pub hSyncObject: u32, + pub pPrivateDriverData: *const ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, + pub pPrivateRuntimeData: *const ::core::ffi::c_void, + pub PrivateRuntimeDataSize: u32, + pub hHandle: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATEPROTECTEDSESSION {} +impl ::core::clone::Clone for D3DKMT_CREATEPROTECTEDSESSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATESTANDARDALLOCATION { + pub Type: D3DKMT_STANDARDALLOCATIONTYPE, + pub Anonymous: D3DKMT_CREATESTANDARDALLOCATION_0, + pub Flags: D3DKMT_CREATESTANDARDALLOCATIONFLAGS, +} +impl ::core::marker::Copy for D3DKMT_CREATESTANDARDALLOCATION {} +impl ::core::clone::Clone for D3DKMT_CREATESTANDARDALLOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_CREATESTANDARDALLOCATION_0 { + pub ExistingHeapData: D3DKMT_STANDARDALLOCATION_EXISTINGHEAP, +} +impl ::core::marker::Copy for D3DKMT_CREATESTANDARDALLOCATION_0 {} +impl ::core::clone::Clone for D3DKMT_CREATESTANDARDALLOCATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATESTANDARDALLOCATIONFLAGS { + pub Anonymous: D3DKMT_CREATESTANDARDALLOCATIONFLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_CREATESTANDARDALLOCATIONFLAGS {} +impl ::core::clone::Clone for D3DKMT_CREATESTANDARDALLOCATIONFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_CREATESTANDARDALLOCATIONFLAGS_0 { + pub Anonymous: D3DKMT_CREATESTANDARDALLOCATIONFLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATESTANDARDALLOCATIONFLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_CREATESTANDARDALLOCATIONFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATESTANDARDALLOCATIONFLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATESTANDARDALLOCATIONFLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_CREATESTANDARDALLOCATIONFLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATESYNCFILE { + pub hDevice: u32, + pub hMonitoredFence: u32, + pub FenceValue: u64, + pub hSyncFile: u64, +} +impl ::core::marker::Copy for D3DKMT_CREATESYNCFILE {} +impl ::core::clone::Clone for D3DKMT_CREATESYNCFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CREATESYNCHRONIZATIONOBJECT { + pub hDevice: u32, + pub Info: D3DDDI_SYNCHRONIZATIONOBJECTINFO, + pub hSyncObject: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CREATESYNCHRONIZATIONOBJECT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CREATESYNCHRONIZATIONOBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CREATESYNCHRONIZATIONOBJECT2 { + pub hDevice: u32, + pub Info: D3DDDI_SYNCHRONIZATIONOBJECTINFO2, + pub hSyncObject: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CREATESYNCHRONIZATIONOBJECT2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CREATESYNCHRONIZATIONOBJECT2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATE_DOORBELL { + pub hHwQueue: u32, + pub hRingBuffer: u32, + pub hRingBufferControl: u32, + pub Flags: D3DKMT_CREATE_DOORBELL_FLAGS, + pub PrivateDriverDataSize: u32, + pub PrivateDriverData: *mut ::core::ffi::c_void, + pub DoorbellCPUVirtualAddress: *mut ::core::ffi::c_void, + pub DoorbellSecondaryCPUVirtualAddress: *mut ::core::ffi::c_void, + pub DoorbellStatusCPUVirtualAddress: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for D3DKMT_CREATE_DOORBELL {} +impl ::core::clone::Clone for D3DKMT_CREATE_DOORBELL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATE_DOORBELL_FLAGS { + pub Anonymous: D3DKMT_CREATE_DOORBELL_FLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_CREATE_DOORBELL_FLAGS {} +impl ::core::clone::Clone for D3DKMT_CREATE_DOORBELL_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_CREATE_DOORBELL_FLAGS_0 { + pub Anonymous: D3DKMT_CREATE_DOORBELL_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATE_DOORBELL_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_CREATE_DOORBELL_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CREATE_DOORBELL_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_CREATE_DOORBELL_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_CREATE_DOORBELL_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_CREATE_OUTPUTDUPL { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub KeyedMutexCount: u32, + pub RequiredKeyedMutexCount: u32, + pub KeyedMutexs: [D3DKMT_OUTPUTDUPL_KEYEDMUTEX; 3], + pub Flags: D3DKMT_OUTPUTDUPLCREATIONFLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_CREATE_OUTPUTDUPL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_CREATE_OUTPUTDUPL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CROSSADAPTERRESOURCE_SUPPORT { + pub SupportTier: D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER, +} +impl ::core::marker::Copy for D3DKMT_CROSSADAPTERRESOURCE_SUPPORT {} +impl ::core::clone::Clone for D3DKMT_CROSSADAPTERRESOURCE_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_CURRENTDISPLAYMODE { + pub VidPnSourceId: u32, + pub DisplayMode: D3DKMT_DISPLAYMODE, +} +impl ::core::marker::Copy for D3DKMT_CURRENTDISPLAYMODE {} +impl ::core::clone::Clone for D3DKMT_CURRENTDISPLAYMODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DEBUG_SNAPSHOT_ESCAPE { + pub Length: u32, + pub Buffer: [u8; 1], +} +impl ::core::marker::Copy for D3DKMT_DEBUG_SNAPSHOT_ESCAPE {} +impl ::core::clone::Clone for D3DKMT_DEBUG_SNAPSHOT_ESCAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DESTROYALLOCATION { + pub hDevice: u32, + pub hResource: u32, + pub phAllocationList: *const u32, + pub AllocationCount: u32, +} +impl ::core::marker::Copy for D3DKMT_DESTROYALLOCATION {} +impl ::core::clone::Clone for D3DKMT_DESTROYALLOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DESTROYALLOCATION2 { + pub hDevice: u32, + pub hResource: u32, + pub phAllocationList: *const u32, + pub AllocationCount: u32, + pub Flags: D3DDDICB_DESTROYALLOCATION2FLAGS, +} +impl ::core::marker::Copy for D3DKMT_DESTROYALLOCATION2 {} +impl ::core::clone::Clone for D3DKMT_DESTROYALLOCATION2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DESTROYCONTEXT { + pub hContext: u32, +} +impl ::core::marker::Copy for D3DKMT_DESTROYCONTEXT {} +impl ::core::clone::Clone for D3DKMT_DESTROYCONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct D3DKMT_DESTROYDCFROMMEMORY { + pub hDc: super::super::super::Win32::Graphics::Gdi::HDC, + pub hBitmap: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DKMT_DESTROYDCFROMMEMORY {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DKMT_DESTROYDCFROMMEMORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DESTROYDEVICE { + pub hDevice: u32, +} +impl ::core::marker::Copy for D3DKMT_DESTROYDEVICE {} +impl ::core::clone::Clone for D3DKMT_DESTROYDEVICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DESTROYHWCONTEXT { + pub hHwContext: u32, +} +impl ::core::marker::Copy for D3DKMT_DESTROYHWCONTEXT {} +impl ::core::clone::Clone for D3DKMT_DESTROYHWCONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DESTROYHWQUEUE { + pub hHwQueue: u32, +} +impl ::core::marker::Copy for D3DKMT_DESTROYHWQUEUE {} +impl ::core::clone::Clone for D3DKMT_DESTROYHWQUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DESTROYKEYEDMUTEX { + pub hKeyedMutex: u32, +} +impl ::core::marker::Copy for D3DKMT_DESTROYKEYEDMUTEX {} +impl ::core::clone::Clone for D3DKMT_DESTROYKEYEDMUTEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DESTROYOVERLAY { + pub hDevice: u32, + pub hOverlay: u32, +} +impl ::core::marker::Copy for D3DKMT_DESTROYOVERLAY {} +impl ::core::clone::Clone for D3DKMT_DESTROYOVERLAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DESTROYPROTECTEDSESSION { + pub hHandle: u32, +} +impl ::core::marker::Copy for D3DKMT_DESTROYPROTECTEDSESSION {} +impl ::core::clone::Clone for D3DKMT_DESTROYPROTECTEDSESSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DESTROYSYNCHRONIZATIONOBJECT { + pub hSyncObject: u32, +} +impl ::core::marker::Copy for D3DKMT_DESTROYSYNCHRONIZATIONOBJECT {} +impl ::core::clone::Clone for D3DKMT_DESTROYSYNCHRONIZATIONOBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DESTROY_DOORBELL { + pub hHwQueue: u32, +} +impl ::core::marker::Copy for D3DKMT_DESTROY_DOORBELL {} +impl ::core::clone::Clone for D3DKMT_DESTROY_DOORBELL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_DESTROY_OUTPUTDUPL { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub bDestroyAllContexts: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_DESTROY_OUTPUTDUPL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_DESTROY_OUTPUTDUPL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DEVICEPAGEFAULT_STATE { + pub FaultedPrimitiveAPISequenceNumber: u64, + pub FaultedPipelineStage: DXGK_RENDER_PIPELINE_STAGE, + pub FaultedBindTableEntry: u32, + pub PageFaultFlags: DXGK_PAGE_FAULT_FLAGS, + pub FaultErrorCode: DXGK_FAULT_ERROR_CODE, + pub FaultedVirtualAddress: u64, +} +impl ::core::marker::Copy for D3DKMT_DEVICEPAGEFAULT_STATE {} +impl ::core::clone::Clone for D3DKMT_DEVICEPAGEFAULT_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_DEVICEPRESENT_QUEUE_STATE { + pub VidPnSourceId: u32, + pub bQueuedPresentLimitReached: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_DEVICEPRESENT_QUEUE_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_DEVICEPRESENT_QUEUE_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DEVICEPRESENT_STATE { + pub VidPnSourceId: u32, + pub PresentStats: D3DKMT_PRESENT_STATS, +} +impl ::core::marker::Copy for D3DKMT_DEVICEPRESENT_STATE {} +impl ::core::clone::Clone for D3DKMT_DEVICEPRESENT_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DEVICEPRESENT_STATE_DWM { + pub VidPnSourceId: u32, + pub PresentStatsDWM: D3DKMT_PRESENT_STATS_DWM, +} +impl ::core::marker::Copy for D3DKMT_DEVICEPRESENT_STATE_DWM {} +impl ::core::clone::Clone for D3DKMT_DEVICEPRESENT_STATE_DWM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DEVICERESET_STATE { + pub Anonymous: D3DKMT_DEVICERESET_STATE_0, +} +impl ::core::marker::Copy for D3DKMT_DEVICERESET_STATE {} +impl ::core::clone::Clone for D3DKMT_DEVICERESET_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_DEVICERESET_STATE_0 { + pub Anonymous: D3DKMT_DEVICERESET_STATE_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_DEVICERESET_STATE_0 {} +impl ::core::clone::Clone for D3DKMT_DEVICERESET_STATE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DEVICERESET_STATE_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_DEVICERESET_STATE_0_0 {} +impl ::core::clone::Clone for D3DKMT_DEVICERESET_STATE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DEVICE_ESCAPE { + pub Type: D3DKMT_DEVICEESCAPE_TYPE, + pub Anonymous: D3DKMT_DEVICE_ESCAPE_0, +} +impl ::core::marker::Copy for D3DKMT_DEVICE_ESCAPE {} +impl ::core::clone::Clone for D3DKMT_DEVICE_ESCAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_DEVICE_ESCAPE_0 { + pub VidPnFromAllocation: D3DKMT_DEVICE_ESCAPE_0_0, +} +impl ::core::marker::Copy for D3DKMT_DEVICE_ESCAPE_0 {} +impl ::core::clone::Clone for D3DKMT_DEVICE_ESCAPE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DEVICE_ESCAPE_0_0 { + pub hPrimaryAllocation: u32, + pub VidPnSourceId: u32, +} +impl ::core::marker::Copy for D3DKMT_DEVICE_ESCAPE_0_0 {} +impl ::core::clone::Clone for D3DKMT_DEVICE_ESCAPE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DEVICE_IDS { + pub VendorID: u32, + pub DeviceID: u32, + pub SubVendorID: u32, + pub SubSystemID: u32, + pub RevisionID: u32, + pub BusType: u32, +} +impl ::core::marker::Copy for D3DKMT_DEVICE_IDS {} +impl ::core::clone::Clone for D3DKMT_DEVICE_IDS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_DIRECTFLIP_SUPPORT { + pub Supported: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_DIRECTFLIP_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_DIRECTFLIP_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_DIRTYREGIONS { + pub NumRects: u32, + pub Rects: [super::super::super::Win32::Foundation::RECT; 16], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_DIRTYREGIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_DIRTYREGIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DISPLAYMODE { + pub Width: u32, + pub Height: u32, + pub Format: D3DDDIFORMAT, + pub IntegerRefreshRate: u32, + pub RefreshRate: D3DDDI_RATIONAL, + pub ScanLineOrdering: D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING, + pub DisplayOrientation: D3DDDI_ROTATION, + pub DisplayFixedOutput: u32, + pub Flags: D3DKMDT_DISPLAYMODE_FLAGS, +} +impl ::core::marker::Copy for D3DKMT_DISPLAYMODE {} +impl ::core::clone::Clone for D3DKMT_DISPLAYMODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DISPLAYMODELIST { + pub VidPnSourceId: u32, + pub ModeCount: u32, + pub pModeList: [D3DKMT_DISPLAYMODE; 1], +} +impl ::core::marker::Copy for D3DKMT_DISPLAYMODELIST {} +impl ::core::clone::Clone for D3DKMT_DISPLAYMODELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DISPLAY_CAPS { + pub Anonymous: D3DKMT_DISPLAY_CAPS_0, +} +impl ::core::marker::Copy for D3DKMT_DISPLAY_CAPS {} +impl ::core::clone::Clone for D3DKMT_DISPLAY_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union D3DKMT_DISPLAY_CAPS_0 { + pub Anonymous: D3DKMT_DISPLAY_CAPS_0_0, + pub Value: u64, +} +impl ::core::marker::Copy for D3DKMT_DISPLAY_CAPS_0 {} +impl ::core::clone::Clone for D3DKMT_DISPLAY_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct D3DKMT_DISPLAY_CAPS_0_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for D3DKMT_DISPLAY_CAPS_0_0 {} +impl ::core::clone::Clone for D3DKMT_DISPLAY_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DISPLAY_UMD_FILENAMEINFO { + pub Version: KMT_DISPLAY_UMD_VERSION, + pub UmdFileName: [u16; 260], +} +impl ::core::marker::Copy for D3DKMT_DISPLAY_UMD_FILENAMEINFO {} +impl ::core::clone::Clone for D3DKMT_DISPLAY_UMD_FILENAMEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DLIST_DRIVER_NAME { + pub DListFileName: [u16; 260], +} +impl ::core::marker::Copy for D3DKMT_DLIST_DRIVER_NAME {} +impl ::core::clone::Clone for D3DKMT_DLIST_DRIVER_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DMM_ESCAPE { + pub Type: D3DKMT_DMMESCAPETYPE, + pub ProvidedBufferSize: usize, + pub MinRequiredBufferSize: usize, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for D3DKMT_DMM_ESCAPE {} +impl ::core::clone::Clone for D3DKMT_DMM_ESCAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_DOD_SET_DIRTYRECT_MODE { + pub bForceFullScreenDirty: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_DOD_SET_DIRTYRECT_MODE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_DOD_SET_DIRTYRECT_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DRIVERCAPS_EXT { + pub Anonymous: D3DKMT_DRIVERCAPS_EXT_0, +} +impl ::core::marker::Copy for D3DKMT_DRIVERCAPS_EXT {} +impl ::core::clone::Clone for D3DKMT_DRIVERCAPS_EXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union D3DKMT_DRIVERCAPS_EXT_0 { + pub Anonymous: D3DKMT_DRIVERCAPS_EXT_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_DRIVERCAPS_EXT_0 {} +impl ::core::clone::Clone for D3DKMT_DRIVERCAPS_EXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct D3DKMT_DRIVERCAPS_EXT_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_DRIVERCAPS_EXT_0_0 {} +impl ::core::clone::Clone for D3DKMT_DRIVERCAPS_EXT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_DRIVER_DESCRIPTION { + pub DriverDescription: [u16; 4096], +} +impl ::core::marker::Copy for D3DKMT_DRIVER_DESCRIPTION {} +impl ::core::clone::Clone for D3DKMT_DRIVER_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_ENUMADAPTERS { + pub NumAdapters: u32, + pub Adapters: [D3DKMT_ADAPTERINFO; 16], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_ENUMADAPTERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_ENUMADAPTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_ENUMADAPTERS2 { + pub NumAdapters: u32, + pub pAdapters: *mut D3DKMT_ADAPTERINFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_ENUMADAPTERS2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_ENUMADAPTERS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_ENUMADAPTERS3 { + pub Filter: D3DKMT_ENUMADAPTERS_FILTER, + pub NumAdapters: u32, + pub pAdapters: *mut D3DKMT_ADAPTERINFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_ENUMADAPTERS3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_ENUMADAPTERS3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_ENUMADAPTERS_FILTER { + pub Anonymous: D3DKMT_ENUMADAPTERS_FILTER_0, + pub Value: u64, +} +impl ::core::marker::Copy for D3DKMT_ENUMADAPTERS_FILTER {} +impl ::core::clone::Clone for D3DKMT_ENUMADAPTERS_FILTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ENUMADAPTERS_FILTER_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for D3DKMT_ENUMADAPTERS_FILTER_0 {} +impl ::core::clone::Clone for D3DKMT_ENUMADAPTERS_FILTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_ESCAPE { + pub hAdapter: u32, + pub hDevice: u32, + pub Type: D3DKMT_ESCAPETYPE, + pub Flags: D3DDDI_ESCAPEFLAGS, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, + pub hContext: u32, +} +impl ::core::marker::Copy for D3DKMT_ESCAPE {} +impl ::core::clone::Clone for D3DKMT_ESCAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE { + pub Type: D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE, + pub VidPnSourceId: u32, + pub ProcessBoostEligible: super::super::super::Win32::Foundation::BOOLEAN, + pub VSyncMultiplier: u32, + pub BaseDesktopDuration: u32, + pub Reserved: [u8; 16], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_EVICT { + pub hDevice: u32, + pub NumAllocations: u32, + pub AllocationList: *const u32, + pub Flags: D3DDDI_EVICT_FLAGS, + pub NumBytesToTrim: u64, +} +impl ::core::marker::Copy for D3DKMT_EVICT {} +impl ::core::clone::Clone for D3DKMT_EVICT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_EVICTION_CRITERIA { + pub MinimumSize: u64, + pub MaximumSize: u64, + pub Anonymous: D3DKMT_EVICTION_CRITERIA_0, +} +impl ::core::marker::Copy for D3DKMT_EVICTION_CRITERIA {} +impl ::core::clone::Clone for D3DKMT_EVICTION_CRITERIA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_EVICTION_CRITERIA_0 { + pub Anonymous: D3DKMT_EVICTION_CRITERIA_0_0, +} +impl ::core::marker::Copy for D3DKMT_EVICTION_CRITERIA_0 {} +impl ::core::clone::Clone for D3DKMT_EVICTION_CRITERIA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_EVICTION_CRITERIA_0_0 { + pub Flags: D3DKMT_EVICTION_CRITERIA_0_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_EVICTION_CRITERIA_0_0 {} +impl ::core::clone::Clone for D3DKMT_EVICTION_CRITERIA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_EVICTION_CRITERIA_0_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_EVICTION_CRITERIA_0_0_0 {} +impl ::core::clone::Clone for D3DKMT_EVICTION_CRITERIA_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_FENCE_PRESENTHISTORYTOKEN { + pub Key: u64, +} +impl ::core::marker::Copy for D3DKMT_FENCE_PRESENTHISTORYTOKEN {} +impl ::core::clone::Clone for D3DKMT_FENCE_PRESENTHISTORYTOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_FLIPINFOFLAGS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_FLIPINFOFLAGS {} +impl ::core::clone::Clone for D3DKMT_FLIPINFOFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_FLIPMANAGER_AUXILIARYPRESENTINFO { + pub auxiliaryPresentInfo: D3DKMT_AUXILIARYPRESENTINFO, + pub flipManagerTracingId: u32, + pub customDurationChanged: super::super::super::Win32::Foundation::BOOL, + pub FlipAdapterLuid: super::super::super::Win32::Foundation::LUID, + pub VidPnSourceId: u32, + pub independentFlipStage: D3DKMT_FLIPMODEL_INDEPENDENT_FLIP_STAGE, + pub FlipCompletedQpc: u64, + pub HwPresentDurationQpc: u32, + pub WasCanceled: super::super::super::Win32::Foundation::BOOL, + pub ConvertedToNonIFlip: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_FLIPMANAGER_AUXILIARYPRESENTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_FLIPMANAGER_AUXILIARYPRESENTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN { + pub hPrivateData: u64, + pub PresentAtQpc: u64, + pub Flags: D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN_0, +} +impl ::core::marker::Copy for D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN {} +impl ::core::clone::Clone for D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN_0 { + pub Anonymous: D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN_0 {} +impl ::core::clone::Clone for D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN_0_0 {} +impl ::core::clone::Clone for D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN { + pub FenceValue: u64, + pub hLogicalSurface: u64, + pub dxgContext: usize, + pub VidPnSourceId: u32, + pub SwapChainIndex: u32, + pub PresentLimitSemaphoreId: u64, + pub FlipInterval: D3DDDI_FLIPINTERVAL_TYPE, + pub Flags: D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS, + pub hCompSurf: i64, + pub compSurfLuid: super::super::super::Win32::Foundation::LUID, + pub confirmationCookie: u64, + pub CompositionSyncKey: u64, + pub RemainingTokens: u32, + pub ScrollRect: super::super::super::Win32::Foundation::RECT, + pub ScrollOffset: super::super::super::Win32::Foundation::POINT, + pub PresentCount: u32, + pub RevealColor: [f32; 4], + pub Rotation: D3DDDI_ROTATION, + pub Anonymous: D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN_0, + pub InkCookie: u32, + pub SourceRect: super::super::super::Win32::Foundation::RECT, + pub DestWidth: u32, + pub DestHeight: u32, + pub TargetRect: super::super::super::Win32::Foundation::RECT, + pub Transform: [f32; 6], + pub CustomDuration: u32, + pub CustomDurationFlipInterval: D3DDDI_FLIPINTERVAL_TYPE, + pub PlaneIndex: u32, + pub ColorSpace: D3DDDI_COLOR_SPACE_TYPE, + pub DirtyRegions: D3DKMT_DIRTYREGIONS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN_0 { + pub ScatterBlts: D3DKMT_SCATTERBLTS, + pub Anonymous: D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN_0_0 { + pub hSyncObject: super::super::super::Win32::Foundation::HANDLE, + pub HDRMetaDataType: D3DDDI_HDR_METADATA_TYPE, + pub Anonymous: D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN_0_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN_0_0_0 { + pub HDRMetaDataHDR10: D3DDDI_HDR_METADATA_HDR10, + pub HDRMetaDataHDR10Plus: D3DDDI_HDR_METADATA_HDR10PLUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN_0_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS { + pub Anonymous: D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS {} +impl ::core::clone::Clone for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS_0 { + pub Anonymous: D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_FLIPOVERLAY { + pub hDevice: u32, + pub hOverlay: u32, + pub hSource: u32, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, +} +impl ::core::marker::Copy for D3DKMT_FLIPOVERLAY {} +impl ::core::clone::Clone for D3DKMT_FLIPOVERLAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_FLIPQUEUEINFO { + pub MaxHardwareFlipQueueLength: u32, + pub MaxSoftwareFlipQueueLength: u32, + pub FlipFlags: D3DKMT_FLIPINFOFLAGS, +} +impl ::core::marker::Copy for D3DKMT_FLIPQUEUEINFO {} +impl ::core::clone::Clone for D3DKMT_FLIPQUEUEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_FLUSHHEAPTRANSITIONS { + pub hAdapter: u32, +} +impl ::core::marker::Copy for D3DKMT_FLUSHHEAPTRANSITIONS {} +impl ::core::clone::Clone for D3DKMT_FLUSHHEAPTRANSITIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_FREEGPUVIRTUALADDRESS { + pub hAdapter: u32, + pub BaseAddress: u64, + pub Size: u64, +} +impl ::core::marker::Copy for D3DKMT_FREEGPUVIRTUALADDRESS {} +impl ::core::clone::Clone for D3DKMT_FREEGPUVIRTUALADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_GDIMODEL_PRESENTHISTORYTOKEN { + pub hLogicalSurface: u64, + pub hPhysicalSurface: u64, + pub ScrollRect: super::super::super::Win32::Foundation::RECT, + pub ScrollOffset: super::super::super::Win32::Foundation::POINT, + pub DirtyRegions: D3DKMT_DIRTYREGIONS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_GDIMODEL_PRESENTHISTORYTOKEN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_GDIMODEL_PRESENTHISTORYTOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GDIMODEL_SYSMEM_PRESENTHISTORYTOKEN { + pub hlsurf: u64, + pub dwDirtyFlags: u32, + pub uiCookie: u64, +} +impl ::core::marker::Copy for D3DKMT_GDIMODEL_SYSMEM_PRESENTHISTORYTOKEN {} +impl ::core::clone::Clone for D3DKMT_GDIMODEL_SYSMEM_PRESENTHISTORYTOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GETALLOCATIONPRIORITY { + pub hDevice: u32, + pub hResource: u32, + pub phAllocationList: *const u32, + pub AllocationCount: u32, + pub pPriorities: *mut u32, +} +impl ::core::marker::Copy for D3DKMT_GETALLOCATIONPRIORITY {} +impl ::core::clone::Clone for D3DKMT_GETALLOCATIONPRIORITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GETCONTEXTINPROCESSSCHEDULINGPRIORITY { + pub hContext: u32, + pub Priority: i32, +} +impl ::core::marker::Copy for D3DKMT_GETCONTEXTINPROCESSSCHEDULINGPRIORITY {} +impl ::core::clone::Clone for D3DKMT_GETCONTEXTINPROCESSSCHEDULINGPRIORITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GETCONTEXTSCHEDULINGPRIORITY { + pub hContext: u32, + pub Priority: i32, +} +impl ::core::marker::Copy for D3DKMT_GETCONTEXTSCHEDULINGPRIORITY {} +impl ::core::clone::Clone for D3DKMT_GETCONTEXTSCHEDULINGPRIORITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_GETDEVICESTATE { + pub hDevice: u32, + pub StateType: D3DKMT_DEVICESTATE_TYPE, + pub Anonymous: D3DKMT_GETDEVICESTATE_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_GETDEVICESTATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_GETDEVICESTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_GETDEVICESTATE_0 { + pub ExecutionState: D3DKMT_DEVICEEXECUTION_STATE, + pub PresentState: D3DKMT_DEVICEPRESENT_STATE, + pub ResetState: D3DKMT_DEVICERESET_STATE, + pub PresentStateDWM: D3DKMT_DEVICEPRESENT_STATE_DWM, + pub PageFaultState: D3DKMT_DEVICEPAGEFAULT_STATE, + pub PresentQueueState: D3DKMT_DEVICEPRESENT_QUEUE_STATE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_GETDEVICESTATE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_GETDEVICESTATE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GETDISPLAYMODELIST { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub pModeList: *mut D3DKMT_DISPLAYMODE, + pub ModeCount: u32, +} +impl ::core::marker::Copy for D3DKMT_GETDISPLAYMODELIST {} +impl ::core::clone::Clone for D3DKMT_GETDISPLAYMODELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GETMULTISAMPLEMETHODLIST { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub Width: u32, + pub Height: u32, + pub Format: D3DDDIFORMAT, + pub pMethodList: *mut D3DKMT_MULTISAMPLEMETHOD, + pub MethodCount: u32, +} +impl ::core::marker::Copy for D3DKMT_GETMULTISAMPLEMETHODLIST {} +impl ::core::clone::Clone for D3DKMT_GETMULTISAMPLEMETHODLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_GETOVERLAYSTATE { + pub hDevice: u32, + pub hOverlay: u32, + pub OverlayEnabled: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_GETOVERLAYSTATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_GETOVERLAYSTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_GETPRESENTHISTORY { + pub hAdapter: u32, + pub ProvidedSize: u32, + pub WrittenSize: u32, + pub pTokens: *mut D3DKMT_PRESENTHISTORYTOKEN, + pub NumTokens: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_GETPRESENTHISTORY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_GETPRESENTHISTORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_GETPROCESSDEVICEREMOVALSUPPORT { + pub hProcess: super::super::super::Win32::Foundation::HANDLE, + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub Support: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_GETPROCESSDEVICEREMOVALSUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_GETPROCESSDEVICEREMOVALSUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GETRUNTIMEDATA { + pub hAdapter: u32, + pub hGlobalShare: u32, + pub pRuntimeData: *mut ::core::ffi::c_void, + pub RuntimeDataSize: u32, +} +impl ::core::marker::Copy for D3DKMT_GETRUNTIMEDATA {} +impl ::core::clone::Clone for D3DKMT_GETRUNTIMEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_GETSCANLINE { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub InVerticalBlank: super::super::super::Win32::Foundation::BOOLEAN, + pub ScanLine: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_GETSCANLINE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_GETSCANLINE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GETSHAREDPRIMARYHANDLE { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub hSharedPrimary: u32, +} +impl ::core::marker::Copy for D3DKMT_GETSHAREDPRIMARYHANDLE {} +impl ::core::clone::Clone for D3DKMT_GETSHAREDPRIMARYHANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_GETSHAREDRESOURCEADAPTERLUID { + pub hGlobalShare: u32, + pub hNtHandle: super::super::super::Win32::Foundation::HANDLE, + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_GETSHAREDRESOURCEADAPTERLUID {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_GETSHAREDRESOURCEADAPTERLUID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GETVERTICALBLANKEVENT { + pub hAdapter: u32, + pub hDevice: u32, + pub VidPnSourceId: u32, + pub phEvent: *mut isize, +} +impl ::core::marker::Copy for D3DKMT_GETVERTICALBLANKEVENT {} +impl ::core::clone::Clone for D3DKMT_GETVERTICALBLANKEVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_GET_DEVICE_VIDPN_OWNERSHIP_INFO { + pub hDevice: u32, + pub bFailedDwmAcquireVidPn: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_GET_DEVICE_VIDPN_OWNERSHIP_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_GET_DEVICE_VIDPN_OWNERSHIP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_GET_GPUMMU_CAPS { + pub PhysicalAdapterIndex: u32, + pub GpuMmuCaps: DXGK_ESCAPE_GPUMMUCAPS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_GET_GPUMMU_CAPS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_GET_GPUMMU_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GET_MULTIPLANE_OVERLAY_CAPS { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub MaxPlanes: u32, + pub MaxRGBPlanes: u32, + pub MaxYUVPlanes: u32, + pub OverlayCaps: D3DKMT_MULTIPLANE_OVERLAY_CAPS, + pub MaxStretchFactor: f32, + pub MaxShrinkFactor: f32, +} +impl ::core::marker::Copy for D3DKMT_GET_MULTIPLANE_OVERLAY_CAPS {} +impl ::core::clone::Clone for D3DKMT_GET_MULTIPLANE_OVERLAY_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GET_POST_COMPOSITION_CAPS { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub MaxStretchFactor: f32, + pub MaxShrinkFactor: f32, +} +impl ::core::marker::Copy for D3DKMT_GET_POST_COMPOSITION_CAPS {} +impl ::core::clone::Clone for D3DKMT_GET_POST_COMPOSITION_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_GET_PTE { + pub PhysicalAdapterIndex: u32, + pub PageTableLevel: u32, + pub PageTableIndex: [u32; 6], + pub b64KBPte: super::super::super::Win32::Foundation::BOOLEAN, + pub NumPtes: u32, + pub Pte: [DXGK_PTE; 64], + pub NumValidEntries: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_GET_PTE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_GET_PTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_GET_SEGMENT_CAPS { + pub PhysicalAdapterIndex: u32, + pub NumSegments: u32, + pub SegmentCaps: [D3DKMT_SEGMENT_CAPS; 32], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_GET_SEGMENT_CAPS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_GET_SEGMENT_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GPUMMU_CAPS { + pub Flags: D3DKMT_GPUMMU_CAPS_0, + pub VirtualAddressBitCount: u32, +} +impl ::core::marker::Copy for D3DKMT_GPUMMU_CAPS {} +impl ::core::clone::Clone for D3DKMT_GPUMMU_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_GPUMMU_CAPS_0 { + pub Anonymous: D3DKMT_GPUMMU_CAPS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_GPUMMU_CAPS_0 {} +impl ::core::clone::Clone for D3DKMT_GPUMMU_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GPUMMU_CAPS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_GPUMMU_CAPS_0_0 {} +impl ::core::clone::Clone for D3DKMT_GPUMMU_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_GPUVERSION { + pub PhysicalAdapterIndex: u32, + pub BiosVersion: [u16; 32], + pub GpuArchitecture: [u16; 32], +} +impl ::core::marker::Copy for D3DKMT_GPUVERSION {} +impl ::core::clone::Clone for D3DKMT_GPUVERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_HISTORY_BUFFER_STATUS { + pub Enabled: super::super::super::Win32::Foundation::BOOLEAN, + pub Reserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_HISTORY_BUFFER_STATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_HISTORY_BUFFER_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_HWDRM_SUPPORT { + pub Supported: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_HWDRM_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_HWDRM_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_HYBRID_DLIST_DLL_SUPPORT { + pub Supported: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_HYBRID_DLIST_DLL_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_HYBRID_DLIST_DLL_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_HYBRID_LIST { + pub State: D3DKMT_GPU_PREFERENCE_QUERY_STATE, + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub bUserPreferenceQuery: super::super::super::Win32::Foundation::BOOL, + pub QueryType: D3DKMT_GPU_PREFERENCE_QUERY_TYPE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_HYBRID_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_HYBRID_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_INDEPENDENTFLIP_SECONDARY_SUPPORT { + pub Supported: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_INDEPENDENTFLIP_SECONDARY_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_INDEPENDENTFLIP_SECONDARY_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_INDEPENDENTFLIP_SUPPORT { + pub Supported: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_INDEPENDENTFLIP_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_INDEPENDENTFLIP_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_INVALIDATEACTIVEVIDPN { + pub hAdapter: u32, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, +} +impl ::core::marker::Copy for D3DKMT_INVALIDATEACTIVEVIDPN {} +impl ::core::clone::Clone for D3DKMT_INVALIDATEACTIVEVIDPN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_INVALIDATECACHE { + pub hDevice: u32, + pub hAllocation: u32, + pub Offset: usize, + pub Length: usize, +} +impl ::core::marker::Copy for D3DKMT_INVALIDATECACHE {} +impl ::core::clone::Clone for D3DKMT_INVALIDATECACHE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_ISBADDRIVERFORHWPROTECTIONDISABLED { + pub Disabled: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_ISBADDRIVERFORHWPROTECTIONDISABLED {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_ISBADDRIVERFORHWPROTECTIONDISABLED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_KMD_DRIVER_VERSION { + pub DriverVersion: i64, +} +impl ::core::marker::Copy for D3DKMT_KMD_DRIVER_VERSION {} +impl ::core::clone::Clone for D3DKMT_KMD_DRIVER_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_LOCK { + pub hDevice: u32, + pub hAllocation: u32, + pub PrivateDriverData: u32, + pub NumPages: u32, + pub pPages: *const u32, + pub pData: *mut ::core::ffi::c_void, + pub Flags: D3DDDICB_LOCKFLAGS, + pub GpuVirtualAddress: u64, +} +impl ::core::marker::Copy for D3DKMT_LOCK {} +impl ::core::clone::Clone for D3DKMT_LOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_LOCK2 { + pub hDevice: u32, + pub hAllocation: u32, + pub Flags: D3DDDICB_LOCK2FLAGS, + pub pData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for D3DKMT_LOCK2 {} +impl ::core::clone::Clone for D3DKMT_LOCK2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_MARKDEVICEASERROR { + pub hDevice: u32, + pub Reason: D3DKMT_DEVICE_ERROR_REASON, +} +impl ::core::marker::Copy for D3DKMT_MARKDEVICEASERROR {} +impl ::core::clone::Clone for D3DKMT_MARKDEVICEASERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_MIRACASTCOMPANIONDRIVERNAME { + pub MiracastCompanionDriverName: [u16; 260], +} +impl ::core::marker::Copy for D3DKMT_MIRACASTCOMPANIONDRIVERNAME {} +impl ::core::clone::Clone for D3DKMT_MIRACASTCOMPANIONDRIVERNAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_MIRACAST_CHUNK_DATA { + pub ChunkInfo: DXGK_MIRACAST_CHUNK_INFO, + pub PrivateDriverDataSize: u32, + pub PrivateDriverData: [u8; 1], +} +impl ::core::marker::Copy for D3DKMT_MIRACAST_CHUNK_DATA {} +impl ::core::clone::Clone for D3DKMT_MIRACAST_CHUNK_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MIRACAST_DISPLAY_DEVICE_CAPS { + pub HdcpSupported: super::super::super::Win32::Foundation::BOOLEAN, + pub DefaultControlPort: u32, + pub UsesIhvSolution: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MIRACAST_DISPLAY_DEVICE_CAPS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MIRACAST_DISPLAY_DEVICE_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_MIRACAST_DISPLAY_DEVICE_STATUS { + pub State: D3DKMT_MIRACAST_DISPLAY_DEVICE_STATE, +} +impl ::core::marker::Copy for D3DKMT_MIRACAST_DISPLAY_DEVICE_STATUS {} +impl ::core::clone::Clone for D3DKMT_MIRACAST_DISPLAY_DEVICE_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MIRACAST_DISPLAY_STOP_SESSIONS { + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub TargetId: u32, + pub StopReason: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MIRACAST_DISPLAY_STOP_SESSIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MIRACAST_DISPLAY_STOP_SESSIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MOVE_RECT { + pub SourcePoint: super::super::super::Win32::Foundation::POINT, + pub DestRect: super::super::super::Win32::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MOVE_RECT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MOVE_RECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MPO3DDI_SUPPORT { + pub Supported: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MPO3DDI_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MPO3DDI_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MPOKERNELCAPS_SUPPORT { + pub Supported: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MPOKERNELCAPS_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MPOKERNELCAPS_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MULTIPLANEOVERLAY_DECODE_SUPPORT { + pub Supported: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MULTIPLANEOVERLAY_DECODE_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MULTIPLANEOVERLAY_DECODE_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MULTIPLANEOVERLAY_HUD_SUPPORT { + pub VidPnSourceId: u32, + pub Update: super::super::super::Win32::Foundation::BOOL, + pub KernelSupported: super::super::super::Win32::Foundation::BOOL, + pub HudSupported: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MULTIPLANEOVERLAY_HUD_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MULTIPLANEOVERLAY_HUD_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MULTIPLANEOVERLAY_SECONDARY_SUPPORT { + pub Supported: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MULTIPLANEOVERLAY_SECONDARY_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MULTIPLANEOVERLAY_SECONDARY_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MULTIPLANEOVERLAY_STRETCH_SUPPORT { + pub VidPnSourceId: u32, + pub Update: super::super::super::Win32::Foundation::BOOL, + pub Supported: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MULTIPLANEOVERLAY_STRETCH_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MULTIPLANEOVERLAY_STRETCH_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MULTIPLANEOVERLAY_SUPPORT { + pub Supported: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MULTIPLANEOVERLAY_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MULTIPLANEOVERLAY_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MULTIPLANE_OVERLAY { + pub LayerIndex: u32, + pub Enabled: super::super::super::Win32::Foundation::BOOL, + pub hAllocation: u32, + pub PlaneAttributes: D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MULTIPLANE_OVERLAY2 { + pub LayerIndex: u32, + pub Enabled: super::super::super::Win32::Foundation::BOOL, + pub hAllocation: u32, + pub PlaneAttributes: D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MULTIPLANE_OVERLAY3 { + pub LayerIndex: u32, + pub InputFlags: D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS, + pub FlipInterval: D3DDDI_FLIPINTERVAL_TYPE, + pub MaxImmediateFlipLine: u32, + pub AllocationCount: u32, + pub pAllocationList: *mut u32, + pub DriverPrivateDataSize: u32, + pub pDriverPrivateData: *mut ::core::ffi::c_void, + pub pPlaneAttributes: *const D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES3, + pub hFlipToFence: u32, + pub hFlipAwayFence: u32, + pub FlipToFenceValue: u64, + pub FlipAwayFenceValue: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES { + pub Flags: u32, + pub SrcRect: super::super::super::Win32::Foundation::RECT, + pub DstRect: super::super::super::Win32::Foundation::RECT, + pub ClipRect: super::super::super::Win32::Foundation::RECT, + pub Rotation: D3DDDI_ROTATION, + pub Blend: D3DKMT_MULTIPLANE_OVERLAY_BLEND, + pub DirtyRectCount: u32, + pub pDirtyRects: *mut super::super::super::Win32::Foundation::RECT, + pub VideoFrameFormat: D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT, + pub YCbCrFlags: u32, + pub StereoFormat: D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT, + pub StereoLeftViewFrame0: super::super::super::Win32::Foundation::BOOL, + pub StereoBaseViewFrame0: super::super::super::Win32::Foundation::BOOL, + pub StereoFlipMode: DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE, + pub StretchQuality: DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES2 { + pub Flags: u32, + pub SrcRect: super::super::super::Win32::Foundation::RECT, + pub DstRect: super::super::super::Win32::Foundation::RECT, + pub ClipRect: super::super::super::Win32::Foundation::RECT, + pub Rotation: D3DDDI_ROTATION, + pub Blend: D3DKMT_MULTIPLANE_OVERLAY_BLEND, + pub DirtyRectCount: u32, + pub pDirtyRects: *mut super::super::super::Win32::Foundation::RECT, + pub VideoFrameFormat: D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT, + pub ColorSpace: D3DDDI_COLOR_SPACE_TYPE, + pub StereoFormat: D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT, + pub StereoLeftViewFrame0: super::super::super::Win32::Foundation::BOOL, + pub StereoBaseViewFrame0: super::super::super::Win32::Foundation::BOOL, + pub StereoFlipMode: DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE, + pub StretchQuality: DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY, + pub Reserved1: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES3 { + pub Flags: u32, + pub SrcRect: super::super::super::Win32::Foundation::RECT, + pub DstRect: super::super::super::Win32::Foundation::RECT, + pub ClipRect: super::super::super::Win32::Foundation::RECT, + pub Rotation: D3DDDI_ROTATION, + pub Blend: D3DKMT_MULTIPLANE_OVERLAY_BLEND, + pub DirtyRectCount: u32, + pub pDirtyRects: *mut super::super::super::Win32::Foundation::RECT, + pub ColorSpace: D3DDDI_COLOR_SPACE_TYPE, + pub StretchQuality: DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY, + pub SDRWhiteLevel: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_MULTIPLANE_OVERLAY_CAPS { + pub Anonymous: D3DKMT_MULTIPLANE_OVERLAY_CAPS_0, +} +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY_CAPS {} +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_MULTIPLANE_OVERLAY_CAPS_0 { + pub Anonymous: D3DKMT_MULTIPLANE_OVERLAY_CAPS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY_CAPS_0 {} +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_MULTIPLANE_OVERLAY_CAPS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY_CAPS_0_0 {} +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION { + pub Flags: D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS, + pub SrcRect: super::super::super::Win32::Foundation::RECT, + pub DstRect: super::super::super::Win32::Foundation::RECT, + pub Rotation: D3DDDI_ROTATION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS { + pub Anonymous: D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS {} +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS_0 { + pub Anonymous: D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_WITH_SOURCE { + pub VidPnSourceId: u32, + pub PostComposition: D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_WITH_SOURCE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_WITH_SOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_MULTISAMPLEMETHOD { + pub NumSamples: u32, + pub NumQualityLevels: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for D3DKMT_MULTISAMPLEMETHOD {} +impl ::core::clone::Clone for D3DKMT_MULTISAMPLEMETHOD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_NODEMETADATA { + pub NodeOrdinalAndAdapterIndex: u32, + pub NodeData: DXGK_NODEMETADATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_NODEMETADATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_NODEMETADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_NODE_PERFDATA { + pub NodeOrdinal: u32, + pub PhysicalAdapterIndex: u32, + pub Frequency: u64, + pub MaxFrequency: u64, + pub MaxFrequencyOC: u64, + pub Voltage: u32, + pub VoltageMax: u32, + pub VoltageMaxOC: u32, + pub MaxTransitionLatency: u64, +} +impl ::core::marker::Copy for D3DKMT_NODE_PERFDATA {} +impl ::core::clone::Clone for D3DKMT_NODE_PERFDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_NOTIFY_WORK_SUBMISSION { + pub hHwQueue: u32, + pub Flags: D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS, +} +impl ::core::marker::Copy for D3DKMT_NOTIFY_WORK_SUBMISSION {} +impl ::core::clone::Clone for D3DKMT_NOTIFY_WORK_SUBMISSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS { + pub Anonymous: D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS {} +impl ::core::clone::Clone for D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS_0 { + pub Anonymous: D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_NOTIFY_WORK_SUBMISSION_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OFFERALLOCATIONS { + pub hDevice: u32, + pub pResources: *mut u32, + pub HandleList: *const u32, + pub NumAllocations: u32, + pub Priority: D3DKMT_OFFER_PRIORITY, + pub Flags: D3DKMT_OFFER_FLAGS, +} +impl ::core::marker::Copy for D3DKMT_OFFERALLOCATIONS {} +impl ::core::clone::Clone for D3DKMT_OFFERALLOCATIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OFFER_FLAGS { + pub Anonymous: D3DKMT_OFFER_FLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_OFFER_FLAGS {} +impl ::core::clone::Clone for D3DKMT_OFFER_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_OFFER_FLAGS_0 { + pub Anonymous: D3DKMT_OFFER_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_OFFER_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_OFFER_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OFFER_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_OFFER_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_OFFER_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OPENADAPTERFROMDEVICENAME { + pub pDeviceName: ::windows_sys::core::PCWSTR, + pub hAdapter: u32, + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OPENADAPTERFROMDEVICENAME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OPENADAPTERFROMDEVICENAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME { + pub DeviceName: [u16; 32], + pub hAdapter: u32, + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub VidPnSourceId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct D3DKMT_OPENADAPTERFROMHDC { + pub hDc: super::super::super::Win32::Graphics::Gdi::HDC, + pub hAdapter: u32, + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub VidPnSourceId: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for D3DKMT_OPENADAPTERFROMHDC {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for D3DKMT_OPENADAPTERFROMHDC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OPENADAPTERFROMLUID { + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub hAdapter: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OPENADAPTERFROMLUID {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OPENADAPTERFROMLUID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OPENGLINFO { + pub UmdOpenGlIcdFileName: [u16; 260], + pub Version: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for D3DKMT_OPENGLINFO {} +impl ::core::clone::Clone for D3DKMT_OPENGLINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OPENKEYEDMUTEX { + pub hSharedHandle: u32, + pub hKeyedMutex: u32, +} +impl ::core::marker::Copy for D3DKMT_OPENKEYEDMUTEX {} +impl ::core::clone::Clone for D3DKMT_OPENKEYEDMUTEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OPENKEYEDMUTEX2 { + pub hSharedHandle: u32, + pub hKeyedMutex: u32, + pub pPrivateRuntimeData: *mut ::core::ffi::c_void, + pub PrivateRuntimeDataSize: u32, +} +impl ::core::marker::Copy for D3DKMT_OPENKEYEDMUTEX2 {} +impl ::core::clone::Clone for D3DKMT_OPENKEYEDMUTEX2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OPENKEYEDMUTEXFROMNTHANDLE { + pub hNtHandle: super::super::super::Win32::Foundation::HANDLE, + pub hKeyedMutex: u32, + pub pPrivateRuntimeData: *mut ::core::ffi::c_void, + pub PrivateRuntimeDataSize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OPENKEYEDMUTEXFROMNTHANDLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OPENKEYEDMUTEXFROMNTHANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OPENNATIVEFENCEFROMNTHANDLE { + pub hNtHandle: super::super::super::Win32::Foundation::HANDLE, + pub hDevice: u32, + pub EngineAffinity: u32, + pub Flags: D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS, + pub hSyncObject: u32, + pub NativeFenceMapping: D3DDDI_NATIVEFENCEMAPPING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OPENNATIVEFENCEFROMNTHANDLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OPENNATIVEFENCEFROMNTHANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub struct D3DKMT_OPENNTHANDLEFROMNAME { + pub dwDesiredAccess: u32, + pub pObjAttrib: *mut super::super::Foundation::OBJECT_ATTRIBUTES, + pub hNtHandle: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for D3DKMT_OPENNTHANDLEFROMNAME {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for D3DKMT_OPENNTHANDLEFROMNAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OPENPROTECTEDSESSIONFROMNTHANDLE { + pub hNtHandle: super::super::super::Win32::Foundation::HANDLE, + pub hHandle: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OPENPROTECTEDSESSIONFROMNTHANDLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OPENPROTECTEDSESSIONFROMNTHANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OPENRESOURCE { + pub hDevice: u32, + pub hGlobalShare: u32, + pub NumAllocations: u32, + pub Anonymous: D3DKMT_OPENRESOURCE_0, + pub pPrivateRuntimeData: *mut ::core::ffi::c_void, + pub PrivateRuntimeDataSize: u32, + pub pResourcePrivateDriverData: *mut ::core::ffi::c_void, + pub ResourcePrivateDriverDataSize: u32, + pub pTotalPrivateDriverDataBuffer: *mut ::core::ffi::c_void, + pub TotalPrivateDriverDataBufferSize: u32, + pub hResource: u32, +} +impl ::core::marker::Copy for D3DKMT_OPENRESOURCE {} +impl ::core::clone::Clone for D3DKMT_OPENRESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_OPENRESOURCE_0 { + pub pOpenAllocationInfo: *mut D3DDDI_OPENALLOCATIONINFO, + pub pOpenAllocationInfo2: *mut D3DDDI_OPENALLOCATIONINFO2, +} +impl ::core::marker::Copy for D3DKMT_OPENRESOURCE_0 {} +impl ::core::clone::Clone for D3DKMT_OPENRESOURCE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OPENRESOURCEFROMNTHANDLE { + pub hDevice: u32, + pub hNtHandle: super::super::super::Win32::Foundation::HANDLE, + pub NumAllocations: u32, + pub pOpenAllocationInfo2: *mut D3DDDI_OPENALLOCATIONINFO2, + pub PrivateRuntimeDataSize: u32, + pub pPrivateRuntimeData: *mut ::core::ffi::c_void, + pub ResourcePrivateDriverDataSize: u32, + pub pResourcePrivateDriverData: *mut ::core::ffi::c_void, + pub TotalPrivateDriverDataBufferSize: u32, + pub pTotalPrivateDriverDataBuffer: *mut ::core::ffi::c_void, + pub hResource: u32, + pub hKeyedMutex: u32, + pub pKeyedMutexPrivateRuntimeData: *mut ::core::ffi::c_void, + pub KeyedMutexPrivateRuntimeDataSize: u32, + pub hSyncObject: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OPENRESOURCEFROMNTHANDLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OPENRESOURCEFROMNTHANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OPENSYNCHRONIZATIONOBJECT { + pub hSharedHandle: u32, + pub hSyncObject: u32, + pub Reserved: [u64; 8], +} +impl ::core::marker::Copy for D3DKMT_OPENSYNCHRONIZATIONOBJECT {} +impl ::core::clone::Clone for D3DKMT_OPENSYNCHRONIZATIONOBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OPENSYNCOBJECTFROMNTHANDLE { + pub hNtHandle: super::super::super::Win32::Foundation::HANDLE, + pub hSyncObject: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OPENSYNCOBJECTFROMNTHANDLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OPENSYNCOBJECTFROMNTHANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 { + pub hNtHandle: super::super::super::Win32::Foundation::HANDLE, + pub hDevice: u32, + pub Flags: D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS, + pub hSyncObject: u32, + pub Anonymous: D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2_0 { + pub MonitoredFence: D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2_0_0, + pub Reserved: [u64; 8], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2_0_0 { + pub FenceValueCPUVirtualAddress: *mut ::core::ffi::c_void, + pub FenceValueGPUVirtualAddress: u64, + pub EngineAffinity: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub struct D3DKMT_OPENSYNCOBJECTNTHANDLEFROMNAME { + pub dwDesiredAccess: u32, + pub pObjAttrib: *mut super::super::Foundation::OBJECT_ATTRIBUTES, + pub hNtHandle: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for D3DKMT_OPENSYNCOBJECTNTHANDLEFROMNAME {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for D3DKMT_OPENSYNCOBJECTNTHANDLEFROMNAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OUTDUPL_POINTER_SHAPE_INFO { + pub Type: D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE, + pub Width: u32, + pub Height: u32, + pub Pitch: u32, + pub HotSpot: super::super::super::Win32::Foundation::POINT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OUTDUPL_POINTER_SHAPE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OUTDUPL_POINTER_SHAPE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OUTPUTDUPLCONTEXTSCOUNT { + pub VidPnSourceId: u32, + pub OutputDuplicationCount: u32, +} +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPLCONTEXTSCOUNT {} +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPLCONTEXTSCOUNT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OUTPUTDUPLCREATIONFLAGS { + pub Anonymous: D3DKMT_OUTPUTDUPLCREATIONFLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPLCREATIONFLAGS {} +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPLCREATIONFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_OUTPUTDUPLCREATIONFLAGS_0 { + pub Anonymous: D3DKMT_OUTPUTDUPLCREATIONFLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPLCREATIONFLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPLCREATIONFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OUTPUTDUPLCREATIONFLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPLCREATIONFLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPLCREATIONFLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OUTPUTDUPLPRESENT { + pub hContext: u32, + pub hSource: u32, + pub VidPnSourceId: u32, + pub BroadcastContextCount: u32, + pub BroadcastContext: [u32; 64], + pub PresentRegions: D3DKMT_PRESENT_RGNS, + pub Flags: D3DKMT_OUTPUTDUPLPRESENTFLAGS, + pub hIndirectContext: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPLPRESENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPLPRESENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OUTPUTDUPLPRESENTFLAGS { + pub Anonymous: D3DKMT_OUTPUTDUPLPRESENTFLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPLPRESENTFLAGS {} +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPLPRESENTFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_OUTPUTDUPLPRESENTFLAGS_0 { + pub Anonymous: D3DKMT_OUTPUTDUPLPRESENTFLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPLPRESENTFLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPLPRESENTFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OUTPUTDUPLPRESENTFLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPLPRESENTFLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPLPRESENTFLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OUTPUTDUPLPRESENTTOHWQUEUE { + pub hSource: u32, + pub VidPnSourceId: u32, + pub BroadcastHwQueueCount: u32, + pub hHwQueues: *mut u32, + pub PresentRegions: D3DKMT_PRESENT_RGNS, + pub Flags: D3DKMT_OUTPUTDUPLPRESENTFLAGS, + pub hIndirectHwQueue: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPLPRESENTTOHWQUEUE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPLPRESENTTOHWQUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OUTPUTDUPL_FRAMEINFO { + pub LastPresentTime: i64, + pub LastMouseUpdateTime: i64, + pub AccumulatedFrames: u32, + pub RectsCoalesced: super::super::super::Win32::Foundation::BOOL, + pub ProtectedContentMaskedOut: super::super::super::Win32::Foundation::BOOL, + pub PointerPosition: D3DKMT_OUTPUTDUPL_POINTER_POSITION, + pub TotalMetadataBufferSize: u32, + pub PointerShapeBufferSize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPL_FRAMEINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPL_FRAMEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OUTPUTDUPL_GET_FRAMEINFO { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub FrameInfo: D3DKMT_OUTPUTDUPL_FRAMEINFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPL_GET_FRAMEINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPL_GET_FRAMEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OUTPUTDUPL_GET_POINTER_SHAPE_DATA { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub BufferSizeSupplied: u32, + pub pShapeBuffer: *mut ::core::ffi::c_void, + pub BufferSizeRequired: u32, + pub ShapeInfo: D3DKMT_OUTDUPL_POINTER_SHAPE_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPL_GET_POINTER_SHAPE_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPL_GET_POINTER_SHAPE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OUTPUTDUPL_KEYEDMUTEX { + pub hSharedSurfaceNt: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPL_KEYEDMUTEX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPL_KEYEDMUTEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OUTPUTDUPL_METADATA { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub Type: D3DKMT_OUTPUTDUPL_METADATATYPE, + pub BufferSizeSupplied: u32, + pub pBuffer: *mut ::core::ffi::c_void, + pub BufferSizeRequired: u32, +} +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPL_METADATA {} +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPL_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OUTPUTDUPL_POINTER_POSITION { + pub Position: super::super::super::Win32::Foundation::POINT, + pub Visible: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPL_POINTER_POSITION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPL_POINTER_POSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_OUTPUTDUPL_RELEASE_FRAME { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub NextKeyMutexIdx: u32, +} +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPL_RELEASE_FRAME {} +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPL_RELEASE_FRAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_OUTPUTDUPL_SNAPSHOT { + pub Size: u32, + pub SessionProcessCount: u32, + pub SessionActiveConnectionsCount: u32, + pub NumVidPnSources: u32, + pub NumOutputDuplContexts: u32, + pub Padding: u32, + pub OutputDuplDebugInfos: [OUTPUTDUPL_CONTEXT_DEBUG_INFO; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_OUTPUTDUPL_SNAPSHOT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_OUTPUTDUPL_SNAPSHOT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PAGE_TABLE_LEVEL_DESC { + pub IndexBitCount: u32, + pub IndexMask: u64, + pub IndexShift: u64, + pub LowerLevelsMask: u64, + pub EntryCoverageInPages: u64, +} +impl ::core::marker::Copy for D3DKMT_PAGE_TABLE_LEVEL_DESC {} +impl ::core::clone::Clone for D3DKMT_PAGE_TABLE_LEVEL_DESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_PANELFITTER_SUPPORT { + pub Supported: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PANELFITTER_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PANELFITTER_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_PARAVIRTUALIZATION { + pub SecureContainer: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PARAVIRTUALIZATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PARAVIRTUALIZATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PHYSICAL_ADAPTER_COUNT { + pub Count: u32, +} +impl ::core::marker::Copy for D3DKMT_PHYSICAL_ADAPTER_COUNT {} +impl ::core::clone::Clone for D3DKMT_PHYSICAL_ADAPTER_COUNT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PINDIRECTFLIPRESOURCES { + pub hDevice: u32, + pub ResourceCount: u32, + pub pResourceList: *mut u32, +} +impl ::core::marker::Copy for D3DKMT_PINDIRECTFLIPRESOURCES {} +impl ::core::clone::Clone for D3DKMT_PINDIRECTFLIPRESOURCES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS { + pub Anonymous: D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS {} +impl ::core::clone::Clone for D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS_0 { + pub Anonymous: D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PLANE_SPECIFIC_OUTPUT_FLAGS { + pub Anonymous: D3DKMT_PLANE_SPECIFIC_OUTPUT_FLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_PLANE_SPECIFIC_OUTPUT_FLAGS {} +impl ::core::clone::Clone for D3DKMT_PLANE_SPECIFIC_OUTPUT_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_PLANE_SPECIFIC_OUTPUT_FLAGS_0 { + pub Anonymous: D3DKMT_PLANE_SPECIFIC_OUTPUT_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_PLANE_SPECIFIC_OUTPUT_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_PLANE_SPECIFIC_OUTPUT_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PLANE_SPECIFIC_OUTPUT_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_PLANE_SPECIFIC_OUTPUT_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_PLANE_SPECIFIC_OUTPUT_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_POLLDISPLAYCHILDREN { + pub hAdapter: u32, + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_POLLDISPLAYCHILDREN {} +impl ::core::clone::Clone for D3DKMT_POLLDISPLAYCHILDREN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_PRESENT { + pub Anonymous1: D3DKMT_PRESENT_0, + pub hWindow: super::super::super::Win32::Foundation::HWND, + pub VidPnSourceId: u32, + pub hSource: u32, + pub hDestination: u32, + pub Color: u32, + pub DstRect: super::super::super::Win32::Foundation::RECT, + pub SrcRect: super::super::super::Win32::Foundation::RECT, + pub SubRectCnt: u32, + pub pSrcSubRects: *const super::super::super::Win32::Foundation::RECT, + pub PresentCount: u32, + pub FlipInterval: D3DDDI_FLIPINTERVAL_TYPE, + pub Flags: D3DKMT_PRESENTFLAGS, + pub BroadcastContextCount: u32, + pub BroadcastContext: [u32; 64], + pub PresentLimitSemaphore: super::super::super::Win32::Foundation::HANDLE, + pub PresentHistoryToken: D3DKMT_PRESENTHISTORYTOKEN, + pub pPresentRegions: *mut D3DKMT_PRESENT_RGNS, + pub Anonymous2: D3DKMT_PRESENT_1, + pub Duration: u32, + pub BroadcastSrcAllocation: *mut u32, + pub BroadcastDstAllocation: *mut u32, + pub PrivateDriverDataSize: u32, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub bOptimizeForComposition: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PRESENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PRESENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_PRESENT_0 { + pub hDevice: u32, + pub hContext: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PRESENT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PRESENT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_PRESENT_1 { + pub hAdapter: u32, + pub hIndirectContext: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PRESENT_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PRESENT_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PRESENTFLAGS { + pub Anonymous: D3DKMT_PRESENTFLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_PRESENTFLAGS {} +impl ::core::clone::Clone for D3DKMT_PRESENTFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_PRESENTFLAGS_0 { + pub Anonymous: D3DKMT_PRESENTFLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_PRESENTFLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_PRESENTFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PRESENTFLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_PRESENTFLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_PRESENTFLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_PRESENTHISTORYTOKEN { + pub Model: D3DKMT_PRESENT_MODEL, + pub TokenSize: u32, + pub CompositionBindingId: u64, + pub Token: D3DKMT_PRESENTHISTORYTOKEN_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PRESENTHISTORYTOKEN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PRESENTHISTORYTOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_PRESENTHISTORYTOKEN_0 { + pub Flip: D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN, + pub Blt: D3DKMT_BLTMODEL_PRESENTHISTORYTOKEN, + pub VistaBlt: u64, + pub Gdi: D3DKMT_GDIMODEL_PRESENTHISTORYTOKEN, + pub Fence: D3DKMT_FENCE_PRESENTHISTORYTOKEN, + pub GdiSysMem: D3DKMT_GDIMODEL_SYSMEM_PRESENTHISTORYTOKEN, + pub Composition: D3DKMT_COMPOSITION_PRESENTHISTORYTOKEN, + pub FlipManager: D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN, + pub SurfaceComplete: D3DKMT_SURFACECOMPLETE_PRESENTHISTORYTOKEN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PRESENTHISTORYTOKEN_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PRESENTHISTORYTOKEN_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_PRESENT_MULTIPLANE_OVERLAY { + pub Anonymous: D3DKMT_PRESENT_MULTIPLANE_OVERLAY_0, + pub BroadcastContextCount: u32, + pub BroadcastContext: [u32; 64], + pub VidPnSourceId: u32, + pub PresentCount: u32, + pub FlipInterval: D3DDDI_FLIPINTERVAL_TYPE, + pub Flags: D3DKMT_PRESENTFLAGS, + pub PresentPlaneCount: u32, + pub pPresentPlanes: *mut D3DKMT_MULTIPLANE_OVERLAY, + pub Duration: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PRESENT_MULTIPLANE_OVERLAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PRESENT_MULTIPLANE_OVERLAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_PRESENT_MULTIPLANE_OVERLAY_0 { + pub hDevice: u32, + pub hContext: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PRESENT_MULTIPLANE_OVERLAY_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PRESENT_MULTIPLANE_OVERLAY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_PRESENT_MULTIPLANE_OVERLAY2 { + pub hAdapter: u32, + pub Anonymous: D3DKMT_PRESENT_MULTIPLANE_OVERLAY2_0, + pub BroadcastContextCount: u32, + pub BroadcastContext: [u32; 64], + pub VidPnSourceId: u32, + pub PresentCount: u32, + pub FlipInterval: D3DDDI_FLIPINTERVAL_TYPE, + pub Flags: D3DKMT_PRESENTFLAGS, + pub PresentPlaneCount: u32, + pub pPresentPlanes: *mut D3DKMT_MULTIPLANE_OVERLAY2, + pub Duration: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PRESENT_MULTIPLANE_OVERLAY2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PRESENT_MULTIPLANE_OVERLAY2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_PRESENT_MULTIPLANE_OVERLAY2_0 { + pub hDevice: u32, + pub hContext: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PRESENT_MULTIPLANE_OVERLAY2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PRESENT_MULTIPLANE_OVERLAY2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_PRESENT_MULTIPLANE_OVERLAY3 { + pub hAdapter: u32, + pub ContextCount: u32, + pub pContextList: *mut u32, + pub VidPnSourceId: u32, + pub PresentCount: u32, + pub Flags: D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS, + pub PresentPlaneCount: u32, + pub ppPresentPlanes: *mut *mut D3DKMT_MULTIPLANE_OVERLAY3, + pub pPostComposition: *mut D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION, + pub Duration: u32, + pub HDRMetaDataType: D3DDDI_HDR_METADATA_TYPE, + pub HDRMetaDataSize: u32, + pub pHDRMetaData: *const ::core::ffi::c_void, + pub BoostRefreshRateMultiplier: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PRESENT_MULTIPLANE_OVERLAY3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PRESENT_MULTIPLANE_OVERLAY3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS { + pub Anonymous: D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS {} +impl ::core::clone::Clone for D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS_0 { + pub Anonymous: D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_PRESENT_REDIRECTED { + pub hSyncObj: u32, + pub hDevice: u32, + pub WaitedFenceValue: u64, + pub PresentHistoryToken: D3DKMT_PRESENTHISTORYTOKEN, + pub Flags: D3DKMT_PRESENT_REDIRECTED_FLAGS, + pub hSource: u32, + pub PrivateDriverDataSize: u32, + pub pPrivateDriverData: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PRESENT_REDIRECTED {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PRESENT_REDIRECTED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PRESENT_REDIRECTED_FLAGS { + pub Anonymous: D3DKMT_PRESENT_REDIRECTED_FLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_PRESENT_REDIRECTED_FLAGS {} +impl ::core::clone::Clone for D3DKMT_PRESENT_REDIRECTED_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_PRESENT_REDIRECTED_FLAGS_0 { + pub Anonymous: D3DKMT_PRESENT_REDIRECTED_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_PRESENT_REDIRECTED_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_PRESENT_REDIRECTED_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PRESENT_REDIRECTED_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_PRESENT_REDIRECTED_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_PRESENT_REDIRECTED_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_PRESENT_RGNS { + pub DirtyRectCount: u32, + pub pDirtyRects: *const super::super::super::Win32::Foundation::RECT, + pub MoveRectCount: u32, + pub pMoveRects: *const D3DKMT_MOVE_RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PRESENT_RGNS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PRESENT_RGNS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PRESENT_STATS { + pub PresentCount: u32, + pub PresentRefreshCount: u32, + pub SyncRefreshCount: u32, + pub SyncQPCTime: i64, + pub SyncGPUTime: i64, +} +impl ::core::marker::Copy for D3DKMT_PRESENT_STATS {} +impl ::core::clone::Clone for D3DKMT_PRESENT_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PRESENT_STATS_DWM { + pub PresentCount: u32, + pub PresentRefreshCount: u32, + pub PresentQPCTime: i64, + pub SyncRefreshCount: u32, + pub SyncQPCTime: i64, + pub CustomPresentDuration: u32, +} +impl ::core::marker::Copy for D3DKMT_PRESENT_STATS_DWM {} +impl ::core::clone::Clone for D3DKMT_PRESENT_STATS_DWM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PRESENT_STATS_DWM2 { + pub cbSize: u32, + pub PresentCount: u32, + pub PresentRefreshCount: u32, + pub PresentQPCTime: i64, + pub SyncRefreshCount: u32, + pub SyncQPCTime: i64, + pub CustomPresentDuration: u32, + pub VirtualSyncRefreshCount: u32, + pub VirtualSyncQPCTime: i64, +} +impl ::core::marker::Copy for D3DKMT_PRESENT_STATS_DWM2 {} +impl ::core::clone::Clone for D3DKMT_PRESENT_STATS_DWM2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_PROCESS_VERIFIER_OPTION { + pub hProcess: super::super::super::Win32::Foundation::HANDLE, + pub Type: D3DKMT_PROCESS_VERIFIER_OPTION_TYPE, + pub Mode: D3DKMT_VERIFIER_OPTION_MODE, + pub Data: D3DKMT_PROCESS_VERIFIER_OPTION_DATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_PROCESS_VERIFIER_OPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_PROCESS_VERIFIER_OPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_PROCESS_VERIFIER_OPTION_DATA { + pub VidMmFlags: D3DKMT_PROCESS_VERIFIER_VIDMM_FLAGS, + pub VidMmRestrictBudget: D3DKMT_PROCESS_VERIFIER_VIDMM_RESTRICT_BUDGET, +} +impl ::core::marker::Copy for D3DKMT_PROCESS_VERIFIER_OPTION_DATA {} +impl ::core::clone::Clone for D3DKMT_PROCESS_VERIFIER_OPTION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_PROCESS_VERIFIER_VIDMM_FLAGS { + pub Anonymous: D3DKMT_PROCESS_VERIFIER_VIDMM_FLAGS_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_PROCESS_VERIFIER_VIDMM_FLAGS {} +impl ::core::clone::Clone for D3DKMT_PROCESS_VERIFIER_VIDMM_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PROCESS_VERIFIER_VIDMM_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_PROCESS_VERIFIER_VIDMM_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_PROCESS_VERIFIER_VIDMM_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_PROCESS_VERIFIER_VIDMM_RESTRICT_BUDGET { + pub LocalBudget: u64, + pub NonLocalBudget: u64, +} +impl ::core::marker::Copy for D3DKMT_PROCESS_VERIFIER_VIDMM_RESTRICT_BUDGET {} +impl ::core::clone::Clone for D3DKMT_PROCESS_VERIFIER_VIDMM_RESTRICT_BUDGET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYADAPTERINFO { + pub hAdapter: u32, + pub Type: KMTQUERYADAPTERINFOTYPE, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYADAPTERINFO {} +impl ::core::clone::Clone for D3DKMT_QUERYADAPTERINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYALLOCATIONRESIDENCY { + pub hDevice: u32, + pub hResource: u32, + pub phAllocationList: *const u32, + pub AllocationCount: u32, + pub pResidencyStatus: *mut D3DKMT_ALLOCATIONRESIDENCYSTATUS, +} +impl ::core::marker::Copy for D3DKMT_QUERYALLOCATIONRESIDENCY {} +impl ::core::clone::Clone for D3DKMT_QUERYALLOCATIONRESIDENCY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct D3DKMT_QUERYCLOCKCALIBRATION { + pub hAdapter: u32, + pub NodeOrdinal: u32, + pub PhysicalAdapterIndex: u32, + pub ClockData: DXGK_GPUCLOCKDATA, +} +impl ::core::marker::Copy for D3DKMT_QUERYCLOCKCALIBRATION {} +impl ::core::clone::Clone for D3DKMT_QUERYCLOCKCALIBRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_QUERYFSEBLOCK { + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub Flags: D3DKMT_QUERYFSEBLOCKFLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_QUERYFSEBLOCK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_QUERYFSEBLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_QUERYFSEBLOCKFLAGS { + pub Anonymous: D3DKMT_QUERYFSEBLOCKFLAGS_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYFSEBLOCKFLAGS {} +impl ::core::clone::Clone for D3DKMT_QUERYFSEBLOCKFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYFSEBLOCKFLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYFSEBLOCKFLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_QUERYFSEBLOCKFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_QUERYPROCESSOFFERINFO { + pub cbSize: u32, + pub hProcess: super::super::super::Win32::Foundation::HANDLE, + pub DecommitUniqueness: u64, + pub DecommittableBytes: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_QUERYPROCESSOFFERINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_QUERYPROCESSOFFERINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_QUERYPROTECTEDSESSIONINFOFROMNTHANDLE { + pub hNtHandle: super::super::super::Win32::Foundation::HANDLE, + pub pPrivateDriverData: *const ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, + pub pPrivateRuntimeData: *const ::core::ffi::c_void, + pub PrivateRuntimeDataSize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_QUERYPROTECTEDSESSIONINFOFROMNTHANDLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_QUERYPROTECTEDSESSIONINFOFROMNTHANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYPROTECTEDSESSIONSTATUS { + pub hHandle: u32, + pub Status: D3DKMT_PROTECTED_SESSION_STATUS, +} +impl ::core::marker::Copy for D3DKMT_QUERYPROTECTEDSESSIONSTATUS {} +impl ::core::clone::Clone for D3DKMT_QUERYPROTECTEDSESSIONSTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYREMOTEVIDPNSOURCEFROMGDIDISPLAYNAME { + pub DeviceName: [u16; 32], + pub VidPnSourceId: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYREMOTEVIDPNSOURCEFROMGDIDISPLAYNAME {} +impl ::core::clone::Clone for D3DKMT_QUERYREMOTEVIDPNSOURCEFROMGDIDISPLAYNAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYRESOURCEINFO { + pub hDevice: u32, + pub hGlobalShare: u32, + pub pPrivateRuntimeData: *mut ::core::ffi::c_void, + pub PrivateRuntimeDataSize: u32, + pub TotalPrivateDriverDataSize: u32, + pub ResourcePrivateDriverDataSize: u32, + pub NumAllocations: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYRESOURCEINFO {} +impl ::core::clone::Clone for D3DKMT_QUERYRESOURCEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_QUERYRESOURCEINFOFROMNTHANDLE { + pub hDevice: u32, + pub hNtHandle: super::super::super::Win32::Foundation::HANDLE, + pub pPrivateRuntimeData: *mut ::core::ffi::c_void, + pub PrivateRuntimeDataSize: u32, + pub TotalPrivateDriverDataSize: u32, + pub ResourcePrivateDriverDataSize: u32, + pub NumAllocations: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_QUERYRESOURCEINFOFROMNTHANDLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_QUERYRESOURCEINFOFROMNTHANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_QUERYSTATISTICS { + pub Type: D3DKMT_QUERYSTATISTICS_TYPE, + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub hProcess: super::super::super::Win32::Foundation::HANDLE, + pub QueryResult: D3DKMT_QUERYSTATISTICS_RESULT, + pub Anonymous: D3DKMT_QUERYSTATISTICS_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_QUERYSTATISTICS_0 { + pub QuerySegment: D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT, + pub QueryProcessSegment: D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT, + pub QueryProcessSegmentGroup: D3DKMT_MEMORY_SEGMENT_GROUP, + pub QueryNode: D3DKMT_QUERYSTATISTICS_QUERY_NODE, + pub QueryProcessNode: D3DKMT_QUERYSTATISTICS_QUERY_NODE, + pub QueryVidPnSource: D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE, + pub QueryProcessVidPnSource: D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE, + pub QueryPhysAdapter: D3DKMT_QUERYSTATISTICS_QUERY_PHYSICAL_ADAPTER, + pub QueryAdapter2: D3DKMT_QUERYSTATISTICS_QUERY_ADAPTER2, + pub QuerySegment2: D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT2, + pub QueryProcessAdapter2: D3DKMT_QUERYSTATISTICS_QUERY_ADAPTER2, + pub QueryProcessSegment2: D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT2, + pub QueryProcessSegmentGroup2: D3DKMT_QUERYSTATISTICS_QUERY_PROCESS_SEGMENT_GROUP2, + pub QuerySegmentUsage: D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT_USAGE, + pub QuerySegmentGroupUsage: D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT_GROUP_USAGE, + pub QueryNode2: D3DKMT_QUERYSTATISTICS_QUERY_NODE2, + pub QueryProcessNode2: D3DKMT_QUERYSTATISTICS_QUERY_NODE2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION { + pub NbSegments: u32, + pub NodeCount: u32, + pub VidPnSourceCount: u32, + pub VSyncEnabled: u32, + pub TdrDetectedCount: u32, + pub ZeroLengthDmaBuffers: i64, + pub RestartedPeriod: u64, + pub ReferenceDmaBuffer: D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER, + pub Renaming: D3DKMT_QUERYSTATSTICS_RENAMING, + pub Preparation: D3DKMT_QUERYSTATSTICS_PREPRATION, + pub PagingFault: D3DKMT_QUERYSTATSTICS_PAGING_FAULT, + pub PagingTransfer: D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER, + pub SwizzlingRange: D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE, + pub Locks: D3DKMT_QUERYSTATSTICS_LOCKS, + pub Allocations: D3DKMT_QUERYSTATSTICS_ALLOCATIONS, + pub Terminations: D3DKMT_QUERYSTATSTICS_TERMINATIONS, + pub Flags: D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS, + pub Reserved: [u64; 7], +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS { + pub Anonymous: D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS_0 { + pub Anonymous: D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS_0_0, + pub Value: u64, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS_0_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA { + pub TotalBytesEvictedFromProcess: u64, + pub BytesBySegmentPreference: [u64; 5], +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_COUNTER { + pub Count: u32, + pub Bytes: u64, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_COUNTER {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_COUNTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_DMA_BUFFER { + pub Size: D3DKMT_QUERYSTATISTICS_COUNTER, + pub AllocationListBytes: u32, + pub PatchLocationListBytes: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_DMA_BUFFER {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_DMA_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION { + pub PacketSubmited: u32, + pub PacketCompleted: u32, + pub PacketPreempted: u32, + pub PacketFaulted: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_MEMORY { + pub TotalBytesEvicted: u64, + pub AllocsCommitted: u32, + pub AllocsResident: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_MEMORY {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_MEMORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_MEMORY_USAGE { + pub AllocatedBytes: u64, + pub FreeBytes: u64, + pub ZeroBytes: u64, + pub ModifiedBytes: u64, + pub StandbyBytes: u64, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_MEMORY_USAGE {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_MEMORY_USAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_NODE_INFORMATION { + pub GlobalInformation: D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION, + pub SystemInformation: D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION, + pub NodePerfData: D3DKMT_NODE_PERFDATA, + pub Reserved: [u32; 3], +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_NODE_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_NODE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION { + pub QueuePacket: [D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION; 8], + pub DmaPacket: [D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION; 4], +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER_INFORMATION { + pub AdapterPerfData: D3DKMT_ADAPTER_PERFDATA, + pub AdapterPerfDataCaps: D3DKMT_ADAPTER_PERFDATACAPS, + pub GpuVersion: D3DKMT_GPUVERSION, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_POLICY { + pub PreferApertureForRead: [u64; 5], + pub PreferAperture: [u64; 5], + pub MemResetOnPaging: u64, + pub RemovePagesFromWorkingSetOnPaging: u64, + pub MigrationEnabled: u64, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_POLICY {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION { + pub PreemptionCounter: [u32; 16], +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION { + pub NbSegments: u32, + pub NodeCount: u32, + pub VidPnSourceCount: u32, + pub VirtualMemoryUsage: u32, + pub DmaBuffer: D3DKMT_QUERYSTATISTICS_DMA_BUFFER, + pub CommitmentData: D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA, + pub _Policy: D3DKMT_QUERYSTATISTICS_POLICY, + pub ProcessInterferenceCounters: D3DKMT_QUERYSTATISTICS_PROCESS_INTERFERENCE_COUNTERS, + pub ClientHint: D3DKMT_CLIENTHINT, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION { + pub NodeCount: u32, + pub VidPnSourceCount: u32, + pub SystemMemory: D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY, + pub Reserved: [u64; 7], +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_PROCESS_INTERFERENCE_COUNTERS { + pub InterferenceCount: [u64; 9], +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_PROCESS_INTERFERENCE_COUNTERS {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_PROCESS_INTERFERENCE_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION { + pub RunningTime: i64, + pub ContextSwitch: u32, + pub PreemptionStatistics: D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION, + pub PacketStatistics: D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION, + pub Reserved: [u64; 8], +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_GROUP_INFORMATION { + pub Budget: u64, + pub Requested: u64, + pub Usage: u64, + pub Demoted: [u64; 5], +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_GROUP_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_GROUP_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION { + pub BytesCommitted: u64, + pub MaximumWorkingSet: u64, + pub MinimumWorkingSet: u64, + pub NbReferencedAllocationEvictedInPeriod: u32, + pub Padding: u32, + pub VideoMemory: D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY, + pub _Policy: D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY, + pub Reserved: [u64; 8], +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY { + pub UseMRU: u64, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION { + pub Frame: u32, + pub CancelledFrame: u32, + pub QueuedPresent: u32, + pub Padding: u32, + pub IsVSyncEnabled: u64, + pub VSyncOnTotalTimeMs: u64, + pub VSyncOffKeepPhaseTotalTimeMs: u64, + pub VSyncOffNoPhaseTotalTimeMs: u64, + pub Reserved: [u64; 4], +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_QUERY_ADAPTER2 { + pub PhysicalAdapterIndex: u16, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_QUERY_ADAPTER2 {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_QUERY_ADAPTER2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_QUERY_ADAPTER_INFORMATION2 { + pub PhysicalAdapterIndex: u16, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_QUERY_ADAPTER_INFORMATION2 {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_QUERY_ADAPTER_INFORMATION2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_QUERY_NODE { + pub NodeId: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_QUERY_NODE {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_QUERY_NODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_QUERY_NODE2 { + pub PhysicalAdapterIndex: u16, + pub NodeOrdinal: u16, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_QUERY_NODE2 {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_QUERY_NODE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_QUERY_PHYSICAL_ADAPTER { + pub PhysicalAdapterIndex: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_QUERY_PHYSICAL_ADAPTER {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_QUERY_PHYSICAL_ADAPTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_QUERY_PROCESS_SEGMENT_GROUP2 { + pub PhysicalAdapterIndex: u16, + pub SegmentGroup: u16, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_QUERY_PROCESS_SEGMENT_GROUP2 {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_QUERY_PROCESS_SEGMENT_GROUP2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT { + pub SegmentId: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT2 { + pub PhysicalAdapterIndex: u16, + pub SegmentId: u16, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT2 {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT_GROUP_USAGE { + pub PhysicalAdapterIndex: u16, + pub SegmentGroup: u16, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT_GROUP_USAGE {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT_GROUP_USAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT_USAGE { + pub PhysicalAdapterIndex: u16, + pub SegmentId: u16, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT_USAGE {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT_USAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE { + pub VidPnSourceId: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION { + pub PacketSubmited: u32, + pub PacketCompleted: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_QUERYSTATISTICS_RESULT { + pub AdapterInformation: D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION, + pub PhysAdapterInformation: D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER_INFORMATION, + pub SegmentInformation: D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION, + pub NodeInformation: D3DKMT_QUERYSTATISTICS_NODE_INFORMATION, + pub VidPnSourceInformation: D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION, + pub ProcessInformation: D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION, + pub ProcessAdapterInformation: D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION, + pub ProcessSegmentInformation: D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION, + pub ProcessNodeInformation: D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION, + pub ProcessVidPnSourceInformation: D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION, + pub ProcessSegmentGroupInformation: D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_GROUP_INFORMATION, + pub SegmentUsageInformation: D3DKMT_QUERYSTATISTICS_MEMORY_USAGE, + pub SegmentGroupUsageInformation: D3DKMT_QUERYSTATISTICS_MEMORY_USAGE, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_RESULT {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION { + pub CommitLimit: u64, + pub BytesCommitted: u64, + pub BytesResident: u64, + pub Memory: D3DKMT_QUERYSTATISTICS_MEMORY, + pub Aperture: u32, + pub TotalBytesEvictedByPriority: [u64; 5], + pub SystemMemoryEndAddress: u64, + pub PowerFlags: D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_0, + pub SegmentProperties: D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_1, + pub Reserved: [u64; 5], +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_0 {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_1 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_1 {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY { + pub BytesAllocated: u64, + pub BytesReserved: u64, + pub SmallAllocationBlocks: u32, + pub LargeAllocationBlocks: u32, + pub WriteCombinedBytesAllocated: u64, + pub WriteCombinedBytesReserved: u64, + pub CachedBytesAllocated: u64, + pub CachedBytesReserved: u64, + pub SectionBytesAllocated: u64, + pub SectionBytesReserved: u64, + pub BytesZeroed: u64, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY { + pub AllocsCommitted: u32, + pub AllocsResidentInP: [D3DKMT_QUERYSTATISTICS_COUNTER; 5], + pub AllocsResidentInNonPreferred: D3DKMT_QUERYSTATISTICS_COUNTER, + pub TotalBytesEvictedDueToPreparation: u64, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION { + pub GlobalInformation: D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION, + pub SystemInformation: D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION, + pub Reserved: [u64; 8], +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATSTICS_ALLOCATIONS { + pub Created: D3DKMT_QUERYSTATISTICS_COUNTER, + pub Destroyed: D3DKMT_QUERYSTATISTICS_COUNTER, + pub Opened: D3DKMT_QUERYSTATISTICS_COUNTER, + pub Closed: D3DKMT_QUERYSTATISTICS_COUNTER, + pub MigratedSuccess: D3DKMT_QUERYSTATISTICS_COUNTER, + pub MigratedFail: D3DKMT_QUERYSTATISTICS_COUNTER, + pub MigratedAbandoned: D3DKMT_QUERYSTATISTICS_COUNTER, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATSTICS_ALLOCATIONS {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATSTICS_ALLOCATIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATSTICS_LOCKS { + pub NbLocks: u32, + pub NbLocksWaitFlag: u32, + pub NbLocksDiscardFlag: u32, + pub NbLocksNoOverwrite: u32, + pub NbLocksNoReadSync: u32, + pub NbLocksLinearization: u32, + pub NbComplexLocks: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATSTICS_LOCKS {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATSTICS_LOCKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATSTICS_PAGING_FAULT { + pub Faults: D3DKMT_QUERYSTATISTICS_COUNTER, + pub FaultsFirstTimeAccess: D3DKMT_QUERYSTATISTICS_COUNTER, + pub FaultsReclaimed: D3DKMT_QUERYSTATISTICS_COUNTER, + pub FaultsMigration: D3DKMT_QUERYSTATISTICS_COUNTER, + pub FaultsIncorrectResource: D3DKMT_QUERYSTATISTICS_COUNTER, + pub FaultsLostContent: D3DKMT_QUERYSTATISTICS_COUNTER, + pub FaultsEvicted: D3DKMT_QUERYSTATISTICS_COUNTER, + pub AllocationsMEM_RESET: D3DKMT_QUERYSTATISTICS_COUNTER, + pub AllocationsUnresetSuccess: D3DKMT_QUERYSTATISTICS_COUNTER, + pub AllocationsUnresetFail: D3DKMT_QUERYSTATISTICS_COUNTER, + pub AllocationsUnresetSuccessRead: u32, + pub AllocationsUnresetFailRead: u32, + pub Evictions: D3DKMT_QUERYSTATISTICS_COUNTER, + pub EvictionsDueToPreparation: D3DKMT_QUERYSTATISTICS_COUNTER, + pub EvictionsDueToLock: D3DKMT_QUERYSTATISTICS_COUNTER, + pub EvictionsDueToClose: D3DKMT_QUERYSTATISTICS_COUNTER, + pub EvictionsDueToPurge: D3DKMT_QUERYSTATISTICS_COUNTER, + pub EvictionsDueToSuspendCPUAccess: D3DKMT_QUERYSTATISTICS_COUNTER, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATSTICS_PAGING_FAULT {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATSTICS_PAGING_FAULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER { + pub BytesFilled: u64, + pub BytesDiscarded: u64, + pub BytesMappedIntoAperture: u64, + pub BytesUnmappedFromAperture: u64, + pub BytesTransferredFromMdlToMemory: u64, + pub BytesTransferredFromMemoryToMdl: u64, + pub BytesTransferredFromApertureToMemory: u64, + pub BytesTransferredFromMemoryToAperture: u64, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATSTICS_PREPRATION { + pub BroadcastStall: u32, + pub NbDMAPrepared: u32, + pub NbDMAPreparedLongPath: u32, + pub ImmediateHighestPreparationPass: u32, + pub AllocationsTrimmed: D3DKMT_QUERYSTATISTICS_COUNTER, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATSTICS_PREPRATION {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATSTICS_PREPRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER { + pub NbCall: u32, + pub NbAllocationsReferenced: u32, + pub MaxNbAllocationsReferenced: u32, + pub NbNULLReference: u32, + pub NbWriteReference: u32, + pub NbRenamedAllocationsReferenced: u32, + pub NbIterationSearchingRenamedAllocation: u32, + pub NbLockedAllocationReferenced: u32, + pub NbAllocationWithValidPrepatchingInfoReferenced: u32, + pub NbAllocationWithInvalidPrepatchingInfoReferenced: u32, + pub NbDMABufferSuccessfullyPrePatched: u32, + pub NbPrimariesReferencesOverflow: u32, + pub NbAllocationWithNonPreferredResources: u32, + pub NbAllocationInsertedInMigrationTable: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATSTICS_RENAMING { + pub NbAllocationsRenamed: u32, + pub NbAllocationsShrinked: u32, + pub NbRenamedBuffer: u32, + pub MaxRenamingListLength: u32, + pub NbFailuresDueToRenamingLimit: u32, + pub NbFailuresDueToCreateAllocation: u32, + pub NbFailuresDueToOpenAllocation: u32, + pub NbFailuresDueToLowResource: u32, + pub NbFailuresDueToNonRetiredLimit: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATSTICS_RENAMING {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATSTICS_RENAMING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE { + pub NbRangesAcquired: u32, + pub NbRangesReleased: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERYSTATSTICS_TERMINATIONS { + pub TerminatedShared: D3DKMT_QUERYSTATISTICS_COUNTER, + pub TerminatedNonShared: D3DKMT_QUERYSTATISTICS_COUNTER, + pub DestroyedShared: D3DKMT_QUERYSTATISTICS_COUNTER, + pub DestroyedNonShared: D3DKMT_QUERYSTATISTICS_COUNTER, +} +impl ::core::marker::Copy for D3DKMT_QUERYSTATSTICS_TERMINATIONS {} +impl ::core::clone::Clone for D3DKMT_QUERYSTATSTICS_TERMINATIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_QUERYVIDEOMEMORYINFO { + pub hProcess: super::super::super::Win32::Foundation::HANDLE, + pub hAdapter: u32, + pub MemorySegmentGroup: D3DKMT_MEMORY_SEGMENT_GROUP, + pub Budget: u64, + pub CurrentUsage: u64, + pub CurrentReservation: u64, + pub AvailableForReservation: u64, + pub PhysicalAdapterIndex: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_QUERYVIDEOMEMORYINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_QUERYVIDEOMEMORYINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_QUERYVIDPNEXCLUSIVEOWNERSHIP { + pub hProcess: super::super::super::Win32::Foundation::HANDLE, + pub hWindow: super::super::super::Win32::Foundation::HWND, + pub VidPnSourceId: u32, + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub OwnerType: D3DKMT_VIDPNSOURCEOWNER_TYPE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_QUERYVIDPNEXCLUSIVEOWNERSHIP {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_QUERYVIDPNEXCLUSIVEOWNERSHIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERY_ADAPTER_UNIQUE_GUID { + pub AdapterUniqueGUID: [u16; 40], +} +impl ::core::marker::Copy for D3DKMT_QUERY_ADAPTER_UNIQUE_GUID {} +impl ::core::clone::Clone for D3DKMT_QUERY_ADAPTER_UNIQUE_GUID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERY_DEVICE_IDS { + pub PhysicalAdapterIndex: u32, + pub DeviceIds: D3DKMT_DEVICE_IDS, +} +impl ::core::marker::Copy for D3DKMT_QUERY_DEVICE_IDS {} +impl ::core::clone::Clone for D3DKMT_QUERY_DEVICE_IDS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERY_GPUMMU_CAPS { + pub PhysicalAdapterIndex: u32, + pub Caps: D3DKMT_GPUMMU_CAPS, +} +impl ::core::marker::Copy for D3DKMT_QUERY_GPUMMU_CAPS {} +impl ::core::clone::Clone for D3DKMT_QUERY_GPUMMU_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERY_MIRACAST_DRIVER_TYPE { + pub MiracastDriverType: D3DKMT_MIRACAST_DRIVER_TYPE, +} +impl ::core::marker::Copy for D3DKMT_QUERY_MIRACAST_DRIVER_TYPE {} +impl ::core::clone::Clone for D3DKMT_QUERY_MIRACAST_DRIVER_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERY_PHYSICAL_ADAPTER_PNP_KEY { + pub PhysicalAdapterIndex: u32, + pub PnPKeyType: D3DKMT_PNP_KEY_TYPE, + pub pDest: ::windows_sys::core::PWSTR, + pub pCchDest: *mut u32, +} +impl ::core::marker::Copy for D3DKMT_QUERY_PHYSICAL_ADAPTER_PNP_KEY {} +impl ::core::clone::Clone for D3DKMT_QUERY_PHYSICAL_ADAPTER_PNP_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_QUERY_SCANOUT_CAPS { + pub VidPnSourceId: u32, + pub Caps: u32, +} +impl ::core::marker::Copy for D3DKMT_QUERY_SCANOUT_CAPS {} +impl ::core::clone::Clone for D3DKMT_QUERY_SCANOUT_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_RECLAIMALLOCATIONS { + pub hDevice: u32, + pub pResources: *mut u32, + pub HandleList: *const u32, + pub pDiscarded: *mut super::super::super::Win32::Foundation::BOOL, + pub NumAllocations: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_RECLAIMALLOCATIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_RECLAIMALLOCATIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_RECLAIMALLOCATIONS2 { + pub hPagingQueue: u32, + pub NumAllocations: u32, + pub pResources: *mut u32, + pub HandleList: *const u32, + pub Anonymous: D3DKMT_RECLAIMALLOCATIONS2_0, + pub PagingFenceValue: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_RECLAIMALLOCATIONS2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_RECLAIMALLOCATIONS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_RECLAIMALLOCATIONS2_0 { + pub pDiscarded: *mut super::super::super::Win32::Foundation::BOOL, + pub pResults: *mut D3DDDI_RECLAIM_RESULT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_RECLAIMALLOCATIONS2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_RECLAIMALLOCATIONS2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_REGISTERBUDGETCHANGENOTIFICATION { + pub hDevice: u32, + pub Callback: PFND3DKMT_BUDGETCHANGENOTIFICATIONCALLBACK, + pub Context: *mut ::core::ffi::c_void, + pub Handle: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for D3DKMT_REGISTERBUDGETCHANGENOTIFICATION {} +impl ::core::clone::Clone for D3DKMT_REGISTERBUDGETCHANGENOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_REGISTERTRIMNOTIFICATION { + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub hDevice: u32, + pub Callback: PFND3DKMT_TRIMNOTIFICATIONCALLBACK, + pub Context: *mut ::core::ffi::c_void, + pub Handle: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_REGISTERTRIMNOTIFICATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_REGISTERTRIMNOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_RELEASEKEYEDMUTEX { + pub hKeyedMutex: u32, + pub Key: u64, + pub FenceValue: u64, +} +impl ::core::marker::Copy for D3DKMT_RELEASEKEYEDMUTEX {} +impl ::core::clone::Clone for D3DKMT_RELEASEKEYEDMUTEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_RELEASEKEYEDMUTEX2 { + pub hKeyedMutex: u32, + pub Key: u64, + pub FenceValue: u64, + pub pPrivateRuntimeData: *mut ::core::ffi::c_void, + pub PrivateRuntimeDataSize: u32, +} +impl ::core::marker::Copy for D3DKMT_RELEASEKEYEDMUTEX2 {} +impl ::core::clone::Clone for D3DKMT_RELEASEKEYEDMUTEX2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_RENDER { + pub Anonymous: D3DKMT_RENDER_0, + pub CommandOffset: u32, + pub CommandLength: u32, + pub AllocationCount: u32, + pub PatchLocationCount: u32, + pub pNewCommandBuffer: *mut ::core::ffi::c_void, + pub NewCommandBufferSize: u32, + pub pNewAllocationList: *mut D3DDDI_ALLOCATIONLIST, + pub NewAllocationListSize: u32, + pub pNewPatchLocationList: *mut D3DDDI_PATCHLOCATIONLIST, + pub NewPatchLocationListSize: u32, + pub Flags: D3DKMT_RENDERFLAGS, + pub PresentHistoryToken: u64, + pub BroadcastContextCount: u32, + pub BroadcastContext: [u32; 64], + pub QueuedBufferCount: u32, + pub NewCommandBuffer: u64, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, +} +impl ::core::marker::Copy for D3DKMT_RENDER {} +impl ::core::clone::Clone for D3DKMT_RENDER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_RENDER_0 { + pub hDevice: u32, + pub hContext: u32, +} +impl ::core::marker::Copy for D3DKMT_RENDER_0 {} +impl ::core::clone::Clone for D3DKMT_RENDER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_RENDERFLAGS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_RENDERFLAGS {} +impl ::core::clone::Clone for D3DKMT_RENDERFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_REQUEST_MACHINE_CRASH_ESCAPE { + pub Param1: usize, + pub Param2: usize, + pub Param3: usize, +} +impl ::core::marker::Copy for D3DKMT_REQUEST_MACHINE_CRASH_ESCAPE {} +impl ::core::clone::Clone for D3DKMT_REQUEST_MACHINE_CRASH_ESCAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SCATTERBLT { + pub hLogicalSurfaceDestination: u64, + pub hDestinationCompSurfDWM: i64, + pub DestinationCompositionBindingId: u64, + pub SourceRect: super::super::super::Win32::Foundation::RECT, + pub DestinationOffset: super::super::super::Win32::Foundation::POINT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SCATTERBLT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SCATTERBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SCATTERBLTS { + pub NumBlts: u32, + pub Blts: [D3DKMT_SCATTERBLT; 12], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SCATTERBLTS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SCATTERBLTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SEGMENTGROUPSIZEINFO { + pub PhysicalAdapterIndex: u32, + pub LegacyInfo: D3DKMT_SEGMENTSIZEINFO, + pub LocalMemory: u64, + pub NonLocalMemory: u64, + pub NonBudgetMemory: u64, +} +impl ::core::marker::Copy for D3DKMT_SEGMENTGROUPSIZEINFO {} +impl ::core::clone::Clone for D3DKMT_SEGMENTGROUPSIZEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SEGMENTSIZEINFO { + pub DedicatedVideoMemorySize: u64, + pub DedicatedSystemMemorySize: u64, + pub SharedSystemMemorySize: u64, +} +impl ::core::marker::Copy for D3DKMT_SEGMENTSIZEINFO {} +impl ::core::clone::Clone for D3DKMT_SEGMENTSIZEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SEGMENT_CAPS { + pub Size: u64, + pub PageSize: u32, + pub SegmentId: u32, + pub bAperture: super::super::super::Win32::Foundation::BOOLEAN, + pub bReservedSysMem: super::super::super::Win32::Foundation::BOOLEAN, + pub BudgetGroup: D3DKMT_MEMORY_SEGMENT_GROUP, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SEGMENT_CAPS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SEGMENT_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETALLOCATIONPRIORITY { + pub hDevice: u32, + pub hResource: u32, + pub phAllocationList: *const u32, + pub AllocationCount: u32, + pub pPriorities: *const u32, +} +impl ::core::marker::Copy for D3DKMT_SETALLOCATIONPRIORITY {} +impl ::core::clone::Clone for D3DKMT_SETALLOCATIONPRIORITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETCONTEXTINPROCESSSCHEDULINGPRIORITY { + pub hContext: u32, + pub Priority: i32, +} +impl ::core::marker::Copy for D3DKMT_SETCONTEXTINPROCESSSCHEDULINGPRIORITY {} +impl ::core::clone::Clone for D3DKMT_SETCONTEXTINPROCESSSCHEDULINGPRIORITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETCONTEXTSCHEDULINGPRIORITY { + pub hContext: u32, + pub Priority: i32, +} +impl ::core::marker::Copy for D3DKMT_SETCONTEXTSCHEDULINGPRIORITY {} +impl ::core::clone::Clone for D3DKMT_SETCONTEXTSCHEDULINGPRIORITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETDISPLAYMODE { + pub hDevice: u32, + pub hPrimaryAllocation: u32, + pub ScanLineOrdering: D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING, + pub DisplayOrientation: D3DDDI_ROTATION, + pub PrivateDriverFormatAttribute: u32, + pub Flags: D3DKMT_SETDISPLAYMODE_FLAGS, +} +impl ::core::marker::Copy for D3DKMT_SETDISPLAYMODE {} +impl ::core::clone::Clone for D3DKMT_SETDISPLAYMODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETDISPLAYMODE_FLAGS { + pub _bitfield1: u8, + pub _bitfield2: u32, +} +impl ::core::marker::Copy for D3DKMT_SETDISPLAYMODE_FLAGS {} +impl ::core::clone::Clone for D3DKMT_SETDISPLAYMODE_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETDISPLAYPRIVATEDRIVERFORMAT { + pub hDevice: u32, + pub VidPnSourceId: u32, + pub PrivateDriverFormatAttribute: u32, +} +impl ::core::marker::Copy for D3DKMT_SETDISPLAYPRIVATEDRIVERFORMAT {} +impl ::core::clone::Clone for D3DKMT_SETDISPLAYPRIVATEDRIVERFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SETFSEBLOCK { + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub Flags: D3DKMT_SETFSEBLOCKFLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SETFSEBLOCK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SETFSEBLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_SETFSEBLOCKFLAGS { + pub Anonymous: D3DKMT_SETFSEBLOCKFLAGS_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_SETFSEBLOCKFLAGS {} +impl ::core::clone::Clone for D3DKMT_SETFSEBLOCKFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETFSEBLOCKFLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_SETFSEBLOCKFLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_SETFSEBLOCKFLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETGAMMARAMP { + pub hDevice: u32, + pub VidPnSourceId: u32, + pub Type: D3DDDI_GAMMARAMP_TYPE, + pub Anonymous: D3DKMT_SETGAMMARAMP_0, + pub Size: u32, +} +impl ::core::marker::Copy for D3DKMT_SETGAMMARAMP {} +impl ::core::clone::Clone for D3DKMT_SETGAMMARAMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_SETGAMMARAMP_0 { + pub pGammaRampRgb256x3x16: *mut D3DDDI_GAMMA_RAMP_RGB256x3x16, + pub pGammaRampDXGI1: *mut D3DDDI_GAMMA_RAMP_DXGI_1, +} +impl ::core::marker::Copy for D3DKMT_SETGAMMARAMP_0 {} +impl ::core::clone::Clone for D3DKMT_SETGAMMARAMP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SETHWPROTECTIONTEARDOWNRECOVERY { + pub hAdapter: u32, + pub Recovered: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SETHWPROTECTIONTEARDOWNRECOVERY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SETHWPROTECTIONTEARDOWNRECOVERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETQUEUEDLIMIT { + pub hDevice: u32, + pub Type: D3DKMT_QUEUEDLIMIT_TYPE, + pub Anonymous: D3DKMT_SETQUEUEDLIMIT_0, +} +impl ::core::marker::Copy for D3DKMT_SETQUEUEDLIMIT {} +impl ::core::clone::Clone for D3DKMT_SETQUEUEDLIMIT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_SETQUEUEDLIMIT_0 { + pub QueuedPresentLimit: u32, + pub Anonymous: D3DKMT_SETQUEUEDLIMIT_0_0, +} +impl ::core::marker::Copy for D3DKMT_SETQUEUEDLIMIT_0 {} +impl ::core::clone::Clone for D3DKMT_SETQUEUEDLIMIT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETQUEUEDLIMIT_0_0 { + pub VidPnSourceId: u32, + pub QueuedPendingFlipLimit: u32, +} +impl ::core::marker::Copy for D3DKMT_SETQUEUEDLIMIT_0_0 {} +impl ::core::clone::Clone for D3DKMT_SETQUEUEDLIMIT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SETSTABLEPOWERSTATE { + pub hAdapter: u32, + pub Enabled: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SETSTABLEPOWERSTATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SETSTABLEPOWERSTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETSYNCREFRESHCOUNTWAITTARGET { + pub hAdapter: u32, + pub hDevice: u32, + pub VidPnSourceId: u32, + pub TargetSyncRefreshCount: u32, +} +impl ::core::marker::Copy for D3DKMT_SETSYNCREFRESHCOUNTWAITTARGET {} +impl ::core::clone::Clone for D3DKMT_SETSYNCREFRESHCOUNTWAITTARGET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SETVIDPNSOURCEHWPROTECTION { + pub hAdapter: u32, + pub VidPnSourceId: u32, + pub HwProtected: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SETVIDPNSOURCEHWPROTECTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SETVIDPNSOURCEHWPROTECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETVIDPNSOURCEOWNER { + pub hDevice: u32, + pub pType: *const D3DKMT_VIDPNSOURCEOWNER_TYPE, + pub pVidPnSourceId: *const u32, + pub VidPnSourceCount: u32, +} +impl ::core::marker::Copy for D3DKMT_SETVIDPNSOURCEOWNER {} +impl ::core::clone::Clone for D3DKMT_SETVIDPNSOURCEOWNER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETVIDPNSOURCEOWNER1 { + pub Version0: D3DKMT_SETVIDPNSOURCEOWNER, + pub Flags: D3DKMT_VIDPNSOURCEOWNER_FLAGS, +} +impl ::core::marker::Copy for D3DKMT_SETVIDPNSOURCEOWNER1 {} +impl ::core::clone::Clone for D3DKMT_SETVIDPNSOURCEOWNER1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SETVIDPNSOURCEOWNER2 { + pub Version1: D3DKMT_SETVIDPNSOURCEOWNER1, + pub pVidPnSourceNtHandles: *const isize, +} +impl ::core::marker::Copy for D3DKMT_SETVIDPNSOURCEOWNER2 {} +impl ::core::clone::Clone for D3DKMT_SETVIDPNSOURCEOWNER2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SET_COLORSPACE_TRANSFORM { + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub VidPnTargetId: u32, + pub Type: D3DDDI_GAMMARAMP_TYPE, + pub Size: u32, + pub Anonymous: D3DKMT_SET_COLORSPACE_TRANSFORM_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SET_COLORSPACE_TRANSFORM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SET_COLORSPACE_TRANSFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_SET_COLORSPACE_TRANSFORM_0 { + pub pColorSpaceTransform: *mut D3DKMDT_3x4_COLORSPACE_TRANSFORM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SET_COLORSPACE_TRANSFORM_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SET_COLORSPACE_TRANSFORM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SHAREDPRIMARYLOCKNOTIFICATION { + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub VidPnSourceId: u32, + pub LockRect: super::super::super::Win32::Foundation::RECTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SHAREDPRIMARYLOCKNOTIFICATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SHAREDPRIMARYLOCKNOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SHAREDPRIMARYUNLOCKNOTIFICATION { + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub VidPnSourceId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SHAREDPRIMARYUNLOCKNOTIFICATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SHAREDPRIMARYUNLOCKNOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SHAREOBJECTWITHHOST { + pub hDevice: u32, + pub hObject: u32, + pub Reserved: u64, + pub hVailProcessNtHandle: u64, +} +impl ::core::marker::Copy for D3DKMT_SHAREOBJECTWITHHOST {} +impl ::core::clone::Clone for D3DKMT_SHAREOBJECTWITHHOST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SIGNALSYNCHRONIZATIONOBJECT { + pub hContext: u32, + pub ObjectCount: u32, + pub ObjectHandleArray: [u32; 32], + pub Flags: D3DDDICB_SIGNALFLAGS, +} +impl ::core::marker::Copy for D3DKMT_SIGNALSYNCHRONIZATIONOBJECT {} +impl ::core::clone::Clone for D3DKMT_SIGNALSYNCHRONIZATIONOBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2 { + pub hContext: u32, + pub ObjectCount: u32, + pub ObjectHandleArray: [u32; 32], + pub Flags: D3DDDICB_SIGNALFLAGS, + pub BroadcastContextCount: u32, + pub BroadcastContext: [u32; 64], + pub Anonymous: D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_0 { + pub Fence: D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_0_0, + pub CpuEventHandle: super::super::super::Win32::Foundation::HANDLE, + pub Reserved: [u64; 8], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_0_0 { + pub FenceValue: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMCPU { + pub hDevice: u32, + pub ObjectCount: u32, + pub ObjectHandleArray: *const u32, + pub FenceValueArray: *const u64, + pub Flags: D3DDDICB_SIGNALFLAGS, +} +impl ::core::marker::Copy for D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMCPU {} +impl ::core::clone::Clone for D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMCPU { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU { + pub hContext: u32, + pub ObjectCount: u32, + pub ObjectHandleArray: *const u32, + pub Anonymous: D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU_0, +} +impl ::core::marker::Copy for D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU {} +impl ::core::clone::Clone for D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU_0 { + pub MonitoredFenceValueArray: *const u64, + pub Reserved: [u64; 8], +} +impl ::core::marker::Copy for D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU_0 {} +impl ::core::clone::Clone for D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2 { + pub ObjectCount: u32, + pub ObjectHandleArray: *const u32, + pub Flags: D3DDDICB_SIGNALFLAGS, + pub BroadcastContextCount: u32, + pub BroadcastContextArray: *const u32, + pub Anonymous: D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2_0 { + pub FenceValue: u64, + pub CpuEventHandle: super::super::super::Win32::Foundation::HANDLE, + pub MonitoredFenceValueArray: *const u64, + pub Reserved: [u64; 8], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_STANDARDALLOCATION_EXISTINGHEAP { + pub Size: usize, +} +impl ::core::marker::Copy for D3DKMT_STANDARDALLOCATION_EXISTINGHEAP {} +impl ::core::clone::Clone for D3DKMT_STANDARDALLOCATION_EXISTINGHEAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SUBMITCOMMAND { + pub Commands: u64, + pub CommandLength: u32, + pub Flags: D3DKMT_SUBMITCOMMANDFLAGS, + pub PresentHistoryToken: u64, + pub BroadcastContextCount: u32, + pub BroadcastContext: [u32; 64], + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub PrivateDriverDataSize: u32, + pub NumPrimaries: u32, + pub WrittenPrimaries: [u32; 16], + pub NumHistoryBuffers: u32, + pub HistoryBufferArray: *mut u32, +} +impl ::core::marker::Copy for D3DKMT_SUBMITCOMMAND {} +impl ::core::clone::Clone for D3DKMT_SUBMITCOMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SUBMITCOMMANDFLAGS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_SUBMITCOMMANDFLAGS {} +impl ::core::clone::Clone for D3DKMT_SUBMITCOMMANDFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SUBMITCOMMANDTOHWQUEUE { + pub hHwQueue: u32, + pub HwQueueProgressFenceId: u64, + pub CommandBuffer: u64, + pub CommandLength: u32, + pub PrivateDriverDataSize: u32, + pub pPrivateDriverData: *mut ::core::ffi::c_void, + pub NumPrimaries: u32, + pub WrittenPrimaries: *const u32, +} +impl ::core::marker::Copy for D3DKMT_SUBMITCOMMANDTOHWQUEUE {} +impl ::core::clone::Clone for D3DKMT_SUBMITCOMMANDTOHWQUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SUBMITPRESENTBLTTOHWQUEUE { + pub hHwQueue: u32, + pub HwQueueProgressFenceId: u64, + pub PrivatePresentData: D3DKMT_PRESENT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SUBMITPRESENTBLTTOHWQUEUE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SUBMITPRESENTBLTTOHWQUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_SUBMITPRESENTTOHWQUEUE { + pub hHwQueues: *mut u32, + pub PrivatePresentData: D3DKMT_PRESENT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_SUBMITPRESENTTOHWQUEUE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_SUBMITPRESENTTOHWQUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SUBMITSIGNALSYNCOBJECTSTOHWQUEUE { + pub Flags: D3DDDICB_SIGNALFLAGS, + pub BroadcastHwQueueCount: u32, + pub BroadcastHwQueueArray: *const u32, + pub ObjectCount: u32, + pub ObjectHandleArray: *const u32, + pub FenceValueArray: *const u64, +} +impl ::core::marker::Copy for D3DKMT_SUBMITSIGNALSYNCOBJECTSTOHWQUEUE {} +impl ::core::clone::Clone for D3DKMT_SUBMITSIGNALSYNCOBJECTSTOHWQUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SUBMITWAITFORSYNCOBJECTSTOHWQUEUE { + pub hHwQueue: u32, + pub ObjectCount: u32, + pub ObjectHandleArray: *const u32, + pub FenceValueArray: *const u64, +} +impl ::core::marker::Copy for D3DKMT_SUBMITWAITFORSYNCOBJECTSTOHWQUEUE {} +impl ::core::clone::Clone for D3DKMT_SUBMITWAITFORSYNCOBJECTSTOHWQUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_SURFACECOMPLETE_PRESENTHISTORYTOKEN { + pub hLogicalSurface: u64, +} +impl ::core::marker::Copy for D3DKMT_SURFACECOMPLETE_PRESENTHISTORYTOKEN {} +impl ::core::clone::Clone for D3DKMT_SURFACECOMPLETE_PRESENTHISTORYTOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_TDRDBGCTRL_ESCAPE { + pub TdrControl: D3DKMT_TDRDBGCTRLTYPE, + pub Anonymous: D3DKMT_TDRDBGCTRL_ESCAPE_0, +} +impl ::core::marker::Copy for D3DKMT_TDRDBGCTRL_ESCAPE {} +impl ::core::clone::Clone for D3DKMT_TDRDBGCTRL_ESCAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_TDRDBGCTRL_ESCAPE_0 { + pub NodeOrdinal: u32, +} +impl ::core::marker::Copy for D3DKMT_TDRDBGCTRL_ESCAPE_0 {} +impl ::core::clone::Clone for D3DKMT_TDRDBGCTRL_ESCAPE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_TRACKEDWORKLOAD_SUPPORT { + pub PhysicalAdapterIndex: u32, + pub EngineType: DXGK_ENGINE_TYPE, + pub Support: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_TRACKEDWORKLOAD_SUPPORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_TRACKEDWORKLOAD_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_TRIMNOTIFICATION { + pub Context: *mut ::core::ffi::c_void, + pub Flags: D3DDDI_TRIMRESIDENCYSET_FLAGS, + pub NumBytesToTrim: u64, +} +impl ::core::marker::Copy for D3DKMT_TRIMNOTIFICATION {} +impl ::core::clone::Clone for D3DKMT_TRIMNOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_TRIMPROCESSCOMMITMENT { + pub cbSize: u32, + pub hProcess: super::super::super::Win32::Foundation::HANDLE, + pub Flags: D3DKMT_TRIMPROCESSCOMMITMENT_FLAGS, + pub DecommitRequested: u64, + pub NumBytesDecommitted: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_TRIMPROCESSCOMMITMENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_TRIMPROCESSCOMMITMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_TRIMPROCESSCOMMITMENT_FLAGS { + pub Anonymous: D3DKMT_TRIMPROCESSCOMMITMENT_FLAGS_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_TRIMPROCESSCOMMITMENT_FLAGS {} +impl ::core::clone::Clone for D3DKMT_TRIMPROCESSCOMMITMENT_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_TRIMPROCESSCOMMITMENT_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_TRIMPROCESSCOMMITMENT_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_TRIMPROCESSCOMMITMENT_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_UMDFILENAMEINFO { + pub Version: KMTUMDVERSION, + pub UmdFileName: [u16; 260], +} +impl ::core::marker::Copy for D3DKMT_UMDFILENAMEINFO {} +impl ::core::clone::Clone for D3DKMT_UMDFILENAMEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_UMD_DRIVER_VERSION { + pub DriverVersion: i64, +} +impl ::core::marker::Copy for D3DKMT_UMD_DRIVER_VERSION {} +impl ::core::clone::Clone for D3DKMT_UMD_DRIVER_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_UNLOCK { + pub hDevice: u32, + pub NumAllocations: u32, + pub phAllocations: *const u32, +} +impl ::core::marker::Copy for D3DKMT_UNLOCK {} +impl ::core::clone::Clone for D3DKMT_UNLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_UNLOCK2 { + pub hDevice: u32, + pub hAllocation: u32, +} +impl ::core::marker::Copy for D3DKMT_UNLOCK2 {} +impl ::core::clone::Clone for D3DKMT_UNLOCK2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_UNPINDIRECTFLIPRESOURCES { + pub hDevice: u32, + pub ResourceCount: u32, + pub pResourceList: *mut u32, +} +impl ::core::marker::Copy for D3DKMT_UNPINDIRECTFLIPRESOURCES {} +impl ::core::clone::Clone for D3DKMT_UNPINDIRECTFLIPRESOURCES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_UNREGISTERBUDGETCHANGENOTIFICATION { + pub Handle: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for D3DKMT_UNREGISTERBUDGETCHANGENOTIFICATION {} +impl ::core::clone::Clone for D3DKMT_UNREGISTERBUDGETCHANGENOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_UNREGISTERTRIMNOTIFICATION { + pub Handle: *mut ::core::ffi::c_void, + pub Callback: PFND3DKMT_TRIMNOTIFICATIONCALLBACK, +} +impl ::core::marker::Copy for D3DKMT_UNREGISTERTRIMNOTIFICATION {} +impl ::core::clone::Clone for D3DKMT_UNREGISTERTRIMNOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_UPDATEGPUVIRTUALADDRESS { + pub hDevice: u32, + pub hContext: u32, + pub hFenceObject: u32, + pub NumOperations: u32, + pub Operations: *mut D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION, + pub Reserved0: usize, + pub Reserved1: u64, + pub FenceValue: u64, + pub Flags: D3DKMT_UPDATEGPUVIRTUALADDRESS_0, +} +impl ::core::marker::Copy for D3DKMT_UPDATEGPUVIRTUALADDRESS {} +impl ::core::clone::Clone for D3DKMT_UPDATEGPUVIRTUALADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_UPDATEGPUVIRTUALADDRESS_0 { + pub Anonymous: D3DKMT_UPDATEGPUVIRTUALADDRESS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_UPDATEGPUVIRTUALADDRESS_0 {} +impl ::core::clone::Clone for D3DKMT_UPDATEGPUVIRTUALADDRESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_UPDATEGPUVIRTUALADDRESS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_UPDATEGPUVIRTUALADDRESS_0_0 {} +impl ::core::clone::Clone for D3DKMT_UPDATEGPUVIRTUALADDRESS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_UPDATEOVERLAY { + pub hDevice: u32, + pub hOverlay: u32, + pub OverlayInfo: D3DDDI_KERNELOVERLAYINFO, +} +impl ::core::marker::Copy for D3DKMT_UPDATEOVERLAY {} +impl ::core::clone::Clone for D3DKMT_UPDATEOVERLAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_VAD_DESC { + pub VadIndex: u32, + pub VadAddress: u64, + pub NumMappedRanges: u32, + pub VadType: u32, + pub StartAddress: u64, + pub EndAddress: u64, +} +impl ::core::marker::Copy for D3DKMT_VAD_DESC {} +impl ::core::clone::Clone for D3DKMT_VAD_DESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_VA_RANGE_DESC { + pub VadAddress: u64, + pub VaRangeIndex: u32, + pub PhysicalAdapterIndex: u32, + pub StartAddress: u64, + pub EndAddress: u64, + pub DriverProtection: u64, + pub OwnerType: u32, + pub pOwner: u64, + pub OwnerOffset: u64, + pub Protection: u32, +} +impl ::core::marker::Copy for D3DKMT_VA_RANGE_DESC {} +impl ::core::clone::Clone for D3DKMT_VA_RANGE_DESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_VGPUINTERFACEID { + pub VirtualGpuIntefaceId: [u16; 260], +} +impl ::core::marker::Copy for D3DKMT_VGPUINTERFACEID {} +impl ::core::clone::Clone for D3DKMT_VGPUINTERFACEID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE { + pub Type: D3DKMT_VIDMMESCAPETYPE, + pub Anonymous: D3DKMT_VIDMM_ESCAPE_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_VIDMM_ESCAPE_0 { + pub SetFault: D3DKMT_VIDMM_ESCAPE_0_9, + pub Evict: D3DKMT_VIDMM_ESCAPE_0_4, + pub EvictByNtHandle: D3DKMT_VIDMM_ESCAPE_0_3, + pub GetVads: D3DKMT_VIDMM_ESCAPE_0_6, + pub SetBudget: D3DKMT_VIDMM_ESCAPE_0_8, + pub SuspendProcess: D3DKMT_VIDMM_ESCAPE_0_11, + pub ResumeProcess: D3DKMT_VIDMM_ESCAPE_0_7, + pub GetBudget: D3DKMT_VIDMM_ESCAPE_0_5, + pub SetTrimIntervals: D3DKMT_VIDMM_ESCAPE_0_10, + pub EvictByCriteria: D3DKMT_EVICTION_CRITERIA, + pub Wake: D3DKMT_VIDMM_ESCAPE_0_13, + pub Defrag: D3DKMT_VIDMM_ESCAPE_0_0, + pub DelayExecution: D3DKMT_VIDMM_ESCAPE_0_1, + pub VerifyIntegrity: D3DKMT_VIDMM_ESCAPE_0_12, + pub DelayedEvictionConfig: D3DKMT_VIDMM_ESCAPE_0_2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_0 { + pub Operation: D3DKMT_DEFRAG_ESCAPE_OPERATION, + pub SegmentId: u32, + pub TotalCommitted: u64, + pub TotalFree: u64, + pub LargestGapBefore: u64, + pub LargestGapAfter: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_1 { + pub hPagingQueue: u32, + pub PhysicalAdapterIndex: u32, + pub Milliseconds: u32, + pub PagingFenceValue: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_2 { + pub TimerValue: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_3 { + pub NtHandle: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_4 { + pub ResourceHandle: u32, + pub AllocationHandle: u32, + pub hProcess: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_4 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_5 { + pub NumBytesToTrim: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_5 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_6 { + pub Anonymous: D3DKMT_VIDMM_ESCAPE_0_6_0, + pub Command: D3DKMT_VAD_ESCAPE_COMMAND, + pub Status: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_6 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_VIDMM_ESCAPE_0_6_0 { + pub GetNumVads: D3DKMT_VIDMM_ESCAPE_0_6_0_0, + pub GetVad: D3DKMT_VAD_DESC, + pub GetVadRange: D3DKMT_VA_RANGE_DESC, + pub GetGpuMmuCaps: D3DKMT_GET_GPUMMU_CAPS, + pub GetPte: D3DKMT_GET_PTE, + pub GetSegmentCaps: D3DKMT_GET_SEGMENT_CAPS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_6_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_6_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_6_0_0 { + pub NumVads: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_6_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_6_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_7 { + pub hProcess: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_7 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_8 { + pub LocalMemoryBudget: u64, + pub SystemMemoryBudget: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_8 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_9 { + pub Anonymous: D3DKMT_VIDMM_ESCAPE_0_9_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_9 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_VIDMM_ESCAPE_0_9_0 { + pub Anonymous: D3DKMT_VIDMM_ESCAPE_0_9_0_0, + pub Value: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_9_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_9_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_9_0_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_9_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_9_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_10 { + pub MinTrimInterval: u32, + pub MaxTrimInterval: u32, + pub IdleTrimInterval: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_10 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_11 { + pub hProcess: super::super::super::Win32::Foundation::HANDLE, + pub bAllowWakeOnSubmission: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_11 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_12 { + pub SegmentId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_12 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_12 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDMM_ESCAPE_0_13 { + pub bFlush: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDMM_ESCAPE_0_13 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDMM_ESCAPE_0_13 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_VIDPNSOURCEOWNER_FLAGS { + pub Anonymous: D3DKMT_VIDPNSOURCEOWNER_FLAGS_0, +} +impl ::core::marker::Copy for D3DKMT_VIDPNSOURCEOWNER_FLAGS {} +impl ::core::clone::Clone for D3DKMT_VIDPNSOURCEOWNER_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_VIDPNSOURCEOWNER_FLAGS_0 { + pub Anonymous: D3DKMT_VIDPNSOURCEOWNER_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_VIDPNSOURCEOWNER_FLAGS_0 {} +impl ::core::clone::Clone for D3DKMT_VIDPNSOURCEOWNER_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_VIDPNSOURCEOWNER_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_VIDPNSOURCEOWNER_FLAGS_0_0 {} +impl ::core::clone::Clone for D3DKMT_VIDPNSOURCEOWNER_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDSCH_ESCAPE { + pub Type: D3DKMT_VIDSCHESCAPETYPE, + pub Anonymous: D3DKMT_VIDSCH_ESCAPE_0, + pub VirtualRefreshRateControl: D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDSCH_ESCAPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDSCH_ESCAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_VIDSCH_ESCAPE_0 { + pub PreemptionControl: super::super::super::Win32::Foundation::BOOL, + pub EnableContextDelay: super::super::super::Win32::Foundation::BOOL, + pub TdrControl2: D3DKMT_VIDSCH_ESCAPE_0_0, + pub SuspendScheduler: super::super::super::Win32::Foundation::BOOL, + pub TdrControl: u32, + pub SuspendTime: u32, + pub TdrLimit: D3DKMT_VIDSCH_ESCAPE_0_1, + pub PfnControl: D3DKMT_ESCAPE_PFN_CONTROL_COMMAND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDSCH_ESCAPE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDSCH_ESCAPE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDSCH_ESCAPE_0_0 { + pub TdrControl: u32, + pub Anonymous: D3DKMT_VIDSCH_ESCAPE_0_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDSCH_ESCAPE_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDSCH_ESCAPE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union D3DKMT_VIDSCH_ESCAPE_0_0_0 { + pub NodeOrdinal: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDSCH_ESCAPE_0_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDSCH_ESCAPE_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_VIDSCH_ESCAPE_0_1 { + pub Count: u32, + pub Time: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_VIDSCH_ESCAPE_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_VIDSCH_ESCAPE_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_VIRTUALADDRESSFLAGS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_VIRTUALADDRESSFLAGS {} +impl ::core::clone::Clone for D3DKMT_VIRTUALADDRESSFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_VIRTUALADDRESSINFO { + pub VirtualAddressFlags: D3DKMT_VIRTUALADDRESSFLAGS, +} +impl ::core::marker::Copy for D3DKMT_VIRTUALADDRESSINFO {} +impl ::core::clone::Clone for D3DKMT_VIRTUALADDRESSINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WAITFORIDLE { + pub hDevice: u32, +} +impl ::core::marker::Copy for D3DKMT_WAITFORIDLE {} +impl ::core::clone::Clone for D3DKMT_WAITFORIDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WAITFORSYNCHRONIZATIONOBJECT { + pub hContext: u32, + pub ObjectCount: u32, + pub ObjectHandleArray: [u32; 32], +} +impl ::core::marker::Copy for D3DKMT_WAITFORSYNCHRONIZATIONOBJECT {} +impl ::core::clone::Clone for D3DKMT_WAITFORSYNCHRONIZATIONOBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2 { + pub hContext: u32, + pub ObjectCount: u32, + pub ObjectHandleArray: [u32; 32], + pub Anonymous: D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_0, +} +impl ::core::marker::Copy for D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2 {} +impl ::core::clone::Clone for D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_0 { + pub Fence: D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_0_0, + pub Reserved: [u64; 8], +} +impl ::core::marker::Copy for D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_0 {} +impl ::core::clone::Clone for D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_0_0 { + pub FenceValue: u64, +} +impl ::core::marker::Copy for D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_0_0 {} +impl ::core::clone::Clone for D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMCPU { + pub hDevice: u32, + pub ObjectCount: u32, + pub ObjectHandleArray: *const u32, + pub FenceValueArray: *const u64, + pub hAsyncEvent: super::super::super::Win32::Foundation::HANDLE, + pub Flags: D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMCPU {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMCPU { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMGPU { + pub hContext: u32, + pub ObjectCount: u32, + pub ObjectHandleArray: *const u32, + pub Anonymous: D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMGPU_0, +} +impl ::core::marker::Copy for D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMGPU {} +impl ::core::clone::Clone for D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMGPU { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMGPU_0 { + pub MonitoredFenceValueArray: *const u64, + pub FenceValue: u64, + pub Reserved: [u64; 8], +} +impl ::core::marker::Copy for D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMGPU_0 {} +impl ::core::clone::Clone for D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMGPU_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WAITFORVERTICALBLANKEVENT { + pub hAdapter: u32, + pub hDevice: u32, + pub VidPnSourceId: u32, +} +impl ::core::marker::Copy for D3DKMT_WAITFORVERTICALBLANKEVENT {} +impl ::core::clone::Clone for D3DKMT_WAITFORVERTICALBLANKEVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WAITFORVERTICALBLANKEVENT2 { + pub hAdapter: u32, + pub hDevice: u32, + pub VidPnSourceId: u32, + pub NumObjects: u32, + pub ObjectHandleArray: [isize; 8], +} +impl ::core::marker::Copy for D3DKMT_WAITFORVERTICALBLANKEVENT2 {} +impl ::core::clone::Clone for D3DKMT_WAITFORVERTICALBLANKEVENT2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WDDM_1_2_CAPS { + pub PreemptionCaps: D3DKMDT_PREEMPTION_CAPS, + pub Anonymous: D3DKMT_WDDM_1_2_CAPS_0, +} +impl ::core::marker::Copy for D3DKMT_WDDM_1_2_CAPS {} +impl ::core::clone::Clone for D3DKMT_WDDM_1_2_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DKMT_WDDM_1_2_CAPS_0 { + pub Anonymous: D3DKMT_WDDM_1_2_CAPS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_1_2_CAPS_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_1_2_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WDDM_1_2_CAPS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_1_2_CAPS_0_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_1_2_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WDDM_1_3_CAPS { + pub Anonymous: D3DKMT_WDDM_1_3_CAPS_0, +} +impl ::core::marker::Copy for D3DKMT_WDDM_1_3_CAPS {} +impl ::core::clone::Clone for D3DKMT_WDDM_1_3_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union D3DKMT_WDDM_1_3_CAPS_0 { + pub Anonymous: D3DKMT_WDDM_1_3_CAPS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_1_3_CAPS_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_1_3_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct D3DKMT_WDDM_1_3_CAPS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_1_3_CAPS_0_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_1_3_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WDDM_2_0_CAPS { + pub Anonymous: D3DKMT_WDDM_2_0_CAPS_0, +} +impl ::core::marker::Copy for D3DKMT_WDDM_2_0_CAPS {} +impl ::core::clone::Clone for D3DKMT_WDDM_2_0_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union D3DKMT_WDDM_2_0_CAPS_0 { + pub Anonymous: D3DKMT_WDDM_2_0_CAPS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_2_0_CAPS_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_2_0_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct D3DKMT_WDDM_2_0_CAPS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_2_0_CAPS_0_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_2_0_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WDDM_2_7_CAPS { + pub Anonymous: D3DKMT_WDDM_2_7_CAPS_0, +} +impl ::core::marker::Copy for D3DKMT_WDDM_2_7_CAPS {} +impl ::core::clone::Clone for D3DKMT_WDDM_2_7_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union D3DKMT_WDDM_2_7_CAPS_0 { + pub Anonymous: D3DKMT_WDDM_2_7_CAPS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_2_7_CAPS_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_2_7_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct D3DKMT_WDDM_2_7_CAPS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_2_7_CAPS_0_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_2_7_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WDDM_2_9_CAPS { + pub Anonymous: D3DKMT_WDDM_2_9_CAPS_0, +} +impl ::core::marker::Copy for D3DKMT_WDDM_2_9_CAPS {} +impl ::core::clone::Clone for D3DKMT_WDDM_2_9_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union D3DKMT_WDDM_2_9_CAPS_0 { + pub Anonymous: D3DKMT_WDDM_2_9_CAPS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_2_9_CAPS_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_2_9_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct D3DKMT_WDDM_2_9_CAPS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_2_9_CAPS_0_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_2_9_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WDDM_3_0_CAPS { + pub Anonymous: D3DKMT_WDDM_3_0_CAPS_0, +} +impl ::core::marker::Copy for D3DKMT_WDDM_3_0_CAPS {} +impl ::core::clone::Clone for D3DKMT_WDDM_3_0_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union D3DKMT_WDDM_3_0_CAPS_0 { + pub Anonymous: D3DKMT_WDDM_3_0_CAPS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_3_0_CAPS_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_3_0_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct D3DKMT_WDDM_3_0_CAPS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_3_0_CAPS_0_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_3_0_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WDDM_3_1_CAPS { + pub Anonymous: D3DKMT_WDDM_3_1_CAPS_0, +} +impl ::core::marker::Copy for D3DKMT_WDDM_3_1_CAPS {} +impl ::core::clone::Clone for D3DKMT_WDDM_3_1_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union D3DKMT_WDDM_3_1_CAPS_0 { + pub Anonymous: D3DKMT_WDDM_3_1_CAPS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_3_1_CAPS_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_3_1_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct D3DKMT_WDDM_3_1_CAPS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_WDDM_3_1_CAPS_0_0 {} +impl ::core::clone::Clone for D3DKMT_WDDM_3_1_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WORKINGSETFLAGS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for D3DKMT_WORKINGSETFLAGS {} +impl ::core::clone::Clone for D3DKMT_WORKINGSETFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WORKINGSETINFO { + pub Flags: D3DKMT_WORKINGSETFLAGS, + pub MinimumWorkingSetPercentile: u32, + pub MaximumWorkingSetPercentile: u32, +} +impl ::core::marker::Copy for D3DKMT_WORKINGSETINFO {} +impl ::core::clone::Clone for D3DKMT_WORKINGSETINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DKMT_WSAUMDIMAGENAME { + pub WsaUmdImageName: [u16; 260], +} +impl ::core::marker::Copy for D3DKMT_WSAUMDIMAGENAME {} +impl ::core::clone::Clone for D3DKMT_WSAUMDIMAGENAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DKMT_XBOX { + pub IsXBOX: super::super::super::Win32::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DKMT_XBOX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DKMT_XBOX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DLINEPATTERN { + pub wRepeatFactor: u16, + pub wLinePattern: u16, +} +impl ::core::marker::Copy for D3DLINEPATTERN {} +impl ::core::clone::Clone for D3DLINEPATTERN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +pub struct D3DNTDEVICEDESC_V3 { + pub dwSize: u32, + pub dwFlags: u32, + pub dcmColorModel: u32, + pub dwDevCaps: u32, + pub dtcTransformCaps: super::super::super::Win32::Graphics::Direct3D9::D3DTRANSFORMCAPS, + pub bClipping: super::super::super::Win32::Foundation::BOOL, + pub dlcLightingCaps: super::super::super::Win32::Graphics::Direct3D9::D3DLIGHTINGCAPS, + pub dpcLineCaps: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMCAPS, + pub dpcTriCaps: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMCAPS, + pub dwDeviceRenderBitDepth: u32, + pub dwDeviceZBufferBitDepth: u32, + pub dwMaxBufferSize: u32, + pub dwMaxVertexCount: u32, + pub dwMinTextureWidth: u32, + pub dwMinTextureHeight: u32, + pub dwMaxTextureWidth: u32, + pub dwMaxTextureHeight: u32, + pub dwMinStippleWidth: u32, + pub dwMaxStippleWidth: u32, + pub dwMinStippleHeight: u32, + pub dwMaxStippleHeight: u32, + pub dwMaxTextureRepeat: u32, + pub dwMaxTextureAspectRatio: u32, + pub dwMaxAnisotropy: u32, + pub dvGuardBandLeft: f32, + pub dvGuardBandTop: f32, + pub dvGuardBandRight: f32, + pub dvGuardBandBottom: f32, + pub dvExtentsAdjust: f32, + pub dwStencilCaps: u32, + pub dwFVFCaps: u32, + pub dwTextureOpCaps: u32, + pub wMaxTextureBlendStages: u16, + pub wMaxSimultaneousTextures: u16, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::marker::Copy for D3DNTDEVICEDESC_V3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::clone::Clone for D3DNTDEVICEDESC_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +pub struct D3DNTHALDEVICEDESC_V1 { + pub dwSize: u32, + pub dwFlags: u32, + pub dcmColorModel: u32, + pub dwDevCaps: u32, + pub dtcTransformCaps: super::super::super::Win32::Graphics::Direct3D9::D3DTRANSFORMCAPS, + pub bClipping: super::super::super::Win32::Foundation::BOOL, + pub dlcLightingCaps: super::super::super::Win32::Graphics::Direct3D9::D3DLIGHTINGCAPS, + pub dpcLineCaps: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMCAPS, + pub dpcTriCaps: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMCAPS, + pub dwDeviceRenderBitDepth: u32, + pub dwDeviceZBufferBitDepth: u32, + pub dwMaxBufferSize: u32, + pub dwMaxVertexCount: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::marker::Copy for D3DNTHALDEVICEDESC_V1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::clone::Clone for D3DNTHALDEVICEDESC_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +pub struct D3DNTHALDEVICEDESC_V2 { + pub dwSize: u32, + pub dwFlags: u32, + pub dcmColorModel: u32, + pub dwDevCaps: u32, + pub dtcTransformCaps: super::super::super::Win32::Graphics::Direct3D9::D3DTRANSFORMCAPS, + pub bClipping: super::super::super::Win32::Foundation::BOOL, + pub dlcLightingCaps: super::super::super::Win32::Graphics::Direct3D9::D3DLIGHTINGCAPS, + pub dpcLineCaps: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMCAPS, + pub dpcTriCaps: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMCAPS, + pub dwDeviceRenderBitDepth: u32, + pub dwDeviceZBufferBitDepth: u32, + pub dwMaxBufferSize: u32, + pub dwMaxVertexCount: u32, + pub dwMinTextureWidth: u32, + pub dwMinTextureHeight: u32, + pub dwMaxTextureWidth: u32, + pub dwMaxTextureHeight: u32, + pub dwMinStippleWidth: u32, + pub dwMaxStippleWidth: u32, + pub dwMinStippleHeight: u32, + pub dwMaxStippleHeight: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::marker::Copy for D3DNTHALDEVICEDESC_V2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::clone::Clone for D3DNTHALDEVICEDESC_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub struct D3DNTHAL_CALLBACKS { + pub dwSize: u32, + pub ContextCreate: LPD3DNTHAL_CONTEXTCREATECB, + pub ContextDestroy: LPD3DNTHAL_CONTEXTDESTROYCB, + pub ContextDestroyAll: LPD3DNTHAL_CONTEXTDESTROYALLCB, + pub SceneCapture: LPD3DNTHAL_SCENECAPTURECB, + pub dwReserved10: *mut ::core::ffi::c_void, + pub dwReserved11: *mut ::core::ffi::c_void, + pub dwReserved22: *mut ::core::ffi::c_void, + pub dwReserved23: *mut ::core::ffi::c_void, + pub dwReserved: usize, + pub TextureCreate: LPD3DNTHAL_TEXTURECREATECB, + pub TextureDestroy: LPD3DNTHAL_TEXTUREDESTROYCB, + pub TextureSwap: LPD3DNTHAL_TEXTURESWAPCB, + pub TextureGetSurf: LPD3DNTHAL_TEXTUREGETSURFCB, + pub dwReserved12: *mut ::core::ffi::c_void, + pub dwReserved13: *mut ::core::ffi::c_void, + pub dwReserved14: *mut ::core::ffi::c_void, + pub dwReserved15: *mut ::core::ffi::c_void, + pub dwReserved16: *mut ::core::ffi::c_void, + pub dwReserved17: *mut ::core::ffi::c_void, + pub dwReserved18: *mut ::core::ffi::c_void, + pub dwReserved19: *mut ::core::ffi::c_void, + pub dwReserved20: *mut ::core::ffi::c_void, + pub dwReserved21: *mut ::core::ffi::c_void, + pub dwReserved24: *mut ::core::ffi::c_void, + pub dwReserved0: usize, + pub dwReserved1: usize, + pub dwReserved2: usize, + pub dwReserved3: usize, + pub dwReserved4: usize, + pub dwReserved5: usize, + pub dwReserved6: usize, + pub dwReserved7: usize, + pub dwReserved8: usize, + pub dwReserved9: usize, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DNTHAL_CALLBACKS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DNTHAL_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub struct D3DNTHAL_CALLBACKS2 { + pub dwSize: u32, + pub dwFlags: u32, + pub SetRenderTarget: LPD3DNTHAL_SETRENDERTARGETCB, + pub dwReserved1: *mut ::core::ffi::c_void, + pub dwReserved2: *mut ::core::ffi::c_void, + pub dwReserved3: *mut ::core::ffi::c_void, + pub dwReserved4: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DNTHAL_CALLBACKS2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DNTHAL_CALLBACKS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw"))] +pub struct D3DNTHAL_CALLBACKS3 { + pub dwSize: u32, + pub dwFlags: u32, + pub Clear2: LPD3DNTHAL_CLEAR2CB, + pub lpvReserved: *mut ::core::ffi::c_void, + pub ValidateTextureStageState: LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB, + pub DrawPrimitives2: LPD3DNTHAL_DRAWPRIMITIVES2CB, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DNTHAL_CALLBACKS3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DNTHAL_CALLBACKS3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DNTHAL_CLEAR2DATA { + pub dwhContext: usize, + pub dwFlags: u32, + pub dwFillColor: u32, + pub dvFillDepth: f32, + pub dwFillStencil: u32, + pub lpRects: *mut super::super::super::Win32::Graphics::Direct3D9::D3DRECT, + pub dwNumRects: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_CLEAR2DATA {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_CLEAR2DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_CLIPPEDTRIANGLEFAN { + pub FirstVertexOffset: u32, + pub dwEdgeFlags: u32, + pub PrimitiveCount: u32, +} +impl ::core::marker::Copy for D3DNTHAL_CLIPPEDTRIANGLEFAN {} +impl ::core::clone::Clone for D3DNTHAL_CLIPPEDTRIANGLEFAN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub struct D3DNTHAL_CONTEXTCREATEDATA { + pub Anonymous1: D3DNTHAL_CONTEXTCREATEDATA_0, + pub Anonymous2: D3DNTHAL_CONTEXTCREATEDATA_1, + pub Anonymous3: D3DNTHAL_CONTEXTCREATEDATA_2, + pub dwPID: u32, + pub dwhContext: usize, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DNTHAL_CONTEXTCREATEDATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DNTHAL_CONTEXTCREATEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub union D3DNTHAL_CONTEXTCREATEDATA_0 { + pub lpDDGbl: *mut super::super::super::Win32::Graphics::DirectDraw::DD_DIRECTDRAW_GLOBAL, + pub lpDDLcl: *mut super::super::super::Win32::Graphics::DirectDraw::DD_DIRECTDRAW_LOCAL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DNTHAL_CONTEXTCREATEDATA_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DNTHAL_CONTEXTCREATEDATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub union D3DNTHAL_CONTEXTCREATEDATA_1 { + pub lpDDS: *mut super::super::super::Win32::Graphics::DirectDraw::DD_SURFACE_LOCAL, + pub lpDDSLcl: *mut super::super::super::Win32::Graphics::DirectDraw::DD_SURFACE_LOCAL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DNTHAL_CONTEXTCREATEDATA_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DNTHAL_CONTEXTCREATEDATA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub union D3DNTHAL_CONTEXTCREATEDATA_2 { + pub lpDDSZ: *mut super::super::super::Win32::Graphics::DirectDraw::DD_SURFACE_LOCAL, + pub lpDDSZLcl: *mut super::super::super::Win32::Graphics::DirectDraw::DD_SURFACE_LOCAL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DNTHAL_CONTEXTCREATEDATA_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DNTHAL_CONTEXTCREATEDATA_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_CONTEXTDESTROYALLDATA { + pub dwPID: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DNTHAL_CONTEXTDESTROYALLDATA {} +impl ::core::clone::Clone for D3DNTHAL_CONTEXTDESTROYALLDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_CONTEXTDESTROYDATA { + pub dwhContext: usize, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DNTHAL_CONTEXTDESTROYDATA {} +impl ::core::clone::Clone for D3DNTHAL_CONTEXTDESTROYDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_D3DDX6EXTENDEDCAPS { + pub dwSize: u32, + pub dwMinTextureWidth: u32, + pub dwMaxTextureWidth: u32, + pub dwMinTextureHeight: u32, + pub dwMaxTextureHeight: u32, + pub dwMinStippleWidth: u32, + pub dwMaxStippleWidth: u32, + pub dwMinStippleHeight: u32, + pub dwMaxStippleHeight: u32, + pub dwMaxTextureRepeat: u32, + pub dwMaxTextureAspectRatio: u32, + pub dwMaxAnisotropy: u32, + pub dvGuardBandLeft: f32, + pub dvGuardBandTop: f32, + pub dvGuardBandRight: f32, + pub dvGuardBandBottom: f32, + pub dvExtentsAdjust: f32, + pub dwStencilCaps: u32, + pub dwFVFCaps: u32, + pub dwTextureOpCaps: u32, + pub wMaxTextureBlendStages: u16, + pub wMaxSimultaneousTextures: u16, +} +impl ::core::marker::Copy for D3DNTHAL_D3DDX6EXTENDEDCAPS {} +impl ::core::clone::Clone for D3DNTHAL_D3DDX6EXTENDEDCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_D3DEXTENDEDCAPS { + pub dwSize: u32, + pub dwMinTextureWidth: u32, + pub dwMaxTextureWidth: u32, + pub dwMinTextureHeight: u32, + pub dwMaxTextureHeight: u32, + pub dwMinStippleWidth: u32, + pub dwMaxStippleWidth: u32, + pub dwMinStippleHeight: u32, + pub dwMaxStippleHeight: u32, + pub dwMaxTextureRepeat: u32, + pub dwMaxTextureAspectRatio: u32, + pub dwMaxAnisotropy: u32, + pub dvGuardBandLeft: f32, + pub dvGuardBandTop: f32, + pub dvGuardBandRight: f32, + pub dvGuardBandBottom: f32, + pub dvExtentsAdjust: f32, + pub dwStencilCaps: u32, + pub dwFVFCaps: u32, + pub dwTextureOpCaps: u32, + pub wMaxTextureBlendStages: u16, + pub wMaxSimultaneousTextures: u16, + pub dwMaxActiveLights: u32, + pub dvMaxVertexW: f32, + pub wMaxUserClipPlanes: u16, + pub wMaxVertexBlendMatrices: u16, + pub dwVertexProcessingCaps: u32, + pub dwReserved1: u32, + pub dwReserved2: u32, + pub dwReserved3: u32, + pub dwReserved4: u32, +} +impl ::core::marker::Copy for D3DNTHAL_D3DEXTENDEDCAPS {} +impl ::core::clone::Clone for D3DNTHAL_D3DEXTENDEDCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DNTHAL_DP2ADDDIRTYBOX { + pub dwSurface: u32, + pub DirtyBox: super::super::super::Win32::Graphics::Direct3D9::D3DBOX, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_DP2ADDDIRTYBOX {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_DP2ADDDIRTYBOX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DNTHAL_DP2ADDDIRTYRECT { + pub dwSurface: u32, + pub rDirtyArea: super::super::super::Win32::Foundation::RECTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DNTHAL_DP2ADDDIRTYRECT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DNTHAL_DP2ADDDIRTYRECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DNTHAL_DP2BLT { + pub dwSource: u32, + pub rSource: super::super::super::Win32::Foundation::RECTL, + pub dwSourceMipLevel: u32, + pub dwDest: u32, + pub rDest: super::super::super::Win32::Foundation::RECTL, + pub dwDestMipLevel: u32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DNTHAL_DP2BLT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DNTHAL_DP2BLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DNTHAL_DP2BUFFERBLT { + pub dwDDDestSurface: u32, + pub dwDDSrcSurface: u32, + pub dwOffset: u32, + pub rSrc: super::super::super::Win32::Graphics::Direct3D9::D3DRANGE, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_DP2BUFFERBLT {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_DP2BUFFERBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DNTHAL_DP2CLEAR { + pub dwFlags: u32, + pub dwFillColor: u32, + pub dvFillDepth: f32, + pub dwFillStencil: u32, + pub Rects: [super::super::super::Win32::Foundation::RECT; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DNTHAL_DP2CLEAR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DNTHAL_DP2CLEAR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DNTHAL_DP2COLORFILL { + pub dwSurface: u32, + pub rRect: super::super::super::Win32::Foundation::RECTL, + pub Color: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DNTHAL_DP2COLORFILL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DNTHAL_DP2COLORFILL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2COMMAND { + pub bCommand: u8, + pub bReserved: u8, + pub Anonymous: D3DNTHAL_DP2COMMAND_0, +} +impl ::core::marker::Copy for D3DNTHAL_DP2COMMAND {} +impl ::core::clone::Clone for D3DNTHAL_DP2COMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DNTHAL_DP2COMMAND_0 { + pub wPrimitiveCount: u16, + pub wStateCount: u16, +} +impl ::core::marker::Copy for D3DNTHAL_DP2COMMAND_0 {} +impl ::core::clone::Clone for D3DNTHAL_DP2COMMAND_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DNTHAL_DP2COMPOSERECTS { + pub SrcSurfaceHandle: u32, + pub DstSurfaceHandle: u32, + pub SrcRectDescsVBHandle: u32, + pub NumRects: u32, + pub DstRectDescsVBHandle: u32, + pub Operation: super::super::super::Win32::Graphics::Direct3D9::D3DCOMPOSERECTSOP, + pub XOffset: i32, + pub YOffset: i32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_DP2COMPOSERECTS {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_DP2COMPOSERECTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2CREATELIGHT { + pub dwIndex: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2CREATELIGHT {} +impl ::core::clone::Clone for D3DNTHAL_DP2CREATELIGHT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2CREATEPIXELSHADER { + pub dwHandle: u32, + pub dwCodeSize: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2CREATEPIXELSHADER {} +impl ::core::clone::Clone for D3DNTHAL_DP2CREATEPIXELSHADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DNTHAL_DP2CREATEQUERY { + pub dwQueryID: u32, + pub QueryType: super::super::super::Win32::Graphics::Direct3D9::D3DQUERYTYPE, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_DP2CREATEQUERY {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_DP2CREATEQUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2CREATEVERTEXSHADER { + pub dwHandle: u32, + pub dwDeclSize: u32, + pub dwCodeSize: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2CREATEVERTEXSHADER {} +impl ::core::clone::Clone for D3DNTHAL_DP2CREATEVERTEXSHADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2CREATEVERTEXSHADERDECL { + pub dwHandle: u32, + pub dwNumVertexElements: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2CREATEVERTEXSHADERDECL {} +impl ::core::clone::Clone for D3DNTHAL_DP2CREATEVERTEXSHADERDECL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2CREATEVERTEXSHADERFUNC { + pub dwHandle: u32, + pub dwSize: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2CREATEVERTEXSHADERFUNC {} +impl ::core::clone::Clone for D3DNTHAL_DP2CREATEVERTEXSHADERFUNC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2DELETEQUERY { + pub dwQueryID: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2DELETEQUERY {} +impl ::core::clone::Clone for D3DNTHAL_DP2DELETEQUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DNTHAL_DP2DRAWINDEXEDPRIMITIVE { + pub primType: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMITIVETYPE, + pub BaseVertexIndex: i32, + pub MinIndex: u32, + pub NumVertices: u32, + pub StartIndex: u32, + pub PrimitiveCount: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_DP2DRAWINDEXEDPRIMITIVE {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_DP2DRAWINDEXEDPRIMITIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DNTHAL_DP2DRAWINDEXEDPRIMITIVE2 { + pub primType: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMITIVETYPE, + pub BaseVertexOffset: i32, + pub MinIndex: u32, + pub NumVertices: u32, + pub StartIndexOffset: u32, + pub PrimitiveCount: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_DP2DRAWINDEXEDPRIMITIVE2 {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_DP2DRAWINDEXEDPRIMITIVE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DNTHAL_DP2DRAWPRIMITIVE { + pub primType: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMITIVETYPE, + pub VStart: u32, + pub PrimitiveCount: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_DP2DRAWPRIMITIVE {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_DP2DRAWPRIMITIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DNTHAL_DP2DRAWPRIMITIVE2 { + pub primType: super::super::super::Win32::Graphics::Direct3D9::D3DPRIMITIVETYPE, + pub FirstVertexOffset: u32, + pub PrimitiveCount: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_DP2DRAWPRIMITIVE2 {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_DP2DRAWPRIMITIVE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2DRAWRECTPATCH { + pub Handle: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2DRAWRECTPATCH {} +impl ::core::clone::Clone for D3DNTHAL_DP2DRAWRECTPATCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2DRAWTRIPATCH { + pub Handle: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2DRAWTRIPATCH {} +impl ::core::clone::Clone for D3DNTHAL_DP2DRAWTRIPATCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2EXT { + pub dwExtToken: u32, + pub dwSize: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2EXT {} +impl ::core::clone::Clone for D3DNTHAL_DP2EXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DNTHAL_DP2GENERATEMIPSUBLEVELS { + pub hSurface: u32, + pub Filter: super::super::super::Win32::Graphics::Direct3D9::D3DTEXTUREFILTERTYPE, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_DP2GENERATEMIPSUBLEVELS {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_DP2GENERATEMIPSUBLEVELS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2INDEXEDLINELIST { + pub wV1: u16, + pub wV2: u16, +} +impl ::core::marker::Copy for D3DNTHAL_DP2INDEXEDLINELIST {} +impl ::core::clone::Clone for D3DNTHAL_DP2INDEXEDLINELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2INDEXEDLINESTRIP { + pub wV: [u16; 2], +} +impl ::core::marker::Copy for D3DNTHAL_DP2INDEXEDLINESTRIP {} +impl ::core::clone::Clone for D3DNTHAL_DP2INDEXEDLINESTRIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2INDEXEDTRIANGLEFAN { + pub wV: [u16; 3], +} +impl ::core::marker::Copy for D3DNTHAL_DP2INDEXEDTRIANGLEFAN {} +impl ::core::clone::Clone for D3DNTHAL_DP2INDEXEDTRIANGLEFAN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2INDEXEDTRIANGLELIST { + pub wV1: u16, + pub wV2: u16, + pub wV3: u16, + pub wFlags: u16, +} +impl ::core::marker::Copy for D3DNTHAL_DP2INDEXEDTRIANGLELIST {} +impl ::core::clone::Clone for D3DNTHAL_DP2INDEXEDTRIANGLELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2INDEXEDTRIANGLELIST2 { + pub wV1: u16, + pub wV2: u16, + pub wV3: u16, +} +impl ::core::marker::Copy for D3DNTHAL_DP2INDEXEDTRIANGLELIST2 {} +impl ::core::clone::Clone for D3DNTHAL_DP2INDEXEDTRIANGLELIST2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2INDEXEDTRIANGLESTRIP { + pub wV: [u16; 3], +} +impl ::core::marker::Copy for D3DNTHAL_DP2INDEXEDTRIANGLESTRIP {} +impl ::core::clone::Clone for D3DNTHAL_DP2INDEXEDTRIANGLESTRIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2ISSUEQUERY { + pub dwQueryID: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2ISSUEQUERY {} +impl ::core::clone::Clone for D3DNTHAL_DP2ISSUEQUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2LINELIST { + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DNTHAL_DP2LINELIST {} +impl ::core::clone::Clone for D3DNTHAL_DP2LINELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2LINESTRIP { + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DNTHAL_DP2LINESTRIP {} +impl ::core::clone::Clone for D3DNTHAL_DP2LINESTRIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct3D9"))] +pub struct D3DNTHAL_DP2MULTIPLYTRANSFORM { + pub xfrmType: super::super::super::Win32::Graphics::Direct3D9::D3DTRANSFORMSTATETYPE, + pub matrix: super::super::super::Foundation::Numerics::Matrix4x4, +} +#[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::marker::Copy for D3DNTHAL_DP2MULTIPLYTRANSFORM {} +#[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::clone::Clone for D3DNTHAL_DP2MULTIPLYTRANSFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2PIXELSHADER { + pub dwHandle: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2PIXELSHADER {} +impl ::core::clone::Clone for D3DNTHAL_DP2PIXELSHADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2POINTS { + pub wCount: u16, + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DNTHAL_DP2POINTS {} +impl ::core::clone::Clone for D3DNTHAL_DP2POINTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DNTHAL_DP2RENDERSTATE { + pub RenderState: super::super::super::Win32::Graphics::Direct3D9::D3DRENDERSTATETYPE, + pub Anonymous: D3DNTHAL_DP2RENDERSTATE_0, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_DP2RENDERSTATE {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_DP2RENDERSTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub union D3DNTHAL_DP2RENDERSTATE_0 { + pub fState: f32, + pub dwState: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_DP2RENDERSTATE_0 {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_DP2RENDERSTATE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2RESPONSE { + pub bCommand: u8, + pub bReserved: u8, + pub wStateCount: u16, + pub dwTotalSize: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2RESPONSE {} +impl ::core::clone::Clone for D3DNTHAL_DP2RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2RESPONSEQUERY { + pub dwQueryID: u32, + pub dwSize: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2RESPONSEQUERY {} +impl ::core::clone::Clone for D3DNTHAL_DP2RESPONSEQUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETCLIPPLANE { + pub dwIndex: u32, + pub plane: [f32; 4], +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETCLIPPLANE {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETCLIPPLANE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETCONVOLUTIONKERNELMONO { + pub dwWidth: u32, + pub dwHeight: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETCONVOLUTIONKERNELMONO {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETCONVOLUTIONKERNELMONO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETDEPTHSTENCIL { + pub hZBuffer: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETDEPTHSTENCIL {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETDEPTHSTENCIL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETINDICES { + pub dwVBHandle: u32, + pub dwStride: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETINDICES {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETINDICES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETLIGHT { + pub dwIndex: u32, + pub Anonymous: D3DNTHAL_DP2SETLIGHT_0, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETLIGHT {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETLIGHT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union D3DNTHAL_DP2SETLIGHT_0 { + pub lightData: u32, + pub dwDataType: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETLIGHT_0 {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETLIGHT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETPALETTE { + pub dwPaletteHandle: u32, + pub dwPaletteFlags: u32, + pub dwSurfaceHandle: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETPALETTE {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETPALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETPIXELSHADERCONST { + pub dwRegister: u32, + pub dwCount: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETPIXELSHADERCONST {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETPIXELSHADERCONST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETPRIORITY { + pub dwDDDestSurface: u32, + pub dwPriority: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETPRIORITY {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETPRIORITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETRENDERTARGET { + pub hRenderTarget: u32, + pub hZBuffer: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETRENDERTARGET {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETRENDERTARGET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETRENDERTARGET2 { + pub RTIndex: u32, + pub hRenderTarget: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETRENDERTARGET2 {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETRENDERTARGET2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETSTREAMSOURCE { + pub dwStream: u32, + pub dwVBHandle: u32, + pub dwStride: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETSTREAMSOURCE {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETSTREAMSOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETSTREAMSOURCE2 { + pub dwStream: u32, + pub dwVBHandle: u32, + pub dwOffset: u32, + pub dwStride: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETSTREAMSOURCE2 {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETSTREAMSOURCE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETSTREAMSOURCEFREQ { + pub dwStream: u32, + pub dwDivider: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETSTREAMSOURCEFREQ {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETSTREAMSOURCEFREQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETSTREAMSOURCEUM { + pub dwStream: u32, + pub dwStride: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETSTREAMSOURCEUM {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETSTREAMSOURCEUM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETTEXLOD { + pub dwDDSurface: u32, + pub dwLOD: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETTEXLOD {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETTEXLOD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct3D9"))] +pub struct D3DNTHAL_DP2SETTRANSFORM { + pub xfrmType: super::super::super::Win32::Graphics::Direct3D9::D3DTRANSFORMSTATETYPE, + pub matrix: super::super::super::Foundation::Numerics::Matrix4x4, +} +#[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::marker::Copy for D3DNTHAL_DP2SETTRANSFORM {} +#[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct3D9"))] +impl ::core::clone::Clone for D3DNTHAL_DP2SETTRANSFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2SETVERTEXSHADERCONST { + pub dwRegister: u32, + pub dwCount: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2SETVERTEXSHADERCONST {} +impl ::core::clone::Clone for D3DNTHAL_DP2SETVERTEXSHADERCONST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2STARTVERTEX { + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DNTHAL_DP2STARTVERTEX {} +impl ::core::clone::Clone for D3DNTHAL_DP2STARTVERTEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DNTHAL_DP2STATESET { + pub dwOperation: u32, + pub dwParam: u32, + pub sbType: super::super::super::Win32::Graphics::Direct3D9::D3DSTATEBLOCKTYPE, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_DP2STATESET {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_DP2STATESET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DNTHAL_DP2SURFACEBLT { + pub dwSource: u32, + pub rSource: super::super::super::Win32::Foundation::RECTL, + pub dwSourceMipLevel: u32, + pub dwDest: u32, + pub rDest: super::super::super::Win32::Foundation::RECTL, + pub dwDestMipLevel: u32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DNTHAL_DP2SURFACEBLT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DNTHAL_DP2SURFACEBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DNTHAL_DP2TEXBLT { + pub dwDDDestSurface: u32, + pub dwDDSrcSurface: u32, + pub pDest: super::super::super::Win32::Foundation::POINT, + pub rSrc: super::super::super::Win32::Foundation::RECTL, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DNTHAL_DP2TEXBLT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DNTHAL_DP2TEXBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2TEXTURESTAGESTATE { + pub wStage: u16, + pub TSState: u16, + pub dwValue: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2TEXTURESTAGESTATE {} +impl ::core::clone::Clone for D3DNTHAL_DP2TEXTURESTAGESTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2TRIANGLEFAN { + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DNTHAL_DP2TRIANGLEFAN {} +impl ::core::clone::Clone for D3DNTHAL_DP2TRIANGLEFAN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2TRIANGLEFAN_IMM { + pub dwEdgeFlags: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2TRIANGLEFAN_IMM {} +impl ::core::clone::Clone for D3DNTHAL_DP2TRIANGLEFAN_IMM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2TRIANGLELIST { + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DNTHAL_DP2TRIANGLELIST {} +impl ::core::clone::Clone for D3DNTHAL_DP2TRIANGLELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2TRIANGLESTRIP { + pub wVStart: u16, +} +impl ::core::marker::Copy for D3DNTHAL_DP2TRIANGLESTRIP {} +impl ::core::clone::Clone for D3DNTHAL_DP2TRIANGLESTRIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2UPDATEPALETTE { + pub dwPaletteHandle: u32, + pub wStartIndex: u16, + pub wNumEntries: u16, +} +impl ::core::marker::Copy for D3DNTHAL_DP2UPDATEPALETTE {} +impl ::core::clone::Clone for D3DNTHAL_DP2UPDATEPALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2VERTEXSHADER { + pub dwHandle: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2VERTEXSHADER {} +impl ::core::clone::Clone for D3DNTHAL_DP2VERTEXSHADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2VIEWPORTINFO { + pub dwX: u32, + pub dwY: u32, + pub dwWidth: u32, + pub dwHeight: u32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2VIEWPORTINFO {} +impl ::core::clone::Clone for D3DNTHAL_DP2VIEWPORTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct D3DNTHAL_DP2VOLUMEBLT { + pub dwDDDestSurface: u32, + pub dwDDSrcSurface: u32, + pub dwDestX: u32, + pub dwDestY: u32, + pub dwDestZ: u32, + pub srcBox: super::super::super::Win32::Graphics::Direct3D9::D3DBOX, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for D3DNTHAL_DP2VOLUMEBLT {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for D3DNTHAL_DP2VOLUMEBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2WINFO { + pub dvWNear: f32, + pub dvWFar: f32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2WINFO {} +impl ::core::clone::Clone for D3DNTHAL_DP2WINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_DP2ZRANGE { + pub dvMinZ: f32, + pub dvMaxZ: f32, +} +impl ::core::marker::Copy for D3DNTHAL_DP2ZRANGE {} +impl ::core::clone::Clone for D3DNTHAL_DP2ZRANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub struct D3DNTHAL_DRAWPRIMITIVES2DATA { + pub dwhContext: usize, + pub dwFlags: u32, + pub dwVertexType: u32, + pub lpDDCommands: *mut super::super::super::Win32::Graphics::DirectDraw::DD_SURFACE_LOCAL, + pub dwCommandOffset: u32, + pub dwCommandLength: u32, + pub Anonymous1: D3DNTHAL_DRAWPRIMITIVES2DATA_0, + pub dwVertexOffset: u32, + pub dwVertexLength: u32, + pub dwReqVertexBufSize: u32, + pub dwReqCommandBufSize: u32, + pub lpdwRStates: *mut u32, + pub Anonymous2: D3DNTHAL_DRAWPRIMITIVES2DATA_1, + pub dwErrorOffset: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DNTHAL_DRAWPRIMITIVES2DATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DNTHAL_DRAWPRIMITIVES2DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub union D3DNTHAL_DRAWPRIMITIVES2DATA_0 { + pub lpDDVertex: *mut super::super::super::Win32::Graphics::DirectDraw::DD_SURFACE_LOCAL, + pub lpVertices: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DNTHAL_DRAWPRIMITIVES2DATA_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DNTHAL_DRAWPRIMITIVES2DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub union D3DNTHAL_DRAWPRIMITIVES2DATA_1 { + pub dwVertexSize: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DNTHAL_DRAWPRIMITIVES2DATA_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DNTHAL_DRAWPRIMITIVES2DATA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw"))] +pub struct D3DNTHAL_GLOBALDRIVERDATA { + pub dwSize: u32, + pub hwCaps: D3DNTHALDEVICEDESC_V1, + pub dwNumVertices: u32, + pub dwNumClipVertices: u32, + pub dwNumTextureFormats: u32, + pub lpTextureFormats: *mut super::super::super::Win32::Graphics::DirectDraw::DDSURFACEDESC, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DNTHAL_GLOBALDRIVERDATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DNTHAL_GLOBALDRIVERDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_SCENECAPTUREDATA { + pub dwhContext: usize, + pub dwFlag: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DNTHAL_SCENECAPTUREDATA {} +impl ::core::clone::Clone for D3DNTHAL_SCENECAPTUREDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub struct D3DNTHAL_SETRENDERTARGETDATA { + pub dwhContext: usize, + pub lpDDS: *mut super::super::super::Win32::Graphics::DirectDraw::DD_SURFACE_LOCAL, + pub lpDDSZ: *mut super::super::super::Win32::Graphics::DirectDraw::DD_SURFACE_LOCAL, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::marker::Copy for D3DNTHAL_SETRENDERTARGETDATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +impl ::core::clone::Clone for D3DNTHAL_SETRENDERTARGETDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DNTHAL_TEXTURECREATEDATA { + pub dwhContext: usize, + pub hDDS: super::super::super::Win32::Foundation::HANDLE, + pub dwHandle: usize, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DNTHAL_TEXTURECREATEDATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DNTHAL_TEXTURECREATEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_TEXTUREDESTROYDATA { + pub dwhContext: usize, + pub dwHandle: usize, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DNTHAL_TEXTUREDESTROYDATA {} +impl ::core::clone::Clone for D3DNTHAL_TEXTUREDESTROYDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3DNTHAL_TEXTUREGETSURFDATA { + pub dwhContext: usize, + pub hDDS: super::super::super::Win32::Foundation::HANDLE, + pub dwHandle: usize, + pub ddrval: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3DNTHAL_TEXTUREGETSURFDATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3DNTHAL_TEXTUREGETSURFDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_TEXTURESWAPDATA { + pub dwhContext: usize, + pub dwHandle1: usize, + pub dwHandle2: usize, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DNTHAL_TEXTURESWAPDATA {} +impl ::core::clone::Clone for D3DNTHAL_TEXTURESWAPDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA { + pub dwhContext: usize, + pub dwFlags: u32, + pub dwReserved: usize, + pub dwNumPasses: u32, + pub ddrval: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA {} +impl ::core::clone::Clone for D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDNT_DEFERRED_AGP_AWARE_DATA { + pub gdi2: DDNT_GETDRIVERINFO2DATA, +} +impl ::core::marker::Copy for DDNT_DEFERRED_AGP_AWARE_DATA {} +impl ::core::clone::Clone for DDNT_DEFERRED_AGP_AWARE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDNT_DXVERSION { + pub gdi2: DDNT_GETDRIVERINFO2DATA, + pub dwDXVersion: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for DDNT_DXVERSION {} +impl ::core::clone::Clone for DDNT_DXVERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDNT_FREE_DEFERRED_AGP_DATA { + pub gdi2: DDNT_GETDRIVERINFO2DATA, + pub dwProcessId: u32, +} +impl ::core::marker::Copy for DDNT_FREE_DEFERRED_AGP_DATA {} +impl ::core::clone::Clone for DDNT_FREE_DEFERRED_AGP_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDNT_GETADAPTERGROUPDATA { + pub gdi2: DDNT_GETDRIVERINFO2DATA, + pub ulUniqueAdapterGroupId: usize, + pub dwReserved1: u32, + pub dwReserved2: u32, +} +impl ::core::marker::Copy for DDNT_GETADAPTERGROUPDATA {} +impl ::core::clone::Clone for DDNT_GETADAPTERGROUPDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDNT_GETD3DQUERYCOUNTDATA { + pub gdi2: DDNT_GETDRIVERINFO2DATA, + pub dwNumQueries: u32, +} +impl ::core::marker::Copy for DDNT_GETD3DQUERYCOUNTDATA {} +impl ::core::clone::Clone for DDNT_GETD3DQUERYCOUNTDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct DDNT_GETD3DQUERYDATA { + pub gdi2: DDNT_GETDRIVERINFO2DATA, + pub Anonymous: DDNT_GETD3DQUERYDATA_0, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for DDNT_GETD3DQUERYDATA {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for DDNT_GETD3DQUERYDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub union DDNT_GETD3DQUERYDATA_0 { + pub dwQueryIndex: u32, + pub QueryType: super::super::super::Win32::Graphics::Direct3D9::D3DQUERYTYPE, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for DDNT_GETD3DQUERYDATA_0 {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for DDNT_GETD3DQUERYDATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDNT_GETDDIVERSIONDATA { + pub gdi2: DDNT_GETDRIVERINFO2DATA, + pub dwDXVersion: u32, + pub dwDDIVersion: u32, +} +impl ::core::marker::Copy for DDNT_GETDDIVERSIONDATA {} +impl ::core::clone::Clone for DDNT_GETDDIVERSIONDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDNT_GETDRIVERINFO2DATA { + pub dwReserved: u32, + pub dwMagic: u32, + pub dwType: u32, + pub dwExpectedSize: u32, +} +impl ::core::marker::Copy for DDNT_GETDRIVERINFO2DATA {} +impl ::core::clone::Clone for DDNT_GETDRIVERINFO2DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDNT_GETEXTENDEDMODECOUNTDATA { + pub gdi2: DDNT_GETDRIVERINFO2DATA, + pub dwModeCount: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for DDNT_GETEXTENDEDMODECOUNTDATA {} +impl ::core::clone::Clone for DDNT_GETEXTENDEDMODECOUNTDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct DDNT_GETEXTENDEDMODEDATA { + pub gdi2: DDNT_GETDRIVERINFO2DATA, + pub dwModeIndex: u32, + pub mode: super::super::super::Win32::Graphics::Direct3D9::D3DDISPLAYMODE, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for DDNT_GETEXTENDEDMODEDATA {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for DDNT_GETEXTENDEDMODEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDNT_GETFORMATCOUNTDATA { + pub gdi2: DDNT_GETDRIVERINFO2DATA, + pub dwFormatCount: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for DDNT_GETFORMATCOUNTDATA {} +impl ::core::clone::Clone for DDNT_GETFORMATCOUNTDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(feature = "Win32_Graphics_DirectDraw")] +pub struct DDNT_GETFORMATDATA { + pub gdi2: DDNT_GETDRIVERINFO2DATA, + pub dwFormatIndex: u32, + pub format: super::super::super::Win32::Graphics::DirectDraw::DDPIXELFORMAT, +} +#[cfg(feature = "Win32_Graphics_DirectDraw")] +impl ::core::marker::Copy for DDNT_GETFORMATDATA {} +#[cfg(feature = "Win32_Graphics_DirectDraw")] +impl ::core::clone::Clone for DDNT_GETFORMATDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct DDNT_MULTISAMPLEQUALITYLEVELSDATA { + pub gdi2: DDNT_GETDRIVERINFO2DATA, + pub Format: super::super::super::Win32::Graphics::Direct3D9::D3DFORMAT, + pub _bitfield: i32, + pub QualityLevels: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for DDNT_MULTISAMPLEQUALITYLEVELSDATA {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for DDNT_MULTISAMPLEQUALITYLEVELSDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DD_DEFERRED_AGP_AWARE_DATA { + pub gdi2: DD_GETDRIVERINFO2DATA, +} +impl ::core::marker::Copy for DD_DEFERRED_AGP_AWARE_DATA {} +impl ::core::clone::Clone for DD_DEFERRED_AGP_AWARE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DD_DXVERSION { + pub gdi2: DD_GETDRIVERINFO2DATA, + pub dwDXVersion: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for DD_DXVERSION {} +impl ::core::clone::Clone for DD_DXVERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DD_FREE_DEFERRED_AGP_DATA { + pub gdi2: DD_GETDRIVERINFO2DATA, + pub dwProcessId: u32, +} +impl ::core::marker::Copy for DD_FREE_DEFERRED_AGP_DATA {} +impl ::core::clone::Clone for DD_FREE_DEFERRED_AGP_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DD_GETADAPTERGROUPDATA { + pub gdi2: DD_GETDRIVERINFO2DATA, + pub ulUniqueAdapterGroupId: usize, + pub dwReserved1: u32, + pub dwReserved2: u32, +} +impl ::core::marker::Copy for DD_GETADAPTERGROUPDATA {} +impl ::core::clone::Clone for DD_GETADAPTERGROUPDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DD_GETD3DQUERYCOUNTDATA { + pub gdi2: DD_GETDRIVERINFO2DATA, + pub dwNumQueries: u32, +} +impl ::core::marker::Copy for DD_GETD3DQUERYCOUNTDATA {} +impl ::core::clone::Clone for DD_GETD3DQUERYCOUNTDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct DD_GETD3DQUERYDATA { + pub gdi2: DD_GETDRIVERINFO2DATA, + pub Anonymous: DD_GETD3DQUERYDATA_0, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for DD_GETD3DQUERYDATA {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for DD_GETD3DQUERYDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub union DD_GETD3DQUERYDATA_0 { + pub dwQueryIndex: u32, + pub QueryType: super::super::super::Win32::Graphics::Direct3D9::D3DQUERYTYPE, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for DD_GETD3DQUERYDATA_0 {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for DD_GETD3DQUERYDATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DD_GETDDIVERSIONDATA { + pub gdi2: DD_GETDRIVERINFO2DATA, + pub dwDXVersion: u32, + pub dwDDIVersion: u32, +} +impl ::core::marker::Copy for DD_GETDDIVERSIONDATA {} +impl ::core::clone::Clone for DD_GETDDIVERSIONDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DD_GETDRIVERINFO2DATA { + pub dwReserved: u32, + pub dwMagic: u32, + pub dwType: u32, + pub dwExpectedSize: u32, +} +impl ::core::marker::Copy for DD_GETDRIVERINFO2DATA {} +impl ::core::clone::Clone for DD_GETDRIVERINFO2DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DD_GETEXTENDEDMODECOUNTDATA { + pub gdi2: DD_GETDRIVERINFO2DATA, + pub dwModeCount: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for DD_GETEXTENDEDMODECOUNTDATA {} +impl ::core::clone::Clone for DD_GETEXTENDEDMODECOUNTDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct DD_GETEXTENDEDMODEDATA { + pub gdi2: DD_GETDRIVERINFO2DATA, + pub dwModeIndex: u32, + pub mode: super::super::super::Win32::Graphics::Direct3D9::D3DDISPLAYMODE, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for DD_GETEXTENDEDMODEDATA {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for DD_GETEXTENDEDMODEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DD_GETFORMATCOUNTDATA { + pub gdi2: DD_GETDRIVERINFO2DATA, + pub dwFormatCount: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for DD_GETFORMATCOUNTDATA {} +impl ::core::clone::Clone for DD_GETFORMATCOUNTDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(feature = "Win32_Graphics_DirectDraw")] +pub struct DD_GETFORMATDATA { + pub gdi2: DD_GETDRIVERINFO2DATA, + pub dwFormatIndex: u32, + pub format: super::super::super::Win32::Graphics::DirectDraw::DDPIXELFORMAT, +} +#[cfg(feature = "Win32_Graphics_DirectDraw")] +impl ::core::marker::Copy for DD_GETFORMATDATA {} +#[cfg(feature = "Win32_Graphics_DirectDraw")] +impl ::core::clone::Clone for DD_GETFORMATDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub struct DD_MULTISAMPLEQUALITYLEVELSDATA { + pub gdi2: DD_GETDRIVERINFO2DATA, + pub Format: super::super::super::Win32::Graphics::Direct3D9::D3DFORMAT, + pub _bitfield: i32, + pub QualityLevels: u32, +} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::marker::Copy for DD_MULTISAMPLEQUALITYLEVELSDATA {} +#[cfg(feature = "Win32_Graphics_Direct3D9")] +impl ::core::clone::Clone for DD_MULTISAMPLEQUALITYLEVELSDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DISPLAYID_DETAILED_TIMING_TYPE_I { + pub Anonymous1: DISPLAYID_DETAILED_TIMING_TYPE_I_0, + pub HorizontalActivePixels: u16, + pub HorizontalBlankPixels: u16, + pub Anonymous2: DISPLAYID_DETAILED_TIMING_TYPE_I_1, + pub HorizontalSyncWidth: u16, + pub VerticalActiveLines: u16, + pub VerticalBlankLines: u16, + pub Anonymous3: DISPLAYID_DETAILED_TIMING_TYPE_I_2, + pub VerticalSyncWidth: u16, +} +impl ::core::marker::Copy for DISPLAYID_DETAILED_TIMING_TYPE_I {} +impl ::core::clone::Clone for DISPLAYID_DETAILED_TIMING_TYPE_I { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DISPLAYID_DETAILED_TIMING_TYPE_I_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DISPLAYID_DETAILED_TIMING_TYPE_I_0 {} +impl ::core::clone::Clone for DISPLAYID_DETAILED_TIMING_TYPE_I_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DISPLAYID_DETAILED_TIMING_TYPE_I_1 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for DISPLAYID_DETAILED_TIMING_TYPE_I_1 {} +impl ::core::clone::Clone for DISPLAYID_DETAILED_TIMING_TYPE_I_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DISPLAYID_DETAILED_TIMING_TYPE_I_2 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for DISPLAYID_DETAILED_TIMING_TYPE_I_2 {} +impl ::core::clone::Clone for DISPLAYID_DETAILED_TIMING_TYPE_I_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGKARG_SETPALETTE { + pub VidPnSourceId: u32, + pub FirstEntry: u32, + pub NumEntries: u32, + pub pLookupTable: *mut D3DKMDT_PALETTEDATA, +} +impl ::core::marker::Copy for DXGKARG_SETPALETTE {} +impl ::core::clone::Clone for DXGKARG_SETPALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING { + pub rnRandomNumber: DXGKMDT_OPM_RANDOM_NUMBER, + pub ulStatusFlags: u32, + pub ulAvailableTVProtectionStandards: u32, + pub ulActiveTVProtectionStandard: u32, + pub ulReserved: u32, + pub ulAspectRatioValidMask1: u32, + pub ulAspectRatioData1: u32, + pub ulAspectRatioValidMask2: u32, + pub ulAspectRatioData2: u32, + pub ulAspectRatioValidMask3: u32, + pub ulAspectRatioData3: u32, + pub ulReserved2: [u32; 4], + pub ulReserved3: [u32; 4], +} +impl ::core::marker::Copy for DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING {} +impl ::core::clone::Clone for DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT { + pub rnRandomNumber: DXGKMDT_OPM_RANDOM_NUMBER, + pub ulStatusFlags: u32, + pub ulDisplayWidth: u32, + pub ulDisplayHeight: u32, + pub ifInterleaveFormat: DXGKMDT_OPM_INTERLEAVE_FORMAT, + pub d3dFormat: u32, + pub ulFrequencyNumerator: u32, + pub ulFrequencyDenominator: u32, +} +impl ::core::marker::Copy for DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT {} +impl ::core::clone::Clone for DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGKMDT_OPM_CONFIGURE_PARAMETERS { + pub omac: DXGKMDT_OPM_OMAC, + pub guidSetting: ::windows_sys::core::GUID, + pub ulSequenceNumber: u32, + pub cbParametersSize: u32, + pub abParameters: [u8; 4056], +} +impl ::core::marker::Copy for DXGKMDT_OPM_CONFIGURE_PARAMETERS {} +impl ::core::clone::Clone for DXGKMDT_OPM_CONFIGURE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION { + pub rnRandomNumber: DXGKMDT_OPM_RANDOM_NUMBER, + pub ulStatusFlags: u32, + pub ulHDCPFlags: u32, + pub ksvB: DXGKMDT_OPM_HDCP_KEY_SELECTION_VECTOR, + pub Reserved: [u8; 11], + pub Reserved2: [u8; 16], + pub Reserved3: [u8; 16], +} +impl ::core::marker::Copy for DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION {} +impl ::core::clone::Clone for DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS { + pub rnRandomNumber: DXGKMDT_OPM_RANDOM_NUMBER, + pub guidInformation: ::windows_sys::core::GUID, + pub ulSequenceNumber: u32, + pub cbParametersSize: u32, + pub abParameters: [u8; 4056], +} +impl ::core::marker::Copy for DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS {} +impl ::core::clone::Clone for DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DXGKMDT_OPM_CREATE_VIDEO_OUTPUT_FOR_TARGET_PARAMETERS { + pub AdapterLuid: super::super::super::Win32::Foundation::LUID, + pub TargetId: u32, + pub Vos: DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGKMDT_OPM_CREATE_VIDEO_OUTPUT_FOR_TARGET_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGKMDT_OPM_CREATE_VIDEO_OUTPUT_FOR_TARGET_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGKMDT_OPM_ENCRYPTED_PARAMETERS { + pub abEncryptedParameters: [u8; 256], +} +impl ::core::marker::Copy for DXGKMDT_OPM_ENCRYPTED_PARAMETERS {} +impl ::core::clone::Clone for DXGKMDT_OPM_ENCRYPTED_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGKMDT_OPM_GET_INFO_PARAMETERS { + pub omac: DXGKMDT_OPM_OMAC, + pub rnRandomNumber: DXGKMDT_OPM_RANDOM_NUMBER, + pub guidInformation: ::windows_sys::core::GUID, + pub ulSequenceNumber: u32, + pub cbParametersSize: u32, + pub abParameters: [u8; 4056], +} +impl ::core::marker::Copy for DXGKMDT_OPM_GET_INFO_PARAMETERS {} +impl ::core::clone::Clone for DXGKMDT_OPM_GET_INFO_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGKMDT_OPM_HDCP_KEY_SELECTION_VECTOR { + pub abKeySelectionVector: [u8; 5], +} +impl ::core::marker::Copy for DXGKMDT_OPM_HDCP_KEY_SELECTION_VECTOR {} +impl ::core::clone::Clone for DXGKMDT_OPM_HDCP_KEY_SELECTION_VECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGKMDT_OPM_OMAC { + pub abOMAC: [u8; 16], +} +impl ::core::marker::Copy for DXGKMDT_OPM_OMAC {} +impl ::core::clone::Clone for DXGKMDT_OPM_OMAC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGKMDT_OPM_OUTPUT_ID { + pub rnRandomNumber: DXGKMDT_OPM_RANDOM_NUMBER, + pub ulStatusFlags: u32, + pub OutputId: u64, +} +impl ::core::marker::Copy for DXGKMDT_OPM_OUTPUT_ID {} +impl ::core::clone::Clone for DXGKMDT_OPM_OUTPUT_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGKMDT_OPM_RANDOM_NUMBER { + pub abRandomNumber: [u8; 16], +} +impl ::core::marker::Copy for DXGKMDT_OPM_RANDOM_NUMBER {} +impl ::core::clone::Clone for DXGKMDT_OPM_RANDOM_NUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGKMDT_OPM_REQUESTED_INFORMATION { + pub omac: DXGKMDT_OPM_OMAC, + pub cbRequestedInformationSize: u32, + pub abRequestedInformation: [u8; 4076], +} +impl ::core::marker::Copy for DXGKMDT_OPM_REQUESTED_INFORMATION {} +impl ::core::clone::Clone for DXGKMDT_OPM_REQUESTED_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGKMDT_OPM_SET_ACP_AND_CGMSA_SIGNALING_PARAMETERS { + pub ulNewTVProtectionStandard: u32, + pub ulAspectRatioChangeMask1: u32, + pub ulAspectRatioData1: u32, + pub ulAspectRatioChangeMask2: u32, + pub ulAspectRatioData2: u32, + pub ulAspectRatioChangeMask3: u32, + pub ulAspectRatioData3: u32, + pub ulReserved: [u32; 4], + pub ulReserved2: [u32; 4], + pub ulReserved3: u32, +} +impl ::core::marker::Copy for DXGKMDT_OPM_SET_ACP_AND_CGMSA_SIGNALING_PARAMETERS {} +impl ::core::clone::Clone for DXGKMDT_OPM_SET_ACP_AND_CGMSA_SIGNALING_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGKMDT_OPM_SET_HDCP_SRM_PARAMETERS { + pub ulSRMVersion: u32, +} +impl ::core::marker::Copy for DXGKMDT_OPM_SET_HDCP_SRM_PARAMETERS {} +impl ::core::clone::Clone for DXGKMDT_OPM_SET_HDCP_SRM_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGKMDT_OPM_SET_PROTECTION_LEVEL_PARAMETERS { + pub ulProtectionType: u32, + pub ulProtectionLevel: u32, + pub Reserved: u32, + pub Reserved2: u32, +} +impl ::core::marker::Copy for DXGKMDT_OPM_SET_PROTECTION_LEVEL_PARAMETERS {} +impl ::core::clone::Clone for DXGKMDT_OPM_SET_PROTECTION_LEVEL_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGKMDT_OPM_STANDARD_INFORMATION { + pub rnRandomNumber: DXGKMDT_OPM_RANDOM_NUMBER, + pub ulStatusFlags: u32, + pub ulInformation: u32, + pub ulReserved: u32, + pub ulReserved2: u32, +} +impl ::core::marker::Copy for DXGKMDT_OPM_STANDARD_INFORMATION {} +impl ::core::clone::Clone for DXGKMDT_OPM_STANDARD_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DXGKVGPU_ESCAPE_HEAD { + pub Luid: GPUP_DRIVER_ESCAPE_INPUT, + pub Type: DXGKVGPU_ESCAPE_TYPE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGKVGPU_ESCAPE_HEAD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGKVGPU_ESCAPE_HEAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DXGKVGPU_ESCAPE_INITIALIZE { + pub Header: DXGKVGPU_ESCAPE_HEAD, + pub VmGuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGKVGPU_ESCAPE_INITIALIZE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGKVGPU_ESCAPE_INITIALIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DXGKVGPU_ESCAPE_PAUSE { + pub Header: DXGKVGPU_ESCAPE_HEAD, + pub DeviceLuid: super::super::super::Win32::Foundation::LUID, + pub Anonymous: DXGKVGPU_ESCAPE_PAUSE_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGKVGPU_ESCAPE_PAUSE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGKVGPU_ESCAPE_PAUSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DXGKVGPU_ESCAPE_PAUSE_0 { + pub Anonymous: DXGKVGPU_ESCAPE_PAUSE_0_0, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGKVGPU_ESCAPE_PAUSE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGKVGPU_ESCAPE_PAUSE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DXGKVGPU_ESCAPE_PAUSE_0_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGKVGPU_ESCAPE_PAUSE_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGKVGPU_ESCAPE_PAUSE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DXGKVGPU_ESCAPE_POWERTRANSITIONCOMPLETE { + pub Header: DXGKVGPU_ESCAPE_HEAD, + pub PowerState: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGKVGPU_ESCAPE_POWERTRANSITIONCOMPLETE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGKVGPU_ESCAPE_POWERTRANSITIONCOMPLETE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DXGKVGPU_ESCAPE_READ_PCI_CONFIG { + pub Header: DXGKVGPU_ESCAPE_HEAD, + pub Offset: u32, + pub Size: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGKVGPU_ESCAPE_READ_PCI_CONFIG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGKVGPU_ESCAPE_READ_PCI_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DXGKVGPU_ESCAPE_READ_VGPU_TYPE { + pub Header: DXGKVGPU_ESCAPE_HEAD, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGKVGPU_ESCAPE_READ_VGPU_TYPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGKVGPU_ESCAPE_READ_VGPU_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DXGKVGPU_ESCAPE_RELEASE { + pub Header: DXGKVGPU_ESCAPE_HEAD, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGKVGPU_ESCAPE_RELEASE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGKVGPU_ESCAPE_RELEASE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DXGKVGPU_ESCAPE_RESUME { + pub Header: DXGKVGPU_ESCAPE_HEAD, + pub DeviceLuid: super::super::super::Win32::Foundation::LUID, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGKVGPU_ESCAPE_RESUME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGKVGPU_ESCAPE_RESUME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DXGKVGPU_ESCAPE_WRITE_PCI_CONFIG { + pub Header: DXGKVGPU_ESCAPE_HEAD, + pub Offset: u32, + pub Size: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGKVGPU_ESCAPE_WRITE_PCI_CONFIG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGKVGPU_ESCAPE_WRITE_PCI_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_ADAPTER_PERFDATA { + pub MemoryFrequency: u64, + pub MaxMemoryFrequency: u64, + pub MaxMemoryFrequencyOC: u64, + pub MemoryBandwidth: u64, + pub PCIEBandwidth: u64, + pub FanRPM: u32, + pub Power: u32, + pub Temperature: u32, + pub PowerStateOverride: u8, +} +impl ::core::marker::Copy for DXGK_ADAPTER_PERFDATA {} +impl ::core::clone::Clone for DXGK_ADAPTER_PERFDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_ADAPTER_PERFDATACAPS { + pub MaxMemoryBandwidth: u64, + pub MaxPCIEBandwidth: u64, + pub MaxFanRPM: u32, + pub TemperatureMax: u32, + pub TemperatureWarning: u32, +} +impl ::core::marker::Copy for DXGK_ADAPTER_PERFDATACAPS {} +impl ::core::clone::Clone for DXGK_ADAPTER_PERFDATACAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_BACKLIGHT_INFO { + pub BacklightUsersetting: u16, + pub BacklightEffective: u16, + pub GammaRamp: D3DDDI_GAMMA_RAMP_RGB256x3x16, +} +impl ::core::marker::Copy for DXGK_BACKLIGHT_INFO {} +impl ::core::clone::Clone for DXGK_BACKLIGHT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGK_BRIGHTNESS_CAPS { + pub Anonymous: DXGK_BRIGHTNESS_CAPS_0, +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_CAPS {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union DXGK_BRIGHTNESS_CAPS_0 { + pub Anonymous: DXGK_BRIGHTNESS_CAPS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_CAPS_0 {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_BRIGHTNESS_CAPS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_CAPS_0_0 {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_BRIGHTNESS_GET_NIT_RANGES_OUT { + pub NormalRangeCount: u32, + pub RangeCount: u32, + pub PreferredMaximumBrightness: u32, + pub SupportedRanges: [DXGK_BRIGHTNESS_NIT_RANGE; 16], +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_GET_NIT_RANGES_OUT {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_GET_NIT_RANGES_OUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_BRIGHTNESS_GET_OUT { + pub CurrentBrightnessMillinits: u32, + pub TargetBrightnessMillinits: u32, +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_GET_OUT {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_GET_OUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_BRIGHTNESS_NIT_RANGE { + pub MinimumLevelMillinit: u32, + pub MaximumLevelMillinit: u32, + pub StepSizeMillinit: u32, +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_NIT_RANGE {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_NIT_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_BRIGHTNESS_SENSOR_DATA { + pub Size: u32, + pub Anonymous: DXGK_BRIGHTNESS_SENSOR_DATA_0, + pub AlsReading: f32, + pub Chromaticity: DXGK_BRIGHTNESS_SENSOR_DATA_CHROMATICITY, + pub ColorTemperature: f32, +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_SENSOR_DATA {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_SENSOR_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union DXGK_BRIGHTNESS_SENSOR_DATA_0 { + pub Flags: DXGK_BRIGHTNESS_SENSOR_DATA_0_0, + pub ValidSensorValues: u32, +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_SENSOR_DATA_0 {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_SENSOR_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_BRIGHTNESS_SENSOR_DATA_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_SENSOR_DATA_0_0 {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_SENSOR_DATA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_BRIGHTNESS_SENSOR_DATA_CHROMATICITY { + pub ChromaticityX: f32, + pub ChromaticityY: f32, +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_SENSOR_DATA_CHROMATICITY {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_SENSOR_DATA_CHROMATICITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_BRIGHTNESS_SET_IN { + pub BrightnessMillinits: u32, + pub TransitionTimeMs: u32, + pub SensorReadings: DXGK_BRIGHTNESS_SENSOR_DATA, +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_SET_IN {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_SET_IN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGK_BRIGHTNESS_STATE { + pub Anonymous: DXGK_BRIGHTNESS_STATE_0, +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_STATE {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union DXGK_BRIGHTNESS_STATE_0 { + pub Anonymous: DXGK_BRIGHTNESS_STATE_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_STATE_0 {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_STATE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_BRIGHTNESS_STATE_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DXGK_BRIGHTNESS_STATE_0_0 {} +impl ::core::clone::Clone for DXGK_BRIGHTNESS_STATE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGK_DISPLAY_INFORMATION { + pub Width: u32, + pub Height: u32, + pub Pitch: u32, + pub ColorFormat: D3DDDIFORMAT, + pub PhysicAddress: i64, + pub TargetId: u32, + pub AcpiId: u32, +} +impl ::core::marker::Copy for DXGK_DISPLAY_INFORMATION {} +impl ::core::clone::Clone for DXGK_DISPLAY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DXGK_ESCAPE_GPUMMUCAPS { + pub ReadOnlyMemorySupported: super::super::super::Win32::Foundation::BOOLEAN, + pub NoExecuteMemorySupported: super::super::super::Win32::Foundation::BOOLEAN, + pub ZeroInPteSupported: super::super::super::Win32::Foundation::BOOLEAN, + pub CacheCoherentMemorySupported: super::super::super::Win32::Foundation::BOOLEAN, + pub LargePageSupported: super::super::super::Win32::Foundation::BOOLEAN, + pub DualPteSupported: super::super::super::Win32::Foundation::BOOLEAN, + pub AllowNonAlignedLargePageAddress: super::super::super::Win32::Foundation::BOOLEAN, + pub VirtualAddressBitCount: u32, + pub PageTableLevelCount: u32, + pub PageTableLevelDesk: [D3DKMT_PAGE_TABLE_LEVEL_DESC; 6], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGK_ESCAPE_GPUMMUCAPS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGK_ESCAPE_GPUMMUCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGK_FAULT_ERROR_CODE { + pub Anonymous: DXGK_FAULT_ERROR_CODE_0, +} +impl ::core::marker::Copy for DXGK_FAULT_ERROR_CODE {} +impl ::core::clone::Clone for DXGK_FAULT_ERROR_CODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DXGK_FAULT_ERROR_CODE_0 { + pub Anonymous1: DXGK_FAULT_ERROR_CODE_0_0, + pub Anonymous2: DXGK_FAULT_ERROR_CODE_0_1, +} +impl ::core::marker::Copy for DXGK_FAULT_ERROR_CODE_0 {} +impl ::core::clone::Clone for DXGK_FAULT_ERROR_CODE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_FAULT_ERROR_CODE_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DXGK_FAULT_ERROR_CODE_0_0 {} +impl ::core::clone::Clone for DXGK_FAULT_ERROR_CODE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_FAULT_ERROR_CODE_0_1 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DXGK_FAULT_ERROR_CODE_0_1 {} +impl ::core::clone::Clone for DXGK_FAULT_ERROR_CODE_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_GPUCLOCKDATA { + pub GpuFrequency: u64, + pub GpuClockCounter: u64, + pub CpuClockCounter: u64, + pub Flags: DXGK_GPUCLOCKDATA_FLAGS, +} +impl ::core::marker::Copy for DXGK_GPUCLOCKDATA {} +impl ::core::clone::Clone for DXGK_GPUCLOCKDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGK_GPUCLOCKDATA_FLAGS { + pub Anonymous: DXGK_GPUCLOCKDATA_FLAGS_0, +} +impl ::core::marker::Copy for DXGK_GPUCLOCKDATA_FLAGS {} +impl ::core::clone::Clone for DXGK_GPUCLOCKDATA_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union DXGK_GPUCLOCKDATA_FLAGS_0 { + pub Anonymous: DXGK_GPUCLOCKDATA_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for DXGK_GPUCLOCKDATA_FLAGS_0 {} +impl ::core::clone::Clone for DXGK_GPUCLOCKDATA_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_GPUCLOCKDATA_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DXGK_GPUCLOCKDATA_FLAGS_0_0 {} +impl ::core::clone::Clone for DXGK_GPUCLOCKDATA_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_GPUVERSION { + pub BiosVersion: [u16; 32], + pub GpuArchitecture: [u16; 32], +} +impl ::core::marker::Copy for DXGK_GPUVERSION {} +impl ::core::clone::Clone for DXGK_GPUVERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Power"))] +pub struct DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2 { + pub Version: u32, + pub PrivateHandle: *mut ::core::ffi::c_void, + pub PowerNotificationCb: PDXGK_POWER_NOTIFICATION, + pub RemovalNotificationCb: PDXGK_REMOVAL_NOTIFICATION, + pub FStateNotificationCb: PDXGK_FSTATE_NOTIFICATION, + pub InitialComponentStateCb: PDXGK_INITIAL_COMPONENT_STATE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Power"))] +impl ::core::marker::Copy for DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Power"))] +impl ::core::clone::Clone for DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Power"))] +pub struct DXGK_GRAPHICSPOWER_REGISTER_OUTPUT { + pub DeviceHandle: *mut ::core::ffi::c_void, + pub InitialGrfxPowerState: super::super::super::Win32::System::Power::DEVICE_POWER_STATE, + pub SetSharedPowerComponentStateCb: PDXGK_SET_SHARED_POWER_COMPONENT_STATE, + pub UnregisterCb: PDXGK_GRAPHICSPOWER_UNREGISTER, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Power"))] +impl ::core::marker::Copy for DXGK_GRAPHICSPOWER_REGISTER_OUTPUT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Power"))] +impl ::core::clone::Clone for DXGK_GRAPHICSPOWER_REGISTER_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DXGK_MIRACAST_CHUNK_ID { + pub Anonymous: DXGK_MIRACAST_CHUNK_ID_0, + pub Value: u64, +} +impl ::core::marker::Copy for DXGK_MIRACAST_CHUNK_ID {} +impl ::core::clone::Clone for DXGK_MIRACAST_CHUNK_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGK_MIRACAST_CHUNK_ID_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for DXGK_MIRACAST_CHUNK_ID_0 {} +impl ::core::clone::Clone for DXGK_MIRACAST_CHUNK_ID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGK_MIRACAST_CHUNK_INFO { + pub ChunkType: DXGK_MIRACAST_CHUNK_TYPE, + pub ChunkId: DXGK_MIRACAST_CHUNK_ID, + pub ProcessingTime: u32, + pub EncodeRate: u32, +} +impl ::core::marker::Copy for DXGK_MIRACAST_CHUNK_INFO {} +impl ::core::clone::Clone for DXGK_MIRACAST_CHUNK_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union DXGK_MONITORLINKINFO_CAPABILITIES { + pub Anonymous: DXGK_MONITORLINKINFO_CAPABILITIES_0, + pub Value: u32, +} +impl ::core::marker::Copy for DXGK_MONITORLINKINFO_CAPABILITIES {} +impl ::core::clone::Clone for DXGK_MONITORLINKINFO_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_MONITORLINKINFO_CAPABILITIES_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DXGK_MONITORLINKINFO_CAPABILITIES_0 {} +impl ::core::clone::Clone for DXGK_MONITORLINKINFO_CAPABILITIES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union DXGK_MONITORLINKINFO_USAGEHINTS { + pub Anonymous: DXGK_MONITORLINKINFO_USAGEHINTS_0, + pub Value: u32, +} +impl ::core::marker::Copy for DXGK_MONITORLINKINFO_USAGEHINTS {} +impl ::core::clone::Clone for DXGK_MONITORLINKINFO_USAGEHINTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_MONITORLINKINFO_USAGEHINTS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DXGK_MONITORLINKINFO_USAGEHINTS_0 {} +impl ::core::clone::Clone for DXGK_MONITORLINKINFO_USAGEHINTS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DXGK_NODEMETADATA { + pub EngineType: DXGK_ENGINE_TYPE, + pub FriendlyName: [u16; 32], + pub Flags: DXGK_NODEMETADATA_FLAGS, + pub GpuMmuSupported: super::super::super::Win32::Foundation::BOOLEAN, + pub IoMmuSupported: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DXGK_NODEMETADATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DXGK_NODEMETADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGK_NODEMETADATA_FLAGS { + pub Anonymous: DXGK_NODEMETADATA_FLAGS_0, +} +impl ::core::marker::Copy for DXGK_NODEMETADATA_FLAGS {} +impl ::core::clone::Clone for DXGK_NODEMETADATA_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union DXGK_NODEMETADATA_FLAGS_0 { + pub Anonymous: DXGK_NODEMETADATA_FLAGS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for DXGK_NODEMETADATA_FLAGS_0 {} +impl ::core::clone::Clone for DXGK_NODEMETADATA_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_NODEMETADATA_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DXGK_NODEMETADATA_FLAGS_0_0 {} +impl ::core::clone::Clone for DXGK_NODEMETADATA_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DXGK_NODE_PERFDATA { + pub Frequency: u64, + pub MaxFrequency: u64, + pub MaxFrequencyOC: u64, + pub Voltage: u32, + pub VoltageMax: u32, + pub VoltageMaxOC: u32, + pub MaxTransitionLatency: u64, +} +impl ::core::marker::Copy for DXGK_NODE_PERFDATA {} +impl ::core::clone::Clone for DXGK_NODE_PERFDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGK_PTE { + pub Anonymous1: DXGK_PTE_0, + pub Anonymous2: DXGK_PTE_1, +} +impl ::core::marker::Copy for DXGK_PTE {} +impl ::core::clone::Clone for DXGK_PTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DXGK_PTE_0 { + pub Anonymous: DXGK_PTE_0_0, + pub Flags: u64, +} +impl ::core::marker::Copy for DXGK_PTE_0 {} +impl ::core::clone::Clone for DXGK_PTE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGK_PTE_0_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for DXGK_PTE_0_0 {} +impl ::core::clone::Clone for DXGK_PTE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DXGK_PTE_1 { + pub PageAddress: u64, + pub PageTableAddress: u64, +} +impl ::core::marker::Copy for DXGK_PTE_1 {} +impl ::core::clone::Clone for DXGK_PTE_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGK_TARGETMODE_DETAIL_TIMING { + pub VideoStandard: D3DKMDT_VIDEO_SIGNAL_STANDARD, + pub TimingId: u32, + pub DetailTiming: DISPLAYID_DETAILED_TIMING_TYPE_I, +} +impl ::core::marker::Copy for DXGK_TARGETMODE_DETAIL_TIMING {} +impl ::core::clone::Clone for DXGK_TARGETMODE_DETAIL_TIMING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GPUP_DRIVER_ESCAPE_INPUT { + pub vfLUID: super::super::super::Win32::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GPUP_DRIVER_ESCAPE_INPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GPUP_DRIVER_ESCAPE_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OUTPUTDUPL_CONTEXT_DEBUG_INFO { + pub Status: OUTPUTDUPL_CONTEXT_DEBUG_STATUS, + pub ProcessID: super::super::super::Win32::Foundation::HANDLE, + pub AccumulatedPresents: u32, + pub LastPresentTime: i64, + pub LastMouseTime: i64, + pub ProcessName: [u8; 16], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OUTPUTDUPL_CONTEXT_DEBUG_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OUTPUTDUPL_CONTEXT_DEBUG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _NT_D3DLINEPATTERN { + pub wRepeatFactor: u16, + pub wLinePattern: u16, +} +impl ::core::marker::Copy for _NT_D3DLINEPATTERN {} +impl ::core::clone::Clone for _NT_D3DLINEPATTERN { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub type LPD3DHAL_CLEAR2CB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub type LPD3DHAL_CLEARCB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub type LPD3DHAL_CONTEXTCREATECB = ::core::option::Option u32>; +pub type LPD3DHAL_CONTEXTDESTROYALLCB = ::core::option::Option u32>; +pub type LPD3DHAL_CONTEXTDESTROYCB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub type LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub type LPD3DHAL_DRAWONEPRIMITIVECB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub type LPD3DHAL_DRAWPRIMITIVES2CB = ::core::option::Option u32>; +pub type LPD3DHAL_DRAWPRIMITIVESCB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub type LPD3DHAL_GETSTATECB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_DirectDraw"))] +pub type LPD3DHAL_RENDERPRIMITIVECB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(feature = "Win32_Graphics_DirectDraw")] +pub type LPD3DHAL_RENDERSTATECB = ::core::option::Option u32>; +pub type LPD3DHAL_SCENECAPTURECB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub type LPD3DHAL_SETRENDERTARGETCB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(feature = "Win32_Graphics_DirectDraw")] +pub type LPD3DHAL_TEXTURECREATECB = ::core::option::Option u32>; +pub type LPD3DHAL_TEXTUREDESTROYCB = ::core::option::Option u32>; +pub type LPD3DHAL_TEXTUREGETSURFCB = ::core::option::Option u32>; +pub type LPD3DHAL_TEXTURESWAPCB = ::core::option::Option u32>; +pub type LPD3DHAL_VALIDATETEXTURESTAGESTATECB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] +#[cfg(feature = "Win32_Graphics_Direct3D9")] +pub type LPD3DNTHAL_CLEAR2CB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub type LPD3DNTHAL_CONTEXTCREATECB = ::core::option::Option u32>; +pub type LPD3DNTHAL_CONTEXTDESTROYALLCB = ::core::option::Option u32>; +pub type LPD3DNTHAL_CONTEXTDESTROYCB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub type LPD3DNTHAL_DRAWPRIMITIVES2CB = ::core::option::Option u32>; +pub type LPD3DNTHAL_SCENECAPTURECB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub type LPD3DNTHAL_SETRENDERTARGETCB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPD3DNTHAL_TEXTURECREATECB = ::core::option::Option u32>; +pub type LPD3DNTHAL_TEXTUREDESTROYCB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPD3DNTHAL_TEXTUREGETSURFCB = ::core::option::Option u32>; +pub type LPD3DNTHAL_TEXTURESWAPCB = ::core::option::Option u32>; +pub type LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDXGK_FSTATE_NOTIFICATION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDXGK_GRAPHICSPOWER_UNREGISTER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDXGK_INITIAL_COMPONENT_STATE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Power"))] +pub type PDXGK_POWER_NOTIFICATION = ::core::option::Option ()>; +pub type PDXGK_REMOVAL_NOTIFICATION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDXGK_SET_SHARED_POWER_COMPONENT_STATE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_ACQUIREKEYEDMUTEX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_ACQUIREKEYEDMUTEX2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_ADJUSTFULLSCREENGAMMA = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PFND3DKMT_BUDGETCHANGENOTIFICATIONCALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CANCELPRESENTS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFND3DKMT_CHANGESURFACEPOINTER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CHANGEVIDEOMEMORYRESERVATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CHECKEXCLUSIVEOWNERSHIP = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CHECKMONITORPOWERSTATE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT3 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CHECKOCCLUSION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CHECKSHAREDRESOURCEACCESS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CLOSEADAPTER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CONFIGURESHAREDRESOURCE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CONNECTDOORBELL = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATEALLOCATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATEALLOCATION2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATECONTEXT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATECONTEXTVIRTUAL = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFND3DKMT_CREATEDCFROMMEMORY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATEDEVICE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATEDOORBELL = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATEHWQUEUE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATEKEYEDMUTEX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATEKEYEDMUTEX2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATENATIVEFENCE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATEOUTPUTDUPL = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATEOVERLAY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATEPAGINGQUEUE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATEPROTECTEDSESSION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATESYNCHRONIZATIONOBJECT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_CREATESYNCHRONIZATIONOBJECT2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_DESTROYALLOCATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_DESTROYALLOCATION2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_DESTROYCONTEXT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFND3DKMT_DESTROYDCFROMMEMORY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_DESTROYDEVICE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_DESTROYDOORBELL = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_DESTROYHWQUEUE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_DESTROYKEYEDMUTEX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_DESTROYOUTPUTDUPL = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_DESTROYOVERLAY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_DESTROYPAGINGQUEUE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_DESTROYPROTECTEDSESSION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_DESTROYSYNCHRONIZATIONOBJECT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_ENUMADAPTERS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_ENUMADAPTERS2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_ENUMADAPTERS3 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_ESCAPE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_EVICT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_FLIPOVERLAY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_FLUSHHEAPTRANSITIONS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_FREEGPUVIRTUALADDRESS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETALLOCATIONPRIORITY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETCONTEXTINPROCESSSCHEDULINGPRIORITY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETCONTEXTSCHEDULINGPRIORITY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETDEVICESTATE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETDISPLAYMODELIST = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETDWMVERTICALBLANKEVENT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETMULTIPLANEOVERLAYCAPS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETMULTISAMPLEMETHODLIST = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETOVERLAYSTATE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETPOSTCOMPOSITIONCAPS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETPRESENTHISTORY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETPROCESSDEVICEREMOVALSUPPORT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETPROCESSSCHEDULINGPRIORITYCLASS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETRESOURCEPRESENTPRIVATEDRIVERDATA = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETRUNTIMEDATA = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETSCANLINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETSHAREDPRIMARYHANDLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_GETSHAREDRESOURCEADAPTERLUID = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_INVALIDATEACTIVEVIDPN = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_INVALIDATECACHE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_LOCK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_LOCK2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_MAKERESIDENT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_MAPGPUVIRTUALADDRESS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_MARKDEVICEASERROR = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_NOTIFYWORKSUBMISSION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OFFERALLOCATIONS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENADAPTERFROMDEVICENAME = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENADAPTERFROMGDIDISPLAYNAME = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFND3DKMT_OPENADAPTERFROMHDC = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENADAPTERFROMLUID = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENKEYEDMUTEX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENKEYEDMUTEX2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENKEYEDMUTEXFROMNTHANDLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENNATIVEFENCEFROMNTHANDLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type PFND3DKMT_OPENNTHANDLEFROMNAME = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENPROTECTEDSESSIONFROMNTHANDLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENRESOURCE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENRESOURCE2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENRESOURCEFROMNTHANDLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENSYNCHRONIZATIONOBJECT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENSYNCOBJECTFROMNTHANDLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type PFND3DKMT_OPENSYNCOBJECTNTHANDLEFROMNAME = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OUTPUTDUPLGETFRAMEINFO = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OUTPUTDUPLGETMETADATA = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OUTPUTDUPLGETPOINTERSHAPEDATA = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OUTPUTDUPLPRESENT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OUTPUTDUPLPRESENTTOHWQUEUE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_OUTPUTDUPLRELEASEFRAME = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_PINDIRECTFLIPRESOURCES = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_POLLDISPLAYCHILDREN = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_PRESENT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_PRESENTMULTIPLANEOVERLAY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_PRESENTMULTIPLANEOVERLAY2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_PRESENTMULTIPLANEOVERLAY3 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYADAPTERINFO = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYALLOCATIONRESIDENCY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYCLOCKCALIBRATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYFSEBLOCK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYHYBRIDLISTVALUE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYPROCESSOFFERINFO = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYPROTECTEDSESSIONINFOFROMNTHANDLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYPROTECTEDSESSIONSTATUS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYREMOTEVIDPNSOURCEFROMGDIDISPLAYNAME = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYRESOURCEINFO = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYRESOURCEINFOFROMNTHANDLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYSTATISTICS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYVIDEOMEMORYINFO = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_QUERYVIDPNEXCLUSIVEOWNERSHIP = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_RECLAIMALLOCATIONS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_RECLAIMALLOCATIONS2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_REGISTERBUDGETCHANGENOTIFICATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_REGISTERTRIMNOTIFICATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_RELEASEKEYEDMUTEX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_RELEASEKEYEDMUTEX2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_RELEASEPROCESSVIDPNSOURCEOWNERS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_RENDER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_RESERVEGPUVIRTUALADDRESS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETALLOCATIONPRIORITY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETCONTEXTINPROCESSSCHEDULINGPRIORITY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETCONTEXTSCHEDULINGPRIORITY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETDISPLAYMODE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETDISPLAYPRIVATEDRIVERFORMAT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETFSEBLOCK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETGAMMARAMP = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETHWPROTECTIONTEARDOWNRECOVERY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETHYBRIDLISTVVALUE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETPROCESSSCHEDULINGPRIORITYCLASS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETQUEUEDLIMIT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETSTABLEPOWERSTATE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETSTEREOENABLED = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETSYNCREFRESHCOUNTWAITTARGET = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETVIDPNSOURCEHWPROTECTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETVIDPNSOURCEOWNER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETVIDPNSOURCEOWNER1 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SETVIDPNSOURCEOWNER2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SHAREDPRIMARYLOCKNOTIFICATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SHAREDPRIMARYUNLOCKNOTIFICATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type PFND3DKMT_SHAREOBJECTS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SIGNALSYNCHRONIZATIONOBJECT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SIGNALSYNCHRONIZATIONOBJECT2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMCPU = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SUBMITCOMMAND = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SUBMITCOMMANDTOHWQUEUE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SUBMITPRESENTBLTTOHWQUEUE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SUBMITPRESENTTOHWQUEUE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SUBMITSIGNALSYNCOBJECTSTOHWQUEUE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_SUBMITWAITFORSYNCOBJECTSTOHWQUEUE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PFND3DKMT_TRIMNOTIFICATIONCALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_TRIMPROCESSCOMMITMENT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_UNLOCK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_UNLOCK2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_UNPINDIRECTFLIPRESOURCES = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_UNREGISTERBUDGETCHANGENOTIFICATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_UNREGISTERTRIMNOTIFICATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_UPDATEALLOCATIONPROPERTY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_UPDATEGPUVIRTUALADDRESS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_UPDATEOVERLAY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_WAITFORIDLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_WAITFORSYNCHRONIZATIONOBJECT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_WAITFORSYNCHRONIZATIONOBJECT2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMCPU = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMGPU = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_WAITFORVERTICALBLANKEVENT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFND3DKMT_WAITFORVERTICALBLANKEVENT2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PFND3DNTPARSEUNKNOWNCOMMAND = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PFND3DPARSEUNKNOWNCOMMAND = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/Graphics/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/Graphics/mod.rs new file mode 100644 index 000000000..b6b90519b --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/Graphics/mod.rs @@ -0,0 +1,3 @@ +#[cfg(feature = "Wdk_Graphics_Direct3D")] +#[doc = "Required features: `\"Wdk_Graphics_Direct3D\"`"] +pub mod Direct3D; diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/Storage/FileSystem/Minifilters/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/Storage/FileSystem/Minifilters/mod.rs new file mode 100644 index 000000000..ce0c9dcf7 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/Storage/FileSystem/Minifilters/mod.rs @@ -0,0 +1,2077 @@ +::windows_targets::link!("fltmgr.sys" "system" fn FltAcknowledgeEcp(filter : PFLT_FILTER, ecpcontext : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltAcquirePushLockExclusive(pushlock : *mut usize) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltAcquirePushLockExclusiveEx(pushlock : *mut usize, flags : u32) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltAcquirePushLockShared(pushlock : *mut usize) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltAcquirePushLockSharedEx(pushlock : *mut usize, flags : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FltAcquireResourceExclusive(resource : *mut super::super::super::Foundation:: ERESOURCE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FltAcquireResourceShared(resource : *mut super::super::super::Foundation:: ERESOURCE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltAddOpenReparseEntry(filter : PFLT_FILTER, data : *const FLT_CALLBACK_DATA, openreparseentry : *const super:: OPEN_REPARSE_LIST_ENTRY) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltAdjustDeviceStackSizeForIoRedirection(sourceinstance : PFLT_INSTANCE, targetinstance : PFLT_INSTANCE, sourcedevicestacksizemodified : *mut super::super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltAllocateCallbackData(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, retnewcallbackdata : *mut *mut FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltAllocateCallbackDataEx(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, flags : u32, retnewcallbackdata : *mut *mut FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltAllocateContext(filter : PFLT_FILTER, contexttype : u16, contextsize : usize, pooltype : super::super::super::Foundation:: POOL_TYPE, returnedcontext : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("fltmgr.sys" "system" fn FltAllocateDeferredIoWorkItem() -> PFLT_DEFERRED_IO_WORKITEM); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltAllocateExtraCreateParameter(filter : PFLT_FILTER, ecptype : *const ::windows_sys::core::GUID, sizeofcontext : u32, flags : u32, cleanupcallback : super:: PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK, pooltag : u32, ecpcontext : *mut *mut ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltAllocateExtraCreateParameterFromLookasideList(filter : PFLT_FILTER, ecptype : *const ::windows_sys::core::GUID, sizeofcontext : u32, flags : u32, cleanupcallback : super:: PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK, lookasidelist : *mut ::core::ffi::c_void, ecpcontext : *mut *mut ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltAllocateExtraCreateParameterList(filter : PFLT_FILTER, flags : u32, ecplist : *mut *mut super::super::super::Foundation:: ECP_LIST) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltAllocateFileLock(completelockcallbackdataroutine : PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE, unlockroutine : super:: PUNLOCK_ROUTINE) -> *mut super:: FILE_LOCK); +::windows_targets::link!("fltmgr.sys" "system" fn FltAllocateGenericWorkItem() -> PFLT_GENERIC_WORKITEM); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn FltAllocatePoolAlignedWithTag(instance : PFLT_INSTANCE, pooltype : super::super::super::Foundation:: POOL_TYPE, numberofbytes : usize, tag : u32) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltApplyPriorityInfoThread(inputpriorityinfo : *const super:: IO_PRIORITY_INFO, outputpriorityinfo : *mut super:: IO_PRIORITY_INFO, thread : super::super::super::Foundation:: PETHREAD) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltAttachVolume(filter : PFLT_FILTER, volume : PFLT_VOLUME, instancename : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING, retinstance : *mut PFLT_INSTANCE) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltAttachVolumeAtAltitude(filter : PFLT_FILTER, volume : PFLT_VOLUME, altitude : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING, instancename : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING, retinstance : *mut PFLT_INSTANCE) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FltBuildDefaultSecurityDescriptor(securitydescriptor : *mut super::super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, desiredaccess : u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCancelFileOpen(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCancelIo(callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCancellableWaitForMultipleObjects(count : u32, objectarray : *const *const ::core::ffi::c_void, waittype : super::super::super::super::Win32::System::Kernel:: WAIT_TYPE, timeout : *const i64, waitblockarray : *const super::super::super::Foundation:: KWAIT_BLOCK, callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCancellableWaitForSingleObject(object : *const ::core::ffi::c_void, timeout : *const i64, callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCbdqDisable(cbdq : *mut FLT_CALLBACK_DATA_QUEUE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCbdqEnable(cbdq : *mut FLT_CALLBACK_DATA_QUEUE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCbdqInitialize(instance : PFLT_INSTANCE, cbdq : *mut FLT_CALLBACK_DATA_QUEUE, cbdqinsertio : PFLT_CALLBACK_DATA_QUEUE_INSERT_IO, cbdqremoveio : PFLT_CALLBACK_DATA_QUEUE_REMOVE_IO, cbdqpeeknextio : PFLT_CALLBACK_DATA_QUEUE_PEEK_NEXT_IO, cbdqacquire : PFLT_CALLBACK_DATA_QUEUE_ACQUIRE, cbdqrelease : PFLT_CALLBACK_DATA_QUEUE_RELEASE, cbdqcompletecanceledio : PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCbdqInsertIo(cbdq : *mut FLT_CALLBACK_DATA_QUEUE, cbd : *const FLT_CALLBACK_DATA, context : *const super::super::super::System::SystemServices:: IO_CSQ_IRP_CONTEXT, insertcontext : *const ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCbdqRemoveIo(cbdq : *mut FLT_CALLBACK_DATA_QUEUE, context : *const super::super::super::System::SystemServices:: IO_CSQ_IRP_CONTEXT) -> *mut FLT_CALLBACK_DATA); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCbdqRemoveNextIo(cbdq : *mut FLT_CALLBACK_DATA_QUEUE, peekcontext : *const ::core::ffi::c_void) -> *mut FLT_CALLBACK_DATA); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltCheckAndGrowNameControl(namectrl : *mut FLT_NAME_CONTROL, newsize : u16) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCheckLockForReadAccess(filelock : *const super:: FILE_LOCK, callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCheckLockForWriteAccess(filelock : *const super:: FILE_LOCK, callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCheckOplock(oplock : *const *const ::core::ffi::c_void, callbackdata : *const FLT_CALLBACK_DATA, context : *const ::core::ffi::c_void, waitcompletionroutine : PFLTOPLOCK_WAIT_COMPLETE_ROUTINE, prepostcallbackdataroutine : PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE) -> FLT_PREOP_CALLBACK_STATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCheckOplockEx(oplock : *const *const ::core::ffi::c_void, callbackdata : *const FLT_CALLBACK_DATA, flags : u32, context : *const ::core::ffi::c_void, waitcompletionroutine : PFLTOPLOCK_WAIT_COMPLETE_ROUTINE, prepostcallbackdataroutine : PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE) -> FLT_PREOP_CALLBACK_STATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltClearCallbackDataDirty(data : *mut FLT_CALLBACK_DATA) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltClearCancelCompletion(callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltClose(filehandle : super::super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("fltmgr.sys" "system" fn FltCloseClientPort(filter : PFLT_FILTER, clientport : *mut PFLT_PORT) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltCloseCommunicationPort(serverport : PFLT_PORT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltCloseSectionForDataScan(sectioncontext : PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltCommitComplete(instance : PFLT_INSTANCE, transaction : *const super::super::super::Foundation:: KTRANSACTION, transactioncontext : PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltCommitFinalizeComplete(instance : PFLT_INSTANCE, transaction : *const super::super::super::Foundation:: KTRANSACTION, transactioncontext : PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("fltmgr.sys" "system" fn FltCompareInstanceAltitudes(instance1 : PFLT_INSTANCE, instance2 : PFLT_INSTANCE) -> i32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCompletePendedPostOperation(callbackdata : *const FLT_CALLBACK_DATA) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCompletePendedPreOperation(callbackdata : *const FLT_CALLBACK_DATA, callbackstatus : FLT_PREOP_CALLBACK_STATUS, context : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCopyOpenReparseList(filter : PFLT_FILTER, data : *const FLT_CALLBACK_DATA, ecplist : *mut super::super::super::Foundation:: ECP_LIST) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltCreateCommunicationPort(filter : PFLT_FILTER, serverport : *mut PFLT_PORT, objectattributes : *const super::super::super::Foundation:: OBJECT_ATTRIBUTES, serverportcookie : *const ::core::ffi::c_void, connectnotifycallback : PFLT_CONNECT_NOTIFY, disconnectnotifycallback : PFLT_DISCONNECT_NOTIFY, messagenotifycallback : PFLT_MESSAGE_NOTIFY, maxconnections : i32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn FltCreateFile(filter : PFLT_FILTER, instance : PFLT_INSTANCE, filehandle : *mut super::super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : u32, shareaccess : u32, createdisposition : u32, createoptions : u32, eabuffer : *const ::core::ffi::c_void, ealength : u32, flags : u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCreateFileEx(filter : PFLT_FILTER, instance : PFLT_INSTANCE, filehandle : *mut super::super::super::super::Win32::Foundation:: HANDLE, fileobject : *mut *mut super::super::super::Foundation:: FILE_OBJECT, desiredaccess : u32, objectattributes : *const super::super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : u32, shareaccess : u32, createdisposition : u32, createoptions : u32, eabuffer : *const ::core::ffi::c_void, ealength : u32, flags : u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCreateFileEx2(filter : PFLT_FILTER, instance : PFLT_INSTANCE, filehandle : *mut super::super::super::super::Win32::Foundation:: HANDLE, fileobject : *mut *mut super::super::super::Foundation:: FILE_OBJECT, desiredaccess : u32, objectattributes : *const super::super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : u32, shareaccess : u32, createdisposition : u32, createoptions : u32, eabuffer : *const ::core::ffi::c_void, ealength : u32, flags : u32, drivercontext : *const super::super::super::System::SystemServices:: IO_DRIVER_CREATE_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCreateMailslotFile(filter : PFLT_FILTER, instance : PFLT_INSTANCE, filehandle : *mut super::super::super::super::Win32::Foundation:: HANDLE, fileobject : *mut *mut super::super::super::Foundation:: FILE_OBJECT, desiredaccess : u32, objectattributes : *const super::super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, createoptions : u32, mailslotquota : u32, maximummessagesize : u32, readtimeout : *const i64, drivercontext : *const super::super::super::System::SystemServices:: IO_DRIVER_CREATE_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCreateNamedPipeFile(filter : PFLT_FILTER, instance : PFLT_INSTANCE, filehandle : *mut super::super::super::super::Win32::Foundation:: HANDLE, fileobject : *mut *mut super::super::super::Foundation:: FILE_OBJECT, desiredaccess : u32, objectattributes : *const super::super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, shareaccess : u32, createdisposition : u32, createoptions : u32, namedpipetype : u32, readmode : u32, completionmode : u32, maximuminstances : u32, inboundquota : u32, outboundquota : u32, defaulttimeout : *const i64, drivercontext : *const super::super::super::System::SystemServices:: IO_DRIVER_CREATE_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltCreateSectionForDataScan(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, sectioncontext : PFLT_CONTEXT, desiredaccess : u32, objectattributes : *const super::super::super::Foundation:: OBJECT_ATTRIBUTES, maximumsize : *const i64, sectionpageprotection : u32, allocationattributes : u32, flags : u32, sectionhandle : *mut super::super::super::super::Win32::Foundation:: HANDLE, sectionobject : *mut *mut ::core::ffi::c_void, sectionfilesize : *mut i64) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltCreateSystemVolumeInformationFolder(instance : PFLT_INSTANCE) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltCurrentBatchOplock(oplock : *const *const ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltCurrentOplock(oplock : *const *const ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltCurrentOplockH(oplock : *const *const ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltDecodeParameters(callbackdata : *const FLT_CALLBACK_DATA, mdladdresspointer : *mut *mut *mut super::super::super::Foundation:: MDL, buffer : *mut *mut *mut ::core::ffi::c_void, length : *mut *mut u32, desiredaccess : *mut super::super::super::System::SystemServices:: LOCK_OPERATION) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("fltmgr.sys" "system" fn FltDeleteContext(context : PFLT_CONTEXT) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltDeleteExtraCreateParameterLookasideList(filter : PFLT_FILTER, lookaside : *mut ::core::ffi::c_void, flags : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltDeleteFileContext(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, oldcontext : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltDeleteInstanceContext(instance : PFLT_INSTANCE, oldcontext : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("fltmgr.sys" "system" fn FltDeletePushLock(pushlock : *const usize) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltDeleteStreamContext(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, oldcontext : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltDeleteStreamHandleContext(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, oldcontext : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltDeleteTransactionContext(instance : PFLT_INSTANCE, transaction : *const super::super::super::Foundation:: KTRANSACTION, oldcontext : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltDeleteVolumeContext(filter : PFLT_FILTER, volume : PFLT_VOLUME, oldcontext : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltDetachVolume(filter : PFLT_FILTER, volume : PFLT_VOLUME, instancename : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltDeviceIoControlFile(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, iocontrolcode : u32, inputbuffer : *const ::core::ffi::c_void, inputbufferlength : u32, outputbuffer : *mut ::core::ffi::c_void, outputbufferlength : u32, lengthreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltDoCompletionProcessingWhenSafe(data : *const FLT_CALLBACK_DATA, fltobjects : *const FLT_RELATED_OBJECTS, completioncontext : *const ::core::ffi::c_void, flags : u32, safepostcallback : PFLT_POST_OPERATION_CALLBACK, retpostoperationstatus : *mut FLT_POSTOP_CALLBACK_STATUS) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltEnlistInTransaction(instance : PFLT_INSTANCE, transaction : *const super::super::super::Foundation:: KTRANSACTION, transactioncontext : PFLT_CONTEXT, notificationmask : u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_InstallableFileSystems"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_InstallableFileSystems\"`"] fn FltEnumerateFilterInformation(index : u32, informationclass : super::super::super::super::Win32::Storage::InstallableFileSystems:: FILTER_INFORMATION_CLASS, buffer : *mut ::core::ffi::c_void, buffersize : u32, bytesreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltEnumerateFilters(filterlist : *mut PFLT_FILTER, filterlistsize : u32, numberfiltersreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_InstallableFileSystems", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_InstallableFileSystems\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltEnumerateInstanceInformationByDeviceObject(deviceobject : *const super::super::super::Foundation:: DEVICE_OBJECT, index : u32, informationclass : super::super::super::super::Win32::Storage::InstallableFileSystems:: INSTANCE_INFORMATION_CLASS, buffer : *mut ::core::ffi::c_void, buffersize : u32, bytesreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_InstallableFileSystems"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_InstallableFileSystems\"`"] fn FltEnumerateInstanceInformationByFilter(filter : PFLT_FILTER, index : u32, informationclass : super::super::super::super::Win32::Storage::InstallableFileSystems:: INSTANCE_INFORMATION_CLASS, buffer : *mut ::core::ffi::c_void, buffersize : u32, bytesreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_InstallableFileSystems"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_InstallableFileSystems\"`"] fn FltEnumerateInstanceInformationByVolume(volume : PFLT_VOLUME, index : u32, informationclass : super::super::super::super::Win32::Storage::InstallableFileSystems:: INSTANCE_INFORMATION_CLASS, buffer : *mut ::core::ffi::c_void, buffersize : u32, bytesreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_InstallableFileSystems"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_InstallableFileSystems\"`"] fn FltEnumerateInstanceInformationByVolumeName(volumename : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING, index : u32, informationclass : super::super::super::super::Win32::Storage::InstallableFileSystems:: INSTANCE_INFORMATION_CLASS, buffer : *mut ::core::ffi::c_void, buffersize : u32, bytesreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltEnumerateInstances(volume : PFLT_VOLUME, filter : PFLT_FILTER, instancelist : *mut PFLT_INSTANCE, instancelistsize : u32, numberinstancesreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_InstallableFileSystems"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_InstallableFileSystems\"`"] fn FltEnumerateVolumeInformation(filter : PFLT_FILTER, index : u32, informationclass : super::super::super::super::Win32::Storage::InstallableFileSystems:: FILTER_VOLUME_INFORMATION_CLASS, buffer : *mut ::core::ffi::c_void, buffersize : u32, bytesreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltEnumerateVolumes(filter : PFLT_FILTER, volumelist : *mut PFLT_VOLUME, volumelistsize : u32, numbervolumesreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltFastIoMdlRead(initiatinginstance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, lockkey : u32, mdlchain : *mut *mut super::super::super::Foundation:: MDL, iostatus : *mut super::super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltFastIoMdlReadComplete(initiatinginstance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, mdlchain : *const super::super::super::Foundation:: MDL) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltFastIoMdlWriteComplete(initiatinginstance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, mdlchain : *const super::super::super::Foundation:: MDL) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltFastIoPrepareMdlWrite(initiatinginstance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, lockkey : u32, mdlchain : *mut *mut super::super::super::Foundation:: MDL, iostatus : *mut super::super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltFindExtraCreateParameter(filter : PFLT_FILTER, ecplist : *const super::super::super::Foundation:: ECP_LIST, ecptype : *const ::windows_sys::core::GUID, ecpcontext : *mut *mut ::core::ffi::c_void, ecpcontextsize : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltFlushBuffers(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltFlushBuffers2(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, flushtype : u32, callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltFreeCallbackData(callbackdata : *const FLT_CALLBACK_DATA) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltFreeDeferredIoWorkItem(fltworkitem : PFLT_DEFERRED_IO_WORKITEM) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltFreeExtraCreateParameter(filter : PFLT_FILTER, ecpcontext : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn FltFreeExtraCreateParameterList(filter : PFLT_FILTER, ecplist : *const super::super::super::Foundation:: ECP_LIST) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltFreeFileLock(filelock : *const super:: FILE_LOCK) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltFreeGenericWorkItem(fltworkitem : PFLT_GENERIC_WORKITEM) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn FltFreeOpenReparseList(filter : PFLT_FILTER, ecplist : *const super::super::super::Foundation:: ECP_LIST) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltFreePoolAlignedWithTag(instance : PFLT_INSTANCE, buffer : *const ::core::ffi::c_void, tag : u32) -> ()); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn FltFreeSecurityDescriptor(securitydescriptor : super::super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltFsControlFile(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, fscontrolcode : u32, inputbuffer : *const ::core::ffi::c_void, inputbufferlength : u32, outputbuffer : *mut ::core::ffi::c_void, outputbufferlength : u32, lengthreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetActivityIdCallbackData(callbackdata : *const FLT_CALLBACK_DATA, guid : *mut ::windows_sys::core::GUID) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetBottomInstance(volume : PFLT_VOLUME, instance : *mut PFLT_INSTANCE) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetContexts(fltobjects : *const FLT_RELATED_OBJECTS, desiredcontexts : u16, contexts : *mut FLT_RELATED_CONTEXTS) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetContextsEx(fltobjects : *const FLT_RELATED_OBJECTS, desiredcontexts : u16, contextssize : usize, contexts : *mut FLT_RELATED_CONTEXTS_EX) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetDestinationFileNameInformation(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, rootdirectory : super::super::super::super::Win32::Foundation:: HANDLE, filename : ::windows_sys::core::PCWSTR, filenamelength : u32, nameoptions : u32, retfilenameinformation : *mut *mut FLT_FILE_NAME_INFORMATION) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetDeviceObject(volume : PFLT_VOLUME, deviceobject : *mut *mut super::super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetDiskDeviceObject(volume : PFLT_VOLUME, diskdeviceobject : *mut *mut super::super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetEcpListFromCallbackData(filter : PFLT_FILTER, callbackdata : *const FLT_CALLBACK_DATA, ecplist : *mut *mut super::super::super::Foundation:: ECP_LIST) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetFileContext(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, context : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetFileNameInformation(callbackdata : *const FLT_CALLBACK_DATA, nameoptions : u32, filenameinformation : *mut *mut FLT_FILE_NAME_INFORMATION) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetFileNameInformationUnsafe(fileobject : *const super::super::super::Foundation:: FILE_OBJECT, instance : PFLT_INSTANCE, nameoptions : u32, filenameinformation : *mut *mut FLT_FILE_NAME_INFORMATION) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_InstallableFileSystems"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_InstallableFileSystems\"`"] fn FltGetFileSystemType(fltobject : *const ::core::ffi::c_void, filesystemtype : *mut super::super::super::super::Win32::Storage::InstallableFileSystems:: FLT_FILESYSTEM_TYPE) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetFilterFromInstance(instance : PFLT_INSTANCE, retfilter : *mut PFLT_FILTER) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetFilterFromName(filtername : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING, retfilter : *mut PFLT_FILTER) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_InstallableFileSystems"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_InstallableFileSystems\"`"] fn FltGetFilterInformation(filter : PFLT_FILTER, informationclass : super::super::super::super::Win32::Storage::InstallableFileSystems:: FILTER_INFORMATION_CLASS, buffer : *mut ::core::ffi::c_void, buffersize : u32, bytesreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetFsZeroingOffset(data : *const FLT_CALLBACK_DATA, zeroingoffset : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetInstanceContext(instance : PFLT_INSTANCE, context : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_InstallableFileSystems"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_InstallableFileSystems\"`"] fn FltGetInstanceInformation(instance : PFLT_INSTANCE, informationclass : super::super::super::super::Win32::Storage::InstallableFileSystems:: INSTANCE_INFORMATION_CLASS, buffer : *mut ::core::ffi::c_void, buffersize : u32, bytesreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetIoAttributionHandleFromCallbackData(data : *const FLT_CALLBACK_DATA) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetIoPriorityHint(data : *const FLT_CALLBACK_DATA) -> super::super::super::Foundation:: IO_PRIORITY_HINT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetIoPriorityHintFromCallbackData(data : *const FLT_CALLBACK_DATA) -> super::super::super::Foundation:: IO_PRIORITY_HINT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetIoPriorityHintFromFileObject(fileobject : *const super::super::super::Foundation:: FILE_OBJECT) -> super::super::super::Foundation:: IO_PRIORITY_HINT); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn FltGetIoPriorityHintFromThread(thread : super::super::super::Foundation:: PETHREAD) -> super::super::super::Foundation:: IO_PRIORITY_HINT); +::windows_targets::link!("fltmgr.sys" "system" fn FltGetIrpName(irpmajorcode : u8) -> ::windows_sys::core::PSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetLowerInstance(currentinstance : PFLT_INSTANCE, lowerinstance : *mut PFLT_INSTANCE) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetNewSystemBufferAddress(callbackdata : *const FLT_CALLBACK_DATA) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltGetNextExtraCreateParameter(filter : PFLT_FILTER, ecplist : *const super::super::super::Foundation:: ECP_LIST, currentecpcontext : *const ::core::ffi::c_void, nextecptype : *mut ::windows_sys::core::GUID, nextecpcontext : *mut *mut ::core::ffi::c_void, nextecpcontextsize : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetRequestorProcess(callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::Foundation:: PEPROCESS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetRequestorProcessId(callbackdata : *const FLT_CALLBACK_DATA) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetRequestorProcessIdEx(callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: HANDLE); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetRequestorSessionId(callbackdata : *const FLT_CALLBACK_DATA, sessionid : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("fltmgr.sys" "system" fn FltGetRoutineAddress(fltmgrroutinename : ::windows_sys::core::PCSTR) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetSectionContext(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, context : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetStreamContext(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, context : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetStreamHandleContext(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, context : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetSwappedBufferMdlAddress(callbackdata : *const FLT_CALLBACK_DATA) -> *mut super::super::super::Foundation:: MDL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetTopInstance(volume : PFLT_VOLUME, instance : *mut PFLT_INSTANCE) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltGetTransactionContext(instance : PFLT_INSTANCE, transaction : *const super::super::super::Foundation:: KTRANSACTION, context : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetTunneledName(callbackdata : *const FLT_CALLBACK_DATA, filenameinformation : *const FLT_FILE_NAME_INFORMATION, rettunneledfilenameinformation : *mut *mut FLT_FILE_NAME_INFORMATION) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetUpperInstance(currentinstance : PFLT_INSTANCE, upperinstance : *mut PFLT_INSTANCE) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetVolumeContext(filter : PFLT_FILTER, volume : PFLT_VOLUME, context : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetVolumeFromDeviceObject(filter : PFLT_FILTER, deviceobject : *const super::super::super::Foundation:: DEVICE_OBJECT, retvolume : *mut PFLT_VOLUME) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltGetVolumeFromFileObject(filter : PFLT_FILTER, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, retvolume : *mut PFLT_VOLUME) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetVolumeFromInstance(instance : PFLT_INSTANCE, retvolume : *mut PFLT_VOLUME) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetVolumeFromName(filter : PFLT_FILTER, volumename : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING, retvolume : *mut PFLT_VOLUME) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetVolumeGuidName(volume : PFLT_VOLUME, volumeguidname : *mut super::super::super::super::Win32::Foundation:: UNICODE_STRING, buffersizeneeded : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_InstallableFileSystems"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_InstallableFileSystems\"`"] fn FltGetVolumeInformation(volume : PFLT_VOLUME, informationclass : super::super::super::super::Win32::Storage::InstallableFileSystems:: FILTER_VOLUME_INFORMATION_CLASS, buffer : *mut ::core::ffi::c_void, buffersize : u32, bytesreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetVolumeInstanceFromName(filter : PFLT_FILTER, volume : PFLT_VOLUME, instancename : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING, retinstance : *mut PFLT_INSTANCE) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetVolumeName(volume : PFLT_VOLUME, volumename : *mut super::super::super::super::Win32::Foundation:: UNICODE_STRING, buffersizeneeded : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltGetVolumeProperties(volume : PFLT_VOLUME, volumeproperties : *mut FLT_VOLUME_PROPERTIES, volumepropertieslength : u32, lengthreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("fltmgr.sys" "system" fn FltInitExtraCreateParameterLookasideList(filter : PFLT_FILTER, lookaside : *mut ::core::ffi::c_void, flags : u32, size : usize, tag : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltInitializeFileLock(filelock : *mut super:: FILE_LOCK) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltInitializeOplock(oplock : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltInitializePushLock(pushlock : *mut usize) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltInsertExtraCreateParameter(filter : PFLT_FILTER, ecplist : *mut super::super::super::Foundation:: ECP_LIST, ecpcontext : *mut ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltIs32bitProcess(callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltIsCallbackDataDirty(data : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltIsDirectory(fileobject : *const super::super::super::Foundation:: FILE_OBJECT, instance : PFLT_INSTANCE, isdirectory : *mut super::super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltIsEcpAcknowledged(filter : PFLT_FILTER, ecpcontext : *const ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltIsEcpFromUserMode(filter : PFLT_FILTER, ecpcontext : *const ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltIsFltMgrVolumeDeviceObject(deviceobject : *const super::super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltIsIoCanceled(callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltIsIoRedirectionAllowed(sourceinstance : PFLT_INSTANCE, targetinstance : PFLT_INSTANCE, redirectionallowed : *mut super::super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltIsIoRedirectionAllowedForOperation(data : *const FLT_CALLBACK_DATA, targetinstance : PFLT_INSTANCE, redirectionallowedthisio : *mut super::super::super::super::Win32::Foundation:: BOOLEAN, redirectionallowedallio : *mut super::super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltIsOperationSynchronous(callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltIsVolumeSnapshot(fltobject : *const ::core::ffi::c_void, issnapshotvolume : *mut super::super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltIsVolumeWritable(fltobject : *const ::core::ffi::c_void, iswritable : *mut super::super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltLoadFilter(filtername : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltLockUserBuffer(callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltNotifyFilterChangeDirectory(notifysync : super::super::super::Foundation:: PNOTIFY_SYNC, notifylist : *mut super::super::super::super::Win32::System::Kernel:: LIST_ENTRY, fscontext : *const ::core::ffi::c_void, fulldirectoryname : *const super::super::super::super::Win32::System::Kernel:: STRING, watchtree : super::super::super::super::Win32::Foundation:: BOOLEAN, ignorebuffer : super::super::super::super::Win32::Foundation:: BOOLEAN, completionfilter : u32, notifycallbackdata : *const FLT_CALLBACK_DATA, traversecallback : super:: PCHECK_FOR_TRAVERSE_ACCESS, subjectcontext : *const super::super::super::Foundation:: SECURITY_SUBJECT_CONTEXT, filtercallback : super:: PFILTER_REPORT_CHANGE) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltObjectDereference(fltobject : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltObjectReference(fltobject : *mut ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltOpenVolume(instance : PFLT_INSTANCE, volumehandle : *mut super::super::super::super::Win32::Foundation:: HANDLE, volumefileobject : *mut *mut super::super::super::Foundation:: FILE_OBJECT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltOplockBreakH(oplock : *const *const ::core::ffi::c_void, callbackdata : *const FLT_CALLBACK_DATA, flags : u32, context : *const ::core::ffi::c_void, waitcompletionroutine : PFLTOPLOCK_WAIT_COMPLETE_ROUTINE, prepostcallbackdataroutine : PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE) -> FLT_PREOP_CALLBACK_STATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltOplockBreakToNone(oplock : *const *const ::core::ffi::c_void, callbackdata : *const FLT_CALLBACK_DATA, context : *const ::core::ffi::c_void, waitcompletionroutine : PFLTOPLOCK_WAIT_COMPLETE_ROUTINE, prepostcallbackdataroutine : PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE) -> FLT_PREOP_CALLBACK_STATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltOplockBreakToNoneEx(oplock : *const *const ::core::ffi::c_void, callbackdata : *const FLT_CALLBACK_DATA, flags : u32, context : *const ::core::ffi::c_void, waitcompletionroutine : PFLTOPLOCK_WAIT_COMPLETE_ROUTINE, prepostcallbackdataroutine : PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE) -> FLT_PREOP_CALLBACK_STATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltOplockFsctrl(oplock : *const *const ::core::ffi::c_void, callbackdata : *const FLT_CALLBACK_DATA, opencount : u32) -> FLT_PREOP_CALLBACK_STATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltOplockFsctrlEx(oplock : *const *const ::core::ffi::c_void, callbackdata : *const FLT_CALLBACK_DATA, opencount : u32, flags : u32) -> FLT_PREOP_CALLBACK_STATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltOplockIsFastIoPossible(oplock : *const *const ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltOplockIsSharedRequest(callbackdata : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltOplockKeysEqual(fo1 : *const super::super::super::Foundation:: FILE_OBJECT, fo2 : *const super::super::super::Foundation:: FILE_OBJECT) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltParseFileName(filename : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING, extension : *mut super::super::super::super::Win32::Foundation:: UNICODE_STRING, stream : *mut super::super::super::super::Win32::Foundation:: UNICODE_STRING, finalcomponent : *mut super::super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltParseFileNameInformation(filenameinformation : *mut FLT_FILE_NAME_INFORMATION) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltPerformAsynchronousIo(callbackdata : *mut FLT_CALLBACK_DATA, callbackroutine : PFLT_COMPLETED_ASYNC_IO_CALLBACK, callbackcontext : *const ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltPerformSynchronousIo(callbackdata : *mut FLT_CALLBACK_DATA) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltPrePrepareComplete(instance : PFLT_INSTANCE, transaction : *const super::super::super::Foundation:: KTRANSACTION, transactioncontext : PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltPrepareComplete(instance : PFLT_INSTANCE, transaction : *const super::super::super::Foundation:: KTRANSACTION, transactioncontext : PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("fltmgr.sys" "system" fn FltPrepareToReuseEcp(filter : PFLT_FILTER, ecpcontext : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltProcessFileLock(filelock : *const super:: FILE_LOCK, callbackdata : *const FLT_CALLBACK_DATA, context : *const ::core::ffi::c_void) -> FLT_PREOP_CALLBACK_STATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltPropagateActivityIdToThread(callbackdata : *const FLT_CALLBACK_DATA, propagateid : *mut ::windows_sys::core::GUID, originalid : *mut *mut ::windows_sys::core::GUID) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltPropagateIrpExtension(sourcedata : *const FLT_CALLBACK_DATA, targetdata : *mut FLT_CALLBACK_DATA, flags : u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltPurgeFileNameInformationCache(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltQueryDirectoryFile(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, returnsingleentry : super::super::super::super::Win32::Foundation:: BOOLEAN, filename : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING, restartscan : super::super::super::super::Win32::Foundation:: BOOLEAN, lengthreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltQueryDirectoryFileEx(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, queryflags : u32, filename : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING, lengthreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltQueryEaFile(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, returnedeadata : *mut ::core::ffi::c_void, length : u32, returnsingleentry : super::super::super::super::Win32::Foundation:: BOOLEAN, ealist : *const ::core::ffi::c_void, ealistlength : u32, eaindex : *const u32, restartscan : super::super::super::super::Win32::Foundation:: BOOLEAN, lengthreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_System_IO", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltQueryInformationByName(filter : PFLT_FILTER, instance : PFLT_INSTANCE, objectattributes : *const super::super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, drivercontext : *const super::super::super::System::SystemServices:: IO_DRIVER_CREATE_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltQueryInformationFile(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, lengthreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltQueryQuotaInformationFile(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, iostatusblock : *mut super::super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, buffer : *mut ::core::ffi::c_void, length : u32, returnsingleentry : super::super::super::super::Win32::Foundation:: BOOLEAN, sidlist : *const ::core::ffi::c_void, sidlistlength : u32, startsid : *const u32, restartscan : super::super::super::super::Win32::Foundation:: BOOLEAN, lengthreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltQuerySecurityObject(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, securityinformation : u32, securitydescriptor : super::super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, length : u32, lengthneeded : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn FltQueryVolumeInformation(instance : PFLT_INSTANCE, iosb : *mut super::super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fsinformation : *mut ::core::ffi::c_void, length : u32, fsinformationclass : super:: FS_INFORMATION_CLASS) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltQueryVolumeInformationFile(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, fsinformation : *mut ::core::ffi::c_void, length : u32, fsinformationclass : super:: FS_INFORMATION_CLASS, lengthreturned : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltQueueDeferredIoWorkItem(fltworkitem : PFLT_DEFERRED_IO_WORKITEM, data : *const FLT_CALLBACK_DATA, workerroutine : PFLT_DEFERRED_IO_WORKITEM_ROUTINE, queuetype : super::super::super::System::SystemServices:: WORK_QUEUE_TYPE, context : *const ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_System_SystemServices", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`"] fn FltQueueGenericWorkItem(fltworkitem : PFLT_GENERIC_WORKITEM, fltobject : *const ::core::ffi::c_void, workerroutine : PFLT_GENERIC_WORKITEM_ROUTINE, queuetype : super::super::super::System::SystemServices:: WORK_QUEUE_TYPE, context : *const ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltReadFile(initiatinginstance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, byteoffset : *const i64, length : u32, buffer : *mut ::core::ffi::c_void, flags : u32, bytesread : *mut u32, callbackroutine : PFLT_COMPLETED_ASYNC_IO_CALLBACK, callbackcontext : *const ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltReadFileEx(initiatinginstance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, byteoffset : *const i64, length : u32, buffer : *mut ::core::ffi::c_void, flags : u32, bytesread : *mut u32, callbackroutine : PFLT_COMPLETED_ASYNC_IO_CALLBACK, callbackcontext : *const ::core::ffi::c_void, key : *const u32, mdl : *const super::super::super::Foundation:: MDL) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("fltmgr.sys" "system" fn FltReferenceContext(context : PFLT_CONTEXT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltReferenceFileNameInformation(filenameinformation : *const FLT_FILE_NAME_INFORMATION) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_InstallableFileSystems", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_InstallableFileSystems\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltRegisterFilter(driver : *const super::super::super::Foundation:: DRIVER_OBJECT, registration : *const FLT_REGISTRATION, retfilter : *mut PFLT_FILTER) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltRegisterForDataScan(instance : PFLT_INSTANCE) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltReissueSynchronousIo(initiatinginstance : PFLT_INSTANCE, callbackdata : *const FLT_CALLBACK_DATA) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltReleaseContext(context : PFLT_CONTEXT) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltReleaseContexts(contexts : *const FLT_RELATED_CONTEXTS) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltReleaseContextsEx(contextssize : usize, contexts : *const FLT_RELATED_CONTEXTS_EX) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltReleaseFileNameInformation(filenameinformation : *const FLT_FILE_NAME_INFORMATION) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltReleasePushLock(pushlock : *mut usize) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltReleasePushLockEx(pushlock : *mut usize, flags : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FltReleaseResource(resource : *mut super::super::super::Foundation:: ERESOURCE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltRemoveExtraCreateParameter(filter : PFLT_FILTER, ecplist : *mut super::super::super::Foundation:: ECP_LIST, ecptype : *const ::windows_sys::core::GUID, ecpcontext : *mut *mut ::core::ffi::c_void, ecpcontextsize : *mut u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltRemoveOpenReparseEntry(filter : PFLT_FILTER, data : *const FLT_CALLBACK_DATA, openreparseentry : *const super:: OPEN_REPARSE_LIST_ENTRY) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltRequestFileInfoOnCreateCompletion(filter : PFLT_FILTER, data : *const FLT_CALLBACK_DATA, infoclassflags : u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltRequestOperationStatusCallback(data : *const FLT_CALLBACK_DATA, callbackroutine : PFLT_GET_OPERATION_STATUS_CALLBACK, requestercontext : *const ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltRetainSwappedBufferMdlAddress(callbackdata : *const FLT_CALLBACK_DATA) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltRetrieveFileInfoOnCreateCompletion(filter : PFLT_FILTER, data : *const FLT_CALLBACK_DATA, infoclass : u32, size : *mut u32) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltRetrieveFileInfoOnCreateCompletionEx(filter : PFLT_FILTER, data : *const FLT_CALLBACK_DATA, infoclass : u32, retinfosize : *mut u32, retinfobuffer : *mut *mut ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltRetrieveIoPriorityInfo(data : *const FLT_CALLBACK_DATA, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, thread : super::super::super::Foundation:: PETHREAD, priorityinfo : *mut super:: IO_PRIORITY_INFO) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltReuseCallbackData(callbackdata : *mut FLT_CALLBACK_DATA) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltRollbackComplete(instance : PFLT_INSTANCE, transaction : *const super::super::super::Foundation:: KTRANSACTION, transactioncontext : PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltRollbackEnlistment(instance : PFLT_INSTANCE, transaction : *const super::super::super::Foundation:: KTRANSACTION, transactioncontext : PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltSendMessage(filter : PFLT_FILTER, clientport : *const PFLT_PORT, senderbuffer : *const ::core::ffi::c_void, senderbufferlength : u32, replybuffer : *mut ::core::ffi::c_void, replylength : *mut u32, timeout : *const i64) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetActivityIdCallbackData(callbackdata : *mut FLT_CALLBACK_DATA, guid : *const ::windows_sys::core::GUID) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetCallbackDataDirty(data : *mut FLT_CALLBACK_DATA) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetCancelCompletion(callbackdata : *const FLT_CALLBACK_DATA, canceledcallback : PFLT_COMPLETE_CANCELED_CALLBACK) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetEaFile(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, eabuffer : *const ::core::ffi::c_void, length : u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetEcpListIntoCallbackData(filter : PFLT_FILTER, callbackdata : *const FLT_CALLBACK_DATA, ecplist : *const super::super::super::Foundation:: ECP_LIST) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetFileContext(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, operation : FLT_SET_CONTEXT_OPERATION, newcontext : PFLT_CONTEXT, oldcontext : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetFsZeroingOffset(data : *const FLT_CALLBACK_DATA, zeroingoffset : u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetFsZeroingOffsetRequired(data : *const FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetInformationFile(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, fileinformation : *const ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltSetInstanceContext(instance : PFLT_INSTANCE, operation : FLT_SET_CONTEXT_OPERATION, newcontext : PFLT_CONTEXT, oldcontext : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetIoPriorityHintIntoCallbackData(data : *const FLT_CALLBACK_DATA, priorityhint : super::super::super::Foundation:: IO_PRIORITY_HINT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetIoPriorityHintIntoFileObject(fileobject : *const super::super::super::Foundation:: FILE_OBJECT, priorityhint : super::super::super::Foundation:: IO_PRIORITY_HINT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltSetIoPriorityHintIntoThread(thread : super::super::super::Foundation:: PETHREAD, priorityhint : super::super::super::Foundation:: IO_PRIORITY_HINT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetQuotaInformationFile(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, buffer : *const ::core::ffi::c_void, length : u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetSecurityObject(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, securityinformation : u32, securitydescriptor : super::super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetStreamContext(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, operation : FLT_SET_CONTEXT_OPERATION, newcontext : PFLT_CONTEXT, oldcontext : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSetStreamHandleContext(instance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, operation : FLT_SET_CONTEXT_OPERATION, newcontext : PFLT_CONTEXT, oldcontext : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FltSetTransactionContext(instance : PFLT_INSTANCE, transaction : *const super::super::super::Foundation:: KTRANSACTION, operation : FLT_SET_CONTEXT_OPERATION, newcontext : PFLT_CONTEXT, oldcontext : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltSetVolumeContext(volume : PFLT_VOLUME, operation : FLT_SET_CONTEXT_OPERATION, newcontext : PFLT_CONTEXT, oldcontext : *mut PFLT_CONTEXT) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn FltSetVolumeInformation(instance : PFLT_INSTANCE, iosb : *mut super::super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fsinformation : *mut ::core::ffi::c_void, length : u32, fsinformationclass : super:: FS_INFORMATION_CLASS) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltStartFiltering(filter : PFLT_FILTER) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSupportsFileContexts(fileobject : *const super::super::super::Foundation:: FILE_OBJECT) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSupportsFileContextsEx(fileobject : *const super::super::super::Foundation:: FILE_OBJECT, instance : PFLT_INSTANCE) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSupportsStreamContexts(fileobject : *const super::super::super::Foundation:: FILE_OBJECT) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltSupportsStreamHandleContexts(fileobject : *const super::super::super::Foundation:: FILE_OBJECT) -> super::super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltTagFile(initiatinginstance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, filetag : u32, guid : *const ::windows_sys::core::GUID, databuffer : *const ::core::ffi::c_void, databufferlength : u16) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltTagFileEx(initiatinginstance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, filetag : u32, guid : *const ::windows_sys::core::GUID, databuffer : *const ::core::ffi::c_void, databufferlength : u16, existingfiletag : u32, existingguid : *const ::windows_sys::core::GUID, flags : u32) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltUninitializeFileLock(filelock : *const super:: FILE_LOCK) -> ()); +::windows_targets::link!("fltmgr.sys" "system" fn FltUninitializeOplock(oplock : *const *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FltUnloadFilter(filtername : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("fltmgr.sys" "system" fn FltUnregisterFilter(filter : PFLT_FILTER) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltUntagFile(initiatinginstance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, filetag : u32, guid : *const ::windows_sys::core::GUID) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltVetoBypassIo(callbackdata : *const FLT_CALLBACK_DATA, fltobjects : *const FLT_RELATED_OBJECTS, operationstatus : super::super::super::super::Win32::Foundation:: NTSTATUS, failurereason : *const super::super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltWriteFile(initiatinginstance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, byteoffset : *const i64, length : u32, buffer : *const ::core::ffi::c_void, flags : u32, byteswritten : *mut u32, callbackroutine : PFLT_COMPLETED_ASYNC_IO_CALLBACK, callbackcontext : *const ::core::ffi::c_void) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltWriteFileEx(initiatinginstance : PFLT_INSTANCE, fileobject : *const super::super::super::Foundation:: FILE_OBJECT, byteoffset : *const i64, length : u32, buffer : *const ::core::ffi::c_void, flags : u32, byteswritten : *mut u32, callbackroutine : PFLT_COMPLETED_ASYNC_IO_CALLBACK, callbackcontext : *const ::core::ffi::c_void, key : *const u32, mdl : *const super::super::super::Foundation:: MDL) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fltmgr.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FltpTraceRedirectedFileIo(originatingfileobject : *const super::super::super::Foundation:: FILE_OBJECT, childcallbackdata : *mut FLT_CALLBACK_DATA) -> super::super::super::super::Win32::Foundation:: NTSTATUS); +pub const FLTFL_CALLBACK_DATA_DIRTY: u32 = 2147483648u32; +pub const FLTFL_CALLBACK_DATA_DRAINING_IO: u32 = 262144u32; +pub const FLTFL_CALLBACK_DATA_FAST_IO_OPERATION: u32 = 2u32; +pub const FLTFL_CALLBACK_DATA_FS_FILTER_OPERATION: u32 = 4u32; +pub const FLTFL_CALLBACK_DATA_GENERATED_IO: u32 = 65536u32; +pub const FLTFL_CALLBACK_DATA_IRP_OPERATION: u32 = 1u32; +pub const FLTFL_CALLBACK_DATA_NEW_SYSTEM_BUFFER: u32 = 1048576u32; +pub const FLTFL_CALLBACK_DATA_POST_OPERATION: u32 = 524288u32; +pub const FLTFL_CALLBACK_DATA_REISSUED_IO: u32 = 131072u32; +pub const FLTFL_CALLBACK_DATA_REISSUE_MASK: u32 = 65535u32; +pub const FLTFL_CALLBACK_DATA_SYSTEM_BUFFER: u32 = 8u32; +pub const FLTFL_CONTEXT_REGISTRATION_NO_EXACT_SIZE_MATCH: u32 = 1u32; +pub const FLTFL_FILE_NAME_PARSED_EXTENSION: u32 = 2u32; +pub const FLTFL_FILE_NAME_PARSED_FINAL_COMPONENT: u32 = 1u32; +pub const FLTFL_FILE_NAME_PARSED_PARENT_DIR: u32 = 8u32; +pub const FLTFL_FILE_NAME_PARSED_STREAM: u32 = 4u32; +pub const FLTFL_FILTER_UNLOAD_MANDATORY: u32 = 1u32; +pub const FLTFL_INSTANCE_SETUP_AUTOMATIC_ATTACHMENT: u32 = 1u32; +pub const FLTFL_INSTANCE_SETUP_DETACHED_VOLUME: u32 = 8u32; +pub const FLTFL_INSTANCE_SETUP_MANUAL_ATTACHMENT: u32 = 2u32; +pub const FLTFL_INSTANCE_SETUP_NEWLY_MOUNTED_VOLUME: u32 = 4u32; +pub const FLTFL_INSTANCE_TEARDOWN_FILTER_UNLOAD: u32 = 2u32; +pub const FLTFL_INSTANCE_TEARDOWN_INTERNAL_ERROR: u32 = 16u32; +pub const FLTFL_INSTANCE_TEARDOWN_MANDATORY_FILTER_UNLOAD: u32 = 4u32; +pub const FLTFL_INSTANCE_TEARDOWN_MANUAL: u32 = 1u32; +pub const FLTFL_INSTANCE_TEARDOWN_VOLUME_DISMOUNT: u32 = 8u32; +pub const FLTFL_IO_OPERATION_DO_NOT_UPDATE_BYTE_OFFSET: u32 = 4u32; +pub const FLTFL_IO_OPERATION_NON_CACHED: u32 = 1u32; +pub const FLTFL_IO_OPERATION_PAGING: u32 = 2u32; +pub const FLTFL_IO_OPERATION_SYNCHRONOUS_PAGING: u32 = 8u32; +pub const FLTFL_NORMALIZE_NAME_CASE_SENSITIVE: u32 = 1u32; +pub const FLTFL_NORMALIZE_NAME_DESTINATION_FILE_NAME: u32 = 2u32; +pub const FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO: u32 = 2u32; +pub const FLTFL_OPERATION_REGISTRATION_SKIP_NON_CACHED_NON_PAGING_IO: u32 = 8u32; +pub const FLTFL_OPERATION_REGISTRATION_SKIP_NON_DASD_IO: u32 = 4u32; +pub const FLTFL_OPERATION_REGISTRATION_SKIP_PAGING_IO: u32 = 1u32; +pub const FLTFL_POST_OPERATION_DRAINING: u32 = 1u32; +pub const FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP: u32 = 1u32; +pub const FLTFL_REGISTRATION_SUPPORT_DAX_VOLUME: u32 = 4u32; +pub const FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS: u32 = 2u32; +pub const FLTFL_REGISTRATION_SUPPORT_WCOS: u32 = 8u32; +pub const FLTTCFL_AUTO_REPARSE: u32 = 1u32; +pub const FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY: u32 = 1u32; +pub const FLT_CONTEXT_END: u32 = 65535u32; +pub const FLT_FILE_CONTEXT: u32 = 4u32; +pub const FLT_FILE_NAME_ALLOW_QUERY_ON_REPARSE: u32 = 67108864u32; +pub const FLT_FILE_NAME_DO_NOT_CACHE: u32 = 33554432u32; +pub const FLT_FILE_NAME_NORMALIZED: u32 = 1u32; +pub const FLT_FILE_NAME_OPENED: u32 = 2u32; +pub const FLT_FILE_NAME_QUERY_ALWAYS_ALLOW_CACHE_LOOKUP: u32 = 1024u32; +pub const FLT_FILE_NAME_QUERY_CACHE_ONLY: u32 = 512u32; +pub const FLT_FILE_NAME_QUERY_DEFAULT: u32 = 256u32; +pub const FLT_FILE_NAME_QUERY_FILESYSTEM_ONLY: u32 = 768u32; +pub const FLT_FILE_NAME_REQUEST_FROM_CURRENT_PROVIDER: u32 = 16777216u32; +pub const FLT_FILE_NAME_SHORT: u32 = 3u32; +pub const FLT_FLUSH_TYPE_DATA_SYNC_ONLY: u32 = 8u32; +pub const FLT_FLUSH_TYPE_FILE_DATA_ONLY: u32 = 2u32; +pub const FLT_FLUSH_TYPE_FLUSH_AND_PURGE: u32 = 1u32; +pub const FLT_FLUSH_TYPE_NO_SYNC: u32 = 4u32; +pub const FLT_INSTANCE_CONTEXT: u32 = 2u32; +pub const FLT_INTERNAL_OPERATION_COUNT: u32 = 22u32; +pub const FLT_MAX_DEVICE_REPARSE_ATTEMPTS: u32 = 64u32; +pub const FLT_PORT_CONNECT: u32 = 1u32; +pub const FLT_POSTOP_DISALLOW_FSFILTER_IO: FLT_POSTOP_CALLBACK_STATUS = 2i32; +pub const FLT_POSTOP_FINISHED_PROCESSING: FLT_POSTOP_CALLBACK_STATUS = 0i32; +pub const FLT_POSTOP_MORE_PROCESSING_REQUIRED: FLT_POSTOP_CALLBACK_STATUS = 1i32; +pub const FLT_PREOP_COMPLETE: FLT_PREOP_CALLBACK_STATUS = 4i32; +pub const FLT_PREOP_DISALLOW_FASTIO: FLT_PREOP_CALLBACK_STATUS = 3i32; +pub const FLT_PREOP_DISALLOW_FSFILTER_IO: FLT_PREOP_CALLBACK_STATUS = 6i32; +pub const FLT_PREOP_PENDING: FLT_PREOP_CALLBACK_STATUS = 2i32; +pub const FLT_PREOP_SUCCESS_NO_CALLBACK: FLT_PREOP_CALLBACK_STATUS = 1i32; +pub const FLT_PREOP_SUCCESS_WITH_CALLBACK: FLT_PREOP_CALLBACK_STATUS = 0i32; +pub const FLT_PREOP_SYNCHRONIZE: FLT_PREOP_CALLBACK_STATUS = 5i32; +pub const FLT_PUSH_LOCK_DISABLE_AUTO_BOOST: u32 = 2u32; +pub const FLT_PUSH_LOCK_ENABLE_AUTO_BOOST: u32 = 1u32; +pub const FLT_PUSH_LOCK_VALID_FLAGS: u32 = 3u32; +pub const FLT_REGISTRATION_VERSION: u32 = 515u32; +pub const FLT_REGISTRATION_VERSION_0200: u32 = 512u32; +pub const FLT_REGISTRATION_VERSION_0201: u32 = 513u32; +pub const FLT_REGISTRATION_VERSION_0202: u32 = 514u32; +pub const FLT_REGISTRATION_VERSION_0203: u32 = 515u32; +pub const FLT_SECTION_CONTEXT: u32 = 64u32; +pub const FLT_SET_CONTEXT_KEEP_IF_EXISTS: FLT_SET_CONTEXT_OPERATION = 1i32; +pub const FLT_SET_CONTEXT_REPLACE_IF_EXISTS: FLT_SET_CONTEXT_OPERATION = 0i32; +pub const FLT_STREAMHANDLE_CONTEXT: u32 = 16u32; +pub const FLT_STREAM_CONTEXT: u32 = 8u32; +pub const FLT_TRANSACTION_CONTEXT: u32 = 32u32; +pub const FLT_VALID_FILE_NAME_FLAGS: u32 = 4278190080u32; +pub const FLT_VALID_FILE_NAME_FORMATS: u32 = 255u32; +pub const FLT_VALID_FILE_NAME_QUERY_METHODS: u32 = 65280u32; +pub const FLT_VOLUME_CONTEXT: u32 = 1u32; +pub const GUID_ECP_FLT_CREATEFILE_TARGET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xce08041d_f411_447f_b70d_ccee45c23fac); +pub const VOL_PROP_FL_DAX_VOLUME: u32 = 1u32; +pub type FLT_CALLBACK_DATA_QUEUE_FLAGS = i32; +pub type FLT_POSTOP_CALLBACK_STATUS = i32; +pub type FLT_PREOP_CALLBACK_STATUS = i32; +pub type FLT_SET_CONTEXT_OPERATION = i32; +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_CALLBACK_DATA { + pub Flags: u32, + pub Thread: super::super::super::Foundation::PETHREAD, + pub Iopb: *const FLT_IO_PARAMETER_BLOCK, + pub IoStatus: super::super::super::super::Win32::System::IO::IO_STATUS_BLOCK, + pub TagData: *mut FLT_TAG_DATA_BUFFER, + pub Anonymous: FLT_CALLBACK_DATA_0, + pub RequestorMode: i8, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_CALLBACK_DATA {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_CALLBACK_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union FLT_CALLBACK_DATA_0 { + pub Anonymous: FLT_CALLBACK_DATA_0_0, + pub FilterContext: [*mut ::core::ffi::c_void; 4], +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_CALLBACK_DATA_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_CALLBACK_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_CALLBACK_DATA_0_0 { + pub QueueLinks: super::super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub QueueContext: [*mut ::core::ffi::c_void; 2], +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_CALLBACK_DATA_0_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_CALLBACK_DATA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_CALLBACK_DATA_QUEUE { + pub Csq: super::super::super::System::SystemServices::IO_CSQ, + pub Flags: FLT_CALLBACK_DATA_QUEUE_FLAGS, + pub Instance: PFLT_INSTANCE, + pub InsertIo: PFLT_CALLBACK_DATA_QUEUE_INSERT_IO, + pub RemoveIo: PFLT_CALLBACK_DATA_QUEUE_REMOVE_IO, + pub PeekNextIo: PFLT_CALLBACK_DATA_QUEUE_PEEK_NEXT_IO, + pub Acquire: PFLT_CALLBACK_DATA_QUEUE_ACQUIRE, + pub Release: PFLT_CALLBACK_DATA_QUEUE_RELEASE, + pub CompleteCanceledIo: PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_CALLBACK_DATA_QUEUE {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_CALLBACK_DATA_QUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct FLT_CONTEXT_REGISTRATION { + pub ContextType: u16, + pub Flags: u16, + pub ContextCleanupCallback: PFLT_CONTEXT_CLEANUP_CALLBACK, + pub Size: usize, + pub PoolTag: u32, + pub ContextAllocateCallback: PFLT_CONTEXT_ALLOCATE_CALLBACK, + pub ContextFreeCallback: PFLT_CONTEXT_FREE_CALLBACK, + pub Reserved1: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for FLT_CONTEXT_REGISTRATION {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for FLT_CONTEXT_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FLT_CREATEFILE_TARGET_ECP_CONTEXT { + pub Instance: PFLT_INSTANCE, + pub Volume: PFLT_VOLUME, + pub FileNameInformation: *mut FLT_FILE_NAME_INFORMATION, + pub Flags: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FLT_CREATEFILE_TARGET_ECP_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FLT_CREATEFILE_TARGET_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FLT_FILE_NAME_INFORMATION { + pub Size: u16, + pub NamesParsed: u16, + pub Format: u32, + pub Name: super::super::super::super::Win32::Foundation::UNICODE_STRING, + pub Volume: super::super::super::super::Win32::Foundation::UNICODE_STRING, + pub Share: super::super::super::super::Win32::Foundation::UNICODE_STRING, + pub Extension: super::super::super::super::Win32::Foundation::UNICODE_STRING, + pub Stream: super::super::super::super::Win32::Foundation::UNICODE_STRING, + pub FinalComponent: super::super::super::super::Win32::Foundation::UNICODE_STRING, + pub ParentDir: super::super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FLT_FILE_NAME_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FLT_FILE_NAME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_IO_PARAMETER_BLOCK { + pub IrpFlags: u32, + pub MajorFunction: u8, + pub MinorFunction: u8, + pub OperationFlags: u8, + pub Reserved: u8, + pub TargetFileObject: *mut super::super::super::Foundation::FILE_OBJECT, + pub TargetInstance: PFLT_INSTANCE, + pub Parameters: FLT_PARAMETERS, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_IO_PARAMETER_BLOCK {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_IO_PARAMETER_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FLT_NAME_CONTROL { + pub Name: super::super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FLT_NAME_CONTROL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FLT_NAME_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_OPERATION_REGISTRATION { + pub MajorFunction: u8, + pub Flags: u32, + pub PreOperation: PFLT_PRE_OPERATION_CALLBACK, + pub PostOperation: PFLT_POST_OPERATION_CALLBACK, + pub Reserved1: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_OPERATION_REGISTRATION {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_OPERATION_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union FLT_PARAMETERS { + pub Create: FLT_PARAMETERS_4, + pub CreatePipe: FLT_PARAMETERS_3, + pub CreateMailslot: FLT_PARAMETERS_2, + pub Read: FLT_PARAMETERS_24, + pub Write: FLT_PARAMETERS_32, + pub QueryFileInformation: FLT_PARAMETERS_19, + pub SetFileInformation: FLT_PARAMETERS_27, + pub QueryEa: FLT_PARAMETERS_18, + pub SetEa: FLT_PARAMETERS_26, + pub QueryVolumeInformation: FLT_PARAMETERS_23, + pub SetVolumeInformation: FLT_PARAMETERS_30, + pub DirectoryControl: FLT_PARAMETERS_6, + pub FileSystemControl: FLT_PARAMETERS_8, + pub DeviceIoControl: FLT_PARAMETERS_5, + pub LockControl: FLT_PARAMETERS_9, + pub QuerySecurity: FLT_PARAMETERS_22, + pub SetSecurity: FLT_PARAMETERS_29, + pub WMI: FLT_PARAMETERS_31, + pub QueryQuota: FLT_PARAMETERS_21, + pub SetQuota: FLT_PARAMETERS_28, + pub Pnp: FLT_PARAMETERS_16, + pub AcquireForSectionSynchronization: FLT_PARAMETERS_1, + pub AcquireForModifiedPageWriter: FLT_PARAMETERS_0, + pub ReleaseForModifiedPageWriter: FLT_PARAMETERS_25, + pub QueryOpen: FLT_PARAMETERS_20, + pub FastIoCheckIfPossible: FLT_PARAMETERS_7, + pub NetworkQueryOpen: FLT_PARAMETERS_14, + pub MdlRead: FLT_PARAMETERS_11, + pub MdlReadComplete: FLT_PARAMETERS_10, + pub PrepareMdlWrite: FLT_PARAMETERS_17, + pub MdlWriteComplete: FLT_PARAMETERS_12, + pub MountVolume: FLT_PARAMETERS_13, + pub Others: FLT_PARAMETERS_15, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_0 { + pub EndingOffset: *mut i64, + pub ResourceToRelease: *mut *mut super::super::super::Foundation::ERESOURCE, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_1 { + pub SyncType: super::FS_FILTER_SECTION_SYNC_TYPE, + pub PageProtection: u32, + pub OutputInformation: *mut super::FS_FILTER_SECTION_SYNC_OUTPUT, + pub Flags: u32, + pub AllocationAttributes: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_1 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_2 { + pub SecurityContext: *mut super::super::super::Foundation::IO_SECURITY_CONTEXT, + pub Options: u32, + pub Reserved: u16, + pub ShareAccess: u16, + pub Parameters: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_2 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_3 { + pub SecurityContext: *mut super::super::super::Foundation::IO_SECURITY_CONTEXT, + pub Options: u32, + pub Reserved: u16, + pub ShareAccess: u16, + pub Parameters: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_3 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_4 { + pub SecurityContext: *mut super::super::super::Foundation::IO_SECURITY_CONTEXT, + pub Options: u32, + pub FileAttributes: u16, + pub ShareAccess: u16, + pub EaLength: u32, + pub EaBuffer: *mut ::core::ffi::c_void, + pub AllocationSize: i64, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_4 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union FLT_PARAMETERS_5 { + pub Common: FLT_PARAMETERS_5_1, + pub Neither: FLT_PARAMETERS_5_4, + pub Buffered: FLT_PARAMETERS_5_0, + pub Direct: FLT_PARAMETERS_5_2, + pub FastIo: FLT_PARAMETERS_5_3, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_5 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_5_0 { + pub OutputBufferLength: u32, + pub InputBufferLength: u32, + pub IoControlCode: u32, + pub SystemBuffer: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_5_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_5_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_5_1 { + pub OutputBufferLength: u32, + pub InputBufferLength: u32, + pub IoControlCode: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_5_1 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_5_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_5_2 { + pub OutputBufferLength: u32, + pub InputBufferLength: u32, + pub IoControlCode: u32, + pub InputSystemBuffer: *mut ::core::ffi::c_void, + pub OutputBuffer: *mut ::core::ffi::c_void, + pub OutputMdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_5_2 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_5_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_5_3 { + pub OutputBufferLength: u32, + pub InputBufferLength: u32, + pub IoControlCode: u32, + pub InputBuffer: *mut ::core::ffi::c_void, + pub OutputBuffer: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_5_3 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_5_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_5_4 { + pub OutputBufferLength: u32, + pub InputBufferLength: u32, + pub IoControlCode: u32, + pub InputBuffer: *mut ::core::ffi::c_void, + pub OutputBuffer: *mut ::core::ffi::c_void, + pub OutputMdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_5_4 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_5_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union FLT_PARAMETERS_6 { + pub QueryDirectory: FLT_PARAMETERS_6_2, + pub NotifyDirectory: FLT_PARAMETERS_6_1, + pub NotifyDirectoryEx: FLT_PARAMETERS_6_0, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_6 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_6_0 { + pub Length: u32, + pub CompletionFilter: u32, + pub DirectoryNotifyInformationClass: super::super::super::System::SystemServices::DIRECTORY_NOTIFY_INFORMATION_CLASS, + pub Spare2: u32, + pub DirectoryBuffer: *mut ::core::ffi::c_void, + pub MdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_6_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_6_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_6_1 { + pub Length: u32, + pub CompletionFilter: u32, + pub Spare1: u32, + pub Spare2: u32, + pub DirectoryBuffer: *mut ::core::ffi::c_void, + pub MdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_6_1 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_6_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_6_2 { + pub Length: u32, + pub FileName: *mut super::super::super::super::Win32::Foundation::UNICODE_STRING, + pub FileInformationClass: super::super::super::super::Win32::System::WindowsProgramming::FILE_INFORMATION_CLASS, + pub FileIndex: u32, + pub DirectoryBuffer: *mut ::core::ffi::c_void, + pub MdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_6_2 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_6_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_7 { + pub FileOffset: i64, + pub Length: u32, + pub LockKey: u32, + pub CheckForReadOperation: super::super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_7 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union FLT_PARAMETERS_8 { + pub VerifyVolume: FLT_PARAMETERS_8_4, + pub Common: FLT_PARAMETERS_8_1, + pub Neither: FLT_PARAMETERS_8_3, + pub Buffered: FLT_PARAMETERS_8_0, + pub Direct: FLT_PARAMETERS_8_2, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_8 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_8_0 { + pub OutputBufferLength: u32, + pub InputBufferLength: u32, + pub FsControlCode: u32, + pub SystemBuffer: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_8_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_8_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_8_1 { + pub OutputBufferLength: u32, + pub InputBufferLength: u32, + pub FsControlCode: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_8_1 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_8_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_8_2 { + pub OutputBufferLength: u32, + pub InputBufferLength: u32, + pub FsControlCode: u32, + pub InputSystemBuffer: *mut ::core::ffi::c_void, + pub OutputBuffer: *mut ::core::ffi::c_void, + pub OutputMdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_8_2 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_8_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_8_3 { + pub OutputBufferLength: u32, + pub InputBufferLength: u32, + pub FsControlCode: u32, + pub InputBuffer: *mut ::core::ffi::c_void, + pub OutputBuffer: *mut ::core::ffi::c_void, + pub OutputMdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_8_3 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_8_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_8_4 { + pub Vpb: *mut super::super::super::Foundation::VPB, + pub DeviceObject: *mut super::super::super::Foundation::DEVICE_OBJECT, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_8_4 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_8_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_9 { + pub Length: *mut i64, + pub Key: u32, + pub ByteOffset: i64, + pub ProcessId: super::super::super::Foundation::PEPROCESS, + pub FailImmediately: super::super::super::super::Win32::Foundation::BOOLEAN, + pub ExclusiveLock: super::super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_9 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_10 { + pub MdlChain: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_10 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_11 { + pub FileOffset: i64, + pub Length: u32, + pub Key: u32, + pub MdlChain: *mut *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_11 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_12 { + pub FileOffset: i64, + pub MdlChain: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_12 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_12 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_13 { + pub DeviceType: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_13 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_13 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_14 { + pub Irp: *mut super::super::super::Foundation::IRP, + pub NetworkInformation: *mut super::FILE_NETWORK_OPEN_INFORMATION, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_14 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_14 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_15 { + pub Argument1: *mut ::core::ffi::c_void, + pub Argument2: *mut ::core::ffi::c_void, + pub Argument3: *mut ::core::ffi::c_void, + pub Argument4: *mut ::core::ffi::c_void, + pub Argument5: *mut ::core::ffi::c_void, + pub Argument6: i64, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_15 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_15 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union FLT_PARAMETERS_16 { + pub StartDevice: FLT_PARAMETERS_16_8, + pub QueryDeviceRelations: FLT_PARAMETERS_16_2, + pub QueryInterface: FLT_PARAMETERS_16_5, + pub DeviceCapabilities: FLT_PARAMETERS_16_0, + pub FilterResourceRequirements: FLT_PARAMETERS_16_1, + pub ReadWriteConfig: FLT_PARAMETERS_16_6, + pub SetLock: FLT_PARAMETERS_16_7, + pub QueryId: FLT_PARAMETERS_16_4, + pub QueryDeviceText: FLT_PARAMETERS_16_3, + pub UsageNotification: FLT_PARAMETERS_16_9, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_16 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_16_0 { + pub Capabilities: *mut super::super::super::System::SystemServices::DEVICE_CAPABILITIES, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_16_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_16_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_16_1 { + pub IoResourceRequirementList: *mut super::super::super::System::SystemServices::IO_RESOURCE_REQUIREMENTS_LIST, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_16_1 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_16_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_16_2 { + pub Type: super::super::super::System::SystemServices::DEVICE_RELATION_TYPE, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_16_2 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_16_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_16_3 { + pub DeviceTextType: super::super::super::System::SystemServices::DEVICE_TEXT_TYPE, + pub LocaleId: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_16_3 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_16_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_16_4 { + pub IdType: super::super::super::System::SystemServices::BUS_QUERY_ID_TYPE, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_16_4 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_16_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_16_5 { + pub InterfaceType: *const ::windows_sys::core::GUID, + pub Size: u16, + pub Version: u16, + pub Interface: *mut super::super::super::System::SystemServices::INTERFACE, + pub InterfaceSpecificData: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_16_5 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_16_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_16_6 { + pub WhichSpace: u32, + pub Buffer: *mut ::core::ffi::c_void, + pub Offset: u32, + pub Length: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_16_6 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_16_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_16_7 { + pub Lock: super::super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_16_7 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_16_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_16_8 { + pub AllocatedResources: *mut super::super::super::System::SystemServices::CM_RESOURCE_LIST, + pub AllocatedResourcesTranslated: *mut super::super::super::System::SystemServices::CM_RESOURCE_LIST, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_16_8 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_16_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_16_9 { + pub InPath: super::super::super::super::Win32::Foundation::BOOLEAN, + pub Reserved: [super::super::super::super::Win32::Foundation::BOOLEAN; 3], + pub Type: super::super::super::System::SystemServices::DEVICE_USAGE_NOTIFICATION_TYPE, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_16_9 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_16_9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_17 { + pub FileOffset: i64, + pub Length: u32, + pub Key: u32, + pub MdlChain: *mut *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_17 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_17 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_18 { + pub Length: u32, + pub EaList: *mut ::core::ffi::c_void, + pub EaListLength: u32, + pub EaIndex: u32, + pub EaBuffer: *mut ::core::ffi::c_void, + pub MdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_18 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_18 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_19 { + pub Length: u32, + pub FileInformationClass: super::super::super::super::Win32::System::WindowsProgramming::FILE_INFORMATION_CLASS, + pub InfoBuffer: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_19 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_19 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_20 { + pub Irp: *mut super::super::super::Foundation::IRP, + pub FileInformation: *mut ::core::ffi::c_void, + pub Length: *mut u32, + pub FileInformationClass: super::super::super::super::Win32::System::WindowsProgramming::FILE_INFORMATION_CLASS, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_20 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_20 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_21 { + pub Length: u32, + pub StartSid: super::super::super::super::Win32::Foundation::PSID, + pub SidList: *mut super::FILE_GET_QUOTA_INFORMATION, + pub SidListLength: u32, + pub QuotaBuffer: *mut ::core::ffi::c_void, + pub MdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_21 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_21 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_22 { + pub SecurityInformation: u32, + pub Length: u32, + pub SecurityBuffer: *mut ::core::ffi::c_void, + pub MdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_22 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_22 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_23 { + pub Length: u32, + pub FsInformationClass: super::FS_INFORMATION_CLASS, + pub VolumeBuffer: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_23 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_23 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_24 { + pub Length: u32, + pub Key: u32, + pub ByteOffset: i64, + pub ReadBuffer: *mut ::core::ffi::c_void, + pub MdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_24 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_24 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_25 { + pub ResourceToRelease: *mut super::super::super::Foundation::ERESOURCE, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_25 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_25 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_26 { + pub Length: u32, + pub EaBuffer: *mut ::core::ffi::c_void, + pub MdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_26 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_26 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_27 { + pub Length: u32, + pub FileInformationClass: super::super::super::super::Win32::System::WindowsProgramming::FILE_INFORMATION_CLASS, + pub ParentOfTarget: *mut super::super::super::Foundation::FILE_OBJECT, + pub Anonymous: FLT_PARAMETERS_27_0, + pub InfoBuffer: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_27 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_27 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union FLT_PARAMETERS_27_0 { + pub Anonymous: FLT_PARAMETERS_27_0_0, + pub ClusterCount: u32, + pub DeleteHandle: super::super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_27_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_27_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_27_0_0 { + pub ReplaceIfExists: super::super::super::super::Win32::Foundation::BOOLEAN, + pub AdvanceOnly: super::super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_27_0_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_27_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_28 { + pub Length: u32, + pub QuotaBuffer: *mut ::core::ffi::c_void, + pub MdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_28 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_28 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_29 { + pub SecurityInformation: u32, + pub SecurityDescriptor: super::super::super::super::Win32::Security::PSECURITY_DESCRIPTOR, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_29 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_29 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_30 { + pub Length: u32, + pub FsInformationClass: super::FS_INFORMATION_CLASS, + pub VolumeBuffer: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_30 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_30 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_31 { + pub ProviderId: usize, + pub DataPath: *mut ::core::ffi::c_void, + pub BufferSize: u32, + pub Buffer: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_31 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_31 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_PARAMETERS_32 { + pub Length: u32, + pub Key: u32, + pub ByteOffset: i64, + pub WriteBuffer: *mut ::core::ffi::c_void, + pub MdlAddress: *mut super::super::super::Foundation::MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_PARAMETERS_32 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_PARAMETERS_32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_InstallableFileSystems\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_InstallableFileSystems", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_REGISTRATION { + pub Size: u16, + pub Version: u16, + pub Flags: u32, + pub ContextRegistration: *const FLT_CONTEXT_REGISTRATION, + pub OperationRegistration: *const FLT_OPERATION_REGISTRATION, + pub FilterUnloadCallback: PFLT_FILTER_UNLOAD_CALLBACK, + pub InstanceSetupCallback: PFLT_INSTANCE_SETUP_CALLBACK, + pub InstanceQueryTeardownCallback: PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK, + pub InstanceTeardownStartCallback: PFLT_INSTANCE_TEARDOWN_CALLBACK, + pub InstanceTeardownCompleteCallback: PFLT_INSTANCE_TEARDOWN_CALLBACK, + pub GenerateFileNameCallback: PFLT_GENERATE_FILE_NAME, + pub NormalizeNameComponentCallback: PFLT_NORMALIZE_NAME_COMPONENT, + pub NormalizeContextCleanupCallback: PFLT_NORMALIZE_CONTEXT_CLEANUP, + pub TransactionNotificationCallback: PFLT_TRANSACTION_NOTIFICATION_CALLBACK, + pub NormalizeNameComponentExCallback: PFLT_NORMALIZE_NAME_COMPONENT_EX, + pub SectionNotificationCallback: PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_InstallableFileSystems", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_REGISTRATION {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_InstallableFileSystems", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLT_RELATED_CONTEXTS { + pub VolumeContext: PFLT_CONTEXT, + pub InstanceContext: PFLT_CONTEXT, + pub FileContext: PFLT_CONTEXT, + pub StreamContext: PFLT_CONTEXT, + pub StreamHandleContext: PFLT_CONTEXT, + pub TransactionContext: PFLT_CONTEXT, +} +impl ::core::marker::Copy for FLT_RELATED_CONTEXTS {} +impl ::core::clone::Clone for FLT_RELATED_CONTEXTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLT_RELATED_CONTEXTS_EX { + pub VolumeContext: PFLT_CONTEXT, + pub InstanceContext: PFLT_CONTEXT, + pub FileContext: PFLT_CONTEXT, + pub StreamContext: PFLT_CONTEXT, + pub StreamHandleContext: PFLT_CONTEXT, + pub TransactionContext: PFLT_CONTEXT, + pub SectionContext: PFLT_CONTEXT, +} +impl ::core::marker::Copy for FLT_RELATED_CONTEXTS_EX {} +impl ::core::clone::Clone for FLT_RELATED_CONTEXTS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FLT_RELATED_OBJECTS { + pub Size: u16, + pub TransactionContext: u16, + pub Filter: PFLT_FILTER, + pub Volume: PFLT_VOLUME, + pub Instance: PFLT_INSTANCE, + pub FileObject: *const super::super::super::Foundation::FILE_OBJECT, + pub Transaction: *const super::super::super::Foundation::KTRANSACTION, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FLT_RELATED_OBJECTS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FLT_RELATED_OBJECTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLT_TAG_DATA_BUFFER { + pub FileTag: u32, + pub TagDataLength: u16, + pub UnparsedNameLength: u16, + pub Anonymous: FLT_TAG_DATA_BUFFER_0, +} +impl ::core::marker::Copy for FLT_TAG_DATA_BUFFER {} +impl ::core::clone::Clone for FLT_TAG_DATA_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FLT_TAG_DATA_BUFFER_0 { + pub SymbolicLinkReparseBuffer: FLT_TAG_DATA_BUFFER_0_3, + pub MountPointReparseBuffer: FLT_TAG_DATA_BUFFER_0_2, + pub GenericReparseBuffer: FLT_TAG_DATA_BUFFER_0_1, + pub GenericGUIDReparseBuffer: FLT_TAG_DATA_BUFFER_0_0, +} +impl ::core::marker::Copy for FLT_TAG_DATA_BUFFER_0 {} +impl ::core::clone::Clone for FLT_TAG_DATA_BUFFER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLT_TAG_DATA_BUFFER_0_0 { + pub TagGuid: ::windows_sys::core::GUID, + pub DataBuffer: [u8; 1], +} +impl ::core::marker::Copy for FLT_TAG_DATA_BUFFER_0_0 {} +impl ::core::clone::Clone for FLT_TAG_DATA_BUFFER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLT_TAG_DATA_BUFFER_0_1 { + pub DataBuffer: [u8; 1], +} +impl ::core::marker::Copy for FLT_TAG_DATA_BUFFER_0_1 {} +impl ::core::clone::Clone for FLT_TAG_DATA_BUFFER_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLT_TAG_DATA_BUFFER_0_2 { + pub SubstituteNameOffset: u16, + pub SubstituteNameLength: u16, + pub PrintNameOffset: u16, + pub PrintNameLength: u16, + pub PathBuffer: [u16; 1], +} +impl ::core::marker::Copy for FLT_TAG_DATA_BUFFER_0_2 {} +impl ::core::clone::Clone for FLT_TAG_DATA_BUFFER_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLT_TAG_DATA_BUFFER_0_3 { + pub SubstituteNameOffset: u16, + pub SubstituteNameLength: u16, + pub PrintNameOffset: u16, + pub PrintNameLength: u16, + pub Flags: u32, + pub PathBuffer: [u16; 1], +} +impl ::core::marker::Copy for FLT_TAG_DATA_BUFFER_0_3 {} +impl ::core::clone::Clone for FLT_TAG_DATA_BUFFER_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FLT_VOLUME_PROPERTIES { + pub DeviceType: u32, + pub DeviceCharacteristics: u32, + pub DeviceObjectFlags: u32, + pub AlignmentRequirement: u32, + pub SectorSize: u16, + pub Flags: u16, + pub FileSystemDriverName: super::super::super::super::Win32::Foundation::UNICODE_STRING, + pub FileSystemDeviceName: super::super::super::super::Win32::Foundation::UNICODE_STRING, + pub RealDeviceName: super::super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FLT_VOLUME_PROPERTIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FLT_VOLUME_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +pub type PFLT_CONTEXT = *mut ::core::ffi::c_void; +pub type PFLT_DEFERRED_IO_WORKITEM = isize; +pub type PFLT_FILTER = isize; +pub type PFLT_GENERIC_WORKITEM = isize; +pub type PFLT_INSTANCE = isize; +pub type PFLT_PORT = isize; +pub type PFLT_VOLUME = isize; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLTOPLOCK_WAIT_COMPLETE_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_CALLBACK_DATA_QUEUE_ACQUIRE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_CALLBACK_DATA_QUEUE_INSERT_IO = ::core::option::Option super::super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_CALLBACK_DATA_QUEUE_PEEK_NEXT_IO = ::core::option::Option *mut FLT_CALLBACK_DATA>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_CALLBACK_DATA_QUEUE_RELEASE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_CALLBACK_DATA_QUEUE_REMOVE_IO = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_COMPLETED_ASYNC_IO_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_COMPLETE_CANCELED_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE = ::core::option::Option super::super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFLT_CONNECT_NOTIFY = ::core::option::Option super::super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub type PFLT_CONTEXT_ALLOCATE_CALLBACK = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PFLT_CONTEXT_CLEANUP_CALLBACK = ::core::option::Option ()>; +pub type PFLT_CONTEXT_FREE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_DEFERRED_IO_WORKITEM_ROUTINE = ::core::option::Option ()>; +pub type PFLT_DISCONNECT_NOTIFY = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFLT_FILTER_UNLOAD_CALLBACK = ::core::option::Option super::super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_GENERATE_FILE_NAME = ::core::option::Option super::super::super::super::Win32::Foundation::NTSTATUS>; +pub type PFLT_GENERIC_WORKITEM_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_GET_OPERATION_STATUS_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK = ::core::option::Option super::super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_InstallableFileSystems\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_InstallableFileSystems", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_INSTANCE_SETUP_CALLBACK = ::core::option::Option super::super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_INSTANCE_TEARDOWN_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFLT_MESSAGE_NOTIFY = ::core::option::Option super::super::super::super::Win32::Foundation::NTSTATUS>; +pub type PFLT_NORMALIZE_CONTEXT_CLEANUP = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFLT_NORMALIZE_NAME_COMPONENT = ::core::option::Option super::super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_NORMALIZE_NAME_COMPONENT_EX = ::core::option::Option super::super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_POST_OPERATION_CALLBACK = ::core::option::Option FLT_POSTOP_CALLBACK_STATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_PRE_OPERATION_CALLBACK = ::core::option::Option FLT_PREOP_CALLBACK_STATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK = ::core::option::Option super::super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLT_TRANSACTION_NOTIFICATION_CALLBACK = ::core::option::Option super::super::super::super::Win32::Foundation::NTSTATUS>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/Storage/FileSystem/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/Storage/FileSystem/mod.rs new file mode 100644 index 000000000..46aba8519 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/Storage/FileSystem/mod.rs @@ -0,0 +1,6233 @@ +#[cfg(feature = "Wdk_Storage_FileSystem_Minifilters")] +#[doc = "Required features: `\"Wdk_Storage_FileSystem_Minifilters\"`"] +pub mod Minifilters; +::windows_targets::link!("secur32.dll" "system" fn ApplyControlToken(phcontext : *const SecHandle, pinput : *const SecBufferDesc) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcAsyncCopyRead(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, wait : super::super::super::Win32::Foundation:: BOOLEAN, buffer : *mut ::core::ffi::c_void, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, ioissuerthread : super::super::Foundation:: PETHREAD, asyncreadcontext : *const CC_ASYNC_READ_CONTEXT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcCanIWrite(fileobject : *const super::super::Foundation:: FILE_OBJECT, bytestowrite : u32, wait : super::super::super::Win32::Foundation:: BOOLEAN, retrying : u8) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn CcCoherencyFlushAndPurgeCache(sectionobjectpointer : *const super::super::Foundation:: SECTION_OBJECT_POINTERS, fileoffset : *const i64, length : u32, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, flags : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcCopyRead(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, wait : super::super::super::Win32::Foundation:: BOOLEAN, buffer : *mut ::core::ffi::c_void, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcCopyReadEx(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, wait : super::super::super::Win32::Foundation:: BOOLEAN, buffer : *mut ::core::ffi::c_void, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, ioissuerthread : super::super::Foundation:: PETHREAD) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcCopyWrite(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, wait : super::super::super::Win32::Foundation:: BOOLEAN, buffer : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcCopyWriteEx(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, wait : super::super::super::Win32::Foundation:: BOOLEAN, buffer : *const ::core::ffi::c_void, ioissuerthread : super::super::Foundation:: PETHREAD) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcCopyWriteWontFlush(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcDeferWrite(fileobject : *const super::super::Foundation:: FILE_OBJECT, postroutine : PCC_POST_DEFERRED_WRITE, context1 : *const ::core::ffi::c_void, context2 : *const ::core::ffi::c_void, bytestowrite : u32, retrying : super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CcErrorCallbackRoutine(context : *const CC_ERROR_CALLBACK_CONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcFastCopyRead(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : u32, length : u32, pagecount : u32, buffer : *mut ::core::ffi::c_void, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcFastCopyWrite(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : u32, length : u32, buffer : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn CcFlushCache(sectionobjectpointer : *const super::super::Foundation:: SECTION_OBJECT_POINTERS, fileoffset : *const i64, length : u32, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcGetDirtyPages(loghandle : *const ::core::ffi::c_void, dirtypageroutine : PDIRTY_PAGE_ROUTINE, context1 : *const ::core::ffi::c_void, context2 : *const ::core::ffi::c_void) -> i64); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcGetFileObjectFromBcb(bcb : *const ::core::ffi::c_void) -> *mut super::super::Foundation:: FILE_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcGetFileObjectFromSectionPtrs(sectionobjectpointer : *const super::super::Foundation:: SECTION_OBJECT_POINTERS) -> *mut super::super::Foundation:: FILE_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcGetFileObjectFromSectionPtrsRef(sectionobjectpointer : *const super::super::Foundation:: SECTION_OBJECT_POINTERS) -> *mut super::super::Foundation:: FILE_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn CcGetFlushedValidData(sectionobjectpointer : *const super::super::Foundation:: SECTION_OBJECT_POINTERS, bcblistheld : super::super::super::Win32::Foundation:: BOOLEAN) -> i64); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcInitializeCacheMap(fileobject : *const super::super::Foundation:: FILE_OBJECT, filesizes : *const CC_FILE_SIZES, pinaccess : super::super::super::Win32::Foundation:: BOOLEAN, callbacks : *const CACHE_MANAGER_CALLBACKS, lazywritecontext : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcInitializeCacheMapEx(fileobject : *const super::super::Foundation:: FILE_OBJECT, filesizes : *const CC_FILE_SIZES, pinaccess : super::super::super::Win32::Foundation:: BOOLEAN, callbacks : *const CACHE_MANAGER_CALLBACKS, lazywritecontext : *const ::core::ffi::c_void, flags : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CcIsCacheManagerCallbackNeeded(status : super::super::super::Win32::Foundation:: NTSTATUS) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcIsThereDirtyData(vpb : *const super::super::Foundation:: VPB) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcIsThereDirtyDataEx(vpb : *const super::super::Foundation:: VPB, numberofdirtypages : *const u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcMapData(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, flags : u32, bcb : *mut *mut ::core::ffi::c_void, buffer : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcMdlRead(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, mdlchain : *mut *mut super::super::Foundation:: MDL, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcMdlReadComplete(fileobject : *const super::super::Foundation:: FILE_OBJECT, mdlchain : *const super::super::Foundation:: MDL) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcMdlWriteAbort(fileobject : *const super::super::Foundation:: FILE_OBJECT, mdlchain : *const super::super::Foundation:: MDL) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcMdlWriteComplete(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, mdlchain : *const super::super::Foundation:: MDL) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcPinMappedData(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, flags : u32, bcb : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcPinRead(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, flags : u32, bcb : *mut *mut ::core::ffi::c_void, buffer : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcPrepareMdlWrite(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, mdlchain : *mut *mut super::super::Foundation:: MDL, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcPreparePinWrite(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, zero : super::super::super::Win32::Foundation:: BOOLEAN, flags : u32, bcb : *mut *mut ::core::ffi::c_void, buffer : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn CcPurgeCacheSection(sectionobjectpointer : *const super::super::Foundation:: SECTION_OBJECT_POINTERS, fileoffset : *const i64, length : u32, flags : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn CcRemapBcb(bcb : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntoskrnl.exe" "system" fn CcRepinBcb(bcb : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcScheduleReadAhead(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcScheduleReadAheadEx(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, ioissuerthread : super::super::Foundation:: PETHREAD) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcSetAdditionalCacheAttributes(fileobject : *const super::super::Foundation:: FILE_OBJECT, disablereadahead : super::super::super::Win32::Foundation:: BOOLEAN, disablewritebehind : super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcSetAdditionalCacheAttributesEx(fileobject : *const super::super::Foundation:: FILE_OBJECT, flags : u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn CcSetBcbOwnerPointer(bcb : *const ::core::ffi::c_void, ownerpointer : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcSetDirtyPageThreshold(fileobject : *const super::super::Foundation:: FILE_OBJECT, dirtypagethreshold : u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn CcSetDirtyPinnedData(bcbvoid : *const ::core::ffi::c_void, lsn : *const i64) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcSetFileSizes(fileobject : *const super::super::Foundation:: FILE_OBJECT, filesizes : *const CC_FILE_SIZES) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcSetFileSizesEx(fileobject : *const super::super::Foundation:: FILE_OBJECT, filesizes : *const CC_FILE_SIZES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcSetLogHandleForFile(fileobject : *const super::super::Foundation:: FILE_OBJECT, loghandle : *const ::core::ffi::c_void, flushtolsnroutine : PFLUSH_TO_LSN) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcSetParallelFlushFile(fileobject : *const super::super::Foundation:: FILE_OBJECT, enableparallelflush : super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcSetReadAheadGranularity(fileobject : *const super::super::Foundation:: FILE_OBJECT, granularity : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcUninitializeCacheMap(fileobject : *const super::super::Foundation:: FILE_OBJECT, truncatesize : *const i64, uninitializeevent : *const CACHE_UNINITIALIZE_EVENT) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn CcUnpinData(bcb : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn CcUnpinDataForThread(bcb : *const ::core::ffi::c_void, resourcethreadid : usize) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn CcUnpinRepinnedBcb(bcb : *const ::core::ffi::c_void, writethrough : super::super::super::Win32::Foundation:: BOOLEAN, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CcWaitForCurrentLazyWriterActivity() -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn CcZeroData(fileobject : *const super::super::Foundation:: FILE_OBJECT, startoffset : *const i64, endoffset : *const i64, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("secur32.dll" "system" fn CompleteAuthToken(phcontext : *const SecHandle, ptoken : *const SecBufferDesc) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExDisableResourceBoostLite(resource : *const super::super::Foundation:: ERESOURCE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExQueryPoolBlockSize(poolblock : *const ::core::ffi::c_void, quotacharged : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> usize); +::windows_targets::link!("secur32.dll" "system" fn ExportSecurityContext(phcontext : *const SecHandle, fflags : u32, ppackedcontext : *mut SecBuffer, ptoken : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlAcknowledgeEcp(ecpcontext : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlAcquireFileExclusive(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlAddBaseMcbEntry(mcb : *mut BASE_MCB, vbn : i64, lbn : i64, sectorcount : i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlAddBaseMcbEntryEx(mcb : *mut BASE_MCB, vbn : i64, lbn : i64, sectorcount : i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlAddLargeMcbEntry(mcb : *mut LARGE_MCB, vbn : i64, lbn : i64, sectorcount : i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlAddMcbEntry(mcb : *mut MCB, vbn : u32, lbn : u32, sectorcount : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlAddToTunnelCache(cache : *mut TUNNEL, directorykey : u64, shortname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, longname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, keybyshortname : super::super::super::Win32::Foundation:: BOOLEAN, datalength : u32, data : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlAddToTunnelCacheEx(cache : *mut TUNNEL, directorykey : u64, shortname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, longname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, flags : u32, datalength : u32, data : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn FsRtlAllocateAePushLock(pooltype : super::super::Foundation:: POOL_TYPE, tag : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlAllocateExtraCreateParameter(ecptype : *const ::windows_sys::core::GUID, sizeofcontext : u32, flags : u32, cleanupcallback : PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK, pooltag : u32, ecpcontext : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlAllocateExtraCreateParameterFromLookasideList(ecptype : *const ::windows_sys::core::GUID, sizeofcontext : u32, flags : u32, cleanupcallback : PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK, lookasidelist : *mut ::core::ffi::c_void, ecpcontext : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FsRtlAllocateExtraCreateParameterList(flags : u32, ecplist : *mut *mut super::super::Foundation:: ECP_LIST) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlAllocateFileLock(completelockirproutine : PCOMPLETE_LOCK_IRP_ROUTINE, unlockroutine : PUNLOCK_ROUTINE) -> *mut FILE_LOCK); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlAllocateResource() -> *mut super::super::Foundation:: ERESOURCE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlAreNamesEqual(constantnamea : *const super::super::super::Win32::Foundation:: UNICODE_STRING, constantnameb : *const super::super::super::Win32::Foundation:: UNICODE_STRING, ignorecase : super::super::super::Win32::Foundation:: BOOLEAN, upcasetable : *const u16) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlAreThereCurrentOrInProgressFileLocks(filelock : *const FILE_LOCK) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlAreThereWaitingFileLocks(filelock : *const FILE_LOCK) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlAreVolumeStartupApplicationsComplete() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlBalanceReads(targetdevice : *const super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlCancellableWaitForMultipleObjects(count : u32, objectarray : *const *const ::core::ffi::c_void, waittype : super::super::super::Win32::System::Kernel:: WAIT_TYPE, timeout : *const i64, waitblockarray : *const super::super::Foundation:: KWAIT_BLOCK, irp : *const super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlCancellableWaitForSingleObject(object : *const ::core::ffi::c_void, timeout : *const i64, irp : *const super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlChangeBackingFileObject(currentfileobject : *const super::super::Foundation:: FILE_OBJECT, newfileobject : *const super::super::Foundation:: FILE_OBJECT, changebackingtype : FSRTL_CHANGE_BACKING_TYPE, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlCheckLockForOplockRequest(filelock : *const FILE_LOCK, allocationsize : *const i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlCheckLockForReadAccess(filelock : *const FILE_LOCK, irp : *const super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlCheckLockForWriteAccess(filelock : *const FILE_LOCK, irp : *const super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlCheckOplock(oplock : *const *const ::core::ffi::c_void, irp : *const super::super::Foundation:: IRP, context : *const ::core::ffi::c_void, completionroutine : POPLOCK_WAIT_COMPLETE_ROUTINE, postirproutine : POPLOCK_FS_PREPOST_IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlCheckOplockEx(oplock : *const *const ::core::ffi::c_void, irp : *const super::super::Foundation:: IRP, flags : u32, context : *const ::core::ffi::c_void, completionroutine : POPLOCK_WAIT_COMPLETE_ROUTINE, postirproutine : POPLOCK_FS_PREPOST_IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlCheckOplockEx2(oplock : *const *const ::core::ffi::c_void, irp : *const super::super::Foundation:: IRP, flags : u32, flagsex2 : u32, completionroutinecontext : *const ::core::ffi::c_void, completionroutine : POPLOCK_WAIT_COMPLETE_ROUTINE, postirproutine : POPLOCK_FS_PREPOST_IRP, timeout : u64, notifycontext : *const ::core::ffi::c_void, notifyroutine : POPLOCK_NOTIFY_ROUTINE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlCheckUpperOplock(oplock : *const *const ::core::ffi::c_void, newloweroplockstate : u32, completionroutinecontext : *const ::core::ffi::c_void, completionroutine : POPLOCK_WAIT_COMPLETE_ROUTINE, prependroutine : POPLOCK_FS_PREPOST_IRP, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlCopyRead(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, wait : super::super::super::Win32::Foundation:: BOOLEAN, lockkey : u32, buffer : *mut ::core::ffi::c_void, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlCopyWrite(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, wait : super::super::super::Win32::Foundation:: BOOLEAN, lockkey : u32, buffer : *const ::core::ffi::c_void, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlCreateSectionForDataScan(sectionhandle : *mut super::super::super::Win32::Foundation:: HANDLE, sectionobject : *mut *mut ::core::ffi::c_void, sectionfilesize : *mut i64, fileobject : *const super::super::Foundation:: FILE_OBJECT, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, maximumsize : *const i64, sectionpageprotection : u32, allocationattributes : u32, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlCurrentBatchOplock(oplock : *const *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlCurrentOplock(oplock : *const *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlCurrentOplockH(oplock : *const *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlDeleteExtraCreateParameterLookasideList(lookaside : *mut ::core::ffi::c_void, flags : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlDeleteKeyFromTunnelCache(cache : *mut TUNNEL, directorykey : u64) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlDeleteTunnelCache(cache : *mut TUNNEL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlDeregisterUncProvider(handle : super::super::super::Win32::Foundation:: HANDLE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlDismountComplete(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, dismountstatus : super::super::super::Win32::Foundation:: NTSTATUS) -> ()); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn FsRtlDissectDbcs(path : super::super::super::Win32::System::Kernel:: STRING, firstname : *mut super::super::super::Win32::System::Kernel:: STRING, remainingname : *mut super::super::super::Win32::System::Kernel:: STRING) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlDissectName(path : super::super::super::Win32::Foundation:: UNICODE_STRING, firstname : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, remainingname : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlDoesDbcsContainWildCards(name : *const super::super::super::Win32::System::Kernel:: STRING) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlDoesNameContainWildCards(name : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlFastCheckLockForRead(filelock : *const FILE_LOCK, startingbyte : *const i64, length : *const i64, key : u32, fileobject : *const super::super::Foundation:: FILE_OBJECT, processid : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlFastCheckLockForWrite(filelock : *const FILE_LOCK, startingbyte : *const i64, length : *const i64, key : u32, fileobject : *const ::core::ffi::c_void, processid : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlFastUnlockAll(filelock : *const FILE_LOCK, fileobject : *const super::super::Foundation:: FILE_OBJECT, processid : super::super::Foundation:: PEPROCESS, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlFastUnlockAllByKey(filelock : *const FILE_LOCK, fileobject : *const super::super::Foundation:: FILE_OBJECT, processid : super::super::Foundation:: PEPROCESS, key : u32, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlFastUnlockSingle(filelock : *const FILE_LOCK, fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : *const i64, processid : super::super::Foundation:: PEPROCESS, key : u32, context : *const ::core::ffi::c_void, alreadysynchronized : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FsRtlFindExtraCreateParameter(ecplist : *const super::super::Foundation:: ECP_LIST, ecptype : *const ::windows_sys::core::GUID, ecpcontext : *mut *mut ::core::ffi::c_void, ecpcontextsize : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlFindInTunnelCache(cache : *const TUNNEL, directorykey : u64, name : *const super::super::super::Win32::Foundation:: UNICODE_STRING, shortname : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, longname : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, datalength : *mut u32, data : *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlFindInTunnelCacheEx(cache : *const TUNNEL, directorykey : u64, name : *const super::super::super::Win32::Foundation:: UNICODE_STRING, shortname : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, longname : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, flags : u32, datalength : *mut u32, data : *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlFreeAePushLock(aepushlock : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlFreeExtraCreateParameter(ecpcontext : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn FsRtlFreeExtraCreateParameterList(ecplist : *const super::super::Foundation:: ECP_LIST) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlFreeFileLock(filelock : *const FILE_LOCK) -> ()); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn FsRtlGetCurrentProcessLoaderList() -> *mut super::super::super::Win32::System::Kernel:: LIST_ENTRY); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlGetEcpListFromIrp(irp : *const super::super::Foundation:: IRP, ecplist : *mut *mut super::super::Foundation:: ECP_LIST) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlGetFileSize(fileobject : *const super::super::Foundation:: FILE_OBJECT, filesize : *mut i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlGetNextBaseMcbEntry(mcb : *const BASE_MCB, runindex : u32, vbn : *mut i64, lbn : *mut i64, sectorcount : *mut i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FsRtlGetNextExtraCreateParameter(ecplist : *const super::super::Foundation:: ECP_LIST, currentecpcontext : *const ::core::ffi::c_void, nextecptype : *mut ::windows_sys::core::GUID, nextecpcontext : *mut *mut ::core::ffi::c_void, nextecpcontextsize : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlGetNextFileLock(filelock : *const FILE_LOCK, restart : super::super::super::Win32::Foundation:: BOOLEAN) -> *mut FILE_LOCK_INFO); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlGetNextLargeMcbEntry(mcb : *const LARGE_MCB, runindex : u32, vbn : *mut i64, lbn : *mut i64, sectorcount : *mut i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlGetNextMcbEntry(mcb : *const MCB, runindex : u32, vbn : *mut u32, lbn : *mut u32, sectorcount : *mut u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlGetSectorSizeInformation(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, sectorsizeinfo : *mut FILE_FS_SECTOR_SIZE_INFORMATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlGetSupportedFeatures(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, supportedfeatures : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlGetVirtualDiskNestingLevel(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, nestinglevel : *mut u32, nestingflags : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlIncrementCcFastMdlReadWait() -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlIncrementCcFastReadNoWait() -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlIncrementCcFastReadNotPossible() -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlIncrementCcFastReadResourceMiss() -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlIncrementCcFastReadWait() -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlInitExtraCreateParameterLookasideList(lookaside : *mut ::core::ffi::c_void, flags : u32, size : usize, tag : u32) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn FsRtlInitializeBaseMcb(mcb : *mut BASE_MCB, pooltype : super::super::Foundation:: POOL_TYPE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FsRtlInitializeBaseMcbEx(mcb : *mut BASE_MCB, pooltype : super::super::Foundation:: POOL_TYPE, flags : u16) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn FsRtlInitializeExtraCreateParameter(ecp : *mut super::super::Foundation:: ECP_HEADER, ecpflags : u32, cleanupcallback : PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK, totalsize : u32, ecptype : *const ::windows_sys::core::GUID, listallocatedfrom : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FsRtlInitializeExtraCreateParameterList(ecplist : *mut super::super::Foundation:: ECP_LIST) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlInitializeFileLock(filelock : *mut FILE_LOCK, completelockirproutine : PCOMPLETE_LOCK_IRP_ROUTINE, unlockroutine : PUNLOCK_ROUTINE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlInitializeLargeMcb(mcb : *mut LARGE_MCB, pooltype : super::super::Foundation:: POOL_TYPE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlInitializeMcb(mcb : *mut MCB, pooltype : super::super::Foundation:: POOL_TYPE) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlInitializeOplock(oplock : *mut *mut ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlInitializeTunnelCache(cache : *mut TUNNEL) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FsRtlInsertExtraCreateParameter(ecplist : *mut super::super::Foundation:: ECP_LIST, ecpcontext : *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlInsertPerFileContext(perfilecontextpointer : *const *const ::core::ffi::c_void, ptr : *const FSRTL_PER_FILE_CONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlInsertPerFileObjectContext(fileobject : *const super::super::Foundation:: FILE_OBJECT, ptr : *const FSRTL_PER_FILEOBJECT_CONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlInsertPerStreamContext(perstreamcontext : *const FSRTL_ADVANCED_FCB_HEADER, ptr : *const FSRTL_PER_STREAM_CONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FsRtlIs32BitProcess(process : super::super::Foundation:: PEPROCESS) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlIsDaxVolume(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlIsDbcsInExpression(expression : *const super::super::super::Win32::System::Kernel:: STRING, name : *const super::super::super::Win32::System::Kernel:: STRING) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlIsEcpAcknowledged(ecpcontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlIsEcpFromUserMode(ecpcontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlIsExtentDangling(startpage : u32, numberofpages : u32, flags : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlIsFatDbcsLegal(dbcsname : super::super::super::Win32::System::Kernel:: STRING, wildcardspermissible : super::super::super::Win32::Foundation:: BOOLEAN, pathnamepermissible : super::super::super::Win32::Foundation:: BOOLEAN, leadingbackslashpermissible : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlIsHpfsDbcsLegal(dbcsname : super::super::super::Win32::System::Kernel:: STRING, wildcardspermissible : super::super::super::Win32::Foundation:: BOOLEAN, pathnamepermissible : super::super::super::Win32::Foundation:: BOOLEAN, leadingbackslashpermissible : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlIsMobileOS() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlIsNameInExpression(expression : *const super::super::super::Win32::Foundation:: UNICODE_STRING, name : *const super::super::super::Win32::Foundation:: UNICODE_STRING, ignorecase : super::super::super::Win32::Foundation:: BOOLEAN, upcasetable : ::windows_sys::core::PCWSTR) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlIsNameInUnUpcasedExpression(expression : *const super::super::super::Win32::Foundation:: UNICODE_STRING, name : *const super::super::super::Win32::Foundation:: UNICODE_STRING, ignorecase : super::super::super::Win32::Foundation:: BOOLEAN, upcasetable : ::windows_sys::core::PCWSTR) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlIsNonEmptyDirectoryReparsePointAllowed(reparsetag : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlIsNtstatusExpected(exception : super::super::super::Win32::Foundation:: NTSTATUS) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlIsPagingFile(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlIsSystemPagingFile(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlIssueDeviceIoControl(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, ioctl : u32, flags : u8, inputbuffer : *const ::core::ffi::c_void, inputbufferlength : u32, outputbuffer : *const ::core::ffi::c_void, outputbufferlength : u32, iosbinformation : *mut usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlKernelFsControlFile(fileobject : *const super::super::Foundation:: FILE_OBJECT, fscontrolcode : u32, inputbuffer : *const ::core::ffi::c_void, inputbufferlength : u32, outputbuffer : *mut ::core::ffi::c_void, outputbufferlength : u32, retoutputbuffersize : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlLogCcFlushError(filename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, sectionobjectpointer : *const super::super::Foundation:: SECTION_OBJECT_POINTERS, flusherror : super::super::super::Win32::Foundation:: NTSTATUS, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlLookupBaseMcbEntry(mcb : *const BASE_MCB, vbn : i64, lbn : *mut i64, sectorcountfromlbn : *mut i64, startinglbn : *mut i64, sectorcountfromstartinglbn : *mut i64, index : *mut u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlLookupLargeMcbEntry(mcb : *const LARGE_MCB, vbn : i64, lbn : *mut i64, sectorcountfromlbn : *mut i64, startinglbn : *mut i64, sectorcountfromstartinglbn : *mut i64, index : *mut u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlLookupLastBaseMcbEntry(mcb : *const BASE_MCB, vbn : *mut i64, lbn : *mut i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlLookupLastBaseMcbEntryAndIndex(opaquemcb : *const BASE_MCB, largevbn : *mut i64, largelbn : *mut i64, index : *mut u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlLookupLastLargeMcbEntry(mcb : *const LARGE_MCB, vbn : *mut i64, lbn : *mut i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlLookupLastLargeMcbEntryAndIndex(opaquemcb : *const LARGE_MCB, largevbn : *mut i64, largelbn : *mut i64, index : *mut u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlLookupLastMcbEntry(mcb : *const MCB, vbn : *mut u32, lbn : *mut u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlLookupMcbEntry(mcb : *const MCB, vbn : u32, lbn : *mut u32, sectorcount : *mut u32, index : *mut u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlLookupPerFileContext(perfilecontextpointer : *const *const ::core::ffi::c_void, ownerid : *const ::core::ffi::c_void, instanceid : *const ::core::ffi::c_void) -> *mut FSRTL_PER_FILE_CONTEXT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlLookupPerFileObjectContext(fileobject : *const super::super::Foundation:: FILE_OBJECT, ownerid : *const ::core::ffi::c_void, instanceid : *const ::core::ffi::c_void) -> *mut FSRTL_PER_FILEOBJECT_CONTEXT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlLookupPerStreamContextInternal(streamcontext : *const FSRTL_ADVANCED_FCB_HEADER, ownerid : *const ::core::ffi::c_void, instanceid : *const ::core::ffi::c_void) -> *mut FSRTL_PER_STREAM_CONTEXT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlMdlReadCompleteDev(fileobject : *const super::super::Foundation:: FILE_OBJECT, mdlchain : *const super::super::Foundation:: MDL, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlMdlReadDev(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, lockkey : u32, mdlchain : *mut *mut super::super::Foundation:: MDL, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlMdlReadEx(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, lockkey : u32, mdlchain : *mut *mut super::super::Foundation:: MDL, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlMdlWriteCompleteDev(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, mdlchain : *const super::super::Foundation:: MDL, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlMupGetProviderIdFromName(pprovidername : *const super::super::super::Win32::Foundation:: UNICODE_STRING, pproviderid : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlMupGetProviderInfoFromFileObject(pfileobject : *const super::super::Foundation:: FILE_OBJECT, level : u32, pbuffer : *mut ::core::ffi::c_void, pbuffersize : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlNormalizeNtstatus(exception : super::super::super::Win32::Foundation:: NTSTATUS, genericexception : super::super::super::Win32::Foundation:: NTSTATUS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlNotifyCleanup(notifysync : super::super::Foundation:: PNOTIFY_SYNC, notifylist : *const super::super::super::Win32::System::Kernel:: LIST_ENTRY, fscontext : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlNotifyCleanupAll(notifysync : super::super::Foundation:: PNOTIFY_SYNC, notifylist : *const super::super::super::Win32::System::Kernel:: LIST_ENTRY) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlNotifyFilterChangeDirectory(notifysync : super::super::Foundation:: PNOTIFY_SYNC, notifylist : *const super::super::super::Win32::System::Kernel:: LIST_ENTRY, fscontext : *const ::core::ffi::c_void, fulldirectoryname : *const super::super::super::Win32::System::Kernel:: STRING, watchtree : super::super::super::Win32::Foundation:: BOOLEAN, ignorebuffer : super::super::super::Win32::Foundation:: BOOLEAN, completionfilter : u32, notifyirp : *const super::super::Foundation:: IRP, traversecallback : PCHECK_FOR_TRAVERSE_ACCESS, subjectcontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT, filtercallback : PFILTER_REPORT_CHANGE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlNotifyFilterReportChange(notifysync : super::super::Foundation:: PNOTIFY_SYNC, notifylist : *const super::super::super::Win32::System::Kernel:: LIST_ENTRY, fulltargetname : *const super::super::super::Win32::System::Kernel:: STRING, targetnameoffset : u16, streamname : *const super::super::super::Win32::System::Kernel:: STRING, normalizedparentname : *const super::super::super::Win32::System::Kernel:: STRING, filtermatch : u32, action : u32, targetcontext : *const ::core::ffi::c_void, filtercontext : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlNotifyFullChangeDirectory(notifysync : super::super::Foundation:: PNOTIFY_SYNC, notifylist : *const super::super::super::Win32::System::Kernel:: LIST_ENTRY, fscontext : *const ::core::ffi::c_void, fulldirectoryname : *mut super::super::super::Win32::System::Kernel:: STRING, watchtree : super::super::super::Win32::Foundation:: BOOLEAN, ignorebuffer : super::super::super::Win32::Foundation:: BOOLEAN, completionfilter : u32, notifyirp : *const super::super::Foundation:: IRP, traversecallback : PCHECK_FOR_TRAVERSE_ACCESS, subjectcontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlNotifyFullReportChange(notifysync : super::super::Foundation:: PNOTIFY_SYNC, notifylist : *const super::super::super::Win32::System::Kernel:: LIST_ENTRY, fulltargetname : *const super::super::super::Win32::System::Kernel:: STRING, targetnameoffset : u16, streamname : *const super::super::super::Win32::System::Kernel:: STRING, normalizedparentname : *const super::super::super::Win32::System::Kernel:: STRING, filtermatch : u32, action : u32, targetcontext : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn FsRtlNotifyInitializeSync(notifysync : *mut super::super::Foundation:: PNOTIFY_SYNC) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn FsRtlNotifyUninitializeSync(notifysync : *mut super::super::Foundation:: PNOTIFY_SYNC) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlNotifyVolumeEvent(fileobject : *const super::super::Foundation:: FILE_OBJECT, eventcode : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlNotifyVolumeEventEx(fileobject : *const super::super::Foundation:: FILE_OBJECT, eventcode : u32, event : *const super::super::Foundation:: TARGET_DEVICE_CUSTOM_NOTIFICATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlNumberOfRunsInBaseMcb(mcb : *const BASE_MCB) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlNumberOfRunsInLargeMcb(mcb : *const LARGE_MCB) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlNumberOfRunsInMcb(mcb : *const MCB) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlOplockBreakH(oplock : *const *const ::core::ffi::c_void, irp : *const super::super::Foundation:: IRP, flags : u32, context : *const ::core::ffi::c_void, completionroutine : POPLOCK_WAIT_COMPLETE_ROUTINE, postirproutine : POPLOCK_FS_PREPOST_IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlOplockBreakH2(oplock : *const *const ::core::ffi::c_void, irp : *const super::super::Foundation:: IRP, flags : u32, context : *const ::core::ffi::c_void, completionroutine : POPLOCK_WAIT_COMPLETE_ROUTINE, postirproutine : POPLOCK_FS_PREPOST_IRP, grantedaccess : *const u32, shareaccess : *const u16) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlOplockBreakToNone(oplock : *mut *mut ::core::ffi::c_void, irpsp : *const super::super::Foundation:: IO_STACK_LOCATION, irp : *const super::super::Foundation:: IRP, context : *const ::core::ffi::c_void, completionroutine : POPLOCK_WAIT_COMPLETE_ROUTINE, postirproutine : POPLOCK_FS_PREPOST_IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlOplockBreakToNoneEx(oplock : *mut *mut ::core::ffi::c_void, irp : *const super::super::Foundation:: IRP, flags : u32, context : *const ::core::ffi::c_void, completionroutine : POPLOCK_WAIT_COMPLETE_ROUTINE, postirproutine : POPLOCK_FS_PREPOST_IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlOplockFsctrl(oplock : *const *const ::core::ffi::c_void, irp : *const super::super::Foundation:: IRP, opencount : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlOplockFsctrlEx(oplock : *const *const ::core::ffi::c_void, irp : *const super::super::Foundation:: IRP, opencount : u32, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn FsRtlOplockGetAnyBreakOwnerProcess(oplock : *const *const ::core::ffi::c_void) -> super::super::Foundation:: PEPROCESS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlOplockIsFastIoPossible(oplock : *const *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlOplockIsSharedRequest(irp : *const super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlOplockKeysEqual(fo1 : *const super::super::Foundation:: FILE_OBJECT, fo2 : *const super::super::Foundation:: FILE_OBJECT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlPostPagingFileStackOverflow(context : *const ::core::ffi::c_void, event : *const super::super::Foundation:: KEVENT, stackoverflowroutine : PFSRTL_STACK_OVERFLOW_ROUTINE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlPostStackOverflow(context : *const ::core::ffi::c_void, event : *const super::super::Foundation:: KEVENT, stackoverflowroutine : PFSRTL_STACK_OVERFLOW_ROUTINE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlPrepareMdlWriteDev(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, lockkey : u32, mdlchain : *mut *mut super::super::Foundation:: MDL, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlPrepareMdlWriteEx(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : u32, lockkey : u32, mdlchain : *mut *mut super::super::Foundation:: MDL, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlPrepareToReuseEcp(ecpcontext : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlPrivateLock(filelock : *const FILE_LOCK, fileobject : *const super::super::Foundation:: FILE_OBJECT, fileoffset : *const i64, length : *const i64, processid : super::super::Foundation:: PEPROCESS, key : u32, failimmediately : super::super::super::Win32::Foundation:: BOOLEAN, exclusivelock : super::super::super::Win32::Foundation:: BOOLEAN, iosb : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, irp : *const super::super::Foundation:: IRP, context : *const ::core::ffi::c_void, alreadysynchronized : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlProcessFileLock(filelock : *const FILE_LOCK, irp : *const super::super::Foundation:: IRP, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlQueryCachedVdl(fileobject : *const super::super::Foundation:: FILE_OBJECT, vdl : *mut i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlQueryInformationFile(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, retfileinformationsize : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlQueryKernelEaFile(fileobject : *const super::super::Foundation:: FILE_OBJECT, returnedeadata : *mut ::core::ffi::c_void, length : u32, returnsingleentry : super::super::super::Win32::Foundation:: BOOLEAN, ealist : *const ::core::ffi::c_void, ealistlength : u32, eaindex : *const u32, restartscan : super::super::super::Win32::Foundation:: BOOLEAN, lengthreturned : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlQueryMaximumVirtualDiskNestingLevel() -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlRegisterFileSystemFilterCallbacks(filterdriverobject : *const super::super::Foundation:: DRIVER_OBJECT, callbacks : *const FS_FILTER_CALLBACKS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlRegisterUncProvider(muphandle : *mut super::super::super::Win32::Foundation:: HANDLE, redirectordevicename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, mailslotssupported : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlRegisterUncProviderEx(muphandle : *mut super::super::super::Win32::Foundation:: HANDLE, redirdevname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlRegisterUncProviderEx2(redirdevname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, registration : *const FSRTL_UNC_PROVIDER_REGISTRATION, muphandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlReleaseFile(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlRemoveBaseMcbEntry(mcb : *mut BASE_MCB, vbn : i64, sectorcount : i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlRemoveDotsFromPath(originalstring : ::windows_sys::core::PWSTR, pathlength : u16, newlength : *mut u16) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn FsRtlRemoveExtraCreateParameter(ecplist : *mut super::super::Foundation:: ECP_LIST, ecptype : *const ::windows_sys::core::GUID, ecpcontext : *mut *mut ::core::ffi::c_void, ecpcontextsize : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlRemoveLargeMcbEntry(mcb : *mut LARGE_MCB, vbn : i64, sectorcount : i64) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlRemoveMcbEntry(mcb : *mut MCB, vbn : u32, sectorcount : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlRemovePerFileContext(perfilecontextpointer : *const *const ::core::ffi::c_void, ownerid : *const ::core::ffi::c_void, instanceid : *const ::core::ffi::c_void) -> *mut FSRTL_PER_FILE_CONTEXT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlRemovePerFileObjectContext(fileobject : *const super::super::Foundation:: FILE_OBJECT, ownerid : *const ::core::ffi::c_void, instanceid : *const ::core::ffi::c_void) -> *mut FSRTL_PER_FILEOBJECT_CONTEXT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlRemovePerStreamContext(streamcontext : *const FSRTL_ADVANCED_FCB_HEADER, ownerid : *const ::core::ffi::c_void, instanceid : *const ::core::ffi::c_void) -> *mut FSRTL_PER_STREAM_CONTEXT); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlResetBaseMcb(mcb : *mut BASE_MCB) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlResetLargeMcb(mcb : *mut LARGE_MCB, selfsynchronized : super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlSetDriverBacking(driverobj : *const super::super::Foundation:: DRIVER_OBJECT, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlSetEcpListIntoIrp(irp : *mut super::super::Foundation:: IRP, ecplist : *const super::super::Foundation:: ECP_LIST) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlSetKernelEaFile(fileobject : *const super::super::Foundation:: FILE_OBJECT, eabuffer : *const ::core::ffi::c_void, length : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlSplitBaseMcb(mcb : *mut BASE_MCB, vbn : i64, amount : i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlSplitLargeMcb(mcb : *mut LARGE_MCB, vbn : i64, amount : i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlTeardownPerFileContexts(perfilecontextpointer : *const *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlTeardownPerStreamContexts(advancedheader : *const FSRTL_ADVANCED_FCB_HEADER) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlTruncateBaseMcb(mcb : *mut BASE_MCB, vbn : i64) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlTruncateLargeMcb(mcb : *mut LARGE_MCB, vbn : i64) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlTruncateMcb(mcb : *mut MCB, vbn : u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlUninitializeBaseMcb(mcb : *const BASE_MCB) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlUninitializeFileLock(filelock : *mut FILE_LOCK) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlUninitializeLargeMcb(mcb : *mut LARGE_MCB) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn FsRtlUninitializeMcb(mcb : *mut MCB) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlUninitializeOplock(oplock : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn FsRtlUpdateDiskCounters(bytesread : u64, byteswritten : u64) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlUpperOplockFsctrl(oplock : *const *const ::core::ffi::c_void, irp : *const super::super::Foundation:: IRP, opencount : u32, loweroplockstate : u32, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlValidateReparsePointBuffer(bufferlength : u32, reparsebuffer : *const REPARSE_DATA_BUFFER) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn FsRtlVolumeDeviceToCorrelationId(volumedeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, guid : *mut ::windows_sys::core::GUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] fn GetSecurityUserInfo(logonid : *const super::super::super::Win32::Foundation:: LUID, flags : u32, userinformation : *mut *mut super::super::super::Win32::Security::Authentication::Identity:: SECURITY_USER_DATA) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoAcquireVpbSpinLock(irql : *mut u8) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn IoApplyPriorityInfoThread(inputpriorityinfo : *const IO_PRIORITY_INFO, outputpriorityinfo : *mut IO_PRIORITY_INFO, thread : super::super::Foundation:: PETHREAD) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoCheckDesiredAccess(desiredaccess : *mut u32, grantedaccess : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoCheckEaBufferValidity(eabuffer : *const FILE_FULL_EA_INFORMATION, ealength : u32, erroroffset : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoCheckFunctionAccess(grantedaccess : u32, majorfunction : u8, minorfunction : u8, iocontrolcode : u32, arg1 : *const ::core::ffi::c_void, arg2 : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCheckQuerySetFileInformation(fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, length : u32, setoperation : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoCheckQuerySetVolumeInformation(fsinformationclass : FS_INFORMATION_CLASS, length : u32, setoperation : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IoCheckQuotaBufferValidity(quotabuffer : *const FILE_QUOTA_INFORMATION, quotalength : u32, erroroffset : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoClearFsTrackOffsetState(irp : *mut super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCreateStreamFileObject(fileobject : *const super::super::Foundation:: FILE_OBJECT, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> *mut super::super::Foundation:: FILE_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCreateStreamFileObjectEx(fileobject : *const super::super::Foundation:: FILE_OBJECT, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, filehandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> *mut super::super::Foundation:: FILE_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCreateStreamFileObjectEx2(createoptions : *const IO_CREATE_STREAM_FILE_OPTIONS, fileobject : *const super::super::Foundation:: FILE_OBJECT, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, streamfileobject : *mut *mut super::super::Foundation:: FILE_OBJECT, filehandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCreateStreamFileObjectLite(fileobject : *const super::super::Foundation:: FILE_OBJECT, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> *mut super::super::Foundation:: FILE_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoEnumerateDeviceObjectList(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, deviceobjectlist : *mut *mut super::super::Foundation:: DEVICE_OBJECT, deviceobjectlistsize : u32, actualnumberdeviceobjects : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoEnumerateRegisteredFiltersList(driverobjectlist : *mut *mut super::super::Foundation:: DRIVER_OBJECT, driverobjectlistsize : u32, actualnumberdriverobjects : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn IoFastQueryNetworkAttributes(objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, desiredaccess : u32, openoptions : u32, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, buffer : *mut FILE_NETWORK_OPEN_INFORMATION) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetAttachedDevice(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> *mut super::super::Foundation:: DEVICE_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetBaseFileSystemDeviceObject(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> *mut super::super::Foundation:: DEVICE_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetDeviceAttachmentBaseRef(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> *mut super::super::Foundation:: DEVICE_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetDeviceToVerify(thread : super::super::Foundation:: PETHREAD) -> *mut super::super::Foundation:: DEVICE_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetDiskDeviceObject(filesystemdeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, diskdeviceobject : *mut *mut super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Ioctl", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Ioctl\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetFsTrackOffsetState(irp : *const super::super::Foundation:: IRP, retfstrackoffsetblob : *mut *mut super::super::super::Win32::System::Ioctl:: IO_IRP_EXT_TRACK_OFFSET_HEADER, rettrackedoffset : *mut i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetLowerDeviceObject(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> *mut super::super::Foundation:: DEVICE_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetOplockKeyContext(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> *mut OPLOCK_KEY_ECP_CONTEXT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetOplockKeyContextEx(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> *mut OPLOCK_KEY_CONTEXT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetRequestorProcess(irp : *const super::super::Foundation:: IRP) -> super::super::Foundation:: PEPROCESS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetRequestorProcessId(irp : *const super::super::Foundation:: IRP) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetRequestorSessionId(irp : *const super::super::Foundation:: IRP, psessionid : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoIrpHasFsTrackOffsetExtensionType(irp : *const super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoIsOperationSynchronous(irp : *const super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn IoIsSystemThread(thread : super::super::Foundation:: PETHREAD) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoIsValidNameGraftingBuffer(irp : *const super::super::Foundation:: IRP, reparsebuffer : *const REPARSE_DATA_BUFFER) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoPageRead(fileobject : *const super::super::Foundation:: FILE_OBJECT, memorydescriptorlist : *const super::super::Foundation:: MDL, startingoffset : *const i64, event : *const super::super::Foundation:: KEVENT, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoQueryFileDosDeviceName(fileobject : *const super::super::Foundation:: FILE_OBJECT, objectnameinformation : *mut *mut super::super::Foundation:: OBJECT_NAME_INFORMATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoQueryFileInformation(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, length : u32, fileinformation : *mut ::core::ffi::c_void, returnedlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoQueryVolumeInformation(fileobject : *const super::super::Foundation:: FILE_OBJECT, fsinformationclass : FS_INFORMATION_CLASS, length : u32, fsinformation : *mut ::core::ffi::c_void, returnedlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoQueueThreadIrp(irp : *const super::super::Foundation:: IRP) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRegisterFileSystem(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRegisterFsRegistrationChange(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, drivernotificationroutine : PDRIVER_FS_NOTIFICATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRegisterFsRegistrationChangeMountAware(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, drivernotificationroutine : PDRIVER_FS_NOTIFICATION, synchronizewithmounts : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoReleaseVpbSpinLock(irql : u8) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReplaceFileObjectName(fileobject : *const super::super::Foundation:: FILE_OBJECT, newfilename : ::windows_sys::core::PCWSTR, filenamelength : u16) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRequestDeviceRemovalForReset(physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRetrievePriorityInfo(irp : *const super::super::Foundation:: IRP, fileobject : *const super::super::Foundation:: FILE_OBJECT, thread : super::super::Foundation:: PETHREAD, priorityinfo : *mut IO_PRIORITY_INFO) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetDeviceToVerify(thread : super::super::Foundation:: PETHREAD, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Ioctl", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Ioctl\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetFsTrackOffsetState(irp : *mut super::super::Foundation:: IRP, fstrackoffsetblob : *const super::super::super::Win32::System::Ioctl:: IO_IRP_EXT_TRACK_OFFSET_HEADER, trackedoffset : i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetInformation(fileobject : *const super::super::Foundation:: FILE_OBJECT, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, length : u32, fileinformation : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSynchronousPageWrite(fileobject : *const super::super::Foundation:: FILE_OBJECT, memorydescriptorlist : *const super::super::Foundation:: MDL, startingoffset : *const i64, event : *const super::super::Foundation:: KEVENT, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn IoThreadToProcess(thread : super::super::Foundation:: PETHREAD) -> super::super::Foundation:: PEPROCESS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoUnregisterFileSystem(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoUnregisterFsRegistrationChange(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, drivernotificationroutine : PDRIVER_FS_NOTIFICATION) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoVerifyVolume(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, allowrawmount : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn KeAcquireQueuedSpinLock(number : super::super::Foundation:: KSPIN_LOCK_QUEUE_NUMBER) -> u8); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeAcquireSpinLockRaiseToSynch(spinlock : *mut usize) -> u8); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn KeAttachProcess(process : super::super::Foundation:: PRKPROCESS) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeDetachProcess() -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInitializeMutant(mutant : *mut super::super::Foundation:: KMUTANT, initialowner : super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInitializeQueue(queue : *mut super::super::Foundation:: KQUEUE, count : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInsertHeadQueue(queue : *mut super::super::Foundation:: KQUEUE, entry : *mut super::super::super::Win32::System::Kernel:: LIST_ENTRY) -> i32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInsertQueue(queue : *mut super::super::Foundation:: KQUEUE, entry : *mut super::super::super::Win32::System::Kernel:: LIST_ENTRY) -> i32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeReadStateMutant(mutant : *const super::super::Foundation:: KMUTANT) -> i32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeReadStateQueue(queue : *const super::super::Foundation:: KQUEUE) -> i32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeReleaseMutant(mutant : *mut super::super::Foundation:: KMUTANT, increment : i32, abandoned : super::super::super::Win32::Foundation:: BOOLEAN, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> i32); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn KeReleaseQueuedSpinLock(number : super::super::Foundation:: KSPIN_LOCK_QUEUE_NUMBER, oldirql : u8) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeRemoveQueue(queue : *mut super::super::Foundation:: KQUEUE, waitmode : i8, timeout : *const i64) -> *mut super::super::super::Win32::System::Kernel:: LIST_ENTRY); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeRemoveQueueEx(queue : *mut super::super::Foundation:: KQUEUE, waitmode : i8, alertable : super::super::super::Win32::Foundation:: BOOLEAN, timeout : *const i64, entryarray : *mut *mut super::super::super::Win32::System::Kernel:: LIST_ENTRY, count : u32) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeRundownQueue(queue : *mut super::super::Foundation:: KQUEUE) -> *mut super::super::super::Win32::System::Kernel:: LIST_ENTRY); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn KeSetIdealProcessorThread(thread : super::super::Foundation:: PKTHREAD, processor : u8) -> u8); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeSetKernelStackSwapEnable(enable : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeStackAttachProcess(process : super::super::Foundation:: PRKPROCESS, apcstate : *mut KAPC_STATE) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn KeTryToAcquireQueuedSpinLock(number : super::super::Foundation:: KSPIN_LOCK_QUEUE_NUMBER, oldirql : *mut u8) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeUnstackDetachProcess(apcstate : *const KAPC_STATE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaFreeReturnBuffer(buffer : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("secur32.dll" "system" fn MakeSignature(phcontext : *const SecHandle, fqop : u32, pmessage : *const SecBufferDesc, messageseqno : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MapSecurityError(secstatus : ::windows_sys::core::HRESULT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn MmCanFileBeTruncated(sectionpointer : *const super::super::Foundation:: SECTION_OBJECT_POINTERS, newfilesize : *const i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmDoesFileHaveUserWritableReferences(sectionpointer : *const super::super::Foundation:: SECTION_OBJECT_POINTERS) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn MmFlushImageSection(sectionobjectpointer : *const super::super::Foundation:: SECTION_OBJECT_POINTERS, flushtype : MMFLUSH_TYPE) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn MmForceSectionClosed(sectionobjectpointer : *const super::super::Foundation:: SECTION_OBJECT_POINTERS, delayclose : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn MmForceSectionClosedEx(sectionobjectpointer : *const super::super::Foundation:: SECTION_OBJECT_POINTERS, forcecloseflags : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmGetMaximumFileSectionSize() -> u64); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn MmIsFileSectionActive(fssectionpointer : *const super::super::Foundation:: SECTION_OBJECT_POINTERS, flags : u32, sectionisactive : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmIsRecursiveIoFault() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmMdlPagesAreZero(mdl : *const super::super::Foundation:: MDL) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn MmPrefetchPages(numberoflists : u32, readlists : *const *const READ_LIST) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmSetAddressRangeModified(address : *const ::core::ffi::c_void, length : usize) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtAccessCheckAndAuditAlarm(subsystemname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, handleid : *const ::core::ffi::c_void, objecttypename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, objectname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, desiredaccess : u32, genericmapping : *const super::super::super::Win32::Security:: GENERIC_MAPPING, objectcreation : super::super::super::Win32::Foundation:: BOOLEAN, grantedaccess : *mut u32, accessstatus : *mut i32, generateonclose : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtAccessCheckByTypeAndAuditAlarm(subsystemname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, handleid : *const ::core::ffi::c_void, objecttypename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, objectname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, principalselfsid : super::super::super::Win32::Foundation:: PSID, desiredaccess : u32, audittype : super::super::super::Win32::Security:: AUDIT_EVENT_TYPE, flags : u32, objecttypelist : *const super::super::super::Win32::Security:: OBJECT_TYPE_LIST, objecttypelistlength : u32, genericmapping : *const super::super::super::Win32::Security:: GENERIC_MAPPING, objectcreation : super::super::super::Win32::Foundation:: BOOLEAN, grantedaccess : *mut u32, accessstatus : *mut i32, generateonclose : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtAccessCheckByTypeResultListAndAuditAlarm(subsystemname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, handleid : *const ::core::ffi::c_void, objecttypename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, objectname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, principalselfsid : super::super::super::Win32::Foundation:: PSID, desiredaccess : u32, audittype : super::super::super::Win32::Security:: AUDIT_EVENT_TYPE, flags : u32, objecttypelist : *const super::super::super::Win32::Security:: OBJECT_TYPE_LIST, objecttypelistlength : u32, genericmapping : *const super::super::super::Win32::Security:: GENERIC_MAPPING, objectcreation : super::super::super::Win32::Foundation:: BOOLEAN, grantedaccess : *mut u32, accessstatus : *mut i32, generateonclose : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtAccessCheckByTypeResultListAndAuditAlarmByHandle(subsystemname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, handleid : *const ::core::ffi::c_void, clienttoken : super::super::super::Win32::Foundation:: HANDLE, objecttypename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, objectname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, principalselfsid : super::super::super::Win32::Foundation:: PSID, desiredaccess : u32, audittype : super::super::super::Win32::Security:: AUDIT_EVENT_TYPE, flags : u32, objecttypelist : *const super::super::super::Win32::Security:: OBJECT_TYPE_LIST, objecttypelistlength : u32, genericmapping : *const super::super::super::Win32::Security:: GENERIC_MAPPING, objectcreation : super::super::super::Win32::Foundation:: BOOLEAN, grantedaccess : *mut u32, accessstatus : *mut i32, generateonclose : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtAdjustGroupsToken(tokenhandle : super::super::super::Win32::Foundation:: HANDLE, resettodefault : super::super::super::Win32::Foundation:: BOOLEAN, newstate : *const super::super::super::Win32::Security:: TOKEN_GROUPS, bufferlength : u32, previousstate : *mut super::super::super::Win32::Security:: TOKEN_GROUPS, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtAdjustPrivilegesToken(tokenhandle : super::super::super::Win32::Foundation:: HANDLE, disableallprivileges : super::super::super::Win32::Foundation:: BOOLEAN, newstate : *const super::super::super::Win32::Security:: TOKEN_PRIVILEGES, bufferlength : u32, previousstate : *mut super::super::super::Win32::Security:: TOKEN_PRIVILEGES, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtAllocateVirtualMemory(processhandle : super::super::super::Win32::Foundation:: HANDLE, baseaddress : *mut *mut ::core::ffi::c_void, zerobits : usize, regionsize : *mut usize, allocationtype : u32, protect : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtCancelIoFileEx(filehandle : super::super::super::Win32::Foundation:: HANDLE, iorequesttocancel : *const super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtCloseObjectAuditAlarm(subsystemname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, handleid : *const ::core::ffi::c_void, generateonclose : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`"] fn NtCreateFile(filehandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : super::super::super::Win32::Storage::FileSystem:: FILE_ACCESS_RIGHTS, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : super::super::super::Win32::Storage::FileSystem:: FILE_FLAGS_AND_ATTRIBUTES, shareaccess : super::super::super::Win32::Storage::FileSystem:: FILE_SHARE_MODE, createdisposition : NTCREATEFILE_CREATE_DISPOSITION, createoptions : NTCREATEFILE_CREATE_OPTIONS, eabuffer : *const ::core::ffi::c_void, ealength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn NtCreateSection(sectionhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, maximumsize : *const i64, sectionpageprotection : u32, allocationattributes : u32, filehandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`"] fn NtCreateSectionEx(sectionhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, maximumsize : *const i64, sectionpageprotection : u32, allocationattributes : u32, filehandle : super::super::super::Win32::Foundation:: HANDLE, extendedparameters : *mut super::super::super::Win32::System::Memory:: MEM_EXTENDED_PARAMETER, extendedparametercount : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtDeleteObjectAuditAlarm(subsystemname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, handleid : *const ::core::ffi::c_void, generateonclose : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtDuplicateToken(existingtokenhandle : super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, effectiveonly : super::super::super::Win32::Foundation:: BOOLEAN, tokentype : super::super::super::Win32::Security:: TOKEN_TYPE, newtokenhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtFilterToken(existingtokenhandle : super::super::super::Win32::Foundation:: HANDLE, flags : u32, sidstodisable : *const super::super::super::Win32::Security:: TOKEN_GROUPS, privilegestodelete : *const super::super::super::Win32::Security:: TOKEN_PRIVILEGES, restrictedsids : *const super::super::super::Win32::Security:: TOKEN_GROUPS, newtokenhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtFlushBuffersFileEx(filehandle : super::super::super::Win32::Foundation:: HANDLE, flags : u32, parameters : *const ::core::ffi::c_void, parameterssize : u32, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtFreeVirtualMemory(processhandle : super::super::super::Win32::Foundation:: HANDLE, baseaddress : *mut *mut ::core::ffi::c_void, regionsize : *mut usize, freetype : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtFsControlFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fscontrolcode : u32, inputbuffer : *const ::core::ffi::c_void, inputbufferlength : u32, outputbuffer : *mut ::core::ffi::c_void, outputbufferlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtImpersonateAnonymousToken(threadhandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtLockFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, byteoffset : *const i64, length : *const i64, key : u32, failimmediately : super::super::super::Win32::Foundation:: BOOLEAN, exclusivelock : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtOpenFile(filehandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, shareaccess : u32, openoptions : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtOpenObjectAuditAlarm(subsystemname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, handleid : *const ::core::ffi::c_void, objecttypename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, objectname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, clienttoken : super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, grantedaccess : u32, privileges : *const super::super::super::Win32::Security:: PRIVILEGE_SET, objectcreation : super::super::super::Win32::Foundation:: BOOLEAN, accessgranted : super::super::super::Win32::Foundation:: BOOLEAN, generateonclose : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtOpenProcessToken(processhandle : super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, tokenhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtOpenProcessTokenEx(processhandle : super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, handleattributes : u32, tokenhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtOpenThreadToken(threadhandle : super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, openasself : super::super::super::Win32::Foundation:: BOOLEAN, tokenhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtOpenThreadTokenEx(threadhandle : super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, openasself : super::super::super::Win32::Foundation:: BOOLEAN, handleattributes : u32, tokenhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtPrivilegeCheck(clienttoken : super::super::super::Win32::Foundation:: HANDLE, requiredprivileges : *mut super::super::super::Win32::Security:: PRIVILEGE_SET, result : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtPrivilegeObjectAuditAlarm(subsystemname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, handleid : *const ::core::ffi::c_void, clienttoken : super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, privileges : *const super::super::super::Win32::Security:: PRIVILEGE_SET, accessgranted : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtPrivilegedServiceAuditAlarm(subsystemname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, servicename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, clienttoken : super::super::super::Win32::Foundation:: HANDLE, privileges : *const super::super::super::Win32::Security:: PRIVILEGE_SET, accessgranted : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`, `\"Win32_System_WindowsProgramming\"`"] fn NtQueryDirectoryFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, returnsingleentry : super::super::super::Win32::Foundation:: BOOLEAN, filename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, restartscan : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`, `\"Win32_System_WindowsProgramming\"`"] fn NtQueryDirectoryFileEx(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, queryflags : u32, filename : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`, `\"Win32_System_WindowsProgramming\"`"] fn NtQueryInformationByName(objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`, `\"Win32_System_WindowsProgramming\"`"] fn NtQueryInformationFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtQueryInformationToken(tokenhandle : super::super::super::Win32::Foundation:: HANDLE, tokeninformationclass : super::super::super::Win32::Security:: TOKEN_INFORMATION_CLASS, tokeninformation : *mut ::core::ffi::c_void, tokeninformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtQueryQuotaInformationFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, buffer : *mut ::core::ffi::c_void, length : u32, returnsingleentry : super::super::super::Win32::Foundation:: BOOLEAN, sidlist : *const ::core::ffi::c_void, sidlistlength : u32, startsid : super::super::super::Win32::Foundation:: PSID, restartscan : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtQuerySecurityObject(handle : super::super::super::Win32::Foundation:: HANDLE, securityinformation : u32, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, length : u32, lengthneeded : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtQueryVirtualMemory(processhandle : super::super::super::Win32::Foundation:: HANDLE, baseaddress : *const ::core::ffi::c_void, memoryinformationclass : MEMORY_INFORMATION_CLASS, memoryinformation : *mut ::core::ffi::c_void, memoryinformationlength : usize, returnlength : *mut usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtQueryVolumeInformationFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fsinformation : *mut ::core::ffi::c_void, length : u32, fsinformationclass : FS_INFORMATION_CLASS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtReadFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, buffer : *mut ::core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`, `\"Win32_System_WindowsProgramming\"`"] fn NtSetInformationFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fileinformation : *const ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtSetInformationToken(tokenhandle : super::super::super::Win32::Foundation:: HANDLE, tokeninformationclass : super::super::super::Win32::Security:: TOKEN_INFORMATION_CLASS, tokeninformation : *const ::core::ffi::c_void, tokeninformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtSetInformationVirtualMemory(processhandle : super::super::super::Win32::Foundation:: HANDLE, vminformationclass : VIRTUAL_MEMORY_INFORMATION_CLASS, numberofentries : usize, virtualaddresses : *const MEMORY_RANGE_ENTRY, vminformation : *const ::core::ffi::c_void, vminformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtSetQuotaInformationFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, buffer : *const ::core::ffi::c_void, length : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NtSetSecurityObject(handle : super::super::super::Win32::Foundation:: HANDLE, securityinformation : u32, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtSetVolumeInformationFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fsinformation : *const ::core::ffi::c_void, length : u32, fsinformationclass : FS_INFORMATION_CLASS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtUnlockFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, byteoffset : *const i64, length : *const i64, key : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtWriteFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, buffer : *const ::core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ObInsertObject(object : *const ::core::ffi::c_void, passedaccessstate : *mut super::super::Foundation:: ACCESS_STATE, desiredaccess : u32, objectpointerbias : u32, newobject : *mut *mut ::core::ffi::c_void, handle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObIsKernelHandle(handle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn ObMakeTemporaryObject(object : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ObOpenObjectByPointer(object : *const ::core::ffi::c_void, handleattributes : u32, passedaccessstate : *const super::super::Foundation:: ACCESS_STATE, desiredaccess : u32, objecttype : super::super::Foundation:: POBJECT_TYPE, accessmode : i8, handle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ObOpenObjectByPointerWithTag(object : *const ::core::ffi::c_void, handleattributes : u32, passedaccessstate : *const super::super::Foundation:: ACCESS_STATE, desiredaccess : u32, objecttype : super::super::Foundation:: POBJECT_TYPE, accessmode : i8, tag : u32, handle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ObQueryNameString(object : *const ::core::ffi::c_void, objectnameinfo : *mut super::super::Foundation:: OBJECT_NAME_INFORMATION, length : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObQueryObjectAuditingByHandle(handle : super::super::super::Win32::Foundation:: HANDLE, generateonclose : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn PfxFindPrefix(prefixtable : *const PREFIX_TABLE, fullname : *const super::super::super::Win32::System::Kernel:: STRING) -> *mut PREFIX_TABLE_ENTRY); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn PfxInitialize(prefixtable : *mut PREFIX_TABLE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn PfxInsertPrefix(prefixtable : *const PREFIX_TABLE, prefix : *const super::super::super::Win32::System::Kernel:: STRING, prefixtableentry : *mut PREFIX_TABLE_ENTRY) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn PfxRemovePrefix(prefixtable : *const PREFIX_TABLE, prefixtableentry : *const PREFIX_TABLE_ENTRY) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn PoQueueShutdownWorkItem(workitem : *mut super::super::Foundation:: WORK_QUEUE_ITEM) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsAssignImpersonationToken(thread : super::super::Foundation:: PETHREAD, token : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsChargePoolQuota(process : super::super::Foundation:: PEPROCESS, pooltype : super::super::Foundation:: POOL_TYPE, amount : usize) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsChargeProcessPoolQuota(process : super::super::Foundation:: PEPROCESS, pooltype : super::super::Foundation:: POOL_TYPE, amount : usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn PsDereferenceImpersonationToken(impersonationtoken : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn PsDereferencePrimaryToken(primarytoken : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn PsDisableImpersonation(thread : super::super::Foundation:: PETHREAD, impersonationstate : *mut super::super::super::Win32::Security:: SE_IMPERSONATION_STATE) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn PsGetProcessExitTime() -> i64); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetThreadProcess(thread : super::super::Foundation:: PETHREAD) -> super::super::Foundation:: PEPROCESS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn PsImpersonateClient(thread : super::super::Foundation:: PETHREAD, token : *const ::core::ffi::c_void, copyonopen : super::super::super::Win32::Foundation:: BOOLEAN, effectiveonly : super::super::super::Win32::Foundation:: BOOLEAN, impersonationlevel : super::super::super::Win32::Security:: SECURITY_IMPERSONATION_LEVEL) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsIsDiskCountersEnabled() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsIsSystemThread(thread : super::super::Foundation:: PETHREAD) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsIsThreadTerminating(thread : super::super::Foundation:: PETHREAD) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsLookupProcessByProcessId(processid : super::super::super::Win32::Foundation:: HANDLE, process : *mut super::super::Foundation:: PEPROCESS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsLookupThreadByThreadId(threadid : super::super::super::Win32::Foundation:: HANDLE, thread : *mut super::super::Foundation:: PETHREAD) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn PsReferenceImpersonationToken(thread : super::super::Foundation:: PETHREAD, copyonopen : *mut super::super::super::Win32::Foundation:: BOOLEAN, effectiveonly : *mut super::super::super::Win32::Foundation:: BOOLEAN, impersonationlevel : *mut super::super::super::Win32::Security:: SECURITY_IMPERSONATION_LEVEL) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsReferencePrimaryToken(process : super::super::Foundation:: PEPROCESS) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn PsRestoreImpersonation(thread : super::super::Foundation:: PETHREAD, impersonationstate : *const super::super::super::Win32::Security:: SE_IMPERSONATION_STATE) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsReturnPoolQuota(process : super::super::Foundation:: PEPROCESS, pooltype : super::super::Foundation:: POOL_TYPE, amount : usize) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn PsRevertToSelf() -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsUpdateDiskCounters(process : super::super::Foundation:: PEPROCESS, bytesread : u64, byteswritten : u64, readoperationcount : u32, writeoperationcount : u32, flushoperationcount : u32) -> ()); +::windows_targets::link!("secur32.dll" "system" fn QuerySecurityContextToken(phcontext : *const SecHandle, token : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlAbsoluteToSelfRelativeSD(absolutesecuritydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, selfrelativesecuritydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, bufferlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlAddAccessAllowedAce(acl : *mut super::super::super::Win32::Security:: ACL, acerevision : u32, accessmask : u32, sid : super::super::super::Win32::Foundation:: PSID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlAddAccessAllowedAceEx(acl : *mut super::super::super::Win32::Security:: ACL, acerevision : u32, aceflags : u32, accessmask : u32, sid : super::super::super::Win32::Foundation:: PSID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlAddAce(acl : *mut super::super::super::Win32::Security:: ACL, acerevision : u32, startingaceindex : u32, acelist : *const ::core::ffi::c_void, acelistlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlAllocateAndInitializeSid(identifierauthority : *const super::super::super::Win32::Security:: SID_IDENTIFIER_AUTHORITY, subauthoritycount : u8, subauthority0 : u32, subauthority1 : u32, subauthority2 : u32, subauthority3 : u32, subauthority4 : u32, subauthority5 : u32, subauthority6 : u32, subauthority7 : u32, sid : *mut super::super::super::Win32::Foundation:: PSID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlAllocateAndInitializeSidEx(identifierauthority : *const super::super::super::Win32::Security:: SID_IDENTIFIER_AUTHORITY, subauthoritycount : u8, subauthorities : *const u32, sid : *mut super::super::super::Win32::Foundation:: PSID) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlAllocateHeap(heaphandle : *const ::core::ffi::c_void, flags : u32, size : usize) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlAppendStringToString(destination : *mut super::super::super::Win32::System::Kernel:: STRING, source : *const super::super::super::Win32::System::Kernel:: STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCompareAltitudes(altitude1 : *const super::super::super::Win32::Foundation:: UNICODE_STRING, altitude2 : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> i32); +::windows_targets::link!("ntdll.dll" "system" fn RtlCompareMemoryUlong(source : *const ::core::ffi::c_void, length : usize, pattern : u32) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCompressBuffer(compressionformatandengine : u16, uncompressedbuffer : *const u8, uncompressedbuffersize : u32, compressedbuffer : *mut u8, compressedbuffersize : u32, uncompressedchunksize : u32, finalcompressedsize : *mut u32, workspace : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCompressChunks(uncompressedbuffer : *const u8, uncompressedbuffersize : u32, compressedbuffer : *mut u8, compressedbuffersize : u32, compresseddatainfo : *mut COMPRESSED_DATA_INFO, compresseddatainfolength : u32, workspace : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlConvertSidToUnicodeString(unicodestring : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, sid : super::super::super::Win32::Foundation:: PSID, allocatedestinationstring : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCopyLuid(destinationluid : *mut super::super::super::Win32::Foundation:: LUID, sourceluid : *const super::super::super::Win32::Foundation:: LUID) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCopySid(destinationsidlength : u32, destinationsid : super::super::super::Win32::Foundation:: PSID, sourcesid : super::super::super::Win32::Foundation:: PSID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlCreateAcl(acl : *mut super::super::super::Win32::Security:: ACL, acllength : u32, aclrevision : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCreateHeap(flags : u32, heapbase : *const ::core::ffi::c_void, reservesize : usize, commitsize : usize, lock : *const ::core::ffi::c_void, parameters : *const RTL_HEAP_PARAMETERS) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCreateServiceSid(servicename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, servicesid : super::super::super::Win32::Foundation:: PSID, servicesidlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCreateSystemVolumeInformationFolder(volumerootpath : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCreateUnicodeString(destinationstring : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, sourcestring : ::windows_sys::core::PCWSTR) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCreateVirtualAccountSid(name : *const super::super::super::Win32::Foundation:: UNICODE_STRING, basesubauthority : u32, sid : super::super::super::Win32::Foundation:: PSID, sidlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCustomCPToUnicodeN(customcp : *const CPTABLEINFO, unicodestring : ::windows_sys::core::PWSTR, maxbytesinunicodestring : u32, bytesinunicodestring : *mut u32, customcpstring : ::windows_sys::core::PCSTR, bytesincustomcpstring : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDecompressBuffer(compressionformat : u16, uncompressedbuffer : *mut u8, uncompressedbuffersize : u32, compressedbuffer : *const u8, compressedbuffersize : u32, finaluncompressedsize : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDecompressBufferEx(compressionformat : u16, uncompressedbuffer : *mut u8, uncompressedbuffersize : u32, compressedbuffer : *const u8, compressedbuffersize : u32, finaluncompressedsize : *mut u32, workspace : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDecompressBufferEx2(compressionformat : u16, uncompressedbuffer : *mut u8, uncompressedbuffersize : u32, compressedbuffer : *const u8, compressedbuffersize : u32, uncompressedchunksize : u32, finaluncompressedsize : *mut u32, workspace : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDecompressChunks(uncompressedbuffer : *mut u8, uncompressedbuffersize : u32, compressedbuffer : *const u8, compressedbuffersize : u32, compressedtail : *const u8, compressedtailsize : u32, compresseddatainfo : *const COMPRESSED_DATA_INFO) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDecompressFragment(compressionformat : u16, uncompressedfragment : *mut u8, uncompressedfragmentsize : u32, compressedbuffer : *const u8, compressedbuffersize : u32, fragmentoffset : u32, finaluncompressedsize : *mut u32, workspace : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDecompressFragmentEx(compressionformat : u16, uncompressedfragment : *mut u8, uncompressedfragmentsize : u32, compressedbuffer : *const u8, compressedbuffersize : u32, fragmentoffset : u32, uncompressedchunksize : u32, finaluncompressedsize : *mut u32, workspace : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlDeleteAce(acl : *mut super::super::super::Win32::Security:: ACL, aceindex : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDescribeChunk(compressionformat : u16, compressedbuffer : *mut *mut u8, endofcompressedbufferplus1 : *const u8, chunkbuffer : *mut *mut u8, chunksize : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlDestroyHeap(heaphandle : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDowncaseUnicodeString(destinationstring : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, sourcestring : *const super::super::super::Win32::Foundation:: UNICODE_STRING, allocatedestinationstring : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDuplicateUnicodeString(flags : u32, stringin : *const super::super::super::Win32::Foundation:: UNICODE_STRING, stringout : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlEqualPrefixSid(sid1 : super::super::super::Win32::Foundation:: PSID, sid2 : super::super::super::Win32::Foundation:: PSID) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlEqualSid(sid1 : super::super::super::Win32::Foundation:: PSID, sid2 : super::super::super::Win32::Foundation:: PSID) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn RtlFindUnicodePrefix(prefixtable : *const UNICODE_PREFIX_TABLE, fullname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, caseinsensitiveindex : u32) -> *mut UNICODE_PREFIX_TABLE_ENTRY); +::windows_targets::link!("ntdll.dll" "system" fn RtlFreeHeap(heaphandle : *const ::core::ffi::c_void, flags : u32, baseaddress : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlFreeSid(sid : super::super::super::Win32::Foundation:: PSID) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlGenerate8dot3Name(name : *const super::super::super::Win32::Foundation:: UNICODE_STRING, allowextendedcharacters : super::super::super::Win32::Foundation:: BOOLEAN, context : *mut GENERATE_NAME_CONTEXT, name8dot3 : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlGetAce(acl : *const super::super::super::Win32::Security:: ACL, aceindex : u32, ace : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlGetCompressionWorkSpaceSize(compressionformatandengine : u16, compressbufferworkspacesize : *mut u32, compressfragmentworkspacesize : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlGetDaclSecurityDescriptor(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, daclpresent : *mut super::super::super::Win32::Foundation:: BOOLEAN, dacl : *mut *mut super::super::super::Win32::Security:: ACL, dacldefaulted : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlGetGroupSecurityDescriptor(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, group : *mut super::super::super::Win32::Foundation:: PSID, groupdefaulted : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlGetOwnerSecurityDescriptor(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, owner : *mut super::super::super::Win32::Foundation:: PSID, ownerdefaulted : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlGetSaclSecurityDescriptor(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, saclpresent : *mut super::super::super::Win32::Foundation:: BOOLEAN, sacl : *mut *mut super::super::super::Win32::Security:: ACL, sacldefaulted : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlIdentifierAuthoritySid(sid : super::super::super::Win32::Foundation:: PSID) -> *mut super::super::super::Win32::Security:: SID_IDENTIFIER_AUTHORITY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIdnToAscii(flags : u32, sourcestring : ::windows_sys::core::PCWSTR, sourcestringlength : i32, destinationstring : ::windows_sys::core::PWSTR, destinationstringlength : *mut i32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIdnToNameprepUnicode(flags : u32, sourcestring : ::windows_sys::core::PCWSTR, sourcestringlength : i32, destinationstring : ::windows_sys::core::PWSTR, destinationstringlength : *mut i32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIdnToUnicode(flags : u32, sourcestring : ::windows_sys::core::PCWSTR, sourcestringlength : i32, destinationstring : ::windows_sys::core::PWSTR, destinationstringlength : *mut i32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlInitCodePageTable(tablebase : *const u16, codepagetable : *mut CPTABLEINFO) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlInitUnicodeStringEx(destinationstring : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, sourcestring : ::windows_sys::core::PCWSTR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlInitializeSid(sid : super::super::super::Win32::Foundation:: PSID, identifierauthority : *const super::super::super::Win32::Security:: SID_IDENTIFIER_AUTHORITY, subauthoritycount : u8) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlInitializeSidEx(sid : super::super::super::Win32::Foundation:: PSID, identifierauthority : *const super::super::super::Win32::Security:: SID_IDENTIFIER_AUTHORITY, subauthoritycount : u8, ...) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn RtlInitializeUnicodePrefix(prefixtable : *mut UNICODE_PREFIX_TABLE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn RtlInsertUnicodePrefix(prefixtable : *const UNICODE_PREFIX_TABLE, prefix : *const super::super::super::Win32::Foundation:: UNICODE_STRING, prefixtableentry : *mut UNICODE_PREFIX_TABLE_ENTRY) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsCloudFilesPlaceholder(fileattributes : u32, reparsetag : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsNonEmptyDirectoryReparsePointAllowed(reparsetag : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsNormalizedString(normform : u32, sourcestring : ::windows_sys::core::PCWSTR, sourcestringlength : i32, normalized : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsPartialPlaceholder(fileattributes : u32, reparsetag : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsPartialPlaceholderFileHandle(filehandle : super::super::super::Win32::Foundation:: HANDLE, ispartialplaceholder : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] fn RtlIsPartialPlaceholderFileInfo(infobuffer : *const ::core::ffi::c_void, infoclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, ispartialplaceholder : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlIsSandboxedToken(context : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT, previousmode : i8) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsValidOemCharacter(char : ::windows_sys::core::PWSTR) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntdll.dll" "system" fn RtlLengthRequiredSid(subauthoritycount : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlLengthSid(sid : super::super::super::Win32::Foundation:: PSID) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlMultiByteToUnicodeN(unicodestring : ::windows_sys::core::PWSTR, maxbytesinunicodestring : u32, bytesinunicodestring : *mut u32, multibytestring : ::windows_sys::core::PCSTR, bytesinmultibytestring : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlMultiByteToUnicodeSize(bytesinunicodestring : *mut u32, multibytestring : ::windows_sys::core::PCSTR, bytesinmultibytestring : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn RtlNextUnicodePrefix(prefixtable : *const UNICODE_PREFIX_TABLE, restart : super::super::super::Win32::Foundation:: BOOLEAN) -> *mut UNICODE_PREFIX_TABLE_ENTRY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlNormalizeString(normform : u32, sourcestring : ::windows_sys::core::PCWSTR, sourcestringlength : i32, destinationstring : ::windows_sys::core::PWSTR, destinationstringlength : *mut i32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlNtStatusToDosErrorNoTeb(status : super::super::super::Win32::Foundation:: NTSTATUS) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlOemStringToCountedUnicodeString(destinationstring : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, sourcestring : *const super::super::super::Win32::System::Kernel:: STRING, allocatedestinationstring : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlOemStringToUnicodeString(destinationstring : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, sourcestring : *const super::super::super::Win32::System::Kernel:: STRING, allocatedestinationstring : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlOemToUnicodeN(unicodestring : ::windows_sys::core::PWSTR, maxbytesinunicodestring : u32, bytesinunicodestring : *mut u32, oemstring : ::windows_sys::core::PCSTR, bytesinoemstring : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlPrefixString(string1 : *const super::super::super::Win32::System::Kernel:: STRING, string2 : *const super::super::super::Win32::System::Kernel:: STRING, caseinsensitive : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlQueryPackageIdentity(tokenobject : *const ::core::ffi::c_void, packagefullname : ::windows_sys::core::PWSTR, packagesize : *mut usize, appid : ::windows_sys::core::PWSTR, appidsize : *mut usize, packaged : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlQueryPackageIdentityEx(tokenobject : *const ::core::ffi::c_void, packagefullname : ::windows_sys::core::PWSTR, packagesize : *mut usize, appid : ::windows_sys::core::PWSTR, appidsize : *mut usize, dynamicid : *mut ::windows_sys::core::GUID, flags : *mut u64) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlQueryProcessPlaceholderCompatibilityMode() -> u8); +::windows_targets::link!("ntdll.dll" "system" fn RtlQueryThreadPlaceholderCompatibilityMode() -> u8); +::windows_targets::link!("ntdll.dll" "system" fn RtlRandom(seed : *mut u32) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlRandomEx(seed : *mut u32) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn RtlRemoveUnicodePrefix(prefixtable : *const UNICODE_PREFIX_TABLE, prefixtableentry : *const UNICODE_PREFIX_TABLE_ENTRY) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlReplaceSidInSd(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, oldsid : super::super::super::Win32::Foundation:: PSID, newsid : super::super::super::Win32::Foundation:: PSID, numchanges : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlReserveChunk(compressionformat : u16, compressedbuffer : *mut *mut u8, endofcompressedbufferplus1 : *const u8, chunkbuffer : *mut *mut u8, chunksize : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlSecondsSince1970ToTime(elapsedseconds : u32, time : *mut i64) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlSecondsSince1980ToTime(elapsedseconds : u32, time : *mut i64) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlSelfRelativeToAbsoluteSD(selfrelativesecuritydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, absolutesecuritydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, absolutesecuritydescriptorsize : *mut u32, dacl : *mut super::super::super::Win32::Security:: ACL, daclsize : *mut u32, sacl : *mut super::super::super::Win32::Security:: ACL, saclsize : *mut u32, owner : super::super::super::Win32::Foundation:: PSID, ownersize : *mut u32, primarygroup : super::super::super::Win32::Foundation:: PSID, primarygroupsize : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlSetGroupSecurityDescriptor(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, group : super::super::super::Win32::Foundation:: PSID, groupdefaulted : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlSetOwnerSecurityDescriptor(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, owner : super::super::super::Win32::Foundation:: PSID, ownerdefaulted : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlSetProcessPlaceholderCompatibilityMode(mode : u8) -> u8); +::windows_targets::link!("ntdll.dll" "system" fn RtlSetThreadPlaceholderCompatibilityMode(mode : u8) -> u8); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlSubAuthorityCountSid(sid : super::super::super::Win32::Foundation:: PSID) -> *mut u8); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlSubAuthoritySid(sid : super::super::super::Win32::Foundation:: PSID, subauthority : u32) -> *mut u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlTimeToSecondsSince1980(time : *const i64, elapsedseconds : *mut u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlUnicodeStringToCountedOemString(destinationstring : *mut super::super::super::Win32::System::Kernel:: STRING, sourcestring : *const super::super::super::Win32::Foundation:: UNICODE_STRING, allocatedestinationstring : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlUnicodeToCustomCPN(customcp : *const CPTABLEINFO, customcpstring : ::windows_sys::core::PSTR, maxbytesincustomcpstring : u32, bytesincustomcpstring : *mut u32, unicodestring : ::windows_sys::core::PCWSTR, bytesinunicodestring : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlUnicodeToMultiByteN(multibytestring : ::windows_sys::core::PSTR, maxbytesinmultibytestring : u32, bytesinmultibytestring : *mut u32, unicodestring : *const u16, bytesinunicodestring : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlUnicodeToOemN(oemstring : ::windows_sys::core::PSTR, maxbytesinoemstring : u32, bytesinoemstring : *mut u32, unicodestring : *const u16, bytesinunicodestring : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlUpcaseUnicodeStringToCountedOemString(destinationstring : *mut super::super::super::Win32::System::Kernel:: STRING, sourcestring : *const super::super::super::Win32::Foundation:: UNICODE_STRING, allocatedestinationstring : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlUpcaseUnicodeStringToOemString(destinationstring : *mut super::super::super::Win32::System::Kernel:: STRING, sourcestring : *const super::super::super::Win32::Foundation:: UNICODE_STRING, allocatedestinationstring : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlUpcaseUnicodeToCustomCPN(customcp : *const CPTABLEINFO, customcpstring : ::windows_sys::core::PSTR, maxbytesincustomcpstring : u32, bytesincustomcpstring : *mut u32, unicodestring : ::windows_sys::core::PCWSTR, bytesinunicodestring : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlUpcaseUnicodeToMultiByteN(multibytestring : ::windows_sys::core::PSTR, maxbytesinmultibytestring : u32, bytesinmultibytestring : *mut u32, unicodestring : *const u16, bytesinunicodestring : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlUpcaseUnicodeToOemN(oemstring : ::windows_sys::core::PSTR, maxbytesinoemstring : u32, bytesinoemstring : *mut u32, unicodestring : *const u16, bytesinunicodestring : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlValidSid(sid : super::super::super::Win32::Foundation:: PSID) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlValidateUnicodeString(flags : u32, string : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlxOemStringToUnicodeSize(oemstring : *const super::super::super::Win32::System::Kernel:: STRING) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlxUnicodeStringToOemSize(unicodestring : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAccessCheckFromState(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, primarytokeninformation : *const super::super::super::Win32::Security:: TOKEN_ACCESS_INFORMATION, clienttokeninformation : *const super::super::super::Win32::Security:: TOKEN_ACCESS_INFORMATION, desiredaccess : u32, previouslygrantedaccess : u32, privileges : *mut *mut super::super::super::Win32::Security:: PRIVILEGE_SET, genericmapping : *const super::super::super::Win32::Security:: GENERIC_MAPPING, accessmode : i8, grantedaccess : *mut u32, accessstatus : *mut i32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAccessCheckFromStateEx(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, primarytoken : *const ::core::ffi::c_void, clienttoken : *const ::core::ffi::c_void, desiredaccess : u32, previouslygrantedaccess : u32, privileges : *mut *mut super::super::super::Win32::Security:: PRIVILEGE_SET, genericmapping : *const super::super::super::Win32::Security:: GENERIC_MAPPING, accessmode : i8, grantedaccess : *mut u32, accessstatus : *mut i32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAdjustAccessStateForAccessConstraints(objecttype : *const ::core::ffi::c_void, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, accessstate : *mut super::super::Foundation:: ACCESS_STATE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAdjustAccessStateForTrustLabel(objecttype : *const ::core::ffi::c_void, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, accessstate : *mut super::super::Foundation:: ACCESS_STATE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAdjustObjectSecurity(objectname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, originaldescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, proposeddescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, subjectsecuritycontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT, adjusteddescriptor : *mut super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, applyadjusteddescriptor : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAppendPrivileges(accessstate : *mut super::super::Foundation:: ACCESS_STATE, privileges : *const super::super::super::Win32::Security:: PRIVILEGE_SET) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeAuditFipsCryptoSelftests(bsuccess : super::super::super::Win32::Foundation:: BOOLEAN, selftestcode : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeAuditHardLinkCreation(filename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, linkname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, bsuccess : super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeAuditHardLinkCreationWithTransaction(filename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, linkname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, bsuccess : super::super::super::Win32::Foundation:: BOOLEAN, transactionid : *const ::windows_sys::core::GUID) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn SeAuditTransactionStateChange(transactionid : *const ::windows_sys::core::GUID, resourcemanagerid : *const ::windows_sys::core::GUID, newtransactionstate : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAuditingAnyFileEventsWithContext(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, subjectsecuritycontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAuditingAnyFileEventsWithContextEx(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, subjectsecuritycontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT, stagingenabled : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAuditingFileEvents(accessgranted : super::super::super::Win32::Foundation:: BOOLEAN, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAuditingFileEventsWithContext(accessgranted : super::super::super::Win32::Foundation:: BOOLEAN, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, subjectsecuritycontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAuditingFileEventsWithContextEx(accessgranted : super::super::super::Win32::Foundation:: BOOLEAN, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, subjectsecuritycontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT, stagingenabled : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAuditingFileOrGlobalEvents(accessgranted : super::super::super::Win32::Foundation:: BOOLEAN, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, subjectsecuritycontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAuditingHardLinkEvents(accessgranted : super::super::super::Win32::Foundation:: BOOLEAN, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAuditingHardLinkEventsWithContext(accessgranted : super::super::super::Win32::Foundation:: BOOLEAN, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, subjectsecuritycontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Security\"`"] fn SeCaptureSubjectContextEx(thread : super::super::Foundation:: PETHREAD, process : super::super::Foundation:: PEPROCESS, subjectcontext : *mut super::super::Foundation:: SECURITY_SUBJECT_CONTEXT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeCheckForCriticalAceRemoval(currentdescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, newdescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, subjectsecuritycontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT, aceremoved : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeCreateClientSecurity(clientthread : super::super::Foundation:: PETHREAD, clientsecurityqos : *const super::super::super::Win32::Security:: SECURITY_QUALITY_OF_SERVICE, remotesession : super::super::super::Win32::Foundation:: BOOLEAN, clientcontext : *mut SECURITY_CLIENT_CONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeCreateClientSecurityFromSubjectContext(subjectcontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT, clientsecurityqos : *const super::super::super::Win32::Security:: SECURITY_QUALITY_OF_SERVICE, serverisremote : super::super::super::Win32::Foundation:: BOOLEAN, clientcontext : *mut SECURITY_CLIENT_CONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeDeleteClientSecurity(clientcontext : *mut SECURITY_CLIENT_CONTEXT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeDeleteObjectAuditAlarm(object : *const ::core::ffi::c_void, handle : super::super::super::Win32::Foundation:: HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeDeleteObjectAuditAlarmWithTransaction(object : *const ::core::ffi::c_void, handle : super::super::super::Win32::Foundation:: HANDLE, transactionid : *const ::windows_sys::core::GUID) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeExamineSacl(sacl : *const super::super::super::Win32::Security:: ACL, resourcesacl : *const super::super::super::Win32::Security:: ACL, token : *const ::core::ffi::c_void, desiredaccess : u32, accessgranted : super::super::super::Win32::Foundation:: BOOLEAN, generateaudit : *mut super::super::super::Win32::Foundation:: BOOLEAN, generatealarm : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeFilterToken(existingtoken : *const ::core::ffi::c_void, flags : u32, sidstodisable : *const super::super::super::Win32::Security:: TOKEN_GROUPS, privilegestodelete : *const super::super::super::Win32::Security:: TOKEN_PRIVILEGES, restrictedsids : *const super::super::super::Win32::Security:: TOKEN_GROUPS, filteredtoken : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeFreePrivileges(privileges : *const super::super::super::Win32::Security:: PRIVILEGE_SET) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeImpersonateClient(clientcontext : *const SECURITY_CLIENT_CONTEXT, serverthread : super::super::Foundation:: PETHREAD) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeImpersonateClientEx(clientcontext : *const SECURITY_CLIENT_CONTEXT, serverthread : super::super::Foundation:: PETHREAD) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn SeLocateProcessImageName(process : super::super::Foundation:: PEPROCESS, pimagefilename : *mut *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeMarkLogonSessionForTerminationNotification(logonid : *const super::super::super::Win32::Foundation:: LUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn SeMarkLogonSessionForTerminationNotificationEx(logonid : *const super::super::super::Win32::Foundation:: LUID, pserversilo : super::super::Foundation:: PESILO) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeOpenObjectAuditAlarm(objecttypename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, object : *const ::core::ffi::c_void, absoluteobjectname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, accessstate : *const super::super::Foundation:: ACCESS_STATE, objectcreated : super::super::super::Win32::Foundation:: BOOLEAN, accessgranted : super::super::super::Win32::Foundation:: BOOLEAN, accessmode : i8, generateonclose : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeOpenObjectAuditAlarmWithTransaction(objecttypename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, object : *const ::core::ffi::c_void, absoluteobjectname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, accessstate : *const super::super::Foundation:: ACCESS_STATE, objectcreated : super::super::super::Win32::Foundation:: BOOLEAN, accessgranted : super::super::super::Win32::Foundation:: BOOLEAN, accessmode : i8, transactionid : *const ::windows_sys::core::GUID, generateonclose : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeOpenObjectForDeleteAuditAlarm(objecttypename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, object : *const ::core::ffi::c_void, absoluteobjectname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, accessstate : *const super::super::Foundation:: ACCESS_STATE, objectcreated : super::super::super::Win32::Foundation:: BOOLEAN, accessgranted : super::super::super::Win32::Foundation:: BOOLEAN, accessmode : i8, generateonclose : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeOpenObjectForDeleteAuditAlarmWithTransaction(objecttypename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, object : *const ::core::ffi::c_void, absoluteobjectname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, accessstate : *const super::super::Foundation:: ACCESS_STATE, objectcreated : super::super::super::Win32::Foundation:: BOOLEAN, accessgranted : super::super::super::Win32::Foundation:: BOOLEAN, accessmode : i8, transactionid : *const ::windows_sys::core::GUID, generateonclose : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SePrivilegeCheck(requiredprivileges : *mut super::super::super::Win32::Security:: PRIVILEGE_SET, subjectsecuritycontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT, accessmode : i8) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeQueryAuthenticationIdToken(token : *const ::core::ffi::c_void, authenticationid : *mut super::super::super::Win32::Foundation:: LUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeQueryInformationToken(token : *const ::core::ffi::c_void, tokeninformationclass : super::super::super::Win32::Security:: TOKEN_INFORMATION_CLASS, tokeninformation : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeQuerySecurityDescriptorInfo(securityinformation : *const u32, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, length : *mut u32, objectssecuritydescriptor : *mut super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn SeQueryServerSiloToken(token : *const ::core::ffi::c_void, pserversilo : *mut super::super::Foundation:: PESILO) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeQuerySessionIdToken(token : *const ::core::ffi::c_void, sessionid : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeQuerySessionIdTokenEx(token : *const ::core::ffi::c_void, sessionid : *mut u32, isservicesession : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeRegisterLogonSessionTerminatedRoutine(callbackroutine : PSE_LOGON_SESSION_TERMINATED_ROUTINE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeRegisterLogonSessionTerminatedRoutineEx(callbackroutine : PSE_LOGON_SESSION_TERMINATED_ROUTINE_EX, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] fn SeReportSecurityEventWithSubCategory(flags : u32, sourcename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, usersid : super::super::super::Win32::Foundation:: PSID, auditparameters : *const super::super::super::Win32::Security::Authentication::Identity:: SE_ADT_PARAMETER_ARRAY, auditsubcategoryid : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeSetAccessStateGenericMapping(accessstate : *mut super::super::Foundation:: ACCESS_STATE, genericmapping : *const super::super::super::Win32::Security:: GENERIC_MAPPING) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeSetSecurityDescriptorInfo(object : *const ::core::ffi::c_void, securityinformation : *const u32, modificationdescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, objectssecuritydescriptor : *mut super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, pooltype : super::super::Foundation:: POOL_TYPE, genericmapping : *const super::super::super::Win32::Security:: GENERIC_MAPPING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeSetSecurityDescriptorInfoEx(object : *const ::core::ffi::c_void, securityinformation : *const u32, modificationdescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, objectssecuritydescriptor : *mut super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, autoinheritflags : u32, pooltype : super::super::Foundation:: POOL_TYPE, genericmapping : *const super::super::super::Win32::Security:: GENERIC_MAPPING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeShouldCheckForAccessRightsFromParent(objecttype : *const ::core::ffi::c_void, childdescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, accessstate : *const super::super::Foundation:: ACCESS_STATE) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeTokenFromAccessInformation(accessinformation : *const super::super::super::Win32::Security:: TOKEN_ACCESS_INFORMATION, token : *mut ::core::ffi::c_void, length : u32, requiredlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeTokenIsAdmin(token : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeTokenIsRestricted(token : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeTokenIsWriteRestricted(token : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn SeTokenType(token : *const ::core::ffi::c_void) -> super::super::super::Win32::Security:: TOKEN_TYPE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeUnregisterLogonSessionTerminatedRoutine(callbackroutine : PSE_LOGON_SESSION_TERMINATED_ROUTINE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeUnregisterLogonSessionTerminatedRoutineEx(callbackroutine : PSE_LOGON_SESSION_TERMINATED_ROUTINE_EX, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SecLookupAccountName(name : *const super::super::super::Win32::Foundation:: UNICODE_STRING, sidsize : *mut u32, sid : super::super::super::Win32::Foundation:: PSID, nameuse : *mut super::super::super::Win32::Security:: SID_NAME_USE, domainsize : *mut u32, referenceddomain : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SecLookupAccountSid(sid : super::super::super::Win32::Foundation:: PSID, namesize : *mut u32, namebuffer : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, domainsize : *mut u32, domainbuffer : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, nameuse : *mut super::super::super::Win32::Security:: SID_NAME_USE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SecLookupWellKnownSid(sidtype : super::super::super::Win32::Security:: WELL_KNOWN_SID_TYPE, sid : super::super::super::Win32::Foundation:: PSID, sidbuffersize : u32, sidsize : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SecMakeSPN(serviceclass : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, servicename : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, instancename : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, instanceport : u16, referrer : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, spn : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, length : *mut u32, allocate : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SecMakeSPNEx(serviceclass : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, servicename : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, instancename : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, instanceport : u16, referrer : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, targetinfo : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, spn : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, length : *mut u32, allocate : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SecMakeSPNEx2(serviceclass : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, servicename : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, instancename : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, instanceport : u16, referrer : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, intargetinfo : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, spn : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, totalsize : *mut u32, allocate : super::super::super::Win32::Foundation:: BOOLEAN, istargetinfomarshaled : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("secur32.dll" "system" fn SetContextAttributesW(phcontext : *const SecHandle, ulattribute : u32, pbuffer : *const ::core::ffi::c_void, cbbuffer : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn SspiAcceptSecurityContextAsync(asynccontext : *mut super::super::Foundation:: SspiAsyncContext, phcredential : *const SecHandle, phcontext : *const SecHandle, pinput : *const SecBufferDesc, fcontextreq : u32, targetdatarep : u32, phnewcontext : *const SecHandle, poutput : *const SecBufferDesc, pfcontextattr : *const u32, ptsexpiry : *const i64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Security_Authentication_Identity"))] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] fn SspiAcquireCredentialsHandleAsyncA(asynccontext : *mut super::super::Foundation:: SspiAsyncContext, pszprincipal : ::windows_sys::core::PCSTR, pszpackage : ::windows_sys::core::PCSTR, fcredentialuse : u32, pvlogonid : *const ::core::ffi::c_void, pauthdata : *const ::core::ffi::c_void, pgetkeyfn : super::super::super::Win32::Security::Authentication::Identity:: SEC_GET_KEY_FN, pvgetkeyargument : *const ::core::ffi::c_void, phcredential : *const SecHandle, ptsexpiry : *const i64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] fn SspiAcquireCredentialsHandleAsyncW(asynccontext : *mut super::super::Foundation:: SspiAsyncContext, pszprincipal : *const super::super::super::Win32::Foundation:: UNICODE_STRING, pszpackage : *const super::super::super::Win32::Foundation:: UNICODE_STRING, fcredentialuse : u32, pvlogonid : *const ::core::ffi::c_void, pauthdata : *const ::core::ffi::c_void, pgetkeyfn : super::super::super::Win32::Security::Authentication::Identity:: SEC_GET_KEY_FN, pvgetkeyargument : *const ::core::ffi::c_void, phcredential : *const SecHandle, ptsexpiry : *const i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn SspiCreateAsyncContext() -> *mut super::super::Foundation:: SspiAsyncContext); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn SspiDeleteSecurityContextAsync(asynccontext : *mut super::super::Foundation:: SspiAsyncContext, phcontext : *const SecHandle) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn SspiFreeAsyncContext(handle : *const super::super::Foundation:: SspiAsyncContext) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn SspiFreeCredentialsHandleAsync(asynccontext : *mut super::super::Foundation:: SspiAsyncContext, phcredential : *const SecHandle) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn SspiGetAsyncCallStatus(handle : *const super::super::Foundation:: SspiAsyncContext) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn SspiInitializeSecurityContextAsyncA(asynccontext : *mut super::super::Foundation:: SspiAsyncContext, phcredential : *const SecHandle, phcontext : *const SecHandle, psztargetname : ::windows_sys::core::PCSTR, fcontextreq : u32, reserved1 : u32, targetdatarep : u32, pinput : *const SecBufferDesc, reserved2 : u32, phnewcontext : *const SecHandle, poutput : *const SecBufferDesc, pfcontextattr : *const u32, ptsexpiry : *const i64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn SspiInitializeSecurityContextAsyncW(asynccontext : *mut super::super::Foundation:: SspiAsyncContext, phcredential : *const SecHandle, phcontext : *const SecHandle, psztargetname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, fcontextreq : u32, reserved1 : u32, targetdatarep : u32, pinput : *const SecBufferDesc, reserved2 : u32, phnewcontext : *const SecHandle, poutput : *const SecBufferDesc, pfcontextattr : *const u32, ptsexpiry : *const i64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn SspiReinitAsyncContext(handle : *mut super::super::Foundation:: SspiAsyncContext) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ksecdd.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn SspiSetAsyncNotifyCallback(context : *const super::super::Foundation:: SspiAsyncContext, callback : SspiAsyncNotifyCallback, callbackdata : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn VerifySignature(phcontext : *const SecHandle, pmessage : *const SecBufferDesc, messageseqno : u32, pfqop : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwAllocateVirtualMemory(processhandle : super::super::super::Win32::Foundation:: HANDLE, baseaddress : *mut *mut ::core::ffi::c_void, zerobits : usize, regionsize : *mut usize, allocationtype : u32, protect : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`"] fn ZwAllocateVirtualMemoryEx(processhandle : super::super::super::Win32::Foundation:: HANDLE, baseaddress : *mut *mut ::core::ffi::c_void, regionsize : *mut usize, allocationtype : u32, pageprotection : u32, extendedparameters : *mut super::super::super::Win32::System::Memory:: MEM_EXTENDED_PARAMETER, extendedparametercount : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ZwCreateEvent(eventhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, eventtype : super::super::super::Win32::System::Kernel:: EVENT_TYPE, initialstate : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwDeleteFile(objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwDuplicateObject(sourceprocesshandle : super::super::super::Win32::Foundation:: HANDLE, sourcehandle : super::super::super::Win32::Foundation:: HANDLE, targetprocesshandle : super::super::super::Win32::Foundation:: HANDLE, targethandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, handleattributes : u32, options : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ZwDuplicateToken(existingtokenhandle : super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, effectiveonly : super::super::super::Win32::Foundation:: BOOLEAN, tokentype : super::super::super::Win32::Security:: TOKEN_TYPE, newtokenhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwFlushBuffersFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwFlushBuffersFileEx(filehandle : super::super::super::Win32::Foundation:: HANDLE, flags : u32, parameters : *const ::core::ffi::c_void, parameterssize : u32, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwFlushVirtualMemory(processhandle : super::super::super::Win32::Foundation:: HANDLE, baseaddress : *mut *mut ::core::ffi::c_void, regionsize : *mut usize, iostatus : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwFreeVirtualMemory(processhandle : super::super::super::Win32::Foundation:: HANDLE, baseaddress : *mut *mut ::core::ffi::c_void, regionsize : *mut usize, freetype : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwFsControlFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fscontrolcode : u32, inputbuffer : *const ::core::ffi::c_void, inputbufferlength : u32, outputbuffer : *mut ::core::ffi::c_void, outputbufferlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwLockFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, byteoffset : *const i64, length : *const i64, key : u32, failimmediately : super::super::super::Win32::Foundation:: BOOLEAN, exclusivelock : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwNotifyChangeKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, completionfilter : u32, watchtree : super::super::super::Win32::Foundation:: BOOLEAN, buffer : *mut ::core::ffi::c_void, buffersize : u32, asynchronous : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwOpenDirectoryObject(directoryhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwOpenProcessTokenEx(processhandle : super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, handleattributes : u32, tokenhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwOpenThreadTokenEx(threadhandle : super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, openasself : super::super::super::Win32::Foundation:: BOOLEAN, handleattributes : u32, tokenhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`, `\"Win32_System_WindowsProgramming\"`"] fn ZwQueryDirectoryFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, returnsingleentry : super::super::super::Win32::Foundation:: BOOLEAN, filename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, restartscan : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`, `\"Win32_System_WindowsProgramming\"`"] fn ZwQueryDirectoryFileEx(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, queryflags : u32, filename : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwQueryEaFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, buffer : *mut ::core::ffi::c_void, length : u32, returnsingleentry : super::super::super::Win32::Foundation:: BOOLEAN, ealist : *const ::core::ffi::c_void, ealistlength : u32, eaindex : *const u32, restartscan : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwQueryFullAttributesFile(objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, fileinformation : *mut FILE_NETWORK_OPEN_INFORMATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ZwQueryInformationToken(tokenhandle : super::super::super::Win32::Foundation:: HANDLE, tokeninformationclass : super::super::super::Win32::Security:: TOKEN_INFORMATION_CLASS, tokeninformation : *mut ::core::ffi::c_void, tokeninformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwQueryObject(handle : super::super::super::Win32::Foundation:: HANDLE, objectinformationclass : super::super::Foundation:: OBJECT_INFORMATION_CLASS, objectinformation : *mut ::core::ffi::c_void, objectinformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwQueryQuotaInformationFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, buffer : *mut ::core::ffi::c_void, length : u32, returnsingleentry : super::super::super::Win32::Foundation:: BOOLEAN, sidlist : *const ::core::ffi::c_void, sidlistlength : u32, startsid : super::super::super::Win32::Foundation:: PSID, restartscan : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ZwQuerySecurityObject(handle : super::super::super::Win32::Foundation:: HANDLE, securityinformation : u32, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, length : u32, lengthneeded : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwQueryVirtualMemory(processhandle : super::super::super::Win32::Foundation:: HANDLE, baseaddress : *const ::core::ffi::c_void, memoryinformationclass : MEMORY_INFORMATION_CLASS, memoryinformation : *mut ::core::ffi::c_void, memoryinformationlength : usize, returnlength : *mut usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwQueryVolumeInformationFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fsinformation : *mut ::core::ffi::c_void, length : u32, fsinformationclass : FS_INFORMATION_CLASS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwSetEaFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, buffer : *const ::core::ffi::c_void, length : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwSetEvent(eventhandle : super::super::super::Win32::Foundation:: HANDLE, previousstate : *mut i32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ZwSetInformationToken(tokenhandle : super::super::super::Win32::Foundation:: HANDLE, tokeninformationclass : super::super::super::Win32::Security:: TOKEN_INFORMATION_CLASS, tokeninformation : *const ::core::ffi::c_void, tokeninformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwSetInformationVirtualMemory(processhandle : super::super::super::Win32::Foundation:: HANDLE, vminformationclass : VIRTUAL_MEMORY_INFORMATION_CLASS, numberofentries : usize, virtualaddresses : *const MEMORY_RANGE_ENTRY, vminformation : *const ::core::ffi::c_void, vminformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwSetQuotaInformationFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, buffer : *const ::core::ffi::c_void, length : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ZwSetSecurityObject(handle : super::super::super::Win32::Foundation:: HANDLE, securityinformation : u32, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwSetVolumeInformationFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fsinformation : *const ::core::ffi::c_void, length : u32, fsinformationclass : FS_INFORMATION_CLASS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwUnlockFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, byteoffset : *const i64, length : *const i64, key : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwWaitForSingleObject(handle : super::super::super::Win32::Foundation:: HANDLE, alertable : super::super::super::Win32::Foundation:: BOOLEAN, timeout : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +pub const ATOMIC_CREATE_ECP_IN_FLAG_BEST_EFFORT: u32 = 256u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_EOF_SPECIFIED: u32 = 4u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_FILE_ATTRIBUTES_SPECIFIED: u32 = 32u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_GEN_FLAGS_SPECIFIED: u32 = 32768u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_MARK_USN_SOURCE_INFO: u32 = 2048u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_OPERATION_MASK: u32 = 255u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_OP_FLAGS_SPECIFIED: u32 = 128u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_REPARSE_POINT_SPECIFIED: u32 = 2u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_SPARSE_SPECIFIED: u32 = 1u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_SUPPRESS_DIR_CHANGE_NOTIFY: u32 = 1024u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_SUPPRESS_FILE_ATTRIBUTE_INHERITANCE: u32 = 64u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_SUPPRESS_PARENT_TIMESTAMPS_UPDATE: u32 = 512u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_TIMESTAMPS_SPECIFIED: u32 = 16u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_VDL_SPECIFIED: u32 = 8u32; +pub const ATOMIC_CREATE_ECP_IN_FLAG_WRITE_USN_CLOSE_RECORD: u32 = 4096u32; +pub const ATOMIC_CREATE_ECP_IN_OP_FLAG_CASE_SENSITIVE_FLAGS_SPECIFIED: u32 = 1u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_EOF_SET: u32 = 4u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_FILE_ATTRIBUTES_RETURNED: u32 = 512u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_FILE_ATTRIBUTES_SET: u32 = 32u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_FILE_ATTRIBUTE_INHERITANCE_SUPPRESSED: u32 = 64u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_OPERATION_MASK: u32 = 255u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_OP_FLAGS_HONORED: u32 = 128u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_REPARSE_POINT_SET: u32 = 2u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_SPARSE_SET: u32 = 1u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_TIMESTAMPS_RETURNED: u32 = 256u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_TIMESTAMPS_SET: u32 = 16u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_USN_CLOSE_RECORD_WRITTEN: u32 = 2048u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_USN_RETURNED: u32 = 4096u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_USN_SOURCE_INFO_MARKED: u32 = 1024u32; +pub const ATOMIC_CREATE_ECP_OUT_FLAG_VDL_SET: u32 = 8u32; +pub const ATOMIC_CREATE_ECP_OUT_OP_FLAG_CASE_SENSITIVE_FLAGS_SET: u32 = 1u32; +pub const AuditAccessCheck: SE_AUDIT_OPERATION = 2i32; +pub const AuditCloseNonObject: SE_AUDIT_OPERATION = 9i32; +pub const AuditCloseObject: SE_AUDIT_OPERATION = 5i32; +pub const AuditDeleteObject: SE_AUDIT_OPERATION = 6i32; +pub const AuditHandleCreation: SE_AUDIT_OPERATION = 12i32; +pub const AuditObjectReference: SE_AUDIT_OPERATION = 11i32; +pub const AuditOpenNonObject: SE_AUDIT_OPERATION = 10i32; +pub const AuditOpenObject: SE_AUDIT_OPERATION = 3i32; +pub const AuditOpenObjectForDelete: SE_AUDIT_OPERATION = 7i32; +pub const AuditOpenObjectForDeleteWithTransaction: SE_AUDIT_OPERATION = 8i32; +pub const AuditOpenObjectWithTransaction: SE_AUDIT_OPERATION = 4i32; +pub const AuditPrivilegeObject: SE_AUDIT_OPERATION = 0i32; +pub const AuditPrivilegeService: SE_AUDIT_OPERATION = 1i32; +pub const CACHE_MANAGER_CALLBACKS_EX_V1: u32 = 1u32; +pub const CACHE_USE_DIRECT_ACCESS_MAPPING: u32 = 1u32; +pub const CACHE_VALID_FLAGS: u32 = 1u32; +pub const CC_ACQUIRE_DONT_WAIT: u32 = 1u32; +pub const CC_ACQUIRE_SUPPORTS_ASYNC_LAZYWRITE: u32 = 1u32; +pub const CC_AGGRESSIVE_UNMAP_BEHIND: u32 = 1u32; +pub const CC_DISABLE_DIRTY_PAGE_TRACKING: u32 = 8u32; +pub const CC_DISABLE_READ_AHEAD: u32 = 2u32; +pub const CC_DISABLE_UNMAP_BEHIND: u32 = 32u32; +pub const CC_DISABLE_WRITE_BEHIND: u32 = 4u32; +pub const CC_ENABLE_CPU_CACHE: u32 = 268435456u32; +pub const CC_ENABLE_DISK_IO_ACCOUNTING: u32 = 16u32; +pub const CC_FLUSH_AND_PURGE_GATHER_DIRTY_BITS: u32 = 2u32; +pub const CC_FLUSH_AND_PURGE_NO_PURGE: u32 = 1u32; +pub const CC_FLUSH_AND_PURGE_WRITEABLE_VIEWS_NOTSEEN: u32 = 4u32; +pub const COMPRESSION_ENGINE_MASK: u32 = 65280u32; +pub const COMPRESSION_ENGINE_MAX: u32 = 512u32; +pub const COMPRESSION_FORMAT_MASK: u32 = 255u32; +pub const COMPRESSION_FORMAT_MAX: u32 = 5u32; +pub const CREATE_REDIRECTION_FLAGS_SERVICED_FROM_LAYER: u32 = 1u32; +pub const CREATE_REDIRECTION_FLAGS_SERVICED_FROM_REGISTERED_LAYER: u32 = 4u32; +pub const CREATE_REDIRECTION_FLAGS_SERVICED_FROM_REMOTE_LAYER: u32 = 8u32; +pub const CREATE_REDIRECTION_FLAGS_SERVICED_FROM_SCRATCH: u32 = 2u32; +pub const CREATE_REDIRECTION_FLAGS_SERVICED_FROM_USER_MODE: u32 = 16u32; +pub const CSV_SET_HANDLE_PROPERTIES_ECP_CONTEXT_FLAGS_VALID_ONLY_IF_CSV_COORDINATOR: u32 = 1u32; +pub const ChangeDataControlArea: FSRTL_CHANGE_BACKING_TYPE = 0i32; +pub const ChangeImageControlArea: FSRTL_CHANGE_BACKING_TYPE = 1i32; +pub const ChangeSharedCacheMap: FSRTL_CHANGE_BACKING_TYPE = 2i32; +pub const CsvCsvFsInternalFileObject: CSV_DOWN_LEVEL_FILE_TYPE = 1i32; +pub const CsvDownLevelFileObject: CSV_DOWN_LEVEL_FILE_TYPE = 0i32; +pub const DD_MUP_DEVICE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Device\\Mup"); +pub const DEVICE_RESET_KEEP_STACK: u32 = 4u32; +pub const DEVICE_RESET_RESERVED_0: u32 = 1u32; +pub const DEVICE_RESET_RESERVED_1: u32 = 2u32; +pub const DO_BOOT_CRITICAL: u32 = 536870912u32; +pub const DO_BUFFERED_IO: u32 = 4u32; +pub const DO_BUS_ENUMERATED_DEVICE: u32 = 4096u32; +pub const DO_DAX_VOLUME: u32 = 268435456u32; +pub const DO_DEVICE_HAS_NAME: u32 = 64u32; +pub const DO_DEVICE_INITIALIZING: u32 = 128u32; +pub const DO_DEVICE_IRP_REQUIRES_EXTENSION: u32 = 134217728u32; +pub const DO_DEVICE_TO_BE_RESET: u32 = 67108864u32; +pub const DO_DIRECT_IO: u32 = 16u32; +pub const DO_DISALLOW_EXECUTE: u32 = 8388608u32; +pub const DO_EXCLUSIVE: u32 = 8u32; +pub const DO_FORCE_NEITHER_IO: u32 = 524288u32; +pub const DO_LONG_TERM_REQUESTS: u32 = 512u32; +pub const DO_LOW_PRIORITY_FILESYSTEM: u32 = 65536u32; +pub const DO_MAP_IO_BUFFER: u32 = 32u32; +pub const DO_NEVER_LAST_DEVICE: u32 = 1024u32; +pub const DO_NOT_PURGE_DIRTY_PAGES: u32 = 4u32; +pub const DO_NOT_RETRY_PURGE: u32 = 2u32; +pub const DO_POWER_INRUSH: u32 = 16384u32; +pub const DO_POWER_PAGABLE: u32 = 8192u32; +pub const DO_SHUTDOWN_REGISTERED: u32 = 2048u32; +pub const DO_SUPPORTS_PERSISTENT_ACLS: u32 = 131072u32; +pub const DO_SUPPORTS_TRANSACTIONS: u32 = 262144u32; +pub const DO_SYSTEM_BOOT_PARTITION: u32 = 256u32; +pub const DO_SYSTEM_CRITICAL_PARTITION: u32 = 4194304u32; +pub const DO_SYSTEM_SYSTEM_PARTITION: u32 = 2097152u32; +pub const DO_VERIFY_VOLUME: u32 = 2u32; +pub const DO_VOLUME_DEVICE_OBJECT: u32 = 1048576u32; +pub const DfsLinkTrackingInformation: LINK_TRACKING_INFORMATION_TYPE = 1i32; +pub const EA_NAME_NETWORK_OPEN_ECP_INTEGRITY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ECP{c584edbf-00df-4d28-00b8-8435baca8911e8}-INTEGRITY"); +pub const EA_NAME_NETWORK_OPEN_ECP_INTEGRITY_U: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECP{c584edbf-00df-4d28-00b8-8435baca8911e8}-INTEGRITY"); +pub const EA_NAME_NETWORK_OPEN_ECP_PRIVACY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ECP{c584edbf-00df-4d28-00b8-8435baca8911e8}-PRIVACY"); +pub const EA_NAME_NETWORK_OPEN_ECP_PRIVACY_U: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECP{c584edbf-00df-4d28-00b8-8435baca8911e8}-PRIVACY"); +pub const ECP_OPEN_PARAMETERS_FLAG_FAIL_ON_CASE_SENSITIVE_DIR: u32 = 16u32; +pub const ECP_OPEN_PARAMETERS_FLAG_IGNORE_DIR_CASE_SENSITIVITY: u32 = 8u32; +pub const ECP_OPEN_PARAMETERS_FLAG_OPEN_FOR_DELETE: u32 = 4u32; +pub const ECP_OPEN_PARAMETERS_FLAG_OPEN_FOR_READ: u32 = 1u32; +pub const ECP_OPEN_PARAMETERS_FLAG_OPEN_FOR_WRITE: u32 = 2u32; +pub const ECP_TYPE_CLFS_CREATE_CONTAINER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8650c9fe_0cec_8bf6_bd1e_835956541090); +pub const ECP_TYPE_IO_STOP_ON_SYMLINK_FILTER_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x940e5d56_1646_4d3c_87b6_577ec36a1466); +pub const ECP_TYPE_OPEN_REPARSE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x323eb6a8_affd_4d95_8230_863bce09d37a); +pub const EVENT_INCREMENT: u32 = 1u32; +pub const EqualTo: FSRTL_COMPARISON_RESULT = 0i32; +pub const FILE_ACTION_ADDED_STREAM: u32 = 6u32; +pub const FILE_ACTION_ID_NOT_TUNNELLED: u32 = 10u32; +pub const FILE_ACTION_MODIFIED_STREAM: u32 = 8u32; +pub const FILE_ACTION_REMOVED_BY_DELETE: u32 = 9u32; +pub const FILE_ACTION_REMOVED_STREAM: u32 = 7u32; +pub const FILE_ACTION_TUNNELLED_ID_COLLISION: u32 = 11u32; +pub const FILE_CLEANUP_FILE_DELETED: u32 = 4u32; +pub const FILE_CLEANUP_FILE_REMAINS: u32 = 2u32; +pub const FILE_CLEANUP_LINK_DELETED: u32 = 8u32; +pub const FILE_CLEANUP_POSIX_STYLE_DELETE: u32 = 32u32; +pub const FILE_CLEANUP_STREAM_DELETED: u32 = 16u32; +pub const FILE_CLEANUP_UNKNOWN: u32 = 0u32; +pub const FILE_CLEANUP_WRONG_DEVICE: u32 = 1u32; +pub const FILE_COMPLETE_IF_OPLOCKED: NTCREATEFILE_CREATE_OPTIONS = 256u32; +pub const FILE_CONTAINS_EXTENDED_CREATE_INFORMATION: NTCREATEFILE_CREATE_OPTIONS = 268435456u32; +pub const FILE_CREATE: NTCREATEFILE_CREATE_DISPOSITION = 2u32; +pub const FILE_CREATE_TREE_CONNECTION: NTCREATEFILE_CREATE_OPTIONS = 128u32; +pub const FILE_DELETE_ON_CLOSE: NTCREATEFILE_CREATE_OPTIONS = 4096u32; +pub const FILE_DIRECTORY_FILE: NTCREATEFILE_CREATE_OPTIONS = 1u32; +pub const FILE_DISALLOW_EXCLUSIVE: NTCREATEFILE_CREATE_OPTIONS = 131072u32; +pub const FILE_DISPOSITION_DELETE: FILE_DISPOSITION_INFORMATION_EX_FLAGS = 1u32; +pub const FILE_DISPOSITION_DO_NOT_DELETE: FILE_DISPOSITION_INFORMATION_EX_FLAGS = 0u32; +pub const FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK: FILE_DISPOSITION_INFORMATION_EX_FLAGS = 4u32; +pub const FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE: FILE_DISPOSITION_INFORMATION_EX_FLAGS = 16u32; +pub const FILE_DISPOSITION_ON_CLOSE: FILE_DISPOSITION_INFORMATION_EX_FLAGS = 8u32; +pub const FILE_DISPOSITION_POSIX_SEMANTICS: FILE_DISPOSITION_INFORMATION_EX_FLAGS = 2u32; +pub const FILE_EA_TYPE_ASCII: u32 = 65533u32; +pub const FILE_EA_TYPE_ASN1: u32 = 65501u32; +pub const FILE_EA_TYPE_BINARY: u32 = 65534u32; +pub const FILE_EA_TYPE_BITMAP: u32 = 65531u32; +pub const FILE_EA_TYPE_EA: u32 = 65518u32; +pub const FILE_EA_TYPE_FAMILY_IDS: u32 = 65281u32; +pub const FILE_EA_TYPE_ICON: u32 = 65529u32; +pub const FILE_EA_TYPE_METAFILE: u32 = 65530u32; +pub const FILE_EA_TYPE_MVMT: u32 = 65503u32; +pub const FILE_EA_TYPE_MVST: u32 = 65502u32; +pub const FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_VISIBLE_OUTSIDE_TX: u32 = 4u32; +pub const FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_VISIBLE_TO_TX: u32 = 2u32; +pub const FILE_ID_GLOBAL_TX_DIR_INFO_FLAG_WRITELOCKED: u32 = 1u32; +pub const FILE_LINK_FORCE_RESIZE_SOURCE_SR: u32 = 256u32; +pub const FILE_LINK_FORCE_RESIZE_SR: u32 = 384u32; +pub const FILE_LINK_FORCE_RESIZE_TARGET_SR: u32 = 128u32; +pub const FILE_LINK_IGNORE_READONLY_ATTRIBUTE: u32 = 64u32; +pub const FILE_LINK_NO_DECREASE_AVAILABLE_SPACE: u32 = 32u32; +pub const FILE_LINK_NO_INCREASE_AVAILABLE_SPACE: u32 = 16u32; +pub const FILE_LINK_POSIX_SEMANTICS: u32 = 2u32; +pub const FILE_LINK_PRESERVE_AVAILABLE_SPACE: u32 = 48u32; +pub const FILE_LINK_REPLACE_IF_EXISTS: u32 = 1u32; +pub const FILE_LINK_SUPPRESS_STORAGE_RESERVE_INHERITANCE: u32 = 8u32; +pub const FILE_NEED_EA: u32 = 128u32; +pub const FILE_NON_DIRECTORY_FILE: NTCREATEFILE_CREATE_OPTIONS = 64u32; +pub const FILE_NOTIFY_CHANGE_EA: u32 = 128u32; +pub const FILE_NOTIFY_CHANGE_NAME: u32 = 3u32; +pub const FILE_NOTIFY_CHANGE_STREAM_NAME: u32 = 512u32; +pub const FILE_NOTIFY_CHANGE_STREAM_SIZE: u32 = 1024u32; +pub const FILE_NOTIFY_CHANGE_STREAM_WRITE: u32 = 2048u32; +pub const FILE_NOTIFY_VALID_MASK: u32 = 4095u32; +pub const FILE_NO_COMPRESSION: NTCREATEFILE_CREATE_OPTIONS = 32768u32; +pub const FILE_NO_EA_KNOWLEDGE: NTCREATEFILE_CREATE_OPTIONS = 512u32; +pub const FILE_NO_INTERMEDIATE_BUFFERING: NTCREATEFILE_CREATE_OPTIONS = 8u32; +pub const FILE_OPBATCH_BREAK_UNDERWAY: u32 = 9u32; +pub const FILE_OPEN: NTCREATEFILE_CREATE_DISPOSITION = 1u32; +pub const FILE_OPEN_BY_FILE_ID: NTCREATEFILE_CREATE_OPTIONS = 8192u32; +pub const FILE_OPEN_FOR_BACKUP_INTENT: NTCREATEFILE_CREATE_OPTIONS = 16384u32; +pub const FILE_OPEN_FOR_FREE_SPACE_QUERY: NTCREATEFILE_CREATE_OPTIONS = 8388608u32; +pub const FILE_OPEN_IF: NTCREATEFILE_CREATE_DISPOSITION = 3u32; +pub const FILE_OPEN_NO_RECALL: NTCREATEFILE_CREATE_OPTIONS = 4194304u32; +pub const FILE_OPEN_REPARSE_POINT: NTCREATEFILE_CREATE_OPTIONS = 2097152u32; +pub const FILE_OPEN_REQUIRING_OPLOCK: NTCREATEFILE_CREATE_OPTIONS = 65536u32; +pub const FILE_OPLOCK_BROKEN_TO_LEVEL_2: u32 = 7u32; +pub const FILE_OPLOCK_BROKEN_TO_NONE: u32 = 8u32; +pub const FILE_OVERWRITE: NTCREATEFILE_CREATE_DISPOSITION = 4u32; +pub const FILE_OVERWRITE_IF: NTCREATEFILE_CREATE_DISPOSITION = 5u32; +pub const FILE_PIPE_ACCEPT_REMOTE_CLIENTS: u32 = 0u32; +pub const FILE_PIPE_BYTE_STREAM_MODE: u32 = 0u32; +pub const FILE_PIPE_BYTE_STREAM_TYPE: u32 = 0u32; +pub const FILE_PIPE_CLIENT_END: u32 = 0u32; +pub const FILE_PIPE_CLOSING_STATE: u32 = 4u32; +pub const FILE_PIPE_COMPLETE_OPERATION: u32 = 1u32; +pub const FILE_PIPE_COMPUTER_NAME_LENGTH: u32 = 15u32; +pub const FILE_PIPE_CONNECTED_STATE: u32 = 3u32; +pub const FILE_PIPE_DISCONNECTED_STATE: u32 = 1u32; +pub const FILE_PIPE_FULL_DUPLEX: u32 = 2u32; +pub const FILE_PIPE_INBOUND: u32 = 0u32; +pub const FILE_PIPE_LISTENING_STATE: u32 = 2u32; +pub const FILE_PIPE_MESSAGE_MODE: u32 = 1u32; +pub const FILE_PIPE_MESSAGE_TYPE: u32 = 1u32; +pub const FILE_PIPE_OUTBOUND: u32 = 1u32; +pub const FILE_PIPE_QUEUE_OPERATION: u32 = 0u32; +pub const FILE_PIPE_READ_DATA: u32 = 0u32; +pub const FILE_PIPE_REJECT_REMOTE_CLIENTS: u32 = 2u32; +pub const FILE_PIPE_SERVER_END: u32 = 1u32; +pub const FILE_PIPE_SYMLINK_FLAG_GLOBAL: u32 = 1u32; +pub const FILE_PIPE_SYMLINK_FLAG_RELATIVE: u32 = 2u32; +pub const FILE_PIPE_TYPE_VALID_MASK: u32 = 3u32; +pub const FILE_PIPE_WRITE_SPACE: u32 = 1u32; +pub const FILE_RANDOM_ACCESS: NTCREATEFILE_CREATE_OPTIONS = 2048u32; +pub const FILE_RENAME_FORCE_RESIZE_SOURCE_SR: u32 = 256u32; +pub const FILE_RENAME_FORCE_RESIZE_SR: u32 = 384u32; +pub const FILE_RENAME_FORCE_RESIZE_TARGET_SR: u32 = 128u32; +pub const FILE_RENAME_IGNORE_READONLY_ATTRIBUTE: u32 = 64u32; +pub const FILE_RENAME_NO_DECREASE_AVAILABLE_SPACE: u32 = 32u32; +pub const FILE_RENAME_NO_INCREASE_AVAILABLE_SPACE: u32 = 16u32; +pub const FILE_RENAME_POSIX_SEMANTICS: u32 = 2u32; +pub const FILE_RENAME_PRESERVE_AVAILABLE_SPACE: u32 = 48u32; +pub const FILE_RENAME_REPLACE_IF_EXISTS: u32 = 1u32; +pub const FILE_RENAME_SUPPRESS_PIN_STATE_INHERITANCE: u32 = 4u32; +pub const FILE_RENAME_SUPPRESS_STORAGE_RESERVE_INHERITANCE: u32 = 8u32; +pub const FILE_RESERVE_OPFILTER: NTCREATEFILE_CREATE_OPTIONS = 1048576u32; +pub const FILE_SEQUENTIAL_ONLY: NTCREATEFILE_CREATE_OPTIONS = 4u32; +pub const FILE_SESSION_AWARE: NTCREATEFILE_CREATE_OPTIONS = 262144u32; +pub const FILE_SUPERSEDE: NTCREATEFILE_CREATE_DISPOSITION = 0u32; +pub const FILE_SYNCHRONOUS_IO_ALERT: NTCREATEFILE_CREATE_OPTIONS = 16u32; +pub const FILE_SYNCHRONOUS_IO_NONALERT: NTCREATEFILE_CREATE_OPTIONS = 32u32; +pub const FILE_VC_CONTENT_INDEX_DISABLED: u32 = 8u32; +pub const FILE_VC_LOG_QUOTA_LIMIT: u32 = 32u32; +pub const FILE_VC_LOG_QUOTA_THRESHOLD: u32 = 16u32; +pub const FILE_VC_LOG_VOLUME_LIMIT: u32 = 128u32; +pub const FILE_VC_LOG_VOLUME_THRESHOLD: u32 = 64u32; +pub const FILE_VC_QUOTAS_INCOMPLETE: u32 = 256u32; +pub const FILE_VC_QUOTAS_REBUILDING: u32 = 512u32; +pub const FILE_VC_QUOTA_ENFORCE: u32 = 2u32; +pub const FILE_VC_QUOTA_MASK: u32 = 3u32; +pub const FILE_VC_QUOTA_NONE: u32 = 0u32; +pub const FILE_VC_QUOTA_TRACK: u32 = 1u32; +pub const FILE_VC_VALID_MASK: u32 = 1023u32; +pub const FILE_WRITE_THROUGH: NTCREATEFILE_CREATE_OPTIONS = 2u32; +pub const FLAGS_DELAY_REASONS_BITMAP_SCANNED: u32 = 2u32; +pub const FLAGS_DELAY_REASONS_LOG_FILE_FULL: u32 = 1u32; +pub const FLAGS_END_OF_FILE_INFO_EX_EXTEND_PAGING: u32 = 1u32; +pub const FLAGS_END_OF_FILE_INFO_EX_NO_EXTRA_PAGING_EXTEND: u32 = 2u32; +pub const FLAGS_END_OF_FILE_INFO_EX_TIME_CONSTRAINED: u32 = 4u32; +pub const FSCTL_LMR_GET_LINK_TRACKING_INFORMATION: u32 = 1310952u32; +pub const FSCTL_LMR_SET_LINK_TRACKING_INFORMATION: u32 = 1310956u32; +pub const FSCTL_MAILSLOT_PEEK: u32 = 802819u32; +pub const FSCTL_PIPE_ASSIGN_EVENT: u32 = 1114112u32; +pub const FSCTL_PIPE_CREATE_SYMLINK: u32 = 1114188u32; +pub const FSCTL_PIPE_DELETE_SYMLINK: u32 = 1114192u32; +pub const FSCTL_PIPE_DISABLE_IMPERSONATE: u32 = 1114180u32; +pub const FSCTL_PIPE_DISCONNECT: u32 = 1114116u32; +pub const FSCTL_PIPE_FLUSH: u32 = 1146944u32; +pub const FSCTL_PIPE_GET_CONNECTION_ATTRIBUTE: u32 = 1114160u32; +pub const FSCTL_PIPE_GET_HANDLE_ATTRIBUTE: u32 = 1114168u32; +pub const FSCTL_PIPE_GET_PIPE_ATTRIBUTE: u32 = 1114152u32; +pub const FSCTL_PIPE_IMPERSONATE: u32 = 1114140u32; +pub const FSCTL_PIPE_INTERNAL_READ: u32 = 1138676u32; +pub const FSCTL_PIPE_INTERNAL_READ_OVFLOW: u32 = 1138688u32; +pub const FSCTL_PIPE_INTERNAL_TRANSCEIVE: u32 = 1171455u32; +pub const FSCTL_PIPE_INTERNAL_WRITE: u32 = 1155064u32; +pub const FSCTL_PIPE_LISTEN: u32 = 1114120u32; +pub const FSCTL_PIPE_PEEK: u32 = 1130508u32; +pub const FSCTL_PIPE_QUERY_CLIENT_PROCESS: u32 = 1114148u32; +pub const FSCTL_PIPE_QUERY_CLIENT_PROCESS_V2: u32 = 1114196u32; +pub const FSCTL_PIPE_QUERY_EVENT: u32 = 1114128u32; +pub const FSCTL_PIPE_SET_CLIENT_PROCESS: u32 = 1114144u32; +pub const FSCTL_PIPE_SET_CONNECTION_ATTRIBUTE: u32 = 1114164u32; +pub const FSCTL_PIPE_SET_HANDLE_ATTRIBUTE: u32 = 1114172u32; +pub const FSCTL_PIPE_SET_PIPE_ATTRIBUTE: u32 = 1114156u32; +pub const FSCTL_PIPE_SILO_ARRIVAL: u32 = 1146952u32; +pub const FSCTL_PIPE_TRANSCEIVE: u32 = 1163287u32; +pub const FSCTL_PIPE_WAIT: u32 = 1114136u32; +pub const FSRTL_ADD_TC_CASE_SENSITIVE: u32 = 1u32; +pub const FSRTL_ADD_TC_KEY_BY_SHORT_NAME: u32 = 2u32; +pub const FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA: u32 = 1u32; +pub const FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA: u32 = 1u32; +pub const FSRTL_ALLOCATE_ECP_FLAG_NONPAGED_POOL: u32 = 2u32; +pub const FSRTL_AUXILIARY_FLAG_DEALLOCATE: u32 = 1u32; +pub const FSRTL_CC_FLUSH_ERROR_FLAG_NO_HARD_ERROR: u32 = 1u32; +pub const FSRTL_CC_FLUSH_ERROR_FLAG_NO_LOG_ENTRY: u32 = 2u32; +pub const FSRTL_DRIVER_BACKING_FLAG_USE_PAGE_FILE: u32 = 1u32; +pub const FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL: u32 = 2u32; +pub const FSRTL_FAT_LEGAL: u32 = 1u32; +pub const FSRTL_FCB_HEADER_V0: u32 = 0u32; +pub const FSRTL_FCB_HEADER_V1: u32 = 1u32; +pub const FSRTL_FCB_HEADER_V2: u32 = 2u32; +pub const FSRTL_FCB_HEADER_V3: u32 = 3u32; +pub const FSRTL_FCB_HEADER_V4: u32 = 4u32; +pub const FSRTL_FIND_TC_CASE_SENSITIVE: u32 = 1u32; +pub const FSRTL_FLAG2_BYPASSIO_STREAM_PAUSED: u32 = 32u32; +pub const FSRTL_FLAG2_DO_MODIFIED_WRITE: u32 = 1u32; +pub const FSRTL_FLAG2_IS_PAGING_FILE: u32 = 8u32; +pub const FSRTL_FLAG2_PURGE_WHEN_MAPPED: u32 = 4u32; +pub const FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS: u32 = 2u32; +pub const FSRTL_FLAG2_WRITABLE_USER_MAPPED_FILE: u32 = 16u32; +pub const FSRTL_FLAG_ACQUIRE_MAIN_RSRC_EX: u32 = 8u32; +pub const FSRTL_FLAG_ACQUIRE_MAIN_RSRC_SH: u32 = 16u32; +pub const FSRTL_FLAG_ADVANCED_HEADER: u32 = 64u32; +pub const FSRTL_FLAG_EOF_ADVANCE_ACTIVE: u32 = 128u32; +pub const FSRTL_FLAG_FILE_LENGTH_CHANGED: u32 = 2u32; +pub const FSRTL_FLAG_FILE_MODIFIED: u32 = 1u32; +pub const FSRTL_FLAG_LIMIT_MODIFIED_PAGES: u32 = 4u32; +pub const FSRTL_FLAG_USER_MAPPED_FILE: u32 = 32u32; +pub const FSRTL_HPFS_LEGAL: u32 = 2u32; +pub const FSRTL_NTFS_LEGAL: u32 = 4u32; +pub const FSRTL_OLE_LEGAL: u32 = 16u32; +pub const FSRTL_UNC_HARDENING_CAPABILITIES_INTEGRITY: u32 = 2u32; +pub const FSRTL_UNC_HARDENING_CAPABILITIES_MUTUAL_AUTH: u32 = 1u32; +pub const FSRTL_UNC_HARDENING_CAPABILITIES_PRIVACY: u32 = 4u32; +pub const FSRTL_UNC_PROVIDER_FLAGS_CONTAINER_AWARE: u32 = 8u32; +pub const FSRTL_UNC_PROVIDER_FLAGS_CSC_ENABLED: u32 = 2u32; +pub const FSRTL_UNC_PROVIDER_FLAGS_DOMAIN_SVC_AWARE: u32 = 4u32; +pub const FSRTL_UNC_PROVIDER_FLAGS_MAILSLOTS_SUPPORTED: u32 = 1u32; +pub const FSRTL_UNC_REGISTRATION_CURRENT_VERSION: u32 = 513u32; +pub const FSRTL_UNC_REGISTRATION_VERSION_0200: u32 = 512u32; +pub const FSRTL_UNC_REGISTRATION_VERSION_0201: u32 = 513u32; +pub const FSRTL_VIRTDISK_FULLY_ALLOCATED: u32 = 1u32; +pub const FSRTL_VIRTDISK_NO_DRIVE_LETTER: u32 = 2u32; +pub const FSRTL_VOLUME_BACKGROUND_FORMAT: u32 = 14u32; +pub const FSRTL_VOLUME_CHANGE_SIZE: u32 = 13u32; +pub const FSRTL_VOLUME_DISMOUNT: u32 = 1u32; +pub const FSRTL_VOLUME_DISMOUNT_FAILED: u32 = 2u32; +pub const FSRTL_VOLUME_FORCED_CLOSED: u32 = 10u32; +pub const FSRTL_VOLUME_INFO_MAKE_COMPAT: u32 = 11u32; +pub const FSRTL_VOLUME_LOCK: u32 = 3u32; +pub const FSRTL_VOLUME_LOCK_FAILED: u32 = 4u32; +pub const FSRTL_VOLUME_MOUNT: u32 = 6u32; +pub const FSRTL_VOLUME_NEEDS_CHKDSK: u32 = 7u32; +pub const FSRTL_VOLUME_PREPARING_EJECT: u32 = 12u32; +pub const FSRTL_VOLUME_UNLOCK: u32 = 5u32; +pub const FSRTL_VOLUME_WEARING_OUT: u32 = 9u32; +pub const FSRTL_VOLUME_WORM_NEAR_FULL: u32 = 8u32; +pub const FSRTL_WILD_CHARACTER: u32 = 8u32; +pub const FS_FILTER_SECTION_SYNC_IMAGE_EXTENTS_ARE_NOT_RVA: u32 = 8u32; +pub const FS_FILTER_SECTION_SYNC_IN_FLAG_DONT_UPDATE_LAST_ACCESS: u32 = 1u32; +pub const FS_FILTER_SECTION_SYNC_IN_FLAG_DONT_UPDATE_LAST_WRITE: u32 = 2u32; +pub const FS_FILTER_SECTION_SYNC_SUPPORTS_ASYNC_PARALLEL_IO: u32 = 1u32; +pub const FS_FILTER_SECTION_SYNC_SUPPORTS_DIRECT_MAP_DATA: u32 = 2u32; +pub const FS_FILTER_SECTION_SYNC_SUPPORTS_DIRECT_MAP_IMAGE: u32 = 4u32; +pub const FastIoIsNotPossible: FAST_IO_POSSIBLE = 0i32; +pub const FastIoIsPossible: FAST_IO_POSSIBLE = 1i32; +pub const FastIoIsQuestionable: FAST_IO_POSSIBLE = 2i32; +pub const FileFsAttributeInformation: FS_INFORMATION_CLASS = 5i32; +pub const FileFsControlInformation: FS_INFORMATION_CLASS = 6i32; +pub const FileFsDataCopyInformation: FS_INFORMATION_CLASS = 12i32; +pub const FileFsDeviceInformation: FS_INFORMATION_CLASS = 4i32; +pub const FileFsDriverPathInformation: FS_INFORMATION_CLASS = 9i32; +pub const FileFsFullSizeInformation: FS_INFORMATION_CLASS = 7i32; +pub const FileFsFullSizeInformationEx: FS_INFORMATION_CLASS = 14i32; +pub const FileFsLabelInformation: FS_INFORMATION_CLASS = 2i32; +pub const FileFsMaximumInformation: FS_INFORMATION_CLASS = 15i32; +pub const FileFsMetadataSizeInformation: FS_INFORMATION_CLASS = 13i32; +pub const FileFsObjectIdInformation: FS_INFORMATION_CLASS = 8i32; +pub const FileFsSectorSizeInformation: FS_INFORMATION_CLASS = 11i32; +pub const FileFsSizeInformation: FS_INFORMATION_CLASS = 3i32; +pub const FileFsVolumeFlagsInformation: FS_INFORMATION_CLASS = 10i32; +pub const FileFsVolumeInformation: FS_INFORMATION_CLASS = 1i32; +pub const GCR_ALLOW_LM: u32 = 4096u32; +pub const GCR_ALLOW_NO_TARGET: u32 = 8192u32; +pub const GCR_ALLOW_NTLM: u32 = 256u32; +pub const GCR_MACHINE_CREDENTIAL: u32 = 1024u32; +pub const GCR_NTLM3_PARMS: u32 = 32u32; +pub const GCR_TARGET_INFO: u32 = 64u32; +pub const GCR_USE_OEM_SET: u32 = 512u32; +pub const GCR_USE_OWF_PASSWORD: u32 = 2048u32; +pub const GCR_VSM_PROTECTED_PASSWORD: u32 = 16384u32; +pub const GENERATE_CLIENT_CHALLENGE: u32 = 16u32; +pub const GUID_ECP_ATOMIC_CREATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4720bd83_52ac_4104_a130_d1ec6a8cc8e5); +pub const GUID_ECP_CLOUDFILES_ATTRIBUTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2932ff52_8378_4fc1_8edb_6bdc8f602709); +pub const GUID_ECP_CREATE_REDIRECTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x188d6bd6_a126_4fa8_bdf2_1ccdf896f3e0); +pub const GUID_ECP_CSV_DOWN_LEVEL_OPEN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4248be44_647f_488f_8be5_a08aaf70f028); +pub const GUID_ECP_CSV_QUERY_FILE_REVISION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x44aec90b_de65_4d46_8fbf_763f9d970b1d); +pub const GUID_ECP_CSV_QUERY_FILE_REVISION_FILE_ID_128: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7a3a4aa1_aa74_4bc6_b070_ab56a38c1fed); +pub const GUID_ECP_CSV_SET_HANDLE_PROPERTIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7a9fdd94_7b58_42bb_9740_3cb86983a615); +pub const GUID_ECP_DUAL_OPLOCK_KEY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x41621a14_b08b_4df1_b676_a05ffdf01bea); +pub const GUID_ECP_IO_DEVICE_HINT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf315b732_ac6b_4d4d_be0c_b3126490e1a3); +pub const GUID_ECP_NETWORK_APP_INSTANCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6aa6bc45_a7ef_4af7_9008_fa462e144d74); +pub const GUID_ECP_NETWORK_APP_INSTANCE_VERSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb7d082b9_563b_4f07_a07b_524a8116a010); +pub const GUID_ECP_NETWORK_OPEN_CONTEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc584edbf_00df_4d28_b884_35baca8911e8); +pub const GUID_ECP_NFS_OPEN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf326d30c_e5f8_4fe7_ab74_f5a3196d92db); +pub const GUID_ECP_OPEN_PARAMETERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcd0a93c3_3bb7_463d_accb_969d3435a5a5); +pub const GUID_ECP_OPLOCK_KEY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x48850596_3050_4be7_9863_fec350ce8d7f); +pub const GUID_ECP_PREFETCH_OPEN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe1777b21_847e_4837_aa45_64161d280655); +pub const GUID_ECP_QUERY_ON_CREATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1aca62e9_abb4_4ff2_bb5c_1c79025e417f); +pub const GUID_ECP_RKF_BYPASS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x02378cc6_f73c_489c_8282_564d1a99131b); +pub const GUID_ECP_SRV_OPEN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbebfaebc_aabf_489d_9d2c_e9e361102853); +pub const GreaterThan: FSRTL_COMPARISON_RESULT = 1i32; +pub const HEAP_CLASS_0: u32 = 0u32; +pub const HEAP_CLASS_1: u32 = 4096u32; +pub const HEAP_CLASS_2: u32 = 8192u32; +pub const HEAP_CLASS_3: u32 = 12288u32; +pub const HEAP_CLASS_4: u32 = 16384u32; +pub const HEAP_CLASS_5: u32 = 20480u32; +pub const HEAP_CLASS_6: u32 = 24576u32; +pub const HEAP_CLASS_7: u32 = 28672u32; +pub const HEAP_CLASS_8: u32 = 32768u32; +pub const HEAP_CLASS_MASK: u32 = 61440u32; +pub const HEAP_CREATE_ALIGN_16: u32 = 65536u32; +pub const HEAP_CREATE_ENABLE_EXECUTE: u32 = 262144u32; +pub const HEAP_CREATE_ENABLE_TRACING: u32 = 131072u32; +pub const HEAP_CREATE_HARDENED: u32 = 512u32; +pub const HEAP_CREATE_SEGMENT_HEAP: u32 = 256u32; +pub const HEAP_DISABLE_COALESCE_ON_FREE: u32 = 128u32; +pub const HEAP_FREE_CHECKING_ENABLED: u32 = 64u32; +pub const HEAP_GENERATE_EXCEPTIONS: u32 = 4u32; +pub const HEAP_GLOBAL_TAG: u32 = 2048u32; +pub const HEAP_GROWABLE: u32 = 2u32; +pub const HEAP_MAXIMUM_TAG: u32 = 4095u32; +pub const HEAP_NO_SERIALIZE: u32 = 1u32; +pub const HEAP_PSEUDO_TAG_FLAG: u32 = 32768u32; +pub const HEAP_REALLOC_IN_PLACE_ONLY: u32 = 16u32; +pub const HEAP_SETTABLE_USER_FLAG1: u32 = 512u32; +pub const HEAP_SETTABLE_USER_FLAG2: u32 = 1024u32; +pub const HEAP_SETTABLE_USER_FLAG3: u32 = 2048u32; +pub const HEAP_SETTABLE_USER_FLAGS: u32 = 3584u32; +pub const HEAP_SETTABLE_USER_VALUE: u32 = 256u32; +pub const HEAP_TAG_SHIFT: u32 = 18u32; +pub const HEAP_TAIL_CHECKING_ENABLED: u32 = 32u32; +pub const HEAP_ZERO_MEMORY: u32 = 8u32; +pub const HeapMemoryBasicInformation: HEAP_MEMORY_INFO_CLASS = 0i32; +pub const INVALID_PROCESSOR_INDEX: u32 = 4294967295u32; +pub const IOCTL_LMR_ARE_FILE_OBJECTS_ON_SAME_SERVER: u32 = 1310960u32; +pub const IOCTL_REDIR_QUERY_PATH: u32 = 1311119u32; +pub const IOCTL_REDIR_QUERY_PATH_EX: u32 = 1311123u32; +pub const IOCTL_VOLSNAP_FLUSH_AND_HOLD_WRITES: u32 = 5488640u32; +pub const IO_CD_ROM_INCREMENT: u32 = 1u32; +pub const IO_CREATE_STREAM_FILE_LITE: u32 = 2u32; +pub const IO_CREATE_STREAM_FILE_RAISE_ON_ERROR: u32 = 1u32; +pub const IO_DISK_INCREMENT: u32 = 1u32; +pub const IO_FILE_OBJECT_NON_PAGED_POOL_CHARGE: u32 = 64u32; +pub const IO_FILE_OBJECT_PAGED_POOL_CHARGE: u32 = 1024u32; +pub const IO_IGNORE_READONLY_ATTRIBUTE: u32 = 64u32; +pub const IO_MAILSLOT_INCREMENT: u32 = 2u32; +pub const IO_MM_PAGING_FILE: u32 = 16u32; +pub const IO_NAMED_PIPE_INCREMENT: u32 = 2u32; +pub const IO_NETWORK_INCREMENT: u32 = 2u32; +pub const IO_NO_INCREMENT: u32 = 0u32; +pub const IO_OPEN_PAGING_FILE: u32 = 2u32; +pub const IO_OPEN_TARGET_DIRECTORY: u32 = 4u32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_0: i32 = 96i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_1: i32 = 97i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_2: i32 = 98i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_3: i32 = 99i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_4: i32 = 100i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_5: i32 = 101i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_6: i32 = 102i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_7: i32 = 103i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_8: i32 = 104i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_9: i32 = 105i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_A: i32 = 106i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_B: i32 = 107i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_C: i32 = 108i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_D: i32 = 109i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_E: i32 = 110i32; +pub const IO_REPARSE_TAG_ACRONIS_HSM_F: i32 = 111i32; +pub const IO_REPARSE_TAG_ACTIVISION_HSM: i32 = 71i32; +pub const IO_REPARSE_TAG_ADA_HSM: i32 = 38i32; +pub const IO_REPARSE_TAG_ADOBE_HSM: i32 = 69i32; +pub const IO_REPARSE_TAG_ALERTBOOT: i32 = 536870988i32; +pub const IO_REPARSE_TAG_ALTIRIS_HSM: i32 = 25i32; +pub const IO_REPARSE_TAG_APPXSTRM: i32 = -1073741804i32; +pub const IO_REPARSE_TAG_ARCO_BACKUP: i32 = 59i32; +pub const IO_REPARSE_TAG_ARKIVIO: i32 = 12i32; +pub const IO_REPARSE_TAG_AURISTOR_FS: i32 = 73i32; +pub const IO_REPARSE_TAG_AUTN_HSM: i32 = 39i32; +pub const IO_REPARSE_TAG_BRIDGEHEAD_HSM: i32 = 22i32; +pub const IO_REPARSE_TAG_C2CSYSTEMS_HSM: i32 = 49i32; +pub const IO_REPARSE_TAG_CARINGO_HSM: i32 = 52i32; +pub const IO_REPARSE_TAG_CARROLL_HSM: i32 = 60i32; +pub const IO_REPARSE_TAG_CITRIX_PM: i32 = 54i32; +pub const IO_REPARSE_TAG_COMMVAULT: i32 = 14i32; +pub const IO_REPARSE_TAG_COMMVAULT_HSM: i32 = 29i32; +pub const IO_REPARSE_TAG_COMTRADE_HSM: i32 = 61i32; +pub const IO_REPARSE_TAG_CTERA_HSM: i32 = 78i32; +pub const IO_REPARSE_TAG_DATAFIRST_HSM: i32 = 48i32; +pub const IO_REPARSE_TAG_DATAGLOBAL_HSM: i32 = 46i32; +pub const IO_REPARSE_TAG_DATASTOR_SIS: i32 = 30i32; +pub const IO_REPARSE_TAG_DFM: i32 = -2147483626i32; +pub const IO_REPARSE_TAG_DOR_HSM: i32 = 82i32; +pub const IO_REPARSE_TAG_DOUBLE_TAKE_HSM: i32 = 34i32; +pub const IO_REPARSE_TAG_DOUBLE_TAKE_SIS: i32 = 41i32; +pub const IO_REPARSE_TAG_DRIVE_EXTENDER: i32 = -2147483643i32; +pub const IO_REPARSE_TAG_DROPBOX_HSM: i32 = 68i32; +pub const IO_REPARSE_TAG_EASEFILTER_HSM: i32 = 87i32; +pub const IO_REPARSE_TAG_EASEVAULT_HSM: i32 = 62i32; +pub const IO_REPARSE_TAG_EDSI_HSM: i32 = 31i32; +pub const IO_REPARSE_TAG_ELTAN_HSM: i32 = 43i32; +pub const IO_REPARSE_TAG_EMC_HSM: i32 = 57i32; +pub const IO_REPARSE_TAG_ENIGMA_HSM: i32 = 17i32; +pub const IO_REPARSE_TAG_FILTER_MANAGER: i32 = -2147483637i32; +pub const IO_REPARSE_TAG_GLOBAL360_HSM: i32 = 24i32; +pub const IO_REPARSE_TAG_GOOGLE_HSM: i32 = 65i32; +pub const IO_REPARSE_TAG_GRAU_DATASTORAGE_HSM: i32 = 28i32; +pub const IO_REPARSE_TAG_HDS_HCP_HSM: i32 = 72i32; +pub const IO_REPARSE_TAG_HDS_HSM: i32 = 63i32; +pub const IO_REPARSE_TAG_HERMES_HSM: i32 = 26i32; +pub const IO_REPARSE_TAG_HP_BACKUP: i32 = 67i32; +pub const IO_REPARSE_TAG_HP_DATA_PROTECT: i32 = 70i32; +pub const IO_REPARSE_TAG_HP_HSM: i32 = 32i32; +pub const IO_REPARSE_TAG_HSAG_HSM: i32 = 37i32; +pub const IO_REPARSE_TAG_HUBSTOR_HSM: i32 = 85i32; +pub const IO_REPARSE_TAG_IFSTEST_CONGRUENT: i32 = 9i32; +pub const IO_REPARSE_TAG_IIS_CACHE: i32 = -1610612720i32; +pub const IO_REPARSE_TAG_IMANAGE_HSM: i32 = 536870998i32; +pub const IO_REPARSE_TAG_INTERCOPE_HSM: i32 = 19i32; +pub const IO_REPARSE_TAG_ITSTATION: i32 = 74i32; +pub const IO_REPARSE_TAG_KOM_NETWORKS_HSM: i32 = 20i32; +pub const IO_REPARSE_TAG_LX_BLK: i32 = -2147483610i32; +pub const IO_REPARSE_TAG_LX_CHR: i32 = -2147483611i32; +pub const IO_REPARSE_TAG_LX_FIFO: i32 = -2147483612i32; +pub const IO_REPARSE_TAG_LX_SYMLINK: i32 = -1610612707i32; +pub const IO_REPARSE_TAG_MAGINATICS_RDR: i32 = 64i32; +pub const IO_REPARSE_TAG_MAXISCALE_HSM: i32 = 536870965i32; +pub const IO_REPARSE_TAG_MEMORY_TECH_HSM: i32 = 21i32; +pub const IO_REPARSE_TAG_MIMOSA_HSM: i32 = 36i32; +pub const IO_REPARSE_TAG_MOONWALK_HSM: i32 = 10i32; +pub const IO_REPARSE_TAG_MTALOS: i32 = 77i32; +pub const IO_REPARSE_TAG_NEUSHIELD: i32 = 81i32; +pub const IO_REPARSE_TAG_NEXSAN_HSM: i32 = 40i32; +pub const IO_REPARSE_TAG_NIPPON_HSM: i32 = 79i32; +pub const IO_REPARSE_TAG_NVIDIA_UNIONFS: i32 = 536870996i32; +pub const IO_REPARSE_TAG_OPENAFS_DFS: i32 = 55i32; +pub const IO_REPARSE_TAG_OSR_SAMPLE: i32 = 536870935i32; +pub const IO_REPARSE_TAG_OVERTONE: i32 = 15i32; +pub const IO_REPARSE_TAG_POINTSOFT_HSM: i32 = 27i32; +pub const IO_REPARSE_TAG_QI_TECH_HSM: i32 = 536870959i32; +pub const IO_REPARSE_TAG_QUADDRA_HSM: i32 = 66i32; +pub const IO_REPARSE_TAG_QUEST_HSM: i32 = 45i32; +pub const IO_REPARSE_TAG_REDSTOR_HSM: i32 = 80i32; +pub const IO_REPARSE_TAG_RIVERBED_HSM: i32 = 51i32; +pub const IO_REPARSE_TAG_SER_HSM: i32 = 33i32; +pub const IO_REPARSE_TAG_SHX_BACKUP: i32 = 83i32; +pub const IO_REPARSE_TAG_SOLUTIONSOFT: i32 = 536870925i32; +pub const IO_REPARSE_TAG_SONY_HSM: i32 = 42i32; +pub const IO_REPARSE_TAG_SPHARSOFT: i32 = 75i32; +pub const IO_REPARSE_TAG_SYMANTEC_HSM: i32 = 18i32; +pub const IO_REPARSE_TAG_SYMANTEC_HSM2: i32 = 16i32; +pub const IO_REPARSE_TAG_TSINGHUA_UNIVERSITY_RESEARCH: i32 = 11i32; +pub const IO_REPARSE_TAG_UTIXO_HSM: i32 = 44i32; +pub const IO_REPARSE_TAG_VALID_VALUES: u32 = 4026597375u32; +pub const IO_REPARSE_TAG_VMWARE_PM: i32 = 58i32; +pub const IO_REPARSE_TAG_WATERFORD: i32 = 50i32; +pub const IO_REPARSE_TAG_WISDATA_HSM: i32 = 35i32; +pub const IO_REPARSE_TAG_ZLTI_HSM: i32 = 56i32; +pub const IO_STOP_ON_SYMLINK: u32 = 8u32; +pub const KnownFolderDesktop: FILE_KNOWN_FOLDER_TYPE = 1i32; +pub const KnownFolderDocuments: FILE_KNOWN_FOLDER_TYPE = 2i32; +pub const KnownFolderDownloads: FILE_KNOWN_FOLDER_TYPE = 3i32; +pub const KnownFolderMax: FILE_KNOWN_FOLDER_TYPE = 7i32; +pub const KnownFolderMusic: FILE_KNOWN_FOLDER_TYPE = 4i32; +pub const KnownFolderNone: FILE_KNOWN_FOLDER_TYPE = 0i32; +pub const KnownFolderOther: FILE_KNOWN_FOLDER_TYPE = 7i32; +pub const KnownFolderPictures: FILE_KNOWN_FOLDER_TYPE = 5i32; +pub const KnownFolderVideos: FILE_KNOWN_FOLDER_TYPE = 6i32; +pub const LCN_CHECKSUM_VALID: _LCN_WEAK_REFERENCE_STATE = 2i32; +pub const LCN_WEAK_REFERENCE_VALID: _LCN_WEAK_REFERENCE_STATE = 1i32; +pub const LX_FILE_CASE_SENSITIVE_DIR: u32 = 16u32; +pub const LX_FILE_METADATA_DEVICE_ID_EA_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("$LXDEV"); +pub const LX_FILE_METADATA_GID_EA_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("$LXGID"); +pub const LX_FILE_METADATA_HAS_DEVICE_ID: u32 = 8u32; +pub const LX_FILE_METADATA_HAS_GID: u32 = 2u32; +pub const LX_FILE_METADATA_HAS_MODE: u32 = 4u32; +pub const LX_FILE_METADATA_HAS_UID: u32 = 1u32; +pub const LX_FILE_METADATA_MODE_EA_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("$LXMOD"); +pub const LX_FILE_METADATA_UID_EA_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("$LXUID"); +pub const LessThan: FSRTL_COMPARISON_RESULT = -1i32; +pub const MAP_DISABLE_PAGEFAULT_CLUSTERING: u32 = 256u32; +pub const MAP_HIGH_PRIORITY: u32 = 64u32; +pub const MAP_NO_READ: u32 = 16u32; +pub const MAP_WAIT: u32 = 1u32; +pub const MAXIMUM_LEADBYTES: u32 = 12u32; +pub const MAX_UNICODE_STACK_BUFFER_LENGTH: u32 = 256u32; +pub const MCB_FLAG_RAISE_ON_ALLOCATION_FAILURE: u32 = 1u32; +pub const MM_FORCE_CLOSED_DATA: u32 = 1u32; +pub const MM_FORCE_CLOSED_IMAGE: u32 = 2u32; +pub const MM_FORCE_CLOSED_LATER_OK: u32 = 4u32; +pub const MM_IS_FILE_SECTION_ACTIVE_DATA: u32 = 2u32; +pub const MM_IS_FILE_SECTION_ACTIVE_IMAGE: u32 = 1u32; +pub const MM_IS_FILE_SECTION_ACTIVE_USER: u32 = 4u32; +pub const MemoryBasicInformation: MEMORY_INFORMATION_CLASS = 0i32; +pub const MemoryType64KPage: RTL_MEMORY_TYPE = 2i32; +pub const MemoryTypeCustom: RTL_MEMORY_TYPE = 5i32; +pub const MemoryTypeHugePage: RTL_MEMORY_TYPE = 4i32; +pub const MemoryTypeLargePage: RTL_MEMORY_TYPE = 3i32; +pub const MemoryTypeMax: RTL_MEMORY_TYPE = 6i32; +pub const MemoryTypeNonPaged: RTL_MEMORY_TYPE = 1i32; +pub const MemoryTypePaged: RTL_MEMORY_TYPE = 0i32; +pub const MmFlushForDelete: MMFLUSH_TYPE = 0i32; +pub const MmFlushForWrite: MMFLUSH_TYPE = 1i32; +pub const MsvAvChannelBindings: MSV1_0_AVID = 10i32; +pub const MsvAvDnsComputerName: MSV1_0_AVID = 3i32; +pub const MsvAvDnsDomainName: MSV1_0_AVID = 4i32; +pub const MsvAvDnsTreeName: MSV1_0_AVID = 5i32; +pub const MsvAvEOL: MSV1_0_AVID = 0i32; +pub const MsvAvFlags: MSV1_0_AVID = 6i32; +pub const MsvAvNbComputerName: MSV1_0_AVID = 1i32; +pub const MsvAvNbDomainName: MSV1_0_AVID = 2i32; +pub const MsvAvRestrictions: MSV1_0_AVID = 8i32; +pub const MsvAvTargetName: MSV1_0_AVID = 9i32; +pub const MsvAvTimestamp: MSV1_0_AVID = 7i32; +pub const NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_COLLAPSING: u32 = 1u32; +pub const NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_DURABILITY: u32 = 2u32; +pub const NETWORK_OPEN_ECP_IN_FLAG_DISABLE_OPLOCKS: u32 = 4u32; +pub const NETWORK_OPEN_ECP_IN_FLAG_FORCE_BUFFERED_SYNCHRONOUS_IO_HACK: u32 = 2147483648u32; +pub const NETWORK_OPEN_ECP_IN_FLAG_FORCE_MAX_EOF_HACK: u32 = 1073741824u32; +pub const NETWORK_OPEN_ECP_IN_FLAG_REQ_MUTUAL_AUTH: u32 = 8u32; +pub const NETWORK_OPEN_ECP_OUT_FLAG_RET_MUTUAL_AUTH: u32 = 8u32; +pub const NO_8DOT3_NAME_PRESENT: u32 = 1u32; +pub const NetworkOpenIntegrityAny: NETWORK_OPEN_INTEGRITY_QUALIFIER = 0i32; +pub const NetworkOpenIntegrityEncrypted: NETWORK_OPEN_INTEGRITY_QUALIFIER = 3i32; +pub const NetworkOpenIntegrityMaximum: NETWORK_OPEN_INTEGRITY_QUALIFIER = 4i32; +pub const NetworkOpenIntegrityNone: NETWORK_OPEN_INTEGRITY_QUALIFIER = 1i32; +pub const NetworkOpenIntegritySigned: NETWORK_OPEN_INTEGRITY_QUALIFIER = 2i32; +pub const NetworkOpenLocationAny: NETWORK_OPEN_LOCATION_QUALIFIER = 0i32; +pub const NetworkOpenLocationLoopback: NETWORK_OPEN_LOCATION_QUALIFIER = 2i32; +pub const NetworkOpenLocationRemote: NETWORK_OPEN_LOCATION_QUALIFIER = 1i32; +pub const NotifyTypeCreate: FS_FILTER_STREAM_FO_NOTIFICATION_TYPE = 0i32; +pub const NotifyTypeRetired: FS_FILTER_STREAM_FO_NOTIFICATION_TYPE = 1i32; +pub const NtfsLinkTrackingInformation: LINK_TRACKING_INFORMATION_TYPE = 0i32; +pub const OPEN_REPARSE_POINT_OVERRIDE_CREATE_OPTION: u32 = 64u32; +pub const OPEN_REPARSE_POINT_REPARSE_ALWAYS: u32 = 126u32; +pub const OPEN_REPARSE_POINT_REPARSE_IF_CHILD_EXISTS: u32 = 2u32; +pub const OPEN_REPARSE_POINT_REPARSE_IF_CHILD_NOT_EXISTS: u32 = 4u32; +pub const OPEN_REPARSE_POINT_REPARSE_IF_DIRECTORY_FINAL_COMPONENT: u32 = 8u32; +pub const OPEN_REPARSE_POINT_REPARSE_IF_DIRECTORY_FINAL_COMPONENT_ALWAYS: u32 = 72u32; +pub const OPEN_REPARSE_POINT_REPARSE_IF_FINAL_COMPONENT: u32 = 40u32; +pub const OPEN_REPARSE_POINT_REPARSE_IF_FINAL_COMPONENT_ALWAYS: u32 = 104u32; +pub const OPEN_REPARSE_POINT_REPARSE_IF_NON_DIRECTORY_FINAL_COMPONENT: u32 = 32u32; +pub const OPEN_REPARSE_POINT_REPARSE_IF_NON_DIRECTORY_FINAL_COMPONENT_ALWAYS: u32 = 96u32; +pub const OPEN_REPARSE_POINT_REPARSE_IF_NON_DIRECTORY_NON_FINAL_COMPONENT: u32 = 16u32; +pub const OPEN_REPARSE_POINT_REPARSE_IF_NON_DIRECTORY_NON_FINAL_COMPONENT_ALWAYS: u32 = 80u32; +pub const OPEN_REPARSE_POINT_REPARSE_IF_NON_FINAL_COMPONENT: u32 = 22u32; +pub const OPEN_REPARSE_POINT_RETURN_REPARSE_DATA_BUFFER: u32 = 128u32; +pub const OPEN_REPARSE_POINT_TAG_ENCOUNTERED: u32 = 1u32; +pub const OPEN_REPARSE_POINT_VERSION_EX: u32 = 2147483648u32; +pub const OPLOCK_FLAG_BACK_OUT_ATOMIC_OPLOCK: u32 = 4u32; +pub const OPLOCK_FLAG_BREAKING_FOR_SHARING_VIOLATION: u32 = 128u32; +pub const OPLOCK_FLAG_CLOSING_DELETE_ON_CLOSE: u32 = 32u32; +pub const OPLOCK_FLAG_COMPLETE_IF_OPLOCKED: u32 = 1u32; +pub const OPLOCK_FLAG_IGNORE_OPLOCK_KEYS: u32 = 8u32; +pub const OPLOCK_FLAG_OPLOCK_KEY_CHECK_ONLY: u32 = 2u32; +pub const OPLOCK_FLAG_PARENT_OBJECT: u32 = 16u32; +pub const OPLOCK_FLAG_REMOVING_FILE_OR_LINK: u32 = 64u32; +pub const OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH: u32 = 1u32; +pub const OPLOCK_NOTIFY_BREAK_WAIT_INTERIM_TIMEOUT: OPLOCK_NOTIFY_REASON = 0i32; +pub const OPLOCK_NOTIFY_BREAK_WAIT_TERMINATED: OPLOCK_NOTIFY_REASON = 1i32; +pub const OPLOCK_UPPER_FLAG_CHECK_NO_BREAK: u32 = 65536u32; +pub const OPLOCK_UPPER_FLAG_NOTIFY_REFRESH_READ: u32 = 131072u32; +pub const PIN_CALLER_TRACKS_DIRTY_DATA: u32 = 32u32; +pub const PIN_EXCLUSIVE: u32 = 2u32; +pub const PIN_HIGH_PRIORITY: u32 = 64u32; +pub const PIN_IF_BCB: u32 = 8u32; +pub const PIN_NO_READ: u32 = 4u32; +pub const PIN_VERIFY_REQUIRED: u32 = 128u32; +pub const PIN_WAIT: u32 = 1u32; +pub const POLICY_AUDIT_SUBCATEGORY_COUNT: u32 = 59u32; +pub const PO_CB_AC_STATUS: u32 = 1u32; +pub const PO_CB_BUTTON_COLLISION: u32 = 2u32; +pub const PO_CB_LID_SWITCH_STATE: u32 = 4u32; +pub const PO_CB_PROCESSOR_POWER_POLICY: u32 = 5u32; +pub const PO_CB_SYSTEM_POWER_POLICY: u32 = 0u32; +pub const PO_CB_SYSTEM_STATE_LOCK: u32 = 3u32; +pub const PSMP_MAXIMUM_SYSAPP_CLAIM_VALUES: u32 = 4u32; +pub const PSMP_MINIMUM_SYSAPP_CLAIM_VALUES: u32 = 2u32; +pub const PURGE_WITH_ACTIVE_VIEWS: u32 = 8u32; +pub const QUERY_DIRECT_ACCESS_DATA_EXTENTS: u32 = 2u32; +pub const QUERY_DIRECT_ACCESS_IMAGE_EXTENTS: u32 = 1u32; +pub const QoCFileEaInformation: u32 = 4u32; +pub const QoCFileLxInformation: u32 = 2u32; +pub const QoCFileStatInformation: u32 = 1u32; +pub const REFS_COMPRESSION_FORMAT_LZ4: REFS_COMPRESSION_FORMATS = 1i32; +pub const REFS_COMPRESSION_FORMAT_MAX: REFS_COMPRESSION_FORMATS = 3i32; +pub const REFS_COMPRESSION_FORMAT_UNCOMPRESSED: REFS_COMPRESSION_FORMATS = 0i32; +pub const REFS_COMPRESSION_FORMAT_ZSTD: REFS_COMPRESSION_FORMATS = 2i32; +pub const REFS_DEALLOCATE_RANGES_ALLOCATOR_CAA: REFS_DEALLOCATE_RANGES_ALLOCATOR = 2i32; +pub const REFS_DEALLOCATE_RANGES_ALLOCATOR_MAA: REFS_DEALLOCATE_RANGES_ALLOCATOR = 3i32; +pub const REFS_DEALLOCATE_RANGES_ALLOCATOR_NONE: REFS_DEALLOCATE_RANGES_ALLOCATOR = 0i32; +pub const REFS_DEALLOCATE_RANGES_ALLOCATOR_SAA: REFS_DEALLOCATE_RANGES_ALLOCATOR = 1i32; +pub const REFS_SET_VOLUME_COMPRESSION_INFO_FLAG_COMPRESS_SYNC: REFS_SET_VOLUME_COMPRESSION_INFO_FLAGS = 1i32; +pub const REFS_SET_VOLUME_COMPRESSION_INFO_FLAG_MAX: REFS_SET_VOLUME_COMPRESSION_INFO_FLAGS = 1i32; +pub const REFS_STREAM_EXTENT_PROPERTY_CRC32: _REFS_STREAM_EXTENT_PROPERTIES = 128i32; +pub const REFS_STREAM_EXTENT_PROPERTY_CRC64: _REFS_STREAM_EXTENT_PROPERTIES = 256i32; +pub const REFS_STREAM_EXTENT_PROPERTY_GHOSTED: _REFS_STREAM_EXTENT_PROPERTIES = 512i32; +pub const REFS_STREAM_EXTENT_PROPERTY_READONLY: _REFS_STREAM_EXTENT_PROPERTIES = 1024i32; +pub const REFS_STREAM_EXTENT_PROPERTY_SPARSE: _REFS_STREAM_EXTENT_PROPERTIES = 8i32; +pub const REFS_STREAM_EXTENT_PROPERTY_STREAM_RESERVED: _REFS_STREAM_EXTENT_PROPERTIES = 32i32; +pub const REFS_STREAM_EXTENT_PROPERTY_VALID: _REFS_STREAM_EXTENT_PROPERTIES = 16i32; +pub const REFS_STREAM_SNAPSHOT_OPERATION_CLEAR_SHADOW_BTREE: REFS_STREAM_SNAPSHOT_OPERATION = 6i32; +pub const REFS_STREAM_SNAPSHOT_OPERATION_CREATE: REFS_STREAM_SNAPSHOT_OPERATION = 1i32; +pub const REFS_STREAM_SNAPSHOT_OPERATION_INVALID: REFS_STREAM_SNAPSHOT_OPERATION = 0i32; +pub const REFS_STREAM_SNAPSHOT_OPERATION_LIST: REFS_STREAM_SNAPSHOT_OPERATION = 2i32; +pub const REFS_STREAM_SNAPSHOT_OPERATION_MAX: REFS_STREAM_SNAPSHOT_OPERATION = 6i32; +pub const REFS_STREAM_SNAPSHOT_OPERATION_QUERY_DELTAS: REFS_STREAM_SNAPSHOT_OPERATION = 3i32; +pub const REFS_STREAM_SNAPSHOT_OPERATION_REVERT: REFS_STREAM_SNAPSHOT_OPERATION = 4i32; +pub const REFS_STREAM_SNAPSHOT_OPERATION_SET_SHADOW_BTREE: REFS_STREAM_SNAPSHOT_OPERATION = 5i32; +pub const REMOTE_PROTOCOL_FLAG_INTEGRITY: u32 = 16u32; +pub const REMOTE_PROTOCOL_FLAG_LOOPBACK: u32 = 1u32; +pub const REMOTE_PROTOCOL_FLAG_MUTUAL_AUTH: u32 = 32u32; +pub const REMOTE_PROTOCOL_FLAG_OFFLINE: u32 = 2u32; +pub const REMOTE_PROTOCOL_FLAG_PERSISTENT_HANDLE: u32 = 4u32; +pub const REMOTE_PROTOCOL_FLAG_PRIVACY: u32 = 8u32; +pub const REMOVED_8DOT3_NAME: u32 = 2u32; +pub const REPARSE_DATA_EX_FLAG_GIVEN_TAG_OR_NONE: u32 = 1u32; +pub const RETURN_NON_NT_USER_SESSION_KEY: u32 = 8u32; +pub const RETURN_PRIMARY_LOGON_DOMAINNAME: u32 = 4u32; +pub const RETURN_PRIMARY_USERNAME: u32 = 2u32; +pub const RETURN_RESERVED_PARAMETER: u32 = 128u32; +pub const RPI_SMB2_SERVERCAP_DFS: u32 = 1u32; +pub const RPI_SMB2_SERVERCAP_DIRECTORY_LEASING: u32 = 32u32; +pub const RPI_SMB2_SERVERCAP_ENCRYPTION_AWARE: u32 = 64u32; +pub const RPI_SMB2_SERVERCAP_LARGEMTU: u32 = 4u32; +pub const RPI_SMB2_SERVERCAP_LEASING: u32 = 2u32; +pub const RPI_SMB2_SERVERCAP_MULTICHANNEL: u32 = 8u32; +pub const RPI_SMB2_SERVERCAP_PERSISTENT_HANDLES: u32 = 16u32; +pub const RPI_SMB2_SHARECAP_ACCESS_BASED_DIRECTORY_ENUM: u32 = 256u32; +pub const RPI_SMB2_SHARECAP_ASYMMETRIC_SCALEOUT: u32 = 1024u32; +pub const RPI_SMB2_SHARECAP_CLUSTER: u32 = 64u32; +pub const RPI_SMB2_SHARECAP_CONTINUOUS_AVAILABILITY: u32 = 16u32; +pub const RPI_SMB2_SHARECAP_DFS: u32 = 8u32; +pub const RPI_SMB2_SHARECAP_ENCRYPTED: u32 = 128u32; +pub const RPI_SMB2_SHARECAP_IDENTITY_REMOTING: u32 = 512u32; +pub const RPI_SMB2_SHARECAP_SCALEOUT: u32 = 32u32; +pub const RPI_SMB2_SHARECAP_TIMEWARP: u32 = 2u32; +pub const RPI_SMB2_SHARETYPE_DISK: u32 = 0u32; +pub const RPI_SMB2_SHARETYPE_PIPE: u32 = 1u32; +pub const RPI_SMB2_SHARETYPE_PRINT: u32 = 2u32; +pub const RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING: u32 = 2u32; +pub const RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE: u32 = 1u32; +pub const RTL_HEAP_MEMORY_LIMIT_CURRENT_VERSION: u32 = 1u32; +pub const RTL_SYSTEM_VOLUME_INFORMATION_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System Volume Information"); +pub const SECURITY_ANONYMOUS_LOGON_RID: i32 = 7i32; +pub const SEGMENT_HEAP_FLG_USE_PAGE_HEAP: u32 = 1u32; +pub const SEGMENT_HEAP_PARAMETERS_VERSION: u32 = 3u32; +pub const SEGMENT_HEAP_PARAMS_VALID_FLAGS: u32 = 1u32; +pub const SEMAPHORE_INCREMENT: u32 = 1u32; +pub const SET_PURGE_FAILURE_MODE_DISABLED: u32 = 2u32; +pub const SE_BACKUP_PRIVILEGES_CHECKED: u32 = 256u32; +pub const SE_DACL_UNTRUSTED: u32 = 64u32; +pub const SE_SERVER_SECURITY: u32 = 128u32; +pub const SPECIAL_ENCRYPTED_OPEN: u32 = 262144u32; +pub const SRV_OPEN_ECP_CONTEXT_VERSION_2: u32 = 2u32; +pub const SUPPORTED_FS_FEATURES_BYPASS_IO: u32 = 8u32; +pub const SUPPORTED_FS_FEATURES_OFFLOAD_READ: u32 = 1u32; +pub const SUPPORTED_FS_FEATURES_OFFLOAD_WRITE: u32 = 2u32; +pub const SUPPORTED_FS_FEATURES_QUERY_OPEN: u32 = 4u32; +pub const SYMLINK_DIRECTORY: u32 = 2147483648u32; +pub const SYMLINK_FILE: u32 = 1073741824u32; +pub const SYMLINK_FLAG_RELATIVE: u32 = 1u32; +pub const SYMLINK_RESERVED_MASK: u32 = 4026531840u32; +pub const SYSTEM_PAGE_PRIORITY_BITS: u32 = 3u32; +pub const SharedVirtualDiskCDPSnapshotsSupported: SharedVirtualDiskSupportType = 7i32; +pub const SharedVirtualDiskHandleStateFileShared: SharedVirtualDiskHandleState = 1i32; +pub const SharedVirtualDiskHandleStateHandleShared: SharedVirtualDiskHandleState = 3i32; +pub const SharedVirtualDiskHandleStateNone: SharedVirtualDiskHandleState = 0i32; +pub const SharedVirtualDiskSnapshotsSupported: SharedVirtualDiskSupportType = 3i32; +pub const SharedVirtualDisksSupported: SharedVirtualDiskSupportType = 1i32; +pub const SharedVirtualDisksUnsupported: SharedVirtualDiskSupportType = 0i32; +pub const SrvInstanceTypeCsv: SRV_INSTANCE_TYPE = 2i32; +pub const SrvInstanceTypePrimary: SRV_INSTANCE_TYPE = 1i32; +pub const SrvInstanceTypeSBL: SRV_INSTANCE_TYPE = 3i32; +pub const SrvInstanceTypeSR: SRV_INSTANCE_TYPE = 4i32; +pub const SrvInstanceTypeUndefined: SRV_INSTANCE_TYPE = 0i32; +pub const SrvInstanceTypeVSMB: SRV_INSTANCE_TYPE = 5i32; +pub const SyncTypeCreateSection: FS_FILTER_SECTION_SYNC_TYPE = 1i32; +pub const SyncTypeOther: FS_FILTER_SECTION_SYNC_TYPE = 0i32; +pub const TOKEN_AUDIT_NO_CHILD_PROCESS: u32 = 2097152u32; +pub const TOKEN_AUDIT_REDIRECTION_TRUST: u32 = 8388608u32; +pub const TOKEN_DO_NOT_USE_GLOBAL_ATTRIBS_FOR_QUERY: u32 = 131072u32; +pub const TOKEN_ENFORCE_REDIRECTION_TRUST: u32 = 4194304u32; +pub const TOKEN_HAS_BACKUP_PRIVILEGE: u32 = 2u32; +pub const TOKEN_HAS_IMPERSONATE_PRIVILEGE: u32 = 128u32; +pub const TOKEN_HAS_OWN_CLAIM_ATTRIBUTES: u32 = 32768u32; +pub const TOKEN_HAS_RESTORE_PRIVILEGE: u32 = 4u32; +pub const TOKEN_HAS_TRAVERSE_PRIVILEGE: u32 = 1u32; +pub const TOKEN_IS_FILTERED: u32 = 2048u32; +pub const TOKEN_IS_RESTRICTED: u32 = 16u32; +pub const TOKEN_LEARNING_MODE_LOGGING: u32 = 16777216u32; +pub const TOKEN_LOWBOX: u32 = 16384u32; +pub const TOKEN_NOT_LOW: u32 = 8192u32; +pub const TOKEN_NO_CHILD_PROCESS: u32 = 524288u32; +pub const TOKEN_NO_CHILD_PROCESS_UNLESS_SECURE: u32 = 1048576u32; +pub const TOKEN_PERMISSIVE_LEARNING_MODE: u32 = 50331648u32; +pub const TOKEN_PRIVATE_NAMESPACE: u32 = 65536u32; +pub const TOKEN_SANDBOX_INERT: u32 = 64u32; +pub const TOKEN_SESSION_NOT_REFERENCED: u32 = 32u32; +pub const TOKEN_UIACCESS: u32 = 4096u32; +pub const TOKEN_VIRTUALIZE_ALLOWED: u32 = 512u32; +pub const TOKEN_VIRTUALIZE_ENABLED: u32 = 1024u32; +pub const TOKEN_WRITE_RESTRICTED: u32 = 8u32; +pub const UNINITIALIZE_CACHE_MAPS: u32 = 1u32; +pub const USE_PRIMARY_PASSWORD: u32 = 1u32; +pub const USN_DELETE_FLAG_DELETE: u32 = 1u32; +pub const VACB_MAPPING_GRANULARITY: u32 = 262144u32; +pub const VACB_OFFSET_SHIFT: u32 = 18u32; +pub const VALID_INHERIT_FLAGS: u32 = 31u32; +pub const VOLSNAPCONTROLTYPE: u32 = 83u32; +pub const VmPrefetchInformation: VIRTUAL_MEMORY_INFORMATION_CLASS = 0i32; +pub const WCIFS_REDIRECTION_FLAGS_CREATE_SERVICED_FROM_LAYER: u32 = 1u32; +pub const WCIFS_REDIRECTION_FLAGS_CREATE_SERVICED_FROM_REGISTERED_LAYER: u32 = 4u32; +pub const WCIFS_REDIRECTION_FLAGS_CREATE_SERVICED_FROM_REMOTE_LAYER: u32 = 8u32; +pub const WCIFS_REDIRECTION_FLAGS_CREATE_SERVICED_FROM_SCRATCH: u32 = 2u32; +pub type CSV_DOWN_LEVEL_FILE_TYPE = i32; +pub type FAST_IO_POSSIBLE = i32; +pub type FILE_DISPOSITION_INFORMATION_EX_FLAGS = u32; +pub type FILE_KNOWN_FOLDER_TYPE = i32; +pub type FSRTL_CHANGE_BACKING_TYPE = i32; +pub type FSRTL_COMPARISON_RESULT = i32; +pub type FS_FILTER_SECTION_SYNC_TYPE = i32; +pub type FS_FILTER_STREAM_FO_NOTIFICATION_TYPE = i32; +pub type FS_INFORMATION_CLASS = i32; +pub type HEAP_MEMORY_INFO_CLASS = i32; +pub type LINK_TRACKING_INFORMATION_TYPE = i32; +pub type MEMORY_INFORMATION_CLASS = i32; +pub type MMFLUSH_TYPE = i32; +pub type MSV1_0_AVID = i32; +pub type NETWORK_OPEN_INTEGRITY_QUALIFIER = i32; +pub type NETWORK_OPEN_LOCATION_QUALIFIER = i32; +pub type NTCREATEFILE_CREATE_DISPOSITION = u32; +pub type NTCREATEFILE_CREATE_OPTIONS = u32; +pub type OPLOCK_NOTIFY_REASON = i32; +pub type REFS_COMPRESSION_FORMATS = i32; +pub type REFS_DEALLOCATE_RANGES_ALLOCATOR = i32; +pub type REFS_SET_VOLUME_COMPRESSION_INFO_FLAGS = i32; +pub type REFS_STREAM_SNAPSHOT_OPERATION = i32; +pub type RTL_MEMORY_TYPE = i32; +pub type SE_AUDIT_OPERATION = i32; +pub type SRV_INSTANCE_TYPE = i32; +pub type SharedVirtualDiskHandleState = i32; +pub type SharedVirtualDiskSupportType = i32; +pub type VIRTUAL_MEMORY_INFORMATION_CLASS = i32; +pub type _LCN_WEAK_REFERENCE_STATE = i32; +pub type _REFS_STREAM_EXTENT_PROPERTIES = i32; +#[repr(C)] +pub struct ACE_HEADER { + pub AceType: u8, + pub AceFlags: u8, + pub AceSize: u16, +} +impl ::core::marker::Copy for ACE_HEADER {} +impl ::core::clone::Clone for ACE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATOMIC_CREATE_ECP_CONTEXT { + pub Size: u16, + pub InFlags: u16, + pub OutFlags: u16, + pub ReparseBufferLength: u16, + pub ReparseBuffer: *mut REPARSE_DATA_BUFFER, + pub FileSize: i64, + pub ValidDataLength: i64, + pub FileTimestamps: *mut FILE_TIMESTAMPS, + pub FileAttributes: u32, + pub UsnSourceInfo: u32, + pub Usn: i64, + pub SuppressFileAttributeInheritanceMask: u32, + pub InOpFlags: u32, + pub OutOpFlags: u32, + pub InGenFlags: u32, + pub OutGenFlags: u32, + pub CaseSensitiveFlagsMask: u32, + pub InCaseSensitiveFlags: u32, + pub OutCaseSensitiveFlags: u32, +} +impl ::core::marker::Copy for ATOMIC_CREATE_ECP_CONTEXT {} +impl ::core::clone::Clone for ATOMIC_CREATE_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BASE_MCB { + pub MaximumPairCount: u32, + pub PairCount: u32, + pub PoolType: u16, + pub Flags: u16, + pub Mapping: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for BASE_MCB {} +impl ::core::clone::Clone for BASE_MCB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BOOT_AREA_INFO { + pub BootSectorCount: u32, + pub BootSectors: [BOOT_AREA_INFO_0; 2], +} +impl ::core::marker::Copy for BOOT_AREA_INFO {} +impl ::core::clone::Clone for BOOT_AREA_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BOOT_AREA_INFO_0 { + pub Offset: i64, +} +impl ::core::marker::Copy for BOOT_AREA_INFO_0 {} +impl ::core::clone::Clone for BOOT_AREA_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CACHE_MANAGER_CALLBACKS { + pub AcquireForLazyWrite: PACQUIRE_FOR_LAZY_WRITE, + pub ReleaseFromLazyWrite: PRELEASE_FROM_LAZY_WRITE, + pub AcquireForReadAhead: PACQUIRE_FOR_READ_AHEAD, + pub ReleaseFromReadAhead: PRELEASE_FROM_READ_AHEAD, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CACHE_MANAGER_CALLBACKS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CACHE_MANAGER_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CACHE_MANAGER_CALLBACKS_EX { + pub Version: u16, + pub Size: u16, + pub Functions: CACHE_MANAGER_CALLBACK_FUNCTIONS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CACHE_MANAGER_CALLBACKS_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CACHE_MANAGER_CALLBACKS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CACHE_MANAGER_CALLBACK_FUNCTIONS { + pub AcquireForLazyWriteEx: PACQUIRE_FOR_LAZY_WRITE_EX, + pub ReleaseFromLazyWrite: PRELEASE_FROM_LAZY_WRITE, + pub AcquireForReadAhead: PACQUIRE_FOR_READ_AHEAD, + pub ReleaseFromReadAhead: PRELEASE_FROM_READ_AHEAD, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CACHE_MANAGER_CALLBACK_FUNCTIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CACHE_MANAGER_CALLBACK_FUNCTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct CACHE_UNINITIALIZE_EVENT { + pub Next: *mut CACHE_UNINITIALIZE_EVENT, + pub Event: super::super::Foundation::KEVENT, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for CACHE_UNINITIALIZE_EVENT {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for CACHE_UNINITIALIZE_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub struct CC_ASYNC_READ_CONTEXT { + pub CompletionRoutine: PASYNC_READ_COMPLETION_CALLBACK, + pub Context: *mut ::core::ffi::c_void, + pub Mdl: *mut super::super::Foundation::MDL, + pub RequestorMode: i8, + pub NestingLevel: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for CC_ASYNC_READ_CONTEXT {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for CC_ASYNC_READ_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CC_ERROR_CALLBACK_CONTEXT { + pub NodeByteSize: i16, + pub ErrorCode: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CC_ERROR_CALLBACK_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CC_ERROR_CALLBACK_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CC_FILE_SIZES { + pub AllocationSize: i64, + pub FileSize: i64, + pub ValidDataLength: i64, +} +impl ::core::marker::Copy for CC_FILE_SIZES {} +impl ::core::clone::Clone for CC_FILE_SIZES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COMPRESSED_DATA_INFO { + pub CompressionFormatAndEngine: u16, + pub CompressionUnitShift: u8, + pub ChunkShift: u8, + pub ClusterShift: u8, + pub Reserved: u8, + pub NumberOfChunks: u16, + pub CompressedChunkSizes: [u32; 1], +} +impl ::core::marker::Copy for COMPRESSED_DATA_INFO {} +impl ::core::clone::Clone for COMPRESSED_DATA_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONTAINER_ROOT_INFO_INPUT { + pub Flags: u32, +} +impl ::core::marker::Copy for CONTAINER_ROOT_INFO_INPUT {} +impl ::core::clone::Clone for CONTAINER_ROOT_INFO_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONTAINER_ROOT_INFO_OUTPUT { + pub ContainerRootIdLength: u16, + pub ContainerRootId: [u8; 1], +} +impl ::core::marker::Copy for CONTAINER_ROOT_INFO_OUTPUT {} +impl ::core::clone::Clone for CONTAINER_ROOT_INFO_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONTAINER_VOLUME_STATE { + pub Flags: u32, +} +impl ::core::marker::Copy for CONTAINER_VOLUME_STATE {} +impl ::core::clone::Clone for CONTAINER_VOLUME_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct COPY_INFORMATION { + pub SourceFileObject: *mut super::super::Foundation::FILE_OBJECT, + pub SourceFileOffset: i64, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for COPY_INFORMATION {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for COPY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CPTABLEINFO { + pub CodePage: u16, + pub MaximumCharacterSize: u16, + pub DefaultChar: u16, + pub UniDefaultChar: u16, + pub TransDefaultChar: u16, + pub TransUniDefaultChar: u16, + pub DBCSCodePage: u16, + pub LeadByte: [u8; 12], + pub MultiByteTable: *mut u16, + pub WideCharTable: *mut ::core::ffi::c_void, + pub DBCSRanges: *mut u16, + pub DBCSOffsets: *mut u16, +} +impl ::core::marker::Copy for CPTABLEINFO {} +impl ::core::clone::Clone for CPTABLEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct CREATE_REDIRECTION_ECP_CONTEXT { + pub Size: u16, + pub Flags: u16, + pub FileId: super::super::super::Win32::Storage::FileSystem::FILE_ID_128, + pub VolumeGuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for CREATE_REDIRECTION_ECP_CONTEXT {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for CREATE_REDIRECTION_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREATE_USN_JOURNAL_DATA { + pub MaximumSize: u64, + pub AllocationDelta: u64, +} +impl ::core::marker::Copy for CREATE_USN_JOURNAL_DATA {} +impl ::core::clone::Clone for CREATE_USN_JOURNAL_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CSV_DOWN_LEVEL_OPEN_ECP_CONTEXT { + pub Version: u32, + pub IsResume: super::super::super::Win32::Foundation::BOOLEAN, + pub FileType: CSV_DOWN_LEVEL_FILE_TYPE, + pub SourceNodeId: u32, + pub DestinationNodeId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CSV_DOWN_LEVEL_OPEN_ECP_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CSV_DOWN_LEVEL_OPEN_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CSV_QUERY_FILE_REVISION_ECP_CONTEXT { + pub FileId: i64, + pub FileRevision: [i64; 3], +} +impl ::core::marker::Copy for CSV_QUERY_FILE_REVISION_ECP_CONTEXT {} +impl ::core::clone::Clone for CSV_QUERY_FILE_REVISION_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct CSV_QUERY_FILE_REVISION_ECP_CONTEXT_FILE_ID_128 { + pub FileId: super::super::super::Win32::Storage::FileSystem::FILE_ID_128, + pub FileRevision: [i64; 3], +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for CSV_QUERY_FILE_REVISION_ECP_CONTEXT_FILE_ID_128 {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for CSV_QUERY_FILE_REVISION_ECP_CONTEXT_FILE_ID_128 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CSV_SET_HANDLE_PROPERTIES_ECP_CONTEXT { + pub Size: usize, + pub PauseTimeoutInSeconds: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for CSV_SET_HANDLE_PROPERTIES_ECP_CONTEXT {} +impl ::core::clone::Clone for CSV_SET_HANDLE_PROPERTIES_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DUAL_OPLOCK_KEY_ECP_CONTEXT { + pub ParentOplockKey: ::windows_sys::core::GUID, + pub TargetOplockKey: ::windows_sys::core::GUID, + pub ParentOplockKeySet: super::super::super::Win32::Foundation::BOOLEAN, + pub TargetOplockKeySet: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DUAL_OPLOCK_KEY_ECP_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DUAL_OPLOCK_KEY_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DUPLICATE_CLUSTER_DATA { + pub SourceLcn: i64, + pub TargetFileOffset: i64, + pub DuplicationLimit: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for DUPLICATE_CLUSTER_DATA {} +impl ::core::clone::Clone for DUPLICATE_CLUSTER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ECP_OPEN_PARAMETERS { + pub Size: u16, + pub Reserved: u16, + pub Flags: u32, +} +impl ::core::marker::Copy for ECP_OPEN_PARAMETERS {} +impl ::core::clone::Clone for ECP_OPEN_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct EOF_WAIT_BLOCK { + pub EofWaitLinks: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub Event: super::super::Foundation::KEVENT, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for EOF_WAIT_BLOCK {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for EOF_WAIT_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXTENT_READ_CACHE_INFO_BUFFER { + pub AllocatedCache: i64, + pub PopulatedCache: i64, + pub InErrorCache: i64, +} +impl ::core::marker::Copy for EXTENT_READ_CACHE_INFO_BUFFER {} +impl ::core::clone::Clone for EXTENT_READ_CACHE_INFO_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ACCESS_INFORMATION { + pub AccessFlags: u32, +} +impl ::core::marker::Copy for FILE_ACCESS_INFORMATION {} +impl ::core::clone::Clone for FILE_ACCESS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ALIGNMENT_INFORMATION { + pub AlignmentRequirement: u32, +} +impl ::core::marker::Copy for FILE_ALIGNMENT_INFORMATION {} +impl ::core::clone::Clone for FILE_ALIGNMENT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ALLOCATION_INFORMATION { + pub AllocationSize: i64, +} +impl ::core::marker::Copy for FILE_ALLOCATION_INFORMATION {} +impl ::core::clone::Clone for FILE_ALLOCATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_ALL_INFORMATION { + pub BasicInformation: FILE_BASIC_INFORMATION, + pub StandardInformation: FILE_STANDARD_INFORMATION, + pub InternalInformation: FILE_INTERNAL_INFORMATION, + pub EaInformation: FILE_EA_INFORMATION, + pub AccessInformation: FILE_ACCESS_INFORMATION, + pub PositionInformation: FILE_POSITION_INFORMATION, + pub ModeInformation: FILE_MODE_INFORMATION, + pub AlignmentInformation: FILE_ALIGNMENT_INFORMATION, + pub NameInformation: FILE_NAME_INFORMATION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_ALL_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_ALL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_BASIC_INFORMATION { + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub FileAttributes: u32, +} +impl ::core::marker::Copy for FILE_BASIC_INFORMATION {} +impl ::core::clone::Clone for FILE_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_BOTH_DIR_INFORMATION { + pub NextEntryOffset: u32, + pub FileIndex: u32, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub EndOfFile: i64, + pub AllocationSize: i64, + pub FileAttributes: u32, + pub FileNameLength: u32, + pub EaSize: u32, + pub ShortNameLength: i8, + pub ShortName: [u16; 12], + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_BOTH_DIR_INFORMATION {} +impl ::core::clone::Clone for FILE_BOTH_DIR_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_CASE_SENSITIVE_INFORMATION { + pub Flags: u32, +} +impl ::core::marker::Copy for FILE_CASE_SENSITIVE_INFORMATION {} +impl ::core::clone::Clone for FILE_CASE_SENSITIVE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_COMPLETION_INFORMATION { + pub Port: super::super::super::Win32::Foundation::HANDLE, + pub Key: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_COMPLETION_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_COMPLETION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_COMPRESSION_INFORMATION { + pub CompressedFileSize: i64, + pub CompressionFormat: u16, + pub CompressionUnitShift: u8, + pub ChunkShift: u8, + pub ClusterShift: u8, + pub Reserved: [u8; 3], +} +impl ::core::marker::Copy for FILE_COMPRESSION_INFORMATION {} +impl ::core::clone::Clone for FILE_COMPRESSION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_DIRECTORY_INFORMATION { + pub NextEntryOffset: u32, + pub FileIndex: u32, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub EndOfFile: i64, + pub AllocationSize: i64, + pub FileAttributes: u32, + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_DIRECTORY_INFORMATION {} +impl ::core::clone::Clone for FILE_DIRECTORY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_DISPOSITION_INFORMATION { + pub DeleteFile: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_DISPOSITION_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_DISPOSITION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_DISPOSITION_INFORMATION_EX { + pub Flags: FILE_DISPOSITION_INFORMATION_EX_FLAGS, +} +impl ::core::marker::Copy for FILE_DISPOSITION_INFORMATION_EX {} +impl ::core::clone::Clone for FILE_DISPOSITION_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_EA_INFORMATION { + pub EaSize: u32, +} +impl ::core::marker::Copy for FILE_EA_INFORMATION {} +impl ::core::clone::Clone for FILE_EA_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_END_OF_FILE_INFORMATION_EX { + pub EndOfFile: i64, + pub PagingFileSizeInMM: i64, + pub PagingFileMaxSize: i64, + pub Flags: u32, +} +impl ::core::marker::Copy for FILE_END_OF_FILE_INFORMATION_EX {} +impl ::core::clone::Clone for FILE_END_OF_FILE_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FS_ATTRIBUTE_INFORMATION { + pub FileSystemAttributes: u32, + pub MaximumComponentNameLength: i32, + pub FileSystemNameLength: u32, + pub FileSystemName: [u16; 1], +} +impl ::core::marker::Copy for FILE_FS_ATTRIBUTE_INFORMATION {} +impl ::core::clone::Clone for FILE_FS_ATTRIBUTE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FS_CONTROL_INFORMATION { + pub FreeSpaceStartFiltering: i64, + pub FreeSpaceThreshold: i64, + pub FreeSpaceStopFiltering: i64, + pub DefaultQuotaThreshold: i64, + pub DefaultQuotaLimit: i64, + pub FileSystemControlFlags: u32, +} +impl ::core::marker::Copy for FILE_FS_CONTROL_INFORMATION {} +impl ::core::clone::Clone for FILE_FS_CONTROL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FS_DATA_COPY_INFORMATION { + pub NumberOfCopies: u32, +} +impl ::core::marker::Copy for FILE_FS_DATA_COPY_INFORMATION {} +impl ::core::clone::Clone for FILE_FS_DATA_COPY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_FS_DRIVER_PATH_INFORMATION { + pub DriverInPath: super::super::super::Win32::Foundation::BOOLEAN, + pub DriverNameLength: u32, + pub DriverName: [u16; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_FS_DRIVER_PATH_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_FS_DRIVER_PATH_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FS_SECTOR_SIZE_INFORMATION { + pub LogicalBytesPerSector: u32, + pub PhysicalBytesPerSectorForAtomicity: u32, + pub PhysicalBytesPerSectorForPerformance: u32, + pub FileSystemEffectivePhysicalBytesPerSectorForAtomicity: u32, + pub Flags: u32, + pub ByteOffsetForSectorAlignment: u32, + pub ByteOffsetForPartitionAlignment: u32, +} +impl ::core::marker::Copy for FILE_FS_SECTOR_SIZE_INFORMATION {} +impl ::core::clone::Clone for FILE_FS_SECTOR_SIZE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FS_VOLUME_FLAGS_INFORMATION { + pub Flags: u32, +} +impl ::core::marker::Copy for FILE_FS_VOLUME_FLAGS_INFORMATION {} +impl ::core::clone::Clone for FILE_FS_VOLUME_FLAGS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FULL_DIR_INFORMATION { + pub NextEntryOffset: u32, + pub FileIndex: u32, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub EndOfFile: i64, + pub AllocationSize: i64, + pub FileAttributes: u32, + pub FileNameLength: u32, + pub EaSize: u32, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_FULL_DIR_INFORMATION {} +impl ::core::clone::Clone for FILE_FULL_DIR_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FULL_EA_INFORMATION { + pub NextEntryOffset: u32, + pub Flags: u8, + pub EaNameLength: u8, + pub EaValueLength: u16, + pub EaName: [u8; 1], +} +impl ::core::marker::Copy for FILE_FULL_EA_INFORMATION {} +impl ::core::clone::Clone for FILE_FULL_EA_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_GET_EA_INFORMATION { + pub NextEntryOffset: u32, + pub EaNameLength: u8, + pub EaName: [u8; 1], +} +impl ::core::marker::Copy for FILE_GET_EA_INFORMATION {} +impl ::core::clone::Clone for FILE_GET_EA_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct FILE_GET_QUOTA_INFORMATION { + pub NextEntryOffset: u32, + pub SidLength: u32, + pub Sid: super::super::super::Win32::Security::SID, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for FILE_GET_QUOTA_INFORMATION {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for FILE_GET_QUOTA_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ID_BOTH_DIR_INFORMATION { + pub NextEntryOffset: u32, + pub FileIndex: u32, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub EndOfFile: i64, + pub AllocationSize: i64, + pub FileAttributes: u32, + pub FileNameLength: u32, + pub EaSize: u32, + pub ShortNameLength: i8, + pub ShortName: [u16; 12], + pub FileId: i64, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_ID_BOTH_DIR_INFORMATION {} +impl ::core::clone::Clone for FILE_ID_BOTH_DIR_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct FILE_ID_EXTD_BOTH_DIR_INFORMATION { + pub NextEntryOffset: u32, + pub FileIndex: u32, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub EndOfFile: i64, + pub AllocationSize: i64, + pub FileAttributes: u32, + pub FileNameLength: u32, + pub EaSize: u32, + pub ReparsePointTag: u32, + pub FileId: super::super::super::Win32::Storage::FileSystem::FILE_ID_128, + pub ShortNameLength: i8, + pub ShortName: [u16; 12], + pub FileName: [u16; 1], +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for FILE_ID_EXTD_BOTH_DIR_INFORMATION {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for FILE_ID_EXTD_BOTH_DIR_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct FILE_ID_EXTD_DIR_INFORMATION { + pub NextEntryOffset: u32, + pub FileIndex: u32, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub EndOfFile: i64, + pub AllocationSize: i64, + pub FileAttributes: u32, + pub FileNameLength: u32, + pub EaSize: u32, + pub ReparsePointTag: u32, + pub FileId: super::super::super::Win32::Storage::FileSystem::FILE_ID_128, + pub FileName: [u16; 1], +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for FILE_ID_EXTD_DIR_INFORMATION {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for FILE_ID_EXTD_DIR_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ID_FULL_DIR_INFORMATION { + pub NextEntryOffset: u32, + pub FileIndex: u32, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub EndOfFile: i64, + pub AllocationSize: i64, + pub FileAttributes: u32, + pub FileNameLength: u32, + pub EaSize: u32, + pub FileId: i64, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_ID_FULL_DIR_INFORMATION {} +impl ::core::clone::Clone for FILE_ID_FULL_DIR_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ID_GLOBAL_TX_DIR_INFORMATION { + pub NextEntryOffset: u32, + pub FileIndex: u32, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub EndOfFile: i64, + pub AllocationSize: i64, + pub FileAttributes: u32, + pub FileNameLength: u32, + pub FileId: i64, + pub LockingTransactionId: ::windows_sys::core::GUID, + pub TxInfoFlags: u32, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_ID_GLOBAL_TX_DIR_INFORMATION {} +impl ::core::clone::Clone for FILE_ID_GLOBAL_TX_DIR_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct FILE_ID_INFORMATION { + pub VolumeSerialNumber: u64, + pub FileId: super::super::super::Win32::Storage::FileSystem::FILE_ID_128, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for FILE_ID_INFORMATION {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for FILE_ID_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_WindowsProgramming\"`"] +#[cfg(feature = "Win32_System_WindowsProgramming")] +pub struct FILE_INFORMATION_DEFINITION { + pub Class: super::super::super::Win32::System::WindowsProgramming::FILE_INFORMATION_CLASS, + pub NextEntryOffset: u32, + pub FileNameLengthOffset: u32, + pub FileNameOffset: u32, +} +#[cfg(feature = "Win32_System_WindowsProgramming")] +impl ::core::marker::Copy for FILE_INFORMATION_DEFINITION {} +#[cfg(feature = "Win32_System_WindowsProgramming")] +impl ::core::clone::Clone for FILE_INFORMATION_DEFINITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_INTERNAL_INFORMATION { + pub IndexNumber: i64, +} +impl ::core::marker::Copy for FILE_INTERNAL_INFORMATION {} +impl ::core::clone::Clone for FILE_INTERNAL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_KNOWN_FOLDER_INFORMATION { + pub Type: FILE_KNOWN_FOLDER_TYPE, +} +impl ::core::marker::Copy for FILE_KNOWN_FOLDER_INFORMATION {} +impl ::core::clone::Clone for FILE_KNOWN_FOLDER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct FILE_LINKS_FULL_ID_INFORMATION { + pub BytesNeeded: u32, + pub EntriesReturned: u32, + pub Entry: FILE_LINK_ENTRY_FULL_ID_INFORMATION, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for FILE_LINKS_FULL_ID_INFORMATION {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for FILE_LINKS_FULL_ID_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_LINKS_INFORMATION { + pub BytesNeeded: u32, + pub EntriesReturned: u32, + pub Entry: FILE_LINK_ENTRY_INFORMATION, +} +impl ::core::marker::Copy for FILE_LINKS_INFORMATION {} +impl ::core::clone::Clone for FILE_LINKS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct FILE_LINK_ENTRY_FULL_ID_INFORMATION { + pub NextEntryOffset: u32, + pub ParentFileId: super::super::super::Win32::Storage::FileSystem::FILE_ID_128, + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for FILE_LINK_ENTRY_FULL_ID_INFORMATION {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for FILE_LINK_ENTRY_FULL_ID_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_LINK_ENTRY_INFORMATION { + pub NextEntryOffset: u32, + pub ParentFileId: i64, + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_LINK_ENTRY_INFORMATION {} +impl ::core::clone::Clone for FILE_LINK_ENTRY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_LINK_INFORMATION { + pub Anonymous: FILE_LINK_INFORMATION_0, + pub RootDirectory: super::super::super::Win32::Foundation::HANDLE, + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_LINK_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_LINK_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union FILE_LINK_INFORMATION_0 { + pub ReplaceIfExists: super::super::super::Win32::Foundation::BOOLEAN, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_LINK_INFORMATION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_LINK_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FILE_LOCK { + pub CompleteLockIrpRoutine: PCOMPLETE_LOCK_IRP_ROUTINE, + pub UnlockRoutine: PUNLOCK_ROUTINE, + pub FastIoIsQuestionable: super::super::super::Win32::Foundation::BOOLEAN, + pub SpareC: [super::super::super::Win32::Foundation::BOOLEAN; 3], + pub LockInformation: *mut ::core::ffi::c_void, + pub LastReturnedLockInfo: FILE_LOCK_INFO, + pub LastReturnedLock: *mut ::core::ffi::c_void, + pub LockRequestsInProgress: i32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FILE_LOCK {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FILE_LOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FILE_LOCK_INFO { + pub StartingByte: i64, + pub Length: i64, + pub ExclusiveLock: super::super::super::Win32::Foundation::BOOLEAN, + pub Key: u32, + pub FileObject: *mut super::super::Foundation::FILE_OBJECT, + pub ProcessId: *mut ::core::ffi::c_void, + pub EndingByte: i64, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FILE_LOCK_INFO {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FILE_LOCK_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_MAILSLOT_QUERY_INFORMATION { + pub MaximumMessageSize: u32, + pub MailslotQuota: u32, + pub NextMessageSize: u32, + pub MessagesAvailable: u32, + pub ReadTimeout: i64, +} +impl ::core::marker::Copy for FILE_MAILSLOT_QUERY_INFORMATION {} +impl ::core::clone::Clone for FILE_MAILSLOT_QUERY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_MAILSLOT_SET_INFORMATION { + pub ReadTimeout: *mut i64, +} +impl ::core::marker::Copy for FILE_MAILSLOT_SET_INFORMATION {} +impl ::core::clone::Clone for FILE_MAILSLOT_SET_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_MODE_INFORMATION { + pub Mode: u32, +} +impl ::core::marker::Copy for FILE_MODE_INFORMATION {} +impl ::core::clone::Clone for FILE_MODE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_MOVE_CLUSTER_INFORMATION { + pub ClusterCount: u32, + pub RootDirectory: super::super::super::Win32::Foundation::HANDLE, + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_MOVE_CLUSTER_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_MOVE_CLUSTER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_NAMES_INFORMATION { + pub NextEntryOffset: u32, + pub FileIndex: u32, + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_NAMES_INFORMATION {} +impl ::core::clone::Clone for FILE_NAMES_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_NAME_INFORMATION { + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_NAME_INFORMATION {} +impl ::core::clone::Clone for FILE_NAME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_NETWORK_OPEN_INFORMATION { + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub AllocationSize: i64, + pub EndOfFile: i64, + pub FileAttributes: u32, +} +impl ::core::marker::Copy for FILE_NETWORK_OPEN_INFORMATION {} +impl ::core::clone::Clone for FILE_NETWORK_OPEN_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_NETWORK_PHYSICAL_NAME_INFORMATION { + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_NETWORK_PHYSICAL_NAME_INFORMATION {} +impl ::core::clone::Clone for FILE_NETWORK_PHYSICAL_NAME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_OBJECTID_INFORMATION { + pub FileReference: i64, + pub ObjectId: [u8; 16], + pub Anonymous: FILE_OBJECTID_INFORMATION_0, +} +impl ::core::marker::Copy for FILE_OBJECTID_INFORMATION {} +impl ::core::clone::Clone for FILE_OBJECTID_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FILE_OBJECTID_INFORMATION_0 { + pub Anonymous: FILE_OBJECTID_INFORMATION_0_0, + pub ExtendedInfo: [u8; 48], +} +impl ::core::marker::Copy for FILE_OBJECTID_INFORMATION_0 {} +impl ::core::clone::Clone for FILE_OBJECTID_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_OBJECTID_INFORMATION_0_0 { + pub BirthVolumeId: [u8; 16], + pub BirthObjectId: [u8; 16], + pub DomainId: [u8; 16], +} +impl ::core::marker::Copy for FILE_OBJECTID_INFORMATION_0_0 {} +impl ::core::clone::Clone for FILE_OBJECTID_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_PIPE_ASSIGN_EVENT_BUFFER { + pub EventHandle: super::super::super::Win32::Foundation::HANDLE, + pub KeyValue: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_PIPE_ASSIGN_EVENT_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_PIPE_ASSIGN_EVENT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PIPE_CLIENT_PROCESS_BUFFER { + pub ClientSession: *mut ::core::ffi::c_void, + pub ClientProcess: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for FILE_PIPE_CLIENT_PROCESS_BUFFER {} +impl ::core::clone::Clone for FILE_PIPE_CLIENT_PROCESS_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PIPE_CLIENT_PROCESS_BUFFER_EX { + pub ClientSession: *mut ::core::ffi::c_void, + pub ClientProcess: *mut ::core::ffi::c_void, + pub ClientComputerNameLength: u16, + pub ClientComputerBuffer: [u16; 16], +} +impl ::core::marker::Copy for FILE_PIPE_CLIENT_PROCESS_BUFFER_EX {} +impl ::core::clone::Clone for FILE_PIPE_CLIENT_PROCESS_BUFFER_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PIPE_CLIENT_PROCESS_BUFFER_V2 { + pub ClientSession: u64, + pub ClientProcess: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for FILE_PIPE_CLIENT_PROCESS_BUFFER_V2 {} +impl ::core::clone::Clone for FILE_PIPE_CLIENT_PROCESS_BUFFER_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PIPE_CREATE_SYMLINK_INPUT { + pub NameOffset: u16, + pub NameLength: u16, + pub SubstituteNameOffset: u16, + pub SubstituteNameLength: u16, + pub Flags: u32, +} +impl ::core::marker::Copy for FILE_PIPE_CREATE_SYMLINK_INPUT {} +impl ::core::clone::Clone for FILE_PIPE_CREATE_SYMLINK_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PIPE_DELETE_SYMLINK_INPUT { + pub NameOffset: u16, + pub NameLength: u16, +} +impl ::core::marker::Copy for FILE_PIPE_DELETE_SYMLINK_INPUT {} +impl ::core::clone::Clone for FILE_PIPE_DELETE_SYMLINK_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PIPE_EVENT_BUFFER { + pub NamedPipeState: u32, + pub EntryType: u32, + pub ByteCount: u32, + pub KeyValue: u32, + pub NumberRequests: u32, +} +impl ::core::marker::Copy for FILE_PIPE_EVENT_BUFFER {} +impl ::core::clone::Clone for FILE_PIPE_EVENT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PIPE_INFORMATION { + pub ReadMode: u32, + pub CompletionMode: u32, +} +impl ::core::marker::Copy for FILE_PIPE_INFORMATION {} +impl ::core::clone::Clone for FILE_PIPE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PIPE_LOCAL_INFORMATION { + pub NamedPipeType: u32, + pub NamedPipeConfiguration: u32, + pub MaximumInstances: u32, + pub CurrentInstances: u32, + pub InboundQuota: u32, + pub ReadDataAvailable: u32, + pub OutboundQuota: u32, + pub WriteQuotaAvailable: u32, + pub NamedPipeState: u32, + pub NamedPipeEnd: u32, +} +impl ::core::marker::Copy for FILE_PIPE_LOCAL_INFORMATION {} +impl ::core::clone::Clone for FILE_PIPE_LOCAL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PIPE_PEEK_BUFFER { + pub NamedPipeState: u32, + pub ReadDataAvailable: u32, + pub NumberOfMessages: u32, + pub MessageLength: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for FILE_PIPE_PEEK_BUFFER {} +impl ::core::clone::Clone for FILE_PIPE_PEEK_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PIPE_REMOTE_INFORMATION { + pub CollectDataTime: i64, + pub MaximumCollectionCount: u32, +} +impl ::core::marker::Copy for FILE_PIPE_REMOTE_INFORMATION {} +impl ::core::clone::Clone for FILE_PIPE_REMOTE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_PIPE_SILO_ARRIVAL_INPUT { + pub JobHandle: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_PIPE_SILO_ARRIVAL_INPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_PIPE_SILO_ARRIVAL_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_PIPE_WAIT_FOR_BUFFER { + pub Timeout: i64, + pub NameLength: u32, + pub TimeoutSpecified: super::super::super::Win32::Foundation::BOOLEAN, + pub Name: [u16; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_PIPE_WAIT_FOR_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_PIPE_WAIT_FOR_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_POSITION_INFORMATION { + pub CurrentByteOffset: i64, +} +impl ::core::marker::Copy for FILE_POSITION_INFORMATION {} +impl ::core::clone::Clone for FILE_POSITION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct FILE_QUOTA_INFORMATION { + pub NextEntryOffset: u32, + pub SidLength: u32, + pub ChangeTime: i64, + pub QuotaUsed: i64, + pub QuotaThreshold: i64, + pub QuotaLimit: i64, + pub Sid: super::super::super::Win32::Security::SID, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for FILE_QUOTA_INFORMATION {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for FILE_QUOTA_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REMOTE_PROTOCOL_INFORMATION { + pub StructureVersion: u16, + pub StructureSize: u16, + pub Protocol: u32, + pub ProtocolMajorVersion: u16, + pub ProtocolMinorVersion: u16, + pub ProtocolRevision: u16, + pub Reserved: u16, + pub Flags: u32, + pub GenericReserved: FILE_REMOTE_PROTOCOL_INFORMATION_0, + pub ProtocolSpecific: FILE_REMOTE_PROTOCOL_INFORMATION_1, +} +impl ::core::marker::Copy for FILE_REMOTE_PROTOCOL_INFORMATION {} +impl ::core::clone::Clone for FILE_REMOTE_PROTOCOL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REMOTE_PROTOCOL_INFORMATION_0 { + pub Reserved: [u32; 8], +} +impl ::core::marker::Copy for FILE_REMOTE_PROTOCOL_INFORMATION_0 {} +impl ::core::clone::Clone for FILE_REMOTE_PROTOCOL_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FILE_REMOTE_PROTOCOL_INFORMATION_1 { + pub Smb2: FILE_REMOTE_PROTOCOL_INFORMATION_1_0, + pub Reserved: [u32; 16], +} +impl ::core::marker::Copy for FILE_REMOTE_PROTOCOL_INFORMATION_1 {} +impl ::core::clone::Clone for FILE_REMOTE_PROTOCOL_INFORMATION_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REMOTE_PROTOCOL_INFORMATION_1_0 { + pub Server: FILE_REMOTE_PROTOCOL_INFORMATION_1_0_0, + pub Share: FILE_REMOTE_PROTOCOL_INFORMATION_1_0_1, +} +impl ::core::marker::Copy for FILE_REMOTE_PROTOCOL_INFORMATION_1_0 {} +impl ::core::clone::Clone for FILE_REMOTE_PROTOCOL_INFORMATION_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REMOTE_PROTOCOL_INFORMATION_1_0_0 { + pub Capabilities: u32, +} +impl ::core::marker::Copy for FILE_REMOTE_PROTOCOL_INFORMATION_1_0_0 {} +impl ::core::clone::Clone for FILE_REMOTE_PROTOCOL_INFORMATION_1_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REMOTE_PROTOCOL_INFORMATION_1_0_1 { + pub Capabilities: u32, + pub ShareFlags: u32, + pub ShareType: u8, + pub Reserved0: [u8; 3], + pub Reserved1: u32, +} +impl ::core::marker::Copy for FILE_REMOTE_PROTOCOL_INFORMATION_1_0_1 {} +impl ::core::clone::Clone for FILE_REMOTE_PROTOCOL_INFORMATION_1_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_RENAME_INFORMATION { + pub Anonymous: FILE_RENAME_INFORMATION_0, + pub RootDirectory: super::super::super::Win32::Foundation::HANDLE, + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_RENAME_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_RENAME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union FILE_RENAME_INFORMATION_0 { + pub ReplaceIfExists: super::super::super::Win32::Foundation::BOOLEAN, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_RENAME_INFORMATION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_RENAME_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REPARSE_POINT_INFORMATION { + pub FileReference: i64, + pub Tag: u32, +} +impl ::core::marker::Copy for FILE_REPARSE_POINT_INFORMATION {} +impl ::core::clone::Clone for FILE_REPARSE_POINT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_STANDARD_INFORMATION { + pub AllocationSize: i64, + pub EndOfFile: i64, + pub NumberOfLinks: u32, + pub DeletePending: super::super::super::Win32::Foundation::BOOLEAN, + pub Directory: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_STANDARD_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_STANDARD_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_STANDARD_LINK_INFORMATION { + pub NumberOfAccessibleLinks: u32, + pub TotalNumberOfLinks: u32, + pub DeletePending: super::super::super::Win32::Foundation::BOOLEAN, + pub Directory: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_STANDARD_LINK_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_STANDARD_LINK_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_STAT_INFORMATION { + pub FileId: i64, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub AllocationSize: i64, + pub EndOfFile: i64, + pub FileAttributes: u32, + pub ReparseTag: u32, + pub NumberOfLinks: u32, + pub EffectiveAccess: u32, +} +impl ::core::marker::Copy for FILE_STAT_INFORMATION {} +impl ::core::clone::Clone for FILE_STAT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_STAT_LX_INFORMATION { + pub FileId: i64, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub AllocationSize: i64, + pub EndOfFile: i64, + pub FileAttributes: u32, + pub ReparseTag: u32, + pub NumberOfLinks: u32, + pub EffectiveAccess: u32, + pub LxFlags: u32, + pub LxUid: u32, + pub LxGid: u32, + pub LxMode: u32, + pub LxDeviceIdMajor: u32, + pub LxDeviceIdMinor: u32, +} +impl ::core::marker::Copy for FILE_STAT_LX_INFORMATION {} +impl ::core::clone::Clone for FILE_STAT_LX_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Ioctl\"`"] +#[cfg(feature = "Win32_System_Ioctl")] +pub struct FILE_STORAGE_RESERVE_ID_INFORMATION { + pub StorageReserveId: super::super::super::Win32::System::Ioctl::STORAGE_RESERVE_ID, +} +#[cfg(feature = "Win32_System_Ioctl")] +impl ::core::marker::Copy for FILE_STORAGE_RESERVE_ID_INFORMATION {} +#[cfg(feature = "Win32_System_Ioctl")] +impl ::core::clone::Clone for FILE_STORAGE_RESERVE_ID_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_STREAM_INFORMATION { + pub NextEntryOffset: u32, + pub StreamNameLength: u32, + pub StreamSize: i64, + pub StreamAllocationSize: i64, + pub StreamName: [u16; 1], +} +impl ::core::marker::Copy for FILE_STREAM_INFORMATION {} +impl ::core::clone::Clone for FILE_STREAM_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_TIMESTAMPS { + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, +} +impl ::core::marker::Copy for FILE_TIMESTAMPS {} +impl ::core::clone::Clone for FILE_TIMESTAMPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_TRACKING_INFORMATION { + pub DestinationFile: super::super::super::Win32::Foundation::HANDLE, + pub ObjectInformationLength: u32, + pub ObjectInformation: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_TRACKING_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_TRACKING_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_VOLUME_NAME_INFORMATION { + pub DeviceNameLength: u32, + pub DeviceName: [u16; 1], +} +impl ::core::marker::Copy for FILE_VOLUME_NAME_INFORMATION {} +impl ::core::clone::Clone for FILE_VOLUME_NAME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_GHOST_FILE_EXTENTS_INPUT_BUFFER { + pub FileOffset: i64, + pub ByteCount: i64, + pub RecallOwnerGuid: ::windows_sys::core::GUID, + pub RecallMetadataBufferSize: u32, + pub RecallMetadataBuffer: [u8; 1], +} +impl ::core::marker::Copy for FSCTL_GHOST_FILE_EXTENTS_INPUT_BUFFER {} +impl ::core::clone::Clone for FSCTL_GHOST_FILE_EXTENTS_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_QUERY_GHOSTED_FILE_EXTENTS_INPUT_RANGE { + pub FileOffset: i64, + pub ByteCount: i64, +} +impl ::core::marker::Copy for FSCTL_QUERY_GHOSTED_FILE_EXTENTS_INPUT_RANGE {} +impl ::core::clone::Clone for FSCTL_QUERY_GHOSTED_FILE_EXTENTS_INPUT_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_QUERY_GHOSTED_FILE_EXTENTS_OUTPUT { + pub ExtentCount: u32, + pub TotalExtentCount: u32, + pub Extents: [u8; 1], +} +impl ::core::marker::Copy for FSCTL_QUERY_GHOSTED_FILE_EXTENTS_OUTPUT {} +impl ::core::clone::Clone for FSCTL_QUERY_GHOSTED_FILE_EXTENTS_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_QUERY_VOLUME_NUMA_INFO_OUTPUT { + pub NumaNode: u32, +} +impl ::core::marker::Copy for FSCTL_QUERY_VOLUME_NUMA_INFO_OUTPUT {} +impl ::core::clone::Clone for FSCTL_QUERY_VOLUME_NUMA_INFO_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_UNMAP_SPACE_INPUT_BUFFER { + pub BytesToUnmap: i64, +} +impl ::core::marker::Copy for FSCTL_UNMAP_SPACE_INPUT_BUFFER {} +impl ::core::clone::Clone for FSCTL_UNMAP_SPACE_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_UNMAP_SPACE_OUTPUT { + pub BytesUnmapped: i64, +} +impl ::core::marker::Copy for FSCTL_UNMAP_SPACE_OUTPUT {} +impl ::core::clone::Clone for FSCTL_UNMAP_SPACE_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct FSRTL_ADVANCED_FCB_HEADER { + pub Base: FSRTL_COMMON_FCB_HEADER, + pub FastMutex: *mut super::super::Foundation::FAST_MUTEX, + pub FilterContexts: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub PushLock: usize, + pub FileContextSupportPointer: *mut *mut ::core::ffi::c_void, + pub Anonymous: FSRTL_ADVANCED_FCB_HEADER_0, + pub AePushLock: *mut ::core::ffi::c_void, + pub BypassIoOpenCount: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for FSRTL_ADVANCED_FCB_HEADER {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for FSRTL_ADVANCED_FCB_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union FSRTL_ADVANCED_FCB_HEADER_0 { + pub Oplock: *mut ::core::ffi::c_void, + pub ReservedForRemote: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for FSRTL_ADVANCED_FCB_HEADER_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for FSRTL_ADVANCED_FCB_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct FSRTL_AUXILIARY_BUFFER { + pub Buffer: *mut ::core::ffi::c_void, + pub Length: u32, + pub Flags: u32, + pub Mdl: *mut super::super::Foundation::MDL, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for FSRTL_AUXILIARY_BUFFER {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for FSRTL_AUXILIARY_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +pub struct FSRTL_COMMON_FCB_HEADER { + pub NodeTypeCode: i16, + pub NodeByteSize: i16, + pub Flags: u8, + pub IsFastIoPossible: u8, + pub Flags2: u8, + pub _bitfield: u8, + pub Resource: *mut super::super::Foundation::ERESOURCE, + pub PagingIoResource: *mut super::super::Foundation::ERESOURCE, + pub AllocationSize: i64, + pub FileSize: i64, + pub ValidDataLength: i64, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for FSRTL_COMMON_FCB_HEADER {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for FSRTL_COMMON_FCB_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSRTL_MUP_PROVIDER_INFO_LEVEL_1 { + pub ProviderId: u32, +} +impl ::core::marker::Copy for FSRTL_MUP_PROVIDER_INFO_LEVEL_1 {} +impl ::core::clone::Clone for FSRTL_MUP_PROVIDER_INFO_LEVEL_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FSRTL_MUP_PROVIDER_INFO_LEVEL_2 { + pub ProviderId: u32, + pub ProviderName: super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FSRTL_MUP_PROVIDER_INFO_LEVEL_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FSRTL_MUP_PROVIDER_INFO_LEVEL_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct FSRTL_PER_FILEOBJECT_CONTEXT { + pub Links: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub OwnerId: *mut ::core::ffi::c_void, + pub InstanceId: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for FSRTL_PER_FILEOBJECT_CONTEXT {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for FSRTL_PER_FILEOBJECT_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +pub struct FSRTL_PER_FILE_CONTEXT { + pub Links: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub OwnerId: *mut ::core::ffi::c_void, + pub InstanceId: *mut ::core::ffi::c_void, + pub FreeCallback: super::super::Foundation::PFREE_FUNCTION, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for FSRTL_PER_FILE_CONTEXT {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for FSRTL_PER_FILE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +pub struct FSRTL_PER_STREAM_CONTEXT { + pub Links: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub OwnerId: *mut ::core::ffi::c_void, + pub InstanceId: *mut ::core::ffi::c_void, + pub FreeCallback: super::super::Foundation::PFREE_FUNCTION, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for FSRTL_PER_STREAM_CONTEXT {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for FSRTL_PER_STREAM_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSRTL_UNC_PROVIDER_REGISTRATION { + pub Size: u16, + pub Version: u16, + pub Anonymous1: FSRTL_UNC_PROVIDER_REGISTRATION_0, + pub Anonymous2: FSRTL_UNC_PROVIDER_REGISTRATION_1, +} +impl ::core::marker::Copy for FSRTL_UNC_PROVIDER_REGISTRATION {} +impl ::core::clone::Clone for FSRTL_UNC_PROVIDER_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FSRTL_UNC_PROVIDER_REGISTRATION_0 { + pub ProviderFlags: u32, + pub Anonymous: FSRTL_UNC_PROVIDER_REGISTRATION_0_0, +} +impl ::core::marker::Copy for FSRTL_UNC_PROVIDER_REGISTRATION_0 {} +impl ::core::clone::Clone for FSRTL_UNC_PROVIDER_REGISTRATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSRTL_UNC_PROVIDER_REGISTRATION_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for FSRTL_UNC_PROVIDER_REGISTRATION_0_0 {} +impl ::core::clone::Clone for FSRTL_UNC_PROVIDER_REGISTRATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FSRTL_UNC_PROVIDER_REGISTRATION_1 { + pub HardeningCapabilities: u32, + pub Anonymous: FSRTL_UNC_PROVIDER_REGISTRATION_1_0, +} +impl ::core::marker::Copy for FSRTL_UNC_PROVIDER_REGISTRATION_1 {} +impl ::core::clone::Clone for FSRTL_UNC_PROVIDER_REGISTRATION_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSRTL_UNC_PROVIDER_REGISTRATION_1_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for FSRTL_UNC_PROVIDER_REGISTRATION_1_0 {} +impl ::core::clone::Clone for FSRTL_UNC_PROVIDER_REGISTRATION_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FS_BPIO_INFO { + pub ActiveBypassIoCount: u32, + pub StorageDriverNameLen: u16, + pub StorageDriverName: [u16; 32], +} +impl ::core::marker::Copy for FS_BPIO_INFO {} +impl ::core::clone::Clone for FS_BPIO_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Ioctl\"`"] +#[cfg(feature = "Win32_System_Ioctl")] +pub struct FS_BPIO_INPUT { + pub Operation: super::super::super::Win32::System::Ioctl::FS_BPIO_OPERATIONS, + pub InFlags: super::super::super::Win32::System::Ioctl::FS_BPIO_INFLAGS, + pub Reserved1: u64, + pub Reserved2: u64, +} +#[cfg(feature = "Win32_System_Ioctl")] +impl ::core::marker::Copy for FS_BPIO_INPUT {} +#[cfg(feature = "Win32_System_Ioctl")] +impl ::core::clone::Clone for FS_BPIO_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FS_FILTER_CALLBACKS { + pub SizeOfFsFilterCallbacks: u32, + pub Reserved: u32, + pub PreAcquireForSectionSynchronization: PFS_FILTER_CALLBACK, + pub PostAcquireForSectionSynchronization: PFS_FILTER_COMPLETION_CALLBACK, + pub PreReleaseForSectionSynchronization: PFS_FILTER_CALLBACK, + pub PostReleaseForSectionSynchronization: PFS_FILTER_COMPLETION_CALLBACK, + pub PreAcquireForCcFlush: PFS_FILTER_CALLBACK, + pub PostAcquireForCcFlush: PFS_FILTER_COMPLETION_CALLBACK, + pub PreReleaseForCcFlush: PFS_FILTER_CALLBACK, + pub PostReleaseForCcFlush: PFS_FILTER_COMPLETION_CALLBACK, + pub PreAcquireForModifiedPageWriter: PFS_FILTER_CALLBACK, + pub PostAcquireForModifiedPageWriter: PFS_FILTER_COMPLETION_CALLBACK, + pub PreReleaseForModifiedPageWriter: PFS_FILTER_CALLBACK, + pub PostReleaseForModifiedPageWriter: PFS_FILTER_COMPLETION_CALLBACK, + pub PreQueryOpen: PFS_FILTER_CALLBACK, + pub PostQueryOpen: PFS_FILTER_COMPLETION_CALLBACK, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FS_FILTER_CALLBACKS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FS_FILTER_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FS_FILTER_CALLBACK_DATA { + pub SizeOfFsFilterCallbackData: u32, + pub Operation: u8, + pub Reserved: u8, + pub DeviceObject: *mut super::super::Foundation::DEVICE_OBJECT, + pub FileObject: *mut super::super::Foundation::FILE_OBJECT, + pub Parameters: FS_FILTER_PARAMETERS, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FS_FILTER_CALLBACK_DATA {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FS_FILTER_CALLBACK_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union FS_FILTER_PARAMETERS { + pub AcquireForModifiedPageWriter: FS_FILTER_PARAMETERS_0, + pub ReleaseForModifiedPageWriter: FS_FILTER_PARAMETERS_4, + pub AcquireForSectionSynchronization: FS_FILTER_PARAMETERS_1, + pub QueryOpen: FS_FILTER_PARAMETERS_3, + pub Others: FS_FILTER_PARAMETERS_2, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FS_FILTER_PARAMETERS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FS_FILTER_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FS_FILTER_PARAMETERS_0 { + pub EndingOffset: *mut i64, + pub ResourceToRelease: *mut *mut super::super::Foundation::ERESOURCE, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FS_FILTER_PARAMETERS_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FS_FILTER_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FS_FILTER_PARAMETERS_1 { + pub SyncType: FS_FILTER_SECTION_SYNC_TYPE, + pub PageProtection: u32, + pub OutputInformation: *mut FS_FILTER_SECTION_SYNC_OUTPUT, + pub Flags: u32, + pub AllocationAttributes: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FS_FILTER_PARAMETERS_1 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FS_FILTER_PARAMETERS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FS_FILTER_PARAMETERS_2 { + pub Argument1: *mut ::core::ffi::c_void, + pub Argument2: *mut ::core::ffi::c_void, + pub Argument3: *mut ::core::ffi::c_void, + pub Argument4: *mut ::core::ffi::c_void, + pub Argument5: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FS_FILTER_PARAMETERS_2 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FS_FILTER_PARAMETERS_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FS_FILTER_PARAMETERS_3 { + pub Irp: *mut super::super::Foundation::IRP, + pub FileInformation: *mut ::core::ffi::c_void, + pub Length: *mut u32, + pub FileInformationClass: super::super::super::Win32::System::WindowsProgramming::FILE_INFORMATION_CLASS, + pub CompletionStatus: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FS_FILTER_PARAMETERS_3 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FS_FILTER_PARAMETERS_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FS_FILTER_PARAMETERS_4 { + pub ResourceToRelease: *mut super::super::Foundation::ERESOURCE, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FS_FILTER_PARAMETERS_4 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FS_FILTER_PARAMETERS_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FS_FILTER_SECTION_SYNC_OUTPUT { + pub StructureSize: u32, + pub SizeReturned: u32, + pub Flags: u32, + pub DesiredReadAlignment: u32, +} +impl ::core::marker::Copy for FS_FILTER_SECTION_SYNC_OUTPUT {} +impl ::core::clone::Clone for FS_FILTER_SECTION_SYNC_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GENERATE_NAME_CONTEXT { + pub Checksum: u16, + pub ChecksumInserted: super::super::super::Win32::Foundation::BOOLEAN, + pub NameLength: u8, + pub NameBuffer: [u16; 8], + pub ExtensionLength: u32, + pub ExtensionBuffer: [u16; 4], + pub LastIndexValue: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GENERATE_NAME_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GENERATE_NAME_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GHOSTED_FILE_EXTENT { + pub FileOffset: i64, + pub ByteCount: i64, + pub RecallOwnerGuid: ::windows_sys::core::GUID, + pub NextEntryOffset: u32, + pub RecallMetadataBufferSize: u32, + pub RecallMetadataBuffer: [u8; 1], +} +impl ::core::marker::Copy for GHOSTED_FILE_EXTENT {} +impl ::core::clone::Clone for GHOSTED_FILE_EXTENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_CREATE_STREAM_FILE_OPTIONS { + pub Size: u16, + pub Flags: u16, + pub TargetDeviceObject: *mut super::super::Foundation::DEVICE_OBJECT, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_CREATE_STREAM_FILE_OPTIONS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_CREATE_STREAM_FILE_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_DEVICE_HINT_ECP_CONTEXT { + pub TargetDevice: *mut super::super::Foundation::DEVICE_OBJECT, + pub RemainingName: super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_DEVICE_HINT_ECP_CONTEXT {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_DEVICE_HINT_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct IO_PRIORITY_INFO { + pub Size: u32, + pub ThreadPriority: u32, + pub PagePriority: u32, + pub IoPriority: super::super::Foundation::IO_PRIORITY_HINT, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IO_PRIORITY_INFO {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IO_PRIORITY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_STOP_ON_SYMLINK_FILTER_ECP_v0 { + pub Out: IO_STOP_ON_SYMLINK_FILTER_ECP_v0_0, +} +impl ::core::marker::Copy for IO_STOP_ON_SYMLINK_FILTER_ECP_v0 {} +impl ::core::clone::Clone for IO_STOP_ON_SYMLINK_FILTER_ECP_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_STOP_ON_SYMLINK_FILTER_ECP_v0_0 { + pub ReparseCount: u32, + pub RemainingPathLength: u32, +} +impl ::core::marker::Copy for IO_STOP_ON_SYMLINK_FILTER_ECP_v0_0 {} +impl ::core::clone::Clone for IO_STOP_ON_SYMLINK_FILTER_ECP_v0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KAPC_STATE { + pub ApcListHead: [super::super::super::Win32::System::Kernel::LIST_ENTRY; 2], + pub Process: *mut isize, + pub Anonymous1: KAPC_STATE_0, + pub KernelApcPending: super::super::super::Win32::Foundation::BOOLEAN, + pub Anonymous2: KAPC_STATE_1, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KAPC_STATE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KAPC_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union KAPC_STATE_0 { + pub InProgressFlags: u8, + pub Anonymous: KAPC_STATE_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KAPC_STATE_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KAPC_STATE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KAPC_STATE_0_0 { + pub _bitfield: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KAPC_STATE_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KAPC_STATE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union KAPC_STATE_1 { + pub UserApcPendingAll: super::super::super::Win32::Foundation::BOOLEAN, + pub Anonymous: KAPC_STATE_1_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KAPC_STATE_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KAPC_STATE_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KAPC_STATE_1_0 { + pub _bitfield: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KAPC_STATE_1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KAPC_STATE_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct LARGE_MCB { + pub GuardedMutex: *mut super::super::Foundation::FAST_MUTEX, + pub BaseMcb: BASE_MCB, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for LARGE_MCB {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for LARGE_MCB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LCN_WEAK_REFERENCE_BUFFER { + pub Lcn: i64, + pub LengthInClusters: i64, + pub ReferenceCount: u32, + pub State: u16, +} +impl ::core::marker::Copy for LCN_WEAK_REFERENCE_BUFFER {} +impl ::core::clone::Clone for LCN_WEAK_REFERENCE_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LCN_WEAK_REFERENCE_CREATE_INPUT_BUFFER { + pub Offset: i64, + pub Length: i64, + pub Flags: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for LCN_WEAK_REFERENCE_CREATE_INPUT_BUFFER {} +impl ::core::clone::Clone for LCN_WEAK_REFERENCE_CREATE_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LINK_TRACKING_INFORMATION { + pub Type: LINK_TRACKING_INFORMATION_TYPE, + pub VolumeId: [u8; 16], +} +impl ::core::marker::Copy for LINK_TRACKING_INFORMATION {} +impl ::core::clone::Clone for LINK_TRACKING_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct MCB { + pub DummyFieldThatSizesThisStructureCorrectly: LARGE_MCB, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for MCB {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for MCB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MEMORY_RANGE_ENTRY { + pub VirtualAddress: *mut ::core::ffi::c_void, + pub NumberOfBytes: usize, +} +impl ::core::marker::Copy for MEMORY_RANGE_ENTRY {} +impl ::core::clone::Clone for MEMORY_RANGE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MFT_ENUM_DATA { + pub StartFileReferenceNumber: u64, + pub LowUsn: i64, + pub HighUsn: i64, + pub MinMajorVersion: u16, + pub MaxMajorVersion: u16, +} +impl ::core::marker::Copy for MFT_ENUM_DATA {} +impl ::core::clone::Clone for MFT_ENUM_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MM_PREFETCH_FLAGS { + pub Flags: MM_PREFETCH_FLAGS_0, + pub AllFlags: u32, +} +impl ::core::marker::Copy for MM_PREFETCH_FLAGS {} +impl ::core::clone::Clone for MM_PREFETCH_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MM_PREFETCH_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for MM_PREFETCH_FLAGS_0 {} +impl ::core::clone::Clone for MM_PREFETCH_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Authentication_Identity\"`"] +#[cfg(feature = "Win32_Security_Authentication_Identity")] +pub struct MSV1_0_ENUMUSERS_REQUEST { + pub MessageType: super::super::super::Win32::Security::Authentication::Identity::MSV1_0_PROTOCOL_MESSAGE_TYPE, +} +#[cfg(feature = "Win32_Security_Authentication_Identity")] +impl ::core::marker::Copy for MSV1_0_ENUMUSERS_REQUEST {} +#[cfg(feature = "Win32_Security_Authentication_Identity")] +impl ::core::clone::Clone for MSV1_0_ENUMUSERS_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +pub struct MSV1_0_ENUMUSERS_RESPONSE { + pub MessageType: super::super::super::Win32::Security::Authentication::Identity::MSV1_0_PROTOCOL_MESSAGE_TYPE, + pub NumberOfLoggedOnUsers: u32, + pub LogonIds: *mut super::super::super::Win32::Foundation::LUID, + pub EnumHandles: *mut u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +impl ::core::marker::Copy for MSV1_0_ENUMUSERS_RESPONSE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +impl ::core::clone::Clone for MSV1_0_ENUMUSERS_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +pub struct MSV1_0_GETCHALLENRESP_REQUEST { + pub MessageType: super::super::super::Win32::Security::Authentication::Identity::MSV1_0_PROTOCOL_MESSAGE_TYPE, + pub ParameterControl: u32, + pub LogonId: super::super::super::Win32::Foundation::LUID, + pub Password: super::super::super::Win32::Foundation::UNICODE_STRING, + pub ChallengeToClient: [u8; 8], + pub UserName: super::super::super::Win32::Foundation::UNICODE_STRING, + pub LogonDomainName: super::super::super::Win32::Foundation::UNICODE_STRING, + pub ServerName: super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +impl ::core::marker::Copy for MSV1_0_GETCHALLENRESP_REQUEST {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +impl ::core::clone::Clone for MSV1_0_GETCHALLENRESP_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +pub struct MSV1_0_GETCHALLENRESP_REQUEST_V1 { + pub MessageType: super::super::super::Win32::Security::Authentication::Identity::MSV1_0_PROTOCOL_MESSAGE_TYPE, + pub ParameterControl: u32, + pub LogonId: super::super::super::Win32::Foundation::LUID, + pub Password: super::super::super::Win32::Foundation::UNICODE_STRING, + pub ChallengeToClient: [u8; 8], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +impl ::core::marker::Copy for MSV1_0_GETCHALLENRESP_REQUEST_V1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +impl ::core::clone::Clone for MSV1_0_GETCHALLENRESP_REQUEST_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_System_Kernel"))] +pub struct MSV1_0_GETCHALLENRESP_RESPONSE { + pub MessageType: super::super::super::Win32::Security::Authentication::Identity::MSV1_0_PROTOCOL_MESSAGE_TYPE, + pub CaseSensitiveChallengeResponse: super::super::super::Win32::System::Kernel::STRING, + pub CaseInsensitiveChallengeResponse: super::super::super::Win32::System::Kernel::STRING, + pub UserName: super::super::super::Win32::Foundation::UNICODE_STRING, + pub LogonDomainName: super::super::super::Win32::Foundation::UNICODE_STRING, + pub UserSessionKey: [u8; 16], + pub LanmanSessionKey: [u8; 8], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for MSV1_0_GETCHALLENRESP_RESPONSE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for MSV1_0_GETCHALLENRESP_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +pub struct MSV1_0_GETUSERINFO_REQUEST { + pub MessageType: super::super::super::Win32::Security::Authentication::Identity::MSV1_0_PROTOCOL_MESSAGE_TYPE, + pub LogonId: super::super::super::Win32::Foundation::LUID, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +impl ::core::marker::Copy for MSV1_0_GETUSERINFO_REQUEST {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +impl ::core::clone::Clone for MSV1_0_GETUSERINFO_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +pub struct MSV1_0_GETUSERINFO_RESPONSE { + pub MessageType: super::super::super::Win32::Security::Authentication::Identity::MSV1_0_PROTOCOL_MESSAGE_TYPE, + pub UserSid: super::super::super::Win32::Foundation::PSID, + pub UserName: super::super::super::Win32::Foundation::UNICODE_STRING, + pub LogonDomainName: super::super::super::Win32::Foundation::UNICODE_STRING, + pub LogonServer: super::super::super::Win32::Foundation::UNICODE_STRING, + pub LogonType: super::super::super::Win32::Security::Authentication::Identity::SECURITY_LOGON_TYPE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +impl ::core::marker::Copy for MSV1_0_GETUSERINFO_RESPONSE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +impl ::core::clone::Clone for MSV1_0_GETUSERINFO_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Authentication_Identity\"`"] +#[cfg(feature = "Win32_Security_Authentication_Identity")] +pub struct MSV1_0_LM20_CHALLENGE_REQUEST { + pub MessageType: super::super::super::Win32::Security::Authentication::Identity::MSV1_0_PROTOCOL_MESSAGE_TYPE, +} +#[cfg(feature = "Win32_Security_Authentication_Identity")] +impl ::core::marker::Copy for MSV1_0_LM20_CHALLENGE_REQUEST {} +#[cfg(feature = "Win32_Security_Authentication_Identity")] +impl ::core::clone::Clone for MSV1_0_LM20_CHALLENGE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Authentication_Identity\"`"] +#[cfg(feature = "Win32_Security_Authentication_Identity")] +pub struct MSV1_0_LM20_CHALLENGE_RESPONSE { + pub MessageType: super::super::super::Win32::Security::Authentication::Identity::MSV1_0_PROTOCOL_MESSAGE_TYPE, + pub ChallengeToClient: [u8; 8], +} +#[cfg(feature = "Win32_Security_Authentication_Identity")] +impl ::core::marker::Copy for MSV1_0_LM20_CHALLENGE_RESPONSE {} +#[cfg(feature = "Win32_Security_Authentication_Identity")] +impl ::core::clone::Clone for MSV1_0_LM20_CHALLENGE_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_APP_INSTANCE_ECP_CONTEXT { + pub Size: u16, + pub Reserved: u16, + pub AppInstanceID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NETWORK_APP_INSTANCE_ECP_CONTEXT {} +impl ::core::clone::Clone for NETWORK_APP_INSTANCE_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_APP_INSTANCE_VERSION_ECP_CONTEXT { + pub Size: u16, + pub Reserved: u16, + pub VersionHigh: u64, + pub VersionLow: u64, +} +impl ::core::marker::Copy for NETWORK_APP_INSTANCE_VERSION_ECP_CONTEXT {} +impl ::core::clone::Clone for NETWORK_APP_INSTANCE_VERSION_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_OPEN_ECP_CONTEXT { + pub Size: u16, + pub Reserved: u16, + pub Anonymous: NETWORK_OPEN_ECP_CONTEXT_0, +} +impl ::core::marker::Copy for NETWORK_OPEN_ECP_CONTEXT {} +impl ::core::clone::Clone for NETWORK_OPEN_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_OPEN_ECP_CONTEXT_0 { + pub r#in: NETWORK_OPEN_ECP_CONTEXT_0_0, + pub out: NETWORK_OPEN_ECP_CONTEXT_0_1, +} +impl ::core::marker::Copy for NETWORK_OPEN_ECP_CONTEXT_0 {} +impl ::core::clone::Clone for NETWORK_OPEN_ECP_CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_OPEN_ECP_CONTEXT_0_0 { + pub Location: NETWORK_OPEN_LOCATION_QUALIFIER, + pub Integrity: NETWORK_OPEN_INTEGRITY_QUALIFIER, + pub Flags: u32, +} +impl ::core::marker::Copy for NETWORK_OPEN_ECP_CONTEXT_0_0 {} +impl ::core::clone::Clone for NETWORK_OPEN_ECP_CONTEXT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_OPEN_ECP_CONTEXT_0_1 { + pub Location: NETWORK_OPEN_LOCATION_QUALIFIER, + pub Integrity: NETWORK_OPEN_INTEGRITY_QUALIFIER, + pub Flags: u32, +} +impl ::core::marker::Copy for NETWORK_OPEN_ECP_CONTEXT_0_1 {} +impl ::core::clone::Clone for NETWORK_OPEN_ECP_CONTEXT_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_OPEN_ECP_CONTEXT_V0 { + pub Size: u16, + pub Reserved: u16, + pub Anonymous: NETWORK_OPEN_ECP_CONTEXT_V0_0, +} +impl ::core::marker::Copy for NETWORK_OPEN_ECP_CONTEXT_V0 {} +impl ::core::clone::Clone for NETWORK_OPEN_ECP_CONTEXT_V0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_OPEN_ECP_CONTEXT_V0_0 { + pub r#in: NETWORK_OPEN_ECP_CONTEXT_V0_0_0, + pub out: NETWORK_OPEN_ECP_CONTEXT_V0_0_1, +} +impl ::core::marker::Copy for NETWORK_OPEN_ECP_CONTEXT_V0_0 {} +impl ::core::clone::Clone for NETWORK_OPEN_ECP_CONTEXT_V0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_OPEN_ECP_CONTEXT_V0_0_0 { + pub Location: NETWORK_OPEN_LOCATION_QUALIFIER, + pub Integrity: NETWORK_OPEN_INTEGRITY_QUALIFIER, +} +impl ::core::marker::Copy for NETWORK_OPEN_ECP_CONTEXT_V0_0_0 {} +impl ::core::clone::Clone for NETWORK_OPEN_ECP_CONTEXT_V0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_OPEN_ECP_CONTEXT_V0_0_1 { + pub Location: NETWORK_OPEN_LOCATION_QUALIFIER, + pub Integrity: NETWORK_OPEN_INTEGRITY_QUALIFIER, +} +impl ::core::marker::Copy for NETWORK_OPEN_ECP_CONTEXT_V0_0_1 {} +impl ::core::clone::Clone for NETWORK_OPEN_ECP_CONTEXT_V0_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct NFS_OPEN_ECP_CONTEXT { + pub ExportAlias: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub ClientSocketAddress: *mut super::super::super::Win32::Networking::WinSock::SOCKADDR_STORAGE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for NFS_OPEN_ECP_CONTEXT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for NFS_OPEN_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NLSTABLEINFO { + pub OemTableInfo: CPTABLEINFO, + pub AnsiTableInfo: CPTABLEINFO, + pub UpperCaseTable: *mut u16, + pub LowerCaseTable: *mut u16, +} +impl ::core::marker::Copy for NLSTABLEINFO {} +impl ::core::clone::Clone for NLSTABLEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct OPEN_REPARSE_LIST { + pub OpenReparseList: super::super::super::Win32::System::Kernel::LIST_ENTRY, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for OPEN_REPARSE_LIST {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for OPEN_REPARSE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct OPEN_REPARSE_LIST_ENTRY { + pub OpenReparseListEntry: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub ReparseTag: u32, + pub Flags: u32, + pub ReparseGuid: ::windows_sys::core::GUID, + pub Size: u16, + pub RemainingLength: u16, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for OPEN_REPARSE_LIST_ENTRY {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for OPEN_REPARSE_LIST_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OPLOCK_KEY_CONTEXT { + pub Version: u16, + pub Flags: u16, + pub ParentOplockKey: ::windows_sys::core::GUID, + pub TargetOplockKey: ::windows_sys::core::GUID, + pub Reserved: u32, +} +impl ::core::marker::Copy for OPLOCK_KEY_CONTEXT {} +impl ::core::clone::Clone for OPLOCK_KEY_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OPLOCK_KEY_ECP_CONTEXT { + pub OplockKey: ::windows_sys::core::GUID, + pub Reserved: u32, +} +impl ::core::marker::Copy for OPLOCK_KEY_ECP_CONTEXT {} +impl ::core::clone::Clone for OPLOCK_KEY_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct OPLOCK_NOTIFY_PARAMS { + pub NotifyReason: OPLOCK_NOTIFY_REASON, + pub NotifyContext: *mut ::core::ffi::c_void, + pub Irp: *mut super::super::Foundation::IRP, + pub Status: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for OPLOCK_NOTIFY_PARAMS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for OPLOCK_NOTIFY_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL_EXTENTS_DESCRIPTOR { + pub NumberOfRuns: u32, + pub NumberOfValidRuns: u32, + pub Run: [PHYSICAL_MEMORY_RUN; 1], +} +impl ::core::marker::Copy for PHYSICAL_EXTENTS_DESCRIPTOR {} +impl ::core::clone::Clone for PHYSICAL_EXTENTS_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL_MEMORY_DESCRIPTOR { + pub NumberOfRuns: u32, + pub NumberOfPages: u32, + pub Run: [PHYSICAL_MEMORY_RUN; 1], +} +impl ::core::marker::Copy for PHYSICAL_MEMORY_DESCRIPTOR {} +impl ::core::clone::Clone for PHYSICAL_MEMORY_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL_MEMORY_RUN { + pub BasePage: u32, + pub PageCount: u32, +} +impl ::core::marker::Copy for PHYSICAL_MEMORY_RUN {} +impl ::core::clone::Clone for PHYSICAL_MEMORY_RUN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PREFETCH_OPEN_ECP_CONTEXT { + pub Context: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for PREFETCH_OPEN_ECP_CONTEXT {} +impl ::core::clone::Clone for PREFETCH_OPEN_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +pub struct PREFIX_TABLE { + pub NodeTypeCode: i16, + pub NameLength: i16, + pub NextPrefixTree: *mut PREFIX_TABLE_ENTRY, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for PREFIX_TABLE {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for PREFIX_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +pub struct PREFIX_TABLE_ENTRY { + pub NodeTypeCode: i16, + pub NameLength: i16, + pub NextPrefixTree: *mut PREFIX_TABLE_ENTRY, + pub Links: super::super::Foundation::RTL_SPLAY_LINKS, + pub Prefix: *mut super::super::super::Win32::System::Kernel::STRING, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for PREFIX_TABLE_ENTRY {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for PREFIX_TABLE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PUBLIC_BCB { + pub NodeTypeCode: i16, + pub NodeByteSize: i16, + pub MappedLength: u32, + pub MappedFileOffset: i64, +} +impl ::core::marker::Copy for PUBLIC_BCB {} +impl ::core::clone::Clone for PUBLIC_BCB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Ioctl\"`"] +#[cfg(feature = "Win32_System_Ioctl")] +pub struct QUERY_BAD_RANGES_INPUT { + pub Flags: u32, + pub NumRanges: u32, + pub Ranges: [super::super::super::Win32::System::Ioctl::QUERY_BAD_RANGES_INPUT_RANGE; 1], +} +#[cfg(feature = "Win32_System_Ioctl")] +impl ::core::marker::Copy for QUERY_BAD_RANGES_INPUT {} +#[cfg(feature = "Win32_System_Ioctl")] +impl ::core::clone::Clone for QUERY_BAD_RANGES_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_DIRECT_ACCESS_EXTENTS { + pub FileOffset: i64, + pub Length: i64, + pub Flags: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for QUERY_DIRECT_ACCESS_EXTENTS {} +impl ::core::clone::Clone for QUERY_DIRECT_ACCESS_EXTENTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_ON_CREATE_EA_INFORMATION { + pub EaBufferSize: u32, + pub EaBuffer: *mut FILE_FULL_EA_INFORMATION, +} +impl ::core::marker::Copy for QUERY_ON_CREATE_EA_INFORMATION {} +impl ::core::clone::Clone for QUERY_ON_CREATE_EA_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_ON_CREATE_ECP_CONTEXT { + pub RequestedClasses: u32, + pub ClassesProcessed: u32, + pub ClassesWithErrors: u32, + pub ClassesWithNoData: u32, + pub StatInformation: QUERY_ON_CREATE_FILE_STAT_INFORMATION, + pub LxInformation: QUERY_ON_CREATE_FILE_LX_INFORMATION, + pub EaInformation: QUERY_ON_CREATE_EA_INFORMATION, +} +impl ::core::marker::Copy for QUERY_ON_CREATE_ECP_CONTEXT {} +impl ::core::clone::Clone for QUERY_ON_CREATE_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_ON_CREATE_FILE_LX_INFORMATION { + pub EffectiveAccess: u32, + pub LxFlags: u32, + pub LxUid: u32, + pub LxGid: u32, + pub LxMode: u32, + pub LxDeviceIdMajor: u32, + pub LxDeviceIdMinor: u32, +} +impl ::core::marker::Copy for QUERY_ON_CREATE_FILE_LX_INFORMATION {} +impl ::core::clone::Clone for QUERY_ON_CREATE_FILE_LX_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_ON_CREATE_FILE_STAT_INFORMATION { + pub FileId: i64, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub AllocationSize: i64, + pub EndOfFile: i64, + pub FileAttributes: u32, + pub ReparseTag: u32, + pub NumberOfLinks: u32, +} +impl ::core::marker::Copy for QUERY_ON_CREATE_FILE_STAT_INFORMATION {} +impl ::core::clone::Clone for QUERY_ON_CREATE_FILE_STAT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct QUERY_PATH_REQUEST { + pub PathNameLength: u32, + pub SecurityContext: *mut super::super::Foundation::IO_SECURITY_CONTEXT, + pub FilePathName: [u16; 1], +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for QUERY_PATH_REQUEST {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for QUERY_PATH_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct QUERY_PATH_REQUEST_EX { + pub pSecurityContext: *mut super::super::Foundation::IO_SECURITY_CONTEXT, + pub EaLength: u32, + pub pEaBuffer: *mut ::core::ffi::c_void, + pub PathName: super::super::super::Win32::Foundation::UNICODE_STRING, + pub DomainServiceName: super::super::super::Win32::Foundation::UNICODE_STRING, + pub EcpList: *mut super::super::Foundation::ECP_LIST, + pub Silo: super::super::Foundation::PESILO, + pub Reserved: usize, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for QUERY_PATH_REQUEST_EX {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for QUERY_PATH_REQUEST_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_PATH_RESPONSE { + pub LengthAccepted: u32, +} +impl ::core::marker::Copy for QUERY_PATH_RESPONSE {} +impl ::core::clone::Clone for QUERY_PATH_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READ_AHEAD_PARAMETERS { + pub NodeByteSize: i16, + pub Granularity: u32, + pub PipelinedRequestSize: u32, + pub ReadAheadGrowthPercentage: u32, +} +impl ::core::marker::Copy for READ_AHEAD_PARAMETERS {} +impl ::core::clone::Clone for READ_AHEAD_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct READ_LIST { + pub FileObject: *mut super::super::Foundation::FILE_OBJECT, + pub NumberOfEntries: u32, + pub IsImage: u32, + pub List: [super::super::super::Win32::Storage::FileSystem::FILE_SEGMENT_ELEMENT; 1], +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for READ_LIST {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for READ_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READ_USN_JOURNAL_DATA { + pub StartUsn: i64, + pub ReasonMask: u32, + pub ReturnOnlyOnClose: u32, + pub Timeout: u64, + pub BytesToWaitFor: u64, + pub UsnJournalID: u64, + pub MinMajorVersion: u16, + pub MaxMajorVersion: u16, +} +impl ::core::marker::Copy for READ_USN_JOURNAL_DATA {} +impl ::core::clone::Clone for READ_USN_JOURNAL_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_DEALLOCATE_RANGES_INPUT_BUFFER { + pub RangeCount: u32, + pub Ranges: [REFS_DEALLOCATE_RANGES_RANGE; 1], +} +impl ::core::marker::Copy for REFS_DEALLOCATE_RANGES_INPUT_BUFFER {} +impl ::core::clone::Clone for REFS_DEALLOCATE_RANGES_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_DEALLOCATE_RANGES_INPUT_BUFFER_EX { + pub RangeCount: u32, + pub Allocator: REFS_DEALLOCATE_RANGES_ALLOCATOR, + pub StreamReserveUpdateCount: i64, + pub OffsetToRanges: u32, + pub OffsetToLeakCounts: u32, + pub Reserved: [u64; 2], +} +impl ::core::marker::Copy for REFS_DEALLOCATE_RANGES_INPUT_BUFFER_EX {} +impl ::core::clone::Clone for REFS_DEALLOCATE_RANGES_INPUT_BUFFER_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_DEALLOCATE_RANGES_RANGE { + pub StartOfRange: u64, + pub CountOfRange: u64, +} +impl ::core::marker::Copy for REFS_DEALLOCATE_RANGES_RANGE {} +impl ::core::clone::Clone for REFS_DEALLOCATE_RANGES_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_QUERY_VOLUME_COMPRESSION_INFO_OUTPUT_BUFFER { + pub DefaultCompressionFormat: REFS_COMPRESSION_FORMATS, + pub DefaultCompressionLevel: i16, + pub DefaultCompressionChunkSizeBytes: u32, + pub VolumeClusterSizeBytes: u32, + pub TotalVolumeClusters: u64, + pub TotalAllocatedClusters: u64, + pub TotalCompressibleClustersAllocated: u64, + pub TotalCompressibleClustersInUse: u64, + pub TotalCompressedClusters: u64, + pub Reserved: [u64; 6], +} +impl ::core::marker::Copy for REFS_QUERY_VOLUME_COMPRESSION_INFO_OUTPUT_BUFFER {} +impl ::core::clone::Clone for REFS_QUERY_VOLUME_COMPRESSION_INFO_OUTPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REFS_QUERY_VOLUME_DEDUP_INFO_OUTPUT_BUFFER { + pub Enabled: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REFS_QUERY_VOLUME_DEDUP_INFO_OUTPUT_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REFS_QUERY_VOLUME_DEDUP_INFO_OUTPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_REMOVE_HARDLINK_BACKPOINTER { + pub ParentDirectory: u64, + pub Reserved: u64, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for REFS_REMOVE_HARDLINK_BACKPOINTER {} +impl ::core::clone::Clone for REFS_REMOVE_HARDLINK_BACKPOINTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_SET_VOLUME_COMPRESSION_INFO_INPUT_BUFFER { + pub CompressionFormat: REFS_COMPRESSION_FORMATS, + pub CompressionLevel: i16, + pub CompressionChunkSizeBytes: u32, + pub Flags: REFS_SET_VOLUME_COMPRESSION_INFO_FLAGS, + pub Reserved: [u64; 8], +} +impl ::core::marker::Copy for REFS_SET_VOLUME_COMPRESSION_INFO_INPUT_BUFFER {} +impl ::core::clone::Clone for REFS_SET_VOLUME_COMPRESSION_INFO_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REFS_SET_VOLUME_DEDUP_INFO_INPUT_BUFFER { + pub Enable: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REFS_SET_VOLUME_DEDUP_INFO_INPUT_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REFS_SET_VOLUME_DEDUP_INFO_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_STREAM_EXTENT { + pub Vcn: i64, + pub Lcn: i64, + pub Length: i64, + pub Properties: u16, +} +impl ::core::marker::Copy for REFS_STREAM_EXTENT {} +impl ::core::clone::Clone for REFS_STREAM_EXTENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_STREAM_SNAPSHOT_LIST_OUTPUT_BUFFER { + pub EntryCount: u32, + pub BufferSizeRequiredForQuery: u32, + pub Reserved: [u32; 2], + pub Entries: [REFS_STREAM_SNAPSHOT_LIST_OUTPUT_BUFFER_ENTRY; 1], +} +impl ::core::marker::Copy for REFS_STREAM_SNAPSHOT_LIST_OUTPUT_BUFFER {} +impl ::core::clone::Clone for REFS_STREAM_SNAPSHOT_LIST_OUTPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_STREAM_SNAPSHOT_LIST_OUTPUT_BUFFER_ENTRY { + pub NextEntryOffset: u32, + pub SnapshotNameLength: u16, + pub SnapshotCreationTime: u64, + pub StreamSize: u64, + pub StreamAllocationSize: u64, + pub Reserved: [u64; 2], + pub SnapshotName: [u16; 1], +} +impl ::core::marker::Copy for REFS_STREAM_SNAPSHOT_LIST_OUTPUT_BUFFER_ENTRY {} +impl ::core::clone::Clone for REFS_STREAM_SNAPSHOT_LIST_OUTPUT_BUFFER_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_STREAM_SNAPSHOT_MANAGEMENT_INPUT_BUFFER { + pub Operation: REFS_STREAM_SNAPSHOT_OPERATION, + pub SnapshotNameLength: u16, + pub OperationInputBufferLength: u16, + pub Reserved: [u64; 2], + pub NameAndInputBuffer: [u16; 1], +} +impl ::core::marker::Copy for REFS_STREAM_SNAPSHOT_MANAGEMENT_INPUT_BUFFER {} +impl ::core::clone::Clone for REFS_STREAM_SNAPSHOT_MANAGEMENT_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_STREAM_SNAPSHOT_QUERY_DELTAS_INPUT_BUFFER { + pub StartingVcn: i64, + pub Flags: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for REFS_STREAM_SNAPSHOT_QUERY_DELTAS_INPUT_BUFFER {} +impl ::core::clone::Clone for REFS_STREAM_SNAPSHOT_QUERY_DELTAS_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_STREAM_SNAPSHOT_QUERY_DELTAS_OUTPUT_BUFFER { + pub ExtentCount: u32, + pub Reserved: [u32; 2], + pub Extents: [REFS_STREAM_EXTENT; 1], +} +impl ::core::marker::Copy for REFS_STREAM_SNAPSHOT_QUERY_DELTAS_OUTPUT_BUFFER {} +impl ::core::clone::Clone for REFS_STREAM_SNAPSHOT_QUERY_DELTAS_OUTPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REFS_VOLUME_COUNTER_INFO_INPUT_BUFFER { + pub ResetCounters: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REFS_VOLUME_COUNTER_INFO_INPUT_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REFS_VOLUME_COUNTER_INFO_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_VOLUME_DATA_BUFFER { + pub ByteCount: u32, + pub MajorVersion: u32, + pub MinorVersion: u32, + pub BytesPerPhysicalSector: u32, + pub VolumeSerialNumber: i64, + pub NumberSectors: i64, + pub TotalClusters: i64, + pub FreeClusters: i64, + pub TotalReserved: i64, + pub BytesPerSector: u32, + pub BytesPerCluster: u32, + pub MaximumSizeOfResidentFile: i64, + pub FastTierDataFillRatio: u16, + pub SlowTierDataFillRatio: u16, + pub DestagesFastTierToSlowTierRate: u32, + pub Reserved: [i64; 9], +} +impl ::core::marker::Copy for REFS_VOLUME_DATA_BUFFER {} +impl ::core::clone::Clone for REFS_VOLUME_DATA_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REMOTE_LINK_TRACKING_INFORMATION { + pub TargetFileObject: *mut ::core::ffi::c_void, + pub TargetLinkTrackingInformationLength: u32, + pub TargetLinkTrackingInformationBuffer: [u8; 1], +} +impl ::core::marker::Copy for REMOTE_LINK_TRACKING_INFORMATION {} +impl ::core::clone::Clone for REMOTE_LINK_TRACKING_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPARSE_DATA_BUFFER { + pub ReparseTag: u32, + pub ReparseDataLength: u16, + pub Reserved: u16, + pub Anonymous: REPARSE_DATA_BUFFER_0, +} +impl ::core::marker::Copy for REPARSE_DATA_BUFFER {} +impl ::core::clone::Clone for REPARSE_DATA_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union REPARSE_DATA_BUFFER_0 { + pub SymbolicLinkReparseBuffer: REPARSE_DATA_BUFFER_0_2, + pub MountPointReparseBuffer: REPARSE_DATA_BUFFER_0_1, + pub GenericReparseBuffer: REPARSE_DATA_BUFFER_0_0, +} +impl ::core::marker::Copy for REPARSE_DATA_BUFFER_0 {} +impl ::core::clone::Clone for REPARSE_DATA_BUFFER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPARSE_DATA_BUFFER_0_0 { + pub DataBuffer: [u8; 1], +} +impl ::core::marker::Copy for REPARSE_DATA_BUFFER_0_0 {} +impl ::core::clone::Clone for REPARSE_DATA_BUFFER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPARSE_DATA_BUFFER_0_1 { + pub SubstituteNameOffset: u16, + pub SubstituteNameLength: u16, + pub PrintNameOffset: u16, + pub PrintNameLength: u16, + pub PathBuffer: [u16; 1], +} +impl ::core::marker::Copy for REPARSE_DATA_BUFFER_0_1 {} +impl ::core::clone::Clone for REPARSE_DATA_BUFFER_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPARSE_DATA_BUFFER_0_2 { + pub SubstituteNameOffset: u16, + pub SubstituteNameLength: u16, + pub PrintNameOffset: u16, + pub PrintNameLength: u16, + pub Flags: u32, + pub PathBuffer: [u16; 1], +} +impl ::core::marker::Copy for REPARSE_DATA_BUFFER_0_2 {} +impl ::core::clone::Clone for REPARSE_DATA_BUFFER_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct REPARSE_DATA_BUFFER_EX { + pub Flags: u32, + pub ExistingReparseTag: u32, + pub ExistingReparseGuid: ::windows_sys::core::GUID, + pub Reserved: u64, + pub Anonymous: REPARSE_DATA_BUFFER_EX_0, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for REPARSE_DATA_BUFFER_EX {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for REPARSE_DATA_BUFFER_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub union REPARSE_DATA_BUFFER_EX_0 { + pub ReparseDataBuffer: REPARSE_DATA_BUFFER, + pub ReparseGuidDataBuffer: super::super::super::Win32::Storage::FileSystem::REPARSE_GUID_DATA_BUFFER, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for REPARSE_DATA_BUFFER_EX_0 {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for REPARSE_DATA_BUFFER_EX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct REPARSE_INDEX_KEY { + pub FileReparseTag: u32, + pub FileId: i64, +} +impl ::core::marker::Copy for REPARSE_INDEX_KEY {} +impl ::core::clone::Clone for REPARSE_INDEX_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER { + pub ExtentCount: u32, + pub StartingVcn: i64, + pub Extents: [RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER_0; 1], +} +impl ::core::marker::Copy for RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER {} +impl ::core::clone::Clone for RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER_0 { + pub NextVcn: i64, + pub Lcn: i64, + pub ReferenceCount: u32, +} +impl ::core::marker::Copy for RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER_0 {} +impl ::core::clone::Clone for RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RKF_BYPASS_ECP_CONTEXT { + pub Reserved: i32, + pub Version: i32, +} +impl ::core::marker::Copy for RKF_BYPASS_ECP_CONTEXT {} +impl ::core::clone::Clone for RKF_BYPASS_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTL_HEAP_MEMORY_LIMIT_DATA { + pub CommitLimitBytes: usize, + pub CommitLimitFailureCode: usize, + pub MaxAllocationSizeBytes: usize, + pub AllocationLimitFailureCode: usize, +} +impl ::core::marker::Copy for RTL_HEAP_MEMORY_LIMIT_DATA {} +impl ::core::clone::Clone for RTL_HEAP_MEMORY_LIMIT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTL_HEAP_MEMORY_LIMIT_INFO { + pub Version: u32, + pub Data: RTL_HEAP_MEMORY_LIMIT_DATA, +} +impl ::core::marker::Copy for RTL_HEAP_MEMORY_LIMIT_INFO {} +impl ::core::clone::Clone for RTL_HEAP_MEMORY_LIMIT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RTL_HEAP_PARAMETERS { + pub Length: u32, + pub SegmentReserve: usize, + pub SegmentCommit: usize, + pub DeCommitFreeBlockThreshold: usize, + pub DeCommitTotalFreeThreshold: usize, + pub MaximumAllocationSize: usize, + pub VirtualMemoryThreshold: usize, + pub InitialCommit: usize, + pub InitialReserve: usize, + pub CommitRoutine: PRTL_HEAP_COMMIT_ROUTINE, + pub Reserved: [usize; 2], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RTL_HEAP_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RTL_HEAP_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTL_NLS_STATE { + pub DefaultAcpTableInfo: CPTABLEINFO, + pub DefaultOemTableInfo: CPTABLEINFO, + pub ActiveCodePageData: *mut u16, + pub OemCodePageData: *mut u16, + pub LeadByteInfo: *mut u16, + pub OemLeadByteInfo: *mut u16, + pub CaseMappingData: *mut u16, + pub UnicodeUpcaseTable844: *mut u16, + pub UnicodeLowercaseTable844: *mut u16, +} +impl ::core::marker::Copy for RTL_NLS_STATE {} +impl ::core::clone::Clone for RTL_NLS_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RTL_SEGMENT_HEAP_MEMORY_SOURCE { + pub Flags: u32, + pub MemoryTypeMask: u32, + pub NumaNode: u32, + pub Anonymous: RTL_SEGMENT_HEAP_MEMORY_SOURCE_0, + pub Reserved: [usize; 2], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RTL_SEGMENT_HEAP_MEMORY_SOURCE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RTL_SEGMENT_HEAP_MEMORY_SOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union RTL_SEGMENT_HEAP_MEMORY_SOURCE_0 { + pub PartitionHandle: super::super::super::Win32::Foundation::HANDLE, + pub Callbacks: *mut RTL_SEGMENT_HEAP_VA_CALLBACKS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RTL_SEGMENT_HEAP_MEMORY_SOURCE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RTL_SEGMENT_HEAP_MEMORY_SOURCE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RTL_SEGMENT_HEAP_PARAMETERS { + pub Version: u16, + pub Size: u16, + pub Flags: u32, + pub MemorySource: RTL_SEGMENT_HEAP_MEMORY_SOURCE, + pub Reserved: [usize; 4], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RTL_SEGMENT_HEAP_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RTL_SEGMENT_HEAP_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RTL_SEGMENT_HEAP_VA_CALLBACKS { + pub CallbackContext: super::super::super::Win32::Foundation::HANDLE, + pub AllocateVirtualMemory: PALLOCATE_VIRTUAL_MEMORY_EX_CALLBACK, + pub FreeVirtualMemory: PFREE_VIRTUAL_MEMORY_EX_CALLBACK, + pub QueryVirtualMemory: PQUERY_VIRTUAL_MEMORY_CALLBACK, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RTL_SEGMENT_HEAP_VA_CALLBACKS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RTL_SEGMENT_HEAP_VA_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct SECURITY_CLIENT_CONTEXT { + pub SecurityQos: super::super::super::Win32::Security::SECURITY_QUALITY_OF_SERVICE, + pub ClientToken: *mut ::core::ffi::c_void, + pub DirectlyAccessClientToken: super::super::super::Win32::Foundation::BOOLEAN, + pub DirectAccessEffectiveOnly: super::super::super::Win32::Foundation::BOOLEAN, + pub ServerIsRemote: super::super::super::Win32::Foundation::BOOLEAN, + pub ClientTokenControl: super::super::super::Win32::Security::TOKEN_CONTROL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for SECURITY_CLIENT_CONTEXT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for SECURITY_CLIENT_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Authentication_Identity\"`"] +#[cfg(feature = "Win32_Security_Authentication_Identity")] +pub struct SEC_APPLICATION_PROTOCOLS { + pub ProtocolListsSize: u32, + pub ProtocolLists: [super::super::super::Win32::Security::Authentication::Identity::SEC_APPLICATION_PROTOCOL_LIST; 1], +} +#[cfg(feature = "Win32_Security_Authentication_Identity")] +impl ::core::marker::Copy for SEC_APPLICATION_PROTOCOLS {} +#[cfg(feature = "Win32_Security_Authentication_Identity")] +impl ::core::clone::Clone for SEC_APPLICATION_PROTOCOLS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_DTLS_MTU { + pub PathMTU: u16, +} +impl ::core::marker::Copy for SEC_DTLS_MTU {} +impl ::core::clone::Clone for SEC_DTLS_MTU { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_FLAGS { + pub Flags: u64, +} +impl ::core::marker::Copy for SEC_FLAGS {} +impl ::core::clone::Clone for SEC_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_NEGOTIATION_INFO { + pub Size: u32, + pub NameLength: u32, + pub Name: *mut u16, + pub Reserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SEC_NEGOTIATION_INFO {} +impl ::core::clone::Clone for SEC_NEGOTIATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_PRESHAREDKEY { + pub KeySize: u16, + pub Key: [u8; 1], +} +impl ::core::marker::Copy for SEC_PRESHAREDKEY {} +impl ::core::clone::Clone for SEC_PRESHAREDKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_SRTP_MASTER_KEY_IDENTIFIER { + pub MasterKeyIdentifierSize: u8, + pub MasterKeyIdentifier: [u8; 1], +} +impl ::core::marker::Copy for SEC_SRTP_MASTER_KEY_IDENTIFIER {} +impl ::core::clone::Clone for SEC_SRTP_MASTER_KEY_IDENTIFIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SET_CACHED_RUNS_STATE_INPUT_BUFFER { + pub Enable: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SET_CACHED_RUNS_STATE_INPUT_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SET_CACHED_RUNS_STATE_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct SE_AUDIT_INFO { + pub Size: u32, + pub AuditType: super::super::super::Win32::Security::AUDIT_EVENT_TYPE, + pub AuditOperation: SE_AUDIT_OPERATION, + pub AuditFlags: u32, + pub SubsystemName: super::super::super::Win32::Foundation::UNICODE_STRING, + pub ObjectTypeName: super::super::super::Win32::Foundation::UNICODE_STRING, + pub ObjectName: super::super::super::Win32::Foundation::UNICODE_STRING, + pub HandleId: *mut ::core::ffi::c_void, + pub TransactionId: *mut ::windows_sys::core::GUID, + pub OperationId: *mut super::super::super::Win32::Foundation::LUID, + pub ObjectCreation: super::super::super::Win32::Foundation::BOOLEAN, + pub GenerateOnClose: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for SE_AUDIT_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for SE_AUDIT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SE_EXPORTS { + pub SeCreateTokenPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeAssignPrimaryTokenPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeLockMemoryPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeIncreaseQuotaPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeUnsolicitedInputPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeTcbPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeSecurityPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeTakeOwnershipPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeLoadDriverPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeCreatePagefilePrivilege: super::super::super::Win32::Foundation::LUID, + pub SeIncreaseBasePriorityPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeSystemProfilePrivilege: super::super::super::Win32::Foundation::LUID, + pub SeSystemtimePrivilege: super::super::super::Win32::Foundation::LUID, + pub SeProfileSingleProcessPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeCreatePermanentPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeBackupPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeRestorePrivilege: super::super::super::Win32::Foundation::LUID, + pub SeShutdownPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeDebugPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeAuditPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeSystemEnvironmentPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeChangeNotifyPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeRemoteShutdownPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeNullSid: super::super::super::Win32::Foundation::PSID, + pub SeWorldSid: super::super::super::Win32::Foundation::PSID, + pub SeLocalSid: super::super::super::Win32::Foundation::PSID, + pub SeCreatorOwnerSid: super::super::super::Win32::Foundation::PSID, + pub SeCreatorGroupSid: super::super::super::Win32::Foundation::PSID, + pub SeNtAuthoritySid: super::super::super::Win32::Foundation::PSID, + pub SeDialupSid: super::super::super::Win32::Foundation::PSID, + pub SeNetworkSid: super::super::super::Win32::Foundation::PSID, + pub SeBatchSid: super::super::super::Win32::Foundation::PSID, + pub SeInteractiveSid: super::super::super::Win32::Foundation::PSID, + pub SeLocalSystemSid: super::super::super::Win32::Foundation::PSID, + pub SeAliasAdminsSid: super::super::super::Win32::Foundation::PSID, + pub SeAliasUsersSid: super::super::super::Win32::Foundation::PSID, + pub SeAliasGuestsSid: super::super::super::Win32::Foundation::PSID, + pub SeAliasPowerUsersSid: super::super::super::Win32::Foundation::PSID, + pub SeAliasAccountOpsSid: super::super::super::Win32::Foundation::PSID, + pub SeAliasSystemOpsSid: super::super::super::Win32::Foundation::PSID, + pub SeAliasPrintOpsSid: super::super::super::Win32::Foundation::PSID, + pub SeAliasBackupOpsSid: super::super::super::Win32::Foundation::PSID, + pub SeAuthenticatedUsersSid: super::super::super::Win32::Foundation::PSID, + pub SeRestrictedSid: super::super::super::Win32::Foundation::PSID, + pub SeAnonymousLogonSid: super::super::super::Win32::Foundation::PSID, + pub SeUndockPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeSyncAgentPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeEnableDelegationPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeLocalServiceSid: super::super::super::Win32::Foundation::PSID, + pub SeNetworkServiceSid: super::super::super::Win32::Foundation::PSID, + pub SeManageVolumePrivilege: super::super::super::Win32::Foundation::LUID, + pub SeImpersonatePrivilege: super::super::super::Win32::Foundation::LUID, + pub SeCreateGlobalPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeTrustedCredManAccessPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeRelabelPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeIncreaseWorkingSetPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeTimeZonePrivilege: super::super::super::Win32::Foundation::LUID, + pub SeCreateSymbolicLinkPrivilege: super::super::super::Win32::Foundation::LUID, + pub SeIUserSid: super::super::super::Win32::Foundation::PSID, + pub SeUntrustedMandatorySid: super::super::super::Win32::Foundation::PSID, + pub SeLowMandatorySid: super::super::super::Win32::Foundation::PSID, + pub SeMediumMandatorySid: super::super::super::Win32::Foundation::PSID, + pub SeHighMandatorySid: super::super::super::Win32::Foundation::PSID, + pub SeSystemMandatorySid: super::super::super::Win32::Foundation::PSID, + pub SeOwnerRightsSid: super::super::super::Win32::Foundation::PSID, + pub SeAllAppPackagesSid: super::super::super::Win32::Foundation::PSID, + pub SeUserModeDriversSid: super::super::super::Win32::Foundation::PSID, + pub SeProcTrustWinTcbSid: super::super::super::Win32::Foundation::PSID, + pub SeTrustedInstallerSid: super::super::super::Win32::Foundation::PSID, + pub SeDelegateSessionUserImpersonatePrivilege: super::super::super::Win32::Foundation::LUID, + pub SeAppSiloSid: super::super::super::Win32::Foundation::PSID, + pub SeAppSiloVolumeRootMinimalCapabilitySid: super::super::super::Win32::Foundation::PSID, + pub SeAppSiloProfilesRootMinimalCapabilitySid: super::super::super::Win32::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SE_EXPORTS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SE_EXPORTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct SRV_OPEN_ECP_CONTEXT { + pub ShareName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub SocketAddress: *mut super::super::super::Win32::Networking::WinSock::SOCKADDR_STORAGE, + pub OplockBlockState: super::super::super::Win32::Foundation::BOOLEAN, + pub OplockAppState: super::super::super::Win32::Foundation::BOOLEAN, + pub OplockFinalState: super::super::super::Win32::Foundation::BOOLEAN, + pub Version: u16, + pub InstanceType: SRV_INSTANCE_TYPE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for SRV_OPEN_ECP_CONTEXT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for SRV_OPEN_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_PROCESS_TRUST_LABEL_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_PROCESS_TRUST_LABEL_ACE {} +impl ::core::clone::Clone for SYSTEM_PROCESS_TRUST_LABEL_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecBuffer { + pub cbBuffer: u32, + pub BufferType: u32, + pub pvBuffer: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SecBuffer {} +impl ::core::clone::Clone for SecBuffer { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecBufferDesc { + pub ulVersion: u32, + pub cBuffers: u32, + pub pBuffers: *mut SecBuffer, +} +impl ::core::marker::Copy for SecBufferDesc {} +impl ::core::clone::Clone for SecBufferDesc { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecHandle { + pub dwLower: usize, + pub dwUpper: usize, +} +impl ::core::marker::Copy for SecHandle {} +impl ::core::clone::Clone for SecHandle { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct TUNNEL { + pub Mutex: super::super::Foundation::FAST_MUTEX, + pub Cache: *mut super::super::Foundation::RTL_SPLAY_LINKS, + pub TimerQueue: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub NumEntries: u16, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for TUNNEL {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for TUNNEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub struct UNICODE_PREFIX_TABLE { + pub NodeTypeCode: i16, + pub NameLength: i16, + pub NextPrefixTree: *mut UNICODE_PREFIX_TABLE_ENTRY, + pub LastNextEntry: *mut UNICODE_PREFIX_TABLE_ENTRY, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for UNICODE_PREFIX_TABLE {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for UNICODE_PREFIX_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub struct UNICODE_PREFIX_TABLE_ENTRY { + pub NodeTypeCode: i16, + pub NameLength: i16, + pub NextPrefixTree: *mut UNICODE_PREFIX_TABLE_ENTRY, + pub CaseMatch: *mut UNICODE_PREFIX_TABLE_ENTRY, + pub Links: super::super::Foundation::RTL_SPLAY_LINKS, + pub Prefix: *mut super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for UNICODE_PREFIX_TABLE_ENTRY {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for UNICODE_PREFIX_TABLE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USN_JOURNAL_DATA { + pub UsnJournalID: u64, + pub FirstUsn: i64, + pub NextUsn: i64, + pub LowestValidUsn: i64, + pub MaxUsn: i64, + pub MaximumSize: u64, + pub AllocationDelta: u64, + pub MinSupportedMajorVersion: u16, + pub MaxSupportedMajorVersion: u16, +} +impl ::core::marker::Copy for USN_JOURNAL_DATA {} +impl ::core::clone::Clone for USN_JOURNAL_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USN_RECORD { + pub RecordLength: u32, + pub MajorVersion: u16, + pub MinorVersion: u16, + pub FileReferenceNumber: u64, + pub ParentFileReferenceNumber: u64, + pub Usn: i64, + pub TimeStamp: i64, + pub Reason: u32, + pub SourceInfo: u32, + pub SecurityId: u32, + pub FileAttributes: u32, + pub FileNameLength: u16, + pub FileNameOffset: u16, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for USN_RECORD {} +impl ::core::clone::Clone for USN_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VCN_RANGE_INPUT_BUFFER { + pub StartingVcn: i64, + pub ClusterCount: i64, +} +impl ::core::marker::Copy for VCN_RANGE_INPUT_BUFFER {} +impl ::core::clone::Clone for VCN_RANGE_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_REFS_INFO_BUFFER { + pub CacheSizeInBytes: i64, + pub AllocatedCacheInBytes: i64, + pub PopulatedCacheInBytes: i64, + pub InErrorCacheInBytes: i64, + pub MemoryUsedForCacheMetadata: i64, + pub CacheLineSize: u32, + pub CacheTransactionsOutstanding: i32, + pub CacheLinesFree: i32, + pub CacheLinesInError: i32, + pub CacheHitsInBytes: i64, + pub CacheMissesInBytes: i64, + pub CachePopulationUpdatesInBytes: i64, + pub CacheWriteThroughUpdatesInBytes: i64, + pub CacheInvalidationsInBytes: i64, + pub CacheOverReadsInBytes: i64, + pub MetadataWrittenBytes: i64, + pub CacheHitCounter: i32, + pub CacheMissCounter: i32, + pub CacheLineAllocationCounter: i32, + pub CacheInvalidationsCounter: i32, + pub CachePopulationUpdatesCounter: i32, + pub CacheWriteThroughUpdatesCounter: i32, + pub MaxCacheTransactionsOutstanding: i32, + pub DataWritesReallocationCount: i32, + pub DataInPlaceWriteCount: i32, + pub MetadataAllocationsFastTierCount: i32, + pub MetadataAllocationsSlowTierCount: i32, + pub DataAllocationsFastTierCount: i32, + pub DataAllocationsSlowTierCount: i32, + pub DestagesSlowTierToFastTier: i32, + pub DestagesFastTierToSlowTier: i32, + pub SlowTierDataFillRatio: i32, + pub FastTierDataFillRatio: i32, + pub SlowTierMetadataFillRatio: i32, + pub FastTierMetadataFillRatio: i32, + pub SlowToFastDestageReadLatency: i32, + pub SlowToFastDestageReadLatencyBase: i32, + pub SlowToFastDestageWriteLatency: i32, + pub SlowToFastDestageWriteLatencyBase: i32, + pub FastToSlowDestageReadLatency: i32, + pub FastToSlowDestageReadLatencyBase: i32, + pub FastToSlowDestageWriteLatency: i32, + pub FastToSlowDestageWriteLatencyBase: i32, + pub SlowTierContainerFillRatio: i32, + pub SlowTierContainerFillRatioBase: i32, + pub FastTierContainerFillRatio: i32, + pub FastTierContainerFillRatioBase: i32, + pub TreeUpdateLatency: i32, + pub TreeUpdateLatencyBase: i32, + pub CheckpointLatency: i32, + pub CheckpointLatencyBase: i32, + pub TreeUpdateCount: i32, + pub CheckpointCount: i32, + pub LogWriteCount: i32, + pub LogFillRatio: i32, + pub ReadCacheInvalidationsForOverwrite: i32, + pub ReadCacheInvalidationsForReuse: i32, + pub ReadCacheInvalidationsGeneral: i32, + pub ReadCacheChecksOnMount: i32, + pub ReadCacheIssuesOnMount: i32, + pub TrimLatency: i32, + pub TrimLatencyBase: i32, + pub DataCompactionCount: i32, + pub CompactionReadLatency: i32, + pub CompactionReadLatencyBase: i32, + pub CompactionWriteLatency: i32, + pub CompactionWriteLatencyBase: i32, + pub DataInPlaceWriteClusterCount: i64, + pub CompactionFailedDueToIneligibleContainer: i32, + pub CompactionFailedDueToMaxFragmentation: i32, + pub CompactedContainerFillRatio: i32, + pub CompactedContainerFillRatioBase: i32, + pub ContainerMoveRetryCount: i32, + pub ContainerMoveFailedDueToIneligibleContainer: i32, + pub CompactionFailureCount: i32, + pub ContainerMoveFailureCount: i32, + pub NumberOfDirtyMetadataPages: i64, + pub NumberOfDirtyTableListEntries: i32, + pub NumberOfDeleteQueueEntries: i32, +} +impl ::core::marker::Copy for VOLUME_REFS_INFO_BUFFER {} +impl ::core::clone::Clone for VOLUME_REFS_INFO_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +pub type ALLOCATE_VIRTUAL_MEMORY_EX_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type DRIVER_FS_NOTIFICATION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FREE_VIRTUAL_MEMORY_EX_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PACQUIRE_FOR_LAZY_WRITE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PACQUIRE_FOR_LAZY_WRITE_EX = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PACQUIRE_FOR_READ_AHEAD = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PALLOCATE_VIRTUAL_MEMORY_EX_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PASYNC_READ_COMPLETION_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +pub type PCC_POST_DEFERRED_WRITE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +pub type PCHECK_FOR_TRAVERSE_ACCESS = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PCOMPLETE_LOCK_IRP_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PDIRTY_PAGE_ROUTINE = ::core::option::Option ()>; +pub type PDRIVER_FS_NOTIFICATION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFILTER_REPORT_CHANGE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +pub type PFLUSH_TO_LSN = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub type PFN_FSRTLTEARDOWNPERSTREAMCONTEXTS = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFREE_VIRTUAL_MEMORY_EX_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub type PFSRTL_STACK_OVERFLOW_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFS_FILTER_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFS_FILTER_COMPLETION_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type POPLOCK_FS_PREPOST_IRP = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type POPLOCK_NOTIFY_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type POPLOCK_WAIT_COMPLETE_ROUTINE = ::core::option::Option ()>; +pub type PQUERY_LOG_USAGE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PQUERY_VIRTUAL_MEMORY_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PRELEASE_FROM_LAZY_WRITE = ::core::option::Option ()>; +pub type PRELEASE_FROM_READ_AHEAD = ::core::option::Option ()>; +pub type PRTL_ALLOCATE_STRING_ROUTINE = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PRTL_FREE_STRING_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRTL_HEAP_COMMIT_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PRTL_REALLOCATE_STRING_ROUTINE = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSE_LOGON_SESSION_TERMINATED_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSE_LOGON_SESSION_TERMINATED_ROUTINE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_System_SystemServices\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_System_SystemServices", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PUNLOCK_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type QUERY_VIRTUAL_MEMORY_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type RTL_ALLOCATE_STRING_ROUTINE = ::core::option::Option *mut ::core::ffi::c_void>; +pub type RTL_FREE_STRING_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type RTL_HEAP_COMMIT_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type RTL_REALLOCATE_STRING_ROUTINE = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SE_LOGON_SESSION_TERMINATED_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type SE_LOGON_SESSION_TERMINATED_ROUTINE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub type SspiAsyncNotifyCallback = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/Storage/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/Storage/mod.rs new file mode 100644 index 000000000..5afcdb860 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/Storage/mod.rs @@ -0,0 +1,3 @@ +#[cfg(feature = "Wdk_Storage_FileSystem")] +#[doc = "Required features: `\"Wdk_Storage_FileSystem\"`"] +pub mod FileSystem; diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/System/IO/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/IO/mod.rs new file mode 100644 index 000000000..1be254f60 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/IO/mod.rs @@ -0,0 +1,2 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtDeviceIoControlFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, iocontrolcode : u32, inputbuffer : *const ::core::ffi::c_void, inputbufferlength : u32, outputbuffer : *mut ::core::ffi::c_void, outputbufferlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/System/OfflineRegistry/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/OfflineRegistry/mod.rs new file mode 100644 index 000000000..70cd909dc --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/OfflineRegistry/mod.rs @@ -0,0 +1,49 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORCloseHive(handle : ORHKEY) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORCloseKey(keyhandle : ORHKEY) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORCreateHive(horkey : *mut ORHKEY) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ORCreateKey(keyhandle : ORHKEY, lpsubkey : ::windows_sys::core::PCWSTR, lpclass : ::windows_sys::core::PCWSTR, dwoptions : u32, psecuritydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, phkresult : *mut ORHKEY, pdwdisposition : *mut u32) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORDeleteKey(handle : ORHKEY, lpsubkey : ::windows_sys::core::PCWSTR) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORDeleteValue(handle : ORHKEY, lpvaluename : ::windows_sys::core::PCWSTR) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OREnumKey(handle : ORHKEY, dwindex : u32, lpname : ::windows_sys::core::PWSTR, lpcname : *mut u32, lpclass : ::windows_sys::core::PWSTR, lpcclass : *mut u32, lpftlastwritetime : *mut super::super::super::Win32::Foundation:: FILETIME) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OREnumValue(handle : ORHKEY, dwindex : u32, lpvaluename : ::windows_sys::core::PWSTR, lpcvaluename : *mut u32, lptype : *mut u32, lpdata : *mut u8, lpcbdata : *mut u32) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ORGetKeySecurity(handle : ORHKEY, securityinformation : u32, psecuritydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, lpcbsecuritydescriptor : *mut u32) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORGetValue(handle : ORHKEY, lpsubkey : ::windows_sys::core::PCWSTR, lpvalue : ::windows_sys::core::PCWSTR, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORGetVersion(pdwmajorversion : *mut u32, pdwminorversion : *mut u32) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORGetVirtualFlags(handle : ORHKEY, pdwflags : *mut u32) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORMergeHives(hivehandles : *const ORHKEY, hivecount : u32, phkresult : *mut ORHKEY) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OROpenHive(filepath : ::windows_sys::core::PCWSTR, horkey : *mut ORHKEY) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OROpenHiveByHandle(filehandle : super::super::super::Win32::Foundation:: HANDLE, horkey : *mut ORHKEY) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OROpenKey(handle : ORHKEY, lpsubkey : ::windows_sys::core::PCWSTR, phkresult : *mut ORHKEY) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORQueryInfoKey(handle : ORHKEY, lpclass : ::windows_sys::core::PWSTR, lpcclass : *mut u32, lpcsubkeys : *mut u32, lpcmaxsubkeylen : *mut u32, lpcmaxclasslen : *mut u32, lpcvalues : *mut u32, lpcmaxvaluenamelen : *mut u32, lpcmaxvaluelen : *mut u32, lpcbsecuritydescriptor : *mut u32, lpftlastwritetime : *mut super::super::super::Win32::Foundation:: FILETIME) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORRenameKey(handle : ORHKEY, lpnewname : ::windows_sys::core::PCWSTR) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORSaveHive(horkey : ORHKEY, hivepath : ::windows_sys::core::PCWSTR, osmajorversion : u32, osminorversion : u32) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ORSetKeySecurity(handle : ORHKEY, securityinformation : u32, psecuritydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORSetValue(handle : ORHKEY, lpvaluename : ::windows_sys::core::PCWSTR, dwtype : u32, lpdata : *const u8, cbdata : u32) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORSetVirtualFlags(handle : ORHKEY, dwflags : u32) -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORShutdown() -> super::super::super::Win32::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("offreg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ORStart() -> super::super::super::Win32::Foundation:: WIN32_ERROR); +pub type ORHKEY = isize; diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/System/Registry/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/Registry/mod.rs new file mode 100644 index 000000000..60721768c --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/Registry/mod.rs @@ -0,0 +1,74 @@ +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NtNotifyChangeMultipleKeys(masterkeyhandle : super::super::super::Win32::Foundation:: HANDLE, count : u32, subordinateobjects : *const super::super::Foundation:: OBJECT_ATTRIBUTES, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, completionfilter : u32, watchtree : super::super::super::Win32::Foundation:: BOOLEAN, buffer : *mut ::core::ffi::c_void, buffersize : u32, asynchronous : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtQueryMultipleValueKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, valueentries : *mut KEY_VALUE_ENTRY, entrycount : u32, valuebuffer : *mut ::core::ffi::c_void, bufferlength : *mut u32, requiredbufferlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtRenameKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, newname : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtSetInformationKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, keysetinformationclass : KEY_SET_INFORMATION_CLASS, keysetinformation : *const ::core::ffi::c_void, keysetinformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwSetInformationKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, keysetinformationclass : KEY_SET_INFORMATION_CLASS, keysetinformation : *const ::core::ffi::c_void, keysetinformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +pub const KeyControlFlagsInformation: KEY_SET_INFORMATION_CLASS = 2i32; +pub const KeySetDebugInformation: KEY_SET_INFORMATION_CLASS = 4i32; +pub const KeySetHandleTagsInformation: KEY_SET_INFORMATION_CLASS = 5i32; +pub const KeySetLayerInformation: KEY_SET_INFORMATION_CLASS = 6i32; +pub const KeySetVirtualizationInformation: KEY_SET_INFORMATION_CLASS = 3i32; +pub const KeyWow64FlagsInformation: KEY_SET_INFORMATION_CLASS = 1i32; +pub const KeyWriteTimeInformation: KEY_SET_INFORMATION_CLASS = 0i32; +pub const MaxKeySetInfoClass: KEY_SET_INFORMATION_CLASS = 7i32; +pub type KEY_SET_INFORMATION_CLASS = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KEY_VALUE_ENTRY { + pub ValueName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub DataLength: u32, + pub DataOffset: u32, + pub Type: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KEY_VALUE_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KEY_VALUE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub ValueEntries: *mut KEY_VALUE_ENTRY, + pub EntryCount: u32, + pub ValueBuffer: *mut ::core::ffi::c_void, + pub BufferLength: *mut u32, + pub RequiredBufferLength: *mut u32, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REG_SET_INFORMATION_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub KeySetInformationClass: KEY_SET_INFORMATION_CLASS, + pub KeySetInformation: *mut ::core::ffi::c_void, + pub KeySetInformationLength: u32, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for REG_SET_INFORMATION_KEY_INFORMATION {} +impl ::core::clone::Clone for REG_SET_INFORMATION_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/System/SystemInformation/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/SystemInformation/mod.rs new file mode 100644 index 000000000..107ecd5f8 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/SystemInformation/mod.rs @@ -0,0 +1,18 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtQuerySystemInformation(systeminformationclass : SYSTEM_INFORMATION_CLASS, systeminformation : *mut ::core::ffi::c_void, systeminformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtQuerySystemTime(systemtime : *mut i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtQueryTimerResolution(maximumtime : *mut u32, minimumtime : *mut u32, currenttime : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +pub const SystemBasicInformation: SYSTEM_INFORMATION_CLASS = 0i32; +pub const SystemCodeIntegrityInformation: SYSTEM_INFORMATION_CLASS = 103i32; +pub const SystemExceptionInformation: SYSTEM_INFORMATION_CLASS = 33i32; +pub const SystemInterruptInformation: SYSTEM_INFORMATION_CLASS = 23i32; +pub const SystemLookasideInformation: SYSTEM_INFORMATION_CLASS = 45i32; +pub const SystemPerformanceInformation: SYSTEM_INFORMATION_CLASS = 2i32; +pub const SystemPolicyInformation: SYSTEM_INFORMATION_CLASS = 134i32; +pub const SystemProcessInformation: SYSTEM_INFORMATION_CLASS = 5i32; +pub const SystemProcessorPerformanceInformation: SYSTEM_INFORMATION_CLASS = 8i32; +pub const SystemRegistryQuotaInformation: SYSTEM_INFORMATION_CLASS = 37i32; +pub const SystemTimeOfDayInformation: SYSTEM_INFORMATION_CLASS = 3i32; +pub type SYSTEM_INFORMATION_CLASS = i32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/System/SystemServices/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/SystemServices/mod.rs new file mode 100644 index 000000000..5cbd40419 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/SystemServices/mod.rs @@ -0,0 +1,21130 @@ +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsAddLogContainer(plfolog : *const super::super::Foundation:: FILE_OBJECT, pcbcontainer : *const u64, puszcontainerpath : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsAddLogContainerSet(plfolog : *const super::super::Foundation:: FILE_OBJECT, ccontainers : u16, pcbcontainer : *const u64, rguszcontainerpath : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsAdvanceLogBase(pvmarshalcontext : *mut ::core::ffi::c_void, plsnbase : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN, fflags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClfsAlignReservedLog(pvmarshalcontext : *const ::core::ffi::c_void, crecords : u32, rgcbreservation : *const i64, pcbalignreservation : *mut i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClfsAllocReservedLog(pvmarshalcontext : *const ::core::ffi::c_void, crecords : u32, pcbadjustment : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsCloseAndResetLogFile(plfolog : *const super::super::Foundation:: FILE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsCloseLogFileObject(plfolog : *const super::super::Foundation:: FILE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsCreateLogFile(pplfolog : *mut *mut super::super::Foundation:: FILE_OBJECT, puszlogfilename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, fdesiredaccess : u32, dwsharemode : u32, psdlogfile : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, fcreatedisposition : u32, fcreateoptions : u32, fflagsandattributes : u32, flogoptionflag : u32, pvcontext : *const ::core::ffi::c_void, cbcontext : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsCreateMarshallingArea(plfolog : *const super::super::Foundation:: FILE_OBJECT, epooltype : super::super::Foundation:: POOL_TYPE, pfnallocbuffer : PALLOCATE_FUNCTION, pfnfreebuffer : super::super::Foundation:: PFREE_FUNCTION, cbmarshallingbuffer : u32, cmaxwritebuffers : u32, cmaxreadbuffers : u32, ppvmarshalcontext : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsCreateMarshallingAreaEx(plfolog : *const super::super::Foundation:: FILE_OBJECT, epooltype : super::super::Foundation:: POOL_TYPE, pfnallocbuffer : PALLOCATE_FUNCTION, pfnfreebuffer : super::super::Foundation:: PFREE_FUNCTION, cbmarshallingbuffer : u32, cmaxwritebuffers : u32, cmaxreadbuffers : u32, calignmentsize : u32, fflags : u64, ppvmarshalcontext : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsCreateScanContext(plfolog : *const super::super::Foundation:: FILE_OBJECT, cfromcontainer : u32, ccontainers : u32, escanmode : u8, pcxscan : *mut super::super::super::Win32::Storage::FileSystem:: CLS_SCAN_CONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsDeleteLogByPointer(plfolog : *const super::super::Foundation:: FILE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClfsDeleteLogFile(puszlogfilename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, pvreserved : *const ::core::ffi::c_void, flogoptionflag : u32, pvcontext : *const ::core::ffi::c_void, cbcontext : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClfsDeleteMarshallingArea(pvmarshalcontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Storage_FileSystem")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] fn ClfsEarlierLsn(plsn : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Storage::FileSystem:: CLS_LSN); +::windows_targets::link!("clfs.sys" "system" fn ClfsFinalize() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClfsFlushBuffers(pvmarshalcontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsFlushToLsn(pvmarshalcontext : *const ::core::ffi::c_void, plsnflush : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN, plsnlastflushed : *mut super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClfsFreeReservedLog(pvmarshalcontext : *const ::core::ffi::c_void, crecords : u32, pcbadjustment : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsGetContainerName(plfolog : *const super::super::Foundation:: FILE_OBJECT, cidlogicalcontainer : u32, puszcontainername : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, pcactuallencontainername : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsGetIoStatistics(plfolog : *const super::super::Foundation:: FILE_OBJECT, pvstatsbuffer : *mut ::core::ffi::c_void, cbstatsbuffer : u32, estatsclass : super::super::super::Win32::Storage::FileSystem:: CLFS_IOSTATS_CLASS, pcbstatswritten : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsGetLogFileInformation(plfolog : *const super::super::Foundation:: FILE_OBJECT, pinfobuffer : *mut super::super::super::Win32::Storage::FileSystem:: CLS_INFORMATION, pcbinfobuffer : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClfsInitialize() -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Storage_FileSystem")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] fn ClfsLaterLsn(plsn : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Storage::FileSystem:: CLS_LSN); +#[cfg(feature = "Win32_Storage_FileSystem")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] fn ClfsLsnBlockOffset(plsn : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> u32); +#[cfg(feature = "Win32_Storage_FileSystem")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] fn ClfsLsnContainer(plsn : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> u32); +#[cfg(feature = "Win32_Storage_FileSystem")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] fn ClfsLsnCreate(cidcontainer : u32, offblock : u32, crecord : u32) -> super::super::super::Win32::Storage::FileSystem:: CLS_LSN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsLsnDifference(plsnstart : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN, plsnfinish : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN, cbcontainer : u32, cbmaxblock : u32, pcbdifference : *mut i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsLsnEqual(plsn1 : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN, plsn2 : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsLsnGreater(plsn1 : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN, plsn2 : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsLsnInvalid(plsn : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsLsnLess(plsn1 : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN, plsn2 : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsLsnNull(plsn : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Storage_FileSystem")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] fn ClfsLsnRecordSequence(plsn : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClfsMgmtDeregisterManagedClient(clientcookie : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClfsMgmtHandleLogFileFull(client : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsMgmtInstallPolicy(logfile : *const super::super::Foundation:: FILE_OBJECT, policy : *const super::super::super::Win32::Storage::FileSystem:: CLFS_MGMT_POLICY, policylength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsMgmtQueryPolicy(logfile : *const super::super::Foundation:: FILE_OBJECT, policytype : super::super::super::Win32::Storage::FileSystem:: CLFS_MGMT_POLICY_TYPE, policy : *mut super::super::super::Win32::Storage::FileSystem:: CLFS_MGMT_POLICY, policylength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsMgmtRegisterManagedClient(logfile : *const super::super::Foundation:: FILE_OBJECT, registrationdata : *const CLFS_MGMT_CLIENT_REGISTRATION, clientcookie : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsMgmtRemovePolicy(logfile : *const super::super::Foundation:: FILE_OBJECT, policytype : super::super::super::Win32::Storage::FileSystem:: CLFS_MGMT_POLICY_TYPE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsMgmtSetLogFileSize(logfile : *const super::super::Foundation:: FILE_OBJECT, newsizeincontainers : *const u64, resultingsizeincontainers : *mut u64, completionroutine : PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK, completionroutinedata : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsMgmtSetLogFileSizeAsClient(logfile : *const super::super::Foundation:: FILE_OBJECT, clientcookie : *const *const ::core::ffi::c_void, newsizeincontainers : *const u64, resultingsizeincontainers : *mut u64, completionroutine : PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK, completionroutinedata : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClfsMgmtTailAdvanceFailure(client : *const ::core::ffi::c_void, reason : super::super::super::Win32::Foundation:: NTSTATUS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsQueryLogFileInformation(plfolog : *const super::super::Foundation:: FILE_OBJECT, einformationclass : super::super::super::Win32::Storage::FileSystem:: CLS_LOG_INFORMATION_CLASS, pinfoinputbuffer : *const ::core::ffi::c_void, cbinfoinputbuffer : u32, pinfobuffer : *mut ::core::ffi::c_void, pcbinfobuffer : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsReadLogRecord(pvmarshalcontext : *const ::core::ffi::c_void, plsnfirst : *mut super::super::super::Win32::Storage::FileSystem:: CLS_LSN, pecontextmode : super::super::super::Win32::Storage::FileSystem:: CLFS_CONTEXT_MODE, ppvreadbuffer : *mut *mut ::core::ffi::c_void, pcbreadbuffer : *mut u32, perecordtype : *mut u8, plsnundonext : *mut super::super::super::Win32::Storage::FileSystem:: CLS_LSN, plsnprevious : *mut super::super::super::Win32::Storage::FileSystem:: CLS_LSN, ppvreadcontext : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsReadNextLogRecord(pvreadcontext : *mut ::core::ffi::c_void, ppvbuffer : *mut *mut ::core::ffi::c_void, pcbbuffer : *mut u32, perecordtype : *mut u8, plsnuser : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN, plsnundonext : *mut super::super::super::Win32::Storage::FileSystem:: CLS_LSN, plsnprevious : *mut super::super::super::Win32::Storage::FileSystem:: CLS_LSN, plsnrecord : *mut super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsReadPreviousRestartArea(pvreadcontext : *const ::core::ffi::c_void, ppvrestartbuffer : *mut *mut ::core::ffi::c_void, pcbrestartbuffer : *mut u32, plsnrestart : *mut super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsReadRestartArea(pvmarshalcontext : *mut ::core::ffi::c_void, ppvrestartbuffer : *mut *mut ::core::ffi::c_void, pcbrestartbuffer : *mut u32, plsn : *mut super::super::super::Win32::Storage::FileSystem:: CLS_LSN, ppvreadcontext : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsRemoveLogContainer(plfolog : *const super::super::Foundation:: FILE_OBJECT, puszcontainerpath : *const super::super::super::Win32::Foundation:: UNICODE_STRING, fforce : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsRemoveLogContainerSet(plfolog : *const super::super::Foundation:: FILE_OBJECT, ccontainers : u16, rgwszcontainerpath : *const super::super::super::Win32::Foundation:: UNICODE_STRING, fforce : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsReserveAndAppendLog(pvmarshalcontext : *const ::core::ffi::c_void, rgwriteentries : *const super::super::super::Win32::Storage::FileSystem:: CLS_WRITE_ENTRY, cwriteentries : u32, plsnundonext : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN, plsnprevious : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN, creserverecords : u32, rgcbreservation : *mut i64, fflags : u32, plsn : *mut super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsReserveAndAppendLogAligned(pvmarshalcontext : *const ::core::ffi::c_void, rgwriteentries : *const super::super::super::Win32::Storage::FileSystem:: CLS_WRITE_ENTRY, cwriteentries : u32, cbentryalignment : u32, plsnundonext : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN, plsnprevious : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN, creserverecords : u32, rgcbreservation : *mut i64, fflags : u32, plsn : *mut super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsScanLogContainers(pcxscan : *mut super::super::super::Win32::Storage::FileSystem:: CLS_SCAN_CONTEXT, escanmode : u8) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsSetArchiveTail(plfolog : *const super::super::Foundation:: FILE_OBJECT, plsnarchivetail : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsSetEndOfLog(plfolog : *const super::super::Foundation:: FILE_OBJECT, plsnend : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn ClfsSetLogFileInformation(plfolog : *const super::super::Foundation:: FILE_OBJECT, einformationclass : super::super::super::Win32::Storage::FileSystem:: CLS_LOG_INFORMATION_CLASS, pinfobuffer : *const ::core::ffi::c_void, cbbuffer : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClfsTerminateReadLog(pvcursorcontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("clfs.sys" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ClfsWriteRestartArea(pvmarshalcontext : *mut ::core::ffi::c_void, pvrestartbuffer : *const ::core::ffi::c_void, cbrestartbuffer : u32, plsnbase : *const super::super::super::Win32::Storage::FileSystem:: CLS_LSN, fflags : u32, pcbwritten : *mut u32, plsnnext : *mut super::super::super::Win32::Storage::FileSystem:: CLS_LSN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CmCallbackGetKeyObjectID(cookie : *const i64, object : *const ::core::ffi::c_void, objectid : *mut usize, objectname : *mut *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CmCallbackGetKeyObjectIDEx(cookie : *const i64, object : *const ::core::ffi::c_void, objectid : *mut usize, objectname : *mut *mut super::super::super::Win32::Foundation:: UNICODE_STRING, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CmCallbackReleaseKeyObjectIDEx(objectname : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn CmGetBoundTransaction(cookie : *const i64, object : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntoskrnl.exe" "system" fn CmGetCallbackVersion(major : *mut u32, minor : *mut u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CmRegisterCallback(function : PEX_CALLBACK_FUNCTION, context : *const ::core::ffi::c_void, cookie : *mut i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CmRegisterCallbackEx(function : PEX_CALLBACK_FUNCTION, altitude : *const super::super::super::Win32::Foundation:: UNICODE_STRING, driver : *const ::core::ffi::c_void, context : *const ::core::ffi::c_void, cookie : *mut i64, reserved : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CmSetCallbackObjectContext(object : *mut ::core::ffi::c_void, cookie : *const i64, newcontext : *const ::core::ffi::c_void, oldcontext : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CmUnRegisterCallback(cookie : i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn DbgBreakPointWithStatus(status : u32) -> ()); +::windows_targets::link!("ntdll.dll" "cdecl" fn DbgPrint(format : ::windows_sys::core::PCSTR, ...) -> u32); +::windows_targets::link!("ntdll.dll" "cdecl" fn DbgPrintEx(componentid : u32, level : u32, format : ::windows_sys::core::PCSTR, ...) -> u32); +::windows_targets::link!("ntdll.dll" "cdecl" fn DbgPrintReturnControlC(format : ::windows_sys::core::PCSTR, ...) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn DbgPrompt(prompt : ::windows_sys::core::PCSTR, response : ::windows_sys::core::PSTR, length : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DbgQueryDebugFilterState(componentid : u32, level : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DbgSetDebugFilterState(componentid : u32, level : u32, state : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn DbgSetDebugPrintCallback(debugprintcallback : PDEBUG_PRINT_CALLBACK, enable : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EtwActivityIdControl(controlcode : u32, activityid : *mut ::windows_sys::core::GUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Etw"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Etw\"`"] fn EtwEventEnabled(reghandle : u64, eventdescriptor : *const super::super::super::Win32::System::Diagnostics::Etw:: EVENT_DESCRIPTOR) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EtwProviderEnabled(reghandle : u64, level : u8, keyword : u64) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EtwRegister(providerid : *const ::windows_sys::core::GUID, enablecallback : PETWENABLECALLBACK, callbackcontext : *const ::core::ffi::c_void, reghandle : *mut u64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Etw"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Etw\"`"] fn EtwSetInformation(reghandle : u64, informationclass : super::super::super::Win32::System::Diagnostics::Etw:: EVENT_INFO_CLASS, eventinformation : *const ::core::ffi::c_void, informationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EtwUnregister(reghandle : u64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Etw"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Etw\"`"] fn EtwWrite(reghandle : u64, eventdescriptor : *const super::super::super::Win32::System::Diagnostics::Etw:: EVENT_DESCRIPTOR, activityid : *const ::windows_sys::core::GUID, userdatacount : u32, userdata : *const super::super::super::Win32::System::Diagnostics::Etw:: EVENT_DATA_DESCRIPTOR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Etw"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Etw\"`"] fn EtwWriteEx(reghandle : u64, eventdescriptor : *const super::super::super::Win32::System::Diagnostics::Etw:: EVENT_DESCRIPTOR, filter : u64, flags : u32, activityid : *const ::windows_sys::core::GUID, relatedactivityid : *const ::windows_sys::core::GUID, userdatacount : u32, userdata : *const super::super::super::Win32::System::Diagnostics::Etw:: EVENT_DATA_DESCRIPTOR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EtwWriteString(reghandle : u64, level : u8, keyword : u64, activityid : *const ::windows_sys::core::GUID, string : ::windows_sys::core::PCWSTR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Etw"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Etw\"`"] fn EtwWriteTransfer(reghandle : u64, eventdescriptor : *const super::super::super::Win32::System::Diagnostics::Etw:: EVENT_DESCRIPTOR, activityid : *const ::windows_sys::core::GUID, relatedactivityid : *const ::windows_sys::core::GUID, userdatacount : u32, userdata : *const super::super::super::Win32::System::Diagnostics::Etw:: EVENT_DATA_DESCRIPTOR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExAcquireFastMutex(fastmutex : *mut super::super::Foundation:: FAST_MUTEX) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExAcquireFastMutexUnsafe(fastmutex : *mut super::super::Foundation:: FAST_MUTEX) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExAcquirePushLockExclusiveEx(pushlock : *mut usize, flags : u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExAcquirePushLockSharedEx(pushlock : *mut usize, flags : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExAcquireResourceExclusiveLite(resource : *mut super::super::Foundation:: ERESOURCE, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExAcquireResourceSharedLite(resource : *mut super::super::Foundation:: ERESOURCE, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExAcquireRundownProtection(runref : *mut EX_RUNDOWN_REF) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ExAcquireRundownProtectionCacheAware(runrefcacheaware : super::super::Foundation:: PEX_RUNDOWN_REF_CACHE_AWARE) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ExAcquireRundownProtectionCacheAwareEx(runrefcacheaware : super::super::Foundation:: PEX_RUNDOWN_REF_CACHE_AWARE, count : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExAcquireRundownProtectionEx(runref : *mut EX_RUNDOWN_REF, count : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExAcquireSharedStarveExclusive(resource : *mut super::super::Foundation:: ERESOURCE, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExAcquireSharedWaitForExclusive(resource : *mut super::super::Foundation:: ERESOURCE, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExAcquireSpinLockExclusive(spinlock : *mut i32) -> u8); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExAcquireSpinLockExclusiveAtDpcLevel(spinlock : *mut i32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExAcquireSpinLockShared(spinlock : *mut i32) -> u8); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExAcquireSpinLockSharedAtDpcLevel(spinlock : *mut i32) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExAllocateCacheAwareRundownProtection(pooltype : super::super::Foundation:: POOL_TYPE, pooltag : u32) -> super::super::Foundation:: PEX_RUNDOWN_REF_CACHE_AWARE); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExAllocatePool(pooltype : super::super::Foundation:: POOL_TYPE, numberofbytes : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExAllocatePool2(flags : u64, numberofbytes : usize, tag : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExAllocatePool3(flags : u64, numberofbytes : usize, tag : u32, extendedparameters : *const POOL_EXTENDED_PARAMETER, extendedparameterscount : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExAllocatePoolWithQuota(pooltype : super::super::Foundation:: POOL_TYPE, numberofbytes : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExAllocatePoolWithQuotaTag(pooltype : super::super::Foundation:: POOL_TYPE, numberofbytes : usize, tag : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExAllocatePoolWithTag(pooltype : super::super::Foundation:: POOL_TYPE, numberofbytes : usize, tag : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExAllocatePoolWithTagPriority(pooltype : super::super::Foundation:: POOL_TYPE, numberofbytes : usize, tag : u32, priority : EX_POOL_PRIORITY) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExAllocateTimer(callback : PEXT_CALLBACK, callbackcontext : *const ::core::ffi::c_void, attributes : u32) -> super::super::Foundation:: PEX_TIMER); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ExCancelTimer(timer : super::super::Foundation:: PEX_TIMER, parameters : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExCleanupRundownProtectionCacheAware(runrefcacheaware : super::super::Foundation:: PEX_RUNDOWN_REF_CACHE_AWARE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExConvertExclusiveToSharedLite(resource : *mut super::super::Foundation:: ERESOURCE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ExCreateCallback(callbackobject : *mut super::super::Foundation:: PCALLBACK_OBJECT, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, create : super::super::super::Win32::Foundation:: BOOLEAN, allowmultiplecallbacks : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExCreatePool(flags : u32, tag : usize, params : *const POOL_CREATE_EXTENDED_PARAMS, poolhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExDeleteResourceLite(resource : *mut super::super::Foundation:: ERESOURCE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ExDeleteTimer(timer : super::super::Foundation:: PEX_TIMER, cancel : super::super::super::Win32::Foundation:: BOOLEAN, wait : super::super::super::Win32::Foundation:: BOOLEAN, parameters : *const EXT_DELETE_PARAMETERS) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExDestroyPool(poolhandle : super::super::super::Win32::Foundation:: HANDLE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExEnterCriticalRegionAndAcquireResourceExclusive(resource : *mut super::super::Foundation:: ERESOURCE) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExEnterCriticalRegionAndAcquireResourceShared(resource : *mut super::super::Foundation:: ERESOURCE) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExEnterCriticalRegionAndAcquireSharedWaitForExclusive(resource : *mut super::super::Foundation:: ERESOURCE) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExEnumerateSystemFirmwareTables(firmwaretableprovidersignature : u32, firmwaretablebuffer : *mut ::core::ffi::c_void, bufferlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExExtendZone(zone : *mut ZONE_HEADER, segment : *mut ::core::ffi::c_void, segmentsize : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExFreeCacheAwareRundownProtection(runrefcacheaware : super::super::Foundation:: PEX_RUNDOWN_REF_CACHE_AWARE) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExFreePool(p : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExFreePool2(p : *mut ::core::ffi::c_void, tag : u32, extendedparameters : *const POOL_EXTENDED_PARAMETER, extendedparameterscount : u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExFreePoolWithTag(p : *mut ::core::ffi::c_void, tag : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExGetExclusiveWaiterCount(resource : *const super::super::Foundation:: ERESOURCE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExGetFirmwareEnvironmentVariable(variablename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, vendorguid : *const ::windows_sys::core::GUID, value : *mut ::core::ffi::c_void, valuelength : *mut u32, attributes : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_System_SystemInformation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_System_SystemInformation\"`"] fn ExGetFirmwareType() -> super::super::super::Win32::System::SystemInformation:: FIRMWARE_TYPE); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExGetPreviousMode() -> i8); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExGetSharedWaiterCount(resource : *const super::super::Foundation:: ERESOURCE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExGetSystemFirmwareTable(firmwaretableprovidersignature : u32, firmwaretableid : u32, firmwaretablebuffer : *mut ::core::ffi::c_void, bufferlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExInitializePushLock(pushlock : *mut usize) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExInitializeResourceLite(resource : *mut super::super::Foundation:: ERESOURCE) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExInitializeRundownProtection(runref : *mut EX_RUNDOWN_REF) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExInitializeRundownProtectionCacheAware(runrefcacheaware : super::super::Foundation:: PEX_RUNDOWN_REF_CACHE_AWARE, runrefsize : usize) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExInitializeRundownProtectionCacheAwareEx(runrefcacheaware : super::super::Foundation:: PEX_RUNDOWN_REF_CACHE_AWARE, flags : u32) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExInitializeZone(zone : *mut ZONE_HEADER, blocksize : u32, initialsegment : *mut ::core::ffi::c_void, initialsegmentsize : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExInterlockedAddLargeInteger(addend : *mut i64, increment : i64, lock : *mut usize) -> i64); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExInterlockedExtendZone(zone : *mut ZONE_HEADER, segment : *mut ::core::ffi::c_void, segmentsize : u32, lock : *mut usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExIsManufacturingModeEnabled() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExIsProcessorFeaturePresent(processorfeature : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExIsResourceAcquiredExclusiveLite(resource : *const super::super::Foundation:: ERESOURCE) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExIsResourceAcquiredSharedLite(resource : *const super::super::Foundation:: ERESOURCE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExIsSoftBoot() -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExLocalTimeToSystemTime(localtime : *const i64, systemtime : *mut i64) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExNotifyCallback(callbackobject : *const ::core::ffi::c_void, argument1 : *const ::core::ffi::c_void, argument2 : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExQueryTimerResolution(maximumtime : *mut u32, minimumtime : *mut u32, currenttime : *mut u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExQueueWorkItem(workitem : *mut super::super::Foundation:: WORK_QUEUE_ITEM, queuetype : WORK_QUEUE_TYPE) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExRaiseAccessViolation() -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExRaiseDatatypeMisalignment() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExRaiseStatus(status : super::super::super::Win32::Foundation:: NTSTATUS) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExReInitializeRundownProtection(runref : *mut EX_RUNDOWN_REF) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExReInitializeRundownProtectionCacheAware(runrefcacheaware : super::super::Foundation:: PEX_RUNDOWN_REF_CACHE_AWARE) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExRegisterCallback(callbackobject : super::super::Foundation:: PCALLBACK_OBJECT, callbackfunction : PCALLBACK_FUNCTION, callbackcontext : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExReinitializeResourceLite(resource : *mut super::super::Foundation:: ERESOURCE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExReleaseFastMutex(fastmutex : *mut super::super::Foundation:: FAST_MUTEX) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExReleaseFastMutexUnsafe(fastmutex : *mut super::super::Foundation:: FAST_MUTEX) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExReleasePushLockExclusiveEx(pushlock : *mut usize, flags : u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExReleasePushLockSharedEx(pushlock : *mut usize, flags : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExReleaseResourceAndLeaveCriticalRegion(resource : *mut super::super::Foundation:: ERESOURCE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExReleaseResourceForThreadLite(resource : *mut super::super::Foundation:: ERESOURCE, resourcethreadid : usize) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExReleaseResourceLite(resource : *mut super::super::Foundation:: ERESOURCE) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExReleaseRundownProtection(runref : *mut EX_RUNDOWN_REF) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExReleaseRundownProtectionCacheAware(runrefcacheaware : super::super::Foundation:: PEX_RUNDOWN_REF_CACHE_AWARE) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExReleaseRundownProtectionCacheAwareEx(runref : super::super::Foundation:: PEX_RUNDOWN_REF_CACHE_AWARE, count : u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExReleaseRundownProtectionEx(runref : *mut EX_RUNDOWN_REF, count : u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExReleaseSpinLockExclusive(spinlock : *mut i32, oldirql : u8) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExReleaseSpinLockExclusiveFromDpcLevel(spinlock : *mut i32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExReleaseSpinLockShared(spinlock : *mut i32, oldirql : u8) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExReleaseSpinLockSharedFromDpcLevel(spinlock : *mut i32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExRundownCompleted(runref : *mut EX_RUNDOWN_REF) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExRundownCompletedCacheAware(runrefcacheaware : super::super::Foundation:: PEX_RUNDOWN_REF_CACHE_AWARE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExSecurePoolUpdate(securepoolhandle : super::super::super::Win32::Foundation:: HANDLE, tag : u32, allocation : *const ::core::ffi::c_void, cookie : usize, offset : usize, size : usize, buffer : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExSecurePoolValidate(securepoolhandle : super::super::super::Win32::Foundation:: HANDLE, tag : u32, allocation : *const ::core::ffi::c_void, cookie : usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExSetFirmwareEnvironmentVariable(variablename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, vendorguid : *const ::windows_sys::core::GUID, value : *const ::core::ffi::c_void, valuelength : u32, attributes : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExSetResourceOwnerPointer(resource : *mut super::super::Foundation:: ERESOURCE, ownerpointer : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExSetResourceOwnerPointerEx(resource : *mut super::super::Foundation:: ERESOURCE, ownerpointer : *const ::core::ffi::c_void, flags : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ExSetTimer(timer : super::super::Foundation:: PEX_TIMER, duetime : i64, period : i64, parameters : *const _EXT_SET_PARAMETERS_V0) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExSetTimerResolution(desiredtime : u32, setresolution : super::super::super::Win32::Foundation:: BOOLEAN) -> u32); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExSizeOfRundownProtectionCacheAware() -> usize); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExSystemTimeToLocalTime(systemtime : *const i64, localtime : *mut i64) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExTryAcquireSpinLockExclusiveAtDpcLevel(spinlock : *mut i32) -> u32); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExTryAcquireSpinLockSharedAtDpcLevel(spinlock : *mut i32) -> u32); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExTryConvertSharedSpinLockExclusive(spinlock : *mut i32) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExTryToAcquireFastMutex(fastmutex : *mut super::super::Foundation:: FAST_MUTEX) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExUnregisterCallback(callbackregistration : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExUuidCreate(uuid : *mut ::windows_sys::core::GUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ExVerifySuite(suitetype : super::super::super::Win32::System::Kernel:: SUITE_TYPE) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn ExWaitForRundownProtectionRelease(runref : *mut EX_RUNDOWN_REF) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn ExWaitForRundownProtectionReleaseCacheAware(runref : super::super::Foundation:: PEX_RUNDOWN_REF_CACHE_AWARE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FsRtlIsTotalDeviceFailure(status : super::super::super::Win32::Foundation:: NTSTATUS) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HalAcquireDisplayOwnership(resetdisplayparameters : PHAL_RESET_DISPLAY_PARAMETERS) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Storage_IscsiDisc", feature = "Win32_System_Kernel"))] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_IscsiDisc\"`, `\"Win32_System_Kernel\"`"] fn HalAllocateAdapterChannel(adapterobject : *const super::super::super::Win32::Storage::IscsiDisc:: _ADAPTER_OBJECT, wcb : *const WAIT_CONTEXT_BLOCK, numberofmapregisters : u32, executionroutine : PDRIVER_CONTROL) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IscsiDisc"))] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IscsiDisc\"`"] fn HalAllocateCommonBuffer(adapterobject : *const super::super::super::Win32::Storage::IscsiDisc:: _ADAPTER_OBJECT, length : u32, logicaladdress : *mut i64, cacheenabled : super::super::super::Win32::Foundation:: BOOLEAN) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Storage_IscsiDisc")] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Storage_IscsiDisc\"`"] fn HalAllocateCrashDumpRegisters(adapterobject : *const super::super::super::Win32::Storage::IscsiDisc:: _ADAPTER_OBJECT, numberofmapregisters : *mut u32) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn HalAllocateHardwareCounters(groupaffinty : *const super::super::super::Win32::System::SystemInformation:: GROUP_AFFINITY, groupcount : u32, resourcelist : *const PHYSICAL_COUNTER_RESOURCE_LIST, countersethandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn HalAssignSlotResources(registrypath : *const super::super::super::Win32::Foundation:: UNICODE_STRING, driverclassname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, driverobject : *const super::super::Foundation:: DRIVER_OBJECT, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, bustype : INTERFACE_TYPE, busnumber : u32, slotnumber : u32, allocatedresources : *mut *mut CM_RESOURCE_LIST) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn HalBugCheckSystem(errorsource : *const super::super::super::Win32::System::Diagnostics::Debug:: WHEA_ERROR_SOURCE_DESCRIPTOR, errorrecord : *const WHEA_ERROR_RECORD) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IscsiDisc"))] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IscsiDisc\"`"] fn HalDmaAllocateCrashDumpRegistersEx(adapter : *const super::super::super::Win32::Storage::IscsiDisc:: _ADAPTER_OBJECT, numberofmapregisters : u32, r#type : HAL_DMA_CRASH_DUMP_REGISTER_TYPE, mapregisterbase : *mut *mut ::core::ffi::c_void, mapregistersavailable : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IscsiDisc"))] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IscsiDisc\"`"] fn HalDmaFreeCrashDumpRegistersEx(adapter : *const super::super::super::Win32::Storage::IscsiDisc:: _ADAPTER_OBJECT, r#type : HAL_DMA_CRASH_DUMP_REGISTER_TYPE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn HalExamineMBR(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, sectorsize : u32, mbrtypeidentifier : u32, buffer : *mut *mut ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IscsiDisc"))] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IscsiDisc\"`"] fn HalFreeCommonBuffer(adapterobject : *const super::super::super::Win32::Storage::IscsiDisc:: _ADAPTER_OBJECT, length : u32, logicaladdress : i64, virtualaddress : *const ::core::ffi::c_void, cacheenabled : super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HalFreeHardwareCounters(countersethandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IscsiDisc"))] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IscsiDisc\"`"] fn HalGetAdapter(devicedescription : *const DEVICE_DESCRIPTION, numberofmapregisters : *mut u32) -> *mut super::super::super::Win32::Storage::IscsiDisc:: _ADAPTER_OBJECT); +::windows_targets::link!("hal.dll" "system" fn HalGetBusData(busdatatype : BUS_DATA_TYPE, busnumber : u32, slotnumber : u32, buffer : *mut ::core::ffi::c_void, length : u32) -> u32); +::windows_targets::link!("hal.dll" "system" fn HalGetBusDataByOffset(busdatatype : BUS_DATA_TYPE, busnumber : u32, slotnumber : u32, buffer : *mut ::core::ffi::c_void, offset : u32, length : u32) -> u32); +::windows_targets::link!("hal.dll" "system" fn HalGetInterruptVector(interfacetype : INTERFACE_TYPE, busnumber : u32, businterruptlevel : u32, businterruptvector : u32, irql : *mut u8, affinity : *mut usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HalMakeBeep(frequency : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Storage_IscsiDisc")] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Storage_IscsiDisc\"`"] fn HalReadDmaCounter(adapterobject : *const super::super::super::Win32::Storage::IscsiDisc:: _ADAPTER_OBJECT) -> u32); +::windows_targets::link!("hal.dll" "system" fn HalSetBusData(busdatatype : BUS_DATA_TYPE, busnumber : u32, slotnumber : u32, buffer : *const ::core::ffi::c_void, length : u32) -> u32); +::windows_targets::link!("hal.dll" "system" fn HalSetBusDataByOffset(busdatatype : BUS_DATA_TYPE, busnumber : u32, slotnumber : u32, buffer : *const ::core::ffi::c_void, offset : u32, length : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HalTranslateBusAddress(interfacetype : INTERFACE_TYPE, busnumber : u32, busaddress : i64, addressspace : *mut u32, translatedaddress : *mut i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HvlRegisterWheaErrorNotification(callback : PHVL_WHEA_ERROR_NOTIFICATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HvlUnregisterWheaErrorNotification(callback : PHVL_WHEA_ERROR_NOTIFICATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoAcquireCancelSpinLock(irql : *mut u8) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAcquireKsrPersistentMemory(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, buffer : *mut ::core::ffi::c_void, size : *mut usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAcquireKsrPersistentMemoryEx(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, physicaldeviceid : *const super::super::super::Win32::Foundation:: UNICODE_STRING, datatag : *const u16, dataversion : *mut u32, buffer : *mut ::core::ffi::c_void, size : *mut usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn IoAcquireRemoveLockEx(removelock : *mut IO_REMOVE_LOCK, tag : *const ::core::ffi::c_void, file : ::windows_sys::core::PCSTR, line : u32, remlocksize : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_IscsiDisc", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_IscsiDisc\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAllocateAdapterChannel(adapterobject : *const super::super::super::Win32::Storage::IscsiDisc:: _ADAPTER_OBJECT, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, numberofmapregisters : u32, executionroutine : PDRIVER_CONTROL, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAllocateController(controllerobject : *const CONTROLLER_OBJECT, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, executionroutine : PDRIVER_CONTROL, context : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAllocateDriverObjectExtension(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, clientidentificationaddress : *const ::core::ffi::c_void, driverobjectextensionsize : u32, driverobjectextension : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoAllocateErrorLogEntry(ioobject : *const ::core::ffi::c_void, entrysize : u8) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAllocateIrp(stacksize : i8, chargequota : super::super::super::Win32::Foundation:: BOOLEAN) -> *mut super::super::Foundation:: IRP); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAllocateIrpEx(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, stacksize : i8, chargequota : super::super::super::Win32::Foundation:: BOOLEAN) -> *mut super::super::Foundation:: IRP); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAllocateMdl(virtualaddress : *const ::core::ffi::c_void, length : u32, secondarybuffer : super::super::super::Win32::Foundation:: BOOLEAN, chargequota : super::super::super::Win32::Foundation:: BOOLEAN, irp : *mut super::super::Foundation:: IRP) -> *mut super::super::Foundation:: MDL); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAllocateSfioStreamIdentifier(fileobject : *const super::super::Foundation:: FILE_OBJECT, length : u32, signature : *const ::core::ffi::c_void, streamidentifier : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAllocateWorkItem(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> super::super::Foundation:: PIO_WORKITEM); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAssignResources(registrypath : *const super::super::super::Win32::Foundation:: UNICODE_STRING, driverclassname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, driverobject : *const super::super::Foundation:: DRIVER_OBJECT, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, requestedresources : *const IO_RESOURCE_REQUIREMENTS_LIST, allocatedresources : *mut *mut CM_RESOURCE_LIST) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAttachDevice(sourcedevice : *const super::super::Foundation:: DEVICE_OBJECT, targetdevice : *const super::super::super::Win32::Foundation:: UNICODE_STRING, attacheddevice : *mut *mut super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAttachDeviceByPointer(sourcedevice : *const super::super::Foundation:: DEVICE_OBJECT, targetdevice : *const super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAttachDeviceToDeviceStack(sourcedevice : *const super::super::Foundation:: DEVICE_OBJECT, targetdevice : *const super::super::Foundation:: DEVICE_OBJECT) -> *mut super::super::Foundation:: DEVICE_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoAttachDeviceToDeviceStackSafe(sourcedevice : *const super::super::Foundation:: DEVICE_OBJECT, targetdevice : *const super::super::Foundation:: DEVICE_OBJECT, attachedtodeviceobject : *mut *mut super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoBuildAsynchronousFsdRequest(majorfunction : u32, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, buffer : *mut ::core::ffi::c_void, length : u32, startingoffset : *const i64, iostatusblock : *const super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> *mut super::super::Foundation:: IRP); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoBuildDeviceIoControlRequest(iocontrolcode : u32, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, inputbuffer : *const ::core::ffi::c_void, inputbufferlength : u32, outputbuffer : *mut ::core::ffi::c_void, outputbufferlength : u32, internaldeviceiocontrol : super::super::super::Win32::Foundation:: BOOLEAN, event : *const super::super::Foundation:: KEVENT, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> *mut super::super::Foundation:: IRP); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn IoBuildPartialMdl(sourcemdl : *const super::super::Foundation:: MDL, targetmdl : *mut super::super::Foundation:: MDL, virtualaddress : *mut ::core::ffi::c_void, length : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoBuildSynchronousFsdRequest(majorfunction : u32, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, buffer : *mut ::core::ffi::c_void, length : u32, startingoffset : *const i64, event : *const super::super::Foundation:: KEVENT, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK) -> *mut super::super::Foundation:: IRP); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCancelFileOpen(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, fileobject : *const super::super::Foundation:: FILE_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCancelIrp(irp : *const super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCheckLinkShareAccess(desiredaccess : u32, desiredshareaccess : u32, fileobject : *mut super::super::Foundation:: FILE_OBJECT, shareaccess : *mut SHARE_ACCESS, linkshareaccess : *mut LINK_SHARE_ACCESS, ioshareaccessflags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCheckShareAccess(desiredaccess : u32, desiredshareaccess : u32, fileobject : *mut super::super::Foundation:: FILE_OBJECT, shareaccess : *mut SHARE_ACCESS, update : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCheckShareAccessEx(desiredaccess : u32, desiredshareaccess : u32, fileobject : *mut super::super::Foundation:: FILE_OBJECT, shareaccess : *mut SHARE_ACCESS, update : super::super::super::Win32::Foundation:: BOOLEAN, writepermission : *const super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCleanupIrp(irp : *mut super::super::Foundation:: IRP) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoClearActivityIdThread(originalid : *const ::windows_sys::core::GUID) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoClearIrpExtraCreateParameter(irp : *mut super::super::Foundation:: IRP) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn IoConnectInterrupt(interruptobject : *mut super::super::Foundation:: PKINTERRUPT, serviceroutine : PKSERVICE_ROUTINE, servicecontext : *const ::core::ffi::c_void, spinlock : *const usize, vector : u32, irql : u8, synchronizeirql : u8, interruptmode : KINTERRUPT_MODE, sharevector : super::super::super::Win32::Foundation:: BOOLEAN, processorenablemask : usize, floatingsave : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoConnectInterruptEx(parameters : *mut IO_CONNECT_INTERRUPT_PARAMETERS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn IoCreateController(size : u32) -> *mut CONTROLLER_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCreateDevice(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, deviceextensionsize : u32, devicename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, devicetype : u32, devicecharacteristics : u32, exclusive : super::super::super::Win32::Foundation:: BOOLEAN, deviceobject : *mut *mut super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Ioctl", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Ioctl\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCreateDisk(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, disk : *const super::super::super::Win32::System::Ioctl:: CREATE_DISK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn IoCreateFile(filehandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : u32, shareaccess : u32, disposition : u32, createoptions : u32, eabuffer : *const ::core::ffi::c_void, ealength : u32, createfiletype : CREATE_FILE_TYPE, internalparameters : *const ::core::ffi::c_void, options : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn IoCreateFileEx(filehandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : u32, shareaccess : u32, disposition : u32, createoptions : u32, eabuffer : *const ::core::ffi::c_void, ealength : u32, createfiletype : CREATE_FILE_TYPE, internalparameters : *const ::core::ffi::c_void, options : u32, drivercontext : *const IO_DRIVER_CREATE_CONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn IoCreateFileSpecifyDeviceObjectHint(filehandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : u32, shareaccess : u32, disposition : u32, createoptions : u32, eabuffer : *const ::core::ffi::c_void, ealength : u32, createfiletype : CREATE_FILE_TYPE, internalparameters : *const ::core::ffi::c_void, options : u32, deviceobject : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn IoCreateNotificationEvent(eventname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, eventhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> *mut super::super::Foundation:: KEVENT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoCreateSymbolicLink(symboliclinkname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, devicename : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn IoCreateSynchronizationEvent(eventname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, eventhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> *mut super::super::Foundation:: KEVENT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCreateSystemThread(ioobject : *mut ::core::ffi::c_void, threadhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, processhandle : super::super::super::Win32::Foundation:: HANDLE, clientid : *mut super::super::super::Win32::System::WindowsProgramming:: CLIENT_ID, startroutine : PKSTART_ROUTINE, startcontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoCreateUnprotectedSymbolicLink(symboliclinkname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, devicename : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCsqInitialize(csq : *mut IO_CSQ, csqinsertirp : PIO_CSQ_INSERT_IRP, csqremoveirp : PIO_CSQ_REMOVE_IRP, csqpeeknextirp : PIO_CSQ_PEEK_NEXT_IRP, csqacquirelock : PIO_CSQ_ACQUIRE_LOCK, csqreleaselock : PIO_CSQ_RELEASE_LOCK, csqcompletecanceledirp : PIO_CSQ_COMPLETE_CANCELED_IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCsqInitializeEx(csq : *mut IO_CSQ, csqinsertirp : PIO_CSQ_INSERT_IRP_EX, csqremoveirp : PIO_CSQ_REMOVE_IRP, csqpeeknextirp : PIO_CSQ_PEEK_NEXT_IRP, csqacquirelock : PIO_CSQ_ACQUIRE_LOCK, csqreleaselock : PIO_CSQ_RELEASE_LOCK, csqcompletecanceledirp : PIO_CSQ_COMPLETE_CANCELED_IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCsqInsertIrp(csq : *mut IO_CSQ, irp : *mut super::super::Foundation:: IRP, context : *mut IO_CSQ_IRP_CONTEXT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCsqInsertIrpEx(csq : *mut IO_CSQ, irp : *mut super::super::Foundation:: IRP, context : *mut IO_CSQ_IRP_CONTEXT, insertcontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCsqRemoveIrp(csq : *mut IO_CSQ, context : *mut IO_CSQ_IRP_CONTEXT) -> *mut super::super::Foundation:: IRP); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoCsqRemoveNextIrp(csq : *mut IO_CSQ, peekcontext : *const ::core::ffi::c_void) -> *mut super::super::Foundation:: IRP); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoDecrementKeepAliveCount(fileobject : *mut super::super::Foundation:: FILE_OBJECT, process : super::super::Foundation:: PEPROCESS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn IoDeleteController(controllerobject : *const CONTROLLER_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoDeleteDevice(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoDeleteSymbolicLink(symboliclinkname : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoDetachDevice(targetdevice : *mut super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn IoDisconnectInterrupt(interruptobject : super::super::Foundation:: PKINTERRUPT) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn IoDisconnectInterruptEx(parameters : *const IO_DISCONNECT_INTERRUPT_PARAMETERS) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoEnumerateKsrPersistentMemoryEx(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, physicaldeviceid : *const super::super::super::Win32::Foundation:: UNICODE_STRING, callback : PIO_PERSISTED_MEMORY_ENUMERATION_CALLBACK, callbackcontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Storage_IscsiDisc"))] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_IscsiDisc\"`"] fn IoFlushAdapterBuffers(adapterobject : *const super::super::super::Win32::Storage::IscsiDisc:: _ADAPTER_OBJECT, mdl : *const super::super::Foundation:: MDL, mapregisterbase : *const ::core::ffi::c_void, currentva : *const ::core::ffi::c_void, length : u32, writetodevice : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoForwardIrpSynchronously(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, irp : *const super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Storage_IscsiDisc")] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Storage_IscsiDisc\"`"] fn IoFreeAdapterChannel(adapterobject : *const super::super::super::Win32::Storage::IscsiDisc:: _ADAPTER_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn IoFreeController(controllerobject : *const CONTROLLER_OBJECT) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoFreeErrorLogEntry(elentry : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoFreeIrp(irp : *const super::super::Foundation:: IRP) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoFreeKsrPersistentMemory(datahandle : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Storage_IscsiDisc")] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Win32_Storage_IscsiDisc\"`"] fn IoFreeMapRegisters(adapterobject : *const super::super::super::Win32::Storage::IscsiDisc:: _ADAPTER_OBJECT, mapregisterbase : *const ::core::ffi::c_void, numberofmapregisters : u32) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn IoFreeMdl(mdl : *mut super::super::Foundation:: MDL) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoFreeSfioStreamIdentifier(fileobject : *const super::super::Foundation:: FILE_OBJECT, signature : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn IoFreeWorkItem(ioworkitem : super::super::Foundation:: PIO_WORKITEM) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetActivityIdIrp(irp : *const super::super::Foundation:: IRP, guid : *mut ::windows_sys::core::GUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoGetActivityIdThread() -> *mut ::windows_sys::core::GUID); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn IoGetAffinityInterrupt(interruptobject : super::super::Foundation:: PKINTERRUPT, groupaffinity : *mut super::super::super::Win32::System::SystemInformation:: GROUP_AFFINITY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetAttachedDeviceReference(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> *mut super::super::Foundation:: DEVICE_OBJECT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoGetBootDiskInformation(bootdiskinformation : *mut BOOTDISK_INFORMATION, size : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoGetBootDiskInformationLite(bootdiskinformation : *mut *mut BOOTDISK_INFORMATION_LITE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoGetConfigurationInformation() -> *mut CONFIGURATION_INFORMATION); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoGetContainerInformation(informationclass : IO_CONTAINER_INFORMATION_CLASS, containerobject : *const ::core::ffi::c_void, buffer : *mut ::core::ffi::c_void, bufferlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn IoGetCurrentProcess() -> super::super::Foundation:: PEPROCESS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetDeviceDirectory(physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, directorytype : DEVICE_DIRECTORY_TYPE, flags : u32, reserved : *const ::core::ffi::c_void, devicedirectoryhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoGetDeviceInterfaceAlias(symboliclinkname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, aliasinterfaceclassguid : *const ::windows_sys::core::GUID, aliassymboliclinkname : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn IoGetDeviceInterfacePropertyData(symboliclinkname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, propertykey : *const super::super::super::Win32::Devices::Properties:: DEVPROPKEY, lcid : u32, flags : u32, size : u32, data : *mut ::core::ffi::c_void, requiredsize : *mut u32, r#type : *mut super::super::super::Win32::Devices::Properties:: DEVPROPTYPE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetDeviceInterfaces(interfaceclassguid : *const ::windows_sys::core::GUID, physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, flags : u32, symboliclinklist : *mut ::windows_sys::core::PWSTR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetDeviceNumaNode(pdo : *const super::super::Foundation:: DEVICE_OBJECT, nodenumber : *mut u16) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetDeviceObjectPointer(objectname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, desiredaccess : u32, fileobject : *mut *mut super::super::Foundation:: FILE_OBJECT, deviceobject : *mut *mut super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetDeviceProperty(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, deviceproperty : DEVICE_REGISTRY_PROPERTY, bufferlength : u32, propertybuffer : *mut ::core::ffi::c_void, resultlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Devices_Properties", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetDevicePropertyData(pdo : *const super::super::Foundation:: DEVICE_OBJECT, propertykey : *const super::super::super::Win32::Devices::Properties:: DEVPROPKEY, lcid : u32, flags : u32, size : u32, data : *mut ::core::ffi::c_void, requiredsize : *mut u32, r#type : *mut super::super::super::Win32::Devices::Properties:: DEVPROPTYPE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetDmaAdapter(physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, devicedescription : *const DEVICE_DESCRIPTION, numberofmapregisters : *mut u32) -> *mut DMA_ADAPTER); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetDriverDirectory(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, directorytype : DRIVER_DIRECTORY_TYPE, flags : u32, driverdirectoryhandle : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetDriverObjectExtension(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, clientidentificationaddress : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn IoGetFileObjectGenericMapping() -> *mut super::super::super::Win32::Security:: GENERIC_MAPPING); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetFsZeroingOffset(irp : *const super::super::Foundation:: IRP, zeroingoffset : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoGetInitialStack() -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetInitiatorProcess(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> super::super::Foundation:: PEPROCESS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetIoAttributionHandle(irp : *const super::super::Foundation:: IRP, ioattributionhandle : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetIoPriorityHint(irp : *const super::super::Foundation:: IRP) -> super::super::Foundation:: IO_PRIORITY_HINT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoGetIommuInterface(version : u32, interfaceout : *mut DMA_IOMMU_INTERFACE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoGetIommuInterfaceEx(version : u32, flags : u64, interfaceout : *mut DMA_IOMMU_INTERFACE_EX) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetIrpExtraCreateParameter(irp : *const super::super::Foundation:: IRP, extracreateparameter : *mut *mut isize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetPagingIoPriority(irp : *const super::super::Foundation:: IRP) -> IO_PAGING_PRIORITY); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetRelatedDeviceObject(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> *mut super::super::Foundation:: DEVICE_OBJECT); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetSfioStreamIdentifier(fileobject : *const super::super::Foundation:: FILE_OBJECT, signature : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetSilo(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> super::super::Foundation:: PESILO); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetSiloParameters(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> *mut IO_FOEXT_SILO_PARAMETERS); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoGetStackLimits(lowlimit : *mut usize, highlimit : *mut usize) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetTopLevelIrp() -> *mut super::super::Foundation:: IRP); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoGetTransactionParameterBlock(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> *mut TXN_PARAMETER_BLOCK); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoIncrementKeepAliveCount(fileobject : *mut super::super::Foundation:: FILE_OBJECT, process : super::super::Foundation:: PEPROCESS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoInitializeIrp(irp : *mut super::super::Foundation:: IRP, packetsize : u16, stacksize : i8) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoInitializeIrpEx(irp : *mut super::super::Foundation:: IRP, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, packetsize : u16, stacksize : i8) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn IoInitializeRemoveLockEx(lock : *mut IO_REMOVE_LOCK, allocatetag : u32, maxlockedminutes : u32, highwatermark : u32, remlocksize : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoInitializeTimer(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, timerroutine : PIO_TIMER_ROUTINE, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn IoInitializeWorkItem(ioobject : *const ::core::ffi::c_void, ioworkitem : super::super::Foundation:: PIO_WORKITEM) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoInvalidateDeviceRelations(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, r#type : DEVICE_RELATION_TYPE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoInvalidateDeviceState(physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoIs32bitProcess(irp : *const super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoIsFileObjectIgnoringSharing(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoIsFileOriginRemote(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoIsInitiator32bitProcess(irp : *const super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoIsValidIrpStatus(status : super::super::super::Win32::Foundation:: NTSTATUS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoIsWdmVersionAvailable(majorversion : u8, minorversion : u8) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoMakeAssociatedIrp(irp : *const super::super::Foundation:: IRP, stacksize : i8) -> *mut super::super::Foundation:: IRP); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoMakeAssociatedIrpEx(irp : *const super::super::Foundation:: IRP, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, stacksize : i8) -> *mut super::super::Foundation:: IRP); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Storage_IscsiDisc"))] +::windows_targets::link!("hal.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_IscsiDisc\"`"] fn IoMapTransfer(adapterobject : *const super::super::super::Win32::Storage::IscsiDisc:: _ADAPTER_OBJECT, mdl : *const super::super::Foundation:: MDL, mapregisterbase : *const ::core::ffi::c_void, currentva : *const ::core::ffi::c_void, length : *mut u32, writetodevice : super::super::super::Win32::Foundation:: BOOLEAN) -> i64); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoOpenDeviceInterfaceRegistryKey(symboliclinkname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, desiredaccess : u32, deviceinterfaceregkey : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoOpenDeviceRegistryKey(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, devinstkeytype : u32, desiredaccess : u32, deviceregkey : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoOpenDriverRegistryKey(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, regkeytype : DRIVER_REGKEY_TYPE, desiredaccess : u32, flags : u32, driverregkey : *mut super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoPropagateActivityIdToThread(irp : *const super::super::Foundation:: IRP, propagatedid : *mut ::windows_sys::core::GUID, originalid : *mut *mut ::windows_sys::core::GUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoQueryDeviceDescription(bustype : *const INTERFACE_TYPE, busnumber : *const u32, controllertype : *const CONFIGURATION_TYPE, controllernumber : *const u32, peripheraltype : *const CONFIGURATION_TYPE, peripheralnumber : *const u32, calloutroutine : PIO_QUERY_DEVICE_ROUTINE, context : *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoQueryFullDriverPath(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, fullpath : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoQueryInformationByName(objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS, options : u32, drivercontext : *const IO_DRIVER_CREATE_CONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoQueryKsrPersistentMemorySize(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, buffersize : *mut usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoQueryKsrPersistentMemorySizeEx(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, physicaldeviceid : *const super::super::super::Win32::Foundation:: UNICODE_STRING, datatag : *const u16, dataversion : *mut u32, buffersize : *mut usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn IoQueueWorkItem(ioworkitem : super::super::Foundation:: PIO_WORKITEM, workerroutine : PIO_WORKITEM_ROUTINE, queuetype : WORK_QUEUE_TYPE, context : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn IoQueueWorkItemEx(ioworkitem : super::super::Foundation:: PIO_WORKITEM, workerroutine : PIO_WORKITEM_ROUTINE_EX, queuetype : WORK_QUEUE_TYPE, context : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRaiseHardError(irp : *const super::super::Foundation:: IRP, vpb : *const super::super::Foundation:: VPB, realdeviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn IoRaiseInformationalHardError(errorstatus : super::super::super::Win32::Foundation:: NTSTATUS, string : *const super::super::super::Win32::Foundation:: UNICODE_STRING, thread : super::super::Foundation:: PKTHREAD) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReadDiskSignature(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, bytespersector : u32, signature : *mut DISK_SIGNATURE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Ioctl", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Ioctl\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReadPartitionTable(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, sectorsize : u32, returnrecognizedpartitions : super::super::super::Win32::Foundation:: BOOLEAN, partitionbuffer : *mut *mut super::super::super::Win32::System::Ioctl:: DRIVE_LAYOUT_INFORMATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Ioctl", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Ioctl\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReadPartitionTableEx(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, drivelayout : *mut *mut super::super::super::Win32::System::Ioctl:: DRIVE_LAYOUT_INFORMATION_EX) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoRecordIoAttribution(opaquehandle : *mut ::core::ffi::c_void, attributioninformation : *const IO_ATTRIBUTION_INFORMATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoRegisterBootDriverCallback(callbackfunction : PBOOT_DRIVER_CALLBACK_FUNCTION, callbackcontext : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRegisterBootDriverReinitialization(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, driverreinitializationroutine : PDRIVER_REINITIALIZE, context : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoRegisterContainerNotification(notificationclass : IO_CONTAINER_NOTIFICATION_CLASS, callbackfunction : PIO_CONTAINER_NOTIFICATION_FUNCTION, notificationinformation : *const ::core::ffi::c_void, notificationinformationlength : u32, callbackregistration : *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRegisterDeviceInterface(physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, interfaceclassguid : *const ::windows_sys::core::GUID, referencestring : *const super::super::super::Win32::Foundation:: UNICODE_STRING, symboliclinkname : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRegisterDriverReinitialization(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, driverreinitializationroutine : PDRIVER_REINITIALIZE, context : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRegisterLastChanceShutdownNotification(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRegisterPlugPlayNotification(eventcategory : IO_NOTIFICATION_EVENT_CATEGORY, eventcategoryflags : u32, eventcategorydata : *const ::core::ffi::c_void, driverobject : *const super::super::Foundation:: DRIVER_OBJECT, callbackroutine : PDRIVER_NOTIFICATION_CALLBACK_ROUTINE, context : *mut ::core::ffi::c_void, notificationentry : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRegisterShutdownNotification(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoReleaseCancelSpinLock(irql : u8) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn IoReleaseRemoveLockAndWaitEx(removelock : *mut IO_REMOVE_LOCK, tag : *const ::core::ffi::c_void, remlocksize : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn IoReleaseRemoveLockEx(removelock : *mut IO_REMOVE_LOCK, tag : *const ::core::ffi::c_void, remlocksize : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRemoveLinkShareAccess(fileobject : *const super::super::Foundation:: FILE_OBJECT, shareaccess : *mut SHARE_ACCESS, linkshareaccess : *mut LINK_SHARE_ACCESS) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRemoveLinkShareAccessEx(fileobject : *const super::super::Foundation:: FILE_OBJECT, shareaccess : *mut SHARE_ACCESS, linkshareaccess : *mut LINK_SHARE_ACCESS, ioshareaccessflags : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRemoveShareAccess(fileobject : *const super::super::Foundation:: FILE_OBJECT, shareaccess : *mut SHARE_ACCESS) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReplacePartitionUnit(targetpdo : *const super::super::Foundation:: DEVICE_OBJECT, sparepdo : *const super::super::Foundation:: DEVICE_OBJECT, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReportDetectedDevice(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, legacybustype : INTERFACE_TYPE, busnumber : u32, slotnumber : u32, resourcelist : *const CM_RESOURCE_LIST, resourcerequirements : *const IO_RESOURCE_REQUIREMENTS_LIST, resourceassigned : super::super::super::Win32::Foundation:: BOOLEAN, deviceobject : *mut *mut super::super::Foundation:: DEVICE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn IoReportInterruptActive(parameters : *const IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn IoReportInterruptInactive(parameters : *const IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReportResourceForDetection(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, driverlist : *const CM_RESOURCE_LIST, driverlistsize : u32, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, devicelist : *const CM_RESOURCE_LIST, devicelistsize : u32, conflictdetected : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReportResourceUsage(driverclassname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, driverobject : *const super::super::Foundation:: DRIVER_OBJECT, driverlist : *const CM_RESOURCE_LIST, driverlistsize : u32, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, devicelist : *const CM_RESOURCE_LIST, devicelistsize : u32, overrideconflict : super::super::super::Win32::Foundation:: BOOLEAN, conflictdetected : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReportRootDevice(driverobject : *const super::super::Foundation:: DRIVER_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReportTargetDeviceChange(physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, notificationstructure : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReportTargetDeviceChangeAsynchronous(physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, notificationstructure : *const ::core::ffi::c_void, callback : PDEVICE_CHANGE_COMPLETE_CALLBACK, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRequestDeviceEject(physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoRequestDeviceEjectEx(physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, callback : PIO_DEVICE_EJECT_CALLBACK, context : *const ::core::ffi::c_void, driverobject : *const super::super::Foundation:: DRIVER_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReserveKsrPersistentMemory(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, size : usize, flags : u32, datahandle : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReserveKsrPersistentMemoryEx(driverobject : *const super::super::Foundation:: DRIVER_OBJECT, physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, physicaldeviceid : *const super::super::super::Win32::Foundation:: UNICODE_STRING, datatag : *const u16, dataversion : u32, size : usize, flags : u32, datahandle : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoReuseIrp(irp : *mut super::super::Foundation:: IRP, iostatus : super::super::super::Win32::Foundation:: NTSTATUS) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetActivityIdIrp(irp : *mut super::super::Foundation:: IRP, guid : *const ::windows_sys::core::GUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoSetActivityIdThread(activityid : *const ::windows_sys::core::GUID) -> *mut ::windows_sys::core::GUID); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetCompletionRoutineEx(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, irp : *const super::super::Foundation:: IRP, completionroutine : super::super::Foundation:: PIO_COMPLETION_ROUTINE, context : *const ::core::ffi::c_void, invokeonsuccess : super::super::super::Win32::Foundation:: BOOLEAN, invokeonerror : super::super::super::Win32::Foundation:: BOOLEAN, invokeoncancel : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn IoSetDeviceInterfacePropertyData(symboliclinkname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, propertykey : *const super::super::super::Win32::Devices::Properties:: DEVPROPKEY, lcid : u32, flags : u32, r#type : u32, size : u32, data : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoSetDeviceInterfaceState(symboliclinkname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, enable : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Devices_Properties", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetDevicePropertyData(pdo : *const super::super::Foundation:: DEVICE_OBJECT, propertykey : *const super::super::super::Win32::Devices::Properties:: DEVPROPKEY, lcid : u32, flags : u32, r#type : u32, size : u32, data : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetFileObjectIgnoreSharing(fileobject : *const super::super::Foundation:: FILE_OBJECT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetFileOrigin(fileobject : *const super::super::Foundation:: FILE_OBJECT, remote : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetFsZeroingOffset(irp : *mut super::super::Foundation:: IRP, zeroingoffset : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetFsZeroingOffsetRequired(irp : *mut super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetHardErrorOrVerifyDevice(irp : *const super::super::Foundation:: IRP, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetIoAttributionIrp(irp : *mut super::super::Foundation:: IRP, attributionsource : *const ::core::ffi::c_void, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetIoPriorityHint(irp : *const super::super::Foundation:: IRP, priorityhint : super::super::Foundation:: IO_PRIORITY_HINT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetIrpExtraCreateParameter(irp : *mut super::super::Foundation:: IRP, extracreateparameter : *const isize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetLinkShareAccess(desiredaccess : u32, desiredshareaccess : u32, fileobject : *mut super::super::Foundation:: FILE_OBJECT, shareaccess : *mut SHARE_ACCESS, linkshareaccess : *mut LINK_SHARE_ACCESS, ioshareaccessflags : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetMasterIrpStatus(masterirp : *mut super::super::Foundation:: IRP, status : super::super::super::Win32::Foundation:: NTSTATUS) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetPartitionInformation(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, sectorsize : u32, partitionnumber : u32, partitiontype : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Ioctl", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Ioctl\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetPartitionInformationEx(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, partitionnumber : u32, partitioninfo : *const super::super::super::Win32::System::Ioctl:: SET_PARTITION_INFORMATION_EX) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetShareAccess(desiredaccess : u32, desiredshareaccess : u32, fileobject : *mut super::super::Foundation:: FILE_OBJECT, shareaccess : *mut SHARE_ACCESS) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetShareAccessEx(desiredaccess : u32, desiredshareaccess : u32, fileobject : *mut super::super::Foundation:: FILE_OBJECT, shareaccess : *mut SHARE_ACCESS, writepermission : *const super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetStartIoAttributes(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, deferredstartio : super::super::super::Win32::Foundation:: BOOLEAN, noncancelable : super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoSetSystemPartition(volumenamestring : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoSetThreadHardErrorMode(enableharderrors : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSetTopLevelIrp(irp : *const super::super::Foundation:: IRP) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSizeOfIrpEx(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, stacksize : i8) -> u16); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoSizeofWorkItem() -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoStartNextPacket(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, cancelable : super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoStartNextPacketByKey(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, cancelable : super::super::super::Win32::Foundation:: BOOLEAN, key : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoStartPacket(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, irp : *const super::super::Foundation:: IRP, key : *const u32, cancelfunction : super::super::Foundation:: PDRIVER_CANCEL) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoStartTimer(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoStopTimer(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoSynchronousCallDriver(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, irp : *const super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoTransferActivityId(activityid : *const ::windows_sys::core::GUID, relatedactivityid : *const ::windows_sys::core::GUID) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoTranslateBusAddress(interfacetype : INTERFACE_TYPE, busnumber : u32, busaddress : i64, addressspace : *mut u32, translatedaddress : *mut i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn IoTryQueueWorkItem(ioworkitem : super::super::Foundation:: PIO_WORKITEM, workerroutine : PIO_WORKITEM_ROUTINE_EX, queuetype : WORK_QUEUE_TYPE, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn IoUninitializeWorkItem(ioworkitem : super::super::Foundation:: PIO_WORKITEM) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoUnregisterBootDriverCallback(callbackhandle : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoUnregisterContainerNotification(callbackregistration : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoUnregisterPlugPlayNotification(notificationentry : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoUnregisterPlugPlayNotificationEx(notificationentry : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoUnregisterShutdownNotification(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoUpdateLinkShareAccess(fileobject : *const super::super::Foundation:: FILE_OBJECT, shareaccess : *mut SHARE_ACCESS, linkshareaccess : *mut LINK_SHARE_ACCESS) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoUpdateLinkShareAccessEx(fileobject : *const super::super::Foundation:: FILE_OBJECT, shareaccess : *mut SHARE_ACCESS, linkshareaccess : *mut LINK_SHARE_ACCESS, ioshareaccessflags : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoUpdateShareAccess(fileobject : *const super::super::Foundation:: FILE_OBJECT, shareaccess : *mut SHARE_ACCESS) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoValidateDeviceIoControlAccess(irp : *const super::super::Foundation:: IRP, requiredaccess : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoVerifyPartitionTable(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, fixerrors : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoVolumeDeviceNameToGuid(volumedevicename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, guid : *mut ::windows_sys::core::GUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoVolumeDeviceNameToGuidPath(volumedevicename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, guidpath : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoVolumeDeviceToDosName(volumedeviceobject : *const ::core::ffi::c_void, dosname : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoVolumeDeviceToGuid(volumedeviceobject : *const ::core::ffi::c_void, guid : *mut ::windows_sys::core::GUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoVolumeDeviceToGuidPath(volumedeviceobject : *const ::core::ffi::c_void, guidpath : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoWMIAllocateInstanceIds(guid : *const ::windows_sys::core::GUID, instancecount : u32, firstinstanceid : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoWMIDeviceObjectToInstanceName(datablockobject : *const ::core::ffi::c_void, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, instancename : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoWMIExecuteMethod(datablockobject : *const ::core::ffi::c_void, instancename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, methodid : u32, inbuffersize : u32, outbuffersize : *mut u32, inoutbuffer : *mut u8) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoWMIHandleToInstanceName(datablockobject : *const ::core::ffi::c_void, filehandle : super::super::super::Win32::Foundation:: HANDLE, instancename : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoWMIOpenBlock(guid : *const ::windows_sys::core::GUID, desiredaccess : u32, datablockobject : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoWMIQueryAllData(datablockobject : *const ::core::ffi::c_void, inoutbuffersize : *mut u32, outbuffer : *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoWMIQueryAllDataMultiple(datablockobjectlist : *const *const ::core::ffi::c_void, objectcount : u32, inoutbuffersize : *mut u32, outbuffer : *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoWMIQuerySingleInstance(datablockobject : *const ::core::ffi::c_void, instancename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, inoutbuffersize : *mut u32, outbuffer : *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoWMIQuerySingleInstanceMultiple(datablockobjectlist : *const *const ::core::ffi::c_void, instancenames : *const super::super::super::Win32::Foundation:: UNICODE_STRING, objectcount : u32, inoutbuffersize : *mut u32, outbuffer : *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoWMIRegistrationControl(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, action : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoWMISetNotificationCallback(object : *mut ::core::ffi::c_void, callback : WMI_NOTIFICATION_CALLBACK, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoWMISetSingleInstance(datablockobject : *const ::core::ffi::c_void, instancename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, version : u32, valuebuffersize : u32, valuebuffer : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoWMISetSingleItem(datablockobject : *const ::core::ffi::c_void, instancename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, dataitemid : u32, version : u32, valuebuffersize : u32, valuebuffer : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoWMISuggestInstanceName(physicaldeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, symboliclinkname : *const super::super::super::Win32::Foundation:: UNICODE_STRING, combinenames : super::super::super::Win32::Foundation:: BOOLEAN, suggestedinstancename : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoWMIWriteEvent(wnodeeventitem : *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoWithinStackLimits(regionstart : usize, regionsize : usize) -> u32); +::windows_targets::link!("ntoskrnl.exe" "system" fn IoWriteErrorLogEntry(elentry : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IoWriteKsrPersistentMemory(datahandle : *const ::core::ffi::c_void, buffer : *const ::core::ffi::c_void, size : usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Ioctl", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Ioctl\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoWritePartitionTable(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, sectorsize : u32, sectorspertrack : u32, numberofheads : u32, partitionbuffer : *const super::super::super::Win32::System::Ioctl:: DRIVE_LAYOUT_INFORMATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Ioctl", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Ioctl\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IoWritePartitionTableEx(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, drivelayout : *const super::super::super::Win32::System::Ioctl:: DRIVE_LAYOUT_INFORMATION_EX) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IofCallDriver(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, irp : *mut super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn IofCompleteRequest(irp : *const super::super::Foundation:: IRP, priorityboost : i8) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KdChangeOption(option : KD_OPTION, inbufferbytes : u32, inbuffer : *const ::core::ffi::c_void, outbufferbytes : u32, outbuffer : *mut ::core::ffi::c_void, outbufferneeded : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KdDisableDebugger() -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KdEnableDebugger() -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KdRefreshDebuggerNotPresent() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeAcquireGuardedMutex(mutex : *mut super::super::Foundation:: FAST_MUTEX) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeAcquireGuardedMutexUnsafe(fastmutex : *mut super::super::Foundation:: FAST_MUTEX) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeAcquireInStackQueuedSpinLock(spinlock : *mut usize, lockhandle : *mut KLOCK_QUEUE_HANDLE) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeAcquireInStackQueuedSpinLockAtDpcLevel(spinlock : *mut usize, lockhandle : *mut KLOCK_QUEUE_HANDLE) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeAcquireInStackQueuedSpinLockForDpc(spinlock : *mut usize, lockhandle : *mut KLOCK_QUEUE_HANDLE) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn KeAcquireInterruptSpinLock(interrupt : super::super::Foundation:: PKINTERRUPT) -> u8); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeAcquireSpinLockForDpc(spinlock : *mut usize) -> u8); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeAddTriageDumpDataBlock(ktriagedumpdataarray : *mut KTRIAGE_DUMP_DATA_ARRAY, address : *const ::core::ffi::c_void, size : usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeAreAllApcsDisabled() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeAreApcsDisabled() -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeBugCheck(bugcheckcode : u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeBugCheckEx(bugcheckcode : u32, bugcheckparameter1 : usize, bugcheckparameter2 : usize, bugcheckparameter3 : usize, bugcheckparameter4 : usize) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeCancelTimer(param0 : *mut KTIMER) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeClearEvent(event : *mut super::super::Foundation:: KEVENT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeConvertAuxiliaryCounterToPerformanceCounter(auxiliarycountervalue : u64, performancecountervalue : *mut u64, conversionerror : *mut u64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeConvertPerformanceCounterToAuxiliaryCounter(performancecountervalue : u64, auxiliarycountervalue : *mut u64, conversionerror : *mut u64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeDelayExecutionThread(waitmode : i8, alertable : super::super::super::Win32::Foundation:: BOOLEAN, interval : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeDeregisterBoundCallback(handle : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeDeregisterBugCheckCallback(callbackrecord : *mut KBUGCHECK_CALLBACK_RECORD) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeDeregisterBugCheckReasonCallback(callbackrecord : *mut KBUGCHECK_REASON_CALLBACK_RECORD) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeDeregisterNmiCallback(handle : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeDeregisterProcessorChangeCallback(callbackhandle : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeEnterCriticalRegion() -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeEnterGuardedRegion() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeExpandKernelStackAndCallout(callout : PEXPAND_STACK_CALLOUT, parameter : *const ::core::ffi::c_void, size : usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeExpandKernelStackAndCalloutEx(callout : PEXPAND_STACK_CALLOUT, parameter : *const ::core::ffi::c_void, size : usize, wait : super::super::super::Win32::Foundation:: BOOLEAN, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn KeFlushIoBuffers(mdl : *const super::super::Foundation:: MDL, readoperation : super::super::super::Win32::Foundation:: BOOLEAN, dmaoperation : super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeFlushQueuedDpcs() -> ()); +::windows_targets::link!("hal.dll" "system" fn KeFlushWriteBuffer() -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeGetCurrentIrql() -> u8); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeGetCurrentNodeNumber() -> u16); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn KeGetCurrentProcessorNumberEx(procnumber : *mut super::super::super::Win32::System::Kernel:: PROCESSOR_NUMBER) -> u32); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn KeGetProcessorIndexFromNumber(procnumber : *const super::super::super::Win32::System::Kernel:: PROCESSOR_NUMBER) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeGetProcessorNumberFromIndex(procindex : u32, procnumber : *mut super::super::super::Win32::System::Kernel:: PROCESSOR_NUMBER) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeGetRecommendedSharedDataAlignment() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeInitializeCrashDumpHeader(dumptype : u32, flags : u32, buffer : *mut ::core::ffi::c_void, buffersize : u32, bufferneeded : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInitializeDeviceQueue(devicequeue : *mut super::super::Foundation:: KDEVICE_QUEUE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInitializeDpc(dpc : *mut super::super::Foundation:: KDPC, deferredroutine : super::super::Foundation:: PKDEFERRED_ROUTINE, deferredcontext : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInitializeEvent(event : *mut super::super::Foundation:: KEVENT, r#type : super::super::super::Win32::System::Kernel:: EVENT_TYPE, state : super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInitializeGuardedMutex(mutex : *mut super::super::Foundation:: FAST_MUTEX) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInitializeMutex(mutex : *mut super::super::Foundation:: KMUTANT, level : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInitializeSemaphore(semaphore : *mut KSEMAPHORE, count : i32, limit : i32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeInitializeSpinLock(spinlock : *mut usize) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInitializeThreadedDpc(dpc : *mut super::super::Foundation:: KDPC, deferredroutine : super::super::Foundation:: PKDEFERRED_ROUTINE, deferredcontext : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInitializeTimer(timer : *mut KTIMER) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInitializeTimerEx(timer : *mut KTIMER, r#type : super::super::super::Win32::System::Kernel:: TIMER_TYPE) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInitializeTriageDumpDataArray(ktriagedumpdataarray : *mut KTRIAGE_DUMP_DATA_ARRAY, size : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInsertByKeyDeviceQueue(devicequeue : *mut super::super::Foundation:: KDEVICE_QUEUE, devicequeueentry : *mut KDEVICE_QUEUE_ENTRY, sortkey : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInsertDeviceQueue(devicequeue : *mut super::super::Foundation:: KDEVICE_QUEUE, devicequeueentry : *mut KDEVICE_QUEUE_ENTRY) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeInsertQueueDpc(dpc : *mut super::super::Foundation:: KDPC, systemargument1 : *const ::core::ffi::c_void, systemargument2 : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeInvalidateAllCaches() -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeInvalidateRangeAllCaches(baseaddress : *const ::core::ffi::c_void, length : u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeIpiGenericCall(broadcastfunction : PKIPI_BROADCAST_WORKER, context : usize) -> usize); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeIsExecutingDpc() -> u32); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeLeaveCriticalRegion() -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeLeaveGuardedRegion() -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KePulseEvent(event : *mut super::super::Foundation:: KEVENT, increment : i32, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> i32); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryActiveGroupCount() -> u16); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryActiveProcessorCount(activeprocessors : *mut usize) -> u32); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryActiveProcessorCountEx(groupnumber : u16) -> u32); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryActiveProcessors() -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeQueryAuxiliaryCounterFrequency(auxiliarycounterfrequency : *mut u64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeQueryDpcWatchdogInformation(watchdoginformation : *mut KDPC_WATCHDOG_INFORMATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryGroupAffinity(groupnumber : u16) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeQueryHardwareCounterConfiguration(counterarray : *mut HARDWARE_COUNTER, maximumcount : u32, count : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryHighestNodeNumber() -> u16); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryInterruptTimePrecise(qpctimestamp : *mut u64) -> u64); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`"] fn KeQueryLogicalProcessorRelationship(processornumber : *const super::super::super::Win32::System::Kernel:: PROCESSOR_NUMBER, relationshiptype : super::super::super::Win32::System::SystemInformation:: LOGICAL_PROCESSOR_RELATIONSHIP, information : *mut super::super::super::Win32::System::SystemInformation:: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, length : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryMaximumGroupCount() -> u16); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryMaximumProcessorCount() -> u32); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryMaximumProcessorCountEx(groupnumber : u16) -> u32); +#[cfg(feature = "Win32_System_SystemInformation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_System_SystemInformation\"`"] fn KeQueryNodeActiveAffinity(nodenumber : u16, affinity : *mut super::super::super::Win32::System::SystemInformation:: GROUP_AFFINITY, count : *mut u16) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn KeQueryNodeActiveAffinity2(nodenumber : u16, groupaffinities : *mut super::super::super::Win32::System::SystemInformation:: GROUP_AFFINITY, groupaffinitiescount : u16, groupaffinitiesrequired : *mut u16) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryNodeActiveProcessorCount(nodenumber : u16) -> u32); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryNodeMaximumProcessorCount(nodenumber : u16) -> u16); +::windows_targets::link!("hal.dll" "system" fn KeQueryPerformanceCounter(performancefrequency : *mut i64) -> i64); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn KeQueryPriorityThread(thread : super::super::Foundation:: PKTHREAD) -> i32); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn KeQueryRuntimeThread(thread : super::super::Foundation:: PKTHREAD, usertime : *mut u32) -> u32); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQuerySystemTimePrecise(currenttime : *mut i64) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryTimeIncrement() -> u32); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn KeQueryTotalCycleTimeThread(thread : super::super::Foundation:: PKTHREAD, cycletimestamp : *mut u64) -> u64); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryUnbiasedInterruptTime() -> u64); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeQueryUnbiasedInterruptTimePrecise(qpctimestamp : *mut u64) -> u64); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeReadStateEvent(event : *const super::super::Foundation:: KEVENT) -> i32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeReadStateMutex(mutex : *const super::super::Foundation:: KMUTANT) -> i32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeReadStateSemaphore(semaphore : *const KSEMAPHORE) -> i32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeReadStateTimer(timer : *const KTIMER) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeRegisterBoundCallback(callbackroutine : PBOUND_CALLBACK) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeRegisterBugCheckCallback(callbackrecord : *mut KBUGCHECK_CALLBACK_RECORD, callbackroutine : PKBUGCHECK_CALLBACK_ROUTINE, buffer : *const ::core::ffi::c_void, length : u32, component : *const u8) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeRegisterBugCheckReasonCallback(callbackrecord : *mut KBUGCHECK_REASON_CALLBACK_RECORD, callbackroutine : PKBUGCHECK_REASON_CALLBACK_ROUTINE, reason : KBUGCHECK_CALLBACK_REASON, component : *const u8) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeRegisterNmiCallback(callbackroutine : PNMI_CALLBACK, context : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeRegisterProcessorChangeCallback(callbackfunction : PPROCESSOR_CALLBACK_FUNCTION, callbackcontext : *const ::core::ffi::c_void, flags : u32) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeReleaseGuardedMutex(mutex : *mut super::super::Foundation:: FAST_MUTEX) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeReleaseGuardedMutexUnsafe(fastmutex : *mut super::super::Foundation:: FAST_MUTEX) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeReleaseInStackQueuedSpinLock(lockhandle : *const KLOCK_QUEUE_HANDLE) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeReleaseInStackQueuedSpinLockForDpc(lockhandle : *const KLOCK_QUEUE_HANDLE) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeReleaseInStackQueuedSpinLockFromDpcLevel(lockhandle : *const KLOCK_QUEUE_HANDLE) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn KeReleaseInterruptSpinLock(interrupt : super::super::Foundation:: PKINTERRUPT, oldirql : u8) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeReleaseMutex(mutex : *mut super::super::Foundation:: KMUTANT, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> i32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeReleaseSemaphore(semaphore : *mut KSEMAPHORE, increment : i32, adjustment : i32, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> i32); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeReleaseSpinLockForDpc(spinlock : *mut usize, oldirql : u8) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeRemoveByKeyDeviceQueue(devicequeue : *mut super::super::Foundation:: KDEVICE_QUEUE, sortkey : u32) -> *mut KDEVICE_QUEUE_ENTRY); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeRemoveByKeyDeviceQueueIfBusy(devicequeue : *mut super::super::Foundation:: KDEVICE_QUEUE, sortkey : u32) -> *mut KDEVICE_QUEUE_ENTRY); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeRemoveDeviceQueue(devicequeue : *mut super::super::Foundation:: KDEVICE_QUEUE) -> *mut KDEVICE_QUEUE_ENTRY); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeRemoveEntryDeviceQueue(devicequeue : *mut super::super::Foundation:: KDEVICE_QUEUE, devicequeueentry : *mut KDEVICE_QUEUE_ENTRY) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeRemoveQueueDpc(dpc : *mut super::super::Foundation:: KDPC) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeRemoveQueueDpcEx(dpc : *mut super::super::Foundation:: KDPC, waitifactive : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeResetEvent(event : *mut super::super::Foundation:: KEVENT) -> i32); +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] fn KeRestoreExtendedProcessorState(xstatesave : *const XSTATE_SAVE) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeRevertToUserAffinityThread() -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeRevertToUserAffinityThreadEx(affinity : usize) -> ()); +#[cfg(feature = "Win32_System_SystemInformation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_System_SystemInformation\"`"] fn KeRevertToUserGroupAffinityThread(previousaffinity : *const super::super::super::Win32::System::SystemInformation:: GROUP_AFFINITY) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn KeSaveExtendedProcessorState(mask : u64, xstatesave : *mut XSTATE_SAVE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn KeSetBasePriorityThread(thread : super::super::Foundation:: PKTHREAD, increment : i32) -> i32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeSetCoalescableTimer(timer : *mut KTIMER, duetime : i64, period : u32, tolerabledelay : u32, dpc : *const super::super::Foundation:: KDPC) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeSetEvent(event : *mut super::super::Foundation:: KEVENT, increment : i32, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeSetHardwareCounterConfiguration(counterarray : *const HARDWARE_COUNTER, count : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeSetImportanceDpc(dpc : *mut super::super::Foundation:: KDPC, importance : KDPC_IMPORTANCE) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn KeSetPriorityThread(thread : super::super::Foundation:: PKTHREAD, priority : i32) -> i32); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeSetSystemAffinityThread(affinity : usize) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeSetSystemAffinityThreadEx(affinity : usize) -> usize); +#[cfg(feature = "Win32_System_SystemInformation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_System_SystemInformation\"`"] fn KeSetSystemGroupAffinityThread(affinity : *const super::super::super::Win32::System::SystemInformation:: GROUP_AFFINITY, previousaffinity : *mut super::super::super::Win32::System::SystemInformation:: GROUP_AFFINITY) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeSetTargetProcessorDpc(dpc : *mut super::super::Foundation:: KDPC, number : i8) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeSetTargetProcessorDpcEx(dpc : *mut super::super::Foundation:: KDPC, procnumber : *const super::super::super::Win32::System::Kernel:: PROCESSOR_NUMBER) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeSetTimer(timer : *mut KTIMER, duetime : i64, dpc : *const super::super::Foundation:: KDPC) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeSetTimerEx(timer : *mut KTIMER, duetime : i64, period : i32, dpc : *const super::super::Foundation:: KDPC) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn KeShouldYieldProcessor() -> u32); +::windows_targets::link!("hal.dll" "system" fn KeStallExecutionProcessor(microseconds : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn KeSynchronizeExecution(interrupt : super::super::Foundation:: PKINTERRUPT, synchronizeroutine : PKSYNCHRONIZE_ROUTINE, synchronizecontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeTestSpinLock(spinlock : *const usize) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeTryToAcquireGuardedMutex(mutex : *mut super::super::Foundation:: FAST_MUTEX) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeTryToAcquireSpinLockAtDpcLevel(spinlock : *mut usize) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn KeWaitForMultipleObjects(count : u32, object : *const *const ::core::ffi::c_void, waittype : super::super::super::Win32::System::Kernel:: WAIT_TYPE, waitreason : KWAIT_REASON, waitmode : i8, alertable : super::super::super::Win32::Foundation:: BOOLEAN, timeout : *const i64, waitblockarray : *mut super::super::Foundation:: KWAIT_BLOCK) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeWaitForSingleObject(object : *const ::core::ffi::c_void, waitreason : KWAIT_REASON, waitmode : i8, alertable : super::super::super::Win32::Foundation:: BOOLEAN, timeout : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn KfRaiseIrql(newirql : u8) -> u8); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmAddPhysicalMemory(startaddress : *const i64, numberofbytes : *mut i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmAddVerifierSpecialThunks(entryroutine : usize, thunkbuffer : *const ::core::ffi::c_void, thunkbuffersize : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmAddVerifierThunks(thunkbuffer : *const ::core::ffi::c_void, thunkbuffersize : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn MmAdvanceMdl(mdl : *mut super::super::Foundation:: MDL, numberofbytes : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmAllocateContiguousMemory(numberofbytes : usize, highestacceptableaddress : i64) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmAllocateContiguousMemoryEx(numberofbytes : *const usize, lowestacceptableaddress : i64, highestacceptableaddress : i64, boundaryaddressmultiple : i64, preferrednode : u32, protect : u32, partitionobject : *const ::core::ffi::c_void, tag : u32, flags : u32, baseaddress : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmAllocateContiguousMemorySpecifyCache(numberofbytes : usize, lowestacceptableaddress : i64, highestacceptableaddress : i64, boundaryaddressmultiple : i64, cachetype : MEMORY_CACHING_TYPE) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmAllocateContiguousMemorySpecifyCacheNode(numberofbytes : usize, lowestacceptableaddress : i64, highestacceptableaddress : i64, boundaryaddressmultiple : i64, cachetype : MEMORY_CACHING_TYPE, preferrednode : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmAllocateContiguousNodeMemory(numberofbytes : usize, lowestacceptableaddress : i64, highestacceptableaddress : i64, boundaryaddressmultiple : i64, protect : u32, preferrednode : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmAllocateMappingAddress(numberofbytes : usize, pooltag : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmAllocateMappingAddressEx(numberofbytes : usize, pooltag : u32, flags : u32) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn MmAllocateMdlForIoSpace(physicaladdresslist : *const MM_PHYSICAL_ADDRESS_LIST, numberofentries : usize, newmdl : *mut *mut super::super::Foundation:: MDL) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmAllocateNodePagesForMdlEx(lowaddress : i64, highaddress : i64, skipbytes : i64, totalbytes : usize, cachetype : MEMORY_CACHING_TYPE, idealnode : u32, flags : u32) -> *mut super::super::Foundation:: MDL); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmAllocateNonCachedMemory(numberofbytes : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmAllocatePagesForMdl(lowaddress : i64, highaddress : i64, skipbytes : i64, totalbytes : usize) -> *mut super::super::Foundation:: MDL); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmAllocatePagesForMdlEx(lowaddress : i64, highaddress : i64, skipbytes : i64, totalbytes : usize, cachetype : MEMORY_CACHING_TYPE, flags : u32) -> *mut super::super::Foundation:: MDL); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmAllocatePartitionNodePagesForMdlEx(lowaddress : i64, highaddress : i64, skipbytes : i64, totalbytes : usize, cachetype : MEMORY_CACHING_TYPE, idealnode : u32, flags : u32, partitionobject : *const ::core::ffi::c_void) -> *mut super::super::Foundation:: MDL); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmAreMdlPagesCached(memorydescriptorlist : *const super::super::Foundation:: MDL) -> u32); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmBuildMdlForNonPagedPool(memorydescriptorlist : *mut super::super::Foundation:: MDL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmCopyMemory(targetaddress : *const ::core::ffi::c_void, sourceaddress : MM_COPY_ADDRESS, numberofbytes : usize, flags : u32, numberofbytestransferred : *mut usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmCreateMdl(memorydescriptorlist : *mut super::super::Foundation:: MDL, base : *const ::core::ffi::c_void, length : usize) -> *mut super::super::Foundation:: MDL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmCreateMirror() -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmFreeContiguousMemory(baseaddress : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmFreeContiguousMemorySpecifyCache(baseaddress : *const ::core::ffi::c_void, numberofbytes : usize, cachetype : MEMORY_CACHING_TYPE) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmFreeMappingAddress(baseaddress : *const ::core::ffi::c_void, pooltag : u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmFreeNonCachedMemory(baseaddress : *const ::core::ffi::c_void, numberofbytes : usize) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmFreePagesFromMdl(memorydescriptorlist : *mut super::super::Foundation:: MDL) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmFreePagesFromMdlEx(memorydescriptorlist : *mut super::super::Foundation:: MDL, flags : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmGetCacheAttribute(physicaladdress : i64, cachetype : *mut MEMORY_CACHING_TYPE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmGetCacheAttributeEx(physicaladdress : i64, flags : u32, cachetype : *mut MEMORY_CACHING_TYPE) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmGetPhysicalAddress(baseaddress : *const ::core::ffi::c_void) -> i64); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmGetPhysicalMemoryRanges() -> *mut PHYSICAL_MEMORY_RANGE); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmGetPhysicalMemoryRangesEx(partitionobject : *const ::core::ffi::c_void) -> *mut PHYSICAL_MEMORY_RANGE); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmGetPhysicalMemoryRangesEx2(partitionobject : *const ::core::ffi::c_void, flags : u32) -> *mut PHYSICAL_MEMORY_RANGE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmGetSystemRoutineAddress(systemroutinename : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmGetVirtualForPhysical(physicaladdress : i64) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmIsAddressValid(virtualaddress : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn MmIsDriverSuspectForVerifier(driverobject : *const super::super::Foundation:: DRIVER_OBJECT) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn MmIsDriverVerifying(driverobject : *const super::super::Foundation:: DRIVER_OBJECT) -> u32); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmIsDriverVerifyingByAddress(addresswithinsection : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmIsIoSpaceActive(startaddress : i64, numberofbytes : usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmIsNonPagedSystemAddressValid(virtualaddress : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmIsThisAnNtAsSystem() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmIsVerifierEnabled(verifierflags : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmLockPagableDataSection(addresswithinsection : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmLockPagableSectionByHandle(imagesectionhandle : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmMapIoSpace(physicaladdress : i64, numberofbytes : usize, cachetype : MEMORY_CACHING_TYPE) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmMapIoSpaceEx(physicaladdress : i64, numberofbytes : usize, protect : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmMapLockedPages(memorydescriptorlist : *mut super::super::Foundation:: MDL, accessmode : i8) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmMapLockedPagesSpecifyCache(memorydescriptorlist : *mut super::super::Foundation:: MDL, accessmode : i8, cachetype : MEMORY_CACHING_TYPE, requestedaddress : *const ::core::ffi::c_void, bugcheckonfailure : u32, priority : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmMapLockedPagesWithReservedMapping(mappingaddress : *const ::core::ffi::c_void, pooltag : u32, memorydescriptorlist : *mut super::super::Foundation:: MDL, cachetype : MEMORY_CACHING_TYPE) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn MmMapMdl(memorydescriptorlist : *mut super::super::Foundation:: MDL, protection : u32, driverroutine : PMM_MDL_ROUTINE, drivercontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn MmMapMemoryDumpMdlEx(va : *const ::core::ffi::c_void, pagetotal : u32, memorydumpmdl : *mut super::super::Foundation:: MDL, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmMapUserAddressesToPage(baseaddress : *const ::core::ffi::c_void, numberofbytes : usize, pageaddress : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmMapVideoDisplay(physicaladdress : i64, numberofbytes : usize, cachetype : MEMORY_CACHING_TYPE) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmMapViewInSessionSpace(section : *const ::core::ffi::c_void, mappedbase : *mut *mut ::core::ffi::c_void, viewsize : *mut usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmMapViewInSessionSpaceEx(section : *const ::core::ffi::c_void, mappedbase : *mut *mut ::core::ffi::c_void, viewsize : *mut usize, sectionoffset : *mut i64, flags : usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmMapViewInSystemSpace(section : *const ::core::ffi::c_void, mappedbase : *mut *mut ::core::ffi::c_void, viewsize : *mut usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmMapViewInSystemSpaceEx(section : *const ::core::ffi::c_void, mappedbase : *mut *mut ::core::ffi::c_void, viewsize : *mut usize, sectionoffset : *mut i64, flags : usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmMdlPageContentsState(memorydescriptorlist : *mut super::super::Foundation:: MDL, state : MM_MDL_PAGE_CONTENTS_STATE) -> MM_MDL_PAGE_CONTENTS_STATE); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmPageEntireDriver(addresswithinsection : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmProbeAndLockPages(memorydescriptorlist : *mut super::super::Foundation:: MDL, accessmode : i8, operation : LOCK_OPERATION) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmProbeAndLockProcessPages(memorydescriptorlist : *mut super::super::Foundation:: MDL, process : super::super::Foundation:: PEPROCESS, accessmode : i8, operation : LOCK_OPERATION) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn MmProbeAndLockSelectedPages(memorydescriptorlist : *mut super::super::Foundation:: MDL, segmentarray : *const super::super::super::Win32::Storage::FileSystem:: FILE_SEGMENT_ELEMENT, accessmode : i8, operation : LOCK_OPERATION) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmProtectDriverSection(addresswithinsection : *const ::core::ffi::c_void, size : usize, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn MmProtectMdlSystemAddress(memorydescriptorlist : *const super::super::Foundation:: MDL, newprotect : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmQuerySystemSize() -> MM_SYSTEMSIZE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmRemovePhysicalMemory(startaddress : *const i64, numberofbytes : *mut i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmResetDriverPaging(addresswithinsection : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn MmRotatePhysicalView(virtualaddress : *const ::core::ffi::c_void, numberofbytes : *mut usize, newmdl : *const super::super::Foundation:: MDL, direction : MM_ROTATE_DIRECTION, copyfunction : PMM_ROTATE_COPY_CALLBACK_FUNCTION, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmSecureVirtualMemory(address : *const ::core::ffi::c_void, size : usize, probemode : u32) -> super::super::super::Win32::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmSecureVirtualMemoryEx(address : *const ::core::ffi::c_void, size : usize, probemode : u32, flags : u32) -> super::super::super::Win32::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmSetPermanentCacheAttribute(startaddress : i64, numberofbytes : i64, cachetype : MEMORY_CACHING_TYPE, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmSizeOfMdl(base : *const ::core::ffi::c_void, length : usize) -> usize); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmUnlockPagableImageSection(imagesectionhandle : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmUnlockPages(memorydescriptorlist : *mut super::super::Foundation:: MDL) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmUnmapIoSpace(baseaddress : *const ::core::ffi::c_void, numberofbytes : usize) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmUnmapLockedPages(baseaddress : *const ::core::ffi::c_void, memorydescriptorlist : *mut super::super::Foundation:: MDL) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn MmUnmapReservedMapping(baseaddress : *const ::core::ffi::c_void, pooltag : u32, memorydescriptorlist : *mut super::super::Foundation:: MDL) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn MmUnmapVideoDisplay(baseaddress : *const ::core::ffi::c_void, numberofbytes : usize) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmUnmapViewInSessionSpace(mappedbase : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmUnmapViewInSystemSpace(mappedbase : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MmUnsecureVirtualMemory(securehandle : super::super::super::Win32::Foundation:: HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtCommitComplete(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtCommitEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtCommitTransaction(transactionhandle : super::super::super::Win32::Foundation:: HANDLE, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn NtCreateEnlistment(enlistmenthandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, resourcemanagerhandle : super::super::super::Win32::Foundation:: HANDLE, transactionhandle : super::super::super::Win32::Foundation:: HANDLE, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, createoptions : u32, notificationmask : u32, enlistmentkey : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn NtCreateResourceManager(resourcemanagerhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, tmhandle : super::super::super::Win32::Foundation:: HANDLE, rmguid : *const ::windows_sys::core::GUID, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, createoptions : u32, description : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn NtCreateTransaction(transactionhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, uow : *const ::windows_sys::core::GUID, tmhandle : super::super::super::Win32::Foundation:: HANDLE, createoptions : u32, isolationlevel : u32, isolationflags : u32, timeout : *const i64, description : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn NtCreateTransactionManager(tmhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, logfilename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, createoptions : u32, commitstrength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn NtEnumerateTransactionObject(rootobjecthandle : super::super::super::Win32::Foundation:: HANDLE, querytype : super::super::super::Win32::System::SystemServices:: KTMOBJECT_TYPE, objectcursor : *mut super::super::super::Win32::System::SystemServices:: KTMOBJECT_CURSOR, objectcursorlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn NtGetNotificationResourceManager(resourcemanagerhandle : super::super::super::Win32::Foundation:: HANDLE, transactionnotification : *mut super::super::super::Win32::Storage::FileSystem:: TRANSACTION_NOTIFICATION, notificationlength : u32, timeout : *const i64, returnlength : *mut u32, asynchronous : u32, asynchronouscontext : usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtManagePartition(targethandle : super::super::super::Win32::Foundation:: HANDLE, sourcehandle : super::super::super::Win32::Foundation:: HANDLE, partitioninformationclass : PARTITION_INFORMATION_CLASS, partitioninformation : *mut ::core::ffi::c_void, partitioninformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn NtOpenEnlistment(enlistmenthandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, resourcemanagerhandle : super::super::super::Win32::Foundation:: HANDLE, enlistmentguid : *const ::windows_sys::core::GUID, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] fn NtOpenProcess(processhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, clientid : *const super::super::super::Win32::System::WindowsProgramming:: CLIENT_ID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn NtOpenRegistryTransaction(transactionhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn NtOpenResourceManager(resourcemanagerhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, tmhandle : super::super::super::Win32::Foundation:: HANDLE, resourcemanagerguid : *const ::windows_sys::core::GUID, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn NtOpenTransaction(transactionhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, uow : *const ::windows_sys::core::GUID, tmhandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn NtOpenTransactionManager(tmhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, logfilename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, tmidentity : *const ::windows_sys::core::GUID, openoptions : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Power"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] fn NtPowerInformation(informationlevel : super::super::super::Win32::System::Power:: POWER_INFORMATION_LEVEL, inputbuffer : *const ::core::ffi::c_void, inputbufferlength : u32, outputbuffer : *mut ::core::ffi::c_void, outputbufferlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtPrePrepareComplete(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtPrePrepareEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtPrepareComplete(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtPrepareEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtPropagationComplete(resourcemanagerhandle : super::super::super::Win32::Foundation:: HANDLE, requestcookie : u32, bufferlength : u32, buffer : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtPropagationFailed(resourcemanagerhandle : super::super::super::Win32::Foundation:: HANDLE, requestcookie : u32, propstatus : super::super::super::Win32::Foundation:: NTSTATUS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn NtQueryInformationEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, enlistmentinformationclass : super::super::super::Win32::System::SystemServices:: ENLISTMENT_INFORMATION_CLASS, enlistmentinformation : *mut ::core::ffi::c_void, enlistmentinformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn NtQueryInformationResourceManager(resourcemanagerhandle : super::super::super::Win32::Foundation:: HANDLE, resourcemanagerinformationclass : super::super::super::Win32::System::SystemServices:: RESOURCEMANAGER_INFORMATION_CLASS, resourcemanagerinformation : *mut ::core::ffi::c_void, resourcemanagerinformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn NtQueryInformationTransaction(transactionhandle : super::super::super::Win32::Foundation:: HANDLE, transactioninformationclass : super::super::super::Win32::System::SystemServices:: TRANSACTION_INFORMATION_CLASS, transactioninformation : *mut ::core::ffi::c_void, transactioninformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn NtQueryInformationTransactionManager(transactionmanagerhandle : super::super::super::Win32::Foundation:: HANDLE, transactionmanagerinformationclass : super::super::super::Win32::System::SystemServices:: TRANSACTIONMANAGER_INFORMATION_CLASS, transactionmanagerinformation : *mut ::core::ffi::c_void, transactionmanagerinformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtReadOnlyEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtRecoverEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, enlistmentkey : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtRecoverResourceManager(resourcemanagerhandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtRecoverTransactionManager(transactionmanagerhandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtRegisterProtocolAddressInformation(resourcemanager : super::super::super::Win32::Foundation:: HANDLE, protocolid : *const ::windows_sys::core::GUID, protocolinformationsize : u32, protocolinformation : *const ::core::ffi::c_void, createoptions : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtRenameTransactionManager(logfilename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, existingtransactionmanagerguid : *const ::windows_sys::core::GUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtRollbackComplete(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtRollbackEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtRollbackRegistryTransaction(transactionhandle : super::super::super::Win32::Foundation:: HANDLE, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtRollbackTransaction(transactionhandle : super::super::super::Win32::Foundation:: HANDLE, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtRollforwardTransactionManager(transactionmanagerhandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn NtSetInformationEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, enlistmentinformationclass : super::super::super::Win32::System::SystemServices:: ENLISTMENT_INFORMATION_CLASS, enlistmentinformation : *const ::core::ffi::c_void, enlistmentinformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn NtSetInformationResourceManager(resourcemanagerhandle : super::super::super::Win32::Foundation:: HANDLE, resourcemanagerinformationclass : super::super::super::Win32::System::SystemServices:: RESOURCEMANAGER_INFORMATION_CLASS, resourcemanagerinformation : *const ::core::ffi::c_void, resourcemanagerinformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn NtSetInformationTransaction(transactionhandle : super::super::super::Win32::Foundation:: HANDLE, transactioninformationclass : super::super::super::Win32::System::SystemServices:: TRANSACTION_INFORMATION_CLASS, transactioninformation : *const ::core::ffi::c_void, transactioninformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn NtSetInformationTransactionManager(tmhandle : super::super::super::Win32::Foundation:: HANDLE, transactionmanagerinformationclass : super::super::super::Win32::System::SystemServices:: TRANSACTIONMANAGER_INFORMATION_CLASS, transactionmanagerinformation : *const ::core::ffi::c_void, transactionmanagerinformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtSinglePhaseReject(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObCloseHandle(handle : super::super::super::Win32::Foundation:: HANDLE, previousmode : i8) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn ObDereferenceObjectDeferDelete(object : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ObDereferenceObjectDeferDeleteWithTag(object : *const ::core::ffi::c_void, tag : u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ObGetFilterVersion() -> u16); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ObGetObjectSecurity(object : *const ::core::ffi::c_void, securitydescriptor : *mut super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, memoryallocated : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ObReferenceObjectByHandle(handle : super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objecttype : super::super::Foundation:: POBJECT_TYPE, accessmode : i8, object : *mut *mut ::core::ffi::c_void, handleinformation : *mut OBJECT_HANDLE_INFORMATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ObReferenceObjectByHandleWithTag(handle : super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objecttype : super::super::Foundation:: POBJECT_TYPE, accessmode : i8, tag : u32, object : *mut *mut ::core::ffi::c_void, handleinformation : *mut OBJECT_HANDLE_INFORMATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ObReferenceObjectByPointer(object : *const ::core::ffi::c_void, desiredaccess : u32, objecttype : super::super::Foundation:: POBJECT_TYPE, accessmode : i8) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ObReferenceObjectByPointerWithTag(object : *const ::core::ffi::c_void, desiredaccess : u32, objecttype : super::super::Foundation:: POBJECT_TYPE, accessmode : i8, tag : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObReferenceObjectSafe(object : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObReferenceObjectSafeWithTag(object : *const ::core::ffi::c_void, tag : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ObRegisterCallbacks(callbackregistration : *const OB_CALLBACK_REGISTRATION, registrationhandle : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ObReleaseObjectSecurity(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, memoryallocated : super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ObUnRegisterCallbacks(registrationhandle : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ObfDereferenceObject(object : *const ::core::ffi::c_void) -> isize); +::windows_targets::link!("ntoskrnl.exe" "system" fn ObfDereferenceObjectWithTag(object : *const ::core::ffi::c_void, tag : u32) -> isize); +::windows_targets::link!("ntoskrnl.exe" "system" fn ObfReferenceObject(object : *const ::core::ffi::c_void) -> isize); +::windows_targets::link!("ntoskrnl.exe" "system" fn ObfReferenceObjectWithTag(object : *const ::core::ffi::c_void, tag : u32) -> isize); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PcwAddInstance(buffer : super::super::Foundation:: PPCW_BUFFER, name : *const super::super::super::Win32::Foundation:: UNICODE_STRING, id : u32, count : u32, data : *const PCW_DATA) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PcwCloseInstance(instance : super::super::Foundation:: PPCW_INSTANCE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PcwCreateInstance(instance : *mut super::super::Foundation:: PPCW_INSTANCE, registration : super::super::Foundation:: PPCW_REGISTRATION, name : *const super::super::super::Win32::Foundation:: UNICODE_STRING, count : u32, data : *const PCW_DATA) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PcwRegister(registration : *mut super::super::Foundation:: PPCW_REGISTRATION, info : *const PCW_REGISTRATION_INFORMATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PcwUnregister(registration : super::super::Foundation:: PPCW_REGISTRATION) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoCallDriver(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, irp : *mut super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Power"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] fn PoClearPowerRequest(powerrequest : *mut ::core::ffi::c_void, r#type : super::super::super::Win32::System::Power:: POWER_REQUEST_TYPE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoCreatePowerRequest(powerrequest : *mut *mut ::core::ffi::c_void, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, context : *const COUNTED_REASON_CONTEXT) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoCreateThermalRequest(thermalrequest : *mut *mut ::core::ffi::c_void, targetdeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, policydeviceobject : *const super::super::Foundation:: DEVICE_OBJECT, context : *const COUNTED_REASON_CONTEXT, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn PoDeletePowerRequest(powerrequest : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn PoDeleteThermalRequest(thermalrequest : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn PoEndDeviceBusy(idlepointer : *mut u32) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxActivateComponent(handle : super::super::Foundation:: POHANDLE, component : u32, flags : u32) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxCompleteDevicePowerNotRequired(handle : super::super::Foundation:: POHANDLE) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxCompleteDirectedPowerDown(handle : super::super::Foundation:: POHANDLE) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxCompleteIdleCondition(handle : super::super::Foundation:: POHANDLE, component : u32) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxCompleteIdleState(handle : super::super::Foundation:: POHANDLE, component : u32) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxIdleComponent(handle : super::super::Foundation:: POHANDLE, component : u32, flags : u32) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxIssueComponentPerfStateChange(handle : super::super::Foundation:: POHANDLE, flags : u32, component : u32, perfchange : *const PO_FX_PERF_STATE_CHANGE, context : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxIssueComponentPerfStateChangeMultiple(handle : super::super::Foundation:: POHANDLE, flags : u32, component : u32, perfchangescount : u32, perfchanges : *const PO_FX_PERF_STATE_CHANGE, context : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoFxNotifySurprisePowerOn(pdo : *const super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PoFxPowerControl(handle : super::super::Foundation:: POHANDLE, powercontrolcode : *const ::windows_sys::core::GUID, inbuffer : *const ::core::ffi::c_void, inbuffersize : usize, outbuffer : *mut ::core::ffi::c_void, outbuffersize : usize, bytesreturned : *mut usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PoFxPowerOnCrashdumpDevice(handle : super::super::Foundation:: POHANDLE, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PoFxQueryCurrentComponentPerfState(handle : super::super::Foundation:: POHANDLE, flags : u32, component : u32, setindex : u32, currentperf : *mut u64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PoFxRegisterComponentPerfStates(handle : super::super::Foundation:: POHANDLE, component : u32, flags : u64, componentperfstatecallback : PPO_FX_COMPONENT_PERF_STATE_CALLBACK, inputstateinfo : *const PO_FX_COMPONENT_PERF_INFO, outputstateinfo : *mut *mut PO_FX_COMPONENT_PERF_INFO) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PoFxRegisterCrashdumpDevice(handle : super::super::Foundation:: POHANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoFxRegisterDevice(pdo : *const super::super::Foundation:: DEVICE_OBJECT, device : *const PO_FX_DEVICE_V1, handle : *mut super::super::Foundation:: POHANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoFxRegisterDripsWatchdogCallback(handle : super::super::Foundation:: POHANDLE, callback : PPO_FX_DRIPS_WATCHDOG_CALLBACK, includechilddevices : super::super::super::Win32::Foundation:: BOOLEAN, matchingdriverobject : *const super::super::Foundation:: DRIVER_OBJECT) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxReportDevicePoweredOn(handle : super::super::Foundation:: POHANDLE) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxSetComponentLatency(handle : super::super::Foundation:: POHANDLE, component : u32, latency : u64) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxSetComponentResidency(handle : super::super::Foundation:: POHANDLE, component : u32, residency : u64) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PoFxSetComponentWake(handle : super::super::Foundation:: POHANDLE, component : u32, wakehint : super::super::super::Win32::Foundation:: BOOLEAN) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxSetDeviceIdleTimeout(handle : super::super::Foundation:: POHANDLE, idletimeout : u64) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Power"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] fn PoFxSetTargetDripsDevicePowerState(handle : super::super::Foundation:: POHANDLE, targetstate : super::super::super::Win32::System::Power:: DEVICE_POWER_STATE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxStartDevicePowerManagement(handle : super::super::Foundation:: POHANDLE) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PoFxUnregisterDevice(handle : super::super::Foundation:: POHANDLE) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoGetSystemWake(irp : *const super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PoGetThermalRequestSupport(thermalrequest : *const ::core::ffi::c_void, r#type : PO_THERMAL_REQUEST_TYPE) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoQueryWatchdogTime(pdo : *const super::super::Foundation:: DEVICE_OBJECT, secondsremaining : *mut u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoRegisterDeviceForIdleDetection(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, conservationidletime : u32, performanceidletime : u32, state : super::super::super::Win32::System::Power:: DEVICE_POWER_STATE) -> *mut u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoRegisterPowerSettingCallback(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, settingguid : *const ::windows_sys::core::GUID, callback : PPOWER_SETTING_CALLBACK, context : *const ::core::ffi::c_void, handle : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn PoRegisterSystemState(statehandle : *mut ::core::ffi::c_void, flags : u32) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoRequestPowerIrp(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, minorfunction : u8, powerstate : POWER_STATE, completionfunction : PREQUEST_POWER_COMPLETE, context : *const ::core::ffi::c_void, irp : *mut *mut super::super::Foundation:: IRP) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn PoSetDeviceBusyEx(idlepointer : *mut u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn PoSetHiberRange(memorymap : *const ::core::ffi::c_void, flags : u32, address : *const ::core::ffi::c_void, length : usize, tag : u32) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Power"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] fn PoSetPowerRequest(powerrequest : *mut ::core::ffi::c_void, r#type : super::super::super::Win32::System::Power:: POWER_REQUEST_TYPE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoSetPowerState(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, r#type : POWER_STATE_TYPE, state : POWER_STATE) -> POWER_STATE); +::windows_targets::link!("ntoskrnl.exe" "system" fn PoSetSystemState(flags : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoSetSystemWake(irp : *mut super::super::Foundation:: IRP) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoSetSystemWakeDevice(deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PoSetThermalActiveCooling(thermalrequest : *mut ::core::ffi::c_void, engaged : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PoSetThermalPassiveCooling(thermalrequest : *mut ::core::ffi::c_void, throttle : u8) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn PoStartDeviceBusy(idlepointer : *mut u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PoStartNextPowerIrp(irp : *mut super::super::Foundation:: IRP) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PoUnregisterPowerSettingCallback(handle : *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn PoUnregisterSystemState(statehandle : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ProbeForRead(address : *const ::core::ffi::c_void, length : usize, alignment : u32) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn ProbeForWrite(address : *mut ::core::ffi::c_void, length : usize, alignment : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsAcquireSiloHardReference(silo : super::super::Foundation:: PESILO) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsAllocSiloContextSlot(reserved : usize, returnedcontextslot : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsAllocateAffinityToken(affinitytoken : *mut super::super::Foundation:: PAFFINITY_TOKEN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsAttachSiloToCurrentThread(silo : super::super::Foundation:: PESILO) -> super::super::Foundation:: PESILO); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsCreateSiloContext(silo : super::super::Foundation:: PESILO, size : u32, pooltype : super::super::Foundation:: POOL_TYPE, contextcleanupcallback : SILO_CONTEXT_CLEANUP_CALLBACK, returnedsilocontext : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] fn PsCreateSystemThread(threadhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, processhandle : super::super::super::Win32::Foundation:: HANDLE, clientid : *mut super::super::super::Win32::System::WindowsProgramming:: CLIENT_ID, startroutine : PKSTART_ROUTINE, startcontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn PsDereferenceSiloContext(silocontext : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsDetachSiloFromCurrentThread(previoussilo : super::super::Foundation:: PESILO) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsFreeAffinityToken(affinitytoken : super::super::Foundation:: PAFFINITY_TOKEN) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsFreeSiloContextSlot(contextslot : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsGetCurrentProcessId() -> super::super::super::Win32::Foundation:: HANDLE); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetCurrentServerSilo() -> super::super::Foundation:: PESILO); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsGetCurrentServerSiloName() -> *mut super::super::super::Win32::Foundation:: UNICODE_STRING); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetCurrentSilo() -> super::super::Foundation:: PESILO); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsGetCurrentThreadId() -> super::super::super::Win32::Foundation:: HANDLE); +::windows_targets::link!("ntoskrnl.exe" "system" fn PsGetCurrentThreadTeb() -> *mut ::core::ffi::c_void); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetEffectiveServerSilo(silo : super::super::Foundation:: PESILO) -> super::super::Foundation:: PESILO); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetHostSilo() -> super::super::Foundation:: PESILO); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsGetJobServerSilo(job : super::super::Foundation:: PEJOB, serversilo : *mut super::super::Foundation:: PESILO) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsGetJobSilo(job : super::super::Foundation:: PEJOB, silo : *mut super::super::Foundation:: PESILO) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetParentSilo(job : super::super::Foundation:: PEJOB) -> super::super::Foundation:: PESILO); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsGetPermanentSiloContext(silo : super::super::Foundation:: PESILO, contextslot : u32, returnedsilocontext : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetProcessCreateTimeQuadPart(process : super::super::Foundation:: PEPROCESS) -> i64); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsGetProcessExitStatus(process : super::super::Foundation:: PEPROCESS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsGetProcessId(process : super::super::Foundation:: PEPROCESS) -> super::super::super::Win32::Foundation:: HANDLE); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetProcessStartKey(process : super::super::Foundation:: PEPROCESS) -> u64); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetServerSiloServiceSessionId(silo : super::super::Foundation:: PESILO) -> u32); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetSiloContainerId(silo : super::super::Foundation:: PESILO) -> *mut ::windows_sys::core::GUID); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsGetSiloContext(silo : super::super::Foundation:: PESILO, contextslot : u32, returnedsilocontext : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetSiloMonitorContextSlot(monitor : super::super::Foundation:: PSILO_MONITOR) -> u32); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetThreadCreateTime(thread : super::super::Foundation:: PETHREAD) -> i64); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsGetThreadExitStatus(thread : super::super::Foundation:: PETHREAD) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsGetThreadId(thread : super::super::Foundation:: PETHREAD) -> super::super::super::Win32::Foundation:: HANDLE); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsGetThreadProcessId(thread : super::super::Foundation:: PETHREAD) -> super::super::super::Win32::Foundation:: HANDLE); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetThreadProperty(thread : super::super::Foundation:: PETHREAD, key : usize, flags : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsGetThreadServerSilo(thread : super::super::Foundation:: PETHREAD) -> super::super::Foundation:: PESILO); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsGetVersion(majorversion : *mut u32, minorversion : *mut u32, buildnumber : *mut u32, csdversion : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsInsertPermanentSiloContext(silo : super::super::Foundation:: PESILO, contextslot : u32, silocontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsInsertSiloContext(silo : super::super::Foundation:: PESILO, contextslot : u32, silocontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsIsCurrentThreadInServerSilo() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsIsCurrentThreadPrefetching() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsIsHostSilo(silo : super::super::Foundation:: PESILO) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsMakeSiloContextPermanent(silo : super::super::Foundation:: PESILO, contextslot : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsQueryTotalCycleTimeProcess(process : super::super::Foundation:: PEPROCESS, cycletimestamp : *mut u64) -> u64); +::windows_targets::link!("ntoskrnl.exe" "system" fn PsReferenceSiloContext(silocontext : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsRegisterSiloMonitor(registration : *const SILO_MONITOR_REGISTRATION, returnedmonitor : *mut super::super::Foundation:: PSILO_MONITOR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsReleaseSiloHardReference(silo : super::super::Foundation:: PESILO) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsRemoveCreateThreadNotifyRoutine(notifyroutine : PCREATE_THREAD_NOTIFY_ROUTINE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsRemoveLoadImageNotifyRoutine(notifyroutine : PLOAD_IMAGE_NOTIFY_ROUTINE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsRemoveSiloContext(silo : super::super::Foundation:: PESILO, contextslot : u32, removedsilocontext : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsReplaceSiloContext(silo : super::super::Foundation:: PESILO, contextslot : u32, newsilocontext : *const ::core::ffi::c_void, oldsilocontext : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsRevertToUserMultipleGroupAffinityThread(affinitytoken : super::super::Foundation:: PAFFINITY_TOKEN) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsSetCreateProcessNotifyRoutine(notifyroutine : PCREATE_PROCESS_NOTIFY_ROUTINE, remove : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn PsSetCreateProcessNotifyRoutineEx(notifyroutine : PCREATE_PROCESS_NOTIFY_ROUTINE_EX, remove : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsSetCreateProcessNotifyRoutineEx2(notifytype : PSCREATEPROCESSNOTIFYTYPE, notifyinformation : *const ::core::ffi::c_void, remove : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsSetCreateThreadNotifyRoutine(notifyroutine : PCREATE_THREAD_NOTIFY_ROUTINE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsSetCreateThreadNotifyRoutineEx(notifytype : PSCREATETHREADNOTIFYTYPE, notifyinformation : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsSetCurrentThreadPrefetching(prefetching : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsSetLoadImageNotifyRoutine(notifyroutine : PLOAD_IMAGE_NOTIFY_ROUTINE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsSetLoadImageNotifyRoutineEx(notifyroutine : PLOAD_IMAGE_NOTIFY_ROUTINE, flags : usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn PsSetSystemMultipleGroupAffinityThread(groupaffinities : *const super::super::super::Win32::System::SystemInformation:: GROUP_AFFINITY, groupcount : u16, affinitytoken : super::super::Foundation:: PAFFINITY_TOKEN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsStartSiloMonitor(monitor : super::super::Foundation:: PSILO_MONITOR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn PsTerminateServerSilo(serversilo : super::super::Foundation:: PESILO, exitstatus : super::super::super::Win32::Foundation:: NTSTATUS) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsTerminateSystemThread(exitstatus : super::super::super::Win32::Foundation:: NTSTATUS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn PsUnregisterSiloMonitor(monitor : super::super::Foundation:: PSILO_MONITOR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PsWrapApcWow64Thread(apccontext : *mut *mut ::core::ffi::c_void, apcroutine : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("pshed.dll" "system" fn PshedAllocateMemory(size : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("pshed.dll" "system" fn PshedFreeMemory(address : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pshed.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PshedIsSystemWheaEnabled() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("pshed.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn PshedRegisterPlugin(packet : *mut WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("pshed.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn PshedSynchronizeExecution(errorsource : *const super::super::super::Win32::System::Diagnostics::Debug:: WHEA_ERROR_SOURCE_DESCRIPTOR, synchronizeroutine : PKSYNCHRONIZE_ROUTINE, synchronizecontext : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("pshed.dll" "system" fn PshedUnregisterPlugin(pluginhandle : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlAppendUnicodeStringToString(destination : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, source : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlAppendUnicodeToString(destination : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, source : ::windows_sys::core::PCWSTR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlAreBitsClear(bitmapheader : *const RTL_BITMAP, startingindex : u32, length : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlAreBitsSet(bitmapheader : *const RTL_BITMAP, startingindex : u32, length : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntdll.dll" "system" fn RtlAssert(voidfailedassertion : *const ::core::ffi::c_void, voidfilename : *const ::core::ffi::c_void, linenumber : u32, mutablemessage : ::windows_sys::core::PCSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCheckRegistryKey(relativeto : u32, path : ::windows_sys::core::PCWSTR) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlClearAllBits(bitmapheader : *const RTL_BITMAP) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlClearBit(bitmapheader : *const RTL_BITMAP, bitnumber : u32) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlClearBits(bitmapheader : *const RTL_BITMAP, startingindex : u32, numbertoclear : u32) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlCmDecodeMemIoResource(descriptor : *const CM_PARTIAL_RESOURCE_DESCRIPTOR, start : *mut u64) -> u64); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCmEncodeMemIoResource(descriptor : *const CM_PARTIAL_RESOURCE_DESCRIPTOR, r#type : u8, length : u64, start : u64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlCompareString(string1 : *const super::super::super::Win32::System::Kernel:: STRING, string2 : *const super::super::super::Win32::System::Kernel:: STRING, caseinsensitive : super::super::super::Win32::Foundation:: BOOLEAN) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCompareUnicodeString(string1 : *const super::super::super::Win32::Foundation:: UNICODE_STRING, string2 : *const super::super::super::Win32::Foundation:: UNICODE_STRING, caseinsensitive : super::super::super::Win32::Foundation:: BOOLEAN) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCompareUnicodeStrings(string1 : *const u16, string1length : usize, string2 : *const u16, string2length : usize, caseinsensitive : super::super::super::Win32::Foundation:: BOOLEAN) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlContractHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntdll.dll" "system" fn RtlCopyBitMap(source : *const RTL_BITMAP, destination : *const RTL_BITMAP, targetbit : u32) -> ()); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlCopyString(destinationstring : *mut super::super::super::Win32::System::Kernel:: STRING, sourcestring : *const super::super::super::Win32::System::Kernel:: STRING) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCopyUnicodeString(destinationstring : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, sourcestring : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlCrc64(buffer : *const ::core::ffi::c_void, size : usize, initialcrc : u64) -> u64); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCreateHashTable(hashtable : *mut *mut RTL_DYNAMIC_HASH_TABLE, shift : u32, flags : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCreateHashTableEx(hashtable : *mut *mut RTL_DYNAMIC_HASH_TABLE, initialsize : u32, shift : u32, flags : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCreateRegistryKey(relativeto : u32, path : ::windows_sys::core::PCWSTR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlCreateSecurityDescriptor(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, revision : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn RtlDelete(links : *const super::super::Foundation:: RTL_SPLAY_LINKS) -> *mut super::super::Foundation:: RTL_SPLAY_LINKS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlDeleteElementGenericTable(table : *const RTL_GENERIC_TABLE, buffer : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDeleteElementGenericTableAvl(table : *const RTL_AVL_TABLE, buffer : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntdll.dll" "system" fn RtlDeleteElementGenericTableAvlEx(table : *const RTL_AVL_TABLE, nodeorparent : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlDeleteHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE) -> ()); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn RtlDeleteNoSplay(links : *const super::super::Foundation:: RTL_SPLAY_LINKS, root : *mut *mut super::super::Foundation:: RTL_SPLAY_LINKS) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDeleteRegistryValue(relativeto : u32, path : ::windows_sys::core::PCWSTR, valuename : ::windows_sys::core::PCWSTR) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlDowncaseUnicodeChar(sourcecharacter : u16) -> u16); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlEndEnumerationHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE, enumerator : *mut RTL_DYNAMIC_HASH_TABLE_ENUMERATOR) -> ()); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlEndStrongEnumerationHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE, enumerator : *mut RTL_DYNAMIC_HASH_TABLE_ENUMERATOR) -> ()); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlEndWeakEnumerationHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE, enumerator : *mut RTL_DYNAMIC_HASH_TABLE_ENUMERATOR) -> ()); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlEnumerateEntryHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE, enumerator : *mut RTL_DYNAMIC_HASH_TABLE_ENUMERATOR) -> *mut RTL_DYNAMIC_HASH_TABLE_ENTRY); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlEnumerateGenericTable(table : *const RTL_GENERIC_TABLE, restart : super::super::super::Win32::Foundation:: BOOLEAN) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlEnumerateGenericTableAvl(table : *const RTL_AVL_TABLE, restart : super::super::super::Win32::Foundation:: BOOLEAN) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlEnumerateGenericTableLikeADirectory(table : *const RTL_AVL_TABLE, matchfunction : PRTL_AVL_MATCH_FUNCTION, matchdata : *const ::core::ffi::c_void, nextflag : u32, restartkey : *mut *mut ::core::ffi::c_void, deletecount : *mut u32, buffer : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlEnumerateGenericTableWithoutSplaying(table : *const RTL_GENERIC_TABLE, restartkey : *mut *mut ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntdll.dll" "system" fn RtlEnumerateGenericTableWithoutSplayingAvl(table : *const RTL_AVL_TABLE, restartkey : *mut *mut ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlEqualString(string1 : *const super::super::super::Win32::System::Kernel:: STRING, string2 : *const super::super::super::Win32::System::Kernel:: STRING, caseinsensitive : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlEqualUnicodeString(string1 : *const super::super::super::Win32::Foundation:: UNICODE_STRING, string2 : *const super::super::super::Win32::Foundation:: UNICODE_STRING, caseinsensitive : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlExpandHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntdll.dll" "system" fn RtlExtractBitMap(source : *const RTL_BITMAP, destination : *const RTL_BITMAP, targetbit : u32, numberofbits : u32) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlFindClearBits(bitmapheader : *const RTL_BITMAP, numbertofind : u32, hintindex : u32) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlFindClearBitsAndSet(bitmapheader : *const RTL_BITMAP, numbertofind : u32, hintindex : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlFindClearRuns(bitmapheader : *const RTL_BITMAP, runarray : *mut RTL_BITMAP_RUN, sizeofrunarray : u32, locatelongestruns : super::super::super::Win32::Foundation:: BOOLEAN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlFindClosestEncodableLength(sourcelength : u64, targetlength : *mut u64) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn RtlFindFirstRunClear(bitmapheader : *const RTL_BITMAP, startingindex : *mut u32) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlFindLastBackwardRunClear(bitmapheader : *const RTL_BITMAP, fromindex : u32, startingrunindex : *mut u32) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlFindLeastSignificantBit(set : u64) -> i8); +::windows_targets::link!("ntdll.dll" "system" fn RtlFindLongestRunClear(bitmapheader : *const RTL_BITMAP, startingindex : *mut u32) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlFindMostSignificantBit(set : u64) -> i8); +::windows_targets::link!("ntdll.dll" "system" fn RtlFindNextForwardRunClear(bitmapheader : *const RTL_BITMAP, fromindex : u32, startingrunindex : *mut u32) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlFindSetBits(bitmapheader : *const RTL_BITMAP, numbertofind : u32, hintindex : u32) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlFindSetBitsAndClear(bitmapheader : *const RTL_BITMAP, numbertofind : u32, hintindex : u32) -> u32); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlFreeUTF8String(utf8string : *mut super::super::super::Win32::System::Kernel:: STRING) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlGUIDFromString(guidstring : *const super::super::super::Win32::Foundation:: UNICODE_STRING, guid : *mut ::windows_sys::core::GUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlGenerateClass5Guid(namespaceguid : *const ::windows_sys::core::GUID, buffer : *const ::core::ffi::c_void, buffersize : u32, guid : *mut ::windows_sys::core::GUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlGetActiveConsoleId() -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlGetCallersAddress(callersaddress : *mut *mut ::core::ffi::c_void, callerscaller : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlGetConsoleSessionForegroundProcessId() -> u64); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlGetElementGenericTable(table : *const RTL_GENERIC_TABLE, i : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntdll.dll" "system" fn RtlGetElementGenericTableAvl(table : *const RTL_AVL_TABLE, i : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntdll.dll" "system" fn RtlGetEnabledExtendedFeatures(featuremask : u64) -> u64); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlGetNextEntryHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE, context : *const RTL_DYNAMIC_HASH_TABLE_CONTEXT) -> *mut RTL_DYNAMIC_HASH_TABLE_ENTRY); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlGetNtProductType(ntproducttype : *mut super::super::super::Win32::System::Kernel:: NT_PRODUCT_TYPE) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntdll.dll" "system" fn RtlGetNtSystemRoot() -> ::windows_sys::core::PCWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlGetPersistedStateLocation(sourceid : ::windows_sys::core::PCWSTR, customvalue : ::windows_sys::core::PCWSTR, defaultpath : ::windows_sys::core::PCWSTR, statelocationtype : STATE_LOCATION_TYPE, targetpath : ::windows_sys::core::PWSTR, bufferlengthin : u32, bufferlengthout : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlGetSuiteMask() -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn RtlGetVersion(lpversioninformation : *mut super::super::super::Win32::System::SystemInformation:: OSVERSIONINFOW) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlHashUnicodeString(string : *const super::super::super::Win32::Foundation:: UNICODE_STRING, caseinsensitive : super::super::super::Win32::Foundation:: BOOLEAN, hashalgorithm : u32, hashvalue : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlInitEnumerationHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE, enumerator : *mut RTL_DYNAMIC_HASH_TABLE_ENUMERATOR) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlInitStrongEnumerationHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE, enumerator : *mut RTL_DYNAMIC_HASH_TABLE_ENUMERATOR) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlInitUTF8String(destinationstring : *mut super::super::super::Win32::System::Kernel:: STRING, sourcestring : *const i8) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlInitUTF8StringEx(destinationstring : *mut super::super::super::Win32::System::Kernel:: STRING, sourcestring : *const i8) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlInitWeakEnumerationHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE, enumerator : *mut RTL_DYNAMIC_HASH_TABLE_ENUMERATOR) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntdll.dll" "system" fn RtlInitializeBitMap(bitmapheader : *mut RTL_BITMAP, bitmapbuffer : *const u32, sizeofbitmap : u32) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlInitializeGenericTable(table : *mut RTL_GENERIC_TABLE, compareroutine : PRTL_GENERIC_COMPARE_ROUTINE, allocateroutine : PRTL_GENERIC_ALLOCATE_ROUTINE, freeroutine : PRTL_GENERIC_FREE_ROUTINE, tablecontext : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlInitializeGenericTableAvl(table : *mut RTL_AVL_TABLE, compareroutine : PRTL_AVL_COMPARE_ROUTINE, allocateroutine : PRTL_AVL_ALLOCATE_ROUTINE, freeroutine : PRTL_AVL_FREE_ROUTINE, tablecontext : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlInsertElementGenericTable(table : *const RTL_GENERIC_TABLE, buffer : *const ::core::ffi::c_void, buffersize : u32, newelement : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlInsertElementGenericTableAvl(table : *const RTL_AVL_TABLE, buffer : *const ::core::ffi::c_void, buffersize : u32, newelement : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlInsertElementGenericTableFull(table : *const RTL_GENERIC_TABLE, buffer : *const ::core::ffi::c_void, buffersize : u32, newelement : *mut super::super::super::Win32::Foundation:: BOOLEAN, nodeorparent : *const ::core::ffi::c_void, searchresult : TABLE_SEARCH_RESULT) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlInsertElementGenericTableFullAvl(table : *const RTL_AVL_TABLE, buffer : *const ::core::ffi::c_void, buffersize : u32, newelement : *mut super::super::super::Win32::Foundation:: BOOLEAN, nodeorparent : *const ::core::ffi::c_void, searchresult : TABLE_SEARCH_RESULT) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlInsertEntryHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE, entry : *const RTL_DYNAMIC_HASH_TABLE_ENTRY, signature : usize, context : *mut RTL_DYNAMIC_HASH_TABLE_CONTEXT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlInt64ToUnicodeString(value : u64, base : u32, string : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIntegerToUnicodeString(value : u32, base : u32, string : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlIoDecodeMemIoResource(descriptor : *const IO_RESOURCE_DESCRIPTOR, alignment : *mut u64, minimumaddress : *mut u64, maximumaddress : *mut u64) -> u64); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIoEncodeMemIoResource(descriptor : *const IO_RESOURCE_DESCRIPTOR, r#type : u8, length : u64, alignment : u64, minimumaddress : u64, maximumaddress : u64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsApiSetImplemented(apisetname : ::windows_sys::core::PCSTR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlIsGenericTableEmpty(table : *const RTL_GENERIC_TABLE) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsGenericTableEmptyAvl(table : *const RTL_AVL_TABLE) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsMultiSessionSku() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsMultiUsersInSessionSku() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsNtDdiVersionAvailable(version : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsServicePackVersionInstalled(version : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsStateSeparationEnabled() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsUntrustedObject(handle : super::super::super::Win32::Foundation:: HANDLE, object : *const ::core::ffi::c_void, untrustedobject : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn RtlLengthSecurityDescriptor(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlLookupElementGenericTable(table : *const RTL_GENERIC_TABLE, buffer : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntdll.dll" "system" fn RtlLookupElementGenericTableAvl(table : *const RTL_AVL_TABLE, buffer : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlLookupElementGenericTableFull(table : *const RTL_GENERIC_TABLE, buffer : *const ::core::ffi::c_void, nodeorparent : *mut *mut ::core::ffi::c_void, searchresult : *mut TABLE_SEARCH_RESULT) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ntdll.dll" "system" fn RtlLookupElementGenericTableFullAvl(table : *const RTL_AVL_TABLE, buffer : *const ::core::ffi::c_void, nodeorparent : *mut *mut ::core::ffi::c_void, searchresult : *mut TABLE_SEARCH_RESULT) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlLookupEntryHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE, signature : usize, context : *mut RTL_DYNAMIC_HASH_TABLE_CONTEXT) -> *mut RTL_DYNAMIC_HASH_TABLE_ENTRY); +::windows_targets::link!("ntdll.dll" "system" fn RtlLookupFirstMatchingElementGenericTableAvl(table : *const RTL_AVL_TABLE, buffer : *const ::core::ffi::c_void, restartkey : *mut *mut ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn RtlMapGenericMask(accessmask : *mut u32, genericmapping : *const super::super::super::Win32::Security:: GENERIC_MAPPING) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlNormalizeSecurityDescriptor(securitydescriptor : *mut super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, securitydescriptorlength : u32, newsecuritydescriptor : *mut super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, newsecuritydescriptorlength : *mut u32, checkonly : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlNumberGenericTableElements(table : *const RTL_GENERIC_TABLE) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlNumberGenericTableElementsAvl(table : *const RTL_AVL_TABLE) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlNumberOfClearBits(bitmapheader : *const RTL_BITMAP) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlNumberOfClearBitsInRange(bitmapheader : *const RTL_BITMAP, startingindex : u32, length : u32) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlNumberOfSetBits(bitmapheader : *const RTL_BITMAP) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlNumberOfSetBitsInRange(bitmapheader : *const RTL_BITMAP, startingindex : u32, length : u32) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlNumberOfSetBitsUlongPtr(target : usize) -> u32); +::windows_targets::link!("ntoskrnl.exe" "system" fn RtlPrefetchMemoryNonTemporal(source : *const ::core::ffi::c_void, length : usize) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlPrefixUnicodeString(string1 : *const super::super::super::Win32::Foundation:: UNICODE_STRING, string2 : *const super::super::super::Win32::Foundation:: UNICODE_STRING, caseinsensitive : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlQueryRegistryValueWithFallback(primaryhandle : super::super::super::Win32::Foundation:: HANDLE, fallbackhandle : super::super::super::Win32::Foundation:: HANDLE, valuename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, valuelength : u32, valuetype : *mut u32, valuedata : *mut ::core::ffi::c_void, resultlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlQueryRegistryValues(relativeto : u32, path : ::windows_sys::core::PCWSTR, querytable : *mut RTL_QUERY_REGISTRY_TABLE, context : *const ::core::ffi::c_void, environment : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlQueryValidationRunlevel(componentname : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> u32); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn RtlRealPredecessor(links : *const super::super::Foundation:: RTL_SPLAY_LINKS) -> *mut super::super::Foundation:: RTL_SPLAY_LINKS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn RtlRealSuccessor(links : *const super::super::Foundation:: RTL_SPLAY_LINKS) -> *mut super::super::Foundation:: RTL_SPLAY_LINKS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlRemoveEntryHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE, entry : *const RTL_DYNAMIC_HASH_TABLE_ENTRY, context : *mut RTL_DYNAMIC_HASH_TABLE_CONTEXT) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] fn RtlRunOnceBeginInitialize(runonce : *mut super::super::super::Win32::System::Threading:: INIT_ONCE, flags : u32, context : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] fn RtlRunOnceComplete(runonce : *mut super::super::super::Win32::System::Threading:: INIT_ONCE, flags : u32, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] fn RtlRunOnceExecuteOnce(runonce : *mut super::super::super::Win32::System::Threading:: INIT_ONCE, initfn : PRTL_RUN_ONCE_INIT_FN, parameter : *mut ::core::ffi::c_void, context : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_System_Threading")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Threading\"`"] fn RtlRunOnceInitialize(runonce : *mut super::super::super::Win32::System::Threading:: INIT_ONCE) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlSetAllBits(bitmapheader : *const RTL_BITMAP) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlSetBit(bitmapheader : *const RTL_BITMAP, bitnumber : u32) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlSetBits(bitmapheader : *const RTL_BITMAP, startingindex : u32, numbertoset : u32) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlSetDaclSecurityDescriptor(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, daclpresent : super::super::super::Win32::Foundation:: BOOLEAN, dacl : *const super::super::super::Win32::Security:: ACL, dacldefaulted : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn RtlSetSystemGlobalData(dataid : super::super::super::Win32::System::SystemInformation:: RTL_SYSTEM_GLOBAL_DATA_ID, buffer : *const ::core::ffi::c_void, size : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn RtlSplay(links : *mut super::super::Foundation:: RTL_SPLAY_LINKS) -> *mut super::super::Foundation:: RTL_SPLAY_LINKS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlStringFromGUID(guid : *const ::windows_sys::core::GUID, guidstring : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlStronglyEnumerateEntryHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE, enumerator : *mut RTL_DYNAMIC_HASH_TABLE_ENUMERATOR) -> *mut RTL_DYNAMIC_HASH_TABLE_ENTRY); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn RtlSubtreePredecessor(links : *const super::super::Foundation:: RTL_SPLAY_LINKS) -> *mut super::super::Foundation:: RTL_SPLAY_LINKS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn RtlSubtreeSuccessor(links : *const super::super::Foundation:: RTL_SPLAY_LINKS) -> *mut super::super::Foundation:: RTL_SPLAY_LINKS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlSuffixUnicodeString(string1 : *const super::super::super::Win32::Foundation:: UNICODE_STRING, string2 : *const super::super::super::Win32::Foundation:: UNICODE_STRING, caseinsensitive : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlTestBit(bitmapheader : *const RTL_BITMAP, bitnumber : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlTimeFieldsToTime(timefields : *const TIME_FIELDS, time : *mut i64) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntdll.dll" "system" fn RtlTimeToTimeFields(time : *const i64, timefields : *mut TIME_FIELDS) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlUTF8StringToUnicodeString(destinationstring : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, sourcestring : *const super::super::super::Win32::System::Kernel:: STRING, allocatedestinationstring : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlUTF8ToUnicodeN(unicodestringdestination : ::windows_sys::core::PWSTR, unicodestringmaxbytecount : u32, unicodestringactualbytecount : *mut u32, utf8stringsource : ::windows_sys::core::PCSTR, utf8stringbytecount : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlUnicodeStringToInt64(string : *const super::super::super::Win32::Foundation:: UNICODE_STRING, base : u32, number : *mut i64, endpointer : *mut ::windows_sys::core::PWSTR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlUnicodeStringToInteger(string : *const super::super::super::Win32::Foundation:: UNICODE_STRING, base : u32, value : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlUnicodeStringToUTF8String(destinationstring : *mut super::super::super::Win32::System::Kernel:: STRING, sourcestring : *const super::super::super::Win32::Foundation:: UNICODE_STRING, allocatedestinationstring : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlUnicodeToUTF8N(utf8stringdestination : ::windows_sys::core::PSTR, utf8stringmaxbytecount : u32, utf8stringactualbytecount : *mut u32, unicodestringsource : *const u16, unicodestringbytecount : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlUpcaseUnicodeChar(sourcecharacter : u16) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlUpcaseUnicodeString(destinationstring : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, sourcestring : *const super::super::super::Win32::Foundation:: UNICODE_STRING, allocatedestinationstring : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlUpperChar(character : u8) -> u8); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlUpperString(destinationstring : *mut super::super::super::Win32::System::Kernel:: STRING, sourcestring : *const super::super::super::Win32::System::Kernel:: STRING) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlValidRelativeSecurityDescriptor(securitydescriptorinput : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, securitydescriptorlength : u32, requiredinformation : u32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RtlValidSecurityDescriptor(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn RtlVerifyVersionInfo(versioninfo : *const super::super::super::Win32::System::SystemInformation:: OSVERSIONINFOEXW, typemask : u32, conditionmask : u64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlVolumeDeviceToDosName(volumedeviceobject : *const ::core::ffi::c_void, dosname : *mut super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlWalkFrameChain(callers : *mut *mut ::core::ffi::c_void, count : u32, flags : u32) -> u32); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlWeaklyEnumerateEntryHashTable(hashtable : *const RTL_DYNAMIC_HASH_TABLE, enumerator : *mut RTL_DYNAMIC_HASH_TABLE_ENUMERATOR) -> *mut RTL_DYNAMIC_HASH_TABLE_ENTRY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlWriteRegistryValue(relativeto : u32, path : ::windows_sys::core::PCWSTR, valuename : ::windows_sys::core::PCWSTR, valuetype : u32, valuedata : *const ::core::ffi::c_void, valuelength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlxAnsiStringToUnicodeSize(ansistring : *const super::super::super::Win32::System::Kernel:: STRING) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlxUnicodeStringToAnsiSize(unicodestring : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> u32); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAccessCheck(securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, subjectsecuritycontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT, subjectcontextlocked : super::super::super::Win32::Foundation:: BOOLEAN, desiredaccess : u32, previouslygrantedaccess : u32, privileges : *mut *mut super::super::super::Win32::Security:: PRIVILEGE_SET, genericmapping : *const super::super::super::Win32::Security:: GENERIC_MAPPING, accessmode : i8, grantedaccess : *mut u32, accessstatus : *mut i32) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAssignSecurity(parentdescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, explicitdescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, newdescriptor : *mut super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, isdirectoryobject : super::super::super::Win32::Foundation:: BOOLEAN, subjectcontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT, genericmapping : *const super::super::super::Win32::Security:: GENERIC_MAPPING, pooltype : super::super::Foundation:: POOL_TYPE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeAssignSecurityEx(parentdescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, explicitdescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, newdescriptor : *mut super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, objecttype : *const ::windows_sys::core::GUID, isdirectoryobject : super::super::super::Win32::Foundation:: BOOLEAN, autoinheritflags : u32, subjectcontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT, genericmapping : *const super::super::super::Win32::Security:: GENERIC_MAPPING, pooltype : super::super::Foundation:: POOL_TYPE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Security\"`"] fn SeCaptureSubjectContext(subjectcontext : *mut super::super::Foundation:: SECURITY_SUBJECT_CONTEXT) -> ()); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn SeComputeAutoInheritByObjectType(objecttype : *const ::core::ffi::c_void, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR, parentsecuritydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeDeassignSecurity(securitydescriptor : *mut super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeEtwWriteKMCveEvent(cveid : *const super::super::super::Win32::Foundation:: UNICODE_STRING, additionaldetails : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Security\"`"] fn SeLockSubjectContext(subjectcontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeRegisterImageVerificationCallback(imagetype : SE_IMAGE_TYPE, callbacktype : SE_IMAGE_VERIFICATION_CALLBACK_TYPE, callbackfunction : PSE_IMAGE_VERIFICATION_CALLBACK_FUNCTION, callbackcontext : *const ::core::ffi::c_void, token : *const ::core::ffi::c_void, callbackhandle : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Security\"`"] fn SeReleaseSubjectContext(subjectcontext : *mut super::super::Foundation:: SECURITY_SUBJECT_CONTEXT) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] fn SeReportSecurityEvent(flags : u32, sourcename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, usersid : super::super::super::Win32::Foundation:: PSID, auditparameters : *const super::super::super::Win32::Security::Authentication::Identity:: SE_ADT_PARAMETER_ARRAY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] fn SeSetAuditParameter(auditparameters : *mut super::super::super::Win32::Security::Authentication::Identity:: SE_ADT_PARAMETER_ARRAY, r#type : super::super::super::Win32::Security::Authentication::Identity:: SE_ADT_PARAMETER_TYPE, index : u32, data : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SeSinglePrivilegeCheck(privilegevalue : super::super::super::Win32::Foundation:: LUID, previousmode : i8) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Security\"`"] fn SeUnlockSubjectContext(subjectcontext : *const super::super::Foundation:: SECURITY_SUBJECT_CONTEXT) -> ()); +::windows_targets::link!("ntoskrnl.exe" "system" fn SeUnregisterImageVerificationCallback(callbackhandle : *const ::core::ffi::c_void) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SeValidSecurityDescriptor(length : u32, securitydescriptor : super::super::super::Win32::Security:: PSECURITY_DESCRIPTOR) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmCommitComplete(enlistment : *const super::super::Foundation:: KENLISTMENT, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmCommitEnlistment(enlistment : *const super::super::Foundation:: KENLISTMENT, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmCommitTransaction(transaction : *const super::super::Foundation:: KTRANSACTION, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmCreateEnlistment(enlistmenthandle : *mut super::super::super::Win32::Foundation:: HANDLE, previousmode : i8, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, resourcemanager : *const isize, transaction : *const super::super::Foundation:: KTRANSACTION, createoptions : u32, notificationmask : u32, enlistmentkey : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmDereferenceEnlistmentKey(enlistment : *const super::super::Foundation:: KENLISTMENT, lastreference : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmEnableCallbacks(resourcemanager : *const super::super::Foundation:: KRESOURCEMANAGER, callbackroutine : PTM_RM_NOTIFICATION, rmkey : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Wdk_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`"] fn TmGetTransactionId(transaction : *const super::super::Foundation:: KTRANSACTION, transactionid : *mut ::windows_sys::core::GUID) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TmInitializeTransactionManager(transactionmanager : *const isize, logfilename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, tmid : *const ::windows_sys::core::GUID, createoptions : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmIsTransactionActive(transaction : *const super::super::Foundation:: KTRANSACTION) -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmPrePrepareComplete(enlistment : *const super::super::Foundation:: KENLISTMENT, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmPrePrepareEnlistment(enlistment : *const super::super::Foundation:: KENLISTMENT, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmPrepareComplete(enlistment : *const super::super::Foundation:: KENLISTMENT, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmPrepareEnlistment(enlistment : *const super::super::Foundation:: KENLISTMENT, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmPropagationComplete(resourcemanager : *const super::super::Foundation:: KRESOURCEMANAGER, requestcookie : u32, bufferlength : u32, buffer : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmPropagationFailed(resourcemanager : *const super::super::Foundation:: KRESOURCEMANAGER, requestcookie : u32, status : super::super::super::Win32::Foundation:: NTSTATUS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmReadOnlyEnlistment(enlistment : *const super::super::Foundation:: KENLISTMENT, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmRecoverEnlistment(enlistment : *const super::super::Foundation:: KENLISTMENT, enlistmentkey : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmRecoverResourceManager(resourcemanager : *const super::super::Foundation:: KRESOURCEMANAGER) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmRecoverTransactionManager(tm : *const super::super::Foundation:: KTM, targetvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmReferenceEnlistmentKey(enlistment : *const super::super::Foundation:: KENLISTMENT, key : *mut *mut ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TmRenameTransactionManager(logfilename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, existingtransactionmanagerguid : *const ::windows_sys::core::GUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmRequestOutcomeEnlistment(enlistment : *const super::super::Foundation:: KENLISTMENT, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmRollbackComplete(enlistment : *const super::super::Foundation:: KENLISTMENT, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmRollbackEnlistment(enlistment : *const super::super::Foundation:: KENLISTMENT, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmRollbackTransaction(transaction : *const super::super::Foundation:: KTRANSACTION, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn TmSinglePhaseReject(enlistment : *const super::super::Foundation:: KENLISTMENT, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn VslCreateSecureSection(handle : *mut super::super::super::Win32::Foundation:: HANDLE, targetprocess : super::super::Foundation:: PEPROCESS, mdl : *const super::super::Foundation:: MDL, devicepageprotection : u32, attributes : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VslDeleteSecureSection(globalhandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn WheaAddErrorSource(errorsource : *const super::super::super::Win32::System::Diagnostics::Debug:: WHEA_ERROR_SOURCE_DESCRIPTOR, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn WheaAddErrorSourceDeviceDriver(context : *mut ::core::ffi::c_void, configuration : *const super::super::super::Win32::System::Diagnostics::Debug:: WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER, numberpreallocatederrorreports : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn WheaAddErrorSourceDeviceDriverV1(context : *mut ::core::ffi::c_void, configuration : *const super::super::super::Win32::System::Diagnostics::Debug:: WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER, numbufferstopreallocate : u32, maxdatalength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn WheaAddHwErrorReportSectionDeviceDriver(errorhandle : *const ::core::ffi::c_void, sectiondatalength : u32, bufferset : *mut super::super::super::Win32::System::Diagnostics::Debug:: WHEA_DRIVER_BUFFER_SET) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn WheaConfigureErrorSource(sourcetype : super::super::super::Win32::System::Diagnostics::Debug:: WHEA_ERROR_SOURCE_TYPE, configuration : *const WHEA_ERROR_SOURCE_CONFIGURATION) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn WheaCreateHwErrorReportDeviceDriver(errorsourceid : u32, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] fn WheaErrorSourceGetState(errorsourceid : u32) -> super::super::super::Win32::System::Diagnostics::Debug:: WHEA_ERROR_SOURCE_STATE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WheaGetNotifyAllOfflinesPolicy() -> super::super::super::Win32::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn WheaHighIrqlLogSelEventHandlerRegister(handler : PFN_WHEA_HIGH_IRQL_LOG_SEL_EVENT_HANDLER, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn WheaHighIrqlLogSelEventHandlerUnregister() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WheaHwErrorReportAbandonDeviceDriver(errorhandle : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn WheaHwErrorReportSetSectionNameDeviceDriver(bufferset : *const super::super::super::Win32::System::Diagnostics::Debug:: WHEA_DRIVER_BUFFER_SET, namelength : u32, name : *const u8) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WheaHwErrorReportSetSeverityDeviceDriver(errorhandle : *const ::core::ffi::c_void, errorseverity : WHEA_ERROR_SEVERITY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WheaHwErrorReportSubmitDeviceDriver(errorhandle : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WheaInitializeRecordHeader(header : *mut WHEA_ERROR_RECORD_HEADER) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WheaIsCriticalState() -> super::super::super::Win32::Foundation:: BOOLEAN); +::windows_targets::link!("ntoskrnl.exe" "system" fn WheaLogInternalEvent(entry : *const WHEA_EVENT_LOG_ENTRY) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WheaRegisterInUsePageOfflineNotification(callback : PFN_IN_USE_PAGE_OFFLINE_NOTIFY, context : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntoskrnl.exe" "system" fn WheaRemoveErrorSource(errorsourceid : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WheaRemoveErrorSourceDeviceDriver(errorsourceid : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn WheaReportHwError(errorpacket : *mut WHEA_ERROR_PACKET_V2) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] fn WheaReportHwErrorDeviceDriver(errorsourceid : u32, deviceobject : *const super::super::Foundation:: DEVICE_OBJECT, errordata : *const u8, errordatalength : u32, sectiontypeguid : *const ::windows_sys::core::GUID, errorseverity : WHEA_ERROR_SEVERITY, devicefriendlyname : ::windows_sys::core::PCSTR) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn WheaUnconfigureErrorSource(sourcetype : super::super::super::Win32::System::Diagnostics::Debug:: WHEA_ERROR_SOURCE_TYPE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WheaUnregisterInUsePageOfflineNotification(callback : PFN_IN_USE_PAGE_OFFLINE_NOTIFY) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntoskrnl.exe" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WmiQueryTraceInformation(traceinformationclass : TRACE_INFORMATION_CLASS, traceinformation : *mut ::core::ffi::c_void, traceinformationlength : u32, requiredlength : *mut u32, buffer : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwAllocateLocallyUniqueId(luid : *mut super::super::super::Win32::Foundation:: LUID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwCancelTimer(timerhandle : super::super::super::Win32::Foundation:: HANDLE, currentstate : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwClose(handle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwCommitComplete(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwCommitEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwCommitRegistryTransaction(transactionhandle : super::super::super::Win32::Foundation:: HANDLE, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwCommitTransaction(transactionhandle : super::super::super::Win32::Foundation:: HANDLE, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwCreateDirectoryObject(directoryhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwCreateEnlistment(enlistmenthandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, resourcemanagerhandle : super::super::super::Win32::Foundation:: HANDLE, transactionhandle : super::super::super::Win32::Foundation:: HANDLE, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, createoptions : u32, notificationmask : u32, enlistmentkey : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwCreateFile(filehandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : u32, shareaccess : u32, createdisposition : u32, createoptions : u32, eabuffer : *const ::core::ffi::c_void, ealength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwCreateKey(keyhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, titleindex : u32, class : *const super::super::super::Win32::Foundation:: UNICODE_STRING, createoptions : u32, disposition : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwCreateKeyTransacted(keyhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, titleindex : u32, class : *const super::super::super::Win32::Foundation:: UNICODE_STRING, createoptions : u32, transactionhandle : super::super::super::Win32::Foundation:: HANDLE, disposition : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwCreateRegistryTransaction(transactionhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, createoptions : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwCreateResourceManager(resourcemanagerhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, tmhandle : super::super::super::Win32::Foundation:: HANDLE, resourcemanagerguid : *const ::windows_sys::core::GUID, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, createoptions : u32, description : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwCreateSection(sectionhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, maximumsize : *const i64, sectionpageprotection : u32, allocationattributes : u32, filehandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn ZwCreateTimer(timerhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, timertype : super::super::super::Win32::System::Kernel:: TIMER_TYPE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwCreateTransaction(transactionhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, uow : *const ::windows_sys::core::GUID, tmhandle : super::super::super::Win32::Foundation:: HANDLE, createoptions : u32, isolationlevel : u32, isolationflags : u32, timeout : *const i64, description : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwCreateTransactionManager(tmhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, logfilename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, createoptions : u32, commitstrength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwDeleteKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwDeleteValueKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, valuename : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwDeviceIoControlFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, iocontrolcode : u32, inputbuffer : *const ::core::ffi::c_void, inputbufferlength : u32, outputbuffer : *mut ::core::ffi::c_void, outputbufferlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwDisplayString(string : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwEnumerateKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, index : u32, keyinformationclass : KEY_INFORMATION_CLASS, keyinformation : *mut ::core::ffi::c_void, length : u32, resultlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn ZwEnumerateTransactionObject(rootobjecthandle : super::super::super::Win32::Foundation:: HANDLE, querytype : super::super::super::Win32::System::SystemServices:: KTMOBJECT_TYPE, objectcursor : *mut super::super::super::Win32::System::SystemServices:: KTMOBJECT_CURSOR, objectcursorlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwEnumerateValueKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, index : u32, keyvalueinformationclass : KEY_VALUE_INFORMATION_CLASS, keyvalueinformation : *mut ::core::ffi::c_void, length : u32, resultlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwFlushKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn ZwGetNotificationResourceManager(resourcemanagerhandle : super::super::super::Win32::Foundation:: HANDLE, transactionnotification : *mut super::super::super::Win32::Storage::FileSystem:: TRANSACTION_NOTIFICATION, notificationlength : u32, timeout : *const i64, returnlength : *mut u32, asynchronous : u32, asynchronouscontext : usize) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwLoadDriver(driverservicename : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwMakeTemporaryObject(handle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwMapViewOfSection(sectionhandle : super::super::super::Win32::Foundation:: HANDLE, processhandle : super::super::super::Win32::Foundation:: HANDLE, baseaddress : *mut *mut ::core::ffi::c_void, zerobits : usize, commitsize : usize, sectionoffset : *mut i64, viewsize : *mut usize, inheritdisposition : SECTION_INHERIT, allocationtype : u32, win32protect : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwOpenEnlistment(enlistmenthandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, rmhandle : super::super::super::Win32::Foundation:: HANDLE, enlistmentguid : *const ::windows_sys::core::GUID, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwOpenEvent(eventhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwOpenFile(filehandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, shareaccess : u32, openoptions : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwOpenKey(keyhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwOpenKeyEx(keyhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, openoptions : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwOpenKeyTransacted(keyhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, transactionhandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwOpenKeyTransactedEx(keyhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, openoptions : u32, transactionhandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] fn ZwOpenProcess(processhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, clientid : *const super::super::super::Win32::System::WindowsProgramming:: CLIENT_ID) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwOpenResourceManager(resourcemanagerhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, tmhandle : super::super::super::Win32::Foundation:: HANDLE, resourcemanagerguid : *const ::windows_sys::core::GUID, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwOpenSection(sectionhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwOpenSymbolicLinkObject(linkhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwOpenTimer(timerhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwOpenTransaction(transactionhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, uow : *const ::windows_sys::core::GUID, tmhandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] fn ZwOpenTransactionManager(tmhandle : *mut super::super::super::Win32::Foundation:: HANDLE, desiredaccess : u32, objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, logfilename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, tmidentity : *const ::windows_sys::core::GUID, openoptions : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Power"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] fn ZwPowerInformation(informationlevel : super::super::super::Win32::System::Power:: POWER_INFORMATION_LEVEL, inputbuffer : *const ::core::ffi::c_void, inputbufferlength : u32, outputbuffer : *mut ::core::ffi::c_void, outputbufferlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwPrePrepareComplete(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwPrePrepareEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwPrepareComplete(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwPrepareEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_IO", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`, `\"Win32_System_WindowsProgramming\"`"] fn ZwQueryInformationByName(objectattributes : *const super::super::Foundation:: OBJECT_ATTRIBUTES, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn ZwQueryInformationEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, enlistmentinformationclass : super::super::super::Win32::System::SystemServices:: ENLISTMENT_INFORMATION_CLASS, enlistmentinformation : *mut ::core::ffi::c_void, enlistmentinformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`, `\"Win32_System_WindowsProgramming\"`"] fn ZwQueryInformationFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fileinformation : *mut ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn ZwQueryInformationResourceManager(resourcemanagerhandle : super::super::super::Win32::Foundation:: HANDLE, resourcemanagerinformationclass : super::super::super::Win32::System::SystemServices:: RESOURCEMANAGER_INFORMATION_CLASS, resourcemanagerinformation : *mut ::core::ffi::c_void, resourcemanagerinformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn ZwQueryInformationTransaction(transactionhandle : super::super::super::Win32::Foundation:: HANDLE, transactioninformationclass : super::super::super::Win32::System::SystemServices:: TRANSACTION_INFORMATION_CLASS, transactioninformation : *mut ::core::ffi::c_void, transactioninformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn ZwQueryInformationTransactionManager(transactionmanagerhandle : super::super::super::Win32::Foundation:: HANDLE, transactionmanagerinformationclass : super::super::super::Win32::System::SystemServices:: TRANSACTIONMANAGER_INFORMATION_CLASS, transactionmanagerinformation : *mut ::core::ffi::c_void, transactionmanagerinformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwQueryKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, keyinformationclass : KEY_INFORMATION_CLASS, keyinformation : *mut ::core::ffi::c_void, length : u32, resultlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwQuerySymbolicLinkObject(linkhandle : super::super::super::Win32::Foundation:: HANDLE, linktarget : *mut super::super::super::Win32::Foundation:: UNICODE_STRING, returnedlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwQueryValueKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, valuename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, keyvalueinformationclass : KEY_VALUE_INFORMATION_CLASS, keyvalueinformation : *mut ::core::ffi::c_void, length : u32, resultlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwReadFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, buffer : *mut ::core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwReadOnlyEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwRecoverEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, enlistmentkey : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwRecoverResourceManager(resourcemanagerhandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwRecoverTransactionManager(transactionmanagerhandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwRenameKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, newname : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwRestoreKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, filehandle : super::super::super::Win32::Foundation:: HANDLE, flags : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwRollbackComplete(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwRollbackEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwRollbackTransaction(transactionhandle : super::super::super::Win32::Foundation:: HANDLE, wait : super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwRollforwardTransactionManager(transactionmanagerhandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwSaveKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, filehandle : super::super::super::Win32::Foundation:: HANDLE) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwSaveKeyEx(keyhandle : super::super::super::Win32::Foundation:: HANDLE, filehandle : super::super::super::Win32::Foundation:: HANDLE, format : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn ZwSetInformationEnlistment(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, enlistmentinformationclass : super::super::super::Win32::System::SystemServices:: ENLISTMENT_INFORMATION_CLASS, enlistmentinformation : *const ::core::ffi::c_void, enlistmentinformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`, `\"Win32_System_WindowsProgramming\"`"] fn ZwSetInformationFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, fileinformation : *const ::core::ffi::c_void, length : u32, fileinformationclass : super::super::super::Win32::System::WindowsProgramming:: FILE_INFORMATION_CLASS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn ZwSetInformationResourceManager(resourcemanagerhandle : super::super::super::Win32::Foundation:: HANDLE, resourcemanagerinformationclass : super::super::super::Win32::System::SystemServices:: RESOURCEMANAGER_INFORMATION_CLASS, resourcemanagerinformation : *const ::core::ffi::c_void, resourcemanagerinformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn ZwSetInformationTransaction(transactionhandle : super::super::super::Win32::Foundation:: HANDLE, transactioninformationclass : super::super::super::Win32::System::SystemServices:: TRANSACTION_INFORMATION_CLASS, transactioninformation : *const ::core::ffi::c_void, transactioninformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn ZwSetInformationTransactionManager(tmhandle : super::super::super::Win32::Foundation:: HANDLE, transactionmanagerinformationclass : super::super::super::Win32::System::SystemServices:: TRANSACTIONMANAGER_INFORMATION_CLASS, transactionmanagerinformation : *const ::core::ffi::c_void, transactionmanagerinformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwSetTimer(timerhandle : super::super::super::Win32::Foundation:: HANDLE, duetime : *const i64, timerapcroutine : PTIMER_APC_ROUTINE, timercontext : *const ::core::ffi::c_void, resumetimer : super::super::super::Win32::Foundation:: BOOLEAN, period : i32, previousstate : *mut super::super::super::Win32::Foundation:: BOOLEAN) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwSetTimerEx(timerhandle : super::super::super::Win32::Foundation:: HANDLE, timersetinformationclass : TIMER_SET_INFORMATION_CLASS, timersetinformation : *mut ::core::ffi::c_void, timersetinformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwSetValueKey(keyhandle : super::super::super::Win32::Foundation:: HANDLE, valuename : *const super::super::super::Win32::Foundation:: UNICODE_STRING, titleindex : u32, r#type : u32, data : *const ::core::ffi::c_void, datasize : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwSinglePhaseReject(enlistmenthandle : super::super::super::Win32::Foundation:: HANDLE, tmvirtualclock : *const i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwTerminateProcess(processhandle : super::super::super::Win32::Foundation:: HANDLE, exitstatus : super::super::super::Win32::Foundation:: NTSTATUS) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwUnloadDriver(driverservicename : *const super::super::super::Win32::Foundation:: UNICODE_STRING) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwUnmapViewOfSection(processhandle : super::super::super::Win32::Foundation:: HANDLE, baseaddress : *const ::core::ffi::c_void) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ZwWriteFile(filehandle : super::super::super::Win32::Foundation:: HANDLE, event : super::super::super::Win32::Foundation:: HANDLE, apcroutine : super::super::super::Win32::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, iostatusblock : *mut super::super::super::Win32::System::IO:: IO_STATUS_BLOCK, buffer : *const ::core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn vDbgPrintEx(componentid : u32, level : u32, format : ::windows_sys::core::PCSTR, arglist : *const i8) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn vDbgPrintExWithPrefix(prefix : ::windows_sys::core::PCSTR, componentid : u32, level : u32, format : ::windows_sys::core::PCSTR, arglist : *const i8) -> u32); +pub const ACPIBus: INTERFACE_TYPE = 17i32; +pub const ADAPTER_INFO_API_BYPASS: u32 = 2u32; +pub const ADAPTER_INFO_SYNCHRONOUS_CALLBACK: u32 = 1u32; +pub const ALLOC_DATA_PRAGMA: u32 = 1u32; +pub const ALLOC_PRAGMA: u32 = 1u32; +pub const ANY_SIZE: u32 = 1u32; +pub const APC_LEVEL: u32 = 1u32; +pub const ARBITER_FLAG_BOOT_CONFIG: u32 = 1u32; +pub const ARBITER_FLAG_OTHER_ENUM: u32 = 4u32; +pub const ARBITER_FLAG_ROOT_ENUM: u32 = 2u32; +pub const ARBITER_PARTIAL: u32 = 1u32; +pub const ARM64_PCR_RESERVED_MASK: u32 = 4095u32; +pub const ARM_PROCESSOR_ERROR_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe19e3d16_bc11_11e4_9caa_c2051d5d46b0); +pub const ATS_DEVICE_SVM_OPTOUT: u32 = 1u32; +pub const AccessFlagFault: FAULT_INFORMATION_ARM64_TYPE = 5i32; +pub const AddressSizeFault: FAULT_INFORMATION_ARM64_TYPE = 1i32; +pub const AgpControl: EXTENDED_AGP_REGISTER = 1i32; +pub const AllLoggerHandlesClass: TRACE_INFORMATION_CLASS = 6i32; +pub const AperturePageSize: EXTENDED_AGP_REGISTER = 3i32; +pub const ApertureSize: EXTENDED_AGP_REGISTER = 2i32; +pub const ApicDestinationModeLogicalClustered: HAL_APIC_DESTINATION_MODE = 3i32; +pub const ApicDestinationModeLogicalFlat: HAL_APIC_DESTINATION_MODE = 2i32; +pub const ApicDestinationModePhysical: HAL_APIC_DESTINATION_MODE = 1i32; +pub const ApicDestinationModeUnknown: HAL_APIC_DESTINATION_MODE = 4i32; +pub const ArbiterActionAddReserved: ARBITER_ACTION = 8i32; +pub const ArbiterActionBootAllocation: ARBITER_ACTION = 9i32; +pub const ArbiterActionCommitAllocation: ARBITER_ACTION = 2i32; +pub const ArbiterActionQueryAllocatedResources: ARBITER_ACTION = 4i32; +pub const ArbiterActionQueryArbitrate: ARBITER_ACTION = 7i32; +pub const ArbiterActionQueryConflict: ARBITER_ACTION = 6i32; +pub const ArbiterActionRetestAllocation: ARBITER_ACTION = 1i32; +pub const ArbiterActionRollbackAllocation: ARBITER_ACTION = 3i32; +pub const ArbiterActionTestAllocation: ARBITER_ACTION = 0i32; +pub const ArbiterActionWriteReservedResources: ARBITER_ACTION = 5i32; +pub const ArbiterRequestHalReported: ARBITER_REQUEST_SOURCE = 1i32; +pub const ArbiterRequestLegacyAssigned: ARBITER_REQUEST_SOURCE = 2i32; +pub const ArbiterRequestLegacyReported: ARBITER_REQUEST_SOURCE = 0i32; +pub const ArbiterRequestPnpDetected: ARBITER_REQUEST_SOURCE = 3i32; +pub const ArbiterRequestPnpEnumerated: ARBITER_REQUEST_SOURCE = 4i32; +pub const ArbiterRequestUndefined: ARBITER_REQUEST_SOURCE = -1i32; +pub const ArbiterResultExternalConflict: ARBITER_RESULT = 1i32; +pub const ArbiterResultNullRequest: ARBITER_RESULT = 2i32; +pub const ArbiterResultSuccess: ARBITER_RESULT = 0i32; +pub const ArbiterResultUndefined: ARBITER_RESULT = -1i32; +pub const ArcSystem: CONFIGURATION_TYPE = 0i32; +pub const AssignSecurityDescriptor: SECURITY_OPERATION_CODE = 3i32; +pub const AudioController: CONFIGURATION_TYPE = 23i32; +pub const BMC_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x487565ba_6494_4367_95ca_4eff893522f6); +pub const BOOT_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d61a466_ab40_409a_a698_f362d464b38f); +pub const BackgroundWorkQueue: WORK_QUEUE_TYPE = 4i32; +pub const BdCbClassificationEnd: BDCB_CLASSIFICATION = 4i32; +pub const BdCbClassificationKnownBadImage: BDCB_CLASSIFICATION = 2i32; +pub const BdCbClassificationKnownBadImageBootCritical: BDCB_CLASSIFICATION = 3i32; +pub const BdCbClassificationKnownGoodImage: BDCB_CLASSIFICATION = 1i32; +pub const BdCbClassificationUnknownImage: BDCB_CLASSIFICATION = 0i32; +pub const BdCbInitializeImage: BDCB_CALLBACK_TYPE = 1i32; +pub const BdCbStatusPrepareForDependencyLoad: BDCB_STATUS_UPDATE_TYPE = 0i32; +pub const BdCbStatusPrepareForDriverLoad: BDCB_STATUS_UPDATE_TYPE = 1i32; +pub const BdCbStatusPrepareForUnload: BDCB_STATUS_UPDATE_TYPE = 2i32; +pub const BdCbStatusUpdate: BDCB_CALLBACK_TYPE = 0i32; +pub const BoundExceptionContinueSearch: BOUND_CALLBACK_STATUS = 0i32; +pub const BoundExceptionError: BOUND_CALLBACK_STATUS = 2i32; +pub const BoundExceptionHandled: BOUND_CALLBACK_STATUS = 1i32; +pub const BoundExceptionMaximum: BOUND_CALLBACK_STATUS = 3i32; +pub const BufferEmpty: KBUGCHECK_BUFFER_DUMP_STATE = 0i32; +pub const BufferFinished: KBUGCHECK_BUFFER_DUMP_STATE = 3i32; +pub const BufferIncomplete: KBUGCHECK_BUFFER_DUMP_STATE = 4i32; +pub const BufferInserted: KBUGCHECK_BUFFER_DUMP_STATE = 1i32; +pub const BufferStarted: KBUGCHECK_BUFFER_DUMP_STATE = 2i32; +pub const BusQueryCompatibleIDs: BUS_QUERY_ID_TYPE = 2i32; +pub const BusQueryContainerID: BUS_QUERY_ID_TYPE = 5i32; +pub const BusQueryDeviceID: BUS_QUERY_ID_TYPE = 0i32; +pub const BusQueryDeviceSerialNumber: BUS_QUERY_ID_TYPE = 4i32; +pub const BusQueryHardwareIDs: BUS_QUERY_ID_TYPE = 1i32; +pub const BusQueryInstanceID: BUS_QUERY_ID_TYPE = 3i32; +pub const BusRelations: DEVICE_RELATION_TYPE = 0i32; +pub const BusWidth32Bits: PCI_BUS_WIDTH = 0i32; +pub const BusWidth64Bits: PCI_BUS_WIDTH = 1i32; +pub const CBus: INTERFACE_TYPE = 9i32; +pub const CLFS_MAX_CONTAINER_INFO: u32 = 256u32; +pub const CLFS_SCAN_BACKWARD: u8 = 4u8; +pub const CLFS_SCAN_BUFFERED: u8 = 32u8; +pub const CLFS_SCAN_CLOSE: u8 = 8u8; +pub const CLFS_SCAN_FORWARD: u8 = 2u8; +pub const CLFS_SCAN_INIT: u8 = 1u8; +pub const CLFS_SCAN_INITIALIZED: u8 = 16u8; +pub const CLOCK1_LEVEL: u32 = 28u32; +pub const CLOCK2_LEVEL: u32 = 28u32; +pub const CLOCK_LEVEL: u32 = 28u32; +pub const CMCI_LEVEL: u32 = 5u32; +pub const CMCI_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x919448b2_3739_4b7f_a8f1_e0062805c2a3); +pub const CMC_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2dce8bb1_bdd7_450e_b9ad_9cf4ebd4f890); +pub const CM_RESOURCE_CONNECTION_CLASS_FUNCTION_CONFIG: u32 = 3u32; +pub const CM_RESOURCE_CONNECTION_CLASS_GPIO: u32 = 1u32; +pub const CM_RESOURCE_CONNECTION_CLASS_SERIAL: u32 = 2u32; +pub const CM_RESOURCE_CONNECTION_TYPE_FUNCTION_CONFIG: u32 = 1u32; +pub const CM_RESOURCE_CONNECTION_TYPE_GPIO_IO: u32 = 2u32; +pub const CM_RESOURCE_CONNECTION_TYPE_SERIAL_I2C: u32 = 1u32; +pub const CM_RESOURCE_CONNECTION_TYPE_SERIAL_SPI: u32 = 2u32; +pub const CM_RESOURCE_CONNECTION_TYPE_SERIAL_UART: u32 = 3u32; +pub const CM_RESOURCE_DMA_16: u32 = 1u32; +pub const CM_RESOURCE_DMA_32: u32 = 2u32; +pub const CM_RESOURCE_DMA_8: u32 = 0u32; +pub const CM_RESOURCE_DMA_8_AND_16: u32 = 4u32; +pub const CM_RESOURCE_DMA_BUS_MASTER: u32 = 8u32; +pub const CM_RESOURCE_DMA_TYPE_A: u32 = 16u32; +pub const CM_RESOURCE_DMA_TYPE_B: u32 = 32u32; +pub const CM_RESOURCE_DMA_TYPE_F: u32 = 64u32; +pub const CM_RESOURCE_DMA_V3: u32 = 128u32; +pub const CM_RESOURCE_INTERRUPT_LATCHED: u32 = 1u32; +pub const CM_RESOURCE_INTERRUPT_LEVEL_LATCHED_BITS: u32 = 1u32; +pub const CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE: u32 = 0u32; +pub const CM_RESOURCE_INTERRUPT_MESSAGE: u32 = 2u32; +pub const CM_RESOURCE_INTERRUPT_POLICY_INCLUDED: u32 = 4u32; +pub const CM_RESOURCE_INTERRUPT_SECONDARY_INTERRUPT: u32 = 16u32; +pub const CM_RESOURCE_INTERRUPT_WAKE_HINT: u32 = 32u32; +pub const CM_RESOURCE_MEMORY_24: u32 = 16u32; +pub const CM_RESOURCE_MEMORY_BAR: u32 = 128u32; +pub const CM_RESOURCE_MEMORY_CACHEABLE: u32 = 32u32; +pub const CM_RESOURCE_MEMORY_COMBINEDWRITE: u32 = 8u32; +pub const CM_RESOURCE_MEMORY_COMPAT_FOR_INACCESSIBLE_RANGE: u32 = 256u32; +pub const CM_RESOURCE_MEMORY_LARGE: u32 = 3584u32; +pub const CM_RESOURCE_MEMORY_LARGE_40: u32 = 512u32; +pub const CM_RESOURCE_MEMORY_LARGE_40_MAXLEN: u64 = 1099511627520u64; +pub const CM_RESOURCE_MEMORY_LARGE_48: u32 = 1024u32; +pub const CM_RESOURCE_MEMORY_LARGE_48_MAXLEN: u64 = 281474976645120u64; +pub const CM_RESOURCE_MEMORY_LARGE_64: u32 = 2048u32; +pub const CM_RESOURCE_MEMORY_LARGE_64_MAXLEN: u64 = 18446744069414584320u64; +pub const CM_RESOURCE_MEMORY_PREFETCHABLE: u32 = 4u32; +pub const CM_RESOURCE_MEMORY_READ_ONLY: u32 = 1u32; +pub const CM_RESOURCE_MEMORY_READ_WRITE: u32 = 0u32; +pub const CM_RESOURCE_MEMORY_WINDOW_DECODE: u32 = 64u32; +pub const CM_RESOURCE_MEMORY_WRITEABILITY_MASK: u32 = 3u32; +pub const CM_RESOURCE_MEMORY_WRITE_ONLY: u32 = 2u32; +pub const CM_RESOURCE_PORT_10_BIT_DECODE: u32 = 4u32; +pub const CM_RESOURCE_PORT_12_BIT_DECODE: u32 = 8u32; +pub const CM_RESOURCE_PORT_16_BIT_DECODE: u32 = 16u32; +pub const CM_RESOURCE_PORT_BAR: u32 = 256u32; +pub const CM_RESOURCE_PORT_IO: u32 = 1u32; +pub const CM_RESOURCE_PORT_MEMORY: u32 = 0u32; +pub const CM_RESOURCE_PORT_PASSIVE_DECODE: u32 = 64u32; +pub const CM_RESOURCE_PORT_POSITIVE_DECODE: u32 = 32u32; +pub const CM_RESOURCE_PORT_WINDOW_DECODE: u32 = 128u32; +pub const CM_SERVICE_MEASURED_BOOT_LOAD: u32 = 32u32; +pub const CONNECT_CURRENT_VERSION: u32 = 5u32; +pub const CONNECT_FULLY_SPECIFIED: u32 = 1u32; +pub const CONNECT_FULLY_SPECIFIED_GROUP: u32 = 4u32; +pub const CONNECT_LINE_BASED: u32 = 2u32; +pub const CONNECT_MESSAGE_BASED: u32 = 3u32; +pub const CONNECT_MESSAGE_BASED_PASSIVE: u32 = 5u32; +pub const CP15_PCR_RESERVED_MASK: u32 = 4095u32; +pub const CPER_EMPTY_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000000); +pub const CPE_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4e292f96_d843_4a55_a8c2_d481f27ebeee); +pub const CP_GET_ERROR: u32 = 2u32; +pub const CP_GET_NODATA: u32 = 1u32; +pub const CP_GET_SUCCESS: u32 = 0u32; +pub const CardPresent: PCI_EXPRESS_CARD_PRESENCE = 1i32; +pub const CbusConfiguration: BUS_DATA_TYPE = 3i32; +pub const CdromController: CONFIGURATION_TYPE = 15i32; +pub const CentralProcessor: CONFIGURATION_TYPE = 1i32; +pub const ClfsClientRecord: u8 = 3u8; +pub const ClfsContainerActive: u32 = 4u32; +pub const ClfsContainerActivePendingDelete: u32 = 8u32; +pub const ClfsContainerInactive: u32 = 2u32; +pub const ClfsContainerInitializing: u32 = 1u32; +pub const ClfsContainerPendingArchive: u32 = 16u32; +pub const ClfsContainerPendingArchiveAndDelete: u32 = 32u32; +pub const ClfsDataRecord: u8 = 1u8; +pub const ClfsNullRecord: u8 = 0u8; +pub const ClfsRestartRecord: u8 = 2u8; +pub const ClsContainerActive: u32 = 4u32; +pub const ClsContainerActivePendingDelete: u32 = 8u32; +pub const ClsContainerInactive: u32 = 2u32; +pub const ClsContainerInitializing: u32 = 1u32; +pub const ClsContainerPendingArchive: u32 = 16u32; +pub const ClsContainerPendingArchiveAndDelete: u32 = 32u32; +pub const CmResourceShareDeviceExclusive: CM_SHARE_DISPOSITION = 1i32; +pub const CmResourceShareDriverExclusive: CM_SHARE_DISPOSITION = 2i32; +pub const CmResourceShareShared: CM_SHARE_DISPOSITION = 3i32; +pub const CmResourceShareUndetermined: CM_SHARE_DISPOSITION = 0i32; +pub const CmResourceTypeBusNumber: u32 = 6u32; +pub const CmResourceTypeConfigData: u32 = 128u32; +pub const CmResourceTypeConnection: u32 = 132u32; +pub const CmResourceTypeDevicePrivate: u32 = 129u32; +pub const CmResourceTypeDeviceSpecific: u32 = 5u32; +pub const CmResourceTypeDma: u32 = 4u32; +pub const CmResourceTypeInterrupt: u32 = 2u32; +pub const CmResourceTypeMaximum: u32 = 8u32; +pub const CmResourceTypeMemory: u32 = 3u32; +pub const CmResourceTypeMemoryLarge: u32 = 7u32; +pub const CmResourceTypeMfCardConfig: u32 = 131u32; +pub const CmResourceTypeNonArbitrated: u32 = 128u32; +pub const CmResourceTypeNull: u32 = 0u32; +pub const CmResourceTypePcCardConfig: u32 = 130u32; +pub const CmResourceTypePort: u32 = 1u32; +pub const Cmos: BUS_DATA_TYPE = 0i32; +pub const CommonBufferConfigTypeHardwareAccessPermissions: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE = 2i32; +pub const CommonBufferConfigTypeLogicalAddressLimits: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE = 0i32; +pub const CommonBufferConfigTypeMax: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE = 3i32; +pub const CommonBufferConfigTypeSubSection: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE = 1i32; +pub const CommonBufferHardwareAccessMax: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE = 3i32; +pub const CommonBufferHardwareAccessReadOnly: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE = 0i32; +pub const CommonBufferHardwareAccessReadWrite: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE = 2i32; +pub const CommonBufferHardwareAccessWriteOnly: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE = 1i32; +pub const Compatible: DMA_SPEED = 0i32; +pub const ConfigurationSpaceUndefined: BUS_DATA_TYPE = -1i32; +pub const ContinueCompletion: IO_COMPLETION_ROUTINE_RESULT = 0i32; +pub const CreateFileTypeMailslot: CREATE_FILE_TYPE = 2i32; +pub const CreateFileTypeNamedPipe: CREATE_FILE_TYPE = 1i32; +pub const CreateFileTypeNone: CREATE_FILE_TYPE = 0i32; +pub const CriticalWorkQueue: WORK_QUEUE_TYPE = 0i32; +pub const CustomPriorityWorkQueue: WORK_QUEUE_TYPE = 32i32; +pub const D3COLD_SUPPORT_INTERFACE_VERSION: u32 = 1u32; +pub const DBG_DEVICE_FLAG_BARS_MAPPED: u32 = 2u32; +pub const DBG_DEVICE_FLAG_HAL_SCRATCH_ALLOCATED: u32 = 1u32; +pub const DBG_DEVICE_FLAG_HOST_VISIBLE_ALLOCATED: u32 = 32u32; +pub const DBG_DEVICE_FLAG_SCRATCH_ALLOCATED: u32 = 4u32; +pub const DBG_DEVICE_FLAG_SYNTHETIC: u32 = 16u32; +pub const DBG_DEVICE_FLAG_UNCACHED_MEMORY: u32 = 8u32; +pub const DBG_STATUS_BUGCHECK_FIRST: u32 = 3u32; +pub const DBG_STATUS_BUGCHECK_SECOND: u32 = 4u32; +pub const DBG_STATUS_CONTROL_C: u32 = 1u32; +pub const DBG_STATUS_DEBUG_CONTROL: u32 = 6u32; +pub const DBG_STATUS_FATAL: u32 = 5u32; +pub const DBG_STATUS_SYSRQ: u32 = 2u32; +pub const DBG_STATUS_WORKER: u32 = 7u32; +pub const DEFAULT_DEVICE_DRIVER_CREATOR_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57217c8d_5e66_44fb_8033_9b74cacedf5b); +pub const DEVICE_DESCRIPTION_VERSION: u32 = 0u32; +pub const DEVICE_DESCRIPTION_VERSION1: u32 = 1u32; +pub const DEVICE_DESCRIPTION_VERSION2: u32 = 2u32; +pub const DEVICE_DESCRIPTION_VERSION3: u32 = 3u32; +pub const DEVICE_DRIVER_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0033f803_2e70_4e88_992c_6f26daf3db7a); +pub const DEVICE_INTERFACE_INCLUDE_NONACTIVE: u32 = 1u32; +pub const DEVICE_RESET_INTERFACE_VERSION: u32 = 1u32; +pub const DEVICE_RESET_INTERFACE_VERSION_1: u32 = 1u32; +pub const DEVICE_RESET_INTERFACE_VERSION_2: u32 = 2u32; +pub const DEVICE_RESET_INTERFACE_VERSION_3: u32 = 3u32; +pub const DIRECTORY_CREATE_OBJECT: u32 = 4u32; +pub const DIRECTORY_CREATE_SUBDIRECTORY: u32 = 8u32; +pub const DIRECTORY_QUERY: u32 = 1u32; +pub const DIRECTORY_TRAVERSE: u32 = 2u32; +pub const DISPATCH_LEVEL: u32 = 2u32; +pub const DMAV3_TRANFER_WIDTH_128: u32 = 4u32; +pub const DMAV3_TRANFER_WIDTH_16: u32 = 1u32; +pub const DMAV3_TRANFER_WIDTH_256: u32 = 5u32; +pub const DMAV3_TRANFER_WIDTH_32: u32 = 2u32; +pub const DMAV3_TRANFER_WIDTH_64: u32 = 3u32; +pub const DMAV3_TRANFER_WIDTH_8: u32 = 0u32; +pub const DMA_ADAPTER_INFO_VERSION1: u32 = 1u32; +pub const DMA_FAIL_ON_BOUNCE: u32 = 4u32; +pub const DMA_IOMMU_INTERFACE_EX_VERSION: u32 = 1u32; +pub const DMA_IOMMU_INTERFACE_EX_VERSION_1: u32 = 1u32; +pub const DMA_IOMMU_INTERFACE_EX_VERSION_2: u32 = 2u32; +pub const DMA_IOMMU_INTERFACE_EX_VERSION_MAX: u32 = 2u32; +pub const DMA_IOMMU_INTERFACE_EX_VERSION_MIN: u32 = 1u32; +pub const DMA_IOMMU_INTERFACE_VERSION: u32 = 1u32; +pub const DMA_IOMMU_INTERFACE_VERSION_1: u32 = 1u32; +pub const DMA_SYNCHRONOUS_CALLBACK: u32 = 1u32; +pub const DMA_TRANSFER_CONTEXT_SIZE_V1: u32 = 128u32; +pub const DMA_TRANSFER_CONTEXT_VERSION1: u32 = 1u32; +pub const DMA_TRANSFER_INFO_VERSION1: u32 = 1u32; +pub const DMA_TRANSFER_INFO_VERSION2: u32 = 2u32; +pub const DMA_ZERO_BUFFERS: u32 = 2u32; +pub const DOMAIN_COMMON_BUFFER_LARGE_PAGE: u32 = 1u32; +pub const DPC_NORMAL: u32 = 0u32; +pub const DPC_THREADED: u32 = 1u32; +pub const DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK_REVISION_1: u32 = 1u32; +pub const DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK_SIGNATURE: u32 = 2931740382u32; +pub const DRIVER_VERIFIER_FORCE_IRQL_CHECKING: u32 = 2u32; +pub const DRIVER_VERIFIER_INJECT_ALLOCATION_FAILURES: u32 = 4u32; +pub const DRIVER_VERIFIER_IO_CHECKING: u32 = 16u32; +pub const DRIVER_VERIFIER_SPECIAL_POOLING: u32 = 1u32; +pub const DRIVER_VERIFIER_TRACK_POOL_ALLOCATIONS: u32 = 8u32; +pub const DRS_LEVEL: u32 = 14u32; +pub const DRVO_BOOTREINIT_REGISTERED: u32 = 32u32; +pub const DRVO_BUILTIN_DRIVER: u32 = 4u32; +pub const DRVO_INITIALIZED: u32 = 16u32; +pub const DRVO_LEGACY_DRIVER: u32 = 2u32; +pub const DRVO_LEGACY_RESOURCES: u32 = 64u32; +pub const DRVO_REINIT_REGISTERED: u32 = 8u32; +pub const DRVO_UNLOAD_INVOKED: u32 = 1u32; +pub const DUPLICATE_SAME_ATTRIBUTES: u32 = 4u32; +pub const DeallocateObject: IO_ALLOCATION_ACTION = 2i32; +pub const DeallocateObjectKeepRegisters: IO_ALLOCATION_ACTION = 3i32; +pub const DelayExecution: KWAIT_REASON = 4i32; +pub const DelayedWorkQueue: WORK_QUEUE_TYPE = 1i32; +pub const DeleteSecurityDescriptor: SECURITY_OPERATION_CODE = 2i32; +pub const DeviceDirectoryData: DEVICE_DIRECTORY_TYPE = 0i32; +pub const DevicePowerState: POWER_STATE_TYPE = 1i32; +pub const DevicePropertyAddress: DEVICE_REGISTRY_PROPERTY = 16i32; +pub const DevicePropertyAllocatedResources: DEVICE_REGISTRY_PROPERTY = 21i32; +pub const DevicePropertyBootConfiguration: DEVICE_REGISTRY_PROPERTY = 3i32; +pub const DevicePropertyBootConfigurationTranslated: DEVICE_REGISTRY_PROPERTY = 4i32; +pub const DevicePropertyBusNumber: DEVICE_REGISTRY_PROPERTY = 14i32; +pub const DevicePropertyBusTypeGuid: DEVICE_REGISTRY_PROPERTY = 8204i32; +pub const DevicePropertyClassGuid: DEVICE_REGISTRY_PROPERTY = 4102i32; +pub const DevicePropertyClassName: DEVICE_REGISTRY_PROPERTY = 4101i32; +pub const DevicePropertyCompatibleIDs: DEVICE_REGISTRY_PROPERTY = 16386i32; +pub const DevicePropertyContainerID: DEVICE_REGISTRY_PROPERTY = 4118i32; +pub const DevicePropertyDeviceDescription: DEVICE_REGISTRY_PROPERTY = 4096i32; +pub const DevicePropertyDriverKeyName: DEVICE_REGISTRY_PROPERTY = 4103i32; +pub const DevicePropertyEnumeratorName: DEVICE_REGISTRY_PROPERTY = 4111i32; +pub const DevicePropertyFriendlyName: DEVICE_REGISTRY_PROPERTY = 4105i32; +pub const DevicePropertyHardwareID: DEVICE_REGISTRY_PROPERTY = 16385i32; +pub const DevicePropertyInstallState: DEVICE_REGISTRY_PROPERTY = 18i32; +pub const DevicePropertyLegacyBusType: DEVICE_REGISTRY_PROPERTY = 13i32; +pub const DevicePropertyLocationInformation: DEVICE_REGISTRY_PROPERTY = 4106i32; +pub const DevicePropertyManufacturer: DEVICE_REGISTRY_PROPERTY = 4104i32; +pub const DevicePropertyPhysicalDeviceObjectName: DEVICE_REGISTRY_PROPERTY = 4107i32; +pub const DevicePropertyRemovalPolicy: DEVICE_REGISTRY_PROPERTY = 19i32; +pub const DevicePropertyResourceRequirements: DEVICE_REGISTRY_PROPERTY = 20i32; +pub const DevicePropertyUINumber: DEVICE_REGISTRY_PROPERTY = 17i32; +pub const DeviceTextDescription: DEVICE_TEXT_TYPE = 0i32; +pub const DeviceTextLocationInformation: DEVICE_TEXT_TYPE = 1i32; +pub const DeviceUsageTypeBoot: DEVICE_USAGE_NOTIFICATION_TYPE = 4i32; +pub const DeviceUsageTypeDumpFile: DEVICE_USAGE_NOTIFICATION_TYPE = 3i32; +pub const DeviceUsageTypeGuestAssigned: DEVICE_USAGE_NOTIFICATION_TYPE = 6i32; +pub const DeviceUsageTypeHibernation: DEVICE_USAGE_NOTIFICATION_TYPE = 2i32; +pub const DeviceUsageTypePaging: DEVICE_USAGE_NOTIFICATION_TYPE = 1i32; +pub const DeviceUsageTypePostDisplay: DEVICE_USAGE_NOTIFICATION_TYPE = 5i32; +pub const DeviceUsageTypeUndefined: DEVICE_USAGE_NOTIFICATION_TYPE = 0i32; +pub const DeviceWakeDepthD0: DEVICE_WAKE_DEPTH = 1i32; +pub const DeviceWakeDepthD1: DEVICE_WAKE_DEPTH = 2i32; +pub const DeviceWakeDepthD2: DEVICE_WAKE_DEPTH = 3i32; +pub const DeviceWakeDepthD3cold: DEVICE_WAKE_DEPTH = 5i32; +pub const DeviceWakeDepthD3hot: DEVICE_WAKE_DEPTH = 4i32; +pub const DeviceWakeDepthMaximum: DEVICE_WAKE_DEPTH = 6i32; +pub const DeviceWakeDepthNotWakeable: DEVICE_WAKE_DEPTH = 0i32; +pub const DirectoryNotifyExtendedInformation: DIRECTORY_NOTIFY_INFORMATION_CLASS = 2i32; +pub const DirectoryNotifyFullInformation: DIRECTORY_NOTIFY_INFORMATION_CLASS = 3i32; +pub const DirectoryNotifyInformation: DIRECTORY_NOTIFY_INFORMATION_CLASS = 1i32; +pub const DirectoryNotifyMaximumInformation: DIRECTORY_NOTIFY_INFORMATION_CLASS = 4i32; +pub const DisabledControl: NPEM_CONTROL_STANDARD_CONTROL_BIT = 11i32; +pub const DiskController: CONFIGURATION_TYPE = 13i32; +pub const DiskIoNotifyRoutinesClass: TRACE_INFORMATION_CLASS = 11i32; +pub const DiskPeripheral: CONFIGURATION_TYPE = 25i32; +pub const DisplayController: CONFIGURATION_TYPE = 19i32; +pub const DmaAborted: DMA_COMPLETION_STATUS = 1i32; +pub const DmaCancelled: DMA_COMPLETION_STATUS = 3i32; +pub const DmaComplete: DMA_COMPLETION_STATUS = 0i32; +pub const DmaError: DMA_COMPLETION_STATUS = 2i32; +pub const DockingInformation: CONFIGURATION_TYPE = 38i32; +pub const DomainConfigurationArm64: DOMAIN_CONFIGURATION_ARCH = 0i32; +pub const DomainConfigurationInvalid: DOMAIN_CONFIGURATION_ARCH = 2i32; +pub const DomainConfigurationX64: DOMAIN_CONFIGURATION_ARCH = 1i32; +pub const DomainTypeMax: IOMMU_DMA_DOMAIN_TYPE = 3i32; +pub const DomainTypePassThrough: IOMMU_DMA_DOMAIN_TYPE = 1i32; +pub const DomainTypeTranslate: IOMMU_DMA_DOMAIN_TYPE = 0i32; +pub const DomainTypeUnmanaged: IOMMU_DMA_DOMAIN_TYPE = 2i32; +pub const DriverDirectoryData: DRIVER_DIRECTORY_TYPE = 1i32; +pub const DriverDirectoryImage: DRIVER_DIRECTORY_TYPE = 0i32; +pub const DriverDirectorySharedData: DRIVER_DIRECTORY_TYPE = 2i32; +pub const DriverRegKeyParameters: DRIVER_REGKEY_TYPE = 0i32; +pub const DriverRegKeyPersistentState: DRIVER_REGKEY_TYPE = 1i32; +pub const DriverRegKeySharedPersistentState: DRIVER_REGKEY_TYPE = 2i32; +pub const DrvRtPoolNxOptIn: DRIVER_RUNTIME_INIT_FLAGS = 1i32; +pub const DtiAdapter: CONFIGURATION_TYPE = 11i32; +pub const EFLAG_SIGN: u32 = 32768u32; +pub const EFLAG_ZERO: u32 = 16384u32; +pub const EISA_EMPTY_SLOT: u32 = 131u32; +pub const EISA_FREE_FORM_DATA: u32 = 64u32; +pub const EISA_FUNCTION_ENABLED: u32 = 128u32; +pub const EISA_HAS_DMA_ENTRY: u32 = 8u32; +pub const EISA_HAS_IRQ_ENTRY: u32 = 4u32; +pub const EISA_HAS_MEMORY_ENTRY: u32 = 2u32; +pub const EISA_HAS_PORT_INIT_ENTRY: u32 = 32u32; +pub const EISA_HAS_PORT_RANGE: u32 = 16u32; +pub const EISA_HAS_TYPE_ENTRY: u32 = 1u32; +pub const EISA_INVALID_BIOS_CALL: u32 = 134u32; +pub const EISA_INVALID_CONFIGURATION: u32 = 130u32; +pub const EISA_INVALID_FUNCTION: u32 = 129u32; +pub const EISA_INVALID_SLOT: u32 = 128u32; +pub const EISA_MEMORY_TYPE_RAM: u32 = 1u32; +pub const EISA_MORE_ENTRIES: u32 = 128u32; +pub const EISA_SYSTEM_MEMORY: u32 = 0u32; +pub const ERROR_LOG_LIMIT_SIZE: u32 = 240u32; +pub const ERROR_MAJOR_REVISION_SAL_03_00: u32 = 0u32; +pub const ERROR_MEMORY_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe429faf2_3cb7_11d4_bca7_0080c73c8881); +pub const ERROR_MINOR_REVISION_SAL_03_00: u32 = 2u32; +pub const ERROR_PCI_BUS_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe429faf4_3cb7_11d4_bca7_0080c73c8881); +pub const ERROR_PCI_COMPONENT_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe429faf6_3cb7_11d4_bca7_0080c73c8881); +pub const ERROR_PLATFORM_BUS_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe429faf9_3cb7_11d4_bca7_0080c73c8881); +pub const ERROR_PLATFORM_HOST_CONTROLLER_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe429faf8_3cb7_11d4_bca7_0080c73c8881); +pub const ERROR_PLATFORM_SPECIFIC_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe429faf7_3cb7_11d4_bca7_0080c73c8881); +pub const ERROR_PROCESSOR_STATE_PARAMETER_BUS_CHECK_MASK: u32 = 1u32; +pub const ERROR_PROCESSOR_STATE_PARAMETER_BUS_CHECK_SHIFT: u32 = 61u32; +pub const ERROR_PROCESSOR_STATE_PARAMETER_CACHE_CHECK_MASK: u32 = 1u32; +pub const ERROR_PROCESSOR_STATE_PARAMETER_CACHE_CHECK_SHIFT: u32 = 59u32; +pub const ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_MASK: u32 = 1u32; +pub const ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_SHIFT: u32 = 63u32; +pub const ERROR_PROCESSOR_STATE_PARAMETER_REG_CHECK_MASK: u32 = 1u32; +pub const ERROR_PROCESSOR_STATE_PARAMETER_REG_CHECK_SHIFT: u32 = 62u32; +pub const ERROR_PROCESSOR_STATE_PARAMETER_TLB_CHECK_MASK: u32 = 1u32; +pub const ERROR_PROCESSOR_STATE_PARAMETER_TLB_CHECK_SHIFT: u32 = 60u32; +pub const ERROR_PROCESSOR_STATE_PARAMETER_UNKNOWN_CHECK_MASK: u32 = 1u32; +pub const ERROR_PROCESSOR_STATE_PARAMETER_UNKNOWN_CHECK_SHIFT: u32 = 63u32; +pub const ERROR_SMBIOS_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe429faf5_3cb7_11d4_bca7_0080c73c8881); +pub const ERROR_SYSTEM_EVENT_LOG_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe429faf3_3cb7_11d4_bca7_0080c73c8881); +pub const ERRTYP_BUS: u32 = 16u32; +pub const ERRTYP_CACHE: u32 = 6u32; +pub const ERRTYP_FLOW: u32 = 9u32; +pub const ERRTYP_FUNCTION: u32 = 7u32; +pub const ERRTYP_IMPROPER: u32 = 18u32; +pub const ERRTYP_INTERNAL: u32 = 1u32; +pub const ERRTYP_LOSSOFLOCKSTEP: u32 = 20u32; +pub const ERRTYP_MAP: u32 = 17u32; +pub const ERRTYP_MEM: u32 = 4u32; +pub const ERRTYP_PARITY: u32 = 22u32; +pub const ERRTYP_PATHERROR: u32 = 24u32; +pub const ERRTYP_POISONED: u32 = 26u32; +pub const ERRTYP_PROTOCOL: u32 = 23u32; +pub const ERRTYP_RESPONSE: u32 = 21u32; +pub const ERRTYP_SELFTEST: u32 = 8u32; +pub const ERRTYP_TIMEOUT: u32 = 25u32; +pub const ERRTYP_TLB: u32 = 5u32; +pub const ERRTYP_UNIMPL: u32 = 19u32; +pub const EVENT_QUERY_STATE: u32 = 1u32; +pub const EXCEPTION_ALIGNMENT_CHECK: u32 = 17u32; +pub const EXCEPTION_BOUND_CHECK: u32 = 5u32; +pub const EXCEPTION_CP_FAULT: u32 = 21u32; +pub const EXCEPTION_DEBUG: u32 = 1u32; +pub const EXCEPTION_DIVIDED_BY_ZERO: u32 = 0u32; +pub const EXCEPTION_DOUBLE_FAULT: u32 = 8u32; +pub const EXCEPTION_GP_FAULT: u32 = 13u32; +pub const EXCEPTION_INT3: u32 = 3u32; +pub const EXCEPTION_INVALID_OPCODE: u32 = 6u32; +pub const EXCEPTION_INVALID_TSS: u32 = 10u32; +pub const EXCEPTION_NMI: u32 = 2u32; +pub const EXCEPTION_NPX_ERROR: u32 = 16u32; +pub const EXCEPTION_NPX_NOT_AVAILABLE: u32 = 7u32; +pub const EXCEPTION_NPX_OVERRUN: u32 = 9u32; +pub const EXCEPTION_RESERVED_TRAP: u32 = 15u32; +pub const EXCEPTION_SEGMENT_NOT_PRESENT: u32 = 11u32; +pub const EXCEPTION_SE_FAULT: u32 = 23u32; +pub const EXCEPTION_SOFTWARE_ORIGINATE: u32 = 128u32; +pub const EXCEPTION_STACK_FAULT: u32 = 12u32; +pub const EXCEPTION_VIRTUALIZATION_FAULT: u32 = 32u32; +pub const EXTINT_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfe84086e_b557_43cf_ac1b_17982e078470); +pub const EX_CARR_ALLOCATE_NONPAGED_POOL: u32 = 1u32; +pub const EX_CARR_ALLOCATE_PAGED_POOL: u32 = 0u32; +pub const EX_CARR_DISABLE_EXPANSION: u32 = 2u32; +pub const EX_CREATE_FLAG_FILE_DEST_OPEN_FOR_COPY: u32 = 2u32; +pub const EX_CREATE_FLAG_FILE_SOURCE_OPEN_FOR_COPY: u32 = 1u32; +pub const EX_DEFAULT_PUSH_LOCK_FLAGS: u32 = 0u32; +pub const EX_LOOKASIDE_LIST_EX_FLAGS_FAIL_NO_RAISE: u32 = 2u32; +pub const EX_LOOKASIDE_LIST_EX_FLAGS_RAISE_ON_FAIL: u32 = 1u32; +pub const EX_MAXIMUM_LOOKASIDE_DEPTH_BASE: u32 = 256u32; +pub const EX_MAXIMUM_LOOKASIDE_DEPTH_LIMIT: u32 = 1024u32; +pub const EX_RUNDOWN_ACTIVE: u32 = 1u32; +pub const EX_RUNDOWN_COUNT_SHIFT: u32 = 1u32; +pub const EX_TIMER_HIGH_RESOLUTION: u32 = 4u32; +pub const EX_TIMER_NO_WAKE: u32 = 8u32; +pub const Eisa: INTERFACE_TYPE = 2i32; +pub const EisaAdapter: CONFIGURATION_TYPE = 8i32; +pub const EisaConfiguration: BUS_DATA_TYPE = 1i32; +pub const EjectionRelations: DEVICE_RELATION_TYPE = 1i32; +pub const EndAlternatives: ALTERNATIVE_ARCHITECTURE_TYPE = 2i32; +pub const EventCategoryDeviceInterfaceChange: IO_NOTIFICATION_EVENT_CATEGORY = 2i32; +pub const EventCategoryHardwareProfileChange: IO_NOTIFICATION_EVENT_CATEGORY = 1i32; +pub const EventCategoryKernelSoftRestart: IO_NOTIFICATION_EVENT_CATEGORY = 4i32; +pub const EventCategoryReserved: IO_NOTIFICATION_EVENT_CATEGORY = 0i32; +pub const EventCategoryTargetDeviceChange: IO_NOTIFICATION_EVENT_CATEGORY = 3i32; +pub const EventLoggerHandleClass: TRACE_INFORMATION_CLASS = 5i32; +pub const Executive: KWAIT_REASON = 0i32; +pub const ExternalFault: FAULT_INFORMATION_ARM64_TYPE = 3i32; +pub const FILE_128_BYTE_ALIGNMENT: u32 = 127u32; +pub const FILE_256_BYTE_ALIGNMENT: u32 = 255u32; +pub const FILE_32_BYTE_ALIGNMENT: u32 = 31u32; +pub const FILE_512_BYTE_ALIGNMENT: u32 = 511u32; +pub const FILE_64_BYTE_ALIGNMENT: u32 = 63u32; +pub const FILE_ATTRIBUTE_VALID_FLAGS: u32 = 32695u32; +pub const FILE_ATTRIBUTE_VALID_KERNEL_SET_FLAGS: u32 = 5910951u32; +pub const FILE_ATTRIBUTE_VALID_SET_FLAGS: u32 = 12711u32; +pub const FILE_AUTOGENERATED_DEVICE_NAME: u32 = 128u32; +pub const FILE_BYTE_ALIGNMENT: u32 = 0u32; +pub const FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL: u32 = 512u32; +pub const FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_DEPRECATED: u32 = 512u32; +pub const FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX: u32 = 16384u32; +pub const FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL: u32 = 768u32; +pub const FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_DEPRECATED: u32 = 768u32; +pub const FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX: u32 = 32768u32; +pub const FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK: u32 = 768u32; +pub const FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_DEPRECATED: u32 = 768u32; +pub const FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX: u32 = 768u32; +pub const FILE_CHARACTERISTIC_CSV: u32 = 65536u32; +pub const FILE_CHARACTERISTIC_PNP_DEVICE: u32 = 2048u32; +pub const FILE_CHARACTERISTIC_TS_DEVICE: u32 = 4096u32; +pub const FILE_CHARACTERISTIC_WEBDAV_DEVICE: u32 = 8192u32; +pub const FILE_DEVICE_ALLOW_APPCONTAINER_TRAVERSAL: u32 = 131072u32; +pub const FILE_DEVICE_IS_MOUNTED: u32 = 32u32; +pub const FILE_DEVICE_REQUIRE_SECURITY_CHECK: u32 = 1048576u32; +pub const FILE_DEVICE_SECURE_OPEN: u32 = 256u32; +pub const FILE_FLOPPY_DISKETTE: u32 = 4u32; +pub const FILE_LONG_ALIGNMENT: u32 = 3u32; +pub const FILE_OCTA_ALIGNMENT: u32 = 15u32; +pub const FILE_PORTABLE_DEVICE: u32 = 262144u32; +pub const FILE_QUAD_ALIGNMENT: u32 = 7u32; +pub const FILE_QUERY_INDEX_SPECIFIED: u32 = 4u32; +pub const FILE_QUERY_NO_CURSOR_UPDATE: u32 = 16u32; +pub const FILE_QUERY_RESTART_SCAN: u32 = 1u32; +pub const FILE_QUERY_RETURN_ON_DISK_ENTRIES_ONLY: u32 = 8u32; +pub const FILE_QUERY_RETURN_SINGLE_ENTRY: u32 = 2u32; +pub const FILE_READ_ONLY_DEVICE: u32 = 2u32; +pub const FILE_REMOTE_DEVICE: u32 = 16u32; +pub const FILE_REMOTE_DEVICE_VSMB: u32 = 524288u32; +pub const FILE_REMOVABLE_MEDIA: u32 = 1u32; +pub const FILE_SHARE_VALID_FLAGS: u32 = 7u32; +pub const FILE_SKIP_SET_USER_EVENT_ON_FAST_IO: u32 = 4u32; +pub const FILE_USE_FILE_POINTER_POSITION: u32 = 4294967294u32; +pub const FILE_VALID_EXTENDED_OPTION_FLAGS: u32 = 268435456u32; +pub const FILE_VIRTUAL_VOLUME: u32 = 64u32; +pub const FILE_WORD_ALIGNMENT: u32 = 1u32; +pub const FILE_WRITE_ONCE_MEDIA: u32 = 8u32; +pub const FILE_WRITE_TO_END_OF_FILE: u32 = 4294967295u32; +pub const FIRMWARE_ERROR_RECORD_REFERENCE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x81212a96_09ed_4996_9471_8d729c8e69ed); +pub const FLAG_OWNER_POINTER_IS_THREAD: u32 = 1u32; +pub const FLUSH_MULTIPLE_MAXIMUM: u32 = 32u32; +pub const FM_LOCK_BIT: u32 = 1u32; +pub const FM_LOCK_BIT_V: u32 = 0u32; +pub const FO_ALERTABLE_IO: u32 = 4u32; +pub const FO_BYPASS_IO_ENABLED: u32 = 8388608u32; +pub const FO_CACHE_SUPPORTED: u32 = 64u32; +pub const FO_CLEANUP_COMPLETE: u32 = 16384u32; +pub const FO_DELETE_ON_CLOSE: u32 = 65536u32; +pub const FO_DIRECT_DEVICE_OPEN: u32 = 2048u32; +pub const FO_DISALLOW_EXCLUSIVE: u32 = 33554432u32; +pub const FO_FILE_FAST_IO_READ: u32 = 524288u32; +pub const FO_FILE_MODIFIED: u32 = 4096u32; +pub const FO_FILE_OPEN: u32 = 1u32; +pub const FO_FILE_OPEN_CANCELLED: u32 = 2097152u32; +pub const FO_FILE_SIZE_CHANGED: u32 = 8192u32; +pub const FO_FLAGS_VALID_ONLY_DURING_CREATE: u32 = 33554432u32; +pub const FO_GENERATE_AUDIT_ON_CLOSE: u32 = 1024u32; +pub const FO_HANDLE_CREATED: u32 = 262144u32; +pub const FO_INDIRECT_WAIT_OBJECT: u32 = 268435456u32; +pub const FO_MAILSLOT: u32 = 512u32; +pub const FO_NAMED_PIPE: u32 = 128u32; +pub const FO_NO_INTERMEDIATE_BUFFERING: u32 = 8u32; +pub const FO_OPENED_CASE_SENSITIVE: u32 = 131072u32; +pub const FO_QUEUE_IRP_TO_THREAD: u32 = 1024u32; +pub const FO_RANDOM_ACCESS: u32 = 1048576u32; +pub const FO_REMOTE_ORIGIN: u32 = 16777216u32; +pub const FO_SECTION_MINSTORE_TREATMENT: u32 = 536870912u32; +pub const FO_SEQUENTIAL_ONLY: u32 = 32u32; +pub const FO_SKIP_COMPLETION_PORT: u32 = 33554432u32; +pub const FO_SKIP_SET_EVENT: u32 = 67108864u32; +pub const FO_SKIP_SET_FAST_IO: u32 = 134217728u32; +pub const FO_STREAM_FILE: u32 = 256u32; +pub const FO_SYNCHRONOUS_IO: u32 = 2u32; +pub const FO_TEMPORARY_FILE: u32 = 32768u32; +pub const FO_VOLUME_OPEN: u32 = 4194304u32; +pub const FO_WRITE_THROUGH: u32 = 16u32; +pub const FPB_MEM_HIGH_VECTOR_GRANULARITY_16GB: u32 = 6u32; +pub const FPB_MEM_HIGH_VECTOR_GRANULARITY_1GB: u32 = 2u32; +pub const FPB_MEM_HIGH_VECTOR_GRANULARITY_1MB: u32 = 9u32; +pub const FPB_MEM_HIGH_VECTOR_GRANULARITY_256MB: u32 = 0u32; +pub const FPB_MEM_HIGH_VECTOR_GRANULARITY_2GB: u32 = 3u32; +pub const FPB_MEM_HIGH_VECTOR_GRANULARITY_32GB: u32 = 7u32; +pub const FPB_MEM_HIGH_VECTOR_GRANULARITY_4GB: u32 = 4u32; +pub const FPB_MEM_HIGH_VECTOR_GRANULARITY_512MB: u32 = 1u32; +pub const FPB_MEM_HIGH_VECTOR_GRANULARITY_8GB: u32 = 5u32; +pub const FPB_MEM_LOW_VECTOR_GRANULARITY_16MB: u32 = 4u32; +pub const FPB_MEM_LOW_VECTOR_GRANULARITY_1MB: u32 = 0u32; +pub const FPB_MEM_LOW_VECTOR_GRANULARITY_2MB: u32 = 1u32; +pub const FPB_MEM_LOW_VECTOR_GRANULARITY_4MB: u32 = 2u32; +pub const FPB_MEM_LOW_VECTOR_GRANULARITY_8MB: u32 = 3u32; +pub const FPB_MEM_VECTOR_GRANULARITY_1B: u32 = 8u32; +pub const FPB_RID_VECTOR_GRANULARITY_256RIDS: u32 = 5u32; +pub const FPB_RID_VECTOR_GRANULARITY_64RIDS: u32 = 3u32; +pub const FPB_RID_VECTOR_GRANULARITY_8RIDS: u32 = 0u32; +pub const FPB_VECTOR_SELECT_MEM_HIGH: u32 = 2u32; +pub const FPB_VECTOR_SELECT_MEM_LOW: u32 = 1u32; +pub const FPB_VECTOR_SELECT_RID: u32 = 0u32; +pub const FPB_VECTOR_SIZE_SUPPORTED_1KBITS: u32 = 2u32; +pub const FPB_VECTOR_SIZE_SUPPORTED_256BITS: u32 = 0u32; +pub const FPB_VECTOR_SIZE_SUPPORTED_2KBITS: u32 = 3u32; +pub const FPB_VECTOR_SIZE_SUPPORTED_4KBITS: u32 = 4u32; +pub const FPB_VECTOR_SIZE_SUPPORTED_512BITS: u32 = 1u32; +pub const FPB_VECTOR_SIZE_SUPPORTED_8KBITS: u32 = 5u32; +pub const FailControl: NPEM_CONTROL_STANDARD_CONTROL_BIT = 4i32; +pub const FaultInformationArm64: FAULT_INFORMATION_ARCH = 1i32; +pub const FaultInformationInvalid: FAULT_INFORMATION_ARCH = 0i32; +pub const FaultInformationX64: FAULT_INFORMATION_ARCH = 2i32; +pub const FloatingPointProcessor: CONFIGURATION_TYPE = 2i32; +pub const FloppyDiskPeripheral: CONFIGURATION_TYPE = 26i32; +pub const FltIoNotifyRoutinesClass: TRACE_INFORMATION_CLASS = 13i32; +pub const FreePage: KWAIT_REASON = 1i32; +pub const FunctionLevelDeviceReset: DEVICE_RESET_TYPE = 0i32; +pub const GENERIC_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3e62a467_ab40_409a_a698_f362d464b38f); +pub const GENERIC_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe71254e8_c1b9_4940_ab76_909703a4320f); +pub const GENPROC_FLAGS_CORRECTED: u32 = 8u32; +pub const GENPROC_FLAGS_OVERFLOW: u32 = 4u32; +pub const GENPROC_FLAGS_PRECISEIP: u32 = 2u32; +pub const GENPROC_FLAGS_RESTARTABLE: u32 = 1u32; +pub const GENPROC_OP_DATAREAD: u32 = 1u32; +pub const GENPROC_OP_DATAWRITE: u32 = 2u32; +pub const GENPROC_OP_GENERIC: u32 = 0u32; +pub const GENPROC_OP_INSTRUCTIONEXE: u32 = 3u32; +pub const GENPROC_PROCERRTYPE_BUS: u32 = 4u32; +pub const GENPROC_PROCERRTYPE_CACHE: u32 = 1u32; +pub const GENPROC_PROCERRTYPE_MAE: u32 = 8u32; +pub const GENPROC_PROCERRTYPE_TLB: u32 = 2u32; +pub const GENPROC_PROCERRTYPE_UNKNOWN: u32 = 0u32; +pub const GENPROC_PROCISA_ARM32: u32 = 4u32; +pub const GENPROC_PROCISA_ARM64: u32 = 8u32; +pub const GENPROC_PROCISA_IPF: u32 = 1u32; +pub const GENPROC_PROCISA_X64: u32 = 2u32; +pub const GENPROC_PROCISA_X86: u32 = 0u32; +pub const GENPROC_PROCTYPE_ARM: u32 = 2u32; +pub const GENPROC_PROCTYPE_IPF: u32 = 1u32; +pub const GENPROC_PROCTYPE_XPF: u32 = 0u32; +pub const GUID_ECP_CREATE_USER_PROCESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe0e429ff_6ddc_4e65_aab6_45d05a038a08); +pub const GartHigh: EXTENDED_AGP_REGISTER = 5i32; +pub const GartLow: EXTENDED_AGP_REGISTER = 4i32; +pub const GenericEqual: RTL_GENERIC_COMPARE_RESULTS = 2i32; +pub const GenericGreaterThan: RTL_GENERIC_COMPARE_RESULTS = 1i32; +pub const GenericLessThan: RTL_GENERIC_COMPARE_RESULTS = 0i32; +pub const GlobalLoggerHandleClass: TRACE_INFORMATION_CLASS = 4i32; +pub const GroupAffinityAllGroupZero: IRQ_GROUP_POLICY = 0i32; +pub const GroupAffinityDontCare: IRQ_GROUP_POLICY = 1i32; +pub const HAL_DISPATCH_VERSION: u32 = 5u32; +pub const HAL_DMA_ADAPTER_VERSION_1: u32 = 1u32; +pub const HAL_MASK_UNMASK_FLAGS_NONE: u32 = 0u32; +pub const HAL_MASK_UNMASK_FLAGS_SERVICING_COMPLETE: u32 = 2u32; +pub const HAL_MASK_UNMASK_FLAGS_SERVICING_DEFERRED: u32 = 1u32; +pub const HAL_MCA_RECORD: MCA_EXCEPTION_TYPE = 1i32; +pub const HAL_MCE_RECORD: MCA_EXCEPTION_TYPE = 0i32; +pub const HAL_PLATFORM_ACPI_TABLES_CACHED: i32 = 32i32; +pub const HAL_PLATFORM_DISABLE_PTCG: i32 = 4i32; +pub const HAL_PLATFORM_DISABLE_UC_MAIN_MEMORY: i32 = 8i32; +pub const HAL_PLATFORM_DISABLE_WRITE_COMBINING: i32 = 1i32; +pub const HAL_PLATFORM_ENABLE_WRITE_COMBINING_MMIO: i32 = 16i32; +pub const HASH_STRING_ALGORITHM_DEFAULT: u32 = 0u32; +pub const HASH_STRING_ALGORITHM_INVALID: u32 = 4294967295u32; +pub const HASH_STRING_ALGORITHM_X65599: u32 = 1u32; +pub const HIGH_LEVEL: u32 = 31u32; +pub const HIGH_PRIORITY: u32 = 31u32; +pub const HalAcpiAuditInformation: HAL_QUERY_INFORMATION_CLASS = 26i32; +pub const HalCallbackInformation: HAL_QUERY_INFORMATION_CLASS = 5i32; +pub const HalChannelTopologyInformation: HAL_QUERY_INFORMATION_CLASS = 31i32; +pub const HalCmcLog: HAL_SET_INFORMATION_CLASS = 7i32; +pub const HalCmcLogInformation: HAL_QUERY_INFORMATION_CLASS = 13i32; +pub const HalCmcRegisterDriver: HAL_SET_INFORMATION_CLASS = 4i32; +pub const HalCpeLog: HAL_SET_INFORMATION_CLASS = 8i32; +pub const HalCpeLogInformation: HAL_QUERY_INFORMATION_CLASS = 14i32; +pub const HalCpeRegisterDriver: HAL_SET_INFORMATION_CLASS = 5i32; +pub const HalDisplayBiosInformation: HAL_QUERY_INFORMATION_CLASS = 9i32; +pub const HalDisplayEmulatedBios: HAL_DISPLAY_BIOS_INFORMATION = 1i32; +pub const HalDisplayInt10Bios: HAL_DISPLAY_BIOS_INFORMATION = 0i32; +pub const HalDisplayNoBios: HAL_DISPLAY_BIOS_INFORMATION = 2i32; +pub const HalDmaCrashDumpRegisterSet1: HAL_DMA_CRASH_DUMP_REGISTER_TYPE = 0i32; +pub const HalDmaCrashDumpRegisterSet2: HAL_DMA_CRASH_DUMP_REGISTER_TYPE = 1i32; +pub const HalDmaCrashDumpRegisterSetMax: HAL_DMA_CRASH_DUMP_REGISTER_TYPE = 2i32; +pub const HalDmaRemappingInformation: HAL_QUERY_INFORMATION_CLASS = 47i32; +pub const HalEnlightenment: HAL_SET_INFORMATION_CLASS = 11i32; +pub const HalErrorInformation: HAL_QUERY_INFORMATION_CLASS = 12i32; +pub const HalExternalCacheInformation: HAL_QUERY_INFORMATION_CLASS = 32i32; +pub const HalFrameBufferCachingInformation: HAL_QUERY_INFORMATION_CLASS = 8i32; +pub const HalFrequencyInformation: HAL_QUERY_INFORMATION_CLASS = 22i32; +pub const HalFwBootPerformanceInformation: HAL_QUERY_INFORMATION_CLASS = 34i32; +pub const HalFwS3PerformanceInformation: HAL_QUERY_INFORMATION_CLASS = 35i32; +pub const HalGenerateCmcInterrupt: HAL_SET_INFORMATION_CLASS = 9i32; +pub const HalGetChannelPowerInformation: HAL_QUERY_INFORMATION_CLASS = 36i32; +pub const HalHardwareWatchdogInformation: HAL_QUERY_INFORMATION_CLASS = 46i32; +pub const HalHeterogeneousMemoryAttributesInterface: HAL_QUERY_INFORMATION_CLASS = 49i32; +pub const HalHypervisorInformation: HAL_QUERY_INFORMATION_CLASS = 24i32; +pub const HalI386ExceptionChainTerminatorInformation: HAL_SET_INFORMATION_CLASS = 15i32; +pub const HalInformationClassUnused1: HAL_QUERY_INFORMATION_CLASS = 2i32; +pub const HalInitLogInformation: HAL_QUERY_INFORMATION_CLASS = 21i32; +pub const HalInstalledBusInformation: HAL_QUERY_INFORMATION_CLASS = 0i32; +pub const HalInterruptControllerInformation: HAL_QUERY_INFORMATION_CLASS = 39i32; +pub const HalIrtInformation: HAL_QUERY_INFORMATION_CLASS = 27i32; +pub const HalKernelErrorHandler: HAL_SET_INFORMATION_CLASS = 3i32; +pub const HalMapRegisterInformation: HAL_QUERY_INFORMATION_CLASS = 6i32; +pub const HalMcaLog: HAL_SET_INFORMATION_CLASS = 6i32; +pub const HalMcaLogInformation: HAL_QUERY_INFORMATION_CLASS = 7i32; +pub const HalMcaRegisterDriver: HAL_SET_INFORMATION_CLASS = 2i32; +pub const HalNumaRangeTableInformation: HAL_QUERY_INFORMATION_CLASS = 30i32; +pub const HalNumaTopologyInterface: HAL_QUERY_INFORMATION_CLASS = 11i32; +pub const HalParkingPageInformation: HAL_QUERY_INFORMATION_CLASS = 29i32; +pub const HalPartitionIpiInterface: HAL_QUERY_INFORMATION_CLASS = 18i32; +pub const HalPlatformInformation: HAL_QUERY_INFORMATION_CLASS = 19i32; +pub const HalPlatformTimerInformation: HAL_QUERY_INFORMATION_CLASS = 25i32; +pub const HalPowerInformation: HAL_QUERY_INFORMATION_CLASS = 3i32; +pub const HalProcessorBrandString: HAL_QUERY_INFORMATION_CLASS = 23i32; +pub const HalProcessorFeatureInformation: HAL_QUERY_INFORMATION_CLASS = 10i32; +pub const HalProcessorSpeedInformation: HAL_QUERY_INFORMATION_CLASS = 4i32; +pub const HalProfileDpgoSourceInterruptHandler: HAL_SET_INFORMATION_CLASS = 12i32; +pub const HalProfileSourceAdd: HAL_SET_INFORMATION_CLASS = 20i32; +pub const HalProfileSourceInformation: HAL_QUERY_INFORMATION_CLASS = 1i32; +pub const HalProfileSourceInterruptHandler: HAL_SET_INFORMATION_CLASS = 1i32; +pub const HalProfileSourceInterval: HAL_SET_INFORMATION_CLASS = 0i32; +pub const HalProfileSourceRemove: HAL_SET_INFORMATION_CLASS = 21i32; +pub const HalProfileSourceTimerHandler: HAL_SET_INFORMATION_CLASS = 10i32; +pub const HalPsciInformation: HAL_QUERY_INFORMATION_CLASS = 38i32; +pub const HalQueryAMLIIllegalIOPortAddresses: HAL_QUERY_INFORMATION_CLASS = 16i32; +pub const HalQueryAcpiWakeAlarmSystemPowerStateInformation: HAL_QUERY_INFORMATION_CLASS = 43i32; +pub const HalQueryArmErrataInformation: HAL_QUERY_INFORMATION_CLASS = 41i32; +pub const HalQueryDebuggerInformation: HAL_QUERY_INFORMATION_CLASS = 33i32; +pub const HalQueryHyperlaunchEntrypoint: HAL_QUERY_INFORMATION_CLASS = 45i32; +pub const HalQueryIommuReservedRegionInformation: HAL_QUERY_INFORMATION_CLASS = 40i32; +pub const HalQueryMaxHotPlugMemoryAddress: HAL_QUERY_INFORMATION_CLASS = 17i32; +pub const HalQueryMcaInterface: HAL_QUERY_INFORMATION_CLASS = 15i32; +pub const HalQueryPerDeviceMsiLimitInformation: HAL_QUERY_INFORMATION_CLASS = 50i32; +pub const HalQueryProcessorEfficiencyInformation: HAL_QUERY_INFORMATION_CLASS = 42i32; +pub const HalQueryProfileCorruptionStatus: HAL_QUERY_INFORMATION_CLASS = 51i32; +pub const HalQueryProfileCounterOwnership: HAL_QUERY_INFORMATION_CLASS = 52i32; +pub const HalQueryProfileNumberOfCounters: HAL_QUERY_INFORMATION_CLASS = 44i32; +pub const HalQueryProfileSourceList: HAL_QUERY_INFORMATION_CLASS = 20i32; +pub const HalQueryStateElementInformation: HAL_QUERY_INFORMATION_CLASS = 37i32; +pub const HalQueryUnused0001: HAL_QUERY_INFORMATION_CLASS = 48i32; +pub const HalRegisterSecondaryInterruptInterface: HAL_SET_INFORMATION_CLASS = 13i32; +pub const HalSecondaryInterruptInformation: HAL_QUERY_INFORMATION_CLASS = 28i32; +pub const HalSetChannelPowerInformation: HAL_SET_INFORMATION_CLASS = 14i32; +pub const HalSetClockTimerMinimumInterval: HAL_SET_INFORMATION_CLASS = 23i32; +pub const HalSetHvciEnabled: HAL_SET_INFORMATION_CLASS = 18i32; +pub const HalSetProcessorTraceInterruptHandler: HAL_SET_INFORMATION_CLASS = 19i32; +pub const HalSetPsciSuspendMode: HAL_SET_INFORMATION_CLASS = 17i32; +pub const HalSetResetParkDisposition: HAL_SET_INFORMATION_CLASS = 16i32; +pub const HalSetSwInterruptHandler: HAL_SET_INFORMATION_CLASS = 22i32; +pub const HighImportance: KDPC_IMPORTANCE = 2i32; +pub const HighPagePriority: MM_PAGE_PRIORITY = 32i32; +pub const HighPoolPriority: EX_POOL_PRIORITY = 32i32; +pub const HighPoolPrioritySpecialPoolOverrun: EX_POOL_PRIORITY = 40i32; +pub const HighPoolPrioritySpecialPoolUnderrun: EX_POOL_PRIORITY = 41i32; +pub const HotSpareControl: NPEM_CONTROL_STANDARD_CONTROL_BIT = 7i32; +pub const HyperCriticalWorkQueue: WORK_QUEUE_TYPE = 2i32; +pub const IMAGE_ADDRESSING_MODE_32BIT: u32 = 3u32; +pub const INITIAL_PRIVILEGE_COUNT: u32 = 3u32; +pub const INIT_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcc5263e8_9308_454a_89d0_340bd39bc98e); +pub const INJECT_ERRTYPE_MEMORY_CORRECTABLE: u32 = 8u32; +pub const INJECT_ERRTYPE_MEMORY_UNCORRECTABLEFATAL: u32 = 32u32; +pub const INJECT_ERRTYPE_MEMORY_UNCORRECTABLENONFATAL: u32 = 16u32; +pub const INJECT_ERRTYPE_PCIEXPRESS_CORRECTABLE: u32 = 64u32; +pub const INJECT_ERRTYPE_PCIEXPRESS_UNCORRECTABLEFATAL: u32 = 256u32; +pub const INJECT_ERRTYPE_PCIEXPRESS_UNCORRECTABLENONFATAL: u32 = 128u32; +pub const INJECT_ERRTYPE_PLATFORM_CORRECTABLE: u32 = 512u32; +pub const INJECT_ERRTYPE_PLATFORM_UNCORRECTABLEFATAL: u32 = 2048u32; +pub const INJECT_ERRTYPE_PLATFORM_UNCORRECTABLENONFATAL: u32 = 1024u32; +pub const INJECT_ERRTYPE_PROCESSOR_CORRECTABLE: u32 = 1u32; +pub const INJECT_ERRTYPE_PROCESSOR_UNCORRECTABLEFATAL: u32 = 4u32; +pub const INJECT_ERRTYPE_PROCESSOR_UNCORRECTABLENONFATAL: u32 = 2u32; +pub const IOCTL_CANCEL_DEVICE_WAKE: u32 = 2719752u32; +pub const IOCTL_QUERY_DEVICE_POWER_STATE: u32 = 2703360u32; +pub const IOCTL_SET_DEVICE_WAKE: u32 = 2719748u32; +pub const IOMMU_ACCESS_NONE: u32 = 0u32; +pub const IOMMU_ACCESS_READ: u32 = 1u32; +pub const IOMMU_ACCESS_WRITE: u32 = 2u32; +pub const IO_ATTACH_DEVICE: u32 = 1024u32; +pub const IO_ATTRIBUTION_INFO_V1: u32 = 1u32; +pub const IO_CHECK_CREATE_PARAMETERS: u32 = 512u32; +pub const IO_CHECK_SHARE_ACCESS_DONT_CHECK_DELETE: u32 = 16u32; +pub const IO_CHECK_SHARE_ACCESS_DONT_CHECK_READ: u32 = 4u32; +pub const IO_CHECK_SHARE_ACCESS_DONT_CHECK_WRITE: u32 = 8u32; +pub const IO_CHECK_SHARE_ACCESS_DONT_UPDATE_FILE_OBJECT: u32 = 2u32; +pub const IO_CHECK_SHARE_ACCESS_FORCE_CHECK: u32 = 32u32; +pub const IO_CHECK_SHARE_ACCESS_FORCE_USING_SCB: u32 = 64u32; +pub const IO_CHECK_SHARE_ACCESS_UPDATE_SHARE_ACCESS: u32 = 1u32; +pub const IO_FORCE_ACCESS_CHECK: u32 = 1u32; +pub const IO_IGNORE_SHARE_ACCESS_CHECK: u32 = 2048u32; +pub const IO_KEYBOARD_INCREMENT: u32 = 6u32; +pub const IO_MOUSE_INCREMENT: u32 = 6u32; +pub const IO_NO_PARAMETER_CHECKING: u32 = 256u32; +pub const IO_PARALLEL_INCREMENT: u32 = 1u32; +pub const IO_REMOUNT: u32 = 1u32; +pub const IO_REPARSE: u32 = 0u32; +pub const IO_REPARSE_GLOBAL: u32 = 2u32; +pub const IO_RESOURCE_ALTERNATIVE: u32 = 8u32; +pub const IO_RESOURCE_DEFAULT: u32 = 2u32; +pub const IO_RESOURCE_PREFERRED: u32 = 1u32; +pub const IO_SERIAL_INCREMENT: u32 = 2u32; +pub const IO_SESSION_MAX_PAYLOAD_SIZE: i32 = 256i32; +pub const IO_SESSION_STATE_ALL_EVENTS: u32 = 4294967295u32; +pub const IO_SESSION_STATE_CONNECT_EVENT: u32 = 4u32; +pub const IO_SESSION_STATE_CREATION_EVENT: u32 = 1u32; +pub const IO_SESSION_STATE_DISCONNECT_EVENT: u32 = 8u32; +pub const IO_SESSION_STATE_LOGOFF_EVENT: u32 = 32u32; +pub const IO_SESSION_STATE_LOGON_EVENT: u32 = 16u32; +pub const IO_SESSION_STATE_TERMINATION_EVENT: u32 = 2u32; +pub const IO_SESSION_STATE_VALID_EVENT_MASK: u32 = 63u32; +pub const IO_SET_IRP_IO_ATTRIBUTION_FLAGS_MASK: u32 = 3u32; +pub const IO_SET_IRP_IO_ATTRIBUTION_FROM_PROCESS: u32 = 2u32; +pub const IO_SET_IRP_IO_ATTRIBUTION_FROM_THREAD: u32 = 1u32; +pub const IO_SHARE_ACCESS_NON_PRIMARY_STREAM: u32 = 128u32; +pub const IO_SHARE_ACCESS_NO_WRITE_PERMISSION: u32 = 2147483648u32; +pub const IO_SOUND_INCREMENT: u32 = 8u32; +pub const IO_TYPE_ADAPTER: u32 = 1u32; +pub const IO_TYPE_CONTROLLER: u32 = 2u32; +pub const IO_TYPE_CSQ: u32 = 2u32; +pub const IO_TYPE_CSQ_EX: u32 = 3u32; +pub const IO_TYPE_CSQ_IRP_CONTEXT: u32 = 1u32; +pub const IO_TYPE_DEVICE: u32 = 3u32; +pub const IO_TYPE_DEVICE_OBJECT_EXTENSION: u32 = 13u32; +pub const IO_TYPE_DRIVER: u32 = 4u32; +pub const IO_TYPE_ERROR_LOG: u32 = 11u32; +pub const IO_TYPE_ERROR_MESSAGE: u32 = 12u32; +pub const IO_TYPE_FILE: u32 = 5u32; +pub const IO_TYPE_IORING: u32 = 14u32; +pub const IO_TYPE_IRP: u32 = 6u32; +pub const IO_TYPE_MASTER_ADAPTER: u32 = 7u32; +pub const IO_TYPE_OPEN_PACKET: u32 = 8u32; +pub const IO_TYPE_TIMER: u32 = 9u32; +pub const IO_TYPE_VPB: u32 = 10u32; +pub const IO_VIDEO_INCREMENT: u32 = 1u32; +pub const IPF_SAL_RECORD_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f3380d1_6eb0_497f_a578_4d4c65a71617); +pub const IPI_LEVEL: u32 = 29u32; +pub const IPMI_MSR_DUMP_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1c15b445_9b06_4667_ac25_33c056b88803); +pub const IRP_ALLOCATED_FIXED_SIZE: u32 = 4u32; +pub const IRP_ALLOCATED_MUST_SUCCEED: u32 = 2u32; +pub const IRP_ASSOCIATED_IRP: u32 = 8u32; +pub const IRP_BUFFERED_IO: u32 = 16u32; +pub const IRP_CLOSE_OPERATION: u32 = 1024u32; +pub const IRP_CREATE_OPERATION: u32 = 128u32; +pub const IRP_DEALLOCATE_BUFFER: u32 = 32u32; +pub const IRP_DEFER_IO_COMPLETION: u32 = 2048u32; +pub const IRP_HOLD_DEVICE_QUEUE: u32 = 8192u32; +pub const IRP_INPUT_OPERATION: u32 = 64u32; +pub const IRP_LOOKASIDE_ALLOCATION: u32 = 8u32; +pub const IRP_MJ_CLEANUP: u32 = 18u32; +pub const IRP_MJ_CLOSE: u32 = 2u32; +pub const IRP_MJ_CREATE: u32 = 0u32; +pub const IRP_MJ_CREATE_MAILSLOT: u32 = 19u32; +pub const IRP_MJ_CREATE_NAMED_PIPE: u32 = 1u32; +pub const IRP_MJ_DEVICE_CHANGE: u32 = 24u32; +pub const IRP_MJ_DEVICE_CONTROL: u32 = 14u32; +pub const IRP_MJ_DIRECTORY_CONTROL: u32 = 12u32; +pub const IRP_MJ_FILE_SYSTEM_CONTROL: u32 = 13u32; +pub const IRP_MJ_FLUSH_BUFFERS: u32 = 9u32; +pub const IRP_MJ_INTERNAL_DEVICE_CONTROL: u32 = 15u32; +pub const IRP_MJ_LOCK_CONTROL: u32 = 17u32; +pub const IRP_MJ_MAXIMUM_FUNCTION: u32 = 27u32; +pub const IRP_MJ_PNP: u32 = 27u32; +pub const IRP_MJ_PNP_POWER: u32 = 27u32; +pub const IRP_MJ_POWER: u32 = 22u32; +pub const IRP_MJ_QUERY_EA: u32 = 7u32; +pub const IRP_MJ_QUERY_INFORMATION: u32 = 5u32; +pub const IRP_MJ_QUERY_QUOTA: u32 = 25u32; +pub const IRP_MJ_QUERY_SECURITY: u32 = 20u32; +pub const IRP_MJ_QUERY_VOLUME_INFORMATION: u32 = 10u32; +pub const IRP_MJ_READ: u32 = 3u32; +pub const IRP_MJ_SCSI: u32 = 15u32; +pub const IRP_MJ_SET_EA: u32 = 8u32; +pub const IRP_MJ_SET_INFORMATION: u32 = 6u32; +pub const IRP_MJ_SET_QUOTA: u32 = 26u32; +pub const IRP_MJ_SET_SECURITY: u32 = 21u32; +pub const IRP_MJ_SET_VOLUME_INFORMATION: u32 = 11u32; +pub const IRP_MJ_SHUTDOWN: u32 = 16u32; +pub const IRP_MJ_SYSTEM_CONTROL: u32 = 23u32; +pub const IRP_MJ_WRITE: u32 = 4u32; +pub const IRP_MN_CANCEL_REMOVE_DEVICE: u32 = 3u32; +pub const IRP_MN_CANCEL_STOP_DEVICE: u32 = 6u32; +pub const IRP_MN_CHANGE_SINGLE_INSTANCE: u32 = 2u32; +pub const IRP_MN_CHANGE_SINGLE_ITEM: u32 = 3u32; +pub const IRP_MN_COMPLETE: u32 = 4u32; +pub const IRP_MN_COMPRESSED: u32 = 8u32; +pub const IRP_MN_DEVICE_ENUMERATED: u32 = 25u32; +pub const IRP_MN_DEVICE_USAGE_NOTIFICATION: u32 = 22u32; +pub const IRP_MN_DISABLE_COLLECTION: u32 = 7u32; +pub const IRP_MN_DISABLE_EVENTS: u32 = 5u32; +pub const IRP_MN_DPC: u32 = 1u32; +pub const IRP_MN_EJECT: u32 = 17u32; +pub const IRP_MN_ENABLE_COLLECTION: u32 = 6u32; +pub const IRP_MN_ENABLE_EVENTS: u32 = 4u32; +pub const IRP_MN_EXECUTE_METHOD: u32 = 9u32; +pub const IRP_MN_FILTER_RESOURCE_REQUIREMENTS: u32 = 13u32; +pub const IRP_MN_FLUSH_AND_PURGE: u32 = 1u32; +pub const IRP_MN_FLUSH_DATA_ONLY: u32 = 2u32; +pub const IRP_MN_FLUSH_DATA_SYNC_ONLY: u32 = 4u32; +pub const IRP_MN_FLUSH_NO_SYNC: u32 = 3u32; +pub const IRP_MN_KERNEL_CALL: u32 = 4u32; +pub const IRP_MN_LOAD_FILE_SYSTEM: u32 = 3u32; +pub const IRP_MN_LOCK: u32 = 1u32; +pub const IRP_MN_MDL: u32 = 2u32; +pub const IRP_MN_MOUNT_VOLUME: u32 = 1u32; +pub const IRP_MN_NORMAL: u32 = 0u32; +pub const IRP_MN_NOTIFY_CHANGE_DIRECTORY: u32 = 2u32; +pub const IRP_MN_NOTIFY_CHANGE_DIRECTORY_EX: u32 = 3u32; +pub const IRP_MN_POWER_SEQUENCE: u32 = 1u32; +pub const IRP_MN_QUERY_ALL_DATA: u32 = 0u32; +pub const IRP_MN_QUERY_BUS_INFORMATION: u32 = 21u32; +pub const IRP_MN_QUERY_CAPABILITIES: u32 = 9u32; +pub const IRP_MN_QUERY_DEVICE_RELATIONS: u32 = 7u32; +pub const IRP_MN_QUERY_DEVICE_TEXT: u32 = 12u32; +pub const IRP_MN_QUERY_DIRECTORY: u32 = 1u32; +pub const IRP_MN_QUERY_ID: u32 = 19u32; +pub const IRP_MN_QUERY_INTERFACE: u32 = 8u32; +pub const IRP_MN_QUERY_LEGACY_BUS_INFORMATION: u32 = 24u32; +pub const IRP_MN_QUERY_PNP_DEVICE_STATE: u32 = 20u32; +pub const IRP_MN_QUERY_POWER: u32 = 3u32; +pub const IRP_MN_QUERY_REMOVE_DEVICE: u32 = 1u32; +pub const IRP_MN_QUERY_RESOURCES: u32 = 10u32; +pub const IRP_MN_QUERY_RESOURCE_REQUIREMENTS: u32 = 11u32; +pub const IRP_MN_QUERY_SINGLE_INSTANCE: u32 = 1u32; +pub const IRP_MN_QUERY_STOP_DEVICE: u32 = 5u32; +pub const IRP_MN_READ_CONFIG: u32 = 15u32; +pub const IRP_MN_REGINFO: u32 = 8u32; +pub const IRP_MN_REGINFO_EX: u32 = 11u32; +pub const IRP_MN_REMOVE_DEVICE: u32 = 2u32; +pub const IRP_MN_SCSI_CLASS: u32 = 1u32; +pub const IRP_MN_SET_LOCK: u32 = 18u32; +pub const IRP_MN_SET_POWER: u32 = 2u32; +pub const IRP_MN_START_DEVICE: u32 = 0u32; +pub const IRP_MN_STOP_DEVICE: u32 = 4u32; +pub const IRP_MN_SURPRISE_REMOVAL: u32 = 23u32; +pub const IRP_MN_TRACK_LINK: u32 = 4u32; +pub const IRP_MN_UNLOCK_ALL: u32 = 3u32; +pub const IRP_MN_UNLOCK_ALL_BY_KEY: u32 = 4u32; +pub const IRP_MN_UNLOCK_SINGLE: u32 = 2u32; +pub const IRP_MN_USER_FS_REQUEST: u32 = 0u32; +pub const IRP_MN_VERIFY_VOLUME: u32 = 2u32; +pub const IRP_MN_WAIT_WAKE: u32 = 0u32; +pub const IRP_MN_WRITE_CONFIG: u32 = 16u32; +pub const IRP_MOUNT_COMPLETION: u32 = 2u32; +pub const IRP_NOCACHE: u32 = 1u32; +pub const IRP_OB_QUERY_NAME: u32 = 4096u32; +pub const IRP_PAGING_IO: u32 = 2u32; +pub const IRP_QUOTA_CHARGED: u32 = 1u32; +pub const IRP_READ_OPERATION: u32 = 256u32; +pub const IRP_SYNCHRONOUS_API: u32 = 4u32; +pub const IRP_SYNCHRONOUS_PAGING_IO: u32 = 64u32; +pub const IRP_UM_DRIVER_INITIATED_IO: u32 = 4194304u32; +pub const IRP_WRITE_OPERATION: u32 = 512u32; +pub const InACriticalArrayControl: NPEM_CONTROL_STANDARD_CONTROL_BIT = 8i32; +pub const InAFailedArrayControl: NPEM_CONTROL_STANDARD_CONTROL_BIT = 9i32; +pub const IndicatorBlink: PCI_EXPRESS_INDICATOR_STATE = 2i32; +pub const IndicatorOff: PCI_EXPRESS_INDICATOR_STATE = 3i32; +pub const IndicatorOn: PCI_EXPRESS_INDICATOR_STATE = 1i32; +pub const InitiateReset: NPEM_CONTROL_STANDARD_CONTROL_BIT = 1i32; +pub const InstallStateFailedInstall: DEVICE_INSTALL_STATE = 2i32; +pub const InstallStateFinishInstall: DEVICE_INSTALL_STATE = 3i32; +pub const InstallStateInstalled: DEVICE_INSTALL_STATE = 0i32; +pub const InstallStateNeedsReinstall: DEVICE_INSTALL_STATE = 1i32; +pub const IntelCacheData: INTEL_CACHE_TYPE = 1i32; +pub const IntelCacheInstruction: INTEL_CACHE_TYPE = 2i32; +pub const IntelCacheNull: INTEL_CACHE_TYPE = 0i32; +pub const IntelCacheRam: INTEL_CACHE_TYPE = 4i32; +pub const IntelCacheTrace: INTEL_CACHE_TYPE = 5i32; +pub const IntelCacheUnified: INTEL_CACHE_TYPE = 3i32; +pub const InterfaceTypeUndefined: INTERFACE_TYPE = -1i32; +pub const Internal: INTERFACE_TYPE = 0i32; +pub const InternalPowerBus: INTERFACE_TYPE = 13i32; +pub const InterruptActiveBoth: KINTERRUPT_POLARITY = 3i32; +pub const InterruptActiveBothTriggerHigh: KINTERRUPT_POLARITY = 4i32; +pub const InterruptActiveBothTriggerLow: KINTERRUPT_POLARITY = 3i32; +pub const InterruptActiveHigh: KINTERRUPT_POLARITY = 1i32; +pub const InterruptActiveLow: KINTERRUPT_POLARITY = 2i32; +pub const InterruptFallingEdge: KINTERRUPT_POLARITY = 2i32; +pub const InterruptPolarityUnknown: KINTERRUPT_POLARITY = 0i32; +pub const InterruptRisingEdge: KINTERRUPT_POLARITY = 1i32; +pub const InvalidDeviceTypeControl: NPEM_CONTROL_STANDARD_CONTROL_BIT = 10i32; +pub const IoMaxContainerInformationClass: IO_CONTAINER_INFORMATION_CLASS = 1i32; +pub const IoMaxContainerNotificationClass: IO_CONTAINER_NOTIFICATION_CLASS = 1i32; +pub const IoModifyAccess: LOCK_OPERATION = 2i32; +pub const IoPagingPriorityHigh: IO_PAGING_PRIORITY = 2i32; +pub const IoPagingPriorityInvalid: IO_PAGING_PRIORITY = 0i32; +pub const IoPagingPriorityNormal: IO_PAGING_PRIORITY = 1i32; +pub const IoPagingPriorityReserved1: IO_PAGING_PRIORITY = 3i32; +pub const IoPagingPriorityReserved2: IO_PAGING_PRIORITY = 4i32; +pub const IoQueryDeviceComponentInformation: IO_QUERY_DEVICE_DATA_FORMAT = 2i32; +pub const IoQueryDeviceConfigurationData: IO_QUERY_DEVICE_DATA_FORMAT = 1i32; +pub const IoQueryDeviceIdentifier: IO_QUERY_DEVICE_DATA_FORMAT = 0i32; +pub const IoQueryDeviceMaxData: IO_QUERY_DEVICE_DATA_FORMAT = 3i32; +pub const IoReadAccess: LOCK_OPERATION = 0i32; +pub const IoSessionEventConnected: IO_SESSION_EVENT = 3i32; +pub const IoSessionEventCreated: IO_SESSION_EVENT = 1i32; +pub const IoSessionEventDisconnected: IO_SESSION_EVENT = 4i32; +pub const IoSessionEventIgnore: IO_SESSION_EVENT = 0i32; +pub const IoSessionEventLogoff: IO_SESSION_EVENT = 6i32; +pub const IoSessionEventLogon: IO_SESSION_EVENT = 5i32; +pub const IoSessionEventMax: IO_SESSION_EVENT = 7i32; +pub const IoSessionEventTerminated: IO_SESSION_EVENT = 2i32; +pub const IoSessionStateConnected: IO_SESSION_STATE = 3i32; +pub const IoSessionStateCreated: IO_SESSION_STATE = 1i32; +pub const IoSessionStateDisconnected: IO_SESSION_STATE = 4i32; +pub const IoSessionStateDisconnectedLoggedOn: IO_SESSION_STATE = 5i32; +pub const IoSessionStateInformation: IO_CONTAINER_INFORMATION_CLASS = 0i32; +pub const IoSessionStateInitialized: IO_SESSION_STATE = 2i32; +pub const IoSessionStateLoggedOff: IO_SESSION_STATE = 7i32; +pub const IoSessionStateLoggedOn: IO_SESSION_STATE = 6i32; +pub const IoSessionStateMax: IO_SESSION_STATE = 9i32; +pub const IoSessionStateNotification: IO_CONTAINER_NOTIFICATION_CLASS = 0i32; +pub const IoSessionStateTerminated: IO_SESSION_STATE = 8i32; +pub const IoWriteAccess: LOCK_OPERATION = 1i32; +pub const IommuDeviceCreationConfigTypeAcpi: IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE = 1i32; +pub const IommuDeviceCreationConfigTypeDeviceId: IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE = 2i32; +pub const IommuDeviceCreationConfigTypeMax: IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE = 3i32; +pub const IommuDeviceCreationConfigTypeNone: IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE = 0i32; +pub const IommuDmaLogicalAllocatorBuddy: IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE = 1i32; +pub const IommuDmaLogicalAllocatorMax: IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE = 2i32; +pub const IommuDmaLogicalAllocatorNone: IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE = 0i32; +pub const IrqPolicyAllCloseProcessors: IRQ_DEVICE_POLICY = 1i32; +pub const IrqPolicyAllProcessorsInMachine: IRQ_DEVICE_POLICY = 3i32; +pub const IrqPolicyAllProcessorsInMachineWhenSteered: IRQ_DEVICE_POLICY = 6i32; +pub const IrqPolicyMachineDefault: IRQ_DEVICE_POLICY = 0i32; +pub const IrqPolicyOneCloseProcessor: IRQ_DEVICE_POLICY = 2i32; +pub const IrqPolicySpecifiedProcessors: IRQ_DEVICE_POLICY = 4i32; +pub const IrqPolicySpreadMessagesAcrossAllProcessors: IRQ_DEVICE_POLICY = 5i32; +pub const IrqPriorityHigh: IRQ_PRIORITY = 3i32; +pub const IrqPriorityLow: IRQ_PRIORITY = 1i32; +pub const IrqPriorityNormal: IRQ_PRIORITY = 2i32; +pub const IrqPriorityUndefined: IRQ_PRIORITY = 0i32; +pub const Isa: INTERFACE_TYPE = 1i32; +pub const IsochCommand: EXTENDED_AGP_REGISTER = 6i32; +pub const IsochStatus: EXTENDED_AGP_REGISTER = 0i32; +pub const KADDRESS_BASE: u32 = 0u32; +pub const KB_ADD_PAGES_FLAG_ADDITIONAL_RANGES_EXIST: u32 = 2147483648u32; +pub const KB_ADD_PAGES_FLAG_PHYSICAL_ADDRESS: u32 = 2u32; +pub const KB_ADD_PAGES_FLAG_VIRTUAL_ADDRESS: u32 = 1u32; +pub const KB_REMOVE_PAGES_FLAG_ADDITIONAL_RANGES_EXIST: u32 = 2147483648u32; +pub const KB_REMOVE_PAGES_FLAG_PHYSICAL_ADDRESS: u32 = 2u32; +pub const KB_REMOVE_PAGES_FLAG_VIRTUAL_ADDRESS: u32 = 1u32; +pub const KB_SECONDARY_DATA_FLAG_ADDITIONAL_DATA: u32 = 1u32; +pub const KB_SECONDARY_DATA_FLAG_NO_DEVICE_ACCESS: u32 = 2u32; +pub const KB_TRIAGE_DUMP_DATA_FLAG_BUGCHECK_ACTIVE: u32 = 1u32; +pub const KD_OPTION_SET_BLOCK_ENABLE: KD_OPTION = 0i32; +pub const KENCODED_TIMER_PROCESSOR: u32 = 1u32; +pub const KERNEL_LARGE_STACK_COMMIT: u32 = 12288u32; +pub const KERNEL_LARGE_STACK_SIZE: u32 = 61440u32; +pub const KERNEL_MCA_EXCEPTION_STACK_SIZE: u32 = 8192u32; +pub const KERNEL_SOFT_RESTART_NOTIFICATION_VERSION: u32 = 1u32; +pub const KERNEL_STACK_SIZE: u32 = 12288u32; +pub const KE_MAX_TRIAGE_DUMP_DATA_MEMORY_SIZE: u32 = 33554432u32; +pub const KE_PROCESSOR_CHANGE_ADD_EXISTING: u32 = 1u32; +pub const KI_USER_SHARED_DATA: u32 = 4292804608u32; +pub const KUMS_UCH_VOLATILE_BIT: u32 = 0u32; +pub const KbCallbackAddPages: KBUGCHECK_CALLBACK_REASON = 4i32; +pub const KbCallbackDumpIo: KBUGCHECK_CALLBACK_REASON = 3i32; +pub const KbCallbackInvalid: KBUGCHECK_CALLBACK_REASON = 0i32; +pub const KbCallbackRemovePages: KBUGCHECK_CALLBACK_REASON = 6i32; +pub const KbCallbackReserved1: KBUGCHECK_CALLBACK_REASON = 1i32; +pub const KbCallbackReserved2: KBUGCHECK_CALLBACK_REASON = 8i32; +pub const KbCallbackSecondaryDumpData: KBUGCHECK_CALLBACK_REASON = 2i32; +pub const KbCallbackSecondaryMultiPartDumpData: KBUGCHECK_CALLBACK_REASON = 5i32; +pub const KbCallbackTriageDumpData: KBUGCHECK_CALLBACK_REASON = 7i32; +pub const KbDumpIoBody: KBUGCHECK_DUMP_IO_TYPE = 2i32; +pub const KbDumpIoComplete: KBUGCHECK_DUMP_IO_TYPE = 4i32; +pub const KbDumpIoHeader: KBUGCHECK_DUMP_IO_TYPE = 1i32; +pub const KbDumpIoInvalid: KBUGCHECK_DUMP_IO_TYPE = 0i32; +pub const KbDumpIoSecondaryData: KBUGCHECK_DUMP_IO_TYPE = 3i32; +pub const KdConfigureDeviceAndContinue: KD_CALLBACK_ACTION = 0i32; +pub const KdConfigureDeviceAndStop: KD_CALLBACK_ACTION = 2i32; +pub const KdNameSpaceACPI: KD_NAMESPACE_ENUM = 1i32; +pub const KdNameSpaceAny: KD_NAMESPACE_ENUM = 2i32; +pub const KdNameSpaceMax: KD_NAMESPACE_ENUM = 4i32; +pub const KdNameSpaceNone: KD_NAMESPACE_ENUM = 3i32; +pub const KdNameSpacePCI: KD_NAMESPACE_ENUM = 0i32; +pub const KdSkipDeviceAndContinue: KD_CALLBACK_ACTION = 1i32; +pub const KdSkipDeviceAndStop: KD_CALLBACK_ACTION = 3i32; +pub const KeProcessorAddCompleteNotify: KE_PROCESSOR_CHANGE_NOTIFY_STATE = 1i32; +pub const KeProcessorAddFailureNotify: KE_PROCESSOR_CHANGE_NOTIFY_STATE = 2i32; +pub const KeProcessorAddStartNotify: KE_PROCESSOR_CHANGE_NOTIFY_STATE = 0i32; +pub const KeepObject: IO_ALLOCATION_ACTION = 1i32; +pub const KernelMode: MODE = 0i32; +pub const KeyBasicInformation: KEY_INFORMATION_CLASS = 0i32; +pub const KeyCachedInformation: KEY_INFORMATION_CLASS = 4i32; +pub const KeyFlagsInformation: KEY_INFORMATION_CLASS = 5i32; +pub const KeyFullInformation: KEY_INFORMATION_CLASS = 2i32; +pub const KeyHandleTagsInformation: KEY_INFORMATION_CLASS = 7i32; +pub const KeyLayerInformation: KEY_INFORMATION_CLASS = 9i32; +pub const KeyNameInformation: KEY_INFORMATION_CLASS = 3i32; +pub const KeyNodeInformation: KEY_INFORMATION_CLASS = 1i32; +pub const KeyTrustInformation: KEY_INFORMATION_CLASS = 8i32; +pub const KeyValueBasicInformation: KEY_VALUE_INFORMATION_CLASS = 0i32; +pub const KeyValueFullInformation: KEY_VALUE_INFORMATION_CLASS = 1i32; +pub const KeyValueFullInformationAlign64: KEY_VALUE_INFORMATION_CLASS = 3i32; +pub const KeyValueLayerInformation: KEY_VALUE_INFORMATION_CLASS = 5i32; +pub const KeyValuePartialInformation: KEY_VALUE_INFORMATION_CLASS = 2i32; +pub const KeyValuePartialInformationAlign64: KEY_VALUE_INFORMATION_CLASS = 4i32; +pub const KeyVirtualizationInformation: KEY_INFORMATION_CLASS = 6i32; +pub const KeyboardController: CONFIGURATION_TYPE = 22i32; +pub const KeyboardPeripheral: CONFIGURATION_TYPE = 32i32; +pub const L0sAndL1EntryDisabled: PCI_EXPRESS_ASPM_CONTROL = 0i32; +pub const L0sAndL1EntryEnabled: PCI_EXPRESS_ASPM_CONTROL = 3i32; +pub const L0sAndL1EntrySupport: PCI_EXPRESS_ASPM_SUPPORT = 3i32; +pub const L0sEntryEnabled: PCI_EXPRESS_ASPM_CONTROL = 1i32; +pub const L0sEntrySupport: PCI_EXPRESS_ASPM_SUPPORT = 1i32; +pub const L0s_128ns_256ns: PCI_EXPRESS_L0s_EXIT_LATENCY = 2i32; +pub const L0s_1us_2us: PCI_EXPRESS_L0s_EXIT_LATENCY = 5i32; +pub const L0s_256ns_512ns: PCI_EXPRESS_L0s_EXIT_LATENCY = 3i32; +pub const L0s_2us_4us: PCI_EXPRESS_L0s_EXIT_LATENCY = 6i32; +pub const L0s_512ns_1us: PCI_EXPRESS_L0s_EXIT_LATENCY = 4i32; +pub const L0s_64ns_128ns: PCI_EXPRESS_L0s_EXIT_LATENCY = 1i32; +pub const L0s_Above4us: PCI_EXPRESS_L0s_EXIT_LATENCY = 7i32; +pub const L0s_Below64ns: PCI_EXPRESS_L0s_EXIT_LATENCY = 0i32; +pub const L1EntryEnabled: PCI_EXPRESS_ASPM_CONTROL = 2i32; +pub const L1EntrySupport: PCI_EXPRESS_ASPM_SUPPORT = 2i32; +pub const L1_16us_32us: PCI_EXPRESS_L1_EXIT_LATENCY = 5i32; +pub const L1_1us_2us: PCI_EXPRESS_L1_EXIT_LATENCY = 1i32; +pub const L1_2us_4us: PCI_EXPRESS_L1_EXIT_LATENCY = 2i32; +pub const L1_32us_64us: PCI_EXPRESS_L1_EXIT_LATENCY = 6i32; +pub const L1_4us_8us: PCI_EXPRESS_L1_EXIT_LATENCY = 3i32; +pub const L1_8us_16us: PCI_EXPRESS_L1_EXIT_LATENCY = 4i32; +pub const L1_Above64us: PCI_EXPRESS_L1_EXIT_LATENCY = 7i32; +pub const L1_Below1us: PCI_EXPRESS_L1_EXIT_LATENCY = 0i32; +pub const LOCK_QUEUE_HALTED: u32 = 4u32; +pub const LOCK_QUEUE_HALTED_BIT: u32 = 2u32; +pub const LOCK_QUEUE_OWNER: u32 = 2u32; +pub const LOCK_QUEUE_OWNER_BIT: u32 = 1u32; +pub const LOCK_QUEUE_WAIT: u32 = 1u32; +pub const LOCK_QUEUE_WAIT_BIT: u32 = 0u32; +pub const LONG_2ND_MOST_SIGNIFICANT_BIT: u32 = 2u32; +pub const LONG_3RD_MOST_SIGNIFICANT_BIT: u32 = 1u32; +pub const LONG_LEAST_SIGNIFICANT_BIT: u32 = 0u32; +pub const LONG_MOST_SIGNIFICANT_BIT: u32 = 3u32; +pub const LOWBYTE_MASK: u32 = 255u32; +pub const LOW_LEVEL: u32 = 0u32; +pub const LOW_PRIORITY: u32 = 0u32; +pub const LOW_REALTIME_PRIORITY: u32 = 16u32; +pub const LastDStateTransitionD3cold: D3COLD_LAST_TRANSITION_STATUS = 2i32; +pub const LastDStateTransitionD3hot: D3COLD_LAST_TRANSITION_STATUS = 1i32; +pub const LastDStateTransitionStatusUnknown: D3COLD_LAST_TRANSITION_STATUS = 0i32; +pub const LastDrvRtFlag: DRIVER_RUNTIME_INIT_FLAGS = 2i32; +pub const Latched: KINTERRUPT_MODE = 1i32; +pub const LevelSensitive: KINTERRUPT_MODE = 0i32; +pub const LinePeripheral: CONFIGURATION_TYPE = 35i32; +pub const LocateControl: NPEM_CONTROL_STANDARD_CONTROL_BIT = 3i32; +pub const LocationTypeFileSystem: STATE_LOCATION_TYPE = 1i32; +pub const LocationTypeMaximum: STATE_LOCATION_TYPE = 2i32; +pub const LocationTypeRegistry: STATE_LOCATION_TYPE = 0i32; +pub const LoggerEventsLoggedClass: TRACE_INFORMATION_CLASS = 10i32; +pub const LoggerEventsLostClass: TRACE_INFORMATION_CLASS = 8i32; +pub const LowImportance: KDPC_IMPORTANCE = 0i32; +pub const LowPagePriority: MM_PAGE_PRIORITY = 0i32; +pub const LowPoolPriority: EX_POOL_PRIORITY = 0i32; +pub const LowPoolPrioritySpecialPoolOverrun: EX_POOL_PRIORITY = 8i32; +pub const LowPoolPrioritySpecialPoolUnderrun: EX_POOL_PRIORITY = 9i32; +pub const MAXIMUM_DEBUG_BARS: u32 = 6u32; +pub const MAXIMUM_FILENAME_LENGTH: u32 = 256u32; +pub const MAXIMUM_PRIORITY: u32 = 32u32; +pub const MAX_EVENT_COUNTERS: u32 = 31u32; +pub const MCA_EXTREG_V2MAX: u32 = 24u32; +pub const MCE_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe8f56ffe_919c_4cc5_ba88_65abe14913bb); +pub const MDL_ALLOCATED_FIXED_SIZE: u32 = 8u32; +pub const MDL_DESCRIBES_AWE: u32 = 1024u32; +pub const MDL_FREE_EXTRA_PTES: u32 = 512u32; +pub const MDL_INTERNAL: u32 = 32768u32; +pub const MDL_LOCKED_PAGE_TABLES: u32 = 256u32; +pub const MDL_PAGE_CONTENTS_INVARIANT: u32 = 16384u32; +pub const MEMORY_CORRECTABLE_ERROR_SUMMARY_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e36c93e_ca15_4a83_ba8a_cbe80f7f0017); +pub const MEMORY_ERROR_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa5bc1114_6f64_4ede_b863_3e83ed7c83b1); +pub const MEM_COMMIT: u32 = 4096u32; +pub const MEM_DECOMMIT: u32 = 16384u32; +pub const MEM_EXTENDED_PARAMETER_EC_CODE: u32 = 64u32; +pub const MEM_EXTENDED_PARAMETER_TYPE_BITS: u32 = 8u32; +pub const MEM_LARGE_PAGES: u32 = 536870912u32; +pub const MEM_MAPPED: u32 = 262144u32; +pub const MEM_PRIVATE: u32 = 131072u32; +pub const MEM_RELEASE: u32 = 32768u32; +pub const MEM_RESERVE: u32 = 8192u32; +pub const MEM_RESET: u32 = 524288u32; +pub const MEM_RESET_UNDO: u32 = 16777216u32; +pub const MEM_TOP_DOWN: u32 = 1048576u32; +pub const MM_ADD_PHYSICAL_MEMORY_ALREADY_ZEROED: u32 = 1u32; +pub const MM_ADD_PHYSICAL_MEMORY_HUGE_PAGES_ONLY: u32 = 4u32; +pub const MM_ADD_PHYSICAL_MEMORY_LARGE_PAGES_ONLY: u32 = 2u32; +pub const MM_ALLOCATE_AND_HOT_REMOVE: u32 = 256u32; +pub const MM_ALLOCATE_CONTIGUOUS_MEMORY_FAST_ONLY: u32 = 1u32; +pub const MM_ALLOCATE_FAST_LARGE_PAGES: u32 = 64u32; +pub const MM_ALLOCATE_FROM_LOCAL_NODE_ONLY: u32 = 2u32; +pub const MM_ALLOCATE_FULLY_REQUIRED: u32 = 4u32; +pub const MM_ALLOCATE_NO_WAIT: u32 = 8u32; +pub const MM_ALLOCATE_PREFER_CONTIGUOUS: u32 = 16u32; +pub const MM_ALLOCATE_REQUIRE_CONTIGUOUS_CHUNKS: u32 = 32u32; +pub const MM_ALLOCATE_TRIM_IF_NECESSARY: u32 = 128u32; +pub const MM_ANY_NODE_OK: u32 = 2147483648u32; +pub const MM_COPY_MEMORY_PHYSICAL: u32 = 1u32; +pub const MM_COPY_MEMORY_VIRTUAL: u32 = 2u32; +pub const MM_DONT_ZERO_ALLOCATION: u32 = 1u32; +pub const MM_DUMP_MAP_CACHED: u32 = 1u32; +pub const MM_DUMP_MAP_INVALIDATE: u32 = 2u32; +pub const MM_FREE_MDL_PAGES_ZERO: u32 = 1u32; +pub const MM_GET_CACHE_ATTRIBUTE_IO_SPACE: u32 = 1u32; +pub const MM_GET_PHYSICAL_MEMORY_RANGES_INCLUDE_ALL_PARTITIONS: u32 = 2u32; +pub const MM_GET_PHYSICAL_MEMORY_RANGES_INCLUDE_FILE_ONLY: u32 = 1u32; +pub const MM_MAPPING_ADDRESS_DIVISIBLE: u32 = 1u32; +pub const MM_MAXIMUM_DISK_IO_SIZE: u32 = 65536u32; +pub const MM_PERMANENT_ADDRESS_IS_IO_SPACE: u32 = 1u32; +pub const MM_PROTECT_DRIVER_SECTION_ALLOW_UNLOAD: u32 = 1u32; +pub const MM_PROTECT_DRIVER_SECTION_VALID_FLAGS: u32 = 1u32; +pub const MM_REMOVE_PHYSICAL_MEMORY_BAD_ONLY: u32 = 1u32; +pub const MM_SECURE_EXCLUSIVE: u32 = 1u32; +pub const MM_SECURE_NO_CHANGE: u32 = 2u32; +pub const MM_SECURE_NO_INHERIT: u32 = 8u32; +pub const MM_SECURE_USER_MODE_ONLY: u32 = 4u32; +pub const MM_SYSTEM_SPACE_END: u32 = 4294967295u32; +pub const MM_SYSTEM_VIEW_EXCEPTIONS_FOR_INPAGE_ERRORS: u32 = 1u32; +pub const MPIBus: INTERFACE_TYPE = 10i32; +pub const MPIConfiguration: BUS_DATA_TYPE = 8i32; +pub const MPSABus: INTERFACE_TYPE = 11i32; +pub const MPSAConfiguration: BUS_DATA_TYPE = 9i32; +pub const MRLClosed: PCI_EXPRESS_MRL_STATE = 0i32; +pub const MRLOpen: PCI_EXPRESS_MRL_STATE = 1i32; +pub const MU_TELEMETRY_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x85183a8b_9c41_429c_939c_5c3c087ca280); +pub const MapPhysicalAddressTypeContiguousRange: IOMMU_MAP_PHYSICAL_ADDRESS_TYPE = 1i32; +pub const MapPhysicalAddressTypeMax: IOMMU_MAP_PHYSICAL_ADDRESS_TYPE = 3i32; +pub const MapPhysicalAddressTypeMdl: IOMMU_MAP_PHYSICAL_ADDRESS_TYPE = 0i32; +pub const MapPhysicalAddressTypePfn: IOMMU_MAP_PHYSICAL_ADDRESS_TYPE = 2i32; +pub const MaxFaultType: FAULT_INFORMATION_ARM64_TYPE = 7i32; +pub const MaxHardwareCounterType: HARDWARE_COUNTER_TYPE = 1i32; +pub const MaxKeyInfoClass: KEY_INFORMATION_CLASS = 10i32; +pub const MaxKeyValueInfoClass: KEY_VALUE_INFORMATION_CLASS = 6i32; +pub const MaxPayload1024Bytes: PCI_EXPRESS_MAX_PAYLOAD_SIZE = 3i32; +pub const MaxPayload128Bytes: PCI_EXPRESS_MAX_PAYLOAD_SIZE = 0i32; +pub const MaxPayload2048Bytes: PCI_EXPRESS_MAX_PAYLOAD_SIZE = 4i32; +pub const MaxPayload256Bytes: PCI_EXPRESS_MAX_PAYLOAD_SIZE = 1i32; +pub const MaxPayload4096Bytes: PCI_EXPRESS_MAX_PAYLOAD_SIZE = 5i32; +pub const MaxPayload512Bytes: PCI_EXPRESS_MAX_PAYLOAD_SIZE = 2i32; +pub const MaxRegNtNotifyClass: REG_NOTIFY_CLASS = 51i32; +pub const MaxSubsystemInformationType: SUBSYSTEM_INFORMATION_TYPE = 2i32; +pub const MaxTimerInfoClass: TIMER_SET_INFORMATION_CLASS = 1i32; +pub const MaxTraceInformationClass: TRACE_INFORMATION_CLASS = 16i32; +pub const MaximumBusDataType: BUS_DATA_TYPE = 12i32; +pub const MaximumDmaSpeed: DMA_SPEED = 5i32; +pub const MaximumDmaWidth: DMA_WIDTH = 5i32; +pub const MaximumInterfaceType: INTERFACE_TYPE = 18i32; +pub const MaximumMode: MODE = 2i32; +pub const MaximumType: CONFIGURATION_TYPE = 41i32; +pub const MaximumWaitReason: KWAIT_REASON = 42i32; +pub const MaximumWorkQueue: WORK_QUEUE_TYPE = 7i32; +pub const MdlMappingNoExecute: u32 = 1073741824u32; +pub const MdlMappingNoWrite: u32 = 2147483648u32; +pub const MdlMappingWithGuardPtes: u32 = 536870912u32; +pub const MediumHighImportance: KDPC_IMPORTANCE = 3i32; +pub const MediumImportance: KDPC_IMPORTANCE = 1i32; +pub const MemDedicatedAttributeMax: MEM_DEDICATED_ATTRIBUTE_TYPE = 4i32; +pub const MemDedicatedAttributeReadBandwidth: MEM_DEDICATED_ATTRIBUTE_TYPE = 0i32; +pub const MemDedicatedAttributeReadLatency: MEM_DEDICATED_ATTRIBUTE_TYPE = 1i32; +pub const MemDedicatedAttributeWriteBandwidth: MEM_DEDICATED_ATTRIBUTE_TYPE = 2i32; +pub const MemDedicatedAttributeWriteLatency: MEM_DEDICATED_ATTRIBUTE_TYPE = 3i32; +pub const MemSectionExtendedParameterInvalidType: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 0i32; +pub const MemSectionExtendedParameterMax: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 4i32; +pub const MemSectionExtendedParameterNumaNode: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 2i32; +pub const MemSectionExtendedParameterSigningLevel: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 3i32; +pub const MemSectionExtendedParameterUserPhysicalFlags: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 1i32; +pub const MicroChannel: INTERFACE_TYPE = 3i32; +pub const MmCached: MEMORY_CACHING_TYPE = 1i32; +pub const MmFrameBufferCached: MEMORY_CACHING_TYPE_ORIG = 2i32; +pub const MmHardwareCoherentCached: MEMORY_CACHING_TYPE = 3i32; +pub const MmLargeSystem: MM_SYSTEMSIZE = 2i32; +pub const MmMaximumCacheType: MEMORY_CACHING_TYPE = 6i32; +pub const MmMaximumRotateDirection: MM_ROTATE_DIRECTION = 4i32; +pub const MmMdlPageContentsDynamic: MM_MDL_PAGE_CONTENTS_STATE = 0i32; +pub const MmMdlPageContentsInvariant: MM_MDL_PAGE_CONTENTS_STATE = 1i32; +pub const MmMdlPageContentsQuery: MM_MDL_PAGE_CONTENTS_STATE = 2i32; +pub const MmMediumSystem: MM_SYSTEMSIZE = 1i32; +pub const MmNonCached: MEMORY_CACHING_TYPE = 0i32; +pub const MmNonCachedUnordered: MEMORY_CACHING_TYPE = 4i32; +pub const MmNotMapped: MEMORY_CACHING_TYPE = -1i32; +pub const MmSmallSystem: MM_SYSTEMSIZE = 0i32; +pub const MmToFrameBuffer: MM_ROTATE_DIRECTION = 0i32; +pub const MmToFrameBufferNoCopy: MM_ROTATE_DIRECTION = 1i32; +pub const MmToRegularMemory: MM_ROTATE_DIRECTION = 2i32; +pub const MmToRegularMemoryNoCopy: MM_ROTATE_DIRECTION = 3i32; +pub const MmUSWCCached: MEMORY_CACHING_TYPE = 5i32; +pub const MmWriteCombined: MEMORY_CACHING_TYPE = 2i32; +pub const ModemPeripheral: CONFIGURATION_TYPE = 28i32; +pub const ModifyAccess: IO_ACCESS_TYPE = 2i32; +pub const MonitorPeripheral: CONFIGURATION_TYPE = 29i32; +pub const MonitorRequestReasonAcDcDisplayBurst: POWER_MONITOR_REQUEST_REASON = 5i32; +pub const MonitorRequestReasonAcDcDisplayBurstSuppressed: POWER_MONITOR_REQUEST_REASON = 28i32; +pub const MonitorRequestReasonBatteryCountChange: POWER_MONITOR_REQUEST_REASON = 16i32; +pub const MonitorRequestReasonBatteryCountChangeSuppressed: POWER_MONITOR_REQUEST_REASON = 49i32; +pub const MonitorRequestReasonBatteryPreCritical: POWER_MONITOR_REQUEST_REASON = 53i32; +pub const MonitorRequestReasonBuiltinPanel: POWER_MONITOR_REQUEST_REASON = 47i32; +pub const MonitorRequestReasonDP: POWER_MONITOR_REQUEST_REASON = 19i32; +pub const MonitorRequestReasonDim: POWER_MONITOR_REQUEST_REASON = 46i32; +pub const MonitorRequestReasonDirectedDrips: POWER_MONITOR_REQUEST_REASON = 45i32; +pub const MonitorRequestReasonDisplayRequiredUnDim: POWER_MONITOR_REQUEST_REASON = 48i32; +pub const MonitorRequestReasonFullWake: POWER_MONITOR_REQUEST_REASON = 9i32; +pub const MonitorRequestReasonGracePeriod: POWER_MONITOR_REQUEST_REASON = 17i32; +pub const MonitorRequestReasonIdleTimeout: POWER_MONITOR_REQUEST_REASON = 12i32; +pub const MonitorRequestReasonLid: POWER_MONITOR_REQUEST_REASON = 15i32; +pub const MonitorRequestReasonMax: POWER_MONITOR_REQUEST_REASON = 55i32; +pub const MonitorRequestReasonNearProximity: POWER_MONITOR_REQUEST_REASON = 22i32; +pub const MonitorRequestReasonPdcSignal: POWER_MONITOR_REQUEST_REASON = 27i32; +pub const MonitorRequestReasonPdcSignalFingerprint: POWER_MONITOR_REQUEST_REASON = 44i32; +pub const MonitorRequestReasonPdcSignalHeyCortana: POWER_MONITOR_REQUEST_REASON = 42i32; +pub const MonitorRequestReasonPdcSignalHolographicShell: POWER_MONITOR_REQUEST_REASON = 43i32; +pub const MonitorRequestReasonPdcSignalSensorsHumanPresence: POWER_MONITOR_REQUEST_REASON = 52i32; +pub const MonitorRequestReasonPdcSignalWindowsMobilePwrNotif: POWER_MONITOR_REQUEST_REASON = 40i32; +pub const MonitorRequestReasonPdcSignalWindowsMobileShell: POWER_MONITOR_REQUEST_REASON = 41i32; +pub const MonitorRequestReasonPnP: POWER_MONITOR_REQUEST_REASON = 18i32; +pub const MonitorRequestReasonPoSetSystemState: POWER_MONITOR_REQUEST_REASON = 7i32; +pub const MonitorRequestReasonPolicyChange: POWER_MONITOR_REQUEST_REASON = 13i32; +pub const MonitorRequestReasonPowerButton: POWER_MONITOR_REQUEST_REASON = 1i32; +pub const MonitorRequestReasonRemoteConnection: POWER_MONITOR_REQUEST_REASON = 2i32; +pub const MonitorRequestReasonResumeModernStandby: POWER_MONITOR_REQUEST_REASON = 50i32; +pub const MonitorRequestReasonResumePdc: POWER_MONITOR_REQUEST_REASON = 24i32; +pub const MonitorRequestReasonResumeS4: POWER_MONITOR_REQUEST_REASON = 25i32; +pub const MonitorRequestReasonScMonitorpower: POWER_MONITOR_REQUEST_REASON = 3i32; +pub const MonitorRequestReasonScreenOffRequest: POWER_MONITOR_REQUEST_REASON = 11i32; +pub const MonitorRequestReasonSessionUnlock: POWER_MONITOR_REQUEST_REASON = 10i32; +pub const MonitorRequestReasonSetThreadExecutionState: POWER_MONITOR_REQUEST_REASON = 8i32; +pub const MonitorRequestReasonSleepButton: POWER_MONITOR_REQUEST_REASON = 14i32; +pub const MonitorRequestReasonSxTransition: POWER_MONITOR_REQUEST_REASON = 20i32; +pub const MonitorRequestReasonSystemIdle: POWER_MONITOR_REQUEST_REASON = 21i32; +pub const MonitorRequestReasonSystemStateEntered: POWER_MONITOR_REQUEST_REASON = 29i32; +pub const MonitorRequestReasonTerminal: POWER_MONITOR_REQUEST_REASON = 26i32; +pub const MonitorRequestReasonTerminalInit: POWER_MONITOR_REQUEST_REASON = 51i32; +pub const MonitorRequestReasonThermalStandby: POWER_MONITOR_REQUEST_REASON = 23i32; +pub const MonitorRequestReasonUnknown: POWER_MONITOR_REQUEST_REASON = 0i32; +pub const MonitorRequestReasonUserDisplayBurst: POWER_MONITOR_REQUEST_REASON = 6i32; +pub const MonitorRequestReasonUserInput: POWER_MONITOR_REQUEST_REASON = 4i32; +pub const MonitorRequestReasonUserInputAccelerometer: POWER_MONITOR_REQUEST_REASON = 35i32; +pub const MonitorRequestReasonUserInputHid: POWER_MONITOR_REQUEST_REASON = 36i32; +pub const MonitorRequestReasonUserInputInitialization: POWER_MONITOR_REQUEST_REASON = 39i32; +pub const MonitorRequestReasonUserInputKeyboard: POWER_MONITOR_REQUEST_REASON = 31i32; +pub const MonitorRequestReasonUserInputMouse: POWER_MONITOR_REQUEST_REASON = 32i32; +pub const MonitorRequestReasonUserInputPen: POWER_MONITOR_REQUEST_REASON = 34i32; +pub const MonitorRequestReasonUserInputPoUserPresent: POWER_MONITOR_REQUEST_REASON = 37i32; +pub const MonitorRequestReasonUserInputSessionSwitch: POWER_MONITOR_REQUEST_REASON = 38i32; +pub const MonitorRequestReasonUserInputTouch: POWER_MONITOR_REQUEST_REASON = 54i32; +pub const MonitorRequestReasonUserInputTouchpad: POWER_MONITOR_REQUEST_REASON = 33i32; +pub const MonitorRequestReasonWinrt: POWER_MONITOR_REQUEST_REASON = 30i32; +pub const MonitorRequestTypeOff: POWER_MONITOR_REQUEST_TYPE = 0i32; +pub const MonitorRequestTypeOnAndPresent: POWER_MONITOR_REQUEST_TYPE = 1i32; +pub const MonitorRequestTypeToggleOn: POWER_MONITOR_REQUEST_TYPE = 2i32; +pub const MultiFunctionAdapter: CONFIGURATION_TYPE = 12i32; +pub const NEC98x86: ALTERNATIVE_ARCHITECTURE_TYPE = 1i32; +pub const NMI_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5bad89ff_b7e6_42c9_814a_cf2485d6e98a); +pub const NMI_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe71254e7_c1b9_4940_ab76_909703a4320f); +pub const NPEM_CONTROL_INTERFACE_CURRENT_VERSION: u32 = 2u32; +pub const NPEM_CONTROL_INTERFACE_VERSION1: u32 = 1u32; +pub const NPEM_CONTROL_INTERFACE_VERSION2: u32 = 2u32; +pub const NT_PAGING_LEVELS: u32 = 2u32; +pub const NX_SUPPORT_POLICY_ALWAYSOFF: u32 = 0u32; +pub const NX_SUPPORT_POLICY_ALWAYSON: u32 = 1u32; +pub const NX_SUPPORT_POLICY_OPTIN: u32 = 2u32; +pub const NX_SUPPORT_POLICY_OPTOUT: u32 = 3u32; +pub const NetworkController: CONFIGURATION_TYPE = 18i32; +pub const NetworkPeripheral: CONFIGURATION_TYPE = 36i32; +pub const NoAspmSupport: PCI_EXPRESS_ASPM_SUPPORT = 0i32; +pub const NormalPagePriority: MM_PAGE_PRIORITY = 16i32; +pub const NormalPoolPriority: EX_POOL_PRIORITY = 16i32; +pub const NormalPoolPrioritySpecialPoolOverrun: EX_POOL_PRIORITY = 24i32; +pub const NormalPoolPrioritySpecialPoolUnderrun: EX_POOL_PRIORITY = 25i32; +pub const NormalWorkQueue: WORK_QUEUE_TYPE = 3i32; +pub const NuBus: INTERFACE_TYPE = 7i32; +pub const NuBusConfiguration: BUS_DATA_TYPE = 6i32; +pub const OBJECT_TYPE_CREATE: u32 = 1u32; +pub const OB_FLT_REGISTRATION_VERSION: u32 = 256u32; +pub const OB_FLT_REGISTRATION_VERSION_0100: u32 = 256u32; +pub const OB_OPERATION_HANDLE_CREATE: u32 = 1u32; +pub const OB_OPERATION_HANDLE_DUPLICATE: u32 = 2u32; +pub const OB_PREOP_SUCCESS: OB_PREOP_CALLBACK_STATUS = 0i32; +pub const OPLOCK_KEY_FLAG_PARENT_KEY: u32 = 1u32; +pub const OPLOCK_KEY_FLAG_TARGET_KEY: u32 = 2u32; +pub const OPLOCK_KEY_VERSION_WIN7: u32 = 1u32; +pub const OPLOCK_KEY_VERSION_WIN8: u32 = 2u32; +pub const OSC_CAPABILITIES_MASKED: u32 = 16u32; +pub const OSC_FIRMWARE_FAILURE: u32 = 2u32; +pub const OSC_UNRECOGNIZED_REVISION: u32 = 8u32; +pub const OSC_UNRECOGNIZED_UUID: u32 = 4u32; +pub const OkControl: NPEM_CONTROL_STANDARD_CONTROL_BIT = 2i32; +pub const OtherController: CONFIGURATION_TYPE = 24i32; +pub const OtherPeripheral: CONFIGURATION_TYPE = 34i32; +pub const PAGE_ENCLAVE_NO_CHANGE: u32 = 536870912u32; +pub const PAGE_ENCLAVE_THREAD_CONTROL: u32 = 2147483648u32; +pub const PAGE_ENCLAVE_UNVALIDATED: u32 = 536870912u32; +pub const PAGE_EXECUTE: u32 = 16u32; +pub const PAGE_EXECUTE_READ: u32 = 32u32; +pub const PAGE_EXECUTE_READWRITE: u32 = 64u32; +pub const PAGE_EXECUTE_WRITECOPY: u32 = 128u32; +pub const PAGE_GRAPHICS_COHERENT: u32 = 131072u32; +pub const PAGE_GRAPHICS_EXECUTE: u32 = 16384u32; +pub const PAGE_GRAPHICS_EXECUTE_READ: u32 = 32768u32; +pub const PAGE_GRAPHICS_EXECUTE_READWRITE: u32 = 65536u32; +pub const PAGE_GRAPHICS_NOACCESS: u32 = 2048u32; +pub const PAGE_GRAPHICS_NOCACHE: u32 = 262144u32; +pub const PAGE_GRAPHICS_READONLY: u32 = 4096u32; +pub const PAGE_GRAPHICS_READWRITE: u32 = 8192u32; +pub const PAGE_GUARD: u32 = 256u32; +pub const PAGE_NOACCESS: u32 = 1u32; +pub const PAGE_NOCACHE: u32 = 512u32; +pub const PAGE_READONLY: u32 = 2u32; +pub const PAGE_READWRITE: u32 = 4u32; +pub const PAGE_REVERT_TO_FILE_MAP: u32 = 2147483648u32; +pub const PAGE_SHIFT: i32 = 12i32; +pub const PAGE_SIZE: u32 = 4096u32; +pub const PAGE_TARGETS_INVALID: u32 = 1073741824u32; +pub const PAGE_TARGETS_NO_UPDATE: u32 = 1073741824u32; +pub const PAGE_WRITECOMBINE: u32 = 1024u32; +pub const PAGE_WRITECOPY: u32 = 8u32; +pub const PARKING_TOPOLOGY_POLICY_DISABLED: u32 = 0u32; +pub const PASSIVE_LEVEL: u32 = 0u32; +pub const PCCARD_DEVICE_PCI: u32 = 16u32; +pub const PCCARD_DUP_LEGACY_BASE: u32 = 6u32; +pub const PCCARD_MAP_ERROR: u32 = 1u32; +pub const PCCARD_MAP_ZERO: u32 = 2u32; +pub const PCCARD_NO_CONTROLLERS: u32 = 7u32; +pub const PCCARD_NO_LEGACY_BASE: u32 = 5u32; +pub const PCCARD_NO_PIC: u32 = 4u32; +pub const PCCARD_NO_TIMER: u32 = 3u32; +pub const PCCARD_SCAN_DISABLED: u32 = 1u32; +pub const PCIBus: INTERFACE_TYPE = 5i32; +pub const PCIConfiguration: BUS_DATA_TYPE = 4i32; +pub const PCIEXPRESS_ERROR_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd995e954_bbc1_430f_ad91_b44dcb3c6f35); +pub const PCIE_CORRECTABLE_ERROR_SUMMARY_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe96eca99_53e2_4f52_9be7_d2dbe9508ed0); +pub const PCIXBUS_ERROR_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc5753963_3b84_4095_bf78_eddad3f9c9dd); +pub const PCIXBUS_ERRTYPE_ADDRESSPARITY: u32 = 6u32; +pub const PCIXBUS_ERRTYPE_BUSTIMEOUT: u32 = 4u32; +pub const PCIXBUS_ERRTYPE_COMMANDPARITY: u32 = 7u32; +pub const PCIXBUS_ERRTYPE_DATAPARITY: u32 = 1u32; +pub const PCIXBUS_ERRTYPE_MASTERABORT: u32 = 3u32; +pub const PCIXBUS_ERRTYPE_MASTERDATAPARITY: u32 = 5u32; +pub const PCIXBUS_ERRTYPE_SYSTEM: u32 = 2u32; +pub const PCIXBUS_ERRTYPE_UNKNOWN: u32 = 0u32; +pub const PCIXDEVICE_ERROR_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeb5e4685_ca66_4769_b6a2_26068b001326); +pub const PCIX_MODE1_100MHZ: u32 = 2u32; +pub const PCIX_MODE1_133MHZ: u32 = 3u32; +pub const PCIX_MODE1_66MHZ: u32 = 1u32; +pub const PCIX_MODE2_266_100MHZ: u32 = 10u32; +pub const PCIX_MODE2_266_133MHZ: u32 = 11u32; +pub const PCIX_MODE2_266_66MHZ: u32 = 9u32; +pub const PCIX_MODE2_533_100MHZ: u32 = 14u32; +pub const PCIX_MODE2_533_133MHZ: u32 = 15u32; +pub const PCIX_MODE2_533_66MHZ: u32 = 13u32; +pub const PCIX_MODE_CONVENTIONAL_PCI: u32 = 0u32; +pub const PCIX_VERSION_DUAL_MODE_ECC: u32 = 2u32; +pub const PCIX_VERSION_MODE1_ONLY: u32 = 0u32; +pub const PCIX_VERSION_MODE2_ECC: u32 = 1u32; +pub const PCI_ACS_ALLOWED: u32 = 0u32; +pub const PCI_ACS_BLOCKED: u32 = 1u32; +pub const PCI_ACS_REDIRECTED: u32 = 2u32; +pub const PCI_ADDRESS_IO_ADDRESS_MASK: u32 = 4294967292u32; +pub const PCI_ADDRESS_IO_SPACE: u32 = 1u32; +pub const PCI_ADDRESS_MEMORY_ADDRESS_MASK: u32 = 4294967280u32; +pub const PCI_ADDRESS_MEMORY_PREFETCHABLE: u32 = 8u32; +pub const PCI_ADDRESS_MEMORY_TYPE_MASK: u32 = 6u32; +pub const PCI_ADDRESS_ROM_ADDRESS_MASK: u32 = 4294965248u32; +pub const PCI_AGP_RATE_1X: u32 = 1u32; +pub const PCI_AGP_RATE_2X: u32 = 2u32; +pub const PCI_AGP_RATE_4X: u32 = 4u32; +pub const PCI_ATS_INTERFACE_VERSION: u32 = 1u32; +pub const PCI_BRIDGE_TYPE: u32 = 1u32; +pub const PCI_BUS_INTERFACE_STANDARD_VERSION: u32 = 2u32; +pub const PCI_CAPABILITY_ID_ADVANCED_FEATURES: u32 = 19u32; +pub const PCI_CAPABILITY_ID_AGP: u32 = 2u32; +pub const PCI_CAPABILITY_ID_AGP_TARGET: u32 = 14u32; +pub const PCI_CAPABILITY_ID_CPCI_HOTSWAP: u32 = 6u32; +pub const PCI_CAPABILITY_ID_CPCI_RES_CTRL: u32 = 11u32; +pub const PCI_CAPABILITY_ID_DEBUG_PORT: u32 = 10u32; +pub const PCI_CAPABILITY_ID_FPB: u32 = 21u32; +pub const PCI_CAPABILITY_ID_HYPERTRANSPORT: u32 = 8u32; +pub const PCI_CAPABILITY_ID_MSI: u32 = 5u32; +pub const PCI_CAPABILITY_ID_MSIX: u32 = 17u32; +pub const PCI_CAPABILITY_ID_P2P_SSID: u32 = 13u32; +pub const PCI_CAPABILITY_ID_PCIX: u32 = 7u32; +pub const PCI_CAPABILITY_ID_PCI_EXPRESS: u32 = 16u32; +pub const PCI_CAPABILITY_ID_POWER_MANAGEMENT: u32 = 1u32; +pub const PCI_CAPABILITY_ID_SATA_CONFIG: u32 = 18u32; +pub const PCI_CAPABILITY_ID_SECURE: u32 = 15u32; +pub const PCI_CAPABILITY_ID_SHPC: u32 = 12u32; +pub const PCI_CAPABILITY_ID_SLOT_ID: u32 = 4u32; +pub const PCI_CAPABILITY_ID_VENDOR_SPECIFIC: u32 = 9u32; +pub const PCI_CAPABILITY_ID_VPD: u32 = 3u32; +pub const PCI_CARDBUS_BRIDGE_TYPE: u32 = 2u32; +pub const PCI_CLASS_BASE_SYSTEM_DEV: u32 = 8u32; +pub const PCI_CLASS_BRIDGE_DEV: u32 = 6u32; +pub const PCI_CLASS_DATA_ACQ_SIGNAL_PROC: u32 = 17u32; +pub const PCI_CLASS_DISPLAY_CTLR: u32 = 3u32; +pub const PCI_CLASS_DOCKING_STATION: u32 = 10u32; +pub const PCI_CLASS_ENCRYPTION_DECRYPTION: u32 = 16u32; +pub const PCI_CLASS_INPUT_DEV: u32 = 9u32; +pub const PCI_CLASS_INTELLIGENT_IO_CTLR: u32 = 14u32; +pub const PCI_CLASS_MASS_STORAGE_CTLR: u32 = 1u32; +pub const PCI_CLASS_MEMORY_CTLR: u32 = 5u32; +pub const PCI_CLASS_MULTIMEDIA_DEV: u32 = 4u32; +pub const PCI_CLASS_NETWORK_CTLR: u32 = 2u32; +pub const PCI_CLASS_NOT_DEFINED: u32 = 255u32; +pub const PCI_CLASS_PRE_20: u32 = 0u32; +pub const PCI_CLASS_PROCESSOR: u32 = 11u32; +pub const PCI_CLASS_SATELLITE_COMMS_CTLR: u32 = 15u32; +pub const PCI_CLASS_SERIAL_BUS_CTLR: u32 = 12u32; +pub const PCI_CLASS_SIMPLE_COMMS_CTLR: u32 = 7u32; +pub const PCI_CLASS_WIRELESS_CTLR: u32 = 13u32; +pub const PCI_DATA_VERSION: u32 = 1u32; +pub const PCI_DEVICE_PRESENT_INTERFACE_VERSION: u32 = 1u32; +pub const PCI_DEVICE_TYPE: u32 = 0u32; +pub const PCI_DISABLE_LEVEL_INTERRUPT: u32 = 1024u32; +pub const PCI_ENABLE_BUS_MASTER: u32 = 4u32; +pub const PCI_ENABLE_FAST_BACK_TO_BACK: u32 = 512u32; +pub const PCI_ENABLE_IO_SPACE: u32 = 1u32; +pub const PCI_ENABLE_MEMORY_SPACE: u32 = 2u32; +pub const PCI_ENABLE_PARITY: u32 = 64u32; +pub const PCI_ENABLE_SERR: u32 = 256u32; +pub const PCI_ENABLE_SPECIAL_CYCLES: u32 = 8u32; +pub const PCI_ENABLE_VGA_COMPATIBLE_PALETTE: u32 = 32u32; +pub const PCI_ENABLE_WAIT_CYCLE: u32 = 128u32; +pub const PCI_ENABLE_WRITE_AND_INVALIDATE: u32 = 16u32; +pub const PCI_EXPRESS_ACCESS_CONTROL_SERVICES_CAP_ID: u32 = 13u32; +pub const PCI_EXPRESS_ADVANCED_ERROR_REPORTING_CAP_ID: u32 = 1u32; +pub const PCI_EXPRESS_ARI_CAP_ID: u32 = 14u32; +pub const PCI_EXPRESS_ATS_CAP_ID: u32 = 15u32; +pub const PCI_EXPRESS_CONFIGURATION_ACCESS_CORRELATION_CAP_ID: u32 = 12u32; +pub const PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_CAP_ID: u32 = 35u32; +pub const PCI_EXPRESS_DEVICE_SERIAL_NUMBER_CAP_ID: u32 = 3u32; +pub const PCI_EXPRESS_DPA_CAP_ID: u32 = 22u32; +pub const PCI_EXPRESS_DPC_CAP_ID: u32 = 29u32; +pub const PCI_EXPRESS_FRS_QUEUEING_CAP_ID: u32 = 33u32; +pub const PCI_EXPRESS_L1_PM_SS_CAP_ID: u32 = 30u32; +pub const PCI_EXPRESS_LINK_QUIESCENT_INTERFACE_VERSION: u32 = 1u32; +pub const PCI_EXPRESS_LN_REQUESTER_CAP_ID: u32 = 28u32; +pub const PCI_EXPRESS_LTR_CAP_ID: u32 = 24u32; +pub const PCI_EXPRESS_MFVC_CAP_ID: u32 = 8u32; +pub const PCI_EXPRESS_MPCIE_CAP_ID: u32 = 32u32; +pub const PCI_EXPRESS_MULTICAST_CAP_ID: u32 = 18u32; +pub const PCI_EXPRESS_MULTI_ROOT_IO_VIRTUALIZATION_CAP_ID: u32 = 17u32; +pub const PCI_EXPRESS_NPEM_CAP_ID: u32 = 41u32; +pub const PCI_EXPRESS_PAGE_REQUEST_CAP_ID: u32 = 19u32; +pub const PCI_EXPRESS_PASID_CAP_ID: u32 = 27u32; +pub const PCI_EXPRESS_PMUX_CAP_ID: u32 = 26u32; +pub const PCI_EXPRESS_POWER_BUDGETING_CAP_ID: u32 = 4u32; +pub const PCI_EXPRESS_PTM_CAP_ID: u32 = 31u32; +pub const PCI_EXPRESS_RCRB_HEADER_CAP_ID: u32 = 10u32; +pub const PCI_EXPRESS_RC_EVENT_COLLECTOR_ENDPOINT_ASSOCIATION_CAP_ID: u32 = 7u32; +pub const PCI_EXPRESS_RC_INTERNAL_LINK_CONTROL_CAP_ID: u32 = 6u32; +pub const PCI_EXPRESS_RC_LINK_DECLARATION_CAP_ID: u32 = 5u32; +pub const PCI_EXPRESS_READINESS_TIME_REPORTING_CAP_ID: u32 = 34u32; +pub const PCI_EXPRESS_RESERVED_FOR_AMD_CAP_ID: u32 = 20u32; +pub const PCI_EXPRESS_RESIZABLE_BAR_CAP_ID: u32 = 21u32; +pub const PCI_EXPRESS_ROOT_PORT_INTERFACE_VERSION: u32 = 1u32; +pub const PCI_EXPRESS_SECONDARY_PCI_EXPRESS_CAP_ID: u32 = 25u32; +pub const PCI_EXPRESS_SINGLE_ROOT_IO_VIRTUALIZATION_CAP_ID: u32 = 16u32; +pub const PCI_EXPRESS_TPH_REQUESTER_CAP_ID: u32 = 23u32; +pub const PCI_EXPRESS_TPH_ST_LOCATION_MSIX_TABLE: u32 = 2u32; +pub const PCI_EXPRESS_TPH_ST_LOCATION_NONE: u32 = 0u32; +pub const PCI_EXPRESS_TPH_ST_LOCATION_RESERVED: u32 = 3u32; +pub const PCI_EXPRESS_TPH_ST_LOCATION_TPH_CAPABILITY: u32 = 1u32; +pub const PCI_EXPRESS_VC_AND_MFVC_CAP_ID: u32 = 9u32; +pub const PCI_EXPRESS_VENDOR_SPECIFIC_CAP_ID: u32 = 11u32; +pub const PCI_EXPRESS_VIRTUAL_CHANNEL_CAP_ID: u32 = 2u32; +pub const PCI_EXTENDED_CONFIG_LENGTH: u32 = 4096u32; +pub const PCI_INVALID_ALTERNATE_FUNCTION_NUMBER: u32 = 255u32; +pub const PCI_INVALID_VENDORID: u32 = 65535u32; +pub const PCI_MAX_BRIDGE_NUMBER: u32 = 255u32; +pub const PCI_MAX_DEVICES: u32 = 32u32; +pub const PCI_MAX_FUNCTION: u32 = 8u32; +pub const PCI_MAX_SEGMENT_NUMBER: u32 = 65535u32; +pub const PCI_MSIX_TABLE_CONFIG_INTERFACE_VERSION: u32 = 1u32; +pub const PCI_MULTIFUNCTION: u32 = 128u32; +pub const PCI_PROGRAMMING_INTERFACE_MSC_NVM_EXPRESS: u32 = 2u32; +pub const PCI_PTM_TIME_SOURCE_AUX: u32 = 4294967295u32; +pub const PCI_RECOVERY_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdd060800_f6e1_4204_ac27_c4bca9568402); +pub const PCI_ROMADDRESS_ENABLED: u32 = 1u32; +pub const PCI_ROOT_BUS_OSC_METHOD_CAPABILITY_REVISION: u32 = 1u32; +pub const PCI_SECURITY_DIRECT_TRANSLATED_P2P: u32 = 4u32; +pub const PCI_SECURITY_ENHANCED: u32 = 2u32; +pub const PCI_SECURITY_FULLY_SUPPORTED: u32 = 1u32; +pub const PCI_SECURITY_GUEST_ASSIGNED: u32 = 1u32; +pub const PCI_SECURITY_INTERFACE_VERSION: u32 = 1u32; +pub const PCI_SECURITY_INTERFACE_VERSION2: u32 = 2u32; +pub const PCI_SECURITY_SRIOV_DIRECT_TRANSLATED_P2P: u32 = 262144u32; +pub const PCI_STATUS_66MHZ_CAPABLE: u32 = 32u32; +pub const PCI_STATUS_CAPABILITIES_LIST: u32 = 16u32; +pub const PCI_STATUS_DATA_PARITY_DETECTED: u32 = 256u32; +pub const PCI_STATUS_DETECTED_PARITY_ERROR: u32 = 32768u32; +pub const PCI_STATUS_DEVSEL: u32 = 1536u32; +pub const PCI_STATUS_FAST_BACK_TO_BACK: u32 = 128u32; +pub const PCI_STATUS_IMMEDIATE_READINESS: u32 = 1u32; +pub const PCI_STATUS_INTERRUPT_PENDING: u32 = 8u32; +pub const PCI_STATUS_RECEIVED_MASTER_ABORT: u32 = 8192u32; +pub const PCI_STATUS_RECEIVED_TARGET_ABORT: u32 = 4096u32; +pub const PCI_STATUS_SIGNALED_SYSTEM_ERROR: u32 = 16384u32; +pub const PCI_STATUS_SIGNALED_TARGET_ABORT: u32 = 2048u32; +pub const PCI_STATUS_UDF_SUPPORTED: u32 = 64u32; +pub const PCI_SUBCLASS_BR_CARDBUS: u32 = 7u32; +pub const PCI_SUBCLASS_BR_EISA: u32 = 2u32; +pub const PCI_SUBCLASS_BR_HOST: u32 = 0u32; +pub const PCI_SUBCLASS_BR_ISA: u32 = 1u32; +pub const PCI_SUBCLASS_BR_MCA: u32 = 3u32; +pub const PCI_SUBCLASS_BR_NUBUS: u32 = 6u32; +pub const PCI_SUBCLASS_BR_OTHER: u32 = 128u32; +pub const PCI_SUBCLASS_BR_PCI_TO_PCI: u32 = 4u32; +pub const PCI_SUBCLASS_BR_PCMCIA: u32 = 5u32; +pub const PCI_SUBCLASS_BR_RACEWAY: u32 = 8u32; +pub const PCI_SUBCLASS_COM_MODEM: u32 = 3u32; +pub const PCI_SUBCLASS_COM_MULTIPORT: u32 = 2u32; +pub const PCI_SUBCLASS_COM_OTHER: u32 = 128u32; +pub const PCI_SUBCLASS_COM_PARALLEL: u32 = 1u32; +pub const PCI_SUBCLASS_COM_SERIAL: u32 = 0u32; +pub const PCI_SUBCLASS_CRYPTO_ENTERTAINMENT: u32 = 16u32; +pub const PCI_SUBCLASS_CRYPTO_NET_COMP: u32 = 0u32; +pub const PCI_SUBCLASS_CRYPTO_OTHER: u32 = 128u32; +pub const PCI_SUBCLASS_DASP_DPIO: u32 = 0u32; +pub const PCI_SUBCLASS_DASP_OTHER: u32 = 128u32; +pub const PCI_SUBCLASS_DOC_GENERIC: u32 = 0u32; +pub const PCI_SUBCLASS_DOC_OTHER: u32 = 128u32; +pub const PCI_SUBCLASS_INP_DIGITIZER: u32 = 1u32; +pub const PCI_SUBCLASS_INP_GAMEPORT: u32 = 4u32; +pub const PCI_SUBCLASS_INP_KEYBOARD: u32 = 0u32; +pub const PCI_SUBCLASS_INP_MOUSE: u32 = 2u32; +pub const PCI_SUBCLASS_INP_OTHER: u32 = 128u32; +pub const PCI_SUBCLASS_INP_SCANNER: u32 = 3u32; +pub const PCI_SUBCLASS_INTIO_I2O: u32 = 0u32; +pub const PCI_SUBCLASS_MEM_FLASH: u32 = 1u32; +pub const PCI_SUBCLASS_MEM_OTHER: u32 = 128u32; +pub const PCI_SUBCLASS_MEM_RAM: u32 = 0u32; +pub const PCI_SUBCLASS_MM_AUDIO_DEV: u32 = 1u32; +pub const PCI_SUBCLASS_MM_OTHER: u32 = 128u32; +pub const PCI_SUBCLASS_MM_TELEPHONY_DEV: u32 = 2u32; +pub const PCI_SUBCLASS_MM_VIDEO_DEV: u32 = 0u32; +pub const PCI_SUBCLASS_MSC_AHCI_CTLR: u32 = 6u32; +pub const PCI_SUBCLASS_MSC_FLOPPY_CTLR: u32 = 2u32; +pub const PCI_SUBCLASS_MSC_IDE_CTLR: u32 = 1u32; +pub const PCI_SUBCLASS_MSC_IPI_CTLR: u32 = 3u32; +pub const PCI_SUBCLASS_MSC_NVM_CTLR: u32 = 8u32; +pub const PCI_SUBCLASS_MSC_OTHER: u32 = 128u32; +pub const PCI_SUBCLASS_MSC_RAID_CTLR: u32 = 4u32; +pub const PCI_SUBCLASS_MSC_SCSI_BUS_CTLR: u32 = 0u32; +pub const PCI_SUBCLASS_NET_ATM_CTLR: u32 = 3u32; +pub const PCI_SUBCLASS_NET_ETHERNET_CTLR: u32 = 0u32; +pub const PCI_SUBCLASS_NET_FDDI_CTLR: u32 = 2u32; +pub const PCI_SUBCLASS_NET_ISDN_CTLR: u32 = 4u32; +pub const PCI_SUBCLASS_NET_OTHER: u32 = 128u32; +pub const PCI_SUBCLASS_NET_TOKEN_RING_CTLR: u32 = 1u32; +pub const PCI_SUBCLASS_PRE_20_NON_VGA: u32 = 0u32; +pub const PCI_SUBCLASS_PRE_20_VGA: u32 = 1u32; +pub const PCI_SUBCLASS_PROC_386: u32 = 0u32; +pub const PCI_SUBCLASS_PROC_486: u32 = 1u32; +pub const PCI_SUBCLASS_PROC_ALPHA: u32 = 16u32; +pub const PCI_SUBCLASS_PROC_COPROCESSOR: u32 = 64u32; +pub const PCI_SUBCLASS_PROC_PENTIUM: u32 = 2u32; +pub const PCI_SUBCLASS_PROC_POWERPC: u32 = 32u32; +pub const PCI_SUBCLASS_SAT_AUDIO: u32 = 2u32; +pub const PCI_SUBCLASS_SAT_DATA: u32 = 4u32; +pub const PCI_SUBCLASS_SAT_TV: u32 = 1u32; +pub const PCI_SUBCLASS_SAT_VOICE: u32 = 3u32; +pub const PCI_SUBCLASS_SB_ACCESS: u32 = 1u32; +pub const PCI_SUBCLASS_SB_FIBRE_CHANNEL: u32 = 4u32; +pub const PCI_SUBCLASS_SB_IEEE1394: u32 = 0u32; +pub const PCI_SUBCLASS_SB_SMBUS: u32 = 5u32; +pub const PCI_SUBCLASS_SB_SSA: u32 = 2u32; +pub const PCI_SUBCLASS_SB_THUNDERBOLT: u32 = 10u32; +pub const PCI_SUBCLASS_SB_USB: u32 = 3u32; +pub const PCI_SUBCLASS_SYS_DMA_CTLR: u32 = 1u32; +pub const PCI_SUBCLASS_SYS_GEN_HOTPLUG_CTLR: u32 = 4u32; +pub const PCI_SUBCLASS_SYS_INTERRUPT_CTLR: u32 = 0u32; +pub const PCI_SUBCLASS_SYS_OTHER: u32 = 128u32; +pub const PCI_SUBCLASS_SYS_RCEC: u32 = 7u32; +pub const PCI_SUBCLASS_SYS_REAL_TIME_CLOCK: u32 = 3u32; +pub const PCI_SUBCLASS_SYS_SDIO_CTRL: u32 = 5u32; +pub const PCI_SUBCLASS_SYS_SYSTEM_TIMER: u32 = 2u32; +pub const PCI_SUBCLASS_VID_OTHER: u32 = 128u32; +pub const PCI_SUBCLASS_VID_VGA_CTLR: u32 = 0u32; +pub const PCI_SUBCLASS_VID_XGA_CTLR: u32 = 1u32; +pub const PCI_SUBCLASS_WIRELESS_CON_IR: u32 = 1u32; +pub const PCI_SUBCLASS_WIRELESS_IRDA: u32 = 0u32; +pub const PCI_SUBCLASS_WIRELESS_OTHER: u32 = 128u32; +pub const PCI_SUBCLASS_WIRELESS_RF: u32 = 16u32; +pub const PCI_SUBLCASS_VID_3D_CTLR: u32 = 2u32; +pub const PCI_TYPE0_ADDRESSES: u32 = 6u32; +pub const PCI_TYPE1_ADDRESSES: u32 = 2u32; +pub const PCI_TYPE2_ADDRESSES: u32 = 5u32; +pub const PCI_TYPE_20BIT: u32 = 2u32; +pub const PCI_TYPE_32BIT: u32 = 0u32; +pub const PCI_TYPE_64BIT: u32 = 4u32; +pub const PCI_USE_CLASS_SUBCLASS: u32 = 8u32; +pub const PCI_USE_LOCAL_BUS: u32 = 32u32; +pub const PCI_USE_LOCAL_DEVICE: u32 = 64u32; +pub const PCI_USE_PROGIF: u32 = 16u32; +pub const PCI_USE_REVISION: u32 = 2u32; +pub const PCI_USE_SUBSYSTEM_IDS: u32 = 1u32; +pub const PCI_USE_VENDEV_IDS: u32 = 4u32; +pub const PCI_WHICHSPACE_CONFIG: u32 = 0u32; +pub const PCI_WHICHSPACE_ROM: u32 = 1382638416u32; +pub const PCIe_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf93c01f_1a16_4dfc_b8bc_9c4daf67c104); +pub const PCMCIABus: INTERFACE_TYPE = 8i32; +pub const PCMCIAConfiguration: BUS_DATA_TYPE = 7i32; +pub const PCR_BTI_MITIGATION_CSWAP_HVC: u32 = 16u32; +pub const PCR_BTI_MITIGATION_CSWAP_SMC: u32 = 32u32; +pub const PCR_BTI_MITIGATION_NONE: u32 = 0u32; +pub const PCR_BTI_MITIGATION_VBAR_MASK: u32 = 15u32; +pub const PCR_MAJOR_VERSION: u32 = 1u32; +pub const PCR_MINOR_VERSION: u32 = 1u32; +pub const PCW_CURRENT_VERSION: u32 = 512u32; +pub const PCW_VERSION_1: u32 = 256u32; +pub const PCW_VERSION_2: u32 = 512u32; +pub const PDE_BASE: u32 = 3224371200u32; +pub const PDE_PER_PAGE: u32 = 512u32; +pub const PDE_TOP: u32 = 3224375295u32; +pub const PDI_SHIFT: u32 = 21u32; +pub const PEI_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x09a9d5ac_5204_4214_96e5_94992e752bcd); +pub const PFAControl: NPEM_CONTROL_STANDARD_CONTROL_BIT = 6i32; +pub const PLUGPLAY_PROPERTY_PERSISTENT: u32 = 1u32; +pub const PLUGPLAY_REGKEY_CURRENT_HWPROFILE: u32 = 4u32; +pub const PLUGPLAY_REGKEY_DEVICE: u32 = 1u32; +pub const PLUGPLAY_REGKEY_DRIVER: u32 = 2u32; +pub const PMCCounter: HARDWARE_COUNTER_TYPE = 0i32; +pub const PMEM_ERROR_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x81687003_dbfd_4728_9ffd_f0904f97597d); +pub const PNPBus: INTERFACE_TYPE = 15i32; +pub const PNPISABus: INTERFACE_TYPE = 14i32; +pub const PNPISAConfiguration: BUS_DATA_TYPE = 10i32; +pub const PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES: u32 = 1u32; +pub const PNP_DEVICE_ASSIGNED_TO_GUEST: u32 = 256u32; +pub const PNP_DEVICE_DISABLED: u32 = 1u32; +pub const PNP_DEVICE_DISCONNECTED: u32 = 64u32; +pub const PNP_DEVICE_DONT_DISPLAY_IN_UI: u32 = 2u32; +pub const PNP_DEVICE_FAILED: u32 = 4u32; +pub const PNP_DEVICE_NOT_DISABLEABLE: u32 = 32u32; +pub const PNP_DEVICE_REMOVED: u32 = 8u32; +pub const PNP_DEVICE_RESOURCE_REQUIREMENTS_CHANGED: u32 = 16u32; +pub const PNP_DEVICE_RESOURCE_UPDATED: u32 = 128u32; +pub const PNP_EXTENDED_ADDRESS_INTERFACE_VERSION: u32 = 1u32; +pub const PNP_REPLACE_DRIVER_INTERFACE_VERSION: u32 = 1u32; +pub const PNP_REPLACE_HARDWARE_MEMORY_MIRRORING: u32 = 4u32; +pub const PNP_REPLACE_HARDWARE_PAGE_COPY: u32 = 8u32; +pub const PNP_REPLACE_HARDWARE_QUIESCE: u32 = 16u32; +pub const PNP_REPLACE_MEMORY_SUPPORTED: u32 = 1u32; +pub const PNP_REPLACE_PARAMETERS_VERSION: u32 = 2u32; +pub const PNP_REPLACE_PROCESSOR_SUPPORTED: u32 = 2u32; +pub const POOL_COLD_ALLOCATION: u32 = 256u32; +pub const POOL_CREATE_FLG_SECURE_POOL: u32 = 1u32; +pub const POOL_CREATE_FLG_USE_GLOBAL_POOL: u32 = 2u32; +pub const POOL_CREATE_PARAMS_VERSION: u32 = 1u32; +pub const POOL_EXTENDED_PARAMETER_REQUIRED_FIELD_BITS: u32 = 1u32; +pub const POOL_EXTENDED_PARAMETER_TYPE_BITS: u32 = 8u32; +pub const POOL_NX_ALLOCATION: u32 = 512u32; +pub const POOL_NX_OPTIN_AUTO: u32 = 1u32; +pub const POOL_QUOTA_FAIL_INSTEAD_OF_RAISE: u32 = 8u32; +pub const POOL_RAISE_IF_ALLOCATION_FAILURE: u32 = 16u32; +pub const POOL_TAGGING: u32 = 1u32; +pub const POOL_ZEROING_INFORMATION: u32 = 227u32; +pub const POOL_ZERO_ALLOCATION: u32 = 1024u32; +pub const PORT_MAXIMUM_MESSAGE_LENGTH: u32 = 512u32; +pub const POWER_LEVEL: u32 = 30u32; +pub const POWER_PLATFORM_ROLE_V1: u32 = 1u32; +pub const POWER_PLATFORM_ROLE_V2: u32 = 2u32; +pub const POWER_PLATFORM_ROLE_VERSION: u32 = 2u32; +pub const POWER_SETTING_VALUE_VERSION: u32 = 1u32; +pub const POWER_THROTTLING_PROCESS_CURRENT_VERSION: u32 = 1u32; +pub const POWER_THROTTLING_PROCESS_DELAYTIMERS: u32 = 2u32; +pub const POWER_THROTTLING_PROCESS_EXECUTION_SPEED: u32 = 1u32; +pub const POWER_THROTTLING_PROCESS_IGNORE_TIMER_RESOLUTION: u32 = 4u32; +pub const POWER_THROTTLING_THREAD_CURRENT_VERSION: u32 = 1u32; +pub const POWER_THROTTLING_THREAD_EXECUTION_SPEED: u32 = 1u32; +pub const POWER_THROTTLING_THREAD_VALID_FLAGS: u32 = 1u32; +pub const PO_FX_COMPONENT_FLAG_F0_ON_DX: u64 = 1u64; +pub const PO_FX_COMPONENT_FLAG_NO_DEBOUNCE: u64 = 2u64; +pub const PO_FX_DIRECTED_FX_DEFAULT_IDLE_TIMEOUT: u32 = 0u32; +pub const PO_FX_FLAG_ASYNC_ONLY: u32 = 2u32; +pub const PO_FX_FLAG_BLOCKING: u32 = 1u32; +pub const PO_FX_FLAG_PERF_PEP_OPTIONAL: u32 = 1u32; +pub const PO_FX_FLAG_PERF_QUERY_ON_ALL_IDLE_STATES: u32 = 4u32; +pub const PO_FX_FLAG_PERF_QUERY_ON_F0: u32 = 2u32; +pub const PO_FX_UNKNOWN_POWER: u32 = 4294967295u32; +pub const PO_FX_UNKNOWN_TIME: u64 = 18446744073709551615u64; +pub const PO_FX_VERSION: u32 = 1u32; +pub const PO_FX_VERSION_V1: u32 = 1u32; +pub const PO_FX_VERSION_V2: u32 = 2u32; +pub const PO_FX_VERSION_V3: u32 = 3u32; +pub const PO_MEM_BOOT_PHASE: u32 = 65536u32; +pub const PO_MEM_CLONE: u32 = 2u32; +pub const PO_MEM_CL_OR_NCHK: u32 = 4u32; +pub const PO_MEM_DISCARD: u32 = 32768u32; +pub const PO_MEM_PAGE_ADDRESS: u32 = 16384u32; +pub const PO_MEM_PRESERVE: u32 = 1u32; +pub const PPI_SHIFT: u32 = 30u32; +pub const PRIVILEGE_SET_ALL_NECESSARY: u32 = 1u32; +pub const PROCESSOR_FEATURE_MAX: u32 = 64u32; +pub const PROCESSOR_GENERIC_ERROR_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9876ccad_47b4_4bdb_b65e_16f193c4f3db); +pub const PROCESS_EXCEPTION_PORT_ALL_STATE_BITS: u32 = 3u32; +pub const PROCESS_HANDLE_EXCEPTIONS_ENABLED: u32 = 1u32; +pub const PROCESS_HANDLE_RAISE_UM_EXCEPTION_ON_INVALID_HANDLE_CLOSE_DISABLED: u32 = 0u32; +pub const PROCESS_HANDLE_RAISE_UM_EXCEPTION_ON_INVALID_HANDLE_CLOSE_ENABLED: u32 = 1u32; +pub const PROCESS_HANDLE_TRACING_MAX_STACKS: u32 = 16u32; +pub const PROCESS_LUID_DOSDEVICES_ONLY: u32 = 1u32; +pub const PROFILE_LEVEL: u32 = 27u32; +pub const PROTECTED_POOL: u32 = 0u32; +pub const PS_IMAGE_NOTIFY_CONFLICTING_ARCHITECTURE: u32 = 1u32; +pub const PS_INVALID_SILO_CONTEXT_SLOT: u32 = 4294967295u32; +pub const PTE_BASE: u32 = 3221225472u32; +pub const PTE_PER_PAGE: u32 = 512u32; +pub const PTE_TOP: u32 = 3225419775u32; +pub const PTI_SHIFT: u32 = 12u32; +pub const PageIn: KWAIT_REASON = 2i32; +pub const ParallelController: CONFIGURATION_TYPE = 20i32; +pub const PciAcsBitDisable: PCI_ACS_BIT = 2i32; +pub const PciAcsBitDontCare: PCI_ACS_BIT = 3i32; +pub const PciAcsBitEnable: PCI_ACS_BIT = 1i32; +pub const PciAcsReserved: PCI_ACS_BIT = 0i32; +pub const PciConventional: PCI_HARDWARE_INTERFACE = 0i32; +pub const PciDeviceD3Cold_Reason_Default_State_BitIndex: PCI_DEVICE_D3COLD_STATE_REASON = 8i32; +pub const PciDeviceD3Cold_Reason_INF_BitIndex: PCI_DEVICE_D3COLD_STATE_REASON = 9i32; +pub const PciDeviceD3Cold_Reason_Interface_Api_BitIndex: PCI_DEVICE_D3COLD_STATE_REASON = 10i32; +pub const PciDeviceD3Cold_State_Disabled_BitIndex: PCI_DEVICE_D3COLD_STATE_REASON = 1i32; +pub const PciDeviceD3Cold_State_Disabled_Bridge_HackFlags_BitIndex: PCI_DEVICE_D3COLD_STATE_REASON = 4i32; +pub const PciDeviceD3Cold_State_Enabled_BitIndex: PCI_DEVICE_D3COLD_STATE_REASON = 2i32; +pub const PciDeviceD3Cold_State_ParentRootPortS0WakeSupported_BitIndex: PCI_DEVICE_D3COLD_STATE_REASON = 3i32; +pub const PciExpress: PCI_HARDWARE_INTERFACE = 3i32; +pub const PciExpressASPMLinkSubState_L11_BitIndex: PCI_EXPRESS_LINK_SUBSTATE = 2i32; +pub const PciExpressASPMLinkSubState_L12_BitIndex: PCI_EXPRESS_LINK_SUBSTATE = 3i32; +pub const PciExpressDownstreamSwitchPort: PCI_EXPRESS_DEVICE_TYPE = 6i32; +pub const PciExpressEndpoint: PCI_EXPRESS_DEVICE_TYPE = 0i32; +pub const PciExpressLegacyEndpoint: PCI_EXPRESS_DEVICE_TYPE = 1i32; +pub const PciExpressPciPmLinkSubState_L11_BitIndex: PCI_EXPRESS_LINK_SUBSTATE = 0i32; +pub const PciExpressPciPmLinkSubState_L12_BitIndex: PCI_EXPRESS_LINK_SUBSTATE = 1i32; +pub const PciExpressRootComplexEventCollector: PCI_EXPRESS_DEVICE_TYPE = 10i32; +pub const PciExpressRootComplexIntegratedEndpoint: PCI_EXPRESS_DEVICE_TYPE = 9i32; +pub const PciExpressRootPort: PCI_EXPRESS_DEVICE_TYPE = 4i32; +pub const PciExpressToPciXBridge: PCI_EXPRESS_DEVICE_TYPE = 7i32; +pub const PciExpressUpstreamSwitchPort: PCI_EXPRESS_DEVICE_TYPE = 5i32; +pub const PciXMode1: PCI_HARDWARE_INTERFACE = 1i32; +pub const PciXMode2: PCI_HARDWARE_INTERFACE = 2i32; +pub const PciXToExpressBridge: PCI_EXPRESS_DEVICE_TYPE = 8i32; +pub const PcwCallbackAddCounter: PCW_CALLBACK_TYPE = 0i32; +pub const PcwCallbackCollectData: PCW_CALLBACK_TYPE = 3i32; +pub const PcwCallbackEnumerateInstances: PCW_CALLBACK_TYPE = 2i32; +pub const PcwCallbackRemoveCounter: PCW_CALLBACK_TYPE = 1i32; +pub const PcwRegistrationNone: PCW_REGISTRATION_FLAGS = 0i32; +pub const PcwRegistrationSiloNeutral: PCW_REGISTRATION_FLAGS = 1i32; +pub const PermissionFault: FAULT_INFORMATION_ARM64_TYPE = 4i32; +pub const PlatformLevelDeviceReset: DEVICE_RESET_TYPE = 1i32; +pub const PlatformRoleAppliancePC: POWER_PLATFORM_ROLE = 6i32; +pub const PlatformRoleDesktop: POWER_PLATFORM_ROLE = 1i32; +pub const PlatformRoleEnterpriseServer: POWER_PLATFORM_ROLE = 4i32; +pub const PlatformRoleMaximum: POWER_PLATFORM_ROLE = 9i32; +pub const PlatformRoleMobile: POWER_PLATFORM_ROLE = 2i32; +pub const PlatformRolePerformanceServer: POWER_PLATFORM_ROLE = 7i32; +pub const PlatformRoleSOHOServer: POWER_PLATFORM_ROLE = 5i32; +pub const PlatformRoleSlate: POWER_PLATFORM_ROLE = 8i32; +pub const PlatformRoleUnspecified: POWER_PLATFORM_ROLE = 0i32; +pub const PlatformRoleWorkstation: POWER_PLATFORM_ROLE = 3i32; +pub const PoAc: SYSTEM_POWER_CONDITION = 0i32; +pub const PoConditionMaximum: SYSTEM_POWER_CONDITION = 3i32; +pub const PoDc: SYSTEM_POWER_CONDITION = 1i32; +pub const PoFxPerfStateTypeDiscrete: PO_FX_PERF_STATE_TYPE = 0i32; +pub const PoFxPerfStateTypeMaximum: PO_FX_PERF_STATE_TYPE = 2i32; +pub const PoFxPerfStateTypeRange: PO_FX_PERF_STATE_TYPE = 1i32; +pub const PoFxPerfStateUnitBandwidth: PO_FX_PERF_STATE_UNIT = 2i32; +pub const PoFxPerfStateUnitFrequency: PO_FX_PERF_STATE_UNIT = 1i32; +pub const PoFxPerfStateUnitMaximum: PO_FX_PERF_STATE_UNIT = 3i32; +pub const PoFxPerfStateUnitOther: PO_FX_PERF_STATE_UNIT = 0i32; +pub const PoHot: SYSTEM_POWER_CONDITION = 2i32; +pub const PoThermalRequestActive: PO_THERMAL_REQUEST_TYPE = 1i32; +pub const PoThermalRequestPassive: PO_THERMAL_REQUEST_TYPE = 0i32; +pub const PointerController: CONFIGURATION_TYPE = 21i32; +pub const PointerPeripheral: CONFIGURATION_TYPE = 31i32; +pub const PoolAllocation: KWAIT_REASON = 3i32; +pub const PoolExtendedParameterInvalidType: POOL_EXTENDED_PARAMETER_TYPE = 0i32; +pub const PoolExtendedParameterMax: POOL_EXTENDED_PARAMETER_TYPE = 4i32; +pub const PoolExtendedParameterNumaNode: POOL_EXTENDED_PARAMETER_TYPE = 3i32; +pub const PoolExtendedParameterPriority: POOL_EXTENDED_PARAMETER_TYPE = 1i32; +pub const PoolExtendedParameterSecurePool: POOL_EXTENDED_PARAMETER_TYPE = 2i32; +pub const Pos: BUS_DATA_TYPE = 2i32; +pub const PowerOff: PCI_EXPRESS_POWER_STATE = 1i32; +pub const PowerOn: PCI_EXPRESS_POWER_STATE = 0i32; +pub const PowerRelations: DEVICE_RELATION_TYPE = 2i32; +pub const PrimaryDcache: CONFIGURATION_TYPE = 4i32; +pub const PrimaryIcache: CONFIGURATION_TYPE = 3i32; +pub const PrinterPeripheral: CONFIGURATION_TYPE = 30i32; +pub const ProcessorInternal: INTERFACE_TYPE = 12i32; +pub const Profile2Issue: KPROFILE_SOURCE = 15i32; +pub const Profile3Issue: KPROFILE_SOURCE = 16i32; +pub const Profile4Issue: KPROFILE_SOURCE = 17i32; +pub const ProfileAlignmentFixup: KPROFILE_SOURCE = 1i32; +pub const ProfileBranchInstructions: KPROFILE_SOURCE = 6i32; +pub const ProfileBranchMispredictions: KPROFILE_SOURCE = 11i32; +pub const ProfileCacheMisses: KPROFILE_SOURCE = 10i32; +pub const ProfileDcacheAccesses: KPROFILE_SOURCE = 21i32; +pub const ProfileDcacheMisses: KPROFILE_SOURCE = 8i32; +pub const ProfileFpInstructions: KPROFILE_SOURCE = 13i32; +pub const ProfileIcacheIssues: KPROFILE_SOURCE = 20i32; +pub const ProfileIcacheMisses: KPROFILE_SOURCE = 9i32; +pub const ProfileIntegerInstructions: KPROFILE_SOURCE = 14i32; +pub const ProfileLoadInstructions: KPROFILE_SOURCE = 4i32; +pub const ProfileLoadLinkedIssues: KPROFILE_SOURCE = 23i32; +pub const ProfileMaximum: KPROFILE_SOURCE = 24i32; +pub const ProfileMemoryBarrierCycles: KPROFILE_SOURCE = 22i32; +pub const ProfilePipelineDry: KPROFILE_SOURCE = 3i32; +pub const ProfilePipelineFrozen: KPROFILE_SOURCE = 5i32; +pub const ProfileSpecialInstructions: KPROFILE_SOURCE = 18i32; +pub const ProfileStoreInstructions: KPROFILE_SOURCE = 12i32; +pub const ProfileTime: KPROFILE_SOURCE = 0i32; +pub const ProfileTotalCycles: KPROFILE_SOURCE = 19i32; +pub const ProfileTotalIssues: KPROFILE_SOURCE = 2i32; +pub const ProfileTotalNonissues: KPROFILE_SOURCE = 7i32; +pub const PsCreateProcessNotifySubsystems: PSCREATEPROCESSNOTIFYTYPE = 0i32; +pub const PsCreateThreadNotifyNonSystem: PSCREATETHREADNOTIFYTYPE = 0i32; +pub const PsCreateThreadNotifySubsystems: PSCREATETHREADNOTIFYTYPE = 1i32; +pub const PshedFADiscovery: u32 = 1u32; +pub const PshedFAErrorInfoRetrieval: u32 = 8u32; +pub const PshedFAErrorInjection: u32 = 32u32; +pub const PshedFAErrorRecordPersistence: u32 = 4u32; +pub const PshedFAErrorRecovery: u32 = 16u32; +pub const PshedFAErrorSourceControl: u32 = 2u32; +pub const PshedPiEnableNotifyErrorCreateNotifyEvent: WHEA_PSHED_PLUGIN_ENABLE_NOTIFY_ERRORS = 1i32; +pub const PshedPiEnableNotifyErrorCreateSystemThread: WHEA_PSHED_PLUGIN_ENABLE_NOTIFY_ERRORS = 2i32; +pub const PshedPiEnableNotifyErrorMax: WHEA_PSHED_PLUGIN_ENABLE_NOTIFY_ERRORS = 3i32; +pub const PshedPiErrReadingPcieOverridesBadSignature: PSHED_PI_ERR_READING_PCIE_OVERRIDES = 4i32; +pub const PshedPiErrReadingPcieOverridesBadSize: PSHED_PI_ERR_READING_PCIE_OVERRIDES = 3i32; +pub const PshedPiErrReadingPcieOverridesNoCapOffset: PSHED_PI_ERR_READING_PCIE_OVERRIDES = 5i32; +pub const PshedPiErrReadingPcieOverridesNoErr: PSHED_PI_ERR_READING_PCIE_OVERRIDES = 0i32; +pub const PshedPiErrReadingPcieOverridesNoMemory: PSHED_PI_ERR_READING_PCIE_OVERRIDES = 1i32; +pub const PshedPiErrReadingPcieOverridesNotBinary: PSHED_PI_ERR_READING_PCIE_OVERRIDES = 6i32; +pub const PshedPiErrReadingPcieOverridesQueryErr: PSHED_PI_ERR_READING_PCIE_OVERRIDES = 2i32; +pub const QuerySecurityDescriptor: SECURITY_OPERATION_CODE = 1i32; +pub const RCB128Bytes: PCI_EXPRESS_RCB = 1i32; +pub const RCB64Bytes: PCI_EXPRESS_RCB = 0i32; +pub const RECOVERY_INFO_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc34832a1_02c3_4c52_a9f1_9f1d5d7723fc); +pub const RESOURCE_HASH_TABLE_SIZE: u32 = 64u32; +pub const RESULT_NEGATIVE: u32 = 1u32; +pub const RESULT_POSITIVE: u32 = 2u32; +pub const RESULT_ZERO: u32 = 0u32; +pub const ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING: u32 = 1u32; +pub const ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING: u32 = 4u32; +pub const ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING: u32 = 2u32; +pub const RTL_GUID_STRING_SIZE: u32 = 38u32; +pub const RTL_HASH_ALLOCATED_HEADER: u32 = 1u32; +pub const RTL_HASH_RESERVED_SIGNATURE: u32 = 0u32; +pub const RTL_QUERY_REGISTRY_DELETE: u32 = 64u32; +pub const RTL_QUERY_REGISTRY_DIRECT: u32 = 32u32; +pub const RTL_QUERY_REGISTRY_NOEXPAND: u32 = 16u32; +pub const RTL_QUERY_REGISTRY_NOSTRING: u32 = 128u32; +pub const RTL_QUERY_REGISTRY_NOVALUE: u32 = 8u32; +pub const RTL_QUERY_REGISTRY_REQUIRED: u32 = 4u32; +pub const RTL_QUERY_REGISTRY_SUBKEY: u32 = 1u32; +pub const RTL_QUERY_REGISTRY_TOPKEY: u32 = 2u32; +pub const RTL_QUERY_REGISTRY_TYPECHECK: u32 = 256u32; +pub const RTL_QUERY_REGISTRY_TYPECHECK_SHIFT: u32 = 24u32; +pub const RTL_REGISTRY_ABSOLUTE: u32 = 0u32; +pub const RTL_REGISTRY_CONTROL: u32 = 2u32; +pub const RTL_REGISTRY_DEVICEMAP: u32 = 4u32; +pub const RTL_REGISTRY_HANDLE: u32 = 1073741824u32; +pub const RTL_REGISTRY_MAXIMUM: u32 = 6u32; +pub const RTL_REGISTRY_OPTIONAL: u32 = 2147483648u32; +pub const RTL_REGISTRY_SERVICES: u32 = 1u32; +pub const RTL_REGISTRY_USER: u32 = 5u32; +pub const RTL_REGISTRY_WINDOWS_NT: u32 = 3u32; +pub const RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT: u32 = 8u32; +pub const RandomAccess: IO_ACCESS_MODE = 1i32; +pub const ReadAccess: IO_ACCESS_TYPE = 0i32; +pub const RealModeIrqRoutingTable: CONFIGURATION_TYPE = 39i32; +pub const RealModePCIEnumeration: CONFIGURATION_TYPE = 40i32; +pub const RealTimeWorkQueue: WORK_QUEUE_TYPE = 5i32; +pub const RebuildControl: NPEM_CONTROL_STANDARD_CONTROL_BIT = 5i32; +pub const RegNtCallbackObjectContextCleanup: REG_NOTIFY_CLASS = 40i32; +pub const RegNtDeleteKey: REG_NOTIFY_CLASS = 0i32; +pub const RegNtDeleteValueKey: REG_NOTIFY_CLASS = 2i32; +pub const RegNtEnumerateKey: REG_NOTIFY_CLASS = 5i32; +pub const RegNtEnumerateValueKey: REG_NOTIFY_CLASS = 6i32; +pub const RegNtKeyHandleClose: REG_NOTIFY_CLASS = 14i32; +pub const RegNtPostCreateKey: REG_NOTIFY_CLASS = 11i32; +pub const RegNtPostCreateKeyEx: REG_NOTIFY_CLASS = 27i32; +pub const RegNtPostDeleteKey: REG_NOTIFY_CLASS = 15i32; +pub const RegNtPostDeleteValueKey: REG_NOTIFY_CLASS = 17i32; +pub const RegNtPostEnumerateKey: REG_NOTIFY_CLASS = 20i32; +pub const RegNtPostEnumerateValueKey: REG_NOTIFY_CLASS = 21i32; +pub const RegNtPostFlushKey: REG_NOTIFY_CLASS = 31i32; +pub const RegNtPostKeyHandleClose: REG_NOTIFY_CLASS = 25i32; +pub const RegNtPostLoadKey: REG_NOTIFY_CLASS = 33i32; +pub const RegNtPostOpenKey: REG_NOTIFY_CLASS = 13i32; +pub const RegNtPostOpenKeyEx: REG_NOTIFY_CLASS = 29i32; +pub const RegNtPostQueryKey: REG_NOTIFY_CLASS = 22i32; +pub const RegNtPostQueryKeyName: REG_NOTIFY_CLASS = 48i32; +pub const RegNtPostQueryKeySecurity: REG_NOTIFY_CLASS = 37i32; +pub const RegNtPostQueryMultipleValueKey: REG_NOTIFY_CLASS = 24i32; +pub const RegNtPostQueryValueKey: REG_NOTIFY_CLASS = 23i32; +pub const RegNtPostRenameKey: REG_NOTIFY_CLASS = 19i32; +pub const RegNtPostReplaceKey: REG_NOTIFY_CLASS = 46i32; +pub const RegNtPostRestoreKey: REG_NOTIFY_CLASS = 42i32; +pub const RegNtPostSaveKey: REG_NOTIFY_CLASS = 44i32; +pub const RegNtPostSaveMergedKey: REG_NOTIFY_CLASS = 50i32; +pub const RegNtPostSetInformationKey: REG_NOTIFY_CLASS = 18i32; +pub const RegNtPostSetKeySecurity: REG_NOTIFY_CLASS = 39i32; +pub const RegNtPostSetValueKey: REG_NOTIFY_CLASS = 16i32; +pub const RegNtPostUnLoadKey: REG_NOTIFY_CLASS = 35i32; +pub const RegNtPreCreateKey: REG_NOTIFY_CLASS = 10i32; +pub const RegNtPreCreateKeyEx: REG_NOTIFY_CLASS = 26i32; +pub const RegNtPreDeleteKey: REG_NOTIFY_CLASS = 0i32; +pub const RegNtPreDeleteValueKey: REG_NOTIFY_CLASS = 2i32; +pub const RegNtPreEnumerateKey: REG_NOTIFY_CLASS = 5i32; +pub const RegNtPreEnumerateValueKey: REG_NOTIFY_CLASS = 6i32; +pub const RegNtPreFlushKey: REG_NOTIFY_CLASS = 30i32; +pub const RegNtPreKeyHandleClose: REG_NOTIFY_CLASS = 14i32; +pub const RegNtPreLoadKey: REG_NOTIFY_CLASS = 32i32; +pub const RegNtPreOpenKey: REG_NOTIFY_CLASS = 12i32; +pub const RegNtPreOpenKeyEx: REG_NOTIFY_CLASS = 28i32; +pub const RegNtPreQueryKey: REG_NOTIFY_CLASS = 7i32; +pub const RegNtPreQueryKeyName: REG_NOTIFY_CLASS = 47i32; +pub const RegNtPreQueryKeySecurity: REG_NOTIFY_CLASS = 36i32; +pub const RegNtPreQueryMultipleValueKey: REG_NOTIFY_CLASS = 9i32; +pub const RegNtPreQueryValueKey: REG_NOTIFY_CLASS = 8i32; +pub const RegNtPreRenameKey: REG_NOTIFY_CLASS = 4i32; +pub const RegNtPreReplaceKey: REG_NOTIFY_CLASS = 45i32; +pub const RegNtPreRestoreKey: REG_NOTIFY_CLASS = 41i32; +pub const RegNtPreSaveKey: REG_NOTIFY_CLASS = 43i32; +pub const RegNtPreSaveMergedKey: REG_NOTIFY_CLASS = 49i32; +pub const RegNtPreSetInformationKey: REG_NOTIFY_CLASS = 3i32; +pub const RegNtPreSetKeySecurity: REG_NOTIFY_CLASS = 38i32; +pub const RegNtPreSetValueKey: REG_NOTIFY_CLASS = 1i32; +pub const RegNtPreUnLoadKey: REG_NOTIFY_CLASS = 34i32; +pub const RegNtQueryKey: REG_NOTIFY_CLASS = 7i32; +pub const RegNtQueryMultipleValueKey: REG_NOTIFY_CLASS = 9i32; +pub const RegNtQueryValueKey: REG_NOTIFY_CLASS = 8i32; +pub const RegNtRenameKey: REG_NOTIFY_CLASS = 4i32; +pub const RegNtSetInformationKey: REG_NOTIFY_CLASS = 3i32; +pub const RegNtSetValueKey: REG_NOTIFY_CLASS = 1i32; +pub const RemovalPolicyExpectNoRemoval: DEVICE_REMOVAL_POLICY = 1i32; +pub const RemovalPolicyExpectOrderlyRemoval: DEVICE_REMOVAL_POLICY = 2i32; +pub const RemovalPolicyExpectSurpriseRemoval: DEVICE_REMOVAL_POLICY = 3i32; +pub const RemovalRelations: DEVICE_RELATION_TYPE = 3i32; +pub const ResourceNeverExclusive: u32 = 16u32; +pub const ResourceOwnedExclusive: u32 = 128u32; +pub const ResourceReleaseByOtherThread: u32 = 32u32; +pub const ResourceTypeEventBuffer: PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE = 4i32; +pub const ResourceTypeExtendedCounterConfiguration: PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE = 2i32; +pub const ResourceTypeIdenitificationTag: PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE = 5i32; +pub const ResourceTypeMax: PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE = 6i32; +pub const ResourceTypeOverflow: PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE = 3i32; +pub const ResourceTypeRange: PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE = 1i32; +pub const ResourceTypeSingle: PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE = 0i32; +pub const ResultNegative: INTERLOCKED_RESULT = 32768i32; +pub const ResultPositive: INTERLOCKED_RESULT = 0i32; +pub const ResultZero: INTERLOCKED_RESULT = 16384i32; +pub const SCI_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe9d59197_94ee_4a4f_8ad8_9b7d8bd93d2e); +pub const SDEV_IDENTIFIER_INTERFACE_VERSION: u32 = 1u32; +pub const SEA_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9a78788a_bbe8_11e4_809e_67611e5d46b0); +pub const SEA_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf5fe48a6_84ce_4c1e_aa64_20c9a53099f1); +pub const SECTION_MAP_EXECUTE: u32 = 8u32; +pub const SECTION_MAP_EXECUTE_EXPLICIT: u32 = 32u32; +pub const SECTION_MAP_READ: u32 = 4u32; +pub const SECTION_MAP_WRITE: u32 = 2u32; +pub const SECTION_QUERY: u32 = 1u32; +pub const SECURE_DRIVER_INTERFACE_VERSION: u32 = 1u32; +pub const SECURE_POOL_FLAGS_FREEABLE: u32 = 1u32; +pub const SECURE_POOL_FLAGS_MODIFIABLE: u32 = 2u32; +pub const SECURE_POOL_FLAGS_NONE: u32 = 0u32; +pub const SECURE_SECTION_ALLOW_PARTIAL_MDL: u32 = 1u32; +pub const SEC_LARGE_PAGES: u32 = 2147483648u32; +pub const SEH_VALIDATION_POLICY_DEFER: u32 = 3u32; +pub const SEH_VALIDATION_POLICY_OFF: u32 = 1u32; +pub const SEH_VALIDATION_POLICY_ON: u32 = 0u32; +pub const SEH_VALIDATION_POLICY_TELEMETRY: u32 = 2u32; +pub const SEI_NOTIFY_TYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c284c81_b0ae_4e87_a322_b04c85624323); +pub const SEI_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2a4a152_9c6d_4020_aecf_7695b389251b); +pub const SEMAPHORE_QUERY_STATE: u32 = 1u32; +pub const SE_ASSIGNPRIMARYTOKEN_PRIVILEGE: i32 = 3i32; +pub const SE_AUDIT_PRIVILEGE: i32 = 21i32; +pub const SE_BACKUP_PRIVILEGE: i32 = 17i32; +pub const SE_CHANGE_NOTIFY_PRIVILEGE: i32 = 23i32; +pub const SE_CREATE_GLOBAL_PRIVILEGE: i32 = 30i32; +pub const SE_CREATE_PAGEFILE_PRIVILEGE: i32 = 15i32; +pub const SE_CREATE_PERMANENT_PRIVILEGE: i32 = 16i32; +pub const SE_CREATE_SYMBOLIC_LINK_PRIVILEGE: i32 = 35i32; +pub const SE_CREATE_TOKEN_PRIVILEGE: i32 = 2i32; +pub const SE_DEBUG_PRIVILEGE: i32 = 20i32; +pub const SE_DELEGATE_SESSION_USER_IMPERSONATE_PRIVILEGE: i32 = 36i32; +pub const SE_ENABLE_DELEGATION_PRIVILEGE: i32 = 27i32; +pub const SE_IMPERSONATE_PRIVILEGE: i32 = 29i32; +pub const SE_INCREASE_QUOTA_PRIVILEGE: i32 = 5i32; +pub const SE_INC_BASE_PRIORITY_PRIVILEGE: i32 = 14i32; +pub const SE_INC_WORKING_SET_PRIVILEGE: i32 = 33i32; +pub const SE_LOAD_DRIVER_PRIVILEGE: i32 = 10i32; +pub const SE_LOCK_MEMORY_PRIVILEGE: i32 = 4i32; +pub const SE_MACHINE_ACCOUNT_PRIVILEGE: i32 = 6i32; +pub const SE_MANAGE_VOLUME_PRIVILEGE: i32 = 28i32; +pub const SE_MAX_WELL_KNOWN_PRIVILEGE: i32 = 36i32; +pub const SE_MIN_WELL_KNOWN_PRIVILEGE: i32 = 2i32; +pub const SE_PROF_SINGLE_PROCESS_PRIVILEGE: i32 = 13i32; +pub const SE_RELABEL_PRIVILEGE: i32 = 32i32; +pub const SE_REMOTE_SHUTDOWN_PRIVILEGE: i32 = 24i32; +pub const SE_RESTORE_PRIVILEGE: i32 = 18i32; +pub const SE_SECURITY_PRIVILEGE: i32 = 8i32; +pub const SE_SHUTDOWN_PRIVILEGE: i32 = 19i32; +pub const SE_SYNC_AGENT_PRIVILEGE: i32 = 26i32; +pub const SE_SYSTEMTIME_PRIVILEGE: i32 = 12i32; +pub const SE_SYSTEM_ENVIRONMENT_PRIVILEGE: i32 = 22i32; +pub const SE_SYSTEM_PROFILE_PRIVILEGE: i32 = 11i32; +pub const SE_TAKE_OWNERSHIP_PRIVILEGE: i32 = 9i32; +pub const SE_TCB_PRIVILEGE: i32 = 7i32; +pub const SE_TIME_ZONE_PRIVILEGE: i32 = 34i32; +pub const SE_TRUSTED_CREDMAN_ACCESS_PRIVILEGE: i32 = 31i32; +pub const SE_UNDOCK_PRIVILEGE: i32 = 25i32; +pub const SE_UNSOLICITED_INPUT_PRIVILEGE: i32 = 6i32; +pub const SHARED_GLOBAL_FLAGS_CLEAR_GLOBAL_DATA_FLAG: u32 = 2147483648u32; +pub const SHARED_GLOBAL_FLAGS_CONSOLE_BROKER_ENABLED_V: u32 = 6u32; +pub const SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED_V: u32 = 5u32; +pub const SHARED_GLOBAL_FLAGS_ELEVATION_ENABLED_V: u32 = 1u32; +pub const SHARED_GLOBAL_FLAGS_ERROR_PORT_V: u32 = 0u32; +pub const SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED_V: u32 = 3u32; +pub const SHARED_GLOBAL_FLAGS_LKG_ENABLED_V: u32 = 4u32; +pub const SHARED_GLOBAL_FLAGS_MULTIUSERS_IN_SESSION_SKU_V: u32 = 9u32; +pub const SHARED_GLOBAL_FLAGS_MULTI_SESSION_SKU_V: u32 = 8u32; +pub const SHARED_GLOBAL_FLAGS_QPC_BYPASS_A73_ERRATA: u32 = 64u32; +pub const SHARED_GLOBAL_FLAGS_QPC_BYPASS_DISABLE_32BIT: u32 = 4u32; +pub const SHARED_GLOBAL_FLAGS_QPC_BYPASS_ENABLED: u32 = 1u32; +pub const SHARED_GLOBAL_FLAGS_QPC_BYPASS_USE_HV_PAGE: u32 = 2u32; +pub const SHARED_GLOBAL_FLAGS_QPC_BYPASS_USE_LFENCE: u32 = 32u32; +pub const SHARED_GLOBAL_FLAGS_QPC_BYPASS_USE_MFENCE: u32 = 16u32; +pub const SHARED_GLOBAL_FLAGS_QPC_BYPASS_USE_RDTSCP: u32 = 128u32; +pub const SHARED_GLOBAL_FLAGS_SECURE_BOOT_ENABLED_V: u32 = 7u32; +pub const SHARED_GLOBAL_FLAGS_SET_GLOBAL_DATA_FLAG: u32 = 1073741824u32; +pub const SHARED_GLOBAL_FLAGS_STATE_SEPARATION_ENABLED_V: u32 = 10u32; +pub const SHARED_GLOBAL_FLAGS_VIRT_ENABLED_V: u32 = 2u32; +pub const SHORT_LEAST_SIGNIFICANT_BIT: u32 = 0u32; +pub const SHORT_MOST_SIGNIFICANT_BIT: u32 = 1u32; +pub const SILO_MONITOR_REGISTRATION_VERSION: u32 = 1u32; +pub const SINGLE_GROUP_LEGACY_API: u32 = 1u32; +pub const SL_ALLOW_RAW_MOUNT: u32 = 1u32; +pub const SL_BYPASS_ACCESS_CHECK: u32 = 1u32; +pub const SL_BYPASS_IO: u32 = 64u32; +pub const SL_CASE_SENSITIVE: u32 = 128u32; +pub const SL_ERROR_RETURNED: u32 = 2u32; +pub const SL_EXCLUSIVE_LOCK: u32 = 2u32; +pub const SL_FAIL_IMMEDIATELY: u32 = 1u32; +pub const SL_FORCE_ACCESS_CHECK: u32 = 1u32; +pub const SL_FORCE_ASYNCHRONOUS: u32 = 1u32; +pub const SL_FORCE_DIRECT_WRITE: u32 = 16u32; +pub const SL_FT_SEQUENTIAL_WRITE: u32 = 8u32; +pub const SL_IGNORE_READONLY_ATTRIBUTE: u32 = 64u32; +pub const SL_INDEX_SPECIFIED: u32 = 4u32; +pub const SL_INFO_FORCE_ACCESS_CHECK: u32 = 1u32; +pub const SL_INFO_IGNORE_READONLY_ATTRIBUTE: u32 = 64u32; +pub const SL_INVOKE_ON_CANCEL: u32 = 32u32; +pub const SL_INVOKE_ON_ERROR: u32 = 128u32; +pub const SL_INVOKE_ON_SUCCESS: u32 = 64u32; +pub const SL_KEY_SPECIFIED: u32 = 1u32; +pub const SL_NO_CURSOR_UPDATE: u32 = 16u32; +pub const SL_OPEN_PAGING_FILE: u32 = 2u32; +pub const SL_OPEN_TARGET_DIRECTORY: u32 = 4u32; +pub const SL_OVERRIDE_VERIFY_VOLUME: u32 = 2u32; +pub const SL_PENDING_RETURNED: u32 = 1u32; +pub const SL_PERSISTENT_MEMORY_FIXED_MAPPING: u32 = 32u32; +pub const SL_QUERY_DIRECTORY_MASK: u32 = 27u32; +pub const SL_READ_ACCESS_GRANTED: u32 = 1u32; +pub const SL_REALTIME_STREAM: u32 = 32u32; +pub const SL_RESTART_SCAN: u32 = 1u32; +pub const SL_RETURN_ON_DISK_ENTRIES_ONLY: u32 = 8u32; +pub const SL_RETURN_SINGLE_ENTRY: u32 = 2u32; +pub const SL_STOP_ON_SYMLINK: u32 = 8u32; +pub const SL_WATCH_TREE: u32 = 1u32; +pub const SL_WRITE_ACCESS_GRANTED: u32 = 4u32; +pub const SL_WRITE_THROUGH: u32 = 4u32; +pub const SOC_SUBSYS_AUDIO_DSP: SOC_SUBSYSTEM_TYPE = 1i32; +pub const SOC_SUBSYS_COMPUTE_DSP: SOC_SUBSYSTEM_TYPE = 4i32; +pub const SOC_SUBSYS_SECURE_PROC: SOC_SUBSYSTEM_TYPE = 5i32; +pub const SOC_SUBSYS_SENSORS: SOC_SUBSYSTEM_TYPE = 3i32; +pub const SOC_SUBSYS_VENDOR_DEFINED: SOC_SUBSYSTEM_TYPE = 65536i32; +pub const SOC_SUBSYS_WIRELESS_MODEM: SOC_SUBSYSTEM_TYPE = 0i32; +pub const SOC_SUBSYS_WIRELSS_CONNECTIVITY: SOC_SUBSYSTEM_TYPE = 2i32; +pub const SSINFO_FLAGS_ALIGNED_DEVICE: u32 = 1u32; +pub const SSINFO_FLAGS_BYTE_ADDRESSABLE: u32 = 16u32; +pub const SSINFO_FLAGS_NO_SEEK_PENALTY: u32 = 4u32; +pub const SSINFO_FLAGS_PARTITION_ALIGNED_ON_DEVICE: u32 = 2u32; +pub const SSINFO_FLAGS_TRIM_ENABLED: u32 = 8u32; +pub const SSINFO_OFFSET_UNKNOWN: u32 = 4294967295u32; +pub const SYMBOLIC_LINK_QUERY: u32 = 1u32; +pub const SYMBOLIC_LINK_SET: u32 = 2u32; +pub const SYSTEM_CALL_INT_2E: u32 = 1u32; +pub const SYSTEM_CALL_SYSCALL: u32 = 0u32; +pub const ScsiAdapter: CONFIGURATION_TYPE = 10i32; +pub const SeImageTypeDriver: SE_IMAGE_TYPE = 1i32; +pub const SeImageTypeDynamicCodeFile: SE_IMAGE_TYPE = 3i32; +pub const SeImageTypeElamDriver: SE_IMAGE_TYPE = 0i32; +pub const SeImageTypeMax: SE_IMAGE_TYPE = 4i32; +pub const SeImageTypePlatformSecureFile: SE_IMAGE_TYPE = 2i32; +pub const SeImageVerificationCallbackInformational: SE_IMAGE_VERIFICATION_CALLBACK_TYPE = 0i32; +pub const SecondaryCache: CONFIGURATION_TYPE = 7i32; +pub const SecondaryDcache: CONFIGURATION_TYPE = 6i32; +pub const SecondaryIcache: CONFIGURATION_TYPE = 5i32; +pub const SequentialAccess: IO_ACCESS_MODE = 0i32; +pub const SerialController: CONFIGURATION_TYPE = 17i32; +pub const SetSecurityDescriptor: SECURITY_OPERATION_CODE = 0i32; +pub const SgiInternalConfiguration: BUS_DATA_TYPE = 11i32; +pub const SharedInterruptTime: u32 = 4292804616u32; +pub const SharedSystemTime: u32 = 4292804628u32; +pub const SharedTickCount: u32 = 4292805408u32; +pub const SingleBusRelations: DEVICE_RELATION_TYPE = 5i32; +pub const SlotEmpty: PCI_EXPRESS_CARD_PRESENCE = 0i32; +pub const StandardDesign: ALTERNATIVE_ARCHITECTURE_TYPE = 0i32; +pub const StopCompletion: IO_COMPLETION_ROUTINE_RESULT = -1073741802i32; +pub const SubsystemInformationTypeWSL: SUBSYSTEM_INFORMATION_TYPE = 1i32; +pub const SubsystemInformationTypeWin32: SUBSYSTEM_INFORMATION_TYPE = 0i32; +pub const SuperCriticalWorkQueue: WORK_QUEUE_TYPE = 6i32; +pub const Suspended: KWAIT_REASON = 5i32; +pub const SystemFirmwareTable_Enumerate: SYSTEM_FIRMWARE_TABLE_ACTION = 0i32; +pub const SystemFirmwareTable_Get: SYSTEM_FIRMWARE_TABLE_ACTION = 1i32; +pub const SystemMemory: CONFIGURATION_TYPE = 37i32; +pub const SystemMemoryPartitionDedicatedMemoryInformation: PARTITION_INFORMATION_CLASS = 9i32; +pub const SystemMemoryPartitionInformation: PARTITION_INFORMATION_CLASS = 0i32; +pub const SystemMemoryPartitionOpenDedicatedMemory: PARTITION_INFORMATION_CLASS = 10i32; +pub const SystemPowerState: POWER_STATE_TYPE = 0i32; +pub const THREAD_ALERT: u32 = 4u32; +pub const THREAD_CSWITCH_PMU_DISABLE: u32 = 0u32; +pub const THREAD_CSWITCH_PMU_ENABLE: u32 = 1u32; +pub const THREAD_GET_CONTEXT: u32 = 8u32; +pub const THREAD_WAIT_OBJECTS: u32 = 3u32; +pub const TIMER_EXPIRED_INDEX_BITS: u32 = 6u32; +pub const TIMER_PROCESSOR_INDEX_BITS: u32 = 5u32; +pub const TIMER_TOLERABLE_DELAY_BITS: u32 = 6u32; +pub const TREE_CONNECT_NO_CLIENT_BUFFERING: u32 = 8u32; +pub const TREE_CONNECT_WRITE_THROUGH: u32 = 2u32; +pub const TXF_MINIVERSION_DEFAULT_VIEW: u32 = 65534u32; +pub const TableEmptyTree: TABLE_SEARCH_RESULT = 0i32; +pub const TableFoundNode: TABLE_SEARCH_RESULT = 1i32; +pub const TableInsertAsLeft: TABLE_SEARCH_RESULT = 2i32; +pub const TableInsertAsRight: TABLE_SEARCH_RESULT = 3i32; +pub const TapeController: CONFIGURATION_TYPE = 14i32; +pub const TapePeripheral: CONFIGURATION_TYPE = 27i32; +pub const TargetDeviceRelation: DEVICE_RELATION_TYPE = 4i32; +pub const TcAdapter: CONFIGURATION_TYPE = 9i32; +pub const TerminalPeripheral: CONFIGURATION_TYPE = 33i32; +pub const TimerSetCoalescableTimer: TIMER_SET_INFORMATION_CLASS = 0i32; +pub const TlbMatchConflict: FAULT_INFORMATION_ARM64_TYPE = 2i32; +pub const TraceEnableFlagsClass: TRACE_INFORMATION_CLASS = 2i32; +pub const TraceEnableLevelClass: TRACE_INFORMATION_CLASS = 3i32; +pub const TraceHandleByNameClass: TRACE_INFORMATION_CLASS = 7i32; +pub const TraceHandleClass: TRACE_INFORMATION_CLASS = 1i32; +pub const TraceIdClass: TRACE_INFORMATION_CLASS = 0i32; +pub const TraceInformationClassReserved1: TRACE_INFORMATION_CLASS = 12i32; +pub const TraceInformationClassReserved2: TRACE_INFORMATION_CLASS = 14i32; +pub const TraceSessionSettingsClass: TRACE_INFORMATION_CLASS = 9i32; +pub const TranslateChildToParent: RESOURCE_TRANSLATION_DIRECTION = 0i32; +pub const TranslateParentToChild: RESOURCE_TRANSLATION_DIRECTION = 1i32; +pub const TranslationFault: FAULT_INFORMATION_ARM64_TYPE = 6i32; +pub const TransportRelations: DEVICE_RELATION_TYPE = 6i32; +pub const TurboChannel: INTERFACE_TYPE = 4i32; +pub const TypeA: DMA_SPEED = 1i32; +pub const TypeB: DMA_SPEED = 2i32; +pub const TypeC: DMA_SPEED = 3i32; +pub const TypeF: DMA_SPEED = 4i32; +pub const UADDRESS_BASE: u32 = 0u32; +pub const UnsupportedUpstreamTransaction: FAULT_INFORMATION_ARM64_TYPE = 0i32; +pub const UserMode: MODE = 1i32; +pub const UserNotPresent: POWER_USER_PRESENCE_TYPE = 0i32; +pub const UserPresent: POWER_USER_PRESENCE_TYPE = 1i32; +pub const UserRequest: KWAIT_REASON = 6i32; +pub const UserUnknown: POWER_USER_PRESENCE_TYPE = 255i32; +pub const VMEBus: INTERFACE_TYPE = 6i32; +pub const VMEConfiguration: BUS_DATA_TYPE = 5i32; +pub const VPB_DIRECT_WRITES_ALLOWED: u32 = 32u32; +pub const VPB_DISMOUNTING: u32 = 128u32; +pub const VPB_FLAGS_BYPASSIO_BLOCKED: u32 = 64u32; +pub const VPB_LOCKED: u32 = 2u32; +pub const VPB_MOUNTED: u32 = 1u32; +pub const VPB_PERSISTENT: u32 = 4u32; +pub const VPB_RAW_MOUNT: u32 = 16u32; +pub const VPB_REMOVE_PENDING: u32 = 8u32; +pub const ViewShare: SECTION_INHERIT = 1i32; +pub const ViewUnmap: SECTION_INHERIT = 2i32; +pub const Vmcs: INTERFACE_TYPE = 16i32; +pub const WCS_RAS_REGISTER_NAME_MAX_LENGTH: u32 = 32u32; +pub const WDM_MAJORVERSION: u32 = 6u32; +pub const WDM_MINORVERSION: u32 = 0u32; +pub const WHEA_AMD_EXT_REG_NUM: u32 = 10u32; +pub const WHEA_BUSCHECK_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1cf3f8b3_c5b1_49a2_aa59_5eef92ffa63c); +pub const WHEA_CACHECHECK_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa55701f5_e3ef_43de_ac72_249b573fad2c); +pub const WHEA_DEVICE_ERROR_SUMMARY_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x990b31e9_541a_4db0_a42f_837d344f6923); +pub const WHEA_DPC_CAPABILITY_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xec49534b_30e7_4358_972f_eca6958fae3b); +pub const WHEA_ERROR_LOG_ENTRY_VERSION: u32 = 1u32; +pub const WHEA_ERROR_PACKET_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe71254e9_c1b9_4940_ab76_909703a4320f); +pub const WHEA_ERROR_PACKET_V1_VERSION: u32 = 2u32; +pub const WHEA_ERROR_PACKET_V2_VERSION: u32 = 3u32; +pub const WHEA_ERROR_PACKET_VERSION: u32 = 3u32; +pub const WHEA_ERROR_PKT_VERSION: u32 = 3u32; +pub const WHEA_ERROR_RECORD_FLAGS_DEVICE_DRIVER: u32 = 8u32; +pub const WHEA_ERROR_RECORD_FLAGS_PREVIOUSERROR: u32 = 2u32; +pub const WHEA_ERROR_RECORD_FLAGS_RECOVERED: u32 = 1u32; +pub const WHEA_ERROR_RECORD_FLAGS_SIMULATED: u32 = 4u32; +pub const WHEA_ERROR_RECORD_REVISION: u32 = 528u32; +pub const WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_REVISION: u32 = 768u32; +pub const WHEA_ERROR_RECORD_SIGNATURE_END: u32 = 4294967295u32; +pub const WHEA_ERROR_RECORD_VALID_PARTITIONID: u32 = 4u32; +pub const WHEA_ERROR_RECORD_VALID_PLATFORMID: u32 = 1u32; +pub const WHEA_ERROR_RECORD_VALID_TIMESTAMP: u32 = 2u32; +pub const WHEA_ERROR_TEXT_LEN: u32 = 32u32; +pub const WHEA_ERR_SRC_OVERRIDE_FLAG: u32 = 1u32; +pub const WHEA_FIRMWARE_RECORD_TYPE_IPFSAL: u32 = 0u32; +pub const WHEA_GENERIC_ENTRY_TEXT_LEN: u32 = 20u32; +pub const WHEA_GENERIC_ENTRY_V2_VERSION: u32 = 768u32; +pub const WHEA_GENERIC_ENTRY_VERSION: u32 = 768u32; +pub const WHEA_INVALID_ERR_SRC_ID: u32 = 0u32; +pub const WHEA_IN_USE_PAGE_NOTIFY_FLAG_NOTIFYALL: u32 = 64u32; +pub const WHEA_IN_USE_PAGE_NOTIFY_FLAG_PAGEOFFLINED: u32 = 128u32; +pub const WHEA_IN_USE_PAGE_NOTIFY_FLAG_PLATFORMDIRECTED: u32 = 1u32; +pub const WHEA_MAX_LOG_DATA_LEN: u32 = 36u32; +pub const WHEA_MEMERRTYPE_INVALIDADDRESS: u32 = 10u32; +pub const WHEA_MEMERRTYPE_MASTERABORT: u32 = 6u32; +pub const WHEA_MEMERRTYPE_MEMORYSPARING: u32 = 12u32; +pub const WHEA_MEMERRTYPE_MIRRORBROKEN: u32 = 11u32; +pub const WHEA_MEMERRTYPE_MULTIBITECC: u32 = 3u32; +pub const WHEA_MEMERRTYPE_MULTISYMCHIPKILL: u32 = 5u32; +pub const WHEA_MEMERRTYPE_NOERROR: u32 = 1u32; +pub const WHEA_MEMERRTYPE_PARITYERROR: u32 = 8u32; +pub const WHEA_MEMERRTYPE_SINGLEBITECC: u32 = 2u32; +pub const WHEA_MEMERRTYPE_SINGLESYMCHIPKILL: u32 = 4u32; +pub const WHEA_MEMERRTYPE_TARGETABORT: u32 = 7u32; +pub const WHEA_MEMERRTYPE_UNKNOWN: u32 = 0u32; +pub const WHEA_MEMERRTYPE_WATCHDOGTIMEOUT: u32 = 9u32; +pub const WHEA_MSCHECK_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x48ab7f57_dc34_4f6c_a7d3_b0b5b0a74314); +pub const WHEA_PCIE_CORRECTABLE_ERROR_SECTION_COUNT_SIZE: u32 = 32u32; +pub const WHEA_PLUGIN_REGISTRATION_PACKET_V1: u32 = 65536u32; +pub const WHEA_PLUGIN_REGISTRATION_PACKET_V2: u32 = 131072u32; +pub const WHEA_PLUGIN_REGISTRATION_PACKET_VERSION: u32 = 131072u32; +pub const WHEA_PMEM_ERROR_SECTION_LOCATION_INFO_SIZE: u32 = 64u32; +pub const WHEA_PMEM_ERROR_SECTION_MAX_PAGES: u32 = 50u32; +pub const WHEA_RECORD_CREATOR_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf07c4bd_b789_4e18_b3c4_1f732cb57131); +pub const WHEA_SECTION_DESCRIPTOR_FLAGS_CONTAINMENTWRN: u32 = 2u32; +pub const WHEA_SECTION_DESCRIPTOR_FLAGS_FRU_TEXT_BY_PLUGIN: u32 = 128u32; +pub const WHEA_SECTION_DESCRIPTOR_FLAGS_LATENTERROR: u32 = 32u32; +pub const WHEA_SECTION_DESCRIPTOR_FLAGS_PRIMARY: u32 = 1u32; +pub const WHEA_SECTION_DESCRIPTOR_FLAGS_PROPAGATED: u32 = 64u32; +pub const WHEA_SECTION_DESCRIPTOR_FLAGS_RESET: u32 = 4u32; +pub const WHEA_SECTION_DESCRIPTOR_FLAGS_RESOURCENA: u32 = 16u32; +pub const WHEA_SECTION_DESCRIPTOR_FLAGS_THRESHOLDEXCEEDED: u32 = 8u32; +pub const WHEA_SECTION_DESCRIPTOR_REVISION: u32 = 768u32; +pub const WHEA_SEL_BUGCHECK_RECOVERY_STATUS_PHASE1_VERSION: u32 = 1u32; +pub const WHEA_TLBCHECK_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfc06b535_5e1f_4562_9f25_0a3b9adb63c3); +pub const WHEA_WRITE_FLAG_DUMMY: u32 = 1u32; +pub const WHEA_XPF_MCA_EXTREG_MAX_COUNT: u32 = 24u32; +pub const WHEA_XPF_MCA_SECTION_VERSION: u32 = 3u32; +pub const WHEA_XPF_MCA_SECTION_VERSION_2: u32 = 2u32; +pub const WHEA_XPF_MCA_SECTION_VERSION_3: u32 = 3u32; +pub const WMIREGISTER: u32 = 0u32; +pub const WMIREG_ACTION_BLOCK_IRPS: u32 = 5u32; +pub const WMIREG_ACTION_DEREGISTER: u32 = 2u32; +pub const WMIREG_ACTION_REGISTER: u32 = 1u32; +pub const WMIREG_ACTION_REREGISTER: u32 = 3u32; +pub const WMIREG_ACTION_UPDATE_GUIDS: u32 = 4u32; +pub const WMIUPDATE: u32 = 1u32; +pub const WdfNotifyRoutinesClass: TRACE_INFORMATION_CLASS = 15i32; +pub const WheaCpuVendorAmd: WHEA_CPU_VENDOR = 2i32; +pub const WheaCpuVendorIntel: WHEA_CPU_VENDOR = 1i32; +pub const WheaCpuVendorOther: WHEA_CPU_VENDOR = 0i32; +pub const WheaDataFormatGeneric: WHEA_ERROR_PACKET_DATA_FORMAT = 7i32; +pub const WheaDataFormatIPFSalRecord: WHEA_ERROR_PACKET_DATA_FORMAT = 0i32; +pub const WheaDataFormatMax: WHEA_ERROR_PACKET_DATA_FORMAT = 8i32; +pub const WheaDataFormatMemory: WHEA_ERROR_PACKET_DATA_FORMAT = 2i32; +pub const WheaDataFormatNMIPort: WHEA_ERROR_PACKET_DATA_FORMAT = 4i32; +pub const WheaDataFormatPCIExpress: WHEA_ERROR_PACKET_DATA_FORMAT = 3i32; +pub const WheaDataFormatPCIXBus: WHEA_ERROR_PACKET_DATA_FORMAT = 5i32; +pub const WheaDataFormatPCIXDevice: WHEA_ERROR_PACKET_DATA_FORMAT = 6i32; +pub const WheaDataFormatXPFMCA: WHEA_ERROR_PACKET_DATA_FORMAT = 1i32; +pub const WheaErrSevCorrected: WHEA_ERROR_SEVERITY = 2i32; +pub const WheaErrSevFatal: WHEA_ERROR_SEVERITY = 1i32; +pub const WheaErrSevInformational: WHEA_ERROR_SEVERITY = 3i32; +pub const WheaErrSevRecoverable: WHEA_ERROR_SEVERITY = 0i32; +pub const WheaErrTypeGeneric: WHEA_ERROR_TYPE = 6i32; +pub const WheaErrTypeMemory: WHEA_ERROR_TYPE = 1i32; +pub const WheaErrTypeNMI: WHEA_ERROR_TYPE = 3i32; +pub const WheaErrTypePCIExpress: WHEA_ERROR_TYPE = 2i32; +pub const WheaErrTypePCIXBus: WHEA_ERROR_TYPE = 4i32; +pub const WheaErrTypePCIXDevice: WHEA_ERROR_TYPE = 5i32; +pub const WheaErrTypePmem: WHEA_ERROR_TYPE = 7i32; +pub const WheaErrTypeProcessor: WHEA_ERROR_TYPE = 0i32; +pub const WheaEventBugCheckRecoveryEntry: WHEA_BUGCHECK_RECOVERY_LOG_TYPE = 0i32; +pub const WheaEventBugCheckRecoveryMax: WHEA_BUGCHECK_RECOVERY_LOG_TYPE = 2i32; +pub const WheaEventBugCheckRecoveryReturn: WHEA_BUGCHECK_RECOVERY_LOG_TYPE = 1i32; +pub const WheaEventLogAzccRootBusList: WHEA_EVENT_LOG_ENTRY_ID = -2147483617i32; +pub const WheaEventLogAzccRootBusPoisonSet: WHEA_EVENT_LOG_ENTRY_ID = -2147483602i32; +pub const WheaEventLogAzccRootBusSearchErr: WHEA_EVENT_LOG_ENTRY_ID = -2147483618i32; +pub const WheaEventLogCmciFinalRestart: WHEA_EVENT_LOG_ENTRY_ID = -2147483620i32; +pub const WheaEventLogCmciRestart: WHEA_EVENT_LOG_ENTRY_ID = -2147483621i32; +pub const WheaEventLogEntryEarlyError: WHEA_EVENT_LOG_ENTRY_ID = -2147483594i32; +pub const WheaEventLogEntryEtwOverFlow: WHEA_EVENT_LOG_ENTRY_ID = -2147483619i32; +pub const WheaEventLogEntryIdAcpiTimeOut: WHEA_EVENT_LOG_ENTRY_ID = -2147483622i32; +pub const WheaEventLogEntryIdAddRemoveErrorSource: WHEA_EVENT_LOG_ENTRY_ID = -2147483636i32; +pub const WheaEventLogEntryIdAerNotGrantedToOs: WHEA_EVENT_LOG_ENTRY_ID = -2147483624i32; +pub const WheaEventLogEntryIdAttemptErrorRecovery: WHEA_EVENT_LOG_ENTRY_ID = -2147483634i32; +pub const WheaEventLogEntryIdBadHestNotifyData: WHEA_EVENT_LOG_ENTRY_ID = -2147483565i32; +pub const WheaEventLogEntryIdBadPageLimitReached: WHEA_EVENT_LOG_ENTRY_ID = -2147483596i32; +pub const WheaEventLogEntryIdClearedPoison: WHEA_EVENT_LOG_ENTRY_ID = -2147483630i32; +pub const WheaEventLogEntryIdCmcPollingTimeout: WHEA_EVENT_LOG_ENTRY_ID = -2147483647i32; +pub const WheaEventLogEntryIdCmcSwitchToPolling: WHEA_EVENT_LOG_ENTRY_ID = -2147483645i32; +pub const WheaEventLogEntryIdCmciImplPresent: WHEA_EVENT_LOG_ENTRY_ID = -2147483608i32; +pub const WheaEventLogEntryIdCmciInitError: WHEA_EVENT_LOG_ENTRY_ID = -2147483607i32; +pub const WheaEventLogEntryIdCpuBusesInitFailed: WHEA_EVENT_LOG_ENTRY_ID = -2147483571i32; +pub const WheaEventLogEntryIdCpusFrozen: WHEA_EVENT_LOG_ENTRY_ID = -2147483552i32; +pub const WheaEventLogEntryIdCpusFrozenNoCrashDump: WHEA_EVENT_LOG_ENTRY_ID = -2147483551i32; +pub const WheaEventLogEntryIdCreateGenericRecord: WHEA_EVENT_LOG_ENTRY_ID = -2147483627i32; +pub const WheaEventLogEntryIdDefectListCorrupt: WHEA_EVENT_LOG_ENTRY_ID = -2147483566i32; +pub const WheaEventLogEntryIdDefectListFull: WHEA_EVENT_LOG_ENTRY_ID = -2147483568i32; +pub const WheaEventLogEntryIdDefectListUEFIVarFailed: WHEA_EVENT_LOG_ENTRY_ID = -2147483567i32; +pub const WheaEventLogEntryIdDeviceDriver: WHEA_EVENT_LOG_ENTRY_ID = -2147483609i32; +pub const WheaEventLogEntryIdDroppedCorrectedError: WHEA_EVENT_LOG_ENTRY_ID = -2147483644i32; +pub const WheaEventLogEntryIdDrvErrSrcInvalid: WHEA_EVENT_LOG_ENTRY_ID = -2147483605i32; +pub const WheaEventLogEntryIdDrvHandleBusy: WHEA_EVENT_LOG_ENTRY_ID = -2147483604i32; +pub const WheaEventLogEntryIdEnableKeyNotifFailed: WHEA_EVENT_LOG_ENTRY_ID = -2147483580i32; +pub const WheaEventLogEntryIdErrDimmInfoMismatch: WHEA_EVENT_LOG_ENTRY_ID = -2147483600i32; +pub const WheaEventLogEntryIdErrSrcArrayInvalid: WHEA_EVENT_LOG_ENTRY_ID = -2147483623i32; +pub const WheaEventLogEntryIdErrSrcInvalid: WHEA_EVENT_LOG_ENTRY_ID = -2147483616i32; +pub const WheaEventLogEntryIdErrorRecord: WHEA_EVENT_LOG_ENTRY_ID = -2147483626i32; +pub const WheaEventLogEntryIdErrorRecordLimit: WHEA_EVENT_LOG_ENTRY_ID = -2147483625i32; +pub const WheaEventLogEntryIdFailedAddToDefectList: WHEA_EVENT_LOG_ENTRY_ID = -2147483569i32; +pub const WheaEventLogEntryIdGenericErrMemMap: WHEA_EVENT_LOG_ENTRY_ID = -2147483615i32; +pub const WheaEventLogEntryIdKeyNotificationFailed: WHEA_EVENT_LOG_ENTRY_ID = -2147483579i32; +pub const WheaEventLogEntryIdMcaErrorCleared: WHEA_EVENT_LOG_ENTRY_ID = -2147483631i32; +pub const WheaEventLogEntryIdMcaFoundErrorInBank: WHEA_EVENT_LOG_ENTRY_ID = -2147483633i32; +pub const WheaEventLogEntryIdMcaStuckErrorCheck: WHEA_EVENT_LOG_ENTRY_ID = -2147483632i32; +pub const WheaEventLogEntryIdMemoryAddDevice: WHEA_EVENT_LOG_ENTRY_ID = -2147483575i32; +pub const WheaEventLogEntryIdMemoryRemoveDevice: WHEA_EVENT_LOG_ENTRY_ID = -2147483574i32; +pub const WheaEventLogEntryIdMemorySummaryFailed: WHEA_EVENT_LOG_ENTRY_ID = -2147483573i32; +pub const WheaEventLogEntryIdOscCapabilities: WHEA_EVENT_LOG_ENTRY_ID = -2147483638i32; +pub const WheaEventLogEntryIdPFAMemoryOfflined: WHEA_EVENT_LOG_ENTRY_ID = -2147483642i32; +pub const WheaEventLogEntryIdPFAMemoryPolicy: WHEA_EVENT_LOG_ENTRY_ID = -2147483640i32; +pub const WheaEventLogEntryIdPFAMemoryRemoveMonitor: WHEA_EVENT_LOG_ENTRY_ID = -2147483641i32; +pub const WheaEventLogEntryIdPcieAddDevice: WHEA_EVENT_LOG_ENTRY_ID = -2147483577i32; +pub const WheaEventLogEntryIdPcieConfigInfo: WHEA_EVENT_LOG_ENTRY_ID = -2147483591i32; +pub const WheaEventLogEntryIdPcieDpcError: WHEA_EVENT_LOG_ENTRY_ID = -2147483572i32; +pub const WheaEventLogEntryIdPcieOverrideInfo: WHEA_EVENT_LOG_ENTRY_ID = -2147483593i32; +pub const WheaEventLogEntryIdPcieRemoveDevice: WHEA_EVENT_LOG_ENTRY_ID = -2147483578i32; +pub const WheaEventLogEntryIdPcieSpuriousErrSource: WHEA_EVENT_LOG_ENTRY_ID = -2147483576i32; +pub const WheaEventLogEntryIdPcieSummaryFailed: WHEA_EVENT_LOG_ENTRY_ID = -2147483584i32; +pub const WheaEventLogEntryIdProcessEINJ: WHEA_EVENT_LOG_ENTRY_ID = -2147483629i32; +pub const WheaEventLogEntryIdProcessHEST: WHEA_EVENT_LOG_ENTRY_ID = -2147483628i32; +pub const WheaEventLogEntryIdPshedCallbackCollision: WHEA_EVENT_LOG_ENTRY_ID = -2147483614i32; +pub const WheaEventLogEntryIdPshedInjectError: WHEA_EVENT_LOG_ENTRY_ID = -2147483639i32; +pub const WheaEventLogEntryIdPshedPiTraceLog: WHEA_EVENT_LOG_ENTRY_ID = -2147221488i32; +pub const WheaEventLogEntryIdPshedPluginInitFailed: WHEA_EVENT_LOG_ENTRY_ID = -2147483570i32; +pub const WheaEventLogEntryIdPshedPluginLoad: WHEA_EVENT_LOG_ENTRY_ID = -2147483612i32; +pub const WheaEventLogEntryIdPshedPluginRegister: WHEA_EVENT_LOG_ENTRY_ID = -2147483637i32; +pub const WheaEventLogEntryIdPshedPluginSupported: WHEA_EVENT_LOG_ENTRY_ID = -2147483610i32; +pub const WheaEventLogEntryIdPshedPluginUnload: WHEA_EVENT_LOG_ENTRY_ID = -2147483611i32; +pub const WheaEventLogEntryIdReadPcieOverridesErr: WHEA_EVENT_LOG_ENTRY_ID = -2147483592i32; +pub const WheaEventLogEntryIdRowFailure: WHEA_EVENT_LOG_ENTRY_ID = -2147483561i32; +pub const WheaEventLogEntryIdSELBugCheckInfo: WHEA_EVENT_LOG_ENTRY_ID = -2147483601i32; +pub const WheaEventLogEntryIdSELBugCheckProgress: WHEA_EVENT_LOG_ENTRY_ID = -2147483613i32; +pub const WheaEventLogEntryIdSELBugCheckRecovery: WHEA_EVENT_LOG_ENTRY_ID = -2147483606i32; +pub const WheaEventLogEntryIdSrasTableEntries: WHEA_EVENT_LOG_ENTRY_ID = -2147483562i32; +pub const WheaEventLogEntryIdSrasTableError: WHEA_EVENT_LOG_ENTRY_ID = -2147483563i32; +pub const WheaEventLogEntryIdSrasTableNotFound: WHEA_EVENT_LOG_ENTRY_ID = -2147483564i32; +pub const WheaEventLogEntryIdStartedReportHwError: WHEA_EVENT_LOG_ENTRY_ID = -2147483643i32; +pub const WheaEventLogEntryIdThrottleAddErrSrcFailed: WHEA_EVENT_LOG_ENTRY_ID = -2147483582i32; +pub const WheaEventLogEntryIdThrottleRegCorrupt: WHEA_EVENT_LOG_ENTRY_ID = -2147483583i32; +pub const WheaEventLogEntryIdThrottleRegDataIgnored: WHEA_EVENT_LOG_ENTRY_ID = -2147483581i32; +pub const WheaEventLogEntryIdWheaHeartbeat: WHEA_EVENT_LOG_ENTRY_ID = -2147483603i32; +pub const WheaEventLogEntryIdWheaInit: WHEA_EVENT_LOG_ENTRY_ID = -2147483646i32; +pub const WheaEventLogEntryIdWorkQueueItem: WHEA_EVENT_LOG_ENTRY_ID = -2147483635i32; +pub const WheaEventLogEntryIdeDpcEnabled: WHEA_EVENT_LOG_ENTRY_ID = -2147483599i32; +pub const WheaEventLogEntryPageOfflineDone: WHEA_EVENT_LOG_ENTRY_ID = -2147483598i32; +pub const WheaEventLogEntryPageOfflinePendMax: WHEA_EVENT_LOG_ENTRY_ID = -2147483597i32; +pub const WheaEventLogEntrySrarDetail: WHEA_EVENT_LOG_ENTRY_ID = -2147483595i32; +pub const WheaEventLogEntryTypeError: WHEA_EVENT_LOG_ENTRY_TYPE = 2i32; +pub const WheaEventLogEntryTypeInformational: WHEA_EVENT_LOG_ENTRY_TYPE = 0i32; +pub const WheaEventLogEntryTypeWarning: WHEA_EVENT_LOG_ENTRY_TYPE = 1i32; +pub const WheaMemoryThrottle: WHEA_THROTTLE_TYPE = 1i32; +pub const WheaPciExpressDownstreamSwitchPort: WHEA_PCIEXPRESS_DEVICE_TYPE = 6i32; +pub const WheaPciExpressEndpoint: WHEA_PCIEXPRESS_DEVICE_TYPE = 0i32; +pub const WheaPciExpressLegacyEndpoint: WHEA_PCIEXPRESS_DEVICE_TYPE = 1i32; +pub const WheaPciExpressRootComplexEventCollector: WHEA_PCIEXPRESS_DEVICE_TYPE = 10i32; +pub const WheaPciExpressRootComplexIntegratedEndpoint: WHEA_PCIEXPRESS_DEVICE_TYPE = 9i32; +pub const WheaPciExpressRootPort: WHEA_PCIEXPRESS_DEVICE_TYPE = 4i32; +pub const WheaPciExpressToPciXBridge: WHEA_PCIEXPRESS_DEVICE_TYPE = 7i32; +pub const WheaPciExpressUpstreamSwitchPort: WHEA_PCIEXPRESS_DEVICE_TYPE = 5i32; +pub const WheaPciREcoveryStatusUnknown: WHEA_PCI_RECOVERY_STATUS = 0i32; +pub const WheaPciRecoverySignalAer: WHEA_PCI_RECOVERY_SIGNAL = 1i32; +pub const WheaPciRecoverySignalDpc: WHEA_PCI_RECOVERY_SIGNAL = 2i32; +pub const WheaPciRecoverySignalUnknown: WHEA_PCI_RECOVERY_SIGNAL = 0i32; +pub const WheaPciRecoveryStatusBusNotFound: WHEA_PCI_RECOVERY_STATUS = 6i32; +pub const WheaPciRecoveryStatusComplexTree: WHEA_PCI_RECOVERY_STATUS = 5i32; +pub const WheaPciRecoveryStatusLinkDisableTimeout: WHEA_PCI_RECOVERY_STATUS = 2i32; +pub const WheaPciRecoveryStatusLinkEnableTimeout: WHEA_PCI_RECOVERY_STATUS = 3i32; +pub const WheaPciRecoveryStatusNoError: WHEA_PCI_RECOVERY_STATUS = 1i32; +pub const WheaPciRecoveryStatusRpBusyTimeout: WHEA_PCI_RECOVERY_STATUS = 4i32; +pub const WheaPciXToExpressBridge: WHEA_PCIEXPRESS_DEVICE_TYPE = 8i32; +pub const WheaPcieThrottle: WHEA_THROTTLE_TYPE = 0i32; +pub const WheaPfaRemoveCapacity: WHEA_PFA_REMOVE_TRIGGER = 3i32; +pub const WheaPfaRemoveErrorThreshold: WHEA_PFA_REMOVE_TRIGGER = 1i32; +pub const WheaPfaRemoveTimeout: WHEA_PFA_REMOVE_TRIGGER = 2i32; +pub const WheaRawDataFormatAMD64MCA: WHEA_RAW_DATA_FORMAT = 3i32; +pub const WheaRawDataFormatGeneric: WHEA_RAW_DATA_FORMAT = 9i32; +pub const WheaRawDataFormatIA32MCA: WHEA_RAW_DATA_FORMAT = 1i32; +pub const WheaRawDataFormatIPFSalRecord: WHEA_RAW_DATA_FORMAT = 0i32; +pub const WheaRawDataFormatIntel64MCA: WHEA_RAW_DATA_FORMAT = 2i32; +pub const WheaRawDataFormatMax: WHEA_RAW_DATA_FORMAT = 10i32; +pub const WheaRawDataFormatMemory: WHEA_RAW_DATA_FORMAT = 4i32; +pub const WheaRawDataFormatNMIPort: WHEA_RAW_DATA_FORMAT = 6i32; +pub const WheaRawDataFormatPCIExpress: WHEA_RAW_DATA_FORMAT = 5i32; +pub const WheaRawDataFormatPCIXBus: WHEA_RAW_DATA_FORMAT = 7i32; +pub const WheaRawDataFormatPCIXDevice: WHEA_RAW_DATA_FORMAT = 8i32; +pub const WheaRecoveryContextErrorTypeMax: WHEA_RECOVERY_CONTEXT_ERROR_TYPE = 3i32; +pub const WheaRecoveryContextErrorTypeMemory: WHEA_RECOVERY_CONTEXT_ERROR_TYPE = 1i32; +pub const WheaRecoveryContextErrorTypePmem: WHEA_RECOVERY_CONTEXT_ERROR_TYPE = 2i32; +pub const WheaRecoveryFailureReasonFarNotValid: WHEA_RECOVERY_FAILURE_REASON = 17i32; +pub const WheaRecoveryFailureReasonHighIrql: WHEA_RECOVERY_FAILURE_REASON = 10i32; +pub const WheaRecoveryFailureReasonInsufficientAltContextWrappers: WHEA_RECOVERY_FAILURE_REASON = 11i32; +pub const WheaRecoveryFailureReasonInterruptsDisabled: WHEA_RECOVERY_FAILURE_REASON = 12i32; +pub const WheaRecoveryFailureReasonInvalidAddressMode: WHEA_RECOVERY_FAILURE_REASON = 9i32; +pub const WheaRecoveryFailureReasonKernelCouldNotMarkMemoryBad: WHEA_RECOVERY_FAILURE_REASON = 1i32; +pub const WheaRecoveryFailureReasonKernelMarkMemoryBadTimedOut: WHEA_RECOVERY_FAILURE_REASON = 2i32; +pub const WheaRecoveryFailureReasonKernelWillPageFaultBCAtCurrentIrql: WHEA_RECOVERY_FAILURE_REASON = 16i32; +pub const WheaRecoveryFailureReasonMax: WHEA_RECOVERY_FAILURE_REASON = 18i32; +pub const WheaRecoveryFailureReasonMiscOrAddrNotValid: WHEA_RECOVERY_FAILURE_REASON = 8i32; +pub const WheaRecoveryFailureReasonNoRecoveryContext: WHEA_RECOVERY_FAILURE_REASON = 3i32; +pub const WheaRecoveryFailureReasonNotContinuable: WHEA_RECOVERY_FAILURE_REASON = 4i32; +pub const WheaRecoveryFailureReasonNotSupported: WHEA_RECOVERY_FAILURE_REASON = 7i32; +pub const WheaRecoveryFailureReasonOverflow: WHEA_RECOVERY_FAILURE_REASON = 6i32; +pub const WheaRecoveryFailureReasonPcc: WHEA_RECOVERY_FAILURE_REASON = 5i32; +pub const WheaRecoveryFailureReasonStackOverflow: WHEA_RECOVERY_FAILURE_REASON = 14i32; +pub const WheaRecoveryFailureReasonSwapBusy: WHEA_RECOVERY_FAILURE_REASON = 13i32; +pub const WheaRecoveryFailureReasonUnexpectedFailure: WHEA_RECOVERY_FAILURE_REASON = 15i32; +pub const WheaRecoveryTypeActionOptional: WHEA_RECOVERY_TYPE = 2i32; +pub const WheaRecoveryTypeActionRequired: WHEA_RECOVERY_TYPE = 1i32; +pub const WheaRecoveryTypeMax: WHEA_RECOVERY_TYPE = 3i32; +pub const WheapDpcErrBusNotFound: WHEAP_DPC_ERROR_EVENT_TYPE = 1i32; +pub const WheapDpcErrDeviceIdBad: WHEAP_DPC_ERROR_EVENT_TYPE = 3i32; +pub const WheapDpcErrDpcedSubtree: WHEAP_DPC_ERROR_EVENT_TYPE = 2i32; +pub const WheapDpcErrNoChildren: WHEAP_DPC_ERROR_EVENT_TYPE = 5i32; +pub const WheapDpcErrNoErr: WHEAP_DPC_ERROR_EVENT_TYPE = 0i32; +pub const WheapDpcErrResetFailed: WHEAP_DPC_ERROR_EVENT_TYPE = 4i32; +pub const WheapPfaOfflinePredictiveFailure: WHEAP_PFA_OFFLINE_DECISION_TYPE = 1i32; +pub const WheapPfaOfflineUncorrectedError: WHEAP_PFA_OFFLINE_DECISION_TYPE = 2i32; +pub const Width16Bits: DMA_WIDTH = 1i32; +pub const Width32Bits: DMA_WIDTH = 2i32; +pub const Width64Bits: DMA_WIDTH = 3i32; +pub const Width8Bits: DMA_WIDTH = 0i32; +pub const WidthNoWrap: DMA_WIDTH = 4i32; +pub const WormController: CONFIGURATION_TYPE = 16i32; +pub const WrAlertByThreadId: KWAIT_REASON = 37i32; +pub const WrCalloutStack: KWAIT_REASON = 25i32; +pub const WrCpuRateControl: KWAIT_REASON = 24i32; +pub const WrDeferredPreempt: KWAIT_REASON = 38i32; +pub const WrDelayExecution: KWAIT_REASON = 11i32; +pub const WrDispatchInt: KWAIT_REASON = 31i32; +pub const WrExecutive: KWAIT_REASON = 7i32; +pub const WrFastMutex: KWAIT_REASON = 34i32; +pub const WrFreePage: KWAIT_REASON = 8i32; +pub const WrGuardedMutex: KWAIT_REASON = 35i32; +pub const WrIoRing: KWAIT_REASON = 40i32; +pub const WrKernel: KWAIT_REASON = 26i32; +pub const WrKeyedEvent: KWAIT_REASON = 21i32; +pub const WrLpcReceive: KWAIT_REASON = 16i32; +pub const WrLpcReply: KWAIT_REASON = 17i32; +pub const WrMdlCache: KWAIT_REASON = 41i32; +pub const WrMutex: KWAIT_REASON = 29i32; +pub const WrPageIn: KWAIT_REASON = 9i32; +pub const WrPageOut: KWAIT_REASON = 19i32; +pub const WrPhysicalFault: KWAIT_REASON = 39i32; +pub const WrPoolAllocation: KWAIT_REASON = 10i32; +pub const WrPreempted: KWAIT_REASON = 32i32; +pub const WrProcessInSwap: KWAIT_REASON = 23i32; +pub const WrPushLock: KWAIT_REASON = 28i32; +pub const WrQuantumEnd: KWAIT_REASON = 30i32; +pub const WrQueue: KWAIT_REASON = 15i32; +pub const WrRendezvous: KWAIT_REASON = 20i32; +pub const WrResource: KWAIT_REASON = 27i32; +pub const WrRundown: KWAIT_REASON = 36i32; +pub const WrSpare0: KWAIT_REASON = 14i32; +pub const WrSuspended: KWAIT_REASON = 12i32; +pub const WrTerminated: KWAIT_REASON = 22i32; +pub const WrUserRequest: KWAIT_REASON = 13i32; +pub const WrVirtualMemory: KWAIT_REASON = 18i32; +pub const WrYieldExecution: KWAIT_REASON = 33i32; +pub const WriteAccess: IO_ACCESS_TYPE = 1i32; +pub const XPF_BUS_CHECK_ADDRESS_IO: u32 = 2u32; +pub const XPF_BUS_CHECK_ADDRESS_MEMORY: u32 = 0u32; +pub const XPF_BUS_CHECK_ADDRESS_OTHER: u32 = 3u32; +pub const XPF_BUS_CHECK_ADDRESS_RESERVED: u32 = 1u32; +pub const XPF_BUS_CHECK_OPERATION_DATAREAD: u32 = 3u32; +pub const XPF_BUS_CHECK_OPERATION_DATAWRITE: u32 = 4u32; +pub const XPF_BUS_CHECK_OPERATION_GENERIC: u32 = 0u32; +pub const XPF_BUS_CHECK_OPERATION_GENREAD: u32 = 1u32; +pub const XPF_BUS_CHECK_OPERATION_GENWRITE: u32 = 2u32; +pub const XPF_BUS_CHECK_OPERATION_INSTRUCTIONFETCH: u32 = 5u32; +pub const XPF_BUS_CHECK_OPERATION_PREFETCH: u32 = 6u32; +pub const XPF_BUS_CHECK_PARTICIPATION_GENERIC: u32 = 3u32; +pub const XPF_BUS_CHECK_PARTICIPATION_PROCOBSERVED: u32 = 2u32; +pub const XPF_BUS_CHECK_PARTICIPATION_PROCORIGINATED: u32 = 0u32; +pub const XPF_BUS_CHECK_PARTICIPATION_PROCRESPONDED: u32 = 1u32; +pub const XPF_BUS_CHECK_TRANSACTIONTYPE_DATAACCESS: u32 = 1u32; +pub const XPF_BUS_CHECK_TRANSACTIONTYPE_GENERIC: u32 = 2u32; +pub const XPF_BUS_CHECK_TRANSACTIONTYPE_INSTRUCTION: u32 = 0u32; +pub const XPF_CACHE_CHECK_OPERATION_DATAREAD: u32 = 3u32; +pub const XPF_CACHE_CHECK_OPERATION_DATAWRITE: u32 = 4u32; +pub const XPF_CACHE_CHECK_OPERATION_EVICTION: u32 = 7u32; +pub const XPF_CACHE_CHECK_OPERATION_GENERIC: u32 = 0u32; +pub const XPF_CACHE_CHECK_OPERATION_GENREAD: u32 = 1u32; +pub const XPF_CACHE_CHECK_OPERATION_GENWRITE: u32 = 2u32; +pub const XPF_CACHE_CHECK_OPERATION_INSTRUCTIONFETCH: u32 = 5u32; +pub const XPF_CACHE_CHECK_OPERATION_PREFETCH: u32 = 6u32; +pub const XPF_CACHE_CHECK_OPERATION_SNOOP: u32 = 8u32; +pub const XPF_CACHE_CHECK_TRANSACTIONTYPE_DATAACCESS: u32 = 1u32; +pub const XPF_CACHE_CHECK_TRANSACTIONTYPE_GENERIC: u32 = 2u32; +pub const XPF_CACHE_CHECK_TRANSACTIONTYPE_INSTRUCTION: u32 = 0u32; +pub const XPF_CONTEXT_INFO_32BITCONTEXT: u32 = 2u32; +pub const XPF_CONTEXT_INFO_32BITDEBUGREGS: u32 = 5u32; +pub const XPF_CONTEXT_INFO_64BITCONTEXT: u32 = 3u32; +pub const XPF_CONTEXT_INFO_64BITDEBUGREGS: u32 = 6u32; +pub const XPF_CONTEXT_INFO_FXSAVE: u32 = 4u32; +pub const XPF_CONTEXT_INFO_MMREGISTERS: u32 = 7u32; +pub const XPF_CONTEXT_INFO_MSRREGISTERS: u32 = 1u32; +pub const XPF_CONTEXT_INFO_UNCLASSIFIEDDATA: u32 = 0u32; +pub const XPF_MCA_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8a1e1d01_42f9_4557_9c33_565e5cc3f7e8); +pub const XPF_MS_CHECK_ERRORTYPE_EXTERNAL: u32 = 3u32; +pub const XPF_MS_CHECK_ERRORTYPE_FRC: u32 = 4u32; +pub const XPF_MS_CHECK_ERRORTYPE_INTERNALUNCLASSIFIED: u32 = 5u32; +pub const XPF_MS_CHECK_ERRORTYPE_MCROMPARITY: u32 = 2u32; +pub const XPF_MS_CHECK_ERRORTYPE_NOERROR: u32 = 0u32; +pub const XPF_MS_CHECK_ERRORTYPE_UNCLASSIFIED: u32 = 1u32; +pub const XPF_PROCESSOR_ERROR_SECTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdc3ea0b0_a144_4797_b95b_53fa242b6e1d); +pub const XPF_TLB_CHECK_OPERATION_DATAREAD: u32 = 3u32; +pub const XPF_TLB_CHECK_OPERATION_DATAWRITE: u32 = 4u32; +pub const XPF_TLB_CHECK_OPERATION_GENERIC: u32 = 0u32; +pub const XPF_TLB_CHECK_OPERATION_GENREAD: u32 = 1u32; +pub const XPF_TLB_CHECK_OPERATION_GENWRITE: u32 = 2u32; +pub const XPF_TLB_CHECK_OPERATION_INSTRUCTIONFETCH: u32 = 5u32; +pub const XPF_TLB_CHECK_OPERATION_PREFETCH: u32 = 6u32; +pub const XPF_TLB_CHECK_TRANSACTIONTYPE_DATAACCESS: u32 = 1u32; +pub const XPF_TLB_CHECK_TRANSACTIONTYPE_GENERIC: u32 = 2u32; +pub const XPF_TLB_CHECK_TRANSACTIONTYPE_INSTRUCTION: u32 = 0u32; +pub const _STRSAFE_USE_SECURE_CRT: u32 = 0u32; +pub const __guid_type: u32 = 8192u32; +pub const __multiString_type: u32 = 16384u32; +pub const __string_type: u32 = 4096u32; +pub type ALTERNATIVE_ARCHITECTURE_TYPE = i32; +pub type ARBITER_ACTION = i32; +pub type ARBITER_REQUEST_SOURCE = i32; +pub type ARBITER_RESULT = i32; +pub type BDCB_CALLBACK_TYPE = i32; +pub type BDCB_CLASSIFICATION = i32; +pub type BDCB_STATUS_UPDATE_TYPE = i32; +pub type BOUND_CALLBACK_STATUS = i32; +pub type BUS_DATA_TYPE = i32; +pub type BUS_QUERY_ID_TYPE = i32; +pub type CM_SHARE_DISPOSITION = i32; +pub type CONFIGURATION_TYPE = i32; +pub type CREATE_FILE_TYPE = i32; +pub type D3COLD_LAST_TRANSITION_STATUS = i32; +pub type DEVICE_DIRECTORY_TYPE = i32; +pub type DEVICE_INSTALL_STATE = i32; +pub type DEVICE_REGISTRY_PROPERTY = i32; +pub type DEVICE_RELATION_TYPE = i32; +pub type DEVICE_REMOVAL_POLICY = i32; +pub type DEVICE_RESET_TYPE = i32; +pub type DEVICE_TEXT_TYPE = i32; +pub type DEVICE_USAGE_NOTIFICATION_TYPE = i32; +pub type DEVICE_WAKE_DEPTH = i32; +pub type DIRECTORY_NOTIFY_INFORMATION_CLASS = i32; +pub type DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE = i32; +pub type DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE = i32; +pub type DMA_COMPLETION_STATUS = i32; +pub type DMA_SPEED = i32; +pub type DMA_WIDTH = i32; +pub type DOMAIN_CONFIGURATION_ARCH = i32; +pub type DRIVER_DIRECTORY_TYPE = i32; +pub type DRIVER_REGKEY_TYPE = i32; +pub type DRIVER_RUNTIME_INIT_FLAGS = i32; +pub type EXTENDED_AGP_REGISTER = i32; +pub type EX_POOL_PRIORITY = i32; +pub type FAULT_INFORMATION_ARCH = i32; +pub type FAULT_INFORMATION_ARM64_TYPE = i32; +pub type HAL_APIC_DESTINATION_MODE = i32; +pub type HAL_DISPLAY_BIOS_INFORMATION = i32; +pub type HAL_DMA_CRASH_DUMP_REGISTER_TYPE = i32; +pub type HAL_QUERY_INFORMATION_CLASS = i32; +pub type HAL_SET_INFORMATION_CLASS = i32; +pub type HARDWARE_COUNTER_TYPE = i32; +pub type INTEL_CACHE_TYPE = i32; +pub type INTERFACE_TYPE = i32; +pub type INTERLOCKED_RESULT = i32; +pub type IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE = i32; +pub type IOMMU_DMA_DOMAIN_TYPE = i32; +pub type IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE = i32; +pub type IOMMU_MAP_PHYSICAL_ADDRESS_TYPE = i32; +pub type IO_ACCESS_MODE = i32; +pub type IO_ACCESS_TYPE = i32; +pub type IO_ALLOCATION_ACTION = i32; +pub type IO_COMPLETION_ROUTINE_RESULT = i32; +pub type IO_CONTAINER_INFORMATION_CLASS = i32; +pub type IO_CONTAINER_NOTIFICATION_CLASS = i32; +pub type IO_NOTIFICATION_EVENT_CATEGORY = i32; +pub type IO_PAGING_PRIORITY = i32; +pub type IO_QUERY_DEVICE_DATA_FORMAT = i32; +pub type IO_SESSION_EVENT = i32; +pub type IO_SESSION_STATE = i32; +pub type IRQ_DEVICE_POLICY = i32; +pub type IRQ_GROUP_POLICY = i32; +pub type IRQ_PRIORITY = i32; +pub type KBUGCHECK_BUFFER_DUMP_STATE = i32; +pub type KBUGCHECK_CALLBACK_REASON = i32; +pub type KBUGCHECK_DUMP_IO_TYPE = i32; +pub type KDPC_IMPORTANCE = i32; +pub type KD_CALLBACK_ACTION = i32; +pub type KD_NAMESPACE_ENUM = i32; +pub type KD_OPTION = i32; +pub type KEY_INFORMATION_CLASS = i32; +pub type KEY_VALUE_INFORMATION_CLASS = i32; +pub type KE_PROCESSOR_CHANGE_NOTIFY_STATE = i32; +pub type KINTERRUPT_MODE = i32; +pub type KINTERRUPT_POLARITY = i32; +pub type KPROFILE_SOURCE = i32; +pub type KWAIT_REASON = i32; +pub type LOCK_OPERATION = i32; +pub type MCA_EXCEPTION_TYPE = i32; +pub type MEMORY_CACHING_TYPE = i32; +pub type MEMORY_CACHING_TYPE_ORIG = i32; +pub type MEM_DEDICATED_ATTRIBUTE_TYPE = i32; +pub type MEM_SECTION_EXTENDED_PARAMETER_TYPE = i32; +pub type MM_MDL_PAGE_CONTENTS_STATE = i32; +pub type MM_PAGE_PRIORITY = i32; +pub type MM_ROTATE_DIRECTION = i32; +pub type MM_SYSTEMSIZE = i32; +pub type MODE = i32; +pub type NPEM_CONTROL_STANDARD_CONTROL_BIT = i32; +pub type OB_PREOP_CALLBACK_STATUS = i32; +pub type PARTITION_INFORMATION_CLASS = i32; +pub type PCI_ACS_BIT = i32; +pub type PCI_BUS_WIDTH = i32; +pub type PCI_DEVICE_D3COLD_STATE_REASON = i32; +pub type PCI_EXPRESS_ASPM_CONTROL = i32; +pub type PCI_EXPRESS_ASPM_SUPPORT = i32; +pub type PCI_EXPRESS_CARD_PRESENCE = i32; +pub type PCI_EXPRESS_DEVICE_TYPE = i32; +pub type PCI_EXPRESS_INDICATOR_STATE = i32; +pub type PCI_EXPRESS_L0s_EXIT_LATENCY = i32; +pub type PCI_EXPRESS_L1_EXIT_LATENCY = i32; +pub type PCI_EXPRESS_LINK_SUBSTATE = i32; +pub type PCI_EXPRESS_MAX_PAYLOAD_SIZE = i32; +pub type PCI_EXPRESS_MRL_STATE = i32; +pub type PCI_EXPRESS_POWER_STATE = i32; +pub type PCI_EXPRESS_RCB = i32; +pub type PCI_HARDWARE_INTERFACE = i32; +pub type PCW_CALLBACK_TYPE = i32; +pub type PCW_REGISTRATION_FLAGS = i32; +pub type PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE = i32; +pub type POOL_EXTENDED_PARAMETER_TYPE = i32; +pub type POWER_MONITOR_REQUEST_REASON = i32; +pub type POWER_MONITOR_REQUEST_TYPE = i32; +pub type POWER_PLATFORM_ROLE = i32; +pub type POWER_STATE_TYPE = i32; +pub type POWER_USER_PRESENCE_TYPE = i32; +pub type PO_FX_PERF_STATE_TYPE = i32; +pub type PO_FX_PERF_STATE_UNIT = i32; +pub type PO_THERMAL_REQUEST_TYPE = i32; +pub type PSCREATEPROCESSNOTIFYTYPE = i32; +pub type PSCREATETHREADNOTIFYTYPE = i32; +pub type PSHED_PI_ERR_READING_PCIE_OVERRIDES = i32; +pub type REG_NOTIFY_CLASS = i32; +pub type RESOURCE_TRANSLATION_DIRECTION = i32; +pub type RTL_GENERIC_COMPARE_RESULTS = i32; +pub type SECTION_INHERIT = i32; +pub type SECURITY_OPERATION_CODE = i32; +pub type SE_IMAGE_TYPE = i32; +pub type SE_IMAGE_VERIFICATION_CALLBACK_TYPE = i32; +pub type SOC_SUBSYSTEM_TYPE = i32; +pub type STATE_LOCATION_TYPE = i32; +pub type SUBSYSTEM_INFORMATION_TYPE = i32; +pub type SYSTEM_FIRMWARE_TABLE_ACTION = i32; +pub type SYSTEM_POWER_CONDITION = i32; +pub type TABLE_SEARCH_RESULT = i32; +pub type TIMER_SET_INFORMATION_CLASS = i32; +pub type TRACE_INFORMATION_CLASS = i32; +pub type WHEAP_DPC_ERROR_EVENT_TYPE = i32; +pub type WHEAP_PFA_OFFLINE_DECISION_TYPE = i32; +pub type WHEA_BUGCHECK_RECOVERY_LOG_TYPE = i32; +pub type WHEA_CPU_VENDOR = i32; +pub type WHEA_ERROR_PACKET_DATA_FORMAT = i32; +pub type WHEA_ERROR_SEVERITY = i32; +pub type WHEA_ERROR_TYPE = i32; +pub type WHEA_EVENT_LOG_ENTRY_ID = i32; +pub type WHEA_EVENT_LOG_ENTRY_TYPE = i32; +pub type WHEA_PCIEXPRESS_DEVICE_TYPE = i32; +pub type WHEA_PCI_RECOVERY_SIGNAL = i32; +pub type WHEA_PCI_RECOVERY_STATUS = i32; +pub type WHEA_PFA_REMOVE_TRIGGER = i32; +pub type WHEA_PSHED_PLUGIN_ENABLE_NOTIFY_ERRORS = i32; +pub type WHEA_RAW_DATA_FORMAT = i32; +pub type WHEA_RECOVERY_CONTEXT_ERROR_TYPE = i32; +pub type WHEA_RECOVERY_FAILURE_REASON = i32; +pub type WHEA_RECOVERY_TYPE = i32; +pub type WHEA_THROTTLE_TYPE = i32; +pub type WORK_QUEUE_TYPE = i32; +#[repr(C)] +pub struct ACPI_DEBUGGING_DEVICE_IN_USE { + pub NameSpacePathLength: u32, + pub NameSpacePath: [u16; 1], +} +impl ::core::marker::Copy for ACPI_DEBUGGING_DEVICE_IN_USE {} +impl ::core::clone::Clone for ACPI_DEBUGGING_DEVICE_IN_USE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct ACPI_INTERFACE_STANDARD { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub GpeConnectVector: PGPE_CONNECT_VECTOR, + pub GpeDisconnectVector: PGPE_DISCONNECT_VECTOR, + pub GpeEnableEvent: PGPE_ENABLE_EVENT, + pub GpeDisableEvent: PGPE_DISABLE_EVENT, + pub GpeClearStatus: PGPE_CLEAR_STATUS, + pub RegisterForDeviceNotifications: PREGISTER_FOR_DEVICE_NOTIFICATIONS, + pub UnregisterForDeviceNotifications: PUNREGISTER_FOR_DEVICE_NOTIFICATIONS, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for ACPI_INTERFACE_STANDARD {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for ACPI_INTERFACE_STANDARD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ACPI_INTERFACE_STANDARD2 { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub GpeConnectVector: PGPE_CONNECT_VECTOR2, + pub GpeDisconnectVector: PGPE_DISCONNECT_VECTOR2, + pub GpeEnableEvent: PGPE_ENABLE_EVENT2, + pub GpeDisableEvent: PGPE_DISABLE_EVENT2, + pub GpeClearStatus: PGPE_CLEAR_STATUS2, + pub RegisterForDeviceNotifications: PREGISTER_FOR_DEVICE_NOTIFICATIONS2, + pub UnregisterForDeviceNotifications: PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ACPI_INTERFACE_STANDARD2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ACPI_INTERFACE_STANDARD2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AGP_TARGET_BUS_INTERFACE_STANDARD { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub SetBusData: PGET_SET_DEVICE_DATA, + pub GetBusData: PGET_SET_DEVICE_DATA, + pub CapabilityID: u8, +} +impl ::core::marker::Copy for AGP_TARGET_BUS_INTERFACE_STANDARD {} +impl ::core::clone::Clone for AGP_TARGET_BUS_INTERFACE_STANDARD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union AMD_L1_CACHE_INFO { + pub Ulong: u32, + pub Anonymous: AMD_L1_CACHE_INFO_0, +} +impl ::core::marker::Copy for AMD_L1_CACHE_INFO {} +impl ::core::clone::Clone for AMD_L1_CACHE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AMD_L1_CACHE_INFO_0 { + pub LineSize: u8, + pub LinesPerTag: u8, + pub Associativity: u8, + pub Size: u8, +} +impl ::core::marker::Copy for AMD_L1_CACHE_INFO_0 {} +impl ::core::clone::Clone for AMD_L1_CACHE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union AMD_L2_CACHE_INFO { + pub Ulong: u32, + pub Anonymous: AMD_L2_CACHE_INFO_0, +} +impl ::core::marker::Copy for AMD_L2_CACHE_INFO {} +impl ::core::clone::Clone for AMD_L2_CACHE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AMD_L2_CACHE_INFO_0 { + pub LineSize: u8, + pub _bitfield: u8, + pub Size: u16, +} +impl ::core::marker::Copy for AMD_L2_CACHE_INFO_0 {} +impl ::core::clone::Clone for AMD_L2_CACHE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union AMD_L3_CACHE_INFO { + pub Ulong: u32, + pub Anonymous: AMD_L3_CACHE_INFO_0, +} +impl ::core::marker::Copy for AMD_L3_CACHE_INFO {} +impl ::core::clone::Clone for AMD_L3_CACHE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AMD_L3_CACHE_INFO_0 { + pub LineSize: u8, + pub _bitfield1: u8, + pub _bitfield2: u16, +} +impl ::core::marker::Copy for AMD_L3_CACHE_INFO_0 {} +impl ::core::clone::Clone for AMD_L3_CACHE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct ARBITER_ADD_RESERVED_PARAMETERS { + pub ReserveDevice: *mut super::super::Foundation::DEVICE_OBJECT, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for ARBITER_ADD_RESERVED_PARAMETERS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for ARBITER_ADD_RESERVED_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct ARBITER_BOOT_ALLOCATION_PARAMETERS { + pub ArbitrationList: *mut super::super::super::Win32::System::Kernel::LIST_ENTRY, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for ARBITER_BOOT_ALLOCATION_PARAMETERS {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for ARBITER_BOOT_ALLOCATION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct ARBITER_CONFLICT_INFO { + pub OwningObject: *mut super::super::Foundation::DEVICE_OBJECT, + pub Start: u64, + pub End: u64, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for ARBITER_CONFLICT_INFO {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for ARBITER_CONFLICT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct ARBITER_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub ArbiterHandler: PARBITER_HANDLER, + pub Flags: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for ARBITER_INTERFACE {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for ARBITER_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct ARBITER_LIST_ENTRY { + pub ListEntry: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub AlternativeCount: u32, + pub Alternatives: *mut IO_RESOURCE_DESCRIPTOR, + pub PhysicalDeviceObject: *mut super::super::Foundation::DEVICE_OBJECT, + pub RequestSource: ARBITER_REQUEST_SOURCE, + pub Flags: u32, + pub WorkSpace: isize, + pub InterfaceType: INTERFACE_TYPE, + pub SlotNumber: u32, + pub BusNumber: u32, + pub Assignment: *mut CM_PARTIAL_RESOURCE_DESCRIPTOR, + pub SelectedAlternative: *mut IO_RESOURCE_DESCRIPTOR, + pub Result: ARBITER_RESULT, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for ARBITER_LIST_ENTRY {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for ARBITER_LIST_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct ARBITER_PARAMETERS { + pub Parameters: ARBITER_PARAMETERS_0, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for ARBITER_PARAMETERS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for ARBITER_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union ARBITER_PARAMETERS_0 { + pub TestAllocation: ARBITER_TEST_ALLOCATION_PARAMETERS, + pub RetestAllocation: ARBITER_RETEST_ALLOCATION_PARAMETERS, + pub BootAllocation: ARBITER_BOOT_ALLOCATION_PARAMETERS, + pub QueryAllocatedResources: ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS, + pub QueryConflict: ARBITER_QUERY_CONFLICT_PARAMETERS, + pub QueryArbitrate: ARBITER_QUERY_ARBITRATE_PARAMETERS, + pub AddReserved: ARBITER_ADD_RESERVED_PARAMETERS, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for ARBITER_PARAMETERS_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for ARBITER_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS { + pub AllocatedResources: *mut *mut CM_PARTIAL_RESOURCE_LIST, +} +impl ::core::marker::Copy for ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS {} +impl ::core::clone::Clone for ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct ARBITER_QUERY_ARBITRATE_PARAMETERS { + pub ArbitrationList: *mut super::super::super::Win32::System::Kernel::LIST_ENTRY, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for ARBITER_QUERY_ARBITRATE_PARAMETERS {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for ARBITER_QUERY_ARBITRATE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct ARBITER_QUERY_CONFLICT_PARAMETERS { + pub PhysicalDeviceObject: *mut super::super::Foundation::DEVICE_OBJECT, + pub ConflictingResource: *mut IO_RESOURCE_DESCRIPTOR, + pub ConflictCount: *mut u32, + pub Conflicts: *mut *mut ARBITER_CONFLICT_INFO, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for ARBITER_QUERY_CONFLICT_PARAMETERS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for ARBITER_QUERY_CONFLICT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct ARBITER_RETEST_ALLOCATION_PARAMETERS { + pub ArbitrationList: *mut super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub AllocateFromCount: u32, + pub AllocateFrom: *mut CM_PARTIAL_RESOURCE_DESCRIPTOR, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for ARBITER_RETEST_ALLOCATION_PARAMETERS {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for ARBITER_RETEST_ALLOCATION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct ARBITER_TEST_ALLOCATION_PARAMETERS { + pub ArbitrationList: *mut super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub AllocateFromCount: u32, + pub AllocateFrom: *mut CM_PARTIAL_RESOURCE_DESCRIPTOR, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for ARBITER_TEST_ALLOCATION_PARAMETERS {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for ARBITER_TEST_ALLOCATION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct ARM64_NT_CONTEXT { + pub ContextFlags: u32, + pub Cpsr: u32, + pub Anonymous: ARM64_NT_CONTEXT_0, + pub Sp: u64, + pub Pc: u64, + pub V: [super::super::super::Win32::System::Diagnostics::Debug::ARM64_NT_NEON128; 32], + pub Fpcr: u32, + pub Fpsr: u32, + pub Bcr: [u32; 8], + pub Bvr: [u64; 8], + pub Wcr: [u32; 2], + pub Wvr: [u64; 2], +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for ARM64_NT_CONTEXT {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for ARM64_NT_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub union ARM64_NT_CONTEXT_0 { + pub Anonymous: ARM64_NT_CONTEXT_0_0, + pub X: [u64; 31], +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for ARM64_NT_CONTEXT_0 {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for ARM64_NT_CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct ARM64_NT_CONTEXT_0_0 { + pub X0: u64, + pub X1: u64, + pub X2: u64, + pub X3: u64, + pub X4: u64, + pub X5: u64, + pub X6: u64, + pub X7: u64, + pub X8: u64, + pub X9: u64, + pub X10: u64, + pub X11: u64, + pub X12: u64, + pub X13: u64, + pub X14: u64, + pub X15: u64, + pub X16: u64, + pub X17: u64, + pub X18: u64, + pub X19: u64, + pub X20: u64, + pub X21: u64, + pub X22: u64, + pub X23: u64, + pub X24: u64, + pub X25: u64, + pub X26: u64, + pub X27: u64, + pub X28: u64, + pub Fp: u64, + pub Lr: u64, +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for ARM64_NT_CONTEXT_0_0 {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for ARM64_NT_CONTEXT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BDCB_IMAGE_INFORMATION { + pub Classification: BDCB_CLASSIFICATION, + pub ImageFlags: u32, + pub ImageName: super::super::super::Win32::Foundation::UNICODE_STRING, + pub RegistryPath: super::super::super::Win32::Foundation::UNICODE_STRING, + pub CertificatePublisher: super::super::super::Win32::Foundation::UNICODE_STRING, + pub CertificateIssuer: super::super::super::Win32::Foundation::UNICODE_STRING, + pub ImageHash: *mut ::core::ffi::c_void, + pub CertificateThumbprint: *mut ::core::ffi::c_void, + pub ImageHashAlgorithm: u32, + pub ThumbprintHashAlgorithm: u32, + pub ImageHashLength: u32, + pub CertificateThumbprintLength: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BDCB_IMAGE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BDCB_IMAGE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BDCB_STATUS_UPDATE_CONTEXT { + pub StatusType: BDCB_STATUS_UPDATE_TYPE, +} +impl ::core::marker::Copy for BDCB_STATUS_UPDATE_CONTEXT {} +impl ::core::clone::Clone for BDCB_STATUS_UPDATE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BOOTDISK_INFORMATION { + pub BootPartitionOffset: i64, + pub SystemPartitionOffset: i64, + pub BootDeviceSignature: u32, + pub SystemDeviceSignature: u32, +} +impl ::core::marker::Copy for BOOTDISK_INFORMATION {} +impl ::core::clone::Clone for BOOTDISK_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BOOTDISK_INFORMATION_EX { + pub BootPartitionOffset: i64, + pub SystemPartitionOffset: i64, + pub BootDeviceSignature: u32, + pub SystemDeviceSignature: u32, + pub BootDeviceGuid: ::windows_sys::core::GUID, + pub SystemDeviceGuid: ::windows_sys::core::GUID, + pub BootDeviceIsGpt: super::super::super::Win32::Foundation::BOOLEAN, + pub SystemDeviceIsGpt: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BOOTDISK_INFORMATION_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BOOTDISK_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BOOTDISK_INFORMATION_LITE { + pub NumberEntries: u32, + pub Entries: [LOADER_PARTITION_INFORMATION_EX; 1], +} +impl ::core::marker::Copy for BOOTDISK_INFORMATION_LITE {} +impl ::core::clone::Clone for BOOTDISK_INFORMATION_LITE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct BUS_INTERFACE_STANDARD { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub TranslateBusAddress: PTRANSLATE_BUS_ADDRESS, + pub GetDmaAdapter: PGET_DMA_ADAPTER, + pub SetBusData: PGET_SET_DEVICE_DATA, + pub GetBusData: PGET_SET_DEVICE_DATA, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for BUS_INTERFACE_STANDARD {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for BUS_INTERFACE_STANDARD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BUS_RESOURCE_UPDATE_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub GetUpdatedBusResource: PGET_UPDATED_BUS_RESOURCE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BUS_RESOURCE_UPDATE_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BUS_RESOURCE_UPDATE_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union BUS_SPECIFIC_RESET_FLAGS { + pub u: BUS_SPECIFIC_RESET_FLAGS_0, + pub AsUlonglong: u64, +} +impl ::core::marker::Copy for BUS_SPECIFIC_RESET_FLAGS {} +impl ::core::clone::Clone for BUS_SPECIFIC_RESET_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BUS_SPECIFIC_RESET_FLAGS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for BUS_SPECIFIC_RESET_FLAGS_0 {} +impl ::core::clone::Clone for BUS_SPECIFIC_RESET_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct CLFS_MGMT_CLIENT_REGISTRATION { + pub Version: u32, + pub AdvanceTailCallback: PCLFS_CLIENT_ADVANCE_TAIL_CALLBACK, + pub AdvanceTailCallbackData: *mut ::core::ffi::c_void, + pub LogGrowthCompleteCallback: PCLFS_CLIENT_LFF_HANDLER_COMPLETE_CALLBACK, + pub LogGrowthCompleteCallbackData: *mut ::core::ffi::c_void, + pub LogUnpinnedCallback: PCLFS_CLIENT_LOG_UNPINNED_CALLBACK, + pub LogUnpinnedCallbackData: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for CLFS_MGMT_CLIENT_REGISTRATION {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for CLFS_MGMT_CLIENT_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct CMC_DRIVER_INFO { + pub ExceptionCallback: PDRIVER_CMC_EXCEPTION_CALLBACK, + pub DpcCallback: super::super::Foundation::PKDEFERRED_ROUTINE, + pub DeviceContext: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for CMC_DRIVER_INFO {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for CMC_DRIVER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_COMPONENT_INFORMATION { + pub Flags: DEVICE_FLAGS, + pub Version: u32, + pub Key: u32, + pub AffinityMask: usize, +} +impl ::core::marker::Copy for CM_COMPONENT_INFORMATION {} +impl ::core::clone::Clone for CM_COMPONENT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_DISK_GEOMETRY_DEVICE_DATA { + pub BytesPerSector: u32, + pub NumberOfCylinders: u32, + pub SectorsPerTrack: u32, + pub NumberOfHeads: u32, +} +impl ::core::marker::Copy for CM_DISK_GEOMETRY_DEVICE_DATA {} +impl ::core::clone::Clone for CM_DISK_GEOMETRY_DEVICE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CM_EISA_FUNCTION_INFORMATION { + pub CompressedId: u32, + pub IdSlotFlags1: u8, + pub IdSlotFlags2: u8, + pub MinorRevision: u8, + pub MajorRevision: u8, + pub Selections: [u8; 26], + pub FunctionFlags: u8, + pub TypeString: [u8; 80], + pub EisaMemory: [EISA_MEMORY_CONFIGURATION; 9], + pub EisaIrq: [EISA_IRQ_CONFIGURATION; 7], + pub EisaDma: [EISA_DMA_CONFIGURATION; 4], + pub EisaPort: [EISA_PORT_CONFIGURATION; 20], + pub InitializationData: [u8; 60], +} +impl ::core::marker::Copy for CM_EISA_FUNCTION_INFORMATION {} +impl ::core::clone::Clone for CM_EISA_FUNCTION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CM_EISA_SLOT_INFORMATION { + pub ReturnCode: u8, + pub ReturnFlags: u8, + pub MajorRevision: u8, + pub MinorRevision: u8, + pub Checksum: u16, + pub NumberFunctions: u8, + pub FunctionInformation: u8, + pub CompressedId: u32, +} +impl ::core::marker::Copy for CM_EISA_SLOT_INFORMATION {} +impl ::core::clone::Clone for CM_EISA_SLOT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_FLOPPY_DEVICE_DATA { + pub Version: u16, + pub Revision: u16, + pub Size: [u8; 8], + pub MaxDensity: u32, + pub MountDensity: u32, + pub StepRateHeadUnloadTime: u8, + pub HeadLoadTime: u8, + pub MotorOffTime: u8, + pub SectorLengthCode: u8, + pub SectorPerTrack: u8, + pub ReadWriteGapLength: u8, + pub DataTransferLength: u8, + pub FormatGapLength: u8, + pub FormatFillCharacter: u8, + pub HeadSettleTime: u8, + pub MotorSettleTime: u8, + pub MaximumTrackValue: u8, + pub DataTransferRate: u8, +} +impl ::core::marker::Copy for CM_FLOPPY_DEVICE_DATA {} +impl ::core::clone::Clone for CM_FLOPPY_DEVICE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_FULL_RESOURCE_DESCRIPTOR { + pub InterfaceType: INTERFACE_TYPE, + pub BusNumber: u32, + pub PartialResourceList: CM_PARTIAL_RESOURCE_LIST, +} +impl ::core::marker::Copy for CM_FULL_RESOURCE_DESCRIPTOR {} +impl ::core::clone::Clone for CM_FULL_RESOURCE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CM_INT13_DRIVE_PARAMETER { + pub DriveSelect: u16, + pub MaxCylinders: u32, + pub SectorsPerTrack: u16, + pub MaxHeads: u16, + pub NumberDrives: u16, +} +impl ::core::marker::Copy for CM_INT13_DRIVE_PARAMETER {} +impl ::core::clone::Clone for CM_INT13_DRIVE_PARAMETER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_KEYBOARD_DEVICE_DATA { + pub Version: u16, + pub Revision: u16, + pub Type: u8, + pub Subtype: u8, + pub KeyboardFlags: u16, +} +impl ::core::marker::Copy for CM_KEYBOARD_DEVICE_DATA {} +impl ::core::clone::Clone for CM_KEYBOARD_DEVICE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CM_MCA_POS_DATA { + pub AdapterId: u16, + pub PosData1: u8, + pub PosData2: u8, + pub PosData3: u8, + pub PosData4: u8, +} +impl ::core::marker::Copy for CM_MCA_POS_DATA {} +impl ::core::clone::Clone for CM_MCA_POS_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_MONITOR_DEVICE_DATA { + pub Version: u16, + pub Revision: u16, + pub HorizontalScreenSize: u16, + pub VerticalScreenSize: u16, + pub HorizontalResolution: u16, + pub VerticalResolution: u16, + pub HorizontalDisplayTimeLow: u16, + pub HorizontalDisplayTime: u16, + pub HorizontalDisplayTimeHigh: u16, + pub HorizontalBackPorchLow: u16, + pub HorizontalBackPorch: u16, + pub HorizontalBackPorchHigh: u16, + pub HorizontalFrontPorchLow: u16, + pub HorizontalFrontPorch: u16, + pub HorizontalFrontPorchHigh: u16, + pub HorizontalSyncLow: u16, + pub HorizontalSync: u16, + pub HorizontalSyncHigh: u16, + pub VerticalBackPorchLow: u16, + pub VerticalBackPorch: u16, + pub VerticalBackPorchHigh: u16, + pub VerticalFrontPorchLow: u16, + pub VerticalFrontPorch: u16, + pub VerticalFrontPorchHigh: u16, + pub VerticalSyncLow: u16, + pub VerticalSync: u16, + pub VerticalSyncHigh: u16, +} +impl ::core::marker::Copy for CM_MONITOR_DEVICE_DATA {} +impl ::core::clone::Clone for CM_MONITOR_DEVICE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR { + pub Type: u8, + pub ShareDisposition: u8, + pub Flags: u16, + pub u: CM_PARTIAL_RESOURCE_DESCRIPTOR_0, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CM_PARTIAL_RESOURCE_DESCRIPTOR_0 { + pub Generic: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_6, + pub Port: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_13, + pub Interrupt: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_7, + pub MessageInterrupt: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12, + pub Memory: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_11, + pub Dma: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_5, + pub DmaV3: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_4, + pub DevicePrivate: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_2, + pub BusNumber: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_0, + pub DeviceSpecificData: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_3, + pub Memory40: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_8, + pub Memory48: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_9, + pub Memory64: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_10, + pub Connection: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_1, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_0 { + pub Start: u32, + pub Length: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_0 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_1 { + pub Class: u8, + pub Type: u8, + pub Reserved1: u8, + pub Reserved2: u8, + pub IdLowPart: u32, + pub IdHighPart: u32, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_1 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_2 { + pub Data: [u32; 3], +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_2 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_3 { + pub DataSize: u32, + pub Reserved1: u32, + pub Reserved2: u32, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_3 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_4 { + pub Channel: u32, + pub RequestLine: u32, + pub TransferWidth: u8, + pub Reserved1: u8, + pub Reserved2: u8, + pub Reserved3: u8, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_4 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_5 { + pub Channel: u32, + pub Port: u32, + pub Reserved1: u32, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_5 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_6 { + pub Start: i64, + pub Length: u32, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_6 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_7 { + pub Level: u32, + pub Vector: u32, + pub Affinity: usize, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_7 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_8 { + pub Start: i64, + pub Length40: u32, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_8 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_9 { + pub Start: i64, + pub Length48: u32, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_9 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_10 { + pub Start: i64, + pub Length64: u32, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_10 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_11 { + pub Start: i64, + pub Length: u32, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_11 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12 { + pub Anonymous: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12_0, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12_0 { + pub Raw: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12_0_0, + pub Translated: CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12_0_1, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12_0 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12_0_0 { + pub Reserved: u16, + pub MessageCount: u16, + pub Vector: u32, + pub Affinity: usize, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12_0_0 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12_0_1 { + pub Level: u32, + pub Vector: u32, + pub Affinity: usize, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12_0_1 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_12_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct CM_PARTIAL_RESOURCE_DESCRIPTOR_0_13 { + pub Start: i64, + pub Length: u32, +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_13 {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_DESCRIPTOR_0_13 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_PARTIAL_RESOURCE_LIST { + pub Version: u16, + pub Revision: u16, + pub Count: u32, + pub PartialDescriptors: [CM_PARTIAL_RESOURCE_DESCRIPTOR; 1], +} +impl ::core::marker::Copy for CM_PARTIAL_RESOURCE_LIST {} +impl ::core::clone::Clone for CM_PARTIAL_RESOURCE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_PCCARD_DEVICE_DATA { + pub Flags: u8, + pub ErrorCode: u8, + pub Reserved: u16, + pub BusData: u32, + pub DeviceId: u32, + pub LegacyBaseAddress: u32, + pub IRQMap: [u8; 16], +} +impl ::core::marker::Copy for CM_PCCARD_DEVICE_DATA {} +impl ::core::clone::Clone for CM_PCCARD_DEVICE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CM_PNP_BIOS_DEVICE_NODE { + pub Size: u16, + pub Node: u8, + pub ProductId: u32, + pub DeviceType: [u8; 3], + pub DeviceAttributes: u16, +} +impl ::core::marker::Copy for CM_PNP_BIOS_DEVICE_NODE {} +impl ::core::clone::Clone for CM_PNP_BIOS_DEVICE_NODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CM_PNP_BIOS_INSTALLATION_CHECK { + pub Signature: [u8; 4], + pub Revision: u8, + pub Length: u8, + pub ControlField: u16, + pub Checksum: u8, + pub EventFlagAddress: u32, + pub RealModeEntryOffset: u16, + pub RealModeEntrySegment: u16, + pub ProtectedModeEntryOffset: u16, + pub ProtectedModeCodeBaseAddress: u32, + pub OemDeviceId: u32, + pub RealModeDataBaseAddress: u16, + pub ProtectedModeDataBaseAddress: u32, +} +impl ::core::marker::Copy for CM_PNP_BIOS_INSTALLATION_CHECK {} +impl ::core::clone::Clone for CM_PNP_BIOS_INSTALLATION_CHECK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Power\"`"] +#[cfg(feature = "Win32_System_Power")] +pub struct CM_POWER_DATA { + pub PD_Size: u32, + pub PD_MostRecentPowerState: super::super::super::Win32::System::Power::DEVICE_POWER_STATE, + pub PD_Capabilities: u32, + pub PD_D1Latency: u32, + pub PD_D2Latency: u32, + pub PD_D3Latency: u32, + pub PD_PowerStateMapping: [super::super::super::Win32::System::Power::DEVICE_POWER_STATE; 7], + pub PD_DeepestSystemWake: super::super::super::Win32::System::Power::SYSTEM_POWER_STATE, +} +#[cfg(feature = "Win32_System_Power")] +impl ::core::marker::Copy for CM_POWER_DATA {} +#[cfg(feature = "Win32_System_Power")] +impl ::core::clone::Clone for CM_POWER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_RESOURCE_LIST { + pub Count: u32, + pub List: [CM_FULL_RESOURCE_DESCRIPTOR; 1], +} +impl ::core::marker::Copy for CM_RESOURCE_LIST {} +impl ::core::clone::Clone for CM_RESOURCE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_ROM_BLOCK { + pub Address: u32, + pub Size: u32, +} +impl ::core::marker::Copy for CM_ROM_BLOCK {} +impl ::core::clone::Clone for CM_ROM_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_SCSI_DEVICE_DATA { + pub Version: u16, + pub Revision: u16, + pub HostIdentifier: u8, +} +impl ::core::marker::Copy for CM_SCSI_DEVICE_DATA {} +impl ::core::clone::Clone for CM_SCSI_DEVICE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_SERIAL_DEVICE_DATA { + pub Version: u16, + pub Revision: u16, + pub BaudClock: u32, +} +impl ::core::marker::Copy for CM_SERIAL_DEVICE_DATA {} +impl ::core::clone::Clone for CM_SERIAL_DEVICE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_SONIC_DEVICE_DATA { + pub Version: u16, + pub Revision: u16, + pub DataConfigurationRegister: u16, + pub EthernetAddress: [u8; 8], +} +impl ::core::marker::Copy for CM_SONIC_DEVICE_DATA {} +impl ::core::clone::Clone for CM_SONIC_DEVICE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_VIDEO_DEVICE_DATA { + pub Version: u16, + pub Revision: u16, + pub VideoClock: u32, +} +impl ::core::marker::Copy for CM_VIDEO_DEVICE_DATA {} +impl ::core::clone::Clone for CM_VIDEO_DEVICE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CONFIGURATION_INFORMATION { + pub DiskCount: u32, + pub FloppyCount: u32, + pub CdRomCount: u32, + pub TapeCount: u32, + pub ScsiPortCount: u32, + pub SerialCount: u32, + pub ParallelCount: u32, + pub AtDiskPrimaryAddressClaimed: super::super::super::Win32::Foundation::BOOLEAN, + pub AtDiskSecondaryAddressClaimed: super::super::super::Win32::Foundation::BOOLEAN, + pub Version: u32, + pub MediumChangerCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CONFIGURATION_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CONFIGURATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct CONTROLLER_OBJECT { + pub Type: i16, + pub Size: i16, + pub ControllerExtension: *mut ::core::ffi::c_void, + pub DeviceWaitQueue: super::super::Foundation::KDEVICE_QUEUE, + pub Spare1: u32, + pub Spare2: i64, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for CONTROLLER_OBJECT {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for CONTROLLER_OBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COUNTED_REASON_CONTEXT { + pub Version: u32, + pub Flags: u32, + pub Anonymous: COUNTED_REASON_CONTEXT_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COUNTED_REASON_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COUNTED_REASON_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union COUNTED_REASON_CONTEXT_0 { + pub Anonymous: COUNTED_REASON_CONTEXT_0_0, + pub SimpleString: super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COUNTED_REASON_CONTEXT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COUNTED_REASON_CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COUNTED_REASON_CONTEXT_0_0 { + pub ResourceFileName: super::super::super::Win32::Foundation::UNICODE_STRING, + pub ResourceReasonId: u16, + pub StringCount: u32, + pub ReasonStrings: *mut super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COUNTED_REASON_CONTEXT_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COUNTED_REASON_CONTEXT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct CPE_DRIVER_INFO { + pub ExceptionCallback: PDRIVER_CPE_EXCEPTION_CALLBACK, + pub DpcCallback: super::super::Foundation::PKDEFERRED_ROUTINE, + pub DeviceContext: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for CPE_DRIVER_INFO {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for CPE_DRIVER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRASHDUMP_FUNCTIONS_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub PowerOn: PCRASHDUMP_POWER_ON, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRASHDUMP_FUNCTIONS_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRASHDUMP_FUNCTIONS_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREATE_USER_PROCESS_ECP_CONTEXT { + pub Size: u16, + pub Reserved: u16, + pub AccessToken: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CREATE_USER_PROCESS_ECP_CONTEXT {} +impl ::core::clone::Clone for CREATE_USER_PROCESS_ECP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3COLD_AUX_POWER_AND_TIMING_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub RequestCorePowerRail: PD3COLD_REQUEST_CORE_POWER_RAIL, + pub RequestAuxPower: PD3COLD_REQUEST_AUX_POWER, + pub RequestPerstDelay: PD3COLD_REQUEST_PERST_DELAY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3COLD_AUX_POWER_AND_TIMING_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3COLD_AUX_POWER_AND_TIMING_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct D3COLD_SUPPORT_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub SetD3ColdSupport: PSET_D3COLD_SUPPORT, + pub GetIdleWakeInfo: PGET_IDLE_WAKE_INFO, + pub GetD3ColdCapability: PGET_D3COLD_CAPABILITY, + pub GetBusDriverD3ColdSupport: PGET_D3COLD_CAPABILITY, + pub GetLastTransitionStatus: PGET_D3COLD_LAST_TRANSITION_STATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for D3COLD_SUPPORT_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for D3COLD_SUPPORT_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUGGING_DEVICE_IN_USE { + pub NameSpace: KD_NAMESPACE_ENUM, + pub StructureLength: u32, + pub Anonymous: DEBUGGING_DEVICE_IN_USE_0, +} +impl ::core::marker::Copy for DEBUGGING_DEVICE_IN_USE {} +impl ::core::clone::Clone for DEBUGGING_DEVICE_IN_USE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DEBUGGING_DEVICE_IN_USE_0 { + pub AcpiDevice: ACPI_DEBUGGING_DEVICE_IN_USE, + pub PciDevice: PCI_DEBUGGING_DEVICE_IN_USE, +} +impl ::core::marker::Copy for DEBUGGING_DEVICE_IN_USE_0 {} +impl ::core::clone::Clone for DEBUGGING_DEVICE_IN_USE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUGGING_DEVICE_IN_USE_INFORMATION { + pub DeviceCount: u32, + pub Device: [DEBUGGING_DEVICE_IN_USE; 1], +} +impl ::core::marker::Copy for DEBUGGING_DEVICE_IN_USE_INFORMATION {} +impl ::core::clone::Clone for DEBUGGING_DEVICE_IN_USE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_DEVICE_ADDRESS { + pub Type: u8, + pub Valid: super::super::super::Win32::Foundation::BOOLEAN, + pub Anonymous: DEBUG_DEVICE_ADDRESS_0, + pub TranslatedAddress: *mut u8, + pub Length: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_DEVICE_ADDRESS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_DEVICE_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DEBUG_DEVICE_ADDRESS_0 { + pub Reserved: [u8; 2], + pub Anonymous: DEBUG_DEVICE_ADDRESS_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_DEVICE_ADDRESS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_DEVICE_ADDRESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_DEVICE_ADDRESS_0_0 { + pub BitWidth: u8, + pub AccessSize: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_DEVICE_ADDRESS_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_DEVICE_ADDRESS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_DEVICE_DESCRIPTOR { + pub Bus: u32, + pub Slot: u32, + pub Segment: u16, + pub VendorID: u16, + pub DeviceID: u16, + pub BaseClass: u8, + pub SubClass: u8, + pub ProgIf: u8, + pub Anonymous: DEBUG_DEVICE_DESCRIPTOR_0, + pub Initialized: super::super::super::Win32::Foundation::BOOLEAN, + pub Configured: super::super::super::Win32::Foundation::BOOLEAN, + pub BaseAddress: [DEBUG_DEVICE_ADDRESS; 6], + pub Memory: DEBUG_MEMORY_REQUIREMENTS, + pub Dbg2TableIndex: u32, + pub PortType: u16, + pub PortSubtype: u16, + pub OemData: *mut ::core::ffi::c_void, + pub OemDataLength: u32, + pub NameSpace: KD_NAMESPACE_ENUM, + pub NameSpacePath: ::windows_sys::core::PWSTR, + pub NameSpacePathLength: u32, + pub TransportType: u32, + pub TransportData: DEBUG_TRANSPORT_DATA, + pub EfiIoMmuData: DEBUG_EFI_IOMMU_DATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_DEVICE_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_DEVICE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DEBUG_DEVICE_DESCRIPTOR_0 { + pub Flags: u8, + pub Anonymous: DEBUG_DEVICE_DESCRIPTOR_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_DEVICE_DESCRIPTOR_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_DEVICE_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_DEVICE_DESCRIPTOR_0_0 { + pub _bitfield: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_DEVICE_DESCRIPTOR_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_DEVICE_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_EFI_IOMMU_DATA { + pub PciIoProtocolHandle: *mut ::core::ffi::c_void, + pub Mapping: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for DEBUG_EFI_IOMMU_DATA {} +impl ::core::clone::Clone for DEBUG_EFI_IOMMU_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_MEMORY_REQUIREMENTS { + pub Start: i64, + pub MaxEnd: i64, + pub VirtualAddress: *mut ::core::ffi::c_void, + pub Length: u32, + pub Cached: super::super::super::Win32::Foundation::BOOLEAN, + pub Aligned: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_MEMORY_REQUIREMENTS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_MEMORY_REQUIREMENTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_TRANSPORT_DATA { + pub HwContextSize: u32, + pub SharedVisibleDataSize: u32, + pub UseSerialFraming: super::super::super::Win32::Foundation::BOOLEAN, + pub ValidUSBCoreId: super::super::super::Win32::Foundation::BOOLEAN, + pub USBCoreId: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_TRANSPORT_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_TRANSPORT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_BUS_SPECIFIC_RESET_INFO { + pub BusTypeGuid: ::windows_sys::core::GUID, + pub ResetTypeSupported: DEVICE_BUS_SPECIFIC_RESET_TYPE, +} +impl ::core::marker::Copy for DEVICE_BUS_SPECIFIC_RESET_INFO {} +impl ::core::clone::Clone for DEVICE_BUS_SPECIFIC_RESET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DEVICE_BUS_SPECIFIC_RESET_TYPE { + pub Pci: DEVICE_BUS_SPECIFIC_RESET_TYPE_1, + pub Acpi: DEVICE_BUS_SPECIFIC_RESET_TYPE_0, + pub AsULONGLONG: u64, +} +impl ::core::marker::Copy for DEVICE_BUS_SPECIFIC_RESET_TYPE {} +impl ::core::clone::Clone for DEVICE_BUS_SPECIFIC_RESET_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_BUS_SPECIFIC_RESET_TYPE_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for DEVICE_BUS_SPECIFIC_RESET_TYPE_0 {} +impl ::core::clone::Clone for DEVICE_BUS_SPECIFIC_RESET_TYPE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_BUS_SPECIFIC_RESET_TYPE_1 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for DEVICE_BUS_SPECIFIC_RESET_TYPE_1 {} +impl ::core::clone::Clone for DEVICE_BUS_SPECIFIC_RESET_TYPE_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Power\"`"] +#[cfg(feature = "Win32_System_Power")] +pub struct DEVICE_CAPABILITIES { + pub Size: u16, + pub Version: u16, + pub _bitfield: u32, + pub Address: u32, + pub UINumber: u32, + pub DeviceState: [super::super::super::Win32::System::Power::DEVICE_POWER_STATE; 7], + pub SystemWake: super::super::super::Win32::System::Power::SYSTEM_POWER_STATE, + pub DeviceWake: super::super::super::Win32::System::Power::DEVICE_POWER_STATE, + pub D1Latency: u32, + pub D2Latency: u32, + pub D3Latency: u32, +} +#[cfg(feature = "Win32_System_Power")] +impl ::core::marker::Copy for DEVICE_CAPABILITIES {} +#[cfg(feature = "Win32_System_Power")] +impl ::core::clone::Clone for DEVICE_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVICE_DESCRIPTION { + pub Version: u32, + pub Master: super::super::super::Win32::Foundation::BOOLEAN, + pub ScatterGather: super::super::super::Win32::Foundation::BOOLEAN, + pub DemandMode: super::super::super::Win32::Foundation::BOOLEAN, + pub AutoInitialize: super::super::super::Win32::Foundation::BOOLEAN, + pub Dma32BitAddresses: super::super::super::Win32::Foundation::BOOLEAN, + pub IgnoreCount: super::super::super::Win32::Foundation::BOOLEAN, + pub Reserved1: super::super::super::Win32::Foundation::BOOLEAN, + pub Dma64BitAddresses: super::super::super::Win32::Foundation::BOOLEAN, + pub BusNumber: u32, + pub DmaChannel: u32, + pub InterfaceType: INTERFACE_TYPE, + pub DmaWidth: DMA_WIDTH, + pub DmaSpeed: DMA_SPEED, + pub MaximumLength: u32, + pub DmaPort: u32, + pub DmaAddressWidth: u32, + pub DmaControllerInstance: u32, + pub DmaRequestLine: u32, + pub DeviceAddress: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVICE_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVICE_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_FAULT_CONFIGURATION { + pub FaultHandler: PIOMMU_DEVICE_FAULT_HANDLER, + pub FaultContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for DEVICE_FAULT_CONFIGURATION {} +impl ::core::clone::Clone for DEVICE_FAULT_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_FLAGS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DEVICE_FLAGS {} +impl ::core::clone::Clone for DEVICE_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVICE_INTERFACE_CHANGE_NOTIFICATION { + pub Version: u16, + pub Size: u16, + pub Event: ::windows_sys::core::GUID, + pub InterfaceClassGuid: ::windows_sys::core::GUID, + pub SymbolicLinkName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVICE_INTERFACE_CHANGE_NOTIFICATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVICE_INTERFACE_CHANGE_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct DEVICE_RELATIONS { + pub Count: u32, + pub Objects: [*mut super::super::Foundation::DEVICE_OBJECT; 1], +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for DEVICE_RELATIONS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for DEVICE_RELATIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVICE_RESET_INTERFACE_STANDARD { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub DeviceReset: PDEVICE_RESET_HANDLER, + pub SupportedResetTypes: u32, + pub Reserved: *mut ::core::ffi::c_void, + pub QueryBusSpecificResetInfo: PDEVICE_QUERY_BUS_SPECIFIC_RESET_HANDLER, + pub DeviceBusSpecificReset: PDEVICE_BUS_SPECIFIC_RESET_HANDLER, + pub GetDeviceResetStatus: PGET_DEVICE_RESET_STATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVICE_RESET_INTERFACE_STANDARD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVICE_RESET_INTERFACE_STANDARD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DEVICE_RESET_STATUS_FLAGS { + pub u: DEVICE_RESET_STATUS_FLAGS_0, + pub AsUlonglong: u64, +} +impl ::core::marker::Copy for DEVICE_RESET_STATUS_FLAGS {} +impl ::core::clone::Clone for DEVICE_RESET_STATUS_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_RESET_STATUS_FLAGS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for DEVICE_RESET_STATUS_FLAGS_0 {} +impl ::core::clone::Clone for DEVICE_RESET_STATUS_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_SIGNATURE { + pub PartitionStyle: u32, + pub Anonymous: DISK_SIGNATURE_0, +} +impl ::core::marker::Copy for DISK_SIGNATURE {} +impl ::core::clone::Clone for DISK_SIGNATURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DISK_SIGNATURE_0 { + pub Mbr: DISK_SIGNATURE_0_1, + pub Gpt: DISK_SIGNATURE_0_0, +} +impl ::core::marker::Copy for DISK_SIGNATURE_0 {} +impl ::core::clone::Clone for DISK_SIGNATURE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_SIGNATURE_0_0 { + pub DiskId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for DISK_SIGNATURE_0_0 {} +impl ::core::clone::Clone for DISK_SIGNATURE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_SIGNATURE_0_1 { + pub Signature: u32, + pub CheckSum: u32, +} +impl ::core::marker::Copy for DISK_SIGNATURE_0_1 {} +impl ::core::clone::Clone for DISK_SIGNATURE_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct DMA_ADAPTER { + pub Version: u16, + pub Size: u16, + pub DmaOperations: *mut DMA_OPERATIONS, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for DMA_ADAPTER {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for DMA_ADAPTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DMA_ADAPTER_INFO { + pub Version: u32, + pub Anonymous: DMA_ADAPTER_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DMA_ADAPTER_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DMA_ADAPTER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DMA_ADAPTER_INFO_0 { + pub V1: DMA_ADAPTER_INFO_V1, + pub Crashdump: DMA_ADAPTER_INFO_CRASHDUMP, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DMA_ADAPTER_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DMA_ADAPTER_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DMA_ADAPTER_INFO_CRASHDUMP { + pub DeviceDescription: DEVICE_DESCRIPTION, + pub DeviceIdSize: usize, + pub DeviceId: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DMA_ADAPTER_INFO_CRASHDUMP {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DMA_ADAPTER_INFO_CRASHDUMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DMA_ADAPTER_INFO_V1 { + pub ReadDmaCounterAvailable: u32, + pub ScatterGatherLimit: u32, + pub DmaAddressWidth: u32, + pub Flags: u32, + pub MinimumTransferUnit: u32, +} +impl ::core::marker::Copy for DMA_ADAPTER_INFO_V1 {} +impl ::core::clone::Clone for DMA_ADAPTER_INFO_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION { + pub ConfigType: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE, + pub Anonymous: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_0, +} +impl ::core::marker::Copy for DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION {} +impl ::core::clone::Clone for DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_0 { + pub LogicalAddressLimits: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_0_0, + pub SubSection: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_0_1, + pub HardwareAccessType: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE, + pub Reserved: [u64; 4], +} +impl ::core::marker::Copy for DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_0 {} +impl ::core::clone::Clone for DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_0_0 { + pub MinimumAddress: i64, + pub MaximumAddress: i64, +} +impl ::core::marker::Copy for DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_0_0 {} +impl ::core::clone::Clone for DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_0_1 { + pub Offset: u64, + pub Length: u32, +} +impl ::core::marker::Copy for DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_0_1 {} +impl ::core::clone::Clone for DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DMA_CONFIGURATION_BYTE0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for DMA_CONFIGURATION_BYTE0 {} +impl ::core::clone::Clone for DMA_CONFIGURATION_BYTE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DMA_CONFIGURATION_BYTE1 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for DMA_CONFIGURATION_BYTE1 {} +impl ::core::clone::Clone for DMA_CONFIGURATION_BYTE1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DMA_IOMMU_INTERFACE { + pub Version: u32, + pub CreateDomain: PIOMMU_DOMAIN_CREATE, + pub DeleteDomain: PIOMMU_DOMAIN_DELETE, + pub AttachDevice: PIOMMU_DOMAIN_ATTACH_DEVICE, + pub DetachDevice: PIOMMU_DOMAIN_DETACH_DEVICE, + pub FlushDomain: PIOMMU_FLUSH_DOMAIN, + pub FlushDomainByVaList: PIOMMU_FLUSH_DOMAIN_VA_LIST, + pub QueryInputMappings: PIOMMU_QUERY_INPUT_MAPPINGS, + pub MapLogicalRange: PIOMMU_MAP_LOGICAL_RANGE, + pub UnmapLogicalRange: PIOMMU_UNMAP_LOGICAL_RANGE, + pub MapIdentityRange: PIOMMU_MAP_IDENTITY_RANGE, + pub UnmapIdentityRange: PIOMMU_UNMAP_IDENTITY_RANGE, + pub SetDeviceFaultReporting: PIOMMU_SET_DEVICE_FAULT_REPORTING, + pub ConfigureDomain: PIOMMU_DOMAIN_CONFIGURE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DMA_IOMMU_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DMA_IOMMU_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DMA_IOMMU_INTERFACE_EX { + pub Size: usize, + pub Version: u32, + pub Anonymous: DMA_IOMMU_INTERFACE_EX_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DMA_IOMMU_INTERFACE_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DMA_IOMMU_INTERFACE_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DMA_IOMMU_INTERFACE_EX_0 { + pub V1: DMA_IOMMU_INTERFACE_V1, + pub V2: DMA_IOMMU_INTERFACE_V2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DMA_IOMMU_INTERFACE_EX_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DMA_IOMMU_INTERFACE_EX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DMA_IOMMU_INTERFACE_V1 { + pub CreateDomain: PIOMMU_DOMAIN_CREATE, + pub DeleteDomain: PIOMMU_DOMAIN_DELETE, + pub AttachDevice: PIOMMU_DOMAIN_ATTACH_DEVICE, + pub DetachDevice: PIOMMU_DOMAIN_DETACH_DEVICE, + pub FlushDomain: PIOMMU_FLUSH_DOMAIN, + pub FlushDomainByVaList: PIOMMU_FLUSH_DOMAIN_VA_LIST, + pub QueryInputMappings: PIOMMU_QUERY_INPUT_MAPPINGS, + pub MapLogicalRange: PIOMMU_MAP_LOGICAL_RANGE, + pub UnmapLogicalRange: PIOMMU_UNMAP_LOGICAL_RANGE, + pub MapIdentityRange: PIOMMU_MAP_IDENTITY_RANGE, + pub UnmapIdentityRange: PIOMMU_UNMAP_IDENTITY_RANGE, + pub SetDeviceFaultReporting: PIOMMU_SET_DEVICE_FAULT_REPORTING, + pub ConfigureDomain: PIOMMU_DOMAIN_CONFIGURE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DMA_IOMMU_INTERFACE_V1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DMA_IOMMU_INTERFACE_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DMA_IOMMU_INTERFACE_V2 { + pub CreateDomainEx: PIOMMU_DOMAIN_CREATE_EX, + pub DeleteDomain: PIOMMU_DOMAIN_DELETE, + pub AttachDeviceEx: PIOMMU_DOMAIN_ATTACH_DEVICE_EX, + pub DetachDeviceEx: PIOMMU_DOMAIN_DETACH_DEVICE_EX, + pub FlushDomain: PIOMMU_FLUSH_DOMAIN, + pub FlushDomainByVaList: PIOMMU_FLUSH_DOMAIN_VA_LIST, + pub QueryInputMappings: PIOMMU_QUERY_INPUT_MAPPINGS, + pub MapLogicalRangeEx: PIOMMU_MAP_LOGICAL_RANGE_EX, + pub UnmapLogicalRange: PIOMMU_UNMAP_LOGICAL_RANGE, + pub MapIdentityRangeEx: PIOMMU_MAP_IDENTITY_RANGE_EX, + pub UnmapIdentityRangeEx: PIOMMU_UNMAP_IDENTITY_RANGE_EX, + pub SetDeviceFaultReportingEx: PIOMMU_SET_DEVICE_FAULT_REPORTING_EX, + pub ConfigureDomain: PIOMMU_DOMAIN_CONFIGURE, + pub QueryAvailableDomainTypes: PIOMMU_DEVICE_QUERY_DOMAIN_TYPES, + pub RegisterInterfaceStateChangeCallback: PIOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK, + pub UnregisterInterfaceStateChangeCallback: PIOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK, + pub ReserveLogicalAddressRange: PIOMMU_RESERVE_LOGICAL_ADDRESS_RANGE, + pub FreeReservedLogicalAddressRange: PIOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE, + pub MapReservedLogicalRange: PIOMMU_MAP_RESERVED_LOGICAL_RANGE, + pub UnmapReservedLogicalRange: PIOMMU_UNMAP_RESERVED_LOGICAL_RANGE, + pub CreateDevice: PIOMMU_DEVICE_CREATE, + pub DeleteDevice: PIOMMU_DEVICE_DELETE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DMA_IOMMU_INTERFACE_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DMA_IOMMU_INTERFACE_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct DMA_OPERATIONS { + pub Size: u32, + pub PutDmaAdapter: PPUT_DMA_ADAPTER, + pub AllocateCommonBuffer: PALLOCATE_COMMON_BUFFER, + pub FreeCommonBuffer: PFREE_COMMON_BUFFER, + pub AllocateAdapterChannel: PALLOCATE_ADAPTER_CHANNEL, + pub FlushAdapterBuffers: PFLUSH_ADAPTER_BUFFERS, + pub FreeAdapterChannel: PFREE_ADAPTER_CHANNEL, + pub FreeMapRegisters: PFREE_MAP_REGISTERS, + pub MapTransfer: PMAP_TRANSFER, + pub GetDmaAlignment: PGET_DMA_ALIGNMENT, + pub ReadDmaCounter: PREAD_DMA_COUNTER, + pub GetScatterGatherList: PGET_SCATTER_GATHER_LIST, + pub PutScatterGatherList: PPUT_SCATTER_GATHER_LIST, + pub CalculateScatterGatherList: PCALCULATE_SCATTER_GATHER_LIST_SIZE, + pub BuildScatterGatherList: PBUILD_SCATTER_GATHER_LIST, + pub BuildMdlFromScatterGatherList: PBUILD_MDL_FROM_SCATTER_GATHER_LIST, + pub GetDmaAdapterInfo: PGET_DMA_ADAPTER_INFO, + pub GetDmaTransferInfo: PGET_DMA_TRANSFER_INFO, + pub InitializeDmaTransferContext: PINITIALIZE_DMA_TRANSFER_CONTEXT, + pub AllocateCommonBufferEx: PALLOCATE_COMMON_BUFFER_EX, + pub AllocateAdapterChannelEx: PALLOCATE_ADAPTER_CHANNEL_EX, + pub ConfigureAdapterChannel: PCONFIGURE_ADAPTER_CHANNEL, + pub CancelAdapterChannel: PCANCEL_ADAPTER_CHANNEL, + pub MapTransferEx: PMAP_TRANSFER_EX, + pub GetScatterGatherListEx: PGET_SCATTER_GATHER_LIST_EX, + pub BuildScatterGatherListEx: PBUILD_SCATTER_GATHER_LIST_EX, + pub FlushAdapterBuffersEx: PFLUSH_ADAPTER_BUFFERS_EX, + pub FreeAdapterObject: PFREE_ADAPTER_OBJECT, + pub CancelMappedTransfer: PCANCEL_MAPPED_TRANSFER, + pub AllocateDomainCommonBuffer: PALLOCATE_DOMAIN_COMMON_BUFFER, + pub FlushDmaBuffer: PFLUSH_DMA_BUFFER, + pub JoinDmaDomain: PJOIN_DMA_DOMAIN, + pub LeaveDmaDomain: PLEAVE_DMA_DOMAIN, + pub GetDmaDomain: PGET_DMA_DOMAIN, + pub AllocateCommonBufferWithBounds: PALLOCATE_COMMON_BUFFER_WITH_BOUNDS, + pub AllocateCommonBufferVector: PALLOCATE_COMMON_BUFFER_VECTOR, + pub GetCommonBufferFromVectorByIndex: PGET_COMMON_BUFFER_FROM_VECTOR_BY_INDEX, + pub FreeCommonBufferFromVector: PFREE_COMMON_BUFFER_FROM_VECTOR, + pub FreeCommonBufferVector: PFREE_COMMON_BUFFER_VECTOR, + pub CreateCommonBufferFromMdl: PCREATE_COMMON_BUFFER_FROM_MDL, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for DMA_OPERATIONS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for DMA_OPERATIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DMA_TRANSFER_INFO { + pub Version: u32, + pub Anonymous: DMA_TRANSFER_INFO_0, +} +impl ::core::marker::Copy for DMA_TRANSFER_INFO {} +impl ::core::clone::Clone for DMA_TRANSFER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DMA_TRANSFER_INFO_0 { + pub V1: DMA_TRANSFER_INFO_V1, + pub V2: DMA_TRANSFER_INFO_V2, +} +impl ::core::marker::Copy for DMA_TRANSFER_INFO_0 {} +impl ::core::clone::Clone for DMA_TRANSFER_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DMA_TRANSFER_INFO_V1 { + pub MapRegisterCount: u32, + pub ScatterGatherElementCount: u32, + pub ScatterGatherListSize: u32, +} +impl ::core::marker::Copy for DMA_TRANSFER_INFO_V1 {} +impl ::core::clone::Clone for DMA_TRANSFER_INFO_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DMA_TRANSFER_INFO_V2 { + pub MapRegisterCount: u32, + pub ScatterGatherElementCount: u32, + pub ScatterGatherListSize: u32, + pub LogicalPageCount: u32, +} +impl ::core::marker::Copy for DMA_TRANSFER_INFO_V2 {} +impl ::core::clone::Clone for DMA_TRANSFER_INFO_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOMAIN_CONFIGURATION { + pub Type: DOMAIN_CONFIGURATION_ARCH, + pub Anonymous: DOMAIN_CONFIGURATION_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOMAIN_CONFIGURATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOMAIN_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DOMAIN_CONFIGURATION_0 { + pub Arm64: DOMAIN_CONFIGURATION_ARM64, + pub X64: DOMAIN_CONFIGURATION_X64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOMAIN_CONFIGURATION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOMAIN_CONFIGURATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOMAIN_CONFIGURATION_ARM64 { + pub Ttbr0: i64, + pub Ttbr1: i64, + pub Mair0: u32, + pub Mair1: u32, + pub InputSize0: u8, + pub InputSize1: u8, + pub CoherentTableWalks: super::super::super::Win32::Foundation::BOOLEAN, + pub TranslationEnabled: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOMAIN_CONFIGURATION_ARM64 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOMAIN_CONFIGURATION_ARM64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOMAIN_CONFIGURATION_X64 { + pub FirstLevelPageTableRoot: i64, + pub TranslationEnabled: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOMAIN_CONFIGURATION_X64 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOMAIN_CONFIGURATION_X64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK { + pub Signature: u32, + pub Revision: u16, + pub Size: u16, + pub DpcWatchdogProfileOffset: u16, + pub DpcWatchdogProfileLength: u32, +} +impl ::core::marker::Copy for DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK {} +impl ::core::clone::Clone for DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_VERIFIER_THUNK_PAIRS { + pub PristineRoutine: PDRIVER_VERIFIER_THUNK_ROUTINE, + pub NewRoutine: PDRIVER_VERIFIER_THUNK_ROUTINE, +} +impl ::core::marker::Copy for DRIVER_VERIFIER_THUNK_PAIRS {} +impl ::core::clone::Clone for DRIVER_VERIFIER_THUNK_PAIRS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct EFI_ACPI_RAS_SIGNAL_TABLE { + pub Header: WHEA_ACPI_HEADER, + pub NumberRecord: u32, + pub Entries: [SIGNAL_REG_VALUE; 1], +} +impl ::core::marker::Copy for EFI_ACPI_RAS_SIGNAL_TABLE {} +impl ::core::clone::Clone for EFI_ACPI_RAS_SIGNAL_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EISA_DMA_CONFIGURATION { + pub ConfigurationByte0: DMA_CONFIGURATION_BYTE0, + pub ConfigurationByte1: DMA_CONFIGURATION_BYTE1, +} +impl ::core::marker::Copy for EISA_DMA_CONFIGURATION {} +impl ::core::clone::Clone for EISA_DMA_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EISA_IRQ_CONFIGURATION { + pub ConfigurationByte: EISA_IRQ_DESCRIPTOR, + pub Reserved: u8, +} +impl ::core::marker::Copy for EISA_IRQ_CONFIGURATION {} +impl ::core::clone::Clone for EISA_IRQ_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EISA_IRQ_DESCRIPTOR { + pub _bitfield: u8, +} +impl ::core::marker::Copy for EISA_IRQ_DESCRIPTOR {} +impl ::core::clone::Clone for EISA_IRQ_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct EISA_MEMORY_CONFIGURATION { + pub ConfigurationByte: EISA_MEMORY_TYPE, + pub DataSize: u8, + pub AddressLowWord: u16, + pub AddressHighByte: u8, + pub MemorySize: u16, +} +impl ::core::marker::Copy for EISA_MEMORY_CONFIGURATION {} +impl ::core::clone::Clone for EISA_MEMORY_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EISA_MEMORY_TYPE { + pub _bitfield: u8, +} +impl ::core::marker::Copy for EISA_MEMORY_TYPE {} +impl ::core::clone::Clone for EISA_MEMORY_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct EISA_PORT_CONFIGURATION { + pub Configuration: EISA_PORT_DESCRIPTOR, + pub PortAddress: u16, +} +impl ::core::marker::Copy for EISA_PORT_CONFIGURATION {} +impl ::core::clone::Clone for EISA_PORT_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EISA_PORT_DESCRIPTOR { + pub _bitfield: u8, +} +impl ::core::marker::Copy for EISA_PORT_DESCRIPTOR {} +impl ::core::clone::Clone for EISA_PORT_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ETW_TRACE_SESSION_SETTINGS { + pub Version: u32, + pub BufferSize: u32, + pub MinimumBuffers: u32, + pub MaximumBuffers: u32, + pub LoggerMode: u32, + pub FlushTimer: u32, + pub FlushThreshold: u32, + pub ClockType: u32, +} +impl ::core::marker::Copy for ETW_TRACE_SESSION_SETTINGS {} +impl ::core::clone::Clone for ETW_TRACE_SESSION_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXTENDED_CREATE_INFORMATION { + pub ExtendedCreateFlags: i64, + pub EaBuffer: *mut ::core::ffi::c_void, + pub EaLength: u32, +} +impl ::core::marker::Copy for EXTENDED_CREATE_INFORMATION {} +impl ::core::clone::Clone for EXTENDED_CREATE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXTENDED_CREATE_INFORMATION_32 { + pub ExtendedCreateFlags: i64, + pub EaBuffer: *mut ::core::ffi::c_void, + pub EaLength: u32, +} +impl ::core::marker::Copy for EXTENDED_CREATE_INFORMATION_32 {} +impl ::core::clone::Clone for EXTENDED_CREATE_INFORMATION_32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXT_DELETE_PARAMETERS { + pub Version: u32, + pub Reserved: u32, + pub DeleteCallback: PEXT_DELETE_CALLBACK, + pub DeleteContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for EXT_DELETE_PARAMETERS {} +impl ::core::clone::Clone for EXT_DELETE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EX_RUNDOWN_REF { + pub Anonymous: EX_RUNDOWN_REF_0, +} +impl ::core::marker::Copy for EX_RUNDOWN_REF {} +impl ::core::clone::Clone for EX_RUNDOWN_REF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EX_RUNDOWN_REF_0 { + pub Count: usize, + pub Ptr: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for EX_RUNDOWN_REF_0 {} +impl ::core::clone::Clone for EX_RUNDOWN_REF_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FAULT_INFORMATION { + pub Type: FAULT_INFORMATION_ARCH, + pub IsStage1: super::super::super::Win32::Foundation::BOOLEAN, + pub Anonymous: FAULT_INFORMATION_0, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FAULT_INFORMATION {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FAULT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union FAULT_INFORMATION_0 { + pub Arm64: FAULT_INFORMATION_ARM64, + pub X64: FAULT_INFORMATION_X64, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FAULT_INFORMATION_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FAULT_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct FAULT_INFORMATION_ARM64 { + pub DomainHandle: *mut ::core::ffi::c_void, + pub FaultAddress: *mut ::core::ffi::c_void, + pub PhysicalDeviceObject: *mut super::super::Foundation::DEVICE_OBJECT, + pub InputMappingId: u32, + pub Flags: FAULT_INFORMATION_ARM64_FLAGS, + pub Type: FAULT_INFORMATION_ARM64_TYPE, + pub IommuBaseAddress: u64, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for FAULT_INFORMATION_ARM64 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for FAULT_INFORMATION_ARM64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAULT_INFORMATION_ARM64_FLAGS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for FAULT_INFORMATION_ARM64_FLAGS {} +impl ::core::clone::Clone for FAULT_INFORMATION_ARM64_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAULT_INFORMATION_X64 { + pub DomainHandle: *mut ::core::ffi::c_void, + pub FaultAddress: *mut ::core::ffi::c_void, + pub Flags: FAULT_INFORMATION_X64_FLAGS, + pub Type: FAULT_INFORMATION_ARM64_TYPE, + pub IommuBaseAddress: u64, + pub PciSegment: u32, +} +impl ::core::marker::Copy for FAULT_INFORMATION_X64 {} +impl ::core::clone::Clone for FAULT_INFORMATION_X64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAULT_INFORMATION_X64_FLAGS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for FAULT_INFORMATION_X64_FLAGS {} +impl ::core::clone::Clone for FAULT_INFORMATION_X64_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ATTRIBUTE_TAG_INFORMATION { + pub FileAttributes: u32, + pub ReparseTag: u32, +} +impl ::core::marker::Copy for FILE_ATTRIBUTE_TAG_INFORMATION {} +impl ::core::clone::Clone for FILE_ATTRIBUTE_TAG_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_END_OF_FILE_INFORMATION { + pub EndOfFile: i64, +} +impl ::core::marker::Copy for FILE_END_OF_FILE_INFORMATION {} +impl ::core::clone::Clone for FILE_END_OF_FILE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FS_DEVICE_INFORMATION { + pub DeviceType: u32, + pub Characteristics: u32, +} +impl ::core::marker::Copy for FILE_FS_DEVICE_INFORMATION {} +impl ::core::clone::Clone for FILE_FS_DEVICE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FS_FULL_SIZE_INFORMATION { + pub TotalAllocationUnits: i64, + pub CallerAvailableAllocationUnits: i64, + pub ActualAvailableAllocationUnits: i64, + pub SectorsPerAllocationUnit: u32, + pub BytesPerSector: u32, +} +impl ::core::marker::Copy for FILE_FS_FULL_SIZE_INFORMATION {} +impl ::core::clone::Clone for FILE_FS_FULL_SIZE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FS_FULL_SIZE_INFORMATION_EX { + pub ActualTotalAllocationUnits: u64, + pub ActualAvailableAllocationUnits: u64, + pub ActualPoolUnavailableAllocationUnits: u64, + pub CallerTotalAllocationUnits: u64, + pub CallerAvailableAllocationUnits: u64, + pub CallerPoolUnavailableAllocationUnits: u64, + pub UsedAllocationUnits: u64, + pub TotalReservedAllocationUnits: u64, + pub VolumeStorageReserveAllocationUnits: u64, + pub AvailableCommittedAllocationUnits: u64, + pub PoolAvailableAllocationUnits: u64, + pub SectorsPerAllocationUnit: u32, + pub BytesPerSector: u32, +} +impl ::core::marker::Copy for FILE_FS_FULL_SIZE_INFORMATION_EX {} +impl ::core::clone::Clone for FILE_FS_FULL_SIZE_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FS_LABEL_INFORMATION { + pub VolumeLabelLength: u32, + pub VolumeLabel: [u16; 1], +} +impl ::core::marker::Copy for FILE_FS_LABEL_INFORMATION {} +impl ::core::clone::Clone for FILE_FS_LABEL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FS_METADATA_SIZE_INFORMATION { + pub TotalMetadataAllocationUnits: i64, + pub SectorsPerAllocationUnit: u32, + pub BytesPerSector: u32, +} +impl ::core::marker::Copy for FILE_FS_METADATA_SIZE_INFORMATION {} +impl ::core::clone::Clone for FILE_FS_METADATA_SIZE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FS_OBJECTID_INFORMATION { + pub ObjectId: [u8; 16], + pub ExtendedInfo: [u8; 48], +} +impl ::core::marker::Copy for FILE_FS_OBJECTID_INFORMATION {} +impl ::core::clone::Clone for FILE_FS_OBJECTID_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FS_SIZE_INFORMATION { + pub TotalAllocationUnits: i64, + pub AvailableAllocationUnits: i64, + pub SectorsPerAllocationUnit: u32, + pub BytesPerSector: u32, +} +impl ::core::marker::Copy for FILE_FS_SIZE_INFORMATION {} +impl ::core::clone::Clone for FILE_FS_SIZE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_FS_VOLUME_INFORMATION { + pub VolumeCreationTime: i64, + pub VolumeSerialNumber: u32, + pub VolumeLabelLength: u32, + pub SupportsObjects: super::super::super::Win32::Foundation::BOOLEAN, + pub VolumeLabel: [u16; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_FS_VOLUME_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_FS_VOLUME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_IOSTATUSBLOCK_RANGE_INFORMATION { + pub IoStatusBlockRange: *mut u8, + pub Length: u32, +} +impl ::core::marker::Copy for FILE_IOSTATUSBLOCK_RANGE_INFORMATION {} +impl ::core::clone::Clone for FILE_IOSTATUSBLOCK_RANGE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_IO_COMPLETION_NOTIFICATION_INFORMATION { + pub Flags: u32, +} +impl ::core::marker::Copy for FILE_IO_COMPLETION_NOTIFICATION_INFORMATION {} +impl ::core::clone::Clone for FILE_IO_COMPLETION_NOTIFICATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct FILE_IO_PRIORITY_HINT_INFORMATION { + pub PriorityHint: super::super::Foundation::IO_PRIORITY_HINT, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for FILE_IO_PRIORITY_HINT_INFORMATION {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for FILE_IO_PRIORITY_HINT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub struct FILE_IO_PRIORITY_HINT_INFORMATION_EX { + pub PriorityHint: super::super::Foundation::IO_PRIORITY_HINT, + pub BoostOutstanding: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for FILE_IO_PRIORITY_HINT_INFORMATION_EX {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for FILE_IO_PRIORITY_HINT_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_IS_REMOTE_DEVICE_INFORMATION { + pub IsRemote: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_IS_REMOTE_DEVICE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_IS_REMOTE_DEVICE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_MEMORY_PARTITION_INFORMATION { + pub OwnerPartitionHandle: usize, + pub Flags: FILE_MEMORY_PARTITION_INFORMATION_0, +} +impl ::core::marker::Copy for FILE_MEMORY_PARTITION_INFORMATION {} +impl ::core::clone::Clone for FILE_MEMORY_PARTITION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FILE_MEMORY_PARTITION_INFORMATION_0 { + pub Anonymous: FILE_MEMORY_PARTITION_INFORMATION_0_0, + pub AllFlags: u32, +} +impl ::core::marker::Copy for FILE_MEMORY_PARTITION_INFORMATION_0 {} +impl ::core::clone::Clone for FILE_MEMORY_PARTITION_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_MEMORY_PARTITION_INFORMATION_0_0 { + pub NoCrossPartitionAccess: u8, + pub Spare: [u8; 3], +} +impl ::core::marker::Copy for FILE_MEMORY_PARTITION_INFORMATION_0_0 {} +impl ::core::clone::Clone for FILE_MEMORY_PARTITION_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_NUMA_NODE_INFORMATION { + pub NodeNumber: u16, +} +impl ::core::marker::Copy for FILE_NUMA_NODE_INFORMATION {} +impl ::core::clone::Clone for FILE_NUMA_NODE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PROCESS_IDS_USING_FILE_INFORMATION { + pub NumberOfProcessIdsInList: u32, + pub ProcessIdList: [usize; 1], +} +impl ::core::marker::Copy for FILE_PROCESS_IDS_USING_FILE_INFORMATION {} +impl ::core::clone::Clone for FILE_PROCESS_IDS_USING_FILE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_SFIO_RESERVE_INFORMATION { + pub RequestsPerPeriod: u32, + pub Period: u32, + pub RetryFailures: super::super::super::Win32::Foundation::BOOLEAN, + pub Discardable: super::super::super::Win32::Foundation::BOOLEAN, + pub RequestSize: u32, + pub NumOutstandingRequests: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_SFIO_RESERVE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_SFIO_RESERVE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_SFIO_VOLUME_INFORMATION { + pub MaximumRequestsPerPeriod: u32, + pub MinimumPeriod: u32, + pub MinimumTransferSize: u32, +} +impl ::core::marker::Copy for FILE_SFIO_VOLUME_INFORMATION {} +impl ::core::clone::Clone for FILE_SFIO_VOLUME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_STANDARD_INFORMATION_EX { + pub AllocationSize: i64, + pub EndOfFile: i64, + pub NumberOfLinks: u32, + pub DeletePending: super::super::super::Win32::Foundation::BOOLEAN, + pub Directory: super::super::super::Win32::Foundation::BOOLEAN, + pub AlternateStream: super::super::super::Win32::Foundation::BOOLEAN, + pub MetadataAttribute: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_STANDARD_INFORMATION_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_STANDARD_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_VALID_DATA_LENGTH_INFORMATION { + pub ValidDataLength: i64, +} +impl ::core::marker::Copy for FILE_VALID_DATA_LENGTH_INFORMATION {} +impl ::core::clone::Clone for FILE_VALID_DATA_LENGTH_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLOATING_SAVE_AREA { + pub ControlWord: u32, + pub StatusWord: u32, + pub TagWord: u32, + pub ErrorOffset: u32, + pub ErrorSelector: u32, + pub DataOffset: u32, + pub DataSelector: u32, + pub RegisterArea: [u8; 80], + pub Spare0: u32, +} +impl ::core::marker::Copy for FLOATING_SAVE_AREA {} +impl ::core::clone::Clone for FLOATING_SAVE_AREA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FPGA_CONTROL_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub BusScan: PFPGA_BUS_SCAN, + pub ControlLink: PFPGA_CONTROL_LINK, + pub ControlConfigSpace: PFPGA_CONTROL_CONFIG_SPACE, + pub ControlErrorReporting: PFPGA_CONTROL_ERROR_REPORTING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FPGA_CONTROL_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FPGA_CONTROL_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS { + pub Size: u32, + pub DeviceResetCompletion: PDEVICE_RESET_COMPLETION, + pub CompletionContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS {} +impl ::core::clone::Clone for FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HAL_AMLI_BAD_IO_ADDRESS_LIST { + pub BadAddrBegin: u32, + pub BadAddrSize: u32, + pub OSVersionTrigger: u32, + pub IOHandler: PHALIOREADWRITEHANDLER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HAL_AMLI_BAD_IO_ADDRESS_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HAL_AMLI_BAD_IO_ADDRESS_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HAL_BUS_INFORMATION { + pub BusType: INTERFACE_TYPE, + pub ConfigurationType: BUS_DATA_TYPE, + pub BusNumber: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for HAL_BUS_INFORMATION {} +impl ::core::clone::Clone for HAL_BUS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct HAL_CALLBACKS { + pub SetSystemInformation: super::super::Foundation::PCALLBACK_OBJECT, + pub BusCheck: super::super::Foundation::PCALLBACK_OBJECT, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for HAL_CALLBACKS {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for HAL_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Ioctl\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Ioctl", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct HAL_DISPATCH { + pub Version: u32, + pub HalQuerySystemInformation: pHalQuerySystemInformation, + pub HalSetSystemInformation: pHalSetSystemInformation, + pub HalQueryBusSlots: pHalQueryBusSlots, + pub Spare1: u32, + pub HalExamineMBR: pHalExamineMBR, + pub HalIoReadPartitionTable: pHalIoReadPartitionTable, + pub HalIoSetPartitionInformation: pHalIoSetPartitionInformation, + pub HalIoWritePartitionTable: pHalIoWritePartitionTable, + pub HalReferenceHandlerForBus: pHalHandlerForBus, + pub HalReferenceBusHandler: pHalReferenceBusHandler, + pub HalDereferenceBusHandler: pHalReferenceBusHandler, + pub HalInitPnpDriver: pHalInitPnpDriver, + pub HalInitPowerManagement: pHalInitPowerManagement, + pub HalGetDmaAdapter: pHalGetDmaAdapter, + pub HalGetInterruptTranslator: pHalGetInterruptTranslator, + pub HalStartMirroring: pHalStartMirroring, + pub HalEndMirroring: pHalEndMirroring, + pub HalMirrorPhysicalMemory: pHalMirrorPhysicalMemory, + pub HalEndOfBoot: pHalEndOfBoot, + pub HalMirrorVerify: pHalMirrorVerify, + pub HalGetCachedAcpiTable: pHalGetAcpiTable, + pub HalSetPciErrorHandlerCallback: pHalSetPciErrorHandlerCallback, + pub HalGetPrmCache: pHalGetPrmCache, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Ioctl", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for HAL_DISPATCH {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Ioctl", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for HAL_DISPATCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HAL_ERROR_INFO { + pub Version: u32, + pub InitMaxSize: u32, + pub McaMaxSize: u32, + pub McaPreviousEventsCount: u32, + pub McaCorrectedEventsCount: u32, + pub McaKernelDeliveryFails: u32, + pub McaDriverDpcQueueFails: u32, + pub McaReserved: u32, + pub CmcMaxSize: u32, + pub CmcPollingInterval: u32, + pub CmcInterruptsCount: u32, + pub CmcKernelDeliveryFails: u32, + pub CmcDriverDpcQueueFails: u32, + pub CmcGetStateFails: u32, + pub CmcClearStateFails: u32, + pub CmcReserved: u32, + pub CmcLogId: u64, + pub CpeMaxSize: u32, + pub CpePollingInterval: u32, + pub CpeInterruptsCount: u32, + pub CpeKernelDeliveryFails: u32, + pub CpeDriverDpcQueueFails: u32, + pub CpeGetStateFails: u32, + pub CpeClearStateFails: u32, + pub CpeInterruptSources: u32, + pub CpeLogId: u64, + pub KernelReserved: [u64; 4], +} +impl ::core::marker::Copy for HAL_ERROR_INFO {} +impl ::core::clone::Clone for HAL_ERROR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HAL_MCA_INTERFACE { + pub Lock: PHALMCAINTERFACELOCK, + pub Unlock: PHALMCAINTERFACEUNLOCK, + pub ReadRegister: PHALMCAINTERFACEREADREGISTER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HAL_MCA_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HAL_MCA_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HAL_PLATFORM_INFORMATION { + pub PlatformFlags: u32, +} +impl ::core::marker::Copy for HAL_PLATFORM_INFORMATION {} +impl ::core::clone::Clone for HAL_PLATFORM_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HAL_POWER_INFORMATION { + pub TBD: u32, +} +impl ::core::marker::Copy for HAL_POWER_INFORMATION {} +impl ::core::clone::Clone for HAL_POWER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HAL_PROCESSOR_FEATURE { + pub UsableFeatureBits: u32, +} +impl ::core::marker::Copy for HAL_PROCESSOR_FEATURE {} +impl ::core::clone::Clone for HAL_PROCESSOR_FEATURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HAL_PROCESSOR_SPEED_INFORMATION { + pub ProcessorSpeed: u32, +} +impl ::core::marker::Copy for HAL_PROCESSOR_SPEED_INFORMATION {} +impl ::core::clone::Clone for HAL_PROCESSOR_SPEED_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HARDWARE_COUNTER { + pub Type: HARDWARE_COUNTER_TYPE, + pub Reserved: u32, + pub Index: u64, +} +impl ::core::marker::Copy for HARDWARE_COUNTER {} +impl ::core::clone::Clone for HARDWARE_COUNTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HWPROFILE_CHANGE_NOTIFICATION { + pub Version: u16, + pub Size: u16, + pub Event: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for HWPROFILE_CHANGE_NOTIFICATION {} +impl ::core::clone::Clone for HWPROFILE_CHANGE_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_INFO { + pub Anonymous: IMAGE_INFO_0, + pub ImageBase: *mut ::core::ffi::c_void, + pub ImageSelector: u32, + pub ImageSize: usize, + pub ImageSectionNumber: u32, +} +impl ::core::marker::Copy for IMAGE_INFO {} +impl ::core::clone::Clone for IMAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_INFO_0 { + pub Properties: u32, + pub Anonymous: IMAGE_INFO_0_0, +} +impl ::core::marker::Copy for IMAGE_INFO_0 {} +impl ::core::clone::Clone for IMAGE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_INFO_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for IMAGE_INFO_0_0 {} +impl ::core::clone::Clone for IMAGE_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IMAGE_INFO_EX { + pub Size: usize, + pub ImageInfo: IMAGE_INFO, + pub FileObject: *mut super::super::Foundation::FILE_OBJECT, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IMAGE_INFO_EX {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IMAGE_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct INITIAL_PRIVILEGE_SET { + pub PrivilegeCount: u32, + pub Control: u32, + pub Privilege: [super::super::super::Win32::Security::LUID_AND_ATTRIBUTES; 3], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for INITIAL_PRIVILEGE_SET {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for INITIAL_PRIVILEGE_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INPUT_MAPPING_ELEMENT { + pub InputMappingId: u32, +} +impl ::core::marker::Copy for INPUT_MAPPING_ELEMENT {} +impl ::core::clone::Clone for INPUT_MAPPING_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union INTEL_CACHE_INFO_EAX { + pub Ulong: u32, + pub Anonymous: INTEL_CACHE_INFO_EAX_0, +} +impl ::core::marker::Copy for INTEL_CACHE_INFO_EAX {} +impl ::core::clone::Clone for INTEL_CACHE_INFO_EAX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTEL_CACHE_INFO_EAX_0 { + pub _bitfield: i32, +} +impl ::core::marker::Copy for INTEL_CACHE_INFO_EAX_0 {} +impl ::core::clone::Clone for INTEL_CACHE_INFO_EAX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union INTEL_CACHE_INFO_EBX { + pub Ulong: u32, + pub Anonymous: INTEL_CACHE_INFO_EBX_0, +} +impl ::core::marker::Copy for INTEL_CACHE_INFO_EBX {} +impl ::core::clone::Clone for INTEL_CACHE_INFO_EBX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTEL_CACHE_INFO_EBX_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for INTEL_CACHE_INFO_EBX_0 {} +impl ::core::clone::Clone for INTEL_CACHE_INFO_EBX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, +} +impl ::core::marker::Copy for INTERFACE {} +impl ::core::clone::Clone for INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct IOMMU_DEVICE_CREATION_CONFIGURATION { + pub NextConfiguration: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub ConfigType: IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE, + pub Anonymous: IOMMU_DEVICE_CREATION_CONFIGURATION_0, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for IOMMU_DEVICE_CREATION_CONFIGURATION {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for IOMMU_DEVICE_CREATION_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub union IOMMU_DEVICE_CREATION_CONFIGURATION_0 { + pub Acpi: IOMMU_DEVICE_CREATION_CONFIGURATION_ACPI, + pub DeviceId: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for IOMMU_DEVICE_CREATION_CONFIGURATION_0 {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for IOMMU_DEVICE_CREATION_CONFIGURATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOMMU_DEVICE_CREATION_CONFIGURATION_ACPI { + pub InputMappingBase: u32, + pub MappingsCount: u32, +} +impl ::core::marker::Copy for IOMMU_DEVICE_CREATION_CONFIGURATION_ACPI {} +impl ::core::clone::Clone for IOMMU_DEVICE_CREATION_CONFIGURATION_ACPI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IOMMU_DMA_DOMAIN_CREATION_FLAGS { + pub Anonymous: IOMMU_DMA_DOMAIN_CREATION_FLAGS_0, + pub AsUlonglong: u64, +} +impl ::core::marker::Copy for IOMMU_DMA_DOMAIN_CREATION_FLAGS {} +impl ::core::clone::Clone for IOMMU_DMA_DOMAIN_CREATION_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOMMU_DMA_DOMAIN_CREATION_FLAGS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for IOMMU_DMA_DOMAIN_CREATION_FLAGS_0 {} +impl ::core::clone::Clone for IOMMU_DMA_DOMAIN_CREATION_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOMMU_DMA_LOGICAL_ADDRESS_TOKEN { + pub LogicalAddressBase: u64, + pub Size: usize, +} +impl ::core::marker::Copy for IOMMU_DMA_LOGICAL_ADDRESS_TOKEN {} +impl ::core::clone::Clone for IOMMU_DMA_LOGICAL_ADDRESS_TOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT { + pub OwningToken: *mut IOMMU_DMA_LOGICAL_ADDRESS_TOKEN, + pub Offset: usize, + pub Size: usize, +} +impl ::core::marker::Copy for IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT {} +impl ::core::clone::Clone for IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG { + pub LogicalAllocatorType: IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE, + pub Anonymous: IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG_0, +} +impl ::core::marker::Copy for IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG {} +impl ::core::clone::Clone for IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG_0 { + pub BuddyAllocatorConfig: IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG_0_0, +} +impl ::core::marker::Copy for IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG_0 {} +impl ::core::clone::Clone for IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG_0_0 { + pub AddressWidth: u32, +} +impl ::core::marker::Copy for IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG_0_0 {} +impl ::core::clone::Clone for IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IOMMU_DMA_RESERVED_REGION { + pub RegionNext: *mut IOMMU_DMA_RESERVED_REGION, + pub Base: u64, + pub NumberOfPages: usize, + pub ShouldMap: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IOMMU_DMA_RESERVED_REGION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IOMMU_DMA_RESERVED_REGION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOMMU_INTERFACE_STATE_CHANGE { + pub PresentFields: IOMMU_INTERFACE_STATE_CHANGE_FIELDS, + pub AvailableDomainTypes: u32, +} +impl ::core::marker::Copy for IOMMU_INTERFACE_STATE_CHANGE {} +impl ::core::clone::Clone for IOMMU_INTERFACE_STATE_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IOMMU_INTERFACE_STATE_CHANGE_FIELDS { + pub Anonymous: IOMMU_INTERFACE_STATE_CHANGE_FIELDS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for IOMMU_INTERFACE_STATE_CHANGE_FIELDS {} +impl ::core::clone::Clone for IOMMU_INTERFACE_STATE_CHANGE_FIELDS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOMMU_INTERFACE_STATE_CHANGE_FIELDS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for IOMMU_INTERFACE_STATE_CHANGE_FIELDS_0 {} +impl ::core::clone::Clone for IOMMU_INTERFACE_STATE_CHANGE_FIELDS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct IOMMU_MAP_PHYSICAL_ADDRESS { + pub MapType: IOMMU_MAP_PHYSICAL_ADDRESS_TYPE, + pub Anonymous: IOMMU_MAP_PHYSICAL_ADDRESS_0, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IOMMU_MAP_PHYSICAL_ADDRESS {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IOMMU_MAP_PHYSICAL_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub union IOMMU_MAP_PHYSICAL_ADDRESS_0 { + pub Mdl: IOMMU_MAP_PHYSICAL_ADDRESS_0_1, + pub ContiguousRange: IOMMU_MAP_PHYSICAL_ADDRESS_0_0, + pub PfnArray: IOMMU_MAP_PHYSICAL_ADDRESS_0_2, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IOMMU_MAP_PHYSICAL_ADDRESS_0 {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IOMMU_MAP_PHYSICAL_ADDRESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct IOMMU_MAP_PHYSICAL_ADDRESS_0_0 { + pub Base: i64, + pub Size: usize, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IOMMU_MAP_PHYSICAL_ADDRESS_0_0 {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IOMMU_MAP_PHYSICAL_ADDRESS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct IOMMU_MAP_PHYSICAL_ADDRESS_0_1 { + pub Mdl: *mut super::super::Foundation::MDL, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IOMMU_MAP_PHYSICAL_ADDRESS_0_1 {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IOMMU_MAP_PHYSICAL_ADDRESS_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct IOMMU_MAP_PHYSICAL_ADDRESS_0_2 { + pub PageFrame: *mut u32, + pub NumberOfPages: usize, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IOMMU_MAP_PHYSICAL_ADDRESS_0_2 {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IOMMU_MAP_PHYSICAL_ADDRESS_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_ATTRIBUTION_INFORMATION { + pub Version: u32, + pub Flags: IO_ATTRIBUTION_INFORMATION_0, + pub Length: u32, + pub ServiceStartTime: u64, + pub CurrentTime: u64, +} +impl ::core::marker::Copy for IO_ATTRIBUTION_INFORMATION {} +impl ::core::clone::Clone for IO_ATTRIBUTION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IO_ATTRIBUTION_INFORMATION_0 { + pub Anonymous: IO_ATTRIBUTION_INFORMATION_0_0, + pub AllFlags: u32, +} +impl ::core::marker::Copy for IO_ATTRIBUTION_INFORMATION_0 {} +impl ::core::clone::Clone for IO_ATTRIBUTION_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_ATTRIBUTION_INFORMATION_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for IO_ATTRIBUTION_INFORMATION_0_0 {} +impl ::core::clone::Clone for IO_ATTRIBUTION_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS { + pub PhysicalDeviceObject: *mut super::super::Foundation::DEVICE_OBJECT, + pub InterruptObject: *mut super::super::Foundation::PKINTERRUPT, + pub ServiceRoutine: PKSERVICE_ROUTINE, + pub ServiceContext: *mut ::core::ffi::c_void, + pub SpinLock: *mut usize, + pub SynchronizeIrql: u8, + pub FloatingSave: super::super::super::Win32::Foundation::BOOLEAN, + pub ShareVector: super::super::super::Win32::Foundation::BOOLEAN, + pub Vector: u32, + pub Irql: u8, + pub InterruptMode: KINTERRUPT_MODE, + pub ProcessorEnableMask: usize, + pub Group: u16, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS { + pub PhysicalDeviceObject: *mut super::super::Foundation::DEVICE_OBJECT, + pub InterruptObject: *mut super::super::Foundation::PKINTERRUPT, + pub ServiceRoutine: PKSERVICE_ROUTINE, + pub ServiceContext: *mut ::core::ffi::c_void, + pub SpinLock: *mut usize, + pub SynchronizeIrql: u8, + pub FloatingSave: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS { + pub PhysicalDeviceObject: *mut super::super::Foundation::DEVICE_OBJECT, + pub ConnectionContext: IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS_0, + pub MessageServiceRoutine: PKMESSAGE_SERVICE_ROUTINE, + pub ServiceContext: *mut ::core::ffi::c_void, + pub SpinLock: *mut usize, + pub SynchronizeIrql: u8, + pub FloatingSave: super::super::super::Win32::Foundation::BOOLEAN, + pub FallBackServiceRoutine: PKSERVICE_ROUTINE, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS_0 { + pub Generic: *mut *mut ::core::ffi::c_void, + pub InterruptMessageTable: *mut *mut IO_INTERRUPT_MESSAGE_INFO, + pub InterruptObject: *mut super::super::Foundation::PKINTERRUPT, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_CONNECT_INTERRUPT_PARAMETERS { + pub Version: u32, + pub Anonymous: IO_CONNECT_INTERRUPT_PARAMETERS_0, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_CONNECT_INTERRUPT_PARAMETERS {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_CONNECT_INTERRUPT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union IO_CONNECT_INTERRUPT_PARAMETERS_0 { + pub FullySpecified: IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS, + pub LineBased: IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS, + pub MessageBased: IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_CONNECT_INTERRUPT_PARAMETERS_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_CONNECT_INTERRUPT_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_CSQ { + pub Type: u32, + pub CsqInsertIrp: PIO_CSQ_INSERT_IRP, + pub CsqRemoveIrp: PIO_CSQ_REMOVE_IRP, + pub CsqPeekNextIrp: PIO_CSQ_PEEK_NEXT_IRP, + pub CsqAcquireLock: PIO_CSQ_ACQUIRE_LOCK, + pub CsqReleaseLock: PIO_CSQ_RELEASE_LOCK, + pub CsqCompleteCanceledIrp: PIO_CSQ_COMPLETE_CANCELED_IRP, + pub ReservePointer: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_CSQ {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_CSQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_CSQ_IRP_CONTEXT { + pub Type: u32, + pub Irp: *mut super::super::Foundation::IRP, + pub Csq: *mut IO_CSQ, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_CSQ_IRP_CONTEXT {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_CSQ_IRP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct IO_DISCONNECT_INTERRUPT_PARAMETERS { + pub Version: u32, + pub ConnectionContext: IO_DISCONNECT_INTERRUPT_PARAMETERS_0, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IO_DISCONNECT_INTERRUPT_PARAMETERS {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IO_DISCONNECT_INTERRUPT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub union IO_DISCONNECT_INTERRUPT_PARAMETERS_0 { + pub Generic: *mut ::core::ffi::c_void, + pub InterruptObject: super::super::Foundation::PKINTERRUPT, + pub InterruptMessageTable: *mut IO_INTERRUPT_MESSAGE_INFO, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IO_DISCONNECT_INTERRUPT_PARAMETERS_0 {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IO_DISCONNECT_INTERRUPT_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct IO_DRIVER_CREATE_CONTEXT { + pub Size: i16, + pub ExtraCreateParameter: *mut isize, + pub DeviceObjectHint: *mut ::core::ffi::c_void, + pub TxnParameters: *mut TXN_PARAMETER_BLOCK, + pub SiloContext: super::super::Foundation::PESILO, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IO_DRIVER_CREATE_CONTEXT {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IO_DRIVER_CREATE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IO_ERROR_LOG_MESSAGE { + pub Type: u16, + pub Size: u16, + pub DriverNameLength: u16, + pub TimeStamp: i64, + pub DriverNameOffset: u32, + pub EntryData: IO_ERROR_LOG_PACKET, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IO_ERROR_LOG_MESSAGE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IO_ERROR_LOG_MESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IO_ERROR_LOG_PACKET { + pub MajorFunctionCode: u8, + pub RetryCount: u8, + pub DumpDataSize: u16, + pub NumberOfStrings: u16, + pub StringOffset: u16, + pub EventCategory: u16, + pub ErrorCode: super::super::super::Win32::Foundation::NTSTATUS, + pub UniqueErrorValue: u32, + pub FinalStatus: super::super::super::Win32::Foundation::NTSTATUS, + pub SequenceNumber: u32, + pub IoControlCode: u32, + pub DeviceOffset: i64, + pub DumpData: [u32; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IO_ERROR_LOG_PACKET {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IO_ERROR_LOG_PACKET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct IO_FOEXT_SHADOW_FILE { + pub BackingFileObject: *mut super::super::Foundation::FILE_OBJECT, + pub BackingFltInstance: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for IO_FOEXT_SHADOW_FILE {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for IO_FOEXT_SHADOW_FILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct IO_FOEXT_SILO_PARAMETERS { + pub Length: u32, + pub Anonymous: IO_FOEXT_SILO_PARAMETERS_0, + pub SiloContext: super::super::Foundation::PESILO, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IO_FOEXT_SILO_PARAMETERS {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IO_FOEXT_SILO_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub union IO_FOEXT_SILO_PARAMETERS_0 { + pub Anonymous: IO_FOEXT_SILO_PARAMETERS_0_0, + pub Flags: u32, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IO_FOEXT_SILO_PARAMETERS_0 {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IO_FOEXT_SILO_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct IO_FOEXT_SILO_PARAMETERS_0_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IO_FOEXT_SILO_PARAMETERS_0_0 {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IO_FOEXT_SILO_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct IO_INTERRUPT_MESSAGE_INFO { + pub UnifiedIrql: u8, + pub MessageCount: u32, + pub MessageInfo: [IO_INTERRUPT_MESSAGE_INFO_ENTRY; 1], +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IO_INTERRUPT_MESSAGE_INFO {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IO_INTERRUPT_MESSAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct IO_INTERRUPT_MESSAGE_INFO_ENTRY { + pub MessageAddress: i64, + pub TargetProcessorSet: usize, + pub InterruptObject: super::super::Foundation::PKINTERRUPT, + pub MessageData: u32, + pub Vector: u32, + pub Irql: u8, + pub Mode: KINTERRUPT_MODE, + pub Polarity: KINTERRUPT_POLARITY, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IO_INTERRUPT_MESSAGE_INFO_ENTRY {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IO_INTERRUPT_MESSAGE_INFO_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct IO_REMOVE_LOCK { + pub Common: IO_REMOVE_LOCK_COMMON_BLOCK, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for IO_REMOVE_LOCK {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for IO_REMOVE_LOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct IO_REMOVE_LOCK_COMMON_BLOCK { + pub Removed: super::super::super::Win32::Foundation::BOOLEAN, + pub Reserved: [super::super::super::Win32::Foundation::BOOLEAN; 3], + pub IoCount: i32, + pub RemoveEvent: super::super::Foundation::KEVENT, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for IO_REMOVE_LOCK_COMMON_BLOCK {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for IO_REMOVE_LOCK_COMMON_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +pub struct IO_REMOVE_LOCK_DBG_BLOCK { + pub Signature: i32, + pub HighWatermark: u32, + pub MaxLockedTicks: i64, + pub AllocateTag: i32, + pub LockList: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub Spin: usize, + pub LowMemoryCount: i32, + pub Reserved1: [u32; 4], + pub Reserved2: *mut ::core::ffi::c_void, + pub Blocks: super::super::Foundation::PIO_REMOVE_LOCK_TRACKING_BLOCK, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for IO_REMOVE_LOCK_DBG_BLOCK {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for IO_REMOVE_LOCK_DBG_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS { + pub Version: u32, + pub ConnectionContext: IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS_0, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub union IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS_0 { + pub Generic: *mut ::core::ffi::c_void, + pub InterruptObject: super::super::Foundation::PKINTERRUPT, + pub InterruptMessageTable: *mut IO_INTERRUPT_MESSAGE_INFO, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS_0 {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR { + pub Option: u8, + pub Type: u8, + pub ShareDisposition: u8, + pub Spare1: u8, + pub Flags: u16, + pub Spare2: u16, + pub u: IO_RESOURCE_DESCRIPTOR_0, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IO_RESOURCE_DESCRIPTOR_0 { + pub Port: IO_RESOURCE_DESCRIPTOR_0_12, + pub Memory: IO_RESOURCE_DESCRIPTOR_0_11, + pub Interrupt: IO_RESOURCE_DESCRIPTOR_0_7, + pub Dma: IO_RESOURCE_DESCRIPTOR_0_5, + pub DmaV3: IO_RESOURCE_DESCRIPTOR_0_4, + pub Generic: IO_RESOURCE_DESCRIPTOR_0_6, + pub DevicePrivate: IO_RESOURCE_DESCRIPTOR_0_3, + pub BusNumber: IO_RESOURCE_DESCRIPTOR_0_0, + pub ConfigData: IO_RESOURCE_DESCRIPTOR_0_1, + pub Memory40: IO_RESOURCE_DESCRIPTOR_0_8, + pub Memory48: IO_RESOURCE_DESCRIPTOR_0_9, + pub Memory64: IO_RESOURCE_DESCRIPTOR_0_10, + pub Connection: IO_RESOURCE_DESCRIPTOR_0_2, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR_0_0 { + pub Length: u32, + pub MinBusNumber: u32, + pub MaxBusNumber: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0_0 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR_0_1 { + pub Priority: u32, + pub Reserved1: u32, + pub Reserved2: u32, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0_1 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR_0_2 { + pub Class: u8, + pub Type: u8, + pub Reserved1: u8, + pub Reserved2: u8, + pub IdLowPart: u32, + pub IdHighPart: u32, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0_2 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR_0_3 { + pub Data: [u32; 3], +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0_3 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR_0_4 { + pub RequestLine: u32, + pub Reserved: u32, + pub Channel: u32, + pub TransferWidth: u32, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0_4 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR_0_5 { + pub MinimumChannel: u32, + pub MaximumChannel: u32, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0_5 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR_0_6 { + pub Length: u32, + pub Alignment: u32, + pub MinimumAddress: i64, + pub MaximumAddress: i64, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0_6 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR_0_7 { + pub MinimumVector: u32, + pub MaximumVector: u32, + pub AffinityPolicy: IRQ_DEVICE_POLICY, + pub PriorityPolicy: IRQ_PRIORITY, + pub TargetedProcessors: usize, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0_7 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR_0_8 { + pub Length40: u32, + pub Alignment40: u32, + pub MinimumAddress: i64, + pub MaximumAddress: i64, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0_8 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR_0_9 { + pub Length48: u32, + pub Alignment48: u32, + pub MinimumAddress: i64, + pub MaximumAddress: i64, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0_9 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0_9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR_0_10 { + pub Length64: u32, + pub Alignment64: u32, + pub MinimumAddress: i64, + pub MaximumAddress: i64, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0_10 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0_10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR_0_11 { + pub Length: u32, + pub Alignment: u32, + pub MinimumAddress: i64, + pub MaximumAddress: i64, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0_11 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0_11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_DESCRIPTOR_0_12 { + pub Length: u32, + pub Alignment: u32, + pub MinimumAddress: i64, + pub MaximumAddress: i64, +} +impl ::core::marker::Copy for IO_RESOURCE_DESCRIPTOR_0_12 {} +impl ::core::clone::Clone for IO_RESOURCE_DESCRIPTOR_0_12 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_LIST { + pub Version: u16, + pub Revision: u16, + pub Count: u32, + pub Descriptors: [IO_RESOURCE_DESCRIPTOR; 1], +} +impl ::core::marker::Copy for IO_RESOURCE_LIST {} +impl ::core::clone::Clone for IO_RESOURCE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE_REQUIREMENTS_LIST { + pub ListSize: u32, + pub InterfaceType: INTERFACE_TYPE, + pub BusNumber: u32, + pub SlotNumber: u32, + pub Reserved: [u32; 3], + pub AlternativeLists: u32, + pub List: [IO_RESOURCE_LIST; 1], +} +impl ::core::marker::Copy for IO_RESOURCE_REQUIREMENTS_LIST {} +impl ::core::clone::Clone for IO_RESOURCE_REQUIREMENTS_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IO_SESSION_CONNECT_INFO { + pub SessionId: u32, + pub LocalSession: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IO_SESSION_CONNECT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IO_SESSION_CONNECT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IO_SESSION_STATE_INFORMATION { + pub SessionId: u32, + pub SessionState: IO_SESSION_STATE, + pub LocalSession: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IO_SESSION_STATE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IO_SESSION_STATE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_SESSION_STATE_NOTIFICATION { + pub Size: u32, + pub Flags: u32, + pub IoObject: *mut ::core::ffi::c_void, + pub EventMask: u32, + pub Context: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for IO_SESSION_STATE_NOTIFICATION {} +impl ::core::clone::Clone for IO_SESSION_STATE_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IO_STATUS_BLOCK32 { + pub Status: super::super::super::Win32::Foundation::NTSTATUS, + pub Information: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IO_STATUS_BLOCK32 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IO_STATUS_BLOCK32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IO_STATUS_BLOCK64 { + pub Anonymous: IO_STATUS_BLOCK64_0, + pub Information: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IO_STATUS_BLOCK64 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IO_STATUS_BLOCK64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union IO_STATUS_BLOCK64_0 { + pub Status: super::super::super::Win32::Foundation::NTSTATUS, + pub Pointer: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IO_STATUS_BLOCK64_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IO_STATUS_BLOCK64_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KADDRESS_RANGE { + pub Address: *mut ::core::ffi::c_void, + pub Size: usize, +} +impl ::core::marker::Copy for KADDRESS_RANGE {} +impl ::core::clone::Clone for KADDRESS_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KADDRESS_RANGE_DESCRIPTOR { + pub AddressRanges: *const KADDRESS_RANGE, + pub AddressRangeCount: usize, +} +impl ::core::marker::Copy for KADDRESS_RANGE_DESCRIPTOR {} +impl ::core::clone::Clone for KADDRESS_RANGE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KAPC { + pub Type: u8, + pub AllFlags: u8, + pub Size: u8, + pub SpareByte1: u8, + pub SpareLong0: u32, + pub Thread: *mut isize, + pub ApcListEntry: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub Reserved: [*mut ::core::ffi::c_void; 3], + pub NormalContext: *mut ::core::ffi::c_void, + pub SystemArgument1: *mut ::core::ffi::c_void, + pub SystemArgument2: *mut ::core::ffi::c_void, + pub ApcStateIndex: i8, + pub ApcMode: i8, + pub Inserted: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KAPC {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KAPC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KBUGCHECK_ADD_PAGES { + pub Context: *mut ::core::ffi::c_void, + pub Flags: u32, + pub BugCheckCode: u32, + pub Address: usize, + pub Count: usize, +} +impl ::core::marker::Copy for KBUGCHECK_ADD_PAGES {} +impl ::core::clone::Clone for KBUGCHECK_ADD_PAGES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct KBUGCHECK_CALLBACK_RECORD { + pub Entry: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub CallbackRoutine: PKBUGCHECK_CALLBACK_ROUTINE, + pub Buffer: *mut ::core::ffi::c_void, + pub Length: u32, + pub Component: *mut u8, + pub Checksum: usize, + pub State: u8, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for KBUGCHECK_CALLBACK_RECORD {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for KBUGCHECK_CALLBACK_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KBUGCHECK_DUMP_IO { + pub Offset: u64, + pub Buffer: *mut ::core::ffi::c_void, + pub BufferLength: u32, + pub Type: KBUGCHECK_DUMP_IO_TYPE, +} +impl ::core::marker::Copy for KBUGCHECK_DUMP_IO {} +impl ::core::clone::Clone for KBUGCHECK_DUMP_IO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct KBUGCHECK_REASON_CALLBACK_RECORD { + pub Entry: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub CallbackRoutine: PKBUGCHECK_REASON_CALLBACK_ROUTINE, + pub Component: *mut u8, + pub Checksum: usize, + pub Reason: KBUGCHECK_CALLBACK_REASON, + pub State: u8, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for KBUGCHECK_REASON_CALLBACK_RECORD {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for KBUGCHECK_REASON_CALLBACK_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KBUGCHECK_REMOVE_PAGES { + pub Context: *mut ::core::ffi::c_void, + pub Flags: u32, + pub BugCheckCode: u32, + pub Address: usize, + pub Count: usize, +} +impl ::core::marker::Copy for KBUGCHECK_REMOVE_PAGES {} +impl ::core::clone::Clone for KBUGCHECK_REMOVE_PAGES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KBUGCHECK_SECONDARY_DUMP_DATA { + pub InBuffer: *mut ::core::ffi::c_void, + pub InBufferLength: u32, + pub MaximumAllowed: u32, + pub Guid: ::windows_sys::core::GUID, + pub OutBuffer: *mut ::core::ffi::c_void, + pub OutBufferLength: u32, +} +impl ::core::marker::Copy for KBUGCHECK_SECONDARY_DUMP_DATA {} +impl ::core::clone::Clone for KBUGCHECK_SECONDARY_DUMP_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KBUGCHECK_SECONDARY_DUMP_DATA_EX { + pub InBuffer: *mut ::core::ffi::c_void, + pub InBufferLength: u32, + pub MaximumAllowed: u32, + pub Guid: ::windows_sys::core::GUID, + pub OutBuffer: *mut ::core::ffi::c_void, + pub OutBufferLength: u32, + pub Context: *mut ::core::ffi::c_void, + pub Flags: u32, + pub DumpType: u32, + pub BugCheckCode: u32, + pub BugCheckParameter1: usize, + pub BugCheckParameter2: usize, + pub BugCheckParameter3: usize, + pub BugCheckParameter4: usize, +} +impl ::core::marker::Copy for KBUGCHECK_SECONDARY_DUMP_DATA_EX {} +impl ::core::clone::Clone for KBUGCHECK_SECONDARY_DUMP_DATA_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct KBUGCHECK_TRIAGE_DUMP_DATA { + pub DataArray: *mut KTRIAGE_DUMP_DATA_ARRAY, + pub Flags: u32, + pub MaxVirtMemSize: u32, + pub BugCheckCode: u32, + pub BugCheckParameter1: usize, + pub BugCheckParameter2: usize, + pub BugCheckParameter3: usize, + pub BugCheckParameter4: usize, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for KBUGCHECK_TRIAGE_DUMP_DATA {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for KBUGCHECK_TRIAGE_DUMP_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KDEVICE_QUEUE_ENTRY { + pub DeviceListEntry: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub SortKey: u32, + pub Inserted: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KDEVICE_QUEUE_ENTRY {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KDEVICE_QUEUE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KDPC_WATCHDOG_INFORMATION { + pub DpcTimeLimit: u32, + pub DpcTimeCount: u32, + pub DpcWatchdogLimit: u32, + pub DpcWatchdogCount: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KDPC_WATCHDOG_INFORMATION {} +impl ::core::clone::Clone for KDPC_WATCHDOG_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERNEL_SOFT_RESTART_NOTIFICATION { + pub Version: u16, + pub Size: u16, + pub Event: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for KERNEL_SOFT_RESTART_NOTIFICATION {} +impl ::core::clone::Clone for KERNEL_SOFT_RESTART_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERNEL_USER_TIMES { + pub CreateTime: i64, + pub ExitTime: i64, + pub KernelTime: i64, + pub UserTime: i64, +} +impl ::core::marker::Copy for KERNEL_USER_TIMES {} +impl ::core::clone::Clone for KERNEL_USER_TIMES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_BASIC_INFORMATION { + pub LastWriteTime: i64, + pub TitleIndex: u32, + pub NameLength: u32, + pub Name: [u16; 1], +} +impl ::core::marker::Copy for KEY_BASIC_INFORMATION {} +impl ::core::clone::Clone for KEY_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_CACHED_INFORMATION { + pub LastWriteTime: i64, + pub TitleIndex: u32, + pub SubKeys: u32, + pub MaxNameLen: u32, + pub Values: u32, + pub MaxValueNameLen: u32, + pub MaxValueDataLen: u32, + pub NameLength: u32, +} +impl ::core::marker::Copy for KEY_CACHED_INFORMATION {} +impl ::core::clone::Clone for KEY_CACHED_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_CONTROL_FLAGS_INFORMATION { + pub ControlFlags: u32, +} +impl ::core::marker::Copy for KEY_CONTROL_FLAGS_INFORMATION {} +impl ::core::clone::Clone for KEY_CONTROL_FLAGS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_FULL_INFORMATION { + pub LastWriteTime: i64, + pub TitleIndex: u32, + pub ClassOffset: u32, + pub ClassLength: u32, + pub SubKeys: u32, + pub MaxNameLen: u32, + pub MaxClassLen: u32, + pub Values: u32, + pub MaxValueNameLen: u32, + pub MaxValueDataLen: u32, + pub Class: [u16; 1], +} +impl ::core::marker::Copy for KEY_FULL_INFORMATION {} +impl ::core::clone::Clone for KEY_FULL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_LAYER_INFORMATION { + pub _bitfield: u32, +} +impl ::core::marker::Copy for KEY_LAYER_INFORMATION {} +impl ::core::clone::Clone for KEY_LAYER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_NAME_INFORMATION { + pub NameLength: u32, + pub Name: [u16; 1], +} +impl ::core::marker::Copy for KEY_NAME_INFORMATION {} +impl ::core::clone::Clone for KEY_NAME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_NODE_INFORMATION { + pub LastWriteTime: i64, + pub TitleIndex: u32, + pub ClassOffset: u32, + pub ClassLength: u32, + pub NameLength: u32, + pub Name: [u16; 1], +} +impl ::core::marker::Copy for KEY_NODE_INFORMATION {} +impl ::core::clone::Clone for KEY_NODE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_SET_VIRTUALIZATION_INFORMATION { + pub _bitfield: u32, +} +impl ::core::marker::Copy for KEY_SET_VIRTUALIZATION_INFORMATION {} +impl ::core::clone::Clone for KEY_SET_VIRTUALIZATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_TRUST_INFORMATION { + pub _bitfield: u32, +} +impl ::core::marker::Copy for KEY_TRUST_INFORMATION {} +impl ::core::clone::Clone for KEY_TRUST_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_VALUE_BASIC_INFORMATION { + pub TitleIndex: u32, + pub Type: u32, + pub NameLength: u32, + pub Name: [u16; 1], +} +impl ::core::marker::Copy for KEY_VALUE_BASIC_INFORMATION {} +impl ::core::clone::Clone for KEY_VALUE_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_VALUE_FULL_INFORMATION { + pub TitleIndex: u32, + pub Type: u32, + pub DataOffset: u32, + pub DataLength: u32, + pub NameLength: u32, + pub Name: [u16; 1], +} +impl ::core::marker::Copy for KEY_VALUE_FULL_INFORMATION {} +impl ::core::clone::Clone for KEY_VALUE_FULL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_VALUE_LAYER_INFORMATION { + pub _bitfield: u32, +} +impl ::core::marker::Copy for KEY_VALUE_LAYER_INFORMATION {} +impl ::core::clone::Clone for KEY_VALUE_LAYER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_VALUE_PARTIAL_INFORMATION { + pub TitleIndex: u32, + pub Type: u32, + pub DataLength: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for KEY_VALUE_PARTIAL_INFORMATION {} +impl ::core::clone::Clone for KEY_VALUE_PARTIAL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 { + pub Type: u32, + pub DataLength: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 {} +impl ::core::clone::Clone for KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_VIRTUALIZATION_INFORMATION { + pub _bitfield: u32, +} +impl ::core::marker::Copy for KEY_VIRTUALIZATION_INFORMATION {} +impl ::core::clone::Clone for KEY_VIRTUALIZATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_WOW64_FLAGS_INFORMATION { + pub UserFlags: u32, +} +impl ::core::marker::Copy for KEY_WOW64_FLAGS_INFORMATION {} +impl ::core::clone::Clone for KEY_WOW64_FLAGS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_WRITE_TIME_INFORMATION { + pub LastWriteTime: i64, +} +impl ::core::marker::Copy for KEY_WRITE_TIME_INFORMATION {} +impl ::core::clone::Clone for KEY_WRITE_TIME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT { + pub State: KE_PROCESSOR_CHANGE_NOTIFY_STATE, + pub NtNumber: u32, + pub Status: super::super::super::Win32::Foundation::NTSTATUS, + pub ProcNumber: super::super::super::Win32::System::Kernel::PROCESSOR_NUMBER, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KFLOATING_SAVE { + pub ControlWord: u32, + pub StatusWord: u32, + pub ErrorOffset: u32, + pub ErrorSelector: u32, + pub DataOffset: u32, + pub DataSelector: u32, + pub Spare0: u32, + pub Spare1: u32, +} +impl ::core::marker::Copy for KFLOATING_SAVE {} +impl ::core::clone::Clone for KFLOATING_SAVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KGATE { + pub Header: super::super::Foundation::DISPATCHER_HEADER, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KGATE {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KGATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KLOCK_QUEUE_HANDLE { + pub LockQueue: KSPIN_LOCK_QUEUE, + pub OldIrql: u8, +} +impl ::core::marker::Copy for KLOCK_QUEUE_HANDLE {} +impl ::core::clone::Clone for KLOCK_QUEUE_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KSEMAPHORE { + pub Header: super::super::Foundation::DISPATCHER_HEADER, + pub Limit: i32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KSEMAPHORE {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KSEMAPHORE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPIN_LOCK_QUEUE { + pub Next: *mut KSPIN_LOCK_QUEUE, + pub Lock: *mut usize, +} +impl ::core::marker::Copy for KSPIN_LOCK_QUEUE {} +impl ::core::clone::Clone for KSPIN_LOCK_QUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSYSTEM_TIME { + pub LowPart: u32, + pub High1Time: i32, + pub High2Time: i32, +} +impl ::core::marker::Copy for KSYSTEM_TIME {} +impl ::core::clone::Clone for KSYSTEM_TIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct KTIMER { + pub Header: super::super::Foundation::DISPATCHER_HEADER, + pub DueTime: u64, + pub TimerListEntry: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub Dpc: *mut super::super::Foundation::KDPC, + pub Period: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KTIMER {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KTIMER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct KTRIAGE_DUMP_DATA_ARRAY { + pub List: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub NumBlocksUsed: u32, + pub NumBlocksTotal: u32, + pub DataSize: u32, + pub MaxDataSize: u32, + pub ComponentNameBufferLength: u32, + pub ComponentName: *mut u8, + pub Blocks: [KADDRESS_RANGE; 1], +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for KTRIAGE_DUMP_DATA_ARRAY {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for KTRIAGE_DUMP_DATA_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub struct KUSER_SHARED_DATA { + pub TickCountLowDeprecated: u32, + pub TickCountMultiplier: u32, + pub InterruptTime: KSYSTEM_TIME, + pub SystemTime: KSYSTEM_TIME, + pub TimeZoneBias: KSYSTEM_TIME, + pub ImageNumberLow: u16, + pub ImageNumberHigh: u16, + pub NtSystemRoot: [u16; 260], + pub MaxStackTraceDepth: u32, + pub CryptoExponent: u32, + pub TimeZoneId: u32, + pub LargePageMinimum: u32, + pub AitSamplingValue: u32, + pub AppCompatFlag: u32, + pub RNGSeedVersion: u64, + pub GlobalValidationRunlevel: u32, + pub TimeZoneBiasStamp: i32, + pub NtBuildNumber: u32, + pub NtProductType: super::super::super::Win32::System::Kernel::NT_PRODUCT_TYPE, + pub ProductTypeIsValid: super::super::super::Win32::Foundation::BOOLEAN, + pub Reserved0: [super::super::super::Win32::Foundation::BOOLEAN; 1], + pub NativeProcessorArchitecture: u16, + pub NtMajorVersion: u32, + pub NtMinorVersion: u32, + pub ProcessorFeatures: [super::super::super::Win32::Foundation::BOOLEAN; 64], + pub Reserved1: u32, + pub Reserved3: u32, + pub TimeSlip: u32, + pub AlternativeArchitecture: ALTERNATIVE_ARCHITECTURE_TYPE, + pub BootId: u32, + pub SystemExpirationDate: i64, + pub SuiteMask: u32, + pub KdDebuggerEnabled: super::super::super::Win32::Foundation::BOOLEAN, + pub Anonymous1: KUSER_SHARED_DATA_0, + pub CyclesPerYield: u16, + pub ActiveConsoleId: u32, + pub DismountCount: u32, + pub ComPlusPackage: u32, + pub LastSystemRITEventTickCount: u32, + pub NumberOfPhysicalPages: u32, + pub SafeBootMode: super::super::super::Win32::Foundation::BOOLEAN, + pub Anonymous2: KUSER_SHARED_DATA_1, + pub Reserved12: [u8; 2], + pub Anonymous3: KUSER_SHARED_DATA_2, + pub DataFlagsPad: [u32; 1], + pub TestRetInstruction: u64, + pub QpcFrequency: i64, + pub SystemCall: u32, + pub Reserved2: u32, + pub SystemCallPad: [u64; 2], + pub Anonymous4: KUSER_SHARED_DATA_3, + pub Cookie: u32, + pub CookiePad: [u32; 1], + pub ConsoleSessionForegroundProcessId: i64, + pub TimeUpdateLock: u64, + pub BaselineSystemTimeQpc: u64, + pub BaselineInterruptTimeQpc: u64, + pub QpcSystemTimeIncrement: u64, + pub QpcInterruptTimeIncrement: u64, + pub QpcSystemTimeIncrementShift: u8, + pub QpcInterruptTimeIncrementShift: u8, + pub UnparkedProcessorCount: u16, + pub EnclaveFeatureMask: [u32; 4], + pub TelemetryCoverageRound: u32, + pub UserModeGlobalLogger: [u16; 16], + pub ImageFileExecutionOptions: u32, + pub LangGenerationCount: u32, + pub Reserved4: u64, + pub InterruptTimeBias: u64, + pub QpcBias: u64, + pub ActiveProcessorCount: u32, + pub ActiveGroupCount: u8, + pub Reserved9: u8, + pub Anonymous5: KUSER_SHARED_DATA_4, + pub TimeZoneBiasEffectiveStart: i64, + pub TimeZoneBiasEffectiveEnd: i64, + pub XState: super::super::super::Win32::System::Diagnostics::Debug::XSTATE_CONFIGURATION, + pub FeatureConfigurationChangeStamp: KSYSTEM_TIME, + pub Spare: u32, + pub UserPointerAuthMask: u64, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KUSER_SHARED_DATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KUSER_SHARED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub union KUSER_SHARED_DATA_0 { + pub MitigationPolicies: u8, + pub Anonymous: KUSER_SHARED_DATA_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KUSER_SHARED_DATA_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KUSER_SHARED_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub struct KUSER_SHARED_DATA_0_0 { + pub _bitfield: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KUSER_SHARED_DATA_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KUSER_SHARED_DATA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub union KUSER_SHARED_DATA_1 { + pub VirtualizationFlags: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KUSER_SHARED_DATA_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KUSER_SHARED_DATA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub union KUSER_SHARED_DATA_2 { + pub SharedDataFlags: u32, + pub Anonymous: KUSER_SHARED_DATA_2_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KUSER_SHARED_DATA_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KUSER_SHARED_DATA_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub struct KUSER_SHARED_DATA_2_0 { + pub _bitfield: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KUSER_SHARED_DATA_2_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KUSER_SHARED_DATA_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub union KUSER_SHARED_DATA_3 { + pub TickCount: KSYSTEM_TIME, + pub TickCountQuad: u64, + pub Anonymous: KUSER_SHARED_DATA_3_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KUSER_SHARED_DATA_3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KUSER_SHARED_DATA_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub struct KUSER_SHARED_DATA_3_0 { + pub ReservedTickCountOverlay: [u32; 3], + pub TickCountPad: [u32; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KUSER_SHARED_DATA_3_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KUSER_SHARED_DATA_3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub union KUSER_SHARED_DATA_4 { + pub QpcData: u16, + pub Anonymous: KUSER_SHARED_DATA_4_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KUSER_SHARED_DATA_4 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KUSER_SHARED_DATA_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub struct KUSER_SHARED_DATA_4_0 { + pub QpcBypassEnabled: u8, + pub QpcShift: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for KUSER_SHARED_DATA_4_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for KUSER_SHARED_DATA_4_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KWAIT_CHAIN { + pub Head: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for KWAIT_CHAIN {} +impl ::core::clone::Clone for KWAIT_CHAIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LEGACY_BUS_INFORMATION { + pub BusTypeGuid: ::windows_sys::core::GUID, + pub LegacyBusType: INTERFACE_TYPE, + pub BusNumber: u32, +} +impl ::core::marker::Copy for LEGACY_BUS_INFORMATION {} +impl ::core::clone::Clone for LEGACY_BUS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LINK_SHARE_ACCESS { + pub OpenCount: u32, + pub Deleters: u32, + pub SharedDelete: u32, +} +impl ::core::marker::Copy for LINK_SHARE_ACCESS {} +impl ::core::clone::Clone for LINK_SHARE_ACCESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOADER_PARTITION_INFORMATION_EX { + pub PartitionStyle: u32, + pub PartitionNumber: u32, + pub Anonymous: LOADER_PARTITION_INFORMATION_EX_0, + pub Flags: u32, +} +impl ::core::marker::Copy for LOADER_PARTITION_INFORMATION_EX {} +impl ::core::clone::Clone for LOADER_PARTITION_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union LOADER_PARTITION_INFORMATION_EX_0 { + pub Signature: u32, + pub DeviceId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for LOADER_PARTITION_INFORMATION_EX_0 {} +impl ::core::clone::Clone for LOADER_PARTITION_INFORMATION_EX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MAILSLOT_CREATE_PARAMETERS { + pub MailslotQuota: u32, + pub MaximumMessageSize: u32, + pub ReadTimeout: i64, + pub TimeoutSpecified: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MAILSLOT_CREATE_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MAILSLOT_CREATE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MAP_REGISTER_ENTRY { + pub MapRegister: *mut ::core::ffi::c_void, + pub WriteToDevice: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MAP_REGISTER_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MAP_REGISTER_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct MCA_DRIVER_INFO { + pub ExceptionCallback: PDRIVER_MCA_EXCEPTION_CALLBACK, + pub DpcCallback: super::super::Foundation::PKDEFERRED_ROUTINE, + pub DeviceContext: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for MCA_DRIVER_INFO {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for MCA_DRIVER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MCA_EXCEPTION { + pub VersionNumber: u32, + pub ExceptionType: MCA_EXCEPTION_TYPE, + pub TimeStamp: i64, + pub ProcessorNumber: u32, + pub Reserved1: u32, + pub u: MCA_EXCEPTION_0, + pub ExtCnt: u32, + pub Reserved3: u32, + pub ExtReg: [u64; 24], +} +impl ::core::marker::Copy for MCA_EXCEPTION {} +impl ::core::clone::Clone for MCA_EXCEPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MCA_EXCEPTION_0 { + pub Mca: MCA_EXCEPTION_0_0, + pub Mce: MCA_EXCEPTION_0_1, +} +impl ::core::marker::Copy for MCA_EXCEPTION_0 {} +impl ::core::clone::Clone for MCA_EXCEPTION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MCA_EXCEPTION_0_0 { + pub BankNumber: u8, + pub Reserved2: [u8; 7], + pub Status: MCI_STATS, + pub Address: MCI_ADDR, + pub Misc: u64, +} +impl ::core::marker::Copy for MCA_EXCEPTION_0_0 {} +impl ::core::clone::Clone for MCA_EXCEPTION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MCA_EXCEPTION_0_1 { + pub Address: u64, + pub Type: u64, +} +impl ::core::marker::Copy for MCA_EXCEPTION_0_1 {} +impl ::core::clone::Clone for MCA_EXCEPTION_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union MCG_CAP { + pub Anonymous: MCG_CAP_0, + pub QuadPart: u64, +} +impl ::core::marker::Copy for MCG_CAP {} +impl ::core::clone::Clone for MCG_CAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCG_CAP_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for MCG_CAP_0 {} +impl ::core::clone::Clone for MCG_CAP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union MCG_STATUS { + pub Anonymous: MCG_STATUS_0, + pub QuadPart: u64, +} +impl ::core::marker::Copy for MCG_STATUS {} +impl ::core::clone::Clone for MCG_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCG_STATUS_0 { + pub _bitfield: u32, + pub Reserved2: u32, +} +impl ::core::marker::Copy for MCG_STATUS_0 {} +impl ::core::clone::Clone for MCG_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MCI_ADDR { + pub Anonymous: MCI_ADDR_0, + pub QuadPart: u64, +} +impl ::core::marker::Copy for MCI_ADDR {} +impl ::core::clone::Clone for MCI_ADDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MCI_ADDR_0 { + pub Address: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for MCI_ADDR_0 {} +impl ::core::clone::Clone for MCI_ADDR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MCI_STATS { + pub MciStats: MCI_STATS_0, + pub QuadPart: u64, +} +impl ::core::marker::Copy for MCI_STATS {} +impl ::core::clone::Clone for MCI_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MCI_STATS_0 { + pub McaCod: u16, + pub MsCod: u16, + pub _bitfield: u32, +} +impl ::core::marker::Copy for MCI_STATS_0 {} +impl ::core::clone::Clone for MCI_STATS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union MCI_STATUS { + pub CommonBits: MCI_STATUS_BITS_COMMON, + pub AmdBits: MCI_STATUS_AMD_BITS, + pub IntelBits: MCI_STATUS_INTEL_BITS, + pub QuadPart: u64, +} +impl ::core::marker::Copy for MCI_STATUS {} +impl ::core::clone::Clone for MCI_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_STATUS_AMD_BITS { + pub _bitfield: u64, +} +impl ::core::marker::Copy for MCI_STATUS_AMD_BITS {} +impl ::core::clone::Clone for MCI_STATUS_AMD_BITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_STATUS_BITS_COMMON { + pub _bitfield: u64, +} +impl ::core::marker::Copy for MCI_STATUS_BITS_COMMON {} +impl ::core::clone::Clone for MCI_STATUS_BITS_COMMON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_STATUS_INTEL_BITS { + pub _bitfield: u64, +} +impl ::core::marker::Copy for MCI_STATUS_INTEL_BITS {} +impl ::core::clone::Clone for MCI_STATUS_INTEL_BITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MEMORY_PARTITION_DEDICATED_MEMORY_OPEN_INFORMATION { + pub DedicatedMemoryTypeId: u64, + pub HandleAttributes: u32, + pub DesiredAccess: u32, + pub DedicatedMemoryPartitionHandle: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MEMORY_PARTITION_DEDICATED_MEMORY_OPEN_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MEMORY_PARTITION_DEDICATED_MEMORY_OPEN_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MM_COPY_ADDRESS { + pub Anonymous: MM_COPY_ADDRESS_0, +} +impl ::core::marker::Copy for MM_COPY_ADDRESS {} +impl ::core::clone::Clone for MM_COPY_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MM_COPY_ADDRESS_0 { + pub VirtualAddress: *mut ::core::ffi::c_void, + pub PhysicalAddress: i64, +} +impl ::core::marker::Copy for MM_COPY_ADDRESS_0 {} +impl ::core::clone::Clone for MM_COPY_ADDRESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MM_PHYSICAL_ADDRESS_LIST { + pub PhysicalAddress: i64, + pub NumberOfBytes: usize, +} +impl ::core::marker::Copy for MM_PHYSICAL_ADDRESS_LIST {} +impl ::core::clone::Clone for MM_PHYSICAL_ADDRESS_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MU_TELEMETRY_SECTION { + pub ComponentID: ::windows_sys::core::GUID, + pub SubComponentID: ::windows_sys::core::GUID, + pub Reserved: u32, + pub ErrorStatusValue: u32, + pub AdditionalInfo1: u64, + pub AdditionalInfo2: u64, +} +impl ::core::marker::Copy for MU_TELEMETRY_SECTION {} +impl ::core::clone::Clone for MU_TELEMETRY_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NAMED_PIPE_CREATE_PARAMETERS { + pub NamedPipeType: u32, + pub ReadMode: u32, + pub CompletionMode: u32, + pub MaximumInstances: u32, + pub InboundQuota: u32, + pub OutboundQuota: u32, + pub DefaultTimeout: i64, + pub TimeoutSpecified: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NAMED_PIPE_CREATE_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NAMED_PIPE_CREATE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NPEM_CAPABILITY_STANDARD { + pub Anonymous: NPEM_CAPABILITY_STANDARD_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for NPEM_CAPABILITY_STANDARD {} +impl ::core::clone::Clone for NPEM_CAPABILITY_STANDARD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NPEM_CAPABILITY_STANDARD_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NPEM_CAPABILITY_STANDARD_0 {} +impl ::core::clone::Clone for NPEM_CAPABILITY_STANDARD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NPEM_CONTROL_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub SetNpemSupportState: PNPEM_CONTROL_ENABLE_DISABLE, + pub QueryStandardCapabilities: PNPEM_CONTROL_QUERY_STANDARD_CAPABILITIES, + pub SetStandardControl: PNPEM_CONTROL_SET_STANDARD_CONTROL, + pub QueryNpemControl: PNPEM_CONTROL_QUERY_CONTROL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NPEM_CONTROL_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NPEM_CONTROL_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NT_TIB32 { + pub ExceptionList: u32, + pub StackBase: u32, + pub StackLimit: u32, + pub SubSystemTib: u32, + pub Anonymous: NT_TIB32_0, + pub ArbitraryUserPointer: u32, + pub Self_: u32, +} +impl ::core::marker::Copy for NT_TIB32 {} +impl ::core::clone::Clone for NT_TIB32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NT_TIB32_0 { + pub FiberData: u32, + pub Version: u32, +} +impl ::core::marker::Copy for NT_TIB32_0 {} +impl ::core::clone::Clone for NT_TIB32_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OBJECT_HANDLE_INFORMATION { + pub HandleAttributes: u32, + pub GrantedAccess: u32, +} +impl ::core::marker::Copy for OBJECT_HANDLE_INFORMATION {} +impl ::core::clone::Clone for OBJECT_HANDLE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub struct OB_CALLBACK_REGISTRATION { + pub Version: u16, + pub OperationRegistrationCount: u16, + pub Altitude: super::super::super::Win32::Foundation::UNICODE_STRING, + pub RegistrationContext: *mut ::core::ffi::c_void, + pub OperationRegistration: *mut OB_OPERATION_REGISTRATION, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for OB_CALLBACK_REGISTRATION {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for OB_CALLBACK_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub struct OB_OPERATION_REGISTRATION { + pub ObjectType: *mut super::super::Foundation::POBJECT_TYPE, + pub Operations: u32, + pub PreOperation: POB_PRE_OPERATION_CALLBACK, + pub PostOperation: POB_POST_OPERATION_CALLBACK, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for OB_OPERATION_REGISTRATION {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for OB_OPERATION_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OB_POST_CREATE_HANDLE_INFORMATION { + pub GrantedAccess: u32, +} +impl ::core::marker::Copy for OB_POST_CREATE_HANDLE_INFORMATION {} +impl ::core::clone::Clone for OB_POST_CREATE_HANDLE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OB_POST_DUPLICATE_HANDLE_INFORMATION { + pub GrantedAccess: u32, +} +impl ::core::marker::Copy for OB_POST_DUPLICATE_HANDLE_INFORMATION {} +impl ::core::clone::Clone for OB_POST_DUPLICATE_HANDLE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub struct OB_POST_OPERATION_INFORMATION { + pub Operation: u32, + pub Anonymous: OB_POST_OPERATION_INFORMATION_0, + pub Object: *mut ::core::ffi::c_void, + pub ObjectType: super::super::Foundation::POBJECT_TYPE, + pub CallContext: *mut ::core::ffi::c_void, + pub ReturnStatus: super::super::super::Win32::Foundation::NTSTATUS, + pub Parameters: *mut OB_POST_OPERATION_PARAMETERS, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for OB_POST_OPERATION_INFORMATION {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for OB_POST_OPERATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub union OB_POST_OPERATION_INFORMATION_0 { + pub Flags: u32, + pub Anonymous: OB_POST_OPERATION_INFORMATION_0_0, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for OB_POST_OPERATION_INFORMATION_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for OB_POST_OPERATION_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub struct OB_POST_OPERATION_INFORMATION_0_0 { + pub _bitfield: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for OB_POST_OPERATION_INFORMATION_0_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for OB_POST_OPERATION_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union OB_POST_OPERATION_PARAMETERS { + pub CreateHandleInformation: OB_POST_CREATE_HANDLE_INFORMATION, + pub DuplicateHandleInformation: OB_POST_DUPLICATE_HANDLE_INFORMATION, +} +impl ::core::marker::Copy for OB_POST_OPERATION_PARAMETERS {} +impl ::core::clone::Clone for OB_POST_OPERATION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OB_PRE_CREATE_HANDLE_INFORMATION { + pub DesiredAccess: u32, + pub OriginalDesiredAccess: u32, +} +impl ::core::marker::Copy for OB_PRE_CREATE_HANDLE_INFORMATION {} +impl ::core::clone::Clone for OB_PRE_CREATE_HANDLE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OB_PRE_DUPLICATE_HANDLE_INFORMATION { + pub DesiredAccess: u32, + pub OriginalDesiredAccess: u32, + pub SourceProcess: *mut ::core::ffi::c_void, + pub TargetProcess: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for OB_PRE_DUPLICATE_HANDLE_INFORMATION {} +impl ::core::clone::Clone for OB_PRE_DUPLICATE_HANDLE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct OB_PRE_OPERATION_INFORMATION { + pub Operation: u32, + pub Anonymous: OB_PRE_OPERATION_INFORMATION_0, + pub Object: *mut ::core::ffi::c_void, + pub ObjectType: super::super::Foundation::POBJECT_TYPE, + pub CallContext: *mut ::core::ffi::c_void, + pub Parameters: *mut OB_PRE_OPERATION_PARAMETERS, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for OB_PRE_OPERATION_INFORMATION {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for OB_PRE_OPERATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub union OB_PRE_OPERATION_INFORMATION_0 { + pub Flags: u32, + pub Anonymous: OB_PRE_OPERATION_INFORMATION_0_0, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for OB_PRE_OPERATION_INFORMATION_0 {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for OB_PRE_OPERATION_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct OB_PRE_OPERATION_INFORMATION_0_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for OB_PRE_OPERATION_INFORMATION_0_0 {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for OB_PRE_OPERATION_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union OB_PRE_OPERATION_PARAMETERS { + pub CreateHandleInformation: OB_PRE_CREATE_HANDLE_INFORMATION, + pub DuplicateHandleInformation: OB_PRE_DUPLICATE_HANDLE_INFORMATION, +} +impl ::core::marker::Copy for OB_PRE_OPERATION_PARAMETERS {} +impl ::core::clone::Clone for OB_PRE_OPERATION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PAGE_PRIORITY_INFORMATION { + pub PagePriority: u32, +} +impl ::core::marker::Copy for PAGE_PRIORITY_INFORMATION {} +impl ::core::clone::Clone for PAGE_PRIORITY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCIBUSDATA { + pub Tag: u32, + pub Version: u32, + pub ReadConfig: PciReadWriteConfig, + pub WriteConfig: PciReadWriteConfig, + pub Pin2Line: PciPin2Line, + pub Line2Pin: PciLine2Pin, + pub ParentSlot: PCI_SLOT_NUMBER, + pub Reserved: [*mut ::core::ffi::c_void; 4], +} +impl ::core::marker::Copy for PCIBUSDATA {} +impl ::core::clone::Clone for PCIBUSDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCIX_BRIDGE_CAPABILITY { + pub Header: PCI_CAPABILITIES_HEADER, + pub SecondaryStatus: PCIX_BRIDGE_CAPABILITY_2, + pub BridgeStatus: PCIX_BRIDGE_CAPABILITY_0, + pub UpstreamSplitTransactionCapacity: u16, + pub UpstreamSplitTransactionLimit: u16, + pub DownstreamSplitTransactionCapacity: u16, + pub DownstreamSplitTransactionLimit: u16, + pub EccControlStatus: PCIX_BRIDGE_CAPABILITY_1, + pub EccFirstAddress: u32, + pub EccSecondAddress: u32, + pub EccAttribute: u32, +} +impl ::core::marker::Copy for PCIX_BRIDGE_CAPABILITY {} +impl ::core::clone::Clone for PCIX_BRIDGE_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCIX_BRIDGE_CAPABILITY_0 { + pub Anonymous: PCIX_BRIDGE_CAPABILITY_0_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCIX_BRIDGE_CAPABILITY_0 {} +impl ::core::clone::Clone for PCIX_BRIDGE_CAPABILITY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCIX_BRIDGE_CAPABILITY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCIX_BRIDGE_CAPABILITY_0_0 {} +impl ::core::clone::Clone for PCIX_BRIDGE_CAPABILITY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCIX_BRIDGE_CAPABILITY_1 { + pub Anonymous: PCIX_BRIDGE_CAPABILITY_1_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCIX_BRIDGE_CAPABILITY_1 {} +impl ::core::clone::Clone for PCIX_BRIDGE_CAPABILITY_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCIX_BRIDGE_CAPABILITY_1_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCIX_BRIDGE_CAPABILITY_1_0 {} +impl ::core::clone::Clone for PCIX_BRIDGE_CAPABILITY_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCIX_BRIDGE_CAPABILITY_2 { + pub Anonymous: PCIX_BRIDGE_CAPABILITY_2_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCIX_BRIDGE_CAPABILITY_2 {} +impl ::core::clone::Clone for PCIX_BRIDGE_CAPABILITY_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCIX_BRIDGE_CAPABILITY_2_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCIX_BRIDGE_CAPABILITY_2_0 {} +impl ::core::clone::Clone for PCIX_BRIDGE_CAPABILITY_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_ADVANCED_FEATURES_CAPABILITY { + pub Header: PCI_CAPABILITIES_HEADER, + pub Length: u8, + pub Capabilities: PCI_ADVANCED_FEATURES_CAPABILITY_0, + pub Control: PCI_ADVANCED_FEATURES_CAPABILITY_1, + pub Status: PCI_ADVANCED_FEATURES_CAPABILITY_2, +} +impl ::core::marker::Copy for PCI_ADVANCED_FEATURES_CAPABILITY {} +impl ::core::clone::Clone for PCI_ADVANCED_FEATURES_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_ADVANCED_FEATURES_CAPABILITY_0 { + pub Anonymous: PCI_ADVANCED_FEATURES_CAPABILITY_0_0, + pub AsUCHAR: u8, +} +impl ::core::marker::Copy for PCI_ADVANCED_FEATURES_CAPABILITY_0 {} +impl ::core::clone::Clone for PCI_ADVANCED_FEATURES_CAPABILITY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_ADVANCED_FEATURES_CAPABILITY_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for PCI_ADVANCED_FEATURES_CAPABILITY_0_0 {} +impl ::core::clone::Clone for PCI_ADVANCED_FEATURES_CAPABILITY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_ADVANCED_FEATURES_CAPABILITY_1 { + pub Anonymous: PCI_ADVANCED_FEATURES_CAPABILITY_1_0, + pub AsUCHAR: u8, +} +impl ::core::marker::Copy for PCI_ADVANCED_FEATURES_CAPABILITY_1 {} +impl ::core::clone::Clone for PCI_ADVANCED_FEATURES_CAPABILITY_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_ADVANCED_FEATURES_CAPABILITY_1_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for PCI_ADVANCED_FEATURES_CAPABILITY_1_0 {} +impl ::core::clone::Clone for PCI_ADVANCED_FEATURES_CAPABILITY_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_ADVANCED_FEATURES_CAPABILITY_2 { + pub Anonymous: PCI_ADVANCED_FEATURES_CAPABILITY_2_0, + pub AsUCHAR: u8, +} +impl ::core::marker::Copy for PCI_ADVANCED_FEATURES_CAPABILITY_2 {} +impl ::core::clone::Clone for PCI_ADVANCED_FEATURES_CAPABILITY_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_ADVANCED_FEATURES_CAPABILITY_2_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for PCI_ADVANCED_FEATURES_CAPABILITY_2_0 {} +impl ::core::clone::Clone for PCI_ADVANCED_FEATURES_CAPABILITY_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_AGP_APERTURE_PAGE_SIZE { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_AGP_APERTURE_PAGE_SIZE {} +impl ::core::clone::Clone for PCI_AGP_APERTURE_PAGE_SIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_AGP_CAPABILITY { + pub Header: PCI_CAPABILITIES_HEADER, + pub _bitfield: u16, + pub AGPStatus: PCI_AGP_CAPABILITY_1, + pub AGPCommand: PCI_AGP_CAPABILITY_0, +} +impl ::core::marker::Copy for PCI_AGP_CAPABILITY {} +impl ::core::clone::Clone for PCI_AGP_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_AGP_CAPABILITY_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_AGP_CAPABILITY_0 {} +impl ::core::clone::Clone for PCI_AGP_CAPABILITY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_AGP_CAPABILITY_1 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_AGP_CAPABILITY_1 {} +impl ::core::clone::Clone for PCI_AGP_CAPABILITY_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_AGP_CONTROL { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_AGP_CONTROL {} +impl ::core::clone::Clone for PCI_AGP_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_AGP_EXTENDED_CAPABILITY { + pub IsochStatus: PCI_AGP_ISOCH_STATUS, + pub AgpControl: PCI_AGP_CONTROL, + pub ApertureSize: u16, + pub AperturePageSize: PCI_AGP_APERTURE_PAGE_SIZE, + pub GartLow: u32, + pub GartHigh: u32, + pub IsochCommand: PCI_AGP_ISOCH_COMMAND, +} +impl ::core::marker::Copy for PCI_AGP_EXTENDED_CAPABILITY {} +impl ::core::clone::Clone for PCI_AGP_EXTENDED_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_AGP_ISOCH_COMMAND { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_AGP_ISOCH_COMMAND {} +impl ::core::clone::Clone for PCI_AGP_ISOCH_COMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_AGP_ISOCH_STATUS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_AGP_ISOCH_STATUS {} +impl ::core::clone::Clone for PCI_AGP_ISOCH_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PCI_ATS_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub SetAddressTranslationServices: PPCI_SET_ATS, + pub InvalidateQueueDepth: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PCI_ATS_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PCI_ATS_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_BUS_INTERFACE_STANDARD { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub ReadConfig: PPCI_READ_WRITE_CONFIG, + pub WriteConfig: PPCI_READ_WRITE_CONFIG, + pub PinToLine: PPCI_PIN_TO_LINE, + pub LineToPin: PPCI_LINE_TO_PIN, + pub RootBusCapability: PPCI_ROOT_BUS_CAPABILITY, + pub ExpressWakeControl: PPCI_EXPRESS_WAKE_CONTROL, + pub PrepareMultistageResume: PPCI_PREPARE_MULTISTAGE_RESUME, +} +impl ::core::marker::Copy for PCI_BUS_INTERFACE_STANDARD {} +impl ::core::clone::Clone for PCI_BUS_INTERFACE_STANDARD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_CAPABILITIES_HEADER { + pub CapabilityID: u8, + pub Next: u8, +} +impl ::core::marker::Copy for PCI_CAPABILITIES_HEADER {} +impl ::core::clone::Clone for PCI_CAPABILITIES_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_COMMON_CONFIG { + pub Base: PCI_COMMON_HEADER, + pub DeviceSpecific: [u8; 192], +} +impl ::core::marker::Copy for PCI_COMMON_CONFIG {} +impl ::core::clone::Clone for PCI_COMMON_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_COMMON_HEADER { + pub VendorID: u16, + pub DeviceID: u16, + pub Command: u16, + pub Status: u16, + pub RevisionID: u8, + pub ProgIf: u8, + pub SubClass: u8, + pub BaseClass: u8, + pub CacheLineSize: u8, + pub LatencyTimer: u8, + pub HeaderType: u8, + pub BIST: u8, + pub u: PCI_COMMON_HEADER_0, +} +impl ::core::marker::Copy for PCI_COMMON_HEADER {} +impl ::core::clone::Clone for PCI_COMMON_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_COMMON_HEADER_0 { + pub type0: PCI_COMMON_HEADER_0_0, + pub type1: PCI_COMMON_HEADER_0_1, + pub type2: PCI_COMMON_HEADER_0_2, +} +impl ::core::marker::Copy for PCI_COMMON_HEADER_0 {} +impl ::core::clone::Clone for PCI_COMMON_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_COMMON_HEADER_0_0 { + pub BaseAddresses: [u32; 6], + pub CIS: u32, + pub SubVendorID: u16, + pub SubSystemID: u16, + pub ROMBaseAddress: u32, + pub CapabilitiesPtr: u8, + pub Reserved1: [u8; 3], + pub Reserved2: u32, + pub InterruptLine: u8, + pub InterruptPin: u8, + pub MinimumGrant: u8, + pub MaximumLatency: u8, +} +impl ::core::marker::Copy for PCI_COMMON_HEADER_0_0 {} +impl ::core::clone::Clone for PCI_COMMON_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_COMMON_HEADER_0_1 { + pub BaseAddresses: [u32; 2], + pub PrimaryBus: u8, + pub SecondaryBus: u8, + pub SubordinateBus: u8, + pub SecondaryLatency: u8, + pub IOBase: u8, + pub IOLimit: u8, + pub SecondaryStatus: u16, + pub MemoryBase: u16, + pub MemoryLimit: u16, + pub PrefetchBase: u16, + pub PrefetchLimit: u16, + pub PrefetchBaseUpper32: u32, + pub PrefetchLimitUpper32: u32, + pub IOBaseUpper16: u16, + pub IOLimitUpper16: u16, + pub CapabilitiesPtr: u8, + pub Reserved1: [u8; 3], + pub ROMBaseAddress: u32, + pub InterruptLine: u8, + pub InterruptPin: u8, + pub BridgeControl: u16, +} +impl ::core::marker::Copy for PCI_COMMON_HEADER_0_1 {} +impl ::core::clone::Clone for PCI_COMMON_HEADER_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_COMMON_HEADER_0_2 { + pub SocketRegistersBaseAddress: u32, + pub CapabilitiesPtr: u8, + pub Reserved: u8, + pub SecondaryStatus: u16, + pub PrimaryBus: u8, + pub SecondaryBus: u8, + pub SubordinateBus: u8, + pub SecondaryLatency: u8, + pub Range: [PCI_COMMON_HEADER_0_2_0; 4], + pub InterruptLine: u8, + pub InterruptPin: u8, + pub BridgeControl: u16, +} +impl ::core::marker::Copy for PCI_COMMON_HEADER_0_2 {} +impl ::core::clone::Clone for PCI_COMMON_HEADER_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_COMMON_HEADER_0_2_0 { + pub Base: u32, + pub Limit: u32, +} +impl ::core::marker::Copy for PCI_COMMON_HEADER_0_2_0 {} +impl ::core::clone::Clone for PCI_COMMON_HEADER_0_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_DEBUGGING_DEVICE_IN_USE { + pub Segment: u16, + pub Bus: u32, + pub Slot: u32, +} +impl ::core::marker::Copy for PCI_DEBUGGING_DEVICE_IN_USE {} +impl ::core::clone::Clone for PCI_DEBUGGING_DEVICE_IN_USE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_DEVICE_PRESENCE_PARAMETERS { + pub Size: u32, + pub Flags: u32, + pub VendorID: u16, + pub DeviceID: u16, + pub RevisionID: u8, + pub SubVendorID: u16, + pub SubSystemID: u16, + pub BaseClass: u8, + pub SubClass: u8, + pub ProgIf: u8, +} +impl ::core::marker::Copy for PCI_DEVICE_PRESENCE_PARAMETERS {} +impl ::core::clone::Clone for PCI_DEVICE_PRESENCE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PCI_DEVICE_PRESENT_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub IsDevicePresent: PPCI_IS_DEVICE_PRESENT, + pub IsDevicePresentEx: PPCI_IS_DEVICE_PRESENT_EX, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PCI_DEVICE_PRESENT_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PCI_DEVICE_PRESENT_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ACS_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub Capability: PCI_EXPRESS_ACS_CAPABILITY_REGISTER, + pub Control: PCI_EXPRESS_ACS_CONTROL, + pub EgressControl: [u32; 1], +} +impl ::core::marker::Copy for PCI_EXPRESS_ACS_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_ACS_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_ACS_CAPABILITY_REGISTER { + pub Anonymous: PCI_EXPRESS_ACS_CAPABILITY_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ACS_CAPABILITY_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_ACS_CAPABILITY_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ACS_CAPABILITY_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ACS_CAPABILITY_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_ACS_CAPABILITY_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_ACS_CONTROL { + pub Anonymous: PCI_EXPRESS_ACS_CONTROL_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ACS_CONTROL {} +impl ::core::clone::Clone for PCI_EXPRESS_ACS_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ACS_CONTROL_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ACS_CONTROL_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_ACS_CONTROL_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_AER_CAPABILITIES { + pub Anonymous: PCI_EXPRESS_AER_CAPABILITIES_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_AER_CAPABILITIES {} +impl ::core::clone::Clone for PCI_EXPRESS_AER_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_AER_CAPABILITIES_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_AER_CAPABILITIES_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_AER_CAPABILITIES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_AER_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub UncorrectableErrorStatus: PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS, + pub UncorrectableErrorMask: PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK, + pub UncorrectableErrorSeverity: PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY, + pub CorrectableErrorStatus: PCI_EXPRESS_CORRECTABLE_ERROR_STATUS, + pub CorrectableErrorMask: PCI_EXPRESS_CORRECTABLE_ERROR_MASK, + pub CapabilitiesAndControl: PCI_EXPRESS_AER_CAPABILITIES, + pub HeaderLog: [u32; 4], + pub SecUncorrectableErrorStatus: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS, + pub SecUncorrectableErrorMask: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK, + pub SecUncorrectableErrorSeverity: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY, + pub SecCapabilitiesAndControl: PCI_EXPRESS_SEC_AER_CAPABILITIES, + pub SecHeaderLog: [u32; 4], +} +impl ::core::marker::Copy for PCI_EXPRESS_AER_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_AER_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ARI_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub Capability: PCI_EXPRESS_ARI_CAPABILITY_REGISTER, + pub Control: PCI_EXPRESS_ARI_CONTROL_REGISTER, +} +impl ::core::marker::Copy for PCI_EXPRESS_ARI_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_ARI_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ARI_CAPABILITY_REGISTER { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ARI_CAPABILITY_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_ARI_CAPABILITY_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ARI_CONTROL_REGISTER { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ARI_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_ARI_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ATS_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub Capability: PCI_EXPRESS_ATS_CAPABILITY_REGISTER, + pub Control: PCI_EXPRESS_ATS_CONTROL_REGISTER, +} +impl ::core::marker::Copy for PCI_EXPRESS_ATS_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_ATS_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ATS_CAPABILITY_REGISTER { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ATS_CAPABILITY_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_ATS_CAPABILITY_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_ATS_CONTROL_REGISTER { + pub Anonymous: PCI_EXPRESS_ATS_CONTROL_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ATS_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_ATS_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ATS_CONTROL_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ATS_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_ATS_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_BRIDGE_AER_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub UncorrectableErrorStatus: PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS, + pub UncorrectableErrorMask: PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK, + pub UncorrectableErrorSeverity: PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY, + pub CorrectableErrorStatus: PCI_EXPRESS_CORRECTABLE_ERROR_STATUS, + pub CorrectableErrorMask: PCI_EXPRESS_CORRECTABLE_ERROR_MASK, + pub CapabilitiesAndControl: PCI_EXPRESS_AER_CAPABILITIES, + pub HeaderLog: [u32; 4], + pub SecUncorrectableErrorStatus: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS, + pub SecUncorrectableErrorMask: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK, + pub SecUncorrectableErrorSeverity: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY, + pub SecCapabilitiesAndControl: PCI_EXPRESS_SEC_AER_CAPABILITIES, + pub SecHeaderLog: [u32; 4], +} +impl ::core::marker::Copy for PCI_EXPRESS_BRIDGE_AER_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_BRIDGE_AER_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_CAPABILITIES_REGISTER { + pub Anonymous: PCI_EXPRESS_CAPABILITIES_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_CAPABILITIES_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_CAPABILITIES_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CAPABILITIES_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_CAPABILITIES_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_CAPABILITIES_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CAPABILITY { + pub Header: PCI_CAPABILITIES_HEADER, + pub ExpressCapabilities: PCI_EXPRESS_CAPABILITIES_REGISTER, + pub DeviceCapabilities: PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER, + pub DeviceControl: PCI_EXPRESS_DEVICE_CONTROL_REGISTER, + pub DeviceStatus: PCI_EXPRESS_DEVICE_STATUS_REGISTER, + pub LinkCapabilities: PCI_EXPRESS_LINK_CAPABILITIES_REGISTER, + pub LinkControl: PCI_EXPRESS_LINK_CONTROL_REGISTER, + pub LinkStatus: PCI_EXPRESS_LINK_STATUS_REGISTER, + pub SlotCapabilities: PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER, + pub SlotControl: PCI_EXPRESS_SLOT_CONTROL_REGISTER, + pub SlotStatus: PCI_EXPRESS_SLOT_STATUS_REGISTER, + pub RootControl: PCI_EXPRESS_ROOT_CONTROL_REGISTER, + pub RootCapabilities: PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER, + pub RootStatus: PCI_EXPRESS_ROOT_STATUS_REGISTER, + pub DeviceCapabilities2: PCI_EXPRESS_DEVICE_CAPABILITIES_2_REGISTER, + pub DeviceControl2: PCI_EXPRESS_DEVICE_CONTROL_2_REGISTER, + pub DeviceStatus2: PCI_EXPRESS_DEVICE_STATUS_2_REGISTER, + pub LinkCapabilities2: PCI_EXPRESS_LINK_CAPABILITIES_2_REGISTER, + pub LinkControl2: PCI_EXPRESS_LINK_CONTROL_2_REGISTER, + pub LinkStatus2: PCI_EXPRESS_LINK_STATUS_2_REGISTER, +} +impl ::core::marker::Copy for PCI_EXPRESS_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_CORRECTABLE_ERROR_MASK { + pub Anonymous: PCI_EXPRESS_CORRECTABLE_ERROR_MASK_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_CORRECTABLE_ERROR_MASK {} +impl ::core::clone::Clone for PCI_EXPRESS_CORRECTABLE_ERROR_MASK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CORRECTABLE_ERROR_MASK_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_CORRECTABLE_ERROR_MASK_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_CORRECTABLE_ERROR_MASK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_CORRECTABLE_ERROR_STATUS { + pub Anonymous: PCI_EXPRESS_CORRECTABLE_ERROR_STATUS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_CORRECTABLE_ERROR_STATUS {} +impl ::core::clone::Clone for PCI_EXPRESS_CORRECTABLE_ERROR_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CORRECTABLE_ERROR_STATUS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_CORRECTABLE_ERROR_STATUS_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_CORRECTABLE_ERROR_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CXL_DVSEC_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub DvsecHeader1: PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1, + pub DvsecHeader2: PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2, + pub Reserved: [u8; 46], +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_CXL_DVSEC_CAPABILITY_REGISTER_V11 { + pub Anonymous: PCI_EXPRESS_CXL_DVSEC_CAPABILITY_REGISTER_V11_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_CAPABILITY_REGISTER_V11 {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_CAPABILITY_REGISTER_V11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CXL_DVSEC_CAPABILITY_REGISTER_V11_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_CAPABILITY_REGISTER_V11_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_CAPABILITY_REGISTER_V11_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CXL_DVSEC_CAPABILITY_V11 { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub DvsecHeader1: PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1, + pub DvsecHeader2: PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2, + pub Capability: PCI_EXPRESS_CXL_DVSEC_CAPABILITY_REGISTER_V11, + pub Control: PCI_EXPRESS_CXL_DVSEC_CONTROL_REGISTER, + pub Status: PCI_EXPRESS_CXL_DVSEC_STATUS_REGISTER, + pub Control2: u16, + pub Status2: u16, + pub Lock: PCI_EXPRESS_CXL_DVSEC_LOCK_REGISTER, + pub Reserved: u16, + pub Range1SizeHigh: PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_HIGH_REGISTER, + pub Range1SizeLow: PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_LOW_REGISTER_V11, + pub Range1BaseHigh: PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_HIGH_REGISTER, + pub Range1BaseLow: PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_LOW_REGISTER, + pub Range2SizeHigh: PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_HIGH_REGISTER, + pub Range2SizeLow: PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_LOW_REGISTER_V11, + pub Range2BaseHigh: PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_HIGH_REGISTER, + pub Range2BaseLow: PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_LOW_REGISTER, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_CAPABILITY_V11 {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_CAPABILITY_V11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_CXL_DVSEC_CONTROL_REGISTER { + pub Anonymous: PCI_EXPRESS_CXL_DVSEC_CONTROL_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CXL_DVSEC_CONTROL_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_CXL_DVSEC_LOCK_REGISTER { + pub Anonymous: PCI_EXPRESS_CXL_DVSEC_LOCK_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_LOCK_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_LOCK_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CXL_DVSEC_LOCK_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_LOCK_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_LOCK_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_HIGH_REGISTER { + pub MemBaseHigh: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_HIGH_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_HIGH_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_LOW_REGISTER { + pub Anonymous: PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_LOW_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_LOW_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_LOW_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_LOW_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_LOW_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_RANGE_BASE_LOW_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_HIGH_REGISTER { + pub MemSizeHigh: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_HIGH_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_HIGH_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_LOW_REGISTER_V11 { + pub Anonymous: PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_LOW_REGISTER_V11_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_LOW_REGISTER_V11 {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_LOW_REGISTER_V11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_LOW_REGISTER_V11_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_LOW_REGISTER_V11_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_RANGE_SIZE_LOW_REGISTER_V11_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_CXL_DVSEC_STATUS_REGISTER { + pub Anonymous: PCI_EXPRESS_CXL_DVSEC_STATUS_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_STATUS_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_STATUS_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_CXL_DVSEC_STATUS_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_CXL_DVSEC_STATUS_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_CXL_DVSEC_STATUS_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub DvsecHeader1: PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1, + pub DvsecHeader2: PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2, + pub DvsecRegisters: [u16; 1], +} +impl ::core::marker::Copy for PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1 { + pub Anonymous: PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1 {} +impl ::core::clone::Clone for PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2 { + pub Anonymous: PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2 {} +impl ::core::clone::Clone for PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_HEADER_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DEVICE_CAPABILITIES_2_REGISTER { + pub Anonymous: PCI_EXPRESS_DEVICE_CAPABILITIES_2_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DEVICE_CAPABILITIES_2_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DEVICE_CAPABILITIES_2_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DEVICE_CAPABILITIES_2_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DEVICE_CAPABILITIES_2_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DEVICE_CAPABILITIES_2_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER { + pub Anonymous: PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DEVICE_CONTROL_2_REGISTER { + pub Anonymous: PCI_EXPRESS_DEVICE_CONTROL_2_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DEVICE_CONTROL_2_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DEVICE_CONTROL_2_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DEVICE_CONTROL_2_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DEVICE_CONTROL_2_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DEVICE_CONTROL_2_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DEVICE_CONTROL_REGISTER { + pub Anonymous1: PCI_EXPRESS_DEVICE_CONTROL_REGISTER_0, + pub Anonymous2: PCI_EXPRESS_DEVICE_CONTROL_REGISTER_1, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DEVICE_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DEVICE_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DEVICE_CONTROL_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DEVICE_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DEVICE_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DEVICE_CONTROL_REGISTER_1 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DEVICE_CONTROL_REGISTER_1 {} +impl ::core::clone::Clone for PCI_EXPRESS_DEVICE_CONTROL_REGISTER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DEVICE_STATUS_2_REGISTER { + pub Anonymous: PCI_EXPRESS_DEVICE_STATUS_2_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DEVICE_STATUS_2_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DEVICE_STATUS_2_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DEVICE_STATUS_2_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DEVICE_STATUS_2_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DEVICE_STATUS_2_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DEVICE_STATUS_REGISTER { + pub Anonymous: PCI_EXPRESS_DEVICE_STATUS_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DEVICE_STATUS_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DEVICE_STATUS_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DEVICE_STATUS_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DEVICE_STATUS_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DEVICE_STATUS_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DPC_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub DpcCapabilities: PCI_EXPRESS_DPC_CAPS_REGISTER, + pub DpcControl: PCI_EXPRESS_DPC_CONTROL_REGISTER, + pub DpcStatus: PCI_EXPRESS_DPC_STATUS_REGISTER, + pub DpcErrSrcId: PCI_EXPRESS_DPC_ERROR_SOURCE_ID, + pub RpPioStatus: PCI_EXPRESS_DPC_RP_PIO_STATUS_REGISTER, + pub RpPioMask: PCI_EXPRESS_DPC_RP_PIO_MASK_REGISTER, + pub RpPioSeverity: PCI_EXPRESS_DPC_RP_PIO_SEVERITY_REGISTER, + pub RpPioSysError: PCI_EXPRESS_DPC_RP_PIO_SYSERR_REGISTER, + pub RpPioException: PCI_EXPRESS_DPC_RP_PIO_EXCEPTION_REGISTER, + pub RpPioHeaderLog: PCI_EXPRESS_DPC_RP_PIO_HEADERLOG_REGISTER, + pub RpPioImpSpecLog: PCI_EXPRESS_DPC_RP_PIO_IMPSPECLOG_REGISTER, + pub RpPioPrefixLog: PCI_EXPRESS_DPC_RP_PIO_TLPPREFIXLOG_REGISTER, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DPC_CAPS_REGISTER { + pub Anonymous: PCI_EXPRESS_DPC_CAPS_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_CAPS_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_CAPS_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DPC_CAPS_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_CAPS_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_CAPS_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DPC_CONTROL_REGISTER { + pub Anonymous: PCI_EXPRESS_DPC_CONTROL_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DPC_CONTROL_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DPC_ERROR_SOURCE_ID { + pub Anonymous: PCI_EXPRESS_DPC_ERROR_SOURCE_ID_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_ERROR_SOURCE_ID {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_ERROR_SOURCE_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DPC_ERROR_SOURCE_ID_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_ERROR_SOURCE_ID_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_ERROR_SOURCE_ID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DPC_RP_PIO_EXCEPTION_REGISTER { + pub Anonymous: PCI_EXPRESS_DPC_RP_PIO_EXCEPTION_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_RP_PIO_EXCEPTION_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_RP_PIO_EXCEPTION_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DPC_RP_PIO_EXCEPTION_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_RP_PIO_EXCEPTION_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_RP_PIO_EXCEPTION_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DPC_RP_PIO_HEADERLOG_REGISTER { + pub PioHeaderLogRegister: [u32; 4], +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_RP_PIO_HEADERLOG_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_RP_PIO_HEADERLOG_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DPC_RP_PIO_IMPSPECLOG_REGISTER { + pub PioImpSpecLog: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_RP_PIO_IMPSPECLOG_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_RP_PIO_IMPSPECLOG_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DPC_RP_PIO_MASK_REGISTER { + pub Anonymous: PCI_EXPRESS_DPC_RP_PIO_MASK_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_RP_PIO_MASK_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_RP_PIO_MASK_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DPC_RP_PIO_MASK_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_RP_PIO_MASK_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_RP_PIO_MASK_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DPC_RP_PIO_SEVERITY_REGISTER { + pub Anonymous: PCI_EXPRESS_DPC_RP_PIO_SEVERITY_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_RP_PIO_SEVERITY_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_RP_PIO_SEVERITY_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DPC_RP_PIO_SEVERITY_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_RP_PIO_SEVERITY_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_RP_PIO_SEVERITY_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DPC_RP_PIO_STATUS_REGISTER { + pub Anonymous: PCI_EXPRESS_DPC_RP_PIO_STATUS_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_RP_PIO_STATUS_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_RP_PIO_STATUS_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DPC_RP_PIO_STATUS_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_RP_PIO_STATUS_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_RP_PIO_STATUS_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DPC_RP_PIO_SYSERR_REGISTER { + pub Anonymous: PCI_EXPRESS_DPC_RP_PIO_SYSERR_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_RP_PIO_SYSERR_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_RP_PIO_SYSERR_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DPC_RP_PIO_SYSERR_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_RP_PIO_SYSERR_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_RP_PIO_SYSERR_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DPC_RP_PIO_TLPPREFIXLOG_REGISTER { + pub PioTlpPrefixLogRegister: [u32; 4], +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_RP_PIO_TLPPREFIXLOG_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_RP_PIO_TLPPREFIXLOG_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_DPC_STATUS_REGISTER { + pub Anonymous: PCI_EXPRESS_DPC_STATUS_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_STATUS_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_STATUS_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_DPC_STATUS_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_DPC_STATUS_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_DPC_STATUS_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER { + pub CapabilityID: u16, + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER {} +impl ::core::clone::Clone for PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_ERROR_SOURCE_ID { + pub Anonymous: PCI_EXPRESS_ERROR_SOURCE_ID_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_ERROR_SOURCE_ID {} +impl ::core::clone::Clone for PCI_EXPRESS_ERROR_SOURCE_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ERROR_SOURCE_ID_0 { + pub _bitfield1: u16, + pub _bitfield2: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ERROR_SOURCE_ID_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_ERROR_SOURCE_ID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_EVENT_COLLECTOR_ENDPOINT_ASSOCIATION_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub AssociationBitmap: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_EVENT_COLLECTOR_ENDPOINT_ASSOCIATION_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_EVENT_COLLECTOR_ENDPOINT_ASSOCIATION_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_L1_PM_SS_CAPABILITIES_REGISTER { + pub Anonymous: PCI_EXPRESS_L1_PM_SS_CAPABILITIES_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_L1_PM_SS_CAPABILITIES_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_L1_PM_SS_CAPABILITIES_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_L1_PM_SS_CAPABILITIES_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_L1_PM_SS_CAPABILITIES_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_L1_PM_SS_CAPABILITIES_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_L1_PM_SS_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub L1PmSsCapabilities: PCI_EXPRESS_L1_PM_SS_CAPABILITIES_REGISTER, + pub L1PmSsControl1: PCI_EXPRESS_L1_PM_SS_CONTROL_1_REGISTER, + pub L1PmSsControl2: PCI_EXPRESS_L1_PM_SS_CONTROL_2_REGISTER, +} +impl ::core::marker::Copy for PCI_EXPRESS_L1_PM_SS_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_L1_PM_SS_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_L1_PM_SS_CONTROL_1_REGISTER { + pub Anonymous: PCI_EXPRESS_L1_PM_SS_CONTROL_1_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_L1_PM_SS_CONTROL_1_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_L1_PM_SS_CONTROL_1_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_L1_PM_SS_CONTROL_1_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_L1_PM_SS_CONTROL_1_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_L1_PM_SS_CONTROL_1_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_L1_PM_SS_CONTROL_2_REGISTER { + pub Anonymous: PCI_EXPRESS_L1_PM_SS_CONTROL_2_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_L1_PM_SS_CONTROL_2_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_L1_PM_SS_CONTROL_2_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_L1_PM_SS_CONTROL_2_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_L1_PM_SS_CONTROL_2_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_L1_PM_SS_CONTROL_2_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_LANE_ERROR_STATUS { + pub LaneBitmap: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_LANE_ERROR_STATUS {} +impl ::core::clone::Clone for PCI_EXPRESS_LANE_ERROR_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_LINK_CAPABILITIES_2_REGISTER { + pub Anonymous: PCI_EXPRESS_LINK_CAPABILITIES_2_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_CAPABILITIES_2_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_CAPABILITIES_2_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_LINK_CAPABILITIES_2_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_CAPABILITIES_2_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_CAPABILITIES_2_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_LINK_CAPABILITIES_REGISTER { + pub Anonymous: PCI_EXPRESS_LINK_CAPABILITIES_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_CAPABILITIES_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_CAPABILITIES_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_LINK_CAPABILITIES_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_CAPABILITIES_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_CAPABILITIES_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_LINK_CONTROL3 { + pub Anonymous: PCI_EXPRESS_LINK_CONTROL3_0, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_CONTROL3 {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_CONTROL3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_LINK_CONTROL3_0 { + pub Anonymous: PCI_EXPRESS_LINK_CONTROL3_0_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_CONTROL3_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_CONTROL3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_LINK_CONTROL3_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_CONTROL3_0_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_CONTROL3_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_LINK_CONTROL_2_REGISTER { + pub Anonymous: PCI_EXPRESS_LINK_CONTROL_2_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_CONTROL_2_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_CONTROL_2_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_LINK_CONTROL_2_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_CONTROL_2_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_CONTROL_2_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_LINK_CONTROL_REGISTER { + pub Anonymous: PCI_EXPRESS_LINK_CONTROL_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_LINK_CONTROL_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PCI_EXPRESS_LINK_QUIESCENT_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub PciExpressEnterLinkQuiescentMode: PPCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE, + pub PciExpressExitLinkQuiescentMode: PPCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PCI_EXPRESS_LINK_QUIESCENT_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PCI_EXPRESS_LINK_QUIESCENT_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_LINK_STATUS_2_REGISTER { + pub Anonymous: PCI_EXPRESS_LINK_STATUS_2_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_STATUS_2_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_STATUS_2_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_LINK_STATUS_2_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_STATUS_2_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_STATUS_2_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_LINK_STATUS_REGISTER { + pub Anonymous: PCI_EXPRESS_LINK_STATUS_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_STATUS_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_STATUS_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_LINK_STATUS_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_LINK_STATUS_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_LINK_STATUS_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_LTR_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub Latency: PCI_EXPRESS_LTR_MAX_LATENCY_REGISTER, +} +impl ::core::marker::Copy for PCI_EXPRESS_LTR_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_LTR_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_LTR_MAX_LATENCY_REGISTER { + pub Anonymous: PCI_EXPRESS_LTR_MAX_LATENCY_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_LTR_MAX_LATENCY_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_LTR_MAX_LATENCY_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_LTR_MAX_LATENCY_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_LTR_MAX_LATENCY_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_LTR_MAX_LATENCY_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_NPEM_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub Capability: PCI_EXPRESS_NPEM_CAPABILITY_REGISTER, + pub Control: PCI_EXPRESS_NPEM_CONTROL_REGISTER, + pub Status: PCI_EXPRESS_NPEM_STATUS_REGISTER, +} +impl ::core::marker::Copy for PCI_EXPRESS_NPEM_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_NPEM_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_NPEM_CAPABILITY_REGISTER { + pub Anonymous: PCI_EXPRESS_NPEM_CAPABILITY_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_NPEM_CAPABILITY_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_NPEM_CAPABILITY_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_NPEM_CAPABILITY_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_NPEM_CAPABILITY_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_NPEM_CAPABILITY_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_NPEM_CONTROL_REGISTER { + pub Anonymous: PCI_EXPRESS_NPEM_CONTROL_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_NPEM_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_NPEM_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_NPEM_CONTROL_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_NPEM_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_NPEM_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_NPEM_STATUS_REGISTER { + pub Anonymous: PCI_EXPRESS_NPEM_STATUS_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_NPEM_STATUS_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_NPEM_STATUS_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_NPEM_STATUS_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_NPEM_STATUS_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_NPEM_STATUS_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_PASID_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub Capability: PCI_EXPRESS_PASID_CAPABILITY_REGISTER, + pub Control: PCI_EXPRESS_PASID_CONTROL_REGISTER, +} +impl ::core::marker::Copy for PCI_EXPRESS_PASID_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_PASID_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_PASID_CAPABILITY_REGISTER { + pub Anonymous: PCI_EXPRESS_PASID_CAPABILITY_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_PASID_CAPABILITY_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_PASID_CAPABILITY_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_PASID_CAPABILITY_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_PASID_CAPABILITY_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_PASID_CAPABILITY_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_PASID_CONTROL_REGISTER { + pub Anonymous: PCI_EXPRESS_PASID_CONTROL_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_PASID_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_PASID_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_PASID_CONTROL_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_PASID_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_PASID_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_PME_REQUESTOR_ID { + pub Anonymous: PCI_EXPRESS_PME_REQUESTOR_ID_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_PME_REQUESTOR_ID {} +impl ::core::clone::Clone for PCI_EXPRESS_PME_REQUESTOR_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_PME_REQUESTOR_ID_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_PME_REQUESTOR_ID_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_PME_REQUESTOR_ID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_PRI_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub Control: PCI_EXPRESS_PRI_CONTROL_REGISTER, + pub Status: PCI_EXPRESS_PRI_STATUS_REGISTER, + pub PRCapacity: u32, + pub PRAllocation: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_PRI_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_PRI_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_PRI_CONTROL_REGISTER { + pub Anonymous: PCI_EXPRESS_PRI_CONTROL_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_PRI_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_PRI_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_PRI_CONTROL_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_PRI_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_PRI_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_PRI_STATUS_REGISTER { + pub Anonymous: PCI_EXPRESS_PRI_STATUS_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_PRI_STATUS_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_PRI_STATUS_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_PRI_STATUS_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_PRI_STATUS_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_PRI_STATUS_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_PTM_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub PtmCapability: PCI_EXPRESS_PTM_CAPABILITY_REGISTER, + pub PtmControl: PCI_EXPRESS_PTM_CONTROL_REGISTER, +} +impl ::core::marker::Copy for PCI_EXPRESS_PTM_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_PTM_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_PTM_CAPABILITY_REGISTER { + pub Anonymous: PCI_EXPRESS_PTM_CAPABILITY_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_PTM_CAPABILITY_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_PTM_CAPABILITY_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_PTM_CAPABILITY_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_PTM_CAPABILITY_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_PTM_CAPABILITY_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_PTM_CONTROL_REGISTER { + pub Anonymous: PCI_EXPRESS_PTM_CONTROL_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_PTM_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_PTM_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_PTM_CONTROL_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_PTM_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_PTM_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_RESIZABLE_BAR_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub Entry: [PCI_EXPRESS_RESIZABLE_BAR_ENTRY; 6], +} +impl ::core::marker::Copy for PCI_EXPRESS_RESIZABLE_BAR_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_RESIZABLE_BAR_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_RESIZABLE_BAR_CAPABILITY_REGISTER { + pub Anonymous: PCI_EXPRESS_RESIZABLE_BAR_CAPABILITY_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_RESIZABLE_BAR_CAPABILITY_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_RESIZABLE_BAR_CAPABILITY_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_RESIZABLE_BAR_CAPABILITY_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_RESIZABLE_BAR_CAPABILITY_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_RESIZABLE_BAR_CAPABILITY_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_RESIZABLE_BAR_CONTROL_REGISTER { + pub Anonymous: PCI_EXPRESS_RESIZABLE_BAR_CONTROL_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_RESIZABLE_BAR_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_RESIZABLE_BAR_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_RESIZABLE_BAR_CONTROL_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_RESIZABLE_BAR_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_RESIZABLE_BAR_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_RESIZABLE_BAR_ENTRY { + pub Capability: PCI_EXPRESS_RESIZABLE_BAR_CAPABILITY_REGISTER, + pub Control: PCI_EXPRESS_RESIZABLE_BAR_CONTROL_REGISTER, +} +impl ::core::marker::Copy for PCI_EXPRESS_RESIZABLE_BAR_ENTRY {} +impl ::core::clone::Clone for PCI_EXPRESS_RESIZABLE_BAR_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ROOTPORT_AER_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub UncorrectableErrorStatus: PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS, + pub UncorrectableErrorMask: PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK, + pub UncorrectableErrorSeverity: PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY, + pub CorrectableErrorStatus: PCI_EXPRESS_CORRECTABLE_ERROR_STATUS, + pub CorrectableErrorMask: PCI_EXPRESS_CORRECTABLE_ERROR_MASK, + pub CapabilitiesAndControl: PCI_EXPRESS_AER_CAPABILITIES, + pub HeaderLog: [u32; 4], + pub RootErrorCommand: PCI_EXPRESS_ROOT_ERROR_COMMAND, + pub RootErrorStatus: PCI_EXPRESS_ROOT_ERROR_STATUS, + pub ErrorSourceId: PCI_EXPRESS_ERROR_SOURCE_ID, +} +impl ::core::marker::Copy for PCI_EXPRESS_ROOTPORT_AER_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_ROOTPORT_AER_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER { + pub Anonymous: PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_ROOT_CONTROL_REGISTER { + pub Anonymous: PCI_EXPRESS_ROOT_CONTROL_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ROOT_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_ROOT_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ROOT_CONTROL_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_ROOT_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_ROOT_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_ROOT_ERROR_COMMAND { + pub Anonymous: PCI_EXPRESS_ROOT_ERROR_COMMAND_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_ROOT_ERROR_COMMAND {} +impl ::core::clone::Clone for PCI_EXPRESS_ROOT_ERROR_COMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ROOT_ERROR_COMMAND_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_ROOT_ERROR_COMMAND_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_ROOT_ERROR_COMMAND_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_ROOT_ERROR_STATUS { + pub Anonymous: PCI_EXPRESS_ROOT_ERROR_STATUS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_ROOT_ERROR_STATUS {} +impl ::core::clone::Clone for PCI_EXPRESS_ROOT_ERROR_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ROOT_ERROR_STATUS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_ROOT_ERROR_STATUS_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_ROOT_ERROR_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ROOT_PORT_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub ReadConfigSpace: PPCI_EXPRESS_ROOT_PORT_READ_CONFIG_SPACE, + pub WriteConfigSpace: PPCI_EXPRESS_ROOT_PORT_WRITE_CONFIG_SPACE, +} +impl ::core::marker::Copy for PCI_EXPRESS_ROOT_PORT_INTERFACE {} +impl ::core::clone::Clone for PCI_EXPRESS_ROOT_PORT_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_ROOT_STATUS_REGISTER { + pub Anonymous: PCI_EXPRESS_ROOT_STATUS_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_ROOT_STATUS_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_ROOT_STATUS_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_ROOT_STATUS_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_ROOT_STATUS_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_ROOT_STATUS_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SECONDARY_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub LinkControl3: PCI_EXPRESS_LINK_CONTROL3, + pub LaneErrorStatus: PCI_EXPRESS_LANE_ERROR_STATUS, +} +impl ::core::marker::Copy for PCI_EXPRESS_SECONDARY_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_SECONDARY_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_SEC_AER_CAPABILITIES { + pub Anonymous: PCI_EXPRESS_SEC_AER_CAPABILITIES_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SEC_AER_CAPABILITIES {} +impl ::core::clone::Clone for PCI_EXPRESS_SEC_AER_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SEC_AER_CAPABILITIES_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SEC_AER_CAPABILITIES_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_SEC_AER_CAPABILITIES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK { + pub Anonymous: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK {} +impl ::core::clone::Clone for PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY { + pub Anonymous: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY {} +impl ::core::clone::Clone for PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS { + pub Anonymous: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS {} +impl ::core::clone::Clone for PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub LowSerialNumber: u32, + pub HighSerialNumber: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER { + pub Anonymous: PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_SLOT_CONTROL_REGISTER { + pub Anonymous: PCI_EXPRESS_SLOT_CONTROL_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_SLOT_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_SLOT_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SLOT_CONTROL_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_SLOT_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_SLOT_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_SLOT_STATUS_REGISTER { + pub Anonymous: PCI_EXPRESS_SLOT_STATUS_REGISTER_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_SLOT_STATUS_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_SLOT_STATUS_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SLOT_STATUS_REGISTER_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_SLOT_STATUS_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_SLOT_STATUS_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SRIOV_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub SRIOVCapabilities: PCI_EXPRESS_SRIOV_CAPS, + pub SRIOVControl: PCI_EXPRESS_SRIOV_CONTROL, + pub SRIOVStatus: PCI_EXPRESS_SRIOV_STATUS, + pub InitialVFs: u16, + pub TotalVFs: u16, + pub NumVFs: u16, + pub FunctionDependencyLink: u8, + pub RsvdP1: u8, + pub FirstVFOffset: u16, + pub VFStride: u16, + pub RsvdP2: u16, + pub VFDeviceId: u16, + pub SupportedPageSizes: u32, + pub SystemPageSize: u32, + pub BaseAddresses: [u32; 6], + pub VFMigrationStateArrayOffset: PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY, +} +impl ::core::marker::Copy for PCI_EXPRESS_SRIOV_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_SRIOV_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_SRIOV_CAPS { + pub Anonymous: PCI_EXPRESS_SRIOV_CAPS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SRIOV_CAPS {} +impl ::core::clone::Clone for PCI_EXPRESS_SRIOV_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SRIOV_CAPS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SRIOV_CAPS_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_SRIOV_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_SRIOV_CONTROL { + pub Anonymous: PCI_EXPRESS_SRIOV_CONTROL_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_SRIOV_CONTROL {} +impl ::core::clone::Clone for PCI_EXPRESS_SRIOV_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SRIOV_CONTROL_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_SRIOV_CONTROL_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_SRIOV_CONTROL_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY { + pub Anonymous: PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY {} +impl ::core::clone::Clone for PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_SRIOV_STATUS { + pub Anonymous: PCI_EXPRESS_SRIOV_STATUS_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_SRIOV_STATUS {} +impl ::core::clone::Clone for PCI_EXPRESS_SRIOV_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_SRIOV_STATUS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_SRIOV_STATUS_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_SRIOV_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_TPH_REQUESTER_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub RequesterCapability: PCI_EXPRESS_TPH_REQUESTER_CAPABILITY_REGISTER, + pub RequesterControl: PCI_EXPRESS_TPH_REQUESTER_CONTROL_REGISTER, +} +impl ::core::marker::Copy for PCI_EXPRESS_TPH_REQUESTER_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_TPH_REQUESTER_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_TPH_REQUESTER_CAPABILITY_REGISTER { + pub Anonymous: PCI_EXPRESS_TPH_REQUESTER_CAPABILITY_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_TPH_REQUESTER_CAPABILITY_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_TPH_REQUESTER_CAPABILITY_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_TPH_REQUESTER_CAPABILITY_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_TPH_REQUESTER_CAPABILITY_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_TPH_REQUESTER_CAPABILITY_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_TPH_REQUESTER_CONTROL_REGISTER { + pub Anonymous: PCI_EXPRESS_TPH_REQUESTER_CONTROL_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_TPH_REQUESTER_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_EXPRESS_TPH_REQUESTER_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_TPH_REQUESTER_CONTROL_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_TPH_REQUESTER_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_TPH_REQUESTER_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_TPH_ST_TABLE_ENTRY { + pub Anonymous: PCI_EXPRESS_TPH_ST_TABLE_ENTRY_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_TPH_ST_TABLE_ENTRY {} +impl ::core::clone::Clone for PCI_EXPRESS_TPH_ST_TABLE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_TPH_ST_TABLE_ENTRY_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_TPH_ST_TABLE_ENTRY_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_TPH_ST_TABLE_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK { + pub Anonymous: PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK {} +impl ::core::clone::Clone for PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY { + pub Anonymous: PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY {} +impl ::core::clone::Clone for PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS { + pub Anonymous: PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS {} +impl ::core::clone::Clone for PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS_0 {} +impl ::core::clone::Clone for PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_VENDOR_SPECIFIC_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub VsecId: u16, + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_EXPRESS_VENDOR_SPECIFIC_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_VENDOR_SPECIFIC_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_EXPRESS_VIRTUAL_CHANNEL_CAPABILITY { + pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, + pub Capabilities1: VIRTUAL_CHANNEL_CAPABILITIES1, + pub Capabilities2: VIRTUAL_CHANNEL_CAPABILITIES2, + pub Control: VIRTUAL_CHANNEL_CONTROL, + pub Status: VIRTUAL_CHANNEL_STATUS, + pub Resource: [VIRTUAL_RESOURCE; 8], +} +impl ::core::marker::Copy for PCI_EXPRESS_VIRTUAL_CHANNEL_CAPABILITY {} +impl ::core::clone::Clone for PCI_EXPRESS_VIRTUAL_CHANNEL_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_FIRMWARE_BUS_CAPS { + pub Type: u16, + pub Length: u16, + pub Anonymous: PCI_FIRMWARE_BUS_CAPS_0, + pub CurrentSpeedAndMode: u8, + pub SupportedSpeedsAndModesLowByte: u8, + pub SupportedSpeedsAndModesHighByte: u8, + pub Voltage: u8, + pub Reserved2: [u8; 7], +} +impl ::core::marker::Copy for PCI_FIRMWARE_BUS_CAPS {} +impl ::core::clone::Clone for PCI_FIRMWARE_BUS_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_FIRMWARE_BUS_CAPS_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for PCI_FIRMWARE_BUS_CAPS_0 {} +impl ::core::clone::Clone for PCI_FIRMWARE_BUS_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_FIRMWARE_BUS_CAPS_RETURN_BUFFER { + pub Version: u16, + pub Status: u16, + pub Length: u32, + pub Caps: PCI_FIRMWARE_BUS_CAPS, +} +impl ::core::marker::Copy for PCI_FIRMWARE_BUS_CAPS_RETURN_BUFFER {} +impl ::core::clone::Clone for PCI_FIRMWARE_BUS_CAPS_RETURN_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_FPB_CAPABILITIES_REGISTER { + pub Anonymous: PCI_FPB_CAPABILITIES_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_FPB_CAPABILITIES_REGISTER {} +impl ::core::clone::Clone for PCI_FPB_CAPABILITIES_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_FPB_CAPABILITIES_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_FPB_CAPABILITIES_REGISTER_0 {} +impl ::core::clone::Clone for PCI_FPB_CAPABILITIES_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_FPB_CAPABILITY { + pub Header: PCI_FPB_CAPABILITY_HEADER, + pub CapabilitiesRegister: PCI_FPB_CAPABILITIES_REGISTER, + pub RidVectorControl1Register: PCI_FPB_RID_VECTOR_CONTROL1_REGISTER, + pub RidVectorControl2Register: PCI_FPB_RID_VECTOR_CONTROL2_REGISTER, + pub MemLowVectorControlRegister: PCI_FPB_MEM_LOW_VECTOR_CONTROL_REGISTER, + pub MemHighVectorControl1Register: PCI_FPB_MEM_HIGH_VECTOR_CONTROL1_REGISTER, + pub MemHighVectorControl2Register: PCI_FPB_MEM_HIGH_VECTOR_CONTROL2_REGISTER, + pub VectorAccessControlRegister: PCI_FPB_VECTOR_ACCESS_CONTROL_REGISTER, + pub VectorAccessDataRegister: PCI_FPB_VECTOR_ACCESS_DATA_REGISTER, +} +impl ::core::marker::Copy for PCI_FPB_CAPABILITY {} +impl ::core::clone::Clone for PCI_FPB_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_FPB_CAPABILITY_HEADER { + pub Header: PCI_CAPABILITIES_HEADER, + pub Reserved: u16, +} +impl ::core::marker::Copy for PCI_FPB_CAPABILITY_HEADER {} +impl ::core::clone::Clone for PCI_FPB_CAPABILITY_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_FPB_MEM_HIGH_VECTOR_CONTROL1_REGISTER { + pub Anonymous: PCI_FPB_MEM_HIGH_VECTOR_CONTROL1_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_FPB_MEM_HIGH_VECTOR_CONTROL1_REGISTER {} +impl ::core::clone::Clone for PCI_FPB_MEM_HIGH_VECTOR_CONTROL1_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_FPB_MEM_HIGH_VECTOR_CONTROL1_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_FPB_MEM_HIGH_VECTOR_CONTROL1_REGISTER_0 {} +impl ::core::clone::Clone for PCI_FPB_MEM_HIGH_VECTOR_CONTROL1_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_FPB_MEM_HIGH_VECTOR_CONTROL2_REGISTER { + pub MemHighVectorStartUpper: u32, +} +impl ::core::marker::Copy for PCI_FPB_MEM_HIGH_VECTOR_CONTROL2_REGISTER {} +impl ::core::clone::Clone for PCI_FPB_MEM_HIGH_VECTOR_CONTROL2_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_FPB_MEM_LOW_VECTOR_CONTROL_REGISTER { + pub Anonymous: PCI_FPB_MEM_LOW_VECTOR_CONTROL_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_FPB_MEM_LOW_VECTOR_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_FPB_MEM_LOW_VECTOR_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_FPB_MEM_LOW_VECTOR_CONTROL_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_FPB_MEM_LOW_VECTOR_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_FPB_MEM_LOW_VECTOR_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_FPB_RID_VECTOR_CONTROL1_REGISTER { + pub Anonymous: PCI_FPB_RID_VECTOR_CONTROL1_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_FPB_RID_VECTOR_CONTROL1_REGISTER {} +impl ::core::clone::Clone for PCI_FPB_RID_VECTOR_CONTROL1_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_FPB_RID_VECTOR_CONTROL1_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_FPB_RID_VECTOR_CONTROL1_REGISTER_0 {} +impl ::core::clone::Clone for PCI_FPB_RID_VECTOR_CONTROL1_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_FPB_RID_VECTOR_CONTROL2_REGISTER { + pub Anonymous: PCI_FPB_RID_VECTOR_CONTROL2_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_FPB_RID_VECTOR_CONTROL2_REGISTER {} +impl ::core::clone::Clone for PCI_FPB_RID_VECTOR_CONTROL2_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_FPB_RID_VECTOR_CONTROL2_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_FPB_RID_VECTOR_CONTROL2_REGISTER_0 {} +impl ::core::clone::Clone for PCI_FPB_RID_VECTOR_CONTROL2_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_FPB_VECTOR_ACCESS_CONTROL_REGISTER { + pub Anonymous: PCI_FPB_VECTOR_ACCESS_CONTROL_REGISTER_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_FPB_VECTOR_ACCESS_CONTROL_REGISTER {} +impl ::core::clone::Clone for PCI_FPB_VECTOR_ACCESS_CONTROL_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_FPB_VECTOR_ACCESS_CONTROL_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_FPB_VECTOR_ACCESS_CONTROL_REGISTER_0 {} +impl ::core::clone::Clone for PCI_FPB_VECTOR_ACCESS_CONTROL_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_FPB_VECTOR_ACCESS_DATA_REGISTER { + pub VectorAccessData: u32, +} +impl ::core::marker::Copy for PCI_FPB_VECTOR_ACCESS_DATA_REGISTER {} +impl ::core::clone::Clone for PCI_FPB_VECTOR_ACCESS_DATA_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PCI_MSIX_TABLE_CONFIG_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub SetTableEntry: PPCI_MSIX_SET_ENTRY, + pub MaskTableEntry: PPCI_MSIX_MASKUNMASK_ENTRY, + pub UnmaskTableEntry: PPCI_MSIX_MASKUNMASK_ENTRY, + pub GetTableEntry: PPCI_MSIX_GET_ENTRY, + pub GetTableSize: PPCI_MSIX_GET_TABLE_SIZE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PCI_MSIX_TABLE_CONFIG_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PCI_MSIX_TABLE_CONFIG_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_PMC { + pub _bitfield: u8, + pub Support: PCI_PMC_0, +} +impl ::core::marker::Copy for PCI_PMC {} +impl ::core::clone::Clone for PCI_PMC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_PMC_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for PCI_PMC_0 {} +impl ::core::clone::Clone for PCI_PMC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_PMCSR { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_PMCSR {} +impl ::core::clone::Clone for PCI_PMCSR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_PMCSR_BSE { + pub _bitfield: u8, +} +impl ::core::marker::Copy for PCI_PMCSR_BSE {} +impl ::core::clone::Clone for PCI_PMCSR_BSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_PM_CAPABILITY { + pub Header: PCI_CAPABILITIES_HEADER, + pub PMC: PCI_PM_CAPABILITY_2, + pub PMCSR: PCI_PM_CAPABILITY_1, + pub PMCSR_BSE: PCI_PM_CAPABILITY_0, + pub Data: u8, +} +impl ::core::marker::Copy for PCI_PM_CAPABILITY {} +impl ::core::clone::Clone for PCI_PM_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_PM_CAPABILITY_0 { + pub BridgeSupport: PCI_PMCSR_BSE, + pub AsUCHAR: u8, +} +impl ::core::marker::Copy for PCI_PM_CAPABILITY_0 {} +impl ::core::clone::Clone for PCI_PM_CAPABILITY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_PM_CAPABILITY_1 { + pub ControlStatus: PCI_PMCSR, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_PM_CAPABILITY_1 {} +impl ::core::clone::Clone for PCI_PM_CAPABILITY_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_PM_CAPABILITY_2 { + pub Capabilities: PCI_PMC, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_PM_CAPABILITY_2 {} +impl ::core::clone::Clone for PCI_PM_CAPABILITY_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PCI_ROOT_BUS_HARDWARE_CAPABILITY { + pub SecondaryInterface: PCI_HARDWARE_INTERFACE, + pub Anonymous: PCI_ROOT_BUS_HARDWARE_CAPABILITY_0, + pub OscFeatureSupport: PCI_ROOT_BUS_OSC_SUPPORT_FIELD, + pub OscControlRequest: PCI_ROOT_BUS_OSC_CONTROL_FIELD, + pub OscControlGranted: PCI_ROOT_BUS_OSC_CONTROL_FIELD, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PCI_ROOT_BUS_HARDWARE_CAPABILITY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PCI_ROOT_BUS_HARDWARE_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PCI_ROOT_BUS_HARDWARE_CAPABILITY_0 { + pub BusCapabilitiesFound: super::super::super::Win32::Foundation::BOOLEAN, + pub CurrentSpeedAndMode: u32, + pub SupportedSpeedsAndModes: u32, + pub DeviceIDMessagingCapable: super::super::super::Win32::Foundation::BOOLEAN, + pub SecondaryBusWidth: PCI_BUS_WIDTH, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PCI_ROOT_BUS_HARDWARE_CAPABILITY_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PCI_ROOT_BUS_HARDWARE_CAPABILITY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_ROOT_BUS_OSC_CONTROL_FIELD { + pub u: PCI_ROOT_BUS_OSC_CONTROL_FIELD_0, +} +impl ::core::marker::Copy for PCI_ROOT_BUS_OSC_CONTROL_FIELD {} +impl ::core::clone::Clone for PCI_ROOT_BUS_OSC_CONTROL_FIELD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_ROOT_BUS_OSC_CONTROL_FIELD_0 { + pub Anonymous: PCI_ROOT_BUS_OSC_CONTROL_FIELD_0_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_ROOT_BUS_OSC_CONTROL_FIELD_0 {} +impl ::core::clone::Clone for PCI_ROOT_BUS_OSC_CONTROL_FIELD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_ROOT_BUS_OSC_CONTROL_FIELD_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_ROOT_BUS_OSC_CONTROL_FIELD_0_0 {} +impl ::core::clone::Clone for PCI_ROOT_BUS_OSC_CONTROL_FIELD_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_ROOT_BUS_OSC_SUPPORT_FIELD { + pub u: PCI_ROOT_BUS_OSC_SUPPORT_FIELD_0, +} +impl ::core::marker::Copy for PCI_ROOT_BUS_OSC_SUPPORT_FIELD {} +impl ::core::clone::Clone for PCI_ROOT_BUS_OSC_SUPPORT_FIELD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_ROOT_BUS_OSC_SUPPORT_FIELD_0 { + pub Anonymous: PCI_ROOT_BUS_OSC_SUPPORT_FIELD_0_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_ROOT_BUS_OSC_SUPPORT_FIELD_0 {} +impl ::core::clone::Clone for PCI_ROOT_BUS_OSC_SUPPORT_FIELD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_ROOT_BUS_OSC_SUPPORT_FIELD_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_ROOT_BUS_OSC_SUPPORT_FIELD_0_0 {} +impl ::core::clone::Clone for PCI_ROOT_BUS_OSC_SUPPORT_FIELD_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PCI_SECURITY_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub SetAccessControlServices: PPCI_SET_ACS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PCI_SECURITY_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PCI_SECURITY_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PCI_SECURITY_INTERFACE2 { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub Flags: u32, + pub SupportedScenarios: u32, + pub SetAccessControlServices: PPCI_SET_ACS2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PCI_SECURITY_INTERFACE2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PCI_SECURITY_INTERFACE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_SEGMENT_BUS_NUMBER { + pub u: PCI_SEGMENT_BUS_NUMBER_0, +} +impl ::core::marker::Copy for PCI_SEGMENT_BUS_NUMBER {} +impl ::core::clone::Clone for PCI_SEGMENT_BUS_NUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_SEGMENT_BUS_NUMBER_0 { + pub bits: PCI_SEGMENT_BUS_NUMBER_0_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_SEGMENT_BUS_NUMBER_0 {} +impl ::core::clone::Clone for PCI_SEGMENT_BUS_NUMBER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_SEGMENT_BUS_NUMBER_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_SEGMENT_BUS_NUMBER_0_0 {} +impl ::core::clone::Clone for PCI_SEGMENT_BUS_NUMBER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_SLOT_NUMBER { + pub u: PCI_SLOT_NUMBER_0, +} +impl ::core::marker::Copy for PCI_SLOT_NUMBER {} +impl ::core::clone::Clone for PCI_SLOT_NUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_SLOT_NUMBER_0 { + pub bits: PCI_SLOT_NUMBER_0_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_SLOT_NUMBER_0 {} +impl ::core::clone::Clone for PCI_SLOT_NUMBER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_SLOT_NUMBER_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_SLOT_NUMBER_0_0 {} +impl ::core::clone::Clone for PCI_SLOT_NUMBER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_SUBSYSTEM_IDS_CAPABILITY { + pub Header: PCI_CAPABILITIES_HEADER, + pub Reserved: u16, + pub SubVendorID: u16, + pub SubSystemID: u16, +} +impl ::core::marker::Copy for PCI_SUBSYSTEM_IDS_CAPABILITY {} +impl ::core::clone::Clone for PCI_SUBSYSTEM_IDS_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_VENDOR_SPECIFIC_CAPABILITY { + pub Header: PCI_CAPABILITIES_HEADER, + pub VscLength: u8, + pub VendorSpecific: u8, +} +impl ::core::marker::Copy for PCI_VENDOR_SPECIFIC_CAPABILITY {} +impl ::core::clone::Clone for PCI_VENDOR_SPECIFIC_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PCI_VIRTUALIZATION_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub SetVirtualFunctionData: PSET_VIRTUAL_DEVICE_DATA, + pub GetVirtualFunctionData: PGET_VIRTUAL_DEVICE_DATA, + pub GetLocation: PGET_VIRTUAL_DEVICE_LOCATION, + pub GetResources: PGET_VIRTUAL_DEVICE_RESOURCES, + pub EnableVirtualization: PENABLE_VIRTUALIZATION, + pub GetVirtualFunctionProbedBars: PGET_VIRTUAL_FUNCTION_PROBED_BARS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PCI_VIRTUALIZATION_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PCI_VIRTUALIZATION_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_X_CAPABILITY { + pub Header: PCI_CAPABILITIES_HEADER, + pub Command: PCI_X_CAPABILITY_0, + pub Status: PCI_X_CAPABILITY_1, +} +impl ::core::marker::Copy for PCI_X_CAPABILITY {} +impl ::core::clone::Clone for PCI_X_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_X_CAPABILITY_0 { + pub bits: PCI_X_CAPABILITY_0_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for PCI_X_CAPABILITY_0 {} +impl ::core::clone::Clone for PCI_X_CAPABILITY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_X_CAPABILITY_0_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PCI_X_CAPABILITY_0_0 {} +impl ::core::clone::Clone for PCI_X_CAPABILITY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PCI_X_CAPABILITY_1 { + pub bits: PCI_X_CAPABILITY_1_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for PCI_X_CAPABILITY_1 {} +impl ::core::clone::Clone for PCI_X_CAPABILITY_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCI_X_CAPABILITY_1_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PCI_X_CAPABILITY_1_0 {} +impl ::core::clone::Clone for PCI_X_CAPABILITY_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union PCW_CALLBACK_INFORMATION { + pub AddCounter: PCW_COUNTER_INFORMATION, + pub RemoveCounter: PCW_COUNTER_INFORMATION, + pub EnumerateInstances: PCW_MASK_INFORMATION, + pub CollectData: PCW_MASK_INFORMATION, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for PCW_CALLBACK_INFORMATION {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for PCW_CALLBACK_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCW_COUNTER_DESCRIPTOR { + pub Id: u16, + pub StructIndex: u16, + pub Offset: u16, + pub Size: u16, +} +impl ::core::marker::Copy for PCW_COUNTER_DESCRIPTOR {} +impl ::core::clone::Clone for PCW_COUNTER_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PCW_COUNTER_INFORMATION { + pub CounterMask: u64, + pub InstanceMask: *mut super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PCW_COUNTER_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PCW_COUNTER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PCW_DATA { + pub Data: *const ::core::ffi::c_void, + pub Size: u32, +} +impl ::core::marker::Copy for PCW_DATA {} +impl ::core::clone::Clone for PCW_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct PCW_MASK_INFORMATION { + pub CounterMask: u64, + pub InstanceMask: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub InstanceId: u32, + pub CollectMultiple: super::super::super::Win32::Foundation::BOOLEAN, + pub Buffer: super::super::Foundation::PPCW_BUFFER, + pub CancelEvent: *mut super::super::Foundation::KEVENT, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for PCW_MASK_INFORMATION {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for PCW_MASK_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PCW_REGISTRATION_INFORMATION { + pub Version: u32, + pub Name: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub CounterCount: u32, + pub Counters: *mut PCW_COUNTER_DESCRIPTOR, + pub Callback: PPCW_CALLBACK, + pub CallbackContext: *mut ::core::ffi::c_void, + pub Flags: PCW_REGISTRATION_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PCW_REGISTRATION_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PCW_REGISTRATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PHYSICAL_COUNTER_EVENT_BUFFER_CONFIGURATION { + pub OverflowHandler: PPHYSICAL_COUNTER_EVENT_BUFFER_OVERFLOW_HANDLER, + pub CustomEventBufferEntrySize: u32, + pub EventThreshold: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PHYSICAL_COUNTER_EVENT_BUFFER_CONFIGURATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PHYSICAL_COUNTER_EVENT_BUFFER_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR { + pub Type: PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE, + pub Flags: u32, + pub u: PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_0 { + pub CounterIndex: u32, + pub Range: PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_0_0, + pub OverflowHandler: PPHYSICAL_COUNTER_OVERFLOW_HANDLER, + pub EventBufferConfiguration: PHYSICAL_COUNTER_EVENT_BUFFER_CONFIGURATION, + pub IdentificationTag: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_0_0 { + pub Begin: u32, + pub End: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PHYSICAL_COUNTER_RESOURCE_LIST { + pub Count: u32, + pub Descriptors: [PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PHYSICAL_COUNTER_RESOURCE_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PHYSICAL_COUNTER_RESOURCE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL_MEMORY_RANGE { + pub BaseAddress: i64, + pub NumberOfBytes: i64, +} +impl ::core::marker::Copy for PHYSICAL_MEMORY_RANGE {} +impl ::core::clone::Clone for PHYSICAL_MEMORY_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PLUGPLAY_NOTIFICATION_HEADER { + pub Version: u16, + pub Size: u16, + pub Event: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for PLUGPLAY_NOTIFICATION_HEADER {} +impl ::core::clone::Clone for PLUGPLAY_NOTIFICATION_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PM_DISPATCH_TABLE { + pub Signature: u32, + pub Version: u32, + pub Function: [*mut ::core::ffi::c_void; 1], +} +impl ::core::marker::Copy for PM_DISPATCH_TABLE {} +impl ::core::clone::Clone for PM_DISPATCH_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PNP_BUS_INFORMATION { + pub BusTypeGuid: ::windows_sys::core::GUID, + pub LegacyBusType: INTERFACE_TYPE, + pub BusNumber: u32, +} +impl ::core::marker::Copy for PNP_BUS_INFORMATION {} +impl ::core::clone::Clone for PNP_BUS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PNP_EXTENDED_ADDRESS_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub QueryExtendedAddress: PQUERYEXTENDEDADDRESS, +} +impl ::core::marker::Copy for PNP_EXTENDED_ADDRESS_INTERFACE {} +impl ::core::clone::Clone for PNP_EXTENDED_ADDRESS_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PNP_LOCATION_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub GetLocationString: PGET_LOCATION_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PNP_LOCATION_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PNP_LOCATION_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PNP_REPLACE_DRIVER_INTERFACE { + pub Size: u32, + pub Version: u32, + pub Flags: u32, + pub Unload: PREPLACE_UNLOAD, + pub BeginReplace: PREPLACE_BEGIN, + pub EndReplace: PREPLACE_END, + pub MirrorPhysicalMemory: PREPLACE_MIRROR_PHYSICAL_MEMORY, + pub SetProcessorId: PREPLACE_SET_PROCESSOR_ID, + pub Swap: PREPLACE_SWAP, + pub InitiateHardwareMirror: PREPLACE_INITIATE_HARDWARE_MIRROR, + pub MirrorPlatformMemory: PREPLACE_MIRROR_PLATFORM_MEMORY, + pub GetMemoryDestination: PREPLACE_GET_MEMORY_DESTINATION, + pub EnableDisableHardwareQuiesce: PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PNP_REPLACE_DRIVER_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PNP_REPLACE_DRIVER_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PNP_REPLACE_MEMORY_LIST { + pub AllocatedCount: u32, + pub Count: u32, + pub TotalLength: u64, + pub Ranges: [PNP_REPLACE_MEMORY_LIST_0; 1], +} +impl ::core::marker::Copy for PNP_REPLACE_MEMORY_LIST {} +impl ::core::clone::Clone for PNP_REPLACE_MEMORY_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PNP_REPLACE_MEMORY_LIST_0 { + pub Address: i64, + pub Length: u64, +} +impl ::core::marker::Copy for PNP_REPLACE_MEMORY_LIST_0 {} +impl ::core::clone::Clone for PNP_REPLACE_MEMORY_LIST_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PNP_REPLACE_PARAMETERS { + pub Size: u32, + pub Version: u32, + pub Target: u64, + pub Spare: u64, + pub TargetProcessors: *mut PNP_REPLACE_PROCESSOR_LIST, + pub SpareProcessors: *mut PNP_REPLACE_PROCESSOR_LIST, + pub TargetMemory: *mut PNP_REPLACE_MEMORY_LIST, + pub SpareMemory: *mut PNP_REPLACE_MEMORY_LIST, + pub MapMemory: PREPLACE_MAP_MEMORY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PNP_REPLACE_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PNP_REPLACE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PNP_REPLACE_PROCESSOR_LIST { + pub Affinity: *mut usize, + pub GroupCount: u32, + pub AllocatedCount: u32, + pub Count: u32, + pub ApicIds: [u32; 1], +} +impl ::core::marker::Copy for PNP_REPLACE_PROCESSOR_LIST {} +impl ::core::clone::Clone for PNP_REPLACE_PROCESSOR_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PNP_REPLACE_PROCESSOR_LIST_V1 { + pub AffinityMask: usize, + pub AllocatedCount: u32, + pub Count: u32, + pub ApicIds: [u32; 1], +} +impl ::core::marker::Copy for PNP_REPLACE_PROCESSOR_LIST_V1 {} +impl ::core::clone::Clone for PNP_REPLACE_PROCESSOR_LIST_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POOLED_USAGE_AND_LIMITS { + pub PeakPagedPoolUsage: usize, + pub PagedPoolUsage: usize, + pub PagedPoolLimit: usize, + pub PeakNonPagedPoolUsage: usize, + pub NonPagedPoolUsage: usize, + pub NonPagedPoolLimit: usize, + pub PeakPagefileUsage: usize, + pub PagefileUsage: usize, + pub PagefileLimit: usize, +} +impl ::core::marker::Copy for POOLED_USAGE_AND_LIMITS {} +impl ::core::clone::Clone for POOLED_USAGE_AND_LIMITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POOL_CREATE_EXTENDED_PARAMS { + pub Version: u32, +} +impl ::core::marker::Copy for POOL_CREATE_EXTENDED_PARAMS {} +impl ::core::clone::Clone for POOL_CREATE_EXTENDED_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POOL_EXTENDED_PARAMETER { + pub Anonymous1: POOL_EXTENDED_PARAMETER_0, + pub Anonymous2: POOL_EXTENDED_PARAMETER_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POOL_EXTENDED_PARAMETER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POOL_EXTENDED_PARAMETER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POOL_EXTENDED_PARAMETER_0 { + pub _bitfield: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POOL_EXTENDED_PARAMETER_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POOL_EXTENDED_PARAMETER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union POOL_EXTENDED_PARAMETER_1 { + pub Reserved2: u64, + pub Reserved3: *mut ::core::ffi::c_void, + pub Priority: EX_POOL_PRIORITY, + pub SecurePoolParams: *mut POOL_EXTENDED_PARAMS_SECURE_POOL, + pub PreferredNode: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POOL_EXTENDED_PARAMETER_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POOL_EXTENDED_PARAMETER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POOL_EXTENDED_PARAMS_SECURE_POOL { + pub SecurePoolHandle: super::super::super::Win32::Foundation::HANDLE, + pub Buffer: *mut ::core::ffi::c_void, + pub Cookie: usize, + pub SecurePoolFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POOL_EXTENDED_PARAMS_SECURE_POOL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POOL_EXTENDED_PARAMS_SECURE_POOL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POWER_MONITOR_INVOCATION { + pub Console: super::super::super::Win32::Foundation::BOOLEAN, + pub RequestReason: POWER_MONITOR_REQUEST_REASON, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POWER_MONITOR_INVOCATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POWER_MONITOR_INVOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POWER_PLATFORM_INFORMATION { + pub AoAc: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POWER_PLATFORM_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POWER_PLATFORM_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POWER_SEQUENCE { + pub SequenceD1: u32, + pub SequenceD2: u32, + pub SequenceD3: u32, +} +impl ::core::marker::Copy for POWER_SEQUENCE {} +impl ::core::clone::Clone for POWER_SEQUENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POWER_SESSION_CONNECT { + pub Connected: super::super::super::Win32::Foundation::BOOLEAN, + pub Console: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POWER_SESSION_CONNECT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POWER_SESSION_CONNECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POWER_SESSION_RIT_STATE { + pub Active: super::super::super::Win32::Foundation::BOOLEAN, + pub LastInputTime: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POWER_SESSION_RIT_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POWER_SESSION_RIT_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POWER_SESSION_TIMEOUTS { + pub InputTimeout: u32, + pub DisplayTimeout: u32, +} +impl ::core::marker::Copy for POWER_SESSION_TIMEOUTS {} +impl ::core::clone::Clone for POWER_SESSION_TIMEOUTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POWER_SESSION_WINLOGON { + pub SessionId: u32, + pub Console: super::super::super::Win32::Foundation::BOOLEAN, + pub Locked: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POWER_SESSION_WINLOGON {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POWER_SESSION_WINLOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Power\"`"] +#[cfg(feature = "Win32_System_Power")] +pub union POWER_STATE { + pub SystemState: super::super::super::Win32::System::Power::SYSTEM_POWER_STATE, + pub DeviceState: super::super::super::Win32::System::Power::DEVICE_POWER_STATE, +} +#[cfg(feature = "Win32_System_Power")] +impl ::core::marker::Copy for POWER_STATE {} +#[cfg(feature = "Win32_System_Power")] +impl ::core::clone::Clone for POWER_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POWER_THROTTLING_PROCESS_STATE { + pub Version: u32, + pub ControlMask: u32, + pub StateMask: u32, +} +impl ::core::marker::Copy for POWER_THROTTLING_PROCESS_STATE {} +impl ::core::clone::Clone for POWER_THROTTLING_PROCESS_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POWER_THROTTLING_THREAD_STATE { + pub Version: u32, + pub ControlMask: u32, + pub StateMask: u32, +} +impl ::core::marker::Copy for POWER_THROTTLING_THREAD_STATE {} +impl ::core::clone::Clone for POWER_THROTTLING_THREAD_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PO_FX_COMPONENT_IDLE_STATE { + pub TransitionLatency: u64, + pub ResidencyRequirement: u64, + pub NominalPower: u32, +} +impl ::core::marker::Copy for PO_FX_COMPONENT_IDLE_STATE {} +impl ::core::clone::Clone for PO_FX_COMPONENT_IDLE_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PO_FX_COMPONENT_PERF_INFO { + pub PerfStateSetsCount: u32, + pub PerfStateSets: [PO_FX_COMPONENT_PERF_SET; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PO_FX_COMPONENT_PERF_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PO_FX_COMPONENT_PERF_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PO_FX_COMPONENT_PERF_SET { + pub Name: super::super::super::Win32::Foundation::UNICODE_STRING, + pub Flags: u64, + pub Unit: PO_FX_PERF_STATE_UNIT, + pub Type: PO_FX_PERF_STATE_TYPE, + pub Anonymous: PO_FX_COMPONENT_PERF_SET_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PO_FX_COMPONENT_PERF_SET {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PO_FX_COMPONENT_PERF_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union PO_FX_COMPONENT_PERF_SET_0 { + pub Discrete: PO_FX_COMPONENT_PERF_SET_0_0, + pub Range: PO_FX_COMPONENT_PERF_SET_0_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PO_FX_COMPONENT_PERF_SET_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PO_FX_COMPONENT_PERF_SET_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PO_FX_COMPONENT_PERF_SET_0_0 { + pub Count: u32, + pub States: *mut PO_FX_PERF_STATE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PO_FX_COMPONENT_PERF_SET_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PO_FX_COMPONENT_PERF_SET_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PO_FX_COMPONENT_PERF_SET_0_1 { + pub Minimum: u64, + pub Maximum: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PO_FX_COMPONENT_PERF_SET_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PO_FX_COMPONENT_PERF_SET_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PO_FX_COMPONENT_V1 { + pub Id: ::windows_sys::core::GUID, + pub IdleStateCount: u32, + pub DeepestWakeableIdleState: u32, + pub IdleStates: *mut PO_FX_COMPONENT_IDLE_STATE, +} +impl ::core::marker::Copy for PO_FX_COMPONENT_V1 {} +impl ::core::clone::Clone for PO_FX_COMPONENT_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PO_FX_COMPONENT_V2 { + pub Id: ::windows_sys::core::GUID, + pub Flags: u64, + pub DeepestWakeableIdleState: u32, + pub IdleStateCount: u32, + pub IdleStates: *mut PO_FX_COMPONENT_IDLE_STATE, + pub ProviderCount: u32, + pub Providers: *mut u32, +} +impl ::core::marker::Copy for PO_FX_COMPONENT_V2 {} +impl ::core::clone::Clone for PO_FX_COMPONENT_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PO_FX_DEVICE_V1 { + pub Version: u32, + pub ComponentCount: u32, + pub ComponentActiveConditionCallback: PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK, + pub ComponentIdleConditionCallback: PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK, + pub ComponentIdleStateCallback: PPO_FX_COMPONENT_IDLE_STATE_CALLBACK, + pub DevicePowerRequiredCallback: PPO_FX_DEVICE_POWER_REQUIRED_CALLBACK, + pub DevicePowerNotRequiredCallback: PPO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK, + pub PowerControlCallback: PPO_FX_POWER_CONTROL_CALLBACK, + pub DeviceContext: *mut ::core::ffi::c_void, + pub Components: [PO_FX_COMPONENT_V1; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PO_FX_DEVICE_V1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PO_FX_DEVICE_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PO_FX_DEVICE_V2 { + pub Version: u32, + pub Flags: u64, + pub ComponentActiveConditionCallback: PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK, + pub ComponentIdleConditionCallback: PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK, + pub ComponentIdleStateCallback: PPO_FX_COMPONENT_IDLE_STATE_CALLBACK, + pub DevicePowerRequiredCallback: PPO_FX_DEVICE_POWER_REQUIRED_CALLBACK, + pub DevicePowerNotRequiredCallback: PPO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK, + pub PowerControlCallback: PPO_FX_POWER_CONTROL_CALLBACK, + pub DeviceContext: *mut ::core::ffi::c_void, + pub ComponentCount: u32, + pub Components: [PO_FX_COMPONENT_V2; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PO_FX_DEVICE_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PO_FX_DEVICE_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PO_FX_DEVICE_V3 { + pub Version: u32, + pub Flags: u64, + pub ComponentActiveConditionCallback: PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK, + pub ComponentIdleConditionCallback: PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK, + pub ComponentIdleStateCallback: PPO_FX_COMPONENT_IDLE_STATE_CALLBACK, + pub DevicePowerRequiredCallback: PPO_FX_DEVICE_POWER_REQUIRED_CALLBACK, + pub DevicePowerNotRequiredCallback: PPO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK, + pub PowerControlCallback: PPO_FX_POWER_CONTROL_CALLBACK, + pub DirectedPowerUpCallback: PPO_FX_DIRECTED_POWER_UP_CALLBACK, + pub DirectedPowerDownCallback: PPO_FX_DIRECTED_POWER_DOWN_CALLBACK, + pub DirectedFxTimeoutInSeconds: u32, + pub DeviceContext: *mut ::core::ffi::c_void, + pub ComponentCount: u32, + pub Components: [PO_FX_COMPONENT_V2; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PO_FX_DEVICE_V3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PO_FX_DEVICE_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PO_FX_PERF_STATE { + pub Value: u64, + pub Context: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for PO_FX_PERF_STATE {} +impl ::core::clone::Clone for PO_FX_PERF_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PO_FX_PERF_STATE_CHANGE { + pub Set: u32, + pub Anonymous: PO_FX_PERF_STATE_CHANGE_0, +} +impl ::core::marker::Copy for PO_FX_PERF_STATE_CHANGE {} +impl ::core::clone::Clone for PO_FX_PERF_STATE_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PO_FX_PERF_STATE_CHANGE_0 { + pub StateIndex: u32, + pub StateValue: u64, +} +impl ::core::marker::Copy for PO_FX_PERF_STATE_CHANGE_0 {} +impl ::core::clone::Clone for PO_FX_PERF_STATE_CHANGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_ACCESS_TOKEN { + pub Token: super::super::super::Win32::Foundation::HANDLE, + pub Thread: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_ACCESS_TOKEN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_ACCESS_TOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_DEVICEMAP_INFORMATION { + pub Anonymous: PROCESS_DEVICEMAP_INFORMATION_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_DEVICEMAP_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_DEVICEMAP_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union PROCESS_DEVICEMAP_INFORMATION_0 { + pub Set: PROCESS_DEVICEMAP_INFORMATION_0_1, + pub Query: PROCESS_DEVICEMAP_INFORMATION_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_DEVICEMAP_INFORMATION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_DEVICEMAP_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_DEVICEMAP_INFORMATION_0_0 { + pub DriveMap: u32, + pub DriveType: [u8; 32], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_DEVICEMAP_INFORMATION_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_DEVICEMAP_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_DEVICEMAP_INFORMATION_0_1 { + pub DirectoryHandle: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_DEVICEMAP_INFORMATION_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_DEVICEMAP_INFORMATION_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_DEVICEMAP_INFORMATION_EX { + pub Anonymous: PROCESS_DEVICEMAP_INFORMATION_EX_0, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_DEVICEMAP_INFORMATION_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_DEVICEMAP_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union PROCESS_DEVICEMAP_INFORMATION_EX_0 { + pub Set: PROCESS_DEVICEMAP_INFORMATION_EX_0_1, + pub Query: PROCESS_DEVICEMAP_INFORMATION_EX_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_DEVICEMAP_INFORMATION_EX_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_DEVICEMAP_INFORMATION_EX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_DEVICEMAP_INFORMATION_EX_0_0 { + pub DriveMap: u32, + pub DriveType: [u8; 32], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_DEVICEMAP_INFORMATION_EX_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_DEVICEMAP_INFORMATION_EX_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_DEVICEMAP_INFORMATION_EX_0_1 { + pub DirectoryHandle: super::super::super::Win32::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_DEVICEMAP_INFORMATION_EX_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_DEVICEMAP_INFORMATION_EX_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_EXCEPTION_PORT { + pub ExceptionPortHandle: super::super::super::Win32::Foundation::HANDLE, + pub StateFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_EXCEPTION_PORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_EXCEPTION_PORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_Threading"))] +pub struct PROCESS_EXTENDED_BASIC_INFORMATION { + pub Size: usize, + pub BasicInfo: super::super::super::Win32::System::Threading::PROCESS_BASIC_INFORMATION, + pub Anonymous: PROCESS_EXTENDED_BASIC_INFORMATION_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_Threading"))] +impl ::core::marker::Copy for PROCESS_EXTENDED_BASIC_INFORMATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_Threading"))] +impl ::core::clone::Clone for PROCESS_EXTENDED_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_Threading"))] +pub union PROCESS_EXTENDED_BASIC_INFORMATION_0 { + pub Flags: u32, + pub Anonymous: PROCESS_EXTENDED_BASIC_INFORMATION_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_Threading"))] +impl ::core::marker::Copy for PROCESS_EXTENDED_BASIC_INFORMATION_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_Threading"))] +impl ::core::clone::Clone for PROCESS_EXTENDED_BASIC_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_Threading"))] +pub struct PROCESS_EXTENDED_BASIC_INFORMATION_0_0 { + pub _bitfield: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_Threading"))] +impl ::core::marker::Copy for PROCESS_EXTENDED_BASIC_INFORMATION_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_Threading"))] +impl ::core::clone::Clone for PROCESS_EXTENDED_BASIC_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_HANDLE_TRACING_ENABLE { + pub Flags: u32, +} +impl ::core::marker::Copy for PROCESS_HANDLE_TRACING_ENABLE {} +impl ::core::clone::Clone for PROCESS_HANDLE_TRACING_ENABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_HANDLE_TRACING_ENABLE_EX { + pub Flags: u32, + pub TotalSlots: u32, +} +impl ::core::marker::Copy for PROCESS_HANDLE_TRACING_ENABLE_EX {} +impl ::core::clone::Clone for PROCESS_HANDLE_TRACING_ENABLE_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +pub struct PROCESS_HANDLE_TRACING_ENTRY { + pub Handle: super::super::super::Win32::Foundation::HANDLE, + pub ClientId: super::super::super::Win32::System::WindowsProgramming::CLIENT_ID, + pub Type: u32, + pub Stacks: [*mut ::core::ffi::c_void; 16], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for PROCESS_HANDLE_TRACING_ENTRY {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for PROCESS_HANDLE_TRACING_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +pub struct PROCESS_HANDLE_TRACING_QUERY { + pub Handle: super::super::super::Win32::Foundation::HANDLE, + pub TotalTraces: u32, + pub HandleTrace: [PROCESS_HANDLE_TRACING_ENTRY; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for PROCESS_HANDLE_TRACING_QUERY {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for PROCESS_HANDLE_TRACING_QUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_KEEPALIVE_COUNT_INFORMATION { + pub WakeCount: u32, + pub NoWakeCount: u32, +} +impl ::core::marker::Copy for PROCESS_KEEPALIVE_COUNT_INFORMATION {} +impl ::core::clone::Clone for PROCESS_KEEPALIVE_COUNT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MEMBERSHIP_INFORMATION { + pub ServerSiloId: u32, +} +impl ::core::marker::Copy for PROCESS_MEMBERSHIP_INFORMATION {} +impl ::core::clone::Clone for PROCESS_MEMBERSHIP_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_REVOKE_FILE_HANDLES_INFORMATION { + pub TargetDevicePath: super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_REVOKE_FILE_HANDLES_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_REVOKE_FILE_HANDLES_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_SESSION_INFORMATION { + pub SessionId: u32, +} +impl ::core::marker::Copy for PROCESS_SESSION_INFORMATION {} +impl ::core::clone::Clone for PROCESS_SESSION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_SYSCALL_PROVIDER_INFORMATION { + pub ProviderId: ::windows_sys::core::GUID, + pub Level: u8, +} +impl ::core::marker::Copy for PROCESS_SYSCALL_PROVIDER_INFORMATION {} +impl ::core::clone::Clone for PROCESS_SYSCALL_PROVIDER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_WS_WATCH_INFORMATION { + pub FaultingPc: *mut ::core::ffi::c_void, + pub FaultingVa: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for PROCESS_WS_WATCH_INFORMATION {} +impl ::core::clone::Clone for PROCESS_WS_WATCH_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct PS_CREATE_NOTIFY_INFO { + pub Size: usize, + pub Anonymous: PS_CREATE_NOTIFY_INFO_0, + pub ParentProcessId: super::super::super::Win32::Foundation::HANDLE, + pub CreatingThreadId: super::super::super::Win32::System::WindowsProgramming::CLIENT_ID, + pub FileObject: *mut super::super::Foundation::FILE_OBJECT, + pub ImageFileName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub CommandLine: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub CreationStatus: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for PS_CREATE_NOTIFY_INFO {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for PS_CREATE_NOTIFY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub union PS_CREATE_NOTIFY_INFO_0 { + pub Flags: u32, + pub Anonymous: PS_CREATE_NOTIFY_INFO_0_0, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for PS_CREATE_NOTIFY_INFO_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for PS_CREATE_NOTIFY_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct PS_CREATE_NOTIFY_INFO_0_0 { + pub _bitfield: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for PS_CREATE_NOTIFY_INFO_0_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for PS_CREATE_NOTIFY_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PTM_CONTROL_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub QueryGranularity: PPTM_DEVICE_QUERY_GRANULARITY, + pub QueryTimeSource: PPTM_DEVICE_QUERY_TIME_SOURCE, + pub Enable: PPTM_DEVICE_ENABLE, + pub Disable: PPTM_DEVICE_DISABLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PTM_CONTROL_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PTM_CONTROL_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REENUMERATE_SELF_INTERFACE_STANDARD { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub SurpriseRemoveAndReenumerateSelf: PREENUMERATE_SELF, +} +impl ::core::marker::Copy for REENUMERATE_SELF_INTERFACE_STANDARD {} +impl ::core::clone::Clone for REENUMERATE_SELF_INTERFACE_STANDARD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION {} +impl ::core::clone::Clone for REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_CREATE_KEY_INFORMATION { + pub CompleteName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub RootObject: *mut ::core::ffi::c_void, + pub ObjectType: *mut ::core::ffi::c_void, + pub CreateOptions: u32, + pub Class: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub SecurityDescriptor: *mut ::core::ffi::c_void, + pub SecurityQualityOfService: *mut ::core::ffi::c_void, + pub DesiredAccess: u32, + pub GrantedAccess: u32, + pub Disposition: *mut u32, + pub ResultObject: *mut *mut ::core::ffi::c_void, + pub CallContext: *mut ::core::ffi::c_void, + pub RootObjectContext: *mut ::core::ffi::c_void, + pub Transaction: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_CREATE_KEY_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_CREATE_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_CREATE_KEY_INFORMATION_V1 { + pub CompleteName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub RootObject: *mut ::core::ffi::c_void, + pub ObjectType: *mut ::core::ffi::c_void, + pub Options: u32, + pub Class: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub SecurityDescriptor: *mut ::core::ffi::c_void, + pub SecurityQualityOfService: *mut ::core::ffi::c_void, + pub DesiredAccess: u32, + pub GrantedAccess: u32, + pub Disposition: *mut u32, + pub ResultObject: *mut *mut ::core::ffi::c_void, + pub CallContext: *mut ::core::ffi::c_void, + pub RootObjectContext: *mut ::core::ffi::c_void, + pub Transaction: *mut ::core::ffi::c_void, + pub Version: usize, + pub RemainingName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub Wow64Flags: u32, + pub Attributes: u32, + pub CheckAccessMode: i8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_CREATE_KEY_INFORMATION_V1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_CREATE_KEY_INFORMATION_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REG_DELETE_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for REG_DELETE_KEY_INFORMATION {} +impl ::core::clone::Clone for REG_DELETE_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_DELETE_VALUE_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub ValueName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_DELETE_VALUE_KEY_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_DELETE_VALUE_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REG_ENUMERATE_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub Index: u32, + pub KeyInformationClass: KEY_INFORMATION_CLASS, + pub KeyInformation: *mut ::core::ffi::c_void, + pub Length: u32, + pub ResultLength: *mut u32, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for REG_ENUMERATE_KEY_INFORMATION {} +impl ::core::clone::Clone for REG_ENUMERATE_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REG_ENUMERATE_VALUE_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub Index: u32, + pub KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS, + pub KeyValueInformation: *mut ::core::ffi::c_void, + pub Length: u32, + pub ResultLength: *mut u32, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for REG_ENUMERATE_VALUE_KEY_INFORMATION {} +impl ::core::clone::Clone for REG_ENUMERATE_VALUE_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REG_KEY_HANDLE_CLOSE_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for REG_KEY_HANDLE_CLOSE_INFORMATION {} +impl ::core::clone::Clone for REG_KEY_HANDLE_CLOSE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_LOAD_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub KeyName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub SourceFile: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub Flags: u32, + pub TrustClassObject: *mut ::core::ffi::c_void, + pub UserEvent: *mut ::core::ffi::c_void, + pub DesiredAccess: u32, + pub RootHandle: *mut super::super::super::Win32::Foundation::HANDLE, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_LOAD_KEY_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_LOAD_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_LOAD_KEY_INFORMATION_V2 { + pub Object: *mut ::core::ffi::c_void, + pub KeyName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub SourceFile: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub Flags: u32, + pub TrustClassObject: *mut ::core::ffi::c_void, + pub UserEvent: *mut ::core::ffi::c_void, + pub DesiredAccess: u32, + pub RootHandle: *mut super::super::super::Win32::Foundation::HANDLE, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Version: usize, + pub FileAccessToken: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_LOAD_KEY_INFORMATION_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_LOAD_KEY_INFORMATION_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_POST_CREATE_KEY_INFORMATION { + pub CompleteName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub Object: *mut ::core::ffi::c_void, + pub Status: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_POST_CREATE_KEY_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_POST_CREATE_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_POST_OPERATION_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub Status: super::super::super::Win32::Foundation::NTSTATUS, + pub PreInformation: *mut ::core::ffi::c_void, + pub ReturnStatus: super::super::super::Win32::Foundation::NTSTATUS, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_POST_OPERATION_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_POST_OPERATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_PRE_CREATE_KEY_INFORMATION { + pub CompleteName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_PRE_CREATE_KEY_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_PRE_CREATE_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REG_QUERY_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub KeyInformationClass: KEY_INFORMATION_CLASS, + pub KeyInformation: *mut ::core::ffi::c_void, + pub Length: u32, + pub ResultLength: *mut u32, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for REG_QUERY_KEY_INFORMATION {} +impl ::core::clone::Clone for REG_QUERY_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub struct REG_QUERY_KEY_NAME { + pub Object: *mut ::core::ffi::c_void, + pub ObjectNameInfo: *mut super::super::Foundation::OBJECT_NAME_INFORMATION, + pub Length: u32, + pub ReturnLength: *mut u32, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for REG_QUERY_KEY_NAME {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for REG_QUERY_KEY_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct REG_QUERY_KEY_SECURITY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub SecurityInformation: *mut u32, + pub SecurityDescriptor: super::super::super::Win32::Security::PSECURITY_DESCRIPTOR, + pub Length: *mut u32, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for REG_QUERY_KEY_SECURITY_INFORMATION {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for REG_QUERY_KEY_SECURITY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_QUERY_VALUE_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub ValueName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS, + pub KeyValueInformation: *mut ::core::ffi::c_void, + pub Length: u32, + pub ResultLength: *mut u32, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_QUERY_VALUE_KEY_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_QUERY_VALUE_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_RENAME_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub NewName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_RENAME_KEY_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_RENAME_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_REPLACE_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub OldFileName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub NewFileName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_REPLACE_KEY_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_REPLACE_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_RESTORE_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub FileHandle: super::super::super::Win32::Foundation::HANDLE, + pub Flags: u32, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_RESTORE_KEY_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_RESTORE_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_SAVE_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub FileHandle: super::super::super::Win32::Foundation::HANDLE, + pub Format: u32, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_SAVE_KEY_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_SAVE_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_SAVE_MERGED_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub FileHandle: super::super::super::Win32::Foundation::HANDLE, + pub HighKeyObject: *mut ::core::ffi::c_void, + pub LowKeyObject: *mut ::core::ffi::c_void, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_SAVE_MERGED_KEY_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_SAVE_MERGED_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct REG_SET_KEY_SECURITY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub SecurityInformation: *mut u32, + pub SecurityDescriptor: super::super::super::Win32::Security::PSECURITY_DESCRIPTOR, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for REG_SET_KEY_SECURITY_INFORMATION {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for REG_SET_KEY_SECURITY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REG_SET_VALUE_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub ValueName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub TitleIndex: u32, + pub Type: u32, + pub Data: *mut ::core::ffi::c_void, + pub DataSize: u32, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REG_SET_VALUE_KEY_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REG_SET_VALUE_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REG_UNLOAD_KEY_INFORMATION { + pub Object: *mut ::core::ffi::c_void, + pub UserEvent: *mut ::core::ffi::c_void, + pub CallContext: *mut ::core::ffi::c_void, + pub ObjectContext: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for REG_UNLOAD_KEY_INFORMATION {} +impl ::core::clone::Clone for REG_UNLOAD_KEY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct RESOURCE_HASH_ENTRY { + pub ListEntry: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub Address: *mut ::core::ffi::c_void, + pub ContentionCount: u32, + pub Number: u32, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for RESOURCE_HASH_ENTRY {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for RESOURCE_HASH_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct RESOURCE_PERFORMANCE_DATA { + pub ActiveResourceCount: u32, + pub TotalResourceCount: u32, + pub ExclusiveAcquire: u32, + pub SharedFirstLevel: u32, + pub SharedSecondLevel: u32, + pub StarveFirstLevel: u32, + pub StarveSecondLevel: u32, + pub WaitForExclusive: u32, + pub OwnerTableExpands: u32, + pub MaximumTableExpand: u32, + pub HashTable: [super::super::super::Win32::System::Kernel::LIST_ENTRY; 64], +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for RESOURCE_PERFORMANCE_DATA {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for RESOURCE_PERFORMANCE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTL_AVL_TABLE { + pub BalancedRoot: RTL_BALANCED_LINKS, + pub OrderedPointer: *mut ::core::ffi::c_void, + pub WhichOrderedElement: u32, + pub NumberGenericTableElements: u32, + pub DepthOfTree: u32, + pub RestartKey: *mut RTL_BALANCED_LINKS, + pub DeleteCount: u32, + pub CompareRoutine: PRTL_AVL_COMPARE_ROUTINE, + pub AllocateRoutine: PRTL_AVL_ALLOCATE_ROUTINE, + pub FreeRoutine: PRTL_AVL_FREE_ROUTINE, + pub TableContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for RTL_AVL_TABLE {} +impl ::core::clone::Clone for RTL_AVL_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTL_BALANCED_LINKS { + pub Parent: *mut RTL_BALANCED_LINKS, + pub LeftChild: *mut RTL_BALANCED_LINKS, + pub RightChild: *mut RTL_BALANCED_LINKS, + pub Balance: u8, + pub Reserved: [u8; 3], +} +impl ::core::marker::Copy for RTL_BALANCED_LINKS {} +impl ::core::clone::Clone for RTL_BALANCED_LINKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTL_BITMAP { + pub SizeOfBitMap: u32, + pub Buffer: *mut u32, +} +impl ::core::marker::Copy for RTL_BITMAP {} +impl ::core::clone::Clone for RTL_BITMAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTL_BITMAP_RUN { + pub StartingIndex: u32, + pub NumberOfBits: u32, +} +impl ::core::marker::Copy for RTL_BITMAP_RUN {} +impl ::core::clone::Clone for RTL_BITMAP_RUN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTL_DYNAMIC_HASH_TABLE { + pub Flags: u32, + pub Shift: u32, + pub TableSize: u32, + pub Pivot: u32, + pub DivisorMask: u32, + pub NumEntries: u32, + pub NonEmptyBuckets: u32, + pub NumEnumerators: u32, + pub Directory: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for RTL_DYNAMIC_HASH_TABLE {} +impl ::core::clone::Clone for RTL_DYNAMIC_HASH_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct RTL_DYNAMIC_HASH_TABLE_CONTEXT { + pub ChainHead: *mut super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub PrevLinkage: *mut super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub Signature: usize, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for RTL_DYNAMIC_HASH_TABLE_CONTEXT {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for RTL_DYNAMIC_HASH_TABLE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct RTL_DYNAMIC_HASH_TABLE_ENTRY { + pub Linkage: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub Signature: usize, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for RTL_DYNAMIC_HASH_TABLE_ENTRY {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for RTL_DYNAMIC_HASH_TABLE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct RTL_DYNAMIC_HASH_TABLE_ENUMERATOR { + pub Anonymous: RTL_DYNAMIC_HASH_TABLE_ENUMERATOR_0, + pub ChainHead: *mut super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub BucketIndex: u32, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for RTL_DYNAMIC_HASH_TABLE_ENUMERATOR {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for RTL_DYNAMIC_HASH_TABLE_ENUMERATOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub union RTL_DYNAMIC_HASH_TABLE_ENUMERATOR_0 { + pub HashEntry: RTL_DYNAMIC_HASH_TABLE_ENTRY, + pub CurEntry: *mut super::super::super::Win32::System::Kernel::LIST_ENTRY, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for RTL_DYNAMIC_HASH_TABLE_ENUMERATOR_0 {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for RTL_DYNAMIC_HASH_TABLE_ENUMERATOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +pub struct RTL_GENERIC_TABLE { + pub TableRoot: *mut super::super::Foundation::RTL_SPLAY_LINKS, + pub InsertOrderList: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub OrderedPointer: *mut super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub WhichOrderedElement: u32, + pub NumberGenericTableElements: u32, + pub CompareRoutine: PRTL_GENERIC_COMPARE_ROUTINE, + pub AllocateRoutine: PRTL_GENERIC_ALLOCATE_ROUTINE, + pub FreeRoutine: PRTL_GENERIC_FREE_ROUTINE, + pub TableContext: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for RTL_GENERIC_TABLE {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for RTL_GENERIC_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RTL_QUERY_REGISTRY_TABLE { + pub QueryRoutine: PRTL_QUERY_REGISTRY_ROUTINE, + pub Flags: u32, + pub Name: ::windows_sys::core::PWSTR, + pub EntryContext: *mut ::core::ffi::c_void, + pub DefaultType: u32, + pub DefaultData: *mut ::core::ffi::c_void, + pub DefaultLength: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RTL_QUERY_REGISTRY_TABLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RTL_QUERY_REGISTRY_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCATTER_GATHER_ELEMENT { + pub Address: i64, + pub Length: u32, + pub Reserved: usize, +} +impl ::core::marker::Copy for SCATTER_GATHER_ELEMENT {} +impl ::core::clone::Clone for SCATTER_GATHER_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCATTER_GATHER_LIST { + pub NumberOfElements: u32, + pub Reserved: usize, + pub Elements: [SCATTER_GATHER_ELEMENT; 1], +} +impl ::core::marker::Copy for SCATTER_GATHER_LIST {} +impl ::core::clone::Clone for SCATTER_GATHER_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SDEV_IDENTIFIER_INTERFACE { + pub InterfaceHeader: INTERFACE, + pub GetIdentifier: PGET_SDEV_IDENTIFIER, +} +impl ::core::marker::Copy for SDEV_IDENTIFIER_INTERFACE {} +impl ::core::clone::Clone for SDEV_IDENTIFIER_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub struct SECURE_DRIVER_INTERFACE { + pub InterfaceHeader: INTERFACE, + pub ProcessReference: PSECURE_DRIVER_PROCESS_REFERENCE, + pub ProcessDereference: PSECURE_DRIVER_PROCESS_DEREFERENCE, + pub Reserved: u32, +} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::marker::Copy for SECURE_DRIVER_INTERFACE {} +#[cfg(feature = "Wdk_Foundation")] +impl ::core::clone::Clone for SECURE_DRIVER_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +pub type SECURITY_CONTEXT_TRACKING_MODE = u8; +#[repr(C)] +pub struct SHARE_ACCESS { + pub OpenCount: u32, + pub Readers: u32, + pub Writers: u32, + pub Deleters: u32, + pub SharedRead: u32, + pub SharedWrite: u32, + pub SharedDelete: u32, +} +impl ::core::marker::Copy for SHARE_ACCESS {} +impl ::core::clone::Clone for SHARE_ACCESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SIGNAL_REG_VALUE { + pub RegName: [u8; 32], + pub MsrAddr: u32, + pub Value: u64, +} +impl ::core::marker::Copy for SIGNAL_REG_VALUE {} +impl ::core::clone::Clone for SIGNAL_REG_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub struct SILO_MONITOR_REGISTRATION { + pub Version: u8, + pub MonitorHost: super::super::super::Win32::Foundation::BOOLEAN, + pub MonitorExistingSilos: super::super::super::Win32::Foundation::BOOLEAN, + pub Reserved: [u8; 5], + pub Anonymous: SILO_MONITOR_REGISTRATION_0, + pub CreateCallback: SILO_MONITOR_CREATE_CALLBACK, + pub TerminateCallback: SILO_MONITOR_TERMINATE_CALLBACK, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for SILO_MONITOR_REGISTRATION {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for SILO_MONITOR_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub union SILO_MONITOR_REGISTRATION_0 { + pub DriverObjectName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, + pub ComponentName: *mut super::super::super::Win32::Foundation::UNICODE_STRING, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::marker::Copy for SILO_MONITOR_REGISTRATION_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +impl ::core::clone::Clone for SILO_MONITOR_REGISTRATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOC_SUBSYSTEM_FAILURE_DETAILS { + pub SubsysType: SOC_SUBSYSTEM_TYPE, + pub FirmwareVersion: u64, + pub HardwareVersion: u64, + pub UnifiedFailureRegionSize: u32, + pub UnifiedFailureRegion: [u8; 1], +} +impl ::core::marker::Copy for SOC_SUBSYSTEM_FAILURE_DETAILS {} +impl ::core::clone::Clone for SOC_SUBSYSTEM_FAILURE_DETAILS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SYSTEM_FIRMWARE_TABLE_HANDLER { + pub ProviderSignature: u32, + pub Register: super::super::super::Win32::Foundation::BOOLEAN, + pub FirmwareTableHandler: PFNFTH, + pub DriverObject: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SYSTEM_FIRMWARE_TABLE_HANDLER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SYSTEM_FIRMWARE_TABLE_HANDLER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_FIRMWARE_TABLE_INFORMATION { + pub ProviderSignature: u32, + pub Action: SYSTEM_FIRMWARE_TABLE_ACTION, + pub TableID: u32, + pub TableBufferLength: u32, + pub TableBuffer: [u8; 1], +} +impl ::core::marker::Copy for SYSTEM_FIRMWARE_TABLE_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_FIRMWARE_TABLE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_POWER_STATE_CONTEXT { + pub Anonymous: SYSTEM_POWER_STATE_CONTEXT_0, +} +impl ::core::marker::Copy for SYSTEM_POWER_STATE_CONTEXT {} +impl ::core::clone::Clone for SYSTEM_POWER_STATE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SYSTEM_POWER_STATE_CONTEXT_0 { + pub Anonymous: SYSTEM_POWER_STATE_CONTEXT_0_0, + pub ContextAsUlong: u32, +} +impl ::core::marker::Copy for SYSTEM_POWER_STATE_CONTEXT_0 {} +impl ::core::clone::Clone for SYSTEM_POWER_STATE_CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_POWER_STATE_CONTEXT_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for SYSTEM_POWER_STATE_CONTEXT_0_0 {} +impl ::core::clone::Clone for SYSTEM_POWER_STATE_CONTEXT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct TARGET_DEVICE_REMOVAL_NOTIFICATION { + pub Version: u16, + pub Size: u16, + pub Event: ::windows_sys::core::GUID, + pub FileObject: *mut super::super::Foundation::FILE_OBJECT, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for TARGET_DEVICE_REMOVAL_NOTIFICATION {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for TARGET_DEVICE_REMOVAL_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TIMER_SET_COALESCABLE_TIMER_INFO { + pub DueTime: i64, + pub TimerApcRoutine: PTIMER_APC_ROUTINE, + pub TimerContext: *mut ::core::ffi::c_void, + pub WakeContext: *mut COUNTED_REASON_CONTEXT, + pub Period: u32, + pub TolerableDelay: u32, + pub PreviousState: *mut super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TIMER_SET_COALESCABLE_TIMER_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TIMER_SET_COALESCABLE_TIMER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TIME_FIELDS { + pub Year: i16, + pub Month: i16, + pub Day: i16, + pub Hour: i16, + pub Minute: i16, + pub Second: i16, + pub Milliseconds: i16, + pub Weekday: i16, +} +impl ::core::marker::Copy for TIME_FIELDS {} +impl ::core::clone::Clone for TIME_FIELDS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub struct TRANSLATOR_INTERFACE { + pub Size: u16, + pub Version: u16, + pub Context: *mut ::core::ffi::c_void, + pub InterfaceReference: PINTERFACE_REFERENCE, + pub InterfaceDereference: PINTERFACE_DEREFERENCE, + pub TranslateResources: PTRANSLATE_RESOURCE_HANDLER, + pub TranslateResourceRequirements: PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for TRANSLATOR_INTERFACE {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for TRANSLATOR_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXN_PARAMETER_BLOCK { + pub Length: u16, + pub TxFsContext: u16, + pub TransactionObject: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for TXN_PARAMETER_BLOCK {} +impl ::core::clone::Clone for TXN_PARAMETER_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VIRTUAL_CHANNEL_CAPABILITIES1 { + pub Anonymous: VIRTUAL_CHANNEL_CAPABILITIES1_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for VIRTUAL_CHANNEL_CAPABILITIES1 {} +impl ::core::clone::Clone for VIRTUAL_CHANNEL_CAPABILITIES1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_CHANNEL_CAPABILITIES1_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for VIRTUAL_CHANNEL_CAPABILITIES1_0 {} +impl ::core::clone::Clone for VIRTUAL_CHANNEL_CAPABILITIES1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VIRTUAL_CHANNEL_CAPABILITIES2 { + pub Anonymous: VIRTUAL_CHANNEL_CAPABILITIES2_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for VIRTUAL_CHANNEL_CAPABILITIES2 {} +impl ::core::clone::Clone for VIRTUAL_CHANNEL_CAPABILITIES2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_CHANNEL_CAPABILITIES2_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for VIRTUAL_CHANNEL_CAPABILITIES2_0 {} +impl ::core::clone::Clone for VIRTUAL_CHANNEL_CAPABILITIES2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VIRTUAL_CHANNEL_CONTROL { + pub Anonymous: VIRTUAL_CHANNEL_CONTROL_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for VIRTUAL_CHANNEL_CONTROL {} +impl ::core::clone::Clone for VIRTUAL_CHANNEL_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_CHANNEL_CONTROL_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for VIRTUAL_CHANNEL_CONTROL_0 {} +impl ::core::clone::Clone for VIRTUAL_CHANNEL_CONTROL_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VIRTUAL_CHANNEL_STATUS { + pub Anonymous: VIRTUAL_CHANNEL_STATUS_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for VIRTUAL_CHANNEL_STATUS {} +impl ::core::clone::Clone for VIRTUAL_CHANNEL_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_CHANNEL_STATUS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for VIRTUAL_CHANNEL_STATUS_0 {} +impl ::core::clone::Clone for VIRTUAL_CHANNEL_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_RESOURCE { + pub Capability: VIRTUAL_RESOURCE_CAPABILITY, + pub Control: VIRTUAL_RESOURCE_CONTROL, + pub RsvdP: u16, + pub Status: VIRTUAL_RESOURCE_STATUS, +} +impl ::core::marker::Copy for VIRTUAL_RESOURCE {} +impl ::core::clone::Clone for VIRTUAL_RESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VIRTUAL_RESOURCE_CAPABILITY { + pub Anonymous: VIRTUAL_RESOURCE_CAPABILITY_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for VIRTUAL_RESOURCE_CAPABILITY {} +impl ::core::clone::Clone for VIRTUAL_RESOURCE_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_RESOURCE_CAPABILITY_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for VIRTUAL_RESOURCE_CAPABILITY_0 {} +impl ::core::clone::Clone for VIRTUAL_RESOURCE_CAPABILITY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VIRTUAL_RESOURCE_CONTROL { + pub Anonymous: VIRTUAL_RESOURCE_CONTROL_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for VIRTUAL_RESOURCE_CONTROL {} +impl ::core::clone::Clone for VIRTUAL_RESOURCE_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_RESOURCE_CONTROL_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for VIRTUAL_RESOURCE_CONTROL_0 {} +impl ::core::clone::Clone for VIRTUAL_RESOURCE_CONTROL_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VIRTUAL_RESOURCE_STATUS { + pub Anonymous: VIRTUAL_RESOURCE_STATUS_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for VIRTUAL_RESOURCE_STATUS {} +impl ::core::clone::Clone for VIRTUAL_RESOURCE_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_RESOURCE_STATUS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for VIRTUAL_RESOURCE_STATUS_0 {} +impl ::core::clone::Clone for VIRTUAL_RESOURCE_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VM_COUNTERS { + pub PeakVirtualSize: usize, + pub VirtualSize: usize, + pub PageFaultCount: u32, + pub PeakWorkingSetSize: usize, + pub WorkingSetSize: usize, + pub QuotaPeakPagedPoolUsage: usize, + pub QuotaPagedPoolUsage: usize, + pub QuotaPeakNonPagedPoolUsage: usize, + pub QuotaNonPagedPoolUsage: usize, + pub PagefileUsage: usize, + pub PeakPagefileUsage: usize, +} +impl ::core::marker::Copy for VM_COUNTERS {} +impl ::core::clone::Clone for VM_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VM_COUNTERS_EX { + pub PeakVirtualSize: usize, + pub VirtualSize: usize, + pub PageFaultCount: u32, + pub PeakWorkingSetSize: usize, + pub WorkingSetSize: usize, + pub QuotaPeakPagedPoolUsage: usize, + pub QuotaPagedPoolUsage: usize, + pub QuotaPeakNonPagedPoolUsage: usize, + pub QuotaNonPagedPoolUsage: usize, + pub PagefileUsage: usize, + pub PeakPagefileUsage: usize, + pub PrivateUsage: usize, +} +impl ::core::marker::Copy for VM_COUNTERS_EX {} +impl ::core::clone::Clone for VM_COUNTERS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VM_COUNTERS_EX2 { + pub CountersEx: VM_COUNTERS_EX, + pub PrivateWorkingSetSize: usize, + pub SharedCommitUsage: u64, +} +impl ::core::marker::Copy for VM_COUNTERS_EX2 {} +impl ::core::clone::Clone for VM_COUNTERS_EX2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct WAIT_CONTEXT_BLOCK { + pub Anonymous: WAIT_CONTEXT_BLOCK_0, + pub DeviceRoutine: PDRIVER_CONTROL, + pub DeviceContext: *mut ::core::ffi::c_void, + pub NumberOfMapRegisters: u32, + pub DeviceObject: *mut ::core::ffi::c_void, + pub CurrentIrp: *mut ::core::ffi::c_void, + pub BufferChainingDpc: *mut super::super::Foundation::KDPC, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for WAIT_CONTEXT_BLOCK {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for WAIT_CONTEXT_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union WAIT_CONTEXT_BLOCK_0 { + pub WaitQueueEntry: KDEVICE_QUEUE_ENTRY, + pub Anonymous: WAIT_CONTEXT_BLOCK_0_0, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for WAIT_CONTEXT_BLOCK_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for WAIT_CONTEXT_BLOCK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct WAIT_CONTEXT_BLOCK_0_0 { + pub DmaWaitEntry: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub NumberOfChannels: u32, + pub _bitfield: u32, +} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for WAIT_CONTEXT_BLOCK_0_0 {} +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for WAIT_CONTEXT_BLOCK_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA128A { + pub Low: u64, + pub High: i64, +} +impl ::core::marker::Copy for WHEA128A {} +impl ::core::clone::Clone for WHEA128A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEAP_ACPI_TIMEOUT_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub TableType: [u8; 32], + pub TableRequest: [u8; 32], +} +impl ::core::marker::Copy for WHEAP_ACPI_TIMEOUT_EVENT {} +impl ::core::clone::Clone for WHEAP_ACPI_TIMEOUT_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub struct WHEAP_ADD_REMOVE_ERROR_SOURCE_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Descriptor: super::super::super::Win32::System::Diagnostics::Debug::WHEA_ERROR_SOURCE_DESCRIPTOR, + pub Status: super::super::super::Win32::Foundation::NTSTATUS, + pub IsRemove: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::marker::Copy for WHEAP_ADD_REMOVE_ERROR_SOURCE_EVENT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::clone::Clone for WHEAP_ADD_REMOVE_ERROR_SOURCE_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEAP_ATTEMPT_RECOVERY_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub ErrorHeader: WHEA_ERROR_RECORD_HEADER, + pub ArchitecturalRecovery: super::super::super::Win32::Foundation::BOOLEAN, + pub PshedRecovery: super::super::super::Win32::Foundation::BOOLEAN, + pub Status: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEAP_ATTEMPT_RECOVERY_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEAP_ATTEMPT_RECOVERY_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct WHEAP_BAD_HEST_NOTIFY_DATA_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub SourceId: u16, + pub Reserved: u16, + pub NotifyDesc: super::super::super::Win32::System::Diagnostics::Debug::WHEA_NOTIFICATION_DESCRIPTOR, +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for WHEAP_BAD_HEST_NOTIFY_DATA_EVENT {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for WHEAP_BAD_HEST_NOTIFY_DATA_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_CLEARED_POISON_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub PhysicalAddress: u64, +} +impl ::core::marker::Copy for WHEAP_CLEARED_POISON_EVENT {} +impl ::core::clone::Clone for WHEAP_CLEARED_POISON_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEAP_CMCI_IMPLEMENTED_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub CmciAvailable: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEAP_CMCI_IMPLEMENTED_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEAP_CMCI_IMPLEMENTED_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_CMCI_INITERR_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Msr: u64, + pub Type: u32, + pub Bank: u32, + pub EpIndex: u32, +} +impl ::core::marker::Copy for WHEAP_CMCI_INITERR_EVENT {} +impl ::core::clone::Clone for WHEAP_CMCI_INITERR_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_CMCI_RESTART_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub CmciRestoreAttempts: u32, + pub MaxCmciRestoreLimit: u32, + pub MaxCorrectedErrorsFound: u32, + pub MaxCorrectedErrorLimit: u32, +} +impl ::core::marker::Copy for WHEAP_CMCI_RESTART_EVENT {} +impl ::core::clone::Clone for WHEAP_CMCI_RESTART_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEAP_CREATE_GENERIC_RECORD_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Error: [u8; 32], + pub EntryCount: u32, + pub Status: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEAP_CREATE_GENERIC_RECORD_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEAP_CREATE_GENERIC_RECORD_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct WHEAP_DEFERRED_EVENT { + pub ListEntry: super::super::super::Win32::System::Kernel::LIST_ENTRY, + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for WHEAP_DEFERRED_EVENT {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for WHEAP_DEFERRED_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEAP_DEVICE_DRV_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Function: [u8; 32], +} +impl ::core::marker::Copy for WHEAP_DEVICE_DRV_EVENT {} +impl ::core::clone::Clone for WHEAP_DEVICE_DRV_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_DPC_ERROR_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub ErrType: WHEAP_DPC_ERROR_EVENT_TYPE, + pub Bus: u32, + pub Device: u32, + pub Function: u32, + pub DeviceId: u16, + pub VendorId: u16, +} +impl ::core::marker::Copy for WHEAP_DPC_ERROR_EVENT {} +impl ::core::clone::Clone for WHEAP_DPC_ERROR_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct WHEAP_DROPPED_CORRECTED_ERROR_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub ErrorSourceType: super::super::super::Win32::System::Diagnostics::Debug::WHEA_ERROR_SOURCE_TYPE, + pub ErrorSourceId: u32, +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for WHEAP_DROPPED_CORRECTED_ERROR_EVENT {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for WHEAP_DROPPED_CORRECTED_ERROR_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEAP_EDPC_ENABLED_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub eDPCEnabled: super::super::super::Win32::Foundation::BOOLEAN, + pub eDPCRecovEnabled: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEAP_EDPC_ENABLED_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEAP_EDPC_ENABLED_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_ERROR_CLEARED_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub EpIndex: u32, + pub Bank: u32, +} +impl ::core::marker::Copy for WHEAP_ERROR_CLEARED_EVENT {} +impl ::core::clone::Clone for WHEAP_ERROR_CLEARED_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_ERROR_RECORD_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Record: *mut WHEA_ERROR_RECORD, +} +impl ::core::marker::Copy for WHEAP_ERROR_RECORD_EVENT {} +impl ::core::clone::Clone for WHEAP_ERROR_RECORD_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_ERR_SRC_ARRAY_INVALID_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub ErrorSourceCount: u32, + pub ReportedLength: u32, + pub ExpectedLength: u32, +} +impl ::core::marker::Copy for WHEAP_ERR_SRC_ARRAY_INVALID_EVENT {} +impl ::core::clone::Clone for WHEAP_ERR_SRC_ARRAY_INVALID_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub struct WHEAP_ERR_SRC_INVALID_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub ErrDescriptor: super::super::super::Win32::System::Diagnostics::Debug::WHEA_ERROR_SOURCE_DESCRIPTOR, + pub Error: [u8; 32], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::marker::Copy for WHEAP_ERR_SRC_INVALID_EVENT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::clone::Clone for WHEAP_ERR_SRC_INVALID_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_FOUND_ERROR_IN_BANK_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub EpIndex: u32, + pub Bank: u32, + pub MciStatus: u64, + pub ErrorType: u32, +} +impl ::core::marker::Copy for WHEAP_FOUND_ERROR_IN_BANK_EVENT {} +impl ::core::clone::Clone for WHEAP_FOUND_ERROR_IN_BANK_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_GENERIC_ERR_MEM_MAP_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub MapReason: [u8; 32], + pub PhysicalAddress: u64, + pub Length: u64, +} +impl ::core::marker::Copy for WHEAP_GENERIC_ERR_MEM_MAP_EVENT {} +impl ::core::clone::Clone for WHEAP_GENERIC_ERR_MEM_MAP_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEAP_OSC_IMPLEMENTED { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub OscImplemented: super::super::super::Win32::Foundation::BOOLEAN, + pub DebugChecked: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEAP_OSC_IMPLEMENTED {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEAP_OSC_IMPLEMENTED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_PCIE_CONFIG_INFO { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Segment: u32, + pub Bus: u32, + pub Device: u32, + pub Function: u32, + pub Offset: u32, + pub Length: u32, + pub Value: u64, + pub Succeeded: u8, + pub Reserved: [u8; 3], +} +impl ::core::marker::Copy for WHEAP_PCIE_CONFIG_INFO {} +impl ::core::clone::Clone for WHEAP_PCIE_CONFIG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_PCIE_OVERRIDE_INFO { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Segment: u32, + pub Bus: u32, + pub Device: u32, + pub Function: u32, + pub ValidBits: u8, + pub Reserved: [u8; 3], + pub UncorrectableErrorMask: u32, + pub UncorrectableErrorSeverity: u32, + pub CorrectableErrorMask: u32, + pub CapAndControl: u32, +} +impl ::core::marker::Copy for WHEAP_PCIE_OVERRIDE_INFO {} +impl ::core::clone::Clone for WHEAP_PCIE_OVERRIDE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEAP_PCIE_READ_OVERRIDES_ERR { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub FailureReason: u32, + pub FailureStatus: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEAP_PCIE_READ_OVERRIDES_ERR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEAP_PCIE_READ_OVERRIDES_ERR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEAP_PFA_MEMORY_OFFLINED { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub DecisionType: WHEAP_PFA_OFFLINE_DECISION_TYPE, + pub ImmediateSuccess: super::super::super::Win32::Foundation::BOOLEAN, + pub Page: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEAP_PFA_MEMORY_OFFLINED {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEAP_PFA_MEMORY_OFFLINED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEAP_PFA_MEMORY_POLICY { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub RegistryKeysPresent: u32, + pub DisableOffline: super::super::super::Win32::Foundation::BOOLEAN, + pub PersistOffline: super::super::super::Win32::Foundation::BOOLEAN, + pub PfaDisabled: super::super::super::Win32::Foundation::BOOLEAN, + pub PageCount: u32, + pub ErrorThreshold: u32, + pub TimeOut: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEAP_PFA_MEMORY_POLICY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEAP_PFA_MEMORY_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_PFA_MEMORY_REMOVE_MONITOR { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub RemoveTrigger: WHEA_PFA_REMOVE_TRIGGER, + pub TimeInList: u32, + pub ErrorCount: u32, + pub Page: u32, +} +impl ::core::marker::Copy for WHEAP_PFA_MEMORY_REMOVE_MONITOR {} +impl ::core::clone::Clone for WHEAP_PFA_MEMORY_REMOVE_MONITOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEAP_PLUGIN_DEFECT_LIST_CORRUPT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, +} +impl ::core::marker::Copy for WHEAP_PLUGIN_DEFECT_LIST_CORRUPT {} +impl ::core::clone::Clone for WHEAP_PLUGIN_DEFECT_LIST_CORRUPT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEAP_PLUGIN_DEFECT_LIST_FULL_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, +} +impl ::core::marker::Copy for WHEAP_PLUGIN_DEFECT_LIST_FULL_EVENT {} +impl ::core::clone::Clone for WHEAP_PLUGIN_DEFECT_LIST_FULL_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEAP_PLUGIN_DEFECT_LIST_UEFI_VAR_FAILED { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, +} +impl ::core::marker::Copy for WHEAP_PLUGIN_DEFECT_LIST_UEFI_VAR_FAILED {} +impl ::core::clone::Clone for WHEAP_PLUGIN_DEFECT_LIST_UEFI_VAR_FAILED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEAP_PLUGIN_PFA_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub NoFurtherPfa: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEAP_PLUGIN_PFA_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEAP_PLUGIN_PFA_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEAP_PROCESS_EINJ_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Error: [u8; 32], + pub InjectionActionTableValid: super::super::super::Win32::Foundation::BOOLEAN, + pub BeginInjectionInstructionCount: u32, + pub GetTriggerErrorActionTableInstructionCount: u32, + pub SetErrorTypeInstructionCount: u32, + pub GetErrorTypeInstructionCount: u32, + pub EndOperationInstructionCount: u32, + pub ExecuteOperationInstructionCount: u32, + pub CheckBusyStatusInstructionCount: u32, + pub GetCommandStatusInstructionCount: u32, + pub SetErrorTypeWithAddressInstructionCount: u32, + pub GetExecuteOperationTimingsInstructionCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEAP_PROCESS_EINJ_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEAP_PROCESS_EINJ_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEAP_PROCESS_HEST_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Error: [u8; 32], + pub EntryType: [u8; 32], + pub EntryIndex: u32, + pub HestValid: super::super::super::Win32::Foundation::BOOLEAN, + pub CmcCount: u32, + pub MceCount: u32, + pub NmiCount: u32, + pub AerRootCount: u32, + pub AerBridgeCount: u32, + pub AerEndPointCount: u32, + pub GenericV1Count: u32, + pub GenericV2Count: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEAP_PROCESS_HEST_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEAP_PROCESS_HEST_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEAP_PSHED_INJECT_ERROR { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub ErrorType: u32, + pub Parameter1: u64, + pub Parameter2: u64, + pub Parameter3: u64, + pub Parameter4: u64, + pub InjectionStatus: super::super::super::Win32::Foundation::NTSTATUS, + pub InjectionAttempted: super::super::super::Win32::Foundation::BOOLEAN, + pub InjectionByPlugin: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEAP_PSHED_INJECT_ERROR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEAP_PSHED_INJECT_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEAP_PSHED_PLUGIN_REGISTER { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Version: u32, + pub Length: u32, + pub FunctionalAreaMask: u32, + pub Status: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEAP_PSHED_PLUGIN_REGISTER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEAP_PSHED_PLUGIN_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_ROW_FAILURE_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub LowOrderPage: u32, + pub HighOrderPage: u32, +} +impl ::core::marker::Copy for WHEAP_ROW_FAILURE_EVENT {} +impl ::core::clone::Clone for WHEAP_ROW_FAILURE_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_SPURIOUS_AER_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub ErrorSeverity: WHEA_ERROR_SEVERITY, + pub ErrorHandlerType: u32, + pub SpuriousErrorSourceId: u32, + pub RootErrorCommand: u32, + pub RootErrorStatus: u32, + pub DeviceAssociationBitmap: u32, +} +impl ::core::marker::Copy for WHEAP_SPURIOUS_AER_EVENT {} +impl ::core::clone::Clone for WHEAP_SPURIOUS_AER_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct WHEAP_STARTED_REPORT_HW_ERROR { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub ErrorPacket: *mut WHEA_ERROR_PACKET_V2, +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for WHEAP_STARTED_REPORT_HW_ERROR {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for WHEAP_STARTED_REPORT_HW_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEAP_STUCK_ERROR_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub EpIndex: u32, + pub Bank: u32, + pub MciStatus: u64, +} +impl ::core::marker::Copy for WHEAP_STUCK_ERROR_EVENT {} +impl ::core::clone::Clone for WHEAP_STUCK_ERROR_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ACPI_HEADER { + pub Signature: u32, + pub Length: u32, + pub Revision: u8, + pub Checksum: u8, + pub OemId: [u8; 6], + pub OemTableId: u64, + pub OemRevision: u32, + pub CreatorId: u32, + pub CreatorRevision: u32, +} +impl ::core::marker::Copy for WHEA_ACPI_HEADER {} +impl ::core::clone::Clone for WHEA_ACPI_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_AMD_EXTENDED_REGISTERS { + pub IPID: u64, + pub SYND: u64, + pub CONFIG: u64, + pub DESTAT: u64, + pub DEADDR: u64, + pub MISC1: u64, + pub MISC2: u64, + pub MISC3: u64, + pub MISC4: u64, + pub RasCap: u64, + pub Reserved: [u64; 14], +} +impl ::core::marker::Copy for WHEA_AMD_EXTENDED_REGISTERS {} +impl ::core::clone::Clone for WHEA_AMD_EXTENDED_REGISTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARMV8_AARCH32_GPRS { + pub R0: u32, + pub R1: u32, + pub R2: u32, + pub R3: u32, + pub R4: u32, + pub R5: u32, + pub R6: u32, + pub R7: u32, + pub R8: u32, + pub R9: u32, + pub R10: u32, + pub R11: u32, + pub R12: u32, + pub R13: u32, + pub R14: u32, + pub R15: u32, +} +impl ::core::marker::Copy for WHEA_ARMV8_AARCH32_GPRS {} +impl ::core::clone::Clone for WHEA_ARMV8_AARCH32_GPRS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARMV8_AARCH64_EL3_CSR { + pub ELR_EL3: u64, + pub ESR_EL3: u64, + pub FAR_EL3: u64, + pub MAIR_EL3: u64, + pub SCTLR_EL3: u64, + pub SP_EL3: u64, + pub SPSR_EL3: u64, + pub TCR_EL3: u64, + pub TPIDR_EL3: u64, + pub TTBR0_EL3: u64, +} +impl ::core::marker::Copy for WHEA_ARMV8_AARCH64_EL3_CSR {} +impl ::core::clone::Clone for WHEA_ARMV8_AARCH64_EL3_CSR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARMV8_AARCH64_GPRS { + pub X0: u64, + pub X1: u64, + pub X2: u64, + pub X3: u64, + pub X4: u64, + pub X5: u64, + pub X6: u64, + pub X7: u64, + pub X8: u64, + pub X9: u64, + pub X10: u64, + pub X11: u64, + pub X12: u64, + pub X13: u64, + pub X14: u64, + pub X15: u64, + pub X16: u64, + pub X17: u64, + pub X18: u64, + pub X19: u64, + pub X20: u64, + pub X21: u64, + pub X22: u64, + pub X23: u64, + pub X24: u64, + pub X25: u64, + pub X26: u64, + pub X27: u64, + pub X28: u64, + pub X29: u64, + pub X30: u64, + pub SP: u64, +} +impl ::core::marker::Copy for WHEA_ARMV8_AARCH64_GPRS {} +impl ::core::clone::Clone for WHEA_ARMV8_AARCH64_GPRS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_AARCH32_EL1_CSR { + pub DFAR: u32, + pub DFSR: u32, + pub IFAR: u32, + pub ISR: u32, + pub MAIR0: u32, + pub MAIR1: u32, + pub MIDR: u32, + pub MPIDR: u32, + pub NMRR: u32, + pub PRRR: u32, + pub SCTLR: u32, + pub SPSR: u32, + pub SPSR_abt: u32, + pub SPSR_fiq: u32, + pub SPSR_irq: u32, + pub SPSR_svc: u32, + pub SPSR_und: u32, + pub TPIDRPRW: u32, + pub TPIDRURO: u32, + pub TPIDRURW: u32, + pub TTBCR: u32, + pub TTBR0: u32, + pub TTBR1: u32, + pub DACR: u32, +} +impl ::core::marker::Copy for WHEA_ARM_AARCH32_EL1_CSR {} +impl ::core::clone::Clone for WHEA_ARM_AARCH32_EL1_CSR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_AARCH32_EL2_CSR { + pub ELR_hyp: u32, + pub HAMAIR0: u32, + pub HAMAIR1: u32, + pub HCR: u32, + pub HCR2: u32, + pub HDFAR: u32, + pub HIFAR: u32, + pub HPFAR: u32, + pub HSR: u32, + pub HTCR: u32, + pub HTPIDR: u32, + pub HTTBR: u32, + pub SPSR_hyp: u32, + pub VTCR: u32, + pub VTTBR: u32, + pub DACR32_EL2: u32, +} +impl ::core::marker::Copy for WHEA_ARM_AARCH32_EL2_CSR {} +impl ::core::clone::Clone for WHEA_ARM_AARCH32_EL2_CSR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_AARCH32_SECURE_CSR { + pub SCTLR: u32, + pub SPSR_mon: u32, +} +impl ::core::marker::Copy for WHEA_ARM_AARCH32_SECURE_CSR {} +impl ::core::clone::Clone for WHEA_ARM_AARCH32_SECURE_CSR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_AARCH64_EL1_CSR { + pub ELR_EL1: u64, + pub ESR_EL2: u64, + pub FAR_EL1: u64, + pub ISR_EL1: u64, + pub MAIR_EL1: u64, + pub MIDR_EL1: u64, + pub MPIDR_EL1: u64, + pub SCTLR_EL1: u64, + pub SP_EL0: u64, + pub SP_EL1: u64, + pub SPSR_EL1: u64, + pub TCR_EL1: u64, + pub TPIDR_EL0: u64, + pub TPIDR_EL1: u64, + pub TPIDRRO_EL0: u64, + pub TTBR0_EL1: u64, + pub TTBR1_EL1: u64, +} +impl ::core::marker::Copy for WHEA_ARM_AARCH64_EL1_CSR {} +impl ::core::clone::Clone for WHEA_ARM_AARCH64_EL1_CSR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_AARCH64_EL2_CSR { + pub ELR_EL2: u64, + pub ESR_EL2: u64, + pub FAR_EL2: u64, + pub HACR_EL2: u64, + pub HCR_EL2: u64, + pub HPFAR_EL2: u64, + pub MAIR_EL2: u64, + pub SCTLR_EL2: u64, + pub SP_EL2: u64, + pub SPSR_EL2: u64, + pub TCR_EL2: u64, + pub TPIDR_EL2: u64, + pub TTBR0_EL2: u64, + pub VTCR_EL2: u64, + pub VTTBR_EL2: u64, +} +impl ::core::marker::Copy for WHEA_ARM_AARCH64_EL2_CSR {} +impl ::core::clone::Clone for WHEA_ARM_AARCH64_EL2_CSR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_BUS_ERROR { + pub ValidationBit: WHEA_ARM_BUS_ERROR_VALID_BITS, + pub _bitfield1: u8, + pub _bitfield2: u8, + pub _bitfield3: u8, + pub _bitfield4: u16, + pub _bitfield5: u8, + pub _bitfield6: u32, +} +impl ::core::marker::Copy for WHEA_ARM_BUS_ERROR {} +impl ::core::clone::Clone for WHEA_ARM_BUS_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_ARM_BUS_ERROR_VALID_BITS { + pub Anonymous: WHEA_ARM_BUS_ERROR_VALID_BITS_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for WHEA_ARM_BUS_ERROR_VALID_BITS {} +impl ::core::clone::Clone for WHEA_ARM_BUS_ERROR_VALID_BITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_BUS_ERROR_VALID_BITS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for WHEA_ARM_BUS_ERROR_VALID_BITS_0 {} +impl ::core::clone::Clone for WHEA_ARM_BUS_ERROR_VALID_BITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_CACHE_ERROR { + pub ValidationBit: WHEA_ARM_CACHE_ERROR_VALID_BITS, + pub _bitfield1: u8, + pub _bitfield2: u8, + pub _bitfield3: u64, +} +impl ::core::marker::Copy for WHEA_ARM_CACHE_ERROR {} +impl ::core::clone::Clone for WHEA_ARM_CACHE_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_ARM_CACHE_ERROR_VALID_BITS { + pub Anonymous: WHEA_ARM_CACHE_ERROR_VALID_BITS_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for WHEA_ARM_CACHE_ERROR_VALID_BITS {} +impl ::core::clone::Clone for WHEA_ARM_CACHE_ERROR_VALID_BITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_CACHE_ERROR_VALID_BITS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for WHEA_ARM_CACHE_ERROR_VALID_BITS_0 {} +impl ::core::clone::Clone for WHEA_ARM_CACHE_ERROR_VALID_BITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_MISC_CSR { + pub MRSEncoding: u16, + pub Value: u64, +} +impl ::core::marker::Copy for WHEA_ARM_MISC_CSR {} +impl ::core::clone::Clone for WHEA_ARM_MISC_CSR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_ARM_PROCESSOR_ERROR { + pub CacheError: WHEA_ARM_CACHE_ERROR, + pub TlbError: WHEA_ARM_TLB_ERROR, + pub BusError: WHEA_ARM_BUS_ERROR, + pub AsULONGLONG: u64, +} +impl ::core::marker::Copy for WHEA_ARM_PROCESSOR_ERROR {} +impl ::core::clone::Clone for WHEA_ARM_PROCESSOR_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_PROCESSOR_ERROR_CONTEXT_INFORMATION_HEADER { + pub Version: u16, + pub RegisterContextType: u16, + pub RegisterArraySize: u32, + pub RegisterArray: [u8; 1], +} +impl ::core::marker::Copy for WHEA_ARM_PROCESSOR_ERROR_CONTEXT_INFORMATION_HEADER {} +impl ::core::clone::Clone for WHEA_ARM_PROCESSOR_ERROR_CONTEXT_INFORMATION_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_ARM_PROCESSOR_ERROR_CONTEXT_INFORMATION_HEADER_FLAGS { + pub Anonymous: WHEA_ARM_PROCESSOR_ERROR_CONTEXT_INFORMATION_HEADER_FLAGS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_ARM_PROCESSOR_ERROR_CONTEXT_INFORMATION_HEADER_FLAGS {} +impl ::core::clone::Clone for WHEA_ARM_PROCESSOR_ERROR_CONTEXT_INFORMATION_HEADER_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_PROCESSOR_ERROR_CONTEXT_INFORMATION_HEADER_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHEA_ARM_PROCESSOR_ERROR_CONTEXT_INFORMATION_HEADER_FLAGS_0 {} +impl ::core::clone::Clone for WHEA_ARM_PROCESSOR_ERROR_CONTEXT_INFORMATION_HEADER_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_PROCESSOR_ERROR_INFORMATION { + pub Version: u8, + pub Length: u8, + pub ValidationBit: WHEA_ARM_PROCESSOR_ERROR_INFORMATION_VALID_BITS, + pub Type: u8, + pub MultipleError: u16, + pub Flags: u8, + pub ErrorInformation: u64, + pub VirtualFaultAddress: u64, + pub PhysicalFaultAddress: u64, +} +impl ::core::marker::Copy for WHEA_ARM_PROCESSOR_ERROR_INFORMATION {} +impl ::core::clone::Clone for WHEA_ARM_PROCESSOR_ERROR_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_ARM_PROCESSOR_ERROR_INFORMATION_VALID_BITS { + pub Anonymous: WHEA_ARM_PROCESSOR_ERROR_INFORMATION_VALID_BITS_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for WHEA_ARM_PROCESSOR_ERROR_INFORMATION_VALID_BITS {} +impl ::core::clone::Clone for WHEA_ARM_PROCESSOR_ERROR_INFORMATION_VALID_BITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_PROCESSOR_ERROR_INFORMATION_VALID_BITS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for WHEA_ARM_PROCESSOR_ERROR_INFORMATION_VALID_BITS_0 {} +impl ::core::clone::Clone for WHEA_ARM_PROCESSOR_ERROR_INFORMATION_VALID_BITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_PROCESSOR_ERROR_SECTION { + pub ValidBits: WHEA_ARM_PROCESSOR_ERROR_SECTION_VALID_BITS, + pub ErrorInformationStructures: u16, + pub ContextInformationStructures: u16, + pub SectionLength: u32, + pub ErrorAffinityLevel: u8, + pub Reserved: [u8; 3], + pub MPIDR_EL1: u64, + pub MIDR_EL1: u64, + pub RunningState: u32, + pub PSCIState: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for WHEA_ARM_PROCESSOR_ERROR_SECTION {} +impl ::core::clone::Clone for WHEA_ARM_PROCESSOR_ERROR_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_ARM_PROCESSOR_ERROR_SECTION_VALID_BITS { + pub Anonymous: WHEA_ARM_PROCESSOR_ERROR_SECTION_VALID_BITS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_ARM_PROCESSOR_ERROR_SECTION_VALID_BITS {} +impl ::core::clone::Clone for WHEA_ARM_PROCESSOR_ERROR_SECTION_VALID_BITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_PROCESSOR_ERROR_SECTION_VALID_BITS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHEA_ARM_PROCESSOR_ERROR_SECTION_VALID_BITS_0 {} +impl ::core::clone::Clone for WHEA_ARM_PROCESSOR_ERROR_SECTION_VALID_BITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_TLB_ERROR { + pub ValidationBit: WHEA_ARM_TLB_ERROR_VALID_BITS, + pub _bitfield1: u8, + pub _bitfield2: u8, + pub _bitfield3: u64, +} +impl ::core::marker::Copy for WHEA_ARM_TLB_ERROR {} +impl ::core::clone::Clone for WHEA_ARM_TLB_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_ARM_TLB_ERROR_VALID_BITS { + pub Anonymous: WHEA_ARM_TLB_ERROR_VALID_BITS_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for WHEA_ARM_TLB_ERROR_VALID_BITS {} +impl ::core::clone::Clone for WHEA_ARM_TLB_ERROR_VALID_BITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ARM_TLB_ERROR_VALID_BITS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for WHEA_ARM_TLB_ERROR_VALID_BITS_0 {} +impl ::core::clone::Clone for WHEA_ARM_TLB_ERROR_VALID_BITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_AZCC_ROOT_BUS_ERR_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub MaxBusCountPassed: super::super::super::Win32::Foundation::BOOLEAN, + pub InvalidBusMSR: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_AZCC_ROOT_BUS_ERR_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_AZCC_ROOT_BUS_ERR_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_AZCC_ROOT_BUS_LIST_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub RootBusCount: u32, + pub RootBuses: [u32; 8], +} +impl ::core::marker::Copy for WHEA_AZCC_ROOT_BUS_LIST_EVENT {} +impl ::core::clone::Clone for WHEA_AZCC_ROOT_BUS_LIST_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_AZCC_SET_POISON_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Bus: u32, + pub ReadSuccess: super::super::super::Win32::Foundation::BOOLEAN, + pub WriteSuccess: super::super::super::Win32::Foundation::BOOLEAN, + pub IsEnable: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_AZCC_SET_POISON_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_AZCC_SET_POISON_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHEA_ERROR_INJECTION_CAPABILITIES { + pub Anonymous: WHEA_ERROR_INJECTION_CAPABILITIES_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_ERROR_INJECTION_CAPABILITIES {} +impl ::core::clone::Clone for WHEA_ERROR_INJECTION_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_ERROR_INJECTION_CAPABILITIES_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHEA_ERROR_INJECTION_CAPABILITIES_0 {} +impl ::core::clone::Clone for WHEA_ERROR_INJECTION_CAPABILITIES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_ERROR_PACKET_FLAGS { + pub Anonymous: WHEA_ERROR_PACKET_FLAGS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_ERROR_PACKET_FLAGS {} +impl ::core::clone::Clone for WHEA_ERROR_PACKET_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ERROR_PACKET_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHEA_ERROR_PACKET_FLAGS_0 {} +impl ::core::clone::Clone for WHEA_ERROR_PACKET_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct WHEA_ERROR_PACKET_V1 { + pub Signature: u32, + pub Flags: WHEA_ERROR_PACKET_FLAGS, + pub Size: u32, + pub RawDataLength: u32, + pub Reserved1: u64, + pub Context: u64, + pub ErrorType: WHEA_ERROR_TYPE, + pub ErrorSeverity: WHEA_ERROR_SEVERITY, + pub ErrorSourceId: u32, + pub ErrorSourceType: super::super::super::Win32::System::Diagnostics::Debug::WHEA_ERROR_SOURCE_TYPE, + pub Reserved2: u32, + pub Version: u32, + pub Cpu: u64, + pub u: WHEA_ERROR_PACKET_V1_0, + pub RawDataFormat: WHEA_RAW_DATA_FORMAT, + pub RawDataOffset: u32, + pub RawData: [u8; 1], +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for WHEA_ERROR_PACKET_V1 {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for WHEA_ERROR_PACKET_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub union WHEA_ERROR_PACKET_V1_0 { + pub ProcessorError: WHEA_PROCESSOR_GENERIC_ERROR_SECTION, + pub MemoryError: WHEA_MEMORY_ERROR_SECTION, + pub NmiError: WHEA_NMI_ERROR_SECTION, + pub PciExpressError: WHEA_PCIEXPRESS_ERROR_SECTION, + pub PciXBusError: WHEA_PCIXBUS_ERROR_SECTION, + pub PciXDeviceError: WHEA_PCIXDEVICE_ERROR_SECTION, + pub PmemError: WHEA_PMEM_ERROR_SECTION, +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for WHEA_ERROR_PACKET_V1_0 {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for WHEA_ERROR_PACKET_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct WHEA_ERROR_PACKET_V2 { + pub Signature: u32, + pub Version: u32, + pub Length: u32, + pub Flags: WHEA_ERROR_PACKET_FLAGS, + pub ErrorType: WHEA_ERROR_TYPE, + pub ErrorSeverity: WHEA_ERROR_SEVERITY, + pub ErrorSourceId: u32, + pub ErrorSourceType: super::super::super::Win32::System::Diagnostics::Debug::WHEA_ERROR_SOURCE_TYPE, + pub NotifyType: ::windows_sys::core::GUID, + pub Context: u64, + pub DataFormat: WHEA_ERROR_PACKET_DATA_FORMAT, + pub Reserved1: u32, + pub DataOffset: u32, + pub DataLength: u32, + pub PshedDataOffset: u32, + pub PshedDataLength: u32, +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for WHEA_ERROR_PACKET_V2 {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for WHEA_ERROR_PACKET_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_ERROR_RECORD { + pub Header: WHEA_ERROR_RECORD_HEADER, + pub SectionDescriptor: [WHEA_ERROR_RECORD_SECTION_DESCRIPTOR; 1], +} +impl ::core::marker::Copy for WHEA_ERROR_RECORD {} +impl ::core::clone::Clone for WHEA_ERROR_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ERROR_RECORD_HEADER { + pub Signature: u32, + pub Revision: WHEA_REVISION, + pub SignatureEnd: u32, + pub SectionCount: u16, + pub Severity: WHEA_ERROR_SEVERITY, + pub ValidBits: WHEA_ERROR_RECORD_HEADER_VALIDBITS, + pub Length: u32, + pub Timestamp: WHEA_TIMESTAMP, + pub PlatformId: ::windows_sys::core::GUID, + pub PartitionId: ::windows_sys::core::GUID, + pub CreatorId: ::windows_sys::core::GUID, + pub NotifyType: ::windows_sys::core::GUID, + pub RecordId: u64, + pub Flags: WHEA_ERROR_RECORD_HEADER_FLAGS, + pub PersistenceInfo: WHEA_PERSISTENCE_INFO, + pub Anonymous: WHEA_ERROR_RECORD_HEADER_0, +} +impl ::core::marker::Copy for WHEA_ERROR_RECORD_HEADER {} +impl ::core::clone::Clone for WHEA_ERROR_RECORD_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHEA_ERROR_RECORD_HEADER_0 { + pub Anonymous: WHEA_ERROR_RECORD_HEADER_0_0, + pub Reserved: [u8; 12], +} +impl ::core::marker::Copy for WHEA_ERROR_RECORD_HEADER_0 {} +impl ::core::clone::Clone for WHEA_ERROR_RECORD_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ERROR_RECORD_HEADER_0_0 { + pub OsBuildNumber: u32, + pub Reserved2: [u8; 8], +} +impl ::core::marker::Copy for WHEA_ERROR_RECORD_HEADER_0_0 {} +impl ::core::clone::Clone for WHEA_ERROR_RECORD_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_ERROR_RECORD_HEADER_FLAGS { + pub Anonymous: WHEA_ERROR_RECORD_HEADER_FLAGS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_ERROR_RECORD_HEADER_FLAGS {} +impl ::core::clone::Clone for WHEA_ERROR_RECORD_HEADER_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ERROR_RECORD_HEADER_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHEA_ERROR_RECORD_HEADER_FLAGS_0 {} +impl ::core::clone::Clone for WHEA_ERROR_RECORD_HEADER_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_ERROR_RECORD_HEADER_VALIDBITS { + pub Anonymous: WHEA_ERROR_RECORD_HEADER_VALIDBITS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_ERROR_RECORD_HEADER_VALIDBITS {} +impl ::core::clone::Clone for WHEA_ERROR_RECORD_HEADER_VALIDBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ERROR_RECORD_HEADER_VALIDBITS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHEA_ERROR_RECORD_HEADER_VALIDBITS_0 {} +impl ::core::clone::Clone for WHEA_ERROR_RECORD_HEADER_VALIDBITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ERROR_RECORD_SECTION_DESCRIPTOR { + pub SectionOffset: u32, + pub SectionLength: u32, + pub Revision: WHEA_REVISION, + pub ValidBits: WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS, + pub Reserved: u8, + pub Flags: WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS, + pub SectionType: ::windows_sys::core::GUID, + pub FRUId: ::windows_sys::core::GUID, + pub SectionSeverity: WHEA_ERROR_SEVERITY, + pub FRUText: [i8; 20], +} +impl ::core::marker::Copy for WHEA_ERROR_RECORD_SECTION_DESCRIPTOR {} +impl ::core::clone::Clone for WHEA_ERROR_RECORD_SECTION_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS { + pub Anonymous: WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS {} +impl ::core::clone::Clone for WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS_0 {} +impl ::core::clone::Clone for WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS { + pub Anonymous: WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS_0, + pub AsUCHAR: u8, +} +impl ::core::marker::Copy for WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS {} +impl ::core::clone::Clone for WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS_0 {} +impl ::core::clone::Clone for WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_ERROR_RECOVERY_INFO_SECTION { + pub RecoveryKernel: super::super::super::Win32::Foundation::BOOLEAN, + pub RecoveryAction: WHEA_RECOVERY_ACTION, + pub RecoveryType: WHEA_RECOVERY_TYPE, + pub Irql: u8, + pub RecoverySucceeded: super::super::super::Win32::Foundation::BOOLEAN, + pub FailureReason: WHEA_RECOVERY_FAILURE_REASON, + pub ProcessName: [i8; 20], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_ERROR_RECOVERY_INFO_SECTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_ERROR_RECOVERY_INFO_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_ERROR_SOURCE_CONFIGURATION { + pub Flags: u32, + pub Correct: WHEA_ERROR_SOURCE_CORRECT, + pub Initialize: WHEA_ERROR_SOURCE_INITIALIZE, + pub CreateRecord: WHEA_ERROR_SOURCE_CREATE_RECORD, + pub Recover: WHEA_ERROR_SOURCE_RECOVER, + pub Uninitialize: WHEA_ERROR_SOURCE_UNINITIALIZE, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_ERROR_SOURCE_CONFIGURATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_ERROR_SOURCE_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct WHEA_ERROR_SOURCE_OVERRIDE_SETTINGS { + pub Type: super::super::super::Win32::System::Diagnostics::Debug::WHEA_ERROR_SOURCE_TYPE, + pub MaxRawDataLength: u32, + pub NumRecordsToPreallocate: u32, + pub MaxSectionsPerRecord: u32, +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for WHEA_ERROR_SOURCE_OVERRIDE_SETTINGS {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for WHEA_ERROR_SOURCE_OVERRIDE_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_ERROR_STATUS { + pub ErrorStatus: u64, + pub Anonymous: WHEA_ERROR_STATUS_0, +} +impl ::core::marker::Copy for WHEA_ERROR_STATUS {} +impl ::core::clone::Clone for WHEA_ERROR_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ERROR_STATUS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_ERROR_STATUS_0 {} +impl ::core::clone::Clone for WHEA_ERROR_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_ETW_OVERFLOW_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub RecordId: u64, +} +impl ::core::marker::Copy for WHEA_ETW_OVERFLOW_EVENT {} +impl ::core::clone::Clone for WHEA_ETW_OVERFLOW_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_EVENT_LOG_ENTRY { + pub Header: WHEA_EVENT_LOG_ENTRY_HEADER, +} +impl ::core::marker::Copy for WHEA_EVENT_LOG_ENTRY {} +impl ::core::clone::Clone for WHEA_EVENT_LOG_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_EVENT_LOG_ENTRY_FLAGS { + pub Anonymous: WHEA_EVENT_LOG_ENTRY_FLAGS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_EVENT_LOG_ENTRY_FLAGS {} +impl ::core::clone::Clone for WHEA_EVENT_LOG_ENTRY_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_EVENT_LOG_ENTRY_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHEA_EVENT_LOG_ENTRY_FLAGS_0 {} +impl ::core::clone::Clone for WHEA_EVENT_LOG_ENTRY_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_EVENT_LOG_ENTRY_HEADER { + pub Signature: u32, + pub Version: u32, + pub Length: u32, + pub Type: WHEA_EVENT_LOG_ENTRY_TYPE, + pub OwnerTag: u32, + pub Id: WHEA_EVENT_LOG_ENTRY_ID, + pub Flags: WHEA_EVENT_LOG_ENTRY_FLAGS, + pub PayloadLength: u32, +} +impl ::core::marker::Copy for WHEA_EVENT_LOG_ENTRY_HEADER {} +impl ::core::clone::Clone for WHEA_EVENT_LOG_ENTRY_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_FAILED_ADD_DEFECT_LIST_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, +} +impl ::core::marker::Copy for WHEA_FAILED_ADD_DEFECT_LIST_EVENT {} +impl ::core::clone::Clone for WHEA_FAILED_ADD_DEFECT_LIST_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_FIRMWARE_ERROR_RECORD_REFERENCE { + pub Type: u8, + pub Reserved: [u8; 7], + pub FirmwareRecordId: u64, +} +impl ::core::marker::Copy for WHEA_FIRMWARE_ERROR_RECORD_REFERENCE {} +impl ::core::clone::Clone for WHEA_FIRMWARE_ERROR_RECORD_REFERENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_GENERIC_ERROR { + pub BlockStatus: WHEA_GENERIC_ERROR_BLOCKSTATUS, + pub RawDataOffset: u32, + pub RawDataLength: u32, + pub DataLength: u32, + pub ErrorSeverity: WHEA_ERROR_SEVERITY, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for WHEA_GENERIC_ERROR {} +impl ::core::clone::Clone for WHEA_GENERIC_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_GENERIC_ERROR_BLOCKSTATUS { + pub Anonymous: WHEA_GENERIC_ERROR_BLOCKSTATUS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_GENERIC_ERROR_BLOCKSTATUS {} +impl ::core::clone::Clone for WHEA_GENERIC_ERROR_BLOCKSTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_GENERIC_ERROR_BLOCKSTATUS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHEA_GENERIC_ERROR_BLOCKSTATUS_0 {} +impl ::core::clone::Clone for WHEA_GENERIC_ERROR_BLOCKSTATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_GENERIC_ERROR_DATA_ENTRY_V1 { + pub SectionType: ::windows_sys::core::GUID, + pub ErrorSeverity: WHEA_ERROR_SEVERITY, + pub Revision: WHEA_REVISION, + pub ValidBits: u8, + pub Flags: u8, + pub ErrorDataLength: u32, + pub FRUId: ::windows_sys::core::GUID, + pub FRUText: [u8; 20], + pub Data: [u8; 1], +} +impl ::core::marker::Copy for WHEA_GENERIC_ERROR_DATA_ENTRY_V1 {} +impl ::core::clone::Clone for WHEA_GENERIC_ERROR_DATA_ENTRY_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_GENERIC_ERROR_DATA_ENTRY_V2 { + pub SectionType: ::windows_sys::core::GUID, + pub ErrorSeverity: WHEA_ERROR_SEVERITY, + pub Revision: WHEA_REVISION, + pub ValidBits: u8, + pub Flags: u8, + pub ErrorDataLength: u32, + pub FRUId: ::windows_sys::core::GUID, + pub FRUText: [u8; 20], + pub Timestamp: WHEA_TIMESTAMP, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for WHEA_GENERIC_ERROR_DATA_ENTRY_V2 {} +impl ::core::clone::Clone for WHEA_GENERIC_ERROR_DATA_ENTRY_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHEA_IN_USE_PAGE_NOTIFY_FLAGS { + pub Bits: WHEA_IN_USE_PAGE_NOTIFY_FLAGS_0, + pub AsUCHAR: u8, +} +impl ::core::marker::Copy for WHEA_IN_USE_PAGE_NOTIFY_FLAGS {} +impl ::core::clone::Clone for WHEA_IN_USE_PAGE_NOTIFY_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_IN_USE_PAGE_NOTIFY_FLAGS_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for WHEA_IN_USE_PAGE_NOTIFY_FLAGS_0 {} +impl ::core::clone::Clone for WHEA_IN_USE_PAGE_NOTIFY_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_MEMORY_CORRECTABLE_ERROR_DATA { + pub ValidBits: WHEA_MEMORY_CORRECTABLE_ERROR_SECTION_VALIDBITS, + pub SocketId: u32, + pub ChannelId: u32, + pub DimmSlot: u32, + pub CorrectableErrorCount: u32, +} +impl ::core::marker::Copy for WHEA_MEMORY_CORRECTABLE_ERROR_DATA {} +impl ::core::clone::Clone for WHEA_MEMORY_CORRECTABLE_ERROR_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_MEMORY_CORRECTABLE_ERROR_HEADER { + pub Version: u16, + pub Count: u16, +} +impl ::core::marker::Copy for WHEA_MEMORY_CORRECTABLE_ERROR_HEADER {} +impl ::core::clone::Clone for WHEA_MEMORY_CORRECTABLE_ERROR_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_MEMORY_CORRECTABLE_ERROR_SECTION { + pub Header: WHEA_MEMORY_CORRECTABLE_ERROR_HEADER, + pub Data: [WHEA_MEMORY_CORRECTABLE_ERROR_DATA; 1], +} +impl ::core::marker::Copy for WHEA_MEMORY_CORRECTABLE_ERROR_SECTION {} +impl ::core::clone::Clone for WHEA_MEMORY_CORRECTABLE_ERROR_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_MEMORY_CORRECTABLE_ERROR_SECTION_VALIDBITS { + pub Anonymous: WHEA_MEMORY_CORRECTABLE_ERROR_SECTION_VALIDBITS_0, + pub ValidBits: u64, +} +impl ::core::marker::Copy for WHEA_MEMORY_CORRECTABLE_ERROR_SECTION_VALIDBITS {} +impl ::core::clone::Clone for WHEA_MEMORY_CORRECTABLE_ERROR_SECTION_VALIDBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_MEMORY_CORRECTABLE_ERROR_SECTION_VALIDBITS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_MEMORY_CORRECTABLE_ERROR_SECTION_VALIDBITS_0 {} +impl ::core::clone::Clone for WHEA_MEMORY_CORRECTABLE_ERROR_SECTION_VALIDBITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_MEMORY_ERROR_SECTION { + pub ValidBits: WHEA_MEMORY_ERROR_SECTION_VALIDBITS, + pub ErrorStatus: WHEA_ERROR_STATUS, + pub PhysicalAddress: u64, + pub PhysicalAddressMask: u64, + pub Node: u16, + pub Card: u16, + pub Module: u16, + pub Bank: u16, + pub Device: u16, + pub Row: u16, + pub Column: u16, + pub BitPosition: u16, + pub RequesterId: u64, + pub ResponderId: u64, + pub TargetId: u64, + pub ErrorType: u8, + pub Extended: u8, + pub RankNumber: u16, + pub CardHandle: u16, + pub ModuleHandle: u16, +} +impl ::core::marker::Copy for WHEA_MEMORY_ERROR_SECTION {} +impl ::core::clone::Clone for WHEA_MEMORY_ERROR_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_MEMORY_ERROR_SECTION_VALIDBITS { + pub Anonymous: WHEA_MEMORY_ERROR_SECTION_VALIDBITS_0, + pub ValidBits: u64, +} +impl ::core::marker::Copy for WHEA_MEMORY_ERROR_SECTION_VALIDBITS {} +impl ::core::clone::Clone for WHEA_MEMORY_ERROR_SECTION_VALIDBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_MEMORY_ERROR_SECTION_VALIDBITS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_MEMORY_ERROR_SECTION_VALIDBITS_0 {} +impl ::core::clone::Clone for WHEA_MEMORY_ERROR_SECTION_VALIDBITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_MEMORY_THROTTLE_SUMMARY_FAILED_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Status: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_MEMORY_THROTTLE_SUMMARY_FAILED_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_MEMORY_THROTTLE_SUMMARY_FAILED_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_MSR_DUMP_SECTION { + pub MsrDumpBuffer: u8, + pub MsrDumpLength: u32, + pub MsrDumpData: [u8; 1], +} +impl ::core::marker::Copy for WHEA_MSR_DUMP_SECTION {} +impl ::core::clone::Clone for WHEA_MSR_DUMP_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_NMI_ERROR_SECTION { + pub Data: [u8; 8], + pub Flags: WHEA_NMI_ERROR_SECTION_FLAGS, +} +impl ::core::marker::Copy for WHEA_NMI_ERROR_SECTION {} +impl ::core::clone::Clone for WHEA_NMI_ERROR_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_NMI_ERROR_SECTION_FLAGS { + pub Anonymous: WHEA_NMI_ERROR_SECTION_FLAGS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_NMI_ERROR_SECTION_FLAGS {} +impl ::core::clone::Clone for WHEA_NMI_ERROR_SECTION_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_NMI_ERROR_SECTION_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHEA_NMI_ERROR_SECTION_FLAGS_0 {} +impl ::core::clone::Clone for WHEA_NMI_ERROR_SECTION_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_OFFLINE_DONE_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Address: u64, +} +impl ::core::marker::Copy for WHEA_OFFLINE_DONE_EVENT {} +impl ::core::clone::Clone for WHEA_OFFLINE_DONE_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_PACKET_LOG_DATA { + pub LogData: [u8; 36], + pub ExtraBytes: [u8; 36], + pub BcParam3: usize, + pub BcParam4: usize, + pub LogDataLength: u32, + pub LogTag: u16, + pub Reserved: u16, + pub Flags: WHEA_REPORT_HW_ERROR_DEVICE_DRIVER_FLAGS, +} +impl ::core::marker::Copy for WHEA_PACKET_LOG_DATA {} +impl ::core::clone::Clone for WHEA_PACKET_LOG_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS { + pub Anonymous: WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS {} +impl ::core::clone::Clone for WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS_0 { + pub BridgeSecondaryStatus: u16, + pub BridgeControl: u16, +} +impl ::core::marker::Copy for WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS_0 {} +impl ::core::clone::Clone for WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PCIEXPRESS_COMMAND_STATUS { + pub Anonymous: WHEA_PCIEXPRESS_COMMAND_STATUS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_PCIEXPRESS_COMMAND_STATUS {} +impl ::core::clone::Clone for WHEA_PCIEXPRESS_COMMAND_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIEXPRESS_COMMAND_STATUS_0 { + pub Command: u16, + pub Status: u16, +} +impl ::core::marker::Copy for WHEA_PCIEXPRESS_COMMAND_STATUS_0 {} +impl ::core::clone::Clone for WHEA_PCIEXPRESS_COMMAND_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIEXPRESS_DEVICE_ID { + pub VendorID: u16, + pub DeviceID: u16, + pub _bitfield1: u32, + pub _bitfield2: u32, + pub _bitfield3: u32, +} +impl ::core::marker::Copy for WHEA_PCIEXPRESS_DEVICE_ID {} +impl ::core::clone::Clone for WHEA_PCIEXPRESS_DEVICE_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIEXPRESS_ERROR_SECTION { + pub ValidBits: WHEA_PCIEXPRESS_ERROR_SECTION_VALIDBITS, + pub PortType: WHEA_PCIEXPRESS_DEVICE_TYPE, + pub Version: WHEA_PCIEXPRESS_VERSION, + pub CommandStatus: WHEA_PCIEXPRESS_COMMAND_STATUS, + pub Reserved: u32, + pub DeviceId: WHEA_PCIEXPRESS_DEVICE_ID, + pub DeviceSerialNumber: u64, + pub BridgeControlStatus: WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS, + pub ExpressCapability: [u8; 60], + pub AerInfo: [u8; 96], +} +impl ::core::marker::Copy for WHEA_PCIEXPRESS_ERROR_SECTION {} +impl ::core::clone::Clone for WHEA_PCIEXPRESS_ERROR_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PCIEXPRESS_ERROR_SECTION_VALIDBITS { + pub Anonymous: WHEA_PCIEXPRESS_ERROR_SECTION_VALIDBITS_0, + pub ValidBits: u64, +} +impl ::core::marker::Copy for WHEA_PCIEXPRESS_ERROR_SECTION_VALIDBITS {} +impl ::core::clone::Clone for WHEA_PCIEXPRESS_ERROR_SECTION_VALIDBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIEXPRESS_ERROR_SECTION_VALIDBITS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_PCIEXPRESS_ERROR_SECTION_VALIDBITS_0 {} +impl ::core::clone::Clone for WHEA_PCIEXPRESS_ERROR_SECTION_VALIDBITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PCIEXPRESS_VERSION { + pub Anonymous: WHEA_PCIEXPRESS_VERSION_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_PCIEXPRESS_VERSION {} +impl ::core::clone::Clone for WHEA_PCIEXPRESS_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIEXPRESS_VERSION_0 { + pub MinorVersion: u8, + pub MajorVersion: u8, + pub Reserved: u16, +} +impl ::core::marker::Copy for WHEA_PCIEXPRESS_VERSION_0 {} +impl ::core::clone::Clone for WHEA_PCIEXPRESS_VERSION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIE_ADDRESS { + pub Segment: u32, + pub Bus: u32, + pub Device: u32, + pub Function: u32, +} +impl ::core::marker::Copy for WHEA_PCIE_ADDRESS {} +impl ::core::clone::Clone for WHEA_PCIE_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIE_CORRECTABLE_ERROR_DEVICES { + pub ValidBits: WHEA_PCIE_CORRECTABLE_ERROR_DEVICES_VALIDBITS, + pub Address: WHEA_PCIE_ADDRESS, + pub Mask: u32, + pub CorrectableErrorCount: [u32; 32], +} +impl ::core::marker::Copy for WHEA_PCIE_CORRECTABLE_ERROR_DEVICES {} +impl ::core::clone::Clone for WHEA_PCIE_CORRECTABLE_ERROR_DEVICES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PCIE_CORRECTABLE_ERROR_DEVICES_VALIDBITS { + pub Anonymous: WHEA_PCIE_CORRECTABLE_ERROR_DEVICES_VALIDBITS_0, + pub ValidBits: u64, +} +impl ::core::marker::Copy for WHEA_PCIE_CORRECTABLE_ERROR_DEVICES_VALIDBITS {} +impl ::core::clone::Clone for WHEA_PCIE_CORRECTABLE_ERROR_DEVICES_VALIDBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIE_CORRECTABLE_ERROR_DEVICES_VALIDBITS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_PCIE_CORRECTABLE_ERROR_DEVICES_VALIDBITS_0 {} +impl ::core::clone::Clone for WHEA_PCIE_CORRECTABLE_ERROR_DEVICES_VALIDBITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_PCIE_CORRECTABLE_ERROR_SECTION { + pub Header: WHEA_PCIE_CORRECTABLE_ERROR_SECTION_HEADER, + pub Devices: [WHEA_PCIE_CORRECTABLE_ERROR_DEVICES; 1], +} +impl ::core::marker::Copy for WHEA_PCIE_CORRECTABLE_ERROR_SECTION {} +impl ::core::clone::Clone for WHEA_PCIE_CORRECTABLE_ERROR_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIE_CORRECTABLE_ERROR_SECTION_HEADER { + pub Version: u16, + pub Count: u16, +} +impl ::core::marker::Copy for WHEA_PCIE_CORRECTABLE_ERROR_SECTION_HEADER {} +impl ::core::clone::Clone for WHEA_PCIE_CORRECTABLE_ERROR_SECTION_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PCIXBUS_COMMAND { + pub Anonymous: WHEA_PCIXBUS_COMMAND_0, + pub AsULONGLONG: u64, +} +impl ::core::marker::Copy for WHEA_PCIXBUS_COMMAND {} +impl ::core::clone::Clone for WHEA_PCIXBUS_COMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIXBUS_COMMAND_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_PCIXBUS_COMMAND_0 {} +impl ::core::clone::Clone for WHEA_PCIXBUS_COMMAND_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIXBUS_ERROR_SECTION { + pub ValidBits: WHEA_PCIXBUS_ERROR_SECTION_VALIDBITS, + pub ErrorStatus: WHEA_ERROR_STATUS, + pub ErrorType: u16, + pub BusId: WHEA_PCIXBUS_ID, + pub Reserved: u32, + pub BusAddress: u64, + pub BusData: u64, + pub BusCommand: WHEA_PCIXBUS_COMMAND, + pub RequesterId: u64, + pub CompleterId: u64, + pub TargetId: u64, +} +impl ::core::marker::Copy for WHEA_PCIXBUS_ERROR_SECTION {} +impl ::core::clone::Clone for WHEA_PCIXBUS_ERROR_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PCIXBUS_ERROR_SECTION_VALIDBITS { + pub Anonymous: WHEA_PCIXBUS_ERROR_SECTION_VALIDBITS_0, + pub ValidBits: u64, +} +impl ::core::marker::Copy for WHEA_PCIXBUS_ERROR_SECTION_VALIDBITS {} +impl ::core::clone::Clone for WHEA_PCIXBUS_ERROR_SECTION_VALIDBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIXBUS_ERROR_SECTION_VALIDBITS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_PCIXBUS_ERROR_SECTION_VALIDBITS_0 {} +impl ::core::clone::Clone for WHEA_PCIXBUS_ERROR_SECTION_VALIDBITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PCIXBUS_ID { + pub Anonymous: WHEA_PCIXBUS_ID_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for WHEA_PCIXBUS_ID {} +impl ::core::clone::Clone for WHEA_PCIXBUS_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_PCIXBUS_ID_0 { + pub BusNumber: u8, + pub BusSegment: u8, +} +impl ::core::marker::Copy for WHEA_PCIXBUS_ID_0 {} +impl ::core::clone::Clone for WHEA_PCIXBUS_ID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIXDEVICE_ERROR_SECTION { + pub ValidBits: WHEA_PCIXDEVICE_ERROR_SECTION_VALIDBITS, + pub ErrorStatus: WHEA_ERROR_STATUS, + pub IdInfo: WHEA_PCIXDEVICE_ID, + pub MemoryNumber: u32, + pub IoNumber: u32, + pub RegisterDataPairs: [WHEA_PCIXDEVICE_REGISTER_PAIR; 1], +} +impl ::core::marker::Copy for WHEA_PCIXDEVICE_ERROR_SECTION {} +impl ::core::clone::Clone for WHEA_PCIXDEVICE_ERROR_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PCIXDEVICE_ERROR_SECTION_VALIDBITS { + pub Anonymous: WHEA_PCIXDEVICE_ERROR_SECTION_VALIDBITS_0, + pub ValidBits: u64, +} +impl ::core::marker::Copy for WHEA_PCIXDEVICE_ERROR_SECTION_VALIDBITS {} +impl ::core::clone::Clone for WHEA_PCIXDEVICE_ERROR_SECTION_VALIDBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIXDEVICE_ERROR_SECTION_VALIDBITS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_PCIXDEVICE_ERROR_SECTION_VALIDBITS_0 {} +impl ::core::clone::Clone for WHEA_PCIXDEVICE_ERROR_SECTION_VALIDBITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIXDEVICE_ID { + pub VendorId: u16, + pub DeviceId: u16, + pub _bitfield1: u32, + pub _bitfield2: u32, + pub Reserved2: u32, +} +impl ::core::marker::Copy for WHEA_PCIXDEVICE_ID {} +impl ::core::clone::Clone for WHEA_PCIXDEVICE_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCIXDEVICE_REGISTER_PAIR { + pub Register: u64, + pub Data: u64, +} +impl ::core::marker::Copy for WHEA_PCIXDEVICE_REGISTER_PAIR {} +impl ::core::clone::Clone for WHEA_PCIXDEVICE_REGISTER_PAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_PCI_RECOVERY_SECTION { + pub SignalType: u8, + pub RecoveryAttempted: super::super::super::Win32::Foundation::BOOLEAN, + pub RecoveryStatus: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_PCI_RECOVERY_SECTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_PCI_RECOVERY_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PERSISTENCE_INFO { + pub Anonymous: WHEA_PERSISTENCE_INFO_0, + pub AsULONGLONG: u64, +} +impl ::core::marker::Copy for WHEA_PERSISTENCE_INFO {} +impl ::core::clone::Clone for WHEA_PERSISTENCE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PERSISTENCE_INFO_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_PERSISTENCE_INFO_0 {} +impl ::core::clone::Clone for WHEA_PERSISTENCE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PMEM_ERROR_SECTION { + pub ValidBits: WHEA_PMEM_ERROR_SECTION_VALIDBITS, + pub LocationInfo: [u8; 64], + pub ErrorStatus: WHEA_ERROR_STATUS, + pub NFITHandle: u32, + pub PageRangeCount: u32, + pub PageRange: [WHEA_PMEM_PAGE_RANGE; 1], +} +impl ::core::marker::Copy for WHEA_PMEM_ERROR_SECTION {} +impl ::core::clone::Clone for WHEA_PMEM_ERROR_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PMEM_ERROR_SECTION_VALIDBITS { + pub Anonymous: WHEA_PMEM_ERROR_SECTION_VALIDBITS_0, + pub ValidBits: u64, +} +impl ::core::marker::Copy for WHEA_PMEM_ERROR_SECTION_VALIDBITS {} +impl ::core::clone::Clone for WHEA_PMEM_ERROR_SECTION_VALIDBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PMEM_ERROR_SECTION_VALIDBITS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_PMEM_ERROR_SECTION_VALIDBITS_0 {} +impl ::core::clone::Clone for WHEA_PMEM_ERROR_SECTION_VALIDBITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PMEM_PAGE_RANGE { + pub StartingPfn: u64, + pub PageCount: u64, + pub MarkedBadBitmap: u64, +} +impl ::core::marker::Copy for WHEA_PMEM_PAGE_RANGE {} +impl ::core::clone::Clone for WHEA_PMEM_PAGE_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PROCESSOR_FAMILY_INFO { + pub Anonymous: WHEA_PROCESSOR_FAMILY_INFO_0, + pub AsULONGLONG: u64, +} +impl ::core::marker::Copy for WHEA_PROCESSOR_FAMILY_INFO {} +impl ::core::clone::Clone for WHEA_PROCESSOR_FAMILY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PROCESSOR_FAMILY_INFO_0 { + pub _bitfield: u32, + pub NativeModelId: u32, +} +impl ::core::marker::Copy for WHEA_PROCESSOR_FAMILY_INFO_0 {} +impl ::core::clone::Clone for WHEA_PROCESSOR_FAMILY_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PROCESSOR_GENERIC_ERROR_SECTION { + pub ValidBits: WHEA_PROCESSOR_GENERIC_ERROR_SECTION_VALIDBITS, + pub ProcessorType: u8, + pub InstructionSet: u8, + pub ErrorType: u8, + pub Operation: u8, + pub Flags: u8, + pub Level: u8, + pub Reserved: u16, + pub CPUVersion: u64, + pub CPUBrandString: [u8; 128], + pub ProcessorId: u64, + pub TargetAddress: u64, + pub RequesterId: u64, + pub ResponderId: u64, + pub InstructionPointer: u64, +} +impl ::core::marker::Copy for WHEA_PROCESSOR_GENERIC_ERROR_SECTION {} +impl ::core::clone::Clone for WHEA_PROCESSOR_GENERIC_ERROR_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PROCESSOR_GENERIC_ERROR_SECTION_VALIDBITS { + pub Anonymous: WHEA_PROCESSOR_GENERIC_ERROR_SECTION_VALIDBITS_0, + pub ValidBits: u64, +} +impl ::core::marker::Copy for WHEA_PROCESSOR_GENERIC_ERROR_SECTION_VALIDBITS {} +impl ::core::clone::Clone for WHEA_PROCESSOR_GENERIC_ERROR_SECTION_VALIDBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PROCESSOR_GENERIC_ERROR_SECTION_VALIDBITS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_PROCESSOR_GENERIC_ERROR_SECTION_VALIDBITS_0 {} +impl ::core::clone::Clone for WHEA_PROCESSOR_GENERIC_ERROR_SECTION_VALIDBITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_PSHED_PI_CPU_BUSES_INIT_FAILED_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Status: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_PSHED_PI_CPU_BUSES_INIT_FAILED_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_PSHED_PI_CPU_BUSES_INIT_FAILED_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_PSHED_PI_TRACE_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Buffer: [i8; 256], +} +impl ::core::marker::Copy for WHEA_PSHED_PI_TRACE_EVENT {} +impl ::core::clone::Clone for WHEA_PSHED_PI_TRACE_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub struct WHEA_PSHED_PLUGIN_CALLBACKS { + pub GetAllErrorSources: PSHED_PI_GET_ALL_ERROR_SOURCES, + pub Reserved: *mut ::core::ffi::c_void, + pub GetErrorSourceInfo: PSHED_PI_GET_ERROR_SOURCE_INFO, + pub SetErrorSourceInfo: PSHED_PI_SET_ERROR_SOURCE_INFO, + pub EnableErrorSource: PSHED_PI_ENABLE_ERROR_SOURCE, + pub DisableErrorSource: PSHED_PI_DISABLE_ERROR_SOURCE, + pub WriteErrorRecord: PSHED_PI_WRITE_ERROR_RECORD, + pub ReadErrorRecord: PSHED_PI_READ_ERROR_RECORD, + pub ClearErrorRecord: PSHED_PI_CLEAR_ERROR_RECORD, + pub RetrieveErrorInfo: PSHED_PI_RETRIEVE_ERROR_INFO, + pub FinalizeErrorRecord: PSHED_PI_FINALIZE_ERROR_RECORD, + pub ClearErrorStatus: PSHED_PI_CLEAR_ERROR_STATUS, + pub AttemptRecovery: PSHED_PI_ATTEMPT_ERROR_RECOVERY, + pub GetInjectionCapabilities: PSHED_PI_GET_INJECTION_CAPABILITIES, + pub InjectError: PSHED_PI_INJECT_ERROR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::marker::Copy for WHEA_PSHED_PLUGIN_CALLBACKS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::clone::Clone for WHEA_PSHED_PLUGIN_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PSHED_PLUGIN_DIMM_MISMATCH { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub FirmwareBank: u16, + pub FirmwareCol: u16, + pub FirmwareRow: u16, + pub RetryRdBank: u16, + pub RetryRdCol: u16, + pub RetryRdRow: u16, + pub TaBank: u16, + pub TaCol: u16, + pub TaRow: u16, +} +impl ::core::marker::Copy for WHEA_PSHED_PLUGIN_DIMM_MISMATCH {} +impl ::core::clone::Clone for WHEA_PSHED_PLUGIN_DIMM_MISMATCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PSHED_PLUGIN_ENABLE_NOTIFY_FAILED_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub EnableError: WHEA_PSHED_PLUGIN_ENABLE_NOTIFY_ERRORS, +} +impl ::core::marker::Copy for WHEA_PSHED_PLUGIN_ENABLE_NOTIFY_FAILED_EVENT {} +impl ::core::clone::Clone for WHEA_PSHED_PLUGIN_ENABLE_NOTIFY_FAILED_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_PSHED_PLUGIN_HEARTBEAT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, +} +impl ::core::marker::Copy for WHEA_PSHED_PLUGIN_HEARTBEAT {} +impl ::core::clone::Clone for WHEA_PSHED_PLUGIN_HEARTBEAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_PSHED_PLUGIN_INIT_FAILED_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Status: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_PSHED_PLUGIN_INIT_FAILED_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_PSHED_PLUGIN_INIT_FAILED_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PSHED_PLUGIN_LOAD_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub PluginName: [u16; 32], + pub MajorVersion: u32, + pub MinorVersion: u32, +} +impl ::core::marker::Copy for WHEA_PSHED_PLUGIN_LOAD_EVENT {} +impl ::core::clone::Clone for WHEA_PSHED_PLUGIN_LOAD_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_PSHED_PLUGIN_PLATFORM_SUPPORT_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub PluginName: [u16; 32], + pub Supported: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_PSHED_PLUGIN_PLATFORM_SUPPORT_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_PSHED_PLUGIN_PLATFORM_SUPPORT_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub struct WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V1 { + pub Length: u32, + pub Version: u32, + pub Context: *mut ::core::ffi::c_void, + pub FunctionalAreaMask: u32, + pub Reserved: u32, + pub Callbacks: WHEA_PSHED_PLUGIN_CALLBACKS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::marker::Copy for WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::clone::Clone for WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub struct WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V2 { + pub Length: u32, + pub Version: u32, + pub Context: *mut ::core::ffi::c_void, + pub FunctionalAreaMask: u32, + pub Reserved: u32, + pub Callbacks: WHEA_PSHED_PLUGIN_CALLBACKS, + pub PluginHandle: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::marker::Copy for WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::clone::Clone for WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PSHED_PLUGIN_UNLOAD_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub PluginName: [u16; 32], +} +impl ::core::marker::Copy for WHEA_PSHED_PLUGIN_UNLOAD_EVENT {} +impl ::core::clone::Clone for WHEA_PSHED_PLUGIN_UNLOAD_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_RECOVERY_ACTION { + pub Anonymous: WHEA_RECOVERY_ACTION_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_RECOVERY_ACTION {} +impl ::core::clone::Clone for WHEA_RECOVERY_ACTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_RECOVERY_ACTION_0 { + pub _bitfield1: u32, + pub _bitfield2: u32, +} +impl ::core::marker::Copy for WHEA_RECOVERY_ACTION_0 {} +impl ::core::clone::Clone for WHEA_RECOVERY_ACTION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_RECOVERY_CONTEXT { + pub Anonymous: WHEA_RECOVERY_CONTEXT_0, + pub PartitionId: u64, + pub VpIndex: u32, + pub ErrorType: WHEA_RECOVERY_CONTEXT_ERROR_TYPE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_RECOVERY_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_RECOVERY_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WHEA_RECOVERY_CONTEXT_0 { + pub MemoryError: WHEA_RECOVERY_CONTEXT_0_0, + pub PmemError: WHEA_RECOVERY_CONTEXT_0_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_RECOVERY_CONTEXT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_RECOVERY_CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_RECOVERY_CONTEXT_0_0 { + pub Address: usize, + pub Consumed: super::super::super::Win32::Foundation::BOOLEAN, + pub ErrorCode: u16, + pub ErrorIpValid: super::super::super::Win32::Foundation::BOOLEAN, + pub RestartIpValid: super::super::super::Win32::Foundation::BOOLEAN, + pub ClearPoison: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_RECOVERY_CONTEXT_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_RECOVERY_CONTEXT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_RECOVERY_CONTEXT_0_1 { + pub PmemErrInfo: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_RECOVERY_CONTEXT_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_RECOVERY_CONTEXT_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_REGISTER_KEY_NOTIFICATION_FAILED_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, +} +impl ::core::marker::Copy for WHEA_REGISTER_KEY_NOTIFICATION_FAILED_EVENT {} +impl ::core::clone::Clone for WHEA_REGISTER_KEY_NOTIFICATION_FAILED_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHEA_REPORT_HW_ERROR_DEVICE_DRIVER_FLAGS { + pub Anonymous: WHEA_REPORT_HW_ERROR_DEVICE_DRIVER_FLAGS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_REPORT_HW_ERROR_DEVICE_DRIVER_FLAGS {} +impl ::core::clone::Clone for WHEA_REPORT_HW_ERROR_DEVICE_DRIVER_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_REPORT_HW_ERROR_DEVICE_DRIVER_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHEA_REPORT_HW_ERROR_DEVICE_DRIVER_FLAGS_0 {} +impl ::core::clone::Clone for WHEA_REPORT_HW_ERROR_DEVICE_DRIVER_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_REVISION { + pub Anonymous: WHEA_REVISION_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for WHEA_REVISION {} +impl ::core::clone::Clone for WHEA_REVISION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_REVISION_0 { + pub MinorRevision: u8, + pub MajorRevision: u8, +} +impl ::core::marker::Copy for WHEA_REVISION_0 {} +impl ::core::clone::Clone for WHEA_REVISION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_SEA_SECTION { + pub Esr: u32, + pub Far: u64, + pub Par: u64, + pub WasKernel: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_SEA_SECTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_SEA_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_SEI_SECTION { + pub Esr: u32, + pub Far: u64, +} +impl ::core::marker::Copy for WHEA_SEI_SECTION {} +impl ::core::clone::Clone for WHEA_SEI_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_SEL_BUGCHECK_PROGRESS { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub BugCheckCode: u32, + pub BugCheckProgressSummary: u32, +} +impl ::core::marker::Copy for WHEA_SEL_BUGCHECK_PROGRESS {} +impl ::core::clone::Clone for WHEA_SEL_BUGCHECK_PROGRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_SEL_BUGCHECK_RECOVERY_STATUS_MULTIPLE_BUGCHECK_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub IsBugcheckOwner: super::super::super::Win32::Foundation::BOOLEAN, + pub RecursionCount: u8, + pub IsBugcheckRecoveryOwner: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_SEL_BUGCHECK_RECOVERY_STATUS_MULTIPLE_BUGCHECK_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_SEL_BUGCHECK_RECOVERY_STATUS_MULTIPLE_BUGCHECK_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_SEL_BUGCHECK_RECOVERY_STATUS_PHASE1_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Success: super::super::super::Win32::Foundation::BOOLEAN, + pub Version: u8, + pub EntryCount: u16, + pub Data: WHEA_SEL_BUGCHECK_RECOVERY_STATUS_PHASE1_EVENT_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_SEL_BUGCHECK_RECOVERY_STATUS_PHASE1_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_SEL_BUGCHECK_RECOVERY_STATUS_PHASE1_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_SEL_BUGCHECK_RECOVERY_STATUS_PHASE1_EVENT_0 { + pub DumpPolicy: u8, + pub Reserved: [u8; 3], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_SEL_BUGCHECK_RECOVERY_STATUS_PHASE1_EVENT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_SEL_BUGCHECK_RECOVERY_STATUS_PHASE1_EVENT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_SEL_BUGCHECK_RECOVERY_STATUS_PHASE2_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub BootId: u32, + pub Success: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_SEL_BUGCHECK_RECOVERY_STATUS_PHASE2_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_SEL_BUGCHECK_RECOVERY_STATUS_PHASE2_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_SEL_BUGCHECK_RECOVERY_STATUS_START_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub StartingIrql: u8, +} +impl ::core::marker::Copy for WHEA_SEL_BUGCHECK_RECOVERY_STATUS_START_EVENT {} +impl ::core::clone::Clone for WHEA_SEL_BUGCHECK_RECOVERY_STATUS_START_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_SRAR_DETAIL_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub RecoveryContextFlags: u32, + pub RecoveryContextPa: u64, + pub PageOfflineStatus: super::super::super::Win32::Foundation::NTSTATUS, + pub KernelConsumerError: super::super::super::Win32::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_SRAR_DETAIL_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_SRAR_DETAIL_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_SRAS_TABLE_ENTRIES_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub LogNumber: u32, + pub NumberSignals: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for WHEA_SRAS_TABLE_ENTRIES_EVENT {} +impl ::core::clone::Clone for WHEA_SRAS_TABLE_ENTRIES_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_SRAS_TABLE_ERROR { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, +} +impl ::core::marker::Copy for WHEA_SRAS_TABLE_ERROR {} +impl ::core::clone::Clone for WHEA_SRAS_TABLE_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_SRAS_TABLE_NOT_FOUND { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, +} +impl ::core::marker::Copy for WHEA_SRAS_TABLE_NOT_FOUND {} +impl ::core::clone::Clone for WHEA_SRAS_TABLE_NOT_FOUND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_THROTTLE_ADD_ERR_SRC_FAILED_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, +} +impl ::core::marker::Copy for WHEA_THROTTLE_ADD_ERR_SRC_FAILED_EVENT {} +impl ::core::clone::Clone for WHEA_THROTTLE_ADD_ERR_SRC_FAILED_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_THROTTLE_MEMORY_ADD_OR_REMOVE_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub SocketId: u32, + pub ChannelId: u32, + pub DimmSlot: u32, +} +impl ::core::marker::Copy for WHEA_THROTTLE_MEMORY_ADD_OR_REMOVE_EVENT {} +impl ::core::clone::Clone for WHEA_THROTTLE_MEMORY_ADD_OR_REMOVE_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_THROTTLE_PCIE_ADD_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Address: WHEA_PCIE_ADDRESS, + pub Mask: u32, + pub Updated: super::super::super::Win32::Foundation::BOOLEAN, + pub Status: super::super::super::Win32::Foundation::NTSTATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_THROTTLE_PCIE_ADD_EVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_THROTTLE_PCIE_ADD_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_THROTTLE_PCIE_REMOVE_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub Address: WHEA_PCIE_ADDRESS, + pub Mask: u32, +} +impl ::core::marker::Copy for WHEA_THROTTLE_PCIE_REMOVE_EVENT {} +impl ::core::clone::Clone for WHEA_THROTTLE_PCIE_REMOVE_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_THROTTLE_REGISTRY_CORRUPT_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub ThrottleType: WHEA_THROTTLE_TYPE, +} +impl ::core::marker::Copy for WHEA_THROTTLE_REGISTRY_CORRUPT_EVENT {} +impl ::core::clone::Clone for WHEA_THROTTLE_REGISTRY_CORRUPT_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_THROTTLE_REG_DATA_IGNORED_EVENT { + pub WheaEventLogEntry: WHEA_EVENT_LOG_ENTRY, + pub ThrottleType: WHEA_THROTTLE_TYPE, +} +impl ::core::marker::Copy for WHEA_THROTTLE_REG_DATA_IGNORED_EVENT {} +impl ::core::clone::Clone for WHEA_THROTTLE_REG_DATA_IGNORED_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_TIMESTAMP { + pub Anonymous: WHEA_TIMESTAMP_0, + pub AsLARGE_INTEGER: i64, +} +impl ::core::marker::Copy for WHEA_TIMESTAMP {} +impl ::core::clone::Clone for WHEA_TIMESTAMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_TIMESTAMP_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_TIMESTAMP_0 {} +impl ::core::clone::Clone for WHEA_TIMESTAMP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_X64_REGISTER_STATE { + pub Rax: u64, + pub Rbx: u64, + pub Rcx: u64, + pub Rdx: u64, + pub Rsi: u64, + pub Rdi: u64, + pub Rbp: u64, + pub Rsp: u64, + pub R8: u64, + pub R9: u64, + pub R10: u64, + pub R11: u64, + pub R12: u64, + pub R13: u64, + pub R14: u64, + pub R15: u64, + pub Cs: u16, + pub Ds: u16, + pub Ss: u16, + pub Es: u16, + pub Fs: u16, + pub Gs: u16, + pub Reserved: u32, + pub Rflags: u64, + pub Eip: u64, + pub Cr0: u64, + pub Cr1: u64, + pub Cr2: u64, + pub Cr3: u64, + pub Cr4: u64, + pub Cr8: u64, + pub Gdtr: WHEA128A, + pub Idtr: WHEA128A, + pub Ldtr: u16, + pub Tr: u16, +} +impl ::core::marker::Copy for WHEA_X64_REGISTER_STATE {} +impl ::core::clone::Clone for WHEA_X64_REGISTER_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_X86_REGISTER_STATE { + pub Eax: u32, + pub Ebx: u32, + pub Ecx: u32, + pub Edx: u32, + pub Esi: u32, + pub Edi: u32, + pub Ebp: u32, + pub Esp: u32, + pub Cs: u16, + pub Ds: u16, + pub Ss: u16, + pub Es: u16, + pub Fs: u16, + pub Gs: u16, + pub Eflags: u32, + pub Eip: u32, + pub Cr0: u32, + pub Cr1: u32, + pub Cr2: u32, + pub Cr3: u32, + pub Cr4: u32, + pub Gdtr: u64, + pub Idtr: u64, + pub Ldtr: u16, + pub Tr: u16, +} +impl ::core::marker::Copy for WHEA_X86_REGISTER_STATE {} +impl ::core::clone::Clone for WHEA_X86_REGISTER_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_XPF_BUS_CHECK { + pub Anonymous: WHEA_XPF_BUS_CHECK_0, + pub XpfBusCheck: u64, +} +impl ::core::marker::Copy for WHEA_XPF_BUS_CHECK {} +impl ::core::clone::Clone for WHEA_XPF_BUS_CHECK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_XPF_BUS_CHECK_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_XPF_BUS_CHECK_0 {} +impl ::core::clone::Clone for WHEA_XPF_BUS_CHECK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_XPF_CACHE_CHECK { + pub Anonymous: WHEA_XPF_CACHE_CHECK_0, + pub XpfCacheCheck: u64, +} +impl ::core::marker::Copy for WHEA_XPF_CACHE_CHECK {} +impl ::core::clone::Clone for WHEA_XPF_CACHE_CHECK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_XPF_CACHE_CHECK_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_XPF_CACHE_CHECK_0 {} +impl ::core::clone::Clone for WHEA_XPF_CACHE_CHECK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_XPF_CONTEXT_INFO { + pub RegisterContextType: u16, + pub RegisterDataSize: u16, + pub MSRAddress: u32, + pub MmRegisterAddress: u64, +} +impl ::core::marker::Copy for WHEA_XPF_CONTEXT_INFO {} +impl ::core::clone::Clone for WHEA_XPF_CONTEXT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_XPF_MCA_SECTION { + pub VersionNumber: u32, + pub CpuVendor: WHEA_CPU_VENDOR, + pub Timestamp: i64, + pub ProcessorNumber: u32, + pub GlobalStatus: MCG_STATUS, + pub InstructionPointer: u64, + pub BankNumber: u32, + pub Status: MCI_STATUS, + pub Address: u64, + pub Misc: u64, + pub ExtendedRegisterCount: u32, + pub ApicId: u32, + pub Anonymous: WHEA_XPF_MCA_SECTION_0, + pub GlobalCapability: MCG_CAP, + pub RecoveryInfo: XPF_RECOVERY_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_XPF_MCA_SECTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_XPF_MCA_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WHEA_XPF_MCA_SECTION_0 { + pub ExtendedRegisters: [u64; 24], + pub AMDExtendedRegisters: WHEA_AMD_EXTENDED_REGISTERS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_XPF_MCA_SECTION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_XPF_MCA_SECTION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_XPF_MS_CHECK { + pub Anonymous: WHEA_XPF_MS_CHECK_0, + pub XpfMsCheck: u64, +} +impl ::core::marker::Copy for WHEA_XPF_MS_CHECK {} +impl ::core::clone::Clone for WHEA_XPF_MS_CHECK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_XPF_MS_CHECK_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_XPF_MS_CHECK_0 {} +impl ::core::clone::Clone for WHEA_XPF_MS_CHECK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_XPF_PROCESSOR_ERROR_SECTION { + pub ValidBits: WHEA_XPF_PROCESSOR_ERROR_SECTION_VALIDBITS, + pub LocalAPICId: u64, + pub CpuId: [u8; 48], + pub VariableInfo: [u8; 1], +} +impl ::core::marker::Copy for WHEA_XPF_PROCESSOR_ERROR_SECTION {} +impl ::core::clone::Clone for WHEA_XPF_PROCESSOR_ERROR_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_XPF_PROCESSOR_ERROR_SECTION_VALIDBITS { + pub Anonymous: WHEA_XPF_PROCESSOR_ERROR_SECTION_VALIDBITS_0, + pub ValidBits: u64, +} +impl ::core::marker::Copy for WHEA_XPF_PROCESSOR_ERROR_SECTION_VALIDBITS {} +impl ::core::clone::Clone for WHEA_XPF_PROCESSOR_ERROR_SECTION_VALIDBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_XPF_PROCESSOR_ERROR_SECTION_VALIDBITS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_XPF_PROCESSOR_ERROR_SECTION_VALIDBITS_0 {} +impl ::core::clone::Clone for WHEA_XPF_PROCESSOR_ERROR_SECTION_VALIDBITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_XPF_PROCINFO { + pub CheckInfoId: ::windows_sys::core::GUID, + pub ValidBits: WHEA_XPF_PROCINFO_VALIDBITS, + pub CheckInfo: WHEA_XPF_PROCINFO_0, + pub TargetId: u64, + pub RequesterId: u64, + pub ResponderId: u64, + pub InstructionPointer: u64, +} +impl ::core::marker::Copy for WHEA_XPF_PROCINFO {} +impl ::core::clone::Clone for WHEA_XPF_PROCINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_XPF_PROCINFO_0 { + pub CacheCheck: WHEA_XPF_CACHE_CHECK, + pub TlbCheck: WHEA_XPF_TLB_CHECK, + pub BusCheck: WHEA_XPF_BUS_CHECK, + pub MsCheck: WHEA_XPF_MS_CHECK, + pub AsULONGLONG: u64, +} +impl ::core::marker::Copy for WHEA_XPF_PROCINFO_0 {} +impl ::core::clone::Clone for WHEA_XPF_PROCINFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_XPF_PROCINFO_VALIDBITS { + pub Anonymous: WHEA_XPF_PROCINFO_VALIDBITS_0, + pub ValidBits: u64, +} +impl ::core::marker::Copy for WHEA_XPF_PROCINFO_VALIDBITS {} +impl ::core::clone::Clone for WHEA_XPF_PROCINFO_VALIDBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_XPF_PROCINFO_VALIDBITS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_XPF_PROCINFO_VALIDBITS_0 {} +impl ::core::clone::Clone for WHEA_XPF_PROCINFO_VALIDBITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_XPF_TLB_CHECK { + pub Anonymous: WHEA_XPF_TLB_CHECK_0, + pub XpfTLBCheck: u64, +} +impl ::core::marker::Copy for WHEA_XPF_TLB_CHECK {} +impl ::core::clone::Clone for WHEA_XPF_TLB_CHECK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_XPF_TLB_CHECK_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHEA_XPF_TLB_CHECK_0 {} +impl ::core::clone::Clone for WHEA_XPF_TLB_CHECK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct XPF_RECOVERY_INFO { + pub FailureReason: XPF_RECOVERY_INFO_1, + pub Action: XPF_RECOVERY_INFO_0, + pub ActionRequired: super::super::super::Win32::Foundation::BOOLEAN, + pub RecoverySucceeded: super::super::super::Win32::Foundation::BOOLEAN, + pub RecoveryKernel: super::super::super::Win32::Foundation::BOOLEAN, + pub Reserved: u8, + pub Reserved2: u16, + pub Reserved3: u16, + pub Reserved4: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for XPF_RECOVERY_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for XPF_RECOVERY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct XPF_RECOVERY_INFO_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for XPF_RECOVERY_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for XPF_RECOVERY_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct XPF_RECOVERY_INFO_1 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for XPF_RECOVERY_INFO_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for XPF_RECOVERY_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct XSAVE_FORMAT { + pub ControlWord: u16, + pub StatusWord: u16, + pub TagWord: u8, + pub Reserved1: u8, + pub ErrorOpcode: u16, + pub ErrorOffset: u32, + pub ErrorSelector: u16, + pub Reserved2: u16, + pub DataOffset: u32, + pub DataSelector: u16, + pub Reserved3: u16, + pub MxCsr: u32, + pub MxCsr_Mask: u32, + pub FloatRegisters: [super::super::super::Win32::System::Diagnostics::Debug::M128A; 8], + pub XmmRegisters: [super::super::super::Win32::System::Diagnostics::Debug::M128A; 8], + pub Reserved4: [u8; 224], +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for XSAVE_FORMAT {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for XSAVE_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct XSTATE_CONTEXT { + pub Mask: u64, + pub Length: u32, + pub Reserved1: u32, + pub Area: *mut super::super::super::Win32::System::Diagnostics::Debug::XSAVE_AREA, + pub Reserved2: u32, + pub Buffer: *mut ::core::ffi::c_void, + pub Reserved3: u32, +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for XSTATE_CONTEXT {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for XSTATE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct XSTATE_SAVE { + pub Anonymous: XSTATE_SAVE_0, +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for XSTATE_SAVE {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for XSTATE_SAVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub union XSTATE_SAVE_0 { + pub Anonymous: XSTATE_SAVE_0_0, + pub XStateContext: XSTATE_CONTEXT, +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for XSTATE_SAVE_0 {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for XSTATE_SAVE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct XSTATE_SAVE_0_0 { + pub Reserved1: i64, + pub Reserved2: u32, + pub Prev: *mut XSTATE_SAVE, + pub Reserved3: *mut super::super::super::Win32::System::Diagnostics::Debug::XSAVE_AREA, + pub Thread: *mut isize, + pub Reserved4: *mut ::core::ffi::c_void, + pub Level: u8, +} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for XSTATE_SAVE_0_0 {} +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for XSTATE_SAVE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct ZONE_HEADER { + pub FreeList: super::super::super::Win32::System::Kernel::SINGLE_LIST_ENTRY, + pub SegmentList: super::super::super::Win32::System::Kernel::SINGLE_LIST_ENTRY, + pub BlockSize: u32, + pub TotalSegmentSize: u32, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for ZONE_HEADER {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for ZONE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct ZONE_SEGMENT_HEADER { + pub SegmentList: super::super::super::Win32::System::Kernel::SINGLE_LIST_ENTRY, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for ZONE_SEGMENT_HEADER {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for ZONE_SEGMENT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _EXT_SET_PARAMETERS_V0 { + pub Version: u32, + pub Reserved: u32, + pub NoWakeTolerance: i64, +} +impl ::core::marker::Copy for _EXT_SET_PARAMETERS_V0 {} +impl ::core::clone::Clone for _EXT_SET_PARAMETERS_V0 { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub type ALLOCATE_FUNCTION = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type BOOT_DRIVER_CALLBACK_FUNCTION = ::core::option::Option ()>; +pub type BOUND_CALLBACK = ::core::option::Option BOUND_CALLBACK_STATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type D3COLD_REQUEST_AUX_POWER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type D3COLD_REQUEST_CORE_POWER_RAIL = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type D3COLD_REQUEST_PERST_DELAY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DEVICE_BUS_SPECIFIC_RESET_HANDLER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type DEVICE_CHANGE_COMPLETE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DEVICE_QUERY_BUS_SPECIFIC_RESET_HANDLER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DEVICE_RESET_COMPLETION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DEVICE_RESET_HANDLER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type DMA_COMPLETION_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type DRIVER_ADD_DEVICE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type DRIVER_CANCEL = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type DRIVER_CONTROL = ::core::option::Option IO_ALLOCATION_ACTION>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type DRIVER_DISPATCH = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type DRIVER_DISPATCH_PAGED = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DRIVER_DISPATCH_RAISED = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type DRIVER_INITIALIZE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type DRIVER_LIST_CONTROL = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DRIVER_NOTIFICATION_CALLBACK_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type DRIVER_REINITIALIZE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type DRIVER_STARTIO = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type DRIVER_UNLOAD = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ENABLE_VIRTUALIZATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_System_Diagnostics_Etw\"`"] +#[cfg(feature = "Win32_System_Diagnostics_Etw")] +pub type ETWENABLECALLBACK = ::core::option::Option ()>; +pub type EXPAND_STACK_CALLOUT = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub type EXT_CALLBACK = ::core::option::Option ()>; +pub type EXT_DELETE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type EX_CALLBACK_FUNCTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_ACQUIRE_FILE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_ACQUIRE_FOR_CCFLUSH = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_ACQUIRE_FOR_MOD_WRITE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_CHECK_IF_POSSIBLE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_DETACH_DEVICE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_DEVICE_CONTROL = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_LOCK = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_MDL_READ = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_MDL_READ_COMPLETE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_MDL_READ_COMPLETE_COMPRESSED = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_MDL_WRITE_COMPLETE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_PREPARE_MDL_WRITE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_QUERY_BASIC_INFO = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_QUERY_NETWORK_OPEN_INFO = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_QUERY_OPEN = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_QUERY_STANDARD_INFO = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_READ = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_READ_COMPRESSED = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_RELEASE_FILE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_RELEASE_FOR_CCFLUSH = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_RELEASE_FOR_MOD_WRITE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_UNLOCK_ALL = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_UNLOCK_ALL_BY_KEY = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_UNLOCK_SINGLE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_WRITE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type FAST_IO_WRITE_COMPRESSED = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +pub type FPGA_BUS_SCAN = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FPGA_CONTROL_CONFIG_SPACE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FPGA_CONTROL_ERROR_REPORTING = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FPGA_CONTROL_LINK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type FREE_FUNCTION = ::core::option::Option ()>; +pub type FWMI_NOTIFICATION_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type GET_D3COLD_CAPABILITY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type GET_D3COLD_LAST_TRANSITION_STATUS = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type GET_DEVICE_RESET_STATUS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type GET_DMA_ADAPTER = ::core::option::Option *mut DMA_ADAPTER>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Power"))] +pub type GET_IDLE_WAKE_INFO = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type GET_SDEV_IDENTIFIER = ::core::option::Option u64>; +pub type GET_SET_DEVICE_DATA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type GET_UPDATED_BUS_RESOURCE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type GET_VIRTUAL_DEVICE_DATA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type GET_VIRTUAL_DEVICE_LOCATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type GET_VIRTUAL_DEVICE_RESOURCES = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type GET_VIRTUAL_FUNCTION_PROBED_BARS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type HVL_WHEA_ERROR_NOTIFICATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IOMMU_DEVICE_CREATE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_DEVICE_DELETE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IOMMU_DEVICE_FAULT_HANDLER = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub type IOMMU_DEVICE_QUERY_DOMAIN_TYPES = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IOMMU_DOMAIN_ATTACH_DEVICE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_DOMAIN_ATTACH_DEVICE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_DOMAIN_CONFIGURE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_DOMAIN_CREATE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_DOMAIN_CREATE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_DOMAIN_DELETE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IOMMU_DOMAIN_DETACH_DEVICE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_DOMAIN_DETACH_DEVICE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_FLUSH_DOMAIN = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_FLUSH_DOMAIN_VA_LIST = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type IOMMU_INTERFACE_STATE_CHANGE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_MAP_IDENTITY_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_MAP_IDENTITY_RANGE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_MAP_LOGICAL_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_MAP_LOGICAL_RANGE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_MAP_RESERVED_LOGICAL_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IOMMU_QUERY_INPUT_MAPPINGS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IOMMU_SET_DEVICE_FAULT_REPORTING = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_SET_DEVICE_FAULT_REPORTING_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_UNMAP_IDENTITY_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_UNMAP_IDENTITY_RANGE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_UNMAP_LOGICAL_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type IOMMU_UNMAP_RESERVED_LOGICAL_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type IOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IO_COMPLETION_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IO_CSQ_ACQUIRE_LOCK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IO_CSQ_COMPLETE_CANCELED_IRP = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IO_CSQ_INSERT_IRP = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IO_CSQ_INSERT_IRP_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IO_CSQ_PEEK_NEXT_IRP = ::core::option::Option *mut super::super::Foundation::IRP>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IO_CSQ_RELEASE_LOCK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IO_CSQ_REMOVE_IRP = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IO_DPC_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IO_PERSISTED_MEMORY_ENUMERATION_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type IO_SESSION_NOTIFICATION_FUNCTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IO_TIMER_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type IO_WORKITEM_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub type IO_WORKITEM_ROUTINE_EX = ::core::option::Option ()>; +pub type KBUGCHECK_CALLBACK_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub type KBUGCHECK_REASON_CALLBACK_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +pub type KDEFERRED_ROUTINE = ::core::option::Option ()>; +pub type KIPI_BROADCAST_WORKER = ::core::option::Option usize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KMESSAGE_SERVICE_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KSERVICE_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +pub type KSTART_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KSYNCHRONIZE_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +pub type MM_MDL_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type NMI_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type NPEM_CONTROL_ENABLE_DISABLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type NPEM_CONTROL_QUERY_CONTROL = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type NPEM_CONTROL_QUERY_STANDARD_CAPABILITIES = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type NPEM_CONTROL_SET_STANDARD_CONTROL = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub type NTFS_DEREF_EXPORTED_SECURITY_DESCRIPTOR = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PALLOCATE_ADAPTER_CHANNEL = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PALLOCATE_ADAPTER_CHANNEL_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PALLOCATE_COMMON_BUFFER = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PALLOCATE_COMMON_BUFFER_EX = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PALLOCATE_COMMON_BUFFER_VECTOR = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PALLOCATE_COMMON_BUFFER_WITH_BOUNDS = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PALLOCATE_DOMAIN_COMMON_BUFFER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PALLOCATE_FUNCTION = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PALLOCATE_FUNCTION_EX = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PARBITER_HANDLER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PBOOT_DRIVER_CALLBACK_FUNCTION = ::core::option::Option ()>; +pub type PBOUND_CALLBACK = ::core::option::Option BOUND_CALLBACK_STATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PBUILD_MDL_FROM_SCATTER_GATHER_LIST = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PBUILD_SCATTER_GATHER_LIST = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PBUILD_SCATTER_GATHER_LIST_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PCALCULATE_SCATTER_GATHER_LIST_SIZE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PCALLBACK_FUNCTION = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PCANCEL_ADAPTER_CHANNEL = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PCANCEL_MAPPED_TRANSFER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PCI_ERROR_HANDLER_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCI_EXPRESS_WAKE_CONTROL = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCI_IS_DEVICE_PRESENT = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCI_IS_DEVICE_PRESENT_EX = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +pub type PCI_LINE_TO_PIN = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCI_MSIX_GET_ENTRY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCI_MSIX_GET_TABLE_SIZE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCI_MSIX_MASKUNMASK_ENTRY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCI_MSIX_SET_ENTRY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PCI_PIN_TO_LINE = ::core::option::Option ()>; +pub type PCI_PREPARE_MULTISTAGE_RESUME = ::core::option::Option ()>; +pub type PCI_READ_WRITE_CONFIG = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCI_ROOT_BUS_CAPABILITY = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCI_SET_ACS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCI_SET_ACS2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCI_SET_ATS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PCLFS_CLIENT_ADVANCE_TAIL_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PCLFS_CLIENT_LFF_HANDLER_COMPLETE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PCLFS_CLIENT_LOG_UNPINNED_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PCONFIGURE_ADAPTER_CHANNEL = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCRASHDUMP_POWER_ON = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PCREATE_COMMON_BUFFER_FROM_MDL = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCREATE_PROCESS_NOTIFY_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PCREATE_PROCESS_NOTIFY_ROUTINE_EX = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCREATE_THREAD_NOTIFY_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub type PCW_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PD3COLD_REQUEST_AUX_POWER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PD3COLD_REQUEST_CORE_POWER_RAIL = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PD3COLD_REQUEST_PERST_DELAY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDEBUG_DEVICE_FOUND_FUNCTION = ::core::option::Option KD_CALLBACK_ACTION>; +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub type PDEBUG_PRINT_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDEVICE_BUS_SPECIFIC_RESET_HANDLER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PDEVICE_CHANGE_COMPLETE_CALLBACK = ::core::option::Option ()>; +pub type PDEVICE_NOTIFY_CALLBACK = ::core::option::Option ()>; +pub type PDEVICE_NOTIFY_CALLBACK2 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDEVICE_QUERY_BUS_SPECIFIC_RESET_HANDLER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PDEVICE_RESET_COMPLETION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDEVICE_RESET_HANDLER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PDMA_COMPLETION_ROUTINE = ::core::option::Option ()>; +pub type PDRIVER_CMC_EXCEPTION_CALLBACK = ::core::option::Option ()>; +pub type PDRIVER_CONTROL = ::core::option::Option IO_ALLOCATION_ACTION>; +pub type PDRIVER_CPE_EXCEPTION_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDRIVER_DISPATCH_PAGED = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PDRIVER_EXCPTN_CALLBACK = ::core::option::Option ()>; +pub type PDRIVER_LIST_CONTROL = ::core::option::Option ()>; +pub type PDRIVER_MCA_EXCEPTION_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDRIVER_NOTIFICATION_CALLBACK_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PDRIVER_REINITIALIZE = ::core::option::Option ()>; +pub type PDRIVER_VERIFIER_THUNK_ROUTINE = ::core::option::Option usize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PENABLE_VIRTUALIZATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PETWENABLECALLBACK = ::core::option::Option ()>; +pub type PEXPAND_STACK_CALLOUT = ::core::option::Option ()>; +pub type PEXT_CALLBACK = ::core::option::Option ()>; +pub type PEXT_DELETE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PEX_CALLBACK_FUNCTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLUSH_ADAPTER_BUFFERS = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLUSH_ADAPTER_BUFFERS_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFLUSH_DMA_BUFFER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNFTH = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_IN_USE_PAGE_OFFLINE_NOTIFY = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_NT_COMMIT_TRANSACTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type PFN_NT_CREATE_TRANSACTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type PFN_NT_OPEN_TRANSACTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +pub type PFN_NT_QUERY_INFORMATION_TRANSACTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_NT_ROLLBACK_TRANSACTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +pub type PFN_NT_SET_INFORMATION_TRANSACTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_RTL_IS_NTDDI_VERSION_AVAILABLE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_RTL_IS_SERVICE_PACK_VERSION_INSTALLED = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type PFN_WHEA_HIGH_IRQL_LOG_SEL_EVENT_HANDLER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PFPGA_BUS_SCAN = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFPGA_CONTROL_CONFIG_SPACE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFPGA_CONTROL_ERROR_REPORTING = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFPGA_CONTROL_LINK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFREE_ADAPTER_CHANNEL = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFREE_ADAPTER_OBJECT = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFREE_COMMON_BUFFER = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFREE_COMMON_BUFFER_FROM_VECTOR = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFREE_COMMON_BUFFER_VECTOR = ::core::option::Option ()>; +pub type PFREE_FUNCTION_EX = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PFREE_MAP_REGISTERS = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PGET_COMMON_BUFFER_FROM_VECTOR_BY_INDEX = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGET_D3COLD_CAPABILITY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PGET_D3COLD_LAST_TRANSITION_STATUS = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGET_DEVICE_RESET_STATUS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PGET_DMA_ADAPTER = ::core::option::Option *mut DMA_ADAPTER>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PGET_DMA_ADAPTER_INFO = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PGET_DMA_ALIGNMENT = ::core::option::Option u32>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PGET_DMA_DOMAIN = ::core::option::Option super::super::super::Win32::Foundation::HANDLE>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PGET_DMA_TRANSFER_INFO = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGET_IDLE_WAKE_INFO = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGET_LOCATION_STRING = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PGET_SCATTER_GATHER_LIST = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PGET_SCATTER_GATHER_LIST_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PGET_SDEV_IDENTIFIER = ::core::option::Option u64>; +pub type PGET_SET_DEVICE_DATA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGET_UPDATED_BUS_RESOURCE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PGET_VIRTUAL_DEVICE_DATA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGET_VIRTUAL_DEVICE_LOCATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PGET_VIRTUAL_DEVICE_RESOURCES = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGET_VIRTUAL_FUNCTION_PROBED_BARS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PGPE_CLEAR_STATUS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGPE_CLEAR_STATUS2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PGPE_CONNECT_VECTOR = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGPE_CONNECT_VECTOR2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PGPE_DISABLE_EVENT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGPE_DISABLE_EVENT2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGPE_DISCONNECT_VECTOR = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGPE_DISCONNECT_VECTOR2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PGPE_ENABLE_EVENT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGPE_ENABLE_EVENT2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGPE_SERVICE_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGPE_SERVICE_ROUTINE2 = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PHALIOREADWRITEHANDLER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PHALMCAINTERFACELOCK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PHALMCAINTERFACEREADREGISTER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PHALMCAINTERFACEUNLOCK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PHAL_RESET_DISPLAY_PARAMETERS = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PHVL_WHEA_ERROR_NOTIFICATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PINITIALIZE_DMA_TRANSFER_CONTEXT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PINTERFACE_DEREFERENCE = ::core::option::Option ()>; +pub type PINTERFACE_REFERENCE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_DEVICE_CREATE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_DEVICE_DELETE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PIOMMU_DEVICE_FAULT_HANDLER = ::core::option::Option ()>; +pub type PIOMMU_DEVICE_QUERY_DOMAIN_TYPES = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_DOMAIN_ATTACH_DEVICE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_DOMAIN_ATTACH_DEVICE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_DOMAIN_CONFIGURE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_DOMAIN_CREATE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_DOMAIN_CREATE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_DOMAIN_DELETE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_DOMAIN_DETACH_DEVICE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_DOMAIN_DETACH_DEVICE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_FLUSH_DOMAIN = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_FLUSH_DOMAIN_VA_LIST = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PIOMMU_INTERFACE_STATE_CHANGE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_MAP_IDENTITY_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_MAP_IDENTITY_RANGE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_MAP_LOGICAL_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_MAP_LOGICAL_RANGE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_MAP_RESERVED_LOGICAL_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_QUERY_INPUT_MAPPINGS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_RESERVE_LOGICAL_ADDRESS_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_SET_DEVICE_FAULT_REPORTING = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_SET_DEVICE_FAULT_REPORTING_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_UNMAP_IDENTITY_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_UNMAP_IDENTITY_RANGE_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_UNMAP_LOGICAL_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_UNMAP_RESERVED_LOGICAL_RANGE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIO_CONTAINER_NOTIFICATION_FUNCTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PIO_CSQ_ACQUIRE_LOCK = ::core::option::Option ()>; +pub type PIO_CSQ_COMPLETE_CANCELED_IRP = ::core::option::Option ()>; +pub type PIO_CSQ_INSERT_IRP = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIO_CSQ_INSERT_IRP_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PIO_CSQ_PEEK_NEXT_IRP = ::core::option::Option *mut super::super::Foundation::IRP>; +pub type PIO_CSQ_RELEASE_LOCK = ::core::option::Option ()>; +pub type PIO_CSQ_REMOVE_IRP = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIO_DEVICE_EJECT_CALLBACK = ::core::option::Option ()>; +pub type PIO_DPC_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIO_PERSISTED_MEMORY_ENUMERATION_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIO_QUERY_DEVICE_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIO_SESSION_NOTIFICATION_FUNCTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PIO_TIMER_ROUTINE = ::core::option::Option ()>; +pub type PIO_WORKITEM_ROUTINE = ::core::option::Option ()>; +pub type PIO_WORKITEM_ROUTINE_EX = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PJOIN_DMA_DOMAIN = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PKBUGCHECK_CALLBACK_ROUTINE = ::core::option::Option ()>; +pub type PKBUGCHECK_REASON_CALLBACK_ROUTINE = ::core::option::Option ()>; +pub type PKIPI_BROADCAST_WORKER = ::core::option::Option usize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PKMESSAGE_SERVICE_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PKSERVICE_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +pub type PKSTART_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PKSYNCHRONIZE_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PLEAVE_DMA_DOMAIN = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLOAD_IMAGE_NOTIFY_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PMAP_TRANSFER = ::core::option::Option i64>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PMAP_TRANSFER_EX = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMM_DLL_INITIALIZE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMM_DLL_UNLOAD = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMM_GET_SYSTEM_ROUTINE_ADDRESS_EX = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PMM_MDL_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type PMM_ROTATE_COPY_CALLBACK_FUNCTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PNMI_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PNPEM_CONTROL_ENABLE_DISABLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PNPEM_CONTROL_QUERY_CONTROL = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PNPEM_CONTROL_QUERY_STANDARD_CAPABILITIES = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PNPEM_CONTROL_SET_STANDARD_CONTROL = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PNTFS_DEREF_EXPORTED_SECURITY_DESCRIPTOR = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type POB_POST_OPERATION_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub type POB_PRE_OPERATION_CALLBACK = ::core::option::Option OB_PREOP_CALLBACK_STATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type POWER_SETTING_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PO_FX_COMPONENT_CRITICAL_TRANSITION_CALLBACK = ::core::option::Option ()>; +pub type PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK = ::core::option::Option ()>; +pub type PO_FX_COMPONENT_IDLE_STATE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PO_FX_COMPONENT_PERF_STATE_CALLBACK = ::core::option::Option ()>; +pub type PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK = ::core::option::Option ()>; +pub type PO_FX_DEVICE_POWER_REQUIRED_CALLBACK = ::core::option::Option ()>; +pub type PO_FX_DIRECTED_POWER_DOWN_CALLBACK = ::core::option::Option ()>; +pub type PO_FX_DIRECTED_POWER_UP_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PO_FX_DRIPS_WATCHDOG_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PO_FX_POWER_CONTROL_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PPCI_EXPRESS_ROOT_PORT_READ_CONFIG_SPACE = ::core::option::Option u32>; +pub type PPCI_EXPRESS_ROOT_PORT_WRITE_CONFIG_SPACE = ::core::option::Option u32>; +pub type PPCI_EXPRESS_WAKE_CONTROL = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPCI_IS_DEVICE_PRESENT = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPCI_IS_DEVICE_PRESENT_EX = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +pub type PPCI_LINE_TO_PIN = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPCI_MSIX_GET_ENTRY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPCI_MSIX_GET_TABLE_SIZE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPCI_MSIX_MASKUNMASK_ENTRY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPCI_MSIX_SET_ENTRY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PPCI_PIN_TO_LINE = ::core::option::Option ()>; +pub type PPCI_PREPARE_MULTISTAGE_RESUME = ::core::option::Option ()>; +pub type PPCI_READ_WRITE_CONFIG = ::core::option::Option u32>; +pub type PPCI_ROOT_BUS_CAPABILITY = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPCI_SET_ACS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPCI_SET_ACS2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPCI_SET_ATS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPCW_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPHYSICAL_COUNTER_EVENT_BUFFER_OVERFLOW_HANDLER = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPHYSICAL_COUNTER_OVERFLOW_HANDLER = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPOWER_SETTING_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK = ::core::option::Option ()>; +pub type PPO_FX_COMPONENT_CRITICAL_TRANSITION_CALLBACK = ::core::option::Option ()>; +pub type PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK = ::core::option::Option ()>; +pub type PPO_FX_COMPONENT_IDLE_STATE_CALLBACK = ::core::option::Option ()>; +pub type PPO_FX_COMPONENT_PERF_STATE_CALLBACK = ::core::option::Option ()>; +pub type PPO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK = ::core::option::Option ()>; +pub type PPO_FX_DEVICE_POWER_REQUIRED_CALLBACK = ::core::option::Option ()>; +pub type PPO_FX_DIRECTED_POWER_DOWN_CALLBACK = ::core::option::Option ()>; +pub type PPO_FX_DIRECTED_POWER_UP_CALLBACK = ::core::option::Option ()>; +pub type PPO_FX_DRIPS_WATCHDOG_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPO_FX_POWER_CONTROL_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PPROCESSOR_CALLBACK_FUNCTION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPROCESSOR_HALT_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPTM_DEVICE_DISABLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPTM_DEVICE_ENABLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPTM_DEVICE_QUERY_GRANULARITY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPTM_DEVICE_QUERY_TIME_SOURCE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PPUT_DMA_ADAPTER = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PPUT_SCATTER_GATHER_LIST = ::core::option::Option ()>; +pub type PQUERYEXTENDEDADDRESS = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PREAD_DMA_COUNTER = ::core::option::Option u32>; +pub type PREENUMERATE_SELF = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PREGISTER_FOR_DEVICE_NOTIFICATIONS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREGISTER_FOR_DEVICE_NOTIFICATIONS2 = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREPLACE_BEGIN = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREPLACE_DRIVER_INIT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREPLACE_END = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREPLACE_GET_MEMORY_DESTINATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREPLACE_INITIATE_HARDWARE_MIRROR = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREPLACE_MAP_MEMORY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREPLACE_MIRROR_PHYSICAL_MEMORY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREPLACE_MIRROR_PLATFORM_MEMORY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREPLACE_SET_PROCESSOR_ID = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREPLACE_SWAP = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PREPLACE_UNLOAD = ::core::option::Option ()>; +pub type PREQUEST_POWER_COMPLETE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub type PROCESSOR_CALLBACK_FUNCTION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PROCESSOR_HALT_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PRTL_AVL_ALLOCATE_ROUTINE = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PRTL_AVL_COMPARE_ROUTINE = ::core::option::Option RTL_GENERIC_COMPARE_RESULTS>; +pub type PRTL_AVL_FREE_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRTL_AVL_MATCH_FUNCTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PRTL_GENERIC_ALLOCATE_ROUTINE = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PRTL_GENERIC_COMPARE_ROUTINE = ::core::option::Option RTL_GENERIC_COMPARE_RESULTS>; +pub type PRTL_GENERIC_FREE_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRTL_QUERY_REGISTRY_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PRTL_RUN_ONCE_INIT_FN = ::core::option::Option u32>; +pub type PSECURE_DRIVER_PROCESS_DEREFERENCE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub type PSECURE_DRIVER_PROCESS_REFERENCE = ::core::option::Option super::super::Foundation::PEPROCESS>; +pub type PSET_D3COLD_SUPPORT = ::core::option::Option ()>; +pub type PSET_VIRTUAL_DEVICE_DATA = ::core::option::Option u32>; +pub type PSE_IMAGE_VERIFICATION_CALLBACK_FUNCTION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSHED_PI_ATTEMPT_ERROR_RECOVERY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSHED_PI_CLEAR_ERROR_RECORD = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type PSHED_PI_CLEAR_ERROR_STATUS = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type PSHED_PI_DISABLE_ERROR_SOURCE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type PSHED_PI_ENABLE_ERROR_SOURCE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type PSHED_PI_FINALIZE_ERROR_RECORD = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type PSHED_PI_GET_ALL_ERROR_SOURCES = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type PSHED_PI_GET_ERROR_SOURCE_INFO = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSHED_PI_GET_INJECTION_CAPABILITIES = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSHED_PI_INJECT_ERROR = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSHED_PI_READ_ERROR_RECORD = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type PSHED_PI_RETRIEVE_ERROR_INFO = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type PSHED_PI_SET_ERROR_SOURCE_INFO = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSHED_PI_WRITE_ERROR_RECORD = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type PTIMER_APC_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PTM_DEVICE_DISABLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PTM_DEVICE_ENABLE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PTM_DEVICE_QUERY_GRANULARITY = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PTM_DEVICE_QUERY_TIME_SOURCE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PTM_PROPAGATE_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type PTM_RM_NOTIFICATION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PTRANSLATE_BUS_ADDRESS = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PTRANSLATE_RESOURCE_HANDLER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type PUNREGISTER_FOR_DEVICE_NOTIFICATIONS = ::core::option::Option ()>; +pub type PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2 = ::core::option::Option ()>; +pub type PciLine2Pin = ::core::option::Option ()>; +pub type PciPin2Line = ::core::option::Option ()>; +pub type PciReadWriteConfig = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type REQUEST_POWER_COMPLETE = ::core::option::Option ()>; +pub type RTL_AVL_ALLOCATE_ROUTINE = ::core::option::Option *mut ::core::ffi::c_void>; +pub type RTL_AVL_COMPARE_ROUTINE = ::core::option::Option RTL_GENERIC_COMPARE_RESULTS>; +pub type RTL_AVL_FREE_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type RTL_AVL_MATCH_FUNCTION = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +pub type RTL_GENERIC_ALLOCATE_ROUTINE = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +pub type RTL_GENERIC_COMPARE_ROUTINE = ::core::option::Option RTL_GENERIC_COMPARE_RESULTS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_System_Kernel"))] +pub type RTL_GENERIC_FREE_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type RTL_QUERY_REGISTRY_ROUTINE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_System_Threading\"`"] +#[cfg(feature = "Win32_System_Threading")] +pub type RTL_RUN_ONCE_INIT_FN = ::core::option::Option u32>; +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub type SECURE_DRIVER_PROCESS_DEREFERENCE = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub type SECURE_DRIVER_PROCESS_REFERENCE = ::core::option::Option super::super::Foundation::PEPROCESS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SET_D3COLD_SUPPORT = ::core::option::Option ()>; +pub type SET_VIRTUAL_DEVICE_DATA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SE_IMAGE_VERIFICATION_CALLBACK_FUNCTION = ::core::option::Option ()>; +pub type SILO_CONTEXT_CLEANUP_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type SILO_MONITOR_CREATE_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub type SILO_MONITOR_TERMINATE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type TRANSLATE_BUS_ADDRESS = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WHEA_ERROR_SOURCE_CORRECT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WHEA_ERROR_SOURCE_CREATE_RECORD = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WHEA_ERROR_SOURCE_INITIALIZE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WHEA_ERROR_SOURCE_RECOVER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type WHEA_ERROR_SOURCE_UNINITIALIZE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WHEA_SIGNAL_HANDLER_OVERRIDE_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +pub type WMI_NOTIFICATION_CALLBACK = ::core::option::Option ()>; +pub type WORKER_THREAD_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type _WHEA_ERROR_SOURCE_CORRECT = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type _WHEA_ERROR_SOURCE_CREATE_RECORD = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type _WHEA_ERROR_SOURCE_INITIALIZE = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type _WHEA_ERROR_SOURCE_RECOVER = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type _WHEA_ERROR_SOURCE_UNINITIALIZE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type _WHEA_SIGNAL_HANDLER_OVERRIDE_CALLBACK = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type pHalAssignSlotResources = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pHalEndMirroring = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type pHalEndOfBoot = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type pHalExamineMBR = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pHalFindBusAddressTranslation = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +pub type pHalGetAcpiTable = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type pHalGetDmaAdapter = ::core::option::Option *mut DMA_ADAPTER>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type pHalGetInterruptTranslator = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub type pHalGetPrmCache = ::core::option::Option ()>; +pub type pHalHaltSystem = ::core::option::Option ()>; +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub type pHalHandlerForBus = ::core::option::Option super::super::Foundation::PBUS_HANDLER>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pHalInitPnpDriver = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pHalInitPowerManagement = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Ioctl\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Ioctl", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type pHalIoReadPartitionTable = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type pHalIoSetPartitionInformation = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Wdk_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`, `\"Win32_System_Ioctl\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Power\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Wdk_Storage_FileSystem", feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO", feature = "Win32_System_Ioctl", feature = "Win32_System_Kernel", feature = "Win32_System_Power", feature = "Win32_System_WindowsProgramming"))] +pub type pHalIoWritePartitionTable = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pHalMirrorPhysicalMemory = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pHalMirrorVerify = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Wdk_Foundation", feature = "Win32_Foundation"))] +pub type pHalQueryBusSlots = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pHalQuerySystemInformation = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Wdk_Foundation\"`"] +#[cfg(feature = "Wdk_Foundation")] +pub type pHalReferenceBusHandler = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pHalResetDisplay = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +pub type pHalSetPciErrorHandlerCallback = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pHalSetSystemInformation = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pHalStartMirroring = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pHalTranslateBusAddress = ::core::option::Option super::super::super::Win32::Foundation::BOOLEAN>; +pub type pHalVectorToIDTEntry = ::core::option::Option u8>; +pub type pKdCheckPowerButton = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pKdEnumerateDebuggingDevices = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type pKdGetAcpiTablePhase0 = ::core::option::Option *mut ::core::ffi::c_void>; +pub type pKdGetPciDataByOffset = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pKdMapPhysicalMemory64 = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pKdReleaseIntegratedDeviceForDebugging = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pKdReleasePciDeviceForDebugging = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +pub type pKdSetPciDataByOffset = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pKdSetupIntegratedDeviceForDebugging = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pKdSetupPciDeviceForDebugging = ::core::option::Option super::super::super::Win32::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pKdUnmapVirtualAddress = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/System/Threading/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/Threading/mod.rs new file mode 100644 index 000000000..98c2bb812 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/Threading/mod.rs @@ -0,0 +1,127 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtQueryInformationProcess(processhandle : super::super::super::Win32::Foundation:: HANDLE, processinformationclass : PROCESSINFOCLASS, processinformation : *mut ::core::ffi::c_void, processinformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtQueryInformationThread(threadhandle : super::super::super::Win32::Foundation:: HANDLE, threadinformationclass : THREADINFOCLASS, threadinformation : *mut ::core::ffi::c_void, threadinformationlength : u32, returnlength : *mut u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtSetInformationThread(threadhandle : super::super::super::Win32::Foundation:: HANDLE, threadinformationclass : THREADINFOCLASS, threadinformation : *const ::core::ffi::c_void, threadinformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NtWaitForSingleObject(handle : super::super::super::Win32::Foundation:: HANDLE, alertable : super::super::super::Win32::Foundation:: BOOLEAN, timeout : *mut i64) -> super::super::super::Win32::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZwSetInformationThread(threadhandle : super::super::super::Win32::Foundation:: HANDLE, threadinformationclass : THREADINFOCLASS, threadinformation : *const ::core::ffi::c_void, threadinformationlength : u32) -> super::super::super::Win32::Foundation:: NTSTATUS); +pub const MaxProcessInfoClass: PROCESSINFOCLASS = 83i32; +pub const MaxThreadInfoClass: THREADINFOCLASS = 56i32; +pub const ProcessAccessToken: PROCESSINFOCLASS = 9i32; +pub const ProcessAffinityMask: PROCESSINFOCLASS = 21i32; +pub const ProcessAffinityUpdateMode: PROCESSINFOCLASS = 45i32; +pub const ProcessBasePriority: PROCESSINFOCLASS = 5i32; +pub const ProcessBasicInformation: PROCESSINFOCLASS = 0i32; +pub const ProcessBreakOnTermination: PROCESSINFOCLASS = 29i32; +pub const ProcessCheckStackExtentsMode: PROCESSINFOCLASS = 59i32; +pub const ProcessCommandLineInformation: PROCESSINFOCLASS = 60i32; +pub const ProcessCommitReleaseInformation: PROCESSINFOCLASS = 65i32; +pub const ProcessCookie: PROCESSINFOCLASS = 36i32; +pub const ProcessCycleTime: PROCESSINFOCLASS = 38i32; +pub const ProcessDebugFlags: PROCESSINFOCLASS = 31i32; +pub const ProcessDebugObjectHandle: PROCESSINFOCLASS = 30i32; +pub const ProcessDebugPort: PROCESSINFOCLASS = 7i32; +pub const ProcessDefaultHardErrorMode: PROCESSINFOCLASS = 12i32; +pub const ProcessDeviceMap: PROCESSINFOCLASS = 23i32; +pub const ProcessDynamicFunctionTableInformation: PROCESSINFOCLASS = 53i32; +pub const ProcessEnableAlignmentFaultFixup: PROCESSINFOCLASS = 17i32; +pub const ProcessEnergyTrackingState: PROCESSINFOCLASS = 82i32; +pub const ProcessExceptionPort: PROCESSINFOCLASS = 8i32; +pub const ProcessExecuteFlags: PROCESSINFOCLASS = 34i32; +pub const ProcessFaultInformation: PROCESSINFOCLASS = 63i32; +pub const ProcessForegroundInformation: PROCESSINFOCLASS = 25i32; +pub const ProcessGroupInformation: PROCESSINFOCLASS = 47i32; +pub const ProcessHandleCheckingMode: PROCESSINFOCLASS = 54i32; +pub const ProcessHandleCount: PROCESSINFOCLASS = 20i32; +pub const ProcessHandleInformation: PROCESSINFOCLASS = 51i32; +pub const ProcessHandleTable: PROCESSINFOCLASS = 58i32; +pub const ProcessHandleTracing: PROCESSINFOCLASS = 32i32; +pub const ProcessImageFileMapping: PROCESSINFOCLASS = 44i32; +pub const ProcessImageFileName: PROCESSINFOCLASS = 27i32; +pub const ProcessImageFileNameWin32: PROCESSINFOCLASS = 43i32; +pub const ProcessImageInformation: PROCESSINFOCLASS = 37i32; +pub const ProcessInPrivate: PROCESSINFOCLASS = 70i32; +pub const ProcessInstrumentationCallback: PROCESSINFOCLASS = 40i32; +pub const ProcessIoCounters: PROCESSINFOCLASS = 2i32; +pub const ProcessIoPortHandlers: PROCESSINFOCLASS = 13i32; +pub const ProcessIoPriority: PROCESSINFOCLASS = 33i32; +pub const ProcessKeepAliveCount: PROCESSINFOCLASS = 55i32; +pub const ProcessLUIDDeviceMapsEnabled: PROCESSINFOCLASS = 28i32; +pub const ProcessLdtInformation: PROCESSINFOCLASS = 10i32; +pub const ProcessLdtSize: PROCESSINFOCLASS = 11i32; +pub const ProcessMemoryAllocationMode: PROCESSINFOCLASS = 46i32; +pub const ProcessMemoryExhaustion: PROCESSINFOCLASS = 62i32; +pub const ProcessMitigationPolicy: PROCESSINFOCLASS = 52i32; +pub const ProcessOwnerInformation: PROCESSINFOCLASS = 49i32; +pub const ProcessPagePriority: PROCESSINFOCLASS = 39i32; +pub const ProcessPooledUsageAndLimits: PROCESSINFOCLASS = 14i32; +pub const ProcessPriorityBoost: PROCESSINFOCLASS = 22i32; +pub const ProcessPriorityClass: PROCESSINFOCLASS = 18i32; +pub const ProcessProtectionInformation: PROCESSINFOCLASS = 61i32; +pub const ProcessQuotaLimits: PROCESSINFOCLASS = 1i32; +pub const ProcessRaisePriority: PROCESSINFOCLASS = 6i32; +pub const ProcessRaiseUMExceptionOnInvalidHandleClose: PROCESSINFOCLASS = 71i32; +pub const ProcessReserved1Information: PROCESSINFOCLASS = 66i32; +pub const ProcessReserved2Information: PROCESSINFOCLASS = 67i32; +pub const ProcessRevokeFileHandles: PROCESSINFOCLASS = 56i32; +pub const ProcessSessionInformation: PROCESSINFOCLASS = 24i32; +pub const ProcessSubsystemInformation: PROCESSINFOCLASS = 75i32; +pub const ProcessSubsystemProcess: PROCESSINFOCLASS = 68i32; +pub const ProcessTelemetryIdInformation: PROCESSINFOCLASS = 64i32; +pub const ProcessThreadStackAllocation: PROCESSINFOCLASS = 41i32; +pub const ProcessTimes: PROCESSINFOCLASS = 4i32; +pub const ProcessTlsInformation: PROCESSINFOCLASS = 35i32; +pub const ProcessTokenVirtualizationEnabled: PROCESSINFOCLASS = 48i32; +pub const ProcessUserModeIOPL: PROCESSINFOCLASS = 16i32; +pub const ProcessVmCounters: PROCESSINFOCLASS = 3i32; +pub const ProcessWin32kSyscallFilterInformation: PROCESSINFOCLASS = 79i32; +pub const ProcessWindowInformation: PROCESSINFOCLASS = 50i32; +pub const ProcessWorkingSetControl: PROCESSINFOCLASS = 57i32; +pub const ProcessWorkingSetWatch: PROCESSINFOCLASS = 15i32; +pub const ProcessWorkingSetWatchEx: PROCESSINFOCLASS = 42i32; +pub const ProcessWow64Information: PROCESSINFOCLASS = 26i32; +pub const ProcessWx86Information: PROCESSINFOCLASS = 19i32; +pub const ThreadActualBasePriority: THREADINFOCLASS = 25i32; +pub const ThreadActualGroupAffinity: THREADINFOCLASS = 41i32; +pub const ThreadAffinityMask: THREADINFOCLASS = 4i32; +pub const ThreadAmILastThread: THREADINFOCLASS = 12i32; +pub const ThreadBasePriority: THREADINFOCLASS = 3i32; +pub const ThreadBasicInformation: THREADINFOCLASS = 0i32; +pub const ThreadBreakOnTermination: THREADINFOCLASS = 18i32; +pub const ThreadCSwitchMon: THREADINFOCLASS = 27i32; +pub const ThreadCSwitchPmu: THREADINFOCLASS = 28i32; +pub const ThreadCounterProfiling: THREADINFOCLASS = 32i32; +pub const ThreadCpuAccountingInformation: THREADINFOCLASS = 34i32; +pub const ThreadCycleTime: THREADINFOCLASS = 23i32; +pub const ThreadDescriptorTableEntry: THREADINFOCLASS = 6i32; +pub const ThreadDynamicCodePolicyInfo: THREADINFOCLASS = 42i32; +pub const ThreadEnableAlignmentFaultFixup: THREADINFOCLASS = 7i32; +pub const ThreadEventPair_Reusable: THREADINFOCLASS = 8i32; +pub const ThreadGroupInformation: THREADINFOCLASS = 30i32; +pub const ThreadHideFromDebugger: THREADINFOCLASS = 17i32; +pub const ThreadIdealProcessor: THREADINFOCLASS = 13i32; +pub const ThreadIdealProcessorEx: THREADINFOCLASS = 33i32; +pub const ThreadImpersonationToken: THREADINFOCLASS = 5i32; +pub const ThreadIoPriority: THREADINFOCLASS = 22i32; +pub const ThreadIsIoPending: THREADINFOCLASS = 16i32; +pub const ThreadIsTerminated: THREADINFOCLASS = 20i32; +pub const ThreadLastSystemCall: THREADINFOCLASS = 21i32; +pub const ThreadPagePriority: THREADINFOCLASS = 24i32; +pub const ThreadPerformanceCount: THREADINFOCLASS = 11i32; +pub const ThreadPriority: THREADINFOCLASS = 2i32; +pub const ThreadPriorityBoost: THREADINFOCLASS = 14i32; +pub const ThreadQuerySetWin32StartAddress: THREADINFOCLASS = 9i32; +pub const ThreadSetTlsArrayAddress: THREADINFOCLASS = 15i32; +pub const ThreadSubsystemInformation: THREADINFOCLASS = 45i32; +pub const ThreadSuspendCount: THREADINFOCLASS = 35i32; +pub const ThreadSwitchLegacyState: THREADINFOCLASS = 19i32; +pub const ThreadTebInformation: THREADINFOCLASS = 26i32; +pub const ThreadTimes: THREADINFOCLASS = 1i32; +pub const ThreadUmsInformation: THREADINFOCLASS = 31i32; +pub const ThreadWow64Context: THREADINFOCLASS = 29i32; +pub const ThreadZeroTlsCell: THREADINFOCLASS = 10i32; +pub type PROCESSINFOCLASS = i32; +pub type THREADINFOCLASS = i32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/System/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/mod.rs new file mode 100644 index 000000000..774ee190f --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/System/mod.rs @@ -0,0 +1,18 @@ +#[cfg(feature = "Wdk_System_IO")] +#[doc = "Required features: `\"Wdk_System_IO\"`"] +pub mod IO; +#[cfg(feature = "Wdk_System_OfflineRegistry")] +#[doc = "Required features: `\"Wdk_System_OfflineRegistry\"`"] +pub mod OfflineRegistry; +#[cfg(feature = "Wdk_System_Registry")] +#[doc = "Required features: `\"Wdk_System_Registry\"`"] +pub mod Registry; +#[cfg(feature = "Wdk_System_SystemInformation")] +#[doc = "Required features: `\"Wdk_System_SystemInformation\"`"] +pub mod SystemInformation; +#[cfg(feature = "Wdk_System_SystemServices")] +#[doc = "Required features: `\"Wdk_System_SystemServices\"`"] +pub mod SystemServices; +#[cfg(feature = "Wdk_System_Threading")] +#[doc = "Required features: `\"Wdk_System_Threading\"`"] +pub mod Threading; diff --git a/src/rust/vendor/windows-sys/src/Windows/Wdk/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Wdk/mod.rs new file mode 100644 index 000000000..f23f66126 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Wdk/mod.rs @@ -0,0 +1,12 @@ +#[cfg(feature = "Wdk_Foundation")] +#[doc = "Required features: `\"Wdk_Foundation\"`"] +pub mod Foundation; +#[cfg(feature = "Wdk_Graphics")] +#[doc = "Required features: `\"Wdk_Graphics\"`"] +pub mod Graphics; +#[cfg(feature = "Wdk_Storage")] +#[doc = "Required features: `\"Wdk_Storage\"`"] +pub mod Storage; +#[cfg(feature = "Wdk_System")] +#[doc = "Required features: `\"Wdk_System\"`"] +pub mod System; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Data/HtmlHelp/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Data/HtmlHelp/mod.rs new file mode 100644 index 000000000..2237ee361 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Data/HtmlHelp/mod.rs @@ -0,0 +1,558 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("htmlhelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HtmlHelpA(hwndcaller : super::super::Foundation:: HWND, pszfile : ::windows_sys::core::PCSTR, ucommand : u32, dwdata : usize) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("htmlhelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HtmlHelpW(hwndcaller : super::super::Foundation:: HWND, pszfile : ::windows_sys::core::PCWSTR, ucommand : u32, dwdata : usize) -> super::super::Foundation:: HWND); +pub type IITDatabase = *mut ::core::ffi::c_void; +pub type IITPropList = *mut ::core::ffi::c_void; +pub type IITResultSet = *mut ::core::ffi::c_void; +pub type IStemSink = *mut ::core::ffi::c_void; +pub type IStemmerConfig = *mut ::core::ffi::c_void; +pub type IWordBreakerConfig = *mut ::core::ffi::c_void; +pub const CLSID_IITCmdInt: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4662daa2_d393_11d0_9a56_00c04fb68bf7); +pub const CLSID_IITDatabase: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66673452_8c23_11d0_a84e_00aa006c7d01); +pub const CLSID_IITDatabaseLocal: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4662daa9_d393_11d0_9a56_00c04fb68bf7); +pub const CLSID_IITGroupUpdate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4662daa4_d393_11d0_9a56_00c04fb68bf7); +pub const CLSID_IITIndexBuild: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8fa0d5aa_dedf_11d0_9a61_00c04fb68bf7); +pub const CLSID_IITPropList: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4662daae_d393_11d0_9a56_00c04fb68bf7); +pub const CLSID_IITResultSet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4662daa7_d393_11d0_9a56_00c04fb68bf7); +pub const CLSID_IITSvMgr: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4662daa3_d393_11d0_9a56_00c04fb68bf7); +pub const CLSID_IITWWFilterBuild: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8fa0d5ab_dedf_11d0_9a61_00c04fb68bf7); +pub const CLSID_IITWordWheel: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd73725c2_8c12_11d0_a84e_00aa006c7d01); +pub const CLSID_IITWordWheelLocal: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4662daa8_d393_11d0_9a56_00c04fb68bf7); +pub const CLSID_IITWordWheelUpdate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4662daa5_d393_11d0_9a56_00c04fb68bf7); +pub const CLSID_ITEngStemmer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8fa0d5a8_dedf_11d0_9a61_00c04fb68bf7); +pub const CLSID_ITStdBreaker: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4662daaf_d393_11d0_9a56_00c04fb68bf7); +pub const E_ALL_WILD: ::windows_sys::core::HRESULT = -2147479467i32; +pub const E_ALREADYINIT: ::windows_sys::core::HRESULT = -2147479421i32; +pub const E_ALREADYOPEN: ::windows_sys::core::HRESULT = -2147479533i32; +pub const E_ASSERT: ::windows_sys::core::HRESULT = -2147479546i32; +pub const E_BADBREAKER: ::windows_sys::core::HRESULT = -2147479469i32; +pub const E_BADFILE: ::windows_sys::core::HRESULT = -2147479549i32; +pub const E_BADFILTERSIZE: ::windows_sys::core::HRESULT = -2147479528i32; +pub const E_BADFORMAT: ::windows_sys::core::HRESULT = -2147479548i32; +pub const E_BADINDEXFLAGS: ::windows_sys::core::HRESULT = -2147479456i32; +pub const E_BADPARAM: ::windows_sys::core::HRESULT = -2147479535i32; +pub const E_BADRANGEOP: ::windows_sys::core::HRESULT = -2147479459i32; +pub const E_BADVALUE: ::windows_sys::core::HRESULT = -2147479468i32; +pub const E_BADVERSION: ::windows_sys::core::HRESULT = -2147479550i32; +pub const E_CANTFINDDLL: ::windows_sys::core::HRESULT = -2147479538i32; +pub const E_DISKFULL: ::windows_sys::core::HRESULT = -2147479496i32; +pub const E_DUPLICATE: ::windows_sys::core::HRESULT = -2147479551i32; +pub const E_EXPECTEDTERM: ::windows_sys::core::HRESULT = -2147479465i32; +pub const E_FILECLOSE: ::windows_sys::core::HRESULT = -2147479503i32; +pub const E_FILECREATE: ::windows_sys::core::HRESULT = -2147479504i32; +pub const E_FILEDELETE: ::windows_sys::core::HRESULT = -2147479499i32; +pub const E_FILEINVALID: ::windows_sys::core::HRESULT = -2147479498i32; +pub const E_FILENOTFOUND: ::windows_sys::core::HRESULT = -2147479497i32; +pub const E_FILEREAD: ::windows_sys::core::HRESULT = -2147479502i32; +pub const E_FILESEEK: ::windows_sys::core::HRESULT = -2147479501i32; +pub const E_FILEWRITE: ::windows_sys::core::HRESULT = -2147479500i32; +pub const E_GETLASTERROR: ::windows_sys::core::HRESULT = -2147479536i32; +pub const E_GROUPIDTOOBIG: ::windows_sys::core::HRESULT = -2147479542i32; +pub const E_INTERRUPT: ::windows_sys::core::HRESULT = -2147479545i32; +pub const E_INVALIDSTATE: ::windows_sys::core::HRESULT = -2147479534i32; +pub const E_MISSINGPROP: ::windows_sys::core::HRESULT = -2147479424i32; +pub const E_MISSLPAREN: ::windows_sys::core::HRESULT = -2147479464i32; +pub const E_MISSQUOTE: ::windows_sys::core::HRESULT = -2147479462i32; +pub const E_MISSRPAREN: ::windows_sys::core::HRESULT = -2147479463i32; +pub const E_NAMETOOLONG: ::windows_sys::core::HRESULT = -2147479520i32; +pub const E_NOHANDLE: ::windows_sys::core::HRESULT = -2147479537i32; +pub const E_NOKEYPROP: ::windows_sys::core::HRESULT = -2147479417i32; +pub const E_NOMERGEDDATA: ::windows_sys::core::HRESULT = -2147479540i32; +pub const E_NOPERMISSION: ::windows_sys::core::HRESULT = -2147479547i32; +pub const E_NOSTEMMER: ::windows_sys::core::HRESULT = -2147479454i32; +pub const E_NOTEXIST: ::windows_sys::core::HRESULT = -2147479552i32; +pub const E_NOTFOUND: ::windows_sys::core::HRESULT = -2147479539i32; +pub const E_NOTINIT: ::windows_sys::core::HRESULT = -2147479420i32; +pub const E_NOTOPEN: ::windows_sys::core::HRESULT = -2147479533i32; +pub const E_NOTSUPPORTED: ::windows_sys::core::HRESULT = -2147479544i32; +pub const E_NULLQUERY: ::windows_sys::core::HRESULT = -2147479461i32; +pub const E_OUTOFRANGE: ::windows_sys::core::HRESULT = -2147479543i32; +pub const E_PROPLISTEMPTY: ::windows_sys::core::HRESULT = -2147479422i32; +pub const E_PROPLISTNOTEMPTY: ::windows_sys::core::HRESULT = -2147479423i32; +pub const E_RESULTSETEMPTY: ::windows_sys::core::HRESULT = -2147479419i32; +pub const E_STOPWORD: ::windows_sys::core::HRESULT = -2147479460i32; +pub const E_TOODEEP: ::windows_sys::core::HRESULT = -2147479466i32; +pub const E_TOOMANYCOLUMNS: ::windows_sys::core::HRESULT = -2147479418i32; +pub const E_TOOMANYDUPS: ::windows_sys::core::HRESULT = -2147479471i32; +pub const E_TOOMANYOBJECTS: ::windows_sys::core::HRESULT = -2147479527i32; +pub const E_TOOMANYTITLES: ::windows_sys::core::HRESULT = -2147479541i32; +pub const E_TOOMANYTOPICS: ::windows_sys::core::HRESULT = -2147479472i32; +pub const E_TREETOOBIG: ::windows_sys::core::HRESULT = -2147479470i32; +pub const E_UNKNOWN_TRANSPORT: ::windows_sys::core::HRESULT = -2147479530i32; +pub const E_UNMATCHEDTYPE: ::windows_sys::core::HRESULT = -2147479458i32; +pub const E_UNSUPPORTED_TRANSPORT: ::windows_sys::core::HRESULT = -2147479529i32; +pub const E_WILD_IN_DTYPE: ::windows_sys::core::HRESULT = -2147479455i32; +pub const E_WORDTOOLONG: ::windows_sys::core::HRESULT = -2147479457i32; +pub const HHACT_BACK: i32 = 7i32; +pub const HHACT_CONTRACT: i32 = 6i32; +pub const HHACT_CUSTOMIZE: i32 = 16i32; +pub const HHACT_EXPAND: i32 = 5i32; +pub const HHACT_FORWARD: i32 = 8i32; +pub const HHACT_HIGHLIGHT: i32 = 15i32; +pub const HHACT_HOME: i32 = 11i32; +pub const HHACT_JUMP1: i32 = 17i32; +pub const HHACT_JUMP2: i32 = 18i32; +pub const HHACT_LAST_ENUM: i32 = 23i32; +pub const HHACT_NOTES: i32 = 22i32; +pub const HHACT_OPTIONS: i32 = 13i32; +pub const HHACT_PRINT: i32 = 14i32; +pub const HHACT_REFRESH: i32 = 10i32; +pub const HHACT_STOP: i32 = 9i32; +pub const HHACT_SYNC: i32 = 12i32; +pub const HHACT_TAB_CONTENTS: i32 = 0i32; +pub const HHACT_TAB_FAVORITES: i32 = 4i32; +pub const HHACT_TAB_HISTORY: i32 = 3i32; +pub const HHACT_TAB_INDEX: i32 = 1i32; +pub const HHACT_TAB_SEARCH: i32 = 2i32; +pub const HHACT_TOC_NEXT: i32 = 20i32; +pub const HHACT_TOC_PREV: i32 = 21i32; +pub const HHACT_ZOOM: i32 = 19i32; +pub const HHN_FIRST: u32 = 4294966436u32; +pub const HHN_LAST: u32 = 4294966417u32; +pub const HHN_NAVCOMPLETE: u32 = 4294966436u32; +pub const HHN_TRACK: u32 = 4294966435u32; +pub const HHN_WINDOW_CREATE: u32 = 4294966434u32; +pub const HHWIN_BUTTON_BACK: u32 = 4u32; +pub const HHWIN_BUTTON_BROWSE_BCK: u32 = 256u32; +pub const HHWIN_BUTTON_BROWSE_FWD: u32 = 128u32; +pub const HHWIN_BUTTON_CONTENTS: u32 = 1024u32; +pub const HHWIN_BUTTON_EXPAND: u32 = 2u32; +pub const HHWIN_BUTTON_FAVORITES: u32 = 131072u32; +pub const HHWIN_BUTTON_FORWARD: u32 = 8u32; +pub const HHWIN_BUTTON_HISTORY: u32 = 65536u32; +pub const HHWIN_BUTTON_HOME: u32 = 64u32; +pub const HHWIN_BUTTON_INDEX: u32 = 16384u32; +pub const HHWIN_BUTTON_JUMP1: u32 = 262144u32; +pub const HHWIN_BUTTON_JUMP2: u32 = 524288u32; +pub const HHWIN_BUTTON_NOTES: u32 = 512u32; +pub const HHWIN_BUTTON_OPTIONS: u32 = 4096u32; +pub const HHWIN_BUTTON_PRINT: u32 = 8192u32; +pub const HHWIN_BUTTON_REFRESH: u32 = 32u32; +pub const HHWIN_BUTTON_SEARCH: u32 = 32768u32; +pub const HHWIN_BUTTON_STOP: u32 = 16u32; +pub const HHWIN_BUTTON_SYNC: u32 = 2048u32; +pub const HHWIN_BUTTON_TOC_NEXT: u32 = 2097152u32; +pub const HHWIN_BUTTON_TOC_PREV: u32 = 4194304u32; +pub const HHWIN_BUTTON_ZOOM: u32 = 1048576u32; +pub const HHWIN_NAVTAB_BOTTOM: i32 = 2i32; +pub const HHWIN_NAVTAB_LEFT: i32 = 1i32; +pub const HHWIN_NAVTAB_TOP: i32 = 0i32; +pub const HHWIN_NAVTYPE_AUTHOR: i32 = 5i32; +pub const HHWIN_NAVTYPE_CUSTOM_FIRST: i32 = 11i32; +pub const HHWIN_NAVTYPE_FAVORITES: i32 = 3i32; +pub const HHWIN_NAVTYPE_HISTORY: i32 = 4i32; +pub const HHWIN_NAVTYPE_INDEX: i32 = 1i32; +pub const HHWIN_NAVTYPE_SEARCH: i32 = 2i32; +pub const HHWIN_NAVTYPE_TOC: i32 = 0i32; +pub const HHWIN_PARAM_CUR_TAB: u32 = 8192u32; +pub const HHWIN_PARAM_EXPANSION: u32 = 512u32; +pub const HHWIN_PARAM_EXSTYLES: u32 = 8u32; +pub const HHWIN_PARAM_HISTORY_COUNT: u32 = 4096u32; +pub const HHWIN_PARAM_INFOTYPES: u32 = 128u32; +pub const HHWIN_PARAM_NAV_WIDTH: u32 = 32u32; +pub const HHWIN_PARAM_PROPERTIES: u32 = 2u32; +pub const HHWIN_PARAM_RECT: u32 = 16u32; +pub const HHWIN_PARAM_SHOWSTATE: u32 = 64u32; +pub const HHWIN_PARAM_STYLES: u32 = 4u32; +pub const HHWIN_PARAM_TABORDER: u32 = 2048u32; +pub const HHWIN_PARAM_TABPOS: u32 = 1024u32; +pub const HHWIN_PARAM_TB_FLAGS: u32 = 256u32; +pub const HHWIN_PROP_AUTO_SYNC: u32 = 256u32; +pub const HHWIN_PROP_CHANGE_TITLE: u32 = 8192u32; +pub const HHWIN_PROP_MENU: u32 = 65536u32; +pub const HHWIN_PROP_NAV_ONLY_WIN: u32 = 16384u32; +pub const HHWIN_PROP_NODEF_EXSTYLES: u32 = 16u32; +pub const HHWIN_PROP_NODEF_STYLES: u32 = 8u32; +pub const HHWIN_PROP_NOTB_TEXT: u32 = 64u32; +pub const HHWIN_PROP_NOTITLEBAR: u32 = 4u32; +pub const HHWIN_PROP_NO_TOOLBAR: u32 = 32768u32; +pub const HHWIN_PROP_ONTOP: u32 = 2u32; +pub const HHWIN_PROP_POST_QUIT: u32 = 128u32; +pub const HHWIN_PROP_TAB_ADVSEARCH: u32 = 131072u32; +pub const HHWIN_PROP_TAB_AUTOHIDESHOW: u32 = 1u32; +pub const HHWIN_PROP_TAB_CUSTOM1: u32 = 524288u32; +pub const HHWIN_PROP_TAB_CUSTOM2: u32 = 1048576u32; +pub const HHWIN_PROP_TAB_CUSTOM3: u32 = 2097152u32; +pub const HHWIN_PROP_TAB_CUSTOM4: u32 = 4194304u32; +pub const HHWIN_PROP_TAB_CUSTOM5: u32 = 8388608u32; +pub const HHWIN_PROP_TAB_CUSTOM6: u32 = 16777216u32; +pub const HHWIN_PROP_TAB_CUSTOM7: u32 = 33554432u32; +pub const HHWIN_PROP_TAB_CUSTOM8: u32 = 67108864u32; +pub const HHWIN_PROP_TAB_CUSTOM9: u32 = 134217728u32; +pub const HHWIN_PROP_TAB_FAVORITES: u32 = 4096u32; +pub const HHWIN_PROP_TAB_HISTORY: u32 = 2048u32; +pub const HHWIN_PROP_TAB_SEARCH: u32 = 1024u32; +pub const HHWIN_PROP_TRACKING: u32 = 512u32; +pub const HHWIN_PROP_TRI_PANE: u32 = 32u32; +pub const HHWIN_PROP_USER_POS: u32 = 262144u32; +pub const HHWIN_TB_MARGIN: u32 = 268435456u32; +pub const HH_ALINK_LOOKUP: HTML_HELP_COMMAND = 19i32; +pub const HH_CLOSE_ALL: HTML_HELP_COMMAND = 18i32; +pub const HH_DISPLAY_INDEX: HTML_HELP_COMMAND = 2i32; +pub const HH_DISPLAY_SEARCH: HTML_HELP_COMMAND = 3i32; +pub const HH_DISPLAY_TEXT_POPUP: HTML_HELP_COMMAND = 14i32; +pub const HH_DISPLAY_TOC: HTML_HELP_COMMAND = 1i32; +pub const HH_DISPLAY_TOPIC: HTML_HELP_COMMAND = 0i32; +pub const HH_ENUM_CATEGORY: HTML_HELP_COMMAND = 21i32; +pub const HH_ENUM_CATEGORY_IT: HTML_HELP_COMMAND = 22i32; +pub const HH_ENUM_INFO_TYPE: HTML_HELP_COMMAND = 7i32; +pub const HH_FTS_DEFAULT_PROXIMITY: HTML_HELP_COMMAND = -1i32; +pub const HH_GET_LAST_ERROR: HTML_HELP_COMMAND = 20i32; +pub const HH_GET_WIN_HANDLE: HTML_HELP_COMMAND = 6i32; +pub const HH_GET_WIN_TYPE: HTML_HELP_COMMAND = 5i32; +pub const HH_GPROPID_CONTENT_LANGUAGE: HH_GPROPID = 5i32; +pub const HH_GPROPID_CURRENT_SUBSET: HH_GPROPID = 4i32; +pub const HH_GPROPID_SINGLETHREAD: HH_GPROPID = 1i32; +pub const HH_GPROPID_TOOLBAR_MARGIN: HH_GPROPID = 2i32; +pub const HH_GPROPID_UI_LANGUAGE: HH_GPROPID = 3i32; +pub const HH_HELP_CONTEXT: HTML_HELP_COMMAND = 15i32; +pub const HH_HELP_FINDER: HTML_HELP_COMMAND = 0i32; +pub const HH_INITIALIZE: HTML_HELP_COMMAND = 28i32; +pub const HH_KEYWORD_LOOKUP: HTML_HELP_COMMAND = 13i32; +pub const HH_MAX_TABS: HTML_HELP_COMMAND = 19i32; +pub const HH_MAX_TABS_CUSTOM: HTML_HELP_COMMAND = 9i32; +pub const HH_PRETRANSLATEMESSAGE: HTML_HELP_COMMAND = 253i32; +pub const HH_RESERVED1: HTML_HELP_COMMAND = 10i32; +pub const HH_RESERVED2: HTML_HELP_COMMAND = 11i32; +pub const HH_RESERVED3: HTML_HELP_COMMAND = 12i32; +pub const HH_RESET_IT_FILTER: HTML_HELP_COMMAND = 23i32; +pub const HH_SAFE_DISPLAY_TOPIC: HTML_HELP_COMMAND = 32i32; +pub const HH_SET_EXCLUSIVE_FILTER: HTML_HELP_COMMAND = 25i32; +pub const HH_SET_GLOBAL_PROPERTY: HTML_HELP_COMMAND = 252i32; +pub const HH_SET_INCLUSIVE_FILTER: HTML_HELP_COMMAND = 24i32; +pub const HH_SET_INFO_TYPE: HTML_HELP_COMMAND = 8i32; +pub const HH_SET_QUERYSERVICE: HTML_HELP_COMMAND = 30i32; +pub const HH_SET_WIN_TYPE: HTML_HELP_COMMAND = 4i32; +pub const HH_SYNC: HTML_HELP_COMMAND = 9i32; +pub const HH_TAB_AUTHOR: i32 = 5i32; +pub const HH_TAB_CONTENTS: i32 = 0i32; +pub const HH_TAB_CUSTOM_FIRST: i32 = 11i32; +pub const HH_TAB_CUSTOM_LAST: i32 = 19i32; +pub const HH_TAB_FAVORITES: i32 = 3i32; +pub const HH_TAB_HISTORY: i32 = 4i32; +pub const HH_TAB_INDEX: i32 = 1i32; +pub const HH_TAB_SEARCH: i32 = 2i32; +pub const HH_TP_HELP_CONTEXTMENU: HTML_HELP_COMMAND = 16i32; +pub const HH_TP_HELP_WM_HELP: HTML_HELP_COMMAND = 17i32; +pub const HH_UNINITIALIZE: HTML_HELP_COMMAND = 29i32; +pub const IDTB_BACK: u32 = 204u32; +pub const IDTB_BROWSE_BACK: u32 = 212u32; +pub const IDTB_BROWSE_FWD: u32 = 211u32; +pub const IDTB_CONTENTS: u32 = 213u32; +pub const IDTB_CONTRACT: u32 = 201u32; +pub const IDTB_CUSTOMIZE: u32 = 221u32; +pub const IDTB_EXPAND: u32 = 200u32; +pub const IDTB_FAVORITES: u32 = 217u32; +pub const IDTB_FORWARD: u32 = 209u32; +pub const IDTB_HISTORY: u32 = 216u32; +pub const IDTB_HOME: u32 = 205u32; +pub const IDTB_INDEX: u32 = 214u32; +pub const IDTB_JUMP1: u32 = 218u32; +pub const IDTB_JUMP2: u32 = 219u32; +pub const IDTB_NOTES: u32 = 210u32; +pub const IDTB_OPTIONS: u32 = 208u32; +pub const IDTB_PRINT: u32 = 207u32; +pub const IDTB_REFRESH: u32 = 203u32; +pub const IDTB_SEARCH: u32 = 215u32; +pub const IDTB_STOP: u32 = 202u32; +pub const IDTB_SYNC: u32 = 206u32; +pub const IDTB_TOC_NEXT: u32 = 223u32; +pub const IDTB_TOC_PREV: u32 = 224u32; +pub const IDTB_ZOOM: u32 = 222u32; +pub const IITWBC_BREAK_ACCEPT_WILDCARDS: u32 = 1u32; +pub const IITWBC_BREAK_AND_STEM: u32 = 2u32; +pub const ITWW_CBKEY_MAX: u32 = 1024u32; +pub const ITWW_OPEN_NOCONNECT: u32 = 1u32; +pub const IT_EXCLUSIVE: i32 = 1i32; +pub const IT_HIDDEN: i32 = 2i32; +pub const IT_INCLUSIVE: i32 = 0i32; +pub const MAX_COLUMNS: u32 = 256u32; +pub const PRIORITY_HIGH: PRIORITY = 2i32; +pub const PRIORITY_LOW: PRIORITY = 0i32; +pub const PRIORITY_NORMAL: PRIORITY = 1i32; +pub const PROP_ADD: u32 = 0u32; +pub const PROP_DELETE: u32 = 1u32; +pub const PROP_UPDATE: u32 = 2u32; +pub const STDPROP_DISPLAYKEY: u32 = 101u32; +pub const STDPROP_INDEX_BREAK: u32 = 204u32; +pub const STDPROP_INDEX_DTYPE: u32 = 202u32; +pub const STDPROP_INDEX_LENGTH: u32 = 203u32; +pub const STDPROP_INDEX_TERM: u32 = 210u32; +pub const STDPROP_INDEX_TERM_RAW_LENGTH: u32 = 211u32; +pub const STDPROP_INDEX_TEXT: u32 = 200u32; +pub const STDPROP_INDEX_VFLD: u32 = 201u32; +pub const STDPROP_KEY: u32 = 4u32; +pub const STDPROP_SORTKEY: u32 = 100u32; +pub const STDPROP_SORTORDINAL: u32 = 102u32; +pub const STDPROP_TITLE: u32 = 2u32; +pub const STDPROP_UID: u32 = 1u32; +pub const STDPROP_USERDATA: u32 = 3u32; +pub const STDPROP_USERPROP_BASE: u32 = 65536u32; +pub const STDPROP_USERPROP_MAX: u32 = 2147483647u32; +pub const SZ_WWDEST_GLOBAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GLOBAL"); +pub const SZ_WWDEST_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KEY"); +pub const SZ_WWDEST_OCC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OCC"); +pub const TYPE_POINTER: u32 = 1u32; +pub const TYPE_STRING: u32 = 2u32; +pub const TYPE_VALUE: u32 = 0u32; +pub type HH_GPROPID = i32; +pub type HTML_HELP_COMMAND = i32; +pub type PRIORITY = i32; +#[repr(C)] +pub struct COLUMNSTATUS { + pub cPropCount: i32, + pub cPropsLoaded: i32, +} +impl ::core::marker::Copy for COLUMNSTATUS {} +impl ::core::clone::Clone for COLUMNSTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CProperty { + pub dwPropID: u32, + pub cbData: u32, + pub dwType: u32, + pub Anonymous: CProperty_0, + pub fPersist: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CProperty {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CProperty { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CProperty_0 { + pub lpszwData: ::windows_sys::core::PWSTR, + pub lpvData: *mut ::core::ffi::c_void, + pub dwValue: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CProperty_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CProperty_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +pub struct HHNTRACK { + pub hdr: super::super::UI::Controls::NMHDR, + pub pszCurUrl: ::windows_sys::core::PCSTR, + pub idAction: i32, + pub phhWinType: *mut HH_WINTYPE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::marker::Copy for HHNTRACK {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::clone::Clone for HHNTRACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +pub struct HHN_NOTIFY { + pub hdr: super::super::UI::Controls::NMHDR, + pub pszUrl: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::marker::Copy for HHN_NOTIFY {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::clone::Clone for HHN_NOTIFY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HH_AKLINK { + pub cbStruct: i32, + pub fReserved: super::super::Foundation::BOOL, + pub pszKeywords: *mut i8, + pub pszUrl: *mut i8, + pub pszMsgText: *mut i8, + pub pszMsgTitle: *mut i8, + pub pszWindow: *mut i8, + pub fIndexOnFail: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HH_AKLINK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HH_AKLINK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HH_ENUM_CAT { + pub cbStruct: i32, + pub pszCatName: ::windows_sys::core::PCSTR, + pub pszCatDescription: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for HH_ENUM_CAT {} +impl ::core::clone::Clone for HH_ENUM_CAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HH_ENUM_IT { + pub cbStruct: i32, + pub iType: i32, + pub pszCatName: ::windows_sys::core::PCSTR, + pub pszITName: ::windows_sys::core::PCSTR, + pub pszITDescription: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for HH_ENUM_IT {} +impl ::core::clone::Clone for HH_ENUM_IT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HH_FTS_QUERY { + pub cbStruct: i32, + pub fUniCodeStrings: super::super::Foundation::BOOL, + pub pszSearchQuery: *mut i8, + pub iProximity: i32, + pub fStemmedSearch: super::super::Foundation::BOOL, + pub fTitleOnly: super::super::Foundation::BOOL, + pub fExecute: super::super::Foundation::BOOL, + pub pszWindow: *mut i8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HH_FTS_QUERY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HH_FTS_QUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct HH_GLOBAL_PROPERTY { + pub id: HH_GPROPID, + pub var: super::super::System::Variant::VARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for HH_GLOBAL_PROPERTY {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for HH_GLOBAL_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HH_POPUP { + pub cbStruct: i32, + pub hinst: super::super::Foundation::HINSTANCE, + pub idString: u32, + pub pszText: *mut i8, + pub pt: super::super::Foundation::POINT, + pub clrForeground: super::super::Foundation::COLORREF, + pub clrBackground: super::super::Foundation::COLORREF, + pub rcMargins: super::super::Foundation::RECT, + pub pszFont: *mut i8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HH_POPUP {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HH_POPUP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HH_SET_INFOTYPE { + pub cbStruct: i32, + pub pszCatName: ::windows_sys::core::PCSTR, + pub pszInfoTypeName: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for HH_SET_INFOTYPE {} +impl ::core::clone::Clone for HH_SET_INFOTYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HH_WINTYPE { + pub cbStruct: i32, + pub fUniCodeStrings: super::super::Foundation::BOOL, + pub pszType: *mut i8, + pub fsValidMembers: u32, + pub fsWinProperties: u32, + pub pszCaption: *mut i8, + pub dwStyles: u32, + pub dwExStyles: u32, + pub rcWindowPos: super::super::Foundation::RECT, + pub nShowState: i32, + pub hwndHelp: super::super::Foundation::HWND, + pub hwndCaller: super::super::Foundation::HWND, + pub paInfoTypes: *mut u32, + pub hwndToolBar: super::super::Foundation::HWND, + pub hwndNavigation: super::super::Foundation::HWND, + pub hwndHTML: super::super::Foundation::HWND, + pub iNavWidth: i32, + pub rcHTML: super::super::Foundation::RECT, + pub pszToc: *mut i8, + pub pszIndex: *mut i8, + pub pszFile: *mut i8, + pub pszHome: *mut i8, + pub fsToolBarFlags: u32, + pub fNotExpanded: super::super::Foundation::BOOL, + pub curNavType: i32, + pub tabpos: i32, + pub idNotify: i32, + pub tabOrder: [u8; 20], + pub cHistory: i32, + pub pszJump1: *mut i8, + pub pszJump2: *mut i8, + pub pszUrlJump1: *mut i8, + pub pszUrlJump2: *mut i8, + pub rcMinSize: super::super::Foundation::RECT, + pub cbInfoTypes: i32, + pub pszCustomTabs: *mut i8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HH_WINTYPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HH_WINTYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ROWSTATUS { + pub lRowFirst: i32, + pub cRows: i32, + pub cProperties: i32, + pub cRowsTotal: i32, +} +impl ::core::marker::Copy for ROWSTATUS {} +impl ::core::clone::Clone for ROWSTATUS { + fn clone(&self) -> Self { + *self + } +} +pub type PFNCOLHEAPFREE = ::core::option::Option i32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Data/RightsManagement/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Data/RightsManagement/mod.rs new file mode 100644 index 000000000..e41fcff39 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Data/RightsManagement/mod.rs @@ -0,0 +1,279 @@ +::windows_targets::link!("msdrm.dll" "system" fn DRMAcquireAdvisories(hlicensestorage : u32, wszlicense : ::windows_sys::core::PCWSTR, wszurl : ::windows_sys::core::PCWSTR, pvcontext : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMAcquireIssuanceLicenseTemplate(hclient : u32, uflags : u32, pvreserved : *mut ::core::ffi::c_void, ctemplates : u32, pwsztemplateids : *const ::windows_sys::core::PCWSTR, wszurl : ::windows_sys::core::PCWSTR, pvcontext : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMAcquireLicense(hsession : u32, uflags : u32, wszgroupidentitycredential : ::windows_sys::core::PCWSTR, wszrequestedrights : ::windows_sys::core::PCWSTR, wszcustomdata : ::windows_sys::core::PCWSTR, wszurl : ::windows_sys::core::PCWSTR, pvcontext : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMActivate(hclient : u32, uflags : u32, ulangid : u32, pactservinfo : *mut DRM_ACTSERV_INFO, pvcontext : *mut ::core::ffi::c_void, hparentwnd : super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMAddLicense(hlicensestorage : u32, uflags : u32, wszlicense : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMAddRightWithUser(hissuancelicense : u32, hright : u32, huser : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMAttest(henablingprincipal : u32, wszdata : ::windows_sys::core::PCWSTR, etype : DRMATTESTTYPE, pcattestedblob : *mut u32, wszattestedblob : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMCheckSecurity(henv : u32, clevel : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMClearAllRights(hissuancelicense : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMCloseEnvironmentHandle(henv : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMCloseHandle(handle : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMClosePubHandle(hpub : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMCloseQueryHandle(hquery : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMCloseSession(hsession : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMConstructCertificateChain(ccertificates : u32, rgwszcertificates : *const ::windows_sys::core::PCWSTR, pcchain : *mut u32, wszchain : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMCreateBoundLicense(henv : u32, pparams : *mut DRMBOUNDLICENSEPARAMS, wszlicensechain : ::windows_sys::core::PCWSTR, phboundlicense : *mut u32, pherrorlog : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMCreateClientSession(pfncallback : DRMCALLBACK, ucallbackversion : u32, wszgroupidprovidertype : ::windows_sys::core::PCWSTR, wszgroupid : ::windows_sys::core::PCWSTR, phclient : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMCreateEnablingBitsDecryptor(hboundlicense : u32, wszright : ::windows_sys::core::PCWSTR, hauxlib : u32, wszauxplug : ::windows_sys::core::PCWSTR, phdecryptor : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMCreateEnablingBitsEncryptor(hboundlicense : u32, wszright : ::windows_sys::core::PCWSTR, hauxlib : u32, wszauxplug : ::windows_sys::core::PCWSTR, phencryptor : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMCreateEnablingPrincipal(henv : u32, hlibrary : u32, wszobject : ::windows_sys::core::PCWSTR, pidprincipal : *mut DRMID, wszcredentials : ::windows_sys::core::PCWSTR, phenablingprincipal : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMCreateIssuanceLicense(psttimefrom : *mut super::super::Foundation:: SYSTEMTIME, psttimeuntil : *mut super::super::Foundation:: SYSTEMTIME, wszreferralinfoname : ::windows_sys::core::PCWSTR, wszreferralinfourl : ::windows_sys::core::PCWSTR, howner : u32, wszissuancelicense : ::windows_sys::core::PCWSTR, hboundlicense : u32, phissuancelicense : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMCreateLicenseStorageSession(henv : u32, hdefaultlibrary : u32, hclient : u32, uflags : u32, wszissuancelicense : ::windows_sys::core::PCWSTR, phlicensestorage : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMCreateRight(wszrightname : ::windows_sys::core::PCWSTR, pstfrom : *mut super::super::Foundation:: SYSTEMTIME, pstuntil : *mut super::super::Foundation:: SYSTEMTIME, cextendedinfo : u32, pwszextendedinfoname : *const ::windows_sys::core::PCWSTR, pwszextendedinfovalue : *const ::windows_sys::core::PCWSTR, phright : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMCreateUser(wszusername : ::windows_sys::core::PCWSTR, wszuserid : ::windows_sys::core::PCWSTR, wszuseridtype : ::windows_sys::core::PCWSTR, phuser : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMDecode(wszalgid : ::windows_sys::core::PCWSTR, wszencodedstring : ::windows_sys::core::PCWSTR, pudecodeddatalen : *mut u32, pbdecodeddata : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMDeconstructCertificateChain(wszchain : ::windows_sys::core::PCWSTR, iwhich : u32, pccert : *mut u32, wszcert : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMDecrypt(hcryptoprovider : u32, iposition : u32, cnuminbytes : u32, pbindata : *mut u8, pcnumoutbytes : *mut u32, pboutdata : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMDeleteLicense(hsession : u32, wszlicenseid : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMDuplicateEnvironmentHandle(htocopy : u32, phcopy : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMDuplicateHandle(htocopy : u32, phcopy : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMDuplicatePubHandle(hpubin : u32, phpubout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMDuplicateSession(hsessionin : u32, phsessionout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMEncode(wszalgid : ::windows_sys::core::PCWSTR, udatalen : u32, pbdecodeddata : *mut u8, puencodedstringlen : *mut u32, wszencodedstring : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMEncrypt(hcryptoprovider : u32, iposition : u32, cnuminbytes : u32, pbindata : *mut u8, pcnumoutbytes : *mut u32, pboutdata : *mut u8) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMEnumerateLicense(hsession : u32, uflags : u32, uindex : u32, pfsharedflag : *mut super::super::Foundation:: BOOL, pucertificatedatalen : *mut u32, wszcertificatedata : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetApplicationSpecificData(hissuancelicense : u32, uindex : u32, punamelength : *mut u32, wszname : ::windows_sys::core::PWSTR, puvaluelength : *mut u32, wszvalue : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetBoundLicenseAttribute(hqueryroot : u32, wszattribute : ::windows_sys::core::PCWSTR, iwhich : u32, peencoding : *mut DRMENCODINGTYPE, pcbuffer : *mut u32, pbbuffer : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetBoundLicenseAttributeCount(hqueryroot : u32, wszattribute : ::windows_sys::core::PCWSTR, pcattributes : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetBoundLicenseObject(hqueryroot : u32, wszsubobjecttype : ::windows_sys::core::PCWSTR, iwhich : u32, phsubobject : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetBoundLicenseObjectCount(hqueryroot : u32, wszsubobjecttype : ::windows_sys::core::PCWSTR, pcsubobjects : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetCertificateChainCount(wszchain : ::windows_sys::core::PCWSTR, pccertcount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetClientVersion(pdrmclientversioninfo : *mut DRM_CLIENT_VERSION_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetEnvironmentInfo(handle : u32, wszattribute : ::windows_sys::core::PCWSTR, peencoding : *mut DRMENCODINGTYPE, pcbuffer : *mut u32, pbbuffer : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetInfo(handle : u32, wszattribute : ::windows_sys::core::PCWSTR, peencoding : *const DRMENCODINGTYPE, pcbuffer : *mut u32, pbbuffer : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetIntervalTime(hissuancelicense : u32, pcdays : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMGetIssuanceLicenseInfo(hissuancelicense : u32, psttimefrom : *mut super::super::Foundation:: SYSTEMTIME, psttimeuntil : *mut super::super::Foundation:: SYSTEMTIME, uflags : u32, pudistributionpointnamelength : *mut u32, wszdistributionpointname : ::windows_sys::core::PWSTR, pudistributionpointurllength : *mut u32, wszdistributionpointurl : ::windows_sys::core::PWSTR, phowner : *mut u32, pfofficial : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetIssuanceLicenseTemplate(hissuancelicense : u32, puissuancelicensetemplatelength : *mut u32, wszissuancelicensetemplate : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetMetaData(hissuancelicense : u32, pucontentidlength : *mut u32, wszcontentid : ::windows_sys::core::PWSTR, pucontentidtypelength : *mut u32, wszcontentidtype : ::windows_sys::core::PWSTR, puskuidlength : *mut u32, wszskuid : ::windows_sys::core::PWSTR, puskuidtypelength : *mut u32, wszskuidtype : ::windows_sys::core::PWSTR, pucontenttypelength : *mut u32, wszcontenttype : ::windows_sys::core::PWSTR, pucontentnamelength : *mut u32, wszcontentname : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetNameAndDescription(hissuancelicense : u32, uindex : u32, pulcid : *mut u32, punamelength : *mut u32, wszname : ::windows_sys::core::PWSTR, pudescriptionlength : *mut u32, wszdescription : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetOwnerLicense(hissuancelicense : u32, puownerlicenselength : *mut u32, wszownerlicense : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMGetProcAddress(hlibrary : u32, wszprocname : ::windows_sys::core::PCWSTR, ppfnprocaddress : *mut super::super::Foundation:: FARPROC) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMGetRevocationPoint(hissuancelicense : u32, puidlength : *mut u32, wszid : ::windows_sys::core::PWSTR, puidtypelength : *mut u32, wszidtype : ::windows_sys::core::PWSTR, puurllength : *mut u32, wszrl : ::windows_sys::core::PWSTR, pstfrequency : *mut super::super::Foundation:: SYSTEMTIME, punamelength : *mut u32, wszname : ::windows_sys::core::PWSTR, pupublickeylength : *mut u32, wszpublickey : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetRightExtendedInfo(hright : u32, uindex : u32, puextendedinfonamelength : *mut u32, wszextendedinfoname : ::windows_sys::core::PWSTR, puextendedinfovaluelength : *mut u32, wszextendedinfovalue : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMGetRightInfo(hright : u32, purightnamelength : *mut u32, wszrightname : ::windows_sys::core::PWSTR, pstfrom : *mut super::super::Foundation:: SYSTEMTIME, pstuntil : *mut super::super::Foundation:: SYSTEMTIME) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetSecurityProvider(uflags : u32, putypelen : *mut u32, wsztype : ::windows_sys::core::PWSTR, pupathlen : *mut u32, wszpath : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetServiceLocation(hclient : u32, uservicetype : u32, uservicelocation : u32, wszissuancelicense : ::windows_sys::core::PCWSTR, puserviceurllength : *mut u32, wszserviceurl : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetSignedIssuanceLicense(henv : u32, hissuancelicense : u32, uflags : u32, pbsymkey : *mut u8, cbsymkey : u32, wszsymkeytype : ::windows_sys::core::PCWSTR, wszclientlicensorcertificate : ::windows_sys::core::PCWSTR, pfncallback : DRMCALLBACK, wszurl : ::windows_sys::core::PCWSTR, pvcontext : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetSignedIssuanceLicenseEx(henv : u32, hissuancelicense : u32, uflags : u32, pbsymkey : *const u8, cbsymkey : u32, wszsymkeytype : ::windows_sys::core::PCWSTR, pvreserved : *const ::core::ffi::c_void, henablingprincipal : u32, hboundlicenseclc : u32, pfncallback : DRMCALLBACK, pvcontext : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMGetTime(henv : u32, etimeridtype : DRMTIMETYPE, potimeobject : *mut super::super::Foundation:: SYSTEMTIME) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetUnboundLicenseAttribute(hqueryroot : u32, wszattributetype : ::windows_sys::core::PCWSTR, iwhich : u32, peencoding : *mut DRMENCODINGTYPE, pcbuffer : *mut u32, pbbuffer : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetUnboundLicenseAttributeCount(hqueryroot : u32, wszattributetype : ::windows_sys::core::PCWSTR, pcattributes : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetUnboundLicenseObject(hqueryroot : u32, wszsubobjecttype : ::windows_sys::core::PCWSTR, iindex : u32, phsubquery : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetUnboundLicenseObjectCount(hqueryroot : u32, wszsubobjecttype : ::windows_sys::core::PCWSTR, pcsubobjects : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMGetUsagePolicy(hissuancelicense : u32, uindex : u32, peusagepolicytype : *mut DRM_USAGEPOLICY_TYPE, pfexclusion : *mut super::super::Foundation:: BOOL, punamelength : *mut u32, wszname : ::windows_sys::core::PWSTR, puminversionlength : *mut u32, wszminversion : ::windows_sys::core::PWSTR, pumaxversionlength : *mut u32, wszmaxversion : ::windows_sys::core::PWSTR, pupublickeylength : *mut u32, wszpublickey : ::windows_sys::core::PWSTR, pudigestalgorithmlength : *mut u32, wszdigestalgorithm : ::windows_sys::core::PWSTR, pcbdigest : *mut u32, pbdigest : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetUserInfo(huser : u32, puusernamelength : *mut u32, wszusername : ::windows_sys::core::PWSTR, puuseridlength : *mut u32, wszuserid : ::windows_sys::core::PWSTR, puuseridtypelength : *mut u32, wszuseridtype : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetUserRights(hissuancelicense : u32, huser : u32, uindex : u32, phright : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMGetUsers(hissuancelicense : u32, uindex : u32, phuser : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMInitEnvironment(esecurityprovidertype : DRMSECURITYPROVIDERTYPE, especification : DRMSPECTYPE, wszsecurityprovider : ::windows_sys::core::PCWSTR, wszmanifestcredentials : ::windows_sys::core::PCWSTR, wszmachinecredentials : ::windows_sys::core::PCWSTR, phenv : *mut u32, phdefaultlibrary : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMIsActivated(hclient : u32, uflags : u32, pactservinfo : *mut DRM_ACTSERV_INFO) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMIsWindowProtected(hwnd : super::super::Foundation:: HWND, pfprotected : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMLoadLibrary(henv : u32, especification : DRMSPECTYPE, wszlibraryprovider : ::windows_sys::core::PCWSTR, wszcredentials : ::windows_sys::core::PCWSTR, phlibrary : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMParseUnboundLicense(wszcertificate : ::windows_sys::core::PCWSTR, phqueryroot : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMRegisterContent(fregister : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMRegisterProtectedWindow(henv : u32, hwnd : super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMRegisterRevocationList(henv : u32, wszrevocationlist : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMRepair() -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMSetApplicationSpecificData(hissuancelicense : u32, fdelete : super::super::Foundation:: BOOL, wszname : ::windows_sys::core::PCWSTR, wszvalue : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMSetGlobalOptions(eglobaloptions : DRMGLOBALOPTIONS, pvdata : *mut ::core::ffi::c_void, dwlen : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMSetIntervalTime(hissuancelicense : u32, cdays : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMSetMetaData(hissuancelicense : u32, wszcontentid : ::windows_sys::core::PCWSTR, wszcontentidtype : ::windows_sys::core::PCWSTR, wszskuid : ::windows_sys::core::PCWSTR, wszskuidtype : ::windows_sys::core::PCWSTR, wszcontenttype : ::windows_sys::core::PCWSTR, wszcontentname : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMSetNameAndDescription(hissuancelicense : u32, fdelete : super::super::Foundation:: BOOL, lcid : u32, wszname : ::windows_sys::core::PCWSTR, wszdescription : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMSetRevocationPoint(hissuancelicense : u32, fdelete : super::super::Foundation:: BOOL, wszid : ::windows_sys::core::PCWSTR, wszidtype : ::windows_sys::core::PCWSTR, wszurl : ::windows_sys::core::PCWSTR, pstfrequency : *mut super::super::Foundation:: SYSTEMTIME, wszname : ::windows_sys::core::PCWSTR, wszpublickey : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdrm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DRMSetUsagePolicy(hissuancelicense : u32, eusagepolicytype : DRM_USAGEPOLICY_TYPE, fdelete : super::super::Foundation:: BOOL, fexclusion : super::super::Foundation:: BOOL, wszname : ::windows_sys::core::PCWSTR, wszminversion : ::windows_sys::core::PCWSTR, wszmaxversion : ::windows_sys::core::PCWSTR, wszpublickey : ::windows_sys::core::PCWSTR, wszdigestalgorithm : ::windows_sys::core::PCWSTR, pbdigest : *mut u8, cbdigest : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdrm.dll" "system" fn DRMVerify(wszdata : ::windows_sys::core::PCWSTR, pcattesteddata : *mut u32, wszattesteddata : ::windows_sys::core::PWSTR, petype : *mut DRMATTESTTYPE, pcprincipal : *mut u32, wszprincipal : ::windows_sys::core::PWSTR, pcmanifest : *mut u32, wszmanifest : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +pub const DRMACTSERVINFOVERSION: u32 = 0u32; +pub const DRMATTESTTYPE_FULLENVIRONMENT: DRMATTESTTYPE = 0i32; +pub const DRMATTESTTYPE_HASHONLY: DRMATTESTTYPE = 1i32; +pub const DRMBINDINGFLAGS_IGNORE_VALIDITY_INTERVALS: u32 = 1u32; +pub const DRMBOUNDLICENSEPARAMSVERSION: u32 = 1u32; +pub const DRMCALLBACKVERSION: u32 = 1u32; +pub const DRMCLIENTSTRUCTVERSION: u32 = 1u32; +pub const DRMENCODINGTYPE_BASE64: DRMENCODINGTYPE = 0i32; +pub const DRMENCODINGTYPE_LONG: DRMENCODINGTYPE = 2i32; +pub const DRMENCODINGTYPE_RAW: DRMENCODINGTYPE = 5i32; +pub const DRMENCODINGTYPE_STRING: DRMENCODINGTYPE = 1i32; +pub const DRMENCODINGTYPE_TIME: DRMENCODINGTYPE = 3i32; +pub const DRMENCODINGTYPE_UINT: DRMENCODINGTYPE = 4i32; +pub const DRMENVHANDLE_INVALID: u32 = 0u32; +pub const DRMGLOBALOPTIONS_USE_SERVERSECURITYPROCESSOR: DRMGLOBALOPTIONS = 1i32; +pub const DRMGLOBALOPTIONS_USE_WINHTTP: DRMGLOBALOPTIONS = 0i32; +pub const DRMHANDLE_INVALID: u32 = 0u32; +pub const DRMHSESSION_INVALID: u32 = 0u32; +pub const DRMIDVERSION: u32 = 0u32; +pub const DRMLICENSEACQDATAVERSION: u32 = 0u32; +pub const DRMPUBHANDLE_INVALID: u32 = 0u32; +pub const DRMQUERYHANDLE_INVALID: u32 = 0u32; +pub const DRMSECURITYPROVIDERTYPE_SOFTWARESECREP: DRMSECURITYPROVIDERTYPE = 0i32; +pub const DRMSPECTYPE_FILENAME: DRMSPECTYPE = 1i32; +pub const DRMSPECTYPE_UNKNOWN: DRMSPECTYPE = 0i32; +pub const DRMTIMETYPE_SYSTEMLOCAL: DRMTIMETYPE = 1i32; +pub const DRMTIMETYPE_SYSTEMUTC: DRMTIMETYPE = 0i32; +pub const DRM_ACTIVATE_CANCEL: u32 = 8u32; +pub const DRM_ACTIVATE_DELAYED: u32 = 64u32; +pub const DRM_ACTIVATE_GROUPIDENTITY: u32 = 2u32; +pub const DRM_ACTIVATE_MACHINE: u32 = 1u32; +pub const DRM_ACTIVATE_SHARED_GROUPIDENTITY: u32 = 32u32; +pub const DRM_ACTIVATE_SILENT: u32 = 16u32; +pub const DRM_ACTIVATE_TEMPORARY: u32 = 4u32; +pub const DRM_ADD_LICENSE_NOPERSIST: u32 = 0u32; +pub const DRM_ADD_LICENSE_PERSIST: u32 = 1u32; +pub const DRM_AILT_CANCEL: u32 = 4u32; +pub const DRM_AILT_NONSILENT: u32 = 1u32; +pub const DRM_AILT_OBTAIN_ALL: u32 = 2u32; +pub const DRM_AL_CANCEL: u32 = 4u32; +pub const DRM_AL_FETCHNOADVISORY: u32 = 8u32; +pub const DRM_AL_NONSILENT: u32 = 1u32; +pub const DRM_AL_NOPERSIST: u32 = 2u32; +pub const DRM_AL_NOUI: u32 = 16u32; +pub const DRM_AUTO_GENERATE_KEY: u32 = 16u32; +pub const DRM_DEFAULTGROUPIDTYPE_PASSPORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PassportAuthProvider"); +pub const DRM_DEFAULTGROUPIDTYPE_WINDOWSAUTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WindowsAuthProvider"); +pub const DRM_DISTRIBUTION_POINT_LICENSE_ACQUISITION: DRM_DISTRIBUTION_POINT_INFO = 0i32; +pub const DRM_DISTRIBUTION_POINT_PUBLISHING: DRM_DISTRIBUTION_POINT_INFO = 1i32; +pub const DRM_DISTRIBUTION_POINT_REFERRAL_INFO: DRM_DISTRIBUTION_POINT_INFO = 2i32; +pub const DRM_EL_CLIENTLICENSOR: u32 = 128u32; +pub const DRM_EL_CLIENTLICENSOR_LID: u32 = 256u32; +pub const DRM_EL_EUL: u32 = 32u32; +pub const DRM_EL_EUL_LID: u32 = 64u32; +pub const DRM_EL_EXPIRED: u32 = 4096u32; +pub const DRM_EL_GROUPIDENTITY: u32 = 2u32; +pub const DRM_EL_GROUPIDENTITY_LID: u32 = 8u32; +pub const DRM_EL_GROUPIDENTITY_NAME: u32 = 4u32; +pub const DRM_EL_ISSUANCELICENSE_TEMPLATE: u32 = 16384u32; +pub const DRM_EL_ISSUANCELICENSE_TEMPLATE_LID: u32 = 32768u32; +pub const DRM_EL_ISSUERNAME: u32 = 8192u32; +pub const DRM_EL_MACHINE: u32 = 1u32; +pub const DRM_EL_REVOCATIONLIST: u32 = 1024u32; +pub const DRM_EL_REVOCATIONLIST_LID: u32 = 2048u32; +pub const DRM_EL_SPECIFIED_CLIENTLICENSOR: u32 = 512u32; +pub const DRM_EL_SPECIFIED_GROUPIDENTITY: u32 = 16u32; +pub const DRM_LOCKBOXTYPE_BLACKBOX: u32 = 2u32; +pub const DRM_LOCKBOXTYPE_DEFAULT: u32 = 2u32; +pub const DRM_LOCKBOXTYPE_NONE: u32 = 0u32; +pub const DRM_LOCKBOXTYPE_WHITEBOX: u32 = 1u32; +pub const DRM_MSG_ACQUIRE_ADVISORY: DRM_STATUS_MSG = 3i32; +pub const DRM_MSG_ACQUIRE_CLIENTLICENSOR: DRM_STATUS_MSG = 5i32; +pub const DRM_MSG_ACQUIRE_ISSUANCE_LICENSE_TEMPLATE: DRM_STATUS_MSG = 6i32; +pub const DRM_MSG_ACQUIRE_LICENSE: DRM_STATUS_MSG = 2i32; +pub const DRM_MSG_ACTIVATE_GROUPIDENTITY: DRM_STATUS_MSG = 1i32; +pub const DRM_MSG_ACTIVATE_MACHINE: DRM_STATUS_MSG = 0i32; +pub const DRM_MSG_SIGN_ISSUANCE_LICENSE: DRM_STATUS_MSG = 4i32; +pub const DRM_OWNER_LICENSE_NOPERSIST: u32 = 32u32; +pub const DRM_REUSE_KEY: u32 = 64u32; +pub const DRM_SERVER_ISSUANCELICENSE: u32 = 8u32; +pub const DRM_SERVICE_LOCATION_ENTERPRISE: u32 = 2u32; +pub const DRM_SERVICE_LOCATION_INTERNET: u32 = 1u32; +pub const DRM_SERVICE_TYPE_ACTIVATION: u32 = 1u32; +pub const DRM_SERVICE_TYPE_CERTIFICATION: u32 = 2u32; +pub const DRM_SERVICE_TYPE_CLIENTLICENSOR: u32 = 8u32; +pub const DRM_SERVICE_TYPE_PUBLISHING: u32 = 4u32; +pub const DRM_SERVICE_TYPE_SILENT: u32 = 16u32; +pub const DRM_SIGN_CANCEL: u32 = 4u32; +pub const DRM_SIGN_OFFLINE: u32 = 2u32; +pub const DRM_SIGN_ONLINE: u32 = 1u32; +pub const DRM_USAGEPOLICY_TYPE_BYDIGEST: DRM_USAGEPOLICY_TYPE = 2i32; +pub const DRM_USAGEPOLICY_TYPE_BYNAME: DRM_USAGEPOLICY_TYPE = 0i32; +pub const DRM_USAGEPOLICY_TYPE_BYPUBLICKEY: DRM_USAGEPOLICY_TYPE = 1i32; +pub const DRM_USAGEPOLICY_TYPE_OSEXCLUSION: DRM_USAGEPOLICY_TYPE = 3i32; +pub const MSDRM_CLIENT_ZONE: u32 = 52992u32; +pub const MSDRM_POLICY_ZONE: u32 = 37632u32; +pub type DRMATTESTTYPE = i32; +pub type DRMENCODINGTYPE = i32; +pub type DRMGLOBALOPTIONS = i32; +pub type DRMSECURITYPROVIDERTYPE = i32; +pub type DRMSPECTYPE = i32; +pub type DRMTIMETYPE = i32; +pub type DRM_DISTRIBUTION_POINT_INFO = i32; +pub type DRM_STATUS_MSG = i32; +pub type DRM_USAGEPOLICY_TYPE = i32; +#[repr(C)] +pub struct DRMBOUNDLICENSEPARAMS { + pub uVersion: u32, + pub hEnablingPrincipal: u32, + pub hSecureStore: u32, + pub wszRightsRequested: ::windows_sys::core::PWSTR, + pub wszRightsGroup: ::windows_sys::core::PWSTR, + pub idResource: DRMID, + pub cAuthenticatorCount: u32, + pub rghAuthenticators: *mut u32, + pub wszDefaultEnablingPrincipalCredentials: ::windows_sys::core::PWSTR, + pub dwFlags: u32, +} +impl ::core::marker::Copy for DRMBOUNDLICENSEPARAMS {} +impl ::core::clone::Clone for DRMBOUNDLICENSEPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRMID { + pub uVersion: u32, + pub wszIDType: ::windows_sys::core::PWSTR, + pub wszID: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DRMID {} +impl ::core::clone::Clone for DRMID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRM_ACTSERV_INFO { + pub uVersion: u32, + pub wszPubKey: ::windows_sys::core::PWSTR, + pub wszURL: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DRM_ACTSERV_INFO {} +impl ::core::clone::Clone for DRM_ACTSERV_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRM_CLIENT_VERSION_INFO { + pub uStructVersion: u32, + pub dwVersion: [u32; 4], + pub wszHierarchy: [u16; 256], + pub wszProductId: [u16; 256], + pub wszProductDescription: [u16; 256], +} +impl ::core::marker::Copy for DRM_CLIENT_VERSION_INFO {} +impl ::core::clone::Clone for DRM_CLIENT_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRM_LICENSE_ACQ_DATA { + pub uVersion: u32, + pub wszURL: ::windows_sys::core::PWSTR, + pub wszLocalFilename: ::windows_sys::core::PWSTR, + pub pbPostData: *mut u8, + pub dwPostDataSize: u32, + pub wszFriendlyName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DRM_LICENSE_ACQ_DATA {} +impl ::core::clone::Clone for DRM_LICENSE_ACQ_DATA { + fn clone(&self) -> Self { + *self + } +} +pub type DRMCALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Data/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Data/mod.rs new file mode 100644 index 000000000..6ccd841d5 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Data/mod.rs @@ -0,0 +1,6 @@ +#[cfg(feature = "Win32_Data_HtmlHelp")] +#[doc = "Required features: `\"Win32_Data_HtmlHelp\"`"] +pub mod HtmlHelp; +#[cfg(feature = "Win32_Data_RightsManagement")] +#[doc = "Required features: `\"Win32_Data_RightsManagement\"`"] +pub mod RightsManagement; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/AllJoyn/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/AllJoyn/mod.rs new file mode 100644 index 000000000..8d0ab0141 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/AllJoyn/mod.rs @@ -0,0 +1,1380 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msajapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllJoynAcceptBusConnection(serverbushandle : super::super::Foundation:: HANDLE, abortevent : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msajapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllJoynCloseBusHandle(bushandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msajapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllJoynConnectToBus(connectionspec : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("msajapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn AllJoynCreateBus(outbuffersize : u32, inbuffersize : u32, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msajapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllJoynEnumEvents(connectedbushandle : super::super::Foundation:: HANDLE, eventtoreset : super::super::Foundation:: HANDLE, eventtypes : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msajapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllJoynEventSelect(connectedbushandle : super::super::Foundation:: HANDLE, eventhandle : super::super::Foundation:: HANDLE, eventtypes : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msajapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllJoynReceiveFromBus(connectedbushandle : super::super::Foundation:: HANDLE, buffer : *mut ::core::ffi::c_void, bytestoread : u32, bytestransferred : *mut u32, reserved : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msajapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllJoynSendToBus(connectedbushandle : super::super::Foundation:: HANDLE, buffer : *const ::core::ffi::c_void, bytestowrite : u32, bytestransferred : *mut u32, reserved : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("msajapi.dll" "system" fn QCC_StatusText(status : QStatus) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_create(defaultlanguage : ::windows_sys::core::PCSTR) -> alljoyn_aboutdata); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_create_empty() -> alljoyn_aboutdata); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_create_full(arg : alljoyn_msgarg, language : ::windows_sys::core::PCSTR) -> alljoyn_aboutdata); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_createfrommsgarg(data : alljoyn_aboutdata, arg : alljoyn_msgarg, language : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_createfromxml(data : alljoyn_aboutdata, aboutdataxml : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_destroy(data : alljoyn_aboutdata) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getaboutdata(data : alljoyn_aboutdata, msgarg : alljoyn_msgarg, language : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getajsoftwareversion(data : alljoyn_aboutdata, ajsoftwareversion : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getannouncedaboutdata(data : alljoyn_aboutdata, msgarg : alljoyn_msgarg) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getappid(data : alljoyn_aboutdata, appid : *mut *mut u8, num : *mut usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getappname(data : alljoyn_aboutdata, appname : *mut *mut i8, language : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getdateofmanufacture(data : alljoyn_aboutdata, dateofmanufacture : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getdefaultlanguage(data : alljoyn_aboutdata, defaultlanguage : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getdescription(data : alljoyn_aboutdata, description : *mut *mut i8, language : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getdeviceid(data : alljoyn_aboutdata, deviceid : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getdevicename(data : alljoyn_aboutdata, devicename : *mut *mut i8, language : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getfield(data : alljoyn_aboutdata, name : ::windows_sys::core::PCSTR, value : *mut alljoyn_msgarg, language : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getfields(data : alljoyn_aboutdata, fields : *const *const i8, num_fields : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getfieldsignature(data : alljoyn_aboutdata, fieldname : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_gethardwareversion(data : alljoyn_aboutdata, hardwareversion : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getmanufacturer(data : alljoyn_aboutdata, manufacturer : *mut *mut i8, language : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getmodelnumber(data : alljoyn_aboutdata, modelnumber : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getsoftwareversion(data : alljoyn_aboutdata, softwareversion : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getsupportedlanguages(data : alljoyn_aboutdata, languagetags : *const *const i8, num : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_getsupporturl(data : alljoyn_aboutdata, supporturl : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_isfieldannounced(data : alljoyn_aboutdata, fieldname : ::windows_sys::core::PCSTR) -> u8); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_isfieldlocalized(data : alljoyn_aboutdata, fieldname : ::windows_sys::core::PCSTR) -> u8); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_isfieldrequired(data : alljoyn_aboutdata, fieldname : ::windows_sys::core::PCSTR) -> u8); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_isvalid(data : alljoyn_aboutdata, language : ::windows_sys::core::PCSTR) -> u8); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setappid(data : alljoyn_aboutdata, appid : *const u8, num : usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setappid_fromstring(data : alljoyn_aboutdata, appid : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setappname(data : alljoyn_aboutdata, appname : ::windows_sys::core::PCSTR, language : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setdateofmanufacture(data : alljoyn_aboutdata, dateofmanufacture : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setdefaultlanguage(data : alljoyn_aboutdata, defaultlanguage : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setdescription(data : alljoyn_aboutdata, description : ::windows_sys::core::PCSTR, language : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setdeviceid(data : alljoyn_aboutdata, deviceid : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setdevicename(data : alljoyn_aboutdata, devicename : ::windows_sys::core::PCSTR, language : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setfield(data : alljoyn_aboutdata, name : ::windows_sys::core::PCSTR, value : alljoyn_msgarg, language : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_sethardwareversion(data : alljoyn_aboutdata, hardwareversion : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setmanufacturer(data : alljoyn_aboutdata, manufacturer : ::windows_sys::core::PCSTR, language : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setmodelnumber(data : alljoyn_aboutdata, modelnumber : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setsoftwareversion(data : alljoyn_aboutdata, softwareversion : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setsupportedlanguage(data : alljoyn_aboutdata, language : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdata_setsupporturl(data : alljoyn_aboutdata, supporturl : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdatalistener_create(callbacks : *const alljoyn_aboutdatalistener_callbacks, context : *const ::core::ffi::c_void) -> alljoyn_aboutdatalistener); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutdatalistener_destroy(listener : alljoyn_aboutdatalistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticon_clear(icon : alljoyn_abouticon) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticon_create() -> alljoyn_abouticon); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticon_destroy(icon : alljoyn_abouticon) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticon_getcontent(icon : alljoyn_abouticon, data : *const *const u8, size : *mut usize) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticon_geturl(icon : alljoyn_abouticon, r#type : *const *const i8, url : *const *const i8) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticon_setcontent(icon : alljoyn_abouticon, r#type : ::windows_sys::core::PCSTR, data : *mut u8, csize : usize, ownsdata : u8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticon_setcontent_frommsgarg(icon : alljoyn_abouticon, arg : alljoyn_msgarg) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticon_seturl(icon : alljoyn_abouticon, r#type : ::windows_sys::core::PCSTR, url : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticonobj_create(bus : alljoyn_busattachment, icon : alljoyn_abouticon) -> alljoyn_abouticonobj); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticonobj_destroy(icon : alljoyn_abouticonobj) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticonproxy_create(bus : alljoyn_busattachment, busname : ::windows_sys::core::PCSTR, sessionid : u32) -> alljoyn_abouticonproxy); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticonproxy_destroy(proxy : alljoyn_abouticonproxy) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticonproxy_geticon(proxy : alljoyn_abouticonproxy, icon : alljoyn_abouticon) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_abouticonproxy_getversion(proxy : alljoyn_abouticonproxy, version : *mut u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutlistener_create(callback : *const alljoyn_aboutlistener_callback, context : *const ::core::ffi::c_void) -> alljoyn_aboutlistener); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutlistener_destroy(listener : alljoyn_aboutlistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobj_announce(obj : alljoyn_aboutobj, sessionport : u16, aboutdata : alljoyn_aboutdata) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobj_announce_using_datalistener(obj : alljoyn_aboutobj, sessionport : u16, aboutlistener : alljoyn_aboutdatalistener) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobj_create(bus : alljoyn_busattachment, isannounced : alljoyn_about_announceflag) -> alljoyn_aboutobj); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobj_destroy(obj : alljoyn_aboutobj) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobj_unannounce(obj : alljoyn_aboutobj) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobjectdescription_clear(description : alljoyn_aboutobjectdescription) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobjectdescription_create() -> alljoyn_aboutobjectdescription); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobjectdescription_create_full(arg : alljoyn_msgarg) -> alljoyn_aboutobjectdescription); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobjectdescription_createfrommsgarg(description : alljoyn_aboutobjectdescription, arg : alljoyn_msgarg) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobjectdescription_destroy(description : alljoyn_aboutobjectdescription) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobjectdescription_getinterfacepaths(description : alljoyn_aboutobjectdescription, interfacename : ::windows_sys::core::PCSTR, paths : *const *const i8, numpaths : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobjectdescription_getinterfaces(description : alljoyn_aboutobjectdescription, path : ::windows_sys::core::PCSTR, interfaces : *const *const i8, numinterfaces : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobjectdescription_getmsgarg(description : alljoyn_aboutobjectdescription, msgarg : alljoyn_msgarg) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobjectdescription_getpaths(description : alljoyn_aboutobjectdescription, paths : *const *const i8, numpaths : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobjectdescription_hasinterface(description : alljoyn_aboutobjectdescription, interfacename : ::windows_sys::core::PCSTR) -> u8); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobjectdescription_hasinterfaceatpath(description : alljoyn_aboutobjectdescription, path : ::windows_sys::core::PCSTR, interfacename : ::windows_sys::core::PCSTR) -> u8); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutobjectdescription_haspath(description : alljoyn_aboutobjectdescription, path : ::windows_sys::core::PCSTR) -> u8); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutproxy_create(bus : alljoyn_busattachment, busname : ::windows_sys::core::PCSTR, sessionid : u32) -> alljoyn_aboutproxy); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutproxy_destroy(proxy : alljoyn_aboutproxy) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutproxy_getaboutdata(proxy : alljoyn_aboutproxy, language : ::windows_sys::core::PCSTR, data : alljoyn_msgarg) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutproxy_getobjectdescription(proxy : alljoyn_aboutproxy, objectdesc : alljoyn_msgarg) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_aboutproxy_getversion(proxy : alljoyn_aboutproxy, version : *mut u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_applicationstatelistener_create(callbacks : *const alljoyn_applicationstatelistener_callbacks, context : *mut ::core::ffi::c_void) -> alljoyn_applicationstatelistener); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_applicationstatelistener_destroy(listener : alljoyn_applicationstatelistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_authlistener_create(callbacks : *const alljoyn_authlistener_callbacks, context : *const ::core::ffi::c_void) -> alljoyn_authlistener); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_authlistener_destroy(listener : alljoyn_authlistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_authlistener_requestcredentialsresponse(listener : alljoyn_authlistener, authcontext : *mut ::core::ffi::c_void, accept : i32, credentials : alljoyn_credentials) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_authlistener_setsharedsecret(listener : alljoyn_authlistener, sharedsecret : *const u8, sharedsecretsize : usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_authlistener_verifycredentialsresponse(listener : alljoyn_authlistener, authcontext : *mut ::core::ffi::c_void, accept : i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_authlistenerasync_create(callbacks : *const alljoyn_authlistenerasync_callbacks, context : *const ::core::ffi::c_void) -> alljoyn_authlistener); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_authlistenerasync_destroy(listener : alljoyn_authlistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_autopinger_adddestination(autopinger : alljoyn_autopinger, group : ::windows_sys::core::PCSTR, destination : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_autopinger_addpinggroup(autopinger : alljoyn_autopinger, group : ::windows_sys::core::PCSTR, listener : alljoyn_pinglistener, pinginterval : u32) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_autopinger_create(bus : alljoyn_busattachment) -> alljoyn_autopinger); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_autopinger_destroy(autopinger : alljoyn_autopinger) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_autopinger_pause(autopinger : alljoyn_autopinger) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_autopinger_removedestination(autopinger : alljoyn_autopinger, group : ::windows_sys::core::PCSTR, destination : ::windows_sys::core::PCSTR, removeall : i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_autopinger_removepinggroup(autopinger : alljoyn_autopinger, group : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_autopinger_resume(autopinger : alljoyn_autopinger) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_autopinger_setpinginterval(autopinger : alljoyn_autopinger, group : ::windows_sys::core::PCSTR, pinginterval : u32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_addlogonentry(bus : alljoyn_busattachment, authmechanism : ::windows_sys::core::PCSTR, username : ::windows_sys::core::PCSTR, password : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_addmatch(bus : alljoyn_busattachment, rule : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_advertisename(bus : alljoyn_busattachment, name : ::windows_sys::core::PCSTR, transports : u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_bindsessionport(bus : alljoyn_busattachment, sessionport : *mut u16, opts : alljoyn_sessionopts, listener : alljoyn_sessionportlistener) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_canceladvertisename(bus : alljoyn_busattachment, name : ::windows_sys::core::PCSTR, transports : u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_cancelfindadvertisedname(bus : alljoyn_busattachment, nameprefix : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_cancelfindadvertisednamebytransport(bus : alljoyn_busattachment, nameprefix : ::windows_sys::core::PCSTR, transports : u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_cancelwhoimplements_interface(bus : alljoyn_busattachment, implementsinterface : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_cancelwhoimplements_interfaces(bus : alljoyn_busattachment, implementsinterfaces : *const *const i8, numberinterfaces : usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_clearkeys(bus : alljoyn_busattachment, guid : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_clearkeystore(bus : alljoyn_busattachment) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_connect(bus : alljoyn_busattachment, connectspec : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_create(applicationname : ::windows_sys::core::PCSTR, allowremotemessages : i32) -> alljoyn_busattachment); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_create_concurrency(applicationname : ::windows_sys::core::PCSTR, allowremotemessages : i32, concurrency : u32) -> alljoyn_busattachment); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_createinterface(bus : alljoyn_busattachment, name : ::windows_sys::core::PCSTR, iface : *mut alljoyn_interfacedescription) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_createinterface_secure(bus : alljoyn_busattachment, name : ::windows_sys::core::PCSTR, iface : *mut alljoyn_interfacedescription, secpolicy : alljoyn_interfacedescription_securitypolicy) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_createinterfacesfromxml(bus : alljoyn_busattachment, xml : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_deletedefaultkeystore(applicationname : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_deleteinterface(bus : alljoyn_busattachment, iface : alljoyn_interfacedescription) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_destroy(bus : alljoyn_busattachment) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_disconnect(bus : alljoyn_busattachment, unused : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_enableconcurrentcallbacks(bus : alljoyn_busattachment) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_enablepeersecurity(bus : alljoyn_busattachment, authmechanisms : ::windows_sys::core::PCSTR, listener : alljoyn_authlistener, keystorefilename : ::windows_sys::core::PCSTR, isshared : i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_enablepeersecuritywithpermissionconfigurationlistener(bus : alljoyn_busattachment, authmechanisms : ::windows_sys::core::PCSTR, authlistener : alljoyn_authlistener, keystorefilename : ::windows_sys::core::PCSTR, isshared : i32, permissionconfigurationlistener : alljoyn_permissionconfigurationlistener) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_findadvertisedname(bus : alljoyn_busattachment, nameprefix : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_findadvertisednamebytransport(bus : alljoyn_busattachment, nameprefix : ::windows_sys::core::PCSTR, transports : u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_getalljoyndebugobj(bus : alljoyn_busattachment) -> alljoyn_proxybusobject); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_getalljoynproxyobj(bus : alljoyn_busattachment) -> alljoyn_proxybusobject); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_getconcurrency(bus : alljoyn_busattachment) -> u32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_getconnectspec(bus : alljoyn_busattachment) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_getdbusproxyobj(bus : alljoyn_busattachment) -> alljoyn_proxybusobject); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_getglobalguidstring(bus : alljoyn_busattachment) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_getinterface(bus : alljoyn_busattachment, name : ::windows_sys::core::PCSTR) -> alljoyn_interfacedescription); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_getinterfaces(bus : alljoyn_busattachment, ifaces : *const alljoyn_interfacedescription, numifaces : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_getkeyexpiration(bus : alljoyn_busattachment, guid : ::windows_sys::core::PCSTR, timeout : *mut u32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_getpeerguid(bus : alljoyn_busattachment, name : ::windows_sys::core::PCSTR, guid : ::windows_sys::core::PCSTR, guidsz : *mut usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_getpermissionconfigurator(bus : alljoyn_busattachment) -> alljoyn_permissionconfigurator); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_gettimestamp() -> u32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_getuniquename(bus : alljoyn_busattachment) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_isconnected(bus : alljoyn_busattachment) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_ispeersecurityenabled(bus : alljoyn_busattachment) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_isstarted(bus : alljoyn_busattachment) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_isstopping(bus : alljoyn_busattachment) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_join(bus : alljoyn_busattachment) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_joinsession(bus : alljoyn_busattachment, sessionhost : ::windows_sys::core::PCSTR, sessionport : u16, listener : alljoyn_sessionlistener, sessionid : *mut u32, opts : alljoyn_sessionopts) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_joinsessionasync(bus : alljoyn_busattachment, sessionhost : ::windows_sys::core::PCSTR, sessionport : u16, listener : alljoyn_sessionlistener, opts : alljoyn_sessionopts, callback : alljoyn_busattachment_joinsessioncb_ptr, context : *mut ::core::ffi::c_void) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_leavesession(bus : alljoyn_busattachment, sessionid : u32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_namehasowner(bus : alljoyn_busattachment, name : ::windows_sys::core::PCSTR, hasowner : *mut i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_ping(bus : alljoyn_busattachment, name : ::windows_sys::core::PCSTR, timeout : u32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_registeraboutlistener(bus : alljoyn_busattachment, aboutlistener : alljoyn_aboutlistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_registerapplicationstatelistener(bus : alljoyn_busattachment, listener : alljoyn_applicationstatelistener) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_registerbuslistener(bus : alljoyn_busattachment, listener : alljoyn_buslistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_registerbusobject(bus : alljoyn_busattachment, obj : alljoyn_busobject) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_registerbusobject_secure(bus : alljoyn_busattachment, obj : alljoyn_busobject) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_registerkeystorelistener(bus : alljoyn_busattachment, listener : alljoyn_keystorelistener) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_registersignalhandler(bus : alljoyn_busattachment, signal_handler : alljoyn_messagereceiver_signalhandler_ptr, member : alljoyn_interfacedescription_member, srcpath : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_registersignalhandlerwithrule(bus : alljoyn_busattachment, signal_handler : alljoyn_messagereceiver_signalhandler_ptr, member : alljoyn_interfacedescription_member, matchrule : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_releasename(bus : alljoyn_busattachment, name : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_reloadkeystore(bus : alljoyn_busattachment) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_removematch(bus : alljoyn_busattachment, rule : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_removesessionmember(bus : alljoyn_busattachment, sessionid : u32, membername : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_requestname(bus : alljoyn_busattachment, requestedname : ::windows_sys::core::PCSTR, flags : u32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_secureconnection(bus : alljoyn_busattachment, name : ::windows_sys::core::PCSTR, forceauth : i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_secureconnectionasync(bus : alljoyn_busattachment, name : ::windows_sys::core::PCSTR, forceauth : i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_setdaemondebug(bus : alljoyn_busattachment, module : ::windows_sys::core::PCSTR, level : u32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_setkeyexpiration(bus : alljoyn_busattachment, guid : ::windows_sys::core::PCSTR, timeout : u32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_setlinktimeout(bus : alljoyn_busattachment, sessionid : u32, linktimeout : *mut u32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_setlinktimeoutasync(bus : alljoyn_busattachment, sessionid : u32, linktimeout : u32, callback : alljoyn_busattachment_setlinktimeoutcb_ptr, context : *mut ::core::ffi::c_void) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_setsessionlistener(bus : alljoyn_busattachment, sessionid : u32, listener : alljoyn_sessionlistener) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_start(bus : alljoyn_busattachment) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_stop(bus : alljoyn_busattachment) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_unbindsessionport(bus : alljoyn_busattachment, sessionport : u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_unregisteraboutlistener(bus : alljoyn_busattachment, aboutlistener : alljoyn_aboutlistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_unregisterallaboutlisteners(bus : alljoyn_busattachment) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_unregisterallhandlers(bus : alljoyn_busattachment) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_unregisterapplicationstatelistener(bus : alljoyn_busattachment, listener : alljoyn_applicationstatelistener) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_unregisterbuslistener(bus : alljoyn_busattachment, listener : alljoyn_buslistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_unregisterbusobject(bus : alljoyn_busattachment, object : alljoyn_busobject) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_unregistersignalhandler(bus : alljoyn_busattachment, signal_handler : alljoyn_messagereceiver_signalhandler_ptr, member : alljoyn_interfacedescription_member, srcpath : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_unregistersignalhandlerwithrule(bus : alljoyn_busattachment, signal_handler : alljoyn_messagereceiver_signalhandler_ptr, member : alljoyn_interfacedescription_member, matchrule : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_whoimplements_interface(bus : alljoyn_busattachment, implementsinterface : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busattachment_whoimplements_interfaces(bus : alljoyn_busattachment, implementsinterfaces : *const *const i8, numberinterfaces : usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_buslistener_create(callbacks : *const alljoyn_buslistener_callbacks, context : *const ::core::ffi::c_void) -> alljoyn_buslistener); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_buslistener_destroy(listener : alljoyn_buslistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_addinterface(bus : alljoyn_busobject, iface : alljoyn_interfacedescription) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_addinterface_announced(bus : alljoyn_busobject, iface : alljoyn_interfacedescription) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_addmethodhandler(bus : alljoyn_busobject, member : alljoyn_interfacedescription_member, handler : alljoyn_messagereceiver_methodhandler_ptr, context : *mut ::core::ffi::c_void) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_addmethodhandlers(bus : alljoyn_busobject, entries : *const alljoyn_busobject_methodentry, numentries : usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_cancelsessionlessmessage(bus : alljoyn_busobject, msg : alljoyn_message) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_cancelsessionlessmessage_serial(bus : alljoyn_busobject, serialnumber : u32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_create(path : ::windows_sys::core::PCSTR, isplaceholder : i32, callbacks_in : *const alljoyn_busobject_callbacks, context_in : *const ::core::ffi::c_void) -> alljoyn_busobject); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_destroy(bus : alljoyn_busobject) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_emitpropertieschanged(bus : alljoyn_busobject, ifcname : ::windows_sys::core::PCSTR, propnames : *const *const i8, numprops : usize, id : u32) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_emitpropertychanged(bus : alljoyn_busobject, ifcname : ::windows_sys::core::PCSTR, propname : ::windows_sys::core::PCSTR, val : alljoyn_msgarg, id : u32) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_getannouncedinterfacenames(bus : alljoyn_busobject, interfaces : *const *const i8, numinterfaces : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_getbusattachment(bus : alljoyn_busobject) -> alljoyn_busattachment); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_getname(bus : alljoyn_busobject, buffer : ::windows_sys::core::PCSTR, buffersz : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_getpath(bus : alljoyn_busobject) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_issecure(bus : alljoyn_busobject) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_methodreply_args(bus : alljoyn_busobject, msg : alljoyn_message, args : alljoyn_msgarg, numargs : usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_methodreply_err(bus : alljoyn_busobject, msg : alljoyn_message, error : ::windows_sys::core::PCSTR, errormessage : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_methodreply_status(bus : alljoyn_busobject, msg : alljoyn_message, status : QStatus) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_setannounceflag(bus : alljoyn_busobject, iface : alljoyn_interfacedescription, isannounced : alljoyn_about_announceflag) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_busobject_signal(bus : alljoyn_busobject, destination : ::windows_sys::core::PCSTR, sessionid : u32, signal : alljoyn_interfacedescription_member, args : alljoyn_msgarg, numargs : usize, timetolive : u16, flags : u8, msg : alljoyn_message) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_clear(cred : alljoyn_credentials) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_create() -> alljoyn_credentials); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_destroy(cred : alljoyn_credentials) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_getcertchain(cred : alljoyn_credentials) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_getexpiration(cred : alljoyn_credentials) -> u32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_getlogonentry(cred : alljoyn_credentials) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_getpassword(cred : alljoyn_credentials) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_getprivateKey(cred : alljoyn_credentials) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_getusername(cred : alljoyn_credentials) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_isset(cred : alljoyn_credentials, creds : u16) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_setcertchain(cred : alljoyn_credentials, certchain : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_setexpiration(cred : alljoyn_credentials, expiration : u32) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_setlogonentry(cred : alljoyn_credentials, logonentry : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_setpassword(cred : alljoyn_credentials, pwd : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_setprivatekey(cred : alljoyn_credentials, pk : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_credentials_setusername(cred : alljoyn_credentials, username : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_getbuildinfo() -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_getnumericversion() -> u32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_getversion() -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_init() -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_activate(iface : alljoyn_interfacedescription) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_addannotation(iface : alljoyn_interfacedescription, name : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_addargannotation(iface : alljoyn_interfacedescription, member : ::windows_sys::core::PCSTR, argname : ::windows_sys::core::PCSTR, name : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_addmember(iface : alljoyn_interfacedescription, r#type : alljoyn_messagetype, name : ::windows_sys::core::PCSTR, inputsig : ::windows_sys::core::PCSTR, outsig : ::windows_sys::core::PCSTR, argnames : ::windows_sys::core::PCSTR, annotation : u8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_addmemberannotation(iface : alljoyn_interfacedescription, member : ::windows_sys::core::PCSTR, name : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_addmethod(iface : alljoyn_interfacedescription, name : ::windows_sys::core::PCSTR, inputsig : ::windows_sys::core::PCSTR, outsig : ::windows_sys::core::PCSTR, argnames : ::windows_sys::core::PCSTR, annotation : u8, accessperms : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_addproperty(iface : alljoyn_interfacedescription, name : ::windows_sys::core::PCSTR, signature : ::windows_sys::core::PCSTR, access : u8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_addpropertyannotation(iface : alljoyn_interfacedescription, property : ::windows_sys::core::PCSTR, name : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_addsignal(iface : alljoyn_interfacedescription, name : ::windows_sys::core::PCSTR, sig : ::windows_sys::core::PCSTR, argnames : ::windows_sys::core::PCSTR, annotation : u8, accessperms : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_eql(one : alljoyn_interfacedescription, other : alljoyn_interfacedescription) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getannotation(iface : alljoyn_interfacedescription, name : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR, value_size : *mut usize) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getannotationatindex(iface : alljoyn_interfacedescription, index : usize, name : ::windows_sys::core::PCSTR, name_size : *mut usize, value : ::windows_sys::core::PCSTR, value_size : *mut usize) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getannotationscount(iface : alljoyn_interfacedescription) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getargdescriptionforlanguage(iface : alljoyn_interfacedescription, member : ::windows_sys::core::PCSTR, arg : ::windows_sys::core::PCSTR, description : ::windows_sys::core::PCSTR, maxlanguagelength : usize, languagetag : ::windows_sys::core::PCSTR) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getdescriptionforlanguage(iface : alljoyn_interfacedescription, description : ::windows_sys::core::PCSTR, maxlanguagelength : usize, languagetag : ::windows_sys::core::PCSTR) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getdescriptionlanguages(iface : alljoyn_interfacedescription, languages : *const *const i8, size : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getdescriptionlanguages2(iface : alljoyn_interfacedescription, languages : ::windows_sys::core::PCSTR, languagessize : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getdescriptiontranslationcallback(iface : alljoyn_interfacedescription) -> alljoyn_interfacedescription_translation_callback_ptr); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getmember(iface : alljoyn_interfacedescription, name : ::windows_sys::core::PCSTR, member : *mut alljoyn_interfacedescription_member) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getmemberannotation(iface : alljoyn_interfacedescription, member : ::windows_sys::core::PCSTR, name : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR, value_size : *mut usize) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getmemberargannotation(iface : alljoyn_interfacedescription, member : ::windows_sys::core::PCSTR, argname : ::windows_sys::core::PCSTR, name : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR, value_size : *mut usize) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getmemberdescriptionforlanguage(iface : alljoyn_interfacedescription, member : ::windows_sys::core::PCSTR, description : ::windows_sys::core::PCSTR, maxlanguagelength : usize, languagetag : ::windows_sys::core::PCSTR) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getmembers(iface : alljoyn_interfacedescription, members : *mut alljoyn_interfacedescription_member, nummembers : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getmethod(iface : alljoyn_interfacedescription, name : ::windows_sys::core::PCSTR, member : *mut alljoyn_interfacedescription_member) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getname(iface : alljoyn_interfacedescription) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getproperties(iface : alljoyn_interfacedescription, props : *mut alljoyn_interfacedescription_property, numprops : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getproperty(iface : alljoyn_interfacedescription, name : ::windows_sys::core::PCSTR, property : *mut alljoyn_interfacedescription_property) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getpropertyannotation(iface : alljoyn_interfacedescription, property : ::windows_sys::core::PCSTR, name : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR, str_size : *mut usize) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getpropertydescriptionforlanguage(iface : alljoyn_interfacedescription, property : ::windows_sys::core::PCSTR, description : ::windows_sys::core::PCSTR, maxlanguagelength : usize, languagetag : ::windows_sys::core::PCSTR) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getsecuritypolicy(iface : alljoyn_interfacedescription) -> alljoyn_interfacedescription_securitypolicy); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_getsignal(iface : alljoyn_interfacedescription, name : ::windows_sys::core::PCSTR, member : *mut alljoyn_interfacedescription_member) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_hasdescription(iface : alljoyn_interfacedescription) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_hasmember(iface : alljoyn_interfacedescription, name : ::windows_sys::core::PCSTR, insig : ::windows_sys::core::PCSTR, outsig : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_hasproperties(iface : alljoyn_interfacedescription) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_hasproperty(iface : alljoyn_interfacedescription, name : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_introspect(iface : alljoyn_interfacedescription, str : ::windows_sys::core::PCSTR, buf : usize, indent : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_issecure(iface : alljoyn_interfacedescription) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_member_eql(one : alljoyn_interfacedescription_member, other : alljoyn_interfacedescription_member) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_member_getannotation(member : alljoyn_interfacedescription_member, name : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR, value_size : *mut usize) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_member_getannotationatindex(member : alljoyn_interfacedescription_member, index : usize, name : ::windows_sys::core::PCSTR, name_size : *mut usize, value : ::windows_sys::core::PCSTR, value_size : *mut usize) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_member_getannotationscount(member : alljoyn_interfacedescription_member) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_member_getargannotation(member : alljoyn_interfacedescription_member, argname : ::windows_sys::core::PCSTR, name : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR, value_size : *mut usize) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_member_getargannotationatindex(member : alljoyn_interfacedescription_member, argname : ::windows_sys::core::PCSTR, index : usize, name : ::windows_sys::core::PCSTR, name_size : *mut usize, value : ::windows_sys::core::PCSTR, value_size : *mut usize) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_member_getargannotationscount(member : alljoyn_interfacedescription_member, argname : ::windows_sys::core::PCSTR) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_property_eql(one : alljoyn_interfacedescription_property, other : alljoyn_interfacedescription_property) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_property_getannotation(property : alljoyn_interfacedescription_property, name : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR, value_size : *mut usize) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_property_getannotationatindex(property : alljoyn_interfacedescription_property, index : usize, name : ::windows_sys::core::PCSTR, name_size : *mut usize, value : ::windows_sys::core::PCSTR, value_size : *mut usize) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_property_getannotationscount(property : alljoyn_interfacedescription_property) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_setargdescription(iface : alljoyn_interfacedescription, member : ::windows_sys::core::PCSTR, argname : ::windows_sys::core::PCSTR, description : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_setargdescriptionforlanguage(iface : alljoyn_interfacedescription, member : ::windows_sys::core::PCSTR, arg : ::windows_sys::core::PCSTR, description : ::windows_sys::core::PCSTR, languagetag : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_setdescription(iface : alljoyn_interfacedescription, description : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_setdescriptionforlanguage(iface : alljoyn_interfacedescription, description : ::windows_sys::core::PCSTR, languagetag : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_setdescriptionlanguage(iface : alljoyn_interfacedescription, language : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_setdescriptiontranslationcallback(iface : alljoyn_interfacedescription, translationcallback : alljoyn_interfacedescription_translation_callback_ptr) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_setmemberdescription(iface : alljoyn_interfacedescription, member : ::windows_sys::core::PCSTR, description : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_setmemberdescriptionforlanguage(iface : alljoyn_interfacedescription, member : ::windows_sys::core::PCSTR, description : ::windows_sys::core::PCSTR, languagetag : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_setpropertydescription(iface : alljoyn_interfacedescription, name : ::windows_sys::core::PCSTR, description : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_interfacedescription_setpropertydescriptionforlanguage(iface : alljoyn_interfacedescription, name : ::windows_sys::core::PCSTR, description : ::windows_sys::core::PCSTR, languagetag : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_keystorelistener_create(callbacks : *const alljoyn_keystorelistener_callbacks, context : *const ::core::ffi::c_void) -> alljoyn_keystorelistener); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_keystorelistener_destroy(listener : alljoyn_keystorelistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_keystorelistener_getkeys(listener : alljoyn_keystorelistener, keystore : alljoyn_keystore, sink : ::windows_sys::core::PCSTR, sink_sz : *mut usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_keystorelistener_putkeys(listener : alljoyn_keystorelistener, keystore : alljoyn_keystore, source : ::windows_sys::core::PCSTR, password : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_keystorelistener_with_synchronization_create(callbacks : *const alljoyn_keystorelistener_with_synchronization_callbacks, context : *mut ::core::ffi::c_void) -> alljoyn_keystorelistener); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_create(bus : alljoyn_busattachment) -> alljoyn_message); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_description(msg : alljoyn_message, str : ::windows_sys::core::PCSTR, buf : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_destroy(msg : alljoyn_message) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_eql(one : alljoyn_message, other : alljoyn_message) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getarg(msg : alljoyn_message, argn : usize) -> alljoyn_msgarg); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getargs(msg : alljoyn_message, numargs : *mut usize, args : *mut alljoyn_msgarg) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getauthmechanism(msg : alljoyn_message) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getcallserial(msg : alljoyn_message) -> u32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getcompressiontoken(msg : alljoyn_message) -> u32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getdestination(msg : alljoyn_message) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_geterrorname(msg : alljoyn_message, errormessage : ::windows_sys::core::PCSTR, errormessage_size : *mut usize) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getflags(msg : alljoyn_message) -> u8); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getinterface(msg : alljoyn_message) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getmembername(msg : alljoyn_message) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getobjectpath(msg : alljoyn_message) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getreceiveendpointname(msg : alljoyn_message) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getreplyserial(msg : alljoyn_message) -> u32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getsender(msg : alljoyn_message) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getsessionid(msg : alljoyn_message) -> u32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_getsignature(msg : alljoyn_message) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_gettimestamp(msg : alljoyn_message) -> u32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_gettype(msg : alljoyn_message) -> alljoyn_messagetype); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_isbroadcastsignal(msg : alljoyn_message) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_isencrypted(msg : alljoyn_message) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_isexpired(msg : alljoyn_message, tillexpirems : *mut u32) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_isglobalbroadcast(msg : alljoyn_message) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_issessionless(msg : alljoyn_message) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_isunreliable(msg : alljoyn_message) -> i32); +::windows_targets::link!("msajapi.dll" "cdecl" fn alljoyn_message_parseargs(msg : alljoyn_message, signature : ::windows_sys::core::PCSTR, ...) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_setendianess(endian : i8) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_message_tostring(msg : alljoyn_message, str : ::windows_sys::core::PCSTR, buf : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_array_create(size : usize) -> alljoyn_msgarg); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_array_element(arg : alljoyn_msgarg, index : usize) -> alljoyn_msgarg); +::windows_targets::link!("msajapi.dll" "cdecl" fn alljoyn_msgarg_array_get(args : alljoyn_msgarg, numargs : usize, signature : ::windows_sys::core::PCSTR, ...) -> QStatus); +::windows_targets::link!("msajapi.dll" "cdecl" fn alljoyn_msgarg_array_set(args : alljoyn_msgarg, numargs : *mut usize, signature : ::windows_sys::core::PCSTR, ...) -> QStatus); +::windows_targets::link!("msajapi.dll" "cdecl" fn alljoyn_msgarg_array_set_offset(args : alljoyn_msgarg, argoffset : usize, numargs : *mut usize, signature : ::windows_sys::core::PCSTR, ...) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_array_signature(values : alljoyn_msgarg, numvalues : usize, str : ::windows_sys::core::PCSTR, buf : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_array_tostring(args : alljoyn_msgarg, numargs : usize, str : ::windows_sys::core::PCSTR, buf : usize, indent : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_clear(arg : alljoyn_msgarg) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_clone(destination : alljoyn_msgarg, source : alljoyn_msgarg) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_copy(source : alljoyn_msgarg) -> alljoyn_msgarg); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_create() -> alljoyn_msgarg); +::windows_targets::link!("msajapi.dll" "cdecl" fn alljoyn_msgarg_create_and_set(signature : ::windows_sys::core::PCSTR, ...) -> alljoyn_msgarg); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_destroy(arg : alljoyn_msgarg) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_equal(lhv : alljoyn_msgarg, rhv : alljoyn_msgarg) -> i32); +::windows_targets::link!("msajapi.dll" "cdecl" fn alljoyn_msgarg_get(arg : alljoyn_msgarg, signature : ::windows_sys::core::PCSTR, ...) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_array_element(arg : alljoyn_msgarg, index : usize, element : *mut alljoyn_msgarg) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_array_elementsignature(arg : alljoyn_msgarg, index : usize) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_array_numberofelements(arg : alljoyn_msgarg) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_bool(arg : alljoyn_msgarg, b : *mut i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_bool_array(arg : alljoyn_msgarg, length : *mut usize, ab : *mut i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_double(arg : alljoyn_msgarg, d : *mut f64) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_double_array(arg : alljoyn_msgarg, length : *mut usize, ad : *mut f64) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_int16(arg : alljoyn_msgarg, n : *mut i16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_int16_array(arg : alljoyn_msgarg, length : *mut usize, an : *mut i16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_int32(arg : alljoyn_msgarg, i : *mut i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_int32_array(arg : alljoyn_msgarg, length : *mut usize, ai : *mut i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_int64(arg : alljoyn_msgarg, x : *mut i64) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_int64_array(arg : alljoyn_msgarg, length : *mut usize, ax : *mut i64) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_objectpath(arg : alljoyn_msgarg, o : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_signature(arg : alljoyn_msgarg, g : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_string(arg : alljoyn_msgarg, s : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_uint16(arg : alljoyn_msgarg, q : *mut u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_uint16_array(arg : alljoyn_msgarg, length : *mut usize, aq : *mut u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_uint32(arg : alljoyn_msgarg, u : *mut u32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_uint32_array(arg : alljoyn_msgarg, length : *mut usize, au : *mut u32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_uint64(arg : alljoyn_msgarg, t : *mut u64) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_uint64_array(arg : alljoyn_msgarg, length : *mut usize, at : *mut u64) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_uint8(arg : alljoyn_msgarg, y : *mut u8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_uint8_array(arg : alljoyn_msgarg, length : *mut usize, ay : *mut u8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_variant(arg : alljoyn_msgarg, v : alljoyn_msgarg) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_get_variant_array(arg : alljoyn_msgarg, signature : ::windows_sys::core::PCSTR, length : *mut usize, av : *mut alljoyn_msgarg) -> QStatus); +::windows_targets::link!("msajapi.dll" "cdecl" fn alljoyn_msgarg_getdictelement(arg : alljoyn_msgarg, elemsig : ::windows_sys::core::PCSTR, ...) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_getkey(arg : alljoyn_msgarg) -> alljoyn_msgarg); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_getmember(arg : alljoyn_msgarg, index : usize) -> alljoyn_msgarg); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_getnummembers(arg : alljoyn_msgarg) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_gettype(arg : alljoyn_msgarg) -> alljoyn_typeid); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_getvalue(arg : alljoyn_msgarg) -> alljoyn_msgarg); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_hassignature(arg : alljoyn_msgarg, signature : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("msajapi.dll" "cdecl" fn alljoyn_msgarg_set(arg : alljoyn_msgarg, signature : ::windows_sys::core::PCSTR, ...) -> QStatus); +::windows_targets::link!("msajapi.dll" "cdecl" fn alljoyn_msgarg_set_and_stabilize(arg : alljoyn_msgarg, signature : ::windows_sys::core::PCSTR, ...) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_bool(arg : alljoyn_msgarg, b : i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_bool_array(arg : alljoyn_msgarg, length : usize, ab : *mut i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_double(arg : alljoyn_msgarg, d : f64) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_double_array(arg : alljoyn_msgarg, length : usize, ad : *mut f64) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_int16(arg : alljoyn_msgarg, n : i16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_int16_array(arg : alljoyn_msgarg, length : usize, an : *mut i16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_int32(arg : alljoyn_msgarg, i : i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_int32_array(arg : alljoyn_msgarg, length : usize, ai : *mut i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_int64(arg : alljoyn_msgarg, x : i64) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_int64_array(arg : alljoyn_msgarg, length : usize, ax : *mut i64) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_objectpath(arg : alljoyn_msgarg, o : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_objectpath_array(arg : alljoyn_msgarg, length : usize, ao : *const *const i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_signature(arg : alljoyn_msgarg, g : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_signature_array(arg : alljoyn_msgarg, length : usize, ag : *const *const i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_string(arg : alljoyn_msgarg, s : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_string_array(arg : alljoyn_msgarg, length : usize, r#as : *const *const i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_uint16(arg : alljoyn_msgarg, q : u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_uint16_array(arg : alljoyn_msgarg, length : usize, aq : *mut u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_uint32(arg : alljoyn_msgarg, u : u32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_uint32_array(arg : alljoyn_msgarg, length : usize, au : *mut u32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_uint64(arg : alljoyn_msgarg, t : u64) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_uint64_array(arg : alljoyn_msgarg, length : usize, at : *mut u64) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_uint8(arg : alljoyn_msgarg, y : u8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_set_uint8_array(arg : alljoyn_msgarg, length : usize, ay : *mut u8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_setdictentry(arg : alljoyn_msgarg, key : alljoyn_msgarg, value : alljoyn_msgarg) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_setstruct(arg : alljoyn_msgarg, struct_members : alljoyn_msgarg, num_members : usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_signature(arg : alljoyn_msgarg, str : ::windows_sys::core::PCSTR, buf : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_stabilize(arg : alljoyn_msgarg) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_msgarg_tostring(arg : alljoyn_msgarg, str : ::windows_sys::core::PCSTR, buf : usize, indent : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_observer_create(bus : alljoyn_busattachment, mandatoryinterfaces : *const *const i8, nummandatoryinterfaces : usize) -> alljoyn_observer); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_observer_destroy(observer : alljoyn_observer) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_observer_get(observer : alljoyn_observer, uniquebusname : ::windows_sys::core::PCSTR, objectpath : ::windows_sys::core::PCSTR) -> alljoyn_proxybusobject_ref); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_observer_getfirst(observer : alljoyn_observer) -> alljoyn_proxybusobject_ref); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_observer_getnext(observer : alljoyn_observer, proxyref : alljoyn_proxybusobject_ref) -> alljoyn_proxybusobject_ref); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_observer_registerlistener(observer : alljoyn_observer, listener : alljoyn_observerlistener, triggeronexisting : i32) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_observer_unregisteralllisteners(observer : alljoyn_observer) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_observer_unregisterlistener(observer : alljoyn_observer, listener : alljoyn_observerlistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_observerlistener_create(callback : *const alljoyn_observerlistener_callback, context : *const ::core::ffi::c_void) -> alljoyn_observerlistener); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_observerlistener_destroy(listener : alljoyn_observerlistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_passwordmanager_setcredentials(authmechanism : ::windows_sys::core::PCSTR, password : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurationlistener_create(callbacks : *const alljoyn_permissionconfigurationlistener_callbacks, context : *const ::core::ffi::c_void) -> alljoyn_permissionconfigurationlistener); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurationlistener_destroy(listener : alljoyn_permissionconfigurationlistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_certificatechain_destroy(certificatechain : *mut i8) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_certificateid_cleanup(certificateid : *mut alljoyn_certificateid) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_certificateidarray_cleanup(certificateidarray : *mut alljoyn_certificateidarray) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_claim(configurator : alljoyn_permissionconfigurator, cakey : *mut i8, identitycertificatechain : *mut i8, groupid : *const u8, groupsize : usize, groupauthority : *mut i8, manifestsxmls : *mut *mut i8, manifestscount : usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_endmanagement(configurator : alljoyn_permissionconfigurator) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_getapplicationstate(configurator : alljoyn_permissionconfigurator, state : *mut alljoyn_applicationstate) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_getclaimcapabilities(configurator : alljoyn_permissionconfigurator, claimcapabilities : *mut u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_getclaimcapabilitiesadditionalinfo(configurator : alljoyn_permissionconfigurator, additionalinfo : *mut u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_getdefaultclaimcapabilities() -> u16); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_getdefaultpolicy(configurator : alljoyn_permissionconfigurator, policyxml : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_getidentity(configurator : alljoyn_permissionconfigurator, identitycertificatechain : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_getidentitycertificateid(configurator : alljoyn_permissionconfigurator, certificateid : *mut alljoyn_certificateid) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_getmanifests(configurator : alljoyn_permissionconfigurator, manifestarray : *mut alljoyn_manifestarray) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_getmanifesttemplate(configurator : alljoyn_permissionconfigurator, manifesttemplatexml : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_getmembershipsummaries(configurator : alljoyn_permissionconfigurator, certificateids : *mut alljoyn_certificateidarray) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_getpolicy(configurator : alljoyn_permissionconfigurator, policyxml : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_getpublickey(configurator : alljoyn_permissionconfigurator, publickey : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_installmanifests(configurator : alljoyn_permissionconfigurator, manifestsxmls : *mut *mut i8, manifestscount : usize, append : i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_installmembership(configurator : alljoyn_permissionconfigurator, membershipcertificatechain : *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_manifestarray_cleanup(manifestarray : *mut alljoyn_manifestarray) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_manifesttemplate_destroy(manifesttemplatexml : *mut i8) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_policy_destroy(policyxml : *mut i8) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_publickey_destroy(publickey : *mut i8) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_removemembership(configurator : alljoyn_permissionconfigurator, serial : *const u8, seriallen : usize, issuerpublickey : *mut i8, issueraki : *const u8, issuerakilen : usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_reset(configurator : alljoyn_permissionconfigurator) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_resetpolicy(configurator : alljoyn_permissionconfigurator) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_setapplicationstate(configurator : alljoyn_permissionconfigurator, state : alljoyn_applicationstate) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_setclaimcapabilities(configurator : alljoyn_permissionconfigurator, claimcapabilities : u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_setclaimcapabilitiesadditionalinfo(configurator : alljoyn_permissionconfigurator, additionalinfo : u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_setmanifesttemplatefromxml(configurator : alljoyn_permissionconfigurator, manifesttemplatexml : *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_startmanagement(configurator : alljoyn_permissionconfigurator) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_updateidentity(configurator : alljoyn_permissionconfigurator, identitycertificatechain : *mut i8, manifestsxmls : *mut *mut i8, manifestscount : usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_permissionconfigurator_updatepolicy(configurator : alljoyn_permissionconfigurator, policyxml : *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_pinglistener_create(callback : *const alljoyn_pinglistener_callback, context : *const ::core::ffi::c_void) -> alljoyn_pinglistener); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_pinglistener_destroy(listener : alljoyn_pinglistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_addchild(proxyobj : alljoyn_proxybusobject, child : alljoyn_proxybusobject) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_addinterface(proxyobj : alljoyn_proxybusobject, iface : alljoyn_interfacedescription) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_addinterface_by_name(proxyobj : alljoyn_proxybusobject, name : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_copy(source : alljoyn_proxybusobject) -> alljoyn_proxybusobject); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_create(bus : alljoyn_busattachment, service : ::windows_sys::core::PCSTR, path : ::windows_sys::core::PCSTR, sessionid : u32) -> alljoyn_proxybusobject); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_create_secure(bus : alljoyn_busattachment, service : ::windows_sys::core::PCSTR, path : ::windows_sys::core::PCSTR, sessionid : u32) -> alljoyn_proxybusobject); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_destroy(proxyobj : alljoyn_proxybusobject) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_enablepropertycaching(proxyobj : alljoyn_proxybusobject) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_getallproperties(proxyobj : alljoyn_proxybusobject, iface : ::windows_sys::core::PCSTR, values : alljoyn_msgarg) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_getallpropertiesasync(proxyobj : alljoyn_proxybusobject, iface : ::windows_sys::core::PCSTR, callback : alljoyn_proxybusobject_listener_getallpropertiescb_ptr, timeout : u32, context : *mut ::core::ffi::c_void) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_getchild(proxyobj : alljoyn_proxybusobject, path : ::windows_sys::core::PCSTR) -> alljoyn_proxybusobject); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_getchildren(proxyobj : alljoyn_proxybusobject, children : *mut alljoyn_proxybusobject, numchildren : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_getinterface(proxyobj : alljoyn_proxybusobject, iface : ::windows_sys::core::PCSTR) -> alljoyn_interfacedescription); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_getinterfaces(proxyobj : alljoyn_proxybusobject, ifaces : *const alljoyn_interfacedescription, numifaces : usize) -> usize); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_getpath(proxyobj : alljoyn_proxybusobject) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_getproperty(proxyobj : alljoyn_proxybusobject, iface : ::windows_sys::core::PCSTR, property : ::windows_sys::core::PCSTR, value : alljoyn_msgarg) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_getpropertyasync(proxyobj : alljoyn_proxybusobject, iface : ::windows_sys::core::PCSTR, property : ::windows_sys::core::PCSTR, callback : alljoyn_proxybusobject_listener_getpropertycb_ptr, timeout : u32, context : *mut ::core::ffi::c_void) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_getservicename(proxyobj : alljoyn_proxybusobject) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_getsessionid(proxyobj : alljoyn_proxybusobject) -> u32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_getuniquename(proxyobj : alljoyn_proxybusobject) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_implementsinterface(proxyobj : alljoyn_proxybusobject, iface : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_introspectremoteobject(proxyobj : alljoyn_proxybusobject) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_introspectremoteobjectasync(proxyobj : alljoyn_proxybusobject, callback : alljoyn_proxybusobject_listener_introspectcb_ptr, context : *mut ::core::ffi::c_void) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_issecure(proxyobj : alljoyn_proxybusobject) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_isvalid(proxyobj : alljoyn_proxybusobject) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_methodcall(proxyobj : alljoyn_proxybusobject, ifacename : ::windows_sys::core::PCSTR, methodname : ::windows_sys::core::PCSTR, args : alljoyn_msgarg, numargs : usize, replymsg : alljoyn_message, timeout : u32, flags : u8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_methodcall_member(proxyobj : alljoyn_proxybusobject, method : alljoyn_interfacedescription_member, args : alljoyn_msgarg, numargs : usize, replymsg : alljoyn_message, timeout : u32, flags : u8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_methodcall_member_noreply(proxyobj : alljoyn_proxybusobject, method : alljoyn_interfacedescription_member, args : alljoyn_msgarg, numargs : usize, flags : u8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_methodcall_noreply(proxyobj : alljoyn_proxybusobject, ifacename : ::windows_sys::core::PCSTR, methodname : ::windows_sys::core::PCSTR, args : alljoyn_msgarg, numargs : usize, flags : u8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_methodcallasync(proxyobj : alljoyn_proxybusobject, ifacename : ::windows_sys::core::PCSTR, methodname : ::windows_sys::core::PCSTR, replyfunc : alljoyn_messagereceiver_replyhandler_ptr, args : alljoyn_msgarg, numargs : usize, context : *mut ::core::ffi::c_void, timeout : u32, flags : u8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_methodcallasync_member(proxyobj : alljoyn_proxybusobject, method : alljoyn_interfacedescription_member, replyfunc : alljoyn_messagereceiver_replyhandler_ptr, args : alljoyn_msgarg, numargs : usize, context : *mut ::core::ffi::c_void, timeout : u32, flags : u8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_parsexml(proxyobj : alljoyn_proxybusobject, xml : ::windows_sys::core::PCSTR, identifier : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_ref_create(proxy : alljoyn_proxybusobject) -> alljoyn_proxybusobject_ref); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_ref_decref(r#ref : alljoyn_proxybusobject_ref) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_ref_get(r#ref : alljoyn_proxybusobject_ref) -> alljoyn_proxybusobject); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_ref_incref(r#ref : alljoyn_proxybusobject_ref) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_registerpropertieschangedlistener(proxyobj : alljoyn_proxybusobject, iface : ::windows_sys::core::PCSTR, properties : *const *const i8, numproperties : usize, callback : alljoyn_proxybusobject_listener_propertieschanged_ptr, context : *mut ::core::ffi::c_void) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_removechild(proxyobj : alljoyn_proxybusobject, path : ::windows_sys::core::PCSTR) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_secureconnection(proxyobj : alljoyn_proxybusobject, forceauth : i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_secureconnectionasync(proxyobj : alljoyn_proxybusobject, forceauth : i32) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_setproperty(proxyobj : alljoyn_proxybusobject, iface : ::windows_sys::core::PCSTR, property : ::windows_sys::core::PCSTR, value : alljoyn_msgarg) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_setpropertyasync(proxyobj : alljoyn_proxybusobject, iface : ::windows_sys::core::PCSTR, property : ::windows_sys::core::PCSTR, value : alljoyn_msgarg, callback : alljoyn_proxybusobject_listener_setpropertycb_ptr, timeout : u32, context : *mut ::core::ffi::c_void) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_proxybusobject_unregisterpropertieschangedlistener(proxyobj : alljoyn_proxybusobject, iface : ::windows_sys::core::PCSTR, callback : alljoyn_proxybusobject_listener_propertieschanged_ptr) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_routerinit() -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_routerinitwithconfig(configxml : *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_routershutdown() -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_claim(proxy : alljoyn_securityapplicationproxy, cakey : *mut i8, identitycertificatechain : *mut i8, groupid : *const u8, groupsize : usize, groupauthority : *mut i8, manifestsxmls : *mut *mut i8, manifestscount : usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_computemanifestdigest(unsignedmanifestxml : *mut i8, identitycertificatepem : *mut i8, digest : *mut *mut u8, digestsize : *mut usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_create(bus : alljoyn_busattachment, appbusname : *mut i8, sessionid : u32) -> alljoyn_securityapplicationproxy); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_destroy(proxy : alljoyn_securityapplicationproxy) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_digest_destroy(digest : *mut u8) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_eccpublickey_destroy(eccpublickey : *mut i8) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_endmanagement(proxy : alljoyn_securityapplicationproxy) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_getapplicationstate(proxy : alljoyn_securityapplicationproxy, applicationstate : *mut alljoyn_applicationstate) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_getclaimcapabilities(proxy : alljoyn_securityapplicationproxy, capabilities : *mut u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_getclaimcapabilitiesadditionalinfo(proxy : alljoyn_securityapplicationproxy, additionalinfo : *mut u16) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_getdefaultpolicy(proxy : alljoyn_securityapplicationproxy, policyxml : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_geteccpublickey(proxy : alljoyn_securityapplicationproxy, eccpublickey : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_getmanifesttemplate(proxy : alljoyn_securityapplicationproxy, manifesttemplatexml : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_getpermissionmanagementsessionport() -> u16); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_getpolicy(proxy : alljoyn_securityapplicationproxy, policyxml : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_installmembership(proxy : alljoyn_securityapplicationproxy, membershipcertificatechain : *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_manifest_destroy(signedmanifestxml : *mut i8) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_manifesttemplate_destroy(manifesttemplatexml : *mut i8) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_policy_destroy(policyxml : *mut i8) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_reset(proxy : alljoyn_securityapplicationproxy) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_resetpolicy(proxy : alljoyn_securityapplicationproxy) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_setmanifestsignature(unsignedmanifestxml : *mut i8, identitycertificatepem : *mut i8, signature : *const u8, signaturesize : usize, signedmanifestxml : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_signmanifest(unsignedmanifestxml : *mut i8, identitycertificatepem : *mut i8, signingprivatekeypem : *mut i8, signedmanifestxml : *mut *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_startmanagement(proxy : alljoyn_securityapplicationproxy) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_updateidentity(proxy : alljoyn_securityapplicationproxy, identitycertificatechain : *mut i8, manifestsxmls : *mut *mut i8, manifestscount : usize) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_securityapplicationproxy_updatepolicy(proxy : alljoyn_securityapplicationproxy, policyxml : *mut i8) -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionlistener_create(callbacks : *const alljoyn_sessionlistener_callbacks, context : *const ::core::ffi::c_void) -> alljoyn_sessionlistener); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionlistener_destroy(listener : alljoyn_sessionlistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionopts_cmp(one : alljoyn_sessionopts, other : alljoyn_sessionopts) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionopts_create(traffic : u8, ismultipoint : i32, proximity : u8, transports : u16) -> alljoyn_sessionopts); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionopts_destroy(opts : alljoyn_sessionopts) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionopts_get_multipoint(opts : alljoyn_sessionopts) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionopts_get_proximity(opts : alljoyn_sessionopts) -> u8); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionopts_get_traffic(opts : alljoyn_sessionopts) -> u8); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionopts_get_transports(opts : alljoyn_sessionopts) -> u16); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionopts_iscompatible(one : alljoyn_sessionopts, other : alljoyn_sessionopts) -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionopts_set_multipoint(opts : alljoyn_sessionopts, ismultipoint : i32) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionopts_set_proximity(opts : alljoyn_sessionopts, proximity : u8) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionopts_set_traffic(opts : alljoyn_sessionopts, traffic : u8) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionopts_set_transports(opts : alljoyn_sessionopts, transports : u16) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionportlistener_create(callbacks : *const alljoyn_sessionportlistener_callbacks, context : *const ::core::ffi::c_void) -> alljoyn_sessionportlistener); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_sessionportlistener_destroy(listener : alljoyn_sessionportlistener) -> ()); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_shutdown() -> QStatus); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_unity_deferred_callbacks_process() -> i32); +::windows_targets::link!("msajapi.dll" "system" fn alljoyn_unity_set_deferred_callback_mainthread_only(mainthread_only : i32) -> ()); +pub const AJ_IFC_SECURITY_INHERIT: alljoyn_interfacedescription_securitypolicy = 0i32; +pub const AJ_IFC_SECURITY_OFF: alljoyn_interfacedescription_securitypolicy = 2i32; +pub const AJ_IFC_SECURITY_REQUIRED: alljoyn_interfacedescription_securitypolicy = 1i32; +pub const ALLJOYN_ARRAY: alljoyn_typeid = 97i32; +pub const ALLJOYN_BIG_ENDIAN: u8 = 66u8; +pub const ALLJOYN_BOOLEAN: alljoyn_typeid = 98i32; +pub const ALLJOYN_BOOLEAN_ARRAY: alljoyn_typeid = 25185i32; +pub const ALLJOYN_BYTE: alljoyn_typeid = 121i32; +pub const ALLJOYN_BYTE_ARRAY: alljoyn_typeid = 31073i32; +pub const ALLJOYN_CRED_CERT_CHAIN: u16 = 4u16; +pub const ALLJOYN_CRED_EXPIRATION: u16 = 32u16; +pub const ALLJOYN_CRED_LOGON_ENTRY: u16 = 16u16; +pub const ALLJOYN_CRED_NEW_PASSWORD: u16 = 4097u16; +pub const ALLJOYN_CRED_ONE_TIME_PWD: u16 = 8193u16; +pub const ALLJOYN_CRED_PASSWORD: u16 = 1u16; +pub const ALLJOYN_CRED_PRIVATE_KEY: u16 = 8u16; +pub const ALLJOYN_CRED_USER_NAME: u16 = 2u16; +pub const ALLJOYN_DICT_ENTRY: alljoyn_typeid = 101i32; +pub const ALLJOYN_DICT_ENTRY_CLOSE: alljoyn_typeid = 125i32; +pub const ALLJOYN_DICT_ENTRY_OPEN: alljoyn_typeid = 123i32; +pub const ALLJOYN_DISCONNECTED: u32 = 4u32; +pub const ALLJOYN_DOUBLE: alljoyn_typeid = 100i32; +pub const ALLJOYN_DOUBLE_ARRAY: alljoyn_typeid = 25697i32; +pub const ALLJOYN_HANDLE: alljoyn_typeid = 104i32; +pub const ALLJOYN_INT16: alljoyn_typeid = 110i32; +pub const ALLJOYN_INT16_ARRAY: alljoyn_typeid = 28257i32; +pub const ALLJOYN_INT32: alljoyn_typeid = 105i32; +pub const ALLJOYN_INT32_ARRAY: alljoyn_typeid = 26977i32; +pub const ALLJOYN_INT64: alljoyn_typeid = 120i32; +pub const ALLJOYN_INT64_ARRAY: alljoyn_typeid = 30817i32; +pub const ALLJOYN_INVALID: alljoyn_typeid = 0i32; +pub const ALLJOYN_LITTLE_ENDIAN: u8 = 108u8; +pub const ALLJOYN_MEMBER_ANNOTATE_DEPRECATED: u8 = 2u8; +pub const ALLJOYN_MEMBER_ANNOTATE_GLOBAL_BROADCAST: u8 = 32u8; +pub const ALLJOYN_MEMBER_ANNOTATE_NO_REPLY: u8 = 1u8; +pub const ALLJOYN_MEMBER_ANNOTATE_SESSIONCAST: u8 = 4u8; +pub const ALLJOYN_MEMBER_ANNOTATE_SESSIONLESS: u8 = 8u8; +pub const ALLJOYN_MEMBER_ANNOTATE_UNICAST: u8 = 16u8; +pub const ALLJOYN_MESSAGE_DEFAULT_TIMEOUT: u32 = 25000u32; +pub const ALLJOYN_MESSAGE_ERROR: alljoyn_messagetype = 3i32; +pub const ALLJOYN_MESSAGE_FLAG_ALLOW_REMOTE_MSG: u32 = 4u32; +pub const ALLJOYN_MESSAGE_FLAG_AUTO_START: u32 = 2u32; +pub const ALLJOYN_MESSAGE_FLAG_ENCRYPTED: u32 = 128u32; +pub const ALLJOYN_MESSAGE_FLAG_GLOBAL_BROADCAST: u32 = 32u32; +pub const ALLJOYN_MESSAGE_FLAG_NO_REPLY_EXPECTED: u32 = 1u32; +pub const ALLJOYN_MESSAGE_FLAG_SESSIONLESS: u32 = 16u32; +pub const ALLJOYN_MESSAGE_INVALID: alljoyn_messagetype = 0i32; +pub const ALLJOYN_MESSAGE_METHOD_CALL: alljoyn_messagetype = 1i32; +pub const ALLJOYN_MESSAGE_METHOD_RET: alljoyn_messagetype = 2i32; +pub const ALLJOYN_MESSAGE_SIGNAL: alljoyn_messagetype = 4i32; +pub const ALLJOYN_NAMED_PIPE_CONNECT_SPEC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("npipe:"); +pub const ALLJOYN_OBJECT_PATH: alljoyn_typeid = 111i32; +pub const ALLJOYN_PROP_ACCESS_READ: u8 = 1u8; +pub const ALLJOYN_PROP_ACCESS_RW: u8 = 3u8; +pub const ALLJOYN_PROP_ACCESS_WRITE: u8 = 2u8; +pub const ALLJOYN_PROXIMITY_ANY: u32 = 255u32; +pub const ALLJOYN_PROXIMITY_NETWORK: u32 = 2u32; +pub const ALLJOYN_PROXIMITY_PHYSICAL: u32 = 1u32; +pub const ALLJOYN_READ_READY: u32 = 1u32; +pub const ALLJOYN_SESSIONLOST_INVALID: alljoyn_sessionlostreason = 0i32; +pub const ALLJOYN_SESSIONLOST_LINK_TIMEOUT: alljoyn_sessionlostreason = 4i32; +pub const ALLJOYN_SESSIONLOST_REASON_OTHER: alljoyn_sessionlostreason = 5i32; +pub const ALLJOYN_SESSIONLOST_REMOTE_END_CLOSED_ABRUPTLY: alljoyn_sessionlostreason = 2i32; +pub const ALLJOYN_SESSIONLOST_REMOTE_END_LEFT_SESSION: alljoyn_sessionlostreason = 1i32; +pub const ALLJOYN_SESSIONLOST_REMOVED_BY_BINDER: alljoyn_sessionlostreason = 3i32; +pub const ALLJOYN_SIGNATURE: alljoyn_typeid = 103i32; +pub const ALLJOYN_STRING: alljoyn_typeid = 115i32; +pub const ALLJOYN_STRUCT: alljoyn_typeid = 114i32; +pub const ALLJOYN_STRUCT_CLOSE: alljoyn_typeid = 41i32; +pub const ALLJOYN_STRUCT_OPEN: alljoyn_typeid = 40i32; +pub const ALLJOYN_TRAFFIC_TYPE_MESSAGES: u32 = 1u32; +pub const ALLJOYN_TRAFFIC_TYPE_RAW_RELIABLE: u32 = 4u32; +pub const ALLJOYN_TRAFFIC_TYPE_RAW_UNRELIABLE: u32 = 2u32; +pub const ALLJOYN_UINT16: alljoyn_typeid = 113i32; +pub const ALLJOYN_UINT16_ARRAY: alljoyn_typeid = 29025i32; +pub const ALLJOYN_UINT32: alljoyn_typeid = 117i32; +pub const ALLJOYN_UINT32_ARRAY: alljoyn_typeid = 30049i32; +pub const ALLJOYN_UINT64: alljoyn_typeid = 116i32; +pub const ALLJOYN_UINT64_ARRAY: alljoyn_typeid = 29793i32; +pub const ALLJOYN_VARIANT: alljoyn_typeid = 118i32; +pub const ALLJOYN_WILDCARD: alljoyn_typeid = 42i32; +pub const ALLJOYN_WRITE_READY: u32 = 2u32; +pub const ANNOUNCED: alljoyn_about_announceflag = 1i32; +pub const CAPABLE_ECDHE_ECDSA: alljoyn_claimcapability_masks = 4i32; +pub const CAPABLE_ECDHE_NULL: alljoyn_claimcapability_masks = 1i32; +pub const CAPABLE_ECDHE_SPEKE: alljoyn_claimcapability_masks = 8i32; +pub const CLAIMABLE: alljoyn_applicationstate = 1i32; +pub const CLAIMED: alljoyn_applicationstate = 2i32; +pub const ER_ABOUT_ABOUTDATA_MISSING_REQUIRED_FIELD: QStatus = 37157i32; +pub const ER_ABOUT_DEFAULT_LANGUAGE_NOT_SPECIFIED: QStatus = 37155i32; +pub const ER_ABOUT_FIELD_ALREADY_SPECIFIED: QStatus = 37147i32; +pub const ER_ABOUT_INVALID_ABOUTDATA_FIELD_APPID_SIZE: QStatus = 37163i32; +pub const ER_ABOUT_INVALID_ABOUTDATA_FIELD_VALUE: QStatus = 37162i32; +pub const ER_ABOUT_INVALID_ABOUTDATA_LISTENER: QStatus = 37158i32; +pub const ER_ABOUT_SESSIONPORT_NOT_BOUND: QStatus = 37156i32; +pub const ER_ALERTED_THREAD: QStatus = 4098i32; +pub const ER_ALLJOYN_ACCESS_PERMISSION_ERROR: QStatus = 37028i32; +pub const ER_ALLJOYN_ACCESS_PERMISSION_WARNING: QStatus = 37027i32; +pub const ER_ALLJOYN_ADVERTISENAME_REPLY_ALREADY_ADVERTISING: QStatus = 37005i32; +pub const ER_ALLJOYN_ADVERTISENAME_REPLY_FAILED: QStatus = 37006i32; +pub const ER_ALLJOYN_ADVERTISENAME_REPLY_TRANSPORT_NOT_AVAILABLE: QStatus = 37004i32; +pub const ER_ALLJOYN_BINDSESSIONPORT_REPLY_ALREADY_EXISTS: QStatus = 36992i32; +pub const ER_ALLJOYN_BINDSESSIONPORT_REPLY_FAILED: QStatus = 36993i32; +pub const ER_ALLJOYN_BINDSESSIONPORT_REPLY_INVALID_OPTS: QStatus = 37018i32; +pub const ER_ALLJOYN_CANCELADVERTISENAME_REPLY_FAILED: QStatus = 37008i32; +pub const ER_ALLJOYN_CANCELFINDADVERTISEDNAME_REPLY_FAILED: QStatus = 37013i32; +pub const ER_ALLJOYN_FINDADVERTISEDNAME_REPLY_ALREADY_DISCOVERING: QStatus = 37010i32; +pub const ER_ALLJOYN_FINDADVERTISEDNAME_REPLY_FAILED: QStatus = 37011i32; +pub const ER_ALLJOYN_FINDADVERTISEDNAME_REPLY_TRANSPORT_NOT_AVAILABLE: QStatus = 37009i32; +pub const ER_ALLJOYN_JOINSESSION_REPLY_ALREADY_JOINED: QStatus = 37019i32; +pub const ER_ALLJOYN_JOINSESSION_REPLY_BAD_SESSION_OPTS: QStatus = 36999i32; +pub const ER_ALLJOYN_JOINSESSION_REPLY_CONNECT_FAILED: QStatus = 36997i32; +pub const ER_ALLJOYN_JOINSESSION_REPLY_FAILED: QStatus = 37000i32; +pub const ER_ALLJOYN_JOINSESSION_REPLY_NO_SESSION: QStatus = 36995i32; +pub const ER_ALLJOYN_JOINSESSION_REPLY_REJECTED: QStatus = 36998i32; +pub const ER_ALLJOYN_JOINSESSION_REPLY_UNREACHABLE: QStatus = 36996i32; +pub const ER_ALLJOYN_LEAVESESSION_REPLY_FAILED: QStatus = 37003i32; +pub const ER_ALLJOYN_LEAVESESSION_REPLY_NO_SESSION: QStatus = 37002i32; +pub const ER_ALLJOYN_ONAPPRESUME_REPLY_FAILED: QStatus = 37100i32; +pub const ER_ALLJOYN_ONAPPRESUME_REPLY_UNSUPPORTED: QStatus = 37101i32; +pub const ER_ALLJOYN_ONAPPSUSPEND_REPLY_FAILED: QStatus = 37098i32; +pub const ER_ALLJOYN_ONAPPSUSPEND_REPLY_UNSUPPORTED: QStatus = 37099i32; +pub const ER_ALLJOYN_PING_FAILED: QStatus = 37111i32; +pub const ER_ALLJOYN_PING_REPLY_FAILED: QStatus = 37143i32; +pub const ER_ALLJOYN_PING_REPLY_INCOMPATIBLE_REMOTE_ROUTING_NODE: QStatus = 37140i32; +pub const ER_ALLJOYN_PING_REPLY_IN_PROGRESS: QStatus = 37145i32; +pub const ER_ALLJOYN_PING_REPLY_TIMEOUT: QStatus = 37141i32; +pub const ER_ALLJOYN_PING_REPLY_UNKNOWN_NAME: QStatus = 37142i32; +pub const ER_ALLJOYN_PING_REPLY_UNREACHABLE: QStatus = 37112i32; +pub const ER_ALLJOYN_REMOVESESSIONMEMBER_INCOMPATIBLE_REMOTE_DAEMON: QStatus = 37107i32; +pub const ER_ALLJOYN_REMOVESESSIONMEMBER_NOT_BINDER: QStatus = 37104i32; +pub const ER_ALLJOYN_REMOVESESSIONMEMBER_NOT_FOUND: QStatus = 37106i32; +pub const ER_ALLJOYN_REMOVESESSIONMEMBER_NOT_MULTIPOINT: QStatus = 37105i32; +pub const ER_ALLJOYN_REMOVESESSIONMEMBER_REPLY_FAILED: QStatus = 37108i32; +pub const ER_ALLJOYN_REMOVESESSIONMEMBER_REPLY_NO_SESSION: QStatus = 37103i32; +pub const ER_ALLJOYN_SETLINKTIMEOUT_REPLY_FAILED: QStatus = 37026i32; +pub const ER_ALLJOYN_SETLINKTIMEOUT_REPLY_NOT_SUPPORTED: QStatus = 37024i32; +pub const ER_ALLJOYN_SETLINKTIMEOUT_REPLY_NO_DEST_SUPPORT: QStatus = 37025i32; +pub const ER_ALLJOYN_UNBINDSESSIONPORT_REPLY_BAD_PORT: QStatus = 37016i32; +pub const ER_ALLJOYN_UNBINDSESSIONPORT_REPLY_FAILED: QStatus = 37017i32; +pub const ER_APPLICATION_STATE_LISTENER_ALREADY_EXISTS: QStatus = 37184i32; +pub const ER_APPLICATION_STATE_LISTENER_NO_SUCH_LISTENER: QStatus = 37185i32; +pub const ER_ARDP_BACKPRESSURE: QStatus = 37122i32; +pub const ER_ARDP_DISCONNECTING: QStatus = 37139i32; +pub const ER_ARDP_INVALID_CONNECTION: QStatus = 37135i32; +pub const ER_ARDP_INVALID_RESPONSE: QStatus = 37134i32; +pub const ER_ARDP_INVALID_STATE: QStatus = 37124i32; +pub const ER_ARDP_PERSIST_TIMEOUT: QStatus = 37126i32; +pub const ER_ARDP_PROBE_TIMEOUT: QStatus = 37127i32; +pub const ER_ARDP_REMOTE_CONNECTION_RESET: QStatus = 37128i32; +pub const ER_ARDP_TTL_EXPIRED: QStatus = 37125i32; +pub const ER_ARDP_VERSION_NOT_SUPPORTED: QStatus = 37151i32; +pub const ER_ARDP_WRITE_BLOCKED: QStatus = 37153i32; +pub const ER_AUTH_FAIL: QStatus = 4100i32; +pub const ER_AUTH_USER_REJECT: QStatus = 4101i32; +pub const ER_BAD_ARG_1: QStatus = 12i32; +pub const ER_BAD_ARG_2: QStatus = 13i32; +pub const ER_BAD_ARG_3: QStatus = 14i32; +pub const ER_BAD_ARG_4: QStatus = 15i32; +pub const ER_BAD_ARG_5: QStatus = 16i32; +pub const ER_BAD_ARG_6: QStatus = 17i32; +pub const ER_BAD_ARG_7: QStatus = 18i32; +pub const ER_BAD_ARG_8: QStatus = 19i32; +pub const ER_BAD_ARG_COUNT: QStatus = 28i32; +pub const ER_BAD_HOSTNAME: QStatus = 4112i32; +pub const ER_BAD_STRING_ENCODING: QStatus = 4120i32; +pub const ER_BAD_TRANSPORT_MASK: QStatus = 37088i32; +pub const ER_BUFFER_TOO_SMALL: QStatus = 3i32; +pub const ER_BUS_ALREADY_CONNECTED: QStatus = 36932i32; +pub const ER_BUS_ALREADY_LISTENING: QStatus = 36934i32; +pub const ER_BUS_ANNOTATION_ALREADY_EXISTS: QStatus = 37082i32; +pub const ER_BUS_AUTHENTICATION_PENDING: QStatus = 37031i32; +pub const ER_BUS_BAD_BODY_LEN: QStatus = 36879i32; +pub const ER_BUS_BAD_BUS_NAME: QStatus = 36874i32; +pub const ER_BUS_BAD_CHILD_PATH: QStatus = 36927i32; +pub const ER_BUS_BAD_ERROR_NAME: QStatus = 36873i32; +pub const ER_BUS_BAD_HDR_FLAGS: QStatus = 36878i32; +pub const ER_BUS_BAD_HEADER_FIELD: QStatus = 36868i32; +pub const ER_BUS_BAD_HEADER_LEN: QStatus = 36880i32; +pub const ER_BUS_BAD_INTERFACE_NAME: QStatus = 36872i32; +pub const ER_BUS_BAD_LENGTH: QStatus = 36876i32; +pub const ER_BUS_BAD_MEMBER_NAME: QStatus = 36871i32; +pub const ER_BUS_BAD_OBJ_PATH: QStatus = 36870i32; +pub const ER_BUS_BAD_SENDER_ID: QStatus = 36908i32; +pub const ER_BUS_BAD_SEND_PARAMETER: QStatus = 36906i32; +pub const ER_BUS_BAD_SESSION_OPTS: QStatus = 36980i32; +pub const ER_BUS_BAD_SIGNATURE: QStatus = 36869i32; +pub const ER_BUS_BAD_TRANSPORT_ARGS: QStatus = 36903i32; +pub const ER_BUS_BAD_VALUE: QStatus = 36877i32; +pub const ER_BUS_BAD_VALUE_TYPE: QStatus = 36867i32; +pub const ER_BUS_BAD_XML: QStatus = 36926i32; +pub const ER_BUS_BLOCKING_CALL_NOT_ALLOWED: QStatus = 36960i32; +pub const ER_BUS_BUS_ALREADY_STARTED: QStatus = 36939i32; +pub const ER_BUS_BUS_NOT_STARTED: QStatus = 36940i32; +pub const ER_BUS_CANNOT_ADD_HANDLER: QStatus = 36965i32; +pub const ER_BUS_CANNOT_ADD_INTERFACE: QStatus = 36964i32; +pub const ER_BUS_CANNOT_EXPAND_MESSAGE: QStatus = 36930i32; +pub const ER_BUS_CONNECTION_REJECTED: QStatus = 36981i32; +pub const ER_BUS_CONNECT_FAILED: QStatus = 36913i32; +pub const ER_BUS_CORRUPT_KEYSTORE: QStatus = 36952i32; +pub const ER_BUS_DESCRIPTION_ALREADY_EXISTS: QStatus = 37188i32; +pub const ER_BUS_DESTINATION_NOT_AUTHENTICATED: QStatus = 37029i32; +pub const ER_BUS_ELEMENT_NOT_FOUND: QStatus = 36976i32; +pub const ER_BUS_EMPTY_MESSAGE: QStatus = 36910i32; +pub const ER_BUS_ENDPOINT_CLOSING: QStatus = 36920i32; +pub const ER_BUS_ENDPOINT_REDIRECTED: QStatus = 37030i32; +pub const ER_BUS_ERRORS: QStatus = 36864i32; +pub const ER_BUS_ERROR_NAME_MISSING: QStatus = 36890i32; +pub const ER_BUS_ERROR_RESPONSE: QStatus = 36925i32; +pub const ER_BUS_ESTABLISH_FAILED: QStatus = 36884i32; +pub const ER_BUS_HANDLES_MISMATCH: QStatus = 36973i32; +pub const ER_BUS_HANDLES_NOT_ENABLED: QStatus = 36972i32; +pub const ER_BUS_HDR_EXPANSION_INVALID: QStatus = 36946i32; +pub const ER_BUS_IFACE_ALREADY_EXISTS: QStatus = 36924i32; +pub const ER_BUS_INCOMPATIBLE_DAEMON: QStatus = 37094i32; +pub const ER_BUS_INTERFACE_ACTIVATED: QStatus = 37015i32; +pub const ER_BUS_INTERFACE_MISMATCH: QStatus = 36921i32; +pub const ER_BUS_INTERFACE_MISSING: QStatus = 36886i32; +pub const ER_BUS_INTERFACE_NO_SUCH_MEMBER: QStatus = 36891i32; +pub const ER_BUS_INVALID_AUTH_MECHANISM: QStatus = 36958i32; +pub const ER_BUS_INVALID_HEADER_CHECKSUM: QStatus = 36942i32; +pub const ER_BUS_INVALID_HEADER_SERIAL: QStatus = 36944i32; +pub const ER_BUS_KEYBLOB_OP_INVALID: QStatus = 36941i32; +pub const ER_BUS_KEYSTORE_NOT_LOADED: QStatus = 36966i32; +pub const ER_BUS_KEYSTORE_VERSION_MISMATCH: QStatus = 36959i32; +pub const ER_BUS_KEY_EXPIRED: QStatus = 36951i32; +pub const ER_BUS_KEY_STORE_NOT_LOADED: QStatus = 36937i32; +pub const ER_BUS_KEY_UNAVAILABLE: QStatus = 36935i32; +pub const ER_BUS_LISTENER_ALREADY_SET: QStatus = 37022i32; +pub const ER_BUS_MATCH_RULE_NOT_FOUND: QStatus = 37110i32; +pub const ER_BUS_MEMBER_ALREADY_EXISTS: QStatus = 36922i32; +pub const ER_BUS_MEMBER_MISSING: QStatus = 36888i32; +pub const ER_BUS_MEMBER_NO_SUCH_SIGNATURE: QStatus = 36896i32; +pub const ER_BUS_MESSAGE_DECRYPTION_FAILED: QStatus = 36949i32; +pub const ER_BUS_MESSAGE_NOT_ENCRYPTED: QStatus = 36943i32; +pub const ER_BUS_METHOD_CALL_ABORTED: QStatus = 36963i32; +pub const ER_BUS_MISSING_COMPRESSION_TOKEN: QStatus = 36947i32; +pub const ER_BUS_NAME_TOO_LONG: QStatus = 36875i32; +pub const ER_BUS_NOT_ALLOWED: QStatus = 36918i32; +pub const ER_BUS_NOT_AUTHENTICATING: QStatus = 36915i32; +pub const ER_BUS_NOT_AUTHORIZED: QStatus = 37032i32; +pub const ER_BUS_NOT_A_COMPLETE_TYPE: QStatus = 36954i32; +pub const ER_BUS_NOT_A_DICTIONARY: QStatus = 36977i32; +pub const ER_BUS_NOT_COMPRESSED: QStatus = 36931i32; +pub const ER_BUS_NOT_CONNECTED: QStatus = 36933i32; +pub const ER_BUS_NOT_NUL_TERMINATED: QStatus = 36897i32; +pub const ER_BUS_NOT_OWNER: QStatus = 36911i32; +pub const ER_BUS_NO_AUTHENTICATION_MECHANISM: QStatus = 36938i32; +pub const ER_BUS_NO_CALL_FOR_REPLY: QStatus = 36953i32; +pub const ER_BUS_NO_ENDPOINT: QStatus = 36905i32; +pub const ER_BUS_NO_LISTENER: QStatus = 36916i32; +pub const ER_BUS_NO_PEER_GUID: QStatus = 36948i32; +pub const ER_BUS_NO_ROUTE: QStatus = 36904i32; +pub const ER_BUS_NO_SESSION: QStatus = 36975i32; +pub const ER_BUS_NO_SUCH_ANNOTATION: QStatus = 37081i32; +pub const ER_BUS_NO_SUCH_HANDLE: QStatus = 36971i32; +pub const ER_BUS_NO_SUCH_INTERFACE: QStatus = 36895i32; +pub const ER_BUS_NO_SUCH_MESSAGE: QStatus = 37102i32; +pub const ER_BUS_NO_SUCH_OBJECT: QStatus = 36892i32; +pub const ER_BUS_NO_SUCH_PROPERTY: QStatus = 36898i32; +pub const ER_BUS_NO_SUCH_SERVICE: QStatus = 36956i32; +pub const ER_BUS_NO_TRANSPORTS: QStatus = 36902i32; +pub const ER_BUS_OBJECT_NOT_REGISTERED: QStatus = 37091i32; +pub const ER_BUS_OBJECT_NO_SUCH_INTERFACE: QStatus = 36894i32; +pub const ER_BUS_OBJECT_NO_SUCH_MEMBER: QStatus = 36893i32; +pub const ER_BUS_OBJ_ALREADY_EXISTS: QStatus = 36928i32; +pub const ER_BUS_OBJ_NOT_FOUND: QStatus = 36929i32; +pub const ER_BUS_PATH_MISSING: QStatus = 36887i32; +pub const ER_BUS_PEER_AUTH_VERSION_MISMATCH: QStatus = 37023i32; +pub const ER_BUS_PING_GROUP_NOT_FOUND: QStatus = 37159i32; +pub const ER_BUS_POLICY_VIOLATION: QStatus = 36955i32; +pub const ER_BUS_PROPERTY_ACCESS_DENIED: QStatus = 36901i32; +pub const ER_BUS_PROPERTY_ALREADY_EXISTS: QStatus = 36923i32; +pub const ER_BUS_PROPERTY_VALUE_NOT_SET: QStatus = 36900i32; +pub const ER_BUS_READ_ERROR: QStatus = 36865i32; +pub const ER_BUS_REMOVED_BY_BINDER: QStatus = 37109i32; +pub const ER_BUS_REMOVED_BY_BINDER_SELF: QStatus = 37160i32; +pub const ER_BUS_REPLY_IS_ERROR_MESSAGE: QStatus = 36914i32; +pub const ER_BUS_REPLY_SERIAL_MISSING: QStatus = 36889i32; +pub const ER_BUS_SECURITY_FATAL: QStatus = 36950i32; +pub const ER_BUS_SECURITY_NOT_ENABLED: QStatus = 37021i32; +pub const ER_BUS_SELF_CONNECT: QStatus = 37020i32; +pub const ER_BUS_SET_PROPERTY_REJECTED: QStatus = 36912i32; +pub const ER_BUS_SET_WRONG_SIGNATURE: QStatus = 36899i32; +pub const ER_BUS_SIGNATURE_MISMATCH: QStatus = 36961i32; +pub const ER_BUS_STOPPING: QStatus = 36962i32; +pub const ER_BUS_TIME_TO_LIVE_EXPIRED: QStatus = 36945i32; +pub const ER_BUS_TRANSPORT_ACCESS_DENIED: QStatus = 37164i32; +pub const ER_BUS_TRANSPORT_NOT_AVAILABLE: QStatus = 36957i32; +pub const ER_BUS_TRANSPORT_NOT_STARTED: QStatus = 36909i32; +pub const ER_BUS_TRUNCATED: QStatus = 36936i32; +pub const ER_BUS_UNEXPECTED_DISPOSITION: QStatus = 37014i32; +pub const ER_BUS_UNEXPECTED_SIGNATURE: QStatus = 36885i32; +pub const ER_BUS_UNKNOWN_INTERFACE: QStatus = 36883i32; +pub const ER_BUS_UNKNOWN_PATH: QStatus = 36882i32; +pub const ER_BUS_UNKNOWN_SERIAL: QStatus = 36881i32; +pub const ER_BUS_UNMATCHED_REPLY_SERIAL: QStatus = 36907i32; +pub const ER_BUS_WAIT_FAILED: QStatus = 36978i32; +pub const ER_BUS_WRITE_ERROR: QStatus = 36866i32; +pub const ER_BUS_WRITE_QUEUE_FULL: QStatus = 36919i32; +pub const ER_CERTIFICATE_NOT_FOUND: QStatus = 37166i32; +pub const ER_COMMON_ERRORS: QStatus = 4096i32; +pub const ER_CONNECTION_LIMIT_EXCEEDED: QStatus = 37152i32; +pub const ER_CONN_REFUSED: QStatus = 27i32; +pub const ER_CORRUPT_KEYBLOB: QStatus = 4115i32; +pub const ER_CRYPTO_ERROR: QStatus = 4109i32; +pub const ER_CRYPTO_HASH_UNINITIALIZED: QStatus = 4123i32; +pub const ER_CRYPTO_ILLEGAL_PARAMETERS: QStatus = 4122i32; +pub const ER_CRYPTO_INSUFFICIENT_SECURITY: QStatus = 4121i32; +pub const ER_CRYPTO_KEY_UNAVAILABLE: QStatus = 4111i32; +pub const ER_CRYPTO_KEY_UNUSABLE: QStatus = 4113i32; +pub const ER_CRYPTO_TRUNCATED: QStatus = 4110i32; +pub const ER_DBUS_RELEASE_NAME_REPLY_NON_EXISTENT: QStatus = 36987i32; +pub const ER_DBUS_RELEASE_NAME_REPLY_NOT_OWNER: QStatus = 36988i32; +pub const ER_DBUS_RELEASE_NAME_REPLY_RELEASED: QStatus = 36986i32; +pub const ER_DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER: QStatus = 36985i32; +pub const ER_DBUS_REQUEST_NAME_REPLY_EXISTS: QStatus = 36984i32; +pub const ER_DBUS_REQUEST_NAME_REPLY_IN_QUEUE: QStatus = 36983i32; +pub const ER_DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER: QStatus = 36982i32; +pub const ER_DBUS_START_REPLY_ALREADY_RUNNING: QStatus = 36990i32; +pub const ER_DEADLOCK: QStatus = 31i32; +pub const ER_DEAD_THREAD: QStatus = 4117i32; +pub const ER_DIGEST_MISMATCH: QStatus = 37170i32; +pub const ER_DUPLICATE_CERTIFICATE: QStatus = 37167i32; +pub const ER_DUPLICATE_KEY: QStatus = 37171i32; +pub const ER_EMPTY_KEY_BLOB: QStatus = 4114i32; +pub const ER_END_OF_DATA: QStatus = 26i32; +pub const ER_EOF: QStatus = 30i32; +pub const ER_EXTERNAL_THREAD: QStatus = 4108i32; +pub const ER_FAIL: QStatus = 1i32; +pub const ER_FEATURE_NOT_AVAILABLE: QStatus = 37177i32; +pub const ER_INIT_FAILED: QStatus = 7i32; +pub const ER_INVALID_ADDRESS: QStatus = 20i32; +pub const ER_INVALID_APPLICATION_STATE: QStatus = 37176i32; +pub const ER_INVALID_CERTIFICATE: QStatus = 37165i32; +pub const ER_INVALID_CERTIFICATE_USAGE: QStatus = 37182i32; +pub const ER_INVALID_CERT_CHAIN: QStatus = 37174i32; +pub const ER_INVALID_CONFIG: QStatus = 37161i32; +pub const ER_INVALID_DATA: QStatus = 21i32; +pub const ER_INVALID_GUID: QStatus = 4126i32; +pub const ER_INVALID_HTTP_METHOD_USED_FOR_RENDEZVOUS_SERVER_INTERFACE_MESSAGE: QStatus = 37075i32; +pub const ER_INVALID_KEY_ENCODING: QStatus = 4116i32; +pub const ER_INVALID_ON_DEMAND_CONNECTION_MESSAGE_RESPONSE: QStatus = 37074i32; +pub const ER_INVALID_PERSISTENT_CONNECTION_MESSAGE_RESPONSE: QStatus = 37073i32; +pub const ER_INVALID_RENDEZVOUS_SERVER_INTERFACE_MESSAGE: QStatus = 37072i32; +pub const ER_INVALID_SIGNAL_EMISSION_TYPE: QStatus = 37183i32; +pub const ER_INVALID_STREAM: QStatus = 4129i32; +pub const ER_IODISPATCH_STOPPING: QStatus = 4131i32; +pub const ER_KEY_STORE_ALREADY_INITIALIZED: QStatus = 37178i32; +pub const ER_KEY_STORE_ID_NOT_YET_SET: QStatus = 37179i32; +pub const ER_LANGUAGE_NOT_SUPPORTED: QStatus = 37146i32; +pub const ER_MANAGEMENT_ALREADY_STARTED: QStatus = 37186i32; +pub const ER_MANAGEMENT_NOT_STARTED: QStatus = 37187i32; +pub const ER_MANIFEST_NOT_FOUND: QStatus = 37173i32; +pub const ER_MANIFEST_REJECTED: QStatus = 37181i32; +pub const ER_MISSING_DIGEST_IN_CERTIFICATE: QStatus = 37169i32; +pub const ER_NONE: QStatus = 65535i32; +pub const ER_NOT_CONN: QStatus = 4141i32; +pub const ER_NOT_CONNECTED_TO_RENDEZVOUS_SERVER: QStatus = 37070i32; +pub const ER_NOT_IMPLEMENTED: QStatus = 9i32; +pub const ER_NO_COMMON_TRUST: QStatus = 37172i32; +pub const ER_NO_SUCH_ALARM: QStatus = 4102i32; +pub const ER_NO_SUCH_DEVICE: QStatus = 37084i32; +pub const ER_NO_TRUST_ANCHOR: QStatus = 37175i32; +pub const ER_OK: QStatus = 0i32; +pub const ER_OPEN_FAILED: QStatus = 24i32; +pub const ER_OS_ERROR: QStatus = 4i32; +pub const ER_OUT_OF_MEMORY: QStatus = 5i32; +pub const ER_P2P: QStatus = 37085i32; +pub const ER_P2P_BUSY: QStatus = 37093i32; +pub const ER_P2P_DISABLED: QStatus = 37092i32; +pub const ER_P2P_FORBIDDEN: QStatus = 37097i32; +pub const ER_P2P_NOT_CONNECTED: QStatus = 37087i32; +pub const ER_P2P_NO_GO: QStatus = 37095i32; +pub const ER_P2P_NO_STA: QStatus = 37096i32; +pub const ER_P2P_TIMEOUT: QStatus = 37086i32; +pub const ER_PACKET_BAD_CRC: QStatus = 37039i32; +pub const ER_PACKET_BAD_FORMAT: QStatus = 37034i32; +pub const ER_PACKET_BAD_PARAMETER: QStatus = 37038i32; +pub const ER_PACKET_BUS_NO_SUCH_CHANNEL: QStatus = 37033i32; +pub const ER_PACKET_CHANNEL_FAIL: QStatus = 37036i32; +pub const ER_PACKET_CONNECT_TIMEOUT: QStatus = 37035i32; +pub const ER_PACKET_TOO_LARGE: QStatus = 37037i32; +pub const ER_PARSE_ERROR: QStatus = 25i32; +pub const ER_PERMISSION_DENIED: QStatus = 37154i32; +pub const ER_POLICY_NOT_NEWER: QStatus = 37180i32; +pub const ER_PROXIMITY_CONNECTION_ESTABLISH_FAIL: QStatus = 37089i32; +pub const ER_PROXIMITY_NO_PEERS_FOUND: QStatus = 37090i32; +pub const ER_READ_ERROR: QStatus = 22i32; +pub const ER_RENDEZVOUS_SERVER_DEACTIVATED_USER: QStatus = 37067i32; +pub const ER_RENDEZVOUS_SERVER_ERR401_UNAUTHORIZED_REQUEST: QStatus = 37078i32; +pub const ER_RENDEZVOUS_SERVER_ERR500_INTERNAL_ERROR: QStatus = 37076i32; +pub const ER_RENDEZVOUS_SERVER_ERR503_STATUS_UNAVAILABLE: QStatus = 37077i32; +pub const ER_RENDEZVOUS_SERVER_ROOT_CERTIFICATE_UNINITIALIZED: QStatus = 37080i32; +pub const ER_RENDEZVOUS_SERVER_UNKNOWN_USER: QStatus = 37068i32; +pub const ER_RENDEZVOUS_SERVER_UNRECOVERABLE_ERROR: QStatus = 37079i32; +pub const ER_SLAP_CRC_ERROR: QStatus = 4137i32; +pub const ER_SLAP_ERROR: QStatus = 4138i32; +pub const ER_SLAP_HDR_CHECKSUM_ERROR: QStatus = 4133i32; +pub const ER_SLAP_INVALID_PACKET_LEN: QStatus = 4132i32; +pub const ER_SLAP_INVALID_PACKET_TYPE: QStatus = 4134i32; +pub const ER_SLAP_LEN_MISMATCH: QStatus = 4135i32; +pub const ER_SLAP_OTHER_END_CLOSED: QStatus = 4139i32; +pub const ER_SLAP_PACKET_TYPE_MISMATCH: QStatus = 4136i32; +pub const ER_SOCKET_BIND_ERROR: QStatus = 6i32; +pub const ER_SOCK_CLOSING: QStatus = 37083i32; +pub const ER_SOCK_OTHER_END_CLOSED: QStatus = 11i32; +pub const ER_SSL_CONNECT: QStatus = 4106i32; +pub const ER_SSL_ERRORS: QStatus = 4104i32; +pub const ER_SSL_INIT: QStatus = 4105i32; +pub const ER_SSL_VERIFY: QStatus = 4107i32; +pub const ER_STOPPING_THREAD: QStatus = 4097i32; +pub const ER_TCP_MAX_UNTRUSTED: QStatus = 37144i32; +pub const ER_THREADPOOL_EXHAUSTED: QStatus = 4127i32; +pub const ER_THREADPOOL_STOPPING: QStatus = 4128i32; +pub const ER_THREAD_NO_WAIT: QStatus = 4124i32; +pub const ER_THREAD_RUNNING: QStatus = 4118i32; +pub const ER_THREAD_STOPPING: QStatus = 4119i32; +pub const ER_TIMEOUT: QStatus = 10i32; +pub const ER_TIMER_EXITING: QStatus = 4125i32; +pub const ER_TIMER_FALLBEHIND: QStatus = 4103i32; +pub const ER_TIMER_FULL: QStatus = 4130i32; +pub const ER_TIMER_NOT_ALLOWED: QStatus = 4140i32; +pub const ER_UDP_BACKPRESSURE: QStatus = 37123i32; +pub const ER_UDP_BUSHELLO: QStatus = 37129i32; +pub const ER_UDP_DEMUX_NO_ENDPOINT: QStatus = 37114i32; +pub const ER_UDP_DISCONNECT: QStatus = 37118i32; +pub const ER_UDP_EARLY_EXIT: QStatus = 37137i32; +pub const ER_UDP_ENDPOINT_NOT_STARTED: QStatus = 37149i32; +pub const ER_UDP_ENDPOINT_REMOVED: QStatus = 37150i32; +pub const ER_UDP_ENDPOINT_STALLED: QStatus = 37133i32; +pub const ER_UDP_INVALID: QStatus = 37131i32; +pub const ER_UDP_LOCAL_DISCONNECT: QStatus = 37136i32; +pub const ER_UDP_LOCAL_DISCONNECT_FAIL: QStatus = 37138i32; +pub const ER_UDP_MESSAGE: QStatus = 37130i32; +pub const ER_UDP_MSG_TOO_LONG: QStatus = 37113i32; +pub const ER_UDP_NOT_DISCONNECTED: QStatus = 37148i32; +pub const ER_UDP_NOT_IMPLEMENTED: QStatus = 37119i32; +pub const ER_UDP_NO_LISTENER: QStatus = 37120i32; +pub const ER_UDP_NO_NETWORK: QStatus = 37115i32; +pub const ER_UDP_STOPPING: QStatus = 37121i32; +pub const ER_UDP_UNEXPECTED_FLOW: QStatus = 37117i32; +pub const ER_UDP_UNEXPECTED_LENGTH: QStatus = 37116i32; +pub const ER_UDP_UNSUPPORTED: QStatus = 37132i32; +pub const ER_UNABLE_TO_CONNECT_TO_RENDEZVOUS_SERVER: QStatus = 37069i32; +pub const ER_UNABLE_TO_SEND_MESSAGE_TO_RENDEZVOUS_SERVER: QStatus = 37071i32; +pub const ER_UNKNOWN_CERTIFICATE: QStatus = 37168i32; +pub const ER_UTF_CONVERSION_FAILED: QStatus = 2i32; +pub const ER_WARNING: QStatus = 29i32; +pub const ER_WOULDBLOCK: QStatus = 8i32; +pub const ER_WRITE_ERROR: QStatus = 23i32; +pub const ER_XML_ACLS_MISSING: QStatus = 8211i32; +pub const ER_XML_ACL_ALL_TYPE_PEER_WITH_OTHERS: QStatus = 8207i32; +pub const ER_XML_ACL_PEERS_MISSING: QStatus = 8212i32; +pub const ER_XML_ACL_PEER_NOT_UNIQUE: QStatus = 8209i32; +pub const ER_XML_ACL_PEER_PUBLIC_KEY_SET: QStatus = 8210i32; +pub const ER_XML_ANNOTATION_NOT_UNIQUE: QStatus = 8222i32; +pub const ER_XML_CONVERTER_ERROR: QStatus = 8192i32; +pub const ER_XML_INTERFACE_MEMBERS_MISSING: QStatus = 8194i32; +pub const ER_XML_INTERFACE_NAME_NOT_UNIQUE: QStatus = 8219i32; +pub const ER_XML_INVALID_ACL_PEER_CHILDREN_COUNT: QStatus = 8206i32; +pub const ER_XML_INVALID_ACL_PEER_PUBLIC_KEY: QStatus = 8208i32; +pub const ER_XML_INVALID_ACL_PEER_TYPE: QStatus = 8205i32; +pub const ER_XML_INVALID_ANNOTATIONS_COUNT: QStatus = 8198i32; +pub const ER_XML_INVALID_ATTRIBUTE_VALUE: QStatus = 8200i32; +pub const ER_XML_INVALID_BASE64: QStatus = 8218i32; +pub const ER_XML_INVALID_ELEMENT_CHILDREN_COUNT: QStatus = 8202i32; +pub const ER_XML_INVALID_ELEMENT_NAME: QStatus = 8199i32; +pub const ER_XML_INVALID_INTERFACE_NAME: QStatus = 8214i32; +pub const ER_XML_INVALID_MANIFEST_VERSION: QStatus = 8216i32; +pub const ER_XML_INVALID_MEMBER_ACTION: QStatus = 8196i32; +pub const ER_XML_INVALID_MEMBER_NAME: QStatus = 8215i32; +pub const ER_XML_INVALID_MEMBER_TYPE: QStatus = 8195i32; +pub const ER_XML_INVALID_OBJECT_PATH: QStatus = 8213i32; +pub const ER_XML_INVALID_OID: QStatus = 8217i32; +pub const ER_XML_INVALID_POLICY_SERIAL_NUMBER: QStatus = 8204i32; +pub const ER_XML_INVALID_POLICY_VERSION: QStatus = 8203i32; +pub const ER_XML_INVALID_RULES_COUNT: QStatus = 8193i32; +pub const ER_XML_INVALID_SECURITY_LEVEL_ANNOTATION_VALUE: QStatus = 8201i32; +pub const ER_XML_MALFORMED: QStatus = 4099i32; +pub const ER_XML_MEMBER_DENY_ACTION_WITH_OTHER: QStatus = 8197i32; +pub const ER_XML_MEMBER_NAME_NOT_UNIQUE: QStatus = 8220i32; +pub const ER_XML_OBJECT_PATH_NOT_UNIQUE: QStatus = 8221i32; +pub const NEED_UPDATE: alljoyn_applicationstate = 3i32; +pub const NOT_CLAIMABLE: alljoyn_applicationstate = 0i32; +pub const PASSWORD_GENERATED_BY_APPLICATION: alljoyn_claimcapabilityadditionalinfo_masks = 2i32; +pub const PASSWORD_GENERATED_BY_SECURITY_MANAGER: alljoyn_claimcapabilityadditionalinfo_masks = 1i32; +pub const QCC_FALSE: u32 = 0u32; +pub const QCC_TRUE: u32 = 1u32; +pub const UNANNOUNCED: alljoyn_about_announceflag = 0i32; +pub type QStatus = i32; +pub type alljoyn_about_announceflag = i32; +pub type alljoyn_applicationstate = i32; +pub type alljoyn_claimcapability_masks = i32; +pub type alljoyn_claimcapabilityadditionalinfo_masks = i32; +pub type alljoyn_interfacedescription_securitypolicy = i32; +pub type alljoyn_messagetype = i32; +pub type alljoyn_sessionlostreason = i32; +pub type alljoyn_typeid = i32; +pub type alljoyn_aboutdata = isize; +pub type alljoyn_aboutdatalistener = isize; +#[repr(C)] +pub struct alljoyn_aboutdatalistener_callbacks { + pub about_datalistener_getaboutdata: alljoyn_aboutdatalistener_getaboutdata_ptr, + pub about_datalistener_getannouncedaboutdata: alljoyn_aboutdatalistener_getannouncedaboutdata_ptr, +} +impl ::core::marker::Copy for alljoyn_aboutdatalistener_callbacks {} +impl ::core::clone::Clone for alljoyn_aboutdatalistener_callbacks { + fn clone(&self) -> Self { + *self + } +} +pub type alljoyn_abouticon = isize; +pub type alljoyn_abouticonobj = isize; +pub type alljoyn_abouticonproxy = isize; +pub type alljoyn_aboutlistener = isize; +#[repr(C)] +pub struct alljoyn_aboutlistener_callback { + pub about_listener_announced: alljoyn_about_announced_ptr, +} +impl ::core::marker::Copy for alljoyn_aboutlistener_callback {} +impl ::core::clone::Clone for alljoyn_aboutlistener_callback { + fn clone(&self) -> Self { + *self + } +} +pub type alljoyn_aboutobj = isize; +pub type alljoyn_aboutobjectdescription = isize; +pub type alljoyn_aboutproxy = isize; +pub type alljoyn_applicationstatelistener = isize; +#[repr(C)] +pub struct alljoyn_applicationstatelistener_callbacks { + pub state: alljoyn_applicationstatelistener_state_ptr, +} +impl ::core::marker::Copy for alljoyn_applicationstatelistener_callbacks {} +impl ::core::clone::Clone for alljoyn_applicationstatelistener_callbacks { + fn clone(&self) -> Self { + *self + } +} +pub type alljoyn_authlistener = isize; +#[repr(C)] +pub struct alljoyn_authlistener_callbacks { + pub request_credentials: alljoyn_authlistener_requestcredentials_ptr, + pub verify_credentials: alljoyn_authlistener_verifycredentials_ptr, + pub security_violation: alljoyn_authlistener_securityviolation_ptr, + pub authentication_complete: alljoyn_authlistener_authenticationcomplete_ptr, +} +impl ::core::marker::Copy for alljoyn_authlistener_callbacks {} +impl ::core::clone::Clone for alljoyn_authlistener_callbacks { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct alljoyn_authlistenerasync_callbacks { + pub request_credentials: alljoyn_authlistener_requestcredentialsasync_ptr, + pub verify_credentials: alljoyn_authlistener_verifycredentialsasync_ptr, + pub security_violation: alljoyn_authlistener_securityviolation_ptr, + pub authentication_complete: alljoyn_authlistener_authenticationcomplete_ptr, +} +impl ::core::marker::Copy for alljoyn_authlistenerasync_callbacks {} +impl ::core::clone::Clone for alljoyn_authlistenerasync_callbacks { + fn clone(&self) -> Self { + *self + } +} +pub type alljoyn_autopinger = isize; +pub type alljoyn_busattachment = isize; +pub type alljoyn_buslistener = isize; +#[repr(C)] +pub struct alljoyn_buslistener_callbacks { + pub listener_registered: alljoyn_buslistener_listener_registered_ptr, + pub listener_unregistered: alljoyn_buslistener_listener_unregistered_ptr, + pub found_advertised_name: alljoyn_buslistener_found_advertised_name_ptr, + pub lost_advertised_name: alljoyn_buslistener_lost_advertised_name_ptr, + pub name_owner_changed: alljoyn_buslistener_name_owner_changed_ptr, + pub bus_stopping: alljoyn_buslistener_bus_stopping_ptr, + pub bus_disconnected: alljoyn_buslistener_bus_disconnected_ptr, + pub property_changed: alljoyn_buslistener_bus_prop_changed_ptr, +} +impl ::core::marker::Copy for alljoyn_buslistener_callbacks {} +impl ::core::clone::Clone for alljoyn_buslistener_callbacks { + fn clone(&self) -> Self { + *self + } +} +pub type alljoyn_busobject = isize; +#[repr(C)] +pub struct alljoyn_busobject_callbacks { + pub property_get: alljoyn_busobject_prop_get_ptr, + pub property_set: alljoyn_busobject_prop_set_ptr, + pub object_registered: alljoyn_busobject_object_registration_ptr, + pub object_unregistered: alljoyn_busobject_object_registration_ptr, +} +impl ::core::marker::Copy for alljoyn_busobject_callbacks {} +impl ::core::clone::Clone for alljoyn_busobject_callbacks { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct alljoyn_busobject_methodentry { + pub member: *const alljoyn_interfacedescription_member, + pub method_handler: alljoyn_messagereceiver_methodhandler_ptr, +} +impl ::core::marker::Copy for alljoyn_busobject_methodentry {} +impl ::core::clone::Clone for alljoyn_busobject_methodentry { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct alljoyn_certificateid { + pub serial: *mut u8, + pub serialLen: usize, + pub issuerPublicKey: *mut i8, + pub issuerAki: *mut u8, + pub issuerAkiLen: usize, +} +impl ::core::marker::Copy for alljoyn_certificateid {} +impl ::core::clone::Clone for alljoyn_certificateid { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct alljoyn_certificateidarray { + pub count: usize, + pub ids: *mut alljoyn_certificateid, +} +impl ::core::marker::Copy for alljoyn_certificateidarray {} +impl ::core::clone::Clone for alljoyn_certificateidarray { + fn clone(&self) -> Self { + *self + } +} +pub type alljoyn_credentials = isize; +pub type alljoyn_interfacedescription = isize; +#[repr(C)] +pub struct alljoyn_interfacedescription_member { + pub iface: alljoyn_interfacedescription, + pub memberType: alljoyn_messagetype, + pub name: ::windows_sys::core::PCSTR, + pub signature: ::windows_sys::core::PCSTR, + pub returnSignature: ::windows_sys::core::PCSTR, + pub argNames: ::windows_sys::core::PCSTR, + pub internal_member: *const ::core::ffi::c_void, +} +impl ::core::marker::Copy for alljoyn_interfacedescription_member {} +impl ::core::clone::Clone for alljoyn_interfacedescription_member { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct alljoyn_interfacedescription_property { + pub name: ::windows_sys::core::PCSTR, + pub signature: ::windows_sys::core::PCSTR, + pub access: u8, + pub internal_property: *const ::core::ffi::c_void, +} +impl ::core::marker::Copy for alljoyn_interfacedescription_property {} +impl ::core::clone::Clone for alljoyn_interfacedescription_property { + fn clone(&self) -> Self { + *self + } +} +pub type alljoyn_keystore = isize; +pub type alljoyn_keystorelistener = isize; +#[repr(C)] +pub struct alljoyn_keystorelistener_callbacks { + pub load_request: alljoyn_keystorelistener_loadrequest_ptr, + pub store_request: alljoyn_keystorelistener_storerequest_ptr, +} +impl ::core::marker::Copy for alljoyn_keystorelistener_callbacks {} +impl ::core::clone::Clone for alljoyn_keystorelistener_callbacks { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct alljoyn_keystorelistener_with_synchronization_callbacks { + pub load_request: alljoyn_keystorelistener_loadrequest_ptr, + pub store_request: alljoyn_keystorelistener_storerequest_ptr, + pub acquire_exclusive_lock: alljoyn_keystorelistener_acquireexclusivelock_ptr, + pub release_exclusive_lock: alljoyn_keystorelistener_releaseexclusivelock_ptr, +} +impl ::core::marker::Copy for alljoyn_keystorelistener_with_synchronization_callbacks {} +impl ::core::clone::Clone for alljoyn_keystorelistener_with_synchronization_callbacks { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct alljoyn_manifestarray { + pub count: usize, + pub xmls: *mut *mut i8, +} +impl ::core::marker::Copy for alljoyn_manifestarray {} +impl ::core::clone::Clone for alljoyn_manifestarray { + fn clone(&self) -> Self { + *self + } +} +pub type alljoyn_message = isize; +pub type alljoyn_msgarg = isize; +pub type alljoyn_observer = isize; +pub type alljoyn_observerlistener = isize; +#[repr(C)] +pub struct alljoyn_observerlistener_callback { + pub object_discovered: alljoyn_observer_object_discovered_ptr, + pub object_lost: alljoyn_observer_object_lost_ptr, +} +impl ::core::marker::Copy for alljoyn_observerlistener_callback {} +impl ::core::clone::Clone for alljoyn_observerlistener_callback { + fn clone(&self) -> Self { + *self + } +} +pub type alljoyn_permissionconfigurationlistener = isize; +#[repr(C)] +pub struct alljoyn_permissionconfigurationlistener_callbacks { + pub factory_reset: alljoyn_permissionconfigurationlistener_factoryreset_ptr, + pub policy_changed: alljoyn_permissionconfigurationlistener_policychanged_ptr, + pub start_management: alljoyn_permissionconfigurationlistener_startmanagement_ptr, + pub end_management: alljoyn_permissionconfigurationlistener_endmanagement_ptr, +} +impl ::core::marker::Copy for alljoyn_permissionconfigurationlistener_callbacks {} +impl ::core::clone::Clone for alljoyn_permissionconfigurationlistener_callbacks { + fn clone(&self) -> Self { + *self + } +} +pub type alljoyn_permissionconfigurator = isize; +pub type alljoyn_pinglistener = isize; +#[repr(C)] +pub struct alljoyn_pinglistener_callback { + pub destination_found: alljoyn_autopinger_destination_found_ptr, + pub destination_lost: alljoyn_autopinger_destination_lost_ptr, +} +impl ::core::marker::Copy for alljoyn_pinglistener_callback {} +impl ::core::clone::Clone for alljoyn_pinglistener_callback { + fn clone(&self) -> Self { + *self + } +} +pub type alljoyn_proxybusobject = isize; +pub type alljoyn_proxybusobject_ref = isize; +pub type alljoyn_securityapplicationproxy = isize; +pub type alljoyn_sessionlistener = isize; +#[repr(C)] +pub struct alljoyn_sessionlistener_callbacks { + pub session_lost: alljoyn_sessionlistener_sessionlost_ptr, + pub session_member_added: alljoyn_sessionlistener_sessionmemberadded_ptr, + pub session_member_removed: alljoyn_sessionlistener_sessionmemberremoved_ptr, +} +impl ::core::marker::Copy for alljoyn_sessionlistener_callbacks {} +impl ::core::clone::Clone for alljoyn_sessionlistener_callbacks { + fn clone(&self) -> Self { + *self + } +} +pub type alljoyn_sessionopts = isize; +pub type alljoyn_sessionportlistener = isize; +#[repr(C)] +pub struct alljoyn_sessionportlistener_callbacks { + pub accept_session_joiner: alljoyn_sessionportlistener_acceptsessionjoiner_ptr, + pub session_joined: alljoyn_sessionportlistener_sessionjoined_ptr, +} +impl ::core::marker::Copy for alljoyn_sessionportlistener_callbacks {} +impl ::core::clone::Clone for alljoyn_sessionportlistener_callbacks { + fn clone(&self) -> Self { + *self + } +} +pub type alljoyn_about_announced_ptr = ::core::option::Option ()>; +pub type alljoyn_aboutdatalistener_getaboutdata_ptr = ::core::option::Option QStatus>; +pub type alljoyn_aboutdatalistener_getannouncedaboutdata_ptr = ::core::option::Option QStatus>; +pub type alljoyn_applicationstatelistener_state_ptr = ::core::option::Option ()>; +pub type alljoyn_authlistener_authenticationcomplete_ptr = ::core::option::Option ()>; +pub type alljoyn_authlistener_requestcredentials_ptr = ::core::option::Option i32>; +pub type alljoyn_authlistener_requestcredentialsasync_ptr = ::core::option::Option QStatus>; +pub type alljoyn_authlistener_securityviolation_ptr = ::core::option::Option ()>; +pub type alljoyn_authlistener_verifycredentials_ptr = ::core::option::Option i32>; +pub type alljoyn_authlistener_verifycredentialsasync_ptr = ::core::option::Option QStatus>; +pub type alljoyn_autopinger_destination_found_ptr = ::core::option::Option ()>; +pub type alljoyn_autopinger_destination_lost_ptr = ::core::option::Option ()>; +pub type alljoyn_busattachment_joinsessioncb_ptr = ::core::option::Option ()>; +pub type alljoyn_busattachment_setlinktimeoutcb_ptr = ::core::option::Option ()>; +pub type alljoyn_buslistener_bus_disconnected_ptr = ::core::option::Option ()>; +pub type alljoyn_buslistener_bus_prop_changed_ptr = ::core::option::Option ()>; +pub type alljoyn_buslistener_bus_stopping_ptr = ::core::option::Option ()>; +pub type alljoyn_buslistener_found_advertised_name_ptr = ::core::option::Option ()>; +pub type alljoyn_buslistener_listener_registered_ptr = ::core::option::Option ()>; +pub type alljoyn_buslistener_listener_unregistered_ptr = ::core::option::Option ()>; +pub type alljoyn_buslistener_lost_advertised_name_ptr = ::core::option::Option ()>; +pub type alljoyn_buslistener_name_owner_changed_ptr = ::core::option::Option ()>; +pub type alljoyn_busobject_object_registration_ptr = ::core::option::Option ()>; +pub type alljoyn_busobject_prop_get_ptr = ::core::option::Option QStatus>; +pub type alljoyn_busobject_prop_set_ptr = ::core::option::Option QStatus>; +pub type alljoyn_interfacedescription_translation_callback_ptr = ::core::option::Option ::windows_sys::core::PCSTR>; +pub type alljoyn_keystorelistener_acquireexclusivelock_ptr = ::core::option::Option QStatus>; +pub type alljoyn_keystorelistener_loadrequest_ptr = ::core::option::Option QStatus>; +pub type alljoyn_keystorelistener_releaseexclusivelock_ptr = ::core::option::Option ()>; +pub type alljoyn_keystorelistener_storerequest_ptr = ::core::option::Option QStatus>; +pub type alljoyn_messagereceiver_methodhandler_ptr = ::core::option::Option ()>; +pub type alljoyn_messagereceiver_replyhandler_ptr = ::core::option::Option ()>; +pub type alljoyn_messagereceiver_signalhandler_ptr = ::core::option::Option ()>; +pub type alljoyn_observer_object_discovered_ptr = ::core::option::Option ()>; +pub type alljoyn_observer_object_lost_ptr = ::core::option::Option ()>; +pub type alljoyn_permissionconfigurationlistener_endmanagement_ptr = ::core::option::Option ()>; +pub type alljoyn_permissionconfigurationlistener_factoryreset_ptr = ::core::option::Option QStatus>; +pub type alljoyn_permissionconfigurationlistener_policychanged_ptr = ::core::option::Option ()>; +pub type alljoyn_permissionconfigurationlistener_startmanagement_ptr = ::core::option::Option ()>; +pub type alljoyn_proxybusobject_listener_getallpropertiescb_ptr = ::core::option::Option ()>; +pub type alljoyn_proxybusobject_listener_getpropertycb_ptr = ::core::option::Option ()>; +pub type alljoyn_proxybusobject_listener_introspectcb_ptr = ::core::option::Option ()>; +pub type alljoyn_proxybusobject_listener_propertieschanged_ptr = ::core::option::Option ()>; +pub type alljoyn_proxybusobject_listener_setpropertycb_ptr = ::core::option::Option ()>; +pub type alljoyn_sessionlistener_sessionlost_ptr = ::core::option::Option ()>; +pub type alljoyn_sessionlistener_sessionmemberadded_ptr = ::core::option::Option ()>; +pub type alljoyn_sessionlistener_sessionmemberremoved_ptr = ::core::option::Option ()>; +pub type alljoyn_sessionportlistener_acceptsessionjoiner_ptr = ::core::option::Option i32>; +pub type alljoyn_sessionportlistener_sessionjoined_ptr = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/BiometricFramework/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/BiometricFramework/mod.rs new file mode 100644 index 000000000..c718ba37f --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/BiometricFramework/mod.rs @@ -0,0 +1,2356 @@ +::windows_targets::link!("winbio.dll" "system" fn WinBioAcquireFocus() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioAsyncEnumBiometricUnits(frameworkhandle : u32, factor : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioAsyncEnumDatabases(frameworkhandle : u32, factor : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioAsyncEnumServiceProviders(frameworkhandle : u32, factor : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioAsyncMonitorFrameworkChanges(frameworkhandle : u32, changetypes : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winbio.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinBioAsyncOpenFramework(notificationmethod : WINBIO_ASYNC_NOTIFICATION_METHOD, targetwindow : super::super::Foundation:: HWND, messagecode : u32, callbackroutine : PWINBIO_ASYNC_COMPLETION_CALLBACK, userdata : *const ::core::ffi::c_void, asynchronousopen : super::super::Foundation:: BOOL, frameworkhandle : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winbio.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinBioAsyncOpenSession(factor : u32, pooltype : WINBIO_POOL, flags : u32, unitarray : *const u32, unitcount : usize, databaseid : *const ::windows_sys::core::GUID, notificationmethod : WINBIO_ASYNC_NOTIFICATION_METHOD, targetwindow : super::super::Foundation:: HWND, messagecode : u32, callbackroutine : PWINBIO_ASYNC_COMPLETION_CALLBACK, userdata : *const ::core::ffi::c_void, asynchronousopen : super::super::Foundation:: BOOL, sessionhandle : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioCancel(sessionhandle : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioCaptureSample(sessionhandle : u32, purpose : u8, flags : u8, unitid : *mut u32, sample : *mut *mut WINBIO_BIR, samplesize : *mut usize, rejectdetail : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioCaptureSampleWithCallback(sessionhandle : u32, purpose : u8, flags : u8, capturecallback : PWINBIO_CAPTURE_CALLBACK, capturecallbackcontext : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioCloseFramework(frameworkhandle : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioCloseSession(sessionhandle : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioControlUnit(sessionhandle : u32, unitid : u32, component : WINBIO_COMPONENT, controlcode : u32, sendbuffer : *const u8, sendbuffersize : usize, receivebuffer : *mut u8, receivebuffersize : usize, receivedatasize : *mut usize, operationstatus : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioControlUnitPrivileged(sessionhandle : u32, unitid : u32, component : WINBIO_COMPONENT, controlcode : u32, sendbuffer : *const u8, sendbuffersize : usize, receivebuffer : *mut u8, receivebuffersize : usize, receivedatasize : *mut usize, operationstatus : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioDeleteTemplate(sessionhandle : u32, unitid : u32, identity : *const WINBIO_IDENTITY, subfactor : u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioEnrollBegin(sessionhandle : u32, subfactor : u8, unitid : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioEnrollCapture(sessionhandle : u32, rejectdetail : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioEnrollCaptureWithCallback(sessionhandle : u32, enrollcallback : PWINBIO_ENROLL_CAPTURE_CALLBACK, enrollcallbackcontext : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioEnrollCommit(sessionhandle : u32, identity : *mut WINBIO_IDENTITY, isnewtemplate : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioEnrollDiscard(sessionhandle : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioEnrollSelect(sessionhandle : u32, selectorvalue : u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioEnumBiometricUnits(factor : u32, unitschemaarray : *mut *mut WINBIO_UNIT_SCHEMA, unitcount : *mut usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioEnumDatabases(factor : u32, storageschemaarray : *mut *mut WINBIO_STORAGE_SCHEMA, storagecount : *mut usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioEnumEnrollments(sessionhandle : u32, unitid : u32, identity : *const WINBIO_IDENTITY, subfactorarray : *mut *mut u8, subfactorcount : *mut usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioEnumServiceProviders(factor : u32, bspschemaarray : *mut *mut WINBIO_BSP_SCHEMA, bspcount : *mut usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioFree(address : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioGetCredentialState(identity : WINBIO_IDENTITY, r#type : WINBIO_CREDENTIAL_TYPE, credentialstate : *mut WINBIO_CREDENTIAL_STATE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioGetDomainLogonSetting(value : *mut u8, source : *mut WINBIO_SETTING_SOURCE) -> ()); +::windows_targets::link!("winbio.dll" "system" fn WinBioGetEnabledSetting(value : *mut u8, source : *mut WINBIO_SETTING_SOURCE) -> ()); +::windows_targets::link!("winbio.dll" "system" fn WinBioGetEnrolledFactors(accountowner : *const WINBIO_IDENTITY, enrolledfactors : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioGetLogonSetting(value : *mut u8, source : *mut WINBIO_SETTING_SOURCE) -> ()); +::windows_targets::link!("winbio.dll" "system" fn WinBioGetProperty(sessionhandle : u32, propertytype : u32, propertyid : u32, unitid : u32, identity : *const WINBIO_IDENTITY, subfactor : u8, propertybuffer : *mut *mut ::core::ffi::c_void, propertybuffersize : *mut usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioIdentify(sessionhandle : u32, unitid : *mut u32, identity : *mut WINBIO_IDENTITY, subfactor : *mut u8, rejectdetail : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioIdentifyWithCallback(sessionhandle : u32, identifycallback : PWINBIO_IDENTIFY_CALLBACK, identifycallbackcontext : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioImproveBegin(sessionhandle : u32, unitid : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioImproveEnd(sessionhandle : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioLocateSensor(sessionhandle : u32, unitid : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioLocateSensorWithCallback(sessionhandle : u32, locatecallback : PWINBIO_LOCATE_SENSOR_CALLBACK, locatecallbackcontext : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioLockUnit(sessionhandle : u32, unitid : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioLogonIdentifiedUser(sessionhandle : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioMonitorPresence(sessionhandle : u32, unitid : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioOpenSession(factor : u32, pooltype : WINBIO_POOL, flags : u32, unitarray : *const u32, unitcount : usize, databaseid : *const ::windows_sys::core::GUID, sessionhandle : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioRegisterEventMonitor(sessionhandle : u32, eventmask : u32, eventcallback : PWINBIO_EVENT_CALLBACK, eventcallbackcontext : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioReleaseFocus() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioRemoveAllCredentials() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioRemoveAllDomainCredentials() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioRemoveCredential(identity : WINBIO_IDENTITY, r#type : WINBIO_CREDENTIAL_TYPE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioSetCredential(r#type : WINBIO_CREDENTIAL_TYPE, credential : *const u8, credentialsize : usize, format : WINBIO_CREDENTIAL_FORMAT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioSetProperty(sessionhandle : u32, propertytype : u32, propertyid : u32, unitid : u32, identity : *const WINBIO_IDENTITY, subfactor : u8, propertybuffer : *const ::core::ffi::c_void, propertybuffersize : usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioUnlockUnit(sessionhandle : u32, unitid : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioUnregisterEventMonitor(sessionhandle : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioVerify(sessionhandle : u32, identity : *const WINBIO_IDENTITY, subfactor : u8, unitid : *mut u32, r#match : *mut u8, rejectdetail : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winbio.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinBioVerifyWithCallback(sessionhandle : u32, identity : *const WINBIO_IDENTITY, subfactor : u8, verifycallback : PWINBIO_VERIFY_CALLBACK, verifycallbackcontext : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winbio.dll" "system" fn WinBioWait(sessionhandle : u32) -> ::windows_sys::core::HRESULT); +pub const FACILITY_NONE: u32 = 0u32; +pub const FACILITY_WINBIO: u32 = 9u32; +pub const GUID_DEVINTERFACE_BIOMETRIC_READER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe2b5183a_99ea_4cc3_ad6b_80ca8d715b80); +pub const IOCTL_BIOMETRIC_VENDOR: u32 = 4464640u32; +pub const WINBIO_ANSI_381_IMG_BIT_PACKED: u16 = 1u16; +pub const WINBIO_ANSI_381_IMG_COMPRESSED_JPEG: u16 = 3u16; +pub const WINBIO_ANSI_381_IMG_COMPRESSED_JPEG2000: u16 = 4u16; +pub const WINBIO_ANSI_381_IMG_COMPRESSED_PNG: u16 = 5u16; +pub const WINBIO_ANSI_381_IMG_COMPRESSED_WSQ: u16 = 2u16; +pub const WINBIO_ANSI_381_IMG_UNCOMPRESSED: u16 = 0u16; +pub const WINBIO_ANSI_381_IMP_TYPE_LATENT: u16 = 7u16; +pub const WINBIO_ANSI_381_IMP_TYPE_LIVE_SCAN_CONTACTLESS: u16 = 9u16; +pub const WINBIO_ANSI_381_IMP_TYPE_LIVE_SCAN_PLAIN: u16 = 0u16; +pub const WINBIO_ANSI_381_IMP_TYPE_LIVE_SCAN_ROLLED: u16 = 1u16; +pub const WINBIO_ANSI_381_IMP_TYPE_NONLIVE_SCAN_PLAIN: u16 = 2u16; +pub const WINBIO_ANSI_381_IMP_TYPE_NONLIVE_SCAN_ROLLED: u16 = 3u16; +pub const WINBIO_ANSI_381_IMP_TYPE_SWIPE: u16 = 8u16; +pub const WINBIO_ANSI_381_PIXELS_PER_CM: u16 = 2u16; +pub const WINBIO_ANSI_381_PIXELS_PER_INCH: u16 = 1u16; +pub const WINBIO_ANTI_SPOOF_DISABLE: WINBIO_ANTI_SPOOF_POLICY_ACTION = 0i32; +pub const WINBIO_ANTI_SPOOF_ENABLE: WINBIO_ANTI_SPOOF_POLICY_ACTION = 1i32; +pub const WINBIO_ANTI_SPOOF_REMOVE: WINBIO_ANTI_SPOOF_POLICY_ACTION = 2i32; +pub const WINBIO_ASYNC_NOTIFY_CALLBACK: WINBIO_ASYNC_NOTIFICATION_METHOD = 1i32; +pub const WINBIO_ASYNC_NOTIFY_MAXIMUM_VALUE: WINBIO_ASYNC_NOTIFICATION_METHOD = 3i32; +pub const WINBIO_ASYNC_NOTIFY_MESSAGE: WINBIO_ASYNC_NOTIFICATION_METHOD = 2i32; +pub const WINBIO_ASYNC_NOTIFY_NONE: WINBIO_ASYNC_NOTIFICATION_METHOD = 0i32; +pub const WINBIO_BIR_ALGIN_SIZE: u32 = 8u32; +pub const WINBIO_BIR_ALIGN_SIZE: u32 = 8u32; +pub const WINBIO_COMPONENT_ENGINE: WINBIO_COMPONENT = 2u32; +pub const WINBIO_COMPONENT_SENSOR: WINBIO_COMPONENT = 1u32; +pub const WINBIO_COMPONENT_STORAGE: WINBIO_COMPONENT = 3u32; +pub const WINBIO_CREDENTIAL_ALL: WINBIO_CREDENTIAL_TYPE = -1i32; +pub const WINBIO_CREDENTIAL_NOT_SET: WINBIO_CREDENTIAL_STATE = 1i32; +pub const WINBIO_CREDENTIAL_PASSWORD: WINBIO_CREDENTIAL_TYPE = 1i32; +pub const WINBIO_CREDENTIAL_SET: WINBIO_CREDENTIAL_STATE = 2i32; +pub const WINBIO_DATA_FLAG_INTEGRITY: u16 = 1u16; +pub const WINBIO_DATA_FLAG_INTERMEDIATE: u16 = 64u16; +pub const WINBIO_DATA_FLAG_OPTION_MASK_PRESENT: u16 = 8u16; +pub const WINBIO_DATA_FLAG_PRIVACY: u16 = 2u16; +pub const WINBIO_DATA_FLAG_PROCESSED: u16 = 128u16; +pub const WINBIO_DATA_FLAG_RAW: u16 = 32u16; +pub const WINBIO_DATA_FLAG_SIGNED: u16 = 4u16; +pub const WINBIO_E_ADAPTER_INTEGRITY_FAILURE: ::windows_sys::core::HRESULT = -2146860995i32; +pub const WINBIO_E_AUTO_LOGON_DISABLED: ::windows_sys::core::HRESULT = -2146860989i32; +pub const WINBIO_E_BAD_CAPTURE: ::windows_sys::core::HRESULT = -2146861048i32; +pub const WINBIO_E_CALIBRATION_BUFFER_INVALID: ::windows_sys::core::HRESULT = -2146860975i32; +pub const WINBIO_E_CALIBRATION_BUFFER_TOO_LARGE: ::windows_sys::core::HRESULT = -2146860976i32; +pub const WINBIO_E_CALIBRATION_BUFFER_TOO_SMALL: ::windows_sys::core::HRESULT = -2146860977i32; +pub const WINBIO_E_CANCELED: ::windows_sys::core::HRESULT = -2146861052i32; +pub const WINBIO_E_CAPTURE_ABORTED: ::windows_sys::core::HRESULT = -2146861050i32; +pub const WINBIO_E_CONFIGURATION_FAILURE: ::windows_sys::core::HRESULT = -2146861005i32; +pub const WINBIO_E_CRED_PROV_DISABLED: ::windows_sys::core::HRESULT = -2146861008i32; +pub const WINBIO_E_CRED_PROV_NO_CREDENTIAL: ::windows_sys::core::HRESULT = -2146861007i32; +pub const WINBIO_E_CRED_PROV_SECURITY_LOCKOUT: ::windows_sys::core::HRESULT = -2146860985i32; +pub const WINBIO_E_DATABASE_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2146861034i32; +pub const WINBIO_E_DATABASE_BAD_INDEX_VECTOR: ::windows_sys::core::HRESULT = -2146861022i32; +pub const WINBIO_E_DATABASE_CANT_CLOSE: ::windows_sys::core::HRESULT = -2146861037i32; +pub const WINBIO_E_DATABASE_CANT_CREATE: ::windows_sys::core::HRESULT = -2146861039i32; +pub const WINBIO_E_DATABASE_CANT_ERASE: ::windows_sys::core::HRESULT = -2146861036i32; +pub const WINBIO_E_DATABASE_CANT_FIND: ::windows_sys::core::HRESULT = -2146861035i32; +pub const WINBIO_E_DATABASE_CANT_OPEN: ::windows_sys::core::HRESULT = -2146861038i32; +pub const WINBIO_E_DATABASE_CORRUPTED: ::windows_sys::core::HRESULT = -2146861030i32; +pub const WINBIO_E_DATABASE_EOF: ::windows_sys::core::HRESULT = -2146861023i32; +pub const WINBIO_E_DATABASE_FULL: ::windows_sys::core::HRESULT = -2146861032i32; +pub const WINBIO_E_DATABASE_LOCKED: ::windows_sys::core::HRESULT = -2146861031i32; +pub const WINBIO_E_DATABASE_NO_MORE_RECORDS: ::windows_sys::core::HRESULT = -2146861024i32; +pub const WINBIO_E_DATABASE_NO_RESULTS: ::windows_sys::core::HRESULT = -2146861025i32; +pub const WINBIO_E_DATABASE_NO_SUCH_RECORD: ::windows_sys::core::HRESULT = -2146861029i32; +pub const WINBIO_E_DATABASE_READ_ERROR: ::windows_sys::core::HRESULT = -2146861027i32; +pub const WINBIO_E_DATABASE_WRITE_ERROR: ::windows_sys::core::HRESULT = -2146861026i32; +pub const WINBIO_E_DATA_COLLECTION_IN_PROGRESS: ::windows_sys::core::HRESULT = -2146861045i32; +pub const WINBIO_E_DATA_PROTECTION_FAILURE: ::windows_sys::core::HRESULT = -2146860986i32; +pub const WINBIO_E_DEADLOCK_DETECTED: ::windows_sys::core::HRESULT = -2146860992i32; +pub const WINBIO_E_DEVICE_BUSY: ::windows_sys::core::HRESULT = -2146861040i32; +pub const WINBIO_E_DEVICE_FAILURE: ::windows_sys::core::HRESULT = -2146861002i32; +pub const WINBIO_E_DISABLED: ::windows_sys::core::HRESULT = -2146861006i32; +pub const WINBIO_E_DUPLICATE_ENROLLMENT: ::windows_sys::core::HRESULT = -2146861028i32; +pub const WINBIO_E_DUPLICATE_TEMPLATE: ::windows_sys::core::HRESULT = -2146861013i32; +pub const WINBIO_E_ENROLLMENT_CANCELED_BY_SUSPEND: ::windows_sys::core::HRESULT = -2146860965i32; +pub const WINBIO_E_ENROLLMENT_IN_PROGRESS: ::windows_sys::core::HRESULT = -2146861049i32; +pub const WINBIO_E_EVENT_MONITOR_ACTIVE: ::windows_sys::core::HRESULT = -2146860999i32; +pub const WINBIO_E_FAST_USER_SWITCH_DISABLED: ::windows_sys::core::HRESULT = -2146861001i32; +pub const WINBIO_E_INCORRECT_BSP: ::windows_sys::core::HRESULT = -2146861020i32; +pub const WINBIO_E_INCORRECT_SENSOR_POOL: ::windows_sys::core::HRESULT = -2146861019i32; +pub const WINBIO_E_INCORRECT_SESSION_TYPE: ::windows_sys::core::HRESULT = -2146860994i32; +pub const WINBIO_E_INSECURE_SENSOR: ::windows_sys::core::HRESULT = -2146860969i32; +pub const WINBIO_E_INVALID_BUFFER: ::windows_sys::core::HRESULT = -2146860967i32; +pub const WINBIO_E_INVALID_BUFFER_ID: ::windows_sys::core::HRESULT = -2146860968i32; +pub const WINBIO_E_INVALID_CALIBRATION_FORMAT_ARRAY: ::windows_sys::core::HRESULT = -2146860980i32; +pub const WINBIO_E_INVALID_CONTROL_CODE: ::windows_sys::core::HRESULT = -2146861047i32; +pub const WINBIO_E_INVALID_DEVICE_STATE: ::windows_sys::core::HRESULT = -2146861041i32; +pub const WINBIO_E_INVALID_KEY_IDENTIFIER: ::windows_sys::core::HRESULT = -2146860974i32; +pub const WINBIO_E_INVALID_OPERATION: ::windows_sys::core::HRESULT = -2146861012i32; +pub const WINBIO_E_INVALID_PROPERTY_ID: ::windows_sys::core::HRESULT = -2146860997i32; +pub const WINBIO_E_INVALID_PROPERTY_TYPE: ::windows_sys::core::HRESULT = -2146860998i32; +pub const WINBIO_E_INVALID_SENSOR_MODE: ::windows_sys::core::HRESULT = -2146861017i32; +pub const WINBIO_E_INVALID_SUBFACTOR: ::windows_sys::core::HRESULT = -2146860981i32; +pub const WINBIO_E_INVALID_TICKET: ::windows_sys::core::HRESULT = -2146860988i32; +pub const WINBIO_E_INVALID_UNIT: ::windows_sys::core::HRESULT = -2146861054i32; +pub const WINBIO_E_KEY_CREATION_FAILED: ::windows_sys::core::HRESULT = -2146860973i32; +pub const WINBIO_E_KEY_IDENTIFIER_BUFFER_TOO_SMALL: ::windows_sys::core::HRESULT = -2146860972i32; +pub const WINBIO_E_LOCK_VIOLATION: ::windows_sys::core::HRESULT = -2146861014i32; +pub const WINBIO_E_MAX_ERROR_COUNT_EXCEEDED: ::windows_sys::core::HRESULT = -2146860990i32; +pub const WINBIO_E_NOT_ACTIVE_CONSOLE: ::windows_sys::core::HRESULT = -2146861000i32; +pub const WINBIO_E_NO_CAPTURE_DATA: ::windows_sys::core::HRESULT = -2146861018i32; +pub const WINBIO_E_NO_MATCH: ::windows_sys::core::HRESULT = -2146861051i32; +pub const WINBIO_E_NO_PREBOOT_IDENTITY: ::windows_sys::core::HRESULT = -2146860991i32; +pub const WINBIO_E_NO_SUPPORTED_CALIBRATION_FORMAT: ::windows_sys::core::HRESULT = -2146860979i32; +pub const WINBIO_E_POLICY_PROTECTION_UNAVAILABLE: ::windows_sys::core::HRESULT = -2146860970i32; +pub const WINBIO_E_PRESENCE_MONITOR_ACTIVE: ::windows_sys::core::HRESULT = -2146860982i32; +pub const WINBIO_E_PROPERTY_UNAVAILABLE: ::windows_sys::core::HRESULT = -2146860971i32; +pub const WINBIO_E_SAS_ENABLED: ::windows_sys::core::HRESULT = -2146861003i32; +pub const WINBIO_E_SELECTION_REQUIRED: ::windows_sys::core::HRESULT = -2146860983i32; +pub const WINBIO_E_SENSOR_UNAVAILABLE: ::windows_sys::core::HRESULT = -2146861004i32; +pub const WINBIO_E_SESSION_BUSY: ::windows_sys::core::HRESULT = -2146861011i32; +pub const WINBIO_E_SESSION_HANDLE_CLOSED: ::windows_sys::core::HRESULT = -2146860993i32; +pub const WINBIO_E_TICKET_QUOTA_EXCEEDED: ::windows_sys::core::HRESULT = -2146860987i32; +pub const WINBIO_E_TRUSTLET_INTEGRITY_FAIL: ::windows_sys::core::HRESULT = -2146860966i32; +pub const WINBIO_E_UNKNOWN_ID: ::windows_sys::core::HRESULT = -2146861053i32; +pub const WINBIO_E_UNSUPPORTED_DATA_FORMAT: ::windows_sys::core::HRESULT = -2146861044i32; +pub const WINBIO_E_UNSUPPORTED_DATA_TYPE: ::windows_sys::core::HRESULT = -2146861043i32; +pub const WINBIO_E_UNSUPPORTED_FACTOR: ::windows_sys::core::HRESULT = -2146861055i32; +pub const WINBIO_E_UNSUPPORTED_POOL_TYPE: ::windows_sys::core::HRESULT = -2146860984i32; +pub const WINBIO_E_UNSUPPORTED_PROPERTY: ::windows_sys::core::HRESULT = -2146860996i32; +pub const WINBIO_E_UNSUPPORTED_PURPOSE: ::windows_sys::core::HRESULT = -2146861042i32; +pub const WINBIO_E_UNSUPPORTED_SENSOR_CALIBRATION_FORMAT: ::windows_sys::core::HRESULT = -2146860978i32; +pub const WINBIO_I_EXTENDED_STATUS_INFORMATION: ::windows_sys::core::HRESULT = 589826i32; +pub const WINBIO_I_MORE_DATA: ::windows_sys::core::HRESULT = 589825i32; +pub const WINBIO_MAX_STRING_LEN: u32 = 256u32; +pub const WINBIO_PASSWORD_GENERIC: WINBIO_CREDENTIAL_FORMAT = 1i32; +pub const WINBIO_PASSWORD_PACKED: WINBIO_CREDENTIAL_FORMAT = 2i32; +pub const WINBIO_PASSWORD_PROTECTED: WINBIO_CREDENTIAL_FORMAT = 3i32; +pub const WINBIO_POLICY_ADMIN: WINBIO_POLICY_SOURCE = 3i32; +pub const WINBIO_POLICY_DEFAULT: WINBIO_POLICY_SOURCE = 1i32; +pub const WINBIO_POLICY_LOCAL: WINBIO_POLICY_SOURCE = 2i32; +pub const WINBIO_POLICY_UNKNOWN: WINBIO_POLICY_SOURCE = 0i32; +pub const WINBIO_POOL_PRIVATE: WINBIO_POOL = 2u32; +pub const WINBIO_POOL_SYSTEM: WINBIO_POOL = 1u32; +pub const WINBIO_SCP_CURVE_FIELD_SIZE_V1: u32 = 32u32; +pub const WINBIO_SCP_DIGEST_SIZE_V1: u32 = 32u32; +pub const WINBIO_SCP_ENCRYPTION_BLOCK_SIZE_V1: u32 = 16u32; +pub const WINBIO_SCP_ENCRYPTION_KEY_SIZE_V1: u32 = 32u32; +pub const WINBIO_SCP_PRIVATE_KEY_SIZE_V1: u32 = 32u32; +pub const WINBIO_SCP_PUBLIC_KEY_SIZE_V1: u32 = 65u32; +pub const WINBIO_SCP_RANDOM_SIZE_V1: u32 = 32u32; +pub const WINBIO_SCP_SIGNATURE_SIZE_V1: u32 = 64u32; +pub const WINBIO_SCP_VERSION_1: u32 = 1u32; +pub const WINBIO_SETTING_SOURCE_DEFAULT: WINBIO_SETTING_SOURCE = 1u32; +pub const WINBIO_SETTING_SOURCE_INVALID: WINBIO_SETTING_SOURCE = 0u32; +pub const WINBIO_SETTING_SOURCE_LOCAL: WINBIO_SETTING_SOURCE = 3u32; +pub const WINBIO_SETTING_SOURCE_POLICY: WINBIO_SETTING_SOURCE = 2u32; +pub const WINBIO_WBDI_MAJOR_VERSION: u32 = 1u32; +pub const WINBIO_WBDI_MINOR_VERSION: u32 = 0u32; +pub type WINBIO_ANTI_SPOOF_POLICY_ACTION = i32; +pub type WINBIO_ASYNC_NOTIFICATION_METHOD = i32; +pub type WINBIO_COMPONENT = u32; +pub type WINBIO_CREDENTIAL_FORMAT = i32; +pub type WINBIO_CREDENTIAL_STATE = i32; +pub type WINBIO_CREDENTIAL_TYPE = i32; +pub type WINBIO_POLICY_SOURCE = i32; +pub type WINBIO_POOL = u32; +pub type WINBIO_SETTING_SOURCE = u32; +#[repr(C)] +pub struct WINBIO_ACCOUNT_POLICY { + pub Identity: WINBIO_IDENTITY, + pub AntiSpoofBehavior: WINBIO_ANTI_SPOOF_POLICY_ACTION, +} +impl ::core::marker::Copy for WINBIO_ACCOUNT_POLICY {} +impl ::core::clone::Clone for WINBIO_ACCOUNT_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_ADAPTER_INTERFACE_VERSION { + pub MajorVersion: u16, + pub MinorVersion: u16, +} +impl ::core::marker::Copy for WINBIO_ADAPTER_INTERFACE_VERSION {} +impl ::core::clone::Clone for WINBIO_ADAPTER_INTERFACE_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_ANTI_SPOOF_POLICY { + pub Action: WINBIO_ANTI_SPOOF_POLICY_ACTION, + pub Source: WINBIO_POLICY_SOURCE, +} +impl ::core::marker::Copy for WINBIO_ANTI_SPOOF_POLICY {} +impl ::core::clone::Clone for WINBIO_ANTI_SPOOF_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT { + pub SessionHandle: u32, + pub Operation: u32, + pub SequenceNumber: u64, + pub TimeStamp: i64, + pub ApiStatus: ::windows_sys::core::HRESULT, + pub UnitId: u32, + pub UserData: *mut ::core::ffi::c_void, + pub Parameters: WINBIO_ASYNC_RESULT_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WINBIO_ASYNC_RESULT_0 { + pub Verify: WINBIO_ASYNC_RESULT_0_20, + pub Identify: WINBIO_ASYNC_RESULT_0_15, + pub EnrollBegin: WINBIO_ASYNC_RESULT_0_3, + pub EnrollCapture: WINBIO_ASYNC_RESULT_0_4, + pub EnrollCommit: WINBIO_ASYNC_RESULT_0_5, + pub EnumEnrollments: WINBIO_ASYNC_RESULT_0_9, + pub CaptureSample: WINBIO_ASYNC_RESULT_0_0, + pub DeleteTemplate: WINBIO_ASYNC_RESULT_0_2, + pub GetProperty: WINBIO_ASYNC_RESULT_0_12, + pub SetProperty: WINBIO_ASYNC_RESULT_0_18, + pub GetEvent: WINBIO_ASYNC_RESULT_0_11, + pub ControlUnit: WINBIO_ASYNC_RESULT_0_1, + pub EnumServiceProviders: WINBIO_ASYNC_RESULT_0_10, + pub EnumBiometricUnits: WINBIO_ASYNC_RESULT_0_7, + pub EnumDatabases: WINBIO_ASYNC_RESULT_0_8, + pub VerifyAndReleaseTicket: WINBIO_ASYNC_RESULT_0_19, + pub IdentifyAndReleaseTicket: WINBIO_ASYNC_RESULT_0_14, + pub EnrollSelect: WINBIO_ASYNC_RESULT_0_6, + pub MonitorPresence: WINBIO_ASYNC_RESULT_0_16, + pub GetProtectionPolicy: WINBIO_ASYNC_RESULT_0_13, + pub NotifyUnitStatusChange: WINBIO_ASYNC_RESULT_0_17, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_0 { + pub Sample: *mut WINBIO_BIR, + pub SampleSize: usize, + pub RejectDetail: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_1 { + pub Component: WINBIO_COMPONENT, + pub ControlCode: u32, + pub OperationStatus: u32, + pub SendBuffer: *mut u8, + pub SendBufferSize: usize, + pub ReceiveBuffer: *mut u8, + pub ReceiveBufferSize: usize, + pub ReceiveDataSize: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_2 { + pub Identity: WINBIO_IDENTITY, + pub SubFactor: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_3 { + pub SubFactor: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_4 { + pub RejectDetail: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_4 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_5 { + pub Identity: WINBIO_IDENTITY, + pub IsNewTemplate: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_5 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_6 { + pub SelectorValue: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_6 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_7 { + pub UnitCount: usize, + pub UnitSchemaArray: *mut WINBIO_UNIT_SCHEMA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_7 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_8 { + pub StorageCount: usize, + pub StorageSchemaArray: *mut WINBIO_STORAGE_SCHEMA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_8 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_9 { + pub Identity: WINBIO_IDENTITY, + pub SubFactorCount: usize, + pub SubFactorArray: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_9 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_10 { + pub BspCount: usize, + pub BspSchemaArray: *mut WINBIO_BSP_SCHEMA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_10 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_11 { + pub Event: WINBIO_EVENT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_11 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_12 { + pub PropertyType: u32, + pub PropertyId: u32, + pub Identity: WINBIO_IDENTITY, + pub SubFactor: u8, + pub PropertyBufferSize: usize, + pub PropertyBuffer: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_12 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_12 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_13 { + pub Identity: WINBIO_IDENTITY, + pub Policy: WINBIO_PROTECTION_POLICY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_13 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_13 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_14 { + pub Identity: WINBIO_IDENTITY, + pub SubFactor: u8, + pub RejectDetail: u32, + pub Ticket: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_14 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_14 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_15 { + pub Identity: WINBIO_IDENTITY, + pub SubFactor: u8, + pub RejectDetail: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_15 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_15 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_16 { + pub ChangeType: u32, + pub PresenceCount: usize, + pub PresenceArray: *mut WINBIO_PRESENCE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_16 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_17 { + pub ExtendedStatus: WINBIO_EXTENDED_UNIT_STATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_17 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_17 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_18 { + pub PropertyType: u32, + pub PropertyId: u32, + pub Identity: WINBIO_IDENTITY, + pub SubFactor: u8, + pub PropertyBufferSize: usize, + pub PropertyBuffer: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_18 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_18 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_19 { + pub Match: super::super::Foundation::BOOLEAN, + pub RejectDetail: u32, + pub Ticket: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_19 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_19 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_ASYNC_RESULT_0_20 { + pub Match: super::super::Foundation::BOOLEAN, + pub RejectDetail: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_ASYNC_RESULT_0_20 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_ASYNC_RESULT_0_20 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_BDB_ANSI_381_HEADER { + pub RecordLength: u64, + pub FormatIdentifier: u32, + pub VersionNumber: u32, + pub ProductId: WINBIO_REGISTERED_FORMAT, + pub CaptureDeviceId: u16, + pub ImageAcquisitionLevel: u16, + pub HorizontalScanResolution: u16, + pub VerticalScanResolution: u16, + pub HorizontalImageResolution: u16, + pub VerticalImageResolution: u16, + pub ElementCount: u8, + pub ScaleUnits: u8, + pub PixelDepth: u8, + pub ImageCompressionAlg: u8, + pub Reserved: u16, +} +impl ::core::marker::Copy for WINBIO_BDB_ANSI_381_HEADER {} +impl ::core::clone::Clone for WINBIO_BDB_ANSI_381_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_BDB_ANSI_381_RECORD { + pub BlockLength: u32, + pub HorizontalLineLength: u16, + pub VerticalLineLength: u16, + pub Position: u8, + pub CountOfViews: u8, + pub ViewNumber: u8, + pub ImageQuality: u8, + pub ImpressionType: u8, + pub Reserved: u8, +} +impl ::core::marker::Copy for WINBIO_BDB_ANSI_381_RECORD {} +impl ::core::clone::Clone for WINBIO_BDB_ANSI_381_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_BIR { + pub HeaderBlock: WINBIO_BIR_DATA, + pub StandardDataBlock: WINBIO_BIR_DATA, + pub VendorDataBlock: WINBIO_BIR_DATA, + pub SignatureBlock: WINBIO_BIR_DATA, +} +impl ::core::marker::Copy for WINBIO_BIR {} +impl ::core::clone::Clone for WINBIO_BIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_BIR_DATA { + pub Size: u32, + pub Offset: u32, +} +impl ::core::marker::Copy for WINBIO_BIR_DATA {} +impl ::core::clone::Clone for WINBIO_BIR_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_BIR_HEADER { + pub ValidFields: u16, + pub HeaderVersion: u8, + pub PatronHeaderVersion: u8, + pub DataFlags: u8, + pub Type: u32, + pub Subtype: u8, + pub Purpose: u8, + pub DataQuality: i8, + pub CreationDate: i64, + pub ValidityPeriod: WINBIO_BIR_HEADER_0, + pub BiometricDataFormat: WINBIO_REGISTERED_FORMAT, + pub ProductId: WINBIO_REGISTERED_FORMAT, +} +impl ::core::marker::Copy for WINBIO_BIR_HEADER {} +impl ::core::clone::Clone for WINBIO_BIR_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_BIR_HEADER_0 { + pub BeginDate: i64, + pub EndDate: i64, +} +impl ::core::marker::Copy for WINBIO_BIR_HEADER_0 {} +impl ::core::clone::Clone for WINBIO_BIR_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_BLANK_PAYLOAD { + pub PayloadSize: u32, + pub WinBioHresult: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for WINBIO_BLANK_PAYLOAD {} +impl ::core::clone::Clone for WINBIO_BLANK_PAYLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_BSP_SCHEMA { + pub BiometricFactor: u32, + pub BspId: ::windows_sys::core::GUID, + pub Description: [u16; 256], + pub Vendor: [u16; 256], + pub Version: WINBIO_VERSION, +} +impl ::core::marker::Copy for WINBIO_BSP_SCHEMA {} +impl ::core::clone::Clone for WINBIO_BSP_SCHEMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_CALIBRATION_INFO { + pub PayloadSize: u32, + pub WinBioHresult: ::windows_sys::core::HRESULT, + pub CalibrationData: WINBIO_DATA, +} +impl ::core::marker::Copy for WINBIO_CALIBRATION_INFO {} +impl ::core::clone::Clone for WINBIO_CALIBRATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_CAPTURE_DATA { + pub PayloadSize: u32, + pub WinBioHresult: ::windows_sys::core::HRESULT, + pub SensorStatus: u32, + pub RejectDetail: u32, + pub CaptureData: WINBIO_DATA, +} +impl ::core::marker::Copy for WINBIO_CAPTURE_DATA {} +impl ::core::clone::Clone for WINBIO_CAPTURE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_CAPTURE_PARAMETERS { + pub PayloadSize: u32, + pub Purpose: u8, + pub Format: WINBIO_REGISTERED_FORMAT, + pub VendorFormat: ::windows_sys::core::GUID, + pub Flags: u8, +} +impl ::core::marker::Copy for WINBIO_CAPTURE_PARAMETERS {} +impl ::core::clone::Clone for WINBIO_CAPTURE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_DATA { + pub Size: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for WINBIO_DATA {} +impl ::core::clone::Clone for WINBIO_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_DIAGNOSTICS { + pub PayloadSize: u32, + pub WinBioHresult: ::windows_sys::core::HRESULT, + pub SensorStatus: u32, + pub VendorDiagnostics: WINBIO_DATA, +} +impl ::core::marker::Copy for WINBIO_DIAGNOSTICS {} +impl ::core::clone::Clone for WINBIO_DIAGNOSTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_ENCRYPTED_CAPTURE_PARAMS { + pub PayloadSize: u32, + pub Purpose: u8, + pub Format: WINBIO_REGISTERED_FORMAT, + pub VendorFormat: ::windows_sys::core::GUID, + pub Flags: u8, + pub NonceSize: u32, +} +impl ::core::marker::Copy for WINBIO_ENCRYPTED_CAPTURE_PARAMS {} +impl ::core::clone::Clone for WINBIO_ENCRYPTED_CAPTURE_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct WINBIO_ENGINE_INTERFACE { + pub Version: WINBIO_ADAPTER_INTERFACE_VERSION, + pub Type: u32, + pub Size: usize, + pub AdapterId: ::windows_sys::core::GUID, + pub Attach: PIBIO_ENGINE_ATTACH_FN, + pub Detach: PIBIO_ENGINE_DETACH_FN, + pub ClearContext: PIBIO_ENGINE_CLEAR_CONTEXT_FN, + pub QueryPreferredFormat: PIBIO_ENGINE_QUERY_PREFERRED_FORMAT_FN, + pub QueryIndexVectorSize: PIBIO_ENGINE_QUERY_INDEX_VECTOR_SIZE_FN, + pub QueryHashAlgorithms: PIBIO_ENGINE_QUERY_HASH_ALGORITHMS_FN, + pub SetHashAlgorithm: PIBIO_ENGINE_SET_HASH_ALGORITHM_FN, + pub QuerySampleHint: PIBIO_ENGINE_QUERY_SAMPLE_HINT_FN, + pub AcceptSampleData: PIBIO_ENGINE_ACCEPT_SAMPLE_DATA_FN, + pub ExportEngineData: PIBIO_ENGINE_EXPORT_ENGINE_DATA_FN, + pub VerifyFeatureSet: PIBIO_ENGINE_VERIFY_FEATURE_SET_FN, + pub IdentifyFeatureSet: PIBIO_ENGINE_IDENTIFY_FEATURE_SET_FN, + pub CreateEnrollment: PIBIO_ENGINE_CREATE_ENROLLMENT_FN, + pub UpdateEnrollment: PIBIO_ENGINE_UPDATE_ENROLLMENT_FN, + pub GetEnrollmentStatus: PIBIO_ENGINE_GET_ENROLLMENT_STATUS_FN, + pub GetEnrollmentHash: PIBIO_ENGINE_GET_ENROLLMENT_HASH_FN, + pub CheckForDuplicate: PIBIO_ENGINE_CHECK_FOR_DUPLICATE_FN, + pub CommitEnrollment: PIBIO_ENGINE_COMMIT_ENROLLMENT_FN, + pub DiscardEnrollment: PIBIO_ENGINE_DISCARD_ENROLLMENT_FN, + pub ControlUnit: PIBIO_ENGINE_CONTROL_UNIT_FN, + pub ControlUnitPrivileged: PIBIO_ENGINE_CONTROL_UNIT_PRIVILEGED_FN, + pub NotifyPowerChange: PIBIO_ENGINE_NOTIFY_POWER_CHANGE_FN, + pub Reserved_1: PIBIO_ENGINE_RESERVED_1_FN, + pub PipelineInit: PIBIO_ENGINE_PIPELINE_INIT_FN, + pub PipelineCleanup: PIBIO_ENGINE_PIPELINE_CLEANUP_FN, + pub Activate: PIBIO_ENGINE_ACTIVATE_FN, + pub Deactivate: PIBIO_ENGINE_DEACTIVATE_FN, + pub QueryExtendedInfo: PIBIO_ENGINE_QUERY_EXTENDED_INFO_FN, + pub IdentifyAll: PIBIO_ENGINE_IDENTIFY_ALL_FN, + pub SetEnrollmentSelector: PIBIO_ENGINE_SET_ENROLLMENT_SELECTOR_FN, + pub SetEnrollmentParameters: PIBIO_ENGINE_SET_ENROLLMENT_PARAMETERS_FN, + pub QueryExtendedEnrollmentStatus: PIBIO_ENGINE_QUERY_EXTENDED_ENROLLMENT_STATUS_FN, + pub RefreshCache: PIBIO_ENGINE_REFRESH_CACHE_FN, + pub SelectCalibrationFormat: PIBIO_ENGINE_SELECT_CALIBRATION_FORMAT_FN, + pub QueryCalibrationData: PIBIO_ENGINE_QUERY_CALIBRATION_DATA_FN, + pub SetAccountPolicy: PIBIO_ENGINE_SET_ACCOUNT_POLICY_FN, + pub CreateKey: PIBIO_ENGINE_CREATE_KEY_FN, + pub IdentifyFeatureSetSecure: PIBIO_ENGINE_IDENTIFY_FEATURE_SET_SECURE_FN, + pub AcceptPrivateSensorTypeInfo: PIBIO_ENGINE_ACCEPT_PRIVATE_SENSOR_TYPE_INFO_FN, + pub CreateEnrollmentAuthenticated: PIBIO_ENGINE_CREATE_ENROLLMENT_AUTHENTICATED_FN, + pub IdentifyFeatureSetAuthenticated: PIBIO_ENGINE_IDENTIFY_FEATURE_SET_AUTHENTICATED_FN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for WINBIO_ENGINE_INTERFACE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for WINBIO_ENGINE_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EVENT { + pub Type: u32, + pub Parameters: WINBIO_EVENT_0, +} +impl ::core::marker::Copy for WINBIO_EVENT {} +impl ::core::clone::Clone for WINBIO_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WINBIO_EVENT_0 { + pub Unclaimed: WINBIO_EVENT_0_2, + pub UnclaimedIdentify: WINBIO_EVENT_0_1, + pub Error: WINBIO_EVENT_0_0, +} +impl ::core::marker::Copy for WINBIO_EVENT_0 {} +impl ::core::clone::Clone for WINBIO_EVENT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EVENT_0_0 { + pub ErrorCode: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for WINBIO_EVENT_0_0 {} +impl ::core::clone::Clone for WINBIO_EVENT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EVENT_0_1 { + pub UnitId: u32, + pub Identity: WINBIO_IDENTITY, + pub SubFactor: u8, + pub RejectDetail: u32, +} +impl ::core::marker::Copy for WINBIO_EVENT_0_1 {} +impl ::core::clone::Clone for WINBIO_EVENT_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EVENT_0_2 { + pub UnitId: u32, + pub RejectDetail: u32, +} +impl ::core::marker::Copy for WINBIO_EVENT_0_2 {} +impl ::core::clone::Clone for WINBIO_EVENT_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_ENGINE_INFO { + pub GenericEngineCapabilities: u32, + pub Factor: u32, + pub Specific: WINBIO_EXTENDED_ENGINE_INFO_0, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_ENGINE_INFO {} +impl ::core::clone::Clone for WINBIO_EXTENDED_ENGINE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WINBIO_EXTENDED_ENGINE_INFO_0 { + pub Null: u32, + pub FacialFeatures: WINBIO_EXTENDED_ENGINE_INFO_0_0, + pub Fingerprint: WINBIO_EXTENDED_ENGINE_INFO_0_1, + pub Iris: WINBIO_EXTENDED_ENGINE_INFO_0_2, + pub Voice: WINBIO_EXTENDED_ENGINE_INFO_0_3, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_ENGINE_INFO_0 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_ENGINE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_ENGINE_INFO_0_0 { + pub Capabilities: u32, + pub EnrollmentRequirements: WINBIO_EXTENDED_ENGINE_INFO_0_0_0, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_ENGINE_INFO_0_0 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_ENGINE_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_ENGINE_INFO_0_0_0 { + pub Null: u32, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_ENGINE_INFO_0_0_0 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_ENGINE_INFO_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_ENGINE_INFO_0_1 { + pub Capabilities: u32, + pub EnrollmentRequirements: WINBIO_EXTENDED_ENGINE_INFO_0_1_0, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_ENGINE_INFO_0_1 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_ENGINE_INFO_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_ENGINE_INFO_0_1_0 { + pub GeneralSamples: u32, + pub Center: u32, + pub TopEdge: u32, + pub BottomEdge: u32, + pub LeftEdge: u32, + pub RightEdge: u32, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_ENGINE_INFO_0_1_0 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_ENGINE_INFO_0_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_ENGINE_INFO_0_2 { + pub Capabilities: u32, + pub EnrollmentRequirements: WINBIO_EXTENDED_ENGINE_INFO_0_2_0, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_ENGINE_INFO_0_2 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_ENGINE_INFO_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_ENGINE_INFO_0_2_0 { + pub Null: u32, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_ENGINE_INFO_0_2_0 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_ENGINE_INFO_0_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_ENGINE_INFO_0_3 { + pub Capabilities: u32, + pub EnrollmentRequirements: WINBIO_EXTENDED_ENGINE_INFO_0_3_0, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_ENGINE_INFO_0_3 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_ENGINE_INFO_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_ENGINE_INFO_0_3_0 { + pub Null: u32, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_ENGINE_INFO_0_3_0 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_ENGINE_INFO_0_3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_ENROLLMENT_PARAMETERS { + pub Size: usize, + pub SubFactor: u8, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_ENROLLMENT_PARAMETERS {} +impl ::core::clone::Clone for WINBIO_EXTENDED_ENROLLMENT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_EXTENDED_ENROLLMENT_STATUS { + pub TemplateStatus: ::windows_sys::core::HRESULT, + pub RejectDetail: u32, + pub PercentComplete: u32, + pub Factor: u32, + pub SubFactor: u8, + pub Specific: WINBIO_EXTENDED_ENROLLMENT_STATUS_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_ENROLLMENT_STATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_ENROLLMENT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WINBIO_EXTENDED_ENROLLMENT_STATUS_0 { + pub Null: u32, + pub FacialFeatures: WINBIO_EXTENDED_ENROLLMENT_STATUS_0_0, + pub Fingerprint: WINBIO_EXTENDED_ENROLLMENT_STATUS_0_1, + pub Iris: WINBIO_EXTENDED_ENROLLMENT_STATUS_0_2, + pub Voice: WINBIO_EXTENDED_ENROLLMENT_STATUS_0_3, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_ENROLLMENT_STATUS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_ENROLLMENT_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_EXTENDED_ENROLLMENT_STATUS_0_0 { + pub BoundingBox: super::super::Foundation::RECT, + pub Distance: i32, + pub OpaqueEngineData: WINBIO_EXTENDED_ENROLLMENT_STATUS_0_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_ENROLLMENT_STATUS_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_ENROLLMENT_STATUS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_EXTENDED_ENROLLMENT_STATUS_0_0_0 { + pub AdapterId: ::windows_sys::core::GUID, + pub Data: [u32; 78], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_ENROLLMENT_STATUS_0_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_ENROLLMENT_STATUS_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_EXTENDED_ENROLLMENT_STATUS_0_1 { + pub GeneralSamples: u32, + pub Center: u32, + pub TopEdge: u32, + pub BottomEdge: u32, + pub LeftEdge: u32, + pub RightEdge: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_ENROLLMENT_STATUS_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_ENROLLMENT_STATUS_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_EXTENDED_ENROLLMENT_STATUS_0_2 { + pub EyeBoundingBox_1: super::super::Foundation::RECT, + pub EyeBoundingBox_2: super::super::Foundation::RECT, + pub PupilCenter_1: super::super::Foundation::POINT, + pub PupilCenter_2: super::super::Foundation::POINT, + pub Distance: i32, + pub GridPointCompletionPercent: u32, + pub GridPointIndex: u16, + pub Point3D: WINBIO_EXTENDED_ENROLLMENT_STATUS_0_2_0, + pub StopCaptureAndShowCriticalFeedback: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_ENROLLMENT_STATUS_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_ENROLLMENT_STATUS_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_EXTENDED_ENROLLMENT_STATUS_0_2_0 { + pub X: f64, + pub Y: f64, + pub Z: f64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_ENROLLMENT_STATUS_0_2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_ENROLLMENT_STATUS_0_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_EXTENDED_ENROLLMENT_STATUS_0_3 { + pub Reserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_ENROLLMENT_STATUS_0_3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_ENROLLMENT_STATUS_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_EXTENDED_SENSOR_INFO { + pub GenericSensorCapabilities: u32, + pub Factor: u32, + pub Specific: WINBIO_EXTENDED_SENSOR_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_SENSOR_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_SENSOR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WINBIO_EXTENDED_SENSOR_INFO_0 { + pub Null: u32, + pub FacialFeatures: WINBIO_EXTENDED_SENSOR_INFO_0_0, + pub Fingerprint: WINBIO_EXTENDED_SENSOR_INFO_0_1, + pub Iris: WINBIO_EXTENDED_SENSOR_INFO_0_2, + pub Voice: WINBIO_EXTENDED_SENSOR_INFO_0_3, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_SENSOR_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_SENSOR_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_EXTENDED_SENSOR_INFO_0_0 { + pub FrameSize: super::super::Foundation::RECT, + pub FrameOffset: super::super::Foundation::POINT, + pub MandatoryOrientation: u32, + pub HardwareInfo: WINBIO_EXTENDED_SENSOR_INFO_0_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_SENSOR_INFO_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_SENSOR_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_EXTENDED_SENSOR_INFO_0_0_0 { + pub ColorSensorId: [u16; 260], + pub InfraredSensorId: [u16; 260], + pub InfraredSensorRotationAngle: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_SENSOR_INFO_0_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_SENSOR_INFO_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_EXTENDED_SENSOR_INFO_0_1 { + pub Reserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_SENSOR_INFO_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_SENSOR_INFO_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_EXTENDED_SENSOR_INFO_0_2 { + pub FrameSize: super::super::Foundation::RECT, + pub FrameOffset: super::super::Foundation::POINT, + pub MandatoryOrientation: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_SENSOR_INFO_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_SENSOR_INFO_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_EXTENDED_SENSOR_INFO_0_3 { + pub Reserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_EXTENDED_SENSOR_INFO_0_3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_EXTENDED_SENSOR_INFO_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_STORAGE_INFO { + pub GenericStorageCapabilities: u32, + pub Factor: u32, + pub Specific: WINBIO_EXTENDED_STORAGE_INFO_0, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_STORAGE_INFO {} +impl ::core::clone::Clone for WINBIO_EXTENDED_STORAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WINBIO_EXTENDED_STORAGE_INFO_0 { + pub Null: u32, + pub FacialFeatures: WINBIO_EXTENDED_STORAGE_INFO_0_0, + pub Fingerprint: WINBIO_EXTENDED_STORAGE_INFO_0_1, + pub Iris: WINBIO_EXTENDED_STORAGE_INFO_0_2, + pub Voice: WINBIO_EXTENDED_STORAGE_INFO_0_3, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_STORAGE_INFO_0 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_STORAGE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_STORAGE_INFO_0_0 { + pub Capabilities: u32, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_STORAGE_INFO_0_0 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_STORAGE_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_STORAGE_INFO_0_1 { + pub Capabilities: u32, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_STORAGE_INFO_0_1 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_STORAGE_INFO_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_STORAGE_INFO_0_2 { + pub Capabilities: u32, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_STORAGE_INFO_0_2 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_STORAGE_INFO_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_STORAGE_INFO_0_3 { + pub Capabilities: u32, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_STORAGE_INFO_0_3 {} +impl ::core::clone::Clone for WINBIO_EXTENDED_STORAGE_INFO_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_EXTENDED_UNIT_STATUS { + pub Availability: u32, + pub ReasonCode: u32, +} +impl ::core::marker::Copy for WINBIO_EXTENDED_UNIT_STATUS {} +impl ::core::clone::Clone for WINBIO_EXTENDED_UNIT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_FP_BU_STATE { + pub SensorAttached: super::super::Foundation::BOOL, + pub CreationResult: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_FP_BU_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_FP_BU_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct WINBIO_FRAMEWORK_INTERFACE { + pub Version: WINBIO_ADAPTER_INTERFACE_VERSION, + pub Type: u32, + pub Size: usize, + pub AdapterId: ::windows_sys::core::GUID, + pub SetUnitStatus: PIBIO_FRAMEWORK_SET_UNIT_STATUS_FN, + pub VsmStorageAttach: PIBIO_STORAGE_ATTACH_FN, + pub VsmStorageDetach: PIBIO_STORAGE_DETACH_FN, + pub VsmStorageClearContext: PIBIO_STORAGE_CLEAR_CONTEXT_FN, + pub VsmStorageCreateDatabase: PIBIO_STORAGE_CREATE_DATABASE_FN, + pub VsmStorageOpenDatabase: PIBIO_STORAGE_OPEN_DATABASE_FN, + pub VsmStorageCloseDatabase: PIBIO_STORAGE_CLOSE_DATABASE_FN, + pub VsmStorageDeleteRecord: PIBIO_STORAGE_DELETE_RECORD_FN, + pub VsmStorageNotifyPowerChange: PIBIO_STORAGE_NOTIFY_POWER_CHANGE_FN, + pub VsmStoragePipelineInit: PIBIO_STORAGE_PIPELINE_INIT_FN, + pub VsmStoragePipelineCleanup: PIBIO_STORAGE_PIPELINE_CLEANUP_FN, + pub VsmStorageActivate: PIBIO_STORAGE_ACTIVATE_FN, + pub VsmStorageDeactivate: PIBIO_STORAGE_DEACTIVATE_FN, + pub VsmStorageQueryExtendedInfo: PIBIO_STORAGE_QUERY_EXTENDED_INFO_FN, + pub VsmStorageCacheClear: PIBIO_FRAMEWORK_VSM_CACHE_CLEAR_FN, + pub VsmStorageCacheImportBegin: PIBIO_FRAMEWORK_VSM_CACHE_IMPORT_BEGIN_FN, + pub VsmStorageCacheImportNext: PIBIO_FRAMEWORK_VSM_CACHE_IMPORT_NEXT_FN, + pub VsmStorageCacheImportEnd: PIBIO_FRAMEWORK_VSM_CACHE_IMPORT_END_FN, + pub VsmStorageCacheExportBegin: PIBIO_FRAMEWORK_VSM_CACHE_EXPORT_BEGIN_FN, + pub VsmStorageCacheExportNext: PIBIO_FRAMEWORK_VSM_CACHE_EXPORT_NEXT_FN, + pub VsmStorageCacheExportEnd: PIBIO_FRAMEWORK_VSM_CACHE_EXPORT_END_FN, + pub VsmSensorAttach: PIBIO_SENSOR_ATTACH_FN, + pub VsmSensorDetach: PIBIO_SENSOR_DETACH_FN, + pub VsmSensorClearContext: PIBIO_SENSOR_CLEAR_CONTEXT_FN, + pub VsmSensorPushDataToEngine: PIBIO_SENSOR_PUSH_DATA_TO_ENGINE_FN, + pub VsmSensorNotifyPowerChange: PIBIO_SENSOR_NOTIFY_POWER_CHANGE_FN, + pub VsmSensorPipelineInit: PIBIO_SENSOR_PIPELINE_INIT_FN, + pub VsmSensorPipelineCleanup: PIBIO_SENSOR_PIPELINE_CLEANUP_FN, + pub VsmSensorActivate: PIBIO_SENSOR_ACTIVATE_FN, + pub VsmSensorDeactivate: PIBIO_SENSOR_DEACTIVATE_FN, + pub VsmSensorAsyncImportRawBuffer: PIBIO_SENSOR_ASYNC_IMPORT_RAW_BUFFER_FN, + pub VsmSensorAsyncImportSecureBuffer: PIBIO_SENSOR_ASYNC_IMPORT_SECURE_BUFFER_FN, + pub Reserved1: PIBIO_FRAMEWORK_VSM_STORAGE_RESERVED_1_FN, + pub Reserved2: PIBIO_FRAMEWORK_VSM_STORAGE_RESERVED_2_FN, + pub Reserved3: PIBIO_FRAMEWORK_VSM_STORAGE_RESERVED_3_FN, + pub Reserved4: PIBIO_STORAGE_RESERVED_1_FN, + pub Reserved5: PIBIO_STORAGE_RESERVED_2_FN, + pub AllocateMemory: PIBIO_FRAMEWORK_ALLOCATE_MEMORY_FN, + pub FreeMemory: PIBIO_FRAMEWORK_FREE_MEMORY_FN, + pub GetProperty: PIBIO_FRAMEWORK_GET_PROPERTY_FN, + pub LockAndValidateSecureBuffer: PIBIO_FRAMEWORK_LOCK_AND_VALIDATE_SECURE_BUFFER_FN, + pub ReleaseSecureBuffer: PIBIO_FRAMEWORK_RELEASE_SECURE_BUFFER_FN, + pub QueryAuthorizedEnrollments: PIBIO_FRAMEWORK_VSM_QUERY_AUTHORIZED_ENROLLMENTS_FN, + pub DecryptSample: PIBIO_FRAMEWORK_VSM_DECRYPT_SAMPLE_FN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for WINBIO_FRAMEWORK_INTERFACE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for WINBIO_FRAMEWORK_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_GESTURE_METADATA { + pub Size: usize, + pub BiometricType: u32, + pub MatchType: u32, + pub ProtectionType: u32, +} +impl ::core::marker::Copy for WINBIO_GESTURE_METADATA {} +impl ::core::clone::Clone for WINBIO_GESTURE_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_GET_INDICATOR { + pub PayloadSize: u32, + pub WinBioHresult: ::windows_sys::core::HRESULT, + pub IndicatorStatus: u32, +} +impl ::core::marker::Copy for WINBIO_GET_INDICATOR {} +impl ::core::clone::Clone for WINBIO_GET_INDICATOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_IDENTITY { + pub Type: u32, + pub Value: WINBIO_IDENTITY_0, +} +impl ::core::marker::Copy for WINBIO_IDENTITY {} +impl ::core::clone::Clone for WINBIO_IDENTITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WINBIO_IDENTITY_0 { + pub Null: u32, + pub Wildcard: u32, + pub TemplateGuid: ::windows_sys::core::GUID, + pub AccountSid: WINBIO_IDENTITY_0_0, + pub SecureId: [u8; 32], +} +impl ::core::marker::Copy for WINBIO_IDENTITY_0 {} +impl ::core::clone::Clone for WINBIO_IDENTITY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_IDENTITY_0_0 { + pub Size: u32, + pub Data: [u8; 68], +} +impl ::core::marker::Copy for WINBIO_IDENTITY_0_0 {} +impl ::core::clone::Clone for WINBIO_IDENTITY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_NOTIFY_WAKE { + pub PayloadSize: u32, + pub WinBioHresult: ::windows_sys::core::HRESULT, + pub Reason: u32, +} +impl ::core::marker::Copy for WINBIO_NOTIFY_WAKE {} +impl ::core::clone::Clone for WINBIO_NOTIFY_WAKE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct WINBIO_PIPELINE { + pub SensorHandle: super::super::Foundation::HANDLE, + pub EngineHandle: super::super::Foundation::HANDLE, + pub StorageHandle: super::super::Foundation::HANDLE, + pub SensorInterface: *mut WINBIO_SENSOR_INTERFACE, + pub EngineInterface: *mut WINBIO_ENGINE_INTERFACE, + pub StorageInterface: *mut WINBIO_STORAGE_INTERFACE, + pub SensorContext: *mut WINIBIO_SENSOR_CONTEXT, + pub EngineContext: *mut WINIBIO_ENGINE_CONTEXT, + pub StorageContext: *mut WINIBIO_STORAGE_CONTEXT, + pub FrameworkInterface: *mut WINBIO_FRAMEWORK_INTERFACE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for WINBIO_PIPELINE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for WINBIO_PIPELINE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_PRESENCE { + pub Factor: u32, + pub SubFactor: u8, + pub Status: ::windows_sys::core::HRESULT, + pub RejectDetail: u32, + pub Identity: WINBIO_IDENTITY, + pub TrackingId: u64, + pub Ticket: u64, + pub Properties: WINBIO_PRESENCE_PROPERTIES, + pub Authorization: WINBIO_PRESENCE_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_PRESENCE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_PRESENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_PRESENCE_0 { + pub Size: u32, + pub Data: [u8; 32], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_PRESENCE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_PRESENCE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WINBIO_PRESENCE_PROPERTIES { + pub FacialFeatures: WINBIO_PRESENCE_PROPERTIES_0, + pub Iris: WINBIO_PRESENCE_PROPERTIES_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_PRESENCE_PROPERTIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_PRESENCE_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_PRESENCE_PROPERTIES_0 { + pub BoundingBox: super::super::Foundation::RECT, + pub Distance: i32, + pub OpaqueEngineData: WINBIO_PRESENCE_PROPERTIES_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_PRESENCE_PROPERTIES_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_PRESENCE_PROPERTIES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_PRESENCE_PROPERTIES_0_0 { + pub AdapterId: ::windows_sys::core::GUID, + pub Data: [u32; 78], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_PRESENCE_PROPERTIES_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_PRESENCE_PROPERTIES_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINBIO_PRESENCE_PROPERTIES_1 { + pub EyeBoundingBox_1: super::super::Foundation::RECT, + pub EyeBoundingBox_2: super::super::Foundation::RECT, + pub PupilCenter_1: super::super::Foundation::POINT, + pub PupilCenter_2: super::super::Foundation::POINT, + pub Distance: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINBIO_PRESENCE_PROPERTIES_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINBIO_PRESENCE_PROPERTIES_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_PRIVATE_SENSOR_TYPE_INFO { + pub PayloadSize: u32, + pub WinBioHresult: ::windows_sys::core::HRESULT, + pub PrivateSensorTypeInfo: WINBIO_DATA, +} +impl ::core::marker::Copy for WINBIO_PRIVATE_SENSOR_TYPE_INFO {} +impl ::core::clone::Clone for WINBIO_PRIVATE_SENSOR_TYPE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_PROTECTION_POLICY { + pub Version: u32, + pub Identity: WINBIO_IDENTITY, + pub DatabaseId: ::windows_sys::core::GUID, + pub UserState: u64, + pub PolicySize: usize, + pub Policy: [u8; 128], +} +impl ::core::marker::Copy for WINBIO_PROTECTION_POLICY {} +impl ::core::clone::Clone for WINBIO_PROTECTION_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_REGISTERED_FORMAT { + pub Owner: u16, + pub Type: u16, +} +impl ::core::marker::Copy for WINBIO_REGISTERED_FORMAT {} +impl ::core::clone::Clone for WINBIO_REGISTERED_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_SECURE_BUFFER_HEADER_V1 { + pub Type: u32, + pub Size: u32, + pub Flags: u32, + pub ValidationTag: u64, +} +impl ::core::marker::Copy for WINBIO_SECURE_BUFFER_HEADER_V1 {} +impl ::core::clone::Clone for WINBIO_SECURE_BUFFER_HEADER_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_SECURE_CONNECTION_DATA { + pub Size: u32, + pub Version: u16, + pub Flags: u16, + pub ModelCertificateSize: u32, + pub IntermediateCA1Size: u32, + pub IntermediateCA2Size: u32, +} +impl ::core::marker::Copy for WINBIO_SECURE_CONNECTION_DATA {} +impl ::core::clone::Clone for WINBIO_SECURE_CONNECTION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_SECURE_CONNECTION_PARAMS { + pub PayloadSize: u32, + pub Version: u16, + pub Flags: u16, +} +impl ::core::marker::Copy for WINBIO_SECURE_CONNECTION_PARAMS {} +impl ::core::clone::Clone for WINBIO_SECURE_CONNECTION_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_SENSOR_ATTRIBUTES { + pub PayloadSize: u32, + pub WinBioHresult: ::windows_sys::core::HRESULT, + pub WinBioVersion: WINBIO_VERSION, + pub SensorType: u32, + pub SensorSubType: u32, + pub Capabilities: u32, + pub ManufacturerName: [u16; 256], + pub ModelName: [u16; 256], + pub SerialNumber: [u16; 256], + pub FirmwareVersion: WINBIO_VERSION, + pub SupportedFormatEntries: u32, + pub SupportedFormat: [WINBIO_REGISTERED_FORMAT; 1], +} +impl ::core::marker::Copy for WINBIO_SENSOR_ATTRIBUTES {} +impl ::core::clone::Clone for WINBIO_SENSOR_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct WINBIO_SENSOR_INTERFACE { + pub Version: WINBIO_ADAPTER_INTERFACE_VERSION, + pub Type: u32, + pub Size: usize, + pub AdapterId: ::windows_sys::core::GUID, + pub Attach: PIBIO_SENSOR_ATTACH_FN, + pub Detach: PIBIO_SENSOR_DETACH_FN, + pub ClearContext: PIBIO_SENSOR_CLEAR_CONTEXT_FN, + pub QueryStatus: PIBIO_SENSOR_QUERY_STATUS_FN, + pub Reset: PIBIO_SENSOR_RESET_FN, + pub SetMode: PIBIO_SENSOR_SET_MODE_FN, + pub SetIndicatorStatus: PIBIO_SENSOR_SET_INDICATOR_STATUS_FN, + pub GetIndicatorStatus: PIBIO_SENSOR_GET_INDICATOR_STATUS_FN, + pub StartCapture: PIBIO_SENSOR_START_CAPTURE_FN, + pub FinishCapture: PIBIO_SENSOR_FINISH_CAPTURE_FN, + pub ExportSensorData: PIBIO_SENSOR_EXPORT_SENSOR_DATA_FN, + pub Cancel: PIBIO_SENSOR_CANCEL_FN, + pub PushDataToEngine: PIBIO_SENSOR_PUSH_DATA_TO_ENGINE_FN, + pub ControlUnit: PIBIO_SENSOR_CONTROL_UNIT_FN, + pub ControlUnitPrivileged: PIBIO_SENSOR_CONTROL_UNIT_PRIVILEGED_FN, + pub NotifyPowerChange: PIBIO_SENSOR_NOTIFY_POWER_CHANGE_FN, + pub PipelineInit: PIBIO_SENSOR_PIPELINE_INIT_FN, + pub PipelineCleanup: PIBIO_SENSOR_PIPELINE_CLEANUP_FN, + pub Activate: PIBIO_SENSOR_ACTIVATE_FN, + pub Deactivate: PIBIO_SENSOR_DEACTIVATE_FN, + pub QueryExtendedInfo: PIBIO_SENSOR_QUERY_EXTENDED_INFO_FN, + pub QueryCalibrationFormats: PIBIO_SENSOR_QUERY_CALIBRATION_FORMATS_FN, + pub SetCalibrationFormat: PIBIO_SENSOR_SET_CALIBRATION_FORMAT_FN, + pub AcceptCalibrationData: PIBIO_SENSOR_ACCEPT_CALIBRATION_DATA_FN, + pub AsyncImportRawBuffer: PIBIO_SENSOR_ASYNC_IMPORT_RAW_BUFFER_FN, + pub AsyncImportSecureBuffer: PIBIO_SENSOR_ASYNC_IMPORT_SECURE_BUFFER_FN, + pub QueryPrivateSensorType: PIBIO_SENSOR_QUERY_PRIVATE_SENSOR_TYPE_FN, + pub ConnectSecure: PIBIO_SENSOR_CONNECT_SECURE_FN, + pub StartCaptureEx: PIBIO_SENSOR_START_CAPTURE_EX_FN, + pub StartNotifyWake: PIBIO_SENSOR_START_NOTIFY_WAKE_FN, + pub FinishNotifyWake: PIBIO_SENSOR_FINISH_NOTIFY_WAKE_FN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for WINBIO_SENSOR_INTERFACE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for WINBIO_SENSOR_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_SET_INDICATOR { + pub PayloadSize: u32, + pub IndicatorStatus: u32, +} +impl ::core::marker::Copy for WINBIO_SET_INDICATOR {} +impl ::core::clone::Clone for WINBIO_SET_INDICATOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct WINBIO_STORAGE_INTERFACE { + pub Version: WINBIO_ADAPTER_INTERFACE_VERSION, + pub Type: u32, + pub Size: usize, + pub AdapterId: ::windows_sys::core::GUID, + pub Attach: PIBIO_STORAGE_ATTACH_FN, + pub Detach: PIBIO_STORAGE_DETACH_FN, + pub ClearContext: PIBIO_STORAGE_CLEAR_CONTEXT_FN, + pub CreateDatabase: PIBIO_STORAGE_CREATE_DATABASE_FN, + pub EraseDatabase: PIBIO_STORAGE_ERASE_DATABASE_FN, + pub OpenDatabase: PIBIO_STORAGE_OPEN_DATABASE_FN, + pub CloseDatabase: PIBIO_STORAGE_CLOSE_DATABASE_FN, + pub GetDataFormat: PIBIO_STORAGE_GET_DATA_FORMAT_FN, + pub GetDatabaseSize: PIBIO_STORAGE_GET_DATABASE_SIZE_FN, + pub AddRecord: PIBIO_STORAGE_ADD_RECORD_FN, + pub DeleteRecord: PIBIO_STORAGE_DELETE_RECORD_FN, + pub QueryBySubject: PIBIO_STORAGE_QUERY_BY_SUBJECT_FN, + pub QueryByContent: PIBIO_STORAGE_QUERY_BY_CONTENT_FN, + pub GetRecordCount: PIBIO_STORAGE_GET_RECORD_COUNT_FN, + pub FirstRecord: PIBIO_STORAGE_FIRST_RECORD_FN, + pub NextRecord: PIBIO_STORAGE_NEXT_RECORD_FN, + pub GetCurrentRecord: PIBIO_STORAGE_GET_CURRENT_RECORD_FN, + pub ControlUnit: PIBIO_STORAGE_CONTROL_UNIT_FN, + pub ControlUnitPrivileged: PIBIO_STORAGE_CONTROL_UNIT_PRIVILEGED_FN, + pub NotifyPowerChange: PIBIO_STORAGE_NOTIFY_POWER_CHANGE_FN, + pub PipelineInit: PIBIO_STORAGE_PIPELINE_INIT_FN, + pub PipelineCleanup: PIBIO_STORAGE_PIPELINE_CLEANUP_FN, + pub Activate: PIBIO_STORAGE_ACTIVATE_FN, + pub Deactivate: PIBIO_STORAGE_DEACTIVATE_FN, + pub QueryExtendedInfo: PIBIO_STORAGE_QUERY_EXTENDED_INFO_FN, + pub NotifyDatabaseChange: PIBIO_STORAGE_NOTIFY_DATABASE_CHANGE_FN, + pub Reserved1: PIBIO_STORAGE_RESERVED_1_FN, + pub Reserved2: PIBIO_STORAGE_RESERVED_2_FN, + pub UpdateRecordBegin: PIBIO_STORAGE_UPDATE_RECORD_BEGIN_FN, + pub UpdateRecordCommit: PIBIO_STORAGE_UPDATE_RECORD_COMMIT_FN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for WINBIO_STORAGE_INTERFACE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for WINBIO_STORAGE_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_STORAGE_RECORD { + pub Identity: *mut WINBIO_IDENTITY, + pub SubFactor: u8, + pub IndexVector: *mut u32, + pub IndexElementCount: usize, + pub TemplateBlob: *mut u8, + pub TemplateBlobSize: usize, + pub PayloadBlob: *mut u8, + pub PayloadBlobSize: usize, +} +impl ::core::marker::Copy for WINBIO_STORAGE_RECORD {} +impl ::core::clone::Clone for WINBIO_STORAGE_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_STORAGE_SCHEMA { + pub BiometricFactor: u32, + pub DatabaseId: ::windows_sys::core::GUID, + pub DataFormat: ::windows_sys::core::GUID, + pub Attributes: u32, + pub FilePath: [u16; 256], + pub ConnectionString: [u16; 256], +} +impl ::core::marker::Copy for WINBIO_STORAGE_SCHEMA {} +impl ::core::clone::Clone for WINBIO_STORAGE_SCHEMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_SUPPORTED_ALGORITHMS { + pub PayloadSize: u32, + pub WinBioHresult: ::windows_sys::core::HRESULT, + pub NumberOfAlgorithms: u32, + pub AlgorithmData: WINBIO_DATA, +} +impl ::core::marker::Copy for WINBIO_SUPPORTED_ALGORITHMS {} +impl ::core::clone::Clone for WINBIO_SUPPORTED_ALGORITHMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_UNIT_SCHEMA { + pub UnitId: u32, + pub PoolType: u32, + pub BiometricFactor: u32, + pub SensorSubType: u32, + pub Capabilities: u32, + pub DeviceInstanceId: [u16; 256], + pub Description: [u16; 256], + pub Manufacturer: [u16; 256], + pub Model: [u16; 256], + pub SerialNumber: [u16; 256], + pub FirmwareVersion: WINBIO_VERSION, +} +impl ::core::marker::Copy for WINBIO_UNIT_SCHEMA {} +impl ::core::clone::Clone for WINBIO_UNIT_SCHEMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_UPDATE_FIRMWARE { + pub PayloadSize: u32, + pub FirmwareData: WINBIO_DATA, +} +impl ::core::marker::Copy for WINBIO_UPDATE_FIRMWARE {} +impl ::core::clone::Clone for WINBIO_UPDATE_FIRMWARE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINBIO_VERSION { + pub MajorVersion: u32, + pub MinorVersion: u32, +} +impl ::core::marker::Copy for WINBIO_VERSION {} +impl ::core::clone::Clone for WINBIO_VERSION { + fn clone(&self) -> Self { + *self + } +} +pub type WINIBIO_ENGINE_CONTEXT = isize; +pub type WINIBIO_SENSOR_CONTEXT = isize; +pub type WINIBIO_STORAGE_CONTEXT = isize; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_ACCEPT_PRIVATE_SENSOR_TYPE_INFO_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_ACCEPT_SAMPLE_DATA_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_ACTIVATE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_ATTACH_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_CHECK_FOR_DUPLICATE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_CLEAR_CONTEXT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_COMMIT_ENROLLMENT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_CONTROL_UNIT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_CONTROL_UNIT_PRIVILEGED_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_CREATE_ENROLLMENT_AUTHENTICATED_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_CREATE_ENROLLMENT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_CREATE_KEY_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_DEACTIVATE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_DETACH_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_DISCARD_ENROLLMENT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_EXPORT_ENGINE_DATA_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_GET_ENROLLMENT_HASH_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_GET_ENROLLMENT_STATUS_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_IDENTIFY_ALL_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_IDENTIFY_FEATURE_SET_AUTHENTICATED_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_IDENTIFY_FEATURE_SET_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_IDENTIFY_FEATURE_SET_SECURE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_NOTIFY_POWER_CHANGE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_PIPELINE_CLEANUP_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_PIPELINE_INIT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_QUERY_CALIBRATION_DATA_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_QUERY_EXTENDED_ENROLLMENT_STATUS_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_QUERY_EXTENDED_INFO_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_QUERY_HASH_ALGORITHMS_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_QUERY_INDEX_VECTOR_SIZE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_QUERY_PREFERRED_FORMAT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_QUERY_SAMPLE_HINT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_REFRESH_CACHE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_RESERVED_1_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_SELECT_CALIBRATION_FORMAT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_SET_ACCOUNT_POLICY_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_SET_ENROLLMENT_PARAMETERS_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_SET_ENROLLMENT_SELECTOR_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_SET_HASH_ALGORITHM_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_UPDATE_ENROLLMENT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_ENGINE_VERIFY_FEATURE_SET_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_ALLOCATE_MEMORY_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_FREE_MEMORY_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_GET_PROPERTY_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_LOCK_AND_VALIDATE_SECURE_BUFFER_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_RELEASE_SECURE_BUFFER_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_SET_UNIT_STATUS_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_VSM_CACHE_CLEAR_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_VSM_CACHE_EXPORT_BEGIN_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_VSM_CACHE_EXPORT_END_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_VSM_CACHE_EXPORT_NEXT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_VSM_CACHE_IMPORT_BEGIN_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_VSM_CACHE_IMPORT_END_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_VSM_CACHE_IMPORT_NEXT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_VSM_DECRYPT_SAMPLE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_VSM_QUERY_AUTHORIZED_ENROLLMENTS_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_VSM_STORAGE_RESERVED_1_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_VSM_STORAGE_RESERVED_2_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_FRAMEWORK_VSM_STORAGE_RESERVED_3_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_ACCEPT_CALIBRATION_DATA_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_ACTIVATE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_ASYNC_IMPORT_RAW_BUFFER_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_ASYNC_IMPORT_SECURE_BUFFER_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_ATTACH_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_CANCEL_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_CLEAR_CONTEXT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_CONNECT_SECURE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_CONTROL_UNIT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_CONTROL_UNIT_PRIVILEGED_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_DEACTIVATE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_DETACH_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_EXPORT_SENSOR_DATA_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_FINISH_CAPTURE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_FINISH_NOTIFY_WAKE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_GET_INDICATOR_STATUS_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_NOTIFY_POWER_CHANGE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_PIPELINE_CLEANUP_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_PIPELINE_INIT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_PUSH_DATA_TO_ENGINE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_QUERY_CALIBRATION_FORMATS_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_QUERY_EXTENDED_INFO_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_QUERY_PRIVATE_SENSOR_TYPE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_QUERY_STATUS_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_RESET_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_SET_CALIBRATION_FORMAT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_SET_INDICATOR_STATUS_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_SET_MODE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_START_CAPTURE_EX_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_START_CAPTURE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_SENSOR_START_NOTIFY_WAKE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_ACTIVATE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_ADD_RECORD_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_ATTACH_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_CLEAR_CONTEXT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_CLOSE_DATABASE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_CONTROL_UNIT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_CONTROL_UNIT_PRIVILEGED_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_CREATE_DATABASE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_DEACTIVATE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_DELETE_RECORD_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_DETACH_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_ERASE_DATABASE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_FIRST_RECORD_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_GET_CURRENT_RECORD_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_GET_DATABASE_SIZE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_GET_DATA_FORMAT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_GET_RECORD_COUNT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_NEXT_RECORD_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_NOTIFY_DATABASE_CHANGE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_NOTIFY_POWER_CHANGE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_OPEN_DATABASE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_PIPELINE_CLEANUP_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_PIPELINE_INIT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_QUERY_BY_CONTENT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_QUERY_BY_SUBJECT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_QUERY_EXTENDED_INFO_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_RESERVED_1_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_RESERVED_2_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_UPDATE_RECORD_BEGIN_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PIBIO_STORAGE_UPDATE_RECORD_COMMIT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWINBIO_ASYNC_COMPLETION_CALLBACK = ::core::option::Option ()>; +pub type PWINBIO_CAPTURE_CALLBACK = ::core::option::Option ()>; +pub type PWINBIO_ENROLL_CAPTURE_CALLBACK = ::core::option::Option ()>; +pub type PWINBIO_EVENT_CALLBACK = ::core::option::Option ()>; +pub type PWINBIO_IDENTIFY_CALLBACK = ::core::option::Option ()>; +pub type PWINBIO_LOCATE_SENSOR_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PWINBIO_QUERY_ENGINE_INTERFACE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PWINBIO_QUERY_SENSOR_INTERFACE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PWINBIO_QUERY_STORAGE_INTERFACE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWINBIO_VERIFY_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Bluetooth/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Bluetooth/mod.rs new file mode 100644 index 000000000..663a44ec3 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Bluetooth/mod.rs @@ -0,0 +1,1850 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bthprops.cpl" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothAuthenticateDevice(hwndparent : super::super::Foundation:: HWND, hradio : super::super::Foundation:: HANDLE, pbtbi : *mut BLUETOOTH_DEVICE_INFO, pszpasskey : ::windows_sys::core::PCWSTR, ulpasskeylength : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bthprops.cpl" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothAuthenticateDeviceEx(hwndparentin : super::super::Foundation:: HWND, hradioin : super::super::Foundation:: HANDLE, pbtdiinout : *mut BLUETOOTH_DEVICE_INFO, pbtoobdata : *const BLUETOOTH_OOB_DATA_INFO, authenticationrequirement : AUTHENTICATION_REQUIREMENTS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bthprops.cpl" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothAuthenticateMultipleDevices(hwndparent : super::super::Foundation:: HWND, hradio : super::super::Foundation:: HANDLE, cdevices : u32, rgbtdi : *mut BLUETOOTH_DEVICE_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bthprops.cpl" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothDisplayDeviceProperties(hwndparent : super::super::Foundation:: HWND, pbtdi : *mut BLUETOOTH_DEVICE_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothEnableDiscovery(hradio : super::super::Foundation:: HANDLE, fenabled : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothEnableIncomingConnections(hradio : super::super::Foundation:: HANDLE, fenabled : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothEnumerateInstalledServices(hradio : super::super::Foundation:: HANDLE, pbtdi : *const BLUETOOTH_DEVICE_INFO, pcserviceinout : *mut u32, pguidservices : *mut ::windows_sys::core::GUID) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothFindDeviceClose(hfind : HBLUETOOTH_DEVICE_FIND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothFindFirstDevice(pbtsp : *const BLUETOOTH_DEVICE_SEARCH_PARAMS, pbtdi : *mut BLUETOOTH_DEVICE_INFO) -> HBLUETOOTH_DEVICE_FIND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothFindFirstRadio(pbtfrp : *const BLUETOOTH_FIND_RADIO_PARAMS, phradio : *mut super::super::Foundation:: HANDLE) -> HBLUETOOTH_RADIO_FIND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothFindNextDevice(hfind : HBLUETOOTH_DEVICE_FIND, pbtdi : *mut BLUETOOTH_DEVICE_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothFindNextRadio(hfind : HBLUETOOTH_RADIO_FIND, phradio : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothFindRadioClose(hfind : HBLUETOOTH_RADIO_FIND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGATTAbortReliableWrite(hdevice : super::super::Foundation:: HANDLE, reliablewritecontext : u64, flags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGATTBeginReliableWrite(hdevice : super::super::Foundation:: HANDLE, reliablewritecontext : *mut u64, flags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGATTEndReliableWrite(hdevice : super::super::Foundation:: HANDLE, reliablewritecontext : u64, flags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGATTGetCharacteristicValue(hdevice : super::super::Foundation:: HANDLE, characteristic : *const BTH_LE_GATT_CHARACTERISTIC, characteristicvaluedatasize : u32, characteristicvalue : *mut BTH_LE_GATT_CHARACTERISTIC_VALUE, characteristicvaluesizerequired : *mut u16, flags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGATTGetCharacteristics(hdevice : super::super::Foundation:: HANDLE, service : *const BTH_LE_GATT_SERVICE, characteristicsbuffercount : u16, characteristicsbuffer : *mut BTH_LE_GATT_CHARACTERISTIC, characteristicsbufferactual : *mut u16, flags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGATTGetDescriptorValue(hdevice : super::super::Foundation:: HANDLE, descriptor : *const BTH_LE_GATT_DESCRIPTOR, descriptorvaluedatasize : u32, descriptorvalue : *mut BTH_LE_GATT_DESCRIPTOR_VALUE, descriptorvaluesizerequired : *mut u16, flags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGATTGetDescriptors(hdevice : super::super::Foundation:: HANDLE, characteristic : *const BTH_LE_GATT_CHARACTERISTIC, descriptorsbuffercount : u16, descriptorsbuffer : *mut BTH_LE_GATT_DESCRIPTOR, descriptorsbufferactual : *mut u16, flags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGATTGetIncludedServices(hdevice : super::super::Foundation:: HANDLE, parentservice : *const BTH_LE_GATT_SERVICE, includedservicesbuffercount : u16, includedservicesbuffer : *mut BTH_LE_GATT_SERVICE, includedservicesbufferactual : *mut u16, flags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGATTGetServices(hdevice : super::super::Foundation:: HANDLE, servicesbuffercount : u16, servicesbuffer : *mut BTH_LE_GATT_SERVICE, servicesbufferactual : *mut u16, flags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGATTRegisterEvent(hservice : super::super::Foundation:: HANDLE, eventtype : BTH_LE_GATT_EVENT_TYPE, eventparameterin : *const ::core::ffi::c_void, callback : PFNBLUETOOTH_GATT_EVENT_CALLBACK, callbackcontext : *const ::core::ffi::c_void, peventhandle : *mut isize, flags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGATTSetCharacteristicValue(hdevice : super::super::Foundation:: HANDLE, characteristic : *const BTH_LE_GATT_CHARACTERISTIC, characteristicvalue : *const BTH_LE_GATT_CHARACTERISTIC_VALUE, reliablewritecontext : u64, flags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGATTSetDescriptorValue(hdevice : super::super::Foundation:: HANDLE, descriptor : *const BTH_LE_GATT_DESCRIPTOR, descriptorvalue : *const BTH_LE_GATT_DESCRIPTOR_VALUE, flags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("bluetoothapis.dll" "system" fn BluetoothGATTUnregisterEvent(eventhandle : isize, flags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGetDeviceInfo(hradio : super::super::Foundation:: HANDLE, pbtdi : *mut BLUETOOTH_DEVICE_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothGetRadioInfo(hradio : super::super::Foundation:: HANDLE, pradioinfo : *mut BLUETOOTH_RADIO_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothIsConnectable(hradio : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothIsDiscoverable(hradio : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothIsVersionAvailable(majorversion : u8, minorversion : u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothRegisterForAuthentication(pbtdi : *const BLUETOOTH_DEVICE_INFO, phreghandle : *mut isize, pfncallback : PFN_AUTHENTICATION_CALLBACK, pvparam : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothRegisterForAuthenticationEx(pbtdiin : *const BLUETOOTH_DEVICE_INFO, phreghandleout : *mut isize, pfncallbackin : PFN_AUTHENTICATION_CALLBACK_EX, pvparam : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("bluetoothapis.dll" "system" fn BluetoothRemoveDevice(paddress : *const BLUETOOTH_ADDRESS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothSdpEnumAttributes(psdpstream : *const u8, cbstreamsize : u32, pfncallback : PFN_BLUETOOTH_ENUM_ATTRIBUTES_CALLBACK, pvparam : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("bluetoothapis.dll" "system" fn BluetoothSdpGetAttributeValue(precordstream : *const u8, cbrecordlength : u32, usattributeid : u16, pattributedata : *mut SDP_ELEMENT_DATA) -> u32); +::windows_targets::link!("bluetoothapis.dll" "system" fn BluetoothSdpGetContainerElementData(pcontainerstream : *const u8, cbcontainerlength : u32, pelement : *mut isize, pdata : *mut SDP_ELEMENT_DATA) -> u32); +::windows_targets::link!("bluetoothapis.dll" "system" fn BluetoothSdpGetElementData(psdpstream : *const u8, cbsdpstreamlength : u32, pdata : *mut SDP_ELEMENT_DATA) -> u32); +::windows_targets::link!("bluetoothapis.dll" "system" fn BluetoothSdpGetString(precordstream : *const u8, cbrecordlength : u32, pstringdata : *const SDP_STRING_TYPE_DATA, usstringoffset : u16, pszstring : ::windows_sys::core::PWSTR, pcchstringlength : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bthprops.cpl" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothSelectDevices(pbtsdp : *mut BLUETOOTH_SELECT_DEVICE_PARAMS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bthprops.cpl" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothSelectDevicesFree(pbtsdp : *mut BLUETOOTH_SELECT_DEVICE_PARAMS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothSendAuthenticationResponse(hradio : super::super::Foundation:: HANDLE, pbtdi : *const BLUETOOTH_DEVICE_INFO, pszpasskey : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothSendAuthenticationResponseEx(hradioin : super::super::Foundation:: HANDLE, pauthresponse : *const BLUETOOTH_AUTHENTICATE_RESPONSE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothSetLocalServiceInfo(hradioin : super::super::Foundation:: HANDLE, pclassguid : *const ::windows_sys::core::GUID, ulinstance : u32, pserviceinfoin : *const BLUETOOTH_LOCAL_SERVICE_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothSetServiceState(hradio : super::super::Foundation:: HANDLE, pbtdi : *const BLUETOOTH_DEVICE_INFO, pguidservice : *const ::windows_sys::core::GUID, dwserviceflags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothUnregisterAuthentication(hreghandle : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bluetoothapis.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BluetoothUpdateDeviceRecord(pbtdi : *const BLUETOOTH_DEVICE_INFO) -> u32); +pub const A2DP_SINK_SUPPORTED_FEATURES_AMPLIFIER: u32 = 8u32; +pub const A2DP_SINK_SUPPORTED_FEATURES_HEADPHONE: u32 = 1u32; +pub const A2DP_SINK_SUPPORTED_FEATURES_RECORDER: u32 = 4u32; +pub const A2DP_SINK_SUPPORTED_FEATURES_SPEAKER: u32 = 2u32; +pub const A2DP_SOURCE_SUPPORTED_FEATURES_MICROPHONE: u32 = 2u32; +pub const A2DP_SOURCE_SUPPORTED_FEATURES_MIXER: u32 = 8u32; +pub const A2DP_SOURCE_SUPPORTED_FEATURES_PLAYER: u32 = 1u32; +pub const A2DP_SOURCE_SUPPORTED_FEATURES_TUNER: u32 = 4u32; +pub const AF_BTH: u16 = 32u16; +pub const ATT_PROTOCOL_UUID16: u32 = 7u32; +pub const AVCTP_PROTOCOL_UUID16: u32 = 23u32; +pub const AVDTP_PROTOCOL_UUID16: u32 = 25u32; +pub const AVRCP_SUPPORTED_FEATURES_CATEGORY_1: u32 = 1u32; +pub const AVRCP_SUPPORTED_FEATURES_CATEGORY_2: u32 = 2u32; +pub const AVRCP_SUPPORTED_FEATURES_CATEGORY_3: u32 = 4u32; +pub const AVRCP_SUPPORTED_FEATURES_CATEGORY_4: u32 = 8u32; +pub const AVRCP_SUPPORTED_FEATURES_CT_BROWSING: u32 = 64u32; +pub const AVRCP_SUPPORTED_FEATURES_CT_COVER_ART_IMAGE: u32 = 256u32; +pub const AVRCP_SUPPORTED_FEATURES_CT_COVER_ART_IMAGE_PROPERTIES: u32 = 128u32; +pub const AVRCP_SUPPORTED_FEATURES_CT_COVER_ART_LINKED_THUMBNAIL: u32 = 512u32; +pub const AVRCP_SUPPORTED_FEATURES_TG_BROWSING: u32 = 64u32; +pub const AVRCP_SUPPORTED_FEATURES_TG_COVER_ART: u32 = 256u32; +pub const AVRCP_SUPPORTED_FEATURES_TG_GROUP_NAVIGATION: u32 = 32u32; +pub const AVRCP_SUPPORTED_FEATURES_TG_MULTIPLE_PLAYER_APPLICATIONS: u32 = 128u32; +pub const AVRCP_SUPPORTED_FEATURES_TG_PLAYER_APPLICATION_SETTINGS: u32 = 16u32; +pub const AVRemoteControlControllerServiceClass_UUID16: u32 = 4367u32; +pub const AVRemoteControlServiceClassID_UUID16: u32 = 4366u32; +pub const AVRemoteControlTargetServiceClassID_UUID16: u32 = 4364u32; +pub const AdvancedAudioDistributionProfileID_UUID16: u32 = 4365u32; +pub const AdvancedAudioDistributionServiceClassID_UUID16: u32 = 4365u32; +pub const AudioSinkServiceClassID_UUID16: u32 = 4363u32; +pub const AudioSinkSourceServiceClassID_UUID16: u32 = 4363u32; +pub const AudioSourceServiceClassID_UUID16: u32 = 4362u32; +pub const AudioVideoServiceClassID_UUID16: u32 = 4396u32; +pub const AudioVideoServiceClass_UUID16: u32 = 4396u32; +pub const BDIF_ADDRESS: u32 = 1u32; +pub const BDIF_BR: u32 = 16384u32; +pub const BDIF_BR_SECURE_CONNECTION_PAIRED: u32 = 134217728u32; +pub const BDIF_COD: u32 = 2u32; +pub const BDIF_CONNECTED: u32 = 32u32; +pub const BDIF_CONNECTION_INBOUND: u32 = 67108864u32; +pub const BDIF_DEBUGKEY: u32 = 536870912u32; +pub const BDIF_EIR: u32 = 8192u32; +pub const BDIF_LE: u32 = 32768u32; +pub const BDIF_LE_CONNECTABLE: u32 = 33554432u32; +pub const BDIF_LE_CONNECTED: u32 = 16777216u32; +pub const BDIF_LE_DEBUGKEY: u32 = 1073741824u32; +pub const BDIF_LE_DISCOVERABLE: u32 = 2097152u32; +pub const BDIF_LE_MITM_PROTECTED: u32 = 262144u32; +pub const BDIF_LE_NAME: u32 = 4194304u32; +pub const BDIF_LE_PAIRED: u32 = 65536u32; +pub const BDIF_LE_PERSONAL: u32 = 131072u32; +pub const BDIF_LE_PRIVACY_ENABLED: u32 = 524288u32; +pub const BDIF_LE_RANDOM_ADDRESS_TYPE: u32 = 1048576u32; +pub const BDIF_LE_SECURE_CONNECTION_PAIRED: u32 = 268435456u32; +pub const BDIF_LE_VISIBLE: u32 = 8388608u32; +pub const BDIF_NAME: u32 = 4u32; +pub const BDIF_PAIRED: u32 = 8u32; +pub const BDIF_PERSONAL: u32 = 16u32; +pub const BDIF_RSSI: u32 = 4096u32; +pub const BDIF_SHORT_NAME: u32 = 64u32; +pub const BDIF_SSP_MITM_PROTECTED: u32 = 1024u32; +pub const BDIF_SSP_PAIRED: u32 = 512u32; +pub const BDIF_SSP_SUPPORTED: u32 = 256u32; +pub const BDIF_TX_POWER: u32 = 2147483648u32; +pub const BDIF_VISIBLE: u32 = 128u32; +pub const BLUETOOTH_AUTHENTICATION_METHOD_LEGACY: BLUETOOTH_AUTHENTICATION_METHOD = 1i32; +pub const BLUETOOTH_AUTHENTICATION_METHOD_NUMERIC_COMPARISON: BLUETOOTH_AUTHENTICATION_METHOD = 3i32; +pub const BLUETOOTH_AUTHENTICATION_METHOD_OOB: BLUETOOTH_AUTHENTICATION_METHOD = 2i32; +pub const BLUETOOTH_AUTHENTICATION_METHOD_PASSKEY: BLUETOOTH_AUTHENTICATION_METHOD = 5i32; +pub const BLUETOOTH_AUTHENTICATION_METHOD_PASSKEY_NOTIFICATION: BLUETOOTH_AUTHENTICATION_METHOD = 4i32; +pub const BLUETOOTH_DEVICE_NAME_SIZE: u32 = 256u32; +pub const BLUETOOTH_GATT_FLAG_CONNECTION_AUTHENTICATED: u32 = 2u32; +pub const BLUETOOTH_GATT_FLAG_CONNECTION_ENCRYPTED: u32 = 1u32; +pub const BLUETOOTH_GATT_FLAG_FORCE_READ_FROM_CACHE: u32 = 8u32; +pub const BLUETOOTH_GATT_FLAG_FORCE_READ_FROM_DEVICE: u32 = 4u32; +pub const BLUETOOTH_GATT_FLAG_NONE: u32 = 0u32; +pub const BLUETOOTH_GATT_FLAG_RETURN_ALL: u32 = 64u32; +pub const BLUETOOTH_GATT_FLAG_SIGNED_WRITE: u32 = 16u32; +pub const BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE: u32 = 32u32; +pub const BLUETOOTH_IO_CAPABILITY_DISPLAYONLY: BLUETOOTH_IO_CAPABILITY = 0i32; +pub const BLUETOOTH_IO_CAPABILITY_DISPLAYYESNO: BLUETOOTH_IO_CAPABILITY = 1i32; +pub const BLUETOOTH_IO_CAPABILITY_KEYBOARDONLY: BLUETOOTH_IO_CAPABILITY = 2i32; +pub const BLUETOOTH_IO_CAPABILITY_NOINPUTNOOUTPUT: BLUETOOTH_IO_CAPABILITY = 3i32; +pub const BLUETOOTH_IO_CAPABILITY_UNDEFINED: BLUETOOTH_IO_CAPABILITY = 255i32; +pub const BLUETOOTH_MAX_NAME_SIZE: u32 = 248u32; +pub const BLUETOOTH_MAX_PASSKEY_BUFFER_SIZE: u32 = 17u32; +pub const BLUETOOTH_MAX_PASSKEY_SIZE: u32 = 16u32; +pub const BLUETOOTH_MAX_SERVICE_NAME_SIZE: u32 = 256u32; +pub const BLUETOOTH_MITM_ProtectionNotDefined: BLUETOOTH_AUTHENTICATION_REQUIREMENTS = 255i32; +pub const BLUETOOTH_MITM_ProtectionNotRequired: BLUETOOTH_AUTHENTICATION_REQUIREMENTS = 0i32; +pub const BLUETOOTH_MITM_ProtectionNotRequiredBonding: BLUETOOTH_AUTHENTICATION_REQUIREMENTS = 2i32; +pub const BLUETOOTH_MITM_ProtectionNotRequiredGeneralBonding: BLUETOOTH_AUTHENTICATION_REQUIREMENTS = 4i32; +pub const BLUETOOTH_MITM_ProtectionRequired: BLUETOOTH_AUTHENTICATION_REQUIREMENTS = 1i32; +pub const BLUETOOTH_MITM_ProtectionRequiredBonding: BLUETOOTH_AUTHENTICATION_REQUIREMENTS = 3i32; +pub const BLUETOOTH_MITM_ProtectionRequiredGeneralBonding: BLUETOOTH_AUTHENTICATION_REQUIREMENTS = 5i32; +pub const BLUETOOTH_SERVICE_DISABLE: u32 = 0u32; +pub const BLUETOOTH_SERVICE_ENABLE: u32 = 1u32; +pub const BNEP_PROTOCOL_UUID16: u32 = 15u32; +pub const BTHLEENUM_ATT_MTU_DEFAULT: u32 = 23u32; +pub const BTHLEENUM_ATT_MTU_INITIAL_NEGOTIATION: u32 = 525u32; +pub const BTHLEENUM_ATT_MTU_MAX: u32 = 65535u32; +pub const BTHLEENUM_ATT_MTU_MIN: u32 = 23u32; +pub const BTHNS_RESULT_DEVICE_AUTHENTICATED: u32 = 262144u32; +pub const BTHNS_RESULT_DEVICE_CONNECTED: u32 = 65536u32; +pub const BTHNS_RESULT_DEVICE_REMEMBERED: u32 = 131072u32; +pub const BTHPROTO_L2CAP: u32 = 256u32; +pub const BTHPROTO_RFCOMM: u32 = 3u32; +pub const BTH_ADDR_GIAC: u32 = 10390323u32; +pub const BTH_ADDR_IAC_FIRST: u32 = 10390272u32; +pub const BTH_ADDR_IAC_LAST: u32 = 10390335u32; +pub const BTH_ADDR_LIAC: u32 = 10390272u32; +pub const BTH_ADDR_STRING_SIZE: u32 = 12u32; +pub const BTH_EIR_128_UUIDS_COMPLETE_ID: u32 = 7u32; +pub const BTH_EIR_128_UUIDS_PARTIAL_ID: u32 = 6u32; +pub const BTH_EIR_16_UUIDS_COMPLETE_ID: u32 = 3u32; +pub const BTH_EIR_16_UUIDS_PARTIAL_ID: u32 = 2u32; +pub const BTH_EIR_32_UUIDS_COMPLETE_ID: u32 = 5u32; +pub const BTH_EIR_32_UUIDS_PARTIAL_ID: u32 = 4u32; +pub const BTH_EIR_FLAGS_ID: u32 = 1u32; +pub const BTH_EIR_LOCAL_NAME_COMPLETE_ID: u32 = 9u32; +pub const BTH_EIR_LOCAL_NAME_PARTIAL_ID: u32 = 8u32; +pub const BTH_EIR_MANUFACTURER_ID: u32 = 255u32; +pub const BTH_EIR_OOB_BD_ADDR_ID: u32 = 12u32; +pub const BTH_EIR_OOB_COD_ID: u32 = 13u32; +pub const BTH_EIR_OOB_OPT_DATA_LEN_ID: u32 = 11u32; +pub const BTH_EIR_OOB_SP_HASH_ID: u32 = 14u32; +pub const BTH_EIR_OOB_SP_RANDOMIZER_ID: u32 = 15u32; +pub const BTH_EIR_SIZE: u32 = 240u32; +pub const BTH_EIR_TX_POWER_LEVEL_ID: u32 = 10u32; +pub const BTH_ERROR_ACL_CONNECTION_ALREADY_EXISTS: u32 = 11u32; +pub const BTH_ERROR_AUTHENTICATION_FAILURE: u32 = 5u32; +pub const BTH_ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED: u32 = 46u32; +pub const BTH_ERROR_COARSE_CLOCK_ADJUSTMENT_REJECTED: u32 = 64u32; +pub const BTH_ERROR_COMMAND_DISALLOWED: u32 = 12u32; +pub const BTH_ERROR_CONNECTION_FAILED_TO_BE_ESTABLISHED: u32 = 62u32; +pub const BTH_ERROR_CONNECTION_REJECTED_DUE_TO_NO_SUITABLE_CHANNEL_FOUND: u32 = 57u32; +pub const BTH_ERROR_CONNECTION_TERMINATED_DUE_TO_MIC_FAILURE: u32 = 61u32; +pub const BTH_ERROR_CONNECTION_TIMEOUT: u32 = 8u32; +pub const BTH_ERROR_CONTROLLER_BUSY: u32 = 58u32; +pub const BTH_ERROR_DIFFERENT_TRANSACTION_COLLISION: u32 = 42u32; +pub const BTH_ERROR_DIRECTED_ADVERTISING_TIMEOUT: u32 = 60u32; +pub const BTH_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE: u32 = 37u32; +pub const BTH_ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE: u32 = 54u32; +pub const BTH_ERROR_HARDWARE_FAILURE: u32 = 3u32; +pub const BTH_ERROR_HOST_BUSY_PAIRING: u32 = 56u32; +pub const BTH_ERROR_HOST_REJECTED_LIMITED_RESOURCES: u32 = 13u32; +pub const BTH_ERROR_HOST_REJECTED_PERSONAL_DEVICE: u32 = 15u32; +pub const BTH_ERROR_HOST_REJECTED_SECURITY_REASONS: u32 = 14u32; +pub const BTH_ERROR_HOST_TIMEOUT: u32 = 16u32; +pub const BTH_ERROR_INSTANT_PASSED: u32 = 40u32; +pub const BTH_ERROR_INSUFFICIENT_SECURITY: u32 = 47u32; +pub const BTH_ERROR_INVALID_HCI_PARAMETER: u32 = 18u32; +pub const BTH_ERROR_INVALID_LMP_PARAMETERS: u32 = 30u32; +pub const BTH_ERROR_KEY_MISSING: u32 = 6u32; +pub const BTH_ERROR_LIMIT_REACHED: u32 = 67u32; +pub const BTH_ERROR_LMP_PDU_NOT_ALLOWED: u32 = 36u32; +pub const BTH_ERROR_LMP_RESPONSE_TIMEOUT: u32 = 34u32; +pub const BTH_ERROR_LMP_TRANSACTION_COLLISION: u32 = 35u32; +pub const BTH_ERROR_LOCAL_HOST_TERMINATED_CONNECTION: u32 = 22u32; +pub const BTH_ERROR_MAC_CONNECTION_FAILED: u32 = 63u32; +pub const BTH_ERROR_MAX_NUMBER_OF_CONNECTIONS: u32 = 9u32; +pub const BTH_ERROR_MAX_NUMBER_OF_SCO_CONNECTIONS: u32 = 10u32; +pub const BTH_ERROR_MEMORY_FULL: u32 = 7u32; +pub const BTH_ERROR_NO_CONNECTION: u32 = 2u32; +pub const BTH_ERROR_OPERATION_CANCELLED_BY_HOST: u32 = 68u32; +pub const BTH_ERROR_PACKET_TOO_LONG: u32 = 69u32; +pub const BTH_ERROR_PAGE_TIMEOUT: u32 = 4u32; +pub const BTH_ERROR_PAIRING_NOT_ALLOWED: u32 = 24u32; +pub const BTH_ERROR_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED: u32 = 41u32; +pub const BTH_ERROR_PARAMETER_OUT_OF_MANDATORY_RANGE: u32 = 48u32; +pub const BTH_ERROR_QOS_IS_NOT_SUPPORTED: u32 = 39u32; +pub const BTH_ERROR_QOS_REJECTED: u32 = 45u32; +pub const BTH_ERROR_QOS_UNACCEPTABLE_PARAMETER: u32 = 44u32; +pub const BTH_ERROR_REMOTE_LOW_RESOURCES: u32 = 20u32; +pub const BTH_ERROR_REMOTE_POWERING_OFF: u32 = 21u32; +pub const BTH_ERROR_REMOTE_USER_ENDED_CONNECTION: u32 = 19u32; +pub const BTH_ERROR_REPEATED_ATTEMPTS: u32 = 23u32; +pub const BTH_ERROR_RESERVED_SLOT_VIOLATION: u32 = 52u32; +pub const BTH_ERROR_ROLE_CHANGE_NOT_ALLOWED: u32 = 33u32; +pub const BTH_ERROR_ROLE_SWITCH_FAILED: u32 = 53u32; +pub const BTH_ERROR_ROLE_SWITCH_PENDING: u32 = 50u32; +pub const BTH_ERROR_SCO_AIRMODE_REJECTED: u32 = 29u32; +pub const BTH_ERROR_SCO_INTERVAL_REJECTED: u32 = 28u32; +pub const BTH_ERROR_SCO_OFFSET_REJECTED: u32 = 27u32; +pub const BTH_ERROR_SECURE_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST: u32 = 55u32; +pub const BTH_ERROR_SUCCESS: u32 = 0u32; +pub const BTH_ERROR_TYPE_0_SUBMAP_NOT_DEFINED: u32 = 65u32; +pub const BTH_ERROR_UKNOWN_LMP_PDU: u32 = 25u32; +pub const BTH_ERROR_UNACCEPTABLE_CONNECTION_INTERVAL: u32 = 59u32; +pub const BTH_ERROR_UNIT_KEY_NOT_USED: u32 = 38u32; +pub const BTH_ERROR_UNKNOWN_ADVERTISING_IDENTIFIER: u32 = 66u32; +pub const BTH_ERROR_UNKNOWN_HCI_COMMAND: u32 = 1u32; +pub const BTH_ERROR_UNSPECIFIED: u32 = 255u32; +pub const BTH_ERROR_UNSPECIFIED_ERROR: u32 = 31u32; +pub const BTH_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER: u32 = 17u32; +pub const BTH_ERROR_UNSUPPORTED_LMP_PARM_VALUE: u32 = 32u32; +pub const BTH_ERROR_UNSUPPORTED_REMOTE_FEATURE: u32 = 26u32; +pub const BTH_HOST_FEATURE_ENHANCED_RETRANSMISSION_MODE: u64 = 1u64; +pub const BTH_HOST_FEATURE_LOW_ENERGY: u64 = 4u64; +pub const BTH_HOST_FEATURE_SCO_HCI: u64 = 8u64; +pub const BTH_HOST_FEATURE_SCO_HCIBYPASS: u64 = 16u64; +pub const BTH_HOST_FEATURE_STREAMING_MODE: u64 = 2u64; +pub const BTH_IOCTL_BASE: u32 = 0u32; +pub const BTH_LE_ATT_BLUETOOTH_BASE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_1000_8000_00805f9b34fb); +pub const BTH_LE_ATT_CID: u32 = 4u32; +pub const BTH_LE_ATT_MAX_VALUE_SIZE: u32 = 512u32; +pub const BTH_LE_ATT_TRANSACTION_TIMEOUT: u32 = 30u32; +pub const BTH_LE_ERROR_ATTRIBUTE_NOT_FOUND: u32 = 10u32; +pub const BTH_LE_ERROR_ATTRIBUTE_NOT_LONG: u32 = 11u32; +pub const BTH_LE_ERROR_INSUFFICIENT_AUTHENTICATION: u32 = 5u32; +pub const BTH_LE_ERROR_INSUFFICIENT_AUTHORIZATION: u32 = 8u32; +pub const BTH_LE_ERROR_INSUFFICIENT_ENCRYPTION: u32 = 15u32; +pub const BTH_LE_ERROR_INSUFFICIENT_ENCRYPTION_KEY_SIZE: u32 = 12u32; +pub const BTH_LE_ERROR_INSUFFICIENT_RESOURCES: u32 = 17u32; +pub const BTH_LE_ERROR_INVALID_ATTRIBUTE_VALUE_LENGTH: u32 = 13u32; +pub const BTH_LE_ERROR_INVALID_HANDLE: u32 = 1u32; +pub const BTH_LE_ERROR_INVALID_OFFSET: u32 = 7u32; +pub const BTH_LE_ERROR_INVALID_PDU: u32 = 4u32; +pub const BTH_LE_ERROR_PREPARE_QUEUE_FULL: u32 = 9u32; +pub const BTH_LE_ERROR_READ_NOT_PERMITTED: u32 = 2u32; +pub const BTH_LE_ERROR_REQUEST_NOT_SUPPORTED: u32 = 6u32; +pub const BTH_LE_ERROR_UNKNOWN: u32 = 4096u32; +pub const BTH_LE_ERROR_UNLIKELY: u32 = 14u32; +pub const BTH_LE_ERROR_UNSUPPORTED_GROUP_TYPE: u32 = 16u32; +pub const BTH_LE_ERROR_WRITE_NOT_PERMITTED: u32 = 3u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SINK_SUBCATEGORY_BOOKSHELF_SPEAKER: u32 = 3u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SINK_SUBCATEGORY_SOUNDBAR: u32 = 2u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SINK_SUBCATEGORY_SPEAKERPHONE: u32 = 5u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SINK_SUBCATEGORY_STANDALONE_SPEAKER: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SINK_SUBCATEGORY_STANDMOUNTED_SPEAKER: u32 = 4u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SOURCE_SUBCATEGORY_ALARM: u32 = 2u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SOURCE_SUBCATEGORY_AUDITORIUM: u32 = 9u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SOURCE_SUBCATEGORY_BELL: u32 = 3u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SOURCE_SUBCATEGORY_BROADCASTING_DEVICE: u32 = 5u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SOURCE_SUBCATEGORY_BROADCASTING_ROOM: u32 = 8u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SOURCE_SUBCATEGORY_HORN: u32 = 4u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SOURCE_SUBCATEGORY_KIOSK: u32 = 7u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SOURCE_SUBCATEGORY_MICROPHONE: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_AUDIO_SOURCE_SUBCATEGORY_SERVICE_DESK: u32 = 6u32; +pub const BTH_LE_GAP_APPEARANCE_BLOOD_PRESSURE_SUBCATEGORY_ARM: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_BLOOD_PRESSURE_SUBCATEGORY_WRIST: u32 = 2u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_ACCESS_CONTROL: u32 = 28u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_AIRCRAFT: u32 = 38u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_AIR_CONDITIONING: u32 = 25u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_AUDIO_SINK: u32 = 33u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_AUDIO_SOURCE: u32 = 34u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_AV_EQUIPMENT: u32 = 39u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_BARCODE_SCANNER: u32 = 11u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_BLOOD_PRESSURE: u32 = 14u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_CLOCK: u32 = 4u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_COMPUTER: u32 = 2u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_CONTINUOUS_GLUCOSE_MONITOR: u32 = 52u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_CONTROL_DEVICE: u32 = 19u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_CYCLING: u32 = 18u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_DISPLAY: u32 = 5u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_DISPLAY_EQUIPMENT: u32 = 40u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_DOMESTIC_APPLIANCE: u32 = 36u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_EYE_GLASSES: u32 = 7u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_FAN: u32 = 23u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_GAMING: u32 = 42u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_GLUCOSE_METER: u32 = 16u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_HEARING_AID: u32 = 41u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_HEART_RATE: u32 = 13u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_HEATING: u32 = 27u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_HID: u32 = 15u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_HUMIDIFIER: u32 = 26u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_HVAC: u32 = 24u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_INSULIN_PUMP: u32 = 53u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_KEYRING: u32 = 9u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_LIGHT_FIXTURES: u32 = 22u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_LIGHT_SOURCE: u32 = 31u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_MASK: u32 = 1023u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_MEDIA_PLAYER: u32 = 10u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_MEDICATION_DELIVERY: u32 = 54u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_MOTORIZED_DEVICE: u32 = 29u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_MOTORIZED_VEHICLE: u32 = 35u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_NETWORK_DEVICE: u32 = 20u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_OFFSET: u32 = 6u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_OUTDOOR_SPORTS_ACTIVITY: u32 = 81u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_PERSONAL_MOBILITY_DEVICE: u32 = 51u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_PHONE: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_PLUSE_OXIMETER: u32 = 49u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_POWER_DEVICE: u32 = 30u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_REMOTE_CONTROL: u32 = 6u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_RUNNING_WALKING_SENSOR: u32 = 17u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_SENSOR: u32 = 21u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_SIGNAGE: u32 = 43u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_TAG: u32 = 8u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_THERMOMETER: u32 = 12u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_UNCATEGORIZED: u32 = 0u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_WATCH: u32 = 3u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_WEARABLE_AUDIO_DEVICE: u32 = 37u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_WEIGHT_SCALE: u32 = 50u32; +pub const BTH_LE_GAP_APPEARANCE_CATEGORY_WINDOW_COVERING: u32 = 32u32; +pub const BTH_LE_GAP_APPEARANCE_CYCLING_SUBCATEGORY_CADENCE_SENSOR: u32 = 3u32; +pub const BTH_LE_GAP_APPEARANCE_CYCLING_SUBCATEGORY_CYCLING_COMPUTER: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_CYCLING_SUBCATEGORY_POWER_SENSOR: u32 = 4u32; +pub const BTH_LE_GAP_APPEARANCE_CYCLING_SUBCATEGORY_SPEED_AND_CADENCE_SENSOR: u32 = 5u32; +pub const BTH_LE_GAP_APPEARANCE_CYCLING_SUBCATEGORY_SPEED_SENSOR: u32 = 2u32; +pub const BTH_LE_GAP_APPEARANCE_HEARING_AID_SUBCATEGORY_BEHIND_EAR_HEARING_AID: u32 = 2u32; +pub const BTH_LE_GAP_APPEARANCE_HEARING_AID_SUBCATEGORY_COCHLEAR_IMPLANT: u32 = 3u32; +pub const BTH_LE_GAP_APPEARANCE_HEARING_AID_SUBCATEGORY_IN_EAR_HEARING_AID: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_HEART_RATE_SUBCATEGORY_HEART_RATE_BELT: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_HID_SUBCATEGORY_BARCODE_SCANNER: u32 = 8u32; +pub const BTH_LE_GAP_APPEARANCE_HID_SUBCATEGORY_CARD_READER: u32 = 6u32; +pub const BTH_LE_GAP_APPEARANCE_HID_SUBCATEGORY_DIGITAL_PEN: u32 = 7u32; +pub const BTH_LE_GAP_APPEARANCE_HID_SUBCATEGORY_DIGITIZER_TABLET: u32 = 5u32; +pub const BTH_LE_GAP_APPEARANCE_HID_SUBCATEGORY_GAMEPAD: u32 = 4u32; +pub const BTH_LE_GAP_APPEARANCE_HID_SUBCATEGORY_JOYSTICK: u32 = 3u32; +pub const BTH_LE_GAP_APPEARANCE_HID_SUBCATEGORY_KEYBOARD: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_HID_SUBCATEGORY_MOUSE: u32 = 2u32; +pub const BTH_LE_GAP_APPEARANCE_OUTDOOR_SPORTS_ACTIVITY_SUBCATEGORY_LOCATION_DISPLAY_DEVICE: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_OUTDOOR_SPORTS_ACTIVITY_SUBCATEGORY_LOCATION_NAVIGATION_DISPLAY_DEVICE: u32 = 2u32; +pub const BTH_LE_GAP_APPEARANCE_OUTDOOR_SPORTS_ACTIVITY_SUBCATEGORY_LOCATION_NAVIGATION_POD: u32 = 4u32; +pub const BTH_LE_GAP_APPEARANCE_OUTDOOR_SPORTS_ACTIVITY_SUBCATEGORY_LOCATION_POD: u32 = 3u32; +pub const BTH_LE_GAP_APPEARANCE_PULSE_OXIMETER_SUBCATEGORY_FINGERTIP: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_PULSE_OXIMETER_SUBCATEGORY_WRIST_WORN: u32 = 2u32; +pub const BTH_LE_GAP_APPEARANCE_RUNNING_WALKING_SENSOR_SUBCATEGORY_IN_SHOE: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_RUNNING_WALKING_SENSOR_SUBCATEGORY_ON_HIP: u32 = 3u32; +pub const BTH_LE_GAP_APPEARANCE_RUNNING_WALKING_SENSOR_SUBCATEGORY_ON_SHOE: u32 = 2u32; +pub const BTH_LE_GAP_APPEARANCE_SUBCATEGORY_GENERIC: u32 = 0u32; +pub const BTH_LE_GAP_APPEARANCE_SUB_CATEGORY_MASK: u32 = 63u32; +pub const BTH_LE_GAP_APPEARANCE_THERMOMETER_SUBCATEGORY_EAR: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_WATCH_SUBCATEGORY_SPORTS_WATCH: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_WEARABLE_AUDIO_DEVICE_SUBCATEGORY_EARBUD: u32 = 1u32; +pub const BTH_LE_GAP_APPEARANCE_WEARABLE_AUDIO_DEVICE_SUBCATEGORY_HEADPHONES: u32 = 3u32; +pub const BTH_LE_GAP_APPEARANCE_WEARABLE_AUDIO_DEVICE_SUBCATEGORY_HEADSET: u32 = 2u32; +pub const BTH_LE_GAP_APPEARANCE_WEARABLE_AUDIO_DEVICE_SUBCATEGORY_NECKBAND: u32 = 4u32; +pub const BTH_LE_GATT_ATTRIBUTE_TYPE_CHARACTERISTIC: u32 = 10243u32; +pub const BTH_LE_GATT_ATTRIBUTE_TYPE_INCLUDE: u32 = 10242u32; +pub const BTH_LE_GATT_ATTRIBUTE_TYPE_PRIMARY_SERVICE: u32 = 10240u32; +pub const BTH_LE_GATT_ATTRIBUTE_TYPE_SECONDARY_SERVICE: u32 = 10241u32; +pub const BTH_LE_GATT_CHARACTERISTIC_DESCRIPTOR_AGGREGATE_FORMAT: u32 = 10501u32; +pub const BTH_LE_GATT_CHARACTERISTIC_DESCRIPTOR_CLIENT_CONFIGURATION: u32 = 10498u32; +pub const BTH_LE_GATT_CHARACTERISTIC_DESCRIPTOR_EXTENDED_PROPERTIES: u32 = 10496u32; +pub const BTH_LE_GATT_CHARACTERISTIC_DESCRIPTOR_FORMAT: u32 = 10500u32; +pub const BTH_LE_GATT_CHARACTERISTIC_DESCRIPTOR_SERVER_CONFIGURATION: u32 = 10499u32; +pub const BTH_LE_GATT_CHARACTERISTIC_DESCRIPTOR_USER_DESCRIPTION: u32 = 10497u32; +pub const BTH_LE_GATT_CHARACTERISTIC_TYPE_APPEARANCE: u32 = 10753u32; +pub const BTH_LE_GATT_CHARACTERISTIC_TYPE_DEVICE_NAME: u32 = 10752u32; +pub const BTH_LE_GATT_CHARACTERISTIC_TYPE_PERIPHERAL_PREFERED_CONNECTION_PARAMETER: u32 = 10756u32; +pub const BTH_LE_GATT_CHARACTERISTIC_TYPE_PERIPHERAL_PRIVACY_FLAG: u32 = 10754u32; +pub const BTH_LE_GATT_CHARACTERISTIC_TYPE_RECONNECTION_ADDRESS: u32 = 10755u32; +pub const BTH_LE_GATT_CHARACTERISTIC_TYPE_SERVICE_CHANGED: u32 = 10757u32; +pub const BTH_LE_GATT_DEFAULT_MAX_INCLUDED_SERVICES_DEPTH: u32 = 3u32; +pub const BTH_LE_SERVICE_GAP: u32 = 6144u32; +pub const BTH_LE_SERVICE_GATT: u32 = 6145u32; +pub const BTH_LINK_KEY_LENGTH: u32 = 16u32; +pub const BTH_MAJORVERSION: u32 = 2u32; +pub const BTH_MAX_NAME_SIZE: u32 = 248u32; +pub const BTH_MAX_PIN_SIZE: u32 = 16u32; +pub const BTH_MAX_SERVICE_NAME_SIZE: u32 = 256u32; +pub const BTH_MFG_3COM: u32 = 5u32; +pub const BTH_MFG_ALCATEL: u32 = 36u32; +pub const BTH_MFG_APPLE: u32 = 76u32; +pub const BTH_MFG_ARUBA_NETWORKS: u32 = 283u32; +pub const BTH_MFG_ATMEL: u32 = 19u32; +pub const BTH_MFG_AVM_BERLIN: u32 = 31u32; +pub const BTH_MFG_BANDSPEED: u32 = 32u32; +pub const BTH_MFG_BROADCOM: u32 = 15u32; +pub const BTH_MFG_CONEXANT: u32 = 28u32; +pub const BTH_MFG_CSR: u32 = 10u32; +pub const BTH_MFG_C_TECHNOLOGIES: u32 = 38u32; +pub const BTH_MFG_DIGIANSWER: u32 = 12u32; +pub const BTH_MFG_ERICSSON: u32 = 0u32; +pub const BTH_MFG_HITACHI: u32 = 41u32; +pub const BTH_MFG_IBM: u32 = 3u32; +pub const BTH_MFG_INFINEON: u32 = 9u32; +pub const BTH_MFG_INTEL: u32 = 2u32; +pub const BTH_MFG_INTERNAL_USE: u32 = 65535u32; +pub const BTH_MFG_INVENTEL: u32 = 30u32; +pub const BTH_MFG_KC_TECHNOLOGY: u32 = 22u32; +pub const BTH_MFG_LUCENT: u32 = 7u32; +pub const BTH_MFG_MACRONIX_INTERNATIONAL: u32 = 44u32; +pub const BTH_MFG_MANSELLA: u32 = 33u32; +pub const BTH_MFG_MARVELL: u32 = 72u32; +pub const BTH_MFG_MICROSOFT: u32 = 6u32; +pub const BTH_MFG_MITEL: u32 = 16u32; +pub const BTH_MFG_MITSIBUSHI: u32 = 20u32; +pub const BTH_MFG_MOTOROLA: u32 = 8u32; +pub const BTH_MFG_NEC: u32 = 34u32; +pub const BTH_MFG_NEWLOGIC: u32 = 23u32; +pub const BTH_MFG_NOKIA: u32 = 1u32; +pub const BTH_MFG_NORDIC_SEMICONDUCTORS_ASA: u32 = 89u32; +pub const BTH_MFG_OPEN_INTERFACE: u32 = 39u32; +pub const BTH_MFG_PARTHUS: u32 = 14u32; +pub const BTH_MFG_PHILIPS_SEMICONDUCTOR: u32 = 37u32; +pub const BTH_MFG_QUALCOMM: u32 = 29u32; +pub const BTH_MFG_RF_MICRO_DEVICES: u32 = 40u32; +pub const BTH_MFG_ROHDE_SCHWARZ: u32 = 25u32; +pub const BTH_MFG_RTX_TELECOM: u32 = 21u32; +pub const BTH_MFG_SIGNIA: u32 = 27u32; +pub const BTH_MFG_SILICONWAVE: u32 = 11u32; +pub const BTH_MFG_SYMBOL_TECHNOLOGIES: u32 = 42u32; +pub const BTH_MFG_TENOVIS: u32 = 43u32; +pub const BTH_MFG_TI: u32 = 13u32; +pub const BTH_MFG_TOSHIBA: u32 = 4u32; +pub const BTH_MFG_TRANSILICA: u32 = 24u32; +pub const BTH_MFG_TTPCOM: u32 = 26u32; +pub const BTH_MFG_WAVEPLUS_TECHNOLOGY_CO: u32 = 35u32; +pub const BTH_MFG_WIDCOMM: u32 = 17u32; +pub const BTH_MFG_ZEEVO: u32 = 18u32; +pub const BTH_MINORVERSION: u32 = 1u32; +pub const BTH_SDP_VERSION: u32 = 1u32; +pub const BTH_VID_DEFAULT_VALUE: u32 = 65535u32; +pub const BT_PORT_DYN_FIRST: u32 = 4097u32; +pub const BT_PORT_MAX: u32 = 65535u32; +pub const BT_PORT_MIN: u32 = 1u32; +pub const BasicPrintingProfileID_UUID16: u32 = 4386u32; +pub const BasicPrintingServiceClassID_UUID16: u32 = 4386u32; +pub const Bluetooth_Base_UUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_1000_8000_00805f9b34fb); +pub const BrowseGroupDescriptorServiceClassID_UUID16: u32 = 4097u32; +pub const CMPT_PROTOCOL_UUID16: u32 = 27u32; +pub const COD_AUDIO_MINOR_CAMCORDER: u32 = 13u32; +pub const COD_AUDIO_MINOR_CAR_AUDIO: u32 = 8u32; +pub const COD_AUDIO_MINOR_GAMING_TOY: u32 = 18u32; +pub const COD_AUDIO_MINOR_HANDS_FREE: u32 = 2u32; +pub const COD_AUDIO_MINOR_HEADPHONES: u32 = 6u32; +pub const COD_AUDIO_MINOR_HEADSET: u32 = 1u32; +pub const COD_AUDIO_MINOR_HEADSET_HANDS_FREE: u32 = 3u32; +pub const COD_AUDIO_MINOR_HIFI_AUDIO: u32 = 10u32; +pub const COD_AUDIO_MINOR_LOUDSPEAKER: u32 = 5u32; +pub const COD_AUDIO_MINOR_MICROPHONE: u32 = 4u32; +pub const COD_AUDIO_MINOR_PORTABLE_AUDIO: u32 = 7u32; +pub const COD_AUDIO_MINOR_SET_TOP_BOX: u32 = 9u32; +pub const COD_AUDIO_MINOR_UNCLASSIFIED: u32 = 0u32; +pub const COD_AUDIO_MINOR_VCR: u32 = 11u32; +pub const COD_AUDIO_MINOR_VIDEO_CAMERA: u32 = 12u32; +pub const COD_AUDIO_MINOR_VIDEO_DISPLAY_CONFERENCING: u32 = 16u32; +pub const COD_AUDIO_MINOR_VIDEO_DISPLAY_LOUDSPEAKER: u32 = 15u32; +pub const COD_AUDIO_MINOR_VIDEO_MONITOR: u32 = 14u32; +pub const COD_COMPUTER_MINOR_DESKTOP: u32 = 1u32; +pub const COD_COMPUTER_MINOR_HANDHELD: u32 = 4u32; +pub const COD_COMPUTER_MINOR_LAPTOP: u32 = 3u32; +pub const COD_COMPUTER_MINOR_PALM: u32 = 5u32; +pub const COD_COMPUTER_MINOR_SERVER: u32 = 2u32; +pub const COD_COMPUTER_MINOR_UNCLASSIFIED: u32 = 0u32; +pub const COD_COMPUTER_MINOR_WEARABLE: u32 = 6u32; +pub const COD_FORMAT_BIT_OFFSET: u32 = 0u32; +pub const COD_FORMAT_MASK: u32 = 3u32; +pub const COD_HEALTH_MINOR_BLOOD_PRESSURE_MONITOR: u32 = 1u32; +pub const COD_HEALTH_MINOR_GLUCOSE_METER: u32 = 4u32; +pub const COD_HEALTH_MINOR_HEALTH_DATA_DISPLAY: u32 = 7u32; +pub const COD_HEALTH_MINOR_HEART_PULSE_MONITOR: u32 = 6u32; +pub const COD_HEALTH_MINOR_PULSE_OXIMETER: u32 = 5u32; +pub const COD_HEALTH_MINOR_STEP_COUNTER: u32 = 8u32; +pub const COD_HEALTH_MINOR_THERMOMETER: u32 = 2u32; +pub const COD_HEALTH_MINOR_WEIGHING_SCALE: u32 = 3u32; +pub const COD_IMAGING_MINOR_CAMERA_MASK: u32 = 8u32; +pub const COD_IMAGING_MINOR_DISPLAY_MASK: u32 = 4u32; +pub const COD_IMAGING_MINOR_PRINTER_MASK: u32 = 32u32; +pub const COD_IMAGING_MINOR_SCANNER_MASK: u32 = 16u32; +pub const COD_LAN_ACCESS_0_USED: u32 = 0u32; +pub const COD_LAN_ACCESS_17_USED: u32 = 1u32; +pub const COD_LAN_ACCESS_33_USED: u32 = 2u32; +pub const COD_LAN_ACCESS_50_USED: u32 = 3u32; +pub const COD_LAN_ACCESS_67_USED: u32 = 4u32; +pub const COD_LAN_ACCESS_83_USED: u32 = 5u32; +pub const COD_LAN_ACCESS_99_USED: u32 = 6u32; +pub const COD_LAN_ACCESS_BIT_OFFSET: u32 = 5u32; +pub const COD_LAN_ACCESS_FULL: u32 = 7u32; +pub const COD_LAN_ACCESS_MASK: u32 = 224u32; +pub const COD_LAN_MINOR_MASK: u32 = 28u32; +pub const COD_LAN_MINOR_UNCLASSIFIED: u32 = 0u32; +pub const COD_MAJOR_AUDIO: u32 = 4u32; +pub const COD_MAJOR_COMPUTER: u32 = 1u32; +pub const COD_MAJOR_HEALTH: u32 = 9u32; +pub const COD_MAJOR_IMAGING: u32 = 6u32; +pub const COD_MAJOR_LAN_ACCESS: u32 = 3u32; +pub const COD_MAJOR_MASK: u32 = 7936u32; +pub const COD_MAJOR_MISCELLANEOUS: u32 = 0u32; +pub const COD_MAJOR_PERIPHERAL: u32 = 5u32; +pub const COD_MAJOR_PHONE: u32 = 2u32; +pub const COD_MAJOR_TOY: u32 = 8u32; +pub const COD_MAJOR_UNCLASSIFIED: u32 = 31u32; +pub const COD_MAJOR_WEARABLE: u32 = 7u32; +pub const COD_MINOR_BIT_OFFSET: u32 = 2u32; +pub const COD_MINOR_MASK: u32 = 252u32; +pub const COD_PERIPHERAL_MINOR_GAMEPAD: u32 = 2u32; +pub const COD_PERIPHERAL_MINOR_JOYSTICK: u32 = 1u32; +pub const COD_PERIPHERAL_MINOR_KEYBOARD_MASK: u32 = 16u32; +pub const COD_PERIPHERAL_MINOR_NO_CATEGORY: u32 = 0u32; +pub const COD_PERIPHERAL_MINOR_POINTER_MASK: u32 = 32u32; +pub const COD_PERIPHERAL_MINOR_REMOTE_CONTROL: u32 = 3u32; +pub const COD_PERIPHERAL_MINOR_SENSING: u32 = 4u32; +pub const COD_PHONE_MINOR_CELLULAR: u32 = 1u32; +pub const COD_PHONE_MINOR_CORDLESS: u32 = 2u32; +pub const COD_PHONE_MINOR_SMART: u32 = 3u32; +pub const COD_PHONE_MINOR_UNCLASSIFIED: u32 = 0u32; +pub const COD_PHONE_MINOR_WIRED_MODEM: u32 = 4u32; +pub const COD_SERVICE_AUDIO: u32 = 256u32; +pub const COD_SERVICE_CAPTURING: u32 = 64u32; +pub const COD_SERVICE_INFORMATION: u32 = 1024u32; +pub const COD_SERVICE_LE_AUDIO: u32 = 2u32; +pub const COD_SERVICE_LIMITED: u32 = 1u32; +pub const COD_SERVICE_MASK: u32 = 16769024u32; +pub const COD_SERVICE_MAX_COUNT: u32 = 10u32; +pub const COD_SERVICE_NETWORKING: u32 = 16u32; +pub const COD_SERVICE_OBJECT_XFER: u32 = 128u32; +pub const COD_SERVICE_POSITIONING: u32 = 8u32; +pub const COD_SERVICE_RENDERING: u32 = 32u32; +pub const COD_SERVICE_TELEPHONY: u32 = 512u32; +pub const COD_TOY_MINOR_CONTROLLER: u32 = 4u32; +pub const COD_TOY_MINOR_DOLL_ACTION_FIGURE: u32 = 3u32; +pub const COD_TOY_MINOR_GAME: u32 = 5u32; +pub const COD_TOY_MINOR_ROBOT: u32 = 1u32; +pub const COD_TOY_MINOR_VEHICLE: u32 = 2u32; +pub const COD_VERSION: u32 = 0u32; +pub const COD_WEARABLE_MINOR_GLASSES: u32 = 5u32; +pub const COD_WEARABLE_MINOR_HELMET: u32 = 4u32; +pub const COD_WEARABLE_MINOR_JACKET: u32 = 3u32; +pub const COD_WEARABLE_MINOR_PAGER: u32 = 2u32; +pub const COD_WEARABLE_MINOR_WRIST_WATCH: u32 = 1u32; +pub const CORDLESS_EXTERNAL_NETWORK_ANALOG_CELLULAR: u32 = 5u32; +pub const CORDLESS_EXTERNAL_NETWORK_CDMA: u32 = 4u32; +pub const CORDLESS_EXTERNAL_NETWORK_GSM: u32 = 3u32; +pub const CORDLESS_EXTERNAL_NETWORK_ISDN: u32 = 2u32; +pub const CORDLESS_EXTERNAL_NETWORK_OTHER: u32 = 7u32; +pub const CORDLESS_EXTERNAL_NETWORK_PACKET_SWITCHED: u32 = 6u32; +pub const CORDLESS_EXTERNAL_NETWORK_PSTN: u32 = 1u32; +pub const CTNAccessServiceClassID_UUID16: u32 = 4412u32; +pub const CTNNotificationServiceClassID_UUID16: u32 = 4413u32; +pub const CTNProfileID_UUID16: u32 = 4414u32; +pub const CharacteristicAggregateFormat: BTH_LE_GATT_DESCRIPTOR_TYPE = 5i32; +pub const CharacteristicExtendedProperties: BTH_LE_GATT_DESCRIPTOR_TYPE = 0i32; +pub const CharacteristicFormat: BTH_LE_GATT_DESCRIPTOR_TYPE = 4i32; +pub const CharacteristicUserDescription: BTH_LE_GATT_DESCRIPTOR_TYPE = 1i32; +pub const CharacteristicValueChangedEvent: BTH_LE_GATT_EVENT_TYPE = 0i32; +pub const ClientCharacteristicConfiguration: BTH_LE_GATT_DESCRIPTOR_TYPE = 2i32; +pub const CommonISDNAccessServiceClassID_UUID16: u32 = 4392u32; +pub const CommonISDNAccessServiceClass_UUID16: u32 = 4392u32; +pub const CordlessServiceClassID_UUID16: u32 = 4361u32; +pub const CordlessTelephonyServiceClassID_UUID16: u32 = 4361u32; +pub const CustomDescriptor: BTH_LE_GATT_DESCRIPTOR_TYPE = 6i32; +pub const DI_VENDOR_ID_SOURCE_BLUETOOTH_SIG: u32 = 1u32; +pub const DI_VENDOR_ID_SOURCE_USB_IF: u32 = 2u32; +pub const DialupNetworkingServiceClassID_UUID16: u32 = 4355u32; +pub const DirectPrintingReferenceObjectsServiceClassID_UUID16: u32 = 4384u32; +pub const DirectPrintingServiceClassID_UUID16: u32 = 4376u32; +pub const ENCODING_UTF_8: u32 = 106u32; +pub const ESdpUpnpIpLapServiceClassID_UUID16: u32 = 4865u32; +pub const ESdpUpnpIpPanServiceClassID_UUID16: u32 = 4864u32; +pub const ESdpUpnpL2capServiceClassID_UUID16: u32 = 4866u32; +pub const FTP_PROTOCOL_UUID16: u32 = 10u32; +pub const FaxServiceClassID_UUID16: u32 = 4369u32; +pub const GNSSProfileID_UUID16: u32 = 4405u32; +pub const GNSSServerServiceClassID_UUID16: u32 = 4406u32; +pub const GNServiceClassID_UUID16: u32 = 4375u32; +pub const GUID_BLUETOOTHLE_DEVICE_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x781aee18_7733_4ce4_add0_91f41c67b592); +pub const GUID_BLUETOOTH_AUTHENTICATION_REQUEST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5dc9136d_996c_46db_84f5_32c0a3f47352); +pub const GUID_BLUETOOTH_GATT_SERVICE_DEVICE_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6e3bb679_4372_40c8_9eaa_4509df260cd8); +pub const GUID_BLUETOOTH_HCI_EVENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfc240062_1541_49be_b463_84c4dcd7bf7f); +pub const GUID_BLUETOOTH_HCI_VENDOR_EVENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x547247e6_45bb_4c33_af8c_c00efe15a71d); +pub const GUID_BLUETOOTH_KEYPRESS_EVENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd668dfcd_0f4e_4efc_bfe0_392eeec5109c); +pub const GUID_BLUETOOTH_L2CAP_EVENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7eae4030_b709_4aa8_ac55_e953829c9daa); +pub const GUID_BLUETOOTH_RADIO_IN_RANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xea3b5b82_26ee_450e_b0d8_d26fe30a3869); +pub const GUID_BLUETOOTH_RADIO_OUT_OF_RANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe28867c9_c2aa_4ced_b969_4570866037c4); +pub const GUID_BTHPORT_DEVICE_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0850302a_b344_4fda_9be9_90576b8d46f0); +pub const GUID_BTH_RFCOMM_SERVICE_DEVICE_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb142fc3e_fa4e_460b_8abc_072b628b3c70); +pub const GenericAudioServiceClassID_UUID16: u32 = 4611u32; +pub const GenericFileTransferServiceClassID_UUID16: u32 = 4610u32; +pub const GenericNetworkingServiceClassID_UUID16: u32 = 4609u32; +pub const GenericTelephonyServiceClassID_UUID16: u32 = 4612u32; +pub const HCCC_PROTOCOL_UUID16: u32 = 18u32; +pub const HCDC_PROTOCOL_UUID16: u32 = 20u32; +pub const HCI_CONNECTION_TYPE_ACL: u32 = 1u32; +pub const HCI_CONNECTION_TYPE_LE: u32 = 3u32; +pub const HCI_CONNECTION_TYPE_SCO: u32 = 2u32; +pub const HCI_CONNNECTION_TYPE_ACL: u32 = 1u32; +pub const HCI_CONNNECTION_TYPE_SCO: u32 = 2u32; +pub const HCN_PROTOCOL_UUID16: u32 = 22u32; +pub const HCRPrintServiceClassID_UUID16: u32 = 4390u32; +pub const HCRScanServiceClassID_UUID16: u32 = 4391u32; +pub const HID_PROTOCOL_UUID16: u32 = 17u32; +pub const HTTP_PROTOCOL_UUID16: u32 = 12u32; +pub const HandsfreeAudioGatewayServiceClassID_UUID16: u32 = 4383u32; +pub const HandsfreeServiceClassID_UUID16: u32 = 4382u32; +pub const HardcopyCableReplacementProfileID_UUID16: u32 = 4389u32; +pub const HardcopyCableReplacementServiceClassID_UUID16: u32 = 4389u32; +pub const HeadsetAudioGatewayServiceClassID_UUID16: u32 = 4370u32; +pub const HeadsetHSServiceClassID_UUID16: u32 = 4401u32; +pub const HeadsetServiceClassID_UUID16: u32 = 4360u32; +pub const HealthDeviceProfileID_UUID16: u32 = 5120u32; +pub const HealthDeviceProfileSinkServiceClassID_UUID16: u32 = 5122u32; +pub const HealthDeviceProfileSourceServiceClassID_UUID16: u32 = 5121u32; +pub const HumanInterfaceDeviceServiceClassID_UUID16: u32 = 4388u32; +pub const IP_PROTOCOL_UUID16: u32 = 9u32; +pub const ImagingAutomaticArchiveServiceClassID_UUID16: u32 = 4380u32; +pub const ImagingReferenceObjectsServiceClassID_UUID16: u32 = 4381u32; +pub const ImagingResponderServiceClassID_UUID16: u32 = 4379u32; +pub const ImagingServiceClassID_UUID16: u32 = 4378u32; +pub const ImagingServiceProfileID_UUID16: u32 = 4378u32; +pub const IntercomServiceClassID_UUID16: u32 = 4368u32; +pub const IoCaps_DisplayOnly: IO_CAPABILITY = 0i32; +pub const IoCaps_DisplayYesNo: IO_CAPABILITY = 1i32; +pub const IoCaps_KeyboardOnly: IO_CAPABILITY = 2i32; +pub const IoCaps_NoInputNoOutput: IO_CAPABILITY = 3i32; +pub const IoCaps_Undefined: IO_CAPABILITY = 255i32; +pub const IrMCSyncServiceClassID_UUID16: u32 = 4356u32; +pub const IrMcSyncCommandServiceClassID_UUID16: u32 = 4359u32; +pub const L2CAP_DEFAULT_MTU: u32 = 672u32; +pub const L2CAP_MAX_MTU: u32 = 65535u32; +pub const L2CAP_MIN_MTU: u32 = 48u32; +pub const L2CAP_PROTOCOL_UUID16: u32 = 256u32; +pub const LANAccessUsingPPPServiceClassID_UUID16: u32 = 4354u32; +pub const LANGUAGE_EN_US: u32 = 25966u32; +pub const LANG_BASE_ENCODING_INDEX: u32 = 1u32; +pub const LANG_BASE_LANGUAGE_INDEX: u32 = 0u32; +pub const LANG_BASE_OFFSET_INDEX: u32 = 2u32; +pub const LANG_DEFAULT_ID: u32 = 256u32; +pub const LAP_GIAC_VALUE: u32 = 10390323u32; +pub const LAP_LIAC_VALUE: u32 = 10390272u32; +pub const MAX_L2CAP_INFO_DATA_LENGTH: u32 = 44u32; +pub const MAX_L2CAP_PING_DATA_LENGTH: u32 = 44u32; +pub const MAX_UUIDS_IN_QUERY: u32 = 12u32; +pub const MITMProtectionNotDefined: AUTHENTICATION_REQUIREMENTS = 255i32; +pub const MITMProtectionNotRequired: AUTHENTICATION_REQUIREMENTS = 0i32; +pub const MITMProtectionNotRequiredBonding: AUTHENTICATION_REQUIREMENTS = 2i32; +pub const MITMProtectionNotRequiredGeneralBonding: AUTHENTICATION_REQUIREMENTS = 4i32; +pub const MITMProtectionRequired: AUTHENTICATION_REQUIREMENTS = 1i32; +pub const MITMProtectionRequiredBonding: AUTHENTICATION_REQUIREMENTS = 3i32; +pub const MITMProtectionRequiredGeneralBonding: AUTHENTICATION_REQUIREMENTS = 5i32; +pub const MPSProfileID_UUID16: u32 = 4410u32; +pub const MPSServiceClassID_UUID16: u32 = 4411u32; +pub const MessageAccessProfileID_UUID16: u32 = 4404u32; +pub const MessageAccessServerServiceClassID_UUID16: u32 = 4402u32; +pub const MessageNotificationServerServiceClassID_UUID16: u32 = 4403u32; +pub const NAPServiceClassID_UUID16: u32 = 4374u32; +pub const NS_BTH: u32 = 16u32; +pub const NodeContainerTypeAlternative: NodeContainerType = 1i32; +pub const NodeContainerTypeSequence: NodeContainerType = 0i32; +pub const OBEXFileTransferServiceClassID_UUID16: u32 = 4358u32; +pub const OBEXObjectPushServiceClassID_UUID16: u32 = 4357u32; +pub const OBEX_PROTOCOL_UUID16: u32 = 8u32; +pub const OBJECT_PUSH_FORMAT_ANY: u32 = 255u32; +pub const OBJECT_PUSH_FORMAT_ICAL_2_0: u32 = 4u32; +pub const OBJECT_PUSH_FORMAT_VCAL_1_0: u32 = 3u32; +pub const OBJECT_PUSH_FORMAT_VCARD_2_1: u32 = 1u32; +pub const OBJECT_PUSH_FORMAT_VCARD_3_0: u32 = 2u32; +pub const OBJECT_PUSH_FORMAT_VMESSAGE: u32 = 6u32; +pub const OBJECT_PUSH_FORMAT_VNOTE: u32 = 5u32; +pub const PANUServiceClassID_UUID16: u32 = 4373u32; +pub const PF_BTH: u16 = 32u16; +pub const PSM_3DSP: u32 = 33u32; +pub const PSM_ATT: u32 = 31u32; +pub const PSM_AVCTP: u32 = 23u32; +pub const PSM_AVCTP_BROWSE: u32 = 27u32; +pub const PSM_AVDTP: u32 = 25u32; +pub const PSM_BNEP: u32 = 15u32; +pub const PSM_HID_CONTROL: u32 = 17u32; +pub const PSM_HID_INTERRUPT: u32 = 19u32; +pub const PSM_LE_IPSP: u32 = 35u32; +pub const PSM_RFCOMM: u32 = 3u32; +pub const PSM_SDP: u32 = 1u32; +pub const PSM_TCS_BIN: u32 = 5u32; +pub const PSM_TCS_BIN_CORDLESS: u32 = 7u32; +pub const PSM_UDI_C_PLANE: u32 = 29u32; +pub const PSM_UPNP: u32 = 21u32; +pub const PhonebookAccessPceServiceClassID_UUID16: u32 = 4398u32; +pub const PhonebookAccessProfileID_UUID16: u32 = 4400u32; +pub const PhonebookAccessPseServiceClassID_UUID16: u32 = 4399u32; +pub const PnPInformationServiceClassID_UUID16: u32 = 4608u32; +pub const PrintingStatusServiceClassID_UUID16: u32 = 4387u32; +pub const PublicBrowseGroupServiceClassID_UUID16: u32 = 4098u32; +pub const RFCOMM_CMD_MSC: u32 = 1u32; +pub const RFCOMM_CMD_NONE: u32 = 0u32; +pub const RFCOMM_CMD_RLS: u32 = 2u32; +pub const RFCOMM_CMD_RPN: u32 = 3u32; +pub const RFCOMM_CMD_RPN_REQUEST: u32 = 4u32; +pub const RFCOMM_CMD_RPN_RESPONSE: u32 = 5u32; +pub const RFCOMM_MAX_MTU: u32 = 1011u32; +pub const RFCOMM_MIN_MTU: u32 = 23u32; +pub const RFCOMM_PROTOCOL_UUID16: u32 = 3u32; +pub const RLS_ERROR: u32 = 1u32; +pub const RLS_FRAMING: u32 = 8u32; +pub const RLS_OVERRUN: u32 = 2u32; +pub const RLS_PARITY: u32 = 4u32; +pub const RPN_BAUD_115200: u32 = 7u32; +pub const RPN_BAUD_19200: u32 = 4u32; +pub const RPN_BAUD_230400: u32 = 8u32; +pub const RPN_BAUD_2400: u32 = 0u32; +pub const RPN_BAUD_38400: u32 = 5u32; +pub const RPN_BAUD_4800: u32 = 1u32; +pub const RPN_BAUD_57600: u32 = 6u32; +pub const RPN_BAUD_7200: u32 = 2u32; +pub const RPN_BAUD_9600: u32 = 3u32; +pub const RPN_DATA_5: u32 = 0u32; +pub const RPN_DATA_6: u32 = 1u32; +pub const RPN_DATA_7: u32 = 2u32; +pub const RPN_DATA_8: u32 = 3u32; +pub const RPN_FLOW_RTC_IN: u32 = 16u32; +pub const RPN_FLOW_RTC_OUT: u32 = 32u32; +pub const RPN_FLOW_RTR_IN: u32 = 4u32; +pub const RPN_FLOW_RTR_OUT: u32 = 8u32; +pub const RPN_FLOW_X_IN: u32 = 1u32; +pub const RPN_FLOW_X_OUT: u32 = 2u32; +pub const RPN_PARAM_BAUD: u32 = 1u32; +pub const RPN_PARAM_DATA: u32 = 2u32; +pub const RPN_PARAM_PARITY: u32 = 8u32; +pub const RPN_PARAM_P_TYPE: u32 = 16u32; +pub const RPN_PARAM_RTC_IN: u32 = 16u32; +pub const RPN_PARAM_RTC_OUT: u32 = 32u32; +pub const RPN_PARAM_RTR_IN: u32 = 4u32; +pub const RPN_PARAM_RTR_OUT: u32 = 8u32; +pub const RPN_PARAM_STOP: u32 = 4u32; +pub const RPN_PARAM_XOFF: u32 = 64u32; +pub const RPN_PARAM_XON: u32 = 32u32; +pub const RPN_PARAM_X_IN: u32 = 1u32; +pub const RPN_PARAM_X_OUT: u32 = 2u32; +pub const RPN_PARITY_EVEN: u32 = 24u32; +pub const RPN_PARITY_MARK: u32 = 40u32; +pub const RPN_PARITY_NONE: u32 = 0u32; +pub const RPN_PARITY_ODD: u32 = 8u32; +pub const RPN_PARITY_SPACE: u32 = 56u32; +pub const RPN_STOP_1: u32 = 0u32; +pub const RPN_STOP_1_5: u32 = 4u32; +pub const ReferencePrintingServiceClassID_UUID16: u32 = 4377u32; +pub const ReflectsUIServiceClassID_UUID16: u32 = 4385u32; +pub const SAP_BIT_OFFSET: u32 = 0u32; +pub const SDP_ATTRIB_A2DP_SUPPORTED_FEATURES: u32 = 785u32; +pub const SDP_ATTRIB_ADDITIONAL_PROTOCOL_DESCRIPTOR_LIST: u32 = 13u32; +pub const SDP_ATTRIB_AVAILABILITY: u32 = 8u32; +pub const SDP_ATTRIB_AVRCP_SUPPORTED_FEATURES: u32 = 785u32; +pub const SDP_ATTRIB_BROWSE_GROUP_ID: u32 = 512u32; +pub const SDP_ATTRIB_BROWSE_GROUP_LIST: u32 = 5u32; +pub const SDP_ATTRIB_CLASS_ID_LIST: u32 = 1u32; +pub const SDP_ATTRIB_CLIENT_EXECUTABLE_URL: u32 = 11u32; +pub const SDP_ATTRIB_CORDLESS_EXTERNAL_NETWORK: u32 = 769u32; +pub const SDP_ATTRIB_DI_PRIMARY_RECORD: u32 = 516u32; +pub const SDP_ATTRIB_DI_PRODUCT_ID: u32 = 514u32; +pub const SDP_ATTRIB_DI_SPECIFICATION_ID: u32 = 512u32; +pub const SDP_ATTRIB_DI_VENDOR_ID: u32 = 513u32; +pub const SDP_ATTRIB_DI_VENDOR_ID_SOURCE: u32 = 517u32; +pub const SDP_ATTRIB_DI_VERSION: u32 = 515u32; +pub const SDP_ATTRIB_DOCUMENTATION_URL: u32 = 10u32; +pub const SDP_ATTRIB_FAX_AUDIO_FEEDBACK_SUPPORT: u32 = 773u32; +pub const SDP_ATTRIB_FAX_CLASS_1_SUPPORT: u32 = 770u32; +pub const SDP_ATTRIB_FAX_CLASS_2_0_SUPPORT: u32 = 771u32; +pub const SDP_ATTRIB_FAX_CLASS_2_SUPPORT: u32 = 772u32; +pub const SDP_ATTRIB_HEADSET_REMOTE_AUDIO_VOLUME_CONTROL: u32 = 770u32; +pub const SDP_ATTRIB_HFP_SUPPORTED_FEATURES: u32 = 785u32; +pub const SDP_ATTRIB_HID_BATTERY_POWER: u32 = 521u32; +pub const SDP_ATTRIB_HID_BOOT_DEVICE: u32 = 526u32; +pub const SDP_ATTRIB_HID_COUNTRY_CODE: u32 = 515u32; +pub const SDP_ATTRIB_HID_DESCRIPTOR_LIST: u32 = 518u32; +pub const SDP_ATTRIB_HID_DEVICE_RELEASE_NUMBER: u32 = 512u32; +pub const SDP_ATTRIB_HID_DEVICE_SUBCLASS: u32 = 514u32; +pub const SDP_ATTRIB_HID_LANG_ID_BASE_LIST: u32 = 519u32; +pub const SDP_ATTRIB_HID_NORMALLY_CONNECTABLE: u32 = 525u32; +pub const SDP_ATTRIB_HID_PARSER_VERSION: u32 = 513u32; +pub const SDP_ATTRIB_HID_PROFILE_VERSION: u32 = 523u32; +pub const SDP_ATTRIB_HID_RECONNECT_INITIATE: u32 = 517u32; +pub const SDP_ATTRIB_HID_REMOTE_WAKE: u32 = 522u32; +pub const SDP_ATTRIB_HID_SDP_DISABLE: u32 = 520u32; +pub const SDP_ATTRIB_HID_SSR_HOST_MAX_LATENCY: u32 = 527u32; +pub const SDP_ATTRIB_HID_SSR_HOST_MIN_TIMEOUT: u32 = 528u32; +pub const SDP_ATTRIB_HID_SUPERVISION_TIMEOUT: u32 = 524u32; +pub const SDP_ATTRIB_HID_VIRTUAL_CABLE: u32 = 516u32; +pub const SDP_ATTRIB_ICON_URL: u32 = 12u32; +pub const SDP_ATTRIB_IMAGING_SUPPORTED_CAPABILITIES: u32 = 784u32; +pub const SDP_ATTRIB_IMAGING_SUPPORTED_FEATURES: u32 = 785u32; +pub const SDP_ATTRIB_IMAGING_SUPPORTED_FUNCTIONS: u32 = 786u32; +pub const SDP_ATTRIB_IMAGING_TOTAL_DATA_CAPACITY: u32 = 787u32; +pub const SDP_ATTRIB_INFO_TIME_TO_LIVE: u32 = 7u32; +pub const SDP_ATTRIB_LANG_BASE_ATTRIB_ID_LIST: u32 = 6u32; +pub const SDP_ATTRIB_LAN_LPSUBNET: u32 = 512u32; +pub const SDP_ATTRIB_OBJECT_PUSH_SUPPORTED_FORMATS_LIST: u32 = 771u32; +pub const SDP_ATTRIB_PAN_HOME_PAGE_URL: u32 = 776u32; +pub const SDP_ATTRIB_PAN_MAX_NET_ACCESS_RATE: u32 = 780u32; +pub const SDP_ATTRIB_PAN_NETWORK_ADDRESS: u32 = 774u32; +pub const SDP_ATTRIB_PAN_NET_ACCESS_TYPE: u32 = 779u32; +pub const SDP_ATTRIB_PAN_SECURITY_DESCRIPTION: u32 = 778u32; +pub const SDP_ATTRIB_PAN_WAP_GATEWAY: u32 = 775u32; +pub const SDP_ATTRIB_PAN_WAP_STACK_TYPE: u32 = 777u32; +pub const SDP_ATTRIB_PROFILE_DESCRIPTOR_LIST: u32 = 9u32; +pub const SDP_ATTRIB_PROFILE_SPECIFIC: u32 = 512u32; +pub const SDP_ATTRIB_PROTOCOL_DESCRIPTOR_LIST: u32 = 4u32; +pub const SDP_ATTRIB_RECORD_HANDLE: u32 = 0u32; +pub const SDP_ATTRIB_RECORD_STATE: u32 = 2u32; +pub const SDP_ATTRIB_SDP_DATABASE_STATE: u32 = 513u32; +pub const SDP_ATTRIB_SDP_VERSION_NUMBER_LIST: u32 = 512u32; +pub const SDP_ATTRIB_SERVICE_ID: u32 = 3u32; +pub const SDP_ATTRIB_SERVICE_VERSION: u32 = 768u32; +pub const SDP_ATTRIB_SYNCH_SUPPORTED_DATA_STORES_LIST: u32 = 769u32; +pub const SDP_CONNECT_ALLOW_PIN: u32 = 2u32; +pub const SDP_CONNECT_CACHE: u32 = 1u32; +pub const SDP_DEFAULT_INQUIRY_MAX_RESPONSES: u32 = 255u32; +pub const SDP_DEFAULT_INQUIRY_SECONDS: u32 = 6u32; +pub const SDP_ERROR_INSUFFICIENT_RESOURCES: u32 = 6u32; +pub const SDP_ERROR_INVALID_CONTINUATION_STATE: u32 = 5u32; +pub const SDP_ERROR_INVALID_PDU_SIZE: u32 = 4u32; +pub const SDP_ERROR_INVALID_RECORD_HANDLE: u32 = 2u32; +pub const SDP_ERROR_INVALID_REQUEST_SYNTAX: u32 = 3u32; +pub const SDP_ERROR_INVALID_SDP_VERSION: u32 = 1u32; +pub const SDP_MAX_INQUIRY_SECONDS: u32 = 60u32; +pub const SDP_PROTOCOL_UUID16: u32 = 1u32; +pub const SDP_REQUEST_TO_DEFAULT: u32 = 0u32; +pub const SDP_REQUEST_TO_MAX: u32 = 45u32; +pub const SDP_REQUEST_TO_MIN: u32 = 10u32; +pub const SDP_SEARCH_NO_FORMAT_CHECK: u32 = 2u32; +pub const SDP_SEARCH_NO_PARSE_CHECK: u32 = 1u32; +pub const SDP_SERVICE_ATTRIBUTE_REQUEST: u32 = 2u32; +pub const SDP_SERVICE_SEARCH_ATTRIBUTE_REQUEST: u32 = 3u32; +pub const SDP_SERVICE_SEARCH_REQUEST: u32 = 1u32; +pub const SDP_ST_INT128: SDP_SPECIFICTYPE = 1056i32; +pub const SDP_ST_INT16: SDP_SPECIFICTYPE = 288i32; +pub const SDP_ST_INT32: SDP_SPECIFICTYPE = 544i32; +pub const SDP_ST_INT64: SDP_SPECIFICTYPE = 800i32; +pub const SDP_ST_INT8: SDP_SPECIFICTYPE = 32i32; +pub const SDP_ST_NONE: SDP_SPECIFICTYPE = 0i32; +pub const SDP_ST_UINT128: SDP_SPECIFICTYPE = 1040i32; +pub const SDP_ST_UINT16: SDP_SPECIFICTYPE = 272i32; +pub const SDP_ST_UINT32: SDP_SPECIFICTYPE = 528i32; +pub const SDP_ST_UINT64: SDP_SPECIFICTYPE = 784i32; +pub const SDP_ST_UINT8: SDP_SPECIFICTYPE = 16i32; +pub const SDP_ST_UUID128: SDP_SPECIFICTYPE = 1072i32; +pub const SDP_ST_UUID16: SDP_SPECIFICTYPE = 304i32; +pub const SDP_ST_UUID32: SDP_SPECIFICTYPE = 544i32; +pub const SDP_TYPE_ALTERNATIVE: SDP_TYPE = 7i32; +pub const SDP_TYPE_BOOLEAN: SDP_TYPE = 5i32; +pub const SDP_TYPE_CONTAINER: SDP_TYPE = 32i32; +pub const SDP_TYPE_INT: SDP_TYPE = 2i32; +pub const SDP_TYPE_NIL: SDP_TYPE = 0i32; +pub const SDP_TYPE_SEQUENCE: SDP_TYPE = 6i32; +pub const SDP_TYPE_STRING: SDP_TYPE = 4i32; +pub const SDP_TYPE_UINT: SDP_TYPE = 1i32; +pub const SDP_TYPE_URL: SDP_TYPE = 8i32; +pub const SDP_TYPE_UUID: SDP_TYPE = 3i32; +pub const SERVICE_OPTION_DO_NOT_PUBLISH: u32 = 2u32; +pub const SERVICE_OPTION_DO_NOT_PUBLISH_EIR: u32 = 8u32; +pub const SERVICE_OPTION_NO_PUBLIC_BROWSE: u32 = 4u32; +pub const SERVICE_SECURITY_AUTHENTICATE: u32 = 4u32; +pub const SERVICE_SECURITY_AUTHORIZE: u32 = 2u32; +pub const SERVICE_SECURITY_DISABLED: u32 = 268435456u32; +pub const SERVICE_SECURITY_ENCRYPT_OPTIONAL: u32 = 32u32; +pub const SERVICE_SECURITY_ENCRYPT_REQUIRED: u32 = 16u32; +pub const SERVICE_SECURITY_NONE: u32 = 1u32; +pub const SERVICE_SECURITY_NO_ASK: u32 = 536870912u32; +pub const SERVICE_SECURITY_USE_DEFAULTS: u32 = 0u32; +pub const SOL_L2CAP: u32 = 256u32; +pub const SOL_RFCOMM: u32 = 3u32; +pub const SOL_SDP: u32 = 257u32; +pub const SO_BTH_AUTHENTICATE: u32 = 2147483649u32; +pub const SO_BTH_ENCRYPT: u32 = 2u32; +pub const SO_BTH_MTU: u32 = 2147483655u32; +pub const SO_BTH_MTU_MAX: u32 = 2147483656u32; +pub const SO_BTH_MTU_MIN: u32 = 2147483658u32; +pub const STRING_DESCRIPTION_OFFSET: u32 = 1u32; +pub const STRING_NAME_OFFSET: u32 = 0u32; +pub const STRING_PROVIDER_NAME_OFFSET: u32 = 2u32; +pub const STR_ADDR_FMT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("(%02x:%02x:%02x:%02x:%02x:%02x)"); +pub const STR_ADDR_FMTA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("(%02x:%02x:%02x:%02x:%02x:%02x)"); +pub const STR_ADDR_FMTW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("(%02x:%02x:%02x:%02x:%02x:%02x)"); +pub const STR_ADDR_SHORT_FMT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%04x%08x"); +pub const STR_ADDR_SHORT_FMTA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("%04x%08x"); +pub const STR_ADDR_SHORT_FMTW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%04x%08x"); +pub const STR_USBHCI_CLASS_HARDWAREID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("USB\\Class_E0&SubClass_01&Prot_01"); +pub const STR_USBHCI_CLASS_HARDWAREIDA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("USB\\Class_E0&SubClass_01&Prot_01"); +pub const STR_USBHCI_CLASS_HARDWAREIDW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("USB\\Class_E0&SubClass_01&Prot_01"); +pub const SVCID_BTH_PROVIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x06aa63e0_7d60_41ff_afb2_3ee6d2d9392d); +pub const SYNCH_DATA_STORE_CALENDAR: u32 = 3u32; +pub const SYNCH_DATA_STORE_MESSAGES: u32 = 6u32; +pub const SYNCH_DATA_STORE_NOTES: u32 = 5u32; +pub const SYNCH_DATA_STORE_PHONEBOOK: u32 = 1u32; +pub const SerialPortServiceClassID_UUID16: u32 = 4353u32; +pub const ServerCharacteristicConfiguration: BTH_LE_GATT_DESCRIPTOR_TYPE = 3i32; +pub const ServiceDiscoveryServerServiceClassID_UUID16: u32 = 4096u32; +pub const SimAccessServiceClassID_UUID16: u32 = 4397u32; +pub const TCP_PROTOCOL_UUID16: u32 = 4u32; +pub const TCSAT_PROTOCOL_UUID16: u32 = 6u32; +pub const TCSBIN_PROTOCOL_UUID16: u32 = 5u32; +pub const ThreeDimensionalDisplayServiceClassID_UUID16: u32 = 4407u32; +pub const ThreeDimensionalGlassesServiceClassID_UUID16: u32 = 4408u32; +pub const ThreeDimensionalSynchronizationProfileID_UUID16: u32 = 4409u32; +pub const UDIMTServiceClassID_UUID16: u32 = 4394u32; +pub const UDIMTServiceClass_UUID16: u32 = 4394u32; +pub const UDITAServiceClassID_UUID16: u32 = 4395u32; +pub const UDITAServiceClass_UUID16: u32 = 4395u32; +pub const UDI_C_PLANE_PROTOCOL_UUID16: u32 = 29u32; +pub const UDP_PROTOCOL_UUID16: u32 = 2u32; +pub const UPNP_PROTOCOL_UUID16: u32 = 16u32; +pub const UPnpIpServiceClassID_UUID16: u32 = 4614u32; +pub const UPnpServiceClassID_UUID16: u32 = 4613u32; +pub const VideoConferencingGWServiceClassID_UUID16: u32 = 4393u32; +pub const VideoConferencingGWServiceClass_UUID16: u32 = 4393u32; +pub const VideoConferencingServiceClassID_UUID16: u32 = 4367u32; +pub const VideoDistributionProfileID_UUID16: u32 = 4869u32; +pub const VideoSinkServiceClassID_UUID16: u32 = 4868u32; +pub const VideoSourceServiceClassID_UUID16: u32 = 4867u32; +pub const WAPClientServiceClassID_UUID16: u32 = 4372u32; +pub const WAPServiceClassID_UUID16: u32 = 4371u32; +pub const WSP_PROTOCOL_UUID16: u32 = 14u32; +pub type AUTHENTICATION_REQUIREMENTS = i32; +pub type BLUETOOTH_AUTHENTICATION_METHOD = i32; +pub type BLUETOOTH_AUTHENTICATION_REQUIREMENTS = i32; +pub type BLUETOOTH_IO_CAPABILITY = i32; +pub type BTH_LE_GATT_DESCRIPTOR_TYPE = i32; +pub type BTH_LE_GATT_EVENT_TYPE = i32; +pub type IO_CAPABILITY = i32; +pub type NodeContainerType = i32; +pub type SDP_SPECIFICTYPE = i32; +pub type SDP_TYPE = i32; +#[repr(C)] +pub struct BLUETOOTH_ADDRESS { + pub Anonymous: BLUETOOTH_ADDRESS_0, +} +impl ::core::marker::Copy for BLUETOOTH_ADDRESS {} +impl ::core::clone::Clone for BLUETOOTH_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union BLUETOOTH_ADDRESS_0 { + pub ullLong: u64, + pub rgBytes: [u8; 6], +} +impl ::core::marker::Copy for BLUETOOTH_ADDRESS_0 {} +impl ::core::clone::Clone for BLUETOOTH_ADDRESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BLUETOOTH_AUTHENTICATE_RESPONSE { + pub bthAddressRemote: BLUETOOTH_ADDRESS, + pub authMethod: BLUETOOTH_AUTHENTICATION_METHOD, + pub Anonymous: BLUETOOTH_AUTHENTICATE_RESPONSE_0, + pub negativeResponse: u8, +} +impl ::core::marker::Copy for BLUETOOTH_AUTHENTICATE_RESPONSE {} +impl ::core::clone::Clone for BLUETOOTH_AUTHENTICATE_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union BLUETOOTH_AUTHENTICATE_RESPONSE_0 { + pub pinInfo: BLUETOOTH_PIN_INFO, + pub oobInfo: BLUETOOTH_OOB_DATA_INFO, + pub numericCompInfo: BLUETOOTH_NUMERIC_COMPARISON_INFO, + pub passkeyInfo: BLUETOOTH_PASSKEY_INFO, +} +impl ::core::marker::Copy for BLUETOOTH_AUTHENTICATE_RESPONSE_0 {} +impl ::core::clone::Clone for BLUETOOTH_AUTHENTICATE_RESPONSE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS { + pub deviceInfo: BLUETOOTH_DEVICE_INFO, + pub authenticationMethod: BLUETOOTH_AUTHENTICATION_METHOD, + pub ioCapability: BLUETOOTH_IO_CAPABILITY, + pub authenticationRequirements: BLUETOOTH_AUTHENTICATION_REQUIREMENTS, + pub Anonymous: BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS_0 { + pub Numeric_Value: u32, + pub Passkey: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BLUETOOTH_COD_PAIRS { + pub ulCODMask: u32, + pub pcszDescription: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for BLUETOOTH_COD_PAIRS {} +impl ::core::clone::Clone for BLUETOOTH_COD_PAIRS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BLUETOOTH_DEVICE_INFO { + pub dwSize: u32, + pub Address: BLUETOOTH_ADDRESS, + pub ulClassofDevice: u32, + pub fConnected: super::super::Foundation::BOOL, + pub fRemembered: super::super::Foundation::BOOL, + pub fAuthenticated: super::super::Foundation::BOOL, + pub stLastSeen: super::super::Foundation::SYSTEMTIME, + pub stLastUsed: super::super::Foundation::SYSTEMTIME, + pub szName: [u16; 248], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BLUETOOTH_DEVICE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BLUETOOTH_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BLUETOOTH_DEVICE_SEARCH_PARAMS { + pub dwSize: u32, + pub fReturnAuthenticated: super::super::Foundation::BOOL, + pub fReturnRemembered: super::super::Foundation::BOOL, + pub fReturnUnknown: super::super::Foundation::BOOL, + pub fReturnConnected: super::super::Foundation::BOOL, + pub fIssueInquiry: super::super::Foundation::BOOL, + pub cTimeoutMultiplier: u8, + pub hRadio: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BLUETOOTH_DEVICE_SEARCH_PARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BLUETOOTH_DEVICE_SEARCH_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BLUETOOTH_FIND_RADIO_PARAMS { + pub dwSize: u32, +} +impl ::core::marker::Copy for BLUETOOTH_FIND_RADIO_PARAMS {} +impl ::core::clone::Clone for BLUETOOTH_FIND_RADIO_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BLUETOOTH_GATT_VALUE_CHANGED_EVENT { + pub ChangedAttributeHandle: u16, + pub CharacteristicValueDataSize: usize, + pub CharacteristicValue: *mut BTH_LE_GATT_CHARACTERISTIC_VALUE, +} +impl ::core::marker::Copy for BLUETOOTH_GATT_VALUE_CHANGED_EVENT {} +impl ::core::clone::Clone for BLUETOOTH_GATT_VALUE_CHANGED_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BLUETOOTH_GATT_VALUE_CHANGED_EVENT_REGISTRATION { + pub NumCharacteristics: u16, + pub Characteristics: [BTH_LE_GATT_CHARACTERISTIC; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BLUETOOTH_GATT_VALUE_CHANGED_EVENT_REGISTRATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BLUETOOTH_GATT_VALUE_CHANGED_EVENT_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BLUETOOTH_LOCAL_SERVICE_INFO { + pub Enabled: super::super::Foundation::BOOL, + pub btAddr: BLUETOOTH_ADDRESS, + pub szName: [u16; 256], + pub szDeviceString: [u16; 256], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BLUETOOTH_LOCAL_SERVICE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BLUETOOTH_LOCAL_SERVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BLUETOOTH_NUMERIC_COMPARISON_INFO { + pub NumericValue: u32, +} +impl ::core::marker::Copy for BLUETOOTH_NUMERIC_COMPARISON_INFO {} +impl ::core::clone::Clone for BLUETOOTH_NUMERIC_COMPARISON_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BLUETOOTH_OOB_DATA_INFO { + pub C: [u8; 16], + pub R: [u8; 16], +} +impl ::core::marker::Copy for BLUETOOTH_OOB_DATA_INFO {} +impl ::core::clone::Clone for BLUETOOTH_OOB_DATA_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BLUETOOTH_PASSKEY_INFO { + pub passkey: u32, +} +impl ::core::marker::Copy for BLUETOOTH_PASSKEY_INFO {} +impl ::core::clone::Clone for BLUETOOTH_PASSKEY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BLUETOOTH_PIN_INFO { + pub pin: [u8; 16], + pub pinLength: u8, +} +impl ::core::marker::Copy for BLUETOOTH_PIN_INFO {} +impl ::core::clone::Clone for BLUETOOTH_PIN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BLUETOOTH_RADIO_INFO { + pub dwSize: u32, + pub address: BLUETOOTH_ADDRESS, + pub szName: [u16; 248], + pub ulClassofDevice: u32, + pub lmpSubversion: u16, + pub manufacturer: u16, +} +impl ::core::marker::Copy for BLUETOOTH_RADIO_INFO {} +impl ::core::clone::Clone for BLUETOOTH_RADIO_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BLUETOOTH_SELECT_DEVICE_PARAMS { + pub dwSize: u32, + pub cNumOfClasses: u32, + pub prgClassOfDevices: *mut BLUETOOTH_COD_PAIRS, + pub pszInfo: ::windows_sys::core::PWSTR, + pub hwndParent: super::super::Foundation::HWND, + pub fForceAuthentication: super::super::Foundation::BOOL, + pub fShowAuthenticated: super::super::Foundation::BOOL, + pub fShowRemembered: super::super::Foundation::BOOL, + pub fShowUnknown: super::super::Foundation::BOOL, + pub fAddNewDeviceWizard: super::super::Foundation::BOOL, + pub fSkipServicesPage: super::super::Foundation::BOOL, + pub pfnDeviceCallback: PFN_DEVICE_CALLBACK, + pub pvParam: *mut ::core::ffi::c_void, + pub cNumDevices: u32, + pub pDevices: *mut BLUETOOTH_DEVICE_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BLUETOOTH_SELECT_DEVICE_PARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BLUETOOTH_SELECT_DEVICE_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BTH_DEVICE_INFO { + pub flags: u32, + pub address: u64, + pub classOfDevice: u32, + pub name: [u8; 248], +} +impl ::core::marker::Copy for BTH_DEVICE_INFO {} +impl ::core::clone::Clone for BTH_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BTH_HCI_EVENT_INFO { + pub bthAddress: u64, + pub connectionType: u8, + pub connected: u8, +} +impl ::core::marker::Copy for BTH_HCI_EVENT_INFO {} +impl ::core::clone::Clone for BTH_HCI_EVENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct BTH_INFO_REQ { + pub btAddr: u64, + pub infoType: u16, +} +impl ::core::marker::Copy for BTH_INFO_REQ {} +impl ::core::clone::Clone for BTH_INFO_REQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct BTH_INFO_RSP { + pub result: u16, + pub dataLen: u8, + pub Anonymous: BTH_INFO_RSP_0, +} +impl ::core::marker::Copy for BTH_INFO_RSP {} +impl ::core::clone::Clone for BTH_INFO_RSP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union BTH_INFO_RSP_0 { + pub connectionlessMTU: u16, + pub data: [u8; 44], +} +impl ::core::marker::Copy for BTH_INFO_RSP_0 {} +impl ::core::clone::Clone for BTH_INFO_RSP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BTH_L2CAP_EVENT_INFO { + pub bthAddress: u64, + pub psm: u16, + pub connected: u8, + pub initiated: u8, +} +impl ::core::marker::Copy for BTH_L2CAP_EVENT_INFO {} +impl ::core::clone::Clone for BTH_L2CAP_EVENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BTH_LE_GATT_CHARACTERISTIC { + pub ServiceHandle: u16, + pub CharacteristicUuid: BTH_LE_UUID, + pub AttributeHandle: u16, + pub CharacteristicValueHandle: u16, + pub IsBroadcastable: super::super::Foundation::BOOLEAN, + pub IsReadable: super::super::Foundation::BOOLEAN, + pub IsWritable: super::super::Foundation::BOOLEAN, + pub IsWritableWithoutResponse: super::super::Foundation::BOOLEAN, + pub IsSignedWritable: super::super::Foundation::BOOLEAN, + pub IsNotifiable: super::super::Foundation::BOOLEAN, + pub IsIndicatable: super::super::Foundation::BOOLEAN, + pub HasExtendedProperties: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BTH_LE_GATT_CHARACTERISTIC {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BTH_LE_GATT_CHARACTERISTIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BTH_LE_GATT_CHARACTERISTIC_VALUE { + pub DataSize: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for BTH_LE_GATT_CHARACTERISTIC_VALUE {} +impl ::core::clone::Clone for BTH_LE_GATT_CHARACTERISTIC_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BTH_LE_GATT_DESCRIPTOR { + pub ServiceHandle: u16, + pub CharacteristicHandle: u16, + pub DescriptorType: BTH_LE_GATT_DESCRIPTOR_TYPE, + pub DescriptorUuid: BTH_LE_UUID, + pub AttributeHandle: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BTH_LE_GATT_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BTH_LE_GATT_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BTH_LE_GATT_DESCRIPTOR_VALUE { + pub DescriptorType: BTH_LE_GATT_DESCRIPTOR_TYPE, + pub DescriptorUuid: BTH_LE_UUID, + pub Anonymous: BTH_LE_GATT_DESCRIPTOR_VALUE_0, + pub DataSize: u32, + pub Data: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BTH_LE_GATT_DESCRIPTOR_VALUE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BTH_LE_GATT_DESCRIPTOR_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union BTH_LE_GATT_DESCRIPTOR_VALUE_0 { + pub CharacteristicExtendedProperties: BTH_LE_GATT_DESCRIPTOR_VALUE_0_0, + pub ClientCharacteristicConfiguration: BTH_LE_GATT_DESCRIPTOR_VALUE_0_2, + pub ServerCharacteristicConfiguration: BTH_LE_GATT_DESCRIPTOR_VALUE_0_3, + pub CharacteristicFormat: BTH_LE_GATT_DESCRIPTOR_VALUE_0_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BTH_LE_GATT_DESCRIPTOR_VALUE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BTH_LE_GATT_DESCRIPTOR_VALUE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BTH_LE_GATT_DESCRIPTOR_VALUE_0_0 { + pub IsReliableWriteEnabled: super::super::Foundation::BOOLEAN, + pub IsAuxiliariesWritable: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BTH_LE_GATT_DESCRIPTOR_VALUE_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BTH_LE_GATT_DESCRIPTOR_VALUE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BTH_LE_GATT_DESCRIPTOR_VALUE_0_1 { + pub Format: u8, + pub Exponent: u8, + pub Unit: BTH_LE_UUID, + pub NameSpace: u8, + pub Description: BTH_LE_UUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BTH_LE_GATT_DESCRIPTOR_VALUE_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BTH_LE_GATT_DESCRIPTOR_VALUE_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BTH_LE_GATT_DESCRIPTOR_VALUE_0_2 { + pub IsSubscribeToNotification: super::super::Foundation::BOOLEAN, + pub IsSubscribeToIndication: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BTH_LE_GATT_DESCRIPTOR_VALUE_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BTH_LE_GATT_DESCRIPTOR_VALUE_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BTH_LE_GATT_DESCRIPTOR_VALUE_0_3 { + pub IsBroadcast: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BTH_LE_GATT_DESCRIPTOR_VALUE_0_3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BTH_LE_GATT_DESCRIPTOR_VALUE_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BTH_LE_GATT_SERVICE { + pub ServiceUuid: BTH_LE_UUID, + pub AttributeHandle: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BTH_LE_GATT_SERVICE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BTH_LE_GATT_SERVICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BTH_LE_UUID { + pub IsShortUuid: super::super::Foundation::BOOLEAN, + pub Value: BTH_LE_UUID_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BTH_LE_UUID {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BTH_LE_UUID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union BTH_LE_UUID_0 { + pub ShortUuid: u16, + pub LongUuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BTH_LE_UUID_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BTH_LE_UUID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct BTH_PING_REQ { + pub btAddr: u64, + pub dataLen: u8, + pub data: [u8; 44], +} +impl ::core::marker::Copy for BTH_PING_REQ {} +impl ::core::clone::Clone for BTH_PING_REQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BTH_PING_RSP { + pub dataLen: u8, + pub data: [u8; 44], +} +impl ::core::marker::Copy for BTH_PING_RSP {} +impl ::core::clone::Clone for BTH_PING_RSP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct BTH_QUERY_DEVICE { + pub LAP: u32, + pub length: u8, +} +impl ::core::marker::Copy for BTH_QUERY_DEVICE {} +impl ::core::clone::Clone for BTH_QUERY_DEVICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct BTH_QUERY_SERVICE { + pub r#type: u32, + pub serviceHandle: u32, + pub uuids: [SdpQueryUuid; 12], + pub numRange: u32, + pub pRange: [SdpAttributeRange; 1], +} +impl ::core::marker::Copy for BTH_QUERY_SERVICE {} +impl ::core::clone::Clone for BTH_QUERY_SERVICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BTH_RADIO_IN_RANGE { + pub deviceInfo: BTH_DEVICE_INFO, + pub previousDeviceFlags: u32, +} +impl ::core::marker::Copy for BTH_RADIO_IN_RANGE {} +impl ::core::clone::Clone for BTH_RADIO_IN_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BTH_SET_SERVICE { + pub pSdpVersion: *mut u32, + pub pRecordHandle: *mut super::super::Foundation::HANDLE, + pub fCodService: u32, + pub Reserved: [u32; 5], + pub ulRecordLength: u32, + pub pRecord: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BTH_SET_SERVICE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BTH_SET_SERVICE { + fn clone(&self) -> Self { + *self + } +} +pub type HANDLE_SDP_TYPE = u64; +pub type HBLUETOOTH_DEVICE_FIND = isize; +pub type HBLUETOOTH_RADIO_FIND = isize; +#[repr(C, packed(1))] +pub struct RFCOMM_COMMAND { + pub CmdType: u32, + pub Data: RFCOMM_COMMAND_0, +} +impl ::core::marker::Copy for RFCOMM_COMMAND {} +impl ::core::clone::Clone for RFCOMM_COMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union RFCOMM_COMMAND_0 { + pub MSC: RFCOMM_MSC_DATA, + pub RLS: RFCOMM_RLS_DATA, + pub RPN: RFCOMM_RPN_DATA, +} +impl ::core::marker::Copy for RFCOMM_COMMAND_0 {} +impl ::core::clone::Clone for RFCOMM_COMMAND_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RFCOMM_MSC_DATA { + pub Signals: u8, + pub Break: u8, +} +impl ::core::marker::Copy for RFCOMM_MSC_DATA {} +impl ::core::clone::Clone for RFCOMM_MSC_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RFCOMM_RLS_DATA { + pub LineStatus: u8, +} +impl ::core::marker::Copy for RFCOMM_RLS_DATA {} +impl ::core::clone::Clone for RFCOMM_RLS_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RFCOMM_RPN_DATA { + pub Baud: u8, + pub Data: u8, + pub FlowControl: u8, + pub XonChar: u8, + pub XoffChar: u8, + pub ParameterMask1: u8, + pub ParameterMask2: u8, +} +impl ::core::marker::Copy for RFCOMM_RPN_DATA {} +impl ::core::clone::Clone for RFCOMM_RPN_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SDP_ELEMENT_DATA { + pub r#type: SDP_TYPE, + pub specificType: SDP_SPECIFICTYPE, + pub data: SDP_ELEMENT_DATA_0, +} +impl ::core::marker::Copy for SDP_ELEMENT_DATA {} +impl ::core::clone::Clone for SDP_ELEMENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SDP_ELEMENT_DATA_0 { + pub int128: SDP_LARGE_INTEGER_16, + pub int64: i64, + pub int32: i32, + pub int16: i16, + pub int8: u8, + pub uint128: SDP_ULARGE_INTEGER_16, + pub uint64: u64, + pub uint32: u32, + pub uint16: u16, + pub uint8: u8, + pub booleanVal: u8, + pub uuid128: ::windows_sys::core::GUID, + pub uuid32: u32, + pub uuid16: u16, + pub string: SDP_ELEMENT_DATA_0_2, + pub url: SDP_ELEMENT_DATA_0_3, + pub sequence: SDP_ELEMENT_DATA_0_1, + pub alternative: SDP_ELEMENT_DATA_0_0, +} +impl ::core::marker::Copy for SDP_ELEMENT_DATA_0 {} +impl ::core::clone::Clone for SDP_ELEMENT_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SDP_ELEMENT_DATA_0_0 { + pub value: *mut u8, + pub length: u32, +} +impl ::core::marker::Copy for SDP_ELEMENT_DATA_0_0 {} +impl ::core::clone::Clone for SDP_ELEMENT_DATA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SDP_ELEMENT_DATA_0_1 { + pub value: *mut u8, + pub length: u32, +} +impl ::core::marker::Copy for SDP_ELEMENT_DATA_0_1 {} +impl ::core::clone::Clone for SDP_ELEMENT_DATA_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SDP_ELEMENT_DATA_0_2 { + pub value: *mut u8, + pub length: u32, +} +impl ::core::marker::Copy for SDP_ELEMENT_DATA_0_2 {} +impl ::core::clone::Clone for SDP_ELEMENT_DATA_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SDP_ELEMENT_DATA_0_3 { + pub value: *mut u8, + pub length: u32, +} +impl ::core::marker::Copy for SDP_ELEMENT_DATA_0_3 {} +impl ::core::clone::Clone for SDP_ELEMENT_DATA_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SDP_LARGE_INTEGER_16 { + pub LowPart: u64, + pub HighPart: i64, +} +impl ::core::marker::Copy for SDP_LARGE_INTEGER_16 {} +impl ::core::clone::Clone for SDP_LARGE_INTEGER_16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SDP_STRING_TYPE_DATA { + pub encoding: u16, + pub mibeNum: u16, + pub attributeId: u16, +} +impl ::core::marker::Copy for SDP_STRING_TYPE_DATA {} +impl ::core::clone::Clone for SDP_STRING_TYPE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SDP_ULARGE_INTEGER_16 { + pub LowPart: u64, + pub HighPart: u64, +} +impl ::core::marker::Copy for SDP_ULARGE_INTEGER_16 {} +impl ::core::clone::Clone for SDP_ULARGE_INTEGER_16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SOCKADDR_BTH { + pub addressFamily: u16, + pub btAddr: u64, + pub serviceClassId: ::windows_sys::core::GUID, + pub port: u32, +} +impl ::core::marker::Copy for SOCKADDR_BTH {} +impl ::core::clone::Clone for SOCKADDR_BTH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SdpAttributeRange { + pub minAttribute: u16, + pub maxAttribute: u16, +} +impl ::core::marker::Copy for SdpAttributeRange {} +impl ::core::clone::Clone for SdpAttributeRange { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SdpQueryUuid { + pub u: SdpQueryUuidUnion, + pub uuidType: u16, +} +impl ::core::marker::Copy for SdpQueryUuid {} +impl ::core::clone::Clone for SdpQueryUuid { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SdpQueryUuidUnion { + pub uuid128: ::windows_sys::core::GUID, + pub uuid32: u32, + pub uuid16: u16, +} +impl ::core::marker::Copy for SdpQueryUuidUnion {} +impl ::core::clone::Clone for SdpQueryUuidUnion { + fn clone(&self) -> Self { + *self + } +} +pub type PFNBLUETOOTH_GATT_EVENT_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_AUTHENTICATION_CALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_AUTHENTICATION_CALLBACK_EX = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_BLUETOOTH_ENUM_ATTRIBUTES_CALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DEVICE_CALLBACK = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Communication/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Communication/mod.rs new file mode 100644 index 000000000..969ac73e8 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Communication/mod.rs @@ -0,0 +1,375 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildCommDCBA(lpdef : ::windows_sys::core::PCSTR, lpdcb : *mut DCB) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildCommDCBAndTimeoutsA(lpdef : ::windows_sys::core::PCSTR, lpdcb : *mut DCB, lpcommtimeouts : *mut COMMTIMEOUTS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildCommDCBAndTimeoutsW(lpdef : ::windows_sys::core::PCWSTR, lpdcb : *mut DCB, lpcommtimeouts : *mut COMMTIMEOUTS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildCommDCBW(lpdef : ::windows_sys::core::PCWSTR, lpdcb : *mut DCB) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClearCommBreak(hfile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClearCommError(hfile : super::super::Foundation:: HANDLE, lperrors : *mut CLEAR_COMM_ERROR_FLAGS, lpstat : *mut COMSTAT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CommConfigDialogA(lpszname : ::windows_sys::core::PCSTR, hwnd : super::super::Foundation:: HWND, lpcc : *mut COMMCONFIG) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CommConfigDialogW(lpszname : ::windows_sys::core::PCWSTR, hwnd : super::super::Foundation:: HWND, lpcc : *mut COMMCONFIG) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EscapeCommFunction(hfile : super::super::Foundation:: HANDLE, dwfunc : ESCAPE_COMM_FUNCTION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCommConfig(hcommdev : super::super::Foundation:: HANDLE, lpcc : *mut COMMCONFIG, lpdwsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCommMask(hfile : super::super::Foundation:: HANDLE, lpevtmask : *mut COMM_EVENT_MASK) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCommModemStatus(hfile : super::super::Foundation:: HANDLE, lpmodemstat : *mut MODEM_STATUS_FLAGS) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-core-comm-l1-1-2.dll" "system" fn GetCommPorts(lpportnumbers : *mut u32, uportnumberscount : u32, puportnumbersfound : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCommProperties(hfile : super::super::Foundation:: HANDLE, lpcommprop : *mut COMMPROP) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCommState(hfile : super::super::Foundation:: HANDLE, lpdcb : *mut DCB) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCommTimeouts(hfile : super::super::Foundation:: HANDLE, lpcommtimeouts : *mut COMMTIMEOUTS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDefaultCommConfigA(lpszname : ::windows_sys::core::PCSTR, lpcc : *mut COMMCONFIG, lpdwsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDefaultCommConfigW(lpszname : ::windows_sys::core::PCWSTR, lpcc : *mut COMMCONFIG, lpdwsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-comm-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenCommPort(uportnumber : u32, dwdesiredaccess : u32, dwflagsandattributes : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PurgeComm(hfile : super::super::Foundation:: HANDLE, dwflags : PURGE_COMM_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCommBreak(hfile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCommConfig(hcommdev : super::super::Foundation:: HANDLE, lpcc : *const COMMCONFIG, dwsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCommMask(hfile : super::super::Foundation:: HANDLE, dwevtmask : COMM_EVENT_MASK) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCommState(hfile : super::super::Foundation:: HANDLE, lpdcb : *const DCB) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCommTimeouts(hfile : super::super::Foundation:: HANDLE, lpcommtimeouts : *const COMMTIMEOUTS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDefaultCommConfigA(lpszname : ::windows_sys::core::PCSTR, lpcc : *const COMMCONFIG, dwsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDefaultCommConfigW(lpszname : ::windows_sys::core::PCWSTR, lpcc : *const COMMCONFIG, dwsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupComm(hfile : super::super::Foundation:: HANDLE, dwinqueue : u32, dwoutqueue : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TransmitCommChar(hfile : super::super::Foundation:: HANDLE, cchar : u8) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WaitCommEvent(hfile : super::super::Foundation:: HANDLE, lpevtmask : *mut COMM_EVENT_MASK, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +pub const CE_BREAK: CLEAR_COMM_ERROR_FLAGS = 16u32; +pub const CE_FRAME: CLEAR_COMM_ERROR_FLAGS = 8u32; +pub const CE_OVERRUN: CLEAR_COMM_ERROR_FLAGS = 2u32; +pub const CE_RXOVER: CLEAR_COMM_ERROR_FLAGS = 1u32; +pub const CE_RXPARITY: CLEAR_COMM_ERROR_FLAGS = 4u32; +pub const CLRBREAK: ESCAPE_COMM_FUNCTION = 9u32; +pub const CLRDTR: ESCAPE_COMM_FUNCTION = 6u32; +pub const CLRRTS: ESCAPE_COMM_FUNCTION = 4u32; +pub const DIALOPTION_BILLING: MODEMDEVCAPS_DIAL_OPTIONS = 64u32; +pub const DIALOPTION_DIALTONE: MODEMDEVCAPS_DIAL_OPTIONS = 256u32; +pub const DIALOPTION_QUIET: MODEMDEVCAPS_DIAL_OPTIONS = 128u32; +pub const EVENPARITY: DCB_PARITY = 2u8; +pub const EV_BREAK: COMM_EVENT_MASK = 64u32; +pub const EV_CTS: COMM_EVENT_MASK = 8u32; +pub const EV_DSR: COMM_EVENT_MASK = 16u32; +pub const EV_ERR: COMM_EVENT_MASK = 128u32; +pub const EV_EVENT1: COMM_EVENT_MASK = 2048u32; +pub const EV_EVENT2: COMM_EVENT_MASK = 4096u32; +pub const EV_PERR: COMM_EVENT_MASK = 512u32; +pub const EV_RING: COMM_EVENT_MASK = 256u32; +pub const EV_RLSD: COMM_EVENT_MASK = 32u32; +pub const EV_RX80FULL: COMM_EVENT_MASK = 1024u32; +pub const EV_RXCHAR: COMM_EVENT_MASK = 1u32; +pub const EV_RXFLAG: COMM_EVENT_MASK = 2u32; +pub const EV_TXEMPTY: COMM_EVENT_MASK = 4u32; +pub const MARKPARITY: DCB_PARITY = 3u8; +pub const MAXLENGTH_NAI: u32 = 72u32; +pub const MAXLENGTH_UICCDATASTORE: u32 = 10u32; +pub const MDMSPKRFLAG_CALLSETUP: MODEMDEVCAPS_SPEAKER_MODE = 8u32; +pub const MDMSPKRFLAG_DIAL: MODEMDEVCAPS_SPEAKER_MODE = 2u32; +pub const MDMSPKRFLAG_OFF: MODEMDEVCAPS_SPEAKER_MODE = 1u32; +pub const MDMSPKRFLAG_ON: MODEMDEVCAPS_SPEAKER_MODE = 4u32; +pub const MDMSPKR_CALLSETUP: MODEMSETTINGS_SPEAKER_MODE = 8u32; +pub const MDMSPKR_DIAL: MODEMSETTINGS_SPEAKER_MODE = 2u32; +pub const MDMSPKR_OFF: MODEMSETTINGS_SPEAKER_MODE = 1u32; +pub const MDMSPKR_ON: MODEMSETTINGS_SPEAKER_MODE = 4u32; +pub const MDMVOLFLAG_HIGH: MODEMDEVCAPS_SPEAKER_VOLUME = 4u32; +pub const MDMVOLFLAG_LOW: MODEMDEVCAPS_SPEAKER_VOLUME = 1u32; +pub const MDMVOLFLAG_MEDIUM: MODEMDEVCAPS_SPEAKER_VOLUME = 2u32; +pub const MDMVOL_HIGH: MODEM_SPEAKER_VOLUME = 2u32; +pub const MDMVOL_LOW: MODEM_SPEAKER_VOLUME = 0u32; +pub const MDMVOL_MEDIUM: MODEM_SPEAKER_VOLUME = 1u32; +pub const MDM_ANALOG_RLP_OFF: u32 = 1u32; +pub const MDM_ANALOG_RLP_ON: u32 = 0u32; +pub const MDM_ANALOG_V34: u32 = 2u32; +pub const MDM_AUTO_ML_2: u32 = 2u32; +pub const MDM_AUTO_ML_DEFAULT: u32 = 0u32; +pub const MDM_AUTO_ML_NONE: u32 = 1u32; +pub const MDM_AUTO_SPEED_DEFAULT: u32 = 0u32; +pub const MDM_BEARERMODE_ANALOG: u32 = 0u32; +pub const MDM_BEARERMODE_GSM: u32 = 2u32; +pub const MDM_BEARERMODE_ISDN: u32 = 1u32; +pub const MDM_BLIND_DIAL: u32 = 512u32; +pub const MDM_CCITT_OVERRIDE: u32 = 64u32; +pub const MDM_CELLULAR: u32 = 8u32; +pub const MDM_COMPRESSION: u32 = 1u32; +pub const MDM_DIAGNOSTICS: u32 = 2048u32; +pub const MDM_ERROR_CONTROL: u32 = 2u32; +pub const MDM_FLOWCONTROL_HARD: u32 = 16u32; +pub const MDM_FLOWCONTROL_SOFT: u32 = 32u32; +pub const MDM_FORCED_EC: u32 = 4u32; +pub const MDM_HDLCPPP_AUTH_CHAP: u32 = 3u32; +pub const MDM_HDLCPPP_AUTH_DEFAULT: u32 = 0u32; +pub const MDM_HDLCPPP_AUTH_MSCHAP: u32 = 4u32; +pub const MDM_HDLCPPP_AUTH_NONE: u32 = 1u32; +pub const MDM_HDLCPPP_AUTH_PAP: u32 = 2u32; +pub const MDM_HDLCPPP_ML_2: u32 = 2u32; +pub const MDM_HDLCPPP_ML_DEFAULT: u32 = 0u32; +pub const MDM_HDLCPPP_ML_NONE: u32 = 1u32; +pub const MDM_HDLCPPP_SPEED_56K: u32 = 2u32; +pub const MDM_HDLCPPP_SPEED_64K: u32 = 1u32; +pub const MDM_HDLCPPP_SPEED_DEFAULT: u32 = 0u32; +pub const MDM_MASK_AUTO_SPEED: u32 = 7u32; +pub const MDM_MASK_BEARERMODE: u32 = 61440u32; +pub const MDM_MASK_HDLCPPP_SPEED: u32 = 7u32; +pub const MDM_MASK_PROTOCOLDATA: u32 = 267386880u32; +pub const MDM_MASK_PROTOCOLID: u32 = 983040u32; +pub const MDM_MASK_V110_SPEED: u32 = 15u32; +pub const MDM_MASK_V120_SPEED: u32 = 7u32; +pub const MDM_MASK_X75_DATA: u32 = 7u32; +pub const MDM_PIAFS_INCOMING: u32 = 0u32; +pub const MDM_PIAFS_OUTGOING: u32 = 1u32; +pub const MDM_PROTOCOLID_ANALOG: u32 = 7u32; +pub const MDM_PROTOCOLID_AUTO: u32 = 6u32; +pub const MDM_PROTOCOLID_DEFAULT: u32 = 0u32; +pub const MDM_PROTOCOLID_GPRS: u32 = 8u32; +pub const MDM_PROTOCOLID_HDLCPPP: u32 = 1u32; +pub const MDM_PROTOCOLID_PIAFS: u32 = 9u32; +pub const MDM_PROTOCOLID_V110: u32 = 4u32; +pub const MDM_PROTOCOLID_V120: u32 = 5u32; +pub const MDM_PROTOCOLID_V128: u32 = 2u32; +pub const MDM_PROTOCOLID_X75: u32 = 3u32; +pub const MDM_SHIFT_AUTO_ML: u32 = 6u32; +pub const MDM_SHIFT_AUTO_SPEED: u32 = 0u32; +pub const MDM_SHIFT_BEARERMODE: u32 = 12u32; +pub const MDM_SHIFT_EXTENDEDINFO: u32 = 12u32; +pub const MDM_SHIFT_HDLCPPP_AUTH: u32 = 3u32; +pub const MDM_SHIFT_HDLCPPP_ML: u32 = 6u32; +pub const MDM_SHIFT_HDLCPPP_SPEED: u32 = 0u32; +pub const MDM_SHIFT_PROTOCOLDATA: u32 = 20u32; +pub const MDM_SHIFT_PROTOCOLID: u32 = 16u32; +pub const MDM_SHIFT_PROTOCOLINFO: u32 = 16u32; +pub const MDM_SHIFT_V110_SPEED: u32 = 0u32; +pub const MDM_SHIFT_V120_ML: u32 = 6u32; +pub const MDM_SHIFT_V120_SPEED: u32 = 0u32; +pub const MDM_SHIFT_X75_DATA: u32 = 0u32; +pub const MDM_SPEED_ADJUST: u32 = 128u32; +pub const MDM_TONE_DIAL: u32 = 256u32; +pub const MDM_V110_SPEED_12DOT0K: u32 = 5u32; +pub const MDM_V110_SPEED_14DOT4K: u32 = 6u32; +pub const MDM_V110_SPEED_19DOT2K: u32 = 7u32; +pub const MDM_V110_SPEED_1DOT2K: u32 = 1u32; +pub const MDM_V110_SPEED_28DOT8K: u32 = 8u32; +pub const MDM_V110_SPEED_2DOT4K: u32 = 2u32; +pub const MDM_V110_SPEED_38DOT4K: u32 = 9u32; +pub const MDM_V110_SPEED_4DOT8K: u32 = 3u32; +pub const MDM_V110_SPEED_57DOT6K: u32 = 10u32; +pub const MDM_V110_SPEED_9DOT6K: u32 = 4u32; +pub const MDM_V110_SPEED_DEFAULT: u32 = 0u32; +pub const MDM_V120_ML_2: u32 = 2u32; +pub const MDM_V120_ML_DEFAULT: u32 = 0u32; +pub const MDM_V120_ML_NONE: u32 = 1u32; +pub const MDM_V120_SPEED_56K: u32 = 2u32; +pub const MDM_V120_SPEED_64K: u32 = 1u32; +pub const MDM_V120_SPEED_DEFAULT: u32 = 0u32; +pub const MDM_V23_OVERRIDE: u32 = 1024u32; +pub const MDM_X75_DATA_128K: u32 = 2u32; +pub const MDM_X75_DATA_64K: u32 = 1u32; +pub const MDM_X75_DATA_BTX: u32 = 4u32; +pub const MDM_X75_DATA_DEFAULT: u32 = 0u32; +pub const MDM_X75_DATA_T_70: u32 = 3u32; +pub const MS_CTS_ON: MODEM_STATUS_FLAGS = 16u32; +pub const MS_DSR_ON: MODEM_STATUS_FLAGS = 32u32; +pub const MS_RING_ON: MODEM_STATUS_FLAGS = 64u32; +pub const MS_RLSD_ON: MODEM_STATUS_FLAGS = 128u32; +pub const NOPARITY: DCB_PARITY = 0u8; +pub const ODDPARITY: DCB_PARITY = 1u8; +pub const ONE5STOPBITS: DCB_STOP_BITS = 1u8; +pub const ONESTOPBIT: DCB_STOP_BITS = 0u8; +pub const PARITY_EVEN: COMMPROP_STOP_PARITY = 1024u16; +pub const PARITY_MARK: COMMPROP_STOP_PARITY = 2048u16; +pub const PARITY_NONE: COMMPROP_STOP_PARITY = 256u16; +pub const PARITY_ODD: COMMPROP_STOP_PARITY = 512u16; +pub const PARITY_SPACE: COMMPROP_STOP_PARITY = 4096u16; +pub const PURGE_RXABORT: PURGE_COMM_FLAGS = 2u32; +pub const PURGE_RXCLEAR: PURGE_COMM_FLAGS = 8u32; +pub const PURGE_TXABORT: PURGE_COMM_FLAGS = 1u32; +pub const PURGE_TXCLEAR: PURGE_COMM_FLAGS = 4u32; +pub const SETBREAK: ESCAPE_COMM_FUNCTION = 8u32; +pub const SETDTR: ESCAPE_COMM_FUNCTION = 5u32; +pub const SETRTS: ESCAPE_COMM_FUNCTION = 3u32; +pub const SETXOFF: ESCAPE_COMM_FUNCTION = 1u32; +pub const SETXON: ESCAPE_COMM_FUNCTION = 2u32; +pub const SID_3GPP_SUPSVCMODEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7d08e07_d767_4478_b14a_eecc87ea12f7); +pub const SPACEPARITY: DCB_PARITY = 4u8; +pub const STOPBITS_10: COMMPROP_STOP_PARITY = 1u16; +pub const STOPBITS_15: COMMPROP_STOP_PARITY = 2u16; +pub const STOPBITS_20: COMMPROP_STOP_PARITY = 4u16; +pub const TWOSTOPBITS: DCB_STOP_BITS = 2u8; +pub type CLEAR_COMM_ERROR_FLAGS = u32; +pub type COMMPROP_STOP_PARITY = u16; +pub type COMM_EVENT_MASK = u32; +pub type DCB_PARITY = u8; +pub type DCB_STOP_BITS = u8; +pub type ESCAPE_COMM_FUNCTION = u32; +pub type MODEMDEVCAPS_DIAL_OPTIONS = u32; +pub type MODEMDEVCAPS_SPEAKER_MODE = u32; +pub type MODEMDEVCAPS_SPEAKER_VOLUME = u32; +pub type MODEMSETTINGS_SPEAKER_MODE = u32; +pub type MODEM_SPEAKER_VOLUME = u32; +pub type MODEM_STATUS_FLAGS = u32; +pub type PURGE_COMM_FLAGS = u32; +#[repr(C)] +pub struct COMMCONFIG { + pub dwSize: u32, + pub wVersion: u16, + pub wReserved: u16, + pub dcb: DCB, + pub dwProviderSubType: u32, + pub dwProviderOffset: u32, + pub dwProviderSize: u32, + pub wcProviderData: [u16; 1], +} +impl ::core::marker::Copy for COMMCONFIG {} +impl ::core::clone::Clone for COMMCONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COMMPROP { + pub wPacketLength: u16, + pub wPacketVersion: u16, + pub dwServiceMask: u32, + pub dwReserved1: u32, + pub dwMaxTxQueue: u32, + pub dwMaxRxQueue: u32, + pub dwMaxBaud: u32, + pub dwProvSubType: u32, + pub dwProvCapabilities: u32, + pub dwSettableParams: u32, + pub dwSettableBaud: u32, + pub wSettableData: u16, + pub wSettableStopParity: COMMPROP_STOP_PARITY, + pub dwCurrentTxQueue: u32, + pub dwCurrentRxQueue: u32, + pub dwProvSpec1: u32, + pub dwProvSpec2: u32, + pub wcProvChar: [u16; 1], +} +impl ::core::marker::Copy for COMMPROP {} +impl ::core::clone::Clone for COMMPROP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COMMTIMEOUTS { + pub ReadIntervalTimeout: u32, + pub ReadTotalTimeoutMultiplier: u32, + pub ReadTotalTimeoutConstant: u32, + pub WriteTotalTimeoutMultiplier: u32, + pub WriteTotalTimeoutConstant: u32, +} +impl ::core::marker::Copy for COMMTIMEOUTS {} +impl ::core::clone::Clone for COMMTIMEOUTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COMSTAT { + pub _bitfield: u32, + pub cbInQue: u32, + pub cbOutQue: u32, +} +impl ::core::marker::Copy for COMSTAT {} +impl ::core::clone::Clone for COMSTAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DCB { + pub DCBlength: u32, + pub BaudRate: u32, + pub _bitfield: u32, + pub wReserved: u16, + pub XonLim: u16, + pub XoffLim: u16, + pub ByteSize: u8, + pub Parity: DCB_PARITY, + pub StopBits: DCB_STOP_BITS, + pub XonChar: u8, + pub XoffChar: u8, + pub ErrorChar: u8, + pub EofChar: u8, + pub EvtChar: u8, + pub wReserved1: u16, +} +impl ::core::marker::Copy for DCB {} +impl ::core::clone::Clone for DCB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MODEMDEVCAPS { + pub dwActualSize: u32, + pub dwRequiredSize: u32, + pub dwDevSpecificOffset: u32, + pub dwDevSpecificSize: u32, + pub dwModemProviderVersion: u32, + pub dwModemManufacturerOffset: u32, + pub dwModemManufacturerSize: u32, + pub dwModemModelOffset: u32, + pub dwModemModelSize: u32, + pub dwModemVersionOffset: u32, + pub dwModemVersionSize: u32, + pub dwDialOptions: MODEMDEVCAPS_DIAL_OPTIONS, + pub dwCallSetupFailTimer: u32, + pub dwInactivityTimeout: u32, + pub dwSpeakerVolume: MODEMDEVCAPS_SPEAKER_VOLUME, + pub dwSpeakerMode: MODEMDEVCAPS_SPEAKER_MODE, + pub dwModemOptions: u32, + pub dwMaxDTERate: u32, + pub dwMaxDCERate: u32, + pub abVariablePortion: [u8; 1], +} +impl ::core::marker::Copy for MODEMDEVCAPS {} +impl ::core::clone::Clone for MODEMDEVCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MODEMSETTINGS { + pub dwActualSize: u32, + pub dwRequiredSize: u32, + pub dwDevSpecificOffset: u32, + pub dwDevSpecificSize: u32, + pub dwCallSetupFailTimer: u32, + pub dwInactivityTimeout: u32, + pub dwSpeakerVolume: MODEM_SPEAKER_VOLUME, + pub dwSpeakerMode: MODEMSETTINGS_SPEAKER_MODE, + pub dwPreferredModemOptions: u32, + pub dwNegotiatedModemOptions: u32, + pub dwNegotiatedDCERate: u32, + pub abVariablePortion: [u8; 1], +} +impl ::core::marker::Copy for MODEMSETTINGS {} +impl ::core::clone::Clone for MODEMSETTINGS { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/DeviceAndDriverInstallation/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/DeviceAndDriverInstallation/mod.rs new file mode 100644 index 000000000..ee2298019 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/DeviceAndDriverInstallation/mod.rs @@ -0,0 +1,5430 @@ +::windows_targets::link!("cfgmgr32.dll" "system" fn CMP_WaitNoPendingInstallEvents(dwtimeout : u32) -> u32); +#[cfg(feature = "Win32_Data_HtmlHelp")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Data_HtmlHelp\"`"] fn CM_Add_Empty_Log_Conf(plclogconf : *mut usize, dndevinst : u32, priority : super::super::Data::HtmlHelp:: PRIORITY, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_Data_HtmlHelp")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Data_HtmlHelp\"`"] fn CM_Add_Empty_Log_Conf_Ex(plclogconf : *mut usize, dndevinst : u32, priority : super::super::Data::HtmlHelp:: PRIORITY, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Add_IDA(dndevinst : u32, pszid : ::windows_sys::core::PCSTR, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Add_IDW(dndevinst : u32, pszid : ::windows_sys::core::PCWSTR, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Add_ID_ExA(dndevinst : u32, pszid : ::windows_sys::core::PCSTR, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Add_ID_ExW(dndevinst : u32, pszid : ::windows_sys::core::PCWSTR, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Add_Range(ullstartvalue : u64, ullendvalue : u64, rlh : usize, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Add_Res_Des(prdresdes : *mut usize, lclogconf : usize, resourceid : u32, resourcedata : *const ::core::ffi::c_void, resourcelen : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Add_Res_Des_Ex(prdresdes : *mut usize, lclogconf : usize, resourceid : u32, resourcedata : *const ::core::ffi::c_void, resourcelen : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Connect_MachineA(uncservername : ::windows_sys::core::PCSTR, phmachine : *mut isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Connect_MachineW(uncservername : ::windows_sys::core::PCWSTR, phmachine : *mut isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Create_DevNodeA(pdndevinst : *mut u32, pdeviceid : ::windows_sys::core::PCSTR, dnparent : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Create_DevNodeW(pdndevinst : *mut u32, pdeviceid : ::windows_sys::core::PCWSTR, dnparent : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Create_DevNode_ExA(pdndevinst : *mut u32, pdeviceid : ::windows_sys::core::PCSTR, dnparent : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Create_DevNode_ExW(pdndevinst : *mut u32, pdeviceid : ::windows_sys::core::PCWSTR, dnparent : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Create_Range_List(prlh : *mut usize, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Delete_Class_Key(classguid : *const ::windows_sys::core::GUID, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Delete_Class_Key_Ex(classguid : *const ::windows_sys::core::GUID, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Delete_DevNode_Key(dndevnode : u32, ulhardwareprofile : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Delete_DevNode_Key_Ex(dndevnode : u32, ulhardwareprofile : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Delete_Device_Interface_KeyA(pszdeviceinterface : ::windows_sys::core::PCSTR, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Delete_Device_Interface_KeyW(pszdeviceinterface : ::windows_sys::core::PCWSTR, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Delete_Device_Interface_Key_ExA(pszdeviceinterface : ::windows_sys::core::PCSTR, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Delete_Device_Interface_Key_ExW(pszdeviceinterface : ::windows_sys::core::PCWSTR, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Delete_Range(ullstartvalue : u64, ullendvalue : u64, rlh : usize, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CM_Detect_Resource_Conflict(dndevinst : u32, resourceid : u32, resourcedata : *const ::core::ffi::c_void, resourcelen : u32, pbconflictdetected : *mut super::super::Foundation:: BOOL, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CM_Detect_Resource_Conflict_Ex(dndevinst : u32, resourceid : u32, resourcedata : *const ::core::ffi::c_void, resourcelen : u32, pbconflictdetected : *mut super::super::Foundation:: BOOL, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Disable_DevNode(dndevinst : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Disable_DevNode_Ex(dndevinst : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Disconnect_Machine(hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Dup_Range_List(rlhold : usize, rlhnew : usize, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Enable_DevNode(dndevinst : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Enable_DevNode_Ex(dndevinst : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Enumerate_Classes(ulclassindex : u32, classguid : *mut ::windows_sys::core::GUID, ulflags : CM_ENUMERATE_FLAGS) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Enumerate_Classes_Ex(ulclassindex : u32, classguid : *mut ::windows_sys::core::GUID, ulflags : CM_ENUMERATE_FLAGS, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Enumerate_EnumeratorsA(ulenumindex : u32, buffer : ::windows_sys::core::PSTR, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Enumerate_EnumeratorsW(ulenumindex : u32, buffer : ::windows_sys::core::PWSTR, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Enumerate_Enumerators_ExA(ulenumindex : u32, buffer : ::windows_sys::core::PSTR, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Enumerate_Enumerators_ExW(ulenumindex : u32, buffer : ::windows_sys::core::PWSTR, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Find_Range(pullstart : *mut u64, ullstart : u64, ullength : u32, ullalignment : u64, ullend : u64, rlh : usize, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_First_Range(rlh : usize, pullstart : *mut u64, pullend : *mut u64, preelement : *mut usize, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Free_Log_Conf(lclogconftobefreed : usize, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Free_Log_Conf_Ex(lclogconftobefreed : usize, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Free_Log_Conf_Handle(lclogconf : usize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Free_Range_List(rlh : usize, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Free_Res_Des(prdresdes : *mut usize, rdresdes : usize, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Free_Res_Des_Ex(prdresdes : *mut usize, rdresdes : usize, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Free_Res_Des_Handle(rdresdes : usize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Free_Resource_Conflict_Handle(clconflictlist : usize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Child(pdndevinst : *mut u32, dndevinst : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Child_Ex(pdndevinst : *mut u32, dndevinst : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Class_Key_NameA(classguid : *const ::windows_sys::core::GUID, pszkeyname : ::windows_sys::core::PSTR, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Class_Key_NameW(classguid : *const ::windows_sys::core::GUID, pszkeyname : ::windows_sys::core::PWSTR, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Class_Key_Name_ExA(classguid : *const ::windows_sys::core::GUID, pszkeyname : ::windows_sys::core::PSTR, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Class_Key_Name_ExW(classguid : *const ::windows_sys::core::GUID, pszkeyname : ::windows_sys::core::PWSTR, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Class_NameA(classguid : *const ::windows_sys::core::GUID, buffer : ::windows_sys::core::PSTR, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Class_NameW(classguid : *const ::windows_sys::core::GUID, buffer : ::windows_sys::core::PWSTR, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Class_Name_ExA(classguid : *const ::windows_sys::core::GUID, buffer : ::windows_sys::core::PSTR, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Class_Name_ExW(classguid : *const ::windows_sys::core::GUID, buffer : ::windows_sys::core::PWSTR, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Get_Class_PropertyW(classguid : *const ::windows_sys::core::GUID, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : *mut super::Properties:: DEVPROPTYPE, propertybuffer : *mut u8, propertybuffersize : *mut u32, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Get_Class_Property_ExW(classguid : *const ::windows_sys::core::GUID, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : *mut super::Properties:: DEVPROPTYPE, propertybuffer : *mut u8, propertybuffersize : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Get_Class_Property_Keys(classguid : *const ::windows_sys::core::GUID, propertykeyarray : *mut super::Properties:: DEVPROPKEY, propertykeycount : *mut u32, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Get_Class_Property_Keys_Ex(classguid : *const ::windows_sys::core::GUID, propertykeyarray : *mut super::Properties:: DEVPROPKEY, propertykeycount : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Class_Registry_PropertyA(classguid : *const ::windows_sys::core::GUID, ulproperty : u32, pulregdatatype : *mut u32, buffer : *mut ::core::ffi::c_void, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Class_Registry_PropertyW(classguid : *const ::windows_sys::core::GUID, ulproperty : u32, pulregdatatype : *mut u32, buffer : *mut ::core::ffi::c_void, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Depth(puldepth : *mut u32, dndevinst : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Depth_Ex(puldepth : *mut u32, dndevinst : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_DevNode_Custom_PropertyA(dndevinst : u32, pszcustompropertyname : ::windows_sys::core::PCSTR, pulregdatatype : *mut u32, buffer : *mut ::core::ffi::c_void, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_DevNode_Custom_PropertyW(dndevinst : u32, pszcustompropertyname : ::windows_sys::core::PCWSTR, pulregdatatype : *mut u32, buffer : *mut ::core::ffi::c_void, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_DevNode_Custom_Property_ExA(dndevinst : u32, pszcustompropertyname : ::windows_sys::core::PCSTR, pulregdatatype : *mut u32, buffer : *mut ::core::ffi::c_void, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_DevNode_Custom_Property_ExW(dndevinst : u32, pszcustompropertyname : ::windows_sys::core::PCWSTR, pulregdatatype : *mut u32, buffer : *mut ::core::ffi::c_void, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Get_DevNode_PropertyW(dndevinst : u32, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : *mut super::Properties:: DEVPROPTYPE, propertybuffer : *mut u8, propertybuffersize : *mut u32, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Get_DevNode_Property_ExW(dndevinst : u32, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : *mut super::Properties:: DEVPROPTYPE, propertybuffer : *mut u8, propertybuffersize : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Get_DevNode_Property_Keys(dndevinst : u32, propertykeyarray : *mut super::Properties:: DEVPROPKEY, propertykeycount : *mut u32, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Get_DevNode_Property_Keys_Ex(dndevinst : u32, propertykeyarray : *mut super::Properties:: DEVPROPKEY, propertykeycount : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_DevNode_Registry_PropertyA(dndevinst : u32, ulproperty : u32, pulregdatatype : *mut u32, buffer : *mut ::core::ffi::c_void, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_DevNode_Registry_PropertyW(dndevinst : u32, ulproperty : u32, pulregdatatype : *mut u32, buffer : *mut ::core::ffi::c_void, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_DevNode_Registry_Property_ExA(dndevinst : u32, ulproperty : u32, pulregdatatype : *mut u32, buffer : *mut ::core::ffi::c_void, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_DevNode_Registry_Property_ExW(dndevinst : u32, ulproperty : u32, pulregdatatype : *mut u32, buffer : *mut ::core::ffi::c_void, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_DevNode_Status(pulstatus : *mut CM_DEVNODE_STATUS_FLAGS, pulproblemnumber : *mut CM_PROB, dndevinst : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_DevNode_Status_Ex(pulstatus : *mut CM_DEVNODE_STATUS_FLAGS, pulproblemnumber : *mut CM_PROB, dndevinst : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_IDA(dndevinst : u32, buffer : ::windows_sys::core::PSTR, bufferlen : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_IDW(dndevinst : u32, buffer : ::windows_sys::core::PWSTR, bufferlen : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_ID_ExA(dndevinst : u32, buffer : ::windows_sys::core::PSTR, bufferlen : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_ID_ExW(dndevinst : u32, buffer : ::windows_sys::core::PWSTR, bufferlen : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_ID_ListA(pszfilter : ::windows_sys::core::PCSTR, buffer : ::windows_sys::core::PSTR, bufferlen : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_ID_ListW(pszfilter : ::windows_sys::core::PCWSTR, buffer : ::windows_sys::core::PWSTR, bufferlen : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_ID_List_ExA(pszfilter : ::windows_sys::core::PCSTR, buffer : ::windows_sys::core::PSTR, bufferlen : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_ID_List_ExW(pszfilter : ::windows_sys::core::PCWSTR, buffer : ::windows_sys::core::PWSTR, bufferlen : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_ID_List_SizeA(pullen : *mut u32, pszfilter : ::windows_sys::core::PCSTR, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_ID_List_SizeW(pullen : *mut u32, pszfilter : ::windows_sys::core::PCWSTR, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_ID_List_Size_ExA(pullen : *mut u32, pszfilter : ::windows_sys::core::PCSTR, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_ID_List_Size_ExW(pullen : *mut u32, pszfilter : ::windows_sys::core::PCWSTR, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_ID_Size(pullen : *mut u32, dndevinst : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_ID_Size_Ex(pullen : *mut u32, dndevinst : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_Interface_AliasA(pszdeviceinterface : ::windows_sys::core::PCSTR, aliasinterfaceguid : *const ::windows_sys::core::GUID, pszaliasdeviceinterface : ::windows_sys::core::PSTR, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_Interface_AliasW(pszdeviceinterface : ::windows_sys::core::PCWSTR, aliasinterfaceguid : *const ::windows_sys::core::GUID, pszaliasdeviceinterface : ::windows_sys::core::PWSTR, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_Interface_Alias_ExA(pszdeviceinterface : ::windows_sys::core::PCSTR, aliasinterfaceguid : *const ::windows_sys::core::GUID, pszaliasdeviceinterface : ::windows_sys::core::PSTR, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_Interface_Alias_ExW(pszdeviceinterface : ::windows_sys::core::PCWSTR, aliasinterfaceguid : *const ::windows_sys::core::GUID, pszaliasdeviceinterface : ::windows_sys::core::PWSTR, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_Interface_ListA(interfaceclassguid : *const ::windows_sys::core::GUID, pdeviceid : ::windows_sys::core::PCSTR, buffer : ::windows_sys::core::PSTR, bufferlen : u32, ulflags : CM_GET_DEVICE_INTERFACE_LIST_FLAGS) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_Interface_ListW(interfaceclassguid : *const ::windows_sys::core::GUID, pdeviceid : ::windows_sys::core::PCWSTR, buffer : ::windows_sys::core::PWSTR, bufferlen : u32, ulflags : CM_GET_DEVICE_INTERFACE_LIST_FLAGS) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_Interface_List_ExA(interfaceclassguid : *const ::windows_sys::core::GUID, pdeviceid : ::windows_sys::core::PCSTR, buffer : ::windows_sys::core::PSTR, bufferlen : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_Interface_List_ExW(interfaceclassguid : *const ::windows_sys::core::GUID, pdeviceid : ::windows_sys::core::PCWSTR, buffer : ::windows_sys::core::PWSTR, bufferlen : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_Interface_List_SizeA(pullen : *mut u32, interfaceclassguid : *const ::windows_sys::core::GUID, pdeviceid : ::windows_sys::core::PCSTR, ulflags : CM_GET_DEVICE_INTERFACE_LIST_FLAGS) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_Interface_List_SizeW(pullen : *mut u32, interfaceclassguid : *const ::windows_sys::core::GUID, pdeviceid : ::windows_sys::core::PCWSTR, ulflags : CM_GET_DEVICE_INTERFACE_LIST_FLAGS) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_Interface_List_Size_ExA(pullen : *mut u32, interfaceclassguid : *const ::windows_sys::core::GUID, pdeviceid : ::windows_sys::core::PCSTR, ulflags : CM_GET_DEVICE_INTERFACE_LIST_FLAGS, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Device_Interface_List_Size_ExW(pullen : *mut u32, interfaceclassguid : *const ::windows_sys::core::GUID, pdeviceid : ::windows_sys::core::PCWSTR, ulflags : CM_GET_DEVICE_INTERFACE_LIST_FLAGS, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Get_Device_Interface_PropertyW(pszdeviceinterface : ::windows_sys::core::PCWSTR, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : *mut super::Properties:: DEVPROPTYPE, propertybuffer : *mut u8, propertybuffersize : *mut u32, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Get_Device_Interface_Property_ExW(pszdeviceinterface : ::windows_sys::core::PCWSTR, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : *mut super::Properties:: DEVPROPTYPE, propertybuffer : *mut u8, propertybuffersize : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Get_Device_Interface_Property_KeysW(pszdeviceinterface : ::windows_sys::core::PCWSTR, propertykeyarray : *mut super::Properties:: DEVPROPKEY, propertykeycount : *mut u32, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Get_Device_Interface_Property_Keys_ExW(pszdeviceinterface : ::windows_sys::core::PCWSTR, propertykeyarray : *mut super::Properties:: DEVPROPKEY, propertykeycount : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_First_Log_Conf(plclogconf : *mut usize, dndevinst : u32, ulflags : CM_LOG_CONF) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_First_Log_Conf_Ex(plclogconf : *mut usize, dndevinst : u32, ulflags : CM_LOG_CONF, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Global_State(pulstate : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Global_State_Ex(pulstate : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_HW_Prof_FlagsA(pdeviceid : ::windows_sys::core::PCSTR, ulhardwareprofile : u32, pulvalue : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_HW_Prof_FlagsW(pdeviceid : ::windows_sys::core::PCWSTR, ulhardwareprofile : u32, pulvalue : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_HW_Prof_Flags_ExA(pdeviceid : ::windows_sys::core::PCSTR, ulhardwareprofile : u32, pulvalue : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_HW_Prof_Flags_ExW(pdeviceid : ::windows_sys::core::PCWSTR, ulhardwareprofile : u32, pulvalue : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Hardware_Profile_InfoA(ulindex : u32, phwprofileinfo : *mut HWPROFILEINFO_A, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Hardware_Profile_InfoW(ulindex : u32, phwprofileinfo : *mut HWPROFILEINFO_W, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Hardware_Profile_Info_ExA(ulindex : u32, phwprofileinfo : *mut HWPROFILEINFO_A, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Hardware_Profile_Info_ExW(ulindex : u32, phwprofileinfo : *mut HWPROFILEINFO_W, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Log_Conf_Priority(lclogconf : usize, ppriority : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Log_Conf_Priority_Ex(lclogconf : usize, ppriority : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Next_Log_Conf(plclogconf : *mut usize, lclogconf : usize, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Next_Log_Conf_Ex(plclogconf : *mut usize, lclogconf : usize, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Next_Res_Des(prdresdes : *mut usize, rdresdes : usize, forresource : CM_RESTYPE, presourceid : *mut CM_RESTYPE, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Next_Res_Des_Ex(prdresdes : *mut usize, rdresdes : usize, forresource : CM_RESTYPE, presourceid : *mut CM_RESTYPE, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Parent(pdndevinst : *mut u32, dndevinst : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Parent_Ex(pdndevinst : *mut u32, dndevinst : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Res_Des_Data(rdresdes : usize, buffer : *mut ::core::ffi::c_void, bufferlen : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Res_Des_Data_Ex(rdresdes : usize, buffer : *mut ::core::ffi::c_void, bufferlen : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Res_Des_Data_Size(pulsize : *mut u32, rdresdes : usize, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Res_Des_Data_Size_Ex(pulsize : *mut u32, rdresdes : usize, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Resource_Conflict_Count(clconflictlist : usize, pulcount : *mut u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Resource_Conflict_DetailsA(clconflictlist : usize, ulindex : u32, pconflictdetails : *mut CONFLICT_DETAILS_A) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Resource_Conflict_DetailsW(clconflictlist : usize, ulindex : u32, pconflictdetails : *mut CONFLICT_DETAILS_W) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Sibling(pdndevinst : *mut u32, dndevinst : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Sibling_Ex(pdndevinst : *mut u32, dndevinst : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Version() -> u16); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Get_Version_Ex(hmachine : isize) -> u16); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Intersect_Range_List(rlhold1 : usize, rlhold2 : usize, rlhnew : usize, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Invert_Range_List(rlhold : usize, rlhnew : usize, ullmaxvalue : u64, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CM_Is_Dock_Station_Present(pbpresent : *mut super::super::Foundation:: BOOL) -> CONFIGRET); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CM_Is_Dock_Station_Present_Ex(pbpresent : *mut super::super::Foundation:: BOOL, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CM_Is_Version_Available(wversion : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CM_Is_Version_Available_Ex(wversion : u16, hmachine : isize) -> super::super::Foundation:: BOOL); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Locate_DevNodeA(pdndevinst : *mut u32, pdeviceid : ::windows_sys::core::PCSTR, ulflags : CM_LOCATE_DEVNODE_FLAGS) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Locate_DevNodeW(pdndevinst : *mut u32, pdeviceid : ::windows_sys::core::PCWSTR, ulflags : CM_LOCATE_DEVNODE_FLAGS) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Locate_DevNode_ExA(pdndevinst : *mut u32, pdeviceid : ::windows_sys::core::PCSTR, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Locate_DevNode_ExW(pdndevinst : *mut u32, pdeviceid : ::windows_sys::core::PCWSTR, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_MapCrToWin32Err(cmreturncode : CONFIGRET, defaulterr : u32) -> u32); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Merge_Range_List(rlhold1 : usize, rlhold2 : usize, rlhnew : usize, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Modify_Res_Des(prdresdes : *mut usize, rdresdes : usize, resourceid : u32, resourcedata : *const ::core::ffi::c_void, resourcelen : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Modify_Res_Des_Ex(prdresdes : *mut usize, rdresdes : usize, resourceid : u32, resourcedata : *const ::core::ffi::c_void, resourcelen : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Move_DevNode(dnfromdevinst : u32, dntodevinst : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Move_DevNode_Ex(dnfromdevinst : u32, dntodevinst : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Next_Range(preelement : *mut usize, pullstart : *mut u64, pullend : *mut u64, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn CM_Open_Class_KeyA(classguid : *const ::windows_sys::core::GUID, pszclassname : ::windows_sys::core::PCSTR, samdesired : u32, disposition : u32, phkclass : *mut super::super::System::Registry:: HKEY, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn CM_Open_Class_KeyW(classguid : *const ::windows_sys::core::GUID, pszclassname : ::windows_sys::core::PCWSTR, samdesired : u32, disposition : u32, phkclass : *mut super::super::System::Registry:: HKEY, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn CM_Open_Class_Key_ExA(classguid : *const ::windows_sys::core::GUID, pszclassname : ::windows_sys::core::PCSTR, samdesired : u32, disposition : u32, phkclass : *mut super::super::System::Registry:: HKEY, ulflags : u32, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn CM_Open_Class_Key_ExW(classguid : *const ::windows_sys::core::GUID, pszclassname : ::windows_sys::core::PCWSTR, samdesired : u32, disposition : u32, phkclass : *mut super::super::System::Registry:: HKEY, ulflags : u32, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn CM_Open_DevNode_Key(dndevnode : u32, samdesired : u32, ulhardwareprofile : u32, disposition : u32, phkdevice : *mut super::super::System::Registry:: HKEY, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn CM_Open_DevNode_Key_Ex(dndevnode : u32, samdesired : u32, ulhardwareprofile : u32, disposition : u32, phkdevice : *mut super::super::System::Registry:: HKEY, ulflags : u32, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn CM_Open_Device_Interface_KeyA(pszdeviceinterface : ::windows_sys::core::PCSTR, samdesired : u32, disposition : u32, phkdeviceinterface : *mut super::super::System::Registry:: HKEY, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn CM_Open_Device_Interface_KeyW(pszdeviceinterface : ::windows_sys::core::PCWSTR, samdesired : u32, disposition : u32, phkdeviceinterface : *mut super::super::System::Registry:: HKEY, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn CM_Open_Device_Interface_Key_ExA(pszdeviceinterface : ::windows_sys::core::PCSTR, samdesired : u32, disposition : u32, phkdeviceinterface : *mut super::super::System::Registry:: HKEY, ulflags : u32, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn CM_Open_Device_Interface_Key_ExW(pszdeviceinterface : ::windows_sys::core::PCWSTR, samdesired : u32, disposition : u32, phkdeviceinterface : *mut super::super::System::Registry:: HKEY, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Query_And_Remove_SubTreeA(dnancestor : u32, pvetotype : *mut PNP_VETO_TYPE, pszvetoname : ::windows_sys::core::PSTR, ulnamelength : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Query_And_Remove_SubTreeW(dnancestor : u32, pvetotype : *mut PNP_VETO_TYPE, pszvetoname : ::windows_sys::core::PWSTR, ulnamelength : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Query_And_Remove_SubTree_ExA(dnancestor : u32, pvetotype : *mut PNP_VETO_TYPE, pszvetoname : ::windows_sys::core::PSTR, ulnamelength : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Query_And_Remove_SubTree_ExW(dnancestor : u32, pvetotype : *mut PNP_VETO_TYPE, pszvetoname : ::windows_sys::core::PWSTR, ulnamelength : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Query_Arbitrator_Free_Data(pdata : *mut ::core::ffi::c_void, datalen : u32, dndevinst : u32, resourceid : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Query_Arbitrator_Free_Data_Ex(pdata : *mut ::core::ffi::c_void, datalen : u32, dndevinst : u32, resourceid : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Query_Arbitrator_Free_Size(pulsize : *mut u32, dndevinst : u32, resourceid : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Query_Arbitrator_Free_Size_Ex(pulsize : *mut u32, dndevinst : u32, resourceid : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Query_Remove_SubTree(dnancestor : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Query_Remove_SubTree_Ex(dnancestor : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Query_Resource_Conflict_List(pclconflictlist : *mut usize, dndevinst : u32, resourceid : CM_RESTYPE, resourcedata : *const ::core::ffi::c_void, resourcelen : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Reenumerate_DevNode(dndevinst : u32, ulflags : CM_REENUMERATE_FLAGS) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Reenumerate_DevNode_Ex(dndevinst : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Register_Device_Driver(dndevinst : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Register_Device_Driver_Ex(dndevinst : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Register_Device_InterfaceA(dndevinst : u32, interfaceclassguid : *const ::windows_sys::core::GUID, pszreference : ::windows_sys::core::PCSTR, pszdeviceinterface : ::windows_sys::core::PSTR, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Register_Device_InterfaceW(dndevinst : u32, interfaceclassguid : *const ::windows_sys::core::GUID, pszreference : ::windows_sys::core::PCWSTR, pszdeviceinterface : ::windows_sys::core::PWSTR, pullength : *mut u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Register_Device_Interface_ExA(dndevinst : u32, interfaceclassguid : *const ::windows_sys::core::GUID, pszreference : ::windows_sys::core::PCSTR, pszdeviceinterface : ::windows_sys::core::PSTR, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Register_Device_Interface_ExW(dndevinst : u32, interfaceclassguid : *const ::windows_sys::core::GUID, pszreference : ::windows_sys::core::PCWSTR, pszdeviceinterface : ::windows_sys::core::PWSTR, pullength : *mut u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CM_Register_Notification(pfilter : *const CM_NOTIFY_FILTER, pcontext : *const ::core::ffi::c_void, pcallback : PCM_NOTIFY_CALLBACK, pnotifycontext : *mut HCMNOTIFICATION) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Remove_SubTree(dnancestor : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Remove_SubTree_Ex(dnancestor : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Request_Device_EjectA(dndevinst : u32, pvetotype : *mut PNP_VETO_TYPE, pszvetoname : ::windows_sys::core::PSTR, ulnamelength : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Request_Device_EjectW(dndevinst : u32, pvetotype : *mut PNP_VETO_TYPE, pszvetoname : ::windows_sys::core::PWSTR, ulnamelength : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Request_Device_Eject_ExA(dndevinst : u32, pvetotype : *mut PNP_VETO_TYPE, pszvetoname : ::windows_sys::core::PSTR, ulnamelength : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Request_Device_Eject_ExW(dndevinst : u32, pvetotype : *mut PNP_VETO_TYPE, pszvetoname : ::windows_sys::core::PWSTR, ulnamelength : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Request_Eject_PC() -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Request_Eject_PC_Ex(hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Run_Detection(ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Run_Detection_Ex(ulflags : u32, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Set_Class_PropertyW(classguid : *const ::windows_sys::core::GUID, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : super::Properties:: DEVPROPTYPE, propertybuffer : *const u8, propertybuffersize : u32, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Set_Class_Property_ExW(classguid : *const ::windows_sys::core::GUID, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : super::Properties:: DEVPROPTYPE, propertybuffer : *const u8, propertybuffersize : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_Class_Registry_PropertyA(classguid : *const ::windows_sys::core::GUID, ulproperty : u32, buffer : *const ::core::ffi::c_void, ullength : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_Class_Registry_PropertyW(classguid : *const ::windows_sys::core::GUID, ulproperty : u32, buffer : *const ::core::ffi::c_void, ullength : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_DevNode_Problem(dndevinst : u32, ulproblem : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_DevNode_Problem_Ex(dndevinst : u32, ulproblem : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Set_DevNode_PropertyW(dndevinst : u32, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : super::Properties:: DEVPROPTYPE, propertybuffer : *const u8, propertybuffersize : u32, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Set_DevNode_Property_ExW(dndevinst : u32, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : super::Properties:: DEVPROPTYPE, propertybuffer : *const u8, propertybuffersize : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_DevNode_Registry_PropertyA(dndevinst : u32, ulproperty : u32, buffer : *const ::core::ffi::c_void, ullength : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_DevNode_Registry_PropertyW(dndevinst : u32, ulproperty : u32, buffer : *const ::core::ffi::c_void, ullength : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_DevNode_Registry_Property_ExA(dndevinst : u32, ulproperty : u32, buffer : *const ::core::ffi::c_void, ullength : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_DevNode_Registry_Property_ExW(dndevinst : u32, ulproperty : u32, buffer : *const ::core::ffi::c_void, ullength : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Set_Device_Interface_PropertyW(pszdeviceinterface : ::windows_sys::core::PCWSTR, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : super::Properties:: DEVPROPTYPE, propertybuffer : *const u8, propertybuffersize : u32, ulflags : u32) -> CONFIGRET); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn CM_Set_Device_Interface_Property_ExW(pszdeviceinterface : ::windows_sys::core::PCWSTR, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : super::Properties:: DEVPROPTYPE, propertybuffer : *const u8, propertybuffersize : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_HW_Prof(ulhardwareprofile : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_HW_Prof_Ex(ulhardwareprofile : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_HW_Prof_FlagsA(pdeviceid : ::windows_sys::core::PCSTR, ulconfig : u32, ulvalue : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_HW_Prof_FlagsW(pdeviceid : ::windows_sys::core::PCWSTR, ulconfig : u32, ulvalue : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_HW_Prof_Flags_ExA(pdeviceid : ::windows_sys::core::PCSTR, ulconfig : u32, ulvalue : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Set_HW_Prof_Flags_ExW(pdeviceid : ::windows_sys::core::PCWSTR, ulconfig : u32, ulvalue : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Setup_DevNode(dndevinst : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Setup_DevNode_Ex(dndevinst : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Test_Range_Available(ullstartvalue : u64, ullendvalue : u64, rlh : usize, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Uninstall_DevNode(dndevinst : u32, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Uninstall_DevNode_Ex(dndevinst : u32, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Unregister_Device_InterfaceA(pszdeviceinterface : ::windows_sys::core::PCSTR, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Unregister_Device_InterfaceW(pszdeviceinterface : ::windows_sys::core::PCWSTR, ulflags : u32) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Unregister_Device_Interface_ExA(pszdeviceinterface : ::windows_sys::core::PCSTR, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Unregister_Device_Interface_ExW(pszdeviceinterface : ::windows_sys::core::PCWSTR, ulflags : u32, hmachine : isize) -> CONFIGRET); +::windows_targets::link!("cfgmgr32.dll" "system" fn CM_Unregister_Notification(notifycontext : HCMNOTIFICATION) -> CONFIGRET); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("newdev.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DiInstallDevice(hwndparent : super::super::Foundation:: HWND, deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, driverinfodata : *const SP_DRVINFO_DATA_V2_W, flags : DIINSTALLDEVICE_FLAGS, needreboot : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("newdev.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DiInstallDriverA(hwndparent : super::super::Foundation:: HWND, infpath : ::windows_sys::core::PCSTR, flags : DIINSTALLDRIVER_FLAGS, needreboot : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("newdev.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DiInstallDriverW(hwndparent : super::super::Foundation:: HWND, infpath : ::windows_sys::core::PCWSTR, flags : DIINSTALLDRIVER_FLAGS, needreboot : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("newdev.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DiRollbackDriver(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, hwndparent : super::super::Foundation:: HWND, flags : DIROLLBACKDRIVER_FLAGS, needreboot : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("newdev.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DiShowUpdateDevice(hwndparent : super::super::Foundation:: HWND, deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, flags : u32, needreboot : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("newdev.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DiShowUpdateDriver(hwndparent : super::super::Foundation:: HWND, filepath : ::windows_sys::core::PCWSTR, flags : u32, needreboot : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("newdev.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DiUninstallDevice(hwndparent : super::super::Foundation:: HWND, deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, flags : u32, needreboot : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("newdev.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DiUninstallDriverA(hwndparent : super::super::Foundation:: HWND, infpath : ::windows_sys::core::PCSTR, flags : DIUNINSTALLDRIVER_FLAGS, needreboot : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("newdev.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DiUninstallDriverW(hwndparent : super::super::Foundation:: HWND, infpath : ::windows_sys::core::PCWSTR, flags : DIUNINSTALLDRIVER_FLAGS, needreboot : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InstallHinfSectionA(window : super::super::Foundation:: HWND, modulehandle : super::super::Foundation:: HINSTANCE, commandline : ::windows_sys::core::PCSTR, showcommand : i32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InstallHinfSectionW(window : super::super::Foundation:: HWND, modulehandle : super::super::Foundation:: HINSTANCE, commandline : ::windows_sys::core::PCWSTR, showcommand : i32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupAddInstallSectionToDiskSpaceListA(diskspace : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, layoutinfhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCSTR, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupAddInstallSectionToDiskSpaceListW(diskspace : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, layoutinfhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCWSTR, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupAddSectionToDiskSpaceListA(diskspace : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, listinfhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCSTR, operation : SETUP_FILE_OPERATION, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupAddSectionToDiskSpaceListW(diskspace : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, listinfhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCWSTR, operation : SETUP_FILE_OPERATION, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupAddToDiskSpaceListA(diskspace : *const ::core::ffi::c_void, targetfilespec : ::windows_sys::core::PCSTR, filesize : i64, operation : SETUP_FILE_OPERATION, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupAddToDiskSpaceListW(diskspace : *const ::core::ffi::c_void, targetfilespec : ::windows_sys::core::PCWSTR, filesize : i64, operation : SETUP_FILE_OPERATION, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupAddToSourceListA(flags : u32, source : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupAddToSourceListW(flags : u32, source : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupAdjustDiskSpaceListA(diskspace : *const ::core::ffi::c_void, driveroot : ::windows_sys::core::PCSTR, amount : i64, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupAdjustDiskSpaceListW(diskspace : *const ::core::ffi::c_void, driveroot : ::windows_sys::core::PCWSTR, amount : i64, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupBackupErrorA(hwndparent : super::super::Foundation:: HWND, dialogtitle : ::windows_sys::core::PCSTR, sourcefile : ::windows_sys::core::PCSTR, targetfile : ::windows_sys::core::PCSTR, win32errorcode : u32, style : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupBackupErrorW(hwndparent : super::super::Foundation:: HWND, dialogtitle : ::windows_sys::core::PCWSTR, sourcefile : ::windows_sys::core::PCWSTR, targetfile : ::windows_sys::core::PCWSTR, win32errorcode : u32, style : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupCancelTemporarySourceList() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupCloseFileQueue(queuehandle : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("setupapi.dll" "system" fn SetupCloseInfFile(infhandle : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("setupapi.dll" "system" fn SetupCloseLog() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupCommitFileQueueA(owner : super::super::Foundation:: HWND, queuehandle : *const ::core::ffi::c_void, msghandler : PSP_FILE_CALLBACK_A, context : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupCommitFileQueueW(owner : super::super::Foundation:: HWND, queuehandle : *const ::core::ffi::c_void, msghandler : PSP_FILE_CALLBACK_W, context : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupConfigureWmiFromInfSectionA(infhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCSTR, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupConfigureWmiFromInfSectionW(infhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCWSTR, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupCopyErrorA(hwndparent : super::super::Foundation:: HWND, dialogtitle : ::windows_sys::core::PCSTR, diskname : ::windows_sys::core::PCSTR, pathtosource : ::windows_sys::core::PCSTR, sourcefile : ::windows_sys::core::PCSTR, targetpathfile : ::windows_sys::core::PCSTR, win32errorcode : u32, style : u32, pathbuffer : ::windows_sys::core::PSTR, pathbuffersize : u32, pathrequiredsize : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupCopyErrorW(hwndparent : super::super::Foundation:: HWND, dialogtitle : ::windows_sys::core::PCWSTR, diskname : ::windows_sys::core::PCWSTR, pathtosource : ::windows_sys::core::PCWSTR, sourcefile : ::windows_sys::core::PCWSTR, targetpathfile : ::windows_sys::core::PCWSTR, win32errorcode : u32, style : u32, pathbuffer : ::windows_sys::core::PWSTR, pathbuffersize : u32, pathrequiredsize : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupCopyOEMInfA(sourceinffilename : ::windows_sys::core::PCSTR, oemsourcemedialocation : ::windows_sys::core::PCSTR, oemsourcemediatype : OEM_SOURCE_MEDIA_TYPE, copystyle : SP_COPY_STYLE, destinationinffilename : ::windows_sys::core::PSTR, destinationinffilenamesize : u32, requiredsize : *mut u32, destinationinffilenamecomponent : *mut ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupCopyOEMInfW(sourceinffilename : ::windows_sys::core::PCWSTR, oemsourcemedialocation : ::windows_sys::core::PCWSTR, oemsourcemediatype : OEM_SOURCE_MEDIA_TYPE, copystyle : SP_COPY_STYLE, destinationinffilename : ::windows_sys::core::PWSTR, destinationinffilenamesize : u32, requiredsize : *mut u32, destinationinffilenamecomponent : *mut ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("setupapi.dll" "system" fn SetupCreateDiskSpaceListA(reserved1 : *const ::core::ffi::c_void, reserved2 : u32, flags : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("setupapi.dll" "system" fn SetupCreateDiskSpaceListW(reserved1 : *const ::core::ffi::c_void, reserved2 : u32, flags : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("setupapi.dll" "system" fn SetupDecompressOrCopyFileA(sourcefilename : ::windows_sys::core::PCSTR, targetfilename : ::windows_sys::core::PCSTR, compressiontype : *const u32) -> u32); +::windows_targets::link!("setupapi.dll" "system" fn SetupDecompressOrCopyFileW(sourcefilename : ::windows_sys::core::PCWSTR, targetfilename : ::windows_sys::core::PCWSTR, compressiontype : *const u32) -> u32); +::windows_targets::link!("setupapi.dll" "system" fn SetupDefaultQueueCallbackA(context : *const ::core::ffi::c_void, notification : u32, param1 : usize, param2 : usize) -> u32); +::windows_targets::link!("setupapi.dll" "system" fn SetupDefaultQueueCallbackW(context : *const ::core::ffi::c_void, notification : u32, param1 : usize, param2 : usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDeleteErrorA(hwndparent : super::super::Foundation:: HWND, dialogtitle : ::windows_sys::core::PCSTR, file : ::windows_sys::core::PCSTR, win32errorcode : u32, style : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDeleteErrorW(hwndparent : super::super::Foundation:: HWND, dialogtitle : ::windows_sys::core::PCWSTR, file : ::windows_sys::core::PCWSTR, win32errorcode : u32, style : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDestroyDiskSpaceList(diskspace : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiAskForOEMDisk(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiBuildClassInfoList(flags : u32, classguidlist : *mut ::windows_sys::core::GUID, classguidlistsize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiBuildClassInfoListExA(flags : u32, classguidlist : *mut ::windows_sys::core::GUID, classguidlistsize : u32, requiredsize : *mut u32, machinename : ::windows_sys::core::PCSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiBuildClassInfoListExW(flags : u32, classguidlist : *mut ::windows_sys::core::GUID, classguidlistsize : u32, requiredsize : *mut u32, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiBuildDriverInfoList(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA, drivertype : SETUP_DI_BUILD_DRIVER_DRIVER_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiCallClassInstaller(installfunction : u32, deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiCancelDriverInfoSearch(deviceinfoset : HDEVINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiChangeState(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiClassGuidsFromNameA(classname : ::windows_sys::core::PCSTR, classguidlist : *mut ::windows_sys::core::GUID, classguidlistsize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiClassGuidsFromNameExA(classname : ::windows_sys::core::PCSTR, classguidlist : *mut ::windows_sys::core::GUID, classguidlistsize : u32, requiredsize : *mut u32, machinename : ::windows_sys::core::PCSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiClassGuidsFromNameExW(classname : ::windows_sys::core::PCWSTR, classguidlist : *mut ::windows_sys::core::GUID, classguidlistsize : u32, requiredsize : *mut u32, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiClassGuidsFromNameW(classname : ::windows_sys::core::PCWSTR, classguidlist : *mut ::windows_sys::core::GUID, classguidlistsize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiClassNameFromGuidA(classguid : *const ::windows_sys::core::GUID, classname : ::windows_sys::core::PSTR, classnamesize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiClassNameFromGuidExA(classguid : *const ::windows_sys::core::GUID, classname : ::windows_sys::core::PSTR, classnamesize : u32, requiredsize : *mut u32, machinename : ::windows_sys::core::PCSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiClassNameFromGuidExW(classguid : *const ::windows_sys::core::GUID, classname : ::windows_sys::core::PWSTR, classnamesize : u32, requiredsize : *mut u32, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiClassNameFromGuidW(classguid : *const ::windows_sys::core::GUID, classname : ::windows_sys::core::PWSTR, classnamesize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SetupDiCreateDevRegKeyA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, scope : u32, hwprofile : u32, keytype : u32, infhandle : *const ::core::ffi::c_void, infsectionname : ::windows_sys::core::PCSTR) -> super::super::System::Registry:: HKEY); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SetupDiCreateDevRegKeyW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, scope : u32, hwprofile : u32, keytype : u32, infhandle : *const ::core::ffi::c_void, infsectionname : ::windows_sys::core::PCWSTR) -> super::super::System::Registry:: HKEY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiCreateDeviceInfoA(deviceinfoset : HDEVINFO, devicename : ::windows_sys::core::PCSTR, classguid : *const ::windows_sys::core::GUID, devicedescription : ::windows_sys::core::PCSTR, hwndparent : super::super::Foundation:: HWND, creationflags : u32, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiCreateDeviceInfoList(classguid : *const ::windows_sys::core::GUID, hwndparent : super::super::Foundation:: HWND) -> HDEVINFO); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiCreateDeviceInfoListExA(classguid : *const ::windows_sys::core::GUID, hwndparent : super::super::Foundation:: HWND, machinename : ::windows_sys::core::PCSTR, reserved : *const ::core::ffi::c_void) -> HDEVINFO); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiCreateDeviceInfoListExW(classguid : *const ::windows_sys::core::GUID, hwndparent : super::super::Foundation:: HWND, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> HDEVINFO); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiCreateDeviceInfoW(deviceinfoset : HDEVINFO, devicename : ::windows_sys::core::PCWSTR, classguid : *const ::windows_sys::core::GUID, devicedescription : ::windows_sys::core::PCWSTR, hwndparent : super::super::Foundation:: HWND, creationflags : u32, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiCreateDeviceInterfaceA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, interfaceclassguid : *const ::windows_sys::core::GUID, referencestring : ::windows_sys::core::PCSTR, creationflags : u32, deviceinterfacedata : *mut SP_DEVICE_INTERFACE_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SetupDiCreateDeviceInterfaceRegKeyA(deviceinfoset : HDEVINFO, deviceinterfacedata : *const SP_DEVICE_INTERFACE_DATA, reserved : u32, samdesired : u32, infhandle : *const ::core::ffi::c_void, infsectionname : ::windows_sys::core::PCSTR) -> super::super::System::Registry:: HKEY); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SetupDiCreateDeviceInterfaceRegKeyW(deviceinfoset : HDEVINFO, deviceinterfacedata : *const SP_DEVICE_INTERFACE_DATA, reserved : u32, samdesired : u32, infhandle : *const ::core::ffi::c_void, infsectionname : ::windows_sys::core::PCWSTR) -> super::super::System::Registry:: HKEY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiCreateDeviceInterfaceW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, interfaceclassguid : *const ::windows_sys::core::GUID, referencestring : ::windows_sys::core::PCWSTR, creationflags : u32, deviceinterfacedata : *mut SP_DEVICE_INTERFACE_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiDeleteDevRegKey(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, scope : u32, hwprofile : u32, keytype : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiDeleteDeviceInfo(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiDeleteDeviceInterfaceData(deviceinfoset : HDEVINFO, deviceinterfacedata : *const SP_DEVICE_INTERFACE_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiDeleteDeviceInterfaceRegKey(deviceinfoset : HDEVINFO, deviceinterfacedata : *const SP_DEVICE_INTERFACE_DATA, reserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn SetupDiDestroyClassImageList(classimagelistdata : *const SP_CLASSIMAGELIST_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiDestroyDeviceInfoList(deviceinfoset : HDEVINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiDestroyDriverInfoList(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, drivertype : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn SetupDiDrawMiniIcon(hdc : super::super::Graphics::Gdi:: HDC, rc : super::super::Foundation:: RECT, miniiconindex : i32, flags : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiEnumDeviceInfo(deviceinfoset : HDEVINFO, memberindex : u32, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiEnumDeviceInterfaces(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, interfaceclassguid : *const ::windows_sys::core::GUID, memberindex : u32, deviceinterfacedata : *mut SP_DEVICE_INTERFACE_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiEnumDriverInfoA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, drivertype : u32, memberindex : u32, driverinfodata : *mut SP_DRVINFO_DATA_V2_A) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiEnumDriverInfoW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, drivertype : u32, memberindex : u32, driverinfodata : *mut SP_DRVINFO_DATA_V2_W) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn SetupDiGetActualModelsSectionA(context : *const INFCONTEXT, alternateplatforminfo : *const SP_ALTPLATFORM_INFO_V2, infsectionwithext : ::windows_sys::core::PSTR, infsectionwithextsize : u32, requiredsize : *mut u32, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn SetupDiGetActualModelsSectionW(context : *const INFCONTEXT, alternateplatforminfo : *const SP_ALTPLATFORM_INFO_V2, infsectionwithext : ::windows_sys::core::PWSTR, infsectionwithextsize : u32, requiredsize : *mut u32, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetActualSectionToInstallA(infhandle : *const ::core::ffi::c_void, infsectionname : ::windows_sys::core::PCSTR, infsectionwithext : ::windows_sys::core::PSTR, infsectionwithextsize : u32, requiredsize : *mut u32, extension : *mut ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn SetupDiGetActualSectionToInstallExA(infhandle : *const ::core::ffi::c_void, infsectionname : ::windows_sys::core::PCSTR, alternateplatforminfo : *const SP_ALTPLATFORM_INFO_V2, infsectionwithext : ::windows_sys::core::PSTR, infsectionwithextsize : u32, requiredsize : *mut u32, extension : *mut ::windows_sys::core::PSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn SetupDiGetActualSectionToInstallExW(infhandle : *const ::core::ffi::c_void, infsectionname : ::windows_sys::core::PCWSTR, alternateplatforminfo : *const SP_ALTPLATFORM_INFO_V2, infsectionwithext : ::windows_sys::core::PWSTR, infsectionwithextsize : u32, requiredsize : *mut u32, extension : *mut ::windows_sys::core::PWSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetActualSectionToInstallW(infhandle : *const ::core::ffi::c_void, infsectionname : ::windows_sys::core::PCWSTR, infsectionwithext : ::windows_sys::core::PWSTR, infsectionwithextsize : u32, requiredsize : *mut u32, extension : *mut ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetClassBitmapIndex(classguid : *const ::windows_sys::core::GUID, miniiconindex : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetClassDescriptionA(classguid : *const ::windows_sys::core::GUID, classdescription : ::windows_sys::core::PSTR, classdescriptionsize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetClassDescriptionExA(classguid : *const ::windows_sys::core::GUID, classdescription : ::windows_sys::core::PSTR, classdescriptionsize : u32, requiredsize : *mut u32, machinename : ::windows_sys::core::PCSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetClassDescriptionExW(classguid : *const ::windows_sys::core::GUID, classdescription : ::windows_sys::core::PWSTR, classdescriptionsize : u32, requiredsize : *mut u32, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetClassDescriptionW(classguid : *const ::windows_sys::core::GUID, classdescription : ::windows_sys::core::PWSTR, classdescriptionsize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SetupDiGetClassDevPropertySheetsA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, propertysheetheader : *const super::super::UI::Controls:: PROPSHEETHEADERA_V2, propertysheetheaderpagelistsize : u32, requiredsize : *mut u32, propertysheettype : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SetupDiGetClassDevPropertySheetsW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, propertysheetheader : *const super::super::UI::Controls:: PROPSHEETHEADERW_V2, propertysheetheaderpagelistsize : u32, requiredsize : *mut u32, propertysheettype : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetClassDevsA(classguid : *const ::windows_sys::core::GUID, enumerator : ::windows_sys::core::PCSTR, hwndparent : super::super::Foundation:: HWND, flags : u32) -> HDEVINFO); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetClassDevsExA(classguid : *const ::windows_sys::core::GUID, enumerator : ::windows_sys::core::PCSTR, hwndparent : super::super::Foundation:: HWND, flags : u32, deviceinfoset : HDEVINFO, machinename : ::windows_sys::core::PCSTR, reserved : *const ::core::ffi::c_void) -> HDEVINFO); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetClassDevsExW(classguid : *const ::windows_sys::core::GUID, enumerator : ::windows_sys::core::PCWSTR, hwndparent : super::super::Foundation:: HWND, flags : u32, deviceinfoset : HDEVINFO, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> HDEVINFO); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetClassDevsW(classguid : *const ::windows_sys::core::GUID, enumerator : ::windows_sys::core::PCWSTR, hwndparent : super::super::Foundation:: HWND, flags : u32) -> HDEVINFO); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn SetupDiGetClassImageIndex(classimagelistdata : *const SP_CLASSIMAGELIST_DATA, classguid : *const ::windows_sys::core::GUID, imageindex : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn SetupDiGetClassImageList(classimagelistdata : *mut SP_CLASSIMAGELIST_DATA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn SetupDiGetClassImageListExA(classimagelistdata : *mut SP_CLASSIMAGELIST_DATA, machinename : ::windows_sys::core::PCSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn SetupDiGetClassImageListExW(classimagelistdata : *mut SP_CLASSIMAGELIST_DATA, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetClassInstallParamsA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, classinstallparams : *mut SP_CLASSINSTALL_HEADER, classinstallparamssize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetClassInstallParamsW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, classinstallparams : *mut SP_CLASSINSTALL_HEADER, classinstallparamssize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn SetupDiGetClassPropertyExW(classguid : *const ::windows_sys::core::GUID, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : *mut super::Properties:: DEVPROPTYPE, propertybuffer : *mut u8, propertybuffersize : u32, requiredsize : *mut u32, flags : u32, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn SetupDiGetClassPropertyKeys(classguid : *const ::windows_sys::core::GUID, propertykeyarray : *mut super::Properties:: DEVPROPKEY, propertykeycount : u32, requiredpropertykeycount : *mut u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn SetupDiGetClassPropertyKeysExW(classguid : *const ::windows_sys::core::GUID, propertykeyarray : *mut super::Properties:: DEVPROPKEY, propertykeycount : u32, requiredpropertykeycount : *mut u32, flags : u32, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn SetupDiGetClassPropertyW(classguid : *const ::windows_sys::core::GUID, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : *mut super::Properties:: DEVPROPTYPE, propertybuffer : *mut u8, propertybuffersize : u32, requiredsize : *mut u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetClassRegistryPropertyA(classguid : *const ::windows_sys::core::GUID, property : u32, propertyregdatatype : *mut u32, propertybuffer : *mut u8, propertybuffersize : u32, requiredsize : *mut u32, machinename : ::windows_sys::core::PCSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetClassRegistryPropertyW(classguid : *const ::windows_sys::core::GUID, property : u32, propertyregdatatype : *mut u32, propertybuffer : *mut u8, propertybuffersize : u32, requiredsize : *mut u32, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetCustomDevicePropertyA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, custompropertyname : ::windows_sys::core::PCSTR, flags : u32, propertyregdatatype : *mut u32, propertybuffer : *mut u8, propertybuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetCustomDevicePropertyW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, custompropertyname : ::windows_sys::core::PCWSTR, flags : u32, propertyregdatatype : *mut u32, propertybuffer : *mut u8, propertybuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDeviceInfoListClass(deviceinfoset : HDEVINFO, classguid : *mut ::windows_sys::core::GUID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDeviceInfoListDetailA(deviceinfoset : HDEVINFO, deviceinfosetdetaildata : *mut SP_DEVINFO_LIST_DETAIL_DATA_A) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDeviceInfoListDetailW(deviceinfoset : HDEVINFO, deviceinfosetdetaildata : *mut SP_DEVINFO_LIST_DETAIL_DATA_W) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDeviceInstallParamsA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, deviceinstallparams : *mut SP_DEVINSTALL_PARAMS_A) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDeviceInstallParamsW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, deviceinstallparams : *mut SP_DEVINSTALL_PARAMS_W) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDeviceInstanceIdA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, deviceinstanceid : ::windows_sys::core::PSTR, deviceinstanceidsize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDeviceInstanceIdW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, deviceinstanceid : ::windows_sys::core::PWSTR, deviceinstanceidsize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDeviceInterfaceAlias(deviceinfoset : HDEVINFO, deviceinterfacedata : *const SP_DEVICE_INTERFACE_DATA, aliasinterfaceclassguid : *const ::windows_sys::core::GUID, aliasdeviceinterfacedata : *mut SP_DEVICE_INTERFACE_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDeviceInterfaceDetailA(deviceinfoset : HDEVINFO, deviceinterfacedata : *const SP_DEVICE_INTERFACE_DATA, deviceinterfacedetaildata : *mut SP_DEVICE_INTERFACE_DETAIL_DATA_A, deviceinterfacedetaildatasize : u32, requiredsize : *mut u32, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDeviceInterfaceDetailW(deviceinfoset : HDEVINFO, deviceinterfacedata : *const SP_DEVICE_INTERFACE_DATA, deviceinterfacedetaildata : *mut SP_DEVICE_INTERFACE_DETAIL_DATA_W, deviceinterfacedetaildatasize : u32, requiredsize : *mut u32, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn SetupDiGetDeviceInterfacePropertyKeys(deviceinfoset : HDEVINFO, deviceinterfacedata : *const SP_DEVICE_INTERFACE_DATA, propertykeyarray : *mut super::Properties:: DEVPROPKEY, propertykeycount : u32, requiredpropertykeycount : *mut u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn SetupDiGetDeviceInterfacePropertyW(deviceinfoset : HDEVINFO, deviceinterfacedata : *const SP_DEVICE_INTERFACE_DATA, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : *mut super::Properties:: DEVPROPTYPE, propertybuffer : *mut u8, propertybuffersize : u32, requiredsize : *mut u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn SetupDiGetDevicePropertyKeys(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, propertykeyarray : *mut super::Properties:: DEVPROPKEY, propertykeycount : u32, requiredpropertykeycount : *mut u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn SetupDiGetDevicePropertyW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : *mut super::Properties:: DEVPROPTYPE, propertybuffer : *mut u8, propertybuffersize : u32, requiredsize : *mut u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDeviceRegistryPropertyA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, property : u32, propertyregdatatype : *mut u32, propertybuffer : *mut u8, propertybuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDeviceRegistryPropertyW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, property : u32, propertyregdatatype : *mut u32, propertybuffer : *mut u8, propertybuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDriverInfoDetailA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, driverinfodata : *const SP_DRVINFO_DATA_V2_A, driverinfodetaildata : *mut SP_DRVINFO_DETAIL_DATA_A, driverinfodetaildatasize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDriverInfoDetailW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, driverinfodata : *const SP_DRVINFO_DATA_V2_W, driverinfodetaildata : *mut SP_DRVINFO_DETAIL_DATA_W, driverinfodetaildatasize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDriverInstallParamsA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, driverinfodata : *const SP_DRVINFO_DATA_V2_A, driverinstallparams : *mut SP_DRVINSTALL_PARAMS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetDriverInstallParamsW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, driverinfodata : *const SP_DRVINFO_DATA_V2_W, driverinstallparams : *mut SP_DRVINSTALL_PARAMS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetHwProfileFriendlyNameA(hwprofile : u32, friendlyname : ::windows_sys::core::PSTR, friendlynamesize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetHwProfileFriendlyNameExA(hwprofile : u32, friendlyname : ::windows_sys::core::PSTR, friendlynamesize : u32, requiredsize : *mut u32, machinename : ::windows_sys::core::PCSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetHwProfileFriendlyNameExW(hwprofile : u32, friendlyname : ::windows_sys::core::PWSTR, friendlynamesize : u32, requiredsize : *mut u32, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetHwProfileFriendlyNameW(hwprofile : u32, friendlyname : ::windows_sys::core::PWSTR, friendlynamesize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetHwProfileList(hwprofilelist : *mut u32, hwprofilelistsize : u32, requiredsize : *mut u32, currentlyactiveindex : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetHwProfileListExA(hwprofilelist : *mut u32, hwprofilelistsize : u32, requiredsize : *mut u32, currentlyactiveindex : *mut u32, machinename : ::windows_sys::core::PCSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetHwProfileListExW(hwprofilelist : *mut u32, hwprofilelistsize : u32, requiredsize : *mut u32, currentlyactiveindex : *mut u32, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetINFClassA(infname : ::windows_sys::core::PCSTR, classguid : *mut ::windows_sys::core::GUID, classname : ::windows_sys::core::PSTR, classnamesize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetINFClassW(infname : ::windows_sys::core::PCWSTR, classguid : *mut ::windows_sys::core::GUID, classname : ::windows_sys::core::PWSTR, classnamesize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetSelectedDevice(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetSelectedDriverA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, driverinfodata : *mut SP_DRVINFO_DATA_V2_A) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiGetSelectedDriverW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, driverinfodata : *mut SP_DRVINFO_DATA_V2_W) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn SetupDiGetWizardPage(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, installwizarddata : *const SP_INSTALLWIZARD_DATA, pagetype : u32, flags : u32) -> super::super::UI::Controls:: HPROPSHEETPAGE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiInstallClassA(hwndparent : super::super::Foundation:: HWND, inffilename : ::windows_sys::core::PCSTR, flags : u32, filequeue : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiInstallClassExA(hwndparent : super::super::Foundation:: HWND, inffilename : ::windows_sys::core::PCSTR, flags : u32, filequeue : *const ::core::ffi::c_void, interfaceclassguid : *const ::windows_sys::core::GUID, reserved1 : *const ::core::ffi::c_void, reserved2 : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiInstallClassExW(hwndparent : super::super::Foundation:: HWND, inffilename : ::windows_sys::core::PCWSTR, flags : u32, filequeue : *const ::core::ffi::c_void, interfaceclassguid : *const ::windows_sys::core::GUID, reserved1 : *const ::core::ffi::c_void, reserved2 : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiInstallClassW(hwndparent : super::super::Foundation:: HWND, inffilename : ::windows_sys::core::PCWSTR, flags : u32, filequeue : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiInstallDevice(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiInstallDeviceInterfaces(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiInstallDriverFiles(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SetupDiLoadClassIcon(classguid : *const ::windows_sys::core::GUID, largeicon : *mut super::super::UI::WindowsAndMessaging:: HICON, miniiconindex : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SetupDiLoadDeviceIcon(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, cxicon : u32, cyicon : u32, flags : u32, hicon : *mut super::super::UI::WindowsAndMessaging:: HICON) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SetupDiOpenClassRegKey(classguid : *const ::windows_sys::core::GUID, samdesired : u32) -> super::super::System::Registry:: HKEY); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SetupDiOpenClassRegKeyExA(classguid : *const ::windows_sys::core::GUID, samdesired : u32, flags : u32, machinename : ::windows_sys::core::PCSTR, reserved : *const ::core::ffi::c_void) -> super::super::System::Registry:: HKEY); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SetupDiOpenClassRegKeyExW(classguid : *const ::windows_sys::core::GUID, samdesired : u32, flags : u32, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> super::super::System::Registry:: HKEY); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SetupDiOpenDevRegKey(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, scope : u32, hwprofile : u32, keytype : u32, samdesired : u32) -> super::super::System::Registry:: HKEY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiOpenDeviceInfoA(deviceinfoset : HDEVINFO, deviceinstanceid : ::windows_sys::core::PCSTR, hwndparent : super::super::Foundation:: HWND, openflags : u32, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiOpenDeviceInfoW(deviceinfoset : HDEVINFO, deviceinstanceid : ::windows_sys::core::PCWSTR, hwndparent : super::super::Foundation:: HWND, openflags : u32, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiOpenDeviceInterfaceA(deviceinfoset : HDEVINFO, devicepath : ::windows_sys::core::PCSTR, openflags : u32, deviceinterfacedata : *mut SP_DEVICE_INTERFACE_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SetupDiOpenDeviceInterfaceRegKey(deviceinfoset : HDEVINFO, deviceinterfacedata : *const SP_DEVICE_INTERFACE_DATA, reserved : u32, samdesired : u32) -> super::super::System::Registry:: HKEY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiOpenDeviceInterfaceW(deviceinfoset : HDEVINFO, devicepath : ::windows_sys::core::PCWSTR, openflags : u32, deviceinterfacedata : *mut SP_DEVICE_INTERFACE_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiRegisterCoDeviceInstallers(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiRegisterDeviceInfo(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA, flags : u32, compareproc : PSP_DETSIG_CMPPROC, comparecontext : *const ::core::ffi::c_void, dupdeviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiRemoveDevice(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiRemoveDeviceInterface(deviceinfoset : HDEVINFO, deviceinterfacedata : *mut SP_DEVICE_INTERFACE_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiRestartDevices(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSelectBestCompatDrv(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSelectDevice(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSelectOEMDrv(hwndparent : super::super::Foundation:: HWND, deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetClassInstallParamsA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, classinstallparams : *const SP_CLASSINSTALL_HEADER, classinstallparamssize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetClassInstallParamsW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, classinstallparams : *const SP_CLASSINSTALL_HEADER, classinstallparamssize : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn SetupDiSetClassPropertyExW(classguid : *const ::windows_sys::core::GUID, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : super::Properties:: DEVPROPTYPE, propertybuffer : *const u8, propertybuffersize : u32, flags : u32, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn SetupDiSetClassPropertyW(classguid : *const ::windows_sys::core::GUID, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : super::Properties:: DEVPROPTYPE, propertybuffer : *const u8, propertybuffersize : u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetClassRegistryPropertyA(classguid : *const ::windows_sys::core::GUID, property : u32, propertybuffer : *const u8, propertybuffersize : u32, machinename : ::windows_sys::core::PCSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetClassRegistryPropertyW(classguid : *const ::windows_sys::core::GUID, property : u32, propertybuffer : *const u8, propertybuffersize : u32, machinename : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetDeviceInstallParamsA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, deviceinstallparams : *const SP_DEVINSTALL_PARAMS_A) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetDeviceInstallParamsW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, deviceinstallparams : *const SP_DEVINSTALL_PARAMS_W) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetDeviceInterfaceDefault(deviceinfoset : HDEVINFO, deviceinterfacedata : *mut SP_DEVICE_INTERFACE_DATA, flags : u32, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn SetupDiSetDeviceInterfacePropertyW(deviceinfoset : HDEVINFO, deviceinterfacedata : *const SP_DEVICE_INTERFACE_DATA, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : super::Properties:: DEVPROPTYPE, propertybuffer : *const u8, propertybuffersize : u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn SetupDiSetDevicePropertyW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, propertykey : *const super::Properties:: DEVPROPKEY, propertytype : super::Properties:: DEVPROPTYPE, propertybuffer : *const u8, propertybuffersize : u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetDeviceRegistryPropertyA(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA, property : u32, propertybuffer : *const u8, propertybuffersize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetDeviceRegistryPropertyW(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA, property : u32, propertybuffer : *const u8, propertybuffersize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetDriverInstallParamsA(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, driverinfodata : *const SP_DRVINFO_DATA_V2_A, driverinstallparams : *const SP_DRVINSTALL_PARAMS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetDriverInstallParamsW(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, driverinfodata : *const SP_DRVINFO_DATA_V2_W, driverinstallparams : *const SP_DRVINSTALL_PARAMS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetSelectedDevice(deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetSelectedDriverA(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA, driverinfodata : *mut SP_DRVINFO_DATA_V2_A) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiSetSelectedDriverW(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA, driverinfodata : *mut SP_DRVINFO_DATA_V2_W) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupDiUnremoveDevice(deviceinfoset : HDEVINFO, deviceinfodata : *mut SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +::windows_targets::link!("setupapi.dll" "system" fn SetupDuplicateDiskSpaceListA(diskspace : *const ::core::ffi::c_void, reserved1 : *const ::core::ffi::c_void, reserved2 : u32, flags : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("setupapi.dll" "system" fn SetupDuplicateDiskSpaceListW(diskspace : *const ::core::ffi::c_void, reserved1 : *const ::core::ffi::c_void, reserved2 : u32, flags : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupEnumInfSectionsA(infhandle : *const ::core::ffi::c_void, index : u32, buffer : ::windows_sys::core::PSTR, size : u32, sizeneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupEnumInfSectionsW(infhandle : *const ::core::ffi::c_void, index : u32, buffer : ::windows_sys::core::PWSTR, size : u32, sizeneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupFindFirstLineA(infhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCSTR, key : ::windows_sys::core::PCSTR, context : *mut INFCONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupFindFirstLineW(infhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCWSTR, key : ::windows_sys::core::PCWSTR, context : *mut INFCONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupFindNextLine(contextin : *const INFCONTEXT, contextout : *mut INFCONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupFindNextMatchLineA(contextin : *const INFCONTEXT, key : ::windows_sys::core::PCSTR, contextout : *mut INFCONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupFindNextMatchLineW(contextin : *const INFCONTEXT, key : ::windows_sys::core::PCWSTR, contextout : *mut INFCONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupFreeSourceListA(list : *mut *mut ::windows_sys::core::PCSTR, count : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupFreeSourceListW(list : *mut *mut ::windows_sys::core::PCWSTR, count : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetBackupInformationA(queuehandle : *const ::core::ffi::c_void, backupparams : *mut SP_BACKUP_QUEUE_PARAMS_V2_A) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetBackupInformationW(queuehandle : *const ::core::ffi::c_void, backupparams : *mut SP_BACKUP_QUEUE_PARAMS_V2_W) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetBinaryField(context : *const INFCONTEXT, fieldindex : u32, returnbuffer : *mut u8, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("setupapi.dll" "system" fn SetupGetFieldCount(context : *const INFCONTEXT) -> u32); +::windows_targets::link!("setupapi.dll" "system" fn SetupGetFileCompressionInfoA(sourcefilename : ::windows_sys::core::PCSTR, actualsourcefilename : *mut ::windows_sys::core::PSTR, sourcefilesize : *mut u32, targetfilesize : *mut u32, compressiontype : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetFileCompressionInfoExA(sourcefilename : ::windows_sys::core::PCSTR, actualsourcefilenamebuffer : ::windows_sys::core::PCSTR, actualsourcefilenamebufferlen : u32, requiredbufferlen : *mut u32, sourcefilesize : *mut u32, targetfilesize : *mut u32, compressiontype : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetFileCompressionInfoExW(sourcefilename : ::windows_sys::core::PCWSTR, actualsourcefilenamebuffer : ::windows_sys::core::PCWSTR, actualsourcefilenamebufferlen : u32, requiredbufferlen : *mut u32, sourcefilesize : *mut u32, targetfilesize : *mut u32, compressiontype : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("setupapi.dll" "system" fn SetupGetFileCompressionInfoW(sourcefilename : ::windows_sys::core::PCWSTR, actualsourcefilename : *mut ::windows_sys::core::PWSTR, sourcefilesize : *mut u32, targetfilesize : *mut u32, compressiontype : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetFileQueueCount(filequeue : *const ::core::ffi::c_void, subqueuefileop : u32, numoperations : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetFileQueueFlags(filequeue : *const ::core::ffi::c_void, flags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn SetupGetInfDriverStoreLocationA(filename : ::windows_sys::core::PCSTR, alternateplatforminfo : *const SP_ALTPLATFORM_INFO_V2, localename : ::windows_sys::core::PCSTR, returnbuffer : ::windows_sys::core::PSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn SetupGetInfDriverStoreLocationW(filename : ::windows_sys::core::PCWSTR, alternateplatforminfo : *const SP_ALTPLATFORM_INFO_V2, localename : ::windows_sys::core::PCWSTR, returnbuffer : ::windows_sys::core::PWSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetInfFileListA(directorypath : ::windows_sys::core::PCSTR, infstyle : INF_STYLE, returnbuffer : ::windows_sys::core::PSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetInfFileListW(directorypath : ::windows_sys::core::PCWSTR, infstyle : INF_STYLE, returnbuffer : ::windows_sys::core::PWSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetInfInformationA(infspec : *const ::core::ffi::c_void, searchcontrol : u32, returnbuffer : *mut SP_INF_INFORMATION, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetInfInformationW(infspec : *const ::core::ffi::c_void, searchcontrol : u32, returnbuffer : *mut SP_INF_INFORMATION, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetInfPublishedNameA(driverstorelocation : ::windows_sys::core::PCSTR, returnbuffer : ::windows_sys::core::PSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetInfPublishedNameW(driverstorelocation : ::windows_sys::core::PCWSTR, returnbuffer : ::windows_sys::core::PWSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetIntField(context : *const INFCONTEXT, fieldindex : u32, integervalue : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetLineByIndexA(infhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCSTR, index : u32, context : *mut INFCONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetLineByIndexW(infhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCWSTR, index : u32, context : *mut INFCONTEXT) -> super::super::Foundation:: BOOL); +::windows_targets::link!("setupapi.dll" "system" fn SetupGetLineCountA(infhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("setupapi.dll" "system" fn SetupGetLineCountW(infhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetLineTextA(context : *const INFCONTEXT, infhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCSTR, key : ::windows_sys::core::PCSTR, returnbuffer : ::windows_sys::core::PSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetLineTextW(context : *const INFCONTEXT, infhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCWSTR, key : ::windows_sys::core::PCWSTR, returnbuffer : ::windows_sys::core::PWSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetMultiSzFieldA(context : *const INFCONTEXT, fieldindex : u32, returnbuffer : ::windows_sys::core::PSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetMultiSzFieldW(context : *const INFCONTEXT, fieldindex : u32, returnbuffer : ::windows_sys::core::PWSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetNonInteractiveMode() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetSourceFileLocationA(infhandle : *const ::core::ffi::c_void, infcontext : *const INFCONTEXT, filename : ::windows_sys::core::PCSTR, sourceid : *mut u32, returnbuffer : ::windows_sys::core::PSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetSourceFileLocationW(infhandle : *const ::core::ffi::c_void, infcontext : *const INFCONTEXT, filename : ::windows_sys::core::PCWSTR, sourceid : *mut u32, returnbuffer : ::windows_sys::core::PWSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetSourceFileSizeA(infhandle : *const ::core::ffi::c_void, infcontext : *const INFCONTEXT, filename : ::windows_sys::core::PCSTR, section : ::windows_sys::core::PCSTR, filesize : *mut u32, roundingfactor : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetSourceFileSizeW(infhandle : *const ::core::ffi::c_void, infcontext : *const INFCONTEXT, filename : ::windows_sys::core::PCWSTR, section : ::windows_sys::core::PCWSTR, filesize : *mut u32, roundingfactor : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetSourceInfoA(infhandle : *const ::core::ffi::c_void, sourceid : u32, infodesired : u32, returnbuffer : ::windows_sys::core::PSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetSourceInfoW(infhandle : *const ::core::ffi::c_void, sourceid : u32, infodesired : u32, returnbuffer : ::windows_sys::core::PWSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetStringFieldA(context : *const INFCONTEXT, fieldindex : u32, returnbuffer : ::windows_sys::core::PSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetStringFieldW(context : *const INFCONTEXT, fieldindex : u32, returnbuffer : ::windows_sys::core::PWSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetTargetPathA(infhandle : *const ::core::ffi::c_void, infcontext : *const INFCONTEXT, section : ::windows_sys::core::PCSTR, returnbuffer : ::windows_sys::core::PSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupGetTargetPathW(infhandle : *const ::core::ffi::c_void, infcontext : *const INFCONTEXT, section : ::windows_sys::core::PCWSTR, returnbuffer : ::windows_sys::core::PWSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("setupapi.dll" "system" fn SetupGetThreadLogToken() -> u64); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupInitDefaultQueueCallback(ownerwindow : super::super::Foundation:: HWND) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupInitDefaultQueueCallbackEx(ownerwindow : super::super::Foundation:: HWND, alternateprogresswindow : super::super::Foundation:: HWND, progressmessage : u32, reserved1 : u32, reserved2 : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +::windows_targets::link!("setupapi.dll" "system" fn SetupInitializeFileLogA(logfilename : ::windows_sys::core::PCSTR, flags : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("setupapi.dll" "system" fn SetupInitializeFileLogW(logfilename : ::windows_sys::core::PCWSTR, flags : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupInstallFileA(infhandle : *const ::core::ffi::c_void, infcontext : *const INFCONTEXT, sourcefile : ::windows_sys::core::PCSTR, sourcepathroot : ::windows_sys::core::PCSTR, destinationname : ::windows_sys::core::PCSTR, copystyle : SP_COPY_STYLE, copymsghandler : PSP_FILE_CALLBACK_A, context : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupInstallFileExA(infhandle : *const ::core::ffi::c_void, infcontext : *const INFCONTEXT, sourcefile : ::windows_sys::core::PCSTR, sourcepathroot : ::windows_sys::core::PCSTR, destinationname : ::windows_sys::core::PCSTR, copystyle : SP_COPY_STYLE, copymsghandler : PSP_FILE_CALLBACK_A, context : *const ::core::ffi::c_void, filewasinuse : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupInstallFileExW(infhandle : *const ::core::ffi::c_void, infcontext : *const INFCONTEXT, sourcefile : ::windows_sys::core::PCWSTR, sourcepathroot : ::windows_sys::core::PCWSTR, destinationname : ::windows_sys::core::PCWSTR, copystyle : SP_COPY_STYLE, copymsghandler : PSP_FILE_CALLBACK_W, context : *const ::core::ffi::c_void, filewasinuse : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupInstallFileW(infhandle : *const ::core::ffi::c_void, infcontext : *const INFCONTEXT, sourcefile : ::windows_sys::core::PCWSTR, sourcepathroot : ::windows_sys::core::PCWSTR, destinationname : ::windows_sys::core::PCWSTR, copystyle : SP_COPY_STYLE, copymsghandler : PSP_FILE_CALLBACK_W, context : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupInstallFilesFromInfSectionA(infhandle : *const ::core::ffi::c_void, layoutinfhandle : *const ::core::ffi::c_void, filequeue : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCSTR, sourcerootpath : ::windows_sys::core::PCSTR, copyflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupInstallFilesFromInfSectionW(infhandle : *const ::core::ffi::c_void, layoutinfhandle : *const ::core::ffi::c_void, filequeue : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCWSTR, sourcerootpath : ::windows_sys::core::PCWSTR, copyflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SetupInstallFromInfSectionA(owner : super::super::Foundation:: HWND, infhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCSTR, flags : u32, relativekeyroot : super::super::System::Registry:: HKEY, sourcerootpath : ::windows_sys::core::PCSTR, copyflags : u32, msghandler : PSP_FILE_CALLBACK_A, context : *const ::core::ffi::c_void, deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SetupInstallFromInfSectionW(owner : super::super::Foundation:: HWND, infhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCWSTR, flags : u32, relativekeyroot : super::super::System::Registry:: HKEY, sourcerootpath : ::windows_sys::core::PCWSTR, copyflags : u32, msghandler : PSP_FILE_CALLBACK_W, context : *const ::core::ffi::c_void, deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupInstallServicesFromInfSectionA(infhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCSTR, flags : SPSVCINST_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupInstallServicesFromInfSectionExA(infhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCSTR, flags : SPSVCINST_FLAGS, deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, reserved1 : *const ::core::ffi::c_void, reserved2 : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupInstallServicesFromInfSectionExW(infhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCWSTR, flags : SPSVCINST_FLAGS, deviceinfoset : HDEVINFO, deviceinfodata : *const SP_DEVINFO_DATA, reserved1 : *const ::core::ffi::c_void, reserved2 : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupInstallServicesFromInfSectionW(infhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCWSTR, flags : SPSVCINST_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupIterateCabinetA(cabinetfile : ::windows_sys::core::PCSTR, reserved : u32, msghandler : PSP_FILE_CALLBACK_A, context : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupIterateCabinetW(cabinetfile : ::windows_sys::core::PCWSTR, reserved : u32, msghandler : PSP_FILE_CALLBACK_W, context : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupLogErrorA(messagestring : ::windows_sys::core::PCSTR, severity : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupLogErrorW(messagestring : ::windows_sys::core::PCWSTR, severity : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupLogFileA(fileloghandle : *const ::core::ffi::c_void, logsectionname : ::windows_sys::core::PCSTR, sourcefilename : ::windows_sys::core::PCSTR, targetfilename : ::windows_sys::core::PCSTR, checksum : u32, disktagfile : ::windows_sys::core::PCSTR, diskdescription : ::windows_sys::core::PCSTR, otherinfo : ::windows_sys::core::PCSTR, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupLogFileW(fileloghandle : *const ::core::ffi::c_void, logsectionname : ::windows_sys::core::PCWSTR, sourcefilename : ::windows_sys::core::PCWSTR, targetfilename : ::windows_sys::core::PCWSTR, checksum : u32, disktagfile : ::windows_sys::core::PCWSTR, diskdescription : ::windows_sys::core::PCWSTR, otherinfo : ::windows_sys::core::PCWSTR, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupOpenAppendInfFileA(filename : ::windows_sys::core::PCSTR, infhandle : *const ::core::ffi::c_void, errorline : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupOpenAppendInfFileW(filename : ::windows_sys::core::PCWSTR, infhandle : *const ::core::ffi::c_void, errorline : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("setupapi.dll" "system" fn SetupOpenFileQueue() -> *mut ::core::ffi::c_void); +::windows_targets::link!("setupapi.dll" "system" fn SetupOpenInfFileA(filename : ::windows_sys::core::PCSTR, infclass : ::windows_sys::core::PCSTR, infstyle : INF_STYLE, errorline : *mut u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("setupapi.dll" "system" fn SetupOpenInfFileW(filename : ::windows_sys::core::PCWSTR, infclass : ::windows_sys::core::PCWSTR, infstyle : INF_STYLE, errorline : *mut u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupOpenLog(erase : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("setupapi.dll" "system" fn SetupOpenMasterInf() -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupPrepareQueueForRestoreA(queuehandle : *const ::core::ffi::c_void, backuppath : ::windows_sys::core::PCSTR, restoreflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupPrepareQueueForRestoreW(queuehandle : *const ::core::ffi::c_void, backuppath : ::windows_sys::core::PCWSTR, restoreflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupPromptForDiskA(hwndparent : super::super::Foundation:: HWND, dialogtitle : ::windows_sys::core::PCSTR, diskname : ::windows_sys::core::PCSTR, pathtosource : ::windows_sys::core::PCSTR, filesought : ::windows_sys::core::PCSTR, tagfile : ::windows_sys::core::PCSTR, diskpromptstyle : u32, pathbuffer : ::windows_sys::core::PSTR, pathbuffersize : u32, pathrequiredsize : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupPromptForDiskW(hwndparent : super::super::Foundation:: HWND, dialogtitle : ::windows_sys::core::PCWSTR, diskname : ::windows_sys::core::PCWSTR, pathtosource : ::windows_sys::core::PCWSTR, filesought : ::windows_sys::core::PCWSTR, tagfile : ::windows_sys::core::PCWSTR, diskpromptstyle : u32, pathbuffer : ::windows_sys::core::PWSTR, pathbuffersize : u32, pathrequiredsize : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupPromptReboot(filequeue : *const ::core::ffi::c_void, owner : super::super::Foundation:: HWND, scanonly : super::super::Foundation:: BOOL) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueryDrivesInDiskSpaceListA(diskspace : *const ::core::ffi::c_void, returnbuffer : ::windows_sys::core::PSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueryDrivesInDiskSpaceListW(diskspace : *const ::core::ffi::c_void, returnbuffer : ::windows_sys::core::PWSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueryFileLogA(fileloghandle : *const ::core::ffi::c_void, logsectionname : ::windows_sys::core::PCSTR, targetfilename : ::windows_sys::core::PCSTR, desiredinfo : SetupFileLogInfo, dataout : ::windows_sys::core::PSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueryFileLogW(fileloghandle : *const ::core::ffi::c_void, logsectionname : ::windows_sys::core::PCWSTR, targetfilename : ::windows_sys::core::PCWSTR, desiredinfo : SetupFileLogInfo, dataout : ::windows_sys::core::PWSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueryInfFileInformationA(infinformation : *const SP_INF_INFORMATION, infindex : u32, returnbuffer : ::windows_sys::core::PSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueryInfFileInformationW(infinformation : *const SP_INF_INFORMATION, infindex : u32, returnbuffer : ::windows_sys::core::PWSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn SetupQueryInfOriginalFileInformationA(infinformation : *const SP_INF_INFORMATION, infindex : u32, alternateplatforminfo : *const SP_ALTPLATFORM_INFO_V2, originalfileinfo : *mut SP_ORIGINAL_FILE_INFO_A) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn SetupQueryInfOriginalFileInformationW(infinformation : *const SP_INF_INFORMATION, infindex : u32, alternateplatforminfo : *const SP_ALTPLATFORM_INFO_V2, originalfileinfo : *mut SP_ORIGINAL_FILE_INFO_W) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueryInfVersionInformationA(infinformation : *const SP_INF_INFORMATION, infindex : u32, key : ::windows_sys::core::PCSTR, returnbuffer : ::windows_sys::core::PSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueryInfVersionInformationW(infinformation : *const SP_INF_INFORMATION, infindex : u32, key : ::windows_sys::core::PCWSTR, returnbuffer : ::windows_sys::core::PWSTR, returnbuffersize : u32, requiredsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQuerySourceListA(flags : u32, list : *mut *mut ::windows_sys::core::PCSTR, count : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQuerySourceListW(flags : u32, list : *mut *mut ::windows_sys::core::PCWSTR, count : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQuerySpaceRequiredOnDriveA(diskspace : *const ::core::ffi::c_void, drivespec : ::windows_sys::core::PCSTR, spacerequired : *mut i64, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQuerySpaceRequiredOnDriveW(diskspace : *const ::core::ffi::c_void, drivespec : ::windows_sys::core::PCWSTR, spacerequired : *mut i64, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueCopyA(queuehandle : *const ::core::ffi::c_void, sourcerootpath : ::windows_sys::core::PCSTR, sourcepath : ::windows_sys::core::PCSTR, sourcefilename : ::windows_sys::core::PCSTR, sourcedescription : ::windows_sys::core::PCSTR, sourcetagfile : ::windows_sys::core::PCSTR, targetdirectory : ::windows_sys::core::PCSTR, targetfilename : ::windows_sys::core::PCSTR, copystyle : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueCopyIndirectA(copyparams : *const SP_FILE_COPY_PARAMS_A) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueCopyIndirectW(copyparams : *const SP_FILE_COPY_PARAMS_W) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueCopySectionA(queuehandle : *const ::core::ffi::c_void, sourcerootpath : ::windows_sys::core::PCSTR, infhandle : *const ::core::ffi::c_void, listinfhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCSTR, copystyle : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueCopySectionW(queuehandle : *const ::core::ffi::c_void, sourcerootpath : ::windows_sys::core::PCWSTR, infhandle : *const ::core::ffi::c_void, listinfhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCWSTR, copystyle : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueCopyW(queuehandle : *const ::core::ffi::c_void, sourcerootpath : ::windows_sys::core::PCWSTR, sourcepath : ::windows_sys::core::PCWSTR, sourcefilename : ::windows_sys::core::PCWSTR, sourcedescription : ::windows_sys::core::PCWSTR, sourcetagfile : ::windows_sys::core::PCWSTR, targetdirectory : ::windows_sys::core::PCWSTR, targetfilename : ::windows_sys::core::PCWSTR, copystyle : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueDefaultCopyA(queuehandle : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, sourcerootpath : ::windows_sys::core::PCSTR, sourcefilename : ::windows_sys::core::PCSTR, targetfilename : ::windows_sys::core::PCSTR, copystyle : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueDefaultCopyW(queuehandle : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, sourcerootpath : ::windows_sys::core::PCWSTR, sourcefilename : ::windows_sys::core::PCWSTR, targetfilename : ::windows_sys::core::PCWSTR, copystyle : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueDeleteA(queuehandle : *const ::core::ffi::c_void, pathpart1 : ::windows_sys::core::PCSTR, pathpart2 : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueDeleteSectionA(queuehandle : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, listinfhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueDeleteSectionW(queuehandle : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, listinfhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueDeleteW(queuehandle : *const ::core::ffi::c_void, pathpart1 : ::windows_sys::core::PCWSTR, pathpart2 : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueRenameA(queuehandle : *const ::core::ffi::c_void, sourcepath : ::windows_sys::core::PCSTR, sourcefilename : ::windows_sys::core::PCSTR, targetpath : ::windows_sys::core::PCSTR, targetfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueRenameSectionA(queuehandle : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, listinfhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueRenameSectionW(queuehandle : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, listinfhandle : *const ::core::ffi::c_void, section : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupQueueRenameW(queuehandle : *const ::core::ffi::c_void, sourcepath : ::windows_sys::core::PCWSTR, sourcefilename : ::windows_sys::core::PCWSTR, targetpath : ::windows_sys::core::PCWSTR, targetfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupRemoveFileLogEntryA(fileloghandle : *const ::core::ffi::c_void, logsectionname : ::windows_sys::core::PCSTR, targetfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupRemoveFileLogEntryW(fileloghandle : *const ::core::ffi::c_void, logsectionname : ::windows_sys::core::PCWSTR, targetfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupRemoveFromDiskSpaceListA(diskspace : *const ::core::ffi::c_void, targetfilespec : ::windows_sys::core::PCSTR, operation : SETUP_FILE_OPERATION, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupRemoveFromDiskSpaceListW(diskspace : *const ::core::ffi::c_void, targetfilespec : ::windows_sys::core::PCWSTR, operation : SETUP_FILE_OPERATION, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupRemoveFromSourceListA(flags : u32, source : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupRemoveFromSourceListW(flags : u32, source : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupRemoveInstallSectionFromDiskSpaceListA(diskspace : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, layoutinfhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCSTR, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupRemoveInstallSectionFromDiskSpaceListW(diskspace : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, layoutinfhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCWSTR, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupRemoveSectionFromDiskSpaceListA(diskspace : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, listinfhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCSTR, operation : SETUP_FILE_OPERATION, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupRemoveSectionFromDiskSpaceListW(diskspace : *const ::core::ffi::c_void, infhandle : *const ::core::ffi::c_void, listinfhandle : *const ::core::ffi::c_void, sectionname : ::windows_sys::core::PCWSTR, operation : SETUP_FILE_OPERATION, reserved1 : *const ::core::ffi::c_void, reserved2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupRenameErrorA(hwndparent : super::super::Foundation:: HWND, dialogtitle : ::windows_sys::core::PCSTR, sourcefile : ::windows_sys::core::PCSTR, targetfile : ::windows_sys::core::PCSTR, win32errorcode : u32, style : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupRenameErrorW(hwndparent : super::super::Foundation:: HWND, dialogtitle : ::windows_sys::core::PCWSTR, sourcefile : ::windows_sys::core::PCWSTR, targetfile : ::windows_sys::core::PCWSTR, win32errorcode : u32, style : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupScanFileQueueA(filequeue : *const ::core::ffi::c_void, flags : SETUPSCANFILEQUEUE_FLAGS, window : super::super::Foundation:: HWND, callbackroutine : PSP_FILE_CALLBACK_A, callbackcontext : *const ::core::ffi::c_void, result : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupScanFileQueueW(filequeue : *const ::core::ffi::c_void, flags : SETUPSCANFILEQUEUE_FLAGS, window : super::super::Foundation:: HWND, callbackroutine : PSP_FILE_CALLBACK_W, callbackcontext : *const ::core::ffi::c_void, result : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupSetDirectoryIdA(infhandle : *const ::core::ffi::c_void, id : u32, directory : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupSetDirectoryIdExA(infhandle : *const ::core::ffi::c_void, id : u32, directory : ::windows_sys::core::PCSTR, flags : u32, reserved1 : u32, reserved2 : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupSetDirectoryIdExW(infhandle : *const ::core::ffi::c_void, id : u32, directory : ::windows_sys::core::PCWSTR, flags : u32, reserved1 : u32, reserved2 : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupSetDirectoryIdW(infhandle : *const ::core::ffi::c_void, id : u32, directory : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn SetupSetFileQueueAlternatePlatformA(queuehandle : *const ::core::ffi::c_void, alternateplatforminfo : *const SP_ALTPLATFORM_INFO_V2, alternatedefaultcatalogfile : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn SetupSetFileQueueAlternatePlatformW(queuehandle : *const ::core::ffi::c_void, alternateplatforminfo : *const SP_ALTPLATFORM_INFO_V2, alternatedefaultcatalogfile : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupSetFileQueueFlags(filequeue : *const ::core::ffi::c_void, flagmask : u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupSetNonInteractiveMode(noninteractiveflag : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupSetPlatformPathOverrideA(r#override : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupSetPlatformPathOverrideW(r#override : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupSetSourceListA(flags : u32, sourcelist : *const ::windows_sys::core::PCSTR, sourcecount : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupSetSourceListW(flags : u32, sourcelist : *const ::windows_sys::core::PCWSTR, sourcecount : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("setupapi.dll" "system" fn SetupSetThreadLogToken(logtoken : u64) -> ()); +::windows_targets::link!("setupapi.dll" "system" fn SetupTermDefaultQueueCallback(context : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupTerminateFileLog(fileloghandle : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupUninstallNewlyCopiedInfs(filequeue : *const ::core::ffi::c_void, flags : u32, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupUninstallOEMInfA(inffilename : ::windows_sys::core::PCSTR, flags : u32, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetupUninstallOEMInfW(inffilename : ::windows_sys::core::PCWSTR, flags : u32, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn SetupVerifyInfFileA(infname : ::windows_sys::core::PCSTR, altplatforminfo : *const SP_ALTPLATFORM_INFO_V2, infsignerinfo : *mut SP_INF_SIGNER_INFO_V2_A) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +::windows_targets::link!("setupapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] fn SetupVerifyInfFileW(infname : ::windows_sys::core::PCWSTR, altplatforminfo : *const SP_ALTPLATFORM_INFO_V2, infsignerinfo : *mut SP_INF_SIGNER_INFO_V2_W) -> super::super::Foundation:: BOOL); +::windows_targets::link!("setupapi.dll" "cdecl" fn SetupWriteTextLog(logtoken : u64, category : u32, flags : u32, messagestr : ::windows_sys::core::PCSTR, ...) -> ()); +::windows_targets::link!("setupapi.dll" "cdecl" fn SetupWriteTextLogError(logtoken : u64, category : u32, logflags : u32, error : u32, messagestr : ::windows_sys::core::PCSTR, ...) -> ()); +::windows_targets::link!("setupapi.dll" "system" fn SetupWriteTextLogInfLine(logtoken : u64, flags : u32, infhandle : *const ::core::ffi::c_void, context : *const INFCONTEXT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("newdev.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdateDriverForPlugAndPlayDevicesA(hwndparent : super::super::Foundation:: HWND, hardwareid : ::windows_sys::core::PCSTR, fullinfpath : ::windows_sys::core::PCSTR, installflags : UPDATEDRIVERFORPLUGANDPLAYDEVICES_FLAGS, brebootrequired : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("newdev.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdateDriverForPlugAndPlayDevicesW(hwndparent : super::super::Foundation:: HWND, hardwareid : ::windows_sys::core::PCWSTR, fullinfpath : ::windows_sys::core::PCWSTR, installflags : UPDATEDRIVERFORPLUGANDPLAYDEVICES_FLAGS, brebootrequired : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +pub const ALLOC_LOG_CONF: CM_LOG_CONF = 2u32; +pub const BASIC_LOG_CONF: CM_LOG_CONF = 0u32; +pub const BOOT_LOG_CONF: CM_LOG_CONF = 3u32; +pub const CM_ADD_ID_BITS: u32 = 1u32; +pub const CM_ADD_ID_COMPATIBLE: u32 = 1u32; +pub const CM_ADD_ID_HARDWARE: u32 = 0u32; +pub const CM_ADD_RANGE_ADDIFCONFLICT: u32 = 0u32; +pub const CM_ADD_RANGE_BITS: u32 = 1u32; +pub const CM_ADD_RANGE_DONOTADDIFCONFLICT: u32 = 1u32; +pub const CM_CDFLAGS_DRIVER: CM_CDFLAGS = 1u32; +pub const CM_CDFLAGS_RESERVED: CM_CDFLAGS = 4u32; +pub const CM_CDFLAGS_ROOT_OWNED: CM_CDFLAGS = 2u32; +pub const CM_CDMASK_DESCRIPTION: CM_CDMASK = 8u32; +pub const CM_CDMASK_DEVINST: CM_CDMASK = 1u32; +pub const CM_CDMASK_FLAGS: CM_CDMASK = 4u32; +pub const CM_CDMASK_RESDES: CM_CDMASK = 2u32; +pub const CM_CDMASK_VALID: CM_CDMASK = 15u32; +pub const CM_CLASS_PROPERTY_BITS: u32 = 1u32; +pub const CM_CLASS_PROPERTY_INSTALLER: u32 = 0u32; +pub const CM_CLASS_PROPERTY_INTERFACE: u32 = 1u32; +pub const CM_CREATE_DEVINST_BITS: u32 = 15u32; +pub const CM_CREATE_DEVINST_DO_NOT_INSTALL: u32 = 8u32; +pub const CM_CREATE_DEVINST_GENERATE_ID: u32 = 4u32; +pub const CM_CREATE_DEVINST_NORMAL: u32 = 0u32; +pub const CM_CREATE_DEVINST_NO_WAIT_INSTALL: u32 = 1u32; +pub const CM_CREATE_DEVINST_PHANTOM: u32 = 2u32; +pub const CM_CREATE_DEVNODE_BITS: u32 = 15u32; +pub const CM_CREATE_DEVNODE_DO_NOT_INSTALL: u32 = 8u32; +pub const CM_CREATE_DEVNODE_GENERATE_ID: u32 = 4u32; +pub const CM_CREATE_DEVNODE_NORMAL: u32 = 0u32; +pub const CM_CREATE_DEVNODE_NO_WAIT_INSTALL: u32 = 1u32; +pub const CM_CREATE_DEVNODE_PHANTOM: u32 = 2u32; +pub const CM_CRP_CHARACTERISTICS: u32 = 28u32; +pub const CM_CRP_DEVTYPE: u32 = 26u32; +pub const CM_CRP_EXCLUSIVE: u32 = 27u32; +pub const CM_CRP_LOWERFILTERS: u32 = 19u32; +pub const CM_CRP_MAX: u32 = 37u32; +pub const CM_CRP_MIN: u32 = 1u32; +pub const CM_CRP_SECURITY: u32 = 24u32; +pub const CM_CRP_SECURITY_SDS: u32 = 25u32; +pub const CM_CRP_UPPERFILTERS: u32 = 18u32; +pub const CM_CUSTOMDEVPROP_BITS: u32 = 1u32; +pub const CM_CUSTOMDEVPROP_MERGE_MULTISZ: u32 = 1u32; +pub const CM_DELETE_CLASS_BITS: u32 = 3u32; +pub const CM_DELETE_CLASS_INTERFACE: u32 = 2u32; +pub const CM_DELETE_CLASS_ONLY: u32 = 0u32; +pub const CM_DELETE_CLASS_SUBKEYS: u32 = 1u32; +pub const CM_DETECT_BITS: u32 = 2147483655u32; +pub const CM_DETECT_CRASHED: u32 = 2u32; +pub const CM_DETECT_HWPROF_FIRST_BOOT: u32 = 4u32; +pub const CM_DETECT_NEW_PROFILE: u32 = 1u32; +pub const CM_DETECT_RUN: u32 = 2147483648u32; +pub const CM_DEVCAP_DOCKDEVICE: CM_DEVCAP = 8u32; +pub const CM_DEVCAP_EJECTSUPPORTED: CM_DEVCAP = 2u32; +pub const CM_DEVCAP_HARDWAREDISABLED: CM_DEVCAP = 256u32; +pub const CM_DEVCAP_LOCKSUPPORTED: CM_DEVCAP = 1u32; +pub const CM_DEVCAP_NONDYNAMIC: CM_DEVCAP = 512u32; +pub const CM_DEVCAP_RAWDEVICEOK: CM_DEVCAP = 64u32; +pub const CM_DEVCAP_REMOVABLE: CM_DEVCAP = 4u32; +pub const CM_DEVCAP_SECUREDEVICE: CM_DEVCAP = 1024u32; +pub const CM_DEVCAP_SILENTINSTALL: CM_DEVCAP = 32u32; +pub const CM_DEVCAP_SURPRISEREMOVALOK: CM_DEVCAP = 128u32; +pub const CM_DEVCAP_UNIQUEID: CM_DEVCAP = 16u32; +pub const CM_DEVICE_PANEL_EDGE_BOTTOM: u32 = 2u32; +pub const CM_DEVICE_PANEL_EDGE_LEFT: u32 = 3u32; +pub const CM_DEVICE_PANEL_EDGE_RIGHT: u32 = 4u32; +pub const CM_DEVICE_PANEL_EDGE_TOP: u32 = 1u32; +pub const CM_DEVICE_PANEL_EDGE_UNKNOWN: u32 = 0u32; +pub const CM_DEVICE_PANEL_JOINT_TYPE_HINGE: u32 = 2u32; +pub const CM_DEVICE_PANEL_JOINT_TYPE_PIVOT: u32 = 3u32; +pub const CM_DEVICE_PANEL_JOINT_TYPE_PLANAR: u32 = 1u32; +pub const CM_DEVICE_PANEL_JOINT_TYPE_SWIVEL: u32 = 4u32; +pub const CM_DEVICE_PANEL_JOINT_TYPE_UNKNOWN: u32 = 0u32; +pub const CM_DEVICE_PANEL_ORIENTATION_HORIZONTAL: u32 = 0u32; +pub const CM_DEVICE_PANEL_ORIENTATION_VERTICAL: u32 = 1u32; +pub const CM_DEVICE_PANEL_SHAPE_OVAL: u32 = 2u32; +pub const CM_DEVICE_PANEL_SHAPE_RECTANGLE: u32 = 1u32; +pub const CM_DEVICE_PANEL_SHAPE_UNKNOWN: u32 = 0u32; +pub const CM_DEVICE_PANEL_SIDE_BACK: u32 = 6u32; +pub const CM_DEVICE_PANEL_SIDE_BOTTOM: u32 = 2u32; +pub const CM_DEVICE_PANEL_SIDE_FRONT: u32 = 5u32; +pub const CM_DEVICE_PANEL_SIDE_LEFT: u32 = 3u32; +pub const CM_DEVICE_PANEL_SIDE_RIGHT: u32 = 4u32; +pub const CM_DEVICE_PANEL_SIDE_TOP: u32 = 1u32; +pub const CM_DEVICE_PANEL_SIDE_UNKNOWN: u32 = 0u32; +pub const CM_DISABLE_ABSOLUTE: u32 = 1u32; +pub const CM_DISABLE_BITS: u32 = 15u32; +pub const CM_DISABLE_HARDWARE: u32 = 2u32; +pub const CM_DISABLE_PERSIST: u32 = 8u32; +pub const CM_DISABLE_POLITE: u32 = 0u32; +pub const CM_DISABLE_UI_NOT_OK: u32 = 4u32; +pub const CM_DRP_ADDRESS: u32 = 29u32; +pub const CM_DRP_BASE_CONTAINERID: u32 = 37u32; +pub const CM_DRP_BUSNUMBER: u32 = 22u32; +pub const CM_DRP_BUSTYPEGUID: u32 = 20u32; +pub const CM_DRP_CAPABILITIES: u32 = 16u32; +pub const CM_DRP_CHARACTERISTICS: u32 = 28u32; +pub const CM_DRP_CLASS: u32 = 8u32; +pub const CM_DRP_CLASSGUID: u32 = 9u32; +pub const CM_DRP_COMPATIBLEIDS: u32 = 3u32; +pub const CM_DRP_CONFIGFLAGS: u32 = 11u32; +pub const CM_DRP_DEVICEDESC: u32 = 1u32; +pub const CM_DRP_DEVICE_POWER_DATA: u32 = 31u32; +pub const CM_DRP_DEVTYPE: u32 = 26u32; +pub const CM_DRP_DRIVER: u32 = 10u32; +pub const CM_DRP_ENUMERATOR_NAME: u32 = 23u32; +pub const CM_DRP_EXCLUSIVE: u32 = 27u32; +pub const CM_DRP_FRIENDLYNAME: u32 = 13u32; +pub const CM_DRP_HARDWAREID: u32 = 2u32; +pub const CM_DRP_INSTALL_STATE: u32 = 35u32; +pub const CM_DRP_LEGACYBUSTYPE: u32 = 21u32; +pub const CM_DRP_LOCATION_INFORMATION: u32 = 14u32; +pub const CM_DRP_LOCATION_PATHS: u32 = 36u32; +pub const CM_DRP_LOWERFILTERS: u32 = 19u32; +pub const CM_DRP_MAX: u32 = 37u32; +pub const CM_DRP_MFG: u32 = 12u32; +pub const CM_DRP_MIN: u32 = 1u32; +pub const CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME: u32 = 15u32; +pub const CM_DRP_REMOVAL_POLICY: u32 = 32u32; +pub const CM_DRP_REMOVAL_POLICY_HW_DEFAULT: u32 = 33u32; +pub const CM_DRP_REMOVAL_POLICY_OVERRIDE: u32 = 34u32; +pub const CM_DRP_SECURITY: u32 = 24u32; +pub const CM_DRP_SECURITY_SDS: u32 = 25u32; +pub const CM_DRP_SERVICE: u32 = 5u32; +pub const CM_DRP_UI_NUMBER: u32 = 17u32; +pub const CM_DRP_UI_NUMBER_DESC_FORMAT: u32 = 30u32; +pub const CM_DRP_UNUSED0: u32 = 4u32; +pub const CM_DRP_UNUSED1: u32 = 6u32; +pub const CM_DRP_UNUSED2: u32 = 7u32; +pub const CM_DRP_UPPERFILTERS: u32 = 18u32; +pub const CM_ENUMERATE_CLASSES_BITS: CM_ENUMERATE_FLAGS = 1u32; +pub const CM_ENUMERATE_CLASSES_INSTALLER: CM_ENUMERATE_FLAGS = 0u32; +pub const CM_ENUMERATE_CLASSES_INTERFACE: CM_ENUMERATE_FLAGS = 1u32; +pub const CM_GETIDLIST_DONOTGENERATE: u32 = 268435520u32; +pub const CM_GETIDLIST_FILTER_BITS: u32 = 268435583u32; +pub const CM_GETIDLIST_FILTER_BUSRELATIONS: u32 = 32u32; +pub const CM_GETIDLIST_FILTER_CLASS: u32 = 512u32; +pub const CM_GETIDLIST_FILTER_EJECTRELATIONS: u32 = 4u32; +pub const CM_GETIDLIST_FILTER_ENUMERATOR: u32 = 1u32; +pub const CM_GETIDLIST_FILTER_NONE: u32 = 0u32; +pub const CM_GETIDLIST_FILTER_POWERRELATIONS: u32 = 16u32; +pub const CM_GETIDLIST_FILTER_PRESENT: u32 = 256u32; +pub const CM_GETIDLIST_FILTER_REMOVALRELATIONS: u32 = 8u32; +pub const CM_GETIDLIST_FILTER_SERVICE: u32 = 2u32; +pub const CM_GETIDLIST_FILTER_TRANSPORTRELATIONS: u32 = 128u32; +pub const CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES: CM_GET_DEVICE_INTERFACE_LIST_FLAGS = 1u32; +pub const CM_GET_DEVICE_INTERFACE_LIST_BITS: CM_GET_DEVICE_INTERFACE_LIST_FLAGS = 1u32; +pub const CM_GET_DEVICE_INTERFACE_LIST_PRESENT: CM_GET_DEVICE_INTERFACE_LIST_FLAGS = 0u32; +pub const CM_GLOBAL_STATE_CAN_DO_UI: u32 = 1u32; +pub const CM_GLOBAL_STATE_DETECTION_PENDING: u32 = 16u32; +pub const CM_GLOBAL_STATE_ON_BIG_STACK: u32 = 2u32; +pub const CM_GLOBAL_STATE_REBOOT_REQUIRED: u32 = 32u32; +pub const CM_GLOBAL_STATE_SERVICES_AVAILABLE: u32 = 4u32; +pub const CM_GLOBAL_STATE_SHUTTING_DOWN: u32 = 8u32; +pub const CM_HWPI_DOCKED: u32 = 2u32; +pub const CM_HWPI_NOT_DOCKABLE: u32 = 0u32; +pub const CM_HWPI_UNDOCKED: u32 = 1u32; +pub const CM_INSTALL_STATE_FAILED_INSTALL: CM_INSTALL_STATE = 2u32; +pub const CM_INSTALL_STATE_FINISH_INSTALL: CM_INSTALL_STATE = 3u32; +pub const CM_INSTALL_STATE_INSTALLED: CM_INSTALL_STATE = 0u32; +pub const CM_INSTALL_STATE_NEEDS_REINSTALL: CM_INSTALL_STATE = 1u32; +pub const CM_LOCATE_DEVNODE_BITS: CM_LOCATE_DEVNODE_FLAGS = 7u32; +pub const CM_LOCATE_DEVNODE_CANCELREMOVE: CM_LOCATE_DEVNODE_FLAGS = 2u32; +pub const CM_LOCATE_DEVNODE_NORMAL: CM_LOCATE_DEVNODE_FLAGS = 0u32; +pub const CM_LOCATE_DEVNODE_NOVALIDATION: CM_LOCATE_DEVNODE_FLAGS = 4u32; +pub const CM_LOCATE_DEVNODE_PHANTOM: CM_LOCATE_DEVNODE_FLAGS = 1u32; +pub const CM_NAME_ATTRIBUTE_NAME_RETRIEVED_FROM_DEVICE: u32 = 1u32; +pub const CM_NAME_ATTRIBUTE_USER_ASSIGNED_NAME: u32 = 2u32; +pub const CM_NOTIFY_ACTION_DEVICECUSTOMEVENT: CM_NOTIFY_ACTION = 6i32; +pub const CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED: CM_NOTIFY_ACTION = 7i32; +pub const CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED: CM_NOTIFY_ACTION = 9i32; +pub const CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED: CM_NOTIFY_ACTION = 8i32; +pub const CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL: CM_NOTIFY_ACTION = 0i32; +pub const CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL: CM_NOTIFY_ACTION = 1i32; +pub const CM_NOTIFY_ACTION_DEVICEQUERYREMOVE: CM_NOTIFY_ACTION = 2i32; +pub const CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED: CM_NOTIFY_ACTION = 3i32; +pub const CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE: CM_NOTIFY_ACTION = 5i32; +pub const CM_NOTIFY_ACTION_DEVICEREMOVEPENDING: CM_NOTIFY_ACTION = 4i32; +pub const CM_NOTIFY_ACTION_MAX: CM_NOTIFY_ACTION = 10i32; +pub const CM_NOTIFY_FILTER_FLAG_ALL_DEVICE_INSTANCES: u32 = 2u32; +pub const CM_NOTIFY_FILTER_FLAG_ALL_INTERFACE_CLASSES: u32 = 1u32; +pub const CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE: CM_NOTIFY_FILTER_TYPE = 1i32; +pub const CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE: CM_NOTIFY_FILTER_TYPE = 2i32; +pub const CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE: CM_NOTIFY_FILTER_TYPE = 0i32; +pub const CM_NOTIFY_FILTER_TYPE_MAX: CM_NOTIFY_FILTER_TYPE = 3i32; +pub const CM_OPEN_CLASS_KEY_BITS: u32 = 1u32; +pub const CM_OPEN_CLASS_KEY_INSTALLER: u32 = 0u32; +pub const CM_OPEN_CLASS_KEY_INTERFACE: u32 = 1u32; +pub const CM_PROB_BIOS_TABLE: CM_PROB = 35u32; +pub const CM_PROB_BOOT_CONFIG_CONFLICT: CM_PROB = 6u32; +pub const CM_PROB_CANT_SHARE_IRQ: CM_PROB = 30u32; +pub const CM_PROB_CONSOLE_LOCKED: CM_PROB = 55u32; +pub const CM_PROB_DEVICE_NOT_THERE: CM_PROB = 24u32; +pub const CM_PROB_DEVICE_RESET: CM_PROB = 54u32; +pub const CM_PROB_DEVLOADER_FAILED: CM_PROB = 2u32; +pub const CM_PROB_DEVLOADER_NOT_FOUND: CM_PROB = 8u32; +pub const CM_PROB_DEVLOADER_NOT_READY: CM_PROB = 23u32; +pub const CM_PROB_DISABLED: CM_PROB = 22u32; +pub const CM_PROB_DISABLED_SERVICE: CM_PROB = 32u32; +pub const CM_PROB_DRIVER_BLOCKED: CM_PROB = 48u32; +pub const CM_PROB_DRIVER_FAILED_LOAD: CM_PROB = 39u32; +pub const CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD: CM_PROB = 38u32; +pub const CM_PROB_DRIVER_SERVICE_KEY_INVALID: CM_PROB = 40u32; +pub const CM_PROB_DUPLICATE_DEVICE: CM_PROB = 42u32; +pub const CM_PROB_ENTRY_IS_WRONG_TYPE: CM_PROB = 4u32; +pub const CM_PROB_FAILED_ADD: CM_PROB = 31u32; +pub const CM_PROB_FAILED_DRIVER_ENTRY: CM_PROB = 37u32; +pub const CM_PROB_FAILED_FILTER: CM_PROB = 7u32; +pub const CM_PROB_FAILED_INSTALL: CM_PROB = 28u32; +pub const CM_PROB_FAILED_POST_START: CM_PROB = 43u32; +pub const CM_PROB_FAILED_START: CM_PROB = 10u32; +pub const CM_PROB_GUEST_ASSIGNMENT_FAILED: CM_PROB = 57u32; +pub const CM_PROB_HALTED: CM_PROB = 44u32; +pub const CM_PROB_HARDWARE_DISABLED: CM_PROB = 29u32; +pub const CM_PROB_HELD_FOR_EJECT: CM_PROB = 47u32; +pub const CM_PROB_INVALID_DATA: CM_PROB = 9u32; +pub const CM_PROB_IRQ_TRANSLATION_FAILED: CM_PROB = 36u32; +pub const CM_PROB_LACKED_ARBITRATOR: CM_PROB = 5u32; +pub const CM_PROB_LEGACY_SERVICE_NO_DEVICES: CM_PROB = 41u32; +pub const CM_PROB_LIAR: CM_PROB = 11u32; +pub const CM_PROB_MOVED: CM_PROB = 25u32; +pub const CM_PROB_NEED_CLASS_CONFIG: CM_PROB = 56u32; +pub const CM_PROB_NEED_RESTART: CM_PROB = 14u32; +pub const CM_PROB_NORMAL_CONFLICT: CM_PROB = 12u32; +pub const CM_PROB_NOT_CONFIGURED: CM_PROB = 1u32; +pub const CM_PROB_NOT_VERIFIED: CM_PROB = 13u32; +pub const CM_PROB_NO_SOFTCONFIG: CM_PROB = 34u32; +pub const CM_PROB_NO_VALID_LOG_CONF: CM_PROB = 27u32; +pub const CM_PROB_OUT_OF_MEMORY: CM_PROB = 3u32; +pub const CM_PROB_PARTIAL_LOG_CONF: CM_PROB = 16u32; +pub const CM_PROB_PHANTOM: CM_PROB = 45u32; +pub const CM_PROB_REENUMERATION: CM_PROB = 15u32; +pub const CM_PROB_REGISTRY: CM_PROB = 19u32; +pub const CM_PROB_REGISTRY_TOO_LARGE: CM_PROB = 49u32; +pub const CM_PROB_REINSTALL: CM_PROB = 18u32; +pub const CM_PROB_SETPROPERTIES_FAILED: CM_PROB = 50u32; +pub const CM_PROB_SYSTEM_SHUTDOWN: CM_PROB = 46u32; +pub const CM_PROB_TOO_EARLY: CM_PROB = 26u32; +pub const CM_PROB_TRANSLATION_FAILED: CM_PROB = 33u32; +pub const CM_PROB_UNKNOWN_RESOURCE: CM_PROB = 17u32; +pub const CM_PROB_UNSIGNED_DRIVER: CM_PROB = 52u32; +pub const CM_PROB_USED_BY_DEBUGGER: CM_PROB = 53u32; +pub const CM_PROB_VXDLDR: CM_PROB = 20u32; +pub const CM_PROB_WAITING_ON_DEPENDENCY: CM_PROB = 51u32; +pub const CM_PROB_WILL_BE_REMOVED: CM_PROB = 21u32; +pub const CM_QUERY_ARBITRATOR_BITS: u32 = 1u32; +pub const CM_QUERY_ARBITRATOR_RAW: u32 = 0u32; +pub const CM_QUERY_ARBITRATOR_TRANSLATED: u32 = 1u32; +pub const CM_QUERY_REMOVE_UI_NOT_OK: u32 = 1u32; +pub const CM_QUERY_REMOVE_UI_OK: u32 = 0u32; +pub const CM_REENUMERATE_ASYNCHRONOUS: CM_REENUMERATE_FLAGS = 4u32; +pub const CM_REENUMERATE_BITS: CM_REENUMERATE_FLAGS = 7u32; +pub const CM_REENUMERATE_NORMAL: CM_REENUMERATE_FLAGS = 0u32; +pub const CM_REENUMERATE_RETRY_INSTALLATION: CM_REENUMERATE_FLAGS = 2u32; +pub const CM_REENUMERATE_SYNCHRONOUS: CM_REENUMERATE_FLAGS = 1u32; +pub const CM_REGISTER_DEVICE_DRIVER_BITS: u32 = 3u32; +pub const CM_REGISTER_DEVICE_DRIVER_DISABLEABLE: u32 = 1u32; +pub const CM_REGISTER_DEVICE_DRIVER_REMOVABLE: u32 = 2u32; +pub const CM_REGISTER_DEVICE_DRIVER_STATIC: u32 = 0u32; +pub const CM_REGISTRY_BITS: u32 = 769u32; +pub const CM_REGISTRY_CONFIG: u32 = 512u32; +pub const CM_REGISTRY_HARDWARE: u32 = 0u32; +pub const CM_REGISTRY_SOFTWARE: u32 = 1u32; +pub const CM_REGISTRY_USER: u32 = 256u32; +pub const CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL: CM_REMOVAL_POLICY = 1u32; +pub const CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL: CM_REMOVAL_POLICY = 2u32; +pub const CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL: CM_REMOVAL_POLICY = 3u32; +pub const CM_REMOVE_BITS: u32 = 7u32; +pub const CM_REMOVE_DISABLE: u32 = 4u32; +pub const CM_REMOVE_NO_RESTART: u32 = 2u32; +pub const CM_REMOVE_UI_NOT_OK: u32 = 1u32; +pub const CM_REMOVE_UI_OK: u32 = 0u32; +pub const CM_RESDES_WIDTH_32: u32 = 1u32; +pub const CM_RESDES_WIDTH_64: u32 = 2u32; +pub const CM_RESDES_WIDTH_BITS: u32 = 3u32; +pub const CM_RESDES_WIDTH_DEFAULT: u32 = 0u32; +pub const CM_SETUP_BITS: u32 = 15u32; +pub const CM_SETUP_DEVINST_CONFIG: u32 = 5u32; +pub const CM_SETUP_DEVINST_CONFIG_CLASS: u32 = 6u32; +pub const CM_SETUP_DEVINST_CONFIG_EXTENSIONS: u32 = 7u32; +pub const CM_SETUP_DEVINST_CONFIG_RESET: u32 = 8u32; +pub const CM_SETUP_DEVINST_READY: u32 = 0u32; +pub const CM_SETUP_DEVINST_RESET: u32 = 4u32; +pub const CM_SETUP_DEVNODE_CONFIG: u32 = 5u32; +pub const CM_SETUP_DEVNODE_CONFIG_CLASS: u32 = 6u32; +pub const CM_SETUP_DEVNODE_CONFIG_EXTENSIONS: u32 = 7u32; +pub const CM_SETUP_DEVNODE_CONFIG_RESET: u32 = 8u32; +pub const CM_SETUP_DEVNODE_READY: u32 = 0u32; +pub const CM_SETUP_DEVNODE_RESET: u32 = 4u32; +pub const CM_SETUP_DOWNLOAD: u32 = 1u32; +pub const CM_SETUP_PROP_CHANGE: u32 = 3u32; +pub const CM_SETUP_WRITE_LOG_CONFS: u32 = 2u32; +pub const CM_SET_DEVINST_PROBLEM_BITS: u32 = 1u32; +pub const CM_SET_DEVINST_PROBLEM_NORMAL: u32 = 0u32; +pub const CM_SET_DEVINST_PROBLEM_OVERRIDE: u32 = 1u32; +pub const CM_SET_DEVNODE_PROBLEM_BITS: u32 = 1u32; +pub const CM_SET_DEVNODE_PROBLEM_NORMAL: u32 = 0u32; +pub const CM_SET_DEVNODE_PROBLEM_OVERRIDE: u32 = 1u32; +pub const CM_SET_HW_PROF_FLAGS_BITS: u32 = 1u32; +pub const CM_SET_HW_PROF_FLAGS_UI_NOT_OK: u32 = 1u32; +pub const CONFIGMG_VERSION: u32 = 1024u32; +pub const COPYFLG_FORCE_FILE_IN_USE: u32 = 8u32; +pub const COPYFLG_IN_USE_TRY_RENAME: u32 = 16384u32; +pub const COPYFLG_NODECOMP: u32 = 2048u32; +pub const COPYFLG_NOPRUNE: u32 = 8192u32; +pub const COPYFLG_NOSKIP: u32 = 2u32; +pub const COPYFLG_NOVERSIONCHECK: u32 = 4u32; +pub const COPYFLG_NO_OVERWRITE: u32 = 16u32; +pub const COPYFLG_NO_VERSION_DIALOG: u32 = 32u32; +pub const COPYFLG_OVERWRITE_OLDER_ONLY: u32 = 64u32; +pub const COPYFLG_PROTECTED_WINDOWS_DRIVER_FILE: u32 = 256u32; +pub const COPYFLG_REPLACEONLY: u32 = 1024u32; +pub const COPYFLG_REPLACE_BOOT_FILE: u32 = 4096u32; +pub const COPYFLG_WARN_IF_SKIP: u32 = 1u32; +pub const CR_ACCESS_DENIED: CONFIGRET = 51u32; +pub const CR_ALREADY_SUCH_DEVINST: CONFIGRET = 16u32; +pub const CR_ALREADY_SUCH_DEVNODE: CONFIGRET = 16u32; +pub const CR_APM_VETOED: CONFIGRET = 24u32; +pub const CR_BUFFER_SMALL: CONFIGRET = 26u32; +pub const CR_CALL_NOT_IMPLEMENTED: CONFIGRET = 52u32; +pub const CR_CANT_SHARE_IRQ: CONFIGRET = 43u32; +pub const CR_CREATE_BLOCKED: CONFIGRET = 21u32; +pub const CR_DEFAULT: CONFIGRET = 1u32; +pub const CR_DEVICE_INTERFACE_ACTIVE: CONFIGRET = 54u32; +pub const CR_DEVICE_NOT_THERE: CONFIGRET = 36u32; +pub const CR_DEVINST_HAS_REQS: CONFIGRET = 10u32; +pub const CR_DEVLOADER_NOT_READY: CONFIGRET = 33u32; +pub const CR_DEVNODE_HAS_REQS: CONFIGRET = 10u32; +pub const CR_DLVXD_NOT_FOUND: CONFIGRET = 12u32; +pub const CR_FAILURE: CONFIGRET = 19u32; +pub const CR_FREE_RESOURCES: CONFIGRET = 41u32; +pub const CR_INVALID_API: CONFIGRET = 32u32; +pub const CR_INVALID_ARBITRATOR: CONFIGRET = 8u32; +pub const CR_INVALID_CONFLICT_LIST: CONFIGRET = 57u32; +pub const CR_INVALID_DATA: CONFIGRET = 31u32; +pub const CR_INVALID_DEVICE_ID: CONFIGRET = 30u32; +pub const CR_INVALID_DEVINST: CONFIGRET = 5u32; +pub const CR_INVALID_DEVNODE: CONFIGRET = 5u32; +pub const CR_INVALID_FLAG: CONFIGRET = 4u32; +pub const CR_INVALID_INDEX: CONFIGRET = 58u32; +pub const CR_INVALID_LOAD_TYPE: CONFIGRET = 25u32; +pub const CR_INVALID_LOG_CONF: CONFIGRET = 7u32; +pub const CR_INVALID_MACHINENAME: CONFIGRET = 47u32; +pub const CR_INVALID_NODELIST: CONFIGRET = 9u32; +pub const CR_INVALID_POINTER: CONFIGRET = 3u32; +pub const CR_INVALID_PRIORITY: CONFIGRET = 39u32; +pub const CR_INVALID_PROPERTY: CONFIGRET = 53u32; +pub const CR_INVALID_RANGE: CONFIGRET = 18u32; +pub const CR_INVALID_RANGE_LIST: CONFIGRET = 17u32; +pub const CR_INVALID_REFERENCE_STRING: CONFIGRET = 56u32; +pub const CR_INVALID_RESOURCEID: CONFIGRET = 11u32; +pub const CR_INVALID_RES_DES: CONFIGRET = 6u32; +pub const CR_INVALID_STRUCTURE_SIZE: CONFIGRET = 59u32; +pub const CR_MACHINE_UNAVAILABLE: CONFIGRET = 49u32; +pub const CR_NEED_RESTART: CONFIGRET = 34u32; +pub const CR_NOT_DISABLEABLE: CONFIGRET = 40u32; +pub const CR_NOT_SYSTEM_VM: CONFIGRET = 22u32; +pub const CR_NO_ARBITRATOR: CONFIGRET = 27u32; +pub const CR_NO_CM_SERVICES: CONFIGRET = 50u32; +pub const CR_NO_DEPENDENT: CONFIGRET = 44u32; +pub const CR_NO_MORE_HW_PROFILES: CONFIGRET = 35u32; +pub const CR_NO_MORE_LOG_CONF: CONFIGRET = 14u32; +pub const CR_NO_MORE_RES_DES: CONFIGRET = 15u32; +pub const CR_NO_REGISTRY_HANDLE: CONFIGRET = 28u32; +pub const CR_NO_SUCH_DEVICE_INTERFACE: CONFIGRET = 55u32; +pub const CR_NO_SUCH_DEVINST: CONFIGRET = 13u32; +pub const CR_NO_SUCH_DEVNODE: CONFIGRET = 13u32; +pub const CR_NO_SUCH_LOGICAL_DEV: CONFIGRET = 20u32; +pub const CR_NO_SUCH_REGISTRY_KEY: CONFIGRET = 46u32; +pub const CR_NO_SUCH_VALUE: CONFIGRET = 37u32; +pub const CR_OUT_OF_MEMORY: CONFIGRET = 2u32; +pub const CR_QUERY_VETOED: CONFIGRET = 42u32; +pub const CR_REGISTRY_ERROR: CONFIGRET = 29u32; +pub const CR_REMOTE_COMM_FAILURE: CONFIGRET = 48u32; +pub const CR_REMOVE_VETOED: CONFIGRET = 23u32; +pub const CR_SAME_RESOURCES: CONFIGRET = 45u32; +pub const CR_SUCCESS: CONFIGRET = 0u32; +pub const CR_WRONG_TYPE: CONFIGRET = 38u32; +pub const DELFLG_IN_USE: u32 = 1u32; +pub const DELFLG_IN_USE1: u32 = 65536u32; +pub const DIBCI_NODISPLAYCLASS: u32 = 2u32; +pub const DIBCI_NOINSTALLCLASS: u32 = 1u32; +pub const DICD_GENERATE_ID: u32 = 1u32; +pub const DICD_INHERIT_CLASSDRVS: u32 = 2u32; +pub const DICLASSPROP_INSTALLER: u32 = 1u32; +pub const DICLASSPROP_INTERFACE: u32 = 2u32; +pub const DICS_DISABLE: u32 = 2u32; +pub const DICS_ENABLE: u32 = 1u32; +pub const DICS_FLAG_CONFIGGENERAL: u32 = 4u32; +pub const DICS_FLAG_CONFIGSPECIFIC: u32 = 2u32; +pub const DICS_FLAG_GLOBAL: u32 = 1u32; +pub const DICS_PROPCHANGE: u32 = 3u32; +pub const DICS_START: u32 = 4u32; +pub const DICS_STOP: u32 = 5u32; +pub const DICUSTOMDEVPROP_MERGE_MULTISZ: u32 = 1u32; +pub const DIF_ADDPROPERTYPAGE_ADVANCED: u32 = 35u32; +pub const DIF_ADDPROPERTYPAGE_BASIC: u32 = 36u32; +pub const DIF_ADDREMOTEPROPERTYPAGE_ADVANCED: u32 = 40u32; +pub const DIF_ALLOW_INSTALL: u32 = 24u32; +pub const DIF_ASSIGNRESOURCES: u32 = 3u32; +pub const DIF_CALCDISKSPACE: u32 = 11u32; +pub const DIF_DESTROYPRIVATEDATA: u32 = 12u32; +pub const DIF_DESTROYWIZARDDATA: u32 = 17u32; +pub const DIF_DETECT: u32 = 15u32; +pub const DIF_DETECTCANCEL: u32 = 33u32; +pub const DIF_DETECTVERIFY: u32 = 20u32; +pub const DIF_ENABLECLASS: u32 = 19u32; +pub const DIF_FINISHINSTALL_ACTION: u32 = 42u32; +pub const DIF_FIRSTTIMESETUP: u32 = 6u32; +pub const DIF_FOUNDDEVICE: u32 = 7u32; +pub const DIF_INSTALLCLASSDRIVERS: u32 = 10u32; +pub const DIF_INSTALLDEVICE: u32 = 2u32; +pub const DIF_INSTALLDEVICEFILES: u32 = 21u32; +pub const DIF_INSTALLINTERFACES: u32 = 32u32; +pub const DIF_INSTALLWIZARD: u32 = 16u32; +pub const DIF_MOVEDEVICE: u32 = 14u32; +pub const DIF_NEWDEVICEWIZARD_FINISHINSTALL: u32 = 30u32; +pub const DIF_NEWDEVICEWIZARD_POSTANALYZE: u32 = 29u32; +pub const DIF_NEWDEVICEWIZARD_PREANALYZE: u32 = 28u32; +pub const DIF_NEWDEVICEWIZARD_PRESELECT: u32 = 26u32; +pub const DIF_NEWDEVICEWIZARD_SELECT: u32 = 27u32; +pub const DIF_POWERMESSAGEWAKE: u32 = 39u32; +pub const DIF_PROPERTIES: u32 = 4u32; +pub const DIF_PROPERTYCHANGE: u32 = 18u32; +pub const DIF_REGISTERDEVICE: u32 = 25u32; +pub const DIF_REGISTER_COINSTALLERS: u32 = 34u32; +pub const DIF_REMOVE: u32 = 5u32; +pub const DIF_RESERVED1: u32 = 37u32; +pub const DIF_RESERVED2: u32 = 48u32; +pub const DIF_SELECTBESTCOMPATDRV: u32 = 23u32; +pub const DIF_SELECTCLASSDRIVERS: u32 = 8u32; +pub const DIF_SELECTDEVICE: u32 = 1u32; +pub const DIF_TROUBLESHOOTER: u32 = 38u32; +pub const DIF_UNREMOVE: u32 = 22u32; +pub const DIF_UNUSED1: u32 = 31u32; +pub const DIF_UPDATEDRIVER_UI: u32 = 41u32; +pub const DIF_VALIDATECLASSDRIVERS: u32 = 9u32; +pub const DIF_VALIDATEDRIVER: u32 = 13u32; +pub const DIGCDP_FLAG_ADVANCED: u32 = 2u32; +pub const DIGCDP_FLAG_BASIC: u32 = 1u32; +pub const DIGCDP_FLAG_REMOTE_ADVANCED: u32 = 4u32; +pub const DIGCDP_FLAG_REMOTE_BASIC: u32 = 3u32; +pub const DIGCF_ALLCLASSES: u32 = 4u32; +pub const DIGCF_DEFAULT: u32 = 1u32; +pub const DIGCF_DEVICEINTERFACE: u32 = 16u32; +pub const DIGCF_INTERFACEDEVICE: u32 = 16u32; +pub const DIGCF_PRESENT: u32 = 2u32; +pub const DIGCF_PROFILE: u32 = 8u32; +pub const DIIDFLAG_BITS: DIINSTALLDEVICE_FLAGS = 15u32; +pub const DIIDFLAG_INSTALLCOPYINFDRIVERS: DIINSTALLDEVICE_FLAGS = 8u32; +pub const DIIDFLAG_INSTALLNULLDRIVER: DIINSTALLDEVICE_FLAGS = 4u32; +pub const DIIDFLAG_NOFINISHINSTALLUI: DIINSTALLDEVICE_FLAGS = 2u32; +pub const DIIDFLAG_SHOWSEARCHUI: DIINSTALLDEVICE_FLAGS = 1u32; +pub const DIIRFLAG_BITS: DIINSTALLDRIVER_FLAGS = 106u32; +pub const DIIRFLAG_FORCE_INF: DIINSTALLDRIVER_FLAGS = 2u32; +pub const DIIRFLAG_HOTPATCH: DIINSTALLDRIVER_FLAGS = 8u32; +pub const DIIRFLAG_HW_USING_THE_INF: DIINSTALLDRIVER_FLAGS = 4u32; +pub const DIIRFLAG_INF_ALREADY_COPIED: DIINSTALLDRIVER_FLAGS = 1u32; +pub const DIIRFLAG_INSTALL_AS_SET: DIINSTALLDRIVER_FLAGS = 64u32; +pub const DIIRFLAG_NOBACKUP: DIINSTALLDRIVER_FLAGS = 16u32; +pub const DIIRFLAG_PRE_CONFIGURE_INF: DIINSTALLDRIVER_FLAGS = 32u32; +pub const DIIRFLAG_SYSTEM_BITS: DIINSTALLDRIVER_FLAGS = 127u32; +pub const DIOCR_INSTALLER: u32 = 1u32; +pub const DIOCR_INTERFACE: u32 = 2u32; +pub const DIODI_NO_ADD: u32 = 1u32; +pub const DIOD_CANCEL_REMOVE: u32 = 4u32; +pub const DIOD_INHERIT_CLASSDRVS: u32 = 2u32; +pub const DIREG_BOTH: u32 = 4u32; +pub const DIREG_DEV: u32 = 1u32; +pub const DIREG_DRV: u32 = 2u32; +pub const DIRID_ABSOLUTE: i32 = -1i32; +pub const DIRID_ABSOLUTE_16BIT: u32 = 65535u32; +pub const DIRID_APPS: u32 = 24u32; +pub const DIRID_BOOT: u32 = 30u32; +pub const DIRID_COLOR: u32 = 23u32; +pub const DIRID_COMMON_APPDATA: u32 = 16419u32; +pub const DIRID_COMMON_DESKTOPDIRECTORY: u32 = 16409u32; +pub const DIRID_COMMON_DOCUMENTS: u32 = 16430u32; +pub const DIRID_COMMON_FAVORITES: u32 = 16415u32; +pub const DIRID_COMMON_PROGRAMS: u32 = 16407u32; +pub const DIRID_COMMON_STARTMENU: u32 = 16406u32; +pub const DIRID_COMMON_STARTUP: u32 = 16408u32; +pub const DIRID_COMMON_TEMPLATES: u32 = 16429u32; +pub const DIRID_DEFAULT: u32 = 11u32; +pub const DIRID_DRIVERS: u32 = 12u32; +pub const DIRID_DRIVER_STORE: u32 = 13u32; +pub const DIRID_FONTS: u32 = 20u32; +pub const DIRID_HELP: u32 = 18u32; +pub const DIRID_INF: u32 = 17u32; +pub const DIRID_IOSUBSYS: u32 = 12u32; +pub const DIRID_LOADER: u32 = 54u32; +pub const DIRID_NULL: u32 = 0u32; +pub const DIRID_PRINTPROCESSOR: u32 = 55u32; +pub const DIRID_PROGRAM_FILES: u32 = 16422u32; +pub const DIRID_PROGRAM_FILES_COMMON: u32 = 16427u32; +pub const DIRID_PROGRAM_FILES_COMMONX86: u32 = 16428u32; +pub const DIRID_PROGRAM_FILES_X86: u32 = 16426u32; +pub const DIRID_SHARED: u32 = 25u32; +pub const DIRID_SPOOL: u32 = 51u32; +pub const DIRID_SPOOLDRIVERS: u32 = 52u32; +pub const DIRID_SRCPATH: u32 = 1u32; +pub const DIRID_SYSTEM: u32 = 11u32; +pub const DIRID_SYSTEM16: u32 = 50u32; +pub const DIRID_SYSTEM_X86: u32 = 16425u32; +pub const DIRID_USER: u32 = 32768u32; +pub const DIRID_USERPROFILE: u32 = 53u32; +pub const DIRID_VIEWERS: u32 = 21u32; +pub const DIRID_WINDOWS: u32 = 10u32; +pub const DIURFLAG_NO_REMOVE_INF: DIUNINSTALLDRIVER_FLAGS = 1u32; +pub const DIURFLAG_RESERVED: DIUNINSTALLDRIVER_FLAGS = 2u32; +pub const DIURFLAG_VALID: DIUNINSTALLDRIVER_FLAGS = 3u32; +pub const DI_AUTOASSIGNRES: i32 = 64i32; +pub const DI_CLASSINSTALLPARAMS: i32 = 1048576i32; +pub const DI_COMPAT_FROM_CLASS: i32 = 524288i32; +pub const DI_DIDCLASS: i32 = 32i32; +pub const DI_DIDCOMPAT: i32 = 16i32; +pub const DI_DISABLED: i32 = 2048i32; +pub const DI_DONOTCALLCONFIGMG: i32 = 131072i32; +pub const DI_DRIVERPAGE_ADDED: i32 = 67108864i32; +pub const DI_ENUMSINGLEINF: i32 = 65536i32; +pub const DI_FLAGSEX_ALLOWEXCLUDEDDRVS: i32 = 2048i32; +pub const DI_FLAGSEX_ALTPLATFORM_DRVSEARCH: i32 = 268435456i32; +pub const DI_FLAGSEX_ALWAYSWRITEIDS: i32 = 512i32; +pub const DI_FLAGSEX_APPENDDRIVERLIST: i32 = 262144i32; +pub const DI_FLAGSEX_BACKUPONREPLACE: i32 = 1048576i32; +pub const DI_FLAGSEX_CI_FAILED: i32 = 4i32; +pub const DI_FLAGSEX_DEVICECHANGE: i32 = 256i32; +pub const DI_FLAGSEX_DIDCOMPATINFO: i32 = 32i32; +pub const DI_FLAGSEX_DIDINFOLIST: i32 = 16i32; +pub const DI_FLAGSEX_DRIVERLIST_FROM_URL: i32 = 2097152i32; +pub const DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS: i32 = 8388608i32; +pub const DI_FLAGSEX_FILTERCLASSES: i32 = 64i32; +pub const DI_FLAGSEX_FILTERSIMILARDRIVERS: i32 = 33554432i32; +pub const DI_FLAGSEX_FINISHINSTALL_ACTION: i32 = 8i32; +pub const DI_FLAGSEX_INET_DRIVER: i32 = 131072i32; +pub const DI_FLAGSEX_INSTALLEDDRIVER: i32 = 67108864i32; +pub const DI_FLAGSEX_IN_SYSTEM_SETUP: i32 = 65536i32; +pub const DI_FLAGSEX_NOUIONQUERYREMOVE: i32 = 4096i32; +pub const DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE: i32 = 134217728i32; +pub const DI_FLAGSEX_NO_DRVREG_MODIFY: i32 = 32768i32; +pub const DI_FLAGSEX_POWERPAGE_ADDED: i32 = 16777216i32; +pub const DI_FLAGSEX_PREINSTALLBACKUP: i32 = 524288i32; +pub const DI_FLAGSEX_PROPCHANGE_PENDING: i32 = 1024i32; +pub const DI_FLAGSEX_RECURSIVESEARCH: i32 = 1073741824i32; +pub const DI_FLAGSEX_RESERVED1: i32 = 4194304i32; +pub const DI_FLAGSEX_RESERVED2: i32 = 1i32; +pub const DI_FLAGSEX_RESERVED3: i32 = 2i32; +pub const DI_FLAGSEX_RESERVED4: i32 = 16384i32; +pub const DI_FLAGSEX_RESTART_DEVICE_ONLY: i32 = 536870912i32; +pub const DI_FLAGSEX_SEARCH_PUBLISHED_INFS: i32 = -2147483648i32; +pub const DI_FLAGSEX_SETFAILEDINSTALL: i32 = 128i32; +pub const DI_FLAGSEX_USECLASSFORCOMPAT: i32 = 8192i32; +pub const DI_FORCECOPY: i32 = 33554432i32; +pub const DI_GENERALPAGE_ADDED: i32 = 4096i32; +pub const DI_INF_IS_SORTED: i32 = 32768i32; +pub const DI_INSTALLDISABLED: i32 = 262144i32; +pub const DI_MULTMFGS: i32 = 1024i32; +pub const DI_NEEDREBOOT: i32 = 256i32; +pub const DI_NEEDRESTART: i32 = 128i32; +pub const DI_NOBROWSE: i32 = 512i32; +pub const DI_NODI_DEFAULTACTION: i32 = 2097152i32; +pub const DI_NOFILECOPY: i32 = 16777216i32; +pub const DI_NOSELECTICONS: i32 = 1073741824i32; +pub const DI_NOVCP: i32 = 8i32; +pub const DI_NOWRITE_IDS: i32 = -2147483648i32; +pub const DI_OVERRIDE_INFFLAGS: i32 = 268435456i32; +pub const DI_PROPERTIES_CHANGE: i32 = 16384i32; +pub const DI_PROPS_NOCHANGEUSAGE: i32 = 536870912i32; +pub const DI_QUIETINSTALL: i32 = 8388608i32; +pub const DI_REMOVEDEVICE_CONFIGSPECIFIC: u32 = 2u32; +pub const DI_REMOVEDEVICE_GLOBAL: u32 = 1u32; +pub const DI_RESOURCEPAGE_ADDED: i32 = 8192i32; +pub const DI_SHOWALL: i32 = 7i32; +pub const DI_SHOWCLASS: i32 = 4i32; +pub const DI_SHOWCOMPAT: i32 = 2i32; +pub const DI_SHOWOEM: i32 = 1i32; +pub const DI_UNREMOVEDEVICE_CONFIGSPECIFIC: u32 = 2u32; +pub const DI_USECI_SELECTSTRINGS: i32 = 134217728i32; +pub const DMI_BKCOLOR: u32 = 2u32; +pub const DMI_MASK: u32 = 1u32; +pub const DMI_USERECT: u32 = 4u32; +pub const DNF_ALWAYSEXCLUDEFROMLIST: u32 = 524288u32; +pub const DNF_AUTHENTICODE_SIGNED: u32 = 131072u32; +pub const DNF_BAD_DRIVER: u32 = 2048u32; +pub const DNF_BASIC_DRIVER: u32 = 65536u32; +pub const DNF_CLASS_DRIVER: u32 = 32u32; +pub const DNF_COMPATIBLE_DRIVER: u32 = 64u32; +pub const DNF_DUPDESC: u32 = 1u32; +pub const DNF_DUPDRIVERVER: u32 = 32768u32; +pub const DNF_DUPPROVIDER: u32 = 4096u32; +pub const DNF_EXCLUDEFROMLIST: u32 = 4u32; +pub const DNF_INBOX_DRIVER: u32 = 1048576u32; +pub const DNF_INET_DRIVER: u32 = 128u32; +pub const DNF_INF_IS_SIGNED: u32 = 8192u32; +pub const DNF_INSTALLEDDRIVER: u32 = 262144u32; +pub const DNF_LEGACYINF: u32 = 16u32; +pub const DNF_NODRIVER: u32 = 8u32; +pub const DNF_OEM_F6_INF: u32 = 16384u32; +pub const DNF_OLDDRIVER: u32 = 2u32; +pub const DNF_OLD_INET_DRIVER: u32 = 1024u32; +pub const DNF_REQUESTADDITIONALSOFTWARE: u32 = 2097152u32; +pub const DNF_UNUSED1: u32 = 256u32; +pub const DNF_UNUSED2: u32 = 512u32; +pub const DNF_UNUSED_22: u32 = 4194304u32; +pub const DNF_UNUSED_23: u32 = 8388608u32; +pub const DNF_UNUSED_24: u32 = 16777216u32; +pub const DNF_UNUSED_25: u32 = 33554432u32; +pub const DNF_UNUSED_26: u32 = 67108864u32; +pub const DNF_UNUSED_27: u32 = 134217728u32; +pub const DNF_UNUSED_28: u32 = 268435456u32; +pub const DNF_UNUSED_29: u32 = 536870912u32; +pub const DNF_UNUSED_30: u32 = 1073741824u32; +pub const DNF_UNUSED_31: u32 = 2147483648u32; +pub const DN_APM_DRIVER: CM_DEVNODE_STATUS_FLAGS = 268435456u32; +pub const DN_APM_ENUMERATOR: CM_DEVNODE_STATUS_FLAGS = 134217728u32; +pub const DN_ARM_WAKEUP: CM_DEVNODE_STATUS_FLAGS = 67108864u32; +pub const DN_BAD_PARTIAL: CM_DEVNODE_STATUS_FLAGS = 4194304u32; +pub const DN_BOOT_LOG_PROB: CM_DEVNODE_STATUS_FLAGS = 2147483648u32; +pub const DN_CHANGEABLE_FLAGS: CM_DEVNODE_STATUS_FLAGS = 1639670464u32; +pub const DN_CHILD_WITH_INVALID_ID: CM_DEVNODE_STATUS_FLAGS = 512u32; +pub const DN_DEVICE_DISCONNECTED: CM_DEVNODE_STATUS_FLAGS = 33554432u32; +pub const DN_DISABLEABLE: CM_DEVNODE_STATUS_FLAGS = 8192u32; +pub const DN_DRIVER_BLOCKED: CM_DEVNODE_STATUS_FLAGS = 64u32; +pub const DN_DRIVER_LOADED: CM_DEVNODE_STATUS_FLAGS = 2u32; +pub const DN_ENUM_LOADED: CM_DEVNODE_STATUS_FLAGS = 4u32; +pub const DN_FILTERED: CM_DEVNODE_STATUS_FLAGS = 2048u32; +pub const DN_HARDWARE_ENUM: CM_DEVNODE_STATUS_FLAGS = 128u32; +pub const DN_HAS_MARK: CM_DEVNODE_STATUS_FLAGS = 512u32; +pub const DN_HAS_PROBLEM: CM_DEVNODE_STATUS_FLAGS = 1024u32; +pub const DN_LEGACY_DRIVER: CM_DEVNODE_STATUS_FLAGS = 4096u32; +pub const DN_LIAR: CM_DEVNODE_STATUS_FLAGS = 256u32; +pub const DN_MANUAL: CM_DEVNODE_STATUS_FLAGS = 16u32; +pub const DN_MF_CHILD: CM_DEVNODE_STATUS_FLAGS = 131072u32; +pub const DN_MF_PARENT: CM_DEVNODE_STATUS_FLAGS = 65536u32; +pub const DN_MOVED: CM_DEVNODE_STATUS_FLAGS = 4096u32; +pub const DN_NEEDS_LOCKING: CM_DEVNODE_STATUS_FLAGS = 33554432u32; +pub const DN_NEED_RESTART: CM_DEVNODE_STATUS_FLAGS = 256u32; +pub const DN_NEED_TO_ENUM: CM_DEVNODE_STATUS_FLAGS = 32u32; +pub const DN_NOT_FIRST_TIME: CM_DEVNODE_STATUS_FLAGS = 64u32; +pub const DN_NOT_FIRST_TIMEE: CM_DEVNODE_STATUS_FLAGS = 524288u32; +pub const DN_NO_SHOW_IN_DM: CM_DEVNODE_STATUS_FLAGS = 1073741824u32; +pub const DN_NT_DRIVER: CM_DEVNODE_STATUS_FLAGS = 16777216u32; +pub const DN_NT_ENUMERATOR: CM_DEVNODE_STATUS_FLAGS = 8388608u32; +pub const DN_PRIVATE_PROBLEM: CM_DEVNODE_STATUS_FLAGS = 32768u32; +pub const DN_QUERY_REMOVE_ACTIVE: CM_DEVNODE_STATUS_FLAGS = 131072u32; +pub const DN_QUERY_REMOVE_PENDING: CM_DEVNODE_STATUS_FLAGS = 65536u32; +pub const DN_REBAL_CANDIDATE: CM_DEVNODE_STATUS_FLAGS = 2097152u32; +pub const DN_REMOVABLE: CM_DEVNODE_STATUS_FLAGS = 16384u32; +pub const DN_ROOT_ENUMERATED: CM_DEVNODE_STATUS_FLAGS = 1u32; +pub const DN_SILENT_INSTALL: CM_DEVNODE_STATUS_FLAGS = 536870912u32; +pub const DN_STARTED: CM_DEVNODE_STATUS_FLAGS = 8u32; +pub const DN_STOP_FREE_RES: CM_DEVNODE_STATUS_FLAGS = 1048576u32; +pub const DN_WILL_BE_REMOVED: CM_DEVNODE_STATUS_FLAGS = 262144u32; +pub const DPROMPT_BUFFERTOOSMALL: u32 = 3u32; +pub const DPROMPT_CANCEL: u32 = 1u32; +pub const DPROMPT_OUTOFMEMORY: u32 = 4u32; +pub const DPROMPT_SKIPFILE: u32 = 2u32; +pub const DPROMPT_SUCCESS: u32 = 0u32; +pub const DRIVER_COMPATID_RANK: u32 = 16383u32; +pub const DRIVER_HARDWAREID_MASK: u32 = 2147487743u32; +pub const DRIVER_HARDWAREID_RANK: u32 = 4095u32; +pub const DRIVER_UNTRUSTED_COMPATID_RANK: u32 = 49151u32; +pub const DRIVER_UNTRUSTED_HARDWAREID_RANK: u32 = 36863u32; +pub const DRIVER_UNTRUSTED_RANK: u32 = 2147483648u32; +pub const DRIVER_W9X_SUSPECT_COMPATID_RANK: u32 = 65535u32; +pub const DRIVER_W9X_SUSPECT_HARDWAREID_RANK: u32 = 53247u32; +pub const DRIVER_W9X_SUSPECT_RANK: u32 = 3221225472u32; +pub const DWORD_MAX: u32 = 4294967295u32; +pub const DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT: u32 = 8u32; +pub const DYNAWIZ_FLAG_INSTALLDET_NEXT: u32 = 2u32; +pub const DYNAWIZ_FLAG_INSTALLDET_PREV: u32 = 4u32; +pub const DYNAWIZ_FLAG_PAGESADDED: u32 = 1u32; +pub const ENABLECLASS_FAILURE: u32 = 2u32; +pub const ENABLECLASS_QUERY: u32 = 0u32; +pub const ENABLECLASS_SUCCESS: u32 = 1u32; +pub const FILEOP_ABORT: u32 = 0u32; +pub const FILEOP_BACKUP: u32 = 3u32; +pub const FILEOP_COPY: SETUP_FILE_OPERATION = 0u32; +pub const FILEOP_DELETE: SETUP_FILE_OPERATION = 2u32; +pub const FILEOP_DOIT: u32 = 1u32; +pub const FILEOP_NEWPATH: u32 = 4u32; +pub const FILEOP_RENAME: u32 = 1u32; +pub const FILEOP_RETRY: u32 = 1u32; +pub const FILEOP_SKIP: u32 = 2u32; +pub const FILE_COMPRESSION_MSZIP: u32 = 2u32; +pub const FILE_COMPRESSION_NONE: u32 = 0u32; +pub const FILE_COMPRESSION_NTCAB: u32 = 3u32; +pub const FILE_COMPRESSION_WINLZA: u32 = 1u32; +pub const FILTERED_LOG_CONF: CM_LOG_CONF = 1u32; +pub const FLG_ADDPROPERTY_AND: u32 = 16u32; +pub const FLG_ADDPROPERTY_APPEND: u32 = 4u32; +pub const FLG_ADDPROPERTY_NOCLOBBER: u32 = 1u32; +pub const FLG_ADDPROPERTY_OR: u32 = 8u32; +pub const FLG_ADDPROPERTY_OVERWRITEONLY: u32 = 2u32; +pub const FLG_ADDREG_32BITKEY: u32 = 16384u32; +pub const FLG_ADDREG_64BITKEY: u32 = 4096u32; +pub const FLG_ADDREG_APPEND: u32 = 8u32; +pub const FLG_ADDREG_BINVALUETYPE: u32 = 1u32; +pub const FLG_ADDREG_DELREG_BIT: u32 = 32768u32; +pub const FLG_ADDREG_DELVAL: u32 = 4u32; +pub const FLG_ADDREG_KEYONLY: u32 = 16u32; +pub const FLG_ADDREG_KEYONLY_COMMON: u32 = 8192u32; +pub const FLG_ADDREG_NOCLOBBER: u32 = 2u32; +pub const FLG_ADDREG_OVERWRITEONLY: u32 = 32u32; +pub const FLG_ADDREG_TYPE_EXPAND_SZ: u32 = 131072u32; +pub const FLG_ADDREG_TYPE_MULTI_SZ: u32 = 65536u32; +pub const FLG_ADDREG_TYPE_SZ: u32 = 0u32; +pub const FLG_BITREG_32BITKEY: u32 = 16384u32; +pub const FLG_BITREG_64BITKEY: u32 = 4096u32; +pub const FLG_BITREG_CLEARBITS: u32 = 0u32; +pub const FLG_BITREG_SETBITS: u32 = 1u32; +pub const FLG_DELPROPERTY_MULTI_SZ_DELSTRING: u32 = 1u32; +pub const FLG_DELREG_32BITKEY: u32 = 16384u32; +pub const FLG_DELREG_64BITKEY: u32 = 4096u32; +pub const FLG_DELREG_KEYONLY_COMMON: u32 = 8192u32; +pub const FLG_DELREG_OPERATION_MASK: u32 = 254u32; +pub const FLG_DELREG_TYPE_EXPAND_SZ: u32 = 131072u32; +pub const FLG_DELREG_TYPE_MULTI_SZ: u32 = 65536u32; +pub const FLG_DELREG_TYPE_SZ: u32 = 0u32; +pub const FLG_DELREG_VALUE: u32 = 0u32; +pub const FLG_INI2REG_32BITKEY: u32 = 16384u32; +pub const FLG_INI2REG_64BITKEY: u32 = 4096u32; +pub const FLG_PROFITEM_CSIDL: u32 = 8u32; +pub const FLG_PROFITEM_CURRENTUSER: u32 = 1u32; +pub const FLG_PROFITEM_DELETE: u32 = 2u32; +pub const FLG_PROFITEM_GROUP: u32 = 4u32; +pub const FLG_REGSVR_DLLINSTALL: u32 = 2u32; +pub const FLG_REGSVR_DLLREGISTER: u32 = 1u32; +pub const FORCED_LOG_CONF: CM_LOG_CONF = 4u32; +pub const GUID_ACPI_CMOS_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3a8d0384_6505_40ca_bc39_56c15f8c5fed); +pub const GUID_ACPI_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb091a08a_ba97_11d0_bd14_00aa00b7b32a); +pub const GUID_ACPI_INTERFACE_STANDARD2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe8695f63_1831_4870_a8cf_9c2f03f9dcb5); +pub const GUID_ACPI_PORT_RANGES_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf14f609b_cbbd_4957_a674_bc00213f1c97); +pub const GUID_ACPI_REGS_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x06141966_7245_6369_462e_4e656c736f6e); +pub const GUID_AGP_TARGET_BUS_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb15cfce8_06d1_4d37_9d4c_bedde0c2a6ff); +pub const GUID_ARBITER_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe644f185_8c0e_11d0_becf_08002be2092f); +pub const GUID_BUS_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x496b8280_6f25_11d0_beaf_08002be2092f); +pub const GUID_BUS_RESOURCE_UPDATE_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x27d0102d_bfb2_4164_81dd_dbb82f968b48); +pub const GUID_BUS_TYPE_1394: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf74e73eb_9ac5_45eb_be4d_772cc71ddfb3); +pub const GUID_BUS_TYPE_ACPI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7b46895_001a_4942_891f_a7d46610a843); +pub const GUID_BUS_TYPE_AVC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc06ff265_ae09_48f0_812c_16753d7cba83); +pub const GUID_BUS_TYPE_DOT4PRT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x441ee001_4342_11d5_a184_00c04f60524d); +pub const GUID_BUS_TYPE_EISA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xddc35509_f3fc_11d0_a537_0000f8753ed1); +pub const GUID_BUS_TYPE_HID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeeaf37d0_1963_47c4_aa48_72476db7cf49); +pub const GUID_BUS_TYPE_INTERNAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1530ea73_086b_11d1_a09f_00c04fc340b1); +pub const GUID_BUS_TYPE_IRDA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7ae17dc1_c944_44d6_881f_4c2e61053bc1); +pub const GUID_BUS_TYPE_ISAPNP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe676f854_d87d_11d0_92b2_00a0c9055fc5); +pub const GUID_BUS_TYPE_LPTENUM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc4ca1000_2ddc_11d5_a17a_00c04f60524d); +pub const GUID_BUS_TYPE_MCA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1c75997a_dc33_11d0_92b2_00a0c9055fc5); +pub const GUID_BUS_TYPE_PCI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc8ebdfb0_b510_11d0_80e5_00a0c92542e3); +pub const GUID_BUS_TYPE_PCMCIA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x09343630_af9f_11d0_92e9_0000f81e1b30); +pub const GUID_BUS_TYPE_SCM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x375a5912_804c_45aa_bdc2_fdd25a1d9512); +pub const GUID_BUS_TYPE_SD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe700cc04_4036_4e89_9579_89ebf45f00cd); +pub const GUID_BUS_TYPE_SERENUM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x77114a87_8944_11d1_bd90_00a0c906be2d); +pub const GUID_BUS_TYPE_SW_DEVICE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x06d10322_7de0_4cef_8e25_197d0e7442e2); +pub const GUID_BUS_TYPE_USB: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9d7debbc_c85d_11d1_9eb4_006008c3a19a); +pub const GUID_BUS_TYPE_USBPRINT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x441ee000_4342_11d5_a184_00c04f60524d); +pub const GUID_D3COLD_AUX_POWER_AND_TIMING_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0044d8aa_f664_4588_9ffc_2afeaf5950b9); +pub const GUID_D3COLD_SUPPORT_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb38290e5_3cd0_4f9d_9937_f5fe2b44d47a); +pub const GUID_DEVCLASS_1394: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6bdd1fc1_810f_11d0_bec7_08002be2092f); +pub const GUID_DEVCLASS_1394DEBUG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66f250d6_7801_4a64_b139_eea80a450b24); +pub const GUID_DEVCLASS_61883: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7ebefbc0_3200_11d2_b4c2_00a0c9697d07); +pub const GUID_DEVCLASS_ADAPTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e964_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_APMSUPPORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd45b1c18_c8fa_11d1_9f77_0000f805f530); +pub const GUID_DEVCLASS_AVC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc06ff265_ae09_48f0_812c_16753d7cba83); +pub const GUID_DEVCLASS_BATTERY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x72631e54_78a4_11d0_bcf7_00aa00b7b32a); +pub const GUID_DEVCLASS_BIOMETRIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53d29ef7_377c_4d14_864b_eb3a85769359); +pub const GUID_DEVCLASS_BLUETOOTH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe0cbf06c_cd8b_4647_bb8a_263b43f0f974); +pub const GUID_DEVCLASS_CAMERA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xca3e7ab9_b4c3_4ae6_8251_579ef933890f); +pub const GUID_DEVCLASS_CDROM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e965_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_COMPUTEACCELERATOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf01a9d53_3ff6_48d2_9f97_c8a7004be10c); +pub const GUID_DEVCLASS_COMPUTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e966_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_DECODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6bdd1fc2_810f_11d0_bec7_08002be2092f); +pub const GUID_DEVCLASS_DISKDRIVE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e967_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_DISPLAY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e968_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_DOT4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x48721b56_6795_11d2_b1a8_0080c72e74a2); +pub const GUID_DEVCLASS_DOT4PRINT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49ce6ac8_6f86_11d2_b1e5_0080c72e74a2); +pub const GUID_DEVCLASS_EHSTORAGESILO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9da2b80f_f89f_4a49_a5c2_511b085b9e8a); +pub const GUID_DEVCLASS_ENUM1394: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc459df55_db08_11d1_b009_00a0c9081ff6); +pub const GUID_DEVCLASS_EXTENSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe2f84ce7_8efa_411c_aa69_97454ca4cb57); +pub const GUID_DEVCLASS_FDC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e969_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_FIRMWARE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e7dd72_6468_4e36_b6f1_6488f42c1b52); +pub const GUID_DEVCLASS_FLOPPYDISK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e980_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_FSFILTER_ACTIVITYMONITOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb86dff51_a31e_4bac_b3cf_e8cfe75c9fc2); +pub const GUID_DEVCLASS_FSFILTER_ANTIVIRUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb1d1a169_c54f_4379_81db_bee7d88d7454); +pub const GUID_DEVCLASS_FSFILTER_BOTTOM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x37765ea0_5958_4fc9_b04b_2fdfef97e59e); +pub const GUID_DEVCLASS_FSFILTER_CFSMETADATASERVER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcdcf0939_b75b_4630_bf76_80f7ba655884); +pub const GUID_DEVCLASS_FSFILTER_COMPRESSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf3586baf_b5aa_49b5_8d6c_0569284c639f); +pub const GUID_DEVCLASS_FSFILTER_CONTENTSCREENER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3e3f0674_c83c_4558_bb26_9820e1eba5c5); +pub const GUID_DEVCLASS_FSFILTER_CONTINUOUSBACKUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x71aa14f8_6fad_4622_ad77_92bb9d7e6947); +pub const GUID_DEVCLASS_FSFILTER_COPYPROTECTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x89786ff1_9c12_402f_9c9e_17753c7f4375); +pub const GUID_DEVCLASS_FSFILTER_ENCRYPTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa0a701c0_a511_42ff_aa6c_06dc0395576f); +pub const GUID_DEVCLASS_FSFILTER_HSM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd546500a_2aeb_45f6_9482_f4b1799c3177); +pub const GUID_DEVCLASS_FSFILTER_INFRASTRUCTURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe55fa6f9_128c_4d04_abab_630c74b1453a); +pub const GUID_DEVCLASS_FSFILTER_OPENFILEBACKUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf8ecafa6_66d1_41a5_899b_66585d7216b7); +pub const GUID_DEVCLASS_FSFILTER_PHYSICALQUOTAMANAGEMENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a0a8e78_bba6_4fc4_a709_1e33cd09d67e); +pub const GUID_DEVCLASS_FSFILTER_QUOTAMANAGEMENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8503c911_a6c7_4919_8f79_5028f5866b0c); +pub const GUID_DEVCLASS_FSFILTER_REPLICATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x48d3ebc4_4cf8_48ff_b869_9c68ad42eb9f); +pub const GUID_DEVCLASS_FSFILTER_SECURITYENHANCER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd02bc3da_0c8e_4945_9bd5_f1883c226c8c); +pub const GUID_DEVCLASS_FSFILTER_SYSTEM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5d1b9aaa_01e2_46af_849f_272b3f324c46); +pub const GUID_DEVCLASS_FSFILTER_SYSTEMRECOVERY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2db15374_706e_4131_a0c7_d7c78eb0289a); +pub const GUID_DEVCLASS_FSFILTER_TOP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb369baf4_5568_4e82_a87e_a93eb16bca87); +pub const GUID_DEVCLASS_FSFILTER_UNDELETE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfe8f1572_c67a_48c0_bbac_0b5c6d66cafb); +pub const GUID_DEVCLASS_FSFILTER_VIRTUALIZATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf75a86c0_10d8_4c3a_b233_ed60e4cdfaac); +pub const GUID_DEVCLASS_GENERIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xff494df1_c4ed_4fac_9b3f_3786f6e91e7e); +pub const GUID_DEVCLASS_GPS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6bdd1fc3_810f_11d0_bec7_08002be2092f); +pub const GUID_DEVCLASS_HDC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e96a_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_HIDCLASS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x745a17a0_74d3_11d0_b6fe_00a0c90f57da); +pub const GUID_DEVCLASS_HOLOGRAPHIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd612553d_06b1_49ca_8938_e39ef80eb16f); +pub const GUID_DEVCLASS_IMAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6bdd1fc6_810f_11d0_bec7_08002be2092f); +pub const GUID_DEVCLASS_INFINIBAND: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30ef7132_d858_4a0c_ac24_b9028a5cca3f); +pub const GUID_DEVCLASS_INFRARED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6bdd1fc5_810f_11d0_bec7_08002be2092f); +pub const GUID_DEVCLASS_KEYBOARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e96b_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_LEGACYDRIVER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8ecc055d_047f_11d1_a537_0000f8753ed1); +pub const GUID_DEVCLASS_MEDIA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e96c_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_MEDIUM_CHANGER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xce5939ae_ebde_11d0_b181_0000f8753ec4); +pub const GUID_DEVCLASS_MEMORY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5099944a_f6b9_4057_a056_8c550228544c); +pub const GUID_DEVCLASS_MODEM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e96d_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_MONITOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e96e_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_MOUSE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e96f_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_MTD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e970_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_MULTIFUNCTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e971_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_MULTIPORTSERIAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x50906cb8_ba12_11d1_bf5d_0000f805f530); +pub const GUID_DEVCLASS_NET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e972_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_NETCLIENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e973_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_NETDRIVER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x87ef9ad1_8f70_49ee_b215_ab1fcadcbe3c); +pub const GUID_DEVCLASS_NETSERVICE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e974_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_NETTRANS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e975_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_NETUIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x78912bc1_cb8e_4b28_a329_f322ebadbe0f); +pub const GUID_DEVCLASS_NODRIVER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e976_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_PCMCIA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e977_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_PNPPRINTERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4658ee7e_f050_11d1_b6bd_00c04fa372a7); +pub const GUID_DEVCLASS_PORTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e978_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_PRIMITIVE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x242681d1_eed3_41d2_a1ef_1468fc843106); +pub const GUID_DEVCLASS_PRINTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e979_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_PRINTERUPGRADE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e97a_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_PRINTQUEUE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ed2bbf9_11f0_4084_b21f_ad83a8e6dcdc); +pub const GUID_DEVCLASS_PROCESSOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x50127dc3_0f36_415e_a6cc_4cb3be910b65); +pub const GUID_DEVCLASS_SBP2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd48179be_ec20_11d1_b6b8_00c04fa372a7); +pub const GUID_DEVCLASS_SCMDISK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53966cb1_4d46_4166_bf23_c522403cd495); +pub const GUID_DEVCLASS_SCMVOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53ccb149_e543_4c84_b6e0_bce4f6b7e806); +pub const GUID_DEVCLASS_SCSIADAPTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e97b_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_SECURITYACCELERATOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x268c95a1_edfe_11d3_95c3_0010dc4050a5); +pub const GUID_DEVCLASS_SENSOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5175d334_c371_4806_b3ba_71fd53c9258d); +pub const GUID_DEVCLASS_SIDESHOW: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x997b5d8d_c442_4f2e_baf3_9c8e671e9e21); +pub const GUID_DEVCLASS_SMARTCARDREADER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x50dd5230_ba8a_11d1_bf5d_0000f805f530); +pub const GUID_DEVCLASS_SMRDISK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53487c23_680f_4585_acc3_1f10d6777e82); +pub const GUID_DEVCLASS_SMRVOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53b3cf03_8f5a_4788_91b6_d19ed9fcccbf); +pub const GUID_DEVCLASS_SOFTWARECOMPONENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c4c3332_344d_483c_8739_259e934c9cc8); +pub const GUID_DEVCLASS_SOUND: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e97c_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_SYSTEM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e97d_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_TAPEDRIVE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6d807884_7d21_11cf_801c_08002be10318); +pub const GUID_DEVCLASS_UCM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe6f1aa1c_7f3b_4473_b2e8_c97d8ac71d53); +pub const GUID_DEVCLASS_UNKNOWN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e97e_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVCLASS_USB: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36fc9e60_c465_11cf_8056_444553540000); +pub const GUID_DEVCLASS_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x71a27cdd_812a_11d0_bec7_08002be2092f); +pub const GUID_DEVCLASS_VOLUMESNAPSHOT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x533c5b84_ec70_11d2_9505_00c04f79deaf); +pub const GUID_DEVCLASS_WCEUSBS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25dbce51_6c8f_4a72_8a6d_b54c2b4fc835); +pub const GUID_DEVCLASS_WPD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeec5ad98_8080_425f_922a_dabf3de3f69a); +pub const GUID_DEVICE_INTERFACE_ARRIVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb3a4004_46f0_11d0_b08f_00609713053f); +pub const GUID_DEVICE_INTERFACE_REMOVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb3a4005_46f0_11d0_b08f_00609713053f); +pub const GUID_DEVICE_RESET_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x649fdf26_3bc0_4813_ad24_7e0c1eda3fa3); +pub const GUID_DMA_CACHE_COHERENCY_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb520f7fa_8a5a_4e40_a3f6_6be1e162d935); +pub const GUID_HWPROFILE_CHANGE_CANCELLED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb3a4002_46f0_11d0_b08f_00609713053f); +pub const GUID_HWPROFILE_CHANGE_COMPLETE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb3a4003_46f0_11d0_b08f_00609713053f); +pub const GUID_HWPROFILE_QUERY_CHANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb3a4001_46f0_11d0_b08f_00609713053f); +pub const GUID_INT_ROUTE_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x70941bf4_0073_11d1_a09e_00c04fc340b1); +pub const GUID_IOMMU_BUS_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1efee0b2_d278_4ae4_bddc_1b34dd648043); +pub const GUID_KERNEL_SOFT_RESTART_CANCEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x31d737e7_8c0b_468a_956e_9f433ec358fb); +pub const GUID_KERNEL_SOFT_RESTART_FINALIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x20e91abd_350a_4d4f_8577_99c81507473a); +pub const GUID_KERNEL_SOFT_RESTART_PREPARE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xde373def_a85c_4f76_8cbf_f96bea8bd10f); +pub const GUID_LEGACY_DEVICE_DETECTION_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x50feb0de_596a_11d2_a5b8_0000f81a4619); +pub const GUID_MF_ENUMERATION_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaeb895f0_5586_11d1_8d84_00a0c906b244); +pub const GUID_MSIX_TABLE_CONFIG_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1a6a460b_194f_455d_b34b_b84c5b05712b); +pub const GUID_NPEM_CONTROL_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d95573d_b774_488a_b120_4f284a9eff51); +pub const GUID_PARTITION_UNIT_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x52363f5b_d891_429b_8195_aec5fef6853c); +pub const GUID_PCC_INTERFACE_INTERNAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7cce62ce_c189_4814_a6a7_12112089e938); +pub const GUID_PCC_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3ee8ba63_0f59_4a24_8a45_35808bdd1249); +pub const GUID_PCI_ATS_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x010a7fe8_96f5_4943_bedf_95e651b93412); +pub const GUID_PCI_BUS_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x496b8281_6f25_11d0_beaf_08002be2092f); +pub const GUID_PCI_BUS_INTERFACE_STANDARD2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xde94e966_fdff_4c9c_9998_6747b150e74c); +pub const GUID_PCI_DEVICE_PRESENT_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd1b82c26_bf49_45ef_b216_71cbd7889b57); +pub const GUID_PCI_EXPRESS_LINK_QUIESCENT_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x146cd41c_dae3_4437_8aff_2af3f038099b); +pub const GUID_PCI_EXPRESS_ROOT_PORT_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x83a7734a_84c7_4161_9a98_6000ed0c4a33); +pub const GUID_PCI_FPGA_CONTROL_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2df3f7a8_b9b3_4063_9215_b5d14a0b266e); +pub const GUID_PCI_PTM_CONTROL_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x348a5ebb_ba24_44b7_9916_285687735117); +pub const GUID_PCI_SECURITY_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6e7f1451_199e_4acc_ba2d_762b4edf4674); +pub const GUID_PCI_VIRTUALIZATION_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x64897b47_3a4a_4d75_bc74_89dd6c078293); +pub const GUID_PCMCIA_BUS_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x76173af0_c504_11d1_947f_00c04fb960ee); +pub const GUID_PNP_CUSTOM_NOTIFICATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaca73f8e_8d23_11d1_ac7d_0000f87571d0); +pub const GUID_PNP_EXTENDED_ADDRESS_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb8e992ec_a797_4dc4_8846_84d041707446); +pub const GUID_PNP_LOCATION_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x70211b0e_0afb_47db_afc1_410bf842497a); +pub const GUID_PNP_POWER_NOTIFICATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc2cf0660_eb7a_11d1_bd7f_0000f87571d0); +pub const GUID_PNP_POWER_SETTING_CHANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x29c69b3e_c79a_43bf_bbde_a932fa1bea7e); +pub const GUID_POWER_DEVICE_ENABLE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x827c0a6f_feb0_11d0_bd26_00aa00b7b32a); +pub const GUID_POWER_DEVICE_TIMEOUTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa45da735_feb0_11d0_bd26_00aa00b7b32a); +pub const GUID_POWER_DEVICE_WAKE_ENABLE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa9546a82_feb0_11d0_bd26_00aa00b7b32a); +pub const GUID_PROCESSOR_PCC_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x37b17e9a_c21c_4296_972d_11c4b32b28f0); +pub const GUID_QUERY_CRASHDUMP_FUNCTIONS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9cc6b8ff_32e2_4834_b1de_b32ef8880a4b); +pub const GUID_RECOVERY_NVMED_PREPARE_SHUTDOWN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4b9770ea_bde7_400b_a9b9_4f684f54cc2a); +pub const GUID_RECOVERY_PCI_PREPARE_SHUTDOWN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x90d889de_8704_44cf_8115_ed8528d2b2da); +pub const GUID_REENUMERATE_SELF_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2aeb0243_6a6e_486b_82fc_d815f6b97006); +pub const GUID_SCM_BUS_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25944783_ce79_4232_815e_4a30014e8eb4); +pub const GUID_SCM_BUS_LD_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b89307d_d76b_4f48_b186_54041ae92e8d); +pub const GUID_SCM_BUS_NVD_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8de064ff_b630_42e4_88ea_6f24c8641175); +pub const GUID_SCM_PHYSICAL_NVDIMM_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0079c21b_917e_405e_a9ce_0732b5bbcebd); +pub const GUID_SDEV_IDENTIFIER_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49d67af8_916c_4ee8_9df1_889f17d21e91); +pub const GUID_SECURE_DRIVER_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x370f67e1_4ff5_4a94_9a35_06c5d9cc30e2); +pub const GUID_TARGET_DEVICE_QUERY_REMOVE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb3a4006_46f0_11d0_b08f_00609713053f); +pub const GUID_TARGET_DEVICE_REMOVE_CANCELLED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb3a4007_46f0_11d0_b08f_00609713053f); +pub const GUID_TARGET_DEVICE_REMOVE_COMPLETE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb3a4008_46f0_11d0_b08f_00609713053f); +pub const GUID_TARGET_DEVICE_TRANSPORT_RELATIONS_CHANGED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfcf528f6_a82f_47b1_ad3a_8050594cad28); +pub const GUID_THERMAL_COOLING_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecbe47a8_c498_4bb9_bd70_e867e0940d22); +pub const GUID_TRANSLATOR_INTERFACE_STANDARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6c154a92_aacf_11d0_8d2a_00a0c906b244); +pub const GUID_WUDF_DEVICE_HOST_PROBLEM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc43d25bd_9346_40ee_a2d2_d70c15f8b75b); +pub const IDD_DYNAWIZ_ANALYZEDEV_PAGE: u32 = 10010u32; +pub const IDD_DYNAWIZ_ANALYZE_NEXTPAGE: u32 = 10004u32; +pub const IDD_DYNAWIZ_ANALYZE_PREVPAGE: u32 = 10003u32; +pub const IDD_DYNAWIZ_FIRSTPAGE: u32 = 10000u32; +pub const IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE: u32 = 10011u32; +pub const IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE: u32 = 10007u32; +pub const IDD_DYNAWIZ_INSTALLDETECTED_NODEVS: u32 = 10008u32; +pub const IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE: u32 = 10006u32; +pub const IDD_DYNAWIZ_SELECTCLASS_PAGE: u32 = 10012u32; +pub const IDD_DYNAWIZ_SELECTDEV_PAGE: u32 = 10009u32; +pub const IDD_DYNAWIZ_SELECT_NEXTPAGE: u32 = 10002u32; +pub const IDD_DYNAWIZ_SELECT_PREVPAGE: u32 = 10001u32; +pub const IDF_CHECKFIRST: u32 = 256u32; +pub const IDF_NOBEEP: u32 = 512u32; +pub const IDF_NOBROWSE: u32 = 1u32; +pub const IDF_NOCOMPRESSED: u32 = 8u32; +pub const IDF_NODETAILS: u32 = 4u32; +pub const IDF_NOFOREGROUND: u32 = 1024u32; +pub const IDF_NOREMOVABLEMEDIAPROMPT: u32 = 4096u32; +pub const IDF_NOSKIP: u32 = 2u32; +pub const IDF_OEMDISK: u32 = 2147483648u32; +pub const IDF_USEDISKNAMEASPROMPT: u32 = 8192u32; +pub const IDF_WARNIFSKIP: u32 = 2048u32; +pub const IDI_CLASSICON_OVERLAYFIRST: u32 = 500u32; +pub const IDI_CLASSICON_OVERLAYLAST: u32 = 502u32; +pub const IDI_CONFLICT: u32 = 161u32; +pub const IDI_DISABLED_OVL: u32 = 501u32; +pub const IDI_FORCED_OVL: u32 = 502u32; +pub const IDI_PROBLEM_OVL: u32 = 500u32; +pub const IDI_RESOURCE: u32 = 159u32; +pub const IDI_RESOURCEFIRST: u32 = 159u32; +pub const IDI_RESOURCELAST: u32 = 161u32; +pub const IDI_RESOURCEOVERLAYFIRST: u32 = 161u32; +pub const IDI_RESOURCEOVERLAYLAST: u32 = 161u32; +pub const INFINFO_DEFAULT_SEARCH: u32 = 3u32; +pub const INFINFO_INF_NAME_IS_ABSOLUTE: u32 = 2u32; +pub const INFINFO_INF_PATH_LIST_SEARCH: u32 = 5u32; +pub const INFINFO_INF_SPEC_IS_HINF: u32 = 1u32; +pub const INFINFO_REVERSE_DEFAULT_SEARCH: u32 = 4u32; +pub const INFSTR_BUS_ALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BUS_ALL"); +pub const INFSTR_BUS_EISA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BUS_EISA"); +pub const INFSTR_BUS_ISA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BUS_ISA"); +pub const INFSTR_BUS_MCA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BUS_MCA"); +pub const INFSTR_CFGPRI_DESIRED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DESIRED"); +pub const INFSTR_CFGPRI_DISABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DISABLED"); +pub const INFSTR_CFGPRI_FORCECONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FORCECONFIG"); +pub const INFSTR_CFGPRI_HARDRECONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HARDRECONFIG"); +pub const INFSTR_CFGPRI_HARDWIRED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HARDWIRED"); +pub const INFSTR_CFGPRI_NORMAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NORMAL"); +pub const INFSTR_CFGPRI_POWEROFF: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("POWEROFF"); +pub const INFSTR_CFGPRI_REBOOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("REBOOT"); +pub const INFSTR_CFGPRI_RESTART: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RESTART"); +pub const INFSTR_CFGPRI_SUBOPTIMAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SUBOPTIMAL"); +pub const INFSTR_CFGTYPE_BASIC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BASIC"); +pub const INFSTR_CFGTYPE_FORCED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FORCED"); +pub const INFSTR_CFGTYPE_OVERRIDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OVERRIDE"); +pub const INFSTR_CLASS_SAFEEXCL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SAFE_EXCL"); +pub const INFSTR_CONTROLFLAGS_SECTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ControlFlags"); +pub const INFSTR_DRIVERSELECT_FUNCTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverSelectFunctions"); +pub const INFSTR_DRIVERSELECT_SECTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverSelect"); +pub const INFSTR_DRIVERVERSION_SECTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverVer"); +pub const INFSTR_KEY_ACTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Action"); +pub const INFSTR_KEY_ALWAYSEXCLUDEFROMSELECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AlwaysExcludeFromSelect"); +pub const INFSTR_KEY_BUFFER_SIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BufferSize"); +pub const INFSTR_KEY_CATALOGFILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CatalogFile"); +pub const INFSTR_KEY_CHANNEL_ACCESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Access"); +pub const INFSTR_KEY_CHANNEL_ENABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Enabled"); +pub const INFSTR_KEY_CHANNEL_ISOLATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Isolation"); +pub const INFSTR_KEY_CHANNEL_VALUE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Value"); +pub const INFSTR_KEY_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Class"); +pub const INFSTR_KEY_CLASSGUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClassGUID"); +pub const INFSTR_KEY_CLOCK_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClockType"); +pub const INFSTR_KEY_CONFIGPRIORITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConfigPriority"); +pub const INFSTR_KEY_COPYFILESONLY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CopyFilesOnly"); +pub const INFSTR_KEY_DATA_ITEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DataItem"); +pub const INFSTR_KEY_DELAYEDAUTOSTART: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DelayedAutoStart"); +pub const INFSTR_KEY_DEPENDENCIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Dependencies"); +pub const INFSTR_KEY_DESCRIPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const INFSTR_KEY_DETECTLIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DetectList"); +pub const INFSTR_KEY_DETPARAMS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Params"); +pub const INFSTR_KEY_DISABLE_REALTIME_PERSISTENCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableRealtimePersistence"); +pub const INFSTR_KEY_DISPLAYNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisplayName"); +pub const INFSTR_KEY_DMA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DMA"); +pub const INFSTR_KEY_DMACONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DMAConfig"); +pub const INFSTR_KEY_DRIVERSET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverSet"); +pub const INFSTR_KEY_ENABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Enabled"); +pub const INFSTR_KEY_ENABLE_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableFlags"); +pub const INFSTR_KEY_ENABLE_LEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableLevel"); +pub const INFSTR_KEY_ENABLE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableProperty"); +pub const INFSTR_KEY_ERRORCONTROL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ErrorControl"); +pub const INFSTR_KEY_EXCLUDEFROMSELECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExcludeFromSelect"); +pub const INFSTR_KEY_EXCLUDERES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExcludeRes"); +pub const INFSTR_KEY_EXTENSIONID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExtensionId"); +pub const INFSTR_KEY_FAILURE_ACTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Action"); +pub const INFSTR_KEY_FILE_MAX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileMax"); +pub const INFSTR_KEY_FILE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileName"); +pub const INFSTR_KEY_FLUSH_TIMER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FlushTimer"); +pub const INFSTR_KEY_FROMINET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FromINet"); +pub const INFSTR_KEY_HARDWARE_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Class"); +pub const INFSTR_KEY_HARDWARE_CLASSGUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClassGUID"); +pub const INFSTR_KEY_INTERACTIVEINSTALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InteractiveInstall"); +pub const INFSTR_KEY_IO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IO"); +pub const INFSTR_KEY_IOCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IOConfig"); +pub const INFSTR_KEY_IRQ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IRQ"); +pub const INFSTR_KEY_IRQCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IRQConfig"); +pub const INFSTR_KEY_LOADORDERGROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LoadOrderGroup"); +pub const INFSTR_KEY_LOGGING_AUTOBACKUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LoggingAutoBackup"); +pub const INFSTR_KEY_LOGGING_MAXSIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LoggingMaxSize"); +pub const INFSTR_KEY_LOGGING_RETENTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LoggingRetention"); +pub const INFSTR_KEY_LOG_FILE_MODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogFileMode"); +pub const INFSTR_KEY_MATCH_ALL_KEYWORD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MatchAllKeyword"); +pub const INFSTR_KEY_MATCH_ANY_KEYWORD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MatchAnyKeyword"); +pub const INFSTR_KEY_MAXIMUM_BUFFERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaximumBuffers"); +pub const INFSTR_KEY_MAX_FILE_SIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxFileSize"); +pub const INFSTR_KEY_MEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Mem"); +pub const INFSTR_KEY_MEMCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MemConfig"); +pub const INFSTR_KEY_MEMLARGECONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MemLargeConfig"); +pub const INFSTR_KEY_MESSAGE_FILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MessageFile"); +pub const INFSTR_KEY_MFCARDCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MfCardConfig"); +pub const INFSTR_KEY_MINIMUM_BUFFERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MinimumBuffers"); +pub const INFSTR_KEY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const INFSTR_KEY_NON_CRASH_FAILURES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NonCrashFailures"); +pub const INFSTR_KEY_NOSETUPINF: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoSetupInf"); +pub const INFSTR_KEY_PARAMETER_FILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ParameterFile"); +pub const INFSTR_KEY_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Path"); +pub const INFSTR_KEY_PCCARDCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PcCardConfig"); +pub const INFSTR_KEY_PNPLOCKDOWN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PnpLockDown"); +pub const INFSTR_KEY_PROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Provider"); +pub const INFSTR_KEY_PROVIDER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProviderName"); +pub const INFSTR_KEY_REQUESTADDITIONALSOFTWARE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestAdditionalSoftware"); +pub const INFSTR_KEY_REQUIREDPRIVILEGES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequiredPrivileges"); +pub const INFSTR_KEY_RESET_PERIOD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResetPeriod"); +pub const INFSTR_KEY_RESOURCE_FILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResourceFile"); +pub const INFSTR_KEY_SECURITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Security"); +pub const INFSTR_KEY_SERVICEBINARY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServiceBinary"); +pub const INFSTR_KEY_SERVICESIDTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServiceSidType"); +pub const INFSTR_KEY_SERVICETYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServiceType"); +pub const INFSTR_KEY_SIGNATURE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Signature"); +pub const INFSTR_KEY_SKIPLIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SkipList"); +pub const INFSTR_KEY_START: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Start"); +pub const INFSTR_KEY_STARTNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StartName"); +pub const INFSTR_KEY_STARTTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StartType"); +pub const INFSTR_KEY_SUB_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SubType"); +pub const INFSTR_KEY_TRIGGER_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TriggerType"); +pub const INFSTR_PLATFORM_NT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NT"); +pub const INFSTR_PLATFORM_NTALPHA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NTAlpha"); +pub const INFSTR_PLATFORM_NTAMD64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NTAMD64"); +pub const INFSTR_PLATFORM_NTARM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NTARM"); +pub const INFSTR_PLATFORM_NTARM64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NTARM64"); +pub const INFSTR_PLATFORM_NTAXP64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NTAXP64"); +pub const INFSTR_PLATFORM_NTIA64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NTIA64"); +pub const INFSTR_PLATFORM_NTMIPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NTMIPS"); +pub const INFSTR_PLATFORM_NTPPC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NTPPC"); +pub const INFSTR_PLATFORM_NTX86: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NTx86"); +pub const INFSTR_PLATFORM_WIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Win"); +pub const INFSTR_REBOOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Reboot"); +pub const INFSTR_RESTART: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Restart"); +pub const INFSTR_RISK_BIOSROMRD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RISK_BIOSROMRD"); +pub const INFSTR_RISK_DELICATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RISK_DELICATE"); +pub const INFSTR_RISK_IORD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RISK_IORD"); +pub const INFSTR_RISK_IOWR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RISK_IOWR"); +pub const INFSTR_RISK_LOW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RISK_LOW"); +pub const INFSTR_RISK_MEMRD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RISK_MEMRD"); +pub const INFSTR_RISK_MEMWR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RISK_MEMWR"); +pub const INFSTR_RISK_NONE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RISK_NONE"); +pub const INFSTR_RISK_QUERYDRV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RISK_QUERYDRV"); +pub const INFSTR_RISK_SWINT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RISK_SWINT"); +pub const INFSTR_RISK_UNRELIABLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RISK_UNRELIABLE"); +pub const INFSTR_RISK_VERYHIGH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RISK_VERYHIGH"); +pub const INFSTR_RISK_VERYLOW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RISK_VERYLOW"); +pub const INFSTR_SECT_AUTOEXECBAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoexecBatDrivers"); +pub const INFSTR_SECT_AVOIDCFGSYSDEV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det.AvoidCfgSysDev"); +pub const INFSTR_SECT_AVOIDENVDEV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det.AvoidEnvDev"); +pub const INFSTR_SECT_AVOIDINIDEV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det.AvoidIniDev"); +pub const INFSTR_SECT_BADACPIBIOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BadACPIBios"); +pub const INFSTR_SECT_BADDISKBIOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BadDiskBios"); +pub const INFSTR_SECT_BADDSBIOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BadDSBios"); +pub const INFSTR_SECT_BADPMCALLBIOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BadProtectedModeCallBios"); +pub const INFSTR_SECT_BADPNPBIOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BadPnpBios"); +pub const INFSTR_SECT_BADRMCALLBIOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BadRealModeCallBios"); +pub const INFSTR_SECT_BADROUTINGTABLEBIOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BadPCIIRQRoutingTableBios"); +pub const INFSTR_SECT_CFGSYS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConfigSysDrivers"); +pub const INFSTR_SECT_CLASS_INSTALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClassInstall"); +pub const INFSTR_SECT_CLASS_INSTALL_32: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClassInstall32"); +pub const INFSTR_SECT_DEFAULT_INSTALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultInstall"); +pub const INFSTR_SECT_DEFAULT_UNINSTALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultUninstall"); +pub const INFSTR_SECT_DETCLASSINFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det.ClassInfo"); +pub const INFSTR_SECT_DETMODULES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det.Modules"); +pub const INFSTR_SECT_DETOPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det.Options"); +pub const INFSTR_SECT_DEVINFS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det.DevINFs"); +pub const INFSTR_SECT_DISPLAY_CLEANUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisplayCleanup"); +pub const INFSTR_SECT_EXTENSIONCONTRACTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExtensionContracts"); +pub const INFSTR_SECT_FORCEHWVERIFY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det.ForceHWVerify"); +pub const INFSTR_SECT_GOODACPIBIOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GoodACPIBios"); +pub const INFSTR_SECT_HPOMNIBOOK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det.HPOmnibook"); +pub const INFSTR_SECT_INTERFACE_INSTALL_32: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InterfaceInstall32"); +pub const INFSTR_SECT_MACHINEIDBIOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MachineIDBios"); +pub const INFSTR_SECT_MANUALDEV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det.ManualDev"); +pub const INFSTR_SECT_MFG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Manufacturer"); +pub const INFSTR_SECT_REGCFGSYSDEV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det.RegCfgSysDev"); +pub const INFSTR_SECT_REGENVDEV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det.RegEnvDev"); +pub const INFSTR_SECT_REGINIDEV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det.RegIniDev"); +pub const INFSTR_SECT_SYSINI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SystemIniDrivers"); +pub const INFSTR_SECT_SYSINIDRV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SystemIniDriversLine"); +pub const INFSTR_SECT_TARGETCOMPUTERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TargetComputers"); +pub const INFSTR_SECT_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Version"); +pub const INFSTR_SECT_WININIRUN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WinIniRunLine"); +pub const INFSTR_SOFTWAREVERSION_SECTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SoftwareVersion"); +pub const INFSTR_STRKEY_DRVDESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverDesc"); +pub const INFSTR_SUBKEY_COINSTALLERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CoInstallers"); +pub const INFSTR_SUBKEY_CTL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CTL"); +pub const INFSTR_SUBKEY_DET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Det"); +pub const INFSTR_SUBKEY_EVENTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Events"); +pub const INFSTR_SUBKEY_FACTDEF: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FactDef"); +pub const INFSTR_SUBKEY_FILTERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Filters"); +pub const INFSTR_SUBKEY_HW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Hw"); +pub const INFSTR_SUBKEY_INTERFACES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Interfaces"); +pub const INFSTR_SUBKEY_LOGCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogConfig"); +pub const INFSTR_SUBKEY_LOGCONFIGOVERRIDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogConfigOverride"); +pub const INFSTR_SUBKEY_NORESOURCEDUPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoResDup"); +pub const INFSTR_SUBKEY_POSSIBLEDUPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PosDup"); +pub const INFSTR_SUBKEY_SERVICES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Services"); +pub const INFSTR_SUBKEY_SOFTWARE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software"); +pub const INFSTR_SUBKEY_WMI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WMI"); +pub const INF_STYLE_CACHE_DISABLE: INF_STYLE = 32u32; +pub const INF_STYLE_CACHE_ENABLE: INF_STYLE = 16u32; +pub const INF_STYLE_CACHE_IGNORE: INF_STYLE = 64u32; +pub const INF_STYLE_NONE: INF_STYLE = 0u32; +pub const INF_STYLE_OLDNT: INF_STYLE = 1u32; +pub const INF_STYLE_WIN4: INF_STYLE = 2u32; +pub const INSTALLFLAG_BITS: UPDATEDRIVERFORPLUGANDPLAYDEVICES_FLAGS = 7u32; +pub const INSTALLFLAG_FORCE: UPDATEDRIVERFORPLUGANDPLAYDEVICES_FLAGS = 1u32; +pub const INSTALLFLAG_NONINTERACTIVE: UPDATEDRIVERFORPLUGANDPLAYDEVICES_FLAGS = 4u32; +pub const INSTALLFLAG_READONLY: UPDATEDRIVERFORPLUGANDPLAYDEVICES_FLAGS = 2u32; +pub const IOA_Local: u32 = 255u32; +pub const IO_ALIAS_10_BIT_DECODE: u32 = 4u32; +pub const IO_ALIAS_12_BIT_DECODE: u32 = 16u32; +pub const IO_ALIAS_16_BIT_DECODE: u32 = 0u32; +pub const IO_ALIAS_POSITIVE_DECODE: u32 = 255u32; +pub const LCPRI_BOOTCONFIG: u32 = 1u32; +pub const LCPRI_DESIRED: u32 = 8192u32; +pub const LCPRI_DISABLED: u32 = 65535u32; +pub const LCPRI_FORCECONFIG: u32 = 0u32; +pub const LCPRI_HARDRECONFIG: u32 = 49152u32; +pub const LCPRI_HARDWIRED: u32 = 57344u32; +pub const LCPRI_IMPOSSIBLE: u32 = 61440u32; +pub const LCPRI_LASTBESTCONFIG: u32 = 16383u32; +pub const LCPRI_LASTSOFTCONFIG: u32 = 32767u32; +pub const LCPRI_NORMAL: u32 = 12288u32; +pub const LCPRI_POWEROFF: u32 = 40960u32; +pub const LCPRI_REBOOT: u32 = 36864u32; +pub const LCPRI_RESTART: u32 = 32768u32; +pub const LCPRI_SUBOPTIMAL: u32 = 20480u32; +pub const LINE_LEN: u32 = 256u32; +pub const LOG_CONF_BITS: u32 = 7u32; +pub const LogSevError: u32 = 2u32; +pub const LogSevFatalError: u32 = 3u32; +pub const LogSevInformation: u32 = 0u32; +pub const LogSevMaximum: u32 = 4u32; +pub const LogSevWarning: u32 = 1u32; +pub const MAX_CLASS_NAME_LEN: u32 = 32u32; +pub const MAX_CONFIG_VALUE: u32 = 9999u32; +pub const MAX_DEVICE_ID_LEN: u32 = 200u32; +pub const MAX_DEVNODE_ID_LEN: u32 = 200u32; +pub const MAX_DMA_CHANNELS: u32 = 7u32; +pub const MAX_GUID_STRING_LEN: u32 = 39u32; +pub const MAX_IDD_DYNAWIZ_RESOURCE_ID: u32 = 11000u32; +pub const MAX_INFSTR_STRKEY_LEN: u32 = 32u32; +pub const MAX_INF_FLAG: u32 = 20u32; +pub const MAX_INF_SECTION_NAME_LENGTH: u32 = 255u32; +pub const MAX_INF_STRING_LENGTH: u32 = 4096u32; +pub const MAX_INSTALLWIZARD_DYNAPAGES: u32 = 20u32; +pub const MAX_INSTANCE_VALUE: u32 = 9999u32; +pub const MAX_INSTRUCTION_LEN: u32 = 256u32; +pub const MAX_IO_PORTS: u32 = 20u32; +pub const MAX_IRQS: u32 = 7u32; +pub const MAX_KEY_LEN: u32 = 100u32; +pub const MAX_LABEL_LEN: u32 = 30u32; +pub const MAX_LCPRI: u32 = 65535u32; +pub const MAX_MEM_REGISTERS: u32 = 9u32; +pub const MAX_PRIORITYSTR_LEN: u32 = 16u32; +pub const MAX_PROFILE_LEN: u32 = 80u32; +pub const MAX_SERVICE_NAME_LEN: u32 = 256u32; +pub const MAX_SUBTITLE_LEN: u32 = 256u32; +pub const MAX_TITLE_LEN: u32 = 60u32; +pub const MIN_IDD_DYNAWIZ_RESOURCE_ID: u32 = 10000u32; +pub const NDW_INSTALLFLAG_CI_PICKED_OEM: u32 = 32768u32; +pub const NDW_INSTALLFLAG_DIDFACTDEFS: u32 = 1u32; +pub const NDW_INSTALLFLAG_EXPRESSINTRO: u32 = 1024u32; +pub const NDW_INSTALLFLAG_HARDWAREALLREADYIN: u32 = 2u32; +pub const NDW_INSTALLFLAG_INSTALLSPECIFIC: u32 = 8192u32; +pub const NDW_INSTALLFLAG_KNOWNCLASS: u32 = 524288u32; +pub const NDW_INSTALLFLAG_NEEDREBOOT: i32 = 256i32; +pub const NDW_INSTALLFLAG_NEEDRESTART: i32 = 128i32; +pub const NDW_INSTALLFLAG_NEEDSHUTDOWN: u32 = 512u32; +pub const NDW_INSTALLFLAG_NODETECTEDDEVS: u32 = 4096u32; +pub const NDW_INSTALLFLAG_PCMCIADEVICE: u32 = 131072u32; +pub const NDW_INSTALLFLAG_PCMCIAMODE: u32 = 65536u32; +pub const NDW_INSTALLFLAG_SKIPCLASSLIST: u32 = 16384u32; +pub const NDW_INSTALLFLAG_SKIPISDEVINSTALLED: u32 = 2048u32; +pub const NDW_INSTALLFLAG_USERCANCEL: u32 = 262144u32; +pub const NUM_CM_PROB: u32 = 58u32; +pub const NUM_CM_PROB_V1: u32 = 37u32; +pub const NUM_CM_PROB_V2: u32 = 50u32; +pub const NUM_CM_PROB_V3: u32 = 51u32; +pub const NUM_CM_PROB_V4: u32 = 52u32; +pub const NUM_CM_PROB_V5: u32 = 53u32; +pub const NUM_CM_PROB_V6: u32 = 54u32; +pub const NUM_CM_PROB_V7: u32 = 55u32; +pub const NUM_CM_PROB_V8: u32 = 57u32; +pub const NUM_CM_PROB_V9: u32 = 58u32; +pub const NUM_CR_RESULTS: CONFIGRET = 60u32; +pub const NUM_LOG_CONF: CM_LOG_CONF = 6u32; +pub const OVERRIDE_LOG_CONF: CM_LOG_CONF = 5u32; +pub const PCD_MAX_IO: u32 = 2u32; +pub const PCD_MAX_MEMORY: u32 = 2u32; +pub const PNP_VetoAlreadyRemoved: PNP_VETO_TYPE = 13i32; +pub const PNP_VetoDevice: PNP_VETO_TYPE = 6i32; +pub const PNP_VetoDriver: PNP_VETO_TYPE = 7i32; +pub const PNP_VetoIllegalDeviceRequest: PNP_VETO_TYPE = 8i32; +pub const PNP_VetoInsufficientPower: PNP_VETO_TYPE = 9i32; +pub const PNP_VetoInsufficientRights: PNP_VETO_TYPE = 12i32; +pub const PNP_VetoLegacyDevice: PNP_VETO_TYPE = 1i32; +pub const PNP_VetoLegacyDriver: PNP_VETO_TYPE = 11i32; +pub const PNP_VetoNonDisableable: PNP_VETO_TYPE = 10i32; +pub const PNP_VetoOutstandingOpen: PNP_VETO_TYPE = 5i32; +pub const PNP_VetoPendingClose: PNP_VETO_TYPE = 2i32; +pub const PNP_VetoTypeUnknown: PNP_VETO_TYPE = 0i32; +pub const PNP_VetoWindowsApp: PNP_VETO_TYPE = 3i32; +pub const PNP_VetoWindowsService: PNP_VETO_TYPE = 4i32; +pub const PRIORITY_BIT: u32 = 8u32; +pub const PRIORITY_EQUAL_FIRST: u32 = 8u32; +pub const PRIORITY_EQUAL_LAST: u32 = 0u32; +pub const ROLLBACK_BITS: DIROLLBACKDRIVER_FLAGS = 1u32; +pub const ROLLBACK_FLAG_NO_UI: DIROLLBACKDRIVER_FLAGS = 1u32; +pub const RegDisposition_Bits: u32 = 1u32; +pub const RegDisposition_OpenAlways: u32 = 0u32; +pub const RegDisposition_OpenExisting: u32 = 1u32; +pub const ResType_All: CM_RESTYPE = 0u32; +pub const ResType_BusNumber: CM_RESTYPE = 6u32; +pub const ResType_ClassSpecific: CM_RESTYPE = 65535u32; +pub const ResType_Connection: CM_RESTYPE = 32772u32; +pub const ResType_DMA: CM_RESTYPE = 3u32; +pub const ResType_DevicePrivate: CM_RESTYPE = 32769u32; +pub const ResType_DoNotUse: CM_RESTYPE = 5u32; +pub const ResType_IO: CM_RESTYPE = 2u32; +pub const ResType_IRQ: CM_RESTYPE = 4u32; +pub const ResType_Ignored_Bit: CM_RESTYPE = 32768u32; +pub const ResType_MAX: CM_RESTYPE = 7u32; +pub const ResType_Mem: CM_RESTYPE = 1u32; +pub const ResType_MemLarge: CM_RESTYPE = 7u32; +pub const ResType_MfCardConfig: CM_RESTYPE = 32771u32; +pub const ResType_None: CM_RESTYPE = 0u32; +pub const ResType_PcCardConfig: CM_RESTYPE = 32770u32; +pub const ResType_Reserved: CM_RESTYPE = 32768u32; +pub const SCWMI_CLOBBER_SECURITY: u32 = 1u32; +pub const SETDIRID_NOT_FULL_PATH: u32 = 1u32; +pub const SIGNERSCORE_AUTHENTICODE: u32 = 251658240u32; +pub const SIGNERSCORE_INBOX: u32 = 218103811u32; +pub const SIGNERSCORE_LOGO_PREMIUM: u32 = 218103809u32; +pub const SIGNERSCORE_LOGO_STANDARD: u32 = 218103810u32; +pub const SIGNERSCORE_MASK: u32 = 4278190080u32; +pub const SIGNERSCORE_SIGNED_MASK: u32 = 4026531840u32; +pub const SIGNERSCORE_UNCLASSIFIED: u32 = 218103812u32; +pub const SIGNERSCORE_UNKNOWN: u32 = 4278190080u32; +pub const SIGNERSCORE_UNSIGNED: u32 = 2147483648u32; +pub const SIGNERSCORE_W9X_SUSPECT: u32 = 3221225472u32; +pub const SIGNERSCORE_WHQL: u32 = 218103813u32; +pub const SPCRP_CHARACTERISTICS: u32 = 27u32; +pub const SPCRP_DEVTYPE: u32 = 25u32; +pub const SPCRP_EXCLUSIVE: u32 = 26u32; +pub const SPCRP_LOWERFILTERS: u32 = 18u32; +pub const SPCRP_MAXIMUM_PROPERTY: u32 = 28u32; +pub const SPCRP_SECURITY: u32 = 23u32; +pub const SPCRP_SECURITY_SDS: u32 = 24u32; +pub const SPCRP_UPPERFILTERS: u32 = 17u32; +pub const SPDIT_CLASSDRIVER: SETUP_DI_BUILD_DRIVER_DRIVER_TYPE = 1u32; +pub const SPDIT_COMPATDRIVER: SETUP_DI_BUILD_DRIVER_DRIVER_TYPE = 2u32; +pub const SPDIT_NODRIVER: u32 = 0u32; +pub const SPDRP_ADDRESS: u32 = 28u32; +pub const SPDRP_BASE_CONTAINERID: u32 = 36u32; +pub const SPDRP_BUSNUMBER: u32 = 21u32; +pub const SPDRP_BUSTYPEGUID: u32 = 19u32; +pub const SPDRP_CAPABILITIES: u32 = 15u32; +pub const SPDRP_CHARACTERISTICS: u32 = 27u32; +pub const SPDRP_CLASS: u32 = 7u32; +pub const SPDRP_CLASSGUID: u32 = 8u32; +pub const SPDRP_COMPATIBLEIDS: u32 = 2u32; +pub const SPDRP_CONFIGFLAGS: u32 = 10u32; +pub const SPDRP_DEVICEDESC: u32 = 0u32; +pub const SPDRP_DEVICE_POWER_DATA: u32 = 30u32; +pub const SPDRP_DEVTYPE: u32 = 25u32; +pub const SPDRP_DRIVER: u32 = 9u32; +pub const SPDRP_ENUMERATOR_NAME: u32 = 22u32; +pub const SPDRP_EXCLUSIVE: u32 = 26u32; +pub const SPDRP_FRIENDLYNAME: u32 = 12u32; +pub const SPDRP_HARDWAREID: u32 = 1u32; +pub const SPDRP_INSTALL_STATE: u32 = 34u32; +pub const SPDRP_LEGACYBUSTYPE: u32 = 20u32; +pub const SPDRP_LOCATION_INFORMATION: u32 = 13u32; +pub const SPDRP_LOCATION_PATHS: u32 = 35u32; +pub const SPDRP_LOWERFILTERS: u32 = 18u32; +pub const SPDRP_MAXIMUM_PROPERTY: u32 = 37u32; +pub const SPDRP_MFG: u32 = 11u32; +pub const SPDRP_PHYSICAL_DEVICE_OBJECT_NAME: u32 = 14u32; +pub const SPDRP_REMOVAL_POLICY: u32 = 31u32; +pub const SPDRP_REMOVAL_POLICY_HW_DEFAULT: u32 = 32u32; +pub const SPDRP_REMOVAL_POLICY_OVERRIDE: u32 = 33u32; +pub const SPDRP_SECURITY: u32 = 23u32; +pub const SPDRP_SECURITY_SDS: u32 = 24u32; +pub const SPDRP_SERVICE: u32 = 4u32; +pub const SPDRP_UI_NUMBER: u32 = 16u32; +pub const SPDRP_UI_NUMBER_DESC_FORMAT: u32 = 29u32; +pub const SPDRP_UNUSED0: u32 = 3u32; +pub const SPDRP_UNUSED1: u32 = 5u32; +pub const SPDRP_UNUSED2: u32 = 6u32; +pub const SPDRP_UPPERFILTERS: u32 = 17u32; +pub const SPDSL_DISALLOW_NEGATIVE_ADJUST: u32 = 2u32; +pub const SPDSL_IGNORE_DISK: u32 = 1u32; +pub const SPFILELOG_FORCENEW: u32 = 2u32; +pub const SPFILELOG_OEMFILE: u32 = 1u32; +pub const SPFILELOG_QUERYONLY: u32 = 4u32; +pub const SPFILELOG_SYSTEMLOG: u32 = 1u32; +pub const SPFILENOTIFY_BACKUPERROR: u32 = 22u32; +pub const SPFILENOTIFY_CABINETINFO: u32 = 16u32; +pub const SPFILENOTIFY_COPYERROR: u32 = 13u32; +pub const SPFILENOTIFY_DELETEERROR: u32 = 7u32; +pub const SPFILENOTIFY_ENDBACKUP: u32 = 23u32; +pub const SPFILENOTIFY_ENDCOPY: u32 = 12u32; +pub const SPFILENOTIFY_ENDDELETE: u32 = 6u32; +pub const SPFILENOTIFY_ENDQUEUE: u32 = 2u32; +pub const SPFILENOTIFY_ENDREGISTRATION: u32 = 32u32; +pub const SPFILENOTIFY_ENDRENAME: u32 = 9u32; +pub const SPFILENOTIFY_ENDSUBQUEUE: u32 = 4u32; +pub const SPFILENOTIFY_FILEEXTRACTED: u32 = 19u32; +pub const SPFILENOTIFY_FILEINCABINET: u32 = 17u32; +pub const SPFILENOTIFY_FILEOPDELAYED: u32 = 20u32; +pub const SPFILENOTIFY_LANGMISMATCH: u32 = 65536u32; +pub const SPFILENOTIFY_NEEDMEDIA: u32 = 14u32; +pub const SPFILENOTIFY_NEEDNEWCABINET: u32 = 18u32; +pub const SPFILENOTIFY_QUEUESCAN: u32 = 15u32; +pub const SPFILENOTIFY_QUEUESCAN_EX: u32 = 24u32; +pub const SPFILENOTIFY_QUEUESCAN_SIGNERINFO: u32 = 64u32; +pub const SPFILENOTIFY_RENAMEERROR: u32 = 10u32; +pub const SPFILENOTIFY_STARTBACKUP: u32 = 21u32; +pub const SPFILENOTIFY_STARTCOPY: u32 = 11u32; +pub const SPFILENOTIFY_STARTDELETE: u32 = 5u32; +pub const SPFILENOTIFY_STARTQUEUE: u32 = 1u32; +pub const SPFILENOTIFY_STARTREGISTRATION: u32 = 25u32; +pub const SPFILENOTIFY_STARTRENAME: u32 = 8u32; +pub const SPFILENOTIFY_STARTSUBQUEUE: u32 = 3u32; +pub const SPFILENOTIFY_TARGETEXISTS: u32 = 131072u32; +pub const SPFILENOTIFY_TARGETNEWER: u32 = 262144u32; +pub const SPFILEQ_FILE_IN_USE: u32 = 1u32; +pub const SPFILEQ_REBOOT_IN_PROGRESS: u32 = 4u32; +pub const SPFILEQ_REBOOT_RECOMMENDED: u32 = 2u32; +pub const SPID_ACTIVE: u32 = 1u32; +pub const SPID_DEFAULT: u32 = 2u32; +pub const SPID_REMOVED: u32 = 4u32; +pub const SPINST_ALL: u32 = 2047u32; +pub const SPINST_BITREG: u32 = 32u32; +pub const SPINST_COPYINF: u32 = 512u32; +pub const SPINST_DEVICEINSTALL: u32 = 1048576u32; +pub const SPINST_FILES: u32 = 16u32; +pub const SPINST_INI2REG: u32 = 8u32; +pub const SPINST_INIFILES: u32 = 2u32; +pub const SPINST_LOGCONFIG: u32 = 1u32; +pub const SPINST_LOGCONFIGS_ARE_OVERRIDES: u32 = 262144u32; +pub const SPINST_LOGCONFIG_IS_FORCED: u32 = 131072u32; +pub const SPINST_PROFILEITEMS: u32 = 256u32; +pub const SPINST_PROPERTIES: u32 = 1024u32; +pub const SPINST_REGISTERCALLBACKAWARE: u32 = 524288u32; +pub const SPINST_REGISTRY: u32 = 4u32; +pub const SPINST_REGSVR: u32 = 64u32; +pub const SPINST_SINGLESECTION: u32 = 65536u32; +pub const SPINST_UNREGSVR: u32 = 128u32; +pub const SPINT_ACTIVE: u32 = 1u32; +pub const SPINT_DEFAULT: u32 = 2u32; +pub const SPINT_REMOVED: u32 = 4u32; +pub const SPOST_MAX: u32 = 3u32; +pub const SPOST_NONE: OEM_SOURCE_MEDIA_TYPE = 0u32; +pub const SPOST_PATH: OEM_SOURCE_MEDIA_TYPE = 1u32; +pub const SPOST_URL: OEM_SOURCE_MEDIA_TYPE = 2u32; +pub const SPPSR_ENUM_ADV_DEVICE_PROPERTIES: u32 = 3u32; +pub const SPPSR_ENUM_BASIC_DEVICE_PROPERTIES: u32 = 2u32; +pub const SPPSR_SELECT_DEVICE_RESOURCES: u32 = 1u32; +pub const SPQ_DELAYED_COPY: u32 = 1u32; +pub const SPQ_FLAG_ABORT_IF_UNSIGNED: u32 = 2u32; +pub const SPQ_FLAG_BACKUP_AWARE: u32 = 1u32; +pub const SPQ_FLAG_DO_SHUFFLEMOVE: u32 = 8u32; +pub const SPQ_FLAG_FILES_MODIFIED: u32 = 4u32; +pub const SPQ_FLAG_VALID: u32 = 15u32; +pub const SPQ_SCAN_ACTIVATE_DRP: SETUPSCANFILEQUEUE_FLAGS = 1024u32; +pub const SPQ_SCAN_FILE_COMPARISON: SETUPSCANFILEQUEUE_FLAGS = 512u32; +pub const SPQ_SCAN_FILE_PRESENCE: SETUPSCANFILEQUEUE_FLAGS = 1u32; +pub const SPQ_SCAN_FILE_PRESENCE_WITHOUT_SOURCE: SETUPSCANFILEQUEUE_FLAGS = 256u32; +pub const SPQ_SCAN_FILE_VALIDITY: SETUPSCANFILEQUEUE_FLAGS = 2u32; +pub const SPQ_SCAN_INFORM_USER: SETUPSCANFILEQUEUE_FLAGS = 16u32; +pub const SPQ_SCAN_PRUNE_COPY_QUEUE: SETUPSCANFILEQUEUE_FLAGS = 32u32; +pub const SPQ_SCAN_PRUNE_DELREN: SETUPSCANFILEQUEUE_FLAGS = 128u32; +pub const SPQ_SCAN_USE_CALLBACK: SETUPSCANFILEQUEUE_FLAGS = 4u32; +pub const SPQ_SCAN_USE_CALLBACKEX: SETUPSCANFILEQUEUE_FLAGS = 8u32; +pub const SPQ_SCAN_USE_CALLBACK_SIGNERINFO: SETUPSCANFILEQUEUE_FLAGS = 64u32; +pub const SPRDI_FIND_DUPS: u32 = 1u32; +pub const SPREG_DLLINSTALL: u32 = 4u32; +pub const SPREG_GETPROCADDR: u32 = 2u32; +pub const SPREG_LOADLIBRARY: u32 = 1u32; +pub const SPREG_REGSVR: u32 = 3u32; +pub const SPREG_SUCCESS: u32 = 0u32; +pub const SPREG_TIMEOUT: u32 = 5u32; +pub const SPREG_UNKNOWN: u32 = 4294967295u32; +pub const SPSVCINST_ASSOCSERVICE: SPSVCINST_FLAGS = 2u32; +pub const SPSVCINST_CLOBBER_SECURITY: SPSVCINST_FLAGS = 1024u32; +pub const SPSVCINST_DELETEEVENTLOGENTRY: SPSVCINST_FLAGS = 4u32; +pub const SPSVCINST_NOCLOBBER_DELAYEDAUTOSTART: SPSVCINST_FLAGS = 32768u32; +pub const SPSVCINST_NOCLOBBER_DEPENDENCIES: SPSVCINST_FLAGS = 128u32; +pub const SPSVCINST_NOCLOBBER_DESCRIPTION: SPSVCINST_FLAGS = 256u32; +pub const SPSVCINST_NOCLOBBER_DISPLAYNAME: SPSVCINST_FLAGS = 8u32; +pub const SPSVCINST_NOCLOBBER_ERRORCONTROL: SPSVCINST_FLAGS = 32u32; +pub const SPSVCINST_NOCLOBBER_FAILUREACTIONS: SPSVCINST_FLAGS = 131072u32; +pub const SPSVCINST_NOCLOBBER_LOADORDERGROUP: SPSVCINST_FLAGS = 64u32; +pub const SPSVCINST_NOCLOBBER_REQUIREDPRIVILEGES: SPSVCINST_FLAGS = 4096u32; +pub const SPSVCINST_NOCLOBBER_SERVICESIDTYPE: SPSVCINST_FLAGS = 16384u32; +pub const SPSVCINST_NOCLOBBER_STARTTYPE: SPSVCINST_FLAGS = 16u32; +pub const SPSVCINST_NOCLOBBER_TRIGGERS: SPSVCINST_FLAGS = 8192u32; +pub const SPSVCINST_STARTSERVICE: SPSVCINST_FLAGS = 2048u32; +pub const SPSVCINST_STOPSERVICE: SPSVCINST_FLAGS = 512u32; +pub const SPSVCINST_TAGTOFRONT: SPSVCINST_FLAGS = 1u32; +pub const SPSVCINST_UNIQUE_NAME: SPSVCINST_FLAGS = 65536u32; +pub const SPWPT_SELECTDEVICE: u32 = 1u32; +pub const SPWP_USE_DEVINFO_DATA: u32 = 1u32; +pub const SP_ALTPLATFORM_FLAGS_SUITE_MASK: u32 = 2u32; +pub const SP_ALTPLATFORM_FLAGS_VERSION_RANGE: u32 = 1u32; +pub const SP_BACKUP_BACKUPPASS: u32 = 1u32; +pub const SP_BACKUP_BOOTFILE: u32 = 8u32; +pub const SP_BACKUP_DEMANDPASS: u32 = 2u32; +pub const SP_BACKUP_SPECIAL: u32 = 4u32; +pub const SP_COPY_ALREADYDECOMP: SP_COPY_STYLE = 4194304u32; +pub const SP_COPY_DELETESOURCE: SP_COPY_STYLE = 1u32; +pub const SP_COPY_FORCE_IN_USE: SP_COPY_STYLE = 512u32; +pub const SP_COPY_FORCE_NEWER: SP_COPY_STYLE = 8192u32; +pub const SP_COPY_FORCE_NOOVERWRITE: SP_COPY_STYLE = 4096u32; +pub const SP_COPY_HARDLINK: SP_COPY_STYLE = 268435456u32; +pub const SP_COPY_INBOX_INF: SP_COPY_STYLE = 134217728u32; +pub const SP_COPY_IN_USE_NEEDS_REBOOT: SP_COPY_STYLE = 256u32; +pub const SP_COPY_IN_USE_TRY_RENAME: SP_COPY_STYLE = 67108864u32; +pub const SP_COPY_LANGUAGEAWARE: SP_COPY_STYLE = 32u32; +pub const SP_COPY_NEWER: SP_COPY_STYLE = 4u32; +pub const SP_COPY_NEWER_ONLY: SP_COPY_STYLE = 65536u32; +pub const SP_COPY_NEWER_OR_SAME: SP_COPY_STYLE = 4u32; +pub const SP_COPY_NOBROWSE: SP_COPY_STYLE = 32768u32; +pub const SP_COPY_NODECOMP: SP_COPY_STYLE = 16u32; +pub const SP_COPY_NOOVERWRITE: SP_COPY_STYLE = 8u32; +pub const SP_COPY_NOPRUNE: SP_COPY_STYLE = 1048576u32; +pub const SP_COPY_NOSKIP: SP_COPY_STYLE = 1024u32; +pub const SP_COPY_OEMINF_CATALOG_ONLY: SP_COPY_STYLE = 262144u32; +pub const SP_COPY_OEM_F6_INF: SP_COPY_STYLE = 2097152u32; +pub const SP_COPY_PNPLOCKED: SP_COPY_STYLE = 33554432u32; +pub const SP_COPY_REPLACEONLY: SP_COPY_STYLE = 2u32; +pub const SP_COPY_REPLACE_BOOT_FILE: SP_COPY_STYLE = 524288u32; +pub const SP_COPY_RESERVED: SP_COPY_STYLE = 131072u32; +pub const SP_COPY_SOURCEPATH_ABSOLUTE: SP_COPY_STYLE = 128u32; +pub const SP_COPY_SOURCE_ABSOLUTE: SP_COPY_STYLE = 64u32; +pub const SP_COPY_WARNIFSKIP: SP_COPY_STYLE = 16384u32; +pub const SP_COPY_WINDOWS_SIGNED: SP_COPY_STYLE = 16777216u32; +pub const SP_FLAG_CABINETCONTINUATION: u32 = 2048u32; +pub const SP_MAX_MACHINENAME_LENGTH: u32 = 263u32; +pub const SRCINFO_DESCRIPTION: u32 = 3u32; +pub const SRCINFO_FLAGS: u32 = 4u32; +pub const SRCINFO_PATH: u32 = 1u32; +pub const SRCINFO_TAGFILE: u32 = 2u32; +pub const SRCINFO_TAGFILE2: u32 = 5u32; +pub const SRCLIST_APPEND: u32 = 512u32; +pub const SRCLIST_NOBROWSE: u32 = 2u32; +pub const SRCLIST_NOSTRIPPLATFORM: u32 = 1024u32; +pub const SRCLIST_SUBDIRS: u32 = 256u32; +pub const SRCLIST_SYSIFADMIN: u32 = 64u32; +pub const SRCLIST_SYSTEM: u32 = 16u32; +pub const SRCLIST_TEMPORARY: u32 = 1u32; +pub const SRCLIST_USER: u32 = 32u32; +pub const SRC_FLAGS_CABFILE: u32 = 16u32; +pub const SUOI_FORCEDELETE: u32 = 1u32; +pub const SUOI_INTERNAL1: u32 = 2u32; +pub const SZ_KEY_ADDAUTOLOGGER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddAutoLogger"); +pub const SZ_KEY_ADDAUTOLOGGERPROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddAutoLoggerProvider"); +pub const SZ_KEY_ADDCHANNEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddChannel"); +pub const SZ_KEY_ADDEVENTPROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddEventProvider"); +pub const SZ_KEY_ADDFILTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddFilter"); +pub const SZ_KEY_ADDIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddIme"); +pub const SZ_KEY_ADDINTERFACE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddInterface"); +pub const SZ_KEY_ADDPOWERSETTING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddPowerSetting"); +pub const SZ_KEY_ADDPROP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddProperty"); +pub const SZ_KEY_ADDREG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddReg"); +pub const SZ_KEY_ADDREGNOCLOBBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddRegNoClobber"); +pub const SZ_KEY_ADDSERVICE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddService"); +pub const SZ_KEY_ADDTRIGGER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddTrigger"); +pub const SZ_KEY_BITREG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BitReg"); +pub const SZ_KEY_CLEANONLY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CleanOnly"); +pub const SZ_KEY_COPYFILES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CopyFiles"); +pub const SZ_KEY_COPYINF: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CopyINF"); +pub const SZ_KEY_DEFAULTOPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultOption"); +pub const SZ_KEY_DEFDESTDIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultDestDir"); +pub const SZ_KEY_DELFILES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DelFiles"); +pub const SZ_KEY_DELIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DelIme"); +pub const SZ_KEY_DELPROP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DelProperty"); +pub const SZ_KEY_DELREG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DelReg"); +pub const SZ_KEY_DELSERVICE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DelService"); +pub const SZ_KEY_DESTDIRS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DestinationDirs"); +pub const SZ_KEY_EXCLUDEID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExcludeId"); +pub const SZ_KEY_FAILUREACTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FailureActions"); +pub const SZ_KEY_FEATURESCORE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FeatureScore"); +pub const SZ_KEY_FILTERLEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FilterLevel"); +pub const SZ_KEY_FILTERPOSITION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FilterPosition"); +pub const SZ_KEY_HARDWARE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Hardware"); +pub const SZ_KEY_IMPORTCHANNEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ImportChannel"); +pub const SZ_KEY_INI2REG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Ini2Reg"); +pub const SZ_KEY_LAYOUT_FILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LayoutFile"); +pub const SZ_KEY_LDIDOEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LdidOEM"); +pub const SZ_KEY_LFN_SECTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VarLDID.LFN"); +pub const SZ_KEY_LISTOPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ListOptions"); +pub const SZ_KEY_LOGCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogConfig"); +pub const SZ_KEY_MODULES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Modules"); +pub const SZ_KEY_OPTIONDESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OptionDesc"); +pub const SZ_KEY_PHASE1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Phase1"); +pub const SZ_KEY_PROFILEITEMS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProfileItems"); +pub const SZ_KEY_REGSVR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RegisterDlls"); +pub const SZ_KEY_RENFILES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RenFiles"); +pub const SZ_KEY_SFN_SECTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VarLDID.SFN"); +pub const SZ_KEY_SRCDISKFILES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SourceDisksFiles"); +pub const SZ_KEY_SRCDISKNAMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SourceDisksNames"); +pub const SZ_KEY_STRINGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Strings"); +pub const SZ_KEY_UNREGSVR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UnregisterDlls"); +pub const SZ_KEY_UPDATEAUTOLOGGER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UpdateAutoLogger"); +pub const SZ_KEY_UPDATEINIFIELDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UpdateIniFields"); +pub const SZ_KEY_UPDATEINIS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UpdateInis"); +pub const SZ_KEY_UPGRADEONLY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UpgradeOnly"); +pub const SetupFileLogChecksum: SetupFileLogInfo = 1i32; +pub const SetupFileLogDiskDescription: SetupFileLogInfo = 3i32; +pub const SetupFileLogDiskTagfile: SetupFileLogInfo = 2i32; +pub const SetupFileLogMax: SetupFileLogInfo = 5i32; +pub const SetupFileLogOtherInfo: SetupFileLogInfo = 4i32; +pub const SetupFileLogSourceFilename: SetupFileLogInfo = 0i32; +pub const fDD_BYTE: u32 = 0u32; +pub const fDD_BYTE_AND_WORD: u32 = 3u32; +pub const fDD_BusMaster: u32 = 4u32; +pub const fDD_DWORD: u32 = 2u32; +pub const fDD_NoBusMaster: u32 = 0u32; +pub const fDD_TypeA: u32 = 8u32; +pub const fDD_TypeB: u32 = 16u32; +pub const fDD_TypeF: u32 = 24u32; +pub const fDD_TypeStandard: u32 = 0u32; +pub const fDD_WORD: u32 = 1u32; +pub const fIOD_10_BIT_DECODE: u32 = 4u32; +pub const fIOD_12_BIT_DECODE: u32 = 8u32; +pub const fIOD_16_BIT_DECODE: u32 = 16u32; +pub const fIOD_DECODE: u32 = 252u32; +pub const fIOD_IO: u32 = 1u32; +pub const fIOD_Memory: u32 = 0u32; +pub const fIOD_PASSIVE_DECODE: u32 = 64u32; +pub const fIOD_PORT_BAR: u32 = 256u32; +pub const fIOD_POSITIVE_DECODE: u32 = 32u32; +pub const fIOD_PortType: u32 = 1u32; +pub const fIOD_WINDOW_DECODE: u32 = 128u32; +pub const fIRQD_Edge: u32 = 2u32; +pub const fIRQD_Exclusive: u32 = 0u32; +pub const fIRQD_Level: u32 = 0u32; +pub const fIRQD_Level_Bit: u32 = 1u32; +pub const fIRQD_Share: u32 = 1u32; +pub const fIRQD_Share_Bit: u32 = 0u32; +pub const fMD_24: u32 = 0u32; +pub const fMD_32: u32 = 2u32; +pub const fMD_32_24: u32 = 2u32; +pub const fMD_Cacheable: u32 = 32u32; +pub const fMD_CombinedWrite: u32 = 16u32; +pub const fMD_CombinedWriteAllowed: u32 = 16u32; +pub const fMD_CombinedWriteDisallowed: u32 = 0u32; +pub const fMD_MEMORY_BAR: u32 = 128u32; +pub const fMD_MemoryType: u32 = 1u32; +pub const fMD_NonCacheable: u32 = 0u32; +pub const fMD_Pref: u32 = 4u32; +pub const fMD_PrefetchAllowed: u32 = 4u32; +pub const fMD_PrefetchDisallowed: u32 = 0u32; +pub const fMD_Prefetchable: u32 = 4u32; +pub const fMD_RAM: u32 = 1u32; +pub const fMD_ROM: u32 = 0u32; +pub const fMD_ReadAllowed: u32 = 0u32; +pub const fMD_ReadDisallowed: u32 = 8u32; +pub const fMD_Readable: u32 = 8u32; +pub const fMD_WINDOW_DECODE: u32 = 64u32; +pub const fPCD_ATTRIBUTES_PER_WINDOW: u32 = 32768u32; +pub const fPCD_IO1_16: u32 = 65536u32; +pub const fPCD_IO1_SRC_16: u32 = 262144u32; +pub const fPCD_IO1_WS_16: u32 = 524288u32; +pub const fPCD_IO1_ZW_8: u32 = 131072u32; +pub const fPCD_IO2_16: u32 = 1048576u32; +pub const fPCD_IO2_SRC_16: u32 = 4194304u32; +pub const fPCD_IO2_WS_16: u32 = 8388608u32; +pub const fPCD_IO2_ZW_8: u32 = 2097152u32; +pub const fPCD_IO_16: u32 = 1u32; +pub const fPCD_IO_8: u32 = 0u32; +pub const fPCD_IO_SRC_16: u32 = 32u32; +pub const fPCD_IO_WS_16: u32 = 64u32; +pub const fPCD_IO_ZW_8: u32 = 16u32; +pub const fPCD_MEM1_16: u32 = 67108864u32; +pub const fPCD_MEM1_A: u32 = 4u32; +pub const fPCD_MEM1_WS_ONE: u32 = 16777216u32; +pub const fPCD_MEM1_WS_THREE: u32 = 50331648u32; +pub const fPCD_MEM1_WS_TWO: u32 = 33554432u32; +pub const fPCD_MEM2_16: u32 = 1073741824u32; +pub const fPCD_MEM2_A: u32 = 8u32; +pub const fPCD_MEM2_WS_ONE: u32 = 268435456u32; +pub const fPCD_MEM2_WS_THREE: u32 = 805306368u32; +pub const fPCD_MEM2_WS_TWO: u32 = 536870912u32; +pub const fPCD_MEM_16: u32 = 2u32; +pub const fPCD_MEM_8: u32 = 0u32; +pub const fPCD_MEM_A: u32 = 4u32; +pub const fPCD_MEM_WS_ONE: u32 = 256u32; +pub const fPCD_MEM_WS_THREE: u32 = 768u32; +pub const fPCD_MEM_WS_TWO: u32 = 512u32; +pub const fPMF_AUDIO_ENABLE: u32 = 8u32; +pub const mDD_BusMaster: u32 = 4u32; +pub const mDD_Type: u32 = 24u32; +pub const mDD_Width: u32 = 3u32; +pub const mIRQD_Edge_Level: u32 = 2u32; +pub const mIRQD_Share: u32 = 1u32; +pub const mMD_32_24: u32 = 2u32; +pub const mMD_Cacheable: u32 = 32u32; +pub const mMD_CombinedWrite: u32 = 16u32; +pub const mMD_MemoryType: u32 = 1u32; +pub const mMD_Prefetchable: u32 = 4u32; +pub const mMD_Readable: u32 = 8u32; +pub const mPCD_IO_8_16: u32 = 1u32; +pub const mPCD_MEM1_WS: u32 = 50331648u32; +pub const mPCD_MEM2_WS: u32 = 805306368u32; +pub const mPCD_MEM_8_16: u32 = 2u32; +pub const mPCD_MEM_A_C: u32 = 12u32; +pub const mPCD_MEM_WS: u32 = 768u32; +pub const mPMF_AUDIO_ENABLE: u32 = 8u32; +pub type CM_CDFLAGS = u32; +pub type CM_CDMASK = u32; +pub type CM_DEVCAP = u32; +pub type CM_DEVNODE_STATUS_FLAGS = u32; +pub type CM_ENUMERATE_FLAGS = u32; +pub type CM_GET_DEVICE_INTERFACE_LIST_FLAGS = u32; +pub type CM_INSTALL_STATE = u32; +pub type CM_LOCATE_DEVNODE_FLAGS = u32; +pub type CM_LOG_CONF = u32; +pub type CM_NOTIFY_ACTION = i32; +pub type CM_NOTIFY_FILTER_TYPE = i32; +pub type CM_PROB = u32; +pub type CM_REENUMERATE_FLAGS = u32; +pub type CM_REMOVAL_POLICY = u32; +pub type CM_RESTYPE = u32; +pub type CONFIGRET = u32; +pub type DIINSTALLDEVICE_FLAGS = u32; +pub type DIINSTALLDRIVER_FLAGS = u32; +pub type DIROLLBACKDRIVER_FLAGS = u32; +pub type DIUNINSTALLDRIVER_FLAGS = u32; +pub type INF_STYLE = u32; +pub type OEM_SOURCE_MEDIA_TYPE = u32; +pub type PNP_VETO_TYPE = i32; +pub type SETUPSCANFILEQUEUE_FLAGS = u32; +pub type SETUP_DI_BUILD_DRIVER_DRIVER_TYPE = u32; +pub type SETUP_FILE_OPERATION = u32; +pub type SPSVCINST_FLAGS = u32; +pub type SP_COPY_STYLE = u32; +pub type SetupFileLogInfo = i32; +pub type UPDATEDRIVERFORPLUGANDPLAYDEVICES_FLAGS = u32; +#[repr(C, packed(1))] +pub struct BUSNUMBER_DES { + pub BUSD_Count: u32, + pub BUSD_Type: u32, + pub BUSD_Flags: u32, + pub BUSD_Alloc_Base: u32, + pub BUSD_Alloc_End: u32, +} +impl ::core::marker::Copy for BUSNUMBER_DES {} +impl ::core::clone::Clone for BUSNUMBER_DES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct BUSNUMBER_RANGE { + pub BUSR_Min: u32, + pub BUSR_Max: u32, + pub BUSR_nBusNumbers: u32, + pub BUSR_Flags: u32, +} +impl ::core::marker::Copy for BUSNUMBER_RANGE {} +impl ::core::clone::Clone for BUSNUMBER_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct BUSNUMBER_RESOURCE { + pub BusNumber_Header: BUSNUMBER_DES, + pub BusNumber_Data: [BUSNUMBER_RANGE; 1], +} +impl ::core::marker::Copy for BUSNUMBER_RESOURCE {} +impl ::core::clone::Clone for BUSNUMBER_RESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct CABINET_INFO_A { + pub CabinetPath: ::windows_sys::core::PCSTR, + pub CabinetFile: ::windows_sys::core::PCSTR, + pub DiskName: ::windows_sys::core::PCSTR, + pub SetId: u16, + pub CabinetNumber: u16, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for CABINET_INFO_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for CABINET_INFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct CABINET_INFO_A { + pub CabinetPath: ::windows_sys::core::PCSTR, + pub CabinetFile: ::windows_sys::core::PCSTR, + pub DiskName: ::windows_sys::core::PCSTR, + pub SetId: u16, + pub CabinetNumber: u16, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for CABINET_INFO_A {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for CABINET_INFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct CABINET_INFO_W { + pub CabinetPath: ::windows_sys::core::PCWSTR, + pub CabinetFile: ::windows_sys::core::PCWSTR, + pub DiskName: ::windows_sys::core::PCWSTR, + pub SetId: u16, + pub CabinetNumber: u16, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for CABINET_INFO_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for CABINET_INFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct CABINET_INFO_W { + pub CabinetPath: ::windows_sys::core::PCWSTR, + pub CabinetFile: ::windows_sys::core::PCWSTR, + pub DiskName: ::windows_sys::core::PCWSTR, + pub SetId: u16, + pub CabinetNumber: u16, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for CABINET_INFO_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for CABINET_INFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_NOTIFY_EVENT_DATA { + pub FilterType: CM_NOTIFY_FILTER_TYPE, + pub Reserved: u32, + pub u: CM_NOTIFY_EVENT_DATA_0, +} +impl ::core::marker::Copy for CM_NOTIFY_EVENT_DATA {} +impl ::core::clone::Clone for CM_NOTIFY_EVENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CM_NOTIFY_EVENT_DATA_0 { + pub DeviceInterface: CM_NOTIFY_EVENT_DATA_0_2, + pub DeviceHandle: CM_NOTIFY_EVENT_DATA_0_0, + pub DeviceInstance: CM_NOTIFY_EVENT_DATA_0_1, +} +impl ::core::marker::Copy for CM_NOTIFY_EVENT_DATA_0 {} +impl ::core::clone::Clone for CM_NOTIFY_EVENT_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_NOTIFY_EVENT_DATA_0_0 { + pub EventGuid: ::windows_sys::core::GUID, + pub NameOffset: i32, + pub DataSize: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for CM_NOTIFY_EVENT_DATA_0_0 {} +impl ::core::clone::Clone for CM_NOTIFY_EVENT_DATA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_NOTIFY_EVENT_DATA_0_1 { + pub InstanceId: [u16; 1], +} +impl ::core::marker::Copy for CM_NOTIFY_EVENT_DATA_0_1 {} +impl ::core::clone::Clone for CM_NOTIFY_EVENT_DATA_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_NOTIFY_EVENT_DATA_0_2 { + pub ClassGuid: ::windows_sys::core::GUID, + pub SymbolicLink: [u16; 1], +} +impl ::core::marker::Copy for CM_NOTIFY_EVENT_DATA_0_2 {} +impl ::core::clone::Clone for CM_NOTIFY_EVENT_DATA_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CM_NOTIFY_FILTER { + pub cbSize: u32, + pub Flags: u32, + pub FilterType: CM_NOTIFY_FILTER_TYPE, + pub Reserved: u32, + pub u: CM_NOTIFY_FILTER_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CM_NOTIFY_FILTER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CM_NOTIFY_FILTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CM_NOTIFY_FILTER_0 { + pub DeviceInterface: CM_NOTIFY_FILTER_0_2, + pub DeviceHandle: CM_NOTIFY_FILTER_0_0, + pub DeviceInstance: CM_NOTIFY_FILTER_0_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CM_NOTIFY_FILTER_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CM_NOTIFY_FILTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CM_NOTIFY_FILTER_0_0 { + pub hTarget: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CM_NOTIFY_FILTER_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CM_NOTIFY_FILTER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CM_NOTIFY_FILTER_0_1 { + pub InstanceId: [u16; 200], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CM_NOTIFY_FILTER_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CM_NOTIFY_FILTER_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CM_NOTIFY_FILTER_0_2 { + pub ClassGuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CM_NOTIFY_FILTER_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CM_NOTIFY_FILTER_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct COINSTALLER_CONTEXT_DATA { + pub PostProcessing: super::super::Foundation::BOOL, + pub InstallResult: u32, + pub PrivateData: *mut ::core::ffi::c_void, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COINSTALLER_CONTEXT_DATA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COINSTALLER_CONTEXT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct COINSTALLER_CONTEXT_DATA { + pub PostProcessing: super::super::Foundation::BOOL, + pub InstallResult: u32, + pub PrivateData: *mut ::core::ffi::c_void, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COINSTALLER_CONTEXT_DATA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COINSTALLER_CONTEXT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONFLICT_DETAILS_A { + pub CD_ulSize: u32, + pub CD_ulMask: CM_CDMASK, + pub CD_dnDevInst: u32, + pub CD_rdResDes: usize, + pub CD_ulFlags: CM_CDFLAGS, + pub CD_szDescription: [u8; 260], +} +impl ::core::marker::Copy for CONFLICT_DETAILS_A {} +impl ::core::clone::Clone for CONFLICT_DETAILS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONFLICT_DETAILS_W { + pub CD_ulSize: u32, + pub CD_ulMask: CM_CDMASK, + pub CD_dnDevInst: u32, + pub CD_rdResDes: usize, + pub CD_ulFlags: CM_CDFLAGS, + pub CD_szDescription: [u16; 260], +} +impl ::core::marker::Copy for CONFLICT_DETAILS_W {} +impl ::core::clone::Clone for CONFLICT_DETAILS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CONNECTION_DES { + pub COND_Type: u32, + pub COND_Flags: u32, + pub COND_Class: u8, + pub COND_ClassType: u8, + pub COND_Reserved1: u8, + pub COND_Reserved2: u8, + pub COND_Id: i64, +} +impl ::core::marker::Copy for CONNECTION_DES {} +impl ::core::clone::Clone for CONNECTION_DES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CONNECTION_RESOURCE { + pub Connection_Header: CONNECTION_DES, +} +impl ::core::marker::Copy for CONNECTION_RESOURCE {} +impl ::core::clone::Clone for CONNECTION_RESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CS_DES { + pub CSD_SignatureLength: u32, + pub CSD_LegacyDataOffset: u32, + pub CSD_LegacyDataSize: u32, + pub CSD_Flags: u32, + pub CSD_ClassGuid: ::windows_sys::core::GUID, + pub CSD_Signature: [u8; 1], +} +impl ::core::marker::Copy for CS_DES {} +impl ::core::clone::Clone for CS_DES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CS_RESOURCE { + pub CS_Header: CS_DES, +} +impl ::core::marker::Copy for CS_RESOURCE {} +impl ::core::clone::Clone for CS_RESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVPRIVATE_DES { + pub PD_Count: u32, + pub PD_Type: u32, + pub PD_Data1: u32, + pub PD_Data2: u32, + pub PD_Data3: u32, + pub PD_Flags: u32, +} +impl ::core::marker::Copy for DEVPRIVATE_DES {} +impl ::core::clone::Clone for DEVPRIVATE_DES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVPRIVATE_RANGE { + pub PR_Data1: u32, + pub PR_Data2: u32, + pub PR_Data3: u32, +} +impl ::core::marker::Copy for DEVPRIVATE_RANGE {} +impl ::core::clone::Clone for DEVPRIVATE_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVPRIVATE_RESOURCE { + pub PRV_Header: DEVPRIVATE_DES, + pub PRV_Data: [DEVPRIVATE_RANGE; 1], +} +impl ::core::marker::Copy for DEVPRIVATE_RESOURCE {} +impl ::core::clone::Clone for DEVPRIVATE_RESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DMA_DES { + pub DD_Count: u32, + pub DD_Type: u32, + pub DD_Flags: u32, + pub DD_Alloc_Chan: u32, +} +impl ::core::marker::Copy for DMA_DES {} +impl ::core::clone::Clone for DMA_DES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DMA_RANGE { + pub DR_Min: u32, + pub DR_Max: u32, + pub DR_Flags: u32, +} +impl ::core::marker::Copy for DMA_RANGE {} +impl ::core::clone::Clone for DMA_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DMA_RESOURCE { + pub DMA_Header: DMA_DES, + pub DMA_Data: [DMA_RANGE; 1], +} +impl ::core::marker::Copy for DMA_RESOURCE {} +impl ::core::clone::Clone for DMA_RESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct FILEPATHS_A { + pub Target: ::windows_sys::core::PCSTR, + pub Source: ::windows_sys::core::PCSTR, + pub Win32Error: u32, + pub Flags: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for FILEPATHS_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for FILEPATHS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct FILEPATHS_A { + pub Target: ::windows_sys::core::PCSTR, + pub Source: ::windows_sys::core::PCSTR, + pub Win32Error: u32, + pub Flags: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for FILEPATHS_A {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for FILEPATHS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct FILEPATHS_SIGNERINFO_A { + pub Target: ::windows_sys::core::PCSTR, + pub Source: ::windows_sys::core::PCSTR, + pub Win32Error: u32, + pub Flags: u32, + pub DigitalSigner: ::windows_sys::core::PCSTR, + pub Version: ::windows_sys::core::PCSTR, + pub CatalogFile: ::windows_sys::core::PCSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for FILEPATHS_SIGNERINFO_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for FILEPATHS_SIGNERINFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct FILEPATHS_SIGNERINFO_A { + pub Target: ::windows_sys::core::PCSTR, + pub Source: ::windows_sys::core::PCSTR, + pub Win32Error: u32, + pub Flags: u32, + pub DigitalSigner: ::windows_sys::core::PCSTR, + pub Version: ::windows_sys::core::PCSTR, + pub CatalogFile: ::windows_sys::core::PCSTR, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for FILEPATHS_SIGNERINFO_A {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for FILEPATHS_SIGNERINFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct FILEPATHS_SIGNERINFO_W { + pub Target: ::windows_sys::core::PCWSTR, + pub Source: ::windows_sys::core::PCWSTR, + pub Win32Error: u32, + pub Flags: u32, + pub DigitalSigner: ::windows_sys::core::PCWSTR, + pub Version: ::windows_sys::core::PCWSTR, + pub CatalogFile: ::windows_sys::core::PCWSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for FILEPATHS_SIGNERINFO_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for FILEPATHS_SIGNERINFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct FILEPATHS_SIGNERINFO_W { + pub Target: ::windows_sys::core::PCWSTR, + pub Source: ::windows_sys::core::PCWSTR, + pub Win32Error: u32, + pub Flags: u32, + pub DigitalSigner: ::windows_sys::core::PCWSTR, + pub Version: ::windows_sys::core::PCWSTR, + pub CatalogFile: ::windows_sys::core::PCWSTR, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for FILEPATHS_SIGNERINFO_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for FILEPATHS_SIGNERINFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct FILEPATHS_W { + pub Target: ::windows_sys::core::PCWSTR, + pub Source: ::windows_sys::core::PCWSTR, + pub Win32Error: u32, + pub Flags: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for FILEPATHS_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for FILEPATHS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct FILEPATHS_W { + pub Target: ::windows_sys::core::PCWSTR, + pub Source: ::windows_sys::core::PCWSTR, + pub Win32Error: u32, + pub Flags: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for FILEPATHS_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for FILEPATHS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct FILE_IN_CABINET_INFO_A { + pub NameInCabinet: ::windows_sys::core::PCSTR, + pub FileSize: u32, + pub Win32Error: u32, + pub DosDate: u16, + pub DosTime: u16, + pub DosAttribs: u16, + pub FullTargetName: [u8; 260], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for FILE_IN_CABINET_INFO_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for FILE_IN_CABINET_INFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct FILE_IN_CABINET_INFO_A { + pub NameInCabinet: ::windows_sys::core::PCSTR, + pub FileSize: u32, + pub Win32Error: u32, + pub DosDate: u16, + pub DosTime: u16, + pub DosAttribs: u16, + pub FullTargetName: [u8; 260], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for FILE_IN_CABINET_INFO_A {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for FILE_IN_CABINET_INFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct FILE_IN_CABINET_INFO_W { + pub NameInCabinet: ::windows_sys::core::PCWSTR, + pub FileSize: u32, + pub Win32Error: u32, + pub DosDate: u16, + pub DosTime: u16, + pub DosAttribs: u16, + pub FullTargetName: [u16; 260], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for FILE_IN_CABINET_INFO_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for FILE_IN_CABINET_INFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct FILE_IN_CABINET_INFO_W { + pub NameInCabinet: ::windows_sys::core::PCWSTR, + pub FileSize: u32, + pub Win32Error: u32, + pub DosDate: u16, + pub DosTime: u16, + pub DosAttribs: u16, + pub FullTargetName: [u16; 260], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for FILE_IN_CABINET_INFO_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for FILE_IN_CABINET_INFO_W { + fn clone(&self) -> Self { + *self + } +} +pub type HCMNOTIFICATION = isize; +pub type HDEVINFO = isize; +#[repr(C, packed(1))] +pub struct HWPROFILEINFO_A { + pub HWPI_ulHWProfile: u32, + pub HWPI_szFriendlyName: [u8; 80], + pub HWPI_dwFlags: u32, +} +impl ::core::marker::Copy for HWPROFILEINFO_A {} +impl ::core::clone::Clone for HWPROFILEINFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct HWPROFILEINFO_W { + pub HWPI_ulHWProfile: u32, + pub HWPI_szFriendlyName: [u16; 80], + pub HWPI_dwFlags: u32, +} +impl ::core::marker::Copy for HWPROFILEINFO_W {} +impl ::core::clone::Clone for HWPROFILEINFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct INFCONTEXT { + pub Inf: *mut ::core::ffi::c_void, + pub CurrentInf: *mut ::core::ffi::c_void, + pub Section: u32, + pub Line: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for INFCONTEXT {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for INFCONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct INFCONTEXT { + pub Inf: *mut ::core::ffi::c_void, + pub CurrentInf: *mut ::core::ffi::c_void, + pub Section: u32, + pub Line: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for INFCONTEXT {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for INFCONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IO_DES { + pub IOD_Count: u32, + pub IOD_Type: u32, + pub IOD_Alloc_Base: u64, + pub IOD_Alloc_End: u64, + pub IOD_DesFlags: u32, +} +impl ::core::marker::Copy for IO_DES {} +impl ::core::clone::Clone for IO_DES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IO_RANGE { + pub IOR_Align: u64, + pub IOR_nPorts: u32, + pub IOR_Min: u64, + pub IOR_Max: u64, + pub IOR_RangeFlags: u32, + pub IOR_Alias: u64, +} +impl ::core::marker::Copy for IO_RANGE {} +impl ::core::clone::Clone for IO_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_RESOURCE { + pub IO_Header: IO_DES, + pub IO_Data: [IO_RANGE; 1], +} +impl ::core::marker::Copy for IO_RESOURCE {} +impl ::core::clone::Clone for IO_RESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IRQ_DES_32 { + pub IRQD_Count: u32, + pub IRQD_Type: u32, + pub IRQD_Flags: u32, + pub IRQD_Alloc_Num: u32, + pub IRQD_Affinity: u32, +} +impl ::core::marker::Copy for IRQ_DES_32 {} +impl ::core::clone::Clone for IRQ_DES_32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IRQ_DES_64 { + pub IRQD_Count: u32, + pub IRQD_Type: u32, + pub IRQD_Flags: u32, + pub IRQD_Alloc_Num: u32, + pub IRQD_Affinity: u64, +} +impl ::core::marker::Copy for IRQ_DES_64 {} +impl ::core::clone::Clone for IRQ_DES_64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IRQ_RANGE { + pub IRQR_Min: u32, + pub IRQR_Max: u32, + pub IRQR_Flags: u32, +} +impl ::core::marker::Copy for IRQ_RANGE {} +impl ::core::clone::Clone for IRQ_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IRQ_RESOURCE_32 { + pub IRQ_Header: IRQ_DES_32, + pub IRQ_Data: [IRQ_RANGE; 1], +} +impl ::core::marker::Copy for IRQ_RESOURCE_32 {} +impl ::core::clone::Clone for IRQ_RESOURCE_32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IRQ_RESOURCE_64 { + pub IRQ_Header: IRQ_DES_64, + pub IRQ_Data: [IRQ_RANGE; 1], +} +impl ::core::marker::Copy for IRQ_RESOURCE_64 {} +impl ::core::clone::Clone for IRQ_RESOURCE_64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MEM_DES { + pub MD_Count: u32, + pub MD_Type: u32, + pub MD_Alloc_Base: u64, + pub MD_Alloc_End: u64, + pub MD_Flags: u32, + pub MD_Reserved: u32, +} +impl ::core::marker::Copy for MEM_DES {} +impl ::core::clone::Clone for MEM_DES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MEM_LARGE_DES { + pub MLD_Count: u32, + pub MLD_Type: u32, + pub MLD_Alloc_Base: u64, + pub MLD_Alloc_End: u64, + pub MLD_Flags: u32, + pub MLD_Reserved: u32, +} +impl ::core::marker::Copy for MEM_LARGE_DES {} +impl ::core::clone::Clone for MEM_LARGE_DES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MEM_LARGE_RANGE { + pub MLR_Align: u64, + pub MLR_nBytes: u64, + pub MLR_Min: u64, + pub MLR_Max: u64, + pub MLR_Flags: u32, + pub MLR_Reserved: u32, +} +impl ::core::marker::Copy for MEM_LARGE_RANGE {} +impl ::core::clone::Clone for MEM_LARGE_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MEM_LARGE_RESOURCE { + pub MEM_LARGE_Header: MEM_LARGE_DES, + pub MEM_LARGE_Data: [MEM_LARGE_RANGE; 1], +} +impl ::core::marker::Copy for MEM_LARGE_RESOURCE {} +impl ::core::clone::Clone for MEM_LARGE_RESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MEM_RANGE { + pub MR_Align: u64, + pub MR_nBytes: u32, + pub MR_Min: u64, + pub MR_Max: u64, + pub MR_Flags: u32, + pub MR_Reserved: u32, +} +impl ::core::marker::Copy for MEM_RANGE {} +impl ::core::clone::Clone for MEM_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MEM_RESOURCE { + pub MEM_Header: MEM_DES, + pub MEM_Data: [MEM_RANGE; 1], +} +impl ::core::marker::Copy for MEM_RESOURCE {} +impl ::core::clone::Clone for MEM_RESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MFCARD_DES { + pub PMF_Count: u32, + pub PMF_Type: u32, + pub PMF_Flags: u32, + pub PMF_ConfigOptions: u8, + pub PMF_IoResourceIndex: u8, + pub PMF_Reserved: [u8; 2], + pub PMF_ConfigRegisterBase: u32, +} +impl ::core::marker::Copy for MFCARD_DES {} +impl ::core::clone::Clone for MFCARD_DES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MFCARD_RESOURCE { + pub MfCard_Header: MFCARD_DES, +} +impl ::core::marker::Copy for MFCARD_RESOURCE {} +impl ::core::clone::Clone for MFCARD_RESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PCCARD_DES { + pub PCD_Count: u32, + pub PCD_Type: u32, + pub PCD_Flags: u32, + pub PCD_ConfigIndex: u8, + pub PCD_Reserved: [u8; 3], + pub PCD_MemoryCardBase1: u32, + pub PCD_MemoryCardBase2: u32, + pub PCD_MemoryCardBase: [u32; 2], + pub PCD_MemoryFlags: [u16; 2], + pub PCD_IoFlags: [u8; 2], +} +impl ::core::marker::Copy for PCCARD_DES {} +impl ::core::clone::Clone for PCCARD_DES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PCCARD_RESOURCE { + pub PcCard_Header: PCCARD_DES, +} +impl ::core::marker::Copy for PCCARD_RESOURCE {} +impl ::core::clone::Clone for PCCARD_RESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SOURCE_MEDIA_A { + pub Reserved: ::windows_sys::core::PCSTR, + pub Tagfile: ::windows_sys::core::PCSTR, + pub Description: ::windows_sys::core::PCSTR, + pub SourcePath: ::windows_sys::core::PCSTR, + pub SourceFile: ::windows_sys::core::PCSTR, + pub Flags: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SOURCE_MEDIA_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SOURCE_MEDIA_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SOURCE_MEDIA_A { + pub Reserved: ::windows_sys::core::PCSTR, + pub Tagfile: ::windows_sys::core::PCSTR, + pub Description: ::windows_sys::core::PCSTR, + pub SourcePath: ::windows_sys::core::PCSTR, + pub SourceFile: ::windows_sys::core::PCSTR, + pub Flags: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SOURCE_MEDIA_A {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SOURCE_MEDIA_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SOURCE_MEDIA_W { + pub Reserved: ::windows_sys::core::PCWSTR, + pub Tagfile: ::windows_sys::core::PCWSTR, + pub Description: ::windows_sys::core::PCWSTR, + pub SourcePath: ::windows_sys::core::PCWSTR, + pub SourceFile: ::windows_sys::core::PCWSTR, + pub Flags: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SOURCE_MEDIA_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SOURCE_MEDIA_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SOURCE_MEDIA_W { + pub Reserved: ::windows_sys::core::PCWSTR, + pub Tagfile: ::windows_sys::core::PCWSTR, + pub Description: ::windows_sys::core::PCWSTR, + pub SourcePath: ::windows_sys::core::PCWSTR, + pub SourceFile: ::windows_sys::core::PCWSTR, + pub Flags: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SOURCE_MEDIA_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SOURCE_MEDIA_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct SP_ALTPLATFORM_INFO_V1 { + pub cbSize: u32, + pub Platform: super::super::System::Diagnostics::Debug::VER_PLATFORM, + pub MajorVersion: u32, + pub MinorVersion: u32, + pub ProcessorArchitecture: u16, + pub Reserved: u16, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for SP_ALTPLATFORM_INFO_V1 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for SP_ALTPLATFORM_INFO_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct SP_ALTPLATFORM_INFO_V1 { + pub cbSize: u32, + pub Platform: super::super::System::Diagnostics::Debug::VER_PLATFORM, + pub MajorVersion: u32, + pub MinorVersion: u32, + pub ProcessorArchitecture: u16, + pub Reserved: u16, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for SP_ALTPLATFORM_INFO_V1 {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for SP_ALTPLATFORM_INFO_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct SP_ALTPLATFORM_INFO_V2 { + pub cbSize: u32, + pub Platform: super::super::System::Diagnostics::Debug::VER_PLATFORM, + pub MajorVersion: u32, + pub MinorVersion: u32, + pub ProcessorArchitecture: u16, + pub Anonymous: SP_ALTPLATFORM_INFO_V2_0, + pub FirstValidatedMajorVersion: u32, + pub FirstValidatedMinorVersion: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for SP_ALTPLATFORM_INFO_V2 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for SP_ALTPLATFORM_INFO_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub union SP_ALTPLATFORM_INFO_V2_0 { + pub Reserved: u16, + pub Flags: u16, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for SP_ALTPLATFORM_INFO_V2_0 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for SP_ALTPLATFORM_INFO_V2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub struct SP_ALTPLATFORM_INFO_V2 { + pub cbSize: u32, + pub Platform: super::super::System::Diagnostics::Debug::VER_PLATFORM, + pub MajorVersion: u32, + pub MinorVersion: u32, + pub ProcessorArchitecture: u16, + pub Anonymous: SP_ALTPLATFORM_INFO_V2_0, + pub FirstValidatedMajorVersion: u32, + pub FirstValidatedMinorVersion: u32, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for SP_ALTPLATFORM_INFO_V2 {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for SP_ALTPLATFORM_INFO_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +pub union SP_ALTPLATFORM_INFO_V2_0 { + pub Reserved: u16, + pub Flags: u16, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::marker::Copy for SP_ALTPLATFORM_INFO_V2_0 {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +impl ::core::clone::Clone for SP_ALTPLATFORM_INFO_V2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_ALTPLATFORM_INFO_V3 { + pub cbSize: u32, + pub Platform: u32, + pub MajorVersion: u32, + pub MinorVersion: u32, + pub ProcessorArchitecture: u16, + pub Anonymous: SP_ALTPLATFORM_INFO_V3_0, + pub FirstValidatedMajorVersion: u32, + pub FirstValidatedMinorVersion: u32, + pub ProductType: u8, + pub SuiteMask: u16, + pub BuildNumber: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_ALTPLATFORM_INFO_V3 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_ALTPLATFORM_INFO_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub union SP_ALTPLATFORM_INFO_V3_0 { + pub Reserved: u16, + pub Flags: u16, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_ALTPLATFORM_INFO_V3_0 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_ALTPLATFORM_INFO_V3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_ALTPLATFORM_INFO_V3 { + pub cbSize: u32, + pub Platform: u32, + pub MajorVersion: u32, + pub MinorVersion: u32, + pub ProcessorArchitecture: u16, + pub Anonymous: SP_ALTPLATFORM_INFO_V3_0, + pub FirstValidatedMajorVersion: u32, + pub FirstValidatedMinorVersion: u32, + pub ProductType: u8, + pub SuiteMask: u16, + pub BuildNumber: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_ALTPLATFORM_INFO_V3 {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_ALTPLATFORM_INFO_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub union SP_ALTPLATFORM_INFO_V3_0 { + pub Reserved: u16, + pub Flags: u16, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_ALTPLATFORM_INFO_V3_0 {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_ALTPLATFORM_INFO_V3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_BACKUP_QUEUE_PARAMS_V1_A { + pub cbSize: u32, + pub FullInfPath: [u8; 260], + pub FilenameOffset: i32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_BACKUP_QUEUE_PARAMS_V1_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_BACKUP_QUEUE_PARAMS_V1_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_BACKUP_QUEUE_PARAMS_V1_A { + pub cbSize: u32, + pub FullInfPath: [u8; 260], + pub FilenameOffset: i32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_BACKUP_QUEUE_PARAMS_V1_A {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_BACKUP_QUEUE_PARAMS_V1_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_BACKUP_QUEUE_PARAMS_V1_W { + pub cbSize: u32, + pub FullInfPath: [u16; 260], + pub FilenameOffset: i32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_BACKUP_QUEUE_PARAMS_V1_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_BACKUP_QUEUE_PARAMS_V1_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_BACKUP_QUEUE_PARAMS_V1_W { + pub cbSize: u32, + pub FullInfPath: [u16; 260], + pub FilenameOffset: i32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_BACKUP_QUEUE_PARAMS_V1_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_BACKUP_QUEUE_PARAMS_V1_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_BACKUP_QUEUE_PARAMS_V2_A { + pub cbSize: u32, + pub FullInfPath: [u8; 260], + pub FilenameOffset: i32, + pub ReinstallInstance: [u8; 260], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_BACKUP_QUEUE_PARAMS_V2_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_BACKUP_QUEUE_PARAMS_V2_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_BACKUP_QUEUE_PARAMS_V2_A { + pub cbSize: u32, + pub FullInfPath: [u8; 260], + pub FilenameOffset: i32, + pub ReinstallInstance: [u8; 260], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_BACKUP_QUEUE_PARAMS_V2_A {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_BACKUP_QUEUE_PARAMS_V2_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_BACKUP_QUEUE_PARAMS_V2_W { + pub cbSize: u32, + pub FullInfPath: [u16; 260], + pub FilenameOffset: i32, + pub ReinstallInstance: [u16; 260], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_BACKUP_QUEUE_PARAMS_V2_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_BACKUP_QUEUE_PARAMS_V2_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_BACKUP_QUEUE_PARAMS_V2_W { + pub cbSize: u32, + pub FullInfPath: [u16; 260], + pub FilenameOffset: i32, + pub ReinstallInstance: [u16; 260], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_BACKUP_QUEUE_PARAMS_V2_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_BACKUP_QUEUE_PARAMS_V2_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_Controls\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_UI_Controls")] +pub struct SP_CLASSIMAGELIST_DATA { + pub cbSize: u32, + pub ImageList: super::super::UI::Controls::HIMAGELIST, + pub Reserved: usize, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_UI_Controls")] +impl ::core::marker::Copy for SP_CLASSIMAGELIST_DATA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_UI_Controls")] +impl ::core::clone::Clone for SP_CLASSIMAGELIST_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_UI_Controls\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_UI_Controls")] +pub struct SP_CLASSIMAGELIST_DATA { + pub cbSize: u32, + pub ImageList: super::super::UI::Controls::HIMAGELIST, + pub Reserved: usize, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_UI_Controls")] +impl ::core::marker::Copy for SP_CLASSIMAGELIST_DATA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_UI_Controls")] +impl ::core::clone::Clone for SP_CLASSIMAGELIST_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_CLASSINSTALL_HEADER { + pub cbSize: u32, + pub InstallFunction: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_CLASSINSTALL_HEADER {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_CLASSINSTALL_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_CLASSINSTALL_HEADER { + pub cbSize: u32, + pub InstallFunction: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_CLASSINSTALL_HEADER {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_CLASSINSTALL_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DETECTDEVICE_PARAMS { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub DetectProgressNotify: PDETECT_PROGRESS_NOTIFY, + pub ProgressNotifyParam: *mut ::core::ffi::c_void, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DETECTDEVICE_PARAMS {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DETECTDEVICE_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DETECTDEVICE_PARAMS { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub DetectProgressNotify: PDETECT_PROGRESS_NOTIFY, + pub ProgressNotifyParam: *mut ::core::ffi::c_void, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DETECTDEVICE_PARAMS {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DETECTDEVICE_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_DEVICE_INTERFACE_DATA { + pub cbSize: u32, + pub InterfaceClassGuid: ::windows_sys::core::GUID, + pub Flags: u32, + pub Reserved: usize, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_DEVICE_INTERFACE_DATA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_DEVICE_INTERFACE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_DEVICE_INTERFACE_DATA { + pub cbSize: u32, + pub InterfaceClassGuid: ::windows_sys::core::GUID, + pub Flags: u32, + pub Reserved: usize, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_DEVICE_INTERFACE_DATA {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_DEVICE_INTERFACE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_DEVICE_INTERFACE_DETAIL_DATA_A { + pub cbSize: u32, + pub DevicePath: [u8; 1], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_DEVICE_INTERFACE_DETAIL_DATA_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_DEVICE_INTERFACE_DETAIL_DATA_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_DEVICE_INTERFACE_DETAIL_DATA_A { + pub cbSize: u32, + pub DevicePath: [u8; 1], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_DEVICE_INTERFACE_DETAIL_DATA_A {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_DEVICE_INTERFACE_DETAIL_DATA_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_DEVICE_INTERFACE_DETAIL_DATA_W { + pub cbSize: u32, + pub DevicePath: [u16; 1], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_DEVICE_INTERFACE_DETAIL_DATA_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_DEVICE_INTERFACE_DETAIL_DATA_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_DEVICE_INTERFACE_DETAIL_DATA_W { + pub cbSize: u32, + pub DevicePath: [u16; 1], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_DEVICE_INTERFACE_DETAIL_DATA_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_DEVICE_INTERFACE_DETAIL_DATA_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_DEVINFO_DATA { + pub cbSize: u32, + pub ClassGuid: ::windows_sys::core::GUID, + pub DevInst: u32, + pub Reserved: usize, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_DEVINFO_DATA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_DEVINFO_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_DEVINFO_DATA { + pub cbSize: u32, + pub ClassGuid: ::windows_sys::core::GUID, + pub DevInst: u32, + pub Reserved: usize, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_DEVINFO_DATA {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_DEVINFO_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DEVINFO_LIST_DETAIL_DATA_A { + pub cbSize: u32, + pub ClassGuid: ::windows_sys::core::GUID, + pub RemoteMachineHandle: super::super::Foundation::HANDLE, + pub RemoteMachineName: [u8; 263], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DEVINFO_LIST_DETAIL_DATA_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DEVINFO_LIST_DETAIL_DATA_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DEVINFO_LIST_DETAIL_DATA_A { + pub cbSize: u32, + pub ClassGuid: ::windows_sys::core::GUID, + pub RemoteMachineHandle: super::super::Foundation::HANDLE, + pub RemoteMachineName: [u8; 263], +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DEVINFO_LIST_DETAIL_DATA_A {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DEVINFO_LIST_DETAIL_DATA_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DEVINFO_LIST_DETAIL_DATA_W { + pub cbSize: u32, + pub ClassGuid: ::windows_sys::core::GUID, + pub RemoteMachineHandle: super::super::Foundation::HANDLE, + pub RemoteMachineName: [u16; 263], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DEVINFO_LIST_DETAIL_DATA_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DEVINFO_LIST_DETAIL_DATA_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DEVINFO_LIST_DETAIL_DATA_W { + pub cbSize: u32, + pub ClassGuid: ::windows_sys::core::GUID, + pub RemoteMachineHandle: super::super::Foundation::HANDLE, + pub RemoteMachineName: [u16; 263], +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DEVINFO_LIST_DETAIL_DATA_W {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DEVINFO_LIST_DETAIL_DATA_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DEVINSTALL_PARAMS_A { + pub cbSize: u32, + pub Flags: u32, + pub FlagsEx: u32, + pub hwndParent: super::super::Foundation::HWND, + pub InstallMsgHandler: PSP_FILE_CALLBACK_A, + pub InstallMsgHandlerContext: *mut ::core::ffi::c_void, + pub FileQueue: *mut ::core::ffi::c_void, + pub ClassInstallReserved: usize, + pub Reserved: u32, + pub DriverPath: [u8; 260], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DEVINSTALL_PARAMS_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DEVINSTALL_PARAMS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DEVINSTALL_PARAMS_A { + pub cbSize: u32, + pub Flags: u32, + pub FlagsEx: u32, + pub hwndParent: super::super::Foundation::HWND, + pub InstallMsgHandler: PSP_FILE_CALLBACK_A, + pub InstallMsgHandlerContext: *mut ::core::ffi::c_void, + pub FileQueue: *mut ::core::ffi::c_void, + pub ClassInstallReserved: usize, + pub Reserved: u32, + pub DriverPath: [u8; 260], +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DEVINSTALL_PARAMS_A {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DEVINSTALL_PARAMS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DEVINSTALL_PARAMS_W { + pub cbSize: u32, + pub Flags: u32, + pub FlagsEx: u32, + pub hwndParent: super::super::Foundation::HWND, + pub InstallMsgHandler: PSP_FILE_CALLBACK_W, + pub InstallMsgHandlerContext: *mut ::core::ffi::c_void, + pub FileQueue: *mut ::core::ffi::c_void, + pub ClassInstallReserved: usize, + pub Reserved: u32, + pub DriverPath: [u16; 260], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DEVINSTALL_PARAMS_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DEVINSTALL_PARAMS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DEVINSTALL_PARAMS_W { + pub cbSize: u32, + pub Flags: u32, + pub FlagsEx: u32, + pub hwndParent: super::super::Foundation::HWND, + pub InstallMsgHandler: PSP_FILE_CALLBACK_W, + pub InstallMsgHandlerContext: *mut ::core::ffi::c_void, + pub FileQueue: *mut ::core::ffi::c_void, + pub ClassInstallReserved: usize, + pub Reserved: u32, + pub DriverPath: [u16; 260], +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DEVINSTALL_PARAMS_W {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DEVINSTALL_PARAMS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_DRVINFO_DATA_V1_A { + pub cbSize: u32, + pub DriverType: u32, + pub Reserved: usize, + pub Description: [u8; 256], + pub MfgName: [u8; 256], + pub ProviderName: [u8; 256], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_DRVINFO_DATA_V1_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_DRVINFO_DATA_V1_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_DRVINFO_DATA_V1_A { + pub cbSize: u32, + pub DriverType: u32, + pub Reserved: usize, + pub Description: [u8; 256], + pub MfgName: [u8; 256], + pub ProviderName: [u8; 256], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_DRVINFO_DATA_V1_A {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_DRVINFO_DATA_V1_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_DRVINFO_DATA_V1_W { + pub cbSize: u32, + pub DriverType: u32, + pub Reserved: usize, + pub Description: [u16; 256], + pub MfgName: [u16; 256], + pub ProviderName: [u16; 256], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_DRVINFO_DATA_V1_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_DRVINFO_DATA_V1_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_DRVINFO_DATA_V1_W { + pub cbSize: u32, + pub DriverType: u32, + pub Reserved: usize, + pub Description: [u16; 256], + pub MfgName: [u16; 256], + pub ProviderName: [u16; 256], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_DRVINFO_DATA_V1_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_DRVINFO_DATA_V1_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DRVINFO_DATA_V2_A { + pub cbSize: u32, + pub DriverType: u32, + pub Reserved: usize, + pub Description: [u8; 256], + pub MfgName: [u8; 256], + pub ProviderName: [u8; 256], + pub DriverDate: super::super::Foundation::FILETIME, + pub DriverVersion: u64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DRVINFO_DATA_V2_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DRVINFO_DATA_V2_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DRVINFO_DATA_V2_A { + pub cbSize: u32, + pub DriverType: u32, + pub Reserved: usize, + pub Description: [u8; 256], + pub MfgName: [u8; 256], + pub ProviderName: [u8; 256], + pub DriverDate: super::super::Foundation::FILETIME, + pub DriverVersion: u64, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DRVINFO_DATA_V2_A {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DRVINFO_DATA_V2_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DRVINFO_DATA_V2_W { + pub cbSize: u32, + pub DriverType: u32, + pub Reserved: usize, + pub Description: [u16; 256], + pub MfgName: [u16; 256], + pub ProviderName: [u16; 256], + pub DriverDate: super::super::Foundation::FILETIME, + pub DriverVersion: u64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DRVINFO_DATA_V2_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DRVINFO_DATA_V2_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DRVINFO_DATA_V2_W { + pub cbSize: u32, + pub DriverType: u32, + pub Reserved: usize, + pub Description: [u16; 256], + pub MfgName: [u16; 256], + pub ProviderName: [u16; 256], + pub DriverDate: super::super::Foundation::FILETIME, + pub DriverVersion: u64, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DRVINFO_DATA_V2_W {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DRVINFO_DATA_V2_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DRVINFO_DETAIL_DATA_A { + pub cbSize: u32, + pub InfDate: super::super::Foundation::FILETIME, + pub CompatIDsOffset: u32, + pub CompatIDsLength: u32, + pub Reserved: usize, + pub SectionName: [u8; 256], + pub InfFileName: [u8; 260], + pub DrvDescription: [u8; 256], + pub HardwareID: [u8; 1], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DRVINFO_DETAIL_DATA_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DRVINFO_DETAIL_DATA_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DRVINFO_DETAIL_DATA_A { + pub cbSize: u32, + pub InfDate: super::super::Foundation::FILETIME, + pub CompatIDsOffset: u32, + pub CompatIDsLength: u32, + pub Reserved: usize, + pub SectionName: [u8; 256], + pub InfFileName: [u8; 260], + pub DrvDescription: [u8; 256], + pub HardwareID: [u8; 1], +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DRVINFO_DETAIL_DATA_A {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DRVINFO_DETAIL_DATA_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DRVINFO_DETAIL_DATA_W { + pub cbSize: u32, + pub InfDate: super::super::Foundation::FILETIME, + pub CompatIDsOffset: u32, + pub CompatIDsLength: u32, + pub Reserved: usize, + pub SectionName: [u16; 256], + pub InfFileName: [u16; 260], + pub DrvDescription: [u16; 256], + pub HardwareID: [u16; 1], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DRVINFO_DETAIL_DATA_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DRVINFO_DETAIL_DATA_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct SP_DRVINFO_DETAIL_DATA_W { + pub cbSize: u32, + pub InfDate: super::super::Foundation::FILETIME, + pub CompatIDsOffset: u32, + pub CompatIDsLength: u32, + pub Reserved: usize, + pub SectionName: [u16; 256], + pub InfFileName: [u16; 260], + pub DrvDescription: [u16; 256], + pub HardwareID: [u16; 1], +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SP_DRVINFO_DETAIL_DATA_W {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SP_DRVINFO_DETAIL_DATA_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_DRVINSTALL_PARAMS { + pub cbSize: u32, + pub Rank: u32, + pub Flags: u32, + pub PrivateData: usize, + pub Reserved: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_DRVINSTALL_PARAMS {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_DRVINSTALL_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_DRVINSTALL_PARAMS { + pub cbSize: u32, + pub Rank: u32, + pub Flags: u32, + pub PrivateData: usize, + pub Reserved: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_DRVINSTALL_PARAMS {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_DRVINSTALL_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_ENABLECLASS_PARAMS { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub ClassGuid: ::windows_sys::core::GUID, + pub EnableMessage: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_ENABLECLASS_PARAMS {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_ENABLECLASS_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_ENABLECLASS_PARAMS { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub ClassGuid: ::windows_sys::core::GUID, + pub EnableMessage: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_ENABLECLASS_PARAMS {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_ENABLECLASS_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_FILE_COPY_PARAMS_A { + pub cbSize: u32, + pub QueueHandle: *mut ::core::ffi::c_void, + pub SourceRootPath: ::windows_sys::core::PCSTR, + pub SourcePath: ::windows_sys::core::PCSTR, + pub SourceFilename: ::windows_sys::core::PCSTR, + pub SourceDescription: ::windows_sys::core::PCSTR, + pub SourceTagfile: ::windows_sys::core::PCSTR, + pub TargetDirectory: ::windows_sys::core::PCSTR, + pub TargetFilename: ::windows_sys::core::PCSTR, + pub CopyStyle: u32, + pub LayoutInf: *mut ::core::ffi::c_void, + pub SecurityDescriptor: ::windows_sys::core::PCSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_FILE_COPY_PARAMS_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_FILE_COPY_PARAMS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_FILE_COPY_PARAMS_A { + pub cbSize: u32, + pub QueueHandle: *mut ::core::ffi::c_void, + pub SourceRootPath: ::windows_sys::core::PCSTR, + pub SourcePath: ::windows_sys::core::PCSTR, + pub SourceFilename: ::windows_sys::core::PCSTR, + pub SourceDescription: ::windows_sys::core::PCSTR, + pub SourceTagfile: ::windows_sys::core::PCSTR, + pub TargetDirectory: ::windows_sys::core::PCSTR, + pub TargetFilename: ::windows_sys::core::PCSTR, + pub CopyStyle: u32, + pub LayoutInf: *mut ::core::ffi::c_void, + pub SecurityDescriptor: ::windows_sys::core::PCSTR, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_FILE_COPY_PARAMS_A {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_FILE_COPY_PARAMS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_FILE_COPY_PARAMS_W { + pub cbSize: u32, + pub QueueHandle: *mut ::core::ffi::c_void, + pub SourceRootPath: ::windows_sys::core::PCWSTR, + pub SourcePath: ::windows_sys::core::PCWSTR, + pub SourceFilename: ::windows_sys::core::PCWSTR, + pub SourceDescription: ::windows_sys::core::PCWSTR, + pub SourceTagfile: ::windows_sys::core::PCWSTR, + pub TargetDirectory: ::windows_sys::core::PCWSTR, + pub TargetFilename: ::windows_sys::core::PCWSTR, + pub CopyStyle: u32, + pub LayoutInf: *mut ::core::ffi::c_void, + pub SecurityDescriptor: ::windows_sys::core::PCWSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_FILE_COPY_PARAMS_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_FILE_COPY_PARAMS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_FILE_COPY_PARAMS_W { + pub cbSize: u32, + pub QueueHandle: *mut ::core::ffi::c_void, + pub SourceRootPath: ::windows_sys::core::PCWSTR, + pub SourcePath: ::windows_sys::core::PCWSTR, + pub SourceFilename: ::windows_sys::core::PCWSTR, + pub SourceDescription: ::windows_sys::core::PCWSTR, + pub SourceTagfile: ::windows_sys::core::PCWSTR, + pub TargetDirectory: ::windows_sys::core::PCWSTR, + pub TargetFilename: ::windows_sys::core::PCWSTR, + pub CopyStyle: u32, + pub LayoutInf: *mut ::core::ffi::c_void, + pub SecurityDescriptor: ::windows_sys::core::PCWSTR, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_FILE_COPY_PARAMS_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_FILE_COPY_PARAMS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_INF_INFORMATION { + pub InfStyle: INF_STYLE, + pub InfCount: u32, + pub VersionData: [u8; 1], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_INF_INFORMATION {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_INF_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_INF_INFORMATION { + pub InfStyle: INF_STYLE, + pub InfCount: u32, + pub VersionData: [u8; 1], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_INF_INFORMATION {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_INF_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_INF_SIGNER_INFO_V1_A { + pub cbSize: u32, + pub CatalogFile: [u8; 260], + pub DigitalSigner: [u8; 260], + pub DigitalSignerVersion: [u8; 260], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_INF_SIGNER_INFO_V1_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_INF_SIGNER_INFO_V1_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_INF_SIGNER_INFO_V1_A { + pub cbSize: u32, + pub CatalogFile: [u8; 260], + pub DigitalSigner: [u8; 260], + pub DigitalSignerVersion: [u8; 260], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_INF_SIGNER_INFO_V1_A {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_INF_SIGNER_INFO_V1_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_INF_SIGNER_INFO_V1_W { + pub cbSize: u32, + pub CatalogFile: [u16; 260], + pub DigitalSigner: [u16; 260], + pub DigitalSignerVersion: [u16; 260], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_INF_SIGNER_INFO_V1_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_INF_SIGNER_INFO_V1_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_INF_SIGNER_INFO_V1_W { + pub cbSize: u32, + pub CatalogFile: [u16; 260], + pub DigitalSigner: [u16; 260], + pub DigitalSignerVersion: [u16; 260], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_INF_SIGNER_INFO_V1_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_INF_SIGNER_INFO_V1_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_INF_SIGNER_INFO_V2_A { + pub cbSize: u32, + pub CatalogFile: [u8; 260], + pub DigitalSigner: [u8; 260], + pub DigitalSignerVersion: [u8; 260], + pub SignerScore: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_INF_SIGNER_INFO_V2_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_INF_SIGNER_INFO_V2_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_INF_SIGNER_INFO_V2_A { + pub cbSize: u32, + pub CatalogFile: [u8; 260], + pub DigitalSigner: [u8; 260], + pub DigitalSignerVersion: [u8; 260], + pub SignerScore: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_INF_SIGNER_INFO_V2_A {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_INF_SIGNER_INFO_V2_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_INF_SIGNER_INFO_V2_W { + pub cbSize: u32, + pub CatalogFile: [u16; 260], + pub DigitalSigner: [u16; 260], + pub DigitalSignerVersion: [u16; 260], + pub SignerScore: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_INF_SIGNER_INFO_V2_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_INF_SIGNER_INFO_V2_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_INF_SIGNER_INFO_V2_W { + pub cbSize: u32, + pub CatalogFile: [u16; 260], + pub DigitalSigner: [u16; 260], + pub DigitalSignerVersion: [u16; 260], + pub SignerScore: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_INF_SIGNER_INFO_V2_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_INF_SIGNER_INFO_V2_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +pub struct SP_INSTALLWIZARD_DATA { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub Flags: u32, + pub DynamicPages: [super::super::UI::Controls::HPROPSHEETPAGE; 20], + pub NumDynamicPages: u32, + pub DynamicPageFlags: u32, + pub PrivateFlags: u32, + pub PrivateData: super::super::Foundation::LPARAM, + pub hwndWizardDlg: super::super::Foundation::HWND, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::marker::Copy for SP_INSTALLWIZARD_DATA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::clone::Clone for SP_INSTALLWIZARD_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +pub struct SP_INSTALLWIZARD_DATA { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub Flags: u32, + pub DynamicPages: [super::super::UI::Controls::HPROPSHEETPAGE; 20], + pub NumDynamicPages: u32, + pub DynamicPageFlags: u32, + pub PrivateFlags: u32, + pub PrivateData: super::super::Foundation::LPARAM, + pub hwndWizardDlg: super::super::Foundation::HWND, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::marker::Copy for SP_INSTALLWIZARD_DATA {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::clone::Clone for SP_INSTALLWIZARD_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +pub struct SP_NEWDEVICEWIZARD_DATA { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub Flags: u32, + pub DynamicPages: [super::super::UI::Controls::HPROPSHEETPAGE; 20], + pub NumDynamicPages: u32, + pub hwndWizardDlg: super::super::Foundation::HWND, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::marker::Copy for SP_NEWDEVICEWIZARD_DATA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::clone::Clone for SP_NEWDEVICEWIZARD_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +pub struct SP_NEWDEVICEWIZARD_DATA { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub Flags: u32, + pub DynamicPages: [super::super::UI::Controls::HPROPSHEETPAGE; 20], + pub NumDynamicPages: u32, + pub hwndWizardDlg: super::super::Foundation::HWND, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::marker::Copy for SP_NEWDEVICEWIZARD_DATA {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::clone::Clone for SP_NEWDEVICEWIZARD_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_ORIGINAL_FILE_INFO_A { + pub cbSize: u32, + pub OriginalInfName: [u8; 260], + pub OriginalCatalogName: [u8; 260], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_ORIGINAL_FILE_INFO_A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_ORIGINAL_FILE_INFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_ORIGINAL_FILE_INFO_A { + pub cbSize: u32, + pub OriginalInfName: [u8; 260], + pub OriginalCatalogName: [u8; 260], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_ORIGINAL_FILE_INFO_A {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_ORIGINAL_FILE_INFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_ORIGINAL_FILE_INFO_W { + pub cbSize: u32, + pub OriginalInfName: [u16; 260], + pub OriginalCatalogName: [u16; 260], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_ORIGINAL_FILE_INFO_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_ORIGINAL_FILE_INFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_ORIGINAL_FILE_INFO_W { + pub cbSize: u32, + pub OriginalInfName: [u16; 260], + pub OriginalCatalogName: [u16; 260], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_ORIGINAL_FILE_INFO_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_ORIGINAL_FILE_INFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SP_POWERMESSAGEWAKE_PARAMS_A { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub PowerMessageWake: [u8; 512], +} +impl ::core::marker::Copy for SP_POWERMESSAGEWAKE_PARAMS_A {} +impl ::core::clone::Clone for SP_POWERMESSAGEWAKE_PARAMS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_POWERMESSAGEWAKE_PARAMS_W { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub PowerMessageWake: [u16; 512], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_POWERMESSAGEWAKE_PARAMS_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_POWERMESSAGEWAKE_PARAMS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_POWERMESSAGEWAKE_PARAMS_W { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub PowerMessageWake: [u16; 512], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_POWERMESSAGEWAKE_PARAMS_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_POWERMESSAGEWAKE_PARAMS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_PROPCHANGE_PARAMS { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub StateChange: u32, + pub Scope: u32, + pub HwProfile: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_PROPCHANGE_PARAMS {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_PROPCHANGE_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_PROPCHANGE_PARAMS { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub StateChange: u32, + pub Scope: u32, + pub HwProfile: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_PROPCHANGE_PARAMS {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_PROPCHANGE_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_PROPSHEETPAGE_REQUEST { + pub cbSize: u32, + pub PageRequested: u32, + pub DeviceInfoSet: HDEVINFO, + pub DeviceInfoData: *mut SP_DEVINFO_DATA, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_PROPSHEETPAGE_REQUEST {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_PROPSHEETPAGE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_PROPSHEETPAGE_REQUEST { + pub cbSize: u32, + pub PageRequested: u32, + pub DeviceInfoSet: HDEVINFO, + pub DeviceInfoData: *mut SP_DEVINFO_DATA, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_PROPSHEETPAGE_REQUEST {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_PROPSHEETPAGE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_REGISTER_CONTROL_STATUSA { + pub cbSize: u32, + pub FileName: ::windows_sys::core::PCSTR, + pub Win32Error: u32, + pub FailureCode: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_REGISTER_CONTROL_STATUSA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_REGISTER_CONTROL_STATUSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_REGISTER_CONTROL_STATUSA { + pub cbSize: u32, + pub FileName: ::windows_sys::core::PCSTR, + pub Win32Error: u32, + pub FailureCode: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_REGISTER_CONTROL_STATUSA {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_REGISTER_CONTROL_STATUSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_REGISTER_CONTROL_STATUSW { + pub cbSize: u32, + pub FileName: ::windows_sys::core::PCWSTR, + pub Win32Error: u32, + pub FailureCode: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_REGISTER_CONTROL_STATUSW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_REGISTER_CONTROL_STATUSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_REGISTER_CONTROL_STATUSW { + pub cbSize: u32, + pub FileName: ::windows_sys::core::PCWSTR, + pub Win32Error: u32, + pub FailureCode: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_REGISTER_CONTROL_STATUSW {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_REGISTER_CONTROL_STATUSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_REMOVEDEVICE_PARAMS { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub Scope: u32, + pub HwProfile: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_REMOVEDEVICE_PARAMS {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_REMOVEDEVICE_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_REMOVEDEVICE_PARAMS { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub Scope: u32, + pub HwProfile: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_REMOVEDEVICE_PARAMS {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_REMOVEDEVICE_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SP_SELECTDEVICE_PARAMS_A { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub Title: [u8; 60], + pub Instructions: [u8; 256], + pub ListLabel: [u8; 30], + pub SubTitle: [u8; 256], + pub Reserved: [u8; 2], +} +impl ::core::marker::Copy for SP_SELECTDEVICE_PARAMS_A {} +impl ::core::clone::Clone for SP_SELECTDEVICE_PARAMS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_SELECTDEVICE_PARAMS_W { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub Title: [u16; 60], + pub Instructions: [u16; 256], + pub ListLabel: [u16; 30], + pub SubTitle: [u16; 256], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_SELECTDEVICE_PARAMS_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_SELECTDEVICE_PARAMS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_SELECTDEVICE_PARAMS_W { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub Title: [u16; 60], + pub Instructions: [u16; 256], + pub ListLabel: [u16; 30], + pub SubTitle: [u16; 256], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_SELECTDEVICE_PARAMS_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_SELECTDEVICE_PARAMS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SP_TROUBLESHOOTER_PARAMS_A { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub ChmFile: [u8; 260], + pub HtmlTroubleShooter: [u8; 260], +} +impl ::core::marker::Copy for SP_TROUBLESHOOTER_PARAMS_A {} +impl ::core::clone::Clone for SP_TROUBLESHOOTER_PARAMS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_TROUBLESHOOTER_PARAMS_W { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub ChmFile: [u16; 260], + pub HtmlTroubleShooter: [u16; 260], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_TROUBLESHOOTER_PARAMS_W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_TROUBLESHOOTER_PARAMS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_TROUBLESHOOTER_PARAMS_W { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub ChmFile: [u16; 260], + pub HtmlTroubleShooter: [u16; 260], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_TROUBLESHOOTER_PARAMS_W {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_TROUBLESHOOTER_PARAMS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SP_UNREMOVEDEVICE_PARAMS { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub Scope: u32, + pub HwProfile: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SP_UNREMOVEDEVICE_PARAMS {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SP_UNREMOVEDEVICE_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SP_UNREMOVEDEVICE_PARAMS { + pub ClassInstallHeader: SP_CLASSINSTALL_HEADER, + pub Scope: u32, + pub HwProfile: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SP_UNREMOVEDEVICE_PARAMS {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SP_UNREMOVEDEVICE_PARAMS { + fn clone(&self) -> Self { + *self + } +} +pub type PCM_NOTIFY_CALLBACK = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDETECT_PROGRESS_NOTIFY = ::core::option::Option super::super::Foundation::BOOL>; +pub type PSP_DETSIG_CMPPROC = ::core::option::Option u32>; +pub type PSP_FILE_CALLBACK_A = ::core::option::Option u32>; +pub type PSP_FILE_CALLBACK_W = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/DeviceQuery/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/DeviceQuery/mod.rs new file mode 100644 index 000000000..d9445412e --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/DeviceQuery/mod.rs @@ -0,0 +1,182 @@ +::windows_targets::link!("api-ms-win-devices-query-l1-1-0.dll" "system" fn DevCloseObjectQuery(hdevquery : HDEVQUERY) -> ()); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("api-ms-win-devices-query-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn DevCreateObjectQuery(objecttype : DEV_OBJECT_TYPE, queryflags : u32, crequestedproperties : u32, prequestedproperties : *const super::Properties:: DEVPROPCOMPKEY, cfilterexpressioncount : u32, pfilter : *const DEVPROP_FILTER_EXPRESSION, pcallback : PDEV_QUERY_RESULT_CALLBACK, pcontext : *const ::core::ffi::c_void, phdevquery : *mut HDEVQUERY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("api-ms-win-devices-query-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn DevCreateObjectQueryEx(objecttype : DEV_OBJECT_TYPE, queryflags : u32, crequestedproperties : u32, prequestedproperties : *const super::Properties:: DEVPROPCOMPKEY, cfilterexpressioncount : u32, pfilter : *const DEVPROP_FILTER_EXPRESSION, cextendedparametercount : u32, pextendedparameters : *const DEV_QUERY_PARAMETER, pcallback : PDEV_QUERY_RESULT_CALLBACK, pcontext : *const ::core::ffi::c_void, phdevquery : *mut HDEVQUERY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("api-ms-win-devices-query-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn DevCreateObjectQueryFromId(objecttype : DEV_OBJECT_TYPE, pszobjectid : ::windows_sys::core::PCWSTR, queryflags : u32, crequestedproperties : u32, prequestedproperties : *const super::Properties:: DEVPROPCOMPKEY, cfilterexpressioncount : u32, pfilter : *const DEVPROP_FILTER_EXPRESSION, pcallback : PDEV_QUERY_RESULT_CALLBACK, pcontext : *const ::core::ffi::c_void, phdevquery : *mut HDEVQUERY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("api-ms-win-devices-query-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn DevCreateObjectQueryFromIdEx(objecttype : DEV_OBJECT_TYPE, pszobjectid : ::windows_sys::core::PCWSTR, queryflags : u32, crequestedproperties : u32, prequestedproperties : *const super::Properties:: DEVPROPCOMPKEY, cfilterexpressioncount : u32, pfilter : *const DEVPROP_FILTER_EXPRESSION, cextendedparametercount : u32, pextendedparameters : *const DEV_QUERY_PARAMETER, pcallback : PDEV_QUERY_RESULT_CALLBACK, pcontext : *const ::core::ffi::c_void, phdevquery : *mut HDEVQUERY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("api-ms-win-devices-query-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn DevCreateObjectQueryFromIds(objecttype : DEV_OBJECT_TYPE, pszzobjectids : ::windows_sys::core::PCWSTR, queryflags : u32, crequestedproperties : u32, prequestedproperties : *const super::Properties:: DEVPROPCOMPKEY, cfilterexpressioncount : u32, pfilter : *const DEVPROP_FILTER_EXPRESSION, pcallback : PDEV_QUERY_RESULT_CALLBACK, pcontext : *const ::core::ffi::c_void, phdevquery : *mut HDEVQUERY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("api-ms-win-devices-query-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn DevCreateObjectQueryFromIdsEx(objecttype : DEV_OBJECT_TYPE, pszzobjectids : ::windows_sys::core::PCWSTR, queryflags : u32, crequestedproperties : u32, prequestedproperties : *const super::Properties:: DEVPROPCOMPKEY, cfilterexpressioncount : u32, pfilter : *const DEVPROP_FILTER_EXPRESSION, cextendedparametercount : u32, pextendedparameters : *const DEV_QUERY_PARAMETER, pcallback : PDEV_QUERY_RESULT_CALLBACK, pcontext : *const ::core::ffi::c_void, phdevquery : *mut HDEVQUERY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("api-ms-win-devices-query-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn DevFindProperty(pkey : *const super::Properties:: DEVPROPKEY, store : super::Properties:: DEVPROPSTORE, pszlocalename : ::windows_sys::core::PCWSTR, cproperties : u32, pproperties : *const super::Properties:: DEVPROPERTY) -> *mut super::Properties:: DEVPROPERTY); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("api-ms-win-devices-query-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn DevFreeObjectProperties(cpropertycount : u32, pproperties : *const super::Properties:: DEVPROPERTY) -> ()); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("api-ms-win-devices-query-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn DevFreeObjects(cobjectcount : u32, pobjects : *const DEV_OBJECT) -> ()); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("api-ms-win-devices-query-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn DevGetObjectProperties(objecttype : DEV_OBJECT_TYPE, pszobjectid : ::windows_sys::core::PCWSTR, queryflags : u32, crequestedproperties : u32, prequestedproperties : *const super::Properties:: DEVPROPCOMPKEY, pcpropertycount : *mut u32, ppproperties : *mut *mut super::Properties:: DEVPROPERTY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("api-ms-win-devices-query-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn DevGetObjectPropertiesEx(objecttype : DEV_OBJECT_TYPE, pszobjectid : ::windows_sys::core::PCWSTR, queryflags : u32, crequestedproperties : u32, prequestedproperties : *const super::Properties:: DEVPROPCOMPKEY, cextendedparametercount : u32, pextendedparameters : *const DEV_QUERY_PARAMETER, pcpropertycount : *mut u32, ppproperties : *mut *mut super::Properties:: DEVPROPERTY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("api-ms-win-devices-query-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn DevGetObjects(objecttype : DEV_OBJECT_TYPE, queryflags : u32, crequestedproperties : u32, prequestedproperties : *const super::Properties:: DEVPROPCOMPKEY, cfilterexpressioncount : u32, pfilter : *const DEVPROP_FILTER_EXPRESSION, pcobjectcount : *mut u32, ppobjects : *mut *mut DEV_OBJECT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("api-ms-win-devices-query-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn DevGetObjectsEx(objecttype : DEV_OBJECT_TYPE, queryflags : u32, crequestedproperties : u32, prequestedproperties : *const super::Properties:: DEVPROPCOMPKEY, cfilterexpressioncount : u32, pfilter : *const DEVPROP_FILTER_EXPRESSION, cextendedparametercount : u32, pextendedparameters : *const DEV_QUERY_PARAMETER, pcobjectcount : *mut u32, ppobjects : *mut *mut DEV_OBJECT) -> ::windows_sys::core::HRESULT); +pub const DEVPROP_OPERATOR_AND_CLOSE: DEVPROP_OPERATOR = 2097152u32; +pub const DEVPROP_OPERATOR_AND_OPEN: DEVPROP_OPERATOR = 1048576u32; +pub const DEVPROP_OPERATOR_ARRAY_CONTAINS: DEVPROP_OPERATOR = 268435456u32; +pub const DEVPROP_OPERATOR_BEGINS_WITH: DEVPROP_OPERATOR = 9u32; +pub const DEVPROP_OPERATOR_BEGINS_WITH_IGNORE_CASE: DEVPROP_OPERATOR = 131081u32; +pub const DEVPROP_OPERATOR_BITWISE_AND: DEVPROP_OPERATOR = 7u32; +pub const DEVPROP_OPERATOR_BITWISE_OR: DEVPROP_OPERATOR = 8u32; +pub const DEVPROP_OPERATOR_CONTAINS: DEVPROP_OPERATOR = 11u32; +pub const DEVPROP_OPERATOR_CONTAINS_IGNORE_CASE: DEVPROP_OPERATOR = 131083u32; +pub const DEVPROP_OPERATOR_ENDS_WITH: DEVPROP_OPERATOR = 10u32; +pub const DEVPROP_OPERATOR_ENDS_WITH_IGNORE_CASE: DEVPROP_OPERATOR = 131082u32; +pub const DEVPROP_OPERATOR_EQUALS: DEVPROP_OPERATOR = 2u32; +pub const DEVPROP_OPERATOR_EQUALS_IGNORE_CASE: DEVPROP_OPERATOR = 131074u32; +pub const DEVPROP_OPERATOR_EXISTS: DEVPROP_OPERATOR = 1u32; +pub const DEVPROP_OPERATOR_GREATER_THAN: DEVPROP_OPERATOR = 3u32; +pub const DEVPROP_OPERATOR_GREATER_THAN_EQUALS: DEVPROP_OPERATOR = 5u32; +pub const DEVPROP_OPERATOR_LESS_THAN: DEVPROP_OPERATOR = 4u32; +pub const DEVPROP_OPERATOR_LESS_THAN_EQUALS: DEVPROP_OPERATOR = 6u32; +pub const DEVPROP_OPERATOR_LIST_CONTAINS: DEVPROP_OPERATOR = 4096u32; +pub const DEVPROP_OPERATOR_LIST_CONTAINS_IGNORE_CASE: DEVPROP_OPERATOR = 135168u32; +pub const DEVPROP_OPERATOR_LIST_ELEMENT_BEGINS_WITH: DEVPROP_OPERATOR = 8192u32; +pub const DEVPROP_OPERATOR_LIST_ELEMENT_BEGINS_WITH_IGNORE_CASE: DEVPROP_OPERATOR = 139264u32; +pub const DEVPROP_OPERATOR_LIST_ELEMENT_CONTAINS: DEVPROP_OPERATOR = 16384u32; +pub const DEVPROP_OPERATOR_LIST_ELEMENT_CONTAINS_IGNORE_CASE: DEVPROP_OPERATOR = 147456u32; +pub const DEVPROP_OPERATOR_LIST_ELEMENT_ENDS_WITH: DEVPROP_OPERATOR = 12288u32; +pub const DEVPROP_OPERATOR_LIST_ELEMENT_ENDS_WITH_IGNORE_CASE: DEVPROP_OPERATOR = 143360u32; +pub const DEVPROP_OPERATOR_MASK_ARRAY: DEVPROP_OPERATOR = 4026531840u32; +pub const DEVPROP_OPERATOR_MASK_EVAL: DEVPROP_OPERATOR = 4095u32; +pub const DEVPROP_OPERATOR_MASK_LIST: DEVPROP_OPERATOR = 61440u32; +pub const DEVPROP_OPERATOR_MASK_LOGICAL: DEVPROP_OPERATOR = 267386880u32; +pub const DEVPROP_OPERATOR_MASK_MODIFIER: DEVPROP_OPERATOR = 983040u32; +pub const DEVPROP_OPERATOR_MASK_NOT_LOGICAL: DEVPROP_OPERATOR = 4027580415u32; +pub const DEVPROP_OPERATOR_MODIFIER_IGNORE_CASE: DEVPROP_OPERATOR = 131072u32; +pub const DEVPROP_OPERATOR_MODIFIER_NOT: DEVPROP_OPERATOR = 65536u32; +pub const DEVPROP_OPERATOR_NONE: DEVPROP_OPERATOR = 0u32; +pub const DEVPROP_OPERATOR_NOT_CLOSE: DEVPROP_OPERATOR = 6291456u32; +pub const DEVPROP_OPERATOR_NOT_EQUALS: DEVPROP_OPERATOR = 65538u32; +pub const DEVPROP_OPERATOR_NOT_EQUALS_IGNORE_CASE: DEVPROP_OPERATOR = 196610u32; +pub const DEVPROP_OPERATOR_NOT_EXISTS: DEVPROP_OPERATOR = 65537u32; +pub const DEVPROP_OPERATOR_NOT_OPEN: DEVPROP_OPERATOR = 5242880u32; +pub const DEVPROP_OPERATOR_OR_CLOSE: DEVPROP_OPERATOR = 4194304u32; +pub const DEVPROP_OPERATOR_OR_OPEN: DEVPROP_OPERATOR = 3145728u32; +pub const DevObjectTypeAEP: DEV_OBJECT_TYPE = 5i32; +pub const DevObjectTypeAEPContainer: DEV_OBJECT_TYPE = 6i32; +pub const DevObjectTypeAEPService: DEV_OBJECT_TYPE = 10i32; +pub const DevObjectTypeDevice: DEV_OBJECT_TYPE = 3i32; +pub const DevObjectTypeDeviceContainer: DEV_OBJECT_TYPE = 2i32; +pub const DevObjectTypeDeviceContainerDisplay: DEV_OBJECT_TYPE = 9i32; +pub const DevObjectTypeDeviceInstallerClass: DEV_OBJECT_TYPE = 7i32; +pub const DevObjectTypeDeviceInterface: DEV_OBJECT_TYPE = 1i32; +pub const DevObjectTypeDeviceInterfaceClass: DEV_OBJECT_TYPE = 4i32; +pub const DevObjectTypeDeviceInterfaceDisplay: DEV_OBJECT_TYPE = 8i32; +pub const DevObjectTypeDevicePanel: DEV_OBJECT_TYPE = 11i32; +pub const DevObjectTypeUnknown: DEV_OBJECT_TYPE = 0i32; +pub const DevQueryFlagAllProperties: DEV_QUERY_FLAGS = 2i32; +pub const DevQueryFlagAsyncClose: DEV_QUERY_FLAGS = 8i32; +pub const DevQueryFlagLocalize: DEV_QUERY_FLAGS = 4i32; +pub const DevQueryFlagNone: DEV_QUERY_FLAGS = 0i32; +pub const DevQueryFlagUpdateResults: DEV_QUERY_FLAGS = 1i32; +pub const DevQueryResultAdd: DEV_QUERY_RESULT_ACTION = 1i32; +pub const DevQueryResultRemove: DEV_QUERY_RESULT_ACTION = 3i32; +pub const DevQueryResultStateChange: DEV_QUERY_RESULT_ACTION = 0i32; +pub const DevQueryResultUpdate: DEV_QUERY_RESULT_ACTION = 2i32; +pub const DevQueryStateAborted: DEV_QUERY_STATE = 2i32; +pub const DevQueryStateClosed: DEV_QUERY_STATE = 3i32; +pub const DevQueryStateEnumCompleted: DEV_QUERY_STATE = 1i32; +pub const DevQueryStateInitialized: DEV_QUERY_STATE = 0i32; +pub type DEVPROP_OPERATOR = u32; +pub type DEV_OBJECT_TYPE = i32; +pub type DEV_QUERY_FLAGS = i32; +pub type DEV_QUERY_RESULT_ACTION = i32; +pub type DEV_QUERY_STATE = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub struct DEVPROP_FILTER_EXPRESSION { + pub Operator: DEVPROP_OPERATOR, + pub Property: super::Properties::DEVPROPERTY, +} +#[cfg(feature = "Win32_Devices_Properties")] +impl ::core::marker::Copy for DEVPROP_FILTER_EXPRESSION {} +#[cfg(feature = "Win32_Devices_Properties")] +impl ::core::clone::Clone for DEVPROP_FILTER_EXPRESSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub struct DEV_OBJECT { + pub ObjectType: DEV_OBJECT_TYPE, + pub pszObjectId: ::windows_sys::core::PCWSTR, + pub cPropertyCount: u32, + pub pProperties: *const super::Properties::DEVPROPERTY, +} +#[cfg(feature = "Win32_Devices_Properties")] +impl ::core::marker::Copy for DEV_OBJECT {} +#[cfg(feature = "Win32_Devices_Properties")] +impl ::core::clone::Clone for DEV_OBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub struct DEV_QUERY_PARAMETER { + pub Key: super::Properties::DEVPROPKEY, + pub Type: super::Properties::DEVPROPTYPE, + pub BufferSize: u32, + pub Buffer: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Devices_Properties")] +impl ::core::marker::Copy for DEV_QUERY_PARAMETER {} +#[cfg(feature = "Win32_Devices_Properties")] +impl ::core::clone::Clone for DEV_QUERY_PARAMETER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub struct DEV_QUERY_RESULT_ACTION_DATA { + pub Action: DEV_QUERY_RESULT_ACTION, + pub Data: DEV_QUERY_RESULT_ACTION_DATA_0, +} +#[cfg(feature = "Win32_Devices_Properties")] +impl ::core::marker::Copy for DEV_QUERY_RESULT_ACTION_DATA {} +#[cfg(feature = "Win32_Devices_Properties")] +impl ::core::clone::Clone for DEV_QUERY_RESULT_ACTION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub union DEV_QUERY_RESULT_ACTION_DATA_0 { + pub State: DEV_QUERY_STATE, + pub DeviceObject: DEV_OBJECT, +} +#[cfg(feature = "Win32_Devices_Properties")] +impl ::core::marker::Copy for DEV_QUERY_RESULT_ACTION_DATA_0 {} +#[cfg(feature = "Win32_Devices_Properties")] +impl ::core::clone::Clone for DEV_QUERY_RESULT_ACTION_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +pub type HDEVQUERY = isize; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub type PDEV_QUERY_RESULT_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Display/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Display/mod.rs new file mode 100644 index 000000000..610c860e2 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Display/mod.rs @@ -0,0 +1,4802 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BRUSHOBJ_hGetColorTransform(pbo : *mut BRUSHOBJ) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("gdi32.dll" "system" fn BRUSHOBJ_pvAllocRbrush(pbo : *mut BRUSHOBJ, cj : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("gdi32.dll" "system" fn BRUSHOBJ_pvGetRbrush(pbo : *mut BRUSHOBJ) -> *mut ::core::ffi::c_void); +::windows_targets::link!("gdi32.dll" "system" fn BRUSHOBJ_ulGetBrushColor(pbo : *mut BRUSHOBJ) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CLIPOBJ_bEnum(pco : *mut CLIPOBJ, cj : u32, pul : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CLIPOBJ_cEnumStart(pco : *mut CLIPOBJ, ball : super::super::Foundation:: BOOL, itype : u32, idirection : u32, climit : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CLIPOBJ_ppoGetPath(pco : *mut CLIPOBJ) -> *mut PATHOBJ); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CapabilitiesRequestAndCapabilitiesReply(hmonitor : super::super::Foundation:: HANDLE, pszasciicapabilitiesstring : ::windows_sys::core::PSTR, dwcapabilitiesstringlengthincharacters : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DegaussMonitor(hmonitor : super::super::Foundation:: HANDLE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DestroyPhysicalMonitor(hmonitor : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DestroyPhysicalMonitors(dwphysicalmonitorarraysize : u32, pphysicalmonitorarray : *const PHYSICAL_MONITOR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DisplayConfigGetDeviceInfo(requestpacket : *mut DISPLAYCONFIG_DEVICE_INFO_HEADER) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DisplayConfigSetDeviceInfo(setpacket : *const DISPLAYCONFIG_DEVICE_INFO_HEADER) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn EngAcquireSemaphore(hsem : HSEMAPHORE) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn EngAlphaBlend(psodest : *mut SURFOBJ, psosrc : *mut SURFOBJ, pco : *mut CLIPOBJ, pxlo : *mut XLATEOBJ, prcldest : *mut super::super::Foundation:: RECTL, prclsrc : *mut super::super::Foundation:: RECTL, pblendobj : *mut BLENDOBJ) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngAssociateSurface(hsurf : HSURF, hdev : HDEV, flhooks : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngBitBlt(psotrg : *const SURFOBJ, psosrc : *const SURFOBJ, psomask : *const SURFOBJ, pco : *const CLIPOBJ, pxlo : *const XLATEOBJ, prcltrg : *const super::super::Foundation:: RECTL, pptlsrc : *const super::super::Foundation:: POINTL, pptlmask : *const super::super::Foundation:: POINTL, pbo : *const BRUSHOBJ, pptlbrush : *const super::super::Foundation:: POINTL, rop4 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngCheckAbort(pso : *mut SURFOBJ) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn EngComputeGlyphSet(ncodepage : i32, nfirstchar : i32, cchars : i32) -> *mut FD_GLYPHSET); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngCopyBits(psodest : *mut SURFOBJ, psosrc : *mut SURFOBJ, pco : *mut CLIPOBJ, pxlo : *mut XLATEOBJ, prcldest : *mut super::super::Foundation:: RECTL, pptlsrc : *mut super::super::Foundation:: POINTL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn EngCreateBitmap(sizl : super::super::Foundation:: SIZE, lwidth : i32, iformat : u32, fl : u32, pvbits : *mut ::core::ffi::c_void) -> super::super::Graphics::Gdi:: HBITMAP); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngCreateClip() -> *mut CLIPOBJ); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn EngCreateDeviceBitmap(dhsurf : DHSURF, sizl : super::super::Foundation:: SIZE, iformatcompat : u32) -> super::super::Graphics::Gdi:: HBITMAP); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngCreateDeviceSurface(dhsurf : DHSURF, sizl : super::super::Foundation:: SIZE, iformatcompat : u32) -> HSURF); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn EngCreatePalette(imode : u32, ccolors : u32, pulcolors : *mut u32, flred : u32, flgreen : u32, flblue : u32) -> super::super::Graphics::Gdi:: HPALETTE); +::windows_targets::link!("gdi32.dll" "system" fn EngCreateSemaphore() -> HSEMAPHORE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngDeleteClip(pco : *const CLIPOBJ) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn EngDeletePalette(hpal : super::super::Graphics::Gdi:: HPALETTE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn EngDeletePath(ppo : *mut PATHOBJ) -> ()); +::windows_targets::link!("gdi32.dll" "system" fn EngDeleteSemaphore(hsem : HSEMAPHORE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngDeleteSurface(hsurf : HSURF) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngEraseSurface(pso : *mut SURFOBJ, prcl : *mut super::super::Foundation:: RECTL, icolor : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngFillPath(pso : *mut SURFOBJ, ppo : *mut PATHOBJ, pco : *mut CLIPOBJ, pbo : *mut BRUSHOBJ, pptlbrushorg : *mut super::super::Foundation:: POINTL, mix : u32, floptions : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngFindResource(h : super::super::Foundation:: HANDLE, iname : i32, itype : i32, pulsize : *mut u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngFreeModule(h : super::super::Foundation:: HANDLE) -> ()); +::windows_targets::link!("gdi32.dll" "system" fn EngGetCurrentCodePage(oemcodepage : *mut u16, ansicodepage : *mut u16) -> ()); +::windows_targets::link!("gdi32.dll" "system" fn EngGetDriverName(hdev : HDEV) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("gdi32.dll" "system" fn EngGetPrinterDataFileName(hdev : HDEV) -> ::windows_sys::core::PWSTR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn EngGradientFill(psodest : *mut SURFOBJ, pco : *mut CLIPOBJ, pxlo : *mut XLATEOBJ, pvertex : *mut super::super::Graphics::Gdi:: TRIVERTEX, nvertex : u32, pmesh : *mut ::core::ffi::c_void, nmesh : u32, prclextents : *mut super::super::Foundation:: RECTL, pptlditherorg : *mut super::super::Foundation:: POINTL, ulmode : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngLineTo(pso : *mut SURFOBJ, pco : *mut CLIPOBJ, pbo : *mut BRUSHOBJ, x1 : i32, y1 : i32, x2 : i32, y2 : i32, prclbounds : *mut super::super::Foundation:: RECTL, mix : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngLoadModule(pwsz : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngLockSurface(hsurf : HSURF) -> *mut SURFOBJ); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngMarkBandingSurface(hsurf : HSURF) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn EngMultiByteToUnicodeN(unicodestring : ::windows_sys::core::PWSTR, maxbytesinunicodestring : u32, bytesinunicodestring : *mut u32, multibytestring : ::windows_sys::core::PCSTR, bytesinmultibytestring : u32) -> ()); +::windows_targets::link!("gdi32.dll" "system" fn EngMultiByteToWideChar(codepage : u32, widecharstring : ::windows_sys::core::PWSTR, bytesinwidecharstring : i32, multibytestring : ::windows_sys::core::PCSTR, bytesinmultibytestring : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngPaint(pso : *mut SURFOBJ, pco : *mut CLIPOBJ, pbo : *mut BRUSHOBJ, pptlbrushorg : *mut super::super::Foundation:: POINTL, mix : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn EngPlgBlt(psotrg : *mut SURFOBJ, psosrc : *mut SURFOBJ, psomsk : *mut SURFOBJ, pco : *mut CLIPOBJ, pxlo : *mut XLATEOBJ, pca : *mut super::super::Graphics::Gdi:: COLORADJUSTMENT, pptlbrushorg : *mut super::super::Foundation:: POINTL, pptfx : *mut POINTFIX, prcl : *mut super::super::Foundation:: RECTL, pptl : *mut super::super::Foundation:: POINTL, imode : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn EngQueryEMFInfo(hdev : HDEV, pemfinfo : *mut EMFINFO) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn EngQueryLocalTime(param0 : *mut ENG_TIME_FIELDS) -> ()); +::windows_targets::link!("gdi32.dll" "system" fn EngReleaseSemaphore(hsem : HSEMAPHORE) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn EngStretchBlt(psodest : *mut SURFOBJ, psosrc : *mut SURFOBJ, psomask : *mut SURFOBJ, pco : *mut CLIPOBJ, pxlo : *mut XLATEOBJ, pca : *mut super::super::Graphics::Gdi:: COLORADJUSTMENT, pptlhtorg : *mut super::super::Foundation:: POINTL, prcldest : *mut super::super::Foundation:: RECTL, prclsrc : *mut super::super::Foundation:: RECTL, pptlmask : *mut super::super::Foundation:: POINTL, imode : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn EngStretchBltROP(psodest : *mut SURFOBJ, psosrc : *mut SURFOBJ, psomask : *mut SURFOBJ, pco : *mut CLIPOBJ, pxlo : *mut XLATEOBJ, pca : *mut super::super::Graphics::Gdi:: COLORADJUSTMENT, pptlhtorg : *mut super::super::Foundation:: POINTL, prcldest : *mut super::super::Foundation:: RECTL, prclsrc : *mut super::super::Foundation:: RECTL, pptlmask : *mut super::super::Foundation:: POINTL, imode : u32, pbo : *mut BRUSHOBJ, rop4 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngStrokeAndFillPath(pso : *mut SURFOBJ, ppo : *mut PATHOBJ, pco : *mut CLIPOBJ, pxo : *mut XFORMOBJ, pbostroke : *mut BRUSHOBJ, plineattrs : *mut LINEATTRS, pbofill : *mut BRUSHOBJ, pptlbrushorg : *mut super::super::Foundation:: POINTL, mixfill : u32, floptions : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngStrokePath(pso : *mut SURFOBJ, ppo : *mut PATHOBJ, pco : *mut CLIPOBJ, pxo : *mut XFORMOBJ, pbo : *mut BRUSHOBJ, pptlbrushorg : *mut super::super::Foundation:: POINTL, plineattrs : *mut LINEATTRS, mix : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngTextOut(pso : *mut SURFOBJ, pstro : *mut STROBJ, pfo : *mut FONTOBJ, pco : *mut CLIPOBJ, prclextra : *mut super::super::Foundation:: RECTL, prclopaque : *mut super::super::Foundation:: RECTL, pbofore : *mut BRUSHOBJ, pboopaque : *mut BRUSHOBJ, pptlorg : *mut super::super::Foundation:: POINTL, mix : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngTransparentBlt(psodst : *const SURFOBJ, psosrc : *const SURFOBJ, pco : *const CLIPOBJ, pxlo : *const XLATEOBJ, prcldst : *const super::super::Foundation:: RECTL, prclsrc : *const super::super::Foundation:: RECTL, transcolor : u32, bcalledfrombitblt : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn EngUnicodeToMultiByteN(multibytestring : ::windows_sys::core::PSTR, maxbytesinmultibytestring : u32, bytesinmultibytestring : *mut u32, unicodestring : ::windows_sys::core::PCWSTR, bytesinunicodestring : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EngUnlockSurface(pso : *mut SURFOBJ) -> ()); +::windows_targets::link!("gdi32.dll" "system" fn EngWideCharToMultiByte(codepage : u32, widecharstring : ::windows_sys::core::PCWSTR, bytesinwidecharstring : i32, multibytestring : ::windows_sys::core::PSTR, bytesinmultibytestring : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FONTOBJ_cGetAllGlyphHandles(pfo : *mut FONTOBJ, phg : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FONTOBJ_cGetGlyphs(pfo : *mut FONTOBJ, imode : u32, cglyph : u32, phg : *mut u32, ppvglyph : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FONTOBJ_pQueryGlyphAttrs(pfo : *mut FONTOBJ, imode : u32) -> *mut FD_GLYPHATTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FONTOBJ_pfdg(pfo : *mut FONTOBJ) -> *mut FD_GLYPHSET); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn FONTOBJ_pifi(pfo : *const FONTOBJ) -> *mut IFIMETRICS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FONTOBJ_pvTrueTypeFontFile(pfo : *mut FONTOBJ, pcjfile : *mut u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FONTOBJ_pxoGetXform(pfo : *const FONTOBJ) -> *mut XFORMOBJ); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FONTOBJ_vGetInfo(pfo : *mut FONTOBJ, cjsize : u32, pfi : *mut FONTINFO) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAutoRotationState(pstate : *mut AR_STATE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCapabilitiesStringLength(hmonitor : super::super::Foundation:: HANDLE, pdwcapabilitiesstringlengthincharacters : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDisplayAutoRotationPreferences(porientation : *mut ORIENTATION_PREFERENCE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDisplayConfigBufferSizes(flags : QUERY_DISPLAY_CONFIG_FLAGS, numpatharrayelements : *mut u32, nummodeinfoarrayelements : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMonitorBrightness(hmonitor : super::super::Foundation:: HANDLE, pdwminimumbrightness : *mut u32, pdwcurrentbrightness : *mut u32, pdwmaximumbrightness : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMonitorCapabilities(hmonitor : super::super::Foundation:: HANDLE, pdwmonitorcapabilities : *mut u32, pdwsupportedcolortemperatures : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMonitorColorTemperature(hmonitor : super::super::Foundation:: HANDLE, pctcurrentcolortemperature : *mut MC_COLOR_TEMPERATURE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMonitorContrast(hmonitor : super::super::Foundation:: HANDLE, pdwminimumcontrast : *mut u32, pdwcurrentcontrast : *mut u32, pdwmaximumcontrast : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMonitorDisplayAreaPosition(hmonitor : super::super::Foundation:: HANDLE, ptpositiontype : MC_POSITION_TYPE, pdwminimumposition : *mut u32, pdwcurrentposition : *mut u32, pdwmaximumposition : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMonitorDisplayAreaSize(hmonitor : super::super::Foundation:: HANDLE, stsizetype : MC_SIZE_TYPE, pdwminimumwidthorheight : *mut u32, pdwcurrentwidthorheight : *mut u32, pdwmaximumwidthorheight : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMonitorRedGreenOrBlueDrive(hmonitor : super::super::Foundation:: HANDLE, dtdrivetype : MC_DRIVE_TYPE, pdwminimumdrive : *mut u32, pdwcurrentdrive : *mut u32, pdwmaximumdrive : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMonitorRedGreenOrBlueGain(hmonitor : super::super::Foundation:: HANDLE, gtgaintype : MC_GAIN_TYPE, pdwminimumgain : *mut u32, pdwcurrentgain : *mut u32, pdwmaximumgain : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMonitorTechnologyType(hmonitor : super::super::Foundation:: HANDLE, pdtydisplaytechnologytype : *mut MC_DISPLAY_TECHNOLOGY_TYPE) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetNumberOfPhysicalMonitorsFromHMONITOR(hmonitor : super::super::Graphics::Gdi:: HMONITOR, pdwnumberofphysicalmonitors : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Graphics_Direct3D9")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Direct3D9\"`"] fn GetNumberOfPhysicalMonitorsFromIDirect3DDevice9(pdirect3ddevice9 : super::super::Graphics::Direct3D9:: IDirect3DDevice9, pdwnumberofphysicalmonitors : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetPhysicalMonitorsFromHMONITOR(hmonitor : super::super::Graphics::Gdi:: HMONITOR, dwphysicalmonitorarraysize : u32, pphysicalmonitorarray : *mut PHYSICAL_MONITOR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`"] fn GetPhysicalMonitorsFromIDirect3DDevice9(pdirect3ddevice9 : super::super::Graphics::Direct3D9:: IDirect3DDevice9, dwphysicalmonitorarraysize : u32, pphysicalmonitorarray : *mut PHYSICAL_MONITOR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTimingReport(hmonitor : super::super::Foundation:: HANDLE, pmtrmonitortimingreport : *mut MC_TIMING_REPORT) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVCPFeatureAndVCPFeatureReply(hmonitor : super::super::Foundation:: HANDLE, bvcpcode : u8, pvct : *mut MC_VCP_CODE_TYPE, pdwcurrentvalue : *mut u32, pdwmaximumvalue : *mut u32) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HT_Get8BPPFormatPalette(ppaletteentry : *mut super::super::Graphics::Gdi:: PALETTEENTRY, redgamma : u16, greengamma : u16, bluegamma : u16) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn HT_Get8BPPMaskPalette(ppaletteentry : *mut super::super::Graphics::Gdi:: PALETTEENTRY, use8bppmaskpal : super::super::Foundation:: BOOL, cmymask : u8, redgamma : u16, greengamma : u16, bluegamma : u16) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PATHOBJ_bEnum(ppo : *mut PATHOBJ, ppd : *mut PATHDATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PATHOBJ_bEnumClipLines(ppo : *mut PATHOBJ, cb : u32, pcl : *mut CLIPLINE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn PATHOBJ_vEnumStart(ppo : *mut PATHOBJ) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PATHOBJ_vEnumStartClipLines(ppo : *mut PATHOBJ, pco : *mut CLIPOBJ, pso : *mut SURFOBJ, pla : *mut LINEATTRS) -> ()); +::windows_targets::link!("gdi32.dll" "system" fn PATHOBJ_vGetBounds(ppo : *mut PATHOBJ, prectfx : *mut RECTFX) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryDisplayConfig(flags : QUERY_DISPLAY_CONFIG_FLAGS, numpatharrayelements : *mut u32, patharray : *mut DISPLAYCONFIG_PATH_INFO, nummodeinfoarrayelements : *mut u32, modeinfoarray : *mut DISPLAYCONFIG_MODE_INFO, currenttopologyid : *mut DISPLAYCONFIG_TOPOLOGY_ID) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RestoreMonitorFactoryColorDefaults(hmonitor : super::super::Foundation:: HANDLE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RestoreMonitorFactoryDefaults(hmonitor : super::super::Foundation:: HANDLE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn STROBJ_bEnum(pstro : *mut STROBJ, pc : *mut u32, ppgpos : *mut *mut GLYPHPOS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn STROBJ_bEnumPositionsOnly(pstro : *mut STROBJ, pc : *mut u32, ppgpos : *mut *mut GLYPHPOS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn STROBJ_bGetAdvanceWidths(pso : *mut STROBJ, ifirst : u32, c : u32, pptqd : *mut POINTQF) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn STROBJ_dwGetCodePage(pstro : *mut STROBJ) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn STROBJ_vEnumStart(pstro : *mut STROBJ) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SaveCurrentMonitorSettings(hmonitor : super::super::Foundation:: HANDLE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SaveCurrentSettings(hmonitor : super::super::Foundation:: HANDLE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDisplayAutoRotationPreferences(orientation : ORIENTATION_PREFERENCE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDisplayConfig(numpatharrayelements : u32, patharray : *const DISPLAYCONFIG_PATH_INFO, nummodeinfoarrayelements : u32, modeinfoarray : *const DISPLAYCONFIG_MODE_INFO, flags : SET_DISPLAY_CONFIG_FLAGS) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMonitorBrightness(hmonitor : super::super::Foundation:: HANDLE, dwnewbrightness : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMonitorColorTemperature(hmonitor : super::super::Foundation:: HANDLE, ctcurrentcolortemperature : MC_COLOR_TEMPERATURE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMonitorContrast(hmonitor : super::super::Foundation:: HANDLE, dwnewcontrast : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMonitorDisplayAreaPosition(hmonitor : super::super::Foundation:: HANDLE, ptpositiontype : MC_POSITION_TYPE, dwnewposition : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMonitorDisplayAreaSize(hmonitor : super::super::Foundation:: HANDLE, stsizetype : MC_SIZE_TYPE, dwnewdisplayareawidthorheight : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMonitorRedGreenOrBlueDrive(hmonitor : super::super::Foundation:: HANDLE, dtdrivetype : MC_DRIVE_TYPE, dwnewdrive : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMonitorRedGreenOrBlueGain(hmonitor : super::super::Foundation:: HANDLE, gtgaintype : MC_GAIN_TYPE, dwnewgain : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dxva2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetVCPFeature(hmonitor : super::super::Foundation:: HANDLE, bvcpcode : u8, dwnewvalue : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn XFORMOBJ_bApplyXform(pxo : *mut XFORMOBJ, imode : u32, cpoints : u32, pvin : *mut ::core::ffi::c_void, pvout : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn XFORMOBJ_iGetXform(pxo : *const XFORMOBJ, pxform : *mut XFORML) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn XLATEOBJ_cGetPalette(pxlo : *mut XLATEOBJ, ipal : u32, cpal : u32, ppal : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn XLATEOBJ_hGetColorTransform(pxlo : *mut XLATEOBJ) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("gdi32.dll" "system" fn XLATEOBJ_iXlate(pxlo : *mut XLATEOBJ, icolor : u32) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn XLATEOBJ_piVector(pxlo : *mut XLATEOBJ) -> *mut u32); +pub type ICloneViewHelper = *mut ::core::ffi::c_void; +pub type IViewHelper = *mut ::core::ffi::c_void; +pub const AR_DISABLED: AR_STATE = 1i32; +pub const AR_DOCKED: AR_STATE = 64i32; +pub const AR_ENABLED: AR_STATE = 0i32; +pub const AR_LAPTOP: AR_STATE = 128i32; +pub const AR_MULTIMON: AR_STATE = 8i32; +pub const AR_NOSENSOR: AR_STATE = 16i32; +pub const AR_NOT_SUPPORTED: AR_STATE = 32i32; +pub const AR_REMOTESESSION: AR_STATE = 4i32; +pub const AR_SUPPRESSED: AR_STATE = 2i32; +pub const BITMAP_ARRAY_BYTE: u32 = 3u32; +pub const BITMAP_BITS_BYTE_ALIGN: u32 = 8u32; +pub const BITMAP_BITS_PIXEL: u32 = 1u32; +pub const BITMAP_BITS_WORD_ALIGN: u32 = 16u32; +pub const BITMAP_PLANES: u32 = 1u32; +pub const BMF_16BPP: i32 = 4i32; +pub const BMF_1BPP: i32 = 1i32; +pub const BMF_24BPP: i32 = 5i32; +pub const BMF_32BPP: i32 = 6i32; +pub const BMF_4BPP: i32 = 2i32; +pub const BMF_4RLE: i32 = 7i32; +pub const BMF_8BPP: i32 = 3i32; +pub const BMF_8RLE: i32 = 8i32; +pub const BMF_ACC_NOTIFY: u32 = 32768u32; +pub const BMF_DONTCACHE: u32 = 4u32; +pub const BMF_JPEG: i32 = 9i32; +pub const BMF_KMSECTION: u32 = 16u32; +pub const BMF_NOTSYSMEM: u32 = 32u32; +pub const BMF_NOZEROINIT: u32 = 2u32; +pub const BMF_PNG: i32 = 10i32; +pub const BMF_RESERVED: u32 = 15872u32; +pub const BMF_RMT_ENTER: u32 = 16384u32; +pub const BMF_TEMP_ALPHA: u32 = 256u32; +pub const BMF_TOPDOWN: u32 = 1u32; +pub const BMF_UMPDMEM: u32 = 128u32; +pub const BMF_USERMEM: u32 = 8u32; +pub const BMF_WINDOW_BLT: u32 = 64u32; +pub const BRIGHTNESS_INTERFACE_VERSION_1: BRIGHTNESS_INTERFACE_VERSION = 1i32; +pub const BRIGHTNESS_INTERFACE_VERSION_2: BRIGHTNESS_INTERFACE_VERSION = 2i32; +pub const BRIGHTNESS_INTERFACE_VERSION_3: BRIGHTNESS_INTERFACE_VERSION = 3i32; +pub const BRIGHTNESS_MAX_LEVEL_COUNT: u32 = 103u32; +pub const BRIGHTNESS_MAX_NIT_RANGE_COUNT: u32 = 16u32; +pub const BR_CMYKCOLOR: u32 = 4u32; +pub const BR_DEVICE_ICM: u32 = 1u32; +pub const BR_HOST_ICM: u32 = 2u32; +pub const BR_ORIGCOLOR: u32 = 8u32; +pub const BacklightOptimizationDesktop: BACKLIGHT_OPTIMIZATION_LEVEL = 1i32; +pub const BacklightOptimizationDimmed: BACKLIGHT_OPTIMIZATION_LEVEL = 3i32; +pub const BacklightOptimizationDisable: BACKLIGHT_OPTIMIZATION_LEVEL = 0i32; +pub const BacklightOptimizationDynamic: BACKLIGHT_OPTIMIZATION_LEVEL = 2i32; +pub const BacklightOptimizationEDR: BACKLIGHT_OPTIMIZATION_LEVEL = 4i32; +pub const BlackScreenDiagnosticsData: BlackScreenDiagnosticsCalloutParam = 1i32; +pub const BlackScreenDisplayRecovery: BlackScreenDiagnosticsCalloutParam = 2i32; +pub const CDBEX_CROSSADAPTER: u32 = 8u32; +pub const CDBEX_DXINTEROP: u32 = 2u32; +pub const CDBEX_NTSHAREDSURFACEHANDLE: u32 = 4u32; +pub const CDBEX_REDIRECTION: u32 = 1u32; +pub const CDBEX_REUSE: u32 = 16u32; +pub const CD_ANY: i32 = 4i32; +pub const CD_LEFTDOWN: i32 = 1i32; +pub const CD_LEFTUP: i32 = 3i32; +pub const CD_LEFTWARDS: i32 = 1i32; +pub const CD_RIGHTDOWN: i32 = 0i32; +pub const CD_RIGHTUP: i32 = 2i32; +pub const CD_UPWARDS: i32 = 2i32; +pub const CHAR_TYPE_LEADING: u32 = 2u32; +pub const CHAR_TYPE_SBCS: u32 = 0u32; +pub const CHAR_TYPE_TRAILING: u32 = 3u32; +pub const COLORSPACE_TRANSFORM_DATA_TYPE_FIXED_POINT: COLORSPACE_TRANSFORM_DATA_TYPE = 0i32; +pub const COLORSPACE_TRANSFORM_DATA_TYPE_FLOAT: COLORSPACE_TRANSFORM_DATA_TYPE = 1i32; +pub const COLORSPACE_TRANSFORM_TYPE_DEFAULT: COLORSPACE_TRANSFORM_TYPE = 1i32; +pub const COLORSPACE_TRANSFORM_TYPE_DXGI_1: COLORSPACE_TRANSFORM_TYPE = 3i32; +pub const COLORSPACE_TRANSFORM_TYPE_MATRIX_3x4: COLORSPACE_TRANSFORM_TYPE = 4i32; +pub const COLORSPACE_TRANSFORM_TYPE_MATRIX_V2: COLORSPACE_TRANSFORM_TYPE = 5i32; +pub const COLORSPACE_TRANSFORM_TYPE_RGB256x3x16: COLORSPACE_TRANSFORM_TYPE = 2i32; +pub const COLORSPACE_TRANSFORM_TYPE_UNINITIALIZED: COLORSPACE_TRANSFORM_TYPE = 0i32; +pub const COLORSPACE_TRANSFORM_VERSION_1: COLORSPACE_TRANSFORM_TARGET_CAPS_VERSION = 1i32; +pub const COLORSPACE_TRANSFORM_VERSION_DEFAULT: COLORSPACE_TRANSFORM_TARGET_CAPS_VERSION = 0i32; +pub const COLORSPACE_TRANSFORM_VERSION_NOT_SUPPORTED: COLORSPACE_TRANSFORM_TARGET_CAPS_VERSION = 0i32; +pub const CT_RECTANGLES: i32 = 0i32; +pub const ColorSpaceTransformStageControl_Bypass: COLORSPACE_TRANSFORM_STAGE_CONTROL = 2i32; +pub const ColorSpaceTransformStageControl_Enable: COLORSPACE_TRANSFORM_STAGE_CONTROL = 1i32; +pub const ColorSpaceTransformStageControl_No_Change: COLORSPACE_TRANSFORM_STAGE_CONTROL = 0i32; +pub const DCR_DRIVER: u32 = 1u32; +pub const DCR_HALFTONE: u32 = 2u32; +pub const DCR_SOLID: u32 = 0u32; +pub const DCT_DEFAULT: DSI_CONTROL_TRANSMISSION_MODE = 0i32; +pub const DCT_FORCE_HIGH_PERFORMANCE: DSI_CONTROL_TRANSMISSION_MODE = 2i32; +pub const DCT_FORCE_LOW_POWER: DSI_CONTROL_TRANSMISSION_MODE = 1i32; +pub const DC_COMPLEX: u32 = 3u32; +pub const DC_RECT: u32 = 1u32; +pub const DC_TRIVIAL: u32 = 0u32; +pub const DDI_DRIVER_VERSION_NT4: u32 = 131072u32; +pub const DDI_DRIVER_VERSION_NT5: u32 = 196608u32; +pub const DDI_DRIVER_VERSION_NT5_01: u32 = 196864u32; +pub const DDI_DRIVER_VERSION_NT5_01_SP1: u32 = 196865u32; +pub const DDI_DRIVER_VERSION_SP3: u32 = 131075u32; +pub const DDI_ERROR: u32 = 4294967295u32; +pub const DD_FULLSCREEN_VIDEO_DEVICE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Device\\FSVideo"); +pub const DEVHTADJF_ADDITIVE_DEVICE: u32 = 2u32; +pub const DEVHTADJF_COLOR_DEVICE: u32 = 1u32; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_ActivityId: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xc50a3f10_aa5c_4247_b830_d6a6f8eaa310), pid: 4 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_AdapterLuid: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xc50a3f10_aa5c_4247_b830_d6a6f8eaa310), pid: 3 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_TerminalLuid: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xc50a3f10_aa5c_4247_b830_d6a6f8eaa310), pid: 2 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_IndirectDisplay: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xc50a3f10_aa5c_4247_b830_d6a6f8eaa310), pid: 1 }; +pub const DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME: DISPLAYCONFIG_DEVICE_INFO_TYPE = 4i32; +pub const DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO: DISPLAYCONFIG_DEVICE_INFO_TYPE = 9i32; +pub const DISPLAYCONFIG_DEVICE_INFO_GET_MONITOR_SPECIALIZATION: DISPLAYCONFIG_DEVICE_INFO_TYPE = 12i32; +pub const DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL: DISPLAYCONFIG_DEVICE_INFO_TYPE = 11i32; +pub const DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME: DISPLAYCONFIG_DEVICE_INFO_TYPE = 1i32; +pub const DISPLAYCONFIG_DEVICE_INFO_GET_SUPPORT_VIRTUAL_RESOLUTION: DISPLAYCONFIG_DEVICE_INFO_TYPE = 7i32; +pub const DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE: DISPLAYCONFIG_DEVICE_INFO_TYPE = 6i32; +pub const DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME: DISPLAYCONFIG_DEVICE_INFO_TYPE = 2i32; +pub const DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE: DISPLAYCONFIG_DEVICE_INFO_TYPE = 3i32; +pub const DISPLAYCONFIG_DEVICE_INFO_SET_ADVANCED_COLOR_STATE: DISPLAYCONFIG_DEVICE_INFO_TYPE = 10i32; +pub const DISPLAYCONFIG_DEVICE_INFO_SET_MONITOR_SPECIALIZATION: DISPLAYCONFIG_DEVICE_INFO_TYPE = 13i32; +pub const DISPLAYCONFIG_DEVICE_INFO_SET_SUPPORT_VIRTUAL_RESOLUTION: DISPLAYCONFIG_DEVICE_INFO_TYPE = 8i32; +pub const DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE: DISPLAYCONFIG_DEVICE_INFO_TYPE = 5i32; +pub const DISPLAYCONFIG_MODE_INFO_TYPE_DESKTOP_IMAGE: DISPLAYCONFIG_MODE_INFO_TYPE = 3i32; +pub const DISPLAYCONFIG_MODE_INFO_TYPE_SOURCE: DISPLAYCONFIG_MODE_INFO_TYPE = 1i32; +pub const DISPLAYCONFIG_MODE_INFO_TYPE_TARGET: DISPLAYCONFIG_MODE_INFO_TYPE = 2i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPONENT_VIDEO: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 3i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPOSITE_VIDEO: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 2i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 11i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 10i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_USB_TUNNEL: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 18i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 4i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 8i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 0i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 5i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_VIRTUAL: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 17i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_WIRED: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 16i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = -2147483648i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 6i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 15i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = -1i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 9i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 14i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SVIDEO: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 1i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 13i32; +pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 12i32; +pub const DISPLAYCONFIG_PIXELFORMAT_16BPP: DISPLAYCONFIG_PIXELFORMAT = 2i32; +pub const DISPLAYCONFIG_PIXELFORMAT_24BPP: DISPLAYCONFIG_PIXELFORMAT = 3i32; +pub const DISPLAYCONFIG_PIXELFORMAT_32BPP: DISPLAYCONFIG_PIXELFORMAT = 4i32; +pub const DISPLAYCONFIG_PIXELFORMAT_8BPP: DISPLAYCONFIG_PIXELFORMAT = 1i32; +pub const DISPLAYCONFIG_PIXELFORMAT_NONGDI: DISPLAYCONFIG_PIXELFORMAT = 5i32; +pub const DISPLAYCONFIG_ROTATION_IDENTITY: DISPLAYCONFIG_ROTATION = 1i32; +pub const DISPLAYCONFIG_ROTATION_ROTATE180: DISPLAYCONFIG_ROTATION = 3i32; +pub const DISPLAYCONFIG_ROTATION_ROTATE270: DISPLAYCONFIG_ROTATION = 4i32; +pub const DISPLAYCONFIG_ROTATION_ROTATE90: DISPLAYCONFIG_ROTATION = 2i32; +pub const DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX: DISPLAYCONFIG_SCALING = 4i32; +pub const DISPLAYCONFIG_SCALING_CENTERED: DISPLAYCONFIG_SCALING = 2i32; +pub const DISPLAYCONFIG_SCALING_CUSTOM: DISPLAYCONFIG_SCALING = 5i32; +pub const DISPLAYCONFIG_SCALING_IDENTITY: DISPLAYCONFIG_SCALING = 1i32; +pub const DISPLAYCONFIG_SCALING_PREFERRED: DISPLAYCONFIG_SCALING = 128i32; +pub const DISPLAYCONFIG_SCALING_STRETCHED: DISPLAYCONFIG_SCALING = 3i32; +pub const DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED: DISPLAYCONFIG_SCANLINE_ORDERING = 2i32; +pub const DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_LOWERFIELDFIRST: DISPLAYCONFIG_SCANLINE_ORDERING = 3i32; +pub const DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST: DISPLAYCONFIG_SCANLINE_ORDERING = 2i32; +pub const DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE: DISPLAYCONFIG_SCANLINE_ORDERING = 1i32; +pub const DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED: DISPLAYCONFIG_SCANLINE_ORDERING = 0i32; +pub const DISPLAYCONFIG_TOPOLOGY_CLONE: DISPLAYCONFIG_TOPOLOGY_ID = 2i32; +pub const DISPLAYCONFIG_TOPOLOGY_EXTEND: DISPLAYCONFIG_TOPOLOGY_ID = 4i32; +pub const DISPLAYCONFIG_TOPOLOGY_EXTERNAL: DISPLAYCONFIG_TOPOLOGY_ID = 8i32; +pub const DISPLAYCONFIG_TOPOLOGY_INTERNAL: DISPLAYCONFIG_TOPOLOGY_ID = 1i32; +pub const DISPLAYPOLICY_AC: u32 = 1u32; +pub const DISPLAYPOLICY_DC: u32 = 2u32; +pub const DM_DEFAULT: u32 = 1u32; +pub const DM_MONOCHROME: u32 = 2u32; +pub const DN_ACCELERATION_LEVEL: u32 = 1u32; +pub const DN_ASSOCIATE_WINDOW: u32 = 5u32; +pub const DN_COMPOSITION_CHANGED: u32 = 6u32; +pub const DN_DEVICE_ORIGIN: u32 = 2u32; +pub const DN_DRAWING_BEGIN: u32 = 4u32; +pub const DN_DRAWING_BEGIN_APIBITMAP: u32 = 7u32; +pub const DN_SLEEP_MODE: u32 = 3u32; +pub const DN_SURFOBJ_DESTRUCTION: u32 = 8u32; +pub const DRD_ERROR: u32 = 1u32; +pub const DRD_SUCCESS: u32 = 0u32; +pub const DRH_APIBITMAP: u32 = 1u32; +pub const DRVQUERY_USERMODE: u32 = 1u32; +pub const DSI_CHECKSUM_ERROR_CORRECTED: u32 = 256u32; +pub const DSI_CHECKSUM_ERROR_NOT_CORRECTED: u32 = 512u32; +pub const DSI_CONTENTION_DETECTED: u32 = 128u32; +pub const DSI_DSI_DATA_TYPE_NOT_RECOGNIZED: u32 = 2048u32; +pub const DSI_DSI_PROTOCOL_VIOLATION: u32 = 32768u32; +pub const DSI_DSI_VC_ID_INVALID: u32 = 4096u32; +pub const DSI_EOT_SYNC_ERROR: u32 = 4u32; +pub const DSI_ESCAPE_MODE_ENTRY_COMMAND_ERROR: u32 = 8u32; +pub const DSI_FALSE_CONTROL_ERROR: u32 = 64u32; +pub const DSI_INVALID_PACKET_INDEX: u32 = 255u32; +pub const DSI_INVALID_TRANSMISSION_LENGTH: u32 = 8192u32; +pub const DSI_LONG_PACKET_PAYLOAD_CHECKSUM_ERROR: u32 = 1024u32; +pub const DSI_LOW_POWER_TRANSMIT_SYNC_ERROR: u32 = 16u32; +pub const DSI_PACKET_EMBEDDED_PAYLOAD_SIZE: u32 = 8u32; +pub const DSI_PERIPHERAL_TIMEOUT_ERROR: u32 = 32u32; +pub const DSI_SOT_ERROR: u32 = 1u32; +pub const DSI_SOT_SYNC_ERROR: u32 = 2u32; +pub const DSS_FLUSH_EVENT: u32 = 2u32; +pub const DSS_RESERVED: u32 = 4u32; +pub const DSS_RESERVED1: u32 = 8u32; +pub const DSS_RESERVED2: u32 = 16u32; +pub const DSS_TIMER_EVENT: u32 = 1u32; +pub const DXGK_WIN32K_PARAM_FLAG_DISABLEVIEW: u32 = 4u32; +pub const DXGK_WIN32K_PARAM_FLAG_MODESWITCH: u32 = 2u32; +pub const DXGK_WIN32K_PARAM_FLAG_UPDATEREGISTRY: u32 = 1u32; +pub const ECS_REDRAW: u32 = 2u32; +pub const ECS_TEARDOWN: u32 = 1u32; +pub const ED_ABORTDOC: u32 = 1u32; +pub const EHN_ERROR: u32 = 1u32; +pub const EHN_RESTORED: u32 = 0u32; +pub const ENDCAP_BUTT: i32 = 2i32; +pub const ENDCAP_ROUND: i32 = 0i32; +pub const ENDCAP_SQUARE: i32 = 1i32; +pub const ENG_FNT_CACHE_READ_FAULT: u32 = 1u32; +pub const ENG_FNT_CACHE_WRITE_FAULT: u32 = 2u32; +pub const EngNumberOfProcessors: ENG_SYSTEM_ATTRIBUTE = 2i32; +pub const EngOptimumAvailableSystemMemory: ENG_SYSTEM_ATTRIBUTE = 4i32; +pub const EngOptimumAvailableUserMemory: ENG_SYSTEM_ATTRIBUTE = 3i32; +pub const EngProcessorFeature: ENG_SYSTEM_ATTRIBUTE = 1i32; +pub const FC_COMPLEX: u32 = 3u32; +pub const FC_RECT: u32 = 1u32; +pub const FC_RECT4: u32 = 2u32; +pub const FDM_TYPE_BM_SIDE_CONST: u32 = 1u32; +pub const FDM_TYPE_CHAR_INC_EQUAL_BM_BASE: u32 = 4u32; +pub const FDM_TYPE_CONST_BEARINGS: u32 = 16u32; +pub const FDM_TYPE_MAXEXT_EQUAL_BM_SIDE: u32 = 2u32; +pub const FDM_TYPE_ZERO_BEARINGS: u32 = 8u32; +pub const FD_ERROR: u32 = 4294967295u32; +pub const FD_NEGATIVE_FONT: i32 = 1i32; +pub const FF_IGNORED_SIGNATURE: u32 = 2u32; +pub const FF_SIGNATURE_VERIFIED: u32 = 1u32; +pub const FL_NONPAGED_MEMORY: u32 = 2u32; +pub const FL_NON_SESSION: u32 = 4u32; +pub const FL_ZERO_MEMORY: u32 = 1u32; +pub const FM_EDITABLE_EMBED: u32 = 8u32; +pub const FM_INFO_16BPP: u32 = 256u32; +pub const FM_INFO_1BPP: u32 = 32u32; +pub const FM_INFO_24BPP: u32 = 512u32; +pub const FM_INFO_32BPP: u32 = 1024u32; +pub const FM_INFO_4BPP: u32 = 64u32; +pub const FM_INFO_8BPP: u32 = 128u32; +pub const FM_INFO_90DEGREE_ROTATIONS: u32 = 2097152u32; +pub const FM_INFO_ANISOTROPIC_SCALING_ONLY: u32 = 33554432u32; +pub const FM_INFO_ARB_XFORMS: u32 = 16u32; +pub const FM_INFO_CONSTANT_WIDTH: u32 = 4096u32; +pub const FM_INFO_DBCS_FIXED_PITCH: u32 = 268435456u32; +pub const FM_INFO_DO_NOT_ENUMERATE: u32 = 8388608u32; +pub const FM_INFO_DSIG: u32 = 262144u32; +pub const FM_INFO_FAMILY_EQUIV: u32 = 134217728u32; +pub const FM_INFO_IGNORE_TC_RA_ABLE: u32 = 1073741824u32; +pub const FM_INFO_INTEGER_WIDTH: u32 = 2048u32; +pub const FM_INFO_INTEGRAL_SCALING: u32 = 1048576u32; +pub const FM_INFO_ISOTROPIC_SCALING_ONLY: u32 = 16777216u32; +pub const FM_INFO_NONNEGATIVE_AC: u32 = 536870912u32; +pub const FM_INFO_NOT_CONTIGUOUS: u32 = 8192u32; +pub const FM_INFO_OPTICALLY_FIXED_PITCH: u32 = 4194304u32; +pub const FM_INFO_RETURNS_BITMAPS: u32 = 131072u32; +pub const FM_INFO_RETURNS_OUTLINES: u32 = 32768u32; +pub const FM_INFO_RETURNS_STROKES: u32 = 65536u32; +pub const FM_INFO_RIGHT_HANDED: u32 = 524288u32; +pub const FM_INFO_TECH_BITMAP: u32 = 2u32; +pub const FM_INFO_TECH_CFF: u32 = 67108864u32; +pub const FM_INFO_TECH_MM: u32 = 16384u32; +pub const FM_INFO_TECH_OUTLINE_NOT_TRUETYPE: u32 = 8u32; +pub const FM_INFO_TECH_STROKE: u32 = 4u32; +pub const FM_INFO_TECH_TRUETYPE: u32 = 1u32; +pub const FM_INFO_TECH_TYPE1: u32 = 2147483648u32; +pub const FM_NO_EMBEDDING: u32 = 2u32; +pub const FM_PANOSE_CULTURE_LATIN: u32 = 0u32; +pub const FM_READONLY_EMBED: u32 = 4u32; +pub const FM_SEL_BOLD: u32 = 32u32; +pub const FM_SEL_ITALIC: u32 = 1u32; +pub const FM_SEL_NEGATIVE: u32 = 4u32; +pub const FM_SEL_OUTLINED: u32 = 8u32; +pub const FM_SEL_REGULAR: u32 = 64u32; +pub const FM_SEL_STRIKEOUT: u32 = 16u32; +pub const FM_SEL_UNDERSCORE: u32 = 2u32; +pub const FM_TYPE_LICENSED: u32 = 2u32; +pub const FM_VERSION_NUMBER: u32 = 0u32; +pub const FO_ATTR_MODE_ROTATE: u32 = 1u32; +pub const FO_CFF: u32 = 1048576u32; +pub const FO_CLEARTYPENATURAL_X: u32 = 1073741824u32; +pub const FO_CLEARTYPE_X: u32 = 268435456u32; +pub const FO_CLEARTYPE_Y: u32 = 536870912u32; +pub const FO_DBCS_FONT: u32 = 16777216u32; +pub const FO_DEVICE_FONT: i32 = 1i32; +pub const FO_EM_HEIGHT: u32 = 32768u32; +pub const FO_GLYPHBITS: i32 = 1i32; +pub const FO_GRAY16: u32 = 65536u32; +pub const FO_HGLYPHS: i32 = 0i32; +pub const FO_MULTIPLEMASTER: u32 = 4194304u32; +pub const FO_NOCLEARTYPE: u32 = 33554432u32; +pub const FO_NOGRAY16: u32 = 131072u32; +pub const FO_NOHINTS: u32 = 262144u32; +pub const FO_NO_CHOICE: u32 = 524288u32; +pub const FO_OUTLINE_CAPABLE: i32 = 2i32; +pub const FO_PATHOBJ: i32 = 2i32; +pub const FO_POSTSCRIPT: u32 = 2097152u32; +pub const FO_SIM_BOLD: u32 = 8192u32; +pub const FO_SIM_ITALIC: u32 = 16384u32; +pub const FO_VERT_FACE: u32 = 8388608u32; +pub const FP_ALTERNATEMODE: i32 = 1i32; +pub const FP_WINDINGMODE: i32 = 2i32; +pub const GCAPS2_ACC_DRIVER: u32 = 32768u32; +pub const GCAPS2_ALPHACURSOR: u32 = 32u32; +pub const GCAPS2_BITMAPEXREUSE: u32 = 65536u32; +pub const GCAPS2_CHANGEGAMMARAMP: u32 = 16u32; +pub const GCAPS2_CLEARTYPE: u32 = 16384u32; +pub const GCAPS2_EXCLUDELAYERED: u32 = 2048u32; +pub const GCAPS2_ICD_MULTIMON: u32 = 256u32; +pub const GCAPS2_INCLUDEAPIBITMAPS: u32 = 4096u32; +pub const GCAPS2_JPEGSRC: u32 = 1u32; +pub const GCAPS2_MOUSETRAILS: u32 = 512u32; +pub const GCAPS2_PNGSRC: u32 = 8u32; +pub const GCAPS2_REMOTEDRIVER: u32 = 1024u32; +pub const GCAPS2_RESERVED1: u32 = 1024u32; +pub const GCAPS2_SHOWHIDDENPOINTER: u32 = 8192u32; +pub const GCAPS2_SYNCFLUSH: u32 = 64u32; +pub const GCAPS2_SYNCTIMER: u32 = 128u32; +pub const GCAPS2_xxxx: u32 = 2u32; +pub const GCAPS_ALTERNATEFILL: u32 = 4u32; +pub const GCAPS_ARBRUSHOPAQUE: u32 = 32768u32; +pub const GCAPS_ARBRUSHTEXT: u32 = 268435456u32; +pub const GCAPS_ASYNCCHANGE: u32 = 2048u32; +pub const GCAPS_ASYNCMOVE: u32 = 4096u32; +pub const GCAPS_BEZIERS: u32 = 1u32; +pub const GCAPS_CMYKCOLOR: u32 = 67108864u32; +pub const GCAPS_COLOR_DITHER: u32 = 32u32; +pub const GCAPS_DIRECTDRAW: u32 = 16384u32; +pub const GCAPS_DITHERONREALIZE: u32 = 2097152u32; +pub const GCAPS_DONTJOURNAL: u32 = 8192u32; +pub const GCAPS_FONT_RASTERIZER: u32 = 1073741824u32; +pub const GCAPS_FORCEDITHER: u32 = 8388608u32; +pub const GCAPS_GEOMETRICWIDE: u32 = 2u32; +pub const GCAPS_GRAY16: u32 = 16777216u32; +pub const GCAPS_HALFTONE: u32 = 16u32; +pub const GCAPS_HIGHRESTEXT: u32 = 262144u32; +pub const GCAPS_HORIZSTRIKE: u32 = 64u32; +pub const GCAPS_ICM: u32 = 33554432u32; +pub const GCAPS_LAYERED: u32 = 134217728u32; +pub const GCAPS_MONO_DITHER: u32 = 1024u32; +pub const GCAPS_NO64BITMEMACCESS: u32 = 4194304u32; +pub const GCAPS_NUP: u32 = 2147483648u32; +pub const GCAPS_OPAQUERECT: u32 = 256u32; +pub const GCAPS_PALMANAGED: u32 = 524288u32; +pub const GCAPS_PANNING: u32 = 65536u32; +pub const GCAPS_SCREENPRECISION: u32 = 536870912u32; +pub const GCAPS_VECTORFONT: u32 = 512u32; +pub const GCAPS_VERTSTRIKE: u32 = 128u32; +pub const GCAPS_WINDINGFILL: u32 = 8u32; +pub const GDI_DRIVER_VERSION: u32 = 16384u32; +pub const GETCONNECTEDIDS_SOURCE: u32 = 1u32; +pub const GETCONNECTEDIDS_TARGET: u32 = 0u32; +pub const GS_16BIT_HANDLES: u32 = 4u32; +pub const GS_8BIT_HANDLES: u32 = 2u32; +pub const GS_UNICODE_HANDLES: u32 = 1u32; +pub const GUID_DEVINTERFACE_DISPLAY_ADAPTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5b45201d_f2f2_4f3b_85bb_30ff1f953599); +pub const GUID_DEVINTERFACE_MONITOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe6f07b5f_ee97_4a90_b076_33f57bf4eaa7); +pub const GUID_DEVINTERFACE_VIDEO_OUTPUT_ARRIVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ad9e4f0_f88d_4360_bab9_4c2d55e564cd); +pub const GUID_DISPLAY_DEVICE_ARRIVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ca05180_a699_450a_9a0c_de4fbe3ddd89); +pub const GUID_MONITOR_OVERRIDE_PSEUDO_SPECIALIZED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf196c02f_f86f_4f9a_aa15_e9cebdfe3b96); +pub const GX_GENERAL: i32 = 3i32; +pub const GX_IDENTITY: i32 = 0i32; +pub const GX_OFFSET: i32 = 1i32; +pub const GX_SCALE: i32 = 2i32; +pub const HOOK_ALPHABLEND: u32 = 65536u32; +pub const HOOK_BITBLT: u32 = 1u32; +pub const HOOK_COPYBITS: u32 = 1024u32; +pub const HOOK_FILLPATH: u32 = 64u32; +pub const HOOK_FLAGS: u32 = 243199u32; +pub const HOOK_GRADIENTFILL: u32 = 131072u32; +pub const HOOK_LINETO: u32 = 256u32; +pub const HOOK_MOVEPANNING: u32 = 2048u32; +pub const HOOK_PAINT: u32 = 16u32; +pub const HOOK_PLGBLT: u32 = 4u32; +pub const HOOK_STRETCHBLT: u32 = 2u32; +pub const HOOK_STRETCHBLTROP: u32 = 8192u32; +pub const HOOK_STROKEANDFILLPATH: u32 = 128u32; +pub const HOOK_STROKEPATH: u32 = 32u32; +pub const HOOK_SYNCHRONIZE: u32 = 4096u32; +pub const HOOK_SYNCHRONIZEACCESS: u32 = 16384u32; +pub const HOOK_TEXTOUT: u32 = 8u32; +pub const HOOK_TRANSPARENTBLT: u32 = 32768u32; +pub const HOST_DSI_BAD_TRANSMISSION_MODE: u32 = 4096u32; +pub const HOST_DSI_DEVICE_NOT_READY: u32 = 1u32; +pub const HOST_DSI_DEVICE_RESET: u32 = 4u32; +pub const HOST_DSI_DRIVER_REJECTED_PACKET: u32 = 1024u32; +pub const HOST_DSI_INTERFACE_RESET: u32 = 2u32; +pub const HOST_DSI_INVALID_TRANSMISSION: u32 = 256u32; +pub const HOST_DSI_OS_REJECTED_PACKET: u32 = 512u32; +pub const HOST_DSI_TRANSMISSION_CANCELLED: u32 = 16u32; +pub const HOST_DSI_TRANSMISSION_DROPPED: u32 = 32u32; +pub const HOST_DSI_TRANSMISSION_TIMEOUT: u32 = 64u32; +pub const HS_DDI_MAX: u32 = 6u32; +pub const HT_FLAG_8BPP_CMY332_MASK: u32 = 4278190080u32; +pub const HT_FLAG_ADDITIVE_PRIMS: u32 = 4u32; +pub const HT_FLAG_DO_DEVCLR_XFORM: u32 = 128u32; +pub const HT_FLAG_HAS_BLACK_DYE: u32 = 2u32; +pub const HT_FLAG_INK_ABSORPTION_IDX0: u32 = 0u32; +pub const HT_FLAG_INK_ABSORPTION_IDX1: u32 = 32u32; +pub const HT_FLAG_INK_ABSORPTION_IDX2: u32 = 64u32; +pub const HT_FLAG_INK_ABSORPTION_IDX3: u32 = 96u32; +pub const HT_FLAG_INK_ABSORPTION_INDICES: u32 = 96u32; +pub const HT_FLAG_INK_HIGH_ABSORPTION: u32 = 16u32; +pub const HT_FLAG_INVERT_8BPP_BITMASK_IDX: u32 = 1024u32; +pub const HT_FLAG_LOWER_INK_ABSORPTION: u32 = 64u32; +pub const HT_FLAG_LOWEST_INK_ABSORPTION: u32 = 96u32; +pub const HT_FLAG_LOW_INK_ABSORPTION: u32 = 32u32; +pub const HT_FLAG_NORMAL_INK_ABSORPTION: u32 = 0u32; +pub const HT_FLAG_OUTPUT_CMY: u32 = 256u32; +pub const HT_FLAG_PRINT_DRAFT_MODE: u32 = 512u32; +pub const HT_FLAG_SQUARE_DEVICE_PEL: u32 = 1u32; +pub const HT_FLAG_USE_8BPP_BITMASK: u32 = 8u32; +pub const HT_FORMAT_16BPP: u32 = 5u32; +pub const HT_FORMAT_1BPP: u32 = 0u32; +pub const HT_FORMAT_24BPP: u32 = 6u32; +pub const HT_FORMAT_32BPP: u32 = 7u32; +pub const HT_FORMAT_4BPP: u32 = 2u32; +pub const HT_FORMAT_4BPP_IRGB: u32 = 3u32; +pub const HT_FORMAT_8BPP: u32 = 4u32; +pub const HT_PATSIZE_10x10: u32 = 8u32; +pub const HT_PATSIZE_10x10_M: u32 = 9u32; +pub const HT_PATSIZE_12x12: u32 = 10u32; +pub const HT_PATSIZE_12x12_M: u32 = 11u32; +pub const HT_PATSIZE_14x14: u32 = 12u32; +pub const HT_PATSIZE_14x14_M: u32 = 13u32; +pub const HT_PATSIZE_16x16: u32 = 14u32; +pub const HT_PATSIZE_16x16_M: u32 = 15u32; +pub const HT_PATSIZE_2x2: u32 = 0u32; +pub const HT_PATSIZE_2x2_M: u32 = 1u32; +pub const HT_PATSIZE_4x4: u32 = 2u32; +pub const HT_PATSIZE_4x4_M: u32 = 3u32; +pub const HT_PATSIZE_6x6: u32 = 4u32; +pub const HT_PATSIZE_6x6_M: u32 = 5u32; +pub const HT_PATSIZE_8x8: u32 = 6u32; +pub const HT_PATSIZE_8x8_M: u32 = 7u32; +pub const HT_PATSIZE_DEFAULT: u32 = 17u32; +pub const HT_PATSIZE_MAX_INDEX: u32 = 18u32; +pub const HT_PATSIZE_SUPERCELL: u32 = 16u32; +pub const HT_PATSIZE_SUPERCELL_M: u32 = 17u32; +pub const HT_PATSIZE_USER: u32 = 18u32; +pub const HT_USERPAT_CX_MAX: u32 = 256u32; +pub const HT_USERPAT_CX_MIN: u32 = 4u32; +pub const HT_USERPAT_CY_MAX: u32 = 256u32; +pub const HT_USERPAT_CY_MIN: u32 = 4u32; +pub const IGRF_RGB_256BYTES: u32 = 0u32; +pub const IGRF_RGB_256WORDS: u32 = 1u32; +pub const INDEX_DrvAccumulateD3DDirtyRect: i32 = 98i32; +pub const INDEX_DrvAlphaBlend: i32 = 71i32; +pub const INDEX_DrvAssertMode: i32 = 5i32; +pub const INDEX_DrvAssociateSharedSurface: i32 = 96i32; +pub const INDEX_DrvBitBlt: i32 = 18i32; +pub const INDEX_DrvCompletePDEV: i32 = 1i32; +pub const INDEX_DrvCopyBits: i32 = 19i32; +pub const INDEX_DrvCreateDeviceBitmap: i32 = 10i32; +pub const INDEX_DrvCreateDeviceBitmapEx: i32 = 94i32; +pub const INDEX_DrvDeleteDeviceBitmap: i32 = 11i32; +pub const INDEX_DrvDeleteDeviceBitmapEx: i32 = 95i32; +pub const INDEX_DrvDeriveSurface: i32 = 85i32; +pub const INDEX_DrvDescribePixelFormat: i32 = 55i32; +pub const INDEX_DrvDestroyFont: i32 = 43i32; +pub const INDEX_DrvDisableDirectDraw: i32 = 61i32; +pub const INDEX_DrvDisableDriver: i32 = 8i32; +pub const INDEX_DrvDisablePDEV: i32 = 2i32; +pub const INDEX_DrvDisableSurface: i32 = 4i32; +pub const INDEX_DrvDitherColor: i32 = 13i32; +pub const INDEX_DrvDrawEscape: i32 = 25i32; +pub const INDEX_DrvEnableDirectDraw: i32 = 60i32; +pub const INDEX_DrvEnablePDEV: i32 = 0i32; +pub const INDEX_DrvEnableSurface: i32 = 3i32; +pub const INDEX_DrvEndDoc: i32 = 34i32; +pub const INDEX_DrvEndDxInterop: i32 = 100i32; +pub const INDEX_DrvEscape: i32 = 24i32; +pub const INDEX_DrvFillPath: i32 = 15i32; +pub const INDEX_DrvFontManagement: i32 = 47i32; +pub const INDEX_DrvFree: i32 = 42i32; +pub const INDEX_DrvGetDirectDrawInfo: i32 = 59i32; +pub const INDEX_DrvGetGlyphMode: i32 = 37i32; +pub const INDEX_DrvGetModes: i32 = 41i32; +pub const INDEX_DrvGetSynthesizedFontFiles: i32 = 73i32; +pub const INDEX_DrvGetTrueTypeFile: i32 = 50i32; +pub const INDEX_DrvGradientFill: i32 = 68i32; +pub const INDEX_DrvIcmCheckBitmapBits: i32 = 66i32; +pub const INDEX_DrvIcmCreateColorTransform: i32 = 64i32; +pub const INDEX_DrvIcmDeleteColorTransform: i32 = 65i32; +pub const INDEX_DrvIcmSetDeviceGammaRamp: i32 = 67i32; +pub const INDEX_DrvLineTo: i32 = 31i32; +pub const INDEX_DrvLoadFontFile: i32 = 45i32; +pub const INDEX_DrvLockDisplayArea: i32 = 101i32; +pub const INDEX_DrvMovePanning: i32 = 52i32; +pub const INDEX_DrvMovePointer: i32 = 30i32; +pub const INDEX_DrvNextBand: i32 = 58i32; +pub const INDEX_DrvNotify: i32 = 87i32; +pub const INDEX_DrvOffset: i32 = 6i32; +pub const INDEX_DrvPaint: i32 = 17i32; +pub const INDEX_DrvPlgBlt: i32 = 70i32; +pub const INDEX_DrvQueryAdvanceWidths: i32 = 53i32; +pub const INDEX_DrvQueryDeviceSupport: i32 = 76i32; +pub const INDEX_DrvQueryFont: i32 = 26i32; +pub const INDEX_DrvQueryFontCaps: i32 = 44i32; +pub const INDEX_DrvQueryFontData: i32 = 28i32; +pub const INDEX_DrvQueryFontFile: i32 = 51i32; +pub const INDEX_DrvQueryFontTree: i32 = 27i32; +pub const INDEX_DrvQueryGlyphAttrs: i32 = 86i32; +pub const INDEX_DrvQueryPerBandInfo: i32 = 75i32; +pub const INDEX_DrvQuerySpoolType: i32 = 62i32; +pub const INDEX_DrvQueryTrueTypeOutline: i32 = 49i32; +pub const INDEX_DrvQueryTrueTypeTable: i32 = 48i32; +pub const INDEX_DrvRealizeBrush: i32 = 12i32; +pub const INDEX_DrvRenderHint: i32 = 93i32; +pub const INDEX_DrvReserved1: i32 = 77i32; +pub const INDEX_DrvReserved10: i32 = 91i32; +pub const INDEX_DrvReserved11: i32 = 92i32; +pub const INDEX_DrvReserved2: i32 = 78i32; +pub const INDEX_DrvReserved3: i32 = 79i32; +pub const INDEX_DrvReserved4: i32 = 80i32; +pub const INDEX_DrvReserved5: i32 = 81i32; +pub const INDEX_DrvReserved6: i32 = 82i32; +pub const INDEX_DrvReserved7: i32 = 83i32; +pub const INDEX_DrvReserved8: i32 = 84i32; +pub const INDEX_DrvReserved9: i32 = 90i32; +pub const INDEX_DrvResetDevice: i32 = 89i32; +pub const INDEX_DrvResetPDEV: i32 = 7i32; +pub const INDEX_DrvSaveScreenBits: i32 = 40i32; +pub const INDEX_DrvSendPage: i32 = 32i32; +pub const INDEX_DrvSetPalette: i32 = 22i32; +pub const INDEX_DrvSetPixelFormat: i32 = 54i32; +pub const INDEX_DrvSetPointerShape: i32 = 29i32; +pub const INDEX_DrvStartBanding: i32 = 57i32; +pub const INDEX_DrvStartDoc: i32 = 35i32; +pub const INDEX_DrvStartDxInterop: i32 = 99i32; +pub const INDEX_DrvStartPage: i32 = 33i32; +pub const INDEX_DrvStretchBlt: i32 = 20i32; +pub const INDEX_DrvStretchBltROP: i32 = 69i32; +pub const INDEX_DrvStrokeAndFillPath: i32 = 16i32; +pub const INDEX_DrvStrokePath: i32 = 14i32; +pub const INDEX_DrvSurfaceComplete: i32 = 103i32; +pub const INDEX_DrvSwapBuffers: i32 = 56i32; +pub const INDEX_DrvSynchronize: i32 = 38i32; +pub const INDEX_DrvSynchronizeRedirectionBitmaps: i32 = 97i32; +pub const INDEX_DrvSynchronizeSurface: i32 = 88i32; +pub const INDEX_DrvSynthesizeFont: i32 = 72i32; +pub const INDEX_DrvTextOut: i32 = 23i32; +pub const INDEX_DrvTransparentBlt: i32 = 74i32; +pub const INDEX_DrvUnloadFontFile: i32 = 46i32; +pub const INDEX_DrvUnlockDisplayArea: i32 = 102i32; +pub const INDEX_LAST: i32 = 89i32; +pub const INDIRECT_DISPLAY_INFO_FLAGS_CREATED_IDDCX_ADAPTER: u32 = 1u32; +pub const IOCTL_COLORSPACE_TRANSFORM_QUERY_TARGET_CAPS: u32 = 2297856u32; +pub const IOCTL_COLORSPACE_TRANSFORM_SET: u32 = 2297860u32; +pub const IOCTL_FSVIDEO_COPY_FRAME_BUFFER: u32 = 3409920u32; +pub const IOCTL_FSVIDEO_REVERSE_MOUSE_POINTER: u32 = 3409928u32; +pub const IOCTL_FSVIDEO_SET_CURRENT_MODE: u32 = 3409932u32; +pub const IOCTL_FSVIDEO_SET_CURSOR_POSITION: u32 = 3409940u32; +pub const IOCTL_FSVIDEO_SET_SCREEN_INFORMATION: u32 = 3409936u32; +pub const IOCTL_FSVIDEO_WRITE_TO_FRAME_BUFFER: u32 = 3409924u32; +pub const IOCTL_MIPI_DSI_QUERY_CAPS: u32 = 2298880u32; +pub const IOCTL_MIPI_DSI_RESET: u32 = 2298888u32; +pub const IOCTL_MIPI_DSI_TRANSMISSION: u32 = 2298884u32; +pub const IOCTL_PANEL_GET_BACKLIGHT_REDUCTION: u32 = 2296856u32; +pub const IOCTL_PANEL_GET_BRIGHTNESS: u32 = 2296840u32; +pub const IOCTL_PANEL_GET_MANUFACTURING_MODE: u32 = 2296860u32; +pub const IOCTL_PANEL_QUERY_BRIGHTNESS_CAPS: u32 = 2296832u32; +pub const IOCTL_PANEL_QUERY_BRIGHTNESS_RANGES: u32 = 2296836u32; +pub const IOCTL_PANEL_SET_BACKLIGHT_OPTIMIZATION: u32 = 2296852u32; +pub const IOCTL_PANEL_SET_BRIGHTNESS: u32 = 2296844u32; +pub const IOCTL_PANEL_SET_BRIGHTNESS_STATE: u32 = 2296848u32; +pub const IOCTL_SET_ACTIVE_COLOR_PROFILE_NAME: u32 = 2297864u32; +pub const IOCTL_VIDEO_DISABLE_CURSOR: u32 = 2294820u32; +pub const IOCTL_VIDEO_DISABLE_POINTER: u32 = 2294844u32; +pub const IOCTL_VIDEO_DISABLE_VDM: u32 = 2293764u32; +pub const IOCTL_VIDEO_ENABLE_CURSOR: u32 = 2294816u32; +pub const IOCTL_VIDEO_ENABLE_POINTER: u32 = 2294840u32; +pub const IOCTL_VIDEO_ENABLE_VDM: u32 = 2293760u32; +pub const IOCTL_VIDEO_ENUM_MONITOR_PDO: u32 = 2293784u32; +pub const IOCTL_VIDEO_FREE_PUBLIC_ACCESS_RANGES: u32 = 2294884u32; +pub const IOCTL_VIDEO_GET_BANK_SELECT_CODE: u32 = 2294868u32; +pub const IOCTL_VIDEO_GET_CHILD_STATE: u32 = 2294912u32; +pub const IOCTL_VIDEO_GET_OUTPUT_DEVICE_POWER_STATE: u32 = 2293776u32; +pub const IOCTL_VIDEO_GET_POWER_MANAGEMENT: u32 = 2294896u32; +pub const IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS: u32 = 2293792u32; +pub const IOCTL_VIDEO_INIT_WIN32K_CALLBACKS: u32 = 2293788u32; +pub const IOCTL_VIDEO_IS_VGA_DEVICE: u32 = 2293796u32; +pub const IOCTL_VIDEO_LOAD_AND_SET_FONT: u32 = 2294804u32; +pub const IOCTL_VIDEO_MAP_VIDEO_MEMORY: u32 = 2294872u32; +pub const IOCTL_VIDEO_MONITOR_DEVICE: u32 = 2293780u32; +pub const IOCTL_VIDEO_PREPARE_FOR_EARECOVERY: u32 = 2293804u32; +pub const IOCTL_VIDEO_QUERY_AVAIL_MODES: u32 = 2294784u32; +pub const IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES: u32 = 2294888u32; +pub const IOCTL_VIDEO_QUERY_CURRENT_MODE: u32 = 2294792u32; +pub const IOCTL_VIDEO_QUERY_CURSOR_ATTR: u32 = 2294828u32; +pub const IOCTL_VIDEO_QUERY_CURSOR_POSITION: u32 = 2294836u32; +pub const IOCTL_VIDEO_QUERY_DISPLAY_BRIGHTNESS: u32 = 2294936u32; +pub const IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES: u32 = 2294788u32; +pub const IOCTL_VIDEO_QUERY_POINTER_ATTR: u32 = 2294852u32; +pub const IOCTL_VIDEO_QUERY_POINTER_CAPABILITIES: u32 = 2294864u32; +pub const IOCTL_VIDEO_QUERY_POINTER_POSITION: u32 = 2294860u32; +pub const IOCTL_VIDEO_QUERY_PUBLIC_ACCESS_RANGES: u32 = 2294880u32; +pub const IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS: u32 = 2294932u32; +pub const IOCTL_VIDEO_REGISTER_VDM: u32 = 2293768u32; +pub const IOCTL_VIDEO_RESET_DEVICE: u32 = 2294800u32; +pub const IOCTL_VIDEO_RESTORE_HARDWARE_STATE: u32 = 2294276u32; +pub const IOCTL_VIDEO_SAVE_HARDWARE_STATE: u32 = 2294272u32; +pub const IOCTL_VIDEO_SET_BANK_POSITION: u32 = 2294928u32; +pub const IOCTL_VIDEO_SET_CHILD_STATE_CONFIGURATION: u32 = 2294920u32; +pub const IOCTL_VIDEO_SET_COLOR_LUT_DATA: u32 = 2294908u32; +pub const IOCTL_VIDEO_SET_COLOR_REGISTERS: u32 = 2294812u32; +pub const IOCTL_VIDEO_SET_CURRENT_MODE: u32 = 2294796u32; +pub const IOCTL_VIDEO_SET_CURSOR_ATTR: u32 = 2294824u32; +pub const IOCTL_VIDEO_SET_CURSOR_POSITION: u32 = 2294832u32; +pub const IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS: u32 = 2294940u32; +pub const IOCTL_VIDEO_SET_OUTPUT_DEVICE_POWER_STATE: u32 = 2293772u32; +pub const IOCTL_VIDEO_SET_PALETTE_REGISTERS: u32 = 2294808u32; +pub const IOCTL_VIDEO_SET_POINTER_ATTR: u32 = 2294848u32; +pub const IOCTL_VIDEO_SET_POINTER_POSITION: u32 = 2294856u32; +pub const IOCTL_VIDEO_SET_POWER_MANAGEMENT: u32 = 2294892u32; +pub const IOCTL_VIDEO_SHARE_VIDEO_MEMORY: u32 = 2294900u32; +pub const IOCTL_VIDEO_SWITCH_DUALVIEW: u32 = 2294924u32; +pub const IOCTL_VIDEO_UNMAP_VIDEO_MEMORY: u32 = 2294876u32; +pub const IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY: u32 = 2294904u32; +pub const IOCTL_VIDEO_USE_DEVICE_IN_SESSION: u32 = 2293800u32; +pub const IOCTL_VIDEO_VALIDATE_CHILD_STATE_CONFIGURATION: u32 = 2294916u32; +pub const JOIN_BEVEL: i32 = 1i32; +pub const JOIN_MITER: i32 = 2i32; +pub const JOIN_ROUND: i32 = 0i32; +pub const LA_ALTERNATE: u32 = 2u32; +pub const LA_GEOMETRIC: u32 = 1u32; +pub const LA_STARTGAP: u32 = 4u32; +pub const LA_STYLED: u32 = 8u32; +pub const MAXCHARSETS: u32 = 16u32; +pub const MAX_PACKET_COUNT: u32 = 128u32; +pub const MC_APERTURE_GRILL_CATHODE_RAY_TUBE: MC_DISPLAY_TECHNOLOGY_TYPE = 1i32; +pub const MC_BLUE_DRIVE: MC_DRIVE_TYPE = 2i32; +pub const MC_BLUE_GAIN: MC_GAIN_TYPE = 2i32; +pub const MC_CAPS_BRIGHTNESS: u32 = 2u32; +pub const MC_CAPS_COLOR_TEMPERATURE: u32 = 8u32; +pub const MC_CAPS_CONTRAST: u32 = 4u32; +pub const MC_CAPS_DEGAUSS: u32 = 64u32; +pub const MC_CAPS_DISPLAY_AREA_POSITION: u32 = 128u32; +pub const MC_CAPS_DISPLAY_AREA_SIZE: u32 = 256u32; +pub const MC_CAPS_MONITOR_TECHNOLOGY_TYPE: u32 = 1u32; +pub const MC_CAPS_NONE: u32 = 0u32; +pub const MC_CAPS_RED_GREEN_BLUE_DRIVE: u32 = 32u32; +pub const MC_CAPS_RED_GREEN_BLUE_GAIN: u32 = 16u32; +pub const MC_CAPS_RESTORE_FACTORY_COLOR_DEFAULTS: u32 = 2048u32; +pub const MC_CAPS_RESTORE_FACTORY_DEFAULTS: u32 = 1024u32; +pub const MC_COLOR_TEMPERATURE_10000K: MC_COLOR_TEMPERATURE = 7i32; +pub const MC_COLOR_TEMPERATURE_11500K: MC_COLOR_TEMPERATURE = 8i32; +pub const MC_COLOR_TEMPERATURE_4000K: MC_COLOR_TEMPERATURE = 1i32; +pub const MC_COLOR_TEMPERATURE_5000K: MC_COLOR_TEMPERATURE = 2i32; +pub const MC_COLOR_TEMPERATURE_6500K: MC_COLOR_TEMPERATURE = 3i32; +pub const MC_COLOR_TEMPERATURE_7500K: MC_COLOR_TEMPERATURE = 4i32; +pub const MC_COLOR_TEMPERATURE_8200K: MC_COLOR_TEMPERATURE = 5i32; +pub const MC_COLOR_TEMPERATURE_9300K: MC_COLOR_TEMPERATURE = 6i32; +pub const MC_COLOR_TEMPERATURE_UNKNOWN: MC_COLOR_TEMPERATURE = 0i32; +pub const MC_ELECTROLUMINESCENT: MC_DISPLAY_TECHNOLOGY_TYPE = 6i32; +pub const MC_FIELD_EMISSION_DEVICE: MC_DISPLAY_TECHNOLOGY_TYPE = 8i32; +pub const MC_GREEN_DRIVE: MC_DRIVE_TYPE = 1i32; +pub const MC_GREEN_GAIN: MC_GAIN_TYPE = 1i32; +pub const MC_HEIGHT: MC_SIZE_TYPE = 1i32; +pub const MC_HORIZONTAL_POSITION: MC_POSITION_TYPE = 0i32; +pub const MC_LIQUID_CRYSTAL_ON_SILICON: MC_DISPLAY_TECHNOLOGY_TYPE = 3i32; +pub const MC_MICROELECTROMECHANICAL: MC_DISPLAY_TECHNOLOGY_TYPE = 7i32; +pub const MC_MOMENTARY: MC_VCP_CODE_TYPE = 0i32; +pub const MC_ORGANIC_LIGHT_EMITTING_DIODE: MC_DISPLAY_TECHNOLOGY_TYPE = 5i32; +pub const MC_PLASMA: MC_DISPLAY_TECHNOLOGY_TYPE = 4i32; +pub const MC_RED_DRIVE: MC_DRIVE_TYPE = 0i32; +pub const MC_RED_GAIN: MC_GAIN_TYPE = 0i32; +pub const MC_RESTORE_FACTORY_DEFAULTS_ENABLES_MONITOR_SETTINGS: u32 = 4096u32; +pub const MC_SET_PARAMETER: MC_VCP_CODE_TYPE = 1i32; +pub const MC_SHADOW_MASK_CATHODE_RAY_TUBE: MC_DISPLAY_TECHNOLOGY_TYPE = 0i32; +pub const MC_SUPPORTED_COLOR_TEMPERATURE_10000K: u32 = 64u32; +pub const MC_SUPPORTED_COLOR_TEMPERATURE_11500K: u32 = 128u32; +pub const MC_SUPPORTED_COLOR_TEMPERATURE_4000K: u32 = 1u32; +pub const MC_SUPPORTED_COLOR_TEMPERATURE_5000K: u32 = 2u32; +pub const MC_SUPPORTED_COLOR_TEMPERATURE_6500K: u32 = 4u32; +pub const MC_SUPPORTED_COLOR_TEMPERATURE_7500K: u32 = 8u32; +pub const MC_SUPPORTED_COLOR_TEMPERATURE_8200K: u32 = 16u32; +pub const MC_SUPPORTED_COLOR_TEMPERATURE_9300K: u32 = 32u32; +pub const MC_SUPPORTED_COLOR_TEMPERATURE_NONE: u32 = 0u32; +pub const MC_THIN_FILM_TRANSISTOR: MC_DISPLAY_TECHNOLOGY_TYPE = 2i32; +pub const MC_VERTICAL_POSITION: MC_POSITION_TYPE = 1i32; +pub const MC_WIDTH: MC_SIZE_TYPE = 0i32; +pub const MS_CDDDEVICEBITMAP: u32 = 4u32; +pub const MS_NOTSYSTEMMEMORY: u32 = 1u32; +pub const MS_REUSEDDEVICEBITMAP: u32 = 8u32; +pub const MS_SHAREDACCESS: u32 = 2u32; +pub const NumVideoBankTypes: VIDEO_BANK_TYPE = 4i32; +pub const OC_BANK_CLIP: u32 = 1u32; +pub const OPENGL_CMD: u32 = 4352u32; +pub const OPENGL_GETINFO: u32 = 4353u32; +pub const ORIENTATION_PREFERENCE_LANDSCAPE: ORIENTATION_PREFERENCE = 1i32; +pub const ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED: ORIENTATION_PREFERENCE = 4i32; +pub const ORIENTATION_PREFERENCE_NONE: ORIENTATION_PREFERENCE = 0i32; +pub const ORIENTATION_PREFERENCE_PORTRAIT: ORIENTATION_PREFERENCE = 2i32; +pub const ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED: ORIENTATION_PREFERENCE = 8i32; +pub const OUTPUT_COLOR_ENCODING_INTENSITY: OUTPUT_COLOR_ENCODING = 4i32; +pub const OUTPUT_COLOR_ENCODING_RGB: OUTPUT_COLOR_ENCODING = 0i32; +pub const OUTPUT_COLOR_ENCODING_YCBCR420: OUTPUT_COLOR_ENCODING = 3i32; +pub const OUTPUT_COLOR_ENCODING_YCBCR422: OUTPUT_COLOR_ENCODING = 2i32; +pub const OUTPUT_COLOR_ENCODING_YCBCR444: OUTPUT_COLOR_ENCODING = 1i32; +pub const OUTPUT_WIRE_COLOR_SPACE_G2084_P2020: OUTPUT_WIRE_COLOR_SPACE_TYPE = 12i32; +pub const OUTPUT_WIRE_COLOR_SPACE_G2084_P2020_DVLL: OUTPUT_WIRE_COLOR_SPACE_TYPE = 33i32; +pub const OUTPUT_WIRE_COLOR_SPACE_G2084_P2020_HDR10PLUS: OUTPUT_WIRE_COLOR_SPACE_TYPE = 32i32; +pub const OUTPUT_WIRE_COLOR_SPACE_G22_P2020: OUTPUT_WIRE_COLOR_SPACE_TYPE = 31i32; +pub const OUTPUT_WIRE_COLOR_SPACE_G22_P709: OUTPUT_WIRE_COLOR_SPACE_TYPE = 0i32; +pub const OUTPUT_WIRE_COLOR_SPACE_G22_P709_WCG: OUTPUT_WIRE_COLOR_SPACE_TYPE = 30i32; +pub const OUTPUT_WIRE_COLOR_SPACE_RESERVED: OUTPUT_WIRE_COLOR_SPACE_TYPE = 4i32; +pub const PAL_BGR: u32 = 8u32; +pub const PAL_BITFIELDS: u32 = 2u32; +pub const PAL_CMYK: u32 = 16u32; +pub const PAL_INDEXED: u32 = 1u32; +pub const PAL_RGB: u32 = 4u32; +pub const PD_BEGINSUBPATH: u32 = 1u32; +pub const PD_BEZIERS: u32 = 16u32; +pub const PD_CLOSEFIGURE: u32 = 8u32; +pub const PD_ENDSUBPATH: u32 = 2u32; +pub const PD_RESETSTYLE: u32 = 4u32; +pub const PHYSICAL_MONITOR_DESCRIPTION_SIZE: u32 = 128u32; +pub const PLANAR_HC: u32 = 1u32; +pub const PO_ALL_INTEGERS: u32 = 4u32; +pub const PO_BEZIERS: u32 = 1u32; +pub const PO_ELLIPSE: u32 = 2u32; +pub const PO_ENUM_AS_INTEGERS: u32 = 8u32; +pub const PO_WIDENED: u32 = 16u32; +pub const PPC_BGR_ORDER_HORIZONTAL_STRIPES: u32 = 5u32; +pub const PPC_BGR_ORDER_VERTICAL_STRIPES: u32 = 3u32; +pub const PPC_DEFAULT: u32 = 0u32; +pub const PPC_RGB_ORDER_HORIZONTAL_STRIPES: u32 = 4u32; +pub const PPC_RGB_ORDER_VERTICAL_STRIPES: u32 = 2u32; +pub const PPC_UNDEFINED: u32 = 1u32; +pub const PPG_DEFAULT: u32 = 0u32; +pub const PPG_SRGB: u32 = 1u32; +pub const PRIMARY_ORDER_ABC: u32 = 0u32; +pub const PRIMARY_ORDER_ACB: u32 = 1u32; +pub const PRIMARY_ORDER_BAC: u32 = 2u32; +pub const PRIMARY_ORDER_BCA: u32 = 3u32; +pub const PRIMARY_ORDER_CAB: u32 = 5u32; +pub const PRIMARY_ORDER_CBA: u32 = 4u32; +pub const QAW_GETEASYWIDTHS: u32 = 1u32; +pub const QAW_GETWIDTHS: u32 = 0u32; +pub const QC_1BIT: u32 = 2u32; +pub const QC_4BIT: u32 = 4u32; +pub const QC_OUTLINES: u32 = 1u32; +pub const QDA_ACCELERATION_LEVEL: ENG_DEVICE_ATTRIBUTE = 1i32; +pub const QDA_RESERVED: ENG_DEVICE_ATTRIBUTE = 0i32; +pub const QDC_ALL_PATHS: QUERY_DISPLAY_CONFIG_FLAGS = 1u32; +pub const QDC_DATABASE_CURRENT: QUERY_DISPLAY_CONFIG_FLAGS = 4u32; +pub const QDC_INCLUDE_HMD: QUERY_DISPLAY_CONFIG_FLAGS = 32u32; +pub const QDC_ONLY_ACTIVE_PATHS: QUERY_DISPLAY_CONFIG_FLAGS = 2u32; +pub const QDC_VIRTUAL_MODE_AWARE: QUERY_DISPLAY_CONFIG_FLAGS = 16u32; +pub const QDC_VIRTUAL_REFRESH_RATE_AWARE: QUERY_DISPLAY_CONFIG_FLAGS = 64u32; +pub const QDS_CHECKJPEGFORMAT: u32 = 0u32; +pub const QDS_CHECKPNGFORMAT: u32 = 1u32; +pub const QFD_GLYPHANDBITMAP: i32 = 1i32; +pub const QFD_GLYPHANDOUTLINE: i32 = 2i32; +pub const QFD_MAXEXTENTS: i32 = 3i32; +pub const QFD_TT_GLYPHANDBITMAP: i32 = 4i32; +pub const QFD_TT_GRAY1_BITMAP: i32 = 5i32; +pub const QFD_TT_GRAY2_BITMAP: i32 = 6i32; +pub const QFD_TT_GRAY4_BITMAP: i32 = 8i32; +pub const QFD_TT_GRAY8_BITMAP: i32 = 9i32; +pub const QFD_TT_MONO_BITMAP: i32 = 5i32; +pub const QFF_DESCRIPTION: i32 = 1i32; +pub const QFF_NUMFACES: i32 = 2i32; +pub const QFT_GLYPHSET: i32 = 3i32; +pub const QFT_KERNPAIRS: i32 = 2i32; +pub const QFT_LIGATURES: i32 = 1i32; +pub const QSA_3DNOW: u32 = 16384u32; +pub const QSA_MMX: u32 = 256u32; +pub const QSA_SSE: u32 = 8192u32; +pub const QSA_SSE1: u32 = 8192u32; +pub const QSA_SSE2: u32 = 65536u32; +pub const QSA_SSE3: u32 = 524288u32; +pub const RB_DITHERCOLOR: i32 = -2147483648i32; +pub const SDC_ALLOW_CHANGES: SET_DISPLAY_CONFIG_FLAGS = 1024u32; +pub const SDC_ALLOW_PATH_ORDER_CHANGES: SET_DISPLAY_CONFIG_FLAGS = 8192u32; +pub const SDC_APPLY: SET_DISPLAY_CONFIG_FLAGS = 128u32; +pub const SDC_FORCE_MODE_ENUMERATION: SET_DISPLAY_CONFIG_FLAGS = 4096u32; +pub const SDC_NO_OPTIMIZATION: SET_DISPLAY_CONFIG_FLAGS = 256u32; +pub const SDC_PATH_PERSIST_IF_REQUIRED: SET_DISPLAY_CONFIG_FLAGS = 2048u32; +pub const SDC_SAVE_TO_DATABASE: SET_DISPLAY_CONFIG_FLAGS = 512u32; +pub const SDC_TOPOLOGY_CLONE: SET_DISPLAY_CONFIG_FLAGS = 2u32; +pub const SDC_TOPOLOGY_EXTEND: SET_DISPLAY_CONFIG_FLAGS = 4u32; +pub const SDC_TOPOLOGY_EXTERNAL: SET_DISPLAY_CONFIG_FLAGS = 8u32; +pub const SDC_TOPOLOGY_INTERNAL: SET_DISPLAY_CONFIG_FLAGS = 1u32; +pub const SDC_TOPOLOGY_SUPPLIED: SET_DISPLAY_CONFIG_FLAGS = 16u32; +pub const SDC_USE_DATABASE_CURRENT: SET_DISPLAY_CONFIG_FLAGS = 15u32; +pub const SDC_USE_SUPPLIED_DISPLAY_CONFIG: SET_DISPLAY_CONFIG_FLAGS = 32u32; +pub const SDC_VALIDATE: SET_DISPLAY_CONFIG_FLAGS = 64u32; +pub const SDC_VIRTUAL_MODE_AWARE: SET_DISPLAY_CONFIG_FLAGS = 32768u32; +pub const SDC_VIRTUAL_REFRESH_RATE_AWARE: SET_DISPLAY_CONFIG_FLAGS = 131072u32; +pub const SETCONFIGURATION_STATUS_ADDITIONAL: u32 = 1u32; +pub const SETCONFIGURATION_STATUS_APPLIED: u32 = 0u32; +pub const SETCONFIGURATION_STATUS_OVERRIDDEN: u32 = 2u32; +pub const SGI_EXTRASPACE: u32 = 0u32; +pub const SO_BREAK_EXTRA: u32 = 4096u32; +pub const SO_CHARACTER_EXTRA: u32 = 2048u32; +pub const SO_CHAR_INC_EQUAL_BM_BASE: u32 = 32u32; +pub const SO_DO_NOT_SUBSTITUTE_DEVICE_FONT: u32 = 128u32; +pub const SO_DXDY: u32 = 1024u32; +pub const SO_ESC_NOT_ORIENT: u32 = 512u32; +pub const SO_FLAG_DEFAULT_PLACEMENT: u32 = 1u32; +pub const SO_GLYPHINDEX_TEXTOUT: u32 = 256u32; +pub const SO_HORIZONTAL: u32 = 2u32; +pub const SO_MAXEXT_EQUAL_BM_SIDE: u32 = 64u32; +pub const SO_REVERSED: u32 = 8u32; +pub const SO_VERTICAL: u32 = 4u32; +pub const SO_ZERO_BEARINGS: u32 = 16u32; +pub const SPS_ACCEPT_EXCLUDE: u32 = 3u32; +pub const SPS_ACCEPT_NOEXCLUDE: u32 = 2u32; +pub const SPS_ACCEPT_SYNCHRONOUS: u32 = 4u32; +pub const SPS_ALPHA: i32 = 16i32; +pub const SPS_ANIMATESTART: i32 = 4i32; +pub const SPS_ANIMATEUPDATE: i32 = 8i32; +pub const SPS_ASYNCCHANGE: i32 = 2i32; +pub const SPS_CHANGE: i32 = 1i32; +pub const SPS_DECLINE: u32 = 1u32; +pub const SPS_ERROR: u32 = 0u32; +pub const SPS_FLAGSMASK: i32 = 255i32; +pub const SPS_FREQMASK: i32 = 1044480i32; +pub const SPS_LENGTHMASK: i32 = 3840i32; +pub const SPS_RESERVED: i32 = 32i32; +pub const SPS_RESERVED1: i32 = 64i32; +pub const SS_FREE: u32 = 2u32; +pub const SS_RESTORE: u32 = 1u32; +pub const SS_SAVE: u32 = 0u32; +pub const STYPE_BITMAP: i32 = 0i32; +pub const STYPE_DEVBITMAP: i32 = 3i32; +pub const S_INIT: u32 = 2u32; +pub const TC_PATHOBJ: u32 = 2u32; +pub const TC_RECTANGLES: u32 = 0u32; +pub const TTO_METRICS_ONLY: u32 = 1u32; +pub const TTO_QUBICS: u32 = 2u32; +pub const TTO_UNHINTED: u32 = 4u32; +pub const VIDEO_COLOR_LUT_DATA_FORMAT_PRIVATEFORMAT: u32 = 2147483648u32; +pub const VIDEO_COLOR_LUT_DATA_FORMAT_RGB256WORDS: u32 = 1u32; +pub const VIDEO_DEVICE_COLOR: u32 = 1u32; +pub const VIDEO_DEVICE_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("DISPLAY%d"); +pub const VIDEO_DUALVIEW_PRIMARY: u32 = 2147483648u32; +pub const VIDEO_DUALVIEW_REMOVABLE: u32 = 1u32; +pub const VIDEO_DUALVIEW_SECONDARY: u32 = 1073741824u32; +pub const VIDEO_DUALVIEW_WDDM_VGA: u32 = 536870912u32; +pub const VIDEO_MAX_REASON: u32 = 9u32; +pub const VIDEO_MODE_ANIMATE_START: u32 = 8u32; +pub const VIDEO_MODE_ANIMATE_UPDATE: u32 = 16u32; +pub const VIDEO_MODE_ASYNC_POINTER: u32 = 1u32; +pub const VIDEO_MODE_BANKED: u32 = 128u32; +pub const VIDEO_MODE_COLOR: u32 = 1u32; +pub const VIDEO_MODE_COLOR_POINTER: u32 = 4u32; +pub const VIDEO_MODE_GRAPHICS: u32 = 2u32; +pub const VIDEO_MODE_INTERLACED: u32 = 16u32; +pub const VIDEO_MODE_LINEAR: u32 = 256u32; +pub const VIDEO_MODE_MANAGED_PALETTE: u32 = 8u32; +pub const VIDEO_MODE_MAP_MEM_LINEAR: u32 = 1073741824u32; +pub const VIDEO_MODE_MONO_POINTER: u32 = 2u32; +pub const VIDEO_MODE_NO_64_BIT_ACCESS: u32 = 64u32; +pub const VIDEO_MODE_NO_OFF_SCREEN: u32 = 32u32; +pub const VIDEO_MODE_NO_ZERO_MEMORY: u32 = 2147483648u32; +pub const VIDEO_MODE_PALETTE_DRIVEN: u32 = 4u32; +pub const VIDEO_OPTIONAL_GAMMET_TABLE: u32 = 2u32; +pub const VIDEO_REASON_ALLOCATION: u32 = 6u32; +pub const VIDEO_REASON_CONFIGURATION: u32 = 9u32; +pub const VIDEO_REASON_FAILED_ROTATION: u32 = 5u32; +pub const VIDEO_REASON_LOCK: u32 = 5u32; +pub const VIDEO_REASON_NONE: u32 = 0u32; +pub const VIDEO_REASON_POLICY1: u32 = 1u32; +pub const VIDEO_REASON_POLICY2: u32 = 2u32; +pub const VIDEO_REASON_POLICY3: u32 = 3u32; +pub const VIDEO_REASON_POLICY4: u32 = 4u32; +pub const VIDEO_REASON_SCRATCH: u32 = 8u32; +pub const VIDEO_STATE_NON_STANDARD_VGA: u32 = 1u32; +pub const VIDEO_STATE_PACKED_CHAIN4_MODE: u32 = 4u32; +pub const VIDEO_STATE_UNEMULATED_VGA_STATE: u32 = 2u32; +pub const VideoBanked1R1W: VIDEO_BANK_TYPE = 2i32; +pub const VideoBanked1RW: VIDEO_BANK_TYPE = 1i32; +pub const VideoBanked2RW: VIDEO_BANK_TYPE = 3i32; +pub const VideoBlackScreenDiagnostics: VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE = 16i32; +pub const VideoDesktopDuplicationChange: VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE = 15i32; +pub const VideoDisableMultiPlaneOverlay: VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE = 14i32; +pub const VideoDxgkDisplaySwitchCallout: VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE = 8i32; +pub const VideoDxgkFindAdapterTdrCallout: VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE = 10i32; +pub const VideoDxgkHardwareProtectionTeardown: VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE = 11i32; +pub const VideoEnumChildPdoNotifyCallout: VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE = 3i32; +pub const VideoFindAdapterCallout: VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE = 4i32; +pub const VideoNotBanked: VIDEO_BANK_TYPE = 0i32; +pub const VideoPnpNotifyCallout: VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE = 7i32; +pub const VideoPowerHibernate: VIDEO_POWER_STATE = 5i32; +pub const VideoPowerMaximum: VIDEO_POWER_STATE = 7i32; +pub const VideoPowerNotifyCallout: VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE = 1i32; +pub const VideoPowerOff: VIDEO_POWER_STATE = 4i32; +pub const VideoPowerOn: VIDEO_POWER_STATE = 1i32; +pub const VideoPowerShutdown: VIDEO_POWER_STATE = 6i32; +pub const VideoPowerStandBy: VIDEO_POWER_STATE = 2i32; +pub const VideoPowerSuspend: VIDEO_POWER_STATE = 3i32; +pub const VideoPowerUnspecified: VIDEO_POWER_STATE = 0i32; +pub const VideoRepaintDesktop: VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE = 12i32; +pub const VideoUpdateCursor: VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE = 13i32; +pub const WINDDI_MAXSETPALETTECOLORINDEX: u32 = 255u32; +pub const WINDDI_MAXSETPALETTECOLORS: u32 = 256u32; +pub const WINDDI_MAX_BROADCAST_CONTEXT: u32 = 64u32; +pub const WNDOBJ_SETUP: u32 = 4354u32; +pub const WOC_CHANGED: u32 = 16u32; +pub const WOC_DELETE: u32 = 32u32; +pub const WOC_DRAWN: u32 = 64u32; +pub const WOC_RGN_CLIENT: u32 = 2u32; +pub const WOC_RGN_CLIENT_DELTA: u32 = 1u32; +pub const WOC_RGN_SPRITE: u32 = 512u32; +pub const WOC_RGN_SURFACE: u32 = 8u32; +pub const WOC_RGN_SURFACE_DELTA: u32 = 4u32; +pub const WOC_SPRITE_NO_OVERLAP: u32 = 256u32; +pub const WOC_SPRITE_OVERLAP: u32 = 128u32; +pub const WO_DRAW_NOTIFY: u32 = 64u32; +pub const WO_RGN_CLIENT: u32 = 2u32; +pub const WO_RGN_CLIENT_DELTA: u32 = 1u32; +pub const WO_RGN_DESKTOP_COORD: u32 = 256u32; +pub const WO_RGN_SPRITE: u32 = 512u32; +pub const WO_RGN_SURFACE: u32 = 8u32; +pub const WO_RGN_SURFACE_DELTA: u32 = 4u32; +pub const WO_RGN_UPDATE_ALL: u32 = 16u32; +pub const WO_RGN_WINDOW: u32 = 32u32; +pub const WO_SPRITE_NOTIFY: u32 = 128u32; +pub const WVIDEO_DEVICE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DISPLAY%d"); +pub const XF_INV_FXTOL: i32 = 3i32; +pub const XF_INV_LTOL: i32 = 1i32; +pub const XF_LTOFX: i32 = 2i32; +pub const XF_LTOL: i32 = 0i32; +pub const XO_DESTBITFIELDS: u32 = 5u32; +pub const XO_DESTDCPALETTE: u32 = 3u32; +pub const XO_DESTPALETTE: u32 = 2u32; +pub const XO_DEVICE_ICM: u32 = 16u32; +pub const XO_FROM_CMYK: u32 = 8u32; +pub const XO_HOST_ICM: u32 = 32u32; +pub const XO_SRCBITFIELDS: u32 = 4u32; +pub const XO_SRCPALETTE: u32 = 1u32; +pub const XO_TABLE: u32 = 2u32; +pub const XO_TO_MONO: u32 = 4u32; +pub const XO_TRIVIAL: u32 = 1u32; +pub type AR_STATE = i32; +pub type BACKLIGHT_OPTIMIZATION_LEVEL = i32; +pub type BRIGHTNESS_INTERFACE_VERSION = i32; +pub type BlackScreenDiagnosticsCalloutParam = i32; +pub type COLORSPACE_TRANSFORM_DATA_TYPE = i32; +pub type COLORSPACE_TRANSFORM_STAGE_CONTROL = i32; +pub type COLORSPACE_TRANSFORM_TARGET_CAPS_VERSION = i32; +pub type COLORSPACE_TRANSFORM_TYPE = i32; +pub type DISPLAYCONFIG_DEVICE_INFO_TYPE = i32; +pub type DISPLAYCONFIG_MODE_INFO_TYPE = i32; +pub type DISPLAYCONFIG_PIXELFORMAT = i32; +pub type DISPLAYCONFIG_ROTATION = i32; +pub type DISPLAYCONFIG_SCALING = i32; +pub type DISPLAYCONFIG_SCANLINE_ORDERING = i32; +pub type DISPLAYCONFIG_TOPOLOGY_ID = i32; +pub type DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = i32; +pub type DSI_CONTROL_TRANSMISSION_MODE = i32; +pub type ENG_DEVICE_ATTRIBUTE = i32; +pub type ENG_SYSTEM_ATTRIBUTE = i32; +pub type MC_COLOR_TEMPERATURE = i32; +pub type MC_DISPLAY_TECHNOLOGY_TYPE = i32; +pub type MC_DRIVE_TYPE = i32; +pub type MC_GAIN_TYPE = i32; +pub type MC_POSITION_TYPE = i32; +pub type MC_SIZE_TYPE = i32; +pub type MC_VCP_CODE_TYPE = i32; +pub type ORIENTATION_PREFERENCE = i32; +pub type OUTPUT_COLOR_ENCODING = i32; +pub type OUTPUT_WIRE_COLOR_SPACE_TYPE = i32; +pub type QUERY_DISPLAY_CONFIG_FLAGS = u32; +pub type SET_DISPLAY_CONFIG_FLAGS = u32; +pub type VIDEO_BANK_TYPE = i32; +pub type VIDEO_POWER_STATE = i32; +pub type VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE = i32; +#[repr(C)] +pub struct Adapter { + pub AdapterName: [u16; 128], + pub numSources: i32, + pub sources: [Sources; 1], +} +impl ::core::marker::Copy for Adapter {} +impl ::core::clone::Clone for Adapter { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct Adapters { + pub numAdapters: i32, + pub adapter: [Adapter; 1], +} +impl ::core::marker::Copy for Adapters {} +impl ::core::clone::Clone for Adapters { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BACKLIGHT_REDUCTION_GAMMA_RAMP { + pub R: [u16; 256], + pub G: [u16; 256], + pub B: [u16; 256], +} +impl ::core::marker::Copy for BACKLIGHT_REDUCTION_GAMMA_RAMP {} +impl ::core::clone::Clone for BACKLIGHT_REDUCTION_GAMMA_RAMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BANK_POSITION { + pub ReadBankPosition: u32, + pub WriteBankPosition: u32, +} +impl ::core::marker::Copy for BANK_POSITION {} +impl ::core::clone::Clone for BANK_POSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct BLENDOBJ { + pub BlendFunction: super::super::Graphics::Gdi::BLENDFUNCTION, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for BLENDOBJ {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for BLENDOBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BRIGHTNESS_LEVEL { + pub Count: u8, + pub Level: [u8; 103], +} +impl ::core::marker::Copy for BRIGHTNESS_LEVEL {} +impl ::core::clone::Clone for BRIGHTNESS_LEVEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BRIGHTNESS_NIT_RANGE { + pub MinLevelInMillinit: u32, + pub MaxLevelInMillinit: u32, + pub StepSizeInMillinit: u32, +} +impl ::core::marker::Copy for BRIGHTNESS_NIT_RANGE {} +impl ::core::clone::Clone for BRIGHTNESS_NIT_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BRIGHTNESS_NIT_RANGES { + pub NormalRangeCount: u32, + pub RangeCount: u32, + pub PreferredMaximumBrightness: u32, + pub SupportedRanges: [BRIGHTNESS_NIT_RANGE; 16], +} +impl ::core::marker::Copy for BRIGHTNESS_NIT_RANGES {} +impl ::core::clone::Clone for BRIGHTNESS_NIT_RANGES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BRUSHOBJ { + pub iSolidColor: u32, + pub pvRbrush: *mut ::core::ffi::c_void, + pub flColorType: u32, +} +impl ::core::marker::Copy for BRUSHOBJ {} +impl ::core::clone::Clone for BRUSHOBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CDDDXGK_REDIRBITMAPPRESENTINFO { + pub NumDirtyRects: u32, + pub DirtyRect: *mut super::super::Foundation::RECT, + pub NumContexts: u32, + pub hContext: [super::super::Foundation::HANDLE; 65], + pub bDoNotSynchronizeWithDxContent: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CDDDXGK_REDIRBITMAPPRESENTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CDDDXGK_REDIRBITMAPPRESENTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Console\"`"] +#[cfg(feature = "Win32_System_Console")] +pub struct CHAR_IMAGE_INFO { + pub CharInfo: super::super::System::Console::CHAR_INFO, + pub FontImageInfo: FONT_IMAGE_INFO, +} +#[cfg(feature = "Win32_System_Console")] +impl ::core::marker::Copy for CHAR_IMAGE_INFO {} +#[cfg(feature = "Win32_System_Console")] +impl ::core::clone::Clone for CHAR_IMAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CHROMATICITY_COORDINATE { + pub x: f32, + pub y: f32, +} +impl ::core::marker::Copy for CHROMATICITY_COORDINATE {} +impl ::core::clone::Clone for CHROMATICITY_COORDINATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CIECHROMA { + pub x: i32, + pub y: i32, + pub Y: i32, +} +impl ::core::marker::Copy for CIECHROMA {} +impl ::core::clone::Clone for CIECHROMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLIPLINE { + pub ptfxA: POINTFIX, + pub ptfxB: POINTFIX, + pub lStyleState: i32, + pub c: u32, + pub arun: [RUN; 1], +} +impl ::core::marker::Copy for CLIPLINE {} +impl ::core::clone::Clone for CLIPLINE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLIPOBJ { + pub iUniq: u32, + pub rclBounds: super::super::Foundation::RECTL, + pub iDComplexity: u8, + pub iFComplexity: u8, + pub iMode: u8, + pub fjOptions: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLIPOBJ {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLIPOBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLORINFO { + pub Red: CIECHROMA, + pub Green: CIECHROMA, + pub Blue: CIECHROMA, + pub Cyan: CIECHROMA, + pub Magenta: CIECHROMA, + pub Yellow: CIECHROMA, + pub AlignmentWhite: CIECHROMA, + pub RedGamma: i32, + pub GreenGamma: i32, + pub BlueGamma: i32, + pub MagentaInCyanDye: i32, + pub YellowInCyanDye: i32, + pub CyanInMagentaDye: i32, + pub YellowInMagentaDye: i32, + pub CyanInYellowDye: i32, + pub MagentaInYellowDye: i32, +} +impl ::core::marker::Copy for COLORINFO {} +impl ::core::clone::Clone for COLORINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLORSPACE_TRANSFORM { + pub Type: COLORSPACE_TRANSFORM_TYPE, + pub Data: COLORSPACE_TRANSFORM_0, +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union COLORSPACE_TRANSFORM_0 { + pub Rgb256x3x16: GAMMA_RAMP_RGB256x3x16, + pub Dxgi1: GAMMA_RAMP_DXGI_1, + pub T3x4: COLORSPACE_TRANSFORM_3x4, + pub MatrixV2: COLORSPACE_TRANSFORM_MATRIX_V2, +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM_0 {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLORSPACE_TRANSFORM_1DLUT_CAP { + pub NumberOfLUTEntries: u32, + pub DataCap: COLORSPACE_TRANSFORM_DATA_CAP, +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM_1DLUT_CAP {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM_1DLUT_CAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLORSPACE_TRANSFORM_3x4 { + pub ColorMatrix3x4: [f32; 12], + pub ScalarMultiplier: f32, + pub LookupTable1D: [GAMMA_RAMP_RGB; 4096], +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM_3x4 {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM_3x4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLORSPACE_TRANSFORM_DATA_CAP { + pub DataType: COLORSPACE_TRANSFORM_DATA_TYPE, + pub Anonymous: COLORSPACE_TRANSFORM_DATA_CAP_0, + pub NumericRangeMin: f32, + pub NumericRangeMax: f32, +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM_DATA_CAP {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM_DATA_CAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union COLORSPACE_TRANSFORM_DATA_CAP_0 { + pub Anonymous1: COLORSPACE_TRANSFORM_DATA_CAP_0_0, + pub Anonymous2: COLORSPACE_TRANSFORM_DATA_CAP_0_1, + pub Value: u32, +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM_DATA_CAP_0 {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM_DATA_CAP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLORSPACE_TRANSFORM_DATA_CAP_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM_DATA_CAP_0_0 {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM_DATA_CAP_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLORSPACE_TRANSFORM_DATA_CAP_0_1 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM_DATA_CAP_0_1 {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM_DATA_CAP_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLORSPACE_TRANSFORM_MATRIX_CAP { + pub Anonymous: COLORSPACE_TRANSFORM_MATRIX_CAP_0, + pub DataCap: COLORSPACE_TRANSFORM_DATA_CAP, +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM_MATRIX_CAP {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM_MATRIX_CAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union COLORSPACE_TRANSFORM_MATRIX_CAP_0 { + pub Anonymous: COLORSPACE_TRANSFORM_MATRIX_CAP_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM_MATRIX_CAP_0 {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM_MATRIX_CAP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLORSPACE_TRANSFORM_MATRIX_CAP_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM_MATRIX_CAP_0_0 {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM_MATRIX_CAP_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLORSPACE_TRANSFORM_MATRIX_V2 { + pub StageControlLookupTable1DDegamma: COLORSPACE_TRANSFORM_STAGE_CONTROL, + pub LookupTable1DDegamma: [GAMMA_RAMP_RGB; 4096], + pub StageControlColorMatrix3x3: COLORSPACE_TRANSFORM_STAGE_CONTROL, + pub ColorMatrix3x3: [f32; 9], + pub StageControlLookupTable1DRegamma: COLORSPACE_TRANSFORM_STAGE_CONTROL, + pub LookupTable1DRegamma: [GAMMA_RAMP_RGB; 4096], +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM_MATRIX_V2 {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM_MATRIX_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLORSPACE_TRANSFORM_SET_INPUT { + pub OutputWireColorSpaceExpected: OUTPUT_WIRE_COLOR_SPACE_TYPE, + pub OutputWireFormatExpected: OUTPUT_WIRE_FORMAT, + pub ColorSpaceTransform: COLORSPACE_TRANSFORM, +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM_SET_INPUT {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM_SET_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLORSPACE_TRANSFORM_TARGET_CAPS { + pub Version: COLORSPACE_TRANSFORM_TARGET_CAPS_VERSION, + pub LookupTable1DDegammaCap: COLORSPACE_TRANSFORM_1DLUT_CAP, + pub ColorMatrix3x3Cap: COLORSPACE_TRANSFORM_MATRIX_CAP, + pub LookupTable1DRegammaCap: COLORSPACE_TRANSFORM_1DLUT_CAP, +} +impl ::core::marker::Copy for COLORSPACE_TRANSFORM_TARGET_CAPS {} +impl ::core::clone::Clone for COLORSPACE_TRANSFORM_TARGET_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVHTADJDATA { + pub DeviceFlags: u32, + pub DeviceXDPI: u32, + pub DeviceYDPI: u32, + pub pDefHTInfo: *mut DEVHTINFO, + pub pAdjHTInfo: *mut DEVHTINFO, +} +impl ::core::marker::Copy for DEVHTADJDATA {} +impl ::core::clone::Clone for DEVHTADJDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVHTINFO { + pub HTFlags: u32, + pub HTPatternSize: u32, + pub DevPelsDPI: u32, + pub ColorInfo: COLORINFO, +} +impl ::core::marker::Copy for DEVHTINFO {} +impl ::core::clone::Clone for DEVHTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct DEVINFO { + pub flGraphicsCaps: u32, + pub lfDefaultFont: super::super::Graphics::Gdi::LOGFONTW, + pub lfAnsiVarFont: super::super::Graphics::Gdi::LOGFONTW, + pub lfAnsiFixFont: super::super::Graphics::Gdi::LOGFONTW, + pub cFonts: u32, + pub iDitherFormat: u32, + pub cxDither: u16, + pub cyDither: u16, + pub hpalDefault: super::super::Graphics::Gdi::HPALETTE, + pub flGraphicsCaps2: u32, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for DEVINFO {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for DEVINFO { + fn clone(&self) -> Self { + *self + } +} +pub type DHPDEV = isize; +pub type DHSURF = isize; +#[repr(C)] +pub struct DISPLAYCONFIG_2DREGION { + pub cx: u32, + pub cy: u32, +} +impl ::core::marker::Copy for DISPLAYCONFIG_2DREGION {} +impl ::core::clone::Clone for DISPLAYCONFIG_2DREGION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_ADAPTER_NAME { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub adapterDevicePath: [u16; 128], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_ADAPTER_NAME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_ADAPTER_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_DESKTOP_IMAGE_INFO { + pub PathSourceSize: super::super::Foundation::POINTL, + pub DesktopImageRegion: super::super::Foundation::RECTL, + pub DesktopImageClip: super::super::Foundation::RECTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_DESKTOP_IMAGE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_DESKTOP_IMAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_DEVICE_INFO_HEADER { + pub r#type: DISPLAYCONFIG_DEVICE_INFO_TYPE, + pub size: u32, + pub adapterId: super::super::Foundation::LUID, + pub id: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_DEVICE_INFO_HEADER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_DEVICE_INFO_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub Anonymous: DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO_0, + pub colorEncoding: super::super::Graphics::Gdi::DISPLAYCONFIG_COLOR_ENCODING, + pub bitsPerColorChannel: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub union DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO_0 { + pub Anonymous: DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO_0_0, + pub value: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO_0_0 { + pub _bitfield: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub Anonymous: DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION_0 { + pub Anonymous: DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION_0_0, + pub value: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION_0_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_MODE_INFO { + pub infoType: DISPLAYCONFIG_MODE_INFO_TYPE, + pub id: u32, + pub adapterId: super::super::Foundation::LUID, + pub Anonymous: DISPLAYCONFIG_MODE_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_MODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_MODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DISPLAYCONFIG_MODE_INFO_0 { + pub targetMode: DISPLAYCONFIG_TARGET_MODE, + pub sourceMode: DISPLAYCONFIG_SOURCE_MODE, + pub desktopImageInfo: DISPLAYCONFIG_DESKTOP_IMAGE_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_MODE_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_MODE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_PATH_INFO { + pub sourceInfo: DISPLAYCONFIG_PATH_SOURCE_INFO, + pub targetInfo: DISPLAYCONFIG_PATH_TARGET_INFO, + pub flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_PATH_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_PATH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_PATH_SOURCE_INFO { + pub adapterId: super::super::Foundation::LUID, + pub id: u32, + pub Anonymous: DISPLAYCONFIG_PATH_SOURCE_INFO_0, + pub statusFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_PATH_SOURCE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_PATH_SOURCE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DISPLAYCONFIG_PATH_SOURCE_INFO_0 { + pub modeInfoIdx: u32, + pub Anonymous: DISPLAYCONFIG_PATH_SOURCE_INFO_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_PATH_SOURCE_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_PATH_SOURCE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_PATH_SOURCE_INFO_0_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_PATH_SOURCE_INFO_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_PATH_SOURCE_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_PATH_TARGET_INFO { + pub adapterId: super::super::Foundation::LUID, + pub id: u32, + pub Anonymous: DISPLAYCONFIG_PATH_TARGET_INFO_0, + pub outputTechnology: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY, + pub rotation: DISPLAYCONFIG_ROTATION, + pub scaling: DISPLAYCONFIG_SCALING, + pub refreshRate: DISPLAYCONFIG_RATIONAL, + pub scanLineOrdering: DISPLAYCONFIG_SCANLINE_ORDERING, + pub targetAvailable: super::super::Foundation::BOOL, + pub statusFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_PATH_TARGET_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_PATH_TARGET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DISPLAYCONFIG_PATH_TARGET_INFO_0 { + pub modeInfoIdx: u32, + pub Anonymous: DISPLAYCONFIG_PATH_TARGET_INFO_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_PATH_TARGET_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_PATH_TARGET_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_PATH_TARGET_INFO_0_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_PATH_TARGET_INFO_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_PATH_TARGET_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISPLAYCONFIG_RATIONAL { + pub Numerator: u32, + pub Denominator: u32, +} +impl ::core::marker::Copy for DISPLAYCONFIG_RATIONAL {} +impl ::core::clone::Clone for DISPLAYCONFIG_RATIONAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_SDR_WHITE_LEVEL { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub SDRWhiteLevel: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SDR_WHITE_LEVEL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SDR_WHITE_LEVEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub Anonymous: DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE_0 { + pub Anonymous: DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE_0_0, + pub value: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE_0_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub Anonymous: DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION_0, + pub specializationType: ::windows_sys::core::GUID, + pub specializationSubType: ::windows_sys::core::GUID, + pub specializationApplicationName: [u16; 128], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION_0 { + pub Anonymous: DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION_0_0, + pub value: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION_0_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub Anonymous: DISPLAYCONFIG_SET_TARGET_PERSISTENCE_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SET_TARGET_PERSISTENCE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SET_TARGET_PERSISTENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DISPLAYCONFIG_SET_TARGET_PERSISTENCE_0 { + pub Anonymous: DISPLAYCONFIG_SET_TARGET_PERSISTENCE_0_0, + pub value: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SET_TARGET_PERSISTENCE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SET_TARGET_PERSISTENCE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE_0_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SET_TARGET_PERSISTENCE_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SET_TARGET_PERSISTENCE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_SOURCE_DEVICE_NAME { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub viewGdiDeviceName: [u16; 32], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SOURCE_DEVICE_NAME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SOURCE_DEVICE_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_SOURCE_MODE { + pub width: u32, + pub height: u32, + pub pixelFormat: DISPLAYCONFIG_PIXELFORMAT, + pub position: super::super::Foundation::POINTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SOURCE_MODE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SOURCE_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub Anonymous: DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION_0 { + pub Anonymous: DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION_0_0, + pub value: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION_0_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_TARGET_BASE_TYPE { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub baseOutputTechnology: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_TARGET_BASE_TYPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_TARGET_BASE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_TARGET_DEVICE_NAME { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub flags: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS, + pub outputTechnology: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY, + pub edidManufactureId: u16, + pub edidProductCodeId: u16, + pub connectorInstance: u32, + pub monitorFriendlyDeviceName: [u16; 64], + pub monitorDevicePath: [u16; 128], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_TARGET_DEVICE_NAME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_TARGET_DEVICE_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS { + pub Anonymous: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS_0, +} +impl ::core::marker::Copy for DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS {} +impl ::core::clone::Clone for DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS_0 { + pub Anonymous: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS_0_0, + pub value: u32, +} +impl ::core::marker::Copy for DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS_0 {} +impl ::core::clone::Clone for DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS_0_0 {} +impl ::core::clone::Clone for DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISPLAYCONFIG_TARGET_MODE { + pub targetVideoSignalInfo: DISPLAYCONFIG_VIDEO_SIGNAL_INFO, +} +impl ::core::marker::Copy for DISPLAYCONFIG_TARGET_MODE {} +impl ::core::clone::Clone for DISPLAYCONFIG_TARGET_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISPLAYCONFIG_TARGET_PREFERRED_MODE { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub width: u32, + pub height: u32, + pub targetMode: DISPLAYCONFIG_TARGET_MODE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISPLAYCONFIG_TARGET_PREFERRED_MODE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISPLAYCONFIG_TARGET_PREFERRED_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO { + pub pixelRate: u64, + pub hSyncFreq: DISPLAYCONFIG_RATIONAL, + pub vSyncFreq: DISPLAYCONFIG_RATIONAL, + pub activeSize: DISPLAYCONFIG_2DREGION, + pub totalSize: DISPLAYCONFIG_2DREGION, + pub Anonymous: DISPLAYCONFIG_VIDEO_SIGNAL_INFO_0, + pub scanLineOrdering: DISPLAYCONFIG_SCANLINE_ORDERING, +} +impl ::core::marker::Copy for DISPLAYCONFIG_VIDEO_SIGNAL_INFO {} +impl ::core::clone::Clone for DISPLAYCONFIG_VIDEO_SIGNAL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DISPLAYCONFIG_VIDEO_SIGNAL_INFO_0 { + pub AdditionalSignalInfo: DISPLAYCONFIG_VIDEO_SIGNAL_INFO_0_0, + pub videoStandard: u32, +} +impl ::core::marker::Copy for DISPLAYCONFIG_VIDEO_SIGNAL_INFO_0 {} +impl ::core::clone::Clone for DISPLAYCONFIG_VIDEO_SIGNAL_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DISPLAYCONFIG_VIDEO_SIGNAL_INFO_0_0 {} +impl ::core::clone::Clone for DISPLAYCONFIG_VIDEO_SIGNAL_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISPLAY_BRIGHTNESS { + pub ucDisplayPolicy: u8, + pub ucACBrightness: u8, + pub ucDCBrightness: u8, +} +impl ::core::marker::Copy for DISPLAY_BRIGHTNESS {} +impl ::core::clone::Clone for DISPLAY_BRIGHTNESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DRH_APIBITMAPDATA { + pub pso: *mut SURFOBJ, + pub b: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRH_APIBITMAPDATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRH_APIBITMAPDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DRIVEROBJ { + pub pvObj: *mut ::core::ffi::c_void, + pub pFreeProc: FREEOBJPROC, + pub hdev: HDEV, + pub dhpdev: DHPDEV, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRIVEROBJ {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRIVEROBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRVENABLEDATA { + pub iDriverVersion: u32, + pub c: u32, + pub pdrvfn: *mut DRVFN, +} +impl ::core::marker::Copy for DRVENABLEDATA {} +impl ::core::clone::Clone for DRVENABLEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRVFN { + pub iFunc: u32, + pub pfn: PFN, +} +impl ::core::marker::Copy for DRVFN {} +impl ::core::clone::Clone for DRVFN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DXGK_WIN32K_PARAM_DATA { + pub PathsArray: *mut ::core::ffi::c_void, + pub ModesArray: *mut ::core::ffi::c_void, + pub NumPathArrayElements: u32, + pub NumModeArrayElements: u32, + pub SDCFlags: u32, +} +impl ::core::marker::Copy for DXGK_WIN32K_PARAM_DATA {} +impl ::core::clone::Clone for DXGK_WIN32K_PARAM_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct DisplayMode { + pub DeviceName: [u16; 32], + pub devMode: super::super::Graphics::Gdi::DEVMODEW, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for DisplayMode {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for DisplayMode { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct DisplayModes { + pub numDisplayModes: i32, + pub displayMode: [DisplayMode; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for DisplayModes {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for DisplayModes { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct EMFINFO { + pub nSize: u32, + pub hdc: super::super::Graphics::Gdi::HDC, + pub pvEMF: *mut u8, + pub pvCurrentRecord: *mut u8, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for EMFINFO {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for EMFINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENGSAFESEMAPHORE { + pub hsem: HSEMAPHORE, + pub lCount: i32, +} +impl ::core::marker::Copy for ENGSAFESEMAPHORE {} +impl ::core::clone::Clone for ENGSAFESEMAPHORE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENG_EVENT { + pub pKEvent: *mut ::core::ffi::c_void, + pub fFlags: u32, +} +impl ::core::marker::Copy for ENG_EVENT {} +impl ::core::clone::Clone for ENG_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENG_TIME_FIELDS { + pub usYear: u16, + pub usMonth: u16, + pub usDay: u16, + pub usHour: u16, + pub usMinute: u16, + pub usSecond: u16, + pub usMilliseconds: u16, + pub usWeekday: u16, +} +impl ::core::marker::Copy for ENG_TIME_FIELDS {} +impl ::core::clone::Clone for ENG_TIME_FIELDS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ENUMRECTS { + pub c: u32, + pub arcl: [super::super::Foundation::RECTL; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ENUMRECTS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ENUMRECTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FD_DEVICEMETRICS { + pub flRealizedType: u32, + pub pteBase: POINTE, + pub pteSide: POINTE, + pub lD: i32, + pub fxMaxAscender: i32, + pub fxMaxDescender: i32, + pub ptlUnderline1: super::super::Foundation::POINTL, + pub ptlStrikeOut: super::super::Foundation::POINTL, + pub ptlULThickness: super::super::Foundation::POINTL, + pub ptlSOThickness: super::super::Foundation::POINTL, + pub cxMax: u32, + pub cyMax: u32, + pub cjGlyphMax: u32, + pub fdxQuantized: FD_XFORM, + pub lNonLinearExtLeading: i32, + pub lNonLinearIntLeading: i32, + pub lNonLinearMaxCharWidth: i32, + pub lNonLinearAvgCharWidth: i32, + pub lMinA: i32, + pub lMinC: i32, + pub lMinD: i32, + pub alReserved: [i32; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FD_DEVICEMETRICS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FD_DEVICEMETRICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FD_GLYPHATTR { + pub cjThis: u32, + pub cGlyphs: u32, + pub iMode: u32, + pub aGlyphAttr: [u8; 1], +} +impl ::core::marker::Copy for FD_GLYPHATTR {} +impl ::core::clone::Clone for FD_GLYPHATTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FD_GLYPHSET { + pub cjThis: u32, + pub flAccel: u32, + pub cGlyphsSupported: u32, + pub cRuns: u32, + pub awcrun: [WCRUN; 1], +} +impl ::core::marker::Copy for FD_GLYPHSET {} +impl ::core::clone::Clone for FD_GLYPHSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FD_KERNINGPAIR { + pub wcFirst: u16, + pub wcSecond: u16, + pub fwdKern: i16, +} +impl ::core::marker::Copy for FD_KERNINGPAIR {} +impl ::core::clone::Clone for FD_KERNINGPAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FD_LIGATURE { + pub culThis: u32, + pub ulType: u32, + pub cLigatures: u32, + pub alig: [LIGATURE; 1], +} +impl ::core::marker::Copy for FD_LIGATURE {} +impl ::core::clone::Clone for FD_LIGATURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct FD_XFORM { + pub eXX: f32, + pub eXY: f32, + pub eYX: f32, + pub eYY: f32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for FD_XFORM {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for FD_XFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct FD_XFORM { + pub eXX: u32, + pub eXY: u32, + pub eYX: u32, + pub eYY: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for FD_XFORM {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for FD_XFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct FLOATOBJ { + pub ul1: u32, + pub ul2: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for FLOATOBJ {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for FLOATOBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct FLOATOBJ_XFORM { + pub eM11: f32, + pub eM12: f32, + pub eM21: f32, + pub eM22: f32, + pub eDx: f32, + pub eDy: f32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for FLOATOBJ_XFORM {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for FLOATOBJ_XFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct FLOATOBJ_XFORM { + pub eM11: FLOATOBJ, + pub eM12: FLOATOBJ, + pub eM21: FLOATOBJ, + pub eM22: FLOATOBJ, + pub eDx: FLOATOBJ, + pub eDy: FLOATOBJ, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for FLOATOBJ_XFORM {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for FLOATOBJ_XFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub union FLOAT_LONG { + pub e: f32, + pub l: i32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for FLOAT_LONG {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for FLOAT_LONG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub union FLOAT_LONG { + pub e: u32, + pub l: i32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for FLOAT_LONG {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for FLOAT_LONG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FONTDIFF { + pub jReserved1: u8, + pub jReserved2: u8, + pub jReserved3: u8, + pub bWeight: u8, + pub usWinWeight: u16, + pub fsSelection: u16, + pub fwdAveCharWidth: i16, + pub fwdMaxCharInc: i16, + pub ptlCaret: super::super::Foundation::POINTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FONTDIFF {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FONTDIFF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FONTINFO { + pub cjThis: u32, + pub flCaps: u32, + pub cGlyphsSupported: u32, + pub cjMaxGlyph1: u32, + pub cjMaxGlyph4: u32, + pub cjMaxGlyph8: u32, + pub cjMaxGlyph32: u32, +} +impl ::core::marker::Copy for FONTINFO {} +impl ::core::clone::Clone for FONTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FONTOBJ { + pub iUniq: u32, + pub iFace: u32, + pub cxMax: u32, + pub flFontType: u32, + pub iTTUniq: usize, + pub iFile: usize, + pub sizLogResPpi: super::super::Foundation::SIZE, + pub ulStyleSize: u32, + pub pvConsumer: *mut ::core::ffi::c_void, + pub pvProducer: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FONTOBJ {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FONTOBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FONTSIM { + pub dpBold: i32, + pub dpItalic: i32, + pub dpBoldItalic: i32, +} +impl ::core::marker::Copy for FONTSIM {} +impl ::core::clone::Clone for FONTSIM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Console\"`"] +#[cfg(feature = "Win32_System_Console")] +pub struct FONT_IMAGE_INFO { + pub FontSize: super::super::System::Console::COORD, + pub ImageBits: *mut u8, +} +#[cfg(feature = "Win32_System_Console")] +impl ::core::marker::Copy for FONT_IMAGE_INFO {} +#[cfg(feature = "Win32_System_Console")] +impl ::core::clone::Clone for FONT_IMAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Console\"`"] +#[cfg(feature = "Win32_System_Console")] +pub struct FSCNTL_SCREEN_INFO { + pub Position: super::super::System::Console::COORD, + pub ScreenSize: super::super::System::Console::COORD, + pub nNumberOfChars: u32, +} +#[cfg(feature = "Win32_System_Console")] +impl ::core::marker::Copy for FSCNTL_SCREEN_INFO {} +#[cfg(feature = "Win32_System_Console")] +impl ::core::clone::Clone for FSCNTL_SCREEN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Console\"`"] +#[cfg(feature = "Win32_System_Console")] +pub struct FSVIDEO_COPY_FRAME_BUFFER { + pub SrcScreen: FSCNTL_SCREEN_INFO, + pub DestScreen: FSCNTL_SCREEN_INFO, +} +#[cfg(feature = "Win32_System_Console")] +impl ::core::marker::Copy for FSVIDEO_COPY_FRAME_BUFFER {} +#[cfg(feature = "Win32_System_Console")] +impl ::core::clone::Clone for FSVIDEO_COPY_FRAME_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSVIDEO_CURSOR_POSITION { + pub Coord: VIDEO_CURSOR_POSITION, + pub dwType: u32, +} +impl ::core::marker::Copy for FSVIDEO_CURSOR_POSITION {} +impl ::core::clone::Clone for FSVIDEO_CURSOR_POSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSVIDEO_MODE_INFORMATION { + pub VideoMode: VIDEO_MODE_INFORMATION, + pub VideoMemory: VIDEO_MEMORY_INFORMATION, +} +impl ::core::marker::Copy for FSVIDEO_MODE_INFORMATION {} +impl ::core::clone::Clone for FSVIDEO_MODE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Console\"`"] +#[cfg(feature = "Win32_System_Console")] +pub struct FSVIDEO_REVERSE_MOUSE_POINTER { + pub Screen: FSCNTL_SCREEN_INFO, + pub dwType: u32, +} +#[cfg(feature = "Win32_System_Console")] +impl ::core::marker::Copy for FSVIDEO_REVERSE_MOUSE_POINTER {} +#[cfg(feature = "Win32_System_Console")] +impl ::core::clone::Clone for FSVIDEO_REVERSE_MOUSE_POINTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Console\"`"] +#[cfg(feature = "Win32_System_Console")] +pub struct FSVIDEO_SCREEN_INFORMATION { + pub ScreenSize: super::super::System::Console::COORD, + pub FontSize: super::super::System::Console::COORD, +} +#[cfg(feature = "Win32_System_Console")] +impl ::core::marker::Copy for FSVIDEO_SCREEN_INFORMATION {} +#[cfg(feature = "Win32_System_Console")] +impl ::core::clone::Clone for FSVIDEO_SCREEN_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Console\"`"] +#[cfg(feature = "Win32_System_Console")] +pub struct FSVIDEO_WRITE_TO_FRAME_BUFFER { + pub SrcBuffer: *mut CHAR_IMAGE_INFO, + pub DestScreen: FSCNTL_SCREEN_INFO, +} +#[cfg(feature = "Win32_System_Console")] +impl ::core::marker::Copy for FSVIDEO_WRITE_TO_FRAME_BUFFER {} +#[cfg(feature = "Win32_System_Console")] +impl ::core::clone::Clone for FSVIDEO_WRITE_TO_FRAME_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GAMMARAMP { + pub Red: [u16; 256], + pub Green: [u16; 256], + pub Blue: [u16; 256], +} +impl ::core::marker::Copy for GAMMARAMP {} +impl ::core::clone::Clone for GAMMARAMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GAMMA_RAMP_DXGI_1 { + pub Scale: GAMMA_RAMP_RGB, + pub Offset: GAMMA_RAMP_RGB, + pub GammaCurve: [GAMMA_RAMP_RGB; 1025], +} +impl ::core::marker::Copy for GAMMA_RAMP_DXGI_1 {} +impl ::core::clone::Clone for GAMMA_RAMP_DXGI_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GAMMA_RAMP_RGB { + pub Red: f32, + pub Green: f32, + pub Blue: f32, +} +impl ::core::marker::Copy for GAMMA_RAMP_RGB {} +impl ::core::clone::Clone for GAMMA_RAMP_RGB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GAMMA_RAMP_RGB256x3x16 { + pub Red: [u16; 256], + pub Green: [u16; 256], + pub Blue: [u16; 256], +} +impl ::core::marker::Copy for GAMMA_RAMP_RGB256x3x16 {} +impl ::core::clone::Clone for GAMMA_RAMP_RGB256x3x16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GDIINFO { + pub ulVersion: u32, + pub ulTechnology: u32, + pub ulHorzSize: u32, + pub ulVertSize: u32, + pub ulHorzRes: u32, + pub ulVertRes: u32, + pub cBitsPixel: u32, + pub cPlanes: u32, + pub ulNumColors: u32, + pub flRaster: u32, + pub ulLogPixelsX: u32, + pub ulLogPixelsY: u32, + pub flTextCaps: u32, + pub ulDACRed: u32, + pub ulDACGreen: u32, + pub ulDACBlue: u32, + pub ulAspectX: u32, + pub ulAspectY: u32, + pub ulAspectXY: u32, + pub xStyleStep: i32, + pub yStyleStep: i32, + pub denStyleStep: i32, + pub ptlPhysOffset: super::super::Foundation::POINTL, + pub szlPhysSize: super::super::Foundation::SIZE, + pub ulNumPalReg: u32, + pub ciDevice: COLORINFO, + pub ulDevicePelsDPI: u32, + pub ulPrimaryOrder: u32, + pub ulHTPatternSize: u32, + pub ulHTOutputFormat: u32, + pub flHTFlags: u32, + pub ulVRefresh: u32, + pub ulBltAlignment: u32, + pub ulPanningHorzRes: u32, + pub ulPanningVertRes: u32, + pub xPanningAlignment: u32, + pub yPanningAlignment: u32, + pub cxHTPat: u32, + pub cyHTPat: u32, + pub pHTPatA: *mut u8, + pub pHTPatB: *mut u8, + pub pHTPatC: *mut u8, + pub flShadeBlend: u32, + pub ulPhysicalPixelCharacteristics: u32, + pub ulPhysicalPixelGamma: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GDIINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GDIINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GLYPHBITS { + pub ptlOrigin: super::super::Foundation::POINTL, + pub sizlBitmap: super::super::Foundation::SIZE, + pub aj: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GLYPHBITS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GLYPHBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GLYPHDATA { + pub gdf: GLYPHDEF, + pub hg: u32, + pub fxD: i32, + pub fxA: i32, + pub fxAB: i32, + pub fxInkTop: i32, + pub fxInkBottom: i32, + pub rclInk: super::super::Foundation::RECTL, + pub ptqD: POINTQF, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GLYPHDATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GLYPHDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union GLYPHDEF { + pub pgb: *mut GLYPHBITS, + pub ppo: *mut PATHOBJ, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GLYPHDEF {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GLYPHDEF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GLYPHPOS { + pub hg: u32, + pub pgdf: *mut GLYPHDEF, + pub ptl: super::super::Foundation::POINTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GLYPHPOS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GLYPHPOS { + fn clone(&self) -> Self { + *self + } +} +pub type HBM = isize; +pub type HDEV = isize; +pub type HDRVOBJ = isize; +pub type HFASTMUTEX = isize; +pub type HSEMAPHORE = isize; +pub type HSURF = isize; +#[repr(C)] +pub struct IFIEXTRA { + pub ulIdentifier: u32, + pub dpFontSig: i32, + pub cig: u32, + pub dpDesignVector: i32, + pub dpAxesInfoW: i32, + pub aulReserved: [u32; 1], +} +impl ::core::marker::Copy for IFIEXTRA {} +impl ::core::clone::Clone for IFIEXTRA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct IFIMETRICS { + pub cjThis: u32, + pub cjIfiExtra: u32, + pub dpwszFamilyName: i32, + pub dpwszStyleName: i32, + pub dpwszFaceName: i32, + pub dpwszUniqueName: i32, + pub dpFontSim: i32, + pub lEmbedId: i32, + pub lItalicAngle: i32, + pub lCharBias: i32, + pub dpCharSets: i32, + pub jWinCharSet: u8, + pub jWinPitchAndFamily: u8, + pub usWinWeight: u16, + pub flInfo: u32, + pub fsSelection: u16, + pub fsType: u16, + pub fwdUnitsPerEm: i16, + pub fwdLowestPPEm: i16, + pub fwdWinAscender: i16, + pub fwdWinDescender: i16, + pub fwdMacAscender: i16, + pub fwdMacDescender: i16, + pub fwdMacLineGap: i16, + pub fwdTypoAscender: i16, + pub fwdTypoDescender: i16, + pub fwdTypoLineGap: i16, + pub fwdAveCharWidth: i16, + pub fwdMaxCharInc: i16, + pub fwdCapHeight: i16, + pub fwdXHeight: i16, + pub fwdSubscriptXSize: i16, + pub fwdSubscriptYSize: i16, + pub fwdSubscriptXOffset: i16, + pub fwdSubscriptYOffset: i16, + pub fwdSuperscriptXSize: i16, + pub fwdSuperscriptYSize: i16, + pub fwdSuperscriptXOffset: i16, + pub fwdSuperscriptYOffset: i16, + pub fwdUnderscoreSize: i16, + pub fwdUnderscorePosition: i16, + pub fwdStrikeoutSize: i16, + pub fwdStrikeoutPosition: i16, + pub chFirstChar: u8, + pub chLastChar: u8, + pub chDefaultChar: u8, + pub chBreakChar: u8, + pub wcFirstChar: u16, + pub wcLastChar: u16, + pub wcDefaultChar: u16, + pub wcBreakChar: u16, + pub ptlBaseline: super::super::Foundation::POINTL, + pub ptlAspect: super::super::Foundation::POINTL, + pub ptlCaret: super::super::Foundation::POINTL, + pub rclFontBox: super::super::Foundation::RECTL, + pub achVendId: [u8; 4], + pub cKerningPairs: u32, + pub ulPanoseCulture: u32, + pub panose: super::super::Graphics::Gdi::PANOSE, + pub Align: *mut ::core::ffi::c_void, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for IFIMETRICS {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for IFIMETRICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct IFIMETRICS { + pub cjThis: u32, + pub cjIfiExtra: u32, + pub dpwszFamilyName: i32, + pub dpwszStyleName: i32, + pub dpwszFaceName: i32, + pub dpwszUniqueName: i32, + pub dpFontSim: i32, + pub lEmbedId: i32, + pub lItalicAngle: i32, + pub lCharBias: i32, + pub dpCharSets: i32, + pub jWinCharSet: u8, + pub jWinPitchAndFamily: u8, + pub usWinWeight: u16, + pub flInfo: u32, + pub fsSelection: u16, + pub fsType: u16, + pub fwdUnitsPerEm: i16, + pub fwdLowestPPEm: i16, + pub fwdWinAscender: i16, + pub fwdWinDescender: i16, + pub fwdMacAscender: i16, + pub fwdMacDescender: i16, + pub fwdMacLineGap: i16, + pub fwdTypoAscender: i16, + pub fwdTypoDescender: i16, + pub fwdTypoLineGap: i16, + pub fwdAveCharWidth: i16, + pub fwdMaxCharInc: i16, + pub fwdCapHeight: i16, + pub fwdXHeight: i16, + pub fwdSubscriptXSize: i16, + pub fwdSubscriptYSize: i16, + pub fwdSubscriptXOffset: i16, + pub fwdSubscriptYOffset: i16, + pub fwdSuperscriptXSize: i16, + pub fwdSuperscriptYSize: i16, + pub fwdSuperscriptXOffset: i16, + pub fwdSuperscriptYOffset: i16, + pub fwdUnderscoreSize: i16, + pub fwdUnderscorePosition: i16, + pub fwdStrikeoutSize: i16, + pub fwdStrikeoutPosition: i16, + pub chFirstChar: u8, + pub chLastChar: u8, + pub chDefaultChar: u8, + pub chBreakChar: u8, + pub wcFirstChar: u16, + pub wcLastChar: u16, + pub wcDefaultChar: u16, + pub wcBreakChar: u16, + pub ptlBaseline: super::super::Foundation::POINTL, + pub ptlAspect: super::super::Foundation::POINTL, + pub ptlCaret: super::super::Foundation::POINTL, + pub rclFontBox: super::super::Foundation::RECTL, + pub achVendId: [u8; 4], + pub cKerningPairs: u32, + pub ulPanoseCulture: u32, + pub panose: super::super::Graphics::Gdi::PANOSE, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for IFIMETRICS {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for IFIMETRICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INDIRECT_DISPLAY_INFO { + pub DisplayAdapterLuid: super::super::Foundation::LUID, + pub Flags: u32, + pub NumMonitors: u32, + pub DisplayAdapterTargetBase: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INDIRECT_DISPLAY_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INDIRECT_DISPLAY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LIGATURE { + pub culSize: u32, + pub pwsz: ::windows_sys::core::PWSTR, + pub chglyph: u32, + pub ahglyph: [u32; 1], +} +impl ::core::marker::Copy for LIGATURE {} +impl ::core::clone::Clone for LIGATURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct LINEATTRS { + pub fl: u32, + pub iJoin: u32, + pub iEndCap: u32, + pub elWidth: FLOAT_LONG, + pub eMiterLimit: f32, + pub cstyle: u32, + pub pstyle: *mut FLOAT_LONG, + pub elStyleState: FLOAT_LONG, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for LINEATTRS {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for LINEATTRS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct LINEATTRS { + pub fl: u32, + pub iJoin: u32, + pub iEndCap: u32, + pub elWidth: FLOAT_LONG, + pub eMiterLimit: u32, + pub cstyle: u32, + pub pstyle: *mut FLOAT_LONG, + pub elStyleState: FLOAT_LONG, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for LINEATTRS {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for LINEATTRS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MC_TIMING_REPORT { + pub dwHorizontalFrequencyInHZ: u32, + pub dwVerticalFrequencyInHZ: u32, + pub bTimingStatusByte: u8, +} +impl ::core::marker::Copy for MC_TIMING_REPORT {} +impl ::core::clone::Clone for MC_TIMING_REPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIPI_DSI_CAPS { + pub DSITypeMajor: u8, + pub DSITypeMinor: u8, + pub SpecVersionMajor: u8, + pub SpecVersionMinor: u8, + pub SpecVersionPatch: u8, + pub TargetMaximumReturnPacketSize: u16, + pub ResultCodeFlags: u8, + pub ResultCodeStatus: u8, + pub Revision: u8, + pub Level: u8, + pub DeviceClassHi: u8, + pub DeviceClassLo: u8, + pub ManufacturerHi: u8, + pub ManufacturerLo: u8, + pub ProductHi: u8, + pub ProductLo: u8, + pub LengthHi: u8, + pub LengthLo: u8, +} +impl ::core::marker::Copy for MIPI_DSI_CAPS {} +impl ::core::clone::Clone for MIPI_DSI_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIPI_DSI_PACKET { + pub Anonymous1: MIPI_DSI_PACKET_0, + pub Anonymous2: MIPI_DSI_PACKET_1, + pub EccFiller: u8, + pub Payload: [u8; 8], +} +impl ::core::marker::Copy for MIPI_DSI_PACKET {} +impl ::core::clone::Clone for MIPI_DSI_PACKET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MIPI_DSI_PACKET_0 { + pub DataId: u8, + pub Anonymous: MIPI_DSI_PACKET_0_0, +} +impl ::core::marker::Copy for MIPI_DSI_PACKET_0 {} +impl ::core::clone::Clone for MIPI_DSI_PACKET_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIPI_DSI_PACKET_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for MIPI_DSI_PACKET_0_0 {} +impl ::core::clone::Clone for MIPI_DSI_PACKET_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MIPI_DSI_PACKET_1 { + pub Anonymous: MIPI_DSI_PACKET_1_0, + pub LongWriteWordCount: u16, +} +impl ::core::marker::Copy for MIPI_DSI_PACKET_1 {} +impl ::core::clone::Clone for MIPI_DSI_PACKET_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIPI_DSI_PACKET_1_0 { + pub Data0: u8, + pub Data1: u8, +} +impl ::core::marker::Copy for MIPI_DSI_PACKET_1_0 {} +impl ::core::clone::Clone for MIPI_DSI_PACKET_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIPI_DSI_RESET { + pub Flags: u32, + pub Anonymous: MIPI_DSI_RESET_0, +} +impl ::core::marker::Copy for MIPI_DSI_RESET {} +impl ::core::clone::Clone for MIPI_DSI_RESET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MIPI_DSI_RESET_0 { + pub Anonymous: MIPI_DSI_RESET_0_0, + pub Results: u32, +} +impl ::core::marker::Copy for MIPI_DSI_RESET_0 {} +impl ::core::clone::Clone for MIPI_DSI_RESET_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIPI_DSI_RESET_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for MIPI_DSI_RESET_0_0 {} +impl ::core::clone::Clone for MIPI_DSI_RESET_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIPI_DSI_TRANSMISSION { + pub TotalBufferSize: u32, + pub PacketCount: u8, + pub FailedPacket: u8, + pub Anonymous: MIPI_DSI_TRANSMISSION_0, + pub ReadWordCount: u16, + pub FinalCommandExtraPayload: u16, + pub MipiErrors: u16, + pub HostErrors: u16, + pub Packets: [MIPI_DSI_PACKET; 1], +} +impl ::core::marker::Copy for MIPI_DSI_TRANSMISSION {} +impl ::core::clone::Clone for MIPI_DSI_TRANSMISSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIPI_DSI_TRANSMISSION_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for MIPI_DSI_TRANSMISSION_0 {} +impl ::core::clone::Clone for MIPI_DSI_TRANSMISSION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OUTPUT_WIRE_FORMAT { + pub ColorEncoding: OUTPUT_COLOR_ENCODING, + pub BitsPerPixel: u32, +} +impl ::core::marker::Copy for OUTPUT_WIRE_FORMAT {} +impl ::core::clone::Clone for OUTPUT_WIRE_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PALOBJ { + pub ulReserved: u32, +} +impl ::core::marker::Copy for PALOBJ {} +impl ::core::clone::Clone for PALOBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANEL_BRIGHTNESS_SENSOR_DATA { + pub Anonymous: PANEL_BRIGHTNESS_SENSOR_DATA_0, + pub AlsReading: f32, + pub ChromaticityCoordinate: CHROMATICITY_COORDINATE, + pub ColorTemperature: f32, +} +impl ::core::marker::Copy for PANEL_BRIGHTNESS_SENSOR_DATA {} +impl ::core::clone::Clone for PANEL_BRIGHTNESS_SENSOR_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PANEL_BRIGHTNESS_SENSOR_DATA_0 { + pub Anonymous: PANEL_BRIGHTNESS_SENSOR_DATA_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for PANEL_BRIGHTNESS_SENSOR_DATA_0 {} +impl ::core::clone::Clone for PANEL_BRIGHTNESS_SENSOR_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANEL_BRIGHTNESS_SENSOR_DATA_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PANEL_BRIGHTNESS_SENSOR_DATA_0_0 {} +impl ::core::clone::Clone for PANEL_BRIGHTNESS_SENSOR_DATA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANEL_GET_BACKLIGHT_REDUCTION { + pub BacklightUsersetting: u16, + pub BacklightEffective: u16, + pub GammaRamp: BACKLIGHT_REDUCTION_GAMMA_RAMP, +} +impl ::core::marker::Copy for PANEL_GET_BACKLIGHT_REDUCTION {} +impl ::core::clone::Clone for PANEL_GET_BACKLIGHT_REDUCTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANEL_GET_BRIGHTNESS { + pub Version: BRIGHTNESS_INTERFACE_VERSION, + pub Anonymous: PANEL_GET_BRIGHTNESS_0, +} +impl ::core::marker::Copy for PANEL_GET_BRIGHTNESS {} +impl ::core::clone::Clone for PANEL_GET_BRIGHTNESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PANEL_GET_BRIGHTNESS_0 { + pub Level: u8, + pub Anonymous: PANEL_GET_BRIGHTNESS_0_0, +} +impl ::core::marker::Copy for PANEL_GET_BRIGHTNESS_0 {} +impl ::core::clone::Clone for PANEL_GET_BRIGHTNESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANEL_GET_BRIGHTNESS_0_0 { + pub CurrentInMillinits: u32, + pub TargetInMillinits: u32, +} +impl ::core::marker::Copy for PANEL_GET_BRIGHTNESS_0_0 {} +impl ::core::clone::Clone for PANEL_GET_BRIGHTNESS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANEL_QUERY_BRIGHTNESS_CAPS { + pub Version: BRIGHTNESS_INTERFACE_VERSION, + pub Anonymous: PANEL_QUERY_BRIGHTNESS_CAPS_0, +} +impl ::core::marker::Copy for PANEL_QUERY_BRIGHTNESS_CAPS {} +impl ::core::clone::Clone for PANEL_QUERY_BRIGHTNESS_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PANEL_QUERY_BRIGHTNESS_CAPS_0 { + pub Anonymous: PANEL_QUERY_BRIGHTNESS_CAPS_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for PANEL_QUERY_BRIGHTNESS_CAPS_0 {} +impl ::core::clone::Clone for PANEL_QUERY_BRIGHTNESS_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANEL_QUERY_BRIGHTNESS_CAPS_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PANEL_QUERY_BRIGHTNESS_CAPS_0_0 {} +impl ::core::clone::Clone for PANEL_QUERY_BRIGHTNESS_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANEL_QUERY_BRIGHTNESS_RANGES { + pub Version: BRIGHTNESS_INTERFACE_VERSION, + pub Anonymous: PANEL_QUERY_BRIGHTNESS_RANGES_0, +} +impl ::core::marker::Copy for PANEL_QUERY_BRIGHTNESS_RANGES {} +impl ::core::clone::Clone for PANEL_QUERY_BRIGHTNESS_RANGES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PANEL_QUERY_BRIGHTNESS_RANGES_0 { + pub BrightnessLevel: BRIGHTNESS_LEVEL, + pub NitRanges: BRIGHTNESS_NIT_RANGES, +} +impl ::core::marker::Copy for PANEL_QUERY_BRIGHTNESS_RANGES_0 {} +impl ::core::clone::Clone for PANEL_QUERY_BRIGHTNESS_RANGES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANEL_SET_BACKLIGHT_OPTIMIZATION { + pub Level: BACKLIGHT_OPTIMIZATION_LEVEL, +} +impl ::core::marker::Copy for PANEL_SET_BACKLIGHT_OPTIMIZATION {} +impl ::core::clone::Clone for PANEL_SET_BACKLIGHT_OPTIMIZATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANEL_SET_BRIGHTNESS { + pub Version: BRIGHTNESS_INTERFACE_VERSION, + pub Anonymous: PANEL_SET_BRIGHTNESS_0, +} +impl ::core::marker::Copy for PANEL_SET_BRIGHTNESS {} +impl ::core::clone::Clone for PANEL_SET_BRIGHTNESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PANEL_SET_BRIGHTNESS_0 { + pub Level: u8, + pub Anonymous: PANEL_SET_BRIGHTNESS_0_0, +} +impl ::core::marker::Copy for PANEL_SET_BRIGHTNESS_0 {} +impl ::core::clone::Clone for PANEL_SET_BRIGHTNESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANEL_SET_BRIGHTNESS_0_0 { + pub Millinits: u32, + pub TransitionTimeInMs: u32, + pub SensorData: PANEL_BRIGHTNESS_SENSOR_DATA, +} +impl ::core::marker::Copy for PANEL_SET_BRIGHTNESS_0_0 {} +impl ::core::clone::Clone for PANEL_SET_BRIGHTNESS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANEL_SET_BRIGHTNESS_STATE { + pub Anonymous: PANEL_SET_BRIGHTNESS_STATE_0, +} +impl ::core::marker::Copy for PANEL_SET_BRIGHTNESS_STATE {} +impl ::core::clone::Clone for PANEL_SET_BRIGHTNESS_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PANEL_SET_BRIGHTNESS_STATE_0 { + pub Anonymous: PANEL_SET_BRIGHTNESS_STATE_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for PANEL_SET_BRIGHTNESS_STATE_0 {} +impl ::core::clone::Clone for PANEL_SET_BRIGHTNESS_STATE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANEL_SET_BRIGHTNESS_STATE_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PANEL_SET_BRIGHTNESS_STATE_0_0 {} +impl ::core::clone::Clone for PANEL_SET_BRIGHTNESS_STATE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PATHDATA { + pub flags: u32, + pub count: u32, + pub pptfx: *mut POINTFIX, +} +impl ::core::marker::Copy for PATHDATA {} +impl ::core::clone::Clone for PATHDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PATHOBJ { + pub fl: u32, + pub cCurves: u32, +} +impl ::core::marker::Copy for PATHOBJ {} +impl ::core::clone::Clone for PATHOBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PERBANDINFO { + pub bRepeatThisBand: super::super::Foundation::BOOL, + pub szlBand: super::super::Foundation::SIZE, + pub ulHorzRes: u32, + pub ulVertRes: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PERBANDINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PERBANDINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PHYSICAL_MONITOR { + pub hPhysicalMonitor: super::super::Foundation::HANDLE, + pub szPhysicalMonitorDescription: [u16; 128], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PHYSICAL_MONITOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PHYSICAL_MONITOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct POINTE { + pub x: f32, + pub y: f32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for POINTE {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for POINTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct POINTE { + pub x: u32, + pub y: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for POINTE {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for POINTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POINTFIX { + pub x: i32, + pub y: i32, +} +impl ::core::marker::Copy for POINTFIX {} +impl ::core::clone::Clone for POINTFIX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POINTQF { + pub x: i64, + pub y: i64, +} +impl ::core::marker::Copy for POINTQF {} +impl ::core::clone::Clone for POINTQF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECTFX { + pub xLeft: i32, + pub yTop: i32, + pub xRight: i32, + pub yBottom: i32, +} +impl ::core::marker::Copy for RECTFX {} +impl ::core::clone::Clone for RECTFX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RUN { + pub iStart: i32, + pub iStop: i32, +} +impl ::core::marker::Copy for RUN {} +impl ::core::clone::Clone for RUN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SET_ACTIVE_COLOR_PROFILE_NAME { + pub ColorProfileName: [u16; 1], +} +impl ::core::marker::Copy for SET_ACTIVE_COLOR_PROFILE_NAME {} +impl ::core::clone::Clone for SET_ACTIVE_COLOR_PROFILE_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STROBJ { + pub cGlyphs: u32, + pub flAccel: u32, + pub ulCharInc: u32, + pub rclBkGround: super::super::Foundation::RECTL, + pub pgp: *mut GLYPHPOS, + pub pwszOrg: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STROBJ {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STROBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SURFOBJ { + pub dhsurf: DHSURF, + pub hsurf: HSURF, + pub dhpdev: DHPDEV, + pub hdev: HDEV, + pub sizlBitmap: super::super::Foundation::SIZE, + pub cjBits: u32, + pub pvBits: *mut ::core::ffi::c_void, + pub pvScan0: *mut ::core::ffi::c_void, + pub lDelta: i32, + pub iUniq: u32, + pub iBitmapFormat: u32, + pub iType: u16, + pub fjBitmap: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SURFOBJ {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SURFOBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct Sources { + pub sourceId: u32, + pub numTargets: i32, + pub aTargets: [u32; 1], +} +impl ::core::marker::Copy for Sources {} +impl ::core::clone::Clone for Sources { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TYPE1_FONT { + pub hPFM: super::super::Foundation::HANDLE, + pub hPFB: super::super::Foundation::HANDLE, + pub ulIdentifier: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TYPE1_FONT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TYPE1_FONT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VGA_CHAR { + pub Char: u8, + pub Attributes: u8, +} +impl ::core::marker::Copy for VGA_CHAR {} +impl ::core::clone::Clone for VGA_CHAR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEOPARAMETERS { + pub Guid: ::windows_sys::core::GUID, + pub dwOffset: u32, + pub dwCommand: u32, + pub dwFlags: u32, + pub dwMode: u32, + pub dwTVStandard: u32, + pub dwAvailableModes: u32, + pub dwAvailableTVStandard: u32, + pub dwFlickerFilter: u32, + pub dwOverScanX: u32, + pub dwOverScanY: u32, + pub dwMaxUnscaledX: u32, + pub dwMaxUnscaledY: u32, + pub dwPositionX: u32, + pub dwPositionY: u32, + pub dwBrightness: u32, + pub dwContrast: u32, + pub dwCPType: u32, + pub dwCPCommand: u32, + pub dwCPStandard: u32, + pub dwCPKey: u32, + pub bCP_APSTriggerBits: u32, + pub bOEMCopyProtection: [u8; 256], +} +impl ::core::marker::Copy for VIDEOPARAMETERS {} +impl ::core::clone::Clone for VIDEOPARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_BANK_SELECT { + pub Length: u32, + pub Size: u32, + pub BankingFlags: u32, + pub BankingType: u32, + pub PlanarHCBankingType: u32, + pub BitmapWidthInBytes: u32, + pub BitmapSize: u32, + pub Granularity: u32, + pub PlanarHCGranularity: u32, + pub CodeOffset: u32, + pub PlanarHCBankCodeOffset: u32, + pub PlanarHCEnableCodeOffset: u32, + pub PlanarHCDisableCodeOffset: u32, +} +impl ::core::marker::Copy for VIDEO_BANK_SELECT {} +impl ::core::clone::Clone for VIDEO_BANK_SELECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct VIDEO_BRIGHTNESS_POLICY { + pub DefaultToBiosPolicy: super::super::Foundation::BOOLEAN, + pub LevelCount: u8, + pub Level: [VIDEO_BRIGHTNESS_POLICY_0; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for VIDEO_BRIGHTNESS_POLICY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for VIDEO_BRIGHTNESS_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct VIDEO_BRIGHTNESS_POLICY_0 { + pub BatteryLevel: u8, + pub Brightness: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for VIDEO_BRIGHTNESS_POLICY_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for VIDEO_BRIGHTNESS_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_CLUT { + pub NumEntries: u16, + pub FirstEntry: u16, + pub LookupTable: [VIDEO_CLUT_0; 1], +} +impl ::core::marker::Copy for VIDEO_CLUT {} +impl ::core::clone::Clone for VIDEO_CLUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VIDEO_CLUT_0 { + pub RgbArray: VIDEO_CLUTDATA, + pub RgbLong: u32, +} +impl ::core::marker::Copy for VIDEO_CLUT_0 {} +impl ::core::clone::Clone for VIDEO_CLUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_CLUTDATA { + pub Red: u8, + pub Green: u8, + pub Blue: u8, + pub Unused: u8, +} +impl ::core::marker::Copy for VIDEO_CLUTDATA {} +impl ::core::clone::Clone for VIDEO_CLUTDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_COLOR_CAPABILITIES { + pub Length: u32, + pub AttributeFlags: u32, + pub RedPhosphoreDecay: i32, + pub GreenPhosphoreDecay: i32, + pub BluePhosphoreDecay: i32, + pub WhiteChromaticity_x: i32, + pub WhiteChromaticity_y: i32, + pub WhiteChromaticity_Y: i32, + pub RedChromaticity_x: i32, + pub RedChromaticity_y: i32, + pub GreenChromaticity_x: i32, + pub GreenChromaticity_y: i32, + pub BlueChromaticity_x: i32, + pub BlueChromaticity_y: i32, + pub WhiteGamma: i32, + pub RedGamma: i32, + pub GreenGamma: i32, + pub BlueGamma: i32, +} +impl ::core::marker::Copy for VIDEO_COLOR_CAPABILITIES {} +impl ::core::clone::Clone for VIDEO_COLOR_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_COLOR_LUT_DATA { + pub Length: u32, + pub LutDataFormat: u32, + pub LutData: [u8; 1], +} +impl ::core::marker::Copy for VIDEO_COLOR_LUT_DATA {} +impl ::core::clone::Clone for VIDEO_COLOR_LUT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_CURSOR_ATTRIBUTES { + pub Width: u16, + pub Height: u16, + pub Column: i16, + pub Row: i16, + pub Rate: u8, + pub Enable: u8, +} +impl ::core::marker::Copy for VIDEO_CURSOR_ATTRIBUTES {} +impl ::core::clone::Clone for VIDEO_CURSOR_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_CURSOR_POSITION { + pub Column: i16, + pub Row: i16, +} +impl ::core::marker::Copy for VIDEO_CURSOR_POSITION {} +impl ::core::clone::Clone for VIDEO_CURSOR_POSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_DEVICE_SESSION_STATUS { + pub bEnable: u32, + pub bSuccess: u32, +} +impl ::core::marker::Copy for VIDEO_DEVICE_SESSION_STATUS {} +impl ::core::clone::Clone for VIDEO_DEVICE_SESSION_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_HARDWARE_STATE { + pub StateHeader: *mut VIDEO_HARDWARE_STATE_HEADER, + pub StateLength: u32, +} +impl ::core::marker::Copy for VIDEO_HARDWARE_STATE {} +impl ::core::clone::Clone for VIDEO_HARDWARE_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_HARDWARE_STATE_HEADER { + pub Length: u32, + pub PortValue: [u8; 48], + pub AttribIndexDataState: u32, + pub BasicSequencerOffset: u32, + pub BasicCrtContOffset: u32, + pub BasicGraphContOffset: u32, + pub BasicAttribContOffset: u32, + pub BasicDacOffset: u32, + pub BasicLatchesOffset: u32, + pub ExtendedSequencerOffset: u32, + pub ExtendedCrtContOffset: u32, + pub ExtendedGraphContOffset: u32, + pub ExtendedAttribContOffset: u32, + pub ExtendedDacOffset: u32, + pub ExtendedValidatorStateOffset: u32, + pub ExtendedMiscDataOffset: u32, + pub PlaneLength: u32, + pub Plane1Offset: u32, + pub Plane2Offset: u32, + pub Plane3Offset: u32, + pub Plane4Offset: u32, + pub VGAStateFlags: u32, + pub DIBOffset: u32, + pub DIBBitsPerPixel: u32, + pub DIBXResolution: u32, + pub DIBYResolution: u32, + pub DIBXlatOffset: u32, + pub DIBXlatLength: u32, + pub VesaInfoOffset: u32, + pub FrameBufferData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for VIDEO_HARDWARE_STATE_HEADER {} +impl ::core::clone::Clone for VIDEO_HARDWARE_STATE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_LOAD_FONT_INFORMATION { + pub WidthInPixels: u16, + pub HeightInPixels: u16, + pub FontSize: u32, + pub Font: [u8; 1], +} +impl ::core::marker::Copy for VIDEO_LOAD_FONT_INFORMATION {} +impl ::core::clone::Clone for VIDEO_LOAD_FONT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_LUT_RGB256WORDS { + pub Red: [u16; 256], + pub Green: [u16; 256], + pub Blue: [u16; 256], +} +impl ::core::marker::Copy for VIDEO_LUT_RGB256WORDS {} +impl ::core::clone::Clone for VIDEO_LUT_RGB256WORDS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_MEMORY { + pub RequestedVirtualAddress: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for VIDEO_MEMORY {} +impl ::core::clone::Clone for VIDEO_MEMORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_MEMORY_INFORMATION { + pub VideoRamBase: *mut ::core::ffi::c_void, + pub VideoRamLength: u32, + pub FrameBufferBase: *mut ::core::ffi::c_void, + pub FrameBufferLength: u32, +} +impl ::core::marker::Copy for VIDEO_MEMORY_INFORMATION {} +impl ::core::clone::Clone for VIDEO_MEMORY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_MODE { + pub RequestedMode: u32, +} +impl ::core::marker::Copy for VIDEO_MODE {} +impl ::core::clone::Clone for VIDEO_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_MODE_INFORMATION { + pub Length: u32, + pub ModeIndex: u32, + pub VisScreenWidth: u32, + pub VisScreenHeight: u32, + pub ScreenStride: u32, + pub NumberOfPlanes: u32, + pub BitsPerPlane: u32, + pub Frequency: u32, + pub XMillimeter: u32, + pub YMillimeter: u32, + pub NumberRedBits: u32, + pub NumberGreenBits: u32, + pub NumberBlueBits: u32, + pub RedMask: u32, + pub GreenMask: u32, + pub BlueMask: u32, + pub AttributeFlags: u32, + pub VideoMemoryBitmapWidth: u32, + pub VideoMemoryBitmapHeight: u32, + pub DriverSpecificAttributeFlags: u32, +} +impl ::core::marker::Copy for VIDEO_MODE_INFORMATION {} +impl ::core::clone::Clone for VIDEO_MODE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_MONITOR_DESCRIPTOR { + pub DescriptorSize: u32, + pub Descriptor: [u8; 1], +} +impl ::core::marker::Copy for VIDEO_MONITOR_DESCRIPTOR {} +impl ::core::clone::Clone for VIDEO_MONITOR_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_NUM_MODES { + pub NumModes: u32, + pub ModeInformationLength: u32, +} +impl ::core::marker::Copy for VIDEO_NUM_MODES {} +impl ::core::clone::Clone for VIDEO_NUM_MODES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_PALETTE_DATA { + pub NumEntries: u16, + pub FirstEntry: u16, + pub Colors: [u16; 1], +} +impl ::core::marker::Copy for VIDEO_PALETTE_DATA {} +impl ::core::clone::Clone for VIDEO_PALETTE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_PERFORMANCE_COUNTER { + pub NbOfAllocationEvicted: [u64; 10], + pub NbOfAllocationMarked: [u64; 10], + pub NbOfAllocationRestored: [u64; 10], + pub KBytesEvicted: [u64; 10], + pub KBytesMarked: [u64; 10], + pub KBytesRestored: [u64; 10], + pub NbProcessCommited: u64, + pub NbAllocationCommited: u64, + pub NbAllocationMarked: u64, + pub KBytesAllocated: u64, + pub KBytesAvailable: u64, + pub KBytesCurMarked: u64, + pub Reference: u64, + pub Unreference: u64, + pub TrueReference: u64, + pub NbOfPageIn: u64, + pub KBytesPageIn: u64, + pub NbOfPageOut: u64, + pub KBytesPageOut: u64, + pub NbOfRotateOut: u64, + pub KBytesRotateOut: u64, +} +impl ::core::marker::Copy for VIDEO_PERFORMANCE_COUNTER {} +impl ::core::clone::Clone for VIDEO_PERFORMANCE_COUNTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_POINTER_ATTRIBUTES { + pub Flags: u32, + pub Width: u32, + pub Height: u32, + pub WidthInBytes: u32, + pub Enable: u32, + pub Column: i16, + pub Row: i16, + pub Pixels: [u8; 1], +} +impl ::core::marker::Copy for VIDEO_POINTER_ATTRIBUTES {} +impl ::core::clone::Clone for VIDEO_POINTER_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_POINTER_CAPABILITIES { + pub Flags: u32, + pub MaxWidth: u32, + pub MaxHeight: u32, + pub HWPtrBitmapStart: u32, + pub HWPtrBitmapEnd: u32, +} +impl ::core::marker::Copy for VIDEO_POINTER_CAPABILITIES {} +impl ::core::clone::Clone for VIDEO_POINTER_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_POINTER_POSITION { + pub Column: i16, + pub Row: i16, +} +impl ::core::marker::Copy for VIDEO_POINTER_POSITION {} +impl ::core::clone::Clone for VIDEO_POINTER_POSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_POWER_MANAGEMENT { + pub Length: u32, + pub DPMSVersion: u32, + pub PowerState: u32, +} +impl ::core::marker::Copy for VIDEO_POWER_MANAGEMENT {} +impl ::core::clone::Clone for VIDEO_POWER_MANAGEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_PUBLIC_ACCESS_RANGES { + pub InIoSpace: u32, + pub MappedInIoSpace: u32, + pub VirtualAddress: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for VIDEO_PUBLIC_ACCESS_RANGES {} +impl ::core::clone::Clone for VIDEO_PUBLIC_ACCESS_RANGES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_QUERY_PERFORMANCE_COUNTER { + pub BufferSize: u32, + pub Buffer: *mut VIDEO_PERFORMANCE_COUNTER, +} +impl ::core::marker::Copy for VIDEO_QUERY_PERFORMANCE_COUNTER {} +impl ::core::clone::Clone for VIDEO_QUERY_PERFORMANCE_COUNTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_REGISTER_VDM { + pub MinimumStateSize: u32, +} +impl ::core::marker::Copy for VIDEO_REGISTER_VDM {} +impl ::core::clone::Clone for VIDEO_REGISTER_VDM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct VIDEO_SHARE_MEMORY { + pub ProcessHandle: super::super::Foundation::HANDLE, + pub ViewOffset: u32, + pub ViewSize: u32, + pub RequestedVirtualAddress: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for VIDEO_SHARE_MEMORY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for VIDEO_SHARE_MEMORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEO_SHARE_MEMORY_INFORMATION { + pub SharedViewOffset: u32, + pub SharedViewSize: u32, + pub VirtualAddress: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for VIDEO_SHARE_MEMORY_INFORMATION {} +impl ::core::clone::Clone for VIDEO_SHARE_MEMORY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct VIDEO_VDM { + pub ProcessHandle: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for VIDEO_VDM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for VIDEO_VDM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct VIDEO_WIN32K_CALLBACKS { + pub PhysDisp: *mut ::core::ffi::c_void, + pub Callout: PVIDEO_WIN32K_CALLOUT, + pub bACPI: u32, + pub pPhysDeviceObject: super::super::Foundation::HANDLE, + pub DualviewFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for VIDEO_WIN32K_CALLBACKS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for VIDEO_WIN32K_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct VIDEO_WIN32K_CALLBACKS_PARAMS { + pub CalloutType: VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE, + pub PhysDisp: *mut ::core::ffi::c_void, + pub Param: usize, + pub Status: i32, + pub LockUserSession: super::super::Foundation::BOOLEAN, + pub IsPostDevice: super::super::Foundation::BOOLEAN, + pub SurpriseRemoval: super::super::Foundation::BOOLEAN, + pub WaitForQueueReady: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for VIDEO_WIN32K_CALLBACKS_PARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for VIDEO_WIN32K_CALLBACKS_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WCRUN { + pub wcLow: u16, + pub cGlyphs: u16, + pub phg: *mut u32, +} +impl ::core::marker::Copy for WCRUN {} +impl ::core::clone::Clone for WCRUN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WNDOBJ { + pub coClient: CLIPOBJ, + pub pvConsumer: *mut ::core::ffi::c_void, + pub rclClient: super::super::Foundation::RECTL, + pub psoOwner: *mut SURFOBJ, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNDOBJ {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNDOBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct XFORML { + pub eM11: f32, + pub eM12: f32, + pub eM21: f32, + pub eM22: f32, + pub eDx: f32, + pub eDy: f32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for XFORML {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for XFORML { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct XFORML { + pub eM11: u32, + pub eM12: u32, + pub eM21: u32, + pub eM22: u32, + pub eDx: u32, + pub eDy: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for XFORML {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for XFORML { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XFORMOBJ { + pub ulReserved: u32, +} +impl ::core::marker::Copy for XFORMOBJ {} +impl ::core::clone::Clone for XFORMOBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XLATEOBJ { + pub iUniq: u32, + pub flXlate: u32, + pub iSrcType: u16, + pub iDstType: u16, + pub cEntries: u32, + pub pulXlate: *mut u32, +} +impl ::core::marker::Copy for XLATEOBJ {} +impl ::core::clone::Clone for XLATEOBJ { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FREEOBJPROC = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN = ::core::option::Option isize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvAccumulateD3DDirtyRect = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFN_DrvAlphaBlend = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvAssertMode = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvAssociateSharedSurface = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvBitBlt = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_DrvCompletePDEV = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvCopyBits = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFN_DrvCreateDeviceBitmap = ::core::option::Option super::super::Graphics::Gdi::HBITMAP>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFN_DrvCreateDeviceBitmapEx = ::core::option::Option super::super::Graphics::Gdi::HBITMAP>; +pub type PFN_DrvDeleteDeviceBitmap = ::core::option::Option ()>; +pub type PFN_DrvDeleteDeviceBitmapEx = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub type PFN_DrvDeriveSurface = ::core::option::Option super::super::Graphics::Gdi::HBITMAP>; +#[doc = "Required features: `\"Win32_Graphics_OpenGL\"`"] +#[cfg(feature = "Win32_Graphics_OpenGL")] +pub type PFN_DrvDescribePixelFormat = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvDestroyFont = ::core::option::Option ()>; +pub type PFN_DrvDisableDirectDraw = ::core::option::Option ()>; +pub type PFN_DrvDisableDriver = ::core::option::Option ()>; +pub type PFN_DrvDisablePDEV = ::core::option::Option ()>; +pub type PFN_DrvDisableSurface = ::core::option::Option ()>; +pub type PFN_DrvDitherColor = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvDrawEscape = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +pub type PFN_DrvEnableDirectDraw = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvEnableDriver = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFN_DrvEnablePDEV = ::core::option::Option DHPDEV>; +pub type PFN_DrvEnableSurface = ::core::option::Option HSURF>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvEndDoc = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvEndDxInterop = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvEscape = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvFillPath = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvFontManagement = ::core::option::Option u32>; +pub type PFN_DrvFree = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))] +pub type PFN_DrvGetDirectDrawInfo = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvGetGlyphMode = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFN_DrvGetModes = ::core::option::Option u32>; +pub type PFN_DrvGetTrueTypeFile = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFN_DrvGradientFill = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvIcmCheckBitmapBits = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_ColorSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_ColorSystem"))] +pub type PFN_DrvIcmCreateColorTransform = ::core::option::Option super::super::Foundation::HANDLE>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvIcmDeleteColorTransform = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvIcmSetDeviceGammaRamp = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvLineTo = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub type PFN_DrvLoadFontFile = ::core::option::Option usize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvLockDisplayArea = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvMovePointer = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvNextBand = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvNotify = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvPaint = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFN_DrvPlgBlt = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvQueryAdvanceWidths = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvQueryDeviceSupport = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFN_DrvQueryFont = ::core::option::Option *mut IFIMETRICS>; +pub type PFN_DrvQueryFontCaps = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvQueryFontData = ::core::option::Option i32>; +pub type PFN_DrvQueryFontFile = ::core::option::Option i32>; +pub type PFN_DrvQueryFontTree = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvQueryGlyphAttrs = ::core::option::Option *mut FD_GLYPHATTR>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvQueryPerBandInfo = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvQuerySpoolType = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFN_DrvQueryTrueTypeOutline = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvQueryTrueTypeSection = ::core::option::Option i32>; +pub type PFN_DrvQueryTrueTypeTable = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvRealizeBrush = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_DrvRenderHint = ::core::option::Option i32>; +pub type PFN_DrvResetDevice = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvResetPDEV = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvSaveScreenBits = ::core::option::Option usize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvSendPage = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvSetPalette = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvSetPixelFormat = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvSetPointerShape = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvStartBanding = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvStartDoc = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvStartDxInterop = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvStartPage = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFN_DrvStretchBlt = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFN_DrvStretchBltROP = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvStrokeAndFillPath = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvStrokePath = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvSurfaceComplete = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvSwapBuffers = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvSynchronize = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvSynchronizeRedirectionBitmaps = ::core::option::Option super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvSynchronizeSurface = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvTextOut = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvTransparentBlt = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvUnloadFontFile = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvUnlockDisplayArea = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_EngCombineRgn = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_EngCopyRgn = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_EngCreateRectRgn = ::core::option::Option super::super::Foundation::HANDLE>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_EngDeleteRgn = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_EngIntersectRgn = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_EngSubtractRgn = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_EngUnionRgn = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_EngXorRgn = ::core::option::Option i32>; +pub type PVIDEO_WIN32K_CALLOUT = ::core::option::Option ()>; +pub type SORTCOMP = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WNDOBJCHANGEPROC = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Enumeration/Pnp/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Enumeration/Pnp/mod.rs new file mode 100644 index 000000000..0fb7fb318 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Enumeration/Pnp/mod.rs @@ -0,0 +1,131 @@ +::windows_targets::link!("cfgmgr32.dll" "system" fn SwDeviceClose(hswdevice : HSWDEVICE) -> ()); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SwDeviceCreate(pszenumeratorname : ::windows_sys::core::PCWSTR, pszparentdeviceinstance : ::windows_sys::core::PCWSTR, pcreateinfo : *const SW_DEVICE_CREATE_INFO, cpropertycount : u32, pproperties : *const super::super::Properties:: DEVPROPERTY, pcallback : SW_DEVICE_CREATE_CALLBACK, pcontext : *const ::core::ffi::c_void, phswdevice : *mut HSWDEVICE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cfgmgr32.dll" "system" fn SwDeviceGetLifetime(hswdevice : HSWDEVICE, plifetime : *mut SW_DEVICE_LIFETIME) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn SwDeviceInterfacePropertySet(hswdevice : HSWDEVICE, pszdeviceinterfaceid : ::windows_sys::core::PCWSTR, cpropertycount : u32, pproperties : *const super::super::Properties:: DEVPROPERTY) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`"] fn SwDeviceInterfaceRegister(hswdevice : HSWDEVICE, pinterfaceclassguid : *const ::windows_sys::core::GUID, pszreferencestring : ::windows_sys::core::PCWSTR, cpropertycount : u32, pproperties : *const super::super::Properties:: DEVPROPERTY, fenabled : super::super::super::Foundation:: BOOL, ppszdeviceinterfaceid : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SwDeviceInterfaceSetState(hswdevice : HSWDEVICE, pszdeviceinterfaceid : ::windows_sys::core::PCWSTR, fenabled : super::super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Devices_Properties")] +::windows_targets::link!("cfgmgr32.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`"] fn SwDevicePropertySet(hswdevice : HSWDEVICE, cpropertycount : u32, pproperties : *const super::super::Properties:: DEVPROPERTY) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cfgmgr32.dll" "system" fn SwDeviceSetLifetime(hswdevice : HSWDEVICE, lifetime : SW_DEVICE_LIFETIME) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cfgmgr32.dll" "system" fn SwMemFree(pmem : *const ::core::ffi::c_void) -> ()); +pub type IUPnPAddressFamilyControl = *mut ::core::ffi::c_void; +pub type IUPnPAsyncResult = *mut ::core::ffi::c_void; +pub type IUPnPDescriptionDocument = *mut ::core::ffi::c_void; +pub type IUPnPDescriptionDocumentCallback = *mut ::core::ffi::c_void; +pub type IUPnPDevice = *mut ::core::ffi::c_void; +pub type IUPnPDeviceControl = *mut ::core::ffi::c_void; +pub type IUPnPDeviceControlHttpHeaders = *mut ::core::ffi::c_void; +pub type IUPnPDeviceDocumentAccess = *mut ::core::ffi::c_void; +pub type IUPnPDeviceDocumentAccessEx = *mut ::core::ffi::c_void; +pub type IUPnPDeviceFinder = *mut ::core::ffi::c_void; +pub type IUPnPDeviceFinderAddCallbackWithInterface = *mut ::core::ffi::c_void; +pub type IUPnPDeviceFinderCallback = *mut ::core::ffi::c_void; +pub type IUPnPDeviceProvider = *mut ::core::ffi::c_void; +pub type IUPnPDevices = *mut ::core::ffi::c_void; +pub type IUPnPEventSink = *mut ::core::ffi::c_void; +pub type IUPnPEventSource = *mut ::core::ffi::c_void; +pub type IUPnPHttpHeaderControl = *mut ::core::ffi::c_void; +pub type IUPnPRegistrar = *mut ::core::ffi::c_void; +pub type IUPnPRemoteEndpointInfo = *mut ::core::ffi::c_void; +pub type IUPnPReregistrar = *mut ::core::ffi::c_void; +pub type IUPnPService = *mut ::core::ffi::c_void; +pub type IUPnPServiceAsync = *mut ::core::ffi::c_void; +pub type IUPnPServiceCallback = *mut ::core::ffi::c_void; +pub type IUPnPServiceDocumentAccess = *mut ::core::ffi::c_void; +pub type IUPnPServiceEnumProperty = *mut ::core::ffi::c_void; +pub type IUPnPServices = *mut ::core::ffi::c_void; +pub const ADDRESS_FAMILY_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddressFamily"); +pub const FAULT_ACTION_SPECIFIC_BASE: u32 = 600u32; +pub const FAULT_ACTION_SPECIFIC_MAX: u32 = 899u32; +pub const FAULT_DEVICE_INTERNAL_ERROR: u32 = 501u32; +pub const FAULT_INVALID_ACTION: u32 = 401u32; +pub const FAULT_INVALID_ARG: u32 = 402u32; +pub const FAULT_INVALID_SEQUENCE_NUMBER: u32 = 403u32; +pub const FAULT_INVALID_VARIABLE: u32 = 404u32; +pub const REMOTE_ADDRESS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RemoteAddress"); +pub const SWDeviceCapabilitiesDriverRequired: SW_DEVICE_CAPABILITIES = 8i32; +pub const SWDeviceCapabilitiesNoDisplayInUI: SW_DEVICE_CAPABILITIES = 4i32; +pub const SWDeviceCapabilitiesNone: SW_DEVICE_CAPABILITIES = 0i32; +pub const SWDeviceCapabilitiesRemovable: SW_DEVICE_CAPABILITIES = 1i32; +pub const SWDeviceCapabilitiesSilentInstall: SW_DEVICE_CAPABILITIES = 2i32; +pub const SWDeviceLifetimeHandle: SW_DEVICE_LIFETIME = 0i32; +pub const SWDeviceLifetimeMax: SW_DEVICE_LIFETIME = 2i32; +pub const SWDeviceLifetimeParentPresent: SW_DEVICE_LIFETIME = 1i32; +pub const UPNP_ADDRESSFAMILY_BOTH: u32 = 3u32; +pub const UPNP_ADDRESSFAMILY_IPv4: u32 = 1u32; +pub const UPNP_ADDRESSFAMILY_IPv6: u32 = 2u32; +pub const UPNP_E_ACTION_REQUEST_FAILED: ::windows_sys::core::HRESULT = -2147220976i32; +pub const UPNP_E_ACTION_SPECIFIC_BASE: ::windows_sys::core::HRESULT = -2147220736i32; +pub const UPNP_E_DEVICE_ELEMENT_EXPECTED: ::windows_sys::core::HRESULT = -2147220991i32; +pub const UPNP_E_DEVICE_ERROR: ::windows_sys::core::HRESULT = -2147220972i32; +pub const UPNP_E_DEVICE_NODE_INCOMPLETE: ::windows_sys::core::HRESULT = -2147220988i32; +pub const UPNP_E_DEVICE_NOTREGISTERED: ::windows_sys::core::HRESULT = -2147180494i32; +pub const UPNP_E_DEVICE_RUNNING: ::windows_sys::core::HRESULT = -2147180495i32; +pub const UPNP_E_DEVICE_TIMEOUT: ::windows_sys::core::HRESULT = -2147220969i32; +pub const UPNP_E_DUPLICATE_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2147180511i32; +pub const UPNP_E_DUPLICATE_SERVICE_ID: ::windows_sys::core::HRESULT = -2147180510i32; +pub const UPNP_E_ERROR_PROCESSING_RESPONSE: ::windows_sys::core::HRESULT = -2147220970i32; +pub const UPNP_E_EVENT_SUBSCRIPTION_FAILED: ::windows_sys::core::HRESULT = -2147220223i32; +pub const UPNP_E_ICON_ELEMENT_EXPECTED: ::windows_sys::core::HRESULT = -2147220987i32; +pub const UPNP_E_ICON_NODE_INCOMPLETE: ::windows_sys::core::HRESULT = -2147220986i32; +pub const UPNP_E_INVALID_ACTION: ::windows_sys::core::HRESULT = -2147220985i32; +pub const UPNP_E_INVALID_ARGUMENTS: ::windows_sys::core::HRESULT = -2147220984i32; +pub const UPNP_E_INVALID_DESCRIPTION: ::windows_sys::core::HRESULT = -2147180509i32; +pub const UPNP_E_INVALID_DOCUMENT: ::windows_sys::core::HRESULT = -2147220224i32; +pub const UPNP_E_INVALID_ICON: ::windows_sys::core::HRESULT = -2147180507i32; +pub const UPNP_E_INVALID_ROOT_NAMESPACE: ::windows_sys::core::HRESULT = -2147180505i32; +pub const UPNP_E_INVALID_SERVICE: ::windows_sys::core::HRESULT = -2147180508i32; +pub const UPNP_E_INVALID_VARIABLE: ::windows_sys::core::HRESULT = -2147220973i32; +pub const UPNP_E_INVALID_XML: ::windows_sys::core::HRESULT = -2147180506i32; +pub const UPNP_E_OUT_OF_SYNC: ::windows_sys::core::HRESULT = -2147220983i32; +pub const UPNP_E_PROTOCOL_ERROR: ::windows_sys::core::HRESULT = -2147220971i32; +pub const UPNP_E_REQUIRED_ELEMENT_ERROR: ::windows_sys::core::HRESULT = -2147180512i32; +pub const UPNP_E_ROOT_ELEMENT_EXPECTED: ::windows_sys::core::HRESULT = -2147220992i32; +pub const UPNP_E_SERVICE_ELEMENT_EXPECTED: ::windows_sys::core::HRESULT = -2147220990i32; +pub const UPNP_E_SERVICE_NODE_INCOMPLETE: ::windows_sys::core::HRESULT = -2147220989i32; +pub const UPNP_E_SUFFIX_TOO_LONG: ::windows_sys::core::HRESULT = -2147180504i32; +pub const UPNP_E_TRANSPORT_ERROR: ::windows_sys::core::HRESULT = -2147220975i32; +pub const UPNP_E_URLBASE_PRESENT: ::windows_sys::core::HRESULT = -2147180503i32; +pub const UPNP_E_VALUE_TOO_LONG: ::windows_sys::core::HRESULT = -2147180496i32; +pub const UPNP_E_VARIABLE_VALUE_UNKNOWN: ::windows_sys::core::HRESULT = -2147220974i32; +pub const UPNP_SERVICE_DELAY_SCPD_AND_SUBSCRIPTION: u32 = 1u32; +pub const UPnPDescriptionDocument: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1d8a9b47_3a28_4ce2_8a4b_bd34e45bceeb); +pub const UPnPDescriptionDocumentEx: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33fd0563_d81a_4393_83cc_0195b1da2f91); +pub const UPnPDevice: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa32552c5_ba61_457a_b59a_a2561e125e33); +pub const UPnPDeviceFinder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe2085f28_feb7_404a_b8e7_e659bdeaaa02); +pub const UPnPDeviceFinderEx: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x181b54fc_380b_4a75_b3f1_4ac45e9605b0); +pub const UPnPDevices: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9e84ffd_ad3c_40a4_b835_0882ebcbaaa8); +pub const UPnPRegistrar: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x204810b9_73b2_11d4_bf42_00b0d0118b56); +pub const UPnPRemoteEndpointInfo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2e5e84e9_4049_4244_b728_2d24227157c7); +pub const UPnPService: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc624ba95_fbcb_4409_8c03_8cceec533ef1); +pub const UPnPServices: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc0bc4b4a_a406_4efc_932f_b8546b8100cc); +pub type SW_DEVICE_CAPABILITIES = i32; +pub type SW_DEVICE_LIFETIME = i32; +pub type HSWDEVICE = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct SW_DEVICE_CREATE_INFO { + pub cbSize: u32, + pub pszInstanceId: ::windows_sys::core::PCWSTR, + pub pszzHardwareIds: ::windows_sys::core::PCWSTR, + pub pszzCompatibleIds: ::windows_sys::core::PCWSTR, + pub pContainerId: *const ::windows_sys::core::GUID, + pub CapabilityFlags: u32, + pub pszDeviceDescription: ::windows_sys::core::PCWSTR, + pub pszDeviceLocation: ::windows_sys::core::PCWSTR, + pub pSecurityDescriptor: *const super::super::super::Security::SECURITY_DESCRIPTOR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for SW_DEVICE_CREATE_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for SW_DEVICE_CREATE_INFO { + fn clone(&self) -> Self { + *self + } +} +pub type SW_DEVICE_CREATE_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Enumeration/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Enumeration/mod.rs new file mode 100644 index 000000000..366197b84 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Enumeration/mod.rs @@ -0,0 +1,3 @@ +#[cfg(feature = "Win32_Devices_Enumeration_Pnp")] +#[doc = "Required features: `\"Win32_Devices_Enumeration_Pnp\"`"] +pub mod Pnp; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Fax/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Fax/mod.rs new file mode 100644 index 000000000..752d67a56 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Fax/mod.rs @@ -0,0 +1,1752 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fxsutility.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CanSendToFaxRecipient() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxAbort(faxhandle : super::super::Foundation:: HANDLE, jobid : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxAccessCheck(faxhandle : super::super::Foundation:: HANDLE, accessmask : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxClose(faxhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxCompleteJobParamsA(jobparams : *mut *mut FAX_JOB_PARAMA, coverpageinfo : *mut *mut FAX_COVERPAGE_INFOA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxCompleteJobParamsW(jobparams : *mut *mut FAX_JOB_PARAMW, coverpageinfo : *mut *mut FAX_COVERPAGE_INFOW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxConnectFaxServerA(machinename : ::windows_sys::core::PCSTR, faxhandle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxConnectFaxServerW(machinename : ::windows_sys::core::PCWSTR, faxhandle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxEnableRoutingMethodA(faxporthandle : super::super::Foundation:: HANDLE, routingguid : ::windows_sys::core::PCSTR, enabled : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxEnableRoutingMethodW(faxporthandle : super::super::Foundation:: HANDLE, routingguid : ::windows_sys::core::PCWSTR, enabled : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxEnumGlobalRoutingInfoA(faxhandle : super::super::Foundation:: HANDLE, routinginfo : *mut *mut FAX_GLOBAL_ROUTING_INFOA, methodsreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxEnumGlobalRoutingInfoW(faxhandle : super::super::Foundation:: HANDLE, routinginfo : *mut *mut FAX_GLOBAL_ROUTING_INFOW, methodsreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxEnumJobsA(faxhandle : super::super::Foundation:: HANDLE, jobentry : *mut *mut FAX_JOB_ENTRYA, jobsreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxEnumJobsW(faxhandle : super::super::Foundation:: HANDLE, jobentry : *mut *mut FAX_JOB_ENTRYW, jobsreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxEnumPortsA(faxhandle : super::super::Foundation:: HANDLE, portinfo : *mut *mut FAX_PORT_INFOA, portsreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxEnumPortsW(faxhandle : super::super::Foundation:: HANDLE, portinfo : *mut *mut FAX_PORT_INFOW, portsreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxEnumRoutingMethodsA(faxporthandle : super::super::Foundation:: HANDLE, routingmethod : *mut *mut FAX_ROUTING_METHODA, methodsreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxEnumRoutingMethodsW(faxporthandle : super::super::Foundation:: HANDLE, routingmethod : *mut *mut FAX_ROUTING_METHODW, methodsreturned : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winfax.dll" "system" fn FaxFreeBuffer(buffer : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxGetConfigurationA(faxhandle : super::super::Foundation:: HANDLE, faxconfig : *mut *mut FAX_CONFIGURATIONA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxGetConfigurationW(faxhandle : super::super::Foundation:: HANDLE, faxconfig : *mut *mut FAX_CONFIGURATIONW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxGetDeviceStatusA(faxporthandle : super::super::Foundation:: HANDLE, devicestatus : *mut *mut FAX_DEVICE_STATUSA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxGetDeviceStatusW(faxporthandle : super::super::Foundation:: HANDLE, devicestatus : *mut *mut FAX_DEVICE_STATUSW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxGetJobA(faxhandle : super::super::Foundation:: HANDLE, jobid : u32, jobentry : *mut *mut FAX_JOB_ENTRYA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxGetJobW(faxhandle : super::super::Foundation:: HANDLE, jobid : u32, jobentry : *mut *mut FAX_JOB_ENTRYW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxGetLoggingCategoriesA(faxhandle : super::super::Foundation:: HANDLE, categories : *mut *mut FAX_LOG_CATEGORYA, numbercategories : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxGetLoggingCategoriesW(faxhandle : super::super::Foundation:: HANDLE, categories : *mut *mut FAX_LOG_CATEGORYW, numbercategories : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxGetPageData(faxhandle : super::super::Foundation:: HANDLE, jobid : u32, buffer : *mut *mut u8, buffersize : *mut u32, imagewidth : *mut u32, imageheight : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxGetPortA(faxporthandle : super::super::Foundation:: HANDLE, portinfo : *mut *mut FAX_PORT_INFOA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxGetPortW(faxporthandle : super::super::Foundation:: HANDLE, portinfo : *mut *mut FAX_PORT_INFOW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxGetRoutingInfoA(faxporthandle : super::super::Foundation:: HANDLE, routingguid : ::windows_sys::core::PCSTR, routinginfobuffer : *mut *mut u8, routinginfobuffersize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxGetRoutingInfoW(faxporthandle : super::super::Foundation:: HANDLE, routingguid : ::windows_sys::core::PCWSTR, routinginfobuffer : *mut *mut u8, routinginfobuffersize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxInitializeEventQueue(faxhandle : super::super::Foundation:: HANDLE, completionport : super::super::Foundation:: HANDLE, completionkey : usize, hwnd : super::super::Foundation:: HWND, messagestart : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxOpenPort(faxhandle : super::super::Foundation:: HANDLE, deviceid : u32, flags : u32, faxporthandle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn FaxPrintCoverPageA(faxcontextinfo : *const FAX_CONTEXT_INFOA, coverpageinfo : *const FAX_COVERPAGE_INFOA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn FaxPrintCoverPageW(faxcontextinfo : *const FAX_CONTEXT_INFOW, coverpageinfo : *const FAX_COVERPAGE_INFOW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxRegisterRoutingExtensionW(faxhandle : super::super::Foundation:: HANDLE, extensionname : ::windows_sys::core::PCWSTR, friendlyname : ::windows_sys::core::PCWSTR, imagename : ::windows_sys::core::PCWSTR, callback : PFAX_ROUTING_INSTALLATION_CALLBACKW, context : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxRegisterServiceProviderW(deviceprovider : ::windows_sys::core::PCWSTR, friendlyname : ::windows_sys::core::PCWSTR, imagename : ::windows_sys::core::PCWSTR, tspname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSendDocumentA(faxhandle : super::super::Foundation:: HANDLE, filename : ::windows_sys::core::PCSTR, jobparams : *mut FAX_JOB_PARAMA, coverpageinfo : *const FAX_COVERPAGE_INFOA, faxjobid : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSendDocumentForBroadcastA(faxhandle : super::super::Foundation:: HANDLE, filename : ::windows_sys::core::PCSTR, faxjobid : *mut u32, faxrecipientcallback : PFAX_RECIPIENT_CALLBACKA, context : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSendDocumentForBroadcastW(faxhandle : super::super::Foundation:: HANDLE, filename : ::windows_sys::core::PCWSTR, faxjobid : *mut u32, faxrecipientcallback : PFAX_RECIPIENT_CALLBACKW, context : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSendDocumentW(faxhandle : super::super::Foundation:: HANDLE, filename : ::windows_sys::core::PCWSTR, jobparams : *mut FAX_JOB_PARAMW, coverpageinfo : *const FAX_COVERPAGE_INFOW, faxjobid : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSetConfigurationA(faxhandle : super::super::Foundation:: HANDLE, faxconfig : *const FAX_CONFIGURATIONA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSetConfigurationW(faxhandle : super::super::Foundation:: HANDLE, faxconfig : *const FAX_CONFIGURATIONW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSetGlobalRoutingInfoA(faxhandle : super::super::Foundation:: HANDLE, routinginfo : *const FAX_GLOBAL_ROUTING_INFOA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSetGlobalRoutingInfoW(faxhandle : super::super::Foundation:: HANDLE, routinginfo : *const FAX_GLOBAL_ROUTING_INFOW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSetJobA(faxhandle : super::super::Foundation:: HANDLE, jobid : u32, command : u32, jobentry : *const FAX_JOB_ENTRYA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSetJobW(faxhandle : super::super::Foundation:: HANDLE, jobid : u32, command : u32, jobentry : *const FAX_JOB_ENTRYW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSetLoggingCategoriesA(faxhandle : super::super::Foundation:: HANDLE, categories : *const FAX_LOG_CATEGORYA, numbercategories : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSetLoggingCategoriesW(faxhandle : super::super::Foundation:: HANDLE, categories : *const FAX_LOG_CATEGORYW, numbercategories : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSetPortA(faxporthandle : super::super::Foundation:: HANDLE, portinfo : *const FAX_PORT_INFOA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSetPortW(faxporthandle : super::super::Foundation:: HANDLE, portinfo : *const FAX_PORT_INFOW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSetRoutingInfoA(faxporthandle : super::super::Foundation:: HANDLE, routingguid : ::windows_sys::core::PCSTR, routinginfobuffer : *const u8, routinginfobuffersize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxSetRoutingInfoW(faxporthandle : super::super::Foundation:: HANDLE, routingguid : ::windows_sys::core::PCWSTR, routinginfobuffer : *const u8, routinginfobuffersize : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn FaxStartPrintJobA(printername : ::windows_sys::core::PCSTR, printinfo : *const FAX_PRINT_INFOA, faxjobid : *mut u32, faxcontextinfo : *mut FAX_CONTEXT_INFOA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn FaxStartPrintJobW(printername : ::windows_sys::core::PCWSTR, printinfo : *const FAX_PRINT_INFOW, faxjobid : *mut u32, faxcontextinfo : *mut FAX_CONTEXT_INFOW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winfax.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaxUnregisterServiceProviderW(deviceprovider : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("fxsutility.dll" "system" fn SendToFaxRecipient(sndmode : SendToMode, lpfilename : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("sti.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StiCreateInstanceW(hinst : super::super::Foundation:: HINSTANCE, dwver : u32, ppsti : *mut IStillImageW, punkouter : ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +pub type IFaxAccount = *mut ::core::ffi::c_void; +pub type IFaxAccountFolders = *mut ::core::ffi::c_void; +pub type IFaxAccountIncomingArchive = *mut ::core::ffi::c_void; +pub type IFaxAccountIncomingQueue = *mut ::core::ffi::c_void; +pub type IFaxAccountNotify = *mut ::core::ffi::c_void; +pub type IFaxAccountOutgoingArchive = *mut ::core::ffi::c_void; +pub type IFaxAccountOutgoingQueue = *mut ::core::ffi::c_void; +pub type IFaxAccountSet = *mut ::core::ffi::c_void; +pub type IFaxAccounts = *mut ::core::ffi::c_void; +pub type IFaxActivity = *mut ::core::ffi::c_void; +pub type IFaxActivityLogging = *mut ::core::ffi::c_void; +pub type IFaxConfiguration = *mut ::core::ffi::c_void; +pub type IFaxDevice = *mut ::core::ffi::c_void; +pub type IFaxDeviceIds = *mut ::core::ffi::c_void; +pub type IFaxDeviceProvider = *mut ::core::ffi::c_void; +pub type IFaxDeviceProviders = *mut ::core::ffi::c_void; +pub type IFaxDevices = *mut ::core::ffi::c_void; +pub type IFaxDocument = *mut ::core::ffi::c_void; +pub type IFaxDocument2 = *mut ::core::ffi::c_void; +pub type IFaxEventLogging = *mut ::core::ffi::c_void; +pub type IFaxFolders = *mut ::core::ffi::c_void; +pub type IFaxInboundRouting = *mut ::core::ffi::c_void; +pub type IFaxInboundRoutingExtension = *mut ::core::ffi::c_void; +pub type IFaxInboundRoutingExtensions = *mut ::core::ffi::c_void; +pub type IFaxInboundRoutingMethod = *mut ::core::ffi::c_void; +pub type IFaxInboundRoutingMethods = *mut ::core::ffi::c_void; +pub type IFaxIncomingArchive = *mut ::core::ffi::c_void; +pub type IFaxIncomingJob = *mut ::core::ffi::c_void; +pub type IFaxIncomingJobs = *mut ::core::ffi::c_void; +pub type IFaxIncomingMessage = *mut ::core::ffi::c_void; +pub type IFaxIncomingMessage2 = *mut ::core::ffi::c_void; +pub type IFaxIncomingMessageIterator = *mut ::core::ffi::c_void; +pub type IFaxIncomingQueue = *mut ::core::ffi::c_void; +pub type IFaxJobStatus = *mut ::core::ffi::c_void; +pub type IFaxLoggingOptions = *mut ::core::ffi::c_void; +pub type IFaxOutboundRouting = *mut ::core::ffi::c_void; +pub type IFaxOutboundRoutingGroup = *mut ::core::ffi::c_void; +pub type IFaxOutboundRoutingGroups = *mut ::core::ffi::c_void; +pub type IFaxOutboundRoutingRule = *mut ::core::ffi::c_void; +pub type IFaxOutboundRoutingRules = *mut ::core::ffi::c_void; +pub type IFaxOutgoingArchive = *mut ::core::ffi::c_void; +pub type IFaxOutgoingJob = *mut ::core::ffi::c_void; +pub type IFaxOutgoingJob2 = *mut ::core::ffi::c_void; +pub type IFaxOutgoingJobs = *mut ::core::ffi::c_void; +pub type IFaxOutgoingMessage = *mut ::core::ffi::c_void; +pub type IFaxOutgoingMessage2 = *mut ::core::ffi::c_void; +pub type IFaxOutgoingMessageIterator = *mut ::core::ffi::c_void; +pub type IFaxOutgoingQueue = *mut ::core::ffi::c_void; +pub type IFaxReceiptOptions = *mut ::core::ffi::c_void; +pub type IFaxRecipient = *mut ::core::ffi::c_void; +pub type IFaxRecipients = *mut ::core::ffi::c_void; +pub type IFaxSecurity = *mut ::core::ffi::c_void; +pub type IFaxSecurity2 = *mut ::core::ffi::c_void; +pub type IFaxSender = *mut ::core::ffi::c_void; +pub type IFaxServer = *mut ::core::ffi::c_void; +pub type IFaxServer2 = *mut ::core::ffi::c_void; +pub type IFaxServerNotify = *mut ::core::ffi::c_void; +pub type IFaxServerNotify2 = *mut ::core::ffi::c_void; +pub type IStiDevice = *mut ::core::ffi::c_void; +pub type IStiDeviceControl = *mut ::core::ffi::c_void; +pub type IStiUSD = *mut ::core::ffi::c_void; +pub type IStillImageW = *mut ::core::ffi::c_void; +pub const CF_MSFAXSRV_DEVICE_ID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FAXSRV_DeviceID"); +pub const CF_MSFAXSRV_FSP_GUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FAXSRV_FSPGuid"); +pub const CF_MSFAXSRV_ROUTEEXT_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FAXSRV_RoutingExtName"); +pub const CF_MSFAXSRV_ROUTING_METHOD_GUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FAXSRV_RoutingMethodGuid"); +pub const CF_MSFAXSRV_SERVER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FAXSRV_ServerName"); +pub const CLSID_Sti: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb323f8e0_2e68_11d0_90ea_00aa0060f86c); +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WIA_DeviceType: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x6bdd1fc6_810f_11d0_bec7_08002be2092f), pid: 2 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WIA_USDClassId: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x6bdd1fc6_810f_11d0_bec7_08002be2092f), pid: 3 }; +pub const DEV_ID_SRC_FAX: FAX_ENUM_DEVICE_ID_SOURCE = 0i32; +pub const DEV_ID_SRC_TAPI: FAX_ENUM_DEVICE_ID_SOURCE = 1i32; +pub const DRT_EMAIL: FAX_ENUM_DELIVERY_REPORT_TYPES = 1i32; +pub const DRT_INBOX: FAX_ENUM_DELIVERY_REPORT_TYPES = 2i32; +pub const DRT_NONE: FAX_ENUM_DELIVERY_REPORT_TYPES = 0i32; +pub const FAXDEVRECEIVE_SIZE: u32 = 4096u32; +pub const FAXDEVREPORTSTATUS_SIZE: u32 = 4096u32; +pub const FAXLOG_CATEGORY_INBOUND: FAX_ENUM_LOG_CATEGORIES = 3i32; +pub const FAXLOG_CATEGORY_INIT: FAX_ENUM_LOG_CATEGORIES = 1i32; +pub const FAXLOG_CATEGORY_OUTBOUND: FAX_ENUM_LOG_CATEGORIES = 2i32; +pub const FAXLOG_CATEGORY_UNKNOWN: FAX_ENUM_LOG_CATEGORIES = 4i32; +pub const FAXLOG_LEVEL_MAX: FAX_ENUM_LOG_LEVELS = 3i32; +pub const FAXLOG_LEVEL_MED: FAX_ENUM_LOG_LEVELS = 2i32; +pub const FAXLOG_LEVEL_MIN: FAX_ENUM_LOG_LEVELS = 1i32; +pub const FAXLOG_LEVEL_NONE: FAX_ENUM_LOG_LEVELS = 0i32; +pub const FAXSRV_DEVICE_NODETYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3115a19a_6251_46ac_9425_14782858b8c9); +pub const FAXSRV_DEVICE_PROVIDER_NODETYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbd38e2ac_b926_4161_8640_0f6956ee2ba3); +pub const FAXSRV_ROUTING_METHOD_NODETYPE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x220d2cb0_85a9_4a43_b6e8_9d66b44f1af5); +pub const FAX_CONFIG_QUERY: u32 = 4u32; +pub const FAX_CONFIG_SET: u32 = 8u32; +pub const FAX_ERR_BAD_GROUP_CONFIGURATION: i32 = 7003i32; +pub const FAX_ERR_DEVICE_NUM_LIMIT_EXCEEDED: i32 = 7010i32; +pub const FAX_ERR_DIRECTORY_IN_USE: i32 = 7007i32; +pub const FAX_ERR_END: i32 = 7013i32; +pub const FAX_ERR_FILE_ACCESS_DENIED: i32 = 7008i32; +pub const FAX_ERR_GROUP_IN_USE: i32 = 7004i32; +pub const FAX_ERR_GROUP_NOT_FOUND: i32 = 7002i32; +pub const FAX_ERR_MESSAGE_NOT_FOUND: i32 = 7009i32; +pub const FAX_ERR_NOT_NTFS: i32 = 7006i32; +pub const FAX_ERR_NOT_SUPPORTED_ON_THIS_SKU: i32 = 7011i32; +pub const FAX_ERR_RECIPIENTS_LIMIT: i32 = 7013i32; +pub const FAX_ERR_RULE_NOT_FOUND: i32 = 7005i32; +pub const FAX_ERR_SRV_OUTOFMEMORY: i32 = 7001i32; +pub const FAX_ERR_START: i32 = 7001i32; +pub const FAX_ERR_VERSION_MISMATCH: i32 = 7012i32; +pub const FAX_E_BAD_GROUP_CONFIGURATION: ::windows_sys::core::HRESULT = -2147214501i32; +pub const FAX_E_DEVICE_NUM_LIMIT_EXCEEDED: ::windows_sys::core::HRESULT = -2147214494i32; +pub const FAX_E_DIRECTORY_IN_USE: ::windows_sys::core::HRESULT = -2147214497i32; +pub const FAX_E_FILE_ACCESS_DENIED: ::windows_sys::core::HRESULT = -2147214496i32; +pub const FAX_E_GROUP_IN_USE: ::windows_sys::core::HRESULT = -2147214500i32; +pub const FAX_E_GROUP_NOT_FOUND: ::windows_sys::core::HRESULT = -2147214502i32; +pub const FAX_E_MESSAGE_NOT_FOUND: ::windows_sys::core::HRESULT = -2147214495i32; +pub const FAX_E_NOT_NTFS: ::windows_sys::core::HRESULT = -2147214498i32; +pub const FAX_E_NOT_SUPPORTED_ON_THIS_SKU: ::windows_sys::core::HRESULT = -2147214493i32; +pub const FAX_E_RECIPIENTS_LIMIT: ::windows_sys::core::HRESULT = -2147214491i32; +pub const FAX_E_RULE_NOT_FOUND: ::windows_sys::core::HRESULT = -2147214499i32; +pub const FAX_E_SRV_OUTOFMEMORY: ::windows_sys::core::HRESULT = -2147214503i32; +pub const FAX_E_VERSION_MISMATCH: ::windows_sys::core::HRESULT = -2147214492i32; +pub const FAX_JOB_MANAGE: u32 = 64u32; +pub const FAX_JOB_QUERY: u32 = 2u32; +pub const FAX_JOB_SUBMIT: u32 = 1u32; +pub const FAX_PORT_QUERY: u32 = 16u32; +pub const FAX_PORT_SET: u32 = 32u32; +pub const FEI_ABORTING: u32 = 15u32; +pub const FEI_ANSWERED: u32 = 21u32; +pub const FEI_BAD_ADDRESS: u32 = 7u32; +pub const FEI_BUSY: u32 = 5u32; +pub const FEI_CALL_BLACKLISTED: u32 = 13u32; +pub const FEI_CALL_DELAYED: u32 = 12u32; +pub const FEI_COMPLETED: u32 = 4u32; +pub const FEI_DELETED: u32 = 23u32; +pub const FEI_DIALING: u32 = 1u32; +pub const FEI_DISCONNECTED: u32 = 9u32; +pub const FEI_FATAL_ERROR: u32 = 10u32; +pub const FEI_FAXSVC_ENDED: u32 = 20u32; +pub const FEI_FAXSVC_STARTED: u32 = 27u32; +pub const FEI_HANDLED: u32 = 26u32; +pub const FEI_IDLE: u32 = 19u32; +pub const FEI_INITIALIZING: u32 = 24u32; +pub const FEI_JOB_QUEUED: u32 = 22u32; +pub const FEI_LINE_UNAVAILABLE: u32 = 25u32; +pub const FEI_MODEM_POWERED_OFF: u32 = 18u32; +pub const FEI_MODEM_POWERED_ON: u32 = 17u32; +pub const FEI_NEVENTS: u32 = 27u32; +pub const FEI_NOT_FAX_CALL: u32 = 11u32; +pub const FEI_NO_ANSWER: u32 = 6u32; +pub const FEI_NO_DIAL_TONE: u32 = 8u32; +pub const FEI_RECEIVING: u32 = 3u32; +pub const FEI_RINGING: u32 = 14u32; +pub const FEI_ROUTING: u32 = 16u32; +pub const FEI_SENDING: u32 = 2u32; +pub const FPF_RECEIVE: u32 = 1u32; +pub const FPF_SEND: u32 = 2u32; +pub const FPF_VIRTUAL: u32 = 4u32; +pub const FPS_ABORTING: u32 = 538968064u32; +pub const FPS_ANSWERED: u32 = 545259520u32; +pub const FPS_AVAILABLE: u32 = 537919488u32; +pub const FPS_BAD_ADDRESS: u32 = 536871168u32; +pub const FPS_BUSY: u32 = 536870976u32; +pub const FPS_CALL_BLACKLISTED: u32 = 536887296u32; +pub const FPS_CALL_DELAYED: u32 = 536879104u32; +pub const FPS_COMPLETED: u32 = 536870920u32; +pub const FPS_DIALING: u32 = 536870913u32; +pub const FPS_DISCONNECTED: u32 = 536871936u32; +pub const FPS_FATAL_ERROR: u32 = 536872960u32; +pub const FPS_HANDLED: u32 = 536870928u32; +pub const FPS_INITIALIZING: u32 = 536903680u32; +pub const FPS_NOT_FAX_CALL: u32 = 536875008u32; +pub const FPS_NO_ANSWER: u32 = 536871040u32; +pub const FPS_NO_DIAL_TONE: u32 = 536871424u32; +pub const FPS_OFFLINE: u32 = 536936448u32; +pub const FPS_RECEIVING: u32 = 536870916u32; +pub const FPS_RINGING: u32 = 537001984u32; +pub const FPS_ROUTING: u32 = 541065216u32; +pub const FPS_SENDING: u32 = 536870914u32; +pub const FPS_UNAVAILABLE: u32 = 536870944u32; +pub const FS_ANSWERED: u32 = 545259520u32; +pub const FS_BAD_ADDRESS: u32 = 536871168u32; +pub const FS_BUSY: u32 = 536870976u32; +pub const FS_CALL_BLACKLISTED: u32 = 536887296u32; +pub const FS_CALL_DELAYED: u32 = 536879104u32; +pub const FS_COMPLETED: u32 = 536870920u32; +pub const FS_DIALING: u32 = 536870913u32; +pub const FS_DISCONNECTED: u32 = 536871936u32; +pub const FS_FATAL_ERROR: u32 = 536872960u32; +pub const FS_HANDLED: u32 = 536870928u32; +pub const FS_INITIALIZING: u32 = 536870912u32; +pub const FS_LINE_UNAVAILABLE: u32 = 536870944u32; +pub const FS_NOT_FAX_CALL: u32 = 536875008u32; +pub const FS_NO_ANSWER: u32 = 536871040u32; +pub const FS_NO_DIAL_TONE: u32 = 536871424u32; +pub const FS_RECEIVING: u32 = 536870916u32; +pub const FS_TRANSMITTING: u32 = 536870914u32; +pub const FS_USER_ABORT: u32 = 538968064u32; +pub const FaxAccount: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa7e0647f_4524_4464_a56d_b9fe666f715e); +pub const FaxAccountFolders: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x85398f49_c034_4a3f_821c_db7d685e8129); +pub const FaxAccountIncomingArchive: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x14b33db5_4c40_4ecf_9ef8_a360cbe809ed); +pub const FaxAccountIncomingQueue: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9bcf6094_b4da_45f4_b8d6_ddeb2186652c); +pub const FaxAccountOutgoingArchive: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x851e7af5_433a_4739_a2df_ad245c2cb98e); +pub const FaxAccountOutgoingQueue: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfeeceefb_c149_48ba_bab8_b791e101f62f); +pub const FaxAccountSet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfbc23c4b_79e0_4291_bc56_c12e253bbf3a); +pub const FaxAccounts: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xda1f94aa_ee2c_47c0_8f4f_2a217075b76e); +pub const FaxActivity: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcfef5d0e_e84d_462e_aabb_87d31eb04fef); +pub const FaxActivityLogging: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf0a0294e_3bbd_48b8_8f13_8c591a55bdbc); +pub const FaxConfiguration: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5857326f_e7b3_41a7_9c19_a91b463e2d56); +pub const FaxDevice: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x59e3a5b2_d676_484b_a6de_720bfa89b5af); +pub const FaxDeviceIds: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcdc539ea_7277_460e_8de0_48a0a5760d1f); +pub const FaxDeviceProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x17cf1aa3_f5eb_484a_9c9a_4440a5baabfc); +pub const FaxDeviceProviders: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeb8fe768_875a_4f5f_82c5_03f23aac1bd7); +pub const FaxDevices: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5589e28e_23cb_4919_8808_e6101846e80d); +pub const FaxDocument: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0f3f9f91_c838_415e_a4f3_3e828ca445e0); +pub const FaxEventLogging: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa6850930_a0f6_4a6f_95b7_db2ebf3d02e3); +pub const FaxFolders: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc35211d7_5776_48cb_af44_c31be3b2cfe5); +pub const FaxInboundRouting: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe80248ed_ad65_4218_8108_991924d4e7ed); +pub const FaxInboundRoutingExtension: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1d7dfb51_7207_4436_a0d9_24e32ee56988); +pub const FaxInboundRoutingExtensions: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x189a48ed_623c_4c0d_80f2_d66c7b9efec2); +pub const FaxInboundRoutingMethod: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4b9fd75c_0194_4b72_9ce5_02a8205ac7d4); +pub const FaxInboundRoutingMethods: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25fcb76a_b750_4b82_9266_fbbbae8922ba); +pub const FaxIncomingArchive: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8426c56a_35a1_4c6f_af93_fc952422e2c2); +pub const FaxIncomingJob: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc47311ec_ae32_41b8_ae4b_3eae0629d0c9); +pub const FaxIncomingJobs: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa1bb8a43_8866_4fb7_a15d_6266c875a5cc); +pub const FaxIncomingMessage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1932fcf7_9d43_4d5a_89ff_03861b321736); +pub const FaxIncomingMessageIterator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6088e1d8_3fc8_45c2_87b1_909a29607ea9); +pub const FaxIncomingQueue: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x69131717_f3f1_40e3_809d_a6cbf7bd85e5); +pub const FaxJobStatus: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7bf222f4_be8d_442f_841d_6132742423bb); +pub const FaxLoggingOptions: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1bf9eea6_ece0_4785_a18b_de56e9eef96a); +pub const FaxOutboundRouting: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc81b385e_b869_4afd_86c0_616498ed9be2); +pub const FaxOutboundRoutingGroup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0213f3e0_6791_4d77_a271_04d2357c50d6); +pub const FaxOutboundRoutingGroups: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xccbea1a5_e2b4_4b57_9421_b04b6289464b); +pub const FaxOutboundRoutingRule: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6549eebf_08d1_475a_828b_3bf105952fa0); +pub const FaxOutboundRoutingRules: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd385beca_e624_4473_bfaa_9f4000831f54); +pub const FaxOutgoingArchive: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43c28403_e04f_474d_990c_b94669148f59); +pub const FaxOutgoingJob: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x71bb429c_0ef9_4915_bec5_a5d897a3e924); +pub const FaxOutgoingJobs: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x92bf2a6c_37be_43fa_a37d_cb0e5f753b35); +pub const FaxOutgoingMessage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x91b4a378_4ad8_4aef_a4dc_97d96e939a3a); +pub const FaxOutgoingMessageIterator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8a3224d0_d30b_49de_9813_cb385790fbbb); +pub const FaxOutgoingQueue: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7421169e_8c43_4b0d_bb16_645c8fa40357); +pub const FaxReceiptOptions: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6982487b_227b_4c96_a61c_248348b05ab6); +pub const FaxRecipient: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x60bf3301_7df8_4bd8_9148_7b5801f9efdf); +pub const FaxRecipients: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xea9bdf53_10a9_4d4f_a067_63c8f84f01b0); +pub const FaxSecurity: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x10c4ddde_abf0_43df_964f_7f3ac21a4c7b); +pub const FaxSecurity2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x735c1248_ec89_4c30_a127_656e92e3c4ea); +pub const FaxSender: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x265d84d0_1850_4360_b7c8_758bbb5f0b96); +pub const FaxServer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcda8acb0_8cf5_4f6c_9ba2_5931d40c8cae); +pub const GUID_DeviceArrivedLaunch: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x740d9ee6_70f1_11d1_ad10_00a02438ad48); +pub const GUID_STIUserDefined1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc00eb795_8c6e_11d2_977a_0000f87a926f); +pub const GUID_STIUserDefined2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc77ae9c5_8c6e_11d2_977a_0000f87a926f); +pub const GUID_STIUserDefined3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc77ae9c6_8c6e_11d2_977a_0000f87a926f); +pub const GUID_ScanFaxImage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc00eb793_8c6e_11d2_977a_0000f87a926f); +pub const GUID_ScanImage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa6c5a715_8c6e_11d2_977a_0000f87a926f); +pub const GUID_ScanPrintImage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb441f425_8c6e_11d2_977a_0000f87a926f); +pub const IS_DIGITAL_CAMERA_STR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsDigitalCamera"); +pub const IS_DIGITAL_CAMERA_VAL: u32 = 1u32; +pub const JC_DELETE: FAX_ENUM_JOB_COMMANDS = 1i32; +pub const JC_PAUSE: FAX_ENUM_JOB_COMMANDS = 2i32; +pub const JC_RESUME: FAX_ENUM_JOB_COMMANDS = 3i32; +pub const JC_UNKNOWN: FAX_ENUM_JOB_COMMANDS = 0i32; +pub const JSA_DISCOUNT_PERIOD: FAX_ENUM_JOB_SEND_ATTRIBUTES = 2i32; +pub const JSA_NOW: FAX_ENUM_JOB_SEND_ATTRIBUTES = 0i32; +pub const JSA_SPECIFIC_TIME: FAX_ENUM_JOB_SEND_ATTRIBUTES = 1i32; +pub const JS_DELETING: u32 = 2u32; +pub const JS_FAILED: u32 = 4u32; +pub const JS_INPROGRESS: u32 = 1u32; +pub const JS_NOLINE: u32 = 16u32; +pub const JS_PAUSED: u32 = 8u32; +pub const JS_PENDING: u32 = 0u32; +pub const JS_RETRIES_EXCEEDED: u32 = 64u32; +pub const JS_RETRYING: u32 = 32u32; +pub const JT_FAIL_RECEIVE: u32 = 4u32; +pub const JT_RECEIVE: u32 = 2u32; +pub const JT_ROUTING: u32 = 3u32; +pub const JT_SEND: u32 = 1u32; +pub const JT_UNKNOWN: u32 = 0u32; +pub const MAX_NOTIFICATION_DATA: u32 = 64u32; +pub const MS_FAXROUTE_EMAIL_GUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{6bbf7bfe-9af2-11d0-abf7-00c04fd91a4e}"); +pub const MS_FAXROUTE_FOLDER_GUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{92041a90-9af2-11d0-abf7-00c04fd91a4e}"); +pub const MS_FAXROUTE_PRINTING_GUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{aec1b37c-9af2-11d0-abf7-00c04fd91a4e}"); +pub const PORT_OPEN_MODIFY: FAX_ENUM_PORT_OPEN_TYPE = 2i32; +pub const PORT_OPEN_QUERY: FAX_ENUM_PORT_OPEN_TYPE = 1i32; +pub const QUERY_STATUS: FAXROUTE_ENABLE = -1i32; +pub const REGSTR_VAL_BAUDRATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BaudRate"); +pub const REGSTR_VAL_BAUDRATE_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("BaudRate"); +pub const REGSTR_VAL_DATA_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceData"); +pub const REGSTR_VAL_DEVICESUBTYPE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceSubType"); +pub const REGSTR_VAL_DEVICETYPE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceType"); +pub const REGSTR_VAL_DEVICE_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverDesc"); +pub const REGSTR_VAL_DEV_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceName"); +pub const REGSTR_VAL_DRIVER_DESC_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverDesc"); +pub const REGSTR_VAL_FRIENDLY_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FriendlyName"); +pub const REGSTR_VAL_GENERIC_CAPS_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Capabilities"); +pub const REGSTR_VAL_GUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GUID"); +pub const REGSTR_VAL_GUID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GUID"); +pub const REGSTR_VAL_HARDWARE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HardwareConfig"); +pub const REGSTR_VAL_HARDWARE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HardwareConfig"); +pub const REGSTR_VAL_LAUNCHABLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Launchable"); +pub const REGSTR_VAL_LAUNCHABLE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Launchable"); +pub const REGSTR_VAL_LAUNCH_APPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LaunchApplications"); +pub const REGSTR_VAL_LAUNCH_APPS_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LaunchApplications"); +pub const REGSTR_VAL_SHUTDOWNDELAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShutdownIfUnusedDelay"); +pub const REGSTR_VAL_SHUTDOWNDELAY_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShutdownIfUnusedDelay"); +pub const REGSTR_VAL_TYPE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Type"); +pub const REGSTR_VAL_VENDOR_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Vendor"); +pub const SEND_TO_FAX_RECIPIENT_ATTACHMENT: SendToMode = 0i32; +pub const STATUS_DISABLE: FAXROUTE_ENABLE = 0i32; +pub const STATUS_ENABLE: FAXROUTE_ENABLE = 1i32; +pub const STIEDFL_ALLDEVICES: u32 = 0u32; +pub const STIEDFL_ATTACHEDONLY: u32 = 1u32; +pub const STIERR_ALREADY_INITIALIZED: ::windows_sys::core::HRESULT = -2147023649i32; +pub const STIERR_BADDRIVER: ::windows_sys::core::HRESULT = -2147024777i32; +pub const STIERR_BETA_VERSION: ::windows_sys::core::HRESULT = -2147023743i32; +pub const STIERR_DEVICENOTREG: i32 = -2147221164i32; +pub const STIERR_DEVICE_LOCKED: ::windows_sys::core::HRESULT = -2147024863i32; +pub const STIERR_DEVICE_NOTREADY: ::windows_sys::core::HRESULT = -2147024875i32; +pub const STIERR_GENERIC: i32 = -2147467259i32; +pub const STIERR_HANDLEEXISTS: ::windows_sys::core::HRESULT = -2147024713i32; +pub const STIERR_INVALID_DEVICE_NAME: ::windows_sys::core::HRESULT = -2147024773i32; +pub const STIERR_INVALID_HW_TYPE: ::windows_sys::core::HRESULT = -2147024883i32; +pub const STIERR_INVALID_PARAM: i32 = -2147024809i32; +pub const STIERR_NEEDS_LOCK: ::windows_sys::core::HRESULT = -2147024738i32; +pub const STIERR_NOEVENTS: ::windows_sys::core::HRESULT = -2147024637i32; +pub const STIERR_NOINTERFACE: i32 = -2147467262i32; +pub const STIERR_NOTINITIALIZED: i32 = -2147024891i32; +pub const STIERR_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -2147024875i32; +pub const STIERR_OBJECTNOTFOUND: ::windows_sys::core::HRESULT = -2147024894i32; +pub const STIERR_OLD_VERSION: ::windows_sys::core::HRESULT = -2147023746i32; +pub const STIERR_OUTOFMEMORY: i32 = -2147024882i32; +pub const STIERR_READONLY: i32 = -2147024891i32; +pub const STIERR_SHARING_VIOLATION: ::windows_sys::core::HRESULT = -2147024864i32; +pub const STIERR_UNSUPPORTED: i32 = -2147467263i32; +pub const STI_ADD_DEVICE_BROADCAST_ACTION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Arrival"); +pub const STI_ADD_DEVICE_BROADCAST_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("STI\\"); +pub const STI_CHANGENOEFFECT: i32 = 1i32; +pub const STI_DEVICE_CREATE_BOTH: u32 = 3u32; +pub const STI_DEVICE_CREATE_DATA: u32 = 2u32; +pub const STI_DEVICE_CREATE_FOR_MONITOR: u32 = 16777216u32; +pub const STI_DEVICE_CREATE_MASK: u32 = 65535u32; +pub const STI_DEVICE_CREATE_STATUS: u32 = 1u32; +pub const STI_DEVICE_VALUE_DEFAULT_LAUNCHAPP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultLaunchApp"); +pub const STI_DEVICE_VALUE_DEFAULT_LAUNCHAPP_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("DefaultLaunchApp"); +pub const STI_DEVICE_VALUE_DISABLE_NOTIFICATIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableNotifications"); +pub const STI_DEVICE_VALUE_DISABLE_NOTIFICATIONS_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("DisableNotifications"); +pub const STI_DEVICE_VALUE_ICM_PROFILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ICMProfile"); +pub const STI_DEVICE_VALUE_ICM_PROFILE_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ICMProfile"); +pub const STI_DEVICE_VALUE_ISIS_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ISISDriverName"); +pub const STI_DEVICE_VALUE_ISIS_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ISISDriverName"); +pub const STI_DEVICE_VALUE_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PollTimeout"); +pub const STI_DEVICE_VALUE_TIMEOUT_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("PollTimeout"); +pub const STI_DEVICE_VALUE_TWAIN_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TwainDS"); +pub const STI_DEVICE_VALUE_TWAIN_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("TwainDS"); +pub const STI_DEVSTATUS_EVENTS_STATE: u32 = 2u32; +pub const STI_DEVSTATUS_ONLINE_STATE: u32 = 1u32; +pub const STI_DIAGCODE_HWPRESENCE: u32 = 1u32; +pub const STI_ERROR_NO_ERROR: i32 = 0i32; +pub const STI_EVENTHANDLING_ENABLED: u32 = 1u32; +pub const STI_EVENTHANDLING_PENDING: u32 = 4u32; +pub const STI_EVENTHANDLING_POLLING: u32 = 2u32; +pub const STI_GENCAP_AUTO_PORTSELECT: u32 = 8u32; +pub const STI_GENCAP_COMMON_MASK: u32 = 255u32; +pub const STI_GENCAP_GENERATE_ARRIVALEVENT: u32 = 4u32; +pub const STI_GENCAP_NOTIFICATIONS: u32 = 1u32; +pub const STI_GENCAP_POLLING_NEEDED: u32 = 2u32; +pub const STI_GENCAP_SUBSET: u32 = 32u32; +pub const STI_GENCAP_WIA: u32 = 16u32; +pub const STI_HW_CONFIG_PARALLEL: u32 = 16u32; +pub const STI_HW_CONFIG_SCSI: u32 = 2u32; +pub const STI_HW_CONFIG_SERIAL: u32 = 8u32; +pub const STI_HW_CONFIG_UNKNOWN: u32 = 1u32; +pub const STI_HW_CONFIG_USB: u32 = 4u32; +pub const STI_MAX_INTERNAL_NAME_LENGTH: u32 = 128u32; +pub const STI_NOTCONNECTED: i32 = 1i32; +pub const STI_OK: i32 = 0i32; +pub const STI_ONLINESTATE_BUSY: u32 = 256u32; +pub const STI_ONLINESTATE_ERROR: u32 = 4u32; +pub const STI_ONLINESTATE_INITIALIZING: u32 = 1024u32; +pub const STI_ONLINESTATE_IO_ACTIVE: u32 = 128u32; +pub const STI_ONLINESTATE_OFFLINE: u32 = 64u32; +pub const STI_ONLINESTATE_OPERATIONAL: u32 = 1u32; +pub const STI_ONLINESTATE_PAPER_JAM: u32 = 16u32; +pub const STI_ONLINESTATE_PAPER_PROBLEM: u32 = 32u32; +pub const STI_ONLINESTATE_PAUSED: u32 = 8u32; +pub const STI_ONLINESTATE_PENDING: u32 = 2u32; +pub const STI_ONLINESTATE_POWER_SAVE: u32 = 8192u32; +pub const STI_ONLINESTATE_TRANSFERRING: u32 = 512u32; +pub const STI_ONLINESTATE_USER_INTERVENTION: u32 = 4096u32; +pub const STI_ONLINESTATE_WARMING_UP: u32 = 2048u32; +pub const STI_RAW_RESERVED: u32 = 4096u32; +pub const STI_REMOVE_DEVICE_BROADCAST_ACTION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Removal"); +pub const STI_REMOVE_DEVICE_BROADCAST_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("STI\\"); +pub const STI_SUBSCRIBE_FLAG_EVENT: u32 = 2u32; +pub const STI_SUBSCRIBE_FLAG_WINDOW: u32 = 1u32; +pub const STI_TRACE_ERROR: u32 = 4u32; +pub const STI_TRACE_INFORMATION: u32 = 1u32; +pub const STI_TRACE_WARNING: u32 = 2u32; +pub const STI_UNICODE: u32 = 1u32; +pub const STI_USD_GENCAP_NATIVE_PUSHSUPPORT: u32 = 1u32; +pub const STI_VERSION: u32 = 2u32; +pub const STI_VERSION_FLAG_MASK: u32 = 4278190080u32; +pub const STI_VERSION_FLAG_UNICODE: u32 = 16777216u32; +pub const STI_VERSION_MIN_ALLOWED: u32 = 2u32; +pub const STI_VERSION_REAL: u32 = 2u32; +pub const SUPPORTS_MSCPLUS_STR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SupportsMSCPlus"); +pub const SUPPORTS_MSCPLUS_VAL: u32 = 1u32; +pub const StiDeviceTypeDefault: STI_DEVICE_MJ_TYPE = 0i32; +pub const StiDeviceTypeDigitalCamera: STI_DEVICE_MJ_TYPE = 2i32; +pub const StiDeviceTypeScanner: STI_DEVICE_MJ_TYPE = 1i32; +pub const StiDeviceTypeStreamingVideo: STI_DEVICE_MJ_TYPE = 3i32; +pub const WIA_INCOMPAT_XP: u32 = 1u32; +pub const faetFXSSVC_ENDED: FAX_ACCOUNT_EVENTS_TYPE_ENUM = 16i32; +pub const faetIN_ARCHIVE: FAX_ACCOUNT_EVENTS_TYPE_ENUM = 4i32; +pub const faetIN_QUEUE: FAX_ACCOUNT_EVENTS_TYPE_ENUM = 1i32; +pub const faetNONE: FAX_ACCOUNT_EVENTS_TYPE_ENUM = 0i32; +pub const faetOUT_ARCHIVE: FAX_ACCOUNT_EVENTS_TYPE_ENUM = 8i32; +pub const faetOUT_QUEUE: FAX_ACCOUNT_EVENTS_TYPE_ENUM = 2i32; +pub const far2MANAGE_ARCHIVES: FAX_ACCESS_RIGHTS_ENUM_2 = 256i32; +pub const far2MANAGE_CONFIG: FAX_ACCESS_RIGHTS_ENUM_2 = 64i32; +pub const far2MANAGE_OUT_JOBS: FAX_ACCESS_RIGHTS_ENUM_2 = 16i32; +pub const far2MANAGE_RECEIVE_FOLDER: FAX_ACCESS_RIGHTS_ENUM_2 = 512i32; +pub const far2QUERY_ARCHIVES: FAX_ACCESS_RIGHTS_ENUM_2 = 128i32; +pub const far2QUERY_CONFIG: FAX_ACCESS_RIGHTS_ENUM_2 = 32i32; +pub const far2QUERY_OUT_JOBS: FAX_ACCESS_RIGHTS_ENUM_2 = 8i32; +pub const far2SUBMIT_HIGH: FAX_ACCESS_RIGHTS_ENUM_2 = 4i32; +pub const far2SUBMIT_LOW: FAX_ACCESS_RIGHTS_ENUM_2 = 1i32; +pub const far2SUBMIT_NORMAL: FAX_ACCESS_RIGHTS_ENUM_2 = 2i32; +pub const farMANAGE_CONFIG: FAX_ACCESS_RIGHTS_ENUM = 64i32; +pub const farMANAGE_IN_ARCHIVE: FAX_ACCESS_RIGHTS_ENUM = 256i32; +pub const farMANAGE_JOBS: FAX_ACCESS_RIGHTS_ENUM = 16i32; +pub const farMANAGE_OUT_ARCHIVE: FAX_ACCESS_RIGHTS_ENUM = 1024i32; +pub const farQUERY_CONFIG: FAX_ACCESS_RIGHTS_ENUM = 32i32; +pub const farQUERY_IN_ARCHIVE: FAX_ACCESS_RIGHTS_ENUM = 128i32; +pub const farQUERY_JOBS: FAX_ACCESS_RIGHTS_ENUM = 8i32; +pub const farQUERY_OUT_ARCHIVE: FAX_ACCESS_RIGHTS_ENUM = 512i32; +pub const farSUBMIT_HIGH: FAX_ACCESS_RIGHTS_ENUM = 4i32; +pub const farSUBMIT_LOW: FAX_ACCESS_RIGHTS_ENUM = 1i32; +pub const farSUBMIT_NORMAL: FAX_ACCESS_RIGHTS_ENUM = 2i32; +pub const fcptLOCAL: FAX_COVERPAGE_TYPE_ENUM = 1i32; +pub const fcptNONE: FAX_COVERPAGE_TYPE_ENUM = 0i32; +pub const fcptSERVER: FAX_COVERPAGE_TYPE_ENUM = 2i32; +pub const fdrmAUTO_ANSWER: FAX_DEVICE_RECEIVE_MODE_ENUM = 1i32; +pub const fdrmMANUAL_ANSWER: FAX_DEVICE_RECEIVE_MODE_ENUM = 2i32; +pub const fdrmNO_ANSWER: FAX_DEVICE_RECEIVE_MODE_ENUM = 0i32; +pub const fgsALL_DEV_NOT_VALID: FAX_GROUP_STATUS_ENUM = 2i32; +pub const fgsALL_DEV_VALID: FAX_GROUP_STATUS_ENUM = 0i32; +pub const fgsEMPTY: FAX_GROUP_STATUS_ENUM = 1i32; +pub const fgsSOME_DEV_NOT_VALID: FAX_GROUP_STATUS_ENUM = 3i32; +pub const fjesANSWERED: FAX_JOB_EXTENDED_STATUS_ENUM = 5i32; +pub const fjesBAD_ADDRESS: FAX_JOB_EXTENDED_STATUS_ENUM = 10i32; +pub const fjesBUSY: FAX_JOB_EXTENDED_STATUS_ENUM = 8i32; +pub const fjesCALL_ABORTED: FAX_JOB_EXTENDED_STATUS_ENUM = 19i32; +pub const fjesCALL_BLACKLISTED: FAX_JOB_EXTENDED_STATUS_ENUM = 14i32; +pub const fjesCALL_COMPLETED: FAX_JOB_EXTENDED_STATUS_ENUM = 18i32; +pub const fjesCALL_DELAYED: FAX_JOB_EXTENDED_STATUS_ENUM = 13i32; +pub const fjesDIALING: FAX_JOB_EXTENDED_STATUS_ENUM = 3i32; +pub const fjesDISCONNECTED: FAX_JOB_EXTENDED_STATUS_ENUM = 1i32; +pub const fjesFATAL_ERROR: FAX_JOB_EXTENDED_STATUS_ENUM = 12i32; +pub const fjesHANDLED: FAX_JOB_EXTENDED_STATUS_ENUM = 17i32; +pub const fjesINITIALIZING: FAX_JOB_EXTENDED_STATUS_ENUM = 2i32; +pub const fjesLINE_UNAVAILABLE: FAX_JOB_EXTENDED_STATUS_ENUM = 7i32; +pub const fjesNONE: FAX_JOB_EXTENDED_STATUS_ENUM = 0i32; +pub const fjesNOT_FAX_CALL: FAX_JOB_EXTENDED_STATUS_ENUM = 15i32; +pub const fjesNO_ANSWER: FAX_JOB_EXTENDED_STATUS_ENUM = 9i32; +pub const fjesNO_DIAL_TONE: FAX_JOB_EXTENDED_STATUS_ENUM = 11i32; +pub const fjesPARTIALLY_RECEIVED: FAX_JOB_EXTENDED_STATUS_ENUM = 16i32; +pub const fjesPROPRIETARY: FAX_JOB_EXTENDED_STATUS_ENUM = 16777216i32; +pub const fjesRECEIVING: FAX_JOB_EXTENDED_STATUS_ENUM = 6i32; +pub const fjesTRANSMITTING: FAX_JOB_EXTENDED_STATUS_ENUM = 4i32; +pub const fjoDELETE: FAX_JOB_OPERATIONS_ENUM = 16i32; +pub const fjoPAUSE: FAX_JOB_OPERATIONS_ENUM = 2i32; +pub const fjoRECIPIENT_INFO: FAX_JOB_OPERATIONS_ENUM = 32i32; +pub const fjoRESTART: FAX_JOB_OPERATIONS_ENUM = 8i32; +pub const fjoRESUME: FAX_JOB_OPERATIONS_ENUM = 4i32; +pub const fjoSENDER_INFO: FAX_JOB_OPERATIONS_ENUM = 64i32; +pub const fjoVIEW: FAX_JOB_OPERATIONS_ENUM = 1i32; +pub const fjsCANCELED: FAX_JOB_STATUS_ENUM = 512i32; +pub const fjsCANCELING: FAX_JOB_STATUS_ENUM = 1024i32; +pub const fjsCOMPLETED: FAX_JOB_STATUS_ENUM = 256i32; +pub const fjsFAILED: FAX_JOB_STATUS_ENUM = 8i32; +pub const fjsINPROGRESS: FAX_JOB_STATUS_ENUM = 2i32; +pub const fjsNOLINE: FAX_JOB_STATUS_ENUM = 32i32; +pub const fjsPAUSED: FAX_JOB_STATUS_ENUM = 16i32; +pub const fjsPENDING: FAX_JOB_STATUS_ENUM = 1i32; +pub const fjsRETRIES_EXCEEDED: FAX_JOB_STATUS_ENUM = 128i32; +pub const fjsRETRYING: FAX_JOB_STATUS_ENUM = 64i32; +pub const fjsROUTING: FAX_JOB_STATUS_ENUM = 2048i32; +pub const fjtRECEIVE: FAX_JOB_TYPE_ENUM = 1i32; +pub const fjtROUTING: FAX_JOB_TYPE_ENUM = 2i32; +pub const fjtSEND: FAX_JOB_TYPE_ENUM = 0i32; +pub const fllMAX: FAX_LOG_LEVEL_ENUM = 3i32; +pub const fllMED: FAX_LOG_LEVEL_ENUM = 2i32; +pub const fllMIN: FAX_LOG_LEVEL_ENUM = 1i32; +pub const fllNONE: FAX_LOG_LEVEL_ENUM = 0i32; +pub const fpsBAD_GUID: FAX_PROVIDER_STATUS_ENUM = 2i32; +pub const fpsBAD_VERSION: FAX_PROVIDER_STATUS_ENUM = 3i32; +pub const fpsCANT_INIT: FAX_PROVIDER_STATUS_ENUM = 6i32; +pub const fpsCANT_LINK: FAX_PROVIDER_STATUS_ENUM = 5i32; +pub const fpsCANT_LOAD: FAX_PROVIDER_STATUS_ENUM = 4i32; +pub const fpsSERVER_ERROR: FAX_PROVIDER_STATUS_ENUM = 1i32; +pub const fpsSUCCESS: FAX_PROVIDER_STATUS_ENUM = 0i32; +pub const fptHIGH: FAX_PRIORITY_TYPE_ENUM = 2i32; +pub const fptLOW: FAX_PRIORITY_TYPE_ENUM = 0i32; +pub const fptNORMAL: FAX_PRIORITY_TYPE_ENUM = 1i32; +pub const frrcANY_CODE: FAX_ROUTING_RULE_CODE_ENUM = 0i32; +pub const frsALL_GROUP_DEV_NOT_VALID: FAX_RULE_STATUS_ENUM = 2i32; +pub const frsBAD_DEVICE: FAX_RULE_STATUS_ENUM = 4i32; +pub const frsEMPTY_GROUP: FAX_RULE_STATUS_ENUM = 1i32; +pub const frsSOME_GROUP_DEV_NOT_VALID: FAX_RULE_STATUS_ENUM = 3i32; +pub const frsVALID: FAX_RULE_STATUS_ENUM = 0i32; +pub const frtMAIL: FAX_RECEIPT_TYPE_ENUM = 1i32; +pub const frtMSGBOX: FAX_RECEIPT_TYPE_ENUM = 4i32; +pub const frtNONE: FAX_RECEIPT_TYPE_ENUM = 0i32; +pub const fsAPI_VERSION_0: FAX_SERVER_APIVERSION_ENUM = 0i32; +pub const fsAPI_VERSION_1: FAX_SERVER_APIVERSION_ENUM = 65536i32; +pub const fsAPI_VERSION_2: FAX_SERVER_APIVERSION_ENUM = 131072i32; +pub const fsAPI_VERSION_3: FAX_SERVER_APIVERSION_ENUM = 196608i32; +pub const fsatANONYMOUS: FAX_SMTP_AUTHENTICATION_TYPE_ENUM = 0i32; +pub const fsatBASIC: FAX_SMTP_AUTHENTICATION_TYPE_ENUM = 1i32; +pub const fsatNTLM: FAX_SMTP_AUTHENTICATION_TYPE_ENUM = 2i32; +pub const fsetACTIVITY: FAX_SERVER_EVENTS_TYPE_ENUM = 8i32; +pub const fsetCONFIG: FAX_SERVER_EVENTS_TYPE_ENUM = 4i32; +pub const fsetDEVICE_STATUS: FAX_SERVER_EVENTS_TYPE_ENUM = 256i32; +pub const fsetFXSSVC_ENDED: FAX_SERVER_EVENTS_TYPE_ENUM = 128i32; +pub const fsetINCOMING_CALL: FAX_SERVER_EVENTS_TYPE_ENUM = 512i32; +pub const fsetIN_ARCHIVE: FAX_SERVER_EVENTS_TYPE_ENUM = 32i32; +pub const fsetIN_QUEUE: FAX_SERVER_EVENTS_TYPE_ENUM = 1i32; +pub const fsetNONE: FAX_SERVER_EVENTS_TYPE_ENUM = 0i32; +pub const fsetOUT_ARCHIVE: FAX_SERVER_EVENTS_TYPE_ENUM = 64i32; +pub const fsetOUT_QUEUE: FAX_SERVER_EVENTS_TYPE_ENUM = 2i32; +pub const fsetQUEUE_STATE: FAX_SERVER_EVENTS_TYPE_ENUM = 16i32; +pub const fstDISCOUNT_PERIOD: FAX_SCHEDULE_TYPE_ENUM = 2i32; +pub const fstNOW: FAX_SCHEDULE_TYPE_ENUM = 0i32; +pub const fstSPECIFIC_TIME: FAX_SCHEDULE_TYPE_ENUM = 1i32; +pub const lDEFAULT_PREFETCH_SIZE: i32 = 100i32; +pub const prv_DEFAULT_PREFETCH_SIZE: u32 = 100u32; +pub const wcharREASSIGN_RECIPIENTS_DELIMITER: u16 = 59u16; +pub type FAXROUTE_ENABLE = i32; +pub type FAX_ACCESS_RIGHTS_ENUM = i32; +pub type FAX_ACCESS_RIGHTS_ENUM_2 = i32; +pub type FAX_ACCOUNT_EVENTS_TYPE_ENUM = i32; +pub type FAX_COVERPAGE_TYPE_ENUM = i32; +pub type FAX_DEVICE_RECEIVE_MODE_ENUM = i32; +pub type FAX_ENUM_DELIVERY_REPORT_TYPES = i32; +pub type FAX_ENUM_DEVICE_ID_SOURCE = i32; +pub type FAX_ENUM_JOB_COMMANDS = i32; +pub type FAX_ENUM_JOB_SEND_ATTRIBUTES = i32; +pub type FAX_ENUM_LOG_CATEGORIES = i32; +pub type FAX_ENUM_LOG_LEVELS = i32; +pub type FAX_ENUM_PORT_OPEN_TYPE = i32; +pub type FAX_GROUP_STATUS_ENUM = i32; +pub type FAX_JOB_EXTENDED_STATUS_ENUM = i32; +pub type FAX_JOB_OPERATIONS_ENUM = i32; +pub type FAX_JOB_STATUS_ENUM = i32; +pub type FAX_JOB_TYPE_ENUM = i32; +pub type FAX_LOG_LEVEL_ENUM = i32; +pub type FAX_PRIORITY_TYPE_ENUM = i32; +pub type FAX_PROVIDER_STATUS_ENUM = i32; +pub type FAX_RECEIPT_TYPE_ENUM = i32; +pub type FAX_ROUTING_RULE_CODE_ENUM = i32; +pub type FAX_RULE_STATUS_ENUM = i32; +pub type FAX_SCHEDULE_TYPE_ENUM = i32; +pub type FAX_SERVER_APIVERSION_ENUM = i32; +pub type FAX_SERVER_EVENTS_TYPE_ENUM = i32; +pub type FAX_SMTP_AUTHENTICATION_TYPE_ENUM = i32; +pub type STI_DEVICE_MJ_TYPE = i32; +pub type SendToMode = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_CONFIGURATIONA { + pub SizeOfStruct: u32, + pub Retries: u32, + pub RetryDelay: u32, + pub DirtyDays: u32, + pub Branding: super::super::Foundation::BOOL, + pub UseDeviceTsid: super::super::Foundation::BOOL, + pub ServerCp: super::super::Foundation::BOOL, + pub PauseServerQueue: super::super::Foundation::BOOL, + pub StartCheapTime: FAX_TIME, + pub StopCheapTime: FAX_TIME, + pub ArchiveOutgoingFaxes: super::super::Foundation::BOOL, + pub ArchiveDirectory: ::windows_sys::core::PCSTR, + pub Reserved: ::windows_sys::core::PCSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_CONFIGURATIONA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_CONFIGURATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_CONFIGURATIONW { + pub SizeOfStruct: u32, + pub Retries: u32, + pub RetryDelay: u32, + pub DirtyDays: u32, + pub Branding: super::super::Foundation::BOOL, + pub UseDeviceTsid: super::super::Foundation::BOOL, + pub ServerCp: super::super::Foundation::BOOL, + pub PauseServerQueue: super::super::Foundation::BOOL, + pub StartCheapTime: FAX_TIME, + pub StopCheapTime: FAX_TIME, + pub ArchiveOutgoingFaxes: super::super::Foundation::BOOL, + pub ArchiveDirectory: ::windows_sys::core::PCWSTR, + pub Reserved: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_CONFIGURATIONW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_CONFIGURATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct FAX_CONTEXT_INFOA { + pub SizeOfStruct: u32, + pub hDC: super::super::Graphics::Gdi::HDC, + pub ServerName: [u8; 16], +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for FAX_CONTEXT_INFOA {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for FAX_CONTEXT_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct FAX_CONTEXT_INFOW { + pub SizeOfStruct: u32, + pub hDC: super::super::Graphics::Gdi::HDC, + pub ServerName: [u16; 16], +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for FAX_CONTEXT_INFOW {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for FAX_CONTEXT_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_COVERPAGE_INFOA { + pub SizeOfStruct: u32, + pub CoverPageName: ::windows_sys::core::PCSTR, + pub UseServerCoverPage: super::super::Foundation::BOOL, + pub RecName: ::windows_sys::core::PCSTR, + pub RecFaxNumber: ::windows_sys::core::PCSTR, + pub RecCompany: ::windows_sys::core::PCSTR, + pub RecStreetAddress: ::windows_sys::core::PCSTR, + pub RecCity: ::windows_sys::core::PCSTR, + pub RecState: ::windows_sys::core::PCSTR, + pub RecZip: ::windows_sys::core::PCSTR, + pub RecCountry: ::windows_sys::core::PCSTR, + pub RecTitle: ::windows_sys::core::PCSTR, + pub RecDepartment: ::windows_sys::core::PCSTR, + pub RecOfficeLocation: ::windows_sys::core::PCSTR, + pub RecHomePhone: ::windows_sys::core::PCSTR, + pub RecOfficePhone: ::windows_sys::core::PCSTR, + pub SdrName: ::windows_sys::core::PCSTR, + pub SdrFaxNumber: ::windows_sys::core::PCSTR, + pub SdrCompany: ::windows_sys::core::PCSTR, + pub SdrAddress: ::windows_sys::core::PCSTR, + pub SdrTitle: ::windows_sys::core::PCSTR, + pub SdrDepartment: ::windows_sys::core::PCSTR, + pub SdrOfficeLocation: ::windows_sys::core::PCSTR, + pub SdrHomePhone: ::windows_sys::core::PCSTR, + pub SdrOfficePhone: ::windows_sys::core::PCSTR, + pub Note: ::windows_sys::core::PCSTR, + pub Subject: ::windows_sys::core::PCSTR, + pub TimeSent: super::super::Foundation::SYSTEMTIME, + pub PageCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_COVERPAGE_INFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_COVERPAGE_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_COVERPAGE_INFOW { + pub SizeOfStruct: u32, + pub CoverPageName: ::windows_sys::core::PCWSTR, + pub UseServerCoverPage: super::super::Foundation::BOOL, + pub RecName: ::windows_sys::core::PCWSTR, + pub RecFaxNumber: ::windows_sys::core::PCWSTR, + pub RecCompany: ::windows_sys::core::PCWSTR, + pub RecStreetAddress: ::windows_sys::core::PCWSTR, + pub RecCity: ::windows_sys::core::PCWSTR, + pub RecState: ::windows_sys::core::PCWSTR, + pub RecZip: ::windows_sys::core::PCWSTR, + pub RecCountry: ::windows_sys::core::PCWSTR, + pub RecTitle: ::windows_sys::core::PCWSTR, + pub RecDepartment: ::windows_sys::core::PCWSTR, + pub RecOfficeLocation: ::windows_sys::core::PCWSTR, + pub RecHomePhone: ::windows_sys::core::PCWSTR, + pub RecOfficePhone: ::windows_sys::core::PCWSTR, + pub SdrName: ::windows_sys::core::PCWSTR, + pub SdrFaxNumber: ::windows_sys::core::PCWSTR, + pub SdrCompany: ::windows_sys::core::PCWSTR, + pub SdrAddress: ::windows_sys::core::PCWSTR, + pub SdrTitle: ::windows_sys::core::PCWSTR, + pub SdrDepartment: ::windows_sys::core::PCWSTR, + pub SdrOfficeLocation: ::windows_sys::core::PCWSTR, + pub SdrHomePhone: ::windows_sys::core::PCWSTR, + pub SdrOfficePhone: ::windows_sys::core::PCWSTR, + pub Note: ::windows_sys::core::PCWSTR, + pub Subject: ::windows_sys::core::PCWSTR, + pub TimeSent: super::super::Foundation::SYSTEMTIME, + pub PageCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_COVERPAGE_INFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_COVERPAGE_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_DEVICE_STATUSA { + pub SizeOfStruct: u32, + pub CallerId: ::windows_sys::core::PCSTR, + pub Csid: ::windows_sys::core::PCSTR, + pub CurrentPage: u32, + pub DeviceId: u32, + pub DeviceName: ::windows_sys::core::PCSTR, + pub DocumentName: ::windows_sys::core::PCSTR, + pub JobType: u32, + pub PhoneNumber: ::windows_sys::core::PCSTR, + pub RoutingString: ::windows_sys::core::PCSTR, + pub SenderName: ::windows_sys::core::PCSTR, + pub RecipientName: ::windows_sys::core::PCSTR, + pub Size: u32, + pub StartTime: super::super::Foundation::FILETIME, + pub Status: u32, + pub StatusString: ::windows_sys::core::PCSTR, + pub SubmittedTime: super::super::Foundation::FILETIME, + pub TotalPages: u32, + pub Tsid: ::windows_sys::core::PCSTR, + pub UserName: ::windows_sys::core::PCSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_DEVICE_STATUSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_DEVICE_STATUSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_DEVICE_STATUSW { + pub SizeOfStruct: u32, + pub CallerId: ::windows_sys::core::PCWSTR, + pub Csid: ::windows_sys::core::PCWSTR, + pub CurrentPage: u32, + pub DeviceId: u32, + pub DeviceName: ::windows_sys::core::PCWSTR, + pub DocumentName: ::windows_sys::core::PCWSTR, + pub JobType: u32, + pub PhoneNumber: ::windows_sys::core::PCWSTR, + pub RoutingString: ::windows_sys::core::PCWSTR, + pub SenderName: ::windows_sys::core::PCWSTR, + pub RecipientName: ::windows_sys::core::PCWSTR, + pub Size: u32, + pub StartTime: super::super::Foundation::FILETIME, + pub Status: u32, + pub StatusString: ::windows_sys::core::PCWSTR, + pub SubmittedTime: super::super::Foundation::FILETIME, + pub TotalPages: u32, + pub Tsid: ::windows_sys::core::PCWSTR, + pub UserName: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_DEVICE_STATUSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_DEVICE_STATUSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAX_DEV_STATUS { + pub SizeOfStruct: u32, + pub StatusId: u32, + pub StringId: u32, + pub PageCount: u32, + pub CSI: ::windows_sys::core::PWSTR, + pub CallerId: ::windows_sys::core::PWSTR, + pub RoutingInfo: ::windows_sys::core::PWSTR, + pub ErrorCode: u32, + pub Reserved: [u32; 3], +} +impl ::core::marker::Copy for FAX_DEV_STATUS {} +impl ::core::clone::Clone for FAX_DEV_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_EVENTA { + pub SizeOfStruct: u32, + pub TimeStamp: super::super::Foundation::FILETIME, + pub DeviceId: u32, + pub EventId: u32, + pub JobId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_EVENTA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_EVENTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_EVENTW { + pub SizeOfStruct: u32, + pub TimeStamp: super::super::Foundation::FILETIME, + pub DeviceId: u32, + pub EventId: u32, + pub JobId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_EVENTW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_EVENTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAX_GLOBAL_ROUTING_INFOA { + pub SizeOfStruct: u32, + pub Priority: u32, + pub Guid: ::windows_sys::core::PCSTR, + pub FriendlyName: ::windows_sys::core::PCSTR, + pub FunctionName: ::windows_sys::core::PCSTR, + pub ExtensionImageName: ::windows_sys::core::PCSTR, + pub ExtensionFriendlyName: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for FAX_GLOBAL_ROUTING_INFOA {} +impl ::core::clone::Clone for FAX_GLOBAL_ROUTING_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAX_GLOBAL_ROUTING_INFOW { + pub SizeOfStruct: u32, + pub Priority: u32, + pub Guid: ::windows_sys::core::PCWSTR, + pub FriendlyName: ::windows_sys::core::PCWSTR, + pub FunctionName: ::windows_sys::core::PCWSTR, + pub ExtensionImageName: ::windows_sys::core::PCWSTR, + pub ExtensionFriendlyName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for FAX_GLOBAL_ROUTING_INFOW {} +impl ::core::clone::Clone for FAX_GLOBAL_ROUTING_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_JOB_ENTRYA { + pub SizeOfStruct: u32, + pub JobId: u32, + pub UserName: ::windows_sys::core::PCSTR, + pub JobType: u32, + pub QueueStatus: u32, + pub Status: u32, + pub Size: u32, + pub PageCount: u32, + pub RecipientNumber: ::windows_sys::core::PCSTR, + pub RecipientName: ::windows_sys::core::PCSTR, + pub Tsid: ::windows_sys::core::PCSTR, + pub SenderName: ::windows_sys::core::PCSTR, + pub SenderCompany: ::windows_sys::core::PCSTR, + pub SenderDept: ::windows_sys::core::PCSTR, + pub BillingCode: ::windows_sys::core::PCSTR, + pub ScheduleAction: u32, + pub ScheduleTime: super::super::Foundation::SYSTEMTIME, + pub DeliveryReportType: u32, + pub DeliveryReportAddress: ::windows_sys::core::PCSTR, + pub DocumentName: ::windows_sys::core::PCSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_JOB_ENTRYA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_JOB_ENTRYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_JOB_ENTRYW { + pub SizeOfStruct: u32, + pub JobId: u32, + pub UserName: ::windows_sys::core::PCWSTR, + pub JobType: u32, + pub QueueStatus: u32, + pub Status: u32, + pub Size: u32, + pub PageCount: u32, + pub RecipientNumber: ::windows_sys::core::PCWSTR, + pub RecipientName: ::windows_sys::core::PCWSTR, + pub Tsid: ::windows_sys::core::PCWSTR, + pub SenderName: ::windows_sys::core::PCWSTR, + pub SenderCompany: ::windows_sys::core::PCWSTR, + pub SenderDept: ::windows_sys::core::PCWSTR, + pub BillingCode: ::windows_sys::core::PCWSTR, + pub ScheduleAction: u32, + pub ScheduleTime: super::super::Foundation::SYSTEMTIME, + pub DeliveryReportType: u32, + pub DeliveryReportAddress: ::windows_sys::core::PCWSTR, + pub DocumentName: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_JOB_ENTRYW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_JOB_ENTRYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_JOB_PARAMA { + pub SizeOfStruct: u32, + pub RecipientNumber: ::windows_sys::core::PCSTR, + pub RecipientName: ::windows_sys::core::PCSTR, + pub Tsid: ::windows_sys::core::PCSTR, + pub SenderName: ::windows_sys::core::PCSTR, + pub SenderCompany: ::windows_sys::core::PCSTR, + pub SenderDept: ::windows_sys::core::PCSTR, + pub BillingCode: ::windows_sys::core::PCSTR, + pub ScheduleAction: u32, + pub ScheduleTime: super::super::Foundation::SYSTEMTIME, + pub DeliveryReportType: u32, + pub DeliveryReportAddress: ::windows_sys::core::PCSTR, + pub DocumentName: ::windows_sys::core::PCSTR, + pub CallHandle: u32, + pub Reserved: [usize; 3], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_JOB_PARAMA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_JOB_PARAMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_JOB_PARAMW { + pub SizeOfStruct: u32, + pub RecipientNumber: ::windows_sys::core::PCWSTR, + pub RecipientName: ::windows_sys::core::PCWSTR, + pub Tsid: ::windows_sys::core::PCWSTR, + pub SenderName: ::windows_sys::core::PCWSTR, + pub SenderCompany: ::windows_sys::core::PCWSTR, + pub SenderDept: ::windows_sys::core::PCWSTR, + pub BillingCode: ::windows_sys::core::PCWSTR, + pub ScheduleAction: u32, + pub ScheduleTime: super::super::Foundation::SYSTEMTIME, + pub DeliveryReportType: u32, + pub DeliveryReportAddress: ::windows_sys::core::PCWSTR, + pub DocumentName: ::windows_sys::core::PCWSTR, + pub CallHandle: u32, + pub Reserved: [usize; 3], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_JOB_PARAMW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_JOB_PARAMW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAX_LOG_CATEGORYA { + pub Name: ::windows_sys::core::PCSTR, + pub Category: u32, + pub Level: u32, +} +impl ::core::marker::Copy for FAX_LOG_CATEGORYA {} +impl ::core::clone::Clone for FAX_LOG_CATEGORYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAX_LOG_CATEGORYW { + pub Name: ::windows_sys::core::PCWSTR, + pub Category: u32, + pub Level: u32, +} +impl ::core::marker::Copy for FAX_LOG_CATEGORYW {} +impl ::core::clone::Clone for FAX_LOG_CATEGORYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAX_PORT_INFOA { + pub SizeOfStruct: u32, + pub DeviceId: u32, + pub State: u32, + pub Flags: u32, + pub Rings: u32, + pub Priority: u32, + pub DeviceName: ::windows_sys::core::PCSTR, + pub Tsid: ::windows_sys::core::PCSTR, + pub Csid: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for FAX_PORT_INFOA {} +impl ::core::clone::Clone for FAX_PORT_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAX_PORT_INFOW { + pub SizeOfStruct: u32, + pub DeviceId: u32, + pub State: u32, + pub Flags: u32, + pub Rings: u32, + pub Priority: u32, + pub DeviceName: ::windows_sys::core::PCWSTR, + pub Tsid: ::windows_sys::core::PCWSTR, + pub Csid: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for FAX_PORT_INFOW {} +impl ::core::clone::Clone for FAX_PORT_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAX_PRINT_INFOA { + pub SizeOfStruct: u32, + pub DocName: ::windows_sys::core::PCSTR, + pub RecipientName: ::windows_sys::core::PCSTR, + pub RecipientNumber: ::windows_sys::core::PCSTR, + pub SenderName: ::windows_sys::core::PCSTR, + pub SenderCompany: ::windows_sys::core::PCSTR, + pub SenderDept: ::windows_sys::core::PCSTR, + pub SenderBillingCode: ::windows_sys::core::PCSTR, + pub Reserved: ::windows_sys::core::PCSTR, + pub DrEmailAddress: ::windows_sys::core::PCSTR, + pub OutputFileName: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for FAX_PRINT_INFOA {} +impl ::core::clone::Clone for FAX_PRINT_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAX_PRINT_INFOW { + pub SizeOfStruct: u32, + pub DocName: ::windows_sys::core::PCWSTR, + pub RecipientName: ::windows_sys::core::PCWSTR, + pub RecipientNumber: ::windows_sys::core::PCWSTR, + pub SenderName: ::windows_sys::core::PCWSTR, + pub SenderCompany: ::windows_sys::core::PCWSTR, + pub SenderDept: ::windows_sys::core::PCWSTR, + pub SenderBillingCode: ::windows_sys::core::PCWSTR, + pub Reserved: ::windows_sys::core::PCWSTR, + pub DrEmailAddress: ::windows_sys::core::PCWSTR, + pub OutputFileName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for FAX_PRINT_INFOW {} +impl ::core::clone::Clone for FAX_PRINT_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAX_RECEIVE { + pub SizeOfStruct: u32, + pub FileName: ::windows_sys::core::PWSTR, + pub ReceiverName: ::windows_sys::core::PWSTR, + pub ReceiverNumber: ::windows_sys::core::PWSTR, + pub Reserved: [u32; 4], +} +impl ::core::marker::Copy for FAX_RECEIVE {} +impl ::core::clone::Clone for FAX_RECEIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAX_ROUTE { + pub SizeOfStruct: u32, + pub JobId: u32, + pub ElapsedTime: u64, + pub ReceiveTime: u64, + pub PageCount: u32, + pub Csid: ::windows_sys::core::PCWSTR, + pub Tsid: ::windows_sys::core::PCWSTR, + pub CallerId: ::windows_sys::core::PCWSTR, + pub RoutingInfo: ::windows_sys::core::PCWSTR, + pub ReceiverName: ::windows_sys::core::PCWSTR, + pub ReceiverNumber: ::windows_sys::core::PCWSTR, + pub DeviceName: ::windows_sys::core::PCWSTR, + pub DeviceId: u32, + pub RoutingInfoData: *mut u8, + pub RoutingInfoDataSize: u32, +} +impl ::core::marker::Copy for FAX_ROUTE {} +impl ::core::clone::Clone for FAX_ROUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_ROUTE_CALLBACKROUTINES { + pub SizeOfStruct: u32, + pub FaxRouteAddFile: PFAXROUTEADDFILE, + pub FaxRouteDeleteFile: PFAXROUTEDELETEFILE, + pub FaxRouteGetFile: PFAXROUTEGETFILE, + pub FaxRouteEnumFiles: PFAXROUTEENUMFILES, + pub FaxRouteModifyRoutingData: PFAXROUTEMODIFYROUTINGDATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_ROUTE_CALLBACKROUTINES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_ROUTE_CALLBACKROUTINES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_ROUTING_METHODA { + pub SizeOfStruct: u32, + pub DeviceId: u32, + pub Enabled: super::super::Foundation::BOOL, + pub DeviceName: ::windows_sys::core::PCSTR, + pub Guid: ::windows_sys::core::PCSTR, + pub FriendlyName: ::windows_sys::core::PCSTR, + pub FunctionName: ::windows_sys::core::PCSTR, + pub ExtensionImageName: ::windows_sys::core::PCSTR, + pub ExtensionFriendlyName: ::windows_sys::core::PCSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_ROUTING_METHODA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_ROUTING_METHODA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_ROUTING_METHODW { + pub SizeOfStruct: u32, + pub DeviceId: u32, + pub Enabled: super::super::Foundation::BOOL, + pub DeviceName: ::windows_sys::core::PCWSTR, + pub Guid: ::windows_sys::core::PCWSTR, + pub FriendlyName: ::windows_sys::core::PCWSTR, + pub FunctionName: ::windows_sys::core::PCWSTR, + pub ExtensionImageName: ::windows_sys::core::PCWSTR, + pub ExtensionFriendlyName: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_ROUTING_METHODW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_ROUTING_METHODW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FAX_SEND { + pub SizeOfStruct: u32, + pub FileName: ::windows_sys::core::PWSTR, + pub CallerName: ::windows_sys::core::PWSTR, + pub CallerNumber: ::windows_sys::core::PWSTR, + pub ReceiverName: ::windows_sys::core::PWSTR, + pub ReceiverNumber: ::windows_sys::core::PWSTR, + pub Branding: super::super::Foundation::BOOL, + pub CallHandle: u32, + pub Reserved: [u32; 3], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FAX_SEND {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FAX_SEND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAX_TIME { + pub Hour: u16, + pub Minute: u16, +} +impl ::core::marker::Copy for FAX_TIME {} +impl ::core::clone::Clone for FAX_TIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STINOTIFY { + pub dwSize: u32, + pub guidNotificationCode: ::windows_sys::core::GUID, + pub abNotificationData: [u8; 64], +} +impl ::core::marker::Copy for STINOTIFY {} +impl ::core::clone::Clone for STINOTIFY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STISUBSCRIBE { + pub dwSize: u32, + pub dwFlags: u32, + pub dwFilter: u32, + pub hWndNotify: super::super::Foundation::HWND, + pub hEvent: super::super::Foundation::HANDLE, + pub uiNotificationMessage: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STISUBSCRIBE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STISUBSCRIBE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STI_DEVICE_INFORMATIONW { + pub dwSize: u32, + pub DeviceType: u32, + pub szDeviceInternalName: [u16; 128], + pub DeviceCapabilitiesA: STI_DEV_CAPS, + pub dwHardwareConfiguration: u32, + pub pszVendorDescription: ::windows_sys::core::PWSTR, + pub pszDeviceDescription: ::windows_sys::core::PWSTR, + pub pszPortName: ::windows_sys::core::PWSTR, + pub pszPropProvider: ::windows_sys::core::PWSTR, + pub pszLocalName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for STI_DEVICE_INFORMATIONW {} +impl ::core::clone::Clone for STI_DEVICE_INFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STI_DEVICE_STATUS { + pub dwSize: u32, + pub StatusMask: u32, + pub dwOnlineState: u32, + pub dwHardwareStatusCode: u32, + pub dwEventHandlingState: u32, + pub dwPollingInterval: u32, +} +impl ::core::marker::Copy for STI_DEVICE_STATUS {} +impl ::core::clone::Clone for STI_DEVICE_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STI_DEV_CAPS { + pub dwGeneric: u32, +} +impl ::core::marker::Copy for STI_DEV_CAPS {} +impl ::core::clone::Clone for STI_DEV_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STI_DIAG { + pub dwSize: u32, + pub dwBasicDiagCode: u32, + pub dwVendorDiagCode: u32, + pub dwStatusMask: u32, + pub sErrorInfo: _ERROR_INFOW, +} +impl ::core::marker::Copy for STI_DIAG {} +impl ::core::clone::Clone for STI_DIAG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STI_USD_CAPS { + pub dwVersion: u32, + pub dwGenericCaps: u32, +} +impl ::core::marker::Copy for STI_USD_CAPS {} +impl ::core::clone::Clone for STI_USD_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STI_WIA_DEVICE_INFORMATIONW { + pub dwSize: u32, + pub DeviceType: u32, + pub szDeviceInternalName: [u16; 128], + pub DeviceCapabilitiesA: STI_DEV_CAPS, + pub dwHardwareConfiguration: u32, + pub pszVendorDescription: ::windows_sys::core::PWSTR, + pub pszDeviceDescription: ::windows_sys::core::PWSTR, + pub pszPortName: ::windows_sys::core::PWSTR, + pub pszPropProvider: ::windows_sys::core::PWSTR, + pub pszLocalName: ::windows_sys::core::PWSTR, + pub pszUiDll: ::windows_sys::core::PWSTR, + pub pszServer: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for STI_WIA_DEVICE_INFORMATIONW {} +impl ::core::clone::Clone for STI_WIA_DEVICE_INFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _ERROR_INFOW { + pub dwSize: u32, + pub dwGenericError: u32, + pub dwVendorError: u32, + pub szExtendedErrorText: [u16; 255], +} +impl ::core::marker::Copy for _ERROR_INFOW {} +impl ::core::clone::Clone for _ERROR_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXABORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXACCESSCHECK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXCLOSE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXCOMPLETEJOBPARAMSA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXCOMPLETEJOBPARAMSW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXCONNECTFAXSERVERA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXCONNECTFAXSERVERW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXDEVABORTOPERATION = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +pub type PFAXDEVCONFIGURE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXDEVENDJOB = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXDEVINITIALIZE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXDEVRECEIVE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXDEVREPORTSTATUS = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXDEVSEND = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFAXDEVSHUTDOWN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXDEVSTARTJOB = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXDEVVIRTUALDEVICECREATION = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXENABLEROUTINGMETHODA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXENABLEROUTINGMETHODW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXENUMGLOBALROUTINGINFOA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXENUMGLOBALROUTINGINFOW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXENUMJOBSA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXENUMJOBSW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXENUMPORTSA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXENUMPORTSW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXENUMROUTINGMETHODSA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXENUMROUTINGMETHODSW = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFAXFREEBUFFER = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXGETCONFIGURATIONA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXGETCONFIGURATIONW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXGETDEVICESTATUSA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXGETDEVICESTATUSW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXGETJOBA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXGETJOBW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXGETLOGGINGCATEGORIESA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXGETLOGGINGCATEGORIESW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXGETPAGEDATA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXGETPORTA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXGETPORTW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXGETROUTINGINFOA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXGETROUTINGINFOW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXINITIALIZEEVENTQUEUE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXOPENPORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFAXPRINTCOVERPAGEA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFAXPRINTCOVERPAGEW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXREGISTERROUTINGEXTENSIONW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXREGISTERSERVICEPROVIDERW = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFAXROUTEADDFILE = ::core::option::Option i32>; +pub type PFAXROUTEDELETEFILE = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXROUTEDEVICECHANGENOTIFICATION = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXROUTEDEVICEENABLE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXROUTEENUMFILE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXROUTEENUMFILES = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXROUTEGETFILE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXROUTEGETROUTINGINFO = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXROUTEINITIALIZE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXROUTEMETHOD = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXROUTEMODIFYROUTINGDATA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXROUTESETROUTINGINFO = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSENDDOCUMENTA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSENDDOCUMENTFORBROADCASTA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSENDDOCUMENTFORBROADCASTW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSENDDOCUMENTW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSETCONFIGURATIONA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSETCONFIGURATIONW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSETGLOBALROUTINGINFOA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSETGLOBALROUTINGINFOW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSETJOBA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSETJOBW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSETLOGGINGCATEGORIESA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSETLOGGINGCATEGORIESW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSETPORTA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSETPORTW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSETROUTINGINFOA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXSETROUTINGINFOW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFAXSTARTPRINTJOBA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type PFAXSTARTPRINTJOBW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAXUNREGISTERSERVICEPROVIDERW = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFAX_EXT_CONFIG_CHANGE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PFAX_EXT_FREE_BUFFER = ::core::option::Option ()>; +pub type PFAX_EXT_GET_DATA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAX_EXT_INITIALIZE_CONFIG = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAX_EXT_REGISTER_FOR_EVENTS = ::core::option::Option super::super::Foundation::HANDLE>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAX_EXT_SET_DATA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAX_EXT_UNREGISTER_FOR_EVENTS = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAX_LINECALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAX_RECIPIENT_CALLBACKA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAX_RECIPIENT_CALLBACKW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAX_ROUTING_INSTALLATION_CALLBACKW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAX_SEND_CALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFAX_SERVICE_CALLBACK = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/HumanInterfaceDevice/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/HumanInterfaceDevice/mod.rs new file mode 100644 index 000000000..9b8b56a3d --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/HumanInterfaceDevice/mod.rs @@ -0,0 +1,4489 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dinput8.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DirectInput8Create(hinst : super::super::Foundation:: HINSTANCE, dwversion : u32, riidltf : *const ::windows_sys::core::GUID, ppvout : *mut *mut ::core::ffi::c_void, punkouter : ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_FlushQueue(hiddeviceobject : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_FreePreparsedData(preparseddata : PHIDP_PREPARSED_DATA) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_GetAttributes(hiddeviceobject : super::super::Foundation:: HANDLE, attributes : *mut HIDD_ATTRIBUTES) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_GetConfiguration(hiddeviceobject : super::super::Foundation:: HANDLE, configuration : *mut HIDD_CONFIGURATION, configurationlength : u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_GetFeature(hiddeviceobject : super::super::Foundation:: HANDLE, reportbuffer : *mut ::core::ffi::c_void, reportbufferlength : u32) -> super::super::Foundation:: BOOLEAN); +::windows_targets::link!("hid.dll" "system" fn HidD_GetHidGuid(hidguid : *mut ::windows_sys::core::GUID) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_GetIndexedString(hiddeviceobject : super::super::Foundation:: HANDLE, stringindex : u32, buffer : *mut ::core::ffi::c_void, bufferlength : u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_GetInputReport(hiddeviceobject : super::super::Foundation:: HANDLE, reportbuffer : *mut ::core::ffi::c_void, reportbufferlength : u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_GetManufacturerString(hiddeviceobject : super::super::Foundation:: HANDLE, buffer : *mut ::core::ffi::c_void, bufferlength : u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_GetMsGenreDescriptor(hiddeviceobject : super::super::Foundation:: HANDLE, buffer : *mut ::core::ffi::c_void, bufferlength : u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_GetNumInputBuffers(hiddeviceobject : super::super::Foundation:: HANDLE, numberbuffers : *mut u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_GetPhysicalDescriptor(hiddeviceobject : super::super::Foundation:: HANDLE, buffer : *mut ::core::ffi::c_void, bufferlength : u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_GetPreparsedData(hiddeviceobject : super::super::Foundation:: HANDLE, preparseddata : *mut PHIDP_PREPARSED_DATA) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_GetProductString(hiddeviceobject : super::super::Foundation:: HANDLE, buffer : *mut ::core::ffi::c_void, bufferlength : u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_GetSerialNumberString(hiddeviceobject : super::super::Foundation:: HANDLE, buffer : *mut ::core::ffi::c_void, bufferlength : u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_SetConfiguration(hiddeviceobject : super::super::Foundation:: HANDLE, configuration : *const HIDD_CONFIGURATION, configurationlength : u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_SetFeature(hiddeviceobject : super::super::Foundation:: HANDLE, reportbuffer : *const ::core::ffi::c_void, reportbufferlength : u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_SetNumInputBuffers(hiddeviceobject : super::super::Foundation:: HANDLE, numberbuffers : u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidD_SetOutputReport(hiddeviceobject : super::super::Foundation:: HANDLE, reportbuffer : *const ::core::ffi::c_void, reportbufferlength : u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetButtonArray(reporttype : HIDP_REPORT_TYPE, usagepage : u16, linkcollection : u16, usage : u16, buttondata : *mut HIDP_BUTTON_ARRAY_DATA, buttondatalength : *mut u16, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PCSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetButtonCaps(reporttype : HIDP_REPORT_TYPE, buttoncaps : *mut HIDP_BUTTON_CAPS, buttoncapslength : *mut u16, preparseddata : PHIDP_PREPARSED_DATA) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetCaps(preparseddata : PHIDP_PREPARSED_DATA, capabilities : *mut HIDP_CAPS) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetData(reporttype : HIDP_REPORT_TYPE, datalist : *mut HIDP_DATA, datalength : *mut u32, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetExtendedAttributes(reporttype : HIDP_REPORT_TYPE, dataindex : u16, preparseddata : PHIDP_PREPARSED_DATA, attributes : *mut HIDP_EXTENDED_ATTRIBUTES, lengthattributes : *mut u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetLinkCollectionNodes(linkcollectionnodes : *mut HIDP_LINK_COLLECTION_NODE, linkcollectionnodeslength : *mut u32, preparseddata : PHIDP_PREPARSED_DATA) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetScaledUsageValue(reporttype : HIDP_REPORT_TYPE, usagepage : u16, linkcollection : u16, usage : u16, usagevalue : *mut i32, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PCSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetSpecificButtonCaps(reporttype : HIDP_REPORT_TYPE, usagepage : u16, linkcollection : u16, usage : u16, buttoncaps : *mut HIDP_BUTTON_CAPS, buttoncapslength : *mut u16, preparseddata : PHIDP_PREPARSED_DATA) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetSpecificValueCaps(reporttype : HIDP_REPORT_TYPE, usagepage : u16, linkcollection : u16, usage : u16, valuecaps : *mut HIDP_VALUE_CAPS, valuecapslength : *mut u16, preparseddata : PHIDP_PREPARSED_DATA) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetUsageValue(reporttype : HIDP_REPORT_TYPE, usagepage : u16, linkcollection : u16, usage : u16, usagevalue : *mut u32, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PCSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetUsageValueArray(reporttype : HIDP_REPORT_TYPE, usagepage : u16, linkcollection : u16, usage : u16, usagevalue : ::windows_sys::core::PSTR, usagevaluebytelength : u16, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PCSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetUsages(reporttype : HIDP_REPORT_TYPE, usagepage : u16, linkcollection : u16, usagelist : *mut u16, usagelength : *mut u32, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetUsagesEx(reporttype : HIDP_REPORT_TYPE, linkcollection : u16, buttonlist : *mut USAGE_AND_PAGE, usagelength : *mut u32, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PCSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_GetValueCaps(reporttype : HIDP_REPORT_TYPE, valuecaps : *mut HIDP_VALUE_CAPS, valuecapslength : *mut u16, preparseddata : PHIDP_PREPARSED_DATA) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_InitializeReportForID(reporttype : HIDP_REPORT_TYPE, reportid : u8, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +::windows_targets::link!("hid.dll" "system" fn HidP_MaxDataListLength(reporttype : HIDP_REPORT_TYPE, preparseddata : PHIDP_PREPARSED_DATA) -> u32); +::windows_targets::link!("hid.dll" "system" fn HidP_MaxUsageListLength(reporttype : HIDP_REPORT_TYPE, usagepage : u16, preparseddata : PHIDP_PREPARSED_DATA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_SetButtonArray(reporttype : HIDP_REPORT_TYPE, usagepage : u16, linkcollection : u16, usage : u16, buttondata : *const HIDP_BUTTON_ARRAY_DATA, buttondatalength : u16, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_SetData(reporttype : HIDP_REPORT_TYPE, datalist : *mut HIDP_DATA, datalength : *mut u32, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PCSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_SetScaledUsageValue(reporttype : HIDP_REPORT_TYPE, usagepage : u16, linkcollection : u16, usage : u16, usagevalue : i32, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_SetUsageValue(reporttype : HIDP_REPORT_TYPE, usagepage : u16, linkcollection : u16, usage : u16, usagevalue : u32, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_SetUsageValueArray(reporttype : HIDP_REPORT_TYPE, usagepage : u16, linkcollection : u16, usage : u16, usagevalue : ::windows_sys::core::PCSTR, usagevaluebytelength : u16, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_SetUsages(reporttype : HIDP_REPORT_TYPE, usagepage : u16, linkcollection : u16, usagelist : *mut u16, usagelength : *mut u32, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PCSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_TranslateUsagesToI8042ScanCodes(changedusagelist : *const u16, usagelistlength : u32, keyaction : HIDP_KEYBOARD_DIRECTION, modifierstate : *mut HIDP_KEYBOARD_MODIFIER_STATE, insertcodesprocedure : PHIDP_INSERT_SCANCODES, insertcodescontext : *const ::core::ffi::c_void) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_UnsetUsages(reporttype : HIDP_REPORT_TYPE, usagepage : u16, linkcollection : u16, usagelist : *mut u16, usagelength : *mut u32, preparseddata : PHIDP_PREPARSED_DATA, report : ::windows_sys::core::PCSTR, reportlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hid.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HidP_UsageListDifference(previoususagelist : *const u16, currentusagelist : *const u16, breakusagelist : *mut u16, makeusagelist : *mut u16, usagelistlength : u32) -> super::super::Foundation:: NTSTATUS); +::windows_targets::link!("winmm.dll" "system" fn joyConfigChanged(dwflags : u32) -> u32); +pub type IDirectInput2A = *mut ::core::ffi::c_void; +pub type IDirectInput2W = *mut ::core::ffi::c_void; +pub type IDirectInput7A = *mut ::core::ffi::c_void; +pub type IDirectInput7W = *mut ::core::ffi::c_void; +pub type IDirectInput8A = *mut ::core::ffi::c_void; +pub type IDirectInput8W = *mut ::core::ffi::c_void; +pub type IDirectInputA = *mut ::core::ffi::c_void; +pub type IDirectInputDevice2A = *mut ::core::ffi::c_void; +pub type IDirectInputDevice2W = *mut ::core::ffi::c_void; +pub type IDirectInputDevice7A = *mut ::core::ffi::c_void; +pub type IDirectInputDevice7W = *mut ::core::ffi::c_void; +pub type IDirectInputDevice8A = *mut ::core::ffi::c_void; +pub type IDirectInputDevice8W = *mut ::core::ffi::c_void; +pub type IDirectInputDeviceA = *mut ::core::ffi::c_void; +pub type IDirectInputDeviceW = *mut ::core::ffi::c_void; +pub type IDirectInputEffect = *mut ::core::ffi::c_void; +pub type IDirectInputEffectDriver = *mut ::core::ffi::c_void; +pub type IDirectInputJoyConfig = *mut ::core::ffi::c_void; +pub type IDirectInputJoyConfig8 = *mut ::core::ffi::c_void; +pub type IDirectInputW = *mut ::core::ffi::c_void; +pub const BALLPOINT_I8042_HARDWARE: u32 = 8u32; +pub const BALLPOINT_SERIAL_HARDWARE: u32 = 16u32; +pub const BUTTON_BIT_ALLBUTTONSMASK: u32 = 16383u32; +pub const BUTTON_BIT_BACK: u32 = 32u32; +pub const BUTTON_BIT_CAMERAFOCUS: u32 = 128u32; +pub const BUTTON_BIT_CAMERALENS: u32 = 4096u32; +pub const BUTTON_BIT_CAMERASHUTTER: u32 = 256u32; +pub const BUTTON_BIT_HEADSET: u32 = 1024u32; +pub const BUTTON_BIT_HWKBDEPLOY: u32 = 2048u32; +pub const BUTTON_BIT_OEMCUSTOM: u32 = 8192u32; +pub const BUTTON_BIT_OEMCUSTOM2: u32 = 16384u32; +pub const BUTTON_BIT_OEMCUSTOM3: u32 = 32768u32; +pub const BUTTON_BIT_POWER: u32 = 1u32; +pub const BUTTON_BIT_RINGERTOGGLE: u32 = 512u32; +pub const BUTTON_BIT_ROTATION_LOCK: u32 = 16u32; +pub const BUTTON_BIT_SEARCH: u32 = 64u32; +pub const BUTTON_BIT_VOLUMEDOWN: u32 = 8u32; +pub const BUTTON_BIT_VOLUMEUP: u32 = 4u32; +pub const BUTTON_BIT_WINDOWS: u32 = 2u32; +pub const CLSID_DirectInput: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25e609e0_b259_11cf_bfc7_444553540000); +pub const CLSID_DirectInput8: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25e609e4_b259_11cf_bfc7_444553540000); +pub const CLSID_DirectInputDevice: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25e609e1_b259_11cf_bfc7_444553540000); +pub const CLSID_DirectInputDevice8: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25e609e5_b259_11cf_bfc7_444553540000); +pub const DD_KEYBOARD_DEVICE_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("\\Device\\KeyboardClass"); +pub const DD_KEYBOARD_DEVICE_NAME_U: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Device\\KeyboardClass"); +pub const DD_MOUSE_DEVICE_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("\\Device\\PointerClass"); +pub const DD_MOUSE_DEVICE_NAME_U: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Device\\PointerClass"); +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_DeviceInterface_HID_BackgroundAccess: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcbf38310_4a17_4310_a1eb_247f0b67593b), pid: 8 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_DeviceInterface_HID_IsReadOnly: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcbf38310_4a17_4310_a1eb_247f0b67593b), pid: 4 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_DeviceInterface_HID_ProductId: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcbf38310_4a17_4310_a1eb_247f0b67593b), pid: 6 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_DeviceInterface_HID_UsageId: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcbf38310_4a17_4310_a1eb_247f0b67593b), pid: 3 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_DeviceInterface_HID_UsagePage: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcbf38310_4a17_4310_a1eb_247f0b67593b), pid: 2 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_DeviceInterface_HID_VendorId: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcbf38310_4a17_4310_a1eb_247f0b67593b), pid: 5 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_DeviceInterface_HID_VersionNumber: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcbf38310_4a17_4310_a1eb_247f0b67593b), pid: 7 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_DeviceInterface_HID_WakeScreenOnInputCapable: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcbf38310_4a17_4310_a1eb_247f0b67593b), pid: 9 }; +pub const DI8DEVCLASS_ALL: u32 = 0u32; +pub const DI8DEVCLASS_DEVICE: u32 = 1u32; +pub const DI8DEVCLASS_GAMECTRL: u32 = 4u32; +pub const DI8DEVCLASS_KEYBOARD: u32 = 3u32; +pub const DI8DEVCLASS_POINTER: u32 = 2u32; +pub const DI8DEVTYPE1STPERSON_LIMITED: u32 = 1u32; +pub const DI8DEVTYPE1STPERSON_SHOOTER: u32 = 4u32; +pub const DI8DEVTYPE1STPERSON_SIXDOF: u32 = 3u32; +pub const DI8DEVTYPE1STPERSON_UNKNOWN: u32 = 2u32; +pub const DI8DEVTYPEDEVICECTRL_COMMSSELECTION: u32 = 3u32; +pub const DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED: u32 = 4u32; +pub const DI8DEVTYPEDEVICECTRL_UNKNOWN: u32 = 2u32; +pub const DI8DEVTYPEDRIVING_COMBINEDPEDALS: u32 = 2u32; +pub const DI8DEVTYPEDRIVING_DUALPEDALS: u32 = 3u32; +pub const DI8DEVTYPEDRIVING_HANDHELD: u32 = 5u32; +pub const DI8DEVTYPEDRIVING_LIMITED: u32 = 1u32; +pub const DI8DEVTYPEDRIVING_THREEPEDALS: u32 = 4u32; +pub const DI8DEVTYPEFLIGHT_LIMITED: u32 = 1u32; +pub const DI8DEVTYPEFLIGHT_RC: u32 = 4u32; +pub const DI8DEVTYPEFLIGHT_STICK: u32 = 2u32; +pub const DI8DEVTYPEFLIGHT_YOKE: u32 = 3u32; +pub const DI8DEVTYPEGAMEPAD_LIMITED: u32 = 1u32; +pub const DI8DEVTYPEGAMEPAD_STANDARD: u32 = 2u32; +pub const DI8DEVTYPEGAMEPAD_TILT: u32 = 3u32; +pub const DI8DEVTYPEJOYSTICK_LIMITED: u32 = 1u32; +pub const DI8DEVTYPEJOYSTICK_STANDARD: u32 = 2u32; +pub const DI8DEVTYPEKEYBOARD_J3100: u32 = 12u32; +pub const DI8DEVTYPEKEYBOARD_JAPAN106: u32 = 10u32; +pub const DI8DEVTYPEKEYBOARD_JAPANAX: u32 = 11u32; +pub const DI8DEVTYPEKEYBOARD_NEC98: u32 = 7u32; +pub const DI8DEVTYPEKEYBOARD_NEC98106: u32 = 9u32; +pub const DI8DEVTYPEKEYBOARD_NEC98LAPTOP: u32 = 8u32; +pub const DI8DEVTYPEKEYBOARD_NOKIA1050: u32 = 5u32; +pub const DI8DEVTYPEKEYBOARD_NOKIA9140: u32 = 6u32; +pub const DI8DEVTYPEKEYBOARD_OLIVETTI: u32 = 2u32; +pub const DI8DEVTYPEKEYBOARD_PCAT: u32 = 3u32; +pub const DI8DEVTYPEKEYBOARD_PCENH: u32 = 4u32; +pub const DI8DEVTYPEKEYBOARD_PCXT: u32 = 1u32; +pub const DI8DEVTYPEKEYBOARD_UNKNOWN: u32 = 0u32; +pub const DI8DEVTYPEMOUSE_ABSOLUTE: u32 = 6u32; +pub const DI8DEVTYPEMOUSE_FINGERSTICK: u32 = 3u32; +pub const DI8DEVTYPEMOUSE_TOUCHPAD: u32 = 4u32; +pub const DI8DEVTYPEMOUSE_TRACKBALL: u32 = 5u32; +pub const DI8DEVTYPEMOUSE_TRADITIONAL: u32 = 2u32; +pub const DI8DEVTYPEMOUSE_UNKNOWN: u32 = 1u32; +pub const DI8DEVTYPEREMOTE_UNKNOWN: u32 = 2u32; +pub const DI8DEVTYPESCREENPTR_LIGHTGUN: u32 = 3u32; +pub const DI8DEVTYPESCREENPTR_LIGHTPEN: u32 = 4u32; +pub const DI8DEVTYPESCREENPTR_TOUCH: u32 = 5u32; +pub const DI8DEVTYPESCREENPTR_UNKNOWN: u32 = 2u32; +pub const DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER: u32 = 3u32; +pub const DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS: u32 = 10u32; +pub const DI8DEVTYPESUPPLEMENTAL_DUALPEDALS: u32 = 11u32; +pub const DI8DEVTYPESUPPLEMENTAL_HANDTRACKER: u32 = 5u32; +pub const DI8DEVTYPESUPPLEMENTAL_HEADTRACKER: u32 = 4u32; +pub const DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS: u32 = 13u32; +pub const DI8DEVTYPESUPPLEMENTAL_SHIFTER: u32 = 7u32; +pub const DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE: u32 = 6u32; +pub const DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE: u32 = 9u32; +pub const DI8DEVTYPESUPPLEMENTAL_THREEPEDALS: u32 = 12u32; +pub const DI8DEVTYPESUPPLEMENTAL_THROTTLE: u32 = 8u32; +pub const DI8DEVTYPESUPPLEMENTAL_UNKNOWN: u32 = 2u32; +pub const DI8DEVTYPE_1STPERSON: u32 = 24u32; +pub const DI8DEVTYPE_DEVICE: u32 = 17u32; +pub const DI8DEVTYPE_DEVICECTRL: u32 = 25u32; +pub const DI8DEVTYPE_DRIVING: u32 = 22u32; +pub const DI8DEVTYPE_FLIGHT: u32 = 23u32; +pub const DI8DEVTYPE_GAMEPAD: u32 = 21u32; +pub const DI8DEVTYPE_JOYSTICK: u32 = 20u32; +pub const DI8DEVTYPE_KEYBOARD: u32 = 19u32; +pub const DI8DEVTYPE_LIMITEDGAMESUBTYPE: u32 = 1u32; +pub const DI8DEVTYPE_MOUSE: u32 = 18u32; +pub const DI8DEVTYPE_REMOTE: u32 = 27u32; +pub const DI8DEVTYPE_SCREENPOINTER: u32 = 26u32; +pub const DI8DEVTYPE_SUPPLEMENTAL: u32 = 28u32; +pub const DIAFTS_NEWDEVICEHIGH: u32 = 4294967295u32; +pub const DIAFTS_NEWDEVICELOW: u32 = 4294967295u32; +pub const DIAFTS_UNUSEDDEVICEHIGH: u32 = 0u32; +pub const DIAFTS_UNUSEDDEVICELOW: u32 = 0u32; +pub const DIAH_APPREQUESTED: u32 = 2u32; +pub const DIAH_DEFAULT: u32 = 32u32; +pub const DIAH_ERROR: u32 = 2147483648u32; +pub const DIAH_HWAPP: u32 = 4u32; +pub const DIAH_HWDEFAULT: u32 = 8u32; +pub const DIAH_UNMAPPED: u32 = 0u32; +pub const DIAH_USERCONFIG: u32 = 1u32; +pub const DIAPPIDFLAG_NOSIZE: u32 = 2u32; +pub const DIAPPIDFLAG_NOTIME: u32 = 1u32; +pub const DIAXIS_2DCONTROL_INOUT: u32 = 587301379u32; +pub const DIAXIS_2DCONTROL_LATERAL: u32 = 587235841u32; +pub const DIAXIS_2DCONTROL_MOVE: u32 = 587268610u32; +pub const DIAXIS_2DCONTROL_ROTATEZ: u32 = 587350532u32; +pub const DIAXIS_3DCONTROL_INOUT: u32 = 604078595u32; +pub const DIAXIS_3DCONTROL_LATERAL: u32 = 604013057u32; +pub const DIAXIS_3DCONTROL_MOVE: u32 = 604045826u32; +pub const DIAXIS_3DCONTROL_ROTATEX: u32 = 604193284u32; +pub const DIAXIS_3DCONTROL_ROTATEY: u32 = 604160517u32; +pub const DIAXIS_3DCONTROL_ROTATEZ: u32 = 604127750u32; +pub const DIAXIS_ANY_1: u32 = 4278206977u32; +pub const DIAXIS_ANY_2: u32 = 4278206978u32; +pub const DIAXIS_ANY_3: u32 = 4278206979u32; +pub const DIAXIS_ANY_4: u32 = 4278206980u32; +pub const DIAXIS_ANY_A_1: u32 = 4278436353u32; +pub const DIAXIS_ANY_A_2: u32 = 4278436354u32; +pub const DIAXIS_ANY_B_1: u32 = 4278469121u32; +pub const DIAXIS_ANY_B_2: u32 = 4278469122u32; +pub const DIAXIS_ANY_C_1: u32 = 4278501889u32; +pub const DIAXIS_ANY_C_2: u32 = 4278501890u32; +pub const DIAXIS_ANY_R_1: u32 = 4278338049u32; +pub const DIAXIS_ANY_R_2: u32 = 4278338050u32; +pub const DIAXIS_ANY_S_1: u32 = 4278534657u32; +pub const DIAXIS_ANY_S_2: u32 = 4278534658u32; +pub const DIAXIS_ANY_U_1: u32 = 4278370817u32; +pub const DIAXIS_ANY_U_2: u32 = 4278370818u32; +pub const DIAXIS_ANY_V_1: u32 = 4278403585u32; +pub const DIAXIS_ANY_V_2: u32 = 4278403586u32; +pub const DIAXIS_ANY_X_1: u32 = 4278239745u32; +pub const DIAXIS_ANY_X_2: u32 = 4278239746u32; +pub const DIAXIS_ANY_Y_1: u32 = 4278272513u32; +pub const DIAXIS_ANY_Y_2: u32 = 4278272514u32; +pub const DIAXIS_ANY_Z_1: u32 = 4278305281u32; +pub const DIAXIS_ANY_Z_2: u32 = 4278305282u32; +pub const DIAXIS_ARCADEP_LATERAL: u32 = 570458625u32; +pub const DIAXIS_ARCADEP_MOVE: u32 = 570491394u32; +pub const DIAXIS_ARCADES_LATERAL: u32 = 553681409u32; +pub const DIAXIS_ARCADES_MOVE: u32 = 553714178u32; +pub const DIAXIS_BASEBALLB_LATERAL: u32 = 251691521u32; +pub const DIAXIS_BASEBALLB_MOVE: u32 = 251724290u32; +pub const DIAXIS_BASEBALLF_LATERAL: u32 = 285245953u32; +pub const DIAXIS_BASEBALLF_MOVE: u32 = 285278722u32; +pub const DIAXIS_BASEBALLP_LATERAL: u32 = 268468737u32; +pub const DIAXIS_BASEBALLP_MOVE: u32 = 268501506u32; +pub const DIAXIS_BBALLD_LATERAL: u32 = 318800385u32; +pub const DIAXIS_BBALLD_MOVE: u32 = 318833154u32; +pub const DIAXIS_BBALLO_LATERAL: u32 = 302023169u32; +pub const DIAXIS_BBALLO_MOVE: u32 = 302055938u32; +pub const DIAXIS_BIKINGM_BRAKE: u32 = 470041091u32; +pub const DIAXIS_BIKINGM_PEDAL: u32 = 469828098u32; +pub const DIAXIS_BIKINGM_TURN: u32 = 469795329u32; +pub const DIAXIS_BROWSER_LATERAL: u32 = 671121921u32; +pub const DIAXIS_BROWSER_MOVE: u32 = 671154690u32; +pub const DIAXIS_BROWSER_VIEW: u32 = 671187459u32; +pub const DIAXIS_CADF_INOUT: u32 = 620855811u32; +pub const DIAXIS_CADF_LATERAL: u32 = 620790273u32; +pub const DIAXIS_CADF_MOVE: u32 = 620823042u32; +pub const DIAXIS_CADF_ROTATEX: u32 = 620970500u32; +pub const DIAXIS_CADF_ROTATEY: u32 = 620937733u32; +pub const DIAXIS_CADF_ROTATEZ: u32 = 620904966u32; +pub const DIAXIS_CADM_INOUT: u32 = 637633027u32; +pub const DIAXIS_CADM_LATERAL: u32 = 637567489u32; +pub const DIAXIS_CADM_MOVE: u32 = 637600258u32; +pub const DIAXIS_CADM_ROTATEX: u32 = 637747716u32; +pub const DIAXIS_CADM_ROTATEY: u32 = 637714949u32; +pub const DIAXIS_CADM_ROTATEZ: u32 = 637682182u32; +pub const DIAXIS_DRIVINGC_ACCELERATE: u32 = 33788418u32; +pub const DIAXIS_DRIVINGC_ACCEL_AND_BRAKE: u32 = 33638916u32; +pub const DIAXIS_DRIVINGC_BRAKE: u32 = 33821187u32; +pub const DIAXIS_DRIVINGC_STEER: u32 = 33589761u32; +pub const DIAXIS_DRIVINGR_ACCELERATE: u32 = 17011202u32; +pub const DIAXIS_DRIVINGR_ACCEL_AND_BRAKE: u32 = 16861700u32; +pub const DIAXIS_DRIVINGR_BRAKE: u32 = 17043971u32; +pub const DIAXIS_DRIVINGR_STEER: u32 = 16812545u32; +pub const DIAXIS_DRIVINGT_ACCELERATE: u32 = 50565635u32; +pub const DIAXIS_DRIVINGT_ACCEL_AND_BRAKE: u32 = 50416134u32; +pub const DIAXIS_DRIVINGT_BARREL: u32 = 50397698u32; +pub const DIAXIS_DRIVINGT_BRAKE: u32 = 50614789u32; +pub const DIAXIS_DRIVINGT_ROTATE: u32 = 50463236u32; +pub const DIAXIS_DRIVINGT_STEER: u32 = 50366977u32; +pub const DIAXIS_FIGHTINGH_LATERAL: u32 = 134251009u32; +pub const DIAXIS_FIGHTINGH_MOVE: u32 = 134283778u32; +pub const DIAXIS_FIGHTINGH_ROTATE: u32 = 134365699u32; +pub const DIAXIS_FISHING_LATERAL: u32 = 234914305u32; +pub const DIAXIS_FISHING_MOVE: u32 = 234947074u32; +pub const DIAXIS_FISHING_ROTATE: u32 = 235028995u32; +pub const DIAXIS_FLYINGC_BANK: u32 = 67144193u32; +pub const DIAXIS_FLYINGC_BRAKE: u32 = 67398148u32; +pub const DIAXIS_FLYINGC_FLAPS: u32 = 67459590u32; +pub const DIAXIS_FLYINGC_PITCH: u32 = 67176962u32; +pub const DIAXIS_FLYINGC_RUDDER: u32 = 67260933u32; +pub const DIAXIS_FLYINGC_THROTTLE: u32 = 67342851u32; +pub const DIAXIS_FLYINGH_BANK: u32 = 100698625u32; +pub const DIAXIS_FLYINGH_COLLECTIVE: u32 = 100764163u32; +pub const DIAXIS_FLYINGH_PITCH: u32 = 100731394u32; +pub const DIAXIS_FLYINGH_THROTTLE: u32 = 100915717u32; +pub const DIAXIS_FLYINGH_TORQUE: u32 = 100817412u32; +pub const DIAXIS_FLYINGM_BANK: u32 = 83921409u32; +pub const DIAXIS_FLYINGM_BRAKE: u32 = 84173317u32; +pub const DIAXIS_FLYINGM_FLAPS: u32 = 84234758u32; +pub const DIAXIS_FLYINGM_PITCH: u32 = 83954178u32; +pub const DIAXIS_FLYINGM_RUDDER: u32 = 84036100u32; +pub const DIAXIS_FLYINGM_THROTTLE: u32 = 84120067u32; +pub const DIAXIS_FOOTBALLD_LATERAL: u32 = 385909249u32; +pub const DIAXIS_FOOTBALLD_MOVE: u32 = 385942018u32; +pub const DIAXIS_FOOTBALLO_LATERAL: u32 = 369132033u32; +pub const DIAXIS_FOOTBALLO_MOVE: u32 = 369164802u32; +pub const DIAXIS_FOOTBALLQ_LATERAL: u32 = 352354817u32; +pub const DIAXIS_FOOTBALLQ_MOVE: u32 = 352387586u32; +pub const DIAXIS_FPS_LOOKUPDOWN: u32 = 151093763u32; +pub const DIAXIS_FPS_MOVE: u32 = 151060994u32; +pub const DIAXIS_FPS_ROTATE: u32 = 151028225u32; +pub const DIAXIS_FPS_SIDESTEP: u32 = 151142916u32; +pub const DIAXIS_GOLF_LATERAL: u32 = 402686465u32; +pub const DIAXIS_GOLF_MOVE: u32 = 402719234u32; +pub const DIAXIS_HOCKEYD_LATERAL: u32 = 436240897u32; +pub const DIAXIS_HOCKEYD_MOVE: u32 = 436273666u32; +pub const DIAXIS_HOCKEYG_LATERAL: u32 = 453018113u32; +pub const DIAXIS_HOCKEYG_MOVE: u32 = 453050882u32; +pub const DIAXIS_HOCKEYO_LATERAL: u32 = 419463681u32; +pub const DIAXIS_HOCKEYO_MOVE: u32 = 419496450u32; +pub const DIAXIS_HUNTING_LATERAL: u32 = 218137089u32; +pub const DIAXIS_HUNTING_MOVE: u32 = 218169858u32; +pub const DIAXIS_HUNTING_ROTATE: u32 = 218251779u32; +pub const DIAXIS_MECHA_ROTATE: u32 = 687997443u32; +pub const DIAXIS_MECHA_STEER: u32 = 687899137u32; +pub const DIAXIS_MECHA_THROTTLE: u32 = 688095748u32; +pub const DIAXIS_MECHA_TORSO: u32 = 687931906u32; +pub const DIAXIS_RACQUET_LATERAL: u32 = 536904193u32; +pub const DIAXIS_RACQUET_MOVE: u32 = 536936962u32; +pub const DIAXIS_REMOTE_SLIDER: u32 = 654639617u32; +pub const DIAXIS_REMOTE_SLIDER2: u32 = 654656002u32; +pub const DIAXIS_SKIING_SPEED: u32 = 486605314u32; +pub const DIAXIS_SKIING_TURN: u32 = 486572545u32; +pub const DIAXIS_SOCCERD_LATERAL: u32 = 520126977u32; +pub const DIAXIS_SOCCERD_MOVE: u32 = 520159746u32; +pub const DIAXIS_SOCCERO_BEND: u32 = 503415299u32; +pub const DIAXIS_SOCCERO_LATERAL: u32 = 503349761u32; +pub const DIAXIS_SOCCERO_MOVE: u32 = 503382530u32; +pub const DIAXIS_SPACESIM_CLIMB: u32 = 117555716u32; +pub const DIAXIS_SPACESIM_LATERAL: u32 = 117473793u32; +pub const DIAXIS_SPACESIM_MOVE: u32 = 117506562u32; +pub const DIAXIS_SPACESIM_ROTATE: u32 = 117588485u32; +pub const DIAXIS_SPACESIM_THROTTLE: u32 = 117670403u32; +pub const DIAXIS_STRATEGYR_LATERAL: u32 = 184582657u32; +pub const DIAXIS_STRATEGYR_MOVE: u32 = 184615426u32; +pub const DIAXIS_STRATEGYR_ROTATE: u32 = 184697347u32; +pub const DIAXIS_STRATEGYT_LATERAL: u32 = 201359873u32; +pub const DIAXIS_STRATEGYT_MOVE: u32 = 201392642u32; +pub const DIAXIS_TPS_MOVE: u32 = 167838210u32; +pub const DIAXIS_TPS_STEP: u32 = 167821827u32; +pub const DIAXIS_TPS_TURN: u32 = 167903745u32; +pub const DIA_APPFIXED: u32 = 16u32; +pub const DIA_APPMAPPED: u32 = 2u32; +pub const DIA_APPNOMAP: u32 = 4u32; +pub const DIA_FORCEFEEDBACK: u32 = 1u32; +pub const DIA_NORANGE: u32 = 8u32; +pub const DIBUTTON_2DCONTROL_DEVICE: u32 = 587220222u32; +pub const DIBUTTON_2DCONTROL_DISPLAY: u32 = 587219973u32; +pub const DIBUTTON_2DCONTROL_MENU: u32 = 587203837u32; +pub const DIBUTTON_2DCONTROL_PAUSE: u32 = 587220220u32; +pub const DIBUTTON_2DCONTROL_SELECT: u32 = 587203585u32; +pub const DIBUTTON_2DCONTROL_SPECIAL: u32 = 587203587u32; +pub const DIBUTTON_2DCONTROL_SPECIAL1: u32 = 587203586u32; +pub const DIBUTTON_2DCONTROL_SPECIAL2: u32 = 587203588u32; +pub const DIBUTTON_3DCONTROL_DEVICE: u32 = 603997438u32; +pub const DIBUTTON_3DCONTROL_DISPLAY: u32 = 603997189u32; +pub const DIBUTTON_3DCONTROL_MENU: u32 = 603981053u32; +pub const DIBUTTON_3DCONTROL_PAUSE: u32 = 603997436u32; +pub const DIBUTTON_3DCONTROL_SELECT: u32 = 603980801u32; +pub const DIBUTTON_3DCONTROL_SPECIAL: u32 = 603980803u32; +pub const DIBUTTON_3DCONTROL_SPECIAL1: u32 = 603980802u32; +pub const DIBUTTON_3DCONTROL_SPECIAL2: u32 = 603980804u32; +pub const DIBUTTON_ARCADEP_BACK_LINK: u32 = 570508520u32; +pub const DIBUTTON_ARCADEP_CROUCH: u32 = 570426371u32; +pub const DIBUTTON_ARCADEP_DEVICE: u32 = 570443006u32; +pub const DIBUTTON_ARCADEP_FIRE: u32 = 570426370u32; +pub const DIBUTTON_ARCADEP_FIRESECONDARY: u32 = 570442758u32; +pub const DIBUTTON_ARCADEP_FORWARD_LINK: u32 = 570508512u32; +pub const DIBUTTON_ARCADEP_JUMP: u32 = 570426369u32; +pub const DIBUTTON_ARCADEP_LEFT_LINK: u32 = 570475748u32; +pub const DIBUTTON_ARCADEP_MENU: u32 = 570426621u32; +pub const DIBUTTON_ARCADEP_PAUSE: u32 = 570443004u32; +pub const DIBUTTON_ARCADEP_RIGHT_LINK: u32 = 570475756u32; +pub const DIBUTTON_ARCADEP_SELECT: u32 = 570426373u32; +pub const DIBUTTON_ARCADEP_SPECIAL: u32 = 570426372u32; +pub const DIBUTTON_ARCADEP_VIEW_DOWN_LINK: u32 = 570934504u32; +pub const DIBUTTON_ARCADEP_VIEW_LEFT_LINK: u32 = 570934500u32; +pub const DIBUTTON_ARCADEP_VIEW_RIGHT_LINK: u32 = 570934508u32; +pub const DIBUTTON_ARCADEP_VIEW_UP_LINK: u32 = 570934496u32; +pub const DIBUTTON_ARCADES_ATTACK: u32 = 553649155u32; +pub const DIBUTTON_ARCADES_BACK_LINK: u32 = 553731304u32; +pub const DIBUTTON_ARCADES_CARRY: u32 = 553649154u32; +pub const DIBUTTON_ARCADES_DEVICE: u32 = 553665790u32; +pub const DIBUTTON_ARCADES_FORWARD_LINK: u32 = 553731296u32; +pub const DIBUTTON_ARCADES_LEFT_LINK: u32 = 553698532u32; +pub const DIBUTTON_ARCADES_MENU: u32 = 553649405u32; +pub const DIBUTTON_ARCADES_PAUSE: u32 = 553665788u32; +pub const DIBUTTON_ARCADES_RIGHT_LINK: u32 = 553698540u32; +pub const DIBUTTON_ARCADES_SELECT: u32 = 553649157u32; +pub const DIBUTTON_ARCADES_SPECIAL: u32 = 553649156u32; +pub const DIBUTTON_ARCADES_THROW: u32 = 553649153u32; +pub const DIBUTTON_ARCADES_VIEW_DOWN_LINK: u32 = 554157288u32; +pub const DIBUTTON_ARCADES_VIEW_LEFT_LINK: u32 = 554157284u32; +pub const DIBUTTON_ARCADES_VIEW_RIGHT_LINK: u32 = 554157292u32; +pub const DIBUTTON_ARCADES_VIEW_UP_LINK: u32 = 554157280u32; +pub const DIBUTTON_BASEBALLB_BACK_LINK: u32 = 251741416u32; +pub const DIBUTTON_BASEBALLB_BOX: u32 = 251675658u32; +pub const DIBUTTON_BASEBALLB_BUNT: u32 = 251659268u32; +pub const DIBUTTON_BASEBALLB_BURST: u32 = 251659270u32; +pub const DIBUTTON_BASEBALLB_CONTACT: u32 = 251659272u32; +pub const DIBUTTON_BASEBALLB_DEVICE: u32 = 251675902u32; +pub const DIBUTTON_BASEBALLB_FORWARD_LINK: u32 = 251741408u32; +pub const DIBUTTON_BASEBALLB_LEFT_LINK: u32 = 251708644u32; +pub const DIBUTTON_BASEBALLB_MENU: u32 = 251659517u32; +pub const DIBUTTON_BASEBALLB_NORMAL: u32 = 251659266u32; +pub const DIBUTTON_BASEBALLB_NOSTEAL: u32 = 251675657u32; +pub const DIBUTTON_BASEBALLB_PAUSE: u32 = 251675900u32; +pub const DIBUTTON_BASEBALLB_POWER: u32 = 251659267u32; +pub const DIBUTTON_BASEBALLB_RIGHT_LINK: u32 = 251708652u32; +pub const DIBUTTON_BASEBALLB_SELECT: u32 = 251659265u32; +pub const DIBUTTON_BASEBALLB_SLIDE: u32 = 251659271u32; +pub const DIBUTTON_BASEBALLB_STEAL: u32 = 251659269u32; +pub const DIBUTTON_BASEBALLF_AIM_LEFT_LINK: u32 = 285263076u32; +pub const DIBUTTON_BASEBALLF_AIM_RIGHT_LINK: u32 = 285263084u32; +pub const DIBUTTON_BASEBALLF_BACK_LINK: u32 = 285295848u32; +pub const DIBUTTON_BASEBALLF_BURST: u32 = 285213700u32; +pub const DIBUTTON_BASEBALLF_DEVICE: u32 = 285230334u32; +pub const DIBUTTON_BASEBALLF_DIVE: u32 = 285213702u32; +pub const DIBUTTON_BASEBALLF_FORWARD_LINK: u32 = 285295840u32; +pub const DIBUTTON_BASEBALLF_JUMP: u32 = 285213701u32; +pub const DIBUTTON_BASEBALLF_MENU: u32 = 285213949u32; +pub const DIBUTTON_BASEBALLF_NEAREST: u32 = 285213697u32; +pub const DIBUTTON_BASEBALLF_PAUSE: u32 = 285230332u32; +pub const DIBUTTON_BASEBALLF_SHIFTIN: u32 = 285230087u32; +pub const DIBUTTON_BASEBALLF_SHIFTOUT: u32 = 285230088u32; +pub const DIBUTTON_BASEBALLF_THROW1: u32 = 285213698u32; +pub const DIBUTTON_BASEBALLF_THROW2: u32 = 285213699u32; +pub const DIBUTTON_BASEBALLP_BACK_LINK: u32 = 268518632u32; +pub const DIBUTTON_BASEBALLP_BASE: u32 = 268436483u32; +pub const DIBUTTON_BASEBALLP_DEVICE: u32 = 268453118u32; +pub const DIBUTTON_BASEBALLP_FAKE: u32 = 268436485u32; +pub const DIBUTTON_BASEBALLP_FORWARD_LINK: u32 = 268518624u32; +pub const DIBUTTON_BASEBALLP_LEFT_LINK: u32 = 268485860u32; +pub const DIBUTTON_BASEBALLP_LOOK: u32 = 268452871u32; +pub const DIBUTTON_BASEBALLP_MENU: u32 = 268436733u32; +pub const DIBUTTON_BASEBALLP_PAUSE: u32 = 268453116u32; +pub const DIBUTTON_BASEBALLP_PITCH: u32 = 268436482u32; +pub const DIBUTTON_BASEBALLP_RIGHT_LINK: u32 = 268485868u32; +pub const DIBUTTON_BASEBALLP_SELECT: u32 = 268436481u32; +pub const DIBUTTON_BASEBALLP_THROW: u32 = 268436484u32; +pub const DIBUTTON_BASEBALLP_WALK: u32 = 268452870u32; +pub const DIBUTTON_BBALLD_BACK_LINK: u32 = 318850280u32; +pub const DIBUTTON_BBALLD_BURST: u32 = 318768134u32; +pub const DIBUTTON_BBALLD_DEVICE: u32 = 318784766u32; +pub const DIBUTTON_BBALLD_FAKE: u32 = 318768131u32; +pub const DIBUTTON_BBALLD_FORWARD_LINK: u32 = 318850272u32; +pub const DIBUTTON_BBALLD_JUMP: u32 = 318768129u32; +pub const DIBUTTON_BBALLD_LEFT_LINK: u32 = 318817508u32; +pub const DIBUTTON_BBALLD_MENU: u32 = 318768381u32; +pub const DIBUTTON_BBALLD_PAUSE: u32 = 318784764u32; +pub const DIBUTTON_BBALLD_PLAY: u32 = 318768135u32; +pub const DIBUTTON_BBALLD_PLAYER: u32 = 318768133u32; +pub const DIBUTTON_BBALLD_RIGHT_LINK: u32 = 318817516u32; +pub const DIBUTTON_BBALLD_SPECIAL: u32 = 318768132u32; +pub const DIBUTTON_BBALLD_STEAL: u32 = 318768130u32; +pub const DIBUTTON_BBALLD_SUBSTITUTE: u32 = 318784521u32; +pub const DIBUTTON_BBALLD_TIMEOUT: u32 = 318784520u32; +pub const DIBUTTON_BBALLO_BACK_LINK: u32 = 302073064u32; +pub const DIBUTTON_BBALLO_BURST: u32 = 301990919u32; +pub const DIBUTTON_BBALLO_CALL: u32 = 301990920u32; +pub const DIBUTTON_BBALLO_DEVICE: u32 = 302007550u32; +pub const DIBUTTON_BBALLO_DUNK: u32 = 301990914u32; +pub const DIBUTTON_BBALLO_FAKE: u32 = 301990916u32; +pub const DIBUTTON_BBALLO_FORWARD_LINK: u32 = 302073056u32; +pub const DIBUTTON_BBALLO_JAB: u32 = 302007307u32; +pub const DIBUTTON_BBALLO_LEFT_LINK: u32 = 302040292u32; +pub const DIBUTTON_BBALLO_MENU: u32 = 301991165u32; +pub const DIBUTTON_BBALLO_PASS: u32 = 301990915u32; +pub const DIBUTTON_BBALLO_PAUSE: u32 = 302007548u32; +pub const DIBUTTON_BBALLO_PLAY: u32 = 302007306u32; +pub const DIBUTTON_BBALLO_PLAYER: u32 = 301990918u32; +pub const DIBUTTON_BBALLO_POST: u32 = 302007308u32; +pub const DIBUTTON_BBALLO_RIGHT_LINK: u32 = 302040300u32; +pub const DIBUTTON_BBALLO_SCREEN: u32 = 302007305u32; +pub const DIBUTTON_BBALLO_SHOOT: u32 = 301990913u32; +pub const DIBUTTON_BBALLO_SPECIAL: u32 = 301990917u32; +pub const DIBUTTON_BBALLO_SUBSTITUTE: u32 = 302007310u32; +pub const DIBUTTON_BBALLO_TIMEOUT: u32 = 302007309u32; +pub const DIBUTTON_BIKINGM_BRAKE_BUTTON_LINK: u32 = 470041832u32; +pub const DIBUTTON_BIKINGM_CAMERA: u32 = 469763074u32; +pub const DIBUTTON_BIKINGM_DEVICE: u32 = 469779710u32; +pub const DIBUTTON_BIKINGM_FASTER_LINK: u32 = 469845216u32; +pub const DIBUTTON_BIKINGM_JUMP: u32 = 469763073u32; +pub const DIBUTTON_BIKINGM_LEFT_LINK: u32 = 469812452u32; +pub const DIBUTTON_BIKINGM_MENU: u32 = 469763325u32; +pub const DIBUTTON_BIKINGM_PAUSE: u32 = 469779708u32; +pub const DIBUTTON_BIKINGM_RIGHT_LINK: u32 = 469812460u32; +pub const DIBUTTON_BIKINGM_SELECT: u32 = 469763076u32; +pub const DIBUTTON_BIKINGM_SLOWER_LINK: u32 = 469845224u32; +pub const DIBUTTON_BIKINGM_SPECIAL1: u32 = 469763075u32; +pub const DIBUTTON_BIKINGM_SPECIAL2: u32 = 469763077u32; +pub const DIBUTTON_BIKINGM_ZOOM: u32 = 469779462u32; +pub const DIBUTTON_BROWSER_DEVICE: u32 = 671106302u32; +pub const DIBUTTON_BROWSER_FAVORITES: u32 = 671106054u32; +pub const DIBUTTON_BROWSER_HISTORY: u32 = 671106057u32; +pub const DIBUTTON_BROWSER_HOME: u32 = 671106053u32; +pub const DIBUTTON_BROWSER_MENU: u32 = 671089917u32; +pub const DIBUTTON_BROWSER_NEXT: u32 = 671106055u32; +pub const DIBUTTON_BROWSER_PAUSE: u32 = 671106300u32; +pub const DIBUTTON_BROWSER_PREVIOUS: u32 = 671106056u32; +pub const DIBUTTON_BROWSER_PRINT: u32 = 671106058u32; +pub const DIBUTTON_BROWSER_REFRESH: u32 = 671089666u32; +pub const DIBUTTON_BROWSER_SEARCH: u32 = 671106051u32; +pub const DIBUTTON_BROWSER_SELECT: u32 = 671089665u32; +pub const DIBUTTON_BROWSER_STOP: u32 = 671106052u32; +pub const DIBUTTON_CADF_DEVICE: u32 = 620774654u32; +pub const DIBUTTON_CADF_DISPLAY: u32 = 620774405u32; +pub const DIBUTTON_CADF_MENU: u32 = 620758269u32; +pub const DIBUTTON_CADF_PAUSE: u32 = 620774652u32; +pub const DIBUTTON_CADF_SELECT: u32 = 620758017u32; +pub const DIBUTTON_CADF_SPECIAL: u32 = 620758019u32; +pub const DIBUTTON_CADF_SPECIAL1: u32 = 620758018u32; +pub const DIBUTTON_CADF_SPECIAL2: u32 = 620758020u32; +pub const DIBUTTON_CADM_DEVICE: u32 = 637551870u32; +pub const DIBUTTON_CADM_DISPLAY: u32 = 637551621u32; +pub const DIBUTTON_CADM_MENU: u32 = 637535485u32; +pub const DIBUTTON_CADM_PAUSE: u32 = 637551868u32; +pub const DIBUTTON_CADM_SELECT: u32 = 637535233u32; +pub const DIBUTTON_CADM_SPECIAL: u32 = 637535235u32; +pub const DIBUTTON_CADM_SPECIAL1: u32 = 637535234u32; +pub const DIBUTTON_CADM_SPECIAL2: u32 = 637535236u32; +pub const DIBUTTON_DRIVINGC_ACCELERATE_LINK: u32 = 33805536u32; +pub const DIBUTTON_DRIVINGC_AIDS: u32 = 33571847u32; +pub const DIBUTTON_DRIVINGC_BRAKE: u32 = 33573896u32; +pub const DIBUTTON_DRIVINGC_DASHBOARD: u32 = 33571846u32; +pub const DIBUTTON_DRIVINGC_DEVICE: u32 = 33572094u32; +pub const DIBUTTON_DRIVINGC_FIRE: u32 = 33557505u32; +pub const DIBUTTON_DRIVINGC_FIRESECONDARY: u32 = 33573897u32; +pub const DIBUTTON_DRIVINGC_GLANCE_LEFT_LINK: u32 = 34063588u32; +pub const DIBUTTON_DRIVINGC_GLANCE_RIGHT_LINK: u32 = 34063596u32; +pub const DIBUTTON_DRIVINGC_MENU: u32 = 33555709u32; +pub const DIBUTTON_DRIVINGC_PAUSE: u32 = 33572092u32; +pub const DIBUTTON_DRIVINGC_SHIFTDOWN: u32 = 33573893u32; +pub const DIBUTTON_DRIVINGC_SHIFTUP: u32 = 33573892u32; +pub const DIBUTTON_DRIVINGC_STEER_LEFT_LINK: u32 = 33606884u32; +pub const DIBUTTON_DRIVINGC_STEER_RIGHT_LINK: u32 = 33606892u32; +pub const DIBUTTON_DRIVINGC_TARGET: u32 = 33557507u32; +pub const DIBUTTON_DRIVINGC_WEAPONS: u32 = 33557506u32; +pub const DIBUTTON_DRIVINGR_ACCELERATE_LINK: u32 = 17028320u32; +pub const DIBUTTON_DRIVINGR_AIDS: u32 = 16794630u32; +pub const DIBUTTON_DRIVINGR_BOOST: u32 = 16794632u32; +pub const DIBUTTON_DRIVINGR_BRAKE: u32 = 16796676u32; +pub const DIBUTTON_DRIVINGR_DASHBOARD: u32 = 16794629u32; +pub const DIBUTTON_DRIVINGR_DEVICE: u32 = 16794878u32; +pub const DIBUTTON_DRIVINGR_GLANCE_LEFT_LINK: u32 = 17286372u32; +pub const DIBUTTON_DRIVINGR_GLANCE_RIGHT_LINK: u32 = 17286380u32; +pub const DIBUTTON_DRIVINGR_MAP: u32 = 16794631u32; +pub const DIBUTTON_DRIVINGR_MENU: u32 = 16778493u32; +pub const DIBUTTON_DRIVINGR_PAUSE: u32 = 16794876u32; +pub const DIBUTTON_DRIVINGR_PIT: u32 = 16794633u32; +pub const DIBUTTON_DRIVINGR_SHIFTDOWN: u32 = 16780290u32; +pub const DIBUTTON_DRIVINGR_SHIFTUP: u32 = 16780289u32; +pub const DIBUTTON_DRIVINGR_STEER_LEFT_LINK: u32 = 16829668u32; +pub const DIBUTTON_DRIVINGR_STEER_RIGHT_LINK: u32 = 16829676u32; +pub const DIBUTTON_DRIVINGR_VIEW: u32 = 16784387u32; +pub const DIBUTTON_DRIVINGT_ACCELERATE_LINK: u32 = 50582752u32; +pub const DIBUTTON_DRIVINGT_BARREL_DOWN_LINK: u32 = 50414824u32; +pub const DIBUTTON_DRIVINGT_BARREL_UP_LINK: u32 = 50414816u32; +pub const DIBUTTON_DRIVINGT_BRAKE: u32 = 50351110u32; +pub const DIBUTTON_DRIVINGT_DASHBOARD: u32 = 50355205u32; +pub const DIBUTTON_DRIVINGT_DEVICE: u32 = 50349310u32; +pub const DIBUTTON_DRIVINGT_FIRE: u32 = 50334721u32; +pub const DIBUTTON_DRIVINGT_FIRESECONDARY: u32 = 50351111u32; +pub const DIBUTTON_DRIVINGT_GLANCE_LEFT_LINK: u32 = 50840804u32; +pub const DIBUTTON_DRIVINGT_GLANCE_RIGHT_LINK: u32 = 50840812u32; +pub const DIBUTTON_DRIVINGT_MENU: u32 = 50332925u32; +pub const DIBUTTON_DRIVINGT_PAUSE: u32 = 50349308u32; +pub const DIBUTTON_DRIVINGT_ROTATE_LEFT_LINK: u32 = 50480356u32; +pub const DIBUTTON_DRIVINGT_ROTATE_RIGHT_LINK: u32 = 50480364u32; +pub const DIBUTTON_DRIVINGT_STEER_LEFT_LINK: u32 = 50384100u32; +pub const DIBUTTON_DRIVINGT_STEER_RIGHT_LINK: u32 = 50384108u32; +pub const DIBUTTON_DRIVINGT_TARGET: u32 = 50334723u32; +pub const DIBUTTON_DRIVINGT_VIEW: u32 = 50355204u32; +pub const DIBUTTON_DRIVINGT_WEAPONS: u32 = 50334722u32; +pub const DIBUTTON_FIGHTINGH_BACKWARD_LINK: u32 = 134300904u32; +pub const DIBUTTON_FIGHTINGH_BLOCK: u32 = 134218755u32; +pub const DIBUTTON_FIGHTINGH_CROUCH: u32 = 134218756u32; +pub const DIBUTTON_FIGHTINGH_DEVICE: u32 = 134235390u32; +pub const DIBUTTON_FIGHTINGH_DISPLAY: u32 = 134235145u32; +pub const DIBUTTON_FIGHTINGH_DODGE: u32 = 134235146u32; +pub const DIBUTTON_FIGHTINGH_FORWARD_LINK: u32 = 134300896u32; +pub const DIBUTTON_FIGHTINGH_JUMP: u32 = 134218757u32; +pub const DIBUTTON_FIGHTINGH_KICK: u32 = 134218754u32; +pub const DIBUTTON_FIGHTINGH_LEFT_LINK: u32 = 134268132u32; +pub const DIBUTTON_FIGHTINGH_MENU: u32 = 134219005u32; +pub const DIBUTTON_FIGHTINGH_PAUSE: u32 = 134235388u32; +pub const DIBUTTON_FIGHTINGH_PUNCH: u32 = 134218753u32; +pub const DIBUTTON_FIGHTINGH_RIGHT_LINK: u32 = 134268140u32; +pub const DIBUTTON_FIGHTINGH_SELECT: u32 = 134235144u32; +pub const DIBUTTON_FIGHTINGH_SPECIAL1: u32 = 134218758u32; +pub const DIBUTTON_FIGHTINGH_SPECIAL2: u32 = 134218759u32; +pub const DIBUTTON_FISHING_BACK_LINK: u32 = 234964200u32; +pub const DIBUTTON_FISHING_BAIT: u32 = 234882052u32; +pub const DIBUTTON_FISHING_BINOCULAR: u32 = 234882051u32; +pub const DIBUTTON_FISHING_CAST: u32 = 234882049u32; +pub const DIBUTTON_FISHING_CROUCH: u32 = 234898439u32; +pub const DIBUTTON_FISHING_DEVICE: u32 = 234898686u32; +pub const DIBUTTON_FISHING_DISPLAY: u32 = 234898438u32; +pub const DIBUTTON_FISHING_FORWARD_LINK: u32 = 234964192u32; +pub const DIBUTTON_FISHING_JUMP: u32 = 234898440u32; +pub const DIBUTTON_FISHING_LEFT_LINK: u32 = 234931428u32; +pub const DIBUTTON_FISHING_MAP: u32 = 234882053u32; +pub const DIBUTTON_FISHING_MENU: u32 = 234882301u32; +pub const DIBUTTON_FISHING_PAUSE: u32 = 234898684u32; +pub const DIBUTTON_FISHING_RIGHT_LINK: u32 = 234931436u32; +pub const DIBUTTON_FISHING_ROTATE_LEFT_LINK: u32 = 235029732u32; +pub const DIBUTTON_FISHING_ROTATE_RIGHT_LINK: u32 = 235029740u32; +pub const DIBUTTON_FISHING_TYPE: u32 = 234882050u32; +pub const DIBUTTON_FLYINGC_BRAKE_LINK: u32 = 67398880u32; +pub const DIBUTTON_FLYINGC_DEVICE: u32 = 67126526u32; +pub const DIBUTTON_FLYINGC_DISPLAY: u32 = 67118082u32; +pub const DIBUTTON_FLYINGC_FASTER_LINK: u32 = 67359968u32; +pub const DIBUTTON_FLYINGC_FLAPSDOWN: u32 = 67134469u32; +pub const DIBUTTON_FLYINGC_FLAPSUP: u32 = 67134468u32; +pub const DIBUTTON_FLYINGC_GEAR: u32 = 67120131u32; +pub const DIBUTTON_FLYINGC_GLANCE_DOWN_LINK: u32 = 67618024u32; +pub const DIBUTTON_FLYINGC_GLANCE_LEFT_LINK: u32 = 67618020u32; +pub const DIBUTTON_FLYINGC_GLANCE_RIGHT_LINK: u32 = 67618028u32; +pub const DIBUTTON_FLYINGC_GLANCE_UP_LINK: u32 = 67618016u32; +pub const DIBUTTON_FLYINGC_MENU: u32 = 67110141u32; +pub const DIBUTTON_FLYINGC_PAUSE: u32 = 67126524u32; +pub const DIBUTTON_FLYINGC_SLOWER_LINK: u32 = 67359976u32; +pub const DIBUTTON_FLYINGC_VIEW: u32 = 67118081u32; +pub const DIBUTTON_FLYINGH_COUNTER: u32 = 100684804u32; +pub const DIBUTTON_FLYINGH_DEVICE: u32 = 100680958u32; +pub const DIBUTTON_FLYINGH_FASTER_LINK: u32 = 100916448u32; +pub const DIBUTTON_FLYINGH_FIRE: u32 = 100668417u32; +pub const DIBUTTON_FLYINGH_FIRESECONDARY: u32 = 100682759u32; +pub const DIBUTTON_FLYINGH_GEAR: u32 = 100688902u32; +pub const DIBUTTON_FLYINGH_GLANCE_DOWN_LINK: u32 = 101172456u32; +pub const DIBUTTON_FLYINGH_GLANCE_LEFT_LINK: u32 = 101172452u32; +pub const DIBUTTON_FLYINGH_GLANCE_RIGHT_LINK: u32 = 101172460u32; +pub const DIBUTTON_FLYINGH_GLANCE_UP_LINK: u32 = 101172448u32; +pub const DIBUTTON_FLYINGH_MENU: u32 = 100664573u32; +pub const DIBUTTON_FLYINGH_PAUSE: u32 = 100680956u32; +pub const DIBUTTON_FLYINGH_SLOWER_LINK: u32 = 100916456u32; +pub const DIBUTTON_FLYINGH_TARGET: u32 = 100668419u32; +pub const DIBUTTON_FLYINGH_VIEW: u32 = 100688901u32; +pub const DIBUTTON_FLYINGH_WEAPONS: u32 = 100668418u32; +pub const DIBUTTON_FLYINGM_BRAKE_LINK: u32 = 84174048u32; +pub const DIBUTTON_FLYINGM_COUNTER: u32 = 83909636u32; +pub const DIBUTTON_FLYINGM_DEVICE: u32 = 83903742u32; +pub const DIBUTTON_FLYINGM_DISPLAY: u32 = 83911686u32; +pub const DIBUTTON_FLYINGM_FASTER_LINK: u32 = 84137184u32; +pub const DIBUTTON_FLYINGM_FIRE: u32 = 83889153u32; +pub const DIBUTTON_FLYINGM_FIRESECONDARY: u32 = 83905545u32; +pub const DIBUTTON_FLYINGM_FLAPSDOWN: u32 = 83907592u32; +pub const DIBUTTON_FLYINGM_FLAPSUP: u32 = 83907591u32; +pub const DIBUTTON_FLYINGM_GEAR: u32 = 83911690u32; +pub const DIBUTTON_FLYINGM_GLANCE_DOWN_LINK: u32 = 84395240u32; +pub const DIBUTTON_FLYINGM_GLANCE_LEFT_LINK: u32 = 84395236u32; +pub const DIBUTTON_FLYINGM_GLANCE_RIGHT_LINK: u32 = 84395244u32; +pub const DIBUTTON_FLYINGM_GLANCE_UP_LINK: u32 = 84395232u32; +pub const DIBUTTON_FLYINGM_MENU: u32 = 83887357u32; +pub const DIBUTTON_FLYINGM_PAUSE: u32 = 83903740u32; +pub const DIBUTTON_FLYINGM_SLOWER_LINK: u32 = 84137192u32; +pub const DIBUTTON_FLYINGM_TARGET: u32 = 83889155u32; +pub const DIBUTTON_FLYINGM_VIEW: u32 = 83911685u32; +pub const DIBUTTON_FLYINGM_WEAPONS: u32 = 83889154u32; +pub const DIBUTTON_FOOTBALLD_AUDIBLE: u32 = 385893387u32; +pub const DIBUTTON_FOOTBALLD_BACK_LINK: u32 = 385959144u32; +pub const DIBUTTON_FOOTBALLD_BULLRUSH: u32 = 385893385u32; +pub const DIBUTTON_FOOTBALLD_DEVICE: u32 = 385893630u32; +pub const DIBUTTON_FOOTBALLD_FAKE: u32 = 385876997u32; +pub const DIBUTTON_FOOTBALLD_FORWARD_LINK: u32 = 385959136u32; +pub const DIBUTTON_FOOTBALLD_JUMP: u32 = 385876995u32; +pub const DIBUTTON_FOOTBALLD_LEFT_LINK: u32 = 385926372u32; +pub const DIBUTTON_FOOTBALLD_MENU: u32 = 385877245u32; +pub const DIBUTTON_FOOTBALLD_PAUSE: u32 = 385893628u32; +pub const DIBUTTON_FOOTBALLD_PLAY: u32 = 385876993u32; +pub const DIBUTTON_FOOTBALLD_RIGHT_LINK: u32 = 385926380u32; +pub const DIBUTTON_FOOTBALLD_RIP: u32 = 385893386u32; +pub const DIBUTTON_FOOTBALLD_SELECT: u32 = 385876994u32; +pub const DIBUTTON_FOOTBALLD_SPIN: u32 = 385893383u32; +pub const DIBUTTON_FOOTBALLD_SUBSTITUTE: u32 = 385893389u32; +pub const DIBUTTON_FOOTBALLD_SUPERTACKLE: u32 = 385876998u32; +pub const DIBUTTON_FOOTBALLD_SWIM: u32 = 385893384u32; +pub const DIBUTTON_FOOTBALLD_TACKLE: u32 = 385876996u32; +pub const DIBUTTON_FOOTBALLD_ZOOM: u32 = 385893388u32; +pub const DIBUTTON_FOOTBALLO_BACK_LINK: u32 = 369181928u32; +pub const DIBUTTON_FOOTBALLO_DEVICE: u32 = 369116414u32; +pub const DIBUTTON_FOOTBALLO_DIVE: u32 = 369116169u32; +pub const DIBUTTON_FOOTBALLO_FORWARD_LINK: u32 = 369181920u32; +pub const DIBUTTON_FOOTBALLO_JUKE: u32 = 369116166u32; +pub const DIBUTTON_FOOTBALLO_JUMP: u32 = 369099777u32; +pub const DIBUTTON_FOOTBALLO_LEFTARM: u32 = 369099778u32; +pub const DIBUTTON_FOOTBALLO_LEFT_LINK: u32 = 369149156u32; +pub const DIBUTTON_FOOTBALLO_MENU: u32 = 369100029u32; +pub const DIBUTTON_FOOTBALLO_PAUSE: u32 = 369116412u32; +pub const DIBUTTON_FOOTBALLO_RIGHTARM: u32 = 369099779u32; +pub const DIBUTTON_FOOTBALLO_RIGHT_LINK: u32 = 369149164u32; +pub const DIBUTTON_FOOTBALLO_SHOULDER: u32 = 369116167u32; +pub const DIBUTTON_FOOTBALLO_SPIN: u32 = 369099781u32; +pub const DIBUTTON_FOOTBALLO_SUBSTITUTE: u32 = 369116171u32; +pub const DIBUTTON_FOOTBALLO_THROW: u32 = 369099780u32; +pub const DIBUTTON_FOOTBALLO_TURBO: u32 = 369116168u32; +pub const DIBUTTON_FOOTBALLO_ZOOM: u32 = 369116170u32; +pub const DIBUTTON_FOOTBALLP_DEVICE: u32 = 335561982u32; +pub const DIBUTTON_FOOTBALLP_HELP: u32 = 335545347u32; +pub const DIBUTTON_FOOTBALLP_MENU: u32 = 335545597u32; +pub const DIBUTTON_FOOTBALLP_PAUSE: u32 = 335561980u32; +pub const DIBUTTON_FOOTBALLP_PLAY: u32 = 335545345u32; +pub const DIBUTTON_FOOTBALLP_SELECT: u32 = 335545346u32; +pub const DIBUTTON_FOOTBALLQ_AUDIBLE: u32 = 352338953u32; +pub const DIBUTTON_FOOTBALLQ_BACK_LINK: u32 = 352404712u32; +pub const DIBUTTON_FOOTBALLQ_DEVICE: u32 = 352339198u32; +pub const DIBUTTON_FOOTBALLQ_FAKE: u32 = 352322566u32; +pub const DIBUTTON_FOOTBALLQ_FAKESNAP: u32 = 352338951u32; +pub const DIBUTTON_FOOTBALLQ_FORWARD_LINK: u32 = 352404704u32; +pub const DIBUTTON_FOOTBALLQ_JUMP: u32 = 352322563u32; +pub const DIBUTTON_FOOTBALLQ_LEFT_LINK: u32 = 352371940u32; +pub const DIBUTTON_FOOTBALLQ_MENU: u32 = 352322813u32; +pub const DIBUTTON_FOOTBALLQ_MOTION: u32 = 352338952u32; +pub const DIBUTTON_FOOTBALLQ_PASS: u32 = 352322565u32; +pub const DIBUTTON_FOOTBALLQ_PAUSE: u32 = 352339196u32; +pub const DIBUTTON_FOOTBALLQ_RIGHT_LINK: u32 = 352371948u32; +pub const DIBUTTON_FOOTBALLQ_SELECT: u32 = 352322561u32; +pub const DIBUTTON_FOOTBALLQ_SLIDE: u32 = 352322564u32; +pub const DIBUTTON_FOOTBALLQ_SNAP: u32 = 352322562u32; +pub const DIBUTTON_FPS_APPLY: u32 = 150995971u32; +pub const DIBUTTON_FPS_BACKWARD_LINK: u32 = 151078120u32; +pub const DIBUTTON_FPS_CROUCH: u32 = 150995973u32; +pub const DIBUTTON_FPS_DEVICE: u32 = 151012606u32; +pub const DIBUTTON_FPS_DISPLAY: u32 = 151012360u32; +pub const DIBUTTON_FPS_DODGE: u32 = 151012361u32; +pub const DIBUTTON_FPS_FIRE: u32 = 150995969u32; +pub const DIBUTTON_FPS_FIRESECONDARY: u32 = 151012364u32; +pub const DIBUTTON_FPS_FORWARD_LINK: u32 = 151078112u32; +pub const DIBUTTON_FPS_GLANCEL: u32 = 151012362u32; +pub const DIBUTTON_FPS_GLANCER: u32 = 151012363u32; +pub const DIBUTTON_FPS_GLANCE_DOWN_LINK: u32 = 151110888u32; +pub const DIBUTTON_FPS_GLANCE_UP_LINK: u32 = 151110880u32; +pub const DIBUTTON_FPS_JUMP: u32 = 150995974u32; +pub const DIBUTTON_FPS_MENU: u32 = 150996221u32; +pub const DIBUTTON_FPS_PAUSE: u32 = 151012604u32; +pub const DIBUTTON_FPS_ROTATE_LEFT_LINK: u32 = 151045348u32; +pub const DIBUTTON_FPS_ROTATE_RIGHT_LINK: u32 = 151045356u32; +pub const DIBUTTON_FPS_SELECT: u32 = 150995972u32; +pub const DIBUTTON_FPS_STEP_LEFT_LINK: u32 = 151143652u32; +pub const DIBUTTON_FPS_STEP_RIGHT_LINK: u32 = 151143660u32; +pub const DIBUTTON_FPS_STRAFE: u32 = 150995975u32; +pub const DIBUTTON_FPS_WEAPONS: u32 = 150995970u32; +pub const DIBUTTON_GOLF_BACK_LINK: u32 = 402736360u32; +pub const DIBUTTON_GOLF_DEVICE: u32 = 402670846u32; +pub const DIBUTTON_GOLF_DOWN: u32 = 402654212u32; +pub const DIBUTTON_GOLF_FLYBY: u32 = 402654214u32; +pub const DIBUTTON_GOLF_FORWARD_LINK: u32 = 402736352u32; +pub const DIBUTTON_GOLF_LEFT_LINK: u32 = 402703588u32; +pub const DIBUTTON_GOLF_MENU: u32 = 402654461u32; +pub const DIBUTTON_GOLF_PAUSE: u32 = 402670844u32; +pub const DIBUTTON_GOLF_RIGHT_LINK: u32 = 402703596u32; +pub const DIBUTTON_GOLF_SELECT: u32 = 402654210u32; +pub const DIBUTTON_GOLF_SUBSTITUTE: u32 = 402670601u32; +pub const DIBUTTON_GOLF_SWING: u32 = 402654209u32; +pub const DIBUTTON_GOLF_TERRAIN: u32 = 402654213u32; +pub const DIBUTTON_GOLF_TIMEOUT: u32 = 402670600u32; +pub const DIBUTTON_GOLF_UP: u32 = 402654211u32; +pub const DIBUTTON_GOLF_ZOOM: u32 = 402670599u32; +pub const DIBUTTON_HOCKEYD_BACK_LINK: u32 = 436290792u32; +pub const DIBUTTON_HOCKEYD_BLOCK: u32 = 436208644u32; +pub const DIBUTTON_HOCKEYD_BURST: u32 = 436208643u32; +pub const DIBUTTON_HOCKEYD_DEVICE: u32 = 436225278u32; +pub const DIBUTTON_HOCKEYD_FAKE: u32 = 436208645u32; +pub const DIBUTTON_HOCKEYD_FORWARD_LINK: u32 = 436290784u32; +pub const DIBUTTON_HOCKEYD_LEFT_LINK: u32 = 436258020u32; +pub const DIBUTTON_HOCKEYD_MENU: u32 = 436208893u32; +pub const DIBUTTON_HOCKEYD_PAUSE: u32 = 436225276u32; +pub const DIBUTTON_HOCKEYD_PLAYER: u32 = 436208641u32; +pub const DIBUTTON_HOCKEYD_RIGHT_LINK: u32 = 436258028u32; +pub const DIBUTTON_HOCKEYD_STEAL: u32 = 436208642u32; +pub const DIBUTTON_HOCKEYD_STRATEGY: u32 = 436225031u32; +pub const DIBUTTON_HOCKEYD_SUBSTITUTE: u32 = 436225033u32; +pub const DIBUTTON_HOCKEYD_TIMEOUT: u32 = 436225032u32; +pub const DIBUTTON_HOCKEYD_ZOOM: u32 = 436225030u32; +pub const DIBUTTON_HOCKEYG_BACK_LINK: u32 = 453068008u32; +pub const DIBUTTON_HOCKEYG_BLOCK: u32 = 452985860u32; +pub const DIBUTTON_HOCKEYG_DEVICE: u32 = 453002494u32; +pub const DIBUTTON_HOCKEYG_FORWARD_LINK: u32 = 453068000u32; +pub const DIBUTTON_HOCKEYG_LEFT_LINK: u32 = 453035236u32; +pub const DIBUTTON_HOCKEYG_MENU: u32 = 452986109u32; +pub const DIBUTTON_HOCKEYG_PASS: u32 = 452985857u32; +pub const DIBUTTON_HOCKEYG_PAUSE: u32 = 453002492u32; +pub const DIBUTTON_HOCKEYG_POKE: u32 = 452985858u32; +pub const DIBUTTON_HOCKEYG_RIGHT_LINK: u32 = 453035244u32; +pub const DIBUTTON_HOCKEYG_STEAL: u32 = 452985859u32; +pub const DIBUTTON_HOCKEYG_STRATEGY: u32 = 453002246u32; +pub const DIBUTTON_HOCKEYG_SUBSTITUTE: u32 = 453002248u32; +pub const DIBUTTON_HOCKEYG_TIMEOUT: u32 = 453002247u32; +pub const DIBUTTON_HOCKEYG_ZOOM: u32 = 453002245u32; +pub const DIBUTTON_HOCKEYO_BACK_LINK: u32 = 419513576u32; +pub const DIBUTTON_HOCKEYO_BURST: u32 = 419431427u32; +pub const DIBUTTON_HOCKEYO_DEVICE: u32 = 419448062u32; +pub const DIBUTTON_HOCKEYO_FAKE: u32 = 419431429u32; +pub const DIBUTTON_HOCKEYO_FORWARD_LINK: u32 = 419513568u32; +pub const DIBUTTON_HOCKEYO_LEFT_LINK: u32 = 419480804u32; +pub const DIBUTTON_HOCKEYO_MENU: u32 = 419431677u32; +pub const DIBUTTON_HOCKEYO_PASS: u32 = 419431426u32; +pub const DIBUTTON_HOCKEYO_PAUSE: u32 = 419448060u32; +pub const DIBUTTON_HOCKEYO_RIGHT_LINK: u32 = 419480812u32; +pub const DIBUTTON_HOCKEYO_SHOOT: u32 = 419431425u32; +pub const DIBUTTON_HOCKEYO_SPECIAL: u32 = 419431428u32; +pub const DIBUTTON_HOCKEYO_STRATEGY: u32 = 419447815u32; +pub const DIBUTTON_HOCKEYO_SUBSTITUTE: u32 = 419447817u32; +pub const DIBUTTON_HOCKEYO_TIMEOUT: u32 = 419447816u32; +pub const DIBUTTON_HOCKEYO_ZOOM: u32 = 419447814u32; +pub const DIBUTTON_HUNTING_AIM: u32 = 218104834u32; +pub const DIBUTTON_HUNTING_BACK_LINK: u32 = 218186984u32; +pub const DIBUTTON_HUNTING_BINOCULAR: u32 = 218104836u32; +pub const DIBUTTON_HUNTING_CALL: u32 = 218104837u32; +pub const DIBUTTON_HUNTING_CROUCH: u32 = 218121225u32; +pub const DIBUTTON_HUNTING_DEVICE: u32 = 218121470u32; +pub const DIBUTTON_HUNTING_DISPLAY: u32 = 218121224u32; +pub const DIBUTTON_HUNTING_FIRE: u32 = 218104833u32; +pub const DIBUTTON_HUNTING_FIRESECONDARY: u32 = 218121227u32; +pub const DIBUTTON_HUNTING_FORWARD_LINK: u32 = 218186976u32; +pub const DIBUTTON_HUNTING_JUMP: u32 = 218121226u32; +pub const DIBUTTON_HUNTING_LEFT_LINK: u32 = 218154212u32; +pub const DIBUTTON_HUNTING_MAP: u32 = 218104838u32; +pub const DIBUTTON_HUNTING_MENU: u32 = 218105085u32; +pub const DIBUTTON_HUNTING_PAUSE: u32 = 218121468u32; +pub const DIBUTTON_HUNTING_RIGHT_LINK: u32 = 218154220u32; +pub const DIBUTTON_HUNTING_ROTATE_LEFT_LINK: u32 = 218252516u32; +pub const DIBUTTON_HUNTING_ROTATE_RIGHT_LINK: u32 = 218252524u32; +pub const DIBUTTON_HUNTING_SPECIAL: u32 = 218104839u32; +pub const DIBUTTON_HUNTING_WEAPON: u32 = 218104835u32; +pub const DIBUTTON_MECHA_BACK_LINK: u32 = 687949032u32; +pub const DIBUTTON_MECHA_CENTER: u32 = 687883271u32; +pub const DIBUTTON_MECHA_DEVICE: u32 = 687883518u32; +pub const DIBUTTON_MECHA_FASTER_LINK: u32 = 688112864u32; +pub const DIBUTTON_MECHA_FIRE: u32 = 687866881u32; +pub const DIBUTTON_MECHA_FIRESECONDARY: u32 = 687883273u32; +pub const DIBUTTON_MECHA_FORWARD_LINK: u32 = 687949024u32; +pub const DIBUTTON_MECHA_JUMP: u32 = 687866886u32; +pub const DIBUTTON_MECHA_LEFT_LINK: u32 = 687916260u32; +pub const DIBUTTON_MECHA_MENU: u32 = 687867133u32; +pub const DIBUTTON_MECHA_PAUSE: u32 = 687883516u32; +pub const DIBUTTON_MECHA_REVERSE: u32 = 687866884u32; +pub const DIBUTTON_MECHA_RIGHT_LINK: u32 = 687916268u32; +pub const DIBUTTON_MECHA_ROTATE_LEFT_LINK: u32 = 688014564u32; +pub const DIBUTTON_MECHA_ROTATE_RIGHT_LINK: u32 = 688014572u32; +pub const DIBUTTON_MECHA_SLOWER_LINK: u32 = 688112872u32; +pub const DIBUTTON_MECHA_TARGET: u32 = 687866883u32; +pub const DIBUTTON_MECHA_VIEW: u32 = 687883272u32; +pub const DIBUTTON_MECHA_WEAPONS: u32 = 687866882u32; +pub const DIBUTTON_MECHA_ZOOM: u32 = 687866885u32; +pub const DIBUTTON_RACQUET_BACKSWING: u32 = 536871938u32; +pub const DIBUTTON_RACQUET_BACK_LINK: u32 = 536954088u32; +pub const DIBUTTON_RACQUET_DEVICE: u32 = 536888574u32; +pub const DIBUTTON_RACQUET_FORWARD_LINK: u32 = 536954080u32; +pub const DIBUTTON_RACQUET_LEFT_LINK: u32 = 536921316u32; +pub const DIBUTTON_RACQUET_MENU: u32 = 536872189u32; +pub const DIBUTTON_RACQUET_PAUSE: u32 = 536888572u32; +pub const DIBUTTON_RACQUET_RIGHT_LINK: u32 = 536921324u32; +pub const DIBUTTON_RACQUET_SELECT: u32 = 536871941u32; +pub const DIBUTTON_RACQUET_SMASH: u32 = 536871939u32; +pub const DIBUTTON_RACQUET_SPECIAL: u32 = 536871940u32; +pub const DIBUTTON_RACQUET_SUBSTITUTE: u32 = 536888327u32; +pub const DIBUTTON_RACQUET_SWING: u32 = 536871937u32; +pub const DIBUTTON_RACQUET_TIMEOUT: u32 = 536888326u32; +pub const DIBUTTON_REMOTE_ADJUST: u32 = 654334990u32; +pub const DIBUTTON_REMOTE_CABLE: u32 = 654334985u32; +pub const DIBUTTON_REMOTE_CD: u32 = 654334986u32; +pub const DIBUTTON_REMOTE_CHANGE: u32 = 654320646u32; +pub const DIBUTTON_REMOTE_CUE: u32 = 654320644u32; +pub const DIBUTTON_REMOTE_DEVICE: u32 = 654329086u32; +pub const DIBUTTON_REMOTE_DIGIT0: u32 = 654332943u32; +pub const DIBUTTON_REMOTE_DIGIT1: u32 = 654332944u32; +pub const DIBUTTON_REMOTE_DIGIT2: u32 = 654332945u32; +pub const DIBUTTON_REMOTE_DIGIT3: u32 = 654332946u32; +pub const DIBUTTON_REMOTE_DIGIT4: u32 = 654332947u32; +pub const DIBUTTON_REMOTE_DIGIT5: u32 = 654332948u32; +pub const DIBUTTON_REMOTE_DIGIT6: u32 = 654332949u32; +pub const DIBUTTON_REMOTE_DIGIT7: u32 = 654332950u32; +pub const DIBUTTON_REMOTE_DIGIT8: u32 = 654332951u32; +pub const DIBUTTON_REMOTE_DIGIT9: u32 = 654332952u32; +pub const DIBUTTON_REMOTE_DVD: u32 = 654334989u32; +pub const DIBUTTON_REMOTE_MENU: u32 = 654312701u32; +pub const DIBUTTON_REMOTE_MUTE: u32 = 654312449u32; +pub const DIBUTTON_REMOTE_PAUSE: u32 = 654329084u32; +pub const DIBUTTON_REMOTE_PLAY: u32 = 654320643u32; +pub const DIBUTTON_REMOTE_RECORD: u32 = 654320647u32; +pub const DIBUTTON_REMOTE_REVIEW: u32 = 654320645u32; +pub const DIBUTTON_REMOTE_SELECT: u32 = 654312450u32; +pub const DIBUTTON_REMOTE_TUNER: u32 = 654334988u32; +pub const DIBUTTON_REMOTE_TV: u32 = 654334984u32; +pub const DIBUTTON_REMOTE_VCR: u32 = 654334987u32; +pub const DIBUTTON_SKIING_CAMERA: u32 = 486540291u32; +pub const DIBUTTON_SKIING_CROUCH: u32 = 486540290u32; +pub const DIBUTTON_SKIING_DEVICE: u32 = 486556926u32; +pub const DIBUTTON_SKIING_FASTER_LINK: u32 = 486622432u32; +pub const DIBUTTON_SKIING_JUMP: u32 = 486540289u32; +pub const DIBUTTON_SKIING_LEFT_LINK: u32 = 486589668u32; +pub const DIBUTTON_SKIING_MENU: u32 = 486540541u32; +pub const DIBUTTON_SKIING_PAUSE: u32 = 486556924u32; +pub const DIBUTTON_SKIING_RIGHT_LINK: u32 = 486589676u32; +pub const DIBUTTON_SKIING_SELECT: u32 = 486540293u32; +pub const DIBUTTON_SKIING_SLOWER_LINK: u32 = 486622440u32; +pub const DIBUTTON_SKIING_SPECIAL1: u32 = 486540292u32; +pub const DIBUTTON_SKIING_SPECIAL2: u32 = 486540294u32; +pub const DIBUTTON_SKIING_ZOOM: u32 = 486556679u32; +pub const DIBUTTON_SOCCERD_BACK_LINK: u32 = 520176872u32; +pub const DIBUTTON_SOCCERD_BLOCK: u32 = 520094721u32; +pub const DIBUTTON_SOCCERD_CLEAR: u32 = 520111114u32; +pub const DIBUTTON_SOCCERD_DEVICE: u32 = 520111358u32; +pub const DIBUTTON_SOCCERD_FAKE: u32 = 520094723u32; +pub const DIBUTTON_SOCCERD_FORWARD_LINK: u32 = 520176864u32; +pub const DIBUTTON_SOCCERD_FOUL: u32 = 520111112u32; +pub const DIBUTTON_SOCCERD_GOALIECHARGE: u32 = 520111115u32; +pub const DIBUTTON_SOCCERD_HEAD: u32 = 520111113u32; +pub const DIBUTTON_SOCCERD_LEFT_LINK: u32 = 520144100u32; +pub const DIBUTTON_SOCCERD_MENU: u32 = 520094973u32; +pub const DIBUTTON_SOCCERD_PAUSE: u32 = 520111356u32; +pub const DIBUTTON_SOCCERD_PLAYER: u32 = 520094724u32; +pub const DIBUTTON_SOCCERD_RIGHT_LINK: u32 = 520144108u32; +pub const DIBUTTON_SOCCERD_SELECT: u32 = 520094726u32; +pub const DIBUTTON_SOCCERD_SLIDE: u32 = 520094727u32; +pub const DIBUTTON_SOCCERD_SPECIAL: u32 = 520094725u32; +pub const DIBUTTON_SOCCERD_STEAL: u32 = 520094722u32; +pub const DIBUTTON_SOCCERD_SUBSTITUTE: u32 = 520111116u32; +pub const DIBUTTON_SOCCERO_BACK_LINK: u32 = 503399656u32; +pub const DIBUTTON_SOCCERO_CONTROL: u32 = 503333900u32; +pub const DIBUTTON_SOCCERO_DEVICE: u32 = 503334142u32; +pub const DIBUTTON_SOCCERO_FAKE: u32 = 503317507u32; +pub const DIBUTTON_SOCCERO_FORWARD_LINK: u32 = 503399648u32; +pub const DIBUTTON_SOCCERO_HEAD: u32 = 503333901u32; +pub const DIBUTTON_SOCCERO_LEFT_LINK: u32 = 503366884u32; +pub const DIBUTTON_SOCCERO_MENU: u32 = 503317757u32; +pub const DIBUTTON_SOCCERO_PASS: u32 = 503317506u32; +pub const DIBUTTON_SOCCERO_PASSTHRU: u32 = 503333898u32; +pub const DIBUTTON_SOCCERO_PAUSE: u32 = 503334140u32; +pub const DIBUTTON_SOCCERO_PLAYER: u32 = 503317508u32; +pub const DIBUTTON_SOCCERO_RIGHT_LINK: u32 = 503366892u32; +pub const DIBUTTON_SOCCERO_SELECT: u32 = 503317510u32; +pub const DIBUTTON_SOCCERO_SHOOT: u32 = 503317505u32; +pub const DIBUTTON_SOCCERO_SHOOTHIGH: u32 = 503333897u32; +pub const DIBUTTON_SOCCERO_SHOOTLOW: u32 = 503333896u32; +pub const DIBUTTON_SOCCERO_SPECIAL1: u32 = 503317509u32; +pub const DIBUTTON_SOCCERO_SPRINT: u32 = 503333899u32; +pub const DIBUTTON_SOCCERO_SUBSTITUTE: u32 = 503333895u32; +pub const DIBUTTON_SPACESIM_BACKWARD_LINK: u32 = 117523688u32; +pub const DIBUTTON_SPACESIM_DEVICE: u32 = 117458174u32; +pub const DIBUTTON_SPACESIM_DISPLAY: u32 = 117457925u32; +pub const DIBUTTON_SPACESIM_FASTER_LINK: u32 = 117687520u32; +pub const DIBUTTON_SPACESIM_FIRE: u32 = 117441537u32; +pub const DIBUTTON_SPACESIM_FIRESECONDARY: u32 = 117457929u32; +pub const DIBUTTON_SPACESIM_FORWARD_LINK: u32 = 117523680u32; +pub const DIBUTTON_SPACESIM_GEAR: u32 = 117457928u32; +pub const DIBUTTON_SPACESIM_GLANCE_DOWN_LINK: u32 = 117949672u32; +pub const DIBUTTON_SPACESIM_GLANCE_LEFT_LINK: u32 = 117949668u32; +pub const DIBUTTON_SPACESIM_GLANCE_RIGHT_LINK: u32 = 117949676u32; +pub const DIBUTTON_SPACESIM_GLANCE_UP_LINK: u32 = 117949664u32; +pub const DIBUTTON_SPACESIM_LEFT_LINK: u32 = 117490916u32; +pub const DIBUTTON_SPACESIM_LOWER: u32 = 117457927u32; +pub const DIBUTTON_SPACESIM_MENU: u32 = 117441789u32; +pub const DIBUTTON_SPACESIM_PAUSE: u32 = 117458172u32; +pub const DIBUTTON_SPACESIM_RAISE: u32 = 117457926u32; +pub const DIBUTTON_SPACESIM_RIGHT_LINK: u32 = 117490924u32; +pub const DIBUTTON_SPACESIM_SLOWER_LINK: u32 = 117687528u32; +pub const DIBUTTON_SPACESIM_TARGET: u32 = 117441539u32; +pub const DIBUTTON_SPACESIM_TURN_LEFT_LINK: u32 = 117589220u32; +pub const DIBUTTON_SPACESIM_TURN_RIGHT_LINK: u32 = 117589228u32; +pub const DIBUTTON_SPACESIM_VIEW: u32 = 117457924u32; +pub const DIBUTTON_SPACESIM_WEAPONS: u32 = 117441538u32; +pub const DIBUTTON_STRATEGYR_APPLY: u32 = 184550402u32; +pub const DIBUTTON_STRATEGYR_ATTACK: u32 = 184550404u32; +pub const DIBUTTON_STRATEGYR_BACK_LINK: u32 = 184632552u32; +pub const DIBUTTON_STRATEGYR_CAST: u32 = 184550405u32; +pub const DIBUTTON_STRATEGYR_CROUCH: u32 = 184550406u32; +pub const DIBUTTON_STRATEGYR_DEVICE: u32 = 184567038u32; +pub const DIBUTTON_STRATEGYR_DISPLAY: u32 = 184566793u32; +pub const DIBUTTON_STRATEGYR_FORWARD_LINK: u32 = 184632544u32; +pub const DIBUTTON_STRATEGYR_GET: u32 = 184550401u32; +pub const DIBUTTON_STRATEGYR_JUMP: u32 = 184550407u32; +pub const DIBUTTON_STRATEGYR_LEFT_LINK: u32 = 184599780u32; +pub const DIBUTTON_STRATEGYR_MAP: u32 = 184566792u32; +pub const DIBUTTON_STRATEGYR_MENU: u32 = 184550653u32; +pub const DIBUTTON_STRATEGYR_PAUSE: u32 = 184567036u32; +pub const DIBUTTON_STRATEGYR_RIGHT_LINK: u32 = 184599788u32; +pub const DIBUTTON_STRATEGYR_ROTATE_LEFT_LINK: u32 = 184698084u32; +pub const DIBUTTON_STRATEGYR_ROTATE_RIGHT_LINK: u32 = 184698092u32; +pub const DIBUTTON_STRATEGYR_SELECT: u32 = 184550403u32; +pub const DIBUTTON_STRATEGYT_APPLY: u32 = 201327619u32; +pub const DIBUTTON_STRATEGYT_BACK_LINK: u32 = 201409768u32; +pub const DIBUTTON_STRATEGYT_DEVICE: u32 = 201344254u32; +pub const DIBUTTON_STRATEGYT_DISPLAY: u32 = 201344008u32; +pub const DIBUTTON_STRATEGYT_FORWARD_LINK: u32 = 201409760u32; +pub const DIBUTTON_STRATEGYT_INSTRUCT: u32 = 201327618u32; +pub const DIBUTTON_STRATEGYT_LEFT_LINK: u32 = 201376996u32; +pub const DIBUTTON_STRATEGYT_MAP: u32 = 201344007u32; +pub const DIBUTTON_STRATEGYT_MENU: u32 = 201327869u32; +pub const DIBUTTON_STRATEGYT_PAUSE: u32 = 201344252u32; +pub const DIBUTTON_STRATEGYT_RIGHT_LINK: u32 = 201377004u32; +pub const DIBUTTON_STRATEGYT_SELECT: u32 = 201327617u32; +pub const DIBUTTON_STRATEGYT_TEAM: u32 = 201327620u32; +pub const DIBUTTON_STRATEGYT_TURN: u32 = 201327621u32; +pub const DIBUTTON_STRATEGYT_ZOOM: u32 = 201344006u32; +pub const DIBUTTON_TPS_ACTION: u32 = 167773186u32; +pub const DIBUTTON_TPS_BACKWARD_LINK: u32 = 167855336u32; +pub const DIBUTTON_TPS_DEVICE: u32 = 167789822u32; +pub const DIBUTTON_TPS_DODGE: u32 = 167789577u32; +pub const DIBUTTON_TPS_FORWARD_LINK: u32 = 167855328u32; +pub const DIBUTTON_TPS_GLANCE_DOWN_LINK: u32 = 168281320u32; +pub const DIBUTTON_TPS_GLANCE_LEFT_LINK: u32 = 168281316u32; +pub const DIBUTTON_TPS_GLANCE_RIGHT_LINK: u32 = 168281324u32; +pub const DIBUTTON_TPS_GLANCE_UP_LINK: u32 = 168281312u32; +pub const DIBUTTON_TPS_INVENTORY: u32 = 167789578u32; +pub const DIBUTTON_TPS_JUMP: u32 = 167773189u32; +pub const DIBUTTON_TPS_MENU: u32 = 167773437u32; +pub const DIBUTTON_TPS_PAUSE: u32 = 167789820u32; +pub const DIBUTTON_TPS_RUN: u32 = 167773185u32; +pub const DIBUTTON_TPS_SELECT: u32 = 167773187u32; +pub const DIBUTTON_TPS_STEPLEFT: u32 = 167789575u32; +pub const DIBUTTON_TPS_STEPRIGHT: u32 = 167789576u32; +pub const DIBUTTON_TPS_TURN_LEFT_LINK: u32 = 167920868u32; +pub const DIBUTTON_TPS_TURN_RIGHT_LINK: u32 = 167920876u32; +pub const DIBUTTON_TPS_USE: u32 = 167773188u32; +pub const DIBUTTON_TPS_VIEW: u32 = 167789574u32; +pub const DICD_DEFAULT: u32 = 0u32; +pub const DICD_EDIT: u32 = 1u32; +pub const DIDAL_BOTTOMALIGNED: u32 = 8u32; +pub const DIDAL_CENTERED: u32 = 0u32; +pub const DIDAL_LEFTALIGNED: u32 = 1u32; +pub const DIDAL_MIDDLE: u32 = 0u32; +pub const DIDAL_RIGHTALIGNED: u32 = 2u32; +pub const DIDAL_TOPALIGNED: u32 = 4u32; +pub const DIDBAM_DEFAULT: u32 = 0u32; +pub const DIDBAM_HWDEFAULTS: u32 = 4u32; +pub const DIDBAM_INITIALIZE: u32 = 2u32; +pub const DIDBAM_PRESERVE: u32 = 1u32; +pub const DIDC_ALIAS: u32 = 65536u32; +pub const DIDC_ATTACHED: u32 = 1u32; +pub const DIDC_DEADBAND: u32 = 16384u32; +pub const DIDC_EMULATED: u32 = 4u32; +pub const DIDC_FFATTACK: u32 = 512u32; +pub const DIDC_FFFADE: u32 = 1024u32; +pub const DIDC_FORCEFEEDBACK: u32 = 256u32; +pub const DIDC_HIDDEN: u32 = 262144u32; +pub const DIDC_PHANTOM: u32 = 131072u32; +pub const DIDC_POLLEDDATAFORMAT: u32 = 8u32; +pub const DIDC_POLLEDDEVICE: u32 = 2u32; +pub const DIDC_POSNEGCOEFFICIENTS: u32 = 4096u32; +pub const DIDC_POSNEGSATURATION: u32 = 8192u32; +pub const DIDC_SATURATION: u32 = 2048u32; +pub const DIDC_STARTDELAY: u32 = 32768u32; +pub const DIDEVTYPEJOYSTICK_FLIGHTSTICK: u32 = 3u32; +pub const DIDEVTYPEJOYSTICK_GAMEPAD: u32 = 4u32; +pub const DIDEVTYPEJOYSTICK_HEADTRACKER: u32 = 7u32; +pub const DIDEVTYPEJOYSTICK_RUDDER: u32 = 5u32; +pub const DIDEVTYPEJOYSTICK_TRADITIONAL: u32 = 2u32; +pub const DIDEVTYPEJOYSTICK_UNKNOWN: u32 = 1u32; +pub const DIDEVTYPEJOYSTICK_WHEEL: u32 = 6u32; +pub const DIDEVTYPEKEYBOARD_J3100: u32 = 12u32; +pub const DIDEVTYPEKEYBOARD_JAPAN106: u32 = 10u32; +pub const DIDEVTYPEKEYBOARD_JAPANAX: u32 = 11u32; +pub const DIDEVTYPEKEYBOARD_NEC98: u32 = 7u32; +pub const DIDEVTYPEKEYBOARD_NEC98106: u32 = 9u32; +pub const DIDEVTYPEKEYBOARD_NEC98LAPTOP: u32 = 8u32; +pub const DIDEVTYPEKEYBOARD_NOKIA1050: u32 = 5u32; +pub const DIDEVTYPEKEYBOARD_NOKIA9140: u32 = 6u32; +pub const DIDEVTYPEKEYBOARD_OLIVETTI: u32 = 2u32; +pub const DIDEVTYPEKEYBOARD_PCAT: u32 = 3u32; +pub const DIDEVTYPEKEYBOARD_PCENH: u32 = 4u32; +pub const DIDEVTYPEKEYBOARD_PCXT: u32 = 1u32; +pub const DIDEVTYPEKEYBOARD_UNKNOWN: u32 = 0u32; +pub const DIDEVTYPEMOUSE_FINGERSTICK: u32 = 3u32; +pub const DIDEVTYPEMOUSE_TOUCHPAD: u32 = 4u32; +pub const DIDEVTYPEMOUSE_TRACKBALL: u32 = 5u32; +pub const DIDEVTYPEMOUSE_TRADITIONAL: u32 = 2u32; +pub const DIDEVTYPEMOUSE_UNKNOWN: u32 = 1u32; +pub const DIDEVTYPE_DEVICE: u32 = 1u32; +pub const DIDEVTYPE_HID: u32 = 65536u32; +pub const DIDEVTYPE_JOYSTICK: u32 = 4u32; +pub const DIDEVTYPE_KEYBOARD: u32 = 3u32; +pub const DIDEVTYPE_MOUSE: u32 = 2u32; +pub const DIDFT_ABSAXIS: u32 = 2u32; +pub const DIDFT_ALIAS: u32 = 134217728u32; +pub const DIDFT_ALL: u32 = 0u32; +pub const DIDFT_ANYINSTANCE: u32 = 16776960u32; +pub const DIDFT_AXIS: u32 = 3u32; +pub const DIDFT_BUTTON: u32 = 12u32; +pub const DIDFT_COLLECTION: u32 = 64u32; +pub const DIDFT_FFACTUATOR: u32 = 16777216u32; +pub const DIDFT_FFEFFECTTRIGGER: u32 = 33554432u32; +pub const DIDFT_INSTANCEMASK: u32 = 16776960u32; +pub const DIDFT_NOCOLLECTION: u32 = 16776960u32; +pub const DIDFT_NODATA: u32 = 128u32; +pub const DIDFT_OUTPUT: u32 = 268435456u32; +pub const DIDFT_POV: u32 = 16u32; +pub const DIDFT_PSHBUTTON: u32 = 4u32; +pub const DIDFT_RELAXIS: u32 = 1u32; +pub const DIDFT_TGLBUTTON: u32 = 8u32; +pub const DIDFT_VENDORDEFINED: u32 = 67108864u32; +pub const DIDF_ABSAXIS: u32 = 1u32; +pub const DIDF_RELAXIS: u32 = 2u32; +pub const DIDIFT_CONFIGURATION: u32 = 1u32; +pub const DIDIFT_DELETE: u32 = 16777216u32; +pub const DIDIFT_OVERLAY: u32 = 2u32; +pub const DIDOI_ASPECTACCEL: u32 = 768u32; +pub const DIDOI_ASPECTFORCE: u32 = 1024u32; +pub const DIDOI_ASPECTMASK: u32 = 3840u32; +pub const DIDOI_ASPECTPOSITION: u32 = 256u32; +pub const DIDOI_ASPECTVELOCITY: u32 = 512u32; +pub const DIDOI_FFACTUATOR: u32 = 1u32; +pub const DIDOI_FFEFFECTTRIGGER: u32 = 2u32; +pub const DIDOI_GUIDISUSAGE: u32 = 65536u32; +pub const DIDOI_POLLED: u32 = 32768u32; +pub const DIDSAM_DEFAULT: u32 = 0u32; +pub const DIDSAM_FORCESAVE: u32 = 2u32; +pub const DIDSAM_NOUSER: u32 = 1u32; +pub const DIEB_NOTRIGGER: u32 = 4294967295u32; +pub const DIEDBSFL_ATTACHEDONLY: u32 = 0u32; +pub const DIEDBSFL_AVAILABLEDEVICES: u32 = 4096u32; +pub const DIEDBSFL_FORCEFEEDBACK: u32 = 256u32; +pub const DIEDBSFL_MULTIMICEKEYBOARDS: u32 = 8192u32; +pub const DIEDBSFL_NONGAMINGDEVICES: u32 = 16384u32; +pub const DIEDBSFL_THISUSER: u32 = 16u32; +pub const DIEDBSFL_VALID: u32 = 28944u32; +pub const DIEDBS_MAPPEDPRI1: u32 = 1u32; +pub const DIEDBS_MAPPEDPRI2: u32 = 2u32; +pub const DIEDBS_NEWDEVICE: u32 = 32u32; +pub const DIEDBS_RECENTDEVICE: u32 = 16u32; +pub const DIEDFL_ALLDEVICES: u32 = 0u32; +pub const DIEDFL_ATTACHEDONLY: u32 = 1u32; +pub const DIEDFL_FORCEFEEDBACK: u32 = 256u32; +pub const DIEDFL_INCLUDEALIASES: u32 = 65536u32; +pub const DIEDFL_INCLUDEHIDDEN: u32 = 262144u32; +pub const DIEDFL_INCLUDEPHANTOMS: u32 = 131072u32; +pub const DIEFF_CARTESIAN: u32 = 16u32; +pub const DIEFF_OBJECTIDS: u32 = 1u32; +pub const DIEFF_OBJECTOFFSETS: u32 = 2u32; +pub const DIEFF_POLAR: u32 = 32u32; +pub const DIEFF_SPHERICAL: u32 = 64u32; +pub const DIEFT_ALL: u32 = 0u32; +pub const DIEFT_CONDITION: u32 = 4u32; +pub const DIEFT_CONSTANTFORCE: u32 = 1u32; +pub const DIEFT_CUSTOMFORCE: u32 = 5u32; +pub const DIEFT_DEADBAND: u32 = 16384u32; +pub const DIEFT_FFATTACK: u32 = 512u32; +pub const DIEFT_FFFADE: u32 = 1024u32; +pub const DIEFT_HARDWARE: u32 = 255u32; +pub const DIEFT_PERIODIC: u32 = 3u32; +pub const DIEFT_POSNEGCOEFFICIENTS: u32 = 4096u32; +pub const DIEFT_POSNEGSATURATION: u32 = 8192u32; +pub const DIEFT_RAMPFORCE: u32 = 2u32; +pub const DIEFT_SATURATION: u32 = 2048u32; +pub const DIEFT_STARTDELAY: u32 = 32768u32; +pub const DIEGES_EMULATED: u32 = 2u32; +pub const DIEGES_PLAYING: u32 = 1u32; +pub const DIENUM_CONTINUE: u32 = 1u32; +pub const DIENUM_STOP: u32 = 0u32; +pub const DIEP_ALLPARAMS: u32 = 1023u32; +pub const DIEP_ALLPARAMS_DX5: u32 = 511u32; +pub const DIEP_AXES: u32 = 32u32; +pub const DIEP_DIRECTION: u32 = 64u32; +pub const DIEP_DURATION: u32 = 1u32; +pub const DIEP_ENVELOPE: u32 = 128u32; +pub const DIEP_GAIN: u32 = 4u32; +pub const DIEP_NODOWNLOAD: u32 = 2147483648u32; +pub const DIEP_NORESTART: u32 = 1073741824u32; +pub const DIEP_SAMPLEPERIOD: u32 = 2u32; +pub const DIEP_START: u32 = 536870912u32; +pub const DIEP_STARTDELAY: u32 = 512u32; +pub const DIEP_TRIGGERBUTTON: u32 = 8u32; +pub const DIEP_TRIGGERREPEATINTERVAL: u32 = 16u32; +pub const DIEP_TYPESPECIFICPARAMS: u32 = 256u32; +pub const DIERR_ACQUIRED: ::windows_sys::core::HRESULT = -2147024726i32; +pub const DIERR_ALREADYINITIALIZED: ::windows_sys::core::HRESULT = -2147023649i32; +pub const DIERR_BADDRIVERVER: ::windows_sys::core::HRESULT = -2147024777i32; +pub const DIERR_BADINF: i32 = -2147220478i32; +pub const DIERR_BETADIRECTINPUTVERSION: ::windows_sys::core::HRESULT = -2147023743i32; +pub const DIERR_CANCELLED: i32 = -2147220479i32; +pub const DIERR_DEVICEFULL: i32 = -2147220991i32; +pub const DIERR_DEVICENOTREG: i32 = -2147221164i32; +pub const DIERR_DRIVERFIRST: i32 = -2147220736i32; +pub const DIERR_DRIVERLAST: i32 = -2147220481i32; +pub const DIERR_EFFECTPLAYING: i32 = -2147220984i32; +pub const DIERR_GENERIC: i32 = -2147467259i32; +pub const DIERR_HANDLEEXISTS: i32 = -2147024891i32; +pub const DIERR_HASEFFECTS: i32 = -2147220988i32; +pub const DIERR_INCOMPLETEEFFECT: i32 = -2147220986i32; +pub const DIERR_INPUTLOST: ::windows_sys::core::HRESULT = -2147024866i32; +pub const DIERR_INSUFFICIENTPRIVS: i32 = -2147220992i32; +pub const DIERR_INVALIDCLASSINSTALLER: i32 = -2147220480i32; +pub const DIERR_INVALIDPARAM: i32 = -2147024809i32; +pub const DIERR_MAPFILEFAIL: i32 = -2147220981i32; +pub const DIERR_MOREDATA: i32 = -2147220990i32; +pub const DIERR_NOAGGREGATION: i32 = -2147221232i32; +pub const DIERR_NOINTERFACE: i32 = -2147467262i32; +pub const DIERR_NOMOREITEMS: ::windows_sys::core::HRESULT = -2147024637i32; +pub const DIERR_NOTACQUIRED: ::windows_sys::core::HRESULT = -2147024884i32; +pub const DIERR_NOTBUFFERED: i32 = -2147220985i32; +pub const DIERR_NOTDOWNLOADED: i32 = -2147220989i32; +pub const DIERR_NOTEXCLUSIVEACQUIRED: i32 = -2147220987i32; +pub const DIERR_NOTFOUND: ::windows_sys::core::HRESULT = -2147024894i32; +pub const DIERR_NOTINITIALIZED: ::windows_sys::core::HRESULT = -2147024875i32; +pub const DIERR_OBJECTNOTFOUND: ::windows_sys::core::HRESULT = -2147024894i32; +pub const DIERR_OLDDIRECTINPUTVERSION: ::windows_sys::core::HRESULT = -2147023746i32; +pub const DIERR_OTHERAPPHASPRIO: i32 = -2147024891i32; +pub const DIERR_OUTOFMEMORY: i32 = -2147024882i32; +pub const DIERR_READONLY: i32 = -2147024891i32; +pub const DIERR_REPORTFULL: i32 = -2147220982i32; +pub const DIERR_UNPLUGGED: i32 = -2147220983i32; +pub const DIERR_UNSUPPORTED: i32 = -2147467263i32; +pub const DIES_NODOWNLOAD: u32 = 2147483648u32; +pub const DIES_SOLO: u32 = 1u32; +pub const DIFEF_DEFAULT: u32 = 0u32; +pub const DIFEF_INCLUDENONSTANDARD: u32 = 1u32; +pub const DIFEF_MODIFYIFNEEDED: u32 = 16u32; +pub const DIGDD_PEEK: u32 = 1u32; +pub const DIGFFS_ACTUATORSOFF: u32 = 32u32; +pub const DIGFFS_ACTUATORSON: u32 = 16u32; +pub const DIGFFS_DEVICELOST: u32 = 2147483648u32; +pub const DIGFFS_EMPTY: u32 = 1u32; +pub const DIGFFS_PAUSED: u32 = 4u32; +pub const DIGFFS_POWEROFF: u32 = 128u32; +pub const DIGFFS_POWERON: u32 = 64u32; +pub const DIGFFS_SAFETYSWITCHOFF: u32 = 512u32; +pub const DIGFFS_SAFETYSWITCHON: u32 = 256u32; +pub const DIGFFS_STOPPED: u32 = 2u32; +pub const DIGFFS_USERFFSWITCHOFF: u32 = 2048u32; +pub const DIGFFS_USERFFSWITCHON: u32 = 1024u32; +pub const DIHATSWITCH_2DCONTROL_HATSWITCH: u32 = 587220481u32; +pub const DIHATSWITCH_3DCONTROL_HATSWITCH: u32 = 603997697u32; +pub const DIHATSWITCH_ARCADEP_VIEW: u32 = 570443265u32; +pub const DIHATSWITCH_ARCADES_VIEW: u32 = 553666049u32; +pub const DIHATSWITCH_BBALLD_GLANCE: u32 = 318785025u32; +pub const DIHATSWITCH_BBALLO_GLANCE: u32 = 302007809u32; +pub const DIHATSWITCH_BIKINGM_SCROLL: u32 = 469779969u32; +pub const DIHATSWITCH_CADF_HATSWITCH: u32 = 620774913u32; +pub const DIHATSWITCH_CADM_HATSWITCH: u32 = 637552129u32; +pub const DIHATSWITCH_DRIVINGC_GLANCE: u32 = 33572353u32; +pub const DIHATSWITCH_DRIVINGR_GLANCE: u32 = 16795137u32; +pub const DIHATSWITCH_DRIVINGT_GLANCE: u32 = 50349569u32; +pub const DIHATSWITCH_FIGHTINGH_SLIDE: u32 = 134235649u32; +pub const DIHATSWITCH_FISHING_GLANCE: u32 = 234898945u32; +pub const DIHATSWITCH_FLYINGC_GLANCE: u32 = 67126785u32; +pub const DIHATSWITCH_FLYINGH_GLANCE: u32 = 100681217u32; +pub const DIHATSWITCH_FLYINGM_GLANCE: u32 = 83904001u32; +pub const DIHATSWITCH_FPS_GLANCE: u32 = 151012865u32; +pub const DIHATSWITCH_GOLF_SCROLL: u32 = 402671105u32; +pub const DIHATSWITCH_HOCKEYD_SCROLL: u32 = 436225537u32; +pub const DIHATSWITCH_HOCKEYG_SCROLL: u32 = 453002753u32; +pub const DIHATSWITCH_HOCKEYO_SCROLL: u32 = 419448321u32; +pub const DIHATSWITCH_HUNTING_GLANCE: u32 = 218121729u32; +pub const DIHATSWITCH_MECHA_GLANCE: u32 = 687883777u32; +pub const DIHATSWITCH_RACQUET_GLANCE: u32 = 536888833u32; +pub const DIHATSWITCH_SKIING_GLANCE: u32 = 486557185u32; +pub const DIHATSWITCH_SOCCERD_GLANCE: u32 = 520111617u32; +pub const DIHATSWITCH_SOCCERO_GLANCE: u32 = 503334401u32; +pub const DIHATSWITCH_SPACESIM_GLANCE: u32 = 117458433u32; +pub const DIHATSWITCH_STRATEGYR_GLANCE: u32 = 184567297u32; +pub const DIHATSWITCH_TPS_GLANCE: u32 = 167790081u32; +pub const DIJC_CALLOUT: u32 = 8u32; +pub const DIJC_GAIN: u32 = 4u32; +pub const DIJC_GUIDINSTANCE: u32 = 1u32; +pub const DIJC_REGHWCONFIGTYPE: u32 = 2u32; +pub const DIJC_WDMGAMEPORT: u32 = 16u32; +pub const DIJU_GAMEPORTEMULATOR: u32 = 4u32; +pub const DIJU_GLOBALDRIVER: u32 = 2u32; +pub const DIJU_USERVALUES: u32 = 1u32; +pub const DIKEYBOARD_0: u32 = 2164261899u32; +pub const DIKEYBOARD_1: u32 = 2164261890u32; +pub const DIKEYBOARD_2: u32 = 2164261891u32; +pub const DIKEYBOARD_3: u32 = 2164261892u32; +pub const DIKEYBOARD_4: u32 = 2164261893u32; +pub const DIKEYBOARD_5: u32 = 2164261894u32; +pub const DIKEYBOARD_6: u32 = 2164261895u32; +pub const DIKEYBOARD_7: u32 = 2164261896u32; +pub const DIKEYBOARD_8: u32 = 2164261897u32; +pub const DIKEYBOARD_9: u32 = 2164261898u32; +pub const DIKEYBOARD_A: u32 = 2164261918u32; +pub const DIKEYBOARD_ABNT_C1: u32 = 2164262003u32; +pub const DIKEYBOARD_ABNT_C2: u32 = 2164262014u32; +pub const DIKEYBOARD_ADD: u32 = 2164261966u32; +pub const DIKEYBOARD_APOSTROPHE: u32 = 2164261928u32; +pub const DIKEYBOARD_APPS: u32 = 2164262109u32; +pub const DIKEYBOARD_AT: u32 = 2164262033u32; +pub const DIKEYBOARD_AX: u32 = 2164262038u32; +pub const DIKEYBOARD_B: u32 = 2164261936u32; +pub const DIKEYBOARD_BACK: u32 = 2164261902u32; +pub const DIKEYBOARD_BACKSLASH: u32 = 2164261931u32; +pub const DIKEYBOARD_C: u32 = 2164261934u32; +pub const DIKEYBOARD_CALCULATOR: u32 = 2164262049u32; +pub const DIKEYBOARD_CAPITAL: u32 = 2164261946u32; +pub const DIKEYBOARD_COLON: u32 = 2164262034u32; +pub const DIKEYBOARD_COMMA: u32 = 2164261939u32; +pub const DIKEYBOARD_CONVERT: u32 = 2164262009u32; +pub const DIKEYBOARD_D: u32 = 2164261920u32; +pub const DIKEYBOARD_DECIMAL: u32 = 2164261971u32; +pub const DIKEYBOARD_DELETE: u32 = 2164262099u32; +pub const DIKEYBOARD_DIVIDE: u32 = 2164262069u32; +pub const DIKEYBOARD_DOWN: u32 = 2164262096u32; +pub const DIKEYBOARD_E: u32 = 2164261906u32; +pub const DIKEYBOARD_END: u32 = 2164262095u32; +pub const DIKEYBOARD_EQUALS: u32 = 2164261901u32; +pub const DIKEYBOARD_ESCAPE: u32 = 2164261889u32; +pub const DIKEYBOARD_F: u32 = 2164261921u32; +pub const DIKEYBOARD_F1: u32 = 2164261947u32; +pub const DIKEYBOARD_F10: u32 = 2164261956u32; +pub const DIKEYBOARD_F11: u32 = 2164261975u32; +pub const DIKEYBOARD_F12: u32 = 2164261976u32; +pub const DIKEYBOARD_F13: u32 = 2164261988u32; +pub const DIKEYBOARD_F14: u32 = 2164261989u32; +pub const DIKEYBOARD_F15: u32 = 2164261990u32; +pub const DIKEYBOARD_F2: u32 = 2164261948u32; +pub const DIKEYBOARD_F3: u32 = 2164261949u32; +pub const DIKEYBOARD_F4: u32 = 2164261950u32; +pub const DIKEYBOARD_F5: u32 = 2164261951u32; +pub const DIKEYBOARD_F6: u32 = 2164261952u32; +pub const DIKEYBOARD_F7: u32 = 2164261953u32; +pub const DIKEYBOARD_F8: u32 = 2164261954u32; +pub const DIKEYBOARD_F9: u32 = 2164261955u32; +pub const DIKEYBOARD_G: u32 = 2164261922u32; +pub const DIKEYBOARD_GRAVE: u32 = 2164261929u32; +pub const DIKEYBOARD_H: u32 = 2164261923u32; +pub const DIKEYBOARD_HOME: u32 = 2164262087u32; +pub const DIKEYBOARD_I: u32 = 2164261911u32; +pub const DIKEYBOARD_INSERT: u32 = 2164262098u32; +pub const DIKEYBOARD_J: u32 = 2164261924u32; +pub const DIKEYBOARD_K: u32 = 2164261925u32; +pub const DIKEYBOARD_KANA: u32 = 2164262000u32; +pub const DIKEYBOARD_KANJI: u32 = 2164262036u32; +pub const DIKEYBOARD_L: u32 = 2164261926u32; +pub const DIKEYBOARD_LBRACKET: u32 = 2164261914u32; +pub const DIKEYBOARD_LCONTROL: u32 = 2164261917u32; +pub const DIKEYBOARD_LEFT: u32 = 2164262091u32; +pub const DIKEYBOARD_LMENU: u32 = 2164261944u32; +pub const DIKEYBOARD_LSHIFT: u32 = 2164261930u32; +pub const DIKEYBOARD_LWIN: u32 = 2164262107u32; +pub const DIKEYBOARD_M: u32 = 2164261938u32; +pub const DIKEYBOARD_MAIL: u32 = 2164262124u32; +pub const DIKEYBOARD_MEDIASELECT: u32 = 2164262125u32; +pub const DIKEYBOARD_MEDIASTOP: u32 = 2164262052u32; +pub const DIKEYBOARD_MINUS: u32 = 2164261900u32; +pub const DIKEYBOARD_MULTIPLY: u32 = 2164261943u32; +pub const DIKEYBOARD_MUTE: u32 = 2164262048u32; +pub const DIKEYBOARD_MYCOMPUTER: u32 = 2164262123u32; +pub const DIKEYBOARD_N: u32 = 2164261937u32; +pub const DIKEYBOARD_NEXT: u32 = 2164262097u32; +pub const DIKEYBOARD_NEXTTRACK: u32 = 2164262041u32; +pub const DIKEYBOARD_NOCONVERT: u32 = 2164262011u32; +pub const DIKEYBOARD_NUMLOCK: u32 = 2164261957u32; +pub const DIKEYBOARD_NUMPAD0: u32 = 2164261970u32; +pub const DIKEYBOARD_NUMPAD1: u32 = 2164261967u32; +pub const DIKEYBOARD_NUMPAD2: u32 = 2164261968u32; +pub const DIKEYBOARD_NUMPAD3: u32 = 2164261969u32; +pub const DIKEYBOARD_NUMPAD4: u32 = 2164261963u32; +pub const DIKEYBOARD_NUMPAD5: u32 = 2164261964u32; +pub const DIKEYBOARD_NUMPAD6: u32 = 2164261965u32; +pub const DIKEYBOARD_NUMPAD7: u32 = 2164261959u32; +pub const DIKEYBOARD_NUMPAD8: u32 = 2164261960u32; +pub const DIKEYBOARD_NUMPAD9: u32 = 2164261961u32; +pub const DIKEYBOARD_NUMPADCOMMA: u32 = 2164262067u32; +pub const DIKEYBOARD_NUMPADENTER: u32 = 2164262044u32; +pub const DIKEYBOARD_NUMPADEQUALS: u32 = 2164262029u32; +pub const DIKEYBOARD_O: u32 = 2164261912u32; +pub const DIKEYBOARD_OEM_102: u32 = 2164261974u32; +pub const DIKEYBOARD_P: u32 = 2164261913u32; +pub const DIKEYBOARD_PAUSE: u32 = 2164262085u32; +pub const DIKEYBOARD_PERIOD: u32 = 2164261940u32; +pub const DIKEYBOARD_PLAYPAUSE: u32 = 2164262050u32; +pub const DIKEYBOARD_POWER: u32 = 2164262110u32; +pub const DIKEYBOARD_PREVTRACK: u32 = 2164262032u32; +pub const DIKEYBOARD_PRIOR: u32 = 2164262089u32; +pub const DIKEYBOARD_Q: u32 = 2164261904u32; +pub const DIKEYBOARD_R: u32 = 2164261907u32; +pub const DIKEYBOARD_RBRACKET: u32 = 2164261915u32; +pub const DIKEYBOARD_RCONTROL: u32 = 2164262045u32; +pub const DIKEYBOARD_RETURN: u32 = 2164261916u32; +pub const DIKEYBOARD_RIGHT: u32 = 2164262093u32; +pub const DIKEYBOARD_RMENU: u32 = 2164262072u32; +pub const DIKEYBOARD_RSHIFT: u32 = 2164261942u32; +pub const DIKEYBOARD_RWIN: u32 = 2164262108u32; +pub const DIKEYBOARD_S: u32 = 2164261919u32; +pub const DIKEYBOARD_SCROLL: u32 = 2164261958u32; +pub const DIKEYBOARD_SEMICOLON: u32 = 2164261927u32; +pub const DIKEYBOARD_SLASH: u32 = 2164261941u32; +pub const DIKEYBOARD_SLEEP: u32 = 2164262111u32; +pub const DIKEYBOARD_SPACE: u32 = 2164261945u32; +pub const DIKEYBOARD_STOP: u32 = 2164262037u32; +pub const DIKEYBOARD_SUBTRACT: u32 = 2164261962u32; +pub const DIKEYBOARD_SYSRQ: u32 = 2164262071u32; +pub const DIKEYBOARD_T: u32 = 2164261908u32; +pub const DIKEYBOARD_TAB: u32 = 2164261903u32; +pub const DIKEYBOARD_U: u32 = 2164261910u32; +pub const DIKEYBOARD_UNDERLINE: u32 = 2164262035u32; +pub const DIKEYBOARD_UNLABELED: u32 = 2164262039u32; +pub const DIKEYBOARD_UP: u32 = 2164262088u32; +pub const DIKEYBOARD_V: u32 = 2164261935u32; +pub const DIKEYBOARD_VOLUMEDOWN: u32 = 2164262062u32; +pub const DIKEYBOARD_VOLUMEUP: u32 = 2164262064u32; +pub const DIKEYBOARD_W: u32 = 2164261905u32; +pub const DIKEYBOARD_WAKE: u32 = 2164262115u32; +pub const DIKEYBOARD_WEBBACK: u32 = 2164262122u32; +pub const DIKEYBOARD_WEBFAVORITES: u32 = 2164262118u32; +pub const DIKEYBOARD_WEBFORWARD: u32 = 2164262121u32; +pub const DIKEYBOARD_WEBHOME: u32 = 2164262066u32; +pub const DIKEYBOARD_WEBREFRESH: u32 = 2164262119u32; +pub const DIKEYBOARD_WEBSEARCH: u32 = 2164262117u32; +pub const DIKEYBOARD_WEBSTOP: u32 = 2164262120u32; +pub const DIKEYBOARD_X: u32 = 2164261933u32; +pub const DIKEYBOARD_Y: u32 = 2164261909u32; +pub const DIKEYBOARD_YEN: u32 = 2164262013u32; +pub const DIKEYBOARD_Z: u32 = 2164261932u32; +pub const DIK_0: u32 = 11u32; +pub const DIK_1: u32 = 2u32; +pub const DIK_2: u32 = 3u32; +pub const DIK_3: u32 = 4u32; +pub const DIK_4: u32 = 5u32; +pub const DIK_5: u32 = 6u32; +pub const DIK_6: u32 = 7u32; +pub const DIK_7: u32 = 8u32; +pub const DIK_8: u32 = 9u32; +pub const DIK_9: u32 = 10u32; +pub const DIK_A: u32 = 30u32; +pub const DIK_ABNT_C1: u32 = 115u32; +pub const DIK_ABNT_C2: u32 = 126u32; +pub const DIK_ADD: u32 = 78u32; +pub const DIK_APOSTROPHE: u32 = 40u32; +pub const DIK_APPS: u32 = 221u32; +pub const DIK_AT: u32 = 145u32; +pub const DIK_AX: u32 = 150u32; +pub const DIK_B: u32 = 48u32; +pub const DIK_BACK: u32 = 14u32; +pub const DIK_BACKSLASH: u32 = 43u32; +pub const DIK_BACKSPACE: u32 = 14u32; +pub const DIK_C: u32 = 46u32; +pub const DIK_CALCULATOR: u32 = 161u32; +pub const DIK_CAPITAL: u32 = 58u32; +pub const DIK_CAPSLOCK: u32 = 58u32; +pub const DIK_CIRCUMFLEX: u32 = 144u32; +pub const DIK_COLON: u32 = 146u32; +pub const DIK_COMMA: u32 = 51u32; +pub const DIK_CONVERT: u32 = 121u32; +pub const DIK_D: u32 = 32u32; +pub const DIK_DECIMAL: u32 = 83u32; +pub const DIK_DELETE: u32 = 211u32; +pub const DIK_DIVIDE: u32 = 181u32; +pub const DIK_DOWN: u32 = 208u32; +pub const DIK_DOWNARROW: u32 = 208u32; +pub const DIK_E: u32 = 18u32; +pub const DIK_END: u32 = 207u32; +pub const DIK_EQUALS: u32 = 13u32; +pub const DIK_ESCAPE: u32 = 1u32; +pub const DIK_F: u32 = 33u32; +pub const DIK_F1: u32 = 59u32; +pub const DIK_F10: u32 = 68u32; +pub const DIK_F11: u32 = 87u32; +pub const DIK_F12: u32 = 88u32; +pub const DIK_F13: u32 = 100u32; +pub const DIK_F14: u32 = 101u32; +pub const DIK_F15: u32 = 102u32; +pub const DIK_F2: u32 = 60u32; +pub const DIK_F3: u32 = 61u32; +pub const DIK_F4: u32 = 62u32; +pub const DIK_F5: u32 = 63u32; +pub const DIK_F6: u32 = 64u32; +pub const DIK_F7: u32 = 65u32; +pub const DIK_F8: u32 = 66u32; +pub const DIK_F9: u32 = 67u32; +pub const DIK_G: u32 = 34u32; +pub const DIK_GRAVE: u32 = 41u32; +pub const DIK_H: u32 = 35u32; +pub const DIK_HOME: u32 = 199u32; +pub const DIK_I: u32 = 23u32; +pub const DIK_INSERT: u32 = 210u32; +pub const DIK_J: u32 = 36u32; +pub const DIK_K: u32 = 37u32; +pub const DIK_KANA: u32 = 112u32; +pub const DIK_KANJI: u32 = 148u32; +pub const DIK_L: u32 = 38u32; +pub const DIK_LALT: u32 = 56u32; +pub const DIK_LBRACKET: u32 = 26u32; +pub const DIK_LCONTROL: u32 = 29u32; +pub const DIK_LEFT: u32 = 203u32; +pub const DIK_LEFTARROW: u32 = 203u32; +pub const DIK_LMENU: u32 = 56u32; +pub const DIK_LSHIFT: u32 = 42u32; +pub const DIK_LWIN: u32 = 219u32; +pub const DIK_M: u32 = 50u32; +pub const DIK_MAIL: u32 = 236u32; +pub const DIK_MEDIASELECT: u32 = 237u32; +pub const DIK_MEDIASTOP: u32 = 164u32; +pub const DIK_MINUS: u32 = 12u32; +pub const DIK_MULTIPLY: u32 = 55u32; +pub const DIK_MUTE: u32 = 160u32; +pub const DIK_MYCOMPUTER: u32 = 235u32; +pub const DIK_N: u32 = 49u32; +pub const DIK_NEXT: u32 = 209u32; +pub const DIK_NEXTTRACK: u32 = 153u32; +pub const DIK_NOCONVERT: u32 = 123u32; +pub const DIK_NUMLOCK: u32 = 69u32; +pub const DIK_NUMPAD0: u32 = 82u32; +pub const DIK_NUMPAD1: u32 = 79u32; +pub const DIK_NUMPAD2: u32 = 80u32; +pub const DIK_NUMPAD3: u32 = 81u32; +pub const DIK_NUMPAD4: u32 = 75u32; +pub const DIK_NUMPAD5: u32 = 76u32; +pub const DIK_NUMPAD6: u32 = 77u32; +pub const DIK_NUMPAD7: u32 = 71u32; +pub const DIK_NUMPAD8: u32 = 72u32; +pub const DIK_NUMPAD9: u32 = 73u32; +pub const DIK_NUMPADCOMMA: u32 = 179u32; +pub const DIK_NUMPADENTER: u32 = 156u32; +pub const DIK_NUMPADEQUALS: u32 = 141u32; +pub const DIK_NUMPADMINUS: u32 = 74u32; +pub const DIK_NUMPADPERIOD: u32 = 83u32; +pub const DIK_NUMPADPLUS: u32 = 78u32; +pub const DIK_NUMPADSLASH: u32 = 181u32; +pub const DIK_NUMPADSTAR: u32 = 55u32; +pub const DIK_O: u32 = 24u32; +pub const DIK_OEM_102: u32 = 86u32; +pub const DIK_P: u32 = 25u32; +pub const DIK_PAUSE: u32 = 197u32; +pub const DIK_PERIOD: u32 = 52u32; +pub const DIK_PGDN: u32 = 209u32; +pub const DIK_PGUP: u32 = 201u32; +pub const DIK_PLAYPAUSE: u32 = 162u32; +pub const DIK_POWER: u32 = 222u32; +pub const DIK_PREVTRACK: u32 = 144u32; +pub const DIK_PRIOR: u32 = 201u32; +pub const DIK_Q: u32 = 16u32; +pub const DIK_R: u32 = 19u32; +pub const DIK_RALT: u32 = 184u32; +pub const DIK_RBRACKET: u32 = 27u32; +pub const DIK_RCONTROL: u32 = 157u32; +pub const DIK_RETURN: u32 = 28u32; +pub const DIK_RIGHT: u32 = 205u32; +pub const DIK_RIGHTARROW: u32 = 205u32; +pub const DIK_RMENU: u32 = 184u32; +pub const DIK_RSHIFT: u32 = 54u32; +pub const DIK_RWIN: u32 = 220u32; +pub const DIK_S: u32 = 31u32; +pub const DIK_SCROLL: u32 = 70u32; +pub const DIK_SEMICOLON: u32 = 39u32; +pub const DIK_SLASH: u32 = 53u32; +pub const DIK_SLEEP: u32 = 223u32; +pub const DIK_SPACE: u32 = 57u32; +pub const DIK_STOP: u32 = 149u32; +pub const DIK_SUBTRACT: u32 = 74u32; +pub const DIK_SYSRQ: u32 = 183u32; +pub const DIK_T: u32 = 20u32; +pub const DIK_TAB: u32 = 15u32; +pub const DIK_U: u32 = 22u32; +pub const DIK_UNDERLINE: u32 = 147u32; +pub const DIK_UNLABELED: u32 = 151u32; +pub const DIK_UP: u32 = 200u32; +pub const DIK_UPARROW: u32 = 200u32; +pub const DIK_V: u32 = 47u32; +pub const DIK_VOLUMEDOWN: u32 = 174u32; +pub const DIK_VOLUMEUP: u32 = 176u32; +pub const DIK_W: u32 = 17u32; +pub const DIK_WAKE: u32 = 227u32; +pub const DIK_WEBBACK: u32 = 234u32; +pub const DIK_WEBFAVORITES: u32 = 230u32; +pub const DIK_WEBFORWARD: u32 = 233u32; +pub const DIK_WEBHOME: u32 = 178u32; +pub const DIK_WEBREFRESH: u32 = 231u32; +pub const DIK_WEBSEARCH: u32 = 229u32; +pub const DIK_WEBSTOP: u32 = 232u32; +pub const DIK_X: u32 = 45u32; +pub const DIK_Y: u32 = 21u32; +pub const DIK_YEN: u32 = 125u32; +pub const DIK_Z: u32 = 44u32; +pub const DIMSGWP_DX8APPSTART: u32 = 2u32; +pub const DIMSGWP_DX8MAPPERAPPSTART: u32 = 3u32; +pub const DIMSGWP_NEWAPPSTART: u32 = 1u32; +pub const DIPH_BYID: u32 = 2u32; +pub const DIPH_BYOFFSET: u32 = 1u32; +pub const DIPH_BYUSAGE: u32 = 3u32; +pub const DIPH_DEVICE: u32 = 0u32; +pub const DIPOV_ANY_1: u32 = 4278208001u32; +pub const DIPOV_ANY_2: u32 = 4278208002u32; +pub const DIPOV_ANY_3: u32 = 4278208003u32; +pub const DIPOV_ANY_4: u32 = 4278208004u32; +pub const DIPROPAUTOCENTER_OFF: u32 = 0u32; +pub const DIPROPAUTOCENTER_ON: u32 = 1u32; +pub const DIPROPAXISMODE_ABS: u32 = 0u32; +pub const DIPROPAXISMODE_REL: u32 = 1u32; +pub const DIPROPCALIBRATIONMODE_COOKED: u32 = 0u32; +pub const DIPROPCALIBRATIONMODE_RAW: u32 = 1u32; +pub const DIPROP_APPDATA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000016); +pub const DIPROP_AUTOCENTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000009); +pub const DIPROP_AXISMODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000002); +pub const DIPROP_BUFFERSIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000001); +pub const DIPROP_CALIBRATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_00000000000b); +pub const DIPROP_CALIBRATIONMODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_00000000000a); +pub const DIPROP_CPOINTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000015); +pub const DIPROP_DEADZONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000005); +pub const DIPROP_FFGAIN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000007); +pub const DIPROP_FFLOAD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000008); +pub const DIPROP_GETPORTDISPLAYNAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000010); +pub const DIPROP_GRANULARITY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000003); +pub const DIPROP_GUIDANDPATH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_00000000000c); +pub const DIPROP_INSTANCENAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_00000000000d); +pub const DIPROP_JOYSTICKID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_00000000000f); +pub const DIPROP_KEYNAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000014); +pub const DIPROP_LOGICALRANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000013); +pub const DIPROP_PHYSICALRANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000012); +pub const DIPROP_PRODUCTNAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_00000000000e); +pub const DIPROP_RANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000004); +pub const DIPROP_SATURATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000006); +pub const DIPROP_SCANCODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000017); +pub const DIPROP_TYPENAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_00000000001a); +pub const DIPROP_USERNAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000019); +pub const DIPROP_VIDPID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000018); +pub const DIRECTINPUT_HEADER_VERSION: u32 = 2048u32; +pub const DIRECTINPUT_NOTIFICATION_MSGSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DIRECTINPUT_NOTIFICATION_MSGSTRING"); +pub const DIRECTINPUT_NOTIFICATION_MSGSTRINGA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("DIRECTINPUT_NOTIFICATION_MSGSTRING"); +pub const DIRECTINPUT_NOTIFICATION_MSGSTRINGW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DIRECTINPUT_NOTIFICATION_MSGSTRING"); +pub const DIRECTINPUT_REGSTR_KEY_LASTAPP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MostRecentApplication"); +pub const DIRECTINPUT_REGSTR_KEY_LASTAPPA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MostRecentApplication"); +pub const DIRECTINPUT_REGSTR_KEY_LASTAPPW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MostRecentApplication"); +pub const DIRECTINPUT_REGSTR_KEY_LASTMAPAPP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MostRecentMapperApplication"); +pub const DIRECTINPUT_REGSTR_KEY_LASTMAPAPPA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MostRecentMapperApplication"); +pub const DIRECTINPUT_REGSTR_KEY_LASTMAPAPPW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MostRecentMapperApplication"); +pub const DIRECTINPUT_REGSTR_VAL_APPIDFLAG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AppIdFlag"); +pub const DIRECTINPUT_REGSTR_VAL_APPIDFLAGA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("AppIdFlag"); +pub const DIRECTINPUT_REGSTR_VAL_APPIDFLAGW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AppIdFlag"); +pub const DIRECTINPUT_REGSTR_VAL_ID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Id"); +pub const DIRECTINPUT_REGSTR_VAL_IDA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Id"); +pub const DIRECTINPUT_REGSTR_VAL_IDW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Id"); +pub const DIRECTINPUT_REGSTR_VAL_LASTSTART: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MostRecentStart"); +pub const DIRECTINPUT_REGSTR_VAL_LASTSTARTA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MostRecentStart"); +pub const DIRECTINPUT_REGSTR_VAL_LASTSTARTW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MostRecentStart"); +pub const DIRECTINPUT_REGSTR_VAL_MAPPER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UsesMapper"); +pub const DIRECTINPUT_REGSTR_VAL_MAPPERA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("UsesMapper"); +pub const DIRECTINPUT_REGSTR_VAL_MAPPERW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UsesMapper"); +pub const DIRECTINPUT_REGSTR_VAL_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const DIRECTINPUT_REGSTR_VAL_NAMEA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Name"); +pub const DIRECTINPUT_REGSTR_VAL_NAMEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const DIRECTINPUT_REGSTR_VAL_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Version"); +pub const DIRECTINPUT_REGSTR_VAL_VERSIONA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Version"); +pub const DIRECTINPUT_REGSTR_VAL_VERSIONW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Version"); +pub const DIRECTINPUT_VERSION: u32 = 2048u32; +pub const DISCL_BACKGROUND: u32 = 8u32; +pub const DISCL_EXCLUSIVE: u32 = 1u32; +pub const DISCL_FOREGROUND: u32 = 4u32; +pub const DISCL_NONEXCLUSIVE: u32 = 2u32; +pub const DISCL_NOWINKEY: u32 = 16u32; +pub const DISDD_CONTINUE: u32 = 1u32; +pub const DISFFC_CONTINUE: u32 = 8u32; +pub const DISFFC_PAUSE: u32 = 4u32; +pub const DISFFC_RESET: u32 = 1u32; +pub const DISFFC_SETACTUATORSOFF: u32 = 32u32; +pub const DISFFC_SETACTUATORSON: u32 = 16u32; +pub const DISFFC_STOPALL: u32 = 2u32; +pub const DITC_CALLOUT: u32 = 8u32; +pub const DITC_CLSIDCONFIG: u32 = 2u32; +pub const DITC_DISPLAYNAME: u32 = 4u32; +pub const DITC_FLAGS1: u32 = 32u32; +pub const DITC_FLAGS2: u32 = 64u32; +pub const DITC_HARDWAREID: u32 = 16u32; +pub const DITC_MAPFILE: u32 = 128u32; +pub const DITC_REGHWSETTINGS: u32 = 1u32; +pub const DIVIRTUAL_ARCADE_PLATFORM: u32 = 570425344u32; +pub const DIVIRTUAL_ARCADE_SIDE2SIDE: u32 = 553648128u32; +pub const DIVIRTUAL_BROWSER_CONTROL: u32 = 671088640u32; +pub const DIVIRTUAL_CAD_2DCONTROL: u32 = 587202560u32; +pub const DIVIRTUAL_CAD_3DCONTROL: u32 = 603979776u32; +pub const DIVIRTUAL_CAD_FLYBY: u32 = 620756992u32; +pub const DIVIRTUAL_CAD_MODEL: u32 = 637534208u32; +pub const DIVIRTUAL_DRIVING_COMBAT: u32 = 33554432u32; +pub const DIVIRTUAL_DRIVING_MECHA: u32 = 687865856u32; +pub const DIVIRTUAL_DRIVING_RACE: u32 = 16777216u32; +pub const DIVIRTUAL_DRIVING_TANK: u32 = 50331648u32; +pub const DIVIRTUAL_FIGHTING_FPS: u32 = 150994944u32; +pub const DIVIRTUAL_FIGHTING_HAND2HAND: u32 = 134217728u32; +pub const DIVIRTUAL_FIGHTING_THIRDPERSON: u32 = 167772160u32; +pub const DIVIRTUAL_FLYING_CIVILIAN: u32 = 67108864u32; +pub const DIVIRTUAL_FLYING_HELICOPTER: u32 = 100663296u32; +pub const DIVIRTUAL_FLYING_MILITARY: u32 = 83886080u32; +pub const DIVIRTUAL_REMOTE_CONTROL: u32 = 654311424u32; +pub const DIVIRTUAL_SPACESIM: u32 = 117440512u32; +pub const DIVIRTUAL_SPORTS_BASEBALL_BAT: u32 = 251658240u32; +pub const DIVIRTUAL_SPORTS_BASEBALL_FIELD: u32 = 285212672u32; +pub const DIVIRTUAL_SPORTS_BASEBALL_PITCH: u32 = 268435456u32; +pub const DIVIRTUAL_SPORTS_BASKETBALL_DEFENSE: u32 = 318767104u32; +pub const DIVIRTUAL_SPORTS_BASKETBALL_OFFENSE: u32 = 301989888u32; +pub const DIVIRTUAL_SPORTS_BIKING_MOUNTAIN: u32 = 469762048u32; +pub const DIVIRTUAL_SPORTS_FISHING: u32 = 234881024u32; +pub const DIVIRTUAL_SPORTS_FOOTBALL_DEFENSE: u32 = 385875968u32; +pub const DIVIRTUAL_SPORTS_FOOTBALL_FIELD: u32 = 335544320u32; +pub const DIVIRTUAL_SPORTS_FOOTBALL_OFFENSE: u32 = 369098752u32; +pub const DIVIRTUAL_SPORTS_FOOTBALL_QBCK: u32 = 352321536u32; +pub const DIVIRTUAL_SPORTS_GOLF: u32 = 402653184u32; +pub const DIVIRTUAL_SPORTS_HOCKEY_DEFENSE: u32 = 436207616u32; +pub const DIVIRTUAL_SPORTS_HOCKEY_GOALIE: u32 = 452984832u32; +pub const DIVIRTUAL_SPORTS_HOCKEY_OFFENSE: u32 = 419430400u32; +pub const DIVIRTUAL_SPORTS_HUNTING: u32 = 218103808u32; +pub const DIVIRTUAL_SPORTS_RACQUET: u32 = 536870912u32; +pub const DIVIRTUAL_SPORTS_SKIING: u32 = 486539264u32; +pub const DIVIRTUAL_SPORTS_SOCCER_DEFENSE: u32 = 520093696u32; +pub const DIVIRTUAL_SPORTS_SOCCER_OFFENSE: u32 = 503316480u32; +pub const DIVIRTUAL_STRATEGY_ROLEPLAYING: u32 = 184549376u32; +pub const DIVIRTUAL_STRATEGY_TURN: u32 = 201326592u32; +pub const DIVOICE_ALL: u32 = 2197816330u32; +pub const DIVOICE_CHANNEL1: u32 = 2197816321u32; +pub const DIVOICE_CHANNEL2: u32 = 2197816322u32; +pub const DIVOICE_CHANNEL3: u32 = 2197816323u32; +pub const DIVOICE_CHANNEL4: u32 = 2197816324u32; +pub const DIVOICE_CHANNEL5: u32 = 2197816325u32; +pub const DIVOICE_CHANNEL6: u32 = 2197816326u32; +pub const DIVOICE_CHANNEL7: u32 = 2197816327u32; +pub const DIVOICE_CHANNEL8: u32 = 2197816328u32; +pub const DIVOICE_PLAYBACKMUTE: u32 = 2197816332u32; +pub const DIVOICE_RECORDMUTE: u32 = 2197816331u32; +pub const DIVOICE_TEAM: u32 = 2197816329u32; +pub const DIVOICE_TRANSMIT: u32 = 2197816333u32; +pub const DIVOICE_VOICECOMMAND: u32 = 2197816336u32; +pub const DI_BUFFEROVERFLOW: i32 = 1i32; +pub const DI_DEGREES: u32 = 100u32; +pub const DI_DOWNLOADSKIPPED: ::windows_sys::core::HRESULT = 3i32; +pub const DI_EFFECTRESTARTED: ::windows_sys::core::HRESULT = 4i32; +pub const DI_FFNOMINALMAX: u32 = 10000u32; +pub const DI_NOEFFECT: i32 = 1i32; +pub const DI_NOTATTACHED: i32 = 1i32; +pub const DI_OK: i32 = 0i32; +pub const DI_POLLEDDEVICE: ::windows_sys::core::HRESULT = 2i32; +pub const DI_PROPNOEFFECT: i32 = 1i32; +pub const DI_SECONDS: u32 = 1000000u32; +pub const DI_SETTINGSNOTSAVED: ::windows_sys::core::HRESULT = 11i32; +pub const DI_TRUNCATED: ::windows_sys::core::HRESULT = 8i32; +pub const DI_TRUNCATEDANDRESTARTED: ::windows_sys::core::HRESULT = 12i32; +pub const DI_WRITEPROTECT: ::windows_sys::core::HRESULT = 19i32; +pub const GPIO_BUTTON_BACK: GPIOBUTTONS_BUTTON_TYPE = 5i32; +pub const GPIO_BUTTON_CAMERA_FOCUS: GPIOBUTTONS_BUTTON_TYPE = 7i32; +pub const GPIO_BUTTON_CAMERA_LENS: GPIOBUTTONS_BUTTON_TYPE = 12i32; +pub const GPIO_BUTTON_CAMERA_SHUTTER: GPIOBUTTONS_BUTTON_TYPE = 8i32; +pub const GPIO_BUTTON_COUNT: GPIOBUTTONS_BUTTON_TYPE = 16i32; +pub const GPIO_BUTTON_COUNT_MIN: GPIOBUTTONS_BUTTON_TYPE = 5i32; +pub const GPIO_BUTTON_HEADSET: GPIOBUTTONS_BUTTON_TYPE = 10i32; +pub const GPIO_BUTTON_HWKB_DEPLOY: GPIOBUTTONS_BUTTON_TYPE = 11i32; +pub const GPIO_BUTTON_OEM_CUSTOM: GPIOBUTTONS_BUTTON_TYPE = 13i32; +pub const GPIO_BUTTON_OEM_CUSTOM2: GPIOBUTTONS_BUTTON_TYPE = 14i32; +pub const GPIO_BUTTON_OEM_CUSTOM3: GPIOBUTTONS_BUTTON_TYPE = 15i32; +pub const GPIO_BUTTON_POWER: GPIOBUTTONS_BUTTON_TYPE = 0i32; +pub const GPIO_BUTTON_RINGER_TOGGLE: GPIOBUTTONS_BUTTON_TYPE = 9i32; +pub const GPIO_BUTTON_ROTATION_LOCK: GPIOBUTTONS_BUTTON_TYPE = 4i32; +pub const GPIO_BUTTON_SEARCH: GPIOBUTTONS_BUTTON_TYPE = 6i32; +pub const GPIO_BUTTON_VOLUME_DOWN: GPIOBUTTONS_BUTTON_TYPE = 3i32; +pub const GPIO_BUTTON_VOLUME_UP: GPIOBUTTONS_BUTTON_TYPE = 2i32; +pub const GPIO_BUTTON_WINDOWS: GPIOBUTTONS_BUTTON_TYPE = 1i32; +pub const GUID_Button: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa36d02f0_c9f3_11cf_bfc7_444553540000); +pub const GUID_ConstantForce: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13541c20_8e33_11d0_9ad0_00a0c9a06e35); +pub const GUID_CustomForce: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13541c2b_8e33_11d0_9ad0_00a0c9a06e35); +pub const GUID_DEVINTERFACE_HID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d1e55b2_f16f_11cf_88cb_001111000030); +pub const GUID_DEVINTERFACE_KEYBOARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884b96c3_56ef_11d1_bc8c_00a0c91405dd); +pub const GUID_DEVINTERFACE_MOUSE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x378de44c_56ef_11d1_bc8c_00a0c91405dd); +pub const GUID_Damper: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13541c28_8e33_11d0_9ad0_00a0c9a06e35); +pub const GUID_Friction: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13541c2a_8e33_11d0_9ad0_00a0c9a06e35); +pub const GUID_HIDClass: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x745a17a0_74d3_11d0_b6fe_00a0c90f57da); +pub const GUID_HID_INTERFACE_HIDPARSE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf5c315a5_69ac_4bc2_9279_d0b64576f44b); +pub const GUID_HID_INTERFACE_NOTIFY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c4e2e88_25e6_4c33_882f_3d82e6073681); +pub const GUID_Inertia: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13541c29_8e33_11d0_9ad0_00a0c9a06e35); +pub const GUID_Joystick: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f1d2b70_d5a0_11cf_bfc7_444553540000); +pub const GUID_Key: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x55728220_d33c_11cf_bfc7_444553540000); +pub const GUID_KeyboardClass: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e96b_e325_11ce_bfc1_08002be10318); +pub const GUID_MediaClass: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e96c_e325_11ce_bfc1_08002be10318); +pub const GUID_MouseClass: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e96f_e325_11ce_bfc1_08002be10318); +pub const GUID_POV: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa36d02f2_c9f3_11cf_bfc7_444553540000); +pub const GUID_RampForce: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13541c21_8e33_11d0_9ad0_00a0c9a06e35); +pub const GUID_RxAxis: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa36d02f4_c9f3_11cf_bfc7_444553540000); +pub const GUID_RyAxis: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa36d02f5_c9f3_11cf_bfc7_444553540000); +pub const GUID_RzAxis: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa36d02e3_c9f3_11cf_bfc7_444553540000); +pub const GUID_SawtoothDown: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13541c26_8e33_11d0_9ad0_00a0c9a06e35); +pub const GUID_SawtoothUp: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13541c25_8e33_11d0_9ad0_00a0c9a06e35); +pub const GUID_Sine: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13541c23_8e33_11d0_9ad0_00a0c9a06e35); +pub const GUID_Slider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa36d02e4_c9f3_11cf_bfc7_444553540000); +pub const GUID_Spring: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13541c27_8e33_11d0_9ad0_00a0c9a06e35); +pub const GUID_Square: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13541c22_8e33_11d0_9ad0_00a0c9a06e35); +pub const GUID_SysKeyboard: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f1d2b61_d5a0_11cf_bfc7_444553540000); +pub const GUID_SysKeyboardEm: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f1d2b82_d5a0_11cf_bfc7_444553540000); +pub const GUID_SysKeyboardEm2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f1d2b83_d5a0_11cf_bfc7_444553540000); +pub const GUID_SysMouse: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f1d2b60_d5a0_11cf_bfc7_444553540000); +pub const GUID_SysMouseEm: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f1d2b80_d5a0_11cf_bfc7_444553540000); +pub const GUID_SysMouseEm2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f1d2b81_d5a0_11cf_bfc7_444553540000); +pub const GUID_Triangle: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13541c24_8e33_11d0_9ad0_00a0c9a06e35); +pub const GUID_Unknown: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa36d02f3_c9f3_11cf_bfc7_444553540000); +pub const GUID_XAxis: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa36d02e0_c9f3_11cf_bfc7_444553540000); +pub const GUID_YAxis: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa36d02e1_c9f3_11cf_bfc7_444553540000); +pub const GUID_ZAxis: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa36d02e2_c9f3_11cf_bfc7_444553540000); +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_BAD_LOG_PHY_VALUES: super::super::Foundation::NTSTATUS = -1072627706i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_BUFFER_TOO_SMALL: super::super::Foundation::NTSTATUS = -1072627705i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_BUTTON_NOT_PRESSED: super::super::Foundation::NTSTATUS = -1072627697i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_DATA_INDEX_NOT_FOUND: super::super::Foundation::NTSTATUS = -1072627699i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE: super::super::Foundation::NTSTATUS = -1072627698i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_I8042_TRANS_UNKNOWN: super::super::Foundation::NTSTATUS = -1072627703i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_I8242_TRANS_UNKNOWN: super::super::Foundation::NTSTATUS = -1072627703i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_INCOMPATIBLE_REPORT_ID: super::super::Foundation::NTSTATUS = -1072627702i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_INTERNAL_ERROR: super::super::Foundation::NTSTATUS = -1072627704i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_INVALID_PREPARSED_DATA: super::super::Foundation::NTSTATUS = -1072627711i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_INVALID_REPORT_LENGTH: super::super::Foundation::NTSTATUS = -1072627709i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_INVALID_REPORT_TYPE: super::super::Foundation::NTSTATUS = -1072627710i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_IS_VALUE_ARRAY: super::super::Foundation::NTSTATUS = -1072627700i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_NOT_BUTTON_ARRAY: super::super::Foundation::NTSTATUS = -1072627679i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_NOT_IMPLEMENTED: super::super::Foundation::NTSTATUS = -1072627680i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_NOT_VALUE_ARRAY: super::super::Foundation::NTSTATUS = -1072627701i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_NULL: super::super::Foundation::NTSTATUS = -2146369535i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_REPORT_DOES_NOT_EXIST: super::super::Foundation::NTSTATUS = -1072627696i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_SUCCESS: super::super::Foundation::NTSTATUS = 1114112i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_USAGE_NOT_FOUND: super::super::Foundation::NTSTATUS = -1072627708i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HIDP_STATUS_VALUE_OUT_OF_RANGE: super::super::Foundation::NTSTATUS = -1072627707i32; +pub const HID_REVISION: u32 = 1u32; +pub const HID_USAGE_ALPHANUMERIC_14_SEGMENT_DIRECT_MAP: u16 = 69u16; +pub const HID_USAGE_ALPHANUMERIC_7_SEGMENT_DIRECT_MAP: u16 = 67u16; +pub const HID_USAGE_ALPHANUMERIC_ALPHANUMERIC_DISPLAY: u16 = 1u16; +pub const HID_USAGE_ALPHANUMERIC_ASCII_CHARACTER_SET: u16 = 33u16; +pub const HID_USAGE_ALPHANUMERIC_ATTRIBUTE_DATA: u16 = 74u16; +pub const HID_USAGE_ALPHANUMERIC_ATTRIBUTE_READBACK: u16 = 73u16; +pub const HID_USAGE_ALPHANUMERIC_BITMAPPED_DISPLAY: u16 = 2u16; +pub const HID_USAGE_ALPHANUMERIC_BITMAP_SIZE_X: u16 = 128u16; +pub const HID_USAGE_ALPHANUMERIC_BITMAP_SIZE_Y: u16 = 129u16; +pub const HID_USAGE_ALPHANUMERIC_BIT_DEPTH_FORMAT: u16 = 131u16; +pub const HID_USAGE_ALPHANUMERIC_BLIT_DATA: u16 = 143u16; +pub const HID_USAGE_ALPHANUMERIC_BLIT_RECTANGLE_X1: u16 = 139u16; +pub const HID_USAGE_ALPHANUMERIC_BLIT_RECTANGLE_X2: u16 = 141u16; +pub const HID_USAGE_ALPHANUMERIC_BLIT_RECTANGLE_Y1: u16 = 140u16; +pub const HID_USAGE_ALPHANUMERIC_BLIT_RECTANGLE_Y2: u16 = 142u16; +pub const HID_USAGE_ALPHANUMERIC_BLIT_REPORT: u16 = 138u16; +pub const HID_USAGE_ALPHANUMERIC_CHARACTER_ATTRIBUTE: u16 = 72u16; +pub const HID_USAGE_ALPHANUMERIC_CHARACTER_REPORT: u16 = 43u16; +pub const HID_USAGE_ALPHANUMERIC_CHAR_ATTR_BLINK: u16 = 77u16; +pub const HID_USAGE_ALPHANUMERIC_CHAR_ATTR_ENHANCE: u16 = 75u16; +pub const HID_USAGE_ALPHANUMERIC_CHAR_ATTR_UNDERLINE: u16 = 76u16; +pub const HID_USAGE_ALPHANUMERIC_CHAR_HEIGHT: u16 = 62u16; +pub const HID_USAGE_ALPHANUMERIC_CHAR_SPACING_HORIZONTAL: u16 = 63u16; +pub const HID_USAGE_ALPHANUMERIC_CHAR_SPACING_VERTICAL: u16 = 64u16; +pub const HID_USAGE_ALPHANUMERIC_CHAR_WIDTH: u16 = 61u16; +pub const HID_USAGE_ALPHANUMERIC_CLEAR_DISPLAY: u16 = 37u16; +pub const HID_USAGE_ALPHANUMERIC_COLUMN: u16 = 52u16; +pub const HID_USAGE_ALPHANUMERIC_COLUMNS: u16 = 54u16; +pub const HID_USAGE_ALPHANUMERIC_CURSOR_BLINK: u16 = 58u16; +pub const HID_USAGE_ALPHANUMERIC_CURSOR_ENABLE: u16 = 57u16; +pub const HID_USAGE_ALPHANUMERIC_CURSOR_MODE: u16 = 56u16; +pub const HID_USAGE_ALPHANUMERIC_CURSOR_PIXEL_POSITIONING: u16 = 55u16; +pub const HID_USAGE_ALPHANUMERIC_CURSOR_POSITION_REPORT: u16 = 50u16; +pub const HID_USAGE_ALPHANUMERIC_DATA_READ_BACK: u16 = 34u16; +pub const HID_USAGE_ALPHANUMERIC_DISPLAY_ATTRIBUTES_REPORT: u16 = 32u16; +pub const HID_USAGE_ALPHANUMERIC_DISPLAY_BRIGHTNESS: u16 = 70u16; +pub const HID_USAGE_ALPHANUMERIC_DISPLAY_CONTRAST: u16 = 71u16; +pub const HID_USAGE_ALPHANUMERIC_DISPLAY_CONTROL_REPORT: u16 = 36u16; +pub const HID_USAGE_ALPHANUMERIC_DISPLAY_DATA: u16 = 44u16; +pub const HID_USAGE_ALPHANUMERIC_DISPLAY_ENABLE: u16 = 38u16; +pub const HID_USAGE_ALPHANUMERIC_DISPLAY_ORIENTATION: u16 = 132u16; +pub const HID_USAGE_ALPHANUMERIC_DISPLAY_STATUS: u16 = 45u16; +pub const HID_USAGE_ALPHANUMERIC_ERR_FONT_DATA_CANNOT_BE_READ: u16 = 49u16; +pub const HID_USAGE_ALPHANUMERIC_ERR_NOT_A_LOADABLE_CHARACTER: u16 = 48u16; +pub const HID_USAGE_ALPHANUMERIC_FONT_14_SEGMENT: u16 = 68u16; +pub const HID_USAGE_ALPHANUMERIC_FONT_7_SEGMENT: u16 = 66u16; +pub const HID_USAGE_ALPHANUMERIC_FONT_DATA: u16 = 60u16; +pub const HID_USAGE_ALPHANUMERIC_FONT_READ_BACK: u16 = 35u16; +pub const HID_USAGE_ALPHANUMERIC_FONT_REPORT: u16 = 59u16; +pub const HID_USAGE_ALPHANUMERIC_HORIZONTAL_SCROLL: u16 = 42u16; +pub const HID_USAGE_ALPHANUMERIC_PALETTE_DATA: u16 = 136u16; +pub const HID_USAGE_ALPHANUMERIC_PALETTE_DATA_OFFSET: u16 = 135u16; +pub const HID_USAGE_ALPHANUMERIC_PALETTE_DATA_SIZE: u16 = 134u16; +pub const HID_USAGE_ALPHANUMERIC_PALETTE_REPORT: u16 = 133u16; +pub const HID_USAGE_ALPHANUMERIC_ROW: u16 = 51u16; +pub const HID_USAGE_ALPHANUMERIC_ROWS: u16 = 53u16; +pub const HID_USAGE_ALPHANUMERIC_SCREEN_SAVER_DELAY: u16 = 39u16; +pub const HID_USAGE_ALPHANUMERIC_SCREEN_SAVER_ENABLE: u16 = 40u16; +pub const HID_USAGE_ALPHANUMERIC_SOFT_BUTTON: u16 = 144u16; +pub const HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_ID: u16 = 145u16; +pub const HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_OFFSET1: u16 = 147u16; +pub const HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_OFFSET2: u16 = 148u16; +pub const HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_REPORT: u16 = 149u16; +pub const HID_USAGE_ALPHANUMERIC_SOFT_BUTTON_SIDE: u16 = 146u16; +pub const HID_USAGE_ALPHANUMERIC_STATUS_NOT_READY: u16 = 46u16; +pub const HID_USAGE_ALPHANUMERIC_STATUS_READY: u16 = 47u16; +pub const HID_USAGE_ALPHANUMERIC_UNICODE_CHAR_SET: u16 = 65u16; +pub const HID_USAGE_ALPHANUMERIC_VERTICAL_SCROLL: u16 = 41u16; +pub const HID_USAGE_CAMERA_AUTO_FOCUS: u16 = 32u16; +pub const HID_USAGE_CAMERA_SHUTTER: u16 = 33u16; +pub const HID_USAGE_CONSUMERCTRL: u16 = 1u16; +pub const HID_USAGE_CONSUMER_AC_BACK: u16 = 548u16; +pub const HID_USAGE_CONSUMER_AC_BOOKMARKS: u16 = 554u16; +pub const HID_USAGE_CONSUMER_AC_FORWARD: u16 = 549u16; +pub const HID_USAGE_CONSUMER_AC_GOTO: u16 = 546u16; +pub const HID_USAGE_CONSUMER_AC_HOME: u16 = 547u16; +pub const HID_USAGE_CONSUMER_AC_NEXT: u16 = 553u16; +pub const HID_USAGE_CONSUMER_AC_PAN: u16 = 568u16; +pub const HID_USAGE_CONSUMER_AC_PREVIOUS: u16 = 552u16; +pub const HID_USAGE_CONSUMER_AC_REFRESH: u16 = 551u16; +pub const HID_USAGE_CONSUMER_AC_SEARCH: u16 = 545u16; +pub const HID_USAGE_CONSUMER_AC_STOP: u16 = 550u16; +pub const HID_USAGE_CONSUMER_AL_BROWSER: u16 = 404u16; +pub const HID_USAGE_CONSUMER_AL_CALCULATOR: u16 = 402u16; +pub const HID_USAGE_CONSUMER_AL_CONFIGURATION: u16 = 387u16; +pub const HID_USAGE_CONSUMER_AL_EMAIL: u16 = 394u16; +pub const HID_USAGE_CONSUMER_AL_SEARCH: u16 = 454u16; +pub const HID_USAGE_CONSUMER_BALANCE: u16 = 225u16; +pub const HID_USAGE_CONSUMER_BASS: u16 = 227u16; +pub const HID_USAGE_CONSUMER_BASS_BOOST: u16 = 229u16; +pub const HID_USAGE_CONSUMER_BASS_DECREMENT: u16 = 339u16; +pub const HID_USAGE_CONSUMER_BASS_INCREMENT: u16 = 338u16; +pub const HID_USAGE_CONSUMER_CHANNEL_DECREMENT: u16 = 157u16; +pub const HID_USAGE_CONSUMER_CHANNEL_INCREMENT: u16 = 156u16; +pub const HID_USAGE_CONSUMER_EXTENDED_KEYBOARD_ATTRIBUTES_COLLECTION: u16 = 704u16; +pub const HID_USAGE_CONSUMER_FAST_FORWARD: u16 = 179u16; +pub const HID_USAGE_CONSUMER_GAMEDVR_OPEN_GAMEBAR: u16 = 208u16; +pub const HID_USAGE_CONSUMER_GAMEDVR_RECORD_CLIP: u16 = 210u16; +pub const HID_USAGE_CONSUMER_GAMEDVR_SCREENSHOT: u16 = 211u16; +pub const HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_BROADCAST: u16 = 215u16; +pub const HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_CAMERA: u16 = 214u16; +pub const HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_INDICATOR: u16 = 212u16; +pub const HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_MICROPHONE: u16 = 213u16; +pub const HID_USAGE_CONSUMER_GAMEDVR_TOGGLE_RECORD: u16 = 209u16; +pub const HID_USAGE_CONSUMER_IMPLEMENTED_KEYBOARD_INPUT_ASSIST_CONTROLS: u16 = 710u16; +pub const HID_USAGE_CONSUMER_KEYBOARD_FORM_FACTOR: u16 = 705u16; +pub const HID_USAGE_CONSUMER_KEYBOARD_IETF_LANGUAGE_TAG_INDEX: u16 = 709u16; +pub const HID_USAGE_CONSUMER_KEYBOARD_KEY_TYPE: u16 = 706u16; +pub const HID_USAGE_CONSUMER_KEYBOARD_PHYSICAL_LAYOUT: u16 = 707u16; +pub const HID_USAGE_CONSUMER_LOUDNESS: u16 = 231u16; +pub const HID_USAGE_CONSUMER_MPX: u16 = 232u16; +pub const HID_USAGE_CONSUMER_MUTE: u16 = 226u16; +pub const HID_USAGE_CONSUMER_PAUSE: u16 = 177u16; +pub const HID_USAGE_CONSUMER_PLAY: u16 = 176u16; +pub const HID_USAGE_CONSUMER_PLAY_PAUSE: u16 = 205u16; +pub const HID_USAGE_CONSUMER_RECORD: u16 = 178u16; +pub const HID_USAGE_CONSUMER_REWIND: u16 = 180u16; +pub const HID_USAGE_CONSUMER_SCAN_NEXT_TRACK: u16 = 181u16; +pub const HID_USAGE_CONSUMER_SCAN_PREV_TRACK: u16 = 182u16; +pub const HID_USAGE_CONSUMER_STOP: u16 = 183u16; +pub const HID_USAGE_CONSUMER_SURROUND_MODE: u16 = 230u16; +pub const HID_USAGE_CONSUMER_TREBLE: u16 = 228u16; +pub const HID_USAGE_CONSUMER_TREBLE_DECREMENT: u16 = 341u16; +pub const HID_USAGE_CONSUMER_TREBLE_INCREMENT: u16 = 340u16; +pub const HID_USAGE_CONSUMER_VENDOR_SPECIFIC_KEYBOARD_PHYSICAL_LAYOUT: u16 = 708u16; +pub const HID_USAGE_CONSUMER_VOLUME: u16 = 224u16; +pub const HID_USAGE_CONSUMER_VOLUME_DECREMENT: u16 = 234u16; +pub const HID_USAGE_CONSUMER_VOLUME_INCREMENT: u16 = 233u16; +pub const HID_USAGE_DIGITIZER_3D_DIGITIZER: u16 = 8u16; +pub const HID_USAGE_DIGITIZER_ALTITUDE: u16 = 64u16; +pub const HID_USAGE_DIGITIZER_ARMATURE: u16 = 11u16; +pub const HID_USAGE_DIGITIZER_ARTICULATED_ARM: u16 = 10u16; +pub const HID_USAGE_DIGITIZER_AZIMUTH: u16 = 63u16; +pub const HID_USAGE_DIGITIZER_BARREL_PRESSURE: u16 = 49u16; +pub const HID_USAGE_DIGITIZER_BARREL_SWITCH: u16 = 68u16; +pub const HID_USAGE_DIGITIZER_BATTERY_STRENGTH: u16 = 59u16; +pub const HID_USAGE_DIGITIZER_COORD_MEASURING: u16 = 7u16; +pub const HID_USAGE_DIGITIZER_DATA_VALID: u16 = 55u16; +pub const HID_USAGE_DIGITIZER_DIGITIZER: u16 = 1u16; +pub const HID_USAGE_DIGITIZER_ERASER: u16 = 69u16; +pub const HID_USAGE_DIGITIZER_FINGER: u16 = 34u16; +pub const HID_USAGE_DIGITIZER_FREE_SPACE_WAND: u16 = 13u16; +pub const HID_USAGE_DIGITIZER_HEAT_MAP: u16 = 15u16; +pub const HID_USAGE_DIGITIZER_HEAT_MAP_FRAME_DATA: u16 = 108u16; +pub const HID_USAGE_DIGITIZER_HEAT_MAP_PROTOCOL_VENDOR_ID: u16 = 106u16; +pub const HID_USAGE_DIGITIZER_HEAT_MAP_PROTOCOL_VERSION: u16 = 107u16; +pub const HID_USAGE_DIGITIZER_INVERT: u16 = 60u16; +pub const HID_USAGE_DIGITIZER_IN_RANGE: u16 = 50u16; +pub const HID_USAGE_DIGITIZER_LIGHT_PEN: u16 = 3u16; +pub const HID_USAGE_DIGITIZER_MULTI_POINT: u16 = 12u16; +pub const HID_USAGE_DIGITIZER_PEN: u16 = 2u16; +pub const HID_USAGE_DIGITIZER_PROG_CHANGE_KEYS: u16 = 58u16; +pub const HID_USAGE_DIGITIZER_PUCK: u16 = 33u16; +pub const HID_USAGE_DIGITIZER_QUALITY: u16 = 54u16; +pub const HID_USAGE_DIGITIZER_SECONDARY_TIP_SWITCH: u16 = 67u16; +pub const HID_USAGE_DIGITIZER_STEREO_PLOTTER: u16 = 9u16; +pub const HID_USAGE_DIGITIZER_STYLUS: u16 = 32u16; +pub const HID_USAGE_DIGITIZER_TABLET_FUNC_KEYS: u16 = 57u16; +pub const HID_USAGE_DIGITIZER_TABLET_PICK: u16 = 70u16; +pub const HID_USAGE_DIGITIZER_TAP: u16 = 53u16; +pub const HID_USAGE_DIGITIZER_TIP_PRESSURE: u16 = 48u16; +pub const HID_USAGE_DIGITIZER_TIP_SWITCH: u16 = 66u16; +pub const HID_USAGE_DIGITIZER_TOUCH: u16 = 51u16; +pub const HID_USAGE_DIGITIZER_TOUCH_PAD: u16 = 5u16; +pub const HID_USAGE_DIGITIZER_TOUCH_SCREEN: u16 = 4u16; +pub const HID_USAGE_DIGITIZER_TRANSDUCER_CONNECTED: u16 = 162u16; +pub const HID_USAGE_DIGITIZER_TRANSDUCER_INDEX: u16 = 56u16; +pub const HID_USAGE_DIGITIZER_TRANSDUCER_PRODUCT: u16 = 146u16; +pub const HID_USAGE_DIGITIZER_TRANSDUCER_SERIAL: u16 = 91u16; +pub const HID_USAGE_DIGITIZER_TRANSDUCER_SERIAL_PART2: u16 = 110u16; +pub const HID_USAGE_DIGITIZER_TRANSDUCER_VENDOR: u16 = 145u16; +pub const HID_USAGE_DIGITIZER_TWIST: u16 = 65u16; +pub const HID_USAGE_DIGITIZER_UNTOUCH: u16 = 52u16; +pub const HID_USAGE_DIGITIZER_WHITE_BOARD: u16 = 6u16; +pub const HID_USAGE_DIGITIZER_X_TILT: u16 = 61u16; +pub const HID_USAGE_DIGITIZER_Y_TILT: u16 = 62u16; +pub const HID_USAGE_GAME_3D_GAME_CONTROLLER: u16 = 1u16; +pub const HID_USAGE_GAME_BUMP: u16 = 44u16; +pub const HID_USAGE_GAME_FLIPPER: u16 = 42u16; +pub const HID_USAGE_GAME_GAMEPAD_FIRE_JUMP: u16 = 55u16; +pub const HID_USAGE_GAME_GAMEPAD_TRIGGER: u16 = 57u16; +pub const HID_USAGE_GAME_GUN_AUTOMATIC: u16 = 53u16; +pub const HID_USAGE_GAME_GUN_BOLT: u16 = 48u16; +pub const HID_USAGE_GAME_GUN_BURST: u16 = 52u16; +pub const HID_USAGE_GAME_GUN_CLIP: u16 = 49u16; +pub const HID_USAGE_GAME_GUN_DEVICE: u16 = 3u16; +pub const HID_USAGE_GAME_GUN_SAFETY: u16 = 54u16; +pub const HID_USAGE_GAME_GUN_SELECTOR: u16 = 50u16; +pub const HID_USAGE_GAME_GUN_SINGLE_SHOT: u16 = 51u16; +pub const HID_USAGE_GAME_LEAN_FORWARD_BACK: u16 = 40u16; +pub const HID_USAGE_GAME_LEAN_RIGHT_LEFT: u16 = 39u16; +pub const HID_USAGE_GAME_MOVE_FORWARD_BACK: u16 = 37u16; +pub const HID_USAGE_GAME_MOVE_RIGHT_LEFT: u16 = 36u16; +pub const HID_USAGE_GAME_MOVE_UP_DOWN: u16 = 38u16; +pub const HID_USAGE_GAME_NEW_GAME: u16 = 45u16; +pub const HID_USAGE_GAME_PINBALL_DEVICE: u16 = 2u16; +pub const HID_USAGE_GAME_PITCH_FORWARD_BACK: u16 = 34u16; +pub const HID_USAGE_GAME_PLAYER: u16 = 47u16; +pub const HID_USAGE_GAME_POINT_OF_VIEW: u16 = 32u16; +pub const HID_USAGE_GAME_POV_HEIGHT: u16 = 41u16; +pub const HID_USAGE_GAME_ROLL_RIGHT_LEFT: u16 = 35u16; +pub const HID_USAGE_GAME_SECONDARY_FLIPPER: u16 = 43u16; +pub const HID_USAGE_GAME_SHOOT_BALL: u16 = 46u16; +pub const HID_USAGE_GAME_TURN_RIGHT_LEFT: u16 = 33u16; +pub const HID_USAGE_GENERIC_BYTE_COUNT: u16 = 59u16; +pub const HID_USAGE_GENERIC_CONTROL_ENABLE: u16 = 203u16; +pub const HID_USAGE_GENERIC_COUNTED_BUFFER: u16 = 58u16; +pub const HID_USAGE_GENERIC_DEVICE_BATTERY_STRENGTH: u16 = 32u16; +pub const HID_USAGE_GENERIC_DEVICE_DISCOVER_WIRELESS_CONTROL: u16 = 35u16; +pub const HID_USAGE_GENERIC_DEVICE_SECURITY_CODE_CHAR_ENTERED: u16 = 36u16; +pub const HID_USAGE_GENERIC_DEVICE_SECURITY_CODE_CHAR_ERASED: u16 = 37u16; +pub const HID_USAGE_GENERIC_DEVICE_SECURITY_CODE_CLEARED: u16 = 38u16; +pub const HID_USAGE_GENERIC_DEVICE_WIRELESS_CHANNEL: u16 = 33u16; +pub const HID_USAGE_GENERIC_DEVICE_WIRELESS_ID: u16 = 34u16; +pub const HID_USAGE_GENERIC_DIAL: u16 = 55u16; +pub const HID_USAGE_GENERIC_DPAD_DOWN: u16 = 145u16; +pub const HID_USAGE_GENERIC_DPAD_LEFT: u16 = 147u16; +pub const HID_USAGE_GENERIC_DPAD_RIGHT: u16 = 146u16; +pub const HID_USAGE_GENERIC_DPAD_UP: u16 = 144u16; +pub const HID_USAGE_GENERIC_FEATURE_NOTIFICATION: u16 = 71u16; +pub const HID_USAGE_GENERIC_GAMEPAD: u16 = 5u16; +pub const HID_USAGE_GENERIC_HATSWITCH: u16 = 57u16; +pub const HID_USAGE_GENERIC_INTERACTIVE_CONTROL: u16 = 14u16; +pub const HID_USAGE_GENERIC_JOYSTICK: u16 = 4u16; +pub const HID_USAGE_GENERIC_KEYBOARD: u16 = 6u16; +pub const HID_USAGE_GENERIC_KEYPAD: u16 = 7u16; +pub const HID_USAGE_GENERIC_MOTION_WAKEUP: u16 = 60u16; +pub const HID_USAGE_GENERIC_MOUSE: u16 = 2u16; +pub const HID_USAGE_GENERIC_MULTI_AXIS_CONTROLLER: u16 = 8u16; +pub const HID_USAGE_GENERIC_POINTER: u16 = 1u16; +pub const HID_USAGE_GENERIC_PORTABLE_DEVICE_CONTROL: u16 = 13u16; +pub const HID_USAGE_GENERIC_RESOLUTION_MULTIPLIER: u16 = 72u16; +pub const HID_USAGE_GENERIC_RX: u16 = 51u16; +pub const HID_USAGE_GENERIC_RY: u16 = 52u16; +pub const HID_USAGE_GENERIC_RZ: u16 = 53u16; +pub const HID_USAGE_GENERIC_SELECT: u16 = 62u16; +pub const HID_USAGE_GENERIC_SLIDER: u16 = 54u16; +pub const HID_USAGE_GENERIC_START: u16 = 61u16; +pub const HID_USAGE_GENERIC_SYSCTL_APP_BREAK: u16 = 165u16; +pub const HID_USAGE_GENERIC_SYSCTL_APP_DBG_BREAK: u16 = 166u16; +pub const HID_USAGE_GENERIC_SYSCTL_APP_MENU: u16 = 134u16; +pub const HID_USAGE_GENERIC_SYSCTL_COLD_RESTART: u16 = 142u16; +pub const HID_USAGE_GENERIC_SYSCTL_CONTEXT_MENU: u16 = 132u16; +pub const HID_USAGE_GENERIC_SYSCTL_DISMISS_NOTIFICATION: u16 = 154u16; +pub const HID_USAGE_GENERIC_SYSCTL_DISP_AUTOSCALE: u16 = 183u16; +pub const HID_USAGE_GENERIC_SYSCTL_DISP_BOTH: u16 = 179u16; +pub const HID_USAGE_GENERIC_SYSCTL_DISP_DUAL: u16 = 180u16; +pub const HID_USAGE_GENERIC_SYSCTL_DISP_EXTERNAL: u16 = 178u16; +pub const HID_USAGE_GENERIC_SYSCTL_DISP_INTERNAL: u16 = 177u16; +pub const HID_USAGE_GENERIC_SYSCTL_DISP_INVERT: u16 = 176u16; +pub const HID_USAGE_GENERIC_SYSCTL_DISP_SWAP: u16 = 182u16; +pub const HID_USAGE_GENERIC_SYSCTL_DISP_TOGGLE: u16 = 181u16; +pub const HID_USAGE_GENERIC_SYSCTL_DOCK: u16 = 160u16; +pub const HID_USAGE_GENERIC_SYSCTL_FN: u16 = 151u16; +pub const HID_USAGE_GENERIC_SYSCTL_FN_LOCK: u16 = 152u16; +pub const HID_USAGE_GENERIC_SYSCTL_FN_LOCK_INDICATOR: u16 = 153u16; +pub const HID_USAGE_GENERIC_SYSCTL_HELP_MENU: u16 = 135u16; +pub const HID_USAGE_GENERIC_SYSCTL_HIBERNATE: u16 = 168u16; +pub const HID_USAGE_GENERIC_SYSCTL_MAIN_MENU: u16 = 133u16; +pub const HID_USAGE_GENERIC_SYSCTL_MENU_DOWN: u16 = 141u16; +pub const HID_USAGE_GENERIC_SYSCTL_MENU_EXIT: u16 = 136u16; +pub const HID_USAGE_GENERIC_SYSCTL_MENU_LEFT: u16 = 139u16; +pub const HID_USAGE_GENERIC_SYSCTL_MENU_RIGHT: u16 = 138u16; +pub const HID_USAGE_GENERIC_SYSCTL_MENU_SELECT: u16 = 137u16; +pub const HID_USAGE_GENERIC_SYSCTL_MENU_UP: u16 = 140u16; +pub const HID_USAGE_GENERIC_SYSCTL_MUTE: u16 = 167u16; +pub const HID_USAGE_GENERIC_SYSCTL_POWER: u16 = 129u16; +pub const HID_USAGE_GENERIC_SYSCTL_SETUP: u16 = 162u16; +pub const HID_USAGE_GENERIC_SYSCTL_SLEEP: u16 = 130u16; +pub const HID_USAGE_GENERIC_SYSCTL_SYS_BREAK: u16 = 163u16; +pub const HID_USAGE_GENERIC_SYSCTL_SYS_DBG_BREAK: u16 = 164u16; +pub const HID_USAGE_GENERIC_SYSCTL_UNDOCK: u16 = 161u16; +pub const HID_USAGE_GENERIC_SYSCTL_WAKE: u16 = 131u16; +pub const HID_USAGE_GENERIC_SYSCTL_WARM_RESTART: u16 = 143u16; +pub const HID_USAGE_GENERIC_SYSTEM_CTL: u16 = 128u16; +pub const HID_USAGE_GENERIC_SYSTEM_DISPLAY_ROTATION_LOCK_BUTTON: u16 = 201u16; +pub const HID_USAGE_GENERIC_SYSTEM_DISPLAY_ROTATION_LOCK_SLIDER_SWITCH: u16 = 202u16; +pub const HID_USAGE_GENERIC_TABLET_PC_SYSTEM_CTL: u16 = 9u16; +pub const HID_USAGE_GENERIC_VBRX: u16 = 67u16; +pub const HID_USAGE_GENERIC_VBRY: u16 = 68u16; +pub const HID_USAGE_GENERIC_VBRZ: u16 = 69u16; +pub const HID_USAGE_GENERIC_VNO: u16 = 70u16; +pub const HID_USAGE_GENERIC_VX: u16 = 64u16; +pub const HID_USAGE_GENERIC_VY: u16 = 65u16; +pub const HID_USAGE_GENERIC_VZ: u16 = 66u16; +pub const HID_USAGE_GENERIC_WHEEL: u16 = 56u16; +pub const HID_USAGE_GENERIC_X: u16 = 48u16; +pub const HID_USAGE_GENERIC_Y: u16 = 49u16; +pub const HID_USAGE_GENERIC_Z: u16 = 50u16; +pub const HID_USAGE_HAPTICS_AUTO_ASSOCIATED_CONTROL: u16 = 34u16; +pub const HID_USAGE_HAPTICS_AUTO_TRIGGER: u16 = 32u16; +pub const HID_USAGE_HAPTICS_DURATION_LIST: u16 = 17u16; +pub const HID_USAGE_HAPTICS_INTENSITY: u16 = 35u16; +pub const HID_USAGE_HAPTICS_MANUAL_TRIGGER: u16 = 33u16; +pub const HID_USAGE_HAPTICS_REPEAT_COUNT: u16 = 36u16; +pub const HID_USAGE_HAPTICS_RETRIGGER_PERIOD: u16 = 37u16; +pub const HID_USAGE_HAPTICS_SIMPLE_CONTROLLER: u16 = 1u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_BEGIN: u16 = 4096u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_BUZZ: u16 = 4100u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_CLICK: u16 = 4099u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_CUTOFF_TIME: u16 = 40u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_END: u16 = 8191u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_LIST: u16 = 16u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_NULL: u16 = 4098u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_PRESS: u16 = 4102u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_RELEASE: u16 = 4103u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_RUMBLE: u16 = 4101u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_STOP: u16 = 4097u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_VENDOR_BEGIN: u16 = 8192u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_VENDOR_END: u16 = 12287u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_VENDOR_ID: u16 = 39u16; +pub const HID_USAGE_HAPTICS_WAVEFORM_VENDOR_PAGE: u16 = 38u16; +pub const HID_USAGE_KEYBOARD_CAPS_LOCK: u16 = 57u16; +pub const HID_USAGE_KEYBOARD_DELETE: u16 = 42u16; +pub const HID_USAGE_KEYBOARD_DELETE_FORWARD: u16 = 76u16; +pub const HID_USAGE_KEYBOARD_ESCAPE: u16 = 41u16; +pub const HID_USAGE_KEYBOARD_F1: u16 = 58u16; +pub const HID_USAGE_KEYBOARD_F10: u16 = 67u16; +pub const HID_USAGE_KEYBOARD_F11: u16 = 68u16; +pub const HID_USAGE_KEYBOARD_F12: u16 = 69u16; +pub const HID_USAGE_KEYBOARD_F13: u16 = 104u16; +pub const HID_USAGE_KEYBOARD_F14: u16 = 105u16; +pub const HID_USAGE_KEYBOARD_F15: u16 = 106u16; +pub const HID_USAGE_KEYBOARD_F16: u16 = 107u16; +pub const HID_USAGE_KEYBOARD_F17: u16 = 108u16; +pub const HID_USAGE_KEYBOARD_F18: u16 = 109u16; +pub const HID_USAGE_KEYBOARD_F19: u16 = 110u16; +pub const HID_USAGE_KEYBOARD_F2: u16 = 59u16; +pub const HID_USAGE_KEYBOARD_F20: u16 = 111u16; +pub const HID_USAGE_KEYBOARD_F21: u16 = 112u16; +pub const HID_USAGE_KEYBOARD_F22: u16 = 113u16; +pub const HID_USAGE_KEYBOARD_F23: u16 = 114u16; +pub const HID_USAGE_KEYBOARD_F24: u16 = 115u16; +pub const HID_USAGE_KEYBOARD_F3: u16 = 60u16; +pub const HID_USAGE_KEYBOARD_F4: u16 = 61u16; +pub const HID_USAGE_KEYBOARD_F5: u16 = 62u16; +pub const HID_USAGE_KEYBOARD_F6: u16 = 63u16; +pub const HID_USAGE_KEYBOARD_F7: u16 = 64u16; +pub const HID_USAGE_KEYBOARD_F8: u16 = 65u16; +pub const HID_USAGE_KEYBOARD_F9: u16 = 66u16; +pub const HID_USAGE_KEYBOARD_LALT: u16 = 226u16; +pub const HID_USAGE_KEYBOARD_LCTRL: u16 = 224u16; +pub const HID_USAGE_KEYBOARD_LGUI: u16 = 227u16; +pub const HID_USAGE_KEYBOARD_LSHFT: u16 = 225u16; +pub const HID_USAGE_KEYBOARD_NOEVENT: u16 = 0u16; +pub const HID_USAGE_KEYBOARD_NUM_LOCK: u16 = 83u16; +pub const HID_USAGE_KEYBOARD_ONE: u16 = 30u16; +pub const HID_USAGE_KEYBOARD_POSTFAIL: u16 = 2u16; +pub const HID_USAGE_KEYBOARD_PRINT_SCREEN: u16 = 70u16; +pub const HID_USAGE_KEYBOARD_RALT: u16 = 230u16; +pub const HID_USAGE_KEYBOARD_RCTRL: u16 = 228u16; +pub const HID_USAGE_KEYBOARD_RETURN: u16 = 40u16; +pub const HID_USAGE_KEYBOARD_RGUI: u16 = 231u16; +pub const HID_USAGE_KEYBOARD_ROLLOVER: u16 = 1u16; +pub const HID_USAGE_KEYBOARD_RSHFT: u16 = 229u16; +pub const HID_USAGE_KEYBOARD_SCROLL_LOCK: u16 = 71u16; +pub const HID_USAGE_KEYBOARD_UNDEFINED: u16 = 3u16; +pub const HID_USAGE_KEYBOARD_ZERO: u16 = 39u16; +pub const HID_USAGE_KEYBOARD_aA: u16 = 4u16; +pub const HID_USAGE_KEYBOARD_zZ: u16 = 29u16; +pub const HID_USAGE_LAMPARRAY: u16 = 1u16; +pub const HID_USAGE_LAMPARRAY_ATTRBIUTES_REPORT: u16 = 2u16; +pub const HID_USAGE_LAMPARRAY_AUTONOMOUS_MODE: u16 = 113u16; +pub const HID_USAGE_LAMPARRAY_BLUE_LEVEL_COUNT: u16 = 42u16; +pub const HID_USAGE_LAMPARRAY_BOUNDING_BOX_DEPTH_IN_MICROMETERS: u16 = 6u16; +pub const HID_USAGE_LAMPARRAY_BOUNDING_BOX_HEIGHT_IN_MICROMETERS: u16 = 5u16; +pub const HID_USAGE_LAMPARRAY_BOUNDING_BOX_WIDTH_IN_MICROMETERS: u16 = 4u16; +pub const HID_USAGE_LAMPARRAY_CONTROL_REPORT: u16 = 112u16; +pub const HID_USAGE_LAMPARRAY_GREEN_LEVEL_COUNT: u16 = 41u16; +pub const HID_USAGE_LAMPARRAY_INPUT_BINDING: u16 = 45u16; +pub const HID_USAGE_LAMPARRAY_INTENSITY_LEVEL_COUNT: u16 = 43u16; +pub const HID_USAGE_LAMPARRAY_IS_PROGRAMMABLE: u16 = 44u16; +pub const HID_USAGE_LAMPARRAY_KIND: u16 = 7u16; +pub const HID_USAGE_LAMPARRAY_LAMP_ATTRIBUTES_REQUEST_REPORT: u16 = 32u16; +pub const HID_USAGE_LAMPARRAY_LAMP_ATTRIBUTES_RESPONSE_REPORT: u16 = 34u16; +pub const HID_USAGE_LAMPARRAY_LAMP_BLUE_UPDATE_CHANNEL: u16 = 83u16; +pub const HID_USAGE_LAMPARRAY_LAMP_COUNT: u16 = 3u16; +pub const HID_USAGE_LAMPARRAY_LAMP_GREEN_UPDATE_CHANNEL: u16 = 82u16; +pub const HID_USAGE_LAMPARRAY_LAMP_ID: u16 = 33u16; +pub const HID_USAGE_LAMPARRAY_LAMP_ID_END: u16 = 98u16; +pub const HID_USAGE_LAMPARRAY_LAMP_ID_START: u16 = 97u16; +pub const HID_USAGE_LAMPARRAY_LAMP_INTENSITY_UPDATE_CHANNEL: u16 = 84u16; +pub const HID_USAGE_LAMPARRAY_LAMP_MULTI_UPDATE_REPORT: u16 = 80u16; +pub const HID_USAGE_LAMPARRAY_LAMP_PURPOSES: u16 = 38u16; +pub const HID_USAGE_LAMPARRAY_LAMP_RANGE_UPDATE_REPORT: u16 = 96u16; +pub const HID_USAGE_LAMPARRAY_LAMP_RED_UPDATE_CHANNEL: u16 = 81u16; +pub const HID_USAGE_LAMPARRAY_LAMP_UPDATE_FLAGS: u16 = 85u16; +pub const HID_USAGE_LAMPARRAY_MIN_UPDATE_INTERVAL_IN_MICROSECONDS: u16 = 8u16; +pub const HID_USAGE_LAMPARRAY_POSITION_X_IN_MICROMETERS: u16 = 35u16; +pub const HID_USAGE_LAMPARRAY_POSITION_Y_IN_MICROMETERS: u16 = 36u16; +pub const HID_USAGE_LAMPARRAY_POSITION_Z_IN_MICROMETERS: u16 = 37u16; +pub const HID_USAGE_LAMPARRAY_RED_LEVEL_COUNT: u16 = 40u16; +pub const HID_USAGE_LAMPARRAY_UPDATE_LATENCY_IN_MICROSECONDS: u16 = 39u16; +pub const HID_USAGE_LED_AMBER: u16 = 74u16; +pub const HID_USAGE_LED_BATTERY_LOW: u16 = 29u16; +pub const HID_USAGE_LED_BATTERY_OK: u16 = 28u16; +pub const HID_USAGE_LED_BATTERY_OPERATION: u16 = 27u16; +pub const HID_USAGE_LED_BUSY: u16 = 44u16; +pub const HID_USAGE_LED_CALL_PICKUP: u16 = 37u16; +pub const HID_USAGE_LED_CAMERA_OFF: u16 = 41u16; +pub const HID_USAGE_LED_CAMERA_ON: u16 = 40u16; +pub const HID_USAGE_LED_CAPS_LOCK: u16 = 2u16; +pub const HID_USAGE_LED_CAV: u16 = 20u16; +pub const HID_USAGE_LED_CLV: u16 = 21u16; +pub const HID_USAGE_LED_COMPOSE: u16 = 4u16; +pub const HID_USAGE_LED_CONFERENCE: u16 = 38u16; +pub const HID_USAGE_LED_COVERAGE: u16 = 34u16; +pub const HID_USAGE_LED_DATA_MODE: u16 = 26u16; +pub const HID_USAGE_LED_DO_NOT_DISTURB: u16 = 8u16; +pub const HID_USAGE_LED_EQUALIZER_ENABLE: u16 = 13u16; +pub const HID_USAGE_LED_ERROR: u16 = 57u16; +pub const HID_USAGE_LED_EXTERNAL_POWER: u16 = 77u16; +pub const HID_USAGE_LED_FAST_BLINK_OFF_TIME: u16 = 70u16; +pub const HID_USAGE_LED_FAST_BLINK_ON_TIME: u16 = 69u16; +pub const HID_USAGE_LED_FAST_FORWARD: u16 = 53u16; +pub const HID_USAGE_LED_FLASH_ON_TIME: u16 = 66u16; +pub const HID_USAGE_LED_FORWARD: u16 = 49u16; +pub const HID_USAGE_LED_GENERIC_INDICATOR: u16 = 75u16; +pub const HID_USAGE_LED_GREEN: u16 = 73u16; +pub const HID_USAGE_LED_HEAD_SET: u16 = 31u16; +pub const HID_USAGE_LED_HIGH_CUT_FILTER: u16 = 11u16; +pub const HID_USAGE_LED_HOLD: u16 = 32u16; +pub const HID_USAGE_LED_INDICATOR_COLOR: u16 = 71u16; +pub const HID_USAGE_LED_INDICATOR_FAST_BLINK: u16 = 64u16; +pub const HID_USAGE_LED_INDICATOR_FLASH: u16 = 62u16; +pub const HID_USAGE_LED_INDICATOR_OFF: u16 = 65u16; +pub const HID_USAGE_LED_INDICATOR_ON: u16 = 61u16; +pub const HID_USAGE_LED_INDICATOR_SLOW_BLINK: u16 = 63u16; +pub const HID_USAGE_LED_IN_USE_INDICATOR: u16 = 59u16; +pub const HID_USAGE_LED_KANA: u16 = 5u16; +pub const HID_USAGE_LED_LOW_CUT_FILTER: u16 = 12u16; +pub const HID_USAGE_LED_MESSAGE_WAITING: u16 = 25u16; +pub const HID_USAGE_LED_MICROPHONE: u16 = 33u16; +pub const HID_USAGE_LED_MULTI_MODE_INDICATOR: u16 = 60u16; +pub const HID_USAGE_LED_MUTE: u16 = 9u16; +pub const HID_USAGE_LED_NIGHT_MODE: u16 = 35u16; +pub const HID_USAGE_LED_NUM_LOCK: u16 = 1u16; +pub const HID_USAGE_LED_OFF_HOOK: u16 = 23u16; +pub const HID_USAGE_LED_OFF_LINE: u16 = 43u16; +pub const HID_USAGE_LED_ON_LINE: u16 = 42u16; +pub const HID_USAGE_LED_PAPER_JAM: u16 = 47u16; +pub const HID_USAGE_LED_PAPER_OUT: u16 = 46u16; +pub const HID_USAGE_LED_PAUSE: u16 = 55u16; +pub const HID_USAGE_LED_PLAY: u16 = 54u16; +pub const HID_USAGE_LED_POWER: u16 = 6u16; +pub const HID_USAGE_LED_READY: u16 = 45u16; +pub const HID_USAGE_LED_RECORD: u16 = 56u16; +pub const HID_USAGE_LED_RECORDING_FORMAT_DET: u16 = 22u16; +pub const HID_USAGE_LED_RED: u16 = 72u16; +pub const HID_USAGE_LED_REMOTE: u16 = 48u16; +pub const HID_USAGE_LED_REPEAT: u16 = 16u16; +pub const HID_USAGE_LED_REVERSE: u16 = 50u16; +pub const HID_USAGE_LED_REWIND: u16 = 52u16; +pub const HID_USAGE_LED_RING: u16 = 24u16; +pub const HID_USAGE_LED_SAMPLING_RATE_DETECT: u16 = 18u16; +pub const HID_USAGE_LED_SCROLL_LOCK: u16 = 3u16; +pub const HID_USAGE_LED_SELECTED_INDICATOR: u16 = 58u16; +pub const HID_USAGE_LED_SEND_CALLS: u16 = 36u16; +pub const HID_USAGE_LED_SHIFT: u16 = 7u16; +pub const HID_USAGE_LED_SLOW_BLINK_OFF_TIME: u16 = 68u16; +pub const HID_USAGE_LED_SLOW_BLINK_ON_TIME: u16 = 67u16; +pub const HID_USAGE_LED_SOUND_FIELD_ON: u16 = 14u16; +pub const HID_USAGE_LED_SPEAKER: u16 = 30u16; +pub const HID_USAGE_LED_SPINNING: u16 = 19u16; +pub const HID_USAGE_LED_STAND_BY: u16 = 39u16; +pub const HID_USAGE_LED_STEREO: u16 = 17u16; +pub const HID_USAGE_LED_STOP: u16 = 51u16; +pub const HID_USAGE_LED_SURROUND_FIELD_ON: u16 = 15u16; +pub const HID_USAGE_LED_SYSTEM_SUSPEND: u16 = 76u16; +pub const HID_USAGE_LED_TONE_ENABLE: u16 = 10u16; +pub const HID_USAGE_MS_BTH_HF_DIALMEMORY: u16 = 34u16; +pub const HID_USAGE_MS_BTH_HF_DIALNUMBER: u16 = 33u16; +pub const HID_USAGE_PAGE_ALPHANUMERIC: u16 = 20u16; +pub const HID_USAGE_PAGE_ARCADE: u16 = 145u16; +pub const HID_USAGE_PAGE_BARCODE_SCANNER: u16 = 140u16; +pub const HID_USAGE_PAGE_BUTTON: u16 = 9u16; +pub const HID_USAGE_PAGE_CAMERA_CONTROL: u16 = 144u16; +pub const HID_USAGE_PAGE_CONSUMER: u16 = 12u16; +pub const HID_USAGE_PAGE_DIGITIZER: u16 = 13u16; +pub const HID_USAGE_PAGE_GAME: u16 = 5u16; +pub const HID_USAGE_PAGE_GENERIC: u16 = 1u16; +pub const HID_USAGE_PAGE_GENERIC_DEVICE: u16 = 6u16; +pub const HID_USAGE_PAGE_HAPTICS: u16 = 14u16; +pub const HID_USAGE_PAGE_KEYBOARD: u16 = 7u16; +pub const HID_USAGE_PAGE_LED: u16 = 8u16; +pub const HID_USAGE_PAGE_LIGHTING_ILLUMINATION: u16 = 89u16; +pub const HID_USAGE_PAGE_MAGNETIC_STRIPE_READER: u16 = 142u16; +pub const HID_USAGE_PAGE_MICROSOFT_BLUETOOTH_HANDSFREE: u16 = 65523u16; +pub const HID_USAGE_PAGE_ORDINAL: u16 = 10u16; +pub const HID_USAGE_PAGE_PID: u16 = 15u16; +pub const HID_USAGE_PAGE_SENSOR: u16 = 32u16; +pub const HID_USAGE_PAGE_SIMULATION: u16 = 2u16; +pub const HID_USAGE_PAGE_SPORT: u16 = 4u16; +pub const HID_USAGE_PAGE_TELEPHONY: u16 = 11u16; +pub const HID_USAGE_PAGE_UNDEFINED: u16 = 0u16; +pub const HID_USAGE_PAGE_UNICODE: u16 = 16u16; +pub const HID_USAGE_PAGE_VENDOR_DEFINED_BEGIN: u16 = 65280u16; +pub const HID_USAGE_PAGE_VENDOR_DEFINED_END: u16 = 65535u16; +pub const HID_USAGE_PAGE_VR: u16 = 3u16; +pub const HID_USAGE_PAGE_WEIGHING_DEVICE: u16 = 141u16; +pub const HID_USAGE_SIMULATION_ACCELLERATOR: u16 = 196u16; +pub const HID_USAGE_SIMULATION_AILERON: u16 = 176u16; +pub const HID_USAGE_SIMULATION_AILERON_TRIM: u16 = 177u16; +pub const HID_USAGE_SIMULATION_AIRPLANE_SIMULATION_DEVICE: u16 = 9u16; +pub const HID_USAGE_SIMULATION_ANTI_TORQUE_CONTROL: u16 = 178u16; +pub const HID_USAGE_SIMULATION_AUTOMOBILE_SIMULATION_DEVICE: u16 = 2u16; +pub const HID_USAGE_SIMULATION_AUTOPIOLOT_ENABLE: u16 = 179u16; +pub const HID_USAGE_SIMULATION_BALLAST: u16 = 204u16; +pub const HID_USAGE_SIMULATION_BARREL_ELEVATION: u16 = 202u16; +pub const HID_USAGE_SIMULATION_BICYCLE_CRANK: u16 = 205u16; +pub const HID_USAGE_SIMULATION_BICYCLE_SIMULATION_DEVICE: u16 = 12u16; +pub const HID_USAGE_SIMULATION_BRAKE: u16 = 197u16; +pub const HID_USAGE_SIMULATION_CHAFF_RELEASE: u16 = 180u16; +pub const HID_USAGE_SIMULATION_CLUTCH: u16 = 198u16; +pub const HID_USAGE_SIMULATION_COLLECTIVE_CONTROL: u16 = 181u16; +pub const HID_USAGE_SIMULATION_CYCLIC_CONTROL: u16 = 34u16; +pub const HID_USAGE_SIMULATION_CYCLIC_TRIM: u16 = 35u16; +pub const HID_USAGE_SIMULATION_DIVE_BRAKE: u16 = 182u16; +pub const HID_USAGE_SIMULATION_DIVE_PLANE: u16 = 203u16; +pub const HID_USAGE_SIMULATION_ELECTRONIC_COUNTERMEASURES: u16 = 183u16; +pub const HID_USAGE_SIMULATION_ELEVATOR: u16 = 184u16; +pub const HID_USAGE_SIMULATION_ELEVATOR_TRIM: u16 = 185u16; +pub const HID_USAGE_SIMULATION_FLARE_RELEASE: u16 = 189u16; +pub const HID_USAGE_SIMULATION_FLIGHT_COMMUNICATIONS: u16 = 188u16; +pub const HID_USAGE_SIMULATION_FLIGHT_CONTROL_STICK: u16 = 32u16; +pub const HID_USAGE_SIMULATION_FLIGHT_SIMULATION_DEVICE: u16 = 1u16; +pub const HID_USAGE_SIMULATION_FLIGHT_STICK: u16 = 33u16; +pub const HID_USAGE_SIMULATION_FLIGHT_YOKE: u16 = 36u16; +pub const HID_USAGE_SIMULATION_FRONT_BRAKE: u16 = 207u16; +pub const HID_USAGE_SIMULATION_HANDLE_BARS: u16 = 206u16; +pub const HID_USAGE_SIMULATION_HELICOPTER_SIMULATION_DEVICE: u16 = 10u16; +pub const HID_USAGE_SIMULATION_LANDING_GEAR: u16 = 190u16; +pub const HID_USAGE_SIMULATION_MAGIC_CARPET_SIMULATION_DEVICE: u16 = 11u16; +pub const HID_USAGE_SIMULATION_MOTORCYCLE_SIMULATION_DEVICE: u16 = 7u16; +pub const HID_USAGE_SIMULATION_REAR_BRAKE: u16 = 208u16; +pub const HID_USAGE_SIMULATION_RUDDER: u16 = 186u16; +pub const HID_USAGE_SIMULATION_SAILING_SIMULATION_DEVICE: u16 = 6u16; +pub const HID_USAGE_SIMULATION_SHIFTER: u16 = 199u16; +pub const HID_USAGE_SIMULATION_SPACESHIP_SIMULATION_DEVICE: u16 = 4u16; +pub const HID_USAGE_SIMULATION_SPORTS_SIMULATION_DEVICE: u16 = 8u16; +pub const HID_USAGE_SIMULATION_STEERING: u16 = 200u16; +pub const HID_USAGE_SIMULATION_SUBMARINE_SIMULATION_DEVICE: u16 = 5u16; +pub const HID_USAGE_SIMULATION_TANK_SIMULATION_DEVICE: u16 = 3u16; +pub const HID_USAGE_SIMULATION_THROTTLE: u16 = 187u16; +pub const HID_USAGE_SIMULATION_TOE_BRAKE: u16 = 191u16; +pub const HID_USAGE_SIMULATION_TRACK_CONTROL: u16 = 37u16; +pub const HID_USAGE_SIMULATION_TRIGGER: u16 = 192u16; +pub const HID_USAGE_SIMULATION_TURRET_DIRECTION: u16 = 201u16; +pub const HID_USAGE_SIMULATION_WEAPONS_ARM: u16 = 193u16; +pub const HID_USAGE_SIMULATION_WEAPONS_SELECT: u16 = 194u16; +pub const HID_USAGE_SIMULATION_WING_FLAPS: u16 = 195u16; +pub const HID_USAGE_SPORT_10_IRON: u16 = 90u16; +pub const HID_USAGE_SPORT_11_IRON: u16 = 91u16; +pub const HID_USAGE_SPORT_1_IRON: u16 = 81u16; +pub const HID_USAGE_SPORT_1_WOOD: u16 = 95u16; +pub const HID_USAGE_SPORT_2_IRON: u16 = 82u16; +pub const HID_USAGE_SPORT_3_IRON: u16 = 83u16; +pub const HID_USAGE_SPORT_3_WOOD: u16 = 96u16; +pub const HID_USAGE_SPORT_4_IRON: u16 = 84u16; +pub const HID_USAGE_SPORT_5_IRON: u16 = 85u16; +pub const HID_USAGE_SPORT_5_WOOD: u16 = 97u16; +pub const HID_USAGE_SPORT_6_IRON: u16 = 86u16; +pub const HID_USAGE_SPORT_7_IRON: u16 = 87u16; +pub const HID_USAGE_SPORT_7_WOOD: u16 = 98u16; +pub const HID_USAGE_SPORT_8_IRON: u16 = 88u16; +pub const HID_USAGE_SPORT_9_IRON: u16 = 89u16; +pub const HID_USAGE_SPORT_9_WOOD: u16 = 99u16; +pub const HID_USAGE_SPORT_BASEBALL_BAT: u16 = 1u16; +pub const HID_USAGE_SPORT_FOLLOW_THROUGH: u16 = 54u16; +pub const HID_USAGE_SPORT_GOLF_CLUB: u16 = 2u16; +pub const HID_USAGE_SPORT_HEEL_TOE: u16 = 53u16; +pub const HID_USAGE_SPORT_HEIGHT: u16 = 57u16; +pub const HID_USAGE_SPORT_LOFT_WEDGE: u16 = 93u16; +pub const HID_USAGE_SPORT_OAR: u16 = 48u16; +pub const HID_USAGE_SPORT_POWER_WEDGE: u16 = 94u16; +pub const HID_USAGE_SPORT_PUTTER: u16 = 80u16; +pub const HID_USAGE_SPORT_RATE: u16 = 50u16; +pub const HID_USAGE_SPORT_ROWING_MACHINE: u16 = 3u16; +pub const HID_USAGE_SPORT_SAND_WEDGE: u16 = 92u16; +pub const HID_USAGE_SPORT_SLOPE: u16 = 49u16; +pub const HID_USAGE_SPORT_STICK_FACE_ANGLE: u16 = 52u16; +pub const HID_USAGE_SPORT_STICK_SPEED: u16 = 51u16; +pub const HID_USAGE_SPORT_STICK_TYPE: u16 = 56u16; +pub const HID_USAGE_SPORT_TEMPO: u16 = 55u16; +pub const HID_USAGE_SPORT_TREADMILL: u16 = 4u16; +pub const HID_USAGE_TELEPHONY_ANSWERING_MACHINE: u16 = 2u16; +pub const HID_USAGE_TELEPHONY_DROP: u16 = 38u16; +pub const HID_USAGE_TELEPHONY_HANDSET: u16 = 4u16; +pub const HID_USAGE_TELEPHONY_HEADSET: u16 = 5u16; +pub const HID_USAGE_TELEPHONY_HOST_AVAILABLE: u16 = 241u16; +pub const HID_USAGE_TELEPHONY_KEYPAD: u16 = 6u16; +pub const HID_USAGE_TELEPHONY_KEYPAD_0: u16 = 176u16; +pub const HID_USAGE_TELEPHONY_KEYPAD_D: u16 = 191u16; +pub const HID_USAGE_TELEPHONY_LINE: u16 = 42u16; +pub const HID_USAGE_TELEPHONY_MESSAGE_CONTROLS: u16 = 3u16; +pub const HID_USAGE_TELEPHONY_PHONE: u16 = 1u16; +pub const HID_USAGE_TELEPHONY_PROGRAMMABLE_BUTTON: u16 = 7u16; +pub const HID_USAGE_TELEPHONY_REDIAL: u16 = 36u16; +pub const HID_USAGE_TELEPHONY_RING_ENABLE: u16 = 45u16; +pub const HID_USAGE_TELEPHONY_SEND: u16 = 49u16; +pub const HID_USAGE_TELEPHONY_TRANSFER: u16 = 37u16; +pub const HID_USAGE_VR_ANIMATRONIC_DEVICE: u16 = 10u16; +pub const HID_USAGE_VR_BELT: u16 = 1u16; +pub const HID_USAGE_VR_BODY_SUIT: u16 = 2u16; +pub const HID_USAGE_VR_DISPLAY_ENABLE: u16 = 33u16; +pub const HID_USAGE_VR_FLEXOR: u16 = 3u16; +pub const HID_USAGE_VR_GLOVE: u16 = 4u16; +pub const HID_USAGE_VR_HAND_TRACKER: u16 = 7u16; +pub const HID_USAGE_VR_HEAD_MOUNTED_DISPLAY: u16 = 6u16; +pub const HID_USAGE_VR_HEAD_TRACKER: u16 = 5u16; +pub const HID_USAGE_VR_OCULOMETER: u16 = 8u16; +pub const HID_USAGE_VR_STEREO_ENABLE: u16 = 32u16; +pub const HID_USAGE_VR_VEST: u16 = 9u16; +pub const HORIZONTAL_WHEEL_PRESENT: u32 = 32768u32; +pub const HidP_Feature: HIDP_REPORT_TYPE = 2i32; +pub const HidP_Input: HIDP_REPORT_TYPE = 0i32; +pub const HidP_Keyboard_Break: HIDP_KEYBOARD_DIRECTION = 0i32; +pub const HidP_Keyboard_Make: HIDP_KEYBOARD_DIRECTION = 1i32; +pub const HidP_Output: HIDP_REPORT_TYPE = 1i32; +pub const IOCTL_BUTTON_GET_ENABLED_ON_IDLE: u32 = 721580u32; +pub const IOCTL_BUTTON_SET_ENABLED_ON_IDLE: u32 = 721576u32; +pub const IOCTL_KEYBOARD_INSERT_DATA: u32 = 721152u32; +pub const IOCTL_KEYBOARD_QUERY_ATTRIBUTES: u32 = 720896u32; +pub const IOCTL_KEYBOARD_QUERY_EXTENDED_ATTRIBUTES: u32 = 721408u32; +pub const IOCTL_KEYBOARD_QUERY_IME_STATUS: u32 = 724992u32; +pub const IOCTL_KEYBOARD_QUERY_INDICATORS: u32 = 720960u32; +pub const IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION: u32 = 721024u32; +pub const IOCTL_KEYBOARD_QUERY_TYPEMATIC: u32 = 720928u32; +pub const IOCTL_KEYBOARD_SET_IME_STATUS: u32 = 724996u32; +pub const IOCTL_KEYBOARD_SET_INDICATORS: u32 = 720904u32; +pub const IOCTL_KEYBOARD_SET_TYPEMATIC: u32 = 720900u32; +pub const IOCTL_MOUSE_INSERT_DATA: u32 = 983044u32; +pub const IOCTL_MOUSE_QUERY_ATTRIBUTES: u32 = 983040u32; +pub const JOYTYPE_ANALOGCOMPAT: i32 = 8i32; +pub const JOYTYPE_DEFAULTPROPSHEET: i32 = -2147483648i32; +pub const JOYTYPE_DEVICEHIDE: i32 = 65536i32; +pub const JOYTYPE_ENABLEINPUTREPORT: i32 = 16777216i32; +pub const JOYTYPE_GAMEHIDE: i32 = 524288i32; +pub const JOYTYPE_HIDEACTIVE: i32 = 1048576i32; +pub const JOYTYPE_INFODEFAULT: i32 = 0i32; +pub const JOYTYPE_INFOMASK: i32 = 14680064i32; +pub const JOYTYPE_INFOYRPEDALS: i32 = 6291456i32; +pub const JOYTYPE_INFOYYPEDALS: i32 = 2097152i32; +pub const JOYTYPE_INFOZISSLIDER: i32 = 2097152i32; +pub const JOYTYPE_INFOZISZ: i32 = 4194304i32; +pub const JOYTYPE_INFOZRPEDALS: i32 = 8388608i32; +pub const JOYTYPE_INFOZYPEDALS: i32 = 4194304i32; +pub const JOYTYPE_KEYBHIDE: i32 = 262144i32; +pub const JOYTYPE_MOUSEHIDE: i32 = 131072i32; +pub const JOYTYPE_NOAUTODETECTGAMEPORT: i32 = 2i32; +pub const JOYTYPE_NOHIDDIRECT: i32 = 4i32; +pub const JOYTYPE_ZEROGAMEENUMOEMDATA: i32 = 1i32; +pub const JOY_HWS_AUTOLOAD: i32 = 268435456i32; +pub const JOY_HWS_GAMEPORTBUSBUSY: i32 = 1i32; +pub const JOY_HWS_HASPOV: i32 = 2i32; +pub const JOY_HWS_HASR: i32 = 524288i32; +pub const JOY_HWS_HASU: i32 = 8388608i32; +pub const JOY_HWS_HASV: i32 = 16777216i32; +pub const JOY_HWS_HASZ: i32 = 1i32; +pub const JOY_HWS_ISANALOGPORTDRIVER: i32 = 134217728i32; +pub const JOY_HWS_ISCARCTRL: i32 = 64i32; +pub const JOY_HWS_ISGAMEPAD: i32 = 32i32; +pub const JOY_HWS_ISGAMEPORTBUS: i32 = -2147483648i32; +pub const JOY_HWS_ISGAMEPORTDRIVER: i32 = 67108864i32; +pub const JOY_HWS_ISHEADTRACKER: i32 = 33554432i32; +pub const JOY_HWS_ISYOKE: i32 = 16i32; +pub const JOY_HWS_NODEVNODE: i32 = 536870912i32; +pub const JOY_HWS_POVISBUTTONCOMBOS: i32 = 4i32; +pub const JOY_HWS_POVISJ1X: i32 = 65536i32; +pub const JOY_HWS_POVISJ1Y: i32 = 131072i32; +pub const JOY_HWS_POVISJ2X: i32 = 262144i32; +pub const JOY_HWS_POVISPOLL: i32 = 8i32; +pub const JOY_HWS_RISJ1X: i32 = 1048576i32; +pub const JOY_HWS_RISJ1Y: i32 = 2097152i32; +pub const JOY_HWS_RISJ2Y: i32 = 4194304i32; +pub const JOY_HWS_XISJ1Y: i32 = 128i32; +pub const JOY_HWS_XISJ2X: i32 = 256i32; +pub const JOY_HWS_XISJ2Y: i32 = 512i32; +pub const JOY_HWS_YISJ1X: i32 = 1024i32; +pub const JOY_HWS_YISJ2X: i32 = 2048i32; +pub const JOY_HWS_YISJ2Y: i32 = 4096i32; +pub const JOY_HWS_ZISJ1X: i32 = 8192i32; +pub const JOY_HWS_ZISJ1Y: i32 = 16384i32; +pub const JOY_HWS_ZISJ2X: i32 = 32768i32; +pub const JOY_HW_2A_2B_GENERIC: u32 = 2u32; +pub const JOY_HW_2A_4B_GENERIC: u32 = 3u32; +pub const JOY_HW_2B_FLIGHTYOKE: u32 = 5u32; +pub const JOY_HW_2B_FLIGHTYOKETHROTTLE: u32 = 6u32; +pub const JOY_HW_2B_GAMEPAD: u32 = 4u32; +pub const JOY_HW_3A_2B_GENERIC: u32 = 7u32; +pub const JOY_HW_3A_4B_GENERIC: u32 = 8u32; +pub const JOY_HW_4B_FLIGHTYOKE: u32 = 10u32; +pub const JOY_HW_4B_FLIGHTYOKETHROTTLE: u32 = 11u32; +pub const JOY_HW_4B_GAMEPAD: u32 = 9u32; +pub const JOY_HW_CUSTOM: u32 = 1u32; +pub const JOY_HW_LASTENTRY: u32 = 13u32; +pub const JOY_HW_NONE: u32 = 0u32; +pub const JOY_HW_TWO_2A_2B_WITH_Y: u32 = 12u32; +pub const JOY_ISCAL_POV: i32 = 32i32; +pub const JOY_ISCAL_R: i32 = 4i32; +pub const JOY_ISCAL_U: i32 = 8i32; +pub const JOY_ISCAL_V: i32 = 16i32; +pub const JOY_ISCAL_XY: i32 = 1i32; +pub const JOY_ISCAL_Z: i32 = 2i32; +pub const JOY_OEMPOLL_PASSDRIVERDATA: u32 = 7u32; +pub const JOY_PASSDRIVERDATA: i32 = 268435456i32; +pub const JOY_POVVAL_BACKWARD: u32 = 1u32; +pub const JOY_POVVAL_FORWARD: u32 = 0u32; +pub const JOY_POVVAL_LEFT: u32 = 2u32; +pub const JOY_POVVAL_RIGHT: u32 = 3u32; +pub const JOY_POV_NUMDIRS: u32 = 4u32; +pub const JOY_US_HASRUDDER: i32 = 1i32; +pub const JOY_US_ISOEM: i32 = 4i32; +pub const JOY_US_PRESENT: i32 = 2i32; +pub const JOY_US_RESERVED: i32 = -2147483648i32; +pub const JOY_US_VOLATILE: i32 = 8i32; +pub const KEYBOARD_CAPS_LOCK_ON: u32 = 4u32; +pub const KEYBOARD_ERROR_VALUE_BASE: u32 = 10000u32; +pub const KEYBOARD_EXTENDED_ATTRIBUTES_STRUCT_VERSION_1: u32 = 1u32; +pub const KEYBOARD_KANA_LOCK_ON: u32 = 8u32; +pub const KEYBOARD_LED_INJECTED: u32 = 32768u32; +pub const KEYBOARD_NUM_LOCK_ON: u32 = 2u32; +pub const KEYBOARD_OVERRUN_MAKE_CODE: u32 = 255u32; +pub const KEYBOARD_SCROLL_LOCK_ON: u32 = 1u32; +pub const KEYBOARD_SHADOW: u32 = 16384u32; +pub const KEY_BREAK: u32 = 1u32; +pub const KEY_E0: u32 = 2u32; +pub const KEY_E1: u32 = 4u32; +pub const KEY_FROM_KEYBOARD_OVERRIDER: u32 = 128u32; +pub const KEY_MAKE: u32 = 0u32; +pub const KEY_RIM_VKEY: u32 = 64u32; +pub const KEY_TERMSRV_SET_LED: u32 = 8u32; +pub const KEY_TERMSRV_SHADOW: u32 = 16u32; +pub const KEY_TERMSRV_VKPACKET: u32 = 32u32; +pub const KEY_UNICODE_SEQUENCE_END: u32 = 512u32; +pub const KEY_UNICODE_SEQUENCE_ITEM: u32 = 256u32; +pub const MAXCPOINTSNUM: u32 = 8u32; +pub const MAX_JOYSTICKOEMVXDNAME: u32 = 260u32; +pub const MAX_JOYSTRING: u32 = 256u32; +pub const MOUSE_ATTRIBUTES_CHANGED: u32 = 4u32; +pub const MOUSE_BUTTON_1_DOWN: u32 = 1u32; +pub const MOUSE_BUTTON_1_UP: u32 = 2u32; +pub const MOUSE_BUTTON_2_DOWN: u32 = 4u32; +pub const MOUSE_BUTTON_2_UP: u32 = 8u32; +pub const MOUSE_BUTTON_3_DOWN: u32 = 16u32; +pub const MOUSE_BUTTON_3_UP: u32 = 32u32; +pub const MOUSE_BUTTON_4_DOWN: u32 = 64u32; +pub const MOUSE_BUTTON_4_UP: u32 = 128u32; +pub const MOUSE_BUTTON_5_DOWN: u32 = 256u32; +pub const MOUSE_BUTTON_5_UP: u32 = 512u32; +pub const MOUSE_ERROR_VALUE_BASE: u32 = 20000u32; +pub const MOUSE_HID_HARDWARE: u32 = 128u32; +pub const MOUSE_HWHEEL: u32 = 2048u32; +pub const MOUSE_I8042_HARDWARE: u32 = 2u32; +pub const MOUSE_INPORT_HARDWARE: u32 = 1u32; +pub const MOUSE_LEFT_BUTTON_DOWN: u32 = 1u32; +pub const MOUSE_LEFT_BUTTON_UP: u32 = 2u32; +pub const MOUSE_MIDDLE_BUTTON_DOWN: u32 = 16u32; +pub const MOUSE_MIDDLE_BUTTON_UP: u32 = 32u32; +pub const MOUSE_MOVE_ABSOLUTE: u32 = 1u32; +pub const MOUSE_MOVE_NOCOALESCE: u32 = 8u32; +pub const MOUSE_MOVE_RELATIVE: u32 = 0u32; +pub const MOUSE_RIGHT_BUTTON_DOWN: u32 = 4u32; +pub const MOUSE_RIGHT_BUTTON_UP: u32 = 8u32; +pub const MOUSE_SERIAL_HARDWARE: u32 = 4u32; +pub const MOUSE_TERMSRV_SRC_SHADOW: u32 = 256u32; +pub const MOUSE_VIRTUAL_DESKTOP: u32 = 2u32; +pub const MOUSE_WHEEL: u32 = 1024u32; +pub const WHEELMOUSE_HID_HARDWARE: u32 = 256u32; +pub const WHEELMOUSE_I8042_HARDWARE: u32 = 32u32; +pub const WHEELMOUSE_SERIAL_HARDWARE: u32 = 64u32; +pub type GPIOBUTTONS_BUTTON_TYPE = i32; +pub type HIDP_KEYBOARD_DIRECTION = i32; +pub type HIDP_REPORT_TYPE = i32; +#[repr(C)] +pub struct CPOINT { + pub lP: i32, + pub dwLog: u32, +} +impl ::core::marker::Copy for CPOINT {} +impl ::core::clone::Clone for CPOINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIACTIONA { + pub uAppData: usize, + pub dwSemantic: u32, + pub dwFlags: u32, + pub Anonymous: DIACTIONA_0, + pub guidInstance: ::windows_sys::core::GUID, + pub dwObjID: u32, + pub dwHow: u32, +} +impl ::core::marker::Copy for DIACTIONA {} +impl ::core::clone::Clone for DIACTIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DIACTIONA_0 { + pub lptszActionName: ::windows_sys::core::PCSTR, + pub uResIdString: u32, +} +impl ::core::marker::Copy for DIACTIONA_0 {} +impl ::core::clone::Clone for DIACTIONA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DIACTIONFORMATA { + pub dwSize: u32, + pub dwActionSize: u32, + pub dwDataSize: u32, + pub dwNumActions: u32, + pub rgoAction: *mut DIACTIONA, + pub guidActionMap: ::windows_sys::core::GUID, + pub dwGenre: u32, + pub dwBufferSize: u32, + pub lAxisMin: i32, + pub lAxisMax: i32, + pub hInstString: super::super::Foundation::HINSTANCE, + pub ftTimeStamp: super::super::Foundation::FILETIME, + pub dwCRC: u32, + pub tszActionMap: [u8; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DIACTIONFORMATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DIACTIONFORMATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DIACTIONFORMATW { + pub dwSize: u32, + pub dwActionSize: u32, + pub dwDataSize: u32, + pub dwNumActions: u32, + pub rgoAction: *mut DIACTIONW, + pub guidActionMap: ::windows_sys::core::GUID, + pub dwGenre: u32, + pub dwBufferSize: u32, + pub lAxisMin: i32, + pub lAxisMax: i32, + pub hInstString: super::super::Foundation::HINSTANCE, + pub ftTimeStamp: super::super::Foundation::FILETIME, + pub dwCRC: u32, + pub tszActionMap: [u16; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DIACTIONFORMATW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DIACTIONFORMATW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIACTIONW { + pub uAppData: usize, + pub dwSemantic: u32, + pub dwFlags: u32, + pub Anonymous: DIACTIONW_0, + pub guidInstance: ::windows_sys::core::GUID, + pub dwObjID: u32, + pub dwHow: u32, +} +impl ::core::marker::Copy for DIACTIONW {} +impl ::core::clone::Clone for DIACTIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DIACTIONW_0 { + pub lptszActionName: ::windows_sys::core::PCWSTR, + pub uResIdString: u32, +} +impl ::core::marker::Copy for DIACTIONW_0 {} +impl ::core::clone::Clone for DIACTIONW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DICOLORSET { + pub dwSize: u32, + pub cTextFore: u32, + pub cTextHighlight: u32, + pub cCalloutLine: u32, + pub cCalloutHighlight: u32, + pub cBorder: u32, + pub cControlFill: u32, + pub cHighlightFill: u32, + pub cAreaFill: u32, +} +impl ::core::marker::Copy for DICOLORSET {} +impl ::core::clone::Clone for DICOLORSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DICONDITION { + pub lOffset: i32, + pub lPositiveCoefficient: i32, + pub lNegativeCoefficient: i32, + pub dwPositiveSaturation: u32, + pub dwNegativeSaturation: u32, + pub lDeadBand: i32, +} +impl ::core::marker::Copy for DICONDITION {} +impl ::core::clone::Clone for DICONDITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DICONFIGUREDEVICESPARAMSA { + pub dwSize: u32, + pub dwcUsers: u32, + pub lptszUserNames: ::windows_sys::core::PSTR, + pub dwcFormats: u32, + pub lprgFormats: *mut DIACTIONFORMATA, + pub hwnd: super::super::Foundation::HWND, + pub dics: DICOLORSET, + pub lpUnkDDSTarget: ::windows_sys::core::IUnknown, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DICONFIGUREDEVICESPARAMSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DICONFIGUREDEVICESPARAMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DICONFIGUREDEVICESPARAMSW { + pub dwSize: u32, + pub dwcUsers: u32, + pub lptszUserNames: ::windows_sys::core::PWSTR, + pub dwcFormats: u32, + pub lprgFormats: *mut DIACTIONFORMATW, + pub hwnd: super::super::Foundation::HWND, + pub dics: DICOLORSET, + pub lpUnkDDSTarget: ::windows_sys::core::IUnknown, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DICONFIGUREDEVICESPARAMSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DICONFIGUREDEVICESPARAMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DICONSTANTFORCE { + pub lMagnitude: i32, +} +impl ::core::marker::Copy for DICONSTANTFORCE {} +impl ::core::clone::Clone for DICONSTANTFORCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DICUSTOMFORCE { + pub cChannels: u32, + pub dwSamplePeriod: u32, + pub cSamples: u32, + pub rglForceData: *mut i32, +} +impl ::core::marker::Copy for DICUSTOMFORCE {} +impl ::core::clone::Clone for DICUSTOMFORCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDATAFORMAT { + pub dwSize: u32, + pub dwObjSize: u32, + pub dwFlags: u32, + pub dwDataSize: u32, + pub dwNumObjs: u32, + pub rgodf: *mut DIOBJECTDATAFORMAT, +} +impl ::core::marker::Copy for DIDATAFORMAT {} +impl ::core::clone::Clone for DIDATAFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDEVCAPS { + pub dwSize: u32, + pub dwFlags: u32, + pub dwDevType: u32, + pub dwAxes: u32, + pub dwButtons: u32, + pub dwPOVs: u32, + pub dwFFSamplePeriod: u32, + pub dwFFMinTimeResolution: u32, + pub dwFirmwareRevision: u32, + pub dwHardwareRevision: u32, + pub dwFFDriverVersion: u32, +} +impl ::core::marker::Copy for DIDEVCAPS {} +impl ::core::clone::Clone for DIDEVCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDEVCAPS_DX3 { + pub dwSize: u32, + pub dwFlags: u32, + pub dwDevType: u32, + pub dwAxes: u32, + pub dwButtons: u32, + pub dwPOVs: u32, +} +impl ::core::marker::Copy for DIDEVCAPS_DX3 {} +impl ::core::clone::Clone for DIDEVCAPS_DX3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DIDEVICEIMAGEINFOA { + pub tszImagePath: [u8; 260], + pub dwFlags: u32, + pub dwViewID: u32, + pub rcOverlay: super::super::Foundation::RECT, + pub dwObjID: u32, + pub dwcValidPts: u32, + pub rgptCalloutLine: [super::super::Foundation::POINT; 5], + pub rcCalloutRect: super::super::Foundation::RECT, + pub dwTextAlign: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DIDEVICEIMAGEINFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DIDEVICEIMAGEINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DIDEVICEIMAGEINFOHEADERA { + pub dwSize: u32, + pub dwSizeImageInfo: u32, + pub dwcViews: u32, + pub dwcButtons: u32, + pub dwcAxes: u32, + pub dwcPOVs: u32, + pub dwBufferSize: u32, + pub dwBufferUsed: u32, + pub lprgImageInfoArray: *mut DIDEVICEIMAGEINFOA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DIDEVICEIMAGEINFOHEADERA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DIDEVICEIMAGEINFOHEADERA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DIDEVICEIMAGEINFOHEADERW { + pub dwSize: u32, + pub dwSizeImageInfo: u32, + pub dwcViews: u32, + pub dwcButtons: u32, + pub dwcAxes: u32, + pub dwcPOVs: u32, + pub dwBufferSize: u32, + pub dwBufferUsed: u32, + pub lprgImageInfoArray: *mut DIDEVICEIMAGEINFOW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DIDEVICEIMAGEINFOHEADERW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DIDEVICEIMAGEINFOHEADERW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DIDEVICEIMAGEINFOW { + pub tszImagePath: [u16; 260], + pub dwFlags: u32, + pub dwViewID: u32, + pub rcOverlay: super::super::Foundation::RECT, + pub dwObjID: u32, + pub dwcValidPts: u32, + pub rgptCalloutLine: [super::super::Foundation::POINT; 5], + pub rcCalloutRect: super::super::Foundation::RECT, + pub dwTextAlign: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DIDEVICEIMAGEINFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DIDEVICEIMAGEINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDEVICEINSTANCEA { + pub dwSize: u32, + pub guidInstance: ::windows_sys::core::GUID, + pub guidProduct: ::windows_sys::core::GUID, + pub dwDevType: u32, + pub tszInstanceName: [u8; 260], + pub tszProductName: [u8; 260], + pub guidFFDriver: ::windows_sys::core::GUID, + pub wUsagePage: u16, + pub wUsage: u16, +} +impl ::core::marker::Copy for DIDEVICEINSTANCEA {} +impl ::core::clone::Clone for DIDEVICEINSTANCEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDEVICEINSTANCEW { + pub dwSize: u32, + pub guidInstance: ::windows_sys::core::GUID, + pub guidProduct: ::windows_sys::core::GUID, + pub dwDevType: u32, + pub tszInstanceName: [u16; 260], + pub tszProductName: [u16; 260], + pub guidFFDriver: ::windows_sys::core::GUID, + pub wUsagePage: u16, + pub wUsage: u16, +} +impl ::core::marker::Copy for DIDEVICEINSTANCEW {} +impl ::core::clone::Clone for DIDEVICEINSTANCEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDEVICEINSTANCE_DX3A { + pub dwSize: u32, + pub guidInstance: ::windows_sys::core::GUID, + pub guidProduct: ::windows_sys::core::GUID, + pub dwDevType: u32, + pub tszInstanceName: [u8; 260], + pub tszProductName: [u8; 260], +} +impl ::core::marker::Copy for DIDEVICEINSTANCE_DX3A {} +impl ::core::clone::Clone for DIDEVICEINSTANCE_DX3A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDEVICEINSTANCE_DX3W { + pub dwSize: u32, + pub guidInstance: ::windows_sys::core::GUID, + pub guidProduct: ::windows_sys::core::GUID, + pub dwDevType: u32, + pub tszInstanceName: [u16; 260], + pub tszProductName: [u16; 260], +} +impl ::core::marker::Copy for DIDEVICEINSTANCE_DX3W {} +impl ::core::clone::Clone for DIDEVICEINSTANCE_DX3W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDEVICEOBJECTDATA { + pub dwOfs: u32, + pub dwData: u32, + pub dwTimeStamp: u32, + pub dwSequence: u32, + pub uAppData: usize, +} +impl ::core::marker::Copy for DIDEVICEOBJECTDATA {} +impl ::core::clone::Clone for DIDEVICEOBJECTDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDEVICEOBJECTDATA_DX3 { + pub dwOfs: u32, + pub dwData: u32, + pub dwTimeStamp: u32, + pub dwSequence: u32, +} +impl ::core::marker::Copy for DIDEVICEOBJECTDATA_DX3 {} +impl ::core::clone::Clone for DIDEVICEOBJECTDATA_DX3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDEVICEOBJECTINSTANCEA { + pub dwSize: u32, + pub guidType: ::windows_sys::core::GUID, + pub dwOfs: u32, + pub dwType: u32, + pub dwFlags: u32, + pub tszName: [u8; 260], + pub dwFFMaxForce: u32, + pub dwFFForceResolution: u32, + pub wCollectionNumber: u16, + pub wDesignatorIndex: u16, + pub wUsagePage: u16, + pub wUsage: u16, + pub dwDimension: u32, + pub wExponent: u16, + pub wReportId: u16, +} +impl ::core::marker::Copy for DIDEVICEOBJECTINSTANCEA {} +impl ::core::clone::Clone for DIDEVICEOBJECTINSTANCEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDEVICEOBJECTINSTANCEW { + pub dwSize: u32, + pub guidType: ::windows_sys::core::GUID, + pub dwOfs: u32, + pub dwType: u32, + pub dwFlags: u32, + pub tszName: [u16; 260], + pub dwFFMaxForce: u32, + pub dwFFForceResolution: u32, + pub wCollectionNumber: u16, + pub wDesignatorIndex: u16, + pub wUsagePage: u16, + pub wUsage: u16, + pub dwDimension: u32, + pub wExponent: u16, + pub wReportId: u16, +} +impl ::core::marker::Copy for DIDEVICEOBJECTINSTANCEW {} +impl ::core::clone::Clone for DIDEVICEOBJECTINSTANCEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDEVICEOBJECTINSTANCE_DX3A { + pub dwSize: u32, + pub guidType: ::windows_sys::core::GUID, + pub dwOfs: u32, + pub dwType: u32, + pub dwFlags: u32, + pub tszName: [u8; 260], +} +impl ::core::marker::Copy for DIDEVICEOBJECTINSTANCE_DX3A {} +impl ::core::clone::Clone for DIDEVICEOBJECTINSTANCE_DX3A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDEVICEOBJECTINSTANCE_DX3W { + pub dwSize: u32, + pub guidType: ::windows_sys::core::GUID, + pub dwOfs: u32, + pub dwType: u32, + pub dwFlags: u32, + pub tszName: [u16; 260], +} +impl ::core::marker::Copy for DIDEVICEOBJECTINSTANCE_DX3W {} +impl ::core::clone::Clone for DIDEVICEOBJECTINSTANCE_DX3W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDEVICESTATE { + pub dwSize: u32, + pub dwState: u32, + pub dwLoad: u32, +} +impl ::core::marker::Copy for DIDEVICESTATE {} +impl ::core::clone::Clone for DIDEVICESTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIDRIVERVERSIONS { + pub dwSize: u32, + pub dwFirmwareRevision: u32, + pub dwHardwareRevision: u32, + pub dwFFDriverVersion: u32, +} +impl ::core::marker::Copy for DIDRIVERVERSIONS {} +impl ::core::clone::Clone for DIDRIVERVERSIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIEFFECT { + pub dwSize: u32, + pub dwFlags: u32, + pub dwDuration: u32, + pub dwSamplePeriod: u32, + pub dwGain: u32, + pub dwTriggerButton: u32, + pub dwTriggerRepeatInterval: u32, + pub cAxes: u32, + pub rgdwAxes: *mut u32, + pub rglDirection: *mut i32, + pub lpEnvelope: *mut DIENVELOPE, + pub cbTypeSpecificParams: u32, + pub lpvTypeSpecificParams: *mut ::core::ffi::c_void, + pub dwStartDelay: u32, +} +impl ::core::marker::Copy for DIEFFECT {} +impl ::core::clone::Clone for DIEFFECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIEFFECTATTRIBUTES { + pub dwEffectId: u32, + pub dwEffType: u32, + pub dwStaticParams: u32, + pub dwDynamicParams: u32, + pub dwCoords: u32, +} +impl ::core::marker::Copy for DIEFFECTATTRIBUTES {} +impl ::core::clone::Clone for DIEFFECTATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIEFFECTINFOA { + pub dwSize: u32, + pub guid: ::windows_sys::core::GUID, + pub dwEffType: u32, + pub dwStaticParams: u32, + pub dwDynamicParams: u32, + pub tszName: [u8; 260], +} +impl ::core::marker::Copy for DIEFFECTINFOA {} +impl ::core::clone::Clone for DIEFFECTINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIEFFECTINFOW { + pub dwSize: u32, + pub guid: ::windows_sys::core::GUID, + pub dwEffType: u32, + pub dwStaticParams: u32, + pub dwDynamicParams: u32, + pub tszName: [u16; 260], +} +impl ::core::marker::Copy for DIEFFECTINFOW {} +impl ::core::clone::Clone for DIEFFECTINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIEFFECT_DX5 { + pub dwSize: u32, + pub dwFlags: u32, + pub dwDuration: u32, + pub dwSamplePeriod: u32, + pub dwGain: u32, + pub dwTriggerButton: u32, + pub dwTriggerRepeatInterval: u32, + pub cAxes: u32, + pub rgdwAxes: *mut u32, + pub rglDirection: *mut i32, + pub lpEnvelope: *mut DIENVELOPE, + pub cbTypeSpecificParams: u32, + pub lpvTypeSpecificParams: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for DIEFFECT_DX5 {} +impl ::core::clone::Clone for DIEFFECT_DX5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIEFFESCAPE { + pub dwSize: u32, + pub dwCommand: u32, + pub lpvInBuffer: *mut ::core::ffi::c_void, + pub cbInBuffer: u32, + pub lpvOutBuffer: *mut ::core::ffi::c_void, + pub cbOutBuffer: u32, +} +impl ::core::marker::Copy for DIEFFESCAPE {} +impl ::core::clone::Clone for DIEFFESCAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIENVELOPE { + pub dwSize: u32, + pub dwAttackLevel: u32, + pub dwAttackTime: u32, + pub dwFadeLevel: u32, + pub dwFadeTime: u32, +} +impl ::core::marker::Copy for DIENVELOPE {} +impl ::core::clone::Clone for DIENVELOPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIFFDEVICEATTRIBUTES { + pub dwFlags: u32, + pub dwFFSamplePeriod: u32, + pub dwFFMinTimeResolution: u32, +} +impl ::core::marker::Copy for DIFFDEVICEATTRIBUTES {} +impl ::core::clone::Clone for DIFFDEVICEATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIFFOBJECTATTRIBUTES { + pub dwFFMaxForce: u32, + pub dwFFForceResolution: u32, +} +impl ::core::marker::Copy for DIFFOBJECTATTRIBUTES {} +impl ::core::clone::Clone for DIFFOBJECTATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIFILEEFFECT { + pub dwSize: u32, + pub GuidEffect: ::windows_sys::core::GUID, + pub lpDiEffect: *mut DIEFFECT, + pub szFriendlyName: [u8; 260], +} +impl ::core::marker::Copy for DIFILEEFFECT {} +impl ::core::clone::Clone for DIFILEEFFECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIHIDFFINITINFO { + pub dwSize: u32, + pub pwszDeviceInterface: ::windows_sys::core::PWSTR, + pub GuidInstance: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for DIHIDFFINITINFO {} +impl ::core::clone::Clone for DIHIDFFINITINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIJOYCONFIG { + pub dwSize: u32, + pub guidInstance: ::windows_sys::core::GUID, + pub hwc: JOYREGHWCONFIG, + pub dwGain: u32, + pub wszType: [u16; 256], + pub wszCallout: [u16; 256], + pub guidGameport: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for DIJOYCONFIG {} +impl ::core::clone::Clone for DIJOYCONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIJOYCONFIG_DX5 { + pub dwSize: u32, + pub guidInstance: ::windows_sys::core::GUID, + pub hwc: JOYREGHWCONFIG, + pub dwGain: u32, + pub wszType: [u16; 256], + pub wszCallout: [u16; 256], +} +impl ::core::marker::Copy for DIJOYCONFIG_DX5 {} +impl ::core::clone::Clone for DIJOYCONFIG_DX5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIJOYSTATE { + pub lX: i32, + pub lY: i32, + pub lZ: i32, + pub lRx: i32, + pub lRy: i32, + pub lRz: i32, + pub rglSlider: [i32; 2], + pub rgdwPOV: [u32; 4], + pub rgbButtons: [u8; 32], +} +impl ::core::marker::Copy for DIJOYSTATE {} +impl ::core::clone::Clone for DIJOYSTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIJOYSTATE2 { + pub lX: i32, + pub lY: i32, + pub lZ: i32, + pub lRx: i32, + pub lRy: i32, + pub lRz: i32, + pub rglSlider: [i32; 2], + pub rgdwPOV: [u32; 4], + pub rgbButtons: [u8; 128], + pub lVX: i32, + pub lVY: i32, + pub lVZ: i32, + pub lVRx: i32, + pub lVRy: i32, + pub lVRz: i32, + pub rglVSlider: [i32; 2], + pub lAX: i32, + pub lAY: i32, + pub lAZ: i32, + pub lARx: i32, + pub lARy: i32, + pub lARz: i32, + pub rglASlider: [i32; 2], + pub lFX: i32, + pub lFY: i32, + pub lFZ: i32, + pub lFRx: i32, + pub lFRy: i32, + pub lFRz: i32, + pub rglFSlider: [i32; 2], +} +impl ::core::marker::Copy for DIJOYSTATE2 {} +impl ::core::clone::Clone for DIJOYSTATE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIJOYTYPEINFO { + pub dwSize: u32, + pub hws: JOYREGHWSETTINGS, + pub clsidConfig: ::windows_sys::core::GUID, + pub wszDisplayName: [u16; 256], + pub wszCallout: [u16; 260], + pub wszHardwareId: [u16; 256], + pub dwFlags1: u32, + pub dwFlags2: u32, + pub wszMapFile: [u16; 256], +} +impl ::core::marker::Copy for DIJOYTYPEINFO {} +impl ::core::clone::Clone for DIJOYTYPEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIJOYTYPEINFO_DX5 { + pub dwSize: u32, + pub hws: JOYREGHWSETTINGS, + pub clsidConfig: ::windows_sys::core::GUID, + pub wszDisplayName: [u16; 256], + pub wszCallout: [u16; 260], +} +impl ::core::marker::Copy for DIJOYTYPEINFO_DX5 {} +impl ::core::clone::Clone for DIJOYTYPEINFO_DX5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIJOYTYPEINFO_DX6 { + pub dwSize: u32, + pub hws: JOYREGHWSETTINGS, + pub clsidConfig: ::windows_sys::core::GUID, + pub wszDisplayName: [u16; 256], + pub wszCallout: [u16; 260], + pub wszHardwareId: [u16; 256], + pub dwFlags1: u32, +} +impl ::core::marker::Copy for DIJOYTYPEINFO_DX6 {} +impl ::core::clone::Clone for DIJOYTYPEINFO_DX6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIJOYUSERVALUES { + pub dwSize: u32, + pub ruv: JOYREGUSERVALUES, + pub wszGlobalDriver: [u16; 256], + pub wszGameportEmulator: [u16; 256], +} +impl ::core::marker::Copy for DIJOYUSERVALUES {} +impl ::core::clone::Clone for DIJOYUSERVALUES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIMOUSESTATE { + pub lX: i32, + pub lY: i32, + pub lZ: i32, + pub rgbButtons: [u8; 4], +} +impl ::core::marker::Copy for DIMOUSESTATE {} +impl ::core::clone::Clone for DIMOUSESTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIMOUSESTATE2 { + pub lX: i32, + pub lY: i32, + pub lZ: i32, + pub rgbButtons: [u8; 8], +} +impl ::core::marker::Copy for DIMOUSESTATE2 {} +impl ::core::clone::Clone for DIMOUSESTATE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIOBJECTATTRIBUTES { + pub dwFlags: u32, + pub wUsagePage: u16, + pub wUsage: u16, +} +impl ::core::marker::Copy for DIOBJECTATTRIBUTES {} +impl ::core::clone::Clone for DIOBJECTATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIOBJECTCALIBRATION { + pub lMin: i32, + pub lCenter: i32, + pub lMax: i32, +} +impl ::core::marker::Copy for DIOBJECTCALIBRATION {} +impl ::core::clone::Clone for DIOBJECTCALIBRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIOBJECTDATAFORMAT { + pub pguid: *const ::windows_sys::core::GUID, + pub dwOfs: u32, + pub dwType: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for DIOBJECTDATAFORMAT {} +impl ::core::clone::Clone for DIOBJECTDATAFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIPERIODIC { + pub dwMagnitude: u32, + pub lOffset: i32, + pub dwPhase: u32, + pub dwPeriod: u32, +} +impl ::core::marker::Copy for DIPERIODIC {} +impl ::core::clone::Clone for DIPERIODIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIPOVCALIBRATION { + pub lMin: [i32; 5], + pub lMax: [i32; 5], +} +impl ::core::marker::Copy for DIPOVCALIBRATION {} +impl ::core::clone::Clone for DIPOVCALIBRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIPROPCAL { + pub diph: DIPROPHEADER, + pub lMin: i32, + pub lCenter: i32, + pub lMax: i32, +} +impl ::core::marker::Copy for DIPROPCAL {} +impl ::core::clone::Clone for DIPROPCAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIPROPCALPOV { + pub diph: DIPROPHEADER, + pub lMin: [i32; 5], + pub lMax: [i32; 5], +} +impl ::core::marker::Copy for DIPROPCALPOV {} +impl ::core::clone::Clone for DIPROPCALPOV { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIPROPCPOINTS { + pub diph: DIPROPHEADER, + pub dwCPointsNum: u32, + pub cp: [CPOINT; 8], +} +impl ::core::marker::Copy for DIPROPCPOINTS {} +impl ::core::clone::Clone for DIPROPCPOINTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIPROPDWORD { + pub diph: DIPROPHEADER, + pub dwData: u32, +} +impl ::core::marker::Copy for DIPROPDWORD {} +impl ::core::clone::Clone for DIPROPDWORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIPROPGUIDANDPATH { + pub diph: DIPROPHEADER, + pub guidClass: ::windows_sys::core::GUID, + pub wszPath: [u16; 260], +} +impl ::core::marker::Copy for DIPROPGUIDANDPATH {} +impl ::core::clone::Clone for DIPROPGUIDANDPATH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIPROPHEADER { + pub dwSize: u32, + pub dwHeaderSize: u32, + pub dwObj: u32, + pub dwHow: u32, +} +impl ::core::marker::Copy for DIPROPHEADER {} +impl ::core::clone::Clone for DIPROPHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIPROPPOINTER { + pub diph: DIPROPHEADER, + pub uData: usize, +} +impl ::core::marker::Copy for DIPROPPOINTER {} +impl ::core::clone::Clone for DIPROPPOINTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIPROPRANGE { + pub diph: DIPROPHEADER, + pub lMin: i32, + pub lMax: i32, +} +impl ::core::marker::Copy for DIPROPRANGE {} +impl ::core::clone::Clone for DIPROPRANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIPROPSTRING { + pub diph: DIPROPHEADER, + pub wsz: [u16; 260], +} +impl ::core::marker::Copy for DIPROPSTRING {} +impl ::core::clone::Clone for DIPROPSTRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIRAMPFORCE { + pub lStart: i32, + pub lEnd: i32, +} +impl ::core::marker::Copy for DIRAMPFORCE {} +impl ::core::clone::Clone for DIRAMPFORCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HIDD_ATTRIBUTES { + pub Size: u32, + pub VendorID: u16, + pub ProductID: u16, + pub VersionNumber: u16, +} +impl ::core::marker::Copy for HIDD_ATTRIBUTES {} +impl ::core::clone::Clone for HIDD_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct HIDD_CONFIGURATION { + pub cookie: *mut ::core::ffi::c_void, + pub size: u32, + pub RingBufferSize: u32, +} +impl ::core::marker::Copy for HIDD_CONFIGURATION {} +impl ::core::clone::Clone for HIDD_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HIDP_BUTTON_ARRAY_DATA { + pub ArrayIndex: u16, + pub On: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HIDP_BUTTON_ARRAY_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HIDP_BUTTON_ARRAY_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HIDP_BUTTON_CAPS { + pub UsagePage: u16, + pub ReportID: u8, + pub IsAlias: super::super::Foundation::BOOLEAN, + pub BitField: u16, + pub LinkCollection: u16, + pub LinkUsage: u16, + pub LinkUsagePage: u16, + pub IsRange: super::super::Foundation::BOOLEAN, + pub IsStringRange: super::super::Foundation::BOOLEAN, + pub IsDesignatorRange: super::super::Foundation::BOOLEAN, + pub IsAbsolute: super::super::Foundation::BOOLEAN, + pub ReportCount: u16, + pub Reserved2: u16, + pub Reserved: [u32; 9], + pub Anonymous: HIDP_BUTTON_CAPS_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HIDP_BUTTON_CAPS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HIDP_BUTTON_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union HIDP_BUTTON_CAPS_0 { + pub Range: HIDP_BUTTON_CAPS_0_1, + pub NotRange: HIDP_BUTTON_CAPS_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HIDP_BUTTON_CAPS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HIDP_BUTTON_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HIDP_BUTTON_CAPS_0_0 { + pub Usage: u16, + pub Reserved1: u16, + pub StringIndex: u16, + pub Reserved2: u16, + pub DesignatorIndex: u16, + pub Reserved3: u16, + pub DataIndex: u16, + pub Reserved4: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HIDP_BUTTON_CAPS_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HIDP_BUTTON_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HIDP_BUTTON_CAPS_0_1 { + pub UsageMin: u16, + pub UsageMax: u16, + pub StringMin: u16, + pub StringMax: u16, + pub DesignatorMin: u16, + pub DesignatorMax: u16, + pub DataIndexMin: u16, + pub DataIndexMax: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HIDP_BUTTON_CAPS_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HIDP_BUTTON_CAPS_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HIDP_CAPS { + pub Usage: u16, + pub UsagePage: u16, + pub InputReportByteLength: u16, + pub OutputReportByteLength: u16, + pub FeatureReportByteLength: u16, + pub Reserved: [u16; 17], + pub NumberLinkCollectionNodes: u16, + pub NumberInputButtonCaps: u16, + pub NumberInputValueCaps: u16, + pub NumberInputDataIndices: u16, + pub NumberOutputButtonCaps: u16, + pub NumberOutputValueCaps: u16, + pub NumberOutputDataIndices: u16, + pub NumberFeatureButtonCaps: u16, + pub NumberFeatureValueCaps: u16, + pub NumberFeatureDataIndices: u16, +} +impl ::core::marker::Copy for HIDP_CAPS {} +impl ::core::clone::Clone for HIDP_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HIDP_DATA { + pub DataIndex: u16, + pub Reserved: u16, + pub Anonymous: HIDP_DATA_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HIDP_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HIDP_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union HIDP_DATA_0 { + pub RawValue: u32, + pub On: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HIDP_DATA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HIDP_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct HIDP_EXTENDED_ATTRIBUTES { + pub NumGlobalUnknowns: u8, + pub Reserved: [u8; 3], + pub GlobalUnknowns: *mut HIDP_UNKNOWN_TOKEN, + pub Data: [u32; 1], +} +impl ::core::marker::Copy for HIDP_EXTENDED_ATTRIBUTES {} +impl ::core::clone::Clone for HIDP_EXTENDED_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HIDP_KEYBOARD_MODIFIER_STATE { + pub Anonymous: HIDP_KEYBOARD_MODIFIER_STATE_0, +} +impl ::core::marker::Copy for HIDP_KEYBOARD_MODIFIER_STATE {} +impl ::core::clone::Clone for HIDP_KEYBOARD_MODIFIER_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union HIDP_KEYBOARD_MODIFIER_STATE_0 { + pub Anonymous: HIDP_KEYBOARD_MODIFIER_STATE_0_0, + pub ul: u32, +} +impl ::core::marker::Copy for HIDP_KEYBOARD_MODIFIER_STATE_0 {} +impl ::core::clone::Clone for HIDP_KEYBOARD_MODIFIER_STATE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HIDP_KEYBOARD_MODIFIER_STATE_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for HIDP_KEYBOARD_MODIFIER_STATE_0_0 {} +impl ::core::clone::Clone for HIDP_KEYBOARD_MODIFIER_STATE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct HIDP_LINK_COLLECTION_NODE { + pub LinkUsage: u16, + pub LinkUsagePage: u16, + pub Parent: u16, + pub NumberOfChildren: u16, + pub NextSibling: u16, + pub FirstChild: u16, + pub _bitfield: u32, + pub UserContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for HIDP_LINK_COLLECTION_NODE {} +impl ::core::clone::Clone for HIDP_LINK_COLLECTION_NODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HIDP_UNKNOWN_TOKEN { + pub Token: u8, + pub Reserved: [u8; 3], + pub BitField: u32, +} +impl ::core::marker::Copy for HIDP_UNKNOWN_TOKEN {} +impl ::core::clone::Clone for HIDP_UNKNOWN_TOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HIDP_VALUE_CAPS { + pub UsagePage: u16, + pub ReportID: u8, + pub IsAlias: super::super::Foundation::BOOLEAN, + pub BitField: u16, + pub LinkCollection: u16, + pub LinkUsage: u16, + pub LinkUsagePage: u16, + pub IsRange: super::super::Foundation::BOOLEAN, + pub IsStringRange: super::super::Foundation::BOOLEAN, + pub IsDesignatorRange: super::super::Foundation::BOOLEAN, + pub IsAbsolute: super::super::Foundation::BOOLEAN, + pub HasNull: super::super::Foundation::BOOLEAN, + pub Reserved: u8, + pub BitSize: u16, + pub ReportCount: u16, + pub Reserved2: [u16; 5], + pub UnitsExp: u32, + pub Units: u32, + pub LogicalMin: i32, + pub LogicalMax: i32, + pub PhysicalMin: i32, + pub PhysicalMax: i32, + pub Anonymous: HIDP_VALUE_CAPS_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HIDP_VALUE_CAPS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HIDP_VALUE_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union HIDP_VALUE_CAPS_0 { + pub Range: HIDP_VALUE_CAPS_0_1, + pub NotRange: HIDP_VALUE_CAPS_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HIDP_VALUE_CAPS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HIDP_VALUE_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HIDP_VALUE_CAPS_0_0 { + pub Usage: u16, + pub Reserved1: u16, + pub StringIndex: u16, + pub Reserved2: u16, + pub DesignatorIndex: u16, + pub Reserved3: u16, + pub DataIndex: u16, + pub Reserved4: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HIDP_VALUE_CAPS_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HIDP_VALUE_CAPS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HIDP_VALUE_CAPS_0_1 { + pub UsageMin: u16, + pub UsageMax: u16, + pub StringMin: u16, + pub StringMax: u16, + pub DesignatorMin: u16, + pub DesignatorMax: u16, + pub DataIndexMin: u16, + pub DataIndexMax: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HIDP_VALUE_CAPS_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HIDP_VALUE_CAPS_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HID_COLLECTION_INFORMATION { + pub DescriptorSize: u32, + pub Polled: super::super::Foundation::BOOLEAN, + pub Reserved1: [u8; 1], + pub VendorID: u16, + pub ProductID: u16, + pub VersionNumber: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HID_COLLECTION_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HID_COLLECTION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HID_DRIVER_CONFIG { + pub Size: u32, + pub RingBufferSize: u32, +} +impl ::core::marker::Copy for HID_DRIVER_CONFIG {} +impl ::core::clone::Clone for HID_DRIVER_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HID_XFER_PACKET { + pub reportBuffer: *mut u8, + pub reportBufferLen: u32, + pub reportId: u8, +} +impl ::core::marker::Copy for HID_XFER_PACKET {} +impl ::core::clone::Clone for HID_XFER_PACKET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INDICATOR_LIST { + pub MakeCode: u16, + pub IndicatorFlags: u16, +} +impl ::core::marker::Copy for INDICATOR_LIST {} +impl ::core::clone::Clone for INDICATOR_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INPUT_BUTTON_ENABLE_INFO { + pub ButtonType: GPIOBUTTONS_BUTTON_TYPE, + pub Enabled: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INPUT_BUTTON_ENABLE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INPUT_BUTTON_ENABLE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOYCALIBRATE { + pub wXbase: u32, + pub wXdelta: u32, + pub wYbase: u32, + pub wYdelta: u32, + pub wZbase: u32, + pub wZdelta: u32, +} +impl ::core::marker::Copy for JOYCALIBRATE {} +impl ::core::clone::Clone for JOYCALIBRATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOYPOS { + pub dwX: u32, + pub dwY: u32, + pub dwZ: u32, + pub dwR: u32, + pub dwU: u32, + pub dwV: u32, +} +impl ::core::marker::Copy for JOYPOS {} +impl ::core::clone::Clone for JOYPOS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOYRANGE { + pub jpMin: JOYPOS, + pub jpMax: JOYPOS, + pub jpCenter: JOYPOS, +} +impl ::core::marker::Copy for JOYRANGE {} +impl ::core::clone::Clone for JOYRANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOYREGHWCONFIG { + pub hws: JOYREGHWSETTINGS, + pub dwUsageSettings: u32, + pub hwv: JOYREGHWVALUES, + pub dwType: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for JOYREGHWCONFIG {} +impl ::core::clone::Clone for JOYREGHWCONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOYREGHWSETTINGS { + pub dwFlags: u32, + pub dwNumButtons: u32, +} +impl ::core::marker::Copy for JOYREGHWSETTINGS {} +impl ::core::clone::Clone for JOYREGHWSETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOYREGHWVALUES { + pub jrvHardware: JOYRANGE, + pub dwPOVValues: [u32; 4], + pub dwCalFlags: u32, +} +impl ::core::marker::Copy for JOYREGHWVALUES {} +impl ::core::clone::Clone for JOYREGHWVALUES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOYREGUSERVALUES { + pub dwTimeOut: u32, + pub jrvRanges: JOYRANGE, + pub jpDeadZone: JOYPOS, +} +impl ::core::marker::Copy for JOYREGUSERVALUES {} +impl ::core::clone::Clone for JOYREGUSERVALUES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEYBOARD_ATTRIBUTES { + pub KeyboardIdentifier: KEYBOARD_ID, + pub KeyboardMode: u16, + pub NumberOfFunctionKeys: u16, + pub NumberOfIndicators: u16, + pub NumberOfKeysTotal: u16, + pub InputDataQueueLength: u32, + pub KeyRepeatMinimum: KEYBOARD_TYPEMATIC_PARAMETERS, + pub KeyRepeatMaximum: KEYBOARD_TYPEMATIC_PARAMETERS, +} +impl ::core::marker::Copy for KEYBOARD_ATTRIBUTES {} +impl ::core::clone::Clone for KEYBOARD_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEYBOARD_EXTENDED_ATTRIBUTES { + pub Version: u8, + pub FormFactor: u8, + pub KeyType: u8, + pub PhysicalLayout: u8, + pub VendorSpecificPhysicalLayout: u8, + pub IETFLanguageTagIndex: u8, + pub ImplementedInputAssistControls: u8, +} +impl ::core::marker::Copy for KEYBOARD_EXTENDED_ATTRIBUTES {} +impl ::core::clone::Clone for KEYBOARD_EXTENDED_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEYBOARD_ID { + pub Type: u8, + pub Subtype: u8, +} +impl ::core::marker::Copy for KEYBOARD_ID {} +impl ::core::clone::Clone for KEYBOARD_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEYBOARD_IME_STATUS { + pub UnitId: u16, + pub ImeOpen: u32, + pub ImeConvMode: u32, +} +impl ::core::marker::Copy for KEYBOARD_IME_STATUS {} +impl ::core::clone::Clone for KEYBOARD_IME_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEYBOARD_INDICATOR_PARAMETERS { + pub UnitId: u16, + pub LedFlags: u16, +} +impl ::core::marker::Copy for KEYBOARD_INDICATOR_PARAMETERS {} +impl ::core::clone::Clone for KEYBOARD_INDICATOR_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEYBOARD_INDICATOR_TRANSLATION { + pub NumberOfIndicatorKeys: u16, + pub IndicatorList: [INDICATOR_LIST; 1], +} +impl ::core::marker::Copy for KEYBOARD_INDICATOR_TRANSLATION {} +impl ::core::clone::Clone for KEYBOARD_INDICATOR_TRANSLATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEYBOARD_INPUT_DATA { + pub UnitId: u16, + pub MakeCode: u16, + pub Flags: u16, + pub Reserved: u16, + pub ExtraInformation: u32, +} +impl ::core::marker::Copy for KEYBOARD_INPUT_DATA {} +impl ::core::clone::Clone for KEYBOARD_INPUT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEYBOARD_TYPEMATIC_PARAMETERS { + pub UnitId: u16, + pub Rate: u16, + pub Delay: u16, +} +impl ::core::marker::Copy for KEYBOARD_TYPEMATIC_PARAMETERS {} +impl ::core::clone::Clone for KEYBOARD_TYPEMATIC_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEYBOARD_UNIT_ID_PARAMETER { + pub UnitId: u16, +} +impl ::core::marker::Copy for KEYBOARD_UNIT_ID_PARAMETER {} +impl ::core::clone::Clone for KEYBOARD_UNIT_ID_PARAMETER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MOUSE_ATTRIBUTES { + pub MouseIdentifier: u16, + pub NumberOfButtons: u16, + pub SampleRate: u16, + pub InputDataQueueLength: u32, +} +impl ::core::marker::Copy for MOUSE_ATTRIBUTES {} +impl ::core::clone::Clone for MOUSE_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MOUSE_INPUT_DATA { + pub UnitId: u16, + pub Flags: u16, + pub Anonymous: MOUSE_INPUT_DATA_0, + pub RawButtons: u32, + pub LastX: i32, + pub LastY: i32, + pub ExtraInformation: u32, +} +impl ::core::marker::Copy for MOUSE_INPUT_DATA {} +impl ::core::clone::Clone for MOUSE_INPUT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MOUSE_INPUT_DATA_0 { + pub Buttons: u32, + pub Anonymous: MOUSE_INPUT_DATA_0_0, +} +impl ::core::marker::Copy for MOUSE_INPUT_DATA_0 {} +impl ::core::clone::Clone for MOUSE_INPUT_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MOUSE_INPUT_DATA_0_0 { + pub ButtonFlags: u16, + pub ButtonData: u16, +} +impl ::core::marker::Copy for MOUSE_INPUT_DATA_0_0 {} +impl ::core::clone::Clone for MOUSE_INPUT_DATA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MOUSE_UNIT_ID_PARAMETER { + pub UnitId: u16, +} +impl ::core::marker::Copy for MOUSE_UNIT_ID_PARAMETER {} +impl ::core::clone::Clone for MOUSE_UNIT_ID_PARAMETER { + fn clone(&self) -> Self { + *self + } +} +pub type PHIDP_PREPARSED_DATA = isize; +#[repr(C)] +pub struct USAGE_AND_PAGE { + pub Usage: u16, + pub UsagePage: u16, +} +impl ::core::marker::Copy for USAGE_AND_PAGE {} +impl ::core::clone::Clone for USAGE_AND_PAGE { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDICONFIGUREDEVICESCALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDIENUMCREATEDEFFECTOBJECTSCALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDIENUMDEVICEOBJECTSCALLBACKA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDIENUMDEVICEOBJECTSCALLBACKW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDIENUMDEVICESBYSEMANTICSCBA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDIENUMDEVICESBYSEMANTICSCBW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDIENUMDEVICESCALLBACKA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDIENUMDEVICESCALLBACKW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDIENUMEFFECTSCALLBACKA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDIENUMEFFECTSCALLBACKW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDIENUMEFFECTSINFILECALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDIJOYTYPECALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFNSHOWJOYCPL = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_HidP_GetVersionInternal = ::core::option::Option super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PHIDP_INSERT_SCANCODES = ::core::option::Option super::super::Foundation::BOOLEAN>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/PortableDevices/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/PortableDevices/mod.rs new file mode 100644 index 000000000..f224b7e6a --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/PortableDevices/mod.rs @@ -0,0 +1,2617 @@ +::windows_targets::link!("dmprocessxmlfiltered.dll" "system" fn DMProcessConfigXMLFiltered(pszxmlin : ::windows_sys::core::PCWSTR, rgszallowedcspnodes : *const ::windows_sys::core::PCWSTR, dwnumallowedcspnodes : u32, pbstrxmlout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +pub type IConnectionRequestCallback = *mut ::core::ffi::c_void; +pub type IEnumPortableDeviceConnectors = *mut ::core::ffi::c_void; +pub type IEnumPortableDeviceObjectIDs = *mut ::core::ffi::c_void; +pub type IMediaRadioManager = *mut ::core::ffi::c_void; +pub type IMediaRadioManagerNotifySink = *mut ::core::ffi::c_void; +pub type IPortableDevice = *mut ::core::ffi::c_void; +pub type IPortableDeviceCapabilities = *mut ::core::ffi::c_void; +pub type IPortableDeviceConnector = *mut ::core::ffi::c_void; +pub type IPortableDeviceContent = *mut ::core::ffi::c_void; +pub type IPortableDeviceContent2 = *mut ::core::ffi::c_void; +pub type IPortableDeviceDataStream = *mut ::core::ffi::c_void; +pub type IPortableDeviceDispatchFactory = *mut ::core::ffi::c_void; +pub type IPortableDeviceEventCallback = *mut ::core::ffi::c_void; +pub type IPortableDeviceKeyCollection = *mut ::core::ffi::c_void; +pub type IPortableDeviceManager = *mut ::core::ffi::c_void; +pub type IPortableDevicePropVariantCollection = *mut ::core::ffi::c_void; +pub type IPortableDeviceProperties = *mut ::core::ffi::c_void; +pub type IPortableDevicePropertiesBulk = *mut ::core::ffi::c_void; +pub type IPortableDevicePropertiesBulkCallback = *mut ::core::ffi::c_void; +pub type IPortableDeviceResources = *mut ::core::ffi::c_void; +pub type IPortableDeviceService = *mut ::core::ffi::c_void; +pub type IPortableDeviceServiceActivation = *mut ::core::ffi::c_void; +pub type IPortableDeviceServiceCapabilities = *mut ::core::ffi::c_void; +pub type IPortableDeviceServiceManager = *mut ::core::ffi::c_void; +pub type IPortableDeviceServiceMethodCallback = *mut ::core::ffi::c_void; +pub type IPortableDeviceServiceMethods = *mut ::core::ffi::c_void; +pub type IPortableDeviceServiceOpenCallback = *mut ::core::ffi::c_void; +pub type IPortableDeviceUnitsStream = *mut ::core::ffi::c_void; +pub type IPortableDeviceValues = *mut ::core::ffi::c_void; +pub type IPortableDeviceValuesCollection = *mut ::core::ffi::c_void; +pub type IPortableDeviceWebControl = *mut ::core::ffi::c_void; +pub type IRadioInstance = *mut ::core::ffi::c_void; +pub type IRadioInstanceCollection = *mut ::core::ffi::c_void; +pub type IWpdSerializer = *mut ::core::ffi::c_void; +pub const CLSID_WPD_NAMESPACE_EXTENSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x35786d3c_b075_49b9_88dd_029876e11c01); +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_MTPBTH_IsConnected: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xea1237fa_589d_4472_84e4_0abe36fd62ef), pid: 2 }; +pub const DEVSVCTYPE_ABSTRACT: u32 = 1u32; +pub const DEVSVCTYPE_DEFAULT: u32 = 0u32; +pub const DEVSVC_SERVICEINFO_VERSION: u32 = 100u32; +pub const DRS_HW_RADIO_OFF: DEVICE_RADIO_STATE = 2i32; +pub const DRS_HW_RADIO_OFF_UNCONTROLLABLE: DEVICE_RADIO_STATE = 6i32; +pub const DRS_HW_RADIO_ON_UNCONTROLLABLE: DEVICE_RADIO_STATE = 4i32; +pub const DRS_RADIO_INVALID: DEVICE_RADIO_STATE = 5i32; +pub const DRS_RADIO_MAX: DEVICE_RADIO_STATE = 6i32; +pub const DRS_RADIO_ON: DEVICE_RADIO_STATE = 0i32; +pub const DRS_SW_HW_RADIO_OFF: DEVICE_RADIO_STATE = 3i32; +pub const DRS_SW_RADIO_OFF: DEVICE_RADIO_STATE = 1i32; +pub const ENUM_AnchorResults_AnchorStateInvalid: u32 = 1u32; +pub const ENUM_AnchorResults_AnchorStateNormal: u32 = 0u32; +pub const ENUM_AnchorResults_AnchorStateOld: u32 = 2u32; +pub const ENUM_AnchorResults_ItemStateChanged: u32 = 4u32; +pub const ENUM_AnchorResults_ItemStateCreated: u32 = 2u32; +pub const ENUM_AnchorResults_ItemStateDeleted: u32 = 1u32; +pub const ENUM_AnchorResults_ItemStateInvalid: u32 = 0u32; +pub const ENUM_AnchorResults_ItemStateUpdated: u32 = 3u32; +pub const ENUM_CalendarObj_BusyStatusBusy: u32 = 1u32; +pub const ENUM_CalendarObj_BusyStatusFree: u32 = 0u32; +pub const ENUM_CalendarObj_BusyStatusOutOfOffice: u32 = 2u32; +pub const ENUM_CalendarObj_BusyStatusTentative: u32 = 3u32; +pub const ENUM_DeviceMetadataObj_DefaultCABFalse: u32 = 0u32; +pub const ENUM_DeviceMetadataObj_DefaultCABTrue: u32 = 1u32; +pub const ENUM_MessageObj_PatternInstanceFirst: u32 = 1u32; +pub const ENUM_MessageObj_PatternInstanceFourth: u32 = 4u32; +pub const ENUM_MessageObj_PatternInstanceLast: u32 = 5u32; +pub const ENUM_MessageObj_PatternInstanceNone: u32 = 0u32; +pub const ENUM_MessageObj_PatternInstanceSecond: u32 = 2u32; +pub const ENUM_MessageObj_PatternInstanceThird: u32 = 3u32; +pub const ENUM_MessageObj_PatternTypeDaily: u32 = 1u32; +pub const ENUM_MessageObj_PatternTypeMonthly: u32 = 3u32; +pub const ENUM_MessageObj_PatternTypeWeekly: u32 = 2u32; +pub const ENUM_MessageObj_PatternTypeYearly: u32 = 4u32; +pub const ENUM_MessageObj_PriorityHighest: u32 = 2u32; +pub const ENUM_MessageObj_PriorityLowest: u32 = 0u32; +pub const ENUM_MessageObj_PriorityNormal: u32 = 1u32; +pub const ENUM_MessageObj_ReadFalse: u32 = 0u32; +pub const ENUM_MessageObj_ReadTrue: u32 = 255u32; +pub const ENUM_StatusSvc_ChargingActive: u32 = 1u32; +pub const ENUM_StatusSvc_ChargingInactive: u32 = 0u32; +pub const ENUM_StatusSvc_ChargingUnknown: u32 = 2u32; +pub const ENUM_StatusSvc_RoamingActive: u32 = 1u32; +pub const ENUM_StatusSvc_RoamingInactive: u32 = 0u32; +pub const ENUM_StatusSvc_RoamingUnknown: u32 = 2u32; +pub const ENUM_SyncSvc_SyncObjectReferencesDisabled: u32 = 0u32; +pub const ENUM_SyncSvc_SyncObjectReferencesEnabled: u32 = 255u32; +pub const ENUM_TaskObj_CompleteFalse: u32 = 0u32; +pub const ENUM_TaskObj_CompleteTrue: u32 = 255u32; +pub const E_WPD_DEVICE_ALREADY_OPENED: ::windows_sys::core::HRESULT = -2144731135i32; +pub const E_WPD_DEVICE_IS_HUNG: ::windows_sys::core::HRESULT = -2144731130i32; +pub const E_WPD_DEVICE_NOT_OPEN: ::windows_sys::core::HRESULT = -2144731134i32; +pub const E_WPD_OBJECT_ALREADY_ATTACHED_TO_DEVICE: ::windows_sys::core::HRESULT = -2144731133i32; +pub const E_WPD_OBJECT_ALREADY_ATTACHED_TO_SERVICE: ::windows_sys::core::HRESULT = -2144730934i32; +pub const E_WPD_OBJECT_NOT_ATTACHED_TO_DEVICE: ::windows_sys::core::HRESULT = -2144731132i32; +pub const E_WPD_OBJECT_NOT_ATTACHED_TO_SERVICE: ::windows_sys::core::HRESULT = -2144730933i32; +pub const E_WPD_OBJECT_NOT_COMMITED: ::windows_sys::core::HRESULT = -2144731131i32; +pub const E_WPD_SERVICE_ALREADY_OPENED: ::windows_sys::core::HRESULT = -2144730936i32; +pub const E_WPD_SERVICE_BAD_PARAMETER_ORDER: ::windows_sys::core::HRESULT = -2144730932i32; +pub const E_WPD_SERVICE_NOT_OPEN: ::windows_sys::core::HRESULT = -2144730935i32; +pub const E_WPD_SMS_INVALID_MESSAGE_BODY: ::windows_sys::core::HRESULT = -2144731035i32; +pub const E_WPD_SMS_INVALID_RECIPIENT: ::windows_sys::core::HRESULT = -2144731036i32; +pub const E_WPD_SMS_SERVICE_UNAVAILABLE: ::windows_sys::core::HRESULT = -2144731034i32; +pub const EnumBthMtpConnectors: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa1570149_e645_4f43_8b0d_409b061db2fc); +pub const FACILITY_WPD: u32 = 42u32; +pub const FLAG_MessageObj_DayOfWeekFriday: u32 = 32u32; +pub const FLAG_MessageObj_DayOfWeekMonday: u32 = 2u32; +pub const FLAG_MessageObj_DayOfWeekNone: u32 = 0u32; +pub const FLAG_MessageObj_DayOfWeekSaturday: u32 = 64u32; +pub const FLAG_MessageObj_DayOfWeekSunday: u32 = 1u32; +pub const FLAG_MessageObj_DayOfWeekThursday: u32 = 16u32; +pub const FLAG_MessageObj_DayOfWeekTuesday: u32 = 4u32; +pub const FLAG_MessageObj_DayOfWeekWednesday: u32 = 8u32; +pub const GUID_DEVINTERFACE_WPD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6ac27878_a6fa_4155_ba85_f98f491d4f33); +pub const GUID_DEVINTERFACE_WPD_PRIVATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba0c718f_4ded_49b7_bdd3_fabe28661211); +pub const GUID_DEVINTERFACE_WPD_SERVICE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9ef44f80_3d64_4246_a6aa_206f328d1edc); +pub const IOCTL_WPD_MESSAGE_READWRITE_ACCESS: u32 = 4243720u32; +pub const IOCTL_WPD_MESSAGE_READ_ACCESS: u32 = 4210952u32; +pub const NAME_3GPP2File: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("3GPP2File"); +pub const NAME_3GPPFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("3GPPFile"); +pub const NAME_AACFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AACFile"); +pub const NAME_AIFFFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AIFFFile"); +pub const NAME_AMRFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AMRFile"); +pub const NAME_ASFFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ASFFile"); +pub const NAME_ASXPlaylist: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ASXPlaylist"); +pub const NAME_ATSCTSFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ATSCTSFile"); +pub const NAME_AVCHDFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AVCHDFile"); +pub const NAME_AVIFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AVIFile"); +pub const NAME_AbstractActivity: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractActivity"); +pub const NAME_AbstractActivityOccurrence: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractActivityOccurrence"); +pub const NAME_AbstractAudioAlbum: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractAudioAlbum"); +pub const NAME_AbstractAudioPlaylist: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractAudioPlaylist"); +pub const NAME_AbstractAudioVideoAlbum: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractAudioVideoAlbum"); +pub const NAME_AbstractChapteredProduction: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractChapteredProduction"); +pub const NAME_AbstractContact: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractContact"); +pub const NAME_AbstractContactGroup: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractContactGroup"); +pub const NAME_AbstractDocument: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractDocument"); +pub const NAME_AbstractImageAlbum: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractImageAlbum"); +pub const NAME_AbstractMediacast: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractMediacast"); +pub const NAME_AbstractMessage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractMessage"); +pub const NAME_AbstractMessageFolder: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractMessageFolder"); +pub const NAME_AbstractMultimediaAlbum: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractMultimediaAlbum"); +pub const NAME_AbstractNote: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractNote"); +pub const NAME_AbstractTask: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractTask"); +pub const NAME_AbstractVideoAlbum: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractVideoAlbum"); +pub const NAME_AbstractVideoPlaylist: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AbstractVideoPlaylist"); +pub const NAME_AnchorResults: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AnchorResults"); +pub const NAME_AnchorResults_Anchor: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Anchor"); +pub const NAME_AnchorResults_AnchorState: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AnchorState"); +pub const NAME_AnchorResults_ResultObjectID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResultObjectID"); +pub const NAME_AnchorSyncKnowledge: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AnchorSyncKnowledge"); +pub const NAME_AnchorSyncSvc: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AnchorSync"); +pub const NAME_AnchorSyncSvc_BeginSync: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BeginSync"); +pub const NAME_AnchorSyncSvc_CurrentAnchor: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AnchorCurrentAnchor"); +pub const NAME_AnchorSyncSvc_EndSync: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EndSync"); +pub const NAME_AnchorSyncSvc_FilterType: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FilterType"); +pub const NAME_AnchorSyncSvc_GetChangesSinceAnchor: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GetChangesSinceAnchor"); +pub const NAME_AnchorSyncSvc_KnowledgeObjectID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AnchorKnowledgeObjectID"); +pub const NAME_AnchorSyncSvc_LastSyncProxyID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AnchorLastSyncProxyID"); +pub const NAME_AnchorSyncSvc_LocalOnlyDelete: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LocalOnlyDelete"); +pub const NAME_AnchorSyncSvc_ProviderVersion: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AnchorProviderVersion"); +pub const NAME_AnchorSyncSvc_ReplicaID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AnchorReplicaID"); +pub const NAME_AnchorSyncSvc_SyncFormat: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SyncFormat"); +pub const NAME_AnchorSyncSvc_VersionProps: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AnchorVersionProps"); +pub const NAME_Association: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Association"); +pub const NAME_AudibleFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AudibleFile"); +pub const NAME_AudioObj_AudioBitDepth: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AudioBitDepth"); +pub const NAME_AudioObj_AudioBitRate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AudioBitRate"); +pub const NAME_AudioObj_AudioBlockAlignment: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AudioBlockAlignment"); +pub const NAME_AudioObj_AudioFormatCode: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AudioFormatCode"); +pub const NAME_AudioObj_Channels: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Channels"); +pub const NAME_AudioObj_Lyrics: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Lyrics"); +pub const NAME_BMPImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BMPImage"); +pub const NAME_CIFFImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CIFFImage"); +pub const NAME_CalendarObj_Accepted: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Accepted"); +pub const NAME_CalendarObj_BeginDateTime: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BeginDateTime"); +pub const NAME_CalendarObj_BusyStatus: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusyStatus"); +pub const NAME_CalendarObj_Declined: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Declined"); +pub const NAME_CalendarObj_EndDateTime: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EndDateTime"); +pub const NAME_CalendarObj_Location: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Location"); +pub const NAME_CalendarObj_PatternDuration: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PatternDuration"); +pub const NAME_CalendarObj_PatternStartTime: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PatternStartTime"); +pub const NAME_CalendarObj_ReminderOffset: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReminderOffset"); +pub const NAME_CalendarObj_Tentative: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Tentative"); +pub const NAME_CalendarObj_TimeZone: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TimeZone"); +pub const NAME_CalendarSvc: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Calendar"); +pub const NAME_CalendarSvc_SyncWindowEnd: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SyncWindowEnd"); +pub const NAME_CalendarSvc_SyncWindowStart: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SyncWindowStart"); +pub const NAME_ContactObj_AnniversaryDate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AnniversaryDate"); +pub const NAME_ContactObj_Assistant: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Assistant"); +pub const NAME_ContactObj_Birthdate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Birthdate"); +pub const NAME_ContactObj_BusinessAddressCity: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusinessAddressCity"); +pub const NAME_ContactObj_BusinessAddressCountry: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusinessAddressCountry"); +pub const NAME_ContactObj_BusinessAddressFull: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusinessAddressFull"); +pub const NAME_ContactObj_BusinessAddressLine2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusinessAddressLine2"); +pub const NAME_ContactObj_BusinessAddressPostalCode: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusinessAddressPostalCode"); +pub const NAME_ContactObj_BusinessAddressRegion: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusinessAddressRegion"); +pub const NAME_ContactObj_BusinessAddressStreet: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusinessAddressStreet"); +pub const NAME_ContactObj_BusinessEmail: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusinessEmail"); +pub const NAME_ContactObj_BusinessEmail2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusinessEmail2"); +pub const NAME_ContactObj_BusinessFax: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusinessFax"); +pub const NAME_ContactObj_BusinessPhone: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusinessPhone"); +pub const NAME_ContactObj_BusinessPhone2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusinessPhone2"); +pub const NAME_ContactObj_BusinessWebAddress: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusinessWebAddress"); +pub const NAME_ContactObj_Children: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Children"); +pub const NAME_ContactObj_Email: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Email"); +pub const NAME_ContactObj_FamilyName: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FamilyName"); +pub const NAME_ContactObj_Fax: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Fax"); +pub const NAME_ContactObj_GivenName: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GivenName"); +pub const NAME_ContactObj_IMAddress: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IMAddress"); +pub const NAME_ContactObj_IMAddress2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IMAddress2"); +pub const NAME_ContactObj_IMAddress3: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IMAddress3"); +pub const NAME_ContactObj_MiddleNames: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MiddleNames"); +pub const NAME_ContactObj_MobilePhone: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MobilePhone"); +pub const NAME_ContactObj_MobilePhone2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MobilePhone2"); +pub const NAME_ContactObj_Organization: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Organization"); +pub const NAME_ContactObj_OtherAddressCity: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OtherAddressCity"); +pub const NAME_ContactObj_OtherAddressCountry: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OtherAddressCountry"); +pub const NAME_ContactObj_OtherAddressFull: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OtherAddressFull"); +pub const NAME_ContactObj_OtherAddressLine2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OtherAddressLine2"); +pub const NAME_ContactObj_OtherAddressPostalCode: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OtherAddressPostalCode"); +pub const NAME_ContactObj_OtherAddressRegion: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OtherAddressRegion"); +pub const NAME_ContactObj_OtherAddressStreet: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OtherAddressStreet"); +pub const NAME_ContactObj_OtherEmail: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OtherEmail"); +pub const NAME_ContactObj_OtherPhone: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OtherPhone"); +pub const NAME_ContactObj_Pager: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Pager"); +pub const NAME_ContactObj_PersonalAddressCity: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalAddressCity"); +pub const NAME_ContactObj_PersonalAddressCountry: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalAddressCountry"); +pub const NAME_ContactObj_PersonalAddressFull: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalAddressFull"); +pub const NAME_ContactObj_PersonalAddressLine2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalAddressLine2"); +pub const NAME_ContactObj_PersonalAddressPostalCode: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalAddressPostalCode"); +pub const NAME_ContactObj_PersonalAddressRegion: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalAddressRegion"); +pub const NAME_ContactObj_PersonalAddressStreet: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalAddressStreet"); +pub const NAME_ContactObj_PersonalEmail: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalEmail"); +pub const NAME_ContactObj_PersonalEmail2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalEmail2"); +pub const NAME_ContactObj_PersonalFax: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalFax"); +pub const NAME_ContactObj_PersonalPhone: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalPhone"); +pub const NAME_ContactObj_PersonalPhone2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalPhone2"); +pub const NAME_ContactObj_PersonalWebAddress: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalWebAddress"); +pub const NAME_ContactObj_Phone: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Phone"); +pub const NAME_ContactObj_PhoneticFamilyName: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PhoneticFamilyName"); +pub const NAME_ContactObj_PhoneticGivenName: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PhoneticGivenName"); +pub const NAME_ContactObj_PhoneticOrganization: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PhoneticOrganization"); +pub const NAME_ContactObj_Ringtone: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Ringtone"); +pub const NAME_ContactObj_Role: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Role"); +pub const NAME_ContactObj_Spouse: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Spouse"); +pub const NAME_ContactObj_Suffix: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Suffix"); +pub const NAME_ContactObj_Title: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Title"); +pub const NAME_ContactObj_WebAddress: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WebAddress"); +pub const NAME_ContactSvc_SyncWithPhoneOnly: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FilterType"); +pub const NAME_ContactsSvc: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Contacts"); +pub const NAME_DPOFDocument: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DPOFDocument"); +pub const NAME_DVBTSFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DVBTSFile"); +pub const NAME_DeviceExecutable: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceExecutable"); +pub const NAME_DeviceMetadataCAB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceMetadataCAB"); +pub const NAME_DeviceMetadataObj_ContentID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ContentID"); +pub const NAME_DeviceMetadataObj_DefaultCAB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultCAB"); +pub const NAME_DeviceMetadataSvc: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Metadata"); +pub const NAME_DeviceScript: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceScript"); +pub const NAME_EXIFImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EXIFImage"); +pub const NAME_ExcelDocument: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExcelDocument"); +pub const NAME_FLACFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FLACFile"); +pub const NAME_FirmwareFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FirmwareFile"); +pub const NAME_FlashPixImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FlashPixImage"); +pub const NAME_FullEnumSyncKnowledge: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FullEnumSyncKnowledge"); +pub const NAME_FullEnumSyncSvc: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FullEnumSync"); +pub const NAME_FullEnumSyncSvc_BeginSync: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BeginSync"); +pub const NAME_FullEnumSyncSvc_EndSync: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EndSync"); +pub const NAME_FullEnumSyncSvc_FilterType: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FilterType"); +pub const NAME_FullEnumSyncSvc_KnowledgeObjectID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FullEnumKnowledgeObjectID"); +pub const NAME_FullEnumSyncSvc_LastSyncProxyID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FullEnumLastSyncProxyID"); +pub const NAME_FullEnumSyncSvc_LocalOnlyDelete: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LocalOnlyDelete"); +pub const NAME_FullEnumSyncSvc_ProviderVersion: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FullEnumProviderVersion"); +pub const NAME_FullEnumSyncSvc_ReplicaID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FullEnumReplicaID"); +pub const NAME_FullEnumSyncSvc_SyncFormat: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SyncFormat"); +pub const NAME_FullEnumSyncSvc_VersionProps: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FullEnumVersionProps"); +pub const NAME_GIFImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GIFImage"); +pub const NAME_GenericObj_AllowedFolderContents: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AllowedFolderContents"); +pub const NAME_GenericObj_AssociationDesc: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AssociationDesc"); +pub const NAME_GenericObj_AssociationType: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AssociationType"); +pub const NAME_GenericObj_Copyright: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Copyright"); +pub const NAME_GenericObj_Corrupt: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Corrupt"); +pub const NAME_GenericObj_DRMStatus: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRMStatus"); +pub const NAME_GenericObj_DateAccessed: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DateAccessed"); +pub const NAME_GenericObj_DateAdded: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DateAdded"); +pub const NAME_GenericObj_DateAuthored: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DateAuthored"); +pub const NAME_GenericObj_DateCreated: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DateCreated"); +pub const NAME_GenericObj_DateModified: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DateModified"); +pub const NAME_GenericObj_DateRevised: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DateRevised"); +pub const NAME_GenericObj_Description: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const NAME_GenericObj_Hidden: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Hidden"); +pub const NAME_GenericObj_Keywords: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Keywords"); +pub const NAME_GenericObj_LanguageLocale: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LanguageLocale"); +pub const NAME_GenericObj_Name: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const NAME_GenericObj_NonConsumable: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NonConsumable"); +pub const NAME_GenericObj_ObjectFileName: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ObjectFileName"); +pub const NAME_GenericObj_ObjectFormat: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ObjectFormat"); +pub const NAME_GenericObj_ObjectID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ObjectID"); +pub const NAME_GenericObj_ObjectSize: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ObjectSize"); +pub const NAME_GenericObj_ParentID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ParentID"); +pub const NAME_GenericObj_PersistentUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersistentUID"); +pub const NAME_GenericObj_PropertyBag: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PropertyBag"); +pub const NAME_GenericObj_ProtectionStatus: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProtectionStatus"); +pub const NAME_GenericObj_ReferenceParentID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReferenceParentID"); +pub const NAME_GenericObj_StorageID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StorageID"); +pub const NAME_GenericObj_SubDescription: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SubDescription"); +pub const NAME_GenericObj_SyncID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SyncID"); +pub const NAME_GenericObj_SystemObject: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SystemObject"); +pub const NAME_GenericObj_TimeToLive: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TimeToLive"); +pub const NAME_HDPhotoImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HDPhotoImage"); +pub const NAME_HTMLDocument: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HTMLDocument"); +pub const NAME_HintsSvc: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Hints"); +pub const NAME_ICalendarActivity: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ICalendar"); +pub const NAME_ImageObj_Aperature: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Aperature"); +pub const NAME_ImageObj_Exposure: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Exposure"); +pub const NAME_ImageObj_ISOSpeed: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ISOSpeed"); +pub const NAME_ImageObj_ImageBitDepth: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ImageBitDepth"); +pub const NAME_ImageObj_IsColorCorrected: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsColorCorrected"); +pub const NAME_ImageObj_IsCropped: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsCropped"); +pub const NAME_JFIFImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("JFIFImage"); +pub const NAME_JP2Image: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("JP2Image"); +pub const NAME_JPEGXRImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("JPEGXRImage"); +pub const NAME_JPXImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("JPXImage"); +pub const NAME_M3UPlaylist: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("M3UPlaylist"); +pub const NAME_MHTDocument: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MHTDocument"); +pub const NAME_MP3File: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MP3File"); +pub const NAME_MPEG2File: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MPEG2File"); +pub const NAME_MPEG4File: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MPEG4File"); +pub const NAME_MPEGFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MPEGFile"); +pub const NAME_MPLPlaylist: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MPLPlaylist"); +pub const NAME_MediaObj_AlbumArtist: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AlbumArtist"); +pub const NAME_MediaObj_AlbumName: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AlbumName"); +pub const NAME_MediaObj_Artist: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Artist"); +pub const NAME_MediaObj_AudioEncodingProfile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AudioEncodingProfile"); +pub const NAME_MediaObj_BitRateType: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BitRateType"); +pub const NAME_MediaObj_BookmarkByte: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BookmarkByte"); +pub const NAME_MediaObj_BookmarkObject: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BookmarkObject"); +pub const NAME_MediaObj_BookmarkTime: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BookmarkTime"); +pub const NAME_MediaObj_BufferSize: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BufferSize"); +pub const NAME_MediaObj_Composer: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Composer"); +pub const NAME_MediaObj_Credits: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Credits"); +pub const NAME_MediaObj_DateOriginalRelease: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DateOriginalRelease"); +pub const NAME_MediaObj_Duration: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Duration"); +pub const NAME_MediaObj_Editor: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Editor"); +pub const NAME_MediaObj_EffectiveRating: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EffectiveRating"); +pub const NAME_MediaObj_EncodingProfile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EncodingProfile"); +pub const NAME_MediaObj_EncodingQuality: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EncodingQuality"); +pub const NAME_MediaObj_Genre: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Genre"); +pub const NAME_MediaObj_GeographicOrigin: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GeographicOrigin"); +pub const NAME_MediaObj_Height: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Height"); +pub const NAME_MediaObj_MediaType: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MediaType"); +pub const NAME_MediaObj_MediaUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MediaUID"); +pub const NAME_MediaObj_Mood: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Mood"); +pub const NAME_MediaObj_Owner: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Owner"); +pub const NAME_MediaObj_ParentalRating: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ParentalRating"); +pub const NAME_MediaObj_Producer: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Producer"); +pub const NAME_MediaObj_SampleRate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SampleRate"); +pub const NAME_MediaObj_SkipCount: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SkipCount"); +pub const NAME_MediaObj_SubscriptionContentID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SubscriptionContentID"); +pub const NAME_MediaObj_Subtitle: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Subtitle"); +pub const NAME_MediaObj_TotalBitRate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TotalBitRate"); +pub const NAME_MediaObj_Track: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Track"); +pub const NAME_MediaObj_URLLink: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("URLLink"); +pub const NAME_MediaObj_URLSource: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("URLSource"); +pub const NAME_MediaObj_UseCount: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UseCount"); +pub const NAME_MediaObj_UserRating: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UserRating"); +pub const NAME_MediaObj_WebMaster: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WebMaster"); +pub const NAME_MediaObj_Width: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Width"); +pub const NAME_MessageObj_BCC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BCC"); +pub const NAME_MessageObj_Body: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Body"); +pub const NAME_MessageObj_CC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CC"); +pub const NAME_MessageObj_Category: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Category"); +pub const NAME_MessageObj_PatternDayOfMonth: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PatternDayOfMonth"); +pub const NAME_MessageObj_PatternDayOfWeek: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PatternDayOfWeek"); +pub const NAME_MessageObj_PatternDeleteDates: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PatternDeleteDates"); +pub const NAME_MessageObj_PatternInstance: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PatternInstance"); +pub const NAME_MessageObj_PatternMonthOfYear: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PatternMonthOfYear"); +pub const NAME_MessageObj_PatternOriginalDateTime: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PatternOriginalDateTime"); +pub const NAME_MessageObj_PatternPeriod: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PatternPeriod"); +pub const NAME_MessageObj_PatternType: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PatternType"); +pub const NAME_MessageObj_PatternValidEndDate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PatternValidEndDate"); +pub const NAME_MessageObj_PatternValidStartDate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PatternValidStartDate"); +pub const NAME_MessageObj_Priority: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Priority"); +pub const NAME_MessageObj_Read: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Read"); +pub const NAME_MessageObj_ReceivedTime: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReceivedTime"); +pub const NAME_MessageObj_Sender: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Sender"); +pub const NAME_MessageObj_Subject: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Subject"); +pub const NAME_MessageObj_To: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("To"); +pub const NAME_MessageSvc: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Message"); +pub const NAME_NotesSvc: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Notes"); +pub const NAME_OGGFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OGGFile"); +pub const NAME_PCDImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCDImage"); +pub const NAME_PICTImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PICTImage"); +pub const NAME_PNGImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PNGImage"); +pub const NAME_PSLPlaylist: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PSLPlaylist"); +pub const NAME_PowerPointDocument: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PowerPointDocument"); +pub const NAME_QCELPFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("QCELPFile"); +pub const NAME_RingtonesSvc: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Ringtones"); +pub const NAME_RingtonesSvc_DefaultRingtone: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultRingtone"); +pub const NAME_Services_ServiceDisplayName: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServiceDisplayName"); +pub const NAME_Services_ServiceIcon: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServiceIcon"); +pub const NAME_Services_ServiceLocale: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServiceLocale"); +pub const NAME_StatusSvc: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Status"); +pub const NAME_StatusSvc_BatteryLife: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BatteryLife"); +pub const NAME_StatusSvc_ChargingState: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChargingState"); +pub const NAME_StatusSvc_MissedCalls: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MissedCalls"); +pub const NAME_StatusSvc_NetworkName: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NetworkName"); +pub const NAME_StatusSvc_NetworkType: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NetworkType"); +pub const NAME_StatusSvc_NewPictures: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NewPictures"); +pub const NAME_StatusSvc_Roaming: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Roaming"); +pub const NAME_StatusSvc_SignalStrength: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SignalStrength"); +pub const NAME_StatusSvc_StorageCapacity: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StorageCapacity"); +pub const NAME_StatusSvc_StorageFreeSpace: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StorageFreeSpace"); +pub const NAME_StatusSvc_TextMessages: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TextMessages"); +pub const NAME_StatusSvc_VoiceMail: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VoiceMail"); +pub const NAME_SyncObj_LastAuthorProxyID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastAuthorProxyID"); +pub const NAME_SyncSvc_BeginSync: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BeginSync"); +pub const NAME_SyncSvc_EndSync: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EndSync"); +pub const NAME_SyncSvc_FilterType: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FilterType"); +pub const NAME_SyncSvc_LocalOnlyDelete: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LocalOnlyDelete"); +pub const NAME_SyncSvc_SyncFormat: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SyncFormat"); +pub const NAME_SyncSvc_SyncObjectReferences: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SyncObjectReferences"); +pub const NAME_TIFFEPImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TIFFEPImage"); +pub const NAME_TIFFITImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TIFFITImage"); +pub const NAME_TIFFImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TIFFImage"); +pub const NAME_TaskObj_BeginDate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BeginDate"); +pub const NAME_TaskObj_Complete: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Complete"); +pub const NAME_TaskObj_EndDate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EndDate"); +pub const NAME_TaskObj_ReminderDateTime: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReminderDateTime"); +pub const NAME_TasksSvc: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Tasks"); +pub const NAME_TasksSvc_SyncActiveOnly: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FilterType"); +pub const NAME_TextDocument: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TextDocument"); +pub const NAME_Undefined: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Undefined"); +pub const NAME_UndefinedAudio: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UndefinedAudio"); +pub const NAME_UndefinedCollection: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UndefinedCollection"); +pub const NAME_UndefinedDocument: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UndefinedDocument"); +pub const NAME_UndefinedVideo: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UndefinedVideo"); +pub const NAME_UnknownImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UnknownImage"); +pub const NAME_VCalendar1Activity: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VCalendar1"); +pub const NAME_VCard2Contact: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VCard2Contact"); +pub const NAME_VCard3Contact: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VCard3Contact"); +pub const NAME_VideoObj_KeyFrameDistance: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyFrameDistance"); +pub const NAME_VideoObj_ScanType: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScanType"); +pub const NAME_VideoObj_Source: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Source"); +pub const NAME_VideoObj_VideoBitRate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VideoBitRate"); +pub const NAME_VideoObj_VideoFormatCode: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VideoFormatCode"); +pub const NAME_VideoObj_VideoFrameRate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VideoFrameRate"); +pub const NAME_WAVFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WAVFile"); +pub const NAME_WBMPImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WBMPImage"); +pub const NAME_WMAFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WMAFile"); +pub const NAME_WMVFile: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WMVFile"); +pub const NAME_WPLPlaylist: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WPLPlaylist"); +pub const NAME_WordDocument: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WordDocument"); +pub const NAME_XMLDocument: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("XMLDocument"); +pub const PORTABLE_DEVICE_DELETE_NO_RECURSION: DELETE_OBJECT_OPTIONS = 0i32; +pub const PORTABLE_DEVICE_DELETE_WITH_RECURSION: DELETE_OBJECT_OPTIONS = 1i32; +pub const PORTABLE_DEVICE_DRM_SCHEME_PDDRM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PDDRM"); +pub const PORTABLE_DEVICE_DRM_SCHEME_WMDRM10_PD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WMDRM10-PD"); +pub const PORTABLE_DEVICE_ICON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Icons"); +pub const PORTABLE_DEVICE_IS_MASS_STORAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PortableDeviceIsMassStorage"); +pub const PORTABLE_DEVICE_NAMESPACE_EXCLUDE_FROM_SHELL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PortableDeviceNameSpaceExcludeFromShell"); +pub const PORTABLE_DEVICE_NAMESPACE_THUMBNAIL_CONTENT_TYPES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PortableDeviceNameSpaceThumbnailContentTypes"); +pub const PORTABLE_DEVICE_NAMESPACE_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PortableDeviceNameSpaceTimeout"); +pub const PORTABLE_DEVICE_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PortableDeviceType"); +pub const PortableDevice: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x728a21c5_3d9e_48d7_9810_864848f0f404); +pub const PortableDeviceDispatchFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43232233_8338_4658_ae01_0b4ae830b6b0); +pub const PortableDeviceFTM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf7c0039a_4762_488a_b4b3_760ef9a1ba9b); +pub const PortableDeviceKeyCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xde2d022d_2480_43be_97f0_d1fa2cf98f4f); +pub const PortableDeviceManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0af10cec_2ecd_4b92_9581_34f6ae0637f3); +pub const PortableDevicePropVariantCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x08a99e2f_6d6d_4b80_af5a_baf2bcbe4cb9); +pub const PortableDeviceService: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xef5db4c2_9312_422c_9152_411cd9c4dd84); +pub const PortableDeviceServiceFTM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1649b154_c794_497a_9b03_f3f0121302f3); +pub const PortableDeviceValues: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0c15d503_d017_47ce_9016_7b3f978721cc); +pub const PortableDeviceValuesCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3882134d_14cf_4220_9cb4_435f86d83f60); +pub const PortableDeviceWebControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x186dd02c_2dec_41b5_a7d4_b59056fade51); +pub const RANGEMAX_MessageObj_PatternDayOfMonth: u32 = 31u32; +pub const RANGEMAX_MessageObj_PatternMonthOfYear: u32 = 12u32; +pub const RANGEMAX_StatusSvc_BatteryLife: u32 = 100u32; +pub const RANGEMAX_StatusSvc_MissedCalls: u32 = 255u32; +pub const RANGEMAX_StatusSvc_NewPictures: u32 = 65535u32; +pub const RANGEMAX_StatusSvc_SignalStrength: u32 = 4u32; +pub const RANGEMAX_StatusSvc_TextMessages: u32 = 255u32; +pub const RANGEMAX_StatusSvc_VoiceMail: u32 = 255u32; +pub const RANGEMIN_MessageObj_PatternDayOfMonth: u32 = 1u32; +pub const RANGEMIN_MessageObj_PatternMonthOfYear: u32 = 1u32; +pub const RANGEMIN_StatusSvc_BatteryLife: u32 = 0u32; +pub const RANGEMIN_StatusSvc_SignalStrength: u32 = 0u32; +pub const RANGESTEP_MessageObj_PatternDayOfMonth: u32 = 1u32; +pub const RANGESTEP_MessageObj_PatternMonthOfYear: u32 = 1u32; +pub const RANGESTEP_StatusSvc_BatteryLife: u32 = 1u32; +pub const RANGESTEP_StatusSvc_SignalStrength: u32 = 1u32; +pub const SMS_BINARY_MESSAGE: SMS_MESSAGE_TYPES = 1i32; +pub const SMS_ENCODING_7_BIT: WPD_SMS_ENCODING_TYPES = 0i32; +pub const SMS_ENCODING_8_BIT: WPD_SMS_ENCODING_TYPES = 1i32; +pub const SMS_ENCODING_UTF_16: WPD_SMS_ENCODING_TYPES = 2i32; +pub const SMS_TEXT_MESSAGE: SMS_MESSAGE_TYPES = 0i32; +pub const SRS_RADIO_DISABLED: SYSTEM_RADIO_STATE = 1i32; +pub const SRS_RADIO_ENABLED: SYSTEM_RADIO_STATE = 0i32; +pub const STR_WPDNSE_FAST_ENUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WPDNSE Fast Enum"); +pub const STR_WPDNSE_SIMPLE_ITEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WPDNSE SimpleItem"); +pub const SYNCSVC_FILTER_CALENDAR_WINDOW_WITH_RECURRENCE: u32 = 3u32; +pub const SYNCSVC_FILTER_CONTACTS_WITH_PHONE: u32 = 1u32; +pub const SYNCSVC_FILTER_NONE: u32 = 0u32; +pub const SYNCSVC_FILTER_TASK_ACTIVE: u32 = 2u32; +pub const TYPE_AnchorSyncSvc: u32 = 1u32; +pub const TYPE_CalendarSvc: u32 = 0u32; +pub const TYPE_ContactsSvc: u32 = 0u32; +pub const TYPE_DeviceMetadataSvc: u32 = 0u32; +pub const TYPE_FullEnumSyncSvc: u32 = 1u32; +pub const TYPE_HintsSvc: u32 = 0u32; +pub const TYPE_MessageSvc: u32 = 0u32; +pub const TYPE_NotesSvc: u32 = 0u32; +pub const TYPE_RingtonesSvc: u32 = 0u32; +pub const TYPE_StatusSvc: u32 = 0u32; +pub const TYPE_TasksSvc: u32 = 0u32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPDNSE_OBJECT_HAS_ALBUM_ART: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x34d71409_4b47_4d80_aaac_3a28a4a3b3e6), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPDNSE_OBJECT_HAS_AUDIO_CLIP: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x34d71409_4b47_4d80_aaac_3a28a4a3b3e6), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPDNSE_OBJECT_HAS_CONTACT_PHOTO: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x34d71409_4b47_4d80_aaac_3a28a4a3b3e6), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPDNSE_OBJECT_HAS_ICON: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x34d71409_4b47_4d80_aaac_3a28a4a3b3e6), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPDNSE_OBJECT_HAS_THUMBNAIL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x34d71409_4b47_4d80_aaac_3a28a4a3b3e6), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPDNSE_OBJECT_OPTIMAL_READ_BLOCK_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x34d71409_4b47_4d80_aaac_3a28a4a3b3e6), pid: 7 }; +pub const WPDNSE_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x34d71409_4b47_4d80_aaac_3a28a4a3b3e6); +pub const WPDNSE_PROPSHEET_CONTENT_DETAILS: u32 = 32u32; +pub const WPDNSE_PROPSHEET_CONTENT_GENERAL: u32 = 4u32; +pub const WPDNSE_PROPSHEET_CONTENT_REFERENCES: u32 = 8u32; +pub const WPDNSE_PROPSHEET_CONTENT_RESOURCES: u32 = 16u32; +pub const WPDNSE_PROPSHEET_DEVICE_GENERAL: u32 = 1u32; +pub const WPDNSE_PROPSHEET_STORAGE_GENERAL: u32 = 2u32; +pub const WPD_API_OPTIONS_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x10e54a3e_052d_4777_a13c_de7614be2bc4); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_API_OPTION_IOCTL_ACCESS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x10e54a3e_052d_4777_a13c_de7614be2bc4), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_API_OPTION_USE_CLEAR_DATA_STREAM: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x10e54a3e_052d_4777_a13c_de7614be2bc4), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_APPOINTMENT_ACCEPTED_ATTENDEES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf99efd03_431d_40d8_a1c9_4e220d9c88d3), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_APPOINTMENT_DECLINED_ATTENDEES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf99efd03_431d_40d8_a1c9_4e220d9c88d3), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_APPOINTMENT_LOCATION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf99efd03_431d_40d8_a1c9_4e220d9c88d3), pid: 3 }; +pub const WPD_APPOINTMENT_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf99efd03_431d_40d8_a1c9_4e220d9c88d3); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_APPOINTMENT_OPTIONAL_ATTENDEES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf99efd03_431d_40d8_a1c9_4e220d9c88d3), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_APPOINTMENT_REQUIRED_ATTENDEES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf99efd03_431d_40d8_a1c9_4e220d9c88d3), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_APPOINTMENT_RESOURCES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf99efd03_431d_40d8_a1c9_4e220d9c88d3), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_APPOINTMENT_TENTATIVE_ATTENDEES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf99efd03_431d_40d8_a1c9_4e220d9c88d3), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_APPOINTMENT_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf99efd03_431d_40d8_a1c9_4e220d9c88d3), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_AUDIO_BITRATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb324f56a_dc5d_46e5_b6df_d2ea414888c6), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_AUDIO_BIT_DEPTH: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb324f56a_dc5d_46e5_b6df_d2ea414888c6), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_AUDIO_BLOCK_ALIGNMENT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb324f56a_dc5d_46e5_b6df_d2ea414888c6), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_AUDIO_CHANNEL_COUNT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb324f56a_dc5d_46e5_b6df_d2ea414888c6), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_AUDIO_FORMAT_CODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb324f56a_dc5d_46e5_b6df_d2ea414888c6), pid: 11 }; +pub const WPD_BITRATE_TYPE_DISCRETE: WPD_BITRATE_TYPES = 1i32; +pub const WPD_BITRATE_TYPE_FREE: WPD_BITRATE_TYPES = 3i32; +pub const WPD_BITRATE_TYPE_UNUSED: WPD_BITRATE_TYPES = 0i32; +pub const WPD_BITRATE_TYPE_VARIABLE: WPD_BITRATE_TYPES = 2i32; +pub const WPD_CAPTURE_MODE_BURST: WPD_CAPTURE_MODES = 2i32; +pub const WPD_CAPTURE_MODE_NORMAL: WPD_CAPTURE_MODES = 1i32; +pub const WPD_CAPTURE_MODE_TIMELAPSE: WPD_CAPTURE_MODES = 3i32; +pub const WPD_CAPTURE_MODE_UNDEFINED: WPD_CAPTURE_MODES = 0i32; +pub const WPD_CATEGORY_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356); +pub const WPD_CATEGORY_COMMON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a); +pub const WPD_CATEGORY_DEVICE_HINTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0d5fb92b_cb46_4c4f_8343_0bc3d3f17c84); +pub const WPD_CATEGORY_MEDIA_CAPTURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x59b433ba_fe44_4d8d_808c_6bcb9b0f15e8); +pub const WPD_CATEGORY_MTP_EXT_VENDOR_OPERATIONS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56); +pub const WPD_CATEGORY_NETWORK_CONFIGURATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x78f9c6fc_79b8_473c_9060_6bd23dd072c4); +pub const WPD_CATEGORY_NULL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000000); +pub const WPD_CATEGORY_OBJECT_ENUMERATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb7474e91_e7f8_4ad9_b400_ad1a4b58eeec); +pub const WPD_CATEGORY_OBJECT_MANAGEMENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089); +pub const WPD_CATEGORY_OBJECT_PROPERTIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9e5582e4_0814_44e6_981a_b2998d583804); +pub const WPD_CATEGORY_OBJECT_PROPERTIES_BULK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e); +pub const WPD_CATEGORY_OBJECT_RESOURCES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a); +pub const WPD_CATEGORY_SERVICE_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89); +pub const WPD_CATEGORY_SERVICE_COMMON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x322f071d_36ef_477f_b4b5_6f52d734baee); +pub const WPD_CATEGORY_SERVICE_METHODS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2d521ca8_c1b0_4268_a342_cf19321569bc); +pub const WPD_CATEGORY_SMS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xafc25d66_fe0d_4114_9097_970c93e920d1); +pub const WPD_CATEGORY_STILL_IMAGE_CAPTURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4fcd6982_22a2_4b05_a48b_62d38bf27b32); +pub const WPD_CATEGORY_STORAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd8f907a6_34cc_45fa_97fb_d007fa47ec94); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLASS_EXTENSION_OPTIONS_DEVICE_IDENTIFICATION_VALUES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3e3595da_4d71_49fe_a0b4_d4406c3ae93f), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLASS_EXTENSION_OPTIONS_DONT_REGISTER_WPD_DEVICE_INTERFACE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x6309ffef_a87c_4ca7_8434_797576e40a96), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLASS_EXTENSION_OPTIONS_MULTITRANSPORT_MODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3e3595da_4d71_49fe_a0b4_d4406c3ae93f), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLASS_EXTENSION_OPTIONS_REGISTER_WPD_PRIVATE_DEVICE_INTERFACE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x6309ffef_a87c_4ca7_8434_797576e40a96), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLASS_EXTENSION_OPTIONS_SILENCE_AUTOPLAY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x65c160f8_1367_4ce2_939d_8310839f0d30), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLASS_EXTENSION_OPTIONS_SUPPORTED_CONTENT_TYPES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x6309ffef_a87c_4ca7_8434_797576e40a96), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLASS_EXTENSION_OPTIONS_TRANSPORT_BANDWIDTH: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3e3595da_4d71_49fe_a0b4_d4406c3ae93f), pid: 4 }; +pub const WPD_CLASS_EXTENSION_OPTIONS_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6309ffef_a87c_4ca7_8434_797576e40a96); +pub const WPD_CLASS_EXTENSION_OPTIONS_V2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3e3595da_4d71_49fe_a0b4_d4406c3ae93f); +pub const WPD_CLASS_EXTENSION_OPTIONS_V3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65c160f8_1367_4ce2_939d_8310839f0d30); +pub const WPD_CLASS_EXTENSION_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33fb0d11_64a3_4fac_b4c7_3dfeaa99b051); +pub const WPD_CLASS_EXTENSION_V2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f0779b5_fa2b_4766_9cb2_f73ba30b6758); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLIENT_DESIRED_ACCESS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x204d9f0c_2292_4080_9f42_40664e70f859), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLIENT_EVENT_COOKIE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x204d9f0c_2292_4080_9f42_40664e70f859), pid: 11 }; +pub const WPD_CLIENT_INFORMATION_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x204d9f0c_2292_4080_9f42_40664e70f859); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLIENT_MAJOR_VERSION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x204d9f0c_2292_4080_9f42_40664e70f859), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLIENT_MANUAL_CLOSE_ON_DISCONNECT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x204d9f0c_2292_4080_9f42_40664e70f859), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLIENT_MINIMUM_RESULTS_BUFFER_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x204d9f0c_2292_4080_9f42_40664e70f859), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLIENT_MINOR_VERSION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x204d9f0c_2292_4080_9f42_40664e70f859), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLIENT_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x204d9f0c_2292_4080_9f42_40664e70f859), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLIENT_REVISION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x204d9f0c_2292_4080_9f42_40664e70f859), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLIENT_SECURITY_QUALITY_OF_SERVICE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x204d9f0c_2292_4080_9f42_40664e70f859), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLIENT_SHARE_MODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x204d9f0c_2292_4080_9f42_40664e70f859), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLIENT_WMDRM_APPLICATION_CERTIFICATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x204d9f0c_2292_4080_9f42_40664e70f859), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CLIENT_WMDRM_APPLICATION_PRIVATE_KEY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x204d9f0c_2292_4080_9f42_40664e70f859), pid: 6 }; +pub const WPD_COLOR_CORRECTED_STATUS_CORRECTED: WPD_COLOR_CORRECTED_STATUS_VALUES = 1i32; +pub const WPD_COLOR_CORRECTED_STATUS_NOT_CORRECTED: WPD_COLOR_CORRECTED_STATUS_VALUES = 0i32; +pub const WPD_COLOR_CORRECTED_STATUS_SHOULD_NOT_BE_CORRECTED: WPD_COLOR_CORRECTED_STATUS_VALUES = 2i32; +pub const WPD_COMMAND_ACCESS_FROM_ATTRIBUTE_WITH_METHOD_ACCESS: WPD_COMMAND_ACCESS_TYPES = 16i32; +pub const WPD_COMMAND_ACCESS_FROM_PROPERTY_WITH_FILE_ACCESS: WPD_COMMAND_ACCESS_TYPES = 8i32; +pub const WPD_COMMAND_ACCESS_FROM_PROPERTY_WITH_STGM_ACCESS: WPD_COMMAND_ACCESS_TYPES = 4i32; +pub const WPD_COMMAND_ACCESS_READ: WPD_COMMAND_ACCESS_TYPES = 1i32; +pub const WPD_COMMAND_ACCESS_READWRITE: WPD_COMMAND_ACCESS_TYPES = 3i32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_CAPABILITIES_GET_COMMAND_OPTIONS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_CAPABILITIES_GET_EVENT_OPTIONS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_CAPABILITIES_GET_FIXED_PROPERTY_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_CAPABILITIES_GET_FUNCTIONAL_OBJECTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_CAPABILITIES_GET_SUPPORTED_COMMANDS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_CAPABILITIES_GET_SUPPORTED_CONTENT_TYPES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_CAPABILITIES_GET_SUPPORTED_EVENTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_CAPABILITIES_GET_SUPPORTED_FORMATS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_CAPABILITIES_GET_SUPPORTED_FORMAT_PROPERTIES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_CAPABILITIES_GET_SUPPORTED_FUNCTIONAL_CATEGORIES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_CLASS_EXTENSION_REGISTER_SERVICE_INTERFACES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f0779b5_fa2b_4766_9cb2_f73ba30b6758), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_CLASS_EXTENSION_UNREGISTER_SERVICE_INTERFACES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f0779b5_fa2b_4766_9cb2_f73ba30b6758), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_CLASS_EXTENSION_WRITE_DEVICE_INFORMATION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x33fb0d11_64a3_4fac_b4c7_3dfeaa99b051), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_COMMIT_KEYPAIR: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78f9c6fc_79b8_473c_9060_6bd23dd072c4), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_COMMON_GET_OBJECT_IDS_FROM_PERSISTENT_UNIQUE_IDS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_COMMON_RESET_DEVICE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_COMMON_SAVE_CLIENT_INFORMATION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_DEVICE_HINTS_GET_CONTENT_LOCATION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0d5fb92b_cb46_4c4f_8343_0bc3d3f17c84), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_GENERATE_KEYPAIR: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78f9c6fc_79b8_473c_9060_6bd23dd072c4), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_MEDIA_CAPTURE_PAUSE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x59b433ba_fe44_4d8d_808c_6bcb9b0f15e8), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_MEDIA_CAPTURE_START: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x59b433ba_fe44_4d8d_808c_6bcb9b0f15e8), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_MEDIA_CAPTURE_STOP: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x59b433ba_fe44_4d8d_808c_6bcb9b0f15e8), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_MTP_EXT_END_DATA_TRANSFER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 17 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_MTP_EXT_EXECUTE_COMMAND_WITHOUT_DATA_PHASE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_MTP_EXT_EXECUTE_COMMAND_WITH_DATA_TO_READ: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_MTP_EXT_EXECUTE_COMMAND_WITH_DATA_TO_WRITE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 14 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_MTP_EXT_GET_SUPPORTED_VENDOR_OPCODES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_MTP_EXT_GET_VENDOR_EXTENSION_DESCRIPTION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 18 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_MTP_EXT_READ_DATA: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 15 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_MTP_EXT_WRITE_DATA: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 16 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_ENUMERATION_END_FIND: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb7474e91_e7f8_4ad9_b400_ad1a4b58eeec), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_ENUMERATION_FIND_NEXT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb7474e91_e7f8_4ad9_b400_ad1a4b58eeec), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_ENUMERATION_START_FIND: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb7474e91_e7f8_4ad9_b400_ad1a4b58eeec), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_MANAGEMENT_COMMIT_OBJECT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_MANAGEMENT_COPY_OBJECTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_MANAGEMENT_CREATE_OBJECT_WITH_PROPERTIES_AND_DATA: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_MANAGEMENT_CREATE_OBJECT_WITH_PROPERTIES_ONLY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_MANAGEMENT_DELETE_OBJECTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_MANAGEMENT_MOVE_OBJECTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_MANAGEMENT_REVERT_OBJECT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_MANAGEMENT_UPDATE_OBJECT_WITH_PROPERTIES_AND_DATA: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_MANAGEMENT_WRITE_OBJECT_DATA: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_BULK_GET_VALUES_BY_OBJECT_FORMAT_END: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_BULK_GET_VALUES_BY_OBJECT_FORMAT_NEXT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_BULK_GET_VALUES_BY_OBJECT_FORMAT_START: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_BULK_GET_VALUES_BY_OBJECT_LIST_END: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_BULK_GET_VALUES_BY_OBJECT_LIST_NEXT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_BULK_GET_VALUES_BY_OBJECT_LIST_START: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_BULK_SET_VALUES_BY_OBJECT_LIST_END: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_BULK_SET_VALUES_BY_OBJECT_LIST_NEXT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_BULK_SET_VALUES_BY_OBJECT_LIST_START: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_DELETE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x9e5582e4_0814_44e6_981a_b2998d583804), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_GET: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x9e5582e4_0814_44e6_981a_b2998d583804), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_GET_ALL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x9e5582e4_0814_44e6_981a_b2998d583804), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_GET_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x9e5582e4_0814_44e6_981a_b2998d583804), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_GET_SUPPORTED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x9e5582e4_0814_44e6_981a_b2998d583804), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_PROPERTIES_SET: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x9e5582e4_0814_44e6_981a_b2998d583804), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_RESOURCES_CLOSE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_RESOURCES_COMMIT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_RESOURCES_CREATE_RESOURCE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_RESOURCES_DELETE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_RESOURCES_GET_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_RESOURCES_GET_SUPPORTED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_RESOURCES_OPEN: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_RESOURCES_READ: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_RESOURCES_REVERT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_RESOURCES_SEEK: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_RESOURCES_SEEK_IN_UNITS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_OBJECT_RESOURCES_WRITE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_PROCESS_WIRELESS_PROFILE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78f9c6fc_79b8_473c_9060_6bd23dd072c4), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_COMMAND_OPTIONS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 16 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_EVENT_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_EVENT_PARAMETER_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_FORMAT_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_FORMAT_PROPERTY_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_FORMAT_RENDERING_PROFILES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 14 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_INHERITED_SERVICES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_METHOD_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_METHOD_PARAMETER_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_SUPPORTED_COMMANDS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 15 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_SUPPORTED_EVENTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_SUPPORTED_FORMATS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_SUPPORTED_FORMAT_PROPERTIES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_SUPPORTED_METHODS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_CAPABILITIES_GET_SUPPORTED_METHODS_BY_FORMAT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_COMMON_GET_SERVICE_OBJECT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x322f071d_36ef_477f_b4b5_6f52d734baee), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_METHODS_CANCEL_INVOKE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2d521ca8_c1b0_4268_a342_cf19321569bc), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_METHODS_END_INVOKE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2d521ca8_c1b0_4268_a342_cf19321569bc), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SERVICE_METHODS_START_INVOKE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2d521ca8_c1b0_4268_a342_cf19321569bc), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_SMS_SEND: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xafc25d66_fe0d_4114_9097_970c93e920d1), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4fcd6982_22a2_4b05_a48b_62d38bf27b32), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_STORAGE_EJECT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd8f907a6_34cc_45fa_97fb_d007fa47ec94), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMAND_STORAGE_FORMAT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd8f907a6_34cc_45fa_97fb_d007fa47ec94), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMON_INFORMATION_BODY_TEXT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb28ae94b_05a4_4e8e_be01_72cc7e099d8f), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMON_INFORMATION_END_DATETIME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb28ae94b_05a4_4e8e_be01_72cc7e099d8f), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMON_INFORMATION_NOTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb28ae94b_05a4_4e8e_be01_72cc7e099d8f), pid: 7 }; +pub const WPD_COMMON_INFORMATION_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb28ae94b_05a4_4e8e_be01_72cc7e099d8f); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMON_INFORMATION_PRIORITY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb28ae94b_05a4_4e8e_be01_72cc7e099d8f), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMON_INFORMATION_START_DATETIME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb28ae94b_05a4_4e8e_be01_72cc7e099d8f), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_COMMON_INFORMATION_SUBJECT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb28ae94b_05a4_4e8e_be01_72cc7e099d8f), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_ANNIVERSARY_DATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 62 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_ASSISTANT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 61 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BIRTHDATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 57 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BUSINESS_EMAIL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 34 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BUSINESS_EMAIL2: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 35 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BUSINESS_FAX: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 45 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BUSINESS_FULL_POSTAL_ADDRESS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 17 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BUSINESS_PHONE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 40 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BUSINESS_PHONE2: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 41 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BUSINESS_POSTAL_ADDRESS_CITY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 20 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BUSINESS_POSTAL_ADDRESS_COUNTRY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 23 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BUSINESS_POSTAL_ADDRESS_LINE1: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 18 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BUSINESS_POSTAL_ADDRESS_LINE2: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 19 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BUSINESS_POSTAL_ADDRESS_POSTAL_CODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 22 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BUSINESS_POSTAL_ADDRESS_REGION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 21 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_BUSINESS_WEB_ADDRESS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 50 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_CHILDREN: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 60 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_COMPANY_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 54 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_DISPLAY_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_FIRST_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_INSTANT_MESSENGER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 51 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_INSTANT_MESSENGER2: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 52 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_INSTANT_MESSENGER3: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 53 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_LAST_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_MIDDLE_NAMES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_MOBILE_PHONE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 42 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_MOBILE_PHONE2: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 43 }; +pub const WPD_CONTACT_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_OTHER_EMAILS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 36 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_OTHER_FULL_POSTAL_ADDRESS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 24 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_OTHER_PHONES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 47 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_OTHER_POSTAL_ADDRESS_CITY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 27 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_OTHER_POSTAL_ADDRESS_LINE1: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 25 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_OTHER_POSTAL_ADDRESS_LINE2: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 26 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_OTHER_POSTAL_ADDRESS_POSTAL_CODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 29 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_OTHER_POSTAL_ADDRESS_POSTAL_COUNTRY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 30 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_OTHER_POSTAL_ADDRESS_REGION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 28 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PAGER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 46 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PERSONAL_EMAIL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 32 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PERSONAL_EMAIL2: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 33 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PERSONAL_FAX: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 44 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PERSONAL_FULL_POSTAL_ADDRESS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PERSONAL_PHONE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 38 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PERSONAL_PHONE2: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 39 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PERSONAL_POSTAL_ADDRESS_CITY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PERSONAL_POSTAL_ADDRESS_COUNTRY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 16 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PERSONAL_POSTAL_ADDRESS_LINE1: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PERSONAL_POSTAL_ADDRESS_LINE2: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PERSONAL_POSTAL_ADDRESS_POSTAL_CODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 15 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PERSONAL_POSTAL_ADDRESS_REGION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 14 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PERSONAL_WEB_ADDRESS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 49 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PHONETIC_COMPANY_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 55 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PHONETIC_FIRST_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PHONETIC_LAST_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PREFIX: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PRIMARY_EMAIL_ADDRESS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 31 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PRIMARY_FAX: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 58 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PRIMARY_PHONE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 37 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_PRIMARY_WEB_ADDRESS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 48 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_RINGTONE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 63 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_ROLE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 56 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_SPOUSE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 59 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_CONTACT_SUFFIX: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xfbd4fdab_987d_4777_b3f9_726185a9312b), pid: 7 }; +pub const WPD_CONTENT_TYPE_ALL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x80e170d2_1055_4a3e_b952_82cc4f8a8689); +pub const WPD_CONTENT_TYPE_APPOINTMENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0fed060e_8793_4b1e_90c9_48ac389ac631); +pub const WPD_CONTENT_TYPE_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4ad2c85e_5e2d_45e5_8864_4f229e3c6cf0); +pub const WPD_CONTENT_TYPE_AUDIO_ALBUM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaa18737e_5009_48fa_ae21_85f24383b4e6); +pub const WPD_CONTENT_TYPE_CALENDAR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa1fd5967_6023_49a0_9df1_f8060be751b0); +pub const WPD_CONTENT_TYPE_CERTIFICATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdc3876e8_a948_4060_9050_cbd77e8a3d87); +pub const WPD_CONTENT_TYPE_CONTACT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeaba8313_4525_4707_9f0e_87c6808e9435); +pub const WPD_CONTENT_TYPE_CONTACT_GROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x346b8932_4c36_40d8_9415_1828291f9de9); +pub const WPD_CONTENT_TYPE_DOCUMENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x680adf52_950a_4041_9b41_65e393648155); +pub const WPD_CONTENT_TYPE_EMAIL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8038044a_7e51_4f8f_883d_1d0623d14533); +pub const WPD_CONTENT_TYPE_FOLDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x27e2e392_a111_48e0_ab0c_e17705a05f85); +pub const WPD_CONTENT_TYPE_FUNCTIONAL_OBJECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x99ed0160_17ff_4c44_9d98_1d7a6f941921); +pub const WPD_CONTENT_TYPE_GENERIC_FILE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0085e0a6_8d34_45d7_bc5c_447e59c73d48); +pub const WPD_CONTENT_TYPE_GENERIC_MESSAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe80eaaf8_b2db_4133_b67e_1bef4b4a6e5f); +pub const WPD_CONTENT_TYPE_IMAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xef2107d5_a52a_4243_a26b_62d4176d7603); +pub const WPD_CONTENT_TYPE_IMAGE_ALBUM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x75793148_15f5_4a30_a813_54ed8a37e226); +pub const WPD_CONTENT_TYPE_MEDIA_CAST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5e88b3cc_3e65_4e62_bfff_229495253ab0); +pub const WPD_CONTENT_TYPE_MEMO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9cd20ecf_3b50_414f_a641_e473ffe45751); +pub const WPD_CONTENT_TYPE_MIXED_CONTENT_ALBUM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00f0c3ac_a593_49ac_9219_24abca5a2563); +pub const WPD_CONTENT_TYPE_NETWORK_ASSOCIATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x031da7ee_18c8_4205_847e_89a11261d0f3); +pub const WPD_CONTENT_TYPE_PLAYLIST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1a33f7e4_af13_48f5_994e_77369dfe04a3); +pub const WPD_CONTENT_TYPE_PROGRAM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd269f96a_247c_4bff_98fb_97f3c49220e6); +pub const WPD_CONTENT_TYPE_SECTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x821089f5_1d91_4dc9_be3c_bbb1b35b18ce); +pub const WPD_CONTENT_TYPE_TASK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x63252f2c_887f_4cb6_b1ac_d29855dcef6c); +pub const WPD_CONTENT_TYPE_TELEVISION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x60a169cf_f2ae_4e21_9375_9677f11c1c6e); +pub const WPD_CONTENT_TYPE_UNSPECIFIED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x28d8d31e_249c_454e_aabc_34883168e634); +pub const WPD_CONTENT_TYPE_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9261b03c_3d78_4519_85e3_02c5e1f50bb9); +pub const WPD_CONTENT_TYPE_VIDEO_ALBUM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x012b0db7_d4c1_45d6_b081_94b87779614f); +pub const WPD_CONTENT_TYPE_WIRELESS_PROFILE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0bac070a_9f5f_4da4_a8f6_3de44d68fd6c); +pub const WPD_CONTROL_FUNCTION_GENERIC_MESSAGE: u32 = 66u32; +pub const WPD_CROPPED_STATUS_CROPPED: WPD_CROPPED_STATUS_VALUES = 1i32; +pub const WPD_CROPPED_STATUS_NOT_CROPPED: WPD_CROPPED_STATUS_VALUES = 0i32; +pub const WPD_CROPPED_STATUS_SHOULD_NOT_BE_CROPPED: WPD_CROPPED_STATUS_VALUES = 2i32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_DATETIME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_EDP_IDENTITY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x6c2b878c_c2ec_490d_b425_d7a75e23e5ed), pid: 1 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_FIRMWARE_VERSION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_FRIENDLY_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_FUNCTIONAL_UNIQUE_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x463dd662_7fc4_4291_911c_7f4c9cca9799), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_MANUFACTURER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_MODEL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_MODEL_UNIQUE_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x463dd662_7fc4_4291_911c_7f4c9cca9799), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_NETWORK_IDENTIFIER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 16 }; +pub const WPD_DEVICE_OBJECT_ID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DEVICE"); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_POWER_LEVEL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_POWER_SOURCE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 5 }; +pub const WPD_DEVICE_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc); +pub const WPD_DEVICE_PROPERTIES_V2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x463dd662_7fc4_4291_911c_7f4c9cca9799); +pub const WPD_DEVICE_PROPERTIES_V3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6c2b878c_c2ec_490d_b425_d7a75e23e5ed); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_PROTOCOL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_SERIAL_NUMBER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_SUPPORTED_DRM_SCHEMES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_SUPPORTED_FORMATS_ARE_ORDERED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 14 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_SUPPORTS_NON_CONSUMABLE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_SYNC_PARTNER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_TRANSPORT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x463dd662_7fc4_4291_911c_7f4c9cca9799), pid: 4 }; +pub const WPD_DEVICE_TRANSPORT_BLUETOOTH: WPD_DEVICE_TRANSPORTS = 3i32; +pub const WPD_DEVICE_TRANSPORT_IP: WPD_DEVICE_TRANSPORTS = 2i32; +pub const WPD_DEVICE_TRANSPORT_UNSPECIFIED: WPD_DEVICE_TRANSPORTS = 0i32; +pub const WPD_DEVICE_TRANSPORT_USB: WPD_DEVICE_TRANSPORTS = 1i32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x26d4979a_e643_4626_9e2b_736dc0c92fdc), pid: 15 }; +pub const WPD_DEVICE_TYPE_AUDIO_RECORDER: WPD_DEVICE_TYPES = 6i32; +pub const WPD_DEVICE_TYPE_CAMERA: WPD_DEVICE_TYPES = 1i32; +pub const WPD_DEVICE_TYPE_GENERIC: WPD_DEVICE_TYPES = 0i32; +pub const WPD_DEVICE_TYPE_MEDIA_PLAYER: WPD_DEVICE_TYPES = 2i32; +pub const WPD_DEVICE_TYPE_PERSONAL_INFORMATION_MANAGER: WPD_DEVICE_TYPES = 5i32; +pub const WPD_DEVICE_TYPE_PHONE: WPD_DEVICE_TYPES = 3i32; +pub const WPD_DEVICE_TYPE_VIDEO: WPD_DEVICE_TYPES = 4i32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_DEVICE_USE_DEVICE_STAGE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x463dd662_7fc4_4291_911c_7f4c9cca9799), pid: 5 }; +pub const WPD_DOCUMENT_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0b110203_eb95_4f02_93e0_97c631493ad5); +pub const WPD_EFFECT_MODE_BLACK_AND_WHITE: WPD_EFFECT_MODES = 2i32; +pub const WPD_EFFECT_MODE_COLOR: WPD_EFFECT_MODES = 1i32; +pub const WPD_EFFECT_MODE_SEPIA: WPD_EFFECT_MODES = 3i32; +pub const WPD_EFFECT_MODE_UNDEFINED: WPD_EFFECT_MODES = 0i32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EMAIL_BCC_LINE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x41f8f65a_5484_4782_b13d_4740dd7c37c5), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EMAIL_CC_LINE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x41f8f65a_5484_4782_b13d_4740dd7c37c5), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EMAIL_HAS_ATTACHMENTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x41f8f65a_5484_4782_b13d_4740dd7c37c5), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EMAIL_HAS_BEEN_READ: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x41f8f65a_5484_4782_b13d_4740dd7c37c5), pid: 7 }; +pub const WPD_EMAIL_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x41f8f65a_5484_4782_b13d_4740dd7c37c5); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EMAIL_RECEIVED_TIME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x41f8f65a_5484_4782_b13d_4740dd7c37c5), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EMAIL_SENDER_ADDRESS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x41f8f65a_5484_4782_b13d_4740dd7c37c5), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EMAIL_TO_LINE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x41f8f65a_5484_4782_b13d_4740dd7c37c5), pid: 2 }; +pub const WPD_EVENT_ATTRIBUTES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x10c96578_2e81_4111_adde_e08ca6138f6d); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EVENT_ATTRIBUTE_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x10c96578_2e81_4111_adde_e08ca6138f6d), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EVENT_ATTRIBUTE_OPTIONS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x10c96578_2e81_4111_adde_e08ca6138f6d), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EVENT_ATTRIBUTE_PARAMETERS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x10c96578_2e81_4111_adde_e08ca6138f6d), pid: 3 }; +pub const WPD_EVENT_DEVICE_CAPABILITIES_UPDATED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36885aa1_cd54_4daa_b3d0_afb3e03f5999); +pub const WPD_EVENT_DEVICE_REMOVED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe4cbca1b_6918_48b9_85ee_02be7c850af9); +pub const WPD_EVENT_DEVICE_RESET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7755cf53_c1ed_44f3_b5a2_451e2c376b27); +pub const WPD_EVENT_MTP_VENDOR_EXTENDED_EVENTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_5738_4ff2_8445_be3126691059); +pub const WPD_EVENT_NOTIFICATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2ba2e40a_6b4c_4295_bb43_26322b99aeb2); +pub const WPD_EVENT_OBJECT_ADDED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa726da95_e207_4b02_8d44_bef2e86cbffc); +pub const WPD_EVENT_OBJECT_REMOVED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbe82ab88_a52c_4823_96e5_d0272671fc38); +pub const WPD_EVENT_OBJECT_TRANSFER_REQUESTED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8d16a0a1_f2c6_41da_8f19_5e53721adbf2); +pub const WPD_EVENT_OBJECT_UPDATED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1445a759_2e01_485d_9f27_ff07dae697ab); +pub const WPD_EVENT_OPTIONS_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb3d8dad7_a361_4b83_8a48_5b02ce10713b); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EVENT_OPTION_IS_AUTOPLAY_EVENT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3d8dad7_a361_4b83_8a48_5b02ce10713b), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EVENT_OPTION_IS_BROADCAST_EVENT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3d8dad7_a361_4b83_8a48_5b02ce10713b), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EVENT_PARAMETER_CHILD_HIERARCHY_CHANGED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x15ab1953_f817_4fef_a921_5676e838f6e0), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EVENT_PARAMETER_EVENT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x15ab1953_f817_4fef_a921_5676e838f6e0), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EVENT_PARAMETER_OBJECT_CREATION_COOKIE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x15ab1953_f817_4fef_a921_5676e838f6e0), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EVENT_PARAMETER_OBJECT_PARENT_PERSISTENT_UNIQUE_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x15ab1953_f817_4fef_a921_5676e838f6e0), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EVENT_PARAMETER_OPERATION_PROGRESS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x15ab1953_f817_4fef_a921_5676e838f6e0), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EVENT_PARAMETER_OPERATION_STATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x15ab1953_f817_4fef_a921_5676e838f6e0), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EVENT_PARAMETER_PNP_DEVICE_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x15ab1953_f817_4fef_a921_5676e838f6e0), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_EVENT_PARAMETER_SERVICE_METHOD_CONTEXT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x52807b8a_4914_4323_9b9a_74f654b2b846), pid: 2 }; +pub const WPD_EVENT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x15ab1953_f817_4fef_a921_5676e838f6e0); +pub const WPD_EVENT_PROPERTIES_V2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x52807b8a_4914_4323_9b9a_74f654b2b846); +pub const WPD_EVENT_SERVICE_METHOD_COMPLETE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8a33f5f8_0acc_4d9b_9cc4_112d353b86ca); +pub const WPD_EVENT_STORAGE_FORMAT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3782616b_22bc_4474_a251_3070f8d38857); +pub const WPD_EXPOSURE_METERING_MODE_AVERAGE: WPD_EXPOSURE_METERING_MODES = 1i32; +pub const WPD_EXPOSURE_METERING_MODE_CENTER_SPOT: WPD_EXPOSURE_METERING_MODES = 4i32; +pub const WPD_EXPOSURE_METERING_MODE_CENTER_WEIGHTED_AVERAGE: WPD_EXPOSURE_METERING_MODES = 2i32; +pub const WPD_EXPOSURE_METERING_MODE_MULTI_SPOT: WPD_EXPOSURE_METERING_MODES = 3i32; +pub const WPD_EXPOSURE_METERING_MODE_UNDEFINED: WPD_EXPOSURE_METERING_MODES = 0i32; +pub const WPD_EXPOSURE_PROGRAM_MODE_ACTION: WPD_EXPOSURE_PROGRAM_MODES = 6i32; +pub const WPD_EXPOSURE_PROGRAM_MODE_APERTURE_PRIORITY: WPD_EXPOSURE_PROGRAM_MODES = 3i32; +pub const WPD_EXPOSURE_PROGRAM_MODE_AUTO: WPD_EXPOSURE_PROGRAM_MODES = 2i32; +pub const WPD_EXPOSURE_PROGRAM_MODE_CREATIVE: WPD_EXPOSURE_PROGRAM_MODES = 5i32; +pub const WPD_EXPOSURE_PROGRAM_MODE_MANUAL: WPD_EXPOSURE_PROGRAM_MODES = 1i32; +pub const WPD_EXPOSURE_PROGRAM_MODE_PORTRAIT: WPD_EXPOSURE_PROGRAM_MODES = 7i32; +pub const WPD_EXPOSURE_PROGRAM_MODE_SHUTTER_PRIORITY: WPD_EXPOSURE_PROGRAM_MODES = 4i32; +pub const WPD_EXPOSURE_PROGRAM_MODE_UNDEFINED: WPD_EXPOSURE_PROGRAM_MODES = 0i32; +pub const WPD_FLASH_MODE_AUTO: WPD_FLASH_MODES = 1i32; +pub const WPD_FLASH_MODE_EXTERNAL_SYNC: WPD_FLASH_MODES = 6i32; +pub const WPD_FLASH_MODE_FILL: WPD_FLASH_MODES = 3i32; +pub const WPD_FLASH_MODE_OFF: WPD_FLASH_MODES = 2i32; +pub const WPD_FLASH_MODE_RED_EYE_AUTO: WPD_FLASH_MODES = 4i32; +pub const WPD_FLASH_MODE_RED_EYE_FILL: WPD_FLASH_MODES = 5i32; +pub const WPD_FLASH_MODE_UNDEFINED: WPD_FLASH_MODES = 0i32; +pub const WPD_FOCUS_AUTOMATIC: WPD_FOCUS_MODES = 2i32; +pub const WPD_FOCUS_AUTOMATIC_MACRO: WPD_FOCUS_MODES = 3i32; +pub const WPD_FOCUS_MANUAL: WPD_FOCUS_MODES = 1i32; +pub const WPD_FOCUS_METERING_MODE_CENTER_SPOT: WPD_FOCUS_METERING_MODES = 1i32; +pub const WPD_FOCUS_METERING_MODE_MULTI_SPOT: WPD_FOCUS_METERING_MODES = 2i32; +pub const WPD_FOCUS_METERING_MODE_UNDEFINED: WPD_FOCUS_METERING_MODES = 0i32; +pub const WPD_FOCUS_UNDEFINED: WPD_FOCUS_MODES = 0i32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_FOLDER_CONTENT_TYPES_ALLOWED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7e9a7abf_e568_4b34_aa2f_13bb12ab177d), pid: 2 }; +pub const WPD_FOLDER_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7e9a7abf_e568_4b34_aa2f_13bb12ab177d); +pub const WPD_FORMAT_ATTRIBUTES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa0a02000_bcaf_4be8_b3f5_233f231cf58f); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_FORMAT_ATTRIBUTE_MIMETYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa0a02000_bcaf_4be8_b3f5_233f231cf58f), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_FORMAT_ATTRIBUTE_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa0a02000_bcaf_4be8_b3f5_233f231cf58f), pid: 2 }; +pub const WPD_FUNCTIONAL_CATEGORY_ALL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2d8a6512_a74c_448e_ba8a_f4ac07c49399); +pub const WPD_FUNCTIONAL_CATEGORY_AUDIO_CAPTURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3f2a1919_c7c2_4a00_855d_f57cf06debbb); +pub const WPD_FUNCTIONAL_CATEGORY_DEVICE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x08ea466b_e3a4_4336_a1f3_a44d2b5c438c); +pub const WPD_FUNCTIONAL_CATEGORY_NETWORK_CONFIGURATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x48f4db72_7c6a_4ab0_9e1a_470e3cdbf26a); +pub const WPD_FUNCTIONAL_CATEGORY_RENDERING_INFORMATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x08600ba4_a7ba_4a01_ab0e_0065d0a356d3); +pub const WPD_FUNCTIONAL_CATEGORY_SMS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0044a0b1_c1e9_4afd_b358_a62c6117c9cf); +pub const WPD_FUNCTIONAL_CATEGORY_STILL_IMAGE_CAPTURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x613ca327_ab93_4900_b4fa_895bb5874b79); +pub const WPD_FUNCTIONAL_CATEGORY_STORAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x23f05bbc_15de_4c2a_a55b_a9af5ce412ef); +pub const WPD_FUNCTIONAL_CATEGORY_VIDEO_CAPTURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe23e5f6b_7243_43aa_8df1_0eb3d968a918); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_FUNCTIONAL_OBJECT_CATEGORY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x8f052d93_abca_4fc5_a5ac_b01df4dbe598), pid: 2 }; +pub const WPD_FUNCTIONAL_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8f052d93_abca_4fc5_a5ac_b01df4dbe598); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_IMAGE_BITDEPTH: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x63d64908_9fa1_479f_85ba_9952216447db), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_IMAGE_COLOR_CORRECTED_STATUS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x63d64908_9fa1_479f_85ba_9952216447db), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_IMAGE_CROPPED_STATUS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x63d64908_9fa1_479f_85ba_9952216447db), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_IMAGE_EXPOSURE_INDEX: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x63d64908_9fa1_479f_85ba_9952216447db), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_IMAGE_EXPOSURE_TIME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x63d64908_9fa1_479f_85ba_9952216447db), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_IMAGE_FNUMBER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x63d64908_9fa1_479f_85ba_9952216447db), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_IMAGE_HORIZONTAL_RESOLUTION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x63d64908_9fa1_479f_85ba_9952216447db), pid: 9 }; +pub const WPD_IMAGE_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x63d64908_9fa1_479f_85ba_9952216447db); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_IMAGE_VERTICAL_RESOLUTION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x63d64908_9fa1_479f_85ba_9952216447db), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_ALBUM_ARTIST: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 25 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_ARTIST: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 24 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_AUDIO_ENCODING_PROFILE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 49 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_BITRATE_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_BUY_NOW: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 20 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_BYTE_BOOKMARK: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 36 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_COMPOSER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_COPYRIGHT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_DESCRIPTION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 31 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_DESTINATION_URL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 30 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_DURATION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 19 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_EFFECTIVE_RATING: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_ENCODING_PROFILE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 21 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_GENRE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 32 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_GUID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 38 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_HEIGHT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 23 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_LAST_ACCESSED_TIME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_LAST_BUILD_DATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 35 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_MANAGING_EDITOR: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 27 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_META_GENRE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_OBJECT_BOOKMARK: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 34 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_OWNER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 26 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_PARENTAL_RATING: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 9 }; +pub const WPD_MEDIA_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_RELEASE_DATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 14 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_SAMPLE_RATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 15 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_SKIP_COUNT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_SOURCE_URL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 29 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_STAR_RATING: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 16 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_SUBSCRIPTION_CONTENT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_SUB_DESCRIPTION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 39 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_SUB_TITLE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_TIME_BOOKMARK: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 33 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_TIME_TO_LIVE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 37 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_TITLE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 18 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_TOTAL_BITRATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_USER_EFFECTIVE_RATING: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 17 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_USE_COUNT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_WEBMASTER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 28 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MEDIA_WIDTH: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2ed8ba05_0ad3_42dc_b0d0_bc95ac396ac8), pid: 22 }; +pub const WPD_MEMO_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ffbfc7b_7483_41ad_afb9_da3f4e592b8d); +pub const WPD_META_GENRE_AUDIO_PODCAST: WPD_META_GENRES = 64i32; +pub const WPD_META_GENRE_FEATURE_FILM_VIDEO_FILE: WPD_META_GENRES = 37i32; +pub const WPD_META_GENRE_GENERIC_MUSIC_AUDIO_FILE: WPD_META_GENRES = 1i32; +pub const WPD_META_GENRE_GENERIC_NON_AUDIO_NON_VIDEO: WPD_META_GENRES = 48i32; +pub const WPD_META_GENRE_GENERIC_NON_MUSIC_AUDIO_FILE: WPD_META_GENRES = 17i32; +pub const WPD_META_GENRE_GENERIC_VIDEO_FILE: WPD_META_GENRES = 33i32; +pub const WPD_META_GENRE_HOME_VIDEO_FILE: WPD_META_GENRES = 36i32; +pub const WPD_META_GENRE_MIXED_PODCAST: WPD_META_GENRES = 66i32; +pub const WPD_META_GENRE_MUSIC_VIDEO_FILE: WPD_META_GENRES = 35i32; +pub const WPD_META_GENRE_NEWS_VIDEO_FILE: WPD_META_GENRES = 34i32; +pub const WPD_META_GENRE_PHOTO_MONTAGE_VIDEO_FILE: WPD_META_GENRES = 40i32; +pub const WPD_META_GENRE_SPOKEN_WORD_AUDIO_BOOK_FILES: WPD_META_GENRES = 18i32; +pub const WPD_META_GENRE_SPOKEN_WORD_FILES_NON_AUDIO_BOOK: WPD_META_GENRES = 19i32; +pub const WPD_META_GENRE_SPOKEN_WORD_NEWS: WPD_META_GENRES = 20i32; +pub const WPD_META_GENRE_SPOKEN_WORD_TALK_SHOWS: WPD_META_GENRES = 21i32; +pub const WPD_META_GENRE_TELEVISION_VIDEO_FILE: WPD_META_GENRES = 38i32; +pub const WPD_META_GENRE_TRAINING_EDUCATIONAL_VIDEO_FILE: WPD_META_GENRES = 39i32; +pub const WPD_META_GENRE_UNUSED: WPD_META_GENRES = 0i32; +pub const WPD_META_GENRE_VIDEO_PODCAST: WPD_META_GENRES = 65i32; +pub const WPD_METHOD_ATTRIBUTES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf17a5071_f039_44af_8efe_432cf32e432a); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_METHOD_ATTRIBUTE_ACCESS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf17a5071_f039_44af_8efe_432cf32e432a), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_METHOD_ATTRIBUTE_ASSOCIATED_FORMAT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf17a5071_f039_44af_8efe_432cf32e432a), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_METHOD_ATTRIBUTE_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf17a5071_f039_44af_8efe_432cf32e432a), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_METHOD_ATTRIBUTE_PARAMETERS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf17a5071_f039_44af_8efe_432cf32e432a), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MUSIC_ALBUM: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb324f56a_dc5d_46e5_b6df_d2ea414888c6), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MUSIC_LYRICS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb324f56a_dc5d_46e5_b6df_d2ea414888c6), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MUSIC_MOOD: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb324f56a_dc5d_46e5_b6df_d2ea414888c6), pid: 8 }; +pub const WPD_MUSIC_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb324f56a_dc5d_46e5_b6df_d2ea414888c6); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_MUSIC_TRACK: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb324f56a_dc5d_46e5_b6df_d2ea414888c6), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_NETWORK_ASSOCIATION_HOST_NETWORK_IDENTIFIERS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe4c93c1f_b203_43f1_a100_5a07d11b0274), pid: 2 }; +pub const WPD_NETWORK_ASSOCIATION_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe4c93c1f_b203_43f1_a100_5a07d11b0274); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_NETWORK_ASSOCIATION_X509V3SEQUENCE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe4c93c1f_b203_43f1_a100_5a07d11b0274), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_BACK_REFERENCES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 21 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_CAN_DELETE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 26 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_CONTAINER_FUNCTIONAL_OBJECT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 23 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_CONTENT_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_DATE_AUTHORED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 20 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_DATE_CREATED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 18 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_DATE_MODIFIED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 19 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_FORMAT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 6 }; +pub const WPD_OBJECT_FORMAT_3G2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9850000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_3G2A: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1a11202d_8759_4e34_ba5e_b1211087eee4); +pub const WPD_OBJECT_FORMAT_3GP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9840000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_3GPA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe5172730_f971_41ef_a10b_2271a0019d7a); +pub const WPD_OBJECT_FORMAT_AAC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9030000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_ABSTRACT_CONTACT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbb810000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_ABSTRACT_CONTACT_GROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba060000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_ABSTRACT_MEDIA_CAST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba0b0000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_AIFF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30070000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_ALL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc1f62eb2_4bb3_479c_9cfa_05b5f3a57b22); +pub const WPD_OBJECT_FORMAT_AMR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9080000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_ASF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x300c0000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_ASXPLAYLIST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba130000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_ATSCTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9870000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_AUDIBLE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9040000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_AVCHD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9860000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_AVI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x300a0000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_BMP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38040000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_CIFF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38050000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_DPOF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30060000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_DVBTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9880000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_EXECUTABLE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30030000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_EXIF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38010000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_FLAC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9060000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_FLASHPIX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38030000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_GIF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38070000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_HTML: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30050000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_ICALENDAR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbe030000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_ICON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x077232ed_102c_4638_9c22_83f142bfc822); +pub const WPD_OBJECT_FORMAT_JFIF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38080000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_JP2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x380f0000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_JPEGXR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb8040000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_JPX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38100000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_M3UPLAYLIST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba110000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_M4A: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30aba7ac_6ffd_4c23_a359_3e9b52f3f1c8); +pub const WPD_OBJECT_FORMAT_MHT_COMPILED_HTML: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba840000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_MICROSOFT_EXCEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba850000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_MICROSOFT_POWERPOINT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba860000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_MICROSOFT_WFC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb1040000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_MICROSOFT_WORD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba830000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_MKV: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9900000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_MP2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9830000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_MP3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30090000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_MP4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9820000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_MPEG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x300b0000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_MPLPLAYLIST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba120000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_NETWORK_ASSOCIATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb1020000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_OGG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9020000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_PCD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38090000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_PICT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x380a0000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_PLSPLAYLIST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba140000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_PNG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x380b0000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_PROPERTIES_ONLY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30010000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_QCELP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9070000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_SCRIPT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30020000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_TEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30040000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_TIFF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x380d0000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_TIFFEP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38020000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_TIFFIT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x380e0000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_UNSPECIFIED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30000000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_VCALENDAR1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbe020000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_VCARD2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbb820000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_VCARD3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbb830000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_WAVE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30080000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_WBMP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb8030000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_WINDOWSIMAGEFORMAT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb8810000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_WMA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9010000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_WMV: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9810000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_WPLPLAYLIST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba100000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_X509V3CERTIFICATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb1030000_ae6c_4804_98ba_c57b46965fe7); +pub const WPD_OBJECT_FORMAT_XML: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba820000_ae6c_4804_98ba_c57b46965fe7); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_GENERATE_THUMBNAIL_FROM_RESOURCE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 24 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_HINT_LOCATION_DISPLAY_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 25 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_ISHIDDEN: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_ISSYSTEM: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_IS_DRM_PROTECTED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 17 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_KEYWORDS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 15 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_LANGUAGE_LOCALE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 27 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_NON_CONSUMABLE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_ORIGINAL_FILE_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_PARENT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_PERSISTENT_UNIQUE_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 5 }; +pub const WPD_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c); +pub const WPD_OBJECT_PROPERTIES_V2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0373cd3d_4a46_40d7_b4d8_73e8da74e775); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_REFERENCES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 14 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_SUPPORTED_UNITS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0373cd3d_4a46_40d7_b4d8_73e8da74e775), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OBJECT_SYNC_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef6b490d_5cd8_437a_affc_da8b60ee4a3c), pid: 16 }; +pub const WPD_OPERATION_STATE_ABORTED: WPD_OPERATION_STATES = 6i32; +pub const WPD_OPERATION_STATE_CANCELLED: WPD_OPERATION_STATES = 4i32; +pub const WPD_OPERATION_STATE_FINISHED: WPD_OPERATION_STATES = 5i32; +pub const WPD_OPERATION_STATE_PAUSED: WPD_OPERATION_STATES = 3i32; +pub const WPD_OPERATION_STATE_RUNNING: WPD_OPERATION_STATES = 2i32; +pub const WPD_OPERATION_STATE_STARTED: WPD_OPERATION_STATES = 1i32; +pub const WPD_OPERATION_STATE_UNSPECIFIED: WPD_OPERATION_STATES = 0i32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OPTION_OBJECT_MANAGEMENT_RECURSIVE_DELETE_SUPPORTED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 5001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OPTION_OBJECT_RESOURCES_NO_INPUT_BUFFER_ON_READ: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 5003 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OPTION_OBJECT_RESOURCES_SEEK_ON_READ_SUPPORTED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 5001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OPTION_OBJECT_RESOURCES_SEEK_ON_WRITE_SUPPORTED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 5002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OPTION_SMS_BINARY_MESSAGE_SUPPORTED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xafc25d66_fe0d_4114_9097_970c93e920d1), pid: 5001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_OPTION_VALID_OBJECT_IDS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 5001 }; +pub const WPD_PARAMETER_ATTRIBUTES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe6864dd7_f325_45ea_a1d5_97cf73b6ca58); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PARAMETER_ATTRIBUTE_DEFAULT_VALUE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe6864dd7_f325_45ea_a1d5_97cf73b6ca58), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PARAMETER_ATTRIBUTE_ENUMERATION_ELEMENTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe6864dd7_f325_45ea_a1d5_97cf73b6ca58), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PARAMETER_ATTRIBUTE_FORM: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe6864dd7_f325_45ea_a1d5_97cf73b6ca58), pid: 4 }; +pub const WPD_PARAMETER_ATTRIBUTE_FORM_ENUMERATION: WpdParameterAttributeForm = 2i32; +pub const WPD_PARAMETER_ATTRIBUTE_FORM_OBJECT_IDENTIFIER: WpdParameterAttributeForm = 4i32; +pub const WPD_PARAMETER_ATTRIBUTE_FORM_RANGE: WpdParameterAttributeForm = 1i32; +pub const WPD_PARAMETER_ATTRIBUTE_FORM_REGULAR_EXPRESSION: WpdParameterAttributeForm = 3i32; +pub const WPD_PARAMETER_ATTRIBUTE_FORM_UNSPECIFIED: WpdParameterAttributeForm = 0i32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PARAMETER_ATTRIBUTE_MAX_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe6864dd7_f325_45ea_a1d5_97cf73b6ca58), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PARAMETER_ATTRIBUTE_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe6864dd7_f325_45ea_a1d5_97cf73b6ca58), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PARAMETER_ATTRIBUTE_ORDER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe6864dd7_f325_45ea_a1d5_97cf73b6ca58), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PARAMETER_ATTRIBUTE_RANGE_MAX: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe6864dd7_f325_45ea_a1d5_97cf73b6ca58), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PARAMETER_ATTRIBUTE_RANGE_MIN: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe6864dd7_f325_45ea_a1d5_97cf73b6ca58), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PARAMETER_ATTRIBUTE_RANGE_STEP: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe6864dd7_f325_45ea_a1d5_97cf73b6ca58), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PARAMETER_ATTRIBUTE_REGULAR_EXPRESSION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe6864dd7_f325_45ea_a1d5_97cf73b6ca58), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PARAMETER_ATTRIBUTE_USAGE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe6864dd7_f325_45ea_a1d5_97cf73b6ca58), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PARAMETER_ATTRIBUTE_VARTYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe6864dd7_f325_45ea_a1d5_97cf73b6ca58), pid: 12 }; +pub const WPD_PARAMETER_USAGE_IN: WPD_PARAMETER_USAGE_TYPES = 1i32; +pub const WPD_PARAMETER_USAGE_INOUT: WPD_PARAMETER_USAGE_TYPES = 3i32; +pub const WPD_PARAMETER_USAGE_OUT: WPD_PARAMETER_USAGE_TYPES = 2i32; +pub const WPD_PARAMETER_USAGE_RETURN: WPD_PARAMETER_USAGE_TYPES = 0i32; +pub const WPD_POWER_SOURCE_BATTERY: WPD_POWER_SOURCES = 0i32; +pub const WPD_POWER_SOURCE_EXTERNAL: WPD_POWER_SOURCES = 1i32; +pub const WPD_PROPERTIES_MTP_VENDOR_EXTENDED_DEVICE_PROPS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d545058_8900_40b3_8f1d_dc246e1e8370); +pub const WPD_PROPERTIES_MTP_VENDOR_EXTENDED_OBJECT_PROPS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d545058_4fce_4578_95c8_8698a9bc0f49); +pub const WPD_PROPERTY_ATTRIBUTES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xab7943d8_6332_445f_a00d_8d5ef1e96f37); +pub const WPD_PROPERTY_ATTRIBUTES_V2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5d9da160_74ae_43cc_85a9_fe555a80798e); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_CAN_DELETE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xab7943d8_6332_445f_a00d_8d5ef1e96f37), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_CAN_READ: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xab7943d8_6332_445f_a00d_8d5ef1e96f37), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_CAN_WRITE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xab7943d8_6332_445f_a00d_8d5ef1e96f37), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_DEFAULT_VALUE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xab7943d8_6332_445f_a00d_8d5ef1e96f37), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_ENUMERATION_ELEMENTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xab7943d8_6332_445f_a00d_8d5ef1e96f37), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_FAST_PROPERTY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xab7943d8_6332_445f_a00d_8d5ef1e96f37), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_FORM: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xab7943d8_6332_445f_a00d_8d5ef1e96f37), pid: 2 }; +pub const WPD_PROPERTY_ATTRIBUTE_FORM_ENUMERATION: WpdAttributeForm = 2i32; +pub const WPD_PROPERTY_ATTRIBUTE_FORM_OBJECT_IDENTIFIER: WpdAttributeForm = 4i32; +pub const WPD_PROPERTY_ATTRIBUTE_FORM_RANGE: WpdAttributeForm = 1i32; +pub const WPD_PROPERTY_ATTRIBUTE_FORM_REGULAR_EXPRESSION: WpdAttributeForm = 3i32; +pub const WPD_PROPERTY_ATTRIBUTE_FORM_UNSPECIFIED: WpdAttributeForm = 0i32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_MAX_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xab7943d8_6332_445f_a00d_8d5ef1e96f37), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x5d9da160_74ae_43cc_85a9_fe555a80798e), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_RANGE_MAX: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xab7943d8_6332_445f_a00d_8d5ef1e96f37), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_RANGE_MIN: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xab7943d8_6332_445f_a00d_8d5ef1e96f37), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_RANGE_STEP: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xab7943d8_6332_445f_a00d_8d5ef1e96f37), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_REGULAR_EXPRESSION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xab7943d8_6332_445f_a00d_8d5ef1e96f37), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_ATTRIBUTE_VARTYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x5d9da160_74ae_43cc_85a9_fe555a80798e), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_COMMAND: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_COMMAND_OPTIONS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1003 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_CONTENT_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1008 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_CONTENT_TYPES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1007 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_EVENT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1014 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_EVENT_OPTIONS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1015 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_FORMAT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1010 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_FORMATS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1009 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_FUNCTIONAL_CATEGORIES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1004 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_FUNCTIONAL_CATEGORY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1005 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_FUNCTIONAL_OBJECTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1006 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_PROPERTY_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1012 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_PROPERTY_KEYS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1011 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_SUPPORTED_COMMANDS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CAPABILITIES_SUPPORTED_EVENTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0cabec78_6b74_41c6_9216_2639d1fce356), pid: 1013 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CLASS_EXTENSION_DEVICE_INFORMATION_VALUES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x33fb0d11_64a3_4fac_b4c7_3dfeaa99b051), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CLASS_EXTENSION_DEVICE_INFORMATION_WRITE_RESULTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x33fb0d11_64a3_4fac_b4c7_3dfeaa99b051), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CLASS_EXTENSION_SERVICE_INTERFACES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f0779b5_fa2b_4766_9cb2_f73ba30b6758), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CLASS_EXTENSION_SERVICE_OBJECT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f0779b5_fa2b_4766_9cb2_f73ba30b6758), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_CLASS_EXTENSION_SERVICE_REGISTRATION_RESULTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f0779b5_fa2b_4766_9cb2_f73ba30b6758), pid: 1003 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_COMMON_ACTIVITY_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 1011 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_COMMON_CLIENT_INFORMATION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 1009 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_COMMON_CLIENT_INFORMATION_CONTEXT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 1010 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_COMMON_COMMAND_CATEGORY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_COMMON_COMMAND_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_COMMON_COMMAND_TARGET: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 1006 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_COMMON_DRIVER_ERROR_CODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 1004 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_COMMON_HRESULT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 1003 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_COMMON_OBJECT_IDS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 1008 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_COMMON_PERSISTENT_UNIQUE_IDS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf0422a9c_5dc8_4440_b5bd_5df28835658a), pid: 1007 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_DEVICE_HINTS_CONTENT_LOCATIONS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0d5fb92b_cb46_4c4f_8343_0bc3d3f17c84), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_DEVICE_HINTS_CONTENT_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x0d5fb92b_cb46_4c4f_8343_0bc3d3f17c84), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_EVENT_PARAMS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_ef88_4e4d_95c3_4f327f728a96), pid: 1011 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_OPERATION_CODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_OPERATION_PARAMS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_OPTIMAL_TRANSFER_BUFFER_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1013 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_RESPONSE_CODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1003 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_RESPONSE_PARAMS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1004 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_TRANSFER_CONTEXT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1006 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_TRANSFER_DATA: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1012 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_TRANSFER_NUM_BYTES_READ: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1009 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_TRANSFER_NUM_BYTES_TO_READ: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1008 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_TRANSFER_NUM_BYTES_TO_WRITE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1010 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_TRANSFER_NUM_BYTES_WRITTEN: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1011 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_TRANSFER_TOTAL_DATA_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1007 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_VENDOR_EXTENSION_DESCRIPTION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1014 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_MTP_EXT_VENDOR_OPERATION_CODES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d545058_1a2e_4106_a357_771e0819fc56), pid: 1005 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_NULL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000000), pid: 0 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_ENUMERATION_CONTEXT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb7474e91_e7f8_4ad9_b400_ad1a4b58eeec), pid: 1004 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_ENUMERATION_FILTER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb7474e91_e7f8_4ad9_b400_ad1a4b58eeec), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_ENUMERATION_NUM_OBJECTS_REQUESTED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb7474e91_e7f8_4ad9_b400_ad1a4b58eeec), pid: 1005 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_ENUMERATION_OBJECT_IDS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb7474e91_e7f8_4ad9_b400_ad1a4b58eeec), pid: 1003 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_ENUMERATION_PARENT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb7474e91_e7f8_4ad9_b400_ad1a4b58eeec), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_CONTEXT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_COPY_RESULTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1013 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_CREATION_PROPERTIES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_DATA: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1005 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_DELETE_OPTIONS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1007 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_DELETE_RESULTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1010 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_DESTINATION_FOLDER_OBJECT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1011 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_MOVE_RESULTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1012 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_NUM_BYTES_TO_WRITE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1003 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_NUM_BYTES_WRITTEN: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1004 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_OBJECT_FORMAT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1016 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_OBJECT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1006 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_OBJECT_IDS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1009 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_OPTIMAL_TRANSFER_BUFFER_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1008 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_PROPERTY_KEYS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1015 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_MANAGEMENT_UPDATE_PROPERTIES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1e43dd_a9ed_4341_8bcc_186192aea089), pid: 1014 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_BULK_CONTEXT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_BULK_DEPTH: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 1005 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_BULK_OBJECT_FORMAT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 1007 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_BULK_OBJECT_IDS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_BULK_PARENT_OBJECT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 1006 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_BULK_PROPERTY_KEYS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 1004 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_BULK_VALUES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 1003 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_BULK_WRITE_RESULTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x11c824dd_04cd_4e4e_8c7b_f6efb794d84e), pid: 1008 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_OBJECT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x9e5582e4_0814_44e6_981a_b2998d583804), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_PROPERTY_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x9e5582e4_0814_44e6_981a_b2998d583804), pid: 1003 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_PROPERTY_DELETE_RESULTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x9e5582e4_0814_44e6_981a_b2998d583804), pid: 1006 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_PROPERTY_KEYS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x9e5582e4_0814_44e6_981a_b2998d583804), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_PROPERTY_VALUES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x9e5582e4_0814_44e6_981a_b2998d583804), pid: 1004 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_PROPERTIES_PROPERTY_WRITE_RESULTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x9e5582e4_0814_44e6_981a_b2998d583804), pid: 1005 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_ACCESS_MODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_CONTEXT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1005 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_DATA: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1010 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_NUM_BYTES_READ: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1007 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_NUM_BYTES_TO_READ: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1006 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_NUM_BYTES_TO_WRITE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1008 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_NUM_BYTES_WRITTEN: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1009 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_OBJECT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_OPTIMAL_TRANSFER_BUFFER_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1011 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_POSITION_FROM_START: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1014 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_RESOURCE_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1004 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_RESOURCE_KEYS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1003 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_SEEK_OFFSET: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1012 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_SEEK_ORIGIN_FLAG: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1013 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_STREAM_UNITS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1016 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_OBJECT_RESOURCES_SUPPORTS_UNITS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb3a2b22d_a595_4108_be0a_fc3c965f3d4a), pid: 1015 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_PUBLIC_KEY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78f9c6fc_79b8_473c_9060_6bd23dd072c4), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_COMMAND: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1018 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_COMMAND_OPTIONS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1019 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_EVENT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1012 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_EVENT_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1013 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_FORMAT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_FORMATS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1007 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_FORMAT_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1008 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_INHERITANCE_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1014 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_INHERITED_SERVICES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1015 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_METHOD: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1003 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_METHOD_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1004 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_PARAMETER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1005 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_PARAMETER_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1006 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_PROPERTY_ATTRIBUTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1010 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_PROPERTY_KEYS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1009 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_RENDERING_PROFILES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1016 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_SUPPORTED_COMMANDS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1017 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_SUPPORTED_EVENTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1011 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_CAPABILITIES_SUPPORTED_METHODS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x24457e74_2e9f_44f9_8c57_1d1bcb170b89), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_METHOD: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2d521ca8_c1b0_4268_a342_cf19321569bc), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_METHOD_CONTEXT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2d521ca8_c1b0_4268_a342_cf19321569bc), pid: 1004 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_METHOD_HRESULT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2d521ca8_c1b0_4268_a342_cf19321569bc), pid: 1005 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_METHOD_PARAMETER_VALUES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2d521ca8_c1b0_4268_a342_cf19321569bc), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_METHOD_RESULT_VALUES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2d521ca8_c1b0_4268_a342_cf19321569bc), pid: 1003 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SERVICE_OBJECT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x322f071d_36ef_477f_b4b5_6f52d734baee), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SMS_BINARY_MESSAGE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xafc25d66_fe0d_4114_9097_970c93e920d1), pid: 1004 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SMS_MESSAGE_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xafc25d66_fe0d_4114_9097_970c93e920d1), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SMS_RECIPIENT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xafc25d66_fe0d_4114_9097_970c93e920d1), pid: 1001 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_SMS_TEXT_MESSAGE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xafc25d66_fe0d_4114_9097_970c93e920d1), pid: 1003 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_STORAGE_DESTINATION_OBJECT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd8f907a6_34cc_45fa_97fb_d007fa47ec94), pid: 1002 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_PROPERTY_STORAGE_OBJECT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd8f907a6_34cc_45fa_97fb_d007fa47ec94), pid: 1001 }; +pub const WPD_RENDERING_INFORMATION_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc53d039f_ee23_4a31_8590_7639879870b4); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RENDERING_INFORMATION_PROFILES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xc53d039f_ee23_4a31_8590_7639879870b4), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RENDERING_INFORMATION_PROFILE_ENTRY_CREATABLE_RESOURCES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xc53d039f_ee23_4a31_8590_7639879870b4), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RENDERING_INFORMATION_PROFILE_ENTRY_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xc53d039f_ee23_4a31_8590_7639879870b4), pid: 3 }; +pub const WPD_RENDERING_INFORMATION_PROFILE_ENTRY_TYPE_OBJECT: WPD_RENDERING_INFORMATION_PROFILE_ENTRY_TYPES = 0i32; +pub const WPD_RENDERING_INFORMATION_PROFILE_ENTRY_TYPE_RESOURCE: WPD_RENDERING_INFORMATION_PROFILE_ENTRY_TYPES = 1i32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_ALBUM_ART: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf02aa354_2300_4e2d_a1b9_3b6730f7fa21), pid: 0 }; +pub const WPD_RESOURCE_ATTRIBUTES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1eb6f604_9278_429f_93cc_5bb8c06656b6); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_ATTRIBUTE_CAN_DELETE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1eb6f604_9278_429f_93cc_5bb8c06656b6), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_ATTRIBUTE_CAN_READ: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1eb6f604_9278_429f_93cc_5bb8c06656b6), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_ATTRIBUTE_CAN_WRITE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1eb6f604_9278_429f_93cc_5bb8c06656b6), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_ATTRIBUTE_FORMAT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1eb6f604_9278_429f_93cc_5bb8c06656b6), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_ATTRIBUTE_OPTIMAL_READ_BUFFER_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1eb6f604_9278_429f_93cc_5bb8c06656b6), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_ATTRIBUTE_OPTIMAL_WRITE_BUFFER_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1eb6f604_9278_429f_93cc_5bb8c06656b6), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_ATTRIBUTE_RESOURCE_KEY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1eb6f604_9278_429f_93cc_5bb8c06656b6), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_ATTRIBUTE_TOTAL_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1eb6f604_9278_429f_93cc_5bb8c06656b6), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_AUDIO_CLIP: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3bc13982_85b1_48e0_95a6_8d3ad06be117), pid: 0 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_BRANDING_ART: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb633b1ae_6caf_4a87_9589_22ded6dd5899), pid: 0 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_CONTACT_PHOTO: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2c4d6803_80ea_4580_af9a_5be1a23eddcb), pid: 0 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_DEFAULT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe81e79be_34f0_41bf_b53f_f1a06ae87842), pid: 0 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_GENERIC: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb9b9f515_ba70_4647_94dc_fa4925e95a07), pid: 0 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_ICON: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf195fed8_aa28_4ee3_b153_e182dd5edc39), pid: 0 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_THUMBNAIL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xc7c407ba_98fa_46b5_9960_23fec124cfde), pid: 0 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_RESOURCE_VIDEO_CLIP: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb566ee42_6368_4290_8662_70182fb79f20), pid: 0 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_SECTION_DATA_LENGTH: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x516afd2b_c64e_44f0_98dc_bee1c88f7d66), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_SECTION_DATA_OFFSET: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x516afd2b_c64e_44f0_98dc_bee1c88f7d66), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_SECTION_DATA_REFERENCED_OBJECT_RESOURCE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x516afd2b_c64e_44f0_98dc_bee1c88f7d66), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_SECTION_DATA_UNITS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x516afd2b_c64e_44f0_98dc_bee1c88f7d66), pid: 4 }; +pub const WPD_SECTION_DATA_UNITS_BYTES: WPD_SECTION_DATA_UNITS_VALUES = 0i32; +pub const WPD_SECTION_DATA_UNITS_MILLISECONDS: WPD_SECTION_DATA_UNITS_VALUES = 1i32; +pub const WPD_SECTION_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x516afd2b_c64e_44f0_98dc_bee1c88f7d66); +pub const WPD_SERVICE_INHERITANCE_IMPLEMENTATION: WPD_SERVICE_INHERITANCE_TYPES = 0i32; +pub const WPD_SERVICE_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7510698a_cb54_481c_b8db_0d75c93f1c06); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_SERVICE_VERSION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7510698a_cb54_481c_b8db_0d75c93f1c06), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_SMS_ENCODING: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7e1074cc_50ff_4dd1_a742_53be6f093a0d), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_SMS_MAX_PAYLOAD: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7e1074cc_50ff_4dd1_a742_53be6f093a0d), pid: 4 }; +pub const WPD_SMS_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7e1074cc_50ff_4dd1_a742_53be6f093a0d); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_SMS_PROVIDER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7e1074cc_50ff_4dd1_a742_53be6f093a0d), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_SMS_TIMEOUT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7e1074cc_50ff_4dd1_a742_53be6f093a0d), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_ARTIST: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 29 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_BURST_INTERVAL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 24 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_BURST_NUMBER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 23 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_CAMERA_MANUFACTURER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 31 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_CAMERA_MODEL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 30 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_CAPTURE_DELAY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 17 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_CAPTURE_FORMAT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_CAPTURE_MODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 18 }; +pub const WPD_STILL_IMAGE_CAPTURE_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_CAPTURE_RESOLUTION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_COMPRESSION_SETTING: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_CONTRAST: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 19 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_DIGITAL_ZOOM: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 21 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_EFFECT_MODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 22 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_EXPOSURE_BIAS_COMPENSATION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 16 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_EXPOSURE_INDEX: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 15 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_EXPOSURE_METERING_MODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_EXPOSURE_PROGRAM_MODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 14 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_EXPOSURE_TIME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_FLASH_MODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_FNUMBER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_FOCAL_LENGTH: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_FOCUS_DISTANCE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_FOCUS_METERING_MODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 27 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_FOCUS_MODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_RGB_GAIN: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_SHARPNESS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 20 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_TIMELAPSE_INTERVAL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 26 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_TIMELAPSE_NUMBER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 25 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_UPLOAD_URL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 28 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STILL_IMAGE_WHITE_BALANCE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x58c571ec_1bcb_42a7_8ac5_bb291573a260), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STORAGE_ACCESS_CAPABILITY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x01a3057a_74d6_4e80_bea7_dc4c212ce50a), pid: 11 }; +pub const WPD_STORAGE_ACCESS_CAPABILITY_READWRITE: WPD_STORAGE_ACCESS_CAPABILITY_VALUES = 0i32; +pub const WPD_STORAGE_ACCESS_CAPABILITY_READ_ONLY_WITHOUT_OBJECT_DELETION: WPD_STORAGE_ACCESS_CAPABILITY_VALUES = 1i32; +pub const WPD_STORAGE_ACCESS_CAPABILITY_READ_ONLY_WITH_OBJECT_DELETION: WPD_STORAGE_ACCESS_CAPABILITY_VALUES = 2i32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STORAGE_CAPACITY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x01a3057a_74d6_4e80_bea7_dc4c212ce50a), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STORAGE_CAPACITY_IN_OBJECTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x01a3057a_74d6_4e80_bea7_dc4c212ce50a), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STORAGE_DESCRIPTION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x01a3057a_74d6_4e80_bea7_dc4c212ce50a), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STORAGE_FILE_SYSTEM_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x01a3057a_74d6_4e80_bea7_dc4c212ce50a), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STORAGE_FREE_SPACE_IN_BYTES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x01a3057a_74d6_4e80_bea7_dc4c212ce50a), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STORAGE_FREE_SPACE_IN_OBJECTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x01a3057a_74d6_4e80_bea7_dc4c212ce50a), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STORAGE_MAX_OBJECT_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x01a3057a_74d6_4e80_bea7_dc4c212ce50a), pid: 9 }; +pub const WPD_STORAGE_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x01a3057a_74d6_4e80_bea7_dc4c212ce50a); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STORAGE_SERIAL_NUMBER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x01a3057a_74d6_4e80_bea7_dc4c212ce50a), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_STORAGE_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x01a3057a_74d6_4e80_bea7_dc4c212ce50a), pid: 2 }; +pub const WPD_STORAGE_TYPE_FIXED_RAM: WPD_STORAGE_TYPE_VALUES = 3i32; +pub const WPD_STORAGE_TYPE_FIXED_ROM: WPD_STORAGE_TYPE_VALUES = 1i32; +pub const WPD_STORAGE_TYPE_REMOVABLE_RAM: WPD_STORAGE_TYPE_VALUES = 4i32; +pub const WPD_STORAGE_TYPE_REMOVABLE_ROM: WPD_STORAGE_TYPE_VALUES = 2i32; +pub const WPD_STORAGE_TYPE_UNDEFINED: WPD_STORAGE_TYPE_VALUES = 0i32; +pub const WPD_STREAM_UNITS_BYTES: WPD_STREAM_UNITS = 0i32; +pub const WPD_STREAM_UNITS_FRAMES: WPD_STREAM_UNITS = 1i32; +pub const WPD_STREAM_UNITS_MICROSECONDS: WPD_STREAM_UNITS = 8i32; +pub const WPD_STREAM_UNITS_MILLISECONDS: WPD_STREAM_UNITS = 4i32; +pub const WPD_STREAM_UNITS_ROWS: WPD_STREAM_UNITS = 2i32; +pub const WPD_TASK_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe354e95e_d8a0_4637_a03a_0cb26838dbc7); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_TASK_OWNER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe354e95e_d8a0_4637_a03a_0cb26838dbc7), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_TASK_PERCENT_COMPLETE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe354e95e_d8a0_4637_a03a_0cb26838dbc7), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_TASK_REMINDER_DATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe354e95e_d8a0_4637_a03a_0cb26838dbc7), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_TASK_STATUS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe354e95e_d8a0_4637_a03a_0cb26838dbc7), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_VIDEO_AUTHOR: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x346f2163_f998_4146_8b01_d19b4c00de9a), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_VIDEO_BITRATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x346f2163_f998_4146_8b01_d19b4c00de9a), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_VIDEO_BUFFER_SIZE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x346f2163_f998_4146_8b01_d19b4c00de9a), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_VIDEO_CREDITS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x346f2163_f998_4146_8b01_d19b4c00de9a), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_VIDEO_FOURCC_CODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x346f2163_f998_4146_8b01_d19b4c00de9a), pid: 14 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_VIDEO_FRAMERATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x346f2163_f998_4146_8b01_d19b4c00de9a), pid: 15 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_VIDEO_KEY_FRAME_DISTANCE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x346f2163_f998_4146_8b01_d19b4c00de9a), pid: 10 }; +pub const WPD_VIDEO_OBJECT_PROPERTIES_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x346f2163_f998_4146_8b01_d19b4c00de9a); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_VIDEO_QUALITY_SETTING: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x346f2163_f998_4146_8b01_d19b4c00de9a), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_VIDEO_RECORDEDTV_CHANNEL_NUMBER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x346f2163_f998_4146_8b01_d19b4c00de9a), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_VIDEO_RECORDEDTV_REPEAT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x346f2163_f998_4146_8b01_d19b4c00de9a), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_VIDEO_RECORDEDTV_STATION_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x346f2163_f998_4146_8b01_d19b4c00de9a), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const WPD_VIDEO_SCAN_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x346f2163_f998_4146_8b01_d19b4c00de9a), pid: 12 }; +pub const WPD_VIDEO_SCAN_TYPE_FIELD_INTERLEAVED_LOWER_FIRST: WPD_VIDEO_SCAN_TYPES = 3i32; +pub const WPD_VIDEO_SCAN_TYPE_FIELD_INTERLEAVED_UPPER_FIRST: WPD_VIDEO_SCAN_TYPES = 2i32; +pub const WPD_VIDEO_SCAN_TYPE_FIELD_SINGLE_LOWER_FIRST: WPD_VIDEO_SCAN_TYPES = 5i32; +pub const WPD_VIDEO_SCAN_TYPE_FIELD_SINGLE_UPPER_FIRST: WPD_VIDEO_SCAN_TYPES = 4i32; +pub const WPD_VIDEO_SCAN_TYPE_MIXED_INTERLACE: WPD_VIDEO_SCAN_TYPES = 6i32; +pub const WPD_VIDEO_SCAN_TYPE_MIXED_INTERLACE_AND_PROGRESSIVE: WPD_VIDEO_SCAN_TYPES = 7i32; +pub const WPD_VIDEO_SCAN_TYPE_PROGRESSIVE: WPD_VIDEO_SCAN_TYPES = 1i32; +pub const WPD_VIDEO_SCAN_TYPE_UNUSED: WPD_VIDEO_SCAN_TYPES = 0i32; +pub const WPD_WHITE_BALANCE_AUTOMATIC: WPD_WHITE_BALANCE_SETTINGS = 2i32; +pub const WPD_WHITE_BALANCE_DAYLIGHT: WPD_WHITE_BALANCE_SETTINGS = 4i32; +pub const WPD_WHITE_BALANCE_FLASH: WPD_WHITE_BALANCE_SETTINGS = 7i32; +pub const WPD_WHITE_BALANCE_FLORESCENT: WPD_WHITE_BALANCE_SETTINGS = 5i32; +pub const WPD_WHITE_BALANCE_MANUAL: WPD_WHITE_BALANCE_SETTINGS = 1i32; +pub const WPD_WHITE_BALANCE_ONE_PUSH_AUTOMATIC: WPD_WHITE_BALANCE_SETTINGS = 3i32; +pub const WPD_WHITE_BALANCE_TUNGSTEN: WPD_WHITE_BALANCE_SETTINGS = 6i32; +pub const WPD_WHITE_BALANCE_UNDEFINED: WPD_WHITE_BALANCE_SETTINGS = 0i32; +pub const WpdSerializer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0b91a74b_ad7c_4a9d_b563_29eef9167172); +pub type DELETE_OBJECT_OPTIONS = i32; +pub type DEVICE_RADIO_STATE = i32; +pub type SMS_MESSAGE_TYPES = i32; +pub type SYSTEM_RADIO_STATE = i32; +pub type WPD_BITRATE_TYPES = i32; +pub type WPD_CAPTURE_MODES = i32; +pub type WPD_COLOR_CORRECTED_STATUS_VALUES = i32; +pub type WPD_COMMAND_ACCESS_TYPES = i32; +pub type WPD_CROPPED_STATUS_VALUES = i32; +pub type WPD_DEVICE_TRANSPORTS = i32; +pub type WPD_DEVICE_TYPES = i32; +pub type WPD_EFFECT_MODES = i32; +pub type WPD_EXPOSURE_METERING_MODES = i32; +pub type WPD_EXPOSURE_PROGRAM_MODES = i32; +pub type WPD_FLASH_MODES = i32; +pub type WPD_FOCUS_METERING_MODES = i32; +pub type WPD_FOCUS_MODES = i32; +pub type WPD_META_GENRES = i32; +pub type WPD_OPERATION_STATES = i32; +pub type WPD_PARAMETER_USAGE_TYPES = i32; +pub type WPD_POWER_SOURCES = i32; +pub type WPD_RENDERING_INFORMATION_PROFILE_ENTRY_TYPES = i32; +pub type WPD_SECTION_DATA_UNITS_VALUES = i32; +pub type WPD_SERVICE_INHERITANCE_TYPES = i32; +pub type WPD_SMS_ENCODING_TYPES = i32; +pub type WPD_STORAGE_ACCESS_CAPABILITY_VALUES = i32; +pub type WPD_STORAGE_TYPE_VALUES = i32; +pub type WPD_STREAM_UNITS = i32; +pub type WPD_VIDEO_SCAN_TYPES = i32; +pub type WPD_WHITE_BALANCE_SETTINGS = i32; +pub type WpdAttributeForm = i32; +pub type WpdParameterAttributeForm = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub struct WPD_COMMAND_ACCESS_LOOKUP_ENTRY { + pub Command: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY, + pub AccessType: u32, + pub AccessProperty: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY, +} +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +impl ::core::marker::Copy for WPD_COMMAND_ACCESS_LOOKUP_ENTRY {} +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +impl ::core::clone::Clone for WPD_COMMAND_ACCESS_LOOKUP_ENTRY { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Properties/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Properties/mod.rs new file mode 100644 index 000000000..2c85ba50d --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Properties/mod.rs @@ -0,0 +1,274 @@ +pub const DEVPKEY_DevQuery_ObjectType: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x13673f42_a3d6_49f6_b4da_ae46e0c5237c), pid: 2 }; +pub const DEVPKEY_DeviceClass_Characteristics: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4321918b_f69e_470d_a5de_4d88c75ad24b), pid: 29 }; +pub const DEVPKEY_DeviceClass_ClassCoInstallers: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x713d1703_a2e2_49f5_9214_56472ef3da5c), pid: 2 }; +pub const DEVPKEY_DeviceClass_ClassInstaller: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x259abffc_50a7_47ce_af08_68c9a7d73366), pid: 5 }; +pub const DEVPKEY_DeviceClass_ClassName: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x259abffc_50a7_47ce_af08_68c9a7d73366), pid: 3 }; +pub const DEVPKEY_DeviceClass_DHPRebalanceOptOut: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd14d3ef3_66cf_4ba2_9d38_0ddb37ab4701), pid: 2 }; +pub const DEVPKEY_DeviceClass_DefaultService: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x259abffc_50a7_47ce_af08_68c9a7d73366), pid: 11 }; +pub const DEVPKEY_DeviceClass_DevType: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4321918b_f69e_470d_a5de_4d88c75ad24b), pid: 27 }; +pub const DEVPKEY_DeviceClass_Exclusive: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4321918b_f69e_470d_a5de_4d88c75ad24b), pid: 28 }; +pub const DEVPKEY_DeviceClass_Icon: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x259abffc_50a7_47ce_af08_68c9a7d73366), pid: 4 }; +pub const DEVPKEY_DeviceClass_IconPath: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x259abffc_50a7_47ce_af08_68c9a7d73366), pid: 12 }; +pub const DEVPKEY_DeviceClass_LowerFilters: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4321918b_f69e_470d_a5de_4d88c75ad24b), pid: 20 }; +pub const DEVPKEY_DeviceClass_Name: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x259abffc_50a7_47ce_af08_68c9a7d73366), pid: 2 }; +pub const DEVPKEY_DeviceClass_NoDisplayClass: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x259abffc_50a7_47ce_af08_68c9a7d73366), pid: 8 }; +pub const DEVPKEY_DeviceClass_NoInstallClass: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x259abffc_50a7_47ce_af08_68c9a7d73366), pid: 7 }; +pub const DEVPKEY_DeviceClass_NoUseClass: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x259abffc_50a7_47ce_af08_68c9a7d73366), pid: 10 }; +pub const DEVPKEY_DeviceClass_PropPageProvider: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x259abffc_50a7_47ce_af08_68c9a7d73366), pid: 6 }; +pub const DEVPKEY_DeviceClass_Security: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4321918b_f69e_470d_a5de_4d88c75ad24b), pid: 25 }; +pub const DEVPKEY_DeviceClass_SecuritySDS: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4321918b_f69e_470d_a5de_4d88c75ad24b), pid: 26 }; +pub const DEVPKEY_DeviceClass_SilentInstall: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x259abffc_50a7_47ce_af08_68c9a7d73366), pid: 9 }; +pub const DEVPKEY_DeviceClass_UpperFilters: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4321918b_f69e_470d_a5de_4d88c75ad24b), pid: 19 }; +pub const DEVPKEY_DeviceContainer_Address: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 51 }; +pub const DEVPKEY_DeviceContainer_AlwaysShowDeviceAsConnected: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 101 }; +pub const DEVPKEY_DeviceContainer_AssociationArray: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 80 }; +pub const DEVPKEY_DeviceContainer_BaselineExperienceId: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 78 }; +pub const DEVPKEY_DeviceContainer_Category: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 90 }; +pub const DEVPKEY_DeviceContainer_CategoryGroup_Desc: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 94 }; +pub const DEVPKEY_DeviceContainer_CategoryGroup_Icon: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 95 }; +pub const DEVPKEY_DeviceContainer_Category_Desc_Plural: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 92 }; +pub const DEVPKEY_DeviceContainer_Category_Desc_Singular: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 91 }; +pub const DEVPKEY_DeviceContainer_Category_Icon: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 93 }; +pub const DEVPKEY_DeviceContainer_ConfigFlags: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 105 }; +pub const DEVPKEY_DeviceContainer_CustomPrivilegedPackageFamilyNames: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 107 }; +pub const DEVPKEY_DeviceContainer_DeviceDescription1: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 81 }; +pub const DEVPKEY_DeviceContainer_DeviceDescription2: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 82 }; +pub const DEVPKEY_DeviceContainer_DeviceFunctionSubRank: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 100 }; +pub const DEVPKEY_DeviceContainer_DiscoveryMethod: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 52 }; +pub const DEVPKEY_DeviceContainer_ExperienceId: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 89 }; +pub const DEVPKEY_DeviceContainer_FriendlyName: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x656a3bb3_ecc0_43fd_8477_4ae0404a96cd), pid: 12288 }; +pub const DEVPKEY_DeviceContainer_HasProblem: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 83 }; +pub const DEVPKEY_DeviceContainer_Icon: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 57 }; +pub const DEVPKEY_DeviceContainer_InstallInProgress: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x83da6326_97a6_4088_9453_a1923f573b29), pid: 9 }; +pub const DEVPKEY_DeviceContainer_IsAuthenticated: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 54 }; +pub const DEVPKEY_DeviceContainer_IsConnected: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 55 }; +pub const DEVPKEY_DeviceContainer_IsDefaultDevice: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 86 }; +pub const DEVPKEY_DeviceContainer_IsDeviceUniquelyIdentifiable: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 79 }; +pub const DEVPKEY_DeviceContainer_IsEncrypted: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 53 }; +pub const DEVPKEY_DeviceContainer_IsLocalMachine: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 70 }; +pub const DEVPKEY_DeviceContainer_IsMetadataSearchInProgress: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 72 }; +pub const DEVPKEY_DeviceContainer_IsNetworkDevice: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 85 }; +pub const DEVPKEY_DeviceContainer_IsNotInterestingForDisplay: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 74 }; +pub const DEVPKEY_DeviceContainer_IsPaired: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 56 }; +pub const DEVPKEY_DeviceContainer_IsRebootRequired: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 108 }; +pub const DEVPKEY_DeviceContainer_IsSharedDevice: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 84 }; +pub const DEVPKEY_DeviceContainer_IsShowInDisconnectedState: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 68 }; +pub const DEVPKEY_DeviceContainer_Last_Connected: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 67 }; +pub const DEVPKEY_DeviceContainer_Last_Seen: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 66 }; +pub const DEVPKEY_DeviceContainer_LaunchDeviceStageFromExplorer: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 77 }; +pub const DEVPKEY_DeviceContainer_LaunchDeviceStageOnDeviceConnect: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 76 }; +pub const DEVPKEY_DeviceContainer_Manufacturer: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x656a3bb3_ecc0_43fd_8477_4ae0404a96cd), pid: 8192 }; +pub const DEVPKEY_DeviceContainer_MetadataCabinet: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 87 }; +pub const DEVPKEY_DeviceContainer_MetadataChecksum: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 73 }; +pub const DEVPKEY_DeviceContainer_MetadataPath: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 71 }; +pub const DEVPKEY_DeviceContainer_ModelName: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x656a3bb3_ecc0_43fd_8477_4ae0404a96cd), pid: 8194 }; +pub const DEVPKEY_DeviceContainer_ModelNumber: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x656a3bb3_ecc0_43fd_8477_4ae0404a96cd), pid: 8195 }; +pub const DEVPKEY_DeviceContainer_PrimaryCategory: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 97 }; +pub const DEVPKEY_DeviceContainer_PrivilegedPackageFamilyNames: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 106 }; +pub const DEVPKEY_DeviceContainer_RequiresPairingElevation: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 88 }; +pub const DEVPKEY_DeviceContainer_RequiresUninstallElevation: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 99 }; +pub const DEVPKEY_DeviceContainer_UnpairUninstall: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 98 }; +pub const DEVPKEY_DeviceContainer_Version: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 65 }; +pub const DEVPKEY_DeviceInterfaceClass_DefaultInterface: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x14c83a99_0b3f_44b7_be4c_a178d3990564), pid: 2 }; +pub const DEVPKEY_DeviceInterfaceClass_Name: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x14c83a99_0b3f_44b7_be4c_a178d3990564), pid: 3 }; +pub const DEVPKEY_DeviceInterface_Autoplay_Silent: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x434dd28f_9e75_450a_9ab9_ff61e618bad0), pid: 2 }; +pub const DEVPKEY_DeviceInterface_ClassGuid: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x026e516e_b814_414b_83cd_856d6fef4822), pid: 4 }; +pub const DEVPKEY_DeviceInterface_Enabled: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x026e516e_b814_414b_83cd_856d6fef4822), pid: 3 }; +pub const DEVPKEY_DeviceInterface_FriendlyName: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x026e516e_b814_414b_83cd_856d6fef4822), pid: 2 }; +pub const DEVPKEY_DeviceInterface_ReferenceString: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x026e516e_b814_414b_83cd_856d6fef4822), pid: 5 }; +pub const DEVPKEY_DeviceInterface_Restricted: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x026e516e_b814_414b_83cd_856d6fef4822), pid: 6 }; +pub const DEVPKEY_DeviceInterface_SchematicName: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x026e516e_b814_414b_83cd_856d6fef4822), pid: 9 }; +pub const DEVPKEY_DeviceInterface_UnrestrictedAppCapabilities: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x026e516e_b814_414b_83cd_856d6fef4822), pid: 8 }; +pub const DEVPKEY_Device_AdditionalSoftwareRequested: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 19 }; +pub const DEVPKEY_Device_Address: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 30 }; +pub const DEVPKEY_Device_AssignedToGuest: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 24 }; +pub const DEVPKEY_Device_BaseContainerId: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 38 }; +pub const DEVPKEY_Device_BiosDeviceName: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 10 }; +pub const DEVPKEY_Device_BusNumber: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 23 }; +pub const DEVPKEY_Device_BusRelations: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4340a6c5_93fa_4706_972c_7b648008a5a7), pid: 7 }; +pub const DEVPKEY_Device_BusReportedDeviceDesc: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 4 }; +pub const DEVPKEY_Device_BusTypeGuid: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 21 }; +pub const DEVPKEY_Device_Capabilities: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 17 }; +pub const DEVPKEY_Device_Characteristics: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 29 }; +pub const DEVPKEY_Device_Children: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4340a6c5_93fa_4706_972c_7b648008a5a7), pid: 9 }; +pub const DEVPKEY_Device_Class: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 9 }; +pub const DEVPKEY_Device_ClassGuid: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 10 }; +pub const DEVPKEY_Device_CompatibleIds: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 4 }; +pub const DEVPKEY_Device_ConfigFlags: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 12 }; +pub const DEVPKEY_Device_ConfigurationId: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 7 }; +pub const DEVPKEY_Device_ContainerId: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x8c7ed206_3f8a_4827_b3ab_ae9e1faefc6c), pid: 2 }; +pub const DEVPKEY_Device_CreatorProcessId: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 25 }; +pub const DEVPKEY_Device_DHP_Rebalance_Policy: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 2 }; +pub const DEVPKEY_Device_DebuggerSafe: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 12 }; +pub const DEVPKEY_Device_DependencyDependents: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 21 }; +pub const DEVPKEY_Device_DependencyProviders: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 20 }; +pub const DEVPKEY_Device_DevNodeStatus: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4340a6c5_93fa_4706_972c_7b648008a5a7), pid: 2 }; +pub const DEVPKEY_Device_DevType: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 27 }; +pub const DEVPKEY_Device_DeviceDesc: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 2 }; +pub const DEVPKEY_Device_Driver: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 11 }; +pub const DEVPKEY_Device_DriverCoInstallers: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 11 }; +pub const DEVPKEY_Device_DriverDate: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 2 }; +pub const DEVPKEY_Device_DriverDesc: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 4 }; +pub const DEVPKEY_Device_DriverInfPath: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 5 }; +pub const DEVPKEY_Device_DriverInfSection: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 6 }; +pub const DEVPKEY_Device_DriverInfSectionExt: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 7 }; +pub const DEVPKEY_Device_DriverLogoLevel: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 15 }; +pub const DEVPKEY_Device_DriverProblemDesc: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 11 }; +pub const DEVPKEY_Device_DriverPropPageProvider: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 10 }; +pub const DEVPKEY_Device_DriverProvider: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 9 }; +pub const DEVPKEY_Device_DriverRank: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 14 }; +pub const DEVPKEY_Device_DriverVersion: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 3 }; +pub const DEVPKEY_Device_EjectionRelations: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4340a6c5_93fa_4706_972c_7b648008a5a7), pid: 4 }; +pub const DEVPKEY_Device_EnumeratorName: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 24 }; +pub const DEVPKEY_Device_Exclusive: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 28 }; +pub const DEVPKEY_Device_ExtendedAddress: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 23 }; +pub const DEVPKEY_Device_ExtendedConfigurationIds: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 15 }; +pub const DEVPKEY_Device_FirmwareDate: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 17 }; +pub const DEVPKEY_Device_FirmwareRevision: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 19 }; +pub const DEVPKEY_Device_FirmwareVendor: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 26 }; +pub const DEVPKEY_Device_FirmwareVersion: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 18 }; +pub const DEVPKEY_Device_FirstInstallDate: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x83da6326_97a6_4088_9453_a1923f573b29), pid: 101 }; +pub const DEVPKEY_Device_FriendlyName: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 14 }; +pub const DEVPKEY_Device_FriendlyNameAttributes: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x80d81ea6_7473_4b0c_8216_efc11a2c4c8b), pid: 3 }; +pub const DEVPKEY_Device_GenericDriverInstalled: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 18 }; +pub const DEVPKEY_Device_HardwareIds: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 3 }; +pub const DEVPKEY_Device_HasProblem: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 6 }; +pub const DEVPKEY_Device_InLocalMachineContainer: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x8c7ed206_3f8a_4827_b3ab_ae9e1faefc6c), pid: 4 }; +pub const DEVPKEY_Device_InstallDate: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x83da6326_97a6_4088_9453_a1923f573b29), pid: 100 }; +pub const DEVPKEY_Device_InstallState: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 36 }; +pub const DEVPKEY_Device_InstanceId: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 256 }; +pub const DEVPKEY_Device_IsAssociateableByUserAction: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x80d81ea6_7473_4b0c_8216_efc11a2c4c8b), pid: 7 }; +pub const DEVPKEY_Device_IsPresent: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 5 }; +pub const DEVPKEY_Device_IsRebootRequired: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 16 }; +pub const DEVPKEY_Device_LastArrivalDate: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x83da6326_97a6_4088_9453_a1923f573b29), pid: 102 }; +pub const DEVPKEY_Device_LastRemovalDate: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x83da6326_97a6_4088_9453_a1923f573b29), pid: 103 }; +pub const DEVPKEY_Device_Legacy: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x80497100_8c73_48b9_aad9_ce387e19c56e), pid: 3 }; +pub const DEVPKEY_Device_LegacyBusType: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 22 }; +pub const DEVPKEY_Device_LocationInfo: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 15 }; +pub const DEVPKEY_Device_LocationPaths: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 37 }; +pub const DEVPKEY_Device_LowerFilters: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 20 }; +pub const DEVPKEY_Device_Manufacturer: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 13 }; +pub const DEVPKEY_Device_ManufacturerAttributes: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x80d81ea6_7473_4b0c_8216_efc11a2c4c8b), pid: 4 }; +pub const DEVPKEY_Device_MatchingDeviceId: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 8 }; +pub const DEVPKEY_Device_Model: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x78c34fc8_104a_4aca_9ea4_524d52996e57), pid: 39 }; +pub const DEVPKEY_Device_ModelId: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x80d81ea6_7473_4b0c_8216_efc11a2c4c8b), pid: 2 }; +pub const DEVPKEY_Device_NoConnectSound: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 17 }; +pub const DEVPKEY_Device_Numa_Node: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 3 }; +pub const DEVPKEY_Device_Numa_Proximity_Domain: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 1 }; +pub const DEVPKEY_Device_PDOName: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 16 }; +pub const DEVPKEY_Device_Parent: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4340a6c5_93fa_4706_972c_7b648008a5a7), pid: 8 }; +pub const DEVPKEY_Device_PhysicalDeviceLocation: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 9 }; +pub const DEVPKEY_Device_PostInstallInProgress: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 13 }; +pub const DEVPKEY_Device_PowerData: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 32 }; +pub const DEVPKEY_Device_PowerRelations: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4340a6c5_93fa_4706_972c_7b648008a5a7), pid: 6 }; +pub const DEVPKEY_Device_PresenceNotForDevice: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x80d81ea6_7473_4b0c_8216_efc11a2c4c8b), pid: 5 }; +pub const DEVPKEY_Device_ProblemCode: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4340a6c5_93fa_4706_972c_7b648008a5a7), pid: 3 }; +pub const DEVPKEY_Device_ProblemStatus: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4340a6c5_93fa_4706_972c_7b648008a5a7), pid: 12 }; +pub const DEVPKEY_Device_RemovalPolicy: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 33 }; +pub const DEVPKEY_Device_RemovalPolicyDefault: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 34 }; +pub const DEVPKEY_Device_RemovalPolicyOverride: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 35 }; +pub const DEVPKEY_Device_RemovalRelations: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4340a6c5_93fa_4706_972c_7b648008a5a7), pid: 5 }; +pub const DEVPKEY_Device_Reported: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x80497100_8c73_48b9_aad9_ce387e19c56e), pid: 2 }; +pub const DEVPKEY_Device_ReportedDeviceIdsHash: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 8 }; +pub const DEVPKEY_Device_ResourcePickerExceptions: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 13 }; +pub const DEVPKEY_Device_ResourcePickerTags: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa8b865dd_2e3d_4094_ad97_e593a70c75d6), pid: 12 }; +pub const DEVPKEY_Device_SafeRemovalRequired: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xafd97640_86a3_4210_b67c_289c41aabe55), pid: 2 }; +pub const DEVPKEY_Device_SafeRemovalRequiredOverride: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xafd97640_86a3_4210_b67c_289c41aabe55), pid: 3 }; +pub const DEVPKEY_Device_Security: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 25 }; +pub const DEVPKEY_Device_SecuritySDS: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 26 }; +pub const DEVPKEY_Device_Service: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 6 }; +pub const DEVPKEY_Device_SessionId: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x83da6326_97a6_4088_9453_a1923f573b29), pid: 6 }; +pub const DEVPKEY_Device_ShowInUninstallUI: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x80d81ea6_7473_4b0c_8216_efc11a2c4c8b), pid: 8 }; +pub const DEVPKEY_Device_Siblings: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4340a6c5_93fa_4706_972c_7b648008a5a7), pid: 10 }; +pub const DEVPKEY_Device_SignalStrength: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x80d81ea6_7473_4b0c_8216_efc11a2c4c8b), pid: 6 }; +pub const DEVPKEY_Device_SoftRestartSupported: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 22 }; +pub const DEVPKEY_Device_Stack: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x540b947e_8b40_45bc_a8a2_6a0b894cbda2), pid: 14 }; +pub const DEVPKEY_Device_TransportRelations: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4340a6c5_93fa_4706_972c_7b648008a5a7), pid: 11 }; +pub const DEVPKEY_Device_UINumber: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 18 }; +pub const DEVPKEY_Device_UINumberDescFormat: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 31 }; +pub const DEVPKEY_Device_UpperFilters: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xa45c254e_df1c_4efd_8020_67d146a850e0), pid: 19 }; +pub const DEVPKEY_DrvPkg_BrandingIcon: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcf73bb51_3abf_44a2_85e0_9a3dc7a12132), pid: 7 }; +pub const DEVPKEY_DrvPkg_DetailedDescription: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcf73bb51_3abf_44a2_85e0_9a3dc7a12132), pid: 4 }; +pub const DEVPKEY_DrvPkg_DocumentationLink: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcf73bb51_3abf_44a2_85e0_9a3dc7a12132), pid: 5 }; +pub const DEVPKEY_DrvPkg_Icon: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcf73bb51_3abf_44a2_85e0_9a3dc7a12132), pid: 6 }; +pub const DEVPKEY_DrvPkg_Model: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcf73bb51_3abf_44a2_85e0_9a3dc7a12132), pid: 2 }; +pub const DEVPKEY_DrvPkg_VendorWebSite: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xcf73bb51_3abf_44a2_85e0_9a3dc7a12132), pid: 3 }; +pub const DEVPKEY_NAME: DEVPROPKEY = DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb725f130_47ef_101a_a5f1_02608c9eebac), pid: 10 }; +pub const DEVPROPID_FIRST_USABLE: u32 = 2u32; +pub const DEVPROP_FALSE: DEVPROP_BOOLEAN = 0u8; +pub const DEVPROP_MASK_TYPE: u32 = 4095u32; +pub const DEVPROP_MASK_TYPEMOD: u32 = 61440u32; +pub const DEVPROP_STORE_SYSTEM: DEVPROPSTORE = 0i32; +pub const DEVPROP_STORE_USER: DEVPROPSTORE = 1i32; +pub const DEVPROP_TRUE: DEVPROP_BOOLEAN = 255u8; +pub const DEVPROP_TYPEMOD_ARRAY: u32 = 4096u32; +pub const DEVPROP_TYPEMOD_LIST: u32 = 8192u32; +pub const DEVPROP_TYPE_BINARY: DEVPROPTYPE = 4099u32; +pub const DEVPROP_TYPE_BOOLEAN: DEVPROPTYPE = 17u32; +pub const DEVPROP_TYPE_BYTE: DEVPROPTYPE = 3u32; +pub const DEVPROP_TYPE_CURRENCY: DEVPROPTYPE = 14u32; +pub const DEVPROP_TYPE_DATE: DEVPROPTYPE = 15u32; +pub const DEVPROP_TYPE_DECIMAL: DEVPROPTYPE = 12u32; +pub const DEVPROP_TYPE_DEVPROPKEY: DEVPROPTYPE = 21u32; +pub const DEVPROP_TYPE_DEVPROPTYPE: DEVPROPTYPE = 22u32; +pub const DEVPROP_TYPE_DOUBLE: DEVPROPTYPE = 11u32; +pub const DEVPROP_TYPE_EMPTY: DEVPROPTYPE = 0u32; +pub const DEVPROP_TYPE_ERROR: DEVPROPTYPE = 23u32; +pub const DEVPROP_TYPE_FILETIME: DEVPROPTYPE = 16u32; +pub const DEVPROP_TYPE_FLOAT: DEVPROPTYPE = 10u32; +pub const DEVPROP_TYPE_GUID: DEVPROPTYPE = 13u32; +pub const DEVPROP_TYPE_INT16: DEVPROPTYPE = 4u32; +pub const DEVPROP_TYPE_INT32: DEVPROPTYPE = 6u32; +pub const DEVPROP_TYPE_INT64: DEVPROPTYPE = 8u32; +pub const DEVPROP_TYPE_NTSTATUS: DEVPROPTYPE = 24u32; +pub const DEVPROP_TYPE_NULL: DEVPROPTYPE = 1u32; +pub const DEVPROP_TYPE_SBYTE: DEVPROPTYPE = 2u32; +pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR: DEVPROPTYPE = 19u32; +pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING: DEVPROPTYPE = 20u32; +pub const DEVPROP_TYPE_STRING: DEVPROPTYPE = 18u32; +pub const DEVPROP_TYPE_STRING_INDIRECT: DEVPROPTYPE = 25u32; +pub const DEVPROP_TYPE_STRING_LIST: DEVPROPTYPE = 8210u32; +pub const DEVPROP_TYPE_UINT16: DEVPROPTYPE = 5u32; +pub const DEVPROP_TYPE_UINT32: DEVPROPTYPE = 7u32; +pub const DEVPROP_TYPE_UINT64: DEVPROPTYPE = 9u32; +pub const MAX_DEVPROP_TYPE: u32 = 25u32; +pub const MAX_DEVPROP_TYPEMOD: u32 = 8192u32; +pub type DEVPROPSTORE = i32; +pub type DEVPROPTYPE = u32; +#[repr(C)] +pub struct DEVPROPCOMPKEY { + pub Key: DEVPROPKEY, + pub Store: DEVPROPSTORE, + pub LocaleName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for DEVPROPCOMPKEY {} +impl ::core::clone::Clone for DEVPROPCOMPKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVPROPERTY { + pub CompKey: DEVPROPCOMPKEY, + pub Type: DEVPROPTYPE, + pub BufferSize: u32, + pub Buffer: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for DEVPROPERTY {} +impl ::core::clone::Clone for DEVPROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVPROPKEY { + pub fmtid: ::windows_sys::core::GUID, + pub pid: u32, +} +impl ::core::marker::Copy for DEVPROPKEY {} +impl ::core::clone::Clone for DEVPROPKEY { + fn clone(&self) -> Self { + *self + } +} +pub type DEVPROP_BOOLEAN = u8; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Pwm/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Pwm/mod.rs new file mode 100644 index 000000000..a4a8aa76b --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Pwm/mod.rs @@ -0,0 +1,122 @@ +pub const GUID_DEVINTERFACE_PWM_CONTROLLER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x60824b4c_eed1_4c9c_b49c_1b961461a819); +pub const GUID_DEVINTERFACE_PWM_CONTROLLER_WSZ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{60824B4C-EED1-4C9C-B49C-1B961461A819}"); +pub const IOCTL_PWM_CONTROLLER_GET_ACTUAL_PERIOD: u32 = 262148u32; +pub const IOCTL_PWM_CONTROLLER_GET_INFO: u32 = 262144u32; +pub const IOCTL_PWM_CONTROLLER_SET_DESIRED_PERIOD: u32 = 294920u32; +pub const IOCTL_PWM_PIN_GET_ACTIVE_DUTY_CYCLE_PERCENTAGE: u32 = 262544u32; +pub const IOCTL_PWM_PIN_GET_POLARITY: u32 = 262552u32; +pub const IOCTL_PWM_PIN_IS_STARTED: u32 = 262568u32; +pub const IOCTL_PWM_PIN_SET_ACTIVE_DUTY_CYCLE_PERCENTAGE: u32 = 295316u32; +pub const IOCTL_PWM_PIN_SET_POLARITY: u32 = 295324u32; +pub const IOCTL_PWM_PIN_START: u32 = 295331u32; +pub const IOCTL_PWM_PIN_STOP: u32 = 295335u32; +pub const PWM_ACTIVE_HIGH: PWM_POLARITY = 0i32; +pub const PWM_ACTIVE_LOW: PWM_POLARITY = 1i32; +pub const PWM_IOCTL_ID_CONTROLLER_GET_ACTUAL_PERIOD: i32 = 1i32; +pub const PWM_IOCTL_ID_CONTROLLER_GET_INFO: i32 = 0i32; +pub const PWM_IOCTL_ID_CONTROLLER_SET_DESIRED_PERIOD: i32 = 2i32; +pub const PWM_IOCTL_ID_PIN_GET_ACTIVE_DUTY_CYCLE_PERCENTAGE: i32 = 100i32; +pub const PWM_IOCTL_ID_PIN_GET_POLARITY: i32 = 102i32; +pub const PWM_IOCTL_ID_PIN_IS_STARTED: i32 = 106i32; +pub const PWM_IOCTL_ID_PIN_SET_ACTIVE_DUTY_CYCLE_PERCENTAGE: i32 = 101i32; +pub const PWM_IOCTL_ID_PIN_SET_POLARITY: i32 = 103i32; +pub const PWM_IOCTL_ID_PIN_START: i32 = 104i32; +pub const PWM_IOCTL_ID_PIN_STOP: i32 = 105i32; +pub type PWM_POLARITY = i32; +#[repr(C)] +pub struct PWM_CONTROLLER_GET_ACTUAL_PERIOD_OUTPUT { + pub ActualPeriod: u64, +} +impl ::core::marker::Copy for PWM_CONTROLLER_GET_ACTUAL_PERIOD_OUTPUT {} +impl ::core::clone::Clone for PWM_CONTROLLER_GET_ACTUAL_PERIOD_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PWM_CONTROLLER_INFO { + pub Size: usize, + pub PinCount: u32, + pub MinimumPeriod: u64, + pub MaximumPeriod: u64, +} +impl ::core::marker::Copy for PWM_CONTROLLER_INFO {} +impl ::core::clone::Clone for PWM_CONTROLLER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT { + pub DesiredPeriod: u64, +} +impl ::core::marker::Copy for PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT {} +impl ::core::clone::Clone for PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PWM_CONTROLLER_SET_DESIRED_PERIOD_OUTPUT { + pub ActualPeriod: u64, +} +impl ::core::marker::Copy for PWM_CONTROLLER_SET_DESIRED_PERIOD_OUTPUT {} +impl ::core::clone::Clone for PWM_CONTROLLER_SET_DESIRED_PERIOD_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PWM_PIN_GET_ACTIVE_DUTY_CYCLE_PERCENTAGE_OUTPUT { + pub Percentage: u64, +} +impl ::core::marker::Copy for PWM_PIN_GET_ACTIVE_DUTY_CYCLE_PERCENTAGE_OUTPUT {} +impl ::core::clone::Clone for PWM_PIN_GET_ACTIVE_DUTY_CYCLE_PERCENTAGE_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PWM_PIN_GET_POLARITY_OUTPUT { + pub Polarity: PWM_POLARITY, +} +impl ::core::marker::Copy for PWM_PIN_GET_POLARITY_OUTPUT {} +impl ::core::clone::Clone for PWM_PIN_GET_POLARITY_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PWM_PIN_IS_STARTED_OUTPUT { + pub IsStarted: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PWM_PIN_IS_STARTED_OUTPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PWM_PIN_IS_STARTED_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PWM_PIN_SET_ACTIVE_DUTY_CYCLE_PERCENTAGE_INPUT { + pub Percentage: u64, +} +impl ::core::marker::Copy for PWM_PIN_SET_ACTIVE_DUTY_CYCLE_PERCENTAGE_INPUT {} +impl ::core::clone::Clone for PWM_PIN_SET_ACTIVE_DUTY_CYCLE_PERCENTAGE_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PWM_PIN_SET_POLARITY_INPUT { + pub Polarity: PWM_POLARITY, +} +impl ::core::marker::Copy for PWM_PIN_SET_POLARITY_INPUT {} +impl ::core::clone::Clone for PWM_PIN_SET_POLARITY_INPUT { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Sensors/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Sensors/mod.rs new file mode 100644 index 000000000..2310b552a --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Sensors/mod.rs @@ -0,0 +1,907 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn CollectionsListAllocateBufferAndSerialize(sourcecollection : *const SENSOR_COLLECTION_LIST, ptargetbuffersizeinbytes : *mut u32, ptargetbuffer : *mut *mut u8) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn CollectionsListCopyAndMarshall(target : *mut SENSOR_COLLECTION_LIST, source : *const SENSOR_COLLECTION_LIST) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn CollectionsListDeserializeFromBuffer(sourcebuffersizeinbytes : u32, sourcebuffer : *const u8, targetcollection : *mut SENSOR_COLLECTION_LIST) -> super::super::Foundation:: NTSTATUS); +::windows_targets::link!("sensorsutilsv2.dll" "system" fn CollectionsListGetFillableCount(buffersizebytes : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn CollectionsListGetMarshalledSize(collection : *const SENSOR_COLLECTION_LIST) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn CollectionsListGetMarshalledSizeWithoutSerialization(collection : *const SENSOR_COLLECTION_LIST) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn CollectionsListGetSerializedSize(collection : *const SENSOR_COLLECTION_LIST) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn CollectionsListMarshall(target : *mut SENSOR_COLLECTION_LIST) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn CollectionsListSerializeToBuffer(sourcecollection : *const SENSOR_COLLECTION_LIST, targetbuffersizeinbytes : u32, targetbuffer : *mut u8) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn CollectionsListSortSubscribedActivitiesByConfidence(thresholds : *const SENSOR_COLLECTION_LIST, pcollection : *mut SENSOR_COLLECTION_LIST) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn CollectionsListUpdateMarshalledPointer(collection : *mut SENSOR_COLLECTION_LIST) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn EvaluateActivityThresholds(newsample : *const SENSOR_COLLECTION_LIST, oldsample : *const SENSOR_COLLECTION_LIST, thresholds : *const SENSOR_COLLECTION_LIST) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPerformanceTime(timems : *mut u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromCLSIDArray(members : *const ::windows_sys::core::GUID, size : u32, ppropvar : *mut super::super::System::Com::StructuredStorage:: PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromFloat(fltval : f32, ppropvar : *mut super::super::System::Com::StructuredStorage:: PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn IsCollectionListSame(lista : *const SENSOR_COLLECTION_LIST, listb : *const SENSOR_COLLECTION_LIST) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsGUIDPresentInList(guidarray : *const ::windows_sys::core::GUID, arraylength : u32, guidelem : *const ::windows_sys::core::GUID) -> super::super::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn IsKeyPresentInCollectionList(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY) -> super::super::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn IsKeyPresentInPropertyList(plist : *const SENSOR_PROPERTY_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY) -> super::super::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn IsSensorSubscribed(subscriptionlist : *const SENSOR_COLLECTION_LIST, currenttype : ::windows_sys::core::GUID) -> super::super::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeyGetBool(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, pretvalue : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeyGetDouble(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, pretvalue : *mut f64) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeyGetFileTime(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, pretvalue : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeyGetFloat(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, pretvalue : *mut f32) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeyGetGuid(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, pretvalue : *mut ::windows_sys::core::GUID) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeyGetInt32(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, pretvalue : *mut i32) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeyGetInt64(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, pretvalue : *mut i64) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeyGetNthInt64(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, occurrence : u32, pretvalue : *mut i64) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeyGetNthUlong(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, occurrence : u32, pretvalue : *mut u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeyGetNthUshort(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, occurrence : u32, pretvalue : *mut u16) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeyGetPropVariant(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, typecheck : super::super::Foundation:: BOOLEAN, pvalue : *mut super::super::System::Com::StructuredStorage:: PROPVARIANT) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeyGetUlong(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, pretvalue : *mut u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeyGetUshort(plist : *const SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, pretvalue : *mut u16) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropKeyFindKeySetPropVariant(plist : *mut SENSOR_COLLECTION_LIST, pkey : *const super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, typecheck : super::super::Foundation:: BOOLEAN, pvalue : *const super::super::System::Com::StructuredStorage:: PROPVARIANT) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn PropVariantGetInformation(propvariantvalue : *const super::super::System::Com::StructuredStorage:: PROPVARIANT, propvariantoffset : *mut u32, propvariantsize : *mut u32, propvariantpointer : *mut *mut ::core::ffi::c_void, remappedtype : *mut super::Properties:: DEVPROPTYPE) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn PropertiesListCopy(target : *mut SENSOR_PROPERTY_LIST, source : *const SENSOR_PROPERTY_LIST) -> super::super::Foundation:: NTSTATUS); +::windows_targets::link!("sensorsutilsv2.dll" "system" fn PropertiesListGetFillableCount(buffersizebytes : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn SensorCollectionGetAt(index : u32, psensorslist : *const SENSOR_COLLECTION_LIST, pkey : *mut super::super::UI::Shell::PropertiesSystem:: PROPERTYKEY, pvalue : *mut super::super::System::Com::StructuredStorage:: PROPVARIANT) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("sensorsutilsv2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SerializationBufferAllocate(sizeinbytes : u32, pbuffer : *mut *mut u8) -> super::super::Foundation:: NTSTATUS); +::windows_targets::link!("sensorsutilsv2.dll" "system" fn SerializationBufferFree(buffer : *const u8) -> ()); +pub type ILocationPermissions = *mut ::core::ffi::c_void; +pub type ISensor = *mut ::core::ffi::c_void; +pub type ISensorCollection = *mut ::core::ffi::c_void; +pub type ISensorDataReport = *mut ::core::ffi::c_void; +pub type ISensorEvents = *mut ::core::ffi::c_void; +pub type ISensorManager = *mut ::core::ffi::c_void; +pub type ISensorManagerEvents = *mut ::core::ffi::c_void; +pub const AXIS_MAX: AXIS = 3i32; +pub const AXIS_X: AXIS = 0i32; +pub const AXIS_Y: AXIS = 1i32; +pub const AXIS_Z: AXIS = 2i32; +pub const ActivityStateCount: ACTIVITY_STATE_COUNT = 8i32; +pub const ActivityState_Biking: ACTIVITY_STATE = 64i32; +pub const ActivityState_Fidgeting: ACTIVITY_STATE = 4i32; +pub const ActivityState_Force_Dword: ACTIVITY_STATE = -1i32; +pub const ActivityState_Idle: ACTIVITY_STATE = 128i32; +pub const ActivityState_InVehicle: ACTIVITY_STATE = 32i32; +pub const ActivityState_Max: ACTIVITY_STATE = 256i32; +pub const ActivityState_Running: ACTIVITY_STATE = 16i32; +pub const ActivityState_Stationary: ACTIVITY_STATE = 2i32; +pub const ActivityState_Unknown: ACTIVITY_STATE = 1i32; +pub const ActivityState_Walking: ACTIVITY_STATE = 8i32; +pub const ElevationChangeMode_Elevator: ELEVATION_CHANGE_MODE = 1i32; +pub const ElevationChangeMode_Force_Dword: ELEVATION_CHANGE_MODE = -1i32; +pub const ElevationChangeMode_Max: ELEVATION_CHANGE_MODE = 3i32; +pub const ElevationChangeMode_Stepping: ELEVATION_CHANGE_MODE = 2i32; +pub const ElevationChangeMode_Unknown: ELEVATION_CHANGE_MODE = 0i32; +pub const GNSS_CLEAR_ALL_ASSISTANCE_DATA: u32 = 1u32; +pub const GUID_DEVINTERFACE_SENSOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba1bb692_9b7a_4833_9a1e_525ed134e7e2); +pub const GUID_SensorCategory_All: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc317c286_c468_4288_9975_d4c4587c442c); +pub const GUID_SensorCategory_Biometric: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xca19690f_a2c7_477d_a99e_99ec6e2b5648); +pub const GUID_SensorCategory_Electrical: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb73fcd8_fc4a_483c_ac58_27b691c6beff); +pub const GUID_SensorCategory_Environmental: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x323439aa_7f66_492b_ba0c_73e9aa0a65d5); +pub const GUID_SensorCategory_Light: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x17a665c0_9063_4216_b202_5c7a255e18ce); +pub const GUID_SensorCategory_Location: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbfa794e4_f964_4fdb_90f6_51056bfe4b44); +pub const GUID_SensorCategory_Mechanical: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8d131d68_8ef7_4656_80b5_cccbd93791c5); +pub const GUID_SensorCategory_Motion: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcd09daf1_3b2e_4c3d_b598_b5e5ff93fd46); +pub const GUID_SensorCategory_Orientation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9e6c04b6_96fe_4954_b726_68682a473f69); +pub const GUID_SensorCategory_Other: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c90e7a9_f4c9_4fa2_af37_56d471fe5a3d); +pub const GUID_SensorCategory_PersonalActivity: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf1609081_1e12_412b_a14d_cbb0e95bd2e5); +pub const GUID_SensorCategory_Scanner: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb000e77e_f5b5_420f_815d_0270a726f270); +pub const GUID_SensorCategory_Unsupported: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2beae7fa_19b0_48c5_a1f6_b5480dc206b0); +pub const GUID_SensorType_Accelerometer3D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc2fb0f5f_e2d2_4c78_bcd0_352a9582819d); +pub const GUID_SensorType_ActivityDetection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9d9e0118_1807_4f2e_96e4_2ce57142e196); +pub const GUID_SensorType_AmbientLight: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x97f115c8_599a_4153_8894_d2d12899918a); +pub const GUID_SensorType_Barometer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e903829_ff8a_4a93_97df_3dcbde402288); +pub const GUID_SensorType_Custom: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe83af229_8640_4d18_a213_e22675ebb2c3); +pub const GUID_SensorType_FloorElevation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xade4987f_7ac4_4dfa_9722_0a027181c747); +pub const GUID_SensorType_GeomagneticOrientation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe77195f8_2d1f_4823_971b_1c4467556c9d); +pub const GUID_SensorType_GravityVector: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03b52c73_bb76_463f_9524_38de76eb700b); +pub const GUID_SensorType_Gyrometer3D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x09485f5a_759e_42c2_bd4b_a349b75c8643); +pub const GUID_SensorType_HingeAngle: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x82358065_f4c4_4da1_b272_13c23332a207); +pub const GUID_SensorType_Humidity: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c72bf67_bd7e_4257_990b_98a3ba3b400a); +pub const GUID_SensorType_LinearAccelerometer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x038b0283_97b4_41c8_bc24_5ff1aa48fec7); +pub const GUID_SensorType_Magnetometer3D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x55e5effb_15c7_40df_8698_a84b7c863c53); +pub const GUID_SensorType_Orientation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcdb5d8f7_3cfd_41c8_8542_cce622cf5d6e); +pub const GUID_SensorType_Pedometer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb19f89af_e3eb_444b_8dea_202575a71599); +pub const GUID_SensorType_Proximity: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5220dae9_3179_4430_9f90_06266d2a34de); +pub const GUID_SensorType_RelativeOrientation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x40993b51_4706_44dc_98d5_c920c037ffab); +pub const GUID_SensorType_SimpleDeviceOrientation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x86a19291_0482_402c_bf4c_addac52b1c39); +pub const GUID_SensorType_Temperature: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04fd0ec4_d5da_45fa_95a9_5db38ee19306); +pub const HumanPresenceDetectionTypeCount: HUMAN_PRESENCE_DETECTION_TYPE_COUNT = 4i32; +pub const HumanPresenceDetectionType_AudioBiometric: HUMAN_PRESENCE_DETECTION_TYPE = 8i32; +pub const HumanPresenceDetectionType_FacialBiometric: HUMAN_PRESENCE_DETECTION_TYPE = 4i32; +pub const HumanPresenceDetectionType_Force_Dword: HUMAN_PRESENCE_DETECTION_TYPE = -1i32; +pub const HumanPresenceDetectionType_VendorDefinedBiometric: HUMAN_PRESENCE_DETECTION_TYPE = 2i32; +pub const HumanPresenceDetectionType_VendorDefinedNonBiometric: HUMAN_PRESENCE_DETECTION_TYPE = 1i32; +pub const LOCATION_DESIRED_ACCURACY_DEFAULT: LOCATION_DESIRED_ACCURACY = 0i32; +pub const LOCATION_DESIRED_ACCURACY_HIGH: LOCATION_DESIRED_ACCURACY = 1i32; +pub const LOCATION_POSITION_SOURCE_CELLULAR: LOCATION_POSITION_SOURCE = 0i32; +pub const LOCATION_POSITION_SOURCE_IPADDRESS: LOCATION_POSITION_SOURCE = 3i32; +pub const LOCATION_POSITION_SOURCE_SATELLITE: LOCATION_POSITION_SOURCE = 1i32; +pub const LOCATION_POSITION_SOURCE_UNKNOWN: LOCATION_POSITION_SOURCE = 4i32; +pub const LOCATION_POSITION_SOURCE_WIFI: LOCATION_POSITION_SOURCE = 2i32; +pub const MAGNETOMETER_ACCURACY_APPROXIMATE: MagnetometerAccuracy = 2i32; +pub const MAGNETOMETER_ACCURACY_HIGH: MagnetometerAccuracy = 3i32; +pub const MAGNETOMETER_ACCURACY_UNKNOWN: MagnetometerAccuracy = 0i32; +pub const MAGNETOMETER_ACCURACY_UNRELIABLE: MagnetometerAccuracy = 1i32; +pub const MagnetometerAccuracy_Approximate: MAGNETOMETER_ACCURACY = 2i32; +pub const MagnetometerAccuracy_High: MAGNETOMETER_ACCURACY = 3i32; +pub const MagnetometerAccuracy_Unknown: MAGNETOMETER_ACCURACY = 0i32; +pub const MagnetometerAccuracy_Unreliable: MAGNETOMETER_ACCURACY = 1i32; +pub const PedometerStepTypeCount: PEDOMETER_STEP_TYPE_COUNT = 3i32; +pub const PedometerStepType_Force_Dword: PEDOMETER_STEP_TYPE = -1i32; +pub const PedometerStepType_Max: PEDOMETER_STEP_TYPE = 8i32; +pub const PedometerStepType_Running: PEDOMETER_STEP_TYPE = 4i32; +pub const PedometerStepType_Unknown: PEDOMETER_STEP_TYPE = 1i32; +pub const PedometerStepType_Walking: PEDOMETER_STEP_TYPE = 2i32; +pub const ProximityType_Force_Dword: PROXIMITY_TYPE = -1i32; +pub const ProximityType_HumanProximity: PROXIMITY_TYPE = 1i32; +pub const ProximityType_ObjectProximity: PROXIMITY_TYPE = 0i32; +pub const Proximity_Sensor_Human_Engagement_Capable: PROXIMITY_SENSOR_CAPABILITIES = 2i32; +pub const Proximity_Sensor_Human_Presence_Capable: PROXIMITY_SENSOR_CAPABILITIES = 1i32; +pub const Proximity_Sensor_Supported_Capabilities: PROXIMITY_SENSOR_CAPABILITIES = 3i32; +pub const SENSOR_CATEGORY_ALL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc317c286_c468_4288_9975_d4c4587c442c); +pub const SENSOR_CATEGORY_BIOMETRIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xca19690f_a2c7_477d_a99e_99ec6e2b5648); +pub const SENSOR_CATEGORY_ELECTRICAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb73fcd8_fc4a_483c_ac58_27b691c6beff); +pub const SENSOR_CATEGORY_ENVIRONMENTAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x323439aa_7f66_492b_ba0c_73e9aa0a65d5); +pub const SENSOR_CATEGORY_LIGHT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x17a665c0_9063_4216_b202_5c7a255e18ce); +pub const SENSOR_CATEGORY_LOCATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbfa794e4_f964_4fdb_90f6_51056bfe4b44); +pub const SENSOR_CATEGORY_MECHANICAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8d131d68_8ef7_4656_80b5_cccbd93791c5); +pub const SENSOR_CATEGORY_MOTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcd09daf1_3b2e_4c3d_b598_b5e5ff93fd46); +pub const SENSOR_CATEGORY_ORIENTATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9e6c04b6_96fe_4954_b726_68682a473f69); +pub const SENSOR_CATEGORY_OTHER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c90e7a9_f4c9_4fa2_af37_56d471fe5a3d); +pub const SENSOR_CATEGORY_SCANNER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb000e77e_f5b5_420f_815d_0270a726f270); +pub const SENSOR_CATEGORY_UNSUPPORTED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2beae7fa_19b0_48c5_a1f6_b5480dc206b0); +pub const SENSOR_CONNECTION_TYPE_PC_ATTACHED: SensorConnectionType = 1i32; +pub const SENSOR_CONNECTION_TYPE_PC_EXTERNAL: SensorConnectionType = 2i32; +pub const SENSOR_CONNECTION_TYPE_PC_INTEGRATED: SensorConnectionType = 0i32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ABSOLUTE_PRESSURE_PASCAL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x38564a7c_f2f2_49bb_9b2b_ba60f66a58df), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ACCELERATION_X_G: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3f8a69a2_07c5_4e48_a965_cd797aab56d5), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ACCELERATION_Y_G: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3f8a69a2_07c5_4e48_a965_cd797aab56d5), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ACCELERATION_Z_G: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3f8a69a2_07c5_4e48_a965_cd797aab56d5), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ADDRESS1: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 23 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ADDRESS2: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 24 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ALTITUDE_ANTENNA_SEALEVEL_METERS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 36 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ALTITUDE_ELLIPSOID_ERROR_METERS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 29 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ALTITUDE_ELLIPSOID_METERS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ALTITUDE_SEALEVEL_ERROR_METERS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 30 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ALTITUDE_SEALEVEL_METERS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_X_DEGREES_PER_SECOND_SQUARED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3f8a69a2_07c5_4e48_a965_cd797aab56d5), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Y_DEGREES_PER_SECOND_SQUARED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3f8a69a2_07c5_4e48_a965_cd797aab56d5), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Z_DEGREES_PER_SECOND_SQUARED: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3f8a69a2_07c5_4e48_a965_cd797aab56d5), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ANGULAR_VELOCITY_X_DEGREES_PER_SECOND: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3f8a69a2_07c5_4e48_a965_cd797aab56d5), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ANGULAR_VELOCITY_Y_DEGREES_PER_SECOND: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3f8a69a2_07c5_4e48_a965_cd797aab56d5), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ANGULAR_VELOCITY_Z_DEGREES_PER_SECOND: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3f8a69a2_07c5_4e48_a965_cd797aab56d5), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ATMOSPHERIC_PRESSURE_BAR: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x8b0aa2f1_2d57_42ee_8cc0_4d27622b46c4), pid: 4 }; +pub const SENSOR_DATA_TYPE_BIOMETRIC_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2299288a_6d9e_4b0b_b7ec_3528f89e40af); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_BOOLEAN_SWITCH_ARRAY_STATES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x38564a7c_f2f2_49bb_9b2b_ba60f66a58df), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_BOOLEAN_SWITCH_STATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x38564a7c_f2f2_49bb_9b2b_ba60f66a58df), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CAPACITANCE_FARAD: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xbbb246d1_e242_4780_a2d3_cded84f35842), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CITY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 25 }; +pub const SENSOR_DATA_TYPE_COMMON_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdb5e0cf2_cf1f_4c18_b46c_d86011d62150); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_COUNTRY_REGION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 28 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CURRENT_AMPS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xbbb246d1_e242_4780_a2d3_cded84f35842), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_BOOLEAN_ARRAY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 6 }; +pub const SENSOR_DATA_TYPE_CUSTOM_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_USAGE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE1: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE10: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 16 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE11: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 17 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE12: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 18 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE13: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 19 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE14: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 20 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE15: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 21 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE16: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 22 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE17: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 23 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE18: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 24 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE19: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 25 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE2: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE20: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 26 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE21: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 27 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE22: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 28 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE23: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 29 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE24: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 30 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE25: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 31 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE26: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 32 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE27: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 33 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE28: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 34 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE3: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE4: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE5: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE6: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE7: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE8: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 14 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_CUSTOM_VALUE9: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xb14c764f_07cf_41e8_9d82_ebe3d0776a6f), pid: 15 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_DGPS_DATA_AGE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 35 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_DIFFERENTIAL_REFERENCE_STATION_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 37 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_DISTANCE_X_METERS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_DISTANCE_Y_METERS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_DISTANCE_Z_METERS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ELECTRICAL_FREQUENCY_HERTZ: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xbbb246d1_e242_4780_a2d3_cded84f35842), pid: 9 }; +pub const SENSOR_DATA_TYPE_ELECTRICAL_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbbb246d1_e242_4780_a2d3_cded84f35842); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ELECTRICAL_PERCENT_OF_RANGE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xbbb246d1_e242_4780_a2d3_cded84f35842), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ELECTRICAL_POWER_WATTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xbbb246d1_e242_4780_a2d3_cded84f35842), pid: 7 }; +pub const SENSOR_DATA_TYPE_ENVIRONMENTAL_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8b0aa2f1_2d57_42ee_8cc0_4d27622b46c4); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ERROR_RADIUS_METERS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 22 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_FIX_QUALITY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_FIX_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_FORCE_NEWTONS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x38564a7c_f2f2_49bb_9b2b_ba60f66a58df), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_GAUGE_PRESSURE_PASCAL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x38564a7c_f2f2_49bb_9b2b_ba60f66a58df), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_GEOIDAL_SEPARATION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 34 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_GPS_OPERATION_MODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 32 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_GPS_SELECTION_MODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 31 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_GPS_STATUS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 33 }; +pub const SENSOR_DATA_TYPE_GUID_MECHANICAL_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38564a7c_f2f2_49bb_9b2b_ba60f66a58df); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_HORIZONAL_DILUTION_OF_PRECISION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_HUMAN_PRESENCE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2299288a_6d9e_4b0b_b7ec_3528f89e40af), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_HUMAN_PROXIMITY_METERS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2299288a_6d9e_4b0b_b7ec_3528f89e40af), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_INDUCTANCE_HENRY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xbbb246d1_e242_4780_a2d3_cded84f35842), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_LATITUDE_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_LIGHT_CHROMACITY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe4c77ce2_dcb7_46e9_8439_4fec548833a6), pid: 4 }; +pub const SENSOR_DATA_TYPE_LIGHT_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe4c77ce2_dcb7_46e9_8439_4fec548833a6); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_LIGHT_LEVEL_LUX: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe4c77ce2_dcb7_46e9_8439_4fec548833a6), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_LIGHT_TEMPERATURE_KELVIN: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe4c77ce2_dcb7_46e9_8439_4fec548833a6), pid: 3 }; +pub const SENSOR_DATA_TYPE_LOCATION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_LOCATION_SOURCE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 40 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_LONGITUDE_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MAGNETIC_FIELD_STRENGTH_X_MILLIGAUSS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 19 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MAGNETIC_FIELD_STRENGTH_Y_MILLIGAUSS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 20 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MAGNETIC_FIELD_STRENGTH_Z_MILLIGAUSS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 21 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MAGNETIC_HEADING_COMPENSATED_MAGNETIC_NORTH_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MAGNETIC_HEADING_COMPENSATED_TRUE_NORTH_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MAGNETIC_HEADING_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MAGNETIC_HEADING_MAGNETIC_NORTH_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MAGNETIC_HEADING_TRUE_NORTH_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 14 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MAGNETIC_HEADING_X_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MAGNETIC_HEADING_Y_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MAGNETIC_HEADING_Z_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MAGNETIC_VARIATION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MAGNETOMETER_ACCURACY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 22 }; +pub const SENSOR_DATA_TYPE_MOTION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3f8a69a2_07c5_4e48_a965_cd797aab56d5); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MOTION_STATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3f8a69a2_07c5_4e48_a965_cd797aab56d5), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_MULTIVALUE_SWITCH_STATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x38564a7c_f2f2_49bb_9b2b_ba60f66a58df), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_NMEA_SENTENCE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 38 }; +pub const SENSOR_DATA_TYPE_ORIENTATION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_POSITION_DILUTION_OF_PRECISION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_POSTALCODE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 27 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_QUADRANT_ANGLE_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 15 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_QUATERNION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 17 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_RELATIVE_HUMIDITY_PERCENT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x8b0aa2f1_2d57_42ee_8cc0_4d27622b46c4), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_RESISTANCE_OHMS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xbbb246d1_e242_4780_a2d3_cded84f35842), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_RFID_TAG_40_BIT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd7a59a3c_3421_44ab_8d3a_9de8ab6c4cae), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_ROTATION_MATRIX: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 16 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_SATELLITES_IN_VIEW: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 17 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_SATELLITES_IN_VIEW_AZIMUTH: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 20 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_SATELLITES_IN_VIEW_ELEVATION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 19 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_SATELLITES_IN_VIEW_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 39 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_SATELLITES_IN_VIEW_PRNS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 18 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_SATELLITES_IN_VIEW_STN_RATIO: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 21 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_SATELLITES_USED_COUNT: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 15 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_SATELLITES_USED_PRNS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 16 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_SATELLITES_USED_PRNS_AND_CONSTELLATIONS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 41 }; +pub const SENSOR_DATA_TYPE_SCANNER_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7a59a3c_3421_44ab_8d3a_9de8ab6c4cae); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_SIMPLE_DEVICE_ORIENTATION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 18 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_SPEED_KNOTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_SPEED_METERS_PER_SECOND: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x3f8a69a2_07c5_4e48_a965_cd797aab56d5), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_STATE_PROVINCE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 26 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_STRAIN: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x38564a7c_f2f2_49bb_9b2b_ba60f66a58df), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_TEMPERATURE_CELSIUS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x8b0aa2f1_2d57_42ee_8cc0_4d27622b46c4), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_TILT_X_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_TILT_Y_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_TILT_Z_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1637d8a2_4248_4275_865d_558de84aedfd), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_TIMESTAMP: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xdb5e0cf2_cf1f_4c18_b46c_d86011d62150), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_TOUCH_STATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x2299288a_6d9e_4b0b_b7ec_3528f89e40af), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_TRUE_HEADING_DEGREES: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_VERTICAL_DILUTION_OF_PRECISION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x055c74d8_ca6f_47d6_95c6_1ed3637a0ff4), pid: 14 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_VOLTAGE_VOLTS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xbbb246d1_e242_4780_a2d3_cded84f35842), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_WEIGHT_KILOGRAMS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x38564a7c_f2f2_49bb_9b2b_ba60f66a58df), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_WIND_DIRECTION_DEGREES_ANTICLOCKWISE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x8b0aa2f1_2d57_42ee_8cc0_4d27622b46c4), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_DATA_TYPE_WIND_SPEED_METERS_PER_SECOND: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x8b0aa2f1_2d57_42ee_8cc0_4d27622b46c4), pid: 6 }; +pub const SENSOR_ERROR_PARAMETER_COMMON_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x77112bcd_fce1_4f43_b8b8_a88256adb4b3); +pub const SENSOR_EVENT_ACCELEROMETER_SHAKE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x825f5a94_0f48_4396_9ca0_6ecb5c99d915); +pub const SENSOR_EVENT_DATA_UPDATED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2ed0f2a4_0087_41d3_87db_6773370b3c88); +pub const SENSOR_EVENT_PARAMETER_COMMON_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x64346e30_8728_4b34_bdf6_4f52442c5c28); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_EVENT_PARAMETER_EVENT_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x64346e30_8728_4b34_bdf6_4f52442c5c28), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_EVENT_PARAMETER_STATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x64346e30_8728_4b34_bdf6_4f52442c5c28), pid: 3 }; +pub const SENSOR_EVENT_PROPERTY_CHANGED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2358f099_84c9_4d3d_90df_c2421e2b2045); +pub const SENSOR_EVENT_STATE_CHANGED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbfd96016_6bd7_4560_ad34_f2f6607e8f81); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_ACCURACY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 17 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_CHANGE_SENSITIVITY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 14 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_CLEAR_ASSISTANCE_DATA: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe1e962f4_6e65_45f7_9c36_d487b7b1bd34), pid: 2 }; +pub const SENSOR_PROPERTY_COMMON_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_CONNECTION_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 11 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_CURRENT_REPORT_INTERVAL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 13 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_DESCRIPTION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 10 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_DEVICE_PATH: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 15 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_FRIENDLY_NAME: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_HID_USAGE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 22 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 16 }; +pub const SENSOR_PROPERTY_LIST_HEADER_SIZE: u32 = 8u32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_LOCATION_DESIRED_ACCURACY: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 19 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_MANUFACTURER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_MIN_REPORT_INTERVAL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 12 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_MODEL: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_PERSISTENT_UNIQUE_ID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_RADIO_STATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 23 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_RADIO_STATE_PREVIOUS: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 24 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_RANGE_MAXIMUM: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 21 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_RANGE_MINIMUM: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 20 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_RESOLUTION: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 18 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_SERIAL_NUMBER: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_STATE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 3 }; +pub const SENSOR_PROPERTY_TEST_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe1e962f4_6e65_45f7_9c36_d487b7b1bd34); +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_TURN_ON_OFF_NMEA: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe1e962f4_6e65_45f7_9c36_d487b7b1bd34), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const SENSOR_PROPERTY_TYPE: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x7f8383ec_d3ec_495c_a8cf_b8bbe85c2920), pid: 2 }; +pub const SENSOR_STATE_ACCESS_DENIED: SensorState = 4i32; +pub const SENSOR_STATE_ERROR: SensorState = 5i32; +pub const SENSOR_STATE_INITIALIZING: SensorState = 3i32; +pub const SENSOR_STATE_MAX: SensorState = 5i32; +pub const SENSOR_STATE_MIN: SensorState = 0i32; +pub const SENSOR_STATE_NOT_AVAILABLE: SensorState = 1i32; +pub const SENSOR_STATE_NO_DATA: SensorState = 2i32; +pub const SENSOR_STATE_READY: SensorState = 0i32; +pub const SENSOR_TYPE_ACCELEROMETER_1D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc04d2387_7340_4cc2_991e_3b18cb8ef2f4); +pub const SENSOR_TYPE_ACCELEROMETER_2D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb2c517a8_f6b5_4ba6_a423_5df560b4cc07); +pub const SENSOR_TYPE_ACCELEROMETER_3D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc2fb0f5f_e2d2_4c78_bcd0_352a9582819d); +pub const SENSOR_TYPE_AGGREGATED_DEVICE_ORIENTATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcdb5d8f7_3cfd_41c8_8542_cce622cf5d6e); +pub const SENSOR_TYPE_AGGREGATED_QUADRANT_ORIENTATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9f81f1af_c4ab_4307_9904_c828bfb90829); +pub const SENSOR_TYPE_AGGREGATED_SIMPLE_DEVICE_ORIENTATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x86a19291_0482_402c_bf4c_addac52b1c39); +pub const SENSOR_TYPE_AMBIENT_LIGHT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x97f115c8_599a_4153_8894_d2d12899918a); +pub const SENSOR_TYPE_BARCODE_SCANNER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x990b3d8f_85bb_45ff_914d_998c04f372df); +pub const SENSOR_TYPE_BOOLEAN_SWITCH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9c7e371f_1041_460b_8d5c_71e4752e350c); +pub const SENSOR_TYPE_BOOLEAN_SWITCH_ARRAY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x545c8ba5_b143_4545_868f_ca7fd986b4f6); +pub const SENSOR_TYPE_CAPACITANCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xca2ffb1c_2317_49c0_a0b4_b63ce63461a0); +pub const SENSOR_TYPE_COMPASS_1D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa415f6c5_cb50_49d0_8e62_a8270bd7a26c); +pub const SENSOR_TYPE_COMPASS_2D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x15655cc0_997a_4d30_84db_57caba3648bb); +pub const SENSOR_TYPE_COMPASS_3D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x76b5ce0d_17dd_414d_93a1_e127f40bdf6e); +pub const SENSOR_TYPE_CURRENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5adc9fce_15a0_4bbe_a1ad_2d38a9ae831c); +pub const SENSOR_TYPE_CUSTOM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe83af229_8640_4d18_a213_e22675ebb2c3); +pub const SENSOR_TYPE_DISTANCE_1D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5f14ab2f_1407_4306_a93f_b1dbabe4f9c0); +pub const SENSOR_TYPE_DISTANCE_2D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5cf9a46c_a9a2_4e55_b6a1_a04aafa95a92); +pub const SENSOR_TYPE_DISTANCE_3D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa20cae31_0e25_4772_9fe5_96608a1354b2); +pub const SENSOR_TYPE_ELECTRICAL_POWER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x212f10f5_14ab_4376_9a43_a7794098c2fe); +pub const SENSOR_TYPE_ENVIRONMENTAL_ATMOSPHERIC_PRESSURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e903829_ff8a_4a93_97df_3dcbde402288); +pub const SENSOR_TYPE_ENVIRONMENTAL_HUMIDITY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c72bf67_bd7e_4257_990b_98a3ba3b400a); +pub const SENSOR_TYPE_ENVIRONMENTAL_TEMPERATURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04fd0ec4_d5da_45fa_95a9_5db38ee19306); +pub const SENSOR_TYPE_ENVIRONMENTAL_WIND_DIRECTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9ef57a35_9306_434d_af09_37fa5a9c00bd); +pub const SENSOR_TYPE_ENVIRONMENTAL_WIND_SPEED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdd50607b_a45f_42cd_8efd_ec61761c4226); +pub const SENSOR_TYPE_FORCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc2ab2b02_1a1c_4778_a81b_954a1788cc75); +pub const SENSOR_TYPE_FREQUENCY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8cd2cbb6_73e6_4640_a709_72ae8fb60d7f); +pub const SENSOR_TYPE_GYROMETER_1D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfa088734_f552_4584_8324_edfaf649652c); +pub const SENSOR_TYPE_GYROMETER_2D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x31ef4f83_919b_48bf_8de0_5d7a9d240556); +pub const SENSOR_TYPE_GYROMETER_3D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x09485f5a_759e_42c2_bd4b_a349b75c8643); +pub const SENSOR_TYPE_HUMAN_PRESENCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc138c12b_ad52_451c_9375_87f518ff10c6); +pub const SENSOR_TYPE_HUMAN_PROXIMITY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5220dae9_3179_4430_9f90_06266d2a34de); +pub const SENSOR_TYPE_INCLINOMETER_1D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96f98c5_7a75_4ba7_94e9_ac868c966dd8); +pub const SENSOR_TYPE_INCLINOMETER_2D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xab140f6d_83eb_4264_b70b_b16a5b256a01); +pub const SENSOR_TYPE_INCLINOMETER_3D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb84919fb_ea85_4976_8444_6f6f5c6d31db); +pub const SENSOR_TYPE_INDUCTANCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdc1d933f_c435_4c7d_a2fe_607192a524d3); +pub const SENSOR_TYPE_LOCATION_BROADCAST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd26988cf_5162_4039_bb17_4c58b698e44a); +pub const SENSOR_TYPE_LOCATION_DEAD_RECKONING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1a37d538_f28b_42da_9fce_a9d0a2a6d829); +pub const SENSOR_TYPE_LOCATION_GPS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xed4ca589_327a_4ff9_a560_91da4b48275e); +pub const SENSOR_TYPE_LOCATION_LOOKUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3b2eae4a_72ce_436d_96d2_3c5b8570e987); +pub const SENSOR_TYPE_LOCATION_OTHER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b2d0566_0368_4f71_b88d_533f132031de); +pub const SENSOR_TYPE_LOCATION_STATIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x095f8184_0fa9_4445_8e6e_b70f320b6b4c); +pub const SENSOR_TYPE_LOCATION_TRIANGULATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x691c341a_5406_4fe1_942f_2246cbeb39e0); +pub const SENSOR_TYPE_MOTION_DETECTOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c7c1a12_30a5_43b9_a4b2_cf09ec5b7be8); +pub const SENSOR_TYPE_MULTIVALUE_SWITCH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb3ee4d76_37a4_4402_b25e_99c60a775fa1); +pub const SENSOR_TYPE_POTENTIOMETER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2b3681a9_cadc_45aa_a6ff_54957c8bb440); +pub const SENSOR_TYPE_PRESSURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x26d31f34_6352_41cf_b793_ea0713d53d77); +pub const SENSOR_TYPE_RESISTANCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9993d2c8_c157_4a52_a7b5_195c76037231); +pub const SENSOR_TYPE_RFID_SCANNER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x44328ef5_02dd_4e8d_ad5d_9249832b2eca); +pub const SENSOR_TYPE_SCALE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc06dd92c_7feb_438e_9bf6_82207fff5bb8); +pub const SENSOR_TYPE_SPEEDOMETER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6bd73c1f_0bb4_4310_81b2_dfc18a52bf94); +pub const SENSOR_TYPE_STRAIN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6d1ec0e_6803_4361_ad3d_85bcc58c6d29); +pub const SENSOR_TYPE_TOUCH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x17db3018_06c4_4f7d_81af_9274b7599c27); +pub const SENSOR_TYPE_UNKNOWN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x10ba83e3_ef4f_41ed_9885_a87d6435a8e1); +pub const SENSOR_TYPE_VOLTAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc5484637_4fb7_4953_98b8_a56d8aa1fb1e); +pub const SIMPLE_DEVICE_ORIENTATION_NOT_ROTATED: SimpleDeviceOrientation = 0i32; +pub const SIMPLE_DEVICE_ORIENTATION_ROTATED_180: SimpleDeviceOrientation = 2i32; +pub const SIMPLE_DEVICE_ORIENTATION_ROTATED_270: SimpleDeviceOrientation = 3i32; +pub const SIMPLE_DEVICE_ORIENTATION_ROTATED_90: SimpleDeviceOrientation = 1i32; +pub const SIMPLE_DEVICE_ORIENTATION_ROTATED_FACE_DOWN: SimpleDeviceOrientation = 5i32; +pub const SIMPLE_DEVICE_ORIENTATION_ROTATED_FACE_UP: SimpleDeviceOrientation = 4i32; +pub const Sensor: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe97ced00_523a_4133_bf6f_d3a2dae7f6ba); +pub const SensorCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x79c43adb_a429_469f_aa39_2f2b74b75937); +pub const SensorConnectionType_Attached: SENSOR_CONNECTION_TYPES = 1i32; +pub const SensorConnectionType_External: SENSOR_CONNECTION_TYPES = 2i32; +pub const SensorConnectionType_Integrated: SENSOR_CONNECTION_TYPES = 0i32; +pub const SensorDataReport: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4ea9d6ef_694b_4218_8816_ccda8da74bba); +pub const SensorManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x77a1c827_fcd2_4689_8915_9d613cc5fa3e); +pub const SensorState_Active: SENSOR_STATE = 2i32; +pub const SensorState_Error: SENSOR_STATE = 3i32; +pub const SensorState_Idle: SENSOR_STATE = 1i32; +pub const SensorState_Initializing: SENSOR_STATE = 0i32; +pub const SimpleDeviceOrientation_Facedown: SIMPLE_DEVICE_ORIENTATION = 5i32; +pub const SimpleDeviceOrientation_Faceup: SIMPLE_DEVICE_ORIENTATION = 4i32; +pub const SimpleDeviceOrientation_NotRotated: SIMPLE_DEVICE_ORIENTATION = 0i32; +pub const SimpleDeviceOrientation_Rotated180DegreesCounterclockwise: SIMPLE_DEVICE_ORIENTATION = 2i32; +pub const SimpleDeviceOrientation_Rotated270DegreesCounterclockwise: SIMPLE_DEVICE_ORIENTATION = 3i32; +pub const SimpleDeviceOrientation_Rotated90DegreesCounterclockwise: SIMPLE_DEVICE_ORIENTATION = 1i32; +pub type ACTIVITY_STATE = i32; +pub type ACTIVITY_STATE_COUNT = i32; +pub type AXIS = i32; +pub type ELEVATION_CHANGE_MODE = i32; +pub type HUMAN_PRESENCE_DETECTION_TYPE = i32; +pub type HUMAN_PRESENCE_DETECTION_TYPE_COUNT = i32; +pub type LOCATION_DESIRED_ACCURACY = i32; +pub type LOCATION_POSITION_SOURCE = i32; +pub type MAGNETOMETER_ACCURACY = i32; +pub type MagnetometerAccuracy = i32; +pub type PEDOMETER_STEP_TYPE = i32; +pub type PEDOMETER_STEP_TYPE_COUNT = i32; +pub type PROXIMITY_SENSOR_CAPABILITIES = i32; +pub type PROXIMITY_TYPE = i32; +pub type SENSOR_CONNECTION_TYPES = i32; +pub type SENSOR_STATE = i32; +pub type SIMPLE_DEVICE_ORIENTATION = i32; +pub type SensorConnectionType = i32; +pub type SensorState = i32; +pub type SimpleDeviceOrientation = i32; +#[repr(C)] +pub struct MATRIX3X3 { + pub Anonymous: MATRIX3X3_0, +} +impl ::core::marker::Copy for MATRIX3X3 {} +impl ::core::clone::Clone for MATRIX3X3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MATRIX3X3_0 { + pub Anonymous1: MATRIX3X3_0_0, + pub Anonymous2: MATRIX3X3_0_1, + pub M: [f32; 9], +} +impl ::core::marker::Copy for MATRIX3X3_0 {} +impl ::core::clone::Clone for MATRIX3X3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MATRIX3X3_0_0 { + pub A11: f32, + pub A12: f32, + pub A13: f32, + pub A21: f32, + pub A22: f32, + pub A23: f32, + pub A31: f32, + pub A32: f32, + pub A33: f32, +} +impl ::core::marker::Copy for MATRIX3X3_0_0 {} +impl ::core::clone::Clone for MATRIX3X3_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MATRIX3X3_0_1 { + pub V1: VEC3D, + pub V2: VEC3D, + pub V3: VEC3D, +} +impl ::core::marker::Copy for MATRIX3X3_0_1 {} +impl ::core::clone::Clone for MATRIX3X3_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUATERNION { + pub X: f32, + pub Y: f32, + pub Z: f32, + pub W: f32, +} +impl ::core::marker::Copy for QUATERNION {} +impl ::core::clone::Clone for QUATERNION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +pub struct SENSOR_COLLECTION_LIST { + pub AllocatedSizeInBytes: u32, + pub Count: u32, + pub List: [SENSOR_VALUE_PAIR; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +impl ::core::marker::Copy for SENSOR_COLLECTION_LIST {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +impl ::core::clone::Clone for SENSOR_COLLECTION_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub struct SENSOR_PROPERTY_LIST { + pub AllocatedSizeInBytes: u32, + pub Count: u32, + pub List: [super::super::UI::Shell::PropertiesSystem::PROPERTYKEY; 1], +} +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +impl ::core::marker::Copy for SENSOR_PROPERTY_LIST {} +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +impl ::core::clone::Clone for SENSOR_PROPERTY_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +pub struct SENSOR_VALUE_PAIR { + pub Key: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY, + pub Value: super::super::System::Com::StructuredStorage::PROPVARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +impl ::core::marker::Copy for SENSOR_VALUE_PAIR {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +impl ::core::clone::Clone for SENSOR_VALUE_PAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VEC3D { + pub X: f32, + pub Y: f32, + pub Z: f32, +} +impl ::core::marker::Copy for VEC3D {} +impl ::core::clone::Clone for VEC3D { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/SerialCommunication/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/SerialCommunication/mod.rs new file mode 100644 index 000000000..16ecc68bb --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/SerialCommunication/mod.rs @@ -0,0 +1,308 @@ +::windows_targets::link!("msports.dll" "system" fn ComDBClaimNextFreePort(hcomdb : HCOMDB, comnumber : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msports.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ComDBClaimPort(hcomdb : HCOMDB, comnumber : u32, forceclaim : super::super::Foundation:: BOOL, forced : *mut super::super::Foundation:: BOOL) -> i32); +::windows_targets::link!("msports.dll" "system" fn ComDBClose(hcomdb : HCOMDB) -> i32); +::windows_targets::link!("msports.dll" "system" fn ComDBGetCurrentPortUsage(hcomdb : HCOMDB, buffer : *mut u8, buffersize : u32, reporttype : u32, maxportsreported : *mut u32) -> i32); +::windows_targets::link!("msports.dll" "system" fn ComDBOpen(phcomdb : *mut HCOMDB) -> i32); +::windows_targets::link!("msports.dll" "system" fn ComDBReleasePort(hcomdb : HCOMDB, comnumber : u32) -> i32); +::windows_targets::link!("msports.dll" "system" fn ComDBResizeDatabase(hcomdb : HCOMDB, newsize : u32) -> i32); +pub const CDB_REPORT_BITS: u32 = 0u32; +pub const CDB_REPORT_BYTES: u32 = 1u32; +pub const COMDB_MAX_PORTS_ARBITRATED: u32 = 4096u32; +pub const COMDB_MIN_PORTS_ARBITRATED: u32 = 256u32; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_DeviceInterface_Serial_PortName: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4c6bf15c_4c03_4aac_91f5_64c0f852bcf4), pid: 4 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_DeviceInterface_Serial_UsbProductId: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4c6bf15c_4c03_4aac_91f5_64c0f852bcf4), pid: 3 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_DeviceInterface_Serial_UsbVendorId: super::Properties::DEVPROPKEY = super::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4c6bf15c_4c03_4aac_91f5_64c0f852bcf4), pid: 2 }; +pub const EVEN_PARITY: u32 = 2u32; +pub const IOCTL_INTERNAL_SERENUM_REMOVE_SELF: u32 = 3604999u32; +pub const IOCTL_SERIAL_APPLY_DEFAULT_CONFIGURATION: u32 = 1769632u32; +pub const IOCTL_SERIAL_CLEAR_STATS: u32 = 1769616u32; +pub const IOCTL_SERIAL_CLR_DTR: u32 = 1769512u32; +pub const IOCTL_SERIAL_CLR_RTS: u32 = 1769524u32; +pub const IOCTL_SERIAL_CONFIG_SIZE: u32 = 1769600u32; +pub const IOCTL_SERIAL_GET_BAUD_RATE: u32 = 1769552u32; +pub const IOCTL_SERIAL_GET_CHARS: u32 = 1769560u32; +pub const IOCTL_SERIAL_GET_COMMCONFIG: u32 = 1769604u32; +pub const IOCTL_SERIAL_GET_COMMSTATUS: u32 = 1769580u32; +pub const IOCTL_SERIAL_GET_DTRRTS: u32 = 1769592u32; +pub const IOCTL_SERIAL_GET_HANDFLOW: u32 = 1769568u32; +pub const IOCTL_SERIAL_GET_LINE_CONTROL: u32 = 1769556u32; +pub const IOCTL_SERIAL_GET_MODEMSTATUS: u32 = 1769576u32; +pub const IOCTL_SERIAL_GET_MODEM_CONTROL: u32 = 1769620u32; +pub const IOCTL_SERIAL_GET_PROPERTIES: u32 = 1769588u32; +pub const IOCTL_SERIAL_GET_STATS: u32 = 1769612u32; +pub const IOCTL_SERIAL_GET_TIMEOUTS: u32 = 1769504u32; +pub const IOCTL_SERIAL_GET_WAIT_MASK: u32 = 1769536u32; +pub const IOCTL_SERIAL_IMMEDIATE_CHAR: u32 = 1769496u32; +pub const IOCTL_SERIAL_INTERNAL_BASIC_SETTINGS: u32 = 1769484u32; +pub const IOCTL_SERIAL_INTERNAL_CANCEL_WAIT_WAKE: u32 = 1769480u32; +pub const IOCTL_SERIAL_INTERNAL_DO_WAIT_WAKE: u32 = 1769476u32; +pub const IOCTL_SERIAL_INTERNAL_RESTORE_SETTINGS: u32 = 1769488u32; +pub const IOCTL_SERIAL_PURGE: u32 = 1769548u32; +pub const IOCTL_SERIAL_RESET_DEVICE: u32 = 1769516u32; +pub const IOCTL_SERIAL_SET_BAUD_RATE: u32 = 1769476u32; +pub const IOCTL_SERIAL_SET_BREAK_OFF: u32 = 1769492u32; +pub const IOCTL_SERIAL_SET_BREAK_ON: u32 = 1769488u32; +pub const IOCTL_SERIAL_SET_CHARS: u32 = 1769564u32; +pub const IOCTL_SERIAL_SET_COMMCONFIG: u32 = 1769608u32; +pub const IOCTL_SERIAL_SET_DTR: u32 = 1769508u32; +pub const IOCTL_SERIAL_SET_FIFO_CONTROL: u32 = 1769628u32; +pub const IOCTL_SERIAL_SET_HANDFLOW: u32 = 1769572u32; +pub const IOCTL_SERIAL_SET_INTERVAL_TIMER_RESOLUTION: u32 = 1769636u32; +pub const IOCTL_SERIAL_SET_LINE_CONTROL: u32 = 1769484u32; +pub const IOCTL_SERIAL_SET_MODEM_CONTROL: u32 = 1769624u32; +pub const IOCTL_SERIAL_SET_QUEUE_SIZE: u32 = 1769480u32; +pub const IOCTL_SERIAL_SET_RTS: u32 = 1769520u32; +pub const IOCTL_SERIAL_SET_TIMEOUTS: u32 = 1769500u32; +pub const IOCTL_SERIAL_SET_WAIT_MASK: u32 = 1769540u32; +pub const IOCTL_SERIAL_SET_XOFF: u32 = 1769528u32; +pub const IOCTL_SERIAL_SET_XON: u32 = 1769532u32; +pub const IOCTL_SERIAL_WAIT_ON_MASK: u32 = 1769544u32; +pub const IOCTL_SERIAL_XOFF_COUNTER: u32 = 1769584u32; +pub const MARK_PARITY: u32 = 3u32; +pub const NO_PARITY: u32 = 0u32; +pub const ODD_PARITY: u32 = 1u32; +pub const SERIAL_EV_BREAK: u32 = 64u32; +pub const SERIAL_EV_CTS: u32 = 8u32; +pub const SERIAL_EV_DSR: u32 = 16u32; +pub const SERIAL_EV_ERR: u32 = 128u32; +pub const SERIAL_EV_EVENT1: u32 = 2048u32; +pub const SERIAL_EV_EVENT2: u32 = 4096u32; +pub const SERIAL_EV_PERR: u32 = 512u32; +pub const SERIAL_EV_RING: u32 = 256u32; +pub const SERIAL_EV_RLSD: u32 = 32u32; +pub const SERIAL_EV_RX80FULL: u32 = 1024u32; +pub const SERIAL_EV_RXCHAR: u32 = 1u32; +pub const SERIAL_EV_RXFLAG: u32 = 2u32; +pub const SERIAL_EV_TXEMPTY: u32 = 4u32; +pub const SERIAL_LSRMST_ESCAPE: u16 = 0u16; +pub const SERIAL_LSRMST_LSR_DATA: u16 = 1u16; +pub const SERIAL_LSRMST_LSR_NODATA: u16 = 2u16; +pub const SERIAL_LSRMST_MST: u16 = 3u16; +pub const SERIAL_PURGE_RXABORT: u32 = 2u32; +pub const SERIAL_PURGE_RXCLEAR: u32 = 8u32; +pub const SERIAL_PURGE_TXABORT: u32 = 1u32; +pub const SERIAL_PURGE_TXCLEAR: u32 = 4u32; +pub const SPACE_PARITY: u32 = 4u32; +pub const STOP_BITS_1_5: u32 = 1u32; +pub const STOP_BITS_2: u32 = 2u32; +pub const STOP_BIT_1: u32 = 0u32; +pub const SerenumFirstHalf: SERENUM_PORTION = 0i32; +pub const SerenumSecondHalf: SERENUM_PORTION = 1i32; +pub const SerenumWhole: SERENUM_PORTION = 2i32; +pub type SERENUM_PORTION = i32; +pub type HCOMDB = isize; +#[repr(C)] +pub struct SERENUM_PORT_DESC { + pub Size: u32, + pub PortHandle: *mut ::core::ffi::c_void, + pub PortAddress: i64, + pub Reserved: [u16; 1], +} +impl ::core::marker::Copy for SERENUM_PORT_DESC {} +impl ::core::clone::Clone for SERENUM_PORT_DESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERENUM_PORT_PARAMETERS { + pub Size: u32, + pub ReadAccessor: PSERENUM_READPORT, + pub WriteAccessor: PSERENUM_WRITEPORT, + pub SerPortAddress: *mut ::core::ffi::c_void, + pub HardwareHandle: *mut ::core::ffi::c_void, + pub Portion: SERENUM_PORTION, + pub NumberAxis: u16, + pub Reserved: [u16; 3], +} +impl ::core::marker::Copy for SERENUM_PORT_PARAMETERS {} +impl ::core::clone::Clone for SERENUM_PORT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIALCONFIG { + pub Size: u32, + pub Version: u16, + pub SubType: u32, + pub ProvOffset: u32, + pub ProviderSize: u32, + pub ProviderData: [u16; 1], +} +impl ::core::marker::Copy for SERIALCONFIG {} +impl ::core::clone::Clone for SERIALCONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIALPERF_STATS { + pub ReceivedCount: u32, + pub TransmittedCount: u32, + pub FrameErrorCount: u32, + pub SerialOverrunErrorCount: u32, + pub BufferOverrunErrorCount: u32, + pub ParityErrorCount: u32, +} +impl ::core::marker::Copy for SERIALPERF_STATS {} +impl ::core::clone::Clone for SERIALPERF_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIAL_BASIC_SETTINGS { + pub Timeouts: SERIAL_TIMEOUTS, + pub HandFlow: SERIAL_HANDFLOW, + pub RxFifo: u32, + pub TxFifo: u32, +} +impl ::core::marker::Copy for SERIAL_BASIC_SETTINGS {} +impl ::core::clone::Clone for SERIAL_BASIC_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIAL_BAUD_RATE { + pub BaudRate: u32, +} +impl ::core::marker::Copy for SERIAL_BAUD_RATE {} +impl ::core::clone::Clone for SERIAL_BAUD_RATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIAL_CHARS { + pub EofChar: u8, + pub ErrorChar: u8, + pub BreakChar: u8, + pub EventChar: u8, + pub XonChar: u8, + pub XoffChar: u8, +} +impl ::core::marker::Copy for SERIAL_CHARS {} +impl ::core::clone::Clone for SERIAL_CHARS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIAL_COMMPROP { + pub PacketLength: u16, + pub PacketVersion: u16, + pub ServiceMask: u32, + pub Reserved1: u32, + pub MaxTxQueue: u32, + pub MaxRxQueue: u32, + pub MaxBaud: u32, + pub ProvSubType: u32, + pub ProvCapabilities: u32, + pub SettableParams: u32, + pub SettableBaud: u32, + pub SettableData: u16, + pub SettableStopParity: u16, + pub CurrentTxQueue: u32, + pub CurrentRxQueue: u32, + pub ProvSpec1: u32, + pub ProvSpec2: u32, + pub ProvChar: [u16; 1], +} +impl ::core::marker::Copy for SERIAL_COMMPROP {} +impl ::core::clone::Clone for SERIAL_COMMPROP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIAL_HANDFLOW { + pub ControlHandShake: u32, + pub FlowReplace: u32, + pub XonLimit: i32, + pub XoffLimit: i32, +} +impl ::core::marker::Copy for SERIAL_HANDFLOW {} +impl ::core::clone::Clone for SERIAL_HANDFLOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIAL_LINE_CONTROL { + pub StopBits: u8, + pub Parity: u8, + pub WordLength: u8, +} +impl ::core::marker::Copy for SERIAL_LINE_CONTROL {} +impl ::core::clone::Clone for SERIAL_LINE_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIAL_QUEUE_SIZE { + pub InSize: u32, + pub OutSize: u32, +} +impl ::core::marker::Copy for SERIAL_QUEUE_SIZE {} +impl ::core::clone::Clone for SERIAL_QUEUE_SIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERIAL_STATUS { + pub Errors: u32, + pub HoldReasons: u32, + pub AmountInInQueue: u32, + pub AmountInOutQueue: u32, + pub EofReceived: super::super::Foundation::BOOLEAN, + pub WaitForImmediate: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERIAL_STATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERIAL_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIAL_TIMEOUTS { + pub ReadIntervalTimeout: u32, + pub ReadTotalTimeoutMultiplier: u32, + pub ReadTotalTimeoutConstant: u32, + pub WriteTotalTimeoutMultiplier: u32, + pub WriteTotalTimeoutConstant: u32, +} +impl ::core::marker::Copy for SERIAL_TIMEOUTS {} +impl ::core::clone::Clone for SERIAL_TIMEOUTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIAL_XOFF_COUNTER { + pub Timeout: u32, + pub Counter: i32, + pub XoffChar: u8, +} +impl ::core::marker::Copy for SERIAL_XOFF_COUNTER {} +impl ::core::clone::Clone for SERIAL_XOFF_COUNTER { + fn clone(&self) -> Self { + *self + } +} +pub type PSERENUM_READPORT = ::core::option::Option u8>; +pub type PSERENUM_WRITEPORT = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Tapi/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Tapi/mod.rs new file mode 100644 index 000000000..b6cfaec38 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Tapi/mod.rs @@ -0,0 +1,4033 @@ +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn GetTnefStreamCodepage(lpstream : super::super::System::Com:: IStream, lpulcodepage : *mut u32, lpulsubcodepage : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_System_AddressBook", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_System_AddressBook\"`, `\"Win32_System_Com\"`"] fn OpenTnefStream(lpvsupport : *mut ::core::ffi::c_void, lpstream : super::super::System::Com:: IStream, lpszstreamname : *const i8, ulflags : u32, lpmessage : super::super::System::AddressBook:: IMessage, wkeyval : u16, lpptnef : *mut ITnef) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_System_AddressBook", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_System_AddressBook\"`, `\"Win32_System_Com\"`"] fn OpenTnefStreamEx(lpvsupport : *mut ::core::ffi::c_void, lpstream : super::super::System::Com:: IStream, lpszstreamname : *const i8, ulflags : u32, lpmessage : super::super::System::AddressBook:: IMessage, wkeyval : u16, lpadressbook : super::super::System::AddressBook:: IAddrBook, lpptnef : *mut ITnef) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("tapi32.dll" "system" fn lineAccept(hcall : u32, lpsuseruserinfo : ::windows_sys::core::PCSTR, dwsize : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineAddProvider(lpszproviderfilename : ::windows_sys::core::PCSTR, hwndowner : super::super::Foundation:: HWND, lpdwpermanentproviderid : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineAddProviderA(lpszproviderfilename : ::windows_sys::core::PCSTR, hwndowner : super::super::Foundation:: HWND, lpdwpermanentproviderid : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineAddProviderW(lpszproviderfilename : ::windows_sys::core::PCWSTR, hwndowner : super::super::Foundation:: HWND, lpdwpermanentproviderid : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineAddToConference(hconfcall : u32, hconsultcall : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineAgentSpecific(hline : u32, dwaddressid : u32, dwagentextensionidindex : u32, lpparams : *mut ::core::ffi::c_void, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineAnswer(hcall : u32, lpsuseruserinfo : ::windows_sys::core::PCSTR, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineBlindTransfer(hcall : u32, lpszdestaddress : ::windows_sys::core::PCSTR, dwcountrycode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineBlindTransferA(hcall : u32, lpszdestaddress : ::windows_sys::core::PCSTR, dwcountrycode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineBlindTransferW(hcall : u32, lpszdestaddressw : ::windows_sys::core::PCWSTR, dwcountrycode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineClose(hline : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineCompleteCall(hcall : u32, lpdwcompletionid : *mut u32, dwcompletionmode : u32, dwmessageid : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineCompleteTransfer(hcall : u32, hconsultcall : u32, lphconfcall : *mut u32, dwtransfermode : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineConfigDialog(dwdeviceid : u32, hwndowner : super::super::Foundation:: HWND, lpszdeviceclass : ::windows_sys::core::PCSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineConfigDialogA(dwdeviceid : u32, hwndowner : super::super::Foundation:: HWND, lpszdeviceclass : ::windows_sys::core::PCSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineConfigDialogEdit(dwdeviceid : u32, hwndowner : super::super::Foundation:: HWND, lpszdeviceclass : ::windows_sys::core::PCSTR, lpdeviceconfigin : *const ::core::ffi::c_void, dwsize : u32, lpdeviceconfigout : *mut VARSTRING) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineConfigDialogEditA(dwdeviceid : u32, hwndowner : super::super::Foundation:: HWND, lpszdeviceclass : ::windows_sys::core::PCSTR, lpdeviceconfigin : *const ::core::ffi::c_void, dwsize : u32, lpdeviceconfigout : *mut VARSTRING) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineConfigDialogEditW(dwdeviceid : u32, hwndowner : super::super::Foundation:: HWND, lpszdeviceclass : ::windows_sys::core::PCWSTR, lpdeviceconfigin : *const ::core::ffi::c_void, dwsize : u32, lpdeviceconfigout : *mut VARSTRING) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineConfigDialogW(dwdeviceid : u32, hwndowner : super::super::Foundation:: HWND, lpszdeviceclass : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineConfigProvider(hwndowner : super::super::Foundation:: HWND, dwpermanentproviderid : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineCreateAgentA(hline : u32, lpszagentid : ::windows_sys::core::PCSTR, lpszagentpin : ::windows_sys::core::PCSTR, lphagent : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineCreateAgentSessionA(hline : u32, hagent : u32, lpszagentpin : ::windows_sys::core::PCSTR, dwworkingaddressid : u32, lpgroupid : *mut ::windows_sys::core::GUID, lphagentsession : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineCreateAgentSessionW(hline : u32, hagent : u32, lpszagentpin : ::windows_sys::core::PCWSTR, dwworkingaddressid : u32, lpgroupid : *mut ::windows_sys::core::GUID, lphagentsession : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineCreateAgentW(hline : u32, lpszagentid : ::windows_sys::core::PCWSTR, lpszagentpin : ::windows_sys::core::PCWSTR, lphagent : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineDeallocateCall(hcall : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineDevSpecific(hline : u32, dwaddressid : u32, hcall : u32, lpparams : *mut ::core::ffi::c_void, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineDevSpecificFeature(hline : u32, dwfeature : u32, lpparams : *mut ::core::ffi::c_void, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineDial(hcall : u32, lpszdestaddress : ::windows_sys::core::PCSTR, dwcountrycode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineDialA(hcall : u32, lpszdestaddress : ::windows_sys::core::PCSTR, dwcountrycode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineDialW(hcall : u32, lpszdestaddress : ::windows_sys::core::PCWSTR, dwcountrycode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineDrop(hcall : u32, lpsuseruserinfo : ::windows_sys::core::PCSTR, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineForward(hline : u32, balladdresses : u32, dwaddressid : u32, lpforwardlist : *const LINEFORWARDLIST, dwnumringsnoanswer : u32, lphconsultcall : *mut u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineForwardA(hline : u32, balladdresses : u32, dwaddressid : u32, lpforwardlist : *const LINEFORWARDLIST, dwnumringsnoanswer : u32, lphconsultcall : *mut u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineForwardW(hline : u32, balladdresses : u32, dwaddressid : u32, lpforwardlist : *const LINEFORWARDLIST, dwnumringsnoanswer : u32, lphconsultcall : *mut u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGatherDigits(hcall : u32, dwdigitmodes : u32, lpsdigits : ::windows_sys::core::PSTR, dwnumdigits : u32, lpszterminationdigits : ::windows_sys::core::PCSTR, dwfirstdigittimeout : u32, dwinterdigittimeout : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGatherDigitsA(hcall : u32, dwdigitmodes : u32, lpsdigits : ::windows_sys::core::PSTR, dwnumdigits : u32, lpszterminationdigits : ::windows_sys::core::PCSTR, dwfirstdigittimeout : u32, dwinterdigittimeout : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGatherDigitsW(hcall : u32, dwdigitmodes : u32, lpsdigits : ::windows_sys::core::PWSTR, dwnumdigits : u32, lpszterminationdigits : ::windows_sys::core::PCWSTR, dwfirstdigittimeout : u32, dwinterdigittimeout : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGenerateDigits(hcall : u32, dwdigitmode : u32, lpszdigits : ::windows_sys::core::PCSTR, dwduration : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGenerateDigitsA(hcall : u32, dwdigitmode : u32, lpszdigits : ::windows_sys::core::PCSTR, dwduration : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGenerateDigitsW(hcall : u32, dwdigitmode : u32, lpszdigits : ::windows_sys::core::PCWSTR, dwduration : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGenerateTone(hcall : u32, dwtonemode : u32, dwduration : u32, dwnumtones : u32, lptones : *const LINEGENERATETONE) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAddressCaps(hlineapp : u32, dwdeviceid : u32, dwaddressid : u32, dwapiversion : u32, dwextversion : u32, lpaddresscaps : *mut LINEADDRESSCAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAddressCapsA(hlineapp : u32, dwdeviceid : u32, dwaddressid : u32, dwapiversion : u32, dwextversion : u32, lpaddresscaps : *mut LINEADDRESSCAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAddressCapsW(hlineapp : u32, dwdeviceid : u32, dwaddressid : u32, dwapiversion : u32, dwextversion : u32, lpaddresscaps : *mut LINEADDRESSCAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAddressID(hline : u32, lpdwaddressid : *mut u32, dwaddressmode : u32, lpsaddress : ::windows_sys::core::PCSTR, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAddressIDA(hline : u32, lpdwaddressid : *mut u32, dwaddressmode : u32, lpsaddress : ::windows_sys::core::PCSTR, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAddressIDW(hline : u32, lpdwaddressid : *mut u32, dwaddressmode : u32, lpsaddress : ::windows_sys::core::PCWSTR, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAddressStatus(hline : u32, dwaddressid : u32, lpaddressstatus : *mut LINEADDRESSSTATUS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAddressStatusA(hline : u32, dwaddressid : u32, lpaddressstatus : *mut LINEADDRESSSTATUS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAddressStatusW(hline : u32, dwaddressid : u32, lpaddressstatus : *mut LINEADDRESSSTATUS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAgentActivityListA(hline : u32, dwaddressid : u32, lpagentactivitylist : *mut LINEAGENTACTIVITYLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAgentActivityListW(hline : u32, dwaddressid : u32, lpagentactivitylist : *mut LINEAGENTACTIVITYLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAgentCapsA(hlineapp : u32, dwdeviceid : u32, dwaddressid : u32, dwappapiversion : u32, lpagentcaps : *mut LINEAGENTCAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAgentCapsW(hlineapp : u32, dwdeviceid : u32, dwaddressid : u32, dwappapiversion : u32, lpagentcaps : *mut LINEAGENTCAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAgentGroupListA(hline : u32, dwaddressid : u32, lpagentgrouplist : *mut LINEAGENTGROUPLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAgentGroupListW(hline : u32, dwaddressid : u32, lpagentgrouplist : *mut LINEAGENTGROUPLIST) -> i32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn lineGetAgentInfo(hline : u32, hagent : u32, lpagentinfo : *mut LINEAGENTINFO) -> i32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn lineGetAgentSessionInfo(hline : u32, hagentsession : u32, lpagentsessioninfo : *mut LINEAGENTSESSIONINFO) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAgentSessionList(hline : u32, hagent : u32, lpagentsessionlist : *mut LINEAGENTSESSIONLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAgentStatusA(hline : u32, dwaddressid : u32, lpagentstatus : *mut LINEAGENTSTATUS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAgentStatusW(hline : u32, dwaddressid : u32, lpagentstatus : *mut LINEAGENTSTATUS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAppPriority(lpszappfilename : ::windows_sys::core::PCSTR, dwmediamode : u32, lpextensionid : *mut LINEEXTENSIONID, dwrequestmode : u32, lpextensionname : *mut VARSTRING, lpdwpriority : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAppPriorityA(lpszappfilename : ::windows_sys::core::PCSTR, dwmediamode : u32, lpextensionid : *mut LINEEXTENSIONID, dwrequestmode : u32, lpextensionname : *mut VARSTRING, lpdwpriority : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetAppPriorityW(lpszappfilename : ::windows_sys::core::PCWSTR, dwmediamode : u32, lpextensionid : *mut LINEEXTENSIONID, dwrequestmode : u32, lpextensionname : *mut VARSTRING, lpdwpriority : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetCallInfo(hcall : u32, lpcallinfo : *mut LINECALLINFO) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetCallInfoA(hcall : u32, lpcallinfo : *mut LINECALLINFO) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetCallInfoW(hcall : u32, lpcallinfo : *mut LINECALLINFO) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineGetCallStatus(hcall : u32, lpcallstatus : *mut LINECALLSTATUS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetConfRelatedCalls(hcall : u32, lpcalllist : *mut LINECALLLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetCountry(dwcountryid : u32, dwapiversion : u32, lplinecountrylist : *mut LINECOUNTRYLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetCountryA(dwcountryid : u32, dwapiversion : u32, lplinecountrylist : *mut LINECOUNTRYLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetCountryW(dwcountryid : u32, dwapiversion : u32, lplinecountrylist : *mut LINECOUNTRYLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetDevCaps(hlineapp : u32, dwdeviceid : u32, dwapiversion : u32, dwextversion : u32, lplinedevcaps : *mut LINEDEVCAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetDevCapsA(hlineapp : u32, dwdeviceid : u32, dwapiversion : u32, dwextversion : u32, lplinedevcaps : *mut LINEDEVCAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetDevCapsW(hlineapp : u32, dwdeviceid : u32, dwapiversion : u32, dwextversion : u32, lplinedevcaps : *mut LINEDEVCAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetDevConfig(dwdeviceid : u32, lpdeviceconfig : *mut VARSTRING, lpszdeviceclass : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetDevConfigA(dwdeviceid : u32, lpdeviceconfig : *mut VARSTRING, lpszdeviceclass : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetDevConfigW(dwdeviceid : u32, lpdeviceconfig : *mut VARSTRING, lpszdeviceclass : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetGroupListA(hline : u32, lpgrouplist : *mut LINEAGENTGROUPLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetGroupListW(hline : u32, lpgrouplist : *mut LINEAGENTGROUPLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetID(hline : u32, dwaddressid : u32, hcall : u32, dwselect : u32, lpdeviceid : *mut VARSTRING, lpszdeviceclass : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetIDA(hline : u32, dwaddressid : u32, hcall : u32, dwselect : u32, lpdeviceid : *mut VARSTRING, lpszdeviceclass : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetIDW(hline : u32, dwaddressid : u32, hcall : u32, dwselect : u32, lpdeviceid : *mut VARSTRING, lpszdeviceclass : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn lineGetIcon(dwdeviceid : u32, lpszdeviceclass : ::windows_sys::core::PCSTR, lphicon : *mut super::super::UI::WindowsAndMessaging:: HICON) -> i32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn lineGetIconA(dwdeviceid : u32, lpszdeviceclass : ::windows_sys::core::PCSTR, lphicon : *mut super::super::UI::WindowsAndMessaging:: HICON) -> i32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn lineGetIconW(dwdeviceid : u32, lpszdeviceclass : ::windows_sys::core::PCWSTR, lphicon : *mut super::super::UI::WindowsAndMessaging:: HICON) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetLineDevStatus(hline : u32, lplinedevstatus : *mut LINEDEVSTATUS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetLineDevStatusA(hline : u32, lplinedevstatus : *mut LINEDEVSTATUS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetLineDevStatusW(hline : u32, lplinedevstatus : *mut LINEDEVSTATUS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetMessage(hlineapp : u32, lpmessage : *mut LINEMESSAGE, dwtimeout : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetNewCalls(hline : u32, dwaddressid : u32, dwselect : u32, lpcalllist : *mut LINECALLLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetNumRings(hline : u32, dwaddressid : u32, lpdwnumrings : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetProviderList(dwapiversion : u32, lpproviderlist : *mut LINEPROVIDERLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetProviderListA(dwapiversion : u32, lpproviderlist : *mut LINEPROVIDERLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetProviderListW(dwapiversion : u32, lpproviderlist : *mut LINEPROVIDERLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetProxyStatus(hlineapp : u32, dwdeviceid : u32, dwappapiversion : u32, lplineproxyreqestlist : *mut LINEPROXYREQUESTLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetQueueInfo(hline : u32, dwqueueid : u32, lplinequeueinfo : *mut LINEQUEUEINFO) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetQueueListA(hline : u32, lpgroupid : *mut ::windows_sys::core::GUID, lpqueuelist : *mut LINEQUEUELIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetQueueListW(hline : u32, lpgroupid : *mut ::windows_sys::core::GUID, lpqueuelist : *mut LINEQUEUELIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetRequest(hlineapp : u32, dwrequestmode : u32, lprequestbuffer : *mut ::core::ffi::c_void) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetRequestA(hlineapp : u32, dwrequestmode : u32, lprequestbuffer : *mut ::core::ffi::c_void) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetRequestW(hlineapp : u32, dwrequestmode : u32, lprequestbuffer : *mut ::core::ffi::c_void) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetStatusMessages(hline : u32, lpdwlinestates : *mut u32, lpdwaddressstates : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetTranslateCaps(hlineapp : u32, dwapiversion : u32, lptranslatecaps : *mut LINETRANSLATECAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetTranslateCapsA(hlineapp : u32, dwapiversion : u32, lptranslatecaps : *mut LINETRANSLATECAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineGetTranslateCapsW(hlineapp : u32, dwapiversion : u32, lptranslatecaps : *mut LINETRANSLATECAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineHandoff(hcall : u32, lpszfilename : ::windows_sys::core::PCSTR, dwmediamode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineHandoffA(hcall : u32, lpszfilename : ::windows_sys::core::PCSTR, dwmediamode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineHandoffW(hcall : u32, lpszfilename : ::windows_sys::core::PCWSTR, dwmediamode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineHold(hcall : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineInitialize(lphlineapp : *mut u32, hinstance : super::super::Foundation:: HINSTANCE, lpfncallback : LINECALLBACK, lpszappname : ::windows_sys::core::PCSTR, lpdwnumdevs : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineInitializeExA(lphlineapp : *mut u32, hinstance : super::super::Foundation:: HINSTANCE, lpfncallback : LINECALLBACK, lpszfriendlyappname : ::windows_sys::core::PCSTR, lpdwnumdevs : *mut u32, lpdwapiversion : *mut u32, lplineinitializeexparams : *mut LINEINITIALIZEEXPARAMS) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineInitializeExW(lphlineapp : *mut u32, hinstance : super::super::Foundation:: HINSTANCE, lpfncallback : LINECALLBACK, lpszfriendlyappname : ::windows_sys::core::PCWSTR, lpdwnumdevs : *mut u32, lpdwapiversion : *mut u32, lplineinitializeexparams : *mut LINEINITIALIZEEXPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineMakeCall(hline : u32, lphcall : *mut u32, lpszdestaddress : ::windows_sys::core::PCSTR, dwcountrycode : u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineMakeCallA(hline : u32, lphcall : *mut u32, lpszdestaddress : ::windows_sys::core::PCSTR, dwcountrycode : u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineMakeCallW(hline : u32, lphcall : *mut u32, lpszdestaddress : ::windows_sys::core::PCWSTR, dwcountrycode : u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineMonitorDigits(hcall : u32, dwdigitmodes : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineMonitorMedia(hcall : u32, dwmediamodes : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineMonitorTones(hcall : u32, lptonelist : *const LINEMONITORTONE, dwnumentries : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineNegotiateAPIVersion(hlineapp : u32, dwdeviceid : u32, dwapilowversion : u32, dwapihighversion : u32, lpdwapiversion : *mut u32, lpextensionid : *mut LINEEXTENSIONID) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineNegotiateExtVersion(hlineapp : u32, dwdeviceid : u32, dwapiversion : u32, dwextlowversion : u32, dwexthighversion : u32, lpdwextversion : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineOpen(hlineapp : u32, dwdeviceid : u32, lphline : *mut u32, dwapiversion : u32, dwextversion : u32, dwcallbackinstance : usize, dwprivileges : u32, dwmediamodes : u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineOpenA(hlineapp : u32, dwdeviceid : u32, lphline : *mut u32, dwapiversion : u32, dwextversion : u32, dwcallbackinstance : usize, dwprivileges : u32, dwmediamodes : u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineOpenW(hlineapp : u32, dwdeviceid : u32, lphline : *mut u32, dwapiversion : u32, dwextversion : u32, dwcallbackinstance : usize, dwprivileges : u32, dwmediamodes : u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn linePark(hcall : u32, dwparkmode : u32, lpszdiraddress : ::windows_sys::core::PCSTR, lpnondiraddress : *mut VARSTRING) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineParkA(hcall : u32, dwparkmode : u32, lpszdiraddress : ::windows_sys::core::PCSTR, lpnondiraddress : *mut VARSTRING) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineParkW(hcall : u32, dwparkmode : u32, lpszdiraddress : ::windows_sys::core::PCWSTR, lpnondiraddress : *mut VARSTRING) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn linePickup(hline : u32, dwaddressid : u32, lphcall : *mut u32, lpszdestaddress : ::windows_sys::core::PCSTR, lpszgroupid : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn linePickupA(hline : u32, dwaddressid : u32, lphcall : *mut u32, lpszdestaddress : ::windows_sys::core::PCSTR, lpszgroupid : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn linePickupW(hline : u32, dwaddressid : u32, lphcall : *mut u32, lpszdestaddress : ::windows_sys::core::PCWSTR, lpszgroupid : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn linePrepareAddToConference(hconfcall : u32, lphconsultcall : *mut u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn linePrepareAddToConferenceA(hconfcall : u32, lphconsultcall : *mut u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn linePrepareAddToConferenceW(hconfcall : u32, lphconsultcall : *mut u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineProxyMessage(hline : u32, hcall : u32, dwmsg : u32, dwparam1 : u32, dwparam2 : u32, dwparam3 : u32) -> i32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn lineProxyResponse(hline : u32, lpproxyrequest : *mut LINEPROXYREQUEST, dwresult : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineRedirect(hcall : u32, lpszdestaddress : ::windows_sys::core::PCSTR, dwcountrycode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineRedirectA(hcall : u32, lpszdestaddress : ::windows_sys::core::PCSTR, dwcountrycode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineRedirectW(hcall : u32, lpszdestaddress : ::windows_sys::core::PCWSTR, dwcountrycode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineRegisterRequestRecipient(hlineapp : u32, dwregistrationinstance : u32, dwrequestmode : u32, benable : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineReleaseUserUserInfo(hcall : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineRemoveFromConference(hcall : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineRemoveProvider(dwpermanentproviderid : u32, hwndowner : super::super::Foundation:: HWND) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSecureCall(hcall : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSendUserUserInfo(hcall : u32, lpsuseruserinfo : ::windows_sys::core::PCSTR, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetAgentActivity(hline : u32, dwaddressid : u32, dwactivityid : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetAgentGroup(hline : u32, dwaddressid : u32, lpagentgrouplist : *mut LINEAGENTGROUPLIST) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetAgentMeasurementPeriod(hline : u32, hagent : u32, dwmeasurementperiod : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetAgentSessionState(hline : u32, hagentsession : u32, dwagentsessionstate : u32, dwnextagentsessionstate : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetAgentState(hline : u32, dwaddressid : u32, dwagentstate : u32, dwnextagentstate : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetAgentStateEx(hline : u32, hagent : u32, dwagentstate : u32, dwnextagentstate : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetAppPriority(lpszappfilename : ::windows_sys::core::PCSTR, dwmediamode : u32, lpextensionid : *mut LINEEXTENSIONID, dwrequestmode : u32, lpszextensionname : ::windows_sys::core::PCSTR, dwpriority : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetAppPriorityA(lpszappfilename : ::windows_sys::core::PCSTR, dwmediamode : u32, lpextensionid : *mut LINEEXTENSIONID, dwrequestmode : u32, lpszextensionname : ::windows_sys::core::PCSTR, dwpriority : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetAppPriorityW(lpszappfilename : ::windows_sys::core::PCWSTR, dwmediamode : u32, lpextensionid : *mut LINEEXTENSIONID, dwrequestmode : u32, lpszextensionname : ::windows_sys::core::PCWSTR, dwpriority : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetAppSpecific(hcall : u32, dwappspecific : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetCallData(hcall : u32, lpcalldata : *mut ::core::ffi::c_void, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetCallParams(hcall : u32, dwbearermode : u32, dwminrate : u32, dwmaxrate : u32, lpdialparams : *const LINEDIALPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetCallPrivilege(hcall : u32, dwcallprivilege : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetCallQualityOfService(hcall : u32, lpsendingflowspec : *mut ::core::ffi::c_void, dwsendingflowspecsize : u32, lpreceivingflowspec : *mut ::core::ffi::c_void, dwreceivingflowspecsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetCallTreatment(hcall : u32, dwtreatment : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetCurrentLocation(hlineapp : u32, dwlocation : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetDevConfig(dwdeviceid : u32, lpdeviceconfig : *const ::core::ffi::c_void, dwsize : u32, lpszdeviceclass : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetDevConfigA(dwdeviceid : u32, lpdeviceconfig : *const ::core::ffi::c_void, dwsize : u32, lpszdeviceclass : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetDevConfigW(dwdeviceid : u32, lpdeviceconfig : *const ::core::ffi::c_void, dwsize : u32, lpszdeviceclass : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetLineDevStatus(hline : u32, dwstatustochange : u32, fstatus : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetMediaControl(hline : u32, dwaddressid : u32, hcall : u32, dwselect : u32, lpdigitlist : *const LINEMEDIACONTROLDIGIT, dwdigitnumentries : u32, lpmedialist : *const LINEMEDIACONTROLMEDIA, dwmedianumentries : u32, lptonelist : *const LINEMEDIACONTROLTONE, dwtonenumentries : u32, lpcallstatelist : *const LINEMEDIACONTROLCALLSTATE, dwcallstatenumentries : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetMediaMode(hcall : u32, dwmediamodes : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetNumRings(hline : u32, dwaddressid : u32, dwnumrings : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetQueueMeasurementPeriod(hline : u32, dwqueueid : u32, dwmeasurementperiod : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetStatusMessages(hline : u32, dwlinestates : u32, dwaddressstates : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetTerminal(hline : u32, dwaddressid : u32, hcall : u32, dwselect : u32, dwterminalmodes : u32, dwterminalid : u32, benable : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetTollList(hlineapp : u32, dwdeviceid : u32, lpszaddressin : ::windows_sys::core::PCSTR, dwtolllistoption : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetTollListA(hlineapp : u32, dwdeviceid : u32, lpszaddressin : ::windows_sys::core::PCSTR, dwtolllistoption : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetTollListW(hlineapp : u32, dwdeviceid : u32, lpszaddressinw : ::windows_sys::core::PCWSTR, dwtolllistoption : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetupConference(hcall : u32, hline : u32, lphconfcall : *mut u32, lphconsultcall : *mut u32, dwnumparties : u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetupConferenceA(hcall : u32, hline : u32, lphconfcall : *mut u32, lphconsultcall : *mut u32, dwnumparties : u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetupConferenceW(hcall : u32, hline : u32, lphconfcall : *mut u32, lphconsultcall : *mut u32, dwnumparties : u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetupTransfer(hcall : u32, lphconsultcall : *mut u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetupTransferA(hcall : u32, lphconsultcall : *mut u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSetupTransferW(hcall : u32, lphconsultcall : *mut u32, lpcallparams : *const LINECALLPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineShutdown(hlineapp : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineSwapHold(hactivecall : u32, hheldcall : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineTranslateAddress(hlineapp : u32, dwdeviceid : u32, dwapiversion : u32, lpszaddressin : ::windows_sys::core::PCSTR, dwcard : u32, dwtranslateoptions : u32, lptranslateoutput : *mut LINETRANSLATEOUTPUT) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineTranslateAddressA(hlineapp : u32, dwdeviceid : u32, dwapiversion : u32, lpszaddressin : ::windows_sys::core::PCSTR, dwcard : u32, dwtranslateoptions : u32, lptranslateoutput : *mut LINETRANSLATEOUTPUT) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineTranslateAddressW(hlineapp : u32, dwdeviceid : u32, dwapiversion : u32, lpszaddressin : ::windows_sys::core::PCWSTR, dwcard : u32, dwtranslateoptions : u32, lptranslateoutput : *mut LINETRANSLATEOUTPUT) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineTranslateDialog(hlineapp : u32, dwdeviceid : u32, dwapiversion : u32, hwndowner : super::super::Foundation:: HWND, lpszaddressin : ::windows_sys::core::PCSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineTranslateDialogA(hlineapp : u32, dwdeviceid : u32, dwapiversion : u32, hwndowner : super::super::Foundation:: HWND, lpszaddressin : ::windows_sys::core::PCSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn lineTranslateDialogW(hlineapp : u32, dwdeviceid : u32, dwapiversion : u32, hwndowner : super::super::Foundation:: HWND, lpszaddressin : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineUncompleteCall(hline : u32, dwcompletionid : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineUnhold(hcall : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineUnpark(hline : u32, dwaddressid : u32, lphcall : *mut u32, lpszdestaddress : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineUnparkA(hline : u32, dwaddressid : u32, lphcall : *mut u32, lpszdestaddress : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn lineUnparkW(hline : u32, dwaddressid : u32, lphcall : *mut u32, lpszdestaddress : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneClose(hphone : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn phoneConfigDialog(dwdeviceid : u32, hwndowner : super::super::Foundation:: HWND, lpszdeviceclass : ::windows_sys::core::PCSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn phoneConfigDialogA(dwdeviceid : u32, hwndowner : super::super::Foundation:: HWND, lpszdeviceclass : ::windows_sys::core::PCSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn phoneConfigDialogW(dwdeviceid : u32, hwndowner : super::super::Foundation:: HWND, lpszdeviceclass : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneDevSpecific(hphone : u32, lpparams : *mut ::core::ffi::c_void, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetButtonInfo(hphone : u32, dwbuttonlampid : u32, lpbuttoninfo : *mut PHONEBUTTONINFO) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetButtonInfoA(hphone : u32, dwbuttonlampid : u32, lpbuttoninfo : *mut PHONEBUTTONINFO) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetButtonInfoW(hphone : u32, dwbuttonlampid : u32, lpbuttoninfo : *mut PHONEBUTTONINFO) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetData(hphone : u32, dwdataid : u32, lpdata : *mut ::core::ffi::c_void, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetDevCaps(hphoneapp : u32, dwdeviceid : u32, dwapiversion : u32, dwextversion : u32, lpphonecaps : *mut PHONECAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetDevCapsA(hphoneapp : u32, dwdeviceid : u32, dwapiversion : u32, dwextversion : u32, lpphonecaps : *mut PHONECAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetDevCapsW(hphoneapp : u32, dwdeviceid : u32, dwapiversion : u32, dwextversion : u32, lpphonecaps : *mut PHONECAPS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetDisplay(hphone : u32, lpdisplay : *mut VARSTRING) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetGain(hphone : u32, dwhookswitchdev : u32, lpdwgain : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetHookSwitch(hphone : u32, lpdwhookswitchdevs : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetID(hphone : u32, lpdeviceid : *mut VARSTRING, lpszdeviceclass : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetIDA(hphone : u32, lpdeviceid : *mut VARSTRING, lpszdeviceclass : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetIDW(hphone : u32, lpdeviceid : *mut VARSTRING, lpszdeviceclass : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn phoneGetIcon(dwdeviceid : u32, lpszdeviceclass : ::windows_sys::core::PCSTR, lphicon : *mut super::super::UI::WindowsAndMessaging:: HICON) -> i32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn phoneGetIconA(dwdeviceid : u32, lpszdeviceclass : ::windows_sys::core::PCSTR, lphicon : *mut super::super::UI::WindowsAndMessaging:: HICON) -> i32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn phoneGetIconW(dwdeviceid : u32, lpszdeviceclass : ::windows_sys::core::PCWSTR, lphicon : *mut super::super::UI::WindowsAndMessaging:: HICON) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetLamp(hphone : u32, dwbuttonlampid : u32, lpdwlampmode : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetMessage(hphoneapp : u32, lpmessage : *mut PHONEMESSAGE, dwtimeout : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetRing(hphone : u32, lpdwringmode : *mut u32, lpdwvolume : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetStatus(hphone : u32, lpphonestatus : *mut PHONESTATUS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetStatusA(hphone : u32, lpphonestatus : *mut PHONESTATUS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetStatusMessages(hphone : u32, lpdwphonestates : *mut u32, lpdwbuttonmodes : *mut u32, lpdwbuttonstates : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetStatusW(hphone : u32, lpphonestatus : *mut PHONESTATUS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneGetVolume(hphone : u32, dwhookswitchdev : u32, lpdwvolume : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn phoneInitialize(lphphoneapp : *mut u32, hinstance : super::super::Foundation:: HINSTANCE, lpfncallback : PHONECALLBACK, lpszappname : ::windows_sys::core::PCSTR, lpdwnumdevs : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn phoneInitializeExA(lphphoneapp : *mut u32, hinstance : super::super::Foundation:: HINSTANCE, lpfncallback : PHONECALLBACK, lpszfriendlyappname : ::windows_sys::core::PCSTR, lpdwnumdevs : *mut u32, lpdwapiversion : *mut u32, lpphoneinitializeexparams : *mut PHONEINITIALIZEEXPARAMS) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn phoneInitializeExW(lphphoneapp : *mut u32, hinstance : super::super::Foundation:: HINSTANCE, lpfncallback : PHONECALLBACK, lpszfriendlyappname : ::windows_sys::core::PCWSTR, lpdwnumdevs : *mut u32, lpdwapiversion : *mut u32, lpphoneinitializeexparams : *mut PHONEINITIALIZEEXPARAMS) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneNegotiateAPIVersion(hphoneapp : u32, dwdeviceid : u32, dwapilowversion : u32, dwapihighversion : u32, lpdwapiversion : *mut u32, lpextensionid : *mut PHONEEXTENSIONID) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneNegotiateExtVersion(hphoneapp : u32, dwdeviceid : u32, dwapiversion : u32, dwextlowversion : u32, dwexthighversion : u32, lpdwextversion : *mut u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneOpen(hphoneapp : u32, dwdeviceid : u32, lphphone : *mut u32, dwapiversion : u32, dwextversion : u32, dwcallbackinstance : usize, dwprivilege : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneSetButtonInfo(hphone : u32, dwbuttonlampid : u32, lpbuttoninfo : *const PHONEBUTTONINFO) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneSetButtonInfoA(hphone : u32, dwbuttonlampid : u32, lpbuttoninfo : *const PHONEBUTTONINFO) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneSetButtonInfoW(hphone : u32, dwbuttonlampid : u32, lpbuttoninfo : *const PHONEBUTTONINFO) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneSetData(hphone : u32, dwdataid : u32, lpdata : *const ::core::ffi::c_void, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneSetDisplay(hphone : u32, dwrow : u32, dwcolumn : u32, lpsdisplay : ::windows_sys::core::PCSTR, dwsize : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneSetGain(hphone : u32, dwhookswitchdev : u32, dwgain : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneSetHookSwitch(hphone : u32, dwhookswitchdevs : u32, dwhookswitchmode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneSetLamp(hphone : u32, dwbuttonlampid : u32, dwlampmode : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneSetRing(hphone : u32, dwringmode : u32, dwvolume : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneSetStatusMessages(hphone : u32, dwphonestates : u32, dwbuttonmodes : u32, dwbuttonstates : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneSetVolume(hphone : u32, dwhookswitchdev : u32, dwvolume : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn phoneShutdown(hphoneapp : u32) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn tapiGetLocationInfo(lpszcountrycode : ::windows_sys::core::PSTR, lpszcitycode : ::windows_sys::core::PSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn tapiGetLocationInfoA(lpszcountrycode : ::windows_sys::core::PSTR, lpszcitycode : ::windows_sys::core::PSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn tapiGetLocationInfoW(lpszcountrycodew : ::windows_sys::core::PWSTR, lpszcitycodew : ::windows_sys::core::PWSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn tapiRequestDrop(hwnd : super::super::Foundation:: HWND, wrequestid : super::super::Foundation:: WPARAM) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn tapiRequestMakeCall(lpszdestaddress : ::windows_sys::core::PCSTR, lpszappname : ::windows_sys::core::PCSTR, lpszcalledparty : ::windows_sys::core::PCSTR, lpszcomment : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn tapiRequestMakeCallA(lpszdestaddress : ::windows_sys::core::PCSTR, lpszappname : ::windows_sys::core::PCSTR, lpszcalledparty : ::windows_sys::core::PCSTR, lpszcomment : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("tapi32.dll" "system" fn tapiRequestMakeCallW(lpszdestaddress : ::windows_sys::core::PCWSTR, lpszappname : ::windows_sys::core::PCWSTR, lpszcalledparty : ::windows_sys::core::PCWSTR, lpszcomment : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn tapiRequestMediaCall(hwnd : super::super::Foundation:: HWND, wrequestid : super::super::Foundation:: WPARAM, lpszdeviceclass : ::windows_sys::core::PCSTR, lpdeviceid : ::windows_sys::core::PCSTR, dwsize : u32, dwsecure : u32, lpszdestaddress : ::windows_sys::core::PCSTR, lpszappname : ::windows_sys::core::PCSTR, lpszcalledparty : ::windows_sys::core::PCSTR, lpszcomment : ::windows_sys::core::PCSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn tapiRequestMediaCallA(hwnd : super::super::Foundation:: HWND, wrequestid : super::super::Foundation:: WPARAM, lpszdeviceclass : ::windows_sys::core::PCSTR, lpdeviceid : ::windows_sys::core::PCSTR, dwsize : u32, dwsecure : u32, lpszdestaddress : ::windows_sys::core::PCSTR, lpszappname : ::windows_sys::core::PCSTR, lpszcalledparty : ::windows_sys::core::PCSTR, lpszcomment : ::windows_sys::core::PCSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn tapiRequestMediaCallW(hwnd : super::super::Foundation:: HWND, wrequestid : super::super::Foundation:: WPARAM, lpszdeviceclass : ::windows_sys::core::PCWSTR, lpdeviceid : ::windows_sys::core::PCWSTR, dwsize : u32, dwsecure : u32, lpszdestaddress : ::windows_sys::core::PCWSTR, lpszappname : ::windows_sys::core::PCWSTR, lpszcalledparty : ::windows_sys::core::PCWSTR, lpszcomment : ::windows_sys::core::PCWSTR) -> i32); +pub type IEnumACDGroup = *mut ::core::ffi::c_void; +pub type IEnumAddress = *mut ::core::ffi::c_void; +pub type IEnumAgent = *mut ::core::ffi::c_void; +pub type IEnumAgentHandler = *mut ::core::ffi::c_void; +pub type IEnumAgentSession = *mut ::core::ffi::c_void; +pub type IEnumBstr = *mut ::core::ffi::c_void; +pub type IEnumCall = *mut ::core::ffi::c_void; +pub type IEnumCallHub = *mut ::core::ffi::c_void; +pub type IEnumCallingCard = *mut ::core::ffi::c_void; +pub type IEnumDialableAddrs = *mut ::core::ffi::c_void; +pub type IEnumDirectory = *mut ::core::ffi::c_void; +pub type IEnumDirectoryObject = *mut ::core::ffi::c_void; +pub type IEnumLocation = *mut ::core::ffi::c_void; +pub type IEnumMcastScope = *mut ::core::ffi::c_void; +pub type IEnumPhone = *mut ::core::ffi::c_void; +pub type IEnumPluggableSuperclassInfo = *mut ::core::ffi::c_void; +pub type IEnumPluggableTerminalClassInfo = *mut ::core::ffi::c_void; +pub type IEnumQueue = *mut ::core::ffi::c_void; +pub type IEnumStream = *mut ::core::ffi::c_void; +pub type IEnumSubStream = *mut ::core::ffi::c_void; +pub type IEnumTerminal = *mut ::core::ffi::c_void; +pub type IEnumTerminalClass = *mut ::core::ffi::c_void; +pub type IMcastAddressAllocation = *mut ::core::ffi::c_void; +pub type IMcastLeaseInfo = *mut ::core::ffi::c_void; +pub type IMcastScope = *mut ::core::ffi::c_void; +pub type ITACDGroup = *mut ::core::ffi::c_void; +pub type ITACDGroupEvent = *mut ::core::ffi::c_void; +pub type ITAMMediaFormat = *mut ::core::ffi::c_void; +pub type ITASRTerminalEvent = *mut ::core::ffi::c_void; +pub type ITAddress = *mut ::core::ffi::c_void; +pub type ITAddress2 = *mut ::core::ffi::c_void; +pub type ITAddressCapabilities = *mut ::core::ffi::c_void; +pub type ITAddressDeviceSpecificEvent = *mut ::core::ffi::c_void; +pub type ITAddressEvent = *mut ::core::ffi::c_void; +pub type ITAddressTranslation = *mut ::core::ffi::c_void; +pub type ITAddressTranslationInfo = *mut ::core::ffi::c_void; +pub type ITAgent = *mut ::core::ffi::c_void; +pub type ITAgentEvent = *mut ::core::ffi::c_void; +pub type ITAgentHandler = *mut ::core::ffi::c_void; +pub type ITAgentHandlerEvent = *mut ::core::ffi::c_void; +pub type ITAgentSession = *mut ::core::ffi::c_void; +pub type ITAgentSessionEvent = *mut ::core::ffi::c_void; +pub type ITAllocatorProperties = *mut ::core::ffi::c_void; +pub type ITAutomatedPhoneControl = *mut ::core::ffi::c_void; +pub type ITBasicAudioTerminal = *mut ::core::ffi::c_void; +pub type ITBasicCallControl = *mut ::core::ffi::c_void; +pub type ITBasicCallControl2 = *mut ::core::ffi::c_void; +pub type ITCallHub = *mut ::core::ffi::c_void; +pub type ITCallHubEvent = *mut ::core::ffi::c_void; +pub type ITCallInfo = *mut ::core::ffi::c_void; +pub type ITCallInfo2 = *mut ::core::ffi::c_void; +pub type ITCallInfoChangeEvent = *mut ::core::ffi::c_void; +pub type ITCallMediaEvent = *mut ::core::ffi::c_void; +pub type ITCallNotificationEvent = *mut ::core::ffi::c_void; +pub type ITCallStateEvent = *mut ::core::ffi::c_void; +pub type ITCallingCard = *mut ::core::ffi::c_void; +pub type ITCollection = *mut ::core::ffi::c_void; +pub type ITCollection2 = *mut ::core::ffi::c_void; +pub type ITCustomTone = *mut ::core::ffi::c_void; +pub type ITDetectTone = *mut ::core::ffi::c_void; +pub type ITDigitDetectionEvent = *mut ::core::ffi::c_void; +pub type ITDigitGenerationEvent = *mut ::core::ffi::c_void; +pub type ITDigitsGatheredEvent = *mut ::core::ffi::c_void; +pub type ITDirectory = *mut ::core::ffi::c_void; +pub type ITDirectoryObject = *mut ::core::ffi::c_void; +pub type ITDirectoryObjectConference = *mut ::core::ffi::c_void; +pub type ITDirectoryObjectUser = *mut ::core::ffi::c_void; +pub type ITDispatchMapper = *mut ::core::ffi::c_void; +pub type ITFileTerminalEvent = *mut ::core::ffi::c_void; +pub type ITFileTrack = *mut ::core::ffi::c_void; +pub type ITForwardInformation = *mut ::core::ffi::c_void; +pub type ITForwardInformation2 = *mut ::core::ffi::c_void; +pub type ITILSConfig = *mut ::core::ffi::c_void; +pub type ITLegacyAddressMediaControl = *mut ::core::ffi::c_void; +pub type ITLegacyAddressMediaControl2 = *mut ::core::ffi::c_void; +pub type ITLegacyCallMediaControl = *mut ::core::ffi::c_void; +pub type ITLegacyCallMediaControl2 = *mut ::core::ffi::c_void; +pub type ITLegacyWaveSupport = *mut ::core::ffi::c_void; +pub type ITLocationInfo = *mut ::core::ffi::c_void; +pub type ITMSPAddress = *mut ::core::ffi::c_void; +pub type ITMediaControl = *mut ::core::ffi::c_void; +pub type ITMediaPlayback = *mut ::core::ffi::c_void; +pub type ITMediaRecord = *mut ::core::ffi::c_void; +pub type ITMediaSupport = *mut ::core::ffi::c_void; +pub type ITMultiTrackTerminal = *mut ::core::ffi::c_void; +pub type ITPhone = *mut ::core::ffi::c_void; +pub type ITPhoneDeviceSpecificEvent = *mut ::core::ffi::c_void; +pub type ITPhoneEvent = *mut ::core::ffi::c_void; +pub type ITPluggableTerminalClassInfo = *mut ::core::ffi::c_void; +pub type ITPluggableTerminalEventSink = *mut ::core::ffi::c_void; +pub type ITPluggableTerminalEventSinkRegistration = *mut ::core::ffi::c_void; +pub type ITPluggableTerminalSuperclassInfo = *mut ::core::ffi::c_void; +pub type ITPrivateEvent = *mut ::core::ffi::c_void; +pub type ITQOSEvent = *mut ::core::ffi::c_void; +pub type ITQueue = *mut ::core::ffi::c_void; +pub type ITQueueEvent = *mut ::core::ffi::c_void; +pub type ITRendezvous = *mut ::core::ffi::c_void; +pub type ITRequest = *mut ::core::ffi::c_void; +pub type ITRequestEvent = *mut ::core::ffi::c_void; +pub type ITScriptableAudioFormat = *mut ::core::ffi::c_void; +pub type ITStaticAudioTerminal = *mut ::core::ffi::c_void; +pub type ITStream = *mut ::core::ffi::c_void; +pub type ITStreamControl = *mut ::core::ffi::c_void; +pub type ITSubStream = *mut ::core::ffi::c_void; +pub type ITSubStreamControl = *mut ::core::ffi::c_void; +pub type ITTAPI = *mut ::core::ffi::c_void; +pub type ITTAPI2 = *mut ::core::ffi::c_void; +pub type ITTAPICallCenter = *mut ::core::ffi::c_void; +pub type ITTAPIDispatchEventNotification = *mut ::core::ffi::c_void; +pub type ITTAPIEventNotification = *mut ::core::ffi::c_void; +pub type ITTAPIObjectEvent = *mut ::core::ffi::c_void; +pub type ITTAPIObjectEvent2 = *mut ::core::ffi::c_void; +pub type ITTTSTerminalEvent = *mut ::core::ffi::c_void; +pub type ITTerminal = *mut ::core::ffi::c_void; +pub type ITTerminalSupport = *mut ::core::ffi::c_void; +pub type ITTerminalSupport2 = *mut ::core::ffi::c_void; +pub type ITToneDetectionEvent = *mut ::core::ffi::c_void; +pub type ITToneTerminalEvent = *mut ::core::ffi::c_void; +pub type ITnef = *mut ::core::ffi::c_void; +pub const ACDGE_GROUP_REMOVED: ACDGROUP_EVENT = 1i32; +pub const ACDGE_NEW_GROUP: ACDGROUP_EVENT = 0i32; +pub const ACDQE_NEW_QUEUE: ACDQUEUE_EVENT = 0i32; +pub const ACDQE_QUEUE_REMOVED: ACDQUEUE_EVENT = 1i32; +pub const ACS_ADDRESSDEVICESPECIFIC: ADDRESS_CAPABILITY_STRING = 1i32; +pub const ACS_LINEDEVICESPECIFIC: ADDRESS_CAPABILITY_STRING = 2i32; +pub const ACS_PERMANENTDEVICEGUID: ADDRESS_CAPABILITY_STRING = 5i32; +pub const ACS_PROTOCOL: ADDRESS_CAPABILITY_STRING = 0i32; +pub const ACS_PROVIDERSPECIFIC: ADDRESS_CAPABILITY_STRING = 3i32; +pub const ACS_SWITCHSPECIFIC: ADDRESS_CAPABILITY_STRING = 4i32; +pub const AC_ADDRESSCAPFLAGS: ADDRESS_CAPABILITY = 23i32; +pub const AC_ADDRESSFEATURES: ADDRESS_CAPABILITY = 29i32; +pub const AC_ADDRESSID: ADDRESS_CAPABILITY = 33i32; +pub const AC_ADDRESSTYPES: ADDRESS_CAPABILITY = 0i32; +pub const AC_ANSWERMODES: ADDRESS_CAPABILITY = 14i32; +pub const AC_BEARERMODES: ADDRESS_CAPABILITY = 1i32; +pub const AC_CALLCOMPLETIONCONDITIONS: ADDRESS_CAPABILITY = 40i32; +pub const AC_CALLCOMPLETIONMODES: ADDRESS_CAPABILITY = 41i32; +pub const AC_CALLEDIDSUPPORT: ADDRESS_CAPABILITY = 19i32; +pub const AC_CALLERIDSUPPORT: ADDRESS_CAPABILITY = 18i32; +pub const AC_CALLFEATURES1: ADDRESS_CAPABILITY = 24i32; +pub const AC_CALLFEATURES2: ADDRESS_CAPABILITY = 25i32; +pub const AC_CONNECTEDIDSUPPORT: ADDRESS_CAPABILITY = 20i32; +pub const AC_DEVCAPFLAGS: ADDRESS_CAPABILITY = 13i32; +pub const AC_FORWARDMODES: ADDRESS_CAPABILITY = 34i32; +pub const AC_GATHERDIGITSMAXTIMEOUT: ADDRESS_CAPABILITY = 44i32; +pub const AC_GATHERDIGITSMINTIMEOUT: ADDRESS_CAPABILITY = 43i32; +pub const AC_GENERATEDIGITDEFAULTDURATION: ADDRESS_CAPABILITY = 47i32; +pub const AC_GENERATEDIGITMAXDURATION: ADDRESS_CAPABILITY = 46i32; +pub const AC_GENERATEDIGITMINDURATION: ADDRESS_CAPABILITY = 45i32; +pub const AC_GENERATEDIGITSUPPORT: ADDRESS_CAPABILITY = 8i32; +pub const AC_GENERATETONEMAXNUMFREQ: ADDRESS_CAPABILITY = 10i32; +pub const AC_GENERATETONEMODES: ADDRESS_CAPABILITY = 9i32; +pub const AC_LINEFEATURES: ADDRESS_CAPABILITY = 15i32; +pub const AC_LINEID: ADDRESS_CAPABILITY = 32i32; +pub const AC_MAXACTIVECALLS: ADDRESS_CAPABILITY = 2i32; +pub const AC_MAXCALLCOMPLETIONS: ADDRESS_CAPABILITY = 39i32; +pub const AC_MAXCALLDATASIZE: ADDRESS_CAPABILITY = 31i32; +pub const AC_MAXFORWARDENTRIES: ADDRESS_CAPABILITY = 35i32; +pub const AC_MAXFWDNUMRINGS: ADDRESS_CAPABILITY = 38i32; +pub const AC_MAXNUMCONFERENCE: ADDRESS_CAPABILITY = 5i32; +pub const AC_MAXNUMTRANSCONF: ADDRESS_CAPABILITY = 6i32; +pub const AC_MAXONHOLDCALLS: ADDRESS_CAPABILITY = 3i32; +pub const AC_MAXONHOLDPENDINGCALLS: ADDRESS_CAPABILITY = 4i32; +pub const AC_MAXSPECIFICENTRIES: ADDRESS_CAPABILITY = 36i32; +pub const AC_MINFWDNUMRINGS: ADDRESS_CAPABILITY = 37i32; +pub const AC_MONITORDIGITSUPPORT: ADDRESS_CAPABILITY = 7i32; +pub const AC_MONITORTONEMAXNUMENTRIES: ADDRESS_CAPABILITY = 12i32; +pub const AC_MONITORTONEMAXNUMFREQ: ADDRESS_CAPABILITY = 11i32; +pub const AC_PARKSUPPORT: ADDRESS_CAPABILITY = 17i32; +pub const AC_PERMANENTDEVICEID: ADDRESS_CAPABILITY = 42i32; +pub const AC_PREDICTIVEAUTOTRANSFERSTATES: ADDRESS_CAPABILITY = 30i32; +pub const AC_REDIRECTINGIDSUPPORT: ADDRESS_CAPABILITY = 22i32; +pub const AC_REDIRECTIONIDSUPPORT: ADDRESS_CAPABILITY = 21i32; +pub const AC_REMOVEFROMCONFCAPS: ADDRESS_CAPABILITY = 26i32; +pub const AC_REMOVEFROMCONFSTATE: ADDRESS_CAPABILITY = 27i32; +pub const AC_SETTABLEDEVSTATUS: ADDRESS_CAPABILITY = 16i32; +pub const AC_TRANSFERMODES: ADDRESS_CAPABILITY = 28i32; +pub const ADDRESS_TERMINAL_AVAILABLE: MSP_ADDRESS_EVENT = 0i32; +pub const ADDRESS_TERMINAL_UNAVAILABLE: MSP_ADDRESS_EVENT = 1i32; +pub const AE_BUSY_ACD: AGENT_EVENT = 2i32; +pub const AE_BUSY_INCOMING: AGENT_EVENT = 3i32; +pub const AE_BUSY_OUTGOING: AGENT_EVENT = 4i32; +pub const AE_CAPSCHANGE: ADDRESS_EVENT = 1i32; +pub const AE_CONFIGCHANGE: ADDRESS_EVENT = 3i32; +pub const AE_FORWARD: ADDRESS_EVENT = 4i32; +pub const AE_LASTITEM: ADDRESS_EVENT = 8i32; +pub const AE_MSGWAITOFF: ADDRESS_EVENT = 8i32; +pub const AE_MSGWAITON: ADDRESS_EVENT = 7i32; +pub const AE_NEWTERMINAL: ADDRESS_EVENT = 5i32; +pub const AE_NOT_READY: AGENT_EVENT = 0i32; +pub const AE_READY: AGENT_EVENT = 1i32; +pub const AE_REMOVETERMINAL: ADDRESS_EVENT = 6i32; +pub const AE_RINGING: ADDRESS_EVENT = 2i32; +pub const AE_STATE: ADDRESS_EVENT = 0i32; +pub const AE_UNKNOWN: AGENT_EVENT = 5i32; +pub const AHE_AGENTHANDLER_REMOVED: AGENTHANDLER_EVENT = 1i32; +pub const AHE_NEW_AGENTHANDLER: AGENTHANDLER_EVENT = 0i32; +pub const ASE_BUSY: AGENT_SESSION_EVENT = 3i32; +pub const ASE_END: AGENT_SESSION_EVENT = 5i32; +pub const ASE_NEW_SESSION: AGENT_SESSION_EVENT = 0i32; +pub const ASE_NOT_READY: AGENT_SESSION_EVENT = 1i32; +pub const ASE_READY: AGENT_SESSION_EVENT = 2i32; +pub const ASE_WRAPUP: AGENT_SESSION_EVENT = 4i32; +pub const ASST_BUSY_ON_CALL: AGENT_SESSION_STATE = 2i32; +pub const ASST_BUSY_WRAPUP: AGENT_SESSION_STATE = 3i32; +pub const ASST_NOT_READY: AGENT_SESSION_STATE = 0i32; +pub const ASST_READY: AGENT_SESSION_STATE = 1i32; +pub const ASST_SESSION_ENDED: AGENT_SESSION_STATE = 4i32; +pub const AS_BUSY_ACD: AGENT_STATE = 2i32; +pub const AS_BUSY_INCOMING: AGENT_STATE = 3i32; +pub const AS_BUSY_OUTGOING: AGENT_STATE = 4i32; +pub const AS_INSERVICE: ADDRESS_STATE = 0i32; +pub const AS_NOT_READY: AGENT_STATE = 0i32; +pub const AS_OUTOFSERVICE: ADDRESS_STATE = 1i32; +pub const AS_READY: AGENT_STATE = 1i32; +pub const AS_UNKNOWN: AGENT_STATE = 5i32; +pub const CALL_CAUSE_BAD_DEVICE: MSP_CALL_EVENT_CAUSE = 1i32; +pub const CALL_CAUSE_CONNECT_FAIL: MSP_CALL_EVENT_CAUSE = 2i32; +pub const CALL_CAUSE_LOCAL_REQUEST: MSP_CALL_EVENT_CAUSE = 3i32; +pub const CALL_CAUSE_MEDIA_RECOVERED: MSP_CALL_EVENT_CAUSE = 6i32; +pub const CALL_CAUSE_MEDIA_TIMEOUT: MSP_CALL_EVENT_CAUSE = 5i32; +pub const CALL_CAUSE_QUALITY_OF_SERVICE: MSP_CALL_EVENT_CAUSE = 7i32; +pub const CALL_CAUSE_REMOTE_REQUEST: MSP_CALL_EVENT_CAUSE = 4i32; +pub const CALL_CAUSE_UNKNOWN: MSP_CALL_EVENT_CAUSE = 0i32; +pub const CALL_NEW_STREAM: MSP_CALL_EVENT = 0i32; +pub const CALL_STREAM_ACTIVE: MSP_CALL_EVENT = 4i32; +pub const CALL_STREAM_FAIL: MSP_CALL_EVENT = 1i32; +pub const CALL_STREAM_INACTIVE: MSP_CALL_EVENT = 5i32; +pub const CALL_STREAM_NOT_USED: MSP_CALL_EVENT = 3i32; +pub const CALL_TERMINAL_FAIL: MSP_CALL_EVENT = 2i32; +pub const CEC_DISCONNECT_BADADDRESS: CALL_STATE_EVENT_CAUSE = 3i32; +pub const CEC_DISCONNECT_BLOCKED: CALL_STATE_EVENT_CAUSE = 8i32; +pub const CEC_DISCONNECT_BUSY: CALL_STATE_EVENT_CAUSE = 2i32; +pub const CEC_DISCONNECT_CANCELLED: CALL_STATE_EVENT_CAUSE = 5i32; +pub const CEC_DISCONNECT_FAILED: CALL_STATE_EVENT_CAUSE = 7i32; +pub const CEC_DISCONNECT_NOANSWER: CALL_STATE_EVENT_CAUSE = 4i32; +pub const CEC_DISCONNECT_NORMAL: CALL_STATE_EVENT_CAUSE = 1i32; +pub const CEC_DISCONNECT_REJECTED: CALL_STATE_EVENT_CAUSE = 6i32; +pub const CEC_NONE: CALL_STATE_EVENT_CAUSE = 0i32; +pub const CHE_CALLHUBIDLE: CALLHUB_EVENT = 3i32; +pub const CHE_CALLHUBNEW: CALLHUB_EVENT = 2i32; +pub const CHE_CALLJOIN: CALLHUB_EVENT = 0i32; +pub const CHE_CALLLEAVE: CALLHUB_EVENT = 1i32; +pub const CHE_LASTITEM: CALLHUB_EVENT = 3i32; +pub const CHS_ACTIVE: CALLHUB_STATE = 0i32; +pub const CHS_IDLE: CALLHUB_STATE = 1i32; +pub const CIB_CALLDATABUFFER: CALLINFO_BUFFER = 2i32; +pub const CIB_CHARGINGINFOBUFFER: CALLINFO_BUFFER = 3i32; +pub const CIB_DEVSPECIFICBUFFER: CALLINFO_BUFFER = 1i32; +pub const CIB_HIGHLEVELCOMPATIBILITYBUFFER: CALLINFO_BUFFER = 4i32; +pub const CIB_LOWLEVELCOMPATIBILITYBUFFER: CALLINFO_BUFFER = 5i32; +pub const CIB_USERUSERINFO: CALLINFO_BUFFER = 0i32; +pub const CIC_APPSPECIFIC: CALLINFOCHANGE_CAUSE = 4i32; +pub const CIC_BEARERMODE: CALLINFOCHANGE_CAUSE = 2i32; +pub const CIC_CALLDATA: CALLINFOCHANGE_CAUSE = 24i32; +pub const CIC_CALLEDID: CALLINFOCHANGE_CAUSE = 15i32; +pub const CIC_CALLERID: CALLINFOCHANGE_CAUSE = 14i32; +pub const CIC_CALLID: CALLINFOCHANGE_CAUSE = 5i32; +pub const CIC_CHARGINGINFO: CALLINFOCHANGE_CAUSE = 22i32; +pub const CIC_COMPLETIONID: CALLINFOCHANGE_CAUSE = 9i32; +pub const CIC_CONNECTEDID: CALLINFOCHANGE_CAUSE = 16i32; +pub const CIC_DEVSPECIFIC: CALLINFOCHANGE_CAUSE = 1i32; +pub const CIC_HIGHLEVELCOMP: CALLINFOCHANGE_CAUSE = 20i32; +pub const CIC_LASTITEM: CALLINFOCHANGE_CAUSE = 26i32; +pub const CIC_LOWLEVELCOMP: CALLINFOCHANGE_CAUSE = 21i32; +pub const CIC_MEDIATYPE: CALLINFOCHANGE_CAUSE = 26i32; +pub const CIC_NUMMONITORS: CALLINFOCHANGE_CAUSE = 12i32; +pub const CIC_NUMOWNERDECR: CALLINFOCHANGE_CAUSE = 11i32; +pub const CIC_NUMOWNERINCR: CALLINFOCHANGE_CAUSE = 10i32; +pub const CIC_ORIGIN: CALLINFOCHANGE_CAUSE = 7i32; +pub const CIC_OTHER: CALLINFOCHANGE_CAUSE = 0i32; +pub const CIC_PRIVILEGE: CALLINFOCHANGE_CAUSE = 25i32; +pub const CIC_RATE: CALLINFOCHANGE_CAUSE = 3i32; +pub const CIC_REASON: CALLINFOCHANGE_CAUSE = 8i32; +pub const CIC_REDIRECTINGID: CALLINFOCHANGE_CAUSE = 18i32; +pub const CIC_REDIRECTIONID: CALLINFOCHANGE_CAUSE = 17i32; +pub const CIC_RELATEDCALLID: CALLINFOCHANGE_CAUSE = 6i32; +pub const CIC_TREATMENT: CALLINFOCHANGE_CAUSE = 23i32; +pub const CIC_TRUNK: CALLINFOCHANGE_CAUSE = 13i32; +pub const CIC_USERUSERINFO: CALLINFOCHANGE_CAUSE = 19i32; +pub const CIL_APPSPECIFIC: CALLINFO_LONG = 9i32; +pub const CIL_BEARERMODE: CALLINFO_LONG = 1i32; +pub const CIL_CALLEDIDADDRESSTYPE: CALLINFO_LONG = 3i32; +pub const CIL_CALLERIDADDRESSTYPE: CALLINFO_LONG = 2i32; +pub const CIL_CALLID: CALLINFO_LONG = 15i32; +pub const CIL_CALLPARAMSFLAGS: CALLINFO_LONG = 10i32; +pub const CIL_CALLTREATMENT: CALLINFO_LONG = 11i32; +pub const CIL_COMPLETIONID: CALLINFO_LONG = 17i32; +pub const CIL_CONNECTEDIDADDRESSTYPE: CALLINFO_LONG = 4i32; +pub const CIL_COUNTRYCODE: CALLINFO_LONG = 14i32; +pub const CIL_GENERATEDIGITDURATION: CALLINFO_LONG = 22i32; +pub const CIL_MAXRATE: CALLINFO_LONG = 13i32; +pub const CIL_MEDIATYPESAVAILABLE: CALLINFO_LONG = 0i32; +pub const CIL_MINRATE: CALLINFO_LONG = 12i32; +pub const CIL_MONITORDIGITMODES: CALLINFO_LONG = 23i32; +pub const CIL_MONITORMEDIAMODES: CALLINFO_LONG = 24i32; +pub const CIL_NUMBEROFMONITORS: CALLINFO_LONG = 19i32; +pub const CIL_NUMBEROFOWNERS: CALLINFO_LONG = 18i32; +pub const CIL_ORIGIN: CALLINFO_LONG = 7i32; +pub const CIL_RATE: CALLINFO_LONG = 21i32; +pub const CIL_REASON: CALLINFO_LONG = 8i32; +pub const CIL_REDIRECTINGIDADDRESSTYPE: CALLINFO_LONG = 6i32; +pub const CIL_REDIRECTIONIDADDRESSTYPE: CALLINFO_LONG = 5i32; +pub const CIL_RELATEDCALLID: CALLINFO_LONG = 16i32; +pub const CIL_TRUNK: CALLINFO_LONG = 20i32; +pub const CIS_CALLEDIDNAME: CALLINFO_STRING = 2i32; +pub const CIS_CALLEDIDNUMBER: CALLINFO_STRING = 3i32; +pub const CIS_CALLEDPARTYFRIENDLYNAME: CALLINFO_STRING = 10i32; +pub const CIS_CALLERIDNAME: CALLINFO_STRING = 0i32; +pub const CIS_CALLERIDNUMBER: CALLINFO_STRING = 1i32; +pub const CIS_CALLINGPARTYID: CALLINFO_STRING = 13i32; +pub const CIS_COMMENT: CALLINFO_STRING = 11i32; +pub const CIS_CONNECTEDIDNAME: CALLINFO_STRING = 4i32; +pub const CIS_CONNECTEDIDNUMBER: CALLINFO_STRING = 5i32; +pub const CIS_DISPLAYABLEADDRESS: CALLINFO_STRING = 12i32; +pub const CIS_REDIRECTINGIDNAME: CALLINFO_STRING = 8i32; +pub const CIS_REDIRECTINGIDNUMBER: CALLINFO_STRING = 9i32; +pub const CIS_REDIRECTIONIDNAME: CALLINFO_STRING = 6i32; +pub const CIS_REDIRECTIONIDNUMBER: CALLINFO_STRING = 7i32; +pub const CMC_BAD_DEVICE: CALL_MEDIA_EVENT_CAUSE = 1i32; +pub const CMC_CONNECT_FAIL: CALL_MEDIA_EVENT_CAUSE = 2i32; +pub const CMC_LOCAL_REQUEST: CALL_MEDIA_EVENT_CAUSE = 3i32; +pub const CMC_MEDIA_RECOVERED: CALL_MEDIA_EVENT_CAUSE = 6i32; +pub const CMC_MEDIA_TIMEOUT: CALL_MEDIA_EVENT_CAUSE = 5i32; +pub const CMC_QUALITY_OF_SERVICE: CALL_MEDIA_EVENT_CAUSE = 7i32; +pub const CMC_REMOTE_REQUEST: CALL_MEDIA_EVENT_CAUSE = 4i32; +pub const CMC_UNKNOWN: CALL_MEDIA_EVENT_CAUSE = 0i32; +pub const CME_LASTITEM: CALL_MEDIA_EVENT = 5i32; +pub const CME_NEW_STREAM: CALL_MEDIA_EVENT = 0i32; +pub const CME_STREAM_ACTIVE: CALL_MEDIA_EVENT = 4i32; +pub const CME_STREAM_FAIL: CALL_MEDIA_EVENT = 1i32; +pub const CME_STREAM_INACTIVE: CALL_MEDIA_EVENT = 5i32; +pub const CME_STREAM_NOT_USED: CALL_MEDIA_EVENT = 3i32; +pub const CME_TERMINAL_FAIL: CALL_MEDIA_EVENT = 2i32; +pub const CNE_LASTITEM: CALL_NOTIFICATION_EVENT = 1i32; +pub const CNE_MONITOR: CALL_NOTIFICATION_EVENT = 1i32; +pub const CNE_OWNER: CALL_NOTIFICATION_EVENT = 0i32; +pub const CP_MONITOR: CALL_PRIVILEGE = 1i32; +pub const CP_OWNER: CALL_PRIVILEGE = 0i32; +pub const CS_CONNECTED: CALL_STATE = 2i32; +pub const CS_DISCONNECTED: CALL_STATE = 3i32; +pub const CS_HOLD: CALL_STATE = 5i32; +pub const CS_IDLE: CALL_STATE = 0i32; +pub const CS_INPROGRESS: CALL_STATE = 1i32; +pub const CS_LASTITEM: CALL_STATE = 6i32; +pub const CS_OFFERING: CALL_STATE = 4i32; +pub const CS_QUEUED: CALL_STATE = 6i32; +pub const DC_NOANSWER: DISCONNECT_CODE = 1i32; +pub const DC_NORMAL: DISCONNECT_CODE = 0i32; +pub const DC_REJECTED: DISCONNECT_CODE = 2i32; +pub const DISPIDMASK: u32 = 65535u32; +pub const DT_ILS: DIRECTORY_TYPE = 2i32; +pub const DT_NTDS: DIRECTORY_TYPE = 1i32; +pub const DispatchMapper: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe9225296_c759_11d1_a02b_00c04fb6809f); +pub const FDS_NOTSUPPORTED: FULLDUPLEX_SUPPORT = 1i32; +pub const FDS_SUPPORTED: FULLDUPLEX_SUPPORT = 0i32; +pub const FDS_UNKNOWN: FULLDUPLEX_SUPPORT = 2i32; +pub const FM_ASCONFERENCE: FINISH_MODE = 1i32; +pub const FM_ASTRANSFER: FINISH_MODE = 0i32; +pub const FTEC_END_OF_FILE: FT_STATE_EVENT_CAUSE = 1i32; +pub const FTEC_NORMAL: FT_STATE_EVENT_CAUSE = 0i32; +pub const FTEC_READ_ERROR: FT_STATE_EVENT_CAUSE = 2i32; +pub const FTEC_WRITE_ERROR: FT_STATE_EVENT_CAUSE = 3i32; +pub const GETTNEFSTREAMCODEPAGE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("GetTnefStreamCodePage"); +pub const IDISPADDRESS: u32 = 65536u32; +pub const IDISPADDRESSCAPABILITIES: u32 = 131072u32; +pub const IDISPADDRESSTRANSLATION: u32 = 262144u32; +pub const IDISPAGGREGATEDMSPADDRESSOBJ: u32 = 393216u32; +pub const IDISPAGGREGATEDMSPCALLOBJ: u32 = 262144u32; +pub const IDISPAPC: u32 = 131072u32; +pub const IDISPBASICCALLCONTROL: u32 = 131072u32; +pub const IDISPCALLINFO: u32 = 65536u32; +pub const IDISPDIRECTORY: u32 = 65536u32; +pub const IDISPDIROBJCONFERENCE: u32 = 131072u32; +pub const IDISPDIROBJECT: u32 = 65536u32; +pub const IDISPDIROBJUSER: u32 = 196608u32; +pub const IDISPFILETRACK: u32 = 65536u32; +pub const IDISPILSCONFIG: u32 = 131072u32; +pub const IDISPLEGACYADDRESSMEDIACONTROL: u32 = 327680u32; +pub const IDISPLEGACYCALLMEDIACONTROL: u32 = 196608u32; +pub const IDISPMEDIACONTROL: u32 = 131072u32; +pub const IDISPMEDIAPLAYBACK: u32 = 262144u32; +pub const IDISPMEDIARECORD: u32 = 196608u32; +pub const IDISPMEDIASUPPORT: u32 = 196608u32; +pub const IDISPMULTITRACK: u32 = 65536u32; +pub const IDISPPHONE: u32 = 65536u32; +pub const IDISPTAPI: u32 = 65536u32; +pub const IDISPTAPICALLCENTER: u32 = 131072u32; +pub const INITIALIZE_NEGOTIATION: u32 = 4294967295u32; +pub const INTERFACEMASK: u32 = 16711680u32; +pub const LAST_LINEMEDIAMODE: u32 = 32768u32; +pub const LAST_LINEREQUESTMODE: u32 = 2u32; +pub const LINEADDRCAPFLAGS_ACCEPTTOALERT: u32 = 1048576u32; +pub const LINEADDRCAPFLAGS_ACDGROUP: u32 = 1073741824u32; +pub const LINEADDRCAPFLAGS_AUTORECONNECT: u32 = 1024u32; +pub const LINEADDRCAPFLAGS_BLOCKIDDEFAULT: u32 = 8u32; +pub const LINEADDRCAPFLAGS_BLOCKIDOVERRIDE: u32 = 16u32; +pub const LINEADDRCAPFLAGS_COMPLETIONID: u32 = 2048u32; +pub const LINEADDRCAPFLAGS_CONFDROP: u32 = 2097152u32; +pub const LINEADDRCAPFLAGS_CONFERENCEHELD: u32 = 16384u32; +pub const LINEADDRCAPFLAGS_CONFERENCEMAKE: u32 = 32768u32; +pub const LINEADDRCAPFLAGS_DESTOFFHOOK: u32 = 128u32; +pub const LINEADDRCAPFLAGS_DIALED: u32 = 32u32; +pub const LINEADDRCAPFLAGS_FWDBUSYNAADDR: u32 = 524288u32; +pub const LINEADDRCAPFLAGS_FWDCONSULT: u32 = 256u32; +pub const LINEADDRCAPFLAGS_FWDINTEXTADDR: u32 = 262144u32; +pub const LINEADDRCAPFLAGS_FWDNUMRINGS: u32 = 1u32; +pub const LINEADDRCAPFLAGS_FWDSTATUSVALID: u32 = 131072u32; +pub const LINEADDRCAPFLAGS_HOLDMAKESNEW: u32 = 67108864u32; +pub const LINEADDRCAPFLAGS_NOEXTERNALCALLS: u32 = 268435456u32; +pub const LINEADDRCAPFLAGS_NOINTERNALCALLS: u32 = 134217728u32; +pub const LINEADDRCAPFLAGS_NOPSTNADDRESSTRANSLATION: u32 = 2147483648u32; +pub const LINEADDRCAPFLAGS_ORIGOFFHOOK: u32 = 64u32; +pub const LINEADDRCAPFLAGS_PARTIALDIAL: u32 = 65536u32; +pub const LINEADDRCAPFLAGS_PICKUPCALLWAIT: u32 = 4194304u32; +pub const LINEADDRCAPFLAGS_PICKUPGROUPID: u32 = 2u32; +pub const LINEADDRCAPFLAGS_PREDICTIVEDIALER: u32 = 8388608u32; +pub const LINEADDRCAPFLAGS_QUEUE: u32 = 16777216u32; +pub const LINEADDRCAPFLAGS_ROUTEPOINT: u32 = 33554432u32; +pub const LINEADDRCAPFLAGS_SECURE: u32 = 4u32; +pub const LINEADDRCAPFLAGS_SETCALLINGID: u32 = 536870912u32; +pub const LINEADDRCAPFLAGS_SETUPCONFNULL: u32 = 512u32; +pub const LINEADDRCAPFLAGS_TRANSFERHELD: u32 = 4096u32; +pub const LINEADDRCAPFLAGS_TRANSFERMAKE: u32 = 8192u32; +pub const LINEADDRESSMODE_ADDRESSID: u32 = 1u32; +pub const LINEADDRESSMODE_DIALABLEADDR: u32 = 2u32; +pub const LINEADDRESSSHARING_BRIDGEDEXCL: u32 = 2u32; +pub const LINEADDRESSSHARING_BRIDGEDNEW: u32 = 4u32; +pub const LINEADDRESSSHARING_BRIDGEDSHARED: u32 = 8u32; +pub const LINEADDRESSSHARING_MONITORED: u32 = 16u32; +pub const LINEADDRESSSHARING_PRIVATE: u32 = 1u32; +pub const LINEADDRESSSTATE_CAPSCHANGE: u32 = 256u32; +pub const LINEADDRESSSTATE_DEVSPECIFIC: u32 = 2u32; +pub const LINEADDRESSSTATE_FORWARD: u32 = 64u32; +pub const LINEADDRESSSTATE_INUSEMANY: u32 = 16u32; +pub const LINEADDRESSSTATE_INUSEONE: u32 = 8u32; +pub const LINEADDRESSSTATE_INUSEZERO: u32 = 4u32; +pub const LINEADDRESSSTATE_NUMCALLS: u32 = 32u32; +pub const LINEADDRESSSTATE_OTHER: u32 = 1u32; +pub const LINEADDRESSSTATE_TERMINALS: u32 = 128u32; +pub const LINEADDRESSTYPE_DOMAINNAME: u32 = 8u32; +pub const LINEADDRESSTYPE_EMAILNAME: u32 = 4u32; +pub const LINEADDRESSTYPE_IPADDRESS: u32 = 16u32; +pub const LINEADDRESSTYPE_PHONENUMBER: u32 = 1u32; +pub const LINEADDRESSTYPE_SDP: u32 = 2u32; +pub const LINEADDRFEATURE_FORWARD: u32 = 1u32; +pub const LINEADDRFEATURE_FORWARDDND: u32 = 8192u32; +pub const LINEADDRFEATURE_FORWARDFWD: u32 = 4096u32; +pub const LINEADDRFEATURE_MAKECALL: u32 = 2u32; +pub const LINEADDRFEATURE_PICKUP: u32 = 4u32; +pub const LINEADDRFEATURE_PICKUPDIRECT: u32 = 1024u32; +pub const LINEADDRFEATURE_PICKUPGROUP: u32 = 512u32; +pub const LINEADDRFEATURE_PICKUPHELD: u32 = 256u32; +pub const LINEADDRFEATURE_PICKUPWAITING: u32 = 2048u32; +pub const LINEADDRFEATURE_SETMEDIACONTROL: u32 = 8u32; +pub const LINEADDRFEATURE_SETTERMINAL: u32 = 16u32; +pub const LINEADDRFEATURE_SETUPCONF: u32 = 32u32; +pub const LINEADDRFEATURE_UNCOMPLETECALL: u32 = 64u32; +pub const LINEADDRFEATURE_UNPARK: u32 = 128u32; +pub const LINEAGENTFEATURE_AGENTSPECIFIC: u32 = 8u32; +pub const LINEAGENTFEATURE_GETAGENTACTIVITYLIST: u32 = 16u32; +pub const LINEAGENTFEATURE_GETAGENTGROUP: u32 = 32u32; +pub const LINEAGENTFEATURE_SETAGENTACTIVITY: u32 = 4u32; +pub const LINEAGENTFEATURE_SETAGENTGROUP: u32 = 1u32; +pub const LINEAGENTFEATURE_SETAGENTSTATE: u32 = 2u32; +pub const LINEAGENTSESSIONSTATE_BUSYONCALL: u32 = 4u32; +pub const LINEAGENTSESSIONSTATE_BUSYWRAPUP: u32 = 8u32; +pub const LINEAGENTSESSIONSTATE_ENDED: u32 = 16u32; +pub const LINEAGENTSESSIONSTATE_NOTREADY: u32 = 1u32; +pub const LINEAGENTSESSIONSTATE_READY: u32 = 2u32; +pub const LINEAGENTSESSIONSTATE_RELEASED: u32 = 32u32; +pub const LINEAGENTSESSIONSTATUS_NEWSESSION: u32 = 1u32; +pub const LINEAGENTSESSIONSTATUS_STATE: u32 = 2u32; +pub const LINEAGENTSESSIONSTATUS_UPDATEINFO: u32 = 4u32; +pub const LINEAGENTSTATEEX_BUSYACD: u32 = 4u32; +pub const LINEAGENTSTATEEX_BUSYINCOMING: u32 = 8u32; +pub const LINEAGENTSTATEEX_BUSYOUTGOING: u32 = 16u32; +pub const LINEAGENTSTATEEX_NOTREADY: u32 = 1u32; +pub const LINEAGENTSTATEEX_READY: u32 = 2u32; +pub const LINEAGENTSTATEEX_RELEASED: u32 = 64u32; +pub const LINEAGENTSTATEEX_UNKNOWN: u32 = 32u32; +pub const LINEAGENTSTATE_BUSYACD: u32 = 8u32; +pub const LINEAGENTSTATE_BUSYINCOMING: u32 = 16u32; +pub const LINEAGENTSTATE_BUSYOTHER: u32 = 64u32; +pub const LINEAGENTSTATE_BUSYOUTBOUND: u32 = 32u32; +pub const LINEAGENTSTATE_LOGGEDOFF: u32 = 1u32; +pub const LINEAGENTSTATE_NOTREADY: u32 = 2u32; +pub const LINEAGENTSTATE_READY: u32 = 4u32; +pub const LINEAGENTSTATE_UNAVAIL: u32 = 512u32; +pub const LINEAGENTSTATE_UNKNOWN: u32 = 256u32; +pub const LINEAGENTSTATE_WORKINGAFTERCALL: u32 = 128u32; +pub const LINEAGENTSTATUSEX_NEWAGENT: u32 = 1u32; +pub const LINEAGENTSTATUSEX_STATE: u32 = 2u32; +pub const LINEAGENTSTATUSEX_UPDATEINFO: u32 = 4u32; +pub const LINEAGENTSTATUS_ACTIVITY: u32 = 8u32; +pub const LINEAGENTSTATUS_ACTIVITYLIST: u32 = 16u32; +pub const LINEAGENTSTATUS_CAPSCHANGE: u32 = 64u32; +pub const LINEAGENTSTATUS_GROUP: u32 = 1u32; +pub const LINEAGENTSTATUS_GROUPLIST: u32 = 32u32; +pub const LINEAGENTSTATUS_NEXTSTATE: u32 = 4u32; +pub const LINEAGENTSTATUS_STATE: u32 = 2u32; +pub const LINEAGENTSTATUS_VALIDNEXTSTATES: u32 = 256u32; +pub const LINEAGENTSTATUS_VALIDSTATES: u32 = 128u32; +pub const LINEANSWERMODE_DROP: u32 = 2u32; +pub const LINEANSWERMODE_HOLD: u32 = 4u32; +pub const LINEANSWERMODE_NONE: u32 = 1u32; +pub const LINEBEARERMODE_ALTSPEECHDATA: u32 = 16u32; +pub const LINEBEARERMODE_DATA: u32 = 8u32; +pub const LINEBEARERMODE_MULTIUSE: u32 = 4u32; +pub const LINEBEARERMODE_NONCALLSIGNALING: u32 = 32u32; +pub const LINEBEARERMODE_PASSTHROUGH: u32 = 64u32; +pub const LINEBEARERMODE_RESTRICTEDDATA: u32 = 128u32; +pub const LINEBEARERMODE_SPEECH: u32 = 2u32; +pub const LINEBEARERMODE_VOICE: u32 = 1u32; +pub const LINEBUSYMODE_STATION: u32 = 1u32; +pub const LINEBUSYMODE_TRUNK: u32 = 2u32; +pub const LINEBUSYMODE_UNAVAIL: u32 = 8u32; +pub const LINEBUSYMODE_UNKNOWN: u32 = 4u32; +pub const LINECALLCOMPLCOND_BUSY: u32 = 1u32; +pub const LINECALLCOMPLCOND_NOANSWER: u32 = 2u32; +pub const LINECALLCOMPLMODE_CALLBACK: u32 = 2u32; +pub const LINECALLCOMPLMODE_CAMPON: u32 = 1u32; +pub const LINECALLCOMPLMODE_INTRUDE: u32 = 4u32; +pub const LINECALLCOMPLMODE_MESSAGE: u32 = 8u32; +pub const LINECALLFEATURE2_COMPLCALLBACK: u32 = 8u32; +pub const LINECALLFEATURE2_COMPLCAMPON: u32 = 4u32; +pub const LINECALLFEATURE2_COMPLINTRUDE: u32 = 16u32; +pub const LINECALLFEATURE2_COMPLMESSAGE: u32 = 32u32; +pub const LINECALLFEATURE2_NOHOLDCONFERENCE: u32 = 1u32; +pub const LINECALLFEATURE2_ONESTEPTRANSFER: u32 = 2u32; +pub const LINECALLFEATURE2_PARKDIRECT: u32 = 256u32; +pub const LINECALLFEATURE2_PARKNONDIRECT: u32 = 512u32; +pub const LINECALLFEATURE2_TRANSFERCONF: u32 = 128u32; +pub const LINECALLFEATURE2_TRANSFERNORM: u32 = 64u32; +pub const LINECALLFEATURE_ACCEPT: u32 = 1u32; +pub const LINECALLFEATURE_ADDTOCONF: u32 = 2u32; +pub const LINECALLFEATURE_ANSWER: u32 = 4u32; +pub const LINECALLFEATURE_BLINDTRANSFER: u32 = 8u32; +pub const LINECALLFEATURE_COMPLETECALL: u32 = 16u32; +pub const LINECALLFEATURE_COMPLETETRANSF: u32 = 32u32; +pub const LINECALLFEATURE_DIAL: u32 = 64u32; +pub const LINECALLFEATURE_DROP: u32 = 128u32; +pub const LINECALLFEATURE_GATHERDIGITS: u32 = 256u32; +pub const LINECALLFEATURE_GENERATEDIGITS: u32 = 512u32; +pub const LINECALLFEATURE_GENERATETONE: u32 = 1024u32; +pub const LINECALLFEATURE_HOLD: u32 = 2048u32; +pub const LINECALLFEATURE_MONITORDIGITS: u32 = 4096u32; +pub const LINECALLFEATURE_MONITORMEDIA: u32 = 8192u32; +pub const LINECALLFEATURE_MONITORTONES: u32 = 16384u32; +pub const LINECALLFEATURE_PARK: u32 = 32768u32; +pub const LINECALLFEATURE_PREPAREADDCONF: u32 = 65536u32; +pub const LINECALLFEATURE_REDIRECT: u32 = 131072u32; +pub const LINECALLFEATURE_RELEASEUSERUSERINFO: u32 = 268435456u32; +pub const LINECALLFEATURE_REMOVEFROMCONF: u32 = 262144u32; +pub const LINECALLFEATURE_SECURECALL: u32 = 524288u32; +pub const LINECALLFEATURE_SENDUSERUSER: u32 = 1048576u32; +pub const LINECALLFEATURE_SETCALLDATA: u32 = 2147483648u32; +pub const LINECALLFEATURE_SETCALLPARAMS: u32 = 2097152u32; +pub const LINECALLFEATURE_SETMEDIACONTROL: u32 = 4194304u32; +pub const LINECALLFEATURE_SETQOS: u32 = 1073741824u32; +pub const LINECALLFEATURE_SETTERMINAL: u32 = 8388608u32; +pub const LINECALLFEATURE_SETTREATMENT: u32 = 536870912u32; +pub const LINECALLFEATURE_SETUPCONF: u32 = 16777216u32; +pub const LINECALLFEATURE_SETUPTRANSFER: u32 = 33554432u32; +pub const LINECALLFEATURE_SWAPHOLD: u32 = 67108864u32; +pub const LINECALLFEATURE_UNHOLD: u32 = 134217728u32; +pub const LINECALLHUBTRACKING_ALLCALLS: u32 = 2u32; +pub const LINECALLHUBTRACKING_NONE: u32 = 0u32; +pub const LINECALLHUBTRACKING_PROVIDERLEVEL: u32 = 1u32; +pub const LINECALLINFOSTATE_APPSPECIFIC: u32 = 32u32; +pub const LINECALLINFOSTATE_BEARERMODE: u32 = 4u32; +pub const LINECALLINFOSTATE_CALLDATA: u32 = 1073741824u32; +pub const LINECALLINFOSTATE_CALLEDID: u32 = 65536u32; +pub const LINECALLINFOSTATE_CALLERID: u32 = 32768u32; +pub const LINECALLINFOSTATE_CALLID: u32 = 64u32; +pub const LINECALLINFOSTATE_CHARGINGINFO: u32 = 16777216u32; +pub const LINECALLINFOSTATE_COMPLETIONID: u32 = 1024u32; +pub const LINECALLINFOSTATE_CONNECTEDID: u32 = 131072u32; +pub const LINECALLINFOSTATE_DEVSPECIFIC: u32 = 2u32; +pub const LINECALLINFOSTATE_DIALPARAMS: u32 = 67108864u32; +pub const LINECALLINFOSTATE_DISPLAY: u32 = 1048576u32; +pub const LINECALLINFOSTATE_HIGHLEVELCOMP: u32 = 4194304u32; +pub const LINECALLINFOSTATE_LOWLEVELCOMP: u32 = 8388608u32; +pub const LINECALLINFOSTATE_MEDIAMODE: u32 = 16u32; +pub const LINECALLINFOSTATE_MONITORMODES: u32 = 134217728u32; +pub const LINECALLINFOSTATE_NUMMONITORS: u32 = 8192u32; +pub const LINECALLINFOSTATE_NUMOWNERDECR: u32 = 4096u32; +pub const LINECALLINFOSTATE_NUMOWNERINCR: u32 = 2048u32; +pub const LINECALLINFOSTATE_ORIGIN: u32 = 256u32; +pub const LINECALLINFOSTATE_OTHER: u32 = 1u32; +pub const LINECALLINFOSTATE_QOS: u32 = 536870912u32; +pub const LINECALLINFOSTATE_RATE: u32 = 8u32; +pub const LINECALLINFOSTATE_REASON: u32 = 512u32; +pub const LINECALLINFOSTATE_REDIRECTINGID: u32 = 524288u32; +pub const LINECALLINFOSTATE_REDIRECTIONID: u32 = 262144u32; +pub const LINECALLINFOSTATE_RELATEDCALLID: u32 = 128u32; +pub const LINECALLINFOSTATE_TERMINAL: u32 = 33554432u32; +pub const LINECALLINFOSTATE_TREATMENT: u32 = 268435456u32; +pub const LINECALLINFOSTATE_TRUNK: u32 = 16384u32; +pub const LINECALLINFOSTATE_USERUSERINFO: u32 = 2097152u32; +pub const LINECALLORIGIN_CONFERENCE: u32 = 64u32; +pub const LINECALLORIGIN_EXTERNAL: u32 = 4u32; +pub const LINECALLORIGIN_INBOUND: u32 = 128u32; +pub const LINECALLORIGIN_INTERNAL: u32 = 2u32; +pub const LINECALLORIGIN_OUTBOUND: u32 = 1u32; +pub const LINECALLORIGIN_UNAVAIL: u32 = 32u32; +pub const LINECALLORIGIN_UNKNOWN: u32 = 16u32; +pub const LINECALLPARAMFLAGS_BLOCKID: u32 = 4u32; +pub const LINECALLPARAMFLAGS_DESTOFFHOOK: u32 = 16u32; +pub const LINECALLPARAMFLAGS_IDLE: u32 = 2u32; +pub const LINECALLPARAMFLAGS_NOHOLDCONFERENCE: u32 = 32u32; +pub const LINECALLPARAMFLAGS_ONESTEPTRANSFER: u32 = 128u32; +pub const LINECALLPARAMFLAGS_ORIGOFFHOOK: u32 = 8u32; +pub const LINECALLPARAMFLAGS_PREDICTIVEDIAL: u32 = 64u32; +pub const LINECALLPARAMFLAGS_SECURE: u32 = 1u32; +pub const LINECALLPARTYID_ADDRESS: u32 = 8u32; +pub const LINECALLPARTYID_BLOCKED: u32 = 1u32; +pub const LINECALLPARTYID_NAME: u32 = 4u32; +pub const LINECALLPARTYID_OUTOFAREA: u32 = 2u32; +pub const LINECALLPARTYID_PARTIAL: u32 = 16u32; +pub const LINECALLPARTYID_UNAVAIL: u32 = 64u32; +pub const LINECALLPARTYID_UNKNOWN: u32 = 32u32; +pub const LINECALLPRIVILEGE_MONITOR: u32 = 2u32; +pub const LINECALLPRIVILEGE_NONE: u32 = 1u32; +pub const LINECALLPRIVILEGE_OWNER: u32 = 4u32; +pub const LINECALLREASON_CALLCOMPLETION: u32 = 128u32; +pub const LINECALLREASON_CAMPEDON: u32 = 16384u32; +pub const LINECALLREASON_DIRECT: u32 = 1u32; +pub const LINECALLREASON_FWDBUSY: u32 = 2u32; +pub const LINECALLREASON_FWDNOANSWER: u32 = 4u32; +pub const LINECALLREASON_FWDUNCOND: u32 = 8u32; +pub const LINECALLREASON_INTRUDE: u32 = 4096u32; +pub const LINECALLREASON_PARKED: u32 = 8192u32; +pub const LINECALLREASON_PICKUP: u32 = 16u32; +pub const LINECALLREASON_REDIRECT: u32 = 64u32; +pub const LINECALLREASON_REMINDER: u32 = 512u32; +pub const LINECALLREASON_ROUTEREQUEST: u32 = 32768u32; +pub const LINECALLREASON_TRANSFER: u32 = 256u32; +pub const LINECALLREASON_UNAVAIL: u32 = 2048u32; +pub const LINECALLREASON_UNKNOWN: u32 = 1024u32; +pub const LINECALLREASON_UNPARK: u32 = 32u32; +pub const LINECALLSELECT_ADDRESS: u32 = 2u32; +pub const LINECALLSELECT_CALL: u32 = 4u32; +pub const LINECALLSELECT_CALLID: u32 = 16u32; +pub const LINECALLSELECT_DEVICEID: u32 = 8u32; +pub const LINECALLSELECT_LINE: u32 = 1u32; +pub const LINECALLSTATE_ACCEPTED: u32 = 4u32; +pub const LINECALLSTATE_BUSY: u32 = 64u32; +pub const LINECALLSTATE_CONFERENCED: u32 = 2048u32; +pub const LINECALLSTATE_CONNECTED: u32 = 256u32; +pub const LINECALLSTATE_DIALING: u32 = 16u32; +pub const LINECALLSTATE_DIALTONE: u32 = 8u32; +pub const LINECALLSTATE_DISCONNECTED: u32 = 16384u32; +pub const LINECALLSTATE_IDLE: u32 = 1u32; +pub const LINECALLSTATE_OFFERING: u32 = 2u32; +pub const LINECALLSTATE_ONHOLD: u32 = 1024u32; +pub const LINECALLSTATE_ONHOLDPENDCONF: u32 = 4096u32; +pub const LINECALLSTATE_ONHOLDPENDTRANSFER: u32 = 8192u32; +pub const LINECALLSTATE_PROCEEDING: u32 = 512u32; +pub const LINECALLSTATE_RINGBACK: u32 = 32u32; +pub const LINECALLSTATE_SPECIALINFO: u32 = 128u32; +pub const LINECALLSTATE_UNKNOWN: u32 = 32768u32; +pub const LINECALLTREATMENT_BUSY: u32 = 3u32; +pub const LINECALLTREATMENT_MUSIC: u32 = 4u32; +pub const LINECALLTREATMENT_RINGBACK: u32 = 2u32; +pub const LINECALLTREATMENT_SILENCE: u32 = 1u32; +pub const LINECARDOPTION_HIDDEN: u32 = 2u32; +pub const LINECARDOPTION_PREDEFINED: u32 = 1u32; +pub const LINECONNECTEDMODE_ACTIVE: u32 = 1u32; +pub const LINECONNECTEDMODE_ACTIVEHELD: u32 = 4u32; +pub const LINECONNECTEDMODE_CONFIRMED: u32 = 16u32; +pub const LINECONNECTEDMODE_INACTIVE: u32 = 2u32; +pub const LINECONNECTEDMODE_INACTIVEHELD: u32 = 8u32; +pub const LINEDEVCAPFLAGS_CALLHUB: u32 = 1024u32; +pub const LINEDEVCAPFLAGS_CALLHUBTRACKING: u32 = 2048u32; +pub const LINEDEVCAPFLAGS_CLOSEDROP: u32 = 32u32; +pub const LINEDEVCAPFLAGS_CROSSADDRCONF: u32 = 1u32; +pub const LINEDEVCAPFLAGS_DIALBILLING: u32 = 64u32; +pub const LINEDEVCAPFLAGS_DIALDIALTONE: u32 = 256u32; +pub const LINEDEVCAPFLAGS_DIALQUIET: u32 = 128u32; +pub const LINEDEVCAPFLAGS_HIGHLEVCOMP: u32 = 2u32; +pub const LINEDEVCAPFLAGS_LOCAL: u32 = 8192u32; +pub const LINEDEVCAPFLAGS_LOWLEVCOMP: u32 = 4u32; +pub const LINEDEVCAPFLAGS_MEDIACONTROL: u32 = 8u32; +pub const LINEDEVCAPFLAGS_MSP: u32 = 512u32; +pub const LINEDEVCAPFLAGS_MULTIPLEADDR: u32 = 16u32; +pub const LINEDEVCAPFLAGS_PRIVATEOBJECTS: u32 = 4096u32; +pub const LINEDEVSTATE_BATTERY: u32 = 32768u32; +pub const LINEDEVSTATE_CAPSCHANGE: u32 = 1048576u32; +pub const LINEDEVSTATE_CLOSE: u32 = 1024u32; +pub const LINEDEVSTATE_COMPLCANCEL: u32 = 8388608u32; +pub const LINEDEVSTATE_CONFIGCHANGE: u32 = 2097152u32; +pub const LINEDEVSTATE_CONNECTED: u32 = 4u32; +pub const LINEDEVSTATE_DEVSPECIFIC: u32 = 131072u32; +pub const LINEDEVSTATE_DISCONNECTED: u32 = 8u32; +pub const LINEDEVSTATE_INSERVICE: u32 = 64u32; +pub const LINEDEVSTATE_LOCK: u32 = 524288u32; +pub const LINEDEVSTATE_MAINTENANCE: u32 = 256u32; +pub const LINEDEVSTATE_MSGWAITOFF: u32 = 32u32; +pub const LINEDEVSTATE_MSGWAITON: u32 = 16u32; +pub const LINEDEVSTATE_NUMCALLS: u32 = 2048u32; +pub const LINEDEVSTATE_NUMCOMPLETIONS: u32 = 4096u32; +pub const LINEDEVSTATE_OPEN: u32 = 512u32; +pub const LINEDEVSTATE_OTHER: u32 = 1u32; +pub const LINEDEVSTATE_OUTOFSERVICE: u32 = 128u32; +pub const LINEDEVSTATE_REINIT: u32 = 262144u32; +pub const LINEDEVSTATE_REMOVED: u32 = 16777216u32; +pub const LINEDEVSTATE_RINGING: u32 = 2u32; +pub const LINEDEVSTATE_ROAMMODE: u32 = 16384u32; +pub const LINEDEVSTATE_SIGNAL: u32 = 65536u32; +pub const LINEDEVSTATE_TERMINALS: u32 = 8192u32; +pub const LINEDEVSTATE_TRANSLATECHANGE: u32 = 4194304u32; +pub const LINEDEVSTATUSFLAGS_CONNECTED: u32 = 1u32; +pub const LINEDEVSTATUSFLAGS_INSERVICE: u32 = 4u32; +pub const LINEDEVSTATUSFLAGS_LOCKED: u32 = 8u32; +pub const LINEDEVSTATUSFLAGS_MSGWAIT: u32 = 2u32; +pub const LINEDIALTONEMODE_EXTERNAL: u32 = 8u32; +pub const LINEDIALTONEMODE_INTERNAL: u32 = 4u32; +pub const LINEDIALTONEMODE_NORMAL: u32 = 1u32; +pub const LINEDIALTONEMODE_SPECIAL: u32 = 2u32; +pub const LINEDIALTONEMODE_UNAVAIL: u32 = 32u32; +pub const LINEDIALTONEMODE_UNKNOWN: u32 = 16u32; +pub const LINEDIGITMODE_DTMF: u32 = 2u32; +pub const LINEDIGITMODE_DTMFEND: u32 = 4u32; +pub const LINEDIGITMODE_PULSE: u32 = 1u32; +pub const LINEDISCONNECTMODE_BADADDRESS: u32 = 128u32; +pub const LINEDISCONNECTMODE_BLOCKED: u32 = 131072u32; +pub const LINEDISCONNECTMODE_BUSY: u32 = 32u32; +pub const LINEDISCONNECTMODE_CANCELLED: u32 = 524288u32; +pub const LINEDISCONNECTMODE_CONGESTION: u32 = 512u32; +pub const LINEDISCONNECTMODE_DESTINATIONBARRED: u32 = 1048576u32; +pub const LINEDISCONNECTMODE_DONOTDISTURB: u32 = 262144u32; +pub const LINEDISCONNECTMODE_FDNRESTRICT: u32 = 2097152u32; +pub const LINEDISCONNECTMODE_FORWARDED: u32 = 16u32; +pub const LINEDISCONNECTMODE_INCOMPATIBLE: u32 = 1024u32; +pub const LINEDISCONNECTMODE_NOANSWER: u32 = 64u32; +pub const LINEDISCONNECTMODE_NODIALTONE: u32 = 4096u32; +pub const LINEDISCONNECTMODE_NORMAL: u32 = 1u32; +pub const LINEDISCONNECTMODE_NUMBERCHANGED: u32 = 8192u32; +pub const LINEDISCONNECTMODE_OUTOFORDER: u32 = 16384u32; +pub const LINEDISCONNECTMODE_PICKUP: u32 = 8u32; +pub const LINEDISCONNECTMODE_QOSUNAVAIL: u32 = 65536u32; +pub const LINEDISCONNECTMODE_REJECT: u32 = 4u32; +pub const LINEDISCONNECTMODE_TEMPFAILURE: u32 = 32768u32; +pub const LINEDISCONNECTMODE_UNAVAIL: u32 = 2048u32; +pub const LINEDISCONNECTMODE_UNKNOWN: u32 = 2u32; +pub const LINEDISCONNECTMODE_UNREACHABLE: u32 = 256u32; +pub const LINEEQOSINFO_ADMISSIONFAILURE: u32 = 2u32; +pub const LINEEQOSINFO_GENERICERROR: u32 = 4u32; +pub const LINEEQOSINFO_NOQOS: u32 = 1u32; +pub const LINEEQOSINFO_POLICYFAILURE: u32 = 3u32; +pub const LINEERR_ADDRESSBLOCKED: u32 = 2147483731u32; +pub const LINEERR_ALLOCATED: u32 = 2147483649u32; +pub const LINEERR_BADDEVICEID: u32 = 2147483650u32; +pub const LINEERR_BEARERMODEUNAVAIL: u32 = 2147483651u32; +pub const LINEERR_BILLINGREJECTED: u32 = 2147483732u32; +pub const LINEERR_CALLUNAVAIL: u32 = 2147483653u32; +pub const LINEERR_COMPLETIONOVERRUN: u32 = 2147483654u32; +pub const LINEERR_CONFERENCEFULL: u32 = 2147483655u32; +pub const LINEERR_DIALBILLING: u32 = 2147483656u32; +pub const LINEERR_DIALDIALTONE: u32 = 2147483657u32; +pub const LINEERR_DIALPROMPT: u32 = 2147483658u32; +pub const LINEERR_DIALQUIET: u32 = 2147483659u32; +pub const LINEERR_DIALVOICEDETECT: u32 = 2147483740u32; +pub const LINEERR_DISCONNECTED: u32 = 2147483744u32; +pub const LINEERR_INCOMPATIBLEAPIVERSION: u32 = 2147483660u32; +pub const LINEERR_INCOMPATIBLEEXTVERSION: u32 = 2147483661u32; +pub const LINEERR_INIFILECORRUPT: u32 = 2147483662u32; +pub const LINEERR_INUSE: u32 = 2147483663u32; +pub const LINEERR_INVALADDRESS: u32 = 2147483664u32; +pub const LINEERR_INVALADDRESSID: u32 = 2147483665u32; +pub const LINEERR_INVALADDRESSMODE: u32 = 2147483666u32; +pub const LINEERR_INVALADDRESSSTATE: u32 = 2147483667u32; +pub const LINEERR_INVALADDRESSTYPE: u32 = 2147483742u32; +pub const LINEERR_INVALAGENTACTIVITY: u32 = 2147483739u32; +pub const LINEERR_INVALAGENTGROUP: u32 = 2147483736u32; +pub const LINEERR_INVALAGENTID: u32 = 2147483735u32; +pub const LINEERR_INVALAGENTSESSIONSTATE: u32 = 2147483743u32; +pub const LINEERR_INVALAGENTSTATE: u32 = 2147483738u32; +pub const LINEERR_INVALAPPHANDLE: u32 = 2147483668u32; +pub const LINEERR_INVALAPPNAME: u32 = 2147483669u32; +pub const LINEERR_INVALBEARERMODE: u32 = 2147483670u32; +pub const LINEERR_INVALCALLCOMPLMODE: u32 = 2147483671u32; +pub const LINEERR_INVALCALLHANDLE: u32 = 2147483672u32; +pub const LINEERR_INVALCALLPARAMS: u32 = 2147483673u32; +pub const LINEERR_INVALCALLPRIVILEGE: u32 = 2147483674u32; +pub const LINEERR_INVALCALLSELECT: u32 = 2147483675u32; +pub const LINEERR_INVALCALLSTATE: u32 = 2147483676u32; +pub const LINEERR_INVALCALLSTATELIST: u32 = 2147483677u32; +pub const LINEERR_INVALCARD: u32 = 2147483678u32; +pub const LINEERR_INVALCOMPLETIONID: u32 = 2147483679u32; +pub const LINEERR_INVALCONFCALLHANDLE: u32 = 2147483680u32; +pub const LINEERR_INVALCONSULTCALLHANDLE: u32 = 2147483681u32; +pub const LINEERR_INVALCOUNTRYCODE: u32 = 2147483682u32; +pub const LINEERR_INVALDEVICECLASS: u32 = 2147483683u32; +pub const LINEERR_INVALDEVICEHANDLE: u32 = 2147483684u32; +pub const LINEERR_INVALDIALPARAMS: u32 = 2147483685u32; +pub const LINEERR_INVALDIGITLIST: u32 = 2147483686u32; +pub const LINEERR_INVALDIGITMODE: u32 = 2147483687u32; +pub const LINEERR_INVALDIGITS: u32 = 2147483688u32; +pub const LINEERR_INVALEXTVERSION: u32 = 2147483689u32; +pub const LINEERR_INVALFEATURE: u32 = 2147483733u32; +pub const LINEERR_INVALGROUPID: u32 = 2147483690u32; +pub const LINEERR_INVALLINEHANDLE: u32 = 2147483691u32; +pub const LINEERR_INVALLINESTATE: u32 = 2147483692u32; +pub const LINEERR_INVALLOCATION: u32 = 2147483693u32; +pub const LINEERR_INVALMEDIALIST: u32 = 2147483694u32; +pub const LINEERR_INVALMEDIAMODE: u32 = 2147483695u32; +pub const LINEERR_INVALMESSAGEID: u32 = 2147483696u32; +pub const LINEERR_INVALPARAM: u32 = 2147483698u32; +pub const LINEERR_INVALPARKID: u32 = 2147483699u32; +pub const LINEERR_INVALPARKMODE: u32 = 2147483700u32; +pub const LINEERR_INVALPASSWORD: u32 = 2147483737u32; +pub const LINEERR_INVALPOINTER: u32 = 2147483701u32; +pub const LINEERR_INVALPRIVSELECT: u32 = 2147483702u32; +pub const LINEERR_INVALRATE: u32 = 2147483703u32; +pub const LINEERR_INVALREQUESTMODE: u32 = 2147483704u32; +pub const LINEERR_INVALTERMINALID: u32 = 2147483705u32; +pub const LINEERR_INVALTERMINALMODE: u32 = 2147483706u32; +pub const LINEERR_INVALTIMEOUT: u32 = 2147483707u32; +pub const LINEERR_INVALTONE: u32 = 2147483708u32; +pub const LINEERR_INVALTONELIST: u32 = 2147483709u32; +pub const LINEERR_INVALTONEMODE: u32 = 2147483710u32; +pub const LINEERR_INVALTRANSFERMODE: u32 = 2147483711u32; +pub const LINEERR_LINEMAPPERFAILED: u32 = 2147483712u32; +pub const LINEERR_NOCONFERENCE: u32 = 2147483713u32; +pub const LINEERR_NODEVICE: u32 = 2147483714u32; +pub const LINEERR_NODRIVER: u32 = 2147483715u32; +pub const LINEERR_NOMEM: u32 = 2147483716u32; +pub const LINEERR_NOMULTIPLEINSTANCE: u32 = 2147483734u32; +pub const LINEERR_NOREQUEST: u32 = 2147483717u32; +pub const LINEERR_NOTOWNER: u32 = 2147483718u32; +pub const LINEERR_NOTREGISTERED: u32 = 2147483719u32; +pub const LINEERR_OPERATIONFAILED: u32 = 2147483720u32; +pub const LINEERR_OPERATIONUNAVAIL: u32 = 2147483721u32; +pub const LINEERR_RATEUNAVAIL: u32 = 2147483722u32; +pub const LINEERR_REINIT: u32 = 2147483730u32; +pub const LINEERR_REQUESTOVERRUN: u32 = 2147483724u32; +pub const LINEERR_RESOURCEUNAVAIL: u32 = 2147483723u32; +pub const LINEERR_SERVICE_NOT_RUNNING: u32 = 2147483745u32; +pub const LINEERR_STRUCTURETOOSMALL: u32 = 2147483725u32; +pub const LINEERR_TARGETNOTFOUND: u32 = 2147483726u32; +pub const LINEERR_TARGETSELF: u32 = 2147483727u32; +pub const LINEERR_UNINITIALIZED: u32 = 2147483728u32; +pub const LINEERR_USERCANCELLED: u32 = 2147483741u32; +pub const LINEERR_USERUSERINFOTOOBIG: u32 = 2147483729u32; +pub const LINEFEATURE_DEVSPECIFIC: u32 = 1u32; +pub const LINEFEATURE_DEVSPECIFICFEAT: u32 = 2u32; +pub const LINEFEATURE_FORWARD: u32 = 4u32; +pub const LINEFEATURE_FORWARDDND: u32 = 256u32; +pub const LINEFEATURE_FORWARDFWD: u32 = 128u32; +pub const LINEFEATURE_MAKECALL: u32 = 8u32; +pub const LINEFEATURE_SETDEVSTATUS: u32 = 64u32; +pub const LINEFEATURE_SETMEDIACONTROL: u32 = 16u32; +pub const LINEFEATURE_SETTERMINAL: u32 = 32u32; +pub const LINEFORWARDMODE_BUSY: u32 = 16u32; +pub const LINEFORWARDMODE_BUSYEXTERNAL: u32 = 64u32; +pub const LINEFORWARDMODE_BUSYINTERNAL: u32 = 32u32; +pub const LINEFORWARDMODE_BUSYNA: u32 = 4096u32; +pub const LINEFORWARDMODE_BUSYNAEXTERNAL: u32 = 16384u32; +pub const LINEFORWARDMODE_BUSYNAINTERNAL: u32 = 8192u32; +pub const LINEFORWARDMODE_BUSYNASPECIFIC: u32 = 32768u32; +pub const LINEFORWARDMODE_BUSYSPECIFIC: u32 = 128u32; +pub const LINEFORWARDMODE_NOANSW: u32 = 256u32; +pub const LINEFORWARDMODE_NOANSWEXTERNAL: u32 = 1024u32; +pub const LINEFORWARDMODE_NOANSWINTERNAL: u32 = 512u32; +pub const LINEFORWARDMODE_NOANSWSPECIFIC: u32 = 2048u32; +pub const LINEFORWARDMODE_UNAVAIL: u32 = 131072u32; +pub const LINEFORWARDMODE_UNCOND: u32 = 1u32; +pub const LINEFORWARDMODE_UNCONDEXTERNAL: u32 = 4u32; +pub const LINEFORWARDMODE_UNCONDINTERNAL: u32 = 2u32; +pub const LINEFORWARDMODE_UNCONDSPECIFIC: u32 = 8u32; +pub const LINEFORWARDMODE_UNKNOWN: u32 = 65536u32; +pub const LINEGATHERTERM_BUFFERFULL: u32 = 1u32; +pub const LINEGATHERTERM_CANCEL: u32 = 16u32; +pub const LINEGATHERTERM_FIRSTTIMEOUT: u32 = 4u32; +pub const LINEGATHERTERM_INTERTIMEOUT: u32 = 8u32; +pub const LINEGATHERTERM_TERMDIGIT: u32 = 2u32; +pub const LINEGENERATETERM_CANCEL: u32 = 2u32; +pub const LINEGENERATETERM_DONE: u32 = 1u32; +pub const LINEGROUPSTATUS_GROUPREMOVED: u32 = 2u32; +pub const LINEGROUPSTATUS_NEWGROUP: u32 = 1u32; +pub const LINEINITIALIZEEXOPTION_CALLHUBTRACKING: u32 = 2147483648u32; +pub const LINEINITIALIZEEXOPTION_USECOMPLETIONPORT: u32 = 3u32; +pub const LINEINITIALIZEEXOPTION_USEEVENT: u32 = 2u32; +pub const LINEINITIALIZEEXOPTION_USEHIDDENWINDOW: u32 = 1u32; +pub const LINELOCATIONOPTION_PULSEDIAL: u32 = 1u32; +pub const LINEMAPPER: u32 = 4294967295u32; +pub const LINEMEDIACONTROL_NONE: u32 = 1u32; +pub const LINEMEDIACONTROL_PAUSE: u32 = 8u32; +pub const LINEMEDIACONTROL_RATEDOWN: u32 = 64u32; +pub const LINEMEDIACONTROL_RATENORMAL: u32 = 128u32; +pub const LINEMEDIACONTROL_RATEUP: u32 = 32u32; +pub const LINEMEDIACONTROL_RESET: u32 = 4u32; +pub const LINEMEDIACONTROL_RESUME: u32 = 16u32; +pub const LINEMEDIACONTROL_START: u32 = 2u32; +pub const LINEMEDIACONTROL_VOLUMEDOWN: u32 = 512u32; +pub const LINEMEDIACONTROL_VOLUMENORMAL: u32 = 1024u32; +pub const LINEMEDIACONTROL_VOLUMEUP: u32 = 256u32; +pub const LINEMEDIAMODE_ADSI: u32 = 8192u32; +pub const LINEMEDIAMODE_AUTOMATEDVOICE: u32 = 8u32; +pub const LINEMEDIAMODE_DATAMODEM: u32 = 16u32; +pub const LINEMEDIAMODE_DIGITALDATA: u32 = 256u32; +pub const LINEMEDIAMODE_G3FAX: u32 = 32u32; +pub const LINEMEDIAMODE_G4FAX: u32 = 128u32; +pub const LINEMEDIAMODE_INTERACTIVEVOICE: u32 = 4u32; +pub const LINEMEDIAMODE_MIXED: u32 = 4096u32; +pub const LINEMEDIAMODE_TDD: u32 = 64u32; +pub const LINEMEDIAMODE_TELETEX: u32 = 512u32; +pub const LINEMEDIAMODE_TELEX: u32 = 2048u32; +pub const LINEMEDIAMODE_UNKNOWN: u32 = 2u32; +pub const LINEMEDIAMODE_VIDEO: u32 = 32768u32; +pub const LINEMEDIAMODE_VIDEOTEX: u32 = 1024u32; +pub const LINEMEDIAMODE_VOICEVIEW: u32 = 16384u32; +pub const LINEOFFERINGMODE_ACTIVE: u32 = 1u32; +pub const LINEOFFERINGMODE_INACTIVE: u32 = 2u32; +pub const LINEOPENOPTION_PROXY: u32 = 1073741824u32; +pub const LINEOPENOPTION_SINGLEADDRESS: u32 = 2147483648u32; +pub const LINEPARKMODE_DIRECTED: u32 = 1u32; +pub const LINEPARKMODE_NONDIRECTED: u32 = 2u32; +pub const LINEPROXYREQUEST_AGENTSPECIFIC: u32 = 6u32; +pub const LINEPROXYREQUEST_CREATEAGENT: u32 = 9u32; +pub const LINEPROXYREQUEST_CREATEAGENTSESSION: u32 = 12u32; +pub const LINEPROXYREQUEST_GETAGENTACTIVITYLIST: u32 = 7u32; +pub const LINEPROXYREQUEST_GETAGENTCAPS: u32 = 4u32; +pub const LINEPROXYREQUEST_GETAGENTGROUPLIST: u32 = 8u32; +pub const LINEPROXYREQUEST_GETAGENTINFO: u32 = 11u32; +pub const LINEPROXYREQUEST_GETAGENTSESSIONINFO: u32 = 15u32; +pub const LINEPROXYREQUEST_GETAGENTSESSIONLIST: u32 = 13u32; +pub const LINEPROXYREQUEST_GETAGENTSTATUS: u32 = 5u32; +pub const LINEPROXYREQUEST_GETGROUPLIST: u32 = 19u32; +pub const LINEPROXYREQUEST_GETQUEUEINFO: u32 = 18u32; +pub const LINEPROXYREQUEST_GETQUEUELIST: u32 = 16u32; +pub const LINEPROXYREQUEST_SETAGENTACTIVITY: u32 = 3u32; +pub const LINEPROXYREQUEST_SETAGENTGROUP: u32 = 1u32; +pub const LINEPROXYREQUEST_SETAGENTMEASUREMENTPERIOD: u32 = 10u32; +pub const LINEPROXYREQUEST_SETAGENTSESSIONSTATE: u32 = 14u32; +pub const LINEPROXYREQUEST_SETAGENTSTATE: u32 = 2u32; +pub const LINEPROXYREQUEST_SETAGENTSTATEEX: u32 = 20u32; +pub const LINEPROXYREQUEST_SETQUEUEMEASUREMENTPERIOD: u32 = 17u32; +pub const LINEPROXYSTATUS_ALLOPENFORACD: u32 = 4u32; +pub const LINEPROXYSTATUS_CLOSE: u32 = 2u32; +pub const LINEPROXYSTATUS_OPEN: u32 = 1u32; +pub const LINEQOSREQUESTTYPE_SERVICELEVEL: u32 = 1u32; +pub const LINEQOSSERVICELEVEL_BESTEFFORT: u32 = 3u32; +pub const LINEQOSSERVICELEVEL_IFAVAILABLE: u32 = 2u32; +pub const LINEQOSSERVICELEVEL_NEEDED: u32 = 1u32; +pub const LINEQUEUESTATUS_NEWQUEUE: u32 = 2u32; +pub const LINEQUEUESTATUS_QUEUEREMOVED: u32 = 4u32; +pub const LINEQUEUESTATUS_UPDATEINFO: u32 = 1u32; +pub const LINEREMOVEFROMCONF_ANY: u32 = 3u32; +pub const LINEREMOVEFROMCONF_LAST: u32 = 2u32; +pub const LINEREMOVEFROMCONF_NONE: u32 = 1u32; +pub const LINEREQUESTMODE_DROP: u32 = 4u32; +pub const LINEREQUESTMODE_MAKECALL: u32 = 1u32; +pub const LINEREQUESTMODE_MEDIACALL: u32 = 2u32; +pub const LINEROAMMODE_HOME: u32 = 4u32; +pub const LINEROAMMODE_ROAMA: u32 = 8u32; +pub const LINEROAMMODE_ROAMB: u32 = 16u32; +pub const LINEROAMMODE_UNAVAIL: u32 = 2u32; +pub const LINEROAMMODE_UNKNOWN: u32 = 1u32; +pub const LINESPECIALINFO_CUSTIRREG: u32 = 2u32; +pub const LINESPECIALINFO_NOCIRCUIT: u32 = 1u32; +pub const LINESPECIALINFO_REORDER: u32 = 4u32; +pub const LINESPECIALINFO_UNAVAIL: u32 = 16u32; +pub const LINESPECIALINFO_UNKNOWN: u32 = 8u32; +pub const LINETERMDEV_HEADSET: u32 = 2u32; +pub const LINETERMDEV_PHONE: u32 = 1u32; +pub const LINETERMDEV_SPEAKER: u32 = 4u32; +pub const LINETERMMODE_BUTTONS: u32 = 1u32; +pub const LINETERMMODE_DISPLAY: u32 = 4u32; +pub const LINETERMMODE_HOOKSWITCH: u32 = 16u32; +pub const LINETERMMODE_LAMPS: u32 = 2u32; +pub const LINETERMMODE_MEDIABIDIRECT: u32 = 128u32; +pub const LINETERMMODE_MEDIAFROMLINE: u32 = 64u32; +pub const LINETERMMODE_MEDIATOLINE: u32 = 32u32; +pub const LINETERMMODE_RINGER: u32 = 8u32; +pub const LINETERMSHARING_PRIVATE: u32 = 1u32; +pub const LINETERMSHARING_SHAREDCONF: u32 = 4u32; +pub const LINETERMSHARING_SHAREDEXCL: u32 = 2u32; +pub const LINETOLLLISTOPTION_ADD: u32 = 1u32; +pub const LINETOLLLISTOPTION_REMOVE: u32 = 2u32; +pub const LINETONEMODE_BEEP: u32 = 8u32; +pub const LINETONEMODE_BILLING: u32 = 16u32; +pub const LINETONEMODE_BUSY: u32 = 4u32; +pub const LINETONEMODE_CUSTOM: u32 = 1u32; +pub const LINETONEMODE_RINGBACK: u32 = 2u32; +pub const LINETRANSFERMODE_CONFERENCE: u32 = 2u32; +pub const LINETRANSFERMODE_TRANSFER: u32 = 1u32; +pub const LINETRANSLATEOPTION_CANCELCALLWAITING: u32 = 2u32; +pub const LINETRANSLATEOPTION_CARDOVERRIDE: u32 = 1u32; +pub const LINETRANSLATEOPTION_FORCELD: u32 = 8u32; +pub const LINETRANSLATEOPTION_FORCELOCAL: u32 = 4u32; +pub const LINETRANSLATERESULT_CANONICAL: u32 = 1u32; +pub const LINETRANSLATERESULT_DIALBILLING: u32 = 64u32; +pub const LINETRANSLATERESULT_DIALDIALTONE: u32 = 256u32; +pub const LINETRANSLATERESULT_DIALPROMPT: u32 = 512u32; +pub const LINETRANSLATERESULT_DIALQUIET: u32 = 128u32; +pub const LINETRANSLATERESULT_INTERNATIONAL: u32 = 2u32; +pub const LINETRANSLATERESULT_INTOLLLIST: u32 = 16u32; +pub const LINETRANSLATERESULT_LOCAL: u32 = 8u32; +pub const LINETRANSLATERESULT_LONGDISTANCE: u32 = 4u32; +pub const LINETRANSLATERESULT_NOTINTOLLLIST: u32 = 32u32; +pub const LINETRANSLATERESULT_NOTRANSLATION: u32 = 2048u32; +pub const LINETRANSLATERESULT_VOICEDETECT: u32 = 1024u32; +pub const LINETSPIOPTION_NONREENTRANT: u32 = 1u32; +pub const LINE_ADDRESSSTATE: i32 = 0i32; +pub const LINE_AGENTSESSIONSTATUS: i32 = 27i32; +pub const LINE_AGENTSPECIFIC: i32 = 21i32; +pub const LINE_AGENTSTATUS: i32 = 22i32; +pub const LINE_AGENTSTATUSEX: i32 = 29i32; +pub const LINE_APPNEWCALL: i32 = 23i32; +pub const LINE_APPNEWCALLHUB: i32 = 32i32; +pub const LINE_CALLHUBCLOSE: i32 = 33i32; +pub const LINE_CALLINFO: i32 = 1i32; +pub const LINE_CALLSTATE: i32 = 2i32; +pub const LINE_CLOSE: i32 = 3i32; +pub const LINE_CREATE: i32 = 19i32; +pub const LINE_DEVSPECIFIC: i32 = 4i32; +pub const LINE_DEVSPECIFICEX: i32 = 34i32; +pub const LINE_DEVSPECIFICFEATURE: i32 = 5i32; +pub const LINE_GATHERDIGITS: i32 = 6i32; +pub const LINE_GENERATE: i32 = 7i32; +pub const LINE_GROUPSTATUS: i32 = 30i32; +pub const LINE_LINEDEVSTATE: i32 = 8i32; +pub const LINE_MONITORDIGITS: i32 = 9i32; +pub const LINE_MONITORMEDIA: i32 = 10i32; +pub const LINE_MONITORTONE: i32 = 11i32; +pub const LINE_PROXYREQUEST: i32 = 24i32; +pub const LINE_PROXYSTATUS: i32 = 31i32; +pub const LINE_QUEUESTATUS: i32 = 28i32; +pub const LINE_REMOVE: i32 = 25i32; +pub const LINE_REPLY: i32 = 12i32; +pub const LINE_REQUEST: i32 = 13i32; +pub const LM_BROKENFLUTTER: PHONE_LAMP_MODE = 64i32; +pub const LM_DUMMY: PHONE_LAMP_MODE = 1i32; +pub const LM_FLASH: PHONE_LAMP_MODE = 16i32; +pub const LM_FLUTTER: PHONE_LAMP_MODE = 32i32; +pub const LM_OFF: PHONE_LAMP_MODE = 2i32; +pub const LM_STEADY: PHONE_LAMP_MODE = 4i32; +pub const LM_UNKNOWN: PHONE_LAMP_MODE = 128i32; +pub const LM_WINK: PHONE_LAMP_MODE = 8i32; +pub const ME_ADDRESS_EVENT: MSP_EVENT = 0i32; +pub const ME_ASR_TERMINAL_EVENT: MSP_EVENT = 4i32; +pub const ME_CALL_EVENT: MSP_EVENT = 1i32; +pub const ME_FILE_TERMINAL_EVENT: MSP_EVENT = 6i32; +pub const ME_PRIVATE_EVENT: MSP_EVENT = 3i32; +pub const ME_TONE_TERMINAL_EVENT: MSP_EVENT = 7i32; +pub const ME_TSP_DATA: MSP_EVENT = 2i32; +pub const ME_TTS_TERMINAL_EVENT: MSP_EVENT = 5i32; +pub const McastAddressAllocation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdf0daef2_a289_11d1_8697_006008b0e5d2); +pub const OPENTNEFSTREAM: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("OpenTnefStream"); +pub const OPENTNEFSTREAMEX: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("OpenTnefStreamEx"); +pub const OT_CONFERENCE: DIRECTORY_OBJECT_TYPE = 1i32; +pub const OT_USER: DIRECTORY_OBJECT_TYPE = 2i32; +pub const PBF_ABBREVDIAL: PHONE_BUTTON_FUNCTION = 11i32; +pub const PBF_BRIDGEDAPP: PHONE_BUTTON_FUNCTION = 28i32; +pub const PBF_BUSY: PHONE_BUTTON_FUNCTION = 29i32; +pub const PBF_CALLAPP: PHONE_BUTTON_FUNCTION = 30i32; +pub const PBF_CALLID: PHONE_BUTTON_FUNCTION = 34i32; +pub const PBF_CAMPON: PHONE_BUTTON_FUNCTION = 43i32; +pub const PBF_CONFERENCE: PHONE_BUTTON_FUNCTION = 1i32; +pub const PBF_CONNECT: PHONE_BUTTON_FUNCTION = 7i32; +pub const PBF_COVER: PHONE_BUTTON_FUNCTION = 33i32; +pub const PBF_DATAOFF: PHONE_BUTTON_FUNCTION = 25i32; +pub const PBF_DATAON: PHONE_BUTTON_FUNCTION = 24i32; +pub const PBF_DATETIME: PHONE_BUTTON_FUNCTION = 31i32; +pub const PBF_DIRECTORY: PHONE_BUTTON_FUNCTION = 32i32; +pub const PBF_DISCONNECT: PHONE_BUTTON_FUNCTION = 6i32; +pub const PBF_DONOTDISTURB: PHONE_BUTTON_FUNCTION = 26i32; +pub const PBF_DROP: PHONE_BUTTON_FUNCTION = 3i32; +pub const PBF_FLASH: PHONE_BUTTON_FUNCTION = 23i32; +pub const PBF_FORWARD: PHONE_BUTTON_FUNCTION = 12i32; +pub const PBF_HOLD: PHONE_BUTTON_FUNCTION = 4i32; +pub const PBF_INTERCOM: PHONE_BUTTON_FUNCTION = 27i32; +pub const PBF_LASTNUM: PHONE_BUTTON_FUNCTION = 35i32; +pub const PBF_MSGINDICATOR: PHONE_BUTTON_FUNCTION = 38i32; +pub const PBF_MSGWAITOFF: PHONE_BUTTON_FUNCTION = 9i32; +pub const PBF_MSGWAITON: PHONE_BUTTON_FUNCTION = 8i32; +pub const PBF_MUTE: PHONE_BUTTON_FUNCTION = 18i32; +pub const PBF_NIGHTSRV: PHONE_BUTTON_FUNCTION = 36i32; +pub const PBF_NONE: PHONE_BUTTON_FUNCTION = 46i32; +pub const PBF_PARK: PHONE_BUTTON_FUNCTION = 15i32; +pub const PBF_PICKUP: PHONE_BUTTON_FUNCTION = 13i32; +pub const PBF_QUEUECALL: PHONE_BUTTON_FUNCTION = 45i32; +pub const PBF_RECALL: PHONE_BUTTON_FUNCTION = 5i32; +pub const PBF_REDIRECT: PHONE_BUTTON_FUNCTION = 17i32; +pub const PBF_REJECT: PHONE_BUTTON_FUNCTION = 16i32; +pub const PBF_REPDIAL: PHONE_BUTTON_FUNCTION = 39i32; +pub const PBF_RINGAGAIN: PHONE_BUTTON_FUNCTION = 14i32; +pub const PBF_SAVEREPEAT: PHONE_BUTTON_FUNCTION = 44i32; +pub const PBF_SELECTRING: PHONE_BUTTON_FUNCTION = 10i32; +pub const PBF_SEND: PHONE_BUTTON_FUNCTION = 47i32; +pub const PBF_SENDCALLS: PHONE_BUTTON_FUNCTION = 37i32; +pub const PBF_SETREPDIAL: PHONE_BUTTON_FUNCTION = 40i32; +pub const PBF_SPEAKEROFF: PHONE_BUTTON_FUNCTION = 22i32; +pub const PBF_SPEAKERON: PHONE_BUTTON_FUNCTION = 21i32; +pub const PBF_STATIONSPEED: PHONE_BUTTON_FUNCTION = 42i32; +pub const PBF_SYSTEMSPEED: PHONE_BUTTON_FUNCTION = 41i32; +pub const PBF_TRANSFER: PHONE_BUTTON_FUNCTION = 2i32; +pub const PBF_UNKNOWN: PHONE_BUTTON_FUNCTION = 0i32; +pub const PBF_VOLUMEDOWN: PHONE_BUTTON_FUNCTION = 20i32; +pub const PBF_VOLUMEUP: PHONE_BUTTON_FUNCTION = 19i32; +pub const PBM_CALL: PHONE_BUTTON_MODE = 1i32; +pub const PBM_DISPLAY: PHONE_BUTTON_MODE = 5i32; +pub const PBM_DUMMY: PHONE_BUTTON_MODE = 0i32; +pub const PBM_FEATURE: PHONE_BUTTON_MODE = 2i32; +pub const PBM_KEYPAD: PHONE_BUTTON_MODE = 3i32; +pub const PBM_LOCAL: PHONE_BUTTON_MODE = 4i32; +pub const PBS_DOWN: PHONE_BUTTON_STATE = 2i32; +pub const PBS_UNAVAIL: PHONE_BUTTON_STATE = 8i32; +pub const PBS_UNKNOWN: PHONE_BUTTON_STATE = 4i32; +pub const PBS_UP: PHONE_BUTTON_STATE = 1i32; +pub const PCB_DEVSPECIFICBUFFER: PHONECAPS_BUFFER = 0i32; +pub const PCL_DISPLAYNUMCOLUMNS: PHONECAPS_LONG = 5i32; +pub const PCL_DISPLAYNUMROWS: PHONECAPS_LONG = 4i32; +pub const PCL_GENERICPHONE: PHONECAPS_LONG = 8i32; +pub const PCL_HANDSETHOOKSWITCHMODES: PHONECAPS_LONG = 1i32; +pub const PCL_HEADSETHOOKSWITCHMODES: PHONECAPS_LONG = 2i32; +pub const PCL_HOOKSWITCHES: PHONECAPS_LONG = 0i32; +pub const PCL_NUMBUTTONLAMPS: PHONECAPS_LONG = 7i32; +pub const PCL_NUMRINGMODES: PHONECAPS_LONG = 6i32; +pub const PCL_SPEAKERPHONEHOOKSWITCHMODES: PHONECAPS_LONG = 3i32; +pub const PCS_PHONEINFO: PHONECAPS_STRING = 1i32; +pub const PCS_PHONENAME: PHONECAPS_STRING = 0i32; +pub const PCS_PROVIDERINFO: PHONECAPS_STRING = 2i32; +pub const PE_ANSWER: PHONE_EVENT = 10i32; +pub const PE_BUTTON: PHONE_EVENT = 6i32; +pub const PE_CAPSCHANGE: PHONE_EVENT = 5i32; +pub const PE_CLOSE: PHONE_EVENT = 7i32; +pub const PE_DIALING: PHONE_EVENT = 9i32; +pub const PE_DISCONNECT: PHONE_EVENT = 11i32; +pub const PE_DISPLAY: PHONE_EVENT = 0i32; +pub const PE_HOOKSWITCH: PHONE_EVENT = 4i32; +pub const PE_LAMPMODE: PHONE_EVENT = 1i32; +pub const PE_LASTITEM: PHONE_EVENT = 11i32; +pub const PE_NUMBERGATHERED: PHONE_EVENT = 8i32; +pub const PE_RINGMODE: PHONE_EVENT = 2i32; +pub const PE_RINGVOLUME: PHONE_EVENT = 3i32; +pub const PHONEBUTTONFUNCTION_ABBREVDIAL: u32 = 11u32; +pub const PHONEBUTTONFUNCTION_BRIDGEDAPP: u32 = 28u32; +pub const PHONEBUTTONFUNCTION_BUSY: u32 = 29u32; +pub const PHONEBUTTONFUNCTION_CALLAPP: u32 = 30u32; +pub const PHONEBUTTONFUNCTION_CALLID: u32 = 34u32; +pub const PHONEBUTTONFUNCTION_CAMPON: u32 = 43u32; +pub const PHONEBUTTONFUNCTION_CONFERENCE: u32 = 1u32; +pub const PHONEBUTTONFUNCTION_CONNECT: u32 = 7u32; +pub const PHONEBUTTONFUNCTION_COVER: u32 = 33u32; +pub const PHONEBUTTONFUNCTION_DATAOFF: u32 = 25u32; +pub const PHONEBUTTONFUNCTION_DATAON: u32 = 24u32; +pub const PHONEBUTTONFUNCTION_DATETIME: u32 = 31u32; +pub const PHONEBUTTONFUNCTION_DIRECTORY: u32 = 32u32; +pub const PHONEBUTTONFUNCTION_DISCONNECT: u32 = 6u32; +pub const PHONEBUTTONFUNCTION_DONOTDISTURB: u32 = 26u32; +pub const PHONEBUTTONFUNCTION_DROP: u32 = 3u32; +pub const PHONEBUTTONFUNCTION_FLASH: u32 = 23u32; +pub const PHONEBUTTONFUNCTION_FORWARD: u32 = 12u32; +pub const PHONEBUTTONFUNCTION_HOLD: u32 = 4u32; +pub const PHONEBUTTONFUNCTION_INTERCOM: u32 = 27u32; +pub const PHONEBUTTONFUNCTION_LASTNUM: u32 = 35u32; +pub const PHONEBUTTONFUNCTION_MSGINDICATOR: u32 = 38u32; +pub const PHONEBUTTONFUNCTION_MSGWAITOFF: u32 = 9u32; +pub const PHONEBUTTONFUNCTION_MSGWAITON: u32 = 8u32; +pub const PHONEBUTTONFUNCTION_MUTE: u32 = 18u32; +pub const PHONEBUTTONFUNCTION_NIGHTSRV: u32 = 36u32; +pub const PHONEBUTTONFUNCTION_NONE: u32 = 46u32; +pub const PHONEBUTTONFUNCTION_PARK: u32 = 15u32; +pub const PHONEBUTTONFUNCTION_PICKUP: u32 = 13u32; +pub const PHONEBUTTONFUNCTION_QUEUECALL: u32 = 45u32; +pub const PHONEBUTTONFUNCTION_RECALL: u32 = 5u32; +pub const PHONEBUTTONFUNCTION_REDIRECT: u32 = 17u32; +pub const PHONEBUTTONFUNCTION_REJECT: u32 = 16u32; +pub const PHONEBUTTONFUNCTION_REPDIAL: u32 = 39u32; +pub const PHONEBUTTONFUNCTION_RINGAGAIN: u32 = 14u32; +pub const PHONEBUTTONFUNCTION_SAVEREPEAT: u32 = 44u32; +pub const PHONEBUTTONFUNCTION_SELECTRING: u32 = 10u32; +pub const PHONEBUTTONFUNCTION_SEND: u32 = 47u32; +pub const PHONEBUTTONFUNCTION_SENDCALLS: u32 = 37u32; +pub const PHONEBUTTONFUNCTION_SETREPDIAL: u32 = 40u32; +pub const PHONEBUTTONFUNCTION_SPEAKEROFF: u32 = 22u32; +pub const PHONEBUTTONFUNCTION_SPEAKERON: u32 = 21u32; +pub const PHONEBUTTONFUNCTION_STATIONSPEED: u32 = 42u32; +pub const PHONEBUTTONFUNCTION_SYSTEMSPEED: u32 = 41u32; +pub const PHONEBUTTONFUNCTION_TRANSFER: u32 = 2u32; +pub const PHONEBUTTONFUNCTION_UNKNOWN: u32 = 0u32; +pub const PHONEBUTTONFUNCTION_VOLUMEDOWN: u32 = 20u32; +pub const PHONEBUTTONFUNCTION_VOLUMEUP: u32 = 19u32; +pub const PHONEBUTTONMODE_CALL: u32 = 2u32; +pub const PHONEBUTTONMODE_DISPLAY: u32 = 32u32; +pub const PHONEBUTTONMODE_DUMMY: u32 = 1u32; +pub const PHONEBUTTONMODE_FEATURE: u32 = 4u32; +pub const PHONEBUTTONMODE_KEYPAD: u32 = 8u32; +pub const PHONEBUTTONMODE_LOCAL: u32 = 16u32; +pub const PHONEBUTTONSTATE_DOWN: u32 = 2u32; +pub const PHONEBUTTONSTATE_UNAVAIL: u32 = 8u32; +pub const PHONEBUTTONSTATE_UNKNOWN: u32 = 4u32; +pub const PHONEBUTTONSTATE_UP: u32 = 1u32; +pub const PHONEERR_ALLOCATED: u32 = 2415919105u32; +pub const PHONEERR_BADDEVICEID: u32 = 2415919106u32; +pub const PHONEERR_DISCONNECTED: u32 = 2415919140u32; +pub const PHONEERR_INCOMPATIBLEAPIVERSION: u32 = 2415919107u32; +pub const PHONEERR_INCOMPATIBLEEXTVERSION: u32 = 2415919108u32; +pub const PHONEERR_INIFILECORRUPT: u32 = 2415919109u32; +pub const PHONEERR_INUSE: u32 = 2415919110u32; +pub const PHONEERR_INVALAPPHANDLE: u32 = 2415919111u32; +pub const PHONEERR_INVALAPPNAME: u32 = 2415919112u32; +pub const PHONEERR_INVALBUTTONLAMPID: u32 = 2415919113u32; +pub const PHONEERR_INVALBUTTONMODE: u32 = 2415919114u32; +pub const PHONEERR_INVALBUTTONSTATE: u32 = 2415919115u32; +pub const PHONEERR_INVALDATAID: u32 = 2415919116u32; +pub const PHONEERR_INVALDEVICECLASS: u32 = 2415919117u32; +pub const PHONEERR_INVALEXTVERSION: u32 = 2415919118u32; +pub const PHONEERR_INVALHOOKSWITCHDEV: u32 = 2415919119u32; +pub const PHONEERR_INVALHOOKSWITCHMODE: u32 = 2415919120u32; +pub const PHONEERR_INVALLAMPMODE: u32 = 2415919121u32; +pub const PHONEERR_INVALPARAM: u32 = 2415919122u32; +pub const PHONEERR_INVALPHONEHANDLE: u32 = 2415919123u32; +pub const PHONEERR_INVALPHONESTATE: u32 = 2415919124u32; +pub const PHONEERR_INVALPOINTER: u32 = 2415919125u32; +pub const PHONEERR_INVALPRIVILEGE: u32 = 2415919126u32; +pub const PHONEERR_INVALRINGMODE: u32 = 2415919127u32; +pub const PHONEERR_NODEVICE: u32 = 2415919128u32; +pub const PHONEERR_NODRIVER: u32 = 2415919129u32; +pub const PHONEERR_NOMEM: u32 = 2415919130u32; +pub const PHONEERR_NOTOWNER: u32 = 2415919131u32; +pub const PHONEERR_OPERATIONFAILED: u32 = 2415919132u32; +pub const PHONEERR_OPERATIONUNAVAIL: u32 = 2415919133u32; +pub const PHONEERR_REINIT: u32 = 2415919139u32; +pub const PHONEERR_REQUESTOVERRUN: u32 = 2415919136u32; +pub const PHONEERR_RESOURCEUNAVAIL: u32 = 2415919135u32; +pub const PHONEERR_SERVICE_NOT_RUNNING: u32 = 2415919141u32; +pub const PHONEERR_STRUCTURETOOSMALL: u32 = 2415919137u32; +pub const PHONEERR_UNINITIALIZED: u32 = 2415919138u32; +pub const PHONEFEATURE_GENERICPHONE: u32 = 268435456u32; +pub const PHONEFEATURE_GETBUTTONINFO: u32 = 1u32; +pub const PHONEFEATURE_GETDATA: u32 = 2u32; +pub const PHONEFEATURE_GETDISPLAY: u32 = 4u32; +pub const PHONEFEATURE_GETGAINHANDSET: u32 = 8u32; +pub const PHONEFEATURE_GETGAINHEADSET: u32 = 32u32; +pub const PHONEFEATURE_GETGAINSPEAKER: u32 = 16u32; +pub const PHONEFEATURE_GETHOOKSWITCHHANDSET: u32 = 64u32; +pub const PHONEFEATURE_GETHOOKSWITCHHEADSET: u32 = 256u32; +pub const PHONEFEATURE_GETHOOKSWITCHSPEAKER: u32 = 128u32; +pub const PHONEFEATURE_GETLAMP: u32 = 512u32; +pub const PHONEFEATURE_GETRING: u32 = 1024u32; +pub const PHONEFEATURE_GETVOLUMEHANDSET: u32 = 2048u32; +pub const PHONEFEATURE_GETVOLUMEHEADSET: u32 = 8192u32; +pub const PHONEFEATURE_GETVOLUMESPEAKER: u32 = 4096u32; +pub const PHONEFEATURE_SETBUTTONINFO: u32 = 16384u32; +pub const PHONEFEATURE_SETDATA: u32 = 32768u32; +pub const PHONEFEATURE_SETDISPLAY: u32 = 65536u32; +pub const PHONEFEATURE_SETGAINHANDSET: u32 = 131072u32; +pub const PHONEFEATURE_SETGAINHEADSET: u32 = 524288u32; +pub const PHONEFEATURE_SETGAINSPEAKER: u32 = 262144u32; +pub const PHONEFEATURE_SETHOOKSWITCHHANDSET: u32 = 1048576u32; +pub const PHONEFEATURE_SETHOOKSWITCHHEADSET: u32 = 4194304u32; +pub const PHONEFEATURE_SETHOOKSWITCHSPEAKER: u32 = 2097152u32; +pub const PHONEFEATURE_SETLAMP: u32 = 8388608u32; +pub const PHONEFEATURE_SETRING: u32 = 16777216u32; +pub const PHONEFEATURE_SETVOLUMEHANDSET: u32 = 33554432u32; +pub const PHONEFEATURE_SETVOLUMEHEADSET: u32 = 134217728u32; +pub const PHONEFEATURE_SETVOLUMESPEAKER: u32 = 67108864u32; +pub const PHONEHOOKSWITCHDEV_HANDSET: u32 = 1u32; +pub const PHONEHOOKSWITCHDEV_HEADSET: u32 = 4u32; +pub const PHONEHOOKSWITCHDEV_SPEAKER: u32 = 2u32; +pub const PHONEHOOKSWITCHMODE_MIC: u32 = 2u32; +pub const PHONEHOOKSWITCHMODE_MICSPEAKER: u32 = 8u32; +pub const PHONEHOOKSWITCHMODE_ONHOOK: u32 = 1u32; +pub const PHONEHOOKSWITCHMODE_SPEAKER: u32 = 4u32; +pub const PHONEHOOKSWITCHMODE_UNKNOWN: u32 = 16u32; +pub const PHONEINITIALIZEEXOPTION_USECOMPLETIONPORT: u32 = 3u32; +pub const PHONEINITIALIZEEXOPTION_USEEVENT: u32 = 2u32; +pub const PHONEINITIALIZEEXOPTION_USEHIDDENWINDOW: u32 = 1u32; +pub const PHONELAMPMODE_BROKENFLUTTER: u32 = 64u32; +pub const PHONELAMPMODE_DUMMY: u32 = 1u32; +pub const PHONELAMPMODE_FLASH: u32 = 16u32; +pub const PHONELAMPMODE_FLUTTER: u32 = 32u32; +pub const PHONELAMPMODE_OFF: u32 = 2u32; +pub const PHONELAMPMODE_STEADY: u32 = 4u32; +pub const PHONELAMPMODE_UNKNOWN: u32 = 128u32; +pub const PHONELAMPMODE_WINK: u32 = 8u32; +pub const PHONEPRIVILEGE_MONITOR: u32 = 1u32; +pub const PHONEPRIVILEGE_OWNER: u32 = 2u32; +pub const PHONESTATE_CAPSCHANGE: u32 = 4194304u32; +pub const PHONESTATE_CONNECTED: u32 = 2u32; +pub const PHONESTATE_DEVSPECIFIC: u32 = 1048576u32; +pub const PHONESTATE_DISCONNECTED: u32 = 4u32; +pub const PHONESTATE_DISPLAY: u32 = 32u32; +pub const PHONESTATE_HANDSETGAIN: u32 = 2048u32; +pub const PHONESTATE_HANDSETHOOKSWITCH: u32 = 512u32; +pub const PHONESTATE_HANDSETVOLUME: u32 = 1024u32; +pub const PHONESTATE_HEADSETGAIN: u32 = 131072u32; +pub const PHONESTATE_HEADSETHOOKSWITCH: u32 = 32768u32; +pub const PHONESTATE_HEADSETVOLUME: u32 = 65536u32; +pub const PHONESTATE_LAMP: u32 = 64u32; +pub const PHONESTATE_MONITORS: u32 = 16u32; +pub const PHONESTATE_OTHER: u32 = 1u32; +pub const PHONESTATE_OWNER: u32 = 8u32; +pub const PHONESTATE_REINIT: u32 = 2097152u32; +pub const PHONESTATE_REMOVED: u32 = 8388608u32; +pub const PHONESTATE_RESUME: u32 = 524288u32; +pub const PHONESTATE_RINGMODE: u32 = 128u32; +pub const PHONESTATE_RINGVOLUME: u32 = 256u32; +pub const PHONESTATE_SPEAKERGAIN: u32 = 16384u32; +pub const PHONESTATE_SPEAKERHOOKSWITCH: u32 = 4096u32; +pub const PHONESTATE_SPEAKERVOLUME: u32 = 8192u32; +pub const PHONESTATE_SUSPEND: u32 = 262144u32; +pub const PHONESTATUSFLAGS_CONNECTED: u32 = 1u32; +pub const PHONESTATUSFLAGS_SUSPENDED: u32 = 2u32; +pub const PHONE_BUTTON: i32 = 14i32; +pub const PHONE_CLOSE: i32 = 15i32; +pub const PHONE_CREATE: i32 = 20i32; +pub const PHONE_DEVSPECIFIC: i32 = 16i32; +pub const PHONE_REMOVE: i32 = 26i32; +pub const PHONE_REPLY: i32 = 17i32; +pub const PHONE_STATE: i32 = 18i32; +pub const PHSD_HANDSET: PHONE_HOOK_SWITCH_DEVICE = 1i32; +pub const PHSD_HEADSET: PHONE_HOOK_SWITCH_DEVICE = 4i32; +pub const PHSD_SPEAKERPHONE: PHONE_HOOK_SWITCH_DEVICE = 2i32; +pub const PHSS_OFFHOOK: PHONE_HOOK_SWITCH_STATE = 8i32; +pub const PHSS_OFFHOOK_MIC_ONLY: PHONE_HOOK_SWITCH_STATE = 2i32; +pub const PHSS_OFFHOOK_SPEAKER_ONLY: PHONE_HOOK_SWITCH_STATE = 4i32; +pub const PHSS_ONHOOK: PHONE_HOOK_SWITCH_STATE = 1i32; +pub const PP_MONITOR: PHONE_PRIVILEGE = 1i32; +pub const PP_OWNER: PHONE_PRIVILEGE = 0i32; +pub const PRIVATEOBJECT_ADDRESS: u32 = 6u32; +pub const PRIVATEOBJECT_CALL: u32 = 4u32; +pub const PRIVATEOBJECT_CALLID: u32 = 2u32; +pub const PRIVATEOBJECT_LINE: u32 = 3u32; +pub const PRIVATEOBJECT_NONE: u32 = 1u32; +pub const PRIVATEOBJECT_PHONE: u32 = 5u32; +pub const PT_BUSY: PHONE_TONE = 18i32; +pub const PT_ERRORTONE: PHONE_TONE = 20i32; +pub const PT_EXTERNALDIALTONE: PHONE_TONE = 17i32; +pub const PT_KEYPADA: PHONE_TONE = 12i32; +pub const PT_KEYPADB: PHONE_TONE = 13i32; +pub const PT_KEYPADC: PHONE_TONE = 14i32; +pub const PT_KEYPADD: PHONE_TONE = 15i32; +pub const PT_KEYPADEIGHT: PHONE_TONE = 8i32; +pub const PT_KEYPADFIVE: PHONE_TONE = 5i32; +pub const PT_KEYPADFOUR: PHONE_TONE = 4i32; +pub const PT_KEYPADNINE: PHONE_TONE = 9i32; +pub const PT_KEYPADONE: PHONE_TONE = 1i32; +pub const PT_KEYPADPOUND: PHONE_TONE = 11i32; +pub const PT_KEYPADSEVEN: PHONE_TONE = 7i32; +pub const PT_KEYPADSIX: PHONE_TONE = 6i32; +pub const PT_KEYPADSTAR: PHONE_TONE = 10i32; +pub const PT_KEYPADTHREE: PHONE_TONE = 3i32; +pub const PT_KEYPADTWO: PHONE_TONE = 2i32; +pub const PT_KEYPADZERO: PHONE_TONE = 0i32; +pub const PT_NORMALDIALTONE: PHONE_TONE = 16i32; +pub const PT_RINGBACK: PHONE_TONE = 19i32; +pub const PT_SILENCE: PHONE_TONE = 21i32; +pub const QE_ADMISSIONFAILURE: QOS_EVENT = 2i32; +pub const QE_GENERICERROR: QOS_EVENT = 4i32; +pub const QE_LASTITEM: QOS_EVENT = 4i32; +pub const QE_NOQOS: QOS_EVENT = 1i32; +pub const QE_POLICYFAILURE: QOS_EVENT = 3i32; +pub const QSL_BEST_EFFORT: QOS_SERVICE_LEVEL = 3i32; +pub const QSL_IF_AVAILABLE: QOS_SERVICE_LEVEL = 2i32; +pub const QSL_NEEDED: QOS_SERVICE_LEVEL = 1i32; +pub const RAS_LOCAL: RND_ADVERTISING_SCOPE = 1i32; +pub const RAS_REGION: RND_ADVERTISING_SCOPE = 3i32; +pub const RAS_SITE: RND_ADVERTISING_SCOPE = 2i32; +pub const RAS_WORLD: RND_ADVERTISING_SCOPE = 4i32; +pub const RENDBIND_AUTHENTICATE: u32 = 1u32; +pub const RENDBIND_DEFAULTCREDENTIALS: u32 = 14u32; +pub const RENDBIND_DEFAULTDOMAINNAME: u32 = 2u32; +pub const RENDBIND_DEFAULTPASSWORD: u32 = 8u32; +pub const RENDBIND_DEFAULTUSERNAME: u32 = 4u32; +pub const Rendezvous: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf1029e5b_cb5b_11d0_8d59_00c04fd91ac0); +pub const RequestMakeCall: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xac48ffe0_f8c4_11d1_a030_00c04fb6809f); +pub const STRINGFORMAT_ASCII: u32 = 1u32; +pub const STRINGFORMAT_BINARY: u32 = 4u32; +pub const STRINGFORMAT_DBCS: u32 = 2u32; +pub const STRINGFORMAT_UNICODE: u32 = 3u32; +pub const STRM_CONFIGURED: u32 = 2u32; +pub const STRM_INITIAL: u32 = 0u32; +pub const STRM_PAUSED: u32 = 8u32; +pub const STRM_RUNNING: u32 = 4u32; +pub const STRM_STOPPED: u32 = 16u32; +pub const STRM_TERMINALSELECTED: u32 = 1u32; +pub const TAPI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x21d6d48e_a88b_11d0_83dd_00aa003ccabd); +pub const TAPIERR_CONNECTED: i32 = 0i32; +pub const TAPIERR_DESTBUSY: i32 = -11i32; +pub const TAPIERR_DESTNOANSWER: i32 = -12i32; +pub const TAPIERR_DESTUNAVAIL: i32 = -13i32; +pub const TAPIERR_DEVICECLASSUNAVAIL: i32 = -8i32; +pub const TAPIERR_DEVICEIDUNAVAIL: i32 = -9i32; +pub const TAPIERR_DEVICEINUSE: i32 = -10i32; +pub const TAPIERR_DROPPED: i32 = -1i32; +pub const TAPIERR_INVALDESTADDRESS: i32 = -4i32; +pub const TAPIERR_INVALDEVICECLASS: i32 = -6i32; +pub const TAPIERR_INVALDEVICEID: i32 = -7i32; +pub const TAPIERR_INVALPOINTER: i32 = -18i32; +pub const TAPIERR_INVALWINDOWHANDLE: i32 = -5i32; +pub const TAPIERR_MMCWRITELOCKED: i32 = -20i32; +pub const TAPIERR_NOREQUESTRECIPIENT: i32 = -2i32; +pub const TAPIERR_NOTADMIN: i32 = -19i32; +pub const TAPIERR_PROVIDERALREADYINSTALLED: i32 = -21i32; +pub const TAPIERR_REQUESTCANCELLED: i32 = -17i32; +pub const TAPIERR_REQUESTFAILED: i32 = -16i32; +pub const TAPIERR_REQUESTQUEUEFULL: i32 = -3i32; +pub const TAPIERR_SCP_ALREADY_EXISTS: i32 = -22i32; +pub const TAPIERR_SCP_DOES_NOT_EXIST: i32 = -23i32; +pub const TAPIERR_UNKNOWNREQUESTID: i32 = -15i32; +pub const TAPIERR_UNKNOWNWINHANDLE: i32 = -14i32; +pub const TAPIMAXAPPNAMESIZE: i32 = 40i32; +pub const TAPIMAXCALLEDPARTYSIZE: i32 = 40i32; +pub const TAPIMAXCOMMENTSIZE: i32 = 80i32; +pub const TAPIMAXDESTADDRESSSIZE: i32 = 80i32; +pub const TAPIMAXDEVICECLASSSIZE: i32 = 40i32; +pub const TAPIMAXDEVICEIDSIZE: i32 = 40i32; +pub const TAPIMEDIATYPE_AUDIO: u32 = 8u32; +pub const TAPIMEDIATYPE_DATAMODEM: u32 = 16u32; +pub const TAPIMEDIATYPE_G3FAX: u32 = 32u32; +pub const TAPIMEDIATYPE_MULTITRACK: u32 = 65536u32; +pub const TAPIMEDIATYPE_VIDEO: u32 = 32768u32; +pub const TAPI_CURRENT_VERSION: u32 = 131074u32; +pub const TAPI_E_ADDRESSBLOCKED: ::windows_sys::core::HRESULT = -2147221462i32; +pub const TAPI_E_ALLOCATED: ::windows_sys::core::HRESULT = -2147221498i32; +pub const TAPI_E_BILLINGREJECTED: ::windows_sys::core::HRESULT = -2147221461i32; +pub const TAPI_E_CALLCENTER_GROUP_REMOVED: ::windows_sys::core::HRESULT = -2147221435i32; +pub const TAPI_E_CALLCENTER_INVALAGENTACTIVITY: ::windows_sys::core::HRESULT = -2147221428i32; +pub const TAPI_E_CALLCENTER_INVALAGENTGROUP: ::windows_sys::core::HRESULT = -2147221431i32; +pub const TAPI_E_CALLCENTER_INVALAGENTID: ::windows_sys::core::HRESULT = -2147221432i32; +pub const TAPI_E_CALLCENTER_INVALAGENTSTATE: ::windows_sys::core::HRESULT = -2147221429i32; +pub const TAPI_E_CALLCENTER_INVALPASSWORD: ::windows_sys::core::HRESULT = -2147221430i32; +pub const TAPI_E_CALLCENTER_NO_AGENT_ID: ::windows_sys::core::HRESULT = -2147221433i32; +pub const TAPI_E_CALLCENTER_QUEUE_REMOVED: ::windows_sys::core::HRESULT = -2147221434i32; +pub const TAPI_E_CALLNOTSELECTED: ::windows_sys::core::HRESULT = -2147221420i32; +pub const TAPI_E_CALLUNAVAIL: ::windows_sys::core::HRESULT = -2147221497i32; +pub const TAPI_E_COMPLETIONOVERRUN: ::windows_sys::core::HRESULT = -2147221496i32; +pub const TAPI_E_CONFERENCEFULL: ::windows_sys::core::HRESULT = -2147221495i32; +pub const TAPI_E_DESTBUSY: ::windows_sys::core::HRESULT = -2147221452i32; +pub const TAPI_E_DESTNOANSWER: ::windows_sys::core::HRESULT = -2147221451i32; +pub const TAPI_E_DESTUNAVAIL: ::windows_sys::core::HRESULT = -2147221450i32; +pub const TAPI_E_DIALMODIFIERNOTSUPPORTED: ::windows_sys::core::HRESULT = -2147221494i32; +pub const TAPI_E_DROPPED: ::windows_sys::core::HRESULT = -2147221455i32; +pub const TAPI_E_INUSE: ::windows_sys::core::HRESULT = -2147221493i32; +pub const TAPI_E_INVALADDRESS: ::windows_sys::core::HRESULT = -2147221492i32; +pub const TAPI_E_INVALADDRESSSTATE: ::windows_sys::core::HRESULT = -2147221491i32; +pub const TAPI_E_INVALADDRESSTYPE: ::windows_sys::core::HRESULT = -2147221423i32; +pub const TAPI_E_INVALBUTTONLAMPID: ::windows_sys::core::HRESULT = -2147221459i32; +pub const TAPI_E_INVALBUTTONSTATE: ::windows_sys::core::HRESULT = -2147221458i32; +pub const TAPI_E_INVALCALLPARAMS: ::windows_sys::core::HRESULT = -2147221490i32; +pub const TAPI_E_INVALCALLPRIVILEGE: ::windows_sys::core::HRESULT = -2147221489i32; +pub const TAPI_E_INVALCALLSTATE: ::windows_sys::core::HRESULT = -2147221488i32; +pub const TAPI_E_INVALCARD: ::windows_sys::core::HRESULT = -2147221487i32; +pub const TAPI_E_INVALCOMPLETIONID: ::windows_sys::core::HRESULT = -2147221486i32; +pub const TAPI_E_INVALCOUNTRYCODE: ::windows_sys::core::HRESULT = -2147221485i32; +pub const TAPI_E_INVALDATAID: ::windows_sys::core::HRESULT = -2147221457i32; +pub const TAPI_E_INVALDEVICECLASS: ::windows_sys::core::HRESULT = -2147221484i32; +pub const TAPI_E_INVALDIALPARAMS: ::windows_sys::core::HRESULT = -2147221483i32; +pub const TAPI_E_INVALDIGITS: ::windows_sys::core::HRESULT = -2147221482i32; +pub const TAPI_E_INVALFEATURE: ::windows_sys::core::HRESULT = -2147221460i32; +pub const TAPI_E_INVALGROUPID: ::windows_sys::core::HRESULT = -2147221481i32; +pub const TAPI_E_INVALHOOKSWITCHDEV: ::windows_sys::core::HRESULT = -2147221456i32; +pub const TAPI_E_INVALIDDIRECTION: ::windows_sys::core::HRESULT = -2147221446i32; +pub const TAPI_E_INVALIDMEDIATYPE: ::windows_sys::core::HRESULT = -2147221500i32; +pub const TAPI_E_INVALIDSTREAM: ::windows_sys::core::HRESULT = -2147221437i32; +pub const TAPI_E_INVALIDSTREAMSTATE: ::windows_sys::core::HRESULT = -2147221417i32; +pub const TAPI_E_INVALIDTERMINAL: ::windows_sys::core::HRESULT = -2147221445i32; +pub const TAPI_E_INVALIDTERMINALCLASS: ::windows_sys::core::HRESULT = -2147221444i32; +pub const TAPI_E_INVALLIST: ::windows_sys::core::HRESULT = -2147221474i32; +pub const TAPI_E_INVALLOCATION: ::windows_sys::core::HRESULT = -2147221480i32; +pub const TAPI_E_INVALMESSAGEID: ::windows_sys::core::HRESULT = -2147221479i32; +pub const TAPI_E_INVALMODE: ::windows_sys::core::HRESULT = -2147221473i32; +pub const TAPI_E_INVALPARKID: ::windows_sys::core::HRESULT = -2147221478i32; +pub const TAPI_E_INVALPRIVILEGE: ::windows_sys::core::HRESULT = -2147221447i32; +pub const TAPI_E_INVALRATE: ::windows_sys::core::HRESULT = -2147221477i32; +pub const TAPI_E_INVALTIMEOUT: ::windows_sys::core::HRESULT = -2147221476i32; +pub const TAPI_E_INVALTONE: ::windows_sys::core::HRESULT = -2147221475i32; +pub const TAPI_E_MAXSTREAMS: ::windows_sys::core::HRESULT = -2147221442i32; +pub const TAPI_E_MAXTERMINALS: ::windows_sys::core::HRESULT = -2147221438i32; +pub const TAPI_E_NOCONFERENCE: ::windows_sys::core::HRESULT = -2147221472i32; +pub const TAPI_E_NODEVICE: ::windows_sys::core::HRESULT = -2147221471i32; +pub const TAPI_E_NODRIVER: ::windows_sys::core::HRESULT = -2147221443i32; +pub const TAPI_E_NOEVENT: ::windows_sys::core::HRESULT = -2147221424i32; +pub const TAPI_E_NOFORMAT: ::windows_sys::core::HRESULT = -2147221418i32; +pub const TAPI_E_NOITEMS: ::windows_sys::core::HRESULT = -2147221502i32; +pub const TAPI_E_NOREQUEST: ::windows_sys::core::HRESULT = -2147221470i32; +pub const TAPI_E_NOREQUESTRECIPIENT: ::windows_sys::core::HRESULT = -2147221454i32; +pub const TAPI_E_NOTENOUGHMEMORY: ::windows_sys::core::HRESULT = -2147221503i32; +pub const TAPI_E_NOTERMINALSELECTED: ::windows_sys::core::HRESULT = -2147221441i32; +pub const TAPI_E_NOTOWNER: ::windows_sys::core::HRESULT = -2147221469i32; +pub const TAPI_E_NOTREGISTERED: ::windows_sys::core::HRESULT = -2147221468i32; +pub const TAPI_E_NOTSTOPPED: ::windows_sys::core::HRESULT = -2147221439i32; +pub const TAPI_E_NOTSUPPORTED: ::windows_sys::core::HRESULT = -2147221501i32; +pub const TAPI_E_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -2147221415i32; +pub const TAPI_E_OPERATIONFAILED: ::windows_sys::core::HRESULT = -2147221499i32; +pub const TAPI_E_PEER_NOT_SET: ::windows_sys::core::HRESULT = -2147221425i32; +pub const TAPI_E_PHONENOTOPEN: ::windows_sys::core::HRESULT = -2147221421i32; +pub const TAPI_E_REGISTRY_SETTING_CORRUPT: ::windows_sys::core::HRESULT = -2147221427i32; +pub const TAPI_E_REINIT: ::windows_sys::core::HRESULT = -2147221463i32; +pub const TAPI_E_REQUESTCANCELLED: ::windows_sys::core::HRESULT = -2147221448i32; +pub const TAPI_E_REQUESTFAILED: ::windows_sys::core::HRESULT = -2147221449i32; +pub const TAPI_E_REQUESTOVERRUN: ::windows_sys::core::HRESULT = -2147221467i32; +pub const TAPI_E_REQUESTQUEUEFULL: ::windows_sys::core::HRESULT = -2147221453i32; +pub const TAPI_E_RESOURCEUNAVAIL: ::windows_sys::core::HRESULT = -2147221422i32; +pub const TAPI_E_SERVICE_NOT_RUNNING: ::windows_sys::core::HRESULT = -2147221414i32; +pub const TAPI_E_TARGETNOTFOUND: ::windows_sys::core::HRESULT = -2147221466i32; +pub const TAPI_E_TARGETSELF: ::windows_sys::core::HRESULT = -2147221465i32; +pub const TAPI_E_TERMINALINUSE: ::windows_sys::core::HRESULT = -2147221440i32; +pub const TAPI_E_TERMINAL_PEER: ::windows_sys::core::HRESULT = -2147221426i32; +pub const TAPI_E_TIMEOUT: ::windows_sys::core::HRESULT = -2147221436i32; +pub const TAPI_E_USERUSERINFOTOOBIG: ::windows_sys::core::HRESULT = -2147221464i32; +pub const TAPI_E_WRONGEVENT: ::windows_sys::core::HRESULT = -2147221419i32; +pub const TAPI_E_WRONG_STATE: ::windows_sys::core::HRESULT = -2147221416i32; +pub const TAPI_REPLY: u32 = 1123u32; +pub const TD_BIDIRECTIONAL: TERMINAL_DIRECTION = 2i32; +pub const TD_CAPTURE: TERMINAL_DIRECTION = 0i32; +pub const TD_MULTITRACK_MIXED: TERMINAL_DIRECTION = 3i32; +pub const TD_NONE: TERMINAL_DIRECTION = 4i32; +pub const TD_RENDER: TERMINAL_DIRECTION = 1i32; +pub const TE_ACDGROUP: TAPI_EVENT = 8192i32; +pub const TE_ADDRESS: TAPI_EVENT = 2i32; +pub const TE_ADDRESSCLOSE: TAPIOBJECT_EVENT = 4i32; +pub const TE_ADDRESSCREATE: TAPIOBJECT_EVENT = 0i32; +pub const TE_ADDRESSDEVSPECIFIC: TAPI_EVENT = 16777216i32; +pub const TE_ADDRESSREMOVE: TAPIOBJECT_EVENT = 1i32; +pub const TE_AGENT: TAPI_EVENT = 512i32; +pub const TE_AGENTHANDLER: TAPI_EVENT = 4096i32; +pub const TE_AGENTSESSION: TAPI_EVENT = 1024i32; +pub const TE_ASRTERMINAL: TAPI_EVENT = 131072i32; +pub const TE_CALLHUB: TAPI_EVENT = 32i32; +pub const TE_CALLINFOCHANGE: TAPI_EVENT = 64i32; +pub const TE_CALLMEDIA: TAPI_EVENT = 16i32; +pub const TE_CALLNOTIFICATION: TAPI_EVENT = 4i32; +pub const TE_CALLSTATE: TAPI_EVENT = 8i32; +pub const TE_DIGITEVENT: TAPI_EVENT = 32768i32; +pub const TE_FILETERMINAL: TAPI_EVENT = 524288i32; +pub const TE_GATHERDIGITS: TAPI_EVENT = 8388608i32; +pub const TE_GENERATEEVENT: TAPI_EVENT = 65536i32; +pub const TE_PHONECREATE: TAPIOBJECT_EVENT = 5i32; +pub const TE_PHONEDEVSPECIFIC: TAPI_EVENT = 33554432i32; +pub const TE_PHONEEVENT: TAPI_EVENT = 2097152i32; +pub const TE_PHONEREMOVE: TAPIOBJECT_EVENT = 6i32; +pub const TE_PRIVATE: TAPI_EVENT = 128i32; +pub const TE_QOSEVENT: TAPI_EVENT = 2048i32; +pub const TE_QUEUE: TAPI_EVENT = 16384i32; +pub const TE_REINIT: TAPIOBJECT_EVENT = 2i32; +pub const TE_REQUEST: TAPI_EVENT = 256i32; +pub const TE_TAPIOBJECT: TAPI_EVENT = 1i32; +pub const TE_TONEEVENT: TAPI_EVENT = 4194304i32; +pub const TE_TONETERMINAL: TAPI_EVENT = 1048576i32; +pub const TE_TRANSLATECHANGE: TAPIOBJECT_EVENT = 3i32; +pub const TE_TTSTERMINAL: TAPI_EVENT = 262144i32; +pub const TGT_BUFFERFULL: TAPI_GATHERTERM = 1i32; +pub const TGT_CANCEL: TAPI_GATHERTERM = 16i32; +pub const TGT_FIRSTTIMEOUT: TAPI_GATHERTERM = 4i32; +pub const TGT_INTERTIMEOUT: TAPI_GATHERTERM = 8i32; +pub const TGT_TERMDIGIT: TAPI_GATHERTERM = 2i32; +pub const TMS_ACTIVE: TERMINAL_MEDIA_STATE = 1i32; +pub const TMS_IDLE: TERMINAL_MEDIA_STATE = 0i32; +pub const TMS_LASTITEM: TERMINAL_MEDIA_STATE = 2i32; +pub const TMS_PAUSED: TERMINAL_MEDIA_STATE = 2i32; +pub const TOT_ADDRESS: TAPI_OBJECT_TYPE = 2i32; +pub const TOT_CALL: TAPI_OBJECT_TYPE = 4i32; +pub const TOT_CALLHUB: TAPI_OBJECT_TYPE = 5i32; +pub const TOT_NONE: TAPI_OBJECT_TYPE = 0i32; +pub const TOT_PHONE: TAPI_OBJECT_TYPE = 6i32; +pub const TOT_TAPI: TAPI_OBJECT_TYPE = 1i32; +pub const TOT_TERMINAL: TAPI_OBJECT_TYPE = 3i32; +pub const TSPI_LINEACCEPT: u32 = 500u32; +pub const TSPI_LINEADDTOCONFERENCE: u32 = 501u32; +pub const TSPI_LINEANSWER: u32 = 502u32; +pub const TSPI_LINEBLINDTRANSFER: u32 = 503u32; +pub const TSPI_LINECLOSE: u32 = 504u32; +pub const TSPI_LINECLOSECALL: u32 = 505u32; +pub const TSPI_LINECLOSEMSPINSTANCE: u32 = 609u32; +pub const TSPI_LINECOMPLETECALL: u32 = 506u32; +pub const TSPI_LINECOMPLETETRANSFER: u32 = 507u32; +pub const TSPI_LINECONDITIONALMEDIADETECTION: u32 = 508u32; +pub const TSPI_LINECONFIGDIALOG: u32 = 509u32; +pub const TSPI_LINECONFIGDIALOGEDIT: u32 = 601u32; +pub const TSPI_LINECREATEMSPINSTANCE: u32 = 608u32; +pub const TSPI_LINEDEVSPECIFIC: u32 = 510u32; +pub const TSPI_LINEDEVSPECIFICFEATURE: u32 = 511u32; +pub const TSPI_LINEDIAL: u32 = 512u32; +pub const TSPI_LINEDROP: u32 = 513u32; +pub const TSPI_LINEDROPNOOWNER: u32 = 597u32; +pub const TSPI_LINEDROPONCLOSE: u32 = 596u32; +pub const TSPI_LINEFORWARD: u32 = 514u32; +pub const TSPI_LINEGATHERDIGITS: u32 = 515u32; +pub const TSPI_LINEGENERATEDIGITS: u32 = 516u32; +pub const TSPI_LINEGENERATETONE: u32 = 517u32; +pub const TSPI_LINEGETADDRESSCAPS: u32 = 518u32; +pub const TSPI_LINEGETADDRESSID: u32 = 519u32; +pub const TSPI_LINEGETADDRESSSTATUS: u32 = 520u32; +pub const TSPI_LINEGETCALLADDRESSID: u32 = 521u32; +pub const TSPI_LINEGETCALLHUBTRACKING: u32 = 604u32; +pub const TSPI_LINEGETCALLID: u32 = 603u32; +pub const TSPI_LINEGETCALLINFO: u32 = 522u32; +pub const TSPI_LINEGETCALLSTATUS: u32 = 523u32; +pub const TSPI_LINEGETDEVCAPS: u32 = 524u32; +pub const TSPI_LINEGETDEVCONFIG: u32 = 525u32; +pub const TSPI_LINEGETEXTENSIONID: u32 = 526u32; +pub const TSPI_LINEGETICON: u32 = 527u32; +pub const TSPI_LINEGETID: u32 = 528u32; +pub const TSPI_LINEGETLINEDEVSTATUS: u32 = 529u32; +pub const TSPI_LINEGETNUMADDRESSIDS: u32 = 530u32; +pub const TSPI_LINEHOLD: u32 = 531u32; +pub const TSPI_LINEMAKECALL: u32 = 532u32; +pub const TSPI_LINEMONITORDIGITS: u32 = 533u32; +pub const TSPI_LINEMONITORMEDIA: u32 = 534u32; +pub const TSPI_LINEMONITORTONES: u32 = 535u32; +pub const TSPI_LINEMSPIDENTIFY: u32 = 607u32; +pub const TSPI_LINENEGOTIATEEXTVERSION: u32 = 536u32; +pub const TSPI_LINENEGOTIATETSPIVERSION: u32 = 537u32; +pub const TSPI_LINEOPEN: u32 = 538u32; +pub const TSPI_LINEPARK: u32 = 539u32; +pub const TSPI_LINEPICKUP: u32 = 540u32; +pub const TSPI_LINEPREPAREADDTOCONFERENCE: u32 = 541u32; +pub const TSPI_LINERECEIVEMSPDATA: u32 = 606u32; +pub const TSPI_LINEREDIRECT: u32 = 542u32; +pub const TSPI_LINERELEASEUSERUSERINFO: u32 = 602u32; +pub const TSPI_LINEREMOVEFROMCONFERENCE: u32 = 543u32; +pub const TSPI_LINESECURECALL: u32 = 544u32; +pub const TSPI_LINESELECTEXTVERSION: u32 = 545u32; +pub const TSPI_LINESENDUSERUSERINFO: u32 = 546u32; +pub const TSPI_LINESETAPPSPECIFIC: u32 = 547u32; +pub const TSPI_LINESETCALLHUBTRACKING: u32 = 605u32; +pub const TSPI_LINESETCALLPARAMS: u32 = 548u32; +pub const TSPI_LINESETCURRENTLOCATION: u32 = 600u32; +pub const TSPI_LINESETDEFAULTMEDIADETECTION: u32 = 549u32; +pub const TSPI_LINESETDEVCONFIG: u32 = 550u32; +pub const TSPI_LINESETMEDIACONTROL: u32 = 551u32; +pub const TSPI_LINESETMEDIAMODE: u32 = 552u32; +pub const TSPI_LINESETSTATUSMESSAGES: u32 = 553u32; +pub const TSPI_LINESETTERMINAL: u32 = 554u32; +pub const TSPI_LINESETUPCONFERENCE: u32 = 555u32; +pub const TSPI_LINESETUPTRANSFER: u32 = 556u32; +pub const TSPI_LINESWAPHOLD: u32 = 557u32; +pub const TSPI_LINEUNCOMPLETECALL: u32 = 558u32; +pub const TSPI_LINEUNHOLD: u32 = 559u32; +pub const TSPI_LINEUNPARK: u32 = 560u32; +pub const TSPI_MESSAGE_BASE: u32 = 500u32; +pub const TSPI_PHONECLOSE: u32 = 561u32; +pub const TSPI_PHONECONFIGDIALOG: u32 = 562u32; +pub const TSPI_PHONEDEVSPECIFIC: u32 = 563u32; +pub const TSPI_PHONEGETBUTTONINFO: u32 = 564u32; +pub const TSPI_PHONEGETDATA: u32 = 565u32; +pub const TSPI_PHONEGETDEVCAPS: u32 = 566u32; +pub const TSPI_PHONEGETDISPLAY: u32 = 567u32; +pub const TSPI_PHONEGETEXTENSIONID: u32 = 568u32; +pub const TSPI_PHONEGETGAIN: u32 = 569u32; +pub const TSPI_PHONEGETHOOKSWITCH: u32 = 570u32; +pub const TSPI_PHONEGETICON: u32 = 571u32; +pub const TSPI_PHONEGETID: u32 = 572u32; +pub const TSPI_PHONEGETLAMP: u32 = 573u32; +pub const TSPI_PHONEGETRING: u32 = 574u32; +pub const TSPI_PHONEGETSTATUS: u32 = 575u32; +pub const TSPI_PHONEGETVOLUME: u32 = 576u32; +pub const TSPI_PHONENEGOTIATEEXTVERSION: u32 = 577u32; +pub const TSPI_PHONENEGOTIATETSPIVERSION: u32 = 578u32; +pub const TSPI_PHONEOPEN: u32 = 579u32; +pub const TSPI_PHONESELECTEXTVERSION: u32 = 580u32; +pub const TSPI_PHONESETBUTTONINFO: u32 = 581u32; +pub const TSPI_PHONESETDATA: u32 = 582u32; +pub const TSPI_PHONESETDISPLAY: u32 = 583u32; +pub const TSPI_PHONESETGAIN: u32 = 584u32; +pub const TSPI_PHONESETHOOKSWITCH: u32 = 585u32; +pub const TSPI_PHONESETLAMP: u32 = 586u32; +pub const TSPI_PHONESETRING: u32 = 587u32; +pub const TSPI_PHONESETSTATUSMESSAGES: u32 = 588u32; +pub const TSPI_PHONESETVOLUME: u32 = 589u32; +pub const TSPI_PROC_BASE: u32 = 500u32; +pub const TSPI_PROVIDERCONFIG: u32 = 590u32; +pub const TSPI_PROVIDERCREATELINEDEVICE: u32 = 598u32; +pub const TSPI_PROVIDERCREATEPHONEDEVICE: u32 = 599u32; +pub const TSPI_PROVIDERENUMDEVICES: u32 = 595u32; +pub const TSPI_PROVIDERINIT: u32 = 591u32; +pub const TSPI_PROVIDERINSTALL: u32 = 592u32; +pub const TSPI_PROVIDERREMOVE: u32 = 593u32; +pub const TSPI_PROVIDERSHUTDOWN: u32 = 594u32; +pub const TS_INUSE: TERMINAL_STATE = 0i32; +pub const TS_NOTINUSE: TERMINAL_STATE = 1i32; +pub const TTM_BEEP: TAPI_TONEMODE = 8i32; +pub const TTM_BILLING: TAPI_TONEMODE = 16i32; +pub const TTM_BUSY: TAPI_TONEMODE = 4i32; +pub const TTM_RINGBACK: TAPI_TONEMODE = 2i32; +pub const TT_DYNAMIC: TERMINAL_TYPE = 1i32; +pub const TT_STATIC: TERMINAL_TYPE = 0i32; +pub const TUISPIDLL_OBJECT_DIALOGINSTANCE: i32 = 4i32; +pub const TUISPIDLL_OBJECT_LINEID: i32 = 1i32; +pub const TUISPIDLL_OBJECT_PHONEID: i32 = 2i32; +pub const TUISPIDLL_OBJECT_PROVIDERID: i32 = 3i32; +pub const atypFile: i32 = 1i32; +pub const atypMax: i32 = 4i32; +pub const atypNull: i32 = 0i32; +pub const atypOle: i32 = 2i32; +pub const atypPicture: i32 = 3i32; +pub const cbDisplayName: u32 = 41u32; +pub const cbEmailName: u32 = 11u32; +pub const cbMaxIdData: u32 = 200u32; +pub const cbSeverName: u32 = 12u32; +pub const cbTYPE: u32 = 16u32; +pub const prioHigh: u32 = 1u32; +pub const prioLow: u32 = 3u32; +pub const prioNorm: u32 = 2u32; +pub type ACDGROUP_EVENT = i32; +pub type ACDQUEUE_EVENT = i32; +pub type ADDRESS_CAPABILITY = i32; +pub type ADDRESS_CAPABILITY_STRING = i32; +pub type ADDRESS_EVENT = i32; +pub type ADDRESS_STATE = i32; +pub type AGENTHANDLER_EVENT = i32; +pub type AGENT_EVENT = i32; +pub type AGENT_SESSION_EVENT = i32; +pub type AGENT_SESSION_STATE = i32; +pub type AGENT_STATE = i32; +pub type CALLHUB_EVENT = i32; +pub type CALLHUB_STATE = i32; +pub type CALLINFOCHANGE_CAUSE = i32; +pub type CALLINFO_BUFFER = i32; +pub type CALLINFO_LONG = i32; +pub type CALLINFO_STRING = i32; +pub type CALL_MEDIA_EVENT = i32; +pub type CALL_MEDIA_EVENT_CAUSE = i32; +pub type CALL_NOTIFICATION_EVENT = i32; +pub type CALL_PRIVILEGE = i32; +pub type CALL_STATE = i32; +pub type CALL_STATE_EVENT_CAUSE = i32; +pub type DIRECTORY_OBJECT_TYPE = i32; +pub type DIRECTORY_TYPE = i32; +pub type DISCONNECT_CODE = i32; +pub type FINISH_MODE = i32; +pub type FT_STATE_EVENT_CAUSE = i32; +pub type FULLDUPLEX_SUPPORT = i32; +pub type MSP_ADDRESS_EVENT = i32; +pub type MSP_CALL_EVENT = i32; +pub type MSP_CALL_EVENT_CAUSE = i32; +pub type MSP_EVENT = i32; +pub type PHONECAPS_BUFFER = i32; +pub type PHONECAPS_LONG = i32; +pub type PHONECAPS_STRING = i32; +pub type PHONE_BUTTON_FUNCTION = i32; +pub type PHONE_BUTTON_MODE = i32; +pub type PHONE_BUTTON_STATE = i32; +pub type PHONE_EVENT = i32; +pub type PHONE_HOOK_SWITCH_DEVICE = i32; +pub type PHONE_HOOK_SWITCH_STATE = i32; +pub type PHONE_LAMP_MODE = i32; +pub type PHONE_PRIVILEGE = i32; +pub type PHONE_TONE = i32; +pub type QOS_EVENT = i32; +pub type QOS_SERVICE_LEVEL = i32; +pub type RND_ADVERTISING_SCOPE = i32; +pub type TAPIOBJECT_EVENT = i32; +pub type TAPI_EVENT = i32; +pub type TAPI_GATHERTERM = i32; +pub type TAPI_OBJECT_TYPE = i32; +pub type TAPI_TONEMODE = i32; +pub type TERMINAL_DIRECTION = i32; +pub type TERMINAL_MEDIA_STATE = i32; +pub type TERMINAL_STATE = i32; +pub type TERMINAL_TYPE = i32; +#[repr(C)] +pub struct ADDRALIAS { + pub rgchName: [u8; 41], + pub rgchEName: [u8; 11], + pub rgchSrvr: [u8; 12], + pub dibDetail: u32, + pub r#type: u16, +} +impl ::core::marker::Copy for ADDRALIAS {} +impl ::core::clone::Clone for ADDRALIAS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DTR { + pub wYear: u16, + pub wMonth: u16, + pub wDay: u16, + pub wHour: u16, + pub wMinute: u16, + pub wSecond: u16, + pub wDayOfWeek: u16, +} +impl ::core::marker::Copy for DTR {} +impl ::core::clone::Clone for DTR { + fn clone(&self) -> Self { + *self + } +} +pub type HDRVCALL = isize; +pub type HDRVDIALOGINSTANCE = isize; +pub type HDRVLINE = isize; +pub type HDRVMSPLINE = isize; +pub type HDRVPHONE = isize; +pub type HPROVIDER = isize; +pub type HTAPICALL = isize; +pub type HTAPILINE = isize; +pub type HTAPIPHONE = isize; +#[repr(C, packed(1))] +pub struct LINEADDRESSCAPS { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwLineDeviceID: u32, + pub dwAddressSize: u32, + pub dwAddressOffset: u32, + pub dwDevSpecificSize: u32, + pub dwDevSpecificOffset: u32, + pub dwAddressSharing: u32, + pub dwAddressStates: u32, + pub dwCallInfoStates: u32, + pub dwCallerIDFlags: u32, + pub dwCalledIDFlags: u32, + pub dwConnectedIDFlags: u32, + pub dwRedirectionIDFlags: u32, + pub dwRedirectingIDFlags: u32, + pub dwCallStates: u32, + pub dwDialToneModes: u32, + pub dwBusyModes: u32, + pub dwSpecialInfo: u32, + pub dwDisconnectModes: u32, + pub dwMaxNumActiveCalls: u32, + pub dwMaxNumOnHoldCalls: u32, + pub dwMaxNumOnHoldPendingCalls: u32, + pub dwMaxNumConference: u32, + pub dwMaxNumTransConf: u32, + pub dwAddrCapFlags: u32, + pub dwCallFeatures: u32, + pub dwRemoveFromConfCaps: u32, + pub dwRemoveFromConfState: u32, + pub dwTransferModes: u32, + pub dwParkModes: u32, + pub dwForwardModes: u32, + pub dwMaxForwardEntries: u32, + pub dwMaxSpecificEntries: u32, + pub dwMinFwdNumRings: u32, + pub dwMaxFwdNumRings: u32, + pub dwMaxCallCompletions: u32, + pub dwCallCompletionConds: u32, + pub dwCallCompletionModes: u32, + pub dwNumCompletionMessages: u32, + pub dwCompletionMsgTextEntrySize: u32, + pub dwCompletionMsgTextSize: u32, + pub dwCompletionMsgTextOffset: u32, + pub dwAddressFeatures: u32, + pub dwPredictiveAutoTransferStates: u32, + pub dwNumCallTreatments: u32, + pub dwCallTreatmentListSize: u32, + pub dwCallTreatmentListOffset: u32, + pub dwDeviceClassesSize: u32, + pub dwDeviceClassesOffset: u32, + pub dwMaxCallDataSize: u32, + pub dwCallFeatures2: u32, + pub dwMaxNoAnswerTimeout: u32, + pub dwConnectedModes: u32, + pub dwOfferingModes: u32, + pub dwAvailableMediaModes: u32, +} +impl ::core::marker::Copy for LINEADDRESSCAPS {} +impl ::core::clone::Clone for LINEADDRESSCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEADDRESSSTATUS { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwNumInUse: u32, + pub dwNumActiveCalls: u32, + pub dwNumOnHoldCalls: u32, + pub dwNumOnHoldPendCalls: u32, + pub dwAddressFeatures: u32, + pub dwNumRingsNoAnswer: u32, + pub dwForwardNumEntries: u32, + pub dwForwardSize: u32, + pub dwForwardOffset: u32, + pub dwTerminalModesSize: u32, + pub dwTerminalModesOffset: u32, + pub dwDevSpecificSize: u32, + pub dwDevSpecificOffset: u32, +} +impl ::core::marker::Copy for LINEADDRESSSTATUS {} +impl ::core::clone::Clone for LINEADDRESSSTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEAGENTACTIVITYENTRY { + pub dwID: u32, + pub dwNameSize: u32, + pub dwNameOffset: u32, +} +impl ::core::marker::Copy for LINEAGENTACTIVITYENTRY {} +impl ::core::clone::Clone for LINEAGENTACTIVITYENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEAGENTACTIVITYLIST { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwNumEntries: u32, + pub dwListSize: u32, + pub dwListOffset: u32, +} +impl ::core::marker::Copy for LINEAGENTACTIVITYLIST {} +impl ::core::clone::Clone for LINEAGENTACTIVITYLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEAGENTCAPS { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwAgentHandlerInfoSize: u32, + pub dwAgentHandlerInfoOffset: u32, + pub dwCapsVersion: u32, + pub dwFeatures: u32, + pub dwStates: u32, + pub dwNextStates: u32, + pub dwMaxNumGroupEntries: u32, + pub dwAgentStatusMessages: u32, + pub dwNumAgentExtensionIDs: u32, + pub dwAgentExtensionIDListSize: u32, + pub dwAgentExtensionIDListOffset: u32, + pub ProxyGUID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for LINEAGENTCAPS {} +impl ::core::clone::Clone for LINEAGENTCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEAGENTENTRY { + pub hAgent: u32, + pub dwNameSize: u32, + pub dwNameOffset: u32, + pub dwIDSize: u32, + pub dwIDOffset: u32, + pub dwPINSize: u32, + pub dwPINOffset: u32, +} +impl ::core::marker::Copy for LINEAGENTENTRY {} +impl ::core::clone::Clone for LINEAGENTENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEAGENTGROUPENTRY { + pub GroupID: LINEAGENTGROUPENTRY_0, + pub dwNameSize: u32, + pub dwNameOffset: u32, +} +impl ::core::marker::Copy for LINEAGENTGROUPENTRY {} +impl ::core::clone::Clone for LINEAGENTGROUPENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEAGENTGROUPENTRY_0 { + pub dwGroupID1: u32, + pub dwGroupID2: u32, + pub dwGroupID3: u32, + pub dwGroupID4: u32, +} +impl ::core::marker::Copy for LINEAGENTGROUPENTRY_0 {} +impl ::core::clone::Clone for LINEAGENTGROUPENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEAGENTGROUPLIST { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwNumEntries: u32, + pub dwListSize: u32, + pub dwListOffset: u32, +} +impl ::core::marker::Copy for LINEAGENTGROUPLIST {} +impl ::core::clone::Clone for LINEAGENTGROUPLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEAGENTINFO { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwAgentState: u32, + pub dwNextAgentState: u32, + pub dwMeasurementPeriod: u32, + pub cyOverallCallRate: super::super::System::Com::CY, + pub dwNumberOfACDCalls: u32, + pub dwNumberOfIncomingCalls: u32, + pub dwNumberOfOutgoingCalls: u32, + pub dwTotalACDTalkTime: u32, + pub dwTotalACDCallTime: u32, + pub dwTotalACDWrapUpTime: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEAGENTINFO {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEAGENTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEAGENTLIST { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwNumEntries: u32, + pub dwListSize: u32, + pub dwListOffset: u32, +} +impl ::core::marker::Copy for LINEAGENTLIST {} +impl ::core::clone::Clone for LINEAGENTLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEAGENTSESSIONENTRY { + pub hAgentSession: u32, + pub hAgent: u32, + pub GroupID: ::windows_sys::core::GUID, + pub dwWorkingAddressID: u32, +} +impl ::core::marker::Copy for LINEAGENTSESSIONENTRY {} +impl ::core::clone::Clone for LINEAGENTSESSIONENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEAGENTSESSIONINFO { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwAgentSessionState: u32, + pub dwNextAgentSessionState: u32, + pub dateSessionStartTime: f64, + pub dwSessionDuration: u32, + pub dwNumberOfCalls: u32, + pub dwTotalTalkTime: u32, + pub dwAverageTalkTime: u32, + pub dwTotalCallTime: u32, + pub dwAverageCallTime: u32, + pub dwTotalWrapUpTime: u32, + pub dwAverageWrapUpTime: u32, + pub cyACDCallRate: super::super::System::Com::CY, + pub dwLongestTimeToAnswer: u32, + pub dwAverageTimeToAnswer: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEAGENTSESSIONINFO {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEAGENTSESSIONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEAGENTSESSIONLIST { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwNumEntries: u32, + pub dwListSize: u32, + pub dwListOffset: u32, +} +impl ::core::marker::Copy for LINEAGENTSESSIONLIST {} +impl ::core::clone::Clone for LINEAGENTSESSIONLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEAGENTSTATUS { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwNumEntries: u32, + pub dwGroupListSize: u32, + pub dwGroupListOffset: u32, + pub dwState: u32, + pub dwNextState: u32, + pub dwActivityID: u32, + pub dwActivitySize: u32, + pub dwActivityOffset: u32, + pub dwAgentFeatures: u32, + pub dwValidStates: u32, + pub dwValidNextStates: u32, +} +impl ::core::marker::Copy for LINEAGENTSTATUS {} +impl ::core::clone::Clone for LINEAGENTSTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEAPPINFO { + pub dwMachineNameSize: u32, + pub dwMachineNameOffset: u32, + pub dwUserNameSize: u32, + pub dwUserNameOffset: u32, + pub dwModuleFilenameSize: u32, + pub dwModuleFilenameOffset: u32, + pub dwFriendlyNameSize: u32, + pub dwFriendlyNameOffset: u32, + pub dwMediaModes: u32, + pub dwAddressID: u32, +} +impl ::core::marker::Copy for LINEAPPINFO {} +impl ::core::clone::Clone for LINEAPPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINECALLINFO { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub hLine: u32, + pub dwLineDeviceID: u32, + pub dwAddressID: u32, + pub dwBearerMode: u32, + pub dwRate: u32, + pub dwMediaMode: u32, + pub dwAppSpecific: u32, + pub dwCallID: u32, + pub dwRelatedCallID: u32, + pub dwCallParamFlags: u32, + pub dwCallStates: u32, + pub dwMonitorDigitModes: u32, + pub dwMonitorMediaModes: u32, + pub DialParams: LINEDIALPARAMS, + pub dwOrigin: u32, + pub dwReason: u32, + pub dwCompletionID: u32, + pub dwNumOwners: u32, + pub dwNumMonitors: u32, + pub dwCountryCode: u32, + pub dwTrunk: u32, + pub dwCallerIDFlags: u32, + pub dwCallerIDSize: u32, + pub dwCallerIDOffset: u32, + pub dwCallerIDNameSize: u32, + pub dwCallerIDNameOffset: u32, + pub dwCalledIDFlags: u32, + pub dwCalledIDSize: u32, + pub dwCalledIDOffset: u32, + pub dwCalledIDNameSize: u32, + pub dwCalledIDNameOffset: u32, + pub dwConnectedIDFlags: u32, + pub dwConnectedIDSize: u32, + pub dwConnectedIDOffset: u32, + pub dwConnectedIDNameSize: u32, + pub dwConnectedIDNameOffset: u32, + pub dwRedirectionIDFlags: u32, + pub dwRedirectionIDSize: u32, + pub dwRedirectionIDOffset: u32, + pub dwRedirectionIDNameSize: u32, + pub dwRedirectionIDNameOffset: u32, + pub dwRedirectingIDFlags: u32, + pub dwRedirectingIDSize: u32, + pub dwRedirectingIDOffset: u32, + pub dwRedirectingIDNameSize: u32, + pub dwRedirectingIDNameOffset: u32, + pub dwAppNameSize: u32, + pub dwAppNameOffset: u32, + pub dwDisplayableAddressSize: u32, + pub dwDisplayableAddressOffset: u32, + pub dwCalledPartySize: u32, + pub dwCalledPartyOffset: u32, + pub dwCommentSize: u32, + pub dwCommentOffset: u32, + pub dwDisplaySize: u32, + pub dwDisplayOffset: u32, + pub dwUserUserInfoSize: u32, + pub dwUserUserInfoOffset: u32, + pub dwHighLevelCompSize: u32, + pub dwHighLevelCompOffset: u32, + pub dwLowLevelCompSize: u32, + pub dwLowLevelCompOffset: u32, + pub dwChargingInfoSize: u32, + pub dwChargingInfoOffset: u32, + pub dwTerminalModesSize: u32, + pub dwTerminalModesOffset: u32, + pub dwDevSpecificSize: u32, + pub dwDevSpecificOffset: u32, + pub dwCallTreatment: u32, + pub dwCallDataSize: u32, + pub dwCallDataOffset: u32, + pub dwSendingFlowspecSize: u32, + pub dwSendingFlowspecOffset: u32, + pub dwReceivingFlowspecSize: u32, + pub dwReceivingFlowspecOffset: u32, +} +impl ::core::marker::Copy for LINECALLINFO {} +impl ::core::clone::Clone for LINECALLINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINECALLLIST { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwCallsNumEntries: u32, + pub dwCallsSize: u32, + pub dwCallsOffset: u32, +} +impl ::core::marker::Copy for LINECALLLIST {} +impl ::core::clone::Clone for LINECALLLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINECALLPARAMS { + pub dwTotalSize: u32, + pub dwBearerMode: u32, + pub dwMinRate: u32, + pub dwMaxRate: u32, + pub dwMediaMode: u32, + pub dwCallParamFlags: u32, + pub dwAddressMode: u32, + pub dwAddressID: u32, + pub DialParams: LINEDIALPARAMS, + pub dwOrigAddressSize: u32, + pub dwOrigAddressOffset: u32, + pub dwDisplayableAddressSize: u32, + pub dwDisplayableAddressOffset: u32, + pub dwCalledPartySize: u32, + pub dwCalledPartyOffset: u32, + pub dwCommentSize: u32, + pub dwCommentOffset: u32, + pub dwUserUserInfoSize: u32, + pub dwUserUserInfoOffset: u32, + pub dwHighLevelCompSize: u32, + pub dwHighLevelCompOffset: u32, + pub dwLowLevelCompSize: u32, + pub dwLowLevelCompOffset: u32, + pub dwDevSpecificSize: u32, + pub dwDevSpecificOffset: u32, + pub dwPredictiveAutoTransferStates: u32, + pub dwTargetAddressSize: u32, + pub dwTargetAddressOffset: u32, + pub dwSendingFlowspecSize: u32, + pub dwSendingFlowspecOffset: u32, + pub dwReceivingFlowspecSize: u32, + pub dwReceivingFlowspecOffset: u32, + pub dwDeviceClassSize: u32, + pub dwDeviceClassOffset: u32, + pub dwDeviceConfigSize: u32, + pub dwDeviceConfigOffset: u32, + pub dwCallDataSize: u32, + pub dwCallDataOffset: u32, + pub dwNoAnswerTimeout: u32, + pub dwCallingPartyIDSize: u32, + pub dwCallingPartyIDOffset: u32, +} +impl ::core::marker::Copy for LINECALLPARAMS {} +impl ::core::clone::Clone for LINECALLPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LINECALLSTATUS { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwCallState: u32, + pub dwCallStateMode: u32, + pub dwCallPrivilege: u32, + pub dwCallFeatures: u32, + pub dwDevSpecificSize: u32, + pub dwDevSpecificOffset: u32, + pub dwCallFeatures2: u32, + pub tStateEntryTime: super::super::Foundation::SYSTEMTIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LINECALLSTATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LINECALLSTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINECALLTREATMENTENTRY { + pub dwCallTreatmentID: u32, + pub dwCallTreatmentNameSize: u32, + pub dwCallTreatmentNameOffset: u32, +} +impl ::core::marker::Copy for LINECALLTREATMENTENTRY {} +impl ::core::clone::Clone for LINECALLTREATMENTENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINECARDENTRY { + pub dwPermanentCardID: u32, + pub dwCardNameSize: u32, + pub dwCardNameOffset: u32, + pub dwCardNumberDigits: u32, + pub dwSameAreaRuleSize: u32, + pub dwSameAreaRuleOffset: u32, + pub dwLongDistanceRuleSize: u32, + pub dwLongDistanceRuleOffset: u32, + pub dwInternationalRuleSize: u32, + pub dwInternationalRuleOffset: u32, + pub dwOptions: u32, +} +impl ::core::marker::Copy for LINECARDENTRY {} +impl ::core::clone::Clone for LINECARDENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINECOUNTRYENTRY { + pub dwCountryID: u32, + pub dwCountryCode: u32, + pub dwNextCountryID: u32, + pub dwCountryNameSize: u32, + pub dwCountryNameOffset: u32, + pub dwSameAreaRuleSize: u32, + pub dwSameAreaRuleOffset: u32, + pub dwLongDistanceRuleSize: u32, + pub dwLongDistanceRuleOffset: u32, + pub dwInternationalRuleSize: u32, + pub dwInternationalRuleOffset: u32, +} +impl ::core::marker::Copy for LINECOUNTRYENTRY {} +impl ::core::clone::Clone for LINECOUNTRYENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINECOUNTRYLIST { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwNumCountries: u32, + pub dwCountryListSize: u32, + pub dwCountryListOffset: u32, +} +impl ::core::marker::Copy for LINECOUNTRYLIST {} +impl ::core::clone::Clone for LINECOUNTRYLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEDEVCAPS { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwProviderInfoSize: u32, + pub dwProviderInfoOffset: u32, + pub dwSwitchInfoSize: u32, + pub dwSwitchInfoOffset: u32, + pub dwPermanentLineID: u32, + pub dwLineNameSize: u32, + pub dwLineNameOffset: u32, + pub dwStringFormat: u32, + pub dwAddressModes: u32, + pub dwNumAddresses: u32, + pub dwBearerModes: u32, + pub dwMaxRate: u32, + pub dwMediaModes: u32, + pub dwGenerateToneModes: u32, + pub dwGenerateToneMaxNumFreq: u32, + pub dwGenerateDigitModes: u32, + pub dwMonitorToneMaxNumFreq: u32, + pub dwMonitorToneMaxNumEntries: u32, + pub dwMonitorDigitModes: u32, + pub dwGatherDigitsMinTimeout: u32, + pub dwGatherDigitsMaxTimeout: u32, + pub dwMedCtlDigitMaxListSize: u32, + pub dwMedCtlMediaMaxListSize: u32, + pub dwMedCtlToneMaxListSize: u32, + pub dwMedCtlCallStateMaxListSize: u32, + pub dwDevCapFlags: u32, + pub dwMaxNumActiveCalls: u32, + pub dwAnswerMode: u32, + pub dwRingModes: u32, + pub dwLineStates: u32, + pub dwUUIAcceptSize: u32, + pub dwUUIAnswerSize: u32, + pub dwUUIMakeCallSize: u32, + pub dwUUIDropSize: u32, + pub dwUUISendUserUserInfoSize: u32, + pub dwUUICallInfoSize: u32, + pub MinDialParams: LINEDIALPARAMS, + pub MaxDialParams: LINEDIALPARAMS, + pub DefaultDialParams: LINEDIALPARAMS, + pub dwNumTerminals: u32, + pub dwTerminalCapsSize: u32, + pub dwTerminalCapsOffset: u32, + pub dwTerminalTextEntrySize: u32, + pub dwTerminalTextSize: u32, + pub dwTerminalTextOffset: u32, + pub dwDevSpecificSize: u32, + pub dwDevSpecificOffset: u32, + pub dwLineFeatures: u32, + pub dwSettableDevStatus: u32, + pub dwDeviceClassesSize: u32, + pub dwDeviceClassesOffset: u32, + pub PermanentLineGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for LINEDEVCAPS {} +impl ::core::clone::Clone for LINEDEVCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEDEVSTATUS { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwNumOpens: u32, + pub dwOpenMediaModes: u32, + pub dwNumActiveCalls: u32, + pub dwNumOnHoldCalls: u32, + pub dwNumOnHoldPendCalls: u32, + pub dwLineFeatures: u32, + pub dwNumCallCompletions: u32, + pub dwRingMode: u32, + pub dwSignalLevel: u32, + pub dwBatteryLevel: u32, + pub dwRoamMode: u32, + pub dwDevStatusFlags: u32, + pub dwTerminalModesSize: u32, + pub dwTerminalModesOffset: u32, + pub dwDevSpecificSize: u32, + pub dwDevSpecificOffset: u32, + pub dwAvailableMediaModes: u32, + pub dwAppInfoSize: u32, + pub dwAppInfoOffset: u32, +} +impl ::core::marker::Copy for LINEDEVSTATUS {} +impl ::core::clone::Clone for LINEDEVSTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEDIALPARAMS { + pub dwDialPause: u32, + pub dwDialSpeed: u32, + pub dwDigitDuration: u32, + pub dwWaitForDialtone: u32, +} +impl ::core::marker::Copy for LINEDIALPARAMS {} +impl ::core::clone::Clone for LINEDIALPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEEXTENSIONID { + pub dwExtensionID0: u32, + pub dwExtensionID1: u32, + pub dwExtensionID2: u32, + pub dwExtensionID3: u32, +} +impl ::core::marker::Copy for LINEEXTENSIONID {} +impl ::core::clone::Clone for LINEEXTENSIONID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEFORWARD { + pub dwForwardMode: u32, + pub dwCallerAddressSize: u32, + pub dwCallerAddressOffset: u32, + pub dwDestCountryCode: u32, + pub dwDestAddressSize: u32, + pub dwDestAddressOffset: u32, +} +impl ::core::marker::Copy for LINEFORWARD {} +impl ::core::clone::Clone for LINEFORWARD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEFORWARDLIST { + pub dwTotalSize: u32, + pub dwNumEntries: u32, + pub ForwardList: [LINEFORWARD; 1], +} +impl ::core::marker::Copy for LINEFORWARDLIST {} +impl ::core::clone::Clone for LINEFORWARDLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEGENERATETONE { + pub dwFrequency: u32, + pub dwCadenceOn: u32, + pub dwCadenceOff: u32, + pub dwVolume: u32, +} +impl ::core::marker::Copy for LINEGENERATETONE {} +impl ::core::clone::Clone for LINEGENERATETONE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LINEINITIALIZEEXPARAMS { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwOptions: u32, + pub Handles: LINEINITIALIZEEXPARAMS_0, + pub dwCompletionKey: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LINEINITIALIZEEXPARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LINEINITIALIZEEXPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union LINEINITIALIZEEXPARAMS_0 { + pub hEvent: super::super::Foundation::HANDLE, + pub hCompletionPort: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LINEINITIALIZEEXPARAMS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LINEINITIALIZEEXPARAMS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINELOCATIONENTRY { + pub dwPermanentLocationID: u32, + pub dwLocationNameSize: u32, + pub dwLocationNameOffset: u32, + pub dwCountryCode: u32, + pub dwCityCodeSize: u32, + pub dwCityCodeOffset: u32, + pub dwPreferredCardID: u32, + pub dwLocalAccessCodeSize: u32, + pub dwLocalAccessCodeOffset: u32, + pub dwLongDistanceAccessCodeSize: u32, + pub dwLongDistanceAccessCodeOffset: u32, + pub dwTollPrefixListSize: u32, + pub dwTollPrefixListOffset: u32, + pub dwCountryID: u32, + pub dwOptions: u32, + pub dwCancelCallWaitingSize: u32, + pub dwCancelCallWaitingOffset: u32, +} +impl ::core::marker::Copy for LINELOCATIONENTRY {} +impl ::core::clone::Clone for LINELOCATIONENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEMEDIACONTROLCALLSTATE { + pub dwCallStates: u32, + pub dwMediaControl: u32, +} +impl ::core::marker::Copy for LINEMEDIACONTROLCALLSTATE {} +impl ::core::clone::Clone for LINEMEDIACONTROLCALLSTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEMEDIACONTROLDIGIT { + pub dwDigit: u32, + pub dwDigitModes: u32, + pub dwMediaControl: u32, +} +impl ::core::marker::Copy for LINEMEDIACONTROLDIGIT {} +impl ::core::clone::Clone for LINEMEDIACONTROLDIGIT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEMEDIACONTROLMEDIA { + pub dwMediaModes: u32, + pub dwDuration: u32, + pub dwMediaControl: u32, +} +impl ::core::marker::Copy for LINEMEDIACONTROLMEDIA {} +impl ::core::clone::Clone for LINEMEDIACONTROLMEDIA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEMEDIACONTROLTONE { + pub dwAppSpecific: u32, + pub dwDuration: u32, + pub dwFrequency1: u32, + pub dwFrequency2: u32, + pub dwFrequency3: u32, + pub dwMediaControl: u32, +} +impl ::core::marker::Copy for LINEMEDIACONTROLTONE {} +impl ::core::clone::Clone for LINEMEDIACONTROLTONE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEMESSAGE { + pub hDevice: u32, + pub dwMessageID: u32, + pub dwCallbackInstance: usize, + pub dwParam1: usize, + pub dwParam2: usize, + pub dwParam3: usize, +} +impl ::core::marker::Copy for LINEMESSAGE {} +impl ::core::clone::Clone for LINEMESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEMONITORTONE { + pub dwAppSpecific: u32, + pub dwDuration: u32, + pub dwFrequency1: u32, + pub dwFrequency2: u32, + pub dwFrequency3: u32, +} +impl ::core::marker::Copy for LINEMONITORTONE {} +impl ::core::clone::Clone for LINEMONITORTONE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEPROVIDERENTRY { + pub dwPermanentProviderID: u32, + pub dwProviderFilenameSize: u32, + pub dwProviderFilenameOffset: u32, +} +impl ::core::marker::Copy for LINEPROVIDERENTRY {} +impl ::core::clone::Clone for LINEPROVIDERENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEPROVIDERLIST { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwNumProviders: u32, + pub dwProviderListSize: u32, + pub dwProviderListOffset: u32, +} +impl ::core::marker::Copy for LINEPROVIDERLIST {} +impl ::core::clone::Clone for LINEPROVIDERLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST { + pub dwSize: u32, + pub dwClientMachineNameSize: u32, + pub dwClientMachineNameOffset: u32, + pub dwClientUserNameSize: u32, + pub dwClientUserNameOffset: u32, + pub dwClientAppAPIVersion: u32, + pub dwRequestType: u32, + pub Anonymous: LINEPROXYREQUEST_0, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union LINEPROXYREQUEST_0 { + pub SetAgentGroup: LINEPROXYREQUEST_0_14, + pub SetAgentState: LINEPROXYREQUEST_0_18, + pub SetAgentActivity: LINEPROXYREQUEST_0_13, + pub GetAgentCaps: LINEPROXYREQUEST_0_4, + pub GetAgentStatus: LINEPROXYREQUEST_0_9, + pub AgentSpecific: LINEPROXYREQUEST_0_0, + pub GetAgentActivityList: LINEPROXYREQUEST_0_3, + pub GetAgentGroupList: LINEPROXYREQUEST_0_5, + pub CreateAgent: LINEPROXYREQUEST_0_2, + pub SetAgentStateEx: LINEPROXYREQUEST_0_17, + pub SetAgentMeasurementPeriod: LINEPROXYREQUEST_0_15, + pub GetAgentInfo: LINEPROXYREQUEST_0_6, + pub CreateAgentSession: LINEPROXYREQUEST_0_1, + pub GetAgentSessionList: LINEPROXYREQUEST_0_8, + pub GetAgentSessionInfo: LINEPROXYREQUEST_0_7, + pub SetAgentSessionState: LINEPROXYREQUEST_0_16, + pub GetQueueList: LINEPROXYREQUEST_0_12, + pub SetQueueMeasurementPeriod: LINEPROXYREQUEST_0_19, + pub GetQueueInfo: LINEPROXYREQUEST_0_11, + pub GetGroupList: LINEPROXYREQUEST_0_10, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_0 { + pub dwAddressID: u32, + pub dwAgentExtensionIDIndex: u32, + pub dwSize: u32, + pub Params: [u8; 1], +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_1 { + pub hAgentSession: u32, + pub dwAgentPINSize: u32, + pub dwAgentPINOffset: u32, + pub hAgent: u32, + pub GroupID: ::windows_sys::core::GUID, + pub dwWorkingAddressID: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_1 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_2 { + pub hAgent: u32, + pub dwAgentIDSize: u32, + pub dwAgentIDOffset: u32, + pub dwAgentPINSize: u32, + pub dwAgentPINOffset: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_2 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_3 { + pub dwAddressID: u32, + pub ActivityList: LINEAGENTACTIVITYLIST, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_3 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_4 { + pub dwAddressID: u32, + pub AgentCaps: LINEAGENTCAPS, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_4 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_5 { + pub dwAddressID: u32, + pub GroupList: LINEAGENTGROUPLIST, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_5 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_6 { + pub hAgent: u32, + pub AgentInfo: LINEAGENTINFO, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_6 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_7 { + pub hAgentSession: u32, + pub SessionInfo: LINEAGENTSESSIONINFO, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_7 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_8 { + pub hAgent: u32, + pub SessionList: LINEAGENTSESSIONLIST, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_8 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_9 { + pub dwAddressID: u32, + pub AgentStatus: LINEAGENTSTATUS, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_9 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_10 { + pub GroupList: LINEAGENTGROUPLIST, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_10 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_11 { + pub dwQueueID: u32, + pub QueueInfo: LINEQUEUEINFO, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_11 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_12 { + pub GroupID: ::windows_sys::core::GUID, + pub QueueList: LINEQUEUELIST, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_12 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_12 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_13 { + pub dwAddressID: u32, + pub dwActivityID: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_13 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_13 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_14 { + pub dwAddressID: u32, + pub GroupList: LINEAGENTGROUPLIST, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_14 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_14 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_15 { + pub hAgent: u32, + pub dwMeasurementPeriod: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_15 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_15 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_16 { + pub hAgentSession: u32, + pub dwAgentSessionState: u32, + pub dwNextAgentSessionState: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_16 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_17 { + pub hAgent: u32, + pub dwAgentState: u32, + pub dwNextAgentState: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_17 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_17 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_18 { + pub dwAddressID: u32, + pub dwAgentState: u32, + pub dwNextAgentState: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_18 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_18 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct LINEPROXYREQUEST_0_19 { + pub dwQueueID: u32, + pub dwMeasurementPeriod: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for LINEPROXYREQUEST_0_19 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for LINEPROXYREQUEST_0_19 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEPROXYREQUESTLIST { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwNumEntries: u32, + pub dwListSize: u32, + pub dwListOffset: u32, +} +impl ::core::marker::Copy for LINEPROXYREQUESTLIST {} +impl ::core::clone::Clone for LINEPROXYREQUESTLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEQUEUEENTRY { + pub dwQueueID: u32, + pub dwNameSize: u32, + pub dwNameOffset: u32, +} +impl ::core::marker::Copy for LINEQUEUEENTRY {} +impl ::core::clone::Clone for LINEQUEUEENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEQUEUEINFO { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwMeasurementPeriod: u32, + pub dwTotalCallsQueued: u32, + pub dwCurrentCallsQueued: u32, + pub dwTotalCallsAbandoned: u32, + pub dwTotalCallsFlowedIn: u32, + pub dwTotalCallsFlowedOut: u32, + pub dwLongestEverWaitTime: u32, + pub dwCurrentLongestWaitTime: u32, + pub dwAverageWaitTime: u32, + pub dwFinalDisposition: u32, +} +impl ::core::marker::Copy for LINEQUEUEINFO {} +impl ::core::clone::Clone for LINEQUEUEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEQUEUELIST { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwNumEntries: u32, + pub dwListSize: u32, + pub dwListOffset: u32, +} +impl ::core::marker::Copy for LINEQUEUELIST {} +impl ::core::clone::Clone for LINEQUEUELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LINEREQMAKECALL { + pub szDestAddress: [u8; 80], + pub szAppName: [u8; 40], + pub szCalledParty: [u8; 40], + pub szComment: [u8; 80], +} +impl ::core::marker::Copy for LINEREQMAKECALL {} +impl ::core::clone::Clone for LINEREQMAKECALL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINEREQMAKECALLW { + pub szDestAddress: [u16; 80], + pub szAppName: [u16; 40], + pub szCalledParty: [u16; 40], + pub szComment: [u16; 80], +} +impl ::core::marker::Copy for LINEREQMAKECALLW {} +impl ::core::clone::Clone for LINEREQMAKECALLW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LINEREQMEDIACALL { + pub hWnd: super::super::Foundation::HWND, + pub wRequestID: super::super::Foundation::WPARAM, + pub szDeviceClass: [u8; 40], + pub ucDeviceID: [u8; 40], + pub dwSize: u32, + pub dwSecure: u32, + pub szDestAddress: [u8; 80], + pub szAppName: [u8; 40], + pub szCalledParty: [u8; 40], + pub szComment: [u8; 80], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LINEREQMEDIACALL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LINEREQMEDIACALL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LINEREQMEDIACALLW { + pub hWnd: super::super::Foundation::HWND, + pub wRequestID: super::super::Foundation::WPARAM, + pub szDeviceClass: [u16; 40], + pub ucDeviceID: [u8; 40], + pub dwSize: u32, + pub dwSecure: u32, + pub szDestAddress: [u16; 80], + pub szAppName: [u16; 40], + pub szCalledParty: [u16; 40], + pub szComment: [u16; 80], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LINEREQMEDIACALLW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LINEREQMEDIACALLW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINETERMCAPS { + pub dwTermDev: u32, + pub dwTermModes: u32, + pub dwTermSharing: u32, +} +impl ::core::marker::Copy for LINETERMCAPS {} +impl ::core::clone::Clone for LINETERMCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINETRANSLATECAPS { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwNumLocations: u32, + pub dwLocationListSize: u32, + pub dwLocationListOffset: u32, + pub dwCurrentLocationID: u32, + pub dwNumCards: u32, + pub dwCardListSize: u32, + pub dwCardListOffset: u32, + pub dwCurrentPreferredCardID: u32, +} +impl ::core::marker::Copy for LINETRANSLATECAPS {} +impl ::core::clone::Clone for LINETRANSLATECAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LINETRANSLATEOUTPUT { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwDialableStringSize: u32, + pub dwDialableStringOffset: u32, + pub dwDisplayableStringSize: u32, + pub dwDisplayableStringOffset: u32, + pub dwCurrentCountry: u32, + pub dwDestCountry: u32, + pub dwTranslateResults: u32, +} +impl ::core::marker::Copy for LINETRANSLATEOUTPUT {} +impl ::core::clone::Clone for LINETRANSLATEOUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MSP_EVENT_INFO { + pub dwSize: u32, + pub Event: MSP_EVENT, + pub hCall: *mut i32, + pub Anonymous: MSP_EVENT_INFO_0, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MSP_EVENT_INFO {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MSP_EVENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union MSP_EVENT_INFO_0 { + pub MSP_ADDRESS_EVENT_INFO: MSP_EVENT_INFO_0_0, + pub MSP_CALL_EVENT_INFO: MSP_EVENT_INFO_0_2, + pub MSP_TSP_DATA: MSP_EVENT_INFO_0_6, + pub MSP_PRIVATE_EVENT_INFO: MSP_EVENT_INFO_0_4, + pub MSP_FILE_TERMINAL_EVENT_INFO: MSP_EVENT_INFO_0_3, + pub MSP_ASR_TERMINAL_EVENT_INFO: MSP_EVENT_INFO_0_1, + pub MSP_TTS_TERMINAL_EVENT_INFO: MSP_EVENT_INFO_0_7, + pub MSP_TONE_TERMINAL_EVENT_INFO: MSP_EVENT_INFO_0_5, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MSP_EVENT_INFO_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MSP_EVENT_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MSP_EVENT_INFO_0_0 { + pub Type: MSP_ADDRESS_EVENT, + pub pTerminal: ITTerminal, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MSP_EVENT_INFO_0_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MSP_EVENT_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MSP_EVENT_INFO_0_1 { + pub pASRTerminal: ITTerminal, + pub hrErrorCode: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MSP_EVENT_INFO_0_1 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MSP_EVENT_INFO_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MSP_EVENT_INFO_0_2 { + pub Type: MSP_CALL_EVENT, + pub Cause: MSP_CALL_EVENT_CAUSE, + pub pStream: ITStream, + pub pTerminal: ITTerminal, + pub hrError: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MSP_EVENT_INFO_0_2 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MSP_EVENT_INFO_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MSP_EVENT_INFO_0_3 { + pub pParentFileTerminal: ITTerminal, + pub pFileTrack: ITFileTrack, + pub TerminalMediaState: TERMINAL_MEDIA_STATE, + pub ftecEventCause: FT_STATE_EVENT_CAUSE, + pub hrErrorCode: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MSP_EVENT_INFO_0_3 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MSP_EVENT_INFO_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MSP_EVENT_INFO_0_4 { + pub pEvent: super::super::System::Com::IDispatch, + pub lEventCode: i32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MSP_EVENT_INFO_0_4 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MSP_EVENT_INFO_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MSP_EVENT_INFO_0_5 { + pub pToneTerminal: ITTerminal, + pub hrErrorCode: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MSP_EVENT_INFO_0_5 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MSP_EVENT_INFO_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MSP_EVENT_INFO_0_6 { + pub dwBufferSize: u32, + pub pBuffer: [u8; 1], +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MSP_EVENT_INFO_0_6 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MSP_EVENT_INFO_0_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MSP_EVENT_INFO_0_7 { + pub pTTSTerminal: ITTerminal, + pub hrErrorCode: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MSP_EVENT_INFO_0_7 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MSP_EVENT_INFO_0_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NSID { + pub dwSize: u32, + pub uchType: [u8; 16], + pub xtype: u32, + pub lTime: i32, + pub address: NSID_0, +} +impl ::core::marker::Copy for NSID {} +impl ::core::clone::Clone for NSID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NSID_0 { + pub alias: ADDRALIAS, + pub rgchInterNet: [u8; 1], +} +impl ::core::marker::Copy for NSID_0 {} +impl ::core::clone::Clone for NSID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PHONEBUTTONINFO { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwButtonMode: u32, + pub dwButtonFunction: u32, + pub dwButtonTextSize: u32, + pub dwButtonTextOffset: u32, + pub dwDevSpecificSize: u32, + pub dwDevSpecificOffset: u32, + pub dwButtonState: u32, +} +impl ::core::marker::Copy for PHONEBUTTONINFO {} +impl ::core::clone::Clone for PHONEBUTTONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PHONECAPS { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwProviderInfoSize: u32, + pub dwProviderInfoOffset: u32, + pub dwPhoneInfoSize: u32, + pub dwPhoneInfoOffset: u32, + pub dwPermanentPhoneID: u32, + pub dwPhoneNameSize: u32, + pub dwPhoneNameOffset: u32, + pub dwStringFormat: u32, + pub dwPhoneStates: u32, + pub dwHookSwitchDevs: u32, + pub dwHandsetHookSwitchModes: u32, + pub dwSpeakerHookSwitchModes: u32, + pub dwHeadsetHookSwitchModes: u32, + pub dwVolumeFlags: u32, + pub dwGainFlags: u32, + pub dwDisplayNumRows: u32, + pub dwDisplayNumColumns: u32, + pub dwNumRingModes: u32, + pub dwNumButtonLamps: u32, + pub dwButtonModesSize: u32, + pub dwButtonModesOffset: u32, + pub dwButtonFunctionsSize: u32, + pub dwButtonFunctionsOffset: u32, + pub dwLampModesSize: u32, + pub dwLampModesOffset: u32, + pub dwNumSetData: u32, + pub dwSetDataSize: u32, + pub dwSetDataOffset: u32, + pub dwNumGetData: u32, + pub dwGetDataSize: u32, + pub dwGetDataOffset: u32, + pub dwDevSpecificSize: u32, + pub dwDevSpecificOffset: u32, + pub dwDeviceClassesSize: u32, + pub dwDeviceClassesOffset: u32, + pub dwPhoneFeatures: u32, + pub dwSettableHandsetHookSwitchModes: u32, + pub dwSettableSpeakerHookSwitchModes: u32, + pub dwSettableHeadsetHookSwitchModes: u32, + pub dwMonitoredHandsetHookSwitchModes: u32, + pub dwMonitoredSpeakerHookSwitchModes: u32, + pub dwMonitoredHeadsetHookSwitchModes: u32, + pub PermanentPhoneGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for PHONECAPS {} +impl ::core::clone::Clone for PHONECAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PHONEEXTENSIONID { + pub dwExtensionID0: u32, + pub dwExtensionID1: u32, + pub dwExtensionID2: u32, + pub dwExtensionID3: u32, +} +impl ::core::marker::Copy for PHONEEXTENSIONID {} +impl ::core::clone::Clone for PHONEEXTENSIONID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PHONEINITIALIZEEXPARAMS { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwOptions: u32, + pub Handles: PHONEINITIALIZEEXPARAMS_0, + pub dwCompletionKey: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PHONEINITIALIZEEXPARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PHONEINITIALIZEEXPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union PHONEINITIALIZEEXPARAMS_0 { + pub hEvent: super::super::Foundation::HANDLE, + pub hCompletionPort: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PHONEINITIALIZEEXPARAMS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PHONEINITIALIZEEXPARAMS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PHONEMESSAGE { + pub hDevice: u32, + pub dwMessageID: u32, + pub dwCallbackInstance: usize, + pub dwParam1: usize, + pub dwParam2: usize, + pub dwParam3: usize, +} +impl ::core::marker::Copy for PHONEMESSAGE {} +impl ::core::clone::Clone for PHONEMESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PHONESTATUS { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwStatusFlags: u32, + pub dwNumOwners: u32, + pub dwNumMonitors: u32, + pub dwRingMode: u32, + pub dwRingVolume: u32, + pub dwHandsetHookSwitchMode: u32, + pub dwHandsetVolume: u32, + pub dwHandsetGain: u32, + pub dwSpeakerHookSwitchMode: u32, + pub dwSpeakerVolume: u32, + pub dwSpeakerGain: u32, + pub dwHeadsetHookSwitchMode: u32, + pub dwHeadsetVolume: u32, + pub dwHeadsetGain: u32, + pub dwDisplaySize: u32, + pub dwDisplayOffset: u32, + pub dwLampModesSize: u32, + pub dwLampModesOffset: u32, + pub dwOwnerNameSize: u32, + pub dwOwnerNameOffset: u32, + pub dwDevSpecificSize: u32, + pub dwDevSpecificOffset: u32, + pub dwPhoneFeatures: u32, +} +impl ::core::marker::Copy for PHONESTATUS {} +impl ::core::clone::Clone for PHONESTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct RENDDATA { + pub atyp: u16, + pub ulPosition: u32, + pub dxWidth: u16, + pub dyHeight: u16, + pub dwFlags: u32, +} +impl ::core::marker::Copy for RENDDATA {} +impl ::core::clone::Clone for RENDDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STnefProblem { + pub ulComponent: u32, + pub ulAttribute: u32, + pub ulPropTag: u32, + pub scode: i32, +} +impl ::core::marker::Copy for STnefProblem {} +impl ::core::clone::Clone for STnefProblem { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STnefProblemArray { + pub cProblem: u32, + pub aProblem: [STnefProblem; 1], +} +impl ::core::marker::Copy for STnefProblemArray {} +impl ::core::clone::Clone for STnefProblemArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TAPI_CUSTOMTONE { + pub dwFrequency: u32, + pub dwCadenceOn: u32, + pub dwCadenceOff: u32, + pub dwVolume: u32, +} +impl ::core::marker::Copy for TAPI_CUSTOMTONE {} +impl ::core::clone::Clone for TAPI_CUSTOMTONE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TAPI_DETECTTONE { + pub dwAppSpecific: u32, + pub dwDuration: u32, + pub dwFrequency1: u32, + pub dwFrequency2: u32, + pub dwFrequency3: u32, +} +impl ::core::marker::Copy for TAPI_DETECTTONE {} +impl ::core::clone::Clone for TAPI_DETECTTONE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRP { + pub trpid: u16, + pub cbgrtrp: u16, + pub cch: u16, + pub cbRgb: u16, +} +impl ::core::marker::Copy for TRP {} +impl ::core::clone::Clone for TRP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TUISPICREATEDIALOGINSTANCEPARAMS { + pub dwRequestID: u32, + pub hdDlgInst: HDRVDIALOGINSTANCE, + pub htDlgInst: u32, + pub lpszUIDLLName: ::windows_sys::core::PCWSTR, + pub lpParams: *mut ::core::ffi::c_void, + pub dwSize: u32, +} +impl ::core::marker::Copy for TUISPICREATEDIALOGINSTANCEPARAMS {} +impl ::core::clone::Clone for TUISPICREATEDIALOGINSTANCEPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct VARSTRING { + pub dwTotalSize: u32, + pub dwNeededSize: u32, + pub dwUsedSize: u32, + pub dwStringFormat: u32, + pub dwStringSize: u32, + pub dwStringOffset: u32, +} +impl ::core::marker::Copy for VARSTRING {} +impl ::core::clone::Clone for VARSTRING { + fn clone(&self) -> Self { + *self + } +} +pub type ASYNC_COMPLETION = ::core::option::Option ()>; +pub type LINECALLBACK = ::core::option::Option ()>; +pub type LINEEVENT = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub type LPGETTNEFSTREAMCODEPAGE = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_System_AddressBook\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_System_AddressBook", feature = "Win32_System_Com"))] +pub type LPOPENTNEFSTREAM = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_System_AddressBook\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_System_AddressBook", feature = "Win32_System_Com"))] +pub type LPOPENTNEFSTREAMEX = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PHONECALLBACK = ::core::option::Option ()>; +pub type PHONEEVENT = ::core::option::Option ()>; +pub type TUISPIDLLCALLBACK = ::core::option::Option i32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Usb/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Usb/mod.rs new file mode 100644 index 000000000..a898d81a7 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/Usb/mod.rs @@ -0,0 +1,3981 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_AbortPipe(interfacehandle : WINUSB_INTERFACE_HANDLE, pipeid : u8) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WinUsb_ControlTransfer(interfacehandle : WINUSB_INTERFACE_HANDLE, setuppacket : WINUSB_SETUP_PACKET, buffer : *mut u8, bufferlength : u32, lengthtransferred : *mut u32, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_FlushPipe(interfacehandle : WINUSB_INTERFACE_HANDLE, pipeid : u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_Free(interfacehandle : WINUSB_INTERFACE_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_GetAdjustedFrameNumber(currentframenumber : *mut u32, timestamp : i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_GetAssociatedInterface(interfacehandle : WINUSB_INTERFACE_HANDLE, associatedinterfaceindex : u8, associatedinterfacehandle : *mut WINUSB_INTERFACE_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_GetCurrentAlternateSetting(interfacehandle : WINUSB_INTERFACE_HANDLE, settingnumber : *mut u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_GetCurrentFrameNumber(interfacehandle : WINUSB_INTERFACE_HANDLE, currentframenumber : *mut u32, timestamp : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_GetCurrentFrameNumberAndQpc(interfacehandle : WINUSB_INTERFACE_HANDLE, frameqpcinfo : *const USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_GetDescriptor(interfacehandle : WINUSB_INTERFACE_HANDLE, descriptortype : u8, index : u8, languageid : u16, buffer : *mut u8, bufferlength : u32, lengthtransferred : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WinUsb_GetOverlappedResult(interfacehandle : WINUSB_INTERFACE_HANDLE, lpoverlapped : *const super::super::System::IO:: OVERLAPPED, lpnumberofbytestransferred : *mut u32, bwait : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_GetPipePolicy(interfacehandle : WINUSB_INTERFACE_HANDLE, pipeid : u8, policytype : WINUSB_PIPE_POLICY, valuelength : *mut u32, value : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_GetPowerPolicy(interfacehandle : WINUSB_INTERFACE_HANDLE, policytype : WINUSB_POWER_POLICY, valuelength : *mut u32, value : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_Initialize(devicehandle : super::super::Foundation:: HANDLE, interfacehandle : *mut WINUSB_INTERFACE_HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winusb.dll" "system" fn WinUsb_ParseConfigurationDescriptor(configurationdescriptor : *const USB_CONFIGURATION_DESCRIPTOR, startposition : *const ::core::ffi::c_void, interfacenumber : i32, alternatesetting : i32, interfaceclass : i32, interfacesubclass : i32, interfaceprotocol : i32) -> *mut USB_INTERFACE_DESCRIPTOR); +::windows_targets::link!("winusb.dll" "system" fn WinUsb_ParseDescriptors(descriptorbuffer : *const ::core::ffi::c_void, totallength : u32, startposition : *const ::core::ffi::c_void, descriptortype : i32) -> *mut USB_COMMON_DESCRIPTOR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_QueryDeviceInformation(interfacehandle : WINUSB_INTERFACE_HANDLE, informationtype : u32, bufferlength : *mut u32, buffer : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_QueryInterfaceSettings(interfacehandle : WINUSB_INTERFACE_HANDLE, alternateinterfacenumber : u8, usbaltinterfacedescriptor : *mut USB_INTERFACE_DESCRIPTOR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_QueryPipe(interfacehandle : WINUSB_INTERFACE_HANDLE, alternateinterfacenumber : u8, pipeindex : u8, pipeinformation : *mut WINUSB_PIPE_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_QueryPipeEx(interfacehandle : WINUSB_INTERFACE_HANDLE, alternatesettingnumber : u8, pipeindex : u8, pipeinformationex : *mut WINUSB_PIPE_INFORMATION_EX) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WinUsb_ReadIsochPipe(bufferhandle : *const ::core::ffi::c_void, offset : u32, length : u32, framenumber : *mut u32, numberofpackets : u32, isopacketdescriptors : *mut USBD_ISO_PACKET_DESCRIPTOR, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WinUsb_ReadIsochPipeAsap(bufferhandle : *const ::core::ffi::c_void, offset : u32, length : u32, continuestream : super::super::Foundation:: BOOL, numberofpackets : u32, isopacketdescriptors : *mut USBD_ISO_PACKET_DESCRIPTOR, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WinUsb_ReadPipe(interfacehandle : WINUSB_INTERFACE_HANDLE, pipeid : u8, buffer : *mut u8, bufferlength : u32, lengthtransferred : *mut u32, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_RegisterIsochBuffer(interfacehandle : WINUSB_INTERFACE_HANDLE, pipeid : u8, buffer : *mut u8, bufferlength : u32, isochbufferhandle : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_ResetPipe(interfacehandle : WINUSB_INTERFACE_HANDLE, pipeid : u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_SetCurrentAlternateSetting(interfacehandle : WINUSB_INTERFACE_HANDLE, settingnumber : u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_SetPipePolicy(interfacehandle : WINUSB_INTERFACE_HANDLE, pipeid : u8, policytype : WINUSB_PIPE_POLICY, valuelength : u32, value : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_SetPowerPolicy(interfacehandle : WINUSB_INTERFACE_HANDLE, policytype : WINUSB_POWER_POLICY, valuelength : u32, value : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_StartTrackingForTimeSync(interfacehandle : WINUSB_INTERFACE_HANDLE, starttrackinginfo : *const USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_StopTrackingForTimeSync(interfacehandle : WINUSB_INTERFACE_HANDLE, stoptrackinginfo : *const USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinUsb_UnregisterIsochBuffer(isochbufferhandle : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WinUsb_WriteIsochPipe(bufferhandle : *const ::core::ffi::c_void, offset : u32, length : u32, framenumber : *mut u32, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WinUsb_WriteIsochPipeAsap(bufferhandle : *const ::core::ffi::c_void, offset : u32, length : u32, continuestream : super::super::Foundation:: BOOL, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("winusb.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WinUsb_WritePipe(interfacehandle : WINUSB_INTERFACE_HANDLE, pipeid : u8, buffer : *const u8, bufferlength : u32, lengthtransferred : *mut u32, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +pub const ALLOW_PARTIAL_READS: WINUSB_PIPE_POLICY = 5u32; +pub const ALL_PIPE: PIPE_TYPE = 3i32; +pub const AUTO_CLEAR_STALL: WINUSB_PIPE_POLICY = 2u32; +pub const AUTO_FLUSH: WINUSB_PIPE_POLICY = 6u32; +pub const AUTO_SUSPEND: WINUSB_POWER_POLICY = 129u32; +pub const AcquireBusInfo: USB_NOTIFICATION_TYPE = 5i32; +pub const AcquireControllerName: USB_NOTIFICATION_TYPE = 7i32; +pub const AcquireHubName: USB_NOTIFICATION_TYPE = 6i32; +pub const BMREQUEST_CLASS: u32 = 1u32; +pub const BMREQUEST_DEVICE_TO_HOST: u32 = 1u32; +pub const BMREQUEST_HOST_TO_DEVICE: u32 = 0u32; +pub const BMREQUEST_STANDARD: u32 = 0u32; +pub const BMREQUEST_TO_DEVICE: u32 = 0u32; +pub const BMREQUEST_TO_ENDPOINT: u32 = 2u32; +pub const BMREQUEST_TO_INTERFACE: u32 = 1u32; +pub const BMREQUEST_TO_OTHER: u32 = 3u32; +pub const BMREQUEST_VENDOR: u32 = 2u32; +pub const BULKIN_FLAG: u32 = 128u32; +pub const CompositeDevice: USB_WMI_DEVICE_NODE_TYPE = 2i32; +pub const DEVICE_SPEED: u32 = 1u32; +pub const DeviceCausedOvercurrent: USB_CONNECTION_STATUS = 4i32; +pub const DeviceConnected: USB_CONNECTION_STATUS = 1i32; +pub const DeviceEnumerating: USB_CONNECTION_STATUS = 9i32; +pub const DeviceFailedEnumeration: USB_CONNECTION_STATUS = 2i32; +pub const DeviceGeneralFailure: USB_CONNECTION_STATUS = 3i32; +pub const DeviceHubNestedTooDeeply: USB_CONNECTION_STATUS = 7i32; +pub const DeviceInLegacyHub: USB_CONNECTION_STATUS = 8i32; +pub const DeviceNotEnoughBandwidth: USB_CONNECTION_STATUS = 6i32; +pub const DeviceNotEnoughPower: USB_CONNECTION_STATUS = 5i32; +pub const DeviceReset: USB_CONNECTION_STATUS = 10i32; +pub const EHCI_Generic: USB_CONTROLLER_FLAVOR = 1000i32; +pub const EHCI_Intel_Medfield: USB_CONTROLLER_FLAVOR = 5001i32; +pub const EHCI_Lucent: USB_CONTROLLER_FLAVOR = 3000i32; +pub const EHCI_NEC: USB_CONTROLLER_FLAVOR = 2000i32; +pub const EHCI_NVIDIA_Tegra2: USB_CONTROLLER_FLAVOR = 4000i32; +pub const EHCI_NVIDIA_Tegra3: USB_CONTROLLER_FLAVOR = 4001i32; +pub const EVENT_PIPE: PIPE_TYPE = 0i32; +pub const EnumerationFailure: USB_NOTIFICATION_TYPE = 0i32; +pub const FILE_DEVICE_USB: u32 = 34u32; +pub const FILE_DEVICE_USB_SCAN: u32 = 32768u32; +pub const FullSpeed: u32 = 2u32; +pub const GUID_DEVINTERFACE_USB_BILLBOARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5e9adaef_f879_473f_b807_4e5ea77d1b1c); +pub const GUID_DEVINTERFACE_USB_DEVICE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa5dcbf10_6530_11d2_901f_00c04fb951ed); +pub const GUID_DEVINTERFACE_USB_HOST_CONTROLLER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3abf6f2d_71c4_462a_8a92_1e6861e6af27); +pub const GUID_DEVINTERFACE_USB_HUB: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf18a0e88_c30c_11d0_8815_00a0c906bed8); +pub const GUID_USB_MSOS20_PLATFORM_CAPABILITY_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd8dd60df_4589_4cc7_9cd2_659d9e648a9f); +pub const GUID_USB_PERFORMANCE_TRACING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd5de77a6_6ae9_425c_b1e2_f5615fd348a9); +pub const GUID_USB_TRANSFER_TRACING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x681eb8aa_403d_452c_9f8a_f0616fac9540); +pub const GUID_USB_WMI_DEVICE_PERF_INFO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66c1aa3c_499f_49a0_a9a5_61e2359f6407); +pub const GUID_USB_WMI_NODE_INFO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9c179357_dc7a_4f41_b66b_323b9ddcb5b1); +pub const GUID_USB_WMI_STD_DATA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4e623b20_cb14_11d1_b331_00a0c959bbd2); +pub const GUID_USB_WMI_STD_NOTIFICATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4e623b20_cb14_11d1_b331_00a0c959bbd2); +pub const GUID_USB_WMI_SURPRISE_REMOVAL_NOTIFICATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9bbbf831_a2f2_43b4_96d1_86944b5914b3); +pub const GUID_USB_WMI_TRACING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3a61881b_b4e6_4bf9_ae0f_3cd8f394e52f); +pub const HCD_DIAGNOSTIC_MODE_OFF: u32 = 257u32; +pub const HCD_DIAGNOSTIC_MODE_ON: u32 = 256u32; +pub const HCD_DISABLE_PORT: u32 = 268u32; +pub const HCD_ENABLE_PORT: u32 = 269u32; +pub const HCD_GET_DRIVERKEY_NAME: u32 = 265u32; +pub const HCD_GET_ROOT_HUB_NAME: u32 = 258u32; +pub const HCD_GET_STATS_1: u32 = 255u32; +pub const HCD_GET_STATS_2: u32 = 266u32; +pub const HCD_TRACE_READ_REQUEST: u32 = 275u32; +pub const HCD_USER_REQUEST: u32 = 270u32; +pub const HighSpeed: u32 = 3u32; +pub const HubDevice: USB_WMI_DEVICE_NODE_TYPE = 1i32; +pub const HubNestedTooDeeply: USB_NOTIFICATION_TYPE = 10i32; +pub const HubOvercurrent: USB_NOTIFICATION_TYPE = 8i32; +pub const HubPowerChange: USB_NOTIFICATION_TYPE = 9i32; +pub const IGNORE_SHORT_PACKETS: WINUSB_PIPE_POLICY = 4u32; +pub const IOCTL_ABORT_PIPE: u32 = 2147491844u32; +pub const IOCTL_CANCEL_IO: u32 = 2147491844u32; +pub const IOCTL_GENERICUSBFN_ACTIVATE_USB_BUS: u32 = 2277420u32; +pub const IOCTL_GENERICUSBFN_BUS_EVENT_NOTIFICATION: u32 = 2277430u32; +pub const IOCTL_GENERICUSBFN_CONTROL_STATUS_HANDSHAKE_IN: u32 = 2277400u32; +pub const IOCTL_GENERICUSBFN_CONTROL_STATUS_HANDSHAKE_OUT: u32 = 2277404u32; +pub const IOCTL_GENERICUSBFN_DEACTIVATE_USB_BUS: u32 = 2277424u32; +pub const IOCTL_GENERICUSBFN_GET_CLASS_INFO: u32 = 2277410u32; +pub const IOCTL_GENERICUSBFN_GET_CLASS_INFO_EX: u32 = 2277434u32; +pub const IOCTL_GENERICUSBFN_GET_INTERFACE_DESCRIPTOR_SET: u32 = 2277438u32; +pub const IOCTL_GENERICUSBFN_GET_PIPE_STATE: u32 = 2277414u32; +pub const IOCTL_GENERICUSBFN_REGISTER_USB_STRING: u32 = 2277441u32; +pub const IOCTL_GENERICUSBFN_SET_PIPE_STATE: u32 = 2277417u32; +pub const IOCTL_GENERICUSBFN_TRANSFER_IN: u32 = 2277389u32; +pub const IOCTL_GENERICUSBFN_TRANSFER_IN_APPEND_ZERO_PKT: u32 = 2277393u32; +pub const IOCTL_GENERICUSBFN_TRANSFER_OUT: u32 = 2277398u32; +pub const IOCTL_GET_CHANNEL_ALIGN_RQST: u32 = 2147491860u32; +pub const IOCTL_GET_DEVICE_DESCRIPTOR: u32 = 2147491864u32; +pub const IOCTL_GET_HCD_DRIVERKEY_NAME: u32 = 2229284u32; +pub const IOCTL_GET_PIPE_CONFIGURATION: u32 = 2147491880u32; +pub const IOCTL_GET_USB_DESCRIPTOR: u32 = 2147491872u32; +pub const IOCTL_GET_VERSION: u32 = 2147491840u32; +pub const IOCTL_INDEX: u32 = 2048u32; +pub const IOCTL_INTERNAL_USB_CYCLE_PORT: u32 = 2228255u32; +pub const IOCTL_INTERNAL_USB_ENABLE_PORT: u32 = 2228247u32; +pub const IOCTL_INTERNAL_USB_FAIL_GET_STATUS_FROM_DEVICE: u32 = 2229347u32; +pub const IOCTL_INTERNAL_USB_GET_BUSGUID_INFO: u32 = 2229288u32; +pub const IOCTL_INTERNAL_USB_GET_BUS_INFO: u32 = 2229280u32; +pub const IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME: u32 = 2229284u32; +pub const IOCTL_INTERNAL_USB_GET_DEVICE_CONFIG_INFO: u32 = 2229327u32; +pub const IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE: u32 = 2229299u32; +pub const IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE_EX: u32 = 2229303u32; +pub const IOCTL_INTERNAL_USB_GET_HUB_COUNT: u32 = 2228251u32; +pub const IOCTL_INTERNAL_USB_GET_HUB_NAME: u32 = 2228256u32; +pub const IOCTL_INTERNAL_USB_GET_PARENT_HUB_INFO: u32 = 2229292u32; +pub const IOCTL_INTERNAL_USB_GET_PORT_STATUS: u32 = 2228243u32; +pub const IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO: u32 = 2228239u32; +pub const IOCTL_INTERNAL_USB_GET_TOPOLOGY_ADDRESS: u32 = 2229311u32; +pub const IOCTL_INTERNAL_USB_GET_TT_DEVICE_HANDLE: u32 = 2229307u32; +pub const IOCTL_INTERNAL_USB_NOTIFY_IDLE_READY: u32 = 2229315u32; +pub const IOCTL_INTERNAL_USB_RECORD_FAILURE: u32 = 2228267u32; +pub const IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE: u32 = 4784131u32; +pub const IOCTL_INTERNAL_USB_REQUEST_REMOTE_WAKE_NOTIFICATION: u32 = 4784139u32; +pub const IOCTL_INTERNAL_USB_REQ_GLOBAL_RESUME: u32 = 2229323u32; +pub const IOCTL_INTERNAL_USB_REQ_GLOBAL_SUSPEND: u32 = 2229319u32; +pub const IOCTL_INTERNAL_USB_RESET_PORT: u32 = 2228231u32; +pub const IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION: u32 = 2228263u32; +pub const IOCTL_INTERNAL_USB_SUBMIT_URB: u32 = 2228227u32; +pub const IOCTL_INTERNAL_USB_UNREGISTER_COMPOSITE_DEVICE: u32 = 4784135u32; +pub const IOCTL_READ_REGISTERS: u32 = 2147491852u32; +pub const IOCTL_RESET_PIPE: u32 = 2147491868u32; +pub const IOCTL_SEND_USB_REQUEST: u32 = 2147491876u32; +pub const IOCTL_SET_TIMEOUT: u32 = 2147491884u32; +pub const IOCTL_USB_DIAGNOSTIC_MODE_OFF: u32 = 2229252u32; +pub const IOCTL_USB_DIAGNOSTIC_MODE_ON: u32 = 2229248u32; +pub const IOCTL_USB_DIAG_IGNORE_HUBS_OFF: u32 = 2229276u32; +pub const IOCTL_USB_DIAG_IGNORE_HUBS_ON: u32 = 2229272u32; +pub const IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION: u32 = 2229264u32; +pub const IOCTL_USB_GET_DEVICE_CHARACTERISTICS: u32 = 2229376u32; +pub const IOCTL_USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC: u32 = 2229368u32; +pub const IOCTL_USB_GET_HUB_CAPABILITIES: u32 = 2229308u32; +pub const IOCTL_USB_GET_HUB_CAPABILITIES_EX: u32 = 2229328u32; +pub const IOCTL_USB_GET_HUB_INFORMATION_EX: u32 = 2229332u32; +pub const IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES: u32 = 2229312u32; +pub const IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME: u32 = 2229280u32; +pub const IOCTL_USB_GET_NODE_CONNECTION_INFORMATION: u32 = 2229260u32; +pub const IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX: u32 = 2229320u32; +pub const IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2: u32 = 2229340u32; +pub const IOCTL_USB_GET_NODE_CONNECTION_NAME: u32 = 2229268u32; +pub const IOCTL_USB_GET_NODE_INFORMATION: u32 = 2229256u32; +pub const IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES: u32 = 2229336u32; +pub const IOCTL_USB_GET_ROOT_HUB_NAME: u32 = 2229256u32; +pub const IOCTL_USB_GET_TRANSPORT_CHARACTERISTICS: u32 = 2229348u32; +pub const IOCTL_USB_HCD_DISABLE_PORT: u32 = 2229296u32; +pub const IOCTL_USB_HCD_ENABLE_PORT: u32 = 2229300u32; +pub const IOCTL_USB_HCD_GET_STATS_1: u32 = 2229244u32; +pub const IOCTL_USB_HCD_GET_STATS_2: u32 = 2229288u32; +pub const IOCTL_USB_HUB_CYCLE_PORT: u32 = 2229316u32; +pub const IOCTL_USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE: u32 = 2229356u32; +pub const IOCTL_USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: u32 = 2229352u32; +pub const IOCTL_USB_RESET_HUB: u32 = 2229324u32; +pub const IOCTL_USB_START_TRACKING_FOR_TIME_SYNC: u32 = 2229364u32; +pub const IOCTL_USB_STOP_TRACKING_FOR_TIME_SYNC: u32 = 2229372u32; +pub const IOCTL_USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: u32 = 2229360u32; +pub const IOCTL_WAIT_ON_DEVICE_EVENT: u32 = 2147491848u32; +pub const IOCTL_WRITE_REGISTERS: u32 = 2147491856u32; +pub const InsufficentBandwidth: USB_NOTIFICATION_TYPE = 1i32; +pub const InsufficentPower: USB_NOTIFICATION_TYPE = 2i32; +pub const KREGMANUSBFNENUMPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\ManufacturingMode\\Current\\USBFN\\"); +pub const KREGUSBFNENUMPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\USBFN\\"); +pub const LowSpeed: u32 = 1u32; +pub const MAXIMUM_TRANSFER_SIZE: WINUSB_PIPE_POLICY = 8u32; +pub const MAXIMUM_USB_STRING_LENGTH: u32 = 255u32; +pub const MAX_ALTERNATE_NAME_LENGTH: u32 = 40u32; +pub const MAX_ASSOCIATION_NAME_LENGTH: u32 = 40u32; +pub const MAX_CONFIGURATION_NAME_LENGTH: u32 = 40u32; +pub const MAX_INTERFACE_NAME_LENGTH: u32 = 40u32; +pub const MAX_NUM_PIPES: u32 = 8u32; +pub const MAX_NUM_USBFN_ENDPOINTS: u32 = 15u32; +pub const MAX_SUPPORTED_CONFIGURATIONS: u32 = 12u32; +pub const MAX_USB_STRING_LENGTH: u32 = 255u32; +pub const MS_GENRE_DESCRIPTOR_INDEX: u32 = 1u32; +pub const MS_OS_FLAGS_CONTAINERID: u32 = 2u32; +pub const MS_OS_STRING_SIGNATURE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSFT100"); +pub const MS_POWER_DESCRIPTOR_INDEX: u32 = 2u32; +pub const ModernDeviceInLegacyHub: USB_NOTIFICATION_TYPE = 11i32; +pub const NoDeviceConnected: USB_CONNECTION_STATUS = 0i32; +pub const OHCI_Generic: USB_CONTROLLER_FLAVOR = 100i32; +pub const OHCI_Hydra: USB_CONTROLLER_FLAVOR = 101i32; +pub const OHCI_NEC: USB_CONTROLLER_FLAVOR = 102i32; +pub const OS_STRING_DESCRIPTOR_INDEX: u32 = 238u32; +pub const OverCurrent: USB_NOTIFICATION_TYPE = 3i32; +pub const PIPE_TRANSFER_TIMEOUT: WINUSB_PIPE_POLICY = 3u32; +pub const PORT_LINK_STATE_COMPLIANCE_MODE: u32 = 10u32; +pub const PORT_LINK_STATE_DISABLED: u32 = 4u32; +pub const PORT_LINK_STATE_HOT_RESET: u32 = 9u32; +pub const PORT_LINK_STATE_INACTIVE: u32 = 6u32; +pub const PORT_LINK_STATE_LOOPBACK: u32 = 11u32; +pub const PORT_LINK_STATE_POLLING: u32 = 7u32; +pub const PORT_LINK_STATE_RECOVERY: u32 = 8u32; +pub const PORT_LINK_STATE_RX_DETECT: u32 = 5u32; +pub const PORT_LINK_STATE_TEST_MODE: u32 = 11u32; +pub const PORT_LINK_STATE_U0: u32 = 0u32; +pub const PORT_LINK_STATE_U1: u32 = 1u32; +pub const PORT_LINK_STATE_U2: u32 = 2u32; +pub const PORT_LINK_STATE_U3: u32 = 3u32; +pub const RAW_IO: WINUSB_PIPE_POLICY = 7u32; +pub const READ_DATA_PIPE: PIPE_TYPE = 1i32; +pub const RESET_PIPE_ON_RESUME: WINUSB_PIPE_POLICY = 9u32; +pub const ResetOvercurrent: USB_NOTIFICATION_TYPE = 4i32; +pub const SHORT_PACKET_TERMINATE: WINUSB_PIPE_POLICY = 1u32; +pub const SUSPEND_DELAY: WINUSB_POWER_POLICY = 131u32; +pub const UHCI_Generic: USB_CONTROLLER_FLAVOR = 200i32; +pub const UHCI_Ich1: USB_CONTROLLER_FLAVOR = 205i32; +pub const UHCI_Ich2: USB_CONTROLLER_FLAVOR = 203i32; +pub const UHCI_Ich3m: USB_CONTROLLER_FLAVOR = 206i32; +pub const UHCI_Ich4: USB_CONTROLLER_FLAVOR = 207i32; +pub const UHCI_Ich5: USB_CONTROLLER_FLAVOR = 208i32; +pub const UHCI_Ich6: USB_CONTROLLER_FLAVOR = 209i32; +pub const UHCI_Intel: USB_CONTROLLER_FLAVOR = 249i32; +pub const UHCI_Piix3: USB_CONTROLLER_FLAVOR = 202i32; +pub const UHCI_Piix4: USB_CONTROLLER_FLAVOR = 201i32; +pub const UHCI_Reserved204: USB_CONTROLLER_FLAVOR = 204i32; +pub const UHCI_VIA: USB_CONTROLLER_FLAVOR = 250i32; +pub const UHCI_VIA_x01: USB_CONTROLLER_FLAVOR = 251i32; +pub const UHCI_VIA_x02: USB_CONTROLLER_FLAVOR = 252i32; +pub const UHCI_VIA_x03: USB_CONTROLLER_FLAVOR = 253i32; +pub const UHCI_VIA_x04: USB_CONTROLLER_FLAVOR = 254i32; +pub const UHCI_VIA_x0E_FIFO: USB_CONTROLLER_FLAVOR = 264i32; +pub const URB_FUNCTION_ABORT_PIPE: u32 = 2u32; +pub const URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER: u32 = 9u32; +pub const URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER_USING_CHAINED_MDL: u32 = 55u32; +pub const URB_FUNCTION_CLASS_DEVICE: u32 = 26u32; +pub const URB_FUNCTION_CLASS_ENDPOINT: u32 = 28u32; +pub const URB_FUNCTION_CLASS_INTERFACE: u32 = 27u32; +pub const URB_FUNCTION_CLASS_OTHER: u32 = 31u32; +pub const URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE: u32 = 16u32; +pub const URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT: u32 = 18u32; +pub const URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE: u32 = 17u32; +pub const URB_FUNCTION_CLEAR_FEATURE_TO_OTHER: u32 = 34u32; +pub const URB_FUNCTION_CLOSE_STATIC_STREAMS: u32 = 54u32; +pub const URB_FUNCTION_CONTROL_TRANSFER: u32 = 8u32; +pub const URB_FUNCTION_CONTROL_TRANSFER_EX: u32 = 50u32; +pub const URB_FUNCTION_GET_CONFIGURATION: u32 = 38u32; +pub const URB_FUNCTION_GET_CURRENT_FRAME_NUMBER: u32 = 7u32; +pub const URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE: u32 = 11u32; +pub const URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT: u32 = 36u32; +pub const URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE: u32 = 40u32; +pub const URB_FUNCTION_GET_FRAME_LENGTH: u32 = 5u32; +pub const URB_FUNCTION_GET_INTERFACE: u32 = 39u32; +pub const URB_FUNCTION_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS: u32 = 61u32; +pub const URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR: u32 = 42u32; +pub const URB_FUNCTION_GET_STATUS_FROM_DEVICE: u32 = 19u32; +pub const URB_FUNCTION_GET_STATUS_FROM_ENDPOINT: u32 = 21u32; +pub const URB_FUNCTION_GET_STATUS_FROM_INTERFACE: u32 = 20u32; +pub const URB_FUNCTION_GET_STATUS_FROM_OTHER: u32 = 33u32; +pub const URB_FUNCTION_ISOCH_TRANSFER: u32 = 10u32; +pub const URB_FUNCTION_ISOCH_TRANSFER_USING_CHAINED_MDL: u32 = 56u32; +pub const URB_FUNCTION_OPEN_STATIC_STREAMS: u32 = 53u32; +pub const URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL: u32 = 4u32; +pub const URB_FUNCTION_RESERVED_0X0016: u32 = 22u32; +pub const URB_FUNCTION_RESERVE_0X001D: u32 = 29u32; +pub const URB_FUNCTION_RESERVE_0X002B: u32 = 43u32; +pub const URB_FUNCTION_RESERVE_0X002C: u32 = 44u32; +pub const URB_FUNCTION_RESERVE_0X002D: u32 = 45u32; +pub const URB_FUNCTION_RESERVE_0X002E: u32 = 46u32; +pub const URB_FUNCTION_RESERVE_0X002F: u32 = 47u32; +pub const URB_FUNCTION_RESERVE_0X0033: u32 = 51u32; +pub const URB_FUNCTION_RESERVE_0X0034: u32 = 52u32; +pub const URB_FUNCTION_RESET_PIPE: u32 = 30u32; +pub const URB_FUNCTION_SELECT_CONFIGURATION: u32 = 0u32; +pub const URB_FUNCTION_SELECT_INTERFACE: u32 = 1u32; +pub const URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE: u32 = 12u32; +pub const URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT: u32 = 37u32; +pub const URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE: u32 = 41u32; +pub const URB_FUNCTION_SET_FEATURE_TO_DEVICE: u32 = 13u32; +pub const URB_FUNCTION_SET_FEATURE_TO_ENDPOINT: u32 = 15u32; +pub const URB_FUNCTION_SET_FEATURE_TO_INTERFACE: u32 = 14u32; +pub const URB_FUNCTION_SET_FEATURE_TO_OTHER: u32 = 35u32; +pub const URB_FUNCTION_SET_FRAME_LENGTH: u32 = 6u32; +pub const URB_FUNCTION_SYNC_CLEAR_STALL: u32 = 49u32; +pub const URB_FUNCTION_SYNC_RESET_PIPE: u32 = 48u32; +pub const URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL: u32 = 30u32; +pub const URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL: u32 = 3u32; +pub const URB_FUNCTION_VENDOR_DEVICE: u32 = 23u32; +pub const URB_FUNCTION_VENDOR_ENDPOINT: u32 = 25u32; +pub const URB_FUNCTION_VENDOR_INTERFACE: u32 = 24u32; +pub const URB_FUNCTION_VENDOR_OTHER: u32 = 32u32; +pub const URB_OPEN_STATIC_STREAMS_VERSION_100: u32 = 256u32; +pub const UREGMANUSBFNENUMPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\ManufacturingMode\\Current\\USBFN\\"); +pub const UREGUSBFNENUMPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\USBFN\\"); +pub const USBDI_VERSION: u32 = 1536u32; +pub const USBD_DEFAULT_MAXIMUM_TRANSFER_SIZE: u32 = 4294967295u32; +pub const USBD_DEFAULT_PIPE_TRANSFER: u32 = 8u32; +pub const USBD_ISO_START_FRAME_RANGE: u32 = 1024u32; +pub const USBD_PF_CHANGE_MAX_PACKET: u32 = 1u32; +pub const USBD_PF_ENABLE_RT_THREAD_ACCESS: u32 = 4u32; +pub const USBD_PF_HANDLES_SSP_HIGH_BANDWIDTH_ISOCH: u32 = 256u32; +pub const USBD_PF_INTERACTIVE_PRIORITY: u32 = 48u32; +pub const USBD_PF_MAP_ADD_TRANSFERS: u32 = 8u32; +pub const USBD_PF_PRIORITY_MASK: u32 = 240u32; +pub const USBD_PF_SHORT_PACKET_OPT: u32 = 2u32; +pub const USBD_PF_SSP_HIGH_BANDWIDTH_ISOCH: u32 = 65536u32; +pub const USBD_PF_VIDEO_PRIORITY: u32 = 16u32; +pub const USBD_PF_VOICE_PRIORITY: u32 = 32u32; +pub const USBD_PORT_CONNECTED: u32 = 2u32; +pub const USBD_PORT_ENABLED: u32 = 1u32; +pub const USBD_SHORT_TRANSFER_OK: u32 = 2u32; +pub const USBD_START_ISO_TRANSFER_ASAP: u32 = 4u32; +pub const USBD_TRANSFER_DIRECTION: u32 = 1u32; +pub const USBD_TRANSFER_DIRECTION_IN: u32 = 1u32; +pub const USBD_TRANSFER_DIRECTION_OUT: u32 = 0u32; +pub const USBFN_INTERRUPT_ENDPOINT_SIZE_NOT_UPDATEABLE_MASK: u32 = 128u32; +pub const USBSCAN_PIPE_BULK: RAW_PIPE_TYPE = 2i32; +pub const USBSCAN_PIPE_CONTROL: RAW_PIPE_TYPE = 0i32; +pub const USBSCAN_PIPE_INTERRUPT: RAW_PIPE_TYPE = 3i32; +pub const USBSCAN_PIPE_ISOCHRONOUS: RAW_PIPE_TYPE = 1i32; +pub const USBUSER_CLEAR_ROOTPORT_FEATURE: u32 = 536870918u32; +pub const USBUSER_GET_BANDWIDTH_INFORMATION: u32 = 5u32; +pub const USBUSER_GET_BUS_STATISTICS_0: u32 = 6u32; +pub const USBUSER_GET_CONTROLLER_DRIVER_KEY: u32 = 2u32; +pub const USBUSER_GET_CONTROLLER_INFO_0: u32 = 1u32; +pub const USBUSER_GET_POWER_STATE_MAP: u32 = 4u32; +pub const USBUSER_GET_ROOTHUB_SYMBOLIC_NAME: u32 = 7u32; +pub const USBUSER_GET_ROOTPORT_STATUS: u32 = 536870919u32; +pub const USBUSER_GET_USB2_HW_VERSION: u32 = 9u32; +pub const USBUSER_GET_USB_DRIVER_VERSION: u32 = 8u32; +pub const USBUSER_INVALID_REQUEST: u32 = 4294967280u32; +pub const USBUSER_OP_CLOSE_RAW_DEVICE: u32 = 536870915u32; +pub const USBUSER_OP_MASK_DEVONLY_API: u32 = 268435456u32; +pub const USBUSER_OP_MASK_HCTEST_API: u32 = 536870912u32; +pub const USBUSER_OP_OPEN_RAW_DEVICE: u32 = 536870914u32; +pub const USBUSER_OP_RAW_RESET_PORT: u32 = 536870913u32; +pub const USBUSER_OP_SEND_ONE_PACKET: u32 = 268435457u32; +pub const USBUSER_OP_SEND_RAW_COMMAND: u32 = 536870916u32; +pub const USBUSER_PASS_THRU: u32 = 3u32; +pub const USBUSER_SET_ROOTPORT_FEATURE: u32 = 536870917u32; +pub const USBUSER_USB_REFRESH_HCT_REG: u32 = 10u32; +pub const USBUSER_VERSION: u32 = 4u32; +pub const USB_20_ENDPOINT_TYPE_INTERRUPT_RESERVED_MASK: u32 = 252u32; +pub const USB_20_HUB_DESCRIPTOR_TYPE: u32 = 41u32; +pub const USB_30_ENDPOINT_TYPE_INTERRUPT_RESERVED_MASK: u32 = 204u32; +pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_MASK: u32 = 48u32; +pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_NOTIFICATION: u32 = 16u32; +pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_PERIODIC: u32 = 0u32; +pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_RESERVED10: u32 = 32u32; +pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_RESERVED11: u32 = 48u32; +pub const USB_30_HUB_DESCRIPTOR_TYPE: u32 = 42u32; +pub const USB_ALLOW_FIRMWARE_UPDATE: u32 = 1u32; +pub const USB_BOS_DESCRIPTOR_TYPE: u32 = 15u32; +pub const USB_CHARGING_POLICY_DEFAULT: u32 = 0u32; +pub const USB_CHARGING_POLICY_ICCHPF: u32 = 1u32; +pub const USB_CHARGING_POLICY_ICCLPF: u32 = 2u32; +pub const USB_CHARGING_POLICY_NO_POWER: u32 = 3u32; +pub const USB_CONFIGURATION_DESCRIPTOR_TYPE: u32 = 2u32; +pub const USB_CONFIG_BUS_POWERED: u32 = 128u32; +pub const USB_CONFIG_POWERED_MASK: u32 = 192u32; +pub const USB_CONFIG_POWER_DESCRIPTOR_TYPE: u32 = 7u32; +pub const USB_CONFIG_REMOTE_WAKEUP: u32 = 32u32; +pub const USB_CONFIG_RESERVED: u32 = 31u32; +pub const USB_CONFIG_SELF_POWERED: u32 = 64u32; +pub const USB_CYCLE_PORT: u32 = 7u32; +pub const USB_DEBUG_DESCRIPTOR_TYPE: u32 = 10u32; +pub const USB_DEFAULT_DEVICE_ADDRESS: u32 = 0u32; +pub const USB_DEFAULT_ENDPOINT_ADDRESS: u32 = 0u32; +pub const USB_DEFAULT_MAX_PACKET: u32 = 64u32; +pub const USB_DEVICE_CAPABILITY_BATTERY_INFO: u32 = 7u32; +pub const USB_DEVICE_CAPABILITY_BILLBOARD: u32 = 13u32; +pub const USB_DEVICE_CAPABILITY_CONTAINER_ID: u32 = 4u32; +pub const USB_DEVICE_CAPABILITY_DESCRIPTOR_TYPE: u32 = 16u32; +pub const USB_DEVICE_CAPABILITY_FIRMWARE_STATUS: u32 = 17u32; +pub const USB_DEVICE_CAPABILITY_MAX_U1_LATENCY: u32 = 10u32; +pub const USB_DEVICE_CAPABILITY_MAX_U2_LATENCY: u32 = 2047u32; +pub const USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT: u32 = 8u32; +pub const USB_DEVICE_CAPABILITY_PD_PROVIDER_PORT: u32 = 9u32; +pub const USB_DEVICE_CAPABILITY_PLATFORM: u32 = 5u32; +pub const USB_DEVICE_CAPABILITY_POWER_DELIVERY: u32 = 6u32; +pub const USB_DEVICE_CAPABILITY_PRECISION_TIME_MEASUREMENT: u32 = 11u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_DIR_RX: u32 = 0u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_DIR_TX: u32 = 1u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_BPS: u32 = 0u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_GBPS: u32 = 3u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_KBPS: u32 = 1u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_MBPS: u32 = 2u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_MODE_ASYMMETRIC: u32 = 1u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_MODE_SYMMETRIC: u32 = 0u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_PROTOCOL_SS: u32 = 0u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_PROTOCOL_SSP: u32 = 1u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB: u32 = 10u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEED_BMATTRIBUTES_LTM_CAPABLE: u32 = 2u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEED_BMATTRIBUTES_RESERVED_MASK: u32 = 253u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_FULL: u32 = 2u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_HIGH: u32 = 4u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_LOW: u32 = 1u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_RESERVED_MASK: u32 = 65520u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_SUPER: u32 = 8u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEED_U1_DEVICE_EXIT_MAX_VALUE: u32 = 10u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEED_U2_DEVICE_EXIT_MAX_VALUE: u32 = 2047u32; +pub const USB_DEVICE_CAPABILITY_SUPERSPEED_USB: u32 = 3u32; +pub const USB_DEVICE_CAPABILITY_USB20_EXTENSION: u32 = 2u32; +pub const USB_DEVICE_CAPABILITY_USB20_EXTENSION_BMATTRIBUTES_RESERVED_MASK: u32 = 4294901985u32; +pub const USB_DEVICE_CAPABILITY_WIRELESS_USB: u32 = 1u32; +pub const USB_DEVICE_CHARACTERISTICS_MAXIMUM_PATH_DELAYS_AVAILABLE: u32 = 1u32; +pub const USB_DEVICE_CHARACTERISTICS_VERSION_1: u32 = 1u32; +pub const USB_DEVICE_CLASS_APPLICATION_SPECIFIC: u32 = 254u32; +pub const USB_DEVICE_CLASS_AUDIO: u32 = 1u32; +pub const USB_DEVICE_CLASS_AUDIO_VIDEO: u32 = 16u32; +pub const USB_DEVICE_CLASS_BILLBOARD: u32 = 17u32; +pub const USB_DEVICE_CLASS_CDC_DATA: u32 = 10u32; +pub const USB_DEVICE_CLASS_COMMUNICATIONS: u32 = 2u32; +pub const USB_DEVICE_CLASS_CONTENT_SECURITY: u32 = 13u32; +pub const USB_DEVICE_CLASS_DIAGNOSTIC_DEVICE: u32 = 220u32; +pub const USB_DEVICE_CLASS_HUB: u32 = 9u32; +pub const USB_DEVICE_CLASS_HUMAN_INTERFACE: u32 = 3u32; +pub const USB_DEVICE_CLASS_IMAGE: u32 = 6u32; +pub const USB_DEVICE_CLASS_MISCELLANEOUS: u32 = 239u32; +pub const USB_DEVICE_CLASS_MONITOR: u32 = 4u32; +pub const USB_DEVICE_CLASS_PERSONAL_HEALTHCARE: u32 = 15u32; +pub const USB_DEVICE_CLASS_PHYSICAL_INTERFACE: u32 = 5u32; +pub const USB_DEVICE_CLASS_POWER: u32 = 6u32; +pub const USB_DEVICE_CLASS_PRINTER: u32 = 7u32; +pub const USB_DEVICE_CLASS_RESERVED: u32 = 0u32; +pub const USB_DEVICE_CLASS_SMART_CARD: u32 = 11u32; +pub const USB_DEVICE_CLASS_STORAGE: u32 = 8u32; +pub const USB_DEVICE_CLASS_VENDOR_SPECIFIC: u32 = 255u32; +pub const USB_DEVICE_CLASS_VIDEO: u32 = 14u32; +pub const USB_DEVICE_CLASS_WIRELESS_CONTROLLER: u32 = 224u32; +pub const USB_DEVICE_DESCRIPTOR_TYPE: u32 = 1u32; +pub const USB_DEVICE_FIRMWARE_HASH_LENGTH: u32 = 32u32; +pub const USB_DEVICE_QUALIFIER_DESCRIPTOR_TYPE: u32 = 6u32; +pub const USB_DIAG_IGNORE_HUBS_OFF: u32 = 263u32; +pub const USB_DIAG_IGNORE_HUBS_ON: u32 = 262u32; +pub const USB_DISALLOW_FIRMWARE_UPDATE: u32 = 0u32; +pub const USB_ENABLE_PORT: u32 = 5u32; +pub const USB_ENDPOINT_ADDRESS_MASK: u32 = 15u32; +pub const USB_ENDPOINT_DESCRIPTOR_TYPE: u32 = 5u32; +pub const USB_ENDPOINT_DIRECTION_MASK: u32 = 128u32; +pub const USB_ENDPOINT_SUPERSPEED_BULK_MAX_PACKET_SIZE: u32 = 1024u32; +pub const USB_ENDPOINT_SUPERSPEED_CONTROL_MAX_PACKET_SIZE: u32 = 512u32; +pub const USB_ENDPOINT_SUPERSPEED_INTERRUPT_MAX_PACKET_SIZE: u32 = 1024u32; +pub const USB_ENDPOINT_SUPERSPEED_ISO_MAX_PACKET_SIZE: u32 = 1024u32; +pub const USB_ENDPOINT_TYPE_BULK: u32 = 2u32; +pub const USB_ENDPOINT_TYPE_BULK_RESERVED_MASK: u32 = 252u32; +pub const USB_ENDPOINT_TYPE_CONTROL: u32 = 0u32; +pub const USB_ENDPOINT_TYPE_CONTROL_RESERVED_MASK: u32 = 252u32; +pub const USB_ENDPOINT_TYPE_INTERRUPT: u32 = 3u32; +pub const USB_ENDPOINT_TYPE_ISOCHRONOUS: u32 = 1u32; +pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_RESERVED_MASK: u32 = 192u32; +pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_ADAPTIVE: u32 = 8u32; +pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_ASYNCHRONOUS: u32 = 4u32; +pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_MASK: u32 = 12u32; +pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_NO_SYNCHRONIZATION: u32 = 0u32; +pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_SYNCHRONOUS: u32 = 12u32; +pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_DATA_ENDOINT: u32 = 0u32; +pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_FEEDBACK_ENDPOINT: u32 = 16u32; +pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_IMPLICIT_FEEDBACK_DATA_ENDPOINT: u32 = 32u32; +pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_MASK: u32 = 48u32; +pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_RESERVED: u32 = 48u32; +pub const USB_ENDPOINT_TYPE_MASK: u32 = 3u32; +pub const USB_FAIL_GET_STATUS: u32 = 280u32; +pub const USB_FEATURE_BATTERY_WAKE_MASK: u32 = 40u32; +pub const USB_FEATURE_CHARGING_POLICY: u32 = 54u32; +pub const USB_FEATURE_ENDPOINT_STALL: u32 = 0u32; +pub const USB_FEATURE_FUNCTION_SUSPEND: u32 = 0u32; +pub const USB_FEATURE_INTERFACE_POWER_D0: u32 = 2u32; +pub const USB_FEATURE_INTERFACE_POWER_D1: u32 = 3u32; +pub const USB_FEATURE_INTERFACE_POWER_D2: u32 = 4u32; +pub const USB_FEATURE_INTERFACE_POWER_D3: u32 = 5u32; +pub const USB_FEATURE_LDM_ENABLE: u32 = 53u32; +pub const USB_FEATURE_LTM_ENABLE: u32 = 50u32; +pub const USB_FEATURE_OS_IS_PD_AWARE: u32 = 41u32; +pub const USB_FEATURE_POLICY_MODE: u32 = 42u32; +pub const USB_FEATURE_REMOTE_WAKEUP: u32 = 1u32; +pub const USB_FEATURE_TEST_MODE: u32 = 2u32; +pub const USB_FEATURE_U1_ENABLE: u32 = 48u32; +pub const USB_FEATURE_U2_ENABLE: u32 = 49u32; +pub const USB_GETSTATUS_LTM_ENABLE: u32 = 16u32; +pub const USB_GETSTATUS_REMOTE_WAKEUP_ENABLED: u32 = 2u32; +pub const USB_GETSTATUS_SELF_POWERED: u32 = 1u32; +pub const USB_GETSTATUS_U1_ENABLE: u32 = 4u32; +pub const USB_GETSTATUS_U2_ENABLE: u32 = 8u32; +pub const USB_GET_BUSGUID_INFO: u32 = 266u32; +pub const USB_GET_BUS_INFO: u32 = 264u32; +pub const USB_GET_CONTROLLER_NAME: u32 = 265u32; +pub const USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION: u32 = 260u32; +pub const USB_GET_DEVICE_CHARACTERISTICS: u32 = 288u32; +pub const USB_GET_DEVICE_HANDLE: u32 = 268u32; +pub const USB_GET_DEVICE_HANDLE_EX: u32 = 269u32; +pub const USB_GET_FIRMWARE_ALLOWED_OR_DISALLOWED_STATE: u32 = 0u32; +pub const USB_GET_FIRMWARE_HASH: u32 = 1u32; +pub const USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC: u32 = 286u32; +pub const USB_GET_HUB_CAPABILITIES: u32 = 271u32; +pub const USB_GET_HUB_CAPABILITIES_EX: u32 = 276u32; +pub const USB_GET_HUB_CONFIG_INFO: u32 = 275u32; +pub const USB_GET_HUB_COUNT: u32 = 6u32; +pub const USB_GET_HUB_INFORMATION_EX: u32 = 277u32; +pub const USB_GET_HUB_NAME: u32 = 8u32; +pub const USB_GET_NODE_CONNECTION_ATTRIBUTES: u32 = 272u32; +pub const USB_GET_NODE_CONNECTION_DRIVERKEY_NAME: u32 = 264u32; +pub const USB_GET_NODE_CONNECTION_INFORMATION: u32 = 259u32; +pub const USB_GET_NODE_CONNECTION_INFORMATION_EX: u32 = 274u32; +pub const USB_GET_NODE_CONNECTION_INFORMATION_EX_V2: u32 = 279u32; +pub const USB_GET_NODE_CONNECTION_NAME: u32 = 261u32; +pub const USB_GET_NODE_INFORMATION: u32 = 258u32; +pub const USB_GET_PARENT_HUB_INFO: u32 = 267u32; +pub const USB_GET_PORT_CONNECTOR_PROPERTIES: u32 = 278u32; +pub const USB_GET_PORT_STATUS: u32 = 4u32; +pub const USB_GET_ROOTHUB_PDO: u32 = 3u32; +pub const USB_GET_TOPOLOGY_ADDRESS: u32 = 271u32; +pub const USB_GET_TRANSPORT_CHARACTERISTICS: u32 = 281u32; +pub const USB_GET_TT_DEVICE_HANDLE: u32 = 270u32; +pub const USB_HC_FEATURE_FLAG_PORT_POWER_SWITCHING: u32 = 1u32; +pub const USB_HC_FEATURE_FLAG_SEL_SUSPEND: u32 = 2u32; +pub const USB_HC_FEATURE_LEGACY_BIOS: u32 = 4u32; +pub const USB_HC_FEATURE_TIME_SYNC_API: u32 = 8u32; +pub const USB_HUB_CYCLE_PORT: u32 = 273u32; +pub const USB_HcGeneric: USB_CONTROLLER_FLAVOR = 0i32; +pub const USB_IDLE_NOTIFICATION: u32 = 9u32; +pub const USB_IDLE_NOTIFICATION_EX: u32 = 272u32; +pub const USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE: u32 = 11u32; +pub const USB_INTERFACE_DESCRIPTOR_TYPE: u32 = 4u32; +pub const USB_INTERFACE_POWER_DESCRIPTOR_TYPE: u32 = 8u32; +pub const USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE: u32 = 283u32; +pub const USB_OTG_DESCRIPTOR_TYPE: u32 = 9u32; +pub const USB_OTHER_SPEED_CONFIGURATION_DESCRIPTOR_TYPE: u32 = 7u32; +pub const USB_PACKETFLAG_ASYNC_IN: u32 = 8u32; +pub const USB_PACKETFLAG_ASYNC_OUT: u32 = 16u32; +pub const USB_PACKETFLAG_FULL_SPEED: u32 = 2u32; +pub const USB_PACKETFLAG_HIGH_SPEED: u32 = 4u32; +pub const USB_PACKETFLAG_ISO_IN: u32 = 32u32; +pub const USB_PACKETFLAG_ISO_OUT: u32 = 64u32; +pub const USB_PACKETFLAG_LOW_SPEED: u32 = 1u32; +pub const USB_PACKETFLAG_SETUP: u32 = 128u32; +pub const USB_PACKETFLAG_TOGGLE0: u32 = 256u32; +pub const USB_PACKETFLAG_TOGGLE1: u32 = 512u32; +pub const USB_PORTATTR_MINI_CONNECTOR: u32 = 4u32; +pub const USB_PORTATTR_NO_CONNECTOR: u32 = 1u32; +pub const USB_PORTATTR_NO_OVERCURRENT_UI: u32 = 33554432u32; +pub const USB_PORTATTR_OEM_CONNECTOR: u32 = 8u32; +pub const USB_PORTATTR_OWNED_BY_CC: u32 = 16777216u32; +pub const USB_PORTATTR_SHARED_USB2: u32 = 2u32; +pub const USB_PORT_STATUS_CONNECT: u32 = 1u32; +pub const USB_PORT_STATUS_ENABLE: u32 = 2u32; +pub const USB_PORT_STATUS_HIGH_SPEED: u32 = 1024u32; +pub const USB_PORT_STATUS_LOW_SPEED: u32 = 512u32; +pub const USB_PORT_STATUS_OVER_CURRENT: u32 = 8u32; +pub const USB_PORT_STATUS_POWER: u32 = 256u32; +pub const USB_PORT_STATUS_RESET: u32 = 16u32; +pub const USB_PORT_STATUS_SUSPEND: u32 = 4u32; +pub const USB_RECORD_FAILURE: u32 = 10u32; +pub const USB_REGISTER_COMPOSITE_DEVICE: u32 = 0u32; +pub const USB_REGISTER_FOR_TRANSPORT_BANDWIDTH_CHANGE: u32 = 2u32; +pub const USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: u32 = 282u32; +pub const USB_REGISTER_FOR_TRANSPORT_LATENCY_CHANGE: u32 = 1u32; +pub const USB_REQUEST_CLEAR_FEATURE: u32 = 1u32; +pub const USB_REQUEST_CLEAR_TT_BUFFER: u32 = 8u32; +pub const USB_REQUEST_GET_CONFIGURATION: u32 = 8u32; +pub const USB_REQUEST_GET_DESCRIPTOR: u32 = 6u32; +pub const USB_REQUEST_GET_FIRMWARE_STATUS: u32 = 26u32; +pub const USB_REQUEST_GET_INTERFACE: u32 = 10u32; +pub const USB_REQUEST_GET_PORT_ERR_COUNT: u32 = 13u32; +pub const USB_REQUEST_GET_STATE: u32 = 2u32; +pub const USB_REQUEST_GET_STATUS: u32 = 0u32; +pub const USB_REQUEST_GET_TT_STATE: u32 = 10u32; +pub const USB_REQUEST_ISOCH_DELAY: u32 = 49u32; +pub const USB_REQUEST_REMOTE_WAKE_NOTIFICATION: u32 = 2u32; +pub const USB_REQUEST_RESET_TT: u32 = 9u32; +pub const USB_REQUEST_SET_ADDRESS: u32 = 5u32; +pub const USB_REQUEST_SET_CONFIGURATION: u32 = 9u32; +pub const USB_REQUEST_SET_DESCRIPTOR: u32 = 7u32; +pub const USB_REQUEST_SET_FEATURE: u32 = 3u32; +pub const USB_REQUEST_SET_FIRMWARE_STATUS: u32 = 27u32; +pub const USB_REQUEST_SET_HUB_DEPTH: u32 = 12u32; +pub const USB_REQUEST_SET_INTERFACE: u32 = 11u32; +pub const USB_REQUEST_SET_SEL: u32 = 48u32; +pub const USB_REQUEST_STOP_TT: u32 = 11u32; +pub const USB_REQUEST_SYNC_FRAME: u32 = 12u32; +pub const USB_REQ_GLOBAL_RESUME: u32 = 274u32; +pub const USB_REQ_GLOBAL_SUSPEND: u32 = 273u32; +pub const USB_RESERVED_DESCRIPTOR_TYPE: u32 = 6u32; +pub const USB_RESERVED_USER_BASE: u32 = 1024u32; +pub const USB_RESET_HUB: u32 = 275u32; +pub const USB_RESET_PORT: u32 = 1u32; +pub const USB_START_TRACKING_FOR_TIME_SYNC: u32 = 285u32; +pub const USB_STATUS_EXT_PORT_STATUS: u32 = 2u32; +pub const USB_STATUS_PD_STATUS: u32 = 1u32; +pub const USB_STATUS_PORT_STATUS: u32 = 0u32; +pub const USB_STOP_TRACKING_FOR_TIME_SYNC: u32 = 287u32; +pub const USB_STRING_DESCRIPTOR_TYPE: u32 = 3u32; +pub const USB_SUBMIT_URB: u32 = 0u32; +pub const USB_SUPERSPEEDPLUS_ISOCHRONOUS_MAX_BYTESPERINTERVAL: u32 = 16777215u32; +pub const USB_SUPERSPEEDPLUS_ISOCHRONOUS_MIN_BYTESPERINTERVAL: u32 = 49153u32; +pub const USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR_TYPE: u32 = 49u32; +pub const USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_TYPE: u32 = 48u32; +pub const USB_SUPERSPEED_ISOCHRONOUS_MAX_MULTIPLIER: u32 = 2u32; +pub const USB_SUPPORT_D0_COMMAND: u32 = 1u32; +pub const USB_SUPPORT_D1_COMMAND: u32 = 2u32; +pub const USB_SUPPORT_D1_WAKEUP: u32 = 16u32; +pub const USB_SUPPORT_D2_COMMAND: u32 = 4u32; +pub const USB_SUPPORT_D2_WAKEUP: u32 = 32u32; +pub const USB_SUPPORT_D3_COMMAND: u32 = 8u32; +pub const USB_TEST_MODE_TEST_FORCE_ENABLE: u32 = 5u32; +pub const USB_TEST_MODE_TEST_J: u32 = 1u32; +pub const USB_TEST_MODE_TEST_K: u32 = 2u32; +pub const USB_TEST_MODE_TEST_PACKET: u32 = 4u32; +pub const USB_TEST_MODE_TEST_SE0_NAK: u32 = 3u32; +pub const USB_TRANSPORT_CHARACTERISTICS_BANDWIDTH_AVAILABLE: u32 = 2u32; +pub const USB_TRANSPORT_CHARACTERISTICS_LATENCY_AVAILABLE: u32 = 1u32; +pub const USB_TRANSPORT_CHARACTERISTICS_VERSION_1: u32 = 1u32; +pub const USB_UNREGISTER_COMPOSITE_DEVICE: u32 = 1u32; +pub const USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: u32 = 284u32; +pub const Usb11Device: USB_DEVICE_TYPE = 0i32; +pub const Usb20Device: USB_DEVICE_TYPE = 1i32; +pub const Usb20Hub: USB_HUB_TYPE = 2i32; +pub const Usb30Hub: USB_HUB_TYPE = 3i32; +pub const UsbController: USB_WMI_DEVICE_NODE_TYPE = 3i32; +pub const UsbDevice: USB_WMI_DEVICE_NODE_TYPE = 0i32; +pub const UsbFullSpeed: USB_DEVICE_SPEED = 1i32; +pub const UsbHighSpeed: USB_DEVICE_SPEED = 2i32; +pub const UsbHub: USB_HUB_NODE = 0i32; +pub const UsbLowSpeed: USB_DEVICE_SPEED = 0i32; +pub const UsbMIParent: USB_HUB_NODE = 1i32; +pub const UsbRootHub: USB_HUB_TYPE = 1i32; +pub const UsbSuperSpeed: USB_DEVICE_SPEED = 3i32; +pub const UsbUserBufferTooSmall: USB_USER_ERROR_CODE = 7i32; +pub const UsbUserDeviceNotStarted: USB_USER_ERROR_CODE = 9i32; +pub const UsbUserErrorNotMapped: USB_USER_ERROR_CODE = 8i32; +pub const UsbUserFeatureDisabled: USB_USER_ERROR_CODE = 3i32; +pub const UsbUserInvalidHeaderParameter: USB_USER_ERROR_CODE = 4i32; +pub const UsbUserInvalidParameter: USB_USER_ERROR_CODE = 5i32; +pub const UsbUserInvalidRequestCode: USB_USER_ERROR_CODE = 2i32; +pub const UsbUserMiniportError: USB_USER_ERROR_CODE = 6i32; +pub const UsbUserNoDeviceConnected: USB_USER_ERROR_CODE = 10i32; +pub const UsbUserNotSupported: USB_USER_ERROR_CODE = 1i32; +pub const UsbUserSuccess: USB_USER_ERROR_CODE = 0i32; +pub const UsbdEndpointOffloadHardwareAssisted: USBD_ENDPOINT_OFFLOAD_MODE = 2i32; +pub const UsbdEndpointOffloadModeNotSupported: USBD_ENDPOINT_OFFLOAD_MODE = 0i32; +pub const UsbdEndpointOffloadSoftwareAssisted: USBD_ENDPOINT_OFFLOAD_MODE = 1i32; +pub const UsbdPipeTypeBulk: USBD_PIPE_TYPE = 2i32; +pub const UsbdPipeTypeControl: USBD_PIPE_TYPE = 0i32; +pub const UsbdPipeTypeInterrupt: USBD_PIPE_TYPE = 3i32; +pub const UsbdPipeTypeIsochronous: USBD_PIPE_TYPE = 1i32; +pub const UsbfnBusSpeedFull: USBFN_BUS_SPEED = 1i32; +pub const UsbfnBusSpeedHigh: USBFN_BUS_SPEED = 2i32; +pub const UsbfnBusSpeedLow: USBFN_BUS_SPEED = 0i32; +pub const UsbfnBusSpeedMaximum: USBFN_BUS_SPEED = 4i32; +pub const UsbfnBusSpeedSuper: USBFN_BUS_SPEED = 3i32; +pub const UsbfnChargingDownstreamPort: USBFN_PORT_TYPE = 2i32; +pub const UsbfnDedicatedChargingPort: USBFN_PORT_TYPE = 3i32; +pub const UsbfnDeviceStateAddressed: USBFN_DEVICE_STATE = 4i32; +pub const UsbfnDeviceStateAttached: USBFN_DEVICE_STATE = 1i32; +pub const UsbfnDeviceStateConfigured: USBFN_DEVICE_STATE = 5i32; +pub const UsbfnDeviceStateDefault: USBFN_DEVICE_STATE = 2i32; +pub const UsbfnDeviceStateDetached: USBFN_DEVICE_STATE = 3i32; +pub const UsbfnDeviceStateMinimum: USBFN_DEVICE_STATE = 0i32; +pub const UsbfnDeviceStateStateMaximum: USBFN_DEVICE_STATE = 7i32; +pub const UsbfnDeviceStateSuspended: USBFN_DEVICE_STATE = 6i32; +pub const UsbfnDirectionIn: USBFN_DIRECTION = 1i32; +pub const UsbfnDirectionMaximum: USBFN_DIRECTION = 3i32; +pub const UsbfnDirectionMinimum: USBFN_DIRECTION = 0i32; +pub const UsbfnDirectionOut: USBFN_DIRECTION = 2i32; +pub const UsbfnDirectionRx: USBFN_DIRECTION = 2i32; +pub const UsbfnDirectionTx: USBFN_DIRECTION = 1i32; +pub const UsbfnEventAttach: USBFN_EVENT = 1i32; +pub const UsbfnEventBusTearDown: USBFN_EVENT = 10i32; +pub const UsbfnEventConfigured: USBFN_EVENT = 7i32; +pub const UsbfnEventDetach: USBFN_EVENT = 3i32; +pub const UsbfnEventMaximum: USBFN_EVENT = 12i32; +pub const UsbfnEventMinimum: USBFN_EVENT = 0i32; +pub const UsbfnEventPortType: USBFN_EVENT = 9i32; +pub const UsbfnEventReset: USBFN_EVENT = 2i32; +pub const UsbfnEventResume: USBFN_EVENT = 5i32; +pub const UsbfnEventSetInterface: USBFN_EVENT = 11i32; +pub const UsbfnEventSetupPacket: USBFN_EVENT = 6i32; +pub const UsbfnEventSuspend: USBFN_EVENT = 4i32; +pub const UsbfnEventUnConfigured: USBFN_EVENT = 8i32; +pub const UsbfnInvalidDedicatedChargingPort: USBFN_PORT_TYPE = 4i32; +pub const UsbfnPortTypeMaximum: USBFN_PORT_TYPE = 6i32; +pub const UsbfnProprietaryDedicatedChargingPort: USBFN_PORT_TYPE = 5i32; +pub const UsbfnStandardDownstreamPort: USBFN_PORT_TYPE = 1i32; +pub const UsbfnUnknownPort: USBFN_PORT_TYPE = 0i32; +pub const WMI_USB_DEVICE_NODE_INFORMATION: u32 = 2u32; +pub const WMI_USB_DRIVER_INFORMATION: u32 = 0u32; +pub const WMI_USB_DRIVER_NOTIFICATION: u32 = 1u32; +pub const WMI_USB_HUB_NODE_INFORMATION: u32 = 4u32; +pub const WMI_USB_PERFORMANCE_INFORMATION: u32 = 1u32; +pub const WMI_USB_POWER_DEVICE_ENABLE: u32 = 2u32; +pub const WRITE_DATA_PIPE: PIPE_TYPE = 2i32; +pub const WdmUsbPowerDeviceD0: WDMUSB_POWER_STATE = 201i32; +pub const WdmUsbPowerDeviceD1: WDMUSB_POWER_STATE = 202i32; +pub const WdmUsbPowerDeviceD2: WDMUSB_POWER_STATE = 203i32; +pub const WdmUsbPowerDeviceD3: WDMUSB_POWER_STATE = 204i32; +pub const WdmUsbPowerDeviceUnspecified: WDMUSB_POWER_STATE = 200i32; +pub const WdmUsbPowerNotMapped: WDMUSB_POWER_STATE = 0i32; +pub const WdmUsbPowerSystemHibernate: WDMUSB_POWER_STATE = 105i32; +pub const WdmUsbPowerSystemShutdown: WDMUSB_POWER_STATE = 106i32; +pub const WdmUsbPowerSystemSleeping1: WDMUSB_POWER_STATE = 102i32; +pub const WdmUsbPowerSystemSleeping2: WDMUSB_POWER_STATE = 103i32; +pub const WdmUsbPowerSystemSleeping3: WDMUSB_POWER_STATE = 104i32; +pub const WdmUsbPowerSystemUnspecified: WDMUSB_POWER_STATE = 100i32; +pub const WdmUsbPowerSystemWorking: WDMUSB_POWER_STATE = 101i32; +pub const WinUSB_TestGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xda812bff_12c3_46a2_8e2b_dbd3b7834c43); +pub type PIPE_TYPE = i32; +pub type RAW_PIPE_TYPE = i32; +pub type USBD_ENDPOINT_OFFLOAD_MODE = i32; +pub type USBD_PIPE_TYPE = i32; +pub type USBFN_BUS_SPEED = i32; +pub type USBFN_DEVICE_STATE = i32; +pub type USBFN_DIRECTION = i32; +pub type USBFN_EVENT = i32; +pub type USBFN_PORT_TYPE = i32; +pub type USB_CONNECTION_STATUS = i32; +pub type USB_CONTROLLER_FLAVOR = i32; +pub type USB_DEVICE_SPEED = i32; +pub type USB_DEVICE_TYPE = i32; +pub type USB_HUB_NODE = i32; +pub type USB_HUB_TYPE = i32; +pub type USB_NOTIFICATION_TYPE = i32; +pub type USB_USER_ERROR_CODE = i32; +pub type USB_WMI_DEVICE_NODE_TYPE = i32; +pub type WDMUSB_POWER_STATE = i32; +pub type WINUSB_PIPE_POLICY = u32; +pub type WINUSB_POWER_POLICY = u32; +#[repr(C)] +pub struct ALTERNATE_INTERFACE { + pub InterfaceNumber: u16, + pub AlternateInterfaceNumber: u16, +} +impl ::core::marker::Copy for ALTERNATE_INTERFACE {} +impl ::core::clone::Clone for ALTERNATE_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union BM_REQUEST_TYPE { + pub s: BM_REQUEST_TYPE_0, + pub B: u8, +} +impl ::core::marker::Copy for BM_REQUEST_TYPE {} +impl ::core::clone::Clone for BM_REQUEST_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BM_REQUEST_TYPE_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for BM_REQUEST_TYPE_0 {} +impl ::core::clone::Clone for BM_REQUEST_TYPE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CHANNEL_INFO { + pub EventChannelSize: u32, + pub uReadDataAlignment: u32, + pub uWriteDataAlignment: u32, +} +impl ::core::marker::Copy for CHANNEL_INFO {} +impl ::core::clone::Clone for CHANNEL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DESCRIPTOR { + pub usVendorId: u16, + pub usProductId: u16, + pub usBcdDevice: u16, + pub usLanguageId: u16, +} +impl ::core::marker::Copy for DEVICE_DESCRIPTOR {} +impl ::core::clone::Clone for DEVICE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRV_VERSION { + pub major: u32, + pub minor: u32, + pub internal: u32, +} +impl ::core::marker::Copy for DRV_VERSION {} +impl ::core::clone::Clone for DRV_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct HCD_ISO_STAT_COUNTERS { + pub LateUrbs: u16, + pub DoubleBufferedPackets: u16, + pub TransfersCF_5ms: u16, + pub TransfersCF_2ms: u16, + pub TransfersCF_1ms: u16, + pub MaxInterruptLatency: u16, + pub BadStartFrame: u16, + pub StaleUrbs: u16, + pub IsoPacketNotAccesed: u16, + pub IsoPacketHWError: u16, + pub SmallestUrbPacketCount: u16, + pub LargestUrbPacketCount: u16, + pub IsoCRC_Error: u16, + pub IsoOVERRUN_Error: u16, + pub IsoINTERNAL_Error: u16, + pub IsoUNKNOWN_Error: u16, + pub IsoBytesTransferred: u32, + pub LateMissedCount: u16, + pub HWIsoMissedCount: u16, + pub Reserved7: [u32; 8], +} +impl ::core::marker::Copy for HCD_ISO_STAT_COUNTERS {} +impl ::core::clone::Clone for HCD_ISO_STAT_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct HCD_STAT_COUNTERS { + pub BytesTransferred: u32, + pub IsoMissedCount: u16, + pub DataOverrunErrorCount: u16, + pub CrcErrorCount: u16, + pub ScheduleOverrunCount: u16, + pub TimeoutErrorCount: u16, + pub InternalHcErrorCount: u16, + pub BufferOverrunErrorCount: u16, + pub SWErrorCount: u16, + pub StallPidCount: u16, + pub PortDisableCount: u16, +} +impl ::core::marker::Copy for HCD_STAT_COUNTERS {} +impl ::core::clone::Clone for HCD_STAT_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct HCD_STAT_INFORMATION_1 { + pub Reserved1: u32, + pub Reserved2: u32, + pub ResetCounters: u32, + pub TimeRead: i64, + pub Counters: HCD_STAT_COUNTERS, +} +impl ::core::marker::Copy for HCD_STAT_INFORMATION_1 {} +impl ::core::clone::Clone for HCD_STAT_INFORMATION_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct HCD_STAT_INFORMATION_2 { + pub Reserved1: u32, + pub Reserved2: u32, + pub ResetCounters: u32, + pub TimeRead: i64, + pub LockedMemoryUsed: i32, + pub Counters: HCD_STAT_COUNTERS, + pub IsoCounters: HCD_ISO_STAT_COUNTERS, +} +impl ::core::marker::Copy for HCD_STAT_INFORMATION_2 {} +impl ::core::clone::Clone for HCD_STAT_INFORMATION_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct HUB_DEVICE_CONFIG_INFO { + pub Version: u32, + pub Length: u32, + pub HubFlags: USB_HUB_CAP_FLAGS, + pub HardwareIds: USB_ID_STRING, + pub CompatibleIds: USB_ID_STRING, + pub DeviceDescription: USB_ID_STRING, + pub Reserved: [u32; 19], + pub UxdSettings: USB_HUB_DEVICE_UXD_SETTINGS, +} +impl ::core::marker::Copy for HUB_DEVICE_CONFIG_INFO {} +impl ::core::clone::Clone for HUB_DEVICE_CONFIG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_BLOCK { + pub uOffset: u32, + pub uLength: u32, + pub pbyData: *mut u8, + pub uIndex: u32, +} +impl ::core::marker::Copy for IO_BLOCK {} +impl ::core::clone::Clone for IO_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_BLOCK_EX { + pub uOffset: u32, + pub uLength: u32, + pub pbyData: *mut u8, + pub uIndex: u32, + pub bRequest: u8, + pub bmRequestType: u8, + pub fTransferDirectionIn: u8, +} +impl ::core::marker::Copy for IO_BLOCK_EX {} +impl ::core::clone::Clone for IO_BLOCK_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OS_STRING { + pub bLength: u8, + pub bDescriptorType: u8, + pub MicrosoftString: [u16; 7], + pub bVendorCode: u8, + pub Anonymous: OS_STRING_0, +} +impl ::core::marker::Copy for OS_STRING {} +impl ::core::clone::Clone for OS_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union OS_STRING_0 { + pub bPad: u8, + pub bFlags: u8, +} +impl ::core::marker::Copy for OS_STRING_0 {} +impl ::core::clone::Clone for OS_STRING_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PACKET_PARAMETERS { + pub DeviceAddress: u8, + pub EndpointAddress: u8, + pub MaximumPacketSize: u16, + pub Timeout: u32, + pub Flags: u32, + pub DataLength: u32, + pub HubDeviceAddress: u16, + pub PortTTNumber: u16, + pub ErrorCount: u8, + pub Pad: [u8; 3], + pub UsbdStatusCode: i32, + pub Data: [u8; 4], +} +impl ::core::marker::Copy for PACKET_PARAMETERS {} +impl ::core::clone::Clone for PACKET_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct RAW_RESET_PORT_PARAMETERS { + pub PortNumber: u16, + pub PortStatus: u16, +} +impl ::core::marker::Copy for RAW_RESET_PORT_PARAMETERS {} +impl ::core::clone::Clone for RAW_RESET_PORT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct RAW_ROOTPORT_FEATURE { + pub PortNumber: u16, + pub PortFeature: u16, + pub PortStatus: u16, +} +impl ::core::marker::Copy for RAW_ROOTPORT_FEATURE {} +impl ::core::clone::Clone for RAW_ROOTPORT_FEATURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct RAW_ROOTPORT_PARAMETERS { + pub PortNumber: u16, + pub PortStatus: u16, +} +impl ::core::marker::Copy for RAW_ROOTPORT_PARAMETERS {} +impl ::core::clone::Clone for RAW_ROOTPORT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct URB { + pub Anonymous: URB_0, +} +impl ::core::marker::Copy for URB {} +impl ::core::clone::Clone for URB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union URB_0 { + pub UrbHeader: _URB_HEADER, + pub UrbSelectInterface: _URB_SELECT_INTERFACE, + pub UrbSelectConfiguration: _URB_SELECT_CONFIGURATION, + pub UrbPipeRequest: _URB_PIPE_REQUEST, + pub UrbFrameLengthControl: _URB_FRAME_LENGTH_CONTROL, + pub UrbGetFrameLength: _URB_GET_FRAME_LENGTH, + pub UrbSetFrameLength: _URB_SET_FRAME_LENGTH, + pub UrbGetCurrentFrameNumber: _URB_GET_CURRENT_FRAME_NUMBER, + pub UrbControlTransfer: _URB_CONTROL_TRANSFER, + pub UrbControlTransferEx: _URB_CONTROL_TRANSFER_EX, + pub UrbBulkOrInterruptTransfer: _URB_BULK_OR_INTERRUPT_TRANSFER, + pub UrbIsochronousTransfer: _URB_ISOCH_TRANSFER, + pub UrbControlDescriptorRequest: _URB_CONTROL_DESCRIPTOR_REQUEST, + pub UrbControlGetStatusRequest: _URB_CONTROL_GET_STATUS_REQUEST, + pub UrbControlFeatureRequest: _URB_CONTROL_FEATURE_REQUEST, + pub UrbControlVendorClassRequest: _URB_CONTROL_VENDOR_OR_CLASS_REQUEST, + pub UrbControlGetInterfaceRequest: _URB_CONTROL_GET_INTERFACE_REQUEST, + pub UrbControlGetConfigurationRequest: _URB_CONTROL_GET_CONFIGURATION_REQUEST, + pub UrbOSFeatureDescriptorRequest: _URB_OS_FEATURE_DESCRIPTOR_REQUEST, + pub UrbOpenStaticStreams: _URB_OPEN_STATIC_STREAMS, + pub UrbGetIsochPipeTransferPathDelays: _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS, +} +impl ::core::marker::Copy for URB_0 {} +impl ::core::clone::Clone for URB_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBD_DEVICE_INFORMATION { + pub OffsetNext: u32, + pub UsbdDeviceHandle: *mut ::core::ffi::c_void, + pub DeviceDescriptor: USB_DEVICE_DESCRIPTOR, +} +impl ::core::marker::Copy for USBD_DEVICE_INFORMATION {} +impl ::core::clone::Clone for USBD_DEVICE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBD_ENDPOINT_OFFLOAD_INFORMATION { + pub Size: u32, + pub EndpointAddress: u16, + pub ResourceId: u32, + pub Mode: USBD_ENDPOINT_OFFLOAD_MODE, + pub _bitfield1: u32, + pub _bitfield2: u32, + pub TransferSegmentLA: i64, + pub TransferSegmentVA: *mut ::core::ffi::c_void, + pub TransferRingSize: usize, + pub TransferRingInitialCycleBit: u32, + pub MessageNumber: u32, + pub EventRingSegmentLA: i64, + pub EventRingSegmentVA: *mut ::core::ffi::c_void, + pub EventRingSize: usize, + pub EventRingInitialCycleBit: u32, +} +impl ::core::marker::Copy for USBD_ENDPOINT_OFFLOAD_INFORMATION {} +impl ::core::clone::Clone for USBD_ENDPOINT_OFFLOAD_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBD_INTERFACE_INFORMATION { + pub Length: u16, + pub InterfaceNumber: u8, + pub AlternateSetting: u8, + pub Class: u8, + pub SubClass: u8, + pub Protocol: u8, + pub Reserved: u8, + pub InterfaceHandle: *mut ::core::ffi::c_void, + pub NumberOfPipes: u32, + pub Pipes: [USBD_PIPE_INFORMATION; 1], +} +impl ::core::marker::Copy for USBD_INTERFACE_INFORMATION {} +impl ::core::clone::Clone for USBD_INTERFACE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBD_ISO_PACKET_DESCRIPTOR { + pub Offset: u32, + pub Length: u32, + pub Status: i32, +} +impl ::core::marker::Copy for USBD_ISO_PACKET_DESCRIPTOR {} +impl ::core::clone::Clone for USBD_ISO_PACKET_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBD_PIPE_INFORMATION { + pub MaximumPacketSize: u16, + pub EndpointAddress: u8, + pub Interval: u8, + pub PipeType: USBD_PIPE_TYPE, + pub PipeHandle: *mut ::core::ffi::c_void, + pub MaximumTransferSize: u32, + pub PipeFlags: u32, +} +impl ::core::marker::Copy for USBD_PIPE_INFORMATION {} +impl ::core::clone::Clone for USBD_PIPE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBD_STREAM_INFORMATION { + pub PipeHandle: *mut ::core::ffi::c_void, + pub StreamID: u32, + pub MaximumTransferSize: u32, + pub PipeFlags: u32, +} +impl ::core::marker::Copy for USBD_STREAM_INFORMATION {} +impl ::core::clone::Clone for USBD_STREAM_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBD_VERSION_INFORMATION { + pub USBDI_Version: u32, + pub Supported_USB_Version: u32, +} +impl ::core::marker::Copy for USBD_VERSION_INFORMATION {} +impl ::core::clone::Clone for USBD_VERSION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USBFN_BUS_CONFIGURATION_INFO { + pub ConfigurationName: [u16; 40], + pub IsCurrent: super::super::Foundation::BOOLEAN, + pub IsActive: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USBFN_BUS_CONFIGURATION_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USBFN_BUS_CONFIGURATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USBFN_CLASS_INFORMATION_PACKET { + pub FullSpeedClassInterface: USBFN_CLASS_INTERFACE, + pub HighSpeedClassInterface: USBFN_CLASS_INTERFACE, + pub InterfaceName: [u16; 40], + pub InterfaceGuid: [u16; 39], + pub HasInterfaceGuid: super::super::Foundation::BOOLEAN, + pub SuperSpeedClassInterface: USBFN_CLASS_INTERFACE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USBFN_CLASS_INFORMATION_PACKET {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USBFN_CLASS_INFORMATION_PACKET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USBFN_CLASS_INFORMATION_PACKET_EX { + pub FullSpeedClassInterfaceEx: USBFN_CLASS_INTERFACE_EX, + pub HighSpeedClassInterfaceEx: USBFN_CLASS_INTERFACE_EX, + pub SuperSpeedClassInterfaceEx: USBFN_CLASS_INTERFACE_EX, + pub InterfaceName: [u16; 40], + pub InterfaceGuid: [u16; 39], + pub HasInterfaceGuid: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USBFN_CLASS_INFORMATION_PACKET_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USBFN_CLASS_INFORMATION_PACKET_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBFN_CLASS_INTERFACE { + pub InterfaceNumber: u8, + pub PipeCount: u8, + pub PipeArr: [USBFN_PIPE_INFORMATION; 16], +} +impl ::core::marker::Copy for USBFN_CLASS_INTERFACE {} +impl ::core::clone::Clone for USBFN_CLASS_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBFN_CLASS_INTERFACE_EX { + pub BaseInterfaceNumber: u8, + pub InterfaceCount: u8, + pub PipeCount: u8, + pub PipeArr: [USBFN_PIPE_INFORMATION; 16], +} +impl ::core::marker::Copy for USBFN_CLASS_INTERFACE_EX {} +impl ::core::clone::Clone for USBFN_CLASS_INTERFACE_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBFN_INTERFACE_INFO { + pub InterfaceNumber: u8, + pub Speed: USBFN_BUS_SPEED, + pub Size: u16, + pub InterfaceDescriptorSet: [u8; 1], +} +impl ::core::marker::Copy for USBFN_INTERFACE_INFO {} +impl ::core::clone::Clone for USBFN_INTERFACE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBFN_NOTIFICATION { + pub Event: USBFN_EVENT, + pub u: USBFN_NOTIFICATION_0, +} +impl ::core::marker::Copy for USBFN_NOTIFICATION {} +impl ::core::clone::Clone for USBFN_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union USBFN_NOTIFICATION_0 { + pub BusSpeed: USBFN_BUS_SPEED, + pub SetupPacket: USB_DEFAULT_PIPE_SETUP_PACKET, + pub ConfigurationValue: u16, + pub PortType: USBFN_PORT_TYPE, + pub AlternateInterface: ALTERNATE_INTERFACE, +} +impl ::core::marker::Copy for USBFN_NOTIFICATION_0 {} +impl ::core::clone::Clone for USBFN_NOTIFICATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBFN_PIPE_INFORMATION { + pub EpDesc: USB_ENDPOINT_DESCRIPTOR, + pub PipeId: u32, +} +impl ::core::marker::Copy for USBFN_PIPE_INFORMATION {} +impl ::core::clone::Clone for USBFN_PIPE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBFN_USB_STRING { + pub StringIndex: u8, + pub UsbString: [u16; 255], +} +impl ::core::marker::Copy for USBFN_USB_STRING {} +impl ::core::clone::Clone for USBFN_USB_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBSCAN_GET_DESCRIPTOR { + pub DescriptorType: u8, + pub Index: u8, + pub LanguageId: u16, +} +impl ::core::marker::Copy for USBSCAN_GET_DESCRIPTOR {} +impl ::core::clone::Clone for USBSCAN_GET_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBSCAN_PIPE_CONFIGURATION { + pub NumberOfPipes: u32, + pub PipeInfo: [USBSCAN_PIPE_INFORMATION; 8], +} +impl ::core::marker::Copy for USBSCAN_PIPE_CONFIGURATION {} +impl ::core::clone::Clone for USBSCAN_PIPE_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBSCAN_PIPE_INFORMATION { + pub MaximumPacketSize: u16, + pub EndpointAddress: u8, + pub Interval: u8, + pub PipeType: RAW_PIPE_TYPE, +} +impl ::core::marker::Copy for USBSCAN_PIPE_INFORMATION {} +impl ::core::clone::Clone for USBSCAN_PIPE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USBSCAN_TIMEOUT { + pub TimeoutRead: u32, + pub TimeoutWrite: u32, + pub TimeoutEvent: u32, +} +impl ::core::marker::Copy for USBSCAN_TIMEOUT {} +impl ::core::clone::Clone for USBSCAN_TIMEOUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_BANDWIDTH_INFO_REQUEST { + pub Header: USBUSER_REQUEST_HEADER, + pub BandwidthInformation: USB_BANDWIDTH_INFO, +} +impl ::core::marker::Copy for USBUSER_BANDWIDTH_INFO_REQUEST {} +impl ::core::clone::Clone for USBUSER_BANDWIDTH_INFO_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USBUSER_BUS_STATISTICS_0_REQUEST { + pub Header: USBUSER_REQUEST_HEADER, + pub BusStatistics0: USB_BUS_STATISTICS_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USBUSER_BUS_STATISTICS_0_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USBUSER_BUS_STATISTICS_0_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_CLOSE_RAW_DEVICE { + pub Header: USBUSER_REQUEST_HEADER, + pub Parameters: USB_CLOSE_RAW_DEVICE_PARAMETERS, +} +impl ::core::marker::Copy for USBUSER_CLOSE_RAW_DEVICE {} +impl ::core::clone::Clone for USBUSER_CLOSE_RAW_DEVICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_CONTROLLER_INFO_0 { + pub Header: USBUSER_REQUEST_HEADER, + pub Info0: USB_CONTROLLER_INFO_0, +} +impl ::core::marker::Copy for USBUSER_CONTROLLER_INFO_0 {} +impl ::core::clone::Clone for USBUSER_CONTROLLER_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_CONTROLLER_UNICODE_NAME { + pub Header: USBUSER_REQUEST_HEADER, + pub UnicodeName: USB_UNICODE_NAME, +} +impl ::core::marker::Copy for USBUSER_CONTROLLER_UNICODE_NAME {} +impl ::core::clone::Clone for USBUSER_CONTROLLER_UNICODE_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USBUSER_GET_DRIVER_VERSION { + pub Header: USBUSER_REQUEST_HEADER, + pub Parameters: USB_DRIVER_VERSION_PARAMETERS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USBUSER_GET_DRIVER_VERSION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USBUSER_GET_DRIVER_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_GET_USB2HW_VERSION { + pub Header: USBUSER_REQUEST_HEADER, + pub Parameters: USB_USB2HW_VERSION_PARAMETERS, +} +impl ::core::marker::Copy for USBUSER_GET_USB2HW_VERSION {} +impl ::core::clone::Clone for USBUSER_GET_USB2HW_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_OPEN_RAW_DEVICE { + pub Header: USBUSER_REQUEST_HEADER, + pub Parameters: USB_OPEN_RAW_DEVICE_PARAMETERS, +} +impl ::core::marker::Copy for USBUSER_OPEN_RAW_DEVICE {} +impl ::core::clone::Clone for USBUSER_OPEN_RAW_DEVICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_PASS_THRU_REQUEST { + pub Header: USBUSER_REQUEST_HEADER, + pub PassThru: USB_PASS_THRU_PARAMETERS, +} +impl ::core::marker::Copy for USBUSER_PASS_THRU_REQUEST {} +impl ::core::clone::Clone for USBUSER_PASS_THRU_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USBUSER_POWER_INFO_REQUEST { + pub Header: USBUSER_REQUEST_HEADER, + pub PowerInformation: USB_POWER_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USBUSER_POWER_INFO_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USBUSER_POWER_INFO_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_RAW_RESET_ROOT_PORT { + pub Header: USBUSER_REQUEST_HEADER, + pub Parameters: RAW_RESET_PORT_PARAMETERS, +} +impl ::core::marker::Copy for USBUSER_RAW_RESET_ROOT_PORT {} +impl ::core::clone::Clone for USBUSER_RAW_RESET_ROOT_PORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_REFRESH_HCT_REG { + pub Header: USBUSER_REQUEST_HEADER, + pub Flags: u32, +} +impl ::core::marker::Copy for USBUSER_REFRESH_HCT_REG {} +impl ::core::clone::Clone for USBUSER_REFRESH_HCT_REG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_REQUEST_HEADER { + pub UsbUserRequest: u32, + pub UsbUserStatusCode: USB_USER_ERROR_CODE, + pub RequestBufferLength: u32, + pub ActualBufferLength: u32, +} +impl ::core::marker::Copy for USBUSER_REQUEST_HEADER {} +impl ::core::clone::Clone for USBUSER_REQUEST_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_ROOTPORT_FEATURE_REQUEST { + pub Header: USBUSER_REQUEST_HEADER, + pub Parameters: RAW_ROOTPORT_FEATURE, +} +impl ::core::marker::Copy for USBUSER_ROOTPORT_FEATURE_REQUEST {} +impl ::core::clone::Clone for USBUSER_ROOTPORT_FEATURE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_ROOTPORT_PARAMETERS { + pub Header: USBUSER_REQUEST_HEADER, + pub Parameters: RAW_ROOTPORT_PARAMETERS, +} +impl ::core::marker::Copy for USBUSER_ROOTPORT_PARAMETERS {} +impl ::core::clone::Clone for USBUSER_ROOTPORT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_SEND_ONE_PACKET { + pub Header: USBUSER_REQUEST_HEADER, + pub PacketParameters: PACKET_PARAMETERS, +} +impl ::core::marker::Copy for USBUSER_SEND_ONE_PACKET {} +impl ::core::clone::Clone for USBUSER_SEND_ONE_PACKET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USBUSER_SEND_RAW_COMMAND { + pub Header: USBUSER_REQUEST_HEADER, + pub Parameters: USB_SEND_RAW_COMMAND_PARAMETERS, +} +impl ::core::marker::Copy for USBUSER_SEND_RAW_COMMAND {} +impl ::core::clone::Clone for USBUSER_SEND_RAW_COMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_20_PORT_CHANGE { + pub AsUshort16: u16, + pub Anonymous: USB_20_PORT_CHANGE_0, +} +impl ::core::marker::Copy for USB_20_PORT_CHANGE {} +impl ::core::clone::Clone for USB_20_PORT_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_20_PORT_CHANGE_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for USB_20_PORT_CHANGE_0 {} +impl ::core::clone::Clone for USB_20_PORT_CHANGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_20_PORT_STATUS { + pub AsUshort16: u16, + pub Anonymous: USB_20_PORT_STATUS_0, +} +impl ::core::marker::Copy for USB_20_PORT_STATUS {} +impl ::core::clone::Clone for USB_20_PORT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_20_PORT_STATUS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for USB_20_PORT_STATUS_0 {} +impl ::core::clone::Clone for USB_20_PORT_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_30_HUB_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bNumberOfPorts: u8, + pub wHubCharacteristics: u16, + pub bPowerOnToPowerGood: u8, + pub bHubControlCurrent: u8, + pub bHubHdrDecLat: u8, + pub wHubDelay: u16, + pub DeviceRemovable: u16, +} +impl ::core::marker::Copy for USB_30_HUB_DESCRIPTOR {} +impl ::core::clone::Clone for USB_30_HUB_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_30_PORT_CHANGE { + pub AsUshort16: u16, + pub Anonymous: USB_30_PORT_CHANGE_0, +} +impl ::core::marker::Copy for USB_30_PORT_CHANGE {} +impl ::core::clone::Clone for USB_30_PORT_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_30_PORT_CHANGE_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for USB_30_PORT_CHANGE_0 {} +impl ::core::clone::Clone for USB_30_PORT_CHANGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_30_PORT_STATUS { + pub AsUshort16: u16, + pub Anonymous: USB_30_PORT_STATUS_0, +} +impl ::core::marker::Copy for USB_30_PORT_STATUS {} +impl ::core::clone::Clone for USB_30_PORT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_30_PORT_STATUS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for USB_30_PORT_STATUS_0 {} +impl ::core::clone::Clone for USB_30_PORT_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_ACQUIRE_INFO { + pub NotificationType: USB_NOTIFICATION_TYPE, + pub TotalSize: u32, + pub Buffer: [u16; 1], +} +impl ::core::marker::Copy for USB_ACQUIRE_INFO {} +impl ::core::clone::Clone for USB_ACQUIRE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_BANDWIDTH_INFO { + pub DeviceCount: u32, + pub TotalBusBandwidth: u32, + pub Total32secBandwidth: u32, + pub AllocedBulkAndControl: u32, + pub AllocedIso: u32, + pub AllocedInterrupt_1ms: u32, + pub AllocedInterrupt_2ms: u32, + pub AllocedInterrupt_4ms: u32, + pub AllocedInterrupt_8ms: u32, + pub AllocedInterrupt_16ms: u32, + pub AllocedInterrupt_32ms: u32, +} +impl ::core::marker::Copy for USB_BANDWIDTH_INFO {} +impl ::core::clone::Clone for USB_BANDWIDTH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_BOS_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub wTotalLength: u16, + pub bNumDeviceCaps: u8, +} +impl ::core::marker::Copy for USB_BOS_DESCRIPTOR {} +impl ::core::clone::Clone for USB_BOS_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_BUS_NOTIFICATION { + pub NotificationType: USB_NOTIFICATION_TYPE, + pub TotalBandwidth: u32, + pub ConsumedBandwidth: u32, + pub ControllerNameLength: u32, +} +impl ::core::marker::Copy for USB_BUS_NOTIFICATION {} +impl ::core::clone::Clone for USB_BUS_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_BUS_STATISTICS_0 { + pub DeviceCount: u32, + pub CurrentSystemTime: i64, + pub CurrentUsbFrame: u32, + pub BulkBytes: u32, + pub IsoBytes: u32, + pub InterruptBytes: u32, + pub ControlDataBytes: u32, + pub PciInterruptCount: u32, + pub HardResetCount: u32, + pub WorkerSignalCount: u32, + pub CommonBufferBytes: u32, + pub WorkerIdleTimeMs: u32, + pub RootHubEnabled: super::super::Foundation::BOOLEAN, + pub RootHubDevicePowerState: u8, + pub Unused: u8, + pub NameIndex: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_BUS_STATISTICS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_BUS_STATISTICS_0 { + fn clone(&self) -> Self { + *self + } +} +pub type USB_CHANGE_REGISTRATION_HANDLE = isize; +#[repr(C, packed(1))] +pub struct USB_CLOSE_RAW_DEVICE_PARAMETERS { + pub xxx: u32, +} +impl ::core::marker::Copy for USB_CLOSE_RAW_DEVICE_PARAMETERS {} +impl ::core::clone::Clone for USB_CLOSE_RAW_DEVICE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_COMMON_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, +} +impl ::core::marker::Copy for USB_COMMON_DESCRIPTOR {} +impl ::core::clone::Clone for USB_COMMON_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_COMPOSITE_DEVICE_INFO { + pub DeviceDescriptor: USB_DEVICE_DESCRIPTOR, + pub CurrentConfigDescriptor: USB_CONFIGURATION_DESCRIPTOR, + pub CurrentConfigurationValue: u8, + pub NumberOfFunctions: u8, + pub FunctionInfo: [USB_COMPOSITE_FUNCTION_INFO; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_COMPOSITE_DEVICE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_COMPOSITE_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_COMPOSITE_FUNCTION_INFO { + pub FunctionNumber: u8, + pub BaseInterfaceNumber: u8, + pub NumberOfInterfaces: u8, + pub FunctionIsIdle: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_COMPOSITE_FUNCTION_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_COMPOSITE_FUNCTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_CONFIGURATION_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub wTotalLength: u16, + pub bNumInterfaces: u8, + pub bConfigurationValue: u8, + pub iConfiguration: u8, + pub bmAttributes: u8, + pub MaxPower: u8, +} +impl ::core::marker::Copy for USB_CONFIGURATION_DESCRIPTOR {} +impl ::core::clone::Clone for USB_CONFIGURATION_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_CONFIGURATION_POWER_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub SelfPowerConsumedD0: [u8; 3], + pub bPowerSummaryId: u8, + pub bBusPowerSavingD1: u8, + pub bSelfPowerSavingD1: u8, + pub bBusPowerSavingD2: u8, + pub bSelfPowerSavingD2: u8, + pub bBusPowerSavingD3: u8, + pub bSelfPowerSavingD3: u8, + pub TransitionTimeFromD1: u16, + pub TransitionTimeFromD2: u16, + pub TransitionTimeFromD3: u16, +} +impl ::core::marker::Copy for USB_CONFIGURATION_POWER_DESCRIPTOR {} +impl ::core::clone::Clone for USB_CONFIGURATION_POWER_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_CONNECTION_NOTIFICATION { + pub NotificationType: USB_NOTIFICATION_TYPE, + pub ConnectionNumber: u32, + pub RequestedBandwidth: u32, + pub EnumerationFailReason: u32, + pub PowerRequested: u32, + pub HubNameLength: u32, +} +impl ::core::marker::Copy for USB_CONNECTION_NOTIFICATION {} +impl ::core::clone::Clone for USB_CONNECTION_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_CONTROLLER_DEVICE_INFO { + pub PciVendorId: u32, + pub PciDeviceId: u32, + pub PciRevision: u32, + pub NumberOfRootPorts: u32, + pub HcFeatureFlags: u32, +} +impl ::core::marker::Copy for USB_CONTROLLER_DEVICE_INFO {} +impl ::core::clone::Clone for USB_CONTROLLER_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_CONTROLLER_INFO_0 { + pub PciVendorId: u32, + pub PciDeviceId: u32, + pub PciRevision: u32, + pub NumberOfRootPorts: u32, + pub ControllerFlavor: USB_CONTROLLER_FLAVOR, + pub HcFeatureFlags: u32, +} +impl ::core::marker::Copy for USB_CONTROLLER_INFO_0 {} +impl ::core::clone::Clone for USB_CONTROLLER_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_CYCLE_PORT_PARAMS { + pub ConnectionIndex: u32, + pub StatusReturned: u32, +} +impl ::core::marker::Copy for USB_CYCLE_PORT_PARAMS {} +impl ::core::clone::Clone for USB_CYCLE_PORT_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEFAULT_PIPE_SETUP_PACKET { + pub bmRequestType: BM_REQUEST_TYPE, + pub bRequest: u8, + pub wValue: USB_DEFAULT_PIPE_SETUP_PACKET_1, + pub wIndex: USB_DEFAULT_PIPE_SETUP_PACKET_0, + pub wLength: u16, +} +impl ::core::marker::Copy for USB_DEFAULT_PIPE_SETUP_PACKET {} +impl ::core::clone::Clone for USB_DEFAULT_PIPE_SETUP_PACKET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_DEFAULT_PIPE_SETUP_PACKET_0 { + pub Anonymous: USB_DEFAULT_PIPE_SETUP_PACKET_0_0, + pub W: u16, +} +impl ::core::marker::Copy for USB_DEFAULT_PIPE_SETUP_PACKET_0 {} +impl ::core::clone::Clone for USB_DEFAULT_PIPE_SETUP_PACKET_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_DEFAULT_PIPE_SETUP_PACKET_0_0 { + pub LowByte: u8, + pub HiByte: u8, +} +impl ::core::marker::Copy for USB_DEFAULT_PIPE_SETUP_PACKET_0_0 {} +impl ::core::clone::Clone for USB_DEFAULT_PIPE_SETUP_PACKET_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_DEFAULT_PIPE_SETUP_PACKET_1 { + pub Anonymous: USB_DEFAULT_PIPE_SETUP_PACKET_1_0, + pub W: u16, +} +impl ::core::marker::Copy for USB_DEFAULT_PIPE_SETUP_PACKET_1 {} +impl ::core::clone::Clone for USB_DEFAULT_PIPE_SETUP_PACKET_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_DEFAULT_PIPE_SETUP_PACKET_1_0 { + pub LowByte: u8, + pub HiByte: u8, +} +impl ::core::marker::Copy for USB_DEFAULT_PIPE_SETUP_PACKET_1_0 {} +impl ::core::clone::Clone for USB_DEFAULT_PIPE_SETUP_PACKET_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DESCRIPTOR_REQUEST { + pub ConnectionIndex: u32, + pub SetupPacket: USB_DESCRIPTOR_REQUEST_0, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for USB_DESCRIPTOR_REQUEST {} +impl ::core::clone::Clone for USB_DESCRIPTOR_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DESCRIPTOR_REQUEST_0 { + pub bmRequest: u8, + pub bRequest: u8, + pub wValue: u16, + pub wIndex: u16, + pub wLength: u16, +} +impl ::core::marker::Copy for USB_DESCRIPTOR_REQUEST_0 {} +impl ::core::clone::Clone for USB_DESCRIPTOR_REQUEST_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bDevCapabilityType: u8, + pub iAddtionalInfoURL: u8, + pub bNumberOfAlternateModes: u8, + pub bPreferredAlternateMode: u8, + pub VconnPower: USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1, + pub bmConfigured: [u8; 32], + pub bReserved: u32, + pub AlternateMode: [USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_0; 1], +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_0 { + pub wSVID: u16, + pub bAlternateMode: u8, + pub iAlternateModeSetting: u8, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1 { + pub AsUshort: u16, + pub Anonymous: USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1_0, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bDevCapabilityType: u8, + pub bReserved: u8, + pub ContainerID: [u8; 16], +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_DEVICE_CAPABILITY_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bDevCapabilityType: u8, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_DESCRIPTOR {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bDevCapabilityType: u8, + pub bcdDescriptorVersion: u8, + pub bmAttributes: USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0 { + pub AsUlong: u32, + pub Anonymous: USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0_0, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bDevCapabilityType: u8, + pub bReserved: u8, + pub bmCapabilities: USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0, + pub wMinVoltage: u16, + pub wMaxVoltage: u16, + pub wReserved: u16, + pub dwMaxOperatingPower: u32, + pub dwMaxPeakPower: u32, + pub dwMaxPeakPowerTime: u32, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0 { + pub AsUshort: u16, + pub Anonymous: USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0_0, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bDevCapabilityType: u8, + pub bReserved: u8, + pub PlatformCapabilityUuid: ::windows_sys::core::GUID, + pub CapabililityData: [u8; 1], +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bDevCapabilityType: u8, + pub bReserved: u8, + pub bmAttributes: USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0, + pub bmProviderPorts: u16, + pub bmConsumerPorts: u16, + pub bcdBCVersion: u16, + pub bcdPDVersion: u16, + pub bcdUSBTypeCVersion: u16, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0 { + pub AsUlong: u32, + pub Anonymous: USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0_0, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED { + pub AsUlong32: u32, + pub Anonymous: USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_0, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bDevCapabilityType: u8, + pub bReserved: u8, + pub bmAttributes: USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0, + pub wFunctionalitySupport: USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1, + pub wReserved: u16, + pub bmSublinkSpeedAttr: [USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED; 1], +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0 { + pub AsUlong: u32, + pub Anonymous: USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0_0, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1 { + pub AsUshort: u16, + pub Anonymous: USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1_0, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bDevCapabilityType: u8, + pub bmAttributes: u8, + pub wSpeedsSupported: u16, + pub bFunctionalitySupport: u8, + pub bU1DevExitLat: u8, + pub wU2DevExitLat: u16, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bDevCapabilityType: u8, + pub bmAttributes: USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0 { + pub AsUlong: u32, + pub Anonymous: USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0_0, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0_0 {} +impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_CHARACTERISTICS { + pub Version: u32, + pub Reserved: [u32; 2], + pub UsbDeviceCharacteristicsFlags: u32, + pub MaximumSendPathDelayInMilliSeconds: u32, + pub MaximumCompletionPathDelayInMilliSeconds: u32, +} +impl ::core::marker::Copy for USB_DEVICE_CHARACTERISTICS {} +impl ::core::clone::Clone for USB_DEVICE_CHARACTERISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bcdUSB: u16, + pub bDeviceClass: u8, + pub bDeviceSubClass: u8, + pub bDeviceProtocol: u8, + pub bMaxPacketSize0: u8, + pub idVendor: u16, + pub idProduct: u16, + pub bcdDevice: u16, + pub iManufacturer: u8, + pub iProduct: u8, + pub iSerialNumber: u8, + pub bNumConfigurations: u8, +} +impl ::core::marker::Copy for USB_DEVICE_DESCRIPTOR {} +impl ::core::clone::Clone for USB_DEVICE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_INFO { + pub DeviceState: USB_DEVICE_STATE, + pub PortNumber: u16, + pub DeviceDescriptor: USB_DEVICE_DESCRIPTOR, + pub CurrentConfigurationValue: u8, + pub Speed: USB_DEVICE_SPEED, + pub DeviceAddress: u16, + pub ConnectionIndex: u32, + pub ConnectionStatus: USB_CONNECTION_STATUS, + pub PnpHardwareId: [u16; 128], + pub PnpCompatibleId: [u16; 128], + pub SerialNumberId: [u16; 128], + pub PnpDeviceDescription: [u16; 128], + pub NumberOfOpenPipes: u32, + pub PipeList: [USB_PIPE_INFO; 1], +} +impl ::core::marker::Copy for USB_DEVICE_INFO {} +impl ::core::clone::Clone for USB_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_DEVICE_NODE_INFO { + pub Sig: u32, + pub LengthInBytes: u32, + pub DeviceDescription: [u16; 40], + pub NodeType: USB_WMI_DEVICE_NODE_TYPE, + pub BusAddress: USB_TOPOLOGY_ADDRESS, + pub Anonymous: USB_DEVICE_NODE_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_DEVICE_NODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_DEVICE_NODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union USB_DEVICE_NODE_INFO_0 { + pub UsbDeviceInfo: USB_DEVICE_INFO, + pub HubDeviceInfo: USB_HUB_DEVICE_INFO, + pub CompositeDeviceInfo: USB_COMPOSITE_DEVICE_INFO, + pub ControllerDeviceInfo: USB_CONTROLLER_DEVICE_INFO, + pub DeviceInformation: [u8; 4], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_DEVICE_NODE_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_DEVICE_NODE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_PERFORMANCE_INFO { + pub BulkBytes: u32, + pub ControlDataBytes: u32, + pub IsoBytes: u32, + pub InterruptBytes: u32, + pub BulkUrbCount: u32, + pub ControlUrbCount: u32, + pub IsoUrbCount: u32, + pub InterruptUrbCount: u32, + pub AllocedInterrupt: [u32; 6], + pub AllocedIso: u32, + pub Total32secBandwidth: u32, + pub TotalTtBandwidth: u32, + pub DeviceDescription: [u16; 60], + pub DeviceSpeed: USB_DEVICE_SPEED, + pub TotalIsoLatency: u32, + pub DroppedIsoPackets: u32, + pub TransferErrors: u32, + pub PciInterruptCount: u32, + pub HcIdleState: u32, + pub HcAsyncIdleState: u32, + pub HcAsyncCacheFlushCount: u32, + pub HcPeriodicIdleState: u32, + pub HcPeriodicCacheFlushCount: u32, +} +impl ::core::marker::Copy for USB_DEVICE_PERFORMANCE_INFO {} +impl ::core::clone::Clone for USB_DEVICE_PERFORMANCE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_QUALIFIER_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bcdUSB: u16, + pub bDeviceClass: u8, + pub bDeviceSubClass: u8, + pub bDeviceProtocol: u8, + pub bMaxPacketSize0: u8, + pub bNumConfigurations: u8, + pub bReserved: u8, +} +impl ::core::marker::Copy for USB_DEVICE_QUALIFIER_DESCRIPTOR {} +impl ::core::clone::Clone for USB_DEVICE_QUALIFIER_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_STATE { + pub _bitfield: u32, +} +impl ::core::marker::Copy for USB_DEVICE_STATE {} +impl ::core::clone::Clone for USB_DEVICE_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_DEVICE_STATUS { + pub AsUshort16: u16, + pub Anonymous: USB_DEVICE_STATUS_0, +} +impl ::core::marker::Copy for USB_DEVICE_STATUS {} +impl ::core::clone::Clone for USB_DEVICE_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_DEVICE_STATUS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for USB_DEVICE_STATUS_0 {} +impl ::core::clone::Clone for USB_DEVICE_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_DRIVER_VERSION_PARAMETERS { + pub DriverTrackingCode: u32, + pub USBDI_Version: u32, + pub USBUSER_Version: u32, + pub CheckedPortDriver: super::super::Foundation::BOOLEAN, + pub CheckedMiniportDriver: super::super::Foundation::BOOLEAN, + pub USB_Version: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_DRIVER_VERSION_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_DRIVER_VERSION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_ENDPOINT_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bEndpointAddress: u8, + pub bmAttributes: u8, + pub wMaxPacketSize: u16, + pub bInterval: u8, +} +impl ::core::marker::Copy for USB_ENDPOINT_DESCRIPTOR {} +impl ::core::clone::Clone for USB_ENDPOINT_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_ENDPOINT_STATUS { + pub AsUshort16: u16, + pub Anonymous: USB_ENDPOINT_STATUS_0, +} +impl ::core::marker::Copy for USB_ENDPOINT_STATUS {} +impl ::core::clone::Clone for USB_ENDPOINT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_ENDPOINT_STATUS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for USB_ENDPOINT_STATUS_0 {} +impl ::core::clone::Clone for USB_ENDPOINT_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION { + pub TimeTrackingHandle: super::super::Foundation::HANDLE, + pub InputFrameNumber: u32, + pub InputMicroFrameNumber: u32, + pub QueryPerformanceCounterAtInputFrameOrMicroFrame: i64, + pub QueryPerformanceCounterFrequency: i64, + pub PredictedAccuracyInMicroSeconds: u32, + pub CurrentGenerationID: u32, + pub CurrentQueryPerformanceCounter: i64, + pub CurrentHardwareFrameNumber: u32, + pub CurrentHardwareMicroFrameNumber: u32, + pub CurrentUSBFrameNumber: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union USB_FUNCTION_SUSPEND_OPTIONS { + pub AsUchar: u8, + pub Anonymous: USB_FUNCTION_SUSPEND_OPTIONS_0, +} +impl ::core::marker::Copy for USB_FUNCTION_SUSPEND_OPTIONS {} +impl ::core::clone::Clone for USB_FUNCTION_SUSPEND_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_FUNCTION_SUSPEND_OPTIONS_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for USB_FUNCTION_SUSPEND_OPTIONS_0 {} +impl ::core::clone::Clone for USB_FUNCTION_SUSPEND_OPTIONS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_HCD_DRIVERKEY_NAME { + pub ActualLength: u32, + pub DriverKeyName: [u16; 1], +} +impl ::core::marker::Copy for USB_HCD_DRIVERKEY_NAME {} +impl ::core::clone::Clone for USB_HCD_DRIVERKEY_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_HIGH_SPEED_MAXPACKET { + pub us: u16, +} +impl ::core::marker::Copy for USB_HIGH_SPEED_MAXPACKET {} +impl ::core::clone::Clone for USB_HIGH_SPEED_MAXPACKET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_HIGH_SPEED_MAXPACKET_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for USB_HIGH_SPEED_MAXPACKET_0 {} +impl ::core::clone::Clone for USB_HIGH_SPEED_MAXPACKET_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union USB_HUB_30_PORT_REMOTE_WAKE_MASK { + pub AsUchar8: u8, + pub Anonymous: USB_HUB_30_PORT_REMOTE_WAKE_MASK_0, +} +impl ::core::marker::Copy for USB_HUB_30_PORT_REMOTE_WAKE_MASK {} +impl ::core::clone::Clone for USB_HUB_30_PORT_REMOTE_WAKE_MASK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_HUB_30_PORT_REMOTE_WAKE_MASK_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for USB_HUB_30_PORT_REMOTE_WAKE_MASK_0 {} +impl ::core::clone::Clone for USB_HUB_30_PORT_REMOTE_WAKE_MASK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_HUB_CAPABILITIES { + pub _bitfield: u32, +} +impl ::core::marker::Copy for USB_HUB_CAPABILITIES {} +impl ::core::clone::Clone for USB_HUB_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_HUB_CAPABILITIES_EX { + pub CapabilityFlags: USB_HUB_CAP_FLAGS, +} +impl ::core::marker::Copy for USB_HUB_CAPABILITIES_EX {} +impl ::core::clone::Clone for USB_HUB_CAPABILITIES_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_HUB_CAP_FLAGS { + pub ul: u32, + pub Anonymous: USB_HUB_CAP_FLAGS_0, +} +impl ::core::marker::Copy for USB_HUB_CAP_FLAGS {} +impl ::core::clone::Clone for USB_HUB_CAP_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_HUB_CAP_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for USB_HUB_CAP_FLAGS_0 {} +impl ::core::clone::Clone for USB_HUB_CAP_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_HUB_CHANGE { + pub AsUshort16: u16, + pub Anonymous: USB_HUB_CHANGE_0, +} +impl ::core::marker::Copy for USB_HUB_CHANGE {} +impl ::core::clone::Clone for USB_HUB_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_HUB_CHANGE_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for USB_HUB_CHANGE_0 {} +impl ::core::clone::Clone for USB_HUB_CHANGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_HUB_DESCRIPTOR { + pub bDescriptorLength: u8, + pub bDescriptorType: u8, + pub bNumberOfPorts: u8, + pub wHubCharacteristics: u16, + pub bPowerOnToPowerGood: u8, + pub bHubControlCurrent: u8, + pub bRemoveAndPowerMask: [u8; 64], +} +impl ::core::marker::Copy for USB_HUB_DESCRIPTOR {} +impl ::core::clone::Clone for USB_HUB_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_HUB_DEVICE_INFO { + pub HubDescriptor: USB_HUB_DESCRIPTOR, + pub HubNumber: u32, + pub DeviceAddress: u16, + pub HubIsSelfPowered: super::super::Foundation::BOOLEAN, + pub HubIsRootHub: super::super::Foundation::BOOLEAN, + pub HubCapabilities: USB_HUB_CAPABILITIES, + pub NumberOfHubPorts: u32, + pub PortInfo: [USB_HUB_PORT_INFORMATION; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_HUB_DEVICE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_HUB_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_HUB_DEVICE_UXD_SETTINGS { + pub Version: u32, + pub PnpGuid: ::windows_sys::core::GUID, + pub OwnerGuid: ::windows_sys::core::GUID, + pub DeleteOnShutdown: u32, + pub DeleteOnReload: u32, + pub DeleteOnDisconnect: u32, + pub Reserved: [u32; 5], +} +impl ::core::marker::Copy for USB_HUB_DEVICE_UXD_SETTINGS {} +impl ::core::clone::Clone for USB_HUB_DEVICE_UXD_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_HUB_INFORMATION { + pub HubDescriptor: USB_HUB_DESCRIPTOR, + pub HubIsBusPowered: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_HUB_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_HUB_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_HUB_INFORMATION_EX { + pub HubType: USB_HUB_TYPE, + pub HighestPortNumber: u16, + pub u: USB_HUB_INFORMATION_EX_0, +} +impl ::core::marker::Copy for USB_HUB_INFORMATION_EX {} +impl ::core::clone::Clone for USB_HUB_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union USB_HUB_INFORMATION_EX_0 { + pub UsbHubDescriptor: USB_HUB_DESCRIPTOR, + pub Usb30HubDescriptor: USB_30_HUB_DESCRIPTOR, +} +impl ::core::marker::Copy for USB_HUB_INFORMATION_EX_0 {} +impl ::core::clone::Clone for USB_HUB_INFORMATION_EX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_HUB_NAME { + pub ActualLength: u32, + pub HubName: [u16; 1], +} +impl ::core::marker::Copy for USB_HUB_NAME {} +impl ::core::clone::Clone for USB_HUB_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_HUB_PORT_INFORMATION { + pub DeviceState: USB_DEVICE_STATE, + pub PortNumber: u16, + pub DeviceAddress: u16, + pub ConnectionIndex: u32, + pub ConnectionStatus: USB_CONNECTION_STATUS, +} +impl ::core::marker::Copy for USB_HUB_PORT_INFORMATION {} +impl ::core::clone::Clone for USB_HUB_PORT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_HUB_STATUS { + pub AsUshort16: u16, + pub Anonymous: USB_HUB_STATUS_0, +} +impl ::core::marker::Copy for USB_HUB_STATUS {} +impl ::core::clone::Clone for USB_HUB_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_HUB_STATUS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for USB_HUB_STATUS_0 {} +impl ::core::clone::Clone for USB_HUB_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_HUB_STATUS_AND_CHANGE { + pub AsUlong32: u32, + pub Anonymous: USB_HUB_STATUS_AND_CHANGE_0, +} +impl ::core::marker::Copy for USB_HUB_STATUS_AND_CHANGE {} +impl ::core::clone::Clone for USB_HUB_STATUS_AND_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_HUB_STATUS_AND_CHANGE_0 { + pub HubStatus: USB_HUB_STATUS, + pub HubChange: USB_HUB_CHANGE, +} +impl ::core::marker::Copy for USB_HUB_STATUS_AND_CHANGE_0 {} +impl ::core::clone::Clone for USB_HUB_STATUS_AND_CHANGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_IDLE_CALLBACK_INFO { + pub IdleCallback: USB_IDLE_CALLBACK, + pub IdleContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for USB_IDLE_CALLBACK_INFO {} +impl ::core::clone::Clone for USB_IDLE_CALLBACK_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_ID_STRING { + pub LanguageId: u16, + pub Pad: u16, + pub LengthInBytes: u32, + pub Buffer: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USB_ID_STRING {} +impl ::core::clone::Clone for USB_ID_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_INTERFACE_ASSOCIATION_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bFirstInterface: u8, + pub bInterfaceCount: u8, + pub bFunctionClass: u8, + pub bFunctionSubClass: u8, + pub bFunctionProtocol: u8, + pub iFunction: u8, +} +impl ::core::marker::Copy for USB_INTERFACE_ASSOCIATION_DESCRIPTOR {} +impl ::core::clone::Clone for USB_INTERFACE_ASSOCIATION_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_INTERFACE_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bInterfaceNumber: u8, + pub bAlternateSetting: u8, + pub bNumEndpoints: u8, + pub bInterfaceClass: u8, + pub bInterfaceSubClass: u8, + pub bInterfaceProtocol: u8, + pub iInterface: u8, +} +impl ::core::marker::Copy for USB_INTERFACE_DESCRIPTOR {} +impl ::core::clone::Clone for USB_INTERFACE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_INTERFACE_POWER_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bmCapabilitiesFlags: u8, + pub bBusPowerSavingD1: u8, + pub bSelfPowerSavingD1: u8, + pub bBusPowerSavingD2: u8, + pub bSelfPowerSavingD2: u8, + pub bBusPowerSavingD3: u8, + pub bSelfPowerSavingD3: u8, + pub TransitionTimeFromD1: u16, + pub TransitionTimeFromD2: u16, + pub TransitionTimeFromD3: u16, +} +impl ::core::marker::Copy for USB_INTERFACE_POWER_DESCRIPTOR {} +impl ::core::clone::Clone for USB_INTERFACE_POWER_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_INTERFACE_STATUS { + pub AsUshort16: u16, + pub Anonymous: USB_INTERFACE_STATUS_0, +} +impl ::core::marker::Copy for USB_INTERFACE_STATUS {} +impl ::core::clone::Clone for USB_INTERFACE_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_INTERFACE_STATUS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for USB_INTERFACE_STATUS_0 {} +impl ::core::clone::Clone for USB_INTERFACE_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_MI_PARENT_INFORMATION { + pub NumberOfInterfaces: u32, +} +impl ::core::marker::Copy for USB_MI_PARENT_INFORMATION {} +impl ::core::clone::Clone for USB_MI_PARENT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_NODE_CONNECTION_ATTRIBUTES { + pub ConnectionIndex: u32, + pub ConnectionStatus: USB_CONNECTION_STATUS, + pub PortAttributes: u32, +} +impl ::core::marker::Copy for USB_NODE_CONNECTION_ATTRIBUTES {} +impl ::core::clone::Clone for USB_NODE_CONNECTION_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_NODE_CONNECTION_DRIVERKEY_NAME { + pub ConnectionIndex: u32, + pub ActualLength: u32, + pub DriverKeyName: [u16; 1], +} +impl ::core::marker::Copy for USB_NODE_CONNECTION_DRIVERKEY_NAME {} +impl ::core::clone::Clone for USB_NODE_CONNECTION_DRIVERKEY_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_NODE_CONNECTION_INFORMATION { + pub ConnectionIndex: u32, + pub DeviceDescriptor: USB_DEVICE_DESCRIPTOR, + pub CurrentConfigurationValue: u8, + pub LowSpeed: super::super::Foundation::BOOLEAN, + pub DeviceIsHub: super::super::Foundation::BOOLEAN, + pub DeviceAddress: u16, + pub NumberOfOpenPipes: u32, + pub ConnectionStatus: USB_CONNECTION_STATUS, + pub PipeList: [USB_PIPE_INFO; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_NODE_CONNECTION_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_NODE_CONNECTION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_NODE_CONNECTION_INFORMATION_EX { + pub ConnectionIndex: u32, + pub DeviceDescriptor: USB_DEVICE_DESCRIPTOR, + pub CurrentConfigurationValue: u8, + pub Speed: u8, + pub DeviceIsHub: super::super::Foundation::BOOLEAN, + pub DeviceAddress: u16, + pub NumberOfOpenPipes: u32, + pub ConnectionStatus: USB_CONNECTION_STATUS, + pub PipeList: [USB_PIPE_INFO; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_NODE_CONNECTION_INFORMATION_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_NODE_CONNECTION_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_NODE_CONNECTION_INFORMATION_EX_V2 { + pub ConnectionIndex: u32, + pub Length: u32, + pub SupportedUsbProtocols: USB_PROTOCOLS, + pub Flags: USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS, +} +impl ::core::marker::Copy for USB_NODE_CONNECTION_INFORMATION_EX_V2 {} +impl ::core::clone::Clone for USB_NODE_CONNECTION_INFORMATION_EX_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS { + pub ul: u32, + pub Anonymous: USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS_0, +} +impl ::core::marker::Copy for USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS {} +impl ::core::clone::Clone for USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS_0 {} +impl ::core::clone::Clone for USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_NODE_CONNECTION_NAME { + pub ConnectionIndex: u32, + pub ActualLength: u32, + pub NodeName: [u16; 1], +} +impl ::core::marker::Copy for USB_NODE_CONNECTION_NAME {} +impl ::core::clone::Clone for USB_NODE_CONNECTION_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_NODE_INFORMATION { + pub NodeType: USB_HUB_NODE, + pub u: USB_NODE_INFORMATION_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_NODE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_NODE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union USB_NODE_INFORMATION_0 { + pub HubInformation: USB_HUB_INFORMATION, + pub MiParentInformation: USB_MI_PARENT_INFORMATION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_NODE_INFORMATION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_NODE_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_NOTIFICATION { + pub NotificationType: USB_NOTIFICATION_TYPE, +} +impl ::core::marker::Copy for USB_NOTIFICATION {} +impl ::core::clone::Clone for USB_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_OPEN_RAW_DEVICE_PARAMETERS { + pub PortStatus: u16, + pub MaxPacketEp0: u16, +} +impl ::core::marker::Copy for USB_OPEN_RAW_DEVICE_PARAMETERS {} +impl ::core::clone::Clone for USB_OPEN_RAW_DEVICE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_PASS_THRU_PARAMETERS { + pub FunctionGUID: ::windows_sys::core::GUID, + pub ParameterLength: u32, + pub Parameters: [u8; 4], +} +impl ::core::marker::Copy for USB_PASS_THRU_PARAMETERS {} +impl ::core::clone::Clone for USB_PASS_THRU_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_PIPE_INFO { + pub EndpointDescriptor: USB_ENDPOINT_DESCRIPTOR, + pub ScheduleOffset: u32, +} +impl ::core::marker::Copy for USB_PIPE_INFO {} +impl ::core::clone::Clone for USB_PIPE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_PORT_CHANGE { + pub AsUshort16: u16, + pub Usb20PortChange: USB_20_PORT_CHANGE, + pub Usb30PortChange: USB_30_PORT_CHANGE, +} +impl ::core::marker::Copy for USB_PORT_CHANGE {} +impl ::core::clone::Clone for USB_PORT_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_PORT_CONNECTOR_PROPERTIES { + pub ConnectionIndex: u32, + pub ActualLength: u32, + pub UsbPortProperties: USB_PORT_PROPERTIES, + pub CompanionIndex: u16, + pub CompanionPortNumber: u16, + pub CompanionHubSymbolicLinkName: [u16; 1], +} +impl ::core::marker::Copy for USB_PORT_CONNECTOR_PROPERTIES {} +impl ::core::clone::Clone for USB_PORT_CONNECTOR_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_PORT_EXT_STATUS { + pub AsUlong32: u32, + pub Anonymous: USB_PORT_EXT_STATUS_0, +} +impl ::core::marker::Copy for USB_PORT_EXT_STATUS {} +impl ::core::clone::Clone for USB_PORT_EXT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_PORT_EXT_STATUS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for USB_PORT_EXT_STATUS_0 {} +impl ::core::clone::Clone for USB_PORT_EXT_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_PORT_EXT_STATUS_AND_CHANGE { + pub AsUlong64: u64, + pub Anonymous: USB_PORT_EXT_STATUS_AND_CHANGE_0, +} +impl ::core::marker::Copy for USB_PORT_EXT_STATUS_AND_CHANGE {} +impl ::core::clone::Clone for USB_PORT_EXT_STATUS_AND_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_PORT_EXT_STATUS_AND_CHANGE_0 { + pub PortStatusChange: USB_PORT_STATUS_AND_CHANGE, + pub PortExtStatus: USB_PORT_EXT_STATUS, +} +impl ::core::marker::Copy for USB_PORT_EXT_STATUS_AND_CHANGE_0 {} +impl ::core::clone::Clone for USB_PORT_EXT_STATUS_AND_CHANGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_PORT_PROPERTIES { + pub ul: u32, + pub Anonymous: USB_PORT_PROPERTIES_0, +} +impl ::core::marker::Copy for USB_PORT_PROPERTIES {} +impl ::core::clone::Clone for USB_PORT_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_PORT_PROPERTIES_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for USB_PORT_PROPERTIES_0 {} +impl ::core::clone::Clone for USB_PORT_PROPERTIES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_PORT_STATUS { + pub AsUshort16: u16, + pub Usb20PortStatus: USB_20_PORT_STATUS, + pub Usb30PortStatus: USB_30_PORT_STATUS, +} +impl ::core::marker::Copy for USB_PORT_STATUS {} +impl ::core::clone::Clone for USB_PORT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_PORT_STATUS_AND_CHANGE { + pub AsUlong32: u32, + pub Anonymous: USB_PORT_STATUS_AND_CHANGE_0, +} +impl ::core::marker::Copy for USB_PORT_STATUS_AND_CHANGE {} +impl ::core::clone::Clone for USB_PORT_STATUS_AND_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_PORT_STATUS_AND_CHANGE_0 { + pub PortStatus: USB_PORT_STATUS, + pub PortChange: USB_PORT_CHANGE, +} +impl ::core::marker::Copy for USB_PORT_STATUS_AND_CHANGE_0 {} +impl ::core::clone::Clone for USB_PORT_STATUS_AND_CHANGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_POWER_INFO { + pub SystemState: WDMUSB_POWER_STATE, + pub HcDevicePowerState: WDMUSB_POWER_STATE, + pub HcDeviceWake: WDMUSB_POWER_STATE, + pub HcSystemWake: WDMUSB_POWER_STATE, + pub RhDevicePowerState: WDMUSB_POWER_STATE, + pub RhDeviceWake: WDMUSB_POWER_STATE, + pub RhSystemWake: WDMUSB_POWER_STATE, + pub LastSystemSleepState: WDMUSB_POWER_STATE, + pub CanWakeup: super::super::Foundation::BOOLEAN, + pub IsPowered: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_POWER_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_POWER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union USB_PROTOCOLS { + pub ul: u32, + pub Anonymous: USB_PROTOCOLS_0, +} +impl ::core::marker::Copy for USB_PROTOCOLS {} +impl ::core::clone::Clone for USB_PROTOCOLS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_PROTOCOLS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for USB_PROTOCOLS_0 {} +impl ::core::clone::Clone for USB_PROTOCOLS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_ROOT_HUB_NAME { + pub ActualLength: u32, + pub RootHubName: [u16; 1], +} +impl ::core::marker::Copy for USB_ROOT_HUB_NAME {} +impl ::core::clone::Clone for USB_ROOT_HUB_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_SEND_RAW_COMMAND_PARAMETERS { + pub Usb_bmRequest: u8, + pub Usb_bRequest: u8, + pub Usb_wVlaue: u16, + pub Usb_wIndex: u16, + pub Usb_wLength: u16, + pub DeviceAddress: u16, + pub MaximumPacketSize: u16, + pub Timeout: u32, + pub DataLength: u32, + pub UsbdStatusCode: i32, + pub Data: [u8; 4], +} +impl ::core::marker::Copy for USB_SEND_RAW_COMMAND_PARAMETERS {} +impl ::core::clone::Clone for USB_SEND_RAW_COMMAND_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION { + pub TimeTrackingHandle: super::super::Foundation::HANDLE, + pub IsStartupDelayTolerable: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION { + pub TimeTrackingHandle: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_STRING_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bString: [u16; 1], +} +impl ::core::marker::Copy for USB_STRING_DESCRIPTOR {} +impl ::core::clone::Clone for USB_STRING_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub wReserved: u16, + pub dwBytesPerInterval: u32, +} +impl ::core::marker::Copy for USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR {} +impl ::core::clone::Clone for USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR { + pub bLength: u8, + pub bDescriptorType: u8, + pub bMaxBurst: u8, + pub bmAttributes: USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0, + pub wBytesPerInterval: u16, +} +impl ::core::marker::Copy for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR {} +impl ::core::clone::Clone for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0 { + pub AsUchar: u8, + pub Bulk: USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_0, + pub Isochronous: USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_1, +} +impl ::core::marker::Copy for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0 {} +impl ::core::clone::Clone for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_0 {} +impl ::core::clone::Clone for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_1 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_1 {} +impl ::core::clone::Clone for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USB_TOPOLOGY_ADDRESS { + pub PciBusNumber: u32, + pub PciDeviceNumber: u32, + pub PciFunctionNumber: u32, + pub Reserved: u32, + pub RootHubPortNumber: u16, + pub HubPortNumber: [u16; 5], + pub Reserved2: u16, +} +impl ::core::marker::Copy for USB_TOPOLOGY_ADDRESS {} +impl ::core::clone::Clone for USB_TOPOLOGY_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_TRANSPORT_CHARACTERISTICS { + pub Version: u32, + pub TransportCharacteristicsFlags: u32, + pub CurrentRoundtripLatencyInMilliSeconds: u64, + pub MaxPotentialBandwidth: u64, +} +impl ::core::marker::Copy for USB_TRANSPORT_CHARACTERISTICS {} +impl ::core::clone::Clone for USB_TRANSPORT_CHARACTERISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION { + pub Handle: USB_CHANGE_REGISTRATION_HANDLE, + pub UsbTransportCharacteristics: USB_TRANSPORT_CHARACTERISTICS, +} +impl ::core::marker::Copy for USB_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION {} +impl ::core::clone::Clone for USB_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_TRANSPORT_CHARACTERISTICS_CHANGE_REGISTRATION { + pub ChangeNotificationInputFlags: u32, + pub Handle: USB_CHANGE_REGISTRATION_HANDLE, + pub UsbTransportCharacteristics: USB_TRANSPORT_CHARACTERISTICS, +} +impl ::core::marker::Copy for USB_TRANSPORT_CHARACTERISTICS_CHANGE_REGISTRATION {} +impl ::core::clone::Clone for USB_TRANSPORT_CHARACTERISTICS_CHANGE_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_TRANSPORT_CHARACTERISTICS_CHANGE_UNREGISTRATION { + pub Handle: USB_CHANGE_REGISTRATION_HANDLE, +} +impl ::core::marker::Copy for USB_TRANSPORT_CHARACTERISTICS_CHANGE_UNREGISTRATION {} +impl ::core::clone::Clone for USB_TRANSPORT_CHARACTERISTICS_CHANGE_UNREGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_UNICODE_NAME { + pub Length: u32, + pub String: [u16; 1], +} +impl ::core::marker::Copy for USB_UNICODE_NAME {} +impl ::core::clone::Clone for USB_UNICODE_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct USB_USB2HW_VERSION_PARAMETERS { + pub Usb2HwRevision: u8, +} +impl ::core::marker::Copy for USB_USB2HW_VERSION_PARAMETERS {} +impl ::core::clone::Clone for USB_USB2HW_VERSION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +pub type WINUSB_INTERFACE_HANDLE = isize; +#[repr(C)] +pub struct WINUSB_PIPE_INFORMATION { + pub PipeType: USBD_PIPE_TYPE, + pub PipeId: u8, + pub MaximumPacketSize: u16, + pub Interval: u8, +} +impl ::core::marker::Copy for WINUSB_PIPE_INFORMATION {} +impl ::core::clone::Clone for WINUSB_PIPE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINUSB_PIPE_INFORMATION_EX { + pub PipeType: USBD_PIPE_TYPE, + pub PipeId: u8, + pub MaximumPacketSize: u16, + pub Interval: u8, + pub MaximumBytesPerInterval: u32, +} +impl ::core::marker::Copy for WINUSB_PIPE_INFORMATION_EX {} +impl ::core::clone::Clone for WINUSB_PIPE_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WINUSB_SETUP_PACKET { + pub RequestType: u8, + pub Request: u8, + pub Value: u16, + pub Index: u16, + pub Length: u16, +} +impl ::core::marker::Copy for WINUSB_SETUP_PACKET {} +impl ::core::clone::Clone for WINUSB_SETUP_PACKET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_BULK_OR_INTERRUPT_TRANSFER { + pub Hdr: _URB_HEADER, + pub PipeHandle: *mut ::core::ffi::c_void, + pub TransferFlags: u32, + pub TransferBufferLength: u32, + pub TransferBuffer: *mut ::core::ffi::c_void, + pub TransferBufferMDL: *mut ::core::ffi::c_void, + pub UrbLink: *mut URB, + pub hca: _URB_HCD_AREA, +} +impl ::core::marker::Copy for _URB_BULK_OR_INTERRUPT_TRANSFER {} +impl ::core::clone::Clone for _URB_BULK_OR_INTERRUPT_TRANSFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_CONTROL_DESCRIPTOR_REQUEST { + pub Hdr: _URB_HEADER, + pub Reserved: *mut ::core::ffi::c_void, + pub Reserved0: u32, + pub TransferBufferLength: u32, + pub TransferBuffer: *mut ::core::ffi::c_void, + pub TransferBufferMDL: *mut ::core::ffi::c_void, + pub UrbLink: *mut URB, + pub hca: _URB_HCD_AREA, + pub Reserved1: u16, + pub Index: u8, + pub DescriptorType: u8, + pub LanguageId: u16, + pub Reserved2: u16, +} +impl ::core::marker::Copy for _URB_CONTROL_DESCRIPTOR_REQUEST {} +impl ::core::clone::Clone for _URB_CONTROL_DESCRIPTOR_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_CONTROL_FEATURE_REQUEST { + pub Hdr: _URB_HEADER, + pub Reserved: *mut ::core::ffi::c_void, + pub Reserved2: u32, + pub Reserved3: u32, + pub Reserved4: *mut ::core::ffi::c_void, + pub Reserved5: *mut ::core::ffi::c_void, + pub UrbLink: *mut URB, + pub hca: _URB_HCD_AREA, + pub Reserved0: u16, + pub FeatureSelector: u16, + pub Index: u16, + pub Reserved1: u16, +} +impl ::core::marker::Copy for _URB_CONTROL_FEATURE_REQUEST {} +impl ::core::clone::Clone for _URB_CONTROL_FEATURE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_CONTROL_GET_CONFIGURATION_REQUEST { + pub Hdr: _URB_HEADER, + pub Reserved: *mut ::core::ffi::c_void, + pub Reserved0: u32, + pub TransferBufferLength: u32, + pub TransferBuffer: *mut ::core::ffi::c_void, + pub TransferBufferMDL: *mut ::core::ffi::c_void, + pub UrbLink: *mut URB, + pub hca: _URB_HCD_AREA, + pub Reserved1: [u8; 8], +} +impl ::core::marker::Copy for _URB_CONTROL_GET_CONFIGURATION_REQUEST {} +impl ::core::clone::Clone for _URB_CONTROL_GET_CONFIGURATION_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_CONTROL_GET_INTERFACE_REQUEST { + pub Hdr: _URB_HEADER, + pub Reserved: *mut ::core::ffi::c_void, + pub Reserved0: u32, + pub TransferBufferLength: u32, + pub TransferBuffer: *mut ::core::ffi::c_void, + pub TransferBufferMDL: *mut ::core::ffi::c_void, + pub UrbLink: *mut URB, + pub hca: _URB_HCD_AREA, + pub Reserved1: [u8; 4], + pub Interface: u16, + pub Reserved2: u16, +} +impl ::core::marker::Copy for _URB_CONTROL_GET_INTERFACE_REQUEST {} +impl ::core::clone::Clone for _URB_CONTROL_GET_INTERFACE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_CONTROL_GET_STATUS_REQUEST { + pub Hdr: _URB_HEADER, + pub Reserved: *mut ::core::ffi::c_void, + pub Reserved0: u32, + pub TransferBufferLength: u32, + pub TransferBuffer: *mut ::core::ffi::c_void, + pub TransferBufferMDL: *mut ::core::ffi::c_void, + pub UrbLink: *mut URB, + pub hca: _URB_HCD_AREA, + pub Reserved1: [u8; 4], + pub Index: u16, + pub Reserved2: u16, +} +impl ::core::marker::Copy for _URB_CONTROL_GET_STATUS_REQUEST {} +impl ::core::clone::Clone for _URB_CONTROL_GET_STATUS_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_CONTROL_TRANSFER { + pub Hdr: _URB_HEADER, + pub PipeHandle: *mut ::core::ffi::c_void, + pub TransferFlags: u32, + pub TransferBufferLength: u32, + pub TransferBuffer: *mut ::core::ffi::c_void, + pub TransferBufferMDL: *mut ::core::ffi::c_void, + pub UrbLink: *mut URB, + pub hca: _URB_HCD_AREA, + pub SetupPacket: [u8; 8], +} +impl ::core::marker::Copy for _URB_CONTROL_TRANSFER {} +impl ::core::clone::Clone for _URB_CONTROL_TRANSFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_CONTROL_TRANSFER_EX { + pub Hdr: _URB_HEADER, + pub PipeHandle: *mut ::core::ffi::c_void, + pub TransferFlags: u32, + pub TransferBufferLength: u32, + pub TransferBuffer: *mut ::core::ffi::c_void, + pub TransferBufferMDL: *mut ::core::ffi::c_void, + pub Timeout: u32, + pub hca: _URB_HCD_AREA, + pub SetupPacket: [u8; 8], +} +impl ::core::marker::Copy for _URB_CONTROL_TRANSFER_EX {} +impl ::core::clone::Clone for _URB_CONTROL_TRANSFER_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST { + pub Hdr: _URB_HEADER, + pub Reserved: *mut ::core::ffi::c_void, + pub TransferFlags: u32, + pub TransferBufferLength: u32, + pub TransferBuffer: *mut ::core::ffi::c_void, + pub TransferBufferMDL: *mut ::core::ffi::c_void, + pub UrbLink: *mut URB, + pub hca: _URB_HCD_AREA, + pub RequestTypeReservedBits: u8, + pub Request: u8, + pub Value: u16, + pub Index: u16, + pub Reserved1: u16, +} +impl ::core::marker::Copy for _URB_CONTROL_VENDOR_OR_CLASS_REQUEST {} +impl ::core::clone::Clone for _URB_CONTROL_VENDOR_OR_CLASS_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_FRAME_LENGTH_CONTROL { + pub Hdr: _URB_HEADER, +} +impl ::core::marker::Copy for _URB_FRAME_LENGTH_CONTROL {} +impl ::core::clone::Clone for _URB_FRAME_LENGTH_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_GET_CURRENT_FRAME_NUMBER { + pub Hdr: _URB_HEADER, + pub FrameNumber: u32, +} +impl ::core::marker::Copy for _URB_GET_CURRENT_FRAME_NUMBER {} +impl ::core::clone::Clone for _URB_GET_CURRENT_FRAME_NUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_GET_FRAME_LENGTH { + pub Hdr: _URB_HEADER, + pub FrameLength: u32, + pub FrameNumber: u32, +} +impl ::core::marker::Copy for _URB_GET_FRAME_LENGTH {} +impl ::core::clone::Clone for _URB_GET_FRAME_LENGTH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS { + pub Hdr: _URB_HEADER, + pub PipeHandle: *mut ::core::ffi::c_void, + pub MaximumSendPathDelayInMilliSeconds: u32, + pub MaximumCompletionPathDelayInMilliSeconds: u32, +} +impl ::core::marker::Copy for _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS {} +impl ::core::clone::Clone for _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_HCD_AREA { + pub Reserved8: [*mut ::core::ffi::c_void; 8], +} +impl ::core::marker::Copy for _URB_HCD_AREA {} +impl ::core::clone::Clone for _URB_HCD_AREA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_HEADER { + pub Length: u16, + pub Function: u16, + pub Status: i32, + pub UsbdDeviceHandle: *mut ::core::ffi::c_void, + pub UsbdFlags: u32, +} +impl ::core::marker::Copy for _URB_HEADER {} +impl ::core::clone::Clone for _URB_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_ISOCH_TRANSFER { + pub Hdr: _URB_HEADER, + pub PipeHandle: *mut ::core::ffi::c_void, + pub TransferFlags: u32, + pub TransferBufferLength: u32, + pub TransferBuffer: *mut ::core::ffi::c_void, + pub TransferBufferMDL: *mut ::core::ffi::c_void, + pub UrbLink: *mut URB, + pub hca: _URB_HCD_AREA, + pub StartFrame: u32, + pub NumberOfPackets: u32, + pub ErrorCount: u32, + pub IsoPacket: [USBD_ISO_PACKET_DESCRIPTOR; 1], +} +impl ::core::marker::Copy for _URB_ISOCH_TRANSFER {} +impl ::core::clone::Clone for _URB_ISOCH_TRANSFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_OPEN_STATIC_STREAMS { + pub Hdr: _URB_HEADER, + pub PipeHandle: *mut ::core::ffi::c_void, + pub NumberOfStreams: u32, + pub StreamInfoVersion: u16, + pub StreamInfoSize: u16, + pub Streams: *mut USBD_STREAM_INFORMATION, +} +impl ::core::marker::Copy for _URB_OPEN_STATIC_STREAMS {} +impl ::core::clone::Clone for _URB_OPEN_STATIC_STREAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_OS_FEATURE_DESCRIPTOR_REQUEST { + pub Hdr: _URB_HEADER, + pub Reserved: *mut ::core::ffi::c_void, + pub Reserved0: u32, + pub TransferBufferLength: u32, + pub TransferBuffer: *mut ::core::ffi::c_void, + pub TransferBufferMDL: *mut ::core::ffi::c_void, + pub UrbLink: *mut URB, + pub hca: _URB_HCD_AREA, + pub _bitfield: u8, + pub Reserved2: u8, + pub InterfaceNumber: u8, + pub MS_PageIndex: u8, + pub MS_FeatureDescriptorIndex: u16, + pub Reserved3: u16, +} +impl ::core::marker::Copy for _URB_OS_FEATURE_DESCRIPTOR_REQUEST {} +impl ::core::clone::Clone for _URB_OS_FEATURE_DESCRIPTOR_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_PIPE_REQUEST { + pub Hdr: _URB_HEADER, + pub PipeHandle: *mut ::core::ffi::c_void, + pub Reserved: u32, +} +impl ::core::marker::Copy for _URB_PIPE_REQUEST {} +impl ::core::clone::Clone for _URB_PIPE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_SELECT_CONFIGURATION { + pub Hdr: _URB_HEADER, + pub ConfigurationDescriptor: *mut USB_CONFIGURATION_DESCRIPTOR, + pub ConfigurationHandle: *mut ::core::ffi::c_void, + pub Interface: USBD_INTERFACE_INFORMATION, +} +impl ::core::marker::Copy for _URB_SELECT_CONFIGURATION {} +impl ::core::clone::Clone for _URB_SELECT_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_SELECT_INTERFACE { + pub Hdr: _URB_HEADER, + pub ConfigurationHandle: *mut ::core::ffi::c_void, + pub Interface: USBD_INTERFACE_INFORMATION, +} +impl ::core::marker::Copy for _URB_SELECT_INTERFACE {} +impl ::core::clone::Clone for _URB_SELECT_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _URB_SET_FRAME_LENGTH { + pub Hdr: _URB_HEADER, + pub FrameLengthDelta: i32, +} +impl ::core::marker::Copy for _URB_SET_FRAME_LENGTH {} +impl ::core::clone::Clone for _URB_SET_FRAME_LENGTH { + fn clone(&self) -> Self { + *self + } +} +pub type USB_IDLE_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/WebServicesOnDevices/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/WebServicesOnDevices/mod.rs new file mode 100644 index 000000000..076395de5 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/WebServicesOnDevices/mod.rs @@ -0,0 +1,1091 @@ +::windows_targets::link!("wsdapi.dll" "system" fn WSDAllocateLinkedMemory(pparent : *mut ::core::ffi::c_void, cbsize : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("wsdapi.dll" "system" fn WSDAttachLinkedMemory(pparent : *mut ::core::ffi::c_void, pchild : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateDeviceHost(pszlocalid : ::windows_sys::core::PCWSTR, pcontext : IWSDXMLContext, ppdevicehost : *mut IWSDDeviceHost) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateDeviceHost2(pszlocalid : ::windows_sys::core::PCWSTR, pcontext : IWSDXMLContext, pconfigparams : *const WSD_CONFIG_PARAM, dwconfigparamcount : u32, ppdevicehost : *mut IWSDDeviceHost) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateDeviceHostAdvanced(pszlocalid : ::windows_sys::core::PCWSTR, pcontext : IWSDXMLContext, pphostaddresses : *const IWSDAddress, dwhostaddresscount : u32, ppdevicehost : *mut IWSDDeviceHost) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateDeviceProxy(pszdeviceid : ::windows_sys::core::PCWSTR, pszlocalid : ::windows_sys::core::PCWSTR, pcontext : IWSDXMLContext, ppdeviceproxy : *mut IWSDDeviceProxy) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateDeviceProxy2(pszdeviceid : ::windows_sys::core::PCWSTR, pszlocalid : ::windows_sys::core::PCWSTR, pcontext : IWSDXMLContext, pconfigparams : *const WSD_CONFIG_PARAM, dwconfigparamcount : u32, ppdeviceproxy : *mut IWSDDeviceProxy) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateDeviceProxyAdvanced(pszdeviceid : ::windows_sys::core::PCWSTR, pdeviceaddress : IWSDAddress, pszlocalid : ::windows_sys::core::PCWSTR, pcontext : IWSDXMLContext, ppdeviceproxy : *mut IWSDDeviceProxy) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateDiscoveryProvider(pcontext : IWSDXMLContext, ppprovider : *mut IWSDiscoveryProvider) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateDiscoveryProvider2(pcontext : IWSDXMLContext, pconfigparams : *const WSD_CONFIG_PARAM, dwconfigparamcount : u32, ppprovider : *mut IWSDiscoveryProvider) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateDiscoveryPublisher(pcontext : IWSDXMLContext, pppublisher : *mut IWSDiscoveryPublisher) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateDiscoveryPublisher2(pcontext : IWSDXMLContext, pconfigparams : *const WSD_CONFIG_PARAM, dwconfigparamcount : u32, pppublisher : *mut IWSDiscoveryPublisher) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateHttpAddress(ppaddress : *mut IWSDHttpAddress) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateHttpMessageParameters(pptxparams : *mut IWSDHttpMessageParameters) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateOutboundAttachment(ppattachment : *mut IWSDOutboundAttachment) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateUdpAddress(ppaddress : *mut IWSDUdpAddress) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDCreateUdpMessageParameters(pptxparams : *mut IWSDUdpMessageParameters) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDDetachLinkedMemory(pvoid : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("wsdapi.dll" "system" fn WSDFreeLinkedMemory(pvoid : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("wsdapi.dll" "system" fn WSDGenerateFault(pszcode : ::windows_sys::core::PCWSTR, pszsubcode : ::windows_sys::core::PCWSTR, pszreason : ::windows_sys::core::PCWSTR, pszdetail : ::windows_sys::core::PCWSTR, pcontext : IWSDXMLContext, ppfault : *mut *mut WSD_SOAP_FAULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDGenerateFaultEx(pcode : *const WSDXML_NAME, psubcode : *const WSDXML_NAME, preasons : *const WSD_LOCALIZED_STRING_LIST, pszdetail : ::windows_sys::core::PCWSTR, ppfault : *mut *mut WSD_SOAP_FAULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDGetConfigurationOption(dwoption : u32, pvoid : *mut ::core::ffi::c_void, cboutbuffer : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDSetConfigurationOption(dwoption : u32, pvoid : *const ::core::ffi::c_void, cbinbuffer : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDUriDecode(source : ::windows_sys::core::PCWSTR, cchsource : u32, destout : *mut ::windows_sys::core::PWSTR, cchdestout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDUriEncode(source : ::windows_sys::core::PCWSTR, cchsource : u32, destout : *mut ::windows_sys::core::PWSTR, cchdestout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDXMLAddChild(pparent : *mut WSDXML_ELEMENT, pchild : *mut WSDXML_ELEMENT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDXMLAddSibling(pfirst : *mut WSDXML_ELEMENT, psecond : *mut WSDXML_ELEMENT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDXMLBuildAnyForSingleElement(pelementname : *mut WSDXML_NAME, psztext : ::windows_sys::core::PCWSTR, ppany : *mut *mut WSDXML_ELEMENT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDXMLCleanupElement(pany : *mut WSDXML_ELEMENT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDXMLCreateContext(ppcontext : *mut IWSDXMLContext) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDXMLGetNameFromBuiltinNamespace(psznamespace : ::windows_sys::core::PCWSTR, pszname : ::windows_sys::core::PCWSTR, ppname : *mut *mut WSDXML_NAME) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wsdapi.dll" "system" fn WSDXMLGetValueFromAny(psznamespace : ::windows_sys::core::PCWSTR, pszname : ::windows_sys::core::PCWSTR, pany : *mut WSDXML_ELEMENT, ppszvalue : *mut ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +pub type IWSDAddress = *mut ::core::ffi::c_void; +pub type IWSDAsyncCallback = *mut ::core::ffi::c_void; +pub type IWSDAsyncResult = *mut ::core::ffi::c_void; +pub type IWSDAttachment = *mut ::core::ffi::c_void; +pub type IWSDDeviceHost = *mut ::core::ffi::c_void; +pub type IWSDDeviceHostNotify = *mut ::core::ffi::c_void; +pub type IWSDDeviceProxy = *mut ::core::ffi::c_void; +pub type IWSDEndpointProxy = *mut ::core::ffi::c_void; +pub type IWSDEventingStatus = *mut ::core::ffi::c_void; +pub type IWSDHttpAddress = *mut ::core::ffi::c_void; +pub type IWSDHttpAuthParameters = *mut ::core::ffi::c_void; +pub type IWSDHttpMessageParameters = *mut ::core::ffi::c_void; +pub type IWSDInboundAttachment = *mut ::core::ffi::c_void; +pub type IWSDMessageParameters = *mut ::core::ffi::c_void; +pub type IWSDMetadataExchange = *mut ::core::ffi::c_void; +pub type IWSDOutboundAttachment = *mut ::core::ffi::c_void; +pub type IWSDSSLClientCertificate = *mut ::core::ffi::c_void; +pub type IWSDScopeMatchingRule = *mut ::core::ffi::c_void; +pub type IWSDServiceMessaging = *mut ::core::ffi::c_void; +pub type IWSDServiceProxy = *mut ::core::ffi::c_void; +pub type IWSDServiceProxyEventing = *mut ::core::ffi::c_void; +pub type IWSDSignatureProperty = *mut ::core::ffi::c_void; +pub type IWSDTransportAddress = *mut ::core::ffi::c_void; +pub type IWSDUdpAddress = *mut ::core::ffi::c_void; +pub type IWSDUdpMessageParameters = *mut ::core::ffi::c_void; +pub type IWSDXMLContext = *mut ::core::ffi::c_void; +pub type IWSDiscoveredService = *mut ::core::ffi::c_void; +pub type IWSDiscoveryProvider = *mut ::core::ffi::c_void; +pub type IWSDiscoveryProviderNotify = *mut ::core::ffi::c_void; +pub type IWSDiscoveryPublisher = *mut ::core::ffi::c_void; +pub type IWSDiscoveryPublisherNotify = *mut ::core::ffi::c_void; +pub const DirectedDiscovery: DeviceDiscoveryMechanism = 1i32; +pub const MulticastDiscovery: DeviceDiscoveryMechanism = 0i32; +pub const ONE_WAY: WSDUdpMessageType = 0i32; +pub const OpAnyElement: WSDXML_OP = 6i32; +pub const OpAnyElements: WSDXML_OP = 7i32; +pub const OpAnyNumber: WSDXML_OP = 17i32; +pub const OpAnyText: WSDXML_OP = 8i32; +pub const OpAnything: WSDXML_OP = 16i32; +pub const OpAttribute_: WSDXML_OP = 9i32; +pub const OpBeginAll: WSDXML_OP = 14i32; +pub const OpBeginAnyElement: WSDXML_OP = 3i32; +pub const OpBeginChoice: WSDXML_OP = 10i32; +pub const OpBeginElement_: WSDXML_OP = 2i32; +pub const OpBeginSequence: WSDXML_OP = 12i32; +pub const OpElement_: WSDXML_OP = 5i32; +pub const OpEndAll: WSDXML_OP = 15i32; +pub const OpEndChoice: WSDXML_OP = 11i32; +pub const OpEndElement: WSDXML_OP = 4i32; +pub const OpEndOfTable: WSDXML_OP = 1i32; +pub const OpEndSequence: WSDXML_OP = 13i32; +pub const OpFormatBool_: WSDXML_OP = 20i32; +pub const OpFormatDateTime_: WSDXML_OP = 40i32; +pub const OpFormatDom_: WSDXML_OP = 30i32; +pub const OpFormatDouble_: WSDXML_OP = 42i32; +pub const OpFormatDuration_: WSDXML_OP = 39i32; +pub const OpFormatDynamicType_: WSDXML_OP = 37i32; +pub const OpFormatFloat_: WSDXML_OP = 41i32; +pub const OpFormatInt16_: WSDXML_OP = 22i32; +pub const OpFormatInt32_: WSDXML_OP = 23i32; +pub const OpFormatInt64_: WSDXML_OP = 24i32; +pub const OpFormatInt8_: WSDXML_OP = 21i32; +pub const OpFormatListInsertTail_: WSDXML_OP = 35i32; +pub const OpFormatLookupType_: WSDXML_OP = 38i32; +pub const OpFormatMax: WSDXML_OP = 46i32; +pub const OpFormatName_: WSDXML_OP = 34i32; +pub const OpFormatStruct_: WSDXML_OP = 31i32; +pub const OpFormatType_: WSDXML_OP = 36i32; +pub const OpFormatUInt16_: WSDXML_OP = 26i32; +pub const OpFormatUInt32_: WSDXML_OP = 27i32; +pub const OpFormatUInt64_: WSDXML_OP = 28i32; +pub const OpFormatUInt8_: WSDXML_OP = 25i32; +pub const OpFormatUnicodeString_: WSDXML_OP = 29i32; +pub const OpFormatUri_: WSDXML_OP = 32i32; +pub const OpFormatUuidUri_: WSDXML_OP = 33i32; +pub const OpFormatXMLDeclaration_: WSDXML_OP = 45i32; +pub const OpNone: WSDXML_OP = 0i32; +pub const OpOneOrMore: WSDXML_OP = 18i32; +pub const OpOptional: WSDXML_OP = 19i32; +pub const OpProcess_: WSDXML_OP = 43i32; +pub const OpQualifiedAttribute_: WSDXML_OP = 44i32; +pub const SecureDirectedDiscovery: DeviceDiscoveryMechanism = 2i32; +pub const TWO_WAY: WSDUdpMessageType = 1i32; +pub const WSDAPI_ADDRESSFAMILY_IPV4: u32 = 1u32; +pub const WSDAPI_ADDRESSFAMILY_IPV6: u32 = 2u32; +pub const WSDAPI_COMPACTSIG_ACCEPT_ALL_MESSAGES: u32 = 1u32; +pub const WSDAPI_OPTION_MAX_INBOUND_MESSAGE_SIZE: u32 = 1u32; +pub const WSDAPI_OPTION_TRACE_XML_TO_DEBUGGER: u32 = 2u32; +pub const WSDAPI_OPTION_TRACE_XML_TO_FILE: u32 = 3u32; +pub const WSDAPI_SSL_CERT_APPLY_DEFAULT_CHECKS: u32 = 0u32; +pub const WSDAPI_SSL_CERT_IGNORE_EXPIRY: u32 = 2u32; +pub const WSDAPI_SSL_CERT_IGNORE_INVALID_CN: u32 = 16u32; +pub const WSDAPI_SSL_CERT_IGNORE_REVOCATION: u32 = 1u32; +pub const WSDAPI_SSL_CERT_IGNORE_UNKNOWN_CA: u32 = 8u32; +pub const WSDAPI_SSL_CERT_IGNORE_WRONG_USAGE: u32 = 4u32; +pub const WSDET_INCOMING_FAULT: WSDEventType = 2i32; +pub const WSDET_INCOMING_MESSAGE: WSDEventType = 1i32; +pub const WSDET_NONE: WSDEventType = 0i32; +pub const WSDET_RESPONSE_TIMEOUT: WSDEventType = 4i32; +pub const WSDET_TRANSMISSION_FAILURE: WSDEventType = 3i32; +pub const WSD_CONFIG_DEVICE_ADDRESSES: WSD_CONFIG_PARAM_TYPE = 10i32; +pub const WSD_CONFIG_HOSTING_ADDRESSES: WSD_CONFIG_PARAM_TYPE = 9i32; +pub const WSD_CONFIG_MAX_INBOUND_MESSAGE_SIZE: WSD_CONFIG_PARAM_TYPE = 1i32; +pub const WSD_CONFIG_MAX_OUTBOUND_MESSAGE_SIZE: WSD_CONFIG_PARAM_TYPE = 2i32; +pub const WSD_DEFAULT_EVENTING_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://*:5357/"); +pub const WSD_DEFAULT_HOSTING_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://*:5357/"); +pub const WSD_DEFAULT_SECURE_HOSTING_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("https://*:5358/"); +pub const WSD_PT_ALL: WSD_PROTOCOL_TYPE = 255i32; +pub const WSD_PT_HTTP: WSD_PROTOCOL_TYPE = 2i32; +pub const WSD_PT_HTTPS: WSD_PROTOCOL_TYPE = 4i32; +pub const WSD_PT_NONE: WSD_PROTOCOL_TYPE = 0i32; +pub const WSD_PT_UDP: WSD_PROTOCOL_TYPE = 1i32; +pub const WSD_SECURITY_COMPACTSIG_SIGNING_CERT: WSD_CONFIG_PARAM_TYPE = 7i32; +pub const WSD_SECURITY_COMPACTSIG_VALIDATION: WSD_CONFIG_PARAM_TYPE = 8i32; +pub const WSD_SECURITY_HTTP_AUTH_SCHEME_NEGOTIATE: u32 = 1u32; +pub const WSD_SECURITY_HTTP_AUTH_SCHEME_NTLM: u32 = 2u32; +pub const WSD_SECURITY_REQUIRE_CLIENT_CERT_OR_HTTP_CLIENT_AUTH: WSD_CONFIG_PARAM_TYPE = 12i32; +pub const WSD_SECURITY_REQUIRE_HTTP_CLIENT_AUTH: WSD_CONFIG_PARAM_TYPE = 11i32; +pub const WSD_SECURITY_SSL_CERT_FOR_CLIENT_AUTH: WSD_CONFIG_PARAM_TYPE = 3i32; +pub const WSD_SECURITY_SSL_CLIENT_CERT_VALIDATION: WSD_CONFIG_PARAM_TYPE = 5i32; +pub const WSD_SECURITY_SSL_NEGOTIATE_CLIENT_CERT: WSD_CONFIG_PARAM_TYPE = 6i32; +pub const WSD_SECURITY_SSL_SERVER_CERT_VALIDATION: WSD_CONFIG_PARAM_TYPE = 4i32; +pub const WSD_SECURITY_USE_HTTP_CLIENT_AUTH: WSD_CONFIG_PARAM_TYPE = 13i32; +pub type DeviceDiscoveryMechanism = i32; +pub type WSDEventType = i32; +pub type WSDUdpMessageType = i32; +pub type WSDXML_OP = i32; +pub type WSD_CONFIG_PARAM_TYPE = i32; +pub type WSD_PROTOCOL_TYPE = i32; +#[repr(C)] +pub struct REQUESTBODY_GetStatus { + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for REQUESTBODY_GetStatus {} +impl ::core::clone::Clone for REQUESTBODY_GetStatus { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REQUESTBODY_Renew { + pub Expires: *mut WSD_EVENTING_EXPIRES, + pub Any: *mut WSDXML_ELEMENT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REQUESTBODY_Renew {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REQUESTBODY_Renew { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REQUESTBODY_Subscribe { + pub EndTo: *mut WSD_ENDPOINT_REFERENCE, + pub Delivery: *mut WSD_EVENTING_DELIVERY_MODE, + pub Expires: *mut WSD_EVENTING_EXPIRES, + pub Filter: *mut WSD_EVENTING_FILTER, + pub Any: *mut WSDXML_ELEMENT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REQUESTBODY_Subscribe {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REQUESTBODY_Subscribe { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REQUESTBODY_Unsubscribe { + pub any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for REQUESTBODY_Unsubscribe {} +impl ::core::clone::Clone for REQUESTBODY_Unsubscribe { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RESPONSEBODY_GetMetadata { + pub Metadata: *mut WSD_METADATA_SECTION_LIST, +} +impl ::core::marker::Copy for RESPONSEBODY_GetMetadata {} +impl ::core::clone::Clone for RESPONSEBODY_GetMetadata { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RESPONSEBODY_GetStatus { + pub expires: *mut WSD_EVENTING_EXPIRES, + pub any: *mut WSDXML_ELEMENT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RESPONSEBODY_GetStatus {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RESPONSEBODY_GetStatus { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RESPONSEBODY_Renew { + pub expires: *mut WSD_EVENTING_EXPIRES, + pub any: *mut WSDXML_ELEMENT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RESPONSEBODY_Renew {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RESPONSEBODY_Renew { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RESPONSEBODY_Subscribe { + pub SubscriptionManager: *mut WSD_ENDPOINT_REFERENCE, + pub expires: *mut WSD_EVENTING_EXPIRES, + pub any: *mut WSDXML_ELEMENT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RESPONSEBODY_Subscribe {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RESPONSEBODY_Subscribe { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RESPONSEBODY_SubscriptionEnd { + pub SubscriptionManager: *mut WSD_ENDPOINT_REFERENCE, + pub Status: ::windows_sys::core::PCWSTR, + pub Reason: *mut WSD_LOCALIZED_STRING, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for RESPONSEBODY_SubscriptionEnd {} +impl ::core::clone::Clone for RESPONSEBODY_SubscriptionEnd { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSDUdpRetransmitParams { + pub ulSendDelay: u32, + pub ulRepeat: u32, + pub ulRepeatMinDelay: u32, + pub ulRepeatMaxDelay: u32, + pub ulRepeatUpperDelay: u32, +} +impl ::core::marker::Copy for WSDUdpRetransmitParams {} +impl ::core::clone::Clone for WSDUdpRetransmitParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSDXML_ATTRIBUTE { + pub Element: *mut WSDXML_ELEMENT, + pub Next: *mut WSDXML_ATTRIBUTE, + pub Name: *mut WSDXML_NAME, + pub Value: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WSDXML_ATTRIBUTE {} +impl ::core::clone::Clone for WSDXML_ATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSDXML_ELEMENT { + pub Node: WSDXML_NODE, + pub Name: *mut WSDXML_NAME, + pub FirstAttribute: *mut WSDXML_ATTRIBUTE, + pub FirstChild: *mut WSDXML_NODE, + pub PrefixMappings: *mut WSDXML_PREFIX_MAPPING, +} +impl ::core::marker::Copy for WSDXML_ELEMENT {} +impl ::core::clone::Clone for WSDXML_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSDXML_ELEMENT_LIST { + pub Next: *mut WSDXML_ELEMENT_LIST, + pub Element: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSDXML_ELEMENT_LIST {} +impl ::core::clone::Clone for WSDXML_ELEMENT_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSDXML_NAME { + pub Space: *mut WSDXML_NAMESPACE, + pub LocalName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WSDXML_NAME {} +impl ::core::clone::Clone for WSDXML_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSDXML_NAMESPACE { + pub Uri: ::windows_sys::core::PCWSTR, + pub PreferredPrefix: ::windows_sys::core::PCWSTR, + pub Names: *mut WSDXML_NAME, + pub NamesCount: u16, + pub Encoding: u16, +} +impl ::core::marker::Copy for WSDXML_NAMESPACE {} +impl ::core::clone::Clone for WSDXML_NAMESPACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSDXML_NODE { + pub Type: i32, + pub Parent: *mut WSDXML_ELEMENT, + pub Next: *mut WSDXML_NODE, +} +impl WSDXML_NODE { + pub const ElementType: i32 = 0i32; + pub const TextType: i32 = 1i32; +} +impl ::core::marker::Copy for WSDXML_NODE {} +impl ::core::clone::Clone for WSDXML_NODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSDXML_PREFIX_MAPPING { + pub Refs: u32, + pub Next: *mut WSDXML_PREFIX_MAPPING, + pub Space: *mut WSDXML_NAMESPACE, + pub Prefix: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WSDXML_PREFIX_MAPPING {} +impl ::core::clone::Clone for WSDXML_PREFIX_MAPPING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSDXML_TEXT { + pub Node: WSDXML_NODE, + pub Text: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WSDXML_TEXT {} +impl ::core::clone::Clone for WSDXML_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSDXML_TYPE { + pub Uri: ::windows_sys::core::PCWSTR, + pub Table: *const u8, +} +impl ::core::marker::Copy for WSDXML_TYPE {} +impl ::core::clone::Clone for WSDXML_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_APP_SEQUENCE { + pub InstanceId: u64, + pub SequenceId: ::windows_sys::core::PCWSTR, + pub MessageNumber: u64, +} +impl ::core::marker::Copy for WSD_APP_SEQUENCE {} +impl ::core::clone::Clone for WSD_APP_SEQUENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_BYE { + pub EndpointReference: *mut WSD_ENDPOINT_REFERENCE, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_BYE {} +impl ::core::clone::Clone for WSD_BYE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_CONFIG_ADDRESSES { + pub addresses: *mut IWSDAddress, + pub dwAddressCount: u32, +} +impl ::core::marker::Copy for WSD_CONFIG_ADDRESSES {} +impl ::core::clone::Clone for WSD_CONFIG_ADDRESSES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_CONFIG_PARAM { + pub configParamType: WSD_CONFIG_PARAM_TYPE, + pub pConfigData: *mut ::core::ffi::c_void, + pub dwConfigDataSize: u32, +} +impl ::core::marker::Copy for WSD_CONFIG_PARAM {} +impl ::core::clone::Clone for WSD_CONFIG_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSD_DATETIME { + pub isPositive: super::super::Foundation::BOOL, + pub year: u32, + pub month: u8, + pub day: u8, + pub hour: u8, + pub minute: u8, + pub second: u8, + pub millisecond: u32, + pub TZIsLocal: super::super::Foundation::BOOL, + pub TZIsPositive: super::super::Foundation::BOOL, + pub TZHour: u8, + pub TZMinute: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSD_DATETIME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSD_DATETIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSD_DURATION { + pub isPositive: super::super::Foundation::BOOL, + pub year: u32, + pub month: u32, + pub day: u32, + pub hour: u32, + pub minute: u32, + pub second: u32, + pub millisecond: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSD_DURATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSD_DURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_ENDPOINT_REFERENCE { + pub Address: ::windows_sys::core::PCWSTR, + pub ReferenceProperties: WSD_REFERENCE_PROPERTIES, + pub ReferenceParameters: WSD_REFERENCE_PARAMETERS, + pub PortType: *mut WSDXML_NAME, + pub ServiceName: *mut WSDXML_NAME, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_ENDPOINT_REFERENCE {} +impl ::core::clone::Clone for WSD_ENDPOINT_REFERENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_ENDPOINT_REFERENCE_LIST { + pub Next: *mut WSD_ENDPOINT_REFERENCE_LIST, + pub Element: *mut WSD_ENDPOINT_REFERENCE, +} +impl ::core::marker::Copy for WSD_ENDPOINT_REFERENCE_LIST {} +impl ::core::clone::Clone for WSD_ENDPOINT_REFERENCE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_EVENT { + pub Hr: ::windows_sys::core::HRESULT, + pub EventType: u32, + pub DispatchTag: ::windows_sys::core::PWSTR, + pub HandlerContext: WSD_HANDLER_CONTEXT, + pub Soap: *mut WSD_SOAP_MESSAGE, + pub Operation: *mut WSD_OPERATION, + pub MessageParameters: IWSDMessageParameters, +} +impl ::core::marker::Copy for WSD_EVENT {} +impl ::core::clone::Clone for WSD_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_EVENTING_DELIVERY_MODE { + pub Mode: ::windows_sys::core::PCWSTR, + pub Push: *mut WSD_EVENTING_DELIVERY_MODE_PUSH, + pub Data: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WSD_EVENTING_DELIVERY_MODE {} +impl ::core::clone::Clone for WSD_EVENTING_DELIVERY_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_EVENTING_DELIVERY_MODE_PUSH { + pub NotifyTo: *mut WSD_ENDPOINT_REFERENCE, +} +impl ::core::marker::Copy for WSD_EVENTING_DELIVERY_MODE_PUSH {} +impl ::core::clone::Clone for WSD_EVENTING_DELIVERY_MODE_PUSH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSD_EVENTING_EXPIRES { + pub Duration: *mut WSD_DURATION, + pub DateTime: *mut WSD_DATETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSD_EVENTING_EXPIRES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSD_EVENTING_EXPIRES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_EVENTING_FILTER { + pub Dialect: ::windows_sys::core::PCWSTR, + pub FilterAction: *mut WSD_EVENTING_FILTER_ACTION, + pub Data: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WSD_EVENTING_FILTER {} +impl ::core::clone::Clone for WSD_EVENTING_FILTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_EVENTING_FILTER_ACTION { + pub Actions: *mut WSD_URI_LIST, +} +impl ::core::marker::Copy for WSD_EVENTING_FILTER_ACTION {} +impl ::core::clone::Clone for WSD_EVENTING_FILTER_ACTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_HANDLER_CONTEXT { + pub Handler: PWSD_SOAP_MESSAGE_HANDLER, + pub PVoid: *mut ::core::ffi::c_void, + pub Unknown: ::windows_sys::core::IUnknown, +} +impl ::core::marker::Copy for WSD_HANDLER_CONTEXT {} +impl ::core::clone::Clone for WSD_HANDLER_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_HEADER_RELATESTO { + pub RelationshipType: *mut WSDXML_NAME, + pub MessageID: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSD_HEADER_RELATESTO {} +impl ::core::clone::Clone for WSD_HEADER_RELATESTO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_HELLO { + pub EndpointReference: *mut WSD_ENDPOINT_REFERENCE, + pub Types: *mut WSD_NAME_LIST, + pub Scopes: *mut WSD_SCOPES, + pub XAddrs: *mut WSD_URI_LIST, + pub MetadataVersion: u64, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_HELLO {} +impl ::core::clone::Clone for WSD_HELLO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_HOST_METADATA { + pub Host: *mut WSD_SERVICE_METADATA, + pub Hosted: *mut WSD_SERVICE_METADATA_LIST, +} +impl ::core::marker::Copy for WSD_HOST_METADATA {} +impl ::core::clone::Clone for WSD_HOST_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_LOCALIZED_STRING { + pub lang: ::windows_sys::core::PCWSTR, + pub String: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSD_LOCALIZED_STRING {} +impl ::core::clone::Clone for WSD_LOCALIZED_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_LOCALIZED_STRING_LIST { + pub Next: *mut WSD_LOCALIZED_STRING_LIST, + pub Element: *mut WSD_LOCALIZED_STRING, +} +impl ::core::marker::Copy for WSD_LOCALIZED_STRING_LIST {} +impl ::core::clone::Clone for WSD_LOCALIZED_STRING_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_METADATA_SECTION { + pub Dialect: ::windows_sys::core::PCWSTR, + pub Identifier: ::windows_sys::core::PCWSTR, + pub Data: *mut ::core::ffi::c_void, + pub MetadataReference: *mut WSD_ENDPOINT_REFERENCE, + pub Location: ::windows_sys::core::PCWSTR, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_METADATA_SECTION {} +impl ::core::clone::Clone for WSD_METADATA_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_METADATA_SECTION_LIST { + pub Next: *mut WSD_METADATA_SECTION_LIST, + pub Element: *mut WSD_METADATA_SECTION, +} +impl ::core::marker::Copy for WSD_METADATA_SECTION_LIST {} +impl ::core::clone::Clone for WSD_METADATA_SECTION_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_NAME_LIST { + pub Next: *mut WSD_NAME_LIST, + pub Element: *mut WSDXML_NAME, +} +impl ::core::marker::Copy for WSD_NAME_LIST {} +impl ::core::clone::Clone for WSD_NAME_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_OPERATION { + pub RequestType: *mut WSDXML_TYPE, + pub ResponseType: *mut WSDXML_TYPE, + pub RequestStubFunction: WSD_STUB_FUNCTION, +} +impl ::core::marker::Copy for WSD_OPERATION {} +impl ::core::clone::Clone for WSD_OPERATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_PORT_TYPE { + pub EncodedName: u32, + pub OperationCount: u32, + pub Operations: *mut WSD_OPERATION, + pub ProtocolType: WSD_PROTOCOL_TYPE, +} +impl ::core::marker::Copy for WSD_PORT_TYPE {} +impl ::core::clone::Clone for WSD_PORT_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_PROBE { + pub Types: *mut WSD_NAME_LIST, + pub Scopes: *mut WSD_SCOPES, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_PROBE {} +impl ::core::clone::Clone for WSD_PROBE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_PROBE_MATCH { + pub EndpointReference: *mut WSD_ENDPOINT_REFERENCE, + pub Types: *mut WSD_NAME_LIST, + pub Scopes: *mut WSD_SCOPES, + pub XAddrs: *mut WSD_URI_LIST, + pub MetadataVersion: u64, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_PROBE_MATCH {} +impl ::core::clone::Clone for WSD_PROBE_MATCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_PROBE_MATCHES { + pub ProbeMatch: *mut WSD_PROBE_MATCH_LIST, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_PROBE_MATCHES {} +impl ::core::clone::Clone for WSD_PROBE_MATCHES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_PROBE_MATCH_LIST { + pub Next: *mut WSD_PROBE_MATCH_LIST, + pub Element: *mut WSD_PROBE_MATCH, +} +impl ::core::marker::Copy for WSD_PROBE_MATCH_LIST {} +impl ::core::clone::Clone for WSD_PROBE_MATCH_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_REFERENCE_PARAMETERS { + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_REFERENCE_PARAMETERS {} +impl ::core::clone::Clone for WSD_REFERENCE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_REFERENCE_PROPERTIES { + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_REFERENCE_PROPERTIES {} +impl ::core::clone::Clone for WSD_REFERENCE_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_RELATIONSHIP_METADATA { + pub Type: ::windows_sys::core::PCWSTR, + pub Data: *mut WSD_HOST_METADATA, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_RELATIONSHIP_METADATA {} +impl ::core::clone::Clone for WSD_RELATIONSHIP_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_RESOLVE { + pub EndpointReference: *mut WSD_ENDPOINT_REFERENCE, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_RESOLVE {} +impl ::core::clone::Clone for WSD_RESOLVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_RESOLVE_MATCH { + pub EndpointReference: *mut WSD_ENDPOINT_REFERENCE, + pub Types: *mut WSD_NAME_LIST, + pub Scopes: *mut WSD_SCOPES, + pub XAddrs: *mut WSD_URI_LIST, + pub MetadataVersion: u64, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_RESOLVE_MATCH {} +impl ::core::clone::Clone for WSD_RESOLVE_MATCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_RESOLVE_MATCHES { + pub ResolveMatch: *mut WSD_RESOLVE_MATCH, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_RESOLVE_MATCHES {} +impl ::core::clone::Clone for WSD_RESOLVE_MATCHES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_SCOPES { + pub MatchBy: ::windows_sys::core::PCWSTR, + pub Scopes: *mut WSD_URI_LIST, +} +impl ::core::marker::Copy for WSD_SCOPES {} +impl ::core::clone::Clone for WSD_SCOPES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct WSD_SECURITY_CERT_VALIDATION { + pub certMatchArray: *mut *mut super::super::Security::Cryptography::CERT_CONTEXT, + pub dwCertMatchArrayCount: u32, + pub hCertMatchStore: super::super::Security::Cryptography::HCERTSTORE, + pub hCertIssuerStore: super::super::Security::Cryptography::HCERTSTORE, + pub dwCertCheckOptions: u32, + pub pszCNGHashAlgId: ::windows_sys::core::PCWSTR, + pub pbCertHash: *mut u8, + pub dwCertHashSize: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for WSD_SECURITY_CERT_VALIDATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for WSD_SECURITY_CERT_VALIDATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct WSD_SECURITY_CERT_VALIDATION_V1 { + pub certMatchArray: *mut *mut super::super::Security::Cryptography::CERT_CONTEXT, + pub dwCertMatchArrayCount: u32, + pub hCertMatchStore: super::super::Security::Cryptography::HCERTSTORE, + pub hCertIssuerStore: super::super::Security::Cryptography::HCERTSTORE, + pub dwCertCheckOptions: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for WSD_SECURITY_CERT_VALIDATION_V1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for WSD_SECURITY_CERT_VALIDATION_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct WSD_SECURITY_SIGNATURE_VALIDATION { + pub signingCertArray: *mut *mut super::super::Security::Cryptography::CERT_CONTEXT, + pub dwSigningCertArrayCount: u32, + pub hSigningCertStore: super::super::Security::Cryptography::HCERTSTORE, + pub dwFlags: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for WSD_SECURITY_SIGNATURE_VALIDATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for WSD_SECURITY_SIGNATURE_VALIDATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_SERVICE_METADATA { + pub EndpointReference: *mut WSD_ENDPOINT_REFERENCE_LIST, + pub Types: *mut WSD_NAME_LIST, + pub ServiceId: ::windows_sys::core::PCWSTR, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_SERVICE_METADATA {} +impl ::core::clone::Clone for WSD_SERVICE_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_SERVICE_METADATA_LIST { + pub Next: *mut WSD_SERVICE_METADATA_LIST, + pub Element: *mut WSD_SERVICE_METADATA, +} +impl ::core::marker::Copy for WSD_SERVICE_METADATA_LIST {} +impl ::core::clone::Clone for WSD_SERVICE_METADATA_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_SOAP_FAULT { + pub Code: *mut WSD_SOAP_FAULT_CODE, + pub Reason: *mut WSD_SOAP_FAULT_REASON, + pub Node: ::windows_sys::core::PCWSTR, + pub Role: ::windows_sys::core::PCWSTR, + pub Detail: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_SOAP_FAULT {} +impl ::core::clone::Clone for WSD_SOAP_FAULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_SOAP_FAULT_CODE { + pub Value: *mut WSDXML_NAME, + pub Subcode: *mut WSD_SOAP_FAULT_SUBCODE, +} +impl ::core::marker::Copy for WSD_SOAP_FAULT_CODE {} +impl ::core::clone::Clone for WSD_SOAP_FAULT_CODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_SOAP_FAULT_REASON { + pub Text: *mut WSD_LOCALIZED_STRING_LIST, +} +impl ::core::marker::Copy for WSD_SOAP_FAULT_REASON {} +impl ::core::clone::Clone for WSD_SOAP_FAULT_REASON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_SOAP_FAULT_SUBCODE { + pub Value: *mut WSDXML_NAME, + pub Subcode: *mut WSD_SOAP_FAULT_SUBCODE, +} +impl ::core::marker::Copy for WSD_SOAP_FAULT_SUBCODE {} +impl ::core::clone::Clone for WSD_SOAP_FAULT_SUBCODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_SOAP_HEADER { + pub To: ::windows_sys::core::PCWSTR, + pub Action: ::windows_sys::core::PCWSTR, + pub MessageID: ::windows_sys::core::PCWSTR, + pub RelatesTo: WSD_HEADER_RELATESTO, + pub ReplyTo: *mut WSD_ENDPOINT_REFERENCE, + pub From: *mut WSD_ENDPOINT_REFERENCE, + pub FaultTo: *mut WSD_ENDPOINT_REFERENCE, + pub AppSequence: *mut WSD_APP_SEQUENCE, + pub AnyHeaders: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_SOAP_HEADER {} +impl ::core::clone::Clone for WSD_SOAP_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_SOAP_MESSAGE { + pub Header: WSD_SOAP_HEADER, + pub Body: *mut ::core::ffi::c_void, + pub BodyType: *mut WSDXML_TYPE, +} +impl ::core::marker::Copy for WSD_SOAP_MESSAGE {} +impl ::core::clone::Clone for WSD_SOAP_MESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSD_SYNCHRONOUS_RESPONSE_CONTEXT { + pub hr: ::windows_sys::core::HRESULT, + pub eventHandle: super::super::Foundation::HANDLE, + pub messageParameters: IWSDMessageParameters, + pub results: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSD_SYNCHRONOUS_RESPONSE_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSD_SYNCHRONOUS_RESPONSE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_THIS_DEVICE_METADATA { + pub FriendlyName: *mut WSD_LOCALIZED_STRING_LIST, + pub FirmwareVersion: ::windows_sys::core::PCWSTR, + pub SerialNumber: ::windows_sys::core::PCWSTR, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_THIS_DEVICE_METADATA {} +impl ::core::clone::Clone for WSD_THIS_DEVICE_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_THIS_MODEL_METADATA { + pub Manufacturer: *mut WSD_LOCALIZED_STRING_LIST, + pub ManufacturerUrl: ::windows_sys::core::PCWSTR, + pub ModelName: *mut WSD_LOCALIZED_STRING_LIST, + pub ModelNumber: ::windows_sys::core::PCWSTR, + pub ModelUrl: ::windows_sys::core::PCWSTR, + pub PresentationUrl: ::windows_sys::core::PCWSTR, + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_THIS_MODEL_METADATA {} +impl ::core::clone::Clone for WSD_THIS_MODEL_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_UNKNOWN_LOOKUP { + pub Any: *mut WSDXML_ELEMENT, +} +impl ::core::marker::Copy for WSD_UNKNOWN_LOOKUP {} +impl ::core::clone::Clone for WSD_UNKNOWN_LOOKUP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSD_URI_LIST { + pub Next: *mut WSD_URI_LIST, + pub Element: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSD_URI_LIST {} +impl ::core::clone::Clone for WSD_URI_LIST { + fn clone(&self) -> Self { + *self + } +} +pub type PWSD_SOAP_MESSAGE_HANDLER = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WSD_STUB_FUNCTION = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/mod.rs new file mode 100644 index 000000000..897b785df --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Devices/mod.rs @@ -0,0 +1,54 @@ +#[cfg(feature = "Win32_Devices_AllJoyn")] +#[doc = "Required features: `\"Win32_Devices_AllJoyn\"`"] +pub mod AllJoyn; +#[cfg(feature = "Win32_Devices_BiometricFramework")] +#[doc = "Required features: `\"Win32_Devices_BiometricFramework\"`"] +pub mod BiometricFramework; +#[cfg(feature = "Win32_Devices_Bluetooth")] +#[doc = "Required features: `\"Win32_Devices_Bluetooth\"`"] +pub mod Bluetooth; +#[cfg(feature = "Win32_Devices_Communication")] +#[doc = "Required features: `\"Win32_Devices_Communication\"`"] +pub mod Communication; +#[cfg(feature = "Win32_Devices_DeviceAndDriverInstallation")] +#[doc = "Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`"] +pub mod DeviceAndDriverInstallation; +#[cfg(feature = "Win32_Devices_DeviceQuery")] +#[doc = "Required features: `\"Win32_Devices_DeviceQuery\"`"] +pub mod DeviceQuery; +#[cfg(feature = "Win32_Devices_Display")] +#[doc = "Required features: `\"Win32_Devices_Display\"`"] +pub mod Display; +#[cfg(feature = "Win32_Devices_Enumeration")] +#[doc = "Required features: `\"Win32_Devices_Enumeration\"`"] +pub mod Enumeration; +#[cfg(feature = "Win32_Devices_Fax")] +#[doc = "Required features: `\"Win32_Devices_Fax\"`"] +pub mod Fax; +#[cfg(feature = "Win32_Devices_HumanInterfaceDevice")] +#[doc = "Required features: `\"Win32_Devices_HumanInterfaceDevice\"`"] +pub mod HumanInterfaceDevice; +#[cfg(feature = "Win32_Devices_PortableDevices")] +#[doc = "Required features: `\"Win32_Devices_PortableDevices\"`"] +pub mod PortableDevices; +#[cfg(feature = "Win32_Devices_Properties")] +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +pub mod Properties; +#[cfg(feature = "Win32_Devices_Pwm")] +#[doc = "Required features: `\"Win32_Devices_Pwm\"`"] +pub mod Pwm; +#[cfg(feature = "Win32_Devices_Sensors")] +#[doc = "Required features: `\"Win32_Devices_Sensors\"`"] +pub mod Sensors; +#[cfg(feature = "Win32_Devices_SerialCommunication")] +#[doc = "Required features: `\"Win32_Devices_SerialCommunication\"`"] +pub mod SerialCommunication; +#[cfg(feature = "Win32_Devices_Tapi")] +#[doc = "Required features: `\"Win32_Devices_Tapi\"`"] +pub mod Tapi; +#[cfg(feature = "Win32_Devices_Usb")] +#[doc = "Required features: `\"Win32_Devices_Usb\"`"] +pub mod Usb; +#[cfg(feature = "Win32_Devices_WebServicesOnDevices")] +#[doc = "Required features: `\"Win32_Devices_WebServicesOnDevices\"`"] +pub mod WebServicesOnDevices; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Foundation/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Foundation/mod.rs new file mode 100644 index 000000000..6502b8224 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Foundation/mod.rs @@ -0,0 +1,10367 @@ +::windows_targets::link!("kernel32.dll" "system" fn CloseHandle(hobject : HANDLE) -> BOOL); +::windows_targets::link!("api-ms-win-core-handle-l1-1-0.dll" "system" fn CompareObjectHandles(hfirstobjecthandle : HANDLE, hsecondobjecthandle : HANDLE) -> BOOL); +::windows_targets::link!("kernel32.dll" "system" fn DuplicateHandle(hsourceprocesshandle : HANDLE, hsourcehandle : HANDLE, htargetprocesshandle : HANDLE, lptargethandle : *mut HANDLE, dwdesiredaccess : u32, binherithandle : BOOL, dwoptions : DUPLICATE_HANDLE_OPTIONS) -> BOOL); +::windows_targets::link!("kernel32.dll" "system" fn FreeLibrary(hlibmodule : HMODULE) -> BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetHandleInformation(hobject : HANDLE, lpdwflags : *mut u32) -> BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetLastError() -> WIN32_ERROR); +::windows_targets::link!("kernel32.dll" "system" fn GlobalFree(hmem : HGLOBAL) -> HGLOBAL); +::windows_targets::link!("kernel32.dll" "system" fn LocalFree(hmem : HLOCAL) -> HLOCAL); +::windows_targets::link!("ntdll.dll" "system" fn RtlNtStatusToDosError(status : NTSTATUS) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn SetHandleInformation(hobject : HANDLE, dwmask : u32, dwflags : HANDLE_FLAGS) -> BOOL); +::windows_targets::link!("kernel32.dll" "system" fn SetLastError(dwerrcode : WIN32_ERROR) -> ()); +::windows_targets::link!("user32.dll" "system" fn SetLastErrorEx(dwerrcode : WIN32_ERROR, dwtype : u32) -> ()); +::windows_targets::link!("oleaut32.dll" "system" fn SysAddRefString(bstrstring : ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn SysAllocString(psz : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::BSTR); +::windows_targets::link!("oleaut32.dll" "system" fn SysAllocStringByteLen(psz : ::windows_sys::core::PCSTR, len : u32) -> ::windows_sys::core::BSTR); +::windows_targets::link!("oleaut32.dll" "system" fn SysAllocStringLen(strin : ::windows_sys::core::PCWSTR, ui : u32) -> ::windows_sys::core::BSTR); +::windows_targets::link!("oleaut32.dll" "system" fn SysFreeString(bstrstring : ::windows_sys::core::BSTR) -> ()); +::windows_targets::link!("oleaut32.dll" "system" fn SysReAllocString(pbstr : *mut ::windows_sys::core::BSTR, psz : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("oleaut32.dll" "system" fn SysReAllocStringLen(pbstr : *mut ::windows_sys::core::BSTR, psz : ::windows_sys::core::PCWSTR, len : u32) -> i32); +::windows_targets::link!("oleaut32.dll" "system" fn SysReleaseString(bstrstring : ::windows_sys::core::BSTR) -> ()); +::windows_targets::link!("oleaut32.dll" "system" fn SysStringByteLen(bstr : ::windows_sys::core::BSTR) -> u32); +::windows_targets::link!("oleaut32.dll" "system" fn SysStringLen(pbstr : ::windows_sys::core::BSTR) -> u32); +pub const APPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID: WIN32_ERROR = 15705u32; +pub const APPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED: WIN32_ERROR = 15704u32; +pub const APPMODEL_ERROR_NO_APPLICATION: WIN32_ERROR = 15703u32; +pub const APPMODEL_ERROR_NO_MUTABLE_DIRECTORY: WIN32_ERROR = 15707u32; +pub const APPMODEL_ERROR_NO_PACKAGE: WIN32_ERROR = 15700u32; +pub const APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT: WIN32_ERROR = 15702u32; +pub const APPMODEL_ERROR_PACKAGE_NOT_AVAILABLE: WIN32_ERROR = 15706u32; +pub const APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT: WIN32_ERROR = 15701u32; +pub const APPX_E_BLOCK_HASH_INVALID: ::windows_sys::core::HRESULT = -2146958841i32; +pub const APPX_E_CORRUPT_CONTENT: ::windows_sys::core::HRESULT = -2146958842i32; +pub const APPX_E_DELTA_APPENDED_PACKAGE_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2146958832i32; +pub const APPX_E_DELTA_BASELINE_VERSION_MISMATCH: ::windows_sys::core::HRESULT = -2146958835i32; +pub const APPX_E_DELTA_PACKAGE_MISSING_FILE: ::windows_sys::core::HRESULT = -2146958834i32; +pub const APPX_E_DIGEST_MISMATCH: ::windows_sys::core::HRESULT = -2146958823i32; +pub const APPX_E_FILE_COMPRESSION_MISMATCH: ::windows_sys::core::HRESULT = -2146958828i32; +pub const APPX_E_INTERLEAVING_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2146958847i32; +pub const APPX_E_INVALID_APPINSTALLER: ::windows_sys::core::HRESULT = -2146958836i32; +pub const APPX_E_INVALID_BLOCKMAP: ::windows_sys::core::HRESULT = -2146958843i32; +pub const APPX_E_INVALID_CONTENTGROUPMAP: ::windows_sys::core::HRESULT = -2146958837i32; +pub const APPX_E_INVALID_DELTA_PACKAGE: ::windows_sys::core::HRESULT = -2146958833i32; +pub const APPX_E_INVALID_ENCRYPTION_EXCLUSION_FILE_LIST: ::windows_sys::core::HRESULT = -2146958826i32; +pub const APPX_E_INVALID_KEY_INFO: ::windows_sys::core::HRESULT = -2146958838i32; +pub const APPX_E_INVALID_MANIFEST: ::windows_sys::core::HRESULT = -2146958844i32; +pub const APPX_E_INVALID_PACKAGESIGNCONFIG: ::windows_sys::core::HRESULT = -2146958830i32; +pub const APPX_E_INVALID_PACKAGE_FOLDER_ACLS: ::windows_sys::core::HRESULT = -2146958825i32; +pub const APPX_E_INVALID_PACKAGING_LAYOUT: ::windows_sys::core::HRESULT = -2146958831i32; +pub const APPX_E_INVALID_PAYLOAD_PACKAGE_EXTENSION: ::windows_sys::core::HRESULT = -2146958827i32; +pub const APPX_E_INVALID_PUBLISHER_BRIDGING: ::windows_sys::core::HRESULT = -2146958824i32; +pub const APPX_E_INVALID_SIP_CLIENT_DATA: ::windows_sys::core::HRESULT = -2146958839i32; +pub const APPX_E_MISSING_REQUIRED_FILE: ::windows_sys::core::HRESULT = -2146958845i32; +pub const APPX_E_PACKAGING_INTERNAL: ::windows_sys::core::HRESULT = -2146958848i32; +pub const APPX_E_RELATIONSHIPS_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2146958846i32; +pub const APPX_E_REQUESTED_RANGE_TOO_LARGE: ::windows_sys::core::HRESULT = -2146958840i32; +pub const APPX_E_RESOURCESPRI_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2146958829i32; +pub const APP_LOCAL_DEVICE_ID_SIZE: u32 = 32u32; +pub const BT_E_SPURIOUS_ACTIVATION: ::windows_sys::core::HRESULT = -2146958592i32; +pub const CACHE_E_FIRST: i32 = -2147221136i32; +pub const CACHE_E_LAST: i32 = -2147221121i32; +pub const CACHE_E_NOCACHE_UPDATED: ::windows_sys::core::HRESULT = -2147221136i32; +pub const CACHE_S_FIRST: i32 = 262512i32; +pub const CACHE_S_FORMATETC_NOTSUPPORTED: ::windows_sys::core::HRESULT = 262512i32; +pub const CACHE_S_LAST: i32 = 262527i32; +pub const CACHE_S_SAMECACHE: ::windows_sys::core::HRESULT = 262513i32; +pub const CACHE_S_SOMECACHES_NOTUPDATED: ::windows_sys::core::HRESULT = 262514i32; +pub const CAT_E_CATIDNOEXIST: ::windows_sys::core::HRESULT = -2147221152i32; +pub const CAT_E_FIRST: i32 = -2147221152i32; +pub const CAT_E_LAST: i32 = -2147221151i32; +pub const CAT_E_NODESCRIPTION: ::windows_sys::core::HRESULT = -2147221151i32; +pub const CERTSRV_E_ADMIN_DENIED_REQUEST: ::windows_sys::core::HRESULT = -2146877420i32; +pub const CERTSRV_E_ALIGNMENT_FAULT: ::windows_sys::core::HRESULT = -2146877424i32; +pub const CERTSRV_E_ARCHIVED_KEY_REQUIRED: ::windows_sys::core::HRESULT = -2146875388i32; +pub const CERTSRV_E_ARCHIVED_KEY_UNEXPECTED: ::windows_sys::core::HRESULT = -2146875376i32; +pub const CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE: ::windows_sys::core::HRESULT = -2146877426i32; +pub const CERTSRV_E_BAD_RENEWAL_SUBJECT: ::windows_sys::core::HRESULT = -2146875386i32; +pub const CERTSRV_E_BAD_REQUESTSTATUS: ::windows_sys::core::HRESULT = -2146877437i32; +pub const CERTSRV_E_BAD_REQUESTSUBJECT: ::windows_sys::core::HRESULT = -2146877439i32; +pub const CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL: ::windows_sys::core::HRESULT = -2146877428i32; +pub const CERTSRV_E_BAD_TEMPLATE_VERSION: ::windows_sys::core::HRESULT = -2146875385i32; +pub const CERTSRV_E_CERT_TYPE_OVERLAP: ::windows_sys::core::HRESULT = -2146875372i32; +pub const CERTSRV_E_CORRUPT_KEY_ATTESTATION: ::windows_sys::core::HRESULT = -2146875365i32; +pub const CERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE: ::windows_sys::core::HRESULT = -2146877421i32; +pub const CERTSRV_E_ENCODING_LENGTH: ::windows_sys::core::HRESULT = -2146877433i32; +pub const CERTSRV_E_ENCRYPTION_CERT_REQUIRED: ::windows_sys::core::HRESULT = -2146877416i32; +pub const CERTSRV_E_ENROLL_DENIED: ::windows_sys::core::HRESULT = -2146877423i32; +pub const CERTSRV_E_EXPIRED_CHALLENGE: ::windows_sys::core::HRESULT = -2146875364i32; +pub const CERTSRV_E_INVALID_ATTESTATION: ::windows_sys::core::HRESULT = -2146875367i32; +pub const CERTSRV_E_INVALID_CA_CERTIFICATE: ::windows_sys::core::HRESULT = -2146877435i32; +pub const CERTSRV_E_INVALID_EK: ::windows_sys::core::HRESULT = -2146875369i32; +pub const CERTSRV_E_INVALID_IDBINDING: ::windows_sys::core::HRESULT = -2146875368i32; +pub const CERTSRV_E_INVALID_REQUESTID: ::windows_sys::core::HRESULT = -2146875362i32; +pub const CERTSRV_E_INVALID_RESPONSE: ::windows_sys::core::HRESULT = -2146875363i32; +pub const CERTSRV_E_ISSUANCE_POLICY_REQUIRED: ::windows_sys::core::HRESULT = -2146875380i32; +pub const CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -2146877430i32; +pub const CERTSRV_E_KEY_ATTESTATION: ::windows_sys::core::HRESULT = -2146875366i32; +pub const CERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2146877417i32; +pub const CERTSRV_E_KEY_LENGTH: ::windows_sys::core::HRESULT = -2146875375i32; +pub const CERTSRV_E_NO_CAADMIN_DEFINED: ::windows_sys::core::HRESULT = -2146877427i32; +pub const CERTSRV_E_NO_CERT_TYPE: ::windows_sys::core::HRESULT = -2146875391i32; +pub const CERTSRV_E_NO_DB_SESSIONS: ::windows_sys::core::HRESULT = -2146877425i32; +pub const CERTSRV_E_NO_POLICY_SERVER: ::windows_sys::core::HRESULT = -2146877419i32; +pub const CERTSRV_E_NO_REQUEST: ::windows_sys::core::HRESULT = -2146877438i32; +pub const CERTSRV_E_NO_VALID_KRA: ::windows_sys::core::HRESULT = -2146877429i32; +pub const CERTSRV_E_PENDING_CLIENT_RESPONSE: ::windows_sys::core::HRESULT = -2146875360i32; +pub const CERTSRV_E_PROPERTY_EMPTY: ::windows_sys::core::HRESULT = -2146877436i32; +pub const CERTSRV_E_RENEWAL_BAD_PUBLIC_KEY: ::windows_sys::core::HRESULT = -2146875370i32; +pub const CERTSRV_E_REQUEST_PRECERTIFICATE_MISMATCH: ::windows_sys::core::HRESULT = -2146875361i32; +pub const CERTSRV_E_RESTRICTEDOFFICER: ::windows_sys::core::HRESULT = -2146877431i32; +pub const CERTSRV_E_ROLECONFLICT: ::windows_sys::core::HRESULT = -2146877432i32; +pub const CERTSRV_E_SEC_EXT_DIRECTORY_SID_REQUIRED: ::windows_sys::core::HRESULT = -2146875359i32; +pub const CERTSRV_E_SERVER_SUSPENDED: ::windows_sys::core::HRESULT = -2146877434i32; +pub const CERTSRV_E_SIGNATURE_COUNT: ::windows_sys::core::HRESULT = -2146875382i32; +pub const CERTSRV_E_SIGNATURE_POLICY_REQUIRED: ::windows_sys::core::HRESULT = -2146875383i32; +pub const CERTSRV_E_SIGNATURE_REJECTED: ::windows_sys::core::HRESULT = -2146875381i32; +pub const CERTSRV_E_SMIME_REQUIRED: ::windows_sys::core::HRESULT = -2146875387i32; +pub const CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED: ::windows_sys::core::HRESULT = -2146875389i32; +pub const CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED: ::windows_sys::core::HRESULT = -2146875378i32; +pub const CERTSRV_E_SUBJECT_DNS_REQUIRED: ::windows_sys::core::HRESULT = -2146875377i32; +pub const CERTSRV_E_SUBJECT_EMAIL_REQUIRED: ::windows_sys::core::HRESULT = -2146875374i32; +pub const CERTSRV_E_SUBJECT_UPN_REQUIRED: ::windows_sys::core::HRESULT = -2146875379i32; +pub const CERTSRV_E_TEMPLATE_CONFLICT: ::windows_sys::core::HRESULT = -2146875390i32; +pub const CERTSRV_E_TEMPLATE_DENIED: ::windows_sys::core::HRESULT = -2146877422i32; +pub const CERTSRV_E_TEMPLATE_POLICY_REQUIRED: ::windows_sys::core::HRESULT = -2146875384i32; +pub const CERTSRV_E_TOO_MANY_SIGNATURES: ::windows_sys::core::HRESULT = -2146875371i32; +pub const CERTSRV_E_UNKNOWN_CERT_TYPE: ::windows_sys::core::HRESULT = -2146875373i32; +pub const CERTSRV_E_UNSUPPORTED_CERT_TYPE: ::windows_sys::core::HRESULT = -2146875392i32; +pub const CERTSRV_E_WEAK_SIGNATURE_OR_KEY: ::windows_sys::core::HRESULT = -2146877418i32; +pub const CERT_E_CHAINING: ::windows_sys::core::HRESULT = -2146762486i32; +pub const CERT_E_CN_NO_MATCH: ::windows_sys::core::HRESULT = -2146762481i32; +pub const CERT_E_CRITICAL: ::windows_sys::core::HRESULT = -2146762491i32; +pub const CERT_E_EXPIRED: ::windows_sys::core::HRESULT = -2146762495i32; +pub const CERT_E_INVALID_NAME: ::windows_sys::core::HRESULT = -2146762476i32; +pub const CERT_E_INVALID_POLICY: ::windows_sys::core::HRESULT = -2146762477i32; +pub const CERT_E_ISSUERCHAINING: ::windows_sys::core::HRESULT = -2146762489i32; +pub const CERT_E_MALFORMED: ::windows_sys::core::HRESULT = -2146762488i32; +pub const CERT_E_PATHLENCONST: ::windows_sys::core::HRESULT = -2146762492i32; +pub const CERT_E_PURPOSE: ::windows_sys::core::HRESULT = -2146762490i32; +pub const CERT_E_REVOCATION_FAILURE: ::windows_sys::core::HRESULT = -2146762482i32; +pub const CERT_E_REVOKED: ::windows_sys::core::HRESULT = -2146762484i32; +pub const CERT_E_ROLE: ::windows_sys::core::HRESULT = -2146762493i32; +pub const CERT_E_UNTRUSTEDCA: ::windows_sys::core::HRESULT = -2146762478i32; +pub const CERT_E_UNTRUSTEDROOT: ::windows_sys::core::HRESULT = -2146762487i32; +pub const CERT_E_UNTRUSTEDTESTROOT: ::windows_sys::core::HRESULT = -2146762483i32; +pub const CERT_E_VALIDITYPERIODNESTING: ::windows_sys::core::HRESULT = -2146762494i32; +pub const CERT_E_WRONG_USAGE: ::windows_sys::core::HRESULT = -2146762480i32; +pub const CI_CORRUPT_CATALOG: ::windows_sys::core::HRESULT = -1073473535i32; +pub const CI_CORRUPT_DATABASE: ::windows_sys::core::HRESULT = -1073473536i32; +pub const CI_CORRUPT_FILTER_BUFFER: ::windows_sys::core::HRESULT = -1073473529i32; +pub const CI_E_ALREADY_INITIALIZED: ::windows_sys::core::HRESULT = -2147215350i32; +pub const CI_E_BUFFERTOOSMALL: ::windows_sys::core::HRESULT = -2147215348i32; +pub const CI_E_CARDINALITY_MISMATCH: ::windows_sys::core::HRESULT = -2147215321i32; +pub const CI_E_CLIENT_FILTER_ABORT: ::windows_sys::core::HRESULT = -1073473500i32; +pub const CI_E_CONFIG_DISK_FULL: ::windows_sys::core::HRESULT = -2147215320i32; +pub const CI_E_DISK_FULL: ::windows_sys::core::HRESULT = -2147215343i32; +pub const CI_E_DISTRIBUTED_GROUPBY_UNSUPPORTED: ::windows_sys::core::HRESULT = -2147215319i32; +pub const CI_E_DUPLICATE_NOTIFICATION: ::windows_sys::core::HRESULT = -2147215337i32; +pub const CI_E_ENUMERATION_STARTED: ::windows_sys::core::HRESULT = -1073473502i32; +pub const CI_E_FILTERING_DISABLED: ::windows_sys::core::HRESULT = -2147215344i32; +pub const CI_E_INVALID_FLAGS_COMBINATION: ::windows_sys::core::HRESULT = -2147215335i32; +pub const CI_E_INVALID_STATE: ::windows_sys::core::HRESULT = -2147215345i32; +pub const CI_E_LOGON_FAILURE: ::windows_sys::core::HRESULT = -2147215332i32; +pub const CI_E_NOT_FOUND: ::windows_sys::core::HRESULT = -2147215339i32; +pub const CI_E_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -2147215349i32; +pub const CI_E_NOT_RUNNING: ::windows_sys::core::HRESULT = -2147215328i32; +pub const CI_E_NO_CATALOG: ::windows_sys::core::HRESULT = -2147215331i32; +pub const CI_E_OUTOFSEQ_INCREMENT_DATA: ::windows_sys::core::HRESULT = -2147215334i32; +pub const CI_E_PROPERTY_NOT_CACHED: ::windows_sys::core::HRESULT = -2147215347i32; +pub const CI_E_PROPERTY_TOOLARGE: ::windows_sys::core::HRESULT = -1073473501i32; +pub const CI_E_SHARING_VIOLATION: ::windows_sys::core::HRESULT = -2147215333i32; +pub const CI_E_SHUTDOWN: ::windows_sys::core::HRESULT = -2147215342i32; +pub const CI_E_STRANGE_PAGEORSECTOR_SIZE: ::windows_sys::core::HRESULT = -2147215330i32; +pub const CI_E_TIMEOUT: ::windows_sys::core::HRESULT = -2147215329i32; +pub const CI_E_UPDATES_DISABLED: ::windows_sys::core::HRESULT = -2147215336i32; +pub const CI_E_USE_DEFAULT_PID: ::windows_sys::core::HRESULT = -2147215338i32; +pub const CI_E_WORKID_NOTVALID: ::windows_sys::core::HRESULT = -2147215341i32; +pub const CI_INCORRECT_VERSION: ::windows_sys::core::HRESULT = -1073473503i32; +pub const CI_INVALID_INDEX: ::windows_sys::core::HRESULT = -1073473528i32; +pub const CI_INVALID_PARTITION: ::windows_sys::core::HRESULT = -1073473534i32; +pub const CI_INVALID_PRIORITY: ::windows_sys::core::HRESULT = -1073473533i32; +pub const CI_NO_CATALOG: ::windows_sys::core::HRESULT = -1073473530i32; +pub const CI_NO_STARTING_KEY: ::windows_sys::core::HRESULT = -1073473532i32; +pub const CI_OUT_OF_INDEX_IDS: ::windows_sys::core::HRESULT = -1073473531i32; +pub const CI_PROPSTORE_INCONSISTENCY: ::windows_sys::core::HRESULT = -1073473527i32; +pub const CI_S_CAT_STOPPED: ::windows_sys::core::HRESULT = 268326i32; +pub const CI_S_END_OF_ENUMERATION: ::windows_sys::core::HRESULT = 268308i32; +pub const CI_S_NO_DOCSTORE: ::windows_sys::core::HRESULT = 268325i32; +pub const CI_S_WORKID_DELETED: ::windows_sys::core::HRESULT = 268302i32; +pub const CLASSFACTORY_E_FIRST: i32 = -2147221232i32; +pub const CLASSFACTORY_E_LAST: i32 = -2147221217i32; +pub const CLASSFACTORY_S_FIRST: i32 = 262416i32; +pub const CLASSFACTORY_S_LAST: i32 = 262431i32; +pub const CLASS_E_CLASSNOTAVAILABLE: ::windows_sys::core::HRESULT = -2147221231i32; +pub const CLASS_E_NOAGGREGATION: ::windows_sys::core::HRESULT = -2147221232i32; +pub const CLASS_E_NOTLICENSED: ::windows_sys::core::HRESULT = -2147221230i32; +pub const CLIENTSITE_E_FIRST: i32 = -2147221104i32; +pub const CLIENTSITE_E_LAST: i32 = -2147221089i32; +pub const CLIENTSITE_S_FIRST: i32 = 262544i32; +pub const CLIENTSITE_S_LAST: i32 = 262559i32; +pub const CLIPBRD_E_BAD_DATA: ::windows_sys::core::HRESULT = -2147221037i32; +pub const CLIPBRD_E_CANT_CLOSE: ::windows_sys::core::HRESULT = -2147221036i32; +pub const CLIPBRD_E_CANT_EMPTY: ::windows_sys::core::HRESULT = -2147221039i32; +pub const CLIPBRD_E_CANT_OPEN: ::windows_sys::core::HRESULT = -2147221040i32; +pub const CLIPBRD_E_CANT_SET: ::windows_sys::core::HRESULT = -2147221038i32; +pub const CLIPBRD_E_FIRST: i32 = -2147221040i32; +pub const CLIPBRD_E_LAST: i32 = -2147221025i32; +pub const CLIPBRD_S_FIRST: i32 = 262608i32; +pub const CLIPBRD_S_LAST: i32 = 262623i32; +pub const COMADMIN_E_ALREADYINSTALLED: ::windows_sys::core::HRESULT = -2146368508i32; +pub const COMADMIN_E_AMBIGUOUS_APPLICATION_NAME: ::windows_sys::core::HRESULT = -2146368420i32; +pub const COMADMIN_E_AMBIGUOUS_PARTITION_NAME: ::windows_sys::core::HRESULT = -2146368419i32; +pub const COMADMIN_E_APPDIRNOTFOUND: ::windows_sys::core::HRESULT = -2146368481i32; +pub const COMADMIN_E_APPLICATIONEXISTS: ::windows_sys::core::HRESULT = -2146368501i32; +pub const COMADMIN_E_APPLID_MATCHES_CLSID: ::windows_sys::core::HRESULT = -2146368442i32; +pub const COMADMIN_E_APP_FILE_READFAIL: ::windows_sys::core::HRESULT = -2146368504i32; +pub const COMADMIN_E_APP_FILE_VERSION: ::windows_sys::core::HRESULT = -2146368503i32; +pub const COMADMIN_E_APP_FILE_WRITEFAIL: ::windows_sys::core::HRESULT = -2146368505i32; +pub const COMADMIN_E_APP_NOT_RUNNING: ::windows_sys::core::HRESULT = -2146367478i32; +pub const COMADMIN_E_AUTHENTICATIONLEVEL: ::windows_sys::core::HRESULT = -2146368493i32; +pub const COMADMIN_E_BADPATH: ::windows_sys::core::HRESULT = -2146368502i32; +pub const COMADMIN_E_BADREGISTRYLIBID: ::windows_sys::core::HRESULT = -2146368482i32; +pub const COMADMIN_E_BADREGISTRYPROGID: ::windows_sys::core::HRESULT = -2146368494i32; +pub const COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET: ::windows_sys::core::HRESULT = -2146367457i32; +pub const COMADMIN_E_BASE_PARTITION_ONLY: ::windows_sys::core::HRESULT = -2146368432i32; +pub const COMADMIN_E_CANNOT_ALIAS_EVENTCLASS: ::windows_sys::core::HRESULT = -2146367456i32; +pub const COMADMIN_E_CANTCOPYFILE: ::windows_sys::core::HRESULT = -2146368499i32; +pub const COMADMIN_E_CANTMAKEINPROCSERVICE: ::windows_sys::core::HRESULT = -2146367468i32; +pub const COMADMIN_E_CANTRECYCLELIBRARYAPPS: ::windows_sys::core::HRESULT = -2146367473i32; +pub const COMADMIN_E_CANTRECYCLESERVICEAPPS: ::windows_sys::core::HRESULT = -2146367471i32; +pub const COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT: ::windows_sys::core::HRESULT = -2146368435i32; +pub const COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY: ::windows_sys::core::HRESULT = -2146368438i32; +pub const COMADMIN_E_CAN_NOT_EXPORT_SYS_APP: ::windows_sys::core::HRESULT = -2146368436i32; +pub const COMADMIN_E_CAN_NOT_START_APP: ::windows_sys::core::HRESULT = -2146368437i32; +pub const COMADMIN_E_CAT_BITNESSMISMATCH: ::windows_sys::core::HRESULT = -2146368382i32; +pub const COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME: ::windows_sys::core::HRESULT = -2146368425i32; +pub const COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2146368421i32; +pub const COMADMIN_E_CAT_INVALID_PARTITION_NAME: ::windows_sys::core::HRESULT = -2146368424i32; +pub const COMADMIN_E_CAT_PARTITION_IN_USE: ::windows_sys::core::HRESULT = -2146368423i32; +pub const COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2146368379i32; +pub const COMADMIN_E_CAT_SERVERFAULT: ::windows_sys::core::HRESULT = -2146368378i32; +pub const COMADMIN_E_CAT_UNACCEPTABLEBITNESS: ::windows_sys::core::HRESULT = -2146368381i32; +pub const COMADMIN_E_CAT_WRONGAPPBITNESS: ::windows_sys::core::HRESULT = -2146368380i32; +pub const COMADMIN_E_CLSIDORIIDMISMATCH: ::windows_sys::core::HRESULT = -2146368488i32; +pub const COMADMIN_E_COMPFILE_BADTLB: ::windows_sys::core::HRESULT = -2146368472i32; +pub const COMADMIN_E_COMPFILE_CLASSNOTAVAIL: ::windows_sys::core::HRESULT = -2146368473i32; +pub const COMADMIN_E_COMPFILE_DOESNOTEXIST: ::windows_sys::core::HRESULT = -2146368476i32; +pub const COMADMIN_E_COMPFILE_GETCLASSOBJ: ::windows_sys::core::HRESULT = -2146368474i32; +pub const COMADMIN_E_COMPFILE_LOADDLLFAIL: ::windows_sys::core::HRESULT = -2146368475i32; +pub const COMADMIN_E_COMPFILE_NOREGISTRAR: ::windows_sys::core::HRESULT = -2146368460i32; +pub const COMADMIN_E_COMPFILE_NOTINSTALLABLE: ::windows_sys::core::HRESULT = -2146368471i32; +pub const COMADMIN_E_COMPONENTEXISTS: ::windows_sys::core::HRESULT = -2146368455i32; +pub const COMADMIN_E_COMP_MOVE_BAD_DEST: ::windows_sys::core::HRESULT = -2146368466i32; +pub const COMADMIN_E_COMP_MOVE_DEST: ::windows_sys::core::HRESULT = -2146367459i32; +pub const COMADMIN_E_COMP_MOVE_LOCKED: ::windows_sys::core::HRESULT = -2146368467i32; +pub const COMADMIN_E_COMP_MOVE_PRIVATE: ::windows_sys::core::HRESULT = -2146367458i32; +pub const COMADMIN_E_COMP_MOVE_SOURCE: ::windows_sys::core::HRESULT = -2146367460i32; +pub const COMADMIN_E_COREQCOMPINSTALLED: ::windows_sys::core::HRESULT = -2146368459i32; +pub const COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET: ::windows_sys::core::HRESULT = -2146367466i32; +pub const COMADMIN_E_DLLLOADFAILED: ::windows_sys::core::HRESULT = -2146368483i32; +pub const COMADMIN_E_DLLREGISTERSERVER: ::windows_sys::core::HRESULT = -2146368486i32; +pub const COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER: ::windows_sys::core::HRESULT = -2146368434i32; +pub const COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES: ::windows_sys::core::HRESULT = -2146368422i32; +pub const COMADMIN_E_INVALIDUSERIDS: ::windows_sys::core::HRESULT = -2146368496i32; +pub const COMADMIN_E_INVALID_PARTITION: ::windows_sys::core::HRESULT = -2146367477i32; +pub const COMADMIN_E_KEYMISSING: ::windows_sys::core::HRESULT = -2146368509i32; +pub const COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT: ::windows_sys::core::HRESULT = -2146367462i32; +pub const COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS: ::windows_sys::core::HRESULT = -2146367461i32; +pub const COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE: ::windows_sys::core::HRESULT = -2146368433i32; +pub const COMADMIN_E_MIG_SCHEMANOTFOUND: ::windows_sys::core::HRESULT = -2146368383i32; +pub const COMADMIN_E_MIG_VERSIONNOTSUPPORTED: ::windows_sys::core::HRESULT = -2146368384i32; +pub const COMADMIN_E_NOREGISTRYCLSID: ::windows_sys::core::HRESULT = -2146368495i32; +pub const COMADMIN_E_NOSERVERSHARE: ::windows_sys::core::HRESULT = -2146368485i32; +pub const COMADMIN_E_NOTCHANGEABLE: ::windows_sys::core::HRESULT = -2146368470i32; +pub const COMADMIN_E_NOTDELETEABLE: ::windows_sys::core::HRESULT = -2146368469i32; +pub const COMADMIN_E_NOTINREGISTRY: ::windows_sys::core::HRESULT = -2146368450i32; +pub const COMADMIN_E_NOUSER: ::windows_sys::core::HRESULT = -2146368497i32; +pub const COMADMIN_E_OBJECTERRORS: ::windows_sys::core::HRESULT = -2146368511i32; +pub const COMADMIN_E_OBJECTEXISTS: ::windows_sys::core::HRESULT = -2146368456i32; +pub const COMADMIN_E_OBJECTINVALID: ::windows_sys::core::HRESULT = -2146368510i32; +pub const COMADMIN_E_OBJECTNOTPOOLABLE: ::windows_sys::core::HRESULT = -2146368449i32; +pub const COMADMIN_E_OBJECT_DOES_NOT_EXIST: ::windows_sys::core::HRESULT = -2146367479i32; +pub const COMADMIN_E_OBJECT_PARENT_MISSING: ::windows_sys::core::HRESULT = -2146367480i32; +pub const COMADMIN_E_PARTITIONS_DISABLED: ::windows_sys::core::HRESULT = -2146367452i32; +pub const COMADMIN_E_PARTITION_ACCESSDENIED: ::windows_sys::core::HRESULT = -2146367464i32; +pub const COMADMIN_E_PARTITION_MSI_ONLY: ::windows_sys::core::HRESULT = -2146367463i32; +pub const COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED: ::windows_sys::core::HRESULT = -2146367469i32; +pub const COMADMIN_E_PRIVATE_ACCESSDENIED: ::windows_sys::core::HRESULT = -2146367455i32; +pub const COMADMIN_E_PROCESSALREADYRECYCLED: ::windows_sys::core::HRESULT = -2146367470i32; +pub const COMADMIN_E_PROGIDINUSEBYCLSID: ::windows_sys::core::HRESULT = -2146367467i32; +pub const COMADMIN_E_PROPERTYSAVEFAILED: ::windows_sys::core::HRESULT = -2146368457i32; +pub const COMADMIN_E_PROPERTY_OVERFLOW: ::windows_sys::core::HRESULT = -2146368452i32; +pub const COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED: ::windows_sys::core::HRESULT = -2146367465i32; +pub const COMADMIN_E_REGDB_ALREADYRUNNING: ::windows_sys::core::HRESULT = -2146368395i32; +pub const COMADMIN_E_REGDB_NOTINITIALIZED: ::windows_sys::core::HRESULT = -2146368398i32; +pub const COMADMIN_E_REGDB_NOTOPEN: ::windows_sys::core::HRESULT = -2146368397i32; +pub const COMADMIN_E_REGDB_SYSTEMERR: ::windows_sys::core::HRESULT = -2146368396i32; +pub const COMADMIN_E_REGFILE_CORRUPT: ::windows_sys::core::HRESULT = -2146368453i32; +pub const COMADMIN_E_REGISTERTLB: ::windows_sys::core::HRESULT = -2146368464i32; +pub const COMADMIN_E_REGISTRARFAILED: ::windows_sys::core::HRESULT = -2146368477i32; +pub const COMADMIN_E_REGISTRY_ACCESSDENIED: ::windows_sys::core::HRESULT = -2146367453i32; +pub const COMADMIN_E_REMOTEINTERFACE: ::windows_sys::core::HRESULT = -2146368487i32; +pub const COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM: ::windows_sys::core::HRESULT = -2146368439i32; +pub const COMADMIN_E_ROLEEXISTS: ::windows_sys::core::HRESULT = -2146368500i32; +pub const COMADMIN_E_ROLE_DOES_NOT_EXIST: ::windows_sys::core::HRESULT = -2146368441i32; +pub const COMADMIN_E_SAFERINVALID: ::windows_sys::core::HRESULT = -2146367454i32; +pub const COMADMIN_E_SERVICENOTINSTALLED: ::windows_sys::core::HRESULT = -2146368458i32; +pub const COMADMIN_E_SESSION: ::windows_sys::core::HRESULT = -2146368468i32; +pub const COMADMIN_E_START_APP_DISABLED: ::windows_sys::core::HRESULT = -2146368431i32; +pub const COMADMIN_E_START_APP_NEEDS_COMPONENTS: ::windows_sys::core::HRESULT = -2146368440i32; +pub const COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE: ::windows_sys::core::HRESULT = -2146367475i32; +pub const COMADMIN_E_SYSTEMAPP: ::windows_sys::core::HRESULT = -2146368461i32; +pub const COMADMIN_E_USERPASSWDNOTVALID: ::windows_sys::core::HRESULT = -2146368492i32; +pub const COMADMIN_E_USER_IN_SET: ::windows_sys::core::HRESULT = -2146367474i32; +pub const COMQC_E_APPLICATION_NOT_QUEUED: ::windows_sys::core::HRESULT = -2146368000i32; +pub const COMQC_E_BAD_MESSAGE: ::windows_sys::core::HRESULT = -2146367996i32; +pub const COMQC_E_NO_IPERSISTSTREAM: ::windows_sys::core::HRESULT = -2146367997i32; +pub const COMQC_E_NO_QUEUEABLE_INTERFACES: ::windows_sys::core::HRESULT = -2146367999i32; +pub const COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2146367998i32; +pub const COMQC_E_UNAUTHENTICATED: ::windows_sys::core::HRESULT = -2146367995i32; +pub const COMQC_E_UNTRUSTED_ENQUEUER: ::windows_sys::core::HRESULT = -2146367994i32; +pub const CONTEXT_E_ABORTED: ::windows_sys::core::HRESULT = -2147164158i32; +pub const CONTEXT_E_ABORTING: ::windows_sys::core::HRESULT = -2147164157i32; +pub const CONTEXT_E_FIRST: i32 = -2147164160i32; +pub const CONTEXT_E_LAST: i32 = -2147164113i32; +pub const CONTEXT_E_NOCONTEXT: ::windows_sys::core::HRESULT = -2147164156i32; +pub const CONTEXT_E_NOJIT: ::windows_sys::core::HRESULT = -2147164122i32; +pub const CONTEXT_E_NOTRANSACTION: ::windows_sys::core::HRESULT = -2147164121i32; +pub const CONTEXT_E_OLDREF: ::windows_sys::core::HRESULT = -2147164153i32; +pub const CONTEXT_E_ROLENOTFOUND: ::windows_sys::core::HRESULT = -2147164148i32; +pub const CONTEXT_E_SYNCH_TIMEOUT: ::windows_sys::core::HRESULT = -2147164154i32; +pub const CONTEXT_E_TMNOTAVAILABLE: ::windows_sys::core::HRESULT = -2147164145i32; +pub const CONTEXT_E_WOULD_DEADLOCK: ::windows_sys::core::HRESULT = -2147164155i32; +pub const CONTEXT_S_FIRST: i32 = 319488i32; +pub const CONTEXT_S_LAST: i32 = 319535i32; +pub const CONTROL_C_EXIT: NTSTATUS = -1073741510i32; +pub const CONVERT10_E_FIRST: i32 = -2147221056i32; +pub const CONVERT10_E_LAST: i32 = -2147221041i32; +pub const CONVERT10_E_OLESTREAM_BITMAP_TO_DIB: ::windows_sys::core::HRESULT = -2147221053i32; +pub const CONVERT10_E_OLESTREAM_FMT: ::windows_sys::core::HRESULT = -2147221054i32; +pub const CONVERT10_E_OLESTREAM_GET: ::windows_sys::core::HRESULT = -2147221056i32; +pub const CONVERT10_E_OLESTREAM_PUT: ::windows_sys::core::HRESULT = -2147221055i32; +pub const CONVERT10_E_STG_DIB_TO_BITMAP: ::windows_sys::core::HRESULT = -2147221050i32; +pub const CONVERT10_E_STG_FMT: ::windows_sys::core::HRESULT = -2147221052i32; +pub const CONVERT10_E_STG_NO_STD_STREAM: ::windows_sys::core::HRESULT = -2147221051i32; +pub const CONVERT10_S_FIRST: i32 = 262592i32; +pub const CONVERT10_S_LAST: i32 = 262607i32; +pub const CONVERT10_S_NO_PRESENTATION: ::windows_sys::core::HRESULT = 262592i32; +pub const CO_E_ACCESSCHECKFAILED: ::windows_sys::core::HRESULT = -2147417814i32; +pub const CO_E_ACESINWRONGORDER: ::windows_sys::core::HRESULT = -2147417798i32; +pub const CO_E_ACNOTINITIALIZED: ::windows_sys::core::HRESULT = -2147417793i32; +pub const CO_E_ACTIVATIONFAILED: ::windows_sys::core::HRESULT = -2147164127i32; +pub const CO_E_ACTIVATIONFAILED_CATALOGERROR: ::windows_sys::core::HRESULT = -2147164125i32; +pub const CO_E_ACTIVATIONFAILED_EVENTLOGGED: ::windows_sys::core::HRESULT = -2147164126i32; +pub const CO_E_ACTIVATIONFAILED_TIMEOUT: ::windows_sys::core::HRESULT = -2147164124i32; +pub const CO_E_ALREADYINITIALIZED: ::windows_sys::core::HRESULT = -2147221007i32; +pub const CO_E_APPDIDNTREG: ::windows_sys::core::HRESULT = -2147220994i32; +pub const CO_E_APPNOTFOUND: ::windows_sys::core::HRESULT = -2147221003i32; +pub const CO_E_APPSINGLEUSE: ::windows_sys::core::HRESULT = -2147221002i32; +pub const CO_E_ASYNC_WORK_REJECTED: ::windows_sys::core::HRESULT = -2147467223i32; +pub const CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT: ::windows_sys::core::HRESULT = -2147467228i32; +pub const CO_E_BAD_PATH: ::windows_sys::core::HRESULT = -2146959356i32; +pub const CO_E_BAD_SERVER_NAME: ::windows_sys::core::HRESULT = -2147467244i32; +pub const CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2147164112i32; +pub const CO_E_CANCEL_DISABLED: ::windows_sys::core::HRESULT = -2147417792i32; +pub const CO_E_CANTDETERMINECLASS: ::windows_sys::core::HRESULT = -2147221006i32; +pub const CO_E_CANT_REMOTE: ::windows_sys::core::HRESULT = -2147467245i32; +pub const CO_E_CLASSSTRING: ::windows_sys::core::HRESULT = -2147221005i32; +pub const CO_E_CLASS_CREATE_FAILED: ::windows_sys::core::HRESULT = -2146959359i32; +pub const CO_E_CLASS_DISABLED: ::windows_sys::core::HRESULT = -2147467225i32; +pub const CO_E_CLRNOTAVAILABLE: ::windows_sys::core::HRESULT = -2147467224i32; +pub const CO_E_CLSREG_INCONSISTENT: ::windows_sys::core::HRESULT = -2147467233i32; +pub const CO_E_CONVERSIONFAILED: ::windows_sys::core::HRESULT = -2147417810i32; +pub const CO_E_CREATEPROCESS_FAILURE: ::windows_sys::core::HRESULT = -2147467240i32; +pub const CO_E_DBERROR: ::windows_sys::core::HRESULT = -2147164117i32; +pub const CO_E_DECODEFAILED: ::windows_sys::core::HRESULT = -2147417795i32; +pub const CO_E_DLLNOTFOUND: ::windows_sys::core::HRESULT = -2147221000i32; +pub const CO_E_ELEVATION_DISABLED: ::windows_sys::core::HRESULT = -2146959337i32; +pub const CO_E_ERRORINAPP: ::windows_sys::core::HRESULT = -2147221001i32; +pub const CO_E_ERRORINDLL: ::windows_sys::core::HRESULT = -2147220999i32; +pub const CO_E_EXCEEDSYSACLLIMIT: ::windows_sys::core::HRESULT = -2147417799i32; +pub const CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED: ::windows_sys::core::HRESULT = -2147164111i32; +pub const CO_E_FAILEDTOCLOSEHANDLE: ::windows_sys::core::HRESULT = -2147417800i32; +pub const CO_E_FAILEDTOCREATEFILE: ::windows_sys::core::HRESULT = -2147417801i32; +pub const CO_E_FAILEDTOGENUUID: ::windows_sys::core::HRESULT = -2147417802i32; +pub const CO_E_FAILEDTOGETSECCTX: ::windows_sys::core::HRESULT = -2147417820i32; +pub const CO_E_FAILEDTOGETTOKENINFO: ::windows_sys::core::HRESULT = -2147417818i32; +pub const CO_E_FAILEDTOGETWINDIR: ::windows_sys::core::HRESULT = -2147417804i32; +pub const CO_E_FAILEDTOIMPERSONATE: ::windows_sys::core::HRESULT = -2147417821i32; +pub const CO_E_FAILEDTOOPENPROCESSTOKEN: ::windows_sys::core::HRESULT = -2147417796i32; +pub const CO_E_FAILEDTOOPENTHREADTOKEN: ::windows_sys::core::HRESULT = -2147417819i32; +pub const CO_E_FAILEDTOQUERYCLIENTBLANKET: ::windows_sys::core::HRESULT = -2147417816i32; +pub const CO_E_FAILEDTOSETDACL: ::windows_sys::core::HRESULT = -2147417815i32; +pub const CO_E_FIRST: i32 = -2147221008i32; +pub const CO_E_IIDREG_INCONSISTENT: ::windows_sys::core::HRESULT = -2147467232i32; +pub const CO_E_IIDSTRING: ::windows_sys::core::HRESULT = -2147221004i32; +pub const CO_E_INCOMPATIBLESTREAMVERSION: ::windows_sys::core::HRESULT = -2147417797i32; +pub const CO_E_INITIALIZATIONFAILED: ::windows_sys::core::HRESULT = -2147164123i32; +pub const CO_E_INIT_CLASS_CACHE: ::windows_sys::core::HRESULT = -2147467255i32; +pub const CO_E_INIT_MEMORY_ALLOCATOR: ::windows_sys::core::HRESULT = -2147467256i32; +pub const CO_E_INIT_ONLY_SINGLE_THREADED: ::windows_sys::core::HRESULT = -2147467246i32; +pub const CO_E_INIT_RPC_CHANNEL: ::windows_sys::core::HRESULT = -2147467254i32; +pub const CO_E_INIT_SCM_EXEC_FAILURE: ::windows_sys::core::HRESULT = -2147467247i32; +pub const CO_E_INIT_SCM_FILE_MAPPING_EXISTS: ::windows_sys::core::HRESULT = -2147467249i32; +pub const CO_E_INIT_SCM_MAP_VIEW_OF_FILE: ::windows_sys::core::HRESULT = -2147467248i32; +pub const CO_E_INIT_SCM_MUTEX_EXISTS: ::windows_sys::core::HRESULT = -2147467250i32; +pub const CO_E_INIT_SHARED_ALLOCATOR: ::windows_sys::core::HRESULT = -2147467257i32; +pub const CO_E_INIT_TLS: ::windows_sys::core::HRESULT = -2147467258i32; +pub const CO_E_INIT_TLS_CHANNEL_CONTROL: ::windows_sys::core::HRESULT = -2147467252i32; +pub const CO_E_INIT_TLS_SET_CHANNEL_CONTROL: ::windows_sys::core::HRESULT = -2147467253i32; +pub const CO_E_INIT_UNACCEPTED_USER_ALLOCATOR: ::windows_sys::core::HRESULT = -2147467251i32; +pub const CO_E_INVALIDSID: ::windows_sys::core::HRESULT = -2147417811i32; +pub const CO_E_ISOLEVELMISMATCH: ::windows_sys::core::HRESULT = -2147164113i32; +pub const CO_E_LAST: i32 = -2147220993i32; +pub const CO_E_LAUNCH_PERMSSION_DENIED: ::windows_sys::core::HRESULT = -2147467237i32; +pub const CO_E_LOOKUPACCNAMEFAILED: ::windows_sys::core::HRESULT = -2147417806i32; +pub const CO_E_LOOKUPACCSIDFAILED: ::windows_sys::core::HRESULT = -2147417808i32; +pub const CO_E_MALFORMED_SPN: ::windows_sys::core::HRESULT = -2147467213i32; +pub const CO_E_MISSING_DISPLAYNAME: ::windows_sys::core::HRESULT = -2146959339i32; +pub const CO_E_MSI_ERROR: ::windows_sys::core::HRESULT = -2147467229i32; +pub const CO_E_NETACCESSAPIFAILED: ::windows_sys::core::HRESULT = -2147417813i32; +pub const CO_E_NOCOOKIES: ::windows_sys::core::HRESULT = -2147164118i32; +pub const CO_E_NOIISINTRINSICS: ::windows_sys::core::HRESULT = -2147164119i32; +pub const CO_E_NOMATCHINGNAMEFOUND: ::windows_sys::core::HRESULT = -2147417807i32; +pub const CO_E_NOMATCHINGSIDFOUND: ::windows_sys::core::HRESULT = -2147417809i32; +pub const CO_E_NOSYNCHRONIZATION: ::windows_sys::core::HRESULT = -2147164114i32; +pub const CO_E_NOTCONSTRUCTED: ::windows_sys::core::HRESULT = -2147164115i32; +pub const CO_E_NOTINITIALIZED: ::windows_sys::core::HRESULT = -2147221008i32; +pub const CO_E_NOTPOOLED: ::windows_sys::core::HRESULT = -2147164116i32; +pub const CO_E_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2147467231i32; +pub const CO_E_NO_SECCTX_IN_ACTIVATE: ::windows_sys::core::HRESULT = -2147467221i32; +pub const CO_E_OBJISREG: ::windows_sys::core::HRESULT = -2147220996i32; +pub const CO_E_OBJNOTCONNECTED: ::windows_sys::core::HRESULT = -2147220995i32; +pub const CO_E_OBJNOTREG: ::windows_sys::core::HRESULT = -2147220997i32; +pub const CO_E_OBJSRV_RPC_FAILURE: ::windows_sys::core::HRESULT = -2146959354i32; +pub const CO_E_OLE1DDE_DISABLED: ::windows_sys::core::HRESULT = -2147467242i32; +pub const CO_E_PATHTOOLONG: ::windows_sys::core::HRESULT = -2147417803i32; +pub const CO_E_PREMATURE_STUB_RUNDOWN: ::windows_sys::core::HRESULT = -2147467211i32; +pub const CO_E_RELEASED: ::windows_sys::core::HRESULT = -2147220993i32; +pub const CO_E_RELOAD_DLL: ::windows_sys::core::HRESULT = -2147467230i32; +pub const CO_E_REMOTE_COMMUNICATION_FAILURE: ::windows_sys::core::HRESULT = -2147467235i32; +pub const CO_E_RUNAS_CREATEPROCESS_FAILURE: ::windows_sys::core::HRESULT = -2147467239i32; +pub const CO_E_RUNAS_LOGON_FAILURE: ::windows_sys::core::HRESULT = -2147467238i32; +pub const CO_E_RUNAS_SYNTAX: ::windows_sys::core::HRESULT = -2147467241i32; +pub const CO_E_RUNAS_VALUE_MUST_BE_AAA: ::windows_sys::core::HRESULT = -2146959338i32; +pub const CO_E_SCM_ERROR: ::windows_sys::core::HRESULT = -2146959358i32; +pub const CO_E_SCM_RPC_FAILURE: ::windows_sys::core::HRESULT = -2146959357i32; +pub const CO_E_SERVER_EXEC_FAILURE: ::windows_sys::core::HRESULT = -2146959355i32; +pub const CO_E_SERVER_INIT_TIMEOUT: ::windows_sys::core::HRESULT = -2147467222i32; +pub const CO_E_SERVER_NOT_PAUSED: ::windows_sys::core::HRESULT = -2147467226i32; +pub const CO_E_SERVER_PAUSED: ::windows_sys::core::HRESULT = -2147467227i32; +pub const CO_E_SERVER_START_TIMEOUT: ::windows_sys::core::HRESULT = -2147467234i32; +pub const CO_E_SERVER_STOPPING: ::windows_sys::core::HRESULT = -2146959352i32; +pub const CO_E_SETSERLHNDLFAILED: ::windows_sys::core::HRESULT = -2147417805i32; +pub const CO_E_START_SERVICE_FAILURE: ::windows_sys::core::HRESULT = -2147467236i32; +pub const CO_E_SXS_CONFIG: ::windows_sys::core::HRESULT = -2147467214i32; +pub const CO_E_THREADINGMODEL_CHANGED: ::windows_sys::core::HRESULT = -2147164120i32; +pub const CO_E_THREADPOOL_CONFIG: ::windows_sys::core::HRESULT = -2147467215i32; +pub const CO_E_TRACKER_CONFIG: ::windows_sys::core::HRESULT = -2147467216i32; +pub const CO_E_TRUSTEEDOESNTMATCHCLIENT: ::windows_sys::core::HRESULT = -2147417817i32; +pub const CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN: ::windows_sys::core::HRESULT = -2147467212i32; +pub const CO_E_WRONGOSFORAPP: ::windows_sys::core::HRESULT = -2147220998i32; +pub const CO_E_WRONGTRUSTEENAMESYNTAX: ::windows_sys::core::HRESULT = -2147417812i32; +pub const CO_E_WRONG_SERVER_IDENTITY: ::windows_sys::core::HRESULT = -2147467243i32; +pub const CO_S_FIRST: i32 = 262640i32; +pub const CO_S_LAST: i32 = 262655i32; +pub const CO_S_MACHINENAMENOTFOUND: ::windows_sys::core::HRESULT = 524307i32; +pub const CO_S_NOTALLINTERFACES: ::windows_sys::core::HRESULT = 524306i32; +pub const CRYPT_E_ALREADY_DECRYPTED: ::windows_sys::core::HRESULT = -2146889719i32; +pub const CRYPT_E_ASN1_BADARGS: ::windows_sys::core::HRESULT = -2146881271i32; +pub const CRYPT_E_ASN1_BADPDU: ::windows_sys::core::HRESULT = -2146881272i32; +pub const CRYPT_E_ASN1_BADREAL: ::windows_sys::core::HRESULT = -2146881270i32; +pub const CRYPT_E_ASN1_BADTAG: ::windows_sys::core::HRESULT = -2146881269i32; +pub const CRYPT_E_ASN1_CHOICE: ::windows_sys::core::HRESULT = -2146881268i32; +pub const CRYPT_E_ASN1_CONSTRAINT: ::windows_sys::core::HRESULT = -2146881275i32; +pub const CRYPT_E_ASN1_CORRUPT: ::windows_sys::core::HRESULT = -2146881277i32; +pub const CRYPT_E_ASN1_EOD: ::windows_sys::core::HRESULT = -2146881278i32; +pub const CRYPT_E_ASN1_ERROR: ::windows_sys::core::HRESULT = -2146881280i32; +pub const CRYPT_E_ASN1_EXTENDED: ::windows_sys::core::HRESULT = -2146881023i32; +pub const CRYPT_E_ASN1_INTERNAL: ::windows_sys::core::HRESULT = -2146881279i32; +pub const CRYPT_E_ASN1_LARGE: ::windows_sys::core::HRESULT = -2146881276i32; +pub const CRYPT_E_ASN1_MEMORY: ::windows_sys::core::HRESULT = -2146881274i32; +pub const CRYPT_E_ASN1_NOEOD: ::windows_sys::core::HRESULT = -2146881022i32; +pub const CRYPT_E_ASN1_NYI: ::windows_sys::core::HRESULT = -2146881228i32; +pub const CRYPT_E_ASN1_OVERFLOW: ::windows_sys::core::HRESULT = -2146881273i32; +pub const CRYPT_E_ASN1_PDU_TYPE: ::windows_sys::core::HRESULT = -2146881229i32; +pub const CRYPT_E_ASN1_RULE: ::windows_sys::core::HRESULT = -2146881267i32; +pub const CRYPT_E_ASN1_UTF8: ::windows_sys::core::HRESULT = -2146881266i32; +pub const CRYPT_E_ATTRIBUTES_MISSING: ::windows_sys::core::HRESULT = -2146889713i32; +pub const CRYPT_E_AUTH_ATTR_MISSING: ::windows_sys::core::HRESULT = -2146889722i32; +pub const CRYPT_E_BAD_ENCODE: ::windows_sys::core::HRESULT = -2146885630i32; +pub const CRYPT_E_BAD_LEN: ::windows_sys::core::HRESULT = -2146885631i32; +pub const CRYPT_E_BAD_MSG: ::windows_sys::core::HRESULT = -2146885619i32; +pub const CRYPT_E_CONTROL_TYPE: ::windows_sys::core::HRESULT = -2146889716i32; +pub const CRYPT_E_DELETED_PREV: ::windows_sys::core::HRESULT = -2146885624i32; +pub const CRYPT_E_EXISTS: ::windows_sys::core::HRESULT = -2146885627i32; +pub const CRYPT_E_FILERESIZED: ::windows_sys::core::HRESULT = -2146885595i32; +pub const CRYPT_E_FILE_ERROR: ::windows_sys::core::HRESULT = -2146885629i32; +pub const CRYPT_E_HASH_VALUE: ::windows_sys::core::HRESULT = -2146889721i32; +pub const CRYPT_E_INVALID_IA5_STRING: ::windows_sys::core::HRESULT = -2146885598i32; +pub const CRYPT_E_INVALID_INDEX: ::windows_sys::core::HRESULT = -2146889720i32; +pub const CRYPT_E_INVALID_MSG_TYPE: ::windows_sys::core::HRESULT = -2146889724i32; +pub const CRYPT_E_INVALID_NUMERIC_STRING: ::windows_sys::core::HRESULT = -2146885600i32; +pub const CRYPT_E_INVALID_PRINTABLE_STRING: ::windows_sys::core::HRESULT = -2146885599i32; +pub const CRYPT_E_INVALID_X500_STRING: ::windows_sys::core::HRESULT = -2146885597i32; +pub const CRYPT_E_ISSUER_SERIALNUMBER: ::windows_sys::core::HRESULT = -2146889715i32; +pub const CRYPT_E_MISSING_PUBKEY_PARA: ::windows_sys::core::HRESULT = -2146885588i32; +pub const CRYPT_E_MSG_ERROR: ::windows_sys::core::HRESULT = -2146889727i32; +pub const CRYPT_E_NOT_CHAR_STRING: ::windows_sys::core::HRESULT = -2146885596i32; +pub const CRYPT_E_NOT_DECRYPTED: ::windows_sys::core::HRESULT = -2146889718i32; +pub const CRYPT_E_NOT_FOUND: ::windows_sys::core::HRESULT = -2146885628i32; +pub const CRYPT_E_NOT_IN_CTL: ::windows_sys::core::HRESULT = -2146885590i32; +pub const CRYPT_E_NOT_IN_REVOCATION_DATABASE: ::windows_sys::core::HRESULT = -2146885612i32; +pub const CRYPT_E_NO_DECRYPT_CERT: ::windows_sys::core::HRESULT = -2146885620i32; +pub const CRYPT_E_NO_KEY_PROPERTY: ::windows_sys::core::HRESULT = -2146885621i32; +pub const CRYPT_E_NO_MATCH: ::windows_sys::core::HRESULT = -2146885623i32; +pub const CRYPT_E_NO_PROVIDER: ::windows_sys::core::HRESULT = -2146885626i32; +pub const CRYPT_E_NO_REVOCATION_CHECK: ::windows_sys::core::HRESULT = -2146885614i32; +pub const CRYPT_E_NO_REVOCATION_DLL: ::windows_sys::core::HRESULT = -2146885615i32; +pub const CRYPT_E_NO_SIGNER: ::windows_sys::core::HRESULT = -2146885618i32; +pub const CRYPT_E_NO_TRUSTED_SIGNER: ::windows_sys::core::HRESULT = -2146885589i32; +pub const CRYPT_E_NO_VERIFY_USAGE_CHECK: ::windows_sys::core::HRESULT = -2146885592i32; +pub const CRYPT_E_NO_VERIFY_USAGE_DLL: ::windows_sys::core::HRESULT = -2146885593i32; +pub const CRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND: ::windows_sys::core::HRESULT = -2146885587i32; +pub const CRYPT_E_OID_FORMAT: ::windows_sys::core::HRESULT = -2146889725i32; +pub const CRYPT_E_OSS_ERROR: ::windows_sys::core::HRESULT = -2146881536i32; +pub const CRYPT_E_PENDING_CLOSE: ::windows_sys::core::HRESULT = -2146885617i32; +pub const CRYPT_E_RECIPIENT_NOT_FOUND: ::windows_sys::core::HRESULT = -2146889717i32; +pub const CRYPT_E_REVOCATION_OFFLINE: ::windows_sys::core::HRESULT = -2146885613i32; +pub const CRYPT_E_REVOKED: ::windows_sys::core::HRESULT = -2146885616i32; +pub const CRYPT_E_SECURITY_SETTINGS: ::windows_sys::core::HRESULT = -2146885594i32; +pub const CRYPT_E_SELF_SIGNED: ::windows_sys::core::HRESULT = -2146885625i32; +pub const CRYPT_E_SIGNER_NOT_FOUND: ::windows_sys::core::HRESULT = -2146889714i32; +pub const CRYPT_E_STREAM_INSUFFICIENT_DATA: ::windows_sys::core::HRESULT = -2146889711i32; +pub const CRYPT_E_STREAM_MSG_NOT_READY: ::windows_sys::core::HRESULT = -2146889712i32; +pub const CRYPT_E_UNEXPECTED_ENCODING: ::windows_sys::core::HRESULT = -2146889723i32; +pub const CRYPT_E_UNEXPECTED_MSG_TYPE: ::windows_sys::core::HRESULT = -2146885622i32; +pub const CRYPT_E_UNKNOWN_ALGO: ::windows_sys::core::HRESULT = -2146889726i32; +pub const CRYPT_E_VERIFY_USAGE_OFFLINE: ::windows_sys::core::HRESULT = -2146885591i32; +pub const CRYPT_I_NEW_PROTECTION_REQUIRED: ::windows_sys::core::HRESULT = 593938i32; +pub const CS_E_ADMIN_LIMIT_EXCEEDED: ::windows_sys::core::HRESULT = -2147221139i32; +pub const CS_E_CLASS_NOTFOUND: ::windows_sys::core::HRESULT = -2147221146i32; +pub const CS_E_FIRST: i32 = -2147221148i32; +pub const CS_E_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2147221137i32; +pub const CS_E_INVALID_PATH: ::windows_sys::core::HRESULT = -2147221141i32; +pub const CS_E_INVALID_VERSION: ::windows_sys::core::HRESULT = -2147221145i32; +pub const CS_E_LAST: i32 = -2147221137i32; +pub const CS_E_NETWORK_ERROR: ::windows_sys::core::HRESULT = -2147221140i32; +pub const CS_E_NOT_DELETABLE: ::windows_sys::core::HRESULT = -2147221147i32; +pub const CS_E_NO_CLASSSTORE: ::windows_sys::core::HRESULT = -2147221144i32; +pub const CS_E_OBJECT_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2147221142i32; +pub const CS_E_OBJECT_NOTFOUND: ::windows_sys::core::HRESULT = -2147221143i32; +pub const CS_E_PACKAGE_NOTFOUND: ::windows_sys::core::HRESULT = -2147221148i32; +pub const CS_E_SCHEMA_MISMATCH: ::windows_sys::core::HRESULT = -2147221138i32; +pub const D2DERR_BAD_NUMBER: ::windows_sys::core::HRESULT = -2003238895i32; +pub const D2DERR_BITMAP_BOUND_AS_TARGET: ::windows_sys::core::HRESULT = -2003238875i32; +pub const D2DERR_BITMAP_CANNOT_DRAW: ::windows_sys::core::HRESULT = -2003238879i32; +pub const D2DERR_CYCLIC_GRAPH: ::windows_sys::core::HRESULT = -2003238880i32; +pub const D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2003238903i32; +pub const D2DERR_DISPLAY_STATE_INVALID: ::windows_sys::core::HRESULT = -2003238906i32; +pub const D2DERR_EFFECT_IS_NOT_REGISTERED: ::windows_sys::core::HRESULT = -2003238872i32; +pub const D2DERR_EXCEEDS_MAX_BITMAP_SIZE: ::windows_sys::core::HRESULT = -2003238883i32; +pub const D2DERR_INCOMPATIBLE_BRUSH_TYPES: ::windows_sys::core::HRESULT = -2003238888i32; +pub const D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES: ::windows_sys::core::HRESULT = -2003238874i32; +pub const D2DERR_INTERMEDIATE_TOO_LARGE: ::windows_sys::core::HRESULT = -2003238873i32; +pub const D2DERR_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2003238904i32; +pub const D2DERR_INVALID_CALL: ::windows_sys::core::HRESULT = -2003238902i32; +pub const D2DERR_INVALID_GLYPH_IMAGE: ::windows_sys::core::HRESULT = -2003238866i32; +pub const D2DERR_INVALID_GRAPH_CONFIGURATION: ::windows_sys::core::HRESULT = -2003238882i32; +pub const D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION: ::windows_sys::core::HRESULT = -2003238881i32; +pub const D2DERR_INVALID_PROPERTY: ::windows_sys::core::HRESULT = -2003238871i32; +pub const D2DERR_INVALID_TARGET: ::windows_sys::core::HRESULT = -2003238876i32; +pub const D2DERR_LAYER_ALREADY_IN_USE: ::windows_sys::core::HRESULT = -2003238893i32; +pub const D2DERR_MAX_TEXTURE_SIZE_EXCEEDED: ::windows_sys::core::HRESULT = -2003238897i32; +pub const D2DERR_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -2003238910i32; +pub const D2DERR_NO_HARDWARE_DEVICE: ::windows_sys::core::HRESULT = -2003238901i32; +pub const D2DERR_NO_SUBPROPERTIES: ::windows_sys::core::HRESULT = -2003238870i32; +pub const D2DERR_ORIGINAL_TARGET_NOT_BOUND: ::windows_sys::core::HRESULT = -2003238877i32; +pub const D2DERR_OUTSTANDING_BITMAP_REFERENCES: ::windows_sys::core::HRESULT = -2003238878i32; +pub const D2DERR_POP_CALL_DID_NOT_MATCH_PUSH: ::windows_sys::core::HRESULT = -2003238892i32; +pub const D2DERR_PRINT_FORMAT_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2003238868i32; +pub const D2DERR_PRINT_JOB_CLOSED: ::windows_sys::core::HRESULT = -2003238869i32; +pub const D2DERR_PUSH_POP_UNBALANCED: ::windows_sys::core::HRESULT = -2003238890i32; +pub const D2DERR_RECREATE_TARGET: ::windows_sys::core::HRESULT = -2003238900i32; +pub const D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT: ::windows_sys::core::HRESULT = -2003238889i32; +pub const D2DERR_SCANNER_FAILED: ::windows_sys::core::HRESULT = -2003238908i32; +pub const D2DERR_SCREEN_ACCESS_DENIED: ::windows_sys::core::HRESULT = -2003238907i32; +pub const D2DERR_SHADER_COMPILE_FAILED: ::windows_sys::core::HRESULT = -2003238898i32; +pub const D2DERR_TARGET_NOT_GDI_COMPATIBLE: ::windows_sys::core::HRESULT = -2003238886i32; +pub const D2DERR_TEXT_EFFECT_IS_WRONG_TYPE: ::windows_sys::core::HRESULT = -2003238885i32; +pub const D2DERR_TEXT_RENDERER_NOT_RELEASED: ::windows_sys::core::HRESULT = -2003238884i32; +pub const D2DERR_TOO_MANY_SHADER_ELEMENTS: ::windows_sys::core::HRESULT = -2003238899i32; +pub const D2DERR_TOO_MANY_TRANSFORM_INPUTS: ::windows_sys::core::HRESULT = -2003238867i32; +pub const D2DERR_UNSUPPORTED_OPERATION: ::windows_sys::core::HRESULT = -2003238909i32; +pub const D2DERR_UNSUPPORTED_VERSION: ::windows_sys::core::HRESULT = -2003238896i32; +pub const D2DERR_WIN32_ERROR: ::windows_sys::core::HRESULT = -2003238887i32; +pub const D2DERR_WRONG_FACTORY: ::windows_sys::core::HRESULT = -2003238894i32; +pub const D2DERR_WRONG_RESOURCE_DOMAIN: ::windows_sys::core::HRESULT = -2003238891i32; +pub const D2DERR_WRONG_STATE: ::windows_sys::core::HRESULT = -2003238911i32; +pub const D2DERR_ZERO_VECTOR: ::windows_sys::core::HRESULT = -2003238905i32; +pub const D3D10_ERROR_FILE_NOT_FOUND: ::windows_sys::core::HRESULT = -2005336062i32; +pub const D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS: ::windows_sys::core::HRESULT = -2005336063i32; +pub const D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD: ::windows_sys::core::HRESULT = -2005139452i32; +pub const D3D11_ERROR_FILE_NOT_FOUND: ::windows_sys::core::HRESULT = -2005139454i32; +pub const D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS: ::windows_sys::core::HRESULT = -2005139455i32; +pub const D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS: ::windows_sys::core::HRESULT = -2005139453i32; +pub const D3D12_ERROR_ADAPTER_NOT_FOUND: ::windows_sys::core::HRESULT = -2005008383i32; +pub const D3D12_ERROR_DRIVER_VERSION_MISMATCH: ::windows_sys::core::HRESULT = -2005008382i32; +pub const D3D12_ERROR_INVALID_REDIST: ::windows_sys::core::HRESULT = -2005008381i32; +pub const DATA_E_FIRST: i32 = -2147221200i32; +pub const DATA_E_LAST: i32 = -2147221185i32; +pub const DATA_S_FIRST: i32 = 262448i32; +pub const DATA_S_LAST: i32 = 262463i32; +pub const DATA_S_SAMEFORMATETC: ::windows_sys::core::HRESULT = 262448i32; +pub const DBG_APP_NOT_IDLE: NTSTATUS = -1073676286i32; +pub const DBG_COMMAND_EXCEPTION: NTSTATUS = 1073807369i32; +pub const DBG_CONTINUE: NTSTATUS = 65538i32; +pub const DBG_CONTROL_BREAK: NTSTATUS = 1073807368i32; +pub const DBG_CONTROL_C: NTSTATUS = 1073807365i32; +pub const DBG_EXCEPTION_HANDLED: NTSTATUS = 65537i32; +pub const DBG_EXCEPTION_NOT_HANDLED: NTSTATUS = -2147418111i32; +pub const DBG_NO_STATE_CHANGE: NTSTATUS = -1073676287i32; +pub const DBG_PRINTEXCEPTION_C: NTSTATUS = 1073807366i32; +pub const DBG_PRINTEXCEPTION_WIDE_C: NTSTATUS = 1073807370i32; +pub const DBG_REPLY_LATER: NTSTATUS = 1073807361i32; +pub const DBG_RIPEXCEPTION: NTSTATUS = 1073807367i32; +pub const DBG_TERMINATE_PROCESS: NTSTATUS = 1073807364i32; +pub const DBG_TERMINATE_THREAD: NTSTATUS = 1073807363i32; +pub const DBG_UNABLE_TO_PROVIDE_HANDLE: NTSTATUS = 1073807362i32; +pub const DCOMPOSITION_ERROR_SURFACE_BEING_RENDERED: ::windows_sys::core::HRESULT = -2003302399i32; +pub const DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED: ::windows_sys::core::HRESULT = -2003302398i32; +pub const DCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED: ::windows_sys::core::HRESULT = -2003302400i32; +pub const DIGSIG_E_CRYPTO: ::windows_sys::core::HRESULT = -2146762744i32; +pub const DIGSIG_E_DECODE: ::windows_sys::core::HRESULT = -2146762746i32; +pub const DIGSIG_E_ENCODE: ::windows_sys::core::HRESULT = -2146762747i32; +pub const DIGSIG_E_EXTENSIBILITY: ::windows_sys::core::HRESULT = -2146762745i32; +pub const DISP_E_ARRAYISLOCKED: ::windows_sys::core::HRESULT = -2147352563i32; +pub const DISP_E_BADCALLEE: ::windows_sys::core::HRESULT = -2147352560i32; +pub const DISP_E_BADINDEX: ::windows_sys::core::HRESULT = -2147352565i32; +pub const DISP_E_BADPARAMCOUNT: ::windows_sys::core::HRESULT = -2147352562i32; +pub const DISP_E_BADVARTYPE: ::windows_sys::core::HRESULT = -2147352568i32; +pub const DISP_E_BUFFERTOOSMALL: ::windows_sys::core::HRESULT = -2147352557i32; +pub const DISP_E_DIVBYZERO: ::windows_sys::core::HRESULT = -2147352558i32; +pub const DISP_E_EXCEPTION: ::windows_sys::core::HRESULT = -2147352567i32; +pub const DISP_E_MEMBERNOTFOUND: ::windows_sys::core::HRESULT = -2147352573i32; +pub const DISP_E_NONAMEDARGS: ::windows_sys::core::HRESULT = -2147352569i32; +pub const DISP_E_NOTACOLLECTION: ::windows_sys::core::HRESULT = -2147352559i32; +pub const DISP_E_OVERFLOW: ::windows_sys::core::HRESULT = -2147352566i32; +pub const DISP_E_PARAMNOTFOUND: ::windows_sys::core::HRESULT = -2147352572i32; +pub const DISP_E_PARAMNOTOPTIONAL: ::windows_sys::core::HRESULT = -2147352561i32; +pub const DISP_E_TYPEMISMATCH: ::windows_sys::core::HRESULT = -2147352571i32; +pub const DISP_E_UNKNOWNINTERFACE: ::windows_sys::core::HRESULT = -2147352575i32; +pub const DISP_E_UNKNOWNLCID: ::windows_sys::core::HRESULT = -2147352564i32; +pub const DISP_E_UNKNOWNNAME: ::windows_sys::core::HRESULT = -2147352570i32; +pub const DNS_ERROR_ADDRESS_REQUIRED: WIN32_ERROR = 9573u32; +pub const DNS_ERROR_ALIAS_LOOP: WIN32_ERROR = 9722u32; +pub const DNS_ERROR_AUTOZONE_ALREADY_EXISTS: WIN32_ERROR = 9610u32; +pub const DNS_ERROR_AXFR: WIN32_ERROR = 9752u32; +pub const DNS_ERROR_BACKGROUND_LOADING: WIN32_ERROR = 9568u32; +pub const DNS_ERROR_BAD_KEYMASTER: WIN32_ERROR = 9122u32; +pub const DNS_ERROR_BAD_PACKET: WIN32_ERROR = 9502u32; +pub const DNS_ERROR_CANNOT_FIND_ROOT_HINTS: WIN32_ERROR = 9564u32; +pub const DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS: WIN32_ERROR = 9977u32; +pub const DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST: WIN32_ERROR = 9976u32; +pub const DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED: WIN32_ERROR = 9975u32; +pub const DNS_ERROR_CNAME_COLLISION: WIN32_ERROR = 9709u32; +pub const DNS_ERROR_CNAME_LOOP: WIN32_ERROR = 9707u32; +pub const DNS_ERROR_DATABASE_BASE: WIN32_ERROR = 9700u32; +pub const DNS_ERROR_DATAFILE_BASE: WIN32_ERROR = 9650u32; +pub const DNS_ERROR_DATAFILE_OPEN_FAILURE: WIN32_ERROR = 9653u32; +pub const DNS_ERROR_DATAFILE_PARSING: WIN32_ERROR = 9655u32; +pub const DNS_ERROR_DEFAULT_SCOPE: WIN32_ERROR = 9960u32; +pub const DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE: WIN32_ERROR = 9925u32; +pub const DNS_ERROR_DEFAULT_ZONESCOPE: WIN32_ERROR = 9953u32; +pub const DNS_ERROR_DELEGATION_REQUIRED: WIN32_ERROR = 9571u32; +pub const DNS_ERROR_DNAME_COLLISION: WIN32_ERROR = 9721u32; +pub const DNS_ERROR_DNSSEC_BASE: WIN32_ERROR = 9100u32; +pub const DNS_ERROR_DNSSEC_IS_DISABLED: WIN32_ERROR = 9125u32; +pub const DNS_ERROR_DP_ALREADY_ENLISTED: WIN32_ERROR = 9904u32; +pub const DNS_ERROR_DP_ALREADY_EXISTS: WIN32_ERROR = 9902u32; +pub const DNS_ERROR_DP_BASE: WIN32_ERROR = 9900u32; +pub const DNS_ERROR_DP_DOES_NOT_EXIST: WIN32_ERROR = 9901u32; +pub const DNS_ERROR_DP_FSMO_ERROR: WIN32_ERROR = 9906u32; +pub const DNS_ERROR_DP_NOT_AVAILABLE: WIN32_ERROR = 9905u32; +pub const DNS_ERROR_DP_NOT_ENLISTED: WIN32_ERROR = 9903u32; +pub const DNS_ERROR_DS_UNAVAILABLE: WIN32_ERROR = 9717u32; +pub const DNS_ERROR_DS_ZONE_ALREADY_EXISTS: WIN32_ERROR = 9718u32; +pub const DNS_ERROR_DWORD_VALUE_TOO_LARGE: WIN32_ERROR = 9567u32; +pub const DNS_ERROR_DWORD_VALUE_TOO_SMALL: WIN32_ERROR = 9566u32; +pub const DNS_ERROR_FILE_WRITEBACK_FAILED: WIN32_ERROR = 9654u32; +pub const DNS_ERROR_FORWARDER_ALREADY_EXISTS: WIN32_ERROR = 9619u32; +pub const DNS_ERROR_GENERAL_API_BASE: WIN32_ERROR = 9550u32; +pub const DNS_ERROR_INCONSISTENT_ROOT_HINTS: WIN32_ERROR = 9565u32; +pub const DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME: WIN32_ERROR = 9924u32; +pub const DNS_ERROR_INVALID_CLIENT_SUBNET_NAME: WIN32_ERROR = 9984u32; +pub const DNS_ERROR_INVALID_DATA: WIN32_ERROR = 13u32; +pub const DNS_ERROR_INVALID_DATAFILE_NAME: WIN32_ERROR = 9652u32; +pub const DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET: WIN32_ERROR = 9115u32; +pub const DNS_ERROR_INVALID_IP_ADDRESS: WIN32_ERROR = 9552u32; +pub const DNS_ERROR_INVALID_KEY_SIZE: WIN32_ERROR = 9106u32; +pub const DNS_ERROR_INVALID_NAME: WIN32_ERROR = 123u32; +pub const DNS_ERROR_INVALID_NAME_CHAR: WIN32_ERROR = 9560u32; +pub const DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT: WIN32_ERROR = 9124u32; +pub const DNS_ERROR_INVALID_POLICY_TABLE: WIN32_ERROR = 9572u32; +pub const DNS_ERROR_INVALID_PROPERTY: WIN32_ERROR = 9553u32; +pub const DNS_ERROR_INVALID_ROLLOVER_PERIOD: WIN32_ERROR = 9114u32; +pub const DNS_ERROR_INVALID_SCOPE_NAME: WIN32_ERROR = 9958u32; +pub const DNS_ERROR_INVALID_SCOPE_OPERATION: WIN32_ERROR = 9961u32; +pub const DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD: WIN32_ERROR = 9123u32; +pub const DNS_ERROR_INVALID_TYPE: WIN32_ERROR = 9551u32; +pub const DNS_ERROR_INVALID_XML: WIN32_ERROR = 9126u32; +pub const DNS_ERROR_INVALID_ZONESCOPE_NAME: WIN32_ERROR = 9954u32; +pub const DNS_ERROR_INVALID_ZONE_OPERATION: WIN32_ERROR = 9603u32; +pub const DNS_ERROR_INVALID_ZONE_TYPE: WIN32_ERROR = 9611u32; +pub const DNS_ERROR_KEYMASTER_REQUIRED: WIN32_ERROR = 9101u32; +pub const DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION: WIN32_ERROR = 9108u32; +pub const DNS_ERROR_KSP_NOT_ACCESSIBLE: WIN32_ERROR = 9112u32; +pub const DNS_ERROR_LOAD_ZONESCOPE_FAILED: WIN32_ERROR = 9956u32; +pub const DNS_ERROR_MASK: WIN32_ERROR = 9000u32; +pub const DNS_ERROR_NAME_DOES_NOT_EXIST: WIN32_ERROR = 9714u32; +pub const DNS_ERROR_NAME_NOT_IN_ZONE: WIN32_ERROR = 9706u32; +pub const DNS_ERROR_NBSTAT_INIT_FAILED: WIN32_ERROR = 9617u32; +pub const DNS_ERROR_NEED_SECONDARY_ADDRESSES: WIN32_ERROR = 9614u32; +pub const DNS_ERROR_NEED_WINS_SERVERS: WIN32_ERROR = 9616u32; +pub const DNS_ERROR_NODE_CREATION_FAILED: WIN32_ERROR = 9703u32; +pub const DNS_ERROR_NODE_IS_CNAME: WIN32_ERROR = 9708u32; +pub const DNS_ERROR_NODE_IS_DNAME: WIN32_ERROR = 9720u32; +pub const DNS_ERROR_NON_RFC_NAME: WIN32_ERROR = 9556u32; +pub const DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD: WIN32_ERROR = 9119u32; +pub const DNS_ERROR_NOT_ALLOWED_ON_RODC: WIN32_ERROR = 9569u32; +pub const DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER: WIN32_ERROR = 9562u32; +pub const DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE: WIN32_ERROR = 9102u32; +pub const DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE: WIN32_ERROR = 9121u32; +pub const DNS_ERROR_NOT_ALLOWED_ON_ZSK: WIN32_ERROR = 9118u32; +pub const DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION: WIN32_ERROR = 9563u32; +pub const DNS_ERROR_NOT_ALLOWED_UNDER_DNAME: WIN32_ERROR = 9570u32; +pub const DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES: WIN32_ERROR = 9955u32; +pub const DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS: WIN32_ERROR = 9104u32; +pub const DNS_ERROR_NOT_UNIQUE: WIN32_ERROR = 9555u32; +pub const DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE: WIN32_ERROR = 9719u32; +pub const DNS_ERROR_NO_CREATE_CACHE_DATA: WIN32_ERROR = 9713u32; +pub const DNS_ERROR_NO_DNS_SERVERS: WIN32_ERROR = 9852u32; +pub const DNS_ERROR_NO_MEMORY: WIN32_ERROR = 14u32; +pub const DNS_ERROR_NO_PACKET: WIN32_ERROR = 9503u32; +pub const DNS_ERROR_NO_TCPIP: WIN32_ERROR = 9851u32; +pub const DNS_ERROR_NO_VALID_TRUST_ANCHORS: WIN32_ERROR = 9127u32; +pub const DNS_ERROR_NO_ZONE_INFO: WIN32_ERROR = 9602u32; +pub const DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1: WIN32_ERROR = 9103u32; +pub const DNS_ERROR_NSEC3_NAME_COLLISION: WIN32_ERROR = 9129u32; +pub const DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1: WIN32_ERROR = 9130u32; +pub const DNS_ERROR_NUMERIC_NAME: WIN32_ERROR = 9561u32; +pub const DNS_ERROR_OPERATION_BASE: WIN32_ERROR = 9750u32; +pub const DNS_ERROR_PACKET_FMT_BASE: WIN32_ERROR = 9500u32; +pub const DNS_ERROR_POLICY_ALREADY_EXISTS: WIN32_ERROR = 9971u32; +pub const DNS_ERROR_POLICY_DOES_NOT_EXIST: WIN32_ERROR = 9972u32; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA: WIN32_ERROR = 9973u32; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET: WIN32_ERROR = 9990u32; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN: WIN32_ERROR = 9994u32; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE: WIN32_ERROR = 9993u32; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL: WIN32_ERROR = 9992u32; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE: WIN32_ERROR = 9995u32; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY: WIN32_ERROR = 9996u32; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL: WIN32_ERROR = 9991u32; +pub const DNS_ERROR_POLICY_INVALID_NAME: WIN32_ERROR = 9982u32; +pub const DNS_ERROR_POLICY_INVALID_SETTINGS: WIN32_ERROR = 9974u32; +pub const DNS_ERROR_POLICY_INVALID_WEIGHT: WIN32_ERROR = 9981u32; +pub const DNS_ERROR_POLICY_LOCKED: WIN32_ERROR = 9980u32; +pub const DNS_ERROR_POLICY_MISSING_CRITERIA: WIN32_ERROR = 9983u32; +pub const DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID: WIN32_ERROR = 9985u32; +pub const DNS_ERROR_POLICY_SCOPE_MISSING: WIN32_ERROR = 9986u32; +pub const DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED: WIN32_ERROR = 9987u32; +pub const DNS_ERROR_PRIMARY_REQUIRES_DATAFILE: WIN32_ERROR = 9651u32; +pub const DNS_ERROR_RCODE: WIN32_ERROR = 9504u32; +pub const DNS_ERROR_RCODE_BADKEY: WIN32_ERROR = 9017u32; +pub const DNS_ERROR_RCODE_BADSIG: WIN32_ERROR = 9016u32; +pub const DNS_ERROR_RCODE_BADTIME: WIN32_ERROR = 9018u32; +pub const DNS_ERROR_RCODE_FORMAT_ERROR: WIN32_ERROR = 9001u32; +pub const DNS_ERROR_RCODE_LAST: WIN32_ERROR = 9018u32; +pub const DNS_ERROR_RCODE_NAME_ERROR: WIN32_ERROR = 9003u32; +pub const DNS_ERROR_RCODE_NOTAUTH: WIN32_ERROR = 9009u32; +pub const DNS_ERROR_RCODE_NOTZONE: WIN32_ERROR = 9010u32; +pub const DNS_ERROR_RCODE_NOT_IMPLEMENTED: WIN32_ERROR = 9004u32; +pub const DNS_ERROR_RCODE_NO_ERROR: WIN32_ERROR = 0u32; +pub const DNS_ERROR_RCODE_NXRRSET: WIN32_ERROR = 9008u32; +pub const DNS_ERROR_RCODE_REFUSED: WIN32_ERROR = 9005u32; +pub const DNS_ERROR_RCODE_SERVER_FAILURE: WIN32_ERROR = 9002u32; +pub const DNS_ERROR_RCODE_YXDOMAIN: WIN32_ERROR = 9006u32; +pub const DNS_ERROR_RCODE_YXRRSET: WIN32_ERROR = 9007u32; +pub const DNS_ERROR_RECORD_ALREADY_EXISTS: WIN32_ERROR = 9711u32; +pub const DNS_ERROR_RECORD_DOES_NOT_EXIST: WIN32_ERROR = 9701u32; +pub const DNS_ERROR_RECORD_FORMAT: WIN32_ERROR = 9702u32; +pub const DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT: WIN32_ERROR = 9710u32; +pub const DNS_ERROR_RECORD_TIMED_OUT: WIN32_ERROR = 9705u32; +pub const DNS_ERROR_RESPONSE_CODES_BASE: WIN32_ERROR = 9000u32; +pub const DNS_ERROR_ROLLOVER_ALREADY_QUEUED: WIN32_ERROR = 9120u32; +pub const DNS_ERROR_ROLLOVER_IN_PROGRESS: WIN32_ERROR = 9116u32; +pub const DNS_ERROR_ROLLOVER_NOT_POKEABLE: WIN32_ERROR = 9128u32; +pub const DNS_ERROR_RRL_INVALID_IPV4_PREFIX: WIN32_ERROR = 9913u32; +pub const DNS_ERROR_RRL_INVALID_IPV6_PREFIX: WIN32_ERROR = 9914u32; +pub const DNS_ERROR_RRL_INVALID_LEAK_RATE: WIN32_ERROR = 9916u32; +pub const DNS_ERROR_RRL_INVALID_TC_RATE: WIN32_ERROR = 9915u32; +pub const DNS_ERROR_RRL_INVALID_WINDOW_SIZE: WIN32_ERROR = 9912u32; +pub const DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE: WIN32_ERROR = 9917u32; +pub const DNS_ERROR_RRL_NOT_ENABLED: WIN32_ERROR = 9911u32; +pub const DNS_ERROR_SCOPE_ALREADY_EXISTS: WIN32_ERROR = 9963u32; +pub const DNS_ERROR_SCOPE_DOES_NOT_EXIST: WIN32_ERROR = 9959u32; +pub const DNS_ERROR_SCOPE_LOCKED: WIN32_ERROR = 9962u32; +pub const DNS_ERROR_SECONDARY_DATA: WIN32_ERROR = 9712u32; +pub const DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP: WIN32_ERROR = 9612u32; +pub const DNS_ERROR_SECURE_BASE: WIN32_ERROR = 9800u32; +pub const DNS_ERROR_SERVERSCOPE_IS_REFERENCED: WIN32_ERROR = 9988u32; +pub const DNS_ERROR_SETUP_BASE: WIN32_ERROR = 9850u32; +pub const DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE: WIN32_ERROR = 9107u32; +pub const DNS_ERROR_SOA_DELETE_INVALID: WIN32_ERROR = 9618u32; +pub const DNS_ERROR_STANDBY_KEY_NOT_PRESENT: WIN32_ERROR = 9117u32; +pub const DNS_ERROR_SUBNET_ALREADY_EXISTS: WIN32_ERROR = 9979u32; +pub const DNS_ERROR_SUBNET_DOES_NOT_EXIST: WIN32_ERROR = 9978u32; +pub const DNS_ERROR_TOO_MANY_SKDS: WIN32_ERROR = 9113u32; +pub const DNS_ERROR_TRY_AGAIN_LATER: WIN32_ERROR = 9554u32; +pub const DNS_ERROR_UNEXPECTED_CNG_ERROR: WIN32_ERROR = 9110u32; +pub const DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR: WIN32_ERROR = 9109u32; +pub const DNS_ERROR_UNKNOWN_RECORD_TYPE: WIN32_ERROR = 9704u32; +pub const DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION: WIN32_ERROR = 9111u32; +pub const DNS_ERROR_UNSECURE_PACKET: WIN32_ERROR = 9505u32; +pub const DNS_ERROR_UNSUPPORTED_ALGORITHM: WIN32_ERROR = 9105u32; +pub const DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS: WIN32_ERROR = 9921u32; +pub const DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST: WIN32_ERROR = 9922u32; +pub const DNS_ERROR_VIRTUALIZATION_TREE_LOCKED: WIN32_ERROR = 9923u32; +pub const DNS_ERROR_WINS_INIT_FAILED: WIN32_ERROR = 9615u32; +pub const DNS_ERROR_ZONESCOPE_ALREADY_EXISTS: WIN32_ERROR = 9951u32; +pub const DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST: WIN32_ERROR = 9952u32; +pub const DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED: WIN32_ERROR = 9957u32; +pub const DNS_ERROR_ZONESCOPE_IS_REFERENCED: WIN32_ERROR = 9989u32; +pub const DNS_ERROR_ZONE_ALREADY_EXISTS: WIN32_ERROR = 9609u32; +pub const DNS_ERROR_ZONE_BASE: WIN32_ERROR = 9600u32; +pub const DNS_ERROR_ZONE_CONFIGURATION_ERROR: WIN32_ERROR = 9604u32; +pub const DNS_ERROR_ZONE_CREATION_FAILED: WIN32_ERROR = 9608u32; +pub const DNS_ERROR_ZONE_DOES_NOT_EXIST: WIN32_ERROR = 9601u32; +pub const DNS_ERROR_ZONE_HAS_NO_NS_RECORDS: WIN32_ERROR = 9606u32; +pub const DNS_ERROR_ZONE_HAS_NO_SOA_RECORD: WIN32_ERROR = 9605u32; +pub const DNS_ERROR_ZONE_IS_SHUTDOWN: WIN32_ERROR = 9621u32; +pub const DNS_ERROR_ZONE_LOCKED: WIN32_ERROR = 9607u32; +pub const DNS_ERROR_ZONE_LOCKED_FOR_SIGNING: WIN32_ERROR = 9622u32; +pub const DNS_ERROR_ZONE_NOT_SECONDARY: WIN32_ERROR = 9613u32; +pub const DNS_ERROR_ZONE_REQUIRES_MASTER_IP: WIN32_ERROR = 9620u32; +pub const DNS_INFO_ADDED_LOCAL_WINS: i32 = 9753i32; +pub const DNS_INFO_AXFR_COMPLETE: i32 = 9751i32; +pub const DNS_INFO_NO_RECORDS: i32 = 9501i32; +pub const DNS_REQUEST_PENDING: i32 = 9506i32; +pub const DNS_STATUS_CONTINUE_NEEDED: i32 = 9801i32; +pub const DNS_STATUS_DOTTED_NAME: i32 = 9558i32; +pub const DNS_STATUS_FQDN: i32 = 9557i32; +pub const DNS_STATUS_SINGLE_PART_NAME: i32 = 9559i32; +pub const DNS_WARNING_DOMAIN_UNDELETED: i32 = 9716i32; +pub const DNS_WARNING_PTR_CREATE_FAILED: i32 = 9715i32; +pub const DRAGDROP_E_ALREADYREGISTERED: ::windows_sys::core::HRESULT = -2147221247i32; +pub const DRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED: ::windows_sys::core::HRESULT = -2147221245i32; +pub const DRAGDROP_E_FIRST: i32 = -2147221248i32; +pub const DRAGDROP_E_INVALIDHWND: ::windows_sys::core::HRESULT = -2147221246i32; +pub const DRAGDROP_E_LAST: i32 = -2147221233i32; +pub const DRAGDROP_E_NOTREGISTERED: ::windows_sys::core::HRESULT = -2147221248i32; +pub const DRAGDROP_S_CANCEL: ::windows_sys::core::HRESULT = 262401i32; +pub const DRAGDROP_S_DROP: ::windows_sys::core::HRESULT = 262400i32; +pub const DRAGDROP_S_FIRST: i32 = 262400i32; +pub const DRAGDROP_S_LAST: i32 = 262415i32; +pub const DRAGDROP_S_USEDEFAULTCURSORS: ::windows_sys::core::HRESULT = 262402i32; +pub const DUPLICATE_CLOSE_SOURCE: DUPLICATE_HANDLE_OPTIONS = 1u32; +pub const DUPLICATE_SAME_ACCESS: DUPLICATE_HANDLE_OPTIONS = 2u32; +pub const DV_E_CLIPFORMAT: ::windows_sys::core::HRESULT = -2147221398i32; +pub const DV_E_DVASPECT: ::windows_sys::core::HRESULT = -2147221397i32; +pub const DV_E_DVTARGETDEVICE: ::windows_sys::core::HRESULT = -2147221403i32; +pub const DV_E_DVTARGETDEVICE_SIZE: ::windows_sys::core::HRESULT = -2147221396i32; +pub const DV_E_FORMATETC: ::windows_sys::core::HRESULT = -2147221404i32; +pub const DV_E_LINDEX: ::windows_sys::core::HRESULT = -2147221400i32; +pub const DV_E_NOIVIEWOBJECT: ::windows_sys::core::HRESULT = -2147221395i32; +pub const DV_E_STATDATA: ::windows_sys::core::HRESULT = -2147221401i32; +pub const DV_E_STGMEDIUM: ::windows_sys::core::HRESULT = -2147221402i32; +pub const DV_E_TYMED: ::windows_sys::core::HRESULT = -2147221399i32; +pub const DWMERR_CATASTROPHIC_FAILURE: ::windows_sys::core::HRESULT = -2003302654i32; +pub const DWMERR_STATE_TRANSITION_FAILED: ::windows_sys::core::HRESULT = -2003302656i32; +pub const DWMERR_THEME_FAILED: ::windows_sys::core::HRESULT = -2003302655i32; +pub const DWM_E_ADAPTER_NOT_FOUND: ::windows_sys::core::HRESULT = -2144980987i32; +pub const DWM_E_COMPOSITIONDISABLED: ::windows_sys::core::HRESULT = -2144980991i32; +pub const DWM_E_NOT_QUEUING_PRESENTS: ::windows_sys::core::HRESULT = -2144980988i32; +pub const DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE: ::windows_sys::core::HRESULT = -2144980989i32; +pub const DWM_E_REMOTING_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144980990i32; +pub const DWM_E_TEXTURE_TOO_LARGE: ::windows_sys::core::HRESULT = -2144980985i32; +pub const DWM_S_GDI_REDIRECTION_SURFACE: ::windows_sys::core::HRESULT = 2502661i32; +pub const DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI: ::windows_sys::core::HRESULT = 2502664i32; +pub const DWRITE_E_ALREADYREGISTERED: ::windows_sys::core::HRESULT = -2003283962i32; +pub const DWRITE_E_CACHEFORMAT: ::windows_sys::core::HRESULT = -2003283961i32; +pub const DWRITE_E_CACHEVERSION: ::windows_sys::core::HRESULT = -2003283960i32; +pub const DWRITE_E_FILEACCESS: ::windows_sys::core::HRESULT = -2003283964i32; +pub const DWRITE_E_FILEFORMAT: ::windows_sys::core::HRESULT = -2003283968i32; +pub const DWRITE_E_FILENOTFOUND: ::windows_sys::core::HRESULT = -2003283965i32; +pub const DWRITE_E_FLOWDIRECTIONCONFLICTS: ::windows_sys::core::HRESULT = -2003283957i32; +pub const DWRITE_E_FONTCOLLECTIONOBSOLETE: ::windows_sys::core::HRESULT = -2003283963i32; +pub const DWRITE_E_NOCOLOR: ::windows_sys::core::HRESULT = -2003283956i32; +pub const DWRITE_E_NOFONT: ::windows_sys::core::HRESULT = -2003283966i32; +pub const DWRITE_E_TEXTRENDERERINCOMPATIBLE: ::windows_sys::core::HRESULT = -2003283958i32; +pub const DWRITE_E_UNEXPECTED: ::windows_sys::core::HRESULT = -2003283967i32; +pub const DWRITE_E_UNSUPPORTEDOPERATION: ::windows_sys::core::HRESULT = -2003283959i32; +pub const DXCORE_ERROR_EVENT_NOT_UNREGISTERED: ::windows_sys::core::HRESULT = -2004877311i32; +pub const DXGI_DDI_ERR_NONEXCLUSIVE: ::windows_sys::core::HRESULT = -2005204989i32; +pub const DXGI_DDI_ERR_UNSUPPORTED: ::windows_sys::core::HRESULT = -2005204990i32; +pub const DXGI_DDI_ERR_WASSTILLDRAWING: ::windows_sys::core::HRESULT = -2005204991i32; +pub const DXGI_STATUS_CLIPPED: ::windows_sys::core::HRESULT = 142213122i32; +pub const DXGI_STATUS_DDA_WAS_STILL_DRAWING: ::windows_sys::core::HRESULT = 142213130i32; +pub const DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE: ::windows_sys::core::HRESULT = 142213126i32; +pub const DXGI_STATUS_MODE_CHANGED: ::windows_sys::core::HRESULT = 142213127i32; +pub const DXGI_STATUS_MODE_CHANGE_IN_PROGRESS: ::windows_sys::core::HRESULT = 142213128i32; +pub const DXGI_STATUS_NO_DESKTOP_ACCESS: ::windows_sys::core::HRESULT = 142213125i32; +pub const DXGI_STATUS_NO_REDIRECTION: ::windows_sys::core::HRESULT = 142213124i32; +pub const DXGI_STATUS_OCCLUDED: ::windows_sys::core::HRESULT = 142213121i32; +pub const DXGI_STATUS_PRESENT_REQUIRED: ::windows_sys::core::HRESULT = 142213167i32; +pub const DXGI_STATUS_UNOCCLUDED: ::windows_sys::core::HRESULT = 142213129i32; +pub const EAS_E_ADMINS_CANNOT_CHANGE_PASSWORD: ::windows_sys::core::HRESULT = -2141913080i32; +pub const EAS_E_ADMINS_HAVE_BLANK_PASSWORD: ::windows_sys::core::HRESULT = -2141913081i32; +pub const EAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD: ::windows_sys::core::HRESULT = -2141913077i32; +pub const EAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD: ::windows_sys::core::HRESULT = -2141913075i32; +pub const EAS_E_CURRENT_USER_HAS_BLANK_PASSWORD: ::windows_sys::core::HRESULT = -2141913084i32; +pub const EAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD: ::windows_sys::core::HRESULT = -2141913079i32; +pub const EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS: ::windows_sys::core::HRESULT = -2141913078i32; +pub const EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER: ::windows_sys::core::HRESULT = -2141913076i32; +pub const EAS_E_POLICY_COMPLIANT_WITH_ACTIONS: ::windows_sys::core::HRESULT = -2141913086i32; +pub const EAS_E_POLICY_NOT_MANAGED_BY_OS: ::windows_sys::core::HRESULT = -2141913087i32; +pub const EAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE: ::windows_sys::core::HRESULT = -2141913085i32; +pub const EAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE: ::windows_sys::core::HRESULT = -2141913083i32; +pub const EAS_E_USER_CANNOT_CHANGE_PASSWORD: ::windows_sys::core::HRESULT = -2141913082i32; +pub const ENUM_E_FIRST: i32 = -2147221072i32; +pub const ENUM_E_LAST: i32 = -2147221057i32; +pub const ENUM_S_FIRST: i32 = 262576i32; +pub const ENUM_S_LAST: i32 = 262591i32; +pub const EPT_NT_CANT_CREATE: NTSTATUS = -1073610676i32; +pub const EPT_NT_CANT_PERFORM_OP: NTSTATUS = -1073610699i32; +pub const EPT_NT_INVALID_ENTRY: NTSTATUS = -1073610700i32; +pub const EPT_NT_NOT_REGISTERED: NTSTATUS = -1073610698i32; +pub const ERROR_ABANDONED_WAIT_0: WIN32_ERROR = 735u32; +pub const ERROR_ABANDONED_WAIT_63: WIN32_ERROR = 736u32; +pub const ERROR_ABANDON_HIBERFILE: WIN32_ERROR = 787u32; +pub const ERROR_ABIOS_ERROR: WIN32_ERROR = 538u32; +pub const ERROR_ACCESS_AUDIT_BY_POLICY: WIN32_ERROR = 785u32; +pub const ERROR_ACCESS_DENIED: WIN32_ERROR = 5u32; +pub const ERROR_ACCESS_DENIED_APPDATA: WIN32_ERROR = 502u32; +pub const ERROR_ACCESS_DISABLED_BY_POLICY: WIN32_ERROR = 1260u32; +pub const ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY: WIN32_ERROR = 786u32; +pub const ERROR_ACCESS_DISABLED_WEBBLADE: WIN32_ERROR = 1277u32; +pub const ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER: WIN32_ERROR = 1278u32; +pub const ERROR_ACCOUNT_DISABLED: WIN32_ERROR = 1331u32; +pub const ERROR_ACCOUNT_EXPIRED: WIN32_ERROR = 1793u32; +pub const ERROR_ACCOUNT_LOCKED_OUT: WIN32_ERROR = 1909u32; +pub const ERROR_ACCOUNT_RESTRICTION: WIN32_ERROR = 1327u32; +pub const ERROR_ACPI_ERROR: WIN32_ERROR = 669u32; +pub const ERROR_ACTIVATION_COUNT_EXCEEDED: WIN32_ERROR = 7059u32; +pub const ERROR_ACTIVE_CONNECTIONS: WIN32_ERROR = 2402u32; +pub const ERROR_ADAP_HDW_ERR: WIN32_ERROR = 57u32; +pub const ERROR_ADDRESS_ALREADY_ASSOCIATED: WIN32_ERROR = 1227u32; +pub const ERROR_ADDRESS_NOT_ASSOCIATED: WIN32_ERROR = 1228u32; +pub const ERROR_ADVANCED_INSTALLER_FAILED: WIN32_ERROR = 14099u32; +pub const ERROR_ALERTED: WIN32_ERROR = 739u32; +pub const ERROR_ALIAS_EXISTS: WIN32_ERROR = 1379u32; +pub const ERROR_ALLOCATE_BUCKET: WIN32_ERROR = 602u32; +pub const ERROR_ALLOTTED_SPACE_EXCEEDED: WIN32_ERROR = 1344u32; +pub const ERROR_ALLOWED_PORT_TYPE_RESTRICTION: u32 = 941u32; +pub const ERROR_ALL_NODES_NOT_AVAILABLE: WIN32_ERROR = 5037u32; +pub const ERROR_ALL_SIDS_FILTERED: ::windows_sys::core::HRESULT = -1073151998i32; +pub const ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED: WIN32_ERROR = 1933u32; +pub const ERROR_ALREADY_ASSIGNED: WIN32_ERROR = 85u32; +pub const ERROR_ALREADY_CONNECTED: u32 = 901u32; +pub const ERROR_ALREADY_CONNECTING: u32 = 910u32; +pub const ERROR_ALREADY_EXISTS: WIN32_ERROR = 183u32; +pub const ERROR_ALREADY_FIBER: WIN32_ERROR = 1280u32; +pub const ERROR_ALREADY_HAS_STREAM_ID: WIN32_ERROR = 4444u32; +pub const ERROR_ALREADY_INITIALIZED: WIN32_ERROR = 1247u32; +pub const ERROR_ALREADY_REGISTERED: WIN32_ERROR = 1242u32; +pub const ERROR_ALREADY_RUNNING_LKG: WIN32_ERROR = 1074u32; +pub const ERROR_ALREADY_THREAD: WIN32_ERROR = 1281u32; +pub const ERROR_ALREADY_WAITING: WIN32_ERROR = 1904u32; +pub const ERROR_ALREADY_WIN32: WIN32_ERROR = 719u32; +pub const ERROR_AMBIGUOUS_SYSTEM_DEVICE: WIN32_ERROR = 15250u32; +pub const ERROR_API_UNAVAILABLE: WIN32_ERROR = 15841u32; +pub const ERROR_APPCONTAINER_REQUIRED: WIN32_ERROR = 4251u32; +pub const ERROR_APPEXEC_APP_COMPAT_BLOCK: WIN32_ERROR = 3068u32; +pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT: WIN32_ERROR = 3069u32; +pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_LICENSING: WIN32_ERROR = 3071u32; +pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_RESOURCES: WIN32_ERROR = 3072u32; +pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_TERMINATION: WIN32_ERROR = 3070u32; +pub const ERROR_APPEXEC_CONDITION_NOT_SATISFIED: WIN32_ERROR = 3060u32; +pub const ERROR_APPEXEC_HANDLE_INVALIDATED: WIN32_ERROR = 3061u32; +pub const ERROR_APPEXEC_HOST_ID_MISMATCH: WIN32_ERROR = 3066u32; +pub const ERROR_APPEXEC_INVALID_HOST_GENERATION: WIN32_ERROR = 3062u32; +pub const ERROR_APPEXEC_INVALID_HOST_STATE: WIN32_ERROR = 3064u32; +pub const ERROR_APPEXEC_NO_DONOR: WIN32_ERROR = 3065u32; +pub const ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION: WIN32_ERROR = 3063u32; +pub const ERROR_APPEXEC_UNKNOWN_USER: WIN32_ERROR = 3067u32; +pub const ERROR_APPHELP_BLOCK: WIN32_ERROR = 1259u32; +pub const ERROR_APPINSTALLER_ACTIVATION_BLOCKED: WIN32_ERROR = 15646u32; +pub const ERROR_APPINSTALLER_IS_MANAGED_BY_SYSTEM: WIN32_ERROR = 15672u32; +pub const ERROR_APPINSTALLER_URI_IN_USE: WIN32_ERROR = 15671u32; +pub const ERROR_APPX_FILE_NOT_ENCRYPTED: WIN32_ERROR = 409u32; +pub const ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN: WIN32_ERROR = 15624u32; +pub const ERROR_APPX_RAW_DATA_WRITE_FAILED: WIN32_ERROR = 15648u32; +pub const ERROR_APP_DATA_CORRUPT: WIN32_ERROR = 4402u32; +pub const ERROR_APP_DATA_EXPIRED: WIN32_ERROR = 4401u32; +pub const ERROR_APP_DATA_LIMIT_EXCEEDED: WIN32_ERROR = 4403u32; +pub const ERROR_APP_DATA_NOT_FOUND: WIN32_ERROR = 4400u32; +pub const ERROR_APP_DATA_REBOOT_REQUIRED: WIN32_ERROR = 4404u32; +pub const ERROR_APP_HANG: WIN32_ERROR = 1298u32; +pub const ERROR_APP_INIT_FAILURE: WIN32_ERROR = 575u32; +pub const ERROR_APP_WRONG_OS: WIN32_ERROR = 1151u32; +pub const ERROR_ARBITRATION_UNHANDLED: WIN32_ERROR = 723u32; +pub const ERROR_ARENA_TRASHED: WIN32_ERROR = 7u32; +pub const ERROR_ARITHMETIC_OVERFLOW: WIN32_ERROR = 534u32; +pub const ERROR_ASSERTION_FAILURE: WIN32_ERROR = 668u32; +pub const ERROR_ATOMIC_LOCKS_NOT_SUPPORTED: WIN32_ERROR = 174u32; +pub const ERROR_ATTRIBUTE_NOT_PRESENT: ::windows_sys::core::HRESULT = -2138898422i32; +pub const ERROR_AUDITING_DISABLED: ::windows_sys::core::HRESULT = -1073151999i32; +pub const ERROR_AUDIT_FAILED: WIN32_ERROR = 606u32; +pub const ERROR_AUTHENTICATION_FIREWALL_FAILED: WIN32_ERROR = 1935u32; +pub const ERROR_AUTHENTICATOR_MISMATCH: u32 = 955u32; +pub const ERROR_AUTHENTICODE_DISALLOWED: WIN32_ERROR = 3758096960u32; +pub const ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED: WIN32_ERROR = 3758096963u32; +pub const ERROR_AUTHENTICODE_TRUSTED_PUBLISHER: WIN32_ERROR = 3758096961u32; +pub const ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED: WIN32_ERROR = 3758096962u32; +pub const ERROR_AUTHIP_FAILURE: WIN32_ERROR = 1469u32; +pub const ERROR_AUTH_PROTOCOL_REJECTED: u32 = 917u32; +pub const ERROR_AUTH_PROTOCOL_RESTRICTION: u32 = 942u32; +pub const ERROR_AUTH_SERVER_TIMEOUT: u32 = 930u32; +pub const ERROR_AUTODATASEG_EXCEEDS_64k: WIN32_ERROR = 199u32; +pub const ERROR_BACKUP_CONTROLLER: WIN32_ERROR = 586u32; +pub const ERROR_BADDB: WIN32_ERROR = 1009u32; +pub const ERROR_BADKEY: WIN32_ERROR = 1010u32; +pub const ERROR_BADSTARTPOSITION: WIN32_ERROR = 778u32; +pub const ERROR_BAD_ACCESSOR_FLAGS: WIN32_ERROR = 773u32; +pub const ERROR_BAD_ARGUMENTS: WIN32_ERROR = 160u32; +pub const ERROR_BAD_CLUSTERS: WIN32_ERROR = 6849u32; +pub const ERROR_BAD_COMMAND: WIN32_ERROR = 22u32; +pub const ERROR_BAD_COMPRESSION_BUFFER: WIN32_ERROR = 605u32; +pub const ERROR_BAD_CONFIGURATION: WIN32_ERROR = 1610u32; +pub const ERROR_BAD_CURRENT_DIRECTORY: WIN32_ERROR = 703u32; +pub const ERROR_BAD_DESCRIPTOR_FORMAT: WIN32_ERROR = 1361u32; +pub const ERROR_BAD_DEVICE: WIN32_ERROR = 1200u32; +pub const ERROR_BAD_DEVICE_PATH: WIN32_ERROR = 330u32; +pub const ERROR_BAD_DEV_TYPE: WIN32_ERROR = 66u32; +pub const ERROR_BAD_DLL_ENTRYPOINT: WIN32_ERROR = 609u32; +pub const ERROR_BAD_DRIVER: WIN32_ERROR = 2001u32; +pub const ERROR_BAD_DRIVER_LEVEL: WIN32_ERROR = 119u32; +pub const ERROR_BAD_ENVIRONMENT: WIN32_ERROR = 10u32; +pub const ERROR_BAD_EXE_FORMAT: WIN32_ERROR = 193u32; +pub const ERROR_BAD_FILE_TYPE: WIN32_ERROR = 222u32; +pub const ERROR_BAD_FORMAT: WIN32_ERROR = 11u32; +pub const ERROR_BAD_FUNCTION_TABLE: WIN32_ERROR = 559u32; +pub const ERROR_BAD_IMPERSONATION_LEVEL: WIN32_ERROR = 1346u32; +pub const ERROR_BAD_INHERITANCE_ACL: WIN32_ERROR = 1340u32; +pub const ERROR_BAD_INTERFACE_INSTALLSECT: WIN32_ERROR = 3758096925u32; +pub const ERROR_BAD_LENGTH: WIN32_ERROR = 24u32; +pub const ERROR_BAD_LOGON_SESSION_STATE: WIN32_ERROR = 1365u32; +pub const ERROR_BAD_MCFG_TABLE: WIN32_ERROR = 791u32; +pub const ERROR_BAD_NETPATH: WIN32_ERROR = 53u32; +pub const ERROR_BAD_NET_NAME: WIN32_ERROR = 67u32; +pub const ERROR_BAD_NET_RESP: WIN32_ERROR = 58u32; +pub const ERROR_BAD_PATHNAME: WIN32_ERROR = 161u32; +pub const ERROR_BAD_PIPE: WIN32_ERROR = 230u32; +pub const ERROR_BAD_PROFILE: WIN32_ERROR = 1206u32; +pub const ERROR_BAD_PROVIDER: WIN32_ERROR = 1204u32; +pub const ERROR_BAD_QUERY_SYNTAX: WIN32_ERROR = 1615u32; +pub const ERROR_BAD_RECOVERY_POLICY: WIN32_ERROR = 6012u32; +pub const ERROR_BAD_REM_ADAP: WIN32_ERROR = 60u32; +pub const ERROR_BAD_SECTION_NAME_LINE: WIN32_ERROR = 3758096385u32; +pub const ERROR_BAD_SERVICE_ENTRYPOINT: WIN32_ERROR = 610u32; +pub const ERROR_BAD_SERVICE_INSTALLSECT: WIN32_ERROR = 3758096919u32; +pub const ERROR_BAD_STACK: WIN32_ERROR = 543u32; +pub const ERROR_BAD_THREADID_ADDR: WIN32_ERROR = 159u32; +pub const ERROR_BAD_TOKEN_TYPE: WIN32_ERROR = 1349u32; +pub const ERROR_BAD_UNIT: WIN32_ERROR = 20u32; +pub const ERROR_BAD_USERNAME: WIN32_ERROR = 2202u32; +pub const ERROR_BAD_USER_PROFILE: WIN32_ERROR = 1253u32; +pub const ERROR_BAD_VALIDATION_CLASS: WIN32_ERROR = 1348u32; +pub const ERROR_BAP_DISCONNECTED: u32 = 936u32; +pub const ERROR_BAP_REQUIRED: u32 = 943u32; +pub const ERROR_BCD_NOT_ALL_ENTRIES_IMPORTED: WIN32_ERROR = 2151219201u32; +pub const ERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED: WIN32_ERROR = 2151219203u32; +pub const ERROR_BCD_TOO_MANY_ELEMENTS: WIN32_ERROR = 3224961026u32; +pub const ERROR_BEGINNING_OF_MEDIA: WIN32_ERROR = 1102u32; +pub const ERROR_BEYOND_VDL: WIN32_ERROR = 1289u32; +pub const ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT: WIN32_ERROR = 585u32; +pub const ERROR_BIZRULES_NOT_ENABLED: ::windows_sys::core::HRESULT = -1073151997i32; +pub const ERROR_BLOCKED_BY_PARENTAL_CONTROLS: WIN32_ERROR = 346u32; +pub const ERROR_BLOCK_SHARED: WIN32_ERROR = 514u32; +pub const ERROR_BLOCK_SOURCE_WEAK_REFERENCE_INVALID: WIN32_ERROR = 512u32; +pub const ERROR_BLOCK_TARGET_WEAK_REFERENCE_INVALID: WIN32_ERROR = 513u32; +pub const ERROR_BLOCK_TOO_MANY_REFERENCES: WIN32_ERROR = 347u32; +pub const ERROR_BLOCK_WEAK_REFERENCE_INVALID: WIN32_ERROR = 511u32; +pub const ERROR_BOOT_ALREADY_ACCEPTED: WIN32_ERROR = 1076u32; +pub const ERROR_BROKEN_PIPE: WIN32_ERROR = 109u32; +pub const ERROR_BUFFER_ALL_ZEROS: WIN32_ERROR = 754u32; +pub const ERROR_BUFFER_OVERFLOW: WIN32_ERROR = 111u32; +pub const ERROR_BUSY: WIN32_ERROR = 170u32; +pub const ERROR_BUSY_DRIVE: WIN32_ERROR = 142u32; +pub const ERROR_BUS_RESET: WIN32_ERROR = 1111u32; +pub const ERROR_BYPASSIO_FLT_NOT_SUPPORTED: WIN32_ERROR = 506u32; +pub const ERROR_CACHE_PAGE_LOCKED: WIN32_ERROR = 752u32; +pub const ERROR_CALLBACK_INVOKE_INLINE: WIN32_ERROR = 812u32; +pub const ERROR_CALLBACK_POP_STACK: WIN32_ERROR = 768u32; +pub const ERROR_CALLBACK_SUPPLIED_INVALID_DATA: WIN32_ERROR = 1273u32; +pub const ERROR_CALL_NOT_IMPLEMENTED: WIN32_ERROR = 120u32; +pub const ERROR_CANCELLED: WIN32_ERROR = 1223u32; +pub const ERROR_CANCEL_VIOLATION: WIN32_ERROR = 173u32; +pub const ERROR_CANNOT_ABORT_TRANSACTIONS: WIN32_ERROR = 6848u32; +pub const ERROR_CANNOT_ACCEPT_TRANSACTED_WORK: WIN32_ERROR = 6847u32; +pub const ERROR_CANNOT_BREAK_OPLOCK: WIN32_ERROR = 802u32; +pub const ERROR_CANNOT_COPY: WIN32_ERROR = 266u32; +pub const ERROR_CANNOT_DETECT_DRIVER_FAILURE: WIN32_ERROR = 1080u32; +pub const ERROR_CANNOT_DETECT_PROCESS_ABORT: WIN32_ERROR = 1081u32; +pub const ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION: WIN32_ERROR = 6838u32; +pub const ERROR_CANNOT_FIND_WND_CLASS: WIN32_ERROR = 1407u32; +pub const ERROR_CANNOT_GRANT_REQUESTED_OPLOCK: WIN32_ERROR = 801u32; +pub const ERROR_CANNOT_IMPERSONATE: WIN32_ERROR = 1368u32; +pub const ERROR_CANNOT_LOAD_REGISTRY_FILE: WIN32_ERROR = 589u32; +pub const ERROR_CANNOT_MAKE: WIN32_ERROR = 82u32; +pub const ERROR_CANNOT_OPEN_PROFILE: WIN32_ERROR = 1205u32; +pub const ERROR_CANNOT_SWITCH_RUNLEVEL: WIN32_ERROR = 15400u32; +pub const ERROR_CANTFETCHBACKWARDS: WIN32_ERROR = 770u32; +pub const ERROR_CANTOPEN: WIN32_ERROR = 1011u32; +pub const ERROR_CANTREAD: WIN32_ERROR = 1012u32; +pub const ERROR_CANTSCROLLBACKWARDS: WIN32_ERROR = 771u32; +pub const ERROR_CANTWRITE: WIN32_ERROR = 1013u32; +pub const ERROR_CANT_ACCESS_DOMAIN_INFO: WIN32_ERROR = 1351u32; +pub const ERROR_CANT_ACCESS_FILE: WIN32_ERROR = 1920u32; +pub const ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY: WIN32_ERROR = 6824u32; +pub const ERROR_CANT_CLEAR_ENCRYPTION_FLAG: WIN32_ERROR = 432u32; +pub const ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS: WIN32_ERROR = 6812u32; +pub const ERROR_CANT_CROSS_RM_BOUNDARY: WIN32_ERROR = 6825u32; +pub const ERROR_CANT_DELETE_LAST_ITEM: WIN32_ERROR = 4335u32; +pub const ERROR_CANT_DISABLE_MANDATORY: WIN32_ERROR = 1310u32; +pub const ERROR_CANT_ENABLE_DENY_ONLY: WIN32_ERROR = 629u32; +pub const ERROR_CANT_EVICT_ACTIVE_NODE: WIN32_ERROR = 5009u32; +pub const ERROR_CANT_LOAD_CLASS_ICON: WIN32_ERROR = 3758096908u32; +pub const ERROR_CANT_OPEN_ANONYMOUS: WIN32_ERROR = 1347u32; +pub const ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT: WIN32_ERROR = 6811u32; +pub const ERROR_CANT_RECOVER_WITH_HANDLE_OPEN: WIN32_ERROR = 6818u32; +pub const ERROR_CANT_REMOVE_DEVINST: WIN32_ERROR = 3758096946u32; +pub const ERROR_CANT_RESOLVE_FILENAME: WIN32_ERROR = 1921u32; +pub const ERROR_CANT_TERMINATE_SELF: WIN32_ERROR = 555u32; +pub const ERROR_CANT_WAIT: WIN32_ERROR = 554u32; +pub const ERROR_CAN_NOT_COMPLETE: WIN32_ERROR = 1003u32; +pub const ERROR_CAN_NOT_DEL_LOCAL_WINS: WIN32_ERROR = 4001u32; +pub const ERROR_CAPAUTHZ_CHANGE_TYPE: WIN32_ERROR = 451u32; +pub const ERROR_CAPAUTHZ_DB_CORRUPTED: WIN32_ERROR = 455u32; +pub const ERROR_CAPAUTHZ_NOT_AUTHORIZED: WIN32_ERROR = 453u32; +pub const ERROR_CAPAUTHZ_NOT_DEVUNLOCKED: WIN32_ERROR = 450u32; +pub const ERROR_CAPAUTHZ_NOT_PROVISIONED: WIN32_ERROR = 452u32; +pub const ERROR_CAPAUTHZ_NO_POLICY: WIN32_ERROR = 454u32; +pub const ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED: WIN32_ERROR = 459u32; +pub const ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG: WIN32_ERROR = 456u32; +pub const ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY: WIN32_ERROR = 457u32; +pub const ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH: WIN32_ERROR = 460u32; +pub const ERROR_CAPAUTHZ_SCCD_PARSE_ERROR: WIN32_ERROR = 458u32; +pub const ERROR_CARDBUS_NOT_SUPPORTED: WIN32_ERROR = 724u32; +pub const ERROR_CASE_DIFFERING_NAMES_IN_DIR: WIN32_ERROR = 424u32; +pub const ERROR_CASE_SENSITIVE_PATH: WIN32_ERROR = 442u32; +pub const ERROR_CERTIFICATE_VALIDATION_PREFERENCE_CONFLICT: WIN32_ERROR = 817u32; +pub const ERROR_CHECKING_FILE_SYSTEM: WIN32_ERROR = 712u32; +pub const ERROR_CHECKOUT_REQUIRED: WIN32_ERROR = 221u32; +pub const ERROR_CHILD_MUST_BE_VOLATILE: WIN32_ERROR = 1021u32; +pub const ERROR_CHILD_NOT_COMPLETE: WIN32_ERROR = 129u32; +pub const ERROR_CHILD_PROCESS_BLOCKED: WIN32_ERROR = 367u32; +pub const ERROR_CHILD_WINDOW_MENU: WIN32_ERROR = 1436u32; +pub const ERROR_CIMFS_IMAGE_CORRUPT: WIN32_ERROR = 470u32; +pub const ERROR_CIMFS_IMAGE_VERSION_NOT_SUPPORTED: WIN32_ERROR = 471u32; +pub const ERROR_CIRCULAR_DEPENDENCY: WIN32_ERROR = 1059u32; +pub const ERROR_CLASSIC_COMPAT_MODE_NOT_ALLOWED: WIN32_ERROR = 15667u32; +pub const ERROR_CLASS_ALREADY_EXISTS: WIN32_ERROR = 1410u32; +pub const ERROR_CLASS_DOES_NOT_EXIST: WIN32_ERROR = 1411u32; +pub const ERROR_CLASS_HAS_WINDOWS: WIN32_ERROR = 1412u32; +pub const ERROR_CLASS_MISMATCH: WIN32_ERROR = 3758096897u32; +pub const ERROR_CLEANER_CARTRIDGE_INSTALLED: WIN32_ERROR = 4340u32; +pub const ERROR_CLEANER_CARTRIDGE_SPENT: WIN32_ERROR = 4333u32; +pub const ERROR_CLEANER_SLOT_NOT_SET: WIN32_ERROR = 4332u32; +pub const ERROR_CLEANER_SLOT_SET: WIN32_ERROR = 4331u32; +pub const ERROR_CLIENT_INTERFACE_ALREADY_EXISTS: u32 = 915u32; +pub const ERROR_CLIENT_SERVER_PARAMETERS_INVALID: WIN32_ERROR = 597u32; +pub const ERROR_CLIPBOARD_NOT_OPEN: WIN32_ERROR = 1418u32; +pub const ERROR_CLIPPING_NOT_SUPPORTED: WIN32_ERROR = 2005u32; +pub const ERROR_CLIP_DEVICE_LICENSE_MISSING: ::windows_sys::core::HRESULT = -1058406397i32; +pub const ERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID: ::windows_sys::core::HRESULT = -1058406395i32; +pub const ERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH: ::windows_sys::core::HRESULT = -1058406390i32; +pub const ERROR_CLIP_LICENSE_EXPIRED: ::windows_sys::core::HRESULT = -1058406394i32; +pub const ERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE: ::windows_sys::core::HRESULT = -1058406391i32; +pub const ERROR_CLIP_LICENSE_INVALID_SIGNATURE: ::windows_sys::core::HRESULT = -1058406396i32; +pub const ERROR_CLIP_LICENSE_NOT_FOUND: ::windows_sys::core::HRESULT = -1058406398i32; +pub const ERROR_CLIP_LICENSE_NOT_SIGNED: ::windows_sys::core::HRESULT = -1058406392i32; +pub const ERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE: ::windows_sys::core::HRESULT = -1058406393i32; +pub const ERROR_CLOUD_FILE_ACCESS_DENIED: WIN32_ERROR = 395u32; +pub const ERROR_CLOUD_FILE_ALREADY_CONNECTED: WIN32_ERROR = 378u32; +pub const ERROR_CLOUD_FILE_AUTHENTICATION_FAILED: WIN32_ERROR = 386u32; +pub const ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY: WIN32_ERROR = 382u32; +pub const ERROR_CLOUD_FILE_DEHYDRATION_DISALLOWED: WIN32_ERROR = 434u32; +pub const ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS: WIN32_ERROR = 396u32; +pub const ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES: WIN32_ERROR = 387u32; +pub const ERROR_CLOUD_FILE_INVALID_REQUEST: WIN32_ERROR = 380u32; +pub const ERROR_CLOUD_FILE_IN_USE: WIN32_ERROR = 391u32; +pub const ERROR_CLOUD_FILE_METADATA_CORRUPT: WIN32_ERROR = 363u32; +pub const ERROR_CLOUD_FILE_METADATA_TOO_LARGE: WIN32_ERROR = 364u32; +pub const ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE: WIN32_ERROR = 388u32; +pub const ERROR_CLOUD_FILE_NOT_IN_SYNC: WIN32_ERROR = 377u32; +pub const ERROR_CLOUD_FILE_NOT_SUPPORTED: WIN32_ERROR = 379u32; +pub const ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT: WIN32_ERROR = 390u32; +pub const ERROR_CLOUD_FILE_PINNED: WIN32_ERROR = 392u32; +pub const ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH: WIN32_ERROR = 366u32; +pub const ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE: WIN32_ERROR = 365u32; +pub const ERROR_CLOUD_FILE_PROPERTY_CORRUPT: WIN32_ERROR = 394u32; +pub const ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT: WIN32_ERROR = 397u32; +pub const ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED: WIN32_ERROR = 375u32; +pub const ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING: WIN32_ERROR = 362u32; +pub const ERROR_CLOUD_FILE_PROVIDER_TERMINATED: WIN32_ERROR = 404u32; +pub const ERROR_CLOUD_FILE_READ_ONLY_VOLUME: WIN32_ERROR = 381u32; +pub const ERROR_CLOUD_FILE_REQUEST_ABORTED: WIN32_ERROR = 393u32; +pub const ERROR_CLOUD_FILE_REQUEST_CANCELED: WIN32_ERROR = 398u32; +pub const ERROR_CLOUD_FILE_REQUEST_TIMEOUT: WIN32_ERROR = 426u32; +pub const ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT: WIN32_ERROR = 358u32; +pub const ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS: WIN32_ERROR = 374u32; +pub const ERROR_CLOUD_FILE_UNSUCCESSFUL: WIN32_ERROR = 389u32; +pub const ERROR_CLOUD_FILE_US_MESSAGE_TIMEOUT: WIN32_ERROR = 475u32; +pub const ERROR_CLOUD_FILE_VALIDATION_FAILED: WIN32_ERROR = 383u32; +pub const ERROR_CLUSCFG_ALREADY_COMMITTED: WIN32_ERROR = 5901u32; +pub const ERROR_CLUSCFG_ROLLBACK_FAILED: WIN32_ERROR = 5902u32; +pub const ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT: WIN32_ERROR = 5903u32; +pub const ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND: WIN32_ERROR = 5032u32; +pub const ERROR_CLUSTERLOG_CORRUPT: WIN32_ERROR = 5029u32; +pub const ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE: WIN32_ERROR = 5031u32; +pub const ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE: WIN32_ERROR = 5033u32; +pub const ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE: WIN32_ERROR = 5030u32; +pub const ERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE: WIN32_ERROR = 5999u32; +pub const ERROR_CLUSTER_AFFINITY_CONFLICT: WIN32_ERROR = 5971u32; +pub const ERROR_CLUSTER_BACKUP_IN_PROGRESS: WIN32_ERROR = 5949u32; +pub const ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES: WIN32_ERROR = 5968u32; +pub const ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME: WIN32_ERROR = 5900u32; +pub const ERROR_CLUSTER_CANT_DESERIALIZE_DATA: WIN32_ERROR = 5923u32; +pub const ERROR_CLUSTER_CSV_INVALID_HANDLE: WIN32_ERROR = 5989u32; +pub const ERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT: WIN32_ERROR = 5979u32; +pub const ERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR: WIN32_ERROR = 5990u32; +pub const ERROR_CLUSTER_DATABASE_SEQMISMATCH: WIN32_ERROR = 5083u32; +pub const ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS: WIN32_ERROR = 5918u32; +pub const ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS: WIN32_ERROR = 5919u32; +pub const ERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED: WIN32_ERROR = 5986u32; +pub const ERROR_CLUSTER_DISK_NOT_CONNECTED: WIN32_ERROR = 5963u32; +pub const ERROR_CLUSTER_EVICT_INVALID_REQUEST: WIN32_ERROR = 5939u32; +pub const ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP: WIN32_ERROR = 5896u32; +pub const ERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION: WIN32_ERROR = 5996u32; +pub const ERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY: WIN32_ERROR = 5995u32; +pub const ERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND: WIN32_ERROR = 5994u32; +pub const ERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS: WIN32_ERROR = 5997u32; +pub const ERROR_CLUSTER_GROUP_BUSY: WIN32_ERROR = 5944u32; +pub const ERROR_CLUSTER_GROUP_MOVING: WIN32_ERROR = 5908u32; +pub const ERROR_CLUSTER_GROUP_QUEUED: WIN32_ERROR = 5959u32; +pub const ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE: WIN32_ERROR = 5941u32; +pub const ERROR_CLUSTER_GUM_NOT_LOCKER: WIN32_ERROR = 5085u32; +pub const ERROR_CLUSTER_INCOMPATIBLE_VERSIONS: WIN32_ERROR = 5075u32; +pub const ERROR_CLUSTER_INSTANCE_ID_MISMATCH: WIN32_ERROR = 5893u32; +pub const ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION: WIN32_ERROR = 5912u32; +pub const ERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME: WIN32_ERROR = 5998u32; +pub const ERROR_CLUSTER_INVALID_IPV6_NETWORK: WIN32_ERROR = 5926u32; +pub const ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK: WIN32_ERROR = 5927u32; +pub const ERROR_CLUSTER_INVALID_NETWORK: WIN32_ERROR = 5054u32; +pub const ERROR_CLUSTER_INVALID_NETWORK_PROVIDER: WIN32_ERROR = 5049u32; +pub const ERROR_CLUSTER_INVALID_NODE: WIN32_ERROR = 5039u32; +pub const ERROR_CLUSTER_INVALID_NODE_WEIGHT: WIN32_ERROR = 5954u32; +pub const ERROR_CLUSTER_INVALID_REQUEST: WIN32_ERROR = 5048u32; +pub const ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR: WIN32_ERROR = 5946u32; +pub const ERROR_CLUSTER_INVALID_STRING_FORMAT: WIN32_ERROR = 5917u32; +pub const ERROR_CLUSTER_INVALID_STRING_TERMINATION: WIN32_ERROR = 5916u32; +pub const ERROR_CLUSTER_IPADDR_IN_USE: WIN32_ERROR = 5057u32; +pub const ERROR_CLUSTER_JOIN_ABORTED: WIN32_ERROR = 5074u32; +pub const ERROR_CLUSTER_JOIN_IN_PROGRESS: WIN32_ERROR = 5041u32; +pub const ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS: WIN32_ERROR = 5053u32; +pub const ERROR_CLUSTER_LAST_INTERNAL_NETWORK: WIN32_ERROR = 5066u32; +pub const ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND: WIN32_ERROR = 5043u32; +pub const ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED: WIN32_ERROR = 5076u32; +pub const ERROR_CLUSTER_MAX_NODES_IN_CLUSTER: WIN32_ERROR = 5934u32; +pub const ERROR_CLUSTER_MEMBERSHIP_HALT: WIN32_ERROR = 5892u32; +pub const ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE: WIN32_ERROR = 5890u32; +pub const ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME: WIN32_ERROR = 5905u32; +pub const ERROR_CLUSTER_NETINTERFACE_EXISTS: WIN32_ERROR = 5046u32; +pub const ERROR_CLUSTER_NETINTERFACE_NOT_FOUND: WIN32_ERROR = 5047u32; +pub const ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE: WIN32_ERROR = 5064u32; +pub const ERROR_CLUSTER_NETWORK_ALREADY_ONLINE: WIN32_ERROR = 5063u32; +pub const ERROR_CLUSTER_NETWORK_EXISTS: WIN32_ERROR = 5044u32; +pub const ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS: WIN32_ERROR = 5067u32; +pub const ERROR_CLUSTER_NETWORK_NOT_FOUND: WIN32_ERROR = 5045u32; +pub const ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP: WIN32_ERROR = 5894u32; +pub const ERROR_CLUSTER_NETWORK_NOT_INTERNAL: WIN32_ERROR = 5060u32; +pub const ERROR_CLUSTER_NODE_ALREADY_DOWN: WIN32_ERROR = 5062u32; +pub const ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT: WIN32_ERROR = 5088u32; +pub const ERROR_CLUSTER_NODE_ALREADY_MEMBER: WIN32_ERROR = 5065u32; +pub const ERROR_CLUSTER_NODE_ALREADY_UP: WIN32_ERROR = 5061u32; +pub const ERROR_CLUSTER_NODE_DOWN: WIN32_ERROR = 5050u32; +pub const ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS: WIN32_ERROR = 5962u32; +pub const ERROR_CLUSTER_NODE_EXISTS: WIN32_ERROR = 5040u32; +pub const ERROR_CLUSTER_NODE_IN_GRACE_PERIOD: WIN32_ERROR = 5978u32; +pub const ERROR_CLUSTER_NODE_ISOLATED: WIN32_ERROR = 5984u32; +pub const ERROR_CLUSTER_NODE_NOT_FOUND: WIN32_ERROR = 5042u32; +pub const ERROR_CLUSTER_NODE_NOT_MEMBER: WIN32_ERROR = 5052u32; +pub const ERROR_CLUSTER_NODE_NOT_PAUSED: WIN32_ERROR = 5058u32; +pub const ERROR_CLUSTER_NODE_NOT_READY: WIN32_ERROR = 5072u32; +pub const ERROR_CLUSTER_NODE_PAUSED: WIN32_ERROR = 5070u32; +pub const ERROR_CLUSTER_NODE_QUARANTINED: WIN32_ERROR = 5985u32; +pub const ERROR_CLUSTER_NODE_SHUTTING_DOWN: WIN32_ERROR = 5073u32; +pub const ERROR_CLUSTER_NODE_UNREACHABLE: WIN32_ERROR = 5051u32; +pub const ERROR_CLUSTER_NODE_UP: WIN32_ERROR = 5056u32; +pub const ERROR_CLUSTER_NOT_INSTALLED: WIN32_ERROR = 5932u32; +pub const ERROR_CLUSTER_NOT_SHARED_VOLUME: WIN32_ERROR = 5945u32; +pub const ERROR_CLUSTER_NO_NET_ADAPTERS: WIN32_ERROR = 5906u32; +pub const ERROR_CLUSTER_NO_QUORUM: WIN32_ERROR = 5925u32; +pub const ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED: WIN32_ERROR = 5081u32; +pub const ERROR_CLUSTER_NO_SECURITY_CONTEXT: WIN32_ERROR = 5059u32; +pub const ERROR_CLUSTER_NULL_DATA: WIN32_ERROR = 5920u32; +pub const ERROR_CLUSTER_OBJECT_ALREADY_USED: WIN32_ERROR = 5936u32; +pub const ERROR_CLUSTER_OBJECT_IS_CLUSTER_SET_VM: WIN32_ERROR = 6250u32; +pub const ERROR_CLUSTER_OLD_VERSION: WIN32_ERROR = 5904u32; +pub const ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST: WIN32_ERROR = 5082u32; +pub const ERROR_CLUSTER_PARAMETER_MISMATCH: WIN32_ERROR = 5897u32; +pub const ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS: WIN32_ERROR = 5913u32; +pub const ERROR_CLUSTER_PARTIAL_READ: WIN32_ERROR = 5921u32; +pub const ERROR_CLUSTER_PARTIAL_SEND: WIN32_ERROR = 5914u32; +pub const ERROR_CLUSTER_PARTIAL_WRITE: WIN32_ERROR = 5922u32; +pub const ERROR_CLUSTER_POISONED: WIN32_ERROR = 5907u32; +pub const ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH: WIN32_ERROR = 5895u32; +pub const ERROR_CLUSTER_QUORUMLOG_NOT_FOUND: WIN32_ERROR = 5891u32; +pub const ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION: WIN32_ERROR = 5915u32; +pub const ERROR_CLUSTER_RESNAME_NOT_FOUND: WIN32_ERROR = 5080u32; +pub const ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE: WIN32_ERROR = 5933u32; +pub const ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR: WIN32_ERROR = 5943u32; +pub const ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES: WIN32_ERROR = 5969u32; +pub const ERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED: WIN32_ERROR = 5982u32; +pub const ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE: WIN32_ERROR = 5970u32; +pub const ERROR_CLUSTER_RESOURCE_IS_REPLICATED: WIN32_ERROR = 5983u32; +pub const ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE: WIN32_ERROR = 5972u32; +pub const ERROR_CLUSTER_RESOURCE_LOCKED_STATUS: WIN32_ERROR = 5960u32; +pub const ERROR_CLUSTER_RESOURCE_NOT_MONITORED: WIN32_ERROR = 5981u32; +pub const ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED: WIN32_ERROR = 5942u32; +pub const ERROR_CLUSTER_RESOURCE_TYPE_BUSY: WIN32_ERROR = 5909u32; +pub const ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND: WIN32_ERROR = 5078u32; +pub const ERROR_CLUSTER_RESOURCE_VETOED_CALL: WIN32_ERROR = 5955u32; +pub const ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES: WIN32_ERROR = 5953u32; +pub const ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION: WIN32_ERROR = 5957u32; +pub const ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE: WIN32_ERROR = 5958u32; +pub const ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED: WIN32_ERROR = 5079u32; +pub const ERROR_CLUSTER_RHS_FAILED_INITIALIZATION: WIN32_ERROR = 5931u32; +pub const ERROR_CLUSTER_SHARED_VOLUMES_IN_USE: WIN32_ERROR = 5947u32; +pub const ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED: WIN32_ERROR = 5961u32; +pub const ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED: WIN32_ERROR = 5967u32; +pub const ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED: WIN32_ERROR = 5966u32; +pub const ERROR_CLUSTER_SHUTTING_DOWN: WIN32_ERROR = 5022u32; +pub const ERROR_CLUSTER_SINGLETON_RESOURCE: WIN32_ERROR = 5940u32; +pub const ERROR_CLUSTER_SPACE_DEGRADED: WIN32_ERROR = 5987u32; +pub const ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED: WIN32_ERROR = 5077u32; +pub const ERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED: WIN32_ERROR = 5988u32; +pub const ERROR_CLUSTER_TOO_MANY_NODES: WIN32_ERROR = 5935u32; +pub const ERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED: WIN32_ERROR = 5974u32; +pub const ERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS: WIN32_ERROR = 5973u32; +pub const ERROR_CLUSTER_UPGRADE_INCOMPLETE: WIN32_ERROR = 5977u32; +pub const ERROR_CLUSTER_UPGRADE_IN_PROGRESS: WIN32_ERROR = 5976u32; +pub const ERROR_CLUSTER_UPGRADE_RESTART_REQUIRED: WIN32_ERROR = 5975u32; +pub const ERROR_CLUSTER_USE_SHARED_VOLUMES_API: WIN32_ERROR = 5948u32; +pub const ERROR_CLUSTER_WATCHDOG_TERMINATING: WIN32_ERROR = 5952u32; +pub const ERROR_CLUSTER_WRONG_OS_VERSION: WIN32_ERROR = 5899u32; +pub const ERROR_COLORSPACE_MISMATCH: WIN32_ERROR = 2021u32; +pub const ERROR_COMMITMENT_LIMIT: WIN32_ERROR = 1455u32; +pub const ERROR_COMMITMENT_MINIMUM: WIN32_ERROR = 635u32; +pub const ERROR_COMPRESSED_FILE_NOT_SUPPORTED: WIN32_ERROR = 335u32; +pub const ERROR_COMPRESSION_DISABLED: WIN32_ERROR = 769u32; +pub const ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION: WIN32_ERROR = 6850u32; +pub const ERROR_COMPRESSION_NOT_BENEFICIAL: WIN32_ERROR = 344u32; +pub const ERROR_COM_TASK_STOP_PENDING: WIN32_ERROR = 15501u32; +pub const ERROR_CONNECTED_OTHER_PASSWORD: WIN32_ERROR = 2108u32; +pub const ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT: WIN32_ERROR = 2109u32; +pub const ERROR_CONNECTION_ABORTED: WIN32_ERROR = 1236u32; +pub const ERROR_CONNECTION_ACTIVE: WIN32_ERROR = 1230u32; +pub const ERROR_CONNECTION_COUNT_LIMIT: WIN32_ERROR = 1238u32; +pub const ERROR_CONNECTION_INVALID: WIN32_ERROR = 1229u32; +pub const ERROR_CONNECTION_REFUSED: WIN32_ERROR = 1225u32; +pub const ERROR_CONNECTION_UNAVAIL: WIN32_ERROR = 1201u32; +pub const ERROR_CONTAINER_ASSIGNED: WIN32_ERROR = 1504u32; +pub const ERROR_CONTENT_BLOCKED: WIN32_ERROR = 1296u32; +pub const ERROR_CONTEXT_EXPIRED: WIN32_ERROR = 1931u32; +pub const ERROR_CONTINUE: WIN32_ERROR = 1246u32; +pub const ERROR_CONTROLLING_IEPORT: WIN32_ERROR = 4329u32; +pub const ERROR_CONTROL_C_EXIT: WIN32_ERROR = 572u32; +pub const ERROR_CONTROL_ID_NOT_FOUND: WIN32_ERROR = 1421u32; +pub const ERROR_CONVERT_TO_LARGE: WIN32_ERROR = 600u32; +pub const ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND: WIN32_ERROR = 3016u32; +pub const ERROR_CORE_RESOURCE: WIN32_ERROR = 5026u32; +pub const ERROR_CORRUPT_LOG_CLEARED: WIN32_ERROR = 798u32; +pub const ERROR_CORRUPT_LOG_CORRUPTED: WIN32_ERROR = 795u32; +pub const ERROR_CORRUPT_LOG_DELETED_FULL: WIN32_ERROR = 797u32; +pub const ERROR_CORRUPT_LOG_OVERFULL: WIN32_ERROR = 794u32; +pub const ERROR_CORRUPT_LOG_UNAVAILABLE: WIN32_ERROR = 796u32; +pub const ERROR_CORRUPT_SYSTEM_FILE: WIN32_ERROR = 634u32; +pub const ERROR_COULD_NOT_INTERPRET: WIN32_ERROR = 552u32; +pub const ERROR_COULD_NOT_RESIZE_LOG: WIN32_ERROR = 6629u32; +pub const ERROR_COUNTER_TIMEOUT: WIN32_ERROR = 1121u32; +pub const ERROR_CPU_SET_INVALID: WIN32_ERROR = 813u32; +pub const ERROR_CRASH_DUMP: WIN32_ERROR = 753u32; +pub const ERROR_CRC: WIN32_ERROR = 23u32; +pub const ERROR_CREATE_FAILED: WIN32_ERROR = 1631u32; +pub const ERROR_CRED_REQUIRES_CONFIRMATION: ::windows_sys::core::HRESULT = -2146865127i32; +pub const ERROR_CRM_PROTOCOL_ALREADY_EXISTS: WIN32_ERROR = 6710u32; +pub const ERROR_CRM_PROTOCOL_NOT_FOUND: WIN32_ERROR = 6712u32; +pub const ERROR_CROSS_PARTITION_VIOLATION: WIN32_ERROR = 1661u32; +pub const ERROR_CSCSHARE_OFFLINE: WIN32_ERROR = 1262u32; +pub const ERROR_CSV_VOLUME_NOT_LOCAL: WIN32_ERROR = 5951u32; +pub const ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE: WIN32_ERROR = 6019u32; +pub const ERROR_CS_ENCRYPTION_FILE_NOT_CSE: WIN32_ERROR = 6021u32; +pub const ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE: WIN32_ERROR = 6017u32; +pub const ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE: WIN32_ERROR = 6020u32; +pub const ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER: WIN32_ERROR = 6018u32; +pub const ERROR_CTLOG_INCONSISTENT_TRACKING_FILE: WIN32_ERROR = 3225026596u32; +pub const ERROR_CTLOG_INVALID_TRACKING_STATE: WIN32_ERROR = 3225026595u32; +pub const ERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE: WIN32_ERROR = 3225026593u32; +pub const ERROR_CTLOG_TRACKING_NOT_INITIALIZED: WIN32_ERROR = 3225026592u32; +pub const ERROR_CTLOG_VHD_CHANGED_OFFLINE: WIN32_ERROR = 3225026594u32; +pub const ERROR_CTX_ACCOUNT_RESTRICTION: WIN32_ERROR = 7064u32; +pub const ERROR_CTX_BAD_VIDEO_MODE: WIN32_ERROR = 7025u32; +pub const ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY: WIN32_ERROR = 7005u32; +pub const ERROR_CTX_CDM_CONNECT: WIN32_ERROR = 7066u32; +pub const ERROR_CTX_CDM_DISCONNECT: WIN32_ERROR = 7067u32; +pub const ERROR_CTX_CLIENT_LICENSE_IN_USE: WIN32_ERROR = 7052u32; +pub const ERROR_CTX_CLIENT_LICENSE_NOT_SET: WIN32_ERROR = 7053u32; +pub const ERROR_CTX_CLIENT_QUERY_TIMEOUT: WIN32_ERROR = 7040u32; +pub const ERROR_CTX_CLOSE_PENDING: WIN32_ERROR = 7007u32; +pub const ERROR_CTX_CONSOLE_CONNECT: WIN32_ERROR = 7042u32; +pub const ERROR_CTX_CONSOLE_DISCONNECT: WIN32_ERROR = 7041u32; +pub const ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED: WIN32_ERROR = 7061u32; +pub const ERROR_CTX_GRAPHICS_INVALID: WIN32_ERROR = 7035u32; +pub const ERROR_CTX_INVALID_MODEMNAME: WIN32_ERROR = 7010u32; +pub const ERROR_CTX_INVALID_PD: WIN32_ERROR = 7002u32; +pub const ERROR_CTX_INVALID_WD: WIN32_ERROR = 7049u32; +pub const ERROR_CTX_LICENSE_CLIENT_INVALID: WIN32_ERROR = 7055u32; +pub const ERROR_CTX_LICENSE_EXPIRED: WIN32_ERROR = 7056u32; +pub const ERROR_CTX_LICENSE_NOT_AVAILABLE: WIN32_ERROR = 7054u32; +pub const ERROR_CTX_LOGON_DISABLED: WIN32_ERROR = 7037u32; +pub const ERROR_CTX_MODEM_INF_NOT_FOUND: WIN32_ERROR = 7009u32; +pub const ERROR_CTX_MODEM_RESPONSE_BUSY: WIN32_ERROR = 7015u32; +pub const ERROR_CTX_MODEM_RESPONSE_ERROR: WIN32_ERROR = 7011u32; +pub const ERROR_CTX_MODEM_RESPONSE_NO_CARRIER: WIN32_ERROR = 7013u32; +pub const ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE: WIN32_ERROR = 7014u32; +pub const ERROR_CTX_MODEM_RESPONSE_TIMEOUT: WIN32_ERROR = 7012u32; +pub const ERROR_CTX_MODEM_RESPONSE_VOICE: WIN32_ERROR = 7016u32; +pub const ERROR_CTX_NOT_CONSOLE: WIN32_ERROR = 7038u32; +pub const ERROR_CTX_NO_FORCE_LOGOFF: WIN32_ERROR = 7063u32; +pub const ERROR_CTX_NO_OUTBUF: WIN32_ERROR = 7008u32; +pub const ERROR_CTX_PD_NOT_FOUND: WIN32_ERROR = 7003u32; +pub const ERROR_CTX_SECURITY_LAYER_ERROR: WIN32_ERROR = 7068u32; +pub const ERROR_CTX_SERVICE_NAME_COLLISION: WIN32_ERROR = 7006u32; +pub const ERROR_CTX_SESSION_IN_USE: WIN32_ERROR = 7062u32; +pub const ERROR_CTX_SHADOW_DENIED: WIN32_ERROR = 7044u32; +pub const ERROR_CTX_SHADOW_DISABLED: WIN32_ERROR = 7051u32; +pub const ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE: WIN32_ERROR = 7058u32; +pub const ERROR_CTX_SHADOW_INVALID: WIN32_ERROR = 7050u32; +pub const ERROR_CTX_SHADOW_NOT_RUNNING: WIN32_ERROR = 7057u32; +pub const ERROR_CTX_TD_ERROR: WIN32_ERROR = 7017u32; +pub const ERROR_CTX_WD_NOT_FOUND: WIN32_ERROR = 7004u32; +pub const ERROR_CTX_WINSTATIONS_DISABLED: WIN32_ERROR = 7060u32; +pub const ERROR_CTX_WINSTATION_ACCESS_DENIED: WIN32_ERROR = 7045u32; +pub const ERROR_CTX_WINSTATION_ALREADY_EXISTS: WIN32_ERROR = 7023u32; +pub const ERROR_CTX_WINSTATION_BUSY: WIN32_ERROR = 7024u32; +pub const ERROR_CTX_WINSTATION_NAME_INVALID: WIN32_ERROR = 7001u32; +pub const ERROR_CTX_WINSTATION_NOT_FOUND: WIN32_ERROR = 7022u32; +pub const ERROR_CURRENT_DIRECTORY: WIN32_ERROR = 16u32; +pub const ERROR_CURRENT_DOMAIN_NOT_ALLOWED: WIN32_ERROR = 1399u32; +pub const ERROR_CURRENT_TRANSACTION_NOT_VALID: WIN32_ERROR = 6714u32; +pub const ERROR_DATABASE_BACKUP_CORRUPT: WIN32_ERROR = 5087u32; +pub const ERROR_DATABASE_DOES_NOT_EXIST: WIN32_ERROR = 1065u32; +pub const ERROR_DATABASE_FAILURE: WIN32_ERROR = 4313u32; +pub const ERROR_DATABASE_FULL: WIN32_ERROR = 4314u32; +pub const ERROR_DATATYPE_MISMATCH: WIN32_ERROR = 1629u32; +pub const ERROR_DATA_CHECKSUM_ERROR: WIN32_ERROR = 323u32; +pub const ERROR_DATA_LOST_REPAIR: WIN32_ERROR = 6843u32; +pub const ERROR_DATA_NOT_ACCEPTED: WIN32_ERROR = 592u32; +pub const ERROR_DAX_MAPPING_EXISTS: WIN32_ERROR = 361u32; +pub const ERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN: ::windows_sys::core::HRESULT = -2135949310i32; +pub const ERROR_DBG_COMMAND_EXCEPTION: WIN32_ERROR = 697u32; +pub const ERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN: ::windows_sys::core::HRESULT = -2135949309i32; +pub const ERROR_DBG_CONTINUE: WIN32_ERROR = 767u32; +pub const ERROR_DBG_CONTROL_BREAK: WIN32_ERROR = 696u32; +pub const ERROR_DBG_CONTROL_C: WIN32_ERROR = 693u32; +pub const ERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN: ::windows_sys::core::HRESULT = -2135949311i32; +pub const ERROR_DBG_EXCEPTION_HANDLED: WIN32_ERROR = 766u32; +pub const ERROR_DBG_EXCEPTION_NOT_HANDLED: WIN32_ERROR = 688u32; +pub const ERROR_DBG_PRINTEXCEPTION_C: WIN32_ERROR = 694u32; +pub const ERROR_DBG_REPLY_LATER: WIN32_ERROR = 689u32; +pub const ERROR_DBG_RIPEXCEPTION: WIN32_ERROR = 695u32; +pub const ERROR_DBG_START_SERVER_FAILURE_LOCKDOWN: ::windows_sys::core::HRESULT = -2135949308i32; +pub const ERROR_DBG_TERMINATE_PROCESS: WIN32_ERROR = 692u32; +pub const ERROR_DBG_TERMINATE_THREAD: WIN32_ERROR = 691u32; +pub const ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE: WIN32_ERROR = 690u32; +pub const ERROR_DC_NOT_FOUND: WIN32_ERROR = 1425u32; +pub const ERROR_DDE_FAIL: WIN32_ERROR = 1156u32; +pub const ERROR_DDM_NOT_RUNNING: u32 = 903u32; +pub const ERROR_DEBUGGER_INACTIVE: WIN32_ERROR = 1284u32; +pub const ERROR_DEBUG_ATTACH_FAILED: WIN32_ERROR = 590u32; +pub const ERROR_DECRYPTION_FAILED: WIN32_ERROR = 6001u32; +pub const ERROR_DELAY_LOAD_FAILED: WIN32_ERROR = 1285u32; +pub const ERROR_DELETE_PENDING: WIN32_ERROR = 303u32; +pub const ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED: WIN32_ERROR = 15621u32; +pub const ERROR_DELETING_ICM_XFORM: WIN32_ERROR = 2019u32; +pub const ERROR_DEPENDENCY_ALREADY_EXISTS: WIN32_ERROR = 5003u32; +pub const ERROR_DEPENDENCY_NOT_ALLOWED: WIN32_ERROR = 5069u32; +pub const ERROR_DEPENDENCY_NOT_FOUND: WIN32_ERROR = 5002u32; +pub const ERROR_DEPENDENCY_TREE_TOO_COMPLEX: WIN32_ERROR = 5929u32; +pub const ERROR_DEPENDENT_RESOURCE_EXISTS: WIN32_ERROR = 5001u32; +pub const ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT: WIN32_ERROR = 5924u32; +pub const ERROR_DEPENDENT_SERVICES_RUNNING: WIN32_ERROR = 1051u32; +pub const ERROR_DEPLOYMENT_BLOCKED_BY_POLICY: WIN32_ERROR = 15617u32; +pub const ERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY: WIN32_ERROR = 15651u32; +pub const ERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF: WIN32_ERROR = 15641u32; +pub const ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE: WIN32_ERROR = 15650u32; +pub const ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE: WIN32_ERROR = 15649u32; +pub const ERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY: WIN32_ERROR = 15652u32; +pub const ERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED: WIN32_ERROR = 15645u32; +pub const ERROR_DESTINATION_ELEMENT_FULL: WIN32_ERROR = 1161u32; +pub const ERROR_DESTROY_OBJECT_OF_OTHER_THREAD: WIN32_ERROR = 1435u32; +pub const ERROR_DEVICE_ALREADY_ATTACHED: WIN32_ERROR = 548u32; +pub const ERROR_DEVICE_ALREADY_REMEMBERED: WIN32_ERROR = 1202u32; +pub const ERROR_DEVICE_DOOR_OPEN: WIN32_ERROR = 1166u32; +pub const ERROR_DEVICE_ENUMERATION_ERROR: WIN32_ERROR = 648u32; +pub const ERROR_DEVICE_FEATURE_NOT_SUPPORTED: WIN32_ERROR = 316u32; +pub const ERROR_DEVICE_HARDWARE_ERROR: WIN32_ERROR = 483u32; +pub const ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL: WIN32_ERROR = 355u32; +pub const ERROR_DEVICE_INSTALLER_NOT_READY: WIN32_ERROR = 3758096966u32; +pub const ERROR_DEVICE_INSTALL_BLOCKED: WIN32_ERROR = 3758096968u32; +pub const ERROR_DEVICE_INTERFACE_ACTIVE: WIN32_ERROR = 3758096923u32; +pub const ERROR_DEVICE_INTERFACE_REMOVED: WIN32_ERROR = 3758096924u32; +pub const ERROR_DEVICE_IN_MAINTENANCE: WIN32_ERROR = 359u32; +pub const ERROR_DEVICE_IN_USE: WIN32_ERROR = 2404u32; +pub const ERROR_DEVICE_NOT_AVAILABLE: WIN32_ERROR = 4319u32; +pub const ERROR_DEVICE_NOT_CONNECTED: WIN32_ERROR = 1167u32; +pub const ERROR_DEVICE_NOT_PARTITIONED: WIN32_ERROR = 1107u32; +pub const ERROR_DEVICE_NO_RESOURCES: WIN32_ERROR = 322u32; +pub const ERROR_DEVICE_REINITIALIZATION_NEEDED: WIN32_ERROR = 1164u32; +pub const ERROR_DEVICE_REMOVED: WIN32_ERROR = 1617u32; +pub const ERROR_DEVICE_REQUIRES_CLEANING: WIN32_ERROR = 1165u32; +pub const ERROR_DEVICE_RESET_REQUIRED: WIN32_ERROR = 507u32; +pub const ERROR_DEVICE_SUPPORT_IN_PROGRESS: WIN32_ERROR = 171u32; +pub const ERROR_DEVICE_UNREACHABLE: WIN32_ERROR = 321u32; +pub const ERROR_DEVINFO_DATA_LOCKED: WIN32_ERROR = 3758096915u32; +pub const ERROR_DEVINFO_LIST_LOCKED: WIN32_ERROR = 3758096914u32; +pub const ERROR_DEVINFO_NOT_REGISTERED: WIN32_ERROR = 3758096904u32; +pub const ERROR_DEVINSTALL_QUEUE_NONNATIVE: WIN32_ERROR = 3758096944u32; +pub const ERROR_DEVINST_ALREADY_EXISTS: WIN32_ERROR = 3758096903u32; +pub const ERROR_DEV_NOT_EXIST: WIN32_ERROR = 55u32; +pub const ERROR_DEV_SIDELOAD_LIMIT_EXCEEDED: WIN32_ERROR = 15633u32; +pub const ERROR_DHCP_ADDRESS_CONFLICT: WIN32_ERROR = 4100u32; +pub const ERROR_DIALIN_HOURS_RESTRICTION: u32 = 940u32; +pub const ERROR_DIALOUT_HOURS_RESTRICTION: u32 = 944u32; +pub const ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST: WIN32_ERROR = 15144u32; +pub const ERROR_DIFFERENT_SERVICE_ACCOUNT: WIN32_ERROR = 1079u32; +pub const ERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED: WIN32_ERROR = 15654u32; +pub const ERROR_DIF_BINDING_API_NOT_FOUND: WIN32_ERROR = 3199u32; +pub const ERROR_DIF_IOCALLBACK_NOT_REPLACED: WIN32_ERROR = 3190u32; +pub const ERROR_DIF_LIVEDUMP_LIMIT_EXCEEDED: WIN32_ERROR = 3191u32; +pub const ERROR_DIF_VOLATILE_DRIVER_HOTPATCHED: WIN32_ERROR = 3193u32; +pub const ERROR_DIF_VOLATILE_DRIVER_IS_NOT_RUNNING: WIN32_ERROR = 3195u32; +pub const ERROR_DIF_VOLATILE_INVALID_INFO: WIN32_ERROR = 3194u32; +pub const ERROR_DIF_VOLATILE_NOT_ALLOWED: WIN32_ERROR = 3198u32; +pub const ERROR_DIF_VOLATILE_PLUGIN_CHANGE_NOT_ALLOWED: WIN32_ERROR = 3197u32; +pub const ERROR_DIF_VOLATILE_PLUGIN_IS_NOT_RUNNING: WIN32_ERROR = 3196u32; +pub const ERROR_DIF_VOLATILE_SECTION_NOT_LOCKED: WIN32_ERROR = 3192u32; +pub const ERROR_DIRECTORY: WIN32_ERROR = 267u32; +pub const ERROR_DIRECTORY_NOT_RM: WIN32_ERROR = 6803u32; +pub const ERROR_DIRECTORY_NOT_SUPPORTED: WIN32_ERROR = 336u32; +pub const ERROR_DIRECT_ACCESS_HANDLE: WIN32_ERROR = 130u32; +pub const ERROR_DIR_EFS_DISALLOWED: WIN32_ERROR = 6010u32; +pub const ERROR_DIR_NOT_EMPTY: WIN32_ERROR = 145u32; +pub const ERROR_DIR_NOT_ROOT: WIN32_ERROR = 144u32; +pub const ERROR_DISCARDED: WIN32_ERROR = 157u32; +pub const ERROR_DISK_CHANGE: WIN32_ERROR = 107u32; +pub const ERROR_DISK_CORRUPT: WIN32_ERROR = 1393u32; +pub const ERROR_DISK_FULL: WIN32_ERROR = 112u32; +pub const ERROR_DISK_NOT_CSV_CAPABLE: WIN32_ERROR = 5964u32; +pub const ERROR_DISK_OPERATION_FAILED: WIN32_ERROR = 1127u32; +pub const ERROR_DISK_QUOTA_EXCEEDED: WIN32_ERROR = 1295u32; +pub const ERROR_DISK_RECALIBRATE_FAILED: WIN32_ERROR = 1126u32; +pub const ERROR_DISK_REPAIR_DISABLED: WIN32_ERROR = 780u32; +pub const ERROR_DISK_REPAIR_REDIRECTED: WIN32_ERROR = 792u32; +pub const ERROR_DISK_REPAIR_UNSUCCESSFUL: WIN32_ERROR = 793u32; +pub const ERROR_DISK_RESET_FAILED: WIN32_ERROR = 1128u32; +pub const ERROR_DISK_RESOURCES_EXHAUSTED: WIN32_ERROR = 314u32; +pub const ERROR_DISK_TOO_FRAGMENTED: WIN32_ERROR = 302u32; +pub const ERROR_DI_BAD_PATH: WIN32_ERROR = 3758096916u32; +pub const ERROR_DI_DONT_INSTALL: WIN32_ERROR = 3758096939u32; +pub const ERROR_DI_DO_DEFAULT: WIN32_ERROR = 3758096910u32; +pub const ERROR_DI_FUNCTION_OBSOLETE: WIN32_ERROR = 3758096958u32; +pub const ERROR_DI_NOFILECOPY: WIN32_ERROR = 3758096911u32; +pub const ERROR_DI_POSTPROCESSING_REQUIRED: WIN32_ERROR = 3758096934u32; +pub const ERROR_DLL_INIT_FAILED: WIN32_ERROR = 1114u32; +pub const ERROR_DLL_INIT_FAILED_LOGOFF: WIN32_ERROR = 624u32; +pub const ERROR_DLL_MIGHT_BE_INCOMPATIBLE: WIN32_ERROR = 687u32; +pub const ERROR_DLL_MIGHT_BE_INSECURE: WIN32_ERROR = 686u32; +pub const ERROR_DLL_NOT_FOUND: WIN32_ERROR = 1157u32; +pub const ERROR_DLP_POLICY_DENIES_OPERATION: WIN32_ERROR = 446u32; +pub const ERROR_DLP_POLICY_SILENTLY_FAIL: WIN32_ERROR = 449u32; +pub const ERROR_DLP_POLICY_WARNS_AGAINST_OPERATION: WIN32_ERROR = 445u32; +pub const ERROR_DM_OPERATION_LIMIT_EXCEEDED: ::windows_sys::core::HRESULT = -1070135808i32; +pub const ERROR_DOMAIN_CONTROLLER_EXISTS: WIN32_ERROR = 1250u32; +pub const ERROR_DOMAIN_CONTROLLER_NOT_FOUND: WIN32_ERROR = 1908u32; +pub const ERROR_DOMAIN_CTRLR_CONFIG_ERROR: WIN32_ERROR = 581u32; +pub const ERROR_DOMAIN_EXISTS: WIN32_ERROR = 1356u32; +pub const ERROR_DOMAIN_LIMIT_EXCEEDED: WIN32_ERROR = 1357u32; +pub const ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION: WIN32_ERROR = 8644u32; +pub const ERROR_DOMAIN_TRUST_INCONSISTENT: WIN32_ERROR = 1810u32; +pub const ERROR_DOWNGRADE_DETECTED: WIN32_ERROR = 1265u32; +pub const ERROR_DPL_NOT_SUPPORTED_FOR_USER: WIN32_ERROR = 423u32; +pub const ERROR_DRIVERS_LEAKING_LOCKED_PAGES: WIN32_ERROR = 729u32; +pub const ERROR_DRIVER_BLOCKED: WIN32_ERROR = 1275u32; +pub const ERROR_DRIVER_CANCEL_TIMEOUT: WIN32_ERROR = 594u32; +pub const ERROR_DRIVER_DATABASE_ERROR: WIN32_ERROR = 652u32; +pub const ERROR_DRIVER_FAILED_PRIOR_UNLOAD: WIN32_ERROR = 654u32; +pub const ERROR_DRIVER_FAILED_SLEEP: WIN32_ERROR = 633u32; +pub const ERROR_DRIVER_INSTALL_BLOCKED: WIN32_ERROR = 3758096969u32; +pub const ERROR_DRIVER_NONNATIVE: WIN32_ERROR = 3758096948u32; +pub const ERROR_DRIVER_PROCESS_TERMINATED: WIN32_ERROR = 1291u32; +pub const ERROR_DRIVER_STORE_ADD_FAILED: WIN32_ERROR = 3758096967u32; +pub const ERROR_DRIVER_STORE_DELETE_FAILED: WIN32_ERROR = 3758096972u32; +pub const ERROR_DRIVE_LOCKED: WIN32_ERROR = 108u32; +pub const ERROR_DRIVE_MEDIA_MISMATCH: WIN32_ERROR = 4303u32; +pub const ERROR_DS_ADD_REPLICA_INHIBITED: WIN32_ERROR = 8302u32; +pub const ERROR_DS_ADMIN_LIMIT_EXCEEDED: WIN32_ERROR = 8228u32; +pub const ERROR_DS_AFFECTS_MULTIPLE_DSAS: WIN32_ERROR = 8249u32; +pub const ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER: WIN32_ERROR = 8578u32; +pub const ERROR_DS_ALIASED_OBJ_MISSING: WIN32_ERROR = 8334u32; +pub const ERROR_DS_ALIAS_DEREF_PROBLEM: WIN32_ERROR = 8244u32; +pub const ERROR_DS_ALIAS_POINTS_TO_ALIAS: WIN32_ERROR = 8336u32; +pub const ERROR_DS_ALIAS_PROBLEM: WIN32_ERROR = 8241u32; +pub const ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS: WIN32_ERROR = 8205u32; +pub const ERROR_DS_ATTRIBUTE_OWNED_BY_SAM: WIN32_ERROR = 8346u32; +pub const ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED: WIN32_ERROR = 8204u32; +pub const ERROR_DS_ATT_ALREADY_EXISTS: WIN32_ERROR = 8318u32; +pub const ERROR_DS_ATT_IS_NOT_ON_OBJ: WIN32_ERROR = 8310u32; +pub const ERROR_DS_ATT_NOT_DEF_FOR_CLASS: WIN32_ERROR = 8317u32; +pub const ERROR_DS_ATT_NOT_DEF_IN_SCHEMA: WIN32_ERROR = 8303u32; +pub const ERROR_DS_ATT_SCHEMA_REQ_ID: WIN32_ERROR = 8399u32; +pub const ERROR_DS_ATT_SCHEMA_REQ_SYNTAX: WIN32_ERROR = 8416u32; +pub const ERROR_DS_ATT_VAL_ALREADY_EXISTS: WIN32_ERROR = 8323u32; +pub const ERROR_DS_AUDIT_FAILURE: WIN32_ERROR = 8625u32; +pub const ERROR_DS_AUTHORIZATION_FAILED: WIN32_ERROR = 8599u32; +pub const ERROR_DS_AUTH_METHOD_NOT_SUPPORTED: WIN32_ERROR = 8231u32; +pub const ERROR_DS_AUTH_UNKNOWN: WIN32_ERROR = 8234u32; +pub const ERROR_DS_AUX_CLS_TEST_FAIL: WIN32_ERROR = 8389u32; +pub const ERROR_DS_BACKLINK_WITHOUT_LINK: WIN32_ERROR = 8482u32; +pub const ERROR_DS_BAD_ATT_SCHEMA_SYNTAX: WIN32_ERROR = 8400u32; +pub const ERROR_DS_BAD_HIERARCHY_FILE: WIN32_ERROR = 8425u32; +pub const ERROR_DS_BAD_INSTANCE_TYPE: WIN32_ERROR = 8313u32; +pub const ERROR_DS_BAD_NAME_SYNTAX: WIN32_ERROR = 8335u32; +pub const ERROR_DS_BAD_RDN_ATT_ID_SYNTAX: WIN32_ERROR = 8392u32; +pub const ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED: WIN32_ERROR = 8426u32; +pub const ERROR_DS_BUSY: WIN32_ERROR = 8206u32; +pub const ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD: WIN32_ERROR = 8585u32; +pub const ERROR_DS_CANT_ADD_ATT_VALUES: WIN32_ERROR = 8320u32; +pub const ERROR_DS_CANT_ADD_SYSTEM_ONLY: WIN32_ERROR = 8358u32; +pub const ERROR_DS_CANT_ADD_TO_GC: WIN32_ERROR = 8550u32; +pub const ERROR_DS_CANT_CACHE_ATT: WIN32_ERROR = 8401u32; +pub const ERROR_DS_CANT_CACHE_CLASS: WIN32_ERROR = 8402u32; +pub const ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC: WIN32_ERROR = 8553u32; +pub const ERROR_DS_CANT_CREATE_UNDER_SCHEMA: WIN32_ERROR = 8510u32; +pub const ERROR_DS_CANT_DELETE: WIN32_ERROR = 8398u32; +pub const ERROR_DS_CANT_DELETE_DSA_OBJ: WIN32_ERROR = 8340u32; +pub const ERROR_DS_CANT_DEL_MASTER_CROSSREF: WIN32_ERROR = 8375u32; +pub const ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC: WIN32_ERROR = 8604u32; +pub const ERROR_DS_CANT_DEREF_ALIAS: WIN32_ERROR = 8337u32; +pub const ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN: WIN32_ERROR = 8603u32; +pub const ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF: WIN32_ERROR = 8589u32; +pub const ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN: WIN32_ERROR = 8537u32; +pub const ERROR_DS_CANT_FIND_DSA_OBJ: WIN32_ERROR = 8419u32; +pub const ERROR_DS_CANT_FIND_EXPECTED_NC: WIN32_ERROR = 8420u32; +pub const ERROR_DS_CANT_FIND_NC_IN_CACHE: WIN32_ERROR = 8421u32; +pub const ERROR_DS_CANT_MIX_MASTER_AND_REPS: WIN32_ERROR = 8331u32; +pub const ERROR_DS_CANT_MOD_OBJ_CLASS: WIN32_ERROR = 8215u32; +pub const ERROR_DS_CANT_MOD_PRIMARYGROUPID: WIN32_ERROR = 8506u32; +pub const ERROR_DS_CANT_MOD_SYSTEM_ONLY: WIN32_ERROR = 8369u32; +pub const ERROR_DS_CANT_MOVE_ACCOUNT_GROUP: WIN32_ERROR = 8498u32; +pub const ERROR_DS_CANT_MOVE_APP_BASIC_GROUP: WIN32_ERROR = 8608u32; +pub const ERROR_DS_CANT_MOVE_APP_QUERY_GROUP: WIN32_ERROR = 8609u32; +pub const ERROR_DS_CANT_MOVE_DELETED_OBJECT: WIN32_ERROR = 8489u32; +pub const ERROR_DS_CANT_MOVE_RESOURCE_GROUP: WIN32_ERROR = 8499u32; +pub const ERROR_DS_CANT_ON_NON_LEAF: WIN32_ERROR = 8213u32; +pub const ERROR_DS_CANT_ON_RDN: WIN32_ERROR = 8214u32; +pub const ERROR_DS_CANT_REMOVE_ATT_CACHE: WIN32_ERROR = 8403u32; +pub const ERROR_DS_CANT_REMOVE_CLASS_CACHE: WIN32_ERROR = 8404u32; +pub const ERROR_DS_CANT_REM_MISSING_ATT: WIN32_ERROR = 8324u32; +pub const ERROR_DS_CANT_REM_MISSING_ATT_VAL: WIN32_ERROR = 8325u32; +pub const ERROR_DS_CANT_REPLACE_HIDDEN_REC: WIN32_ERROR = 8424u32; +pub const ERROR_DS_CANT_RETRIEVE_ATTS: WIN32_ERROR = 8481u32; +pub const ERROR_DS_CANT_RETRIEVE_CHILD: WIN32_ERROR = 8422u32; +pub const ERROR_DS_CANT_RETRIEVE_DN: WIN32_ERROR = 8405u32; +pub const ERROR_DS_CANT_RETRIEVE_INSTANCE: WIN32_ERROR = 8407u32; +pub const ERROR_DS_CANT_RETRIEVE_SD: WIN32_ERROR = 8526u32; +pub const ERROR_DS_CANT_START: WIN32_ERROR = 8531u32; +pub const ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ: WIN32_ERROR = 8560u32; +pub const ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS: WIN32_ERROR = 8493u32; +pub const ERROR_DS_CHILDREN_EXIST: WIN32_ERROR = 8332u32; +pub const ERROR_DS_CLASS_MUST_BE_CONCRETE: WIN32_ERROR = 8359u32; +pub const ERROR_DS_CLASS_NOT_DSA: WIN32_ERROR = 8343u32; +pub const ERROR_DS_CLIENT_LOOP: WIN32_ERROR = 8259u32; +pub const ERROR_DS_CODE_INCONSISTENCY: WIN32_ERROR = 8408u32; +pub const ERROR_DS_COMPARE_FALSE: WIN32_ERROR = 8229u32; +pub const ERROR_DS_COMPARE_TRUE: WIN32_ERROR = 8230u32; +pub const ERROR_DS_CONFIDENTIALITY_REQUIRED: WIN32_ERROR = 8237u32; +pub const ERROR_DS_CONFIG_PARAM_MISSING: WIN32_ERROR = 8427u32; +pub const ERROR_DS_CONSTRAINT_VIOLATION: WIN32_ERROR = 8239u32; +pub const ERROR_DS_CONSTRUCTED_ATT_MOD: WIN32_ERROR = 8475u32; +pub const ERROR_DS_CONTROL_NOT_FOUND: WIN32_ERROR = 8258u32; +pub const ERROR_DS_COULDNT_CONTACT_FSMO: WIN32_ERROR = 8367u32; +pub const ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE: WIN32_ERROR = 8503u32; +pub const ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE: WIN32_ERROR = 8502u32; +pub const ERROR_DS_COULDNT_UPDATE_SPNS: WIN32_ERROR = 8525u32; +pub const ERROR_DS_COUNTING_AB_INDICES_FAILED: WIN32_ERROR = 8428u32; +pub const ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD: WIN32_ERROR = 8491u32; +pub const ERROR_DS_CROSS_DOM_MOVE_ERROR: WIN32_ERROR = 8216u32; +pub const ERROR_DS_CROSS_NC_DN_RENAME: WIN32_ERROR = 8368u32; +pub const ERROR_DS_CROSS_REF_BUSY: WIN32_ERROR = 8602u32; +pub const ERROR_DS_CROSS_REF_EXISTS: WIN32_ERROR = 8374u32; +pub const ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE: WIN32_ERROR = 8495u32; +pub const ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2: WIN32_ERROR = 8586u32; +pub const ERROR_DS_DATABASE_ERROR: WIN32_ERROR = 8409u32; +pub const ERROR_DS_DECODING_ERROR: WIN32_ERROR = 8253u32; +pub const ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED: WIN32_ERROR = 8536u32; +pub const ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST: WIN32_ERROR = 8535u32; +pub const ERROR_DS_DIFFERENT_REPL_EPOCHS: WIN32_ERROR = 8593u32; +pub const ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER: WIN32_ERROR = 8615u32; +pub const ERROR_DS_DISALLOWED_NC_REDIRECT: WIN32_ERROR = 8640u32; +pub const ERROR_DS_DNS_LOOKUP_FAILURE: WIN32_ERROR = 8524u32; +pub const ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST: WIN32_ERROR = 8634u32; +pub const ERROR_DS_DOMAIN_RENAME_IN_PROGRESS: WIN32_ERROR = 8612u32; +pub const ERROR_DS_DOMAIN_VERSION_TOO_HIGH: WIN32_ERROR = 8564u32; +pub const ERROR_DS_DOMAIN_VERSION_TOO_LOW: WIN32_ERROR = 8566u32; +pub const ERROR_DS_DRA_ABANDON_SYNC: WIN32_ERROR = 8462u32; +pub const ERROR_DS_DRA_ACCESS_DENIED: WIN32_ERROR = 8453u32; +pub const ERROR_DS_DRA_BAD_DN: WIN32_ERROR = 8439u32; +pub const ERROR_DS_DRA_BAD_INSTANCE_TYPE: WIN32_ERROR = 8445u32; +pub const ERROR_DS_DRA_BAD_NC: WIN32_ERROR = 8440u32; +pub const ERROR_DS_DRA_BUSY: WIN32_ERROR = 8438u32; +pub const ERROR_DS_DRA_CONNECTION_FAILED: WIN32_ERROR = 8444u32; +pub const ERROR_DS_DRA_CORRUPT_UTD_VECTOR: WIN32_ERROR = 8629u32; +pub const ERROR_DS_DRA_DB_ERROR: WIN32_ERROR = 8451u32; +pub const ERROR_DS_DRA_DN_EXISTS: WIN32_ERROR = 8441u32; +pub const ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT: WIN32_ERROR = 8544u32; +pub const ERROR_DS_DRA_EXTN_CONNECTION_FAILED: WIN32_ERROR = 8466u32; +pub const ERROR_DS_DRA_GENERIC: WIN32_ERROR = 8436u32; +pub const ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET: WIN32_ERROR = 8464u32; +pub const ERROR_DS_DRA_INCONSISTENT_DIT: WIN32_ERROR = 8443u32; +pub const ERROR_DS_DRA_INTERNAL_ERROR: WIN32_ERROR = 8442u32; +pub const ERROR_DS_DRA_INVALID_PARAMETER: WIN32_ERROR = 8437u32; +pub const ERROR_DS_DRA_MAIL_PROBLEM: WIN32_ERROR = 8447u32; +pub const ERROR_DS_DRA_MISSING_KRBTGT_SECRET: WIN32_ERROR = 8633u32; +pub const ERROR_DS_DRA_MISSING_PARENT: WIN32_ERROR = 8460u32; +pub const ERROR_DS_DRA_NAME_COLLISION: WIN32_ERROR = 8458u32; +pub const ERROR_DS_DRA_NOT_SUPPORTED: WIN32_ERROR = 8454u32; +pub const ERROR_DS_DRA_NO_REPLICA: WIN32_ERROR = 8452u32; +pub const ERROR_DS_DRA_OBJ_IS_REP_SOURCE: WIN32_ERROR = 8450u32; +pub const ERROR_DS_DRA_OBJ_NC_MISMATCH: WIN32_ERROR = 8545u32; +pub const ERROR_DS_DRA_OUT_OF_MEM: WIN32_ERROR = 8446u32; +pub const ERROR_DS_DRA_OUT_SCHEDULE_WINDOW: WIN32_ERROR = 8617u32; +pub const ERROR_DS_DRA_PREEMPTED: WIN32_ERROR = 8461u32; +pub const ERROR_DS_DRA_RECYCLED_TARGET: WIN32_ERROR = 8639u32; +pub const ERROR_DS_DRA_REF_ALREADY_EXISTS: WIN32_ERROR = 8448u32; +pub const ERROR_DS_DRA_REF_NOT_FOUND: WIN32_ERROR = 8449u32; +pub const ERROR_DS_DRA_REPL_PENDING: WIN32_ERROR = 8477u32; +pub const ERROR_DS_DRA_RPC_CANCELLED: WIN32_ERROR = 8455u32; +pub const ERROR_DS_DRA_SCHEMA_CONFLICT: WIN32_ERROR = 8543u32; +pub const ERROR_DS_DRA_SCHEMA_INFO_SHIP: WIN32_ERROR = 8542u32; +pub const ERROR_DS_DRA_SCHEMA_MISMATCH: WIN32_ERROR = 8418u32; +pub const ERROR_DS_DRA_SECRETS_DENIED: WIN32_ERROR = 8630u32; +pub const ERROR_DS_DRA_SHUTDOWN: WIN32_ERROR = 8463u32; +pub const ERROR_DS_DRA_SINK_DISABLED: WIN32_ERROR = 8457u32; +pub const ERROR_DS_DRA_SOURCE_DISABLED: WIN32_ERROR = 8456u32; +pub const ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA: WIN32_ERROR = 8465u32; +pub const ERROR_DS_DRA_SOURCE_REINSTALLED: WIN32_ERROR = 8459u32; +pub const ERROR_DS_DRS_EXTENSIONS_CHANGED: WIN32_ERROR = 8594u32; +pub const ERROR_DS_DSA_MUST_BE_INT_MASTER: WIN32_ERROR = 8342u32; +pub const ERROR_DS_DST_DOMAIN_NOT_NATIVE: WIN32_ERROR = 8496u32; +pub const ERROR_DS_DST_NC_MISMATCH: WIN32_ERROR = 8486u32; +pub const ERROR_DS_DS_REQUIRED: WIN32_ERROR = 8478u32; +pub const ERROR_DS_DUPLICATE_ID_FOUND: WIN32_ERROR = 8605u32; +pub const ERROR_DS_DUP_LDAP_DISPLAY_NAME: WIN32_ERROR = 8382u32; +pub const ERROR_DS_DUP_LINK_ID: WIN32_ERROR = 8468u32; +pub const ERROR_DS_DUP_MAPI_ID: WIN32_ERROR = 8380u32; +pub const ERROR_DS_DUP_MSDS_INTID: WIN32_ERROR = 8597u32; +pub const ERROR_DS_DUP_OID: WIN32_ERROR = 8379u32; +pub const ERROR_DS_DUP_RDN: WIN32_ERROR = 8378u32; +pub const ERROR_DS_DUP_SCHEMA_ID_GUID: WIN32_ERROR = 8381u32; +pub const ERROR_DS_ENCODING_ERROR: WIN32_ERROR = 8252u32; +pub const ERROR_DS_EPOCH_MISMATCH: WIN32_ERROR = 8483u32; +pub const ERROR_DS_EXISTING_AD_CHILD_NC: WIN32_ERROR = 8613u32; +pub const ERROR_DS_EXISTS_IN_AUX_CLS: WIN32_ERROR = 8393u32; +pub const ERROR_DS_EXISTS_IN_MAY_HAVE: WIN32_ERROR = 8386u32; +pub const ERROR_DS_EXISTS_IN_MUST_HAVE: WIN32_ERROR = 8385u32; +pub const ERROR_DS_EXISTS_IN_POSS_SUP: WIN32_ERROR = 8395u32; +pub const ERROR_DS_EXISTS_IN_RDNATTID: WIN32_ERROR = 8598u32; +pub const ERROR_DS_EXISTS_IN_SUB_CLS: WIN32_ERROR = 8394u32; +pub const ERROR_DS_FILTER_UNKNOWN: WIN32_ERROR = 8254u32; +pub const ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS: WIN32_ERROR = 8555u32; +pub const ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST: WIN32_ERROR = 8635u32; +pub const ERROR_DS_FOREST_VERSION_TOO_HIGH: WIN32_ERROR = 8563u32; +pub const ERROR_DS_FOREST_VERSION_TOO_LOW: WIN32_ERROR = 8565u32; +pub const ERROR_DS_GCVERIFY_ERROR: WIN32_ERROR = 8417u32; +pub const ERROR_DS_GC_NOT_AVAILABLE: WIN32_ERROR = 8217u32; +pub const ERROR_DS_GC_REQUIRED: WIN32_ERROR = 8547u32; +pub const ERROR_DS_GENERIC_ERROR: WIN32_ERROR = 8341u32; +pub const ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER: WIN32_ERROR = 8519u32; +pub const ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER: WIN32_ERROR = 8516u32; +pub const ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER: WIN32_ERROR = 8517u32; +pub const ERROR_DS_GOVERNSID_MISSING: WIN32_ERROR = 8410u32; +pub const ERROR_DS_GROUP_CONVERSION_ERROR: WIN32_ERROR = 8607u32; +pub const ERROR_DS_HAVE_PRIMARY_MEMBERS: WIN32_ERROR = 8521u32; +pub const ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED: WIN32_ERROR = 8429u32; +pub const ERROR_DS_HIERARCHY_TABLE_TOO_DEEP: WIN32_ERROR = 8628u32; +pub const ERROR_DS_HIGH_ADLDS_FFL: WIN32_ERROR = 8641u32; +pub const ERROR_DS_HIGH_DSA_VERSION: WIN32_ERROR = 8642u32; +pub const ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD: WIN32_ERROR = 8507u32; +pub const ERROR_DS_ILLEGAL_MOD_OPERATION: WIN32_ERROR = 8311u32; +pub const ERROR_DS_ILLEGAL_SUPERIOR: WIN32_ERROR = 8345u32; +pub const ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION: WIN32_ERROR = 8492u32; +pub const ERROR_DS_INAPPROPRIATE_AUTH: WIN32_ERROR = 8233u32; +pub const ERROR_DS_INAPPROPRIATE_MATCHING: WIN32_ERROR = 8238u32; +pub const ERROR_DS_INCOMPATIBLE_CONTROLS_USED: WIN32_ERROR = 8574u32; +pub const ERROR_DS_INCOMPATIBLE_VERSION: WIN32_ERROR = 8567u32; +pub const ERROR_DS_INCORRECT_ROLE_OWNER: WIN32_ERROR = 8210u32; +pub const ERROR_DS_INIT_FAILURE: WIN32_ERROR = 8532u32; +pub const ERROR_DS_INIT_FAILURE_CONSOLE: WIN32_ERROR = 8561u32; +pub const ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE: WIN32_ERROR = 8512u32; +pub const ERROR_DS_INSTALL_NO_SRC_SCH_VERSION: WIN32_ERROR = 8511u32; +pub const ERROR_DS_INSTALL_SCHEMA_MISMATCH: WIN32_ERROR = 8467u32; +pub const ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT: WIN32_ERROR = 8606u32; +pub const ERROR_DS_INSUFF_ACCESS_RIGHTS: WIN32_ERROR = 8344u32; +pub const ERROR_DS_INTERNAL_FAILURE: WIN32_ERROR = 8430u32; +pub const ERROR_DS_INVALID_ATTRIBUTE_SYNTAX: WIN32_ERROR = 8203u32; +pub const ERROR_DS_INVALID_DMD: WIN32_ERROR = 8360u32; +pub const ERROR_DS_INVALID_DN_SYNTAX: WIN32_ERROR = 8242u32; +pub const ERROR_DS_INVALID_GROUP_TYPE: WIN32_ERROR = 8513u32; +pub const ERROR_DS_INVALID_LDAP_DISPLAY_NAME: WIN32_ERROR = 8479u32; +pub const ERROR_DS_INVALID_NAME_FOR_SPN: WIN32_ERROR = 8554u32; +pub const ERROR_DS_INVALID_ROLE_OWNER: WIN32_ERROR = 8366u32; +pub const ERROR_DS_INVALID_SCRIPT: WIN32_ERROR = 8600u32; +pub const ERROR_DS_INVALID_SEARCH_FLAG: WIN32_ERROR = 8500u32; +pub const ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE: WIN32_ERROR = 8626u32; +pub const ERROR_DS_INVALID_SEARCH_FLAG_TUPLE: WIN32_ERROR = 8627u32; +pub const ERROR_DS_IS_LEAF: WIN32_ERROR = 8243u32; +pub const ERROR_DS_KEY_NOT_UNIQUE: WIN32_ERROR = 8527u32; +pub const ERROR_DS_LDAP_SEND_QUEUE_FULL: WIN32_ERROR = 8616u32; +pub const ERROR_DS_LINK_ID_NOT_AVAILABLE: WIN32_ERROR = 8577u32; +pub const ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER: WIN32_ERROR = 8520u32; +pub const ERROR_DS_LOCAL_ERROR: WIN32_ERROR = 8251u32; +pub const ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY: WIN32_ERROR = 8548u32; +pub const ERROR_DS_LOOP_DETECT: WIN32_ERROR = 8246u32; +pub const ERROR_DS_LOW_ADLDS_FFL: WIN32_ERROR = 8643u32; +pub const ERROR_DS_LOW_DSA_VERSION: WIN32_ERROR = 8568u32; +pub const ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4: WIN32_ERROR = 8572u32; +pub const ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED: WIN32_ERROR = 8557u32; +pub const ERROR_DS_MAPI_ID_NOT_AVAILABLE: WIN32_ERROR = 8632u32; +pub const ERROR_DS_MASTERDSA_REQUIRED: WIN32_ERROR = 8314u32; +pub const ERROR_DS_MAX_OBJ_SIZE_EXCEEDED: WIN32_ERROR = 8304u32; +pub const ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY: WIN32_ERROR = 8201u32; +pub const ERROR_DS_MISSING_EXPECTED_ATT: WIN32_ERROR = 8411u32; +pub const ERROR_DS_MISSING_FOREST_TRUST: WIN32_ERROR = 8649u32; +pub const ERROR_DS_MISSING_FSMO_SETTINGS: WIN32_ERROR = 8434u32; +pub const ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER: WIN32_ERROR = 8497u32; +pub const ERROR_DS_MISSING_REQUIRED_ATT: WIN32_ERROR = 8316u32; +pub const ERROR_DS_MISSING_SUPREF: WIN32_ERROR = 8406u32; +pub const ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG: WIN32_ERROR = 8581u32; +pub const ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE: WIN32_ERROR = 8579u32; +pub const ERROR_DS_MODIFYDN_WRONG_GRANDPARENT: WIN32_ERROR = 8582u32; +pub const ERROR_DS_MUST_BE_RUN_ON_DST_DC: WIN32_ERROR = 8558u32; +pub const ERROR_DS_NAME_ERROR_DOMAIN_ONLY: WIN32_ERROR = 8473u32; +pub const ERROR_DS_NAME_ERROR_NOT_FOUND: WIN32_ERROR = 8470u32; +pub const ERROR_DS_NAME_ERROR_NOT_UNIQUE: WIN32_ERROR = 8471u32; +pub const ERROR_DS_NAME_ERROR_NO_MAPPING: WIN32_ERROR = 8472u32; +pub const ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING: WIN32_ERROR = 8474u32; +pub const ERROR_DS_NAME_ERROR_RESOLVING: WIN32_ERROR = 8469u32; +pub const ERROR_DS_NAME_ERROR_TRUST_REFERRAL: WIN32_ERROR = 8583u32; +pub const ERROR_DS_NAME_NOT_UNIQUE: WIN32_ERROR = 8571u32; +pub const ERROR_DS_NAME_REFERENCE_INVALID: WIN32_ERROR = 8373u32; +pub const ERROR_DS_NAME_TOO_LONG: WIN32_ERROR = 8348u32; +pub const ERROR_DS_NAME_TOO_MANY_PARTS: WIN32_ERROR = 8347u32; +pub const ERROR_DS_NAME_TYPE_UNKNOWN: WIN32_ERROR = 8351u32; +pub const ERROR_DS_NAME_UNPARSEABLE: WIN32_ERROR = 8350u32; +pub const ERROR_DS_NAME_VALUE_TOO_LONG: WIN32_ERROR = 8349u32; +pub const ERROR_DS_NAMING_MASTER_GC: WIN32_ERROR = 8523u32; +pub const ERROR_DS_NAMING_VIOLATION: WIN32_ERROR = 8247u32; +pub const ERROR_DS_NCNAME_MISSING_CR_REF: WIN32_ERROR = 8412u32; +pub const ERROR_DS_NCNAME_MUST_BE_NC: WIN32_ERROR = 8357u32; +pub const ERROR_DS_NC_MUST_HAVE_NC_PARENT: WIN32_ERROR = 8494u32; +pub const ERROR_DS_NC_STILL_HAS_DSAS: WIN32_ERROR = 8546u32; +pub const ERROR_DS_NONEXISTENT_MAY_HAVE: WIN32_ERROR = 8387u32; +pub const ERROR_DS_NONEXISTENT_MUST_HAVE: WIN32_ERROR = 8388u32; +pub const ERROR_DS_NONEXISTENT_POSS_SUP: WIN32_ERROR = 8390u32; +pub const ERROR_DS_NONSAFE_SCHEMA_CHANGE: WIN32_ERROR = 8508u32; +pub const ERROR_DS_NON_ASQ_SEARCH: WIN32_ERROR = 8624u32; +pub const ERROR_DS_NON_BASE_SEARCH: WIN32_ERROR = 8480u32; +pub const ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX: WIN32_ERROR = 8377u32; +pub const ERROR_DS_NOT_AN_OBJECT: WIN32_ERROR = 8352u32; +pub const ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC: WIN32_ERROR = 8487u32; +pub const ERROR_DS_NOT_CLOSEST: WIN32_ERROR = 8588u32; +pub const ERROR_DS_NOT_INSTALLED: WIN32_ERROR = 8200u32; +pub const ERROR_DS_NOT_ON_BACKLINK: WIN32_ERROR = 8362u32; +pub const ERROR_DS_NOT_SUPPORTED: WIN32_ERROR = 8256u32; +pub const ERROR_DS_NOT_SUPPORTED_SORT_ORDER: WIN32_ERROR = 8570u32; +pub const ERROR_DS_NO_ATTRIBUTE_OR_VALUE: WIN32_ERROR = 8202u32; +pub const ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN: WIN32_ERROR = 8569u32; +pub const ERROR_DS_NO_CHAINED_EVAL: WIN32_ERROR = 8328u32; +pub const ERROR_DS_NO_CHAINING: WIN32_ERROR = 8327u32; +pub const ERROR_DS_NO_CHECKPOINT_WITH_PDC: WIN32_ERROR = 8551u32; +pub const ERROR_DS_NO_CROSSREF_FOR_NC: WIN32_ERROR = 8363u32; +pub const ERROR_DS_NO_DELETED_NAME: WIN32_ERROR = 8355u32; +pub const ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS: WIN32_ERROR = 8549u32; +pub const ERROR_DS_NO_MORE_RIDS: WIN32_ERROR = 8209u32; +pub const ERROR_DS_NO_MSDS_INTID: WIN32_ERROR = 8596u32; +pub const ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN: WIN32_ERROR = 8514u32; +pub const ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN: WIN32_ERROR = 8515u32; +pub const ERROR_DS_NO_NTDSA_OBJECT: WIN32_ERROR = 8623u32; +pub const ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC: WIN32_ERROR = 8580u32; +pub const ERROR_DS_NO_PARENT_OBJECT: WIN32_ERROR = 8329u32; +pub const ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION: WIN32_ERROR = 8533u32; +pub const ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA: WIN32_ERROR = 8306u32; +pub const ERROR_DS_NO_REF_DOMAIN: WIN32_ERROR = 8575u32; +pub const ERROR_DS_NO_REQUESTED_ATTS_FOUND: WIN32_ERROR = 8308u32; +pub const ERROR_DS_NO_RESULTS_RETURNED: WIN32_ERROR = 8257u32; +pub const ERROR_DS_NO_RIDS_ALLOCATED: WIN32_ERROR = 8208u32; +pub const ERROR_DS_NO_SERVER_OBJECT: WIN32_ERROR = 8622u32; +pub const ERROR_DS_NO_SUCH_OBJECT: WIN32_ERROR = 8240u32; +pub const ERROR_DS_NO_TREE_DELETE_ABOVE_NC: WIN32_ERROR = 8501u32; +pub const ERROR_DS_NTDSCRIPT_PROCESS_ERROR: WIN32_ERROR = 8592u32; +pub const ERROR_DS_NTDSCRIPT_SYNTAX_ERROR: WIN32_ERROR = 8591u32; +pub const ERROR_DS_OBJECT_BEING_REMOVED: WIN32_ERROR = 8339u32; +pub const ERROR_DS_OBJECT_CLASS_REQUIRED: WIN32_ERROR = 8315u32; +pub const ERROR_DS_OBJECT_RESULTS_TOO_LARGE: WIN32_ERROR = 8248u32; +pub const ERROR_DS_OBJ_CLASS_NOT_DEFINED: WIN32_ERROR = 8371u32; +pub const ERROR_DS_OBJ_CLASS_NOT_SUBCLASS: WIN32_ERROR = 8372u32; +pub const ERROR_DS_OBJ_CLASS_VIOLATION: WIN32_ERROR = 8212u32; +pub const ERROR_DS_OBJ_GUID_EXISTS: WIN32_ERROR = 8361u32; +pub const ERROR_DS_OBJ_NOT_FOUND: WIN32_ERROR = 8333u32; +pub const ERROR_DS_OBJ_STRING_NAME_EXISTS: WIN32_ERROR = 8305u32; +pub const ERROR_DS_OBJ_TOO_LARGE: WIN32_ERROR = 8312u32; +pub const ERROR_DS_OFFSET_RANGE_ERROR: WIN32_ERROR = 8262u32; +pub const ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS: WIN32_ERROR = 8637u32; +pub const ERROR_DS_OID_NOT_FOUND: WIN32_ERROR = 8638u32; +pub const ERROR_DS_OPERATIONS_ERROR: WIN32_ERROR = 8224u32; +pub const ERROR_DS_OUT_OF_SCOPE: WIN32_ERROR = 8338u32; +pub const ERROR_DS_OUT_OF_VERSION_STORE: WIN32_ERROR = 8573u32; +pub const ERROR_DS_PARAM_ERROR: WIN32_ERROR = 8255u32; +pub const ERROR_DS_PARENT_IS_AN_ALIAS: WIN32_ERROR = 8330u32; +pub const ERROR_DS_PDC_OPERATION_IN_PROGRESS: WIN32_ERROR = 8490u32; +pub const ERROR_DS_PER_ATTRIBUTE_AUTHZ_FAILED_DURING_ADD: WIN32_ERROR = 8652u32; +pub const ERROR_DS_POLICY_NOT_KNOWN: WIN32_ERROR = 8618u32; +pub const ERROR_DS_PROTOCOL_ERROR: WIN32_ERROR = 8225u32; +pub const ERROR_DS_RANGE_CONSTRAINT: WIN32_ERROR = 8322u32; +pub const ERROR_DS_RDN_DOESNT_MATCH_SCHEMA: WIN32_ERROR = 8307u32; +pub const ERROR_DS_RECALCSCHEMA_FAILED: WIN32_ERROR = 8396u32; +pub const ERROR_DS_REFERRAL: WIN32_ERROR = 8235u32; +pub const ERROR_DS_REFERRAL_LIMIT_EXCEEDED: WIN32_ERROR = 8260u32; +pub const ERROR_DS_REFUSING_FSMO_ROLES: WIN32_ERROR = 8433u32; +pub const ERROR_DS_REMOTE_CROSSREF_OP_FAILED: WIN32_ERROR = 8601u32; +pub const ERROR_DS_REPLICATOR_ONLY: WIN32_ERROR = 8370u32; +pub const ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR: WIN32_ERROR = 8595u32; +pub const ERROR_DS_REPL_LIFETIME_EXCEEDED: WIN32_ERROR = 8614u32; +pub const ERROR_DS_RESERVED_LINK_ID: WIN32_ERROR = 8576u32; +pub const ERROR_DS_RESERVED_MAPI_ID: WIN32_ERROR = 8631u32; +pub const ERROR_DS_RIDMGR_DISABLED: WIN32_ERROR = 8263u32; +pub const ERROR_DS_RIDMGR_INIT_ERROR: WIN32_ERROR = 8211u32; +pub const ERROR_DS_ROLE_NOT_VERIFIED: WIN32_ERROR = 8610u32; +pub const ERROR_DS_ROOT_CANT_BE_SUBREF: WIN32_ERROR = 8326u32; +pub const ERROR_DS_ROOT_MUST_BE_NC: WIN32_ERROR = 8301u32; +pub const ERROR_DS_ROOT_REQUIRES_CLASS_TOP: WIN32_ERROR = 8432u32; +pub const ERROR_DS_SAM_INIT_FAILURE: WIN32_ERROR = 8504u32; +pub const ERROR_DS_SAM_INIT_FAILURE_CONSOLE: WIN32_ERROR = 8562u32; +pub const ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY: WIN32_ERROR = 8530u32; +pub const ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD: WIN32_ERROR = 8529u32; +pub const ERROR_DS_SCHEMA_ALLOC_FAILED: WIN32_ERROR = 8415u32; +pub const ERROR_DS_SCHEMA_NOT_LOADED: WIN32_ERROR = 8414u32; +pub const ERROR_DS_SCHEMA_UPDATE_DISALLOWED: WIN32_ERROR = 8509u32; +pub const ERROR_DS_SECURITY_CHECKING_ERROR: WIN32_ERROR = 8413u32; +pub const ERROR_DS_SECURITY_ILLEGAL_MODIFY: WIN32_ERROR = 8423u32; +pub const ERROR_DS_SEC_DESC_INVALID: WIN32_ERROR = 8354u32; +pub const ERROR_DS_SEC_DESC_TOO_SHORT: WIN32_ERROR = 8353u32; +pub const ERROR_DS_SEMANTIC_ATT_TEST: WIN32_ERROR = 8383u32; +pub const ERROR_DS_SENSITIVE_GROUP_VIOLATION: WIN32_ERROR = 8505u32; +pub const ERROR_DS_SERVER_DOWN: WIN32_ERROR = 8250u32; +pub const ERROR_DS_SHUTTING_DOWN: WIN32_ERROR = 8364u32; +pub const ERROR_DS_SINGLE_USER_MODE_FAILED: WIN32_ERROR = 8590u32; +pub const ERROR_DS_SINGLE_VALUE_CONSTRAINT: WIN32_ERROR = 8321u32; +pub const ERROR_DS_SIZELIMIT_EXCEEDED: WIN32_ERROR = 8227u32; +pub const ERROR_DS_SORT_CONTROL_MISSING: WIN32_ERROR = 8261u32; +pub const ERROR_DS_SOURCE_AUDITING_NOT_ENABLED: WIN32_ERROR = 8552u32; +pub const ERROR_DS_SOURCE_DOMAIN_IN_FOREST: WIN32_ERROR = 8534u32; +pub const ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST: WIN32_ERROR = 8647u32; +pub const ERROR_DS_SRC_AND_DST_NC_IDENTICAL: WIN32_ERROR = 8485u32; +pub const ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH: WIN32_ERROR = 8540u32; +pub const ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER: WIN32_ERROR = 8559u32; +pub const ERROR_DS_SRC_GUID_MISMATCH: WIN32_ERROR = 8488u32; +pub const ERROR_DS_SRC_NAME_MISMATCH: WIN32_ERROR = 8484u32; +pub const ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER: WIN32_ERROR = 8538u32; +pub const ERROR_DS_SRC_SID_EXISTS_IN_FOREST: WIN32_ERROR = 8539u32; +pub const ERROR_DS_STRING_SD_CONVERSION_FAILED: WIN32_ERROR = 8522u32; +pub const ERROR_DS_STRONG_AUTH_REQUIRED: WIN32_ERROR = 8232u32; +pub const ERROR_DS_SUBREF_MUST_HAVE_PARENT: WIN32_ERROR = 8356u32; +pub const ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD: WIN32_ERROR = 8376u32; +pub const ERROR_DS_SUB_CLS_TEST_FAIL: WIN32_ERROR = 8391u32; +pub const ERROR_DS_SYNTAX_MISMATCH: WIN32_ERROR = 8384u32; +pub const ERROR_DS_THREAD_LIMIT_EXCEEDED: WIN32_ERROR = 8587u32; +pub const ERROR_DS_TIMELIMIT_EXCEEDED: WIN32_ERROR = 8226u32; +pub const ERROR_DS_TREE_DELETE_NOT_FINISHED: WIN32_ERROR = 8397u32; +pub const ERROR_DS_UNABLE_TO_SURRENDER_ROLES: WIN32_ERROR = 8435u32; +pub const ERROR_DS_UNAVAILABLE: WIN32_ERROR = 8207u32; +pub const ERROR_DS_UNAVAILABLE_CRIT_EXTENSION: WIN32_ERROR = 8236u32; +pub const ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED: WIN32_ERROR = 8645u32; +pub const ERROR_DS_UNICODEPWD_NOT_IN_QUOTES: WIN32_ERROR = 8556u32; +pub const ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER: WIN32_ERROR = 8518u32; +pub const ERROR_DS_UNKNOWN_ERROR: WIN32_ERROR = 8431u32; +pub const ERROR_DS_UNKNOWN_OPERATION: WIN32_ERROR = 8365u32; +pub const ERROR_DS_UNWILLING_TO_PERFORM: WIN32_ERROR = 8245u32; +pub const ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST: WIN32_ERROR = 8648u32; +pub const ERROR_DS_USER_BUFFER_TO_SMALL: WIN32_ERROR = 8309u32; +pub const ERROR_DS_VALUE_KEY_NOT_UNIQUE: WIN32_ERROR = 8650u32; +pub const ERROR_DS_VERSION_CHECK_FAILURE: WIN32_ERROR = 643u32; +pub const ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL: WIN32_ERROR = 8611u32; +pub const ERROR_DS_WRONG_LINKED_ATT_SYNTAX: WIN32_ERROR = 8528u32; +pub const ERROR_DS_WRONG_OM_OBJ_CLASS: WIN32_ERROR = 8476u32; +pub const ERROR_DUPLICATE_FOUND: WIN32_ERROR = 3758096898u32; +pub const ERROR_DUPLICATE_PRIVILEGES: WIN32_ERROR = 311u32; +pub const ERROR_DUPLICATE_SERVICE_NAME: WIN32_ERROR = 1078u32; +pub const ERROR_DUPLICATE_TAG: WIN32_ERROR = 2014u32; +pub const ERROR_DUP_DOMAINNAME: WIN32_ERROR = 1221u32; +pub const ERROR_DUP_NAME: WIN32_ERROR = 52u32; +pub const ERROR_DYNAMIC_CODE_BLOCKED: WIN32_ERROR = 1655u32; +pub const ERROR_DYNLINK_FROM_INVALID_RING: WIN32_ERROR = 196u32; +pub const ERROR_EAS_DIDNT_FIT: WIN32_ERROR = 275u32; +pub const ERROR_EAS_NOT_SUPPORTED: WIN32_ERROR = 282u32; +pub const ERROR_EA_ACCESS_DENIED: WIN32_ERROR = 994u32; +pub const ERROR_EA_FILE_CORRUPT: WIN32_ERROR = 276u32; +pub const ERROR_EA_LIST_INCONSISTENT: WIN32_ERROR = 255u32; +pub const ERROR_EA_TABLE_FULL: WIN32_ERROR = 277u32; +pub const ERROR_EC_CIRCULAR_FORWARDING: WIN32_ERROR = 15082u32; +pub const ERROR_EC_CREDSTORE_FULL: WIN32_ERROR = 15083u32; +pub const ERROR_EC_CRED_NOT_FOUND: WIN32_ERROR = 15084u32; +pub const ERROR_EC_LOG_DISABLED: WIN32_ERROR = 15081u32; +pub const ERROR_EC_NO_ACTIVE_CHANNEL: WIN32_ERROR = 15085u32; +pub const ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE: WIN32_ERROR = 15080u32; +pub const ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED: WIN32_ERROR = 357u32; +pub const ERROR_EDP_POLICY_DENIES_OPERATION: WIN32_ERROR = 356u32; +pub const ERROR_EFS_ALG_BLOB_TOO_BIG: WIN32_ERROR = 6013u32; +pub const ERROR_EFS_DISABLED: WIN32_ERROR = 6015u32; +pub const ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION: WIN32_ERROR = 6831u32; +pub const ERROR_EFS_SERVER_NOT_TRUSTED: WIN32_ERROR = 6011u32; +pub const ERROR_EFS_VERSION_NOT_SUPPORT: WIN32_ERROR = 6016u32; +pub const ERROR_ELEVATION_REQUIRED: WIN32_ERROR = 740u32; +pub const ERROR_EMPTY: WIN32_ERROR = 4306u32; +pub const ERROR_ENCLAVE_FAILURE: WIN32_ERROR = 349u32; +pub const ERROR_ENCLAVE_NOT_TERMINATED: WIN32_ERROR = 814u32; +pub const ERROR_ENCLAVE_VIOLATION: WIN32_ERROR = 815u32; +pub const ERROR_ENCRYPTED_FILE_NOT_SUPPORTED: WIN32_ERROR = 489u32; +pub const ERROR_ENCRYPTED_IO_NOT_POSSIBLE: WIN32_ERROR = 808u32; +pub const ERROR_ENCRYPTING_METADATA_DISALLOWED: WIN32_ERROR = 431u32; +pub const ERROR_ENCRYPTION_DISABLED: WIN32_ERROR = 430u32; +pub const ERROR_ENCRYPTION_FAILED: WIN32_ERROR = 6000u32; +pub const ERROR_ENCRYPTION_POLICY_DENIES_OPERATION: WIN32_ERROR = 6022u32; +pub const ERROR_END_OF_MEDIA: WIN32_ERROR = 1100u32; +pub const ERROR_ENLISTMENT_NOT_FOUND: WIN32_ERROR = 6717u32; +pub const ERROR_ENLISTMENT_NOT_SUPERIOR: WIN32_ERROR = 6820u32; +pub const ERROR_ENVVAR_NOT_FOUND: WIN32_ERROR = 203u32; +pub const ERROR_EOM_OVERFLOW: WIN32_ERROR = 1129u32; +pub const ERROR_ERRORS_ENCOUNTERED: WIN32_ERROR = 774u32; +pub const ERROR_EVALUATION_EXPIRATION: WIN32_ERROR = 622u32; +pub const ERROR_EVENTLOG_CANT_START: WIN32_ERROR = 1501u32; +pub const ERROR_EVENTLOG_FILE_CHANGED: WIN32_ERROR = 1503u32; +pub const ERROR_EVENTLOG_FILE_CORRUPT: WIN32_ERROR = 1500u32; +pub const ERROR_EVENT_DONE: WIN32_ERROR = 710u32; +pub const ERROR_EVENT_PENDING: WIN32_ERROR = 711u32; +pub const ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY: WIN32_ERROR = 15036u32; +pub const ERROR_EVT_CHANNEL_CANNOT_ACTIVATE: WIN32_ERROR = 15025u32; +pub const ERROR_EVT_CHANNEL_NOT_FOUND: WIN32_ERROR = 15007u32; +pub const ERROR_EVT_CONFIGURATION_ERROR: WIN32_ERROR = 15010u32; +pub const ERROR_EVT_EVENT_DEFINITION_NOT_FOUND: WIN32_ERROR = 15032u32; +pub const ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND: WIN32_ERROR = 15003u32; +pub const ERROR_EVT_FILTER_ALREADYSCOPED: WIN32_ERROR = 15014u32; +pub const ERROR_EVT_FILTER_INVARG: WIN32_ERROR = 15016u32; +pub const ERROR_EVT_FILTER_INVTEST: WIN32_ERROR = 15017u32; +pub const ERROR_EVT_FILTER_INVTYPE: WIN32_ERROR = 15018u32; +pub const ERROR_EVT_FILTER_NOTELTSET: WIN32_ERROR = 15015u32; +pub const ERROR_EVT_FILTER_OUT_OF_RANGE: WIN32_ERROR = 15038u32; +pub const ERROR_EVT_FILTER_PARSEERR: WIN32_ERROR = 15019u32; +pub const ERROR_EVT_FILTER_TOO_COMPLEX: WIN32_ERROR = 15026u32; +pub const ERROR_EVT_FILTER_UNEXPECTEDTOKEN: WIN32_ERROR = 15021u32; +pub const ERROR_EVT_FILTER_UNSUPPORTEDOP: WIN32_ERROR = 15020u32; +pub const ERROR_EVT_INVALID_CHANNEL_PATH: WIN32_ERROR = 15000u32; +pub const ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE: WIN32_ERROR = 15023u32; +pub const ERROR_EVT_INVALID_EVENT_DATA: WIN32_ERROR = 15005u32; +pub const ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL: WIN32_ERROR = 15022u32; +pub const ERROR_EVT_INVALID_PUBLISHER_NAME: WIN32_ERROR = 15004u32; +pub const ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE: WIN32_ERROR = 15024u32; +pub const ERROR_EVT_INVALID_QUERY: WIN32_ERROR = 15001u32; +pub const ERROR_EVT_MALFORMED_XML_TEXT: WIN32_ERROR = 15008u32; +pub const ERROR_EVT_MAX_INSERTS_REACHED: WIN32_ERROR = 15031u32; +pub const ERROR_EVT_MESSAGE_ID_NOT_FOUND: WIN32_ERROR = 15028u32; +pub const ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND: WIN32_ERROR = 15033u32; +pub const ERROR_EVT_MESSAGE_NOT_FOUND: WIN32_ERROR = 15027u32; +pub const ERROR_EVT_NON_VALIDATING_MSXML: WIN32_ERROR = 15013u32; +pub const ERROR_EVT_PUBLISHER_DISABLED: WIN32_ERROR = 15037u32; +pub const ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND: WIN32_ERROR = 15002u32; +pub const ERROR_EVT_QUERY_RESULT_INVALID_POSITION: WIN32_ERROR = 15012u32; +pub const ERROR_EVT_QUERY_RESULT_STALE: WIN32_ERROR = 15011u32; +pub const ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL: WIN32_ERROR = 15009u32; +pub const ERROR_EVT_UNRESOLVED_PARAMETER_INSERT: WIN32_ERROR = 15030u32; +pub const ERROR_EVT_UNRESOLVED_VALUE_INSERT: WIN32_ERROR = 15029u32; +pub const ERROR_EVT_VERSION_TOO_NEW: WIN32_ERROR = 15035u32; +pub const ERROR_EVT_VERSION_TOO_OLD: WIN32_ERROR = 15034u32; +pub const ERROR_EXCEPTION_IN_RESOURCE_CALL: WIN32_ERROR = 5930u32; +pub const ERROR_EXCEPTION_IN_SERVICE: WIN32_ERROR = 1064u32; +pub const ERROR_EXCL_SEM_ALREADY_OWNED: WIN32_ERROR = 101u32; +pub const ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY: WIN32_ERROR = 217u32; +pub const ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY: WIN32_ERROR = 218u32; +pub const ERROR_EXE_MACHINE_TYPE_MISMATCH: WIN32_ERROR = 216u32; +pub const ERROR_EXE_MARKED_INVALID: WIN32_ERROR = 192u32; +pub const ERROR_EXPECTED_SECTION_NAME: WIN32_ERROR = 3758096384u32; +pub const ERROR_EXPIRED_HANDLE: WIN32_ERROR = 6854u32; +pub const ERROR_EXTENDED_ERROR: WIN32_ERROR = 1208u32; +pub const ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN: WIN32_ERROR = 343u32; +pub const ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED: WIN32_ERROR = 399u32; +pub const ERROR_EXTRANEOUS_INFORMATION: WIN32_ERROR = 677u32; +pub const ERROR_FAILED_DRIVER_ENTRY: WIN32_ERROR = 647u32; +pub const ERROR_FAILED_SERVICE_CONTROLLER_CONNECT: WIN32_ERROR = 1063u32; +pub const ERROR_FAIL_FAST_EXCEPTION: WIN32_ERROR = 1653u32; +pub const ERROR_FAIL_I24: WIN32_ERROR = 83u32; +pub const ERROR_FAIL_NOACTION_REBOOT: WIN32_ERROR = 350u32; +pub const ERROR_FAIL_REBOOT_INITIATED: WIN32_ERROR = 3018u32; +pub const ERROR_FAIL_REBOOT_REQUIRED: WIN32_ERROR = 3017u32; +pub const ERROR_FAIL_RESTART: WIN32_ERROR = 352u32; +pub const ERROR_FAIL_SHUTDOWN: WIN32_ERROR = 351u32; +pub const ERROR_FATAL_APP_EXIT: WIN32_ERROR = 713u32; +pub const ERROR_FILEMARK_DETECTED: WIN32_ERROR = 1101u32; +pub const ERROR_FILENAME_EXCED_RANGE: WIN32_ERROR = 206u32; +pub const ERROR_FILEQUEUE_LOCKED: WIN32_ERROR = 3758096918u32; +pub const ERROR_FILE_CHECKED_OUT: WIN32_ERROR = 220u32; +pub const ERROR_FILE_CORRUPT: WIN32_ERROR = 1392u32; +pub const ERROR_FILE_ENCRYPTED: WIN32_ERROR = 6002u32; +pub const ERROR_FILE_EXISTS: WIN32_ERROR = 80u32; +pub const ERROR_FILE_HANDLE_REVOKED: WIN32_ERROR = 806u32; +pub const ERROR_FILE_HASH_NOT_IN_CATALOG: WIN32_ERROR = 3758096971u32; +pub const ERROR_FILE_IDENTITY_NOT_PERSISTENT: WIN32_ERROR = 6823u32; +pub const ERROR_FILE_INVALID: WIN32_ERROR = 1006u32; +pub const ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED: WIN32_ERROR = 326u32; +pub const ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS: WIN32_ERROR = 809u32; +pub const ERROR_FILE_NOT_ENCRYPTED: WIN32_ERROR = 6007u32; +pub const ERROR_FILE_NOT_FOUND: WIN32_ERROR = 2u32; +pub const ERROR_FILE_NOT_SUPPORTED: WIN32_ERROR = 425u32; +pub const ERROR_FILE_OFFLINE: WIN32_ERROR = 4350u32; +pub const ERROR_FILE_PROTECTED_UNDER_DPL: WIN32_ERROR = 406u32; +pub const ERROR_FILE_READ_ONLY: WIN32_ERROR = 6009u32; +pub const ERROR_FILE_SHARE_RESOURCE_CONFLICT: WIN32_ERROR = 5938u32; +pub const ERROR_FILE_SNAP_INVALID_PARAMETER: WIN32_ERROR = 440u32; +pub const ERROR_FILE_SNAP_IN_PROGRESS: WIN32_ERROR = 435u32; +pub const ERROR_FILE_SNAP_IO_NOT_COORDINATED: WIN32_ERROR = 438u32; +pub const ERROR_FILE_SNAP_MODIFY_NOT_SUPPORTED: WIN32_ERROR = 437u32; +pub const ERROR_FILE_SNAP_UNEXPECTED_ERROR: WIN32_ERROR = 439u32; +pub const ERROR_FILE_SNAP_USER_SECTION_NOT_SUPPORTED: WIN32_ERROR = 436u32; +pub const ERROR_FILE_SYSTEM_LIMITATION: WIN32_ERROR = 665u32; +pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY: WIN32_ERROR = 371u32; +pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION: WIN32_ERROR = 385u32; +pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT: WIN32_ERROR = 370u32; +pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN: WIN32_ERROR = 372u32; +pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE: WIN32_ERROR = 369u32; +pub const ERROR_FILE_TOO_LARGE: WIN32_ERROR = 223u32; +pub const ERROR_FIRMWARE_UPDATED: WIN32_ERROR = 728u32; +pub const ERROR_FLOATED_SECTION: WIN32_ERROR = 6846u32; +pub const ERROR_FLOAT_MULTIPLE_FAULTS: WIN32_ERROR = 630u32; +pub const ERROR_FLOAT_MULTIPLE_TRAPS: WIN32_ERROR = 631u32; +pub const ERROR_FLOPPY_BAD_REGISTERS: WIN32_ERROR = 1125u32; +pub const ERROR_FLOPPY_ID_MARK_NOT_FOUND: WIN32_ERROR = 1122u32; +pub const ERROR_FLOPPY_UNKNOWN_ERROR: WIN32_ERROR = 1124u32; +pub const ERROR_FLOPPY_VOLUME: WIN32_ERROR = 584u32; +pub const ERROR_FLOPPY_WRONG_CYLINDER: WIN32_ERROR = 1123u32; +pub const ERROR_FLT_ALREADY_ENLISTED: ::windows_sys::core::HRESULT = -2145452005i32; +pub const ERROR_FLT_CBDQ_DISABLED: ::windows_sys::core::HRESULT = -2145452018i32; +pub const ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND: ::windows_sys::core::HRESULT = -2145452010i32; +pub const ERROR_FLT_CONTEXT_ALREADY_DEFINED: ::windows_sys::core::HRESULT = -2145452030i32; +pub const ERROR_FLT_CONTEXT_ALREADY_LINKED: ::windows_sys::core::HRESULT = -2145452004i32; +pub const ERROR_FLT_DELETING_OBJECT: ::windows_sys::core::HRESULT = -2145452021i32; +pub const ERROR_FLT_DISALLOW_FAST_IO: ::windows_sys::core::HRESULT = -2145452028i32; +pub const ERROR_FLT_DO_NOT_ATTACH: ::windows_sys::core::HRESULT = -2145452017i32; +pub const ERROR_FLT_DO_NOT_DETACH: ::windows_sys::core::HRESULT = -2145452016i32; +pub const ERROR_FLT_DUPLICATE_ENTRY: ::windows_sys::core::HRESULT = -2145452019i32; +pub const ERROR_FLT_FILTER_NOT_FOUND: ::windows_sys::core::HRESULT = -2145452013i32; +pub const ERROR_FLT_FILTER_NOT_READY: ::windows_sys::core::HRESULT = -2145452024i32; +pub const ERROR_FLT_INSTANCE_ALTITUDE_COLLISION: ::windows_sys::core::HRESULT = -2145452015i32; +pub const ERROR_FLT_INSTANCE_NAME_COLLISION: ::windows_sys::core::HRESULT = -2145452014i32; +pub const ERROR_FLT_INSTANCE_NOT_FOUND: ::windows_sys::core::HRESULT = -2145452011i32; +pub const ERROR_FLT_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2145452022i32; +pub const ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST: ::windows_sys::core::HRESULT = -2145452029i32; +pub const ERROR_FLT_INVALID_CONTEXT_REGISTRATION: ::windows_sys::core::HRESULT = -2145452009i32; +pub const ERROR_FLT_INVALID_NAME_REQUEST: ::windows_sys::core::HRESULT = -2145452027i32; +pub const ERROR_FLT_IO_COMPLETE: ::windows_sys::core::HRESULT = 2031617i32; +pub const ERROR_FLT_MUST_BE_NONPAGED_POOL: ::windows_sys::core::HRESULT = -2145452020i32; +pub const ERROR_FLT_NAME_CACHE_MISS: ::windows_sys::core::HRESULT = -2145452008i32; +pub const ERROR_FLT_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -2145452025i32; +pub const ERROR_FLT_NOT_SAFE_TO_POST_OPERATION: ::windows_sys::core::HRESULT = -2145452026i32; +pub const ERROR_FLT_NO_DEVICE_OBJECT: ::windows_sys::core::HRESULT = -2145452007i32; +pub const ERROR_FLT_NO_HANDLER_DEFINED: ::windows_sys::core::HRESULT = -2145452031i32; +pub const ERROR_FLT_NO_WAITER_FOR_REPLY: ::windows_sys::core::HRESULT = -2145452000i32; +pub const ERROR_FLT_POST_OPERATION_CLEANUP: ::windows_sys::core::HRESULT = -2145452023i32; +pub const ERROR_FLT_REGISTRATION_BUSY: ::windows_sys::core::HRESULT = -2145451997i32; +pub const ERROR_FLT_VOLUME_ALREADY_MOUNTED: ::windows_sys::core::HRESULT = -2145452006i32; +pub const ERROR_FLT_VOLUME_NOT_FOUND: ::windows_sys::core::HRESULT = -2145452012i32; +pub const ERROR_FLT_WCOS_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2145451996i32; +pub const ERROR_FORMS_AUTH_REQUIRED: WIN32_ERROR = 224u32; +pub const ERROR_FOUND_OUT_OF_SCOPE: WIN32_ERROR = 601u32; +pub const ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY: WIN32_ERROR = 762u32; +pub const ERROR_FS_DRIVER_REQUIRED: WIN32_ERROR = 588u32; +pub const ERROR_FS_METADATA_INCONSISTENT: WIN32_ERROR = 510u32; +pub const ERROR_FT_DI_SCAN_REQUIRED: WIN32_ERROR = 339u32; +pub const ERROR_FT_READ_FAILURE: WIN32_ERROR = 415u32; +pub const ERROR_FT_READ_FROM_COPY_FAILURE: WIN32_ERROR = 818u32; +pub const ERROR_FT_READ_RECOVERY_FROM_BACKUP: WIN32_ERROR = 704u32; +pub const ERROR_FT_WRITE_FAILURE: WIN32_ERROR = 338u32; +pub const ERROR_FT_WRITE_RECOVERY: WIN32_ERROR = 705u32; +pub const ERROR_FULLSCREEN_MODE: WIN32_ERROR = 1007u32; +pub const ERROR_FULL_BACKUP: WIN32_ERROR = 4004u32; +pub const ERROR_FUNCTION_FAILED: WIN32_ERROR = 1627u32; +pub const ERROR_FUNCTION_NOT_CALLED: WIN32_ERROR = 1626u32; +pub const ERROR_GDI_HANDLE_LEAK: WIN32_ERROR = 373u32; +pub const ERROR_GENERAL_SYNTAX: WIN32_ERROR = 3758096387u32; +pub const ERROR_GENERIC_COMMAND_FAILED: WIN32_ERROR = 14109u32; +pub const ERROR_GENERIC_NOT_MAPPED: WIN32_ERROR = 1360u32; +pub const ERROR_GEN_FAILURE: WIN32_ERROR = 31u32; +pub const ERROR_GLOBAL_ONLY_HOOK: WIN32_ERROR = 1429u32; +pub const ERROR_GPIO_CLIENT_INFORMATION_INVALID: WIN32_ERROR = 15322u32; +pub const ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE: WIN32_ERROR = 15326u32; +pub const ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED: WIN32_ERROR = 15327u32; +pub const ERROR_GPIO_INVALID_REGISTRATION_PACKET: WIN32_ERROR = 15324u32; +pub const ERROR_GPIO_OPERATION_DENIED: WIN32_ERROR = 15325u32; +pub const ERROR_GPIO_VERSION_NOT_SUPPORTED: WIN32_ERROR = 15323u32; +pub const ERROR_GRACEFUL_DISCONNECT: WIN32_ERROR = 1226u32; +pub const ERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED: ::windows_sys::core::HRESULT = -1071242181i32; +pub const ERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY: ::windows_sys::core::HRESULT = -1071242189i32; +pub const ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE: ::windows_sys::core::HRESULT = -1071242456i32; +pub const ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET: ::windows_sys::core::HRESULT = -1071242455i32; +pub const ERROR_GRAPHICS_ADAPTER_WAS_RESET: ::windows_sys::core::HRESULT = -1071243261i32; +pub const ERROR_GRAPHICS_ALLOCATION_BUSY: ::windows_sys::core::HRESULT = -1071243006i32; +pub const ERROR_GRAPHICS_ALLOCATION_CLOSED: ::windows_sys::core::HRESULT = -1071242990i32; +pub const ERROR_GRAPHICS_ALLOCATION_CONTENT_LOST: ::windows_sys::core::HRESULT = -1071242986i32; +pub const ERROR_GRAPHICS_ALLOCATION_INVALID: ::windows_sys::core::HRESULT = -1071243002i32; +pub const ERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION: ::windows_sys::core::HRESULT = -1071242406i32; +pub const ERROR_GRAPHICS_CANNOTCOLORCONVERT: ::windows_sys::core::HRESULT = -1071243256i32; +pub const ERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN: ::windows_sys::core::HRESULT = -1071242429i32; +pub const ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION: ::windows_sys::core::HRESULT = -1071242999i32; +pub const ERROR_GRAPHICS_CANT_LOCK_MEMORY: ::windows_sys::core::HRESULT = -1071243007i32; +pub const ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION: ::windows_sys::core::HRESULT = -1071242991i32; +pub const ERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED: ::windows_sys::core::HRESULT = -1071242190i32; +pub const ERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON: ::windows_sys::core::HRESULT = -1071242187i32; +pub const ERROR_GRAPHICS_CHAINLINKS_NOT_STARTED: ::windows_sys::core::HRESULT = -1071242188i32; +pub const ERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071242239i32; +pub const ERROR_GRAPHICS_CLIENTVIDPN_NOT_SET: ::windows_sys::core::HRESULT = -1071242404i32; +pub const ERROR_GRAPHICS_COPP_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071241983i32; +pub const ERROR_GRAPHICS_DATASET_IS_EMPTY: ::windows_sys::core::HRESULT = 2499403i32; +pub const ERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE: ::windows_sys::core::HRESULT = -1071241768i32; +pub const ERROR_GRAPHICS_DDCCI_INVALID_DATA: ::windows_sys::core::HRESULT = -1071241851i32; +pub const ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM: ::windows_sys::core::HRESULT = -1071241845i32; +pub const ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND: ::windows_sys::core::HRESULT = -1071241847i32; +pub const ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH: ::windows_sys::core::HRESULT = -1071241846i32; +pub const ERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE: ::windows_sys::core::HRESULT = -1071241850i32; +pub const ERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071241852i32; +pub const ERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS: ::windows_sys::core::HRESULT = 1076241468i32; +pub const ERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP: ::windows_sys::core::HRESULT = -1071241758i32; +pub const ERROR_GRAPHICS_DRIVER_MISMATCH: ::windows_sys::core::HRESULT = -1071243255i32; +pub const ERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION: ::windows_sys::core::HRESULT = -1071242459i32; +pub const ERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET: ::windows_sys::core::HRESULT = -1071242465i32; +pub const ERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET: ::windows_sys::core::HRESULT = -1071242467i32; +pub const ERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071242424i32; +pub const ERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE: ::windows_sys::core::HRESULT = -1071242752i32; +pub const ERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST: ::windows_sys::core::HRESULT = -1071241855i32; +pub const ERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA: ::windows_sys::core::HRESULT = -1071241853i32; +pub const ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA: ::windows_sys::core::HRESULT = -1071241854i32; +pub const ERROR_GRAPHICS_I2C_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071241856i32; +pub const ERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT: ::windows_sys::core::HRESULT = -1071242411i32; +pub const ERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE: ::windows_sys::core::HRESULT = -1071242186i32; +pub const ERROR_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN: ::windows_sys::core::HRESULT = -1071243246i32; +pub const ERROR_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED: ::windows_sys::core::HRESULT = -1071243245i32; +pub const ERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER: ::windows_sys::core::HRESULT = -1071243263i32; +pub const ERROR_GRAPHICS_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -1071241753i32; +pub const ERROR_GRAPHICS_INVALID_ACTIVE_REGION: ::windows_sys::core::HRESULT = -1071242485i32; +pub const ERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE: ::windows_sys::core::HRESULT = -1071242988i32; +pub const ERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE: ::windows_sys::core::HRESULT = -1071242989i32; +pub const ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE: ::windows_sys::core::HRESULT = -1071242992i32; +pub const ERROR_GRAPHICS_INVALID_CLIENT_TYPE: ::windows_sys::core::HRESULT = -1071242405i32; +pub const ERROR_GRAPHICS_INVALID_COLORBASIS: ::windows_sys::core::HRESULT = -1071242434i32; +pub const ERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE: ::windows_sys::core::HRESULT = -1071242417i32; +pub const ERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER: ::windows_sys::core::HRESULT = -1071243262i32; +pub const ERROR_GRAPHICS_INVALID_DRIVER_MODEL: ::windows_sys::core::HRESULT = -1071243260i32; +pub const ERROR_GRAPHICS_INVALID_FREQUENCY: ::windows_sys::core::HRESULT = -1071242486i32; +pub const ERROR_GRAPHICS_INVALID_GAMMA_RAMP: ::windows_sys::core::HRESULT = -1071242425i32; +pub const ERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM: ::windows_sys::core::HRESULT = -1071242410i32; +pub const ERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR: ::windows_sys::core::HRESULT = -1071242453i32; +pub const ERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET: ::windows_sys::core::HRESULT = -1071242454i32; +pub const ERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN: ::windows_sys::core::HRESULT = -1071242409i32; +pub const ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE: ::windows_sys::core::HRESULT = -1071242468i32; +pub const ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET: ::windows_sys::core::HRESULT = -1071242469i32; +pub const ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT: ::windows_sys::core::HRESULT = -1071242408i32; +pub const ERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET: ::windows_sys::core::HRESULT = -1071242463i32; +pub const ERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE: ::windows_sys::core::HRESULT = -1071242462i32; +pub const ERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION: ::windows_sys::core::HRESULT = -1071242427i32; +pub const ERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE: ::windows_sys::core::HRESULT = -1071242418i32; +pub const ERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL: ::windows_sys::core::HRESULT = -1071242428i32; +pub const ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE: ::windows_sys::core::HRESULT = -1071241844i32; +pub const ERROR_GRAPHICS_INVALID_PIXELFORMAT: ::windows_sys::core::HRESULT = -1071242435i32; +pub const ERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE: ::windows_sys::core::HRESULT = -1071242433i32; +pub const ERROR_GRAPHICS_INVALID_POINTER: ::windows_sys::core::HRESULT = -1071241756i32; +pub const ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE: ::windows_sys::core::HRESULT = -1071242438i32; +pub const ERROR_GRAPHICS_INVALID_SCANLINE_ORDERING: ::windows_sys::core::HRESULT = -1071242414i32; +pub const ERROR_GRAPHICS_INVALID_STRIDE: ::windows_sys::core::HRESULT = -1071242436i32; +pub const ERROR_GRAPHICS_INVALID_TOTAL_REGION: ::windows_sys::core::HRESULT = -1071242484i32; +pub const ERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET: ::windows_sys::core::HRESULT = -1071242475i32; +pub const ERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET: ::windows_sys::core::HRESULT = -1071242474i32; +pub const ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE: ::windows_sys::core::HRESULT = -1071242492i32; +pub const ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE: ::windows_sys::core::HRESULT = -1071242480i32; +pub const ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET: ::windows_sys::core::HRESULT = -1071242491i32; +pub const ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE: ::windows_sys::core::HRESULT = -1071242479i32; +pub const ERROR_GRAPHICS_INVALID_VIDPN: ::windows_sys::core::HRESULT = -1071242493i32; +pub const ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH: ::windows_sys::core::HRESULT = -1071242471i32; +pub const ERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET: ::windows_sys::core::HRESULT = -1071242488i32; +pub const ERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET: ::windows_sys::core::HRESULT = -1071242487i32; +pub const ERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE: ::windows_sys::core::HRESULT = -1071242449i32; +pub const ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY: ::windows_sys::core::HRESULT = -1071242496i32; +pub const ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON: ::windows_sys::core::HRESULT = -1071242419i32; +pub const ERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE: ::windows_sys::core::HRESULT = -1071242437i32; +pub const ERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED: ::windows_sys::core::HRESULT = -1071242191i32; +pub const ERROR_GRAPHICS_LEADLINK_START_DEFERRED: ::windows_sys::core::HRESULT = 1076241463i32; +pub const ERROR_GRAPHICS_LINK_CONFIGURATION_IN_PROGRESS: ::windows_sys::core::HRESULT = -1071243241i32; +pub const ERROR_GRAPHICS_MAX_NUM_PATHS_REACHED: ::windows_sys::core::HRESULT = -1071242407i32; +pub const ERROR_GRAPHICS_MCA_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -1071241848i32; +pub const ERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING: ::windows_sys::core::HRESULT = -1071241849i32; +pub const ERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED: ::windows_sys::core::HRESULT = -1071241762i32; +pub const ERROR_GRAPHICS_MCA_INVALID_VCP_VERSION: ::windows_sys::core::HRESULT = -1071241767i32; +pub const ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH: ::windows_sys::core::HRESULT = -1071241765i32; +pub const ERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION: ::windows_sys::core::HRESULT = -1071241766i32; +pub const ERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE: ::windows_sys::core::HRESULT = -1071241761i32; +pub const ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION: ::windows_sys::core::HRESULT = -1071241764i32; +pub const ERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071241757i32; +pub const ERROR_GRAPHICS_MODE_ALREADY_IN_MODESET: ::windows_sys::core::HRESULT = -1071242476i32; +pub const ERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE: ::windows_sys::core::HRESULT = -1071242460i32; +pub const ERROR_GRAPHICS_MODE_NOT_IN_MODESET: ::windows_sys::core::HRESULT = -1071242422i32; +pub const ERROR_GRAPHICS_MODE_NOT_PINNED: ::windows_sys::core::HRESULT = 2499335i32; +pub const ERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET: ::windows_sys::core::HRESULT = -1071242451i32; +pub const ERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE: ::windows_sys::core::HRESULT = -1071242450i32; +pub const ERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET: ::windows_sys::core::HRESULT = -1071242452i32; +pub const ERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER: ::windows_sys::core::HRESULT = -1071242444i32; +pub const ERROR_GRAPHICS_MONITOR_NOT_CONNECTED: ::windows_sys::core::HRESULT = -1071242440i32; +pub const ERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS: ::windows_sys::core::HRESULT = -1071241843i32; +pub const ERROR_GRAPHICS_MPO_ALLOCATION_UNPINNED: ::windows_sys::core::HRESULT = -1071243240i32; +pub const ERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071242423i32; +pub const ERROR_GRAPHICS_NOT_A_LINKED_ADAPTER: ::windows_sys::core::HRESULT = -1071242192i32; +pub const ERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER: ::windows_sys::core::HRESULT = -1071243264i32; +pub const ERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER: ::windows_sys::core::HRESULT = -1071242184i32; +pub const ERROR_GRAPHICS_NO_ACTIVE_VIDPN: ::windows_sys::core::HRESULT = -1071242442i32; +pub const ERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS: ::windows_sys::core::HRESULT = -1071242412i32; +pub const ERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET: ::windows_sys::core::HRESULT = -1071242445i32; +pub const ERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME: ::windows_sys::core::HRESULT = -1071241759i32; +pub const ERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT: ::windows_sys::core::HRESULT = -1071242431i32; +pub const ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE: ::windows_sys::core::HRESULT = -1071241755i32; +pub const ERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET: ::windows_sys::core::HRESULT = 2499404i32; +pub const ERROR_GRAPHICS_NO_PREFERRED_MODE: ::windows_sys::core::HRESULT = 2499358i32; +pub const ERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN: ::windows_sys::core::HRESULT = -1071242461i32; +pub const ERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY: ::windows_sys::core::HRESULT = -1071242470i32; +pub const ERROR_GRAPHICS_NO_VIDEO_MEMORY: ::windows_sys::core::HRESULT = -1071243008i32; +pub const ERROR_GRAPHICS_NO_VIDPNMGR: ::windows_sys::core::HRESULT = -1071242443i32; +pub const ERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED: ::windows_sys::core::HRESULT = -1071241760i32; +pub const ERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE: ::windows_sys::core::HRESULT = -1071241960i32; +pub const ERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -1071241954i32; +pub const ERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET: ::windows_sys::core::HRESULT = -1071241962i32; +pub const ERROR_GRAPHICS_OPM_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -1071241973i32; +pub const ERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST: ::windows_sys::core::HRESULT = -1071241951i32; +pub const ERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS: ::windows_sys::core::HRESULT = -1071241981i32; +pub const ERROR_GRAPHICS_OPM_INVALID_HANDLE: ::windows_sys::core::HRESULT = -1071241972i32; +pub const ERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST: ::windows_sys::core::HRESULT = -1071241955i32; +pub const ERROR_GRAPHICS_OPM_INVALID_SRM: ::windows_sys::core::HRESULT = -1071241966i32; +pub const ERROR_GRAPHICS_OPM_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071241984i32; +pub const ERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST: ::windows_sys::core::HRESULT = -1071241979i32; +pub const ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP: ::windows_sys::core::HRESULT = -1071241964i32; +pub const ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA: ::windows_sys::core::HRESULT = -1071241963i32; +pub const ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP: ::windows_sys::core::HRESULT = -1071241965i32; +pub const ERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH: ::windows_sys::core::HRESULT = -1071241961i32; +pub const ERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS: ::windows_sys::core::HRESULT = -1071241957i32; +pub const ERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071241952i32; +pub const ERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED: ::windows_sys::core::HRESULT = -1071241969i32; +pub const ERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED: ::windows_sys::core::HRESULT = -1071241968i32; +pub const ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS: ::windows_sys::core::HRESULT = -1071241956i32; +pub const ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS: ::windows_sys::core::HRESULT = -1071241953i32; +pub const ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS: ::windows_sys::core::HRESULT = -1071241958i32; +pub const ERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL: ::windows_sys::core::HRESULT = -1071241754i32; +pub const ERROR_GRAPHICS_PARTIAL_DATA_POPULATED: ::windows_sys::core::HRESULT = 1076240394i32; +pub const ERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY: ::windows_sys::core::HRESULT = -1071242477i32; +pub const ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED: ::windows_sys::core::HRESULT = 2499409i32; +pub const ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071242426i32; +pub const ERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY: ::windows_sys::core::HRESULT = -1071242457i32; +pub const ERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET: ::windows_sys::core::HRESULT = -1071242478i32; +pub const ERROR_GRAPHICS_POLLING_TOO_FREQUENTLY: ::windows_sys::core::HRESULT = 1076241465i32; +pub const ERROR_GRAPHICS_PRESENT_BUFFER_NOT_BOUND: ::windows_sys::core::HRESULT = -1071243248i32; +pub const ERROR_GRAPHICS_PRESENT_DENIED: ::windows_sys::core::HRESULT = -1071243257i32; +pub const ERROR_GRAPHICS_PRESENT_INVALID_WINDOW: ::windows_sys::core::HRESULT = -1071243249i32; +pub const ERROR_GRAPHICS_PRESENT_MODE_CHANGED: ::windows_sys::core::HRESULT = -1071243259i32; +pub const ERROR_GRAPHICS_PRESENT_OCCLUDED: ::windows_sys::core::HRESULT = -1071243258i32; +pub const ERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED: ::windows_sys::core::HRESULT = -1071243253i32; +pub const ERROR_GRAPHICS_PRESENT_UNOCCLUDED: ::windows_sys::core::HRESULT = -1071243252i32; +pub const ERROR_GRAPHICS_PVP_HFS_FAILED: ::windows_sys::core::HRESULT = -1071241967i32; +pub const ERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH: ::windows_sys::core::HRESULT = -1071241970i32; +pub const ERROR_GRAPHICS_RESOURCES_NOT_RELATED: ::windows_sys::core::HRESULT = -1071242448i32; +pub const ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS: ::windows_sys::core::HRESULT = -1071249944i32; +pub const ERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION: ::windows_sys::core::HRESULT = 1076240897i32; +pub const ERROR_GRAPHICS_SOURCE_ALREADY_IN_SET: ::windows_sys::core::HRESULT = -1071242473i32; +pub const ERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE: ::windows_sys::core::HRESULT = -1071242447i32; +pub const ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY: ::windows_sys::core::HRESULT = -1071242439i32; +pub const ERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED: ::windows_sys::core::HRESULT = -1071242240i32; +pub const ERROR_GRAPHICS_STALE_MODESET: ::windows_sys::core::HRESULT = -1071242464i32; +pub const ERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY: ::windows_sys::core::HRESULT = -1071242441i32; +pub const ERROR_GRAPHICS_START_DEFERRED: ::windows_sys::core::HRESULT = 1076241466i32; +pub const ERROR_GRAPHICS_TARGET_ALREADY_IN_SET: ::windows_sys::core::HRESULT = -1071242472i32; +pub const ERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE: ::windows_sys::core::HRESULT = -1071242446i32; +pub const ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY: ::windows_sys::core::HRESULT = -1071242432i32; +pub const ERROR_GRAPHICS_TOO_MANY_REFERENCES: ::windows_sys::core::HRESULT = -1071243005i32; +pub const ERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED: ::windows_sys::core::HRESULT = -1071242413i32; +pub const ERROR_GRAPHICS_TRY_AGAIN_LATER: ::windows_sys::core::HRESULT = -1071243004i32; +pub const ERROR_GRAPHICS_TRY_AGAIN_NOW: ::windows_sys::core::HRESULT = -1071243003i32; +pub const ERROR_GRAPHICS_UAB_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071241982i32; +pub const ERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -1071242416i32; +pub const ERROR_GRAPHICS_UNKNOWN_CHILD_STATUS: ::windows_sys::core::HRESULT = 1076241455i32; +pub const ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE: ::windows_sys::core::HRESULT = -1071243001i32; +pub const ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED: ::windows_sys::core::HRESULT = -1071243000i32; +pub const ERROR_GRAPHICS_VAIL_FAILED_TO_SEND_COMPOSITION_WINDOW_DPI_MESSAGE: ::windows_sys::core::HRESULT = -1071243242i32; +pub const ERROR_GRAPHICS_VAIL_FAILED_TO_SEND_CREATE_SUPERWETINK_MESSAGE: ::windows_sys::core::HRESULT = -1071243244i32; +pub const ERROR_GRAPHICS_VAIL_FAILED_TO_SEND_DESTROY_SUPERWETINK_MESSAGE: ::windows_sys::core::HRESULT = -1071243243i32; +pub const ERROR_GRAPHICS_VAIL_STATE_CHANGED: ::windows_sys::core::HRESULT = -1071243247i32; +pub const ERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES: ::windows_sys::core::HRESULT = -1071242458i32; +pub const ERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071242490i32; +pub const ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE: ::windows_sys::core::HRESULT = -1071242430i32; +pub const ERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071242494i32; +pub const ERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1071242495i32; +pub const ERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1071243251i32; +pub const ERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED: ::windows_sys::core::HRESULT = -1071243250i32; +pub const ERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE: ::windows_sys::core::HRESULT = -1071242987i32; +pub const ERROR_GROUPSET_CANT_PROVIDE: WIN32_ERROR = 5993u32; +pub const ERROR_GROUPSET_NOT_AVAILABLE: WIN32_ERROR = 5991u32; +pub const ERROR_GROUPSET_NOT_FOUND: WIN32_ERROR = 5992u32; +pub const ERROR_GROUP_EXISTS: WIN32_ERROR = 1318u32; +pub const ERROR_GROUP_NOT_AVAILABLE: WIN32_ERROR = 5012u32; +pub const ERROR_GROUP_NOT_FOUND: WIN32_ERROR = 5013u32; +pub const ERROR_GROUP_NOT_ONLINE: WIN32_ERROR = 5014u32; +pub const ERROR_GUID_SUBSTITUTION_MADE: WIN32_ERROR = 680u32; +pub const ERROR_HANDLES_CLOSED: WIN32_ERROR = 676u32; +pub const ERROR_HANDLE_DISK_FULL: WIN32_ERROR = 39u32; +pub const ERROR_HANDLE_EOF: WIN32_ERROR = 38u32; +pub const ERROR_HANDLE_NO_LONGER_VALID: WIN32_ERROR = 6815u32; +pub const ERROR_HANDLE_REVOKED: WIN32_ERROR = 811u32; +pub const ERROR_HASH_NOT_PRESENT: WIN32_ERROR = 15301u32; +pub const ERROR_HASH_NOT_SUPPORTED: WIN32_ERROR = 15300u32; +pub const ERROR_HAS_SYSTEM_CRITICAL_FILES: WIN32_ERROR = 488u32; +pub const ERROR_HEURISTIC_DAMAGE_POSSIBLE: WIN32_ERROR = 6731u32; +pub const ERROR_HIBERNATED: WIN32_ERROR = 726u32; +pub const ERROR_HIBERNATION_FAILURE: WIN32_ERROR = 656u32; +pub const ERROR_HOOK_NEEDS_HMOD: WIN32_ERROR = 1428u32; +pub const ERROR_HOOK_NOT_INSTALLED: WIN32_ERROR = 1431u32; +pub const ERROR_HOOK_TYPE_NOT_ALLOWED: WIN32_ERROR = 1458u32; +pub const ERROR_HOST_DOWN: WIN32_ERROR = 1256u32; +pub const ERROR_HOST_NODE_NOT_AVAILABLE: WIN32_ERROR = 5005u32; +pub const ERROR_HOST_NODE_NOT_GROUP_OWNER: WIN32_ERROR = 5016u32; +pub const ERROR_HOST_NODE_NOT_RESOURCE_OWNER: WIN32_ERROR = 5015u32; +pub const ERROR_HOST_UNREACHABLE: WIN32_ERROR = 1232u32; +pub const ERROR_HOTKEY_ALREADY_REGISTERED: WIN32_ERROR = 1409u32; +pub const ERROR_HOTKEY_NOT_REGISTERED: WIN32_ERROR = 1419u32; +pub const ERROR_HUNG_DISPLAY_DRIVER_THREAD: ::windows_sys::core::HRESULT = -2144993279i32; +pub const ERROR_HV_ACCESS_DENIED: WIN32_ERROR = 3224698886u32; +pub const ERROR_HV_ACKNOWLEDGED: WIN32_ERROR = 3224698902u32; +pub const ERROR_HV_CPUID_FEATURE_VALIDATION: WIN32_ERROR = 3224698940u32; +pub const ERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION: WIN32_ERROR = 3224698941u32; +pub const ERROR_HV_DEVICE_NOT_IN_DOMAIN: WIN32_ERROR = 3224698998u32; +pub const ERROR_HV_EVENT_BUFFER_ALREADY_FREED: WIN32_ERROR = 3224698996u32; +pub const ERROR_HV_FEATURE_UNAVAILABLE: WIN32_ERROR = 3224698910u32; +pub const ERROR_HV_INACTIVE: WIN32_ERROR = 3224698908u32; +pub const ERROR_HV_INSUFFICIENT_BUFFER: WIN32_ERROR = 3224698931u32; +pub const ERROR_HV_INSUFFICIENT_BUFFERS: WIN32_ERROR = 3224698899u32; +pub const ERROR_HV_INSUFFICIENT_CONTIGUOUS_MEMORY: WIN32_ERROR = 3224698997u32; +pub const ERROR_HV_INSUFFICIENT_CONTIGUOUS_MEMORY_MIRRORING: WIN32_ERROR = 3224699010u32; +pub const ERROR_HV_INSUFFICIENT_CONTIGUOUS_ROOT_MEMORY: WIN32_ERROR = 3224699011u32; +pub const ERROR_HV_INSUFFICIENT_CONTIGUOUS_ROOT_MEMORY_MIRRORING: WIN32_ERROR = 3224699013u32; +pub const ERROR_HV_INSUFFICIENT_DEVICE_DOMAINS: WIN32_ERROR = 3224698936u32; +pub const ERROR_HV_INSUFFICIENT_MEMORY: WIN32_ERROR = 3224698891u32; +pub const ERROR_HV_INSUFFICIENT_MEMORY_MIRRORING: WIN32_ERROR = 3224699009u32; +pub const ERROR_HV_INSUFFICIENT_ROOT_MEMORY: WIN32_ERROR = 3224698995u32; +pub const ERROR_HV_INSUFFICIENT_ROOT_MEMORY_MIRRORING: WIN32_ERROR = 3224699012u32; +pub const ERROR_HV_INVALID_ALIGNMENT: WIN32_ERROR = 3224698884u32; +pub const ERROR_HV_INVALID_CONNECTION_ID: WIN32_ERROR = 3224698898u32; +pub const ERROR_HV_INVALID_CPU_GROUP_ID: WIN32_ERROR = 3224698991u32; +pub const ERROR_HV_INVALID_CPU_GROUP_STATE: WIN32_ERROR = 3224698992u32; +pub const ERROR_HV_INVALID_DEVICE_ID: WIN32_ERROR = 3224698967u32; +pub const ERROR_HV_INVALID_DEVICE_STATE: WIN32_ERROR = 3224698968u32; +pub const ERROR_HV_INVALID_HYPERCALL_CODE: WIN32_ERROR = 3224698882u32; +pub const ERROR_HV_INVALID_HYPERCALL_INPUT: WIN32_ERROR = 3224698883u32; +pub const ERROR_HV_INVALID_LP_INDEX: WIN32_ERROR = 3224698945u32; +pub const ERROR_HV_INVALID_PARAMETER: WIN32_ERROR = 3224698885u32; +pub const ERROR_HV_INVALID_PARTITION_ID: WIN32_ERROR = 3224698893u32; +pub const ERROR_HV_INVALID_PARTITION_STATE: WIN32_ERROR = 3224698887u32; +pub const ERROR_HV_INVALID_PORT_ID: WIN32_ERROR = 3224698897u32; +pub const ERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO: WIN32_ERROR = 3224698906u32; +pub const ERROR_HV_INVALID_REGISTER_VALUE: WIN32_ERROR = 3224698960u32; +pub const ERROR_HV_INVALID_SAVE_RESTORE_STATE: WIN32_ERROR = 3224698903u32; +pub const ERROR_HV_INVALID_SYNIC_STATE: WIN32_ERROR = 3224698904u32; +pub const ERROR_HV_INVALID_VP_INDEX: WIN32_ERROR = 3224698894u32; +pub const ERROR_HV_INVALID_VP_STATE: WIN32_ERROR = 3224698901u32; +pub const ERROR_HV_INVALID_VTL_STATE: WIN32_ERROR = 3224698961u32; +pub const ERROR_HV_MSR_ACCESS_FAILED: WIN32_ERROR = 3224699008u32; +pub const ERROR_HV_NESTED_VM_EXIT: WIN32_ERROR = 3224698999u32; +pub const ERROR_HV_NOT_ACKNOWLEDGED: WIN32_ERROR = 3224698900u32; +pub const ERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE: WIN32_ERROR = 3224698994u32; +pub const ERROR_HV_NOT_PRESENT: WIN32_ERROR = 3224702976u32; +pub const ERROR_HV_NO_DATA: WIN32_ERROR = 3224698907u32; +pub const ERROR_HV_NO_RESOURCES: WIN32_ERROR = 3224698909u32; +pub const ERROR_HV_NX_NOT_DETECTED: WIN32_ERROR = 3224698965u32; +pub const ERROR_HV_OBJECT_IN_USE: WIN32_ERROR = 3224698905u32; +pub const ERROR_HV_OPERATION_DENIED: WIN32_ERROR = 3224698888u32; +pub const ERROR_HV_OPERATION_FAILED: WIN32_ERROR = 3224698993u32; +pub const ERROR_HV_PAGE_REQUEST_INVALID: WIN32_ERROR = 3224698976u32; +pub const ERROR_HV_PARTITION_TOO_DEEP: WIN32_ERROR = 3224698892u32; +pub const ERROR_HV_PENDING_PAGE_REQUESTS: WIN32_ERROR = 3473497u32; +pub const ERROR_HV_PROCESSOR_STARTUP_TIMEOUT: WIN32_ERROR = 3224698942u32; +pub const ERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE: WIN32_ERROR = 3224698890u32; +pub const ERROR_HV_SMX_ENABLED: WIN32_ERROR = 3224698943u32; +pub const ERROR_HV_UNKNOWN_PROPERTY: WIN32_ERROR = 3224698889u32; +pub const ERROR_HWNDS_HAVE_DIFF_PARENT: WIN32_ERROR = 1441u32; +pub const ERROR_ICM_NOT_ENABLED: WIN32_ERROR = 2018u32; +pub const ERROR_IDLE_DISCONNECTED: u32 = 926u32; +pub const ERROR_IEPORT_FULL: WIN32_ERROR = 4341u32; +pub const ERROR_ILLEGAL_CHARACTER: WIN32_ERROR = 582u32; +pub const ERROR_ILLEGAL_DLL_RELOCATION: WIN32_ERROR = 623u32; +pub const ERROR_ILLEGAL_ELEMENT_ADDRESS: WIN32_ERROR = 1162u32; +pub const ERROR_ILLEGAL_FLOAT_CONTEXT: WIN32_ERROR = 579u32; +pub const ERROR_ILL_FORMED_PASSWORD: WIN32_ERROR = 1324u32; +pub const ERROR_IMAGE_AT_DIFFERENT_BASE: WIN32_ERROR = 807u32; +pub const ERROR_IMAGE_MACHINE_TYPE_MISMATCH: WIN32_ERROR = 706u32; +pub const ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE: WIN32_ERROR = 720u32; +pub const ERROR_IMAGE_NOT_AT_BASE: WIN32_ERROR = 700u32; +pub const ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT: WIN32_ERROR = 308u32; +pub const ERROR_IMPLEMENTATION_LIMIT: WIN32_ERROR = 1292u32; +pub const ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED: WIN32_ERROR = 6725u32; +pub const ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE: WIN32_ERROR = 1297u32; +pub const ERROR_INCOMPATIBLE_SERVICE_SID_TYPE: WIN32_ERROR = 1290u32; +pub const ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING: WIN32_ERROR = 304u32; +pub const ERROR_INCORRECT_ACCOUNT_TYPE: WIN32_ERROR = 8646u32; +pub const ERROR_INCORRECT_ADDRESS: WIN32_ERROR = 1241u32; +pub const ERROR_INCORRECT_SIZE: WIN32_ERROR = 1462u32; +pub const ERROR_INC_BACKUP: WIN32_ERROR = 4003u32; +pub const ERROR_INDEX_ABSENT: WIN32_ERROR = 1611u32; +pub const ERROR_INDEX_OUT_OF_BOUNDS: WIN32_ERROR = 474u32; +pub const ERROR_INDIGENOUS_TYPE: WIN32_ERROR = 4338u32; +pub const ERROR_INDOUBT_TRANSACTIONS_EXIST: WIN32_ERROR = 6827u32; +pub const ERROR_INFLOOP_IN_RELOC_CHAIN: WIN32_ERROR = 202u32; +pub const ERROR_INF_IN_USE_BY_DEVICES: WIN32_ERROR = 3758096957u32; +pub const ERROR_INSTALL_ALREADY_RUNNING: WIN32_ERROR = 1618u32; +pub const ERROR_INSTALL_CANCEL: WIN32_ERROR = 15608u32; +pub const ERROR_INSTALL_DEREGISTRATION_FAILURE: WIN32_ERROR = 15607u32; +pub const ERROR_INSTALL_FAILED: WIN32_ERROR = 15609u32; +pub const ERROR_INSTALL_FAILURE: WIN32_ERROR = 1603u32; +pub const ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING: WIN32_ERROR = 15626u32; +pub const ERROR_INSTALL_FULLTRUST_HOSTRUNTIME_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY: WIN32_ERROR = 15663u32; +pub const ERROR_INSTALL_INVALID_PACKAGE: WIN32_ERROR = 15602u32; +pub const ERROR_INSTALL_INVALID_RELATED_SET_UPDATE: WIN32_ERROR = 15639u32; +pub const ERROR_INSTALL_LANGUAGE_UNSUPPORTED: WIN32_ERROR = 1623u32; +pub const ERROR_INSTALL_LOG_FAILURE: WIN32_ERROR = 1622u32; +pub const ERROR_INSTALL_NETWORK_FAILURE: WIN32_ERROR = 15605u32; +pub const ERROR_INSTALL_NOTUSED: WIN32_ERROR = 1634u32; +pub const ERROR_INSTALL_OPEN_PACKAGE_FAILED: WIN32_ERROR = 15600u32; +pub const ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE: WIN32_ERROR = 15637u32; +pub const ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE: WIN32_ERROR = 15634u32; +pub const ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY: WIN32_ERROR = 15640u32; +pub const ERROR_INSTALL_OUT_OF_DISK_SPACE: WIN32_ERROR = 15604u32; +pub const ERROR_INSTALL_PACKAGE_DOWNGRADE: WIN32_ERROR = 15622u32; +pub const ERROR_INSTALL_PACKAGE_INVALID: WIN32_ERROR = 1620u32; +pub const ERROR_INSTALL_PACKAGE_NOT_FOUND: WIN32_ERROR = 15601u32; +pub const ERROR_INSTALL_PACKAGE_OPEN_FAILED: WIN32_ERROR = 1619u32; +pub const ERROR_INSTALL_PACKAGE_REJECTED: WIN32_ERROR = 1625u32; +pub const ERROR_INSTALL_PACKAGE_VERSION: WIN32_ERROR = 1613u32; +pub const ERROR_INSTALL_PLATFORM_UNSUPPORTED: WIN32_ERROR = 1633u32; +pub const ERROR_INSTALL_POLICY_FAILURE: WIN32_ERROR = 15615u32; +pub const ERROR_INSTALL_PREREQUISITE_FAILED: WIN32_ERROR = 15613u32; +pub const ERROR_INSTALL_REGISTRATION_FAILURE: WIN32_ERROR = 15606u32; +pub const ERROR_INSTALL_REJECTED: WIN32_ERROR = 1654u32; +pub const ERROR_INSTALL_REMOTE_DISALLOWED: WIN32_ERROR = 1640u32; +pub const ERROR_INSTALL_REMOTE_PROHIBITED: WIN32_ERROR = 1645u32; +pub const ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED: WIN32_ERROR = 15603u32; +pub const ERROR_INSTALL_RESOLVE_HOSTRUNTIME_DEPENDENCY_FAILED: WIN32_ERROR = 15665u32; +pub const ERROR_INSTALL_SERVICE_FAILURE: WIN32_ERROR = 1601u32; +pub const ERROR_INSTALL_SERVICE_SAFEBOOT: WIN32_ERROR = 1652u32; +pub const ERROR_INSTALL_SOURCE_ABSENT: WIN32_ERROR = 1612u32; +pub const ERROR_INSTALL_SUSPEND: WIN32_ERROR = 1604u32; +pub const ERROR_INSTALL_TEMP_UNWRITABLE: WIN32_ERROR = 1632u32; +pub const ERROR_INSTALL_TRANSFORM_FAILURE: WIN32_ERROR = 1624u32; +pub const ERROR_INSTALL_TRANSFORM_REJECTED: WIN32_ERROR = 1644u32; +pub const ERROR_INSTALL_UI_FAILURE: WIN32_ERROR = 1621u32; +pub const ERROR_INSTALL_USEREXIT: WIN32_ERROR = 1602u32; +pub const ERROR_INSTALL_VOLUME_CORRUPT: WIN32_ERROR = 15630u32; +pub const ERROR_INSTALL_VOLUME_NOT_EMPTY: WIN32_ERROR = 15628u32; +pub const ERROR_INSTALL_VOLUME_OFFLINE: WIN32_ERROR = 15629u32; +pub const ERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE: WIN32_ERROR = 15632u32; +pub const ERROR_INSTRUCTION_MISALIGNMENT: WIN32_ERROR = 549u32; +pub const ERROR_INSUFFICIENT_BUFFER: WIN32_ERROR = 122u32; +pub const ERROR_INSUFFICIENT_LOGON_INFO: WIN32_ERROR = 608u32; +pub const ERROR_INSUFFICIENT_POWER: WIN32_ERROR = 639u32; +pub const ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE: WIN32_ERROR = 781u32; +pub const ERROR_INSUFFICIENT_VIRTUAL_ADDR_RESOURCES: WIN32_ERROR = 473u32; +pub const ERROR_INTERFACE_ALREADY_EXISTS: u32 = 904u32; +pub const ERROR_INTERFACE_CONFIGURATION: u32 = 912u32; +pub const ERROR_INTERFACE_CONNECTED: u32 = 908u32; +pub const ERROR_INTERFACE_DEVICE_ACTIVE: WIN32_ERROR = 3758096923u32; +pub const ERROR_INTERFACE_DEVICE_REMOVED: WIN32_ERROR = 3758096924u32; +pub const ERROR_INTERFACE_DISABLED: u32 = 916u32; +pub const ERROR_INTERFACE_DISCONNECTED: u32 = 929u32; +pub const ERROR_INTERFACE_HAS_NO_DEVICES: u32 = 925u32; +pub const ERROR_INTERFACE_NOT_CONNECTED: u32 = 906u32; +pub const ERROR_INTERFACE_UNREACHABLE: u32 = 927u32; +pub const ERROR_INTERMIXED_KERNEL_EA_OPERATION: WIN32_ERROR = 324u32; +pub const ERROR_INTERNAL_DB_CORRUPTION: WIN32_ERROR = 1358u32; +pub const ERROR_INTERNAL_DB_ERROR: WIN32_ERROR = 1383u32; +pub const ERROR_INTERNAL_ERROR: WIN32_ERROR = 1359u32; +pub const ERROR_INTERRUPT_STILL_CONNECTED: WIN32_ERROR = 764u32; +pub const ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED: WIN32_ERROR = 763u32; +pub const ERROR_INVALID_ACCEL_HANDLE: WIN32_ERROR = 1403u32; +pub const ERROR_INVALID_ACCESS: WIN32_ERROR = 12u32; +pub const ERROR_INVALID_ACCOUNT_NAME: WIN32_ERROR = 1315u32; +pub const ERROR_INVALID_ACE_CONDITION: WIN32_ERROR = 805u32; +pub const ERROR_INVALID_ACL: WIN32_ERROR = 1336u32; +pub const ERROR_INVALID_ADDRESS: WIN32_ERROR = 487u32; +pub const ERROR_INVALID_ATTRIBUTE_LENGTH: u32 = 953u32; +pub const ERROR_INVALID_AT_INTERRUPT_TIME: WIN32_ERROR = 104u32; +pub const ERROR_INVALID_BLOCK: WIN32_ERROR = 9u32; +pub const ERROR_INVALID_BLOCK_LENGTH: WIN32_ERROR = 1106u32; +pub const ERROR_INVALID_CAP: WIN32_ERROR = 320u32; +pub const ERROR_INVALID_CATEGORY: WIN32_ERROR = 117u32; +pub const ERROR_INVALID_CLASS: WIN32_ERROR = 3758096902u32; +pub const ERROR_INVALID_CLASS_INSTALLER: WIN32_ERROR = 3758096909u32; +pub const ERROR_INVALID_CLEANER: WIN32_ERROR = 4310u32; +pub const ERROR_INVALID_CLUSTER_IPV6_ADDRESS: WIN32_ERROR = 5911u32; +pub const ERROR_INVALID_CMM: WIN32_ERROR = 2010u32; +pub const ERROR_INVALID_COINSTALLER: WIN32_ERROR = 3758096935u32; +pub const ERROR_INVALID_COLORINDEX: WIN32_ERROR = 2022u32; +pub const ERROR_INVALID_COLORSPACE: WIN32_ERROR = 2017u32; +pub const ERROR_INVALID_COMBOBOX_MESSAGE: WIN32_ERROR = 1422u32; +pub const ERROR_INVALID_COMMAND_LINE: WIN32_ERROR = 1639u32; +pub const ERROR_INVALID_COMPUTERNAME: WIN32_ERROR = 1210u32; +pub const ERROR_INVALID_CRUNTIME_PARAMETER: WIN32_ERROR = 1288u32; +pub const ERROR_INVALID_CURSOR_HANDLE: WIN32_ERROR = 1402u32; +pub const ERROR_INVALID_DATA: WIN32_ERROR = 13u32; +pub const ERROR_INVALID_DATATYPE: WIN32_ERROR = 1804u32; +pub const ERROR_INVALID_DEVICE_OBJECT_PARAMETER: WIN32_ERROR = 650u32; +pub const ERROR_INVALID_DEVINST_NAME: WIN32_ERROR = 3758096901u32; +pub const ERROR_INVALID_DLL: WIN32_ERROR = 1154u32; +pub const ERROR_INVALID_DOMAINNAME: WIN32_ERROR = 1212u32; +pub const ERROR_INVALID_DOMAIN_ROLE: WIN32_ERROR = 1354u32; +pub const ERROR_INVALID_DOMAIN_STATE: WIN32_ERROR = 1353u32; +pub const ERROR_INVALID_DRIVE: WIN32_ERROR = 15u32; +pub const ERROR_INVALID_DRIVE_OBJECT: WIN32_ERROR = 4321u32; +pub const ERROR_INVALID_DWP_HANDLE: WIN32_ERROR = 1405u32; +pub const ERROR_INVALID_EA_HANDLE: WIN32_ERROR = 278u32; +pub const ERROR_INVALID_EA_NAME: WIN32_ERROR = 254u32; +pub const ERROR_INVALID_EDIT_HEIGHT: WIN32_ERROR = 1424u32; +pub const ERROR_INVALID_ENVIRONMENT: WIN32_ERROR = 1805u32; +pub const ERROR_INVALID_EVENTNAME: WIN32_ERROR = 1211u32; +pub const ERROR_INVALID_EVENT_COUNT: WIN32_ERROR = 151u32; +pub const ERROR_INVALID_EXCEPTION_HANDLER: WIN32_ERROR = 310u32; +pub const ERROR_INVALID_EXE_SIGNATURE: WIN32_ERROR = 191u32; +pub const ERROR_INVALID_FIELD: WIN32_ERROR = 1616u32; +pub const ERROR_INVALID_FIELD_IN_PARAMETER_LIST: WIN32_ERROR = 328u32; +pub const ERROR_INVALID_FILTER_DRIVER: WIN32_ERROR = 3758096940u32; +pub const ERROR_INVALID_FILTER_PROC: WIN32_ERROR = 1427u32; +pub const ERROR_INVALID_FLAGS: WIN32_ERROR = 1004u32; +pub const ERROR_INVALID_FLAG_NUMBER: WIN32_ERROR = 186u32; +pub const ERROR_INVALID_FORM_NAME: WIN32_ERROR = 1902u32; +pub const ERROR_INVALID_FORM_SIZE: WIN32_ERROR = 1903u32; +pub const ERROR_INVALID_FUNCTION: WIN32_ERROR = 1u32; +pub const ERROR_INVALID_GROUPNAME: WIN32_ERROR = 1209u32; +pub const ERROR_INVALID_GROUP_ATTRIBUTES: WIN32_ERROR = 1345u32; +pub const ERROR_INVALID_GW_COMMAND: WIN32_ERROR = 1443u32; +pub const ERROR_INVALID_HANDLE: WIN32_ERROR = 6u32; +pub const ERROR_INVALID_HANDLE_STATE: WIN32_ERROR = 1609u32; +pub const ERROR_INVALID_HOOK_FILTER: WIN32_ERROR = 1426u32; +pub const ERROR_INVALID_HOOK_HANDLE: WIN32_ERROR = 1404u32; +pub const ERROR_INVALID_HWPROFILE: WIN32_ERROR = 3758096912u32; +pub const ERROR_INVALID_HW_PROFILE: WIN32_ERROR = 619u32; +pub const ERROR_INVALID_ICON_HANDLE: WIN32_ERROR = 1414u32; +pub const ERROR_INVALID_ID_AUTHORITY: WIN32_ERROR = 1343u32; +pub const ERROR_INVALID_IMAGE_HASH: WIN32_ERROR = 577u32; +pub const ERROR_INVALID_IMPORT_OF_NON_DLL: WIN32_ERROR = 1276u32; +pub const ERROR_INVALID_INDEX: WIN32_ERROR = 1413u32; +pub const ERROR_INVALID_INF_LOGCONFIG: WIN32_ERROR = 3758096938u32; +pub const ERROR_INVALID_KERNEL_INFO_VERSION: WIN32_ERROR = 340u32; +pub const ERROR_INVALID_KEYBOARD_HANDLE: WIN32_ERROR = 1457u32; +pub const ERROR_INVALID_LABEL: WIN32_ERROR = 1299u32; +pub const ERROR_INVALID_LB_MESSAGE: WIN32_ERROR = 1432u32; +pub const ERROR_INVALID_LDT_DESCRIPTOR: WIN32_ERROR = 564u32; +pub const ERROR_INVALID_LDT_OFFSET: WIN32_ERROR = 563u32; +pub const ERROR_INVALID_LDT_SIZE: WIN32_ERROR = 561u32; +pub const ERROR_INVALID_LEVEL: WIN32_ERROR = 124u32; +pub const ERROR_INVALID_LIBRARY: WIN32_ERROR = 4301u32; +pub const ERROR_INVALID_LIST_FORMAT: WIN32_ERROR = 153u32; +pub const ERROR_INVALID_LOCK_RANGE: WIN32_ERROR = 307u32; +pub const ERROR_INVALID_LOGON_HOURS: WIN32_ERROR = 1328u32; +pub const ERROR_INVALID_LOGON_TYPE: WIN32_ERROR = 1367u32; +pub const ERROR_INVALID_MACHINENAME: WIN32_ERROR = 3758096928u32; +pub const ERROR_INVALID_MEDIA: WIN32_ERROR = 4300u32; +pub const ERROR_INVALID_MEDIA_POOL: WIN32_ERROR = 4302u32; +pub const ERROR_INVALID_MEMBER: WIN32_ERROR = 1388u32; +pub const ERROR_INVALID_MENU_HANDLE: WIN32_ERROR = 1401u32; +pub const ERROR_INVALID_MESSAGE: WIN32_ERROR = 1002u32; +pub const ERROR_INVALID_MESSAGEDEST: WIN32_ERROR = 1218u32; +pub const ERROR_INVALID_MESSAGENAME: WIN32_ERROR = 1217u32; +pub const ERROR_INVALID_MINALLOCSIZE: WIN32_ERROR = 195u32; +pub const ERROR_INVALID_MODULETYPE: WIN32_ERROR = 190u32; +pub const ERROR_INVALID_MONITOR_HANDLE: WIN32_ERROR = 1461u32; +pub const ERROR_INVALID_MSGBOX_STYLE: WIN32_ERROR = 1438u32; +pub const ERROR_INVALID_NAME: WIN32_ERROR = 123u32; +pub const ERROR_INVALID_NETNAME: WIN32_ERROR = 1214u32; +pub const ERROR_INVALID_OPERATION: WIN32_ERROR = 4317u32; +pub const ERROR_INVALID_OPERATION_ON_QUORUM: WIN32_ERROR = 5068u32; +pub const ERROR_INVALID_OPLOCK_PROTOCOL: WIN32_ERROR = 301u32; +pub const ERROR_INVALID_ORDINAL: WIN32_ERROR = 182u32; +pub const ERROR_INVALID_OWNER: WIN32_ERROR = 1307u32; +pub const ERROR_INVALID_PACKAGE_SID_LENGTH: WIN32_ERROR = 4253u32; +pub const ERROR_INVALID_PACKET: u32 = 954u32; +pub const ERROR_INVALID_PACKET_LENGTH_OR_ID: u32 = 952u32; +pub const ERROR_INVALID_PARAMETER: WIN32_ERROR = 87u32; +pub const ERROR_INVALID_PASSWORD: WIN32_ERROR = 86u32; +pub const ERROR_INVALID_PASSWORDNAME: WIN32_ERROR = 1216u32; +pub const ERROR_INVALID_PATCH_XML: WIN32_ERROR = 1650u32; +pub const ERROR_INVALID_PEP_INFO_VERSION: WIN32_ERROR = 341u32; +pub const ERROR_INVALID_PIXEL_FORMAT: WIN32_ERROR = 2000u32; +pub const ERROR_INVALID_PLUGPLAY_DEVICE_PATH: WIN32_ERROR = 620u32; +pub const ERROR_INVALID_PORT_ATTRIBUTES: WIN32_ERROR = 545u32; +pub const ERROR_INVALID_PRIMARY_GROUP: WIN32_ERROR = 1308u32; +pub const ERROR_INVALID_PRINTER_COMMAND: WIN32_ERROR = 1803u32; +pub const ERROR_INVALID_PRINTER_DRIVER_MANIFEST: WIN32_ERROR = 3021u32; +pub const ERROR_INVALID_PRINTER_NAME: WIN32_ERROR = 1801u32; +pub const ERROR_INVALID_PRINTER_STATE: WIN32_ERROR = 1906u32; +pub const ERROR_INVALID_PRINT_MONITOR: WIN32_ERROR = 3007u32; +pub const ERROR_INVALID_PRIORITY: WIN32_ERROR = 1800u32; +pub const ERROR_INVALID_PROFILE: WIN32_ERROR = 2011u32; +pub const ERROR_INVALID_PROPPAGE_PROVIDER: WIN32_ERROR = 3758096932u32; +pub const ERROR_INVALID_QUOTA_LOWER: WIN32_ERROR = 547u32; +pub const ERROR_INVALID_RADIUS_RESPONSE: u32 = 939u32; +pub const ERROR_INVALID_REFERENCE_STRING: WIN32_ERROR = 3758096927u32; +pub const ERROR_INVALID_REG_PROPERTY: WIN32_ERROR = 3758096905u32; +pub const ERROR_INVALID_REPARSE_DATA: WIN32_ERROR = 4392u32; +pub const ERROR_INVALID_RUNLEVEL_SETTING: WIN32_ERROR = 15401u32; +pub const ERROR_INVALID_SCROLLBAR_RANGE: WIN32_ERROR = 1448u32; +pub const ERROR_INVALID_SECURITY_DESCR: WIN32_ERROR = 1338u32; +pub const ERROR_INVALID_SEGDPL: WIN32_ERROR = 198u32; +pub const ERROR_INVALID_SEGMENT_NUMBER: WIN32_ERROR = 180u32; +pub const ERROR_INVALID_SEPARATOR_FILE: WIN32_ERROR = 1799u32; +pub const ERROR_INVALID_SERVER_STATE: WIN32_ERROR = 1352u32; +pub const ERROR_INVALID_SERVICENAME: WIN32_ERROR = 1213u32; +pub const ERROR_INVALID_SERVICE_ACCOUNT: WIN32_ERROR = 1057u32; +pub const ERROR_INVALID_SERVICE_CONTROL: WIN32_ERROR = 1052u32; +pub const ERROR_INVALID_SERVICE_LOCK: WIN32_ERROR = 1071u32; +pub const ERROR_INVALID_SHARENAME: WIN32_ERROR = 1215u32; +pub const ERROR_INVALID_SHOWWIN_COMMAND: WIN32_ERROR = 1449u32; +pub const ERROR_INVALID_SID: WIN32_ERROR = 1337u32; +pub const ERROR_INVALID_SIGNAL_NUMBER: WIN32_ERROR = 209u32; +pub const ERROR_INVALID_SIGNATURE: u32 = 950u32; +pub const ERROR_INVALID_SIGNATURE_LENGTH: u32 = 949u32; +pub const ERROR_INVALID_SPI_VALUE: WIN32_ERROR = 1439u32; +pub const ERROR_INVALID_STACKSEG: WIN32_ERROR = 189u32; +pub const ERROR_INVALID_STAGED_SIGNATURE: WIN32_ERROR = 15620u32; +pub const ERROR_INVALID_STARTING_CODESEG: WIN32_ERROR = 188u32; +pub const ERROR_INVALID_STATE: WIN32_ERROR = 5023u32; +pub const ERROR_INVALID_SUB_AUTHORITY: WIN32_ERROR = 1335u32; +pub const ERROR_INVALID_TABLE: WIN32_ERROR = 1628u32; +pub const ERROR_INVALID_TARGET: WIN32_ERROR = 3758096947u32; +pub const ERROR_INVALID_TARGET_HANDLE: WIN32_ERROR = 114u32; +pub const ERROR_INVALID_TASK_INDEX: WIN32_ERROR = 1551u32; +pub const ERROR_INVALID_TASK_NAME: WIN32_ERROR = 1550u32; +pub const ERROR_INVALID_THREAD_ID: WIN32_ERROR = 1444u32; +pub const ERROR_INVALID_TIME: WIN32_ERROR = 1901u32; +pub const ERROR_INVALID_TOKEN: WIN32_ERROR = 315u32; +pub const ERROR_INVALID_TRANSACTION: WIN32_ERROR = 6700u32; +pub const ERROR_INVALID_TRANSFORM: WIN32_ERROR = 2020u32; +pub const ERROR_INVALID_UNWIND_TARGET: WIN32_ERROR = 544u32; +pub const ERROR_INVALID_USER_BUFFER: WIN32_ERROR = 1784u32; +pub const ERROR_INVALID_USER_PRINCIPAL_NAME: WIN32_ERROR = 8636u32; +pub const ERROR_INVALID_VARIANT: WIN32_ERROR = 604u32; +pub const ERROR_INVALID_VERIFY_SWITCH: WIN32_ERROR = 118u32; +pub const ERROR_INVALID_WINDOW_HANDLE: WIN32_ERROR = 1400u32; +pub const ERROR_INVALID_WINDOW_STYLE: WIN32_ERROR = 2002u32; +pub const ERROR_INVALID_WORKSTATION: WIN32_ERROR = 1329u32; +pub const ERROR_IN_WOW64: WIN32_ERROR = 3758096949u32; +pub const ERROR_IOPL_NOT_ENABLED: WIN32_ERROR = 197u32; +pub const ERROR_IO_DEVICE: WIN32_ERROR = 1117u32; +pub const ERROR_IO_INCOMPLETE: WIN32_ERROR = 996u32; +pub const ERROR_IO_PENDING: WIN32_ERROR = 997u32; +pub const ERROR_IO_PREEMPTED: ::windows_sys::core::HRESULT = -1996423167i32; +pub const ERROR_IO_PRIVILEGE_FAILED: WIN32_ERROR = 571u32; +pub const ERROR_IO_REISSUE_AS_CACHED: WIN32_ERROR = 3950u32; +pub const ERROR_IPSEC_AUTH_FIREWALL_DROP: WIN32_ERROR = 13917u32; +pub const ERROR_IPSEC_BAD_SPI: WIN32_ERROR = 13910u32; +pub const ERROR_IPSEC_CLEAR_TEXT_DROP: WIN32_ERROR = 13916u32; +pub const ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND: WIN32_ERROR = 13014u32; +pub const ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND: WIN32_ERROR = 13013u32; +pub const ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND: WIN32_ERROR = 13015u32; +pub const ERROR_IPSEC_DOSP_BLOCK: WIN32_ERROR = 13925u32; +pub const ERROR_IPSEC_DOSP_INVALID_PACKET: WIN32_ERROR = 13927u32; +pub const ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED: WIN32_ERROR = 13930u32; +pub const ERROR_IPSEC_DOSP_MAX_ENTRIES: WIN32_ERROR = 13929u32; +pub const ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES: WIN32_ERROR = 13932u32; +pub const ERROR_IPSEC_DOSP_NOT_INSTALLED: WIN32_ERROR = 13931u32; +pub const ERROR_IPSEC_DOSP_RECEIVED_MULTICAST: WIN32_ERROR = 13926u32; +pub const ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED: WIN32_ERROR = 13928u32; +pub const ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED: WIN32_ERROR = 13860u32; +pub const ERROR_IPSEC_IKE_ATTRIB_FAIL: WIN32_ERROR = 13802u32; +pub const ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE: WIN32_ERROR = 13905u32; +pub const ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY: WIN32_ERROR = 13907u32; +pub const ERROR_IPSEC_IKE_AUTH_FAIL: WIN32_ERROR = 13801u32; +pub const ERROR_IPSEC_IKE_BENIGN_REINIT: WIN32_ERROR = 13878u32; +pub const ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH: WIN32_ERROR = 13887u32; +pub const ERROR_IPSEC_IKE_CGA_AUTH_FAILED: WIN32_ERROR = 13892u32; +pub const ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS: WIN32_ERROR = 13902u32; +pub const ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED: WIN32_ERROR = 13823u32; +pub const ERROR_IPSEC_IKE_CRL_FAILED: WIN32_ERROR = 13817u32; +pub const ERROR_IPSEC_IKE_DECRYPT: WIN32_ERROR = 13867u32; +pub const ERROR_IPSEC_IKE_DH_FAIL: WIN32_ERROR = 13822u32; +pub const ERROR_IPSEC_IKE_DH_FAILURE: WIN32_ERROR = 13864u32; +pub const ERROR_IPSEC_IKE_DOS_COOKIE_SENT: WIN32_ERROR = 13890u32; +pub const ERROR_IPSEC_IKE_DROP_NO_RESPONSE: WIN32_ERROR = 13813u32; +pub const ERROR_IPSEC_IKE_ENCRYPT: WIN32_ERROR = 13866u32; +pub const ERROR_IPSEC_IKE_ERROR: WIN32_ERROR = 13816u32; +pub const ERROR_IPSEC_IKE_FAILQUERYSSP: WIN32_ERROR = 13854u32; +pub const ERROR_IPSEC_IKE_FAILSSPINIT: WIN32_ERROR = 13853u32; +pub const ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR: WIN32_ERROR = 13804u32; +pub const ERROR_IPSEC_IKE_GETSPIFAIL: WIN32_ERROR = 13857u32; +pub const ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE: WIN32_ERROR = 13899u32; +pub const ERROR_IPSEC_IKE_INVALID_AUTH_ALG: WIN32_ERROR = 13874u32; +pub const ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD: WIN32_ERROR = 13889u32; +pub const ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN: WIN32_ERROR = 13881u32; +pub const ERROR_IPSEC_IKE_INVALID_CERT_TYPE: WIN32_ERROR = 13819u32; +pub const ERROR_IPSEC_IKE_INVALID_COOKIE: WIN32_ERROR = 13846u32; +pub const ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG: WIN32_ERROR = 13873u32; +pub const ERROR_IPSEC_IKE_INVALID_FILTER: WIN32_ERROR = 13858u32; +pub const ERROR_IPSEC_IKE_INVALID_GROUP: WIN32_ERROR = 13865u32; +pub const ERROR_IPSEC_IKE_INVALID_HASH: WIN32_ERROR = 13870u32; +pub const ERROR_IPSEC_IKE_INVALID_HASH_ALG: WIN32_ERROR = 13871u32; +pub const ERROR_IPSEC_IKE_INVALID_HASH_SIZE: WIN32_ERROR = 13872u32; +pub const ERROR_IPSEC_IKE_INVALID_HEADER: WIN32_ERROR = 13824u32; +pub const ERROR_IPSEC_IKE_INVALID_KEY_USAGE: WIN32_ERROR = 13818u32; +pub const ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION: WIN32_ERROR = 13880u32; +pub const ERROR_IPSEC_IKE_INVALID_MM_FOR_QM: WIN32_ERROR = 13894u32; +pub const ERROR_IPSEC_IKE_INVALID_PAYLOAD: WIN32_ERROR = 13843u32; +pub const ERROR_IPSEC_IKE_INVALID_POLICY: WIN32_ERROR = 13861u32; +pub const ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY: WIN32_ERROR = 13879u32; +pub const ERROR_IPSEC_IKE_INVALID_SIG: WIN32_ERROR = 13875u32; +pub const ERROR_IPSEC_IKE_INVALID_SIGNATURE: WIN32_ERROR = 13826u32; +pub const ERROR_IPSEC_IKE_INVALID_SITUATION: WIN32_ERROR = 13863u32; +pub const ERROR_IPSEC_IKE_KERBEROS_ERROR: WIN32_ERROR = 13827u32; +pub const ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL: WIN32_ERROR = 13898u32; +pub const ERROR_IPSEC_IKE_LOAD_FAILED: WIN32_ERROR = 13876u32; +pub const ERROR_IPSEC_IKE_LOAD_SOFT_SA: WIN32_ERROR = 13844u32; +pub const ERROR_IPSEC_IKE_MM_ACQUIRE_DROP: WIN32_ERROR = 13809u32; +pub const ERROR_IPSEC_IKE_MM_DELAY_DROP: WIN32_ERROR = 13814u32; +pub const ERROR_IPSEC_IKE_MM_EXPIRED: WIN32_ERROR = 13885u32; +pub const ERROR_IPSEC_IKE_MM_LIMIT: WIN32_ERROR = 13882u32; +pub const ERROR_IPSEC_IKE_NEGOTIATION_DISABLED: WIN32_ERROR = 13883u32; +pub const ERROR_IPSEC_IKE_NEGOTIATION_PENDING: WIN32_ERROR = 13803u32; +pub const ERROR_IPSEC_IKE_NEG_STATUS_BEGIN: WIN32_ERROR = 13800u32; +pub const ERROR_IPSEC_IKE_NEG_STATUS_END: WIN32_ERROR = 13897u32; +pub const ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END: WIN32_ERROR = 13909u32; +pub const ERROR_IPSEC_IKE_NOTCBPRIV: WIN32_ERROR = 13851u32; +pub const ERROR_IPSEC_IKE_NO_CERT: WIN32_ERROR = 13806u32; +pub const ERROR_IPSEC_IKE_NO_MM_POLICY: WIN32_ERROR = 13850u32; +pub const ERROR_IPSEC_IKE_NO_PEER_CERT: WIN32_ERROR = 13847u32; +pub const ERROR_IPSEC_IKE_NO_POLICY: WIN32_ERROR = 13825u32; +pub const ERROR_IPSEC_IKE_NO_PRIVATE_KEY: WIN32_ERROR = 13820u32; +pub const ERROR_IPSEC_IKE_NO_PUBLIC_KEY: WIN32_ERROR = 13828u32; +pub const ERROR_IPSEC_IKE_OUT_OF_MEMORY: WIN32_ERROR = 13859u32; +pub const ERROR_IPSEC_IKE_PEER_CRL_FAILED: WIN32_ERROR = 13848u32; +pub const ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE: WIN32_ERROR = 13904u32; +pub const ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID: WIN32_ERROR = 13886u32; +pub const ERROR_IPSEC_IKE_POLICY_CHANGE: WIN32_ERROR = 13849u32; +pub const ERROR_IPSEC_IKE_POLICY_MATCH: WIN32_ERROR = 13868u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR: WIN32_ERROR = 13829u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_CERT: WIN32_ERROR = 13835u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ: WIN32_ERROR = 13836u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_DELETE: WIN32_ERROR = 13841u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_HASH: WIN32_ERROR = 13837u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_ID: WIN32_ERROR = 13834u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_KE: WIN32_ERROR = 13833u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_NATOA: WIN32_ERROR = 13893u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_NONCE: WIN32_ERROR = 13839u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY: WIN32_ERROR = 13840u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_PROP: WIN32_ERROR = 13831u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_SA: WIN32_ERROR = 13830u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_SIG: WIN32_ERROR = 13838u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_TRANS: WIN32_ERROR = 13832u32; +pub const ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR: WIN32_ERROR = 13842u32; +pub const ERROR_IPSEC_IKE_QM_ACQUIRE_DROP: WIN32_ERROR = 13810u32; +pub const ERROR_IPSEC_IKE_QM_DELAY_DROP: WIN32_ERROR = 13815u32; +pub const ERROR_IPSEC_IKE_QM_EXPIRED: WIN32_ERROR = 13895u32; +pub const ERROR_IPSEC_IKE_QM_LIMIT: WIN32_ERROR = 13884u32; +pub const ERROR_IPSEC_IKE_QUEUE_DROP_MM: WIN32_ERROR = 13811u32; +pub const ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM: WIN32_ERROR = 13812u32; +pub const ERROR_IPSEC_IKE_RATELIMIT_DROP: WIN32_ERROR = 13903u32; +pub const ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING: WIN32_ERROR = 13900u32; +pub const ERROR_IPSEC_IKE_RPC_DELETE: WIN32_ERROR = 13877u32; +pub const ERROR_IPSEC_IKE_SA_DELETED: WIN32_ERROR = 13807u32; +pub const ERROR_IPSEC_IKE_SA_REAPED: WIN32_ERROR = 13808u32; +pub const ERROR_IPSEC_IKE_SECLOADFAIL: WIN32_ERROR = 13852u32; +pub const ERROR_IPSEC_IKE_SHUTTING_DOWN: WIN32_ERROR = 13891u32; +pub const ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY: WIN32_ERROR = 13821u32; +pub const ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN: WIN32_ERROR = 13845u32; +pub const ERROR_IPSEC_IKE_SRVACQFAIL: WIN32_ERROR = 13855u32; +pub const ERROR_IPSEC_IKE_SRVQUERYCRED: WIN32_ERROR = 13856u32; +pub const ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE: WIN32_ERROR = 13908u32; +pub const ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE: WIN32_ERROR = 13906u32; +pub const ERROR_IPSEC_IKE_TIMED_OUT: WIN32_ERROR = 13805u32; +pub const ERROR_IPSEC_IKE_TOO_MANY_FILTERS: WIN32_ERROR = 13896u32; +pub const ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID: WIN32_ERROR = 13888u32; +pub const ERROR_IPSEC_IKE_UNKNOWN_DOI: WIN32_ERROR = 13862u32; +pub const ERROR_IPSEC_IKE_UNSUPPORTED_ID: WIN32_ERROR = 13869u32; +pub const ERROR_IPSEC_INTEGRITY_CHECK_FAILED: WIN32_ERROR = 13915u32; +pub const ERROR_IPSEC_INVALID_PACKET: WIN32_ERROR = 13914u32; +pub const ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING: WIN32_ERROR = 13901u32; +pub const ERROR_IPSEC_MM_AUTH_EXISTS: WIN32_ERROR = 13010u32; +pub const ERROR_IPSEC_MM_AUTH_IN_USE: WIN32_ERROR = 13012u32; +pub const ERROR_IPSEC_MM_AUTH_NOT_FOUND: WIN32_ERROR = 13011u32; +pub const ERROR_IPSEC_MM_AUTH_PENDING_DELETION: WIN32_ERROR = 13022u32; +pub const ERROR_IPSEC_MM_FILTER_EXISTS: WIN32_ERROR = 13006u32; +pub const ERROR_IPSEC_MM_FILTER_NOT_FOUND: WIN32_ERROR = 13007u32; +pub const ERROR_IPSEC_MM_FILTER_PENDING_DELETION: WIN32_ERROR = 13018u32; +pub const ERROR_IPSEC_MM_POLICY_EXISTS: WIN32_ERROR = 13003u32; +pub const ERROR_IPSEC_MM_POLICY_IN_USE: WIN32_ERROR = 13005u32; +pub const ERROR_IPSEC_MM_POLICY_NOT_FOUND: WIN32_ERROR = 13004u32; +pub const ERROR_IPSEC_MM_POLICY_PENDING_DELETION: WIN32_ERROR = 13021u32; +pub const ERROR_IPSEC_QM_POLICY_EXISTS: WIN32_ERROR = 13000u32; +pub const ERROR_IPSEC_QM_POLICY_IN_USE: WIN32_ERROR = 13002u32; +pub const ERROR_IPSEC_QM_POLICY_NOT_FOUND: WIN32_ERROR = 13001u32; +pub const ERROR_IPSEC_QM_POLICY_PENDING_DELETION: WIN32_ERROR = 13023u32; +pub const ERROR_IPSEC_REPLAY_CHECK_FAILED: WIN32_ERROR = 13913u32; +pub const ERROR_IPSEC_SA_LIFETIME_EXPIRED: WIN32_ERROR = 13911u32; +pub const ERROR_IPSEC_THROTTLE_DROP: WIN32_ERROR = 13918u32; +pub const ERROR_IPSEC_TRANSPORT_FILTER_EXISTS: WIN32_ERROR = 13008u32; +pub const ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND: WIN32_ERROR = 13009u32; +pub const ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION: WIN32_ERROR = 13019u32; +pub const ERROR_IPSEC_TUNNEL_FILTER_EXISTS: WIN32_ERROR = 13016u32; +pub const ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND: WIN32_ERROR = 13017u32; +pub const ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION: WIN32_ERROR = 13020u32; +pub const ERROR_IPSEC_WRONG_SA: WIN32_ERROR = 13912u32; +pub const ERROR_IP_ADDRESS_CONFLICT1: WIN32_ERROR = 611u32; +pub const ERROR_IP_ADDRESS_CONFLICT2: WIN32_ERROR = 612u32; +pub const ERROR_IRQ_BUSY: WIN32_ERROR = 1119u32; +pub const ERROR_IS_JOINED: WIN32_ERROR = 134u32; +pub const ERROR_IS_JOIN_PATH: WIN32_ERROR = 147u32; +pub const ERROR_IS_JOIN_TARGET: WIN32_ERROR = 133u32; +pub const ERROR_IS_SUBSTED: WIN32_ERROR = 135u32; +pub const ERROR_IS_SUBST_PATH: WIN32_ERROR = 146u32; +pub const ERROR_IS_SUBST_TARGET: WIN32_ERROR = 149u32; +pub const ERROR_ITERATED_DATA_EXCEEDS_64k: WIN32_ERROR = 194u32; +pub const ERROR_JOB_NO_CONTAINER: WIN32_ERROR = 1505u32; +pub const ERROR_JOIN_TO_JOIN: WIN32_ERROR = 138u32; +pub const ERROR_JOIN_TO_SUBST: WIN32_ERROR = 140u32; +pub const ERROR_JOURNAL_DELETE_IN_PROGRESS: WIN32_ERROR = 1178u32; +pub const ERROR_JOURNAL_ENTRY_DELETED: WIN32_ERROR = 1181u32; +pub const ERROR_JOURNAL_HOOK_SET: WIN32_ERROR = 1430u32; +pub const ERROR_JOURNAL_NOT_ACTIVE: WIN32_ERROR = 1179u32; +pub const ERROR_KERNEL_APC: WIN32_ERROR = 738u32; +pub const ERROR_KEY_DELETED: WIN32_ERROR = 1018u32; +pub const ERROR_KEY_DOES_NOT_EXIST: WIN32_ERROR = 3758096900u32; +pub const ERROR_KEY_HAS_CHILDREN: WIN32_ERROR = 1020u32; +pub const ERROR_KM_DRIVER_BLOCKED: WIN32_ERROR = 1930u32; +pub const ERROR_LABEL_TOO_LONG: WIN32_ERROR = 154u32; +pub const ERROR_LAST_ADMIN: WIN32_ERROR = 1322u32; +pub const ERROR_LB_WITHOUT_TABSTOPS: WIN32_ERROR = 1434u32; +pub const ERROR_LIBRARY_FULL: WIN32_ERROR = 4322u32; +pub const ERROR_LIBRARY_OFFLINE: WIN32_ERROR = 4305u32; +pub const ERROR_LICENSE_QUOTA_EXCEEDED: WIN32_ERROR = 1395u32; +pub const ERROR_LINE_NOT_FOUND: WIN32_ERROR = 3758096642u32; +pub const ERROR_LINUX_SUBSYSTEM_NOT_PRESENT: WIN32_ERROR = 414u32; +pub const ERROR_LINUX_SUBSYSTEM_UPDATE_REQUIRED: WIN32_ERROR = 444u32; +pub const ERROR_LISTBOX_ID_NOT_FOUND: WIN32_ERROR = 1416u32; +pub const ERROR_LM_CROSS_ENCRYPTION_REQUIRED: WIN32_ERROR = 1390u32; +pub const ERROR_LOCAL_POLICY_MODIFICATION_NOT_SUPPORTED: WIN32_ERROR = 8653u32; +pub const ERROR_LOCAL_USER_SESSION_KEY: WIN32_ERROR = 1303u32; +pub const ERROR_LOCKED: WIN32_ERROR = 212u32; +pub const ERROR_LOCK_FAILED: WIN32_ERROR = 167u32; +pub const ERROR_LOCK_VIOLATION: WIN32_ERROR = 33u32; +pub const ERROR_LOGIN_TIME_RESTRICTION: WIN32_ERROR = 1239u32; +pub const ERROR_LOGIN_WKSTA_RESTRICTION: WIN32_ERROR = 1240u32; +pub const ERROR_LOGON_FAILURE: WIN32_ERROR = 1326u32; +pub const ERROR_LOGON_NOT_GRANTED: WIN32_ERROR = 1380u32; +pub const ERROR_LOGON_SERVER_CONFLICT: WIN32_ERROR = 568u32; +pub const ERROR_LOGON_SESSION_COLLISION: WIN32_ERROR = 1366u32; +pub const ERROR_LOGON_SESSION_EXISTS: WIN32_ERROR = 1363u32; +pub const ERROR_LOGON_TYPE_NOT_GRANTED: WIN32_ERROR = 1385u32; +pub const ERROR_LOG_APPENDED_FLUSH_FAILED: WIN32_ERROR = 6647u32; +pub const ERROR_LOG_ARCHIVE_IN_PROGRESS: WIN32_ERROR = 6633u32; +pub const ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS: WIN32_ERROR = 6632u32; +pub const ERROR_LOG_BLOCKS_EXHAUSTED: WIN32_ERROR = 6605u32; +pub const ERROR_LOG_BLOCK_INCOMPLETE: WIN32_ERROR = 6603u32; +pub const ERROR_LOG_BLOCK_INVALID: WIN32_ERROR = 6609u32; +pub const ERROR_LOG_BLOCK_VERSION: WIN32_ERROR = 6608u32; +pub const ERROR_LOG_CANT_DELETE: WIN32_ERROR = 6616u32; +pub const ERROR_LOG_CLIENT_ALREADY_REGISTERED: WIN32_ERROR = 6636u32; +pub const ERROR_LOG_CLIENT_NOT_REGISTERED: WIN32_ERROR = 6637u32; +pub const ERROR_LOG_CONTAINER_LIMIT_EXCEEDED: WIN32_ERROR = 6617u32; +pub const ERROR_LOG_CONTAINER_OPEN_FAILED: WIN32_ERROR = 6641u32; +pub const ERROR_LOG_CONTAINER_READ_FAILED: WIN32_ERROR = 6639u32; +pub const ERROR_LOG_CONTAINER_STATE_INVALID: WIN32_ERROR = 6642u32; +pub const ERROR_LOG_CONTAINER_WRITE_FAILED: WIN32_ERROR = 6640u32; +pub const ERROR_LOG_CORRUPTION_DETECTED: WIN32_ERROR = 6817u32; +pub const ERROR_LOG_DEDICATED: WIN32_ERROR = 6631u32; +pub const ERROR_LOG_EPHEMERAL: WIN32_ERROR = 6634u32; +pub const ERROR_LOG_FILE_FULL: WIN32_ERROR = 1502u32; +pub const ERROR_LOG_FULL: WIN32_ERROR = 6628u32; +pub const ERROR_LOG_FULL_HANDLER_IN_PROGRESS: WIN32_ERROR = 6638u32; +pub const ERROR_LOG_GROWTH_FAILED: WIN32_ERROR = 6833u32; +pub const ERROR_LOG_HARD_ERROR: WIN32_ERROR = 718u32; +pub const ERROR_LOG_INCONSISTENT_SECURITY: WIN32_ERROR = 6646u32; +pub const ERROR_LOG_INVALID_RANGE: WIN32_ERROR = 6604u32; +pub const ERROR_LOG_METADATA_CORRUPT: WIN32_ERROR = 6612u32; +pub const ERROR_LOG_METADATA_FLUSH_FAILED: WIN32_ERROR = 6645u32; +pub const ERROR_LOG_METADATA_INCONSISTENT: WIN32_ERROR = 6614u32; +pub const ERROR_LOG_METADATA_INVALID: WIN32_ERROR = 6613u32; +pub const ERROR_LOG_MULTIPLEXED: WIN32_ERROR = 6630u32; +pub const ERROR_LOG_NOT_ENOUGH_CONTAINERS: WIN32_ERROR = 6635u32; +pub const ERROR_LOG_NO_RESTART: WIN32_ERROR = 6611u32; +pub const ERROR_LOG_PINNED: WIN32_ERROR = 6644u32; +pub const ERROR_LOG_PINNED_ARCHIVE_TAIL: WIN32_ERROR = 6623u32; +pub const ERROR_LOG_PINNED_RESERVATION: WIN32_ERROR = 6648u32; +pub const ERROR_LOG_POLICY_ALREADY_INSTALLED: WIN32_ERROR = 6619u32; +pub const ERROR_LOG_POLICY_CONFLICT: WIN32_ERROR = 6622u32; +pub const ERROR_LOG_POLICY_INVALID: WIN32_ERROR = 6621u32; +pub const ERROR_LOG_POLICY_NOT_INSTALLED: WIN32_ERROR = 6620u32; +pub const ERROR_LOG_READ_CONTEXT_INVALID: WIN32_ERROR = 6606u32; +pub const ERROR_LOG_READ_MODE_INVALID: WIN32_ERROR = 6610u32; +pub const ERROR_LOG_RECORDS_RESERVED_INVALID: WIN32_ERROR = 6625u32; +pub const ERROR_LOG_RECORD_NONEXISTENT: WIN32_ERROR = 6624u32; +pub const ERROR_LOG_RESERVATION_INVALID: WIN32_ERROR = 6615u32; +pub const ERROR_LOG_RESIZE_INVALID_SIZE: WIN32_ERROR = 6806u32; +pub const ERROR_LOG_RESTART_INVALID: WIN32_ERROR = 6607u32; +pub const ERROR_LOG_SECTOR_INVALID: WIN32_ERROR = 6600u32; +pub const ERROR_LOG_SECTOR_PARITY_INVALID: WIN32_ERROR = 6601u32; +pub const ERROR_LOG_SECTOR_REMAPPED: WIN32_ERROR = 6602u32; +pub const ERROR_LOG_SPACE_RESERVED_INVALID: WIN32_ERROR = 6626u32; +pub const ERROR_LOG_START_OF_LOG: WIN32_ERROR = 6618u32; +pub const ERROR_LOG_STATE_INVALID: WIN32_ERROR = 6643u32; +pub const ERROR_LOG_TAIL_INVALID: WIN32_ERROR = 6627u32; +pub const ERROR_LONGJUMP: WIN32_ERROR = 682u32; +pub const ERROR_LOST_MODE_LOGON_RESTRICTION: WIN32_ERROR = 1939u32; +pub const ERROR_LOST_WRITEBEHIND_DATA: WIN32_ERROR = 596u32; +pub const ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR: WIN32_ERROR = 790u32; +pub const ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED: WIN32_ERROR = 788u32; +pub const ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR: WIN32_ERROR = 789u32; +pub const ERROR_LUIDS_EXHAUSTED: WIN32_ERROR = 1334u32; +pub const ERROR_MACHINE_LOCKED: WIN32_ERROR = 1271u32; +pub const ERROR_MACHINE_SCOPE_NOT_ALLOWED: WIN32_ERROR = 15666u32; +pub const ERROR_MACHINE_UNAVAILABLE: WIN32_ERROR = 3758096930u32; +pub const ERROR_MAGAZINE_NOT_PRESENT: WIN32_ERROR = 1163u32; +pub const ERROR_MALFORMED_SUBSTITUTION_STRING: WIN32_ERROR = 14094u32; +pub const ERROR_MAPPED_ALIGNMENT: WIN32_ERROR = 1132u32; +pub const ERROR_MARKED_TO_DISALLOW_WRITES: WIN32_ERROR = 348u32; +pub const ERROR_MARSHALL_OVERFLOW: WIN32_ERROR = 603u32; +pub const ERROR_MAX_CLIENT_INTERFACE_LIMIT: u32 = 935u32; +pub const ERROR_MAX_LAN_INTERFACE_LIMIT: u32 = 933u32; +pub const ERROR_MAX_SESSIONS_REACHED: WIN32_ERROR = 353u32; +pub const ERROR_MAX_THRDS_REACHED: WIN32_ERROR = 164u32; +pub const ERROR_MAX_WAN_INTERFACE_LIMIT: u32 = 934u32; +pub const ERROR_MCA_EXCEPTION: WIN32_ERROR = 784u32; +pub const ERROR_MCA_INTERNAL_ERROR: WIN32_ERROR = 15205u32; +pub const ERROR_MCA_INVALID_CAPABILITIES_STRING: WIN32_ERROR = 15200u32; +pub const ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED: WIN32_ERROR = 15206u32; +pub const ERROR_MCA_INVALID_VCP_VERSION: WIN32_ERROR = 15201u32; +pub const ERROR_MCA_MCCS_VERSION_MISMATCH: WIN32_ERROR = 15203u32; +pub const ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION: WIN32_ERROR = 15202u32; +pub const ERROR_MCA_OCCURED: WIN32_ERROR = 651u32; +pub const ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE: WIN32_ERROR = 15207u32; +pub const ERROR_MCA_UNSUPPORTED_MCCS_VERSION: WIN32_ERROR = 15204u32; +pub const ERROR_MEDIA_CHANGED: WIN32_ERROR = 1110u32; +pub const ERROR_MEDIA_CHECK: WIN32_ERROR = 679u32; +pub const ERROR_MEDIA_INCOMPATIBLE: WIN32_ERROR = 4315u32; +pub const ERROR_MEDIA_NOT_AVAILABLE: WIN32_ERROR = 4318u32; +pub const ERROR_MEDIA_OFFLINE: WIN32_ERROR = 4304u32; +pub const ERROR_MEDIA_UNAVAILABLE: WIN32_ERROR = 4308u32; +pub const ERROR_MEDIUM_NOT_ACCESSIBLE: WIN32_ERROR = 4323u32; +pub const ERROR_MEMBERS_PRIMARY_GROUP: WIN32_ERROR = 1374u32; +pub const ERROR_MEMBER_IN_ALIAS: WIN32_ERROR = 1378u32; +pub const ERROR_MEMBER_IN_GROUP: WIN32_ERROR = 1320u32; +pub const ERROR_MEMBER_NOT_IN_ALIAS: WIN32_ERROR = 1377u32; +pub const ERROR_MEMBER_NOT_IN_GROUP: WIN32_ERROR = 1321u32; +pub const ERROR_MEMORY_HARDWARE: WIN32_ERROR = 779u32; +pub const ERROR_MENU_ITEM_NOT_FOUND: WIN32_ERROR = 1456u32; +pub const ERROR_MESSAGE_EXCEEDS_MAX_SIZE: WIN32_ERROR = 4336u32; +pub const ERROR_MESSAGE_SYNC_ONLY: WIN32_ERROR = 1159u32; +pub const ERROR_METAFILE_NOT_SUPPORTED: WIN32_ERROR = 2003u32; +pub const ERROR_META_EXPANSION_TOO_LONG: WIN32_ERROR = 208u32; +pub const ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION: WIN32_ERROR = 6810u32; +pub const ERROR_MISSING_SYSTEMFILE: WIN32_ERROR = 573u32; +pub const ERROR_MOD_NOT_FOUND: WIN32_ERROR = 126u32; +pub const ERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM: ::windows_sys::core::HRESULT = -1071247357i32; +pub const ERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK: ::windows_sys::core::HRESULT = -1071247351i32; +pub const ERROR_MONITOR_INVALID_MANUFACTURE_DATE: ::windows_sys::core::HRESULT = -1071247350i32; +pub const ERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK: ::windows_sys::core::HRESULT = -1071247354i32; +pub const ERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK: ::windows_sys::core::HRESULT = -1071247356i32; +pub const ERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK: ::windows_sys::core::HRESULT = -1071247353i32; +pub const ERROR_MONITOR_NO_DESCRIPTOR: ::windows_sys::core::HRESULT = 2494465i32; +pub const ERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA: ::windows_sys::core::HRESULT = -1071247352i32; +pub const ERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT: ::windows_sys::core::HRESULT = 2494466i32; +pub const ERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED: ::windows_sys::core::HRESULT = -1071247355i32; +pub const ERROR_MORE_DATA: WIN32_ERROR = 234u32; +pub const ERROR_MORE_WRITES: WIN32_ERROR = 1120u32; +pub const ERROR_MOUNT_POINT_NOT_RESOLVED: WIN32_ERROR = 649u32; +pub const ERROR_MP_PROCESSOR_MISMATCH: WIN32_ERROR = 725u32; +pub const ERROR_MRM_AUTOMERGE_ENABLED: WIN32_ERROR = 15139u32; +pub const ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE: WIN32_ERROR = 15146u32; +pub const ERROR_MRM_DUPLICATE_ENTRY: WIN32_ERROR = 15119u32; +pub const ERROR_MRM_DUPLICATE_MAP_NAME: WIN32_ERROR = 15118u32; +pub const ERROR_MRM_FILEPATH_TOO_LONG: WIN32_ERROR = 15121u32; +pub const ERROR_MRM_GENERATION_COUNT_MISMATCH: WIN32_ERROR = 15147u32; +pub const ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE: WIN32_ERROR = 15138u32; +pub const ERROR_MRM_INVALID_FILE_TYPE: WIN32_ERROR = 15112u32; +pub const ERROR_MRM_INVALID_PRICONFIG: WIN32_ERROR = 15111u32; +pub const ERROR_MRM_INVALID_PRI_FILE: WIN32_ERROR = 15126u32; +pub const ERROR_MRM_INVALID_QUALIFIER_OPERATOR: WIN32_ERROR = 15137u32; +pub const ERROR_MRM_INVALID_QUALIFIER_VALUE: WIN32_ERROR = 15114u32; +pub const ERROR_MRM_INVALID_RESOURCE_IDENTIFIER: WIN32_ERROR = 15120u32; +pub const ERROR_MRM_MAP_NOT_FOUND: WIN32_ERROR = 15135u32; +pub const ERROR_MRM_MISSING_DEFAULT_LANGUAGE: WIN32_ERROR = 15160u32; +pub const ERROR_MRM_NAMED_RESOURCE_NOT_FOUND: WIN32_ERROR = 15127u32; +pub const ERROR_MRM_NO_CANDIDATE: WIN32_ERROR = 15115u32; +pub const ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD: WIN32_ERROR = 15143u32; +pub const ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE: WIN32_ERROR = 15116u32; +pub const ERROR_MRM_PACKAGE_NOT_FOUND: WIN32_ERROR = 15159u32; +pub const ERROR_MRM_RESOURCE_TYPE_MISMATCH: WIN32_ERROR = 15117u32; +pub const ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE: WIN32_ERROR = 15110u32; +pub const ERROR_MRM_SCOPE_ITEM_CONFLICT: WIN32_ERROR = 15161u32; +pub const ERROR_MRM_TOO_MANY_RESOURCES: WIN32_ERROR = 15140u32; +pub const ERROR_MRM_UNKNOWN_QUALIFIER: WIN32_ERROR = 15113u32; +pub const ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE: WIN32_ERROR = 15122u32; +pub const ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE: WIN32_ERROR = 15142u32; +pub const ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE: WIN32_ERROR = 15141u32; +pub const ERROR_MRM_UNSUPPORTED_PROFILE_TYPE: WIN32_ERROR = 15136u32; +pub const ERROR_MR_MID_NOT_FOUND: WIN32_ERROR = 317u32; +pub const ERROR_MUI_FILE_NOT_FOUND: WIN32_ERROR = 15100u32; +pub const ERROR_MUI_FILE_NOT_LOADED: WIN32_ERROR = 15105u32; +pub const ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME: WIN32_ERROR = 15108u32; +pub const ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED: WIN32_ERROR = 15107u32; +pub const ERROR_MUI_INVALID_FILE: WIN32_ERROR = 15101u32; +pub const ERROR_MUI_INVALID_LOCALE_NAME: WIN32_ERROR = 15103u32; +pub const ERROR_MUI_INVALID_RC_CONFIG: WIN32_ERROR = 15102u32; +pub const ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME: WIN32_ERROR = 15104u32; +pub const ERROR_MULTIPLE_FAULT_VIOLATION: WIN32_ERROR = 640u32; +pub const ERROR_MUTANT_LIMIT_EXCEEDED: WIN32_ERROR = 587u32; +pub const ERROR_MUTUAL_AUTH_FAILED: WIN32_ERROR = 1397u32; +pub const ERROR_NDIS_ADAPTER_NOT_FOUND: WIN32_ERROR = 2150891526u32; +pub const ERROR_NDIS_ADAPTER_NOT_READY: WIN32_ERROR = 2150891537u32; +pub const ERROR_NDIS_ADAPTER_REMOVED: WIN32_ERROR = 2150891544u32; +pub const ERROR_NDIS_ALREADY_MAPPED: WIN32_ERROR = 2150891549u32; +pub const ERROR_NDIS_BAD_CHARACTERISTICS: WIN32_ERROR = 2150891525u32; +pub const ERROR_NDIS_BAD_VERSION: WIN32_ERROR = 2150891524u32; +pub const ERROR_NDIS_BUFFER_TOO_SHORT: WIN32_ERROR = 2150891542u32; +pub const ERROR_NDIS_DEVICE_FAILED: WIN32_ERROR = 2150891528u32; +pub const ERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE: WIN32_ERROR = 2150899718u32; +pub const ERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED: WIN32_ERROR = 2150899720u32; +pub const ERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE: WIN32_ERROR = 2150899717u32; +pub const ERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED: WIN32_ERROR = 2150899719u32; +pub const ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED: WIN32_ERROR = 2150899712u32; +pub const ERROR_NDIS_DOT11_MEDIA_IN_USE: WIN32_ERROR = 2150899713u32; +pub const ERROR_NDIS_DOT11_POWER_STATE_INVALID: WIN32_ERROR = 2150899714u32; +pub const ERROR_NDIS_ERROR_READING_FILE: WIN32_ERROR = 2150891548u32; +pub const ERROR_NDIS_FILE_NOT_FOUND: WIN32_ERROR = 2150891547u32; +pub const ERROR_NDIS_GROUP_ADDRESS_IN_USE: WIN32_ERROR = 2150891546u32; +pub const ERROR_NDIS_INDICATION_REQUIRED: WIN32_ERROR = 3407873u32; +pub const ERROR_NDIS_INTERFACE_CLOSING: WIN32_ERROR = 2150891522u32; +pub const ERROR_NDIS_INTERFACE_NOT_FOUND: WIN32_ERROR = 2150891563u32; +pub const ERROR_NDIS_INVALID_ADDRESS: WIN32_ERROR = 2150891554u32; +pub const ERROR_NDIS_INVALID_DATA: WIN32_ERROR = 2150891541u32; +pub const ERROR_NDIS_INVALID_DEVICE_REQUEST: WIN32_ERROR = 2150891536u32; +pub const ERROR_NDIS_INVALID_LENGTH: WIN32_ERROR = 2150891540u32; +pub const ERROR_NDIS_INVALID_OID: WIN32_ERROR = 2150891543u32; +pub const ERROR_NDIS_INVALID_PACKET: WIN32_ERROR = 2150891535u32; +pub const ERROR_NDIS_INVALID_PORT: WIN32_ERROR = 2150891565u32; +pub const ERROR_NDIS_INVALID_PORT_STATE: WIN32_ERROR = 2150891566u32; +pub const ERROR_NDIS_LOW_POWER_STATE: WIN32_ERROR = 2150891567u32; +pub const ERROR_NDIS_MEDIA_DISCONNECTED: WIN32_ERROR = 2150891551u32; +pub const ERROR_NDIS_MULTICAST_EXISTS: WIN32_ERROR = 2150891530u32; +pub const ERROR_NDIS_MULTICAST_FULL: WIN32_ERROR = 2150891529u32; +pub const ERROR_NDIS_MULTICAST_NOT_FOUND: WIN32_ERROR = 2150891531u32; +pub const ERROR_NDIS_NOT_SUPPORTED: WIN32_ERROR = 2150891707u32; +pub const ERROR_NDIS_NO_QUEUES: WIN32_ERROR = 2150891569u32; +pub const ERROR_NDIS_OFFLOAD_CONNECTION_REJECTED: WIN32_ERROR = 3224637458u32; +pub const ERROR_NDIS_OFFLOAD_PATH_REJECTED: WIN32_ERROR = 3224637459u32; +pub const ERROR_NDIS_OFFLOAD_POLICY: WIN32_ERROR = 3224637455u32; +pub const ERROR_NDIS_OPEN_FAILED: WIN32_ERROR = 2150891527u32; +pub const ERROR_NDIS_PAUSED: WIN32_ERROR = 2150891562u32; +pub const ERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL: WIN32_ERROR = 2150899716u32; +pub const ERROR_NDIS_PM_WOL_PATTERN_LIST_FULL: WIN32_ERROR = 2150899715u32; +pub const ERROR_NDIS_REINIT_REQUIRED: WIN32_ERROR = 2150891568u32; +pub const ERROR_NDIS_REQUEST_ABORTED: WIN32_ERROR = 2150891532u32; +pub const ERROR_NDIS_RESET_IN_PROGRESS: WIN32_ERROR = 2150891533u32; +pub const ERROR_NDIS_RESOURCE_CONFLICT: WIN32_ERROR = 2150891550u32; +pub const ERROR_NDIS_UNSUPPORTED_MEDIA: WIN32_ERROR = 2150891545u32; +pub const ERROR_NDIS_UNSUPPORTED_REVISION: WIN32_ERROR = 2150891564u32; +pub const ERROR_NEEDS_REGISTRATION: WIN32_ERROR = 15631u32; +pub const ERROR_NEEDS_REMEDIATION: WIN32_ERROR = 15612u32; +pub const ERROR_NEGATIVE_SEEK: WIN32_ERROR = 131u32; +pub const ERROR_NESTING_NOT_ALLOWED: WIN32_ERROR = 215u32; +pub const ERROR_NETLOGON_NOT_STARTED: WIN32_ERROR = 1792u32; +pub const ERROR_NETNAME_DELETED: WIN32_ERROR = 64u32; +pub const ERROR_NETWORK_ACCESS_DENIED: WIN32_ERROR = 65u32; +pub const ERROR_NETWORK_ACCESS_DENIED_EDP: WIN32_ERROR = 354u32; +pub const ERROR_NETWORK_AUTHENTICATION_PROMPT_CANCELED: WIN32_ERROR = 3024u32; +pub const ERROR_NETWORK_BUSY: WIN32_ERROR = 54u32; +pub const ERROR_NETWORK_NOT_AVAILABLE: WIN32_ERROR = 5035u32; +pub const ERROR_NETWORK_UNREACHABLE: WIN32_ERROR = 1231u32; +pub const ERROR_NET_OPEN_FAILED: WIN32_ERROR = 570u32; +pub const ERROR_NET_WRITE_FAULT: WIN32_ERROR = 88u32; +pub const ERROR_NOACCESS: WIN32_ERROR = 998u32; +pub const ERROR_NODE_CANNOT_BE_CLUSTERED: WIN32_ERROR = 5898u32; +pub const ERROR_NODE_CANT_HOST_RESOURCE: WIN32_ERROR = 5071u32; +pub const ERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER: WIN32_ERROR = 5980u32; +pub const ERROR_NODE_NOT_AVAILABLE: WIN32_ERROR = 5036u32; +pub const ERROR_NOINTERFACE: WIN32_ERROR = 632u32; +pub const ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT: WIN32_ERROR = 1807u32; +pub const ERROR_NOLOGON_SERVER_TRUST_ACCOUNT: WIN32_ERROR = 1809u32; +pub const ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT: WIN32_ERROR = 1808u32; +pub const ERROR_NONCORE_GROUPS_FOUND: WIN32_ERROR = 5937u32; +pub const ERROR_NONE_MAPPED: WIN32_ERROR = 1332u32; +pub const ERROR_NONPAGED_SYSTEM_RESOURCES: WIN32_ERROR = 1451u32; +pub const ERROR_NON_ACCOUNT_SID: WIN32_ERROR = 1257u32; +pub const ERROR_NON_CSV_PATH: WIN32_ERROR = 5950u32; +pub const ERROR_NON_DOMAIN_SID: WIN32_ERROR = 1258u32; +pub const ERROR_NON_MDICHILD_WINDOW: WIN32_ERROR = 1445u32; +pub const ERROR_NON_WINDOWS_DRIVER: WIN32_ERROR = 3758096942u32; +pub const ERROR_NON_WINDOWS_NT_DRIVER: WIN32_ERROR = 3758096941u32; +pub const ERROR_NOTHING_TO_TERMINATE: WIN32_ERROR = 758u32; +pub const ERROR_NOTIFICATION_GUID_ALREADY_DEFINED: WIN32_ERROR = 309u32; +pub const ERROR_NOTIFY_CLEANUP: WIN32_ERROR = 745u32; +pub const ERROR_NOTIFY_ENUM_DIR: WIN32_ERROR = 1022u32; +pub const ERROR_NOT_ALLOWED_ON_SYSTEM_FILE: WIN32_ERROR = 313u32; +pub const ERROR_NOT_ALL_ASSIGNED: WIN32_ERROR = 1300u32; +pub const ERROR_NOT_AN_INSTALLED_OEM_INF: WIN32_ERROR = 3758096956u32; +pub const ERROR_NOT_APPCONTAINER: WIN32_ERROR = 4250u32; +pub const ERROR_NOT_AUTHENTICATED: WIN32_ERROR = 1244u32; +pub const ERROR_NOT_A_CLOUD_FILE: WIN32_ERROR = 376u32; +pub const ERROR_NOT_A_CLOUD_SYNC_ROOT: WIN32_ERROR = 405u32; +pub const ERROR_NOT_A_DAX_VOLUME: WIN32_ERROR = 420u32; +pub const ERROR_NOT_A_REPARSE_POINT: WIN32_ERROR = 4390u32; +pub const ERROR_NOT_A_TIERED_VOLUME: ::windows_sys::core::HRESULT = -2138898423i32; +pub const ERROR_NOT_CAPABLE: WIN32_ERROR = 775u32; +pub const ERROR_NOT_CHILD_WINDOW: WIN32_ERROR = 1442u32; +pub const ERROR_NOT_CLIENT_PORT: u32 = 913u32; +pub const ERROR_NOT_CONNECTED: WIN32_ERROR = 2250u32; +pub const ERROR_NOT_CONTAINER: WIN32_ERROR = 1207u32; +pub const ERROR_NOT_DAX_MAPPABLE: WIN32_ERROR = 421u32; +pub const ERROR_NOT_DISABLEABLE: WIN32_ERROR = 3758096945u32; +pub const ERROR_NOT_DOS_DISK: WIN32_ERROR = 26u32; +pub const ERROR_NOT_EMPTY: WIN32_ERROR = 4307u32; +pub const ERROR_NOT_ENOUGH_MEMORY: WIN32_ERROR = 8u32; +pub const ERROR_NOT_ENOUGH_QUOTA: WIN32_ERROR = 1816u32; +pub const ERROR_NOT_ENOUGH_SERVER_MEMORY: WIN32_ERROR = 1130u32; +pub const ERROR_NOT_EXPORT_FORMAT: WIN32_ERROR = 6008u32; +pub const ERROR_NOT_FOUND: WIN32_ERROR = 1168u32; +pub const ERROR_NOT_GUI_PROCESS: WIN32_ERROR = 1471u32; +pub const ERROR_NOT_INSTALLED: WIN32_ERROR = 3758100480u32; +pub const ERROR_NOT_JOINED: WIN32_ERROR = 136u32; +pub const ERROR_NOT_LOCKED: WIN32_ERROR = 158u32; +pub const ERROR_NOT_LOGGED_ON: WIN32_ERROR = 1245u32; +pub const ERROR_NOT_LOGON_PROCESS: WIN32_ERROR = 1362u32; +pub const ERROR_NOT_OWNER: WIN32_ERROR = 288u32; +pub const ERROR_NOT_QUORUM_CAPABLE: WIN32_ERROR = 5021u32; +pub const ERROR_NOT_QUORUM_CLASS: WIN32_ERROR = 5025u32; +pub const ERROR_NOT_READY: WIN32_ERROR = 21u32; +pub const ERROR_NOT_READ_FROM_COPY: WIN32_ERROR = 337u32; +pub const ERROR_NOT_REDUNDANT_STORAGE: WIN32_ERROR = 333u32; +pub const ERROR_NOT_REGISTRY_FILE: WIN32_ERROR = 1017u32; +pub const ERROR_NOT_ROUTER_PORT: u32 = 914u32; +pub const ERROR_NOT_SAFEBOOT_SERVICE: WIN32_ERROR = 1084u32; +pub const ERROR_NOT_SAFE_MODE_DRIVER: WIN32_ERROR = 646u32; +pub const ERROR_NOT_SAME_DEVICE: WIN32_ERROR = 17u32; +pub const ERROR_NOT_SAME_OBJECT: WIN32_ERROR = 1656u32; +pub const ERROR_NOT_SNAPSHOT_VOLUME: WIN32_ERROR = 6841u32; +pub const ERROR_NOT_SUBSTED: WIN32_ERROR = 137u32; +pub const ERROR_NOT_SUPPORTED: WIN32_ERROR = 50u32; +pub const ERROR_NOT_SUPPORTED_IN_APPCONTAINER: WIN32_ERROR = 4252u32; +pub const ERROR_NOT_SUPPORTED_ON_DAX: WIN32_ERROR = 360u32; +pub const ERROR_NOT_SUPPORTED_ON_SBS: WIN32_ERROR = 1254u32; +pub const ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER: WIN32_ERROR = 8584u32; +pub const ERROR_NOT_SUPPORTED_WITH_AUDITING: WIN32_ERROR = 499u32; +pub const ERROR_NOT_SUPPORTED_WITH_BTT: WIN32_ERROR = 429u32; +pub const ERROR_NOT_SUPPORTED_WITH_BYPASSIO: WIN32_ERROR = 493u32; +pub const ERROR_NOT_SUPPORTED_WITH_CACHED_HANDLE: WIN32_ERROR = 509u32; +pub const ERROR_NOT_SUPPORTED_WITH_COMPRESSION: WIN32_ERROR = 496u32; +pub const ERROR_NOT_SUPPORTED_WITH_DEDUPLICATION: WIN32_ERROR = 498u32; +pub const ERROR_NOT_SUPPORTED_WITH_ENCRYPTION: WIN32_ERROR = 495u32; +pub const ERROR_NOT_SUPPORTED_WITH_MONITORING: WIN32_ERROR = 503u32; +pub const ERROR_NOT_SUPPORTED_WITH_REPLICATION: WIN32_ERROR = 497u32; +pub const ERROR_NOT_SUPPORTED_WITH_SNAPSHOT: WIN32_ERROR = 504u32; +pub const ERROR_NOT_SUPPORTED_WITH_VIRTUALIZATION: WIN32_ERROR = 505u32; +pub const ERROR_NOT_TINY_STREAM: WIN32_ERROR = 598u32; +pub const ERROR_NO_ACE_CONDITION: WIN32_ERROR = 804u32; +pub const ERROR_NO_ADMIN_ACCESS_POINT: WIN32_ERROR = 5090u32; +pub const ERROR_NO_APPLICABLE_APP_LICENSES_FOUND: ::windows_sys::core::HRESULT = -1058406399i32; +pub const ERROR_NO_ASSOCIATED_CLASS: WIN32_ERROR = 3758096896u32; +pub const ERROR_NO_ASSOCIATED_SERVICE: WIN32_ERROR = 3758096921u32; +pub const ERROR_NO_ASSOCIATION: WIN32_ERROR = 1155u32; +pub const ERROR_NO_AUTHENTICODE_CATALOG: WIN32_ERROR = 3758096959u32; +pub const ERROR_NO_AUTH_PROTOCOL_AVAILABLE: u32 = 918u32; +pub const ERROR_NO_BACKUP: WIN32_ERROR = 3758096643u32; +pub const ERROR_NO_BROWSER_SERVERS_FOUND: WIN32_ERROR = 6118u32; +pub const ERROR_NO_BYPASSIO_DRIVER_SUPPORT: WIN32_ERROR = 494u32; +pub const ERROR_NO_CALLBACK_ACTIVE: WIN32_ERROR = 614u32; +pub const ERROR_NO_CATALOG_FOR_OEM_INF: WIN32_ERROR = 3758096943u32; +pub const ERROR_NO_CLASSINSTALL_PARAMS: WIN32_ERROR = 3758096917u32; +pub const ERROR_NO_CLASS_DRIVER_LIST: WIN32_ERROR = 3758096920u32; +pub const ERROR_NO_COMPAT_DRIVERS: WIN32_ERROR = 3758096936u32; +pub const ERROR_NO_CONFIGMGR_SERVICES: WIN32_ERROR = 3758096931u32; +pub const ERROR_NO_DATA: WIN32_ERROR = 232u32; +pub const ERROR_NO_DATA_DETECTED: WIN32_ERROR = 1104u32; +pub const ERROR_NO_DEFAULT_DEVICE_INTERFACE: WIN32_ERROR = 3758096922u32; +pub const ERROR_NO_DEFAULT_INTERFACE_DEVICE: WIN32_ERROR = 3758096922u32; +pub const ERROR_NO_DEVICE_ICON: WIN32_ERROR = 3758096937u32; +pub const ERROR_NO_DEVICE_SELECTED: WIN32_ERROR = 3758096913u32; +pub const ERROR_NO_DRIVER_SELECTED: WIN32_ERROR = 3758096899u32; +pub const ERROR_NO_EFS: WIN32_ERROR = 6004u32; +pub const ERROR_NO_EVENT_PAIR: WIN32_ERROR = 580u32; +pub const ERROR_NO_GUID_TRANSLATION: WIN32_ERROR = 560u32; +pub const ERROR_NO_IMPERSONATION_TOKEN: WIN32_ERROR = 1309u32; +pub const ERROR_NO_INF: WIN32_ERROR = 3758096906u32; +pub const ERROR_NO_INHERITANCE: WIN32_ERROR = 1391u32; +pub const ERROR_NO_INTERFACE_CREDENTIALS_SET: u32 = 909u32; +pub const ERROR_NO_LINK_TRACKING_IN_TRANSACTION: WIN32_ERROR = 6852u32; +pub const ERROR_NO_LOGON_SERVERS: WIN32_ERROR = 1311u32; +pub const ERROR_NO_LOG_SPACE: WIN32_ERROR = 1019u32; +pub const ERROR_NO_MATCH: WIN32_ERROR = 1169u32; +pub const ERROR_NO_MEDIA_IN_DRIVE: WIN32_ERROR = 1112u32; +pub const ERROR_NO_MORE_DEVICES: WIN32_ERROR = 1248u32; +pub const ERROR_NO_MORE_FILES: WIN32_ERROR = 18u32; +pub const ERROR_NO_MORE_ITEMS: WIN32_ERROR = 259u32; +pub const ERROR_NO_MORE_MATCHES: WIN32_ERROR = 626u32; +pub const ERROR_NO_MORE_SEARCH_HANDLES: WIN32_ERROR = 113u32; +pub const ERROR_NO_MORE_USER_HANDLES: WIN32_ERROR = 1158u32; +pub const ERROR_NO_NETWORK: WIN32_ERROR = 1222u32; +pub const ERROR_NO_NET_OR_BAD_PATH: WIN32_ERROR = 1203u32; +pub const ERROR_NO_NVRAM_RESOURCES: WIN32_ERROR = 1470u32; +pub const ERROR_NO_PAGEFILE: WIN32_ERROR = 578u32; +pub const ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND: WIN32_ERROR = 408u32; +pub const ERROR_NO_PROC_SLOTS: WIN32_ERROR = 89u32; +pub const ERROR_NO_PROMOTION_ACTIVE: WIN32_ERROR = 8222u32; +pub const ERROR_NO_QUOTAS_FOR_ACCOUNT: WIN32_ERROR = 1302u32; +pub const ERROR_NO_RADIUS_SERVERS: u32 = 938u32; +pub const ERROR_NO_RANGES_PROCESSED: WIN32_ERROR = 312u32; +pub const ERROR_NO_RECOVERY_POLICY: WIN32_ERROR = 6003u32; +pub const ERROR_NO_RECOVERY_PROGRAM: WIN32_ERROR = 1082u32; +pub const ERROR_NO_SAVEPOINT_WITH_OPEN_FILES: WIN32_ERROR = 6842u32; +pub const ERROR_NO_SCROLLBARS: WIN32_ERROR = 1447u32; +pub const ERROR_NO_SECRETS: WIN32_ERROR = 8620u32; +pub const ERROR_NO_SECURITY_ON_OBJECT: WIN32_ERROR = 1350u32; +pub const ERROR_NO_SHUTDOWN_IN_PROGRESS: WIN32_ERROR = 1116u32; +pub const ERROR_NO_SIGNAL_SENT: WIN32_ERROR = 205u32; +pub const ERROR_NO_SIGNATURE: u32 = 951u32; +pub const ERROR_NO_SITENAME: WIN32_ERROR = 1919u32; +pub const ERROR_NO_SITE_SETTINGS_OBJECT: WIN32_ERROR = 8619u32; +pub const ERROR_NO_SPOOL_SPACE: WIN32_ERROR = 62u32; +pub const ERROR_NO_SUCH_ALIAS: WIN32_ERROR = 1376u32; +pub const ERROR_NO_SUCH_DEVICE: WIN32_ERROR = 433u32; +pub const ERROR_NO_SUCH_DEVICE_INTERFACE: WIN32_ERROR = 3758096933u32; +pub const ERROR_NO_SUCH_DEVINST: WIN32_ERROR = 3758096907u32; +pub const ERROR_NO_SUCH_DOMAIN: WIN32_ERROR = 1355u32; +pub const ERROR_NO_SUCH_GROUP: WIN32_ERROR = 1319u32; +pub const ERROR_NO_SUCH_INTERFACE: u32 = 905u32; +pub const ERROR_NO_SUCH_INTERFACE_CLASS: WIN32_ERROR = 3758096926u32; +pub const ERROR_NO_SUCH_INTERFACE_DEVICE: WIN32_ERROR = 3758096933u32; +pub const ERROR_NO_SUCH_LOGON_SESSION: WIN32_ERROR = 1312u32; +pub const ERROR_NO_SUCH_MEMBER: WIN32_ERROR = 1387u32; +pub const ERROR_NO_SUCH_PACKAGE: WIN32_ERROR = 1364u32; +pub const ERROR_NO_SUCH_PRIVILEGE: WIN32_ERROR = 1313u32; +pub const ERROR_NO_SUCH_SITE: WIN32_ERROR = 1249u32; +pub const ERROR_NO_SUCH_USER: WIN32_ERROR = 1317u32; +pub const ERROR_NO_SUPPORTING_DRIVES: WIN32_ERROR = 4339u32; +pub const ERROR_NO_SYSTEM_MENU: WIN32_ERROR = 1437u32; +pub const ERROR_NO_SYSTEM_RESOURCES: WIN32_ERROR = 1450u32; +pub const ERROR_NO_TASK_QUEUE: WIN32_ERROR = 427u32; +pub const ERROR_NO_TOKEN: WIN32_ERROR = 1008u32; +pub const ERROR_NO_TRACKING_SERVICE: WIN32_ERROR = 1172u32; +pub const ERROR_NO_TRUST_LSA_SECRET: WIN32_ERROR = 1786u32; +pub const ERROR_NO_TRUST_SAM_ACCOUNT: WIN32_ERROR = 1787u32; +pub const ERROR_NO_TXF_METADATA: WIN32_ERROR = 6816u32; +pub const ERROR_NO_UNICODE_TRANSLATION: WIN32_ERROR = 1113u32; +pub const ERROR_NO_USER_KEYS: WIN32_ERROR = 6006u32; +pub const ERROR_NO_USER_SESSION_KEY: WIN32_ERROR = 1394u32; +pub const ERROR_NO_VOLUME_ID: WIN32_ERROR = 1173u32; +pub const ERROR_NO_VOLUME_LABEL: WIN32_ERROR = 125u32; +pub const ERROR_NO_WILDCARD_CHARACTERS: WIN32_ERROR = 1417u32; +pub const ERROR_NO_WORK_DONE: WIN32_ERROR = 235u32; +pub const ERROR_NO_WRITABLE_DC_FOUND: WIN32_ERROR = 8621u32; +pub const ERROR_NO_YIELD_PERFORMED: WIN32_ERROR = 721u32; +pub const ERROR_NTLM_BLOCKED: WIN32_ERROR = 1937u32; +pub const ERROR_NT_CROSS_ENCRYPTION_REQUIRED: WIN32_ERROR = 1386u32; +pub const ERROR_NULL_LM_PASSWORD: WIN32_ERROR = 1304u32; +pub const ERROR_OBJECT_ALREADY_EXISTS: WIN32_ERROR = 5010u32; +pub const ERROR_OBJECT_IN_LIST: WIN32_ERROR = 5011u32; +pub const ERROR_OBJECT_IS_IMMUTABLE: WIN32_ERROR = 4449u32; +pub const ERROR_OBJECT_NAME_EXISTS: WIN32_ERROR = 698u32; +pub const ERROR_OBJECT_NOT_EXTERNALLY_BACKED: WIN32_ERROR = 342u32; +pub const ERROR_OBJECT_NOT_FOUND: WIN32_ERROR = 4312u32; +pub const ERROR_OBJECT_NO_LONGER_EXISTS: WIN32_ERROR = 6807u32; +pub const ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED: WIN32_ERROR = 4442u32; +pub const ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED: WIN32_ERROR = 4440u32; +pub const ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED: WIN32_ERROR = 4443u32; +pub const ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED: WIN32_ERROR = 4441u32; +pub const ERROR_OFFSET_ALIGNMENT_VIOLATION: WIN32_ERROR = 327u32; +pub const ERROR_OLD_WIN_VERSION: WIN32_ERROR = 1150u32; +pub const ERROR_ONLY_IF_CONNECTED: WIN32_ERROR = 1251u32; +pub const ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE: WIN32_ERROR = 3758096965u32; +pub const ERROR_OPEN_FAILED: WIN32_ERROR = 110u32; +pub const ERROR_OPEN_FILES: WIN32_ERROR = 2401u32; +pub const ERROR_OPERATION_ABORTED: WIN32_ERROR = 995u32; +pub const ERROR_OPERATION_IN_PROGRESS: WIN32_ERROR = 329u32; +pub const ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT: WIN32_ERROR = 15145u32; +pub const ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION: WIN32_ERROR = 6853u32; +pub const ERROR_OPLOCK_BREAK_IN_PROGRESS: WIN32_ERROR = 742u32; +pub const ERROR_OPLOCK_HANDLE_CLOSED: WIN32_ERROR = 803u32; +pub const ERROR_OPLOCK_NOT_GRANTED: WIN32_ERROR = 300u32; +pub const ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE: WIN32_ERROR = 800u32; +pub const ERROR_ORPHAN_NAME_EXHAUSTED: WIN32_ERROR = 799u32; +pub const ERROR_OUTOFMEMORY: WIN32_ERROR = 14u32; +pub const ERROR_OUT_OF_PAPER: WIN32_ERROR = 28u32; +pub const ERROR_OUT_OF_STRUCTURES: WIN32_ERROR = 84u32; +pub const ERROR_OVERRIDE_NOCHANGES: WIN32_ERROR = 1252u32; +pub const ERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES: WIN32_ERROR = 15656u32; +pub const ERROR_PACKAGES_IN_USE: WIN32_ERROR = 15618u32; +pub const ERROR_PACKAGES_REPUTATION_CHECK_FAILED: WIN32_ERROR = 15643u32; +pub const ERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT: WIN32_ERROR = 15644u32; +pub const ERROR_PACKAGE_ALREADY_EXISTS: WIN32_ERROR = 15611u32; +pub const ERROR_PACKAGE_EXTERNAL_LOCATION_NOT_ALLOWED: WIN32_ERROR = 15662u32; +pub const ERROR_PACKAGE_LACKS_CAPABILITY_FOR_MANDATORY_STARTUPTASKS: WIN32_ERROR = 15664u32; +pub const ERROR_PACKAGE_LACKS_CAPABILITY_TO_DEPLOY_ON_HOST: WIN32_ERROR = 15658u32; +pub const ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING: WIN32_ERROR = 15636u32; +pub const ERROR_PACKAGE_MOVE_FAILED: WIN32_ERROR = 15627u32; +pub const ERROR_PACKAGE_NAME_MISMATCH: WIN32_ERROR = 15670u32; +pub const ERROR_PACKAGE_NOT_REGISTERED_FOR_USER: WIN32_ERROR = 15669u32; +pub const ERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM: WIN32_ERROR = 15635u32; +pub const ERROR_PACKAGE_REPOSITORY_CORRUPTED: WIN32_ERROR = 15614u32; +pub const ERROR_PACKAGE_STAGING_ONHOLD: WIN32_ERROR = 15638u32; +pub const ERROR_PACKAGE_UPDATING: WIN32_ERROR = 15616u32; +pub const ERROR_PAGED_SYSTEM_RESOURCES: WIN32_ERROR = 1452u32; +pub const ERROR_PAGEFILE_CREATE_FAILED: WIN32_ERROR = 576u32; +pub const ERROR_PAGEFILE_NOT_SUPPORTED: WIN32_ERROR = 491u32; +pub const ERROR_PAGEFILE_QUOTA: WIN32_ERROR = 1454u32; +pub const ERROR_PAGEFILE_QUOTA_EXCEEDED: WIN32_ERROR = 567u32; +pub const ERROR_PAGE_FAULT_COPY_ON_WRITE: WIN32_ERROR = 749u32; +pub const ERROR_PAGE_FAULT_DEMAND_ZERO: WIN32_ERROR = 748u32; +pub const ERROR_PAGE_FAULT_GUARD_PAGE: WIN32_ERROR = 750u32; +pub const ERROR_PAGE_FAULT_PAGING_FILE: WIN32_ERROR = 751u32; +pub const ERROR_PAGE_FAULT_TRANSITION: WIN32_ERROR = 747u32; +pub const ERROR_PARAMETER_QUOTA_EXCEEDED: WIN32_ERROR = 1283u32; +pub const ERROR_PARTIAL_COPY: WIN32_ERROR = 299u32; +pub const ERROR_PARTITION_FAILURE: WIN32_ERROR = 1105u32; +pub const ERROR_PARTITION_TERMINATING: WIN32_ERROR = 1184u32; +pub const ERROR_PASSWORD_CHANGE_REQUIRED: WIN32_ERROR = 1938u32; +pub const ERROR_PASSWORD_EXPIRED: WIN32_ERROR = 1330u32; +pub const ERROR_PASSWORD_MUST_CHANGE: WIN32_ERROR = 1907u32; +pub const ERROR_PASSWORD_RESTRICTION: WIN32_ERROR = 1325u32; +pub const ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT: WIN32_ERROR = 1651u32; +pub const ERROR_PATCH_NO_SEQUENCE: WIN32_ERROR = 1648u32; +pub const ERROR_PATCH_PACKAGE_INVALID: WIN32_ERROR = 1636u32; +pub const ERROR_PATCH_PACKAGE_OPEN_FAILED: WIN32_ERROR = 1635u32; +pub const ERROR_PATCH_PACKAGE_REJECTED: WIN32_ERROR = 1643u32; +pub const ERROR_PATCH_PACKAGE_UNSUPPORTED: WIN32_ERROR = 1637u32; +pub const ERROR_PATCH_REMOVAL_DISALLOWED: WIN32_ERROR = 1649u32; +pub const ERROR_PATCH_REMOVAL_UNSUPPORTED: WIN32_ERROR = 1646u32; +pub const ERROR_PATCH_TARGET_NOT_FOUND: WIN32_ERROR = 1642u32; +pub const ERROR_PATH_BUSY: WIN32_ERROR = 148u32; +pub const ERROR_PATH_NOT_FOUND: WIN32_ERROR = 3u32; +pub const ERROR_PEER_REFUSED_AUTH: u32 = 919u32; +pub const ERROR_PER_USER_TRUST_QUOTA_EXCEEDED: WIN32_ERROR = 1932u32; +pub const ERROR_PIPE_BUSY: WIN32_ERROR = 231u32; +pub const ERROR_PIPE_CONNECTED: WIN32_ERROR = 535u32; +pub const ERROR_PIPE_LISTENING: WIN32_ERROR = 536u32; +pub const ERROR_PIPE_LOCAL: WIN32_ERROR = 229u32; +pub const ERROR_PIPE_NOT_CONNECTED: WIN32_ERROR = 233u32; +pub const ERROR_PKINIT_FAILURE: WIN32_ERROR = 1263u32; +pub const ERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND: WIN32_ERROR = 4574u32; +pub const ERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED: WIN32_ERROR = 4573u32; +pub const ERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED: WIN32_ERROR = 4572u32; +pub const ERROR_PLATFORM_MANIFEST_INVALID: WIN32_ERROR = 4571u32; +pub const ERROR_PLATFORM_MANIFEST_NOT_ACTIVE: WIN32_ERROR = 4575u32; +pub const ERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED: WIN32_ERROR = 4570u32; +pub const ERROR_PLATFORM_MANIFEST_NOT_SIGNED: WIN32_ERROR = 4576u32; +pub const ERROR_PLUGPLAY_QUERY_VETOED: WIN32_ERROR = 683u32; +pub const ERROR_PNP_BAD_MPS_TABLE: WIN32_ERROR = 671u32; +pub const ERROR_PNP_INVALID_ID: WIN32_ERROR = 674u32; +pub const ERROR_PNP_IRQ_TRANSLATION_FAILED: WIN32_ERROR = 673u32; +pub const ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT: WIN32_ERROR = 480u32; +pub const ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT: WIN32_ERROR = 481u32; +pub const ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT: WIN32_ERROR = 482u32; +pub const ERROR_PNP_REBOOT_REQUIRED: WIN32_ERROR = 638u32; +pub const ERROR_PNP_REGISTRY_ERROR: WIN32_ERROR = 3758096954u32; +pub const ERROR_PNP_RESTART_ENUMERATION: WIN32_ERROR = 636u32; +pub const ERROR_PNP_TRANSLATION_FAILED: WIN32_ERROR = 672u32; +pub const ERROR_POINT_NOT_FOUND: WIN32_ERROR = 1171u32; +pub const ERROR_POLICY_OBJECT_NOT_FOUND: WIN32_ERROR = 8219u32; +pub const ERROR_POLICY_ONLY_IN_DS: WIN32_ERROR = 8220u32; +pub const ERROR_POPUP_ALREADY_ACTIVE: WIN32_ERROR = 1446u32; +pub const ERROR_PORT_LIMIT_REACHED: u32 = 931u32; +pub const ERROR_PORT_MESSAGE_TOO_LONG: WIN32_ERROR = 546u32; +pub const ERROR_PORT_NOT_SET: WIN32_ERROR = 642u32; +pub const ERROR_PORT_UNREACHABLE: WIN32_ERROR = 1234u32; +pub const ERROR_POSSIBLE_DEADLOCK: WIN32_ERROR = 1131u32; +pub const ERROR_POTENTIAL_FILE_FOUND: WIN32_ERROR = 1180u32; +pub const ERROR_PPP_SESSION_TIMEOUT: u32 = 932u32; +pub const ERROR_PREDEFINED_HANDLE: WIN32_ERROR = 714u32; +pub const ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED: WIN32_ERROR = 746u32; +pub const ERROR_PRINTER_ALREADY_EXISTS: WIN32_ERROR = 1802u32; +pub const ERROR_PRINTER_DELETED: WIN32_ERROR = 1905u32; +pub const ERROR_PRINTER_DRIVER_ALREADY_INSTALLED: WIN32_ERROR = 1795u32; +pub const ERROR_PRINTER_DRIVER_BLOCKED: WIN32_ERROR = 3014u32; +pub const ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED: WIN32_ERROR = 3019u32; +pub const ERROR_PRINTER_DRIVER_IN_USE: WIN32_ERROR = 3001u32; +pub const ERROR_PRINTER_DRIVER_PACKAGE_IN_USE: WIN32_ERROR = 3015u32; +pub const ERROR_PRINTER_DRIVER_WARNED: WIN32_ERROR = 3013u32; +pub const ERROR_PRINTER_HAS_JOBS_QUEUED: WIN32_ERROR = 3009u32; +pub const ERROR_PRINTER_NOT_FOUND: WIN32_ERROR = 3012u32; +pub const ERROR_PRINTER_NOT_SHAREABLE: WIN32_ERROR = 3022u32; +pub const ERROR_PRINTQ_FULL: WIN32_ERROR = 61u32; +pub const ERROR_PRINT_CANCELLED: WIN32_ERROR = 63u32; +pub const ERROR_PRINT_JOB_RESTART_REQUIRED: WIN32_ERROR = 3020u32; +pub const ERROR_PRINT_MONITOR_ALREADY_INSTALLED: WIN32_ERROR = 3006u32; +pub const ERROR_PRINT_MONITOR_IN_USE: WIN32_ERROR = 3008u32; +pub const ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED: WIN32_ERROR = 3005u32; +pub const ERROR_PRIVATE_DIALOG_INDEX: WIN32_ERROR = 1415u32; +pub const ERROR_PRIVILEGE_NOT_HELD: WIN32_ERROR = 1314u32; +pub const ERROR_PRI_MERGE_ADD_FILE_FAILED: WIN32_ERROR = 15151u32; +pub const ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED: WIN32_ERROR = 15155u32; +pub const ERROR_PRI_MERGE_INVALID_FILE_NAME: WIN32_ERROR = 15158u32; +pub const ERROR_PRI_MERGE_LOAD_FILE_FAILED: WIN32_ERROR = 15150u32; +pub const ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED: WIN32_ERROR = 15156u32; +pub const ERROR_PRI_MERGE_MISSING_SCHEMA: WIN32_ERROR = 15149u32; +pub const ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED: WIN32_ERROR = 15154u32; +pub const ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED: WIN32_ERROR = 15153u32; +pub const ERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED: WIN32_ERROR = 15157u32; +pub const ERROR_PRI_MERGE_VERSION_MISMATCH: WIN32_ERROR = 15148u32; +pub const ERROR_PRI_MERGE_WRITE_FILE_FAILED: WIN32_ERROR = 15152u32; +pub const ERROR_PROCESS_ABORTED: WIN32_ERROR = 1067u32; +pub const ERROR_PROCESS_IN_JOB: WIN32_ERROR = 760u32; +pub const ERROR_PROCESS_IS_PROTECTED: WIN32_ERROR = 1293u32; +pub const ERROR_PROCESS_MODE_ALREADY_BACKGROUND: WIN32_ERROR = 402u32; +pub const ERROR_PROCESS_MODE_NOT_BACKGROUND: WIN32_ERROR = 403u32; +pub const ERROR_PROCESS_NOT_IN_JOB: WIN32_ERROR = 759u32; +pub const ERROR_PROC_NOT_FOUND: WIN32_ERROR = 127u32; +pub const ERROR_PRODUCT_UNINSTALLED: WIN32_ERROR = 1614u32; +pub const ERROR_PRODUCT_VERSION: WIN32_ERROR = 1638u32; +pub const ERROR_PROFILE_DOES_NOT_MATCH_DEVICE: WIN32_ERROR = 2023u32; +pub const ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE: WIN32_ERROR = 2015u32; +pub const ERROR_PROFILE_NOT_FOUND: WIN32_ERROR = 2016u32; +pub const ERROR_PROFILING_AT_LIMIT: WIN32_ERROR = 553u32; +pub const ERROR_PROFILING_NOT_STARTED: WIN32_ERROR = 550u32; +pub const ERROR_PROFILING_NOT_STOPPED: WIN32_ERROR = 551u32; +pub const ERROR_PROMOTION_ACTIVE: WIN32_ERROR = 8221u32; +pub const ERROR_PROTOCOL_ALREADY_INSTALLED: u32 = 948u32; +pub const ERROR_PROTOCOL_STOP_PENDING: u32 = 907u32; +pub const ERROR_PROTOCOL_UNREACHABLE: WIN32_ERROR = 1233u32; +pub const ERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED: WIN32_ERROR = 15642u32; +pub const ERROR_PWD_HISTORY_CONFLICT: WIN32_ERROR = 617u32; +pub const ERROR_PWD_TOO_LONG: WIN32_ERROR = 657u32; +pub const ERROR_PWD_TOO_RECENT: WIN32_ERROR = 616u32; +pub const ERROR_PWD_TOO_SHORT: WIN32_ERROR = 615u32; +pub const ERROR_QUERY_STORAGE_ERROR: WIN32_ERROR = 2151284737u32; +pub const ERROR_QUIC_ALPN_NEG_FAILURE: ::windows_sys::core::HRESULT = -2143223801i32; +pub const ERROR_QUIC_CONNECTION_IDLE: ::windows_sys::core::HRESULT = -2143223803i32; +pub const ERROR_QUIC_CONNECTION_TIMEOUT: ::windows_sys::core::HRESULT = -2143223802i32; +pub const ERROR_QUIC_HANDSHAKE_FAILURE: ::windows_sys::core::HRESULT = -2143223808i32; +pub const ERROR_QUIC_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2143223805i32; +pub const ERROR_QUIC_PROTOCOL_VIOLATION: ::windows_sys::core::HRESULT = -2143223804i32; +pub const ERROR_QUIC_USER_CANCELED: ::windows_sys::core::HRESULT = -2143223806i32; +pub const ERROR_QUIC_VER_NEG_FAILURE: ::windows_sys::core::HRESULT = -2143223807i32; +pub const ERROR_QUORUMLOG_OPEN_FAILED: WIN32_ERROR = 5028u32; +pub const ERROR_QUORUM_DISK_NOT_FOUND: WIN32_ERROR = 5086u32; +pub const ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP: WIN32_ERROR = 5928u32; +pub const ERROR_QUORUM_OWNER_ALIVE: WIN32_ERROR = 5034u32; +pub const ERROR_QUORUM_RESOURCE: WIN32_ERROR = 5020u32; +pub const ERROR_QUORUM_RESOURCE_ONLINE_FAILED: WIN32_ERROR = 5027u32; +pub const ERROR_QUOTA_ACTIVITY: WIN32_ERROR = 810u32; +pub const ERROR_QUOTA_LIST_INCONSISTENT: WIN32_ERROR = 621u32; +pub const ERROR_RANGE_LIST_CONFLICT: WIN32_ERROR = 627u32; +pub const ERROR_RANGE_NOT_FOUND: WIN32_ERROR = 644u32; +pub const ERROR_RDP_PROTOCOL_ERROR: WIN32_ERROR = 7065u32; +pub const ERROR_READ_FAULT: WIN32_ERROR = 30u32; +pub const ERROR_RECEIVE_EXPEDITED: WIN32_ERROR = 708u32; +pub const ERROR_RECEIVE_PARTIAL: WIN32_ERROR = 707u32; +pub const ERROR_RECEIVE_PARTIAL_EXPEDITED: WIN32_ERROR = 709u32; +pub const ERROR_RECOVERY_FAILURE: WIN32_ERROR = 1279u32; +pub const ERROR_RECOVERY_FILE_CORRUPT: WIN32_ERROR = 15619u32; +pub const ERROR_RECOVERY_NOT_NEEDED: WIN32_ERROR = 6821u32; +pub const ERROR_REC_NON_EXISTENT: WIN32_ERROR = 4005u32; +pub const ERROR_REDIRECTION_TO_DEFAULT_ACCOUNT_NOT_ALLOWED: WIN32_ERROR = 15657u32; +pub const ERROR_REDIRECTOR_HAS_OPEN_HANDLES: WIN32_ERROR = 1794u32; +pub const ERROR_REDIR_PAUSED: WIN32_ERROR = 72u32; +pub const ERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED: WIN32_ERROR = 15647u32; +pub const ERROR_REGISTRY_CORRUPT: WIN32_ERROR = 1015u32; +pub const ERROR_REGISTRY_HIVE_RECOVERED: WIN32_ERROR = 685u32; +pub const ERROR_REGISTRY_IO_FAILED: WIN32_ERROR = 1016u32; +pub const ERROR_REGISTRY_QUOTA_LIMIT: WIN32_ERROR = 613u32; +pub const ERROR_REGISTRY_RECOVERED: WIN32_ERROR = 1014u32; +pub const ERROR_REG_NAT_CONSUMPTION: WIN32_ERROR = 1261u32; +pub const ERROR_RELOC_CHAIN_XEEDS_SEGLIM: WIN32_ERROR = 201u32; +pub const ERROR_REMOTEACCESS_NOT_CONFIGURED: u32 = 956u32; +pub const ERROR_REMOTE_ACCT_DISABLED: u32 = 922u32; +pub const ERROR_REMOTE_AUTHENTICATION_FAILURE: u32 = 924u32; +pub const ERROR_REMOTE_COMM_FAILURE: WIN32_ERROR = 3758096929u32; +pub const ERROR_REMOTE_FILE_VERSION_MISMATCH: WIN32_ERROR = 6814u32; +pub const ERROR_REMOTE_NO_DIALIN_PERMISSION: u32 = 920u32; +pub const ERROR_REMOTE_PASSWD_EXPIRED: u32 = 921u32; +pub const ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED: WIN32_ERROR = 1936u32; +pub const ERROR_REMOTE_REQUEST_UNSUPPORTED: WIN32_ERROR = 3758096955u32; +pub const ERROR_REMOTE_RESTRICTED_LOGON_HOURS: u32 = 923u32; +pub const ERROR_REMOTE_SESSION_LIMIT_EXCEEDED: WIN32_ERROR = 1220u32; +pub const ERROR_REMOTE_STORAGE_MEDIA_ERROR: WIN32_ERROR = 4352u32; +pub const ERROR_REMOTE_STORAGE_NOT_ACTIVE: WIN32_ERROR = 4351u32; +pub const ERROR_REMOVE_FAILED: WIN32_ERROR = 15610u32; +pub const ERROR_REM_NOT_LIST: WIN32_ERROR = 51u32; +pub const ERROR_REPARSE: WIN32_ERROR = 741u32; +pub const ERROR_REPARSE_ATTRIBUTE_CONFLICT: WIN32_ERROR = 4391u32; +pub const ERROR_REPARSE_OBJECT: WIN32_ERROR = 755u32; +pub const ERROR_REPARSE_POINT_ENCOUNTERED: WIN32_ERROR = 4395u32; +pub const ERROR_REPARSE_TAG_INVALID: WIN32_ERROR = 4393u32; +pub const ERROR_REPARSE_TAG_MISMATCH: WIN32_ERROR = 4394u32; +pub const ERROR_REPLY_MESSAGE_MISMATCH: WIN32_ERROR = 595u32; +pub const ERROR_REQUEST_ABORTED: WIN32_ERROR = 1235u32; +pub const ERROR_REQUEST_OUT_OF_SEQUENCE: WIN32_ERROR = 776u32; +pub const ERROR_REQUEST_PAUSED: WIN32_ERROR = 3050u32; +pub const ERROR_REQUEST_REFUSED: WIN32_ERROR = 4320u32; +pub const ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION: WIN32_ERROR = 1459u32; +pub const ERROR_REQ_NOT_ACCEP: WIN32_ERROR = 71u32; +pub const ERROR_RESIDENT_FILE_NOT_SUPPORTED: WIN32_ERROR = 334u32; +pub const ERROR_RESILIENCY_FILE_CORRUPT: WIN32_ERROR = 15625u32; +pub const ERROR_RESMON_CREATE_FAILED: WIN32_ERROR = 5017u32; +pub const ERROR_RESMON_INVALID_STATE: WIN32_ERROR = 5084u32; +pub const ERROR_RESMON_ONLINE_FAILED: WIN32_ERROR = 5018u32; +pub const ERROR_RESMON_SYSTEM_RESOURCES_LACKING: WIN32_ERROR = 5956u32; +pub const ERROR_RESOURCEMANAGER_NOT_FOUND: WIN32_ERROR = 6716u32; +pub const ERROR_RESOURCEMANAGER_READ_ONLY: WIN32_ERROR = 6707u32; +pub const ERROR_RESOURCE_CALL_TIMED_OUT: WIN32_ERROR = 5910u32; +pub const ERROR_RESOURCE_DATA_NOT_FOUND: WIN32_ERROR = 1812u32; +pub const ERROR_RESOURCE_DISABLED: WIN32_ERROR = 4309u32; +pub const ERROR_RESOURCE_ENUM_USER_STOP: WIN32_ERROR = 15106u32; +pub const ERROR_RESOURCE_FAILED: WIN32_ERROR = 5038u32; +pub const ERROR_RESOURCE_LANG_NOT_FOUND: WIN32_ERROR = 1815u32; +pub const ERROR_RESOURCE_NAME_NOT_FOUND: WIN32_ERROR = 1814u32; +pub const ERROR_RESOURCE_NOT_AVAILABLE: WIN32_ERROR = 5006u32; +pub const ERROR_RESOURCE_NOT_FOUND: WIN32_ERROR = 5007u32; +pub const ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE: WIN32_ERROR = 5965u32; +pub const ERROR_RESOURCE_NOT_ONLINE: WIN32_ERROR = 5004u32; +pub const ERROR_RESOURCE_NOT_PRESENT: WIN32_ERROR = 4316u32; +pub const ERROR_RESOURCE_ONLINE: WIN32_ERROR = 5019u32; +pub const ERROR_RESOURCE_PROPERTIES_STORED: WIN32_ERROR = 5024u32; +pub const ERROR_RESOURCE_PROPERTY_UNCHANGEABLE: WIN32_ERROR = 5089u32; +pub const ERROR_RESOURCE_REQUIREMENTS_CHANGED: WIN32_ERROR = 756u32; +pub const ERROR_RESOURCE_TYPE_NOT_FOUND: WIN32_ERROR = 1813u32; +pub const ERROR_RESTART_APPLICATION: WIN32_ERROR = 1467u32; +pub const ERROR_RESUME_HIBERNATION: WIN32_ERROR = 727u32; +pub const ERROR_RETRY: WIN32_ERROR = 1237u32; +pub const ERROR_RETURN_ADDRESS_HIJACK_ATTEMPT: WIN32_ERROR = 1662u32; +pub const ERROR_REVISION_MISMATCH: WIN32_ERROR = 1306u32; +pub const ERROR_RING2SEG_MUST_BE_MOVABLE: WIN32_ERROR = 200u32; +pub const ERROR_RING2_STACK_IN_USE: WIN32_ERROR = 207u32; +pub const ERROR_RMODE_APP: WIN32_ERROR = 1153u32; +pub const ERROR_RM_ALREADY_STARTED: WIN32_ERROR = 6822u32; +pub const ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT: WIN32_ERROR = 6728u32; +pub const ERROR_RM_DISCONNECTED: WIN32_ERROR = 6819u32; +pub const ERROR_RM_METADATA_CORRUPT: WIN32_ERROR = 6802u32; +pub const ERROR_RM_NOT_ACTIVE: WIN32_ERROR = 6801u32; +pub const ERROR_ROLLBACK_TIMER_EXPIRED: WIN32_ERROR = 6829u32; +pub const ERROR_ROUTER_CONFIG_INCOMPATIBLE: u32 = 945u32; +pub const ERROR_ROUTER_STOPPED: u32 = 900u32; +pub const ERROR_ROWSNOTRELEASED: WIN32_ERROR = 772u32; +pub const ERROR_RPL_NOT_ALLOWED: WIN32_ERROR = 4006u32; +pub const ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT: WIN32_ERROR = 15403u32; +pub const ERROR_RUNLEVEL_SWITCH_IN_PROGRESS: WIN32_ERROR = 15404u32; +pub const ERROR_RUNLEVEL_SWITCH_TIMEOUT: WIN32_ERROR = 15402u32; +pub const ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED: WIN32_ERROR = 410u32; +pub const ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET: WIN32_ERROR = 411u32; +pub const ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE: WIN32_ERROR = 412u32; +pub const ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER: WIN32_ERROR = 413u32; +pub const ERROR_RXACT_COMMITTED: WIN32_ERROR = 744u32; +pub const ERROR_RXACT_COMMIT_FAILURE: WIN32_ERROR = 1370u32; +pub const ERROR_RXACT_COMMIT_NECESSARY: WIN32_ERROR = 678u32; +pub const ERROR_RXACT_INVALID_STATE: WIN32_ERROR = 1369u32; +pub const ERROR_RXACT_STATE_CREATED: WIN32_ERROR = 701u32; +pub const ERROR_SAME_DRIVE: WIN32_ERROR = 143u32; +pub const ERROR_SAM_INIT_FAILURE: WIN32_ERROR = 8541u32; +pub const ERROR_SCE_DISABLED: WIN32_ERROR = 3758096952u32; +pub const ERROR_SCOPE_NOT_FOUND: WIN32_ERROR = 318u32; +pub const ERROR_SCREEN_ALREADY_LOCKED: WIN32_ERROR = 1440u32; +pub const ERROR_SCRUB_DATA_DISABLED: WIN32_ERROR = 332u32; +pub const ERROR_SECCORE_INVALID_COMMAND: ::windows_sys::core::HRESULT = -1058537472i32; +pub const ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED: WIN32_ERROR = 15321u32; +pub const ERROR_SECRET_TOO_LONG: WIN32_ERROR = 1382u32; +pub const ERROR_SECTION_DIRECT_MAP_ONLY: WIN32_ERROR = 819u32; +pub const ERROR_SECTION_NAME_TOO_LONG: WIN32_ERROR = 3758096386u32; +pub const ERROR_SECTION_NOT_FOUND: WIN32_ERROR = 3758096641u32; +pub const ERROR_SECTOR_NOT_FOUND: WIN32_ERROR = 27u32; +pub const ERROR_SECUREBOOT_FILE_REPLACED: WIN32_ERROR = 4426u32; +pub const ERROR_SECUREBOOT_INVALID_POLICY: WIN32_ERROR = 4422u32; +pub const ERROR_SECUREBOOT_NOT_BASE_POLICY: WIN32_ERROR = 4434u32; +pub const ERROR_SECUREBOOT_NOT_ENABLED: WIN32_ERROR = 4425u32; +pub const ERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY: WIN32_ERROR = 4435u32; +pub const ERROR_SECUREBOOT_PLATFORM_ID_MISMATCH: WIN32_ERROR = 4430u32; +pub const ERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION: WIN32_ERROR = 4429u32; +pub const ERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED: WIN32_ERROR = 4427u32; +pub const ERROR_SECUREBOOT_POLICY_NOT_SIGNED: WIN32_ERROR = 4424u32; +pub const ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND: WIN32_ERROR = 4423u32; +pub const ERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED: WIN32_ERROR = 4431u32; +pub const ERROR_SECUREBOOT_POLICY_UNKNOWN: WIN32_ERROR = 4428u32; +pub const ERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH: WIN32_ERROR = 4432u32; +pub const ERROR_SECUREBOOT_POLICY_VIOLATION: WIN32_ERROR = 4421u32; +pub const ERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING: WIN32_ERROR = 4433u32; +pub const ERROR_SECUREBOOT_ROLLBACK_DETECTED: WIN32_ERROR = 4420u32; +pub const ERROR_SECURITY_DENIES_OPERATION: WIN32_ERROR = 447u32; +pub const ERROR_SECURITY_STREAM_IS_INCONSISTENT: WIN32_ERROR = 306u32; +pub const ERROR_SEEK: WIN32_ERROR = 25u32; +pub const ERROR_SEEK_ON_DEVICE: WIN32_ERROR = 132u32; +pub const ERROR_SEGMENT_NOTIFICATION: WIN32_ERROR = 702u32; +pub const ERROR_SEM_IS_SET: WIN32_ERROR = 102u32; +pub const ERROR_SEM_NOT_FOUND: WIN32_ERROR = 187u32; +pub const ERROR_SEM_OWNER_DIED: WIN32_ERROR = 105u32; +pub const ERROR_SEM_TIMEOUT: WIN32_ERROR = 121u32; +pub const ERROR_SEM_USER_LIMIT: WIN32_ERROR = 106u32; +pub const ERROR_SERIAL_NO_DEVICE: WIN32_ERROR = 1118u32; +pub const ERROR_SERVER_DISABLED: WIN32_ERROR = 1341u32; +pub const ERROR_SERVER_HAS_OPEN_HANDLES: WIN32_ERROR = 1811u32; +pub const ERROR_SERVER_NOT_DISABLED: WIN32_ERROR = 1342u32; +pub const ERROR_SERVER_SERVICE_CALL_REQUIRES_SMB1: WIN32_ERROR = 3023u32; +pub const ERROR_SERVER_SHUTDOWN_IN_PROGRESS: WIN32_ERROR = 1255u32; +pub const ERROR_SERVER_SID_MISMATCH: WIN32_ERROR = 628u32; +pub const ERROR_SERVER_TRANSPORT_CONFLICT: WIN32_ERROR = 816u32; +pub const ERROR_SERVICES_FAILED_AUTOSTART: WIN32_ERROR = 15405u32; +pub const ERROR_SERVICE_ALREADY_RUNNING: WIN32_ERROR = 1056u32; +pub const ERROR_SERVICE_CANNOT_ACCEPT_CTRL: WIN32_ERROR = 1061u32; +pub const ERROR_SERVICE_DATABASE_LOCKED: WIN32_ERROR = 1055u32; +pub const ERROR_SERVICE_DEPENDENCY_DELETED: WIN32_ERROR = 1075u32; +pub const ERROR_SERVICE_DEPENDENCY_FAIL: WIN32_ERROR = 1068u32; +pub const ERROR_SERVICE_DISABLED: WIN32_ERROR = 1058u32; +pub const ERROR_SERVICE_DOES_NOT_EXIST: WIN32_ERROR = 1060u32; +pub const ERROR_SERVICE_EXISTS: WIN32_ERROR = 1073u32; +pub const ERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE: WIN32_ERROR = 15655u32; +pub const ERROR_SERVICE_IS_PAUSED: u32 = 928u32; +pub const ERROR_SERVICE_LOGON_FAILED: WIN32_ERROR = 1069u32; +pub const ERROR_SERVICE_MARKED_FOR_DELETE: WIN32_ERROR = 1072u32; +pub const ERROR_SERVICE_NEVER_STARTED: WIN32_ERROR = 1077u32; +pub const ERROR_SERVICE_NOTIFICATION: WIN32_ERROR = 716u32; +pub const ERROR_SERVICE_NOTIFY_CLIENT_LAGGING: WIN32_ERROR = 1294u32; +pub const ERROR_SERVICE_NOT_ACTIVE: WIN32_ERROR = 1062u32; +pub const ERROR_SERVICE_NOT_FOUND: WIN32_ERROR = 1243u32; +pub const ERROR_SERVICE_NOT_IN_EXE: WIN32_ERROR = 1083u32; +pub const ERROR_SERVICE_NO_THREAD: WIN32_ERROR = 1054u32; +pub const ERROR_SERVICE_REQUEST_TIMEOUT: WIN32_ERROR = 1053u32; +pub const ERROR_SERVICE_SPECIFIC_ERROR: WIN32_ERROR = 1066u32; +pub const ERROR_SERVICE_START_HANG: WIN32_ERROR = 1070u32; +pub const ERROR_SESSION_CREDENTIAL_CONFLICT: WIN32_ERROR = 1219u32; +pub const ERROR_SESSION_KEY_TOO_SHORT: WIN32_ERROR = 501u32; +pub const ERROR_SETCOUNT_ON_BAD_LB: WIN32_ERROR = 1433u32; +pub const ERROR_SETMARK_DETECTED: WIN32_ERROR = 1103u32; +pub const ERROR_SET_CONTEXT_DENIED: WIN32_ERROR = 1660u32; +pub const ERROR_SET_NOT_FOUND: WIN32_ERROR = 1170u32; +pub const ERROR_SET_POWER_STATE_FAILED: WIN32_ERROR = 1141u32; +pub const ERROR_SET_POWER_STATE_VETOED: WIN32_ERROR = 1140u32; +pub const ERROR_SET_SYSTEM_RESTORE_POINT: WIN32_ERROR = 3758096950u32; +pub const ERROR_SHARED_POLICY: WIN32_ERROR = 8218u32; +pub const ERROR_SHARING_BUFFER_EXCEEDED: WIN32_ERROR = 36u32; +pub const ERROR_SHARING_PAUSED: WIN32_ERROR = 70u32; +pub const ERROR_SHARING_VIOLATION: WIN32_ERROR = 32u32; +pub const ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME: WIN32_ERROR = 305u32; +pub const ERROR_SHUTDOWN_CLUSTER: WIN32_ERROR = 5008u32; +pub const ERROR_SHUTDOWN_DISKS_NOT_IN_MAINTENANCE_MODE: WIN32_ERROR = 1192u32; +pub const ERROR_SHUTDOWN_IN_PROGRESS: WIN32_ERROR = 1115u32; +pub const ERROR_SHUTDOWN_IS_SCHEDULED: WIN32_ERROR = 1190u32; +pub const ERROR_SHUTDOWN_USERS_LOGGED_ON: WIN32_ERROR = 1191u32; +pub const ERROR_SIGNAL_PENDING: WIN32_ERROR = 162u32; +pub const ERROR_SIGNAL_REFUSED: WIN32_ERROR = 156u32; +pub const ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH: WIN32_ERROR = 3758096964u32; +pub const ERROR_SIGNED_PACKAGE_INVALID_PUBLISHER_NAMESPACE: WIN32_ERROR = 15661u32; +pub const ERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER: WIN32_ERROR = 15653u32; +pub const ERROR_SINGLE_INSTANCE_APP: WIN32_ERROR = 1152u32; +pub const ERROR_SMARTCARD_SUBSYSTEM_FAILURE: WIN32_ERROR = 1264u32; +pub const ERROR_SMB1_NOT_AVAILABLE: WIN32_ERROR = 384u32; +pub const ERROR_SMB_BAD_CLUSTER_DIALECT: ::windows_sys::core::HRESULT = -1067646975i32; +pub const ERROR_SMB_GUEST_LOGON_BLOCKED: WIN32_ERROR = 1272u32; +pub const ERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP: ::windows_sys::core::HRESULT = -1067646976i32; +pub const ERROR_SMB_NO_SIGNING_ALGORITHM_OVERLAP: ::windows_sys::core::HRESULT = -1067646974i32; +pub const ERROR_SMI_PRIMITIVE_INSTALLER_FAILED: WIN32_ERROR = 14108u32; +pub const ERROR_SMR_GARBAGE_COLLECTION_REQUIRED: WIN32_ERROR = 4445u32; +pub const ERROR_SOME_NOT_MAPPED: WIN32_ERROR = 1301u32; +pub const ERROR_SOURCE_ELEMENT_EMPTY: WIN32_ERROR = 1160u32; +pub const ERROR_SPACES_ALLOCATION_SIZE_INVALID: ::windows_sys::core::HRESULT = -2132344818i32; +pub const ERROR_SPACES_CACHE_FULL: ::windows_sys::core::HRESULT = -2132344794i32; +pub const ERROR_SPACES_CORRUPT_METADATA: ::windows_sys::core::HRESULT = -2132344808i32; +pub const ERROR_SPACES_DRIVE_LOST_DATA: ::windows_sys::core::HRESULT = -2132344801i32; +pub const ERROR_SPACES_DRIVE_NOT_READY: ::windows_sys::core::HRESULT = -2132344803i32; +pub const ERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID: ::windows_sys::core::HRESULT = -2132344814i32; +pub const ERROR_SPACES_DRIVE_REDUNDANCY_INVALID: ::windows_sys::core::HRESULT = -2132344826i32; +pub const ERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID: ::windows_sys::core::HRESULT = -2132344828i32; +pub const ERROR_SPACES_DRIVE_SPLIT: ::windows_sys::core::HRESULT = -2132344802i32; +pub const ERROR_SPACES_DRT_FULL: ::windows_sys::core::HRESULT = -2132344807i32; +pub const ERROR_SPACES_ENCLOSURE_AWARE_INVALID: ::windows_sys::core::HRESULT = -2132344817i32; +pub const ERROR_SPACES_ENTRY_INCOMPLETE: ::windows_sys::core::HRESULT = -2132344813i32; +pub const ERROR_SPACES_ENTRY_INVALID: ::windows_sys::core::HRESULT = -2132344812i32; +pub const ERROR_SPACES_EXTENDED_ERROR: ::windows_sys::core::HRESULT = -2132344820i32; +pub const ERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID: ::windows_sys::core::HRESULT = -2132344831i32; +pub const ERROR_SPACES_FLUSH_METADATA: ::windows_sys::core::HRESULT = -2132344795i32; +pub const ERROR_SPACES_INCONSISTENCY: ::windows_sys::core::HRESULT = -2132344806i32; +pub const ERROR_SPACES_INTERLEAVE_LENGTH_INVALID: ::windows_sys::core::HRESULT = -2132344823i32; +pub const ERROR_SPACES_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2132344830i32; +pub const ERROR_SPACES_LOG_NOT_READY: ::windows_sys::core::HRESULT = -2132344805i32; +pub const ERROR_SPACES_MAP_REQUIRED: ::windows_sys::core::HRESULT = -2132344810i32; +pub const ERROR_SPACES_MARK_DIRTY: ::windows_sys::core::HRESULT = -2132344800i32; +pub const ERROR_SPACES_NOT_ENOUGH_DRIVES: ::windows_sys::core::HRESULT = -2132344821i32; +pub const ERROR_SPACES_NO_REDUNDANCY: ::windows_sys::core::HRESULT = -2132344804i32; +pub const ERROR_SPACES_NUMBER_OF_COLUMNS_INVALID: ::windows_sys::core::HRESULT = -2132344822i32; +pub const ERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID: ::windows_sys::core::HRESULT = -2132344825i32; +pub const ERROR_SPACES_NUMBER_OF_GROUPS_INVALID: ::windows_sys::core::HRESULT = -2132344815i32; +pub const ERROR_SPACES_PARITY_LAYOUT_INVALID: ::windows_sys::core::HRESULT = -2132344824i32; +pub const ERROR_SPACES_POOL_WAS_DELETED: ::windows_sys::core::HRESULT = 15138817i32; +pub const ERROR_SPACES_PROVISIONING_TYPE_INVALID: ::windows_sys::core::HRESULT = -2132344819i32; +pub const ERROR_SPACES_REPAIR_IN_PROGRESS: ::windows_sys::core::HRESULT = -2132344793i32; +pub const ERROR_SPACES_RESILIENCY_TYPE_INVALID: ::windows_sys::core::HRESULT = -2132344829i32; +pub const ERROR_SPACES_UNSUPPORTED_VERSION: ::windows_sys::core::HRESULT = -2132344809i32; +pub const ERROR_SPACES_UPDATE_COLUMN_STATE: ::windows_sys::core::HRESULT = -2132344811i32; +pub const ERROR_SPACES_WRITE_CACHE_SIZE_INVALID: ::windows_sys::core::HRESULT = -2132344816i32; +pub const ERROR_SPARSE_FILE_NOT_SUPPORTED: WIN32_ERROR = 490u32; +pub const ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION: WIN32_ERROR = 6844u32; +pub const ERROR_SPECIAL_ACCOUNT: WIN32_ERROR = 1371u32; +pub const ERROR_SPECIAL_GROUP: WIN32_ERROR = 1372u32; +pub const ERROR_SPECIAL_USER: WIN32_ERROR = 1373u32; +pub const ERROR_SPL_NO_ADDJOB: WIN32_ERROR = 3004u32; +pub const ERROR_SPL_NO_STARTDOC: WIN32_ERROR = 3003u32; +pub const ERROR_SPOOL_FILE_NOT_FOUND: WIN32_ERROR = 3002u32; +pub const ERROR_SRC_SRV_DLL_LOAD_FAILED: WIN32_ERROR = 428u32; +pub const ERROR_STACK_BUFFER_OVERRUN: WIN32_ERROR = 1282u32; +pub const ERROR_STACK_OVERFLOW: WIN32_ERROR = 1001u32; +pub const ERROR_STACK_OVERFLOW_READ: WIN32_ERROR = 599u32; +pub const ERROR_STAGEFROMUPDATEAGENT_PACKAGE_NOT_APPLICABLE: WIN32_ERROR = 15668u32; +pub const ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED: WIN32_ERROR = 15815u32; +pub const ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED: WIN32_ERROR = 15818u32; +pub const ERROR_STATE_CREATE_CONTAINER_FAILED: WIN32_ERROR = 15805u32; +pub const ERROR_STATE_DELETE_CONTAINER_FAILED: WIN32_ERROR = 15806u32; +pub const ERROR_STATE_DELETE_SETTING_FAILED: WIN32_ERROR = 15809u32; +pub const ERROR_STATE_ENUMERATE_CONTAINER_FAILED: WIN32_ERROR = 15813u32; +pub const ERROR_STATE_ENUMERATE_SETTINGS_FAILED: WIN32_ERROR = 15814u32; +pub const ERROR_STATE_GET_VERSION_FAILED: WIN32_ERROR = 15801u32; +pub const ERROR_STATE_LOAD_STORE_FAILED: WIN32_ERROR = 15800u32; +pub const ERROR_STATE_OPEN_CONTAINER_FAILED: WIN32_ERROR = 15804u32; +pub const ERROR_STATE_QUERY_SETTING_FAILED: WIN32_ERROR = 15810u32; +pub const ERROR_STATE_READ_COMPOSITE_SETTING_FAILED: WIN32_ERROR = 15811u32; +pub const ERROR_STATE_READ_SETTING_FAILED: WIN32_ERROR = 15807u32; +pub const ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED: WIN32_ERROR = 15817u32; +pub const ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED: WIN32_ERROR = 15816u32; +pub const ERROR_STATE_SET_VERSION_FAILED: WIN32_ERROR = 15802u32; +pub const ERROR_STATE_STRUCTURED_RESET_FAILED: WIN32_ERROR = 15803u32; +pub const ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED: WIN32_ERROR = 15812u32; +pub const ERROR_STATE_WRITE_SETTING_FAILED: WIN32_ERROR = 15808u32; +pub const ERROR_STATIC_INIT: WIN32_ERROR = 4002u32; +pub const ERROR_STOPPED_ON_SYMLINK: WIN32_ERROR = 681u32; +pub const ERROR_STORAGE_LOST_DATA_PERSISTENCE: WIN32_ERROR = 368u32; +pub const ERROR_STORAGE_RESERVE_ALREADY_EXISTS: WIN32_ERROR = 418u32; +pub const ERROR_STORAGE_RESERVE_DOES_NOT_EXIST: WIN32_ERROR = 417u32; +pub const ERROR_STORAGE_RESERVE_ID_INVALID: WIN32_ERROR = 416u32; +pub const ERROR_STORAGE_RESERVE_NOT_EMPTY: WIN32_ERROR = 419u32; +pub const ERROR_STORAGE_STACK_ACCESS_DENIED: WIN32_ERROR = 472u32; +pub const ERROR_STORAGE_TOPOLOGY_ID_MISMATCH: WIN32_ERROR = 345u32; +pub const ERROR_STREAM_MINIVERSION_NOT_FOUND: WIN32_ERROR = 6808u32; +pub const ERROR_STREAM_MINIVERSION_NOT_VALID: WIN32_ERROR = 6809u32; +pub const ERROR_STRICT_CFG_VIOLATION: WIN32_ERROR = 1657u32; +pub const ERROR_SUBST_TO_JOIN: WIN32_ERROR = 141u32; +pub const ERROR_SUBST_TO_SUBST: WIN32_ERROR = 139u32; +pub const ERROR_SUCCESS: WIN32_ERROR = 0u32; +pub const ERROR_SUCCESS_REBOOT_INITIATED: WIN32_ERROR = 1641u32; +pub const ERROR_SUCCESS_REBOOT_REQUIRED: WIN32_ERROR = 3010u32; +pub const ERROR_SUCCESS_RESTART_REQUIRED: WIN32_ERROR = 3011u32; +pub const ERROR_SVHDX_ERROR_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1067647232i32; +pub const ERROR_SVHDX_ERROR_STORED: ::windows_sys::core::HRESULT = -1067712512i32; +pub const ERROR_SVHDX_NO_INITIATOR: ::windows_sys::core::HRESULT = -1067647221i32; +pub const ERROR_SVHDX_RESERVATION_CONFLICT: ::windows_sys::core::HRESULT = -1067647225i32; +pub const ERROR_SVHDX_UNIT_ATTENTION_AVAILABLE: ::windows_sys::core::HRESULT = -1067647231i32; +pub const ERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED: ::windows_sys::core::HRESULT = -1067647230i32; +pub const ERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED: ::windows_sys::core::HRESULT = -1067647226i32; +pub const ERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED: ::windows_sys::core::HRESULT = -1067647227i32; +pub const ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED: ::windows_sys::core::HRESULT = -1067647229i32; +pub const ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED: ::windows_sys::core::HRESULT = -1067647228i32; +pub const ERROR_SVHDX_VERSION_MISMATCH: ::windows_sys::core::HRESULT = -1067647223i32; +pub const ERROR_SVHDX_WRONG_FILE_TYPE: ::windows_sys::core::HRESULT = -1067647224i32; +pub const ERROR_SWAPERROR: WIN32_ERROR = 999u32; +pub const ERROR_SXS_ACTIVATION_CONTEXT_DISABLED: WIN32_ERROR = 14006u32; +pub const ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT: WIN32_ERROR = 14103u32; +pub const ERROR_SXS_ASSEMBLY_MISSING: WIN32_ERROR = 14081u32; +pub const ERROR_SXS_ASSEMBLY_NOT_FOUND: WIN32_ERROR = 14003u32; +pub const ERROR_SXS_ASSEMBLY_NOT_LOCKED: WIN32_ERROR = 14097u32; +pub const ERROR_SXS_CANT_GEN_ACTCTX: WIN32_ERROR = 14001u32; +pub const ERROR_SXS_COMPONENT_STORE_CORRUPT: WIN32_ERROR = 14098u32; +pub const ERROR_SXS_CORRUPTION: WIN32_ERROR = 14083u32; +pub const ERROR_SXS_CORRUPT_ACTIVATION_STACK: WIN32_ERROR = 14082u32; +pub const ERROR_SXS_DUPLICATE_ACTIVATABLE_CLASS: WIN32_ERROR = 14111u32; +pub const ERROR_SXS_DUPLICATE_ASSEMBLY_NAME: WIN32_ERROR = 14027u32; +pub const ERROR_SXS_DUPLICATE_CLSID: WIN32_ERROR = 14023u32; +pub const ERROR_SXS_DUPLICATE_DLL_NAME: WIN32_ERROR = 14021u32; +pub const ERROR_SXS_DUPLICATE_IID: WIN32_ERROR = 14024u32; +pub const ERROR_SXS_DUPLICATE_PROGID: WIN32_ERROR = 14026u32; +pub const ERROR_SXS_DUPLICATE_TLBID: WIN32_ERROR = 14025u32; +pub const ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME: WIN32_ERROR = 14022u32; +pub const ERROR_SXS_EARLY_DEACTIVATION: WIN32_ERROR = 14084u32; +pub const ERROR_SXS_FILE_HASH_MISMATCH: WIN32_ERROR = 14028u32; +pub const ERROR_SXS_FILE_HASH_MISSING: WIN32_ERROR = 14110u32; +pub const ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY: WIN32_ERROR = 14104u32; +pub const ERROR_SXS_IDENTITIES_DIFFERENT: WIN32_ERROR = 14102u32; +pub const ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE: WIN32_ERROR = 14092u32; +pub const ERROR_SXS_IDENTITY_PARSE_ERROR: WIN32_ERROR = 14093u32; +pub const ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN: WIN32_ERROR = 14095u32; +pub const ERROR_SXS_INVALID_ACTCTXDATA_FORMAT: WIN32_ERROR = 14002u32; +pub const ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE: WIN32_ERROR = 14017u32; +pub const ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME: WIN32_ERROR = 14080u32; +pub const ERROR_SXS_INVALID_DEACTIVATION: WIN32_ERROR = 14085u32; +pub const ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME: WIN32_ERROR = 14091u32; +pub const ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE: WIN32_ERROR = 14090u32; +pub const ERROR_SXS_INVALID_XML_NAMESPACE_URI: WIN32_ERROR = 14014u32; +pub const ERROR_SXS_KEY_NOT_FOUND: WIN32_ERROR = 14007u32; +pub const ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED: WIN32_ERROR = 14016u32; +pub const ERROR_SXS_MANIFEST_FORMAT_ERROR: WIN32_ERROR = 14004u32; +pub const ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT: WIN32_ERROR = 14101u32; +pub const ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE: WIN32_ERROR = 14019u32; +pub const ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE: WIN32_ERROR = 14018u32; +pub const ERROR_SXS_MANIFEST_PARSE_ERROR: WIN32_ERROR = 14005u32; +pub const ERROR_SXS_MANIFEST_TOO_BIG: WIN32_ERROR = 14105u32; +pub const ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE: WIN32_ERROR = 14079u32; +pub const ERROR_SXS_MULTIPLE_DEACTIVATION: WIN32_ERROR = 14086u32; +pub const ERROR_SXS_POLICY_PARSE_ERROR: WIN32_ERROR = 14029u32; +pub const ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT: WIN32_ERROR = 14020u32; +pub const ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET: WIN32_ERROR = 14011u32; +pub const ERROR_SXS_PROCESS_TERMINATION_REQUESTED: WIN32_ERROR = 14087u32; +pub const ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING: WIN32_ERROR = 14078u32; +pub const ERROR_SXS_PROTECTION_CATALOG_NOT_VALID: WIN32_ERROR = 14076u32; +pub const ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT: WIN32_ERROR = 14075u32; +pub const ERROR_SXS_PROTECTION_RECOVERY_FAILED: WIN32_ERROR = 14074u32; +pub const ERROR_SXS_RELEASE_ACTIVATION_CONTEXT: WIN32_ERROR = 14088u32; +pub const ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED: WIN32_ERROR = 14015u32; +pub const ERROR_SXS_SECTION_NOT_FOUND: WIN32_ERROR = 14000u32; +pub const ERROR_SXS_SETTING_NOT_REGISTERED: WIN32_ERROR = 14106u32; +pub const ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY: WIN32_ERROR = 14089u32; +pub const ERROR_SXS_THREAD_QUERIES_DISABLED: WIN32_ERROR = 14010u32; +pub const ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE: WIN32_ERROR = 14107u32; +pub const ERROR_SXS_UNKNOWN_ENCODING: WIN32_ERROR = 14013u32; +pub const ERROR_SXS_UNKNOWN_ENCODING_GROUP: WIN32_ERROR = 14012u32; +pub const ERROR_SXS_UNTRANSLATABLE_HRESULT: WIN32_ERROR = 14077u32; +pub const ERROR_SXS_VERSION_CONFLICT: WIN32_ERROR = 14008u32; +pub const ERROR_SXS_WRONG_SECTION_TYPE: WIN32_ERROR = 14009u32; +pub const ERROR_SXS_XML_E_BADCHARDATA: WIN32_ERROR = 14036u32; +pub const ERROR_SXS_XML_E_BADCHARINSTRING: WIN32_ERROR = 14034u32; +pub const ERROR_SXS_XML_E_BADNAMECHAR: WIN32_ERROR = 14033u32; +pub const ERROR_SXS_XML_E_BADPEREFINSUBSET: WIN32_ERROR = 14059u32; +pub const ERROR_SXS_XML_E_BADSTARTNAMECHAR: WIN32_ERROR = 14032u32; +pub const ERROR_SXS_XML_E_BADXMLCASE: WIN32_ERROR = 14069u32; +pub const ERROR_SXS_XML_E_BADXMLDECL: WIN32_ERROR = 14056u32; +pub const ERROR_SXS_XML_E_COMMENTSYNTAX: WIN32_ERROR = 14031u32; +pub const ERROR_SXS_XML_E_DUPLICATEATTRIBUTE: WIN32_ERROR = 14053u32; +pub const ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE: WIN32_ERROR = 14045u32; +pub const ERROR_SXS_XML_E_EXPECTINGTAGEND: WIN32_ERROR = 14038u32; +pub const ERROR_SXS_XML_E_INCOMPLETE_ENCODING: WIN32_ERROR = 14043u32; +pub const ERROR_SXS_XML_E_INTERNALERROR: WIN32_ERROR = 14041u32; +pub const ERROR_SXS_XML_E_INVALIDATROOTLEVEL: WIN32_ERROR = 14055u32; +pub const ERROR_SXS_XML_E_INVALIDENCODING: WIN32_ERROR = 14067u32; +pub const ERROR_SXS_XML_E_INVALIDSWITCH: WIN32_ERROR = 14068u32; +pub const ERROR_SXS_XML_E_INVALID_DECIMAL: WIN32_ERROR = 14047u32; +pub const ERROR_SXS_XML_E_INVALID_HEXIDECIMAL: WIN32_ERROR = 14048u32; +pub const ERROR_SXS_XML_E_INVALID_STANDALONE: WIN32_ERROR = 14070u32; +pub const ERROR_SXS_XML_E_INVALID_UNICODE: WIN32_ERROR = 14049u32; +pub const ERROR_SXS_XML_E_INVALID_VERSION: WIN32_ERROR = 14072u32; +pub const ERROR_SXS_XML_E_MISSINGEQUALS: WIN32_ERROR = 14073u32; +pub const ERROR_SXS_XML_E_MISSINGQUOTE: WIN32_ERROR = 14030u32; +pub const ERROR_SXS_XML_E_MISSINGROOT: WIN32_ERROR = 14057u32; +pub const ERROR_SXS_XML_E_MISSINGSEMICOLON: WIN32_ERROR = 14039u32; +pub const ERROR_SXS_XML_E_MISSINGWHITESPACE: WIN32_ERROR = 14037u32; +pub const ERROR_SXS_XML_E_MISSING_PAREN: WIN32_ERROR = 14044u32; +pub const ERROR_SXS_XML_E_MULTIPLEROOTS: WIN32_ERROR = 14054u32; +pub const ERROR_SXS_XML_E_MULTIPLE_COLONS: WIN32_ERROR = 14046u32; +pub const ERROR_SXS_XML_E_RESERVEDNAMESPACE: WIN32_ERROR = 14066u32; +pub const ERROR_SXS_XML_E_UNBALANCEDPAREN: WIN32_ERROR = 14040u32; +pub const ERROR_SXS_XML_E_UNCLOSEDCDATA: WIN32_ERROR = 14065u32; +pub const ERROR_SXS_XML_E_UNCLOSEDCOMMENT: WIN32_ERROR = 14063u32; +pub const ERROR_SXS_XML_E_UNCLOSEDDECL: WIN32_ERROR = 14064u32; +pub const ERROR_SXS_XML_E_UNCLOSEDENDTAG: WIN32_ERROR = 14061u32; +pub const ERROR_SXS_XML_E_UNCLOSEDSTARTTAG: WIN32_ERROR = 14060u32; +pub const ERROR_SXS_XML_E_UNCLOSEDSTRING: WIN32_ERROR = 14062u32; +pub const ERROR_SXS_XML_E_UNCLOSEDTAG: WIN32_ERROR = 14052u32; +pub const ERROR_SXS_XML_E_UNEXPECTEDENDTAG: WIN32_ERROR = 14051u32; +pub const ERROR_SXS_XML_E_UNEXPECTEDEOF: WIN32_ERROR = 14058u32; +pub const ERROR_SXS_XML_E_UNEXPECTED_STANDALONE: WIN32_ERROR = 14071u32; +pub const ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE: WIN32_ERROR = 14042u32; +pub const ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK: WIN32_ERROR = 14050u32; +pub const ERROR_SXS_XML_E_XMLDECLSYNTAX: WIN32_ERROR = 14035u32; +pub const ERROR_SYMLINK_CLASS_DISABLED: WIN32_ERROR = 1463u32; +pub const ERROR_SYMLINK_NOT_SUPPORTED: WIN32_ERROR = 1464u32; +pub const ERROR_SYNCHRONIZATION_REQUIRED: WIN32_ERROR = 569u32; +pub const ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED: WIN32_ERROR = 1274u32; +pub const ERROR_SYSTEM_DEVICE_NOT_FOUND: WIN32_ERROR = 15299u32; +pub const ERROR_SYSTEM_HIVE_TOO_LARGE: WIN32_ERROR = 653u32; +pub const ERROR_SYSTEM_IMAGE_BAD_SIGNATURE: WIN32_ERROR = 637u32; +pub const ERROR_SYSTEM_INTEGRITY_INVALID_POLICY: WIN32_ERROR = 4552u32; +pub const ERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED: WIN32_ERROR = 4553u32; +pub const ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION: WIN32_ERROR = 4551u32; +pub const ERROR_SYSTEM_INTEGRITY_REPUTATION_DANGEROUS_EXT: WIN32_ERROR = 4558u32; +pub const ERROR_SYSTEM_INTEGRITY_REPUTATION_MALICIOUS: WIN32_ERROR = 4556u32; +pub const ERROR_SYSTEM_INTEGRITY_REPUTATION_OFFLINE: WIN32_ERROR = 4559u32; +pub const ERROR_SYSTEM_INTEGRITY_REPUTATION_PUA: WIN32_ERROR = 4557u32; +pub const ERROR_SYSTEM_INTEGRITY_REPUTATION_UNATTAINABLE: WIN32_ERROR = 4581u32; +pub const ERROR_SYSTEM_INTEGRITY_REPUTATION_UNFRIENDLY_FILE: WIN32_ERROR = 4580u32; +pub const ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED: WIN32_ERROR = 4550u32; +pub const ERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED: WIN32_ERROR = 4555u32; +pub const ERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES: WIN32_ERROR = 4554u32; +pub const ERROR_SYSTEM_NEEDS_REMEDIATION: WIN32_ERROR = 15623u32; +pub const ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION: WIN32_ERROR = 783u32; +pub const ERROR_SYSTEM_POWERSTATE_TRANSITION: WIN32_ERROR = 782u32; +pub const ERROR_SYSTEM_PROCESS_TERMINATED: WIN32_ERROR = 591u32; +pub const ERROR_SYSTEM_SHUTDOWN: WIN32_ERROR = 641u32; +pub const ERROR_SYSTEM_TRACE: WIN32_ERROR = 150u32; +pub const ERROR_TAG_NOT_FOUND: WIN32_ERROR = 2012u32; +pub const ERROR_TAG_NOT_PRESENT: WIN32_ERROR = 2013u32; +pub const ERROR_THREAD_1_INACTIVE: WIN32_ERROR = 210u32; +pub const ERROR_THREAD_ALREADY_IN_TASK: WIN32_ERROR = 1552u32; +pub const ERROR_THREAD_MODE_ALREADY_BACKGROUND: WIN32_ERROR = 400u32; +pub const ERROR_THREAD_MODE_NOT_BACKGROUND: WIN32_ERROR = 401u32; +pub const ERROR_THREAD_NOT_IN_PROCESS: WIN32_ERROR = 566u32; +pub const ERROR_THREAD_WAS_SUSPENDED: WIN32_ERROR = 699u32; +pub const ERROR_TIERING_ALREADY_PROCESSING: ::windows_sys::core::HRESULT = -2138898426i32; +pub const ERROR_TIERING_CANNOT_PIN_OBJECT: ::windows_sys::core::HRESULT = -2138898425i32; +pub const ERROR_TIERING_FILE_IS_NOT_PINNED: ::windows_sys::core::HRESULT = -2138898424i32; +pub const ERROR_TIERING_INVALID_FILE_ID: ::windows_sys::core::HRESULT = -2138898428i32; +pub const ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME: ::windows_sys::core::HRESULT = -2138898431i32; +pub const ERROR_TIERING_STORAGE_TIER_NOT_FOUND: ::windows_sys::core::HRESULT = -2138898429i32; +pub const ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS: ::windows_sys::core::HRESULT = -2138898430i32; +pub const ERROR_TIERING_WRONG_CLUSTER_NODE: ::windows_sys::core::HRESULT = -2138898427i32; +pub const ERROR_TIMEOUT: WIN32_ERROR = 1460u32; +pub const ERROR_TIMER_NOT_CANCELED: WIN32_ERROR = 541u32; +pub const ERROR_TIMER_RESOLUTION_NOT_SET: WIN32_ERROR = 607u32; +pub const ERROR_TIMER_RESUME_IGNORED: WIN32_ERROR = 722u32; +pub const ERROR_TIME_SENSITIVE_THREAD: WIN32_ERROR = 422u32; +pub const ERROR_TIME_SKEW: WIN32_ERROR = 1398u32; +pub const ERROR_TLW_WITH_WSCHILD: WIN32_ERROR = 1406u32; +pub const ERROR_TM_IDENTITY_MISMATCH: WIN32_ERROR = 6845u32; +pub const ERROR_TM_INITIALIZATION_FAILED: WIN32_ERROR = 6706u32; +pub const ERROR_TM_VOLATILE: WIN32_ERROR = 6828u32; +pub const ERROR_TOKEN_ALREADY_IN_USE: WIN32_ERROR = 1375u32; +pub const ERROR_TOO_MANY_CMDS: WIN32_ERROR = 56u32; +pub const ERROR_TOO_MANY_CONTEXT_IDS: WIN32_ERROR = 1384u32; +pub const ERROR_TOO_MANY_DESCRIPTORS: WIN32_ERROR = 331u32; +pub const ERROR_TOO_MANY_LINKS: WIN32_ERROR = 1142u32; +pub const ERROR_TOO_MANY_LUIDS_REQUESTED: WIN32_ERROR = 1333u32; +pub const ERROR_TOO_MANY_MODULES: WIN32_ERROR = 214u32; +pub const ERROR_TOO_MANY_MUXWAITERS: WIN32_ERROR = 152u32; +pub const ERROR_TOO_MANY_NAMES: WIN32_ERROR = 68u32; +pub const ERROR_TOO_MANY_OPEN_FILES: WIN32_ERROR = 4u32; +pub const ERROR_TOO_MANY_POSTS: WIN32_ERROR = 298u32; +pub const ERROR_TOO_MANY_SECRETS: WIN32_ERROR = 1381u32; +pub const ERROR_TOO_MANY_SEMAPHORES: WIN32_ERROR = 100u32; +pub const ERROR_TOO_MANY_SEM_REQUESTS: WIN32_ERROR = 103u32; +pub const ERROR_TOO_MANY_SESS: WIN32_ERROR = 69u32; +pub const ERROR_TOO_MANY_SIDS: WIN32_ERROR = 1389u32; +pub const ERROR_TOO_MANY_TCBS: WIN32_ERROR = 155u32; +pub const ERROR_TOO_MANY_THREADS: WIN32_ERROR = 565u32; +pub const ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE: WIN32_ERROR = 6834u32; +pub const ERROR_TRANSACTIONAL_CONFLICT: WIN32_ERROR = 6800u32; +pub const ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED: WIN32_ERROR = 6832u32; +pub const ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH: WIN32_ERROR = 6727u32; +pub const ERROR_TRANSACTIONMANAGER_NOT_FOUND: WIN32_ERROR = 6718u32; +pub const ERROR_TRANSACTIONMANAGER_NOT_ONLINE: WIN32_ERROR = 6719u32; +pub const ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION: WIN32_ERROR = 6720u32; +pub const ERROR_TRANSACTIONS_NOT_FROZEN: WIN32_ERROR = 6839u32; +pub const ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE: WIN32_ERROR = 6805u32; +pub const ERROR_TRANSACTION_ALREADY_ABORTED: WIN32_ERROR = 6704u32; +pub const ERROR_TRANSACTION_ALREADY_COMMITTED: WIN32_ERROR = 6705u32; +pub const ERROR_TRANSACTION_FREEZE_IN_PROGRESS: WIN32_ERROR = 6840u32; +pub const ERROR_TRANSACTION_INTEGRITY_VIOLATED: WIN32_ERROR = 6726u32; +pub const ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER: WIN32_ERROR = 6713u32; +pub const ERROR_TRANSACTION_MUST_WRITETHROUGH: WIN32_ERROR = 6729u32; +pub const ERROR_TRANSACTION_NOT_ACTIVE: WIN32_ERROR = 6701u32; +pub const ERROR_TRANSACTION_NOT_ENLISTED: WIN32_ERROR = 6855u32; +pub const ERROR_TRANSACTION_NOT_FOUND: WIN32_ERROR = 6715u32; +pub const ERROR_TRANSACTION_NOT_JOINED: WIN32_ERROR = 6708u32; +pub const ERROR_TRANSACTION_NOT_REQUESTED: WIN32_ERROR = 6703u32; +pub const ERROR_TRANSACTION_NOT_ROOT: WIN32_ERROR = 6721u32; +pub const ERROR_TRANSACTION_NO_SUPERIOR: WIN32_ERROR = 6730u32; +pub const ERROR_TRANSACTION_OBJECT_EXPIRED: WIN32_ERROR = 6722u32; +pub const ERROR_TRANSACTION_PROPAGATION_FAILED: WIN32_ERROR = 6711u32; +pub const ERROR_TRANSACTION_RECORD_TOO_LONG: WIN32_ERROR = 6724u32; +pub const ERROR_TRANSACTION_REQUEST_NOT_VALID: WIN32_ERROR = 6702u32; +pub const ERROR_TRANSACTION_REQUIRED_PROMOTION: WIN32_ERROR = 6837u32; +pub const ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED: WIN32_ERROR = 6723u32; +pub const ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET: WIN32_ERROR = 6836u32; +pub const ERROR_TRANSACTION_SUPERIOR_EXISTS: WIN32_ERROR = 6709u32; +pub const ERROR_TRANSFORM_NOT_SUPPORTED: WIN32_ERROR = 2004u32; +pub const ERROR_TRANSLATION_COMPLETE: WIN32_ERROR = 757u32; +pub const ERROR_TRANSPORT_FULL: WIN32_ERROR = 4328u32; +pub const ERROR_TRUSTED_DOMAIN_FAILURE: WIN32_ERROR = 1788u32; +pub const ERROR_TRUSTED_RELATIONSHIP_FAILURE: WIN32_ERROR = 1789u32; +pub const ERROR_TRUST_FAILURE: WIN32_ERROR = 1790u32; +pub const ERROR_TS_INCOMPATIBLE_SESSIONS: WIN32_ERROR = 7069u32; +pub const ERROR_TS_VIDEO_SUBSYSTEM_ERROR: WIN32_ERROR = 7070u32; +pub const ERROR_TXF_ATTRIBUTE_CORRUPT: WIN32_ERROR = 6830u32; +pub const ERROR_TXF_DIR_NOT_EMPTY: WIN32_ERROR = 6826u32; +pub const ERROR_TXF_METADATA_ALREADY_PRESENT: WIN32_ERROR = 6835u32; +pub const ERROR_UNABLE_TO_CLEAN: WIN32_ERROR = 4311u32; +pub const ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA: WIN32_ERROR = 4330u32; +pub const ERROR_UNABLE_TO_INVENTORY_DRIVE: WIN32_ERROR = 4325u32; +pub const ERROR_UNABLE_TO_INVENTORY_SLOT: WIN32_ERROR = 4326u32; +pub const ERROR_UNABLE_TO_INVENTORY_TRANSPORT: WIN32_ERROR = 4327u32; +pub const ERROR_UNABLE_TO_LOAD_MEDIUM: WIN32_ERROR = 4324u32; +pub const ERROR_UNABLE_TO_LOCK_MEDIA: WIN32_ERROR = 1108u32; +pub const ERROR_UNABLE_TO_MOVE_REPLACEMENT: WIN32_ERROR = 1176u32; +pub const ERROR_UNABLE_TO_MOVE_REPLACEMENT_2: WIN32_ERROR = 1177u32; +pub const ERROR_UNABLE_TO_REMOVE_REPLACED: WIN32_ERROR = 1175u32; +pub const ERROR_UNABLE_TO_UNLOAD_MEDIA: WIN32_ERROR = 1109u32; +pub const ERROR_UNDEFINED_CHARACTER: WIN32_ERROR = 583u32; +pub const ERROR_UNDEFINED_SCOPE: WIN32_ERROR = 319u32; +pub const ERROR_UNEXPECTED_MM_CREATE_ERR: WIN32_ERROR = 556u32; +pub const ERROR_UNEXPECTED_MM_EXTEND_ERR: WIN32_ERROR = 558u32; +pub const ERROR_UNEXPECTED_MM_MAP_ERROR: WIN32_ERROR = 557u32; +pub const ERROR_UNEXPECTED_NTCACHEMANAGER_ERROR: WIN32_ERROR = 443u32; +pub const ERROR_UNEXPECTED_OMID: WIN32_ERROR = 4334u32; +pub const ERROR_UNEXP_NET_ERR: WIN32_ERROR = 59u32; +pub const ERROR_UNHANDLED_EXCEPTION: WIN32_ERROR = 574u32; +pub const ERROR_UNIDENTIFIED_ERROR: WIN32_ERROR = 1287u32; +pub const ERROR_UNKNOWN_COMPONENT: WIN32_ERROR = 1607u32; +pub const ERROR_UNKNOWN_EXCEPTION: WIN32_ERROR = 3758096953u32; +pub const ERROR_UNKNOWN_FEATURE: WIN32_ERROR = 1606u32; +pub const ERROR_UNKNOWN_PATCH: WIN32_ERROR = 1647u32; +pub const ERROR_UNKNOWN_PORT: WIN32_ERROR = 1796u32; +pub const ERROR_UNKNOWN_PRINTER_DRIVER: WIN32_ERROR = 1797u32; +pub const ERROR_UNKNOWN_PRINTPROCESSOR: WIN32_ERROR = 1798u32; +pub const ERROR_UNKNOWN_PRINT_MONITOR: WIN32_ERROR = 3000u32; +pub const ERROR_UNKNOWN_PRODUCT: WIN32_ERROR = 1605u32; +pub const ERROR_UNKNOWN_PROPERTY: WIN32_ERROR = 1608u32; +pub const ERROR_UNKNOWN_PROTOCOL_ID: u32 = 902u32; +pub const ERROR_UNKNOWN_REVISION: WIN32_ERROR = 1305u32; +pub const ERROR_UNMAPPED_SUBSTITUTION_STRING: WIN32_ERROR = 14096u32; +pub const ERROR_UNRECOGNIZED_MEDIA: WIN32_ERROR = 1785u32; +pub const ERROR_UNRECOGNIZED_VOLUME: WIN32_ERROR = 1005u32; +pub const ERROR_UNRECOVERABLE_STACK_OVERFLOW: WIN32_ERROR = 3758097152u32; +pub const ERROR_UNSATISFIED_DEPENDENCIES: WIN32_ERROR = 441u32; +pub const ERROR_UNSIGNED_PACKAGE_INVALID_CONTENT: WIN32_ERROR = 15659u32; +pub const ERROR_UNSIGNED_PACKAGE_INVALID_PUBLISHER_NAMESPACE: WIN32_ERROR = 15660u32; +pub const ERROR_UNSUPPORTED_COMPRESSION: WIN32_ERROR = 618u32; +pub const ERROR_UNSUPPORTED_TYPE: WIN32_ERROR = 1630u32; +pub const ERROR_UNTRUSTED_MOUNT_POINT: WIN32_ERROR = 448u32; +pub const ERROR_UNWIND: WIN32_ERROR = 542u32; +pub const ERROR_UNWIND_CONSOLIDATE: WIN32_ERROR = 684u32; +pub const ERROR_UPDATE_IN_PROGRESS: u32 = 911u32; +pub const ERROR_USER_APC: WIN32_ERROR = 737u32; +pub const ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED: WIN32_ERROR = 1934u32; +pub const ERROR_USER_EXISTS: WIN32_ERROR = 1316u32; +pub const ERROR_USER_LIMIT: u32 = 937u32; +pub const ERROR_USER_MAPPED_FILE: WIN32_ERROR = 1224u32; +pub const ERROR_USER_PROFILE_LOAD: WIN32_ERROR = 500u32; +pub const ERROR_VALIDATE_CONTINUE: WIN32_ERROR = 625u32; +pub const ERROR_VC_DISCONNECTED: WIN32_ERROR = 240u32; +pub const ERROR_VDM_DISALLOWED: WIN32_ERROR = 1286u32; +pub const ERROR_VDM_HARD_ERROR: WIN32_ERROR = 593u32; +pub const ERROR_VERIFIER_STOP: WIN32_ERROR = 537u32; +pub const ERROR_VERSION_PARSE_ERROR: WIN32_ERROR = 777u32; +pub const ERROR_VHDSET_BACKING_STORAGE_NOT_FOUND: ::windows_sys::core::HRESULT = -1067647220i32; +pub const ERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE: WIN32_ERROR = 3225026599u32; +pub const ERROR_VHD_BITMAP_MISMATCH: WIN32_ERROR = 3225026572u32; +pub const ERROR_VHD_BLOCK_ALLOCATION_FAILURE: WIN32_ERROR = 3225026569u32; +pub const ERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT: WIN32_ERROR = 3225026570u32; +pub const ERROR_VHD_CHANGE_TRACKING_DISABLED: WIN32_ERROR = 3225026602u32; +pub const ERROR_VHD_CHILD_PARENT_ID_MISMATCH: WIN32_ERROR = 3225026574u32; +pub const ERROR_VHD_CHILD_PARENT_SIZE_MISMATCH: WIN32_ERROR = 3225026583u32; +pub const ERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH: WIN32_ERROR = 3225026575u32; +pub const ERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE: WIN32_ERROR = 3225026598u32; +pub const ERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED: WIN32_ERROR = 3225026584u32; +pub const ERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT: WIN32_ERROR = 3225026585u32; +pub const ERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH: WIN32_ERROR = 3225026562u32; +pub const ERROR_VHD_DRIVE_FOOTER_CORRUPT: WIN32_ERROR = 3225026563u32; +pub const ERROR_VHD_DRIVE_FOOTER_MISSING: WIN32_ERROR = 3225026561u32; +pub const ERROR_VHD_FORMAT_UNKNOWN: WIN32_ERROR = 3225026564u32; +pub const ERROR_VHD_FORMAT_UNSUPPORTED_VERSION: WIN32_ERROR = 3225026565u32; +pub const ERROR_VHD_INVALID_BLOCK_SIZE: WIN32_ERROR = 3225026571u32; +pub const ERROR_VHD_INVALID_CHANGE_TRACKING_ID: WIN32_ERROR = 3225026601u32; +pub const ERROR_VHD_INVALID_FILE_SIZE: WIN32_ERROR = 3225026579u32; +pub const ERROR_VHD_INVALID_SIZE: WIN32_ERROR = 3225026578u32; +pub const ERROR_VHD_INVALID_STATE: WIN32_ERROR = 3225026588u32; +pub const ERROR_VHD_INVALID_TYPE: WIN32_ERROR = 3225026587u32; +pub const ERROR_VHD_METADATA_FULL: WIN32_ERROR = 3225026600u32; +pub const ERROR_VHD_METADATA_READ_FAILURE: WIN32_ERROR = 3225026576u32; +pub const ERROR_VHD_METADATA_WRITE_FAILURE: WIN32_ERROR = 3225026577u32; +pub const ERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION: WIN32_ERROR = 3225026608u32; +pub const ERROR_VHD_PARENT_VHD_ACCESS_DENIED: WIN32_ERROR = 3225026582u32; +pub const ERROR_VHD_PARENT_VHD_NOT_FOUND: WIN32_ERROR = 3225026573u32; +pub const ERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA: WIN32_ERROR = 3225026597u32; +pub const ERROR_VHD_SHARED: ::windows_sys::core::HRESULT = -1067647222i32; +pub const ERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH: WIN32_ERROR = 3225026566u32; +pub const ERROR_VHD_SPARSE_HEADER_CORRUPT: WIN32_ERROR = 3225026568u32; +pub const ERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION: WIN32_ERROR = 3225026567u32; +pub const ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED: WIN32_ERROR = 3224829966u32; +pub const ERROR_VID_DUPLICATE_HANDLER: WIN32_ERROR = 3224829953u32; +pub const ERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT: WIN32_ERROR = 3224829982u32; +pub const ERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT: WIN32_ERROR = 3224829964u32; +pub const ERROR_VID_HANDLER_NOT_PRESENT: WIN32_ERROR = 3224829956u32; +pub const ERROR_VID_INSUFFICIENT_RESOURCES_HV_DEPOSIT: WIN32_ERROR = 3224829997u32; +pub const ERROR_VID_INSUFFICIENT_RESOURCES_PHYSICAL_BUFFER: WIN32_ERROR = 3224829996u32; +pub const ERROR_VID_INSUFFICIENT_RESOURCES_RESERVE: WIN32_ERROR = 3224829995u32; +pub const ERROR_VID_INSUFFICIENT_RESOURCES_WITHDRAW: WIN32_ERROR = 3224829999u32; +pub const ERROR_VID_INVALID_CHILD_GPA_PAGE_SET: WIN32_ERROR = 3224829986u32; +pub const ERROR_VID_INVALID_GPA_RANGE_HANDLE: WIN32_ERROR = 3224829973u32; +pub const ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE: WIN32_ERROR = 3224829970u32; +pub const ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE: WIN32_ERROR = 3224829972u32; +pub const ERROR_VID_INVALID_NUMA_NODE_INDEX: WIN32_ERROR = 3224829968u32; +pub const ERROR_VID_INVALID_NUMA_SETTINGS: WIN32_ERROR = 3224829967u32; +pub const ERROR_VID_INVALID_OBJECT_NAME: WIN32_ERROR = 3224829957u32; +pub const ERROR_VID_INVALID_PPM_HANDLE: WIN32_ERROR = 3224829976u32; +pub const ERROR_VID_INVALID_PROCESSOR_STATE: WIN32_ERROR = 3224829981u32; +pub const ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED: WIN32_ERROR = 3224829983u32; +pub const ERROR_VID_MBPS_ARE_LOCKED: WIN32_ERROR = 3224829977u32; +pub const ERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE: WIN32_ERROR = 3224829989u32; +pub const ERROR_VID_MBP_COUNT_EXCEEDED_LIMIT: WIN32_ERROR = 3224829990u32; +pub const ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET: WIN32_ERROR = 3224829984u32; +pub const ERROR_VID_MB_STILL_REFERENCED: WIN32_ERROR = 3224829965u32; +pub const ERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED: WIN32_ERROR = 3224829975u32; +pub const ERROR_VID_MEMORY_TYPE_NOT_SUPPORTED: WIN32_ERROR = 3224829998u32; +pub const ERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS: WIN32_ERROR = 3224829963u32; +pub const ERROR_VID_MESSAGE_QUEUE_CLOSED: WIN32_ERROR = 3224829978u32; +pub const ERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG: WIN32_ERROR = 3224829959u32; +pub const ERROR_VID_MMIO_RANGE_DESTROYED: WIN32_ERROR = 3224829985u32; +pub const ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED: WIN32_ERROR = 3224829969u32; +pub const ERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE: WIN32_ERROR = 3224829974u32; +pub const ERROR_VID_PAGE_RANGE_OVERFLOW: WIN32_ERROR = 3224829971u32; +pub const ERROR_VID_PARTITION_ALREADY_EXISTS: WIN32_ERROR = 3224829960u32; +pub const ERROR_VID_PARTITION_DOES_NOT_EXIST: WIN32_ERROR = 3224829961u32; +pub const ERROR_VID_PARTITION_NAME_NOT_FOUND: WIN32_ERROR = 3224829962u32; +pub const ERROR_VID_PARTITION_NAME_TOO_LONG: WIN32_ERROR = 3224829958u32; +pub const ERROR_VID_PROCESS_ALREADY_SET: WIN32_ERROR = 3224830000u32; +pub const ERROR_VID_QUEUE_FULL: WIN32_ERROR = 3224829955u32; +pub const ERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED: WIN32_ERROR = 2151088129u32; +pub const ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED: WIN32_ERROR = 3224829987u32; +pub const ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL: WIN32_ERROR = 3224829988u32; +pub const ERROR_VID_SAVED_STATE_CORRUPT: WIN32_ERROR = 3224829991u32; +pub const ERROR_VID_SAVED_STATE_INCOMPATIBLE: WIN32_ERROR = 3224829993u32; +pub const ERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM: WIN32_ERROR = 3224829992u32; +pub const ERROR_VID_STOP_PENDING: WIN32_ERROR = 3224829980u32; +pub const ERROR_VID_TOO_MANY_HANDLERS: WIN32_ERROR = 3224829954u32; +pub const ERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED: WIN32_ERROR = 3224829979u32; +pub const ERROR_VID_VTL_ACCESS_DENIED: WIN32_ERROR = 3224829994u32; +pub const ERROR_VIRTDISK_DISK_ALREADY_OWNED: WIN32_ERROR = 3225026590u32; +pub const ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE: WIN32_ERROR = 3225026591u32; +pub const ERROR_VIRTDISK_NOT_VIRTUAL_DISK: WIN32_ERROR = 3225026581u32; +pub const ERROR_VIRTDISK_PROVIDER_NOT_FOUND: WIN32_ERROR = 3225026580u32; +pub const ERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE: WIN32_ERROR = 3225026589u32; +pub const ERROR_VIRTUAL_DISK_LIMITATION: WIN32_ERROR = 3225026586u32; +pub const ERROR_VIRUS_DELETED: WIN32_ERROR = 226u32; +pub const ERROR_VIRUS_INFECTED: WIN32_ERROR = 225u32; +pub const ERROR_VMCOMPUTE_CONNECTION_CLOSED: WIN32_ERROR = 3224830218u32; +pub const ERROR_VMCOMPUTE_CONNECT_FAILED: WIN32_ERROR = 3224830216u32; +pub const ERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED: WIN32_ERROR = 3224830210u32; +pub const ERROR_VMCOMPUTE_IMAGE_MISMATCH: WIN32_ERROR = 3224830209u32; +pub const ERROR_VMCOMPUTE_INVALID_JSON: WIN32_ERROR = 3224830221u32; +pub const ERROR_VMCOMPUTE_INVALID_LAYER: WIN32_ERROR = 3224830226u32; +pub const ERROR_VMCOMPUTE_INVALID_STATE: WIN32_ERROR = 3224830213u32; +pub const ERROR_VMCOMPUTE_OPERATION_PENDING: WIN32_ERROR = 3224830211u32; +pub const ERROR_VMCOMPUTE_PROTOCOL_ERROR: WIN32_ERROR = 3224830225u32; +pub const ERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS: WIN32_ERROR = 3224830223u32; +pub const ERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED: WIN32_ERROR = 3224830224u32; +pub const ERROR_VMCOMPUTE_SYSTEM_NOT_FOUND: WIN32_ERROR = 3224830222u32; +pub const ERROR_VMCOMPUTE_TERMINATED: WIN32_ERROR = 3224830215u32; +pub const ERROR_VMCOMPUTE_TERMINATED_DURING_START: WIN32_ERROR = 3224830208u32; +pub const ERROR_VMCOMPUTE_TIMEOUT: WIN32_ERROR = 3224830217u32; +pub const ERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS: WIN32_ERROR = 3224830212u32; +pub const ERROR_VMCOMPUTE_UNEXPECTED_EXIT: WIN32_ERROR = 3224830214u32; +pub const ERROR_VMCOMPUTE_UNKNOWN_MESSAGE: WIN32_ERROR = 3224830219u32; +pub const ERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION: WIN32_ERROR = 3224830220u32; +pub const ERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED: WIN32_ERROR = 3224830227u32; +pub const ERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND: WIN32_ERROR = 3224830464u32; +pub const ERROR_VOLMGR_ALL_DISKS_FAILED: WIN32_ERROR = 3224895529u32; +pub const ERROR_VOLMGR_BAD_BOOT_DISK: WIN32_ERROR = 3224895567u32; +pub const ERROR_VOLMGR_DATABASE_FULL: WIN32_ERROR = 3224895489u32; +pub const ERROR_VOLMGR_DIFFERENT_SECTOR_SIZE: WIN32_ERROR = 3224895566u32; +pub const ERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED: WIN32_ERROR = 3224895490u32; +pub const ERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC: WIN32_ERROR = 3224895491u32; +pub const ERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME: WIN32_ERROR = 3224895493u32; +pub const ERROR_VOLMGR_DISK_DUPLICATE: WIN32_ERROR = 3224895494u32; +pub const ERROR_VOLMGR_DISK_DYNAMIC: WIN32_ERROR = 3224895495u32; +pub const ERROR_VOLMGR_DISK_ID_INVALID: WIN32_ERROR = 3224895496u32; +pub const ERROR_VOLMGR_DISK_INVALID: WIN32_ERROR = 3224895497u32; +pub const ERROR_VOLMGR_DISK_LAST_VOTER: WIN32_ERROR = 3224895498u32; +pub const ERROR_VOLMGR_DISK_LAYOUT_INVALID: WIN32_ERROR = 3224895499u32; +pub const ERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS: WIN32_ERROR = 3224895500u32; +pub const ERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED: WIN32_ERROR = 3224895501u32; +pub const ERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL: WIN32_ERROR = 3224895502u32; +pub const ERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS: WIN32_ERROR = 3224895503u32; +pub const ERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS: WIN32_ERROR = 3224895504u32; +pub const ERROR_VOLMGR_DISK_MISSING: WIN32_ERROR = 3224895505u32; +pub const ERROR_VOLMGR_DISK_NOT_EMPTY: WIN32_ERROR = 3224895506u32; +pub const ERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE: WIN32_ERROR = 3224895507u32; +pub const ERROR_VOLMGR_DISK_REVECTORING_FAILED: WIN32_ERROR = 3224895508u32; +pub const ERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID: WIN32_ERROR = 3224895509u32; +pub const ERROR_VOLMGR_DISK_SET_NOT_CONTAINED: WIN32_ERROR = 3224895510u32; +pub const ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS: WIN32_ERROR = 3224895511u32; +pub const ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES: WIN32_ERROR = 3224895512u32; +pub const ERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED: WIN32_ERROR = 3224895513u32; +pub const ERROR_VOLMGR_EXTENT_ALREADY_USED: WIN32_ERROR = 3224895514u32; +pub const ERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS: WIN32_ERROR = 3224895515u32; +pub const ERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION: WIN32_ERROR = 3224895516u32; +pub const ERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED: WIN32_ERROR = 3224895517u32; +pub const ERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION: WIN32_ERROR = 3224895518u32; +pub const ERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH: WIN32_ERROR = 3224895519u32; +pub const ERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED: WIN32_ERROR = 3224895520u32; +pub const ERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION: WIN32_ERROR = 2151153666u32; +pub const ERROR_VOLMGR_INCOMPLETE_REGENERATION: WIN32_ERROR = 2151153665u32; +pub const ERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID: WIN32_ERROR = 3224895521u32; +pub const ERROR_VOLMGR_MAXIMUM_REGISTERED_USERS: WIN32_ERROR = 3224895522u32; +pub const ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE: WIN32_ERROR = 3224895524u32; +pub const ERROR_VOLMGR_MEMBER_INDEX_INVALID: WIN32_ERROR = 3224895525u32; +pub const ERROR_VOLMGR_MEMBER_IN_SYNC: WIN32_ERROR = 3224895523u32; +pub const ERROR_VOLMGR_MEMBER_MISSING: WIN32_ERROR = 3224895526u32; +pub const ERROR_VOLMGR_MEMBER_NOT_DETACHED: WIN32_ERROR = 3224895527u32; +pub const ERROR_VOLMGR_MEMBER_REGENERATING: WIN32_ERROR = 3224895528u32; +pub const ERROR_VOLMGR_MIRROR_NOT_SUPPORTED: WIN32_ERROR = 3224895579u32; +pub const ERROR_VOLMGR_NOTIFICATION_RESET: WIN32_ERROR = 3224895532u32; +pub const ERROR_VOLMGR_NOT_PRIMARY_PACK: WIN32_ERROR = 3224895570u32; +pub const ERROR_VOLMGR_NO_REGISTERED_USERS: WIN32_ERROR = 3224895530u32; +pub const ERROR_VOLMGR_NO_SUCH_USER: WIN32_ERROR = 3224895531u32; +pub const ERROR_VOLMGR_NO_VALID_LOG_COPIES: WIN32_ERROR = 3224895576u32; +pub const ERROR_VOLMGR_NUMBER_OF_DISKS_INVALID: WIN32_ERROR = 3224895578u32; +pub const ERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID: WIN32_ERROR = 3224895573u32; +pub const ERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID: WIN32_ERROR = 3224895572u32; +pub const ERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID: WIN32_ERROR = 3224895565u32; +pub const ERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID: WIN32_ERROR = 3224895533u32; +pub const ERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID: WIN32_ERROR = 3224895534u32; +pub const ERROR_VOLMGR_PACK_CONFIG_OFFLINE: WIN32_ERROR = 3224895568u32; +pub const ERROR_VOLMGR_PACK_CONFIG_ONLINE: WIN32_ERROR = 3224895569u32; +pub const ERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED: WIN32_ERROR = 3224895492u32; +pub const ERROR_VOLMGR_PACK_DUPLICATE: WIN32_ERROR = 3224895535u32; +pub const ERROR_VOLMGR_PACK_HAS_QUORUM: WIN32_ERROR = 3224895540u32; +pub const ERROR_VOLMGR_PACK_ID_INVALID: WIN32_ERROR = 3224895536u32; +pub const ERROR_VOLMGR_PACK_INVALID: WIN32_ERROR = 3224895537u32; +pub const ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED: WIN32_ERROR = 3224895571u32; +pub const ERROR_VOLMGR_PACK_NAME_INVALID: WIN32_ERROR = 3224895538u32; +pub const ERROR_VOLMGR_PACK_OFFLINE: WIN32_ERROR = 3224895539u32; +pub const ERROR_VOLMGR_PACK_WITHOUT_QUORUM: WIN32_ERROR = 3224895541u32; +pub const ERROR_VOLMGR_PARTITION_STYLE_INVALID: WIN32_ERROR = 3224895542u32; +pub const ERROR_VOLMGR_PARTITION_UPDATE_FAILED: WIN32_ERROR = 3224895543u32; +pub const ERROR_VOLMGR_PLEX_INDEX_DUPLICATE: WIN32_ERROR = 3224895545u32; +pub const ERROR_VOLMGR_PLEX_INDEX_INVALID: WIN32_ERROR = 3224895546u32; +pub const ERROR_VOLMGR_PLEX_IN_SYNC: WIN32_ERROR = 3224895544u32; +pub const ERROR_VOLMGR_PLEX_LAST_ACTIVE: WIN32_ERROR = 3224895547u32; +pub const ERROR_VOLMGR_PLEX_MISSING: WIN32_ERROR = 3224895548u32; +pub const ERROR_VOLMGR_PLEX_NOT_RAID5: WIN32_ERROR = 3224895551u32; +pub const ERROR_VOLMGR_PLEX_NOT_SIMPLE: WIN32_ERROR = 3224895552u32; +pub const ERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED: WIN32_ERROR = 3224895575u32; +pub const ERROR_VOLMGR_PLEX_REGENERATING: WIN32_ERROR = 3224895549u32; +pub const ERROR_VOLMGR_PLEX_TYPE_INVALID: WIN32_ERROR = 3224895550u32; +pub const ERROR_VOLMGR_PRIMARY_PACK_PRESENT: WIN32_ERROR = 3224895577u32; +pub const ERROR_VOLMGR_RAID5_NOT_SUPPORTED: WIN32_ERROR = 3224895580u32; +pub const ERROR_VOLMGR_STRUCTURE_SIZE_INVALID: WIN32_ERROR = 3224895553u32; +pub const ERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS: WIN32_ERROR = 3224895554u32; +pub const ERROR_VOLMGR_TRANSACTION_IN_PROGRESS: WIN32_ERROR = 3224895555u32; +pub const ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE: WIN32_ERROR = 3224895556u32; +pub const ERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK: WIN32_ERROR = 3224895557u32; +pub const ERROR_VOLMGR_VOLUME_ID_INVALID: WIN32_ERROR = 3224895558u32; +pub const ERROR_VOLMGR_VOLUME_LENGTH_INVALID: WIN32_ERROR = 3224895559u32; +pub const ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE: WIN32_ERROR = 3224895560u32; +pub const ERROR_VOLMGR_VOLUME_MIRRORED: WIN32_ERROR = 3224895574u32; +pub const ERROR_VOLMGR_VOLUME_NOT_MIRRORED: WIN32_ERROR = 3224895561u32; +pub const ERROR_VOLMGR_VOLUME_NOT_RETAINED: WIN32_ERROR = 3224895562u32; +pub const ERROR_VOLMGR_VOLUME_OFFLINE: WIN32_ERROR = 3224895563u32; +pub const ERROR_VOLMGR_VOLUME_RETAINED: WIN32_ERROR = 3224895564u32; +pub const ERROR_VOLSNAP_ACTIVATION_TIMEOUT: ::windows_sys::core::HRESULT = -2138963966i32; +pub const ERROR_VOLSNAP_BOOTFILE_NOT_VALID: ::windows_sys::core::HRESULT = -2138963967i32; +pub const ERROR_VOLSNAP_HIBERNATE_READY: WIN32_ERROR = 761u32; +pub const ERROR_VOLSNAP_NO_BYPASSIO_WITH_SNAPSHOT: ::windows_sys::core::HRESULT = -2138963965i32; +pub const ERROR_VOLSNAP_PREPARE_HIBERNATE: WIN32_ERROR = 655u32; +pub const ERROR_VOLUME_CONTAINS_SYS_FILES: WIN32_ERROR = 4337u32; +pub const ERROR_VOLUME_DIRTY: WIN32_ERROR = 6851u32; +pub const ERROR_VOLUME_MOUNTED: WIN32_ERROR = 743u32; +pub const ERROR_VOLUME_NOT_CLUSTER_ALIGNED: WIN32_ERROR = 407u32; +pub const ERROR_VOLUME_NOT_SIS_ENABLED: WIN32_ERROR = 4500u32; +pub const ERROR_VOLUME_NOT_SUPPORTED: WIN32_ERROR = 492u32; +pub const ERROR_VOLUME_NOT_SUPPORT_EFS: WIN32_ERROR = 6014u32; +pub const ERROR_VOLUME_WRITE_ACCESS_DENIED: WIN32_ERROR = 508u32; +pub const ERROR_VRF_VOLATILE_CFG_AND_IO_ENABLED: WIN32_ERROR = 3080u32; +pub const ERROR_VRF_VOLATILE_NMI_REGISTERED: WIN32_ERROR = 3086u32; +pub const ERROR_VRF_VOLATILE_NOT_RUNNABLE_SYSTEM: WIN32_ERROR = 3083u32; +pub const ERROR_VRF_VOLATILE_NOT_STOPPABLE: WIN32_ERROR = 3081u32; +pub const ERROR_VRF_VOLATILE_NOT_SUPPORTED_RULECLASS: WIN32_ERROR = 3084u32; +pub const ERROR_VRF_VOLATILE_PROTECTED_DRIVER: WIN32_ERROR = 3085u32; +pub const ERROR_VRF_VOLATILE_SAFE_MODE: WIN32_ERROR = 3082u32; +pub const ERROR_VRF_VOLATILE_SETTINGS_CONFLICT: WIN32_ERROR = 3087u32; +pub const ERROR_VSMB_SAVED_STATE_CORRUPT: WIN32_ERROR = 3224830977u32; +pub const ERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND: WIN32_ERROR = 3224830976u32; +pub const ERROR_VSM_DMA_PROTECTION_NOT_IN_USE: WIN32_ERROR = 4561u32; +pub const ERROR_VSM_NOT_INITIALIZED: WIN32_ERROR = 4560u32; +pub const ERROR_WAIT_1: WIN32_ERROR = 731u32; +pub const ERROR_WAIT_2: WIN32_ERROR = 732u32; +pub const ERROR_WAIT_3: WIN32_ERROR = 733u32; +pub const ERROR_WAIT_63: WIN32_ERROR = 734u32; +pub const ERROR_WAIT_FOR_OPLOCK: WIN32_ERROR = 765u32; +pub const ERROR_WAIT_NO_CHILDREN: WIN32_ERROR = 128u32; +pub const ERROR_WAKE_SYSTEM: WIN32_ERROR = 730u32; +pub const ERROR_WAKE_SYSTEM_DEBUGGER: WIN32_ERROR = 675u32; +pub const ERROR_WAS_LOCKED: WIN32_ERROR = 717u32; +pub const ERROR_WAS_UNLOCKED: WIN32_ERROR = 715u32; +pub const ERROR_WEAK_WHFBKEY_BLOCKED: WIN32_ERROR = 8651u32; +pub const ERROR_WINDOW_NOT_COMBOBOX: WIN32_ERROR = 1423u32; +pub const ERROR_WINDOW_NOT_DIALOG: WIN32_ERROR = 1420u32; +pub const ERROR_WINDOW_OF_OTHER_THREAD: WIN32_ERROR = 1408u32; +pub const ERROR_WINS_INTERNAL: WIN32_ERROR = 4000u32; +pub const ERROR_WIP_ENCRYPTION_FAILED: WIN32_ERROR = 6023u32; +pub const ERROR_WMI_ALREADY_DISABLED: WIN32_ERROR = 4212u32; +pub const ERROR_WMI_ALREADY_ENABLED: WIN32_ERROR = 4206u32; +pub const ERROR_WMI_DP_FAILED: WIN32_ERROR = 4209u32; +pub const ERROR_WMI_DP_NOT_FOUND: WIN32_ERROR = 4204u32; +pub const ERROR_WMI_GUID_DISCONNECTED: WIN32_ERROR = 4207u32; +pub const ERROR_WMI_GUID_NOT_FOUND: WIN32_ERROR = 4200u32; +pub const ERROR_WMI_INSTANCE_NOT_FOUND: WIN32_ERROR = 4201u32; +pub const ERROR_WMI_INVALID_MOF: WIN32_ERROR = 4210u32; +pub const ERROR_WMI_INVALID_REGINFO: WIN32_ERROR = 4211u32; +pub const ERROR_WMI_ITEMID_NOT_FOUND: WIN32_ERROR = 4202u32; +pub const ERROR_WMI_READ_ONLY: WIN32_ERROR = 4213u32; +pub const ERROR_WMI_SERVER_UNAVAILABLE: WIN32_ERROR = 4208u32; +pub const ERROR_WMI_SET_FAILURE: WIN32_ERROR = 4214u32; +pub const ERROR_WMI_TRY_AGAIN: WIN32_ERROR = 4203u32; +pub const ERROR_WMI_UNRESOLVED_INSTANCE_REF: WIN32_ERROR = 4205u32; +pub const ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT: WIN32_ERROR = 4448u32; +pub const ERROR_WOF_WIM_HEADER_CORRUPT: WIN32_ERROR = 4446u32; +pub const ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT: WIN32_ERROR = 4447u32; +pub const ERROR_WORKING_SET_QUOTA: WIN32_ERROR = 1453u32; +pub const ERROR_WOW_ASSERTION: WIN32_ERROR = 670u32; +pub const ERROR_WRITE_FAULT: WIN32_ERROR = 29u32; +pub const ERROR_WRITE_PROTECT: WIN32_ERROR = 19u32; +pub const ERROR_WRONG_COMPARTMENT: WIN32_ERROR = 1468u32; +pub const ERROR_WRONG_DISK: WIN32_ERROR = 34u32; +pub const ERROR_WRONG_EFS: WIN32_ERROR = 6005u32; +pub const ERROR_WRONG_INF_STYLE: WIN32_ERROR = 3758096640u32; +pub const ERROR_WRONG_INF_TYPE: WIN32_ERROR = 3758096970u32; +pub const ERROR_WRONG_PASSWORD: WIN32_ERROR = 1323u32; +pub const ERROR_WRONG_TARGET_NAME: WIN32_ERROR = 1396u32; +pub const ERROR_WX86_ERROR: WIN32_ERROR = 540u32; +pub const ERROR_WX86_WARNING: WIN32_ERROR = 539u32; +pub const ERROR_XMLDSIG_ERROR: WIN32_ERROR = 1466u32; +pub const ERROR_XML_ENCODING_MISMATCH: WIN32_ERROR = 14100u32; +pub const ERROR_XML_PARSE_ERROR: WIN32_ERROR = 1465u32; +pub const EVENT_E_ALL_SUBSCRIBERS_FAILED: ::windows_sys::core::HRESULT = -2147220991i32; +pub const EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT: ::windows_sys::core::HRESULT = -2147220978i32; +pub const EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT: ::windows_sys::core::HRESULT = -2147220979i32; +pub const EVENT_E_COMPLUS_NOT_INSTALLED: ::windows_sys::core::HRESULT = -2147220980i32; +pub const EVENT_E_FIRST: i32 = -2147220992i32; +pub const EVENT_E_INTERNALERROR: ::windows_sys::core::HRESULT = -2147220986i32; +pub const EVENT_E_INTERNALEXCEPTION: ::windows_sys::core::HRESULT = -2147220987i32; +pub const EVENT_E_INVALID_EVENT_CLASS_PARTITION: ::windows_sys::core::HRESULT = -2147220977i32; +pub const EVENT_E_INVALID_PER_USER_SID: ::windows_sys::core::HRESULT = -2147220985i32; +pub const EVENT_E_LAST: i32 = -2147220961i32; +pub const EVENT_E_MISSING_EVENTCLASS: ::windows_sys::core::HRESULT = -2147220982i32; +pub const EVENT_E_NOT_ALL_REMOVED: ::windows_sys::core::HRESULT = -2147220981i32; +pub const EVENT_E_PER_USER_SID_NOT_LOGGED_ON: ::windows_sys::core::HRESULT = -2147220976i32; +pub const EVENT_E_QUERYFIELD: ::windows_sys::core::HRESULT = -2147220988i32; +pub const EVENT_E_QUERYSYNTAX: ::windows_sys::core::HRESULT = -2147220989i32; +pub const EVENT_E_TOO_MANY_METHODS: ::windows_sys::core::HRESULT = -2147220983i32; +pub const EVENT_E_USER_EXCEPTION: ::windows_sys::core::HRESULT = -2147220984i32; +pub const EVENT_S_FIRST: i32 = 262656i32; +pub const EVENT_S_LAST: i32 = 262687i32; +pub const EVENT_S_NOSUBSCRIBERS: ::windows_sys::core::HRESULT = 262658i32; +pub const EVENT_S_SOME_SUBSCRIBERS_FAILED: ::windows_sys::core::HRESULT = 262656i32; +pub const EXCEPTION_ACCESS_VIOLATION: NTSTATUS = -1073741819i32; +pub const EXCEPTION_ARRAY_BOUNDS_EXCEEDED: NTSTATUS = -1073741684i32; +pub const EXCEPTION_BREAKPOINT: NTSTATUS = -2147483645i32; +pub const EXCEPTION_DATATYPE_MISALIGNMENT: NTSTATUS = -2147483646i32; +pub const EXCEPTION_FLT_DENORMAL_OPERAND: NTSTATUS = -1073741683i32; +pub const EXCEPTION_FLT_DIVIDE_BY_ZERO: NTSTATUS = -1073741682i32; +pub const EXCEPTION_FLT_INEXACT_RESULT: NTSTATUS = -1073741681i32; +pub const EXCEPTION_FLT_INVALID_OPERATION: NTSTATUS = -1073741680i32; +pub const EXCEPTION_FLT_OVERFLOW: NTSTATUS = -1073741679i32; +pub const EXCEPTION_FLT_STACK_CHECK: NTSTATUS = -1073741678i32; +pub const EXCEPTION_FLT_UNDERFLOW: NTSTATUS = -1073741677i32; +pub const EXCEPTION_GUARD_PAGE: NTSTATUS = -2147483647i32; +pub const EXCEPTION_ILLEGAL_INSTRUCTION: NTSTATUS = -1073741795i32; +pub const EXCEPTION_INT_DIVIDE_BY_ZERO: NTSTATUS = -1073741676i32; +pub const EXCEPTION_INT_OVERFLOW: NTSTATUS = -1073741675i32; +pub const EXCEPTION_INVALID_DISPOSITION: NTSTATUS = -1073741786i32; +pub const EXCEPTION_INVALID_HANDLE: NTSTATUS = -1073741816i32; +pub const EXCEPTION_IN_PAGE_ERROR: NTSTATUS = -1073741818i32; +pub const EXCEPTION_NONCONTINUABLE_EXCEPTION: NTSTATUS = -1073741787i32; +pub const EXCEPTION_POSSIBLE_DEADLOCK: NTSTATUS = -1073741420i32; +pub const EXCEPTION_PRIV_INSTRUCTION: NTSTATUS = -1073741674i32; +pub const EXCEPTION_SINGLE_STEP: NTSTATUS = -2147483644i32; +pub const EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW: NTSTATUS = -536870144i32; +pub const EXCEPTION_STACK_OVERFLOW: NTSTATUS = -1073741571i32; +pub const E_ABORT: ::windows_sys::core::HRESULT = -2147467260i32; +pub const E_ACCESSDENIED: ::windows_sys::core::HRESULT = -2147024891i32; +pub const E_APPLICATION_ACTIVATION_EXEC_FAILURE: ::windows_sys::core::HRESULT = -2144927141i32; +pub const E_APPLICATION_ACTIVATION_TIMED_OUT: ::windows_sys::core::HRESULT = -2144927142i32; +pub const E_APPLICATION_EXITING: ::windows_sys::core::HRESULT = -2147483622i32; +pub const E_APPLICATION_MANAGER_NOT_RUNNING: ::windows_sys::core::HRESULT = -2144927145i32; +pub const E_APPLICATION_NOT_REGISTERED: ::windows_sys::core::HRESULT = -2144927148i32; +pub const E_APPLICATION_TEMPORARY_LICENSE_ERROR: ::windows_sys::core::HRESULT = -2144927140i32; +pub const E_APPLICATION_TRIAL_LICENSE_EXPIRED: ::windows_sys::core::HRESULT = -2144927139i32; +pub const E_APPLICATION_VIEW_EXITING: ::windows_sys::core::HRESULT = -2147483621i32; +pub const E_ASYNC_OPERATION_NOT_STARTED: ::windows_sys::core::HRESULT = -2147483623i32; +pub const E_AUDIO_ENGINE_NODE_NOT_FOUND: ::windows_sys::core::HRESULT = -2140798975i32; +pub const E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND: ::windows_sys::core::HRESULT = -2140864502i32; +pub const E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG: ::windows_sys::core::HRESULT = -2140864501i32; +pub const E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION: ::windows_sys::core::HRESULT = -2140864507i32; +pub const E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION: ::windows_sys::core::HRESULT = -2140864504i32; +pub const E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION: ::windows_sys::core::HRESULT = -2140864497i32; +pub const E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE: ::windows_sys::core::HRESULT = -2140864500i32; +pub const E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES: ::windows_sys::core::HRESULT = -2140864495i32; +pub const E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH: ::windows_sys::core::HRESULT = -2140864499i32; +pub const E_BLUETOOTH_ATT_INVALID_HANDLE: ::windows_sys::core::HRESULT = -2140864511i32; +pub const E_BLUETOOTH_ATT_INVALID_OFFSET: ::windows_sys::core::HRESULT = -2140864505i32; +pub const E_BLUETOOTH_ATT_INVALID_PDU: ::windows_sys::core::HRESULT = -2140864508i32; +pub const E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL: ::windows_sys::core::HRESULT = -2140864503i32; +pub const E_BLUETOOTH_ATT_READ_NOT_PERMITTED: ::windows_sys::core::HRESULT = -2140864510i32; +pub const E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2140864506i32; +pub const E_BLUETOOTH_ATT_UNKNOWN_ERROR: ::windows_sys::core::HRESULT = -2140860416i32; +pub const E_BLUETOOTH_ATT_UNLIKELY: ::windows_sys::core::HRESULT = -2140864498i32; +pub const E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE: ::windows_sys::core::HRESULT = -2140864496i32; +pub const E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED: ::windows_sys::core::HRESULT = -2140864509i32; +pub const E_BOUNDS: ::windows_sys::core::HRESULT = -2147483637i32; +pub const E_CHANGED_STATE: ::windows_sys::core::HRESULT = -2147483636i32; +pub const E_ELEVATED_ACTIVATION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144927151i32; +pub const E_FAIL: ::windows_sys::core::HRESULT = -2147467259i32; +pub const E_FULL_ADMIN_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144927149i32; +pub const E_HANDLE: ::windows_sys::core::HRESULT = -2147024890i32; +pub const E_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2140798973i32; +pub const E_HDAUDIO_EMPTY_CONNECTION_LIST: ::windows_sys::core::HRESULT = -2140798974i32; +pub const E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED: ::windows_sys::core::HRESULT = -2140798972i32; +pub const E_HDAUDIO_NULL_LINKED_LIST_ENTRY: ::windows_sys::core::HRESULT = -2140798971i32; +pub const E_ILLEGAL_DELEGATE_ASSIGNMENT: ::windows_sys::core::HRESULT = -2147483624i32; +pub const E_ILLEGAL_METHOD_CALL: ::windows_sys::core::HRESULT = -2147483634i32; +pub const E_ILLEGAL_STATE_CHANGE: ::windows_sys::core::HRESULT = -2147483635i32; +pub const E_INVALIDARG: ::windows_sys::core::HRESULT = -2147024809i32; +pub const E_INVALID_PROTOCOL_FORMAT: ::windows_sys::core::HRESULT = -2089418750i32; +pub const E_INVALID_PROTOCOL_OPERATION: ::windows_sys::core::HRESULT = -2089418751i32; +pub const E_MBN_BAD_SIM: ::windows_sys::core::HRESULT = -2141945342i32; +pub const E_MBN_CONTEXT_NOT_ACTIVATED: ::windows_sys::core::HRESULT = -2141945343i32; +pub const E_MBN_DATA_CLASS_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2141945341i32; +pub const E_MBN_DEFAULT_PROFILE_EXIST: ::windows_sys::core::HRESULT = -2141945319i32; +pub const E_MBN_FAILURE: ::windows_sys::core::HRESULT = -2141945326i32; +pub const E_MBN_INVALID_ACCESS_STRING: ::windows_sys::core::HRESULT = -2141945340i32; +pub const E_MBN_INVALID_CACHE: ::windows_sys::core::HRESULT = -2141945332i32; +pub const E_MBN_INVALID_PROFILE: ::windows_sys::core::HRESULT = -2141945320i32; +pub const E_MBN_MAX_ACTIVATED_CONTEXTS: ::windows_sys::core::HRESULT = -2141945339i32; +pub const E_MBN_NOT_REGISTERED: ::windows_sys::core::HRESULT = -2141945331i32; +pub const E_MBN_PACKET_SVC_DETACHED: ::windows_sys::core::HRESULT = -2141945338i32; +pub const E_MBN_PIN_DISABLED: ::windows_sys::core::HRESULT = -2141945327i32; +pub const E_MBN_PIN_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2141945329i32; +pub const E_MBN_PIN_REQUIRED: ::windows_sys::core::HRESULT = -2141945328i32; +pub const E_MBN_PROVIDERS_NOT_FOUND: ::windows_sys::core::HRESULT = -2141945330i32; +pub const E_MBN_PROVIDER_NOT_VISIBLE: ::windows_sys::core::HRESULT = -2141945337i32; +pub const E_MBN_RADIO_POWER_OFF: ::windows_sys::core::HRESULT = -2141945336i32; +pub const E_MBN_SERVICE_NOT_ACTIVATED: ::windows_sys::core::HRESULT = -2141945335i32; +pub const E_MBN_SIM_NOT_INSERTED: ::windows_sys::core::HRESULT = -2141945334i32; +pub const E_MBN_SMS_ENCODING_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2141945312i32; +pub const E_MBN_SMS_FILTER_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2141945311i32; +pub const E_MBN_SMS_FORMAT_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2141945305i32; +pub const E_MBN_SMS_INVALID_MEMORY_INDEX: ::windows_sys::core::HRESULT = -2141945310i32; +pub const E_MBN_SMS_LANG_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2141945309i32; +pub const E_MBN_SMS_MEMORY_FAILURE: ::windows_sys::core::HRESULT = -2141945308i32; +pub const E_MBN_SMS_MEMORY_FULL: ::windows_sys::core::HRESULT = -2141945303i32; +pub const E_MBN_SMS_NETWORK_TIMEOUT: ::windows_sys::core::HRESULT = -2141945307i32; +pub const E_MBN_SMS_OPERATION_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2141945304i32; +pub const E_MBN_SMS_UNKNOWN_SMSC_ADDRESS: ::windows_sys::core::HRESULT = -2141945306i32; +pub const E_MBN_VOICE_CALL_IN_PROGRESS: ::windows_sys::core::HRESULT = -2141945333i32; +pub const E_MONITOR_RESOLUTION_TOO_LOW: ::windows_sys::core::HRESULT = -2144927152i32; +pub const E_MULTIPLE_EXTENSIONS_FOR_APPLICATION: ::windows_sys::core::HRESULT = -2144927147i32; +pub const E_MULTIPLE_PACKAGES_FOR_FAMILY: ::windows_sys::core::HRESULT = -2144927146i32; +pub const E_NOINTERFACE: ::windows_sys::core::HRESULT = -2147467262i32; +pub const E_NOTIMPL: ::windows_sys::core::HRESULT = -2147467263i32; +pub const E_OUTOFMEMORY: ::windows_sys::core::HRESULT = -2147024882i32; +pub const E_POINTER: ::windows_sys::core::HRESULT = -2147467261i32; +pub const E_PROTOCOL_EXTENSIONS_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2089418749i32; +pub const E_PROTOCOL_VERSION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2089418747i32; +pub const E_SKYDRIVE_FILE_NOT_UPLOADED: ::windows_sys::core::HRESULT = -2144927133i32; +pub const E_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX: ::windows_sys::core::HRESULT = -2144927134i32; +pub const E_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144927136i32; +pub const E_SKYDRIVE_ROOT_TARGET_OVERLAP: ::windows_sys::core::HRESULT = -2144927135i32; +pub const E_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144927131i32; +pub const E_SKYDRIVE_UPDATE_AVAILABILITY_FAIL: ::windows_sys::core::HRESULT = -2144927132i32; +pub const E_STRING_NOT_NULL_TERMINATED: ::windows_sys::core::HRESULT = -2147483625i32; +pub const E_SUBPROTOCOL_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2089418748i32; +pub const E_SYNCENGINE_CLIENT_UPDATE_NEEDED: ::windows_sys::core::HRESULT = -2013081594i32; +pub const E_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN: ::windows_sys::core::HRESULT = -2013085694i32; +pub const E_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA: ::windows_sys::core::HRESULT = -2013089790i32; +pub const E_SYNCENGINE_FILE_SIZE_OVER_LIMIT: ::windows_sys::core::HRESULT = -2013089791i32; +pub const E_SYNCENGINE_FILE_SYNC_PARTNER_ERROR: ::windows_sys::core::HRESULT = -2013089787i32; +pub const E_SYNCENGINE_FOLDER_INACCESSIBLE: ::windows_sys::core::HRESULT = -2013081599i32; +pub const E_SYNCENGINE_FOLDER_IN_REDIRECTION: ::windows_sys::core::HRESULT = -2013081589i32; +pub const E_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED: ::windows_sys::core::HRESULT = -2013089788i32; +pub const E_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED: ::windows_sys::core::HRESULT = -2013081596i32; +pub const E_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED: ::windows_sys::core::HRESULT = -2013081593i32; +pub const E_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED: ::windows_sys::core::HRESULT = -2013081595i32; +pub const E_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE: ::windows_sys::core::HRESULT = -2013085690i32; +pub const E_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR: ::windows_sys::core::HRESULT = -2013085689i32; +pub const E_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED: ::windows_sys::core::HRESULT = -2013085693i32; +pub const E_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE: ::windows_sys::core::HRESULT = -2013085691i32; +pub const E_SYNCENGINE_STORAGE_SERVICE_BLOCKED: ::windows_sys::core::HRESULT = -2013081590i32; +pub const E_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED: ::windows_sys::core::HRESULT = -2013081592i32; +pub const E_SYNCENGINE_SYNC_PAUSED_BY_SERVICE: ::windows_sys::core::HRESULT = -2013089786i32; +pub const E_SYNCENGINE_UNKNOWN_SERVICE_ERROR: ::windows_sys::core::HRESULT = -2013085692i32; +pub const E_SYNCENGINE_UNSUPPORTED_FILE_NAME: ::windows_sys::core::HRESULT = -2013089789i32; +pub const E_SYNCENGINE_UNSUPPORTED_FOLDER_NAME: ::windows_sys::core::HRESULT = -2013081598i32; +pub const E_SYNCENGINE_UNSUPPORTED_MARKET: ::windows_sys::core::HRESULT = -2013081597i32; +pub const E_SYNCENGINE_UNSUPPORTED_REPARSE_POINT: ::windows_sys::core::HRESULT = -2013081591i32; +pub const E_UAC_DISABLED: ::windows_sys::core::HRESULT = -2144927150i32; +pub const E_UNEXPECTED: ::windows_sys::core::HRESULT = -2147418113i32; +pub const FACILITY_ACPI_ERROR_CODE: NTSTATUS_FACILITY_CODE = 20u32; +pub const FACILITY_APP_EXEC: NTSTATUS_FACILITY_CODE = 236u32; +pub const FACILITY_AUDIO_KERNEL: NTSTATUS_FACILITY_CODE = 68u32; +pub const FACILITY_BCD_ERROR_CODE: NTSTATUS_FACILITY_CODE = 57u32; +pub const FACILITY_BTH_ATT: NTSTATUS_FACILITY_CODE = 66u32; +pub const FACILITY_CLUSTER_ERROR_CODE: NTSTATUS_FACILITY_CODE = 19u32; +pub const FACILITY_CODCLASS_ERROR_CODE: NTSTATUS_FACILITY_CODE = 6u32; +pub const FACILITY_COMMONLOG: NTSTATUS_FACILITY_CODE = 26u32; +pub const FACILITY_DEBUGGER: NTSTATUS_FACILITY_CODE = 1u32; +pub const FACILITY_DRIVER_FRAMEWORK: NTSTATUS_FACILITY_CODE = 32u32; +pub const FACILITY_FILTER_MANAGER: NTSTATUS_FACILITY_CODE = 28u32; +pub const FACILITY_FIREWIRE_ERROR_CODE: NTSTATUS_FACILITY_CODE = 18u32; +pub const FACILITY_FVE_ERROR_CODE: NTSTATUS_FACILITY_CODE = 33u32; +pub const FACILITY_FWP_ERROR_CODE: NTSTATUS_FACILITY_CODE = 34u32; +pub const FACILITY_GRAPHICS_KERNEL: NTSTATUS_FACILITY_CODE = 30u32; +pub const FACILITY_HID_ERROR_CODE: NTSTATUS_FACILITY_CODE = 17u32; +pub const FACILITY_HYPERVISOR: NTSTATUS_FACILITY_CODE = 53u32; +pub const FACILITY_INTERIX: NTSTATUS_FACILITY_CODE = 153u32; +pub const FACILITY_IO_ERROR_CODE: NTSTATUS_FACILITY_CODE = 4u32; +pub const FACILITY_IPSEC: NTSTATUS_FACILITY_CODE = 54u32; +pub const FACILITY_LICENSING: NTSTATUS_FACILITY_CODE = 234u32; +pub const FACILITY_MAXIMUM_VALUE: NTSTATUS_FACILITY_CODE = 237u32; +pub const FACILITY_MCA_ERROR_CODE: NTSTATUS_FACILITY_CODE = 5u32; +pub const FACILITY_MONITOR: NTSTATUS_FACILITY_CODE = 29u32; +pub const FACILITY_NDIS_ERROR_CODE: NTSTATUS_FACILITY_CODE = 35u32; +pub const FACILITY_NTCERT: NTSTATUS_FACILITY_CODE = 8u32; +pub const FACILITY_NTSSPI: NTSTATUS_FACILITY_CODE = 9u32; +pub const FACILITY_NTWIN32: NTSTATUS_FACILITY_CODE = 7u32; +pub const FACILITY_NT_IORING: NTSTATUS_FACILITY_CODE = 70u32; +pub const FACILITY_PLATFORM_MANIFEST: NTSTATUS_FACILITY_CODE = 235u32; +pub const FACILITY_QUIC_ERROR_CODE: NTSTATUS_FACILITY_CODE = 36u32; +pub const FACILITY_RDBSS: NTSTATUS_FACILITY_CODE = 65u32; +pub const FACILITY_RESUME_KEY_FILTER: NTSTATUS_FACILITY_CODE = 64u32; +pub const FACILITY_RPC_RUNTIME: NTSTATUS_FACILITY_CODE = 2u32; +pub const FACILITY_RPC_STUBS: NTSTATUS_FACILITY_CODE = 3u32; +pub const FACILITY_RTPM: NTSTATUS_FACILITY_CODE = 42u32; +pub const FACILITY_SDBUS: NTSTATUS_FACILITY_CODE = 81u32; +pub const FACILITY_SECUREBOOT: NTSTATUS_FACILITY_CODE = 67u32; +pub const FACILITY_SECURITY_CORE: NTSTATUS_FACILITY_CODE = 232u32; +pub const FACILITY_SHARED_VHDX: NTSTATUS_FACILITY_CODE = 92u32; +pub const FACILITY_SMB: NTSTATUS_FACILITY_CODE = 93u32; +pub const FACILITY_SPACES: NTSTATUS_FACILITY_CODE = 231u32; +pub const FACILITY_SXS_ERROR_CODE: NTSTATUS_FACILITY_CODE = 21u32; +pub const FACILITY_SYSTEM_INTEGRITY: NTSTATUS_FACILITY_CODE = 233u32; +pub const FACILITY_TERMINAL_SERVER: NTSTATUS_FACILITY_CODE = 10u32; +pub const FACILITY_TPM: NTSTATUS_FACILITY_CODE = 41u32; +pub const FACILITY_TRANSACTION: NTSTATUS_FACILITY_CODE = 25u32; +pub const FACILITY_USB_ERROR_CODE: NTSTATUS_FACILITY_CODE = 16u32; +pub const FACILITY_VIDEO: NTSTATUS_FACILITY_CODE = 27u32; +pub const FACILITY_VIRTUALIZATION: NTSTATUS_FACILITY_CODE = 55u32; +pub const FACILITY_VOLMGR: NTSTATUS_FACILITY_CODE = 56u32; +pub const FACILITY_VOLSNAP: NTSTATUS_FACILITY_CODE = 80u32; +pub const FACILITY_VSM: NTSTATUS_FACILITY_CODE = 69u32; +pub const FACILITY_WIN32K_NTGDI: NTSTATUS_FACILITY_CODE = 63u32; +pub const FACILITY_WIN32K_NTUSER: NTSTATUS_FACILITY_CODE = 62u32; +pub const FACILITY_XVS: NTSTATUS_FACILITY_CODE = 94u32; +pub const FACILTIY_MUI_ERROR_CODE: u32 = 11u32; +pub const FALSE: BOOL = 0i32; +pub const FA_E_HOMEGROUP_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2144927198i32; +pub const FA_E_MAX_PERSISTED_ITEMS_REACHED: ::windows_sys::core::HRESULT = -2144927200i32; +pub const FDAEMON_E_CHANGEUPDATEFAILED: ::windows_sys::core::HRESULT = -2147215740i32; +pub const FDAEMON_E_FATALERROR: ::windows_sys::core::HRESULT = -2147215742i32; +pub const FDAEMON_E_LOWRESOURCE: ::windows_sys::core::HRESULT = -2147215743i32; +pub const FDAEMON_E_NOWORDLIST: ::windows_sys::core::HRESULT = -2147215737i32; +pub const FDAEMON_E_PARTITIONDELETED: ::windows_sys::core::HRESULT = -2147215741i32; +pub const FDAEMON_E_TOOMANYFILTEREDBLOCKS: ::windows_sys::core::HRESULT = -2147215736i32; +pub const FDAEMON_E_WORDLISTCOMMITFAILED: ::windows_sys::core::HRESULT = -2147215738i32; +pub const FDAEMON_W_EMPTYWORDLIST: ::windows_sys::core::HRESULT = 267909i32; +pub const FDAEMON_W_WORDLISTFULL: ::windows_sys::core::HRESULT = 267904i32; +pub const FILTER_E_ALREADY_OPEN: ::windows_sys::core::HRESULT = -2147215562i32; +pub const FILTER_E_CONTENTINDEXCORRUPT: ::windows_sys::core::HRESULT = -1073473740i32; +pub const FILTER_E_IN_USE: ::windows_sys::core::HRESULT = -2147215560i32; +pub const FILTER_E_NOT_OPEN: ::windows_sys::core::HRESULT = -2147215559i32; +pub const FILTER_E_NO_SUCH_PROPERTY: ::windows_sys::core::HRESULT = -2147215557i32; +pub const FILTER_E_OFFLINE: ::windows_sys::core::HRESULT = -2147215555i32; +pub const FILTER_E_PARTIALLY_FILTERED: ::windows_sys::core::HRESULT = -2147215554i32; +pub const FILTER_E_TOO_BIG: ::windows_sys::core::HRESULT = -2147215568i32; +pub const FILTER_E_UNREACHABLE: ::windows_sys::core::HRESULT = -2147215561i32; +pub const FILTER_S_CONTENTSCAN_DELAYED: ::windows_sys::core::HRESULT = 268083i32; +pub const FILTER_S_DISK_FULL: ::windows_sys::core::HRESULT = 268085i32; +pub const FILTER_S_FULL_CONTENTSCAN_IMMEDIATE: ::windows_sys::core::HRESULT = 268082i32; +pub const FILTER_S_NO_PROPSETS: ::windows_sys::core::HRESULT = 268090i32; +pub const FILTER_S_NO_SECURITY_DESCRIPTOR: ::windows_sys::core::HRESULT = 268092i32; +pub const FILTER_S_PARTIAL_CONTENTSCAN_IMMEDIATE: ::windows_sys::core::HRESULT = 268081i32; +pub const FRS_ERR_AUTHENTICATION: i32 = 8008i32; +pub const FRS_ERR_CHILD_TO_PARENT_COMM: i32 = 8011i32; +pub const FRS_ERR_INSUFFICIENT_PRIV: i32 = 8007i32; +pub const FRS_ERR_INTERNAL: i32 = 8005i32; +pub const FRS_ERR_INTERNAL_API: i32 = 8004i32; +pub const FRS_ERR_INVALID_API_SEQUENCE: i32 = 8001i32; +pub const FRS_ERR_INVALID_SERVICE_PARAMETER: i32 = 8017i32; +pub const FRS_ERR_PARENT_AUTHENTICATION: i32 = 8010i32; +pub const FRS_ERR_PARENT_INSUFFICIENT_PRIV: i32 = 8009i32; +pub const FRS_ERR_PARENT_TO_CHILD_COMM: i32 = 8012i32; +pub const FRS_ERR_SERVICE_COMM: i32 = 8006i32; +pub const FRS_ERR_STARTING_SERVICE: i32 = 8002i32; +pub const FRS_ERR_STOPPING_SERVICE: i32 = 8003i32; +pub const FRS_ERR_SYSVOL_DEMOTE: i32 = 8016i32; +pub const FRS_ERR_SYSVOL_IS_BUSY: i32 = 8015i32; +pub const FRS_ERR_SYSVOL_POPULATE: i32 = 8013i32; +pub const FRS_ERR_SYSVOL_POPULATE_TIMEOUT: i32 = 8014i32; +pub const FVE_E_AAD_ENDPOINT_BUSY: ::windows_sys::core::HRESULT = -2144272159i32; +pub const FVE_E_AAD_SERVER_FAIL_BACKOFF: ::windows_sys::core::HRESULT = -2144272150i32; +pub const FVE_E_AAD_SERVER_FAIL_RETRY_AFTER: ::windows_sys::core::HRESULT = -2144272151i32; +pub const FVE_E_ACTION_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272375i32; +pub const FVE_E_ADBACKUP_NOT_ENABLED: ::windows_sys::core::HRESULT = -2144272171i32; +pub const FVE_E_AD_ATTR_NOT_SET: ::windows_sys::core::HRESULT = -2144272370i32; +pub const FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_FIXED_DRIVE: ::windows_sys::core::HRESULT = -2144272165i32; +pub const FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_OS_DRIVE: ::windows_sys::core::HRESULT = -2144272166i32; +pub const FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_REMOVABLE_DRIVE: ::windows_sys::core::HRESULT = -2144272164i32; +pub const FVE_E_AD_GUID_NOT_FOUND: ::windows_sys::core::HRESULT = -2144272369i32; +pub const FVE_E_AD_INSUFFICIENT_BUFFER: ::windows_sys::core::HRESULT = -2144272358i32; +pub const FVE_E_AD_INVALID_DATASIZE: ::windows_sys::core::HRESULT = -2144272372i32; +pub const FVE_E_AD_INVALID_DATATYPE: ::windows_sys::core::HRESULT = -2144272373i32; +pub const FVE_E_AD_NO_VALUES: ::windows_sys::core::HRESULT = -2144272371i32; +pub const FVE_E_AD_SCHEMA_NOT_INSTALLED: ::windows_sys::core::HRESULT = -2144272374i32; +pub const FVE_E_AUTH_INVALID_APPLICATION: ::windows_sys::core::HRESULT = -2144272316i32; +pub const FVE_E_AUTH_INVALID_CONFIG: ::windows_sys::core::HRESULT = -2144272315i32; +pub const FVE_E_AUTOUNLOCK_ENABLED: ::windows_sys::core::HRESULT = -2144272343i32; +pub const FVE_E_BAD_DATA: ::windows_sys::core::HRESULT = -2144272362i32; +pub const FVE_E_BAD_INFORMATION: ::windows_sys::core::HRESULT = -2144272368i32; +pub const FVE_E_BAD_PARTITION_SIZE: ::windows_sys::core::HRESULT = -2144272364i32; +pub const FVE_E_BCD_APPLICATIONS_PATH_INCORRECT: ::windows_sys::core::HRESULT = -2144272302i32; +pub const FVE_E_BOOTABLE_CDDVD: ::windows_sys::core::HRESULT = -2144272336i32; +pub const FVE_E_BUFFER_TOO_LARGE: ::windows_sys::core::HRESULT = -2144272177i32; +pub const FVE_E_CANNOT_ENCRYPT_NO_KEY: ::windows_sys::core::HRESULT = -2144272338i32; +pub const FVE_E_CANNOT_SET_FVEK_ENCRYPTED: ::windows_sys::core::HRESULT = -2144272339i32; +pub const FVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME: ::windows_sys::core::HRESULT = -2144272233i32; +pub const FVE_E_CLUSTERING_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144272354i32; +pub const FVE_E_CONV_READ: ::windows_sys::core::HRESULT = -2144272357i32; +pub const FVE_E_CONV_RECOVERY_FAILED: ::windows_sys::core::HRESULT = -2144272248i32; +pub const FVE_E_CONV_WRITE: ::windows_sys::core::HRESULT = -2144272356i32; +pub const FVE_E_DATASET_FULL: ::windows_sys::core::HRESULT = -2144272149i32; +pub const FVE_E_DEBUGGER_ENABLED: ::windows_sys::core::HRESULT = -2144272305i32; +pub const FVE_E_DEVICELOCKOUT_COUNTER_MISMATCH: ::windows_sys::core::HRESULT = -2144272178i32; +pub const FVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE: ::windows_sys::core::HRESULT = -2144272179i32; +pub const FVE_E_DEVICE_NOT_JOINED: ::windows_sys::core::HRESULT = -2144272160i32; +pub const FVE_E_DE_DEVICE_LOCKEDOUT: ::windows_sys::core::HRESULT = -2144272182i32; +pub const FVE_E_DE_FIXED_DATA_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144272187i32; +pub const FVE_E_DE_HARDWARE_NOT_COMPLIANT: ::windows_sys::core::HRESULT = -2144272186i32; +pub const FVE_E_DE_OS_VOLUME_NOT_PROTECTED: ::windows_sys::core::HRESULT = -2144272183i32; +pub const FVE_E_DE_PREVENTED_FOR_OS: ::windows_sys::core::HRESULT = -2144272175i32; +pub const FVE_E_DE_PROTECTION_NOT_YET_ENABLED: ::windows_sys::core::HRESULT = -2144272181i32; +pub const FVE_E_DE_PROTECTION_SUSPENDED: ::windows_sys::core::HRESULT = -2144272184i32; +pub const FVE_E_DE_VOLUME_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144272173i32; +pub const FVE_E_DE_VOLUME_OPTED_OUT: ::windows_sys::core::HRESULT = -2144272174i32; +pub const FVE_E_DE_WINRE_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -2144272185i32; +pub const FVE_E_DRY_RUN_FAILED: ::windows_sys::core::HRESULT = -2144272307i32; +pub const FVE_E_DV_NOT_ALLOWED_BY_GP: ::windows_sys::core::HRESULT = -2144272271i32; +pub const FVE_E_DV_NOT_SUPPORTED_ON_FS: ::windows_sys::core::HRESULT = -2144272272i32; +pub const FVE_E_EDRIVE_BAND_ENUMERATION_FAILED: ::windows_sys::core::HRESULT = -2144272157i32; +pub const FVE_E_EDRIVE_BAND_IN_USE: ::windows_sys::core::HRESULT = -2144272208i32; +pub const FVE_E_EDRIVE_DISALLOWED_BY_GP: ::windows_sys::core::HRESULT = -2144272207i32; +pub const FVE_E_EDRIVE_DRY_RUN_FAILED: ::windows_sys::core::HRESULT = -2144272196i32; +pub const FVE_E_EDRIVE_DV_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144272204i32; +pub const FVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE: ::windows_sys::core::HRESULT = -2144272193i32; +pub const FVE_E_EDRIVE_INCOMPATIBLE_VOLUME: ::windows_sys::core::HRESULT = -2144272206i32; +pub const FVE_E_EDRIVE_NO_FAILOVER_TO_SW: ::windows_sys::core::HRESULT = -2144272209i32; +pub const FVE_E_EFI_ONLY: ::windows_sys::core::HRESULT = -2144272228i32; +pub const FVE_E_ENH_PIN_INVALID: ::windows_sys::core::HRESULT = -2144272231i32; +pub const FVE_E_EOW_NOT_SUPPORTED_IN_VERSION: ::windows_sys::core::HRESULT = -2144272172i32; +pub const FVE_E_EXECUTE_REQUEST_SENT_TOO_SOON: ::windows_sys::core::HRESULT = -2144272162i32; +pub const FVE_E_FAILED_AUTHENTICATION: ::windows_sys::core::HRESULT = -2144272345i32; +pub const FVE_E_FAILED_SECTOR_SIZE: ::windows_sys::core::HRESULT = -2144272346i32; +pub const FVE_E_FAILED_WRONG_FS: ::windows_sys::core::HRESULT = -2144272365i32; +pub const FVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272314i32; +pub const FVE_E_FIPS_HASH_KDF_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272232i32; +pub const FVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT: ::windows_sys::core::HRESULT = -2144272328i32; +pub const FVE_E_FIPS_PREVENTS_PASSPHRASE: ::windows_sys::core::HRESULT = -2144272276i32; +pub const FVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD: ::windows_sys::core::HRESULT = -2144272329i32; +pub const FVE_E_FIPS_RNG_CHECK_FAILED: ::windows_sys::core::HRESULT = -2144272330i32; +pub const FVE_E_FIRMWARE_TYPE_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144272312i32; +pub const FVE_E_FOREIGN_VOLUME: ::windows_sys::core::HRESULT = -2144272349i32; +pub const FVE_E_FS_MOUNTED: ::windows_sys::core::HRESULT = -2144272309i32; +pub const FVE_E_FS_NOT_EXTENDED: ::windows_sys::core::HRESULT = -2144272313i32; +pub const FVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE: ::windows_sys::core::HRESULT = -2144272219i32; +pub const FVE_E_HIDDEN_VOLUME: ::windows_sys::core::HRESULT = -2144272298i32; +pub const FVE_E_INVALID_BITLOCKER_OID: ::windows_sys::core::HRESULT = -2144272274i32; +pub const FVE_E_INVALID_DATUM_TYPE: ::windows_sys::core::HRESULT = -2144272229i32; +pub const FVE_E_INVALID_KEY_FORMAT: ::windows_sys::core::HRESULT = -2144272332i32; +pub const FVE_E_INVALID_NBP_CERT: ::windows_sys::core::HRESULT = -2144272158i32; +pub const FVE_E_INVALID_NKP_CERT: ::windows_sys::core::HRESULT = -2144272225i32; +pub const FVE_E_INVALID_PASSWORD_FORMAT: ::windows_sys::core::HRESULT = -2144272331i32; +pub const FVE_E_INVALID_PIN_CHARS: ::windows_sys::core::HRESULT = -2144272230i32; +pub const FVE_E_INVALID_PIN_CHARS_DETAILED: ::windows_sys::core::HRESULT = -2144272180i32; +pub const FVE_E_INVALID_PROTECTOR_TYPE: ::windows_sys::core::HRESULT = -2144272326i32; +pub const FVE_E_INVALID_STARTUP_OPTIONS: ::windows_sys::core::HRESULT = -2144272293i32; +pub const FVE_E_KEYFILE_INVALID: ::windows_sys::core::HRESULT = -2144272323i32; +pub const FVE_E_KEYFILE_NOT_FOUND: ::windows_sys::core::HRESULT = -2144272324i32; +pub const FVE_E_KEYFILE_NO_VMK: ::windows_sys::core::HRESULT = -2144272322i32; +pub const FVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE: ::windows_sys::core::HRESULT = -2144272217i32; +pub const FVE_E_KEY_PROTECTOR_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144272279i32; +pub const FVE_E_KEY_REQUIRED: ::windows_sys::core::HRESULT = -2144272355i32; +pub const FVE_E_KEY_ROTATION_NOT_ENABLED: ::windows_sys::core::HRESULT = -2144272161i32; +pub const FVE_E_KEY_ROTATION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144272163i32; +pub const FVE_E_LIVEID_ACCOUNT_BLOCKED: ::windows_sys::core::HRESULT = -2144272189i32; +pub const FVE_E_LIVEID_ACCOUNT_SUSPENDED: ::windows_sys::core::HRESULT = -2144272190i32; +pub const FVE_E_LOCKED_VOLUME: ::windows_sys::core::HRESULT = -2144272384i32; +pub const FVE_E_METADATA_FULL: ::windows_sys::core::HRESULT = -2144272148i32; +pub const FVE_E_MOR_FAILED: ::windows_sys::core::HRESULT = -2144272299i32; +pub const FVE_E_MULTIPLE_NKP_CERTS: ::windows_sys::core::HRESULT = -2144272227i32; +pub const FVE_E_NON_BITLOCKER_KU: ::windows_sys::core::HRESULT = -2144272237i32; +pub const FVE_E_NON_BITLOCKER_OID: ::windows_sys::core::HRESULT = -2144272251i32; +pub const FVE_E_NOT_ACTIVATED: ::windows_sys::core::HRESULT = -2144272376i32; +pub const FVE_E_NOT_ALLOWED_IN_SAFE_MODE: ::windows_sys::core::HRESULT = -2144272320i32; +pub const FVE_E_NOT_ALLOWED_IN_VERSION: ::windows_sys::core::HRESULT = -2144272301i32; +pub const FVE_E_NOT_ALLOWED_ON_CLUSTER: ::windows_sys::core::HRESULT = -2144272210i32; +pub const FVE_E_NOT_ALLOWED_ON_CSV_STACK: ::windows_sys::core::HRESULT = -2144272211i32; +pub const FVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING: ::windows_sys::core::HRESULT = -2144272205i32; +pub const FVE_E_NOT_DATA_VOLUME: ::windows_sys::core::HRESULT = -2144272359i32; +pub const FVE_E_NOT_DECRYPTED: ::windows_sys::core::HRESULT = -2144272327i32; +pub const FVE_E_NOT_DE_VOLUME: ::windows_sys::core::HRESULT = -2144272169i32; +pub const FVE_E_NOT_ENCRYPTED: ::windows_sys::core::HRESULT = -2144272383i32; +pub const FVE_E_NOT_ON_STACK: ::windows_sys::core::HRESULT = -2144272310i32; +pub const FVE_E_NOT_OS_VOLUME: ::windows_sys::core::HRESULT = -2144272344i32; +pub const FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES: ::windows_sys::core::HRESULT = -2144272188i32; +pub const FVE_E_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144272363i32; +pub const FVE_E_NO_AUTOUNLOCK_MASTER_KEY: ::windows_sys::core::HRESULT = -2144272300i32; +pub const FVE_E_NO_BOOTMGR_METRIC: ::windows_sys::core::HRESULT = -2144272379i32; +pub const FVE_E_NO_BOOTSECTOR_METRIC: ::windows_sys::core::HRESULT = -2144272380i32; +pub const FVE_E_NO_EXISTING_PASSPHRASE: ::windows_sys::core::HRESULT = -2144272216i32; +pub const FVE_E_NO_EXISTING_PIN: ::windows_sys::core::HRESULT = -2144272224i32; +pub const FVE_E_NO_FEATURE_LICENSE: ::windows_sys::core::HRESULT = -2144272294i32; +pub const FVE_E_NO_LICENSE: ::windows_sys::core::HRESULT = -2144272311i32; +pub const FVE_E_NO_MBR_METRIC: ::windows_sys::core::HRESULT = -2144272381i32; +pub const FVE_E_NO_PASSPHRASE_WITH_TPM: ::windows_sys::core::HRESULT = -2144272213i32; +pub const FVE_E_NO_PREBOOT_KEYBOARD_DETECTED: ::windows_sys::core::HRESULT = -2144272203i32; +pub const FVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED: ::windows_sys::core::HRESULT = -2144272202i32; +pub const FVE_E_NO_PROTECTORS_TO_TEST: ::windows_sys::core::HRESULT = -2144272325i32; +pub const FVE_E_NO_SUCH_CAPABILITY_ON_TARGET: ::windows_sys::core::HRESULT = -2144272176i32; +pub const FVE_E_NO_TPM_BIOS: ::windows_sys::core::HRESULT = -2144272382i32; +pub const FVE_E_NO_TPM_WITH_PASSPHRASE: ::windows_sys::core::HRESULT = -2144272212i32; +pub const FVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME: ::windows_sys::core::HRESULT = -2144272234i32; +pub const FVE_E_OSV_KSR_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272167i32; +pub const FVE_E_OS_NOT_PROTECTED: ::windows_sys::core::HRESULT = -2144272352i32; +pub const FVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272275i32; +pub const FVE_E_OVERLAPPED_UPDATE: ::windows_sys::core::HRESULT = -2144272348i32; +pub const FVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED: ::windows_sys::core::HRESULT = -2144272191i32; +pub const FVE_E_PASSPHRASE_TOO_LONG: ::windows_sys::core::HRESULT = -2144272214i32; +pub const FVE_E_PIN_INVALID: ::windows_sys::core::HRESULT = -2144272317i32; +pub const FVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED: ::windows_sys::core::HRESULT = -2144272222i32; +pub const FVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON: ::windows_sys::core::HRESULT = -2144272253i32; +pub const FVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON: ::windows_sys::core::HRESULT = -2144272239i32; +pub const FVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON: ::windows_sys::core::HRESULT = -2144272240i32; +pub const FVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON: ::windows_sys::core::HRESULT = -2144272252i32; +pub const FVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON: ::windows_sys::core::HRESULT = -2144272238i32; +pub const FVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED: ::windows_sys::core::HRESULT = -2144272249i32; +pub const FVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS: ::windows_sys::core::HRESULT = -2144272194i32; +pub const FVE_E_POLICY_INVALID_PASSPHRASE_LENGTH: ::windows_sys::core::HRESULT = -2144272256i32; +pub const FVE_E_POLICY_INVALID_PIN_LENGTH: ::windows_sys::core::HRESULT = -2144272280i32; +pub const FVE_E_POLICY_ON_RDV_EXCLUSION_LIST: ::windows_sys::core::HRESULT = -2144272156i32; +pub const FVE_E_POLICY_PASSPHRASE_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272278i32; +pub const FVE_E_POLICY_PASSPHRASE_REQUIRED: ::windows_sys::core::HRESULT = -2144272277i32; +pub const FVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII: ::windows_sys::core::HRESULT = -2144272220i32; +pub const FVE_E_POLICY_PASSPHRASE_TOO_SIMPLE: ::windows_sys::core::HRESULT = -2144272255i32; +pub const FVE_E_POLICY_PASSWORD_REQUIRED: ::windows_sys::core::HRESULT = -2144272340i32; +pub const FVE_E_POLICY_PROHIBITS_SELFSIGNED: ::windows_sys::core::HRESULT = -2144272250i32; +pub const FVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272290i32; +pub const FVE_E_POLICY_RECOVERY_KEY_REQUIRED: ::windows_sys::core::HRESULT = -2144272289i32; +pub const FVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272292i32; +pub const FVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED: ::windows_sys::core::HRESULT = -2144272291i32; +pub const FVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE: ::windows_sys::core::HRESULT = -2144272200i32; +pub const FVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE: ::windows_sys::core::HRESULT = -2144272201i32; +pub const FVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272286i32; +pub const FVE_E_POLICY_STARTUP_KEY_REQUIRED: ::windows_sys::core::HRESULT = -2144272285i32; +pub const FVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272284i32; +pub const FVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED: ::windows_sys::core::HRESULT = -2144272283i32; +pub const FVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272288i32; +pub const FVE_E_POLICY_STARTUP_PIN_REQUIRED: ::windows_sys::core::HRESULT = -2144272287i32; +pub const FVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272282i32; +pub const FVE_E_POLICY_STARTUP_TPM_REQUIRED: ::windows_sys::core::HRESULT = -2144272281i32; +pub const FVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272270i32; +pub const FVE_E_POLICY_USER_CERTIFICATE_REQUIRED: ::windows_sys::core::HRESULT = -2144272269i32; +pub const FVE_E_POLICY_USER_CERT_MUST_BE_HW: ::windows_sys::core::HRESULT = -2144272268i32; +pub const FVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272267i32; +pub const FVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272266i32; +pub const FVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272265i32; +pub const FVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272263i32; +pub const FVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272264i32; +pub const FVE_E_PREDICTED_TPM_PROTECTOR_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144272155i32; +pub const FVE_E_PRIVATEKEY_AUTH_FAILED: ::windows_sys::core::HRESULT = -2144272236i32; +pub const FVE_E_PROTECTION_CANNOT_BE_DISABLED: ::windows_sys::core::HRESULT = -2144272168i32; +pub const FVE_E_PROTECTION_DISABLED: ::windows_sys::core::HRESULT = -2144272351i32; +pub const FVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED: ::windows_sys::core::HRESULT = -2144272192i32; +pub const FVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED: ::windows_sys::core::HRESULT = -2144272221i32; +pub const FVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH: ::windows_sys::core::HRESULT = -2144272215i32; +pub const FVE_E_PROTECTOR_CHANGE_PIN_MISMATCH: ::windows_sys::core::HRESULT = -2144272223i32; +pub const FVE_E_PROTECTOR_EXISTS: ::windows_sys::core::HRESULT = -2144272335i32; +pub const FVE_E_PROTECTOR_NOT_FOUND: ::windows_sys::core::HRESULT = -2144272333i32; +pub const FVE_E_PUBKEY_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144272296i32; +pub const FVE_E_RAW_ACCESS: ::windows_sys::core::HRESULT = -2144272304i32; +pub const FVE_E_RAW_BLOCKED: ::windows_sys::core::HRESULT = -2144272303i32; +pub const FVE_E_REBOOT_REQUIRED: ::windows_sys::core::HRESULT = -2144272306i32; +pub const FVE_E_RECOVERY_KEY_REQUIRED: ::windows_sys::core::HRESULT = -2144272350i32; +pub const FVE_E_RECOVERY_PARTITION: ::windows_sys::core::HRESULT = -2144272254i32; +pub const FVE_E_RELATIVE_PATH: ::windows_sys::core::HRESULT = -2144272334i32; +pub const FVE_E_REMOVAL_OF_DRA_FAILED: ::windows_sys::core::HRESULT = -2144272235i32; +pub const FVE_E_REMOVAL_OF_NKP_FAILED: ::windows_sys::core::HRESULT = -2144272226i32; +pub const FVE_E_SECUREBOOT_CONFIGURATION_INVALID: ::windows_sys::core::HRESULT = -2144272197i32; +pub const FVE_E_SECUREBOOT_DISABLED: ::windows_sys::core::HRESULT = -2144272198i32; +pub const FVE_E_SECURE_KEY_REQUIRED: ::windows_sys::core::HRESULT = -2144272377i32; +pub const FVE_E_SETUP_TPM_CALLBACK_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144272154i32; +pub const FVE_E_SHADOW_COPY_PRESENT: ::windows_sys::core::HRESULT = -2144272195i32; +pub const FVE_E_SYSTEM_VOLUME: ::windows_sys::core::HRESULT = -2144272366i32; +pub const FVE_E_TOKEN_NOT_IMPERSONATED: ::windows_sys::core::HRESULT = -2144272308i32; +pub const FVE_E_TOO_SMALL: ::windows_sys::core::HRESULT = -2144272367i32; +pub const FVE_E_TPM_CONTEXT_SETUP_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144272153i32; +pub const FVE_E_TPM_DISABLED: ::windows_sys::core::HRESULT = -2144272321i32; +pub const FVE_E_TPM_INVALID_PCR: ::windows_sys::core::HRESULT = -2144272319i32; +pub const FVE_E_TPM_NOT_OWNED: ::windows_sys::core::HRESULT = -2144272360i32; +pub const FVE_E_TPM_NO_VMK: ::windows_sys::core::HRESULT = -2144272318i32; +pub const FVE_E_TPM_SRK_AUTH_NOT_ZERO: ::windows_sys::core::HRESULT = -2144272347i32; +pub const FVE_E_TRANSIENT_STATE: ::windows_sys::core::HRESULT = -2144272297i32; +pub const FVE_E_UPDATE_INVALID_CONFIG: ::windows_sys::core::HRESULT = -2144272152i32; +pub const FVE_E_VIRTUALIZED_SPACE_TOO_BIG: ::windows_sys::core::HRESULT = -2144272247i32; +pub const FVE_E_VOLUME_BOUND_ALREADY: ::windows_sys::core::HRESULT = -2144272353i32; +pub const FVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT: ::windows_sys::core::HRESULT = -2144272170i32; +pub const FVE_E_VOLUME_HANDLE_OPEN: ::windows_sys::core::HRESULT = -2144272295i32; +pub const FVE_E_VOLUME_NOT_BOUND: ::windows_sys::core::HRESULT = -2144272361i32; +pub const FVE_E_VOLUME_TOO_SMALL: ::windows_sys::core::HRESULT = -2144272273i32; +pub const FVE_E_WIPE_CANCEL_NOT_APPLICABLE: ::windows_sys::core::HRESULT = -2144272199i32; +pub const FVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE: ::windows_sys::core::HRESULT = -2144272218i32; +pub const FVE_E_WRONG_BOOTMGR: ::windows_sys::core::HRESULT = -2144272378i32; +pub const FVE_E_WRONG_BOOTSECTOR: ::windows_sys::core::HRESULT = -2144272342i32; +pub const FVE_E_WRONG_SYSTEM_FS: ::windows_sys::core::HRESULT = -2144272341i32; +pub const FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER: ::windows_sys::core::HRESULT = -2144206804i32; +pub const FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER: ::windows_sys::core::HRESULT = -2144206803i32; +pub const FWP_E_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2144206839i32; +pub const FWP_E_BUILTIN_OBJECT: ::windows_sys::core::HRESULT = -2144206825i32; +pub const FWP_E_CALLOUT_NOTIFICATION_FAILED: ::windows_sys::core::HRESULT = -2144206793i32; +pub const FWP_E_CALLOUT_NOT_FOUND: ::windows_sys::core::HRESULT = -2144206847i32; +pub const FWP_E_CONDITION_NOT_FOUND: ::windows_sys::core::HRESULT = -2144206846i32; +pub const FWP_E_CONNECTIONS_DISABLED: ::windows_sys::core::HRESULT = -2144206783i32; +pub const FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT: ::windows_sys::core::HRESULT = -2144206801i32; +pub const FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER: ::windows_sys::core::HRESULT = -2144206802i32; +pub const FWP_E_DROP_NOICMP: ::windows_sys::core::HRESULT = -2144206588i32; +pub const FWP_E_DUPLICATE_AUTH_METHOD: ::windows_sys::core::HRESULT = -2144206788i32; +pub const FWP_E_DUPLICATE_CONDITION: ::windows_sys::core::HRESULT = -2144206806i32; +pub const FWP_E_DUPLICATE_KEYMOD: ::windows_sys::core::HRESULT = -2144206805i32; +pub const FWP_E_DYNAMIC_SESSION_IN_PROGRESS: ::windows_sys::core::HRESULT = -2144206837i32; +pub const FWP_E_EM_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144206798i32; +pub const FWP_E_FILTER_NOT_FOUND: ::windows_sys::core::HRESULT = -2144206845i32; +pub const FWP_E_IKEEXT_NOT_RUNNING: ::windows_sys::core::HRESULT = -2144206780i32; +pub const FWP_E_INCOMPATIBLE_AUTH_METHOD: ::windows_sys::core::HRESULT = -2144206800i32; +pub const FWP_E_INCOMPATIBLE_CIPHER_TRANSFORM: ::windows_sys::core::HRESULT = -2144206790i32; +pub const FWP_E_INCOMPATIBLE_DH_GROUP: ::windows_sys::core::HRESULT = -2144206799i32; +pub const FWP_E_INCOMPATIBLE_LAYER: ::windows_sys::core::HRESULT = -2144206828i32; +pub const FWP_E_INCOMPATIBLE_SA_STATE: ::windows_sys::core::HRESULT = -2144206821i32; +pub const FWP_E_INCOMPATIBLE_TXN: ::windows_sys::core::HRESULT = -2144206831i32; +pub const FWP_E_INVALID_ACTION_TYPE: ::windows_sys::core::HRESULT = -2144206812i32; +pub const FWP_E_INVALID_AUTH_TRANSFORM: ::windows_sys::core::HRESULT = -2144206792i32; +pub const FWP_E_INVALID_CIPHER_TRANSFORM: ::windows_sys::core::HRESULT = -2144206791i32; +pub const FWP_E_INVALID_DNS_NAME: ::windows_sys::core::HRESULT = -2144206782i32; +pub const FWP_E_INVALID_ENUMERATOR: ::windows_sys::core::HRESULT = -2144206819i32; +pub const FWP_E_INVALID_FLAGS: ::windows_sys::core::HRESULT = -2144206818i32; +pub const FWP_E_INVALID_INTERVAL: ::windows_sys::core::HRESULT = -2144206815i32; +pub const FWP_E_INVALID_NET_MASK: ::windows_sys::core::HRESULT = -2144206817i32; +pub const FWP_E_INVALID_PARAMETER: ::windows_sys::core::HRESULT = -2144206795i32; +pub const FWP_E_INVALID_RANGE: ::windows_sys::core::HRESULT = -2144206816i32; +pub const FWP_E_INVALID_TRANSFORM_COMBINATION: ::windows_sys::core::HRESULT = -2144206789i32; +pub const FWP_E_INVALID_TUNNEL_ENDPOINT: ::windows_sys::core::HRESULT = -2144206787i32; +pub const FWP_E_INVALID_WEIGHT: ::windows_sys::core::HRESULT = -2144206811i32; +pub const FWP_E_IN_USE: ::windows_sys::core::HRESULT = -2144206838i32; +pub const FWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL: ::windows_sys::core::HRESULT = -2144206784i32; +pub const FWP_E_KEY_DICTATOR_ALREADY_REGISTERED: ::windows_sys::core::HRESULT = -2144206785i32; +pub const FWP_E_KM_CLIENTS_ONLY: ::windows_sys::core::HRESULT = -2144206827i32; +pub const FWP_E_L2_DRIVER_NOT_READY: ::windows_sys::core::HRESULT = -2144206786i32; +pub const FWP_E_LAYER_NOT_FOUND: ::windows_sys::core::HRESULT = -2144206844i32; +pub const FWP_E_LIFETIME_MISMATCH: ::windows_sys::core::HRESULT = -2144206826i32; +pub const FWP_E_MATCH_TYPE_MISMATCH: ::windows_sys::core::HRESULT = -2144206810i32; +pub const FWP_E_NET_EVENTS_DISABLED: ::windows_sys::core::HRESULT = -2144206829i32; +pub const FWP_E_NEVER_MATCH: ::windows_sys::core::HRESULT = -2144206797i32; +pub const FWP_E_NOTIFICATION_DROPPED: ::windows_sys::core::HRESULT = -2144206823i32; +pub const FWP_E_NOT_FOUND: ::windows_sys::core::HRESULT = -2144206840i32; +pub const FWP_E_NO_TXN_IN_PROGRESS: ::windows_sys::core::HRESULT = -2144206835i32; +pub const FWP_E_NULL_DISPLAY_NAME: ::windows_sys::core::HRESULT = -2144206813i32; +pub const FWP_E_NULL_POINTER: ::windows_sys::core::HRESULT = -2144206820i32; +pub const FWP_E_OUT_OF_BOUNDS: ::windows_sys::core::HRESULT = -2144206808i32; +pub const FWP_E_PROVIDER_CONTEXT_MISMATCH: ::windows_sys::core::HRESULT = -2144206796i32; +pub const FWP_E_PROVIDER_CONTEXT_NOT_FOUND: ::windows_sys::core::HRESULT = -2144206842i32; +pub const FWP_E_PROVIDER_NOT_FOUND: ::windows_sys::core::HRESULT = -2144206843i32; +pub const FWP_E_RESERVED: ::windows_sys::core::HRESULT = -2144206807i32; +pub const FWP_E_SESSION_ABORTED: ::windows_sys::core::HRESULT = -2144206832i32; +pub const FWP_E_STILL_ON: ::windows_sys::core::HRESULT = -2144206781i32; +pub const FWP_E_SUBLAYER_NOT_FOUND: ::windows_sys::core::HRESULT = -2144206841i32; +pub const FWP_E_TIMEOUT: ::windows_sys::core::HRESULT = -2144206830i32; +pub const FWP_E_TOO_MANY_CALLOUTS: ::windows_sys::core::HRESULT = -2144206824i32; +pub const FWP_E_TOO_MANY_SUBLAYERS: ::windows_sys::core::HRESULT = -2144206794i32; +pub const FWP_E_TRAFFIC_MISMATCH: ::windows_sys::core::HRESULT = -2144206822i32; +pub const FWP_E_TXN_ABORTED: ::windows_sys::core::HRESULT = -2144206833i32; +pub const FWP_E_TXN_IN_PROGRESS: ::windows_sys::core::HRESULT = -2144206834i32; +pub const FWP_E_TYPE_MISMATCH: ::windows_sys::core::HRESULT = -2144206809i32; +pub const FWP_E_WRONG_SESSION: ::windows_sys::core::HRESULT = -2144206836i32; +pub const FWP_E_ZERO_LENGTH_ARRAY: ::windows_sys::core::HRESULT = -2144206814i32; +pub const GCN_E_DEFAULTNAMESPACE_EXISTS: ::windows_sys::core::HRESULT = -2143616983i32; +pub const GCN_E_MODULE_NOT_FOUND: ::windows_sys::core::HRESULT = -2143616991i32; +pub const GCN_E_NETADAPTER_NOT_FOUND: ::windows_sys::core::HRESULT = -2143616986i32; +pub const GCN_E_NETADAPTER_TIMEOUT: ::windows_sys::core::HRESULT = -2143616987i32; +pub const GCN_E_NETCOMPARTMENT_NOT_FOUND: ::windows_sys::core::HRESULT = -2143616985i32; +pub const GCN_E_NETINTERFACE_NOT_FOUND: ::windows_sys::core::HRESULT = -2143616984i32; +pub const GCN_E_NO_REQUEST_HANDLERS: ::windows_sys::core::HRESULT = -2143616990i32; +pub const GCN_E_REQUEST_UNSUPPORTED: ::windows_sys::core::HRESULT = -2143616989i32; +pub const GCN_E_RUNTIMEKEYS_FAILED: ::windows_sys::core::HRESULT = -2143616988i32; +pub const GENERIC_ALL: GENERIC_ACCESS_RIGHTS = 268435456u32; +pub const GENERIC_EXECUTE: GENERIC_ACCESS_RIGHTS = 536870912u32; +pub const GENERIC_READ: GENERIC_ACCESS_RIGHTS = 2147483648u32; +pub const GENERIC_WRITE: GENERIC_ACCESS_RIGHTS = 1073741824u32; +pub const HANDLE_FLAG_INHERIT: HANDLE_FLAGS = 1u32; +pub const HANDLE_FLAG_PROTECT_FROM_CLOSE: HANDLE_FLAGS = 2u32; +pub const HCN_E_ADAPTER_NOT_FOUND: ::windows_sys::core::HRESULT = -2143617018i32; +pub const HCN_E_ADDR_INVALID_OR_RESERVED: ::windows_sys::core::HRESULT = -2143616977i32; +pub const HCN_E_DEGRADED_OPERATION: ::windows_sys::core::HRESULT = -2143617001i32; +pub const HCN_E_ENDPOINT_ALREADY_ATTACHED: ::windows_sys::core::HRESULT = -2143617004i32; +pub const HCN_E_ENDPOINT_NAMESPACE_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2143616981i32; +pub const HCN_E_ENDPOINT_NOT_ATTACHED: ::windows_sys::core::HRESULT = -2143616972i32; +pub const HCN_E_ENDPOINT_NOT_FOUND: ::windows_sys::core::HRESULT = -2143617022i32; +pub const HCN_E_ENDPOINT_NOT_LOCAL: ::windows_sys::core::HRESULT = -2143616971i32; +pub const HCN_E_ENDPOINT_SHARING_DISABLED: ::windows_sys::core::HRESULT = -2143616995i32; +pub const HCN_E_ENTITY_HAS_REFERENCES: ::windows_sys::core::HRESULT = -2143616980i32; +pub const HCN_E_GUID_CONVERSION_FAILURE: ::windows_sys::core::HRESULT = -2143616999i32; +pub const HCN_E_ICS_DISABLED: ::windows_sys::core::HRESULT = -2143616982i32; +pub const HCN_E_INVALID_ENDPOINT: ::windows_sys::core::HRESULT = -2143617012i32; +pub const HCN_E_INVALID_INTERNAL_PORT: ::windows_sys::core::HRESULT = -2143616979i32; +pub const HCN_E_INVALID_IP: ::windows_sys::core::HRESULT = -2143616994i32; +pub const HCN_E_INVALID_IP_SUBNET: ::windows_sys::core::HRESULT = -2143616973i32; +pub const HCN_E_INVALID_JSON: ::windows_sys::core::HRESULT = -2143616997i32; +pub const HCN_E_INVALID_JSON_REFERENCE: ::windows_sys::core::HRESULT = -2143616996i32; +pub const HCN_E_INVALID_NETWORK: ::windows_sys::core::HRESULT = -2143617014i32; +pub const HCN_E_INVALID_NETWORK_TYPE: ::windows_sys::core::HRESULT = -2143617013i32; +pub const HCN_E_INVALID_POLICY: ::windows_sys::core::HRESULT = -2143617011i32; +pub const HCN_E_INVALID_POLICY_TYPE: ::windows_sys::core::HRESULT = -2143617010i32; +pub const HCN_E_INVALID_PREFIX: ::windows_sys::core::HRESULT = -2143616976i32; +pub const HCN_E_INVALID_REMOTE_ENDPOINT_OPERATION: ::windows_sys::core::HRESULT = -2143617009i32; +pub const HCN_E_INVALID_SUBNET: ::windows_sys::core::HRESULT = -2143616974i32; +pub const HCN_E_LAYER_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2143617007i32; +pub const HCN_E_LAYER_NOT_FOUND: ::windows_sys::core::HRESULT = -2143617021i32; +pub const HCN_E_MANAGER_STOPPED: ::windows_sys::core::HRESULT = -2143616992i32; +pub const HCN_E_MAPPING_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2143617002i32; +pub const HCN_E_NAMESPACE_ATTACH_FAILED: ::windows_sys::core::HRESULT = -2143616978i32; +pub const HCN_E_NETWORK_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2143617008i32; +pub const HCN_E_NETWORK_NOT_FOUND: ::windows_sys::core::HRESULT = -2143617023i32; +pub const HCN_E_OBJECT_USED_AFTER_UNLOAD: ::windows_sys::core::HRESULT = -2143616975i32; +pub const HCN_E_POLICY_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2143617006i32; +pub const HCN_E_POLICY_NOT_FOUND: ::windows_sys::core::HRESULT = -2143617016i32; +pub const HCN_E_PORT_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2143617005i32; +pub const HCN_E_PORT_NOT_FOUND: ::windows_sys::core::HRESULT = -2143617017i32; +pub const HCN_E_REGKEY_FAILURE: ::windows_sys::core::HRESULT = -2143616998i32; +pub const HCN_E_REQUEST_UNSUPPORTED: ::windows_sys::core::HRESULT = -2143617003i32; +pub const HCN_E_SHARED_SWITCH_MODIFICATION: ::windows_sys::core::HRESULT = -2143617000i32; +pub const HCN_E_SUBNET_NOT_FOUND: ::windows_sys::core::HRESULT = -2143617019i32; +pub const HCN_E_SWITCH_EXTENSION_NOT_FOUND: ::windows_sys::core::HRESULT = -2143616993i32; +pub const HCN_E_SWITCH_NOT_FOUND: ::windows_sys::core::HRESULT = -2143617020i32; +pub const HCN_E_VFP_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2143616969i32; +pub const HCN_E_VFP_PORTSETTING_NOT_FOUND: ::windows_sys::core::HRESULT = -2143617015i32; +pub const HCN_INTERFACEPARAMETERS_ALREADY_APPLIED: ::windows_sys::core::HRESULT = -2143616970i32; +pub const HCS_E_ACCESS_DENIED: ::windows_sys::core::HRESULT = -2143878885i32; +pub const HCS_E_CONNECTION_CLOSED: ::windows_sys::core::HRESULT = -2143878902i32; +pub const HCS_E_CONNECTION_TIMEOUT: ::windows_sys::core::HRESULT = -2143878903i32; +pub const HCS_E_CONNECT_FAILED: ::windows_sys::core::HRESULT = -2143878904i32; +pub const HCS_E_GUEST_CRITICAL_ERROR: ::windows_sys::core::HRESULT = -2143878884i32; +pub const HCS_E_HYPERV_NOT_INSTALLED: ::windows_sys::core::HRESULT = -2143878910i32; +pub const HCS_E_IMAGE_MISMATCH: ::windows_sys::core::HRESULT = -2143878911i32; +pub const HCS_E_INVALID_JSON: ::windows_sys::core::HRESULT = -2143878899i32; +pub const HCS_E_INVALID_LAYER: ::windows_sys::core::HRESULT = -2143878894i32; +pub const HCS_E_INVALID_STATE: ::windows_sys::core::HRESULT = -2143878907i32; +pub const HCS_E_OPERATION_ALREADY_CANCELLED: ::windows_sys::core::HRESULT = -2143878879i32; +pub const HCS_E_OPERATION_ALREADY_STARTED: ::windows_sys::core::HRESULT = -2143878890i32; +pub const HCS_E_OPERATION_NOT_STARTED: ::windows_sys::core::HRESULT = -2143878891i32; +pub const HCS_E_OPERATION_PENDING: ::windows_sys::core::HRESULT = -2143878889i32; +pub const HCS_E_OPERATION_RESULT_ALLOCATION_FAILED: ::windows_sys::core::HRESULT = -2143878886i32; +pub const HCS_E_OPERATION_SYSTEM_CALLBACK_ALREADY_SET: ::windows_sys::core::HRESULT = -2143878887i32; +pub const HCS_E_OPERATION_TIMEOUT: ::windows_sys::core::HRESULT = -2143878888i32; +pub const HCS_E_PROCESS_ALREADY_STOPPED: ::windows_sys::core::HRESULT = -2143878881i32; +pub const HCS_E_PROCESS_INFO_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2143878883i32; +pub const HCS_E_PROTOCOL_ERROR: ::windows_sys::core::HRESULT = -2143878895i32; +pub const HCS_E_SERVICE_DISCONNECT: ::windows_sys::core::HRESULT = -2143878882i32; +pub const HCS_E_SERVICE_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2143878892i32; +pub const HCS_E_SYSTEM_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2143878897i32; +pub const HCS_E_SYSTEM_ALREADY_STOPPED: ::windows_sys::core::HRESULT = -2143878896i32; +pub const HCS_E_SYSTEM_NOT_CONFIGURED_FOR_OPERATION: ::windows_sys::core::HRESULT = -2143878880i32; +pub const HCS_E_SYSTEM_NOT_FOUND: ::windows_sys::core::HRESULT = -2143878898i32; +pub const HCS_E_TERMINATED: ::windows_sys::core::HRESULT = -2143878905i32; +pub const HCS_E_TERMINATED_DURING_START: ::windows_sys::core::HRESULT = -2143878912i32; +pub const HCS_E_UNEXPECTED_EXIT: ::windows_sys::core::HRESULT = -2143878906i32; +pub const HCS_E_UNKNOWN_MESSAGE: ::windows_sys::core::HRESULT = -2143878901i32; +pub const HCS_E_UNSUPPORTED_PROTOCOL_VERSION: ::windows_sys::core::HRESULT = -2143878900i32; +pub const HCS_E_WINDOWS_INSIDER_REQUIRED: ::windows_sys::core::HRESULT = -2143878893i32; +pub const HSP_BASE_ERROR_MASK: ::windows_sys::core::HRESULT = -2128019200i32; +pub const HSP_BASE_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2128018945i32; +pub const HSP_BS_ERROR_MASK: ::windows_sys::core::HRESULT = -2128080896i32; +pub const HSP_BS_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2128080641i32; +pub const HSP_DRV_ERROR_MASK: ::windows_sys::core::HRESULT = -2128019456i32; +pub const HSP_DRV_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2128019201i32; +pub const HSP_E_ERROR_MASK: ::windows_sys::core::HRESULT = -2128084992i32; +pub const HSP_E_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2128080897i32; +pub const HSP_KSP_ALGORITHM_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2128018935i32; +pub const HSP_KSP_BUFFER_TOO_SMALL: ::windows_sys::core::HRESULT = -2128018939i32; +pub const HSP_KSP_DEVICE_NOT_READY: ::windows_sys::core::HRESULT = -2128018943i32; +pub const HSP_KSP_ERROR_MASK: ::windows_sys::core::HRESULT = -2128018944i32; +pub const HSP_KSP_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2128018689i32; +pub const HSP_KSP_INVALID_DATA: ::windows_sys::core::HRESULT = -2128018937i32; +pub const HSP_KSP_INVALID_FLAGS: ::windows_sys::core::HRESULT = -2128018936i32; +pub const HSP_KSP_INVALID_KEY_HANDLE: ::windows_sys::core::HRESULT = -2128018941i32; +pub const HSP_KSP_INVALID_KEY_TYPE: ::windows_sys::core::HRESULT = -2128018932i32; +pub const HSP_KSP_INVALID_PARAMETER: ::windows_sys::core::HRESULT = -2128018940i32; +pub const HSP_KSP_INVALID_PROVIDER_HANDLE: ::windows_sys::core::HRESULT = -2128018942i32; +pub const HSP_KSP_KEY_ALREADY_FINALIZED: ::windows_sys::core::HRESULT = -2128018934i32; +pub const HSP_KSP_KEY_EXISTS: ::windows_sys::core::HRESULT = -2128018923i32; +pub const HSP_KSP_KEY_LOAD_FAIL: ::windows_sys::core::HRESULT = -2128018921i32; +pub const HSP_KSP_KEY_MISSING: ::windows_sys::core::HRESULT = -2128018922i32; +pub const HSP_KSP_KEY_NOT_FINALIZED: ::windows_sys::core::HRESULT = -2128018933i32; +pub const HSP_KSP_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2128018938i32; +pub const HSP_KSP_NO_MEMORY: ::windows_sys::core::HRESULT = -2128018928i32; +pub const HSP_KSP_NO_MORE_ITEMS: ::windows_sys::core::HRESULT = -2128018920i32; +pub const HSP_KSP_PARAMETER_NOT_SET: ::windows_sys::core::HRESULT = -2128018927i32; +pub const HTTP_E_STATUS_AMBIGUOUS: ::windows_sys::core::HRESULT = -2145844948i32; +pub const HTTP_E_STATUS_BAD_GATEWAY: ::windows_sys::core::HRESULT = -2145844746i32; +pub const HTTP_E_STATUS_BAD_METHOD: ::windows_sys::core::HRESULT = -2145844843i32; +pub const HTTP_E_STATUS_BAD_REQUEST: ::windows_sys::core::HRESULT = -2145844848i32; +pub const HTTP_E_STATUS_CONFLICT: ::windows_sys::core::HRESULT = -2145844839i32; +pub const HTTP_E_STATUS_DENIED: ::windows_sys::core::HRESULT = -2145844847i32; +pub const HTTP_E_STATUS_EXPECTATION_FAILED: ::windows_sys::core::HRESULT = -2145844831i32; +pub const HTTP_E_STATUS_FORBIDDEN: ::windows_sys::core::HRESULT = -2145844845i32; +pub const HTTP_E_STATUS_GATEWAY_TIMEOUT: ::windows_sys::core::HRESULT = -2145844744i32; +pub const HTTP_E_STATUS_GONE: ::windows_sys::core::HRESULT = -2145844838i32; +pub const HTTP_E_STATUS_LENGTH_REQUIRED: ::windows_sys::core::HRESULT = -2145844837i32; +pub const HTTP_E_STATUS_MOVED: ::windows_sys::core::HRESULT = -2145844947i32; +pub const HTTP_E_STATUS_NONE_ACCEPTABLE: ::windows_sys::core::HRESULT = -2145844842i32; +pub const HTTP_E_STATUS_NOT_FOUND: ::windows_sys::core::HRESULT = -2145844844i32; +pub const HTTP_E_STATUS_NOT_MODIFIED: ::windows_sys::core::HRESULT = -2145844944i32; +pub const HTTP_E_STATUS_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2145844747i32; +pub const HTTP_E_STATUS_PAYMENT_REQ: ::windows_sys::core::HRESULT = -2145844846i32; +pub const HTTP_E_STATUS_PRECOND_FAILED: ::windows_sys::core::HRESULT = -2145844836i32; +pub const HTTP_E_STATUS_PROXY_AUTH_REQ: ::windows_sys::core::HRESULT = -2145844841i32; +pub const HTTP_E_STATUS_RANGE_NOT_SATISFIABLE: ::windows_sys::core::HRESULT = -2145844832i32; +pub const HTTP_E_STATUS_REDIRECT: ::windows_sys::core::HRESULT = -2145844946i32; +pub const HTTP_E_STATUS_REDIRECT_KEEP_VERB: ::windows_sys::core::HRESULT = -2145844941i32; +pub const HTTP_E_STATUS_REDIRECT_METHOD: ::windows_sys::core::HRESULT = -2145844945i32; +pub const HTTP_E_STATUS_REQUEST_TIMEOUT: ::windows_sys::core::HRESULT = -2145844840i32; +pub const HTTP_E_STATUS_REQUEST_TOO_LARGE: ::windows_sys::core::HRESULT = -2145844835i32; +pub const HTTP_E_STATUS_SERVER_ERROR: ::windows_sys::core::HRESULT = -2145844748i32; +pub const HTTP_E_STATUS_SERVICE_UNAVAIL: ::windows_sys::core::HRESULT = -2145844745i32; +pub const HTTP_E_STATUS_UNEXPECTED: ::windows_sys::core::HRESULT = -2145845247i32; +pub const HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR: ::windows_sys::core::HRESULT = -2145845244i32; +pub const HTTP_E_STATUS_UNEXPECTED_REDIRECTION: ::windows_sys::core::HRESULT = -2145845245i32; +pub const HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR: ::windows_sys::core::HRESULT = -2145845243i32; +pub const HTTP_E_STATUS_UNSUPPORTED_MEDIA: ::windows_sys::core::HRESULT = -2145844833i32; +pub const HTTP_E_STATUS_URI_TOO_LONG: ::windows_sys::core::HRESULT = -2145844834i32; +pub const HTTP_E_STATUS_USE_PROXY: ::windows_sys::core::HRESULT = -2145844943i32; +pub const HTTP_E_STATUS_VERSION_NOT_SUP: ::windows_sys::core::HRESULT = -2145844743i32; +pub const INPLACE_E_FIRST: i32 = -2147221088i32; +pub const INPLACE_E_LAST: i32 = -2147221073i32; +pub const INPLACE_E_NOTOOLSPACE: ::windows_sys::core::HRESULT = -2147221087i32; +pub const INPLACE_E_NOTUNDOABLE: ::windows_sys::core::HRESULT = -2147221088i32; +pub const INPLACE_S_FIRST: i32 = 262560i32; +pub const INPLACE_S_LAST: i32 = 262575i32; +pub const INPLACE_S_TRUNCATED: ::windows_sys::core::HRESULT = 262560i32; +pub const INPUT_E_DEVICE_INFO: ::windows_sys::core::HRESULT = -2143289338i32; +pub const INPUT_E_DEVICE_PROPERTY: ::windows_sys::core::HRESULT = -2143289336i32; +pub const INPUT_E_FRAME: ::windows_sys::core::HRESULT = -2143289340i32; +pub const INPUT_E_HISTORY: ::windows_sys::core::HRESULT = -2143289339i32; +pub const INPUT_E_MULTIMODAL: ::windows_sys::core::HRESULT = -2143289342i32; +pub const INPUT_E_OUT_OF_ORDER: ::windows_sys::core::HRESULT = -2143289344i32; +pub const INPUT_E_PACKET: ::windows_sys::core::HRESULT = -2143289341i32; +pub const INPUT_E_REENTRANCY: ::windows_sys::core::HRESULT = -2143289343i32; +pub const INPUT_E_TRANSFORM: ::windows_sys::core::HRESULT = -2143289337i32; +pub const INVALID_HANDLE_VALUE: HANDLE = -1i32 as _; +pub const IORING_E_COMPLETION_QUEUE_TOO_BIG: ::windows_sys::core::HRESULT = -2142896123i32; +pub const IORING_E_COMPLETION_QUEUE_TOO_FULL: ::windows_sys::core::HRESULT = -2142896120i32; +pub const IORING_E_CORRUPT: ::windows_sys::core::HRESULT = -2142896121i32; +pub const IORING_E_REQUIRED_FLAG_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2142896127i32; +pub const IORING_E_SUBMISSION_QUEUE_FULL: ::windows_sys::core::HRESULT = -2142896126i32; +pub const IORING_E_SUBMISSION_QUEUE_TOO_BIG: ::windows_sys::core::HRESULT = -2142896124i32; +pub const IORING_E_SUBMIT_IN_PROGRESS: ::windows_sys::core::HRESULT = -2142896122i32; +pub const IORING_E_VERSION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2142896125i32; +pub const IO_BAD_BLOCK_WITH_NAME: NTSTATUS = -1073479649i32; +pub const IO_CDROM_EXCLUSIVE_LOCK: NTSTATUS = 1074004101i32; +pub const IO_DRIVER_CANCEL_TIMEOUT: NTSTATUS = -2147221450i32; +pub const IO_DUMP_CALLBACK_EXCEPTION: NTSTATUS = -1073479517i32; +pub const IO_DUMP_CREATION_SUCCESS: NTSTATUS = 262306i32; +pub const IO_DUMP_DIRECT_CONFIG_FAILED: NTSTATUS = -1073479632i32; +pub const IO_DUMP_DRIVER_LOAD_FAILURE: NTSTATUS = -1073479635i32; +pub const IO_DUMP_DUMPFILE_CONFLICT: NTSTATUS = -1073479633i32; +pub const IO_DUMP_INITIALIZATION_FAILURE: NTSTATUS = -1073479634i32; +pub const IO_DUMP_INIT_DEDICATED_DUMP_FAILURE: NTSTATUS = -1073479516i32; +pub const IO_DUMP_PAGE_CONFIG_FAILED: NTSTATUS = -1073479631i32; +pub const IO_DUMP_POINTER_FAILURE: NTSTATUS = -1073479636i32; +pub const IO_ERROR_DISK_RESOURCES_EXHAUSTED: NTSTATUS = -1073479530i32; +pub const IO_ERROR_DUMP_CREATION_ERROR: NTSTATUS = -1073479519i32; +pub const IO_ERROR_IO_HARDWARE_ERROR: NTSTATUS = -1073479526i32; +pub const IO_ERR_BAD_BLOCK: NTSTATUS = -1073479673i32; +pub const IO_ERR_BAD_FIRMWARE: NTSTATUS = -1073479655i32; +pub const IO_ERR_CONFIGURATION_ERROR: NTSTATUS = -1073479677i32; +pub const IO_ERR_CONTROLLER_ERROR: NTSTATUS = -1073479669i32; +pub const IO_ERR_DMA_CONFLICT_DETECTED: NTSTATUS = -1073479657i32; +pub const IO_ERR_DMA_RESOURCE_CONFLICT: NTSTATUS = -1073479653i32; +pub const IO_ERR_DRIVER_ERROR: NTSTATUS = -1073479676i32; +pub const IO_ERR_INCORRECT_IRQL: NTSTATUS = -1073479667i32; +pub const IO_ERR_INSUFFICIENT_RESOURCES: NTSTATUS = -1073479678i32; +pub const IO_ERR_INTERNAL_ERROR: NTSTATUS = -1073479668i32; +pub const IO_ERR_INTERRUPT_RESOURCE_CONFLICT: NTSTATUS = -1073479652i32; +pub const IO_ERR_INVALID_IOBASE: NTSTATUS = -1073479666i32; +pub const IO_ERR_INVALID_REQUEST: NTSTATUS = -1073479664i32; +pub const IO_ERR_IRQ_CONFLICT_DETECTED: NTSTATUS = -1073479656i32; +pub const IO_ERR_LAYERED_FAILURE: NTSTATUS = -1073479662i32; +pub const IO_ERR_MEMORY_CONFLICT_DETECTED: NTSTATUS = -1073479659i32; +pub const IO_ERR_MEMORY_RESOURCE_CONFLICT: NTSTATUS = -1073479651i32; +pub const IO_ERR_NOT_READY: NTSTATUS = -1073479665i32; +pub const IO_ERR_OVERRUN_ERROR: NTSTATUS = -1073479672i32; +pub const IO_ERR_PARITY: NTSTATUS = -1073479675i32; +pub const IO_ERR_PORT_CONFLICT_DETECTED: NTSTATUS = -1073479658i32; +pub const IO_ERR_PORT_RESOURCE_CONFLICT: NTSTATUS = -1073479650i32; +pub const IO_ERR_PORT_TIMEOUT: NTSTATUS = -1073479563i32; +pub const IO_ERR_PROTOCOL: NTSTATUS = -1073479660i32; +pub const IO_ERR_RESET: NTSTATUS = -1073479661i32; +pub const IO_ERR_RETRY_SUCCEEDED: NTSTATUS = 262145i32; +pub const IO_ERR_SEEK_ERROR: NTSTATUS = -1073479674i32; +pub const IO_ERR_SEQUENCE: NTSTATUS = -1073479670i32; +pub const IO_ERR_THREAD_STUCK_IN_DEVICE_DRIVER: NTSTATUS = -1073479572i32; +pub const IO_ERR_TIMEOUT: NTSTATUS = -1073479671i32; +pub const IO_ERR_VERSION: NTSTATUS = -1073479663i32; +pub const IO_FILE_QUOTA_CORRUPT: NTSTATUS = -1073479638i32; +pub const IO_FILE_QUOTA_FAILED: NTSTATUS = -2147221464i32; +pub const IO_FILE_QUOTA_LIMIT: NTSTATUS = 1074004005i32; +pub const IO_FILE_QUOTA_STARTED: NTSTATUS = 1074004006i32; +pub const IO_FILE_QUOTA_SUCCEEDED: NTSTATUS = 1074004007i32; +pub const IO_FILE_QUOTA_THRESHOLD: NTSTATUS = 1074004004i32; +pub const IO_FILE_SYSTEM_CORRUPT: NTSTATUS = -1073479639i32; +pub const IO_FILE_SYSTEM_CORRUPT_WITH_NAME: NTSTATUS = -1073479625i32; +pub const IO_INFO_THROTTLE_COMPLETE: NTSTATUS = 1074004087i32; +pub const IO_LOST_DELAYED_WRITE: NTSTATUS = -2147221454i32; +pub const IO_LOST_DELAYED_WRITE_NETWORK_DISCONNECTED: NTSTATUS = -2147221365i32; +pub const IO_LOST_DELAYED_WRITE_NETWORK_LOCAL_DISK_ERROR: NTSTATUS = -2147221363i32; +pub const IO_LOST_DELAYED_WRITE_NETWORK_SERVER_ERROR: NTSTATUS = -2147221364i32; +pub const IO_RECOVERED_VIA_ECC: NTSTATUS = -2147221471i32; +pub const IO_SYSTEM_SLEEP_FAILED: NTSTATUS = -1073479637i32; +pub const IO_WARNING_ADAPTER_FIRMWARE_UPDATED: NTSTATUS = 1074004128i32; +pub const IO_WARNING_ALLOCATION_FAILED: NTSTATUS = -2147221448i32; +pub const IO_WARNING_BUS_RESET: NTSTATUS = -2147221386i32; +pub const IO_WARNING_COMPLETION_TIME: NTSTATUS = -2147221349i32; +pub const IO_WARNING_DEVICE_HAS_INTERNAL_DUMP: NTSTATUS = -2147221361i32; +pub const IO_WARNING_DISK_CAPACITY_CHANGED: NTSTATUS = -2147221353i32; +pub const IO_WARNING_DISK_FIRMWARE_UPDATED: NTSTATUS = 1074004127i32; +pub const IO_WARNING_DISK_PROVISIONING_TYPE_CHANGED: NTSTATUS = -2147221352i32; +pub const IO_WARNING_DISK_SURPRISE_REMOVED: NTSTATUS = -2147221347i32; +pub const IO_WARNING_DUMP_DISABLED_DEVICE_GONE: NTSTATUS = -2147221348i32; +pub const IO_WARNING_DUPLICATE_PATH: NTSTATUS = -2147221445i32; +pub const IO_WARNING_DUPLICATE_SIGNATURE: NTSTATUS = -2147221446i32; +pub const IO_WARNING_INTERRUPT_STILL_PENDING: NTSTATUS = -2147221451i32; +pub const IO_WARNING_IO_OPERATION_RETRIED: NTSTATUS = -2147221351i32; +pub const IO_WARNING_LOG_FLUSH_FAILED: NTSTATUS = -2147221447i32; +pub const IO_WARNING_PAGING_FAILURE: NTSTATUS = -2147221453i32; +pub const IO_WARNING_REPEATED_DISK_GUID: NTSTATUS = -2147221346i32; +pub const IO_WARNING_RESET: NTSTATUS = -2147221375i32; +pub const IO_WARNING_SOFT_THRESHOLD_REACHED: NTSTATUS = -2147221360i32; +pub const IO_WARNING_SOFT_THRESHOLD_REACHED_EX: NTSTATUS = -2147221359i32; +pub const IO_WARNING_SOFT_THRESHOLD_REACHED_EX_LUN_LUN: NTSTATUS = -2147221358i32; +pub const IO_WARNING_SOFT_THRESHOLD_REACHED_EX_LUN_POOL: NTSTATUS = -2147221357i32; +pub const IO_WARNING_SOFT_THRESHOLD_REACHED_EX_POOL_LUN: NTSTATUS = -2147221356i32; +pub const IO_WARNING_SOFT_THRESHOLD_REACHED_EX_POOL_POOL: NTSTATUS = -2147221355i32; +pub const IO_WARNING_VOLUME_LOST_DISK_EXTENT: NTSTATUS = -2147221362i32; +pub const IO_WARNING_WRITE_FUA_PROBLEM: NTSTATUS = -2147221372i32; +pub const IO_WRITE_CACHE_DISABLED: NTSTATUS = -2147221470i32; +pub const IO_WRITE_CACHE_ENABLED: NTSTATUS = -2147221472i32; +pub const IO_WRN_BAD_FIRMWARE: NTSTATUS = -2147221478i32; +pub const IO_WRN_FAILURE_PREDICTED: NTSTATUS = -2147221452i32; +pub const JSCRIPT_E_CANTEXECUTE: ::windows_sys::core::HRESULT = -1996357631i32; +pub const LANGUAGE_E_DATABASE_NOT_FOUND: ::windows_sys::core::HRESULT = -2147215484i32; +pub const LANGUAGE_S_LARGE_WORD: ::windows_sys::core::HRESULT = 268161i32; +pub const MARSHAL_E_FIRST: i32 = -2147221216i32; +pub const MARSHAL_E_LAST: i32 = -2147221201i32; +pub const MARSHAL_S_FIRST: i32 = 262432i32; +pub const MARSHAL_S_LAST: i32 = 262447i32; +pub const MAX_PATH: u32 = 260u32; +pub const MCA_BUS_ERROR: NTSTATUS = -1073414022i32; +pub const MCA_BUS_TIMEOUT_ERROR: NTSTATUS = -1073414021i32; +pub const MCA_ERROR_CACHE: NTSTATUS = -1073414083i32; +pub const MCA_ERROR_CPU: NTSTATUS = -1073414030i32; +pub const MCA_ERROR_CPU_BUS: NTSTATUS = -1073414079i32; +pub const MCA_ERROR_MAS: NTSTATUS = -1073414075i32; +pub const MCA_ERROR_MEM_1_2: NTSTATUS = -1073414071i32; +pub const MCA_ERROR_MEM_1_2_5: NTSTATUS = -1073414069i32; +pub const MCA_ERROR_MEM_1_2_5_4: NTSTATUS = -1073414067i32; +pub const MCA_ERROR_MEM_UNKNOWN: NTSTATUS = -1073414073i32; +pub const MCA_ERROR_PCI_BUS_MASTER_ABORT: NTSTATUS = -1073414055i32; +pub const MCA_ERROR_PCI_BUS_MASTER_ABORT_NO_INFO: NTSTATUS = -1073414053i32; +pub const MCA_ERROR_PCI_BUS_PARITY: NTSTATUS = -1073414063i32; +pub const MCA_ERROR_PCI_BUS_PARITY_NO_INFO: NTSTATUS = -1073414061i32; +pub const MCA_ERROR_PCI_BUS_SERR: NTSTATUS = -1073414059i32; +pub const MCA_ERROR_PCI_BUS_SERR_NO_INFO: NTSTATUS = -1073414057i32; +pub const MCA_ERROR_PCI_BUS_TIMEOUT: NTSTATUS = -1073414051i32; +pub const MCA_ERROR_PCI_BUS_TIMEOUT_NO_INFO: NTSTATUS = -1073414049i32; +pub const MCA_ERROR_PCI_BUS_UNKNOWN: NTSTATUS = -1073414047i32; +pub const MCA_ERROR_PCI_DEVICE: NTSTATUS = -1073414045i32; +pub const MCA_ERROR_PLATFORM_SPECIFIC: NTSTATUS = -1073414041i32; +pub const MCA_ERROR_REGISTER_FILE: NTSTATUS = -1073414077i32; +pub const MCA_ERROR_SMBIOS: NTSTATUS = -1073414043i32; +pub const MCA_ERROR_SYSTEM_EVENT: NTSTATUS = -1073414065i32; +pub const MCA_ERROR_TLB: NTSTATUS = -1073414081i32; +pub const MCA_ERROR_UNKNOWN: NTSTATUS = -1073414039i32; +pub const MCA_ERROR_UNKNOWN_NO_CPU: NTSTATUS = -1073414037i32; +pub const MCA_EXTERNAL_ERROR: NTSTATUS = -1073414017i32; +pub const MCA_FRC_ERROR: NTSTATUS = -1073414016i32; +pub const MCA_INFO_CPU_THERMAL_THROTTLING_REMOVED: NTSTATUS = 1074069616i32; +pub const MCA_INFO_MEMORY_PAGE_MARKED_BAD: NTSTATUS = 1074069620i32; +pub const MCA_INFO_NO_MORE_CORRECTED_ERROR_LOGS: NTSTATUS = 1074069619i32; +pub const MCA_INTERNALTIMER_ERROR: NTSTATUS = -1073414020i32; +pub const MCA_MEMORYHIERARCHY_ERROR: NTSTATUS = -1073414024i32; +pub const MCA_MICROCODE_ROM_PARITY_ERROR: NTSTATUS = -1073414018i32; +pub const MCA_TLB_ERROR: NTSTATUS = -1073414023i32; +pub const MCA_WARNING_CACHE: NTSTATUS = -2147155908i32; +pub const MCA_WARNING_CMC_THRESHOLD_EXCEEDED: NTSTATUS = -2147155859i32; +pub const MCA_WARNING_CPE_THRESHOLD_EXCEEDED: NTSTATUS = -2147155858i32; +pub const MCA_WARNING_CPU: NTSTATUS = -2147155855i32; +pub const MCA_WARNING_CPU_BUS: NTSTATUS = -2147155904i32; +pub const MCA_WARNING_CPU_THERMAL_THROTTLED: NTSTATUS = -2147155857i32; +pub const MCA_WARNING_MAS: NTSTATUS = -2147155900i32; +pub const MCA_WARNING_MEM_1_2: NTSTATUS = -2147155896i32; +pub const MCA_WARNING_MEM_1_2_5: NTSTATUS = -2147155894i32; +pub const MCA_WARNING_MEM_1_2_5_4: NTSTATUS = -2147155892i32; +pub const MCA_WARNING_MEM_UNKNOWN: NTSTATUS = -2147155898i32; +pub const MCA_WARNING_PCI_BUS_MASTER_ABORT: NTSTATUS = -2147155880i32; +pub const MCA_WARNING_PCI_BUS_MASTER_ABORT_NO_INFO: NTSTATUS = -2147155878i32; +pub const MCA_WARNING_PCI_BUS_PARITY: NTSTATUS = -2147155888i32; +pub const MCA_WARNING_PCI_BUS_PARITY_NO_INFO: NTSTATUS = -2147155886i32; +pub const MCA_WARNING_PCI_BUS_SERR: NTSTATUS = -2147155884i32; +pub const MCA_WARNING_PCI_BUS_SERR_NO_INFO: NTSTATUS = -2147155882i32; +pub const MCA_WARNING_PCI_BUS_TIMEOUT: NTSTATUS = -2147155876i32; +pub const MCA_WARNING_PCI_BUS_TIMEOUT_NO_INFO: NTSTATUS = -2147155874i32; +pub const MCA_WARNING_PCI_BUS_UNKNOWN: NTSTATUS = -2147155872i32; +pub const MCA_WARNING_PCI_DEVICE: NTSTATUS = -2147155870i32; +pub const MCA_WARNING_PLATFORM_SPECIFIC: NTSTATUS = -2147155866i32; +pub const MCA_WARNING_REGISTER_FILE: NTSTATUS = -2147155902i32; +pub const MCA_WARNING_SMBIOS: NTSTATUS = -2147155868i32; +pub const MCA_WARNING_SYSTEM_EVENT: NTSTATUS = -2147155890i32; +pub const MCA_WARNING_TLB: NTSTATUS = -2147155906i32; +pub const MCA_WARNING_UNKNOWN: NTSTATUS = -2147155864i32; +pub const MCA_WARNING_UNKNOWN_NO_CPU: NTSTATUS = -2147155862i32; +pub const MEM_E_INVALID_LINK: ::windows_sys::core::HRESULT = -2146959344i32; +pub const MEM_E_INVALID_ROOT: ::windows_sys::core::HRESULT = -2146959351i32; +pub const MEM_E_INVALID_SIZE: ::windows_sys::core::HRESULT = -2146959343i32; +pub const MENROLL_S_ENROLLMENT_SUSPENDED: ::windows_sys::core::HRESULT = 1572881i32; +pub const MILAVERR_INSUFFICIENTVIDEORESOURCES: ::windows_sys::core::HRESULT = -2003303160i32; +pub const MILAVERR_INVALIDWMPVERSION: ::windows_sys::core::HRESULT = -2003303161i32; +pub const MILAVERR_MEDIAPLAYERCLOSED: ::windows_sys::core::HRESULT = -2003303155i32; +pub const MILAVERR_MODULENOTLOADED: ::windows_sys::core::HRESULT = -2003303163i32; +pub const MILAVERR_NOCLOCK: ::windows_sys::core::HRESULT = -2003303168i32; +pub const MILAVERR_NOMEDIATYPE: ::windows_sys::core::HRESULT = -2003303167i32; +pub const MILAVERR_NOREADYFRAMES: ::windows_sys::core::HRESULT = -2003303164i32; +pub const MILAVERR_NOVIDEOMIXER: ::windows_sys::core::HRESULT = -2003303166i32; +pub const MILAVERR_NOVIDEOPRESENTER: ::windows_sys::core::HRESULT = -2003303165i32; +pub const MILAVERR_REQUESTEDTEXTURETOOBIG: ::windows_sys::core::HRESULT = -2003303158i32; +pub const MILAVERR_SEEKFAILED: ::windows_sys::core::HRESULT = -2003303157i32; +pub const MILAVERR_UNEXPECTEDWMPFAILURE: ::windows_sys::core::HRESULT = -2003303156i32; +pub const MILAVERR_UNKNOWNHARDWAREERROR: ::windows_sys::core::HRESULT = -2003303154i32; +pub const MILAVERR_VIDEOACCELERATIONNOTAVAILABLE: ::windows_sys::core::HRESULT = -2003303159i32; +pub const MILAVERR_WMPFACTORYNOTREGISTERED: ::windows_sys::core::HRESULT = -2003303162i32; +pub const MILEFFECTSERR_ALREADYATTACHEDTOLISTENER: ::windows_sys::core::HRESULT = -2003302888i32; +pub const MILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT: ::windows_sys::core::HRESULT = -2003302894i32; +pub const MILEFFECTSERR_CONNECTORNOTCONNECTED: ::windows_sys::core::HRESULT = -2003302895i32; +pub const MILEFFECTSERR_CYCLEDETECTED: ::windows_sys::core::HRESULT = -2003302892i32; +pub const MILEFFECTSERR_EFFECTALREADYINAGRAPH: ::windows_sys::core::HRESULT = -2003302890i32; +pub const MILEFFECTSERR_EFFECTHASNOCHILDREN: ::windows_sys::core::HRESULT = -2003302889i32; +pub const MILEFFECTSERR_EFFECTINMORETHANONEGRAPH: ::windows_sys::core::HRESULT = -2003302891i32; +pub const MILEFFECTSERR_EFFECTNOTPARTOFGROUP: ::windows_sys::core::HRESULT = -2003302897i32; +pub const MILEFFECTSERR_EMPTYBOUNDS: ::windows_sys::core::HRESULT = -2003302886i32; +pub const MILEFFECTSERR_NOINPUTSOURCEATTACHED: ::windows_sys::core::HRESULT = -2003302896i32; +pub const MILEFFECTSERR_NOTAFFINETRANSFORM: ::windows_sys::core::HRESULT = -2003302887i32; +pub const MILEFFECTSERR_OUTPUTSIZETOOLARGE: ::windows_sys::core::HRESULT = -2003302885i32; +pub const MILEFFECTSERR_RESERVED: ::windows_sys::core::HRESULT = -2003302893i32; +pub const MILEFFECTSERR_UNKNOWNPROPERTY: ::windows_sys::core::HRESULT = -2003302898i32; +pub const MILERR_ADAPTER_NOT_FOUND: ::windows_sys::core::HRESULT = -2003304290i32; +pub const MILERR_ALREADYLOCKED: ::windows_sys::core::HRESULT = -2003304314i32; +pub const MILERR_ALREADY_INITIALIZED: ::windows_sys::core::HRESULT = -2003304305i32; +pub const MILERR_BADNUMBER: ::windows_sys::core::HRESULT = -2003304438i32; +pub const MILERR_COLORSPACE_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2003304289i32; +pub const MILERR_DEVICECANNOTRENDERTEXT: ::windows_sys::core::HRESULT = -2003304312i32; +pub const MILERR_DISPLAYFORMATNOTSUPPORTED: ::windows_sys::core::HRESULT = -2003304316i32; +pub const MILERR_DISPLAYID_ACCESS_DENIED: ::windows_sys::core::HRESULT = -2003304287i32; +pub const MILERR_DISPLAYSTATEINVALID: ::windows_sys::core::HRESULT = -2003304442i32; +pub const MILERR_DXGI_ENUMERATION_OUT_OF_SYNC: ::windows_sys::core::HRESULT = -2003304291i32; +pub const MILERR_GENERIC_IGNORE: ::windows_sys::core::HRESULT = -2003304309i32; +pub const MILERR_GLYPHBITMAPMISSED: ::windows_sys::core::HRESULT = -2003304311i32; +pub const MILERR_INSUFFICIENTBUFFER: ::windows_sys::core::HRESULT = -2003304446i32; +pub const MILERR_INTERNALERROR: ::windows_sys::core::HRESULT = -2003304320i32; +pub const MILERR_INVALIDCALL: ::windows_sys::core::HRESULT = -2003304315i32; +pub const MILERR_MALFORMEDGLYPHCACHE: ::windows_sys::core::HRESULT = -2003304310i32; +pub const MILERR_MALFORMED_GUIDELINE_DATA: ::windows_sys::core::HRESULT = -2003304308i32; +pub const MILERR_MAX_TEXTURE_SIZE_EXCEEDED: ::windows_sys::core::HRESULT = -2003304294i32; +pub const MILERR_MISMATCHED_SIZE: ::windows_sys::core::HRESULT = -2003304304i32; +pub const MILERR_MROW_READLOCK_FAILED: ::windows_sys::core::HRESULT = -2003304297i32; +pub const MILERR_MROW_UPDATE_FAILED: ::windows_sys::core::HRESULT = -2003304296i32; +pub const MILERR_NEED_RECREATE_AND_PRESENT: ::windows_sys::core::HRESULT = -2003304306i32; +pub const MILERR_NONINVERTIBLEMATRIX: ::windows_sys::core::HRESULT = -2003304441i32; +pub const MILERR_NOTLOCKED: ::windows_sys::core::HRESULT = -2003304313i32; +pub const MILERR_NOT_QUEUING_PRESENTS: ::windows_sys::core::HRESULT = -2003304300i32; +pub const MILERR_NO_HARDWARE_DEVICE: ::windows_sys::core::HRESULT = -2003304307i32; +pub const MILERR_NO_REDIRECTION_SURFACE_AVAILABLE: ::windows_sys::core::HRESULT = -2003304303i32; +pub const MILERR_NO_REDIRECTION_SURFACE_RETRY_LATER: ::windows_sys::core::HRESULT = -2003304299i32; +pub const MILERR_OBJECTBUSY: ::windows_sys::core::HRESULT = -2003304447i32; +pub const MILERR_PREFILTER_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2003304288i32; +pub const MILERR_QPC_TIME_WENT_BACKWARD: ::windows_sys::core::HRESULT = -2003304293i32; +pub const MILERR_QUEUED_PRESENT_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2003304301i32; +pub const MILERR_REMOTING_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2003304302i32; +pub const MILERR_SCANNER_FAILED: ::windows_sys::core::HRESULT = -2003304444i32; +pub const MILERR_SCREENACCESSDENIED: ::windows_sys::core::HRESULT = -2003304443i32; +pub const MILERR_SHADER_COMPILE_FAILED: ::windows_sys::core::HRESULT = -2003304295i32; +pub const MILERR_TERMINATED: ::windows_sys::core::HRESULT = -2003304439i32; +pub const MILERR_TOOMANYSHADERELEMNTS: ::windows_sys::core::HRESULT = -2003304298i32; +pub const MILERR_WIN32ERROR: ::windows_sys::core::HRESULT = -2003304445i32; +pub const MILERR_ZEROVECTOR: ::windows_sys::core::HRESULT = -2003304440i32; +pub const MK_E_CANTOPENFILE: ::windows_sys::core::HRESULT = -2147221014i32; +pub const MK_E_CONNECTMANUALLY: ::windows_sys::core::HRESULT = -2147221024i32; +pub const MK_E_ENUMERATION_FAILED: ::windows_sys::core::HRESULT = -2147221009i32; +pub const MK_E_EXCEEDEDDEADLINE: ::windows_sys::core::HRESULT = -2147221023i32; +pub const MK_E_FIRST: i32 = -2147221024i32; +pub const MK_E_INTERMEDIATEINTERFACENOTSUPPORTED: ::windows_sys::core::HRESULT = -2147221017i32; +pub const MK_E_INVALIDEXTENSION: ::windows_sys::core::HRESULT = -2147221018i32; +pub const MK_E_LAST: i32 = -2147221009i32; +pub const MK_E_MUSTBOTHERUSER: ::windows_sys::core::HRESULT = -2147221013i32; +pub const MK_E_NEEDGENERIC: ::windows_sys::core::HRESULT = -2147221022i32; +pub const MK_E_NOINVERSE: ::windows_sys::core::HRESULT = -2147221012i32; +pub const MK_E_NOOBJECT: ::windows_sys::core::HRESULT = -2147221019i32; +pub const MK_E_NOPREFIX: ::windows_sys::core::HRESULT = -2147221010i32; +pub const MK_E_NOSTORAGE: ::windows_sys::core::HRESULT = -2147221011i32; +pub const MK_E_NOTBINDABLE: ::windows_sys::core::HRESULT = -2147221016i32; +pub const MK_E_NOTBOUND: ::windows_sys::core::HRESULT = -2147221015i32; +pub const MK_E_NO_NORMALIZED: ::windows_sys::core::HRESULT = -2146959353i32; +pub const MK_E_SYNTAX: ::windows_sys::core::HRESULT = -2147221020i32; +pub const MK_E_UNAVAILABLE: ::windows_sys::core::HRESULT = -2147221021i32; +pub const MK_S_FIRST: i32 = 262624i32; +pub const MK_S_HIM: ::windows_sys::core::HRESULT = 262629i32; +pub const MK_S_LAST: i32 = 262639i32; +pub const MK_S_ME: ::windows_sys::core::HRESULT = 262628i32; +pub const MK_S_MONIKERALREADYREGISTERED: ::windows_sys::core::HRESULT = 262631i32; +pub const MK_S_REDUCED_TO_SELF: ::windows_sys::core::HRESULT = 262626i32; +pub const MK_S_US: ::windows_sys::core::HRESULT = 262630i32; +pub const MSDTC_E_DUPLICATE_RESOURCE: ::windows_sys::core::HRESULT = -2146367743i32; +pub const MSSIPOTF_E_BADVERSION: ::windows_sys::core::HRESULT = -2146865131i32; +pub const MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT: ::windows_sys::core::HRESULT = -2146865144i32; +pub const MSSIPOTF_E_BAD_MAGICNUMBER: ::windows_sys::core::HRESULT = -2146865148i32; +pub const MSSIPOTF_E_BAD_OFFSET_TABLE: ::windows_sys::core::HRESULT = -2146865147i32; +pub const MSSIPOTF_E_CANTGETOBJECT: ::windows_sys::core::HRESULT = -2146865150i32; +pub const MSSIPOTF_E_CRYPT: ::windows_sys::core::HRESULT = -2146865132i32; +pub const MSSIPOTF_E_DSIG_STRUCTURE: ::windows_sys::core::HRESULT = -2146865130i32; +pub const MSSIPOTF_E_FAILED_HINTS_CHECK: ::windows_sys::core::HRESULT = -2146865135i32; +pub const MSSIPOTF_E_FAILED_POLICY: ::windows_sys::core::HRESULT = -2146865136i32; +pub const MSSIPOTF_E_FILE: ::windows_sys::core::HRESULT = -2146865133i32; +pub const MSSIPOTF_E_FILETOOSMALL: ::windows_sys::core::HRESULT = -2146865141i32; +pub const MSSIPOTF_E_FILE_CHECKSUM: ::windows_sys::core::HRESULT = -2146865139i32; +pub const MSSIPOTF_E_NOHEADTABLE: ::windows_sys::core::HRESULT = -2146865149i32; +pub const MSSIPOTF_E_NOT_OPENTYPE: ::windows_sys::core::HRESULT = -2146865134i32; +pub const MSSIPOTF_E_OUTOFMEMRANGE: ::windows_sys::core::HRESULT = -2146865151i32; +pub const MSSIPOTF_E_PCONST_CHECK: ::windows_sys::core::HRESULT = -2146865129i32; +pub const MSSIPOTF_E_STRUCTURE: ::windows_sys::core::HRESULT = -2146865128i32; +pub const MSSIPOTF_E_TABLES_OVERLAP: ::windows_sys::core::HRESULT = -2146865143i32; +pub const MSSIPOTF_E_TABLE_CHECKSUM: ::windows_sys::core::HRESULT = -2146865140i32; +pub const MSSIPOTF_E_TABLE_LONGWORD: ::windows_sys::core::HRESULT = -2146865145i32; +pub const MSSIPOTF_E_TABLE_PADBYTES: ::windows_sys::core::HRESULT = -2146865142i32; +pub const MSSIPOTF_E_TABLE_TAGORDER: ::windows_sys::core::HRESULT = -2146865146i32; +pub const NAP_E_CONFLICTING_ID: ::windows_sys::core::HRESULT = -2144927741i32; +pub const NAP_E_ENTITY_DISABLED: ::windows_sys::core::HRESULT = -2144927730i32; +pub const NAP_E_ID_NOT_FOUND: ::windows_sys::core::HRESULT = -2144927734i32; +pub const NAP_E_INVALID_PACKET: ::windows_sys::core::HRESULT = -2144927743i32; +pub const NAP_E_MAXSIZE_TOO_SMALL: ::windows_sys::core::HRESULT = -2144927733i32; +pub const NAP_E_MISMATCHED_ID: ::windows_sys::core::HRESULT = -2144927736i32; +pub const NAP_E_MISSING_SOH: ::windows_sys::core::HRESULT = -2144927742i32; +pub const NAP_E_NETSH_GROUPPOLICY_ERROR: ::windows_sys::core::HRESULT = -2144927729i32; +pub const NAP_E_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -2144927737i32; +pub const NAP_E_NOT_PENDING: ::windows_sys::core::HRESULT = -2144927735i32; +pub const NAP_E_NOT_REGISTERED: ::windows_sys::core::HRESULT = -2144927738i32; +pub const NAP_E_NO_CACHED_SOH: ::windows_sys::core::HRESULT = -2144927740i32; +pub const NAP_E_SERVICE_NOT_RUNNING: ::windows_sys::core::HRESULT = -2144927732i32; +pub const NAP_E_SHV_CONFIG_EXISTED: ::windows_sys::core::HRESULT = -2144927727i32; +pub const NAP_E_SHV_CONFIG_NOT_FOUND: ::windows_sys::core::HRESULT = -2144927726i32; +pub const NAP_E_SHV_TIMEOUT: ::windows_sys::core::HRESULT = -2144927725i32; +pub const NAP_E_STILL_BOUND: ::windows_sys::core::HRESULT = -2144927739i32; +pub const NAP_E_TOO_MANY_CALLS: ::windows_sys::core::HRESULT = -2144927728i32; +pub const NAP_S_CERT_ALREADY_PRESENT: ::windows_sys::core::HRESULT = 2555917i32; +pub const NOERROR: u32 = 0u32; +pub const NOT_AN_ERROR1: ::windows_sys::core::HRESULT = 529920i32; +pub const NO_ERROR: WIN32_ERROR = 0u32; +pub const NTDDI_MAXVER: u32 = 2560u32; +pub const NTE_AUTHENTICATION_IGNORED: ::windows_sys::core::HRESULT = -2146893775i32; +pub const NTE_BAD_ALGID: ::windows_sys::core::HRESULT = -2146893816i32; +pub const NTE_BAD_DATA: ::windows_sys::core::HRESULT = -2146893819i32; +pub const NTE_BAD_FLAGS: ::windows_sys::core::HRESULT = -2146893815i32; +pub const NTE_BAD_HASH: ::windows_sys::core::HRESULT = -2146893822i32; +pub const NTE_BAD_HASH_STATE: ::windows_sys::core::HRESULT = -2146893812i32; +pub const NTE_BAD_KEY: ::windows_sys::core::HRESULT = -2146893821i32; +pub const NTE_BAD_KEYSET: ::windows_sys::core::HRESULT = -2146893802i32; +pub const NTE_BAD_KEYSET_PARAM: ::windows_sys::core::HRESULT = -2146893793i32; +pub const NTE_BAD_KEY_STATE: ::windows_sys::core::HRESULT = -2146893813i32; +pub const NTE_BAD_LEN: ::windows_sys::core::HRESULT = -2146893820i32; +pub const NTE_BAD_PROVIDER: ::windows_sys::core::HRESULT = -2146893805i32; +pub const NTE_BAD_PROV_TYPE: ::windows_sys::core::HRESULT = -2146893804i32; +pub const NTE_BAD_PUBLIC_KEY: ::windows_sys::core::HRESULT = -2146893803i32; +pub const NTE_BAD_SIGNATURE: ::windows_sys::core::HRESULT = -2146893818i32; +pub const NTE_BAD_TYPE: ::windows_sys::core::HRESULT = -2146893814i32; +pub const NTE_BAD_UID: ::windows_sys::core::HRESULT = -2146893823i32; +pub const NTE_BAD_VER: ::windows_sys::core::HRESULT = -2146893817i32; +pub const NTE_BUFFERS_OVERLAP: ::windows_sys::core::HRESULT = -2146893781i32; +pub const NTE_BUFFER_TOO_SMALL: ::windows_sys::core::HRESULT = -2146893784i32; +pub const NTE_DECRYPTION_FAILURE: ::windows_sys::core::HRESULT = -2146893780i32; +pub const NTE_DEVICE_NOT_FOUND: ::windows_sys::core::HRESULT = -2146893771i32; +pub const NTE_DEVICE_NOT_READY: ::windows_sys::core::HRESULT = -2146893776i32; +pub const NTE_DOUBLE_ENCRYPT: ::windows_sys::core::HRESULT = -2146893806i32; +pub const NTE_ENCRYPTION_FAILURE: ::windows_sys::core::HRESULT = -2146893772i32; +pub const NTE_EXISTS: ::windows_sys::core::HRESULT = -2146893809i32; +pub const NTE_FAIL: ::windows_sys::core::HRESULT = -2146893792i32; +pub const NTE_FIXEDPARAMETER: ::windows_sys::core::HRESULT = -2146893787i32; +pub const NTE_HMAC_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2146893777i32; +pub const NTE_INCORRECT_PASSWORD: ::windows_sys::core::HRESULT = -2146893773i32; +pub const NTE_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2146893779i32; +pub const NTE_INVALID_HANDLE: ::windows_sys::core::HRESULT = -2146893786i32; +pub const NTE_INVALID_PARAMETER: ::windows_sys::core::HRESULT = -2146893785i32; +pub const NTE_KEYSET_ENTRY_BAD: ::windows_sys::core::HRESULT = -2146893798i32; +pub const NTE_KEYSET_NOT_DEF: ::windows_sys::core::HRESULT = -2146893799i32; +pub const NTE_NOT_ACTIVE_CONSOLE: ::windows_sys::core::HRESULT = -2146893768i32; +pub const NTE_NOT_FOUND: ::windows_sys::core::HRESULT = -2146893807i32; +pub const NTE_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2146893783i32; +pub const NTE_NO_KEY: ::windows_sys::core::HRESULT = -2146893811i32; +pub const NTE_NO_MEMORY: ::windows_sys::core::HRESULT = -2146893810i32; +pub const NTE_NO_MORE_ITEMS: ::windows_sys::core::HRESULT = -2146893782i32; +pub const NTE_OP_OK: u32 = 0u32; +pub const NTE_PASSWORD_CHANGE_REQUIRED: ::windows_sys::core::HRESULT = -2146893769i32; +pub const NTE_PERM: ::windows_sys::core::HRESULT = -2146893808i32; +pub const NTE_PROVIDER_DLL_FAIL: ::windows_sys::core::HRESULT = -2146893795i32; +pub const NTE_PROV_DLL_NOT_FOUND: ::windows_sys::core::HRESULT = -2146893794i32; +pub const NTE_PROV_TYPE_ENTRY_BAD: ::windows_sys::core::HRESULT = -2146893800i32; +pub const NTE_PROV_TYPE_NOT_DEF: ::windows_sys::core::HRESULT = -2146893801i32; +pub const NTE_PROV_TYPE_NO_MATCH: ::windows_sys::core::HRESULT = -2146893797i32; +pub const NTE_SIGNATURE_FILE_BAD: ::windows_sys::core::HRESULT = -2146893796i32; +pub const NTE_SILENT_CONTEXT: ::windows_sys::core::HRESULT = -2146893790i32; +pub const NTE_SYS_ERR: ::windows_sys::core::HRESULT = -2146893791i32; +pub const NTE_TEMPORARY_PROFILE: ::windows_sys::core::HRESULT = -2146893788i32; +pub const NTE_TOKEN_KEYSET_STORAGE_FULL: ::windows_sys::core::HRESULT = -2146893789i32; +pub const NTE_UI_REQUIRED: ::windows_sys::core::HRESULT = -2146893778i32; +pub const NTE_USER_CANCELLED: ::windows_sys::core::HRESULT = -2146893770i32; +pub const NTE_VALIDATION_FAILED: ::windows_sys::core::HRESULT = -2146893774i32; +pub const OLEOBJ_E_FIRST: i32 = -2147221120i32; +pub const OLEOBJ_E_INVALIDVERB: ::windows_sys::core::HRESULT = -2147221119i32; +pub const OLEOBJ_E_LAST: i32 = -2147221105i32; +pub const OLEOBJ_E_NOVERBS: ::windows_sys::core::HRESULT = -2147221120i32; +pub const OLEOBJ_S_CANNOT_DOVERB_NOW: ::windows_sys::core::HRESULT = 262529i32; +pub const OLEOBJ_S_FIRST: i32 = 262528i32; +pub const OLEOBJ_S_INVALIDHWND: ::windows_sys::core::HRESULT = 262530i32; +pub const OLEOBJ_S_INVALIDVERB: ::windows_sys::core::HRESULT = 262528i32; +pub const OLEOBJ_S_LAST: i32 = 262543i32; +pub const OLE_E_ADVF: ::windows_sys::core::HRESULT = -2147221503i32; +pub const OLE_E_ADVISENOTSUPPORTED: ::windows_sys::core::HRESULT = -2147221501i32; +pub const OLE_E_BLANK: ::windows_sys::core::HRESULT = -2147221497i32; +pub const OLE_E_CANTCONVERT: ::windows_sys::core::HRESULT = -2147221487i32; +pub const OLE_E_CANT_BINDTOSOURCE: ::windows_sys::core::HRESULT = -2147221494i32; +pub const OLE_E_CANT_GETMONIKER: ::windows_sys::core::HRESULT = -2147221495i32; +pub const OLE_E_CLASSDIFF: ::windows_sys::core::HRESULT = -2147221496i32; +pub const OLE_E_ENUM_NOMORE: ::windows_sys::core::HRESULT = -2147221502i32; +pub const OLE_E_FIRST: ::windows_sys::core::HRESULT = -2147221504i32; +pub const OLE_E_INVALIDHWND: ::windows_sys::core::HRESULT = -2147221489i32; +pub const OLE_E_INVALIDRECT: ::windows_sys::core::HRESULT = -2147221491i32; +pub const OLE_E_LAST: ::windows_sys::core::HRESULT = -2147221249i32; +pub const OLE_E_NOCACHE: ::windows_sys::core::HRESULT = -2147221498i32; +pub const OLE_E_NOCONNECTION: ::windows_sys::core::HRESULT = -2147221500i32; +pub const OLE_E_NOSTORAGE: ::windows_sys::core::HRESULT = -2147221486i32; +pub const OLE_E_NOTRUNNING: ::windows_sys::core::HRESULT = -2147221499i32; +pub const OLE_E_NOT_INPLACEACTIVE: ::windows_sys::core::HRESULT = -2147221488i32; +pub const OLE_E_OLEVERB: ::windows_sys::core::HRESULT = -2147221504i32; +pub const OLE_E_PROMPTSAVECANCELLED: ::windows_sys::core::HRESULT = -2147221492i32; +pub const OLE_E_STATIC: ::windows_sys::core::HRESULT = -2147221493i32; +pub const OLE_E_WRONGCOMPOBJ: ::windows_sys::core::HRESULT = -2147221490i32; +pub const OLE_S_FIRST: ::windows_sys::core::HRESULT = 262144i32; +pub const OLE_S_LAST: ::windows_sys::core::HRESULT = 262399i32; +pub const OLE_S_MAC_CLIPFORMAT: ::windows_sys::core::HRESULT = 262146i32; +pub const OLE_S_STATIC: ::windows_sys::core::HRESULT = 262145i32; +pub const OLE_S_USEREG: ::windows_sys::core::HRESULT = 262144i32; +pub const ONL_CONNECTION_COUNT_LIMIT: ::windows_sys::core::HRESULT = -2138701811i32; +pub const ONL_E_ACCESS_DENIED_BY_TOU: ::windows_sys::core::HRESULT = -2138701822i32; +pub const ONL_E_ACCOUNT_LOCKED: ::windows_sys::core::HRESULT = -2138701817i32; +pub const ONL_E_ACCOUNT_SUSPENDED_ABUSE: ::windows_sys::core::HRESULT = -2138701813i32; +pub const ONL_E_ACCOUNT_SUSPENDED_COMPROIMISE: ::windows_sys::core::HRESULT = -2138701814i32; +pub const ONL_E_ACCOUNT_UPDATE_REQUIRED: ::windows_sys::core::HRESULT = -2138701819i32; +pub const ONL_E_ACTION_REQUIRED: ::windows_sys::core::HRESULT = -2138701812i32; +pub const ONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT: ::windows_sys::core::HRESULT = -2138701810i32; +pub const ONL_E_EMAIL_VERIFICATION_REQUIRED: ::windows_sys::core::HRESULT = -2138701815i32; +pub const ONL_E_FORCESIGNIN: ::windows_sys::core::HRESULT = -2138701818i32; +pub const ONL_E_INVALID_APPLICATION: ::windows_sys::core::HRESULT = -2138701821i32; +pub const ONL_E_INVALID_AUTHENTICATION_TARGET: ::windows_sys::core::HRESULT = -2138701823i32; +pub const ONL_E_PARENTAL_CONSENT_REQUIRED: ::windows_sys::core::HRESULT = -2138701816i32; +pub const ONL_E_PASSWORD_UPDATE_REQUIRED: ::windows_sys::core::HRESULT = -2138701820i32; +pub const ONL_E_REQUEST_THROTTLED: ::windows_sys::core::HRESULT = -2138701808i32; +pub const ONL_E_USER_AUTHENTICATION_REQUIRED: ::windows_sys::core::HRESULT = -2138701809i32; +pub const OR_INVALID_OID: i32 = 1911i32; +pub const OR_INVALID_OXID: i32 = 1910i32; +pub const OR_INVALID_SET: i32 = 1912i32; +pub const OSS_ACCESS_SERIALIZATION_ERROR: ::windows_sys::core::HRESULT = -2146881517i32; +pub const OSS_API_DLL_NOT_LINKED: ::windows_sys::core::HRESULT = -2146881495i32; +pub const OSS_BAD_ARG: ::windows_sys::core::HRESULT = -2146881530i32; +pub const OSS_BAD_ENCRULES: ::windows_sys::core::HRESULT = -2146881514i32; +pub const OSS_BAD_PTR: ::windows_sys::core::HRESULT = -2146881525i32; +pub const OSS_BAD_TABLE: ::windows_sys::core::HRESULT = -2146881521i32; +pub const OSS_BAD_TIME: ::windows_sys::core::HRESULT = -2146881524i32; +pub const OSS_BAD_VERSION: ::windows_sys::core::HRESULT = -2146881529i32; +pub const OSS_BERDER_DLL_NOT_LINKED: ::windows_sys::core::HRESULT = -2146881494i32; +pub const OSS_CANT_CLOSE_TRACE_FILE: ::windows_sys::core::HRESULT = -2146881490i32; +pub const OSS_CANT_OPEN_TRACE_FILE: ::windows_sys::core::HRESULT = -2146881509i32; +pub const OSS_CANT_OPEN_TRACE_WINDOW: ::windows_sys::core::HRESULT = -2146881512i32; +pub const OSS_COMPARATOR_CODE_NOT_LINKED: ::windows_sys::core::HRESULT = -2146881499i32; +pub const OSS_COMPARATOR_DLL_NOT_LINKED: ::windows_sys::core::HRESULT = -2146881500i32; +pub const OSS_CONSTRAINT_DLL_NOT_LINKED: ::windows_sys::core::HRESULT = -2146881501i32; +pub const OSS_CONSTRAINT_VIOLATED: ::windows_sys::core::HRESULT = -2146881519i32; +pub const OSS_COPIER_DLL_NOT_LINKED: ::windows_sys::core::HRESULT = -2146881502i32; +pub const OSS_DATA_ERROR: ::windows_sys::core::HRESULT = -2146881531i32; +pub const OSS_FATAL_ERROR: ::windows_sys::core::HRESULT = -2146881518i32; +pub const OSS_INDEFINITE_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2146881523i32; +pub const OSS_LIMITED: ::windows_sys::core::HRESULT = -2146881526i32; +pub const OSS_MEM_ERROR: ::windows_sys::core::HRESULT = -2146881522i32; +pub const OSS_MEM_MGR_DLL_NOT_LINKED: ::windows_sys::core::HRESULT = -2146881498i32; +pub const OSS_MORE_BUF: ::windows_sys::core::HRESULT = -2146881535i32; +pub const OSS_MORE_INPUT: ::windows_sys::core::HRESULT = -2146881532i32; +pub const OSS_MUTEX_NOT_CREATED: ::windows_sys::core::HRESULT = -2146881491i32; +pub const OSS_NEGATIVE_UINTEGER: ::windows_sys::core::HRESULT = -2146881534i32; +pub const OSS_NULL_FCN: ::windows_sys::core::HRESULT = -2146881515i32; +pub const OSS_NULL_TBL: ::windows_sys::core::HRESULT = -2146881516i32; +pub const OSS_OID_DLL_NOT_LINKED: ::windows_sys::core::HRESULT = -2146881510i32; +pub const OSS_OPEN_TYPE_ERROR: ::windows_sys::core::HRESULT = -2146881492i32; +pub const OSS_OUT_MEMORY: ::windows_sys::core::HRESULT = -2146881528i32; +pub const OSS_OUT_OF_RANGE: ::windows_sys::core::HRESULT = -2146881503i32; +pub const OSS_PDU_MISMATCH: ::windows_sys::core::HRESULT = -2146881527i32; +pub const OSS_PDU_RANGE: ::windows_sys::core::HRESULT = -2146881533i32; +pub const OSS_PDV_CODE_NOT_LINKED: ::windows_sys::core::HRESULT = -2146881496i32; +pub const OSS_PDV_DLL_NOT_LINKED: ::windows_sys::core::HRESULT = -2146881497i32; +pub const OSS_PER_DLL_NOT_LINKED: ::windows_sys::core::HRESULT = -2146881493i32; +pub const OSS_REAL_CODE_NOT_LINKED: ::windows_sys::core::HRESULT = -2146881504i32; +pub const OSS_REAL_DLL_NOT_LINKED: ::windows_sys::core::HRESULT = -2146881505i32; +pub const OSS_TABLE_MISMATCH: ::windows_sys::core::HRESULT = -2146881507i32; +pub const OSS_TOO_LONG: ::windows_sys::core::HRESULT = -2146881520i32; +pub const OSS_TRACE_FILE_ALREADY_OPEN: ::windows_sys::core::HRESULT = -2146881508i32; +pub const OSS_TYPE_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2146881506i32; +pub const OSS_UNAVAIL_ENCRULES: ::windows_sys::core::HRESULT = -2146881513i32; +pub const OSS_UNIMPLEMENTED: ::windows_sys::core::HRESULT = -2146881511i32; +pub const PEERDIST_ERROR_ALREADY_COMPLETED: i32 = 4060i32; +pub const PEERDIST_ERROR_ALREADY_EXISTS: i32 = 4058i32; +pub const PEERDIST_ERROR_ALREADY_INITIALIZED: i32 = 4055i32; +pub const PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO: i32 = 4051i32; +pub const PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED: i32 = 4050i32; +pub const PEERDIST_ERROR_INVALIDATED: i32 = 4057i32; +pub const PEERDIST_ERROR_INVALID_CONFIGURATION: i32 = 4063i32; +pub const PEERDIST_ERROR_MISSING_DATA: i32 = 4052i32; +pub const PEERDIST_ERROR_NOT_INITIALIZED: i32 = 4054i32; +pub const PEERDIST_ERROR_NOT_LICENSED: i32 = 4064i32; +pub const PEERDIST_ERROR_NO_MORE: i32 = 4053i32; +pub const PEERDIST_ERROR_OPERATION_NOTFOUND: i32 = 4059i32; +pub const PEERDIST_ERROR_OUT_OF_BOUNDS: i32 = 4061i32; +pub const PEERDIST_ERROR_SERVICE_UNAVAILABLE: i32 = 4065i32; +pub const PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS: i32 = 4056i32; +pub const PEERDIST_ERROR_TRUST_FAILURE: i32 = 4066i32; +pub const PEERDIST_ERROR_VERSION_UNSUPPORTED: i32 = 4062i32; +pub const PEER_E_ALREADY_LISTENING: ::windows_sys::core::HRESULT = -2140995321i32; +pub const PEER_E_CANNOT_CONVERT_PEER_NAME: ::windows_sys::core::HRESULT = -2140979199i32; +pub const PEER_E_CANNOT_START_SERVICE: ::windows_sys::core::HRESULT = -2140995581i32; +pub const PEER_E_CERT_STORE_CORRUPTED: ::windows_sys::core::HRESULT = -2140993535i32; +pub const PEER_E_CHAIN_TOO_LONG: ::windows_sys::core::HRESULT = -2140993789i32; +pub const PEER_E_CIRCULAR_CHAIN_DETECTED: ::windows_sys::core::HRESULT = -2140993786i32; +pub const PEER_E_CLASSIFIER_TOO_LONG: ::windows_sys::core::HRESULT = -2140995071i32; +pub const PEER_E_CLOUD_NAME_AMBIGUOUS: ::windows_sys::core::HRESULT = -2140991483i32; +pub const PEER_E_CONNECTION_FAILED: ::windows_sys::core::HRESULT = -2140995319i32; +pub const PEER_E_CONNECTION_NOT_AUTHENTICATED: ::windows_sys::core::HRESULT = -2140995318i32; +pub const PEER_E_CONNECTION_NOT_FOUND: ::windows_sys::core::HRESULT = -2140995325i32; +pub const PEER_E_CONNECTION_REFUSED: ::windows_sys::core::HRESULT = -2140995317i32; +pub const PEER_E_CONNECT_SELF: ::windows_sys::core::HRESULT = -2140995322i32; +pub const PEER_E_CONTACT_NOT_FOUND: ::windows_sys::core::HRESULT = -2140971007i32; +pub const PEER_E_DATABASE_ACCESSDENIED: ::windows_sys::core::HRESULT = -2140994814i32; +pub const PEER_E_DATABASE_ALREADY_PRESENT: ::windows_sys::core::HRESULT = -2140994811i32; +pub const PEER_E_DATABASE_NOT_PRESENT: ::windows_sys::core::HRESULT = -2140994810i32; +pub const PEER_E_DBINITIALIZATION_FAILED: ::windows_sys::core::HRESULT = -2140994813i32; +pub const PEER_E_DBNAME_CHANGED: ::windows_sys::core::HRESULT = -2140995567i32; +pub const PEER_E_DEFERRED_VALIDATION: ::windows_sys::core::HRESULT = -2140987344i32; +pub const PEER_E_DUPLICATE_GRAPH: ::windows_sys::core::HRESULT = -2140995566i32; +pub const PEER_E_EVENT_HANDLE_NOT_FOUND: ::windows_sys::core::HRESULT = -2140994303i32; +pub const PEER_E_FW_BLOCKED_BY_POLICY: ::windows_sys::core::HRESULT = -2140966903i32; +pub const PEER_E_FW_BLOCKED_BY_SHIELDS_UP: ::windows_sys::core::HRESULT = -2140966902i32; +pub const PEER_E_FW_DECLINED: ::windows_sys::core::HRESULT = -2140966901i32; +pub const PEER_E_FW_EXCEPTION_DISABLED: ::windows_sys::core::HRESULT = -2140966904i32; +pub const PEER_E_GRAPH_IN_USE: ::windows_sys::core::HRESULT = -2140995563i32; +pub const PEER_E_GRAPH_NOT_READY: ::windows_sys::core::HRESULT = -2140995565i32; +pub const PEER_E_GRAPH_SHUTTING_DOWN: ::windows_sys::core::HRESULT = -2140995564i32; +pub const PEER_E_GROUPS_EXIST: ::windows_sys::core::HRESULT = -2140995068i32; +pub const PEER_E_GROUP_IN_USE: ::windows_sys::core::HRESULT = -2140987246i32; +pub const PEER_E_GROUP_NOT_READY: ::windows_sys::core::HRESULT = -2140987247i32; +pub const PEER_E_IDENTITY_DELETED: ::windows_sys::core::HRESULT = -2140987232i32; +pub const PEER_E_IDENTITY_NOT_FOUND: ::windows_sys::core::HRESULT = -2140994559i32; +pub const PEER_E_INVALID_ADDRESS: ::windows_sys::core::HRESULT = -2140966905i32; +pub const PEER_E_INVALID_ATTRIBUTES: ::windows_sys::core::HRESULT = -2140994046i32; +pub const PEER_E_INVALID_CLASSIFIER: ::windows_sys::core::HRESULT = -2140987296i32; +pub const PEER_E_INVALID_CLASSIFIER_PROPERTY: ::windows_sys::core::HRESULT = -2140987278i32; +pub const PEER_E_INVALID_CREDENTIAL: ::windows_sys::core::HRESULT = -2140987262i32; +pub const PEER_E_INVALID_CREDENTIAL_INFO: ::windows_sys::core::HRESULT = -2140987263i32; +pub const PEER_E_INVALID_DATABASE: ::windows_sys::core::HRESULT = -2140995562i32; +pub const PEER_E_INVALID_FRIENDLY_NAME: ::windows_sys::core::HRESULT = -2140987280i32; +pub const PEER_E_INVALID_GRAPH: ::windows_sys::core::HRESULT = -2140995568i32; +pub const PEER_E_INVALID_GROUP: ::windows_sys::core::HRESULT = -2140987245i32; +pub const PEER_E_INVALID_GROUP_PROPERTIES: ::windows_sys::core::HRESULT = -2140987328i32; +pub const PEER_E_INVALID_PEER_HOST_NAME: ::windows_sys::core::HRESULT = -2140979198i32; +pub const PEER_E_INVALID_PEER_NAME: ::windows_sys::core::HRESULT = -2140987312i32; +pub const PEER_E_INVALID_RECORD: ::windows_sys::core::HRESULT = -2140987376i32; +pub const PEER_E_INVALID_RECORD_EXPIRATION: ::windows_sys::core::HRESULT = -2140987264i32; +pub const PEER_E_INVALID_RECORD_SIZE: ::windows_sys::core::HRESULT = -2140987261i32; +pub const PEER_E_INVALID_ROLE_PROPERTY: ::windows_sys::core::HRESULT = -2140987279i32; +pub const PEER_E_INVALID_SEARCH: ::windows_sys::core::HRESULT = -2140994047i32; +pub const PEER_E_INVALID_TIME_PERIOD: ::windows_sys::core::HRESULT = -2140993787i32; +pub const PEER_E_INVITATION_NOT_TRUSTED: ::windows_sys::core::HRESULT = -2140993791i32; +pub const PEER_E_INVITE_CANCELLED: ::windows_sys::core::HRESULT = -2140966912i32; +pub const PEER_E_INVITE_RESPONSE_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2140966911i32; +pub const PEER_E_IPV6_NOT_INSTALLED: ::windows_sys::core::HRESULT = -2140995583i32; +pub const PEER_E_MAX_RECORD_SIZE_EXCEEDED: ::windows_sys::core::HRESULT = -2140994812i32; +pub const PEER_E_NODE_NOT_FOUND: ::windows_sys::core::HRESULT = -2140995320i32; +pub const PEER_E_NOT_AUTHORIZED: ::windows_sys::core::HRESULT = -2140987360i32; +pub const PEER_E_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -2140995582i32; +pub const PEER_E_NOT_LICENSED: ::windows_sys::core::HRESULT = -2140995580i32; +pub const PEER_E_NOT_SIGNED_IN: ::windows_sys::core::HRESULT = -2140966909i32; +pub const PEER_E_NO_CLOUD: ::windows_sys::core::HRESULT = -2140991487i32; +pub const PEER_E_NO_KEY_ACCESS: ::windows_sys::core::HRESULT = -2140995069i32; +pub const PEER_E_NO_MEMBERS_FOUND: ::windows_sys::core::HRESULT = -2140987244i32; +pub const PEER_E_NO_MEMBER_CONNECTIONS: ::windows_sys::core::HRESULT = -2140987243i32; +pub const PEER_E_NO_MORE: ::windows_sys::core::HRESULT = -2140979197i32; +pub const PEER_E_PASSWORD_DOES_NOT_MEET_POLICY: ::windows_sys::core::HRESULT = -2140987359i32; +pub const PEER_E_PNRP_DUPLICATE_PEER_NAME: ::windows_sys::core::HRESULT = -2140979195i32; +pub const PEER_E_PRIVACY_DECLINED: ::windows_sys::core::HRESULT = -2140966908i32; +pub const PEER_E_RECORD_NOT_FOUND: ::windows_sys::core::HRESULT = -2140994815i32; +pub const PEER_E_SERVICE_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2140987231i32; +pub const PEER_E_TIMEOUT: ::windows_sys::core::HRESULT = -2140966907i32; +pub const PEER_E_TOO_MANY_ATTRIBUTES: ::windows_sys::core::HRESULT = -2140995561i32; +pub const PEER_E_TOO_MANY_IDENTITIES: ::windows_sys::core::HRESULT = -2140995070i32; +pub const PEER_E_UNABLE_TO_LISTEN: ::windows_sys::core::HRESULT = -2140987242i32; +pub const PEER_E_UNSUPPORTED_VERSION: ::windows_sys::core::HRESULT = -2140987248i32; +pub const PEER_S_ALREADY_A_MEMBER: ::windows_sys::core::HRESULT = 6488070i32; +pub const PEER_S_ALREADY_CONNECTED: ::windows_sys::core::HRESULT = 6496256i32; +pub const PEER_S_GRAPH_DATA_CREATED: ::windows_sys::core::HRESULT = 6488065i32; +pub const PEER_S_NO_CONNECTIVITY: ::windows_sys::core::HRESULT = 6488069i32; +pub const PEER_S_NO_EVENT_DATA: ::windows_sys::core::HRESULT = 6488066i32; +pub const PEER_S_SUBSCRIPTION_EXISTS: ::windows_sys::core::HRESULT = 6512640i32; +pub const PERSIST_E_NOTSELFSIZING: ::windows_sys::core::HRESULT = -2146762741i32; +pub const PERSIST_E_SIZEDEFINITE: ::windows_sys::core::HRESULT = -2146762743i32; +pub const PERSIST_E_SIZEINDEFINITE: ::windows_sys::core::HRESULT = -2146762742i32; +pub const PLA_E_CABAPI_FAILURE: ::windows_sys::core::HRESULT = -2144337645i32; +pub const PLA_E_CONFLICT_INCL_EXCL_API: ::windows_sys::core::HRESULT = -2144337659i32; +pub const PLA_E_CREDENTIALS_REQUIRED: ::windows_sys::core::HRESULT = -2144337661i32; +pub const PLA_E_DCS_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2144337737i32; +pub const PLA_E_DCS_IN_USE: ::windows_sys::core::HRESULT = -2144337750i32; +pub const PLA_E_DCS_NOT_FOUND: ::windows_sys::core::HRESULT = -2144337918i32; +pub const PLA_E_DCS_NOT_RUNNING: ::windows_sys::core::HRESULT = -2144337660i32; +pub const PLA_E_DCS_SINGLETON_REQUIRED: ::windows_sys::core::HRESULT = -2144337662i32; +pub const PLA_E_DCS_START_WAIT_TIMEOUT: ::windows_sys::core::HRESULT = -2144337654i32; +pub const PLA_E_DC_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2144337655i32; +pub const PLA_E_DC_START_WAIT_TIMEOUT: ::windows_sys::core::HRESULT = -2144337653i32; +pub const PLA_E_EXE_ALREADY_CONFIGURED: ::windows_sys::core::HRESULT = -2144337657i32; +pub const PLA_E_EXE_FULL_PATH_REQUIRED: ::windows_sys::core::HRESULT = -2144337650i32; +pub const PLA_E_EXE_PATH_NOT_VALID: ::windows_sys::core::HRESULT = -2144337656i32; +pub const PLA_E_INVALID_SESSION_NAME: ::windows_sys::core::HRESULT = -2144337649i32; +pub const PLA_E_NETWORK_EXE_NOT_VALID: ::windows_sys::core::HRESULT = -2144337658i32; +pub const PLA_E_NO_DUPLICATES: ::windows_sys::core::HRESULT = -2144337651i32; +pub const PLA_E_NO_MIN_DISK: ::windows_sys::core::HRESULT = -2144337808i32; +pub const PLA_E_PLA_CHANNEL_NOT_ENABLED: ::windows_sys::core::HRESULT = -2144337648i32; +pub const PLA_E_PROPERTY_CONFLICT: ::windows_sys::core::HRESULT = -2144337663i32; +pub const PLA_E_REPORT_WAIT_TIMEOUT: ::windows_sys::core::HRESULT = -2144337652i32; +pub const PLA_E_RULES_MANAGER_FAILED: ::windows_sys::core::HRESULT = -2144337646i32; +pub const PLA_E_TASKSCHED_CHANNEL_NOT_ENABLED: ::windows_sys::core::HRESULT = -2144337647i32; +pub const PLA_E_TOO_MANY_FOLDERS: ::windows_sys::core::HRESULT = -2144337851i32; +pub const PLA_S_PROPERTY_IGNORED: ::windows_sys::core::HRESULT = 3145984i32; +pub const PRESENTATION_ERROR_LOST: ::windows_sys::core::HRESULT = -2004811775i32; +pub const PSINK_E_INDEX_ONLY: ::windows_sys::core::HRESULT = -2147215471i32; +pub const PSINK_E_LARGE_ATTACHMENT: ::windows_sys::core::HRESULT = -2147215470i32; +pub const PSINK_E_QUERY_ONLY: ::windows_sys::core::HRESULT = -2147215472i32; +pub const PSINK_S_LARGE_WORD: ::windows_sys::core::HRESULT = 268179i32; +pub const QPARSE_E_EXPECTING_BRACE: ::windows_sys::core::HRESULT = -2147215770i32; +pub const QPARSE_E_EXPECTING_COMMA: ::windows_sys::core::HRESULT = -2147215759i32; +pub const QPARSE_E_EXPECTING_CURRENCY: ::windows_sys::core::HRESULT = -2147215772i32; +pub const QPARSE_E_EXPECTING_DATE: ::windows_sys::core::HRESULT = -2147215773i32; +pub const QPARSE_E_EXPECTING_EOS: ::windows_sys::core::HRESULT = -2147215760i32; +pub const QPARSE_E_EXPECTING_GUID: ::windows_sys::core::HRESULT = -2147215771i32; +pub const QPARSE_E_EXPECTING_INTEGER: ::windows_sys::core::HRESULT = -2147215775i32; +pub const QPARSE_E_EXPECTING_PAREN: ::windows_sys::core::HRESULT = -2147215769i32; +pub const QPARSE_E_EXPECTING_PHRASE: ::windows_sys::core::HRESULT = -2147215766i32; +pub const QPARSE_E_EXPECTING_PROPERTY: ::windows_sys::core::HRESULT = -2147215768i32; +pub const QPARSE_E_EXPECTING_REAL: ::windows_sys::core::HRESULT = -2147215774i32; +pub const QPARSE_E_EXPECTING_REGEX: ::windows_sys::core::HRESULT = -2147215764i32; +pub const QPARSE_E_EXPECTING_REGEX_PROPERTY: ::windows_sys::core::HRESULT = -2147215763i32; +pub const QPARSE_E_INVALID_GROUPING: ::windows_sys::core::HRESULT = -2147215753i32; +pub const QPARSE_E_INVALID_LITERAL: ::windows_sys::core::HRESULT = -2147215762i32; +pub const QPARSE_E_INVALID_QUERY: ::windows_sys::core::HRESULT = -2147215750i32; +pub const QPARSE_E_INVALID_RANKMETHOD: ::windows_sys::core::HRESULT = -2147215749i32; +pub const QPARSE_E_INVALID_SORT_ORDER: ::windows_sys::core::HRESULT = -2147215755i32; +pub const QPARSE_E_NOT_YET_IMPLEMENTED: ::windows_sys::core::HRESULT = -2147215767i32; +pub const QPARSE_E_NO_SUCH_PROPERTY: ::windows_sys::core::HRESULT = -2147215761i32; +pub const QPARSE_E_NO_SUCH_SORT_PROPERTY: ::windows_sys::core::HRESULT = -2147215756i32; +pub const QPARSE_E_UNEXPECTED_EOS: ::windows_sys::core::HRESULT = -2147215758i32; +pub const QPARSE_E_UNEXPECTED_NOT: ::windows_sys::core::HRESULT = -2147215776i32; +pub const QPARSE_E_UNSUPPORTED_PROPERTY_TYPE: ::windows_sys::core::HRESULT = -2147215765i32; +pub const QPARSE_E_WEIGHT_OUT_OF_RANGE: ::windows_sys::core::HRESULT = -2147215757i32; +pub const QPLIST_E_BAD_GUID: ::windows_sys::core::HRESULT = -2147215783i32; +pub const QPLIST_E_BYREF_USED_WITHOUT_PTRTYPE: ::windows_sys::core::HRESULT = -2147215778i32; +pub const QPLIST_E_CANT_OPEN_FILE: ::windows_sys::core::HRESULT = -2147215791i32; +pub const QPLIST_E_CANT_SET_PROPERTY: ::windows_sys::core::HRESULT = -2147215781i32; +pub const QPLIST_E_DUPLICATE: ::windows_sys::core::HRESULT = -2147215780i32; +pub const QPLIST_E_EXPECTING_CLOSE_PAREN: ::windows_sys::core::HRESULT = -2147215785i32; +pub const QPLIST_E_EXPECTING_GUID: ::windows_sys::core::HRESULT = -2147215784i32; +pub const QPLIST_E_EXPECTING_INTEGER: ::windows_sys::core::HRESULT = -2147215786i32; +pub const QPLIST_E_EXPECTING_NAME: ::windows_sys::core::HRESULT = -2147215789i32; +pub const QPLIST_E_EXPECTING_PROP_SPEC: ::windows_sys::core::HRESULT = -2147215782i32; +pub const QPLIST_E_EXPECTING_TYPE: ::windows_sys::core::HRESULT = -2147215788i32; +pub const QPLIST_E_READ_ERROR: ::windows_sys::core::HRESULT = -2147215790i32; +pub const QPLIST_E_UNRECOGNIZED_TYPE: ::windows_sys::core::HRESULT = -2147215787i32; +pub const QPLIST_E_VECTORBYREF_USED_ALONE: ::windows_sys::core::HRESULT = -2147215779i32; +pub const QPLIST_S_DUPLICATE: ::windows_sys::core::HRESULT = 267897i32; +pub const QUERY_E_ALLNOISE: ::windows_sys::core::HRESULT = -2147215867i32; +pub const QUERY_E_DIR_ON_REMOVABLE_DRIVE: ::windows_sys::core::HRESULT = -2147215861i32; +pub const QUERY_E_DUPLICATE_OUTPUT_COLUMN: ::windows_sys::core::HRESULT = -2147215864i32; +pub const QUERY_E_FAILED: ::windows_sys::core::HRESULT = -2147215872i32; +pub const QUERY_E_INVALIDCATEGORIZE: ::windows_sys::core::HRESULT = -2147215868i32; +pub const QUERY_E_INVALIDQUERY: ::windows_sys::core::HRESULT = -2147215871i32; +pub const QUERY_E_INVALIDRESTRICTION: ::windows_sys::core::HRESULT = -2147215870i32; +pub const QUERY_E_INVALIDSORT: ::windows_sys::core::HRESULT = -2147215869i32; +pub const QUERY_E_INVALID_DIRECTORY: ::windows_sys::core::HRESULT = -2147215862i32; +pub const QUERY_E_INVALID_OUTPUT_COLUMN: ::windows_sys::core::HRESULT = -2147215863i32; +pub const QUERY_E_TIMEDOUT: ::windows_sys::core::HRESULT = -2147215865i32; +pub const QUERY_E_TOOCOMPLEX: ::windows_sys::core::HRESULT = -2147215866i32; +pub const QUERY_S_NO_QUERY: ::windows_sys::core::HRESULT = -2147215860i32; +pub const QUTIL_E_CANT_CONVERT_VROOT: ::windows_sys::core::HRESULT = -2147215754i32; +pub const QUTIL_E_INVALID_CODEPAGE: ::windows_sys::core::HRESULT = -1073473928i32; +pub const REGDB_E_BADTHREADINGMODEL: ::windows_sys::core::HRESULT = -2147221162i32; +pub const REGDB_E_CLASSNOTREG: ::windows_sys::core::HRESULT = -2147221164i32; +pub const REGDB_E_FIRST: i32 = -2147221168i32; +pub const REGDB_E_IIDNOTREG: ::windows_sys::core::HRESULT = -2147221163i32; +pub const REGDB_E_INVALIDVALUE: ::windows_sys::core::HRESULT = -2147221165i32; +pub const REGDB_E_KEYMISSING: ::windows_sys::core::HRESULT = -2147221166i32; +pub const REGDB_E_LAST: i32 = -2147221153i32; +pub const REGDB_E_PACKAGEPOLICYVIOLATION: ::windows_sys::core::HRESULT = -2147221161i32; +pub const REGDB_E_READREGDB: ::windows_sys::core::HRESULT = -2147221168i32; +pub const REGDB_E_WRITEREGDB: ::windows_sys::core::HRESULT = -2147221167i32; +pub const REGDB_S_FIRST: i32 = 262480i32; +pub const REGDB_S_LAST: i32 = 262495i32; +pub const ROUTEBASE: u32 = 900u32; +pub const ROUTEBASEEND: u32 = 957u32; +pub const RO_E_BLOCKED_CROSS_ASTA_CALL: ::windows_sys::core::HRESULT = -2147483617i32; +pub const RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER: ::windows_sys::core::HRESULT = -2147483616i32; +pub const RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER: ::windows_sys::core::HRESULT = -2147483615i32; +pub const RO_E_CHANGE_NOTIFICATION_IN_PROGRESS: ::windows_sys::core::HRESULT = -2147483627i32; +pub const RO_E_CLOSED: ::windows_sys::core::HRESULT = -2147483629i32; +pub const RO_E_COMMITTED: ::windows_sys::core::HRESULT = -2147483618i32; +pub const RO_E_ERROR_STRING_NOT_FOUND: ::windows_sys::core::HRESULT = -2147483626i32; +pub const RO_E_EXCLUSIVE_WRITE: ::windows_sys::core::HRESULT = -2147483628i32; +pub const RO_E_INVALID_METADATA_FILE: ::windows_sys::core::HRESULT = -2147483630i32; +pub const RO_E_METADATA_INVALID_TYPE_FORMAT: ::windows_sys::core::HRESULT = -2147483631i32; +pub const RO_E_METADATA_NAME_IS_NAMESPACE: ::windows_sys::core::HRESULT = -2147483632i32; +pub const RO_E_METADATA_NAME_NOT_FOUND: ::windows_sys::core::HRESULT = -2147483633i32; +pub const RO_E_MUST_BE_AGILE: ::windows_sys::core::HRESULT = -2147483620i32; +pub const RO_E_UNSUPPORTED_FROM_MTA: ::windows_sys::core::HRESULT = -2147483619i32; +pub const RPC_E_ACCESS_DENIED: ::windows_sys::core::HRESULT = -2147417829i32; +pub const RPC_E_ATTEMPTED_MULTITHREAD: ::windows_sys::core::HRESULT = -2147417854i32; +pub const RPC_E_CALL_CANCELED: ::windows_sys::core::HRESULT = -2147418110i32; +pub const RPC_E_CALL_COMPLETE: ::windows_sys::core::HRESULT = -2147417833i32; +pub const RPC_E_CALL_REJECTED: ::windows_sys::core::HRESULT = -2147418111i32; +pub const RPC_E_CANTCALLOUT_AGAIN: ::windows_sys::core::HRESULT = -2147418095i32; +pub const RPC_E_CANTCALLOUT_INASYNCCALL: ::windows_sys::core::HRESULT = -2147418108i32; +pub const RPC_E_CANTCALLOUT_INEXTERNALCALL: ::windows_sys::core::HRESULT = -2147418107i32; +pub const RPC_E_CANTCALLOUT_ININPUTSYNCCALL: ::windows_sys::core::HRESULT = -2147417843i32; +pub const RPC_E_CANTPOST_INSENDCALL: ::windows_sys::core::HRESULT = -2147418109i32; +pub const RPC_E_CANTTRANSMIT_CALL: ::windows_sys::core::HRESULT = -2147418102i32; +pub const RPC_E_CHANGED_MODE: ::windows_sys::core::HRESULT = -2147417850i32; +pub const RPC_E_CLIENT_CANTMARSHAL_DATA: ::windows_sys::core::HRESULT = -2147418101i32; +pub const RPC_E_CLIENT_CANTUNMARSHAL_DATA: ::windows_sys::core::HRESULT = -2147418100i32; +pub const RPC_E_CLIENT_DIED: ::windows_sys::core::HRESULT = -2147418104i32; +pub const RPC_E_CONNECTION_TERMINATED: ::windows_sys::core::HRESULT = -2147418106i32; +pub const RPC_E_DISCONNECTED: ::windows_sys::core::HRESULT = -2147417848i32; +pub const RPC_E_FAULT: ::windows_sys::core::HRESULT = -2147417852i32; +pub const RPC_E_FULLSIC_REQUIRED: ::windows_sys::core::HRESULT = -2147417823i32; +pub const RPC_E_INVALIDMETHOD: ::windows_sys::core::HRESULT = -2147417849i32; +pub const RPC_E_INVALID_CALLDATA: ::windows_sys::core::HRESULT = -2147417844i32; +pub const RPC_E_INVALID_DATA: ::windows_sys::core::HRESULT = -2147418097i32; +pub const RPC_E_INVALID_DATAPACKET: ::windows_sys::core::HRESULT = -2147418103i32; +pub const RPC_E_INVALID_EXTENSION: ::windows_sys::core::HRESULT = -2147417838i32; +pub const RPC_E_INVALID_HEADER: ::windows_sys::core::HRESULT = -2147417839i32; +pub const RPC_E_INVALID_IPID: ::windows_sys::core::HRESULT = -2147417837i32; +pub const RPC_E_INVALID_OBJECT: ::windows_sys::core::HRESULT = -2147417836i32; +pub const RPC_E_INVALID_OBJREF: ::windows_sys::core::HRESULT = -2147417827i32; +pub const RPC_E_INVALID_PARAMETER: ::windows_sys::core::HRESULT = -2147418096i32; +pub const RPC_E_INVALID_STD_NAME: ::windows_sys::core::HRESULT = -2147417822i32; +pub const RPC_E_NOT_REGISTERED: ::windows_sys::core::HRESULT = -2147417853i32; +pub const RPC_E_NO_CONTEXT: ::windows_sys::core::HRESULT = -2147417826i32; +pub const RPC_E_NO_GOOD_SECURITY_PACKAGES: ::windows_sys::core::HRESULT = -2147417830i32; +pub const RPC_E_NO_SYNC: ::windows_sys::core::HRESULT = -2147417824i32; +pub const RPC_E_OUT_OF_RESOURCES: ::windows_sys::core::HRESULT = -2147417855i32; +pub const RPC_E_REMOTE_DISABLED: ::windows_sys::core::HRESULT = -2147417828i32; +pub const RPC_E_RETRY: ::windows_sys::core::HRESULT = -2147417847i32; +pub const RPC_E_SERVERCALL_REJECTED: ::windows_sys::core::HRESULT = -2147417845i32; +pub const RPC_E_SERVERCALL_RETRYLATER: ::windows_sys::core::HRESULT = -2147417846i32; +pub const RPC_E_SERVERFAULT: ::windows_sys::core::HRESULT = -2147417851i32; +pub const RPC_E_SERVER_CANTMARSHAL_DATA: ::windows_sys::core::HRESULT = -2147418099i32; +pub const RPC_E_SERVER_CANTUNMARSHAL_DATA: ::windows_sys::core::HRESULT = -2147418098i32; +pub const RPC_E_SERVER_DIED: ::windows_sys::core::HRESULT = -2147418105i32; +pub const RPC_E_SERVER_DIED_DNE: ::windows_sys::core::HRESULT = -2147418094i32; +pub const RPC_E_SYS_CALL_FAILED: ::windows_sys::core::HRESULT = -2147417856i32; +pub const RPC_E_THREAD_NOT_INIT: ::windows_sys::core::HRESULT = -2147417841i32; +pub const RPC_E_TIMEOUT: ::windows_sys::core::HRESULT = -2147417825i32; +pub const RPC_E_TOO_LATE: ::windows_sys::core::HRESULT = -2147417831i32; +pub const RPC_E_UNEXPECTED: ::windows_sys::core::HRESULT = -2147352577i32; +pub const RPC_E_UNSECURE_CALL: ::windows_sys::core::HRESULT = -2147417832i32; +pub const RPC_E_VERSION_MISMATCH: ::windows_sys::core::HRESULT = -2147417840i32; +pub const RPC_E_WRONG_THREAD: ::windows_sys::core::HRESULT = -2147417842i32; +pub const RPC_NT_ADDRESS_ERROR: NTSTATUS = -1073610683i32; +pub const RPC_NT_ALREADY_LISTENING: NTSTATUS = -1073610738i32; +pub const RPC_NT_ALREADY_REGISTERED: NTSTATUS = -1073610740i32; +pub const RPC_NT_BAD_STUB_DATA: NTSTATUS = -1073545204i32; +pub const RPC_NT_BINDING_HAS_NO_AUTH: NTSTATUS = -1073610705i32; +pub const RPC_NT_BINDING_INCOMPLETE: NTSTATUS = -1073610671i32; +pub const RPC_NT_BYTE_COUNT_TOO_SMALL: NTSTATUS = -1073545205i32; +pub const RPC_NT_CALL_CANCELLED: NTSTATUS = -1073610672i32; +pub const RPC_NT_CALL_FAILED: NTSTATUS = -1073610725i32; +pub const RPC_NT_CALL_FAILED_DNE: NTSTATUS = -1073610724i32; +pub const RPC_NT_CALL_IN_PROGRESS: NTSTATUS = -1073610679i32; +pub const RPC_NT_CANNOT_SUPPORT: NTSTATUS = -1073610687i32; +pub const RPC_NT_CANT_CREATE_ENDPOINT: NTSTATUS = -1073610731i32; +pub const RPC_NT_COMM_FAILURE: NTSTATUS = -1073610670i32; +pub const RPC_NT_COOKIE_AUTH_FAILED: NTSTATUS = -1073610651i32; +pub const RPC_NT_DUPLICATE_ENDPOINT: NTSTATUS = -1073610711i32; +pub const RPC_NT_ENTRY_ALREADY_EXISTS: NTSTATUS = -1073610691i32; +pub const RPC_NT_ENTRY_NOT_FOUND: NTSTATUS = -1073610690i32; +pub const RPC_NT_ENUM_VALUE_OUT_OF_RANGE: NTSTATUS = -1073545206i32; +pub const RPC_NT_FP_DIV_ZERO: NTSTATUS = -1073610682i32; +pub const RPC_NT_FP_OVERFLOW: NTSTATUS = -1073610680i32; +pub const RPC_NT_FP_UNDERFLOW: NTSTATUS = -1073610681i32; +pub const RPC_NT_GROUP_MEMBER_NOT_FOUND: NTSTATUS = -1073610677i32; +pub const RPC_NT_INCOMPLETE_NAME: NTSTATUS = -1073610696i32; +pub const RPC_NT_INTERFACE_NOT_FOUND: NTSTATUS = -1073610692i32; +pub const RPC_NT_INTERNAL_ERROR: NTSTATUS = -1073610685i32; +pub const RPC_NT_INVALID_ASYNC_CALL: NTSTATUS = -1073610653i32; +pub const RPC_NT_INVALID_ASYNC_HANDLE: NTSTATUS = -1073610654i32; +pub const RPC_NT_INVALID_AUTH_IDENTITY: NTSTATUS = -1073610702i32; +pub const RPC_NT_INVALID_BINDING: NTSTATUS = -1073610749i32; +pub const RPC_NT_INVALID_BOUND: NTSTATUS = -1073610717i32; +pub const RPC_NT_INVALID_ENDPOINT_FORMAT: NTSTATUS = -1073610745i32; +pub const RPC_NT_INVALID_ES_ACTION: NTSTATUS = -1073545127i32; +pub const RPC_NT_INVALID_NAF_ID: NTSTATUS = -1073610688i32; +pub const RPC_NT_INVALID_NAME_SYNTAX: NTSTATUS = -1073610715i32; +pub const RPC_NT_INVALID_NETWORK_OPTIONS: NTSTATUS = -1073610727i32; +pub const RPC_NT_INVALID_NET_ADDR: NTSTATUS = -1073610744i32; +pub const RPC_NT_INVALID_OBJECT: NTSTATUS = -1073610675i32; +pub const RPC_NT_INVALID_PIPE_OBJECT: NTSTATUS = -1073545124i32; +pub const RPC_NT_INVALID_PIPE_OPERATION: NTSTATUS = -1073545123i32; +pub const RPC_NT_INVALID_RPC_PROTSEQ: NTSTATUS = -1073610747i32; +pub const RPC_NT_INVALID_STRING_BINDING: NTSTATUS = -1073610751i32; +pub const RPC_NT_INVALID_STRING_UUID: NTSTATUS = -1073610746i32; +pub const RPC_NT_INVALID_TAG: NTSTATUS = -1073610718i32; +pub const RPC_NT_INVALID_TIMEOUT: NTSTATUS = -1073610742i32; +pub const RPC_NT_INVALID_VERS_OPTION: NTSTATUS = -1073610695i32; +pub const RPC_NT_MAX_CALLS_TOO_SMALL: NTSTATUS = -1073610709i32; +pub const RPC_NT_NAME_SERVICE_UNAVAILABLE: NTSTATUS = -1073610689i32; +pub const RPC_NT_NOTHING_TO_EXPORT: NTSTATUS = -1073610697i32; +pub const RPC_NT_NOT_ALL_OBJS_UNEXPORTED: NTSTATUS = -1073610693i32; +pub const RPC_NT_NOT_CANCELLED: NTSTATUS = -1073610664i32; +pub const RPC_NT_NOT_LISTENING: NTSTATUS = -1073610736i32; +pub const RPC_NT_NOT_RPC_ERROR: NTSTATUS = -1073610667i32; +pub const RPC_NT_NO_BINDINGS: NTSTATUS = -1073610733i32; +pub const RPC_NT_NO_CALL_ACTIVE: NTSTATUS = -1073610726i32; +pub const RPC_NT_NO_CONTEXT_AVAILABLE: NTSTATUS = -1073610686i32; +pub const RPC_NT_NO_ENDPOINT_FOUND: NTSTATUS = -1073610743i32; +pub const RPC_NT_NO_ENTRY_NAME: NTSTATUS = -1073610716i32; +pub const RPC_NT_NO_INTERFACES: NTSTATUS = -1073610673i32; +pub const RPC_NT_NO_MORE_BINDINGS: NTSTATUS = -1073610678i32; +pub const RPC_NT_NO_MORE_ENTRIES: NTSTATUS = -1073545215i32; +pub const RPC_NT_NO_MORE_MEMBERS: NTSTATUS = -1073610694i32; +pub const RPC_NT_NO_PRINC_NAME: NTSTATUS = -1073610668i32; +pub const RPC_NT_NO_PROTSEQS: NTSTATUS = -1073610732i32; +pub const RPC_NT_NO_PROTSEQS_REGISTERED: NTSTATUS = -1073610737i32; +pub const RPC_NT_NULL_REF_POINTER: NTSTATUS = -1073545207i32; +pub const RPC_NT_OBJECT_NOT_FOUND: NTSTATUS = -1073610741i32; +pub const RPC_NT_OUT_OF_RESOURCES: NTSTATUS = -1073610730i32; +pub const RPC_NT_PIPE_CLOSED: NTSTATUS = -1073545121i32; +pub const RPC_NT_PIPE_DISCIPLINE_ERROR: NTSTATUS = -1073545120i32; +pub const RPC_NT_PIPE_EMPTY: NTSTATUS = -1073545119i32; +pub const RPC_NT_PROCNUM_OUT_OF_RANGE: NTSTATUS = -1073610706i32; +pub const RPC_NT_PROTOCOL_ERROR: NTSTATUS = -1073610723i32; +pub const RPC_NT_PROTSEQ_NOT_FOUND: NTSTATUS = -1073610707i32; +pub const RPC_NT_PROTSEQ_NOT_SUPPORTED: NTSTATUS = -1073610748i32; +pub const RPC_NT_PROXY_ACCESS_DENIED: NTSTATUS = -1073610652i32; +pub const RPC_NT_SEC_PKG_ERROR: NTSTATUS = -1073610665i32; +pub const RPC_NT_SEND_INCOMPLETE: NTSTATUS = 1073873071i32; +pub const RPC_NT_SERVER_TOO_BUSY: NTSTATUS = -1073610728i32; +pub const RPC_NT_SERVER_UNAVAILABLE: NTSTATUS = -1073610729i32; +pub const RPC_NT_SS_CANNOT_GET_CALL_HANDLE: NTSTATUS = -1073545208i32; +pub const RPC_NT_SS_CHAR_TRANS_OPEN_FAIL: NTSTATUS = -1073545214i32; +pub const RPC_NT_SS_CHAR_TRANS_SHORT_FILE: NTSTATUS = -1073545213i32; +pub const RPC_NT_SS_CONTEXT_DAMAGED: NTSTATUS = -1073545210i32; +pub const RPC_NT_SS_CONTEXT_MISMATCH: NTSTATUS = -1073545211i32; +pub const RPC_NT_SS_HANDLES_MISMATCH: NTSTATUS = -1073545209i32; +pub const RPC_NT_SS_IN_NULL_CONTEXT: NTSTATUS = -1073545212i32; +pub const RPC_NT_STRING_TOO_LONG: NTSTATUS = -1073610708i32; +pub const RPC_NT_TYPE_ALREADY_REGISTERED: NTSTATUS = -1073610739i32; +pub const RPC_NT_UNKNOWN_AUTHN_LEVEL: NTSTATUS = -1073610703i32; +pub const RPC_NT_UNKNOWN_AUTHN_SERVICE: NTSTATUS = -1073610704i32; +pub const RPC_NT_UNKNOWN_AUTHN_TYPE: NTSTATUS = -1073610710i32; +pub const RPC_NT_UNKNOWN_AUTHZ_SERVICE: NTSTATUS = -1073610701i32; +pub const RPC_NT_UNKNOWN_IF: NTSTATUS = -1073610734i32; +pub const RPC_NT_UNKNOWN_MGR_TYPE: NTSTATUS = -1073610735i32; +pub const RPC_NT_UNSUPPORTED_AUTHN_LEVEL: NTSTATUS = -1073610669i32; +pub const RPC_NT_UNSUPPORTED_NAME_SYNTAX: NTSTATUS = -1073610714i32; +pub const RPC_NT_UNSUPPORTED_TRANS_SYN: NTSTATUS = -1073610721i32; +pub const RPC_NT_UNSUPPORTED_TYPE: NTSTATUS = -1073610719i32; +pub const RPC_NT_UUID_LOCAL_ONLY: NTSTATUS = 1073872982i32; +pub const RPC_NT_UUID_NO_ADDRESS: NTSTATUS = -1073610712i32; +pub const RPC_NT_WRONG_ES_VERSION: NTSTATUS = -1073545126i32; +pub const RPC_NT_WRONG_KIND_OF_BINDING: NTSTATUS = -1073610750i32; +pub const RPC_NT_WRONG_PIPE_VERSION: NTSTATUS = -1073545122i32; +pub const RPC_NT_WRONG_STUB_VERSION: NTSTATUS = -1073545125i32; +pub const RPC_NT_ZERO_DIVIDE: NTSTATUS = -1073610684i32; +pub const RPC_S_CALLPENDING: ::windows_sys::core::HRESULT = -2147417835i32; +pub const RPC_S_WAITONTIMER: ::windows_sys::core::HRESULT = -2147417834i32; +pub const RPC_X_BAD_STUB_DATA: i32 = 1783i32; +pub const RPC_X_BYTE_COUNT_TOO_SMALL: i32 = 1782i32; +pub const RPC_X_ENUM_VALUE_OUT_OF_RANGE: i32 = 1781i32; +pub const RPC_X_INVALID_ES_ACTION: i32 = 1827i32; +pub const RPC_X_INVALID_PIPE_OBJECT: i32 = 1830i32; +pub const RPC_X_NO_MORE_ENTRIES: i32 = 1772i32; +pub const RPC_X_NULL_REF_POINTER: i32 = 1780i32; +pub const RPC_X_PIPE_CLOSED: i32 = 1916i32; +pub const RPC_X_PIPE_DISCIPLINE_ERROR: i32 = 1917i32; +pub const RPC_X_PIPE_EMPTY: i32 = 1918i32; +pub const RPC_X_SS_CANNOT_GET_CALL_HANDLE: i32 = 1779i32; +pub const RPC_X_SS_CHAR_TRANS_OPEN_FAIL: i32 = 1773i32; +pub const RPC_X_SS_CHAR_TRANS_SHORT_FILE: i32 = 1774i32; +pub const RPC_X_SS_CONTEXT_DAMAGED: i32 = 1777i32; +pub const RPC_X_SS_HANDLES_MISMATCH: i32 = 1778i32; +pub const RPC_X_SS_IN_NULL_CONTEXT: i32 = 1775i32; +pub const RPC_X_WRONG_ES_VERSION: i32 = 1828i32; +pub const RPC_X_WRONG_PIPE_ORDER: i32 = 1831i32; +pub const RPC_X_WRONG_PIPE_VERSION: i32 = 1832i32; +pub const RPC_X_WRONG_STUB_VERSION: i32 = 1829i32; +pub const SCARD_E_BAD_SEEK: ::windows_sys::core::HRESULT = -2146435031i32; +pub const SCARD_E_CANCELLED: ::windows_sys::core::HRESULT = -2146435070i32; +pub const SCARD_E_CANT_DISPOSE: ::windows_sys::core::HRESULT = -2146435058i32; +pub const SCARD_E_CARD_UNSUPPORTED: ::windows_sys::core::HRESULT = -2146435044i32; +pub const SCARD_E_CERTIFICATE_UNAVAILABLE: ::windows_sys::core::HRESULT = -2146435027i32; +pub const SCARD_E_COMM_DATA_LOST: ::windows_sys::core::HRESULT = -2146435025i32; +pub const SCARD_E_DIR_NOT_FOUND: ::windows_sys::core::HRESULT = -2146435037i32; +pub const SCARD_E_DUPLICATE_READER: ::windows_sys::core::HRESULT = -2146435045i32; +pub const SCARD_E_FILE_NOT_FOUND: ::windows_sys::core::HRESULT = -2146435036i32; +pub const SCARD_E_ICC_CREATEORDER: ::windows_sys::core::HRESULT = -2146435039i32; +pub const SCARD_E_ICC_INSTALLATION: ::windows_sys::core::HRESULT = -2146435040i32; +pub const SCARD_E_INSUFFICIENT_BUFFER: ::windows_sys::core::HRESULT = -2146435064i32; +pub const SCARD_E_INVALID_ATR: ::windows_sys::core::HRESULT = -2146435051i32; +pub const SCARD_E_INVALID_CHV: ::windows_sys::core::HRESULT = -2146435030i32; +pub const SCARD_E_INVALID_HANDLE: ::windows_sys::core::HRESULT = -2146435069i32; +pub const SCARD_E_INVALID_PARAMETER: ::windows_sys::core::HRESULT = -2146435068i32; +pub const SCARD_E_INVALID_TARGET: ::windows_sys::core::HRESULT = -2146435067i32; +pub const SCARD_E_INVALID_VALUE: ::windows_sys::core::HRESULT = -2146435055i32; +pub const SCARD_E_NOT_READY: ::windows_sys::core::HRESULT = -2146435056i32; +pub const SCARD_E_NOT_TRANSACTED: ::windows_sys::core::HRESULT = -2146435050i32; +pub const SCARD_E_NO_ACCESS: ::windows_sys::core::HRESULT = -2146435033i32; +pub const SCARD_E_NO_DIR: ::windows_sys::core::HRESULT = -2146435035i32; +pub const SCARD_E_NO_FILE: ::windows_sys::core::HRESULT = -2146435034i32; +pub const SCARD_E_NO_KEY_CONTAINER: ::windows_sys::core::HRESULT = -2146435024i32; +pub const SCARD_E_NO_MEMORY: ::windows_sys::core::HRESULT = -2146435066i32; +pub const SCARD_E_NO_PIN_CACHE: ::windows_sys::core::HRESULT = -2146435021i32; +pub const SCARD_E_NO_READERS_AVAILABLE: ::windows_sys::core::HRESULT = -2146435026i32; +pub const SCARD_E_NO_SERVICE: ::windows_sys::core::HRESULT = -2146435043i32; +pub const SCARD_E_NO_SMARTCARD: ::windows_sys::core::HRESULT = -2146435060i32; +pub const SCARD_E_NO_SUCH_CERTIFICATE: ::windows_sys::core::HRESULT = -2146435028i32; +pub const SCARD_E_PCI_TOO_SMALL: ::windows_sys::core::HRESULT = -2146435047i32; +pub const SCARD_E_PIN_CACHE_EXPIRED: ::windows_sys::core::HRESULT = -2146435022i32; +pub const SCARD_E_PROTO_MISMATCH: ::windows_sys::core::HRESULT = -2146435057i32; +pub const SCARD_E_READER_UNAVAILABLE: ::windows_sys::core::HRESULT = -2146435049i32; +pub const SCARD_E_READER_UNSUPPORTED: ::windows_sys::core::HRESULT = -2146435046i32; +pub const SCARD_E_READ_ONLY_CARD: ::windows_sys::core::HRESULT = -2146435020i32; +pub const SCARD_E_SERVER_TOO_BUSY: ::windows_sys::core::HRESULT = -2146435023i32; +pub const SCARD_E_SERVICE_STOPPED: ::windows_sys::core::HRESULT = -2146435042i32; +pub const SCARD_E_SHARING_VIOLATION: ::windows_sys::core::HRESULT = -2146435061i32; +pub const SCARD_E_SYSTEM_CANCELLED: ::windows_sys::core::HRESULT = -2146435054i32; +pub const SCARD_E_TIMEOUT: ::windows_sys::core::HRESULT = -2146435062i32; +pub const SCARD_E_UNEXPECTED: ::windows_sys::core::HRESULT = -2146435041i32; +pub const SCARD_E_UNKNOWN_CARD: ::windows_sys::core::HRESULT = -2146435059i32; +pub const SCARD_E_UNKNOWN_READER: ::windows_sys::core::HRESULT = -2146435063i32; +pub const SCARD_E_UNKNOWN_RES_MNG: ::windows_sys::core::HRESULT = -2146435029i32; +pub const SCARD_E_UNSUPPORTED_FEATURE: ::windows_sys::core::HRESULT = -2146435038i32; +pub const SCARD_E_WRITE_TOO_MANY: ::windows_sys::core::HRESULT = -2146435032i32; +pub const SCARD_F_COMM_ERROR: ::windows_sys::core::HRESULT = -2146435053i32; +pub const SCARD_F_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2146435071i32; +pub const SCARD_F_UNKNOWN_ERROR: ::windows_sys::core::HRESULT = -2146435052i32; +pub const SCARD_F_WAITED_TOO_LONG: ::windows_sys::core::HRESULT = -2146435065i32; +pub const SCARD_P_SHUTDOWN: ::windows_sys::core::HRESULT = -2146435048i32; +pub const SCARD_W_CACHE_ITEM_NOT_FOUND: ::windows_sys::core::HRESULT = -2146434960i32; +pub const SCARD_W_CACHE_ITEM_STALE: ::windows_sys::core::HRESULT = -2146434959i32; +pub const SCARD_W_CACHE_ITEM_TOO_BIG: ::windows_sys::core::HRESULT = -2146434958i32; +pub const SCARD_W_CANCELLED_BY_USER: ::windows_sys::core::HRESULT = -2146434962i32; +pub const SCARD_W_CARD_NOT_AUTHENTICATED: ::windows_sys::core::HRESULT = -2146434961i32; +pub const SCARD_W_CHV_BLOCKED: ::windows_sys::core::HRESULT = -2146434964i32; +pub const SCARD_W_EOF: ::windows_sys::core::HRESULT = -2146434963i32; +pub const SCARD_W_REMOVED_CARD: ::windows_sys::core::HRESULT = -2146434967i32; +pub const SCARD_W_RESET_CARD: ::windows_sys::core::HRESULT = -2146434968i32; +pub const SCARD_W_SECURITY_VIOLATION: ::windows_sys::core::HRESULT = -2146434966i32; +pub const SCARD_W_UNPOWERED_CARD: ::windows_sys::core::HRESULT = -2146434969i32; +pub const SCARD_W_UNRESPONSIVE_CARD: ::windows_sys::core::HRESULT = -2146434970i32; +pub const SCARD_W_UNSUPPORTED_CARD: ::windows_sys::core::HRESULT = -2146434971i32; +pub const SCARD_W_WRONG_CHV: ::windows_sys::core::HRESULT = -2146434965i32; +pub const SCHED_E_ACCOUNT_DBASE_CORRUPT: ::windows_sys::core::HRESULT = -2147216623i32; +pub const SCHED_E_ACCOUNT_INFORMATION_NOT_SET: ::windows_sys::core::HRESULT = -2147216625i32; +pub const SCHED_E_ACCOUNT_NAME_NOT_FOUND: ::windows_sys::core::HRESULT = -2147216624i32; +pub const SCHED_E_ALREADY_RUNNING: ::windows_sys::core::HRESULT = -2147216609i32; +pub const SCHED_E_CANNOT_OPEN_TASK: ::windows_sys::core::HRESULT = -2147216627i32; +pub const SCHED_E_DEPRECATED_FEATURE_USED: ::windows_sys::core::HRESULT = -2147216592i32; +pub const SCHED_E_INVALIDVALUE: ::windows_sys::core::HRESULT = -2147216616i32; +pub const SCHED_E_INVALID_TASK: ::windows_sys::core::HRESULT = -2147216626i32; +pub const SCHED_E_INVALID_TASK_HASH: ::windows_sys::core::HRESULT = -2147216607i32; +pub const SCHED_E_MALFORMEDXML: ::windows_sys::core::HRESULT = -2147216614i32; +pub const SCHED_E_MISSINGNODE: ::windows_sys::core::HRESULT = -2147216615i32; +pub const SCHED_E_NAMESPACE: ::windows_sys::core::HRESULT = -2147216617i32; +pub const SCHED_E_NO_SECURITY_SERVICES: ::windows_sys::core::HRESULT = -2147216622i32; +pub const SCHED_E_PAST_END_BOUNDARY: ::windows_sys::core::HRESULT = -2147216610i32; +pub const SCHED_E_SERVICE_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2147216606i32; +pub const SCHED_E_SERVICE_NOT_INSTALLED: ::windows_sys::core::HRESULT = -2147216628i32; +pub const SCHED_E_SERVICE_NOT_LOCALSYSTEM: i32 = 6200i32; +pub const SCHED_E_SERVICE_NOT_RUNNING: ::windows_sys::core::HRESULT = -2147216619i32; +pub const SCHED_E_SERVICE_TOO_BUSY: ::windows_sys::core::HRESULT = -2147216605i32; +pub const SCHED_E_START_ON_DEMAND: ::windows_sys::core::HRESULT = -2147216600i32; +pub const SCHED_E_TASK_ATTEMPTED: ::windows_sys::core::HRESULT = -2147216604i32; +pub const SCHED_E_TASK_DISABLED: ::windows_sys::core::HRESULT = -2147216602i32; +pub const SCHED_E_TASK_NOT_READY: ::windows_sys::core::HRESULT = -2147216630i32; +pub const SCHED_E_TASK_NOT_RUNNING: ::windows_sys::core::HRESULT = -2147216629i32; +pub const SCHED_E_TASK_NOT_UBPM_COMPAT: ::windows_sys::core::HRESULT = -2147216599i32; +pub const SCHED_E_TASK_NOT_V1_COMPAT: ::windows_sys::core::HRESULT = -2147216601i32; +pub const SCHED_E_TOO_MANY_NODES: ::windows_sys::core::HRESULT = -2147216611i32; +pub const SCHED_E_TRIGGER_NOT_FOUND: ::windows_sys::core::HRESULT = -2147216631i32; +pub const SCHED_E_UNEXPECTEDNODE: ::windows_sys::core::HRESULT = -2147216618i32; +pub const SCHED_E_UNKNOWN_OBJECT_VERSION: ::windows_sys::core::HRESULT = -2147216621i32; +pub const SCHED_E_UNSUPPORTED_ACCOUNT_OPTION: ::windows_sys::core::HRESULT = -2147216620i32; +pub const SCHED_E_USER_NOT_LOGGED_ON: ::windows_sys::core::HRESULT = -2147216608i32; +pub const SCHED_S_BATCH_LOGON_PROBLEM: ::windows_sys::core::HRESULT = 267036i32; +pub const SCHED_S_EVENT_TRIGGER: ::windows_sys::core::HRESULT = 267016i32; +pub const SCHED_S_SOME_TRIGGERS_FAILED: ::windows_sys::core::HRESULT = 267035i32; +pub const SCHED_S_TASK_DISABLED: ::windows_sys::core::HRESULT = 267010i32; +pub const SCHED_S_TASK_HAS_NOT_RUN: ::windows_sys::core::HRESULT = 267011i32; +pub const SCHED_S_TASK_NOT_SCHEDULED: ::windows_sys::core::HRESULT = 267013i32; +pub const SCHED_S_TASK_NO_MORE_RUNS: ::windows_sys::core::HRESULT = 267012i32; +pub const SCHED_S_TASK_NO_VALID_TRIGGERS: ::windows_sys::core::HRESULT = 267015i32; +pub const SCHED_S_TASK_QUEUED: ::windows_sys::core::HRESULT = 267045i32; +pub const SCHED_S_TASK_READY: ::windows_sys::core::HRESULT = 267008i32; +pub const SCHED_S_TASK_RUNNING: ::windows_sys::core::HRESULT = 267009i32; +pub const SCHED_S_TASK_TERMINATED: ::windows_sys::core::HRESULT = 267014i32; +pub const SDIAG_E_CANCELLED: i32 = -2143551232i32; +pub const SDIAG_E_CANNOTRUN: i32 = -2143551224i32; +pub const SDIAG_E_DISABLED: i32 = -2143551226i32; +pub const SDIAG_E_MANAGEDHOST: i32 = -2143551229i32; +pub const SDIAG_E_NOVERIFIER: i32 = -2143551228i32; +pub const SDIAG_E_POWERSHELL: i32 = -2143551230i32; +pub const SDIAG_E_RESOURCE: i32 = -2143551222i32; +pub const SDIAG_E_ROOTCAUSE: i32 = -2143551221i32; +pub const SDIAG_E_SCRIPT: i32 = -2143551231i32; +pub const SDIAG_E_TRUST: i32 = -2143551225i32; +pub const SDIAG_E_VERSION: i32 = -2143551223i32; +pub const SDIAG_S_CANNOTRUN: i32 = 3932421i32; +pub const SEARCH_E_NOMONIKER: ::windows_sys::core::HRESULT = -2147215711i32; +pub const SEARCH_E_NOREGION: ::windows_sys::core::HRESULT = -2147215710i32; +pub const SEARCH_S_NOMOREHITS: ::windows_sys::core::HRESULT = 267936i32; +pub const SEC_E_ALGORITHM_MISMATCH: ::windows_sys::core::HRESULT = -2146893007i32; +pub const SEC_E_APPLICATION_PROTOCOL_MISMATCH: ::windows_sys::core::HRESULT = -2146892953i32; +pub const SEC_E_BAD_BINDINGS: ::windows_sys::core::HRESULT = -2146892986i32; +pub const SEC_E_BAD_PKGID: ::windows_sys::core::HRESULT = -2146893034i32; +pub const SEC_E_BUFFER_TOO_SMALL: ::windows_sys::core::HRESULT = -2146893023i32; +pub const SEC_E_CANNOT_INSTALL: ::windows_sys::core::HRESULT = -2146893049i32; +pub const SEC_E_CANNOT_PACK: ::windows_sys::core::HRESULT = -2146893047i32; +pub const SEC_E_CERT_EXPIRED: ::windows_sys::core::HRESULT = -2146893016i32; +pub const SEC_E_CERT_UNKNOWN: ::windows_sys::core::HRESULT = -2146893017i32; +pub const SEC_E_CERT_WRONG_USAGE: ::windows_sys::core::HRESULT = -2146892983i32; +pub const SEC_E_CONTEXT_EXPIRED: ::windows_sys::core::HRESULT = -2146893033i32; +pub const SEC_E_CROSSREALM_DELEGATION_FAILURE: ::windows_sys::core::HRESULT = -2146892969i32; +pub const SEC_E_CRYPTO_SYSTEM_INVALID: ::windows_sys::core::HRESULT = -2146893001i32; +pub const SEC_E_DECRYPT_FAILURE: ::windows_sys::core::HRESULT = -2146893008i32; +pub const SEC_E_DELEGATION_POLICY: ::windows_sys::core::HRESULT = -2146892962i32; +pub const SEC_E_DELEGATION_REQUIRED: ::windows_sys::core::HRESULT = -2146892987i32; +pub const SEC_E_DOWNGRADE_DETECTED: ::windows_sys::core::HRESULT = -2146892976i32; +pub const SEC_E_ENCRYPT_FAILURE: ::windows_sys::core::HRESULT = -2146893015i32; +pub const SEC_E_EXT_BUFFER_TOO_SMALL: ::windows_sys::core::HRESULT = -2146892950i32; +pub const SEC_E_ILLEGAL_MESSAGE: ::windows_sys::core::HRESULT = -2146893018i32; +pub const SEC_E_INCOMPLETE_CREDENTIALS: ::windows_sys::core::HRESULT = -2146893024i32; +pub const SEC_E_INCOMPLETE_MESSAGE: ::windows_sys::core::HRESULT = -2146893032i32; +pub const SEC_E_INSUFFICIENT_BUFFERS: ::windows_sys::core::HRESULT = -2146892949i32; +pub const SEC_E_INSUFFICIENT_MEMORY: ::windows_sys::core::HRESULT = -2146893056i32; +pub const SEC_E_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2146893052i32; +pub const SEC_E_INVALID_HANDLE: ::windows_sys::core::HRESULT = -2146893055i32; +pub const SEC_E_INVALID_PARAMETER: ::windows_sys::core::HRESULT = -2146892963i32; +pub const SEC_E_INVALID_TOKEN: ::windows_sys::core::HRESULT = -2146893048i32; +pub const SEC_E_INVALID_UPN_NAME: ::windows_sys::core::HRESULT = -2146892951i32; +pub const SEC_E_ISSUING_CA_UNTRUSTED: ::windows_sys::core::HRESULT = -2146892974i32; +pub const SEC_E_ISSUING_CA_UNTRUSTED_KDC: ::windows_sys::core::HRESULT = -2146892967i32; +pub const SEC_E_KDC_CERT_EXPIRED: ::windows_sys::core::HRESULT = -2146892966i32; +pub const SEC_E_KDC_CERT_REVOKED: ::windows_sys::core::HRESULT = -2146892965i32; +pub const SEC_E_KDC_INVALID_REQUEST: ::windows_sys::core::HRESULT = -2146892992i32; +pub const SEC_E_KDC_UNABLE_TO_REFER: ::windows_sys::core::HRESULT = -2146892991i32; +pub const SEC_E_KDC_UNKNOWN_ETYPE: ::windows_sys::core::HRESULT = -2146892990i32; +pub const SEC_E_LOGON_DENIED: ::windows_sys::core::HRESULT = -2146893044i32; +pub const SEC_E_MAX_REFERRALS_EXCEEDED: ::windows_sys::core::HRESULT = -2146893000i32; +pub const SEC_E_MESSAGE_ALTERED: ::windows_sys::core::HRESULT = -2146893041i32; +pub const SEC_E_MULTIPLE_ACCOUNTS: ::windows_sys::core::HRESULT = -2146892985i32; +pub const SEC_E_MUST_BE_KDC: ::windows_sys::core::HRESULT = -2146892999i32; +pub const SEC_E_MUTUAL_AUTH_FAILED: ::windows_sys::core::HRESULT = -2146892957i32; +pub const SEC_E_NOT_OWNER: ::windows_sys::core::HRESULT = -2146893050i32; +pub const SEC_E_NOT_SUPPORTED: i32 = -2146893054i32; +pub const SEC_E_NO_AUTHENTICATING_AUTHORITY: ::windows_sys::core::HRESULT = -2146893039i32; +pub const SEC_E_NO_CONTEXT: ::windows_sys::core::HRESULT = -2146892959i32; +pub const SEC_E_NO_CREDENTIALS: ::windows_sys::core::HRESULT = -2146893042i32; +pub const SEC_E_NO_IMPERSONATION: ::windows_sys::core::HRESULT = -2146893045i32; +pub const SEC_E_NO_IP_ADDRESSES: ::windows_sys::core::HRESULT = -2146893003i32; +pub const SEC_E_NO_KERB_KEY: ::windows_sys::core::HRESULT = -2146892984i32; +pub const SEC_E_NO_PA_DATA: ::windows_sys::core::HRESULT = -2146892996i32; +pub const SEC_E_NO_S4U_PROT_SUPPORT: ::windows_sys::core::HRESULT = -2146892970i32; +pub const SEC_E_NO_SPM: i32 = -2146893052i32; +pub const SEC_E_NO_TGT_REPLY: ::windows_sys::core::HRESULT = -2146893004i32; +pub const SEC_E_OK: ::windows_sys::core::HRESULT = 0i32; +pub const SEC_E_ONLY_HTTPS_ALLOWED: ::windows_sys::core::HRESULT = -2146892955i32; +pub const SEC_E_OUT_OF_SEQUENCE: ::windows_sys::core::HRESULT = -2146893040i32; +pub const SEC_E_PKINIT_CLIENT_FAILURE: ::windows_sys::core::HRESULT = -2146892972i32; +pub const SEC_E_PKINIT_NAME_MISMATCH: ::windows_sys::core::HRESULT = -2146892995i32; +pub const SEC_E_PKU2U_CERT_FAILURE: ::windows_sys::core::HRESULT = -2146892958i32; +pub const SEC_E_POLICY_NLTM_ONLY: ::windows_sys::core::HRESULT = -2146892961i32; +pub const SEC_E_QOP_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2146893046i32; +pub const SEC_E_REVOCATION_OFFLINE_C: ::windows_sys::core::HRESULT = -2146892973i32; +pub const SEC_E_REVOCATION_OFFLINE_KDC: ::windows_sys::core::HRESULT = -2146892968i32; +pub const SEC_E_SECPKG_NOT_FOUND: ::windows_sys::core::HRESULT = -2146893051i32; +pub const SEC_E_SECURITY_QOS_FAILED: ::windows_sys::core::HRESULT = -2146893006i32; +pub const SEC_E_SHUTDOWN_IN_PROGRESS: ::windows_sys::core::HRESULT = -2146892993i32; +pub const SEC_E_SMARTCARD_CERT_EXPIRED: ::windows_sys::core::HRESULT = -2146892971i32; +pub const SEC_E_SMARTCARD_CERT_REVOKED: ::windows_sys::core::HRESULT = -2146892975i32; +pub const SEC_E_SMARTCARD_LOGON_REQUIRED: ::windows_sys::core::HRESULT = -2146892994i32; +pub const SEC_E_STRONG_CRYPTO_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2146892998i32; +pub const SEC_E_TARGET_UNKNOWN: ::windows_sys::core::HRESULT = -2146893053i32; +pub const SEC_E_TIME_SKEW: ::windows_sys::core::HRESULT = -2146893020i32; +pub const SEC_E_TOO_MANY_PRINCIPALS: ::windows_sys::core::HRESULT = -2146892997i32; +pub const SEC_E_UNFINISHED_CONTEXT_DELETED: ::windows_sys::core::HRESULT = -2146893005i32; +pub const SEC_E_UNKNOWN_CREDENTIALS: ::windows_sys::core::HRESULT = -2146893043i32; +pub const SEC_E_UNSUPPORTED_FUNCTION: ::windows_sys::core::HRESULT = -2146893054i32; +pub const SEC_E_UNSUPPORTED_PREAUTH: ::windows_sys::core::HRESULT = -2146892989i32; +pub const SEC_E_UNTRUSTED_ROOT: ::windows_sys::core::HRESULT = -2146893019i32; +pub const SEC_E_WRONG_CREDENTIAL_HANDLE: ::windows_sys::core::HRESULT = -2146893002i32; +pub const SEC_E_WRONG_PRINCIPAL: ::windows_sys::core::HRESULT = -2146893022i32; +pub const SEC_I_ASYNC_CALL_PENDING: ::windows_sys::core::HRESULT = 590696i32; +pub const SEC_I_COMPLETE_AND_CONTINUE: ::windows_sys::core::HRESULT = 590612i32; +pub const SEC_I_COMPLETE_NEEDED: ::windows_sys::core::HRESULT = 590611i32; +pub const SEC_I_CONTEXT_EXPIRED: ::windows_sys::core::HRESULT = 590615i32; +pub const SEC_I_CONTINUE_NEEDED: ::windows_sys::core::HRESULT = 590610i32; +pub const SEC_I_CONTINUE_NEEDED_MESSAGE_OK: ::windows_sys::core::HRESULT = 590694i32; +pub const SEC_I_GENERIC_EXTENSION_RECEIVED: ::windows_sys::core::HRESULT = 590614i32; +pub const SEC_I_INCOMPLETE_CREDENTIALS: ::windows_sys::core::HRESULT = 590624i32; +pub const SEC_I_LOCAL_LOGON: ::windows_sys::core::HRESULT = 590613i32; +pub const SEC_I_MESSAGE_FRAGMENT: ::windows_sys::core::HRESULT = 590692i32; +pub const SEC_I_NO_LSA_CONTEXT: ::windows_sys::core::HRESULT = 590627i32; +pub const SEC_I_NO_RENEGOTIATION: ::windows_sys::core::HRESULT = 590688i32; +pub const SEC_I_RENEGOTIATE: ::windows_sys::core::HRESULT = 590625i32; +pub const SEC_I_SIGNATURE_NEEDED: ::windows_sys::core::HRESULT = 590684i32; +pub const SEVERITY_ERROR: u32 = 1u32; +pub const SEVERITY_SUCCESS: u32 = 0u32; +pub const SPAPI_E_AUTHENTICODE_DISALLOWED: ::windows_sys::core::HRESULT = -2146500032i32; +pub const SPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED: ::windows_sys::core::HRESULT = -2146500029i32; +pub const SPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER: ::windows_sys::core::HRESULT = -2146500031i32; +pub const SPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED: ::windows_sys::core::HRESULT = -2146500030i32; +pub const SPAPI_E_BAD_INTERFACE_INSTALLSECT: ::windows_sys::core::HRESULT = -2146500067i32; +pub const SPAPI_E_BAD_SECTION_NAME_LINE: ::windows_sys::core::HRESULT = -2146500607i32; +pub const SPAPI_E_BAD_SERVICE_INSTALLSECT: ::windows_sys::core::HRESULT = -2146500073i32; +pub const SPAPI_E_CANT_LOAD_CLASS_ICON: ::windows_sys::core::HRESULT = -2146500084i32; +pub const SPAPI_E_CANT_REMOVE_DEVINST: ::windows_sys::core::HRESULT = -2146500046i32; +pub const SPAPI_E_CLASS_MISMATCH: ::windows_sys::core::HRESULT = -2146500095i32; +pub const SPAPI_E_DEVICE_INSTALLER_NOT_READY: ::windows_sys::core::HRESULT = -2146500026i32; +pub const SPAPI_E_DEVICE_INSTALL_BLOCKED: ::windows_sys::core::HRESULT = -2146500024i32; +pub const SPAPI_E_DEVICE_INTERFACE_ACTIVE: ::windows_sys::core::HRESULT = -2146500069i32; +pub const SPAPI_E_DEVICE_INTERFACE_REMOVED: ::windows_sys::core::HRESULT = -2146500068i32; +pub const SPAPI_E_DEVINFO_DATA_LOCKED: ::windows_sys::core::HRESULT = -2146500077i32; +pub const SPAPI_E_DEVINFO_LIST_LOCKED: ::windows_sys::core::HRESULT = -2146500078i32; +pub const SPAPI_E_DEVINFO_NOT_REGISTERED: ::windows_sys::core::HRESULT = -2146500088i32; +pub const SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE: ::windows_sys::core::HRESULT = -2146500048i32; +pub const SPAPI_E_DEVINST_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2146500089i32; +pub const SPAPI_E_DI_BAD_PATH: ::windows_sys::core::HRESULT = -2146500076i32; +pub const SPAPI_E_DI_DONT_INSTALL: ::windows_sys::core::HRESULT = -2146500053i32; +pub const SPAPI_E_DI_DO_DEFAULT: ::windows_sys::core::HRESULT = -2146500082i32; +pub const SPAPI_E_DI_FUNCTION_OBSOLETE: ::windows_sys::core::HRESULT = -2146500034i32; +pub const SPAPI_E_DI_NOFILECOPY: ::windows_sys::core::HRESULT = -2146500081i32; +pub const SPAPI_E_DI_POSTPROCESSING_REQUIRED: ::windows_sys::core::HRESULT = -2146500058i32; +pub const SPAPI_E_DRIVER_INSTALL_BLOCKED: ::windows_sys::core::HRESULT = -2146500023i32; +pub const SPAPI_E_DRIVER_NONNATIVE: ::windows_sys::core::HRESULT = -2146500044i32; +pub const SPAPI_E_DRIVER_STORE_ADD_FAILED: ::windows_sys::core::HRESULT = -2146500025i32; +pub const SPAPI_E_DRIVER_STORE_DELETE_FAILED: ::windows_sys::core::HRESULT = -2146500020i32; +pub const SPAPI_E_DUPLICATE_FOUND: ::windows_sys::core::HRESULT = -2146500094i32; +pub const SPAPI_E_ERROR_NOT_INSTALLED: ::windows_sys::core::HRESULT = -2146496512i32; +pub const SPAPI_E_EXPECTED_SECTION_NAME: ::windows_sys::core::HRESULT = -2146500608i32; +pub const SPAPI_E_FILEQUEUE_LOCKED: ::windows_sys::core::HRESULT = -2146500074i32; +pub const SPAPI_E_FILE_HASH_NOT_IN_CATALOG: ::windows_sys::core::HRESULT = -2146500021i32; +pub const SPAPI_E_GENERAL_SYNTAX: ::windows_sys::core::HRESULT = -2146500605i32; +pub const SPAPI_E_INCORRECTLY_COPIED_INF: ::windows_sys::core::HRESULT = -2146500041i32; +pub const SPAPI_E_INF_IN_USE_BY_DEVICES: ::windows_sys::core::HRESULT = -2146500035i32; +pub const SPAPI_E_INVALID_CLASS: ::windows_sys::core::HRESULT = -2146500090i32; +pub const SPAPI_E_INVALID_CLASS_INSTALLER: ::windows_sys::core::HRESULT = -2146500083i32; +pub const SPAPI_E_INVALID_COINSTALLER: ::windows_sys::core::HRESULT = -2146500057i32; +pub const SPAPI_E_INVALID_DEVINST_NAME: ::windows_sys::core::HRESULT = -2146500091i32; +pub const SPAPI_E_INVALID_FILTER_DRIVER: ::windows_sys::core::HRESULT = -2146500052i32; +pub const SPAPI_E_INVALID_HWPROFILE: ::windows_sys::core::HRESULT = -2146500080i32; +pub const SPAPI_E_INVALID_INF_LOGCONFIG: ::windows_sys::core::HRESULT = -2146500054i32; +pub const SPAPI_E_INVALID_MACHINENAME: ::windows_sys::core::HRESULT = -2146500064i32; +pub const SPAPI_E_INVALID_PROPPAGE_PROVIDER: ::windows_sys::core::HRESULT = -2146500060i32; +pub const SPAPI_E_INVALID_REFERENCE_STRING: ::windows_sys::core::HRESULT = -2146500065i32; +pub const SPAPI_E_INVALID_REG_PROPERTY: ::windows_sys::core::HRESULT = -2146500087i32; +pub const SPAPI_E_INVALID_TARGET: ::windows_sys::core::HRESULT = -2146500045i32; +pub const SPAPI_E_IN_WOW64: ::windows_sys::core::HRESULT = -2146500043i32; +pub const SPAPI_E_KEY_DOES_NOT_EXIST: ::windows_sys::core::HRESULT = -2146500092i32; +pub const SPAPI_E_LINE_NOT_FOUND: ::windows_sys::core::HRESULT = -2146500350i32; +pub const SPAPI_E_MACHINE_UNAVAILABLE: ::windows_sys::core::HRESULT = -2146500062i32; +pub const SPAPI_E_NON_WINDOWS_DRIVER: ::windows_sys::core::HRESULT = -2146500050i32; +pub const SPAPI_E_NON_WINDOWS_NT_DRIVER: ::windows_sys::core::HRESULT = -2146500051i32; +pub const SPAPI_E_NOT_AN_INSTALLED_OEM_INF: ::windows_sys::core::HRESULT = -2146500036i32; +pub const SPAPI_E_NOT_DISABLEABLE: ::windows_sys::core::HRESULT = -2146500047i32; +pub const SPAPI_E_NO_ASSOCIATED_CLASS: ::windows_sys::core::HRESULT = -2146500096i32; +pub const SPAPI_E_NO_ASSOCIATED_SERVICE: ::windows_sys::core::HRESULT = -2146500071i32; +pub const SPAPI_E_NO_AUTHENTICODE_CATALOG: ::windows_sys::core::HRESULT = -2146500033i32; +pub const SPAPI_E_NO_BACKUP: ::windows_sys::core::HRESULT = -2146500349i32; +pub const SPAPI_E_NO_CATALOG_FOR_OEM_INF: ::windows_sys::core::HRESULT = -2146500049i32; +pub const SPAPI_E_NO_CLASSINSTALL_PARAMS: ::windows_sys::core::HRESULT = -2146500075i32; +pub const SPAPI_E_NO_CLASS_DRIVER_LIST: ::windows_sys::core::HRESULT = -2146500072i32; +pub const SPAPI_E_NO_COMPAT_DRIVERS: ::windows_sys::core::HRESULT = -2146500056i32; +pub const SPAPI_E_NO_CONFIGMGR_SERVICES: ::windows_sys::core::HRESULT = -2146500061i32; +pub const SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE: ::windows_sys::core::HRESULT = -2146500070i32; +pub const SPAPI_E_NO_DEVICE_ICON: ::windows_sys::core::HRESULT = -2146500055i32; +pub const SPAPI_E_NO_DEVICE_SELECTED: ::windows_sys::core::HRESULT = -2146500079i32; +pub const SPAPI_E_NO_DRIVER_SELECTED: ::windows_sys::core::HRESULT = -2146500093i32; +pub const SPAPI_E_NO_INF: ::windows_sys::core::HRESULT = -2146500086i32; +pub const SPAPI_E_NO_SUCH_DEVICE_INTERFACE: ::windows_sys::core::HRESULT = -2146500059i32; +pub const SPAPI_E_NO_SUCH_DEVINST: ::windows_sys::core::HRESULT = -2146500085i32; +pub const SPAPI_E_NO_SUCH_INTERFACE_CLASS: ::windows_sys::core::HRESULT = -2146500066i32; +pub const SPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE: ::windows_sys::core::HRESULT = -2146500027i32; +pub const SPAPI_E_PNP_REGISTRY_ERROR: ::windows_sys::core::HRESULT = -2146500038i32; +pub const SPAPI_E_REMOTE_COMM_FAILURE: ::windows_sys::core::HRESULT = -2146500063i32; +pub const SPAPI_E_REMOTE_REQUEST_UNSUPPORTED: ::windows_sys::core::HRESULT = -2146500037i32; +pub const SPAPI_E_SCE_DISABLED: ::windows_sys::core::HRESULT = -2146500040i32; +pub const SPAPI_E_SECTION_NAME_TOO_LONG: ::windows_sys::core::HRESULT = -2146500606i32; +pub const SPAPI_E_SECTION_NOT_FOUND: ::windows_sys::core::HRESULT = -2146500351i32; +pub const SPAPI_E_SET_SYSTEM_RESTORE_POINT: ::windows_sys::core::HRESULT = -2146500042i32; +pub const SPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH: ::windows_sys::core::HRESULT = -2146500028i32; +pub const SPAPI_E_UNKNOWN_EXCEPTION: ::windows_sys::core::HRESULT = -2146500039i32; +pub const SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW: ::windows_sys::core::HRESULT = -2146499840i32; +pub const SPAPI_E_WRONG_INF_STYLE: ::windows_sys::core::HRESULT = -2146500352i32; +pub const SPAPI_E_WRONG_INF_TYPE: ::windows_sys::core::HRESULT = -2146500022i32; +pub const SQLITE_E_ABORT: ::windows_sys::core::HRESULT = -2018574332i32; +pub const SQLITE_E_ABORT_ROLLBACK: ::windows_sys::core::HRESULT = -2018573820i32; +pub const SQLITE_E_AUTH: ::windows_sys::core::HRESULT = -2018574313i32; +pub const SQLITE_E_BUSY: ::windows_sys::core::HRESULT = -2018574331i32; +pub const SQLITE_E_BUSY_RECOVERY: ::windows_sys::core::HRESULT = -2018574075i32; +pub const SQLITE_E_BUSY_SNAPSHOT: ::windows_sys::core::HRESULT = -2018573819i32; +pub const SQLITE_E_CANTOPEN: ::windows_sys::core::HRESULT = -2018574322i32; +pub const SQLITE_E_CANTOPEN_CONVPATH: ::windows_sys::core::HRESULT = -2018573298i32; +pub const SQLITE_E_CANTOPEN_FULLPATH: ::windows_sys::core::HRESULT = -2018573554i32; +pub const SQLITE_E_CANTOPEN_ISDIR: ::windows_sys::core::HRESULT = -2018573810i32; +pub const SQLITE_E_CANTOPEN_NOTEMPDIR: ::windows_sys::core::HRESULT = -2018574066i32; +pub const SQLITE_E_CONSTRAINT: ::windows_sys::core::HRESULT = -2018574317i32; +pub const SQLITE_E_CONSTRAINT_CHECK: ::windows_sys::core::HRESULT = -2018574061i32; +pub const SQLITE_E_CONSTRAINT_COMMITHOOK: ::windows_sys::core::HRESULT = -2018573805i32; +pub const SQLITE_E_CONSTRAINT_FOREIGNKEY: ::windows_sys::core::HRESULT = -2018573549i32; +pub const SQLITE_E_CONSTRAINT_FUNCTION: ::windows_sys::core::HRESULT = -2018573293i32; +pub const SQLITE_E_CONSTRAINT_NOTNULL: ::windows_sys::core::HRESULT = -2018573037i32; +pub const SQLITE_E_CONSTRAINT_PRIMARYKEY: ::windows_sys::core::HRESULT = -2018572781i32; +pub const SQLITE_E_CONSTRAINT_ROWID: ::windows_sys::core::HRESULT = -2018571757i32; +pub const SQLITE_E_CONSTRAINT_TRIGGER: ::windows_sys::core::HRESULT = -2018572525i32; +pub const SQLITE_E_CONSTRAINT_UNIQUE: ::windows_sys::core::HRESULT = -2018572269i32; +pub const SQLITE_E_CONSTRAINT_VTAB: ::windows_sys::core::HRESULT = -2018572013i32; +pub const SQLITE_E_CORRUPT: ::windows_sys::core::HRESULT = -2018574325i32; +pub const SQLITE_E_CORRUPT_VTAB: ::windows_sys::core::HRESULT = -2018574069i32; +pub const SQLITE_E_DONE: ::windows_sys::core::HRESULT = -2018574235i32; +pub const SQLITE_E_EMPTY: ::windows_sys::core::HRESULT = -2018574320i32; +pub const SQLITE_E_ERROR: ::windows_sys::core::HRESULT = -2018574335i32; +pub const SQLITE_E_FORMAT: ::windows_sys::core::HRESULT = -2018574312i32; +pub const SQLITE_E_FULL: ::windows_sys::core::HRESULT = -2018574323i32; +pub const SQLITE_E_INTERNAL: ::windows_sys::core::HRESULT = -2018574334i32; +pub const SQLITE_E_INTERRUPT: ::windows_sys::core::HRESULT = -2018574327i32; +pub const SQLITE_E_IOERR: ::windows_sys::core::HRESULT = -2018574326i32; +pub const SQLITE_E_IOERR_ACCESS: ::windows_sys::core::HRESULT = -2018570998i32; +pub const SQLITE_E_IOERR_AUTH: ::windows_sys::core::HRESULT = -2018567677i32; +pub const SQLITE_E_IOERR_BLOCKED: ::windows_sys::core::HRESULT = -2018571510i32; +pub const SQLITE_E_IOERR_CHECKRESERVEDLOCK: ::windows_sys::core::HRESULT = -2018570742i32; +pub const SQLITE_E_IOERR_CLOSE: ::windows_sys::core::HRESULT = -2018570230i32; +pub const SQLITE_E_IOERR_CONVPATH: ::windows_sys::core::HRESULT = -2018567670i32; +pub const SQLITE_E_IOERR_DELETE: ::windows_sys::core::HRESULT = -2018571766i32; +pub const SQLITE_E_IOERR_DELETE_NOENT: ::windows_sys::core::HRESULT = -2018568438i32; +pub const SQLITE_E_IOERR_DIR_CLOSE: ::windows_sys::core::HRESULT = -2018569974i32; +pub const SQLITE_E_IOERR_DIR_FSYNC: ::windows_sys::core::HRESULT = -2018573046i32; +pub const SQLITE_E_IOERR_FSTAT: ::windows_sys::core::HRESULT = -2018572534i32; +pub const SQLITE_E_IOERR_FSYNC: ::windows_sys::core::HRESULT = -2018573302i32; +pub const SQLITE_E_IOERR_GETTEMPPATH: ::windows_sys::core::HRESULT = -2018567926i32; +pub const SQLITE_E_IOERR_LOCK: ::windows_sys::core::HRESULT = -2018570486i32; +pub const SQLITE_E_IOERR_MMAP: ::windows_sys::core::HRESULT = -2018568182i32; +pub const SQLITE_E_IOERR_NOMEM: ::windows_sys::core::HRESULT = -2018571254i32; +pub const SQLITE_E_IOERR_RDLOCK: ::windows_sys::core::HRESULT = -2018572022i32; +pub const SQLITE_E_IOERR_READ: ::windows_sys::core::HRESULT = -2018574070i32; +pub const SQLITE_E_IOERR_SEEK: ::windows_sys::core::HRESULT = -2018568694i32; +pub const SQLITE_E_IOERR_SHMLOCK: ::windows_sys::core::HRESULT = -2018569206i32; +pub const SQLITE_E_IOERR_SHMMAP: ::windows_sys::core::HRESULT = -2018568950i32; +pub const SQLITE_E_IOERR_SHMOPEN: ::windows_sys::core::HRESULT = -2018569718i32; +pub const SQLITE_E_IOERR_SHMSIZE: ::windows_sys::core::HRESULT = -2018569462i32; +pub const SQLITE_E_IOERR_SHORT_READ: ::windows_sys::core::HRESULT = -2018573814i32; +pub const SQLITE_E_IOERR_TRUNCATE: ::windows_sys::core::HRESULT = -2018572790i32; +pub const SQLITE_E_IOERR_UNLOCK: ::windows_sys::core::HRESULT = -2018572278i32; +pub const SQLITE_E_IOERR_VNODE: ::windows_sys::core::HRESULT = -2018567678i32; +pub const SQLITE_E_IOERR_WRITE: ::windows_sys::core::HRESULT = -2018573558i32; +pub const SQLITE_E_LOCKED: ::windows_sys::core::HRESULT = -2018574330i32; +pub const SQLITE_E_LOCKED_SHAREDCACHE: ::windows_sys::core::HRESULT = -2018574074i32; +pub const SQLITE_E_MISMATCH: ::windows_sys::core::HRESULT = -2018574316i32; +pub const SQLITE_E_MISUSE: ::windows_sys::core::HRESULT = -2018574315i32; +pub const SQLITE_E_NOLFS: ::windows_sys::core::HRESULT = -2018574314i32; +pub const SQLITE_E_NOMEM: ::windows_sys::core::HRESULT = -2018574329i32; +pub const SQLITE_E_NOTADB: ::windows_sys::core::HRESULT = -2018574310i32; +pub const SQLITE_E_NOTFOUND: ::windows_sys::core::HRESULT = -2018574324i32; +pub const SQLITE_E_NOTICE: ::windows_sys::core::HRESULT = -2018574309i32; +pub const SQLITE_E_NOTICE_RECOVER_ROLLBACK: ::windows_sys::core::HRESULT = -2018573797i32; +pub const SQLITE_E_NOTICE_RECOVER_WAL: ::windows_sys::core::HRESULT = -2018574053i32; +pub const SQLITE_E_PERM: ::windows_sys::core::HRESULT = -2018574333i32; +pub const SQLITE_E_PROTOCOL: ::windows_sys::core::HRESULT = -2018574321i32; +pub const SQLITE_E_RANGE: ::windows_sys::core::HRESULT = -2018574311i32; +pub const SQLITE_E_READONLY: ::windows_sys::core::HRESULT = -2018574328i32; +pub const SQLITE_E_READONLY_CANTLOCK: ::windows_sys::core::HRESULT = -2018573816i32; +pub const SQLITE_E_READONLY_DBMOVED: ::windows_sys::core::HRESULT = -2018573304i32; +pub const SQLITE_E_READONLY_RECOVERY: ::windows_sys::core::HRESULT = -2018574072i32; +pub const SQLITE_E_READONLY_ROLLBACK: ::windows_sys::core::HRESULT = -2018573560i32; +pub const SQLITE_E_ROW: ::windows_sys::core::HRESULT = -2018574236i32; +pub const SQLITE_E_SCHEMA: ::windows_sys::core::HRESULT = -2018574319i32; +pub const SQLITE_E_TOOBIG: ::windows_sys::core::HRESULT = -2018574318i32; +pub const SQLITE_E_WARNING: ::windows_sys::core::HRESULT = -2018574308i32; +pub const SQLITE_E_WARNING_AUTOINDEX: ::windows_sys::core::HRESULT = -2018574052i32; +pub const STATEREPOSITORY_ERROR_CACHE_CORRUPTED: ::windows_sys::core::HRESULT = -2140733422i32; +pub const STATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED: ::windows_sys::core::HRESULT = -2140733435i32; +pub const STATEREPOSITORY_E_BLOCKED: ::windows_sys::core::HRESULT = -2140733434i32; +pub const STATEREPOSITORY_E_BUSY_RECOVERY_RETRY: ::windows_sys::core::HRESULT = -2140733432i32; +pub const STATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED: ::windows_sys::core::HRESULT = -2140733427i32; +pub const STATEREPOSITORY_E_BUSY_RETRY: ::windows_sys::core::HRESULT = -2140733433i32; +pub const STATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED: ::windows_sys::core::HRESULT = -2140733428i32; +pub const STATEREPOSITORY_E_CACHE_NOT_INIITALIZED: ::windows_sys::core::HRESULT = -2140733419i32; +pub const STATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE: ::windows_sys::core::HRESULT = -2140733439i32; +pub const STATEREPOSITORY_E_CONFIGURATION_INVALID: ::windows_sys::core::HRESULT = -2140733437i32; +pub const STATEREPOSITORY_E_DEPENDENCY_NOT_RESOLVED: ::windows_sys::core::HRESULT = -2140733418i32; +pub const STATEREPOSITORY_E_LOCKED_RETRY: ::windows_sys::core::HRESULT = -2140733431i32; +pub const STATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY: ::windows_sys::core::HRESULT = -2140733430i32; +pub const STATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED: ::windows_sys::core::HRESULT = -2140733425i32; +pub const STATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED: ::windows_sys::core::HRESULT = -2140733426i32; +pub const STATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS: ::windows_sys::core::HRESULT = -2140733424i32; +pub const STATEREPOSITORY_E_STATEMENT_INPROGRESS: ::windows_sys::core::HRESULT = -2140733438i32; +pub const STATEREPOSITORY_E_TRANSACTION_REQUIRED: ::windows_sys::core::HRESULT = -2140733429i32; +pub const STATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION: ::windows_sys::core::HRESULT = -2140733436i32; +pub const STATEREPOSITORY_TRANSACTION_CALLER_ID_CHANGED: ::windows_sys::core::HRESULT = 6750227i32; +pub const STATEREPOSITORY_TRANSACTION_IN_PROGRESS: ::windows_sys::core::HRESULT = -2140733420i32; +pub const STATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2140733423i32; +pub const STATUS_ABANDONED: NTSTATUS = 128i32; +pub const STATUS_ABANDONED_WAIT_0: NTSTATUS = 128i32; +pub const STATUS_ABANDONED_WAIT_63: NTSTATUS = 191i32; +pub const STATUS_ABANDON_HIBERFILE: NTSTATUS = 1073741875i32; +pub const STATUS_ABIOS_INVALID_COMMAND: NTSTATUS = -1073741549i32; +pub const STATUS_ABIOS_INVALID_LID: NTSTATUS = -1073741548i32; +pub const STATUS_ABIOS_INVALID_SELECTOR: NTSTATUS = -1073741546i32; +pub const STATUS_ABIOS_LID_ALREADY_OWNED: NTSTATUS = -1073741551i32; +pub const STATUS_ABIOS_LID_NOT_EXIST: NTSTATUS = -1073741552i32; +pub const STATUS_ABIOS_NOT_LID_OWNER: NTSTATUS = -1073741550i32; +pub const STATUS_ABIOS_NOT_PRESENT: NTSTATUS = -1073741553i32; +pub const STATUS_ABIOS_SELECTOR_NOT_AVAILABLE: NTSTATUS = -1073741547i32; +pub const STATUS_ACCESS_AUDIT_BY_POLICY: NTSTATUS = 1073741874i32; +pub const STATUS_ACCESS_DENIED: NTSTATUS = -1073741790i32; +pub const STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT: NTSTATUS = -1073740959i32; +pub const STATUS_ACCESS_DISABLED_BY_POLICY_OTHER: NTSTATUS = -1073740956i32; +pub const STATUS_ACCESS_DISABLED_BY_POLICY_PATH: NTSTATUS = -1073740958i32; +pub const STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER: NTSTATUS = -1073740957i32; +pub const STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY: NTSTATUS = -1073740942i32; +pub const STATUS_ACCESS_VIOLATION: NTSTATUS = -1073741819i32; +pub const STATUS_ACPI_ACQUIRE_GLOBAL_LOCK: NTSTATUS = -1072431086i32; +pub const STATUS_ACPI_ADDRESS_NOT_MAPPED: NTSTATUS = -1072431092i32; +pub const STATUS_ACPI_ALREADY_INITIALIZED: NTSTATUS = -1072431085i32; +pub const STATUS_ACPI_ASSERT_FAILED: NTSTATUS = -1072431101i32; +pub const STATUS_ACPI_FATAL: NTSTATUS = -1072431098i32; +pub const STATUS_ACPI_HANDLER_COLLISION: NTSTATUS = -1072431090i32; +pub const STATUS_ACPI_INCORRECT_ARGUMENT_COUNT: NTSTATUS = -1072431093i32; +pub const STATUS_ACPI_INVALID_ACCESS_SIZE: NTSTATUS = -1072431087i32; +pub const STATUS_ACPI_INVALID_ARGTYPE: NTSTATUS = -1072431096i32; +pub const STATUS_ACPI_INVALID_ARGUMENT: NTSTATUS = -1072431099i32; +pub const STATUS_ACPI_INVALID_DATA: NTSTATUS = -1072431089i32; +pub const STATUS_ACPI_INVALID_EVENTTYPE: NTSTATUS = -1072431091i32; +pub const STATUS_ACPI_INVALID_INDEX: NTSTATUS = -1072431100i32; +pub const STATUS_ACPI_INVALID_MUTEX_LEVEL: NTSTATUS = -1072431083i32; +pub const STATUS_ACPI_INVALID_OBJTYPE: NTSTATUS = -1072431095i32; +pub const STATUS_ACPI_INVALID_OPCODE: NTSTATUS = -1072431103i32; +pub const STATUS_ACPI_INVALID_REGION: NTSTATUS = -1072431088i32; +pub const STATUS_ACPI_INVALID_SUPERNAME: NTSTATUS = -1072431097i32; +pub const STATUS_ACPI_INVALID_TABLE: NTSTATUS = -1072431079i32; +pub const STATUS_ACPI_INVALID_TARGETTYPE: NTSTATUS = -1072431094i32; +pub const STATUS_ACPI_MUTEX_NOT_OWNED: NTSTATUS = -1072431082i32; +pub const STATUS_ACPI_MUTEX_NOT_OWNER: NTSTATUS = -1072431081i32; +pub const STATUS_ACPI_NOT_INITIALIZED: NTSTATUS = -1072431084i32; +pub const STATUS_ACPI_POWER_REQUEST_FAILED: NTSTATUS = -1072431071i32; +pub const STATUS_ACPI_REG_HANDLER_FAILED: NTSTATUS = -1072431072i32; +pub const STATUS_ACPI_RS_ACCESS: NTSTATUS = -1072431080i32; +pub const STATUS_ACPI_STACK_OVERFLOW: NTSTATUS = -1072431102i32; +pub const STATUS_ADAPTER_HARDWARE_ERROR: NTSTATUS = -1073741630i32; +pub const STATUS_ADDRESS_ALREADY_ASSOCIATED: NTSTATUS = -1073741256i32; +pub const STATUS_ADDRESS_ALREADY_EXISTS: NTSTATUS = -1073741302i32; +pub const STATUS_ADDRESS_CLOSED: NTSTATUS = -1073741301i32; +pub const STATUS_ADDRESS_NOT_ASSOCIATED: NTSTATUS = -1073741255i32; +pub const STATUS_ADMINLESS_ACCESS_DENIED: NTSTATUS = -1073700348i32; +pub const STATUS_ADVANCED_INSTALLER_FAILED: NTSTATUS = -1072365536i32; +pub const STATUS_AGENTS_EXHAUSTED: NTSTATUS = -1073741691i32; +pub const STATUS_ALERTED: NTSTATUS = 257i32; +pub const STATUS_ALIAS_EXISTS: NTSTATUS = -1073741484i32; +pub const STATUS_ALLOCATE_BUCKET: NTSTATUS = -1073741265i32; +pub const STATUS_ALLOTTED_SPACE_EXCEEDED: NTSTATUS = -1073741671i32; +pub const STATUS_ALL_SIDS_FILTERED: NTSTATUS = -1073740962i32; +pub const STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED: NTSTATUS = -1073740798i32; +pub const STATUS_ALPC_CHECK_COMPLETION_LIST: NTSTATUS = 1073741872i32; +pub const STATUS_ALREADY_COMMITTED: NTSTATUS = -1073741791i32; +pub const STATUS_ALREADY_COMPLETE: NTSTATUS = 255i32; +pub const STATUS_ALREADY_DISCONNECTED: NTSTATUS = -2147483611i32; +pub const STATUS_ALREADY_HAS_STREAM_ID: NTSTATUS = -1073740530i32; +pub const STATUS_ALREADY_INITIALIZED: NTSTATUS = -1073740528i32; +pub const STATUS_ALREADY_REGISTERED: NTSTATUS = -1073740008i32; +pub const STATUS_ALREADY_WIN32: NTSTATUS = 1073741851i32; +pub const STATUS_AMBIGUOUS_SYSTEM_DEVICE: NTSTATUS = -1073740719i32; +pub const STATUS_APC_RETURNED_WHILE_IMPERSONATING: NTSTATUS = -1073740015i32; +pub const STATUS_APISET_NOT_HOSTED: NTSTATUS = -1073740671i32; +pub const STATUS_APISET_NOT_PRESENT: NTSTATUS = -1073740670i32; +pub const STATUS_APPEXEC_APP_COMPAT_BLOCK: NTSTATUS = -1058275320i32; +pub const STATUS_APPEXEC_CALLER_WAIT_TIMEOUT: NTSTATUS = -1058275319i32; +pub const STATUS_APPEXEC_CALLER_WAIT_TIMEOUT_LICENSING: NTSTATUS = -1058275317i32; +pub const STATUS_APPEXEC_CALLER_WAIT_TIMEOUT_RESOURCES: NTSTATUS = -1058275316i32; +pub const STATUS_APPEXEC_CALLER_WAIT_TIMEOUT_TERMINATION: NTSTATUS = -1058275318i32; +pub const STATUS_APPEXEC_CONDITION_NOT_SATISFIED: NTSTATUS = -1058275328i32; +pub const STATUS_APPEXEC_HANDLE_INVALIDATED: NTSTATUS = -1058275327i32; +pub const STATUS_APPEXEC_HOST_ID_MISMATCH: NTSTATUS = -1058275322i32; +pub const STATUS_APPEXEC_INVALID_HOST_GENERATION: NTSTATUS = -1058275326i32; +pub const STATUS_APPEXEC_INVALID_HOST_STATE: NTSTATUS = -1058275324i32; +pub const STATUS_APPEXEC_NO_DONOR: NTSTATUS = -1058275323i32; +pub const STATUS_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION: NTSTATUS = -1058275325i32; +pub const STATUS_APPEXEC_UNKNOWN_USER: NTSTATUS = -1058275321i32; +pub const STATUS_APPHELP_BLOCK: NTSTATUS = -1073740963i32; +pub const STATUS_APPX_FILE_NOT_ENCRYPTED: NTSTATUS = -1073740634i32; +pub const STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN: NTSTATUS = -1073740673i32; +pub const STATUS_APP_DATA_CORRUPT: NTSTATUS = -1073700221i32; +pub const STATUS_APP_DATA_EXPIRED: NTSTATUS = -1073700222i32; +pub const STATUS_APP_DATA_LIMIT_EXCEEDED: NTSTATUS = -1073700220i32; +pub const STATUS_APP_DATA_NOT_FOUND: NTSTATUS = -1073700223i32; +pub const STATUS_APP_DATA_REBOOT_REQUIRED: NTSTATUS = -1073700219i32; +pub const STATUS_APP_INIT_FAILURE: NTSTATUS = -1073741499i32; +pub const STATUS_ARBITRATION_UNHANDLED: NTSTATUS = 1073741862i32; +pub const STATUS_ARRAY_BOUNDS_EXCEEDED: NTSTATUS = -1073741684i32; +pub const STATUS_ASSERTION_FAILURE: NTSTATUS = -1073740768i32; +pub const STATUS_ATTACHED_EXECUTABLE_MEMORY_WRITE: NTSTATUS = -1073739995i32; +pub const STATUS_ATTRIBUTE_NOT_PRESENT: NTSTATUS = -1073740532i32; +pub const STATUS_AUDIO_ENGINE_NODE_NOT_FOUND: NTSTATUS = -1069285375i32; +pub const STATUS_AUDITING_DISABLED: NTSTATUS = -1073740970i32; +pub const STATUS_AUDIT_FAILED: NTSTATUS = -1073741244i32; +pub const STATUS_AUTHIP_FAILURE: NTSTATUS = -1073700730i32; +pub const STATUS_AUTH_TAG_MISMATCH: NTSTATUS = -1073700862i32; +pub const STATUS_BACKUP_CONTROLLER: NTSTATUS = -1073741433i32; +pub const STATUS_BAD_BINDINGS: NTSTATUS = -1073740965i32; +pub const STATUS_BAD_CLUSTERS: NTSTATUS = -1073739771i32; +pub const STATUS_BAD_COMPRESSION_BUFFER: NTSTATUS = -1073741246i32; +pub const STATUS_BAD_CURRENT_DIRECTORY: NTSTATUS = 1073741831i32; +pub const STATUS_BAD_DATA: NTSTATUS = -1073739509i32; +pub const STATUS_BAD_DESCRIPTOR_FORMAT: NTSTATUS = -1073741593i32; +pub const STATUS_BAD_DEVICE_TYPE: NTSTATUS = -1073741621i32; +pub const STATUS_BAD_DLL_ENTRYPOINT: NTSTATUS = -1073741231i32; +pub const STATUS_BAD_FILE_TYPE: NTSTATUS = -1073739517i32; +pub const STATUS_BAD_FUNCTION_TABLE: NTSTATUS = -1073741569i32; +pub const STATUS_BAD_IMPERSONATION_LEVEL: NTSTATUS = -1073741659i32; +pub const STATUS_BAD_INHERITANCE_ACL: NTSTATUS = -1073741699i32; +pub const STATUS_BAD_INITIAL_PC: NTSTATUS = -1073741814i32; +pub const STATUS_BAD_INITIAL_STACK: NTSTATUS = -1073741815i32; +pub const STATUS_BAD_KEY: NTSTATUS = -1073739510i32; +pub const STATUS_BAD_LOGON_SESSION_STATE: NTSTATUS = -1073741564i32; +pub const STATUS_BAD_MASTER_BOOT_RECORD: NTSTATUS = -1073741655i32; +pub const STATUS_BAD_MCFG_TABLE: NTSTATUS = -1073739512i32; +pub const STATUS_BAD_NETWORK_NAME: NTSTATUS = -1073741620i32; +pub const STATUS_BAD_NETWORK_PATH: NTSTATUS = -1073741634i32; +pub const STATUS_BAD_REMOTE_ADAPTER: NTSTATUS = -1073741627i32; +pub const STATUS_BAD_SERVICE_ENTRYPOINT: NTSTATUS = -1073741230i32; +pub const STATUS_BAD_STACK: NTSTATUS = -1073741784i32; +pub const STATUS_BAD_TOKEN_TYPE: NTSTATUS = -1073741656i32; +pub const STATUS_BAD_VALIDATION_CLASS: NTSTATUS = -1073741657i32; +pub const STATUS_BAD_WORKING_SET_LIMIT: NTSTATUS = -1073741748i32; +pub const STATUS_BCD_NOT_ALL_ENTRIES_IMPORTED: NTSTATUS = -2143748095i32; +pub const STATUS_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED: NTSTATUS = -2143748093i32; +pub const STATUS_BCD_TOO_MANY_ELEMENTS: NTSTATUS = -1070006270i32; +pub const STATUS_BEGINNING_OF_MEDIA: NTSTATUS = -2147483617i32; +pub const STATUS_BEYOND_VDL: NTSTATUS = -1073740750i32; +pub const STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT: NTSTATUS = -1073741458i32; +pub const STATUS_BIZRULES_NOT_ENABLED: NTSTATUS = 1073741876i32; +pub const STATUS_BLOCKED_BY_PARENTAL_CONTROLS: NTSTATUS = -1073740664i32; +pub const STATUS_BLOCK_SHARED: NTSTATUS = -1073739499i32; +pub const STATUS_BLOCK_SOURCE_WEAK_REFERENCE_INVALID: NTSTATUS = -1073739501i32; +pub const STATUS_BLOCK_TARGET_WEAK_REFERENCE_INVALID: NTSTATUS = -1073739500i32; +pub const STATUS_BLOCK_TOO_MANY_REFERENCES: NTSTATUS = -1073740660i32; +pub const STATUS_BLOCK_WEAK_REFERENCE_INVALID: NTSTATUS = -1073739502i32; +pub const STATUS_BREAKPOINT: NTSTATUS = -2147483645i32; +pub const STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND: NTSTATUS = -1069416438i32; +pub const STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG: NTSTATUS = -1069416437i32; +pub const STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION: NTSTATUS = -1069416443i32; +pub const STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION: NTSTATUS = -1069416440i32; +pub const STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION: NTSTATUS = -1069416433i32; +pub const STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE: NTSTATUS = -1069416436i32; +pub const STATUS_BTH_ATT_INSUFFICIENT_RESOURCES: NTSTATUS = -1069416431i32; +pub const STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH: NTSTATUS = -1069416435i32; +pub const STATUS_BTH_ATT_INVALID_HANDLE: NTSTATUS = -1069416447i32; +pub const STATUS_BTH_ATT_INVALID_OFFSET: NTSTATUS = -1069416441i32; +pub const STATUS_BTH_ATT_INVALID_PDU: NTSTATUS = -1069416444i32; +pub const STATUS_BTH_ATT_PREPARE_QUEUE_FULL: NTSTATUS = -1069416439i32; +pub const STATUS_BTH_ATT_READ_NOT_PERMITTED: NTSTATUS = -1069416446i32; +pub const STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED: NTSTATUS = -1069416442i32; +pub const STATUS_BTH_ATT_UNKNOWN_ERROR: NTSTATUS = -1069412352i32; +pub const STATUS_BTH_ATT_UNLIKELY: NTSTATUS = -1069416434i32; +pub const STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE: NTSTATUS = -1069416432i32; +pub const STATUS_BTH_ATT_WRITE_NOT_PERMITTED: NTSTATUS = -1069416445i32; +pub const STATUS_BUFFER_ALL_ZEROS: NTSTATUS = 279i32; +pub const STATUS_BUFFER_OVERFLOW: NTSTATUS = -2147483643i32; +pub const STATUS_BUFFER_TOO_SMALL: NTSTATUS = -1073741789i32; +pub const STATUS_BUS_RESET: NTSTATUS = -2147483619i32; +pub const STATUS_BYPASSIO_FLT_NOT_SUPPORTED: NTSTATUS = -1073740590i32; +pub const STATUS_CACHE_PAGE_LOCKED: NTSTATUS = 277i32; +pub const STATUS_CALLBACK_BYPASS: NTSTATUS = -1073740541i32; +pub const STATUS_CALLBACK_INVOKE_INLINE: NTSTATUS = -1073740661i32; +pub const STATUS_CALLBACK_POP_STACK: NTSTATUS = -1073740765i32; +pub const STATUS_CALLBACK_RETURNED_LANG: NTSTATUS = -1073740001i32; +pub const STATUS_CALLBACK_RETURNED_LDR_LOCK: NTSTATUS = -1073740002i32; +pub const STATUS_CALLBACK_RETURNED_PRI_BACK: NTSTATUS = -1073740000i32; +pub const STATUS_CALLBACK_RETURNED_THREAD_AFFINITY: NTSTATUS = -1073739999i32; +pub const STATUS_CALLBACK_RETURNED_THREAD_PRIORITY: NTSTATUS = -1073740005i32; +pub const STATUS_CALLBACK_RETURNED_TRANSACTION: NTSTATUS = -1073740003i32; +pub const STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING: NTSTATUS = -1073740016i32; +pub const STATUS_CANCELLED: NTSTATUS = -1073741536i32; +pub const STATUS_CANNOT_ABORT_TRANSACTIONS: NTSTATUS = -1072103347i32; +pub const STATUS_CANNOT_ACCEPT_TRANSACTED_WORK: NTSTATUS = -1072103348i32; +pub const STATUS_CANNOT_BREAK_OPLOCK: NTSTATUS = -1073739511i32; +pub const STATUS_CANNOT_DELETE: NTSTATUS = -1073741535i32; +pub const STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION: NTSTATUS = -1072103356i32; +pub const STATUS_CANNOT_GRANT_REQUESTED_OPLOCK: NTSTATUS = -2147483602i32; +pub const STATUS_CANNOT_IMPERSONATE: NTSTATUS = -1073741555i32; +pub const STATUS_CANNOT_LOAD_REGISTRY_FILE: NTSTATUS = -1073741288i32; +pub const STATUS_CANNOT_MAKE: NTSTATUS = -1073741078i32; +pub const STATUS_CANNOT_SWITCH_RUNLEVEL: NTSTATUS = -1073700543i32; +pub const STATUS_CANT_ACCESS_DOMAIN_INFO: NTSTATUS = -1073741606i32; +pub const STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY: NTSTATUS = -1072103369i32; +pub const STATUS_CANT_CLEAR_ENCRYPTION_FLAG: NTSTATUS = -1073740616i32; +pub const STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS: NTSTATUS = -1072103386i32; +pub const STATUS_CANT_CROSS_RM_BOUNDARY: NTSTATUS = -1072103368i32; +pub const STATUS_CANT_DISABLE_MANDATORY: NTSTATUS = -1073741731i32; +pub const STATUS_CANT_ENABLE_DENY_ONLY: NTSTATUS = -1073741133i32; +pub const STATUS_CANT_OPEN_ANONYMOUS: NTSTATUS = -1073741658i32; +pub const STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT: NTSTATUS = -1072103387i32; +pub const STATUS_CANT_RECOVER_WITH_HANDLE_OPEN: NTSTATUS = -2145845199i32; +pub const STATUS_CANT_TERMINATE_SELF: NTSTATUS = -1073741605i32; +pub const STATUS_CANT_WAIT: NTSTATUS = -1073741608i32; +pub const STATUS_CARDBUS_NOT_SUPPORTED: NTSTATUS = 1073741863i32; +pub const STATUS_CASE_DIFFERING_NAMES_IN_DIR: NTSTATUS = -1073740621i32; +pub const STATUS_CASE_SENSITIVE_PATH: NTSTATUS = -1073740614i32; +pub const STATUS_CC_NEEDS_CALLBACK_SECTION_DRAIN: NTSTATUS = -1073700856i32; +pub const STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE: NTSTATUS = -1073740012i32; +pub const STATUS_CERTIFICATE_VALIDATION_PREFERENCE_CONFLICT: NTSTATUS = -1073741387i32; +pub const STATUS_CHECKING_FILE_SYSTEM: NTSTATUS = 1073741844i32; +pub const STATUS_CHECKOUT_REQUIRED: NTSTATUS = -1073739518i32; +pub const STATUS_CHILD_MUST_BE_VOLATILE: NTSTATUS = -1073741439i32; +pub const STATUS_CHILD_PROCESS_BLOCKED: NTSTATUS = -1073740643i32; +pub const STATUS_CIMFS_IMAGE_CORRUPT: NTSTATUS = -1073692671i32; +pub const STATUS_CIMFS_IMAGE_VERSION_NOT_SUPPORTED: NTSTATUS = -1073692670i32; +pub const STATUS_CLEANER_CARTRIDGE_INSTALLED: NTSTATUS = -2147483609i32; +pub const STATUS_CLIENT_SERVER_PARAMETERS_INVALID: NTSTATUS = -1073741277i32; +pub const STATUS_CLIP_DEVICE_LICENSE_MISSING: NTSTATUS = -1058406397i32; +pub const STATUS_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID: NTSTATUS = -1058406395i32; +pub const STATUS_CLIP_LICENSE_DEVICE_ID_MISMATCH: NTSTATUS = -1058406390i32; +pub const STATUS_CLIP_LICENSE_EXPIRED: NTSTATUS = -1058406394i32; +pub const STATUS_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE: NTSTATUS = -1058406391i32; +pub const STATUS_CLIP_LICENSE_INVALID_SIGNATURE: NTSTATUS = -1058406396i32; +pub const STATUS_CLIP_LICENSE_NOT_FOUND: NTSTATUS = -1058406398i32; +pub const STATUS_CLIP_LICENSE_NOT_SIGNED: NTSTATUS = -1058406392i32; +pub const STATUS_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE: NTSTATUS = -1058406393i32; +pub const STATUS_CLOUD_FILE_ACCESS_DENIED: NTSTATUS = -1073688808i32; +pub const STATUS_CLOUD_FILE_ALREADY_CONNECTED: NTSTATUS = -1073688823i32; +pub const STATUS_CLOUD_FILE_AUTHENTICATION_FAILED: NTSTATUS = -1073688817i32; +pub const STATUS_CLOUD_FILE_CONNECTED_PROVIDER_ONLY: NTSTATUS = -1073688819i32; +pub const STATUS_CLOUD_FILE_DEHYDRATION_DISALLOWED: NTSTATUS = -1073688800i32; +pub const STATUS_CLOUD_FILE_INCOMPATIBLE_HARDLINKS: NTSTATUS = -1073688807i32; +pub const STATUS_CLOUD_FILE_INSUFFICIENT_RESOURCES: NTSTATUS = -1073688816i32; +pub const STATUS_CLOUD_FILE_INVALID_REQUEST: NTSTATUS = -1073688821i32; +pub const STATUS_CLOUD_FILE_IN_USE: NTSTATUS = -1073688812i32; +pub const STATUS_CLOUD_FILE_METADATA_CORRUPT: NTSTATUS = -1073688830i32; +pub const STATUS_CLOUD_FILE_METADATA_TOO_LARGE: NTSTATUS = -1073688829i32; +pub const STATUS_CLOUD_FILE_NETWORK_UNAVAILABLE: NTSTATUS = -1073688815i32; +pub const STATUS_CLOUD_FILE_NOT_IN_SYNC: NTSTATUS = -1073688824i32; +pub const STATUS_CLOUD_FILE_NOT_SUPPORTED: NTSTATUS = -1073688822i32; +pub const STATUS_CLOUD_FILE_NOT_UNDER_SYNC_ROOT: NTSTATUS = -1073688813i32; +pub const STATUS_CLOUD_FILE_PINNED: NTSTATUS = -1073688811i32; +pub const STATUS_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH: NTSTATUS = -2147430656i32; +pub const STATUS_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE: NTSTATUS = -2147430652i32; +pub const STATUS_CLOUD_FILE_PROPERTY_CORRUPT: NTSTATUS = -1073688809i32; +pub const STATUS_CLOUD_FILE_PROPERTY_LOCK_CONFLICT: NTSTATUS = -1073688806i32; +pub const STATUS_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED: NTSTATUS = -1073688826i32; +pub const STATUS_CLOUD_FILE_PROVIDER_NOT_RUNNING: NTSTATUS = -1073688831i32; +pub const STATUS_CLOUD_FILE_PROVIDER_TERMINATED: NTSTATUS = -1073688803i32; +pub const STATUS_CLOUD_FILE_READ_ONLY_VOLUME: NTSTATUS = -1073688820i32; +pub const STATUS_CLOUD_FILE_REQUEST_ABORTED: NTSTATUS = -1073688810i32; +pub const STATUS_CLOUD_FILE_REQUEST_CANCELED: NTSTATUS = -1073688805i32; +pub const STATUS_CLOUD_FILE_REQUEST_TIMEOUT: NTSTATUS = -1073688801i32; +pub const STATUS_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT: NTSTATUS = -1073688832i32; +pub const STATUS_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS: NTSTATUS = -2147430651i32; +pub const STATUS_CLOUD_FILE_UNSUCCESSFUL: NTSTATUS = -1073688814i32; +pub const STATUS_CLOUD_FILE_US_MESSAGE_TIMEOUT: NTSTATUS = -1073688799i32; +pub const STATUS_CLOUD_FILE_VALIDATION_FAILED: NTSTATUS = -1073688818i32; +pub const STATUS_CLUSTER_CAM_TICKET_REPLAY_DETECTED: NTSTATUS = -1072496591i32; +pub const STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR: NTSTATUS = -1072496607i32; +pub const STATUS_CLUSTER_CSV_INVALID_HANDLE: NTSTATUS = -1072496599i32; +pub const STATUS_CLUSTER_CSV_NOT_REDIRECTED: NTSTATUS = -1072496605i32; +pub const STATUS_CLUSTER_CSV_NO_SNAPSHOTS: NTSTATUS = -1072496601i32; +pub const STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS: NTSTATUS = -1072496608i32; +pub const STATUS_CLUSTER_CSV_REDIRECTED: NTSTATUS = -1072496606i32; +pub const STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS: NTSTATUS = -1072496603i32; +pub const STATUS_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR: NTSTATUS = -1072496592i32; +pub const STATUS_CLUSTER_CSV_VOLUME_DRAINING: NTSTATUS = -1072496604i32; +pub const STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL: NTSTATUS = -1072496602i32; +pub const STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL: NTSTATUS = -1072496615i32; +pub const STATUS_CLUSTER_INVALID_NETWORK: NTSTATUS = -1072496624i32; +pub const STATUS_CLUSTER_INVALID_NETWORK_PROVIDER: NTSTATUS = -1072496629i32; +pub const STATUS_CLUSTER_INVALID_NODE: NTSTATUS = -1072496639i32; +pub const STATUS_CLUSTER_INVALID_REQUEST: NTSTATUS = -1072496630i32; +pub const STATUS_CLUSTER_JOIN_IN_PROGRESS: NTSTATUS = -1072496637i32; +pub const STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS: NTSTATUS = -1072496625i32; +pub const STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND: NTSTATUS = -1072496635i32; +pub const STATUS_CLUSTER_NETINTERFACE_EXISTS: NTSTATUS = -1072496632i32; +pub const STATUS_CLUSTER_NETINTERFACE_NOT_FOUND: NTSTATUS = -1072496631i32; +pub const STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE: NTSTATUS = -2146238460i32; +pub const STATUS_CLUSTER_NETWORK_ALREADY_ONLINE: NTSTATUS = -2146238461i32; +pub const STATUS_CLUSTER_NETWORK_EXISTS: NTSTATUS = -1072496634i32; +pub const STATUS_CLUSTER_NETWORK_NOT_FOUND: NTSTATUS = -1072496633i32; +pub const STATUS_CLUSTER_NETWORK_NOT_INTERNAL: NTSTATUS = -1072496618i32; +pub const STATUS_CLUSTER_NODE_ALREADY_DOWN: NTSTATUS = -2146238462i32; +pub const STATUS_CLUSTER_NODE_ALREADY_MEMBER: NTSTATUS = -2146238459i32; +pub const STATUS_CLUSTER_NODE_ALREADY_UP: NTSTATUS = -2146238463i32; +pub const STATUS_CLUSTER_NODE_DOWN: NTSTATUS = -1072496628i32; +pub const STATUS_CLUSTER_NODE_EXISTS: NTSTATUS = -1072496638i32; +pub const STATUS_CLUSTER_NODE_NOT_FOUND: NTSTATUS = -1072496636i32; +pub const STATUS_CLUSTER_NODE_NOT_MEMBER: NTSTATUS = -1072496626i32; +pub const STATUS_CLUSTER_NODE_NOT_PAUSED: NTSTATUS = -1072496620i32; +pub const STATUS_CLUSTER_NODE_PAUSED: NTSTATUS = -1072496621i32; +pub const STATUS_CLUSTER_NODE_UNREACHABLE: NTSTATUS = -1072496627i32; +pub const STATUS_CLUSTER_NODE_UP: NTSTATUS = -1072496622i32; +pub const STATUS_CLUSTER_NON_CSV_PATH: NTSTATUS = -1072496616i32; +pub const STATUS_CLUSTER_NO_NET_ADAPTERS: NTSTATUS = -1072496623i32; +pub const STATUS_CLUSTER_NO_SECURITY_CONTEXT: NTSTATUS = -1072496619i32; +pub const STATUS_CLUSTER_POISONED: NTSTATUS = -1072496617i32; +pub const STATUS_COMMITMENT_LIMIT: NTSTATUS = -1073741523i32; +pub const STATUS_COMMITMENT_MINIMUM: NTSTATUS = -1073741112i32; +pub const STATUS_COMPRESSED_FILE_NOT_SUPPORTED: NTSTATUS = -1073740677i32; +pub const STATUS_COMPRESSION_DISABLED: NTSTATUS = -1073740762i32; +pub const STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION: NTSTATUS = -1072103338i32; +pub const STATUS_COMPRESSION_NOT_BENEFICIAL: NTSTATUS = -1073740689i32; +pub const STATUS_CONFLICTING_ADDRESSES: NTSTATUS = -1073741800i32; +pub const STATUS_CONNECTION_ABORTED: NTSTATUS = -1073741247i32; +pub const STATUS_CONNECTION_ACTIVE: NTSTATUS = -1073741253i32; +pub const STATUS_CONNECTION_COUNT_LIMIT: NTSTATUS = -1073741242i32; +pub const STATUS_CONNECTION_DISCONNECTED: NTSTATUS = -1073741300i32; +pub const STATUS_CONNECTION_INVALID: NTSTATUS = -1073741254i32; +pub const STATUS_CONNECTION_IN_USE: NTSTATUS = -1073741560i32; +pub const STATUS_CONNECTION_REFUSED: NTSTATUS = -1073741258i32; +pub const STATUS_CONNECTION_RESET: NTSTATUS = -1073741299i32; +pub const STATUS_CONTAINER_ASSIGNED: NTSTATUS = -1073740536i32; +pub const STATUS_CONTENT_BLOCKED: NTSTATUS = -1073739772i32; +pub const STATUS_CONTEXT_MISMATCH: NTSTATUS = -1073740007i32; +pub const STATUS_CONTEXT_STOWED_EXCEPTION: NTSTATUS = -1073741188i32; +pub const STATUS_CONTROL_C_EXIT: NTSTATUS = -1073741510i32; +pub const STATUS_CONTROL_STACK_VIOLATION: NTSTATUS = -1073741390i32; +pub const STATUS_CONVERT_TO_LARGE: NTSTATUS = -1073741268i32; +pub const STATUS_COPY_PROTECTION_FAILURE: NTSTATUS = -1073741051i32; +pub const STATUS_CORRUPT_LOG_CLEARED: NTSTATUS = -1073739763i32; +pub const STATUS_CORRUPT_LOG_CORRUPTED: NTSTATUS = -1073739766i32; +pub const STATUS_CORRUPT_LOG_DELETED_FULL: NTSTATUS = -1073739764i32; +pub const STATUS_CORRUPT_LOG_OVERFULL: NTSTATUS = -1073739767i32; +pub const STATUS_CORRUPT_LOG_UNAVAILABLE: NTSTATUS = -1073739765i32; +pub const STATUS_CORRUPT_LOG_UPLEVEL_RECORDS: NTSTATUS = -1073739759i32; +pub const STATUS_CORRUPT_SYSTEM_FILE: NTSTATUS = -1073741116i32; +pub const STATUS_COULD_NOT_INTERPRET: NTSTATUS = -1073741639i32; +pub const STATUS_COULD_NOT_RESIZE_LOG: NTSTATUS = -2145845239i32; +pub const STATUS_CPU_SET_INVALID: NTSTATUS = -1073741393i32; +pub const STATUS_CRASH_DUMP: NTSTATUS = 278i32; +pub const STATUS_CRC_ERROR: NTSTATUS = -1073741761i32; +pub const STATUS_CRED_REQUIRES_CONFIRMATION: NTSTATUS = -1073740736i32; +pub const STATUS_CRM_PROTOCOL_ALREADY_EXISTS: NTSTATUS = -1072103409i32; +pub const STATUS_CRM_PROTOCOL_NOT_FOUND: NTSTATUS = -1072103407i32; +pub const STATUS_CROSSREALM_DELEGATION_FAILURE: NTSTATUS = -1073740789i32; +pub const STATUS_CROSS_PARTITION_VIOLATION: NTSTATUS = -1073740277i32; +pub const STATUS_CRYPTO_SYSTEM_INVALID: NTSTATUS = -1073741069i32; +pub const STATUS_CSS_AUTHENTICATION_FAILURE: NTSTATUS = -1073741050i32; +pub const STATUS_CSS_KEY_NOT_ESTABLISHED: NTSTATUS = -1073741048i32; +pub const STATUS_CSS_KEY_NOT_PRESENT: NTSTATUS = -1073741049i32; +pub const STATUS_CSS_REGION_MISMATCH: NTSTATUS = -1073741046i32; +pub const STATUS_CSS_RESETS_EXHAUSTED: NTSTATUS = -1073741045i32; +pub const STATUS_CSS_SCRAMBLED_SECTOR: NTSTATUS = -1073741047i32; +pub const STATUS_CSV_IO_PAUSE_TIMEOUT: NTSTATUS = -1072496600i32; +pub const STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE: NTSTATUS = -1073740733i32; +pub const STATUS_CS_ENCRYPTION_FILE_NOT_CSE: NTSTATUS = -1073740731i32; +pub const STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE: NTSTATUS = -1073740735i32; +pub const STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE: NTSTATUS = -1073740732i32; +pub const STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER: NTSTATUS = -1073740734i32; +pub const STATUS_CTLOG_INCONSISTENT_TRACKING_FILE: NTSTATUS = -1069940700i32; +pub const STATUS_CTLOG_INVALID_TRACKING_STATE: NTSTATUS = -1069940701i32; +pub const STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE: NTSTATUS = -1069940703i32; +pub const STATUS_CTLOG_TRACKING_NOT_INITIALIZED: NTSTATUS = -1069940704i32; +pub const STATUS_CTLOG_VHD_CHANGED_OFFLINE: NTSTATUS = -1069940702i32; +pub const STATUS_CTL_FILE_NOT_SUPPORTED: NTSTATUS = -1073741737i32; +pub const STATUS_CTX_BAD_VIDEO_MODE: NTSTATUS = -1073086440i32; +pub const STATUS_CTX_CDM_CONNECT: NTSTATUS = 1074397188i32; +pub const STATUS_CTX_CDM_DISCONNECT: NTSTATUS = 1074397189i32; +pub const STATUS_CTX_CLIENT_LICENSE_IN_USE: NTSTATUS = -1073086412i32; +pub const STATUS_CTX_CLIENT_LICENSE_NOT_SET: NTSTATUS = -1073086413i32; +pub const STATUS_CTX_CLIENT_QUERY_TIMEOUT: NTSTATUS = -1073086426i32; +pub const STATUS_CTX_CLOSE_PENDING: NTSTATUS = -1073086458i32; +pub const STATUS_CTX_CONSOLE_CONNECT: NTSTATUS = -1073086424i32; +pub const STATUS_CTX_CONSOLE_DISCONNECT: NTSTATUS = -1073086425i32; +pub const STATUS_CTX_GRAPHICS_INVALID: NTSTATUS = -1073086430i32; +pub const STATUS_CTX_INVALID_MODEMNAME: NTSTATUS = -1073086455i32; +pub const STATUS_CTX_INVALID_PD: NTSTATUS = -1073086462i32; +pub const STATUS_CTX_INVALID_WD: NTSTATUS = -1073086418i32; +pub const STATUS_CTX_LICENSE_CLIENT_INVALID: NTSTATUS = -1073086446i32; +pub const STATUS_CTX_LICENSE_EXPIRED: NTSTATUS = -1073086444i32; +pub const STATUS_CTX_LICENSE_NOT_AVAILABLE: NTSTATUS = -1073086445i32; +pub const STATUS_CTX_LOGON_DISABLED: NTSTATUS = -1073086409i32; +pub const STATUS_CTX_MODEM_INF_NOT_FOUND: NTSTATUS = -1073086456i32; +pub const STATUS_CTX_MODEM_RESPONSE_BUSY: NTSTATUS = -1073086450i32; +pub const STATUS_CTX_MODEM_RESPONSE_NO_CARRIER: NTSTATUS = -1073086452i32; +pub const STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE: NTSTATUS = -1073086451i32; +pub const STATUS_CTX_MODEM_RESPONSE_TIMEOUT: NTSTATUS = -1073086453i32; +pub const STATUS_CTX_MODEM_RESPONSE_VOICE: NTSTATUS = -1073086449i32; +pub const STATUS_CTX_NOT_CONSOLE: NTSTATUS = -1073086428i32; +pub const STATUS_CTX_NO_OUTBUF: NTSTATUS = -1073086457i32; +pub const STATUS_CTX_PD_NOT_FOUND: NTSTATUS = -1073086461i32; +pub const STATUS_CTX_RESPONSE_ERROR: NTSTATUS = -1073086454i32; +pub const STATUS_CTX_SECURITY_LAYER_ERROR: NTSTATUS = -1073086408i32; +pub const STATUS_CTX_SHADOW_DENIED: NTSTATUS = -1073086422i32; +pub const STATUS_CTX_SHADOW_DISABLED: NTSTATUS = -1073086415i32; +pub const STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE: NTSTATUS = -1073086411i32; +pub const STATUS_CTX_SHADOW_INVALID: NTSTATUS = -1073086416i32; +pub const STATUS_CTX_SHADOW_NOT_RUNNING: NTSTATUS = -1073086410i32; +pub const STATUS_CTX_TD_ERROR: NTSTATUS = -1073086448i32; +pub const STATUS_CTX_WD_NOT_FOUND: NTSTATUS = -1073086417i32; +pub const STATUS_CTX_WINSTATION_ACCESS_DENIED: NTSTATUS = -1073086421i32; +pub const STATUS_CTX_WINSTATION_BUSY: NTSTATUS = -1073086441i32; +pub const STATUS_CTX_WINSTATION_NAME_COLLISION: NTSTATUS = -1073086442i32; +pub const STATUS_CTX_WINSTATION_NAME_INVALID: NTSTATUS = -1073086463i32; +pub const STATUS_CTX_WINSTATION_NOT_FOUND: NTSTATUS = -1073086443i32; +pub const STATUS_CURRENT_DOMAIN_NOT_ALLOWED: NTSTATUS = -1073741079i32; +pub const STATUS_CURRENT_TRANSACTION_NOT_VALID: NTSTATUS = -1072103400i32; +pub const STATUS_DATATYPE_MISALIGNMENT: NTSTATUS = -2147483646i32; +pub const STATUS_DATATYPE_MISALIGNMENT_ERROR: NTSTATUS = -1073741115i32; +pub const STATUS_DATA_CHECKSUM_ERROR: NTSTATUS = -1073740688i32; +pub const STATUS_DATA_ERROR: NTSTATUS = -1073741762i32; +pub const STATUS_DATA_LATE_ERROR: NTSTATUS = -1073741763i32; +pub const STATUS_DATA_LOST_REPAIR: NTSTATUS = -2147481597i32; +pub const STATUS_DATA_NOT_ACCEPTED: NTSTATUS = -1073741285i32; +pub const STATUS_DATA_OVERRUN: NTSTATUS = -1073741764i32; +pub const STATUS_DATA_OVERWRITTEN: NTSTATUS = 304i32; +pub const STATUS_DAX_MAPPING_EXISTS: NTSTATUS = -1073740644i32; +pub const STATUS_DEBUGGER_INACTIVE: NTSTATUS = -1073740972i32; +pub const STATUS_DEBUG_ATTACH_FAILED: NTSTATUS = -1073741287i32; +pub const STATUS_DECRYPTION_FAILED: NTSTATUS = -1073741173i32; +pub const STATUS_DELAY_LOAD_FAILED: NTSTATUS = -1073740782i32; +pub const STATUS_DELETE_PENDING: NTSTATUS = -1073741738i32; +pub const STATUS_DESTINATION_ELEMENT_FULL: NTSTATUS = -1073741180i32; +pub const STATUS_DEVICE_ALREADY_ATTACHED: NTSTATUS = -1073741768i32; +pub const STATUS_DEVICE_BUSY: NTSTATUS = -2147483631i32; +pub const STATUS_DEVICE_CONFIGURATION_ERROR: NTSTATUS = -1073741438i32; +pub const STATUS_DEVICE_DATA_ERROR: NTSTATUS = -1073741668i32; +pub const STATUS_DEVICE_DOES_NOT_EXIST: NTSTATUS = -1073741632i32; +pub const STATUS_DEVICE_DOOR_OPEN: NTSTATUS = -2147482999i32; +pub const STATUS_DEVICE_ENUMERATION_ERROR: NTSTATUS = -1073740954i32; +pub const STATUS_DEVICE_FEATURE_NOT_SUPPORTED: NTSTATUS = -1073740701i32; +pub const STATUS_DEVICE_HARDWARE_ERROR: NTSTATUS = -1073740669i32; +pub const STATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL: NTSTATUS = -1073740650i32; +pub const STATUS_DEVICE_HUNG: NTSTATUS = -1073740537i32; +pub const STATUS_DEVICE_INSUFFICIENT_RESOURCES: NTSTATUS = -1073740696i32; +pub const STATUS_DEVICE_IN_MAINTENANCE: NTSTATUS = -1073740647i32; +pub const STATUS_DEVICE_NOT_CONNECTED: NTSTATUS = -1073741667i32; +pub const STATUS_DEVICE_NOT_PARTITIONED: NTSTATUS = -1073741452i32; +pub const STATUS_DEVICE_NOT_READY: NTSTATUS = -1073741661i32; +pub const STATUS_DEVICE_OFF_LINE: NTSTATUS = -2147483632i32; +pub const STATUS_DEVICE_PAPER_EMPTY: NTSTATUS = -2147483634i32; +pub const STATUS_DEVICE_POWERED_OFF: NTSTATUS = -2147483633i32; +pub const STATUS_DEVICE_POWER_CYCLE_REQUIRED: NTSTATUS = -2147483599i32; +pub const STATUS_DEVICE_POWER_FAILURE: NTSTATUS = -1073741666i32; +pub const STATUS_DEVICE_PROTOCOL_ERROR: NTSTATUS = -1073741434i32; +pub const STATUS_DEVICE_REMOVED: NTSTATUS = -1073741130i32; +pub const STATUS_DEVICE_REQUIRES_CLEANING: NTSTATUS = -2147483000i32; +pub const STATUS_DEVICE_RESET_REQUIRED: NTSTATUS = -2147483210i32; +pub const STATUS_DEVICE_SUPPORT_IN_PROGRESS: NTSTATUS = -2147483600i32; +pub const STATUS_DEVICE_UNREACHABLE: NTSTATUS = -1073740700i32; +pub const STATUS_DEVICE_UNRESPONSIVE: NTSTATUS = -1073740534i32; +pub const STATUS_DFS_EXIT_PATH_FOUND: NTSTATUS = -1073741669i32; +pub const STATUS_DFS_UNAVAILABLE: NTSTATUS = -1073741203i32; +pub const STATUS_DIF_BINDING_API_NOT_FOUND: NTSTATUS = -1073738625i32; +pub const STATUS_DIF_IOCALLBACK_NOT_REPLACED: NTSTATUS = -1073738634i32; +pub const STATUS_DIF_LIVEDUMP_LIMIT_EXCEEDED: NTSTATUS = -1073738633i32; +pub const STATUS_DIF_VOLATILE_DRIVER_HOTPATCHED: NTSTATUS = -1073738631i32; +pub const STATUS_DIF_VOLATILE_DRIVER_IS_NOT_RUNNING: NTSTATUS = -1073738629i32; +pub const STATUS_DIF_VOLATILE_INVALID_INFO: NTSTATUS = -1073738630i32; +pub const STATUS_DIF_VOLATILE_NOT_ALLOWED: NTSTATUS = -1073738626i32; +pub const STATUS_DIF_VOLATILE_PLUGIN_CHANGE_NOT_ALLOWED: NTSTATUS = -1073738627i32; +pub const STATUS_DIF_VOLATILE_PLUGIN_IS_NOT_RUNNING: NTSTATUS = -1073738628i32; +pub const STATUS_DIF_VOLATILE_SECTION_NOT_LOCKED: NTSTATUS = -1073738632i32; +pub const STATUS_DIRECTORY_IS_A_REPARSE_POINT: NTSTATUS = -1073741183i32; +pub const STATUS_DIRECTORY_NOT_EMPTY: NTSTATUS = -1073741567i32; +pub const STATUS_DIRECTORY_NOT_RM: NTSTATUS = -1072103416i32; +pub const STATUS_DIRECTORY_NOT_SUPPORTED: NTSTATUS = -1073740676i32; +pub const STATUS_DIRECTORY_SERVICE_REQUIRED: NTSTATUS = -1073741135i32; +pub const STATUS_DISK_CORRUPT_ERROR: NTSTATUS = -1073741774i32; +pub const STATUS_DISK_FULL: NTSTATUS = -1073741697i32; +pub const STATUS_DISK_OPERATION_FAILED: NTSTATUS = -1073741462i32; +pub const STATUS_DISK_QUOTA_EXCEEDED: NTSTATUS = -1073739774i32; +pub const STATUS_DISK_RECALIBRATE_FAILED: NTSTATUS = -1073741463i32; +pub const STATUS_DISK_REPAIR_DISABLED: NTSTATUS = -1073739776i32; +pub const STATUS_DISK_REPAIR_REDIRECTED: NTSTATUS = 1073743879i32; +pub const STATUS_DISK_REPAIR_UNSUCCESSFUL: NTSTATUS = -1073739768i32; +pub const STATUS_DISK_RESET_FAILED: NTSTATUS = -1073741461i32; +pub const STATUS_DISK_RESOURCES_EXHAUSTED: NTSTATUS = -1073740703i32; +pub const STATUS_DLL_INIT_FAILED: NTSTATUS = -1073741502i32; +pub const STATUS_DLL_INIT_FAILED_LOGOFF: NTSTATUS = -1073741205i32; +pub const STATUS_DLL_MIGHT_BE_INCOMPATIBLE: NTSTATUS = -2147483604i32; +pub const STATUS_DLL_MIGHT_BE_INSECURE: NTSTATUS = -2147483605i32; +pub const STATUS_DLL_NOT_FOUND: NTSTATUS = -1073741515i32; +pub const STATUS_DM_OPERATION_LIMIT_EXCEEDED: NTSTATUS = -1070135808i32; +pub const STATUS_DOMAIN_CONTROLLER_NOT_FOUND: NTSTATUS = -1073741261i32; +pub const STATUS_DOMAIN_CTRLR_CONFIG_ERROR: NTSTATUS = -1073741474i32; +pub const STATUS_DOMAIN_EXISTS: NTSTATUS = -1073741600i32; +pub const STATUS_DOMAIN_LIMIT_EXCEEDED: NTSTATUS = -1073741599i32; +pub const STATUS_DOMAIN_TRUST_INCONSISTENT: NTSTATUS = -1073741413i32; +pub const STATUS_DRIVERS_LEAKING_LOCKED_PAGES: NTSTATUS = 1073741869i32; +pub const STATUS_DRIVER_BLOCKED: NTSTATUS = -1073740948i32; +pub const STATUS_DRIVER_BLOCKED_CRITICAL: NTSTATUS = -1073740949i32; +pub const STATUS_DRIVER_CANCEL_TIMEOUT: NTSTATUS = -1073741282i32; +pub const STATUS_DRIVER_DATABASE_ERROR: NTSTATUS = -1073740947i32; +pub const STATUS_DRIVER_ENTRYPOINT_NOT_FOUND: NTSTATUS = -1073741213i32; +pub const STATUS_DRIVER_FAILED_PRIOR_UNLOAD: NTSTATUS = -1073740914i32; +pub const STATUS_DRIVER_FAILED_SLEEP: NTSTATUS = -1073741118i32; +pub const STATUS_DRIVER_INTERNAL_ERROR: NTSTATUS = -1073741437i32; +pub const STATUS_DRIVER_ORDINAL_NOT_FOUND: NTSTATUS = -1073741214i32; +pub const STATUS_DRIVER_PROCESS_TERMINATED: NTSTATUS = -1073740720i32; +pub const STATUS_DRIVER_UNABLE_TO_LOAD: NTSTATUS = -1073741204i32; +pub const STATUS_DS_ADMIN_LIMIT_EXCEEDED: NTSTATUS = -1073741119i32; +pub const STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER: NTSTATUS = -1073740968i32; +pub const STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS: NTSTATUS = -1073741148i32; +pub const STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED: NTSTATUS = -1073741149i32; +pub const STATUS_DS_BUSY: NTSTATUS = -1073741147i32; +pub const STATUS_DS_CANT_MOD_OBJ_CLASS: NTSTATUS = -1073741138i32; +pub const STATUS_DS_CANT_MOD_PRIMARYGROUPID: NTSTATUS = -1073741104i32; +pub const STATUS_DS_CANT_ON_NON_LEAF: NTSTATUS = -1073741140i32; +pub const STATUS_DS_CANT_ON_RDN: NTSTATUS = -1073741139i32; +pub const STATUS_DS_CANT_START: NTSTATUS = -1073741087i32; +pub const STATUS_DS_CROSS_DOM_MOVE_FAILED: NTSTATUS = -1073741137i32; +pub const STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST: NTSTATUS = -1073740774i32; +pub const STATUS_DS_DOMAIN_RENAME_IN_PROGRESS: NTSTATUS = -1073739775i32; +pub const STATUS_DS_DUPLICATE_ID_FOUND: NTSTATUS = -1073740795i32; +pub const STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST: NTSTATUS = -1073740773i32; +pub const STATUS_DS_GC_NOT_AVAILABLE: NTSTATUS = -1073741136i32; +pub const STATUS_DS_GC_REQUIRED: NTSTATUS = -1073741084i32; +pub const STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER: NTSTATUS = -1073741094i32; +pub const STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER: NTSTATUS = -1073741097i32; +pub const STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER: NTSTATUS = -1073741096i32; +pub const STATUS_DS_GROUP_CONVERSION_ERROR: NTSTATUS = -1073740794i32; +pub const STATUS_DS_HAVE_PRIMARY_MEMBERS: NTSTATUS = -1073741092i32; +pub const STATUS_DS_INCORRECT_ROLE_OWNER: NTSTATUS = -1073741143i32; +pub const STATUS_DS_INIT_FAILURE: NTSTATUS = -1073741086i32; +pub const STATUS_DS_INIT_FAILURE_CONSOLE: NTSTATUS = -1073741076i32; +pub const STATUS_DS_INVALID_ATTRIBUTE_SYNTAX: NTSTATUS = -1073741150i32; +pub const STATUS_DS_INVALID_GROUP_TYPE: NTSTATUS = -1073741100i32; +pub const STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER: NTSTATUS = -1073741093i32; +pub const STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY: NTSTATUS = -1073741083i32; +pub const STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED: NTSTATUS = -1073741081i32; +pub const STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY: NTSTATUS = 289i32; +pub const STATUS_DS_NAME_NOT_UNIQUE: NTSTATUS = -1073740796i32; +pub const STATUS_DS_NO_ATTRIBUTE_OR_VALUE: NTSTATUS = -1073741151i32; +pub const STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS: NTSTATUS = -1073741082i32; +pub const STATUS_DS_NO_MORE_RIDS: NTSTATUS = -1073741144i32; +pub const STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN: NTSTATUS = -1073741099i32; +pub const STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN: NTSTATUS = -1073741098i32; +pub const STATUS_DS_NO_RIDS_ALLOCATED: NTSTATUS = -1073741145i32; +pub const STATUS_DS_OBJ_CLASS_VIOLATION: NTSTATUS = -1073741141i32; +pub const STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS: NTSTATUS = -1073700729i32; +pub const STATUS_DS_OID_NOT_FOUND: NTSTATUS = -1073700728i32; +pub const STATUS_DS_RIDMGR_DISABLED: NTSTATUS = -1073741126i32; +pub const STATUS_DS_RIDMGR_INIT_ERROR: NTSTATUS = -1073741142i32; +pub const STATUS_DS_SAM_INIT_FAILURE: NTSTATUS = -1073741109i32; +pub const STATUS_DS_SAM_INIT_FAILURE_CONSOLE: NTSTATUS = -1073741075i32; +pub const STATUS_DS_SENSITIVE_GROUP_VIOLATION: NTSTATUS = -1073741107i32; +pub const STATUS_DS_SHUTTING_DOWN: NTSTATUS = 1073742704i32; +pub const STATUS_DS_SRC_SID_EXISTS_IN_FOREST: NTSTATUS = -1073740775i32; +pub const STATUS_DS_UNAVAILABLE: NTSTATUS = -1073741146i32; +pub const STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER: NTSTATUS = -1073741095i32; +pub const STATUS_DS_VERSION_CHECK_FAILURE: NTSTATUS = -1073740971i32; +pub const STATUS_DUPLICATE_NAME: NTSTATUS = -1073741635i32; +pub const STATUS_DUPLICATE_OBJECTID: NTSTATUS = -1073741270i32; +pub const STATUS_DUPLICATE_PRIVILEGES: NTSTATUS = -1073741402i32; +pub const STATUS_DYNAMIC_CODE_BLOCKED: NTSTATUS = -1073740284i32; +pub const STATUS_EAS_NOT_SUPPORTED: NTSTATUS = -1073741745i32; +pub const STATUS_EA_CORRUPT_ERROR: NTSTATUS = -1073741741i32; +pub const STATUS_EA_LIST_INCONSISTENT: NTSTATUS = -2147483628i32; +pub const STATUS_EA_TOO_LARGE: NTSTATUS = -1073741744i32; +pub const STATUS_EFS_ALG_BLOB_TOO_BIG: NTSTATUS = -1073740974i32; +pub const STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION: NTSTATUS = -1072103362i32; +pub const STATUS_ELEVATION_REQUIRED: NTSTATUS = -1073740756i32; +pub const STATUS_EMULATION_BREAKPOINT: NTSTATUS = 1073741880i32; +pub const STATUS_EMULATION_SYSCALL: NTSTATUS = 1073741881i32; +pub const STATUS_ENCLAVE_FAILURE: NTSTATUS = -1073740657i32; +pub const STATUS_ENCLAVE_IS_TERMINATING: NTSTATUS = -1073740526i32; +pub const STATUS_ENCLAVE_NOT_TERMINATED: NTSTATUS = -1073740527i32; +pub const STATUS_ENCLAVE_VIOLATION: NTSTATUS = -1073740638i32; +pub const STATUS_ENCOUNTERED_WRITE_IN_PROGRESS: NTSTATUS = -1073740749i32; +pub const STATUS_ENCRYPTED_FILE_NOT_SUPPORTED: NTSTATUS = -1073740605i32; +pub const STATUS_ENCRYPTED_IO_NOT_POSSIBLE: NTSTATUS = -1073739760i32; +pub const STATUS_ENCRYPTING_METADATA_DISALLOWED: NTSTATUS = -1073740617i32; +pub const STATUS_ENCRYPTION_DISABLED: NTSTATUS = -1073740618i32; +pub const STATUS_ENCRYPTION_FAILED: NTSTATUS = -1073741174i32; +pub const STATUS_END_OF_FILE: NTSTATUS = -1073741807i32; +pub const STATUS_END_OF_MEDIA: NTSTATUS = -2147483618i32; +pub const STATUS_ENLISTMENT_NOT_FOUND: NTSTATUS = -1072103344i32; +pub const STATUS_ENLISTMENT_NOT_SUPERIOR: NTSTATUS = -1072103373i32; +pub const STATUS_ENTRYPOINT_NOT_FOUND: NTSTATUS = -1073741511i32; +pub const STATUS_EOF_ON_GHOSTED_RANGE: NTSTATUS = -1073700857i32; +pub const STATUS_EOM_OVERFLOW: NTSTATUS = -1073741449i32; +pub const STATUS_ERROR_PROCESS_NOT_IN_JOB: NTSTATUS = -1073741394i32; +pub const STATUS_EVALUATION_EXPIRATION: NTSTATUS = -1073741208i32; +pub const STATUS_EVENTLOG_CANT_START: NTSTATUS = -1073741425i32; +pub const STATUS_EVENTLOG_FILE_CHANGED: NTSTATUS = -1073741417i32; +pub const STATUS_EVENTLOG_FILE_CORRUPT: NTSTATUS = -1073741426i32; +pub const STATUS_EVENT_DONE: NTSTATUS = 1073741842i32; +pub const STATUS_EVENT_PENDING: NTSTATUS = 1073741843i32; +pub const STATUS_EXECUTABLE_MEMORY_WRITE: NTSTATUS = -1073739997i32; +pub const STATUS_EXPIRED_HANDLE: NTSTATUS = -1072103328i32; +pub const STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN: NTSTATUS = -1073740690i32; +pub const STATUS_EXTERNAL_SYSKEY_NOT_SUPPORTED: NTSTATUS = -1073740639i32; +pub const STATUS_EXTRANEOUS_INFORMATION: NTSTATUS = -2147483625i32; +pub const STATUS_FAILED_DRIVER_ENTRY: NTSTATUS = -1073740955i32; +pub const STATUS_FAILED_STACK_SWITCH: NTSTATUS = -1073740941i32; +pub const STATUS_FAIL_CHECK: NTSTATUS = -1073741271i32; +pub const STATUS_FAIL_FAST_EXCEPTION: NTSTATUS = -1073740286i32; +pub const STATUS_FASTPATH_REJECTED: NTSTATUS = -1073700844i32; +pub const STATUS_FATAL_APP_EXIT: NTSTATUS = 1073741845i32; +pub const STATUS_FATAL_MEMORY_EXHAUSTION: NTSTATUS = -1073741395i32; +pub const STATUS_FATAL_USER_CALLBACK_EXCEPTION: NTSTATUS = -1073740771i32; +pub const STATUS_FILEMARK_DETECTED: NTSTATUS = -2147483621i32; +pub const STATUS_FILES_OPEN: NTSTATUS = -1073741561i32; +pub const STATUS_FILE_CHECKED_OUT: NTSTATUS = -1073739519i32; +pub const STATUS_FILE_CLOSED: NTSTATUS = -1073741528i32; +pub const STATUS_FILE_CORRUPT_ERROR: NTSTATUS = -1073741566i32; +pub const STATUS_FILE_DELETED: NTSTATUS = -1073741533i32; +pub const STATUS_FILE_ENCRYPTED: NTSTATUS = -1073741165i32; +pub const STATUS_FILE_FORCED_CLOSED: NTSTATUS = -1073741642i32; +pub const STATUS_FILE_HANDLE_REVOKED: NTSTATUS = -1073739504i32; +pub const STATUS_FILE_IDENTITY_NOT_PERSISTENT: NTSTATUS = -1072103370i32; +pub const STATUS_FILE_INVALID: NTSTATUS = -1073741672i32; +pub const STATUS_FILE_IS_A_DIRECTORY: NTSTATUS = -1073741638i32; +pub const STATUS_FILE_IS_OFFLINE: NTSTATUS = -1073741209i32; +pub const STATUS_FILE_LOCKED_WITH_ONLY_READERS: NTSTATUS = 298i32; +pub const STATUS_FILE_LOCKED_WITH_WRITERS: NTSTATUS = 299i32; +pub const STATUS_FILE_LOCK_CONFLICT: NTSTATUS = -1073741740i32; +pub const STATUS_FILE_METADATA_OPTIMIZATION_IN_PROGRESS: NTSTATUS = -1073741397i32; +pub const STATUS_FILE_NOT_AVAILABLE: NTSTATUS = -1073740697i32; +pub const STATUS_FILE_NOT_ENCRYPTED: NTSTATUS = -1073741167i32; +pub const STATUS_FILE_NOT_SUPPORTED: NTSTATUS = -1073740620i32; +pub const STATUS_FILE_PROTECTED_UNDER_DPL: NTSTATUS = -1073740637i32; +pub const STATUS_FILE_RENAMED: NTSTATUS = -1073741611i32; +pub const STATUS_FILE_SNAP_INVALID_PARAMETER: NTSTATUS = -1073679099i32; +pub const STATUS_FILE_SNAP_IN_PROGRESS: NTSTATUS = -1073679104i32; +pub const STATUS_FILE_SNAP_IO_NOT_COORDINATED: NTSTATUS = -1073679101i32; +pub const STATUS_FILE_SNAP_MODIFY_NOT_SUPPORTED: NTSTATUS = -1073679102i32; +pub const STATUS_FILE_SNAP_UNEXPECTED_ERROR: NTSTATUS = -1073679100i32; +pub const STATUS_FILE_SNAP_USER_SECTION_NOT_SUPPORTED: NTSTATUS = -1073679103i32; +pub const STATUS_FILE_SYSTEM_LIMITATION: NTSTATUS = -1073740761i32; +pub const STATUS_FILE_SYSTEM_VIRTUALIZATION_BUSY: NTSTATUS = -1073689085i32; +pub const STATUS_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION: NTSTATUS = -1073689083i32; +pub const STATUS_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT: NTSTATUS = -1073689086i32; +pub const STATUS_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN: NTSTATUS = -1073689084i32; +pub const STATUS_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE: NTSTATUS = -1073689087i32; +pub const STATUS_FILE_TOO_LARGE: NTSTATUS = -1073739516i32; +pub const STATUS_FIRMWARE_IMAGE_INVALID: NTSTATUS = -1073740667i32; +pub const STATUS_FIRMWARE_SLOT_INVALID: NTSTATUS = -1073740668i32; +pub const STATUS_FIRMWARE_UPDATED: NTSTATUS = 1073741868i32; +pub const STATUS_FLOATED_SECTION: NTSTATUS = -1072103349i32; +pub const STATUS_FLOAT_DENORMAL_OPERAND: NTSTATUS = -1073741683i32; +pub const STATUS_FLOAT_DIVIDE_BY_ZERO: NTSTATUS = -1073741682i32; +pub const STATUS_FLOAT_INEXACT_RESULT: NTSTATUS = -1073741681i32; +pub const STATUS_FLOAT_INVALID_OPERATION: NTSTATUS = -1073741680i32; +pub const STATUS_FLOAT_MULTIPLE_FAULTS: NTSTATUS = -1073741132i32; +pub const STATUS_FLOAT_MULTIPLE_TRAPS: NTSTATUS = -1073741131i32; +pub const STATUS_FLOAT_OVERFLOW: NTSTATUS = -1073741679i32; +pub const STATUS_FLOAT_STACK_CHECK: NTSTATUS = -1073741678i32; +pub const STATUS_FLOAT_UNDERFLOW: NTSTATUS = -1073741677i32; +pub const STATUS_FLOPPY_BAD_REGISTERS: NTSTATUS = -1073741464i32; +pub const STATUS_FLOPPY_ID_MARK_NOT_FOUND: NTSTATUS = -1073741467i32; +pub const STATUS_FLOPPY_UNKNOWN_ERROR: NTSTATUS = -1073741465i32; +pub const STATUS_FLOPPY_VOLUME: NTSTATUS = -1073741468i32; +pub const STATUS_FLOPPY_WRONG_CYLINDER: NTSTATUS = -1073741466i32; +pub const STATUS_FLT_ALREADY_ENLISTED: NTSTATUS = -1071906789i32; +pub const STATUS_FLT_BUFFER_TOO_SMALL: NTSTATUS = -2145648639i32; +pub const STATUS_FLT_CBDQ_DISABLED: NTSTATUS = -1071906802i32; +pub const STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND: NTSTATUS = -1071906794i32; +pub const STATUS_FLT_CONTEXT_ALREADY_DEFINED: NTSTATUS = -1071906814i32; +pub const STATUS_FLT_CONTEXT_ALREADY_LINKED: NTSTATUS = -1071906788i32; +pub const STATUS_FLT_DELETING_OBJECT: NTSTATUS = -1071906805i32; +pub const STATUS_FLT_DISALLOW_FAST_IO: NTSTATUS = -1071906812i32; +pub const STATUS_FLT_DISALLOW_FSFILTER_IO: i32 = -1071906812i32; +pub const STATUS_FLT_DO_NOT_ATTACH: NTSTATUS = -1071906801i32; +pub const STATUS_FLT_DO_NOT_DETACH: NTSTATUS = -1071906800i32; +pub const STATUS_FLT_DUPLICATE_ENTRY: NTSTATUS = -1071906803i32; +pub const STATUS_FLT_FILTER_NOT_FOUND: NTSTATUS = -1071906797i32; +pub const STATUS_FLT_FILTER_NOT_READY: NTSTATUS = -1071906808i32; +pub const STATUS_FLT_INSTANCE_ALTITUDE_COLLISION: NTSTATUS = -1071906799i32; +pub const STATUS_FLT_INSTANCE_NAME_COLLISION: NTSTATUS = -1071906798i32; +pub const STATUS_FLT_INSTANCE_NOT_FOUND: NTSTATUS = -1071906795i32; +pub const STATUS_FLT_INTERNAL_ERROR: NTSTATUS = -1071906806i32; +pub const STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST: NTSTATUS = -1071906813i32; +pub const STATUS_FLT_INVALID_CONTEXT_REGISTRATION: NTSTATUS = -1071906793i32; +pub const STATUS_FLT_INVALID_NAME_REQUEST: NTSTATUS = -1071906811i32; +pub const STATUS_FLT_IO_COMPLETE: NTSTATUS = 1835009i32; +pub const STATUS_FLT_MUST_BE_NONPAGED_POOL: NTSTATUS = -1071906804i32; +pub const STATUS_FLT_NAME_CACHE_MISS: NTSTATUS = -1071906792i32; +pub const STATUS_FLT_NOT_INITIALIZED: NTSTATUS = -1071906809i32; +pub const STATUS_FLT_NOT_SAFE_TO_POST_OPERATION: NTSTATUS = -1071906810i32; +pub const STATUS_FLT_NO_DEVICE_OBJECT: NTSTATUS = -1071906791i32; +pub const STATUS_FLT_NO_HANDLER_DEFINED: NTSTATUS = -1071906815i32; +pub const STATUS_FLT_NO_WAITER_FOR_REPLY: NTSTATUS = -1071906784i32; +pub const STATUS_FLT_POST_OPERATION_CLEANUP: NTSTATUS = -1071906807i32; +pub const STATUS_FLT_REGISTRATION_BUSY: NTSTATUS = -1071906781i32; +pub const STATUS_FLT_VOLUME_ALREADY_MOUNTED: NTSTATUS = -1071906790i32; +pub const STATUS_FLT_VOLUME_NOT_FOUND: NTSTATUS = -1071906796i32; +pub const STATUS_FLT_WCOS_NOT_SUPPORTED: NTSTATUS = -1071906780i32; +pub const STATUS_FORMS_AUTH_REQUIRED: NTSTATUS = -1073739515i32; +pub const STATUS_FOUND_OUT_OF_SCOPE: NTSTATUS = -1073741266i32; +pub const STATUS_FREE_SPACE_TOO_FRAGMENTED: NTSTATUS = -1073740645i32; +pub const STATUS_FREE_VM_NOT_AT_BASE: NTSTATUS = -1073741665i32; +pub const STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY: NTSTATUS = 294i32; +pub const STATUS_FS_DRIVER_REQUIRED: NTSTATUS = -1073741412i32; +pub const STATUS_FS_METADATA_INCONSISTENT: NTSTATUS = -1073740520i32; +pub const STATUS_FT_DI_SCAN_REQUIRED: NTSTATUS = -1073740692i32; +pub const STATUS_FT_MISSING_MEMBER: NTSTATUS = -1073741473i32; +pub const STATUS_FT_ORPHANING: NTSTATUS = -1073741459i32; +pub const STATUS_FT_READ_FAILURE: NTSTATUS = -1073740629i32; +pub const STATUS_FT_READ_FROM_COPY: NTSTATUS = 1073741877i32; +pub const STATUS_FT_READ_FROM_COPY_FAILURE: NTSTATUS = -1073740609i32; +pub const STATUS_FT_READ_RECOVERY_FROM_BACKUP: NTSTATUS = 1073741834i32; +pub const STATUS_FT_WRITE_FAILURE: NTSTATUS = -1073740693i32; +pub const STATUS_FT_WRITE_RECOVERY: NTSTATUS = 1073741835i32; +pub const STATUS_FULLSCREEN_MODE: NTSTATUS = -1073741479i32; +pub const STATUS_FVE_ACTION_NOT_ALLOWED: NTSTATUS = -1071579127i32; +pub const STATUS_FVE_AUTH_INVALID_APPLICATION: NTSTATUS = -1071579109i32; +pub const STATUS_FVE_AUTH_INVALID_CONFIG: NTSTATUS = -1071579108i32; +pub const STATUS_FVE_BAD_DATA: NTSTATUS = -1071579126i32; +pub const STATUS_FVE_BAD_INFORMATION: NTSTATUS = -1071579134i32; +pub const STATUS_FVE_BAD_METADATA_POINTER: NTSTATUS = -1071579105i32; +pub const STATUS_FVE_BAD_PARTITION_SIZE: NTSTATUS = -1071579131i32; +pub const STATUS_FVE_CONV_READ_ERROR: NTSTATUS = -1071579123i32; +pub const STATUS_FVE_CONV_RECOVERY_FAILED: NTSTATUS = -1071579096i32; +pub const STATUS_FVE_CONV_WRITE_ERROR: NTSTATUS = -1071579122i32; +pub const STATUS_FVE_DATASET_FULL: NTSTATUS = -1071579069i32; +pub const STATUS_FVE_DEBUGGER_ENABLED: NTSTATUS = -1071579107i32; +pub const STATUS_FVE_DEVICE_LOCKEDOUT: NTSTATUS = -1071579077i32; +pub const STATUS_FVE_DRY_RUN_FAILED: NTSTATUS = -1071579106i32; +pub const STATUS_FVE_EDRIVE_BAND_ENUMERATION_FAILED: NTSTATUS = -1071579071i32; +pub const STATUS_FVE_EDRIVE_DRY_RUN_FAILED: NTSTATUS = -1071579080i32; +pub const STATUS_FVE_ENH_PIN_INVALID: NTSTATUS = -1071579087i32; +pub const STATUS_FVE_FAILED_AUTHENTICATION: NTSTATUS = -1071579119i32; +pub const STATUS_FVE_FAILED_SECTOR_SIZE: NTSTATUS = -1071579120i32; +pub const STATUS_FVE_FAILED_WRONG_FS: NTSTATUS = -1071579132i32; +pub const STATUS_FVE_FS_MOUNTED: NTSTATUS = -1071579129i32; +pub const STATUS_FVE_FS_NOT_EXTENDED: NTSTATUS = -1071579130i32; +pub const STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE: NTSTATUS = -1071579086i32; +pub const STATUS_FVE_INVALID_DATUM_TYPE: NTSTATUS = -1071579094i32; +pub const STATUS_FVE_KEYFILE_INVALID: NTSTATUS = -1071579116i32; +pub const STATUS_FVE_KEYFILE_NOT_FOUND: NTSTATUS = -1071579117i32; +pub const STATUS_FVE_KEYFILE_NO_VMK: NTSTATUS = -1071579115i32; +pub const STATUS_FVE_LOCKED_VOLUME: NTSTATUS = -1071579136i32; +pub const STATUS_FVE_METADATA_FULL: NTSTATUS = -1071579068i32; +pub const STATUS_FVE_MOR_FAILED: NTSTATUS = -1071579099i32; +pub const STATUS_FVE_NOT_ALLOWED_ON_CLUSTER: NTSTATUS = -1071579083i32; +pub const STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK: NTSTATUS = -1071579084i32; +pub const STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING: NTSTATUS = -1071579082i32; +pub const STATUS_FVE_NOT_DATA_VOLUME: NTSTATUS = -1071579124i32; +pub const STATUS_FVE_NOT_DE_VOLUME: NTSTATUS = -1071579075i32; +pub const STATUS_FVE_NOT_ENCRYPTED: NTSTATUS = -1071579135i32; +pub const STATUS_FVE_NOT_OS_VOLUME: NTSTATUS = -1071579118i32; +pub const STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY: NTSTATUS = -1071579100i32; +pub const STATUS_FVE_NO_FEATURE_LICENSE: NTSTATUS = -1071579098i32; +pub const STATUS_FVE_NO_LICENSE: NTSTATUS = -1071579128i32; +pub const STATUS_FVE_OLD_METADATA_COPY: NTSTATUS = -1071579104i32; +pub const STATUS_FVE_OSV_KSR_NOT_ALLOWED: NTSTATUS = -1071579072i32; +pub const STATUS_FVE_OVERLAPPED_UPDATE: NTSTATUS = -1071579121i32; +pub const STATUS_FVE_PARTIAL_METADATA: NTSTATUS = -2145320959i32; +pub const STATUS_FVE_PIN_INVALID: NTSTATUS = -1071579110i32; +pub const STATUS_FVE_POLICY_ON_RDV_EXCLUSION_LIST: NTSTATUS = -1071579070i32; +pub const STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED: NTSTATUS = -1071579097i32; +pub const STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED: NTSTATUS = -1071579073i32; +pub const STATUS_FVE_PROTECTION_DISABLED: NTSTATUS = -1071579074i32; +pub const STATUS_FVE_RAW_ACCESS: NTSTATUS = -1071579102i32; +pub const STATUS_FVE_RAW_BLOCKED: NTSTATUS = -1071579101i32; +pub const STATUS_FVE_REBOOT_REQUIRED: NTSTATUS = -1071579103i32; +pub const STATUS_FVE_SECUREBOOT_CONFIG_CHANGE: NTSTATUS = -1071579078i32; +pub const STATUS_FVE_SECUREBOOT_DISABLED: NTSTATUS = -1071579079i32; +pub const STATUS_FVE_TOO_SMALL: NTSTATUS = -1071579133i32; +pub const STATUS_FVE_TPM_DISABLED: NTSTATUS = -1071579114i32; +pub const STATUS_FVE_TPM_INVALID_PCR: NTSTATUS = -1071579112i32; +pub const STATUS_FVE_TPM_NO_VMK: NTSTATUS = -1071579111i32; +pub const STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO: NTSTATUS = -1071579113i32; +pub const STATUS_FVE_TRANSIENT_STATE: NTSTATUS = -2145320958i32; +pub const STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG: NTSTATUS = -1071579095i32; +pub const STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT: NTSTATUS = -1071579076i32; +pub const STATUS_FVE_VOLUME_NOT_BOUND: NTSTATUS = -1071579125i32; +pub const STATUS_FVE_VOLUME_TOO_SMALL: NTSTATUS = -1071579088i32; +pub const STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE: NTSTATUS = -1071579081i32; +pub const STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE: NTSTATUS = -1071579085i32; +pub const STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER: NTSTATUS = -1071513556i32; +pub const STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER: NTSTATUS = -1071513555i32; +pub const STATUS_FWP_ALREADY_EXISTS: NTSTATUS = -1071513591i32; +pub const STATUS_FWP_BUILTIN_OBJECT: NTSTATUS = -1071513577i32; +pub const STATUS_FWP_CALLOUT_NOTIFICATION_FAILED: NTSTATUS = -1071513545i32; +pub const STATUS_FWP_CALLOUT_NOT_FOUND: NTSTATUS = -1071513599i32; +pub const STATUS_FWP_CANNOT_PEND: NTSTATUS = -1071513341i32; +pub const STATUS_FWP_CONDITION_NOT_FOUND: NTSTATUS = -1071513598i32; +pub const STATUS_FWP_CONNECTIONS_DISABLED: NTSTATUS = -1071513535i32; +pub const STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT: NTSTATUS = -1071513553i32; +pub const STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER: NTSTATUS = -1071513554i32; +pub const STATUS_FWP_DROP_NOICMP: NTSTATUS = -1071513340i32; +pub const STATUS_FWP_DUPLICATE_AUTH_METHOD: NTSTATUS = -1071513540i32; +pub const STATUS_FWP_DUPLICATE_CONDITION: NTSTATUS = -1071513558i32; +pub const STATUS_FWP_DUPLICATE_KEYMOD: NTSTATUS = -1071513557i32; +pub const STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS: NTSTATUS = -1071513589i32; +pub const STATUS_FWP_EM_NOT_SUPPORTED: NTSTATUS = -1071513550i32; +pub const STATUS_FWP_FILTER_NOT_FOUND: NTSTATUS = -1071513597i32; +pub const STATUS_FWP_IKEEXT_NOT_RUNNING: NTSTATUS = -1071513532i32; +pub const STATUS_FWP_INCOMPATIBLE_AUTH_METHOD: NTSTATUS = -1071513552i32; +pub const STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM: NTSTATUS = -1071513542i32; +pub const STATUS_FWP_INCOMPATIBLE_DH_GROUP: NTSTATUS = -1071513551i32; +pub const STATUS_FWP_INCOMPATIBLE_LAYER: NTSTATUS = -1071513580i32; +pub const STATUS_FWP_INCOMPATIBLE_SA_STATE: NTSTATUS = -1071513573i32; +pub const STATUS_FWP_INCOMPATIBLE_TXN: NTSTATUS = -1071513583i32; +pub const STATUS_FWP_INJECT_HANDLE_CLOSING: NTSTATUS = -1071513343i32; +pub const STATUS_FWP_INJECT_HANDLE_STALE: NTSTATUS = -1071513342i32; +pub const STATUS_FWP_INVALID_ACTION_TYPE: NTSTATUS = -1071513564i32; +pub const STATUS_FWP_INVALID_AUTH_TRANSFORM: NTSTATUS = -1071513544i32; +pub const STATUS_FWP_INVALID_CIPHER_TRANSFORM: NTSTATUS = -1071513543i32; +pub const STATUS_FWP_INVALID_DNS_NAME: NTSTATUS = -1071513534i32; +pub const STATUS_FWP_INVALID_ENUMERATOR: NTSTATUS = -1071513571i32; +pub const STATUS_FWP_INVALID_FLAGS: NTSTATUS = -1071513570i32; +pub const STATUS_FWP_INVALID_INTERVAL: NTSTATUS = -1071513567i32; +pub const STATUS_FWP_INVALID_NET_MASK: NTSTATUS = -1071513569i32; +pub const STATUS_FWP_INVALID_PARAMETER: NTSTATUS = -1071513547i32; +pub const STATUS_FWP_INVALID_RANGE: NTSTATUS = -1071513568i32; +pub const STATUS_FWP_INVALID_TRANSFORM_COMBINATION: NTSTATUS = -1071513541i32; +pub const STATUS_FWP_INVALID_TUNNEL_ENDPOINT: NTSTATUS = -1071513539i32; +pub const STATUS_FWP_INVALID_WEIGHT: NTSTATUS = -1071513563i32; +pub const STATUS_FWP_IN_USE: NTSTATUS = -1071513590i32; +pub const STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL: NTSTATUS = -1071513536i32; +pub const STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED: NTSTATUS = -1071513537i32; +pub const STATUS_FWP_KM_CLIENTS_ONLY: NTSTATUS = -1071513579i32; +pub const STATUS_FWP_L2_DRIVER_NOT_READY: NTSTATUS = -1071513538i32; +pub const STATUS_FWP_LAYER_NOT_FOUND: NTSTATUS = -1071513596i32; +pub const STATUS_FWP_LIFETIME_MISMATCH: NTSTATUS = -1071513578i32; +pub const STATUS_FWP_MATCH_TYPE_MISMATCH: NTSTATUS = -1071513562i32; +pub const STATUS_FWP_NET_EVENTS_DISABLED: NTSTATUS = -1071513581i32; +pub const STATUS_FWP_NEVER_MATCH: NTSTATUS = -1071513549i32; +pub const STATUS_FWP_NOTIFICATION_DROPPED: NTSTATUS = -1071513575i32; +pub const STATUS_FWP_NOT_FOUND: NTSTATUS = -1071513592i32; +pub const STATUS_FWP_NO_TXN_IN_PROGRESS: NTSTATUS = -1071513587i32; +pub const STATUS_FWP_NULL_DISPLAY_NAME: NTSTATUS = -1071513565i32; +pub const STATUS_FWP_NULL_POINTER: NTSTATUS = -1071513572i32; +pub const STATUS_FWP_OUT_OF_BOUNDS: NTSTATUS = -1071513560i32; +pub const STATUS_FWP_PROVIDER_CONTEXT_MISMATCH: NTSTATUS = -1071513548i32; +pub const STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND: NTSTATUS = -1071513594i32; +pub const STATUS_FWP_PROVIDER_NOT_FOUND: NTSTATUS = -1071513595i32; +pub const STATUS_FWP_RESERVED: NTSTATUS = -1071513559i32; +pub const STATUS_FWP_SESSION_ABORTED: NTSTATUS = -1071513584i32; +pub const STATUS_FWP_STILL_ON: NTSTATUS = -1071513533i32; +pub const STATUS_FWP_SUBLAYER_NOT_FOUND: NTSTATUS = -1071513593i32; +pub const STATUS_FWP_TCPIP_NOT_READY: NTSTATUS = -1071513344i32; +pub const STATUS_FWP_TIMEOUT: NTSTATUS = -1071513582i32; +pub const STATUS_FWP_TOO_MANY_CALLOUTS: NTSTATUS = -1071513576i32; +pub const STATUS_FWP_TOO_MANY_SUBLAYERS: NTSTATUS = -1071513546i32; +pub const STATUS_FWP_TRAFFIC_MISMATCH: NTSTATUS = -1071513574i32; +pub const STATUS_FWP_TXN_ABORTED: NTSTATUS = -1071513585i32; +pub const STATUS_FWP_TXN_IN_PROGRESS: NTSTATUS = -1071513586i32; +pub const STATUS_FWP_TYPE_MISMATCH: NTSTATUS = -1071513561i32; +pub const STATUS_FWP_WRONG_SESSION: NTSTATUS = -1071513588i32; +pub const STATUS_FWP_ZERO_LENGTH_ARRAY: NTSTATUS = -1071513566i32; +pub const STATUS_GDI_HANDLE_LEAK: NTSTATUS = -2143354879i32; +pub const STATUS_GENERIC_COMMAND_FAILED: NTSTATUS = -1072365530i32; +pub const STATUS_GENERIC_NOT_MAPPED: NTSTATUS = -1073741594i32; +pub const STATUS_GHOSTED: NTSTATUS = 303i32; +pub const STATUS_GPIO_CLIENT_INFORMATION_INVALID: NTSTATUS = -1073700574i32; +pub const STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE: NTSTATUS = -1073700570i32; +pub const STATUS_GPIO_INTERRUPT_ALREADY_UNMASKED: NTSTATUS = -2147442393i32; +pub const STATUS_GPIO_INVALID_REGISTRATION_PACKET: NTSTATUS = -1073700572i32; +pub const STATUS_GPIO_OPERATION_DENIED: NTSTATUS = -1073700571i32; +pub const STATUS_GPIO_VERSION_NOT_SUPPORTED: NTSTATUS = -1073700573i32; +pub const STATUS_GRACEFUL_DISCONNECT: NTSTATUS = -1073741257i32; +pub const STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED: NTSTATUS = -1071774661i32; +pub const STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY: NTSTATUS = -1071774669i32; +pub const STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE: NTSTATUS = -1071774936i32; +pub const STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET: NTSTATUS = -1071774935i32; +pub const STATUS_GRAPHICS_ADAPTER_WAS_RESET: NTSTATUS = -1071775741i32; +pub const STATUS_GRAPHICS_ALLOCATION_BUSY: NTSTATUS = -1071775486i32; +pub const STATUS_GRAPHICS_ALLOCATION_CLOSED: NTSTATUS = -1071775470i32; +pub const STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST: NTSTATUS = -1071775466i32; +pub const STATUS_GRAPHICS_ALLOCATION_INVALID: NTSTATUS = -1071775482i32; +pub const STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION: NTSTATUS = -1071774886i32; +pub const STATUS_GRAPHICS_CANNOTCOLORCONVERT: NTSTATUS = -1071775736i32; +pub const STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN: NTSTATUS = -1071774909i32; +pub const STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION: NTSTATUS = -1071775479i32; +pub const STATUS_GRAPHICS_CANT_LOCK_MEMORY: NTSTATUS = -1071775487i32; +pub const STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION: NTSTATUS = -1071775471i32; +pub const STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED: NTSTATUS = -1071774670i32; +pub const STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON: NTSTATUS = -1071774667i32; +pub const STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED: NTSTATUS = -1071774668i32; +pub const STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED: NTSTATUS = -1071774719i32; +pub const STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET: NTSTATUS = -1071774884i32; +pub const STATUS_GRAPHICS_COPP_NOT_SUPPORTED: NTSTATUS = -1071774463i32; +pub const STATUS_GRAPHICS_DATASET_IS_EMPTY: NTSTATUS = 1075708747i32; +pub const STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING: NTSTATUS = -1071774329i32; +pub const STATUS_GRAPHICS_DDCCI_INVALID_DATA: NTSTATUS = -1071774331i32; +pub const STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM: NTSTATUS = -1071774325i32; +pub const STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND: NTSTATUS = -1071774327i32; +pub const STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH: NTSTATUS = -1071774326i32; +pub const STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE: NTSTATUS = -1071774330i32; +pub const STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED: NTSTATUS = -1071774332i32; +pub const STATUS_GRAPHICS_DEPENDABLE_CHILD_STATUS: NTSTATUS = 1075708988i32; +pub const STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP: NTSTATUS = -1071774238i32; +pub const STATUS_GRAPHICS_DRIVER_MISMATCH: NTSTATUS = -1071775735i32; +pub const STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION: NTSTATUS = -1071774939i32; +pub const STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET: NTSTATUS = -1071774945i32; +pub const STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET: NTSTATUS = -1071774947i32; +pub const STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED: NTSTATUS = -1071774904i32; +pub const STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE: NTSTATUS = -1071775232i32; +pub const STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST: NTSTATUS = -1071774335i32; +pub const STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA: NTSTATUS = -1071774333i32; +pub const STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA: NTSTATUS = -1071774334i32; +pub const STATUS_GRAPHICS_I2C_NOT_SUPPORTED: NTSTATUS = -1071774336i32; +pub const STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT: NTSTATUS = -1071774891i32; +pub const STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE: NTSTATUS = -1071774666i32; +pub const STATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN: NTSTATUS = -1071775726i32; +pub const STATUS_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED: NTSTATUS = -1071775725i32; +pub const STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER: NTSTATUS = -1071775743i32; +pub const STATUS_GRAPHICS_INTERNAL_ERROR: NTSTATUS = -1071774233i32; +pub const STATUS_GRAPHICS_INVALID_ACTIVE_REGION: NTSTATUS = -1071774965i32; +pub const STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE: NTSTATUS = -1071775468i32; +pub const STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE: NTSTATUS = -1071775469i32; +pub const STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE: NTSTATUS = -1071775472i32; +pub const STATUS_GRAPHICS_INVALID_CLIENT_TYPE: NTSTATUS = -1071774885i32; +pub const STATUS_GRAPHICS_INVALID_COLORBASIS: NTSTATUS = -1071774914i32; +pub const STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE: NTSTATUS = -1071774897i32; +pub const STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER: NTSTATUS = -1071775742i32; +pub const STATUS_GRAPHICS_INVALID_DRIVER_MODEL: NTSTATUS = -1071775740i32; +pub const STATUS_GRAPHICS_INVALID_FREQUENCY: NTSTATUS = -1071774966i32; +pub const STATUS_GRAPHICS_INVALID_GAMMA_RAMP: NTSTATUS = -1071774905i32; +pub const STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM: NTSTATUS = -1071774890i32; +pub const STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR: NTSTATUS = -1071774933i32; +pub const STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET: NTSTATUS = -1071774934i32; +pub const STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN: NTSTATUS = -1071774889i32; +pub const STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE: NTSTATUS = -1071774948i32; +pub const STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET: NTSTATUS = -1071774949i32; +pub const STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT: NTSTATUS = -1071774888i32; +pub const STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET: NTSTATUS = -1071774943i32; +pub const STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE: NTSTATUS = -1071774942i32; +pub const STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION: NTSTATUS = -1071774907i32; +pub const STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE: NTSTATUS = -1071774898i32; +pub const STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL: NTSTATUS = -1071774908i32; +pub const STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE: NTSTATUS = -1071774324i32; +pub const STATUS_GRAPHICS_INVALID_PIXELFORMAT: NTSTATUS = -1071774915i32; +pub const STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE: NTSTATUS = -1071774913i32; +pub const STATUS_GRAPHICS_INVALID_POINTER: NTSTATUS = -1071774236i32; +pub const STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE: NTSTATUS = -1071774918i32; +pub const STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING: NTSTATUS = -1071774894i32; +pub const STATUS_GRAPHICS_INVALID_STRIDE: NTSTATUS = -1071774916i32; +pub const STATUS_GRAPHICS_INVALID_TOTAL_REGION: NTSTATUS = -1071774964i32; +pub const STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET: NTSTATUS = -1071774955i32; +pub const STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET: NTSTATUS = -1071774954i32; +pub const STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE: NTSTATUS = -1071774972i32; +pub const STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE: NTSTATUS = -1071774960i32; +pub const STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET: NTSTATUS = -1071774971i32; +pub const STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE: NTSTATUS = -1071774959i32; +pub const STATUS_GRAPHICS_INVALID_VIDPN: NTSTATUS = -1071774973i32; +pub const STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH: NTSTATUS = -1071774951i32; +pub const STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET: NTSTATUS = -1071774968i32; +pub const STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET: NTSTATUS = -1071774967i32; +pub const STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE: NTSTATUS = -1071774929i32; +pub const STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY: NTSTATUS = -1071774976i32; +pub const STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON: NTSTATUS = -1071774899i32; +pub const STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE: NTSTATUS = -1071774917i32; +pub const STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED: NTSTATUS = -1071774671i32; +pub const STATUS_GRAPHICS_LEADLINK_START_DEFERRED: NTSTATUS = 1075708983i32; +pub const STATUS_GRAPHICS_LINK_CONFIGURATION_IN_PROGRESS: NTSTATUS = -2145517568i32; +pub const STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED: NTSTATUS = -1071774887i32; +pub const STATUS_GRAPHICS_MCA_INTERNAL_ERROR: NTSTATUS = -1071774328i32; +pub const STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED: NTSTATUS = -1071774237i32; +pub const STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET: NTSTATUS = -1071774956i32; +pub const STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE: NTSTATUS = -1071774940i32; +pub const STATUS_GRAPHICS_MODE_NOT_IN_MODESET: NTSTATUS = -1071774902i32; +pub const STATUS_GRAPHICS_MODE_NOT_PINNED: NTSTATUS = 1075708679i32; +pub const STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET: NTSTATUS = -1071774931i32; +pub const STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE: NTSTATUS = -1071774930i32; +pub const STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET: NTSTATUS = -1071774932i32; +pub const STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER: NTSTATUS = -1071774924i32; +pub const STATUS_GRAPHICS_MONITOR_NOT_CONNECTED: NTSTATUS = -1071774920i32; +pub const STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS: NTSTATUS = -1071774323i32; +pub const STATUS_GRAPHICS_MPO_ALLOCATION_UNPINNED: NTSTATUS = -1071775720i32; +pub const STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED: NTSTATUS = -1071774903i32; +pub const STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER: NTSTATUS = -1071774672i32; +pub const STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER: NTSTATUS = -1071775744i32; +pub const STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER: NTSTATUS = -1071774664i32; +pub const STATUS_GRAPHICS_NO_ACTIVE_VIDPN: NTSTATUS = -1071774922i32; +pub const STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS: NTSTATUS = -1071774892i32; +pub const STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET: NTSTATUS = -1071774925i32; +pub const STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME: NTSTATUS = -1071774239i32; +pub const STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT: NTSTATUS = -1071774911i32; +pub const STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE: NTSTATUS = -1071774235i32; +pub const STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET: NTSTATUS = 1075708748i32; +pub const STATUS_GRAPHICS_NO_PREFERRED_MODE: NTSTATUS = 1075708702i32; +pub const STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN: NTSTATUS = -1071774941i32; +pub const STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY: NTSTATUS = -1071774950i32; +pub const STATUS_GRAPHICS_NO_VIDEO_MEMORY: NTSTATUS = -1071775488i32; +pub const STATUS_GRAPHICS_NO_VIDPNMGR: NTSTATUS = -1071774923i32; +pub const STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED: NTSTATUS = -1071774240i32; +pub const STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE: NTSTATUS = -1071774440i32; +pub const STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR: NTSTATUS = -1071774434i32; +pub const STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET: NTSTATUS = -1071774442i32; +pub const STATUS_GRAPHICS_OPM_INTERNAL_ERROR: NTSTATUS = -1071774453i32; +pub const STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST: NTSTATUS = -1071774431i32; +pub const STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS: NTSTATUS = -1071774461i32; +pub const STATUS_GRAPHICS_OPM_INVALID_HANDLE: NTSTATUS = -1071774452i32; +pub const STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST: NTSTATUS = -1071774435i32; +pub const STATUS_GRAPHICS_OPM_INVALID_SRM: NTSTATUS = -1071774446i32; +pub const STATUS_GRAPHICS_OPM_NOT_SUPPORTED: NTSTATUS = -1071774464i32; +pub const STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST: NTSTATUS = -1071774459i32; +pub const STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP: NTSTATUS = -1071774444i32; +pub const STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA: NTSTATUS = -1071774443i32; +pub const STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP: NTSTATUS = -1071774445i32; +pub const STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS: NTSTATUS = -1071774436i32; +pub const STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS: NTSTATUS = -1071774433i32; +pub const STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS: NTSTATUS = -1071774438i32; +pub const STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH: NTSTATUS = -1071774441i32; +pub const STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED: NTSTATUS = -1071774432i32; +pub const STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED: NTSTATUS = -1071774449i32; +pub const STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED: NTSTATUS = -1071774448i32; +pub const STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL: NTSTATUS = -1071774234i32; +pub const STATUS_GRAPHICS_PARTIAL_DATA_POPULATED: NTSTATUS = 1075707914i32; +pub const STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY: NTSTATUS = -1071774957i32; +pub const STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED: NTSTATUS = 1075708753i32; +pub const STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED: NTSTATUS = -1071774906i32; +pub const STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY: NTSTATUS = -1071774937i32; +pub const STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET: NTSTATUS = -1071774958i32; +pub const STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY: NTSTATUS = 1075708985i32; +pub const STATUS_GRAPHICS_PRESENT_BUFFER_NOT_BOUND: NTSTATUS = -1071775728i32; +pub const STATUS_GRAPHICS_PRESENT_DENIED: NTSTATUS = -1071775737i32; +pub const STATUS_GRAPHICS_PRESENT_INVALID_WINDOW: NTSTATUS = -1071775729i32; +pub const STATUS_GRAPHICS_PRESENT_MODE_CHANGED: NTSTATUS = -1071775739i32; +pub const STATUS_GRAPHICS_PRESENT_OCCLUDED: NTSTATUS = -1071775738i32; +pub const STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED: NTSTATUS = -1071775733i32; +pub const STATUS_GRAPHICS_PRESENT_UNOCCLUDED: NTSTATUS = -1071775732i32; +pub const STATUS_GRAPHICS_PVP_HFS_FAILED: NTSTATUS = -1071774447i32; +pub const STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH: NTSTATUS = -1071774450i32; +pub const STATUS_GRAPHICS_RESOURCES_NOT_RELATED: NTSTATUS = -1071774928i32; +pub const STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS: NTSTATUS = -1071774232i32; +pub const STATUS_GRAPHICS_SKIP_ALLOCATION_PREPARATION: NTSTATUS = 1075708417i32; +pub const STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET: NTSTATUS = -1071774953i32; +pub const STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE: NTSTATUS = -1071774927i32; +pub const STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY: NTSTATUS = -1071774919i32; +pub const STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED: NTSTATUS = -1071774720i32; +pub const STATUS_GRAPHICS_STALE_MODESET: NTSTATUS = -1071774944i32; +pub const STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY: NTSTATUS = -1071774921i32; +pub const STATUS_GRAPHICS_START_DEFERRED: NTSTATUS = 1075708986i32; +pub const STATUS_GRAPHICS_TARGET_ALREADY_IN_SET: NTSTATUS = -1071774952i32; +pub const STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE: NTSTATUS = -1071774926i32; +pub const STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY: NTSTATUS = -1071774912i32; +pub const STATUS_GRAPHICS_TOO_MANY_REFERENCES: NTSTATUS = -1071775485i32; +pub const STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED: NTSTATUS = -1071774893i32; +pub const STATUS_GRAPHICS_TRY_AGAIN_LATER: NTSTATUS = -1071775484i32; +pub const STATUS_GRAPHICS_TRY_AGAIN_NOW: NTSTATUS = -1071775483i32; +pub const STATUS_GRAPHICS_UAB_NOT_SUPPORTED: NTSTATUS = -1071774462i32; +pub const STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS: NTSTATUS = -1071774896i32; +pub const STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS: NTSTATUS = 1075708975i32; +pub const STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE: NTSTATUS = -1071775481i32; +pub const STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED: NTSTATUS = -1071775480i32; +pub const STATUS_GRAPHICS_VAIL_STATE_CHANGED: NTSTATUS = -1071775727i32; +pub const STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES: NTSTATUS = -1071774938i32; +pub const STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED: NTSTATUS = -1071774970i32; +pub const STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE: NTSTATUS = -1071774910i32; +pub const STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED: NTSTATUS = -1071774974i32; +pub const STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED: NTSTATUS = -1071774975i32; +pub const STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE: NTSTATUS = -1071775731i32; +pub const STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED: NTSTATUS = -1071775730i32; +pub const STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE: NTSTATUS = -1071775467i32; +pub const STATUS_GROUP_EXISTS: NTSTATUS = -1073741723i32; +pub const STATUS_GUARD_PAGE_VIOLATION: NTSTATUS = -2147483647i32; +pub const STATUS_GUIDS_EXHAUSTED: NTSTATUS = -1073741693i32; +pub const STATUS_GUID_SUBSTITUTION_MADE: NTSTATUS = -2147483636i32; +pub const STATUS_HANDLES_CLOSED: NTSTATUS = -2147483638i32; +pub const STATUS_HANDLE_NOT_CLOSABLE: NTSTATUS = -1073741259i32; +pub const STATUS_HANDLE_NO_LONGER_VALID: NTSTATUS = -1072103384i32; +pub const STATUS_HANDLE_REVOKED: NTSTATUS = -1073700858i32; +pub const STATUS_HARDWARE_MEMORY_ERROR: NTSTATUS = -1073740023i32; +pub const STATUS_HASH_NOT_PRESENT: NTSTATUS = -1073700607i32; +pub const STATUS_HASH_NOT_SUPPORTED: NTSTATUS = -1073700608i32; +pub const STATUS_HAS_SYSTEM_CRITICAL_FILES: NTSTATUS = -1073740611i32; +pub const STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED: NTSTATUS = -1069285373i32; +pub const STATUS_HDAUDIO_EMPTY_CONNECTION_LIST: NTSTATUS = -1069285374i32; +pub const STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED: NTSTATUS = -1069285372i32; +pub const STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY: NTSTATUS = -1069285371i32; +pub const STATUS_HEAP_CORRUPTION: NTSTATUS = -1073740940i32; +pub const STATUS_HEURISTIC_DAMAGE_POSSIBLE: NTSTATUS = 1075380225i32; +pub const STATUS_HIBERNATED: NTSTATUS = 1073741866i32; +pub const STATUS_HIBERNATION_FAILURE: NTSTATUS = -1073740783i32; +pub const STATUS_HIVE_UNLOADED: NTSTATUS = -1073740763i32; +pub const STATUS_HMAC_NOT_SUPPORTED: NTSTATUS = -1073700863i32; +pub const STATUS_HOPLIMIT_EXCEEDED: NTSTATUS = -1073700846i32; +pub const STATUS_HOST_DOWN: NTSTATUS = -1073740976i32; +pub const STATUS_HOST_UNREACHABLE: NTSTATUS = -1073741251i32; +pub const STATUS_HUNG_DISPLAY_DRIVER_THREAD: NTSTATUS = -1073740779i32; +pub const STATUS_HV_ACCESS_DENIED: NTSTATUS = -1070268410i32; +pub const STATUS_HV_ACKNOWLEDGED: NTSTATUS = -1070268394i32; +pub const STATUS_HV_CALL_PENDING: NTSTATUS = -1070268295i32; +pub const STATUS_HV_CPUID_FEATURE_VALIDATION_ERROR: NTSTATUS = -1070268356i32; +pub const STATUS_HV_CPUID_XSAVE_FEATURE_VALIDATION_ERROR: NTSTATUS = -1070268355i32; +pub const STATUS_HV_DEVICE_NOT_IN_DOMAIN: NTSTATUS = -1070268298i32; +pub const STATUS_HV_EVENT_BUFFER_ALREADY_FREED: NTSTATUS = -1070268300i32; +pub const STATUS_HV_FEATURE_UNAVAILABLE: NTSTATUS = -1070268386i32; +pub const STATUS_HV_INACTIVE: NTSTATUS = -1070268388i32; +pub const STATUS_HV_INSUFFICIENT_BUFFER: NTSTATUS = -1070268365i32; +pub const STATUS_HV_INSUFFICIENT_BUFFERS: NTSTATUS = -1070268397i32; +pub const STATUS_HV_INSUFFICIENT_CONTIGUOUS_MEMORY: NTSTATUS = -1070268299i32; +pub const STATUS_HV_INSUFFICIENT_CONTIGUOUS_MEMORY_MIRRORING: NTSTATUS = -1070268286i32; +pub const STATUS_HV_INSUFFICIENT_CONTIGUOUS_ROOT_MEMORY: NTSTATUS = -1070268285i32; +pub const STATUS_HV_INSUFFICIENT_CONTIGUOUS_ROOT_MEMORY_MIRRORING: NTSTATUS = -1070268283i32; +pub const STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS: NTSTATUS = -1070268360i32; +pub const STATUS_HV_INSUFFICIENT_MEMORY: NTSTATUS = -1070268405i32; +pub const STATUS_HV_INSUFFICIENT_MEMORY_MIRRORING: NTSTATUS = -1070268287i32; +pub const STATUS_HV_INSUFFICIENT_ROOT_MEMORY: NTSTATUS = -1070268301i32; +pub const STATUS_HV_INSUFFICIENT_ROOT_MEMORY_MIRRORING: NTSTATUS = -1070268284i32; +pub const STATUS_HV_INVALID_ALIGNMENT: NTSTATUS = -1070268412i32; +pub const STATUS_HV_INVALID_CONNECTION_ID: NTSTATUS = -1070268398i32; +pub const STATUS_HV_INVALID_CPU_GROUP_ID: NTSTATUS = -1070268305i32; +pub const STATUS_HV_INVALID_CPU_GROUP_STATE: NTSTATUS = -1070268304i32; +pub const STATUS_HV_INVALID_DEVICE_ID: NTSTATUS = -1070268329i32; +pub const STATUS_HV_INVALID_DEVICE_STATE: NTSTATUS = -1070268328i32; +pub const STATUS_HV_INVALID_HYPERCALL_CODE: NTSTATUS = -1070268414i32; +pub const STATUS_HV_INVALID_HYPERCALL_INPUT: NTSTATUS = -1070268413i32; +pub const STATUS_HV_INVALID_LP_INDEX: NTSTATUS = -1070268351i32; +pub const STATUS_HV_INVALID_PARAMETER: NTSTATUS = -1070268411i32; +pub const STATUS_HV_INVALID_PARTITION_ID: NTSTATUS = -1070268403i32; +pub const STATUS_HV_INVALID_PARTITION_STATE: NTSTATUS = -1070268409i32; +pub const STATUS_HV_INVALID_PORT_ID: NTSTATUS = -1070268399i32; +pub const STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO: NTSTATUS = -1070268390i32; +pub const STATUS_HV_INVALID_REGISTER_VALUE: NTSTATUS = -1070268336i32; +pub const STATUS_HV_INVALID_SAVE_RESTORE_STATE: NTSTATUS = -1070268393i32; +pub const STATUS_HV_INVALID_SYNIC_STATE: NTSTATUS = -1070268392i32; +pub const STATUS_HV_INVALID_VP_INDEX: NTSTATUS = -1070268402i32; +pub const STATUS_HV_INVALID_VP_STATE: NTSTATUS = -1070268395i32; +pub const STATUS_HV_INVALID_VTL_STATE: NTSTATUS = -1070268335i32; +pub const STATUS_HV_MSR_ACCESS_FAILED: NTSTATUS = -1070268288i32; +pub const STATUS_HV_NESTED_VM_EXIT: NTSTATUS = -1070268297i32; +pub const STATUS_HV_NOT_ACKNOWLEDGED: NTSTATUS = -1070268396i32; +pub const STATUS_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE: NTSTATUS = -1070268302i32; +pub const STATUS_HV_NOT_PRESENT: NTSTATUS = -1070264320i32; +pub const STATUS_HV_NO_DATA: NTSTATUS = -1070268389i32; +pub const STATUS_HV_NO_RESOURCES: NTSTATUS = -1070268387i32; +pub const STATUS_HV_NX_NOT_DETECTED: NTSTATUS = -1070268331i32; +pub const STATUS_HV_OBJECT_IN_USE: NTSTATUS = -1070268391i32; +pub const STATUS_HV_OPERATION_DENIED: NTSTATUS = -1070268408i32; +pub const STATUS_HV_OPERATION_FAILED: NTSTATUS = -1070268303i32; +pub const STATUS_HV_PAGE_REQUEST_INVALID: NTSTATUS = -1070268320i32; +pub const STATUS_HV_PARTITION_TOO_DEEP: NTSTATUS = -1070268404i32; +pub const STATUS_HV_PENDING_PAGE_REQUESTS: NTSTATUS = 3473497i32; +pub const STATUS_HV_PROCESSOR_STARTUP_TIMEOUT: NTSTATUS = -1070268354i32; +pub const STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE: NTSTATUS = -1070268406i32; +pub const STATUS_HV_SMX_ENABLED: NTSTATUS = -1070268353i32; +pub const STATUS_HV_UNKNOWN_PROPERTY: NTSTATUS = -1070268407i32; +pub const STATUS_ILLEGAL_CHARACTER: NTSTATUS = -1073741471i32; +pub const STATUS_ILLEGAL_DLL_RELOCATION: NTSTATUS = -1073741207i32; +pub const STATUS_ILLEGAL_ELEMENT_ADDRESS: NTSTATUS = -1073741179i32; +pub const STATUS_ILLEGAL_FLOAT_CONTEXT: NTSTATUS = -1073741494i32; +pub const STATUS_ILLEGAL_FUNCTION: NTSTATUS = -1073741649i32; +pub const STATUS_ILLEGAL_INSTRUCTION: NTSTATUS = -1073741795i32; +pub const STATUS_ILL_FORMED_PASSWORD: NTSTATUS = -1073741717i32; +pub const STATUS_ILL_FORMED_SERVICE_ENTRY: NTSTATUS = -1073741472i32; +pub const STATUS_IMAGE_ALREADY_LOADED: NTSTATUS = -1073741554i32; +pub const STATUS_IMAGE_ALREADY_LOADED_AS_DLL: NTSTATUS = -1073741411i32; +pub const STATUS_IMAGE_AT_DIFFERENT_BASE: NTSTATUS = 1073741878i32; +pub const STATUS_IMAGE_CERT_EXPIRED: NTSTATUS = -1073740283i32; +pub const STATUS_IMAGE_CERT_REVOKED: NTSTATUS = -1073740285i32; +pub const STATUS_IMAGE_CHECKSUM_MISMATCH: NTSTATUS = -1073741279i32; +pub const STATUS_IMAGE_LOADED_AS_PATCH_IMAGE: NTSTATUS = -1073740608i32; +pub const STATUS_IMAGE_MACHINE_TYPE_MISMATCH: NTSTATUS = 1073741838i32; +pub const STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE: NTSTATUS = 1073741859i32; +pub const STATUS_IMAGE_MP_UP_MISMATCH: NTSTATUS = -1073741239i32; +pub const STATUS_IMAGE_NOT_AT_BASE: NTSTATUS = 1073741827i32; +pub const STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT: NTSTATUS = -1073741405i32; +pub const STATUS_IMPLEMENTATION_LIMIT: NTSTATUS = -1073740757i32; +pub const STATUS_INCOMPATIBLE_DRIVER_BLOCKED: NTSTATUS = -1073740764i32; +pub const STATUS_INCOMPATIBLE_FILE_MAP: NTSTATUS = -1073741747i32; +pub const STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING: NTSTATUS = -1073741410i32; +pub const STATUS_INCORRECT_ACCOUNT_TYPE: NTSTATUS = -1073700727i32; +pub const STATUS_INDEX_OUT_OF_BOUNDS: NTSTATUS = -1073740591i32; +pub const STATUS_INDOUBT_TRANSACTIONS_EXIST: NTSTATUS = -1072103366i32; +pub const STATUS_INFO_LENGTH_MISMATCH: NTSTATUS = -1073741820i32; +pub const STATUS_INSTANCE_NOT_AVAILABLE: NTSTATUS = -1073741653i32; +pub const STATUS_INSTRUCTION_MISALIGNMENT: NTSTATUS = -1073741654i32; +pub const STATUS_INSUFFICIENT_LOGON_INFO: NTSTATUS = -1073741232i32; +pub const STATUS_INSUFFICIENT_NVRAM_RESOURCES: NTSTATUS = -1073740716i32; +pub const STATUS_INSUFFICIENT_POWER: NTSTATUS = -1073741090i32; +pub const STATUS_INSUFFICIENT_RESOURCES: NTSTATUS = -1073741670i32; +pub const STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE: NTSTATUS = -1073740778i32; +pub const STATUS_INSUFFICIENT_VIRTUAL_ADDR_RESOURCES: NTSTATUS = -1073740606i32; +pub const STATUS_INSUFF_SERVER_RESOURCES: NTSTATUS = -1073741307i32; +pub const STATUS_INTEGER_DIVIDE_BY_ZERO: NTSTATUS = -1073741676i32; +pub const STATUS_INTEGER_OVERFLOW: NTSTATUS = -1073741675i32; +pub const STATUS_INTERMIXED_KERNEL_EA_OPERATION: NTSTATUS = -1073740687i32; +pub const STATUS_INTERNAL_DB_CORRUPTION: NTSTATUS = -1073741596i32; +pub const STATUS_INTERNAL_DB_ERROR: NTSTATUS = -1073741480i32; +pub const STATUS_INTERNAL_ERROR: NTSTATUS = -1073741595i32; +pub const STATUS_INTERRUPTED: NTSTATUS = -1073740523i32; +pub const STATUS_INTERRUPT_STILL_CONNECTED: NTSTATUS = 296i32; +pub const STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED: NTSTATUS = 295i32; +pub const STATUS_INVALID_ACCOUNT_NAME: NTSTATUS = -1073741726i32; +pub const STATUS_INVALID_ACE_CONDITION: NTSTATUS = -1073741406i32; +pub const STATUS_INVALID_ACL: NTSTATUS = -1073741705i32; +pub const STATUS_INVALID_ADDRESS: NTSTATUS = -1073741503i32; +pub const STATUS_INVALID_ADDRESS_COMPONENT: NTSTATUS = -1073741305i32; +pub const STATUS_INVALID_ADDRESS_WILDCARD: NTSTATUS = -1073741304i32; +pub const STATUS_INVALID_BLOCK_LENGTH: NTSTATUS = -1073741453i32; +pub const STATUS_INVALID_BUFFER_SIZE: NTSTATUS = -1073741306i32; +pub const STATUS_INVALID_CAP: NTSTATUS = -1073740539i32; +pub const STATUS_INVALID_CID: NTSTATUS = -1073741813i32; +pub const STATUS_INVALID_COMPUTER_NAME: NTSTATUS = -1073741534i32; +pub const STATUS_INVALID_CONNECTION: NTSTATUS = -1073741504i32; +pub const STATUS_INVALID_CRUNTIME_PARAMETER: NTSTATUS = -1073740777i32; +pub const STATUS_INVALID_DEVICE_OBJECT_PARAMETER: NTSTATUS = -1073740951i32; +pub const STATUS_INVALID_DEVICE_REQUEST: NTSTATUS = -1073741808i32; +pub const STATUS_INVALID_DEVICE_STATE: NTSTATUS = -1073741436i32; +pub const STATUS_INVALID_DISPOSITION: NTSTATUS = -1073741786i32; +pub const STATUS_INVALID_DOMAIN_ROLE: NTSTATUS = -1073741602i32; +pub const STATUS_INVALID_DOMAIN_STATE: NTSTATUS = -1073741603i32; +pub const STATUS_INVALID_EA_FLAG: NTSTATUS = -2147483627i32; +pub const STATUS_INVALID_EA_NAME: NTSTATUS = -2147483629i32; +pub const STATUS_INVALID_EXCEPTION_HANDLER: NTSTATUS = -1073741403i32; +pub const STATUS_INVALID_FIELD_IN_PARAMETER_LIST: NTSTATUS = -1073740683i32; +pub const STATUS_INVALID_FILE_FOR_SECTION: NTSTATUS = -1073741792i32; +pub const STATUS_INVALID_GROUP_ATTRIBUTES: NTSTATUS = -1073741660i32; +pub const STATUS_INVALID_HANDLE: NTSTATUS = -1073741816i32; +pub const STATUS_INVALID_HW_PROFILE: NTSTATUS = -1073741216i32; +pub const STATUS_INVALID_IDN_NORMALIZATION: NTSTATUS = -1073740010i32; +pub const STATUS_INVALID_ID_AUTHORITY: NTSTATUS = -1073741692i32; +pub const STATUS_INVALID_IMAGE_FORMAT: NTSTATUS = -1073741701i32; +pub const STATUS_INVALID_IMAGE_HASH: NTSTATUS = -1073740760i32; +pub const STATUS_INVALID_IMAGE_LE_FORMAT: NTSTATUS = -1073741522i32; +pub const STATUS_INVALID_IMAGE_NE_FORMAT: NTSTATUS = -1073741541i32; +pub const STATUS_INVALID_IMAGE_NOT_MZ: NTSTATUS = -1073741521i32; +pub const STATUS_INVALID_IMAGE_PROTECT: NTSTATUS = -1073741520i32; +pub const STATUS_INVALID_IMAGE_WIN_16: NTSTATUS = -1073741519i32; +pub const STATUS_INVALID_IMAGE_WIN_32: NTSTATUS = -1073740967i32; +pub const STATUS_INVALID_IMAGE_WIN_64: NTSTATUS = -1073740966i32; +pub const STATUS_INVALID_IMPORT_OF_NON_DLL: NTSTATUS = -1073740945i32; +pub const STATUS_INVALID_INFO_CLASS: NTSTATUS = -1073741821i32; +pub const STATUS_INVALID_INITIATOR_TARGET_PATH: NTSTATUS = -1073740681i32; +pub const STATUS_INVALID_KERNEL_INFO_VERSION: NTSTATUS = -1073700860i32; +pub const STATUS_INVALID_LABEL: NTSTATUS = -1073740730i32; +pub const STATUS_INVALID_LDT_DESCRIPTOR: NTSTATUS = -1073741542i32; +pub const STATUS_INVALID_LDT_OFFSET: NTSTATUS = -1073741543i32; +pub const STATUS_INVALID_LDT_SIZE: NTSTATUS = -1073741544i32; +pub const STATUS_INVALID_LEVEL: NTSTATUS = -1073741496i32; +pub const STATUS_INVALID_LOCK_RANGE: NTSTATUS = -1073741407i32; +pub const STATUS_INVALID_LOCK_SEQUENCE: NTSTATUS = -1073741794i32; +pub const STATUS_INVALID_LOGON_HOURS: NTSTATUS = -1073741713i32; +pub const STATUS_INVALID_LOGON_TYPE: NTSTATUS = -1073741557i32; +pub const STATUS_INVALID_MEMBER: NTSTATUS = -1073741445i32; +pub const STATUS_INVALID_MESSAGE: NTSTATUS = -1073740030i32; +pub const STATUS_INVALID_NETWORK_RESPONSE: NTSTATUS = -1073741629i32; +pub const STATUS_INVALID_OFFSET_ALIGNMENT: NTSTATUS = -1073740684i32; +pub const STATUS_INVALID_OPLOCK_PROTOCOL: NTSTATUS = -1073741597i32; +pub const STATUS_INVALID_OWNER: NTSTATUS = -1073741734i32; +pub const STATUS_INVALID_PACKAGE_SID_LENGTH: NTSTATUS = -1073700350i32; +pub const STATUS_INVALID_PAGE_PROTECTION: NTSTATUS = -1073741755i32; +pub const STATUS_INVALID_PARAMETER: NTSTATUS = -1073741811i32; +pub const STATUS_INVALID_PARAMETER_1: NTSTATUS = -1073741585i32; +pub const STATUS_INVALID_PARAMETER_10: NTSTATUS = -1073741576i32; +pub const STATUS_INVALID_PARAMETER_11: NTSTATUS = -1073741575i32; +pub const STATUS_INVALID_PARAMETER_12: NTSTATUS = -1073741574i32; +pub const STATUS_INVALID_PARAMETER_2: NTSTATUS = -1073741584i32; +pub const STATUS_INVALID_PARAMETER_3: NTSTATUS = -1073741583i32; +pub const STATUS_INVALID_PARAMETER_4: NTSTATUS = -1073741582i32; +pub const STATUS_INVALID_PARAMETER_5: NTSTATUS = -1073741581i32; +pub const STATUS_INVALID_PARAMETER_6: NTSTATUS = -1073741580i32; +pub const STATUS_INVALID_PARAMETER_7: NTSTATUS = -1073741579i32; +pub const STATUS_INVALID_PARAMETER_8: NTSTATUS = -1073741578i32; +pub const STATUS_INVALID_PARAMETER_9: NTSTATUS = -1073741577i32; +pub const STATUS_INVALID_PARAMETER_MIX: NTSTATUS = -1073741776i32; +pub const STATUS_INVALID_PEP_INFO_VERSION: NTSTATUS = -1073700859i32; +pub const STATUS_INVALID_PIPE_STATE: NTSTATUS = -1073741651i32; +pub const STATUS_INVALID_PLUGPLAY_DEVICE_PATH: NTSTATUS = -1073741215i32; +pub const STATUS_INVALID_PORT_ATTRIBUTES: NTSTATUS = -1073741778i32; +pub const STATUS_INVALID_PORT_HANDLE: NTSTATUS = -1073741758i32; +pub const STATUS_INVALID_PRIMARY_GROUP: NTSTATUS = -1073741733i32; +pub const STATUS_INVALID_QUOTA_LOWER: NTSTATUS = -1073741775i32; +pub const STATUS_INVALID_READ_MODE: NTSTATUS = -1073741644i32; +pub const STATUS_INVALID_RUNLEVEL_SETTING: NTSTATUS = -1073700542i32; +pub const STATUS_INVALID_SECURITY_DESCR: NTSTATUS = -1073741703i32; +pub const STATUS_INVALID_SERVER_STATE: NTSTATUS = -1073741604i32; +pub const STATUS_INVALID_SESSION: NTSTATUS = -1073740715i32; +pub const STATUS_INVALID_SID: NTSTATUS = -1073741704i32; +pub const STATUS_INVALID_SIGNATURE: NTSTATUS = -1073700864i32; +pub const STATUS_INVALID_STATE_TRANSITION: NTSTATUS = -1073700861i32; +pub const STATUS_INVALID_SUB_AUTHORITY: NTSTATUS = -1073741706i32; +pub const STATUS_INVALID_SYSTEM_SERVICE: NTSTATUS = -1073741796i32; +pub const STATUS_INVALID_TASK_INDEX: NTSTATUS = -1073740543i32; +pub const STATUS_INVALID_TASK_NAME: NTSTATUS = -1073740544i32; +pub const STATUS_INVALID_THREAD: NTSTATUS = -1073740004i32; +pub const STATUS_INVALID_TOKEN: NTSTATUS = -1073740699i32; +pub const STATUS_INVALID_TRANSACTION: NTSTATUS = -1072103422i32; +pub const STATUS_INVALID_UNWIND_TARGET: NTSTATUS = -1073741783i32; +pub const STATUS_INVALID_USER_BUFFER: NTSTATUS = -1073741592i32; +pub const STATUS_INVALID_USER_PRINCIPAL_NAME: NTSTATUS = -1073740772i32; +pub const STATUS_INVALID_VARIANT: NTSTATUS = -1073741262i32; +pub const STATUS_INVALID_VIEW_SIZE: NTSTATUS = -1073741793i32; +pub const STATUS_INVALID_VOLUME_LABEL: NTSTATUS = -1073741690i32; +pub const STATUS_INVALID_WEIGHT: NTSTATUS = -1073740712i32; +pub const STATUS_INVALID_WORKSTATION: NTSTATUS = -1073741712i32; +pub const STATUS_IN_PAGE_ERROR: NTSTATUS = -1073741818i32; +pub const STATUS_IORING_COMPLETION_QUEUE_TOO_BIG: NTSTATUS = -1069154299i32; +pub const STATUS_IORING_COMPLETION_QUEUE_TOO_FULL: NTSTATUS = -1069154296i32; +pub const STATUS_IORING_CORRUPT: NTSTATUS = -1069154297i32; +pub const STATUS_IORING_REQUIRED_FLAG_NOT_SUPPORTED: NTSTATUS = -1069154303i32; +pub const STATUS_IORING_SUBMISSION_QUEUE_FULL: NTSTATUS = -1069154302i32; +pub const STATUS_IORING_SUBMISSION_QUEUE_TOO_BIG: NTSTATUS = -1069154300i32; +pub const STATUS_IORING_SUBMIT_IN_PROGRESS: NTSTATUS = -1069154298i32; +pub const STATUS_IORING_VERSION_NOT_SUPPORTED: NTSTATUS = -1069154301i32; +pub const STATUS_IO_DEVICE_ERROR: NTSTATUS = -1073741435i32; +pub const STATUS_IO_DEVICE_INVALID_DATA: NTSTATUS = -1073741392i32; +pub const STATUS_IO_OPERATION_TIMEOUT: NTSTATUS = -1073740675i32; +pub const STATUS_IO_PREEMPTED: NTSTATUS = -1068433407i32; +pub const STATUS_IO_PRIVILEGE_FAILED: NTSTATUS = -1073741513i32; +pub const STATUS_IO_REISSUE_AS_CACHED: NTSTATUS = -1073479623i32; +pub const STATUS_IO_REPARSE_DATA_INVALID: NTSTATUS = -1073741192i32; +pub const STATUS_IO_REPARSE_TAG_INVALID: NTSTATUS = -1073741194i32; +pub const STATUS_IO_REPARSE_TAG_MISMATCH: NTSTATUS = -1073741193i32; +pub const STATUS_IO_REPARSE_TAG_NOT_HANDLED: NTSTATUS = -1073741191i32; +pub const STATUS_IO_TIMEOUT: NTSTATUS = -1073741643i32; +pub const STATUS_IO_UNALIGNED_WRITE: NTSTATUS = -1073741391i32; +pub const STATUS_IPSEC_AUTH_FIREWALL_DROP: NTSTATUS = -1070202872i32; +pub const STATUS_IPSEC_BAD_SPI: NTSTATUS = -1070202879i32; +pub const STATUS_IPSEC_CLEAR_TEXT_DROP: NTSTATUS = -1070202873i32; +pub const STATUS_IPSEC_DOSP_BLOCK: NTSTATUS = -1070170112i32; +pub const STATUS_IPSEC_DOSP_INVALID_PACKET: NTSTATUS = -1070170110i32; +pub const STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED: NTSTATUS = -1070170107i32; +pub const STATUS_IPSEC_DOSP_MAX_ENTRIES: NTSTATUS = -1070170108i32; +pub const STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES: NTSTATUS = -1070170106i32; +pub const STATUS_IPSEC_DOSP_RECEIVED_MULTICAST: NTSTATUS = -1070170111i32; +pub const STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED: NTSTATUS = -1070170109i32; +pub const STATUS_IPSEC_INTEGRITY_CHECK_FAILED: NTSTATUS = -1070202874i32; +pub const STATUS_IPSEC_INVALID_PACKET: NTSTATUS = -1070202875i32; +pub const STATUS_IPSEC_QUEUE_OVERFLOW: NTSTATUS = -1073700848i32; +pub const STATUS_IPSEC_REPLAY_CHECK_FAILED: NTSTATUS = -1070202876i32; +pub const STATUS_IPSEC_SA_LIFETIME_EXPIRED: NTSTATUS = -1070202878i32; +pub const STATUS_IPSEC_THROTTLE_DROP: NTSTATUS = -1070202871i32; +pub const STATUS_IPSEC_WRONG_SA: NTSTATUS = -1070202877i32; +pub const STATUS_IP_ADDRESS_CONFLICT1: NTSTATUS = -1073741228i32; +pub const STATUS_IP_ADDRESS_CONFLICT2: NTSTATUS = -1073741227i32; +pub const STATUS_ISSUING_CA_UNTRUSTED: NTSTATUS = -1073740918i32; +pub const STATUS_ISSUING_CA_UNTRUSTED_KDC: NTSTATUS = -1073740787i32; +pub const STATUS_JOB_NOT_EMPTY: NTSTATUS = -1073740529i32; +pub const STATUS_JOB_NO_CONTAINER: NTSTATUS = -1073740535i32; +pub const STATUS_JOURNAL_DELETE_IN_PROGRESS: NTSTATUS = -1073741129i32; +pub const STATUS_JOURNAL_ENTRY_DELETED: NTSTATUS = -1073741105i32; +pub const STATUS_JOURNAL_NOT_ACTIVE: NTSTATUS = -1073741128i32; +pub const STATUS_KDC_CERT_EXPIRED: NTSTATUS = -1073740786i32; +pub const STATUS_KDC_CERT_REVOKED: NTSTATUS = -1073740785i32; +pub const STATUS_KDC_INVALID_REQUEST: NTSTATUS = -1073741061i32; +pub const STATUS_KDC_UNABLE_TO_REFER: NTSTATUS = -1073741060i32; +pub const STATUS_KDC_UNKNOWN_ETYPE: NTSTATUS = -1073741059i32; +pub const STATUS_KERNEL_APC: NTSTATUS = 256i32; +pub const STATUS_KERNEL_EXECUTABLE_MEMORY_WRITE: NTSTATUS = -1073739996i32; +pub const STATUS_KEY_DELETED: NTSTATUS = -1073741444i32; +pub const STATUS_KEY_HAS_CHILDREN: NTSTATUS = -1073741440i32; +pub const STATUS_LAST_ADMIN: NTSTATUS = -1073741719i32; +pub const STATUS_LICENSE_QUOTA_EXCEEDED: NTSTATUS = -1073741223i32; +pub const STATUS_LICENSE_VIOLATION: NTSTATUS = -1073741206i32; +pub const STATUS_LINK_FAILED: NTSTATUS = -1073741506i32; +pub const STATUS_LINK_TIMEOUT: NTSTATUS = -1073741505i32; +pub const STATUS_LM_CROSS_ENCRYPTION_REQUIRED: NTSTATUS = -1073741441i32; +pub const STATUS_LOCAL_DISCONNECT: NTSTATUS = -1073741509i32; +pub const STATUS_LOCAL_POLICY_MODIFICATION_NOT_SUPPORTED: NTSTATUS = -1073700726i32; +pub const STATUS_LOCAL_USER_SESSION_KEY: NTSTATUS = 1073741830i32; +pub const STATUS_LOCK_NOT_GRANTED: NTSTATUS = -1073741739i32; +pub const STATUS_LOGIN_TIME_RESTRICTION: NTSTATUS = -1073741241i32; +pub const STATUS_LOGIN_WKSTA_RESTRICTION: NTSTATUS = -1073741240i32; +pub const STATUS_LOGON_NOT_GRANTED: NTSTATUS = -1073741483i32; +pub const STATUS_LOGON_SERVER_CONFLICT: NTSTATUS = -1073741518i32; +pub const STATUS_LOGON_SESSION_COLLISION: NTSTATUS = -1073741563i32; +pub const STATUS_LOGON_SESSION_EXISTS: NTSTATUS = -1073741586i32; +pub const STATUS_LOG_APPENDED_FLUSH_FAILED: NTSTATUS = -1072037841i32; +pub const STATUS_LOG_ARCHIVE_IN_PROGRESS: NTSTATUS = -1072037855i32; +pub const STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS: NTSTATUS = -1072037856i32; +pub const STATUS_LOG_BLOCKS_EXHAUSTED: NTSTATUS = -1072037882i32; +pub const STATUS_LOG_BLOCK_INCOMPLETE: NTSTATUS = -1072037884i32; +pub const STATUS_LOG_BLOCK_INVALID: NTSTATUS = -1072037878i32; +pub const STATUS_LOG_BLOCK_VERSION: NTSTATUS = -1072037879i32; +pub const STATUS_LOG_CANT_DELETE: NTSTATUS = -1072037871i32; +pub const STATUS_LOG_CLIENT_ALREADY_REGISTERED: NTSTATUS = -1072037852i32; +pub const STATUS_LOG_CLIENT_NOT_REGISTERED: NTSTATUS = -1072037851i32; +pub const STATUS_LOG_CONTAINER_LIMIT_EXCEEDED: NTSTATUS = -1072037870i32; +pub const STATUS_LOG_CONTAINER_OPEN_FAILED: NTSTATUS = -1072037847i32; +pub const STATUS_LOG_CONTAINER_READ_FAILED: NTSTATUS = -1072037849i32; +pub const STATUS_LOG_CONTAINER_STATE_INVALID: NTSTATUS = -1072037846i32; +pub const STATUS_LOG_CONTAINER_WRITE_FAILED: NTSTATUS = -1072037848i32; +pub const STATUS_LOG_CORRUPTION_DETECTED: NTSTATUS = -1072103376i32; +pub const STATUS_LOG_DEDICATED: NTSTATUS = -1072037857i32; +pub const STATUS_LOG_EPHEMERAL: NTSTATUS = -1072037854i32; +pub const STATUS_LOG_FILE_FULL: NTSTATUS = -1073741432i32; +pub const STATUS_LOG_FULL: NTSTATUS = -1072037859i32; +pub const STATUS_LOG_FULL_HANDLER_IN_PROGRESS: NTSTATUS = -1072037850i32; +pub const STATUS_LOG_GROWTH_FAILED: NTSTATUS = -1072103399i32; +pub const STATUS_LOG_HARD_ERROR: NTSTATUS = 1073741850i32; +pub const STATUS_LOG_INCONSISTENT_SECURITY: NTSTATUS = -1072037842i32; +pub const STATUS_LOG_INVALID_RANGE: NTSTATUS = -1072037883i32; +pub const STATUS_LOG_METADATA_CORRUPT: NTSTATUS = -1072037875i32; +pub const STATUS_LOG_METADATA_FLUSH_FAILED: NTSTATUS = -1072037843i32; +pub const STATUS_LOG_METADATA_INCONSISTENT: NTSTATUS = -1072037873i32; +pub const STATUS_LOG_METADATA_INVALID: NTSTATUS = -1072037874i32; +pub const STATUS_LOG_MULTIPLEXED: NTSTATUS = -1072037858i32; +pub const STATUS_LOG_NOT_ENOUGH_CONTAINERS: NTSTATUS = -1072037853i32; +pub const STATUS_LOG_NO_RESTART: NTSTATUS = 1075445772i32; +pub const STATUS_LOG_PINNED: NTSTATUS = -1072037844i32; +pub const STATUS_LOG_PINNED_ARCHIVE_TAIL: NTSTATUS = -1072037864i32; +pub const STATUS_LOG_PINNED_RESERVATION: NTSTATUS = -1072037840i32; +pub const STATUS_LOG_POLICY_ALREADY_INSTALLED: NTSTATUS = -1072037868i32; +pub const STATUS_LOG_POLICY_CONFLICT: NTSTATUS = -1072037865i32; +pub const STATUS_LOG_POLICY_INVALID: NTSTATUS = -1072037866i32; +pub const STATUS_LOG_POLICY_NOT_INSTALLED: NTSTATUS = -1072037867i32; +pub const STATUS_LOG_READ_CONTEXT_INVALID: NTSTATUS = -1072037881i32; +pub const STATUS_LOG_READ_MODE_INVALID: NTSTATUS = -1072037877i32; +pub const STATUS_LOG_RECORDS_RESERVED_INVALID: NTSTATUS = -1072037862i32; +pub const STATUS_LOG_RECORD_NONEXISTENT: NTSTATUS = -1072037863i32; +pub const STATUS_LOG_RESERVATION_INVALID: NTSTATUS = -1072037872i32; +pub const STATUS_LOG_RESIZE_INVALID_SIZE: NTSTATUS = -1072103413i32; +pub const STATUS_LOG_RESTART_INVALID: NTSTATUS = -1072037880i32; +pub const STATUS_LOG_SECTOR_INVALID: NTSTATUS = -1072037887i32; +pub const STATUS_LOG_SECTOR_PARITY_INVALID: NTSTATUS = -1072037886i32; +pub const STATUS_LOG_SECTOR_REMAPPED: NTSTATUS = -1072037885i32; +pub const STATUS_LOG_SPACE_RESERVED_INVALID: NTSTATUS = -1072037861i32; +pub const STATUS_LOG_START_OF_LOG: NTSTATUS = -1072037869i32; +pub const STATUS_LOG_STATE_INVALID: NTSTATUS = -1072037845i32; +pub const STATUS_LOG_TAIL_INVALID: NTSTATUS = -1072037860i32; +pub const STATUS_LONGJUMP: NTSTATUS = -2147483610i32; +pub const STATUS_LOST_MODE_LOGON_RESTRICTION: NTSTATUS = -1073741043i32; +pub const STATUS_LOST_WRITEBEHIND_DATA: NTSTATUS = -1073741278i32; +pub const STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR: NTSTATUS = -1073700734i32; +pub const STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED: NTSTATUS = -1073700736i32; +pub const STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR: NTSTATUS = -1073700735i32; +pub const STATUS_LPAC_ACCESS_DENIED: NTSTATUS = -1073700349i32; +pub const STATUS_LPC_HANDLE_COUNT_EXCEEDED: NTSTATUS = -1073739998i32; +pub const STATUS_LPC_INVALID_CONNECTION_USAGE: NTSTATUS = -1073740026i32; +pub const STATUS_LPC_RECEIVE_BUFFER_EXPECTED: NTSTATUS = -1073740027i32; +pub const STATUS_LPC_REPLY_LOST: NTSTATUS = -1073741229i32; +pub const STATUS_LPC_REQUESTS_NOT_ALLOWED: NTSTATUS = -1073740025i32; +pub const STATUS_LUIDS_EXHAUSTED: NTSTATUS = -1073741707i32; +pub const STATUS_MAGAZINE_NOT_PRESENT: NTSTATUS = -1073741178i32; +pub const STATUS_MAPPED_ALIGNMENT: NTSTATUS = -1073741280i32; +pub const STATUS_MAPPED_FILE_SIZE_ZERO: NTSTATUS = -1073741538i32; +pub const STATUS_MARKED_TO_DISALLOW_WRITES: NTSTATUS = -1073740659i32; +pub const STATUS_MARSHALL_OVERFLOW: NTSTATUS = -1073741263i32; +pub const STATUS_MAX_REFERRALS_EXCEEDED: NTSTATUS = -1073741068i32; +pub const STATUS_MCA_EXCEPTION: NTSTATUS = -1073740013i32; +pub const STATUS_MCA_OCCURED: NTSTATUS = -1073740950i32; +pub const STATUS_MEDIA_CHANGED: NTSTATUS = -2147483620i32; +pub const STATUS_MEDIA_CHECK: NTSTATUS = -2147483616i32; +pub const STATUS_MEDIA_WRITE_PROTECTED: NTSTATUS = -1073741662i32; +pub const STATUS_MEMBERS_PRIMARY_GROUP: NTSTATUS = -1073741529i32; +pub const STATUS_MEMBER_IN_ALIAS: NTSTATUS = -1073741485i32; +pub const STATUS_MEMBER_IN_GROUP: NTSTATUS = -1073741721i32; +pub const STATUS_MEMBER_NOT_IN_ALIAS: NTSTATUS = -1073741486i32; +pub const STATUS_MEMBER_NOT_IN_GROUP: NTSTATUS = -1073741720i32; +pub const STATUS_MEMORY_NOT_ALLOCATED: NTSTATUS = -1073741664i32; +pub const STATUS_MESSAGE_LOST: NTSTATUS = -1073740031i32; +pub const STATUS_MESSAGE_NOT_FOUND: NTSTATUS = -1073741559i32; +pub const STATUS_MESSAGE_RETRIEVED: NTSTATUS = 1073741870i32; +pub const STATUS_MFT_TOO_FRAGMENTED: NTSTATUS = -1073741052i32; +pub const STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION: NTSTATUS = -1072103388i32; +pub const STATUS_MISSING_SYSTEMFILE: NTSTATUS = -1073741501i32; +pub const STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM: NTSTATUS = -1071841277i32; +pub const STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK: NTSTATUS = -1071841271i32; +pub const STATUS_MONITOR_INVALID_MANUFACTURE_DATE: NTSTATUS = -1071841270i32; +pub const STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK: NTSTATUS = -1071841274i32; +pub const STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK: NTSTATUS = -1071841276i32; +pub const STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK: NTSTATUS = -1071841273i32; +pub const STATUS_MONITOR_NO_DESCRIPTOR: NTSTATUS = -1071841279i32; +pub const STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA: NTSTATUS = -1071841272i32; +pub const STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT: NTSTATUS = -1071841278i32; +pub const STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED: NTSTATUS = -1071841275i32; +pub const STATUS_MORE_ENTRIES: NTSTATUS = 261i32; +pub const STATUS_MORE_PROCESSING_REQUIRED: NTSTATUS = -1073741802i32; +pub const STATUS_MOUNT_POINT_NOT_RESOLVED: NTSTATUS = -1073740952i32; +pub const STATUS_MP_PROCESSOR_MISMATCH: NTSTATUS = 1073741865i32; +pub const STATUS_MUI_FILE_NOT_FOUND: NTSTATUS = -1073020927i32; +pub const STATUS_MUI_FILE_NOT_LOADED: NTSTATUS = -1073020922i32; +pub const STATUS_MUI_INVALID_FILE: NTSTATUS = -1073020926i32; +pub const STATUS_MUI_INVALID_LOCALE_NAME: NTSTATUS = -1073020924i32; +pub const STATUS_MUI_INVALID_RC_CONFIG: NTSTATUS = -1073020925i32; +pub const STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME: NTSTATUS = -1073020923i32; +pub const STATUS_MULTIPLE_FAULT_VIOLATION: NTSTATUS = -1073741080i32; +pub const STATUS_MUST_BE_KDC: NTSTATUS = -1073741067i32; +pub const STATUS_MUTANT_LIMIT_EXCEEDED: NTSTATUS = -1073741423i32; +pub const STATUS_MUTANT_NOT_OWNED: NTSTATUS = -1073741754i32; +pub const STATUS_MUTUAL_AUTHENTICATION_FAILED: NTSTATUS = -1073741117i32; +pub const STATUS_NAME_TOO_LONG: NTSTATUS = -1073741562i32; +pub const STATUS_NDIS_ADAPTER_NOT_FOUND: NTSTATUS = -1071448058i32; +pub const STATUS_NDIS_ADAPTER_NOT_READY: NTSTATUS = -1071448047i32; +pub const STATUS_NDIS_ADAPTER_REMOVED: NTSTATUS = -1071448040i32; +pub const STATUS_NDIS_ALREADY_MAPPED: NTSTATUS = -1071448035i32; +pub const STATUS_NDIS_BAD_CHARACTERISTICS: NTSTATUS = -1071448059i32; +pub const STATUS_NDIS_BAD_VERSION: NTSTATUS = -1071448060i32; +pub const STATUS_NDIS_BUFFER_TOO_SHORT: NTSTATUS = -1071448042i32; +pub const STATUS_NDIS_CLOSING: NTSTATUS = -1071448062i32; +pub const STATUS_NDIS_DEVICE_FAILED: NTSTATUS = -1071448056i32; +pub const STATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE: NTSTATUS = -1071439866i32; +pub const STATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED: NTSTATUS = -1071439864i32; +pub const STATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE: NTSTATUS = -1071439867i32; +pub const STATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED: NTSTATUS = -1071439865i32; +pub const STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED: NTSTATUS = -1071439872i32; +pub const STATUS_NDIS_DOT11_MEDIA_IN_USE: NTSTATUS = -1071439871i32; +pub const STATUS_NDIS_DOT11_POWER_STATE_INVALID: NTSTATUS = -1071439870i32; +pub const STATUS_NDIS_ERROR_READING_FILE: NTSTATUS = -1071448036i32; +pub const STATUS_NDIS_FILE_NOT_FOUND: NTSTATUS = -1071448037i32; +pub const STATUS_NDIS_GROUP_ADDRESS_IN_USE: NTSTATUS = -1071448038i32; +pub const STATUS_NDIS_INDICATION_REQUIRED: NTSTATUS = 1076035585i32; +pub const STATUS_NDIS_INTERFACE_NOT_FOUND: NTSTATUS = -1071448021i32; +pub const STATUS_NDIS_INVALID_ADDRESS: NTSTATUS = -1071448030i32; +pub const STATUS_NDIS_INVALID_DATA: NTSTATUS = -1071448043i32; +pub const STATUS_NDIS_INVALID_DEVICE_REQUEST: NTSTATUS = -1071448048i32; +pub const STATUS_NDIS_INVALID_LENGTH: NTSTATUS = -1071448044i32; +pub const STATUS_NDIS_INVALID_OID: NTSTATUS = -1071448041i32; +pub const STATUS_NDIS_INVALID_PACKET: NTSTATUS = -1071448049i32; +pub const STATUS_NDIS_INVALID_PORT: NTSTATUS = -1071448019i32; +pub const STATUS_NDIS_INVALID_PORT_STATE: NTSTATUS = -1071448018i32; +pub const STATUS_NDIS_LOW_POWER_STATE: NTSTATUS = -1071448017i32; +pub const STATUS_NDIS_MEDIA_DISCONNECTED: NTSTATUS = -1071448033i32; +pub const STATUS_NDIS_MULTICAST_EXISTS: NTSTATUS = -1071448054i32; +pub const STATUS_NDIS_MULTICAST_FULL: NTSTATUS = -1071448055i32; +pub const STATUS_NDIS_MULTICAST_NOT_FOUND: NTSTATUS = -1071448053i32; +pub const STATUS_NDIS_NOT_SUPPORTED: NTSTATUS = -1071447877i32; +pub const STATUS_NDIS_NO_QUEUES: NTSTATUS = -1071448015i32; +pub const STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED: NTSTATUS = -1071443950i32; +pub const STATUS_NDIS_OFFLOAD_PATH_REJECTED: NTSTATUS = -1071443949i32; +pub const STATUS_NDIS_OFFLOAD_POLICY: NTSTATUS = -1071443953i32; +pub const STATUS_NDIS_OPEN_FAILED: NTSTATUS = -1071448057i32; +pub const STATUS_NDIS_PAUSED: NTSTATUS = -1071448022i32; +pub const STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL: NTSTATUS = -1071439868i32; +pub const STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL: NTSTATUS = -1071439869i32; +pub const STATUS_NDIS_REINIT_REQUIRED: NTSTATUS = -1071448016i32; +pub const STATUS_NDIS_REQUEST_ABORTED: NTSTATUS = -1071448052i32; +pub const STATUS_NDIS_RESET_IN_PROGRESS: NTSTATUS = -1071448051i32; +pub const STATUS_NDIS_RESOURCE_CONFLICT: NTSTATUS = -1071448034i32; +pub const STATUS_NDIS_UNSUPPORTED_MEDIA: NTSTATUS = -1071448039i32; +pub const STATUS_NDIS_UNSUPPORTED_REVISION: NTSTATUS = -1071448020i32; +pub const STATUS_ND_QUEUE_OVERFLOW: NTSTATUS = -1073700847i32; +pub const STATUS_NEEDS_REGISTRATION: NTSTATUS = -1073740663i32; +pub const STATUS_NEEDS_REMEDIATION: NTSTATUS = -1073740702i32; +pub const STATUS_NETLOGON_NOT_STARTED: NTSTATUS = -1073741422i32; +pub const STATUS_NETWORK_ACCESS_DENIED: NTSTATUS = -1073741622i32; +pub const STATUS_NETWORK_ACCESS_DENIED_EDP: NTSTATUS = -1073740658i32; +pub const STATUS_NETWORK_AUTHENTICATION_PROMPT_CANCELED: NTSTATUS = -1067646972i32; +pub const STATUS_NETWORK_BUSY: NTSTATUS = -1073741633i32; +pub const STATUS_NETWORK_CREDENTIAL_CONFLICT: NTSTATUS = -1073741419i32; +pub const STATUS_NETWORK_NAME_DELETED: NTSTATUS = -1073741623i32; +pub const STATUS_NETWORK_OPEN_RESTRICTION: NTSTATUS = -1073741311i32; +pub const STATUS_NETWORK_SESSION_EXPIRED: NTSTATUS = -1073740964i32; +pub const STATUS_NETWORK_UNREACHABLE: NTSTATUS = -1073741252i32; +pub const STATUS_NET_WRITE_FAULT: NTSTATUS = -1073741614i32; +pub const STATUS_NOINTERFACE: NTSTATUS = -1073741127i32; +pub const STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT: NTSTATUS = -1073741416i32; +pub const STATUS_NOLOGON_SERVER_TRUST_ACCOUNT: NTSTATUS = -1073741414i32; +pub const STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT: NTSTATUS = -1073741415i32; +pub const STATUS_NONCONTINUABLE_EXCEPTION: NTSTATUS = -1073741787i32; +pub const STATUS_NONEXISTENT_EA_ENTRY: NTSTATUS = -1073741743i32; +pub const STATUS_NONEXISTENT_SECTOR: NTSTATUS = -1073741803i32; +pub const STATUS_NONE_MAPPED: NTSTATUS = -1073741709i32; +pub const STATUS_NOTHING_TO_TERMINATE: NTSTATUS = 290i32; +pub const STATUS_NOTIFICATION_GUID_ALREADY_DEFINED: NTSTATUS = -1073741404i32; +pub const STATUS_NOTIFY_CLEANUP: NTSTATUS = 267i32; +pub const STATUS_NOTIFY_ENUM_DIR: NTSTATUS = 268i32; +pub const STATUS_NOT_ALLOWED_ON_SYSTEM_FILE: NTSTATUS = -1073741401i32; +pub const STATUS_NOT_ALL_ASSIGNED: NTSTATUS = 262i32; +pub const STATUS_NOT_APPCONTAINER: NTSTATUS = -1073700352i32; +pub const STATUS_NOT_A_CLOUD_FILE: NTSTATUS = -1073688825i32; +pub const STATUS_NOT_A_CLOUD_SYNC_ROOT: NTSTATUS = -1073688802i32; +pub const STATUS_NOT_A_DAX_VOLUME: NTSTATUS = -1073740623i32; +pub const STATUS_NOT_A_DIRECTORY: NTSTATUS = -1073741565i32; +pub const STATUS_NOT_A_REPARSE_POINT: NTSTATUS = -1073741195i32; +pub const STATUS_NOT_A_TIERED_VOLUME: NTSTATUS = -1073740531i32; +pub const STATUS_NOT_CAPABLE: NTSTATUS = -1073740759i32; +pub const STATUS_NOT_CLIENT_SESSION: NTSTATUS = -1073741289i32; +pub const STATUS_NOT_COMMITTED: NTSTATUS = -1073741779i32; +pub const STATUS_NOT_DAX_MAPPABLE: NTSTATUS = -1073740622i32; +pub const STATUS_NOT_EXPORT_FORMAT: NTSTATUS = -1073741166i32; +pub const STATUS_NOT_FOUND: NTSTATUS = -1073741275i32; +pub const STATUS_NOT_GUI_PROCESS: NTSTATUS = -1073740538i32; +pub const STATUS_NOT_IMPLEMENTED: NTSTATUS = -1073741822i32; +pub const STATUS_NOT_LOCKED: NTSTATUS = -1073741782i32; +pub const STATUS_NOT_LOGON_PROCESS: NTSTATUS = -1073741587i32; +pub const STATUS_NOT_MAPPED_DATA: NTSTATUS = -1073741688i32; +pub const STATUS_NOT_MAPPED_VIEW: NTSTATUS = -1073741799i32; +pub const STATUS_NOT_READ_FROM_COPY: NTSTATUS = -1073740694i32; +pub const STATUS_NOT_REDUNDANT_STORAGE: NTSTATUS = -1073740679i32; +pub const STATUS_NOT_REGISTRY_FILE: NTSTATUS = -1073741476i32; +pub const STATUS_NOT_SAFE_MODE_DRIVER: NTSTATUS = -1073740961i32; +pub const STATUS_NOT_SAME_DEVICE: NTSTATUS = -1073741612i32; +pub const STATUS_NOT_SAME_OBJECT: NTSTATUS = -1073741396i32; +pub const STATUS_NOT_SERVER_SESSION: NTSTATUS = -1073741290i32; +pub const STATUS_NOT_SNAPSHOT_VOLUME: NTSTATUS = -1072103353i32; +pub const STATUS_NOT_SUPPORTED: NTSTATUS = -1073741637i32; +pub const STATUS_NOT_SUPPORTED_IN_APPCONTAINER: NTSTATUS = -1073700351i32; +pub const STATUS_NOT_SUPPORTED_ON_DAX: NTSTATUS = -1073740646i32; +pub const STATUS_NOT_SUPPORTED_ON_SBS: NTSTATUS = -1073741056i32; +pub const STATUS_NOT_SUPPORTED_WITH_AUDITING: NTSTATUS = -1073740595i32; +pub const STATUS_NOT_SUPPORTED_WITH_BTT: NTSTATUS = -1073740619i32; +pub const STATUS_NOT_SUPPORTED_WITH_BYPASSIO: NTSTATUS = -1073740601i32; +pub const STATUS_NOT_SUPPORTED_WITH_CACHED_HANDLE: NTSTATUS = -1073740587i32; +pub const STATUS_NOT_SUPPORTED_WITH_COMPRESSION: NTSTATUS = -1073740598i32; +pub const STATUS_NOT_SUPPORTED_WITH_DEDUPLICATION: NTSTATUS = -1073740596i32; +pub const STATUS_NOT_SUPPORTED_WITH_ENCRYPTION: NTSTATUS = -1073740599i32; +pub const STATUS_NOT_SUPPORTED_WITH_MONITORING: NTSTATUS = -1073740594i32; +pub const STATUS_NOT_SUPPORTED_WITH_REPLICATION: NTSTATUS = -1073740597i32; +pub const STATUS_NOT_SUPPORTED_WITH_SNAPSHOT: NTSTATUS = -1073740593i32; +pub const STATUS_NOT_SUPPORTED_WITH_VIRTUALIZATION: NTSTATUS = -1073740592i32; +pub const STATUS_NOT_TINY_STREAM: NTSTATUS = -1073741274i32; +pub const STATUS_NO_ACE_CONDITION: NTSTATUS = -2147483601i32; +pub const STATUS_NO_APPLICABLE_APP_LICENSES_FOUND: NTSTATUS = -1058406399i32; +pub const STATUS_NO_APPLICATION_PACKAGE: NTSTATUS = -1073741398i32; +pub const STATUS_NO_BROWSER_SERVERS_FOUND: NTSTATUS = -1073741284i32; +pub const STATUS_NO_BYPASSIO_DRIVER_SUPPORT: NTSTATUS = -1073740600i32; +pub const STATUS_NO_CALLBACK_ACTIVE: NTSTATUS = -1073741224i32; +pub const STATUS_NO_DATA_DETECTED: NTSTATUS = -2147483614i32; +pub const STATUS_NO_EAS_ON_FILE: NTSTATUS = -1073741742i32; +pub const STATUS_NO_EFS: NTSTATUS = -1073741170i32; +pub const STATUS_NO_EVENT_PAIR: NTSTATUS = -1073741490i32; +pub const STATUS_NO_GUID_TRANSLATION: NTSTATUS = -1073741556i32; +pub const STATUS_NO_IMPERSONATION_TOKEN: NTSTATUS = -1073741732i32; +pub const STATUS_NO_INHERITANCE: NTSTATUS = -2147483637i32; +pub const STATUS_NO_IP_ADDRESSES: NTSTATUS = -1073741071i32; +pub const STATUS_NO_KERB_KEY: NTSTATUS = -1073741022i32; +pub const STATUS_NO_KEY: NTSTATUS = -1073739508i32; +pub const STATUS_NO_LDT: NTSTATUS = -1073741545i32; +pub const STATUS_NO_LINK_TRACKING_IN_TRANSACTION: NTSTATUS = -1072103335i32; +pub const STATUS_NO_LOGON_SERVERS: NTSTATUS = -1073741730i32; +pub const STATUS_NO_LOG_SPACE: NTSTATUS = -1073741443i32; +pub const STATUS_NO_MATCH: NTSTATUS = -1073741198i32; +pub const STATUS_NO_MEDIA: NTSTATUS = -1073741448i32; +pub const STATUS_NO_MEDIA_IN_DEVICE: NTSTATUS = -1073741805i32; +pub const STATUS_NO_MEMORY: NTSTATUS = -1073741801i32; +pub const STATUS_NO_MORE_EAS: NTSTATUS = -2147483630i32; +pub const STATUS_NO_MORE_ENTRIES: NTSTATUS = -2147483622i32; +pub const STATUS_NO_MORE_FILES: NTSTATUS = -2147483642i32; +pub const STATUS_NO_MORE_MATCHES: NTSTATUS = -1073741197i32; +pub const STATUS_NO_PAGEFILE: NTSTATUS = -1073741497i32; +pub const STATUS_NO_PA_DATA: NTSTATUS = -1073741064i32; +pub const STATUS_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND: NTSTATUS = -1073740635i32; +pub const STATUS_NO_QUOTAS_FOR_ACCOUNT: NTSTATUS = 269i32; +pub const STATUS_NO_RANGES_PROCESSED: NTSTATUS = -1073740704i32; +pub const STATUS_NO_RECOVERY_POLICY: NTSTATUS = -1073741171i32; +pub const STATUS_NO_S4U_PROT_SUPPORT: NTSTATUS = -1073740790i32; +pub const STATUS_NO_SAVEPOINT_WITH_OPEN_FILES: NTSTATUS = -1072103352i32; +pub const STATUS_NO_SECRETS: NTSTATUS = -1073740943i32; +pub const STATUS_NO_SECURITY_CONTEXT: NTSTATUS = -1073740755i32; +pub const STATUS_NO_SECURITY_ON_OBJECT: NTSTATUS = -1073741609i32; +pub const STATUS_NO_SPOOL_SPACE: NTSTATUS = -1073741625i32; +pub const STATUS_NO_SUCH_ALIAS: NTSTATUS = -1073741487i32; +pub const STATUS_NO_SUCH_DEVICE: NTSTATUS = -1073741810i32; +pub const STATUS_NO_SUCH_DOMAIN: NTSTATUS = -1073741601i32; +pub const STATUS_NO_SUCH_FILE: NTSTATUS = -1073741809i32; +pub const STATUS_NO_SUCH_GROUP: NTSTATUS = -1073741722i32; +pub const STATUS_NO_SUCH_MEMBER: NTSTATUS = -1073741446i32; +pub const STATUS_NO_SUCH_PACKAGE: NTSTATUS = -1073741570i32; +pub const STATUS_NO_SUCH_PRIVILEGE: NTSTATUS = -1073741728i32; +pub const STATUS_NO_TGT_REPLY: NTSTATUS = -1073741073i32; +pub const STATUS_NO_TOKEN: NTSTATUS = -1073741700i32; +pub const STATUS_NO_TRACKING_SERVICE: NTSTATUS = -1073741153i32; +pub const STATUS_NO_TRUST_LSA_SECRET: NTSTATUS = -1073741430i32; +pub const STATUS_NO_TRUST_SAM_ACCOUNT: NTSTATUS = -1073741429i32; +pub const STATUS_NO_TXF_METADATA: NTSTATUS = -2145845207i32; +pub const STATUS_NO_UNICODE_TRANSLATION: NTSTATUS = -1073740009i32; +pub const STATUS_NO_USER_KEYS: NTSTATUS = -1073741168i32; +pub const STATUS_NO_USER_SESSION_KEY: NTSTATUS = -1073741310i32; +pub const STATUS_NO_WORK_DONE: NTSTATUS = -2147483598i32; +pub const STATUS_NO_YIELD_PERFORMED: NTSTATUS = 1073741860i32; +pub const STATUS_NTLM_BLOCKED: NTSTATUS = -1073740776i32; +pub const STATUS_NT_CROSS_ENCRYPTION_REQUIRED: NTSTATUS = -1073741475i32; +pub const STATUS_NULL_LM_PASSWORD: NTSTATUS = 1073741837i32; +pub const STATUS_OBJECTID_EXISTS: NTSTATUS = -1073741269i32; +pub const STATUS_OBJECTID_NOT_FOUND: NTSTATUS = -1073741072i32; +pub const STATUS_OBJECT_IS_IMMUTABLE: NTSTATUS = -1073740610i32; +pub const STATUS_OBJECT_NAME_COLLISION: NTSTATUS = -1073741771i32; +pub const STATUS_OBJECT_NAME_EXISTS: NTSTATUS = 1073741824i32; +pub const STATUS_OBJECT_NAME_INVALID: NTSTATUS = -1073741773i32; +pub const STATUS_OBJECT_NAME_NOT_FOUND: NTSTATUS = -1073741772i32; +pub const STATUS_OBJECT_NOT_EXTERNALLY_BACKED: NTSTATUS = -1073740691i32; +pub const STATUS_OBJECT_NO_LONGER_EXISTS: NTSTATUS = -1072103391i32; +pub const STATUS_OBJECT_PATH_INVALID: NTSTATUS = -1073741767i32; +pub const STATUS_OBJECT_PATH_NOT_FOUND: NTSTATUS = -1073741766i32; +pub const STATUS_OBJECT_PATH_SYNTAX_BAD: NTSTATUS = -1073741765i32; +pub const STATUS_OBJECT_TYPE_MISMATCH: NTSTATUS = -1073741788i32; +pub const STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED: NTSTATUS = -1073700189i32; +pub const STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED: NTSTATUS = -1073700191i32; +pub const STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED: NTSTATUS = -1073700188i32; +pub const STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED: NTSTATUS = -1073700190i32; +pub const STATUS_ONLY_IF_CONNECTED: NTSTATUS = -1073741108i32; +pub const STATUS_OPEN_FAILED: NTSTATUS = -1073741514i32; +pub const STATUS_OPERATION_IN_PROGRESS: NTSTATUS = -1073740682i32; +pub const STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION: NTSTATUS = -1072103334i32; +pub const STATUS_OPLOCK_BREAK_IN_PROGRESS: NTSTATUS = 264i32; +pub const STATUS_OPLOCK_HANDLE_CLOSED: NTSTATUS = 534i32; +pub const STATUS_OPLOCK_NOT_GRANTED: NTSTATUS = -1073741598i32; +pub const STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE: NTSTATUS = 533i32; +pub const STATUS_ORDINAL_NOT_FOUND: NTSTATUS = -1073741512i32; +pub const STATUS_ORPHAN_NAME_EXHAUSTED: NTSTATUS = -1073739762i32; +pub const STATUS_PACKAGE_NOT_AVAILABLE: NTSTATUS = -1073740649i32; +pub const STATUS_PACKAGE_UPDATING: NTSTATUS = -1073740695i32; +pub const STATUS_PAGEFILE_CREATE_FAILED: NTSTATUS = -1073741498i32; +pub const STATUS_PAGEFILE_NOT_SUPPORTED: NTSTATUS = -1073740603i32; +pub const STATUS_PAGEFILE_QUOTA: NTSTATUS = -1073741817i32; +pub const STATUS_PAGEFILE_QUOTA_EXCEEDED: NTSTATUS = -1073741524i32; +pub const STATUS_PAGE_FAULT_COPY_ON_WRITE: NTSTATUS = 274i32; +pub const STATUS_PAGE_FAULT_DEMAND_ZERO: NTSTATUS = 273i32; +pub const STATUS_PAGE_FAULT_GUARD_PAGE: NTSTATUS = 275i32; +pub const STATUS_PAGE_FAULT_PAGING_FILE: NTSTATUS = 276i32; +pub const STATUS_PAGE_FAULT_RETRY: NTSTATUS = 873i32; +pub const STATUS_PAGE_FAULT_TRANSITION: NTSTATUS = 272i32; +pub const STATUS_PARAMETER_QUOTA_EXCEEDED: NTSTATUS = -1073740784i32; +pub const STATUS_PARITY_ERROR: NTSTATUS = -1073741781i32; +pub const STATUS_PARTIAL_COPY: NTSTATUS = -2147483635i32; +pub const STATUS_PARTITION_FAILURE: NTSTATUS = -1073741454i32; +pub const STATUS_PARTITION_TERMINATING: NTSTATUS = -1073740640i32; +pub const STATUS_PASSWORD_CHANGE_REQUIRED: NTSTATUS = -1073741044i32; +pub const STATUS_PASSWORD_RESTRICTION: NTSTATUS = -1073741716i32; +pub const STATUS_PATCH_CONFLICT: NTSTATUS = -1073740628i32; +pub const STATUS_PATCH_DEFERRED: NTSTATUS = 1073741879i32; +pub const STATUS_PATCH_NOT_REGISTERED: NTSTATUS = -1073740588i32; +pub const STATUS_PATH_NOT_COVERED: NTSTATUS = -1073741225i32; +pub const STATUS_PCP_ATTESTATION_CHALLENGE_NOT_SET: NTSTATUS = -1071046638i32; +pub const STATUS_PCP_AUTHENTICATION_FAILED: NTSTATUS = -1071046648i32; +pub const STATUS_PCP_AUTHENTICATION_IGNORED: NTSTATUS = -1071046647i32; +pub const STATUS_PCP_BUFFER_LENGTH_MISMATCH: NTSTATUS = -1071046626i32; +pub const STATUS_PCP_BUFFER_TOO_SMALL: NTSTATUS = -1071046650i32; +pub const STATUS_PCP_CLAIM_TYPE_NOT_SUPPORTED: NTSTATUS = -1071046628i32; +pub const STATUS_PCP_DEVICE_NOT_FOUND: NTSTATUS = -1071046643i32; +pub const STATUS_PCP_DEVICE_NOT_READY: NTSTATUS = -1071046655i32; +pub const STATUS_PCP_ERROR_MASK: NTSTATUS = -1071046656i32; +pub const STATUS_PCP_FLAG_NOT_SUPPORTED: NTSTATUS = -1071046652i32; +pub const STATUS_PCP_IFX_RSA_KEY_CREATION_BLOCKED: NTSTATUS = -1071046625i32; +pub const STATUS_PCP_INTERNAL_ERROR: NTSTATUS = -1071046649i32; +pub const STATUS_PCP_INVALID_HANDLE: NTSTATUS = -1071046654i32; +pub const STATUS_PCP_INVALID_PARAMETER: NTSTATUS = -1071046653i32; +pub const STATUS_PCP_KEY_ALREADY_FINALIZED: NTSTATUS = -1071046636i32; +pub const STATUS_PCP_KEY_HANDLE_INVALIDATED: NTSTATUS = -1071046622i32; +pub const STATUS_PCP_KEY_NOT_AIK: NTSTATUS = -1071046631i32; +pub const STATUS_PCP_KEY_NOT_AUTHENTICATED: NTSTATUS = -1071046632i32; +pub const STATUS_PCP_KEY_NOT_FINALIZED: NTSTATUS = -1071046639i32; +pub const STATUS_PCP_KEY_NOT_LOADED: NTSTATUS = -1071046641i32; +pub const STATUS_PCP_KEY_NOT_SIGNING_KEY: NTSTATUS = -1071046630i32; +pub const STATUS_PCP_KEY_USAGE_POLICY_INVALID: NTSTATUS = -1071046634i32; +pub const STATUS_PCP_KEY_USAGE_POLICY_NOT_SUPPORTED: NTSTATUS = -1071046635i32; +pub const STATUS_PCP_LOCKED_OUT: NTSTATUS = -1071046629i32; +pub const STATUS_PCP_NOT_PCR_BOUND: NTSTATUS = -1071046637i32; +pub const STATUS_PCP_NOT_SUPPORTED: NTSTATUS = -1071046651i32; +pub const STATUS_PCP_NO_KEY_CERTIFICATION: NTSTATUS = -1071046640i32; +pub const STATUS_PCP_POLICY_NOT_FOUND: NTSTATUS = -1071046646i32; +pub const STATUS_PCP_PROFILE_NOT_FOUND: NTSTATUS = -1071046645i32; +pub const STATUS_PCP_RAW_POLICY_NOT_SUPPORTED: NTSTATUS = -1071046623i32; +pub const STATUS_PCP_SOFT_KEY_ERROR: NTSTATUS = -1071046633i32; +pub const STATUS_PCP_TICKET_MISSING: NTSTATUS = -1071046624i32; +pub const STATUS_PCP_TPM_VERSION_NOT_SUPPORTED: NTSTATUS = -1071046627i32; +pub const STATUS_PCP_UNSUPPORTED_PSS_SALT: NTSTATUS = 1076437027i32; +pub const STATUS_PCP_VALIDATION_FAILED: NTSTATUS = -1071046644i32; +pub const STATUS_PCP_WRONG_PARENT: NTSTATUS = -1071046642i32; +pub const STATUS_PENDING: NTSTATUS = 259i32; +pub const STATUS_PER_USER_TRUST_QUOTA_EXCEEDED: NTSTATUS = -1073740799i32; +pub const STATUS_PIPE_BROKEN: NTSTATUS = -1073741493i32; +pub const STATUS_PIPE_BUSY: NTSTATUS = -1073741650i32; +pub const STATUS_PIPE_CLOSING: NTSTATUS = -1073741647i32; +pub const STATUS_PIPE_CONNECTED: NTSTATUS = -1073741646i32; +pub const STATUS_PIPE_DISCONNECTED: NTSTATUS = -1073741648i32; +pub const STATUS_PIPE_EMPTY: NTSTATUS = -1073741607i32; +pub const STATUS_PIPE_LISTENING: NTSTATUS = -1073741645i32; +pub const STATUS_PIPE_NOT_AVAILABLE: NTSTATUS = -1073741652i32; +pub const STATUS_PKINIT_CLIENT_FAILURE: NTSTATUS = -1073740916i32; +pub const STATUS_PKINIT_FAILURE: NTSTATUS = -1073741024i32; +pub const STATUS_PKINIT_NAME_MISMATCH: NTSTATUS = -1073741063i32; +pub const STATUS_PKU2U_CERT_FAILURE: NTSTATUS = -1073740753i32; +pub const STATUS_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND: NTSTATUS = -1058340859i32; +pub const STATUS_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED: NTSTATUS = -1058340860i32; +pub const STATUS_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED: NTSTATUS = -1058340861i32; +pub const STATUS_PLATFORM_MANIFEST_INVALID: NTSTATUS = -1058340862i32; +pub const STATUS_PLATFORM_MANIFEST_NOT_ACTIVE: NTSTATUS = -1058340858i32; +pub const STATUS_PLATFORM_MANIFEST_NOT_AUTHORIZED: NTSTATUS = -1058340863i32; +pub const STATUS_PLATFORM_MANIFEST_NOT_SIGNED: NTSTATUS = -1058340857i32; +pub const STATUS_PLUGPLAY_NO_DEVICE: NTSTATUS = -1073741218i32; +pub const STATUS_PLUGPLAY_QUERY_VETOED: NTSTATUS = -2147483608i32; +pub const STATUS_PNP_BAD_MPS_TABLE: NTSTATUS = -1073479627i32; +pub const STATUS_PNP_DEVICE_CONFIGURATION_PENDING: NTSTATUS = -1073740651i32; +pub const STATUS_PNP_DRIVER_CONFIGURATION_INCOMPLETE: NTSTATUS = -1073740653i32; +pub const STATUS_PNP_DRIVER_CONFIGURATION_NOT_FOUND: NTSTATUS = -1073740654i32; +pub const STATUS_PNP_DRIVER_PACKAGE_NOT_FOUND: NTSTATUS = -1073740655i32; +pub const STATUS_PNP_FUNCTION_DRIVER_REQUIRED: NTSTATUS = -1073740652i32; +pub const STATUS_PNP_INVALID_ID: NTSTATUS = -1073479624i32; +pub const STATUS_PNP_IRQ_TRANSLATION_FAILED: NTSTATUS = -1073479625i32; +pub const STATUS_PNP_NO_COMPAT_DRIVERS: NTSTATUS = -1073740656i32; +pub const STATUS_PNP_REBOOT_REQUIRED: NTSTATUS = -1073741102i32; +pub const STATUS_PNP_RESTART_ENUMERATION: NTSTATUS = -1073741106i32; +pub const STATUS_PNP_TRANSLATION_FAILED: NTSTATUS = -1073479626i32; +pub const STATUS_POLICY_OBJECT_NOT_FOUND: NTSTATUS = -1073741158i32; +pub const STATUS_POLICY_ONLY_IN_DS: NTSTATUS = -1073741157i32; +pub const STATUS_PORT_ALREADY_HAS_COMPLETION_LIST: NTSTATUS = -1073740006i32; +pub const STATUS_PORT_ALREADY_SET: NTSTATUS = -1073741752i32; +pub const STATUS_PORT_CLOSED: NTSTATUS = -1073740032i32; +pub const STATUS_PORT_CONNECTION_REFUSED: NTSTATUS = -1073741759i32; +pub const STATUS_PORT_DISCONNECTED: NTSTATUS = -1073741769i32; +pub const STATUS_PORT_DO_NOT_DISTURB: NTSTATUS = -1073741770i32; +pub const STATUS_PORT_MESSAGE_TOO_LONG: NTSTATUS = -1073741777i32; +pub const STATUS_PORT_NOT_SET: NTSTATUS = -1073740973i32; +pub const STATUS_PORT_UNREACHABLE: NTSTATUS = -1073741249i32; +pub const STATUS_POSSIBLE_DEADLOCK: NTSTATUS = -1073741420i32; +pub const STATUS_POWER_STATE_INVALID: NTSTATUS = -1073741101i32; +pub const STATUS_PREDEFINED_HANDLE: NTSTATUS = 1073741846i32; +pub const STATUS_PRENT4_MACHINE_ACCOUNT: NTSTATUS = -1073740969i32; +pub const STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED: NTSTATUS = 270i32; +pub const STATUS_PRINT_CANCELLED: NTSTATUS = -1073741624i32; +pub const STATUS_PRINT_QUEUE_FULL: NTSTATUS = -1073741626i32; +pub const STATUS_PRIVILEGED_INSTRUCTION: NTSTATUS = -1073741674i32; +pub const STATUS_PRIVILEGE_NOT_HELD: NTSTATUS = -1073741727i32; +pub const STATUS_PROACTIVE_SCAN_IN_PROGRESS: NTSTATUS = -1073739761i32; +pub const STATUS_PROCEDURE_NOT_FOUND: NTSTATUS = -1073741702i32; +pub const STATUS_PROCESS_CLONED: NTSTATUS = 297i32; +pub const STATUS_PROCESS_IN_JOB: NTSTATUS = 292i32; +pub const STATUS_PROCESS_IS_PROTECTED: NTSTATUS = -1073740014i32; +pub const STATUS_PROCESS_IS_TERMINATING: NTSTATUS = -1073741558i32; +pub const STATUS_PROCESS_NOT_IN_JOB: NTSTATUS = 291i32; +pub const STATUS_PROFILING_AT_LIMIT: NTSTATUS = -1073741613i32; +pub const STATUS_PROFILING_NOT_STARTED: NTSTATUS = -1073741641i32; +pub const STATUS_PROFILING_NOT_STOPPED: NTSTATUS = -1073741640i32; +pub const STATUS_PROPSET_NOT_FOUND: NTSTATUS = -1073741264i32; +pub const STATUS_PROTOCOL_NOT_SUPPORTED: NTSTATUS = -1073700845i32; +pub const STATUS_PROTOCOL_UNREACHABLE: NTSTATUS = -1073741250i32; +pub const STATUS_PTE_CHANGED: NTSTATUS = -1073740748i32; +pub const STATUS_PURGE_FAILED: NTSTATUS = -1073740747i32; +pub const STATUS_PWD_HISTORY_CONFLICT: NTSTATUS = -1073741220i32; +pub const STATUS_PWD_TOO_LONG: NTSTATUS = -1073741190i32; +pub const STATUS_PWD_TOO_RECENT: NTSTATUS = -1073741221i32; +pub const STATUS_PWD_TOO_SHORT: NTSTATUS = -1073741222i32; +pub const STATUS_QUERY_STORAGE_ERROR: NTSTATUS = -2143682559i32; +pub const STATUS_QUIC_ALPN_NEG_FAILURE: NTSTATUS = -1071382521i32; +pub const STATUS_QUIC_CONNECTION_IDLE: NTSTATUS = -1071382523i32; +pub const STATUS_QUIC_CONNECTION_TIMEOUT: NTSTATUS = -1071382522i32; +pub const STATUS_QUIC_HANDSHAKE_FAILURE: NTSTATUS = -1071382528i32; +pub const STATUS_QUIC_INTERNAL_ERROR: NTSTATUS = -1071382525i32; +pub const STATUS_QUIC_PROTOCOL_VIOLATION: NTSTATUS = -1071382524i32; +pub const STATUS_QUIC_USER_CANCELED: NTSTATUS = -1071382526i32; +pub const STATUS_QUIC_VER_NEG_FAILURE: NTSTATUS = -1071382527i32; +pub const STATUS_QUOTA_ACTIVITY: NTSTATUS = -1073740662i32; +pub const STATUS_QUOTA_EXCEEDED: NTSTATUS = -1073741756i32; +pub const STATUS_QUOTA_LIST_INCONSISTENT: NTSTATUS = -1073741210i32; +pub const STATUS_QUOTA_NOT_ENABLED: NTSTATUS = -1073741399i32; +pub const STATUS_RANGE_LIST_CONFLICT: NTSTATUS = -1073741182i32; +pub const STATUS_RANGE_NOT_FOUND: NTSTATUS = -1073741172i32; +pub const STATUS_RANGE_NOT_LOCKED: NTSTATUS = -1073741698i32; +pub const STATUS_RDBSS_CONTINUE_OPERATION: NTSTATUS = -1069481982i32; +pub const STATUS_RDBSS_POST_OPERATION: NTSTATUS = -1069481981i32; +pub const STATUS_RDBSS_RESTART_OPERATION: NTSTATUS = -1069481983i32; +pub const STATUS_RDBSS_RETRY_LOOKUP: NTSTATUS = -1069481980i32; +pub const STATUS_RDP_PROTOCOL_ERROR: NTSTATUS = -1073086414i32; +pub const STATUS_RECEIVE_EXPEDITED: NTSTATUS = 1073741840i32; +pub const STATUS_RECEIVE_PARTIAL: NTSTATUS = 1073741839i32; +pub const STATUS_RECEIVE_PARTIAL_EXPEDITED: NTSTATUS = 1073741841i32; +pub const STATUS_RECOVERABLE_BUGCHECK: NTSTATUS = -2147483596i32; +pub const STATUS_RECOVERY_FAILURE: NTSTATUS = -1073741273i32; +pub const STATUS_RECOVERY_NOT_NEEDED: NTSTATUS = 1075380276i32; +pub const STATUS_RECURSIVE_DISPATCH: NTSTATUS = -1073740028i32; +pub const STATUS_REDIRECTOR_HAS_OPEN_HANDLES: NTSTATUS = -2147483613i32; +pub const STATUS_REDIRECTOR_NOT_STARTED: NTSTATUS = -1073741573i32; +pub const STATUS_REDIRECTOR_PAUSED: NTSTATUS = -1073741615i32; +pub const STATUS_REDIRECTOR_STARTED: NTSTATUS = -1073741572i32; +pub const STATUS_REGISTRY_CORRUPT: NTSTATUS = -1073741492i32; +pub const STATUS_REGISTRY_HIVE_RECOVERED: NTSTATUS = -2147483606i32; +pub const STATUS_REGISTRY_IO_FAILED: NTSTATUS = -1073741491i32; +pub const STATUS_REGISTRY_QUOTA_LIMIT: NTSTATUS = -1073741226i32; +pub const STATUS_REGISTRY_RECOVERED: NTSTATUS = 1073741833i32; +pub const STATUS_REG_NAT_CONSUMPTION: NTSTATUS = -1073741111i32; +pub const STATUS_REINITIALIZATION_NEEDED: NTSTATUS = -1073741177i32; +pub const STATUS_REMOTE_DISCONNECT: NTSTATUS = -1073741508i32; +pub const STATUS_REMOTE_FILE_VERSION_MISMATCH: NTSTATUS = -1072103412i32; +pub const STATUS_REMOTE_NOT_LISTENING: NTSTATUS = -1073741636i32; +pub const STATUS_REMOTE_RESOURCES: NTSTATUS = -1073741507i32; +pub const STATUS_REMOTE_SESSION_LIMIT: NTSTATUS = -1073741418i32; +pub const STATUS_REMOTE_STORAGE_MEDIA_ERROR: NTSTATUS = -1073741154i32; +pub const STATUS_REMOTE_STORAGE_NOT_ACTIVE: NTSTATUS = -1073741155i32; +pub const STATUS_REPAIR_NEEDED: NTSTATUS = -1073741400i32; +pub const STATUS_REPARSE: NTSTATUS = 260i32; +pub const STATUS_REPARSE_ATTRIBUTE_CONFLICT: NTSTATUS = -1073741134i32; +pub const STATUS_REPARSE_GLOBAL: NTSTATUS = 872i32; +pub const STATUS_REPARSE_OBJECT: NTSTATUS = 280i32; +pub const STATUS_REPARSE_POINT_ENCOUNTERED: NTSTATUS = -1073740533i32; +pub const STATUS_REPARSE_POINT_NOT_RESOLVED: NTSTATUS = -1073741184i32; +pub const STATUS_REPLY_MESSAGE_MISMATCH: NTSTATUS = -1073741281i32; +pub const STATUS_REQUEST_ABORTED: NTSTATUS = -1073741248i32; +pub const STATUS_REQUEST_CANCELED: NTSTATUS = -1073740029i32; +pub const STATUS_REQUEST_NOT_ACCEPTED: NTSTATUS = -1073741616i32; +pub const STATUS_REQUEST_OUT_OF_SEQUENCE: NTSTATUS = -1073740758i32; +pub const STATUS_REQUEST_PAUSED: NTSTATUS = -1073740711i32; +pub const STATUS_RESIDENT_FILE_NOT_SUPPORTED: NTSTATUS = -1073740678i32; +pub const STATUS_RESOURCEMANAGER_NOT_FOUND: NTSTATUS = -1072103345i32; +pub const STATUS_RESOURCEMANAGER_READ_ONLY: NTSTATUS = 514i32; +pub const STATUS_RESOURCE_DATA_NOT_FOUND: NTSTATUS = -1073741687i32; +pub const STATUS_RESOURCE_ENUM_USER_STOP: NTSTATUS = -1073020921i32; +pub const STATUS_RESOURCE_IN_USE: NTSTATUS = -1073740024i32; +pub const STATUS_RESOURCE_LANG_NOT_FOUND: NTSTATUS = -1073741308i32; +pub const STATUS_RESOURCE_NAME_NOT_FOUND: NTSTATUS = -1073741685i32; +pub const STATUS_RESOURCE_NOT_OWNED: NTSTATUS = -1073741212i32; +pub const STATUS_RESOURCE_REQUIREMENTS_CHANGED: NTSTATUS = 281i32; +pub const STATUS_RESOURCE_TYPE_NOT_FOUND: NTSTATUS = -1073741686i32; +pub const STATUS_RESTART_BOOT_APPLICATION: NTSTATUS = -1073740717i32; +pub const STATUS_RESUME_HIBERNATION: NTSTATUS = 1073741867i32; +pub const STATUS_RETRY: NTSTATUS = -1073741267i32; +pub const STATUS_RETURN_ADDRESS_HIJACK_ATTEMPT: NTSTATUS = -2147483597i32; +pub const STATUS_REVISION_MISMATCH: NTSTATUS = -1073741735i32; +pub const STATUS_REVOCATION_OFFLINE_C: NTSTATUS = -1073740917i32; +pub const STATUS_REVOCATION_OFFLINE_KDC: NTSTATUS = -1073740788i32; +pub const STATUS_RING_NEWLY_EMPTY: NTSTATUS = 531i32; +pub const STATUS_RING_PREVIOUSLY_ABOVE_QUOTA: NTSTATUS = 530i32; +pub const STATUS_RING_PREVIOUSLY_EMPTY: NTSTATUS = 528i32; +pub const STATUS_RING_PREVIOUSLY_FULL: NTSTATUS = 529i32; +pub const STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT: NTSTATUS = 532i32; +pub const STATUS_RKF_ACTIVE_KEY: NTSTATUS = -1069547514i32; +pub const STATUS_RKF_BLOB_FULL: NTSTATUS = -1069547517i32; +pub const STATUS_RKF_DUPLICATE_KEY: NTSTATUS = -1069547518i32; +pub const STATUS_RKF_FILE_BLOCKED: NTSTATUS = -1069547515i32; +pub const STATUS_RKF_KEY_NOT_FOUND: NTSTATUS = -1069547519i32; +pub const STATUS_RKF_STORE_FULL: NTSTATUS = -1069547516i32; +pub const STATUS_RM_ALREADY_STARTED: NTSTATUS = 1075380277i32; +pub const STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT: NTSTATUS = -1072103331i32; +pub const STATUS_RM_DISCONNECTED: NTSTATUS = -1072103374i32; +pub const STATUS_RM_METADATA_CORRUPT: NTSTATUS = -1072103418i32; +pub const STATUS_RM_NOT_ACTIVE: NTSTATUS = -1072103419i32; +pub const STATUS_ROLLBACK_TIMER_EXPIRED: NTSTATUS = -1072103364i32; +pub const STATUS_RTPM_CONTEXT_COMPLETE: NTSTATUS = 2699265i32; +pub const STATUS_RTPM_CONTEXT_CONTINUE: NTSTATUS = 2699264i32; +pub const STATUS_RTPM_INVALID_CONTEXT: NTSTATUS = -1071042556i32; +pub const STATUS_RTPM_NO_RESULT: NTSTATUS = -1071042558i32; +pub const STATUS_RTPM_PCR_READ_INCOMPLETE: NTSTATUS = -1071042557i32; +pub const STATUS_RTPM_UNSUPPORTED_CMD: NTSTATUS = -1071042555i32; +pub const STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT: NTSTATUS = -1073700539i32; +pub const STATUS_RUNLEVEL_SWITCH_IN_PROGRESS: NTSTATUS = -1073700538i32; +pub const STATUS_RUNLEVEL_SWITCH_TIMEOUT: NTSTATUS = -1073700541i32; +pub const STATUS_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED: NTSTATUS = -1073740633i32; +pub const STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET: NTSTATUS = -1073740632i32; +pub const STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE: NTSTATUS = -1073740631i32; +pub const STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER: NTSTATUS = -1073740630i32; +pub const STATUS_RXACT_COMMITTED: NTSTATUS = 266i32; +pub const STATUS_RXACT_COMMIT_FAILURE: NTSTATUS = -1073741539i32; +pub const STATUS_RXACT_COMMIT_NECESSARY: NTSTATUS = -2147483624i32; +pub const STATUS_RXACT_INVALID_STATE: NTSTATUS = -1073741540i32; +pub const STATUS_RXACT_STATE_CREATED: NTSTATUS = 1073741828i32; +pub const STATUS_SAM_INIT_FAILURE: NTSTATUS = -1073741085i32; +pub const STATUS_SAM_NEED_BOOTKEY_FLOPPY: NTSTATUS = -1073741088i32; +pub const STATUS_SAM_NEED_BOOTKEY_PASSWORD: NTSTATUS = -1073741089i32; +pub const STATUS_SCRUB_DATA_DISABLED: NTSTATUS = -1073740680i32; +pub const STATUS_SECCORE_INVALID_COMMAND: NTSTATUS = -1058537472i32; +pub const STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED: NTSTATUS = -1073700575i32; +pub const STATUS_SECRET_TOO_LONG: NTSTATUS = -1073741481i32; +pub const STATUS_SECTION_DIRECT_MAP_ONLY: NTSTATUS = -1073739503i32; +pub const STATUS_SECTION_NOT_EXTENDED: NTSTATUS = -1073741689i32; +pub const STATUS_SECTION_NOT_IMAGE: NTSTATUS = -1073741751i32; +pub const STATUS_SECTION_PROTECTION: NTSTATUS = -1073741746i32; +pub const STATUS_SECTION_TOO_BIG: NTSTATUS = -1073741760i32; +pub const STATUS_SECUREBOOT_FILE_REPLACED: NTSTATUS = -1069350905i32; +pub const STATUS_SECUREBOOT_INVALID_POLICY: NTSTATUS = -1069350909i32; +pub const STATUS_SECUREBOOT_NOT_BASE_POLICY: NTSTATUS = -1069350897i32; +pub const STATUS_SECUREBOOT_NOT_ENABLED: NTSTATUS = -2143092730i32; +pub const STATUS_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY: NTSTATUS = -1069350896i32; +pub const STATUS_SECUREBOOT_PLATFORM_ID_MISMATCH: NTSTATUS = -1069350901i32; +pub const STATUS_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION: NTSTATUS = -1069350902i32; +pub const STATUS_SECUREBOOT_POLICY_NOT_AUTHORIZED: NTSTATUS = -1069350904i32; +pub const STATUS_SECUREBOOT_POLICY_NOT_SIGNED: NTSTATUS = -1069350907i32; +pub const STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND: NTSTATUS = -1069350908i32; +pub const STATUS_SECUREBOOT_POLICY_ROLLBACK_DETECTED: NTSTATUS = -1069350900i32; +pub const STATUS_SECUREBOOT_POLICY_UNKNOWN: NTSTATUS = -1069350903i32; +pub const STATUS_SECUREBOOT_POLICY_UPGRADE_MISMATCH: NTSTATUS = -1069350899i32; +pub const STATUS_SECUREBOOT_POLICY_VIOLATION: NTSTATUS = -1069350910i32; +pub const STATUS_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING: NTSTATUS = -1069350898i32; +pub const STATUS_SECUREBOOT_ROLLBACK_DETECTED: NTSTATUS = -1069350911i32; +pub const STATUS_SECURITY_STREAM_IS_INCONSISTENT: NTSTATUS = -1073741408i32; +pub const STATUS_SEGMENT_NOTIFICATION: NTSTATUS = 1073741829i32; +pub const STATUS_SEMAPHORE_LIMIT_EXCEEDED: NTSTATUS = -1073741753i32; +pub const STATUS_SERIAL_COUNTER_TIMEOUT: NTSTATUS = 1073741836i32; +pub const STATUS_SERIAL_MORE_WRITES: NTSTATUS = 1073741832i32; +pub const STATUS_SERIAL_NO_DEVICE_INITED: NTSTATUS = -1073741488i32; +pub const STATUS_SERVER_DISABLED: NTSTATUS = -1073741696i32; +pub const STATUS_SERVER_HAS_OPEN_HANDLES: NTSTATUS = -2147483612i32; +pub const STATUS_SERVER_NOT_DISABLED: NTSTATUS = -1073741695i32; +pub const STATUS_SERVER_SHUTDOWN_IN_PROGRESS: NTSTATUS = -1073741057i32; +pub const STATUS_SERVER_SID_MISMATCH: NTSTATUS = -1073741152i32; +pub const STATUS_SERVER_TRANSPORT_CONFLICT: NTSTATUS = -1073741388i32; +pub const STATUS_SERVER_UNAVAILABLE: NTSTATUS = -1073740698i32; +pub const STATUS_SERVICES_FAILED_AUTOSTART: NTSTATUS = 1073783108i32; +pub const STATUS_SERVICE_NOTIFICATION: NTSTATUS = 1073741848i32; +pub const STATUS_SESSION_KEY_TOO_SHORT: NTSTATUS = -1073740521i32; +pub const STATUS_SETMARK_DETECTED: NTSTATUS = -2147483615i32; +pub const STATUS_SET_CONTEXT_DENIED: NTSTATUS = -1073740278i32; +pub const STATUS_SEVERITY_COERROR: u32 = 2u32; +pub const STATUS_SEVERITY_COFAIL: u32 = 3u32; +pub const STATUS_SEVERITY_ERROR: NTSTATUS_SEVERITY_CODE = 3u32; +pub const STATUS_SEVERITY_INFORMATIONAL: NTSTATUS_SEVERITY_CODE = 1u32; +pub const STATUS_SEVERITY_SUCCESS: NTSTATUS_SEVERITY_CODE = 0u32; +pub const STATUS_SEVERITY_WARNING: NTSTATUS_SEVERITY_CODE = 2u32; +pub const STATUS_SHARED_IRQ_BUSY: NTSTATUS = -1073741460i32; +pub const STATUS_SHARED_POLICY: NTSTATUS = -1073741159i32; +pub const STATUS_SHARE_UNAVAILABLE: NTSTATUS = -1073740672i32; +pub const STATUS_SHARING_PAUSED: NTSTATUS = -1073741617i32; +pub const STATUS_SHARING_VIOLATION: NTSTATUS = -1073741757i32; +pub const STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME: NTSTATUS = -1073741409i32; +pub const STATUS_SHUTDOWN_IN_PROGRESS: NTSTATUS = -1073741058i32; +pub const STATUS_SINGLE_STEP: NTSTATUS = -2147483644i32; +pub const STATUS_SMARTCARD_CARD_BLOCKED: NTSTATUS = -1073740927i32; +pub const STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED: NTSTATUS = -1073740926i32; +pub const STATUS_SMARTCARD_CERT_EXPIRED: NTSTATUS = -1073740915i32; +pub const STATUS_SMARTCARD_CERT_REVOKED: NTSTATUS = -1073740919i32; +pub const STATUS_SMARTCARD_IO_ERROR: NTSTATUS = -1073740921i32; +pub const STATUS_SMARTCARD_LOGON_REQUIRED: NTSTATUS = -1073741062i32; +pub const STATUS_SMARTCARD_NO_CARD: NTSTATUS = -1073740925i32; +pub const STATUS_SMARTCARD_NO_CERTIFICATE: NTSTATUS = -1073740923i32; +pub const STATUS_SMARTCARD_NO_KEYSET: NTSTATUS = -1073740922i32; +pub const STATUS_SMARTCARD_NO_KEY_CONTAINER: NTSTATUS = -1073740924i32; +pub const STATUS_SMARTCARD_SILENT_CONTEXT: NTSTATUS = -1073740913i32; +pub const STATUS_SMARTCARD_SUBSYSTEM_FAILURE: NTSTATUS = -1073741023i32; +pub const STATUS_SMARTCARD_WRONG_PIN: NTSTATUS = -1073740928i32; +pub const STATUS_SMB1_NOT_AVAILABLE: NTSTATUS = -1073740525i32; +pub const STATUS_SMB_BAD_CLUSTER_DIALECT: NTSTATUS = -1067646975i32; +pub const STATUS_SMB_GUEST_LOGON_BLOCKED: NTSTATUS = -1067646974i32; +pub const STATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP: NTSTATUS = -1067646976i32; +pub const STATUS_SMB_NO_SIGNING_ALGORITHM_OVERLAP: NTSTATUS = -1067646973i32; +pub const STATUS_SMI_PRIMITIVE_INSTALLER_FAILED: NTSTATUS = -1072365531i32; +pub const STATUS_SMR_GARBAGE_COLLECTION_REQUIRED: NTSTATUS = -1073740524i32; +pub const STATUS_SOME_NOT_MAPPED: NTSTATUS = 263i32; +pub const STATUS_SOURCE_ELEMENT_EMPTY: NTSTATUS = -1073741181i32; +pub const STATUS_SPACES_ALLOCATION_SIZE_INVALID: NTSTATUS = -1058602994i32; +pub const STATUS_SPACES_CACHE_FULL: NTSTATUS = -1058602970i32; +pub const STATUS_SPACES_COMPLETE: NTSTATUS = 15138818i32; +pub const STATUS_SPACES_CORRUPT_METADATA: NTSTATUS = -1058602986i32; +pub const STATUS_SPACES_DRIVE_LOST_DATA: NTSTATUS = -1058602979i32; +pub const STATUS_SPACES_DRIVE_NOT_READY: NTSTATUS = -1058602981i32; +pub const STATUS_SPACES_DRIVE_OPERATIONAL_STATE_INVALID: NTSTATUS = -1058602990i32; +pub const STATUS_SPACES_DRIVE_REDUNDANCY_INVALID: NTSTATUS = -1058603002i32; +pub const STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID: NTSTATUS = -1058603004i32; +pub const STATUS_SPACES_DRIVE_SPLIT: NTSTATUS = -1058602980i32; +pub const STATUS_SPACES_DRT_FULL: NTSTATUS = -1058602985i32; +pub const STATUS_SPACES_ENCLOSURE_AWARE_INVALID: NTSTATUS = -1058602993i32; +pub const STATUS_SPACES_ENTRY_INCOMPLETE: NTSTATUS = -1058602978i32; +pub const STATUS_SPACES_ENTRY_INVALID: NTSTATUS = -1058602977i32; +pub const STATUS_SPACES_EXTENDED_ERROR: NTSTATUS = -1058602996i32; +pub const STATUS_SPACES_FAULT_DOMAIN_TYPE_INVALID: NTSTATUS = -1058603007i32; +pub const STATUS_SPACES_FLUSH_METADATA: NTSTATUS = -1058602971i32; +pub const STATUS_SPACES_INCONSISTENCY: NTSTATUS = -1058602984i32; +pub const STATUS_SPACES_INTERLEAVE_LENGTH_INVALID: NTSTATUS = -1058602999i32; +pub const STATUS_SPACES_LOG_NOT_READY: NTSTATUS = -1058602983i32; +pub const STATUS_SPACES_MAP_REQUIRED: NTSTATUS = -1058602988i32; +pub const STATUS_SPACES_MARK_DIRTY: NTSTATUS = -1058602976i32; +pub const STATUS_SPACES_NOT_ENOUGH_DRIVES: NTSTATUS = -1058602997i32; +pub const STATUS_SPACES_NO_REDUNDANCY: NTSTATUS = -1058602982i32; +pub const STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID: NTSTATUS = -1058602998i32; +pub const STATUS_SPACES_NUMBER_OF_DATA_COPIES_INVALID: NTSTATUS = -1058603001i32; +pub const STATUS_SPACES_NUMBER_OF_GROUPS_INVALID: NTSTATUS = -1058602991i32; +pub const STATUS_SPACES_PAUSE: NTSTATUS = 15138817i32; +pub const STATUS_SPACES_PD_INVALID_DATA: NTSTATUS = -1058602972i32; +pub const STATUS_SPACES_PD_LENGTH_MISMATCH: NTSTATUS = -1058602974i32; +pub const STATUS_SPACES_PD_NOT_FOUND: NTSTATUS = -1058602975i32; +pub const STATUS_SPACES_PD_UNSUPPORTED_VERSION: NTSTATUS = -1058602973i32; +pub const STATUS_SPACES_PROVISIONING_TYPE_INVALID: NTSTATUS = -1058602995i32; +pub const STATUS_SPACES_REDIRECT: NTSTATUS = 15138819i32; +pub const STATUS_SPACES_REPAIRED: NTSTATUS = 15138816i32; +pub const STATUS_SPACES_REPAIR_IN_PROGRESS: NTSTATUS = -1058602969i32; +pub const STATUS_SPACES_RESILIENCY_TYPE_INVALID: NTSTATUS = -1058603005i32; +pub const STATUS_SPACES_UNSUPPORTED_VERSION: NTSTATUS = -1058602987i32; +pub const STATUS_SPACES_UPDATE_COLUMN_STATE: NTSTATUS = -1058602989i32; +pub const STATUS_SPACES_WRITE_CACHE_SIZE_INVALID: NTSTATUS = -1058602992i32; +pub const STATUS_SPARSE_FILE_NOT_SUPPORTED: NTSTATUS = -1073740604i32; +pub const STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION: NTSTATUS = -1072103351i32; +pub const STATUS_SPECIAL_ACCOUNT: NTSTATUS = -1073741532i32; +pub const STATUS_SPECIAL_GROUP: NTSTATUS = -1073741531i32; +pub const STATUS_SPECIAL_USER: NTSTATUS = -1073741530i32; +pub const STATUS_STACK_BUFFER_OVERRUN: NTSTATUS = -1073740791i32; +pub const STATUS_STACK_OVERFLOW: NTSTATUS = -1073741571i32; +pub const STATUS_STACK_OVERFLOW_READ: NTSTATUS = -1073741272i32; +pub const STATUS_STOPPED_ON_SYMLINK: NTSTATUS = -2147483603i32; +pub const STATUS_STORAGE_LOST_DATA_PERSISTENCE: NTSTATUS = -1073740642i32; +pub const STATUS_STORAGE_RESERVE_ALREADY_EXISTS: NTSTATUS = -1073740625i32; +pub const STATUS_STORAGE_RESERVE_DOES_NOT_EXIST: NTSTATUS = -1073740626i32; +pub const STATUS_STORAGE_RESERVE_ID_INVALID: NTSTATUS = -1073740627i32; +pub const STATUS_STORAGE_RESERVE_NOT_EMPTY: NTSTATUS = -1073740624i32; +pub const STATUS_STORAGE_STACK_ACCESS_DENIED: NTSTATUS = -1073740607i32; +pub const STATUS_STORAGE_TOPOLOGY_ID_MISMATCH: NTSTATUS = -1073740666i32; +pub const STATUS_STOWED_EXCEPTION: NTSTATUS = -1073741189i32; +pub const STATUS_STREAM_MINIVERSION_NOT_FOUND: NTSTATUS = -1072103390i32; +pub const STATUS_STREAM_MINIVERSION_NOT_VALID: NTSTATUS = -1072103389i32; +pub const STATUS_STRICT_CFG_VIOLATION: NTSTATUS = -1073740282i32; +pub const STATUS_STRONG_CRYPTO_NOT_SUPPORTED: NTSTATUS = -1073741066i32; +pub const STATUS_SUCCESS: NTSTATUS = 0i32; +pub const STATUS_SUSPEND_COUNT_EXCEEDED: NTSTATUS = -1073741750i32; +pub const STATUS_SVHDX_ERROR_NOT_AVAILABLE: NTSTATUS = -1067647232i32; +pub const STATUS_SVHDX_ERROR_STORED: NTSTATUS = -1067712512i32; +pub const STATUS_SVHDX_NO_INITIATOR: NTSTATUS = -1067647221i32; +pub const STATUS_SVHDX_RESERVATION_CONFLICT: NTSTATUS = -1067647225i32; +pub const STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE: NTSTATUS = -1067647231i32; +pub const STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED: NTSTATUS = -1067647230i32; +pub const STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED: NTSTATUS = -1067647226i32; +pub const STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED: NTSTATUS = -1067647227i32; +pub const STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED: NTSTATUS = -1067647229i32; +pub const STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED: NTSTATUS = -1067647228i32; +pub const STATUS_SVHDX_VERSION_MISMATCH: NTSTATUS = -1067647223i32; +pub const STATUS_SVHDX_WRONG_FILE_TYPE: NTSTATUS = -1067647224i32; +pub const STATUS_SXS_ACTIVATION_CONTEXT_DISABLED: NTSTATUS = -1072365561i32; +pub const STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT: NTSTATUS = -1072365538i32; +pub const STATUS_SXS_ASSEMBLY_MISSING: NTSTATUS = -1072365556i32; +pub const STATUS_SXS_ASSEMBLY_NOT_FOUND: NTSTATUS = -1072365564i32; +pub const STATUS_SXS_CANT_GEN_ACTCTX: NTSTATUS = -1072365566i32; +pub const STATUS_SXS_COMPONENT_STORE_CORRUPT: NTSTATUS = -1072365542i32; +pub const STATUS_SXS_CORRUPTION: NTSTATUS = -1072365547i32; +pub const STATUS_SXS_CORRUPT_ACTIVATION_STACK: NTSTATUS = -1072365548i32; +pub const STATUS_SXS_EARLY_DEACTIVATION: NTSTATUS = -1072365553i32; +pub const STATUS_SXS_FILE_HASH_MISMATCH: NTSTATUS = -1072365541i32; +pub const STATUS_SXS_FILE_HASH_MISSING: NTSTATUS = -1072365529i32; +pub const STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY: NTSTATUS = -1072365537i32; +pub const STATUS_SXS_IDENTITIES_DIFFERENT: NTSTATUS = -1072365539i32; +pub const STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE: NTSTATUS = -1072365544i32; +pub const STATUS_SXS_IDENTITY_PARSE_ERROR: NTSTATUS = -1072365543i32; +pub const STATUS_SXS_INVALID_ACTCTXDATA_FORMAT: NTSTATUS = -1072365565i32; +pub const STATUS_SXS_INVALID_DEACTIVATION: NTSTATUS = -1072365552i32; +pub const STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME: NTSTATUS = -1072365545i32; +pub const STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE: NTSTATUS = -1072365546i32; +pub const STATUS_SXS_KEY_NOT_FOUND: NTSTATUS = -1072365560i32; +pub const STATUS_SXS_MANIFEST_FORMAT_ERROR: NTSTATUS = -1072365563i32; +pub const STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT: NTSTATUS = -1072365540i32; +pub const STATUS_SXS_MANIFEST_PARSE_ERROR: NTSTATUS = -1072365562i32; +pub const STATUS_SXS_MANIFEST_TOO_BIG: NTSTATUS = -1072365534i32; +pub const STATUS_SXS_MULTIPLE_DEACTIVATION: NTSTATUS = -1072365551i32; +pub const STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET: NTSTATUS = -1072365554i32; +pub const STATUS_SXS_PROCESS_TERMINATION_REQUESTED: NTSTATUS = -1072365549i32; +pub const STATUS_SXS_RELEASE_ACTIVATION_CONTEXT: NTSTATUS = 1075118093i32; +pub const STATUS_SXS_SECTION_NOT_FOUND: NTSTATUS = -1072365567i32; +pub const STATUS_SXS_SETTING_NOT_REGISTERED: NTSTATUS = -1072365533i32; +pub const STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY: NTSTATUS = -1072365550i32; +pub const STATUS_SXS_THREAD_QUERIES_DISABLED: NTSTATUS = -1072365557i32; +pub const STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE: NTSTATUS = -1072365532i32; +pub const STATUS_SXS_VERSION_CONFLICT: NTSTATUS = -1072365559i32; +pub const STATUS_SXS_WRONG_SECTION_TYPE: NTSTATUS = -1072365558i32; +pub const STATUS_SYMLINK_CLASS_DISABLED: NTSTATUS = -1073740011i32; +pub const STATUS_SYNCHRONIZATION_REQUIRED: NTSTATUS = -1073741516i32; +pub const STATUS_SYSTEM_DEVICE_NOT_FOUND: NTSTATUS = -1073740718i32; +pub const STATUS_SYSTEM_HIVE_TOO_LARGE: NTSTATUS = -1073740946i32; +pub const STATUS_SYSTEM_IMAGE_BAD_SIGNATURE: NTSTATUS = -1073741103i32; +pub const STATUS_SYSTEM_INTEGRITY_INVALID_POLICY: NTSTATUS = -1058471933i32; +pub const STATUS_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED: NTSTATUS = -1058471932i32; +pub const STATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION: NTSTATUS = -1058471934i32; +pub const STATUS_SYSTEM_INTEGRITY_REPUTATION_DANGEROUS_EXT: NTSTATUS = -1058471927i32; +pub const STATUS_SYSTEM_INTEGRITY_REPUTATION_MALICIOUS: NTSTATUS = -1058471929i32; +pub const STATUS_SYSTEM_INTEGRITY_REPUTATION_OFFLINE: NTSTATUS = -1058471926i32; +pub const STATUS_SYSTEM_INTEGRITY_REPUTATION_PUA: NTSTATUS = -1058471928i32; +pub const STATUS_SYSTEM_INTEGRITY_REPUTATION_UNATTAINABLE: NTSTATUS = -1058471924i32; +pub const STATUS_SYSTEM_INTEGRITY_REPUTATION_UNFRIENDLY_FILE: NTSTATUS = -1058471925i32; +pub const STATUS_SYSTEM_INTEGRITY_ROLLBACK_DETECTED: NTSTATUS = -1058471935i32; +pub const STATUS_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED: NTSTATUS = -1058471930i32; +pub const STATUS_SYSTEM_INTEGRITY_TOO_MANY_POLICIES: NTSTATUS = -1058471931i32; +pub const STATUS_SYSTEM_NEEDS_REMEDIATION: NTSTATUS = -1073740674i32; +pub const STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION: NTSTATUS = 1073741873i32; +pub const STATUS_SYSTEM_POWERSTATE_TRANSITION: NTSTATUS = 1073741871i32; +pub const STATUS_SYSTEM_PROCESS_TERMINATED: NTSTATUS = -1073741286i32; +pub const STATUS_SYSTEM_SHUTDOWN: NTSTATUS = -1073741077i32; +pub const STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED: NTSTATUS = -1073740018i32; +pub const STATUS_THREADPOOL_HANDLE_EXCEPTION: NTSTATUS = -1073740022i32; +pub const STATUS_THREADPOOL_RELEASED_DURING_OPERATION: NTSTATUS = -1073740017i32; +pub const STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED: NTSTATUS = -1073740019i32; +pub const STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED: NTSTATUS = -1073740020i32; +pub const STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED: NTSTATUS = -1073740021i32; +pub const STATUS_THREAD_ALREADY_IN_SESSION: NTSTATUS = -1073740714i32; +pub const STATUS_THREAD_ALREADY_IN_TASK: NTSTATUS = -1073740542i32; +pub const STATUS_THREAD_IS_TERMINATING: NTSTATUS = -1073741749i32; +pub const STATUS_THREAD_NOT_IN_PROCESS: NTSTATUS = -1073741526i32; +pub const STATUS_THREAD_NOT_IN_SESSION: NTSTATUS = -1073740713i32; +pub const STATUS_THREAD_NOT_RUNNING: NTSTATUS = -1073740522i32; +pub const STATUS_THREAD_WAS_SUSPENDED: NTSTATUS = 1073741825i32; +pub const STATUS_TIMEOUT: NTSTATUS = 258i32; +pub const STATUS_TIMER_NOT_CANCELED: NTSTATUS = -1073741812i32; +pub const STATUS_TIMER_RESOLUTION_NOT_SET: NTSTATUS = -1073741243i32; +pub const STATUS_TIMER_RESUME_IGNORED: NTSTATUS = 1073741861i32; +pub const STATUS_TIME_DIFFERENCE_AT_DC: NTSTATUS = -1073741517i32; +pub const STATUS_TM_IDENTITY_MISMATCH: NTSTATUS = -1072103350i32; +pub const STATUS_TM_INITIALIZATION_FAILED: NTSTATUS = -1072103420i32; +pub const STATUS_TM_VOLATILE: NTSTATUS = -1072103365i32; +pub const STATUS_TOKEN_ALREADY_IN_USE: NTSTATUS = -1073741525i32; +pub const STATUS_TOO_LATE: NTSTATUS = -1073741431i32; +pub const STATUS_TOO_MANY_ADDRESSES: NTSTATUS = -1073741303i32; +pub const STATUS_TOO_MANY_COMMANDS: NTSTATUS = -1073741631i32; +pub const STATUS_TOO_MANY_CONTEXT_IDS: NTSTATUS = -1073741478i32; +pub const STATUS_TOO_MANY_GUIDS_REQUESTED: NTSTATUS = -1073741694i32; +pub const STATUS_TOO_MANY_LINKS: NTSTATUS = -1073741211i32; +pub const STATUS_TOO_MANY_LUIDS_REQUESTED: NTSTATUS = -1073741708i32; +pub const STATUS_TOO_MANY_NAMES: NTSTATUS = -1073741619i32; +pub const STATUS_TOO_MANY_NODES: NTSTATUS = -1073741298i32; +pub const STATUS_TOO_MANY_OPENED_FILES: NTSTATUS = -1073741537i32; +pub const STATUS_TOO_MANY_PAGING_FILES: NTSTATUS = -1073741673i32; +pub const STATUS_TOO_MANY_PRINCIPALS: NTSTATUS = -1073741065i32; +pub const STATUS_TOO_MANY_SECRETS: NTSTATUS = -1073741482i32; +pub const STATUS_TOO_MANY_SEGMENT_DESCRIPTORS: NTSTATUS = -1073740685i32; +pub const STATUS_TOO_MANY_SESSIONS: NTSTATUS = -1073741618i32; +pub const STATUS_TOO_MANY_SIDS: NTSTATUS = -1073741442i32; +pub const STATUS_TOO_MANY_THREADS: NTSTATUS = -1073741527i32; +pub const STATUS_TPM_20_E_ASYMMETRIC: NTSTATUS = -1071054719i32; +pub const STATUS_TPM_20_E_ATTRIBUTES: NTSTATUS = -1071054718i32; +pub const STATUS_TPM_20_E_AUTHSIZE: NTSTATUS = -1071054524i32; +pub const STATUS_TPM_20_E_AUTH_CONTEXT: NTSTATUS = -1071054523i32; +pub const STATUS_TPM_20_E_AUTH_FAIL: NTSTATUS = -1071054706i32; +pub const STATUS_TPM_20_E_AUTH_MISSING: NTSTATUS = -1071054555i32; +pub const STATUS_TPM_20_E_AUTH_TYPE: NTSTATUS = -1071054556i32; +pub const STATUS_TPM_20_E_AUTH_UNAVAILABLE: NTSTATUS = -1071054545i32; +pub const STATUS_TPM_20_E_BAD_AUTH: NTSTATUS = -1071054686i32; +pub const STATUS_TPM_20_E_BAD_CONTEXT: NTSTATUS = -1071054512i32; +pub const STATUS_TPM_20_E_BINDING: NTSTATUS = -1071054683i32; +pub const STATUS_TPM_20_E_COMMAND_CODE: NTSTATUS = -1071054525i32; +pub const STATUS_TPM_20_E_COMMAND_SIZE: NTSTATUS = -1071054526i32; +pub const STATUS_TPM_20_E_CPHASH: NTSTATUS = -1071054511i32; +pub const STATUS_TPM_20_E_CURVE: NTSTATUS = -1071054682i32; +pub const STATUS_TPM_20_E_DISABLED: NTSTATUS = -1071054560i32; +pub const STATUS_TPM_20_E_ECC_CURVE: NTSTATUS = -1071054557i32; +pub const STATUS_TPM_20_E_ECC_POINT: NTSTATUS = -1071054681i32; +pub const STATUS_TPM_20_E_EXCLUSIVE: NTSTATUS = -1071054559i32; +pub const STATUS_TPM_20_E_EXPIRED: NTSTATUS = -1071054685i32; +pub const STATUS_TPM_20_E_FAILURE: NTSTATUS = -1071054591i32; +pub const STATUS_TPM_20_E_HANDLE: NTSTATUS = -1071054709i32; +pub const STATUS_TPM_20_E_HASH: NTSTATUS = -1071054717i32; +pub const STATUS_TPM_20_E_HIERARCHY: NTSTATUS = -1071054715i32; +pub const STATUS_TPM_20_E_HMAC: NTSTATUS = -1071054567i32; +pub const STATUS_TPM_20_E_INITIALIZE: NTSTATUS = -1071054592i32; +pub const STATUS_TPM_20_E_INSUFFICIENT: NTSTATUS = -1071054694i32; +pub const STATUS_TPM_20_E_INTEGRITY: NTSTATUS = -1071054689i32; +pub const STATUS_TPM_20_E_KDF: NTSTATUS = -1071054708i32; +pub const STATUS_TPM_20_E_KEY: NTSTATUS = -1071054692i32; +pub const STATUS_TPM_20_E_KEY_SIZE: NTSTATUS = -1071054713i32; +pub const STATUS_TPM_20_E_MGF: NTSTATUS = -1071054712i32; +pub const STATUS_TPM_20_E_MODE: NTSTATUS = -1071054711i32; +pub const STATUS_TPM_20_E_NEEDS_TEST: NTSTATUS = -1071054509i32; +pub const STATUS_TPM_20_E_NONCE: NTSTATUS = -1071054705i32; +pub const STATUS_TPM_20_E_NO_RESULT: NTSTATUS = -1071054508i32; +pub const STATUS_TPM_20_E_NV_AUTHORIZATION: NTSTATUS = -1071054519i32; +pub const STATUS_TPM_20_E_NV_DEFINED: NTSTATUS = -1071054516i32; +pub const STATUS_TPM_20_E_NV_LOCKED: NTSTATUS = -1071054520i32; +pub const STATUS_TPM_20_E_NV_RANGE: NTSTATUS = -1071054522i32; +pub const STATUS_TPM_20_E_NV_SIZE: NTSTATUS = -1071054521i32; +pub const STATUS_TPM_20_E_NV_SPACE: NTSTATUS = -1071054517i32; +pub const STATUS_TPM_20_E_NV_UNINITIALIZED: NTSTATUS = -1071054518i32; +pub const STATUS_TPM_20_E_PARENT: NTSTATUS = -1071054510i32; +pub const STATUS_TPM_20_E_PCR: NTSTATUS = -1071054553i32; +pub const STATUS_TPM_20_E_PCR_CHANGED: NTSTATUS = -1071054552i32; +pub const STATUS_TPM_20_E_POLICY: NTSTATUS = -1071054554i32; +pub const STATUS_TPM_20_E_POLICY_CC: NTSTATUS = -1071054684i32; +pub const STATUS_TPM_20_E_POLICY_FAIL: NTSTATUS = -1071054691i32; +pub const STATUS_TPM_20_E_PP: NTSTATUS = -1071054704i32; +pub const STATUS_TPM_20_E_PRIVATE: NTSTATUS = -1071054581i32; +pub const STATUS_TPM_20_E_RANGE: NTSTATUS = -1071054707i32; +pub const STATUS_TPM_20_E_REBOOT: NTSTATUS = -1071054544i32; +pub const STATUS_TPM_20_E_RESERVED_BITS: NTSTATUS = -1071054687i32; +pub const STATUS_TPM_20_E_SCHEME: NTSTATUS = -1071054702i32; +pub const STATUS_TPM_20_E_SELECTOR: NTSTATUS = -1071054696i32; +pub const STATUS_TPM_20_E_SENSITIVE: NTSTATUS = -1071054507i32; +pub const STATUS_TPM_20_E_SEQUENCE: NTSTATUS = -1071054589i32; +pub const STATUS_TPM_20_E_SIGNATURE: NTSTATUS = -1071054693i32; +pub const STATUS_TPM_20_E_SIZE: NTSTATUS = -1071054699i32; +pub const STATUS_TPM_20_E_SYMMETRIC: NTSTATUS = -1071054698i32; +pub const STATUS_TPM_20_E_TAG: NTSTATUS = -1071054697i32; +pub const STATUS_TPM_20_E_TICKET: NTSTATUS = -1071054688i32; +pub const STATUS_TPM_20_E_TOO_MANY_CONTEXTS: NTSTATUS = -1071054546i32; +pub const STATUS_TPM_20_E_TYPE: NTSTATUS = -1071054710i32; +pub const STATUS_TPM_20_E_UNBALANCED: NTSTATUS = -1071054543i32; +pub const STATUS_TPM_20_E_UPGRADE: NTSTATUS = -1071054547i32; +pub const STATUS_TPM_20_E_VALUE: NTSTATUS = -1071054716i32; +pub const STATUS_TPM_ACCESS_DENIED: NTSTATUS = -1071050748i32; +pub const STATUS_TPM_AREA_LOCKED: NTSTATUS = -1071054788i32; +pub const STATUS_TPM_AUDITFAILURE: NTSTATUS = -1071054844i32; +pub const STATUS_TPM_AUDITFAIL_SUCCESSFUL: NTSTATUS = -1071054799i32; +pub const STATUS_TPM_AUDITFAIL_UNSUCCESSFUL: NTSTATUS = -1071054800i32; +pub const STATUS_TPM_AUTH2FAIL: NTSTATUS = -1071054819i32; +pub const STATUS_TPM_AUTHFAIL: NTSTATUS = -1071054847i32; +pub const STATUS_TPM_AUTH_CONFLICT: NTSTATUS = -1071054789i32; +pub const STATUS_TPM_BADCONTEXT: NTSTATUS = -1071054758i32; +pub const STATUS_TPM_BADINDEX: NTSTATUS = -1071054846i32; +pub const STATUS_TPM_BADTAG: NTSTATUS = -1071054818i32; +pub const STATUS_TPM_BAD_ATTRIBUTES: NTSTATUS = -1071054782i32; +pub const STATUS_TPM_BAD_COUNTER: NTSTATUS = -1071054779i32; +pub const STATUS_TPM_BAD_DATASIZE: NTSTATUS = -1071054805i32; +pub const STATUS_TPM_BAD_DELEGATE: NTSTATUS = -1071054759i32; +pub const STATUS_TPM_BAD_HANDLE: NTSTATUS = -1071054760i32; +pub const STATUS_TPM_BAD_KEY_PROPERTY: NTSTATUS = -1071054808i32; +pub const STATUS_TPM_BAD_LOCALITY: NTSTATUS = -1071054787i32; +pub const STATUS_TPM_BAD_MIGRATION: NTSTATUS = -1071054807i32; +pub const STATUS_TPM_BAD_MODE: NTSTATUS = -1071054804i32; +pub const STATUS_TPM_BAD_ORDINAL: NTSTATUS = -1071054838i32; +pub const STATUS_TPM_BAD_PARAMETER: NTSTATUS = -1071054845i32; +pub const STATUS_TPM_BAD_PARAM_SIZE: NTSTATUS = -1071054823i32; +pub const STATUS_TPM_BAD_PRESENCE: NTSTATUS = -1071054803i32; +pub const STATUS_TPM_BAD_SCHEME: NTSTATUS = -1071054806i32; +pub const STATUS_TPM_BAD_SIGNATURE: NTSTATUS = -1071054750i32; +pub const STATUS_TPM_BAD_TYPE: NTSTATUS = -1071054796i32; +pub const STATUS_TPM_BAD_VERSION: NTSTATUS = -1071054802i32; +pub const STATUS_TPM_CLEAR_DISABLED: NTSTATUS = -1071054843i32; +pub const STATUS_TPM_COMMAND_BLOCKED: NTSTATUS = -1071053824i32; +pub const STATUS_TPM_COMMAND_CANCELED: NTSTATUS = -1071050751i32; +pub const STATUS_TPM_CONTEXT_GAP: NTSTATUS = -1071054777i32; +pub const STATUS_TPM_DAA_INPUT_DATA0: NTSTATUS = -1071054767i32; +pub const STATUS_TPM_DAA_INPUT_DATA1: NTSTATUS = -1071054766i32; +pub const STATUS_TPM_DAA_ISSUER_SETTINGS: NTSTATUS = -1071054765i32; +pub const STATUS_TPM_DAA_ISSUER_VALIDITY: NTSTATUS = -1071054762i32; +pub const STATUS_TPM_DAA_RESOURCES: NTSTATUS = -1071054768i32; +pub const STATUS_TPM_DAA_STAGE: NTSTATUS = -1071054763i32; +pub const STATUS_TPM_DAA_TPM_SETTINGS: NTSTATUS = -1071054764i32; +pub const STATUS_TPM_DAA_WRONG_W: NTSTATUS = -1071054761i32; +pub const STATUS_TPM_DEACTIVATED: NTSTATUS = -1071054842i32; +pub const STATUS_TPM_DECRYPT_ERROR: NTSTATUS = -1071054815i32; +pub const STATUS_TPM_DEFEND_LOCK_RUNNING: NTSTATUS = -1071052797i32; +pub const STATUS_TPM_DELEGATE_ADMIN: NTSTATUS = -1071054771i32; +pub const STATUS_TPM_DELEGATE_FAMILY: NTSTATUS = -1071054772i32; +pub const STATUS_TPM_DELEGATE_LOCK: NTSTATUS = -1071054773i32; +pub const STATUS_TPM_DISABLED: NTSTATUS = -1071054841i32; +pub const STATUS_TPM_DISABLED_CMD: NTSTATUS = -1071054840i32; +pub const STATUS_TPM_DOING_SELFTEST: NTSTATUS = -1071052798i32; +pub const STATUS_TPM_DUPLICATE_VHANDLE: NTSTATUS = -1071053822i32; +pub const STATUS_TPM_EMBEDDED_COMMAND_BLOCKED: NTSTATUS = -1071053821i32; +pub const STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED: NTSTATUS = -1071053820i32; +pub const STATUS_TPM_ENCRYPT_ERROR: NTSTATUS = -1071054816i32; +pub const STATUS_TPM_ERROR_MASK: NTSTATUS = -1071054848i32; +pub const STATUS_TPM_FAIL: NTSTATUS = -1071054839i32; +pub const STATUS_TPM_FAILEDSELFTEST: NTSTATUS = -1071054820i32; +pub const STATUS_TPM_FAMILYCOUNT: NTSTATUS = -1071054784i32; +pub const STATUS_TPM_INAPPROPRIATE_ENC: NTSTATUS = -1071054834i32; +pub const STATUS_TPM_INAPPROPRIATE_SIG: NTSTATUS = -1071054809i32; +pub const STATUS_TPM_INSTALL_DISABLED: NTSTATUS = -1071054837i32; +pub const STATUS_TPM_INSUFFICIENT_BUFFER: NTSTATUS = -1071050747i32; +pub const STATUS_TPM_INVALID_AUTHHANDLE: NTSTATUS = -1071054814i32; +pub const STATUS_TPM_INVALID_FAMILY: NTSTATUS = -1071054793i32; +pub const STATUS_TPM_INVALID_HANDLE: NTSTATUS = -1071053823i32; +pub const STATUS_TPM_INVALID_KEYHANDLE: NTSTATUS = -1071054836i32; +pub const STATUS_TPM_INVALID_KEYUSAGE: NTSTATUS = -1071054812i32; +pub const STATUS_TPM_INVALID_PCR_INFO: NTSTATUS = -1071054832i32; +pub const STATUS_TPM_INVALID_POSTINIT: NTSTATUS = -1071054810i32; +pub const STATUS_TPM_INVALID_RESOURCE: NTSTATUS = -1071054795i32; +pub const STATUS_TPM_INVALID_STRUCTURE: NTSTATUS = -1071054781i32; +pub const STATUS_TPM_IOERROR: NTSTATUS = -1071054817i32; +pub const STATUS_TPM_KEYNOTFOUND: NTSTATUS = -1071054835i32; +pub const STATUS_TPM_KEY_NOTSUPPORTED: NTSTATUS = -1071054790i32; +pub const STATUS_TPM_KEY_OWNER_CONTROL: NTSTATUS = -1071054780i32; +pub const STATUS_TPM_MAXNVWRITES: NTSTATUS = -1071054776i32; +pub const STATUS_TPM_MA_AUTHORITY: NTSTATUS = -1071054753i32; +pub const STATUS_TPM_MA_DESTINATION: NTSTATUS = -1071054755i32; +pub const STATUS_TPM_MA_SOURCE: NTSTATUS = -1071054754i32; +pub const STATUS_TPM_MA_TICKET_SIGNATURE: NTSTATUS = -1071054756i32; +pub const STATUS_TPM_MIGRATEFAIL: NTSTATUS = -1071054833i32; +pub const STATUS_TPM_NEEDS_SELFTEST: NTSTATUS = -1071052799i32; +pub const STATUS_TPM_NOCONTEXTSPACE: NTSTATUS = -1071054749i32; +pub const STATUS_TPM_NOOPERATOR: NTSTATUS = -1071054775i32; +pub const STATUS_TPM_NOSPACE: NTSTATUS = -1071054831i32; +pub const STATUS_TPM_NOSRK: NTSTATUS = -1071054830i32; +pub const STATUS_TPM_NOTFIPS: NTSTATUS = -1071054794i32; +pub const STATUS_TPM_NOTLOCAL: NTSTATUS = -1071054797i32; +pub const STATUS_TPM_NOTRESETABLE: NTSTATUS = -1071054798i32; +pub const STATUS_TPM_NOTSEALED_BLOB: NTSTATUS = -1071054829i32; +pub const STATUS_TPM_NOT_FOUND: NTSTATUS = -1071050749i32; +pub const STATUS_TPM_NOT_FULLWRITE: NTSTATUS = -1071054778i32; +pub const STATUS_TPM_NO_ENDORSEMENT: NTSTATUS = -1071054813i32; +pub const STATUS_TPM_NO_NV_PERMISSION: NTSTATUS = -1071054792i32; +pub const STATUS_TPM_NO_WRAP_TRANSPORT: NTSTATUS = -1071054801i32; +pub const STATUS_TPM_OWNER_CONTROL: NTSTATUS = -1071054769i32; +pub const STATUS_TPM_OWNER_SET: NTSTATUS = -1071054828i32; +pub const STATUS_TPM_PERMANENTEK: NTSTATUS = -1071054751i32; +pub const STATUS_TPM_PER_NOWRITE: NTSTATUS = -1071054785i32; +pub const STATUS_TPM_PPI_FUNCTION_UNSUPPORTED: NTSTATUS = -1071050746i32; +pub const STATUS_TPM_READ_ONLY: NTSTATUS = -1071054786i32; +pub const STATUS_TPM_REQUIRES_SIGN: NTSTATUS = -1071054791i32; +pub const STATUS_TPM_RESOURCEMISSING: NTSTATUS = -1071054774i32; +pub const STATUS_TPM_RESOURCES: NTSTATUS = -1071054827i32; +pub const STATUS_TPM_RETRY: NTSTATUS = -1071052800i32; +pub const STATUS_TPM_SHA_ERROR: NTSTATUS = -1071054821i32; +pub const STATUS_TPM_SHA_THREAD: NTSTATUS = -1071054822i32; +pub const STATUS_TPM_SHORTRANDOM: NTSTATUS = -1071054826i32; +pub const STATUS_TPM_SIZE: NTSTATUS = -1071054825i32; +pub const STATUS_TPM_TOOMANYCONTEXTS: NTSTATUS = -1071054757i32; +pub const STATUS_TPM_TOO_MANY_CONTEXTS: NTSTATUS = -1071050750i32; +pub const STATUS_TPM_TRANSPORT_NOTEXCLUSIVE: NTSTATUS = -1071054770i32; +pub const STATUS_TPM_WRITE_LOCKED: NTSTATUS = -1071054783i32; +pub const STATUS_TPM_WRONGPCRVAL: NTSTATUS = -1071054824i32; +pub const STATUS_TPM_WRONG_ENTITYTYPE: NTSTATUS = -1071054811i32; +pub const STATUS_TPM_ZERO_EXHAUST_ENABLED: NTSTATUS = -1071038464i32; +pub const STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE: NTSTATUS = -1072103360i32; +pub const STATUS_TRANSACTIONAL_CONFLICT: NTSTATUS = -1072103423i32; +pub const STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED: NTSTATUS = -1072103361i32; +pub const STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH: NTSTATUS = -1072103332i32; +pub const STATUS_TRANSACTIONMANAGER_NOT_FOUND: NTSTATUS = -1072103343i32; +pub const STATUS_TRANSACTIONMANAGER_NOT_ONLINE: NTSTATUS = -1072103342i32; +pub const STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION: NTSTATUS = -1072103341i32; +pub const STATUS_TRANSACTIONS_NOT_FROZEN: NTSTATUS = -1072103355i32; +pub const STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE: NTSTATUS = -1072103414i32; +pub const STATUS_TRANSACTION_ABORTED: NTSTATUS = -1073741297i32; +pub const STATUS_TRANSACTION_ALREADY_ABORTED: NTSTATUS = -1072103403i32; +pub const STATUS_TRANSACTION_ALREADY_COMMITTED: NTSTATUS = -1072103402i32; +pub const STATUS_TRANSACTION_FREEZE_IN_PROGRESS: NTSTATUS = -1072103354i32; +pub const STATUS_TRANSACTION_INTEGRITY_VIOLATED: NTSTATUS = -1072103333i32; +pub const STATUS_TRANSACTION_INVALID_ID: NTSTATUS = -1073741292i32; +pub const STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER: NTSTATUS = -1072103401i32; +pub const STATUS_TRANSACTION_INVALID_TYPE: NTSTATUS = -1073741291i32; +pub const STATUS_TRANSACTION_MUST_WRITETHROUGH: NTSTATUS = -1072103330i32; +pub const STATUS_TRANSACTION_NOT_ACTIVE: NTSTATUS = -1072103421i32; +pub const STATUS_TRANSACTION_NOT_ENLISTED: NTSTATUS = -1072103327i32; +pub const STATUS_TRANSACTION_NOT_FOUND: NTSTATUS = -1072103346i32; +pub const STATUS_TRANSACTION_NOT_JOINED: NTSTATUS = -1072103417i32; +pub const STATUS_TRANSACTION_NOT_REQUESTED: NTSTATUS = -1072103404i32; +pub const STATUS_TRANSACTION_NOT_ROOT: NTSTATUS = -1072103340i32; +pub const STATUS_TRANSACTION_NO_MATCH: NTSTATUS = -1073741294i32; +pub const STATUS_TRANSACTION_NO_RELEASE: NTSTATUS = -1073741295i32; +pub const STATUS_TRANSACTION_NO_SUPERIOR: NTSTATUS = -1072103329i32; +pub const STATUS_TRANSACTION_OBJECT_EXPIRED: NTSTATUS = -1072103339i32; +pub const STATUS_TRANSACTION_PROPAGATION_FAILED: NTSTATUS = -1072103408i32; +pub const STATUS_TRANSACTION_RECORD_TOO_LONG: NTSTATUS = -1072103336i32; +pub const STATUS_TRANSACTION_REQUEST_NOT_VALID: NTSTATUS = -1072103405i32; +pub const STATUS_TRANSACTION_REQUIRED_PROMOTION: NTSTATUS = -1072103357i32; +pub const STATUS_TRANSACTION_RESPONDED: NTSTATUS = -1073741293i32; +pub const STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED: NTSTATUS = -1072103337i32; +pub const STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET: NTSTATUS = -2145845182i32; +pub const STATUS_TRANSACTION_SUPERIOR_EXISTS: NTSTATUS = -1072103406i32; +pub const STATUS_TRANSACTION_TIMED_OUT: NTSTATUS = -1073741296i32; +pub const STATUS_TRANSLATION_COMPLETE: NTSTATUS = 288i32; +pub const STATUS_TRANSPORT_FULL: NTSTATUS = -1073741110i32; +pub const STATUS_TRIGGERED_EXECUTABLE_MEMORY_WRITE: NTSTATUS = -1073739994i32; +pub const STATUS_TRIM_READ_ZERO_NOT_SUPPORTED: NTSTATUS = -1073740686i32; +pub const STATUS_TRUSTED_DOMAIN_FAILURE: NTSTATUS = -1073741428i32; +pub const STATUS_TRUSTED_RELATIONSHIP_FAILURE: NTSTATUS = -1073741427i32; +pub const STATUS_TRUST_FAILURE: NTSTATUS = -1073741424i32; +pub const STATUS_TS_INCOMPATIBLE_SESSIONS: NTSTATUS = -1073086407i32; +pub const STATUS_TS_VIDEO_SUBSYSTEM_ERROR: NTSTATUS = -1073086406i32; +pub const STATUS_TXF_ATTRIBUTE_CORRUPT: NTSTATUS = -1072103363i32; +pub const STATUS_TXF_DIR_NOT_EMPTY: NTSTATUS = -1072103367i32; +pub const STATUS_TXF_METADATA_ALREADY_PRESENT: NTSTATUS = -2145845183i32; +pub const STATUS_UNABLE_TO_DECOMMIT_VM: NTSTATUS = -1073741780i32; +pub const STATUS_UNABLE_TO_DELETE_SECTION: NTSTATUS = -1073741797i32; +pub const STATUS_UNABLE_TO_FREE_VM: NTSTATUS = -1073741798i32; +pub const STATUS_UNABLE_TO_LOCK_MEDIA: NTSTATUS = -1073741451i32; +pub const STATUS_UNABLE_TO_UNLOAD_MEDIA: NTSTATUS = -1073741450i32; +pub const STATUS_UNDEFINED_CHARACTER: NTSTATUS = -1073741469i32; +pub const STATUS_UNDEFINED_SCOPE: NTSTATUS = -1073740540i32; +pub const STATUS_UNEXPECTED_IO_ERROR: NTSTATUS = -1073741591i32; +pub const STATUS_UNEXPECTED_MM_CREATE_ERR: NTSTATUS = -1073741590i32; +pub const STATUS_UNEXPECTED_MM_EXTEND_ERR: NTSTATUS = -1073741588i32; +pub const STATUS_UNEXPECTED_MM_MAP_ERROR: NTSTATUS = -1073741589i32; +pub const STATUS_UNEXPECTED_NETWORK_ERROR: NTSTATUS = -1073741628i32; +pub const STATUS_UNFINISHED_CONTEXT_DELETED: NTSTATUS = -1073741074i32; +pub const STATUS_UNHANDLED_EXCEPTION: NTSTATUS = -1073741500i32; +pub const STATUS_UNKNOWN_REVISION: NTSTATUS = -1073741736i32; +pub const STATUS_UNMAPPABLE_CHARACTER: NTSTATUS = -1073741470i32; +pub const STATUS_UNRECOGNIZED_MEDIA: NTSTATUS = -1073741804i32; +pub const STATUS_UNRECOGNIZED_VOLUME: NTSTATUS = -1073741489i32; +pub const STATUS_UNSATISFIED_DEPENDENCIES: NTSTATUS = -1073740615i32; +pub const STATUS_UNSUCCESSFUL: NTSTATUS = -1073741823i32; +pub const STATUS_UNSUPPORTED_COMPRESSION: NTSTATUS = -1073741217i32; +pub const STATUS_UNSUPPORTED_PAGING_MODE: NTSTATUS = -1073740613i32; +pub const STATUS_UNSUPPORTED_PREAUTH: NTSTATUS = -1073740975i32; +pub const STATUS_UNTRUSTED_MOUNT_POINT: NTSTATUS = -1073740612i32; +pub const STATUS_UNWIND: NTSTATUS = -1073741785i32; +pub const STATUS_UNWIND_CONSOLIDATE: NTSTATUS = -2147483607i32; +pub const STATUS_USER2USER_REQUIRED: NTSTATUS = -1073740792i32; +pub const STATUS_USER_APC: NTSTATUS = 192i32; +pub const STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED: NTSTATUS = -1073740797i32; +pub const STATUS_USER_EXISTS: NTSTATUS = -1073741725i32; +pub const STATUS_USER_MAPPED_FILE: NTSTATUS = -1073741245i32; +pub const STATUS_USER_SESSION_DELETED: NTSTATUS = -1073741309i32; +pub const STATUS_VALIDATE_CONTINUE: NTSTATUS = -1073741199i32; +pub const STATUS_VALID_CATALOG_HASH: NTSTATUS = 301i32; +pub const STATUS_VALID_IMAGE_HASH: NTSTATUS = 300i32; +pub const STATUS_VALID_STRONG_CODE_HASH: NTSTATUS = 302i32; +pub const STATUS_VARIABLE_NOT_FOUND: NTSTATUS = -1073741568i32; +pub const STATUS_VDM_DISALLOWED: NTSTATUS = -1073740780i32; +pub const STATUS_VDM_HARD_ERROR: NTSTATUS = -1073741283i32; +pub const STATUS_VERIFIER_STOP: NTSTATUS = -1073740767i32; +pub const STATUS_VERIFY_REQUIRED: NTSTATUS = -2147483626i32; +pub const STATUS_VHDSET_BACKING_STORAGE_NOT_FOUND: NTSTATUS = -1067647220i32; +pub const STATUS_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE: NTSTATUS = -1069940685i32; +pub const STATUS_VHD_BITMAP_MISMATCH: NTSTATUS = -1069940724i32; +pub const STATUS_VHD_BLOCK_ALLOCATION_FAILURE: NTSTATUS = -1069940727i32; +pub const STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT: NTSTATUS = -1069940726i32; +pub const STATUS_VHD_CHANGE_TRACKING_DISABLED: NTSTATUS = -1069940694i32; +pub const STATUS_VHD_CHILD_PARENT_ID_MISMATCH: NTSTATUS = -1069940722i32; +pub const STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH: NTSTATUS = -1069940713i32; +pub const STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH: NTSTATUS = -1069940721i32; +pub const STATUS_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE: NTSTATUS = -1069940686i32; +pub const STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED: NTSTATUS = -1069940712i32; +pub const STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT: NTSTATUS = -1069940711i32; +pub const STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH: NTSTATUS = -1069940734i32; +pub const STATUS_VHD_DRIVE_FOOTER_CORRUPT: NTSTATUS = -1069940733i32; +pub const STATUS_VHD_DRIVE_FOOTER_MISSING: NTSTATUS = -1069940735i32; +pub const STATUS_VHD_FORMAT_UNKNOWN: NTSTATUS = -1069940732i32; +pub const STATUS_VHD_FORMAT_UNSUPPORTED_VERSION: NTSTATUS = -1069940731i32; +pub const STATUS_VHD_INVALID_BLOCK_SIZE: NTSTATUS = -1069940725i32; +pub const STATUS_VHD_INVALID_CHANGE_TRACKING_ID: NTSTATUS = -1069940695i32; +pub const STATUS_VHD_INVALID_FILE_SIZE: NTSTATUS = -1069940717i32; +pub const STATUS_VHD_INVALID_SIZE: NTSTATUS = -1069940718i32; +pub const STATUS_VHD_INVALID_STATE: NTSTATUS = -1069940708i32; +pub const STATUS_VHD_INVALID_TYPE: NTSTATUS = -1069940709i32; +pub const STATUS_VHD_METADATA_FULL: NTSTATUS = -1069940696i32; +pub const STATUS_VHD_METADATA_READ_FAILURE: NTSTATUS = -1069940720i32; +pub const STATUS_VHD_METADATA_WRITE_FAILURE: NTSTATUS = -1069940719i32; +pub const STATUS_VHD_MISSING_CHANGE_TRACKING_INFORMATION: NTSTATUS = -1069940688i32; +pub const STATUS_VHD_PARENT_VHD_ACCESS_DENIED: NTSTATUS = -1069940714i32; +pub const STATUS_VHD_PARENT_VHD_NOT_FOUND: NTSTATUS = -1069940723i32; +pub const STATUS_VHD_RESIZE_WOULD_TRUNCATE_DATA: NTSTATUS = -1069940687i32; +pub const STATUS_VHD_SHARED: NTSTATUS = -1067647222i32; +pub const STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH: NTSTATUS = -1069940730i32; +pub const STATUS_VHD_SPARSE_HEADER_CORRUPT: NTSTATUS = -1069940728i32; +pub const STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION: NTSTATUS = -1069940729i32; +pub const STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST: NTSTATUS = 1075511532i32; +pub const STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD: NTSTATUS = -1071972118i32; +pub const STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED: NTSTATUS = -2145713941i32; +pub const STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED: NTSTATUS = -1070137330i32; +pub const STATUS_VID_DUPLICATE_HANDLER: NTSTATUS = -1070137343i32; +pub const STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT: NTSTATUS = -1070137314i32; +pub const STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT: NTSTATUS = -1070137332i32; +pub const STATUS_VID_HANDLER_NOT_PRESENT: NTSTATUS = -1070137340i32; +pub const STATUS_VID_INSUFFICIENT_RESOURCES_HV_DEPOSIT: NTSTATUS = -1070137299i32; +pub const STATUS_VID_INSUFFICIENT_RESOURCES_PHYSICAL_BUFFER: NTSTATUS = -1070137300i32; +pub const STATUS_VID_INSUFFICIENT_RESOURCES_RESERVE: NTSTATUS = -1070137301i32; +pub const STATUS_VID_INSUFFICIENT_RESOURCES_WITHDRAW: NTSTATUS = -1070137297i32; +pub const STATUS_VID_INVALID_CHILD_GPA_PAGE_SET: NTSTATUS = -1070137310i32; +pub const STATUS_VID_INVALID_GPA_RANGE_HANDLE: NTSTATUS = -1070137323i32; +pub const STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE: NTSTATUS = -1070137326i32; +pub const STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE: NTSTATUS = -1070137324i32; +pub const STATUS_VID_INVALID_NUMA_NODE_INDEX: NTSTATUS = -1070137328i32; +pub const STATUS_VID_INVALID_NUMA_SETTINGS: NTSTATUS = -1070137329i32; +pub const STATUS_VID_INVALID_OBJECT_NAME: NTSTATUS = -1070137339i32; +pub const STATUS_VID_INVALID_PPM_HANDLE: NTSTATUS = -1070137320i32; +pub const STATUS_VID_INVALID_PROCESSOR_STATE: NTSTATUS = -1070137315i32; +pub const STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED: NTSTATUS = -1070137313i32; +pub const STATUS_VID_MBPS_ARE_LOCKED: NTSTATUS = -1070137319i32; +pub const STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE: NTSTATUS = -1070137307i32; +pub const STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT: NTSTATUS = -1070137306i32; +pub const STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET: NTSTATUS = -1070137312i32; +pub const STATUS_VID_MB_STILL_REFERENCED: NTSTATUS = -1070137331i32; +pub const STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED: NTSTATUS = -1070137321i32; +pub const STATUS_VID_MEMORY_TYPE_NOT_SUPPORTED: NTSTATUS = -1070137298i32; +pub const STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS: NTSTATUS = -1070137333i32; +pub const STATUS_VID_MESSAGE_QUEUE_CLOSED: NTSTATUS = -1070137318i32; +pub const STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG: NTSTATUS = -1070137337i32; +pub const STATUS_VID_MMIO_RANGE_DESTROYED: NTSTATUS = -1070137311i32; +pub const STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED: NTSTATUS = -1070137327i32; +pub const STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE: NTSTATUS = -1070137322i32; +pub const STATUS_VID_PAGE_RANGE_OVERFLOW: NTSTATUS = -1070137325i32; +pub const STATUS_VID_PARTITION_ALREADY_EXISTS: NTSTATUS = -1070137336i32; +pub const STATUS_VID_PARTITION_DOES_NOT_EXIST: NTSTATUS = -1070137335i32; +pub const STATUS_VID_PARTITION_NAME_NOT_FOUND: NTSTATUS = -1070137334i32; +pub const STATUS_VID_PARTITION_NAME_TOO_LONG: NTSTATUS = -1070137338i32; +pub const STATUS_VID_PROCESS_ALREADY_SET: NTSTATUS = -1070137296i32; +pub const STATUS_VID_QUEUE_FULL: NTSTATUS = -1070137341i32; +pub const STATUS_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED: NTSTATUS = -2143879167i32; +pub const STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED: NTSTATUS = -1070137309i32; +pub const STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL: NTSTATUS = -1070137308i32; +pub const STATUS_VID_SAVED_STATE_CORRUPT: NTSTATUS = -1070137305i32; +pub const STATUS_VID_SAVED_STATE_INCOMPATIBLE: NTSTATUS = -1070137303i32; +pub const STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM: NTSTATUS = -1070137304i32; +pub const STATUS_VID_STOP_PENDING: NTSTATUS = -1070137316i32; +pub const STATUS_VID_TOO_MANY_HANDLERS: NTSTATUS = -1070137342i32; +pub const STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED: NTSTATUS = -1070137317i32; +pub const STATUS_VID_VTL_ACCESS_DENIED: NTSTATUS = -1070137302i32; +pub const STATUS_VIRTDISK_DISK_ALREADY_OWNED: NTSTATUS = -1069940706i32; +pub const STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE: NTSTATUS = -1069940705i32; +pub const STATUS_VIRTDISK_NOT_VIRTUAL_DISK: NTSTATUS = -1069940715i32; +pub const STATUS_VIRTDISK_PROVIDER_NOT_FOUND: NTSTATUS = -1069940716i32; +pub const STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE: NTSTATUS = -1069940707i32; +pub const STATUS_VIRTUAL_CIRCUIT_CLOSED: NTSTATUS = -1073741610i32; +pub const STATUS_VIRTUAL_DISK_LIMITATION: NTSTATUS = -1069940710i32; +pub const STATUS_VIRUS_DELETED: NTSTATUS = -1073739513i32; +pub const STATUS_VIRUS_INFECTED: NTSTATUS = -1073739514i32; +pub const STATUS_VOLMGR_ALL_DISKS_FAILED: NTSTATUS = -1070071767i32; +pub const STATUS_VOLMGR_BAD_BOOT_DISK: NTSTATUS = -1070071729i32; +pub const STATUS_VOLMGR_DATABASE_FULL: NTSTATUS = -1070071807i32; +pub const STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE: NTSTATUS = -1070071730i32; +pub const STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED: NTSTATUS = -1070071806i32; +pub const STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC: NTSTATUS = -1070071805i32; +pub const STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME: NTSTATUS = -1070071803i32; +pub const STATUS_VOLMGR_DISK_DUPLICATE: NTSTATUS = -1070071802i32; +pub const STATUS_VOLMGR_DISK_DYNAMIC: NTSTATUS = -1070071801i32; +pub const STATUS_VOLMGR_DISK_ID_INVALID: NTSTATUS = -1070071800i32; +pub const STATUS_VOLMGR_DISK_INVALID: NTSTATUS = -1070071799i32; +pub const STATUS_VOLMGR_DISK_LAST_VOTER: NTSTATUS = -1070071798i32; +pub const STATUS_VOLMGR_DISK_LAYOUT_INVALID: NTSTATUS = -1070071797i32; +pub const STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS: NTSTATUS = -1070071796i32; +pub const STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED: NTSTATUS = -1070071795i32; +pub const STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL: NTSTATUS = -1070071794i32; +pub const STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS: NTSTATUS = -1070071793i32; +pub const STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS: NTSTATUS = -1070071792i32; +pub const STATUS_VOLMGR_DISK_MISSING: NTSTATUS = -1070071791i32; +pub const STATUS_VOLMGR_DISK_NOT_EMPTY: NTSTATUS = -1070071790i32; +pub const STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE: NTSTATUS = -1070071789i32; +pub const STATUS_VOLMGR_DISK_REVECTORING_FAILED: NTSTATUS = -1070071788i32; +pub const STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID: NTSTATUS = -1070071787i32; +pub const STATUS_VOLMGR_DISK_SET_NOT_CONTAINED: NTSTATUS = -1070071786i32; +pub const STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS: NTSTATUS = -1070071785i32; +pub const STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES: NTSTATUS = -1070071784i32; +pub const STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED: NTSTATUS = -1070071783i32; +pub const STATUS_VOLMGR_EXTENT_ALREADY_USED: NTSTATUS = -1070071782i32; +pub const STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS: NTSTATUS = -1070071781i32; +pub const STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION: NTSTATUS = -1070071780i32; +pub const STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED: NTSTATUS = -1070071779i32; +pub const STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION: NTSTATUS = -1070071778i32; +pub const STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH: NTSTATUS = -1070071777i32; +pub const STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED: NTSTATUS = -1070071776i32; +pub const STATUS_VOLMGR_INCOMPLETE_DISK_MIGRATION: NTSTATUS = -2143813630i32; +pub const STATUS_VOLMGR_INCOMPLETE_REGENERATION: NTSTATUS = -2143813631i32; +pub const STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID: NTSTATUS = -1070071775i32; +pub const STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS: NTSTATUS = -1070071774i32; +pub const STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE: NTSTATUS = -1070071772i32; +pub const STATUS_VOLMGR_MEMBER_INDEX_INVALID: NTSTATUS = -1070071771i32; +pub const STATUS_VOLMGR_MEMBER_IN_SYNC: NTSTATUS = -1070071773i32; +pub const STATUS_VOLMGR_MEMBER_MISSING: NTSTATUS = -1070071770i32; +pub const STATUS_VOLMGR_MEMBER_NOT_DETACHED: NTSTATUS = -1070071769i32; +pub const STATUS_VOLMGR_MEMBER_REGENERATING: NTSTATUS = -1070071768i32; +pub const STATUS_VOLMGR_MIRROR_NOT_SUPPORTED: NTSTATUS = -1070071717i32; +pub const STATUS_VOLMGR_NOTIFICATION_RESET: NTSTATUS = -1070071764i32; +pub const STATUS_VOLMGR_NOT_PRIMARY_PACK: NTSTATUS = -1070071726i32; +pub const STATUS_VOLMGR_NO_REGISTERED_USERS: NTSTATUS = -1070071766i32; +pub const STATUS_VOLMGR_NO_SUCH_USER: NTSTATUS = -1070071765i32; +pub const STATUS_VOLMGR_NO_VALID_LOG_COPIES: NTSTATUS = -1070071720i32; +pub const STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID: NTSTATUS = -1070071718i32; +pub const STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID: NTSTATUS = -1070071723i32; +pub const STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID: NTSTATUS = -1070071724i32; +pub const STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID: NTSTATUS = -1070071731i32; +pub const STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID: NTSTATUS = -1070071763i32; +pub const STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID: NTSTATUS = -1070071762i32; +pub const STATUS_VOLMGR_PACK_CONFIG_OFFLINE: NTSTATUS = -1070071728i32; +pub const STATUS_VOLMGR_PACK_CONFIG_ONLINE: NTSTATUS = -1070071727i32; +pub const STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED: NTSTATUS = -1070071804i32; +pub const STATUS_VOLMGR_PACK_DUPLICATE: NTSTATUS = -1070071761i32; +pub const STATUS_VOLMGR_PACK_HAS_QUORUM: NTSTATUS = -1070071756i32; +pub const STATUS_VOLMGR_PACK_ID_INVALID: NTSTATUS = -1070071760i32; +pub const STATUS_VOLMGR_PACK_INVALID: NTSTATUS = -1070071759i32; +pub const STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED: NTSTATUS = -1070071725i32; +pub const STATUS_VOLMGR_PACK_NAME_INVALID: NTSTATUS = -1070071758i32; +pub const STATUS_VOLMGR_PACK_OFFLINE: NTSTATUS = -1070071757i32; +pub const STATUS_VOLMGR_PACK_WITHOUT_QUORUM: NTSTATUS = -1070071755i32; +pub const STATUS_VOLMGR_PARTITION_STYLE_INVALID: NTSTATUS = -1070071754i32; +pub const STATUS_VOLMGR_PARTITION_UPDATE_FAILED: NTSTATUS = -1070071753i32; +pub const STATUS_VOLMGR_PLEX_INDEX_DUPLICATE: NTSTATUS = -1070071751i32; +pub const STATUS_VOLMGR_PLEX_INDEX_INVALID: NTSTATUS = -1070071750i32; +pub const STATUS_VOLMGR_PLEX_IN_SYNC: NTSTATUS = -1070071752i32; +pub const STATUS_VOLMGR_PLEX_LAST_ACTIVE: NTSTATUS = -1070071749i32; +pub const STATUS_VOLMGR_PLEX_MISSING: NTSTATUS = -1070071748i32; +pub const STATUS_VOLMGR_PLEX_NOT_RAID5: NTSTATUS = -1070071745i32; +pub const STATUS_VOLMGR_PLEX_NOT_SIMPLE: NTSTATUS = -1070071744i32; +pub const STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED: NTSTATUS = -1070071721i32; +pub const STATUS_VOLMGR_PLEX_REGENERATING: NTSTATUS = -1070071747i32; +pub const STATUS_VOLMGR_PLEX_TYPE_INVALID: NTSTATUS = -1070071746i32; +pub const STATUS_VOLMGR_PRIMARY_PACK_PRESENT: NTSTATUS = -1070071719i32; +pub const STATUS_VOLMGR_RAID5_NOT_SUPPORTED: NTSTATUS = -1070071716i32; +pub const STATUS_VOLMGR_STRUCTURE_SIZE_INVALID: NTSTATUS = -1070071743i32; +pub const STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS: NTSTATUS = -1070071742i32; +pub const STATUS_VOLMGR_TRANSACTION_IN_PROGRESS: NTSTATUS = -1070071741i32; +pub const STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE: NTSTATUS = -1070071740i32; +pub const STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK: NTSTATUS = -1070071739i32; +pub const STATUS_VOLMGR_VOLUME_ID_INVALID: NTSTATUS = -1070071738i32; +pub const STATUS_VOLMGR_VOLUME_LENGTH_INVALID: NTSTATUS = -1070071737i32; +pub const STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE: NTSTATUS = -1070071736i32; +pub const STATUS_VOLMGR_VOLUME_MIRRORED: NTSTATUS = -1070071722i32; +pub const STATUS_VOLMGR_VOLUME_NOT_MIRRORED: NTSTATUS = -1070071735i32; +pub const STATUS_VOLMGR_VOLUME_NOT_RETAINED: NTSTATUS = -1070071734i32; +pub const STATUS_VOLMGR_VOLUME_OFFLINE: NTSTATUS = -1070071733i32; +pub const STATUS_VOLMGR_VOLUME_RETAINED: NTSTATUS = -1070071732i32; +pub const STATUS_VOLSNAP_ACTIVATION_TIMEOUT: NTSTATUS = -1068498940i32; +pub const STATUS_VOLSNAP_BOOTFILE_NOT_VALID: NTSTATUS = -1068498941i32; +pub const STATUS_VOLSNAP_HIBERNATE_READY: NTSTATUS = 293i32; +pub const STATUS_VOLSNAP_NO_BYPASSIO_WITH_SNAPSHOT: NTSTATUS = -1068498939i32; +pub const STATUS_VOLSNAP_PREPARE_HIBERNATE: NTSTATUS = -1073740793i32; +pub const STATUS_VOLUME_DIRTY: NTSTATUS = -1073739770i32; +pub const STATUS_VOLUME_DISMOUNTED: NTSTATUS = -1073741202i32; +pub const STATUS_VOLUME_MOUNTED: NTSTATUS = 265i32; +pub const STATUS_VOLUME_NOT_CLUSTER_ALIGNED: NTSTATUS = -1073740636i32; +pub const STATUS_VOLUME_NOT_SUPPORTED: NTSTATUS = -1073740602i32; +pub const STATUS_VOLUME_NOT_UPGRADED: NTSTATUS = -1073741156i32; +pub const STATUS_VOLUME_WRITE_ACCESS_DENIED: NTSTATUS = -1073740589i32; +pub const STATUS_VRF_VOLATILE_CFG_AND_IO_ENABLED: NTSTATUS = -1073738744i32; +pub const STATUS_VRF_VOLATILE_NMI_REGISTERED: NTSTATUS = -1073738738i32; +pub const STATUS_VRF_VOLATILE_NOT_RUNNABLE_SYSTEM: NTSTATUS = -1073738741i32; +pub const STATUS_VRF_VOLATILE_NOT_STOPPABLE: NTSTATUS = -1073738743i32; +pub const STATUS_VRF_VOLATILE_NOT_SUPPORTED_RULECLASS: NTSTATUS = -1073738740i32; +pub const STATUS_VRF_VOLATILE_PROTECTED_DRIVER: NTSTATUS = -1073738739i32; +pub const STATUS_VRF_VOLATILE_SAFE_MODE: NTSTATUS = -1073738742i32; +pub const STATUS_VRF_VOLATILE_SETTINGS_CONFLICT: NTSTATUS = -1073738737i32; +pub const STATUS_VSM_DMA_PROTECTION_NOT_IN_USE: NTSTATUS = -1069219839i32; +pub const STATUS_VSM_NOT_INITIALIZED: NTSTATUS = -1069219840i32; +pub const STATUS_WAIT_0: NTSTATUS = 0i32; +pub const STATUS_WAIT_1: NTSTATUS = 1i32; +pub const STATUS_WAIT_2: NTSTATUS = 2i32; +pub const STATUS_WAIT_3: NTSTATUS = 3i32; +pub const STATUS_WAIT_63: NTSTATUS = 63i32; +pub const STATUS_WAIT_FOR_OPLOCK: NTSTATUS = 871i32; +pub const STATUS_WAKE_SYSTEM: NTSTATUS = 1073742484i32; +pub const STATUS_WAKE_SYSTEM_DEBUGGER: NTSTATUS = -2147483641i32; +pub const STATUS_WAS_LOCKED: NTSTATUS = 1073741849i32; +pub const STATUS_WAS_UNLOCKED: NTSTATUS = 1073741847i32; +pub const STATUS_WEAK_WHFBKEY_BLOCKED: NTSTATUS = -1073741389i32; +pub const STATUS_WIM_NOT_BOOTABLE: NTSTATUS = -1073740665i32; +pub const STATUS_WMI_ALREADY_DISABLED: NTSTATUS = -1073741054i32; +pub const STATUS_WMI_ALREADY_ENABLED: NTSTATUS = -1073741053i32; +pub const STATUS_WMI_GUID_DISCONNECTED: NTSTATUS = -1073741055i32; +pub const STATUS_WMI_GUID_NOT_FOUND: NTSTATUS = -1073741163i32; +pub const STATUS_WMI_INSTANCE_NOT_FOUND: NTSTATUS = -1073741162i32; +pub const STATUS_WMI_ITEMID_NOT_FOUND: NTSTATUS = -1073741161i32; +pub const STATUS_WMI_NOT_SUPPORTED: NTSTATUS = -1073741091i32; +pub const STATUS_WMI_READ_ONLY: NTSTATUS = -1073741114i32; +pub const STATUS_WMI_SET_FAILURE: NTSTATUS = -1073741113i32; +pub const STATUS_WMI_TRY_AGAIN: NTSTATUS = -1073741160i32; +pub const STATUS_WOF_FILE_RESOURCE_TABLE_CORRUPT: NTSTATUS = -1073700185i32; +pub const STATUS_WOF_WIM_HEADER_CORRUPT: NTSTATUS = -1073700187i32; +pub const STATUS_WOF_WIM_RESOURCE_TABLE_CORRUPT: NTSTATUS = -1073700186i32; +pub const STATUS_WORKING_SET_LIMIT_RANGE: NTSTATUS = 1073741826i32; +pub const STATUS_WORKING_SET_QUOTA: NTSTATUS = -1073741663i32; +pub const STATUS_WOW_ASSERTION: NTSTATUS = -1073702760i32; +pub const STATUS_WRONG_COMPARTMENT: NTSTATUS = -1073700731i32; +pub const STATUS_WRONG_CREDENTIAL_HANDLE: NTSTATUS = -1073741070i32; +pub const STATUS_WRONG_EFS: NTSTATUS = -1073741169i32; +pub const STATUS_WRONG_PASSWORD_CORE: NTSTATUS = -1073741495i32; +pub const STATUS_WRONG_VOLUME: NTSTATUS = -1073741806i32; +pub const STATUS_WX86_BREAKPOINT: NTSTATUS = 1073741855i32; +pub const STATUS_WX86_CONTINUE: NTSTATUS = 1073741853i32; +pub const STATUS_WX86_CREATEWX86TIB: NTSTATUS = 1073741864i32; +pub const STATUS_WX86_EXCEPTION_CHAIN: NTSTATUS = 1073741858i32; +pub const STATUS_WX86_EXCEPTION_CONTINUE: NTSTATUS = 1073741856i32; +pub const STATUS_WX86_EXCEPTION_LASTCHANCE: NTSTATUS = 1073741857i32; +pub const STATUS_WX86_FLOAT_STACK_CHECK: NTSTATUS = -1073741200i32; +pub const STATUS_WX86_INTERNAL_ERROR: NTSTATUS = -1073741201i32; +pub const STATUS_WX86_SINGLE_STEP: NTSTATUS = 1073741854i32; +pub const STATUS_WX86_UNSIMULATE: NTSTATUS = 1073741852i32; +pub const STATUS_XMLDSIG_ERROR: NTSTATUS = -1073700732i32; +pub const STATUS_XML_ENCODING_MISMATCH: NTSTATUS = -1072365535i32; +pub const STATUS_XML_PARSE_ERROR: NTSTATUS = -1073700733i32; +pub const STG_E_ABNORMALAPIEXIT: ::windows_sys::core::HRESULT = -2147286790i32; +pub const STG_E_ACCESSDENIED: ::windows_sys::core::HRESULT = -2147287035i32; +pub const STG_E_BADBASEADDRESS: ::windows_sys::core::HRESULT = -2147286768i32; +pub const STG_E_CANTSAVE: ::windows_sys::core::HRESULT = -2147286781i32; +pub const STG_E_CSS_AUTHENTICATION_FAILURE: ::windows_sys::core::HRESULT = -2147286266i32; +pub const STG_E_CSS_KEY_NOT_ESTABLISHED: ::windows_sys::core::HRESULT = -2147286264i32; +pub const STG_E_CSS_KEY_NOT_PRESENT: ::windows_sys::core::HRESULT = -2147286265i32; +pub const STG_E_CSS_REGION_MISMATCH: ::windows_sys::core::HRESULT = -2147286262i32; +pub const STG_E_CSS_SCRAMBLED_SECTOR: ::windows_sys::core::HRESULT = -2147286263i32; +pub const STG_E_DEVICE_UNRESPONSIVE: ::windows_sys::core::HRESULT = -2147286518i32; +pub const STG_E_DISKISWRITEPROTECTED: ::windows_sys::core::HRESULT = -2147287021i32; +pub const STG_E_DOCFILECORRUPT: ::windows_sys::core::HRESULT = -2147286775i32; +pub const STG_E_DOCFILETOOLARGE: ::windows_sys::core::HRESULT = -2147286767i32; +pub const STG_E_EXTANTMARSHALLINGS: ::windows_sys::core::HRESULT = -2147286776i32; +pub const STG_E_FILEALREADYEXISTS: ::windows_sys::core::HRESULT = -2147286960i32; +pub const STG_E_FILENOTFOUND: ::windows_sys::core::HRESULT = -2147287038i32; +pub const STG_E_FIRMWARE_IMAGE_INVALID: ::windows_sys::core::HRESULT = -2147286519i32; +pub const STG_E_FIRMWARE_SLOT_INVALID: ::windows_sys::core::HRESULT = -2147286520i32; +pub const STG_E_INCOMPLETE: ::windows_sys::core::HRESULT = -2147286527i32; +pub const STG_E_INSUFFICIENTMEMORY: ::windows_sys::core::HRESULT = -2147287032i32; +pub const STG_E_INUSE: ::windows_sys::core::HRESULT = -2147286784i32; +pub const STG_E_INVALIDFLAG: ::windows_sys::core::HRESULT = -2147286785i32; +pub const STG_E_INVALIDFUNCTION: ::windows_sys::core::HRESULT = -2147287039i32; +pub const STG_E_INVALIDHANDLE: ::windows_sys::core::HRESULT = -2147287034i32; +pub const STG_E_INVALIDHEADER: ::windows_sys::core::HRESULT = -2147286789i32; +pub const STG_E_INVALIDNAME: ::windows_sys::core::HRESULT = -2147286788i32; +pub const STG_E_INVALIDPARAMETER: ::windows_sys::core::HRESULT = -2147286953i32; +pub const STG_E_INVALIDPOINTER: ::windows_sys::core::HRESULT = -2147287031i32; +pub const STG_E_LOCKVIOLATION: ::windows_sys::core::HRESULT = -2147287007i32; +pub const STG_E_MEDIUMFULL: ::windows_sys::core::HRESULT = -2147286928i32; +pub const STG_E_NOMOREFILES: ::windows_sys::core::HRESULT = -2147287022i32; +pub const STG_E_NOTCURRENT: ::windows_sys::core::HRESULT = -2147286783i32; +pub const STG_E_NOTFILEBASEDSTORAGE: ::windows_sys::core::HRESULT = -2147286777i32; +pub const STG_E_NOTSIMPLEFORMAT: ::windows_sys::core::HRESULT = -2147286766i32; +pub const STG_E_OLDDLL: ::windows_sys::core::HRESULT = -2147286779i32; +pub const STG_E_OLDFORMAT: ::windows_sys::core::HRESULT = -2147286780i32; +pub const STG_E_PATHNOTFOUND: ::windows_sys::core::HRESULT = -2147287037i32; +pub const STG_E_PROPSETMISMATCHED: ::windows_sys::core::HRESULT = -2147286800i32; +pub const STG_E_READFAULT: ::windows_sys::core::HRESULT = -2147287010i32; +pub const STG_E_RESETS_EXHAUSTED: ::windows_sys::core::HRESULT = -2147286261i32; +pub const STG_E_REVERTED: ::windows_sys::core::HRESULT = -2147286782i32; +pub const STG_E_SEEKERROR: ::windows_sys::core::HRESULT = -2147287015i32; +pub const STG_E_SHAREREQUIRED: ::windows_sys::core::HRESULT = -2147286778i32; +pub const STG_E_SHAREVIOLATION: ::windows_sys::core::HRESULT = -2147287008i32; +pub const STG_E_STATUS_COPY_PROTECTION_FAILURE: ::windows_sys::core::HRESULT = -2147286267i32; +pub const STG_E_TERMINATED: ::windows_sys::core::HRESULT = -2147286526i32; +pub const STG_E_TOOMANYOPENFILES: ::windows_sys::core::HRESULT = -2147287036i32; +pub const STG_E_UNIMPLEMENTEDFUNCTION: ::windows_sys::core::HRESULT = -2147286786i32; +pub const STG_E_UNKNOWN: ::windows_sys::core::HRESULT = -2147286787i32; +pub const STG_E_WRITEFAULT: ::windows_sys::core::HRESULT = -2147287011i32; +pub const STG_S_BLOCK: ::windows_sys::core::HRESULT = 197121i32; +pub const STG_S_CANNOTCONSOLIDATE: ::windows_sys::core::HRESULT = 197126i32; +pub const STG_S_CONSOLIDATIONFAILED: ::windows_sys::core::HRESULT = 197125i32; +pub const STG_S_CONVERTED: ::windows_sys::core::HRESULT = 197120i32; +pub const STG_S_MONITORING: ::windows_sys::core::HRESULT = 197123i32; +pub const STG_S_MULTIPLEOPENS: ::windows_sys::core::HRESULT = 197124i32; +pub const STG_S_POWER_CYCLE_REQUIRED: ::windows_sys::core::HRESULT = 197127i32; +pub const STG_S_RETRYNOW: ::windows_sys::core::HRESULT = 197122i32; +pub const STILL_ACTIVE: NTSTATUS = 259i32; +pub const STORE_ERROR_LICENSE_REVOKED: i32 = 15864i32; +pub const STORE_ERROR_PENDING_COM_TRANSACTION: i32 = 15863i32; +pub const STORE_ERROR_UNLICENSED: i32 = 15861i32; +pub const STORE_ERROR_UNLICENSED_USER: i32 = 15862i32; +pub const STRICT: u32 = 1u32; +pub const SUCCESS: u32 = 0u32; +pub const S_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG: ::windows_sys::core::HRESULT = 2556505i32; +pub const S_FALSE: ::windows_sys::core::HRESULT = 1i32; +pub const S_OK: ::windows_sys::core::HRESULT = 0i32; +pub const S_STORE_LAUNCHED_FOR_REMEDIATION: ::windows_sys::core::HRESULT = 2556504i32; +pub const TBSIMP_E_BUFFER_TOO_SMALL: ::windows_sys::core::HRESULT = -2144796160i32; +pub const TBSIMP_E_CLEANUP_FAILED: ::windows_sys::core::HRESULT = -2144796159i32; +pub const TBSIMP_E_COMMAND_CANCELED: ::windows_sys::core::HRESULT = -2144796149i32; +pub const TBSIMP_E_COMMAND_FAILED: ::windows_sys::core::HRESULT = -2144796143i32; +pub const TBSIMP_E_DUPLICATE_VHANDLE: ::windows_sys::core::HRESULT = -2144796154i32; +pub const TBSIMP_E_HASH_BAD_KEY: ::windows_sys::core::HRESULT = -2144796155i32; +pub const TBSIMP_E_HASH_TABLE_FULL: ::windows_sys::core::HRESULT = -2144796138i32; +pub const TBSIMP_E_INVALID_CONTEXT_HANDLE: ::windows_sys::core::HRESULT = -2144796158i32; +pub const TBSIMP_E_INVALID_CONTEXT_PARAM: ::windows_sys::core::HRESULT = -2144796157i32; +pub const TBSIMP_E_INVALID_OUTPUT_POINTER: ::windows_sys::core::HRESULT = -2144796153i32; +pub const TBSIMP_E_INVALID_PARAMETER: ::windows_sys::core::HRESULT = -2144796152i32; +pub const TBSIMP_E_INVALID_RESOURCE: ::windows_sys::core::HRESULT = -2144796140i32; +pub const TBSIMP_E_LIST_NOT_FOUND: ::windows_sys::core::HRESULT = -2144796146i32; +pub const TBSIMP_E_LIST_NO_MORE_ITEMS: ::windows_sys::core::HRESULT = -2144796147i32; +pub const TBSIMP_E_NOTHING_TO_UNLOAD: ::windows_sys::core::HRESULT = -2144796139i32; +pub const TBSIMP_E_NOT_ENOUGH_SPACE: ::windows_sys::core::HRESULT = -2144796145i32; +pub const TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS: ::windows_sys::core::HRESULT = -2144796144i32; +pub const TBSIMP_E_NO_EVENT_LOG: ::windows_sys::core::HRESULT = -2144796133i32; +pub const TBSIMP_E_OUT_OF_MEMORY: ::windows_sys::core::HRESULT = -2144796148i32; +pub const TBSIMP_E_PPI_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144796135i32; +pub const TBSIMP_E_RESOURCE_EXPIRED: ::windows_sys::core::HRESULT = -2144796141i32; +pub const TBSIMP_E_RPC_INIT_FAILED: ::windows_sys::core::HRESULT = -2144796151i32; +pub const TBSIMP_E_SCHEDULER_NOT_RUNNING: ::windows_sys::core::HRESULT = -2144796150i32; +pub const TBSIMP_E_TOO_MANY_RESOURCES: ::windows_sys::core::HRESULT = -2144796136i32; +pub const TBSIMP_E_TOO_MANY_TBS_CONTEXTS: ::windows_sys::core::HRESULT = -2144796137i32; +pub const TBSIMP_E_TPM_ERROR: ::windows_sys::core::HRESULT = -2144796156i32; +pub const TBSIMP_E_TPM_INCOMPATIBLE: ::windows_sys::core::HRESULT = -2144796134i32; +pub const TBSIMP_E_UNKNOWN_ORDINAL: ::windows_sys::core::HRESULT = -2144796142i32; +pub const TBS_E_ACCESS_DENIED: ::windows_sys::core::HRESULT = -2144845806i32; +pub const TBS_E_BAD_PARAMETER: ::windows_sys::core::HRESULT = -2144845822i32; +pub const TBS_E_BUFFER_TOO_LARGE: ::windows_sys::core::HRESULT = -2144845810i32; +pub const TBS_E_COMMAND_CANCELED: ::windows_sys::core::HRESULT = -2144845811i32; +pub const TBS_E_INSUFFICIENT_BUFFER: ::windows_sys::core::HRESULT = -2144845819i32; +pub const TBS_E_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2144845823i32; +pub const TBS_E_INVALID_CONTEXT: ::windows_sys::core::HRESULT = -2144845820i32; +pub const TBS_E_INVALID_CONTEXT_PARAM: ::windows_sys::core::HRESULT = -2144845817i32; +pub const TBS_E_INVALID_OUTPUT_POINTER: ::windows_sys::core::HRESULT = -2144845821i32; +pub const TBS_E_IOERROR: ::windows_sys::core::HRESULT = -2144845818i32; +pub const TBS_E_NO_EVENT_LOG: ::windows_sys::core::HRESULT = -2144845807i32; +pub const TBS_E_OWNERAUTH_NOT_FOUND: ::windows_sys::core::HRESULT = -2144845803i32; +pub const TBS_E_PPI_FUNCTION_UNSUPPORTED: ::windows_sys::core::HRESULT = -2144845804i32; +pub const TBS_E_PPI_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144845812i32; +pub const TBS_E_PROVISIONING_INCOMPLETE: ::windows_sys::core::HRESULT = -2144845802i32; +pub const TBS_E_PROVISIONING_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2144845805i32; +pub const TBS_E_SERVICE_DISABLED: ::windows_sys::core::HRESULT = -2144845808i32; +pub const TBS_E_SERVICE_NOT_RUNNING: ::windows_sys::core::HRESULT = -2144845816i32; +pub const TBS_E_SERVICE_START_PENDING: ::windows_sys::core::HRESULT = -2144845813i32; +pub const TBS_E_TOO_MANY_RESOURCES: ::windows_sys::core::HRESULT = -2144845814i32; +pub const TBS_E_TOO_MANY_TBS_CONTEXTS: ::windows_sys::core::HRESULT = -2144845815i32; +pub const TBS_E_TPM_NOT_FOUND: ::windows_sys::core::HRESULT = -2144845809i32; +pub const TPC_E_INITIALIZE_FAIL: ::windows_sys::core::HRESULT = -2147220957i32; +pub const TPC_E_INVALID_CONFIGURATION: ::windows_sys::core::HRESULT = -2147220935i32; +pub const TPC_E_INVALID_DATA_FROM_RECOGNIZER: ::windows_sys::core::HRESULT = -2147220934i32; +pub const TPC_E_INVALID_INPUT_RECT: ::windows_sys::core::HRESULT = -2147220967i32; +pub const TPC_E_INVALID_PACKET_DESCRIPTION: ::windows_sys::core::HRESULT = -2147220941i32; +pub const TPC_E_INVALID_PROPERTY: ::windows_sys::core::HRESULT = -2147220927i32; +pub const TPC_E_INVALID_RIGHTS: ::windows_sys::core::HRESULT = -2147220938i32; +pub const TPC_E_INVALID_STROKE: ::windows_sys::core::HRESULT = -2147220958i32; +pub const TPC_E_NOT_RELEVANT: ::windows_sys::core::HRESULT = -2147220942i32; +pub const TPC_E_NO_DEFAULT_TABLET: ::windows_sys::core::HRESULT = -2147220974i32; +pub const TPC_E_OUT_OF_ORDER_CALL: ::windows_sys::core::HRESULT = -2147220937i32; +pub const TPC_E_QUEUE_FULL: ::windows_sys::core::HRESULT = -2147220936i32; +pub const TPC_E_RECOGNIZER_NOT_REGISTERED: ::windows_sys::core::HRESULT = -2147220939i32; +pub const TPC_E_UNKNOWN_PROPERTY: ::windows_sys::core::HRESULT = -2147220965i32; +pub const TPC_S_INTERRUPTED: ::windows_sys::core::HRESULT = 262739i32; +pub const TPC_S_NO_DATA_TO_PROCESS: ::windows_sys::core::HRESULT = 262740i32; +pub const TPC_S_TRUNCATED: ::windows_sys::core::HRESULT = 262738i32; +pub const TPMAPI_E_ACCESS_DENIED: ::windows_sys::core::HRESULT = -2144796408i32; +pub const TPMAPI_E_AUTHORIZATION_FAILED: ::windows_sys::core::HRESULT = -2144796407i32; +pub const TPMAPI_E_AUTHORIZATION_REVOKED: ::windows_sys::core::HRESULT = -2144796378i32; +pub const TPMAPI_E_AUTHORIZING_KEY_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144796376i32; +pub const TPMAPI_E_BUFFER_TOO_SMALL: ::windows_sys::core::HRESULT = -2144796410i32; +pub const TPMAPI_E_EMPTY_TCG_LOG: ::windows_sys::core::HRESULT = -2144796390i32; +pub const TPMAPI_E_ENCRYPTION_FAILED: ::windows_sys::core::HRESULT = -2144796400i32; +pub const TPMAPI_E_ENDORSEMENT_AUTH_NOT_NULL: ::windows_sys::core::HRESULT = -2144796379i32; +pub const TPMAPI_E_FIPS_RNG_CHECK_FAILED: ::windows_sys::core::HRESULT = -2144796391i32; +pub const TPMAPI_E_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2144796409i32; +pub const TPMAPI_E_INVALID_AUTHORIZATION_SIGNATURE: ::windows_sys::core::HRESULT = -2144796375i32; +pub const TPMAPI_E_INVALID_CONTEXT_HANDLE: ::windows_sys::core::HRESULT = -2144796406i32; +pub const TPMAPI_E_INVALID_CONTEXT_PARAMS: ::windows_sys::core::HRESULT = -2144796395i32; +pub const TPMAPI_E_INVALID_DELEGATE_BLOB: ::windows_sys::core::HRESULT = -2144796396i32; +pub const TPMAPI_E_INVALID_ENCODING: ::windows_sys::core::HRESULT = -2144796402i32; +pub const TPMAPI_E_INVALID_KEY_BLOB: ::windows_sys::core::HRESULT = -2144796394i32; +pub const TPMAPI_E_INVALID_KEY_PARAMS: ::windows_sys::core::HRESULT = -2144796399i32; +pub const TPMAPI_E_INVALID_KEY_SIZE: ::windows_sys::core::HRESULT = -2144796401i32; +pub const TPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB: ::windows_sys::core::HRESULT = -2144796398i32; +pub const TPMAPI_E_INVALID_OUTPUT_POINTER: ::windows_sys::core::HRESULT = -2144796413i32; +pub const TPMAPI_E_INVALID_OWNER_AUTH: ::windows_sys::core::HRESULT = -2144796392i32; +pub const TPMAPI_E_INVALID_PARAMETER: ::windows_sys::core::HRESULT = -2144796412i32; +pub const TPMAPI_E_INVALID_PCR_DATA: ::windows_sys::core::HRESULT = -2144796393i32; +pub const TPMAPI_E_INVALID_PCR_INDEX: ::windows_sys::core::HRESULT = -2144796397i32; +pub const TPMAPI_E_INVALID_POLICYAUTH_BLOB_TYPE: ::windows_sys::core::HRESULT = -2144796370i32; +pub const TPMAPI_E_INVALID_STATE: ::windows_sys::core::HRESULT = -2144796416i32; +pub const TPMAPI_E_INVALID_TCG_LOG_ENTRY: ::windows_sys::core::HRESULT = -2144796389i32; +pub const TPMAPI_E_INVALID_TPM_VERSION: ::windows_sys::core::HRESULT = -2144796371i32; +pub const TPMAPI_E_MALFORMED_AUTHORIZATION_KEY: ::windows_sys::core::HRESULT = -2144796377i32; +pub const TPMAPI_E_MALFORMED_AUTHORIZATION_OTHER: ::windows_sys::core::HRESULT = -2144796373i32; +pub const TPMAPI_E_MALFORMED_AUTHORIZATION_POLICY: ::windows_sys::core::HRESULT = -2144796374i32; +pub const TPMAPI_E_MESSAGE_TOO_LARGE: ::windows_sys::core::HRESULT = -2144796403i32; +pub const TPMAPI_E_NOT_ENOUGH_DATA: ::windows_sys::core::HRESULT = -2144796415i32; +pub const TPMAPI_E_NO_AUTHORIZATION_CHAIN_FOUND: ::windows_sys::core::HRESULT = -2144796382i32; +pub const TPMAPI_E_NV_BITS_NOT_DEFINED: ::windows_sys::core::HRESULT = -2144796385i32; +pub const TPMAPI_E_NV_BITS_NOT_READY: ::windows_sys::core::HRESULT = -2144796384i32; +pub const TPMAPI_E_OUT_OF_MEMORY: ::windows_sys::core::HRESULT = -2144796411i32; +pub const TPMAPI_E_OWNER_AUTH_NOT_NULL: ::windows_sys::core::HRESULT = -2144796380i32; +pub const TPMAPI_E_POLICY_DENIES_OPERATION: ::windows_sys::core::HRESULT = -2144796386i32; +pub const TPMAPI_E_SEALING_KEY_CHANGED: ::windows_sys::core::HRESULT = -2144796372i32; +pub const TPMAPI_E_SEALING_KEY_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2144796383i32; +pub const TPMAPI_E_SVN_COUNTER_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2144796381i32; +pub const TPMAPI_E_TBS_COMMUNICATION_ERROR: ::windows_sys::core::HRESULT = -2144796405i32; +pub const TPMAPI_E_TCG_INVALID_DIGEST_ENTRY: ::windows_sys::core::HRESULT = -2144796387i32; +pub const TPMAPI_E_TCG_SEPARATOR_ABSENT: ::windows_sys::core::HRESULT = -2144796388i32; +pub const TPMAPI_E_TOO_MUCH_DATA: ::windows_sys::core::HRESULT = -2144796414i32; +pub const TPMAPI_E_TPM_COMMAND_ERROR: ::windows_sys::core::HRESULT = -2144796404i32; +pub const TPM_20_E_ASYMMETRIC: ::windows_sys::core::HRESULT = -2144862079i32; +pub const TPM_20_E_ATTRIBUTES: ::windows_sys::core::HRESULT = -2144862078i32; +pub const TPM_20_E_AUTHSIZE: ::windows_sys::core::HRESULT = -2144861884i32; +pub const TPM_20_E_AUTH_CONTEXT: ::windows_sys::core::HRESULT = -2144861883i32; +pub const TPM_20_E_AUTH_FAIL: ::windows_sys::core::HRESULT = -2144862066i32; +pub const TPM_20_E_AUTH_MISSING: ::windows_sys::core::HRESULT = -2144861915i32; +pub const TPM_20_E_AUTH_TYPE: ::windows_sys::core::HRESULT = -2144861916i32; +pub const TPM_20_E_AUTH_UNAVAILABLE: ::windows_sys::core::HRESULT = -2144861905i32; +pub const TPM_20_E_BAD_AUTH: ::windows_sys::core::HRESULT = -2144862046i32; +pub const TPM_20_E_BAD_CONTEXT: ::windows_sys::core::HRESULT = -2144861872i32; +pub const TPM_20_E_BINDING: ::windows_sys::core::HRESULT = -2144862043i32; +pub const TPM_20_E_CANCELED: ::windows_sys::core::HRESULT = -2144859895i32; +pub const TPM_20_E_COMMAND_CODE: ::windows_sys::core::HRESULT = -2144861885i32; +pub const TPM_20_E_COMMAND_SIZE: ::windows_sys::core::HRESULT = -2144861886i32; +pub const TPM_20_E_CONTEXT_GAP: ::windows_sys::core::HRESULT = -2144859903i32; +pub const TPM_20_E_CPHASH: ::windows_sys::core::HRESULT = -2144861871i32; +pub const TPM_20_E_CURVE: ::windows_sys::core::HRESULT = -2144862042i32; +pub const TPM_20_E_DISABLED: ::windows_sys::core::HRESULT = -2144861920i32; +pub const TPM_20_E_ECC_CURVE: ::windows_sys::core::HRESULT = -2144861917i32; +pub const TPM_20_E_ECC_POINT: ::windows_sys::core::HRESULT = -2144862041i32; +pub const TPM_20_E_EXCLUSIVE: ::windows_sys::core::HRESULT = -2144861919i32; +pub const TPM_20_E_EXPIRED: ::windows_sys::core::HRESULT = -2144862045i32; +pub const TPM_20_E_FAILURE: ::windows_sys::core::HRESULT = -2144861951i32; +pub const TPM_20_E_HANDLE: ::windows_sys::core::HRESULT = -2144862069i32; +pub const TPM_20_E_HASH: ::windows_sys::core::HRESULT = -2144862077i32; +pub const TPM_20_E_HIERARCHY: ::windows_sys::core::HRESULT = -2144862075i32; +pub const TPM_20_E_HMAC: ::windows_sys::core::HRESULT = -2144861927i32; +pub const TPM_20_E_INITIALIZE: ::windows_sys::core::HRESULT = -2144861952i32; +pub const TPM_20_E_INSUFFICIENT: ::windows_sys::core::HRESULT = -2144862054i32; +pub const TPM_20_E_INTEGRITY: ::windows_sys::core::HRESULT = -2144862049i32; +pub const TPM_20_E_KDF: ::windows_sys::core::HRESULT = -2144862068i32; +pub const TPM_20_E_KEY: ::windows_sys::core::HRESULT = -2144862052i32; +pub const TPM_20_E_KEY_SIZE: ::windows_sys::core::HRESULT = -2144862073i32; +pub const TPM_20_E_LOCALITY: ::windows_sys::core::HRESULT = -2144859897i32; +pub const TPM_20_E_LOCKOUT: ::windows_sys::core::HRESULT = -2144859871i32; +pub const TPM_20_E_MEMORY: ::windows_sys::core::HRESULT = -2144859900i32; +pub const TPM_20_E_MGF: ::windows_sys::core::HRESULT = -2144862072i32; +pub const TPM_20_E_MODE: ::windows_sys::core::HRESULT = -2144862071i32; +pub const TPM_20_E_NEEDS_TEST: ::windows_sys::core::HRESULT = -2144861869i32; +pub const TPM_20_E_NONCE: ::windows_sys::core::HRESULT = -2144862065i32; +pub const TPM_20_E_NO_RESULT: ::windows_sys::core::HRESULT = -2144861868i32; +pub const TPM_20_E_NV_AUTHORIZATION: ::windows_sys::core::HRESULT = -2144861879i32; +pub const TPM_20_E_NV_DEFINED: ::windows_sys::core::HRESULT = -2144861876i32; +pub const TPM_20_E_NV_LOCKED: ::windows_sys::core::HRESULT = -2144861880i32; +pub const TPM_20_E_NV_RANGE: ::windows_sys::core::HRESULT = -2144861882i32; +pub const TPM_20_E_NV_RATE: ::windows_sys::core::HRESULT = -2144859872i32; +pub const TPM_20_E_NV_SIZE: ::windows_sys::core::HRESULT = -2144861881i32; +pub const TPM_20_E_NV_SPACE: ::windows_sys::core::HRESULT = -2144861877i32; +pub const TPM_20_E_NV_UNAVAILABLE: ::windows_sys::core::HRESULT = -2144859869i32; +pub const TPM_20_E_NV_UNINITIALIZED: ::windows_sys::core::HRESULT = -2144861878i32; +pub const TPM_20_E_OBJECT_HANDLES: ::windows_sys::core::HRESULT = -2144859898i32; +pub const TPM_20_E_OBJECT_MEMORY: ::windows_sys::core::HRESULT = -2144859902i32; +pub const TPM_20_E_PARENT: ::windows_sys::core::HRESULT = -2144861870i32; +pub const TPM_20_E_PCR: ::windows_sys::core::HRESULT = -2144861913i32; +pub const TPM_20_E_PCR_CHANGED: ::windows_sys::core::HRESULT = -2144861912i32; +pub const TPM_20_E_POLICY: ::windows_sys::core::HRESULT = -2144861914i32; +pub const TPM_20_E_POLICY_CC: ::windows_sys::core::HRESULT = -2144862044i32; +pub const TPM_20_E_POLICY_FAIL: ::windows_sys::core::HRESULT = -2144862051i32; +pub const TPM_20_E_PP: ::windows_sys::core::HRESULT = -2144862064i32; +pub const TPM_20_E_PRIVATE: ::windows_sys::core::HRESULT = -2144861941i32; +pub const TPM_20_E_RANGE: ::windows_sys::core::HRESULT = -2144862067i32; +pub const TPM_20_E_REBOOT: ::windows_sys::core::HRESULT = -2144861904i32; +pub const TPM_20_E_RESERVED_BITS: ::windows_sys::core::HRESULT = -2144862047i32; +pub const TPM_20_E_RETRY: ::windows_sys::core::HRESULT = -2144859870i32; +pub const TPM_20_E_SCHEME: ::windows_sys::core::HRESULT = -2144862062i32; +pub const TPM_20_E_SELECTOR: ::windows_sys::core::HRESULT = -2144862056i32; +pub const TPM_20_E_SENSITIVE: ::windows_sys::core::HRESULT = -2144861867i32; +pub const TPM_20_E_SEQUENCE: ::windows_sys::core::HRESULT = -2144861949i32; +pub const TPM_20_E_SESSION_HANDLES: ::windows_sys::core::HRESULT = -2144859899i32; +pub const TPM_20_E_SESSION_MEMORY: ::windows_sys::core::HRESULT = -2144859901i32; +pub const TPM_20_E_SIGNATURE: ::windows_sys::core::HRESULT = -2144862053i32; +pub const TPM_20_E_SIZE: ::windows_sys::core::HRESULT = -2144862059i32; +pub const TPM_20_E_SYMMETRIC: ::windows_sys::core::HRESULT = -2144862058i32; +pub const TPM_20_E_TAG: ::windows_sys::core::HRESULT = -2144862057i32; +pub const TPM_20_E_TESTING: ::windows_sys::core::HRESULT = -2144859894i32; +pub const TPM_20_E_TICKET: ::windows_sys::core::HRESULT = -2144862048i32; +pub const TPM_20_E_TOO_MANY_CONTEXTS: ::windows_sys::core::HRESULT = -2144861906i32; +pub const TPM_20_E_TYPE: ::windows_sys::core::HRESULT = -2144862070i32; +pub const TPM_20_E_UNBALANCED: ::windows_sys::core::HRESULT = -2144861903i32; +pub const TPM_20_E_UPGRADE: ::windows_sys::core::HRESULT = -2144861907i32; +pub const TPM_20_E_VALUE: ::windows_sys::core::HRESULT = -2144862076i32; +pub const TPM_20_E_YIELDED: ::windows_sys::core::HRESULT = -2144859896i32; +pub const TPM_E_AREA_LOCKED: ::windows_sys::core::HRESULT = -2144862148i32; +pub const TPM_E_ATTESTATION_CHALLENGE_NOT_SET: ::windows_sys::core::HRESULT = -2144795630i32; +pub const TPM_E_AUDITFAILURE: ::windows_sys::core::HRESULT = -2144862204i32; +pub const TPM_E_AUDITFAIL_SUCCESSFUL: ::windows_sys::core::HRESULT = -2144862159i32; +pub const TPM_E_AUDITFAIL_UNSUCCESSFUL: ::windows_sys::core::HRESULT = -2144862160i32; +pub const TPM_E_AUTH2FAIL: ::windows_sys::core::HRESULT = -2144862179i32; +pub const TPM_E_AUTHFAIL: ::windows_sys::core::HRESULT = -2144862207i32; +pub const TPM_E_AUTH_CONFLICT: ::windows_sys::core::HRESULT = -2144862149i32; +pub const TPM_E_BADCONTEXT: ::windows_sys::core::HRESULT = -2144862118i32; +pub const TPM_E_BADINDEX: ::windows_sys::core::HRESULT = -2144862206i32; +pub const TPM_E_BADTAG: ::windows_sys::core::HRESULT = -2144862178i32; +pub const TPM_E_BAD_ATTRIBUTES: ::windows_sys::core::HRESULT = -2144862142i32; +pub const TPM_E_BAD_COUNTER: ::windows_sys::core::HRESULT = -2144862139i32; +pub const TPM_E_BAD_DATASIZE: ::windows_sys::core::HRESULT = -2144862165i32; +pub const TPM_E_BAD_DELEGATE: ::windows_sys::core::HRESULT = -2144862119i32; +pub const TPM_E_BAD_HANDLE: ::windows_sys::core::HRESULT = -2144862120i32; +pub const TPM_E_BAD_KEY_PROPERTY: ::windows_sys::core::HRESULT = -2144862168i32; +pub const TPM_E_BAD_LOCALITY: ::windows_sys::core::HRESULT = -2144862147i32; +pub const TPM_E_BAD_MIGRATION: ::windows_sys::core::HRESULT = -2144862167i32; +pub const TPM_E_BAD_MODE: ::windows_sys::core::HRESULT = -2144862164i32; +pub const TPM_E_BAD_ORDINAL: ::windows_sys::core::HRESULT = -2144862198i32; +pub const TPM_E_BAD_PARAMETER: ::windows_sys::core::HRESULT = -2144862205i32; +pub const TPM_E_BAD_PARAM_SIZE: ::windows_sys::core::HRESULT = -2144862183i32; +pub const TPM_E_BAD_PRESENCE: ::windows_sys::core::HRESULT = -2144862163i32; +pub const TPM_E_BAD_SCHEME: ::windows_sys::core::HRESULT = -2144862166i32; +pub const TPM_E_BAD_SIGNATURE: ::windows_sys::core::HRESULT = -2144862110i32; +pub const TPM_E_BAD_TYPE: ::windows_sys::core::HRESULT = -2144862156i32; +pub const TPM_E_BAD_VERSION: ::windows_sys::core::HRESULT = -2144862162i32; +pub const TPM_E_BUFFER_LENGTH_MISMATCH: ::windows_sys::core::HRESULT = -2144795618i32; +pub const TPM_E_CLAIM_TYPE_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144795620i32; +pub const TPM_E_CLEAR_DISABLED: ::windows_sys::core::HRESULT = -2144862203i32; +pub const TPM_E_COMMAND_BLOCKED: ::windows_sys::core::HRESULT = -2144861184i32; +pub const TPM_E_CONTEXT_GAP: ::windows_sys::core::HRESULT = -2144862137i32; +pub const TPM_E_DAA_INPUT_DATA0: ::windows_sys::core::HRESULT = -2144862127i32; +pub const TPM_E_DAA_INPUT_DATA1: ::windows_sys::core::HRESULT = -2144862126i32; +pub const TPM_E_DAA_ISSUER_SETTINGS: ::windows_sys::core::HRESULT = -2144862125i32; +pub const TPM_E_DAA_ISSUER_VALIDITY: ::windows_sys::core::HRESULT = -2144862122i32; +pub const TPM_E_DAA_RESOURCES: ::windows_sys::core::HRESULT = -2144862128i32; +pub const TPM_E_DAA_STAGE: ::windows_sys::core::HRESULT = -2144862123i32; +pub const TPM_E_DAA_TPM_SETTINGS: ::windows_sys::core::HRESULT = -2144862124i32; +pub const TPM_E_DAA_WRONG_W: ::windows_sys::core::HRESULT = -2144862121i32; +pub const TPM_E_DEACTIVATED: ::windows_sys::core::HRESULT = -2144862202i32; +pub const TPM_E_DECRYPT_ERROR: ::windows_sys::core::HRESULT = -2144862175i32; +pub const TPM_E_DEFEND_LOCK_RUNNING: ::windows_sys::core::HRESULT = -2144860157i32; +pub const TPM_E_DELEGATE_ADMIN: ::windows_sys::core::HRESULT = -2144862131i32; +pub const TPM_E_DELEGATE_FAMILY: ::windows_sys::core::HRESULT = -2144862132i32; +pub const TPM_E_DELEGATE_LOCK: ::windows_sys::core::HRESULT = -2144862133i32; +pub const TPM_E_DISABLED: ::windows_sys::core::HRESULT = -2144862201i32; +pub const TPM_E_DISABLED_CMD: ::windows_sys::core::HRESULT = -2144862200i32; +pub const TPM_E_DOING_SELFTEST: ::windows_sys::core::HRESULT = -2144860158i32; +pub const TPM_E_DUPLICATE_VHANDLE: ::windows_sys::core::HRESULT = -2144861182i32; +pub const TPM_E_EMBEDDED_COMMAND_BLOCKED: ::windows_sys::core::HRESULT = -2144861181i32; +pub const TPM_E_EMBEDDED_COMMAND_UNSUPPORTED: ::windows_sys::core::HRESULT = -2144861180i32; +pub const TPM_E_ENCRYPT_ERROR: ::windows_sys::core::HRESULT = -2144862176i32; +pub const TPM_E_ERROR_MASK: ::windows_sys::core::HRESULT = -2144862208i32; +pub const TPM_E_FAIL: ::windows_sys::core::HRESULT = -2144862199i32; +pub const TPM_E_FAILEDSELFTEST: ::windows_sys::core::HRESULT = -2144862180i32; +pub const TPM_E_FAMILYCOUNT: ::windows_sys::core::HRESULT = -2144862144i32; +pub const TPM_E_INAPPROPRIATE_ENC: ::windows_sys::core::HRESULT = -2144862194i32; +pub const TPM_E_INAPPROPRIATE_SIG: ::windows_sys::core::HRESULT = -2144862169i32; +pub const TPM_E_INSTALL_DISABLED: ::windows_sys::core::HRESULT = -2144862197i32; +pub const TPM_E_INVALID_AUTHHANDLE: ::windows_sys::core::HRESULT = -2144862174i32; +pub const TPM_E_INVALID_FAMILY: ::windows_sys::core::HRESULT = -2144862153i32; +pub const TPM_E_INVALID_HANDLE: ::windows_sys::core::HRESULT = -2144861183i32; +pub const TPM_E_INVALID_KEYHANDLE: ::windows_sys::core::HRESULT = -2144862196i32; +pub const TPM_E_INVALID_KEYUSAGE: ::windows_sys::core::HRESULT = -2144862172i32; +pub const TPM_E_INVALID_OWNER_AUTH: ::windows_sys::core::HRESULT = -2144795135i32; +pub const TPM_E_INVALID_PCR_INFO: ::windows_sys::core::HRESULT = -2144862192i32; +pub const TPM_E_INVALID_POSTINIT: ::windows_sys::core::HRESULT = -2144862170i32; +pub const TPM_E_INVALID_RESOURCE: ::windows_sys::core::HRESULT = -2144862155i32; +pub const TPM_E_INVALID_STRUCTURE: ::windows_sys::core::HRESULT = -2144862141i32; +pub const TPM_E_IOERROR: ::windows_sys::core::HRESULT = -2144862177i32; +pub const TPM_E_KEYNOTFOUND: ::windows_sys::core::HRESULT = -2144862195i32; +pub const TPM_E_KEY_ALREADY_FINALIZED: ::windows_sys::core::HRESULT = -2144795628i32; +pub const TPM_E_KEY_NOTSUPPORTED: ::windows_sys::core::HRESULT = -2144862150i32; +pub const TPM_E_KEY_NOT_AUTHENTICATED: ::windows_sys::core::HRESULT = -2144795624i32; +pub const TPM_E_KEY_NOT_FINALIZED: ::windows_sys::core::HRESULT = -2144795631i32; +pub const TPM_E_KEY_NOT_LOADED: ::windows_sys::core::HRESULT = -2144795633i32; +pub const TPM_E_KEY_NOT_SIGNING_KEY: ::windows_sys::core::HRESULT = -2144795622i32; +pub const TPM_E_KEY_OWNER_CONTROL: ::windows_sys::core::HRESULT = -2144862140i32; +pub const TPM_E_KEY_USAGE_POLICY_INVALID: ::windows_sys::core::HRESULT = -2144795626i32; +pub const TPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144795627i32; +pub const TPM_E_LOCKED_OUT: ::windows_sys::core::HRESULT = -2144795621i32; +pub const TPM_E_MAXNVWRITES: ::windows_sys::core::HRESULT = -2144862136i32; +pub const TPM_E_MA_AUTHORITY: ::windows_sys::core::HRESULT = -2144862113i32; +pub const TPM_E_MA_DESTINATION: ::windows_sys::core::HRESULT = -2144862115i32; +pub const TPM_E_MA_SOURCE: ::windows_sys::core::HRESULT = -2144862114i32; +pub const TPM_E_MA_TICKET_SIGNATURE: ::windows_sys::core::HRESULT = -2144862116i32; +pub const TPM_E_MIGRATEFAIL: ::windows_sys::core::HRESULT = -2144862193i32; +pub const TPM_E_NEEDS_SELFTEST: ::windows_sys::core::HRESULT = -2144860159i32; +pub const TPM_E_NOCONTEXTSPACE: ::windows_sys::core::HRESULT = -2144862109i32; +pub const TPM_E_NOOPERATOR: ::windows_sys::core::HRESULT = -2144862135i32; +pub const TPM_E_NOSPACE: ::windows_sys::core::HRESULT = -2144862191i32; +pub const TPM_E_NOSRK: ::windows_sys::core::HRESULT = -2144862190i32; +pub const TPM_E_NOTFIPS: ::windows_sys::core::HRESULT = -2144862154i32; +pub const TPM_E_NOTLOCAL: ::windows_sys::core::HRESULT = -2144862157i32; +pub const TPM_E_NOTRESETABLE: ::windows_sys::core::HRESULT = -2144862158i32; +pub const TPM_E_NOTSEALED_BLOB: ::windows_sys::core::HRESULT = -2144862189i32; +pub const TPM_E_NOT_FULLWRITE: ::windows_sys::core::HRESULT = -2144862138i32; +pub const TPM_E_NOT_PCR_BOUND: ::windows_sys::core::HRESULT = -2144795629i32; +pub const TPM_E_NO_ENDORSEMENT: ::windows_sys::core::HRESULT = -2144862173i32; +pub const TPM_E_NO_KEY_CERTIFICATION: ::windows_sys::core::HRESULT = -2144795632i32; +pub const TPM_E_NO_NV_PERMISSION: ::windows_sys::core::HRESULT = -2144862152i32; +pub const TPM_E_NO_WRAP_TRANSPORT: ::windows_sys::core::HRESULT = -2144862161i32; +pub const TPM_E_OWNER_CONTROL: ::windows_sys::core::HRESULT = -2144862129i32; +pub const TPM_E_OWNER_SET: ::windows_sys::core::HRESULT = -2144862188i32; +pub const TPM_E_PCP_AUTHENTICATION_FAILED: ::windows_sys::core::HRESULT = -2144795640i32; +pub const TPM_E_PCP_AUTHENTICATION_IGNORED: ::windows_sys::core::HRESULT = -2144795639i32; +pub const TPM_E_PCP_BUFFER_TOO_SMALL: ::windows_sys::core::HRESULT = -2144795642i32; +pub const TPM_E_PCP_DEVICE_NOT_READY: ::windows_sys::core::HRESULT = -2144795647i32; +pub const TPM_E_PCP_ERROR_MASK: ::windows_sys::core::HRESULT = -2144795648i32; +pub const TPM_E_PCP_FLAG_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144795644i32; +pub const TPM_E_PCP_IFX_RSA_KEY_CREATION_BLOCKED: ::windows_sys::core::HRESULT = -2144795617i32; +pub const TPM_E_PCP_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2144795641i32; +pub const TPM_E_PCP_INVALID_HANDLE: ::windows_sys::core::HRESULT = -2144795646i32; +pub const TPM_E_PCP_INVALID_PARAMETER: ::windows_sys::core::HRESULT = -2144795645i32; +pub const TPM_E_PCP_KEY_HANDLE_INVALIDATED: ::windows_sys::core::HRESULT = -2144795614i32; +pub const TPM_E_PCP_KEY_NOT_AIK: ::windows_sys::core::HRESULT = -2144795623i32; +pub const TPM_E_PCP_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144795643i32; +pub const TPM_E_PCP_PLATFORM_CLAIM_MAY_BE_OUTDATED: ::windows_sys::core::HRESULT = 1076429860i32; +pub const TPM_E_PCP_PLATFORM_CLAIM_OUTDATED: ::windows_sys::core::HRESULT = 1076429861i32; +pub const TPM_E_PCP_PLATFORM_CLAIM_REBOOT: ::windows_sys::core::HRESULT = 1076429862i32; +pub const TPM_E_PCP_POLICY_NOT_FOUND: ::windows_sys::core::HRESULT = -2144795638i32; +pub const TPM_E_PCP_PROFILE_NOT_FOUND: ::windows_sys::core::HRESULT = -2144795637i32; +pub const TPM_E_PCP_RAW_POLICY_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144795615i32; +pub const TPM_E_PCP_TICKET_MISSING: ::windows_sys::core::HRESULT = -2144795616i32; +pub const TPM_E_PCP_UNSUPPORTED_PSS_SALT: ::windows_sys::core::HRESULT = 1076429859i32; +pub const TPM_E_PCP_VALIDATION_FAILED: ::windows_sys::core::HRESULT = -2144795636i32; +pub const TPM_E_PCP_WRONG_PARENT: ::windows_sys::core::HRESULT = -2144795634i32; +pub const TPM_E_PERMANENTEK: ::windows_sys::core::HRESULT = -2144862111i32; +pub const TPM_E_PER_NOWRITE: ::windows_sys::core::HRESULT = -2144862145i32; +pub const TPM_E_PPI_ACPI_FAILURE: ::windows_sys::core::HRESULT = -2144795904i32; +pub const TPM_E_PPI_BIOS_FAILURE: ::windows_sys::core::HRESULT = -2144795902i32; +pub const TPM_E_PPI_BLOCKED_IN_BIOS: ::windows_sys::core::HRESULT = -2144795900i32; +pub const TPM_E_PPI_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144795901i32; +pub const TPM_E_PPI_USER_ABORT: ::windows_sys::core::HRESULT = -2144795903i32; +pub const TPM_E_PROVISIONING_INCOMPLETE: ::windows_sys::core::HRESULT = -2144795136i32; +pub const TPM_E_READ_ONLY: ::windows_sys::core::HRESULT = -2144862146i32; +pub const TPM_E_REQUIRES_SIGN: ::windows_sys::core::HRESULT = -2144862151i32; +pub const TPM_E_RESOURCEMISSING: ::windows_sys::core::HRESULT = -2144862134i32; +pub const TPM_E_RESOURCES: ::windows_sys::core::HRESULT = -2144862187i32; +pub const TPM_E_RETRY: ::windows_sys::core::HRESULT = -2144860160i32; +pub const TPM_E_SHA_ERROR: ::windows_sys::core::HRESULT = -2144862181i32; +pub const TPM_E_SHA_THREAD: ::windows_sys::core::HRESULT = -2144862182i32; +pub const TPM_E_SHORTRANDOM: ::windows_sys::core::HRESULT = -2144862186i32; +pub const TPM_E_SIZE: ::windows_sys::core::HRESULT = -2144862185i32; +pub const TPM_E_SOFT_KEY_ERROR: ::windows_sys::core::HRESULT = -2144795625i32; +pub const TPM_E_TOOMANYCONTEXTS: ::windows_sys::core::HRESULT = -2144862117i32; +pub const TPM_E_TOO_MUCH_DATA: ::windows_sys::core::HRESULT = -2144795134i32; +pub const TPM_E_TPM_GENERATED_EPS: ::windows_sys::core::HRESULT = -2144795133i32; +pub const TPM_E_TRANSPORT_NOTEXCLUSIVE: ::windows_sys::core::HRESULT = -2144862130i32; +pub const TPM_E_VERSION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144795619i32; +pub const TPM_E_WRITE_LOCKED: ::windows_sys::core::HRESULT = -2144862143i32; +pub const TPM_E_WRONGPCRVAL: ::windows_sys::core::HRESULT = -2144862184i32; +pub const TPM_E_WRONG_ENTITYTYPE: ::windows_sys::core::HRESULT = -2144862171i32; +pub const TPM_E_ZERO_EXHAUST_ENABLED: ::windows_sys::core::HRESULT = -2144795392i32; +pub const TRUE: BOOL = 1i32; +pub const TRUST_E_ACTION_UNKNOWN: ::windows_sys::core::HRESULT = -2146762750i32; +pub const TRUST_E_BAD_DIGEST: ::windows_sys::core::HRESULT = -2146869232i32; +pub const TRUST_E_BASIC_CONSTRAINTS: ::windows_sys::core::HRESULT = -2146869223i32; +pub const TRUST_E_CERT_SIGNATURE: ::windows_sys::core::HRESULT = -2146869244i32; +pub const TRUST_E_COUNTER_SIGNER: ::windows_sys::core::HRESULT = -2146869245i32; +pub const TRUST_E_EXPLICIT_DISTRUST: ::windows_sys::core::HRESULT = -2146762479i32; +pub const TRUST_E_FAIL: ::windows_sys::core::HRESULT = -2146762485i32; +pub const TRUST_E_FINANCIAL_CRITERIA: ::windows_sys::core::HRESULT = -2146869218i32; +pub const TRUST_E_MALFORMED_SIGNATURE: ::windows_sys::core::HRESULT = -2146869231i32; +pub const TRUST_E_NOSIGNATURE: ::windows_sys::core::HRESULT = -2146762496i32; +pub const TRUST_E_NO_SIGNER_CERT: ::windows_sys::core::HRESULT = -2146869246i32; +pub const TRUST_E_PROVIDER_UNKNOWN: ::windows_sys::core::HRESULT = -2146762751i32; +pub const TRUST_E_SUBJECT_FORM_UNKNOWN: ::windows_sys::core::HRESULT = -2146762749i32; +pub const TRUST_E_SUBJECT_NOT_TRUSTED: ::windows_sys::core::HRESULT = -2146762748i32; +pub const TRUST_E_SYSTEM_ERROR: ::windows_sys::core::HRESULT = -2146869247i32; +pub const TRUST_E_TIME_STAMP: ::windows_sys::core::HRESULT = -2146869243i32; +pub const TYPE_E_AMBIGUOUSNAME: ::windows_sys::core::HRESULT = -2147319764i32; +pub const TYPE_E_BADMODULEKIND: ::windows_sys::core::HRESULT = -2147317571i32; +pub const TYPE_E_BUFFERTOOSMALL: ::windows_sys::core::HRESULT = -2147319786i32; +pub const TYPE_E_CANTCREATETMPFILE: ::windows_sys::core::HRESULT = -2147316573i32; +pub const TYPE_E_CANTLOADLIBRARY: ::windows_sys::core::HRESULT = -2147312566i32; +pub const TYPE_E_CIRCULARTYPE: ::windows_sys::core::HRESULT = -2147312508i32; +pub const TYPE_E_DLLFUNCTIONNOTFOUND: ::windows_sys::core::HRESULT = -2147319761i32; +pub const TYPE_E_DUPLICATEID: ::windows_sys::core::HRESULT = -2147317562i32; +pub const TYPE_E_ELEMENTNOTFOUND: ::windows_sys::core::HRESULT = -2147319765i32; +pub const TYPE_E_FIELDNOTFOUND: ::windows_sys::core::HRESULT = -2147319785i32; +pub const TYPE_E_INCONSISTENTPROPFUNCS: ::windows_sys::core::HRESULT = -2147312509i32; +pub const TYPE_E_INVALIDID: ::windows_sys::core::HRESULT = -2147317553i32; +pub const TYPE_E_INVALIDSTATE: ::windows_sys::core::HRESULT = -2147319767i32; +pub const TYPE_E_INVDATAREAD: ::windows_sys::core::HRESULT = -2147319784i32; +pub const TYPE_E_IOERROR: ::windows_sys::core::HRESULT = -2147316574i32; +pub const TYPE_E_LIBNOTREGISTERED: ::windows_sys::core::HRESULT = -2147319779i32; +pub const TYPE_E_NAMECONFLICT: ::windows_sys::core::HRESULT = -2147319763i32; +pub const TYPE_E_OUTOFBOUNDS: ::windows_sys::core::HRESULT = -2147316575i32; +pub const TYPE_E_QUALIFIEDNAMEDISALLOWED: ::windows_sys::core::HRESULT = -2147319768i32; +pub const TYPE_E_REGISTRYACCESS: ::windows_sys::core::HRESULT = -2147319780i32; +pub const TYPE_E_SIZETOOBIG: ::windows_sys::core::HRESULT = -2147317563i32; +pub const TYPE_E_TYPEMISMATCH: ::windows_sys::core::HRESULT = -2147316576i32; +pub const TYPE_E_UNDEFINEDTYPE: ::windows_sys::core::HRESULT = -2147319769i32; +pub const TYPE_E_UNKNOWNLCID: ::windows_sys::core::HRESULT = -2147319762i32; +pub const TYPE_E_UNSUPFORMAT: ::windows_sys::core::HRESULT = -2147319783i32; +pub const TYPE_E_WRONGTYPEKIND: ::windows_sys::core::HRESULT = -2147319766i32; +pub const UCEERR_BLOCKSFULL: ::windows_sys::core::HRESULT = -2003303415i32; +pub const UCEERR_CHANNELSYNCABANDONED: ::windows_sys::core::HRESULT = -2003303404i32; +pub const UCEERR_CHANNELSYNCTIMEDOUT: ::windows_sys::core::HRESULT = -2003303405i32; +pub const UCEERR_COMMANDTRANSPORTDENIED: ::windows_sys::core::HRESULT = -2003303400i32; +pub const UCEERR_CONNECTIONIDLOOKUPFAILED: ::windows_sys::core::HRESULT = -2003303416i32; +pub const UCEERR_CTXSTACKFRSTTARGETNULL: ::windows_sys::core::HRESULT = -2003303417i32; +pub const UCEERR_FEEDBACK_UNSUPPORTED: ::windows_sys::core::HRESULT = -2003303401i32; +pub const UCEERR_GRAPHICSSTREAMALREADYOPEN: ::windows_sys::core::HRESULT = -2003303392i32; +pub const UCEERR_GRAPHICSSTREAMUNAVAILABLE: ::windows_sys::core::HRESULT = -2003303399i32; +pub const UCEERR_HANDLELOOKUPFAILED: ::windows_sys::core::HRESULT = -2003303419i32; +pub const UCEERR_ILLEGALHANDLE: ::windows_sys::core::HRESULT = -2003303420i32; +pub const UCEERR_ILLEGALPACKET: ::windows_sys::core::HRESULT = -2003303422i32; +pub const UCEERR_ILLEGALRECORDTYPE: ::windows_sys::core::HRESULT = -2003303412i32; +pub const UCEERR_INVALIDPACKETHEADER: ::windows_sys::core::HRESULT = -2003303424i32; +pub const UCEERR_MALFORMEDPACKET: ::windows_sys::core::HRESULT = -2003303421i32; +pub const UCEERR_MEMORYFAILURE: ::windows_sys::core::HRESULT = -2003303414i32; +pub const UCEERR_MISSINGBEGINCOMMAND: ::windows_sys::core::HRESULT = -2003303406i32; +pub const UCEERR_MISSINGENDCOMMAND: ::windows_sys::core::HRESULT = -2003303407i32; +pub const UCEERR_NO_MULTIPLE_WORKER_THREADS: ::windows_sys::core::HRESULT = -2003303409i32; +pub const UCEERR_OUTOFHANDLES: ::windows_sys::core::HRESULT = -2003303411i32; +pub const UCEERR_PACKETRECORDOUTOFRANGE: ::windows_sys::core::HRESULT = -2003303413i32; +pub const UCEERR_PARTITION_ZOMBIED: ::windows_sys::core::HRESULT = -2003303389i32; +pub const UCEERR_REMOTINGNOTSUPPORTED: ::windows_sys::core::HRESULT = -2003303408i32; +pub const UCEERR_RENDERTHREADFAILURE: ::windows_sys::core::HRESULT = -2003303418i32; +pub const UCEERR_TRANSPORTDISCONNECTED: ::windows_sys::core::HRESULT = -2003303391i32; +pub const UCEERR_TRANSPORTOVERLOADED: ::windows_sys::core::HRESULT = -2003303390i32; +pub const UCEERR_TRANSPORTUNAVAILABLE: ::windows_sys::core::HRESULT = -2003303402i32; +pub const UCEERR_UNCHANGABLE_UPDATE_ATTEMPTED: ::windows_sys::core::HRESULT = -2003303410i32; +pub const UCEERR_UNKNOWNPACKET: ::windows_sys::core::HRESULT = -2003303423i32; +pub const UCEERR_UNSUPPORTEDTRANSPORTVERSION: ::windows_sys::core::HRESULT = -2003303403i32; +pub const UI_E_AMBIGUOUS_MATCH: ::windows_sys::core::HRESULT = -2144731126i32; +pub const UI_E_BOOLEAN_EXPECTED: ::windows_sys::core::HRESULT = -2144731128i32; +pub const UI_E_CREATE_FAILED: ::windows_sys::core::HRESULT = -2144731135i32; +pub const UI_E_DIFFERENT_OWNER: ::windows_sys::core::HRESULT = -2144731127i32; +pub const UI_E_END_KEYFRAME_NOT_DETERMINED: ::windows_sys::core::HRESULT = -2144730876i32; +pub const UI_E_FP_OVERFLOW: ::windows_sys::core::HRESULT = -2144731125i32; +pub const UI_E_ILLEGAL_REENTRANCY: ::windows_sys::core::HRESULT = -2144731133i32; +pub const UI_E_INVALID_DIMENSION: ::windows_sys::core::HRESULT = -2144730869i32; +pub const UI_E_INVALID_OUTPUT: ::windows_sys::core::HRESULT = -2144731129i32; +pub const UI_E_LOOPS_OVERLAP: ::windows_sys::core::HRESULT = -2144730875i32; +pub const UI_E_OBJECT_SEALED: ::windows_sys::core::HRESULT = -2144731132i32; +pub const UI_E_PRIMITIVE_OUT_OF_BOUNDS: ::windows_sys::core::HRESULT = -2144730868i32; +pub const UI_E_SHUTDOWN_CALLED: ::windows_sys::core::HRESULT = -2144731134i32; +pub const UI_E_START_KEYFRAME_AFTER_END: ::windows_sys::core::HRESULT = -2144730877i32; +pub const UI_E_STORYBOARD_ACTIVE: ::windows_sys::core::HRESULT = -2144730879i32; +pub const UI_E_STORYBOARD_NOT_PLAYING: ::windows_sys::core::HRESULT = -2144730878i32; +pub const UI_E_TIMER_CLIENT_ALREADY_CONNECTED: ::windows_sys::core::HRESULT = -2144730870i32; +pub const UI_E_TIME_BEFORE_LAST_UPDATE: ::windows_sys::core::HRESULT = -2144730871i32; +pub const UI_E_TRANSITION_ALREADY_USED: ::windows_sys::core::HRESULT = -2144730874i32; +pub const UI_E_TRANSITION_ECLIPSED: ::windows_sys::core::HRESULT = -2144730872i32; +pub const UI_E_TRANSITION_NOT_IN_STORYBOARD: ::windows_sys::core::HRESULT = -2144730873i32; +pub const UI_E_VALUE_NOT_DETERMINED: ::windows_sys::core::HRESULT = -2144731130i32; +pub const UI_E_VALUE_NOT_SET: ::windows_sys::core::HRESULT = -2144731131i32; +pub const UI_E_WINDOW_CLOSED: ::windows_sys::core::HRESULT = -2144730623i32; +pub const UI_E_WRONG_THREAD: ::windows_sys::core::HRESULT = -2144731124i32; +pub const UTC_E_ACTION_NOT_SUPPORTED_IN_DESTINATION: ::windows_sys::core::HRESULT = -2017128380i32; +pub const UTC_E_AGENT_DIAGNOSTICS_TOO_LARGE: ::windows_sys::core::HRESULT = -2017128363i32; +pub const UTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT: ::windows_sys::core::HRESULT = -2017128446i32; +pub const UTC_E_AOT_NOT_RUNNING: ::windows_sys::core::HRESULT = -2017128445i32; +pub const UTC_E_API_BUSY: ::windows_sys::core::HRESULT = -2017128405i32; +pub const UTC_E_API_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2017128388i32; +pub const UTC_E_API_RESULT_UNAVAILABLE: ::windows_sys::core::HRESULT = -2017128408i32; +pub const UTC_E_BINARY_MISSING: ::windows_sys::core::HRESULT = -2017128396i32; +pub const UTC_E_CANNOT_LOAD_SCENARIO_EDITOR_XML: ::windows_sys::core::HRESULT = -2017128417i32; +pub const UTC_E_CERT_REV_FAILED: ::windows_sys::core::HRESULT = -2017128385i32; +pub const UTC_E_CHILD_PROCESS_FAILED: ::windows_sys::core::HRESULT = -2017128419i32; +pub const UTC_E_COMMAND_LINE_NOT_AUTHORIZED: ::windows_sys::core::HRESULT = -2017128418i32; +pub const UTC_E_DELAY_TERMINATED: ::windows_sys::core::HRESULT = -2017128411i32; +pub const UTC_E_DEVICE_TICKET_ERROR: ::windows_sys::core::HRESULT = -2017128410i32; +pub const UTC_E_DIAGRULES_SCHEMAVERSION_MISMATCH: ::windows_sys::core::HRESULT = -2017128438i32; +pub const UTC_E_ESCALATION_ALREADY_RUNNING: ::windows_sys::core::HRESULT = -2017128433i32; +pub const UTC_E_ESCALATION_CANCELLED_AT_SHUTDOWN: ::windows_sys::core::HRESULT = -2017128358i32; +pub const UTC_E_ESCALATION_DIRECTORY_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2017128401i32; +pub const UTC_E_ESCALATION_NOT_AUTHORIZED: ::windows_sys::core::HRESULT = -2017128421i32; +pub const UTC_E_ESCALATION_TIMED_OUT: ::windows_sys::core::HRESULT = -2017128416i32; +pub const UTC_E_EVENTLOG_ENTRY_MALFORMED: ::windows_sys::core::HRESULT = -2017128439i32; +pub const UTC_E_EXCLUSIVITY_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2017128403i32; +pub const UTC_E_EXE_TERMINATED: ::windows_sys::core::HRESULT = -2017128422i32; +pub const UTC_E_FAILED_TO_RECEIVE_AGENT_DIAGNOSTICS: ::windows_sys::core::HRESULT = -2017128362i32; +pub const UTC_E_FAILED_TO_RESOLVE_CONTAINER_ID: ::windows_sys::core::HRESULT = -2017128394i32; +pub const UTC_E_FAILED_TO_START_NDISCAP: ::windows_sys::core::HRESULT = -2017128384i32; +pub const UTC_E_FILTER_FUNCTION_RESTRICTED: ::windows_sys::core::HRESULT = -2017128376i32; +pub const UTC_E_FILTER_ILLEGAL_EVAL: ::windows_sys::core::HRESULT = -2017128365i32; +pub const UTC_E_FILTER_INVALID_COMMAND: ::windows_sys::core::HRESULT = -2017128366i32; +pub const UTC_E_FILTER_INVALID_FUNCTION: ::windows_sys::core::HRESULT = -2017128368i32; +pub const UTC_E_FILTER_INVALID_FUNCTION_PARAMS: ::windows_sys::core::HRESULT = -2017128367i32; +pub const UTC_E_FILTER_INVALID_TYPE: ::windows_sys::core::HRESULT = -2017128378i32; +pub const UTC_E_FILTER_MISSING_ATTRIBUTE: ::windows_sys::core::HRESULT = -2017128379i32; +pub const UTC_E_FILTER_VARIABLE_NOT_FOUND: ::windows_sys::core::HRESULT = -2017128377i32; +pub const UTC_E_FILTER_VERSION_MISMATCH: ::windows_sys::core::HRESULT = -2017128375i32; +pub const UTC_E_FORWARDER_ALREADY_DISABLED: ::windows_sys::core::HRESULT = -2017128440i32; +pub const UTC_E_FORWARDER_ALREADY_ENABLED: ::windows_sys::core::HRESULT = -2017128441i32; +pub const UTC_E_FORWARDER_PRODUCER_MISMATCH: ::windows_sys::core::HRESULT = -2017128430i32; +pub const UTC_E_GETFILEINFOACTION_FILE_NOT_APPROVED: ::windows_sys::core::HRESULT = -2017128357i32; +pub const UTC_E_GETFILE_EXTERNAL_PATH_NOT_APPROVED: ::windows_sys::core::HRESULT = -2017128387i32; +pub const UTC_E_GETFILE_FILE_PATH_NOT_APPROVED: ::windows_sys::core::HRESULT = -2017128402i32; +pub const UTC_E_INSUFFICIENT_SPACE_TO_START_TRACE: ::windows_sys::core::HRESULT = -2017128359i32; +pub const UTC_E_INTENTIONAL_SCRIPT_FAILURE: ::windows_sys::core::HRESULT = -2017128429i32; +pub const UTC_E_INVALID_AGGREGATION_STRUCT: ::windows_sys::core::HRESULT = -2017128381i32; +pub const UTC_E_INVALID_CUSTOM_FILTER: ::windows_sys::core::HRESULT = -2017128436i32; +pub const UTC_E_INVALID_FILTER: ::windows_sys::core::HRESULT = -2017128423i32; +pub const UTC_E_KERNELDUMP_LIMIT_REACHED: ::windows_sys::core::HRESULT = -2017128383i32; +pub const UTC_E_MISSING_AGGREGATE_EVENT_TAG: ::windows_sys::core::HRESULT = -2017128382i32; +pub const UTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE: ::windows_sys::core::HRESULT = -2017128397i32; +pub const UTC_E_NO_WER_LOGGER_SUPPORTED: ::windows_sys::core::HRESULT = -2017128427i32; +pub const UTC_E_PERFTRACK_ALREADY_TRACING: ::windows_sys::core::HRESULT = -2017128432i32; +pub const UTC_E_REACHED_MAX_ESCALATIONS: ::windows_sys::core::HRESULT = -2017128431i32; +pub const UTC_E_REESCALATED_TOO_QUICKLY: ::windows_sys::core::HRESULT = -2017128434i32; +pub const UTC_E_RPC_TIMEOUT: ::windows_sys::core::HRESULT = -2017128407i32; +pub const UTC_E_RPC_WAIT_FAILED: ::windows_sys::core::HRESULT = -2017128406i32; +pub const UTC_E_SCENARIODEF_NOT_FOUND: ::windows_sys::core::HRESULT = -2017128443i32; +pub const UTC_E_SCENARIODEF_SCHEMAVERSION_MISMATCH: ::windows_sys::core::HRESULT = -2017128424i32; +pub const UTC_E_SCENARIO_HAS_NO_ACTIONS: ::windows_sys::core::HRESULT = -2017128361i32; +pub const UTC_E_SCENARIO_THROTTLED: ::windows_sys::core::HRESULT = -2017128389i32; +pub const UTC_E_SCRIPT_MISSING: ::windows_sys::core::HRESULT = -2017128390i32; +pub const UTC_E_SCRIPT_TERMINATED: ::windows_sys::core::HRESULT = -2017128437i32; +pub const UTC_E_SCRIPT_TYPE_INVALID: ::windows_sys::core::HRESULT = -2017128444i32; +pub const UTC_E_SETREGKEYACTION_TYPE_NOT_APPROVED: ::windows_sys::core::HRESULT = -2017128356i32; +pub const UTC_E_SETUP_NOT_AUTHORIZED: ::windows_sys::core::HRESULT = -2017128420i32; +pub const UTC_E_SETUP_TIMED_OUT: ::windows_sys::core::HRESULT = -2017128415i32; +pub const UTC_E_SIF_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2017128412i32; +pub const UTC_E_SQM_INIT_FAILED: ::windows_sys::core::HRESULT = -2017128428i32; +pub const UTC_E_THROTTLED: ::windows_sys::core::HRESULT = -2017128392i32; +pub const UTC_E_TIME_TRIGGER_INVALID_TIME_RANGE: ::windows_sys::core::HRESULT = -2017128398i32; +pub const UTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION: ::windows_sys::core::HRESULT = -2017128399i32; +pub const UTC_E_TIME_TRIGGER_ON_START_INVALID: ::windows_sys::core::HRESULT = -2017128400i32; +pub const UTC_E_TOGGLE_TRACE_STARTED: ::windows_sys::core::HRESULT = -2017128447i32; +pub const UTC_E_TRACEPROFILE_NOT_FOUND: ::windows_sys::core::HRESULT = -2017128442i32; +pub const UTC_E_TRACERS_DONT_EXIST: ::windows_sys::core::HRESULT = -2017128426i32; +pub const UTC_E_TRACE_BUFFER_LIMIT_EXCEEDED: ::windows_sys::core::HRESULT = -2017128409i32; +pub const UTC_E_TRACE_MIN_DURATION_REQUIREMENT_NOT_MET: ::windows_sys::core::HRESULT = -2017128404i32; +pub const UTC_E_TRACE_NOT_RUNNING: ::windows_sys::core::HRESULT = -2017128435i32; +pub const UTC_E_TRACE_THROTTLED: ::windows_sys::core::HRESULT = -2017128355i32; +pub const UTC_E_TRIGGER_MISMATCH: ::windows_sys::core::HRESULT = -2017128414i32; +pub const UTC_E_TRIGGER_NOT_FOUND: ::windows_sys::core::HRESULT = -2017128413i32; +pub const UTC_E_TRY_GET_SCENARIO_TIMEOUT_EXCEEDED: ::windows_sys::core::HRESULT = -2017128386i32; +pub const UTC_E_TTTRACER_RETURNED_ERROR: ::windows_sys::core::HRESULT = -2017128364i32; +pub const UTC_E_TTTRACER_STORAGE_FULL: ::windows_sys::core::HRESULT = -2017128360i32; +pub const UTC_E_UNABLE_TO_RESOLVE_SESSION: ::windows_sys::core::HRESULT = -2017128393i32; +pub const UTC_E_UNAPPROVED_SCRIPT: ::windows_sys::core::HRESULT = -2017128391i32; +pub const UTC_E_WINRT_INIT_FAILED: ::windows_sys::core::HRESULT = -2017128425i32; +pub const VARIANT_FALSE: VARIANT_BOOL = 0i16; +pub const VARIANT_TRUE: VARIANT_BOOL = -1i16; +pub const VIEW_E_DRAW: ::windows_sys::core::HRESULT = -2147221184i32; +pub const VIEW_E_FIRST: i32 = -2147221184i32; +pub const VIEW_E_LAST: i32 = -2147221169i32; +pub const VIEW_S_ALREADY_FROZEN: ::windows_sys::core::HRESULT = 262464i32; +pub const VIEW_S_FIRST: i32 = 262464i32; +pub const VIEW_S_LAST: i32 = 262479i32; +pub const VM_SAVED_STATE_DUMP_E_GUEST_MEMORY_NOT_FOUND: ::windows_sys::core::HRESULT = -1070136063i32; +pub const VM_SAVED_STATE_DUMP_E_INVALID_VP_STATE: ::windows_sys::core::HRESULT = -1070136058i32; +pub const VM_SAVED_STATE_DUMP_E_NESTED_VIRTUALIZATION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1070136061i32; +pub const VM_SAVED_STATE_DUMP_E_NO_VP_FOUND_IN_PARTITION_STATE: ::windows_sys::core::HRESULT = -1070136062i32; +pub const VM_SAVED_STATE_DUMP_E_PARTITION_STATE_NOT_FOUND: ::windows_sys::core::HRESULT = -1070136064i32; +pub const VM_SAVED_STATE_DUMP_E_VA_NOT_MAPPED: ::windows_sys::core::HRESULT = -1070136059i32; +pub const VM_SAVED_STATE_DUMP_E_VP_VTL_NOT_ENABLED: ::windows_sys::core::HRESULT = -1070136055i32; +pub const VM_SAVED_STATE_DUMP_E_WINDOWS_KERNEL_IMAGE_NOT_FOUND: ::windows_sys::core::HRESULT = -1070136060i32; +pub const VOLMGR_KSR_BYPASS: NTSTATUS = -2143813629i32; +pub const VOLMGR_KSR_ERROR: NTSTATUS = -2143813631i32; +pub const VOLMGR_KSR_READ_ERROR: NTSTATUS = -2143813630i32; +pub const WAIT_ABANDONED: WAIT_EVENT = 128u32; +pub const WAIT_ABANDONED_0: WAIT_EVENT = 128u32; +pub const WAIT_FAILED: WAIT_EVENT = 4294967295u32; +pub const WAIT_IO_COMPLETION: WAIT_EVENT = 192u32; +pub const WAIT_OBJECT_0: WAIT_EVENT = 0u32; +pub const WAIT_TIMEOUT: WAIT_EVENT = 258u32; +pub const WARNING_IPSEC_MM_POLICY_PRUNED: i32 = 13024i32; +pub const WARNING_IPSEC_QM_POLICY_PRUNED: i32 = 13025i32; +pub const WARNING_NO_MD5_MIGRATION: u32 = 946u32; +pub const WBREAK_E_BUFFER_TOO_SMALL: ::windows_sys::core::HRESULT = -2147215485i32; +pub const WBREAK_E_END_OF_TEXT: ::windows_sys::core::HRESULT = -2147215488i32; +pub const WBREAK_E_INIT_FAILED: ::windows_sys::core::HRESULT = -2147215483i32; +pub const WBREAK_E_QUERY_ONLY: ::windows_sys::core::HRESULT = -2147215486i32; +pub const WEB_E_INVALID_JSON_NUMBER: ::windows_sys::core::HRESULT = -2089484280i32; +pub const WEB_E_INVALID_JSON_STRING: ::windows_sys::core::HRESULT = -2089484281i32; +pub const WEB_E_INVALID_XML: ::windows_sys::core::HRESULT = -2089484286i32; +pub const WEB_E_JSON_VALUE_NOT_FOUND: ::windows_sys::core::HRESULT = -2089484279i32; +pub const WEB_E_MISSING_REQUIRED_ATTRIBUTE: ::windows_sys::core::HRESULT = -2089484284i32; +pub const WEB_E_MISSING_REQUIRED_ELEMENT: ::windows_sys::core::HRESULT = -2089484285i32; +pub const WEB_E_RESOURCE_TOO_LARGE: ::windows_sys::core::HRESULT = -2089484282i32; +pub const WEB_E_UNEXPECTED_CONTENT: ::windows_sys::core::HRESULT = -2089484283i32; +pub const WEB_E_UNSUPPORTED_FORMAT: ::windows_sys::core::HRESULT = -2089484287i32; +pub const WEP_E_BUFFER_TOO_LARGE: ::windows_sys::core::HRESULT = -2013200375i32; +pub const WEP_E_FIXED_DATA_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2013200382i32; +pub const WEP_E_HARDWARE_NOT_COMPLIANT: ::windows_sys::core::HRESULT = -2013200381i32; +pub const WEP_E_LOCK_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -2013200380i32; +pub const WEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES: ::windows_sys::core::HRESULT = -2013200383i32; +pub const WEP_E_NO_LICENSE: ::windows_sys::core::HRESULT = -2013200378i32; +pub const WEP_E_OS_NOT_PROTECTED: ::windows_sys::core::HRESULT = -2013200377i32; +pub const WEP_E_PROTECTION_SUSPENDED: ::windows_sys::core::HRESULT = -2013200379i32; +pub const WEP_E_UNEXPECTED_FAIL: ::windows_sys::core::HRESULT = -2013200376i32; +pub const WER_E_ALREADY_REPORTING: ::windows_sys::core::HRESULT = -2145681404i32; +pub const WER_E_CANCELED: ::windows_sys::core::HRESULT = -2145681407i32; +pub const WER_E_CRASH_FAILURE: ::windows_sys::core::HRESULT = -2145681408i32; +pub const WER_E_DUMP_THROTTLED: ::windows_sys::core::HRESULT = -2145681403i32; +pub const WER_E_INSUFFICIENT_CONSENT: ::windows_sys::core::HRESULT = -2145681402i32; +pub const WER_E_NETWORK_FAILURE: ::windows_sys::core::HRESULT = -2145681406i32; +pub const WER_E_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -2145681405i32; +pub const WER_E_TOO_HEAVY: ::windows_sys::core::HRESULT = -2145681401i32; +pub const WER_S_ASSERT_CONTINUE: ::windows_sys::core::HRESULT = 1769482i32; +pub const WER_S_DISABLED: ::windows_sys::core::HRESULT = 1769475i32; +pub const WER_S_DISABLED_ARCHIVE: ::windows_sys::core::HRESULT = 1769478i32; +pub const WER_S_DISABLED_QUEUE: ::windows_sys::core::HRESULT = 1769477i32; +pub const WER_S_IGNORE_ALL_ASSERTS: ::windows_sys::core::HRESULT = 1769481i32; +pub const WER_S_IGNORE_ASSERT_INSTANCE: ::windows_sys::core::HRESULT = 1769480i32; +pub const WER_S_REPORT_ASYNC: ::windows_sys::core::HRESULT = 1769479i32; +pub const WER_S_REPORT_DEBUG: ::windows_sys::core::HRESULT = 1769472i32; +pub const WER_S_REPORT_QUEUED: ::windows_sys::core::HRESULT = 1769474i32; +pub const WER_S_REPORT_UPLOADED: ::windows_sys::core::HRESULT = 1769473i32; +pub const WER_S_REPORT_UPLOADED_CAB: ::windows_sys::core::HRESULT = 1769484i32; +pub const WER_S_SUSPENDED_UPLOAD: ::windows_sys::core::HRESULT = 1769476i32; +pub const WER_S_THROTTLED: ::windows_sys::core::HRESULT = 1769483i32; +pub const WHV_E_GPA_RANGE_NOT_FOUND: ::windows_sys::core::HRESULT = -2143878395i32; +pub const WHV_E_INSUFFICIENT_BUFFER: ::windows_sys::core::HRESULT = -2143878399i32; +pub const WHV_E_INVALID_PARTITION_CONFIG: ::windows_sys::core::HRESULT = -2143878396i32; +pub const WHV_E_INVALID_VP_REGISTER_NAME: ::windows_sys::core::HRESULT = -2143878391i32; +pub const WHV_E_INVALID_VP_STATE: ::windows_sys::core::HRESULT = -2143878392i32; +pub const WHV_E_UNKNOWN_CAPABILITY: ::windows_sys::core::HRESULT = -2143878400i32; +pub const WHV_E_UNKNOWN_PROPERTY: ::windows_sys::core::HRESULT = -2143878398i32; +pub const WHV_E_UNSUPPORTED_HYPERVISOR_CONFIG: ::windows_sys::core::HRESULT = -2143878397i32; +pub const WHV_E_UNSUPPORTED_PROCESSOR_CONFIG: ::windows_sys::core::HRESULT = -2143878384i32; +pub const WHV_E_VP_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2143878394i32; +pub const WHV_E_VP_DOES_NOT_EXIST: ::windows_sys::core::HRESULT = -2143878393i32; +pub const WINCODEC_ERR_ALREADYLOCKED: ::windows_sys::core::HRESULT = -2003292403i32; +pub const WINCODEC_ERR_BADHEADER: ::windows_sys::core::HRESULT = -2003292319i32; +pub const WINCODEC_ERR_BADIMAGE: ::windows_sys::core::HRESULT = -2003292320i32; +pub const WINCODEC_ERR_BADMETADATAHEADER: ::windows_sys::core::HRESULT = -2003292317i32; +pub const WINCODEC_ERR_BADSTREAMDATA: ::windows_sys::core::HRESULT = -2003292304i32; +pub const WINCODEC_ERR_CODECNOTHUMBNAIL: ::windows_sys::core::HRESULT = -2003292348i32; +pub const WINCODEC_ERR_CODECPRESENT: ::windows_sys::core::HRESULT = -2003292349i32; +pub const WINCODEC_ERR_CODECTOOMANYSCANLINES: ::windows_sys::core::HRESULT = -2003292346i32; +pub const WINCODEC_ERR_COMPONENTINITIALIZEFAILURE: ::windows_sys::core::HRESULT = -2003292277i32; +pub const WINCODEC_ERR_COMPONENTNOTFOUND: ::windows_sys::core::HRESULT = -2003292336i32; +pub const WINCODEC_ERR_DUPLICATEMETADATAPRESENT: ::windows_sys::core::HRESULT = -2003292275i32; +pub const WINCODEC_ERR_FRAMEMISSING: ::windows_sys::core::HRESULT = -2003292318i32; +pub const WINCODEC_ERR_IMAGESIZEOUTOFRANGE: ::windows_sys::core::HRESULT = -2003292335i32; +pub const WINCODEC_ERR_INSUFFICIENTBUFFER: ::windows_sys::core::HRESULT = -2003292276i32; +pub const WINCODEC_ERR_INTERNALERROR: ::windows_sys::core::HRESULT = -2003292344i32; +pub const WINCODEC_ERR_INVALIDJPEGSCANINDEX: ::windows_sys::core::HRESULT = -2003292266i32; +pub const WINCODEC_ERR_INVALIDPROGRESSIVELEVEL: ::windows_sys::core::HRESULT = -2003292267i32; +pub const WINCODEC_ERR_INVALIDQUERYCHARACTER: ::windows_sys::core::HRESULT = -2003292269i32; +pub const WINCODEC_ERR_INVALIDQUERYREQUEST: ::windows_sys::core::HRESULT = -2003292272i32; +pub const WINCODEC_ERR_INVALIDREGISTRATION: ::windows_sys::core::HRESULT = -2003292278i32; +pub const WINCODEC_ERR_NOTINITIALIZED: ::windows_sys::core::HRESULT = -2003292404i32; +pub const WINCODEC_ERR_PALETTEUNAVAILABLE: ::windows_sys::core::HRESULT = -2003292347i32; +pub const WINCODEC_ERR_PROPERTYNOTFOUND: ::windows_sys::core::HRESULT = -2003292352i32; +pub const WINCODEC_ERR_PROPERTYNOTSUPPORTED: ::windows_sys::core::HRESULT = -2003292351i32; +pub const WINCODEC_ERR_PROPERTYSIZE: ::windows_sys::core::HRESULT = -2003292350i32; +pub const WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE: ::windows_sys::core::HRESULT = -2003292274i32; +pub const WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT: ::windows_sys::core::HRESULT = -2003292270i32; +pub const WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS: ::windows_sys::core::HRESULT = -2003292343i32; +pub const WINCODEC_ERR_STREAMNOTAVAILABLE: ::windows_sys::core::HRESULT = -2003292301i32; +pub const WINCODEC_ERR_STREAMREAD: ::windows_sys::core::HRESULT = -2003292302i32; +pub const WINCODEC_ERR_STREAMWRITE: ::windows_sys::core::HRESULT = -2003292303i32; +pub const WINCODEC_ERR_TOOMUCHMETADATA: ::windows_sys::core::HRESULT = -2003292334i32; +pub const WINCODEC_ERR_UNEXPECTEDMETADATATYPE: ::windows_sys::core::HRESULT = -2003292271i32; +pub const WINCODEC_ERR_UNEXPECTEDSIZE: ::windows_sys::core::HRESULT = -2003292273i32; +pub const WINCODEC_ERR_UNKNOWNIMAGEFORMAT: ::windows_sys::core::HRESULT = -2003292409i32; +pub const WINCODEC_ERR_UNSUPPORTEDOPERATION: ::windows_sys::core::HRESULT = -2003292287i32; +pub const WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT: ::windows_sys::core::HRESULT = -2003292288i32; +pub const WINCODEC_ERR_UNSUPPORTEDVERSION: ::windows_sys::core::HRESULT = -2003292405i32; +pub const WINCODEC_ERR_VALUEOUTOFRANGE: ::windows_sys::core::HRESULT = -2003292411i32; +pub const WINCODEC_ERR_WIN32ERROR: ::windows_sys::core::HRESULT = -2003292268i32; +pub const WINCODEC_ERR_WRONGSTATE: ::windows_sys::core::HRESULT = -2003292412i32; +pub const WININET_E_ASYNC_THREAD_FAILED: ::windows_sys::core::HRESULT = -2147012849i32; +pub const WININET_E_BAD_AUTO_PROXY_SCRIPT: ::windows_sys::core::HRESULT = -2147012730i32; +pub const WININET_E_BAD_OPTION_LENGTH: ::windows_sys::core::HRESULT = -2147012886i32; +pub const WININET_E_BAD_REGISTRY_PARAMETER: ::windows_sys::core::HRESULT = -2147012874i32; +pub const WININET_E_CANNOT_CONNECT: ::windows_sys::core::HRESULT = -2147012867i32; +pub const WININET_E_CHG_POST_IS_NON_SECURE: ::windows_sys::core::HRESULT = -2147012854i32; +pub const WININET_E_CLIENT_AUTH_CERT_NEEDED: ::windows_sys::core::HRESULT = -2147012852i32; +pub const WININET_E_CLIENT_AUTH_NOT_SETUP: ::windows_sys::core::HRESULT = -2147012850i32; +pub const WININET_E_CONNECTION_ABORTED: ::windows_sys::core::HRESULT = -2147012866i32; +pub const WININET_E_CONNECTION_RESET: ::windows_sys::core::HRESULT = -2147012865i32; +pub const WININET_E_COOKIE_DECLINED: ::windows_sys::core::HRESULT = -2147012734i32; +pub const WININET_E_COOKIE_NEEDS_CONFIRMATION: ::windows_sys::core::HRESULT = -2147012735i32; +pub const WININET_E_DECODING_FAILED: ::windows_sys::core::HRESULT = -2147012721i32; +pub const WININET_E_DIALOG_PENDING: ::windows_sys::core::HRESULT = -2147012847i32; +pub const WININET_E_DISCONNECTED: ::windows_sys::core::HRESULT = -2147012733i32; +pub const WININET_E_DOWNLEVEL_SERVER: ::windows_sys::core::HRESULT = -2147012745i32; +pub const WININET_E_EXTENDED_ERROR: ::windows_sys::core::HRESULT = -2147012893i32; +pub const WININET_E_FAILED_DUETOSECURITYCHECK: ::windows_sys::core::HRESULT = -2147012725i32; +pub const WININET_E_FORCE_RETRY: ::windows_sys::core::HRESULT = -2147012864i32; +pub const WININET_E_HANDLE_EXISTS: ::windows_sys::core::HRESULT = -2147012860i32; +pub const WININET_E_HEADER_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2147012741i32; +pub const WININET_E_HEADER_NOT_FOUND: ::windows_sys::core::HRESULT = -2147012746i32; +pub const WININET_E_HTTPS_HTTP_SUBMIT_REDIR: ::windows_sys::core::HRESULT = -2147012844i32; +pub const WININET_E_HTTPS_TO_HTTP_ON_REDIR: ::windows_sys::core::HRESULT = -2147012856i32; +pub const WININET_E_HTTP_TO_HTTPS_ON_REDIR: ::windows_sys::core::HRESULT = -2147012857i32; +pub const WININET_E_INCORRECT_FORMAT: ::windows_sys::core::HRESULT = -2147012869i32; +pub const WININET_E_INCORRECT_HANDLE_STATE: ::windows_sys::core::HRESULT = -2147012877i32; +pub const WININET_E_INCORRECT_HANDLE_TYPE: ::windows_sys::core::HRESULT = -2147012878i32; +pub const WININET_E_INCORRECT_PASSWORD: ::windows_sys::core::HRESULT = -2147012882i32; +pub const WININET_E_INCORRECT_USER_NAME: ::windows_sys::core::HRESULT = -2147012883i32; +pub const WININET_E_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -2147012892i32; +pub const WININET_E_INVALID_CA: ::windows_sys::core::HRESULT = -2147012851i32; +pub const WININET_E_INVALID_HEADER: ::windows_sys::core::HRESULT = -2147012743i32; +pub const WININET_E_INVALID_OPERATION: ::windows_sys::core::HRESULT = -2147012880i32; +pub const WININET_E_INVALID_OPTION: ::windows_sys::core::HRESULT = -2147012887i32; +pub const WININET_E_INVALID_PROXY_REQUEST: ::windows_sys::core::HRESULT = -2147012863i32; +pub const WININET_E_INVALID_QUERY_REQUEST: ::windows_sys::core::HRESULT = -2147012742i32; +pub const WININET_E_INVALID_SERVER_RESPONSE: ::windows_sys::core::HRESULT = -2147012744i32; +pub const WININET_E_INVALID_URL: ::windows_sys::core::HRESULT = -2147012891i32; +pub const WININET_E_ITEM_NOT_FOUND: ::windows_sys::core::HRESULT = -2147012868i32; +pub const WININET_E_LOGIN_FAILURE: ::windows_sys::core::HRESULT = -2147012881i32; +pub const WININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY: ::windows_sys::core::HRESULT = -2147012722i32; +pub const WININET_E_MIXED_SECURITY: ::windows_sys::core::HRESULT = -2147012855i32; +pub const WININET_E_NAME_NOT_RESOLVED: ::windows_sys::core::HRESULT = -2147012889i32; +pub const WININET_E_NEED_UI: ::windows_sys::core::HRESULT = -2147012862i32; +pub const WININET_E_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -2147012724i32; +pub const WININET_E_NOT_PROXY_REQUEST: ::windows_sys::core::HRESULT = -2147012876i32; +pub const WININET_E_NOT_REDIRECTED: ::windows_sys::core::HRESULT = -2147012736i32; +pub const WININET_E_NO_CALLBACK: ::windows_sys::core::HRESULT = -2147012871i32; +pub const WININET_E_NO_CONTEXT: ::windows_sys::core::HRESULT = -2147012872i32; +pub const WININET_E_NO_DIRECT_ACCESS: ::windows_sys::core::HRESULT = -2147012873i32; +pub const WININET_E_NO_NEW_CONTAINERS: ::windows_sys::core::HRESULT = -2147012845i32; +pub const WININET_E_OPERATION_CANCELLED: ::windows_sys::core::HRESULT = -2147012879i32; +pub const WININET_E_OPTION_NOT_SETTABLE: ::windows_sys::core::HRESULT = -2147012885i32; +pub const WININET_E_OUT_OF_HANDLES: ::windows_sys::core::HRESULT = -2147012895i32; +pub const WININET_E_POST_IS_NON_SECURE: ::windows_sys::core::HRESULT = -2147012853i32; +pub const WININET_E_PROTOCOL_NOT_FOUND: ::windows_sys::core::HRESULT = -2147012888i32; +pub const WININET_E_PROXY_SERVER_UNREACHABLE: ::windows_sys::core::HRESULT = -2147012731i32; +pub const WININET_E_REDIRECT_FAILED: ::windows_sys::core::HRESULT = -2147012740i32; +pub const WININET_E_REDIRECT_NEEDS_CONFIRMATION: ::windows_sys::core::HRESULT = -2147012728i32; +pub const WININET_E_REDIRECT_SCHEME_CHANGE: ::windows_sys::core::HRESULT = -2147012848i32; +pub const WININET_E_REGISTRY_VALUE_NOT_FOUND: ::windows_sys::core::HRESULT = -2147012875i32; +pub const WININET_E_REQUEST_PENDING: ::windows_sys::core::HRESULT = -2147012870i32; +pub const WININET_E_RETRY_DIALOG: ::windows_sys::core::HRESULT = -2147012846i32; +pub const WININET_E_SECURITY_CHANNEL_ERROR: ::windows_sys::core::HRESULT = -2147012739i32; +pub const WININET_E_SEC_CERT_CN_INVALID: ::windows_sys::core::HRESULT = -2147012858i32; +pub const WININET_E_SEC_CERT_DATE_INVALID: ::windows_sys::core::HRESULT = -2147012859i32; +pub const WININET_E_SEC_CERT_ERRORS: ::windows_sys::core::HRESULT = -2147012841i32; +pub const WININET_E_SEC_CERT_REVOKED: ::windows_sys::core::HRESULT = -2147012726i32; +pub const WININET_E_SEC_CERT_REV_FAILED: ::windows_sys::core::HRESULT = -2147012839i32; +pub const WININET_E_SEC_INVALID_CERT: ::windows_sys::core::HRESULT = -2147012727i32; +pub const WININET_E_SERVER_UNREACHABLE: ::windows_sys::core::HRESULT = -2147012732i32; +pub const WININET_E_SHUTDOWN: ::windows_sys::core::HRESULT = -2147012884i32; +pub const WININET_E_TCPIP_NOT_INSTALLED: ::windows_sys::core::HRESULT = -2147012737i32; +pub const WININET_E_TIMEOUT: ::windows_sys::core::HRESULT = -2147012894i32; +pub const WININET_E_UNABLE_TO_CACHE_FILE: ::windows_sys::core::HRESULT = -2147012738i32; +pub const WININET_E_UNABLE_TO_DOWNLOAD_SCRIPT: ::windows_sys::core::HRESULT = -2147012729i32; +pub const WININET_E_UNRECOGNIZED_SCHEME: ::windows_sys::core::HRESULT = -2147012890i32; +pub const WINML_ERR_INVALID_BINDING: ::windows_sys::core::HRESULT = -2003828734i32; +pub const WINML_ERR_INVALID_DEVICE: ::windows_sys::core::HRESULT = -2003828735i32; +pub const WINML_ERR_SIZE_MISMATCH: ::windows_sys::core::HRESULT = -2003828732i32; +pub const WINML_ERR_VALUE_NOTFOUND: ::windows_sys::core::HRESULT = -2003828733i32; +pub const WINVER: u32 = 1280u32; +pub const WINVER_MAXVER: u32 = 2560u32; +pub const WPN_E_ACCESS_DENIED: ::windows_sys::core::HRESULT = -2143420137i32; +pub const WPN_E_ALL_URL_NOT_COMPLETED: ::windows_sys::core::HRESULT = -2143419901i32; +pub const WPN_E_CALLBACK_ALREADY_REGISTERED: ::windows_sys::core::HRESULT = -2143419898i32; +pub const WPN_E_CHANNEL_CLOSED: ::windows_sys::core::HRESULT = -2143420160i32; +pub const WPN_E_CHANNEL_REQUEST_NOT_COMPLETE: ::windows_sys::core::HRESULT = -2143420159i32; +pub const WPN_E_CLOUD_AUTH_UNAVAILABLE: ::windows_sys::core::HRESULT = -2143420134i32; +pub const WPN_E_CLOUD_DISABLED: ::windows_sys::core::HRESULT = -2143420151i32; +pub const WPN_E_CLOUD_DISABLED_FOR_APP: ::windows_sys::core::HRESULT = -2143419893i32; +pub const WPN_E_CLOUD_INCAPABLE: ::windows_sys::core::HRESULT = -2143420144i32; +pub const WPN_E_CLOUD_SERVICE_UNAVAILABLE: ::windows_sys::core::HRESULT = -2143420133i32; +pub const WPN_E_DEV_ID_SIZE: ::windows_sys::core::HRESULT = -2143420128i32; +pub const WPN_E_DUPLICATE_CHANNEL: ::windows_sys::core::HRESULT = -2143420156i32; +pub const WPN_E_DUPLICATE_REGISTRATION: ::windows_sys::core::HRESULT = -2143420136i32; +pub const WPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION: ::windows_sys::core::HRESULT = -2143420132i32; +pub const WPN_E_GROUP_ALPHANUMERIC: ::windows_sys::core::HRESULT = -2143419894i32; +pub const WPN_E_GROUP_SIZE: ::windows_sys::core::HRESULT = -2143419895i32; +pub const WPN_E_IMAGE_NOT_FOUND_IN_CACHE: ::windows_sys::core::HRESULT = -2143419902i32; +pub const WPN_E_INTERNET_INCAPABLE: ::windows_sys::core::HRESULT = -2143420141i32; +pub const WPN_E_INVALID_APP: ::windows_sys::core::HRESULT = -2143420158i32; +pub const WPN_E_INVALID_CLOUD_IMAGE: ::windows_sys::core::HRESULT = -2143419900i32; +pub const WPN_E_INVALID_HTTP_STATUS_CODE: ::windows_sys::core::HRESULT = -2143420117i32; +pub const WPN_E_NOTIFICATION_DISABLED: ::windows_sys::core::HRESULT = -2143420143i32; +pub const WPN_E_NOTIFICATION_HIDDEN: ::windows_sys::core::HRESULT = -2143420153i32; +pub const WPN_E_NOTIFICATION_ID_MATCHED: ::windows_sys::core::HRESULT = -2143419899i32; +pub const WPN_E_NOTIFICATION_INCAPABLE: ::windows_sys::core::HRESULT = -2143420142i32; +pub const WPN_E_NOTIFICATION_NOT_POSTED: ::windows_sys::core::HRESULT = -2143420152i32; +pub const WPN_E_NOTIFICATION_POSTED: ::windows_sys::core::HRESULT = -2143420154i32; +pub const WPN_E_NOTIFICATION_SIZE: ::windows_sys::core::HRESULT = -2143420139i32; +pub const WPN_E_NOTIFICATION_TYPE_DISABLED: ::windows_sys::core::HRESULT = -2143420140i32; +pub const WPN_E_OUTSTANDING_CHANNEL_REQUEST: ::windows_sys::core::HRESULT = -2143420157i32; +pub const WPN_E_OUT_OF_SESSION: ::windows_sys::core::HRESULT = -2143419904i32; +pub const WPN_E_PLATFORM_UNAVAILABLE: ::windows_sys::core::HRESULT = -2143420155i32; +pub const WPN_E_POWER_SAVE: ::windows_sys::core::HRESULT = -2143419903i32; +pub const WPN_E_PUSH_NOTIFICATION_INCAPABLE: ::windows_sys::core::HRESULT = -2143420135i32; +pub const WPN_E_STORAGE_LOCKED: ::windows_sys::core::HRESULT = -2143419896i32; +pub const WPN_E_TAG_ALPHANUMERIC: ::windows_sys::core::HRESULT = -2143420118i32; +pub const WPN_E_TAG_SIZE: ::windows_sys::core::HRESULT = -2143420138i32; +pub const WPN_E_TOAST_NOTIFICATION_DROPPED: ::windows_sys::core::HRESULT = -2143419897i32; +pub const WS_E_ADDRESS_IN_USE: ::windows_sys::core::HRESULT = -2143485941i32; +pub const WS_E_ADDRESS_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2143485940i32; +pub const WS_E_ENDPOINT_ACCESS_DENIED: ::windows_sys::core::HRESULT = -2143485947i32; +pub const WS_E_ENDPOINT_ACTION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2143485935i32; +pub const WS_E_ENDPOINT_DISCONNECTED: ::windows_sys::core::HRESULT = -2143485932i32; +pub const WS_E_ENDPOINT_FAILURE: ::windows_sys::core::HRESULT = -2143485937i32; +pub const WS_E_ENDPOINT_FAULT_RECEIVED: ::windows_sys::core::HRESULT = -2143485933i32; +pub const WS_E_ENDPOINT_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2143485938i32; +pub const WS_E_ENDPOINT_NOT_FOUND: ::windows_sys::core::HRESULT = -2143485939i32; +pub const WS_E_ENDPOINT_TOO_BUSY: ::windows_sys::core::HRESULT = -2143485934i32; +pub const WS_E_ENDPOINT_UNREACHABLE: ::windows_sys::core::HRESULT = -2143485936i32; +pub const WS_E_INVALID_ENDPOINT_URL: ::windows_sys::core::HRESULT = -2143485920i32; +pub const WS_E_INVALID_FORMAT: ::windows_sys::core::HRESULT = -2143485952i32; +pub const WS_E_INVALID_OPERATION: ::windows_sys::core::HRESULT = -2143485949i32; +pub const WS_E_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2143485929i32; +pub const WS_E_NO_TRANSLATION_AVAILABLE: ::windows_sys::core::HRESULT = -2143485943i32; +pub const WS_E_NUMERIC_OVERFLOW: ::windows_sys::core::HRESULT = -2143485950i32; +pub const WS_E_OBJECT_FAULTED: ::windows_sys::core::HRESULT = -2143485951i32; +pub const WS_E_OPERATION_ABANDONED: ::windows_sys::core::HRESULT = -2143485945i32; +pub const WS_E_OPERATION_ABORTED: ::windows_sys::core::HRESULT = -2143485948i32; +pub const WS_E_OPERATION_TIMED_OUT: ::windows_sys::core::HRESULT = -2143485946i32; +pub const WS_E_OTHER: ::windows_sys::core::HRESULT = -2143485919i32; +pub const WS_E_PROXY_ACCESS_DENIED: ::windows_sys::core::HRESULT = -2143485930i32; +pub const WS_E_PROXY_FAILURE: ::windows_sys::core::HRESULT = -2143485931i32; +pub const WS_E_PROXY_REQUIRES_BASIC_AUTH: ::windows_sys::core::HRESULT = -2143485928i32; +pub const WS_E_PROXY_REQUIRES_DIGEST_AUTH: ::windows_sys::core::HRESULT = -2143485927i32; +pub const WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH: ::windows_sys::core::HRESULT = -2143485925i32; +pub const WS_E_PROXY_REQUIRES_NTLM_AUTH: ::windows_sys::core::HRESULT = -2143485926i32; +pub const WS_E_QUOTA_EXCEEDED: ::windows_sys::core::HRESULT = -2143485944i32; +pub const WS_E_SECURITY_SYSTEM_FAILURE: ::windows_sys::core::HRESULT = -2143485917i32; +pub const WS_E_SECURITY_TOKEN_EXPIRED: ::windows_sys::core::HRESULT = -2143485918i32; +pub const WS_E_SECURITY_VERIFICATION_FAILURE: ::windows_sys::core::HRESULT = -2143485942i32; +pub const WS_E_SERVER_REQUIRES_BASIC_AUTH: ::windows_sys::core::HRESULT = -2143485924i32; +pub const WS_E_SERVER_REQUIRES_DIGEST_AUTH: ::windows_sys::core::HRESULT = -2143485923i32; +pub const WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH: ::windows_sys::core::HRESULT = -2143485921i32; +pub const WS_E_SERVER_REQUIRES_NTLM_AUTH: ::windows_sys::core::HRESULT = -2143485922i32; +pub const WS_S_ASYNC: ::windows_sys::core::HRESULT = 3997696i32; +pub const WS_S_END: ::windows_sys::core::HRESULT = 3997697i32; +pub const XACT_E_ABORTED: ::windows_sys::core::HRESULT = -2147168231i32; +pub const XACT_E_ABORTING: ::windows_sys::core::HRESULT = -2147168215i32; +pub const XACT_E_ALREADYINPROGRESS: ::windows_sys::core::HRESULT = -2147168232i32; +pub const XACT_E_ALREADYOTHERSINGLEPHASE: ::windows_sys::core::HRESULT = -2147168256i32; +pub const XACT_E_CANTRETAIN: ::windows_sys::core::HRESULT = -2147168255i32; +pub const XACT_E_CLERKEXISTS: ::windows_sys::core::HRESULT = -2147168127i32; +pub const XACT_E_CLERKNOTFOUND: ::windows_sys::core::HRESULT = -2147168128i32; +pub const XACT_E_COMMITFAILED: ::windows_sys::core::HRESULT = -2147168254i32; +pub const XACT_E_COMMITPREVENTED: ::windows_sys::core::HRESULT = -2147168253i32; +pub const XACT_E_CONNECTION_DENIED: ::windows_sys::core::HRESULT = -2147168227i32; +pub const XACT_E_CONNECTION_DOWN: ::windows_sys::core::HRESULT = -2147168228i32; +pub const XACT_E_DEST_TMNOTAVAILABLE: ::windows_sys::core::HRESULT = -2147168222i32; +pub const XACT_E_FIRST: u32 = 2147799040u32; +pub const XACT_E_HEURISTICABORT: ::windows_sys::core::HRESULT = -2147168252i32; +pub const XACT_E_HEURISTICCOMMIT: ::windows_sys::core::HRESULT = -2147168251i32; +pub const XACT_E_HEURISTICDAMAGE: ::windows_sys::core::HRESULT = -2147168250i32; +pub const XACT_E_HEURISTICDANGER: ::windows_sys::core::HRESULT = -2147168249i32; +pub const XACT_E_INDOUBT: ::windows_sys::core::HRESULT = -2147168234i32; +pub const XACT_E_INVALIDCOOKIE: ::windows_sys::core::HRESULT = -2147168235i32; +pub const XACT_E_INVALIDLSN: ::windows_sys::core::HRESULT = -2147168124i32; +pub const XACT_E_ISOLATIONLEVEL: ::windows_sys::core::HRESULT = -2147168248i32; +pub const XACT_E_LAST: u32 = 2147799083u32; +pub const XACT_E_LOGFULL: ::windows_sys::core::HRESULT = -2147168230i32; +pub const XACT_E_LU_TX_DISABLED: ::windows_sys::core::HRESULT = -2147168212i32; +pub const XACT_E_NETWORK_TX_DISABLED: ::windows_sys::core::HRESULT = -2147168220i32; +pub const XACT_E_NOASYNC: ::windows_sys::core::HRESULT = -2147168247i32; +pub const XACT_E_NOENLIST: ::windows_sys::core::HRESULT = -2147168246i32; +pub const XACT_E_NOIMPORTOBJECT: ::windows_sys::core::HRESULT = -2147168236i32; +pub const XACT_E_NOISORETAIN: ::windows_sys::core::HRESULT = -2147168245i32; +pub const XACT_E_NORESOURCE: ::windows_sys::core::HRESULT = -2147168244i32; +pub const XACT_E_NOTCURRENT: ::windows_sys::core::HRESULT = -2147168243i32; +pub const XACT_E_NOTIMEOUT: ::windows_sys::core::HRESULT = -2147168233i32; +pub const XACT_E_NOTRANSACTION: ::windows_sys::core::HRESULT = -2147168242i32; +pub const XACT_E_NOTSUPPORTED: ::windows_sys::core::HRESULT = -2147168241i32; +pub const XACT_E_PARTNER_NETWORK_TX_DISABLED: ::windows_sys::core::HRESULT = -2147168219i32; +pub const XACT_E_PULL_COMM_FAILURE: ::windows_sys::core::HRESULT = -2147168213i32; +pub const XACT_E_PUSH_COMM_FAILURE: ::windows_sys::core::HRESULT = -2147168214i32; +pub const XACT_E_RECOVERYINPROGRESS: ::windows_sys::core::HRESULT = -2147168126i32; +pub const XACT_E_REENLISTTIMEOUT: ::windows_sys::core::HRESULT = -2147168226i32; +pub const XACT_E_REPLAYREQUEST: ::windows_sys::core::HRESULT = -2147168123i32; +pub const XACT_E_TIP_CONNECT_FAILED: ::windows_sys::core::HRESULT = -2147168225i32; +pub const XACT_E_TIP_DISABLED: ::windows_sys::core::HRESULT = -2147168221i32; +pub const XACT_E_TIP_PROTOCOL_ERROR: ::windows_sys::core::HRESULT = -2147168224i32; +pub const XACT_E_TIP_PULL_FAILED: ::windows_sys::core::HRESULT = -2147168223i32; +pub const XACT_E_TMNOTAVAILABLE: ::windows_sys::core::HRESULT = -2147168229i32; +pub const XACT_E_TRANSACTIONCLOSED: ::windows_sys::core::HRESULT = -2147168125i32; +pub const XACT_E_UNABLE_TO_LOAD_DTC_PROXY: ::windows_sys::core::HRESULT = -2147168216i32; +pub const XACT_E_UNABLE_TO_READ_DTC_CONFIG: ::windows_sys::core::HRESULT = -2147168217i32; +pub const XACT_E_UNKNOWNRMGRID: ::windows_sys::core::HRESULT = -2147168240i32; +pub const XACT_E_WRONGSTATE: ::windows_sys::core::HRESULT = -2147168239i32; +pub const XACT_E_WRONGUOW: ::windows_sys::core::HRESULT = -2147168238i32; +pub const XACT_E_XA_TX_DISABLED: ::windows_sys::core::HRESULT = -2147168218i32; +pub const XACT_E_XTIONEXISTS: ::windows_sys::core::HRESULT = -2147168237i32; +pub const XACT_S_ABORTING: ::windows_sys::core::HRESULT = 315400i32; +pub const XACT_S_ALLNORETAIN: ::windows_sys::core::HRESULT = 315399i32; +pub const XACT_S_ASYNC: ::windows_sys::core::HRESULT = 315392i32; +pub const XACT_S_DEFECT: ::windows_sys::core::HRESULT = 315393i32; +pub const XACT_S_FIRST: u32 = 315392u32; +pub const XACT_S_LAST: u32 = 315408u32; +pub const XACT_S_LASTRESOURCEMANAGER: ::windows_sys::core::HRESULT = 315408i32; +pub const XACT_S_LOCALLY_OK: ::windows_sys::core::HRESULT = 315402i32; +pub const XACT_S_MADECHANGESCONTENT: ::windows_sys::core::HRESULT = 315397i32; +pub const XACT_S_MADECHANGESINFORM: ::windows_sys::core::HRESULT = 315398i32; +pub const XACT_S_OKINFORM: ::windows_sys::core::HRESULT = 315396i32; +pub const XACT_S_READONLY: ::windows_sys::core::HRESULT = 315394i32; +pub const XACT_S_SINGLEPHASE: ::windows_sys::core::HRESULT = 315401i32; +pub const XACT_S_SOMENORETAIN: ::windows_sys::core::HRESULT = 315395i32; +pub const XENROLL_E_CANNOT_ADD_ROOT_CERT: ::windows_sys::core::HRESULT = -2146873343i32; +pub const XENROLL_E_KEYSPEC_SMIME_MISMATCH: ::windows_sys::core::HRESULT = -2146873339i32; +pub const XENROLL_E_KEY_NOT_EXPORTABLE: ::windows_sys::core::HRESULT = -2146873344i32; +pub const XENROLL_E_RESPONSE_KA_HASH_MISMATCH: ::windows_sys::core::HRESULT = -2146873340i32; +pub const XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND: ::windows_sys::core::HRESULT = -2146873342i32; +pub const XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH: ::windows_sys::core::HRESULT = -2146873341i32; +pub const _WIN32_IE_MAXVER: u32 = 2560u32; +pub const _WIN32_MAXVER: u32 = 2560u32; +pub const _WIN32_WINDOWS_MAXVER: u32 = 2560u32; +pub const _WIN32_WINNT_MAXVER: u32 = 2560u32; +pub type DUPLICATE_HANDLE_OPTIONS = u32; +pub type GENERIC_ACCESS_RIGHTS = u32; +pub type HANDLE_FLAGS = u32; +pub type NTSTATUS_FACILITY_CODE = u32; +pub type NTSTATUS_SEVERITY_CODE = u32; +pub type WAIT_EVENT = u32; +pub type WIN32_ERROR = u32; +#[repr(C)] +pub struct APP_LOCAL_DEVICE_ID { + pub value: [u8; 32], +} +impl ::core::marker::Copy for APP_LOCAL_DEVICE_ID {} +impl ::core::clone::Clone for APP_LOCAL_DEVICE_ID { + fn clone(&self) -> Self { + *self + } +} +pub type BOOL = i32; +pub type BOOLEAN = u8; +pub type COLORREF = u32; +#[repr(C)] +pub struct DECIMAL { + pub wReserved: u16, + pub Anonymous1: DECIMAL_0, + pub Hi32: u32, + pub Anonymous2: DECIMAL_1, +} +impl ::core::marker::Copy for DECIMAL {} +impl ::core::clone::Clone for DECIMAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DECIMAL_0 { + pub Anonymous: DECIMAL_0_0, + pub signscale: u16, +} +impl ::core::marker::Copy for DECIMAL_0 {} +impl ::core::clone::Clone for DECIMAL_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DECIMAL_0_0 { + pub scale: u8, + pub sign: u8, +} +impl ::core::marker::Copy for DECIMAL_0_0 {} +impl ::core::clone::Clone for DECIMAL_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DECIMAL_1 { + pub Anonymous: DECIMAL_1_0, + pub Lo64: u64, +} +impl ::core::marker::Copy for DECIMAL_1 {} +impl ::core::clone::Clone for DECIMAL_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DECIMAL_1_0 { + pub Lo32: u32, + pub Mid32: u32, +} +impl ::core::marker::Copy for DECIMAL_1_0 {} +impl ::core::clone::Clone for DECIMAL_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILETIME { + pub dwLowDateTime: u32, + pub dwHighDateTime: u32, +} +impl ::core::marker::Copy for FILETIME {} +impl ::core::clone::Clone for FILETIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLOAT128 { + pub LowPart: i64, + pub HighPart: i64, +} +impl ::core::marker::Copy for FLOAT128 {} +impl ::core::clone::Clone for FLOAT128 { + fn clone(&self) -> Self { + *self + } +} +pub type HANDLE = isize; +pub type HANDLE_PTR = usize; +pub type HGLOBAL = *mut ::core::ffi::c_void; +pub type HINSTANCE = isize; +pub type HLOCAL = *mut ::core::ffi::c_void; +pub type HLSURF = isize; +pub type HMODULE = isize; +pub type HRSRC = isize; +pub type HSPRITE = isize; +pub type HSTR = isize; +pub type HUMPD = isize; +pub type HWND = isize; +pub type LPARAM = isize; +pub type LRESULT = isize; +#[repr(C)] +pub struct LUID { + pub LowPart: u32, + pub HighPart: i32, +} +impl ::core::marker::Copy for LUID {} +impl ::core::clone::Clone for LUID { + fn clone(&self) -> Self { + *self + } +} +pub type NTSTATUS = i32; +#[repr(C)] +pub struct POINT { + pub x: i32, + pub y: i32, +} +impl ::core::marker::Copy for POINT {} +impl ::core::clone::Clone for POINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POINTL { + pub x: i32, + pub y: i32, +} +impl ::core::marker::Copy for POINTL {} +impl ::core::clone::Clone for POINTL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POINTS { + pub x: i16, + pub y: i16, +} +impl ::core::marker::Copy for POINTS {} +impl ::core::clone::Clone for POINTS { + fn clone(&self) -> Self { + *self + } +} +pub type PSID = *mut ::core::ffi::c_void; +#[repr(C)] +pub struct RECT { + pub left: i32, + pub top: i32, + pub right: i32, + pub bottom: i32, +} +impl ::core::marker::Copy for RECT {} +impl ::core::clone::Clone for RECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECTL { + pub left: i32, + pub top: i32, + pub right: i32, + pub bottom: i32, +} +impl ::core::marker::Copy for RECTL {} +impl ::core::clone::Clone for RECTL { + fn clone(&self) -> Self { + *self + } +} +pub type SHANDLE_PTR = isize; +#[repr(C)] +pub struct SIZE { + pub cx: i32, + pub cy: i32, +} +impl ::core::marker::Copy for SIZE {} +impl ::core::clone::Clone for SIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEMTIME { + pub wYear: u16, + pub wMonth: u16, + pub wDayOfWeek: u16, + pub wDay: u16, + pub wHour: u16, + pub wMinute: u16, + pub wSecond: u16, + pub wMilliseconds: u16, +} +impl ::core::marker::Copy for SYSTEMTIME {} +impl ::core::clone::Clone for SYSTEMTIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UNICODE_STRING { + pub Length: u16, + pub MaximumLength: u16, + pub Buffer: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for UNICODE_STRING {} +impl ::core::clone::Clone for UNICODE_STRING { + fn clone(&self) -> Self { + *self + } +} +pub type VARIANT_BOOL = i16; +pub type WPARAM = usize; +pub type FARPROC = ::core::option::Option isize>; +pub type NEARPROC = ::core::option::Option isize>; +pub type PAPCFUNC = ::core::option::Option ()>; +pub type PROC = ::core::option::Option isize>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Gaming/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Gaming/mod.rs new file mode 100644 index 000000000..c02f6d375 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Gaming/mod.rs @@ -0,0 +1,117 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckGamingPrivilegeSilently(privilegeid : u32, scope : ::windows_sys::core::HSTRING, policy : ::windows_sys::core::HSTRING, hasprivilege : *mut super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckGamingPrivilegeSilentlyForUser(user : ::windows_sys::core::IInspectable, privilegeid : u32, scope : ::windows_sys::core::HSTRING, policy : ::windows_sys::core::HSTRING, hasprivilege : *mut super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-1.dll" "system" fn CheckGamingPrivilegeWithUI(privilegeid : u32, scope : ::windows_sys::core::HSTRING, policy : ::windows_sys::core::HSTRING, friendlymessage : ::windows_sys::core::HSTRING, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-2.dll" "system" fn CheckGamingPrivilegeWithUIForUser(user : ::windows_sys::core::IInspectable, privilegeid : u32, scope : ::windows_sys::core::HSTRING, policy : ::windows_sys::core::HSTRING, friendlymessage : ::windows_sys::core::HSTRING, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-expandedresources-l1-1-0.dll" "system" fn GetExpandedResourceExclusiveCpuCount(exclusivecpucount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-deviceinformation-l1-1-0.dll" "system" fn GetGamingDeviceModelInformation(information : *mut GAMING_DEVICE_MODEL_INFORMATION) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-gaming-expandedresources-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HasExpandedResources(hasexpandedresources : *mut super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ProcessPendingGameUI(waitforcompletion : super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-expandedresources-l1-1-0.dll" "system" fn ReleaseExclusiveCpuSets() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-0.dll" "system" fn ShowChangeFriendRelationshipUI(targetuserxuid : ::windows_sys::core::HSTRING, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-2.dll" "system" fn ShowChangeFriendRelationshipUIForUser(user : ::windows_sys::core::IInspectable, targetuserxuid : ::windows_sys::core::HSTRING, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-4.dll" "system" fn ShowCustomizeUserProfileUI(completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-4.dll" "system" fn ShowCustomizeUserProfileUIForUser(user : ::windows_sys::core::IInspectable, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-4.dll" "system" fn ShowFindFriendsUI(completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-4.dll" "system" fn ShowFindFriendsUIForUser(user : ::windows_sys::core::IInspectable, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-4.dll" "system" fn ShowGameInfoUI(titleid : u32, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-4.dll" "system" fn ShowGameInfoUIForUser(user : ::windows_sys::core::IInspectable, titleid : u32, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-0.dll" "system" fn ShowGameInviteUI(serviceconfigurationid : ::windows_sys::core::HSTRING, sessiontemplatename : ::windows_sys::core::HSTRING, sessionid : ::windows_sys::core::HSTRING, invitationdisplaytext : ::windows_sys::core::HSTRING, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-2.dll" "system" fn ShowGameInviteUIForUser(user : ::windows_sys::core::IInspectable, serviceconfigurationid : ::windows_sys::core::HSTRING, sessiontemplatename : ::windows_sys::core::HSTRING, sessionid : ::windows_sys::core::HSTRING, invitationdisplaytext : ::windows_sys::core::HSTRING, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-3.dll" "system" fn ShowGameInviteUIWithContext(serviceconfigurationid : ::windows_sys::core::HSTRING, sessiontemplatename : ::windows_sys::core::HSTRING, sessionid : ::windows_sys::core::HSTRING, invitationdisplaytext : ::windows_sys::core::HSTRING, customactivationcontext : ::windows_sys::core::HSTRING, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-3.dll" "system" fn ShowGameInviteUIWithContextForUser(user : ::windows_sys::core::IInspectable, serviceconfigurationid : ::windows_sys::core::HSTRING, sessiontemplatename : ::windows_sys::core::HSTRING, sessionid : ::windows_sys::core::HSTRING, invitationdisplaytext : ::windows_sys::core::HSTRING, customactivationcontext : ::windows_sys::core::HSTRING, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-0.dll" "system" fn ShowPlayerPickerUI(promptdisplaytext : ::windows_sys::core::HSTRING, xuids : *const ::windows_sys::core::HSTRING, xuidscount : usize, preselectedxuids : *const ::windows_sys::core::HSTRING, preselectedxuidscount : usize, minselectioncount : usize, maxselectioncount : usize, completionroutine : PlayerPickerUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-2.dll" "system" fn ShowPlayerPickerUIForUser(user : ::windows_sys::core::IInspectable, promptdisplaytext : ::windows_sys::core::HSTRING, xuids : *const ::windows_sys::core::HSTRING, xuidscount : usize, preselectedxuids : *const ::windows_sys::core::HSTRING, preselectedxuidscount : usize, minselectioncount : usize, maxselectioncount : usize, completionroutine : PlayerPickerUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-0.dll" "system" fn ShowProfileCardUI(targetuserxuid : ::windows_sys::core::HSTRING, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-2.dll" "system" fn ShowProfileCardUIForUser(user : ::windows_sys::core::IInspectable, targetuserxuid : ::windows_sys::core::HSTRING, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-0.dll" "system" fn ShowTitleAchievementsUI(titleid : u32, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-2.dll" "system" fn ShowTitleAchievementsUIForUser(user : ::windows_sys::core::IInspectable, titleid : u32, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-4.dll" "system" fn ShowUserSettingsUI(completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-4.dll" "system" fn ShowUserSettingsUIForUser(user : ::windows_sys::core::IInspectable, completionroutine : GameUICompletionRoutine, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-gaming-tcui-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TryCancelPendingGameUI() -> super::Foundation:: BOOL); +pub type IGameExplorer = *mut ::core::ffi::c_void; +pub type IGameExplorer2 = *mut ::core::ffi::c_void; +pub type IGameStatistics = *mut ::core::ffi::c_void; +pub type IGameStatisticsMgr = *mut ::core::ffi::c_void; +pub type IXblIdpAuthManager = *mut ::core::ffi::c_void; +pub type IXblIdpAuthManager2 = *mut ::core::ffi::c_void; +pub type IXblIdpAuthTokenResult = *mut ::core::ffi::c_void; +pub type IXblIdpAuthTokenResult2 = *mut ::core::ffi::c_void; +pub const GAMESTATS_OPEN_CREATED: GAMESTATS_OPEN_RESULT = 0i32; +pub const GAMESTATS_OPEN_OPENED: GAMESTATS_OPEN_RESULT = 1i32; +pub const GAMESTATS_OPEN_OPENONLY: GAMESTATS_OPEN_TYPE = 1i32; +pub const GAMESTATS_OPEN_OPENORCREATE: GAMESTATS_OPEN_TYPE = 0i32; +pub const GAMING_DEVICE_DEVICE_ID_NONE: GAMING_DEVICE_DEVICE_ID = 0i32; +pub const GAMING_DEVICE_DEVICE_ID_XBOX_ONE: GAMING_DEVICE_DEVICE_ID = 1988865574i32; +pub const GAMING_DEVICE_DEVICE_ID_XBOX_ONE_S: GAMING_DEVICE_DEVICE_ID = 712204761i32; +pub const GAMING_DEVICE_DEVICE_ID_XBOX_ONE_X: GAMING_DEVICE_DEVICE_ID = 1523980231i32; +pub const GAMING_DEVICE_DEVICE_ID_XBOX_ONE_X_DEVKIT: GAMING_DEVICE_DEVICE_ID = 284675555i32; +pub const GAMING_DEVICE_DEVICE_ID_XBOX_SERIES_S: GAMING_DEVICE_DEVICE_ID = 489159355i32; +pub const GAMING_DEVICE_DEVICE_ID_XBOX_SERIES_X: GAMING_DEVICE_DEVICE_ID = 796540415i32; +pub const GAMING_DEVICE_DEVICE_ID_XBOX_SERIES_X_DEVKIT: GAMING_DEVICE_DEVICE_ID = -561359263i32; +pub const GAMING_DEVICE_VENDOR_ID_MICROSOFT: GAMING_DEVICE_VENDOR_ID = -1024700366i32; +pub const GAMING_DEVICE_VENDOR_ID_NONE: GAMING_DEVICE_VENDOR_ID = 0i32; +pub const GIS_ALL_USERS: GAME_INSTALL_SCOPE = 3i32; +pub const GIS_CURRENT_USER: GAME_INSTALL_SCOPE = 2i32; +pub const GIS_NOT_INSTALLED: GAME_INSTALL_SCOPE = 1i32; +pub const GameExplorer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9a5ea990_3034_4d6f_9128_01f3c61022bc); +pub const GameStatistics: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdbc85a2c_c0dc_4961_b6e2_d28b62c11ad4); +pub const ID_GDF_THUMBNAIL_STR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("__GDF_THUMBNAIL"); +pub const ID_GDF_XML_STR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("__GDF_XML"); +pub const XBL_IDP_AUTH_TOKEN_STATUS_LOAD_MSA_ACCOUNT_FAILED: XBL_IDP_AUTH_TOKEN_STATUS = 3i32; +pub const XBL_IDP_AUTH_TOKEN_STATUS_MSA_INTERRUPT: XBL_IDP_AUTH_TOKEN_STATUS = 5i32; +pub const XBL_IDP_AUTH_TOKEN_STATUS_NO_ACCOUNT_SET: XBL_IDP_AUTH_TOKEN_STATUS = 2i32; +pub const XBL_IDP_AUTH_TOKEN_STATUS_OFFLINE_NO_CONSENT: XBL_IDP_AUTH_TOKEN_STATUS = 6i32; +pub const XBL_IDP_AUTH_TOKEN_STATUS_OFFLINE_SUCCESS: XBL_IDP_AUTH_TOKEN_STATUS = 1i32; +pub const XBL_IDP_AUTH_TOKEN_STATUS_SUCCESS: XBL_IDP_AUTH_TOKEN_STATUS = 0i32; +pub const XBL_IDP_AUTH_TOKEN_STATUS_UNKNOWN: XBL_IDP_AUTH_TOKEN_STATUS = -1i32; +pub const XBL_IDP_AUTH_TOKEN_STATUS_VIEW_NOT_SET: XBL_IDP_AUTH_TOKEN_STATUS = 7i32; +pub const XBL_IDP_AUTH_TOKEN_STATUS_XBOX_VETO: XBL_IDP_AUTH_TOKEN_STATUS = 4i32; +pub const XPRIVILEGE_ADD_FRIEND: KnownGamingPrivileges = 255i32; +pub const XPRIVILEGE_BROADCAST: KnownGamingPrivileges = 190i32; +pub const XPRIVILEGE_CLOUD_GAMING_JOIN_SESSION: KnownGamingPrivileges = 208i32; +pub const XPRIVILEGE_CLOUD_GAMING_MANAGE_SESSION: KnownGamingPrivileges = 207i32; +pub const XPRIVILEGE_CLOUD_SAVED_GAMES: KnownGamingPrivileges = 209i32; +pub const XPRIVILEGE_COMMUNICATIONS: KnownGamingPrivileges = 252i32; +pub const XPRIVILEGE_COMMUNICATION_VOICE_INGAME: KnownGamingPrivileges = 205i32; +pub const XPRIVILEGE_COMMUNICATION_VOICE_SKYPE: KnownGamingPrivileges = 206i32; +pub const XPRIVILEGE_GAME_DVR: KnownGamingPrivileges = 198i32; +pub const XPRIVILEGE_MULTIPLAYER_PARTIES: KnownGamingPrivileges = 203i32; +pub const XPRIVILEGE_MULTIPLAYER_SESSIONS: KnownGamingPrivileges = 254i32; +pub const XPRIVILEGE_PREMIUM_CONTENT: KnownGamingPrivileges = 214i32; +pub const XPRIVILEGE_PREMIUM_VIDEO: KnownGamingPrivileges = 224i32; +pub const XPRIVILEGE_PROFILE_VIEWING: KnownGamingPrivileges = 249i32; +pub const XPRIVILEGE_PURCHASE_CONTENT: KnownGamingPrivileges = 245i32; +pub const XPRIVILEGE_SHARE_CONTENT: KnownGamingPrivileges = 211i32; +pub const XPRIVILEGE_SHARE_KINECT_CONTENT: KnownGamingPrivileges = 199i32; +pub const XPRIVILEGE_SOCIAL_NETWORK_SHARING: KnownGamingPrivileges = 220i32; +pub const XPRIVILEGE_SUBSCRIPTION_CONTENT: KnownGamingPrivileges = 219i32; +pub const XPRIVILEGE_USER_CREATED_CONTENT: KnownGamingPrivileges = 247i32; +pub const XPRIVILEGE_VIDEO_COMMUNICATIONS: KnownGamingPrivileges = 235i32; +pub const XPRIVILEGE_VIEW_FRIENDS_LIST: KnownGamingPrivileges = 197i32; +pub const XblIdpAuthManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xce23534b_56d8_4978_86a2_7ee570640468); +pub const XblIdpAuthTokenResult: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9f493441_744a_410c_ae2b_9a22f7c7731f); +pub type GAMESTATS_OPEN_RESULT = i32; +pub type GAMESTATS_OPEN_TYPE = i32; +pub type GAME_INSTALL_SCOPE = i32; +pub type GAMING_DEVICE_DEVICE_ID = i32; +pub type GAMING_DEVICE_VENDOR_ID = i32; +pub type KnownGamingPrivileges = i32; +pub type XBL_IDP_AUTH_TOKEN_STATUS = i32; +#[repr(C)] +pub struct GAMING_DEVICE_MODEL_INFORMATION { + pub vendorId: GAMING_DEVICE_VENDOR_ID, + pub deviceId: GAMING_DEVICE_DEVICE_ID, +} +impl ::core::marker::Copy for GAMING_DEVICE_MODEL_INFORMATION {} +impl ::core::clone::Clone for GAMING_DEVICE_MODEL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +pub type GameUICompletionRoutine = ::core::option::Option ()>; +pub type PlayerPickerUICompletionRoutine = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Globalization/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Globalization/mod.rs new file mode 100644 index 000000000..7040f7584 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Globalization/mod.rs @@ -0,0 +1,5559 @@ +::windows_targets::link!("kernel32.dll" "system" fn CompareStringA(locale : u32, dwcmpflags : u32, lpstring1 : *const i8, cchcount1 : i32, lpstring2 : *const i8, cchcount2 : i32) -> COMPARESTRING_RESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CompareStringEx(lplocalename : ::windows_sys::core::PCWSTR, dwcmpflags : COMPARE_STRING_FLAGS, lpstring1 : ::windows_sys::core::PCWSTR, cchcount1 : i32, lpstring2 : ::windows_sys::core::PCWSTR, cchcount2 : i32, lpversioninformation : *const NLSVERSIONINFO, lpreserved : *const ::core::ffi::c_void, lparam : super::Foundation:: LPARAM) -> COMPARESTRING_RESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CompareStringOrdinal(lpstring1 : ::windows_sys::core::PCWSTR, cchcount1 : i32, lpstring2 : ::windows_sys::core::PCWSTR, cchcount2 : i32, bignorecase : super::Foundation:: BOOL) -> COMPARESTRING_RESULT); +::windows_targets::link!("kernel32.dll" "system" fn CompareStringW(locale : u32, dwcmpflags : u32, lpstring1 : ::windows_sys::core::PCWSTR, cchcount1 : i32, lpstring2 : ::windows_sys::core::PCWSTR, cchcount2 : i32) -> COMPARESTRING_RESULT); +::windows_targets::link!("kernel32.dll" "system" fn ConvertDefaultLocale(locale : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumCalendarInfoA(lpcalinfoenumproc : CALINFO_ENUMPROCA, locale : u32, calendar : u32, caltype : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumCalendarInfoExA(lpcalinfoenumprocex : CALINFO_ENUMPROCEXA, locale : u32, calendar : u32, caltype : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumCalendarInfoExEx(pcalinfoenumprocexex : CALINFO_ENUMPROCEXEX, lplocalename : ::windows_sys::core::PCWSTR, calendar : u32, lpreserved : ::windows_sys::core::PCWSTR, caltype : u32, lparam : super::Foundation:: LPARAM) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumCalendarInfoExW(lpcalinfoenumprocex : CALINFO_ENUMPROCEXW, locale : u32, calendar : u32, caltype : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumCalendarInfoW(lpcalinfoenumproc : CALINFO_ENUMPROCW, locale : u32, calendar : u32, caltype : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDateFormatsA(lpdatefmtenumproc : DATEFMT_ENUMPROCA, locale : u32, dwflags : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDateFormatsExA(lpdatefmtenumprocex : DATEFMT_ENUMPROCEXA, locale : u32, dwflags : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDateFormatsExEx(lpdatefmtenumprocexex : DATEFMT_ENUMPROCEXEX, lplocalename : ::windows_sys::core::PCWSTR, dwflags : ENUM_DATE_FORMATS_FLAGS, lparam : super::Foundation:: LPARAM) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDateFormatsExW(lpdatefmtenumprocex : DATEFMT_ENUMPROCEXW, locale : u32, dwflags : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDateFormatsW(lpdatefmtenumproc : DATEFMT_ENUMPROCW, locale : u32, dwflags : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumLanguageGroupLocalesA(lplanggrouplocaleenumproc : LANGGROUPLOCALE_ENUMPROCA, languagegroup : u32, dwflags : u32, lparam : isize) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumLanguageGroupLocalesW(lplanggrouplocaleenumproc : LANGGROUPLOCALE_ENUMPROCW, languagegroup : u32, dwflags : u32, lparam : isize) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumSystemCodePagesA(lpcodepageenumproc : CODEPAGE_ENUMPROCA, dwflags : ENUM_SYSTEM_CODE_PAGES_FLAGS) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumSystemCodePagesW(lpcodepageenumproc : CODEPAGE_ENUMPROCW, dwflags : ENUM_SYSTEM_CODE_PAGES_FLAGS) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumSystemGeoID(geoclass : u32, parentgeoid : i32, lpgeoenumproc : GEO_ENUMPROC) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumSystemGeoNames(geoclass : u32, geoenumproc : GEO_ENUMNAMEPROC, data : super::Foundation:: LPARAM) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumSystemLanguageGroupsA(lplanguagegroupenumproc : LANGUAGEGROUP_ENUMPROCA, dwflags : ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS, lparam : isize) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumSystemLanguageGroupsW(lplanguagegroupenumproc : LANGUAGEGROUP_ENUMPROCW, dwflags : ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS, lparam : isize) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumSystemLocalesA(lplocaleenumproc : LOCALE_ENUMPROCA, dwflags : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumSystemLocalesEx(lplocaleenumprocex : LOCALE_ENUMPROCEX, dwflags : u32, lparam : super::Foundation:: LPARAM, lpreserved : *const ::core::ffi::c_void) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumSystemLocalesW(lplocaleenumproc : LOCALE_ENUMPROCW, dwflags : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumTimeFormatsA(lptimefmtenumproc : TIMEFMT_ENUMPROCA, locale : u32, dwflags : TIME_FORMAT_FLAGS) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumTimeFormatsEx(lptimefmtenumprocex : TIMEFMT_ENUMPROCEX, lplocalename : ::windows_sys::core::PCWSTR, dwflags : u32, lparam : super::Foundation:: LPARAM) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumTimeFormatsW(lptimefmtenumproc : TIMEFMT_ENUMPROCW, locale : u32, dwflags : TIME_FORMAT_FLAGS) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumUILanguagesA(lpuilanguageenumproc : UILANGUAGE_ENUMPROCA, dwflags : u32, lparam : isize) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumUILanguagesW(lpuilanguageenumproc : UILANGUAGE_ENUMPROCW, dwflags : u32, lparam : isize) -> super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn FindNLSString(locale : u32, dwfindnlsstringflags : u32, lpstringsource : ::windows_sys::core::PCWSTR, cchsource : i32, lpstringvalue : ::windows_sys::core::PCWSTR, cchvalue : i32, pcchfound : *mut i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNLSStringEx(lplocalename : ::windows_sys::core::PCWSTR, dwfindnlsstringflags : u32, lpstringsource : ::windows_sys::core::PCWSTR, cchsource : i32, lpstringvalue : ::windows_sys::core::PCWSTR, cchvalue : i32, pcchfound : *mut i32, lpversioninformation : *const NLSVERSIONINFO, lpreserved : *const ::core::ffi::c_void, sorthandle : super::Foundation:: LPARAM) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindStringOrdinal(dwfindstringordinalflags : u32, lpstringsource : ::windows_sys::core::PCWSTR, cchsource : i32, lpstringvalue : ::windows_sys::core::PCWSTR, cchvalue : i32, bignorecase : super::Foundation:: BOOL) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn FoldStringA(dwmapflags : FOLD_STRING_MAP_FLAGS, lpsrcstr : ::windows_sys::core::PCSTR, cchsrc : i32, lpdeststr : ::windows_sys::core::PSTR, cchdest : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn FoldStringW(dwmapflags : FOLD_STRING_MAP_FLAGS, lpsrcstr : ::windows_sys::core::PCWSTR, cchsrc : i32, lpdeststr : ::windows_sys::core::PWSTR, cchdest : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetACP() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCPInfo(codepage : u32, lpcpinfo : *mut CPINFO) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCPInfoExA(codepage : u32, dwflags : u32, lpcpinfoex : *mut CPINFOEXA) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCPInfoExW(codepage : u32, dwflags : u32, lpcpinfoex : *mut CPINFOEXW) -> super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetCalendarInfoA(locale : u32, calendar : u32, caltype : u32, lpcaldata : ::windows_sys::core::PSTR, cchdata : i32, lpvalue : *mut u32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetCalendarInfoEx(lplocalename : ::windows_sys::core::PCWSTR, calendar : u32, lpreserved : ::windows_sys::core::PCWSTR, caltype : u32, lpcaldata : ::windows_sys::core::PWSTR, cchdata : i32, lpvalue : *mut u32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetCalendarInfoW(locale : u32, calendar : u32, caltype : u32, lpcaldata : ::windows_sys::core::PWSTR, cchdata : i32, lpvalue : *mut u32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetCurrencyFormatA(locale : u32, dwflags : u32, lpvalue : ::windows_sys::core::PCSTR, lpformat : *const CURRENCYFMTA, lpcurrencystr : ::windows_sys::core::PSTR, cchcurrency : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetCurrencyFormatEx(lplocalename : ::windows_sys::core::PCWSTR, dwflags : u32, lpvalue : ::windows_sys::core::PCWSTR, lpformat : *const CURRENCYFMTW, lpcurrencystr : ::windows_sys::core::PWSTR, cchcurrency : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetCurrencyFormatW(locale : u32, dwflags : u32, lpvalue : ::windows_sys::core::PCWSTR, lpformat : *const CURRENCYFMTW, lpcurrencystr : ::windows_sys::core::PWSTR, cchcurrency : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDateFormatA(locale : u32, dwflags : u32, lpdate : *const super::Foundation:: SYSTEMTIME, lpformat : ::windows_sys::core::PCSTR, lpdatestr : ::windows_sys::core::PSTR, cchdate : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDateFormatEx(lplocalename : ::windows_sys::core::PCWSTR, dwflags : ENUM_DATE_FORMATS_FLAGS, lpdate : *const super::Foundation:: SYSTEMTIME, lpformat : ::windows_sys::core::PCWSTR, lpdatestr : ::windows_sys::core::PWSTR, cchdate : i32, lpcalendar : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDateFormatW(locale : u32, dwflags : u32, lpdate : *const super::Foundation:: SYSTEMTIME, lpformat : ::windows_sys::core::PCWSTR, lpdatestr : ::windows_sys::core::PWSTR, cchdate : i32) -> i32); +::windows_targets::link!("bcp47mrm.dll" "system" fn GetDistanceOfClosestLanguageInList(pszlanguage : ::windows_sys::core::PCWSTR, pszlanguageslist : ::windows_sys::core::PCWSTR, wchlistdelimiter : u16, pclosestdistance : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDurationFormat(locale : u32, dwflags : u32, lpduration : *const super::Foundation:: SYSTEMTIME, ullduration : u64, lpformat : ::windows_sys::core::PCWSTR, lpdurationstr : ::windows_sys::core::PWSTR, cchduration : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDurationFormatEx(lplocalename : ::windows_sys::core::PCWSTR, dwflags : u32, lpduration : *const super::Foundation:: SYSTEMTIME, ullduration : u64, lpformat : ::windows_sys::core::PCWSTR, lpdurationstr : ::windows_sys::core::PWSTR, cchduration : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileMUIInfo(dwflags : u32, pcwszfilepath : ::windows_sys::core::PCWSTR, pfilemuiinfo : *mut FILEMUIINFO, pcbfilemuiinfo : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileMUIPath(dwflags : u32, pcwszfilepath : ::windows_sys::core::PCWSTR, pwszlanguage : ::windows_sys::core::PWSTR, pcchlanguage : *mut u32, pwszfilemuipath : ::windows_sys::core::PWSTR, pcchfilemuipath : *mut u32, pululenumerator : *mut u64) -> super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetGeoInfoA(location : i32, geotype : SYSGEOTYPE, lpgeodata : ::windows_sys::core::PSTR, cchdata : i32, langid : u16) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetGeoInfoEx(location : ::windows_sys::core::PCWSTR, geotype : SYSGEOTYPE, geodata : ::windows_sys::core::PWSTR, geodatacount : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetGeoInfoW(location : i32, geotype : SYSGEOTYPE, lpgeodata : ::windows_sys::core::PWSTR, cchdata : i32, langid : u16) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetLocaleInfoA(locale : u32, lctype : u32, lplcdata : ::windows_sys::core::PSTR, cchdata : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetLocaleInfoEx(lplocalename : ::windows_sys::core::PCWSTR, lctype : u32, lplcdata : ::windows_sys::core::PWSTR, cchdata : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetLocaleInfoW(locale : u32, lctype : u32, lplcdata : ::windows_sys::core::PWSTR, cchdata : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNLSVersion(function : u32, locale : u32, lpversioninformation : *mut NLSVERSIONINFO) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNLSVersionEx(function : u32, lplocalename : ::windows_sys::core::PCWSTR, lpversioninformation : *mut NLSVERSIONINFOEX) -> super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetNumberFormatA(locale : u32, dwflags : u32, lpvalue : ::windows_sys::core::PCSTR, lpformat : *const NUMBERFMTA, lpnumberstr : ::windows_sys::core::PSTR, cchnumber : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetNumberFormatEx(lplocalename : ::windows_sys::core::PCWSTR, dwflags : u32, lpvalue : ::windows_sys::core::PCWSTR, lpformat : *const NUMBERFMTW, lpnumberstr : ::windows_sys::core::PWSTR, cchnumber : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetNumberFormatW(locale : u32, dwflags : u32, lpvalue : ::windows_sys::core::PCWSTR, lpformat : *const NUMBERFMTW, lpnumberstr : ::windows_sys::core::PWSTR, cchnumber : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetOEMCP() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessPreferredUILanguages(dwflags : u32, pulnumlanguages : *mut u32, pwszlanguagesbuffer : ::windows_sys::core::PWSTR, pcchlanguagesbuffer : *mut u32) -> super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetStringScripts(dwflags : u32, lpstring : ::windows_sys::core::PCWSTR, cchstring : i32, lpscripts : ::windows_sys::core::PWSTR, cchscripts : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetStringTypeA(locale : u32, dwinfotype : u32, lpsrcstr : ::windows_sys::core::PCSTR, cchsrc : i32, lpchartype : *mut u16) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetStringTypeExA(locale : u32, dwinfotype : u32, lpsrcstr : ::windows_sys::core::PCSTR, cchsrc : i32, lpchartype : *mut u16) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetStringTypeExW(locale : u32, dwinfotype : u32, lpsrcstr : ::windows_sys::core::PCWSTR, cchsrc : i32, lpchartype : *mut u16) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetStringTypeW(dwinfotype : u32, lpsrcstr : ::windows_sys::core::PCWSTR, cchsrc : i32, lpchartype : *mut u16) -> super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetSystemDefaultLCID() -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetSystemDefaultLangID() -> u16); +::windows_targets::link!("kernel32.dll" "system" fn GetSystemDefaultLocaleName(lplocalename : ::windows_sys::core::PWSTR, cchlocalename : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetSystemDefaultUILanguage() -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemPreferredUILanguages(dwflags : u32, pulnumlanguages : *mut u32, pwszlanguagesbuffer : ::windows_sys::core::PWSTR, pcchlanguagesbuffer : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetTextCharset(hdc : super::Graphics::Gdi:: HDC) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetTextCharsetInfo(hdc : super::Graphics::Gdi:: HDC, lpsig : *mut FONTSIGNATURE, dwflags : u32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetThreadLocale() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThreadPreferredUILanguages(dwflags : u32, pulnumlanguages : *mut u32, pwszlanguagesbuffer : ::windows_sys::core::PWSTR, pcchlanguagesbuffer : *mut u32) -> super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetThreadUILanguage() -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTimeFormatA(locale : u32, dwflags : u32, lptime : *const super::Foundation:: SYSTEMTIME, lpformat : ::windows_sys::core::PCSTR, lptimestr : ::windows_sys::core::PSTR, cchtime : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTimeFormatEx(lplocalename : ::windows_sys::core::PCWSTR, dwflags : TIME_FORMAT_FLAGS, lptime : *const super::Foundation:: SYSTEMTIME, lpformat : ::windows_sys::core::PCWSTR, lptimestr : ::windows_sys::core::PWSTR, cchtime : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTimeFormatW(locale : u32, dwflags : u32, lptime : *const super::Foundation:: SYSTEMTIME, lpformat : ::windows_sys::core::PCWSTR, lptimestr : ::windows_sys::core::PWSTR, cchtime : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUILanguageInfo(dwflags : u32, pwmszlanguage : ::windows_sys::core::PCWSTR, pwszfallbacklanguages : ::windows_sys::core::PWSTR, pcchfallbacklanguages : *mut u32, pattributes : *mut u32) -> super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetUserDefaultGeoName(geoname : ::windows_sys::core::PWSTR, geonamecount : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetUserDefaultLCID() -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetUserDefaultLangID() -> u16); +::windows_targets::link!("kernel32.dll" "system" fn GetUserDefaultLocaleName(lplocalename : ::windows_sys::core::PWSTR, cchlocalename : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetUserDefaultUILanguage() -> u16); +::windows_targets::link!("kernel32.dll" "system" fn GetUserGeoID(geoclass : SYSGEOCLASS) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUserPreferredUILanguages(dwflags : u32, pulnumlanguages : *mut u32, pwszlanguagesbuffer : ::windows_sys::core::PWSTR, pcchlanguagesbuffer : *mut u32) -> super::Foundation:: BOOL); +::windows_targets::link!("normaliz.dll" "system" fn IdnToAscii(dwflags : u32, lpunicodecharstr : ::windows_sys::core::PCWSTR, cchunicodechar : i32, lpasciicharstr : ::windows_sys::core::PWSTR, cchasciichar : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn IdnToNameprepUnicode(dwflags : u32, lpunicodecharstr : ::windows_sys::core::PCWSTR, cchunicodechar : i32, lpnameprepcharstr : ::windows_sys::core::PWSTR, cchnameprepchar : i32) -> i32); +::windows_targets::link!("normaliz.dll" "system" fn IdnToUnicode(dwflags : u32, lpasciicharstr : ::windows_sys::core::PCWSTR, cchasciichar : i32, lpunicodecharstr : ::windows_sys::core::PWSTR, cchunicodechar : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsDBCSLeadByte(testchar : u8) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsDBCSLeadByteEx(codepage : u32, testchar : u8) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsNLSDefinedString(function : u32, dwflags : u32, lpversioninformation : *const NLSVERSIONINFO, lpstring : ::windows_sys::core::PCWSTR, cchstr : i32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsNormalizedString(normform : NORM_FORM, lpstring : ::windows_sys::core::PCWSTR, cwlength : i32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsTextUnicode(lpv : *const ::core::ffi::c_void, isize : i32, lpiresult : *mut IS_TEXT_UNICODE_RESULT) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsValidCodePage(codepage : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsValidLanguageGroup(languagegroup : u32, dwflags : ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsValidLocale(locale : u32, dwflags : IS_VALID_LOCALE_FLAGS) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsValidLocaleName(lplocalename : ::windows_sys::core::PCWSTR) -> super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn IsValidNLSVersion(function : u32, lplocalename : ::windows_sys::core::PCWSTR, lpversioninformation : *const NLSVERSIONINFOEX) -> u32); +::windows_targets::link!("bcp47mrm.dll" "system" fn IsWellFormedTag(psztag : ::windows_sys::core::PCWSTR) -> u8); +::windows_targets::link!("kernel32.dll" "system" fn LCIDToLocaleName(locale : u32, lpname : ::windows_sys::core::PWSTR, cchname : i32, dwflags : u32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn LCMapStringA(locale : u32, dwmapflags : u32, lpsrcstr : ::windows_sys::core::PCSTR, cchsrc : i32, lpdeststr : ::windows_sys::core::PSTR, cchdest : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LCMapStringEx(lplocalename : ::windows_sys::core::PCWSTR, dwmapflags : u32, lpsrcstr : ::windows_sys::core::PCWSTR, cchsrc : i32, lpdeststr : ::windows_sys::core::PWSTR, cchdest : i32, lpversioninformation : *const NLSVERSIONINFO, lpreserved : *const ::core::ffi::c_void, sorthandle : super::Foundation:: LPARAM) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn LCMapStringW(locale : u32, dwmapflags : u32, lpsrcstr : ::windows_sys::core::PCWSTR, cchsrc : i32, lpdeststr : ::windows_sys::core::PWSTR, cchdest : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn LocaleNameToLCID(lpname : ::windows_sys::core::PCWSTR, dwflags : u32) -> u32); +::windows_targets::link!("elscore.dll" "system" fn MappingDoAction(pbag : *mut MAPPING_PROPERTY_BAG, dwrangeindex : u32, pszactionid : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("elscore.dll" "system" fn MappingFreePropertyBag(pbag : *const MAPPING_PROPERTY_BAG) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("elscore.dll" "system" fn MappingFreeServices(pserviceinfo : *const MAPPING_SERVICE_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("elscore.dll" "system" fn MappingGetServices(poptions : *const MAPPING_ENUM_OPTIONS, prgservices : *mut *mut MAPPING_SERVICE_INFO, pdwservicescount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("elscore.dll" "system" fn MappingRecognizeText(pserviceinfo : *const MAPPING_SERVICE_INFO, psztext : ::windows_sys::core::PCWSTR, dwlength : u32, dwindex : u32, poptions : *const MAPPING_OPTIONS, pbag : *mut MAPPING_PROPERTY_BAG) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn MultiByteToWideChar(codepage : u32, dwflags : MULTI_BYTE_TO_WIDE_CHAR_FLAGS, lpmultibytestr : ::windows_sys::core::PCSTR, cbmultibyte : i32, lpwidecharstr : ::windows_sys::core::PWSTR, cchwidechar : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn NormalizeString(normform : NORM_FORM, lpsrcstring : ::windows_sys::core::PCWSTR, cwsrclength : i32, lpdststring : ::windows_sys::core::PWSTR, cwdstlength : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NotifyUILanguageChange(dwflags : u32, pcwstrnewlanguage : ::windows_sys::core::PCWSTR, pcwstrpreviouslanguage : ::windows_sys::core::PCWSTR, dwreserved : u32, pdwstatusrtrn : *mut u32) -> super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn ResolveLocaleName(lpnametoresolve : ::windows_sys::core::PCWSTR, lplocalename : ::windows_sys::core::PWSTR, cchlocalename : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn RestoreThreadPreferredUILanguages(snapshot : HSAVEDUILANGUAGES) -> ()); +::windows_targets::link!("usp10.dll" "system" fn ScriptApplyDigitSubstitution(psds : *const SCRIPT_DIGITSUBSTITUTE, psc : *mut SCRIPT_CONTROL, pss : *mut SCRIPT_STATE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptApplyLogicalWidth(pidx : *const i32, cchars : i32, cglyphs : i32, pwlogclust : *const u16, psva : *const SCRIPT_VISATTR, piadvance : *const i32, psa : *const SCRIPT_ANALYSIS, pabc : *mut super::Graphics::Gdi:: ABC, pijustify : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptBreak(pwcchars : ::windows_sys::core::PCWSTR, cchars : i32, psa : *const SCRIPT_ANALYSIS, psla : *mut SCRIPT_LOGATTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ScriptCPtoX(icp : i32, ftrailing : super::Foundation:: BOOL, cchars : i32, cglyphs : i32, pwlogclust : *const u16, psva : *const SCRIPT_VISATTR, piadvance : *const i32, psa : *const SCRIPT_ANALYSIS, pix : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptCacheGetHeight(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, tmheight : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptFreeCache(psc : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptGetCMap(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, pwcinchars : ::windows_sys::core::PCWSTR, cchars : i32, dwflags : u32, pwoutglyphs : *mut u16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptGetFontAlternateGlyphs(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, psa : *const SCRIPT_ANALYSIS, tagscript : u32, taglangsys : u32, tagfeature : u32, wglyphid : u16, cmaxalternates : i32, palternateglyphs : *mut u16, pcalternates : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptGetFontFeatureTags(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, psa : *const SCRIPT_ANALYSIS, tagscript : u32, taglangsys : u32, cmaxtags : i32, pfeaturetags : *mut u32, pctags : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptGetFontLanguageTags(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, psa : *const SCRIPT_ANALYSIS, tagscript : u32, cmaxtags : i32, plangsystags : *mut u32, pctags : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptGetFontProperties(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, sfp : *mut SCRIPT_FONTPROPERTIES) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptGetFontScriptTags(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, psa : *const SCRIPT_ANALYSIS, cmaxtags : i32, pscripttags : *mut u32, pctags : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptGetGlyphABCWidth(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, wglyph : u16, pabc : *mut super::Graphics::Gdi:: ABC) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptGetLogicalWidths(psa : *const SCRIPT_ANALYSIS, cchars : i32, cglyphs : i32, piglyphwidth : *const i32, pwlogclust : *const u16, psva : *const SCRIPT_VISATTR, pidx : *const i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptGetProperties(ppsp : *mut *mut *mut SCRIPT_PROPERTIES, pinumscripts : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptIsComplex(pwcinchars : ::windows_sys::core::PCWSTR, cinchars : i32, dwflags : SCRIPT_IS_COMPLEX_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptItemize(pwcinchars : ::windows_sys::core::PCWSTR, cinchars : i32, cmaxitems : i32, pscontrol : *const SCRIPT_CONTROL, psstate : *const SCRIPT_STATE, pitems : *mut SCRIPT_ITEM, pcitems : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptItemizeOpenType(pwcinchars : ::windows_sys::core::PCWSTR, cinchars : i32, cmaxitems : i32, pscontrol : *const SCRIPT_CONTROL, psstate : *const SCRIPT_STATE, pitems : *mut SCRIPT_ITEM, pscripttags : *mut u32, pcitems : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptJustify(psva : *const SCRIPT_VISATTR, piadvance : *const i32, cglyphs : i32, idx : i32, iminkashida : i32, pijustify : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptLayout(cruns : i32, pblevel : *const u8, pivisualtological : *mut i32, pilogicaltovisual : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptPlace(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, pwglyphs : *const u16, cglyphs : i32, psva : *const SCRIPT_VISATTR, psa : *mut SCRIPT_ANALYSIS, piadvance : *mut i32, pgoffset : *mut GOFFSET, pabc : *mut super::Graphics::Gdi:: ABC) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptPlaceOpenType(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, psa : *mut SCRIPT_ANALYSIS, tagscript : u32, taglangsys : u32, rcrangechars : *const i32, rprangeproperties : *const *const TEXTRANGE_PROPERTIES, cranges : i32, pwcchars : ::windows_sys::core::PCWSTR, pwlogclust : *const u16, pcharprops : *const SCRIPT_CHARPROP, cchars : i32, pwglyphs : *const u16, pglyphprops : *const SCRIPT_GLYPHPROP, cglyphs : i32, piadvance : *mut i32, pgoffset : *mut GOFFSET, pabc : *mut super::Graphics::Gdi:: ABC) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptPositionSingleGlyph(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, psa : *const SCRIPT_ANALYSIS, tagscript : u32, taglangsys : u32, tagfeature : u32, lparameter : i32, wglyphid : u16, iadvance : i32, goffset : GOFFSET, pioutadvance : *mut i32, poutgoffset : *mut GOFFSET) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptRecordDigitSubstitution(locale : u32, psds : *mut SCRIPT_DIGITSUBSTITUTE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptShape(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, pwcchars : ::windows_sys::core::PCWSTR, cchars : i32, cmaxglyphs : i32, psa : *mut SCRIPT_ANALYSIS, pwoutglyphs : *mut u16, pwlogclust : *mut u16, psva : *mut SCRIPT_VISATTR, pcglyphs : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptShapeOpenType(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, psa : *mut SCRIPT_ANALYSIS, tagscript : u32, taglangsys : u32, rcrangechars : *const i32, rprangeproperties : *const *const TEXTRANGE_PROPERTIES, cranges : i32, pwcchars : ::windows_sys::core::PCWSTR, cchars : i32, cmaxglyphs : i32, pwlogclust : *mut u16, pcharprops : *mut SCRIPT_CHARPROP, pwoutglyphs : *mut u16, poutglyphprops : *mut SCRIPT_GLYPHPROP, pcglyphs : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptStringAnalyse(hdc : super::Graphics::Gdi:: HDC, pstring : *const ::core::ffi::c_void, cstring : i32, cglyphs : i32, icharset : i32, dwflags : u32, ireqwidth : i32, pscontrol : *const SCRIPT_CONTROL, psstate : *const SCRIPT_STATE, pidx : *const i32, ptabdef : *const SCRIPT_TABDEF, pbinclass : *const u8, pssa : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ScriptStringCPtoX(ssa : *const ::core::ffi::c_void, icp : i32, ftrailing : super::Foundation:: BOOL, px : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptStringFree(pssa : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptStringGetLogicalWidths(ssa : *const ::core::ffi::c_void, pidx : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptStringGetOrder(ssa : *const ::core::ffi::c_void, puorder : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ScriptStringOut(ssa : *const ::core::ffi::c_void, ix : i32, iy : i32, uoptions : super::Graphics::Gdi:: ETO_OPTIONS, prc : *const super::Foundation:: RECT, iminsel : i32, imaxsel : i32, fdisabled : super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptStringValidate(ssa : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptStringXtoCP(ssa : *const ::core::ffi::c_void, ix : i32, pich : *mut i32, pitrailing : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptString_pLogAttr(ssa : *const ::core::ffi::c_void) -> *mut SCRIPT_LOGATTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ScriptString_pSize(ssa : *const ::core::ffi::c_void) -> *mut super::Foundation:: SIZE); +::windows_targets::link!("usp10.dll" "system" fn ScriptString_pcOutChars(ssa : *const ::core::ffi::c_void) -> *mut i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ScriptSubstituteSingleGlyph(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, psa : *const SCRIPT_ANALYSIS, tagscript : u32, taglangsys : u32, tagfeature : u32, lparameter : i32, wglyphid : u16, pwoutglyphid : *mut u16) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("usp10.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ScriptTextOut(hdc : super::Graphics::Gdi:: HDC, psc : *mut *mut ::core::ffi::c_void, x : i32, y : i32, fuoptions : u32, lprc : *const super::Foundation:: RECT, psa : *const SCRIPT_ANALYSIS, pwcreserved : ::windows_sys::core::PCWSTR, ireserved : i32, pwglyphs : *const u16, cglyphs : i32, piadvance : *const i32, pijustify : *const i32, pgoffset : *const GOFFSET) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("usp10.dll" "system" fn ScriptXtoCP(ix : i32, cchars : i32, cglyphs : i32, pwlogclust : *const u16, psva : *const SCRIPT_VISATTR, piadvance : *const i32, psa : *const SCRIPT_ANALYSIS, picp : *mut i32, pitrailing : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCalendarInfoA(locale : u32, calendar : u32, caltype : u32, lpcaldata : ::windows_sys::core::PCSTR) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCalendarInfoW(locale : u32, calendar : u32, caltype : u32, lpcaldata : ::windows_sys::core::PCWSTR) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetLocaleInfoA(locale : u32, lctype : u32, lplcdata : ::windows_sys::core::PCSTR) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetLocaleInfoW(locale : u32, lctype : u32, lplcdata : ::windows_sys::core::PCWSTR) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessPreferredUILanguages(dwflags : u32, pwszlanguagesbuffer : ::windows_sys::core::PCWSTR, pulnumlanguages : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadLocale(locale : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadPreferredUILanguages(dwflags : u32, pwszlanguagesbuffer : ::windows_sys::core::PCWSTR, pulnumlanguages : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadPreferredUILanguages2(flags : u32, languages : ::windows_sys::core::PCWSTR, numlanguagesset : *mut u32, snapshot : *mut HSAVEDUILANGUAGES) -> super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn SetThreadUILanguage(langid : u16) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUserGeoID(geoid : i32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUserGeoName(geoname : ::windows_sys::core::PCWSTR) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TranslateCharsetInfo(lpsrc : *mut u32, lpcs : *mut CHARSETINFO, dwflags : TRANSLATE_CHARSET_INFO_FLAGS) -> super::Foundation:: BOOL); +::windows_targets::link!("icu.dll" "cdecl" fn UCNV_FROM_U_CALLBACK_ESCAPE(context : *const ::core::ffi::c_void, fromuargs : *mut UConverterFromUnicodeArgs, codeunits : *const u16, length : i32, codepoint : i32, reason : UConverterCallbackReason, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn UCNV_FROM_U_CALLBACK_SKIP(context : *const ::core::ffi::c_void, fromuargs : *mut UConverterFromUnicodeArgs, codeunits : *const u16, length : i32, codepoint : i32, reason : UConverterCallbackReason, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn UCNV_FROM_U_CALLBACK_STOP(context : *const ::core::ffi::c_void, fromuargs : *mut UConverterFromUnicodeArgs, codeunits : *const u16, length : i32, codepoint : i32, reason : UConverterCallbackReason, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn UCNV_FROM_U_CALLBACK_SUBSTITUTE(context : *const ::core::ffi::c_void, fromuargs : *mut UConverterFromUnicodeArgs, codeunits : *const u16, length : i32, codepoint : i32, reason : UConverterCallbackReason, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn UCNV_TO_U_CALLBACK_ESCAPE(context : *const ::core::ffi::c_void, touargs : *mut UConverterToUnicodeArgs, codeunits : ::windows_sys::core::PCSTR, length : i32, reason : UConverterCallbackReason, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn UCNV_TO_U_CALLBACK_SKIP(context : *const ::core::ffi::c_void, touargs : *mut UConverterToUnicodeArgs, codeunits : ::windows_sys::core::PCSTR, length : i32, reason : UConverterCallbackReason, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn UCNV_TO_U_CALLBACK_STOP(context : *const ::core::ffi::c_void, touargs : *mut UConverterToUnicodeArgs, codeunits : ::windows_sys::core::PCSTR, length : i32, reason : UConverterCallbackReason, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn UCNV_TO_U_CALLBACK_SUBSTITUTE(context : *const ::core::ffi::c_void, touargs : *mut UConverterToUnicodeArgs, codeunits : ::windows_sys::core::PCSTR, length : i32, reason : UConverterCallbackReason, err : *mut UErrorCode) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VerifyScripts(dwflags : u32, lplocalescripts : ::windows_sys::core::PCWSTR, cchlocalescripts : i32, lptestscripts : ::windows_sys::core::PCWSTR, cchtestscripts : i32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WideCharToMultiByte(codepage : u32, dwflags : u32, lpwidecharstr : ::windows_sys::core::PCWSTR, cchwidechar : i32, lpmultibytestr : ::windows_sys::core::PSTR, cbmultibyte : i32, lpdefaultchar : ::windows_sys::core::PCSTR, lpuseddefaultchar : *mut super::Foundation:: BOOL) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn lstrcatA(lpstring1 : ::windows_sys::core::PSTR, lpstring2 : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("kernel32.dll" "system" fn lstrcatW(lpstring1 : ::windows_sys::core::PWSTR, lpstring2 : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("kernel32.dll" "system" fn lstrcmpA(lpstring1 : ::windows_sys::core::PCSTR, lpstring2 : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn lstrcmpW(lpstring1 : ::windows_sys::core::PCWSTR, lpstring2 : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn lstrcmpiA(lpstring1 : ::windows_sys::core::PCSTR, lpstring2 : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn lstrcmpiW(lpstring1 : ::windows_sys::core::PCWSTR, lpstring2 : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn lstrcpyA(lpstring1 : ::windows_sys::core::PSTR, lpstring2 : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("kernel32.dll" "system" fn lstrcpyW(lpstring1 : ::windows_sys::core::PWSTR, lpstring2 : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("kernel32.dll" "system" fn lstrcpynA(lpstring1 : ::windows_sys::core::PSTR, lpstring2 : ::windows_sys::core::PCSTR, imaxlength : i32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("kernel32.dll" "system" fn lstrcpynW(lpstring1 : ::windows_sys::core::PWSTR, lpstring2 : ::windows_sys::core::PCWSTR, imaxlength : i32) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("kernel32.dll" "system" fn lstrlenA(lpstring : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn lstrlenW(lpstring : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_UCharsToChars(us : *const u16, cs : ::windows_sys::core::PCSTR, length : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_austrcpy(dst : ::windows_sys::core::PCSTR, src : *const u16) -> ::windows_sys::core::PSTR); +::windows_targets::link!("icu.dll" "cdecl" fn u_austrncpy(dst : ::windows_sys::core::PCSTR, src : *const u16, n : i32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("icu.dll" "cdecl" fn u_catclose(catd : *mut UResourceBundle) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_catgets(catd : *mut UResourceBundle, set_num : i32, msg_num : i32, s : *const u16, len : *mut i32, ec : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_catopen(name : ::windows_sys::core::PCSTR, locale : ::windows_sys::core::PCSTR, ec : *mut UErrorCode) -> *mut UResourceBundle); +::windows_targets::link!("icu.dll" "cdecl" fn u_charAge(c : i32, versionarray : *mut u8) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_charDigitValue(c : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_charDirection(c : i32) -> UCharDirection); +::windows_targets::link!("icu.dll" "cdecl" fn u_charFromName(namechoice : UCharNameChoice, name : ::windows_sys::core::PCSTR, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_charMirror(c : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_charName(code : i32, namechoice : UCharNameChoice, buffer : ::windows_sys::core::PCSTR, bufferlength : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_charType(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_charsToUChars(cs : ::windows_sys::core::PCSTR, us : *mut u16, length : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_cleanup() -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_countChar32(s : *const u16, length : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_digit(ch : i32, radix : i8) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_enumCharNames(start : i32, limit : i32, r#fn : *mut UEnumCharNamesFn, context : *mut ::core::ffi::c_void, namechoice : UCharNameChoice, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_enumCharTypes(enumrange : *mut UCharEnumTypeRange, context : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_errorName(code : UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn u_foldCase(c : i32, options : u32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_forDigit(digit : i32, radix : i8) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_formatMessage(locale : ::windows_sys::core::PCSTR, pattern : *const u16, patternlength : i32, result : *mut u16, resultlength : i32, status : *mut UErrorCode, ...) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_formatMessageWithError(locale : ::windows_sys::core::PCSTR, pattern : *const u16, patternlength : i32, result : *mut u16, resultlength : i32, parseerror : *mut UParseError, status : *mut UErrorCode, ...) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_getBidiPairedBracket(c : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_getBinaryPropertySet(property : UProperty, perrorcode : *mut UErrorCode) -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn u_getCombiningClass(c : i32) -> u8); +::windows_targets::link!("icu.dll" "cdecl" fn u_getDataVersion(dataversionfillin : *mut u8, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_getFC_NFKC_Closure(c : i32, dest : *mut u16, destcapacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_getIntPropertyMap(property : UProperty, perrorcode : *mut UErrorCode) -> *mut UCPMap); +::windows_targets::link!("icu.dll" "cdecl" fn u_getIntPropertyMaxValue(which : UProperty) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_getIntPropertyMinValue(which : UProperty) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_getIntPropertyValue(c : i32, which : UProperty) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_getNumericValue(c : i32) -> f64); +::windows_targets::link!("icu.dll" "cdecl" fn u_getPropertyEnum(alias : ::windows_sys::core::PCSTR) -> UProperty); +::windows_targets::link!("icu.dll" "cdecl" fn u_getPropertyName(property : UProperty, namechoice : UPropertyNameChoice) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn u_getPropertyValueEnum(property : UProperty, alias : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_getPropertyValueName(property : UProperty, value : i32, namechoice : UPropertyNameChoice) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn u_getUnicodeVersion(versionarray : *mut u8) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_getVersion(versionarray : *mut u8) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_hasBinaryProperty(c : i32, which : UProperty) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_init(status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_isIDIgnorable(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isIDPart(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isIDStart(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isISOControl(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isJavaIDPart(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isJavaIDStart(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isJavaSpaceChar(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isMirrored(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isUAlphabetic(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isULowercase(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isUUppercase(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isUWhiteSpace(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isWhitespace(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isalnum(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isalpha(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isbase(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isblank(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_iscntrl(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isdefined(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isdigit(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isgraph(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_islower(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isprint(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_ispunct(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isspace(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_istitle(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isupper(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_isxdigit(c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_memcasecmp(s1 : *const u16, s2 : *const u16, length : i32, options : u32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_memchr(s : *const u16, c : u16, count : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_memchr32(s : *const u16, c : i32, count : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_memcmp(buf1 : *const u16, buf2 : *const u16, count : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_memcmpCodePointOrder(s1 : *const u16, s2 : *const u16, count : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_memcpy(dest : *mut u16, src : *const u16, count : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_memmove(dest : *mut u16, src : *const u16, count : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_memrchr(s : *const u16, c : u16, count : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_memrchr32(s : *const u16, c : i32, count : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_memset(dest : *mut u16, c : u16, count : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_parseMessage(locale : ::windows_sys::core::PCSTR, pattern : *const u16, patternlength : i32, source : *const u16, sourcelength : i32, status : *mut UErrorCode, ...) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_parseMessageWithError(locale : ::windows_sys::core::PCSTR, pattern : *const u16, patternlength : i32, source : *const u16, sourcelength : i32, parseerror : *mut UParseError, status : *mut UErrorCode, ...) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_setMemoryFunctions(context : *const ::core::ffi::c_void, a : *mut UMemAllocFn, r : *mut UMemReallocFn, f : *mut UMemFreeFn, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_shapeArabic(source : *const u16, sourcelength : i32, dest : *mut u16, destsize : i32, options : u32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strCaseCompare(s1 : *const u16, length1 : i32, s2 : *const u16, length2 : i32, options : u32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strCompare(s1 : *const u16, length1 : i32, s2 : *const u16, length2 : i32, codepointorder : i8) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strCompareIter(iter1 : *mut UCharIterator, iter2 : *mut UCharIterator, codepointorder : i8) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strFindFirst(s : *const u16, length : i32, substring : *const u16, sublength : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strFindLast(s : *const u16, length : i32, substring : *const u16, sublength : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strFoldCase(dest : *mut u16, destcapacity : i32, src : *const u16, srclength : i32, options : u32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strFromJavaModifiedUTF8WithSub(dest : *mut u16, destcapacity : i32, pdestlength : *mut i32, src : ::windows_sys::core::PCSTR, srclength : i32, subchar : i32, pnumsubstitutions : *mut i32, perrorcode : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strFromUTF32(dest : *mut u16, destcapacity : i32, pdestlength : *mut i32, src : *const i32, srclength : i32, perrorcode : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strFromUTF32WithSub(dest : *mut u16, destcapacity : i32, pdestlength : *mut i32, src : *const i32, srclength : i32, subchar : i32, pnumsubstitutions : *mut i32, perrorcode : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strFromUTF8(dest : *mut u16, destcapacity : i32, pdestlength : *mut i32, src : ::windows_sys::core::PCSTR, srclength : i32, perrorcode : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strFromUTF8Lenient(dest : *mut u16, destcapacity : i32, pdestlength : *mut i32, src : ::windows_sys::core::PCSTR, srclength : i32, perrorcode : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strFromUTF8WithSub(dest : *mut u16, destcapacity : i32, pdestlength : *mut i32, src : ::windows_sys::core::PCSTR, srclength : i32, subchar : i32, pnumsubstitutions : *mut i32, perrorcode : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strFromWCS(dest : *mut u16, destcapacity : i32, pdestlength : *mut i32, src : ::windows_sys::core::PCWSTR, srclength : i32, perrorcode : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strHasMoreChar32Than(s : *const u16, length : i32, number : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn u_strToJavaModifiedUTF8(dest : ::windows_sys::core::PCSTR, destcapacity : i32, pdestlength : *mut i32, src : *const u16, srclength : i32, perrorcode : *mut UErrorCode) -> ::windows_sys::core::PSTR); +::windows_targets::link!("icu.dll" "cdecl" fn u_strToLower(dest : *mut u16, destcapacity : i32, src : *const u16, srclength : i32, locale : ::windows_sys::core::PCSTR, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strToTitle(dest : *mut u16, destcapacity : i32, src : *const u16, srclength : i32, titleiter : *mut UBreakIterator, locale : ::windows_sys::core::PCSTR, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strToUTF32(dest : *mut i32, destcapacity : i32, pdestlength : *mut i32, src : *const u16, srclength : i32, perrorcode : *mut UErrorCode) -> *mut i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strToUTF32WithSub(dest : *mut i32, destcapacity : i32, pdestlength : *mut i32, src : *const u16, srclength : i32, subchar : i32, pnumsubstitutions : *mut i32, perrorcode : *mut UErrorCode) -> *mut i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strToUTF8(dest : ::windows_sys::core::PCSTR, destcapacity : i32, pdestlength : *mut i32, src : *const u16, srclength : i32, perrorcode : *mut UErrorCode) -> ::windows_sys::core::PSTR); +::windows_targets::link!("icu.dll" "cdecl" fn u_strToUTF8WithSub(dest : ::windows_sys::core::PCSTR, destcapacity : i32, pdestlength : *mut i32, src : *const u16, srclength : i32, subchar : i32, pnumsubstitutions : *mut i32, perrorcode : *mut UErrorCode) -> ::windows_sys::core::PSTR); +::windows_targets::link!("icu.dll" "cdecl" fn u_strToUpper(dest : *mut u16, destcapacity : i32, src : *const u16, srclength : i32, locale : ::windows_sys::core::PCSTR, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strToWCS(dest : ::windows_sys::core::PCWSTR, destcapacity : i32, pdestlength : *mut i32, src : *const u16, srclength : i32, perrorcode : *mut UErrorCode) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("icu.dll" "cdecl" fn u_strcasecmp(s1 : *const u16, s2 : *const u16, options : u32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strcat(dst : *mut u16, src : *const u16) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strchr(s : *const u16, c : u16) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strchr32(s : *const u16, c : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strcmp(s1 : *const u16, s2 : *const u16) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strcmpCodePointOrder(s1 : *const u16, s2 : *const u16) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strcpy(dst : *mut u16, src : *const u16) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strcspn(string : *const u16, matchset : *const u16) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strlen(s : *const u16) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strncasecmp(s1 : *const u16, s2 : *const u16, n : i32, options : u32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strncat(dst : *mut u16, src : *const u16, n : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strncmp(ucs1 : *const u16, ucs2 : *const u16, n : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strncmpCodePointOrder(s1 : *const u16, s2 : *const u16, n : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strncpy(dst : *mut u16, src : *const u16, n : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strpbrk(string : *const u16, matchset : *const u16) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strrchr(s : *const u16, c : u16) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strrchr32(s : *const u16, c : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strrstr(s : *const u16, substring : *const u16) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strspn(string : *const u16, matchset : *const u16) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_strstr(s : *const u16, substring : *const u16) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_strtok_r(src : *mut u16, delim : *const u16, savestate : *mut *mut u16) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_tolower(c : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_totitle(c : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_toupper(c : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_uastrcpy(dst : *mut u16, src : ::windows_sys::core::PCSTR) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_uastrncpy(dst : *mut u16, src : ::windows_sys::core::PCSTR, n : i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn u_unescape(src : ::windows_sys::core::PCSTR, dest : *mut u16, destcapacity : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_unescapeAt(charat : UNESCAPE_CHAR_AT, offset : *mut i32, length : i32, context : *mut ::core::ffi::c_void) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_versionFromString(versionarray : *mut u8, versionstring : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_versionFromUString(versionarray : *mut u8, versionstring : *const u16) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_versionToString(versionarray : *const u8, versionstring : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_vformatMessage(locale : ::windows_sys::core::PCSTR, pattern : *const u16, patternlength : i32, result : *mut u16, resultlength : i32, ap : *mut i8, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_vformatMessageWithError(locale : ::windows_sys::core::PCSTR, pattern : *const u16, patternlength : i32, result : *mut u16, resultlength : i32, parseerror : *mut UParseError, ap : *mut i8, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn u_vparseMessage(locale : ::windows_sys::core::PCSTR, pattern : *const u16, patternlength : i32, source : *const u16, sourcelength : i32, ap : *mut i8, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn u_vparseMessageWithError(locale : ::windows_sys::core::PCSTR, pattern : *const u16, patternlength : i32, source : *const u16, sourcelength : i32, ap : *mut i8, parseerror : *mut UParseError, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_close(pbidi : *mut UBiDi) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_countParagraphs(pbidi : *mut UBiDi) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_countRuns(pbidi : *mut UBiDi, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getBaseDirection(text : *const u16, length : i32) -> UBiDiDirection); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getClassCallback(pbidi : *mut UBiDi, r#fn : *mut UBiDiClassCallback, context : *const *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getCustomizedClass(pbidi : *mut UBiDi, c : i32) -> UCharDirection); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getDirection(pbidi : *const UBiDi) -> UBiDiDirection); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getLength(pbidi : *const UBiDi) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getLevelAt(pbidi : *const UBiDi, charindex : i32) -> u8); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getLevels(pbidi : *mut UBiDi, perrorcode : *mut UErrorCode) -> *mut u8); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getLogicalIndex(pbidi : *mut UBiDi, visualindex : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getLogicalMap(pbidi : *mut UBiDi, indexmap : *mut i32, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getLogicalRun(pbidi : *const UBiDi, logicalposition : i32, plogicallimit : *mut i32, plevel : *mut u8) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getParaLevel(pbidi : *const UBiDi) -> u8); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getParagraph(pbidi : *const UBiDi, charindex : i32, pparastart : *mut i32, pparalimit : *mut i32, pparalevel : *mut u8, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getParagraphByIndex(pbidi : *const UBiDi, paraindex : i32, pparastart : *mut i32, pparalimit : *mut i32, pparalevel : *mut u8, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getProcessedLength(pbidi : *const UBiDi) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getReorderingMode(pbidi : *mut UBiDi) -> UBiDiReorderingMode); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getReorderingOptions(pbidi : *mut UBiDi) -> u32); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getResultLength(pbidi : *const UBiDi) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getText(pbidi : *const UBiDi) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getVisualIndex(pbidi : *mut UBiDi, logicalindex : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getVisualMap(pbidi : *mut UBiDi, indexmap : *mut i32, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_getVisualRun(pbidi : *mut UBiDi, runindex : i32, plogicalstart : *mut i32, plength : *mut i32) -> UBiDiDirection); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_invertMap(srcmap : *const i32, destmap : *mut i32, length : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_isInverse(pbidi : *mut UBiDi) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_isOrderParagraphsLTR(pbidi : *mut UBiDi) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_open() -> *mut UBiDi); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_openSized(maxlength : i32, maxruncount : i32, perrorcode : *mut UErrorCode) -> *mut UBiDi); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_orderParagraphsLTR(pbidi : *mut UBiDi, orderparagraphsltr : i8) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_reorderLogical(levels : *const u8, length : i32, indexmap : *mut i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_reorderVisual(levels : *const u8, length : i32, indexmap : *mut i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_setClassCallback(pbidi : *mut UBiDi, newfn : UBiDiClassCallback, newcontext : *const ::core::ffi::c_void, oldfn : *mut UBiDiClassCallback, oldcontext : *const *const ::core::ffi::c_void, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_setContext(pbidi : *mut UBiDi, prologue : *const u16, prolength : i32, epilogue : *const u16, epilength : i32, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_setInverse(pbidi : *mut UBiDi, isinverse : i8) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_setLine(pparabidi : *const UBiDi, start : i32, limit : i32, plinebidi : *mut UBiDi, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_setPara(pbidi : *mut UBiDi, text : *const u16, length : i32, paralevel : u8, embeddinglevels : *mut u8, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_setReorderingMode(pbidi : *mut UBiDi, reorderingmode : UBiDiReorderingMode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_setReorderingOptions(pbidi : *mut UBiDi, reorderingoptions : u32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_writeReordered(pbidi : *mut UBiDi, dest : *mut u16, destsize : i32, options : u16, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubidi_writeReverse(src : *const u16, srclength : i32, dest : *mut u16, destsize : i32, options : u16, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubiditransform_close(pbiditransform : *mut UBiDiTransform) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubiditransform_open(perrorcode : *mut UErrorCode) -> *mut UBiDiTransform); +::windows_targets::link!("icu.dll" "cdecl" fn ubiditransform_transform(pbiditransform : *mut UBiDiTransform, src : *const u16, srclength : i32, dest : *mut u16, destsize : i32, inparalevel : u8, inorder : UBiDiOrder, outparalevel : u8, outorder : UBiDiOrder, domirroring : UBiDiMirroring, shapingoptions : u32, perrorcode : *mut UErrorCode) -> u32); +::windows_targets::link!("icu.dll" "cdecl" fn ublock_getCode(c : i32) -> UBlockCode); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_close(bi : *mut UBreakIterator) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_countAvailable() -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_current(bi : *const UBreakIterator) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_first(bi : *mut UBreakIterator) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_following(bi : *mut UBreakIterator, offset : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_getAvailable(index : i32) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_getBinaryRules(bi : *mut UBreakIterator, binaryrules : *mut u8, rulescapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_getLocaleByType(bi : *const UBreakIterator, r#type : ULocDataLocaleType, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_getRuleStatus(bi : *mut UBreakIterator) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_getRuleStatusVec(bi : *mut UBreakIterator, fillinvec : *mut i32, capacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_isBoundary(bi : *mut UBreakIterator, offset : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_last(bi : *mut UBreakIterator) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_next(bi : *mut UBreakIterator) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_open(r#type : UBreakIteratorType, locale : ::windows_sys::core::PCSTR, text : *const u16, textlength : i32, status : *mut UErrorCode) -> *mut UBreakIterator); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_openBinaryRules(binaryrules : *const u8, ruleslength : i32, text : *const u16, textlength : i32, status : *mut UErrorCode) -> *mut UBreakIterator); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_openRules(rules : *const u16, ruleslength : i32, text : *const u16, textlength : i32, parseerr : *mut UParseError, status : *mut UErrorCode) -> *mut UBreakIterator); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_preceding(bi : *mut UBreakIterator, offset : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_previous(bi : *mut UBreakIterator) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_refreshUText(bi : *mut UBreakIterator, text : *mut UText, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_safeClone(bi : *const UBreakIterator, stackbuffer : *mut ::core::ffi::c_void, pbuffersize : *mut i32, status : *mut UErrorCode) -> *mut UBreakIterator); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_setText(bi : *mut UBreakIterator, text : *const u16, textlength : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ubrk_setUText(bi : *mut UBreakIterator, text : *mut UText, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_add(cal : *mut *mut ::core::ffi::c_void, field : UCalendarDateFields, amount : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_clear(calendar : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_clearField(cal : *mut *mut ::core::ffi::c_void, field : UCalendarDateFields) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_clone(cal : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_close(cal : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_countAvailable() -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_equivalentTo(cal1 : *const *const ::core::ffi::c_void, cal2 : *const *const ::core::ffi::c_void) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_get(cal : *const *const ::core::ffi::c_void, field : UCalendarDateFields, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getAttribute(cal : *const *const ::core::ffi::c_void, attr : UCalendarAttribute) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getAvailable(localeindex : i32) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getCanonicalTimeZoneID(id : *const u16, len : i32, result : *mut u16, resultcapacity : i32, issystemid : *mut i8, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getDSTSavings(zoneid : *const u16, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getDayOfWeekType(cal : *const *const ::core::ffi::c_void, dayofweek : UCalendarDaysOfWeek, status : *mut UErrorCode) -> UCalendarWeekdayType); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getDefaultTimeZone(result : *mut u16, resultcapacity : i32, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getFieldDifference(cal : *mut *mut ::core::ffi::c_void, target : f64, field : UCalendarDateFields, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getGregorianChange(cal : *const *const ::core::ffi::c_void, perrorcode : *mut UErrorCode) -> f64); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getHostTimeZone(result : *mut u16, resultcapacity : i32, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getKeywordValuesForLocale(key : ::windows_sys::core::PCSTR, locale : ::windows_sys::core::PCSTR, commonlyused : i8, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getLimit(cal : *const *const ::core::ffi::c_void, field : UCalendarDateFields, r#type : UCalendarLimitType, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getLocaleByType(cal : *const *const ::core::ffi::c_void, r#type : ULocDataLocaleType, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getMillis(cal : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> f64); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getNow() -> f64); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getTZDataVersion(status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getTimeZoneDisplayName(cal : *const *const ::core::ffi::c_void, r#type : UCalendarDisplayNameType, locale : ::windows_sys::core::PCSTR, result : *mut u16, resultlength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getTimeZoneID(cal : *const *const ::core::ffi::c_void, result : *mut u16, resultlength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getTimeZoneIDForWindowsID(winid : *const u16, len : i32, region : ::windows_sys::core::PCSTR, id : *mut u16, idcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getTimeZoneTransitionDate(cal : *const *const ::core::ffi::c_void, r#type : UTimeZoneTransitionType, transition : *mut f64, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getType(cal : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getWeekendTransition(cal : *const *const ::core::ffi::c_void, dayofweek : UCalendarDaysOfWeek, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_getWindowsTimeZoneID(id : *const u16, len : i32, winid : *mut u16, winidcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_inDaylightTime(cal : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_isSet(cal : *const *const ::core::ffi::c_void, field : UCalendarDateFields) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_isWeekend(cal : *const *const ::core::ffi::c_void, date : f64, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_open(zoneid : *const u16, len : i32, locale : ::windows_sys::core::PCSTR, r#type : UCalendarType, status : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_openCountryTimeZones(country : ::windows_sys::core::PCSTR, ec : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_openTimeZoneIDEnumeration(zonetype : USystemTimeZoneType, region : ::windows_sys::core::PCSTR, rawoffset : *const i32, ec : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_openTimeZones(ec : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_roll(cal : *mut *mut ::core::ffi::c_void, field : UCalendarDateFields, amount : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_set(cal : *mut *mut ::core::ffi::c_void, field : UCalendarDateFields, value : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_setAttribute(cal : *mut *mut ::core::ffi::c_void, attr : UCalendarAttribute, newvalue : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_setDate(cal : *mut *mut ::core::ffi::c_void, year : i32, month : i32, date : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_setDateTime(cal : *mut *mut ::core::ffi::c_void, year : i32, month : i32, date : i32, hour : i32, minute : i32, second : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_setDefaultTimeZone(zoneid : *const u16, ec : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_setGregorianChange(cal : *mut *mut ::core::ffi::c_void, date : f64, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_setMillis(cal : *mut *mut ::core::ffi::c_void, datetime : f64, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucal_setTimeZone(cal : *mut *mut ::core::ffi::c_void, zoneid : *const u16, len : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucasemap_close(csm : *mut UCaseMap) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucasemap_getBreakIterator(csm : *const UCaseMap) -> *mut UBreakIterator); +::windows_targets::link!("icu.dll" "cdecl" fn ucasemap_getLocale(csm : *const UCaseMap) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucasemap_getOptions(csm : *const UCaseMap) -> u32); +::windows_targets::link!("icu.dll" "cdecl" fn ucasemap_open(locale : ::windows_sys::core::PCSTR, options : u32, perrorcode : *mut UErrorCode) -> *mut UCaseMap); +::windows_targets::link!("icu.dll" "cdecl" fn ucasemap_setBreakIterator(csm : *mut UCaseMap, itertoadopt : *mut UBreakIterator, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucasemap_setLocale(csm : *mut UCaseMap, locale : ::windows_sys::core::PCSTR, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucasemap_setOptions(csm : *mut UCaseMap, options : u32, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucasemap_toTitle(csm : *mut UCaseMap, dest : *mut u16, destcapacity : i32, src : *const u16, srclength : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucasemap_utf8FoldCase(csm : *const UCaseMap, dest : ::windows_sys::core::PCSTR, destcapacity : i32, src : ::windows_sys::core::PCSTR, srclength : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucasemap_utf8ToLower(csm : *const UCaseMap, dest : ::windows_sys::core::PCSTR, destcapacity : i32, src : ::windows_sys::core::PCSTR, srclength : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucasemap_utf8ToTitle(csm : *mut UCaseMap, dest : ::windows_sys::core::PCSTR, destcapacity : i32, src : ::windows_sys::core::PCSTR, srclength : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucasemap_utf8ToUpper(csm : *const UCaseMap, dest : ::windows_sys::core::PCSTR, destcapacity : i32, src : ::windows_sys::core::PCSTR, srclength : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucfpos_close(ucfpos : *mut UConstrainedFieldPosition) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucfpos_constrainCategory(ucfpos : *mut UConstrainedFieldPosition, category : i32, ec : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucfpos_constrainField(ucfpos : *mut UConstrainedFieldPosition, category : i32, field : i32, ec : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucfpos_getCategory(ucfpos : *const UConstrainedFieldPosition, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucfpos_getField(ucfpos : *const UConstrainedFieldPosition, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucfpos_getIndexes(ucfpos : *const UConstrainedFieldPosition, pstart : *mut i32, plimit : *mut i32, ec : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucfpos_getInt64IterationContext(ucfpos : *const UConstrainedFieldPosition, ec : *mut UErrorCode) -> i64); +::windows_targets::link!("icu.dll" "cdecl" fn ucfpos_matchesField(ucfpos : *const UConstrainedFieldPosition, category : i32, field : i32, ec : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucfpos_open(ec : *mut UErrorCode) -> *mut UConstrainedFieldPosition); +::windows_targets::link!("icu.dll" "cdecl" fn ucfpos_reset(ucfpos : *mut UConstrainedFieldPosition, ec : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucfpos_setInt64IterationContext(ucfpos : *mut UConstrainedFieldPosition, context : i64, ec : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucfpos_setState(ucfpos : *mut UConstrainedFieldPosition, category : i32, field : i32, start : i32, limit : i32, ec : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_cbFromUWriteBytes(args : *mut UConverterFromUnicodeArgs, source : ::windows_sys::core::PCSTR, length : i32, offsetindex : i32, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_cbFromUWriteSub(args : *mut UConverterFromUnicodeArgs, offsetindex : i32, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_cbFromUWriteUChars(args : *mut UConverterFromUnicodeArgs, source : *const *const u16, sourcelimit : *const u16, offsetindex : i32, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_cbToUWriteSub(args : *mut UConverterToUnicodeArgs, offsetindex : i32, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_cbToUWriteUChars(args : *mut UConverterToUnicodeArgs, source : *const u16, length : i32, offsetindex : i32, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_close(converter : *mut UConverter) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_compareNames(name1 : ::windows_sys::core::PCSTR, name2 : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_convert(toconvertername : ::windows_sys::core::PCSTR, fromconvertername : ::windows_sys::core::PCSTR, target : ::windows_sys::core::PCSTR, targetcapacity : i32, source : ::windows_sys::core::PCSTR, sourcelength : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_convertEx(targetcnv : *mut UConverter, sourcecnv : *mut UConverter, target : *mut *mut i8, targetlimit : ::windows_sys::core::PCSTR, source : *const *const i8, sourcelimit : ::windows_sys::core::PCSTR, pivotstart : *mut u16, pivotsource : *mut *mut u16, pivottarget : *mut *mut u16, pivotlimit : *const u16, reset : i8, flush : i8, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_countAliases(alias : ::windows_sys::core::PCSTR, perrorcode : *mut UErrorCode) -> u16); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_countAvailable() -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_countStandards() -> u16); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_detectUnicodeSignature(source : ::windows_sys::core::PCSTR, sourcelength : i32, signaturelength : *mut i32, perrorcode : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_fixFileSeparator(cnv : *const UConverter, source : *mut u16, sourcelen : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_flushCache() -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_fromAlgorithmic(cnv : *mut UConverter, algorithmictype : UConverterType, target : ::windows_sys::core::PCSTR, targetcapacity : i32, source : ::windows_sys::core::PCSTR, sourcelength : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_fromUChars(cnv : *mut UConverter, dest : ::windows_sys::core::PCSTR, destcapacity : i32, src : *const u16, srclength : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_fromUCountPending(cnv : *const UConverter, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_fromUnicode(converter : *mut UConverter, target : *mut *mut i8, targetlimit : ::windows_sys::core::PCSTR, source : *const *const u16, sourcelimit : *const u16, offsets : *mut i32, flush : i8, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getAlias(alias : ::windows_sys::core::PCSTR, n : u16, perrorcode : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getAliases(alias : ::windows_sys::core::PCSTR, aliases : *const *const i8, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getAvailableName(n : i32) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getCCSID(converter : *const UConverter, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getCanonicalName(alias : ::windows_sys::core::PCSTR, standard : ::windows_sys::core::PCSTR, perrorcode : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getDefaultName() -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getDisplayName(converter : *const UConverter, displaylocale : ::windows_sys::core::PCSTR, displayname : *mut u16, displaynamecapacity : i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getFromUCallBack(converter : *const UConverter, action : *mut UConverterFromUCallback, context : *const *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getInvalidChars(converter : *const UConverter, errbytes : ::windows_sys::core::PCSTR, len : *mut i8, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getInvalidUChars(converter : *const UConverter, erruchars : *mut u16, len : *mut i8, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getMaxCharSize(converter : *const UConverter) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getMinCharSize(converter : *const UConverter) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getName(converter : *const UConverter, err : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getNextUChar(converter : *mut UConverter, source : *const *const i8, sourcelimit : ::windows_sys::core::PCSTR, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getPlatform(converter : *const UConverter, err : *mut UErrorCode) -> UConverterPlatform); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getStandard(n : u16, perrorcode : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getStandardName(name : ::windows_sys::core::PCSTR, standard : ::windows_sys::core::PCSTR, perrorcode : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getStarters(converter : *const UConverter, starters : *mut i8, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getSubstChars(converter : *const UConverter, subchars : ::windows_sys::core::PCSTR, len : *mut i8, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getToUCallBack(converter : *const UConverter, action : *mut UConverterToUCallback, context : *const *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getType(converter : *const UConverter) -> UConverterType); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_getUnicodeSet(cnv : *const UConverter, setfillin : *mut USet, whichset : UConverterUnicodeSet, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_isAmbiguous(cnv : *const UConverter) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_isFixedWidth(cnv : *mut UConverter, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_open(convertername : ::windows_sys::core::PCSTR, err : *mut UErrorCode) -> *mut UConverter); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_openAllNames(perrorcode : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_openCCSID(codepage : i32, platform : UConverterPlatform, err : *mut UErrorCode) -> *mut UConverter); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_openPackage(packagename : ::windows_sys::core::PCSTR, convertername : ::windows_sys::core::PCSTR, err : *mut UErrorCode) -> *mut UConverter); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_openStandardNames(convname : ::windows_sys::core::PCSTR, standard : ::windows_sys::core::PCSTR, perrorcode : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_openU(name : *const u16, err : *mut UErrorCode) -> *mut UConverter); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_reset(converter : *mut UConverter) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_resetFromUnicode(converter : *mut UConverter) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_resetToUnicode(converter : *mut UConverter) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_safeClone(cnv : *const UConverter, stackbuffer : *mut ::core::ffi::c_void, pbuffersize : *mut i32, status : *mut UErrorCode) -> *mut UConverter); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_setDefaultName(name : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_setFallback(cnv : *mut UConverter, usesfallback : i8) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_setFromUCallBack(converter : *mut UConverter, newaction : UConverterFromUCallback, newcontext : *const ::core::ffi::c_void, oldaction : *mut UConverterFromUCallback, oldcontext : *const *const ::core::ffi::c_void, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_setSubstChars(converter : *mut UConverter, subchars : ::windows_sys::core::PCSTR, len : i8, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_setSubstString(cnv : *mut UConverter, s : *const u16, length : i32, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_setToUCallBack(converter : *mut UConverter, newaction : UConverterToUCallback, newcontext : *const ::core::ffi::c_void, oldaction : *mut UConverterToUCallback, oldcontext : *const *const ::core::ffi::c_void, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_toAlgorithmic(algorithmictype : UConverterType, cnv : *mut UConverter, target : ::windows_sys::core::PCSTR, targetcapacity : i32, source : ::windows_sys::core::PCSTR, sourcelength : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_toUChars(cnv : *mut UConverter, dest : *mut u16, destcapacity : i32, src : ::windows_sys::core::PCSTR, srclength : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_toUCountPending(cnv : *const UConverter, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_toUnicode(converter : *mut UConverter, target : *mut *mut u16, targetlimit : *const u16, source : *const *const i8, sourcelimit : ::windows_sys::core::PCSTR, offsets : *mut i32, flush : i8, err : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnv_usesFallback(cnv : *const UConverter) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucnvsel_close(sel : *mut UConverterSelector) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucnvsel_open(converterlist : *const *const i8, converterlistsize : i32, excludedcodepoints : *const USet, whichset : UConverterUnicodeSet, status : *mut UErrorCode) -> *mut UConverterSelector); +::windows_targets::link!("icu.dll" "cdecl" fn ucnvsel_openFromSerialized(buffer : *const ::core::ffi::c_void, length : i32, status : *mut UErrorCode) -> *mut UConverterSelector); +::windows_targets::link!("icu.dll" "cdecl" fn ucnvsel_selectForString(sel : *const UConverterSelector, s : *const u16, length : i32, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucnvsel_selectForUTF8(sel : *const UConverterSelector, s : ::windows_sys::core::PCSTR, length : i32, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucnvsel_serialize(sel : *const UConverterSelector, buffer : *mut ::core::ffi::c_void, buffercapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_cloneBinary(coll : *const UCollator, buffer : *mut u8, capacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_close(coll : *mut UCollator) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_closeElements(elems : *mut UCollationElements) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_countAvailable() -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_equal(coll : *const UCollator, source : *const u16, sourcelength : i32, target : *const u16, targetlength : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getAttribute(coll : *const UCollator, attr : UColAttribute, status : *mut UErrorCode) -> UColAttributeValue); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getAvailable(localeindex : i32) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getBound(source : *const u8, sourcelength : i32, boundtype : UColBoundMode, nooflevels : u32, result : *mut u8, resultlength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getContractionsAndExpansions(coll : *const UCollator, contractions : *mut USet, expansions : *mut USet, addprefixes : i8, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getDisplayName(objloc : ::windows_sys::core::PCSTR, disploc : ::windows_sys::core::PCSTR, result : *mut u16, resultlength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getEquivalentReorderCodes(reordercode : i32, dest : *mut i32, destcapacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getFunctionalEquivalent(result : ::windows_sys::core::PCSTR, resultcapacity : i32, keyword : ::windows_sys::core::PCSTR, locale : ::windows_sys::core::PCSTR, isavailable : *mut i8, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getKeywordValues(keyword : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getKeywordValuesForLocale(key : ::windows_sys::core::PCSTR, locale : ::windows_sys::core::PCSTR, commonlyused : i8, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getKeywords(status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getLocaleByType(coll : *const UCollator, r#type : ULocDataLocaleType, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getMaxExpansion(elems : *const UCollationElements, order : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getMaxVariable(coll : *const UCollator) -> UColReorderCode); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getOffset(elems : *const UCollationElements) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getReorderCodes(coll : *const UCollator, dest : *mut i32, destcapacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getRules(coll : *const UCollator, length : *mut i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getRulesEx(coll : *const UCollator, delta : UColRuleOption, buffer : *mut u16, bufferlen : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getSortKey(coll : *const UCollator, source : *const u16, sourcelength : i32, result : *mut u8, resultlength : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getStrength(coll : *const UCollator) -> UColAttributeValue); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getTailoredSet(coll : *const UCollator, status : *mut UErrorCode) -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getUCAVersion(coll : *const UCollator, info : *mut u8) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getVariableTop(coll : *const UCollator, status : *mut UErrorCode) -> u32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_getVersion(coll : *const UCollator, info : *mut u8) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_greater(coll : *const UCollator, source : *const u16, sourcelength : i32, target : *const u16, targetlength : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_greaterOrEqual(coll : *const UCollator, source : *const u16, sourcelength : i32, target : *const u16, targetlength : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_keyHashCode(key : *const u8, length : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_mergeSortkeys(src1 : *const u8, src1length : i32, src2 : *const u8, src2length : i32, dest : *mut u8, destcapacity : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_next(elems : *mut UCollationElements, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_nextSortKeyPart(coll : *const UCollator, iter : *mut UCharIterator, state : *mut u32, dest : *mut u8, count : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_open(loc : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut UCollator); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_openAvailableLocales(status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_openBinary(bin : *const u8, length : i32, base : *const UCollator, status : *mut UErrorCode) -> *mut UCollator); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_openElements(coll : *const UCollator, text : *const u16, textlength : i32, status : *mut UErrorCode) -> *mut UCollationElements); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_openRules(rules : *const u16, ruleslength : i32, normalizationmode : UColAttributeValue, strength : UColAttributeValue, parseerror : *mut UParseError, status : *mut UErrorCode) -> *mut UCollator); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_previous(elems : *mut UCollationElements, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_primaryOrder(order : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_reset(elems : *mut UCollationElements) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_safeClone(coll : *const UCollator, stackbuffer : *mut ::core::ffi::c_void, pbuffersize : *mut i32, status : *mut UErrorCode) -> *mut UCollator); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_secondaryOrder(order : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_setAttribute(coll : *mut UCollator, attr : UColAttribute, value : UColAttributeValue, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_setMaxVariable(coll : *mut UCollator, group : UColReorderCode, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_setOffset(elems : *mut UCollationElements, offset : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_setReorderCodes(coll : *mut UCollator, reordercodes : *const i32, reordercodeslength : i32, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_setStrength(coll : *mut UCollator, strength : UColAttributeValue) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_setText(elems : *mut UCollationElements, text : *const u16, textlength : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_strcoll(coll : *const UCollator, source : *const u16, sourcelength : i32, target : *const u16, targetlength : i32) -> UCollationResult); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_strcollIter(coll : *const UCollator, siter : *mut UCharIterator, titer : *mut UCharIterator, status : *mut UErrorCode) -> UCollationResult); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_strcollUTF8(coll : *const UCollator, source : ::windows_sys::core::PCSTR, sourcelength : i32, target : ::windows_sys::core::PCSTR, targetlength : i32, status : *mut UErrorCode) -> UCollationResult); +::windows_targets::link!("icu.dll" "cdecl" fn ucol_tertiaryOrder(order : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucpmap_get(map : *const UCPMap, c : i32) -> u32); +::windows_targets::link!("icu.dll" "cdecl" fn ucpmap_getRange(map : *const UCPMap, start : i32, option : UCPMapRangeOption, surrogatevalue : u32, filter : *mut UCPMapValueFilter, context : *const ::core::ffi::c_void, pvalue : *mut u32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucptrie_close(trie : *mut UCPTrie) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucptrie_get(trie : *const UCPTrie, c : i32) -> u32); +::windows_targets::link!("icu.dll" "cdecl" fn ucptrie_getRange(trie : *const UCPTrie, start : i32, option : UCPMapRangeOption, surrogatevalue : u32, filter : *mut UCPMapValueFilter, context : *const ::core::ffi::c_void, pvalue : *mut u32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucptrie_getType(trie : *const UCPTrie) -> UCPTrieType); +::windows_targets::link!("icu.dll" "cdecl" fn ucptrie_getValueWidth(trie : *const UCPTrie) -> UCPTrieValueWidth); +::windows_targets::link!("icu.dll" "cdecl" fn ucptrie_internalSmallIndex(trie : *const UCPTrie, c : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucptrie_internalSmallU8Index(trie : *const UCPTrie, lt1 : i32, t2 : u8, t3 : u8) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucptrie_internalU8PrevIndex(trie : *const UCPTrie, c : i32, start : *const u8, src : *const u8) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucptrie_openFromBinary(r#type : UCPTrieType, valuewidth : UCPTrieValueWidth, data : *const ::core::ffi::c_void, length : i32, pactuallength : *mut i32, perrorcode : *mut UErrorCode) -> *mut UCPTrie); +::windows_targets::link!("icu.dll" "cdecl" fn ucptrie_toBinary(trie : *const UCPTrie, data : *mut ::core::ffi::c_void, capacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucsdet_close(ucsd : *mut UCharsetDetector) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucsdet_detect(ucsd : *mut UCharsetDetector, status : *mut UErrorCode) -> *mut UCharsetMatch); +::windows_targets::link!("icu.dll" "cdecl" fn ucsdet_detectAll(ucsd : *mut UCharsetDetector, matchesfound : *mut i32, status : *mut UErrorCode) -> *mut *mut UCharsetMatch); +::windows_targets::link!("icu.dll" "cdecl" fn ucsdet_enableInputFilter(ucsd : *mut UCharsetDetector, filter : i8) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucsdet_getAllDetectableCharsets(ucsd : *const UCharsetDetector, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucsdet_getConfidence(ucsm : *const UCharsetMatch, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucsdet_getLanguage(ucsm : *const UCharsetMatch, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucsdet_getName(ucsm : *const UCharsetMatch, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ucsdet_getUChars(ucsm : *const UCharsetMatch, buf : *mut u16, cap : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucsdet_isInputFilterEnabled(ucsd : *const UCharsetDetector) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucsdet_open(status : *mut UErrorCode) -> *mut UCharsetDetector); +::windows_targets::link!("icu.dll" "cdecl" fn ucsdet_setDeclaredEncoding(ucsd : *mut UCharsetDetector, encoding : ::windows_sys::core::PCSTR, length : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucsdet_setText(ucsd : *mut UCharsetDetector, textin : ::windows_sys::core::PCSTR, len : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_countCurrencies(locale : ::windows_sys::core::PCSTR, date : f64, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_forLocale(locale : ::windows_sys::core::PCSTR, buff : *mut u16, buffcapacity : i32, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_forLocaleAndDate(locale : ::windows_sys::core::PCSTR, date : f64, index : i32, buff : *mut u16, buffcapacity : i32, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_getDefaultFractionDigits(currency : *const u16, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_getDefaultFractionDigitsForUsage(currency : *const u16, usage : UCurrencyUsage, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_getKeywordValuesForLocale(key : ::windows_sys::core::PCSTR, locale : ::windows_sys::core::PCSTR, commonlyused : i8, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_getName(currency : *const u16, locale : ::windows_sys::core::PCSTR, namestyle : UCurrNameStyle, ischoiceformat : *mut i8, len : *mut i32, ec : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_getNumericCode(currency : *const u16) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_getPluralName(currency : *const u16, locale : ::windows_sys::core::PCSTR, ischoiceformat : *mut i8, pluralcount : ::windows_sys::core::PCSTR, len : *mut i32, ec : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_getRoundingIncrement(currency : *const u16, ec : *mut UErrorCode) -> f64); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_getRoundingIncrementForUsage(currency : *const u16, usage : UCurrencyUsage, ec : *mut UErrorCode) -> f64); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_isAvailable(isocode : *const u16, from : f64, to : f64, errorcode : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_openISOCurrencies(currtype : u32, perrorcode : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_register(isocode : *const u16, locale : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn ucurr_unregister(key : *mut ::core::ffi::c_void, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn udat_adoptNumberFormat(fmt : *mut *mut ::core::ffi::c_void, numberformattoadopt : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udat_adoptNumberFormatForFields(fmt : *mut *mut ::core::ffi::c_void, fields : *const u16, numberformattoset : *mut *mut ::core::ffi::c_void, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udat_applyPattern(format : *mut *mut ::core::ffi::c_void, localized : i8, pattern : *const u16, patternlength : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udat_clone(fmt : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn udat_close(format : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udat_countAvailable() -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udat_countSymbols(fmt : *const *const ::core::ffi::c_void, r#type : UDateFormatSymbolType) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udat_format(format : *const *const ::core::ffi::c_void, datetoformat : f64, result : *mut u16, resultlength : i32, position : *mut UFieldPosition, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udat_formatCalendar(format : *const *const ::core::ffi::c_void, calendar : *mut *mut ::core::ffi::c_void, result : *mut u16, capacity : i32, position : *mut UFieldPosition, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udat_formatCalendarForFields(format : *const *const ::core::ffi::c_void, calendar : *mut *mut ::core::ffi::c_void, result : *mut u16, capacity : i32, fpositer : *mut UFieldPositionIterator, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udat_formatForFields(format : *const *const ::core::ffi::c_void, datetoformat : f64, result : *mut u16, resultlength : i32, fpositer : *mut UFieldPositionIterator, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udat_get2DigitYearStart(fmt : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> f64); +::windows_targets::link!("icu.dll" "cdecl" fn udat_getAvailable(localeindex : i32) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn udat_getBooleanAttribute(fmt : *const *const ::core::ffi::c_void, attr : UDateFormatBooleanAttribute, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn udat_getCalendar(fmt : *const *const ::core::ffi::c_void) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn udat_getContext(fmt : *const *const ::core::ffi::c_void, r#type : UDisplayContextType, status : *mut UErrorCode) -> UDisplayContext); +::windows_targets::link!("icu.dll" "cdecl" fn udat_getLocaleByType(fmt : *const *const ::core::ffi::c_void, r#type : ULocDataLocaleType, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn udat_getNumberFormat(fmt : *const *const ::core::ffi::c_void) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn udat_getNumberFormatForField(fmt : *const *const ::core::ffi::c_void, field : u16) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn udat_getSymbols(fmt : *const *const ::core::ffi::c_void, r#type : UDateFormatSymbolType, symbolindex : i32, result : *mut u16, resultlength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udat_isLenient(fmt : *const *const ::core::ffi::c_void) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn udat_open(timestyle : UDateFormatStyle, datestyle : UDateFormatStyle, locale : ::windows_sys::core::PCSTR, tzid : *const u16, tzidlength : i32, pattern : *const u16, patternlength : i32, status : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn udat_parse(format : *const *const ::core::ffi::c_void, text : *const u16, textlength : i32, parsepos : *mut i32, status : *mut UErrorCode) -> f64); +::windows_targets::link!("icu.dll" "cdecl" fn udat_parseCalendar(format : *const *const ::core::ffi::c_void, calendar : *mut *mut ::core::ffi::c_void, text : *const u16, textlength : i32, parsepos : *mut i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udat_set2DigitYearStart(fmt : *mut *mut ::core::ffi::c_void, d : f64, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udat_setBooleanAttribute(fmt : *mut *mut ::core::ffi::c_void, attr : UDateFormatBooleanAttribute, newvalue : i8, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udat_setCalendar(fmt : *mut *mut ::core::ffi::c_void, calendartoset : *const *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udat_setContext(fmt : *mut *mut ::core::ffi::c_void, value : UDisplayContext, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udat_setLenient(fmt : *mut *mut ::core::ffi::c_void, islenient : i8) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udat_setNumberFormat(fmt : *mut *mut ::core::ffi::c_void, numberformattoset : *const *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udat_setSymbols(format : *mut *mut ::core::ffi::c_void, r#type : UDateFormatSymbolType, symbolindex : i32, value : *mut u16, valuelength : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udat_toCalendarDateField(field : UDateFormatField) -> UCalendarDateFields); +::windows_targets::link!("icu.dll" "cdecl" fn udat_toPattern(fmt : *const *const ::core::ffi::c_void, localized : i8, result : *mut u16, resultlength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_addPattern(dtpg : *mut *mut ::core::ffi::c_void, pattern : *const u16, patternlength : i32, r#override : i8, conflictingpattern : *mut u16, capacity : i32, plength : *mut i32, perrorcode : *mut UErrorCode) -> UDateTimePatternConflict); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_clone(dtpg : *const *const ::core::ffi::c_void, perrorcode : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_close(dtpg : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_getAppendItemFormat(dtpg : *const *const ::core::ffi::c_void, field : UDateTimePatternField, plength : *mut i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_getAppendItemName(dtpg : *const *const ::core::ffi::c_void, field : UDateTimePatternField, plength : *mut i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_getBaseSkeleton(unuseddtpg : *mut *mut ::core::ffi::c_void, pattern : *const u16, length : i32, baseskeleton : *mut u16, capacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_getBestPattern(dtpg : *mut *mut ::core::ffi::c_void, skeleton : *const u16, length : i32, bestpattern : *mut u16, capacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_getBestPatternWithOptions(dtpg : *mut *mut ::core::ffi::c_void, skeleton : *const u16, length : i32, options : UDateTimePatternMatchOptions, bestpattern : *mut u16, capacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_getDateTimeFormat(dtpg : *const *const ::core::ffi::c_void, plength : *mut i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_getDecimal(dtpg : *const *const ::core::ffi::c_void, plength : *mut i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_getFieldDisplayName(dtpg : *const *const ::core::ffi::c_void, field : UDateTimePatternField, width : UDateTimePGDisplayWidth, fieldname : *mut u16, capacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_getPatternForSkeleton(dtpg : *const *const ::core::ffi::c_void, skeleton : *const u16, skeletonlength : i32, plength : *mut i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_getSkeleton(unuseddtpg : *mut *mut ::core::ffi::c_void, pattern : *const u16, length : i32, skeleton : *mut u16, capacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_open(locale : ::windows_sys::core::PCSTR, perrorcode : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_openBaseSkeletons(dtpg : *const *const ::core::ffi::c_void, perrorcode : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_openEmpty(perrorcode : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_openSkeletons(dtpg : *const *const ::core::ffi::c_void, perrorcode : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_replaceFieldTypes(dtpg : *mut *mut ::core::ffi::c_void, pattern : *const u16, patternlength : i32, skeleton : *const u16, skeletonlength : i32, dest : *mut u16, destcapacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_replaceFieldTypesWithOptions(dtpg : *mut *mut ::core::ffi::c_void, pattern : *const u16, patternlength : i32, skeleton : *const u16, skeletonlength : i32, options : UDateTimePatternMatchOptions, dest : *mut u16, destcapacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_setAppendItemFormat(dtpg : *mut *mut ::core::ffi::c_void, field : UDateTimePatternField, value : *const u16, length : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_setAppendItemName(dtpg : *mut *mut ::core::ffi::c_void, field : UDateTimePatternField, value : *const u16, length : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_setDateTimeFormat(dtpg : *const *const ::core::ffi::c_void, dtformat : *const u16, length : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udatpg_setDecimal(dtpg : *mut *mut ::core::ffi::c_void, decimal : *const u16, length : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udtitvfmt_close(formatter : *mut UDateIntervalFormat) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udtitvfmt_closeResult(uresult : *mut UFormattedDateInterval) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn udtitvfmt_format(formatter : *const UDateIntervalFormat, fromdate : f64, todate : f64, result : *mut u16, resultcapacity : i32, position : *mut UFieldPosition, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn udtitvfmt_open(locale : ::windows_sys::core::PCSTR, skeleton : *const u16, skeletonlength : i32, tzid : *const u16, tzidlength : i32, status : *mut UErrorCode) -> *mut UDateIntervalFormat); +::windows_targets::link!("icu.dll" "cdecl" fn udtitvfmt_openResult(ec : *mut UErrorCode) -> *mut UFormattedDateInterval); +::windows_targets::link!("icu.dll" "cdecl" fn udtitvfmt_resultAsValue(uresult : *const UFormattedDateInterval, ec : *mut UErrorCode) -> *mut UFormattedValue); +::windows_targets::link!("icu.dll" "cdecl" fn uenum_close(en : *mut UEnumeration) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uenum_count(en : *mut UEnumeration, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uenum_next(en : *mut UEnumeration, resultlength : *mut i32, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn uenum_openCharStringsEnumeration(strings : *const *const i8, count : i32, ec : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn uenum_openUCharStringsEnumeration(strings : *const *const u16, count : i32, ec : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn uenum_reset(en : *mut UEnumeration, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uenum_unext(en : *mut UEnumeration, resultlength : *mut i32, status : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn ufieldpositer_close(fpositer : *mut UFieldPositionIterator) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ufieldpositer_next(fpositer : *mut UFieldPositionIterator, beginindex : *mut i32, endindex : *mut i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ufieldpositer_open(status : *mut UErrorCode) -> *mut UFieldPositionIterator); +::windows_targets::link!("icu.dll" "cdecl" fn ufmt_close(fmt : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ufmt_getArrayItemByIndex(fmt : *mut *mut ::core::ffi::c_void, n : i32, status : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn ufmt_getArrayLength(fmt : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ufmt_getDate(fmt : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> f64); +::windows_targets::link!("icu.dll" "cdecl" fn ufmt_getDecNumChars(fmt : *mut *mut ::core::ffi::c_void, len : *mut i32, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ufmt_getDouble(fmt : *mut *mut ::core::ffi::c_void, status : *mut UErrorCode) -> f64); +::windows_targets::link!("icu.dll" "cdecl" fn ufmt_getInt64(fmt : *mut *mut ::core::ffi::c_void, status : *mut UErrorCode) -> i64); +::windows_targets::link!("icu.dll" "cdecl" fn ufmt_getLong(fmt : *mut *mut ::core::ffi::c_void, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ufmt_getObject(fmt : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn ufmt_getType(fmt : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> UFormattableType); +::windows_targets::link!("icu.dll" "cdecl" fn ufmt_getUChars(fmt : *mut *mut ::core::ffi::c_void, len : *mut i32, status : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn ufmt_isNumeric(fmt : *const *const ::core::ffi::c_void) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ufmt_open(status : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn ufmtval_getString(ufmtval : *const UFormattedValue, plength : *mut i32, ec : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn ufmtval_nextPosition(ufmtval : *const UFormattedValue, ucfpos : *mut UConstrainedFieldPosition, ec : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ugender_getInstance(locale : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut UGenderInfo); +::windows_targets::link!("icu.dll" "cdecl" fn ugender_getListGender(genderinfo : *const UGenderInfo, genders : *const UGender, size : i32, status : *mut UErrorCode) -> UGender); +::windows_targets::link!("icu.dll" "cdecl" fn uidna_close(idna : *mut UIDNA) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uidna_labelToASCII(idna : *const UIDNA, label : *const u16, length : i32, dest : *mut u16, capacity : i32, pinfo : *mut UIDNAInfo, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uidna_labelToASCII_UTF8(idna : *const UIDNA, label : ::windows_sys::core::PCSTR, length : i32, dest : ::windows_sys::core::PCSTR, capacity : i32, pinfo : *mut UIDNAInfo, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uidna_labelToUnicode(idna : *const UIDNA, label : *const u16, length : i32, dest : *mut u16, capacity : i32, pinfo : *mut UIDNAInfo, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uidna_labelToUnicodeUTF8(idna : *const UIDNA, label : ::windows_sys::core::PCSTR, length : i32, dest : ::windows_sys::core::PCSTR, capacity : i32, pinfo : *mut UIDNAInfo, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uidna_nameToASCII(idna : *const UIDNA, name : *const u16, length : i32, dest : *mut u16, capacity : i32, pinfo : *mut UIDNAInfo, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uidna_nameToASCII_UTF8(idna : *const UIDNA, name : ::windows_sys::core::PCSTR, length : i32, dest : ::windows_sys::core::PCSTR, capacity : i32, pinfo : *mut UIDNAInfo, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uidna_nameToUnicode(idna : *const UIDNA, name : *const u16, length : i32, dest : *mut u16, capacity : i32, pinfo : *mut UIDNAInfo, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uidna_nameToUnicodeUTF8(idna : *const UIDNA, name : ::windows_sys::core::PCSTR, length : i32, dest : ::windows_sys::core::PCSTR, capacity : i32, pinfo : *mut UIDNAInfo, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uidna_openUTS46(options : u32, perrorcode : *mut UErrorCode) -> *mut UIDNA); +::windows_targets::link!("icu.dll" "cdecl" fn uiter_current32(iter : *mut UCharIterator) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uiter_getState(iter : *const UCharIterator) -> u32); +::windows_targets::link!("icu.dll" "cdecl" fn uiter_next32(iter : *mut UCharIterator) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uiter_previous32(iter : *mut UCharIterator) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uiter_setState(iter : *mut UCharIterator, state : u32, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uiter_setString(iter : *mut UCharIterator, s : *const u16, length : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uiter_setUTF16BE(iter : *mut UCharIterator, s : ::windows_sys::core::PCSTR, length : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uiter_setUTF8(iter : *mut UCharIterator, s : ::windows_sys::core::PCSTR, length : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_close(ldn : *mut ULocaleDisplayNames) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_getContext(ldn : *const ULocaleDisplayNames, r#type : UDisplayContextType, perrorcode : *mut UErrorCode) -> UDisplayContext); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_getDialectHandling(ldn : *const ULocaleDisplayNames) -> UDialectHandling); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_getLocale(ldn : *const ULocaleDisplayNames) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_keyDisplayName(ldn : *const ULocaleDisplayNames, key : ::windows_sys::core::PCSTR, result : *mut u16, maxresultsize : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_keyValueDisplayName(ldn : *const ULocaleDisplayNames, key : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR, result : *mut u16, maxresultsize : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_languageDisplayName(ldn : *const ULocaleDisplayNames, lang : ::windows_sys::core::PCSTR, result : *mut u16, maxresultsize : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_localeDisplayName(ldn : *const ULocaleDisplayNames, locale : ::windows_sys::core::PCSTR, result : *mut u16, maxresultsize : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_open(locale : ::windows_sys::core::PCSTR, dialecthandling : UDialectHandling, perrorcode : *mut UErrorCode) -> *mut ULocaleDisplayNames); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_openForContext(locale : ::windows_sys::core::PCSTR, contexts : *mut UDisplayContext, length : i32, perrorcode : *mut UErrorCode) -> *mut ULocaleDisplayNames); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_regionDisplayName(ldn : *const ULocaleDisplayNames, region : ::windows_sys::core::PCSTR, result : *mut u16, maxresultsize : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_scriptCodeDisplayName(ldn : *const ULocaleDisplayNames, scriptcode : UScriptCode, result : *mut u16, maxresultsize : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_scriptDisplayName(ldn : *const ULocaleDisplayNames, script : ::windows_sys::core::PCSTR, result : *mut u16, maxresultsize : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uldn_variantDisplayName(ldn : *const ULocaleDisplayNames, variant : ::windows_sys::core::PCSTR, result : *mut u16, maxresultsize : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ulistfmt_close(listfmt : *mut UListFormatter) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ulistfmt_closeResult(uresult : *mut UFormattedList) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ulistfmt_format(listfmt : *const UListFormatter, strings : *const *const u16, stringlengths : *const i32, stringcount : i32, result : *mut u16, resultcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ulistfmt_formatStringsToResult(listfmt : *const UListFormatter, strings : *const *const u16, stringlengths : *const i32, stringcount : i32, uresult : *mut UFormattedList, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ulistfmt_open(locale : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut UListFormatter); +::windows_targets::link!("icu.dll" "cdecl" fn ulistfmt_openForType(locale : ::windows_sys::core::PCSTR, r#type : UListFormatterType, width : UListFormatterWidth, status : *mut UErrorCode) -> *mut UListFormatter); +::windows_targets::link!("icu.dll" "cdecl" fn ulistfmt_openResult(ec : *mut UErrorCode) -> *mut UFormattedList); +::windows_targets::link!("icu.dll" "cdecl" fn ulistfmt_resultAsValue(uresult : *const UFormattedList, ec : *mut UErrorCode) -> *mut UFormattedValue); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_acceptLanguage(result : ::windows_sys::core::PCSTR, resultavailable : i32, outresult : *mut UAcceptResult, acceptlist : *const *const i8, acceptlistcount : i32, availablelocales : *mut UEnumeration, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_acceptLanguageFromHTTP(result : ::windows_sys::core::PCSTR, resultavailable : i32, outresult : *mut UAcceptResult, httpacceptlanguage : ::windows_sys::core::PCSTR, availablelocales : *mut UEnumeration, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_addLikelySubtags(localeid : ::windows_sys::core::PCSTR, maximizedlocaleid : ::windows_sys::core::PCSTR, maximizedlocaleidcapacity : i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_canonicalize(localeid : ::windows_sys::core::PCSTR, name : ::windows_sys::core::PCSTR, namecapacity : i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_countAvailable() -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_forLanguageTag(langtag : ::windows_sys::core::PCSTR, localeid : ::windows_sys::core::PCSTR, localeidcapacity : i32, parsedlength : *mut i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getAvailable(n : i32) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getBaseName(localeid : ::windows_sys::core::PCSTR, name : ::windows_sys::core::PCSTR, namecapacity : i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getCharacterOrientation(localeid : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> ULayoutType); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getCountry(localeid : ::windows_sys::core::PCSTR, country : ::windows_sys::core::PCSTR, countrycapacity : i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getDefault() -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getDisplayCountry(locale : ::windows_sys::core::PCSTR, displaylocale : ::windows_sys::core::PCSTR, country : *mut u16, countrycapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getDisplayKeyword(keyword : ::windows_sys::core::PCSTR, displaylocale : ::windows_sys::core::PCSTR, dest : *mut u16, destcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getDisplayKeywordValue(locale : ::windows_sys::core::PCSTR, keyword : ::windows_sys::core::PCSTR, displaylocale : ::windows_sys::core::PCSTR, dest : *mut u16, destcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getDisplayLanguage(locale : ::windows_sys::core::PCSTR, displaylocale : ::windows_sys::core::PCSTR, language : *mut u16, languagecapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getDisplayName(localeid : ::windows_sys::core::PCSTR, inlocaleid : ::windows_sys::core::PCSTR, result : *mut u16, maxresultsize : i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getDisplayScript(locale : ::windows_sys::core::PCSTR, displaylocale : ::windows_sys::core::PCSTR, script : *mut u16, scriptcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getDisplayVariant(locale : ::windows_sys::core::PCSTR, displaylocale : ::windows_sys::core::PCSTR, variant : *mut u16, variantcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getISO3Country(localeid : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getISO3Language(localeid : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getISOCountries() -> *mut *mut i8); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getISOLanguages() -> *mut *mut i8); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getKeywordValue(localeid : ::windows_sys::core::PCSTR, keywordname : ::windows_sys::core::PCSTR, buffer : ::windows_sys::core::PCSTR, buffercapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getLCID(localeid : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getLanguage(localeid : ::windows_sys::core::PCSTR, language : ::windows_sys::core::PCSTR, languagecapacity : i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getLineOrientation(localeid : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> ULayoutType); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getLocaleForLCID(hostid : u32, locale : ::windows_sys::core::PCSTR, localecapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getName(localeid : ::windows_sys::core::PCSTR, name : ::windows_sys::core::PCSTR, namecapacity : i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getParent(localeid : ::windows_sys::core::PCSTR, parent : ::windows_sys::core::PCSTR, parentcapacity : i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getScript(localeid : ::windows_sys::core::PCSTR, script : ::windows_sys::core::PCSTR, scriptcapacity : i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_getVariant(localeid : ::windows_sys::core::PCSTR, variant : ::windows_sys::core::PCSTR, variantcapacity : i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_isRightToLeft(locale : ::windows_sys::core::PCSTR) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_minimizeSubtags(localeid : ::windows_sys::core::PCSTR, minimizedlocaleid : ::windows_sys::core::PCSTR, minimizedlocaleidcapacity : i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_openAvailableByType(r#type : ULocAvailableType, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_openKeywords(localeid : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_setDefault(localeid : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_setKeywordValue(keywordname : ::windows_sys::core::PCSTR, keywordvalue : ::windows_sys::core::PCSTR, buffer : ::windows_sys::core::PCSTR, buffercapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_toLanguageTag(localeid : ::windows_sys::core::PCSTR, langtag : ::windows_sys::core::PCSTR, langtagcapacity : i32, strict : i8, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_toLegacyKey(keyword : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_toLegacyType(keyword : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_toUnicodeLocaleKey(keyword : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn uloc_toUnicodeLocaleType(keyword : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ulocdata_close(uld : *mut ULocaleData) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ulocdata_getCLDRVersion(versionarray : *mut u8, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ulocdata_getDelimiter(uld : *mut ULocaleData, r#type : ULocaleDataDelimiterType, result : *mut u16, resultlength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ulocdata_getExemplarSet(uld : *mut ULocaleData, fillin : *mut USet, options : u32, extype : ULocaleDataExemplarSetType, status : *mut UErrorCode) -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn ulocdata_getLocaleDisplayPattern(uld : *mut ULocaleData, pattern : *mut u16, patterncapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ulocdata_getLocaleSeparator(uld : *mut ULocaleData, separator : *mut u16, separatorcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ulocdata_getMeasurementSystem(localeid : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> UMeasurementSystem); +::windows_targets::link!("icu.dll" "cdecl" fn ulocdata_getNoSubstitute(uld : *mut ULocaleData) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ulocdata_getPaperSize(localeid : ::windows_sys::core::PCSTR, height : *mut i32, width : *mut i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ulocdata_open(localeid : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut ULocaleData); +::windows_targets::link!("icu.dll" "cdecl" fn ulocdata_setNoSubstitute(uld : *mut ULocaleData, setting : i8) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn umsg_applyPattern(fmt : *mut *mut ::core::ffi::c_void, pattern : *const u16, patternlength : i32, parseerror : *mut UParseError, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn umsg_autoQuoteApostrophe(pattern : *const u16, patternlength : i32, dest : *mut u16, destcapacity : i32, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn umsg_clone(fmt : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn umsg_close(format : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn umsg_format(fmt : *const *const ::core::ffi::c_void, result : *mut u16, resultlength : i32, status : *mut UErrorCode, ...) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn umsg_getLocale(fmt : *const *const ::core::ffi::c_void) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn umsg_open(pattern : *const u16, patternlength : i32, locale : ::windows_sys::core::PCSTR, parseerror : *mut UParseError, status : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn umsg_parse(fmt : *const *const ::core::ffi::c_void, source : *const u16, sourcelength : i32, count : *mut i32, status : *mut UErrorCode, ...) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn umsg_setLocale(fmt : *mut *mut ::core::ffi::c_void, locale : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn umsg_toPattern(fmt : *const *const ::core::ffi::c_void, result : *mut u16, resultlength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn umsg_vformat(fmt : *const *const ::core::ffi::c_void, result : *mut u16, resultlength : i32, ap : *mut i8, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn umsg_vparse(fmt : *const *const ::core::ffi::c_void, source : *const u16, sourcelength : i32, count : *mut i32, ap : *mut i8, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn umutablecptrie_buildImmutable(trie : *mut UMutableCPTrie, r#type : UCPTrieType, valuewidth : UCPTrieValueWidth, perrorcode : *mut UErrorCode) -> *mut UCPTrie); +::windows_targets::link!("icu.dll" "cdecl" fn umutablecptrie_clone(other : *const UMutableCPTrie, perrorcode : *mut UErrorCode) -> *mut UMutableCPTrie); +::windows_targets::link!("icu.dll" "cdecl" fn umutablecptrie_close(trie : *mut UMutableCPTrie) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn umutablecptrie_fromUCPMap(map : *const UCPMap, perrorcode : *mut UErrorCode) -> *mut UMutableCPTrie); +::windows_targets::link!("icu.dll" "cdecl" fn umutablecptrie_fromUCPTrie(trie : *const UCPTrie, perrorcode : *mut UErrorCode) -> *mut UMutableCPTrie); +::windows_targets::link!("icu.dll" "cdecl" fn umutablecptrie_get(trie : *const UMutableCPTrie, c : i32) -> u32); +::windows_targets::link!("icu.dll" "cdecl" fn umutablecptrie_getRange(trie : *const UMutableCPTrie, start : i32, option : UCPMapRangeOption, surrogatevalue : u32, filter : *mut UCPMapValueFilter, context : *const ::core::ffi::c_void, pvalue : *mut u32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn umutablecptrie_open(initialvalue : u32, errorvalue : u32, perrorcode : *mut UErrorCode) -> *mut UMutableCPTrie); +::windows_targets::link!("icu.dll" "cdecl" fn umutablecptrie_set(trie : *mut UMutableCPTrie, c : i32, value : u32, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn umutablecptrie_setRange(trie : *mut UMutableCPTrie, start : i32, end : i32, value : u32, perrorcode : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_append(norm2 : *const UNormalizer2, first : *mut u16, firstlength : i32, firstcapacity : i32, second : *const u16, secondlength : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_close(norm2 : *mut UNormalizer2) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_composePair(norm2 : *const UNormalizer2, a : i32, b : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_getCombiningClass(norm2 : *const UNormalizer2, c : i32) -> u8); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_getDecomposition(norm2 : *const UNormalizer2, c : i32, decomposition : *mut u16, capacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_getInstance(packagename : ::windows_sys::core::PCSTR, name : ::windows_sys::core::PCSTR, mode : UNormalization2Mode, perrorcode : *mut UErrorCode) -> *mut UNormalizer2); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_getNFCInstance(perrorcode : *mut UErrorCode) -> *mut UNormalizer2); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_getNFDInstance(perrorcode : *mut UErrorCode) -> *mut UNormalizer2); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_getNFKCCasefoldInstance(perrorcode : *mut UErrorCode) -> *mut UNormalizer2); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_getNFKCInstance(perrorcode : *mut UErrorCode) -> *mut UNormalizer2); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_getNFKDInstance(perrorcode : *mut UErrorCode) -> *mut UNormalizer2); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_getRawDecomposition(norm2 : *const UNormalizer2, c : i32, decomposition : *mut u16, capacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_hasBoundaryAfter(norm2 : *const UNormalizer2, c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_hasBoundaryBefore(norm2 : *const UNormalizer2, c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_isInert(norm2 : *const UNormalizer2, c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_isNormalized(norm2 : *const UNormalizer2, s : *const u16, length : i32, perrorcode : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_normalize(norm2 : *const UNormalizer2, src : *const u16, length : i32, dest : *mut u16, capacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_normalizeSecondAndAppend(norm2 : *const UNormalizer2, first : *mut u16, firstlength : i32, firstcapacity : i32, second : *const u16, secondlength : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_openFiltered(norm2 : *const UNormalizer2, filterset : *const USet, perrorcode : *mut UErrorCode) -> *mut UNormalizer2); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_quickCheck(norm2 : *const UNormalizer2, s : *const u16, length : i32, perrorcode : *mut UErrorCode) -> UNormalizationCheckResult); +::windows_targets::link!("icu.dll" "cdecl" fn unorm2_spanQuickCheckYes(norm2 : *const UNormalizer2, s : *const u16, length : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unorm_compare(s1 : *const u16, length1 : i32, s2 : *const u16, length2 : i32, options : u32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_applyPattern(format : *mut *mut ::core::ffi::c_void, localized : i8, pattern : *const u16, patternlength : i32, parseerror : *mut UParseError, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unum_clone(fmt : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn unum_close(fmt : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unum_countAvailable() -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_format(fmt : *const *const ::core::ffi::c_void, number : i32, result : *mut u16, resultlength : i32, pos : *mut UFieldPosition, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_formatDecimal(fmt : *const *const ::core::ffi::c_void, number : ::windows_sys::core::PCSTR, length : i32, result : *mut u16, resultlength : i32, pos : *mut UFieldPosition, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_formatDouble(fmt : *const *const ::core::ffi::c_void, number : f64, result : *mut u16, resultlength : i32, pos : *mut UFieldPosition, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_formatDoubleCurrency(fmt : *const *const ::core::ffi::c_void, number : f64, currency : *mut u16, result : *mut u16, resultlength : i32, pos : *mut UFieldPosition, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_formatDoubleForFields(format : *const *const ::core::ffi::c_void, number : f64, result : *mut u16, resultlength : i32, fpositer : *mut UFieldPositionIterator, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_formatInt64(fmt : *const *const ::core::ffi::c_void, number : i64, result : *mut u16, resultlength : i32, pos : *mut UFieldPosition, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_formatUFormattable(fmt : *const *const ::core::ffi::c_void, number : *const *const ::core::ffi::c_void, result : *mut u16, resultlength : i32, pos : *mut UFieldPosition, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_getAttribute(fmt : *const *const ::core::ffi::c_void, attr : UNumberFormatAttribute) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_getAvailable(localeindex : i32) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn unum_getContext(fmt : *const *const ::core::ffi::c_void, r#type : UDisplayContextType, status : *mut UErrorCode) -> UDisplayContext); +::windows_targets::link!("icu.dll" "cdecl" fn unum_getDoubleAttribute(fmt : *const *const ::core::ffi::c_void, attr : UNumberFormatAttribute) -> f64); +::windows_targets::link!("icu.dll" "cdecl" fn unum_getLocaleByType(fmt : *const *const ::core::ffi::c_void, r#type : ULocDataLocaleType, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn unum_getSymbol(fmt : *const *const ::core::ffi::c_void, symbol : UNumberFormatSymbol, buffer : *mut u16, size : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_getTextAttribute(fmt : *const *const ::core::ffi::c_void, tag : UNumberFormatTextAttribute, result : *mut u16, resultlength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_open(style : UNumberFormatStyle, pattern : *const u16, patternlength : i32, locale : ::windows_sys::core::PCSTR, parseerr : *mut UParseError, status : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn unum_parse(fmt : *const *const ::core::ffi::c_void, text : *const u16, textlength : i32, parsepos : *mut i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_parseDecimal(fmt : *const *const ::core::ffi::c_void, text : *const u16, textlength : i32, parsepos : *mut i32, outbuf : ::windows_sys::core::PCSTR, outbuflength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unum_parseDouble(fmt : *const *const ::core::ffi::c_void, text : *const u16, textlength : i32, parsepos : *mut i32, status : *mut UErrorCode) -> f64); +::windows_targets::link!("icu.dll" "cdecl" fn unum_parseDoubleCurrency(fmt : *const *const ::core::ffi::c_void, text : *const u16, textlength : i32, parsepos : *mut i32, currency : *mut u16, status : *mut UErrorCode) -> f64); +::windows_targets::link!("icu.dll" "cdecl" fn unum_parseInt64(fmt : *const *const ::core::ffi::c_void, text : *const u16, textlength : i32, parsepos : *mut i32, status : *mut UErrorCode) -> i64); +::windows_targets::link!("icu.dll" "cdecl" fn unum_parseToUFormattable(fmt : *const *const ::core::ffi::c_void, result : *mut *mut ::core::ffi::c_void, text : *const u16, textlength : i32, parsepos : *mut i32, status : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn unum_setAttribute(fmt : *mut *mut ::core::ffi::c_void, attr : UNumberFormatAttribute, newvalue : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unum_setContext(fmt : *mut *mut ::core::ffi::c_void, value : UDisplayContext, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unum_setDoubleAttribute(fmt : *mut *mut ::core::ffi::c_void, attr : UNumberFormatAttribute, newvalue : f64) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unum_setSymbol(fmt : *mut *mut ::core::ffi::c_void, symbol : UNumberFormatSymbol, value : *const u16, length : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unum_setTextAttribute(fmt : *mut *mut ::core::ffi::c_void, tag : UNumberFormatTextAttribute, newvalue : *const u16, newvaluelength : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unum_toPattern(fmt : *const *const ::core::ffi::c_void, ispatternlocalized : i8, result : *mut u16, resultlength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unumf_close(uformatter : *mut UNumberFormatter) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unumf_closeResult(uresult : *mut UFormattedNumber) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unumf_formatDecimal(uformatter : *const UNumberFormatter, value : ::windows_sys::core::PCSTR, valuelen : i32, uresult : *mut UFormattedNumber, ec : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unumf_formatDouble(uformatter : *const UNumberFormatter, value : f64, uresult : *mut UFormattedNumber, ec : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unumf_formatInt(uformatter : *const UNumberFormatter, value : i64, uresult : *mut UFormattedNumber, ec : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unumf_openForSkeletonAndLocale(skeleton : *const u16, skeletonlen : i32, locale : ::windows_sys::core::PCSTR, ec : *mut UErrorCode) -> *mut UNumberFormatter); +::windows_targets::link!("icu.dll" "cdecl" fn unumf_openForSkeletonAndLocaleWithError(skeleton : *const u16, skeletonlen : i32, locale : ::windows_sys::core::PCSTR, perror : *mut UParseError, ec : *mut UErrorCode) -> *mut UNumberFormatter); +::windows_targets::link!("icu.dll" "cdecl" fn unumf_openResult(ec : *mut UErrorCode) -> *mut UFormattedNumber); +::windows_targets::link!("icu.dll" "cdecl" fn unumf_resultAsValue(uresult : *const UFormattedNumber, ec : *mut UErrorCode) -> *mut UFormattedValue); +::windows_targets::link!("icu.dll" "cdecl" fn unumf_resultGetAllFieldPositions(uresult : *const UFormattedNumber, ufpositer : *mut UFieldPositionIterator, ec : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unumf_resultNextFieldPosition(uresult : *const UFormattedNumber, ufpos : *mut UFieldPosition, ec : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn unumf_resultToString(uresult : *const UFormattedNumber, buffer : *mut u16, buffercapacity : i32, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unumsys_close(unumsys : *mut UNumberingSystem) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn unumsys_getDescription(unumsys : *const UNumberingSystem, result : *mut u16, resultlength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unumsys_getName(unumsys : *const UNumberingSystem) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn unumsys_getRadix(unumsys : *const UNumberingSystem) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn unumsys_isAlgorithmic(unumsys : *const UNumberingSystem) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn unumsys_open(locale : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut UNumberingSystem); +::windows_targets::link!("icu.dll" "cdecl" fn unumsys_openAvailableNames(status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn unumsys_openByName(name : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut UNumberingSystem); +::windows_targets::link!("icu.dll" "cdecl" fn uplrules_close(uplrules : *mut UPluralRules) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uplrules_getKeywords(uplrules : *const UPluralRules, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn uplrules_open(locale : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut UPluralRules); +::windows_targets::link!("icu.dll" "cdecl" fn uplrules_openForType(locale : ::windows_sys::core::PCSTR, r#type : UPluralType, status : *mut UErrorCode) -> *mut UPluralRules); +::windows_targets::link!("icu.dll" "cdecl" fn uplrules_select(uplrules : *const UPluralRules, number : f64, keyword : *mut u16, capacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uplrules_selectFormatted(uplrules : *const UPluralRules, number : *const UFormattedNumber, keyword : *mut u16, capacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_appendReplacement(regexp : *mut URegularExpression, replacementtext : *const u16, replacementlength : i32, destbuf : *mut *mut u16, destcapacity : *mut i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_appendReplacementUText(regexp : *mut URegularExpression, replacementtext : *mut UText, dest : *mut UText, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_appendTail(regexp : *mut URegularExpression, destbuf : *mut *mut u16, destcapacity : *mut i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_appendTailUText(regexp : *mut URegularExpression, dest : *mut UText, status : *mut UErrorCode) -> *mut UText); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_clone(regexp : *const URegularExpression, status : *mut UErrorCode) -> *mut URegularExpression); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_close(regexp : *mut URegularExpression) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_end(regexp : *mut URegularExpression, groupnum : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_end64(regexp : *mut URegularExpression, groupnum : i32, status : *mut UErrorCode) -> i64); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_find(regexp : *mut URegularExpression, startindex : i32, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_find64(regexp : *mut URegularExpression, startindex : i64, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_findNext(regexp : *mut URegularExpression, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_flags(regexp : *const URegularExpression, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_getFindProgressCallback(regexp : *const URegularExpression, callback : *mut URegexFindProgressCallback, context : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_getMatchCallback(regexp : *const URegularExpression, callback : *mut URegexMatchCallback, context : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_getStackLimit(regexp : *const URegularExpression, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_getText(regexp : *mut URegularExpression, textlength : *mut i32, status : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_getTimeLimit(regexp : *const URegularExpression, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_getUText(regexp : *mut URegularExpression, dest : *mut UText, status : *mut UErrorCode) -> *mut UText); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_group(regexp : *mut URegularExpression, groupnum : i32, dest : *mut u16, destcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_groupCount(regexp : *mut URegularExpression, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_groupNumberFromCName(regexp : *mut URegularExpression, groupname : ::windows_sys::core::PCSTR, namelength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_groupNumberFromName(regexp : *mut URegularExpression, groupname : *const u16, namelength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_groupUText(regexp : *mut URegularExpression, groupnum : i32, dest : *mut UText, grouplength : *mut i64, status : *mut UErrorCode) -> *mut UText); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_hasAnchoringBounds(regexp : *const URegularExpression, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_hasTransparentBounds(regexp : *const URegularExpression, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_hitEnd(regexp : *const URegularExpression, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_lookingAt(regexp : *mut URegularExpression, startindex : i32, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_lookingAt64(regexp : *mut URegularExpression, startindex : i64, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_matches(regexp : *mut URegularExpression, startindex : i32, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_matches64(regexp : *mut URegularExpression, startindex : i64, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_open(pattern : *const u16, patternlength : i32, flags : u32, pe : *mut UParseError, status : *mut UErrorCode) -> *mut URegularExpression); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_openC(pattern : ::windows_sys::core::PCSTR, flags : u32, pe : *mut UParseError, status : *mut UErrorCode) -> *mut URegularExpression); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_openUText(pattern : *mut UText, flags : u32, pe : *mut UParseError, status : *mut UErrorCode) -> *mut URegularExpression); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_pattern(regexp : *const URegularExpression, patlength : *mut i32, status : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_patternUText(regexp : *const URegularExpression, status : *mut UErrorCode) -> *mut UText); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_refreshUText(regexp : *mut URegularExpression, text : *mut UText, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_regionEnd(regexp : *const URegularExpression, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_regionEnd64(regexp : *const URegularExpression, status : *mut UErrorCode) -> i64); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_regionStart(regexp : *const URegularExpression, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_regionStart64(regexp : *const URegularExpression, status : *mut UErrorCode) -> i64); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_replaceAll(regexp : *mut URegularExpression, replacementtext : *const u16, replacementlength : i32, destbuf : *mut u16, destcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_replaceAllUText(regexp : *mut URegularExpression, replacement : *mut UText, dest : *mut UText, status : *mut UErrorCode) -> *mut UText); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_replaceFirst(regexp : *mut URegularExpression, replacementtext : *const u16, replacementlength : i32, destbuf : *mut u16, destcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_replaceFirstUText(regexp : *mut URegularExpression, replacement : *mut UText, dest : *mut UText, status : *mut UErrorCode) -> *mut UText); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_requireEnd(regexp : *const URegularExpression, status : *mut UErrorCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_reset(regexp : *mut URegularExpression, index : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_reset64(regexp : *mut URegularExpression, index : i64, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_setFindProgressCallback(regexp : *mut URegularExpression, callback : URegexFindProgressCallback, context : *const ::core::ffi::c_void, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_setMatchCallback(regexp : *mut URegularExpression, callback : URegexMatchCallback, context : *const ::core::ffi::c_void, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_setRegion(regexp : *mut URegularExpression, regionstart : i32, regionlimit : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_setRegion64(regexp : *mut URegularExpression, regionstart : i64, regionlimit : i64, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_setRegionAndStart(regexp : *mut URegularExpression, regionstart : i64, regionlimit : i64, startindex : i64, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_setStackLimit(regexp : *mut URegularExpression, limit : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_setText(regexp : *mut URegularExpression, text : *const u16, textlength : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_setTimeLimit(regexp : *mut URegularExpression, limit : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_setUText(regexp : *mut URegularExpression, text : *mut UText, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_split(regexp : *mut URegularExpression, destbuf : *mut u16, destcapacity : i32, requiredcapacity : *mut i32, destfields : *mut *mut u16, destfieldscapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_splitUText(regexp : *mut URegularExpression, destfields : *mut *mut UText, destfieldscapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_start(regexp : *mut URegularExpression, groupnum : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_start64(regexp : *mut URegularExpression, groupnum : i32, status : *mut UErrorCode) -> i64); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_useAnchoringBounds(regexp : *mut URegularExpression, b : i8, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregex_useTransparentBounds(regexp : *mut URegularExpression, b : i8, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uregion_areEqual(uregion : *const URegion, otherregion : *const URegion) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uregion_contains(uregion : *const URegion, otherregion : *const URegion) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uregion_getAvailable(r#type : URegionType, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn uregion_getContainedRegions(uregion : *const URegion, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn uregion_getContainedRegionsOfType(uregion : *const URegion, r#type : URegionType, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn uregion_getContainingRegion(uregion : *const URegion) -> *mut URegion); +::windows_targets::link!("icu.dll" "cdecl" fn uregion_getContainingRegionOfType(uregion : *const URegion, r#type : URegionType) -> *mut URegion); +::windows_targets::link!("icu.dll" "cdecl" fn uregion_getNumericCode(uregion : *const URegion) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uregion_getPreferredValues(uregion : *const URegion, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn uregion_getRegionCode(uregion : *const URegion) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn uregion_getRegionFromCode(regioncode : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut URegion); +::windows_targets::link!("icu.dll" "cdecl" fn uregion_getRegionFromNumericCode(code : i32, status : *mut UErrorCode) -> *mut URegion); +::windows_targets::link!("icu.dll" "cdecl" fn uregion_getType(uregion : *const URegion) -> URegionType); +::windows_targets::link!("icu.dll" "cdecl" fn ureldatefmt_close(reldatefmt : *mut URelativeDateTimeFormatter) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ureldatefmt_closeResult(ufrdt : *mut UFormattedRelativeDateTime) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ureldatefmt_combineDateAndTime(reldatefmt : *const URelativeDateTimeFormatter, relativedatestring : *const u16, relativedatestringlen : i32, timestring : *const u16, timestringlen : i32, result : *mut u16, resultcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ureldatefmt_format(reldatefmt : *const URelativeDateTimeFormatter, offset : f64, unit : URelativeDateTimeUnit, result : *mut u16, resultcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ureldatefmt_formatNumeric(reldatefmt : *const URelativeDateTimeFormatter, offset : f64, unit : URelativeDateTimeUnit, result : *mut u16, resultcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ureldatefmt_formatNumericToResult(reldatefmt : *const URelativeDateTimeFormatter, offset : f64, unit : URelativeDateTimeUnit, result : *mut UFormattedRelativeDateTime, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ureldatefmt_formatToResult(reldatefmt : *const URelativeDateTimeFormatter, offset : f64, unit : URelativeDateTimeUnit, result : *mut UFormattedRelativeDateTime, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ureldatefmt_open(locale : ::windows_sys::core::PCSTR, nftoadopt : *mut *mut ::core::ffi::c_void, width : UDateRelativeDateTimeFormatterStyle, capitalizationcontext : UDisplayContext, status : *mut UErrorCode) -> *mut URelativeDateTimeFormatter); +::windows_targets::link!("icu.dll" "cdecl" fn ureldatefmt_openResult(ec : *mut UErrorCode) -> *mut UFormattedRelativeDateTime); +::windows_targets::link!("icu.dll" "cdecl" fn ureldatefmt_resultAsValue(ufrdt : *const UFormattedRelativeDateTime, ec : *mut UErrorCode) -> *mut UFormattedValue); +::windows_targets::link!("icu.dll" "cdecl" fn ures_close(resourcebundle : *mut UResourceBundle) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getBinary(resourcebundle : *const UResourceBundle, len : *mut i32, status : *mut UErrorCode) -> *mut u8); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getByIndex(resourcebundle : *const UResourceBundle, indexr : i32, fillin : *mut UResourceBundle, status : *mut UErrorCode) -> *mut UResourceBundle); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getByKey(resourcebundle : *const UResourceBundle, key : ::windows_sys::core::PCSTR, fillin : *mut UResourceBundle, status : *mut UErrorCode) -> *mut UResourceBundle); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getInt(resourcebundle : *const UResourceBundle, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getIntVector(resourcebundle : *const UResourceBundle, len : *mut i32, status : *mut UErrorCode) -> *mut i32); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getKey(resourcebundle : *const UResourceBundle) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getLocaleByType(resourcebundle : *const UResourceBundle, r#type : ULocDataLocaleType, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getNextResource(resourcebundle : *mut UResourceBundle, fillin : *mut UResourceBundle, status : *mut UErrorCode) -> *mut UResourceBundle); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getNextString(resourcebundle : *mut UResourceBundle, len : *mut i32, key : *const *const i8, status : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getSize(resourcebundle : *const UResourceBundle) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getString(resourcebundle : *const UResourceBundle, len : *mut i32, status : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getStringByIndex(resourcebundle : *const UResourceBundle, indexs : i32, len : *mut i32, status : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getStringByKey(resb : *const UResourceBundle, key : ::windows_sys::core::PCSTR, len : *mut i32, status : *mut UErrorCode) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getType(resourcebundle : *const UResourceBundle) -> UResType); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getUInt(resourcebundle : *const UResourceBundle, status : *mut UErrorCode) -> u32); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getUTF8String(resb : *const UResourceBundle, dest : ::windows_sys::core::PCSTR, length : *mut i32, forcecopy : i8, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getUTF8StringByIndex(resb : *const UResourceBundle, stringindex : i32, dest : ::windows_sys::core::PCSTR, plength : *mut i32, forcecopy : i8, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getUTF8StringByKey(resb : *const UResourceBundle, key : ::windows_sys::core::PCSTR, dest : ::windows_sys::core::PCSTR, plength : *mut i32, forcecopy : i8, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn ures_getVersion(resb : *const UResourceBundle, versioninfo : *mut u8) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn ures_hasNext(resourcebundle : *const UResourceBundle) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn ures_open(packagename : ::windows_sys::core::PCSTR, locale : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut UResourceBundle); +::windows_targets::link!("icu.dll" "cdecl" fn ures_openAvailableLocales(packagename : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn ures_openDirect(packagename : ::windows_sys::core::PCSTR, locale : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut UResourceBundle); +::windows_targets::link!("icu.dll" "cdecl" fn ures_openU(packagename : *const u16, locale : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut UResourceBundle); +::windows_targets::link!("icu.dll" "cdecl" fn ures_resetIterator(resourcebundle : *mut UResourceBundle) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uscript_breaksBetweenLetters(script : UScriptCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uscript_getCode(nameorabbrorlocale : ::windows_sys::core::PCSTR, fillin : *mut UScriptCode, capacity : i32, err : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uscript_getName(scriptcode : UScriptCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn uscript_getSampleString(script : UScriptCode, dest : *mut u16, capacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uscript_getScript(codepoint : i32, err : *mut UErrorCode) -> UScriptCode); +::windows_targets::link!("icu.dll" "cdecl" fn uscript_getScriptExtensions(c : i32, scripts : *mut UScriptCode, capacity : i32, errorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uscript_getShortName(scriptcode : UScriptCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn uscript_getUsage(script : UScriptCode) -> UScriptUsage); +::windows_targets::link!("icu.dll" "cdecl" fn uscript_hasScript(c : i32, sc : UScriptCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uscript_isCased(script : UScriptCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uscript_isRightToLeft(script : UScriptCode) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_close(searchiter : *mut UStringSearch) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_first(strsrch : *mut UStringSearch, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_following(strsrch : *mut UStringSearch, position : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_getAttribute(strsrch : *const UStringSearch, attribute : USearchAttribute) -> USearchAttributeValue); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_getBreakIterator(strsrch : *const UStringSearch) -> *mut UBreakIterator); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_getCollator(strsrch : *const UStringSearch) -> *mut UCollator); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_getMatchedLength(strsrch : *const UStringSearch) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_getMatchedStart(strsrch : *const UStringSearch) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_getMatchedText(strsrch : *const UStringSearch, result : *mut u16, resultcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_getOffset(strsrch : *const UStringSearch) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_getPattern(strsrch : *const UStringSearch, length : *mut i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_getText(strsrch : *const UStringSearch, length : *mut i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_last(strsrch : *mut UStringSearch, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_next(strsrch : *mut UStringSearch, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_open(pattern : *const u16, patternlength : i32, text : *const u16, textlength : i32, locale : ::windows_sys::core::PCSTR, breakiter : *mut UBreakIterator, status : *mut UErrorCode) -> *mut UStringSearch); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_openFromCollator(pattern : *const u16, patternlength : i32, text : *const u16, textlength : i32, collator : *const UCollator, breakiter : *mut UBreakIterator, status : *mut UErrorCode) -> *mut UStringSearch); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_preceding(strsrch : *mut UStringSearch, position : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_previous(strsrch : *mut UStringSearch, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_reset(strsrch : *mut UStringSearch) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_setAttribute(strsrch : *mut UStringSearch, attribute : USearchAttribute, value : USearchAttributeValue, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_setBreakIterator(strsrch : *mut UStringSearch, breakiter : *mut UBreakIterator, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_setCollator(strsrch : *mut UStringSearch, collator : *const UCollator, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_setOffset(strsrch : *mut UStringSearch, position : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_setPattern(strsrch : *mut UStringSearch, pattern : *const u16, patternlength : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn usearch_setText(strsrch : *mut UStringSearch, text : *const u16, textlength : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_add(set : *mut USet, c : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_addAll(set : *mut USet, additionalset : *const USet) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_addAllCodePoints(set : *mut USet, str : *const u16, strlen : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_addRange(set : *mut USet, start : i32, end : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_addString(set : *mut USet, str : *const u16, strlen : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_applyIntPropertyValue(set : *mut USet, prop : UProperty, value : i32, ec : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_applyPattern(set : *mut USet, pattern : *const u16, patternlength : i32, options : u32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uset_applyPropertyAlias(set : *mut USet, prop : *const u16, proplength : i32, value : *const u16, valuelength : i32, ec : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_charAt(set : *const USet, charindex : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uset_clear(set : *mut USet) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_clone(set : *const USet) -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn uset_cloneAsThawed(set : *const USet) -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn uset_close(set : *mut USet) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_closeOver(set : *mut USet, attributes : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_compact(set : *mut USet) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_complement(set : *mut USet) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_complementAll(set : *mut USet, complement : *const USet) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_contains(set : *const USet, c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_containsAll(set1 : *const USet, set2 : *const USet) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_containsAllCodePoints(set : *const USet, str : *const u16, strlen : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_containsNone(set1 : *const USet, set2 : *const USet) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_containsRange(set : *const USet, start : i32, end : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_containsSome(set1 : *const USet, set2 : *const USet) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_containsString(set : *const USet, str : *const u16, strlen : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_equals(set1 : *const USet, set2 : *const USet) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_freeze(set : *mut USet) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_getItem(set : *const USet, itemindex : i32, start : *mut i32, end : *mut i32, str : *mut u16, strcapacity : i32, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uset_getItemCount(set : *const USet) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uset_getSerializedRange(set : *const USerializedSet, rangeindex : i32, pstart : *mut i32, pend : *mut i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_getSerializedRangeCount(set : *const USerializedSet) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uset_getSerializedSet(fillset : *mut USerializedSet, src : *const u16, srclength : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_indexOf(set : *const USet, c : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uset_isEmpty(set : *const USet) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_isFrozen(set : *const USet) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_open(start : i32, end : i32) -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn uset_openEmpty() -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn uset_openPattern(pattern : *const u16, patternlength : i32, ec : *mut UErrorCode) -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn uset_openPatternOptions(pattern : *const u16, patternlength : i32, options : u32, ec : *mut UErrorCode) -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn uset_remove(set : *mut USet, c : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_removeAll(set : *mut USet, removeset : *const USet) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_removeAllStrings(set : *mut USet) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_removeRange(set : *mut USet, start : i32, end : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_removeString(set : *mut USet, str : *const u16, strlen : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_resemblesPattern(pattern : *const u16, patternlength : i32, pos : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_retain(set : *mut USet, start : i32, end : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_retainAll(set : *mut USet, retain : *const USet) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_serialize(set : *const USet, dest : *mut u16, destcapacity : i32, perrorcode : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uset_serializedContains(set : *const USerializedSet, c : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn uset_set(set : *mut USet, start : i32, end : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_setSerializedToOne(fillset : *mut USerializedSet, c : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uset_size(set : *const USet) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uset_span(set : *const USet, s : *const u16, length : i32, spancondition : USetSpanCondition) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uset_spanBack(set : *const USet, s : *const u16, length : i32, spancondition : USetSpanCondition) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uset_spanBackUTF8(set : *const USet, s : ::windows_sys::core::PCSTR, length : i32, spancondition : USetSpanCondition) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uset_spanUTF8(set : *const USet, s : ::windows_sys::core::PCSTR, length : i32, spancondition : USetSpanCondition) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uset_toPattern(set : *const USet, result : *mut u16, resultcapacity : i32, escapeunprintable : i8, ec : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_areConfusable(sc : *const USpoofChecker, id1 : *const u16, length1 : i32, id2 : *const u16, length2 : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_areConfusableUTF8(sc : *const USpoofChecker, id1 : ::windows_sys::core::PCSTR, length1 : i32, id2 : ::windows_sys::core::PCSTR, length2 : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_check(sc : *const USpoofChecker, id : *const u16, length : i32, position : *mut i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_check2(sc : *const USpoofChecker, id : *const u16, length : i32, checkresult : *mut USpoofCheckResult, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_check2UTF8(sc : *const USpoofChecker, id : ::windows_sys::core::PCSTR, length : i32, checkresult : *mut USpoofCheckResult, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_checkUTF8(sc : *const USpoofChecker, id : ::windows_sys::core::PCSTR, length : i32, position : *mut i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_clone(sc : *const USpoofChecker, status : *mut UErrorCode) -> *mut USpoofChecker); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_close(sc : *mut USpoofChecker) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_closeCheckResult(checkresult : *mut USpoofCheckResult) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_getAllowedChars(sc : *const USpoofChecker, status : *mut UErrorCode) -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_getAllowedLocales(sc : *mut USpoofChecker, status : *mut UErrorCode) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_getCheckResultChecks(checkresult : *const USpoofCheckResult, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_getCheckResultNumerics(checkresult : *const USpoofCheckResult, status : *mut UErrorCode) -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_getCheckResultRestrictionLevel(checkresult : *const USpoofCheckResult, status : *mut UErrorCode) -> URestrictionLevel); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_getChecks(sc : *const USpoofChecker, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_getInclusionSet(status : *mut UErrorCode) -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_getRecommendedSet(status : *mut UErrorCode) -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_getRestrictionLevel(sc : *const USpoofChecker) -> URestrictionLevel); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_getSkeleton(sc : *const USpoofChecker, r#type : u32, id : *const u16, length : i32, dest : *mut u16, destcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_getSkeletonUTF8(sc : *const USpoofChecker, r#type : u32, id : ::windows_sys::core::PCSTR, length : i32, dest : ::windows_sys::core::PCSTR, destcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_open(status : *mut UErrorCode) -> *mut USpoofChecker); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_openCheckResult(status : *mut UErrorCode) -> *mut USpoofCheckResult); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_openFromSerialized(data : *const ::core::ffi::c_void, length : i32, pactuallength : *mut i32, perrorcode : *mut UErrorCode) -> *mut USpoofChecker); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_openFromSource(confusables : ::windows_sys::core::PCSTR, confusableslen : i32, confusableswholescript : ::windows_sys::core::PCSTR, confusableswholescriptlen : i32, errtype : *mut i32, pe : *mut UParseError, status : *mut UErrorCode) -> *mut USpoofChecker); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_serialize(sc : *mut USpoofChecker, data : *mut ::core::ffi::c_void, capacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_setAllowedChars(sc : *mut USpoofChecker, chars : *const USet, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_setAllowedLocales(sc : *mut USpoofChecker, localeslist : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_setChecks(sc : *mut USpoofChecker, checks : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn uspoof_setRestrictionLevel(sc : *mut USpoofChecker, restrictionlevel : URestrictionLevel) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn usprep_close(profile : *mut UStringPrepProfile) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn usprep_open(path : ::windows_sys::core::PCSTR, filename : ::windows_sys::core::PCSTR, status : *mut UErrorCode) -> *mut UStringPrepProfile); +::windows_targets::link!("icu.dll" "cdecl" fn usprep_openByType(r#type : UStringPrepProfileType, status : *mut UErrorCode) -> *mut UStringPrepProfile); +::windows_targets::link!("icu.dll" "cdecl" fn usprep_prepare(prep : *const UStringPrepProfile, src : *const u16, srclength : i32, dest : *mut u16, destcapacity : i32, options : i32, parseerror : *mut UParseError, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utext_char32At(ut : *mut UText, nativeindex : i64) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utext_clone(dest : *mut UText, src : *const UText, deep : i8, readonly : i8, status : *mut UErrorCode) -> *mut UText); +::windows_targets::link!("icu.dll" "cdecl" fn utext_close(ut : *mut UText) -> *mut UText); +::windows_targets::link!("icu.dll" "cdecl" fn utext_copy(ut : *mut UText, nativestart : i64, nativelimit : i64, destindex : i64, r#move : i8, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn utext_current32(ut : *mut UText) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utext_equals(a : *const UText, b : *const UText) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn utext_extract(ut : *mut UText, nativestart : i64, nativelimit : i64, dest : *mut u16, destcapacity : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utext_freeze(ut : *mut UText) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn utext_getNativeIndex(ut : *const UText) -> i64); +::windows_targets::link!("icu.dll" "cdecl" fn utext_getPreviousNativeIndex(ut : *mut UText) -> i64); +::windows_targets::link!("icu.dll" "cdecl" fn utext_hasMetaData(ut : *const UText) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn utext_isLengthExpensive(ut : *const UText) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn utext_isWritable(ut : *const UText) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn utext_moveIndex32(ut : *mut UText, delta : i32) -> i8); +::windows_targets::link!("icu.dll" "cdecl" fn utext_nativeLength(ut : *mut UText) -> i64); +::windows_targets::link!("icu.dll" "cdecl" fn utext_next32(ut : *mut UText) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utext_next32From(ut : *mut UText, nativeindex : i64) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utext_openUChars(ut : *mut UText, s : *const u16, length : i64, status : *mut UErrorCode) -> *mut UText); +::windows_targets::link!("icu.dll" "cdecl" fn utext_openUTF8(ut : *mut UText, s : ::windows_sys::core::PCSTR, length : i64, status : *mut UErrorCode) -> *mut UText); +::windows_targets::link!("icu.dll" "cdecl" fn utext_previous32(ut : *mut UText) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utext_previous32From(ut : *mut UText, nativeindex : i64) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utext_replace(ut : *mut UText, nativestart : i64, nativelimit : i64, replacementtext : *const u16, replacementlength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utext_setNativeIndex(ut : *mut UText, nativeindex : i64) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn utext_setup(ut : *mut UText, extraspace : i32, status : *mut UErrorCode) -> *mut UText); +::windows_targets::link!("icu.dll" "cdecl" fn utf8_appendCharSafeBody(s : *mut u8, i : i32, length : i32, c : i32, piserror : *mut i8) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utf8_back1SafeBody(s : *const u8, start : i32, i : i32) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utf8_nextCharSafeBody(s : *const u8, pi : *mut i32, length : i32, c : i32, strict : i8) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utf8_prevCharSafeBody(s : *const u8, start : i32, pi : *mut i32, c : i32, strict : i8) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utmscale_fromInt64(othertime : i64, timescale : UDateTimeScale, status : *mut UErrorCode) -> i64); +::windows_targets::link!("icu.dll" "cdecl" fn utmscale_getTimeScaleValue(timescale : UDateTimeScale, value : UTimeScaleValue, status : *mut UErrorCode) -> i64); +::windows_targets::link!("icu.dll" "cdecl" fn utmscale_toInt64(universaltime : i64, timescale : UDateTimeScale, status : *mut UErrorCode) -> i64); +::windows_targets::link!("icu.dll" "cdecl" fn utrace_format(outbuf : ::windows_sys::core::PCSTR, capacity : i32, indent : i32, fmt : ::windows_sys::core::PCSTR, ...) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utrace_functionName(fnnumber : i32) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("icu.dll" "cdecl" fn utrace_getFunctions(context : *const *const ::core::ffi::c_void, e : *mut UTraceEntry, x : *mut UTraceExit, d : *mut UTraceData) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn utrace_getLevel() -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utrace_setFunctions(context : *const ::core::ffi::c_void, e : UTraceEntry, x : UTraceExit, d : UTraceData) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn utrace_setLevel(tracelevel : i32) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn utrace_vformat(outbuf : ::windows_sys::core::PCSTR, capacity : i32, indent : i32, fmt : ::windows_sys::core::PCSTR, args : *mut i8) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_clone(trans : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_close(trans : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_countAvailableIDs() -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_getSourceSet(trans : *const *const ::core::ffi::c_void, ignorefilter : i8, fillin : *mut USet, status : *mut UErrorCode) -> *mut USet); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_getUnicodeID(trans : *const *const ::core::ffi::c_void, resultlength : *mut i32) -> *mut u16); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_openIDs(perrorcode : *mut UErrorCode) -> *mut UEnumeration); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_openInverse(trans : *const *const ::core::ffi::c_void, status : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_openU(id : *const u16, idlength : i32, dir : UTransDirection, rules : *const u16, ruleslength : i32, parseerror : *mut UParseError, perrorcode : *mut UErrorCode) -> *mut *mut ::core::ffi::c_void); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_register(adoptedtrans : *mut *mut ::core::ffi::c_void, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_setFilter(trans : *mut *mut ::core::ffi::c_void, filterpattern : *const u16, filterpatternlen : i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_toRules(trans : *const *const ::core::ffi::c_void, escapeunprintable : i8, result : *mut u16, resultlength : i32, status : *mut UErrorCode) -> i32); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_trans(trans : *const *const ::core::ffi::c_void, rep : *mut *mut ::core::ffi::c_void, repfunc : *const UReplaceableCallbacks, start : i32, limit : *mut i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_transIncremental(trans : *const *const ::core::ffi::c_void, rep : *mut *mut ::core::ffi::c_void, repfunc : *const UReplaceableCallbacks, pos : *mut UTransPosition, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_transIncrementalUChars(trans : *const *const ::core::ffi::c_void, text : *mut u16, textlength : *mut i32, textcapacity : i32, pos : *mut UTransPosition, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_transUChars(trans : *const *const ::core::ffi::c_void, text : *mut u16, textlength : *mut i32, textcapacity : i32, start : i32, limit : *mut i32, status : *mut UErrorCode) -> ()); +::windows_targets::link!("icu.dll" "cdecl" fn utrans_unregisterID(id : *const u16, idlength : i32) -> ()); +pub type IComprehensiveSpellCheckProvider = *mut ::core::ffi::c_void; +pub type IEnumCodePage = *mut ::core::ffi::c_void; +pub type IEnumRfc1766 = *mut ::core::ffi::c_void; +pub type IEnumScript = *mut ::core::ffi::c_void; +pub type IEnumSpellingError = *mut ::core::ffi::c_void; +pub type IMLangCodePages = *mut ::core::ffi::c_void; +pub type IMLangConvertCharset = *mut ::core::ffi::c_void; +pub type IMLangFontLink = *mut ::core::ffi::c_void; +pub type IMLangFontLink2 = *mut ::core::ffi::c_void; +pub type IMLangLineBreakConsole = *mut ::core::ffi::c_void; +pub type IMLangString = *mut ::core::ffi::c_void; +pub type IMLangStringAStr = *mut ::core::ffi::c_void; +pub type IMLangStringBufA = *mut ::core::ffi::c_void; +pub type IMLangStringBufW = *mut ::core::ffi::c_void; +pub type IMLangStringWStr = *mut ::core::ffi::c_void; +pub type IMultiLanguage = *mut ::core::ffi::c_void; +pub type IMultiLanguage2 = *mut ::core::ffi::c_void; +pub type IMultiLanguage3 = *mut ::core::ffi::c_void; +pub type IOptionDescription = *mut ::core::ffi::c_void; +pub type ISpellCheckProvider = *mut ::core::ffi::c_void; +pub type ISpellCheckProviderFactory = *mut ::core::ffi::c_void; +pub type ISpellChecker = *mut ::core::ffi::c_void; +pub type ISpellChecker2 = *mut ::core::ffi::c_void; +pub type ISpellCheckerChangedEventHandler = *mut ::core::ffi::c_void; +pub type ISpellCheckerFactory = *mut ::core::ffi::c_void; +pub type ISpellingError = *mut ::core::ffi::c_void; +pub type IUserDictionariesRegistrar = *mut ::core::ffi::c_void; +pub const ALL_SERVICES: u32 = 0u32; +pub const ALL_SERVICE_TYPES: u32 = 0u32; +pub const C1_ALPHA: u32 = 256u32; +pub const C1_BLANK: u32 = 64u32; +pub const C1_CNTRL: u32 = 32u32; +pub const C1_DEFINED: u32 = 512u32; +pub const C1_DIGIT: u32 = 4u32; +pub const C1_LOWER: u32 = 2u32; +pub const C1_PUNCT: u32 = 16u32; +pub const C1_SPACE: u32 = 8u32; +pub const C1_UPPER: u32 = 1u32; +pub const C1_XDIGIT: u32 = 128u32; +pub const C2_ARABICNUMBER: u32 = 6u32; +pub const C2_BLOCKSEPARATOR: u32 = 8u32; +pub const C2_COMMONSEPARATOR: u32 = 7u32; +pub const C2_EUROPENUMBER: u32 = 3u32; +pub const C2_EUROPESEPARATOR: u32 = 4u32; +pub const C2_EUROPETERMINATOR: u32 = 5u32; +pub const C2_LEFTTORIGHT: u32 = 1u32; +pub const C2_NOTAPPLICABLE: u32 = 0u32; +pub const C2_OTHERNEUTRAL: u32 = 11u32; +pub const C2_RIGHTTOLEFT: u32 = 2u32; +pub const C2_SEGMENTSEPARATOR: u32 = 9u32; +pub const C2_WHITESPACE: u32 = 10u32; +pub const C3_ALPHA: u32 = 32768u32; +pub const C3_DIACRITIC: u32 = 2u32; +pub const C3_FULLWIDTH: u32 = 128u32; +pub const C3_HALFWIDTH: u32 = 64u32; +pub const C3_HIGHSURROGATE: u32 = 2048u32; +pub const C3_HIRAGANA: u32 = 32u32; +pub const C3_IDEOGRAPH: u32 = 256u32; +pub const C3_KASHIDA: u32 = 512u32; +pub const C3_KATAKANA: u32 = 16u32; +pub const C3_LEXICAL: u32 = 1024u32; +pub const C3_LOWSURROGATE: u32 = 4096u32; +pub const C3_NONSPACING: u32 = 1u32; +pub const C3_NOTAPPLICABLE: u32 = 0u32; +pub const C3_SYMBOL: u32 = 8u32; +pub const C3_VOWELMARK: u32 = 4u32; +pub const CAL_GREGORIAN: u32 = 1u32; +pub const CAL_GREGORIAN_ARABIC: u32 = 10u32; +pub const CAL_GREGORIAN_ME_FRENCH: u32 = 9u32; +pub const CAL_GREGORIAN_US: u32 = 2u32; +pub const CAL_GREGORIAN_XLIT_ENGLISH: u32 = 11u32; +pub const CAL_GREGORIAN_XLIT_FRENCH: u32 = 12u32; +pub const CAL_HEBREW: u32 = 8u32; +pub const CAL_HIJRI: u32 = 6u32; +pub const CAL_ICALINTVALUE: u32 = 1u32; +pub const CAL_ITWODIGITYEARMAX: u32 = 48u32; +pub const CAL_IYEAROFFSETRANGE: u32 = 3u32; +pub const CAL_JAPAN: u32 = 3u32; +pub const CAL_KOREA: u32 = 5u32; +pub const CAL_NOUSEROVERRIDE: u32 = 2147483648u32; +pub const CAL_PERSIAN: u32 = 22u32; +pub const CAL_RETURN_GENITIVE_NAMES: u32 = 268435456u32; +pub const CAL_RETURN_NUMBER: u32 = 536870912u32; +pub const CAL_SABBREVDAYNAME1: u32 = 14u32; +pub const CAL_SABBREVDAYNAME2: u32 = 15u32; +pub const CAL_SABBREVDAYNAME3: u32 = 16u32; +pub const CAL_SABBREVDAYNAME4: u32 = 17u32; +pub const CAL_SABBREVDAYNAME5: u32 = 18u32; +pub const CAL_SABBREVDAYNAME6: u32 = 19u32; +pub const CAL_SABBREVDAYNAME7: u32 = 20u32; +pub const CAL_SABBREVERASTRING: u32 = 57u32; +pub const CAL_SABBREVMONTHNAME1: u32 = 34u32; +pub const CAL_SABBREVMONTHNAME10: u32 = 43u32; +pub const CAL_SABBREVMONTHNAME11: u32 = 44u32; +pub const CAL_SABBREVMONTHNAME12: u32 = 45u32; +pub const CAL_SABBREVMONTHNAME13: u32 = 46u32; +pub const CAL_SABBREVMONTHNAME2: u32 = 35u32; +pub const CAL_SABBREVMONTHNAME3: u32 = 36u32; +pub const CAL_SABBREVMONTHNAME4: u32 = 37u32; +pub const CAL_SABBREVMONTHNAME5: u32 = 38u32; +pub const CAL_SABBREVMONTHNAME6: u32 = 39u32; +pub const CAL_SABBREVMONTHNAME7: u32 = 40u32; +pub const CAL_SABBREVMONTHNAME8: u32 = 41u32; +pub const CAL_SABBREVMONTHNAME9: u32 = 42u32; +pub const CAL_SCALNAME: u32 = 2u32; +pub const CAL_SDAYNAME1: u32 = 7u32; +pub const CAL_SDAYNAME2: u32 = 8u32; +pub const CAL_SDAYNAME3: u32 = 9u32; +pub const CAL_SDAYNAME4: u32 = 10u32; +pub const CAL_SDAYNAME5: u32 = 11u32; +pub const CAL_SDAYNAME6: u32 = 12u32; +pub const CAL_SDAYNAME7: u32 = 13u32; +pub const CAL_SENGLISHABBREVERANAME: u32 = 60u32; +pub const CAL_SENGLISHERANAME: u32 = 59u32; +pub const CAL_SERASTRING: u32 = 4u32; +pub const CAL_SJAPANESEERAFIRSTYEAR: u32 = 61u32; +pub const CAL_SLONGDATE: u32 = 6u32; +pub const CAL_SMONTHDAY: u32 = 56u32; +pub const CAL_SMONTHNAME1: u32 = 21u32; +pub const CAL_SMONTHNAME10: u32 = 30u32; +pub const CAL_SMONTHNAME11: u32 = 31u32; +pub const CAL_SMONTHNAME12: u32 = 32u32; +pub const CAL_SMONTHNAME13: u32 = 33u32; +pub const CAL_SMONTHNAME2: u32 = 22u32; +pub const CAL_SMONTHNAME3: u32 = 23u32; +pub const CAL_SMONTHNAME4: u32 = 24u32; +pub const CAL_SMONTHNAME5: u32 = 25u32; +pub const CAL_SMONTHNAME6: u32 = 26u32; +pub const CAL_SMONTHNAME7: u32 = 27u32; +pub const CAL_SMONTHNAME8: u32 = 28u32; +pub const CAL_SMONTHNAME9: u32 = 29u32; +pub const CAL_SRELATIVELONGDATE: u32 = 58u32; +pub const CAL_SSHORTDATE: u32 = 5u32; +pub const CAL_SSHORTESTDAYNAME1: u32 = 49u32; +pub const CAL_SSHORTESTDAYNAME2: u32 = 50u32; +pub const CAL_SSHORTESTDAYNAME3: u32 = 51u32; +pub const CAL_SSHORTESTDAYNAME4: u32 = 52u32; +pub const CAL_SSHORTESTDAYNAME5: u32 = 53u32; +pub const CAL_SSHORTESTDAYNAME6: u32 = 54u32; +pub const CAL_SSHORTESTDAYNAME7: u32 = 55u32; +pub const CAL_SYEARMONTH: u32 = 47u32; +pub const CAL_TAIWAN: u32 = 4u32; +pub const CAL_THAI: u32 = 7u32; +pub const CAL_UMALQURA: u32 = 23u32; +pub const CAL_USE_CP_ACP: u32 = 1073741824u32; +pub const CANITER_SKIP_ZEROES: u32 = 1u32; +pub const CMLangConvertCharset: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd66d6f99_cdaa_11d0_b822_00c04fc9b31f); +pub const CMLangString: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc04d65cf_b70d_11d0_b188_00aa0038c969); +pub const CMultiLanguage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x275c23e2_3747_11d0_9fea_00aa003f8646); +pub const COMPARE_STRING: SYSNLS_FUNCTION = 1i32; +pub const CORRECTIVE_ACTION_DELETE: CORRECTIVE_ACTION = 3i32; +pub const CORRECTIVE_ACTION_GET_SUGGESTIONS: CORRECTIVE_ACTION = 1i32; +pub const CORRECTIVE_ACTION_NONE: CORRECTIVE_ACTION = 0i32; +pub const CORRECTIVE_ACTION_REPLACE: CORRECTIVE_ACTION = 2i32; +pub const CPIOD_FORCE_PROMPT: i32 = -2147483648i32; +pub const CPIOD_PEEK: i32 = 1073741824i32; +pub const CP_ACP: u32 = 0u32; +pub const CP_INSTALLED: ENUM_SYSTEM_CODE_PAGES_FLAGS = 1u32; +pub const CP_MACCP: u32 = 2u32; +pub const CP_OEMCP: u32 = 1u32; +pub const CP_SUPPORTED: ENUM_SYSTEM_CODE_PAGES_FLAGS = 2u32; +pub const CP_SYMBOL: u32 = 42u32; +pub const CP_THREAD_ACP: u32 = 3u32; +pub const CP_UTF7: u32 = 65000u32; +pub const CP_UTF8: u32 = 65001u32; +pub const CSTR_EQUAL: COMPARESTRING_RESULT = 2i32; +pub const CSTR_GREATER_THAN: COMPARESTRING_RESULT = 3i32; +pub const CSTR_LESS_THAN: COMPARESTRING_RESULT = 1i32; +pub const CTRY_ALBANIA: u32 = 355u32; +pub const CTRY_ALGERIA: u32 = 213u32; +pub const CTRY_ARGENTINA: u32 = 54u32; +pub const CTRY_ARMENIA: u32 = 374u32; +pub const CTRY_AUSTRALIA: u32 = 61u32; +pub const CTRY_AUSTRIA: u32 = 43u32; +pub const CTRY_AZERBAIJAN: u32 = 994u32; +pub const CTRY_BAHRAIN: u32 = 973u32; +pub const CTRY_BELARUS: u32 = 375u32; +pub const CTRY_BELGIUM: u32 = 32u32; +pub const CTRY_BELIZE: u32 = 501u32; +pub const CTRY_BOLIVIA: u32 = 591u32; +pub const CTRY_BRAZIL: u32 = 55u32; +pub const CTRY_BRUNEI_DARUSSALAM: u32 = 673u32; +pub const CTRY_BULGARIA: u32 = 359u32; +pub const CTRY_CANADA: u32 = 2u32; +pub const CTRY_CARIBBEAN: u32 = 1u32; +pub const CTRY_CHILE: u32 = 56u32; +pub const CTRY_COLOMBIA: u32 = 57u32; +pub const CTRY_COSTA_RICA: u32 = 506u32; +pub const CTRY_CROATIA: u32 = 385u32; +pub const CTRY_CZECH: u32 = 420u32; +pub const CTRY_DEFAULT: u32 = 0u32; +pub const CTRY_DENMARK: u32 = 45u32; +pub const CTRY_DOMINICAN_REPUBLIC: u32 = 1u32; +pub const CTRY_ECUADOR: u32 = 593u32; +pub const CTRY_EGYPT: u32 = 20u32; +pub const CTRY_EL_SALVADOR: u32 = 503u32; +pub const CTRY_ESTONIA: u32 = 372u32; +pub const CTRY_FAEROE_ISLANDS: u32 = 298u32; +pub const CTRY_FINLAND: u32 = 358u32; +pub const CTRY_FRANCE: u32 = 33u32; +pub const CTRY_GEORGIA: u32 = 995u32; +pub const CTRY_GERMANY: u32 = 49u32; +pub const CTRY_GREECE: u32 = 30u32; +pub const CTRY_GUATEMALA: u32 = 502u32; +pub const CTRY_HONDURAS: u32 = 504u32; +pub const CTRY_HONG_KONG: u32 = 852u32; +pub const CTRY_HUNGARY: u32 = 36u32; +pub const CTRY_ICELAND: u32 = 354u32; +pub const CTRY_INDIA: u32 = 91u32; +pub const CTRY_INDONESIA: u32 = 62u32; +pub const CTRY_IRAN: u32 = 981u32; +pub const CTRY_IRAQ: u32 = 964u32; +pub const CTRY_IRELAND: u32 = 353u32; +pub const CTRY_ISRAEL: u32 = 972u32; +pub const CTRY_ITALY: u32 = 39u32; +pub const CTRY_JAMAICA: u32 = 1u32; +pub const CTRY_JAPAN: u32 = 81u32; +pub const CTRY_JORDAN: u32 = 962u32; +pub const CTRY_KAZAKSTAN: u32 = 7u32; +pub const CTRY_KENYA: u32 = 254u32; +pub const CTRY_KUWAIT: u32 = 965u32; +pub const CTRY_KYRGYZSTAN: u32 = 996u32; +pub const CTRY_LATVIA: u32 = 371u32; +pub const CTRY_LEBANON: u32 = 961u32; +pub const CTRY_LIBYA: u32 = 218u32; +pub const CTRY_LIECHTENSTEIN: u32 = 41u32; +pub const CTRY_LITHUANIA: u32 = 370u32; +pub const CTRY_LUXEMBOURG: u32 = 352u32; +pub const CTRY_MACAU: u32 = 853u32; +pub const CTRY_MACEDONIA: u32 = 389u32; +pub const CTRY_MALAYSIA: u32 = 60u32; +pub const CTRY_MALDIVES: u32 = 960u32; +pub const CTRY_MEXICO: u32 = 52u32; +pub const CTRY_MONACO: u32 = 33u32; +pub const CTRY_MONGOLIA: u32 = 976u32; +pub const CTRY_MOROCCO: u32 = 212u32; +pub const CTRY_NETHERLANDS: u32 = 31u32; +pub const CTRY_NEW_ZEALAND: u32 = 64u32; +pub const CTRY_NICARAGUA: u32 = 505u32; +pub const CTRY_NORWAY: u32 = 47u32; +pub const CTRY_OMAN: u32 = 968u32; +pub const CTRY_PAKISTAN: u32 = 92u32; +pub const CTRY_PANAMA: u32 = 507u32; +pub const CTRY_PARAGUAY: u32 = 595u32; +pub const CTRY_PERU: u32 = 51u32; +pub const CTRY_PHILIPPINES: u32 = 63u32; +pub const CTRY_POLAND: u32 = 48u32; +pub const CTRY_PORTUGAL: u32 = 351u32; +pub const CTRY_PRCHINA: u32 = 86u32; +pub const CTRY_PUERTO_RICO: u32 = 1u32; +pub const CTRY_QATAR: u32 = 974u32; +pub const CTRY_ROMANIA: u32 = 40u32; +pub const CTRY_RUSSIA: u32 = 7u32; +pub const CTRY_SAUDI_ARABIA: u32 = 966u32; +pub const CTRY_SERBIA: u32 = 381u32; +pub const CTRY_SINGAPORE: u32 = 65u32; +pub const CTRY_SLOVAK: u32 = 421u32; +pub const CTRY_SLOVENIA: u32 = 386u32; +pub const CTRY_SOUTH_AFRICA: u32 = 27u32; +pub const CTRY_SOUTH_KOREA: u32 = 82u32; +pub const CTRY_SPAIN: u32 = 34u32; +pub const CTRY_SWEDEN: u32 = 46u32; +pub const CTRY_SWITZERLAND: u32 = 41u32; +pub const CTRY_SYRIA: u32 = 963u32; +pub const CTRY_TAIWAN: u32 = 886u32; +pub const CTRY_TATARSTAN: u32 = 7u32; +pub const CTRY_THAILAND: u32 = 66u32; +pub const CTRY_TRINIDAD_Y_TOBAGO: u32 = 1u32; +pub const CTRY_TUNISIA: u32 = 216u32; +pub const CTRY_TURKEY: u32 = 90u32; +pub const CTRY_UAE: u32 = 971u32; +pub const CTRY_UKRAINE: u32 = 380u32; +pub const CTRY_UNITED_KINGDOM: u32 = 44u32; +pub const CTRY_UNITED_STATES: u32 = 1u32; +pub const CTRY_URUGUAY: u32 = 598u32; +pub const CTRY_UZBEKISTAN: u32 = 7u32; +pub const CTRY_VENEZUELA: u32 = 58u32; +pub const CTRY_VIET_NAM: u32 = 84u32; +pub const CTRY_YEMEN: u32 = 967u32; +pub const CTRY_ZIMBABWE: u32 = 263u32; +pub const CT_CTYPE1: u32 = 1u32; +pub const CT_CTYPE2: u32 = 2u32; +pub const CT_CTYPE3: u32 = 4u32; +pub const DATE_AUTOLAYOUT: ENUM_DATE_FORMATS_FLAGS = 64u32; +pub const DATE_LONGDATE: ENUM_DATE_FORMATS_FLAGS = 2u32; +pub const DATE_LTRREADING: ENUM_DATE_FORMATS_FLAGS = 16u32; +pub const DATE_MONTHDAY: ENUM_DATE_FORMATS_FLAGS = 128u32; +pub const DATE_RTLREADING: ENUM_DATE_FORMATS_FLAGS = 32u32; +pub const DATE_SHORTDATE: ENUM_DATE_FORMATS_FLAGS = 1u32; +pub const DATE_USE_ALT_CALENDAR: ENUM_DATE_FORMATS_FLAGS = 4u32; +pub const DATE_YEARMONTH: ENUM_DATE_FORMATS_FLAGS = 8u32; +pub const ELS_GUID_LANGUAGE_DETECTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf7e00b1_909b_4d95_a8f4_611f7c377702); +pub const ELS_GUID_SCRIPT_DETECTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2d64b439_6caf_4f6b_b688_e5d0f4faa7d7); +pub const ELS_GUID_TRANSLITERATION_BENGALI_TO_LATIN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf4dfd825_91a4_489f_855e_9ad9bee55727); +pub const ELS_GUID_TRANSLITERATION_CYRILLIC_TO_LATIN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3dd12a98_5afd_4903_a13f_e17e6c0bfe01); +pub const ELS_GUID_TRANSLITERATION_DEVANAGARI_TO_LATIN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc4a4dcfe_2661_4d02_9835_f48187109803); +pub const ELS_GUID_TRANSLITERATION_HANGUL_DECOMPOSITION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4ba2a721_e43d_41b7_b330_536ae1e48863); +pub const ELS_GUID_TRANSLITERATION_HANS_TO_HANT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3caccdc8_5590_42dc_9a7b_b5a6b5b3b63b); +pub const ELS_GUID_TRANSLITERATION_HANT_TO_HANS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa3a8333b_f4fc_42f6_a0c4_0462fe7317cb); +pub const ELS_GUID_TRANSLITERATION_MALAYALAM_TO_LATIN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd8b983b1_f8bf_4a2b_bcd5_5b5ea20613e1); +pub const ENUM_ALL_CALENDARS: u32 = 4294967295u32; +pub const FIND_ENDSWITH: u32 = 2097152u32; +pub const FIND_FROMEND: u32 = 8388608u32; +pub const FIND_FROMSTART: u32 = 4194304u32; +pub const FIND_STARTSWITH: u32 = 1048576u32; +pub const GEOCLASS_ALL: SYSGEOCLASS = 0i32; +pub const GEOCLASS_NATION: SYSGEOCLASS = 16i32; +pub const GEOCLASS_REGION: SYSGEOCLASS = 14i32; +pub const GEOID_NOT_AVAILABLE: i32 = -1i32; +pub const GEO_CURRENCYCODE: SYSGEOTYPE = 15i32; +pub const GEO_CURRENCYSYMBOL: SYSGEOTYPE = 16i32; +pub const GEO_DIALINGCODE: SYSGEOTYPE = 14i32; +pub const GEO_FRIENDLYNAME: SYSGEOTYPE = 8i32; +pub const GEO_ID: SYSGEOTYPE = 18i32; +pub const GEO_ISO2: SYSGEOTYPE = 4i32; +pub const GEO_ISO3: SYSGEOTYPE = 5i32; +pub const GEO_ISO_UN_NUMBER: SYSGEOTYPE = 12i32; +pub const GEO_LATITUDE: SYSGEOTYPE = 2i32; +pub const GEO_LCID: SYSGEOTYPE = 7i32; +pub const GEO_LONGITUDE: SYSGEOTYPE = 3i32; +pub const GEO_NAME: SYSGEOTYPE = 17i32; +pub const GEO_NATION: SYSGEOTYPE = 1i32; +pub const GEO_OFFICIALLANGUAGES: SYSGEOTYPE = 11i32; +pub const GEO_OFFICIALNAME: SYSGEOTYPE = 9i32; +pub const GEO_PARENT: SYSGEOTYPE = 13i32; +pub const GEO_RFC1766: SYSGEOTYPE = 6i32; +pub const GEO_TIMEZONES: SYSGEOTYPE = 10i32; +pub const GSS_ALLOW_INHERITED_COMMON: u32 = 1u32; +pub const HIGHLEVEL_SERVICE_TYPES: u32 = 1u32; +pub const HIGH_SURROGATE_END: u32 = 56319u32; +pub const HIGH_SURROGATE_START: u32 = 55296u32; +pub const IDN_ALLOW_UNASSIGNED: u32 = 1u32; +pub const IDN_EMAIL_ADDRESS: u32 = 4u32; +pub const IDN_RAW_PUNYCODE: u32 = 8u32; +pub const IDN_USE_STD3_ASCII_RULES: u32 = 2u32; +pub const IS_TEXT_UNICODE_ASCII16: IS_TEXT_UNICODE_RESULT = 1u32; +pub const IS_TEXT_UNICODE_CONTROLS: IS_TEXT_UNICODE_RESULT = 4u32; +pub const IS_TEXT_UNICODE_ILLEGAL_CHARS: IS_TEXT_UNICODE_RESULT = 256u32; +pub const IS_TEXT_UNICODE_NOT_ASCII_MASK: IS_TEXT_UNICODE_RESULT = 61440u32; +pub const IS_TEXT_UNICODE_NOT_UNICODE_MASK: IS_TEXT_UNICODE_RESULT = 3840u32; +pub const IS_TEXT_UNICODE_NULL_BYTES: IS_TEXT_UNICODE_RESULT = 4096u32; +pub const IS_TEXT_UNICODE_ODD_LENGTH: IS_TEXT_UNICODE_RESULT = 512u32; +pub const IS_TEXT_UNICODE_REVERSE_ASCII16: IS_TEXT_UNICODE_RESULT = 16u32; +pub const IS_TEXT_UNICODE_REVERSE_CONTROLS: IS_TEXT_UNICODE_RESULT = 64u32; +pub const IS_TEXT_UNICODE_REVERSE_MASK: IS_TEXT_UNICODE_RESULT = 240u32; +pub const IS_TEXT_UNICODE_REVERSE_SIGNATURE: IS_TEXT_UNICODE_RESULT = 128u32; +pub const IS_TEXT_UNICODE_REVERSE_STATISTICS: IS_TEXT_UNICODE_RESULT = 32u32; +pub const IS_TEXT_UNICODE_SIGNATURE: IS_TEXT_UNICODE_RESULT = 8u32; +pub const IS_TEXT_UNICODE_STATISTICS: IS_TEXT_UNICODE_RESULT = 2u32; +pub const IS_TEXT_UNICODE_UNICODE_MASK: IS_TEXT_UNICODE_RESULT = 15u32; +pub const LCID_ALTERNATE_SORTS: u32 = 4u32; +pub const LCID_INSTALLED: IS_VALID_LOCALE_FLAGS = 1u32; +pub const LCID_SUPPORTED: IS_VALID_LOCALE_FLAGS = 2u32; +pub const LCMAP_BYTEREV: u32 = 2048u32; +pub const LCMAP_FULLWIDTH: u32 = 8388608u32; +pub const LCMAP_HALFWIDTH: u32 = 4194304u32; +pub const LCMAP_HASH: u32 = 262144u32; +pub const LCMAP_HIRAGANA: u32 = 1048576u32; +pub const LCMAP_KATAKANA: u32 = 2097152u32; +pub const LCMAP_LINGUISTIC_CASING: u32 = 16777216u32; +pub const LCMAP_LOWERCASE: u32 = 256u32; +pub const LCMAP_SIMPLIFIED_CHINESE: u32 = 33554432u32; +pub const LCMAP_SORTHANDLE: u32 = 536870912u32; +pub const LCMAP_SORTKEY: u32 = 1024u32; +pub const LCMAP_TITLECASE: u32 = 768u32; +pub const LCMAP_TRADITIONAL_CHINESE: u32 = 67108864u32; +pub const LCMAP_UPPERCASE: u32 = 512u32; +pub const LGRPID_ARABIC: u32 = 13u32; +pub const LGRPID_ARMENIAN: u32 = 17u32; +pub const LGRPID_BALTIC: u32 = 3u32; +pub const LGRPID_CENTRAL_EUROPE: u32 = 2u32; +pub const LGRPID_CYRILLIC: u32 = 5u32; +pub const LGRPID_GEORGIAN: u32 = 16u32; +pub const LGRPID_GREEK: u32 = 4u32; +pub const LGRPID_HEBREW: u32 = 12u32; +pub const LGRPID_INDIC: u32 = 15u32; +pub const LGRPID_INSTALLED: ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS = 1u32; +pub const LGRPID_JAPANESE: u32 = 7u32; +pub const LGRPID_KOREAN: u32 = 8u32; +pub const LGRPID_SIMPLIFIED_CHINESE: u32 = 10u32; +pub const LGRPID_SUPPORTED: ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS = 2u32; +pub const LGRPID_THAI: u32 = 11u32; +pub const LGRPID_TRADITIONAL_CHINESE: u32 = 9u32; +pub const LGRPID_TURKIC: u32 = 6u32; +pub const LGRPID_TURKISH: u32 = 6u32; +pub const LGRPID_VIETNAMESE: u32 = 14u32; +pub const LGRPID_WESTERN_EUROPE: u32 = 1u32; +pub const LINGUISTIC_IGNORECASE: COMPARE_STRING_FLAGS = 16u32; +pub const LINGUISTIC_IGNOREDIACRITIC: COMPARE_STRING_FLAGS = 32u32; +pub const LOCALE_ALL: u32 = 0u32; +pub const LOCALE_ALLOW_NEUTRAL_NAMES: u32 = 134217728u32; +pub const LOCALE_ALTERNATE_SORTS: u32 = 4u32; +pub const LOCALE_FONTSIGNATURE: u32 = 88u32; +pub const LOCALE_ICALENDARTYPE: u32 = 4105u32; +pub const LOCALE_ICENTURY: u32 = 36u32; +pub const LOCALE_ICONSTRUCTEDLOCALE: u32 = 125u32; +pub const LOCALE_ICOUNTRY: u32 = 5u32; +pub const LOCALE_ICURRDIGITS: u32 = 25u32; +pub const LOCALE_ICURRENCY: u32 = 27u32; +pub const LOCALE_IDATE: u32 = 33u32; +pub const LOCALE_IDAYLZERO: u32 = 38u32; +pub const LOCALE_IDEFAULTANSICODEPAGE: u32 = 4100u32; +pub const LOCALE_IDEFAULTCODEPAGE: u32 = 11u32; +pub const LOCALE_IDEFAULTCOUNTRY: u32 = 10u32; +pub const LOCALE_IDEFAULTEBCDICCODEPAGE: u32 = 4114u32; +pub const LOCALE_IDEFAULTLANGUAGE: u32 = 9u32; +pub const LOCALE_IDEFAULTMACCODEPAGE: u32 = 4113u32; +pub const LOCALE_IDIALINGCODE: u32 = 5u32; +pub const LOCALE_IDIGITS: u32 = 17u32; +pub const LOCALE_IDIGITSUBSTITUTION: u32 = 4116u32; +pub const LOCALE_IFIRSTDAYOFWEEK: u32 = 4108u32; +pub const LOCALE_IFIRSTWEEKOFYEAR: u32 = 4109u32; +pub const LOCALE_IGEOID: u32 = 91u32; +pub const LOCALE_IINTLCURRDIGITS: u32 = 26u32; +pub const LOCALE_ILANGUAGE: u32 = 1u32; +pub const LOCALE_ILDATE: u32 = 34u32; +pub const LOCALE_ILZERO: u32 = 18u32; +pub const LOCALE_IMEASURE: u32 = 13u32; +pub const LOCALE_IMONLZERO: u32 = 39u32; +pub const LOCALE_INEGATIVEPERCENT: u32 = 116u32; +pub const LOCALE_INEGCURR: u32 = 28u32; +pub const LOCALE_INEGNUMBER: u32 = 4112u32; +pub const LOCALE_INEGSEPBYSPACE: u32 = 87u32; +pub const LOCALE_INEGSIGNPOSN: u32 = 83u32; +pub const LOCALE_INEGSYMPRECEDES: u32 = 86u32; +pub const LOCALE_INEUTRAL: u32 = 113u32; +pub const LOCALE_IOPTIONALCALENDAR: u32 = 4107u32; +pub const LOCALE_IPAPERSIZE: u32 = 4106u32; +pub const LOCALE_IPOSITIVEPERCENT: u32 = 117u32; +pub const LOCALE_IPOSSEPBYSPACE: u32 = 85u32; +pub const LOCALE_IPOSSIGNPOSN: u32 = 82u32; +pub const LOCALE_IPOSSYMPRECEDES: u32 = 84u32; +pub const LOCALE_IREADINGLAYOUT: u32 = 112u32; +pub const LOCALE_ITIME: u32 = 35u32; +pub const LOCALE_ITIMEMARKPOSN: u32 = 4101u32; +pub const LOCALE_ITLZERO: u32 = 37u32; +pub const LOCALE_IUSEUTF8LEGACYACP: u32 = 1638u32; +pub const LOCALE_IUSEUTF8LEGACYOEMCP: u32 = 2457u32; +pub const LOCALE_NAME_INVARIANT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(""); +pub const LOCALE_NAME_SYSTEM_DEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("!x-sys-default-locale"); +pub const LOCALE_NEUTRALDATA: u32 = 16u32; +pub const LOCALE_NOUSEROVERRIDE: u32 = 2147483648u32; +pub const LOCALE_REPLACEMENT: u32 = 8u32; +pub const LOCALE_RETURN_GENITIVE_NAMES: u32 = 268435456u32; +pub const LOCALE_RETURN_NUMBER: u32 = 536870912u32; +pub const LOCALE_S1159: u32 = 40u32; +pub const LOCALE_S2359: u32 = 41u32; +pub const LOCALE_SABBREVCTRYNAME: u32 = 7u32; +pub const LOCALE_SABBREVDAYNAME1: u32 = 49u32; +pub const LOCALE_SABBREVDAYNAME2: u32 = 50u32; +pub const LOCALE_SABBREVDAYNAME3: u32 = 51u32; +pub const LOCALE_SABBREVDAYNAME4: u32 = 52u32; +pub const LOCALE_SABBREVDAYNAME5: u32 = 53u32; +pub const LOCALE_SABBREVDAYNAME6: u32 = 54u32; +pub const LOCALE_SABBREVDAYNAME7: u32 = 55u32; +pub const LOCALE_SABBREVLANGNAME: u32 = 3u32; +pub const LOCALE_SABBREVMONTHNAME1: u32 = 68u32; +pub const LOCALE_SABBREVMONTHNAME10: u32 = 77u32; +pub const LOCALE_SABBREVMONTHNAME11: u32 = 78u32; +pub const LOCALE_SABBREVMONTHNAME12: u32 = 79u32; +pub const LOCALE_SABBREVMONTHNAME13: u32 = 4111u32; +pub const LOCALE_SABBREVMONTHNAME2: u32 = 69u32; +pub const LOCALE_SABBREVMONTHNAME3: u32 = 70u32; +pub const LOCALE_SABBREVMONTHNAME4: u32 = 71u32; +pub const LOCALE_SABBREVMONTHNAME5: u32 = 72u32; +pub const LOCALE_SABBREVMONTHNAME6: u32 = 73u32; +pub const LOCALE_SABBREVMONTHNAME7: u32 = 74u32; +pub const LOCALE_SABBREVMONTHNAME8: u32 = 75u32; +pub const LOCALE_SABBREVMONTHNAME9: u32 = 76u32; +pub const LOCALE_SAM: u32 = 40u32; +pub const LOCALE_SCONSOLEFALLBACKNAME: u32 = 110u32; +pub const LOCALE_SCOUNTRY: u32 = 6u32; +pub const LOCALE_SCURRENCY: u32 = 20u32; +pub const LOCALE_SDATE: u32 = 29u32; +pub const LOCALE_SDAYNAME1: u32 = 42u32; +pub const LOCALE_SDAYNAME2: u32 = 43u32; +pub const LOCALE_SDAYNAME3: u32 = 44u32; +pub const LOCALE_SDAYNAME4: u32 = 45u32; +pub const LOCALE_SDAYNAME5: u32 = 46u32; +pub const LOCALE_SDAYNAME6: u32 = 47u32; +pub const LOCALE_SDAYNAME7: u32 = 48u32; +pub const LOCALE_SDECIMAL: u32 = 14u32; +pub const LOCALE_SDURATION: u32 = 93u32; +pub const LOCALE_SENGCOUNTRY: u32 = 4098u32; +pub const LOCALE_SENGCURRNAME: u32 = 4103u32; +pub const LOCALE_SENGLANGUAGE: u32 = 4097u32; +pub const LOCALE_SENGLISHCOUNTRYNAME: u32 = 4098u32; +pub const LOCALE_SENGLISHDISPLAYNAME: u32 = 114u32; +pub const LOCALE_SENGLISHLANGUAGENAME: u32 = 4097u32; +pub const LOCALE_SGROUPING: u32 = 16u32; +pub const LOCALE_SINTLSYMBOL: u32 = 21u32; +pub const LOCALE_SISO3166CTRYNAME: u32 = 90u32; +pub const LOCALE_SISO3166CTRYNAME2: u32 = 104u32; +pub const LOCALE_SISO639LANGNAME: u32 = 89u32; +pub const LOCALE_SISO639LANGNAME2: u32 = 103u32; +pub const LOCALE_SKEYBOARDSTOINSTALL: u32 = 94u32; +pub const LOCALE_SLANGDISPLAYNAME: u32 = 111u32; +pub const LOCALE_SLANGUAGE: u32 = 2u32; +pub const LOCALE_SLIST: u32 = 12u32; +pub const LOCALE_SLOCALIZEDCOUNTRYNAME: u32 = 6u32; +pub const LOCALE_SLOCALIZEDDISPLAYNAME: u32 = 2u32; +pub const LOCALE_SLOCALIZEDLANGUAGENAME: u32 = 111u32; +pub const LOCALE_SLONGDATE: u32 = 32u32; +pub const LOCALE_SMONDECIMALSEP: u32 = 22u32; +pub const LOCALE_SMONGROUPING: u32 = 24u32; +pub const LOCALE_SMONTHDAY: u32 = 120u32; +pub const LOCALE_SMONTHNAME1: u32 = 56u32; +pub const LOCALE_SMONTHNAME10: u32 = 65u32; +pub const LOCALE_SMONTHNAME11: u32 = 66u32; +pub const LOCALE_SMONTHNAME12: u32 = 67u32; +pub const LOCALE_SMONTHNAME13: u32 = 4110u32; +pub const LOCALE_SMONTHNAME2: u32 = 57u32; +pub const LOCALE_SMONTHNAME3: u32 = 58u32; +pub const LOCALE_SMONTHNAME4: u32 = 59u32; +pub const LOCALE_SMONTHNAME5: u32 = 60u32; +pub const LOCALE_SMONTHNAME6: u32 = 61u32; +pub const LOCALE_SMONTHNAME7: u32 = 62u32; +pub const LOCALE_SMONTHNAME8: u32 = 63u32; +pub const LOCALE_SMONTHNAME9: u32 = 64u32; +pub const LOCALE_SMONTHOUSANDSEP: u32 = 23u32; +pub const LOCALE_SNAME: u32 = 92u32; +pub const LOCALE_SNAN: u32 = 105u32; +pub const LOCALE_SNATIVECOUNTRYNAME: u32 = 8u32; +pub const LOCALE_SNATIVECTRYNAME: u32 = 8u32; +pub const LOCALE_SNATIVECURRNAME: u32 = 4104u32; +pub const LOCALE_SNATIVEDIGITS: u32 = 19u32; +pub const LOCALE_SNATIVEDISPLAYNAME: u32 = 115u32; +pub const LOCALE_SNATIVELANGNAME: u32 = 4u32; +pub const LOCALE_SNATIVELANGUAGENAME: u32 = 4u32; +pub const LOCALE_SNEGATIVESIGN: u32 = 81u32; +pub const LOCALE_SNEGINFINITY: u32 = 107u32; +pub const LOCALE_SOPENTYPELANGUAGETAG: u32 = 122u32; +pub const LOCALE_SPARENT: u32 = 109u32; +pub const LOCALE_SPECIFICDATA: u32 = 32u32; +pub const LOCALE_SPERCENT: u32 = 118u32; +pub const LOCALE_SPERMILLE: u32 = 119u32; +pub const LOCALE_SPM: u32 = 41u32; +pub const LOCALE_SPOSINFINITY: u32 = 106u32; +pub const LOCALE_SPOSITIVESIGN: u32 = 80u32; +pub const LOCALE_SRELATIVELONGDATE: u32 = 124u32; +pub const LOCALE_SSCRIPTS: u32 = 108u32; +pub const LOCALE_SSHORTDATE: u32 = 31u32; +pub const LOCALE_SSHORTESTAM: u32 = 126u32; +pub const LOCALE_SSHORTESTDAYNAME1: u32 = 96u32; +pub const LOCALE_SSHORTESTDAYNAME2: u32 = 97u32; +pub const LOCALE_SSHORTESTDAYNAME3: u32 = 98u32; +pub const LOCALE_SSHORTESTDAYNAME4: u32 = 99u32; +pub const LOCALE_SSHORTESTDAYNAME5: u32 = 100u32; +pub const LOCALE_SSHORTESTDAYNAME6: u32 = 101u32; +pub const LOCALE_SSHORTESTDAYNAME7: u32 = 102u32; +pub const LOCALE_SSHORTESTPM: u32 = 127u32; +pub const LOCALE_SSHORTTIME: u32 = 121u32; +pub const LOCALE_SSORTLOCALE: u32 = 123u32; +pub const LOCALE_SSORTNAME: u32 = 4115u32; +pub const LOCALE_STHOUSAND: u32 = 15u32; +pub const LOCALE_STIME: u32 = 30u32; +pub const LOCALE_STIMEFORMAT: u32 = 4099u32; +pub const LOCALE_SUPPLEMENTAL: u32 = 2u32; +pub const LOCALE_SYEARMONTH: u32 = 4102u32; +pub const LOCALE_USE_CP_ACP: u32 = 1073741824u32; +pub const LOCALE_WINDOWS: u32 = 1u32; +pub const LOWLEVEL_SERVICE_TYPES: u32 = 2u32; +pub const LOW_SURROGATE_END: u32 = 57343u32; +pub const LOW_SURROGATE_START: u32 = 56320u32; +pub const MAP_COMPOSITE: FOLD_STRING_MAP_FLAGS = 64u32; +pub const MAP_EXPAND_LIGATURES: FOLD_STRING_MAP_FLAGS = 8192u32; +pub const MAP_FOLDCZONE: FOLD_STRING_MAP_FLAGS = 16u32; +pub const MAP_FOLDDIGITS: FOLD_STRING_MAP_FLAGS = 128u32; +pub const MAP_PRECOMPOSED: FOLD_STRING_MAP_FLAGS = 32u32; +pub const MAX_DEFAULTCHAR: u32 = 2u32; +pub const MAX_LEADBYTES: u32 = 12u32; +pub const MAX_LOCALE_NAME: u32 = 32u32; +pub const MAX_MIMECP_NAME: u32 = 64u32; +pub const MAX_MIMECSET_NAME: u32 = 50u32; +pub const MAX_MIMEFACE_NAME: u32 = 32u32; +pub const MAX_RFC1766_NAME: u32 = 6u32; +pub const MAX_SCRIPT_NAME: u32 = 48u32; +pub const MB_COMPOSITE: MULTI_BYTE_TO_WIDE_CHAR_FLAGS = 2u32; +pub const MB_ERR_INVALID_CHARS: MULTI_BYTE_TO_WIDE_CHAR_FLAGS = 8u32; +pub const MB_PRECOMPOSED: MULTI_BYTE_TO_WIDE_CHAR_FLAGS = 1u32; +pub const MB_USEGLYPHCHARS: MULTI_BYTE_TO_WIDE_CHAR_FLAGS = 4u32; +pub const MIMECONTF_BROWSER: MIMECONTF = 2i32; +pub const MIMECONTF_EXPORT: MIMECONTF = 1024i32; +pub const MIMECONTF_IMPORT: MIMECONTF = 8i32; +pub const MIMECONTF_MAILNEWS: MIMECONTF = 1i32; +pub const MIMECONTF_MIME_IE4: MIMECONTF = 268435456i32; +pub const MIMECONTF_MIME_LATEST: MIMECONTF = 536870912i32; +pub const MIMECONTF_MIME_REGISTRY: MIMECONTF = 1073741824i32; +pub const MIMECONTF_MINIMAL: MIMECONTF = 4i32; +pub const MIMECONTF_PRIVCONVERTER: MIMECONTF = 65536i32; +pub const MIMECONTF_SAVABLE_BROWSER: MIMECONTF = 512i32; +pub const MIMECONTF_SAVABLE_MAILNEWS: MIMECONTF = 256i32; +pub const MIMECONTF_VALID: MIMECONTF = 131072i32; +pub const MIMECONTF_VALID_NLS: MIMECONTF = 262144i32; +pub const MIN_SPELLING_NTDDI: u32 = 100794368u32; +pub const MLCONVCHARF_AUTODETECT: MLCONVCHAR = 1i32; +pub const MLCONVCHARF_DETECTJPN: MLCONVCHAR = 32i32; +pub const MLCONVCHARF_ENTITIZE: MLCONVCHAR = 2i32; +pub const MLCONVCHARF_NAME_ENTITIZE: MLCONVCHAR = 4i32; +pub const MLCONVCHARF_NCR_ENTITIZE: MLCONVCHAR = 2i32; +pub const MLCONVCHARF_NOBESTFITCHARS: MLCONVCHAR = 16i32; +pub const MLCONVCHARF_USEDEFCHAR: MLCONVCHAR = 8i32; +pub const MLDETECTCP_7BIT: MLDETECTCP = 1i32; +pub const MLDETECTCP_8BIT: MLDETECTCP = 2i32; +pub const MLDETECTCP_DBCS: MLDETECTCP = 4i32; +pub const MLDETECTCP_HTML: MLDETECTCP = 8i32; +pub const MLDETECTCP_NONE: MLDETECTCP = 0i32; +pub const MLDETECTCP_NUMBER: MLDETECTCP = 16i32; +pub const MLDETECTF_BROWSER: MLCP = 2i32; +pub const MLDETECTF_EURO_UTF8: MLCP = 128i32; +pub const MLDETECTF_FILTER_SPECIALCHAR: MLCP = 64i32; +pub const MLDETECTF_MAILNEWS: MLCP = 1i32; +pub const MLDETECTF_PREFERRED_ONLY: MLCP = 32i32; +pub const MLDETECTF_PRESERVE_ORDER: MLCP = 16i32; +pub const MLDETECTF_VALID: MLCP = 4i32; +pub const MLDETECTF_VALID_NLS: MLCP = 8i32; +pub const MLSTR_READ: MLSTR_FLAGS = 1i32; +pub const MLSTR_WRITE: MLSTR_FLAGS = 2i32; +pub const MUI_COMPLEX_SCRIPT_FILTER: u32 = 512u32; +pub const MUI_CONSOLE_FILTER: u32 = 256u32; +pub const MUI_FILEINFO_VERSION: u32 = 1u32; +pub const MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN: u32 = 2u32; +pub const MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI: u32 = 4u32; +pub const MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL: u32 = 1u32; +pub const MUI_FORMAT_INF_COMPAT: u32 = 2u32; +pub const MUI_FORMAT_REG_COMPAT: u32 = 1u32; +pub const MUI_FULL_LANGUAGE: u32 = 1u32; +pub const MUI_IMMUTABLE_LOOKUP: u32 = 16u32; +pub const MUI_LANGUAGE_EXACT: u32 = 16u32; +pub const MUI_LANGUAGE_ID: u32 = 4u32; +pub const MUI_LANGUAGE_INSTALLED: u32 = 32u32; +pub const MUI_LANGUAGE_LICENSED: u32 = 64u32; +pub const MUI_LANGUAGE_NAME: u32 = 8u32; +pub const MUI_LANG_NEUTRAL_PE_FILE: u32 = 256u32; +pub const MUI_LIP_LANGUAGE: u32 = 4u32; +pub const MUI_MACHINE_LANGUAGE_SETTINGS: u32 = 1024u32; +pub const MUI_MERGE_SYSTEM_FALLBACK: u32 = 16u32; +pub const MUI_MERGE_USER_FALLBACK: u32 = 32u32; +pub const MUI_NON_LANG_NEUTRAL_FILE: u32 = 512u32; +pub const MUI_PARTIAL_LANGUAGE: u32 = 2u32; +pub const MUI_QUERY_CHECKSUM: u32 = 2u32; +pub const MUI_QUERY_LANGUAGE_NAME: u32 = 4u32; +pub const MUI_QUERY_RESOURCE_TYPES: u32 = 8u32; +pub const MUI_QUERY_TYPE: u32 = 1u32; +pub const MUI_RESET_FILTERS: u32 = 1u32; +pub const MUI_SKIP_STRING_CACHE: u32 = 8u32; +pub const MUI_THREAD_LANGUAGES: u32 = 64u32; +pub const MUI_USER_PREFERRED_UI_LANGUAGES: u32 = 16u32; +pub const MUI_USE_INSTALLED_LANGUAGES: u32 = 32u32; +pub const MUI_USE_SEARCH_ALL_LANGUAGES: u32 = 64u32; +pub const MUI_VERIFY_FILE_EXISTS: u32 = 4u32; +pub const NLS_CP_CPINFO: u32 = 268435456u32; +pub const NLS_CP_MBTOWC: u32 = 1073741824u32; +pub const NLS_CP_WCTOMB: u32 = 2147483648u32; +pub const NORM_IGNORECASE: COMPARE_STRING_FLAGS = 1u32; +pub const NORM_IGNOREKANATYPE: COMPARE_STRING_FLAGS = 65536u32; +pub const NORM_IGNORENONSPACE: COMPARE_STRING_FLAGS = 2u32; +pub const NORM_IGNORESYMBOLS: COMPARE_STRING_FLAGS = 4u32; +pub const NORM_IGNOREWIDTH: COMPARE_STRING_FLAGS = 131072u32; +pub const NORM_LINGUISTIC_CASING: COMPARE_STRING_FLAGS = 134217728u32; +pub const NUMSYS_NAME_CAPACITY: u32 = 8u32; +pub const NormalizationC: NORM_FORM = 1i32; +pub const NormalizationD: NORM_FORM = 2i32; +pub const NormalizationKC: NORM_FORM = 5i32; +pub const NormalizationKD: NORM_FORM = 6i32; +pub const NormalizationOther: NORM_FORM = 0i32; +pub const OFFLINE_SERVICES: u32 = 2u32; +pub const ONLINE_SERVICES: u32 = 1u32; +pub const SCRIPTCONTF_FIXED_FONT: SCRIPTFONTCONTF = 1i32; +pub const SCRIPTCONTF_PROPORTIONAL_FONT: SCRIPTFONTCONTF = 2i32; +pub const SCRIPTCONTF_SCRIPT_HIDE: SCRIPTFONTCONTF = 131072i32; +pub const SCRIPTCONTF_SCRIPT_SYSTEM: SCRIPTFONTCONTF = 262144i32; +pub const SCRIPTCONTF_SCRIPT_USER: SCRIPTFONTCONTF = 65536i32; +pub const SCRIPT_DIGITSUBSTITUTE_CONTEXT: u32 = 0u32; +pub const SCRIPT_DIGITSUBSTITUTE_NATIONAL: u32 = 2u32; +pub const SCRIPT_DIGITSUBSTITUTE_NONE: u32 = 1u32; +pub const SCRIPT_DIGITSUBSTITUTE_TRADITIONAL: u32 = 3u32; +pub const SCRIPT_JUSTIFY_ARABIC_ALEF: SCRIPT_JUSTIFY = 9i32; +pub const SCRIPT_JUSTIFY_ARABIC_BA: SCRIPT_JUSTIFY = 12i32; +pub const SCRIPT_JUSTIFY_ARABIC_BARA: SCRIPT_JUSTIFY = 13i32; +pub const SCRIPT_JUSTIFY_ARABIC_BLANK: SCRIPT_JUSTIFY = 1i32; +pub const SCRIPT_JUSTIFY_ARABIC_HA: SCRIPT_JUSTIFY = 10i32; +pub const SCRIPT_JUSTIFY_ARABIC_KASHIDA: SCRIPT_JUSTIFY = 8i32; +pub const SCRIPT_JUSTIFY_ARABIC_NORMAL: SCRIPT_JUSTIFY = 7i32; +pub const SCRIPT_JUSTIFY_ARABIC_RA: SCRIPT_JUSTIFY = 11i32; +pub const SCRIPT_JUSTIFY_ARABIC_SEEN: SCRIPT_JUSTIFY = 14i32; +pub const SCRIPT_JUSTIFY_ARABIC_SEEN_M: SCRIPT_JUSTIFY = 15i32; +pub const SCRIPT_JUSTIFY_BLANK: SCRIPT_JUSTIFY = 4i32; +pub const SCRIPT_JUSTIFY_CHARACTER: SCRIPT_JUSTIFY = 2i32; +pub const SCRIPT_JUSTIFY_NONE: SCRIPT_JUSTIFY = 0i32; +pub const SCRIPT_JUSTIFY_RESERVED1: SCRIPT_JUSTIFY = 3i32; +pub const SCRIPT_JUSTIFY_RESERVED2: SCRIPT_JUSTIFY = 5i32; +pub const SCRIPT_JUSTIFY_RESERVED3: SCRIPT_JUSTIFY = 6i32; +pub const SCRIPT_TAG_UNKNOWN: u32 = 0u32; +pub const SCRIPT_UNDEFINED: u32 = 0u32; +pub const SGCM_RTL: u32 = 1u32; +pub const SIC_ASCIIDIGIT: SCRIPT_IS_COMPLEX_FLAGS = 2u32; +pub const SIC_COMPLEX: SCRIPT_IS_COMPLEX_FLAGS = 1u32; +pub const SIC_NEUTRAL: SCRIPT_IS_COMPLEX_FLAGS = 4u32; +pub const SORTING_PARADIGM_ICU: u32 = 16777216u32; +pub const SORTING_PARADIGM_NLS: u32 = 0u32; +pub const SORT_DIGITSASNUMBERS: COMPARE_STRING_FLAGS = 8u32; +pub const SORT_STRINGSORT: COMPARE_STRING_FLAGS = 4096u32; +pub const SSA_BREAK: u32 = 64u32; +pub const SSA_CLIP: u32 = 4u32; +pub const SSA_DONTGLYPH: u32 = 1073741824u32; +pub const SSA_DZWG: u32 = 16u32; +pub const SSA_FALLBACK: u32 = 32u32; +pub const SSA_FIT: u32 = 8u32; +pub const SSA_FULLMEASURE: u32 = 67108864u32; +pub const SSA_GCP: u32 = 512u32; +pub const SSA_GLYPHS: u32 = 128u32; +pub const SSA_HIDEHOTKEY: u32 = 8192u32; +pub const SSA_HOTKEY: u32 = 1024u32; +pub const SSA_HOTKEYONLY: u32 = 9216u32; +pub const SSA_LAYOUTRTL: u32 = 536870912u32; +pub const SSA_LINK: u32 = 4096u32; +pub const SSA_LPKANSIFALLBACK: u32 = 134217728u32; +pub const SSA_METAFILE: u32 = 2048u32; +pub const SSA_NOKASHIDA: u32 = 2147483648u32; +pub const SSA_PASSWORD: u32 = 1u32; +pub const SSA_PIDX: u32 = 268435456u32; +pub const SSA_RTL: u32 = 256u32; +pub const SSA_TAB: u32 = 2u32; +pub const SpellCheckerFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7ab36653_1796_484b_bdfa_e74f1db7c1dc); +pub const TCI_SRCCHARSET: TRANSLATE_CHARSET_INFO_FLAGS = 1u32; +pub const TCI_SRCCODEPAGE: TRANSLATE_CHARSET_INFO_FLAGS = 2u32; +pub const TCI_SRCFONTSIG: TRANSLATE_CHARSET_INFO_FLAGS = 3u32; +pub const TCI_SRCLOCALE: TRANSLATE_CHARSET_INFO_FLAGS = 4096u32; +pub const TIME_FORCE24HOURFORMAT: TIME_FORMAT_FLAGS = 8u32; +pub const TIME_NOMINUTESORSECONDS: TIME_FORMAT_FLAGS = 1u32; +pub const TIME_NOSECONDS: TIME_FORMAT_FLAGS = 2u32; +pub const TIME_NOTIMEMARKER: TIME_FORMAT_FLAGS = 4u32; +pub const U16_MAX_LENGTH: u32 = 2u32; +pub const U8_LEAD3_T1_BITS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!(" 000000000000\u{10}00"); +pub const U8_LEAD4_T1_BITS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{1e}\u{f}\u{f}\u{f}\u{0}\u{0}\u{0}\u{0}"); +pub const U8_MAX_LENGTH: u32 = 4u32; +pub const UBIDI_DEFAULT_LTR: u32 = 254u32; +pub const UBIDI_DEFAULT_RTL: u32 = 255u32; +pub const UBIDI_DO_MIRRORING: u32 = 2u32; +pub const UBIDI_INSERT_LRM_FOR_NUMERIC: u32 = 4u32; +pub const UBIDI_KEEP_BASE_COMBINING: u32 = 1u32; +pub const UBIDI_LEVEL_OVERRIDE: u32 = 128u32; +pub const UBIDI_LOGICAL: UBiDiOrder = 0i32; +pub const UBIDI_LTR: UBiDiDirection = 0i32; +pub const UBIDI_MAP_NOWHERE: i32 = -1i32; +pub const UBIDI_MAX_EXPLICIT_LEVEL: u32 = 125u32; +pub const UBIDI_MIRRORING_OFF: UBiDiMirroring = 0i32; +pub const UBIDI_MIRRORING_ON: UBiDiMirroring = 1i32; +pub const UBIDI_MIXED: UBiDiDirection = 2i32; +pub const UBIDI_NEUTRAL: UBiDiDirection = 3i32; +pub const UBIDI_OPTION_DEFAULT: UBiDiReorderingOption = 0i32; +pub const UBIDI_OPTION_INSERT_MARKS: UBiDiReorderingOption = 1i32; +pub const UBIDI_OPTION_REMOVE_CONTROLS: UBiDiReorderingOption = 2i32; +pub const UBIDI_OPTION_STREAMING: UBiDiReorderingOption = 4i32; +pub const UBIDI_OUTPUT_REVERSE: u32 = 16u32; +pub const UBIDI_REMOVE_BIDI_CONTROLS: u32 = 8u32; +pub const UBIDI_REORDER_DEFAULT: UBiDiReorderingMode = 0i32; +pub const UBIDI_REORDER_GROUP_NUMBERS_WITH_R: UBiDiReorderingMode = 2i32; +pub const UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL: UBiDiReorderingMode = 6i32; +pub const UBIDI_REORDER_INVERSE_LIKE_DIRECT: UBiDiReorderingMode = 5i32; +pub const UBIDI_REORDER_INVERSE_NUMBERS_AS_L: UBiDiReorderingMode = 4i32; +pub const UBIDI_REORDER_NUMBERS_SPECIAL: UBiDiReorderingMode = 1i32; +pub const UBIDI_REORDER_RUNS_ONLY: UBiDiReorderingMode = 3i32; +pub const UBIDI_RTL: UBiDiDirection = 1i32; +pub const UBIDI_VISUAL: UBiDiOrder = 1i32; +pub const UBLOCK_ADLAM: UBlockCode = 263i32; +pub const UBLOCK_AEGEAN_NUMBERS: UBlockCode = 119i32; +pub const UBLOCK_AHOM: UBlockCode = 253i32; +pub const UBLOCK_ALCHEMICAL_SYMBOLS: UBlockCode = 208i32; +pub const UBLOCK_ALPHABETIC_PRESENTATION_FORMS: UBlockCode = 80i32; +pub const UBLOCK_ANATOLIAN_HIEROGLYPHS: UBlockCode = 254i32; +pub const UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION: UBlockCode = 126i32; +pub const UBLOCK_ANCIENT_GREEK_NUMBERS: UBlockCode = 127i32; +pub const UBLOCK_ANCIENT_SYMBOLS: UBlockCode = 165i32; +pub const UBLOCK_ARABIC: UBlockCode = 12i32; +pub const UBLOCK_ARABIC_EXTENDED_A: UBlockCode = 210i32; +pub const UBLOCK_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS: UBlockCode = 211i32; +pub const UBLOCK_ARABIC_PRESENTATION_FORMS_A: UBlockCode = 81i32; +pub const UBLOCK_ARABIC_PRESENTATION_FORMS_B: UBlockCode = 85i32; +pub const UBLOCK_ARABIC_SUPPLEMENT: UBlockCode = 128i32; +pub const UBLOCK_ARMENIAN: UBlockCode = 10i32; +pub const UBLOCK_ARROWS: UBlockCode = 46i32; +pub const UBLOCK_AVESTAN: UBlockCode = 188i32; +pub const UBLOCK_BALINESE: UBlockCode = 147i32; +pub const UBLOCK_BAMUM: UBlockCode = 177i32; +pub const UBLOCK_BAMUM_SUPPLEMENT: UBlockCode = 202i32; +pub const UBLOCK_BASIC_LATIN: UBlockCode = 1i32; +pub const UBLOCK_BASSA_VAH: UBlockCode = 221i32; +pub const UBLOCK_BATAK: UBlockCode = 199i32; +pub const UBLOCK_BENGALI: UBlockCode = 16i32; +pub const UBLOCK_BHAIKSUKI: UBlockCode = 264i32; +pub const UBLOCK_BLOCK_ELEMENTS: UBlockCode = 53i32; +pub const UBLOCK_BOPOMOFO: UBlockCode = 64i32; +pub const UBLOCK_BOPOMOFO_EXTENDED: UBlockCode = 67i32; +pub const UBLOCK_BOX_DRAWING: UBlockCode = 52i32; +pub const UBLOCK_BRAHMI: UBlockCode = 201i32; +pub const UBLOCK_BRAILLE_PATTERNS: UBlockCode = 57i32; +pub const UBLOCK_BUGINESE: UBlockCode = 129i32; +pub const UBLOCK_BUHID: UBlockCode = 100i32; +pub const UBLOCK_BYZANTINE_MUSICAL_SYMBOLS: UBlockCode = 91i32; +pub const UBLOCK_CARIAN: UBlockCode = 168i32; +pub const UBLOCK_CAUCASIAN_ALBANIAN: UBlockCode = 222i32; +pub const UBLOCK_CHAKMA: UBlockCode = 212i32; +pub const UBLOCK_CHAM: UBlockCode = 164i32; +pub const UBLOCK_CHEROKEE: UBlockCode = 32i32; +pub const UBLOCK_CHEROKEE_SUPPLEMENT: UBlockCode = 255i32; +pub const UBLOCK_CHESS_SYMBOLS: UBlockCode = 281i32; +pub const UBLOCK_CHORASMIAN: UBlockCode = 301i32; +pub const UBLOCK_CJK_COMPATIBILITY: UBlockCode = 69i32; +pub const UBLOCK_CJK_COMPATIBILITY_FORMS: UBlockCode = 83i32; +pub const UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS: UBlockCode = 79i32; +pub const UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT: UBlockCode = 95i32; +pub const UBLOCK_CJK_RADICALS_SUPPLEMENT: UBlockCode = 58i32; +pub const UBLOCK_CJK_STROKES: UBlockCode = 130i32; +pub const UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION: UBlockCode = 61i32; +pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS: UBlockCode = 71i32; +pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A: UBlockCode = 70i32; +pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B: UBlockCode = 94i32; +pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C: UBlockCode = 197i32; +pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D: UBlockCode = 209i32; +pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E: UBlockCode = 256i32; +pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F: UBlockCode = 274i32; +pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_G: UBlockCode = 302i32; +pub const UBLOCK_COMBINING_DIACRITICAL_MARKS: UBlockCode = 7i32; +pub const UBLOCK_COMBINING_DIACRITICAL_MARKS_EXTENDED: UBlockCode = 224i32; +pub const UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT: UBlockCode = 131i32; +pub const UBLOCK_COMBINING_HALF_MARKS: UBlockCode = 82i32; +pub const UBLOCK_COMBINING_MARKS_FOR_SYMBOLS: UBlockCode = 43i32; +pub const UBLOCK_COMMON_INDIC_NUMBER_FORMS: UBlockCode = 178i32; +pub const UBLOCK_CONTROL_PICTURES: UBlockCode = 49i32; +pub const UBLOCK_COPTIC: UBlockCode = 132i32; +pub const UBLOCK_COPTIC_EPACT_NUMBERS: UBlockCode = 223i32; +pub const UBLOCK_COUNTING_ROD_NUMERALS: UBlockCode = 154i32; +pub const UBLOCK_CUNEIFORM: UBlockCode = 152i32; +pub const UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION: UBlockCode = 153i32; +pub const UBLOCK_CURRENCY_SYMBOLS: UBlockCode = 42i32; +pub const UBLOCK_CYPRIOT_SYLLABARY: UBlockCode = 123i32; +pub const UBLOCK_CYRILLIC: UBlockCode = 9i32; +pub const UBLOCK_CYRILLIC_EXTENDED_A: UBlockCode = 158i32; +pub const UBLOCK_CYRILLIC_EXTENDED_B: UBlockCode = 160i32; +pub const UBLOCK_CYRILLIC_EXTENDED_C: UBlockCode = 265i32; +pub const UBLOCK_CYRILLIC_SUPPLEMENT: UBlockCode = 97i32; +pub const UBLOCK_CYRILLIC_SUPPLEMENTARY: UBlockCode = 97i32; +pub const UBLOCK_DESERET: UBlockCode = 90i32; +pub const UBLOCK_DEVANAGARI: UBlockCode = 15i32; +pub const UBLOCK_DEVANAGARI_EXTENDED: UBlockCode = 179i32; +pub const UBLOCK_DINGBATS: UBlockCode = 56i32; +pub const UBLOCK_DIVES_AKURU: UBlockCode = 303i32; +pub const UBLOCK_DOGRA: UBlockCode = 282i32; +pub const UBLOCK_DOMINO_TILES: UBlockCode = 171i32; +pub const UBLOCK_DUPLOYAN: UBlockCode = 225i32; +pub const UBLOCK_EARLY_DYNASTIC_CUNEIFORM: UBlockCode = 257i32; +pub const UBLOCK_EGYPTIAN_HIEROGLYPHS: UBlockCode = 194i32; +pub const UBLOCK_EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS: UBlockCode = 292i32; +pub const UBLOCK_ELBASAN: UBlockCode = 226i32; +pub const UBLOCK_ELYMAIC: UBlockCode = 293i32; +pub const UBLOCK_EMOTICONS: UBlockCode = 206i32; +pub const UBLOCK_ENCLOSED_ALPHANUMERICS: UBlockCode = 51i32; +pub const UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT: UBlockCode = 195i32; +pub const UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS: UBlockCode = 68i32; +pub const UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT: UBlockCode = 196i32; +pub const UBLOCK_ETHIOPIC: UBlockCode = 31i32; +pub const UBLOCK_ETHIOPIC_EXTENDED: UBlockCode = 133i32; +pub const UBLOCK_ETHIOPIC_EXTENDED_A: UBlockCode = 200i32; +pub const UBLOCK_ETHIOPIC_SUPPLEMENT: UBlockCode = 134i32; +pub const UBLOCK_GENERAL_PUNCTUATION: UBlockCode = 40i32; +pub const UBLOCK_GEOMETRIC_SHAPES: UBlockCode = 54i32; +pub const UBLOCK_GEOMETRIC_SHAPES_EXTENDED: UBlockCode = 227i32; +pub const UBLOCK_GEORGIAN: UBlockCode = 29i32; +pub const UBLOCK_GEORGIAN_EXTENDED: UBlockCode = 283i32; +pub const UBLOCK_GEORGIAN_SUPPLEMENT: UBlockCode = 135i32; +pub const UBLOCK_GLAGOLITIC: UBlockCode = 136i32; +pub const UBLOCK_GLAGOLITIC_SUPPLEMENT: UBlockCode = 266i32; +pub const UBLOCK_GOTHIC: UBlockCode = 89i32; +pub const UBLOCK_GRANTHA: UBlockCode = 228i32; +pub const UBLOCK_GREEK: UBlockCode = 8i32; +pub const UBLOCK_GREEK_EXTENDED: UBlockCode = 39i32; +pub const UBLOCK_GUJARATI: UBlockCode = 18i32; +pub const UBLOCK_GUNJALA_GONDI: UBlockCode = 284i32; +pub const UBLOCK_GURMUKHI: UBlockCode = 17i32; +pub const UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS: UBlockCode = 87i32; +pub const UBLOCK_HANGUL_COMPATIBILITY_JAMO: UBlockCode = 65i32; +pub const UBLOCK_HANGUL_JAMO: UBlockCode = 30i32; +pub const UBLOCK_HANGUL_JAMO_EXTENDED_A: UBlockCode = 180i32; +pub const UBLOCK_HANGUL_JAMO_EXTENDED_B: UBlockCode = 185i32; +pub const UBLOCK_HANGUL_SYLLABLES: UBlockCode = 74i32; +pub const UBLOCK_HANIFI_ROHINGYA: UBlockCode = 285i32; +pub const UBLOCK_HANUNOO: UBlockCode = 99i32; +pub const UBLOCK_HATRAN: UBlockCode = 258i32; +pub const UBLOCK_HEBREW: UBlockCode = 11i32; +pub const UBLOCK_HIGH_PRIVATE_USE_SURROGATES: UBlockCode = 76i32; +pub const UBLOCK_HIGH_SURROGATES: UBlockCode = 75i32; +pub const UBLOCK_HIRAGANA: UBlockCode = 62i32; +pub const UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS: UBlockCode = 60i32; +pub const UBLOCK_IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION: UBlockCode = 267i32; +pub const UBLOCK_IMPERIAL_ARAMAIC: UBlockCode = 186i32; +pub const UBLOCK_INDIC_SIYAQ_NUMBERS: UBlockCode = 286i32; +pub const UBLOCK_INSCRIPTIONAL_PAHLAVI: UBlockCode = 190i32; +pub const UBLOCK_INSCRIPTIONAL_PARTHIAN: UBlockCode = 189i32; +pub const UBLOCK_INVALID_CODE: UBlockCode = -1i32; +pub const UBLOCK_IPA_EXTENSIONS: UBlockCode = 5i32; +pub const UBLOCK_JAVANESE: UBlockCode = 181i32; +pub const UBLOCK_KAITHI: UBlockCode = 193i32; +pub const UBLOCK_KANA_EXTENDED_A: UBlockCode = 275i32; +pub const UBLOCK_KANA_SUPPLEMENT: UBlockCode = 203i32; +pub const UBLOCK_KANBUN: UBlockCode = 66i32; +pub const UBLOCK_KANGXI_RADICALS: UBlockCode = 59i32; +pub const UBLOCK_KANNADA: UBlockCode = 22i32; +pub const UBLOCK_KATAKANA: UBlockCode = 63i32; +pub const UBLOCK_KATAKANA_PHONETIC_EXTENSIONS: UBlockCode = 107i32; +pub const UBLOCK_KAYAH_LI: UBlockCode = 162i32; +pub const UBLOCK_KHAROSHTHI: UBlockCode = 137i32; +pub const UBLOCK_KHITAN_SMALL_SCRIPT: UBlockCode = 304i32; +pub const UBLOCK_KHMER: UBlockCode = 36i32; +pub const UBLOCK_KHMER_SYMBOLS: UBlockCode = 113i32; +pub const UBLOCK_KHOJKI: UBlockCode = 229i32; +pub const UBLOCK_KHUDAWADI: UBlockCode = 230i32; +pub const UBLOCK_LAO: UBlockCode = 26i32; +pub const UBLOCK_LATIN_1_SUPPLEMENT: UBlockCode = 2i32; +pub const UBLOCK_LATIN_EXTENDED_A: UBlockCode = 3i32; +pub const UBLOCK_LATIN_EXTENDED_ADDITIONAL: UBlockCode = 38i32; +pub const UBLOCK_LATIN_EXTENDED_B: UBlockCode = 4i32; +pub const UBLOCK_LATIN_EXTENDED_C: UBlockCode = 148i32; +pub const UBLOCK_LATIN_EXTENDED_D: UBlockCode = 149i32; +pub const UBLOCK_LATIN_EXTENDED_E: UBlockCode = 231i32; +pub const UBLOCK_LEPCHA: UBlockCode = 156i32; +pub const UBLOCK_LETTERLIKE_SYMBOLS: UBlockCode = 44i32; +pub const UBLOCK_LIMBU: UBlockCode = 111i32; +pub const UBLOCK_LINEAR_A: UBlockCode = 232i32; +pub const UBLOCK_LINEAR_B_IDEOGRAMS: UBlockCode = 118i32; +pub const UBLOCK_LINEAR_B_SYLLABARY: UBlockCode = 117i32; +pub const UBLOCK_LISU: UBlockCode = 176i32; +pub const UBLOCK_LISU_SUPPLEMENT: UBlockCode = 305i32; +pub const UBLOCK_LOW_SURROGATES: UBlockCode = 77i32; +pub const UBLOCK_LYCIAN: UBlockCode = 167i32; +pub const UBLOCK_LYDIAN: UBlockCode = 169i32; +pub const UBLOCK_MAHAJANI: UBlockCode = 233i32; +pub const UBLOCK_MAHJONG_TILES: UBlockCode = 170i32; +pub const UBLOCK_MAKASAR: UBlockCode = 287i32; +pub const UBLOCK_MALAYALAM: UBlockCode = 23i32; +pub const UBLOCK_MANDAIC: UBlockCode = 198i32; +pub const UBLOCK_MANICHAEAN: UBlockCode = 234i32; +pub const UBLOCK_MARCHEN: UBlockCode = 268i32; +pub const UBLOCK_MASARAM_GONDI: UBlockCode = 276i32; +pub const UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS: UBlockCode = 93i32; +pub const UBLOCK_MATHEMATICAL_OPERATORS: UBlockCode = 47i32; +pub const UBLOCK_MAYAN_NUMERALS: UBlockCode = 288i32; +pub const UBLOCK_MEDEFAIDRIN: UBlockCode = 289i32; +pub const UBLOCK_MEETEI_MAYEK: UBlockCode = 184i32; +pub const UBLOCK_MEETEI_MAYEK_EXTENSIONS: UBlockCode = 213i32; +pub const UBLOCK_MENDE_KIKAKUI: UBlockCode = 235i32; +pub const UBLOCK_MEROITIC_CURSIVE: UBlockCode = 214i32; +pub const UBLOCK_MEROITIC_HIEROGLYPHS: UBlockCode = 215i32; +pub const UBLOCK_MIAO: UBlockCode = 216i32; +pub const UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A: UBlockCode = 102i32; +pub const UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B: UBlockCode = 105i32; +pub const UBLOCK_MISCELLANEOUS_SYMBOLS: UBlockCode = 55i32; +pub const UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS: UBlockCode = 115i32; +pub const UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS: UBlockCode = 205i32; +pub const UBLOCK_MISCELLANEOUS_TECHNICAL: UBlockCode = 48i32; +pub const UBLOCK_MODI: UBlockCode = 236i32; +pub const UBLOCK_MODIFIER_TONE_LETTERS: UBlockCode = 138i32; +pub const UBLOCK_MONGOLIAN: UBlockCode = 37i32; +pub const UBLOCK_MONGOLIAN_SUPPLEMENT: UBlockCode = 269i32; +pub const UBLOCK_MRO: UBlockCode = 237i32; +pub const UBLOCK_MULTANI: UBlockCode = 259i32; +pub const UBLOCK_MUSICAL_SYMBOLS: UBlockCode = 92i32; +pub const UBLOCK_MYANMAR: UBlockCode = 28i32; +pub const UBLOCK_MYANMAR_EXTENDED_A: UBlockCode = 182i32; +pub const UBLOCK_MYANMAR_EXTENDED_B: UBlockCode = 238i32; +pub const UBLOCK_NABATAEAN: UBlockCode = 239i32; +pub const UBLOCK_NANDINAGARI: UBlockCode = 294i32; +pub const UBLOCK_NEWA: UBlockCode = 270i32; +pub const UBLOCK_NEW_TAI_LUE: UBlockCode = 139i32; +pub const UBLOCK_NKO: UBlockCode = 146i32; +pub const UBLOCK_NO_BLOCK: UBlockCode = 0i32; +pub const UBLOCK_NUMBER_FORMS: UBlockCode = 45i32; +pub const UBLOCK_NUSHU: UBlockCode = 277i32; +pub const UBLOCK_NYIAKENG_PUACHUE_HMONG: UBlockCode = 295i32; +pub const UBLOCK_OGHAM: UBlockCode = 34i32; +pub const UBLOCK_OLD_HUNGARIAN: UBlockCode = 260i32; +pub const UBLOCK_OLD_ITALIC: UBlockCode = 88i32; +pub const UBLOCK_OLD_NORTH_ARABIAN: UBlockCode = 240i32; +pub const UBLOCK_OLD_PERMIC: UBlockCode = 241i32; +pub const UBLOCK_OLD_PERSIAN: UBlockCode = 140i32; +pub const UBLOCK_OLD_SOGDIAN: UBlockCode = 290i32; +pub const UBLOCK_OLD_SOUTH_ARABIAN: UBlockCode = 187i32; +pub const UBLOCK_OLD_TURKIC: UBlockCode = 191i32; +pub const UBLOCK_OL_CHIKI: UBlockCode = 157i32; +pub const UBLOCK_OPTICAL_CHARACTER_RECOGNITION: UBlockCode = 50i32; +pub const UBLOCK_ORIYA: UBlockCode = 19i32; +pub const UBLOCK_ORNAMENTAL_DINGBATS: UBlockCode = 242i32; +pub const UBLOCK_OSAGE: UBlockCode = 271i32; +pub const UBLOCK_OSMANYA: UBlockCode = 122i32; +pub const UBLOCK_OTTOMAN_SIYAQ_NUMBERS: UBlockCode = 296i32; +pub const UBLOCK_PAHAWH_HMONG: UBlockCode = 243i32; +pub const UBLOCK_PALMYRENE: UBlockCode = 244i32; +pub const UBLOCK_PAU_CIN_HAU: UBlockCode = 245i32; +pub const UBLOCK_PHAGS_PA: UBlockCode = 150i32; +pub const UBLOCK_PHAISTOS_DISC: UBlockCode = 166i32; +pub const UBLOCK_PHOENICIAN: UBlockCode = 151i32; +pub const UBLOCK_PHONETIC_EXTENSIONS: UBlockCode = 114i32; +pub const UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT: UBlockCode = 141i32; +pub const UBLOCK_PLAYING_CARDS: UBlockCode = 204i32; +pub const UBLOCK_PRIVATE_USE: UBlockCode = 78i32; +pub const UBLOCK_PRIVATE_USE_AREA: UBlockCode = 78i32; +pub const UBLOCK_PSALTER_PAHLAVI: UBlockCode = 246i32; +pub const UBLOCK_REJANG: UBlockCode = 163i32; +pub const UBLOCK_RUMI_NUMERAL_SYMBOLS: UBlockCode = 192i32; +pub const UBLOCK_RUNIC: UBlockCode = 35i32; +pub const UBLOCK_SAMARITAN: UBlockCode = 172i32; +pub const UBLOCK_SAURASHTRA: UBlockCode = 161i32; +pub const UBLOCK_SHARADA: UBlockCode = 217i32; +pub const UBLOCK_SHAVIAN: UBlockCode = 121i32; +pub const UBLOCK_SHORTHAND_FORMAT_CONTROLS: UBlockCode = 247i32; +pub const UBLOCK_SIDDHAM: UBlockCode = 248i32; +pub const UBLOCK_SINHALA: UBlockCode = 24i32; +pub const UBLOCK_SINHALA_ARCHAIC_NUMBERS: UBlockCode = 249i32; +pub const UBLOCK_SMALL_FORM_VARIANTS: UBlockCode = 84i32; +pub const UBLOCK_SMALL_KANA_EXTENSION: UBlockCode = 297i32; +pub const UBLOCK_SOGDIAN: UBlockCode = 291i32; +pub const UBLOCK_SORA_SOMPENG: UBlockCode = 218i32; +pub const UBLOCK_SOYOMBO: UBlockCode = 278i32; +pub const UBLOCK_SPACING_MODIFIER_LETTERS: UBlockCode = 6i32; +pub const UBLOCK_SPECIALS: UBlockCode = 86i32; +pub const UBLOCK_SUNDANESE: UBlockCode = 155i32; +pub const UBLOCK_SUNDANESE_SUPPLEMENT: UBlockCode = 219i32; +pub const UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS: UBlockCode = 41i32; +pub const UBLOCK_SUPPLEMENTAL_ARROWS_A: UBlockCode = 103i32; +pub const UBLOCK_SUPPLEMENTAL_ARROWS_B: UBlockCode = 104i32; +pub const UBLOCK_SUPPLEMENTAL_ARROWS_C: UBlockCode = 250i32; +pub const UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS: UBlockCode = 106i32; +pub const UBLOCK_SUPPLEMENTAL_PUNCTUATION: UBlockCode = 142i32; +pub const UBLOCK_SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS: UBlockCode = 261i32; +pub const UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A: UBlockCode = 109i32; +pub const UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B: UBlockCode = 110i32; +pub const UBLOCK_SUTTON_SIGNWRITING: UBlockCode = 262i32; +pub const UBLOCK_SYLOTI_NAGRI: UBlockCode = 143i32; +pub const UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A: UBlockCode = 298i32; +pub const UBLOCK_SYMBOLS_FOR_LEGACY_COMPUTING: UBlockCode = 306i32; +pub const UBLOCK_SYRIAC: UBlockCode = 13i32; +pub const UBLOCK_SYRIAC_SUPPLEMENT: UBlockCode = 279i32; +pub const UBLOCK_TAGALOG: UBlockCode = 98i32; +pub const UBLOCK_TAGBANWA: UBlockCode = 101i32; +pub const UBLOCK_TAGS: UBlockCode = 96i32; +pub const UBLOCK_TAI_LE: UBlockCode = 112i32; +pub const UBLOCK_TAI_THAM: UBlockCode = 174i32; +pub const UBLOCK_TAI_VIET: UBlockCode = 183i32; +pub const UBLOCK_TAI_XUAN_JING_SYMBOLS: UBlockCode = 124i32; +pub const UBLOCK_TAKRI: UBlockCode = 220i32; +pub const UBLOCK_TAMIL: UBlockCode = 20i32; +pub const UBLOCK_TAMIL_SUPPLEMENT: UBlockCode = 299i32; +pub const UBLOCK_TANGUT: UBlockCode = 272i32; +pub const UBLOCK_TANGUT_COMPONENTS: UBlockCode = 273i32; +pub const UBLOCK_TANGUT_SUPPLEMENT: UBlockCode = 307i32; +pub const UBLOCK_TELUGU: UBlockCode = 21i32; +pub const UBLOCK_THAANA: UBlockCode = 14i32; +pub const UBLOCK_THAI: UBlockCode = 25i32; +pub const UBLOCK_TIBETAN: UBlockCode = 27i32; +pub const UBLOCK_TIFINAGH: UBlockCode = 144i32; +pub const UBLOCK_TIRHUTA: UBlockCode = 251i32; +pub const UBLOCK_TRANSPORT_AND_MAP_SYMBOLS: UBlockCode = 207i32; +pub const UBLOCK_UGARITIC: UBlockCode = 120i32; +pub const UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS: UBlockCode = 33i32; +pub const UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED: UBlockCode = 173i32; +pub const UBLOCK_VAI: UBlockCode = 159i32; +pub const UBLOCK_VARIATION_SELECTORS: UBlockCode = 108i32; +pub const UBLOCK_VARIATION_SELECTORS_SUPPLEMENT: UBlockCode = 125i32; +pub const UBLOCK_VEDIC_EXTENSIONS: UBlockCode = 175i32; +pub const UBLOCK_VERTICAL_FORMS: UBlockCode = 145i32; +pub const UBLOCK_WANCHO: UBlockCode = 300i32; +pub const UBLOCK_WARANG_CITI: UBlockCode = 252i32; +pub const UBLOCK_YEZIDI: UBlockCode = 308i32; +pub const UBLOCK_YIJING_HEXAGRAM_SYMBOLS: UBlockCode = 116i32; +pub const UBLOCK_YI_RADICALS: UBlockCode = 73i32; +pub const UBLOCK_YI_SYLLABLES: UBlockCode = 72i32; +pub const UBLOCK_ZANABAZAR_SQUARE: UBlockCode = 280i32; +pub const UBRK_CHARACTER: UBreakIteratorType = 0i32; +pub const UBRK_LINE: UBreakIteratorType = 2i32; +pub const UBRK_LINE_HARD: ULineBreakTag = 100i32; +pub const UBRK_LINE_HARD_LIMIT: ULineBreakTag = 200i32; +pub const UBRK_LINE_SOFT: ULineBreakTag = 0i32; +pub const UBRK_LINE_SOFT_LIMIT: ULineBreakTag = 100i32; +pub const UBRK_SENTENCE: UBreakIteratorType = 3i32; +pub const UBRK_SENTENCE_SEP: USentenceBreakTag = 100i32; +pub const UBRK_SENTENCE_SEP_LIMIT: USentenceBreakTag = 200i32; +pub const UBRK_SENTENCE_TERM: USentenceBreakTag = 0i32; +pub const UBRK_SENTENCE_TERM_LIMIT: USentenceBreakTag = 100i32; +pub const UBRK_WORD: UBreakIteratorType = 1i32; +pub const UBRK_WORD_IDEO: UWordBreak = 400i32; +pub const UBRK_WORD_IDEO_LIMIT: UWordBreak = 500i32; +pub const UBRK_WORD_KANA: UWordBreak = 300i32; +pub const UBRK_WORD_KANA_LIMIT: UWordBreak = 400i32; +pub const UBRK_WORD_LETTER: UWordBreak = 200i32; +pub const UBRK_WORD_LETTER_LIMIT: UWordBreak = 300i32; +pub const UBRK_WORD_NONE: UWordBreak = 0i32; +pub const UBRK_WORD_NONE_LIMIT: UWordBreak = 100i32; +pub const UBRK_WORD_NUMBER: UWordBreak = 100i32; +pub const UBRK_WORD_NUMBER_LIMIT: UWordBreak = 200i32; +pub const UCAL_ACTUAL_MAXIMUM: UCalendarLimitType = 5i32; +pub const UCAL_ACTUAL_MINIMUM: UCalendarLimitType = 4i32; +pub const UCAL_AM: UCalendarAMPMs = 0i32; +pub const UCAL_AM_PM: UCalendarDateFields = 9i32; +pub const UCAL_APRIL: UCalendarMonths = 3i32; +pub const UCAL_AUGUST: UCalendarMonths = 7i32; +pub const UCAL_DATE: UCalendarDateFields = 5i32; +pub const UCAL_DAY_OF_MONTH: UCalendarDateFields = 5i32; +pub const UCAL_DAY_OF_WEEK: UCalendarDateFields = 7i32; +pub const UCAL_DAY_OF_WEEK_IN_MONTH: UCalendarDateFields = 8i32; +pub const UCAL_DAY_OF_YEAR: UCalendarDateFields = 6i32; +pub const UCAL_DECEMBER: UCalendarMonths = 11i32; +pub const UCAL_DEFAULT: UCalendarType = 0i32; +pub const UCAL_DOW_LOCAL: UCalendarDateFields = 18i32; +pub const UCAL_DST: UCalendarDisplayNameType = 2i32; +pub const UCAL_DST_OFFSET: UCalendarDateFields = 16i32; +pub const UCAL_ERA: UCalendarDateFields = 0i32; +pub const UCAL_EXTENDED_YEAR: UCalendarDateFields = 19i32; +pub const UCAL_FEBRUARY: UCalendarMonths = 1i32; +pub const UCAL_FIELD_COUNT: UCalendarDateFields = 23i32; +pub const UCAL_FIRST_DAY_OF_WEEK: UCalendarAttribute = 1i32; +pub const UCAL_FRIDAY: UCalendarDaysOfWeek = 6i32; +pub const UCAL_GREATEST_MINIMUM: UCalendarLimitType = 2i32; +pub const UCAL_GREGORIAN: UCalendarType = 1i32; +pub const UCAL_HOUR: UCalendarDateFields = 10i32; +pub const UCAL_HOUR_OF_DAY: UCalendarDateFields = 11i32; +pub const UCAL_IS_LEAP_MONTH: UCalendarDateFields = 22i32; +pub const UCAL_JANUARY: UCalendarMonths = 0i32; +pub const UCAL_JULIAN_DAY: UCalendarDateFields = 20i32; +pub const UCAL_JULY: UCalendarMonths = 6i32; +pub const UCAL_JUNE: UCalendarMonths = 5i32; +pub const UCAL_LEAST_MAXIMUM: UCalendarLimitType = 3i32; +pub const UCAL_LENIENT: UCalendarAttribute = 0i32; +pub const UCAL_MARCH: UCalendarMonths = 2i32; +pub const UCAL_MAXIMUM: UCalendarLimitType = 1i32; +pub const UCAL_MAY: UCalendarMonths = 4i32; +pub const UCAL_MILLISECOND: UCalendarDateFields = 14i32; +pub const UCAL_MILLISECONDS_IN_DAY: UCalendarDateFields = 21i32; +pub const UCAL_MINIMAL_DAYS_IN_FIRST_WEEK: UCalendarAttribute = 2i32; +pub const UCAL_MINIMUM: UCalendarLimitType = 0i32; +pub const UCAL_MINUTE: UCalendarDateFields = 12i32; +pub const UCAL_MONDAY: UCalendarDaysOfWeek = 2i32; +pub const UCAL_MONTH: UCalendarDateFields = 2i32; +pub const UCAL_NOVEMBER: UCalendarMonths = 10i32; +pub const UCAL_OCTOBER: UCalendarMonths = 9i32; +pub const UCAL_PM: UCalendarAMPMs = 1i32; +pub const UCAL_REPEATED_WALL_TIME: UCalendarAttribute = 3i32; +pub const UCAL_SATURDAY: UCalendarDaysOfWeek = 7i32; +pub const UCAL_SECOND: UCalendarDateFields = 13i32; +pub const UCAL_SEPTEMBER: UCalendarMonths = 8i32; +pub const UCAL_SHORT_DST: UCalendarDisplayNameType = 3i32; +pub const UCAL_SHORT_STANDARD: UCalendarDisplayNameType = 1i32; +pub const UCAL_SKIPPED_WALL_TIME: UCalendarAttribute = 4i32; +pub const UCAL_STANDARD: UCalendarDisplayNameType = 0i32; +pub const UCAL_SUNDAY: UCalendarDaysOfWeek = 1i32; +pub const UCAL_THURSDAY: UCalendarDaysOfWeek = 5i32; +pub const UCAL_TRADITIONAL: UCalendarType = 0i32; +pub const UCAL_TUESDAY: UCalendarDaysOfWeek = 3i32; +pub const UCAL_TZ_TRANSITION_NEXT: UTimeZoneTransitionType = 0i32; +pub const UCAL_TZ_TRANSITION_NEXT_INCLUSIVE: UTimeZoneTransitionType = 1i32; +pub const UCAL_TZ_TRANSITION_PREVIOUS: UTimeZoneTransitionType = 2i32; +pub const UCAL_TZ_TRANSITION_PREVIOUS_INCLUSIVE: UTimeZoneTransitionType = 3i32; +pub const UCAL_UNDECIMBER: UCalendarMonths = 12i32; +pub const UCAL_UNKNOWN_ZONE_ID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Etc/Unknown"); +pub const UCAL_WALLTIME_FIRST: UCalendarWallTimeOption = 1i32; +pub const UCAL_WALLTIME_LAST: UCalendarWallTimeOption = 0i32; +pub const UCAL_WALLTIME_NEXT_VALID: UCalendarWallTimeOption = 2i32; +pub const UCAL_WEDNESDAY: UCalendarDaysOfWeek = 4i32; +pub const UCAL_WEEKDAY: UCalendarWeekdayType = 0i32; +pub const UCAL_WEEKEND: UCalendarWeekdayType = 1i32; +pub const UCAL_WEEKEND_CEASE: UCalendarWeekdayType = 3i32; +pub const UCAL_WEEKEND_ONSET: UCalendarWeekdayType = 2i32; +pub const UCAL_WEEK_OF_MONTH: UCalendarDateFields = 4i32; +pub const UCAL_WEEK_OF_YEAR: UCalendarDateFields = 3i32; +pub const UCAL_YEAR: UCalendarDateFields = 1i32; +pub const UCAL_YEAR_WOY: UCalendarDateFields = 17i32; +pub const UCAL_ZONE_OFFSET: UCalendarDateFields = 15i32; +pub const UCAL_ZONE_TYPE_ANY: USystemTimeZoneType = 0i32; +pub const UCAL_ZONE_TYPE_CANONICAL: USystemTimeZoneType = 1i32; +pub const UCAL_ZONE_TYPE_CANONICAL_LOCATION: USystemTimeZoneType = 2i32; +pub const UCHAR_AGE: UProperty = 16384i32; +pub const UCHAR_ALPHABETIC: UProperty = 0i32; +pub const UCHAR_ASCII_HEX_DIGIT: UProperty = 1i32; +pub const UCHAR_BIDI_CLASS: UProperty = 4096i32; +pub const UCHAR_BIDI_CONTROL: UProperty = 2i32; +pub const UCHAR_BIDI_MIRRORED: UProperty = 3i32; +pub const UCHAR_BIDI_MIRRORING_GLYPH: UProperty = 16385i32; +pub const UCHAR_BIDI_PAIRED_BRACKET: UProperty = 16397i32; +pub const UCHAR_BIDI_PAIRED_BRACKET_TYPE: UProperty = 4117i32; +pub const UCHAR_BINARY_START: UProperty = 0i32; +pub const UCHAR_BLOCK: UProperty = 4097i32; +pub const UCHAR_CANONICAL_COMBINING_CLASS: UProperty = 4098i32; +pub const UCHAR_CASED: UProperty = 49i32; +pub const UCHAR_CASE_FOLDING: UProperty = 16386i32; +pub const UCHAR_CASE_IGNORABLE: UProperty = 50i32; +pub const UCHAR_CASE_SENSITIVE: UProperty = 34i32; +pub const UCHAR_CHANGES_WHEN_CASEFOLDED: UProperty = 54i32; +pub const UCHAR_CHANGES_WHEN_CASEMAPPED: UProperty = 55i32; +pub const UCHAR_CHANGES_WHEN_LOWERCASED: UProperty = 51i32; +pub const UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED: UProperty = 56i32; +pub const UCHAR_CHANGES_WHEN_TITLECASED: UProperty = 53i32; +pub const UCHAR_CHANGES_WHEN_UPPERCASED: UProperty = 52i32; +pub const UCHAR_DASH: UProperty = 4i32; +pub const UCHAR_DECOMPOSITION_TYPE: UProperty = 4099i32; +pub const UCHAR_DEFAULT_IGNORABLE_CODE_POINT: UProperty = 5i32; +pub const UCHAR_DEPRECATED: UProperty = 6i32; +pub const UCHAR_DIACRITIC: UProperty = 7i32; +pub const UCHAR_DOUBLE_START: UProperty = 12288i32; +pub const UCHAR_EAST_ASIAN_WIDTH: UProperty = 4100i32; +pub const UCHAR_EMOJI: UProperty = 57i32; +pub const UCHAR_EMOJI_COMPONENT: UProperty = 61i32; +pub const UCHAR_EMOJI_MODIFIER: UProperty = 59i32; +pub const UCHAR_EMOJI_MODIFIER_BASE: UProperty = 60i32; +pub const UCHAR_EMOJI_PRESENTATION: UProperty = 58i32; +pub const UCHAR_EXTENDED_PICTOGRAPHIC: UProperty = 64i32; +pub const UCHAR_EXTENDER: UProperty = 8i32; +pub const UCHAR_FULL_COMPOSITION_EXCLUSION: UProperty = 9i32; +pub const UCHAR_GENERAL_CATEGORY: UProperty = 4101i32; +pub const UCHAR_GENERAL_CATEGORY_MASK: UProperty = 8192i32; +pub const UCHAR_GRAPHEME_BASE: UProperty = 10i32; +pub const UCHAR_GRAPHEME_CLUSTER_BREAK: UProperty = 4114i32; +pub const UCHAR_GRAPHEME_EXTEND: UProperty = 11i32; +pub const UCHAR_GRAPHEME_LINK: UProperty = 12i32; +pub const UCHAR_HANGUL_SYLLABLE_TYPE: UProperty = 4107i32; +pub const UCHAR_HEX_DIGIT: UProperty = 13i32; +pub const UCHAR_HYPHEN: UProperty = 14i32; +pub const UCHAR_IDEOGRAPHIC: UProperty = 17i32; +pub const UCHAR_IDS_BINARY_OPERATOR: UProperty = 18i32; +pub const UCHAR_IDS_TRINARY_OPERATOR: UProperty = 19i32; +pub const UCHAR_ID_CONTINUE: UProperty = 15i32; +pub const UCHAR_ID_START: UProperty = 16i32; +pub const UCHAR_INDIC_POSITIONAL_CATEGORY: UProperty = 4118i32; +pub const UCHAR_INDIC_SYLLABIC_CATEGORY: UProperty = 4119i32; +pub const UCHAR_INT_START: UProperty = 4096i32; +pub const UCHAR_INVALID_CODE: UProperty = -1i32; +pub const UCHAR_JOINING_GROUP: UProperty = 4102i32; +pub const UCHAR_JOINING_TYPE: UProperty = 4103i32; +pub const UCHAR_JOIN_CONTROL: UProperty = 20i32; +pub const UCHAR_LEAD_CANONICAL_COMBINING_CLASS: UProperty = 4112i32; +pub const UCHAR_LINE_BREAK: UProperty = 4104i32; +pub const UCHAR_LOGICAL_ORDER_EXCEPTION: UProperty = 21i32; +pub const UCHAR_LOWERCASE: UProperty = 22i32; +pub const UCHAR_LOWERCASE_MAPPING: UProperty = 16388i32; +pub const UCHAR_MASK_START: UProperty = 8192i32; +pub const UCHAR_MATH: UProperty = 23i32; +pub const UCHAR_MAX_VALUE: u32 = 1114111u32; +pub const UCHAR_MIN_VALUE: u32 = 0u32; +pub const UCHAR_NAME: UProperty = 16389i32; +pub const UCHAR_NFC_INERT: UProperty = 39i32; +pub const UCHAR_NFC_QUICK_CHECK: UProperty = 4110i32; +pub const UCHAR_NFD_INERT: UProperty = 37i32; +pub const UCHAR_NFD_QUICK_CHECK: UProperty = 4108i32; +pub const UCHAR_NFKC_INERT: UProperty = 40i32; +pub const UCHAR_NFKC_QUICK_CHECK: UProperty = 4111i32; +pub const UCHAR_NFKD_INERT: UProperty = 38i32; +pub const UCHAR_NFKD_QUICK_CHECK: UProperty = 4109i32; +pub const UCHAR_NONCHARACTER_CODE_POINT: UProperty = 24i32; +pub const UCHAR_NUMERIC_TYPE: UProperty = 4105i32; +pub const UCHAR_NUMERIC_VALUE: UProperty = 12288i32; +pub const UCHAR_OTHER_PROPERTY_START: UProperty = 28672i32; +pub const UCHAR_PATTERN_SYNTAX: UProperty = 42i32; +pub const UCHAR_PATTERN_WHITE_SPACE: UProperty = 43i32; +pub const UCHAR_POSIX_ALNUM: UProperty = 44i32; +pub const UCHAR_POSIX_BLANK: UProperty = 45i32; +pub const UCHAR_POSIX_GRAPH: UProperty = 46i32; +pub const UCHAR_POSIX_PRINT: UProperty = 47i32; +pub const UCHAR_POSIX_XDIGIT: UProperty = 48i32; +pub const UCHAR_PREPENDED_CONCATENATION_MARK: UProperty = 63i32; +pub const UCHAR_QUOTATION_MARK: UProperty = 25i32; +pub const UCHAR_RADICAL: UProperty = 26i32; +pub const UCHAR_REGIONAL_INDICATOR: UProperty = 62i32; +pub const UCHAR_SCRIPT: UProperty = 4106i32; +pub const UCHAR_SCRIPT_EXTENSIONS: UProperty = 28672i32; +pub const UCHAR_SEGMENT_STARTER: UProperty = 41i32; +pub const UCHAR_SENTENCE_BREAK: UProperty = 4115i32; +pub const UCHAR_SIMPLE_CASE_FOLDING: UProperty = 16390i32; +pub const UCHAR_SIMPLE_LOWERCASE_MAPPING: UProperty = 16391i32; +pub const UCHAR_SIMPLE_TITLECASE_MAPPING: UProperty = 16392i32; +pub const UCHAR_SIMPLE_UPPERCASE_MAPPING: UProperty = 16393i32; +pub const UCHAR_SOFT_DOTTED: UProperty = 27i32; +pub const UCHAR_STRING_START: UProperty = 16384i32; +pub const UCHAR_S_TERM: UProperty = 35i32; +pub const UCHAR_TERMINAL_PUNCTUATION: UProperty = 28i32; +pub const UCHAR_TITLECASE_MAPPING: UProperty = 16394i32; +pub const UCHAR_TRAIL_CANONICAL_COMBINING_CLASS: UProperty = 4113i32; +pub const UCHAR_UNIFIED_IDEOGRAPH: UProperty = 29i32; +pub const UCHAR_UPPERCASE: UProperty = 30i32; +pub const UCHAR_UPPERCASE_MAPPING: UProperty = 16396i32; +pub const UCHAR_VARIATION_SELECTOR: UProperty = 36i32; +pub const UCHAR_VERTICAL_ORIENTATION: UProperty = 4120i32; +pub const UCHAR_WHITE_SPACE: UProperty = 31i32; +pub const UCHAR_WORD_BREAK: UProperty = 4116i32; +pub const UCHAR_XID_CONTINUE: UProperty = 32i32; +pub const UCHAR_XID_START: UProperty = 33i32; +pub const UCLN_NO_AUTO_CLEANUP: u32 = 1u32; +pub const UCNV_BOCU1: UConverterType = 28i32; +pub const UCNV_CESU8: UConverterType = 31i32; +pub const UCNV_CLONE: UConverterCallbackReason = 5i32; +pub const UCNV_CLOSE: UConverterCallbackReason = 4i32; +pub const UCNV_COMPOUND_TEXT: UConverterType = 33i32; +pub const UCNV_DBCS: UConverterType = 1i32; +pub const UCNV_EBCDIC_STATEFUL: UConverterType = 9i32; +pub const UCNV_ESCAPE_C: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("C"); +pub const UCNV_ESCAPE_CSS2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("S"); +pub const UCNV_ESCAPE_JAVA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("J"); +pub const UCNV_ESCAPE_UNICODE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("U"); +pub const UCNV_ESCAPE_XML_DEC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("D"); +pub const UCNV_ESCAPE_XML_HEX: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("X"); +pub const UCNV_HZ: UConverterType = 23i32; +pub const UCNV_IBM: UConverterPlatform = 0i32; +pub const UCNV_ILLEGAL: UConverterCallbackReason = 1i32; +pub const UCNV_IMAP_MAILBOX: UConverterType = 32i32; +pub const UCNV_IRREGULAR: UConverterCallbackReason = 2i32; +pub const UCNV_ISCII: UConverterType = 25i32; +pub const UCNV_ISO_2022: UConverterType = 10i32; +pub const UCNV_LATIN_1: UConverterType = 3i32; +pub const UCNV_LMBCS_1: UConverterType = 11i32; +pub const UCNV_LMBCS_11: UConverterType = 18i32; +pub const UCNV_LMBCS_16: UConverterType = 19i32; +pub const UCNV_LMBCS_17: UConverterType = 20i32; +pub const UCNV_LMBCS_18: UConverterType = 21i32; +pub const UCNV_LMBCS_19: UConverterType = 22i32; +pub const UCNV_LMBCS_2: UConverterType = 12i32; +pub const UCNV_LMBCS_3: UConverterType = 13i32; +pub const UCNV_LMBCS_4: UConverterType = 14i32; +pub const UCNV_LMBCS_5: UConverterType = 15i32; +pub const UCNV_LMBCS_6: UConverterType = 16i32; +pub const UCNV_LMBCS_8: UConverterType = 17i32; +pub const UCNV_LMBCS_LAST: UConverterType = 22i32; +pub const UCNV_LOCALE_OPTION_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!(",locale="); +pub const UCNV_MAX_CONVERTER_NAME_LENGTH: u32 = 60u32; +pub const UCNV_MBCS: UConverterType = 2i32; +pub const UCNV_NUMBER_OF_SUPPORTED_CONVERTER_TYPES: UConverterType = 34i32; +pub const UCNV_OPTION_SEP_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!(","); +pub const UCNV_RESET: UConverterCallbackReason = 3i32; +pub const UCNV_ROUNDTRIP_AND_FALLBACK_SET: UConverterUnicodeSet = 1i32; +pub const UCNV_ROUNDTRIP_SET: UConverterUnicodeSet = 0i32; +pub const UCNV_SBCS: UConverterType = 0i32; +pub const UCNV_SCSU: UConverterType = 24i32; +pub const UCNV_SI: u32 = 15u32; +pub const UCNV_SKIP_STOP_ON_ILLEGAL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("i"); +pub const UCNV_SO: u32 = 14u32; +pub const UCNV_SUB_STOP_ON_ILLEGAL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("i"); +pub const UCNV_SWAP_LFNL_OPTION_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!(",swaplfnl"); +pub const UCNV_UNASSIGNED: UConverterCallbackReason = 0i32; +pub const UCNV_UNKNOWN: UConverterPlatform = -1i32; +pub const UCNV_UNSUPPORTED_CONVERTER: UConverterType = -1i32; +pub const UCNV_US_ASCII: UConverterType = 26i32; +pub const UCNV_UTF16: UConverterType = 29i32; +pub const UCNV_UTF16_BigEndian: UConverterType = 5i32; +pub const UCNV_UTF16_LittleEndian: UConverterType = 6i32; +pub const UCNV_UTF32: UConverterType = 30i32; +pub const UCNV_UTF32_BigEndian: UConverterType = 7i32; +pub const UCNV_UTF32_LittleEndian: UConverterType = 8i32; +pub const UCNV_UTF7: UConverterType = 27i32; +pub const UCNV_UTF8: UConverterType = 4i32; +pub const UCNV_VALUE_SEP_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("="); +pub const UCNV_VERSION_OPTION_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!(",version="); +pub const UCOL_ALTERNATE_HANDLING: UColAttribute = 1i32; +pub const UCOL_ATTRIBUTE_COUNT: UColAttribute = 8i32; +pub const UCOL_BOUND_LOWER: UColBoundMode = 0i32; +pub const UCOL_BOUND_UPPER: UColBoundMode = 1i32; +pub const UCOL_BOUND_UPPER_LONG: UColBoundMode = 2i32; +pub const UCOL_CASE_FIRST: UColAttribute = 2i32; +pub const UCOL_CASE_LEVEL: UColAttribute = 3i32; +pub const UCOL_CE_STRENGTH_LIMIT: UColAttributeValue = 3i32; +pub const UCOL_DECOMPOSITION_MODE: UColAttribute = 4i32; +pub const UCOL_DEFAULT: UColAttributeValue = -1i32; +pub const UCOL_DEFAULT_STRENGTH: UColAttributeValue = 2i32; +pub const UCOL_EQUAL: UCollationResult = 0i32; +pub const UCOL_FRENCH_COLLATION: UColAttribute = 0i32; +pub const UCOL_FULL_RULES: UColRuleOption = 1i32; +pub const UCOL_GREATER: UCollationResult = 1i32; +pub const UCOL_IDENTICAL: UColAttributeValue = 15i32; +pub const UCOL_LESS: UCollationResult = -1i32; +pub const UCOL_LOWER_FIRST: UColAttributeValue = 24i32; +pub const UCOL_NON_IGNORABLE: UColAttributeValue = 21i32; +pub const UCOL_NORMALIZATION_MODE: UColAttribute = 4i32; +pub const UCOL_NUMERIC_COLLATION: UColAttribute = 7i32; +pub const UCOL_OFF: UColAttributeValue = 16i32; +pub const UCOL_ON: UColAttributeValue = 17i32; +pub const UCOL_PRIMARY: UColAttributeValue = 0i32; +pub const UCOL_QUATERNARY: UColAttributeValue = 3i32; +pub const UCOL_REORDER_CODE_CURRENCY: UColReorderCode = 4099i32; +pub const UCOL_REORDER_CODE_DEFAULT: UColReorderCode = -1i32; +pub const UCOL_REORDER_CODE_DIGIT: UColReorderCode = 4100i32; +pub const UCOL_REORDER_CODE_FIRST: UColReorderCode = 4096i32; +pub const UCOL_REORDER_CODE_NONE: UColReorderCode = 103i32; +pub const UCOL_REORDER_CODE_OTHERS: UColReorderCode = 103i32; +pub const UCOL_REORDER_CODE_PUNCTUATION: UColReorderCode = 4097i32; +pub const UCOL_REORDER_CODE_SPACE: UColReorderCode = 4096i32; +pub const UCOL_REORDER_CODE_SYMBOL: UColReorderCode = 4098i32; +pub const UCOL_SECONDARY: UColAttributeValue = 1i32; +pub const UCOL_SHIFTED: UColAttributeValue = 20i32; +pub const UCOL_STRENGTH: UColAttribute = 5i32; +pub const UCOL_STRENGTH_LIMIT: UColAttributeValue = 16i32; +pub const UCOL_TAILORING_ONLY: UColRuleOption = 0i32; +pub const UCOL_TERTIARY: UColAttributeValue = 2i32; +pub const UCOL_UPPER_FIRST: UColAttributeValue = 25i32; +pub const UCONFIG_ENABLE_PLUGINS: u32 = 0u32; +pub const UCONFIG_FORMAT_FASTPATHS_49: u32 = 1u32; +pub const UCONFIG_HAVE_PARSEALLINPUT: u32 = 1u32; +pub const UCONFIG_NO_BREAK_ITERATION: u32 = 1u32; +pub const UCONFIG_NO_COLLATION: u32 = 1u32; +pub const UCONFIG_NO_CONVERSION: u32 = 0u32; +pub const UCONFIG_NO_FILE_IO: u32 = 0u32; +pub const UCONFIG_NO_FILTERED_BREAK_ITERATION: u32 = 0u32; +pub const UCONFIG_NO_FORMATTING: u32 = 1u32; +pub const UCONFIG_NO_IDNA: u32 = 1u32; +pub const UCONFIG_NO_LEGACY_CONVERSION: u32 = 1u32; +pub const UCONFIG_NO_NORMALIZATION: u32 = 0u32; +pub const UCONFIG_NO_REGULAR_EXPRESSIONS: u32 = 1u32; +pub const UCONFIG_NO_SERVICE: u32 = 0u32; +pub const UCONFIG_NO_TRANSLITERATION: u32 = 1u32; +pub const UCONFIG_ONLY_COLLATION: u32 = 0u32; +pub const UCONFIG_ONLY_HTML_CONVERSION: u32 = 0u32; +pub const UCPMAP_RANGE_FIXED_ALL_SURROGATES: UCPMapRangeOption = 2i32; +pub const UCPMAP_RANGE_FIXED_LEAD_SURROGATES: UCPMapRangeOption = 1i32; +pub const UCPMAP_RANGE_NORMAL: UCPMapRangeOption = 0i32; +pub const UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET: i32 = 1i32; +pub const UCPTRIE_FAST_DATA_BLOCK_LENGTH: i32 = 64i32; +pub const UCPTRIE_FAST_DATA_MASK: i32 = 63i32; +pub const UCPTRIE_FAST_SHIFT: i32 = 6i32; +pub const UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET: i32 = 2i32; +pub const UCPTRIE_SMALL_MAX: i32 = 4095i32; +pub const UCPTRIE_TYPE_ANY: UCPTrieType = -1i32; +pub const UCPTRIE_TYPE_FAST: UCPTrieType = 0i32; +pub const UCPTRIE_TYPE_SMALL: UCPTrieType = 1i32; +pub const UCPTRIE_VALUE_BITS_16: UCPTrieValueWidth = 0i32; +pub const UCPTRIE_VALUE_BITS_32: UCPTrieValueWidth = 1i32; +pub const UCPTRIE_VALUE_BITS_8: UCPTrieValueWidth = 2i32; +pub const UCPTRIE_VALUE_BITS_ANY: UCPTrieValueWidth = -1i32; +pub const UCURR_ALL: UCurrCurrencyType = 2147483647i32; +pub const UCURR_COMMON: UCurrCurrencyType = 1i32; +pub const UCURR_DEPRECATED: UCurrCurrencyType = 4i32; +pub const UCURR_LONG_NAME: UCurrNameStyle = 1i32; +pub const UCURR_NARROW_SYMBOL_NAME: UCurrNameStyle = 2i32; +pub const UCURR_NON_DEPRECATED: UCurrCurrencyType = 8i32; +pub const UCURR_SYMBOL_NAME: UCurrNameStyle = 0i32; +pub const UCURR_UNCOMMON: UCurrCurrencyType = 2i32; +pub const UCURR_USAGE_CASH: UCurrencyUsage = 1i32; +pub const UCURR_USAGE_STANDARD: UCurrencyUsage = 0i32; +pub const UDATPG_ABBREVIATED: UDateTimePGDisplayWidth = 1i32; +pub const UDATPG_BASE_CONFLICT: UDateTimePatternConflict = 1i32; +pub const UDATPG_CONFLICT: UDateTimePatternConflict = 2i32; +pub const UDATPG_DAYPERIOD_FIELD: UDateTimePatternField = 10i32; +pub const UDATPG_DAY_FIELD: UDateTimePatternField = 9i32; +pub const UDATPG_DAY_OF_WEEK_IN_MONTH_FIELD: UDateTimePatternField = 8i32; +pub const UDATPG_DAY_OF_YEAR_FIELD: UDateTimePatternField = 7i32; +pub const UDATPG_ERA_FIELD: UDateTimePatternField = 0i32; +pub const UDATPG_FIELD_COUNT: UDateTimePatternField = 16i32; +pub const UDATPG_FRACTIONAL_SECOND_FIELD: UDateTimePatternField = 14i32; +pub const UDATPG_HOUR_FIELD: UDateTimePatternField = 11i32; +pub const UDATPG_MATCH_ALL_FIELDS_LENGTH: UDateTimePatternMatchOptions = 65535i32; +pub const UDATPG_MATCH_HOUR_FIELD_LENGTH: UDateTimePatternMatchOptions = 2048i32; +pub const UDATPG_MATCH_NO_OPTIONS: UDateTimePatternMatchOptions = 0i32; +pub const UDATPG_MINUTE_FIELD: UDateTimePatternField = 12i32; +pub const UDATPG_MONTH_FIELD: UDateTimePatternField = 3i32; +pub const UDATPG_NARROW: UDateTimePGDisplayWidth = 2i32; +pub const UDATPG_NO_CONFLICT: UDateTimePatternConflict = 0i32; +pub const UDATPG_QUARTER_FIELD: UDateTimePatternField = 2i32; +pub const UDATPG_SECOND_FIELD: UDateTimePatternField = 13i32; +pub const UDATPG_WEEKDAY_FIELD: UDateTimePatternField = 6i32; +pub const UDATPG_WEEK_OF_MONTH_FIELD: UDateTimePatternField = 5i32; +pub const UDATPG_WEEK_OF_YEAR_FIELD: UDateTimePatternField = 4i32; +pub const UDATPG_WIDE: UDateTimePGDisplayWidth = 0i32; +pub const UDATPG_YEAR_FIELD: UDateTimePatternField = 1i32; +pub const UDATPG_ZONE_FIELD: UDateTimePatternField = 15i32; +pub const UDAT_ABBR_GENERIC_TZ: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("v"); +pub const UDAT_ABBR_MONTH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MMM"); +pub const UDAT_ABBR_MONTH_DAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MMMd"); +pub const UDAT_ABBR_MONTH_WEEKDAY_DAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MMMEd"); +pub const UDAT_ABBR_QUARTER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("QQQ"); +pub const UDAT_ABBR_SPECIFIC_TZ: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("z"); +pub const UDAT_ABBR_UTC_TZ: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ZZZZ"); +pub const UDAT_ABBR_WEEKDAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("E"); +pub const UDAT_ABSOLUTE_DAY: UDateAbsoluteUnit = 7i32; +pub const UDAT_ABSOLUTE_FRIDAY: UDateAbsoluteUnit = 5i32; +pub const UDAT_ABSOLUTE_MONDAY: UDateAbsoluteUnit = 1i32; +pub const UDAT_ABSOLUTE_MONTH: UDateAbsoluteUnit = 9i32; +pub const UDAT_ABSOLUTE_NOW: UDateAbsoluteUnit = 11i32; +pub const UDAT_ABSOLUTE_SATURDAY: UDateAbsoluteUnit = 6i32; +pub const UDAT_ABSOLUTE_SUNDAY: UDateAbsoluteUnit = 0i32; +pub const UDAT_ABSOLUTE_THURSDAY: UDateAbsoluteUnit = 4i32; +pub const UDAT_ABSOLUTE_TUESDAY: UDateAbsoluteUnit = 2i32; +pub const UDAT_ABSOLUTE_UNIT_COUNT: UDateAbsoluteUnit = 12i32; +pub const UDAT_ABSOLUTE_WEDNESDAY: UDateAbsoluteUnit = 3i32; +pub const UDAT_ABSOLUTE_WEEK: UDateAbsoluteUnit = 8i32; +pub const UDAT_ABSOLUTE_YEAR: UDateAbsoluteUnit = 10i32; +pub const UDAT_AM_PMS: UDateFormatSymbolType = 5i32; +pub const UDAT_AM_PM_FIELD: UDateFormatField = 14i32; +pub const UDAT_AM_PM_MIDNIGHT_NOON_FIELD: UDateFormatField = 35i32; +pub const UDAT_BOOLEAN_ATTRIBUTE_COUNT: UDateFormatBooleanAttribute = 4i32; +pub const UDAT_CYCLIC_YEARS_ABBREVIATED: UDateFormatSymbolType = 23i32; +pub const UDAT_CYCLIC_YEARS_NARROW: UDateFormatSymbolType = 24i32; +pub const UDAT_CYCLIC_YEARS_WIDE: UDateFormatSymbolType = 22i32; +pub const UDAT_DATE_FIELD: UDateFormatField = 3i32; +pub const UDAT_DAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("d"); +pub const UDAT_DAY_OF_WEEK_FIELD: UDateFormatField = 9i32; +pub const UDAT_DAY_OF_WEEK_IN_MONTH_FIELD: UDateFormatField = 11i32; +pub const UDAT_DAY_OF_YEAR_FIELD: UDateFormatField = 10i32; +pub const UDAT_DEFAULT: UDateFormatStyle = 2i32; +pub const UDAT_DIRECTION_COUNT: UDateDirection = 6i32; +pub const UDAT_DIRECTION_LAST: UDateDirection = 1i32; +pub const UDAT_DIRECTION_LAST_2: UDateDirection = 0i32; +pub const UDAT_DIRECTION_NEXT: UDateDirection = 3i32; +pub const UDAT_DIRECTION_NEXT_2: UDateDirection = 4i32; +pub const UDAT_DIRECTION_PLAIN: UDateDirection = 5i32; +pub const UDAT_DIRECTION_THIS: UDateDirection = 2i32; +pub const UDAT_DOW_LOCAL_FIELD: UDateFormatField = 19i32; +pub const UDAT_ERAS: UDateFormatSymbolType = 0i32; +pub const UDAT_ERA_FIELD: UDateFormatField = 0i32; +pub const UDAT_ERA_NAMES: UDateFormatSymbolType = 7i32; +pub const UDAT_EXTENDED_YEAR_FIELD: UDateFormatField = 20i32; +pub const UDAT_FLEXIBLE_DAY_PERIOD_FIELD: UDateFormatField = 36i32; +pub const UDAT_FRACTIONAL_SECOND_FIELD: UDateFormatField = 8i32; +pub const UDAT_FULL: UDateFormatStyle = 0i32; +pub const UDAT_FULL_RELATIVE: UDateFormatStyle = 128i32; +pub const UDAT_GENERIC_TZ: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("vvvv"); +pub const UDAT_HOUR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("j"); +pub const UDAT_HOUR0_FIELD: UDateFormatField = 16i32; +pub const UDAT_HOUR1_FIELD: UDateFormatField = 15i32; +pub const UDAT_HOUR24: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("H"); +pub const UDAT_HOUR24_MINUTE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Hm"); +pub const UDAT_HOUR24_MINUTE_SECOND: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Hms"); +pub const UDAT_HOUR_MINUTE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("jm"); +pub const UDAT_HOUR_MINUTE_SECOND: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("jms"); +pub const UDAT_HOUR_OF_DAY0_FIELD: UDateFormatField = 5i32; +pub const UDAT_HOUR_OF_DAY1_FIELD: UDateFormatField = 4i32; +pub const UDAT_JULIAN_DAY_FIELD: UDateFormatField = 21i32; +pub const UDAT_LOCALIZED_CHARS: UDateFormatSymbolType = 6i32; +pub const UDAT_LOCATION_TZ: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("VVVV"); +pub const UDAT_LONG: UDateFormatStyle = 1i32; +pub const UDAT_LONG_RELATIVE: UDateFormatStyle = 129i32; +pub const UDAT_MEDIUM: UDateFormatStyle = 2i32; +pub const UDAT_MEDIUM_RELATIVE: UDateFormatStyle = 130i32; +pub const UDAT_MILLISECONDS_IN_DAY_FIELD: UDateFormatField = 22i32; +pub const UDAT_MINUTE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("m"); +pub const UDAT_MINUTE_FIELD: UDateFormatField = 6i32; +pub const UDAT_MINUTE_SECOND: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ms"); +pub const UDAT_MONTH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MMMM"); +pub const UDAT_MONTHS: UDateFormatSymbolType = 1i32; +pub const UDAT_MONTH_DAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MMMMd"); +pub const UDAT_MONTH_FIELD: UDateFormatField = 2i32; +pub const UDAT_MONTH_WEEKDAY_DAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MMMMEEEEd"); +pub const UDAT_NARROW_MONTHS: UDateFormatSymbolType = 8i32; +pub const UDAT_NARROW_WEEKDAYS: UDateFormatSymbolType = 9i32; +pub const UDAT_NONE: UDateFormatStyle = -1i32; +pub const UDAT_NUM_MONTH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("M"); +pub const UDAT_NUM_MONTH_DAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Md"); +pub const UDAT_NUM_MONTH_WEEKDAY_DAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MEd"); +pub const UDAT_PARSE_ALLOW_NUMERIC: UDateFormatBooleanAttribute = 1i32; +pub const UDAT_PARSE_ALLOW_WHITESPACE: UDateFormatBooleanAttribute = 0i32; +pub const UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH: UDateFormatBooleanAttribute = 3i32; +pub const UDAT_PARSE_PARTIAL_LITERAL_MATCH: UDateFormatBooleanAttribute = 2i32; +pub const UDAT_PATTERN: UDateFormatStyle = -2i32; +pub const UDAT_QUARTER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("QQQQ"); +pub const UDAT_QUARTERS: UDateFormatSymbolType = 16i32; +pub const UDAT_QUARTER_FIELD: UDateFormatField = 27i32; +pub const UDAT_RELATIVE: UDateFormatStyle = 128i32; +pub const UDAT_RELATIVE_DAYS: UDateRelativeUnit = 3i32; +pub const UDAT_RELATIVE_HOURS: UDateRelativeUnit = 2i32; +pub const UDAT_RELATIVE_MINUTES: UDateRelativeUnit = 1i32; +pub const UDAT_RELATIVE_MONTHS: UDateRelativeUnit = 5i32; +pub const UDAT_RELATIVE_SECONDS: UDateRelativeUnit = 0i32; +pub const UDAT_RELATIVE_UNIT_COUNT: UDateRelativeUnit = 7i32; +pub const UDAT_RELATIVE_WEEKS: UDateRelativeUnit = 4i32; +pub const UDAT_RELATIVE_YEARS: UDateRelativeUnit = 6i32; +pub const UDAT_REL_LITERAL_FIELD: URelativeDateTimeFormatterField = 0i32; +pub const UDAT_REL_NUMERIC_FIELD: URelativeDateTimeFormatterField = 1i32; +pub const UDAT_REL_UNIT_DAY: URelativeDateTimeUnit = 4i32; +pub const UDAT_REL_UNIT_FRIDAY: URelativeDateTimeUnit = 13i32; +pub const UDAT_REL_UNIT_HOUR: URelativeDateTimeUnit = 5i32; +pub const UDAT_REL_UNIT_MINUTE: URelativeDateTimeUnit = 6i32; +pub const UDAT_REL_UNIT_MONDAY: URelativeDateTimeUnit = 9i32; +pub const UDAT_REL_UNIT_MONTH: URelativeDateTimeUnit = 2i32; +pub const UDAT_REL_UNIT_QUARTER: URelativeDateTimeUnit = 1i32; +pub const UDAT_REL_UNIT_SATURDAY: URelativeDateTimeUnit = 14i32; +pub const UDAT_REL_UNIT_SECOND: URelativeDateTimeUnit = 7i32; +pub const UDAT_REL_UNIT_SUNDAY: URelativeDateTimeUnit = 8i32; +pub const UDAT_REL_UNIT_THURSDAY: URelativeDateTimeUnit = 12i32; +pub const UDAT_REL_UNIT_TUESDAY: URelativeDateTimeUnit = 10i32; +pub const UDAT_REL_UNIT_WEDNESDAY: URelativeDateTimeUnit = 11i32; +pub const UDAT_REL_UNIT_WEEK: URelativeDateTimeUnit = 3i32; +pub const UDAT_REL_UNIT_YEAR: URelativeDateTimeUnit = 0i32; +pub const UDAT_SECOND: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("s"); +pub const UDAT_SECOND_FIELD: UDateFormatField = 7i32; +pub const UDAT_SHORT: UDateFormatStyle = 3i32; +pub const UDAT_SHORTER_WEEKDAYS: UDateFormatSymbolType = 20i32; +pub const UDAT_SHORT_MONTHS: UDateFormatSymbolType = 2i32; +pub const UDAT_SHORT_QUARTERS: UDateFormatSymbolType = 17i32; +pub const UDAT_SHORT_RELATIVE: UDateFormatStyle = 131i32; +pub const UDAT_SHORT_WEEKDAYS: UDateFormatSymbolType = 4i32; +pub const UDAT_SPECIFIC_TZ: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("zzzz"); +pub const UDAT_STANDALONE_DAY_FIELD: UDateFormatField = 25i32; +pub const UDAT_STANDALONE_MONTHS: UDateFormatSymbolType = 10i32; +pub const UDAT_STANDALONE_MONTH_FIELD: UDateFormatField = 26i32; +pub const UDAT_STANDALONE_NARROW_MONTHS: UDateFormatSymbolType = 12i32; +pub const UDAT_STANDALONE_NARROW_WEEKDAYS: UDateFormatSymbolType = 15i32; +pub const UDAT_STANDALONE_QUARTERS: UDateFormatSymbolType = 18i32; +pub const UDAT_STANDALONE_QUARTER_FIELD: UDateFormatField = 28i32; +pub const UDAT_STANDALONE_SHORTER_WEEKDAYS: UDateFormatSymbolType = 21i32; +pub const UDAT_STANDALONE_SHORT_MONTHS: UDateFormatSymbolType = 11i32; +pub const UDAT_STANDALONE_SHORT_QUARTERS: UDateFormatSymbolType = 19i32; +pub const UDAT_STANDALONE_SHORT_WEEKDAYS: UDateFormatSymbolType = 14i32; +pub const UDAT_STANDALONE_WEEKDAYS: UDateFormatSymbolType = 13i32; +pub const UDAT_STYLE_LONG: UDateRelativeDateTimeFormatterStyle = 0i32; +pub const UDAT_STYLE_NARROW: UDateRelativeDateTimeFormatterStyle = 2i32; +pub const UDAT_STYLE_SHORT: UDateRelativeDateTimeFormatterStyle = 1i32; +pub const UDAT_TIMEZONE_FIELD: UDateFormatField = 17i32; +pub const UDAT_TIMEZONE_GENERIC_FIELD: UDateFormatField = 24i32; +pub const UDAT_TIMEZONE_ISO_FIELD: UDateFormatField = 32i32; +pub const UDAT_TIMEZONE_ISO_LOCAL_FIELD: UDateFormatField = 33i32; +pub const UDAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD: UDateFormatField = 31i32; +pub const UDAT_TIMEZONE_RFC_FIELD: UDateFormatField = 23i32; +pub const UDAT_TIMEZONE_SPECIAL_FIELD: UDateFormatField = 29i32; +pub const UDAT_WEEKDAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("EEEE"); +pub const UDAT_WEEKDAYS: UDateFormatSymbolType = 3i32; +pub const UDAT_WEEK_OF_MONTH_FIELD: UDateFormatField = 13i32; +pub const UDAT_WEEK_OF_YEAR_FIELD: UDateFormatField = 12i32; +pub const UDAT_YEAR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("y"); +pub const UDAT_YEAR_ABBR_MONTH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("yMMM"); +pub const UDAT_YEAR_ABBR_MONTH_DAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("yMMMd"); +pub const UDAT_YEAR_ABBR_MONTH_WEEKDAY_DAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("yMMMEd"); +pub const UDAT_YEAR_ABBR_QUARTER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("yQQQ"); +pub const UDAT_YEAR_FIELD: UDateFormatField = 1i32; +pub const UDAT_YEAR_MONTH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("yMMMM"); +pub const UDAT_YEAR_MONTH_DAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("yMMMMd"); +pub const UDAT_YEAR_MONTH_WEEKDAY_DAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("yMMMMEEEEd"); +pub const UDAT_YEAR_NAME_FIELD: UDateFormatField = 30i32; +pub const UDAT_YEAR_NUM_MONTH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("yM"); +pub const UDAT_YEAR_NUM_MONTH_DAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("yMd"); +pub const UDAT_YEAR_NUM_MONTH_WEEKDAY_DAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("yMEd"); +pub const UDAT_YEAR_QUARTER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("yQQQQ"); +pub const UDAT_YEAR_WOY_FIELD: UDateFormatField = 18i32; +pub const UDAT_ZODIAC_NAMES_ABBREVIATED: UDateFormatSymbolType = 26i32; +pub const UDAT_ZODIAC_NAMES_NARROW: UDateFormatSymbolType = 27i32; +pub const UDAT_ZODIAC_NAMES_WIDE: UDateFormatSymbolType = 25i32; +pub const UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE: UDisplayContext = 258i32; +pub const UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE: UDisplayContext = 257i32; +pub const UDISPCTX_CAPITALIZATION_FOR_STANDALONE: UDisplayContext = 260i32; +pub const UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU: UDisplayContext = 259i32; +pub const UDISPCTX_CAPITALIZATION_NONE: UDisplayContext = 256i32; +pub const UDISPCTX_DIALECT_NAMES: UDisplayContext = 1i32; +pub const UDISPCTX_LENGTH_FULL: UDisplayContext = 512i32; +pub const UDISPCTX_LENGTH_SHORT: UDisplayContext = 513i32; +pub const UDISPCTX_NO_SUBSTITUTE: UDisplayContext = 769i32; +pub const UDISPCTX_STANDARD_NAMES: UDisplayContext = 0i32; +pub const UDISPCTX_SUBSTITUTE: UDisplayContext = 768i32; +pub const UDISPCTX_TYPE_CAPITALIZATION: UDisplayContextType = 1i32; +pub const UDISPCTX_TYPE_DIALECT_HANDLING: UDisplayContextType = 0i32; +pub const UDISPCTX_TYPE_DISPLAY_LENGTH: UDisplayContextType = 2i32; +pub const UDISPCTX_TYPE_SUBSTITUTE_HANDLING: UDisplayContextType = 3i32; +pub const UDTS_DB2_TIME: UDateTimeScale = 8i32; +pub const UDTS_DOTNET_DATE_TIME: UDateTimeScale = 4i32; +pub const UDTS_EXCEL_TIME: UDateTimeScale = 7i32; +pub const UDTS_ICU4C_TIME: UDateTimeScale = 2i32; +pub const UDTS_JAVA_TIME: UDateTimeScale = 0i32; +pub const UDTS_MAC_OLD_TIME: UDateTimeScale = 5i32; +pub const UDTS_MAC_TIME: UDateTimeScale = 6i32; +pub const UDTS_UNIX_MICROSECONDS_TIME: UDateTimeScale = 9i32; +pub const UDTS_UNIX_TIME: UDateTimeScale = 1i32; +pub const UDTS_WINDOWS_FILE_TIME: UDateTimeScale = 3i32; +pub const UFIELD_CATEGORY_DATE: UFieldCategory = 1i32; +pub const UFIELD_CATEGORY_DATE_INTERVAL: UFieldCategory = 5i32; +pub const UFIELD_CATEGORY_DATE_INTERVAL_SPAN: UFieldCategory = 4101i32; +pub const UFIELD_CATEGORY_LIST: UFieldCategory = 3i32; +pub const UFIELD_CATEGORY_LIST_SPAN: UFieldCategory = 4099i32; +pub const UFIELD_CATEGORY_NUMBER: UFieldCategory = 2i32; +pub const UFIELD_CATEGORY_RELATIVE_DATETIME: UFieldCategory = 4i32; +pub const UFIELD_CATEGORY_UNDEFINED: UFieldCategory = 0i32; +pub const UFMT_ARRAY: UFormattableType = 4i32; +pub const UFMT_DATE: UFormattableType = 0i32; +pub const UFMT_DOUBLE: UFormattableType = 1i32; +pub const UFMT_INT64: UFormattableType = 5i32; +pub const UFMT_LONG: UFormattableType = 2i32; +pub const UFMT_OBJECT: UFormattableType = 6i32; +pub const UFMT_STRING: UFormattableType = 3i32; +pub const UGENDER_FEMALE: UGender = 1i32; +pub const UGENDER_MALE: UGender = 0i32; +pub const UGENDER_OTHER: UGender = 2i32; +pub const UIDNA_CHECK_BIDI: i32 = 4i32; +pub const UIDNA_CHECK_CONTEXTJ: i32 = 8i32; +pub const UIDNA_CHECK_CONTEXTO: i32 = 64i32; +pub const UIDNA_DEFAULT: i32 = 0i32; +pub const UIDNA_ERROR_BIDI: i32 = 2048i32; +pub const UIDNA_ERROR_CONTEXTJ: i32 = 4096i32; +pub const UIDNA_ERROR_CONTEXTO_DIGITS: i32 = 16384i32; +pub const UIDNA_ERROR_CONTEXTO_PUNCTUATION: i32 = 8192i32; +pub const UIDNA_ERROR_DISALLOWED: i32 = 128i32; +pub const UIDNA_ERROR_DOMAIN_NAME_TOO_LONG: i32 = 4i32; +pub const UIDNA_ERROR_EMPTY_LABEL: i32 = 1i32; +pub const UIDNA_ERROR_HYPHEN_3_4: i32 = 32i32; +pub const UIDNA_ERROR_INVALID_ACE_LABEL: i32 = 1024i32; +pub const UIDNA_ERROR_LABEL_HAS_DOT: i32 = 512i32; +pub const UIDNA_ERROR_LABEL_TOO_LONG: i32 = 2i32; +pub const UIDNA_ERROR_LEADING_COMBINING_MARK: i32 = 64i32; +pub const UIDNA_ERROR_LEADING_HYPHEN: i32 = 8i32; +pub const UIDNA_ERROR_PUNYCODE: i32 = 256i32; +pub const UIDNA_ERROR_TRAILING_HYPHEN: i32 = 16i32; +pub const UIDNA_NONTRANSITIONAL_TO_ASCII: i32 = 16i32; +pub const UIDNA_NONTRANSITIONAL_TO_UNICODE: i32 = 32i32; +pub const UIDNA_USE_STD3_RULES: i32 = 2i32; +pub const UITER_CURRENT: UCharIteratorOrigin = 1i32; +pub const UITER_LENGTH: UCharIteratorOrigin = 4i32; +pub const UITER_LIMIT: UCharIteratorOrigin = 2i32; +pub const UITER_START: UCharIteratorOrigin = 0i32; +pub const UITER_UNKNOWN_INDEX: i32 = -2i32; +pub const UITER_ZERO: UCharIteratorOrigin = 3i32; +pub const ULDN_DIALECT_NAMES: UDialectHandling = 1i32; +pub const ULDN_STANDARD_NAMES: UDialectHandling = 0i32; +pub const ULISTFMT_ELEMENT_FIELD: UListFormatterField = 1i32; +pub const ULISTFMT_LITERAL_FIELD: UListFormatterField = 0i32; +pub const ULISTFMT_TYPE_AND: UListFormatterType = 0i32; +pub const ULISTFMT_TYPE_OR: UListFormatterType = 1i32; +pub const ULISTFMT_TYPE_UNITS: UListFormatterType = 2i32; +pub const ULISTFMT_WIDTH_NARROW: UListFormatterWidth = 2i32; +pub const ULISTFMT_WIDTH_SHORT: UListFormatterWidth = 1i32; +pub const ULISTFMT_WIDTH_WIDE: UListFormatterWidth = 0i32; +pub const ULOCDATA_ALT_QUOTATION_END: ULocaleDataDelimiterType = 3i32; +pub const ULOCDATA_ALT_QUOTATION_START: ULocaleDataDelimiterType = 2i32; +pub const ULOCDATA_ES_AUXILIARY: ULocaleDataExemplarSetType = 1i32; +pub const ULOCDATA_ES_INDEX: ULocaleDataExemplarSetType = 2i32; +pub const ULOCDATA_ES_PUNCTUATION: ULocaleDataExemplarSetType = 3i32; +pub const ULOCDATA_ES_STANDARD: ULocaleDataExemplarSetType = 0i32; +pub const ULOCDATA_QUOTATION_END: ULocaleDataDelimiterType = 1i32; +pub const ULOCDATA_QUOTATION_START: ULocaleDataDelimiterType = 0i32; +pub const ULOC_ACCEPT_FAILED: UAcceptResult = 0i32; +pub const ULOC_ACCEPT_FALLBACK: UAcceptResult = 2i32; +pub const ULOC_ACCEPT_VALID: UAcceptResult = 1i32; +pub const ULOC_ACTUAL_LOCALE: ULocDataLocaleType = 0i32; +pub const ULOC_AVAILABLE_DEFAULT: ULocAvailableType = 0i32; +pub const ULOC_AVAILABLE_ONLY_LEGACY_ALIASES: ULocAvailableType = 1i32; +pub const ULOC_AVAILABLE_WITH_LEGACY_ALIASES: ULocAvailableType = 2i32; +pub const ULOC_CANADA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("en_CA"); +pub const ULOC_CANADA_FRENCH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("fr_CA"); +pub const ULOC_CHINA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("zh_CN"); +pub const ULOC_CHINESE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("zh"); +pub const ULOC_COUNTRY_CAPACITY: u32 = 4u32; +pub const ULOC_ENGLISH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("en"); +pub const ULOC_FRANCE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("fr_FR"); +pub const ULOC_FRENCH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("fr"); +pub const ULOC_FULLNAME_CAPACITY: u32 = 157u32; +pub const ULOC_GERMAN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("de"); +pub const ULOC_GERMANY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("de_DE"); +pub const ULOC_ITALIAN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("it"); +pub const ULOC_ITALY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("it_IT"); +pub const ULOC_JAPAN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ja_JP"); +pub const ULOC_JAPANESE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ja"); +pub const ULOC_KEYWORDS_CAPACITY: u32 = 96u32; +pub const ULOC_KEYWORD_AND_VALUES_CAPACITY: u32 = 100u32; +pub const ULOC_KEYWORD_ASSIGN_UNICODE: u32 = 61u32; +pub const ULOC_KEYWORD_ITEM_SEPARATOR_UNICODE: u32 = 59u32; +pub const ULOC_KEYWORD_SEPARATOR_UNICODE: u32 = 64u32; +pub const ULOC_KOREA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ko_KR"); +pub const ULOC_KOREAN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ko"); +pub const ULOC_LANG_CAPACITY: u32 = 12u32; +pub const ULOC_LAYOUT_BTT: ULayoutType = 3i32; +pub const ULOC_LAYOUT_LTR: ULayoutType = 0i32; +pub const ULOC_LAYOUT_RTL: ULayoutType = 1i32; +pub const ULOC_LAYOUT_TTB: ULayoutType = 2i32; +pub const ULOC_LAYOUT_UNKNOWN: ULayoutType = 4i32; +pub const ULOC_PRC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("zh_CN"); +pub const ULOC_SCRIPT_CAPACITY: u32 = 6u32; +pub const ULOC_SIMPLIFIED_CHINESE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("zh_CN"); +pub const ULOC_TAIWAN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("zh_TW"); +pub const ULOC_TRADITIONAL_CHINESE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("zh_TW"); +pub const ULOC_UK: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("en_GB"); +pub const ULOC_US: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("en_US"); +pub const ULOC_VALID_LOCALE: ULocDataLocaleType = 1i32; +pub const UMEASFMT_WIDTH_COUNT: UMeasureFormatWidth = 4i32; +pub const UMEASFMT_WIDTH_NARROW: UMeasureFormatWidth = 2i32; +pub const UMEASFMT_WIDTH_NUMERIC: UMeasureFormatWidth = 3i32; +pub const UMEASFMT_WIDTH_SHORT: UMeasureFormatWidth = 1i32; +pub const UMEASFMT_WIDTH_WIDE: UMeasureFormatWidth = 0i32; +pub const UMSGPAT_APOS_DOUBLE_OPTIONAL: UMessagePatternApostropheMode = 0i32; +pub const UMSGPAT_APOS_DOUBLE_REQUIRED: UMessagePatternApostropheMode = 1i32; +pub const UMSGPAT_ARG_NAME_NOT_NUMBER: i32 = -1i32; +pub const UMSGPAT_ARG_NAME_NOT_VALID: i32 = -2i32; +pub const UMSGPAT_ARG_TYPE_CHOICE: UMessagePatternArgType = 2i32; +pub const UMSGPAT_ARG_TYPE_NONE: UMessagePatternArgType = 0i32; +pub const UMSGPAT_ARG_TYPE_PLURAL: UMessagePatternArgType = 3i32; +pub const UMSGPAT_ARG_TYPE_SELECT: UMessagePatternArgType = 4i32; +pub const UMSGPAT_ARG_TYPE_SELECTORDINAL: UMessagePatternArgType = 5i32; +pub const UMSGPAT_ARG_TYPE_SIMPLE: UMessagePatternArgType = 1i32; +pub const UMSGPAT_PART_TYPE_ARG_DOUBLE: UMessagePatternPartType = 13i32; +pub const UMSGPAT_PART_TYPE_ARG_INT: UMessagePatternPartType = 12i32; +pub const UMSGPAT_PART_TYPE_ARG_LIMIT: UMessagePatternPartType = 6i32; +pub const UMSGPAT_PART_TYPE_ARG_NAME: UMessagePatternPartType = 8i32; +pub const UMSGPAT_PART_TYPE_ARG_NUMBER: UMessagePatternPartType = 7i32; +pub const UMSGPAT_PART_TYPE_ARG_SELECTOR: UMessagePatternPartType = 11i32; +pub const UMSGPAT_PART_TYPE_ARG_START: UMessagePatternPartType = 5i32; +pub const UMSGPAT_PART_TYPE_ARG_STYLE: UMessagePatternPartType = 10i32; +pub const UMSGPAT_PART_TYPE_ARG_TYPE: UMessagePatternPartType = 9i32; +pub const UMSGPAT_PART_TYPE_INSERT_CHAR: UMessagePatternPartType = 3i32; +pub const UMSGPAT_PART_TYPE_MSG_LIMIT: UMessagePatternPartType = 1i32; +pub const UMSGPAT_PART_TYPE_MSG_START: UMessagePatternPartType = 0i32; +pub const UMSGPAT_PART_TYPE_REPLACE_NUMBER: UMessagePatternPartType = 4i32; +pub const UMSGPAT_PART_TYPE_SKIP_SYNTAX: UMessagePatternPartType = 2i32; +pub const UMS_SI: UMeasurementSystem = 0i32; +pub const UMS_UK: UMeasurementSystem = 2i32; +pub const UMS_US: UMeasurementSystem = 1i32; +pub const UNISCRIBE_OPENTYPE: u32 = 256u32; +pub const UNORM2_COMPOSE: UNormalization2Mode = 0i32; +pub const UNORM2_COMPOSE_CONTIGUOUS: UNormalization2Mode = 3i32; +pub const UNORM2_DECOMPOSE: UNormalization2Mode = 1i32; +pub const UNORM2_FCD: UNormalization2Mode = 2i32; +pub const UNORM_DEFAULT: UNormalizationMode = 4i32; +pub const UNORM_FCD: UNormalizationMode = 6i32; +pub const UNORM_INPUT_IS_FCD: u32 = 131072u32; +pub const UNORM_MAYBE: UNormalizationCheckResult = 2i32; +pub const UNORM_MODE_COUNT: UNormalizationMode = 7i32; +pub const UNORM_NFC: UNormalizationMode = 4i32; +pub const UNORM_NFD: UNormalizationMode = 2i32; +pub const UNORM_NFKC: UNormalizationMode = 5i32; +pub const UNORM_NFKD: UNormalizationMode = 3i32; +pub const UNORM_NO: UNormalizationCheckResult = 0i32; +pub const UNORM_NONE: UNormalizationMode = 1i32; +pub const UNORM_YES: UNormalizationCheckResult = 1i32; +pub const UNUM_CASH_CURRENCY: UNumberFormatStyle = 13i32; +pub const UNUM_COMPACT_FIELD: UNumberFormatFields = 12i32; +pub const UNUM_CURRENCY: UNumberFormatStyle = 2i32; +pub const UNUM_CURRENCY_ACCOUNTING: UNumberFormatStyle = 12i32; +pub const UNUM_CURRENCY_CODE: UNumberFormatTextAttribute = 5i32; +pub const UNUM_CURRENCY_FIELD: UNumberFormatFields = 7i32; +pub const UNUM_CURRENCY_INSERT: UCurrencySpacing = 2i32; +pub const UNUM_CURRENCY_ISO: UNumberFormatStyle = 10i32; +pub const UNUM_CURRENCY_MATCH: UCurrencySpacing = 0i32; +pub const UNUM_CURRENCY_PLURAL: UNumberFormatStyle = 11i32; +pub const UNUM_CURRENCY_SPACING_COUNT: UCurrencySpacing = 3i32; +pub const UNUM_CURRENCY_STANDARD: UNumberFormatStyle = 16i32; +pub const UNUM_CURRENCY_SURROUNDING_MATCH: UCurrencySpacing = 1i32; +pub const UNUM_CURRENCY_SYMBOL: UNumberFormatSymbol = 8i32; +pub const UNUM_CURRENCY_USAGE: UNumberFormatAttribute = 23i32; +pub const UNUM_DECIMAL: UNumberFormatStyle = 1i32; +pub const UNUM_DECIMAL_ALWAYS_SHOWN: UNumberFormatAttribute = 2i32; +pub const UNUM_DECIMAL_COMPACT_LONG: UNumberFormatStyle = 15i32; +pub const UNUM_DECIMAL_COMPACT_SHORT: UNumberFormatStyle = 14i32; +pub const UNUM_DECIMAL_SEPARATOR_ALWAYS: UNumberDecimalSeparatorDisplay = 1i32; +pub const UNUM_DECIMAL_SEPARATOR_AUTO: UNumberDecimalSeparatorDisplay = 0i32; +pub const UNUM_DECIMAL_SEPARATOR_COUNT: UNumberDecimalSeparatorDisplay = 2i32; +pub const UNUM_DECIMAL_SEPARATOR_FIELD: UNumberFormatFields = 2i32; +pub const UNUM_DECIMAL_SEPARATOR_SYMBOL: UNumberFormatSymbol = 0i32; +pub const UNUM_DEFAULT: UNumberFormatStyle = 1i32; +pub const UNUM_DEFAULT_RULESET: UNumberFormatTextAttribute = 6i32; +pub const UNUM_DIGIT_SYMBOL: UNumberFormatSymbol = 5i32; +pub const UNUM_DURATION: UNumberFormatStyle = 7i32; +pub const UNUM_EIGHT_DIGIT_SYMBOL: UNumberFormatSymbol = 25i32; +pub const UNUM_EXPONENTIAL_SYMBOL: UNumberFormatSymbol = 11i32; +pub const UNUM_EXPONENT_FIELD: UNumberFormatFields = 5i32; +pub const UNUM_EXPONENT_MULTIPLICATION_SYMBOL: UNumberFormatSymbol = 27i32; +pub const UNUM_EXPONENT_SIGN_FIELD: UNumberFormatFields = 4i32; +pub const UNUM_EXPONENT_SYMBOL_FIELD: UNumberFormatFields = 3i32; +pub const UNUM_FIVE_DIGIT_SYMBOL: UNumberFormatSymbol = 22i32; +pub const UNUM_FORMAT_ATTRIBUTE_VALUE_HIDDEN: UNumberFormatAttributeValue = 0i32; +pub const UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS: UNumberFormatAttribute = 4096i32; +pub const UNUM_FORMAT_WIDTH: UNumberFormatAttribute = 13i32; +pub const UNUM_FOUR_DIGIT_SYMBOL: UNumberFormatSymbol = 21i32; +pub const UNUM_FRACTION_DIGITS: UNumberFormatAttribute = 8i32; +pub const UNUM_FRACTION_FIELD: UNumberFormatFields = 1i32; +pub const UNUM_GROUPING_AUTO: UNumberGroupingStrategy = 2i32; +pub const UNUM_GROUPING_MIN2: UNumberGroupingStrategy = 1i32; +pub const UNUM_GROUPING_OFF: UNumberGroupingStrategy = 0i32; +pub const UNUM_GROUPING_ON_ALIGNED: UNumberGroupingStrategy = 3i32; +pub const UNUM_GROUPING_SEPARATOR_FIELD: UNumberFormatFields = 6i32; +pub const UNUM_GROUPING_SEPARATOR_SYMBOL: UNumberFormatSymbol = 1i32; +pub const UNUM_GROUPING_SIZE: UNumberFormatAttribute = 10i32; +pub const UNUM_GROUPING_THOUSANDS: UNumberGroupingStrategy = 4i32; +pub const UNUM_GROUPING_USED: UNumberFormatAttribute = 1i32; +pub const UNUM_IDENTITY_FALLBACK_APPROXIMATELY: UNumberRangeIdentityFallback = 2i32; +pub const UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE: UNumberRangeIdentityFallback = 1i32; +pub const UNUM_IDENTITY_FALLBACK_RANGE: UNumberRangeIdentityFallback = 3i32; +pub const UNUM_IDENTITY_FALLBACK_SINGLE_VALUE: UNumberRangeIdentityFallback = 0i32; +pub const UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING: UNumberRangeIdentityResult = 1i32; +pub const UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING: UNumberRangeIdentityResult = 0i32; +pub const UNUM_IDENTITY_RESULT_NOT_EQUAL: UNumberRangeIdentityResult = 2i32; +pub const UNUM_IGNORE: UNumberFormatStyle = 0i32; +pub const UNUM_INFINITY_SYMBOL: UNumberFormatSymbol = 14i32; +pub const UNUM_INTEGER_DIGITS: UNumberFormatAttribute = 5i32; +pub const UNUM_INTEGER_FIELD: UNumberFormatFields = 0i32; +pub const UNUM_INTL_CURRENCY_SYMBOL: UNumberFormatSymbol = 9i32; +pub const UNUM_LENIENT_PARSE: UNumberFormatAttribute = 19i32; +pub const UNUM_LONG: UNumberCompactStyle = 1i32; +pub const UNUM_MAX_FRACTION_DIGITS: UNumberFormatAttribute = 6i32; +pub const UNUM_MAX_INTEGER_DIGITS: UNumberFormatAttribute = 3i32; +pub const UNUM_MAX_SIGNIFICANT_DIGITS: UNumberFormatAttribute = 18i32; +pub const UNUM_MEASURE_UNIT_FIELD: UNumberFormatFields = 11i32; +pub const UNUM_MINIMUM_GROUPING_DIGITS: UNumberFormatAttribute = 22i32; +pub const UNUM_MINUS_SIGN_SYMBOL: UNumberFormatSymbol = 6i32; +pub const UNUM_MIN_FRACTION_DIGITS: UNumberFormatAttribute = 7i32; +pub const UNUM_MIN_INTEGER_DIGITS: UNumberFormatAttribute = 4i32; +pub const UNUM_MIN_SIGNIFICANT_DIGITS: UNumberFormatAttribute = 17i32; +pub const UNUM_MONETARY_GROUPING_SEPARATOR_SYMBOL: UNumberFormatSymbol = 17i32; +pub const UNUM_MONETARY_SEPARATOR_SYMBOL: UNumberFormatSymbol = 10i32; +pub const UNUM_MULTIPLIER: UNumberFormatAttribute = 9i32; +pub const UNUM_NAN_SYMBOL: UNumberFormatSymbol = 15i32; +pub const UNUM_NEGATIVE_PREFIX: UNumberFormatTextAttribute = 2i32; +pub const UNUM_NEGATIVE_SUFFIX: UNumberFormatTextAttribute = 3i32; +pub const UNUM_NINE_DIGIT_SYMBOL: UNumberFormatSymbol = 26i32; +pub const UNUM_NUMBERING_SYSTEM: UNumberFormatStyle = 8i32; +pub const UNUM_ONE_DIGIT_SYMBOL: UNumberFormatSymbol = 18i32; +pub const UNUM_ORDINAL: UNumberFormatStyle = 6i32; +pub const UNUM_PADDING_CHARACTER: UNumberFormatTextAttribute = 4i32; +pub const UNUM_PADDING_POSITION: UNumberFormatAttribute = 14i32; +pub const UNUM_PAD_AFTER_PREFIX: UNumberFormatPadPosition = 1i32; +pub const UNUM_PAD_AFTER_SUFFIX: UNumberFormatPadPosition = 3i32; +pub const UNUM_PAD_BEFORE_PREFIX: UNumberFormatPadPosition = 0i32; +pub const UNUM_PAD_BEFORE_SUFFIX: UNumberFormatPadPosition = 2i32; +pub const UNUM_PAD_ESCAPE_SYMBOL: UNumberFormatSymbol = 13i32; +pub const UNUM_PARSE_ALL_INPUT: UNumberFormatAttribute = 20i32; +pub const UNUM_PARSE_CASE_SENSITIVE: UNumberFormatAttribute = 4099i32; +pub const UNUM_PARSE_DECIMAL_MARK_REQUIRED: UNumberFormatAttribute = 4098i32; +pub const UNUM_PARSE_INT_ONLY: UNumberFormatAttribute = 0i32; +pub const UNUM_PARSE_NO_EXPONENT: UNumberFormatAttribute = 4097i32; +pub const UNUM_PATTERN_DECIMAL: UNumberFormatStyle = 0i32; +pub const UNUM_PATTERN_RULEBASED: UNumberFormatStyle = 9i32; +pub const UNUM_PATTERN_SEPARATOR_SYMBOL: UNumberFormatSymbol = 2i32; +pub const UNUM_PERCENT: UNumberFormatStyle = 3i32; +pub const UNUM_PERCENT_FIELD: UNumberFormatFields = 8i32; +pub const UNUM_PERCENT_SYMBOL: UNumberFormatSymbol = 3i32; +pub const UNUM_PERMILL_FIELD: UNumberFormatFields = 9i32; +pub const UNUM_PERMILL_SYMBOL: UNumberFormatSymbol = 12i32; +pub const UNUM_PLUS_SIGN_SYMBOL: UNumberFormatSymbol = 7i32; +pub const UNUM_POSITIVE_PREFIX: UNumberFormatTextAttribute = 0i32; +pub const UNUM_POSITIVE_SUFFIX: UNumberFormatTextAttribute = 1i32; +pub const UNUM_PUBLIC_RULESETS: UNumberFormatTextAttribute = 7i32; +pub const UNUM_RANGE_COLLAPSE_ALL: UNumberRangeCollapse = 3i32; +pub const UNUM_RANGE_COLLAPSE_AUTO: UNumberRangeCollapse = 0i32; +pub const UNUM_RANGE_COLLAPSE_NONE: UNumberRangeCollapse = 1i32; +pub const UNUM_RANGE_COLLAPSE_UNIT: UNumberRangeCollapse = 2i32; +pub const UNUM_ROUNDING_INCREMENT: UNumberFormatAttribute = 12i32; +pub const UNUM_ROUNDING_MODE: UNumberFormatAttribute = 11i32; +pub const UNUM_ROUND_CEILING: UNumberFormatRoundingMode = 0i32; +pub const UNUM_ROUND_DOWN: UNumberFormatRoundingMode = 2i32; +pub const UNUM_ROUND_FLOOR: UNumberFormatRoundingMode = 1i32; +pub const UNUM_ROUND_HALFDOWN: UNumberFormatRoundingMode = 5i32; +pub const UNUM_ROUND_HALFEVEN: UNumberFormatRoundingMode = 4i32; +pub const UNUM_ROUND_HALFUP: UNumberFormatRoundingMode = 6i32; +pub const UNUM_ROUND_UNNECESSARY: UNumberFormatRoundingMode = 7i32; +pub const UNUM_ROUND_UP: UNumberFormatRoundingMode = 3i32; +pub const UNUM_SCALE: UNumberFormatAttribute = 21i32; +pub const UNUM_SCIENTIFIC: UNumberFormatStyle = 4i32; +pub const UNUM_SECONDARY_GROUPING_SIZE: UNumberFormatAttribute = 15i32; +pub const UNUM_SEVEN_DIGIT_SYMBOL: UNumberFormatSymbol = 24i32; +pub const UNUM_SHORT: UNumberCompactStyle = 0i32; +pub const UNUM_SIGNIFICANT_DIGITS_USED: UNumberFormatAttribute = 16i32; +pub const UNUM_SIGNIFICANT_DIGIT_SYMBOL: UNumberFormatSymbol = 16i32; +pub const UNUM_SIGN_ACCOUNTING: UNumberSignDisplay = 3i32; +pub const UNUM_SIGN_ACCOUNTING_ALWAYS: UNumberSignDisplay = 4i32; +pub const UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO: UNumberSignDisplay = 6i32; +pub const UNUM_SIGN_ALWAYS: UNumberSignDisplay = 1i32; +pub const UNUM_SIGN_ALWAYS_SHOWN: UNumberFormatAttribute = 4100i32; +pub const UNUM_SIGN_AUTO: UNumberSignDisplay = 0i32; +pub const UNUM_SIGN_COUNT: UNumberSignDisplay = 7i32; +pub const UNUM_SIGN_EXCEPT_ZERO: UNumberSignDisplay = 5i32; +pub const UNUM_SIGN_FIELD: UNumberFormatFields = 10i32; +pub const UNUM_SIGN_NEVER: UNumberSignDisplay = 2i32; +pub const UNUM_SIX_DIGIT_SYMBOL: UNumberFormatSymbol = 23i32; +pub const UNUM_SPELLOUT: UNumberFormatStyle = 5i32; +pub const UNUM_THREE_DIGIT_SYMBOL: UNumberFormatSymbol = 20i32; +pub const UNUM_TWO_DIGIT_SYMBOL: UNumberFormatSymbol = 19i32; +pub const UNUM_UNIT_WIDTH_COUNT: UNumberUnitWidth = 5i32; +pub const UNUM_UNIT_WIDTH_FULL_NAME: UNumberUnitWidth = 2i32; +pub const UNUM_UNIT_WIDTH_HIDDEN: UNumberUnitWidth = 4i32; +pub const UNUM_UNIT_WIDTH_ISO_CODE: UNumberUnitWidth = 3i32; +pub const UNUM_UNIT_WIDTH_NARROW: UNumberUnitWidth = 0i32; +pub const UNUM_UNIT_WIDTH_SHORT: UNumberUnitWidth = 1i32; +pub const UNUM_ZERO_DIGIT_SYMBOL: UNumberFormatSymbol = 4i32; +pub const UPLURAL_TYPE_CARDINAL: UPluralType = 0i32; +pub const UPLURAL_TYPE_ORDINAL: UPluralType = 1i32; +pub const UREGEX_CASE_INSENSITIVE: URegexpFlag = 2i32; +pub const UREGEX_COMMENTS: URegexpFlag = 4i32; +pub const UREGEX_DOTALL: URegexpFlag = 32i32; +pub const UREGEX_ERROR_ON_UNKNOWN_ESCAPES: URegexpFlag = 512i32; +pub const UREGEX_LITERAL: URegexpFlag = 16i32; +pub const UREGEX_MULTILINE: URegexpFlag = 8i32; +pub const UREGEX_UNIX_LINES: URegexpFlag = 1i32; +pub const UREGEX_UWORD: URegexpFlag = 256i32; +pub const URES_ALIAS: UResType = 3i32; +pub const URES_ARRAY: UResType = 8i32; +pub const URES_BINARY: UResType = 1i32; +pub const URES_INT: UResType = 7i32; +pub const URES_INT_VECTOR: UResType = 14i32; +pub const URES_NONE: UResType = -1i32; +pub const URES_STRING: UResType = 0i32; +pub const URES_TABLE: UResType = 2i32; +pub const URGN_CONTINENT: URegionType = 3i32; +pub const URGN_DEPRECATED: URegionType = 6i32; +pub const URGN_GROUPING: URegionType = 5i32; +pub const URGN_SUBCONTINENT: URegionType = 4i32; +pub const URGN_TERRITORY: URegionType = 1i32; +pub const URGN_UNKNOWN: URegionType = 0i32; +pub const URGN_WORLD: URegionType = 2i32; +pub const USCRIPT_ADLAM: UScriptCode = 167i32; +pub const USCRIPT_AFAKA: UScriptCode = 147i32; +pub const USCRIPT_AHOM: UScriptCode = 161i32; +pub const USCRIPT_ANATOLIAN_HIEROGLYPHS: UScriptCode = 156i32; +pub const USCRIPT_ARABIC: UScriptCode = 2i32; +pub const USCRIPT_ARMENIAN: UScriptCode = 3i32; +pub const USCRIPT_AVESTAN: UScriptCode = 117i32; +pub const USCRIPT_BALINESE: UScriptCode = 62i32; +pub const USCRIPT_BAMUM: UScriptCode = 130i32; +pub const USCRIPT_BASSA_VAH: UScriptCode = 134i32; +pub const USCRIPT_BATAK: UScriptCode = 63i32; +pub const USCRIPT_BENGALI: UScriptCode = 4i32; +pub const USCRIPT_BHAIKSUKI: UScriptCode = 168i32; +pub const USCRIPT_BLISSYMBOLS: UScriptCode = 64i32; +pub const USCRIPT_BOOK_PAHLAVI: UScriptCode = 124i32; +pub const USCRIPT_BOPOMOFO: UScriptCode = 5i32; +pub const USCRIPT_BRAHMI: UScriptCode = 65i32; +pub const USCRIPT_BRAILLE: UScriptCode = 46i32; +pub const USCRIPT_BUGINESE: UScriptCode = 55i32; +pub const USCRIPT_BUHID: UScriptCode = 44i32; +pub const USCRIPT_CANADIAN_ABORIGINAL: UScriptCode = 40i32; +pub const USCRIPT_CARIAN: UScriptCode = 104i32; +pub const USCRIPT_CAUCASIAN_ALBANIAN: UScriptCode = 159i32; +pub const USCRIPT_CHAKMA: UScriptCode = 118i32; +pub const USCRIPT_CHAM: UScriptCode = 66i32; +pub const USCRIPT_CHEROKEE: UScriptCode = 6i32; +pub const USCRIPT_CHORASMIAN: UScriptCode = 189i32; +pub const USCRIPT_CIRTH: UScriptCode = 67i32; +pub const USCRIPT_COMMON: UScriptCode = 0i32; +pub const USCRIPT_COPTIC: UScriptCode = 7i32; +pub const USCRIPT_CUNEIFORM: UScriptCode = 101i32; +pub const USCRIPT_CYPRIOT: UScriptCode = 47i32; +pub const USCRIPT_CYRILLIC: UScriptCode = 8i32; +pub const USCRIPT_DEMOTIC_EGYPTIAN: UScriptCode = 69i32; +pub const USCRIPT_DESERET: UScriptCode = 9i32; +pub const USCRIPT_DEVANAGARI: UScriptCode = 10i32; +pub const USCRIPT_DIVES_AKURU: UScriptCode = 190i32; +pub const USCRIPT_DOGRA: UScriptCode = 178i32; +pub const USCRIPT_DUPLOYAN: UScriptCode = 135i32; +pub const USCRIPT_EASTERN_SYRIAC: UScriptCode = 97i32; +pub const USCRIPT_EGYPTIAN_HIEROGLYPHS: UScriptCode = 71i32; +pub const USCRIPT_ELBASAN: UScriptCode = 136i32; +pub const USCRIPT_ELYMAIC: UScriptCode = 185i32; +pub const USCRIPT_ESTRANGELO_SYRIAC: UScriptCode = 95i32; +pub const USCRIPT_ETHIOPIC: UScriptCode = 11i32; +pub const USCRIPT_GEORGIAN: UScriptCode = 12i32; +pub const USCRIPT_GLAGOLITIC: UScriptCode = 56i32; +pub const USCRIPT_GOTHIC: UScriptCode = 13i32; +pub const USCRIPT_GRANTHA: UScriptCode = 137i32; +pub const USCRIPT_GREEK: UScriptCode = 14i32; +pub const USCRIPT_GUJARATI: UScriptCode = 15i32; +pub const USCRIPT_GUNJALA_GONDI: UScriptCode = 179i32; +pub const USCRIPT_GURMUKHI: UScriptCode = 16i32; +pub const USCRIPT_HAN: UScriptCode = 17i32; +pub const USCRIPT_HANGUL: UScriptCode = 18i32; +pub const USCRIPT_HANIFI_ROHINGYA: UScriptCode = 182i32; +pub const USCRIPT_HANUNOO: UScriptCode = 43i32; +pub const USCRIPT_HAN_WITH_BOPOMOFO: UScriptCode = 172i32; +pub const USCRIPT_HARAPPAN_INDUS: UScriptCode = 77i32; +pub const USCRIPT_HATRAN: UScriptCode = 162i32; +pub const USCRIPT_HEBREW: UScriptCode = 19i32; +pub const USCRIPT_HIERATIC_EGYPTIAN: UScriptCode = 70i32; +pub const USCRIPT_HIRAGANA: UScriptCode = 20i32; +pub const USCRIPT_IMPERIAL_ARAMAIC: UScriptCode = 116i32; +pub const USCRIPT_INHERITED: UScriptCode = 1i32; +pub const USCRIPT_INSCRIPTIONAL_PAHLAVI: UScriptCode = 122i32; +pub const USCRIPT_INSCRIPTIONAL_PARTHIAN: UScriptCode = 125i32; +pub const USCRIPT_INVALID_CODE: UScriptCode = -1i32; +pub const USCRIPT_JAMO: UScriptCode = 173i32; +pub const USCRIPT_JAPANESE: UScriptCode = 105i32; +pub const USCRIPT_JAVANESE: UScriptCode = 78i32; +pub const USCRIPT_JURCHEN: UScriptCode = 148i32; +pub const USCRIPT_KAITHI: UScriptCode = 120i32; +pub const USCRIPT_KANNADA: UScriptCode = 21i32; +pub const USCRIPT_KATAKANA: UScriptCode = 22i32; +pub const USCRIPT_KATAKANA_OR_HIRAGANA: UScriptCode = 54i32; +pub const USCRIPT_KAYAH_LI: UScriptCode = 79i32; +pub const USCRIPT_KHAROSHTHI: UScriptCode = 57i32; +pub const USCRIPT_KHITAN_SMALL_SCRIPT: UScriptCode = 191i32; +pub const USCRIPT_KHMER: UScriptCode = 23i32; +pub const USCRIPT_KHOJKI: UScriptCode = 157i32; +pub const USCRIPT_KHUDAWADI: UScriptCode = 145i32; +pub const USCRIPT_KHUTSURI: UScriptCode = 72i32; +pub const USCRIPT_KOREAN: UScriptCode = 119i32; +pub const USCRIPT_KPELLE: UScriptCode = 138i32; +pub const USCRIPT_LANNA: UScriptCode = 106i32; +pub const USCRIPT_LAO: UScriptCode = 24i32; +pub const USCRIPT_LATIN: UScriptCode = 25i32; +pub const USCRIPT_LATIN_FRAKTUR: UScriptCode = 80i32; +pub const USCRIPT_LATIN_GAELIC: UScriptCode = 81i32; +pub const USCRIPT_LEPCHA: UScriptCode = 82i32; +pub const USCRIPT_LIMBU: UScriptCode = 48i32; +pub const USCRIPT_LINEAR_A: UScriptCode = 83i32; +pub const USCRIPT_LINEAR_B: UScriptCode = 49i32; +pub const USCRIPT_LISU: UScriptCode = 131i32; +pub const USCRIPT_LOMA: UScriptCode = 139i32; +pub const USCRIPT_LYCIAN: UScriptCode = 107i32; +pub const USCRIPT_LYDIAN: UScriptCode = 108i32; +pub const USCRIPT_MAHAJANI: UScriptCode = 160i32; +pub const USCRIPT_MAKASAR: UScriptCode = 180i32; +pub const USCRIPT_MALAYALAM: UScriptCode = 26i32; +pub const USCRIPT_MANDAEAN: UScriptCode = 84i32; +pub const USCRIPT_MANDAIC: UScriptCode = 84i32; +pub const USCRIPT_MANICHAEAN: UScriptCode = 121i32; +pub const USCRIPT_MARCHEN: UScriptCode = 169i32; +pub const USCRIPT_MASARAM_GONDI: UScriptCode = 175i32; +pub const USCRIPT_MATHEMATICAL_NOTATION: UScriptCode = 128i32; +pub const USCRIPT_MAYAN_HIEROGLYPHS: UScriptCode = 85i32; +pub const USCRIPT_MEDEFAIDRIN: UScriptCode = 181i32; +pub const USCRIPT_MEITEI_MAYEK: UScriptCode = 115i32; +pub const USCRIPT_MENDE: UScriptCode = 140i32; +pub const USCRIPT_MEROITIC: UScriptCode = 86i32; +pub const USCRIPT_MEROITIC_CURSIVE: UScriptCode = 141i32; +pub const USCRIPT_MEROITIC_HIEROGLYPHS: UScriptCode = 86i32; +pub const USCRIPT_MIAO: UScriptCode = 92i32; +pub const USCRIPT_MODI: UScriptCode = 163i32; +pub const USCRIPT_MONGOLIAN: UScriptCode = 27i32; +pub const USCRIPT_MOON: UScriptCode = 114i32; +pub const USCRIPT_MRO: UScriptCode = 149i32; +pub const USCRIPT_MULTANI: UScriptCode = 164i32; +pub const USCRIPT_MYANMAR: UScriptCode = 28i32; +pub const USCRIPT_NABATAEAN: UScriptCode = 143i32; +pub const USCRIPT_NAKHI_GEBA: UScriptCode = 132i32; +pub const USCRIPT_NANDINAGARI: UScriptCode = 187i32; +pub const USCRIPT_NEWA: UScriptCode = 170i32; +pub const USCRIPT_NEW_TAI_LUE: UScriptCode = 59i32; +pub const USCRIPT_NKO: UScriptCode = 87i32; +pub const USCRIPT_NUSHU: UScriptCode = 150i32; +pub const USCRIPT_NYIAKENG_PUACHUE_HMONG: UScriptCode = 186i32; +pub const USCRIPT_OGHAM: UScriptCode = 29i32; +pub const USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC: UScriptCode = 68i32; +pub const USCRIPT_OLD_HUNGARIAN: UScriptCode = 76i32; +pub const USCRIPT_OLD_ITALIC: UScriptCode = 30i32; +pub const USCRIPT_OLD_NORTH_ARABIAN: UScriptCode = 142i32; +pub const USCRIPT_OLD_PERMIC: UScriptCode = 89i32; +pub const USCRIPT_OLD_PERSIAN: UScriptCode = 61i32; +pub const USCRIPT_OLD_SOGDIAN: UScriptCode = 184i32; +pub const USCRIPT_OLD_SOUTH_ARABIAN: UScriptCode = 133i32; +pub const USCRIPT_OL_CHIKI: UScriptCode = 109i32; +pub const USCRIPT_ORIYA: UScriptCode = 31i32; +pub const USCRIPT_ORKHON: UScriptCode = 88i32; +pub const USCRIPT_OSAGE: UScriptCode = 171i32; +pub const USCRIPT_OSMANYA: UScriptCode = 50i32; +pub const USCRIPT_PAHAWH_HMONG: UScriptCode = 75i32; +pub const USCRIPT_PALMYRENE: UScriptCode = 144i32; +pub const USCRIPT_PAU_CIN_HAU: UScriptCode = 165i32; +pub const USCRIPT_PHAGS_PA: UScriptCode = 90i32; +pub const USCRIPT_PHOENICIAN: UScriptCode = 91i32; +pub const USCRIPT_PHONETIC_POLLARD: UScriptCode = 92i32; +pub const USCRIPT_PSALTER_PAHLAVI: UScriptCode = 123i32; +pub const USCRIPT_REJANG: UScriptCode = 110i32; +pub const USCRIPT_RONGORONGO: UScriptCode = 93i32; +pub const USCRIPT_RUNIC: UScriptCode = 32i32; +pub const USCRIPT_SAMARITAN: UScriptCode = 126i32; +pub const USCRIPT_SARATI: UScriptCode = 94i32; +pub const USCRIPT_SAURASHTRA: UScriptCode = 111i32; +pub const USCRIPT_SHARADA: UScriptCode = 151i32; +pub const USCRIPT_SHAVIAN: UScriptCode = 51i32; +pub const USCRIPT_SIDDHAM: UScriptCode = 166i32; +pub const USCRIPT_SIGN_WRITING: UScriptCode = 112i32; +pub const USCRIPT_SIMPLIFIED_HAN: UScriptCode = 73i32; +pub const USCRIPT_SINDHI: UScriptCode = 145i32; +pub const USCRIPT_SINHALA: UScriptCode = 33i32; +pub const USCRIPT_SOGDIAN: UScriptCode = 183i32; +pub const USCRIPT_SORA_SOMPENG: UScriptCode = 152i32; +pub const USCRIPT_SOYOMBO: UScriptCode = 176i32; +pub const USCRIPT_SUNDANESE: UScriptCode = 113i32; +pub const USCRIPT_SYLOTI_NAGRI: UScriptCode = 58i32; +pub const USCRIPT_SYMBOLS: UScriptCode = 129i32; +pub const USCRIPT_SYMBOLS_EMOJI: UScriptCode = 174i32; +pub const USCRIPT_SYRIAC: UScriptCode = 34i32; +pub const USCRIPT_TAGALOG: UScriptCode = 42i32; +pub const USCRIPT_TAGBANWA: UScriptCode = 45i32; +pub const USCRIPT_TAI_LE: UScriptCode = 52i32; +pub const USCRIPT_TAI_VIET: UScriptCode = 127i32; +pub const USCRIPT_TAKRI: UScriptCode = 153i32; +pub const USCRIPT_TAMIL: UScriptCode = 35i32; +pub const USCRIPT_TANGUT: UScriptCode = 154i32; +pub const USCRIPT_TELUGU: UScriptCode = 36i32; +pub const USCRIPT_TENGWAR: UScriptCode = 98i32; +pub const USCRIPT_THAANA: UScriptCode = 37i32; +pub const USCRIPT_THAI: UScriptCode = 38i32; +pub const USCRIPT_TIBETAN: UScriptCode = 39i32; +pub const USCRIPT_TIFINAGH: UScriptCode = 60i32; +pub const USCRIPT_TIRHUTA: UScriptCode = 158i32; +pub const USCRIPT_TRADITIONAL_HAN: UScriptCode = 74i32; +pub const USCRIPT_UCAS: UScriptCode = 40i32; +pub const USCRIPT_UGARITIC: UScriptCode = 53i32; +pub const USCRIPT_UNKNOWN: UScriptCode = 103i32; +pub const USCRIPT_UNWRITTEN_LANGUAGES: UScriptCode = 102i32; +pub const USCRIPT_USAGE_ASPIRATIONAL: UScriptUsage = 4i32; +pub const USCRIPT_USAGE_EXCLUDED: UScriptUsage = 2i32; +pub const USCRIPT_USAGE_LIMITED_USE: UScriptUsage = 3i32; +pub const USCRIPT_USAGE_NOT_ENCODED: UScriptUsage = 0i32; +pub const USCRIPT_USAGE_RECOMMENDED: UScriptUsage = 5i32; +pub const USCRIPT_USAGE_UNKNOWN: UScriptUsage = 1i32; +pub const USCRIPT_VAI: UScriptCode = 99i32; +pub const USCRIPT_VISIBLE_SPEECH: UScriptCode = 100i32; +pub const USCRIPT_WANCHO: UScriptCode = 188i32; +pub const USCRIPT_WARANG_CITI: UScriptCode = 146i32; +pub const USCRIPT_WESTERN_SYRIAC: UScriptCode = 96i32; +pub const USCRIPT_WOLEAI: UScriptCode = 155i32; +pub const USCRIPT_YEZIDI: UScriptCode = 192i32; +pub const USCRIPT_YI: UScriptCode = 41i32; +pub const USCRIPT_ZANABAZAR_SQUARE: UScriptCode = 177i32; +pub const USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD: USearchAttributeValue = 4i32; +pub const USEARCH_DEFAULT: USearchAttributeValue = -1i32; +pub const USEARCH_DONE: i32 = -1i32; +pub const USEARCH_ELEMENT_COMPARISON: USearchAttribute = 2i32; +pub const USEARCH_OFF: USearchAttributeValue = 0i32; +pub const USEARCH_ON: USearchAttributeValue = 1i32; +pub const USEARCH_OVERLAP: USearchAttribute = 0i32; +pub const USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD: USearchAttributeValue = 3i32; +pub const USEARCH_STANDARD_ELEMENT_COMPARISON: USearchAttributeValue = 2i32; +pub const USET_ADD_CASE_MAPPINGS: i32 = 4i32; +pub const USET_CASE_INSENSITIVE: i32 = 2i32; +pub const USET_IGNORE_SPACE: i32 = 1i32; +pub const USET_SERIALIZED_STATIC_ARRAY_CAPACITY: i32 = 8i32; +pub const USET_SPAN_CONTAINED: USetSpanCondition = 1i32; +pub const USET_SPAN_NOT_CONTAINED: USetSpanCondition = 0i32; +pub const USET_SPAN_SIMPLE: USetSpanCondition = 2i32; +pub const USPOOF_ALL_CHECKS: USpoofChecks = 65535i32; +pub const USPOOF_ASCII: URestrictionLevel = 268435456i32; +pub const USPOOF_AUX_INFO: USpoofChecks = 1073741824i32; +pub const USPOOF_CHAR_LIMIT: USpoofChecks = 64i32; +pub const USPOOF_CONFUSABLE: USpoofChecks = 7i32; +pub const USPOOF_HIDDEN_OVERLAY: USpoofChecks = 256i32; +pub const USPOOF_HIGHLY_RESTRICTIVE: URestrictionLevel = 805306368i32; +pub const USPOOF_INVISIBLE: USpoofChecks = 32i32; +pub const USPOOF_MINIMALLY_RESTRICTIVE: URestrictionLevel = 1342177280i32; +pub const USPOOF_MIXED_NUMBERS: USpoofChecks = 128i32; +pub const USPOOF_MIXED_SCRIPT_CONFUSABLE: USpoofChecks = 2i32; +pub const USPOOF_MODERATELY_RESTRICTIVE: URestrictionLevel = 1073741824i32; +pub const USPOOF_RESTRICTION_LEVEL: USpoofChecks = 16i32; +pub const USPOOF_RESTRICTION_LEVEL_MASK: URestrictionLevel = 2130706432i32; +pub const USPOOF_SINGLE_SCRIPT_CONFUSABLE: USpoofChecks = 1i32; +pub const USPOOF_SINGLE_SCRIPT_RESTRICTIVE: URestrictionLevel = 536870912i32; +pub const USPOOF_UNRESTRICTIVE: URestrictionLevel = 1610612736i32; +pub const USPOOF_WHOLE_SCRIPT_CONFUSABLE: USpoofChecks = 4i32; +pub const USPREP_ALLOW_UNASSIGNED: u32 = 1u32; +pub const USPREP_DEFAULT: u32 = 0u32; +pub const USPREP_RFC3491_NAMEPREP: UStringPrepProfileType = 0i32; +pub const USPREP_RFC3530_NFS4_CIS_PREP: UStringPrepProfileType = 3i32; +pub const USPREP_RFC3530_NFS4_CS_PREP: UStringPrepProfileType = 1i32; +pub const USPREP_RFC3530_NFS4_CS_PREP_CI: UStringPrepProfileType = 2i32; +pub const USPREP_RFC3530_NFS4_MIXED_PREP_PREFIX: UStringPrepProfileType = 4i32; +pub const USPREP_RFC3530_NFS4_MIXED_PREP_SUFFIX: UStringPrepProfileType = 5i32; +pub const USPREP_RFC3722_ISCSI: UStringPrepProfileType = 6i32; +pub const USPREP_RFC3920_NODEPREP: UStringPrepProfileType = 7i32; +pub const USPREP_RFC3920_RESOURCEPREP: UStringPrepProfileType = 8i32; +pub const USPREP_RFC4011_MIB: UStringPrepProfileType = 9i32; +pub const USPREP_RFC4013_SASLPREP: UStringPrepProfileType = 10i32; +pub const USPREP_RFC4505_TRACE: UStringPrepProfileType = 11i32; +pub const USPREP_RFC4518_LDAP: UStringPrepProfileType = 12i32; +pub const USPREP_RFC4518_LDAP_CI: UStringPrepProfileType = 13i32; +pub const USP_E_SCRIPT_NOT_IN_FONT: ::windows_sys::core::HRESULT = -2147220992i32; +pub const USTRINGTRIE_BUILD_FAST: UStringTrieBuildOption = 0i32; +pub const USTRINGTRIE_BUILD_SMALL: UStringTrieBuildOption = 1i32; +pub const USTRINGTRIE_FINAL_VALUE: UStringTrieResult = 2i32; +pub const USTRINGTRIE_INTERMEDIATE_VALUE: UStringTrieResult = 3i32; +pub const USTRINGTRIE_NO_MATCH: UStringTrieResult = 0i32; +pub const USTRINGTRIE_NO_VALUE: UStringTrieResult = 1i32; +pub const UTEXT_MAGIC: i32 = 878368812i32; +pub const UTEXT_PROVIDER_HAS_META_DATA: i32 = 4i32; +pub const UTEXT_PROVIDER_LENGTH_IS_EXPENSIVE: i32 = 1i32; +pub const UTEXT_PROVIDER_OWNS_TEXT: i32 = 5i32; +pub const UTEXT_PROVIDER_STABLE_CHUNKS: i32 = 2i32; +pub const UTEXT_PROVIDER_WRITABLE: i32 = 3i32; +pub const UTF16_MAX_CHAR_LENGTH: u32 = 2u32; +pub const UTF32_MAX_CHAR_LENGTH: u32 = 1u32; +pub const UTF8_ERROR_VALUE_1: u32 = 21u32; +pub const UTF8_ERROR_VALUE_2: u32 = 159u32; +pub const UTF8_MAX_CHAR_LENGTH: u32 = 4u32; +pub const UTF_ERROR_VALUE: u32 = 65535u32; +pub const UTF_MAX_CHAR_LENGTH: u32 = 2u32; +pub const UTF_SIZE: u32 = 16u32; +pub const UTRACE_COLLATION_START: UTraceFunctionNumber = 8192i32; +pub const UTRACE_CONVERSION_START: UTraceFunctionNumber = 4096i32; +pub const UTRACE_ERROR: UTraceLevel = 0i32; +pub const UTRACE_FUNCTION_START: UTraceFunctionNumber = 0i32; +pub const UTRACE_INFO: UTraceLevel = 7i32; +pub const UTRACE_OFF: UTraceLevel = -1i32; +pub const UTRACE_OPEN_CLOSE: UTraceLevel = 5i32; +pub const UTRACE_UCNV_CLONE: UTraceFunctionNumber = 4099i32; +pub const UTRACE_UCNV_CLOSE: UTraceFunctionNumber = 4100i32; +pub const UTRACE_UCNV_FLUSH_CACHE: UTraceFunctionNumber = 4101i32; +pub const UTRACE_UCNV_LOAD: UTraceFunctionNumber = 4102i32; +pub const UTRACE_UCNV_OPEN: UTraceFunctionNumber = 4096i32; +pub const UTRACE_UCNV_OPEN_ALGORITHMIC: UTraceFunctionNumber = 4098i32; +pub const UTRACE_UCNV_OPEN_PACKAGE: UTraceFunctionNumber = 4097i32; +pub const UTRACE_UCNV_UNLOAD: UTraceFunctionNumber = 4103i32; +pub const UTRACE_UCOL_CLOSE: UTraceFunctionNumber = 8193i32; +pub const UTRACE_UCOL_GETLOCALE: UTraceFunctionNumber = 8196i32; +pub const UTRACE_UCOL_GET_SORTKEY: UTraceFunctionNumber = 8195i32; +pub const UTRACE_UCOL_NEXTSORTKEYPART: UTraceFunctionNumber = 8197i32; +pub const UTRACE_UCOL_OPEN: UTraceFunctionNumber = 8192i32; +pub const UTRACE_UCOL_OPEN_FROM_SHORT_STRING: UTraceFunctionNumber = 8199i32; +pub const UTRACE_UCOL_STRCOLL: UTraceFunctionNumber = 8194i32; +pub const UTRACE_UCOL_STRCOLLITER: UTraceFunctionNumber = 8198i32; +pub const UTRACE_UCOL_STRCOLLUTF8: UTraceFunctionNumber = 8200i32; +pub const UTRACE_UDATA_BUNDLE: UTraceFunctionNumber = 12289i32; +pub const UTRACE_UDATA_DATA_FILE: UTraceFunctionNumber = 12290i32; +pub const UTRACE_UDATA_RESOURCE: UTraceFunctionNumber = 12288i32; +pub const UTRACE_UDATA_RES_FILE: UTraceFunctionNumber = 12291i32; +pub const UTRACE_UDATA_START: UTraceFunctionNumber = 12288i32; +pub const UTRACE_U_CLEANUP: UTraceFunctionNumber = 1i32; +pub const UTRACE_U_INIT: UTraceFunctionNumber = 0i32; +pub const UTRACE_VERBOSE: UTraceLevel = 9i32; +pub const UTRACE_WARNING: UTraceLevel = 3i32; +pub const UTRANS_FORWARD: UTransDirection = 0i32; +pub const UTRANS_REVERSE: UTransDirection = 1i32; +pub const UTSV_EPOCH_OFFSET_VALUE: UTimeScaleValue = 1i32; +pub const UTSV_FROM_MAX_VALUE: UTimeScaleValue = 3i32; +pub const UTSV_FROM_MIN_VALUE: UTimeScaleValue = 2i32; +pub const UTSV_TO_MAX_VALUE: UTimeScaleValue = 5i32; +pub const UTSV_TO_MIN_VALUE: UTimeScaleValue = 4i32; +pub const UTSV_UNITS_VALUE: UTimeScaleValue = 0i32; +pub const UTZFMT_PARSE_OPTION_ALL_STYLES: UTimeZoneFormatParseOption = 1i32; +pub const UTZFMT_PARSE_OPTION_NONE: UTimeZoneFormatParseOption = 0i32; +pub const UTZFMT_PARSE_OPTION_TZ_DATABASE_ABBREVIATIONS: UTimeZoneFormatParseOption = 2i32; +pub const UTZFMT_PAT_COUNT: UTimeZoneFormatGMTOffsetPatternType = 6i32; +pub const UTZFMT_PAT_NEGATIVE_H: UTimeZoneFormatGMTOffsetPatternType = 5i32; +pub const UTZFMT_PAT_NEGATIVE_HM: UTimeZoneFormatGMTOffsetPatternType = 2i32; +pub const UTZFMT_PAT_NEGATIVE_HMS: UTimeZoneFormatGMTOffsetPatternType = 3i32; +pub const UTZFMT_PAT_POSITIVE_H: UTimeZoneFormatGMTOffsetPatternType = 4i32; +pub const UTZFMT_PAT_POSITIVE_HM: UTimeZoneFormatGMTOffsetPatternType = 0i32; +pub const UTZFMT_PAT_POSITIVE_HMS: UTimeZoneFormatGMTOffsetPatternType = 1i32; +pub const UTZFMT_STYLE_EXEMPLAR_LOCATION: UTimeZoneFormatStyle = 19i32; +pub const UTZFMT_STYLE_GENERIC_LOCATION: UTimeZoneFormatStyle = 0i32; +pub const UTZFMT_STYLE_GENERIC_LONG: UTimeZoneFormatStyle = 1i32; +pub const UTZFMT_STYLE_GENERIC_SHORT: UTimeZoneFormatStyle = 2i32; +pub const UTZFMT_STYLE_ISO_BASIC_FIXED: UTimeZoneFormatStyle = 9i32; +pub const UTZFMT_STYLE_ISO_BASIC_FULL: UTimeZoneFormatStyle = 11i32; +pub const UTZFMT_STYLE_ISO_BASIC_LOCAL_FIXED: UTimeZoneFormatStyle = 10i32; +pub const UTZFMT_STYLE_ISO_BASIC_LOCAL_FULL: UTimeZoneFormatStyle = 12i32; +pub const UTZFMT_STYLE_ISO_BASIC_LOCAL_SHORT: UTimeZoneFormatStyle = 8i32; +pub const UTZFMT_STYLE_ISO_BASIC_SHORT: UTimeZoneFormatStyle = 7i32; +pub const UTZFMT_STYLE_ISO_EXTENDED_FIXED: UTimeZoneFormatStyle = 13i32; +pub const UTZFMT_STYLE_ISO_EXTENDED_FULL: UTimeZoneFormatStyle = 15i32; +pub const UTZFMT_STYLE_ISO_EXTENDED_LOCAL_FIXED: UTimeZoneFormatStyle = 14i32; +pub const UTZFMT_STYLE_ISO_EXTENDED_LOCAL_FULL: UTimeZoneFormatStyle = 16i32; +pub const UTZFMT_STYLE_LOCALIZED_GMT: UTimeZoneFormatStyle = 5i32; +pub const UTZFMT_STYLE_LOCALIZED_GMT_SHORT: UTimeZoneFormatStyle = 6i32; +pub const UTZFMT_STYLE_SPECIFIC_LONG: UTimeZoneFormatStyle = 3i32; +pub const UTZFMT_STYLE_SPECIFIC_SHORT: UTimeZoneFormatStyle = 4i32; +pub const UTZFMT_STYLE_ZONE_ID: UTimeZoneFormatStyle = 17i32; +pub const UTZFMT_STYLE_ZONE_ID_SHORT: UTimeZoneFormatStyle = 18i32; +pub const UTZFMT_TIME_TYPE_DAYLIGHT: UTimeZoneFormatTimeType = 2i32; +pub const UTZFMT_TIME_TYPE_STANDARD: UTimeZoneFormatTimeType = 1i32; +pub const UTZFMT_TIME_TYPE_UNKNOWN: UTimeZoneFormatTimeType = 0i32; +pub const UTZNM_EXEMPLAR_LOCATION: UTimeZoneNameType = 64i32; +pub const UTZNM_LONG_DAYLIGHT: UTimeZoneNameType = 4i32; +pub const UTZNM_LONG_GENERIC: UTimeZoneNameType = 1i32; +pub const UTZNM_LONG_STANDARD: UTimeZoneNameType = 2i32; +pub const UTZNM_SHORT_DAYLIGHT: UTimeZoneNameType = 32i32; +pub const UTZNM_SHORT_GENERIC: UTimeZoneNameType = 8i32; +pub const UTZNM_SHORT_STANDARD: UTimeZoneNameType = 16i32; +pub const UTZNM_UNKNOWN: UTimeZoneNameType = 0i32; +pub const U_ALPHAINDEX_INFLOW: UAlphabeticIndexLabelType = 2i32; +pub const U_ALPHAINDEX_NORMAL: UAlphabeticIndexLabelType = 0i32; +pub const U_ALPHAINDEX_OVERFLOW: UAlphabeticIndexLabelType = 3i32; +pub const U_ALPHAINDEX_UNDERFLOW: UAlphabeticIndexLabelType = 1i32; +pub const U_AMBIGUOUS_ALIAS_WARNING: UErrorCode = -122i32; +pub const U_ARABIC_NUMBER: UCharDirection = 5i32; +pub const U_ARGUMENT_TYPE_MISMATCH: UErrorCode = 65804i32; +pub const U_ASCII_FAMILY: u32 = 0u32; +pub const U_BAD_VARIABLE_DEFINITION: UErrorCode = 65536i32; +pub const U_BLOCK_SEPARATOR: UCharDirection = 7i32; +pub const U_BOUNDARY_NEUTRAL: UCharDirection = 18i32; +pub const U_BPT_CLOSE: UBidiPairedBracketType = 2i32; +pub const U_BPT_NONE: UBidiPairedBracketType = 0i32; +pub const U_BPT_OPEN: UBidiPairedBracketType = 1i32; +pub const U_BRK_ASSIGN_ERROR: UErrorCode = 66053i32; +pub const U_BRK_ERROR_START: UErrorCode = 66048i32; +pub const U_BRK_HEX_DIGITS_EXPECTED: UErrorCode = 66049i32; +pub const U_BRK_INIT_ERROR: UErrorCode = 66058i32; +pub const U_BRK_INTERNAL_ERROR: UErrorCode = 66048i32; +pub const U_BRK_MALFORMED_RULE_TAG: UErrorCode = 66061i32; +pub const U_BRK_MISMATCHED_PAREN: UErrorCode = 66055i32; +pub const U_BRK_NEW_LINE_IN_QUOTED_STRING: UErrorCode = 66056i32; +pub const U_BRK_RULE_EMPTY_SET: UErrorCode = 66059i32; +pub const U_BRK_RULE_SYNTAX: UErrorCode = 66051i32; +pub const U_BRK_SEMICOLON_EXPECTED: UErrorCode = 66050i32; +pub const U_BRK_UNCLOSED_SET: UErrorCode = 66052i32; +pub const U_BRK_UNDEFINED_VARIABLE: UErrorCode = 66057i32; +pub const U_BRK_UNRECOGNIZED_OPTION: UErrorCode = 66060i32; +pub const U_BRK_VARIABLE_REDFINITION: UErrorCode = 66054i32; +pub const U_BUFFER_OVERFLOW_ERROR: UErrorCode = 15i32; +pub const U_CE_NOT_FOUND_ERROR: UErrorCode = 21i32; +pub const U_CHAR16_IS_TYPEDEF: u32 = 1u32; +pub const U_CHARSET_FAMILY: u32 = 1u32; +pub const U_CHARSET_IS_UTF8: u32 = 1u32; +pub const U_CHAR_CATEGORY_COUNT: UCharCategory = 30i32; +pub const U_CHAR_NAME_ALIAS: UCharNameChoice = 3i32; +pub const U_CHECK_DYLOAD: u32 = 1u32; +pub const U_COLLATOR_VERSION_MISMATCH: UErrorCode = 28i32; +pub const U_COMBINED_IMPLEMENTATION: u32 = 1u32; +pub const U_COMBINING_SPACING_MARK: UCharCategory = 8i32; +pub const U_COMMON_NUMBER_SEPARATOR: UCharDirection = 6i32; +pub const U_COMPARE_CODE_POINT_ORDER: u32 = 32768u32; +pub const U_COMPARE_IGNORE_CASE: u32 = 65536u32; +pub const U_CONNECTOR_PUNCTUATION: UCharCategory = 22i32; +pub const U_CONTROL_CHAR: UCharCategory = 15i32; +pub const U_COPYRIGHT_STRING_LENGTH: u32 = 128u32; +pub const U_CPLUSPLUS_VERSION: u32 = 0u32; +pub const U_CURRENCY_SYMBOL: UCharCategory = 25i32; +pub const U_DASH_PUNCTUATION: UCharCategory = 19i32; +pub const U_DEBUG: u32 = 1u32; +pub const U_DECIMAL_DIGIT_NUMBER: UCharCategory = 9i32; +pub const U_DECIMAL_NUMBER_SYNTAX_ERROR: UErrorCode = 65808i32; +pub const U_DEFAULT_KEYWORD_MISSING: UErrorCode = 65807i32; +pub const U_DEFAULT_SHOW_DRAFT: u32 = 0u32; +pub const U_DEFINE_FALSE_AND_TRUE: u32 = 1u32; +pub const U_DIFFERENT_UCA_VERSION: UErrorCode = -121i32; +pub const U_DIR_NON_SPACING_MARK: UCharDirection = 17i32; +pub const U_DISABLE_RENAMING: u32 = 1u32; +pub const U_DT_CANONICAL: UDecompositionType = 1i32; +pub const U_DT_CIRCLE: UDecompositionType = 3i32; +pub const U_DT_COMPAT: UDecompositionType = 2i32; +pub const U_DT_FINAL: UDecompositionType = 4i32; +pub const U_DT_FONT: UDecompositionType = 5i32; +pub const U_DT_FRACTION: UDecompositionType = 6i32; +pub const U_DT_INITIAL: UDecompositionType = 7i32; +pub const U_DT_ISOLATED: UDecompositionType = 8i32; +pub const U_DT_MEDIAL: UDecompositionType = 9i32; +pub const U_DT_NARROW: UDecompositionType = 10i32; +pub const U_DT_NOBREAK: UDecompositionType = 11i32; +pub const U_DT_NONE: UDecompositionType = 0i32; +pub const U_DT_SMALL: UDecompositionType = 12i32; +pub const U_DT_SQUARE: UDecompositionType = 13i32; +pub const U_DT_SUB: UDecompositionType = 14i32; +pub const U_DT_SUPER: UDecompositionType = 15i32; +pub const U_DT_VERTICAL: UDecompositionType = 16i32; +pub const U_DT_WIDE: UDecompositionType = 17i32; +pub const U_DUPLICATE_KEYWORD: UErrorCode = 65805i32; +pub const U_EA_AMBIGUOUS: UEastAsianWidth = 1i32; +pub const U_EA_FULLWIDTH: UEastAsianWidth = 3i32; +pub const U_EA_HALFWIDTH: UEastAsianWidth = 2i32; +pub const U_EA_NARROW: UEastAsianWidth = 4i32; +pub const U_EA_NEUTRAL: UEastAsianWidth = 0i32; +pub const U_EA_WIDE: UEastAsianWidth = 5i32; +pub const U_EBCDIC_FAMILY: u32 = 1u32; +pub const U_EDITS_NO_RESET: u32 = 8192u32; +pub const U_ENABLE_DYLOAD: u32 = 1u32; +pub const U_ENABLE_TRACING: u32 = 0u32; +pub const U_ENCLOSING_MARK: UCharCategory = 7i32; +pub const U_END_PUNCTUATION: UCharCategory = 21i32; +pub const U_ENUM_OUT_OF_SYNC_ERROR: UErrorCode = 25i32; +pub const U_ERROR_WARNING_START: UErrorCode = -128i32; +pub const U_EUROPEAN_NUMBER: UCharDirection = 2i32; +pub const U_EUROPEAN_NUMBER_SEPARATOR: UCharDirection = 3i32; +pub const U_EUROPEAN_NUMBER_TERMINATOR: UCharDirection = 4i32; +pub const U_EXTENDED_CHAR_NAME: UCharNameChoice = 2i32; +pub const U_FILE_ACCESS_ERROR: UErrorCode = 4i32; +pub const U_FINAL_PUNCTUATION: UCharCategory = 29i32; +pub const U_FIRST_STRONG_ISOLATE: UCharDirection = 19i32; +pub const U_FMT_PARSE_ERROR_START: UErrorCode = 65792i32; +pub const U_FOLD_CASE_DEFAULT: u32 = 0u32; +pub const U_FOLD_CASE_EXCLUDE_SPECIAL_I: u32 = 1u32; +pub const U_FORMAT_CHAR: UCharCategory = 16i32; +pub const U_FORMAT_INEXACT_ERROR: UErrorCode = 65809i32; +pub const U_GCB_CONTROL: UGraphemeClusterBreak = 1i32; +pub const U_GCB_CR: UGraphemeClusterBreak = 2i32; +pub const U_GCB_EXTEND: UGraphemeClusterBreak = 3i32; +pub const U_GCB_E_BASE: UGraphemeClusterBreak = 13i32; +pub const U_GCB_E_BASE_GAZ: UGraphemeClusterBreak = 14i32; +pub const U_GCB_E_MODIFIER: UGraphemeClusterBreak = 15i32; +pub const U_GCB_GLUE_AFTER_ZWJ: UGraphemeClusterBreak = 16i32; +pub const U_GCB_L: UGraphemeClusterBreak = 4i32; +pub const U_GCB_LF: UGraphemeClusterBreak = 5i32; +pub const U_GCB_LV: UGraphemeClusterBreak = 6i32; +pub const U_GCB_LVT: UGraphemeClusterBreak = 7i32; +pub const U_GCB_OTHER: UGraphemeClusterBreak = 0i32; +pub const U_GCB_PREPEND: UGraphemeClusterBreak = 11i32; +pub const U_GCB_REGIONAL_INDICATOR: UGraphemeClusterBreak = 12i32; +pub const U_GCB_SPACING_MARK: UGraphemeClusterBreak = 10i32; +pub const U_GCB_T: UGraphemeClusterBreak = 8i32; +pub const U_GCB_V: UGraphemeClusterBreak = 9i32; +pub const U_GCB_ZWJ: UGraphemeClusterBreak = 17i32; +pub const U_GCC_MAJOR_MINOR: u32 = 0u32; +pub const U_GENERAL_OTHER_TYPES: UCharCategory = 0i32; +pub const U_HAVE_CHAR16_T: u32 = 1u32; +pub const U_HAVE_DEBUG_LOCATION_NEW: u32 = 1u32; +pub const U_HAVE_INTTYPES_H: u32 = 1u32; +pub const U_HAVE_LIB_SUFFIX: u32 = 1u32; +pub const U_HAVE_PLACEMENT_NEW: u32 = 0u32; +pub const U_HAVE_RBNF: u32 = 0u32; +pub const U_HAVE_RVALUE_REFERENCES: u32 = 1u32; +pub const U_HAVE_STDINT_H: u32 = 1u32; +pub const U_HAVE_STD_STRING: u32 = 0u32; +pub const U_HAVE_WCHAR_H: u32 = 0u32; +pub const U_HAVE_WCSCPY: u32 = 0u32; +pub const U_HIDE_DEPRECATED_API: u32 = 1u32; +pub const U_HIDE_DRAFT_API: u32 = 1u32; +pub const U_HIDE_INTERNAL_API: u32 = 1u32; +pub const U_HIDE_OBSOLETE_API: u32 = 1u32; +pub const U_HIDE_OBSOLETE_UTF_OLD_H: u32 = 0u32; +pub const U_HST_LEADING_JAMO: UHangulSyllableType = 1i32; +pub const U_HST_LVT_SYLLABLE: UHangulSyllableType = 5i32; +pub const U_HST_LV_SYLLABLE: UHangulSyllableType = 4i32; +pub const U_HST_NOT_APPLICABLE: UHangulSyllableType = 0i32; +pub const U_HST_TRAILING_JAMO: UHangulSyllableType = 3i32; +pub const U_HST_VOWEL_JAMO: UHangulSyllableType = 2i32; +pub const U_ICUDATA_TYPE_LETTER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("e"); +pub const U_ICU_DATA_KEY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("DataVersion"); +pub const U_ICU_VERSION_BUNDLE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("icuver"); +pub const U_IDNA_ACE_PREFIX_ERROR: UErrorCode = 66564i32; +pub const U_IDNA_CHECK_BIDI_ERROR: UErrorCode = 66562i32; +pub const U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR: UErrorCode = 66568i32; +pub const U_IDNA_ERROR_START: UErrorCode = 66560i32; +pub const U_IDNA_LABEL_TOO_LONG_ERROR: UErrorCode = 66566i32; +pub const U_IDNA_PROHIBITED_ERROR: UErrorCode = 66560i32; +pub const U_IDNA_STD3_ASCII_RULES_ERROR: UErrorCode = 66563i32; +pub const U_IDNA_UNASSIGNED_ERROR: UErrorCode = 66561i32; +pub const U_IDNA_VERIFICATION_ERROR: UErrorCode = 66565i32; +pub const U_IDNA_ZERO_LENGTH_LABEL_ERROR: UErrorCode = 66567i32; +pub const U_ILLEGAL_ARGUMENT_ERROR: UErrorCode = 1i32; +pub const U_ILLEGAL_CHARACTER: UErrorCode = 65567i32; +pub const U_ILLEGAL_CHAR_FOUND: UErrorCode = 12i32; +pub const U_ILLEGAL_CHAR_IN_SEGMENT: UErrorCode = 65564i32; +pub const U_ILLEGAL_ESCAPE_SEQUENCE: UErrorCode = 18i32; +pub const U_ILLEGAL_PAD_POSITION: UErrorCode = 65800i32; +pub const U_INDEX_OUTOFBOUNDS_ERROR: UErrorCode = 8i32; +pub const U_INITIAL_PUNCTUATION: UCharCategory = 28i32; +pub const U_INPC_BOTTOM: UIndicPositionalCategory = 1i32; +pub const U_INPC_BOTTOM_AND_LEFT: UIndicPositionalCategory = 2i32; +pub const U_INPC_BOTTOM_AND_RIGHT: UIndicPositionalCategory = 3i32; +pub const U_INPC_LEFT: UIndicPositionalCategory = 4i32; +pub const U_INPC_LEFT_AND_RIGHT: UIndicPositionalCategory = 5i32; +pub const U_INPC_NA: UIndicPositionalCategory = 0i32; +pub const U_INPC_OVERSTRUCK: UIndicPositionalCategory = 6i32; +pub const U_INPC_RIGHT: UIndicPositionalCategory = 7i32; +pub const U_INPC_TOP: UIndicPositionalCategory = 8i32; +pub const U_INPC_TOP_AND_BOTTOM: UIndicPositionalCategory = 9i32; +pub const U_INPC_TOP_AND_BOTTOM_AND_LEFT: UIndicPositionalCategory = 15i32; +pub const U_INPC_TOP_AND_BOTTOM_AND_RIGHT: UIndicPositionalCategory = 10i32; +pub const U_INPC_TOP_AND_LEFT: UIndicPositionalCategory = 11i32; +pub const U_INPC_TOP_AND_LEFT_AND_RIGHT: UIndicPositionalCategory = 12i32; +pub const U_INPC_TOP_AND_RIGHT: UIndicPositionalCategory = 13i32; +pub const U_INPC_VISUAL_ORDER_LEFT: UIndicPositionalCategory = 14i32; +pub const U_INSC_AVAGRAHA: UIndicSyllabicCategory = 1i32; +pub const U_INSC_BINDU: UIndicSyllabicCategory = 2i32; +pub const U_INSC_BRAHMI_JOINING_NUMBER: UIndicSyllabicCategory = 3i32; +pub const U_INSC_CANTILLATION_MARK: UIndicSyllabicCategory = 4i32; +pub const U_INSC_CONSONANT: UIndicSyllabicCategory = 5i32; +pub const U_INSC_CONSONANT_DEAD: UIndicSyllabicCategory = 6i32; +pub const U_INSC_CONSONANT_FINAL: UIndicSyllabicCategory = 7i32; +pub const U_INSC_CONSONANT_HEAD_LETTER: UIndicSyllabicCategory = 8i32; +pub const U_INSC_CONSONANT_INITIAL_POSTFIXED: UIndicSyllabicCategory = 9i32; +pub const U_INSC_CONSONANT_KILLER: UIndicSyllabicCategory = 10i32; +pub const U_INSC_CONSONANT_MEDIAL: UIndicSyllabicCategory = 11i32; +pub const U_INSC_CONSONANT_PLACEHOLDER: UIndicSyllabicCategory = 12i32; +pub const U_INSC_CONSONANT_PRECEDING_REPHA: UIndicSyllabicCategory = 13i32; +pub const U_INSC_CONSONANT_PREFIXED: UIndicSyllabicCategory = 14i32; +pub const U_INSC_CONSONANT_SUBJOINED: UIndicSyllabicCategory = 15i32; +pub const U_INSC_CONSONANT_SUCCEEDING_REPHA: UIndicSyllabicCategory = 16i32; +pub const U_INSC_CONSONANT_WITH_STACKER: UIndicSyllabicCategory = 17i32; +pub const U_INSC_GEMINATION_MARK: UIndicSyllabicCategory = 18i32; +pub const U_INSC_INVISIBLE_STACKER: UIndicSyllabicCategory = 19i32; +pub const U_INSC_JOINER: UIndicSyllabicCategory = 20i32; +pub const U_INSC_MODIFYING_LETTER: UIndicSyllabicCategory = 21i32; +pub const U_INSC_NON_JOINER: UIndicSyllabicCategory = 22i32; +pub const U_INSC_NUKTA: UIndicSyllabicCategory = 23i32; +pub const U_INSC_NUMBER: UIndicSyllabicCategory = 24i32; +pub const U_INSC_NUMBER_JOINER: UIndicSyllabicCategory = 25i32; +pub const U_INSC_OTHER: UIndicSyllabicCategory = 0i32; +pub const U_INSC_PURE_KILLER: UIndicSyllabicCategory = 26i32; +pub const U_INSC_REGISTER_SHIFTER: UIndicSyllabicCategory = 27i32; +pub const U_INSC_SYLLABLE_MODIFIER: UIndicSyllabicCategory = 28i32; +pub const U_INSC_TONE_LETTER: UIndicSyllabicCategory = 29i32; +pub const U_INSC_TONE_MARK: UIndicSyllabicCategory = 30i32; +pub const U_INSC_VIRAMA: UIndicSyllabicCategory = 31i32; +pub const U_INSC_VISARGA: UIndicSyllabicCategory = 32i32; +pub const U_INSC_VOWEL: UIndicSyllabicCategory = 33i32; +pub const U_INSC_VOWEL_DEPENDENT: UIndicSyllabicCategory = 34i32; +pub const U_INSC_VOWEL_INDEPENDENT: UIndicSyllabicCategory = 35i32; +pub const U_INTERNAL_PROGRAM_ERROR: UErrorCode = 5i32; +pub const U_INTERNAL_TRANSLITERATOR_ERROR: UErrorCode = 65568i32; +pub const U_INVALID_CHAR_FOUND: UErrorCode = 10i32; +pub const U_INVALID_FORMAT_ERROR: UErrorCode = 3i32; +pub const U_INVALID_FUNCTION: UErrorCode = 65570i32; +pub const U_INVALID_ID: UErrorCode = 65569i32; +pub const U_INVALID_PROPERTY_PATTERN: UErrorCode = 65561i32; +pub const U_INVALID_RBT_SYNTAX: UErrorCode = 65560i32; +pub const U_INVALID_STATE_ERROR: UErrorCode = 27i32; +pub const U_INVALID_TABLE_FILE: UErrorCode = 14i32; +pub const U_INVALID_TABLE_FORMAT: UErrorCode = 13i32; +pub const U_INVARIANT_CONVERSION_ERROR: UErrorCode = 26i32; +pub const U_IOSTREAM_SOURCE: u32 = 199711u32; +pub const U_IS_BIG_ENDIAN: u32 = 0u32; +pub const U_JG_AFRICAN_FEH: UJoiningGroup = 86i32; +pub const U_JG_AFRICAN_NOON: UJoiningGroup = 87i32; +pub const U_JG_AFRICAN_QAF: UJoiningGroup = 88i32; +pub const U_JG_AIN: UJoiningGroup = 1i32; +pub const U_JG_ALAPH: UJoiningGroup = 2i32; +pub const U_JG_ALEF: UJoiningGroup = 3i32; +pub const U_JG_BEH: UJoiningGroup = 4i32; +pub const U_JG_BETH: UJoiningGroup = 5i32; +pub const U_JG_BURUSHASKI_YEH_BARREE: UJoiningGroup = 54i32; +pub const U_JG_DAL: UJoiningGroup = 6i32; +pub const U_JG_DALATH_RISH: UJoiningGroup = 7i32; +pub const U_JG_E: UJoiningGroup = 8i32; +pub const U_JG_FARSI_YEH: UJoiningGroup = 55i32; +pub const U_JG_FE: UJoiningGroup = 51i32; +pub const U_JG_FEH: UJoiningGroup = 9i32; +pub const U_JG_FINAL_SEMKATH: UJoiningGroup = 10i32; +pub const U_JG_GAF: UJoiningGroup = 11i32; +pub const U_JG_GAMAL: UJoiningGroup = 12i32; +pub const U_JG_HAH: UJoiningGroup = 13i32; +pub const U_JG_HAMZA_ON_HEH_GOAL: UJoiningGroup = 14i32; +pub const U_JG_HANIFI_ROHINGYA_KINNA_YA: UJoiningGroup = 100i32; +pub const U_JG_HANIFI_ROHINGYA_PA: UJoiningGroup = 101i32; +pub const U_JG_HE: UJoiningGroup = 15i32; +pub const U_JG_HEH: UJoiningGroup = 16i32; +pub const U_JG_HEH_GOAL: UJoiningGroup = 17i32; +pub const U_JG_HETH: UJoiningGroup = 18i32; +pub const U_JG_KAF: UJoiningGroup = 19i32; +pub const U_JG_KAPH: UJoiningGroup = 20i32; +pub const U_JG_KHAPH: UJoiningGroup = 52i32; +pub const U_JG_KNOTTED_HEH: UJoiningGroup = 21i32; +pub const U_JG_LAM: UJoiningGroup = 22i32; +pub const U_JG_LAMADH: UJoiningGroup = 23i32; +pub const U_JG_MALAYALAM_BHA: UJoiningGroup = 89i32; +pub const U_JG_MALAYALAM_JA: UJoiningGroup = 90i32; +pub const U_JG_MALAYALAM_LLA: UJoiningGroup = 91i32; +pub const U_JG_MALAYALAM_LLLA: UJoiningGroup = 92i32; +pub const U_JG_MALAYALAM_NGA: UJoiningGroup = 93i32; +pub const U_JG_MALAYALAM_NNA: UJoiningGroup = 94i32; +pub const U_JG_MALAYALAM_NNNA: UJoiningGroup = 95i32; +pub const U_JG_MALAYALAM_NYA: UJoiningGroup = 96i32; +pub const U_JG_MALAYALAM_RA: UJoiningGroup = 97i32; +pub const U_JG_MALAYALAM_SSA: UJoiningGroup = 98i32; +pub const U_JG_MALAYALAM_TTA: UJoiningGroup = 99i32; +pub const U_JG_MANICHAEAN_ALEPH: UJoiningGroup = 58i32; +pub const U_JG_MANICHAEAN_AYIN: UJoiningGroup = 59i32; +pub const U_JG_MANICHAEAN_BETH: UJoiningGroup = 60i32; +pub const U_JG_MANICHAEAN_DALETH: UJoiningGroup = 61i32; +pub const U_JG_MANICHAEAN_DHAMEDH: UJoiningGroup = 62i32; +pub const U_JG_MANICHAEAN_FIVE: UJoiningGroup = 63i32; +pub const U_JG_MANICHAEAN_GIMEL: UJoiningGroup = 64i32; +pub const U_JG_MANICHAEAN_HETH: UJoiningGroup = 65i32; +pub const U_JG_MANICHAEAN_HUNDRED: UJoiningGroup = 66i32; +pub const U_JG_MANICHAEAN_KAPH: UJoiningGroup = 67i32; +pub const U_JG_MANICHAEAN_LAMEDH: UJoiningGroup = 68i32; +pub const U_JG_MANICHAEAN_MEM: UJoiningGroup = 69i32; +pub const U_JG_MANICHAEAN_NUN: UJoiningGroup = 70i32; +pub const U_JG_MANICHAEAN_ONE: UJoiningGroup = 71i32; +pub const U_JG_MANICHAEAN_PE: UJoiningGroup = 72i32; +pub const U_JG_MANICHAEAN_QOPH: UJoiningGroup = 73i32; +pub const U_JG_MANICHAEAN_RESH: UJoiningGroup = 74i32; +pub const U_JG_MANICHAEAN_SADHE: UJoiningGroup = 75i32; +pub const U_JG_MANICHAEAN_SAMEKH: UJoiningGroup = 76i32; +pub const U_JG_MANICHAEAN_TAW: UJoiningGroup = 77i32; +pub const U_JG_MANICHAEAN_TEN: UJoiningGroup = 78i32; +pub const U_JG_MANICHAEAN_TETH: UJoiningGroup = 79i32; +pub const U_JG_MANICHAEAN_THAMEDH: UJoiningGroup = 80i32; +pub const U_JG_MANICHAEAN_TWENTY: UJoiningGroup = 81i32; +pub const U_JG_MANICHAEAN_WAW: UJoiningGroup = 82i32; +pub const U_JG_MANICHAEAN_YODH: UJoiningGroup = 83i32; +pub const U_JG_MANICHAEAN_ZAYIN: UJoiningGroup = 84i32; +pub const U_JG_MEEM: UJoiningGroup = 24i32; +pub const U_JG_MIM: UJoiningGroup = 25i32; +pub const U_JG_NOON: UJoiningGroup = 26i32; +pub const U_JG_NO_JOINING_GROUP: UJoiningGroup = 0i32; +pub const U_JG_NUN: UJoiningGroup = 27i32; +pub const U_JG_NYA: UJoiningGroup = 56i32; +pub const U_JG_PE: UJoiningGroup = 28i32; +pub const U_JG_QAF: UJoiningGroup = 29i32; +pub const U_JG_QAPH: UJoiningGroup = 30i32; +pub const U_JG_REH: UJoiningGroup = 31i32; +pub const U_JG_REVERSED_PE: UJoiningGroup = 32i32; +pub const U_JG_ROHINGYA_YEH: UJoiningGroup = 57i32; +pub const U_JG_SAD: UJoiningGroup = 33i32; +pub const U_JG_SADHE: UJoiningGroup = 34i32; +pub const U_JG_SEEN: UJoiningGroup = 35i32; +pub const U_JG_SEMKATH: UJoiningGroup = 36i32; +pub const U_JG_SHIN: UJoiningGroup = 37i32; +pub const U_JG_STRAIGHT_WAW: UJoiningGroup = 85i32; +pub const U_JG_SWASH_KAF: UJoiningGroup = 38i32; +pub const U_JG_SYRIAC_WAW: UJoiningGroup = 39i32; +pub const U_JG_TAH: UJoiningGroup = 40i32; +pub const U_JG_TAW: UJoiningGroup = 41i32; +pub const U_JG_TEH_MARBUTA: UJoiningGroup = 42i32; +pub const U_JG_TEH_MARBUTA_GOAL: UJoiningGroup = 14i32; +pub const U_JG_TETH: UJoiningGroup = 43i32; +pub const U_JG_WAW: UJoiningGroup = 44i32; +pub const U_JG_YEH: UJoiningGroup = 45i32; +pub const U_JG_YEH_BARREE: UJoiningGroup = 46i32; +pub const U_JG_YEH_WITH_TAIL: UJoiningGroup = 47i32; +pub const U_JG_YUDH: UJoiningGroup = 48i32; +pub const U_JG_YUDH_HE: UJoiningGroup = 49i32; +pub const U_JG_ZAIN: UJoiningGroup = 50i32; +pub const U_JG_ZHAIN: UJoiningGroup = 53i32; +pub const U_JT_DUAL_JOINING: UJoiningType = 2i32; +pub const U_JT_JOIN_CAUSING: UJoiningType = 1i32; +pub const U_JT_LEFT_JOINING: UJoiningType = 3i32; +pub const U_JT_NON_JOINING: UJoiningType = 0i32; +pub const U_JT_RIGHT_JOINING: UJoiningType = 4i32; +pub const U_JT_TRANSPARENT: UJoiningType = 5i32; +pub const U_LB_ALPHABETIC: ULineBreak = 2i32; +pub const U_LB_AMBIGUOUS: ULineBreak = 1i32; +pub const U_LB_BREAK_AFTER: ULineBreak = 4i32; +pub const U_LB_BREAK_BEFORE: ULineBreak = 5i32; +pub const U_LB_BREAK_BOTH: ULineBreak = 3i32; +pub const U_LB_BREAK_SYMBOLS: ULineBreak = 27i32; +pub const U_LB_CARRIAGE_RETURN: ULineBreak = 10i32; +pub const U_LB_CLOSE_PARENTHESIS: ULineBreak = 36i32; +pub const U_LB_CLOSE_PUNCTUATION: ULineBreak = 8i32; +pub const U_LB_COMBINING_MARK: ULineBreak = 9i32; +pub const U_LB_COMPLEX_CONTEXT: ULineBreak = 24i32; +pub const U_LB_CONDITIONAL_JAPANESE_STARTER: ULineBreak = 37i32; +pub const U_LB_CONTINGENT_BREAK: ULineBreak = 7i32; +pub const U_LB_EXCLAMATION: ULineBreak = 11i32; +pub const U_LB_E_BASE: ULineBreak = 40i32; +pub const U_LB_E_MODIFIER: ULineBreak = 41i32; +pub const U_LB_GLUE: ULineBreak = 12i32; +pub const U_LB_H2: ULineBreak = 31i32; +pub const U_LB_H3: ULineBreak = 32i32; +pub const U_LB_HEBREW_LETTER: ULineBreak = 38i32; +pub const U_LB_HYPHEN: ULineBreak = 13i32; +pub const U_LB_IDEOGRAPHIC: ULineBreak = 14i32; +pub const U_LB_INFIX_NUMERIC: ULineBreak = 16i32; +pub const U_LB_INSEPARABLE: ULineBreak = 15i32; +pub const U_LB_INSEPERABLE: ULineBreak = 15i32; +pub const U_LB_JL: ULineBreak = 33i32; +pub const U_LB_JT: ULineBreak = 34i32; +pub const U_LB_JV: ULineBreak = 35i32; +pub const U_LB_LINE_FEED: ULineBreak = 17i32; +pub const U_LB_MANDATORY_BREAK: ULineBreak = 6i32; +pub const U_LB_NEXT_LINE: ULineBreak = 29i32; +pub const U_LB_NONSTARTER: ULineBreak = 18i32; +pub const U_LB_NUMERIC: ULineBreak = 19i32; +pub const U_LB_OPEN_PUNCTUATION: ULineBreak = 20i32; +pub const U_LB_POSTFIX_NUMERIC: ULineBreak = 21i32; +pub const U_LB_PREFIX_NUMERIC: ULineBreak = 22i32; +pub const U_LB_QUOTATION: ULineBreak = 23i32; +pub const U_LB_REGIONAL_INDICATOR: ULineBreak = 39i32; +pub const U_LB_SPACE: ULineBreak = 26i32; +pub const U_LB_SURROGATE: ULineBreak = 25i32; +pub const U_LB_UNKNOWN: ULineBreak = 0i32; +pub const U_LB_WORD_JOINER: ULineBreak = 30i32; +pub const U_LB_ZWJ: ULineBreak = 42i32; +pub const U_LB_ZWSPACE: ULineBreak = 28i32; +pub const U_LEFT_TO_RIGHT: UCharDirection = 0i32; +pub const U_LEFT_TO_RIGHT_EMBEDDING: UCharDirection = 11i32; +pub const U_LEFT_TO_RIGHT_ISOLATE: UCharDirection = 20i32; +pub const U_LEFT_TO_RIGHT_OVERRIDE: UCharDirection = 12i32; +pub const U_LETTER_NUMBER: UCharCategory = 10i32; +pub const U_LIB_SUFFIX_C_NAME_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!(""); +pub const U_LINE_SEPARATOR: UCharCategory = 13i32; +pub const U_LONG_PROPERTY_NAME: UPropertyNameChoice = 1i32; +pub const U_LOWERCASE_LETTER: UCharCategory = 2i32; +pub const U_MALFORMED_EXPONENTIAL_PATTERN: UErrorCode = 65795i32; +pub const U_MALFORMED_PRAGMA: UErrorCode = 65562i32; +pub const U_MALFORMED_RULE: UErrorCode = 65537i32; +pub const U_MALFORMED_SET: UErrorCode = 65538i32; +pub const U_MALFORMED_SYMBOL_REFERENCE: UErrorCode = 65539i32; +pub const U_MALFORMED_UNICODE_ESCAPE: UErrorCode = 65540i32; +pub const U_MALFORMED_VARIABLE_DEFINITION: UErrorCode = 65541i32; +pub const U_MALFORMED_VARIABLE_REFERENCE: UErrorCode = 65542i32; +pub const U_MATH_SYMBOL: UCharCategory = 24i32; +pub const U_MAX_VERSION_LENGTH: u32 = 4u32; +pub const U_MAX_VERSION_STRING_LENGTH: u32 = 20u32; +pub const U_MEMORY_ALLOCATION_ERROR: UErrorCode = 7i32; +pub const U_MESSAGE_PARSE_ERROR: UErrorCode = 6i32; +pub const U_MILLIS_PER_DAY: u32 = 86400000u32; +pub const U_MILLIS_PER_HOUR: u32 = 3600000u32; +pub const U_MILLIS_PER_MINUTE: u32 = 60000u32; +pub const U_MILLIS_PER_SECOND: u32 = 1000u32; +pub const U_MISMATCHED_SEGMENT_DELIMITERS: UErrorCode = 65543i32; +pub const U_MISPLACED_ANCHOR_START: UErrorCode = 65544i32; +pub const U_MISPLACED_COMPOUND_FILTER: UErrorCode = 65558i32; +pub const U_MISPLACED_CURSOR_OFFSET: UErrorCode = 65545i32; +pub const U_MISPLACED_QUANTIFIER: UErrorCode = 65546i32; +pub const U_MISSING_OPERATOR: UErrorCode = 65547i32; +pub const U_MISSING_RESOURCE_ERROR: UErrorCode = 2i32; +pub const U_MISSING_SEGMENT_CLOSE: UErrorCode = 65548i32; +pub const U_MODIFIER_LETTER: UCharCategory = 4i32; +pub const U_MODIFIER_SYMBOL: UCharCategory = 26i32; +pub const U_MULTIPLE_ANTE_CONTEXTS: UErrorCode = 65549i32; +pub const U_MULTIPLE_COMPOUND_FILTERS: UErrorCode = 65559i32; +pub const U_MULTIPLE_CURSORS: UErrorCode = 65550i32; +pub const U_MULTIPLE_DECIMAL_SEPARATORS: UErrorCode = 65793i32; +pub const U_MULTIPLE_DECIMAL_SEPERATORS: UErrorCode = 65793i32; +pub const U_MULTIPLE_EXPONENTIAL_SYMBOLS: UErrorCode = 65794i32; +pub const U_MULTIPLE_PAD_SPECIFIERS: UErrorCode = 65798i32; +pub const U_MULTIPLE_PERCENT_SYMBOLS: UErrorCode = 65796i32; +pub const U_MULTIPLE_PERMILL_SYMBOLS: UErrorCode = 65797i32; +pub const U_MULTIPLE_POST_CONTEXTS: UErrorCode = 65551i32; +pub const U_NON_SPACING_MARK: UCharCategory = 6i32; +pub const U_NO_DEFAULT_INCLUDE_UTF_HEADERS: u32 = 1u32; +pub const U_NO_SPACE_AVAILABLE: UErrorCode = 20i32; +pub const U_NO_WRITE_PERMISSION: UErrorCode = 30i32; +pub const U_NT_DECIMAL: UNumericType = 1i32; +pub const U_NT_DIGIT: UNumericType = 2i32; +pub const U_NT_NONE: UNumericType = 0i32; +pub const U_NT_NUMERIC: UNumericType = 3i32; +pub const U_NUMBER_ARG_OUTOFBOUNDS_ERROR: UErrorCode = 65810i32; +pub const U_NUMBER_SKELETON_SYNTAX_ERROR: UErrorCode = 65811i32; +pub const U_OMIT_UNCHANGED_TEXT: u32 = 16384u32; +pub const U_OTHER_LETTER: UCharCategory = 5i32; +pub const U_OTHER_NEUTRAL: UCharDirection = 10i32; +pub const U_OTHER_NUMBER: UCharCategory = 11i32; +pub const U_OTHER_PUNCTUATION: UCharCategory = 23i32; +pub const U_OTHER_SYMBOL: UCharCategory = 27i32; +pub const U_OVERRIDE_CXX_ALLOCATION: u32 = 1u32; +pub const U_PARAGRAPH_SEPARATOR: UCharCategory = 14i32; +pub const U_PARSE_CONTEXT_LEN: i32 = 16i32; +pub const U_PARSE_ERROR: UErrorCode = 9i32; +pub const U_PARSE_ERROR_START: UErrorCode = 65536i32; +pub const U_PATTERN_SYNTAX_ERROR: UErrorCode = 65799i32; +pub const U_PF_AIX: u32 = 3100u32; +pub const U_PF_ANDROID: u32 = 4050u32; +pub const U_PF_BROWSER_NATIVE_CLIENT: u32 = 4020u32; +pub const U_PF_BSD: u32 = 3000u32; +pub const U_PF_CYGWIN: u32 = 1900u32; +pub const U_PF_DARWIN: u32 = 3500u32; +pub const U_PF_EMSCRIPTEN: u32 = 5010u32; +pub const U_PF_FUCHSIA: u32 = 4100u32; +pub const U_PF_HPUX: u32 = 2100u32; +pub const U_PF_IPHONE: u32 = 3550u32; +pub const U_PF_IRIX: u32 = 3200u32; +pub const U_PF_LINUX: u32 = 4000u32; +pub const U_PF_MINGW: u32 = 1800u32; +pub const U_PF_OS390: u32 = 9000u32; +pub const U_PF_OS400: u32 = 9400u32; +pub const U_PF_QNX: u32 = 3700u32; +pub const U_PF_SOLARIS: u32 = 2600u32; +pub const U_PF_UNKNOWN: u32 = 0u32; +pub const U_PF_WINDOWS: u32 = 1000u32; +pub const U_PLATFORM: u32 = 1800u32; +pub const U_PLATFORM_HAS_WIN32_API: u32 = 1u32; +pub const U_PLATFORM_HAS_WINUWP_API: u32 = 0u32; +pub const U_PLATFORM_IMPLEMENTS_POSIX: u32 = 0u32; +pub const U_PLATFORM_IS_DARWIN_BASED: u32 = 1u32; +pub const U_PLATFORM_IS_LINUX_BASED: u32 = 1u32; +pub const U_PLATFORM_USES_ONLY_WIN32_API: u32 = 1u32; +pub const U_PLUGIN_CHANGED_LEVEL_WARNING: UErrorCode = -120i32; +pub const U_PLUGIN_DIDNT_SET_LEVEL: UErrorCode = 66817i32; +pub const U_PLUGIN_ERROR_START: UErrorCode = 66816i32; +pub const U_PLUGIN_TOO_HIGH: UErrorCode = 66816i32; +pub const U_POP_DIRECTIONAL_FORMAT: UCharDirection = 16i32; +pub const U_POP_DIRECTIONAL_ISOLATE: UCharDirection = 22i32; +pub const U_PRIMARY_TOO_LONG_ERROR: UErrorCode = 22i32; +pub const U_PRIVATE_USE_CHAR: UCharCategory = 17i32; +pub const U_REGEX_BAD_ESCAPE_SEQUENCE: UErrorCode = 66307i32; +pub const U_REGEX_BAD_INTERVAL: UErrorCode = 66312i32; +pub const U_REGEX_ERROR_START: UErrorCode = 66304i32; +pub const U_REGEX_INTERNAL_ERROR: UErrorCode = 66304i32; +pub const U_REGEX_INVALID_BACK_REF: UErrorCode = 66314i32; +pub const U_REGEX_INVALID_CAPTURE_GROUP_NAME: UErrorCode = 66325i32; +pub const U_REGEX_INVALID_FLAG: UErrorCode = 66315i32; +pub const U_REGEX_INVALID_RANGE: UErrorCode = 66320i32; +pub const U_REGEX_INVALID_STATE: UErrorCode = 66306i32; +pub const U_REGEX_LOOK_BEHIND_LIMIT: UErrorCode = 66316i32; +pub const U_REGEX_MAX_LT_MIN: UErrorCode = 66313i32; +pub const U_REGEX_MISMATCHED_PAREN: UErrorCode = 66310i32; +pub const U_REGEX_MISSING_CLOSE_BRACKET: UErrorCode = 66319i32; +pub const U_REGEX_NUMBER_TOO_BIG: UErrorCode = 66311i32; +pub const U_REGEX_PATTERN_TOO_BIG: UErrorCode = 66324i32; +pub const U_REGEX_PROPERTY_SYNTAX: UErrorCode = 66308i32; +pub const U_REGEX_RULE_SYNTAX: UErrorCode = 66305i32; +pub const U_REGEX_SET_CONTAINS_STRING: UErrorCode = 66317i32; +pub const U_REGEX_STACK_OVERFLOW: UErrorCode = 66321i32; +pub const U_REGEX_STOPPED_BY_CALLER: UErrorCode = 66323i32; +pub const U_REGEX_TIME_OUT: UErrorCode = 66322i32; +pub const U_REGEX_UNIMPLEMENTED: UErrorCode = 66309i32; +pub const U_RESOURCE_TYPE_MISMATCH: UErrorCode = 17i32; +pub const U_RIGHT_TO_LEFT: UCharDirection = 1i32; +pub const U_RIGHT_TO_LEFT_ARABIC: UCharDirection = 13i32; +pub const U_RIGHT_TO_LEFT_EMBEDDING: UCharDirection = 14i32; +pub const U_RIGHT_TO_LEFT_ISOLATE: UCharDirection = 21i32; +pub const U_RIGHT_TO_LEFT_OVERRIDE: UCharDirection = 15i32; +pub const U_RULE_MASK_ERROR: UErrorCode = 65557i32; +pub const U_SAFECLONE_ALLOCATED_WARNING: UErrorCode = -126i32; +pub const U_SB_ATERM: USentenceBreak = 1i32; +pub const U_SB_CLOSE: USentenceBreak = 2i32; +pub const U_SB_CR: USentenceBreak = 11i32; +pub const U_SB_EXTEND: USentenceBreak = 12i32; +pub const U_SB_FORMAT: USentenceBreak = 3i32; +pub const U_SB_LF: USentenceBreak = 13i32; +pub const U_SB_LOWER: USentenceBreak = 4i32; +pub const U_SB_NUMERIC: USentenceBreak = 5i32; +pub const U_SB_OLETTER: USentenceBreak = 6i32; +pub const U_SB_OTHER: USentenceBreak = 0i32; +pub const U_SB_SCONTINUE: USentenceBreak = 14i32; +pub const U_SB_SEP: USentenceBreak = 7i32; +pub const U_SB_SP: USentenceBreak = 8i32; +pub const U_SB_STERM: USentenceBreak = 9i32; +pub const U_SB_UPPER: USentenceBreak = 10i32; +pub const U_SEGMENT_SEPARATOR: UCharDirection = 8i32; +pub const U_SENTINEL: i32 = -1i32; +pub const U_SHAPE_AGGREGATE_TASHKEEL: u32 = 16384u32; +pub const U_SHAPE_AGGREGATE_TASHKEEL_MASK: u32 = 16384u32; +pub const U_SHAPE_AGGREGATE_TASHKEEL_NOOP: u32 = 0u32; +pub const U_SHAPE_DIGITS_ALEN2AN_INIT_AL: u32 = 128u32; +pub const U_SHAPE_DIGITS_ALEN2AN_INIT_LR: u32 = 96u32; +pub const U_SHAPE_DIGITS_AN2EN: u32 = 64u32; +pub const U_SHAPE_DIGITS_EN2AN: u32 = 32u32; +pub const U_SHAPE_DIGITS_MASK: u32 = 224u32; +pub const U_SHAPE_DIGITS_NOOP: u32 = 0u32; +pub const U_SHAPE_DIGITS_RESERVED: u32 = 160u32; +pub const U_SHAPE_DIGIT_TYPE_AN: u32 = 0u32; +pub const U_SHAPE_DIGIT_TYPE_AN_EXTENDED: u32 = 256u32; +pub const U_SHAPE_DIGIT_TYPE_MASK: u32 = 768u32; +pub const U_SHAPE_DIGIT_TYPE_RESERVED: u32 = 512u32; +pub const U_SHAPE_LAMALEF_AUTO: u32 = 65536u32; +pub const U_SHAPE_LAMALEF_BEGIN: u32 = 3u32; +pub const U_SHAPE_LAMALEF_END: u32 = 2u32; +pub const U_SHAPE_LAMALEF_MASK: u32 = 65539u32; +pub const U_SHAPE_LAMALEF_NEAR: u32 = 1u32; +pub const U_SHAPE_LAMALEF_RESIZE: u32 = 0u32; +pub const U_SHAPE_LENGTH_FIXED_SPACES_AT_BEGINNING: u32 = 3u32; +pub const U_SHAPE_LENGTH_FIXED_SPACES_AT_END: u32 = 2u32; +pub const U_SHAPE_LENGTH_FIXED_SPACES_NEAR: u32 = 1u32; +pub const U_SHAPE_LENGTH_GROW_SHRINK: u32 = 0u32; +pub const U_SHAPE_LENGTH_MASK: u32 = 65539u32; +pub const U_SHAPE_LETTERS_MASK: u32 = 24u32; +pub const U_SHAPE_LETTERS_NOOP: u32 = 0u32; +pub const U_SHAPE_LETTERS_SHAPE: u32 = 8u32; +pub const U_SHAPE_LETTERS_SHAPE_TASHKEEL_ISOLATED: u32 = 24u32; +pub const U_SHAPE_LETTERS_UNSHAPE: u32 = 16u32; +pub const U_SHAPE_PRESERVE_PRESENTATION: u32 = 32768u32; +pub const U_SHAPE_PRESERVE_PRESENTATION_MASK: u32 = 32768u32; +pub const U_SHAPE_PRESERVE_PRESENTATION_NOOP: u32 = 0u32; +pub const U_SHAPE_SEEN_MASK: u32 = 7340032u32; +pub const U_SHAPE_SEEN_TWOCELL_NEAR: u32 = 2097152u32; +pub const U_SHAPE_SPACES_RELATIVE_TO_TEXT_BEGIN_END: u32 = 67108864u32; +pub const U_SHAPE_SPACES_RELATIVE_TO_TEXT_MASK: u32 = 67108864u32; +pub const U_SHAPE_TAIL_NEW_UNICODE: u32 = 134217728u32; +pub const U_SHAPE_TAIL_TYPE_MASK: u32 = 134217728u32; +pub const U_SHAPE_TASHKEEL_BEGIN: u32 = 262144u32; +pub const U_SHAPE_TASHKEEL_END: u32 = 393216u32; +pub const U_SHAPE_TASHKEEL_MASK: u32 = 917504u32; +pub const U_SHAPE_TASHKEEL_REPLACE_BY_TATWEEL: u32 = 786432u32; +pub const U_SHAPE_TASHKEEL_RESIZE: u32 = 524288u32; +pub const U_SHAPE_TEXT_DIRECTION_LOGICAL: u32 = 0u32; +pub const U_SHAPE_TEXT_DIRECTION_MASK: u32 = 4u32; +pub const U_SHAPE_TEXT_DIRECTION_VISUAL_LTR: u32 = 4u32; +pub const U_SHAPE_TEXT_DIRECTION_VISUAL_RTL: u32 = 0u32; +pub const U_SHAPE_YEHHAMZA_MASK: u32 = 58720256u32; +pub const U_SHAPE_YEHHAMZA_TWOCELL_NEAR: u32 = 16777216u32; +pub const U_SHORT_PROPERTY_NAME: UPropertyNameChoice = 0i32; +pub const U_SHOW_CPLUSPLUS_API: u32 = 0u32; +pub const U_SIZEOF_UCHAR: u32 = 2u32; +pub const U_SIZEOF_WCHAR_T: u32 = 1u32; +pub const U_SORT_KEY_TOO_SHORT_WARNING: UErrorCode = -123i32; +pub const U_SPACE_SEPARATOR: UCharCategory = 12i32; +pub const U_START_PUNCTUATION: UCharCategory = 20i32; +pub const U_STATE_OLD_WARNING: UErrorCode = -125i32; +pub const U_STATE_TOO_OLD_ERROR: UErrorCode = 23i32; +pub const U_STRINGPREP_CHECK_BIDI_ERROR: UErrorCode = 66562i32; +pub const U_STRINGPREP_PROHIBITED_ERROR: UErrorCode = 66560i32; +pub const U_STRINGPREP_UNASSIGNED_ERROR: UErrorCode = 66561i32; +pub const U_STRING_NOT_TERMINATED_WARNING: UErrorCode = -124i32; +pub const U_SURROGATE: UCharCategory = 18i32; +pub const U_TITLECASE_ADJUST_TO_CASED: u32 = 1024u32; +pub const U_TITLECASE_LETTER: UCharCategory = 3i32; +pub const U_TITLECASE_NO_BREAK_ADJUSTMENT: u32 = 512u32; +pub const U_TITLECASE_NO_LOWERCASE: u32 = 256u32; +pub const U_TITLECASE_SENTENCES: u32 = 64u32; +pub const U_TITLECASE_WHOLE_STRING: u32 = 32u32; +pub const U_TOO_MANY_ALIASES_ERROR: UErrorCode = 24i32; +pub const U_TRAILING_BACKSLASH: UErrorCode = 65552i32; +pub const U_TRUNCATED_CHAR_FOUND: UErrorCode = 11i32; +pub const U_UNASSIGNED: UCharCategory = 0i32; +pub const U_UNCLOSED_SEGMENT: UErrorCode = 65563i32; +pub const U_UNDEFINED_KEYWORD: UErrorCode = 65806i32; +pub const U_UNDEFINED_SEGMENT_REFERENCE: UErrorCode = 65553i32; +pub const U_UNDEFINED_VARIABLE: UErrorCode = 65554i32; +pub const U_UNEXPECTED_TOKEN: UErrorCode = 65792i32; +pub const U_UNICODE_CHAR_NAME: UCharNameChoice = 0i32; +pub const U_UNICODE_VERSION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("8.0"); +pub const U_UNMATCHED_BRACES: UErrorCode = 65801i32; +pub const U_UNQUOTED_SPECIAL: UErrorCode = 65555i32; +pub const U_UNSUPPORTED_ATTRIBUTE: UErrorCode = 65803i32; +pub const U_UNSUPPORTED_ERROR: UErrorCode = 16i32; +pub const U_UNSUPPORTED_ESCAPE_SEQUENCE: UErrorCode = 19i32; +pub const U_UNSUPPORTED_PROPERTY: UErrorCode = 65802i32; +pub const U_UNTERMINATED_QUOTE: UErrorCode = 65556i32; +pub const U_UPPERCASE_LETTER: UCharCategory = 1i32; +pub const U_USELESS_COLLATOR_ERROR: UErrorCode = 29i32; +pub const U_USING_DEFAULT_WARNING: UErrorCode = -127i32; +pub const U_USING_FALLBACK_WARNING: UErrorCode = -128i32; +pub const U_USING_ICU_NAMESPACE: u32 = 1u32; +pub const U_VARIABLE_RANGE_EXHAUSTED: UErrorCode = 65565i32; +pub const U_VARIABLE_RANGE_OVERLAP: UErrorCode = 65566i32; +pub const U_VO_ROTATED: UVerticalOrientation = 0i32; +pub const U_VO_TRANSFORMED_ROTATED: UVerticalOrientation = 1i32; +pub const U_VO_TRANSFORMED_UPRIGHT: UVerticalOrientation = 2i32; +pub const U_VO_UPRIGHT: UVerticalOrientation = 3i32; +pub const U_WB_ALETTER: UWordBreakValues = 1i32; +pub const U_WB_CR: UWordBreakValues = 8i32; +pub const U_WB_DOUBLE_QUOTE: UWordBreakValues = 16i32; +pub const U_WB_EXTEND: UWordBreakValues = 9i32; +pub const U_WB_EXTENDNUMLET: UWordBreakValues = 7i32; +pub const U_WB_E_BASE: UWordBreakValues = 17i32; +pub const U_WB_E_BASE_GAZ: UWordBreakValues = 18i32; +pub const U_WB_E_MODIFIER: UWordBreakValues = 19i32; +pub const U_WB_FORMAT: UWordBreakValues = 2i32; +pub const U_WB_GLUE_AFTER_ZWJ: UWordBreakValues = 20i32; +pub const U_WB_HEBREW_LETTER: UWordBreakValues = 14i32; +pub const U_WB_KATAKANA: UWordBreakValues = 3i32; +pub const U_WB_LF: UWordBreakValues = 10i32; +pub const U_WB_MIDLETTER: UWordBreakValues = 4i32; +pub const U_WB_MIDNUM: UWordBreakValues = 5i32; +pub const U_WB_MIDNUMLET: UWordBreakValues = 11i32; +pub const U_WB_NEWLINE: UWordBreakValues = 12i32; +pub const U_WB_NUMERIC: UWordBreakValues = 6i32; +pub const U_WB_OTHER: UWordBreakValues = 0i32; +pub const U_WB_REGIONAL_INDICATOR: UWordBreakValues = 13i32; +pub const U_WB_SINGLE_QUOTE: UWordBreakValues = 15i32; +pub const U_WB_WSEGSPACE: UWordBreakValues = 22i32; +pub const U_WB_ZWJ: UWordBreakValues = 21i32; +pub const U_WHITE_SPACE_NEUTRAL: UCharDirection = 9i32; +pub const U_ZERO_ERROR: UErrorCode = 0i32; +pub const VS_ALLOW_LATIN: u32 = 1u32; +pub const WC_COMPOSITECHECK: u32 = 512u32; +pub const WC_DEFAULTCHAR: u32 = 64u32; +pub const WC_DISCARDNS: u32 = 16u32; +pub const WC_ERR_INVALID_CHARS: u32 = 128u32; +pub const WC_NO_BEST_FIT_CHARS: u32 = 1024u32; +pub const WC_SEPCHARS: u32 = 32u32; +pub const WORDLIST_TYPE_ADD: WORDLIST_TYPE = 1i32; +pub const WORDLIST_TYPE_AUTOCORRECT: WORDLIST_TYPE = 3i32; +pub const WORDLIST_TYPE_EXCLUDE: WORDLIST_TYPE = 2i32; +pub const WORDLIST_TYPE_IGNORE: WORDLIST_TYPE = 0i32; +pub const sidArabic: SCRIPTCONTF = 9i32; +pub const sidArmenian: SCRIPTCONTF = 7i32; +pub const sidAsciiLatin: SCRIPTCONTF = 3i32; +pub const sidAsciiSym: SCRIPTCONTF = 2i32; +pub const sidBengali: SCRIPTCONTF = 11i32; +pub const sidBopomofo: SCRIPTCONTF = 25i32; +pub const sidBraille: SCRIPTCONTF = 31i32; +pub const sidBurmese: SCRIPTCONTF = 36i32; +pub const sidCanSyllabic: SCRIPTCONTF = 28i32; +pub const sidCherokee: SCRIPTCONTF = 29i32; +pub const sidCyrillic: SCRIPTCONTF = 6i32; +pub const sidDefault: SCRIPTCONTF = 0i32; +pub const sidDevanagari: SCRIPTCONTF = 10i32; +pub const sidEthiopic: SCRIPTCONTF = 27i32; +pub const sidFEFirst: SCRIPTCONTF = 23i32; +pub const sidFELast: SCRIPTCONTF = 26i32; +pub const sidGeorgian: SCRIPTCONTF = 22i32; +pub const sidGreek: SCRIPTCONTF = 5i32; +pub const sidGujarati: SCRIPTCONTF = 13i32; +pub const sidGurmukhi: SCRIPTCONTF = 12i32; +pub const sidHan: SCRIPTCONTF = 26i32; +pub const sidHangul: SCRIPTCONTF = 23i32; +pub const sidHebrew: SCRIPTCONTF = 8i32; +pub const sidKana: SCRIPTCONTF = 24i32; +pub const sidKannada: SCRIPTCONTF = 17i32; +pub const sidKhmer: SCRIPTCONTF = 37i32; +pub const sidLao: SCRIPTCONTF = 20i32; +pub const sidLatin: SCRIPTCONTF = 4i32; +pub const sidLim: SCRIPTCONTF = 41i32; +pub const sidMalayalam: SCRIPTCONTF = 18i32; +pub const sidMerge: SCRIPTCONTF = 1i32; +pub const sidMongolian: SCRIPTCONTF = 39i32; +pub const sidOgham: SCRIPTCONTF = 33i32; +pub const sidOriya: SCRIPTCONTF = 14i32; +pub const sidRunic: SCRIPTCONTF = 32i32; +pub const sidSinhala: SCRIPTCONTF = 34i32; +pub const sidSyriac: SCRIPTCONTF = 35i32; +pub const sidTamil: SCRIPTCONTF = 15i32; +pub const sidTelugu: SCRIPTCONTF = 16i32; +pub const sidThaana: SCRIPTCONTF = 38i32; +pub const sidThai: SCRIPTCONTF = 19i32; +pub const sidTibetan: SCRIPTCONTF = 21i32; +pub const sidUserDefined: SCRIPTCONTF = 40i32; +pub const sidYi: SCRIPTCONTF = 30i32; +pub type COMPARESTRING_RESULT = i32; +pub type COMPARE_STRING_FLAGS = u32; +pub type CORRECTIVE_ACTION = i32; +pub type ENUM_DATE_FORMATS_FLAGS = u32; +pub type ENUM_SYSTEM_CODE_PAGES_FLAGS = u32; +pub type ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS = u32; +pub type FOLD_STRING_MAP_FLAGS = u32; +pub type IS_TEXT_UNICODE_RESULT = u32; +pub type IS_VALID_LOCALE_FLAGS = u32; +pub type MIMECONTF = i32; +pub type MLCONVCHAR = i32; +pub type MLCP = i32; +pub type MLDETECTCP = i32; +pub type MLSTR_FLAGS = i32; +pub type MULTI_BYTE_TO_WIDE_CHAR_FLAGS = u32; +pub type NORM_FORM = i32; +pub type SCRIPTCONTF = i32; +pub type SCRIPTFONTCONTF = i32; +pub type SCRIPT_IS_COMPLEX_FLAGS = u32; +pub type SCRIPT_JUSTIFY = i32; +pub type SYSGEOCLASS = i32; +pub type SYSGEOTYPE = i32; +pub type SYSNLS_FUNCTION = i32; +pub type TIME_FORMAT_FLAGS = u32; +pub type TRANSLATE_CHARSET_INFO_FLAGS = u32; +pub type UAcceptResult = i32; +pub type UAlphabeticIndexLabelType = i32; +pub type UBiDiDirection = i32; +pub type UBiDiMirroring = i32; +pub type UBiDiOrder = i32; +pub type UBiDiReorderingMode = i32; +pub type UBiDiReorderingOption = i32; +pub type UBidiPairedBracketType = i32; +pub type UBlockCode = i32; +pub type UBreakIteratorType = i32; +pub type UCPMapRangeOption = i32; +pub type UCPTrieType = i32; +pub type UCPTrieValueWidth = i32; +pub type UCalendarAMPMs = i32; +pub type UCalendarAttribute = i32; +pub type UCalendarDateFields = i32; +pub type UCalendarDaysOfWeek = i32; +pub type UCalendarDisplayNameType = i32; +pub type UCalendarLimitType = i32; +pub type UCalendarMonths = i32; +pub type UCalendarType = i32; +pub type UCalendarWallTimeOption = i32; +pub type UCalendarWeekdayType = i32; +pub type UCharCategory = i32; +pub type UCharDirection = i32; +pub type UCharIteratorOrigin = i32; +pub type UCharNameChoice = i32; +pub type UColAttribute = i32; +pub type UColAttributeValue = i32; +pub type UColBoundMode = i32; +pub type UColReorderCode = i32; +pub type UColRuleOption = i32; +pub type UCollationResult = i32; +pub type UConverterCallbackReason = i32; +pub type UConverterPlatform = i32; +pub type UConverterType = i32; +pub type UConverterUnicodeSet = i32; +pub type UCurrCurrencyType = i32; +pub type UCurrNameStyle = i32; +pub type UCurrencySpacing = i32; +pub type UCurrencyUsage = i32; +pub type UDateAbsoluteUnit = i32; +pub type UDateDirection = i32; +pub type UDateFormatBooleanAttribute = i32; +pub type UDateFormatField = i32; +pub type UDateFormatStyle = i32; +pub type UDateFormatSymbolType = i32; +pub type UDateRelativeDateTimeFormatterStyle = i32; +pub type UDateRelativeUnit = i32; +pub type UDateTimePGDisplayWidth = i32; +pub type UDateTimePatternConflict = i32; +pub type UDateTimePatternField = i32; +pub type UDateTimePatternMatchOptions = i32; +pub type UDateTimeScale = i32; +pub type UDecompositionType = i32; +pub type UDialectHandling = i32; +pub type UDisplayContext = i32; +pub type UDisplayContextType = i32; +pub type UEastAsianWidth = i32; +pub type UErrorCode = i32; +pub type UFieldCategory = i32; +pub type UFormattableType = i32; +pub type UGender = i32; +pub type UGraphemeClusterBreak = i32; +pub type UHangulSyllableType = i32; +pub type UIndicPositionalCategory = i32; +pub type UIndicSyllabicCategory = i32; +pub type UJoiningGroup = i32; +pub type UJoiningType = i32; +pub type ULayoutType = i32; +pub type ULineBreak = i32; +pub type ULineBreakTag = i32; +pub type UListFormatterField = i32; +pub type UListFormatterType = i32; +pub type UListFormatterWidth = i32; +pub type ULocAvailableType = i32; +pub type ULocDataLocaleType = i32; +pub type ULocaleDataDelimiterType = i32; +pub type ULocaleDataExemplarSetType = i32; +pub type UMeasureFormatWidth = i32; +pub type UMeasurementSystem = i32; +pub type UMessagePatternApostropheMode = i32; +pub type UMessagePatternArgType = i32; +pub type UMessagePatternPartType = i32; +pub type UNormalization2Mode = i32; +pub type UNormalizationCheckResult = i32; +pub type UNormalizationMode = i32; +pub type UNumberCompactStyle = i32; +pub type UNumberDecimalSeparatorDisplay = i32; +pub type UNumberFormatAttribute = i32; +pub type UNumberFormatAttributeValue = i32; +pub type UNumberFormatFields = i32; +pub type UNumberFormatPadPosition = i32; +pub type UNumberFormatRoundingMode = i32; +pub type UNumberFormatStyle = i32; +pub type UNumberFormatSymbol = i32; +pub type UNumberFormatTextAttribute = i32; +pub type UNumberGroupingStrategy = i32; +pub type UNumberRangeCollapse = i32; +pub type UNumberRangeIdentityFallback = i32; +pub type UNumberRangeIdentityResult = i32; +pub type UNumberSignDisplay = i32; +pub type UNumberUnitWidth = i32; +pub type UNumericType = i32; +pub type UPluralType = i32; +pub type UProperty = i32; +pub type UPropertyNameChoice = i32; +pub type URegexpFlag = i32; +pub type URegionType = i32; +pub type URelativeDateTimeFormatterField = i32; +pub type URelativeDateTimeUnit = i32; +pub type UResType = i32; +pub type URestrictionLevel = i32; +pub type UScriptCode = i32; +pub type UScriptUsage = i32; +pub type USearchAttribute = i32; +pub type USearchAttributeValue = i32; +pub type USentenceBreak = i32; +pub type USentenceBreakTag = i32; +pub type USetSpanCondition = i32; +pub type USpoofChecks = i32; +pub type UStringPrepProfileType = i32; +pub type UStringTrieBuildOption = i32; +pub type UStringTrieResult = i32; +pub type USystemTimeZoneType = i32; +pub type UTimeScaleValue = i32; +pub type UTimeZoneFormatGMTOffsetPatternType = i32; +pub type UTimeZoneFormatParseOption = i32; +pub type UTimeZoneFormatStyle = i32; +pub type UTimeZoneFormatTimeType = i32; +pub type UTimeZoneNameType = i32; +pub type UTimeZoneTransitionType = i32; +pub type UTraceFunctionNumber = i32; +pub type UTraceLevel = i32; +pub type UTransDirection = i32; +pub type UVerticalOrientation = i32; +pub type UWordBreak = i32; +pub type UWordBreakValues = i32; +pub type WORDLIST_TYPE = i32; +#[repr(C)] +pub struct CHARSETINFO { + pub ciCharset: u32, + pub ciACP: u32, + pub fs: FONTSIGNATURE, +} +impl ::core::marker::Copy for CHARSETINFO {} +impl ::core::clone::Clone for CHARSETINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CPINFO { + pub MaxCharSize: u32, + pub DefaultChar: [u8; 2], + pub LeadByte: [u8; 12], +} +impl ::core::marker::Copy for CPINFO {} +impl ::core::clone::Clone for CPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CPINFOEXA { + pub MaxCharSize: u32, + pub DefaultChar: [u8; 2], + pub LeadByte: [u8; 12], + pub UnicodeDefaultChar: u16, + pub CodePage: u32, + pub CodePageName: [u8; 260], +} +impl ::core::marker::Copy for CPINFOEXA {} +impl ::core::clone::Clone for CPINFOEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CPINFOEXW { + pub MaxCharSize: u32, + pub DefaultChar: [u8; 2], + pub LeadByte: [u8; 12], + pub UnicodeDefaultChar: u16, + pub CodePage: u32, + pub CodePageName: [u16; 260], +} +impl ::core::marker::Copy for CPINFOEXW {} +impl ::core::clone::Clone for CPINFOEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CURRENCYFMTA { + pub NumDigits: u32, + pub LeadingZero: u32, + pub Grouping: u32, + pub lpDecimalSep: ::windows_sys::core::PSTR, + pub lpThousandSep: ::windows_sys::core::PSTR, + pub NegativeOrder: u32, + pub PositiveOrder: u32, + pub lpCurrencySymbol: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for CURRENCYFMTA {} +impl ::core::clone::Clone for CURRENCYFMTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CURRENCYFMTW { + pub NumDigits: u32, + pub LeadingZero: u32, + pub Grouping: u32, + pub lpDecimalSep: ::windows_sys::core::PWSTR, + pub lpThousandSep: ::windows_sys::core::PWSTR, + pub NegativeOrder: u32, + pub PositiveOrder: u32, + pub lpCurrencySymbol: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CURRENCYFMTW {} +impl ::core::clone::Clone for CURRENCYFMTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DetectEncodingInfo { + pub nLangID: u32, + pub nCodePage: u32, + pub nDocPercent: i32, + pub nConfidence: i32, +} +impl ::core::marker::Copy for DetectEncodingInfo {} +impl ::core::clone::Clone for DetectEncodingInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct ENUMTEXTMETRICA { + pub etmNewTextMetricEx: NEWTEXTMETRICEXA, + pub etmAxesList: super::Graphics::Gdi::AXESLISTA, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for ENUMTEXTMETRICA {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for ENUMTEXTMETRICA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct ENUMTEXTMETRICW { + pub etmNewTextMetricEx: NEWTEXTMETRICEXW, + pub etmAxesList: super::Graphics::Gdi::AXESLISTW, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for ENUMTEXTMETRICW {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for ENUMTEXTMETRICW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILEMUIINFO { + pub dwSize: u32, + pub dwVersion: u32, + pub dwFileType: u32, + pub pChecksum: [u8; 16], + pub pServiceChecksum: [u8; 16], + pub dwLanguageNameOffset: u32, + pub dwTypeIDMainSize: u32, + pub dwTypeIDMainOffset: u32, + pub dwTypeNameMainOffset: u32, + pub dwTypeIDMUISize: u32, + pub dwTypeIDMUIOffset: u32, + pub dwTypeNameMUIOffset: u32, + pub abBuffer: [u8; 8], +} +impl ::core::marker::Copy for FILEMUIINFO {} +impl ::core::clone::Clone for FILEMUIINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FONTSIGNATURE { + pub fsUsb: [u32; 4], + pub fsCsb: [u32; 2], +} +impl ::core::marker::Copy for FONTSIGNATURE {} +impl ::core::clone::Clone for FONTSIGNATURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOFFSET { + pub du: i32, + pub dv: i32, +} +impl ::core::marker::Copy for GOFFSET {} +impl ::core::clone::Clone for GOFFSET { + fn clone(&self) -> Self { + *self + } +} +pub type HIMC = isize; +pub type HIMCC = isize; +pub type HSAVEDUILANGUAGES = isize; +#[repr(C)] +pub struct LOCALESIGNATURE { + pub lsUsb: [u32; 4], + pub lsCsbDefault: [u32; 2], + pub lsCsbSupported: [u32; 2], +} +impl ::core::marker::Copy for LOCALESIGNATURE {} +impl ::core::clone::Clone for LOCALESIGNATURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MAPPING_DATA_RANGE { + pub dwStartIndex: u32, + pub dwEndIndex: u32, + pub pszDescription: ::windows_sys::core::PWSTR, + pub dwDescriptionLength: u32, + pub pData: *mut ::core::ffi::c_void, + pub dwDataSize: u32, + pub pszContentType: ::windows_sys::core::PWSTR, + pub prgActionIds: *mut ::windows_sys::core::PWSTR, + pub dwActionsCount: u32, + pub prgActionDisplayNames: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for MAPPING_DATA_RANGE {} +impl ::core::clone::Clone for MAPPING_DATA_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MAPPING_ENUM_OPTIONS { + pub Size: usize, + pub pszCategory: ::windows_sys::core::PWSTR, + pub pszInputLanguage: ::windows_sys::core::PWSTR, + pub pszOutputLanguage: ::windows_sys::core::PWSTR, + pub pszInputScript: ::windows_sys::core::PWSTR, + pub pszOutputScript: ::windows_sys::core::PWSTR, + pub pszInputContentType: ::windows_sys::core::PWSTR, + pub pszOutputContentType: ::windows_sys::core::PWSTR, + pub pGuid: *mut ::windows_sys::core::GUID, + pub _bitfield: u32, +} +impl ::core::marker::Copy for MAPPING_ENUM_OPTIONS {} +impl ::core::clone::Clone for MAPPING_ENUM_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MAPPING_OPTIONS { + pub Size: usize, + pub pszInputLanguage: ::windows_sys::core::PWSTR, + pub pszOutputLanguage: ::windows_sys::core::PWSTR, + pub pszInputScript: ::windows_sys::core::PWSTR, + pub pszOutputScript: ::windows_sys::core::PWSTR, + pub pszInputContentType: ::windows_sys::core::PWSTR, + pub pszOutputContentType: ::windows_sys::core::PWSTR, + pub pszUILanguage: ::windows_sys::core::PWSTR, + pub pfnRecognizeCallback: PFN_MAPPINGCALLBACKPROC, + pub pRecognizeCallerData: *mut ::core::ffi::c_void, + pub dwRecognizeCallerDataSize: u32, + pub pfnActionCallback: PFN_MAPPINGCALLBACKPROC, + pub pActionCallerData: *mut ::core::ffi::c_void, + pub dwActionCallerDataSize: u32, + pub dwServiceFlag: u32, + pub _bitfield: u32, +} +impl ::core::marker::Copy for MAPPING_OPTIONS {} +impl ::core::clone::Clone for MAPPING_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MAPPING_PROPERTY_BAG { + pub Size: usize, + pub prgResultRanges: *mut MAPPING_DATA_RANGE, + pub dwRangesCount: u32, + pub pServiceData: *mut ::core::ffi::c_void, + pub dwServiceDataSize: u32, + pub pCallerData: *mut ::core::ffi::c_void, + pub dwCallerDataSize: u32, + pub pContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for MAPPING_PROPERTY_BAG {} +impl ::core::clone::Clone for MAPPING_PROPERTY_BAG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MAPPING_SERVICE_INFO { + pub Size: usize, + pub pszCopyright: ::windows_sys::core::PWSTR, + pub wMajorVersion: u16, + pub wMinorVersion: u16, + pub wBuildVersion: u16, + pub wStepVersion: u16, + pub dwInputContentTypesCount: u32, + pub prgInputContentTypes: *mut ::windows_sys::core::PWSTR, + pub dwOutputContentTypesCount: u32, + pub prgOutputContentTypes: *mut ::windows_sys::core::PWSTR, + pub dwInputLanguagesCount: u32, + pub prgInputLanguages: *mut ::windows_sys::core::PWSTR, + pub dwOutputLanguagesCount: u32, + pub prgOutputLanguages: *mut ::windows_sys::core::PWSTR, + pub dwInputScriptsCount: u32, + pub prgInputScripts: *mut ::windows_sys::core::PWSTR, + pub dwOutputScriptsCount: u32, + pub prgOutputScripts: *mut ::windows_sys::core::PWSTR, + pub guid: ::windows_sys::core::GUID, + pub pszCategory: ::windows_sys::core::PWSTR, + pub pszDescription: ::windows_sys::core::PWSTR, + pub dwPrivateDataSize: u32, + pub pPrivateData: *mut ::core::ffi::c_void, + pub pContext: *mut ::core::ffi::c_void, + pub _bitfield: u32, +} +impl ::core::marker::Copy for MAPPING_SERVICE_INFO {} +impl ::core::clone::Clone for MAPPING_SERVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIMECPINFO { + pub dwFlags: u32, + pub uiCodePage: u32, + pub uiFamilyCodePage: u32, + pub wszDescription: [u16; 64], + pub wszWebCharset: [u16; 50], + pub wszHeaderCharset: [u16; 50], + pub wszBodyCharset: [u16; 50], + pub wszFixedWidthFont: [u16; 32], + pub wszProportionalFont: [u16; 32], + pub bGDICharset: u8, +} +impl ::core::marker::Copy for MIMECPINFO {} +impl ::core::clone::Clone for MIMECPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIMECSETINFO { + pub uiCodePage: u32, + pub uiInternetEncoding: u32, + pub wszCharset: [u16; 50], +} +impl ::core::marker::Copy for MIMECSETINFO {} +impl ::core::clone::Clone for MIMECSETINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct NEWTEXTMETRICEXA { + pub ntmTm: super::Graphics::Gdi::NEWTEXTMETRICA, + pub ntmFontSig: FONTSIGNATURE, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for NEWTEXTMETRICEXA {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for NEWTEXTMETRICEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct NEWTEXTMETRICEXW { + pub ntmTm: super::Graphics::Gdi::NEWTEXTMETRICW, + pub ntmFontSig: FONTSIGNATURE, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for NEWTEXTMETRICEXW {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for NEWTEXTMETRICEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NLSVERSIONINFO { + pub dwNLSVersionInfoSize: u32, + pub dwNLSVersion: u32, + pub dwDefinedVersion: u32, + pub dwEffectiveId: u32, + pub guidCustomVersion: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NLSVERSIONINFO {} +impl ::core::clone::Clone for NLSVERSIONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NLSVERSIONINFOEX { + pub dwNLSVersionInfoSize: u32, + pub dwNLSVersion: u32, + pub dwDefinedVersion: u32, + pub dwEffectiveId: u32, + pub guidCustomVersion: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NLSVERSIONINFOEX {} +impl ::core::clone::Clone for NLSVERSIONINFOEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NUMBERFMTA { + pub NumDigits: u32, + pub LeadingZero: u32, + pub Grouping: u32, + pub lpDecimalSep: ::windows_sys::core::PSTR, + pub lpThousandSep: ::windows_sys::core::PSTR, + pub NegativeOrder: u32, +} +impl ::core::marker::Copy for NUMBERFMTA {} +impl ::core::clone::Clone for NUMBERFMTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NUMBERFMTW { + pub NumDigits: u32, + pub LeadingZero: u32, + pub Grouping: u32, + pub lpDecimalSep: ::windows_sys::core::PWSTR, + pub lpThousandSep: ::windows_sys::core::PWSTR, + pub NegativeOrder: u32, +} +impl ::core::marker::Copy for NUMBERFMTW {} +impl ::core::clone::Clone for NUMBERFMTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OPENTYPE_FEATURE_RECORD { + pub tagFeature: u32, + pub lParameter: i32, +} +impl ::core::marker::Copy for OPENTYPE_FEATURE_RECORD {} +impl ::core::clone::Clone for OPENTYPE_FEATURE_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RFC1766INFO { + pub lcid: u32, + pub wszRfc1766: [u16; 6], + pub wszLocaleName: [u16; 32], +} +impl ::core::marker::Copy for RFC1766INFO {} +impl ::core::clone::Clone for RFC1766INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPTFONTINFO { + pub scripts: i64, + pub wszFont: [u16; 32], +} +impl ::core::marker::Copy for SCRIPTFONTINFO {} +impl ::core::clone::Clone for SCRIPTFONTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPTINFO { + pub ScriptId: u8, + pub uiCodePage: u32, + pub wszDescription: [u16; 48], + pub wszFixedWidthFont: [u16; 32], + pub wszProportionalFont: [u16; 32], +} +impl ::core::marker::Copy for SCRIPTINFO {} +impl ::core::clone::Clone for SCRIPTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPT_ANALYSIS { + pub _bitfield: u16, + pub s: SCRIPT_STATE, +} +impl ::core::marker::Copy for SCRIPT_ANALYSIS {} +impl ::core::clone::Clone for SCRIPT_ANALYSIS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPT_CHARPROP { + pub _bitfield: u16, +} +impl ::core::marker::Copy for SCRIPT_CHARPROP {} +impl ::core::clone::Clone for SCRIPT_CHARPROP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPT_CONTROL { + pub _bitfield: u32, +} +impl ::core::marker::Copy for SCRIPT_CONTROL {} +impl ::core::clone::Clone for SCRIPT_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPT_DIGITSUBSTITUTE { + pub _bitfield1: u32, + pub _bitfield2: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for SCRIPT_DIGITSUBSTITUTE {} +impl ::core::clone::Clone for SCRIPT_DIGITSUBSTITUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPT_FONTPROPERTIES { + pub cBytes: i32, + pub wgBlank: u16, + pub wgDefault: u16, + pub wgInvalid: u16, + pub wgKashida: u16, + pub iKashidaWidth: i32, +} +impl ::core::marker::Copy for SCRIPT_FONTPROPERTIES {} +impl ::core::clone::Clone for SCRIPT_FONTPROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPT_GLYPHPROP { + pub sva: SCRIPT_VISATTR, + pub reserved: u16, +} +impl ::core::marker::Copy for SCRIPT_GLYPHPROP {} +impl ::core::clone::Clone for SCRIPT_GLYPHPROP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPT_ITEM { + pub iCharPos: i32, + pub a: SCRIPT_ANALYSIS, +} +impl ::core::marker::Copy for SCRIPT_ITEM {} +impl ::core::clone::Clone for SCRIPT_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPT_LOGATTR { + pub _bitfield: u8, +} +impl ::core::marker::Copy for SCRIPT_LOGATTR {} +impl ::core::clone::Clone for SCRIPT_LOGATTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPT_PROPERTIES { + pub _bitfield1: u32, + pub _bitfield2: u32, +} +impl ::core::marker::Copy for SCRIPT_PROPERTIES {} +impl ::core::clone::Clone for SCRIPT_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPT_STATE { + pub _bitfield: u16, +} +impl ::core::marker::Copy for SCRIPT_STATE {} +impl ::core::clone::Clone for SCRIPT_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPT_TABDEF { + pub cTabStops: i32, + pub iScale: i32, + pub pTabStops: *mut i32, + pub iTabOrigin: i32, +} +impl ::core::marker::Copy for SCRIPT_TABDEF {} +impl ::core::clone::Clone for SCRIPT_TABDEF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRIPT_VISATTR { + pub _bitfield: u16, +} +impl ::core::marker::Copy for SCRIPT_VISATTR {} +impl ::core::clone::Clone for SCRIPT_VISATTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TEXTRANGE_PROPERTIES { + pub potfRecords: *mut OPENTYPE_FEATURE_RECORD, + pub cotfRecords: i32, +} +impl ::core::marker::Copy for TEXTRANGE_PROPERTIES {} +impl ::core::clone::Clone for TEXTRANGE_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +pub type UBiDi = isize; +pub type UBiDiTransform = isize; +pub type UBreakIterator = isize; +pub type UCPMap = isize; +#[repr(C)] +pub struct UCPTrie { + pub index: *const u16, + pub data: UCPTrieData, + pub indexLength: i32, + pub dataLength: i32, + pub highStart: i32, + pub shifted12HighStart: u16, + pub r#type: i8, + pub valueWidth: i8, + pub reserved32: u32, + pub reserved16: u16, + pub index3NullOffset: u16, + pub dataNullOffset: i32, + pub nullValue: u32, +} +impl ::core::marker::Copy for UCPTrie {} +impl ::core::clone::Clone for UCPTrie { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union UCPTrieData { + pub ptr0: *const ::core::ffi::c_void, + pub ptr16: *const u16, + pub ptr32: *const u32, + pub ptr8: *const u8, +} +impl ::core::marker::Copy for UCPTrieData {} +impl ::core::clone::Clone for UCPTrieData { + fn clone(&self) -> Self { + *self + } +} +pub type UCaseMap = isize; +#[repr(C)] +pub struct UCharIterator { + pub context: *const ::core::ffi::c_void, + pub length: i32, + pub start: i32, + pub index: i32, + pub limit: i32, + pub reservedField: i32, + pub getIndex: UCharIteratorGetIndex, + pub r#move: UCharIteratorMove, + pub hasNext: UCharIteratorHasNext, + pub hasPrevious: UCharIteratorHasPrevious, + pub current: UCharIteratorCurrent, + pub next: UCharIteratorNext, + pub previous: UCharIteratorPrevious, + pub reservedFn: UCharIteratorReserved, + pub getState: UCharIteratorGetState, + pub setState: UCharIteratorSetState, +} +impl ::core::marker::Copy for UCharIterator {} +impl ::core::clone::Clone for UCharIterator { + fn clone(&self) -> Self { + *self + } +} +pub type UCharsetDetector = isize; +pub type UCharsetMatch = isize; +pub type UCollationElements = isize; +pub type UCollator = isize; +pub type UConstrainedFieldPosition = isize; +pub type UConverter = isize; +#[repr(C)] +pub struct UConverterFromUnicodeArgs { + pub size: u16, + pub flush: i8, + pub converter: *mut UConverter, + pub source: *const u16, + pub sourceLimit: *const u16, + pub target: ::windows_sys::core::PSTR, + pub targetLimit: ::windows_sys::core::PCSTR, + pub offsets: *mut i32, +} +impl ::core::marker::Copy for UConverterFromUnicodeArgs {} +impl ::core::clone::Clone for UConverterFromUnicodeArgs { + fn clone(&self) -> Self { + *self + } +} +pub type UConverterSelector = isize; +#[repr(C)] +pub struct UConverterToUnicodeArgs { + pub size: u16, + pub flush: i8, + pub converter: *mut UConverter, + pub source: ::windows_sys::core::PCSTR, + pub sourceLimit: ::windows_sys::core::PCSTR, + pub target: *mut u16, + pub targetLimit: *const u16, + pub offsets: *mut i32, +} +impl ::core::marker::Copy for UConverterToUnicodeArgs {} +impl ::core::clone::Clone for UConverterToUnicodeArgs { + fn clone(&self) -> Self { + *self + } +} +pub type UDateFormatSymbols = isize; +pub type UDateIntervalFormat = isize; +pub type UEnumeration = isize; +#[repr(C)] +pub struct UFieldPosition { + pub field: i32, + pub beginIndex: i32, + pub endIndex: i32, +} +impl ::core::marker::Copy for UFieldPosition {} +impl ::core::clone::Clone for UFieldPosition { + fn clone(&self) -> Self { + *self + } +} +pub type UFieldPositionIterator = isize; +pub type UFormattedDateInterval = isize; +pub type UFormattedList = isize; +pub type UFormattedNumber = isize; +pub type UFormattedNumberRange = isize; +pub type UFormattedRelativeDateTime = isize; +pub type UFormattedValue = isize; +pub type UGenderInfo = isize; +pub type UHashtable = isize; +pub type UIDNA = isize; +#[repr(C)] +pub struct UIDNAInfo { + pub size: i16, + pub isTransitionalDifferent: i8, + pub reservedB3: i8, + pub errors: u32, + pub reservedI2: i32, + pub reservedI3: i32, +} +impl ::core::marker::Copy for UIDNAInfo {} +impl ::core::clone::Clone for UIDNAInfo { + fn clone(&self) -> Self { + *self + } +} +pub type UListFormatter = isize; +pub type ULocaleData = isize; +pub type ULocaleDisplayNames = isize; +pub type UMutableCPTrie = isize; +#[repr(C)] +pub struct UNICODERANGE { + pub wcFrom: u16, + pub wcTo: u16, +} +impl ::core::marker::Copy for UNICODERANGE {} +impl ::core::clone::Clone for UNICODERANGE { + fn clone(&self) -> Self { + *self + } +} +pub type UNormalizer2 = isize; +pub type UNumberFormatter = isize; +pub type UNumberingSystem = isize; +#[repr(C)] +pub struct UParseError { + pub line: i32, + pub offset: i32, + pub preContext: [u16; 16], + pub postContext: [u16; 16], +} +impl ::core::marker::Copy for UParseError {} +impl ::core::clone::Clone for UParseError { + fn clone(&self) -> Self { + *self + } +} +pub type UPluralRules = isize; +pub type URegion = isize; +pub type URegularExpression = isize; +pub type URelativeDateTimeFormatter = isize; +#[repr(C)] +pub struct UReplaceableCallbacks { + pub length: isize, + pub charAt: isize, + pub char32At: isize, + pub replace: isize, + pub extract: isize, + pub copy: isize, +} +impl ::core::marker::Copy for UReplaceableCallbacks {} +impl ::core::clone::Clone for UReplaceableCallbacks { + fn clone(&self) -> Self { + *self + } +} +pub type UResourceBundle = isize; +pub type USearch = isize; +#[repr(C)] +pub struct USerializedSet { + pub array: *const u16, + pub bmpLength: i32, + pub length: i32, + pub staticArray: [u16; 8], +} +impl ::core::marker::Copy for USerializedSet {} +impl ::core::clone::Clone for USerializedSet { + fn clone(&self) -> Self { + *self + } +} +pub type USet = isize; +pub type USpoofCheckResult = isize; +pub type USpoofChecker = isize; +pub type UStringPrepProfile = isize; +pub type UStringSearch = isize; +#[repr(C)] +pub struct UText { + pub magic: u32, + pub flags: i32, + pub providerProperties: i32, + pub sizeOfStruct: i32, + pub chunkNativeLimit: i64, + pub extraSize: i32, + pub nativeIndexingLimit: i32, + pub chunkNativeStart: i64, + pub chunkOffset: i32, + pub chunkLength: i32, + pub chunkContents: *const u16, + pub pFuncs: *const UTextFuncs, + pub pExtra: *mut ::core::ffi::c_void, + pub context: *const ::core::ffi::c_void, + pub p: *const ::core::ffi::c_void, + pub q: *const ::core::ffi::c_void, + pub r: *const ::core::ffi::c_void, + pub privP: *mut ::core::ffi::c_void, + pub a: i64, + pub b: i32, + pub c: i32, + pub privA: i64, + pub privB: i32, + pub privC: i32, +} +impl ::core::marker::Copy for UText {} +impl ::core::clone::Clone for UText { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UTextFuncs { + pub tableSize: i32, + pub reserved1: i32, + pub reserved2: i32, + pub reserved3: i32, + pub clone: UTextClone, + pub nativeLength: UTextNativeLength, + pub access: UTextAccess, + pub extract: UTextExtract, + pub replace: UTextReplace, + pub copy: UTextCopy, + pub mapOffsetToNative: UTextMapOffsetToNative, + pub mapNativeIndexToUTF16: UTextMapNativeIndexToUTF16, + pub close: UTextClose, + pub spare1: UTextClose, + pub spare2: UTextClose, + pub spare3: UTextClose, +} +impl ::core::marker::Copy for UTextFuncs {} +impl ::core::clone::Clone for UTextFuncs { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UTransPosition { + pub contextStart: i32, + pub contextLimit: i32, + pub start: i32, + pub limit: i32, +} +impl ::core::marker::Copy for UTransPosition {} +impl ::core::clone::Clone for UTransPosition { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CALINFO_ENUMPROCA = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CALINFO_ENUMPROCEXA = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CALINFO_ENUMPROCEXEX = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CALINFO_ENUMPROCEXW = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CALINFO_ENUMPROCW = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CODEPAGE_ENUMPROCA = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CODEPAGE_ENUMPROCW = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DATEFMT_ENUMPROCA = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DATEFMT_ENUMPROCEXA = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DATEFMT_ENUMPROCEXEX = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DATEFMT_ENUMPROCEXW = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DATEFMT_ENUMPROCW = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type GEO_ENUMNAMEPROC = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type GEO_ENUMPROC = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LANGGROUPLOCALE_ENUMPROCA = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LANGGROUPLOCALE_ENUMPROCW = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LANGUAGEGROUP_ENUMPROCA = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LANGUAGEGROUP_ENUMPROCW = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LOCALE_ENUMPROCA = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LOCALE_ENUMPROCEX = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LOCALE_ENUMPROCW = ::core::option::Option super::Foundation::BOOL>; +pub type PFN_MAPPINGCALLBACKPROC = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type TIMEFMT_ENUMPROCA = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type TIMEFMT_ENUMPROCEX = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type TIMEFMT_ENUMPROCW = ::core::option::Option super::Foundation::BOOL>; +pub type UBiDiClassCallback = ::core::option::Option UCharDirection>; +pub type UCPMapValueFilter = ::core::option::Option u32>; +pub type UCharEnumTypeRange = ::core::option::Option i8>; +pub type UCharIteratorCurrent = ::core::option::Option i32>; +pub type UCharIteratorGetIndex = ::core::option::Option i32>; +pub type UCharIteratorGetState = ::core::option::Option u32>; +pub type UCharIteratorHasNext = ::core::option::Option i8>; +pub type UCharIteratorHasPrevious = ::core::option::Option i8>; +pub type UCharIteratorMove = ::core::option::Option i32>; +pub type UCharIteratorNext = ::core::option::Option i32>; +pub type UCharIteratorPrevious = ::core::option::Option i32>; +pub type UCharIteratorReserved = ::core::option::Option i32>; +pub type UCharIteratorSetState = ::core::option::Option ()>; +pub type UConverterFromUCallback = ::core::option::Option ()>; +pub type UConverterToUCallback = ::core::option::Option ()>; +pub type UEnumCharNamesFn = ::core::option::Option i8>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type UILANGUAGE_ENUMPROCA = ::core::option::Option super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type UILANGUAGE_ENUMPROCW = ::core::option::Option super::Foundation::BOOL>; +pub type UMemAllocFn = ::core::option::Option *mut ::core::ffi::c_void>; +pub type UMemFreeFn = ::core::option::Option ()>; +pub type UMemReallocFn = ::core::option::Option *mut ::core::ffi::c_void>; +pub type UNESCAPE_CHAR_AT = ::core::option::Option u16>; +pub type URegexFindProgressCallback = ::core::option::Option i8>; +pub type URegexMatchCallback = ::core::option::Option i8>; +pub type UStringCaseMapper = ::core::option::Option i32>; +pub type UTextAccess = ::core::option::Option i8>; +pub type UTextClone = ::core::option::Option *mut UText>; +pub type UTextClose = ::core::option::Option ()>; +pub type UTextCopy = ::core::option::Option ()>; +pub type UTextExtract = ::core::option::Option i32>; +pub type UTextMapNativeIndexToUTF16 = ::core::option::Option i32>; +pub type UTextMapOffsetToNative = ::core::option::Option i64>; +pub type UTextNativeLength = ::core::option::Option i64>; +pub type UTextReplace = ::core::option::Option i32>; +pub type UTraceData = ::core::option::Option ()>; +pub type UTraceEntry = ::core::option::Option ()>; +pub type UTraceExit = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Dwm/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Dwm/mod.rs new file mode 100644 index 000000000..c6e3bf0d5 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Dwm/mod.rs @@ -0,0 +1,294 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmAttachMilContent(hwnd : super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmDefWindowProc(hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM, plresult : *mut super::super::Foundation:: LRESULT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmDetachMilContent(hwnd : super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DwmEnableBlurBehindWindow(hwnd : super::super::Foundation:: HWND, pblurbehind : *const DWM_BLURBEHIND) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("dwmapi.dll" "system" fn DwmEnableComposition(ucompositionaction : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmEnableMMCSS(fenablemmcss : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn DwmExtendFrameIntoClientArea(hwnd : super::super::Foundation:: HWND, pmarinset : *const super::super::UI::Controls:: MARGINS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("dwmapi.dll" "system" fn DwmFlush() -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmGetColorizationColor(pcrcolorization : *mut u32, pfopaqueblend : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmGetCompositionTimingInfo(hwnd : super::super::Foundation:: HWND, ptiminginfo : *mut DWM_TIMING_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("dwmapi.dll" "system" fn DwmGetGraphicsStreamClient(uindex : u32, pclientuuid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("dwmapi.dll" "system" fn DwmGetGraphicsStreamTransformHint(uindex : u32, ptransform : *mut MilMatrix3x2D) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmGetTransportAttributes(pfisremoting : *mut super::super::Foundation:: BOOL, pfisconnected : *mut super::super::Foundation:: BOOL, pdwgeneration : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmGetUnmetTabRequirements(appwindow : super::super::Foundation:: HWND, value : *mut DWM_TAB_WINDOW_REQUIREMENTS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmGetWindowAttribute(hwnd : super::super::Foundation:: HWND, dwattribute : u32, pvattribute : *mut ::core::ffi::c_void, cbattribute : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmInvalidateIconicBitmaps(hwnd : super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmIsCompositionEnabled(pfenabled : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmModifyPreviousDxFrameDuration(hwnd : super::super::Foundation:: HWND, crefreshes : i32, frelative : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmQueryThumbnailSourceSize(hthumbnail : isize, psize : *mut super::super::Foundation:: SIZE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmRegisterThumbnail(hwnddestination : super::super::Foundation:: HWND, hwndsource : super::super::Foundation:: HWND, phthumbnailid : *mut isize) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmRenderGesture(gt : GESTURE_TYPE, ccontacts : u32, pdwpointerid : *const u32, ppoints : *const super::super::Foundation:: POINT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmSetDxFrameDuration(hwnd : super::super::Foundation:: HWND, crefreshes : i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DwmSetIconicLivePreviewBitmap(hwnd : super::super::Foundation:: HWND, hbmp : super::Gdi:: HBITMAP, pptclient : *const super::super::Foundation:: POINT, dwsitflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DwmSetIconicThumbnail(hwnd : super::super::Foundation:: HWND, hbmp : super::Gdi:: HBITMAP, dwsitflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmSetPresentParameters(hwnd : super::super::Foundation:: HWND, ppresentparams : *mut DWM_PRESENT_PARAMETERS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmSetWindowAttribute(hwnd : super::super::Foundation:: HWND, dwattribute : u32, pvattribute : *const ::core::ffi::c_void, cbattribute : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("dwmapi.dll" "system" fn DwmShowContact(dwpointerid : u32, eshowcontact : DWM_SHOWCONTACT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmTetherContact(dwpointerid : u32, fenable : super::super::Foundation:: BOOL, pttether : super::super::Foundation:: POINT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmTransitionOwnedWindow(hwnd : super::super::Foundation:: HWND, target : DWMTRANSITION_OWNEDWINDOW_TARGET) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("dwmapi.dll" "system" fn DwmUnregisterThumbnail(hthumbnailid : isize) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dwmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DwmUpdateThumbnailProperties(hthumbnailid : isize, ptnproperties : *const DWM_THUMBNAIL_PROPERTIES) -> ::windows_sys::core::HRESULT); +pub const DWMFLIP3D_DEFAULT: DWMFLIP3DWINDOWPOLICY = 0i32; +pub const DWMFLIP3D_EXCLUDEABOVE: DWMFLIP3DWINDOWPOLICY = 2i32; +pub const DWMFLIP3D_EXCLUDEBELOW: DWMFLIP3DWINDOWPOLICY = 1i32; +pub const DWMFLIP3D_LAST: DWMFLIP3DWINDOWPOLICY = 3i32; +pub const DWMNCRP_DISABLED: DWMNCRENDERINGPOLICY = 1i32; +pub const DWMNCRP_ENABLED: DWMNCRENDERINGPOLICY = 2i32; +pub const DWMNCRP_LAST: DWMNCRENDERINGPOLICY = 3i32; +pub const DWMNCRP_USEWINDOWSTYLE: DWMNCRENDERINGPOLICY = 0i32; +pub const DWMSBT_AUTO: DWM_SYSTEMBACKDROP_TYPE = 0i32; +pub const DWMSBT_MAINWINDOW: DWM_SYSTEMBACKDROP_TYPE = 2i32; +pub const DWMSBT_NONE: DWM_SYSTEMBACKDROP_TYPE = 1i32; +pub const DWMSBT_TABBEDWINDOW: DWM_SYSTEMBACKDROP_TYPE = 4i32; +pub const DWMSBT_TRANSIENTWINDOW: DWM_SYSTEMBACKDROP_TYPE = 3i32; +pub const DWMSC_ALL: DWM_SHOWCONTACT = 4294967295u32; +pub const DWMSC_DOWN: DWM_SHOWCONTACT = 1u32; +pub const DWMSC_DRAG: DWM_SHOWCONTACT = 4u32; +pub const DWMSC_HOLD: DWM_SHOWCONTACT = 8u32; +pub const DWMSC_NONE: DWM_SHOWCONTACT = 0u32; +pub const DWMSC_PENBARREL: DWM_SHOWCONTACT = 16u32; +pub const DWMSC_UP: DWM_SHOWCONTACT = 2u32; +pub const DWMTRANSITION_OWNEDWINDOW_NULL: DWMTRANSITION_OWNEDWINDOW_TARGET = -1i32; +pub const DWMTRANSITION_OWNEDWINDOW_REPOSITION: DWMTRANSITION_OWNEDWINDOW_TARGET = 0i32; +pub const DWMTWR_APP_COMPAT: DWM_TAB_WINDOW_REQUIREMENTS = 512i32; +pub const DWMTWR_GROUP_POLICY: DWM_TAB_WINDOW_REQUIREMENTS = 256i32; +pub const DWMTWR_IMPLEMENTED_BY_SYSTEM: DWM_TAB_WINDOW_REQUIREMENTS = 1i32; +pub const DWMTWR_NONE: DWM_TAB_WINDOW_REQUIREMENTS = 0i32; +pub const DWMTWR_TABBING_ENABLED: DWM_TAB_WINDOW_REQUIREMENTS = 64i32; +pub const DWMTWR_USER_POLICY: DWM_TAB_WINDOW_REQUIREMENTS = 128i32; +pub const DWMTWR_WINDOW_DWM_ATTRIBUTES: DWM_TAB_WINDOW_REQUIREMENTS = 16i32; +pub const DWMTWR_WINDOW_MARGINS: DWM_TAB_WINDOW_REQUIREMENTS = 32i32; +pub const DWMTWR_WINDOW_REGION: DWM_TAB_WINDOW_REQUIREMENTS = 8i32; +pub const DWMTWR_WINDOW_RELATIONSHIP: DWM_TAB_WINDOW_REQUIREMENTS = 2i32; +pub const DWMTWR_WINDOW_STYLES: DWM_TAB_WINDOW_REQUIREMENTS = 4i32; +pub const DWMWA_ALLOW_NCPAINT: DWMWINDOWATTRIBUTE = 4i32; +pub const DWMWA_BORDER_COLOR: DWMWINDOWATTRIBUTE = 34i32; +pub const DWMWA_CAPTION_BUTTON_BOUNDS: DWMWINDOWATTRIBUTE = 5i32; +pub const DWMWA_CAPTION_COLOR: DWMWINDOWATTRIBUTE = 35i32; +pub const DWMWA_CLOAK: DWMWINDOWATTRIBUTE = 13i32; +pub const DWMWA_CLOAKED: DWMWINDOWATTRIBUTE = 14i32; +pub const DWMWA_COLOR_DEFAULT: u32 = 4294967295u32; +pub const DWMWA_COLOR_NONE: u32 = 4294967294u32; +pub const DWMWA_DISALLOW_PEEK: DWMWINDOWATTRIBUTE = 11i32; +pub const DWMWA_EXCLUDED_FROM_PEEK: DWMWINDOWATTRIBUTE = 12i32; +pub const DWMWA_EXTENDED_FRAME_BOUNDS: DWMWINDOWATTRIBUTE = 9i32; +pub const DWMWA_FLIP3D_POLICY: DWMWINDOWATTRIBUTE = 8i32; +pub const DWMWA_FORCE_ICONIC_REPRESENTATION: DWMWINDOWATTRIBUTE = 7i32; +pub const DWMWA_FREEZE_REPRESENTATION: DWMWINDOWATTRIBUTE = 15i32; +pub const DWMWA_HAS_ICONIC_BITMAP: DWMWINDOWATTRIBUTE = 10i32; +pub const DWMWA_LAST: DWMWINDOWATTRIBUTE = 39i32; +pub const DWMWA_NCRENDERING_ENABLED: DWMWINDOWATTRIBUTE = 1i32; +pub const DWMWA_NCRENDERING_POLICY: DWMWINDOWATTRIBUTE = 2i32; +pub const DWMWA_NONCLIENT_RTL_LAYOUT: DWMWINDOWATTRIBUTE = 6i32; +pub const DWMWA_PASSIVE_UPDATE_MODE: DWMWINDOWATTRIBUTE = 16i32; +pub const DWMWA_SYSTEMBACKDROP_TYPE: DWMWINDOWATTRIBUTE = 38i32; +pub const DWMWA_TEXT_COLOR: DWMWINDOWATTRIBUTE = 36i32; +pub const DWMWA_TRANSITIONS_FORCEDISABLED: DWMWINDOWATTRIBUTE = 3i32; +pub const DWMWA_USE_HOSTBACKDROPBRUSH: DWMWINDOWATTRIBUTE = 17i32; +pub const DWMWA_USE_IMMERSIVE_DARK_MODE: DWMWINDOWATTRIBUTE = 20i32; +pub const DWMWA_VISIBLE_FRAME_BORDER_THICKNESS: DWMWINDOWATTRIBUTE = 37i32; +pub const DWMWA_WINDOW_CORNER_PREFERENCE: DWMWINDOWATTRIBUTE = 33i32; +pub const DWMWCP_DEFAULT: DWM_WINDOW_CORNER_PREFERENCE = 0i32; +pub const DWMWCP_DONOTROUND: DWM_WINDOW_CORNER_PREFERENCE = 1i32; +pub const DWMWCP_ROUND: DWM_WINDOW_CORNER_PREFERENCE = 2i32; +pub const DWMWCP_ROUNDSMALL: DWM_WINDOW_CORNER_PREFERENCE = 3i32; +pub const DWM_BB_BLURREGION: u32 = 2u32; +pub const DWM_BB_ENABLE: u32 = 1u32; +pub const DWM_BB_TRANSITIONONMAXIMIZED: u32 = 4u32; +pub const DWM_CLOAKED_APP: u32 = 1u32; +pub const DWM_CLOAKED_INHERITED: u32 = 4u32; +pub const DWM_CLOAKED_SHELL: u32 = 2u32; +pub const DWM_EC_DISABLECOMPOSITION: u32 = 0u32; +pub const DWM_EC_ENABLECOMPOSITION: u32 = 1u32; +pub const DWM_FRAME_DURATION_DEFAULT: i32 = -1i32; +pub const DWM_SIT_DISPLAYFRAME: u32 = 1u32; +pub const DWM_SOURCE_FRAME_SAMPLING_COVERAGE: DWM_SOURCE_FRAME_SAMPLING = 1i32; +pub const DWM_SOURCE_FRAME_SAMPLING_LAST: DWM_SOURCE_FRAME_SAMPLING = 2i32; +pub const DWM_SOURCE_FRAME_SAMPLING_POINT: DWM_SOURCE_FRAME_SAMPLING = 0i32; +pub const DWM_TNP_OPACITY: u32 = 4u32; +pub const DWM_TNP_RECTDESTINATION: u32 = 1u32; +pub const DWM_TNP_RECTSOURCE: u32 = 2u32; +pub const DWM_TNP_SOURCECLIENTAREAONLY: u32 = 16u32; +pub const DWM_TNP_VISIBLE: u32 = 8u32; +pub const GT_PEN_DOUBLETAP: GESTURE_TYPE = 1i32; +pub const GT_PEN_PRESSANDHOLD: GESTURE_TYPE = 3i32; +pub const GT_PEN_PRESSANDHOLDABORT: GESTURE_TYPE = 4i32; +pub const GT_PEN_RIGHTTAP: GESTURE_TYPE = 2i32; +pub const GT_PEN_TAP: GESTURE_TYPE = 0i32; +pub const GT_TOUCH_DOUBLETAP: GESTURE_TYPE = 6i32; +pub const GT_TOUCH_PRESSANDHOLD: GESTURE_TYPE = 8i32; +pub const GT_TOUCH_PRESSANDHOLDABORT: GESTURE_TYPE = 9i32; +pub const GT_TOUCH_PRESSANDTAP: GESTURE_TYPE = 10i32; +pub const GT_TOUCH_RIGHTTAP: GESTURE_TYPE = 7i32; +pub const GT_TOUCH_TAP: GESTURE_TYPE = 5i32; +pub const c_DwmMaxAdapters: u32 = 16u32; +pub const c_DwmMaxMonitors: u32 = 16u32; +pub const c_DwmMaxQueuedBuffers: u32 = 8u32; +pub type DWMFLIP3DWINDOWPOLICY = i32; +pub type DWMNCRENDERINGPOLICY = i32; +pub type DWMTRANSITION_OWNEDWINDOW_TARGET = i32; +pub type DWMWINDOWATTRIBUTE = i32; +pub type DWM_SHOWCONTACT = u32; +pub type DWM_SOURCE_FRAME_SAMPLING = i32; +pub type DWM_SYSTEMBACKDROP_TYPE = i32; +pub type DWM_TAB_WINDOW_REQUIREMENTS = i32; +pub type DWM_WINDOW_CORNER_PREFERENCE = i32; +pub type GESTURE_TYPE = i32; +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct DWM_BLURBEHIND { + pub dwFlags: u32, + pub fEnable: super::super::Foundation::BOOL, + pub hRgnBlur: super::Gdi::HRGN, + pub fTransitionOnMaximized: super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for DWM_BLURBEHIND {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for DWM_BLURBEHIND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DWM_PRESENT_PARAMETERS { + pub cbSize: u32, + pub fQueue: super::super::Foundation::BOOL, + pub cRefreshStart: u64, + pub cBuffer: u32, + pub fUseSourceRate: super::super::Foundation::BOOL, + pub rateSource: UNSIGNED_RATIO, + pub cRefreshesPerFrame: u32, + pub eSampling: DWM_SOURCE_FRAME_SAMPLING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DWM_PRESENT_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DWM_PRESENT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DWM_THUMBNAIL_PROPERTIES { + pub dwFlags: u32, + pub rcDestination: super::super::Foundation::RECT, + pub rcSource: super::super::Foundation::RECT, + pub opacity: u8, + pub fVisible: super::super::Foundation::BOOL, + pub fSourceClientAreaOnly: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DWM_THUMBNAIL_PROPERTIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DWM_THUMBNAIL_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DWM_TIMING_INFO { + pub cbSize: u32, + pub rateRefresh: UNSIGNED_RATIO, + pub qpcRefreshPeriod: u64, + pub rateCompose: UNSIGNED_RATIO, + pub qpcVBlank: u64, + pub cRefresh: u64, + pub cDXRefresh: u32, + pub qpcCompose: u64, + pub cFrame: u64, + pub cDXPresent: u32, + pub cRefreshFrame: u64, + pub cFrameSubmitted: u64, + pub cDXPresentSubmitted: u32, + pub cFrameConfirmed: u64, + pub cDXPresentConfirmed: u32, + pub cRefreshConfirmed: u64, + pub cDXRefreshConfirmed: u32, + pub cFramesLate: u64, + pub cFramesOutstanding: u32, + pub cFrameDisplayed: u64, + pub qpcFrameDisplayed: u64, + pub cRefreshFrameDisplayed: u64, + pub cFrameComplete: u64, + pub qpcFrameComplete: u64, + pub cFramePending: u64, + pub qpcFramePending: u64, + pub cFramesDisplayed: u64, + pub cFramesComplete: u64, + pub cFramesPending: u64, + pub cFramesAvailable: u64, + pub cFramesDropped: u64, + pub cFramesMissed: u64, + pub cRefreshNextDisplayed: u64, + pub cRefreshNextPresented: u64, + pub cRefreshesDisplayed: u64, + pub cRefreshesPresented: u64, + pub cRefreshStarted: u64, + pub cPixelsReceived: u64, + pub cPixelsDrawn: u64, + pub cBuffersEmpty: u64, +} +impl ::core::marker::Copy for DWM_TIMING_INFO {} +impl ::core::clone::Clone for DWM_TIMING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MilMatrix3x2D { + pub S_11: f64, + pub S_12: f64, + pub S_21: f64, + pub S_22: f64, + pub DX: f64, + pub DY: f64, +} +impl ::core::marker::Copy for MilMatrix3x2D {} +impl ::core::clone::Clone for MilMatrix3x2D { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct UNSIGNED_RATIO { + pub uiNumerator: u32, + pub uiDenominator: u32, +} +impl ::core::marker::Copy for UNSIGNED_RATIO {} +impl ::core::clone::Clone for UNSIGNED_RATIO { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Gdi/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Gdi/mod.rs new file mode 100644 index 000000000..8a8cf615d --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Gdi/mod.rs @@ -0,0 +1,5221 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AbortPath(hdc : HDC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddFontMemResourceEx(pfileview : *const ::core::ffi::c_void, cjsize : u32, pvresrved : *const ::core::ffi::c_void, pnumfonts : *const u32) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("gdi32.dll" "system" fn AddFontResourceA(param0 : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn AddFontResourceExA(name : ::windows_sys::core::PCSTR, fl : FONT_RESOURCE_CHARACTERISTICS, res : *const ::core::ffi::c_void) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn AddFontResourceExW(name : ::windows_sys::core::PCWSTR, fl : FONT_RESOURCE_CHARACTERISTICS, res : *const ::core::ffi::c_void) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn AddFontResourceW(param0 : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msimg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AlphaBlend(hdcdest : HDC, xorigindest : i32, yorigindest : i32, wdest : i32, hdest : i32, hdcsrc : HDC, xoriginsrc : i32, yoriginsrc : i32, wsrc : i32, hsrc : i32, ftn : BLENDFUNCTION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AngleArc(hdc : HDC, x : i32, y : i32, r : u32, startangle : f32, sweepangle : f32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AnimatePalette(hpal : HPALETTE, istartindex : u32, centries : u32, ppe : *const PALETTEENTRY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Arc(hdc : HDC, x1 : i32, y1 : i32, x2 : i32, y2 : i32, x3 : i32, y3 : i32, x4 : i32, y4 : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ArcTo(hdc : HDC, left : i32, top : i32, right : i32, bottom : i32, xr1 : i32, yr1 : i32, xr2 : i32, yr2 : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BeginPaint(hwnd : super::super::Foundation:: HWND, lppaint : *mut PAINTSTRUCT) -> HDC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BeginPath(hdc : HDC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BitBlt(hdc : HDC, x : i32, y : i32, cx : i32, cy : i32, hdcsrc : HDC, x1 : i32, y1 : i32, rop : ROP_CODE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CancelDC(hdc : HDC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChangeDisplaySettingsA(lpdevmode : *const DEVMODEA, dwflags : CDS_TYPE) -> DISP_CHANGE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChangeDisplaySettingsExA(lpszdevicename : ::windows_sys::core::PCSTR, lpdevmode : *const DEVMODEA, hwnd : super::super::Foundation:: HWND, dwflags : CDS_TYPE, lparam : *const ::core::ffi::c_void) -> DISP_CHANGE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChangeDisplaySettingsExW(lpszdevicename : ::windows_sys::core::PCWSTR, lpdevmode : *const DEVMODEW, hwnd : super::super::Foundation:: HWND, dwflags : CDS_TYPE, lparam : *const ::core::ffi::c_void) -> DISP_CHANGE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChangeDisplaySettingsW(lpdevmode : *const DEVMODEW, dwflags : CDS_TYPE) -> DISP_CHANGE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Chord(hdc : HDC, x1 : i32, y1 : i32, x2 : i32, y2 : i32, x3 : i32, y3 : i32, x4 : i32, y4 : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClientToScreen(hwnd : super::super::Foundation:: HWND, lppoint : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn CloseEnhMetaFile(hdc : HDC) -> HENHMETAFILE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseFigure(hdc : HDC) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn CloseMetaFile(hdc : HDC) -> HMETAFILE); +::windows_targets::link!("gdi32.dll" "system" fn CombineRgn(hrgndst : HRGN, hrgnsrc1 : HRGN, hrgnsrc2 : HRGN, imode : RGN_COMBINE_MODE) -> GDI_REGION_TYPE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CombineTransform(lpxfout : *mut XFORM, lpxf1 : *const XFORM, lpxf2 : *const XFORM) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn CopyEnhMetaFileA(henh : HENHMETAFILE, lpfilename : ::windows_sys::core::PCSTR) -> HENHMETAFILE); +::windows_targets::link!("gdi32.dll" "system" fn CopyEnhMetaFileW(henh : HENHMETAFILE, lpfilename : ::windows_sys::core::PCWSTR) -> HENHMETAFILE); +::windows_targets::link!("gdi32.dll" "system" fn CopyMetaFileA(param0 : HMETAFILE, param1 : ::windows_sys::core::PCSTR) -> HMETAFILE); +::windows_targets::link!("gdi32.dll" "system" fn CopyMetaFileW(param0 : HMETAFILE, param1 : ::windows_sys::core::PCWSTR) -> HMETAFILE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CopyRect(lprcdst : *mut super::super::Foundation:: RECT, lprcsrc : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn CreateBitmap(nwidth : i32, nheight : i32, nplanes : u32, nbitcount : u32, lpbits : *const ::core::ffi::c_void) -> HBITMAP); +::windows_targets::link!("gdi32.dll" "system" fn CreateBitmapIndirect(pbm : *const BITMAP) -> HBITMAP); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateBrushIndirect(plbrush : *const LOGBRUSH) -> HBRUSH); +::windows_targets::link!("gdi32.dll" "system" fn CreateCompatibleBitmap(hdc : HDC, cx : i32, cy : i32) -> HBITMAP); +::windows_targets::link!("gdi32.dll" "system" fn CreateCompatibleDC(hdc : HDC) -> HDC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateDCA(pwszdriver : ::windows_sys::core::PCSTR, pwszdevice : ::windows_sys::core::PCSTR, pszport : ::windows_sys::core::PCSTR, pdm : *const DEVMODEA) -> HDC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateDCW(pwszdriver : ::windows_sys::core::PCWSTR, pwszdevice : ::windows_sys::core::PCWSTR, pszport : ::windows_sys::core::PCWSTR, pdm : *const DEVMODEW) -> HDC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateDIBPatternBrush(h : super::super::Foundation:: HGLOBAL, iusage : DIB_USAGE) -> HBRUSH); +::windows_targets::link!("gdi32.dll" "system" fn CreateDIBPatternBrushPt(lppackeddib : *const ::core::ffi::c_void, iusage : DIB_USAGE) -> HBRUSH); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateDIBSection(hdc : HDC, pbmi : *const BITMAPINFO, usage : DIB_USAGE, ppvbits : *mut *mut ::core::ffi::c_void, hsection : super::super::Foundation:: HANDLE, offset : u32) -> HBITMAP); +::windows_targets::link!("gdi32.dll" "system" fn CreateDIBitmap(hdc : HDC, pbmih : *const BITMAPINFOHEADER, flinit : u32, pjbits : *const ::core::ffi::c_void, pbmi : *const BITMAPINFO, iusage : DIB_USAGE) -> HBITMAP); +::windows_targets::link!("gdi32.dll" "system" fn CreateDiscardableBitmap(hdc : HDC, cx : i32, cy : i32) -> HBITMAP); +::windows_targets::link!("gdi32.dll" "system" fn CreateEllipticRgn(x1 : i32, y1 : i32, x2 : i32, y2 : i32) -> HRGN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateEllipticRgnIndirect(lprect : *const super::super::Foundation:: RECT) -> HRGN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateEnhMetaFileA(hdc : HDC, lpfilename : ::windows_sys::core::PCSTR, lprc : *const super::super::Foundation:: RECT, lpdesc : ::windows_sys::core::PCSTR) -> HDC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateEnhMetaFileW(hdc : HDC, lpfilename : ::windows_sys::core::PCWSTR, lprc : *const super::super::Foundation:: RECT, lpdesc : ::windows_sys::core::PCWSTR) -> HDC); +::windows_targets::link!("gdi32.dll" "system" fn CreateFontA(cheight : i32, cwidth : i32, cescapement : i32, corientation : i32, cweight : i32, bitalic : u32, bunderline : u32, bstrikeout : u32, icharset : u32, ioutprecision : u32, iclipprecision : u32, iquality : u32, ipitchandfamily : u32, pszfacename : ::windows_sys::core::PCSTR) -> HFONT); +::windows_targets::link!("gdi32.dll" "system" fn CreateFontIndirectA(lplf : *const LOGFONTA) -> HFONT); +::windows_targets::link!("gdi32.dll" "system" fn CreateFontIndirectExA(param0 : *const ENUMLOGFONTEXDVA) -> HFONT); +::windows_targets::link!("gdi32.dll" "system" fn CreateFontIndirectExW(param0 : *const ENUMLOGFONTEXDVW) -> HFONT); +::windows_targets::link!("gdi32.dll" "system" fn CreateFontIndirectW(lplf : *const LOGFONTW) -> HFONT); +::windows_targets::link!("fontsub.dll" "cdecl" fn CreateFontPackage(puchsrcbuffer : *const u8, ulsrcbuffersize : u32, ppuchfontpackagebuffer : *mut *mut u8, pulfontpackagebuffersize : *mut u32, pulbyteswritten : *mut u32, usflag : u16, usttcindex : u16, ussubsetformat : u16, ussubsetlanguage : u16, ussubsetplatform : CREATE_FONT_PACKAGE_SUBSET_PLATFORM, ussubsetencoding : CREATE_FONT_PACKAGE_SUBSET_ENCODING, pussubsetkeeplist : *const u16, ussubsetlistcount : u16, lpfnallocate : CFP_ALLOCPROC, lpfnreallocate : CFP_REALLOCPROC, lpfnfree : CFP_FREEPROC, lpvreserved : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn CreateFontW(cheight : i32, cwidth : i32, cescapement : i32, corientation : i32, cweight : i32, bitalic : u32, bunderline : u32, bstrikeout : u32, icharset : u32, ioutprecision : u32, iclipprecision : u32, iquality : u32, ipitchandfamily : u32, pszfacename : ::windows_sys::core::PCWSTR) -> HFONT); +::windows_targets::link!("gdi32.dll" "system" fn CreateHalftonePalette(hdc : HDC) -> HPALETTE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateHatchBrush(ihatch : HATCH_BRUSH_STYLE, color : super::super::Foundation:: COLORREF) -> HBRUSH); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateICA(pszdriver : ::windows_sys::core::PCSTR, pszdevice : ::windows_sys::core::PCSTR, pszport : ::windows_sys::core::PCSTR, pdm : *const DEVMODEA) -> HDC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateICW(pszdriver : ::windows_sys::core::PCWSTR, pszdevice : ::windows_sys::core::PCWSTR, pszport : ::windows_sys::core::PCWSTR, pdm : *const DEVMODEW) -> HDC); +::windows_targets::link!("gdi32.dll" "system" fn CreateMetaFileA(pszfile : ::windows_sys::core::PCSTR) -> HDC); +::windows_targets::link!("gdi32.dll" "system" fn CreateMetaFileW(pszfile : ::windows_sys::core::PCWSTR) -> HDC); +::windows_targets::link!("gdi32.dll" "system" fn CreatePalette(plpal : *const LOGPALETTE) -> HPALETTE); +::windows_targets::link!("gdi32.dll" "system" fn CreatePatternBrush(hbm : HBITMAP) -> HBRUSH); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePen(istyle : PEN_STYLE, cwidth : i32, color : super::super::Foundation:: COLORREF) -> HPEN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePenIndirect(plpen : *const LOGPEN) -> HPEN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePolyPolygonRgn(pptl : *const super::super::Foundation:: POINT, pc : *const i32, cpoly : i32, imode : CREATE_POLYGON_RGN_MODE) -> HRGN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePolygonRgn(pptl : *const super::super::Foundation:: POINT, cpoint : i32, imode : CREATE_POLYGON_RGN_MODE) -> HRGN); +::windows_targets::link!("gdi32.dll" "system" fn CreateRectRgn(x1 : i32, y1 : i32, x2 : i32, y2 : i32) -> HRGN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateRectRgnIndirect(lprect : *const super::super::Foundation:: RECT) -> HRGN); +::windows_targets::link!("gdi32.dll" "system" fn CreateRoundRectRgn(x1 : i32, y1 : i32, x2 : i32, y2 : i32, w : i32, h : i32) -> HRGN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateScalableFontResourceA(fdwhidden : u32, lpszfont : ::windows_sys::core::PCSTR, lpszfile : ::windows_sys::core::PCSTR, lpszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateScalableFontResourceW(fdwhidden : u32, lpszfont : ::windows_sys::core::PCWSTR, lpszfile : ::windows_sys::core::PCWSTR, lpszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateSolidBrush(color : super::super::Foundation:: COLORREF) -> HBRUSH); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DPtoLP(hdc : HDC, lppt : *mut super::super::Foundation:: POINT, c : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteDC(hdc : HDC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteEnhMetaFile(hmf : HENHMETAFILE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteMetaFile(hmf : HMETAFILE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteObject(ho : HGDIOBJ) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawAnimatedRects(hwnd : super::super::Foundation:: HWND, idani : i32, lprcfrom : *const super::super::Foundation:: RECT, lprcto : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawCaption(hwnd : super::super::Foundation:: HWND, hdc : HDC, lprect : *const super::super::Foundation:: RECT, flags : DRAW_CAPTION_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawEdge(hdc : HDC, qrc : *mut super::super::Foundation:: RECT, edge : DRAWEDGE_FLAGS, grfflags : DRAW_EDGE_FLAGS) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn DrawEscape(hdc : HDC, iescape : i32, cjin : i32, lpin : ::windows_sys::core::PCSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawFocusRect(hdc : HDC, lprc : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawFrameControl(param0 : HDC, param1 : *mut super::super::Foundation:: RECT, param2 : DFC_TYPE, param3 : DFCS_STATE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawStateA(hdc : HDC, hbrfore : HBRUSH, qfncallback : DRAWSTATEPROC, ldata : super::super::Foundation:: LPARAM, wdata : super::super::Foundation:: WPARAM, x : i32, y : i32, cx : i32, cy : i32, uflags : DRAWSTATE_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawStateW(hdc : HDC, hbrfore : HBRUSH, qfncallback : DRAWSTATEPROC, ldata : super::super::Foundation:: LPARAM, wdata : super::super::Foundation:: WPARAM, x : i32, y : i32, cx : i32, cy : i32, uflags : DRAWSTATE_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawTextA(hdc : HDC, lpchtext : ::windows_sys::core::PCSTR, cchtext : i32, lprc : *mut super::super::Foundation:: RECT, format : DRAW_TEXT_FORMAT) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawTextExA(hdc : HDC, lpchtext : ::windows_sys::core::PSTR, cchtext : i32, lprc : *mut super::super::Foundation:: RECT, format : DRAW_TEXT_FORMAT, lpdtp : *const DRAWTEXTPARAMS) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawTextExW(hdc : HDC, lpchtext : ::windows_sys::core::PWSTR, cchtext : i32, lprc : *mut super::super::Foundation:: RECT, format : DRAW_TEXT_FORMAT, lpdtp : *const DRAWTEXTPARAMS) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawTextW(hdc : HDC, lpchtext : ::windows_sys::core::PCWSTR, cchtext : i32, lprc : *mut super::super::Foundation:: RECT, format : DRAW_TEXT_FORMAT) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Ellipse(hdc : HDC, left : i32, top : i32, right : i32, bottom : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EndPaint(hwnd : super::super::Foundation:: HWND, lppaint : *const PAINTSTRUCT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EndPath(hdc : HDC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDisplayDevicesA(lpdevice : ::windows_sys::core::PCSTR, idevnum : u32, lpdisplaydevice : *mut DISPLAY_DEVICEA, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDisplayDevicesW(lpdevice : ::windows_sys::core::PCWSTR, idevnum : u32, lpdisplaydevice : *mut DISPLAY_DEVICEW, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDisplayMonitors(hdc : HDC, lprcclip : *const super::super::Foundation:: RECT, lpfnenum : MONITORENUMPROC, dwdata : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDisplaySettingsA(lpszdevicename : ::windows_sys::core::PCSTR, imodenum : ENUM_DISPLAY_SETTINGS_MODE, lpdevmode : *mut DEVMODEA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDisplaySettingsExA(lpszdevicename : ::windows_sys::core::PCSTR, imodenum : ENUM_DISPLAY_SETTINGS_MODE, lpdevmode : *mut DEVMODEA, dwflags : ENUM_DISPLAY_SETTINGS_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDisplaySettingsExW(lpszdevicename : ::windows_sys::core::PCWSTR, imodenum : ENUM_DISPLAY_SETTINGS_MODE, lpdevmode : *mut DEVMODEW, dwflags : ENUM_DISPLAY_SETTINGS_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDisplaySettingsW(lpszdevicename : ::windows_sys::core::PCWSTR, imodenum : ENUM_DISPLAY_SETTINGS_MODE, lpdevmode : *mut DEVMODEW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumEnhMetaFile(hdc : HDC, hmf : HENHMETAFILE, proc : ENHMFENUMPROC, param3 : *const ::core::ffi::c_void, lprect : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumFontFamiliesA(hdc : HDC, lplogfont : ::windows_sys::core::PCSTR, lpproc : FONTENUMPROCA, lparam : super::super::Foundation:: LPARAM) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumFontFamiliesExA(hdc : HDC, lplogfont : *const LOGFONTA, lpproc : FONTENUMPROCA, lparam : super::super::Foundation:: LPARAM, dwflags : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumFontFamiliesExW(hdc : HDC, lplogfont : *const LOGFONTW, lpproc : FONTENUMPROCW, lparam : super::super::Foundation:: LPARAM, dwflags : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumFontFamiliesW(hdc : HDC, lplogfont : ::windows_sys::core::PCWSTR, lpproc : FONTENUMPROCW, lparam : super::super::Foundation:: LPARAM) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumFontsA(hdc : HDC, lplogfont : ::windows_sys::core::PCSTR, lpproc : FONTENUMPROCA, lparam : super::super::Foundation:: LPARAM) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumFontsW(hdc : HDC, lplogfont : ::windows_sys::core::PCWSTR, lpproc : FONTENUMPROCW, lparam : super::super::Foundation:: LPARAM) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumMetaFile(hdc : HDC, hmf : HMETAFILE, proc : MFENUMPROC, param3 : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumObjects(hdc : HDC, ntype : OBJ_TYPE, lpfunc : GOBJENUMPROC, lparam : super::super::Foundation:: LPARAM) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EqualRect(lprc1 : *const super::super::Foundation:: RECT, lprc2 : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EqualRgn(hrgn1 : HRGN, hrgn2 : HRGN) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn ExcludeClipRect(hdc : HDC, left : i32, top : i32, right : i32, bottom : i32) -> GDI_REGION_TYPE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExcludeUpdateRgn(hdc : HDC, hwnd : super::super::Foundation:: HWND) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExtCreatePen(ipenstyle : u32, cwidth : u32, plbrush : *const LOGBRUSH, cstyle : u32, pstyle : *const u32) -> HPEN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExtCreateRegion(lpx : *const XFORM, ncount : u32, lpdata : *const RGNDATA) -> HRGN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExtFloodFill(hdc : HDC, x : i32, y : i32, color : super::super::Foundation:: COLORREF, r#type : EXT_FLOOD_FILL_TYPE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn ExtSelectClipRgn(hdc : HDC, hrgn : HRGN, mode : RGN_COMBINE_MODE) -> GDI_REGION_TYPE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExtTextOutA(hdc : HDC, x : i32, y : i32, options : ETO_OPTIONS, lprect : *const super::super::Foundation:: RECT, lpstring : ::windows_sys::core::PCSTR, c : u32, lpdx : *const i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExtTextOutW(hdc : HDC, x : i32, y : i32, options : ETO_OPTIONS, lprect : *const super::super::Foundation:: RECT, lpstring : ::windows_sys::core::PCWSTR, c : u32, lpdx : *const i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FillPath(hdc : HDC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FillRect(hdc : HDC, lprc : *const super::super::Foundation:: RECT, hbr : HBRUSH) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FillRgn(hdc : HDC, hrgn : HRGN, hbr : HBRUSH) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FixBrushOrgEx(hdc : HDC, x : i32, y : i32, ptl : *const super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlattenPath(hdc : HDC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FloodFill(hdc : HDC, x : i32, y : i32, color : super::super::Foundation:: COLORREF) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FrameRect(hdc : HDC, lprc : *const super::super::Foundation:: RECT, hbr : HBRUSH) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FrameRgn(hdc : HDC, hrgn : HRGN, hbr : HBRUSH, w : i32, h : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdiAlphaBlend(hdcdest : HDC, xorigindest : i32, yorigindest : i32, wdest : i32, hdest : i32, hdcsrc : HDC, xoriginsrc : i32, yoriginsrc : i32, wsrc : i32, hsrc : i32, ftn : BLENDFUNCTION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdiComment(hdc : HDC, nsize : u32, lpdata : *const u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdiFlush() -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn GdiGetBatchLimit() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdiGradientFill(hdc : HDC, pvertex : *const TRIVERTEX, nvertex : u32, pmesh : *const ::core::ffi::c_void, ncount : u32, ulmode : GRADIENT_FILL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn GdiSetBatchLimit(dw : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdiTransparentBlt(hdcdest : HDC, xorigindest : i32, yorigindest : i32, wdest : i32, hdest : i32, hdcsrc : HDC, xoriginsrc : i32, yoriginsrc : i32, wsrc : i32, hsrc : i32, crtransparent : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn GetArcDirection(hdc : HDC) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAspectRatioFilterEx(hdc : HDC, lpsize : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn GetBitmapBits(hbit : HBITMAP, cb : i32, lpvbits : *mut ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetBitmapDimensionEx(hbit : HBITMAP, lpsize : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetBkColor(hdc : HDC) -> super::super::Foundation:: COLORREF); +::windows_targets::link!("gdi32.dll" "system" fn GetBkMode(hdc : HDC) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetBoundsRect(hdc : HDC, lprect : *mut super::super::Foundation:: RECT, flags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetBrushOrgEx(hdc : HDC, lppt : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCharABCWidthsA(hdc : HDC, wfirst : u32, wlast : u32, lpabc : *mut ABC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCharABCWidthsFloatA(hdc : HDC, ifirst : u32, ilast : u32, lpabc : *mut ABCFLOAT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCharABCWidthsFloatW(hdc : HDC, ifirst : u32, ilast : u32, lpabc : *mut ABCFLOAT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCharABCWidthsI(hdc : HDC, gifirst : u32, cgi : u32, pgi : *const u16, pabc : *mut ABC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCharABCWidthsW(hdc : HDC, wfirst : u32, wlast : u32, lpabc : *mut ABC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCharWidth32A(hdc : HDC, ifirst : u32, ilast : u32, lpbuffer : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCharWidth32W(hdc : HDC, ifirst : u32, ilast : u32, lpbuffer : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCharWidthA(hdc : HDC, ifirst : u32, ilast : u32, lpbuffer : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCharWidthFloatA(hdc : HDC, ifirst : u32, ilast : u32, lpbuffer : *mut f32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCharWidthFloatW(hdc : HDC, ifirst : u32, ilast : u32, lpbuffer : *mut f32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCharWidthI(hdc : HDC, gifirst : u32, cgi : u32, pgi : *const u16, piwidths : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCharWidthW(hdc : HDC, ifirst : u32, ilast : u32, lpbuffer : *mut i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn GetCharacterPlacementA(hdc : HDC, lpstring : ::windows_sys::core::PCSTR, ncount : i32, nmexextent : i32, lpresults : *mut GCP_RESULTSA, dwflags : GET_CHARACTER_PLACEMENT_FLAGS) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetCharacterPlacementW(hdc : HDC, lpstring : ::windows_sys::core::PCWSTR, ncount : i32, nmexextent : i32, lpresults : *mut GCP_RESULTSW, dwflags : GET_CHARACTER_PLACEMENT_FLAGS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClipBox(hdc : HDC, lprect : *mut super::super::Foundation:: RECT) -> GDI_REGION_TYPE); +::windows_targets::link!("gdi32.dll" "system" fn GetClipRgn(hdc : HDC, hrgn : HRGN) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetColorAdjustment(hdc : HDC, lpca : *mut COLORADJUSTMENT) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn GetCurrentObject(hdc : HDC, r#type : u32) -> HGDIOBJ); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentPositionEx(hdc : HDC, lppt : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDC(hwnd : super::super::Foundation:: HWND) -> HDC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDCBrushColor(hdc : HDC) -> super::super::Foundation:: COLORREF); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDCEx(hwnd : super::super::Foundation:: HWND, hrgnclip : HRGN, flags : GET_DCX_FLAGS) -> HDC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDCOrgEx(hdc : HDC, lppt : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDCPenColor(hdc : HDC) -> super::super::Foundation:: COLORREF); +::windows_targets::link!("gdi32.dll" "system" fn GetDIBColorTable(hdc : HDC, istart : u32, centries : u32, prgbq : *mut RGBQUAD) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetDIBits(hdc : HDC, hbm : HBITMAP, start : u32, clines : u32, lpvbits : *mut ::core::ffi::c_void, lpbmi : *mut BITMAPINFO, usage : DIB_USAGE) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn GetDeviceCaps(hdc : HDC, index : i32) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn GetEnhMetaFileA(lpname : ::windows_sys::core::PCSTR) -> HENHMETAFILE); +::windows_targets::link!("gdi32.dll" "system" fn GetEnhMetaFileBits(hemf : HENHMETAFILE, nsize : u32, lpdata : *mut u8) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetEnhMetaFileDescriptionA(hemf : HENHMETAFILE, cchbuffer : u32, lpdescription : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetEnhMetaFileDescriptionW(hemf : HENHMETAFILE, cchbuffer : u32, lpdescription : ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetEnhMetaFileHeader(hemf : HENHMETAFILE, nsize : u32, lpenhmetaheader : *mut ENHMETAHEADER) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetEnhMetaFilePaletteEntries(hemf : HENHMETAFILE, nnumentries : u32, lppaletteentries : *mut PALETTEENTRY) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetEnhMetaFileW(lpname : ::windows_sys::core::PCWSTR) -> HENHMETAFILE); +::windows_targets::link!("gdi32.dll" "system" fn GetFontData(hdc : HDC, dwtable : u32, dwoffset : u32, pvbuffer : *mut ::core::ffi::c_void, cjbuffer : u32) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetFontLanguageInfo(hdc : HDC) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetFontUnicodeRanges(hdc : HDC, lpgs : *mut GLYPHSET) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetGlyphIndicesA(hdc : HDC, lpstr : ::windows_sys::core::PCSTR, c : i32, pgi : *mut u16, fl : u32) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetGlyphIndicesW(hdc : HDC, lpstr : ::windows_sys::core::PCWSTR, c : i32, pgi : *mut u16, fl : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetGlyphOutlineA(hdc : HDC, uchar : u32, fuformat : GET_GLYPH_OUTLINE_FORMAT, lpgm : *mut GLYPHMETRICS, cjbuffer : u32, pvbuffer : *mut ::core::ffi::c_void, lpmat2 : *const MAT2) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetGlyphOutlineW(hdc : HDC, uchar : u32, fuformat : GET_GLYPH_OUTLINE_FORMAT, lpgm : *mut GLYPHMETRICS, cjbuffer : u32, pvbuffer : *mut ::core::ffi::c_void, lpmat2 : *const MAT2) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetGraphicsMode(hdc : HDC) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn GetKerningPairsA(hdc : HDC, npairs : u32, lpkernpair : *mut KERNINGPAIR) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetKerningPairsW(hdc : HDC, npairs : u32, lpkernpair : *mut KERNINGPAIR) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetLayout(hdc : HDC) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetMapMode(hdc : HDC) -> HDC_MAP_MODE); +::windows_targets::link!("gdi32.dll" "system" fn GetMetaFileA(lpname : ::windows_sys::core::PCSTR) -> HMETAFILE); +::windows_targets::link!("gdi32.dll" "system" fn GetMetaFileBitsEx(hmf : HMETAFILE, cbbuffer : u32, lpdata : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetMetaFileW(lpname : ::windows_sys::core::PCWSTR) -> HMETAFILE); +::windows_targets::link!("gdi32.dll" "system" fn GetMetaRgn(hdc : HDC, hrgn : HRGN) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMiterLimit(hdc : HDC, plimit : *mut f32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMonitorInfoA(hmonitor : HMONITOR, lpmi : *mut MONITORINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMonitorInfoW(hmonitor : HMONITOR, lpmi : *mut MONITORINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNearestColor(hdc : HDC, color : super::super::Foundation:: COLORREF) -> super::super::Foundation:: COLORREF); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNearestPaletteIndex(h : HPALETTE, color : super::super::Foundation:: COLORREF) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetObjectA(h : HGDIOBJ, c : i32, pv : *mut ::core::ffi::c_void) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn GetObjectType(h : HGDIOBJ) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetObjectW(h : HGDIOBJ, c : i32, pv : *mut ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetOutlineTextMetricsA(hdc : HDC, cjcopy : u32, potm : *mut OUTLINETEXTMETRICA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetOutlineTextMetricsW(hdc : HDC, cjcopy : u32, potm : *mut OUTLINETEXTMETRICW) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetPaletteEntries(hpal : HPALETTE, istart : u32, centries : u32, ppalentries : *mut PALETTEENTRY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPath(hdc : HDC, apt : *mut super::super::Foundation:: POINT, aj : *mut u8, cpt : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPixel(hdc : HDC, x : i32, y : i32) -> super::super::Foundation:: COLORREF); +::windows_targets::link!("gdi32.dll" "system" fn GetPolyFillMode(hdc : HDC) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn GetROP2(hdc : HDC) -> R2_MODE); +::windows_targets::link!("gdi32.dll" "system" fn GetRandomRgn(hdc : HDC, hrgn : HRGN, i : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRasterizerCaps(lpraststat : *mut RASTERIZER_STATUS, cjbytes : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRegionData(hrgn : HRGN, ncount : u32, lprgndata : *mut RGNDATA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRgnBox(hrgn : HRGN, lprc : *mut super::super::Foundation:: RECT) -> GDI_REGION_TYPE); +::windows_targets::link!("gdi32.dll" "system" fn GetStockObject(i : GET_STOCK_OBJECT_FLAGS) -> HGDIOBJ); +::windows_targets::link!("gdi32.dll" "system" fn GetStretchBltMode(hdc : HDC) -> i32); +::windows_targets::link!("user32.dll" "system" fn GetSysColor(nindex : SYS_COLOR_INDEX) -> u32); +::windows_targets::link!("user32.dll" "system" fn GetSysColorBrush(nindex : SYS_COLOR_INDEX) -> HBRUSH); +::windows_targets::link!("gdi32.dll" "system" fn GetSystemPaletteEntries(hdc : HDC, istart : u32, centries : u32, ppalentries : *mut PALETTEENTRY) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetSystemPaletteUse(hdc : HDC) -> u32); +::windows_targets::link!("user32.dll" "system" fn GetTabbedTextExtentA(hdc : HDC, lpstring : ::windows_sys::core::PCSTR, chcount : i32, ntabpositions : i32, lpntabstoppositions : *const i32) -> u32); +::windows_targets::link!("user32.dll" "system" fn GetTabbedTextExtentW(hdc : HDC, lpstring : ::windows_sys::core::PCWSTR, chcount : i32, ntabpositions : i32, lpntabstoppositions : *const i32) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn GetTextAlign(hdc : HDC) -> TEXT_ALIGN_OPTIONS); +::windows_targets::link!("gdi32.dll" "system" fn GetTextCharacterExtra(hdc : HDC) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTextColor(hdc : HDC) -> super::super::Foundation:: COLORREF); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTextExtentExPointA(hdc : HDC, lpszstring : ::windows_sys::core::PCSTR, cchstring : i32, nmaxextent : i32, lpnfit : *mut i32, lpndx : *mut i32, lpsize : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTextExtentExPointI(hdc : HDC, lpwszstring : *const u16, cwchstring : i32, nmaxextent : i32, lpnfit : *mut i32, lpndx : *mut i32, lpsize : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTextExtentExPointW(hdc : HDC, lpszstring : ::windows_sys::core::PCWSTR, cchstring : i32, nmaxextent : i32, lpnfit : *mut i32, lpndx : *mut i32, lpsize : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTextExtentPoint32A(hdc : HDC, lpstring : ::windows_sys::core::PCSTR, c : i32, psizl : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTextExtentPoint32W(hdc : HDC, lpstring : ::windows_sys::core::PCWSTR, c : i32, psizl : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTextExtentPointA(hdc : HDC, lpstring : ::windows_sys::core::PCSTR, c : i32, lpsz : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTextExtentPointI(hdc : HDC, pgiin : *const u16, cgi : i32, psize : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTextExtentPointW(hdc : HDC, lpstring : ::windows_sys::core::PCWSTR, c : i32, lpsz : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn GetTextFaceA(hdc : HDC, c : i32, lpname : ::windows_sys::core::PSTR) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn GetTextFaceW(hdc : HDC, c : i32, lpname : ::windows_sys::core::PWSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTextMetricsA(hdc : HDC, lptm : *mut TEXTMETRICA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTextMetricsW(hdc : HDC, lptm : *mut TEXTMETRICW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUpdateRect(hwnd : super::super::Foundation:: HWND, lprect : *mut super::super::Foundation:: RECT, berase : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUpdateRgn(hwnd : super::super::Foundation:: HWND, hrgn : HRGN, berase : super::super::Foundation:: BOOL) -> GDI_REGION_TYPE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetViewportExtEx(hdc : HDC, lpsize : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetViewportOrgEx(hdc : HDC, lppoint : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn GetWinMetaFileBits(hemf : HENHMETAFILE, cbdata16 : u32, pdata16 : *mut u8, imapmode : i32, hdcref : HDC) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowDC(hwnd : super::super::Foundation:: HWND) -> HDC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowExtEx(hdc : HDC, lpsize : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowOrgEx(hdc : HDC, lppoint : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowRgn(hwnd : super::super::Foundation:: HWND, hrgn : HRGN) -> GDI_REGION_TYPE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowRgnBox(hwnd : super::super::Foundation:: HWND, lprc : *mut super::super::Foundation:: RECT) -> GDI_REGION_TYPE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWorldTransform(hdc : HDC, lpxf : *mut XFORM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msimg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GradientFill(hdc : HDC, pvertex : *const TRIVERTEX, nvertex : u32, pmesh : *const ::core::ffi::c_void, nmesh : u32, ulmode : GRADIENT_FILL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GrayStringA(hdc : HDC, hbrush : HBRUSH, lpoutputfunc : GRAYSTRINGPROC, lpdata : super::super::Foundation:: LPARAM, ncount : i32, x : i32, y : i32, nwidth : i32, nheight : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GrayStringW(hdc : HDC, hbrush : HBRUSH, lpoutputfunc : GRAYSTRINGPROC, lpdata : super::super::Foundation:: LPARAM, ncount : i32, x : i32, y : i32, nwidth : i32, nheight : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InflateRect(lprc : *mut super::super::Foundation:: RECT, dx : i32, dy : i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn IntersectClipRect(hdc : HDC, left : i32, top : i32, right : i32, bottom : i32) -> GDI_REGION_TYPE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IntersectRect(lprcdst : *mut super::super::Foundation:: RECT, lprcsrc1 : *const super::super::Foundation:: RECT, lprcsrc2 : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InvalidateRect(hwnd : super::super::Foundation:: HWND, lprect : *const super::super::Foundation:: RECT, berase : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InvalidateRgn(hwnd : super::super::Foundation:: HWND, hrgn : HRGN, berase : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InvertRect(hdc : HDC, lprc : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InvertRgn(hdc : HDC, hrgn : HRGN) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsRectEmpty(lprc : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LPtoDP(hdc : HDC, lppt : *mut super::super::Foundation:: POINT, c : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LineDDA(xstart : i32, ystart : i32, xend : i32, yend : i32, lpproc : LINEDDAPROC, data : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LineTo(hdc : HDC, x : i32, y : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadBitmapA(hinstance : super::super::Foundation:: HINSTANCE, lpbitmapname : ::windows_sys::core::PCSTR) -> HBITMAP); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadBitmapW(hinstance : super::super::Foundation:: HINSTANCE, lpbitmapname : ::windows_sys::core::PCWSTR) -> HBITMAP); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LockWindowUpdate(hwndlock : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MapWindowPoints(hwndfrom : super::super::Foundation:: HWND, hwndto : super::super::Foundation:: HWND, lppoints : *mut super::super::Foundation:: POINT, cpoints : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MaskBlt(hdcdest : HDC, xdest : i32, ydest : i32, width : i32, height : i32, hdcsrc : HDC, xsrc : i32, ysrc : i32, hbmmask : HBITMAP, xmask : i32, ymask : i32, rop : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("fontsub.dll" "cdecl" fn MergeFontPackage(puchmergefontbuffer : *const u8, ulmergefontbuffersize : u32, puchfontpackagebuffer : *const u8, ulfontpackagebuffersize : u32, ppuchdestbuffer : *mut *mut u8, puldestbuffersize : *mut u32, pulbyteswritten : *mut u32, usmode : u16, lpfnallocate : CFP_ALLOCPROC, lpfnreallocate : CFP_REALLOCPROC, lpfnfree : CFP_FREEPROC, lpvreserved : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ModifyWorldTransform(hdc : HDC, lpxf : *const XFORM, mode : MODIFY_WORLD_TRANSFORM_MODE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MonitorFromPoint(pt : super::super::Foundation:: POINT, dwflags : MONITOR_FROM_FLAGS) -> HMONITOR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MonitorFromRect(lprc : *const super::super::Foundation:: RECT, dwflags : MONITOR_FROM_FLAGS) -> HMONITOR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MonitorFromWindow(hwnd : super::super::Foundation:: HWND, dwflags : MONITOR_FROM_FLAGS) -> HMONITOR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoveToEx(hdc : HDC, x : i32, y : i32, lppt : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn OffsetClipRgn(hdc : HDC, x : i32, y : i32) -> GDI_REGION_TYPE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OffsetRect(lprc : *mut super::super::Foundation:: RECT, dx : i32, dy : i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn OffsetRgn(hrgn : HRGN, x : i32, y : i32) -> GDI_REGION_TYPE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OffsetViewportOrgEx(hdc : HDC, x : i32, y : i32, lppt : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OffsetWindowOrgEx(hdc : HDC, x : i32, y : i32, lppt : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PaintDesktop(hdc : HDC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PaintRgn(hdc : HDC, hrgn : HRGN) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PatBlt(hdc : HDC, x : i32, y : i32, w : i32, h : i32, rop : ROP_CODE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn PathToRegion(hdc : HDC) -> HRGN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Pie(hdc : HDC, left : i32, top : i32, right : i32, bottom : i32, xr1 : i32, yr1 : i32, xr2 : i32, yr2 : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PlayEnhMetaFile(hdc : HDC, hmf : HENHMETAFILE, lprect : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PlayEnhMetaFileRecord(hdc : HDC, pht : *const HANDLETABLE, pmr : *const ENHMETARECORD, cht : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PlayMetaFile(hdc : HDC, hmf : HMETAFILE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PlayMetaFileRecord(hdc : HDC, lphandletable : *const HANDLETABLE, lpmr : *const METARECORD, noobjs : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PlgBlt(hdcdest : HDC, lppoint : *const super::super::Foundation:: POINT, hdcsrc : HDC, xsrc : i32, ysrc : i32, width : i32, height : i32, hbmmask : HBITMAP, xmask : i32, ymask : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PolyBezier(hdc : HDC, apt : *const super::super::Foundation:: POINT, cpt : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PolyBezierTo(hdc : HDC, apt : *const super::super::Foundation:: POINT, cpt : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PolyDraw(hdc : HDC, apt : *const super::super::Foundation:: POINT, aj : *const u8, cpt : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PolyPolygon(hdc : HDC, apt : *const super::super::Foundation:: POINT, asz : *const i32, csz : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PolyPolyline(hdc : HDC, apt : *const super::super::Foundation:: POINT, asz : *const u32, csz : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PolyTextOutA(hdc : HDC, ppt : *const POLYTEXTA, nstrings : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PolyTextOutW(hdc : HDC, ppt : *const POLYTEXTW, nstrings : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Polygon(hdc : HDC, apt : *const super::super::Foundation:: POINT, cpt : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Polyline(hdc : HDC, apt : *const super::super::Foundation:: POINT, cpt : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PolylineTo(hdc : HDC, apt : *const super::super::Foundation:: POINT, cpt : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PtInRect(lprc : *const super::super::Foundation:: RECT, pt : super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PtInRegion(hrgn : HRGN, x : i32, y : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PtVisible(hdc : HDC, x : i32, y : i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn RealizePalette(hdc : HDC) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RectInRegion(hrgn : HRGN, lprect : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RectVisible(hdc : HDC, lprect : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Rectangle(hdc : HDC, left : i32, top : i32, right : i32, bottom : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RedrawWindow(hwnd : super::super::Foundation:: HWND, lprcupdate : *const super::super::Foundation:: RECT, hrgnupdate : HRGN, flags : REDRAW_WINDOW_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReleaseDC(hwnd : super::super::Foundation:: HWND, hdc : HDC) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveFontMemResourceEx(h : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveFontResourceA(lpfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveFontResourceExA(name : ::windows_sys::core::PCSTR, fl : u32, pdv : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveFontResourceExW(name : ::windows_sys::core::PCWSTR, fl : u32, pdv : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveFontResourceW(lpfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResetDCA(hdc : HDC, lpdm : *const DEVMODEA) -> HDC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResetDCW(hdc : HDC, lpdm : *const DEVMODEW) -> HDC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResizePalette(hpal : HPALETTE, n : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RestoreDC(hdc : HDC, nsaveddc : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RoundRect(hdc : HDC, left : i32, top : i32, right : i32, bottom : i32, width : i32, height : i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn SaveDC(hdc : HDC) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ScaleViewportExtEx(hdc : HDC, xn : i32, dx : i32, yn : i32, yd : i32, lpsz : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ScaleWindowExtEx(hdc : HDC, xn : i32, xd : i32, yn : i32, yd : i32, lpsz : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ScreenToClient(hwnd : super::super::Foundation:: HWND, lppoint : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SelectClipPath(hdc : HDC, mode : RGN_COMBINE_MODE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn SelectClipRgn(hdc : HDC, hrgn : HRGN) -> GDI_REGION_TYPE); +::windows_targets::link!("gdi32.dll" "system" fn SelectObject(hdc : HDC, h : HGDIOBJ) -> HGDIOBJ); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SelectPalette(hdc : HDC, hpal : HPALETTE, bforcebkgd : super::super::Foundation:: BOOL) -> HPALETTE); +::windows_targets::link!("gdi32.dll" "system" fn SetArcDirection(hdc : HDC, dir : ARC_DIRECTION) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn SetBitmapBits(hbm : HBITMAP, cb : u32, pvbits : *const ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetBitmapDimensionEx(hbm : HBITMAP, w : i32, h : i32, lpsz : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetBkColor(hdc : HDC, color : super::super::Foundation:: COLORREF) -> super::super::Foundation:: COLORREF); +::windows_targets::link!("gdi32.dll" "system" fn SetBkMode(hdc : HDC, mode : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetBoundsRect(hdc : HDC, lprect : *const super::super::Foundation:: RECT, flags : SET_BOUNDS_RECT_FLAGS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetBrushOrgEx(hdc : HDC, x : i32, y : i32, lppt : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetColorAdjustment(hdc : HDC, lpca : *const COLORADJUSTMENT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDCBrushColor(hdc : HDC, color : super::super::Foundation:: COLORREF) -> super::super::Foundation:: COLORREF); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDCPenColor(hdc : HDC, color : super::super::Foundation:: COLORREF) -> super::super::Foundation:: COLORREF); +::windows_targets::link!("gdi32.dll" "system" fn SetDIBColorTable(hdc : HDC, istart : u32, centries : u32, prgbq : *const RGBQUAD) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn SetDIBits(hdc : HDC, hbm : HBITMAP, start : u32, clines : u32, lpbits : *const ::core::ffi::c_void, lpbmi : *const BITMAPINFO, coloruse : DIB_USAGE) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn SetDIBitsToDevice(hdc : HDC, xdest : i32, ydest : i32, w : u32, h : u32, xsrc : i32, ysrc : i32, startscan : u32, clines : u32, lpvbits : *const ::core::ffi::c_void, lpbmi : *const BITMAPINFO, coloruse : DIB_USAGE) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn SetEnhMetaFileBits(nsize : u32, pb : *const u8) -> HENHMETAFILE); +::windows_targets::link!("gdi32.dll" "system" fn SetGraphicsMode(hdc : HDC, imode : GRAPHICS_MODE) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn SetLayout(hdc : HDC, l : DC_LAYOUT) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn SetMapMode(hdc : HDC, imode : HDC_MAP_MODE) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn SetMapperFlags(hdc : HDC, flags : u32) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn SetMetaFileBitsEx(cbbuffer : u32, lpdata : *const u8) -> HMETAFILE); +::windows_targets::link!("gdi32.dll" "system" fn SetMetaRgn(hdc : HDC) -> GDI_REGION_TYPE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMiterLimit(hdc : HDC, limit : f32, old : *mut f32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn SetPaletteEntries(hpal : HPALETTE, istart : u32, centries : u32, ppalentries : *const PALETTEENTRY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPixel(hdc : HDC, x : i32, y : i32, color : super::super::Foundation:: COLORREF) -> super::super::Foundation:: COLORREF); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPixelV(hdc : HDC, x : i32, y : i32, color : super::super::Foundation:: COLORREF) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn SetPolyFillMode(hdc : HDC, mode : CREATE_POLYGON_RGN_MODE) -> i32); +::windows_targets::link!("gdi32.dll" "system" fn SetROP2(hdc : HDC, rop2 : R2_MODE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetRect(lprc : *mut super::super::Foundation:: RECT, xleft : i32, ytop : i32, xright : i32, ybottom : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetRectEmpty(lprc : *mut super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetRectRgn(hrgn : HRGN, left : i32, top : i32, right : i32, bottom : i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn SetStretchBltMode(hdc : HDC, mode : STRETCH_BLT_MODE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSysColors(celements : i32, lpaelements : *const i32, lpargbvalues : *const super::super::Foundation:: COLORREF) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn SetSystemPaletteUse(hdc : HDC, r#use : SYSTEM_PALETTE_USE) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn SetTextAlign(hdc : HDC, align : TEXT_ALIGN_OPTIONS) -> u32); +::windows_targets::link!("gdi32.dll" "system" fn SetTextCharacterExtra(hdc : HDC, extra : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetTextColor(hdc : HDC, color : super::super::Foundation:: COLORREF) -> super::super::Foundation:: COLORREF); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetTextJustification(hdc : HDC, extra : i32, count : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetViewportExtEx(hdc : HDC, x : i32, y : i32, lpsz : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetViewportOrgEx(hdc : HDC, x : i32, y : i32, lppt : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowExtEx(hdc : HDC, x : i32, y : i32, lpsz : *mut super::super::Foundation:: SIZE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowOrgEx(hdc : HDC, x : i32, y : i32, lppt : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowRgn(hwnd : super::super::Foundation:: HWND, hrgn : HRGN, bredraw : super::super::Foundation:: BOOL) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWorldTransform(hdc : HDC, lpxf : *const XFORM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StretchBlt(hdcdest : HDC, xdest : i32, ydest : i32, wdest : i32, hdest : i32, hdcsrc : HDC, xsrc : i32, ysrc : i32, wsrc : i32, hsrc : i32, rop : ROP_CODE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("gdi32.dll" "system" fn StretchDIBits(hdc : HDC, xdest : i32, ydest : i32, destwidth : i32, destheight : i32, xsrc : i32, ysrc : i32, srcwidth : i32, srcheight : i32, lpbits : *const ::core::ffi::c_void, lpbmi : *const BITMAPINFO, iusage : DIB_USAGE, rop : ROP_CODE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StrokeAndFillPath(hdc : HDC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StrokePath(hdc : HDC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SubtractRect(lprcdst : *mut super::super::Foundation:: RECT, lprcsrc1 : *const super::super::Foundation:: RECT, lprcsrc2 : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +::windows_targets::link!("t2embed.dll" "system" fn TTCharToUnicode(hdc : HDC, puccharcodes : *const u8, ulcharcodesize : u32, pusshortcodes : *mut u16, ulshortcodesize : u32, ulflags : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("t2embed.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TTDeleteEmbeddedFont(hfontreference : super::super::Foundation:: HANDLE, ulflags : u32, pulstatus : *mut u32) -> i32); +::windows_targets::link!("t2embed.dll" "system" fn TTEmbedFont(hdc : HDC, ulflags : TTEMBED_FLAGS, ulcharset : EMBED_FONT_CHARSET, pulprivstatus : *mut EMBEDDED_FONT_PRIV_STATUS, pulstatus : *mut u32, lpfnwritetostream : WRITEEMBEDPROC, lpvwritestream : *const ::core::ffi::c_void, puscharcodeset : *const u16, uscharcodecount : u16, uslanguage : u16, pttembedinfo : *const TTEMBEDINFO) -> i32); +::windows_targets::link!("t2embed.dll" "system" fn TTEmbedFontEx(hdc : HDC, ulflags : TTEMBED_FLAGS, ulcharset : EMBED_FONT_CHARSET, pulprivstatus : *mut EMBEDDED_FONT_PRIV_STATUS, pulstatus : *mut u32, lpfnwritetostream : WRITEEMBEDPROC, lpvwritestream : *const ::core::ffi::c_void, pulcharcodeset : *const u32, uscharcodecount : u16, uslanguage : u16, pttembedinfo : *const TTEMBEDINFO) -> i32); +::windows_targets::link!("t2embed.dll" "system" fn TTEmbedFontFromFileA(hdc : HDC, szfontfilename : ::windows_sys::core::PCSTR, usttcindex : u16, ulflags : TTEMBED_FLAGS, ulcharset : EMBED_FONT_CHARSET, pulprivstatus : *mut EMBEDDED_FONT_PRIV_STATUS, pulstatus : *mut u32, lpfnwritetostream : WRITEEMBEDPROC, lpvwritestream : *const ::core::ffi::c_void, puscharcodeset : *const u16, uscharcodecount : u16, uslanguage : u16, pttembedinfo : *const TTEMBEDINFO) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("t2embed.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TTEnableEmbeddingForFacename(lpszfacename : ::windows_sys::core::PCSTR, benable : super::super::Foundation:: BOOL) -> i32); +::windows_targets::link!("t2embed.dll" "system" fn TTGetEmbeddedFontInfo(ulflags : TTEMBED_FLAGS, pulprivstatus : *mut u32, ulprivs : FONT_LICENSE_PRIVS, pulstatus : *mut u32, lpfnreadfromstream : READEMBEDPROC, lpvreadstream : *const ::core::ffi::c_void, pttloadinfo : *const TTLOADINFO) -> i32); +::windows_targets::link!("t2embed.dll" "system" fn TTGetEmbeddingType(hdc : HDC, pulembedtype : *mut EMBEDDED_FONT_PRIV_STATUS) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("t2embed.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TTGetNewFontName(phfontreference : *const super::super::Foundation:: HANDLE, wzwinfamilyname : ::windows_sys::core::PWSTR, cchmaxwinname : i32, szmacfamilyname : ::windows_sys::core::PSTR, cchmaxmacname : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("t2embed.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TTIsEmbeddingEnabled(hdc : HDC, pbenabled : *mut super::super::Foundation:: BOOL) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("t2embed.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TTIsEmbeddingEnabledForFacename(lpszfacename : ::windows_sys::core::PCSTR, pbenabled : *mut super::super::Foundation:: BOOL) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("t2embed.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TTLoadEmbeddedFont(phfontreference : *mut super::super::Foundation:: HANDLE, ulflags : u32, pulprivstatus : *mut EMBEDDED_FONT_PRIV_STATUS, ulprivs : FONT_LICENSE_PRIVS, pulstatus : *mut TTLOAD_EMBEDDED_FONT_STATUS, lpfnreadfromstream : READEMBEDPROC, lpvreadstream : *const ::core::ffi::c_void, szwinfamilyname : ::windows_sys::core::PCWSTR, szmacfamilyname : ::windows_sys::core::PCSTR, pttloadinfo : *const TTLOADINFO) -> i32); +::windows_targets::link!("t2embed.dll" "system" fn TTRunValidationTests(hdc : HDC, ptestparam : *const TTVALIDATIONTESTSPARAMS) -> i32); +::windows_targets::link!("t2embed.dll" "system" fn TTRunValidationTestsEx(hdc : HDC, ptestparam : *const TTVALIDATIONTESTSPARAMSEX) -> i32); +::windows_targets::link!("user32.dll" "system" fn TabbedTextOutA(hdc : HDC, x : i32, y : i32, lpstring : ::windows_sys::core::PCSTR, chcount : i32, ntabpositions : i32, lpntabstoppositions : *const i32, ntaborigin : i32) -> i32); +::windows_targets::link!("user32.dll" "system" fn TabbedTextOutW(hdc : HDC, x : i32, y : i32, lpstring : ::windows_sys::core::PCWSTR, chcount : i32, ntabpositions : i32, lpntabstoppositions : *const i32, ntaborigin : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TextOutA(hdc : HDC, x : i32, y : i32, lpstring : ::windows_sys::core::PCSTR, c : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TextOutW(hdc : HDC, x : i32, y : i32, lpstring : ::windows_sys::core::PCWSTR, c : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msimg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TransparentBlt(hdcdest : HDC, xorigindest : i32, yorigindest : i32, wdest : i32, hdest : i32, hdcsrc : HDC, xoriginsrc : i32, yoriginsrc : i32, wsrc : i32, hsrc : i32, crtransparent : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnionRect(lprcdst : *mut super::super::Foundation:: RECT, lprcsrc1 : *const super::super::Foundation:: RECT, lprcsrc2 : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnrealizeObject(h : HGDIOBJ) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdateColors(hdc : HDC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdateWindow(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ValidateRect(hwnd : super::super::Foundation:: HWND, lprect : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ValidateRgn(hwnd : super::super::Foundation:: HWND, hrgn : HRGN) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WidenPath(hdc : HDC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WindowFromDC(hdc : HDC) -> super::super::Foundation:: HWND); +::windows_targets::link!("opengl32.dll" "system" fn wglSwapMultipleBuffers(param0 : u32, param1 : *const WGLSWAP) -> u32); +pub const ABORTDOC: u32 = 2u32; +pub const ABSOLUTE: u32 = 1u32; +pub const AC_SRC_ALPHA: u32 = 1u32; +pub const AC_SRC_OVER: u32 = 0u32; +pub const AD_CLOCKWISE: ARC_DIRECTION = 2i32; +pub const AD_COUNTERCLOCKWISE: ARC_DIRECTION = 1i32; +pub const ALTERNATE: CREATE_POLYGON_RGN_MODE = 1i32; +pub const ANSI_CHARSET: FONT_CHARSET = 0u8; +pub const ANSI_FIXED_FONT: GET_STOCK_OBJECT_FLAGS = 11i32; +pub const ANSI_VAR_FONT: GET_STOCK_OBJECT_FLAGS = 12i32; +pub const ANTIALIASED_QUALITY: FONT_QUALITY = 4u8; +pub const ARABIC_CHARSET: FONT_CHARSET = 178u8; +pub const ASPECTX: GET_DEVICE_CAPS_INDEX = 40u32; +pub const ASPECTXY: GET_DEVICE_CAPS_INDEX = 44u32; +pub const ASPECTY: GET_DEVICE_CAPS_INDEX = 42u32; +pub const ASPECT_FILTERING: u32 = 1u32; +pub const BALTIC_CHARSET: FONT_CHARSET = 186u8; +pub const BANDINFO: u32 = 24u32; +pub const BDR_INNER: DRAWEDGE_FLAGS = 12u32; +pub const BDR_OUTER: DRAWEDGE_FLAGS = 3u32; +pub const BDR_RAISED: DRAWEDGE_FLAGS = 5u32; +pub const BDR_RAISEDINNER: DRAWEDGE_FLAGS = 4u32; +pub const BDR_RAISEDOUTER: DRAWEDGE_FLAGS = 1u32; +pub const BDR_SUNKEN: DRAWEDGE_FLAGS = 10u32; +pub const BDR_SUNKENINNER: DRAWEDGE_FLAGS = 8u32; +pub const BDR_SUNKENOUTER: DRAWEDGE_FLAGS = 2u32; +pub const BEGIN_PATH: u32 = 4096u32; +pub const BF_ADJUST: DRAW_EDGE_FLAGS = 8192u32; +pub const BF_BOTTOM: DRAW_EDGE_FLAGS = 8u32; +pub const BF_BOTTOMLEFT: DRAW_EDGE_FLAGS = 9u32; +pub const BF_BOTTOMRIGHT: DRAW_EDGE_FLAGS = 12u32; +pub const BF_DIAGONAL: DRAW_EDGE_FLAGS = 16u32; +pub const BF_DIAGONAL_ENDBOTTOMLEFT: DRAW_EDGE_FLAGS = 25u32; +pub const BF_DIAGONAL_ENDBOTTOMRIGHT: DRAW_EDGE_FLAGS = 28u32; +pub const BF_DIAGONAL_ENDTOPLEFT: DRAW_EDGE_FLAGS = 19u32; +pub const BF_DIAGONAL_ENDTOPRIGHT: DRAW_EDGE_FLAGS = 22u32; +pub const BF_FLAT: DRAW_EDGE_FLAGS = 16384u32; +pub const BF_LEFT: DRAW_EDGE_FLAGS = 1u32; +pub const BF_MIDDLE: DRAW_EDGE_FLAGS = 2048u32; +pub const BF_MONO: DRAW_EDGE_FLAGS = 32768u32; +pub const BF_RECT: DRAW_EDGE_FLAGS = 15u32; +pub const BF_RIGHT: DRAW_EDGE_FLAGS = 4u32; +pub const BF_SOFT: DRAW_EDGE_FLAGS = 4096u32; +pub const BF_TOP: DRAW_EDGE_FLAGS = 2u32; +pub const BF_TOPLEFT: DRAW_EDGE_FLAGS = 3u32; +pub const BF_TOPRIGHT: DRAW_EDGE_FLAGS = 6u32; +pub const BITSPIXEL: GET_DEVICE_CAPS_INDEX = 12u32; +pub const BI_BITFIELDS: BI_COMPRESSION = 3u32; +pub const BI_JPEG: BI_COMPRESSION = 4u32; +pub const BI_PNG: BI_COMPRESSION = 5u32; +pub const BI_RGB: BI_COMPRESSION = 0u32; +pub const BI_RLE4: BI_COMPRESSION = 2u32; +pub const BI_RLE8: BI_COMPRESSION = 1u32; +pub const BKMODE_LAST: u32 = 2u32; +pub const BLACKNESS: ROP_CODE = 66u32; +pub const BLACKONWHITE: STRETCH_BLT_MODE = 1i32; +pub const BLACK_BRUSH: GET_STOCK_OBJECT_FLAGS = 4i32; +pub const BLACK_PEN: GET_STOCK_OBJECT_FLAGS = 7i32; +pub const BLTALIGNMENT: GET_DEVICE_CAPS_INDEX = 119u32; +pub const BS_DIBPATTERN: BRUSH_STYLE = 5u32; +pub const BS_DIBPATTERN8X8: BRUSH_STYLE = 8u32; +pub const BS_DIBPATTERNPT: BRUSH_STYLE = 6u32; +pub const BS_HATCHED: BRUSH_STYLE = 2u32; +pub const BS_HOLLOW: BRUSH_STYLE = 1u32; +pub const BS_INDEXED: BRUSH_STYLE = 4u32; +pub const BS_MONOPATTERN: BRUSH_STYLE = 9u32; +pub const BS_NULL: BRUSH_STYLE = 1u32; +pub const BS_PATTERN: BRUSH_STYLE = 3u32; +pub const BS_PATTERN8X8: BRUSH_STYLE = 7u32; +pub const BS_SOLID: BRUSH_STYLE = 0u32; +pub const CAPTUREBLT: ROP_CODE = 1073741824u32; +pub const CA_LOG_FILTER: u32 = 2u32; +pub const CA_NEGATIVE: u32 = 1u32; +pub const CBM_INIT: i32 = 4i32; +pub const CCHFORMNAME: u32 = 32u32; +pub const CC_CHORD: u32 = 4u32; +pub const CC_CIRCLES: u32 = 1u32; +pub const CC_ELLIPSES: u32 = 8u32; +pub const CC_INTERIORS: u32 = 128u32; +pub const CC_NONE: u32 = 0u32; +pub const CC_PIE: u32 = 2u32; +pub const CC_ROUNDRECT: u32 = 256u32; +pub const CC_STYLED: u32 = 32u32; +pub const CC_WIDE: u32 = 16u32; +pub const CC_WIDESTYLED: u32 = 64u32; +pub const CDS_DISABLE_UNSAFE_MODES: CDS_TYPE = 512u32; +pub const CDS_ENABLE_UNSAFE_MODES: CDS_TYPE = 256u32; +pub const CDS_FULLSCREEN: CDS_TYPE = 4u32; +pub const CDS_GLOBAL: CDS_TYPE = 8u32; +pub const CDS_NORESET: CDS_TYPE = 268435456u32; +pub const CDS_RESET: CDS_TYPE = 1073741824u32; +pub const CDS_RESET_EX: CDS_TYPE = 536870912u32; +pub const CDS_SET_PRIMARY: CDS_TYPE = 16u32; +pub const CDS_TEST: CDS_TYPE = 2u32; +pub const CDS_UPDATEREGISTRY: CDS_TYPE = 1u32; +pub const CDS_VIDEOPARAMETERS: CDS_TYPE = 32u32; +pub const CHARSET_DEFAULT: u32 = 1u32; +pub const CHARSET_GLYPHIDX: u32 = 3u32; +pub const CHARSET_SYMBOL: EMBED_FONT_CHARSET = 2u32; +pub const CHARSET_UNICODE: EMBED_FONT_CHARSET = 1u32; +pub const CHECKJPEGFORMAT: u32 = 4119u32; +pub const CHECKPNGFORMAT: u32 = 4120u32; +pub const CHINESEBIG5_CHARSET: FONT_CHARSET = 136u8; +pub const CLEARTYPE_NATURAL_QUALITY: u32 = 6u32; +pub const CLEARTYPE_QUALITY: FONT_QUALITY = 5u8; +pub const CLIPCAPS: GET_DEVICE_CAPS_INDEX = 36u32; +pub const CLIP_CHARACTER_PRECIS: FONT_CLIP_PRECISION = 1u8; +pub const CLIP_DEFAULT_PRECIS: FONT_CLIP_PRECISION = 0u8; +pub const CLIP_DFA_DISABLE: FONT_CLIP_PRECISION = 64u8; +pub const CLIP_DFA_OVERRIDE: FONT_CLIP_PRECISION = 64u8; +pub const CLIP_EMBEDDED: FONT_CLIP_PRECISION = 128u8; +pub const CLIP_LH_ANGLES: FONT_CLIP_PRECISION = 16u8; +pub const CLIP_MASK: FONT_CLIP_PRECISION = 15u8; +pub const CLIP_STROKE_PRECIS: FONT_CLIP_PRECISION = 2u8; +pub const CLIP_TO_PATH: u32 = 4097u32; +pub const CLIP_TT_ALWAYS: FONT_CLIP_PRECISION = 32u8; +pub const CLOSECHANNEL: u32 = 4112u32; +pub const CLR_INVALID: u32 = 4294967295u32; +pub const CM_CMYK_COLOR: u32 = 4u32; +pub const CM_DEVICE_ICM: u32 = 1u32; +pub const CM_GAMMA_RAMP: u32 = 2u32; +pub const CM_IN_GAMUT: u32 = 0u32; +pub const CM_NONE: u32 = 0u32; +pub const CM_OUT_OF_GAMUT: u32 = 255u32; +pub const COLORMATCHTOTARGET_EMBEDED: u32 = 1u32; +pub const COLORMGMTCAPS: GET_DEVICE_CAPS_INDEX = 121u32; +pub const COLORONCOLOR: STRETCH_BLT_MODE = 3i32; +pub const COLORRES: GET_DEVICE_CAPS_INDEX = 108u32; +pub const COLOR_3DDKSHADOW: SYS_COLOR_INDEX = 21i32; +pub const COLOR_3DFACE: SYS_COLOR_INDEX = 15i32; +pub const COLOR_3DHIGHLIGHT: SYS_COLOR_INDEX = 20i32; +pub const COLOR_3DHILIGHT: SYS_COLOR_INDEX = 20i32; +pub const COLOR_3DLIGHT: SYS_COLOR_INDEX = 22i32; +pub const COLOR_3DSHADOW: SYS_COLOR_INDEX = 16i32; +pub const COLOR_ACTIVEBORDER: SYS_COLOR_INDEX = 10i32; +pub const COLOR_ACTIVECAPTION: SYS_COLOR_INDEX = 2i32; +pub const COLOR_APPWORKSPACE: SYS_COLOR_INDEX = 12i32; +pub const COLOR_BACKGROUND: SYS_COLOR_INDEX = 1i32; +pub const COLOR_BTNFACE: SYS_COLOR_INDEX = 15i32; +pub const COLOR_BTNHIGHLIGHT: SYS_COLOR_INDEX = 20i32; +pub const COLOR_BTNHILIGHT: SYS_COLOR_INDEX = 20i32; +pub const COLOR_BTNSHADOW: SYS_COLOR_INDEX = 16i32; +pub const COLOR_BTNTEXT: SYS_COLOR_INDEX = 18i32; +pub const COLOR_CAPTIONTEXT: SYS_COLOR_INDEX = 9i32; +pub const COLOR_DESKTOP: SYS_COLOR_INDEX = 1i32; +pub const COLOR_GRADIENTACTIVECAPTION: SYS_COLOR_INDEX = 27i32; +pub const COLOR_GRADIENTINACTIVECAPTION: SYS_COLOR_INDEX = 28i32; +pub const COLOR_GRAYTEXT: SYS_COLOR_INDEX = 17i32; +pub const COLOR_HIGHLIGHT: SYS_COLOR_INDEX = 13i32; +pub const COLOR_HIGHLIGHTTEXT: SYS_COLOR_INDEX = 14i32; +pub const COLOR_HOTLIGHT: SYS_COLOR_INDEX = 26i32; +pub const COLOR_INACTIVEBORDER: SYS_COLOR_INDEX = 11i32; +pub const COLOR_INACTIVECAPTION: SYS_COLOR_INDEX = 3i32; +pub const COLOR_INACTIVECAPTIONTEXT: SYS_COLOR_INDEX = 19i32; +pub const COLOR_INFOBK: SYS_COLOR_INDEX = 24i32; +pub const COLOR_INFOTEXT: SYS_COLOR_INDEX = 23i32; +pub const COLOR_MENU: SYS_COLOR_INDEX = 4i32; +pub const COLOR_MENUBAR: SYS_COLOR_INDEX = 30i32; +pub const COLOR_MENUHILIGHT: SYS_COLOR_INDEX = 29i32; +pub const COLOR_MENUTEXT: SYS_COLOR_INDEX = 7i32; +pub const COLOR_SCROLLBAR: SYS_COLOR_INDEX = 0i32; +pub const COLOR_WINDOW: SYS_COLOR_INDEX = 5i32; +pub const COLOR_WINDOWFRAME: SYS_COLOR_INDEX = 6i32; +pub const COLOR_WINDOWTEXT: SYS_COLOR_INDEX = 8i32; +pub const COMPLEXREGION: GDI_REGION_TYPE = 3i32; +pub const CP_NONE: u32 = 0u32; +pub const CP_RECTANGLE: u32 = 1u32; +pub const CP_REGION: u32 = 2u32; +pub const CREATECOLORSPACE_EMBEDED: u32 = 1u32; +pub const CURVECAPS: GET_DEVICE_CAPS_INDEX = 28u32; +pub const DCBA_FACEDOWNCENTER: u32 = 257u32; +pub const DCBA_FACEDOWNLEFT: u32 = 258u32; +pub const DCBA_FACEDOWNNONE: u32 = 256u32; +pub const DCBA_FACEDOWNRIGHT: u32 = 259u32; +pub const DCBA_FACEUPCENTER: u32 = 1u32; +pub const DCBA_FACEUPLEFT: u32 = 2u32; +pub const DCBA_FACEUPNONE: u32 = 0u32; +pub const DCBA_FACEUPRIGHT: u32 = 3u32; +pub const DCB_ACCUMULATE: SET_BOUNDS_RECT_FLAGS = 2u32; +pub const DCB_DISABLE: SET_BOUNDS_RECT_FLAGS = 8u32; +pub const DCB_ENABLE: SET_BOUNDS_RECT_FLAGS = 4u32; +pub const DCB_RESET: SET_BOUNDS_RECT_FLAGS = 1u32; +pub const DCTT_BITMAP: i32 = 1i32; +pub const DCTT_DOWNLOAD: i32 = 2i32; +pub const DCTT_DOWNLOAD_OUTLINE: i32 = 8i32; +pub const DCTT_SUBDEV: i32 = 4i32; +pub const DCX_CACHE: GET_DCX_FLAGS = 2u32; +pub const DCX_CLIPCHILDREN: GET_DCX_FLAGS = 8u32; +pub const DCX_CLIPSIBLINGS: GET_DCX_FLAGS = 16u32; +pub const DCX_EXCLUDERGN: GET_DCX_FLAGS = 64u32; +pub const DCX_INTERSECTRGN: GET_DCX_FLAGS = 128u32; +pub const DCX_INTERSECTUPDATE: GET_DCX_FLAGS = 512u32; +pub const DCX_LOCKWINDOWUPDATE: GET_DCX_FLAGS = 1024u32; +pub const DCX_NORESETATTRS: GET_DCX_FLAGS = 4u32; +pub const DCX_PARENTCLIP: GET_DCX_FLAGS = 32u32; +pub const DCX_VALIDATE: GET_DCX_FLAGS = 2097152u32; +pub const DCX_WINDOW: GET_DCX_FLAGS = 1u32; +pub const DC_ACTIVE: DRAW_CAPTION_FLAGS = 1u32; +pub const DC_BINADJUST: u32 = 19u32; +pub const DC_BRUSH: GET_STOCK_OBJECT_FLAGS = 18i32; +pub const DC_BUTTONS: DRAW_CAPTION_FLAGS = 4096u32; +pub const DC_DATATYPE_PRODUCED: u32 = 21u32; +pub const DC_EMF_COMPLIANT: u32 = 20u32; +pub const DC_GRADIENT: DRAW_CAPTION_FLAGS = 32u32; +pub const DC_ICON: DRAW_CAPTION_FLAGS = 4u32; +pub const DC_INBUTTON: DRAW_CAPTION_FLAGS = 16u32; +pub const DC_MANUFACTURER: u32 = 23u32; +pub const DC_MODEL: u32 = 24u32; +pub const DC_PEN: GET_STOCK_OBJECT_FLAGS = 19i32; +pub const DC_SMALLCAP: DRAW_CAPTION_FLAGS = 2u32; +pub const DC_TEXT: DRAW_CAPTION_FLAGS = 8u32; +pub const DEFAULT_CHARSET: FONT_CHARSET = 1u8; +pub const DEFAULT_GUI_FONT: GET_STOCK_OBJECT_FLAGS = 17i32; +pub const DEFAULT_PALETTE: GET_STOCK_OBJECT_FLAGS = 15i32; +pub const DEFAULT_PITCH: FONT_PITCH = 0u8; +pub const DEFAULT_QUALITY: FONT_QUALITY = 0u8; +pub const DESKTOPHORZRES: GET_DEVICE_CAPS_INDEX = 118u32; +pub const DESKTOPVERTRES: GET_DEVICE_CAPS_INDEX = 117u32; +pub const DEVICEDATA: u32 = 19u32; +pub const DEVICE_DEFAULT_FONT: GET_STOCK_OBJECT_FLAGS = 14i32; +pub const DEVICE_FONTTYPE: u32 = 2u32; +pub const DFCS_ADJUSTRECT: DFCS_STATE = 8192u32; +pub const DFCS_BUTTON3STATE: DFCS_STATE = 8u32; +pub const DFCS_BUTTONCHECK: DFCS_STATE = 0u32; +pub const DFCS_BUTTONPUSH: DFCS_STATE = 16u32; +pub const DFCS_BUTTONRADIO: DFCS_STATE = 4u32; +pub const DFCS_BUTTONRADIOIMAGE: DFCS_STATE = 1u32; +pub const DFCS_BUTTONRADIOMASK: DFCS_STATE = 2u32; +pub const DFCS_CAPTIONCLOSE: DFCS_STATE = 0u32; +pub const DFCS_CAPTIONHELP: DFCS_STATE = 4u32; +pub const DFCS_CAPTIONMAX: DFCS_STATE = 2u32; +pub const DFCS_CAPTIONMIN: DFCS_STATE = 1u32; +pub const DFCS_CAPTIONRESTORE: DFCS_STATE = 3u32; +pub const DFCS_CHECKED: DFCS_STATE = 1024u32; +pub const DFCS_FLAT: DFCS_STATE = 16384u32; +pub const DFCS_HOT: DFCS_STATE = 4096u32; +pub const DFCS_INACTIVE: DFCS_STATE = 256u32; +pub const DFCS_MENUARROW: DFCS_STATE = 0u32; +pub const DFCS_MENUARROWRIGHT: DFCS_STATE = 4u32; +pub const DFCS_MENUBULLET: DFCS_STATE = 2u32; +pub const DFCS_MENUCHECK: DFCS_STATE = 1u32; +pub const DFCS_MONO: DFCS_STATE = 32768u32; +pub const DFCS_PUSHED: DFCS_STATE = 512u32; +pub const DFCS_SCROLLCOMBOBOX: DFCS_STATE = 5u32; +pub const DFCS_SCROLLDOWN: DFCS_STATE = 1u32; +pub const DFCS_SCROLLLEFT: DFCS_STATE = 2u32; +pub const DFCS_SCROLLRIGHT: DFCS_STATE = 3u32; +pub const DFCS_SCROLLSIZEGRIP: DFCS_STATE = 8u32; +pub const DFCS_SCROLLSIZEGRIPRIGHT: DFCS_STATE = 16u32; +pub const DFCS_SCROLLUP: DFCS_STATE = 0u32; +pub const DFCS_TRANSPARENT: DFCS_STATE = 2048u32; +pub const DFC_BUTTON: DFC_TYPE = 4u32; +pub const DFC_CAPTION: DFC_TYPE = 1u32; +pub const DFC_MENU: DFC_TYPE = 2u32; +pub const DFC_POPUPMENU: DFC_TYPE = 5u32; +pub const DFC_SCROLL: DFC_TYPE = 3u32; +pub const DIB_PAL_COLORS: DIB_USAGE = 1u32; +pub const DIB_RGB_COLORS: DIB_USAGE = 0u32; +pub const DISPLAYCONFIG_COLOR_ENCODING_INTENSITY: DISPLAYCONFIG_COLOR_ENCODING = 4i32; +pub const DISPLAYCONFIG_COLOR_ENCODING_RGB: DISPLAYCONFIG_COLOR_ENCODING = 0i32; +pub const DISPLAYCONFIG_COLOR_ENCODING_YCBCR420: DISPLAYCONFIG_COLOR_ENCODING = 3i32; +pub const DISPLAYCONFIG_COLOR_ENCODING_YCBCR422: DISPLAYCONFIG_COLOR_ENCODING = 2i32; +pub const DISPLAYCONFIG_COLOR_ENCODING_YCBCR444: DISPLAYCONFIG_COLOR_ENCODING = 1i32; +pub const DISPLAYCONFIG_MAXPATH: u32 = 1024u32; +pub const DISPLAYCONFIG_PATH_ACTIVE: u32 = 1u32; +pub const DISPLAYCONFIG_PATH_CLONE_GROUP_INVALID: u32 = 65535u32; +pub const DISPLAYCONFIG_PATH_DESKTOP_IMAGE_IDX_INVALID: u32 = 65535u32; +pub const DISPLAYCONFIG_PATH_MODE_IDX_INVALID: u32 = 4294967295u32; +pub const DISPLAYCONFIG_PATH_PREFERRED_UNSCALED: u32 = 4u32; +pub const DISPLAYCONFIG_PATH_SOURCE_MODE_IDX_INVALID: u32 = 65535u32; +pub const DISPLAYCONFIG_PATH_SUPPORT_VIRTUAL_MODE: u32 = 8u32; +pub const DISPLAYCONFIG_PATH_TARGET_MODE_IDX_INVALID: u32 = 65535u32; +pub const DISPLAYCONFIG_PATH_VALID_FLAGS: u32 = 29u32; +pub const DISPLAYCONFIG_SOURCE_IN_USE: u32 = 1u32; +pub const DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_BOOT: u32 = 4u32; +pub const DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_PATH: u32 = 8u32; +pub const DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_SYSTEM: u32 = 16u32; +pub const DISPLAYCONFIG_TARGET_FORCIBLE: u32 = 2u32; +pub const DISPLAYCONFIG_TARGET_IN_USE: u32 = 1u32; +pub const DISPLAYCONFIG_TARGET_IS_HMD: u32 = 32u32; +pub const DISPLAY_DEVICE_ACC_DRIVER: u32 = 64u32; +pub const DISPLAY_DEVICE_ACTIVE: u32 = 1u32; +pub const DISPLAY_DEVICE_ATTACHED: u32 = 2u32; +pub const DISPLAY_DEVICE_ATTACHED_TO_DESKTOP: u32 = 1u32; +pub const DISPLAY_DEVICE_DISCONNECT: u32 = 33554432u32; +pub const DISPLAY_DEVICE_MIRRORING_DRIVER: u32 = 8u32; +pub const DISPLAY_DEVICE_MODESPRUNED: u32 = 134217728u32; +pub const DISPLAY_DEVICE_MULTI_DRIVER: u32 = 2u32; +pub const DISPLAY_DEVICE_PRIMARY_DEVICE: u32 = 4u32; +pub const DISPLAY_DEVICE_RDPUDD: u32 = 16777216u32; +pub const DISPLAY_DEVICE_REMOTE: u32 = 67108864u32; +pub const DISPLAY_DEVICE_REMOVABLE: u32 = 32u32; +pub const DISPLAY_DEVICE_TS_COMPATIBLE: u32 = 2097152u32; +pub const DISPLAY_DEVICE_UNSAFE_MODES_ON: u32 = 524288u32; +pub const DISPLAY_DEVICE_VGA_COMPATIBLE: u32 = 16u32; +pub const DISP_CHANGE_BADDUALVIEW: DISP_CHANGE = -6i32; +pub const DISP_CHANGE_BADFLAGS: DISP_CHANGE = -4i32; +pub const DISP_CHANGE_BADMODE: DISP_CHANGE = -2i32; +pub const DISP_CHANGE_BADPARAM: DISP_CHANGE = -5i32; +pub const DISP_CHANGE_FAILED: DISP_CHANGE = -1i32; +pub const DISP_CHANGE_NOTUPDATED: DISP_CHANGE = -3i32; +pub const DISP_CHANGE_RESTART: DISP_CHANGE = 1i32; +pub const DISP_CHANGE_SUCCESSFUL: DISP_CHANGE = 0i32; +pub const DI_APPBANDING: u32 = 1u32; +pub const DI_ROPS_READ_DESTINATION: u32 = 2u32; +pub const DKGRAY_BRUSH: GET_STOCK_OBJECT_FLAGS = 3i32; +pub const DMBIN_AUTO: u32 = 7u32; +pub const DMBIN_CASSETTE: u32 = 14u32; +pub const DMBIN_ENVELOPE: u32 = 5u32; +pub const DMBIN_ENVMANUAL: u32 = 6u32; +pub const DMBIN_FORMSOURCE: u32 = 15u32; +pub const DMBIN_LARGECAPACITY: u32 = 11u32; +pub const DMBIN_LARGEFMT: u32 = 10u32; +pub const DMBIN_LAST: u32 = 15u32; +pub const DMBIN_LOWER: u32 = 2u32; +pub const DMBIN_MANUAL: u32 = 4u32; +pub const DMBIN_MIDDLE: u32 = 3u32; +pub const DMBIN_ONLYONE: u32 = 1u32; +pub const DMBIN_SMALLFMT: u32 = 9u32; +pub const DMBIN_TRACTOR: u32 = 8u32; +pub const DMBIN_UPPER: u32 = 1u32; +pub const DMBIN_USER: u32 = 256u32; +pub const DMCOLLATE_FALSE: DEVMODE_COLLATE = 0i16; +pub const DMCOLLATE_TRUE: DEVMODE_COLLATE = 1i16; +pub const DMCOLOR_COLOR: DEVMODE_COLOR = 2i16; +pub const DMCOLOR_MONOCHROME: DEVMODE_COLOR = 1i16; +pub const DMDFO_CENTER: DEVMODE_DISPLAY_FIXED_OUTPUT = 2u32; +pub const DMDFO_DEFAULT: DEVMODE_DISPLAY_FIXED_OUTPUT = 0u32; +pub const DMDFO_STRETCH: DEVMODE_DISPLAY_FIXED_OUTPUT = 1u32; +pub const DMDISPLAYFLAGS_TEXTMODE: u32 = 4u32; +pub const DMDITHER_COARSE: u32 = 2u32; +pub const DMDITHER_ERRORDIFFUSION: u32 = 5u32; +pub const DMDITHER_FINE: u32 = 3u32; +pub const DMDITHER_GRAYSCALE: u32 = 10u32; +pub const DMDITHER_LINEART: u32 = 4u32; +pub const DMDITHER_NONE: u32 = 1u32; +pub const DMDITHER_RESERVED6: u32 = 6u32; +pub const DMDITHER_RESERVED7: u32 = 7u32; +pub const DMDITHER_RESERVED8: u32 = 8u32; +pub const DMDITHER_RESERVED9: u32 = 9u32; +pub const DMDITHER_USER: u32 = 256u32; +pub const DMDO_180: DEVMODE_DISPLAY_ORIENTATION = 2u32; +pub const DMDO_270: DEVMODE_DISPLAY_ORIENTATION = 3u32; +pub const DMDO_90: DEVMODE_DISPLAY_ORIENTATION = 1u32; +pub const DMDO_DEFAULT: DEVMODE_DISPLAY_ORIENTATION = 0u32; +pub const DMDUP_HORIZONTAL: DEVMODE_DUPLEX = 3i16; +pub const DMDUP_SIMPLEX: DEVMODE_DUPLEX = 1i16; +pub const DMDUP_VERTICAL: DEVMODE_DUPLEX = 2i16; +pub const DMICMMETHOD_DEVICE: u32 = 4u32; +pub const DMICMMETHOD_DRIVER: u32 = 3u32; +pub const DMICMMETHOD_NONE: u32 = 1u32; +pub const DMICMMETHOD_SYSTEM: u32 = 2u32; +pub const DMICMMETHOD_USER: u32 = 256u32; +pub const DMICM_ABS_COLORIMETRIC: u32 = 4u32; +pub const DMICM_COLORIMETRIC: u32 = 3u32; +pub const DMICM_CONTRAST: u32 = 2u32; +pub const DMICM_SATURATE: u32 = 1u32; +pub const DMICM_USER: u32 = 256u32; +pub const DMMEDIA_GLOSSY: u32 = 3u32; +pub const DMMEDIA_STANDARD: u32 = 1u32; +pub const DMMEDIA_TRANSPARENCY: u32 = 2u32; +pub const DMMEDIA_USER: u32 = 256u32; +pub const DMNUP_ONEUP: u32 = 2u32; +pub const DMNUP_SYSTEM: u32 = 1u32; +pub const DMORIENT_LANDSCAPE: u32 = 2u32; +pub const DMORIENT_PORTRAIT: u32 = 1u32; +pub const DMPAPER_10X11: u32 = 45u32; +pub const DMPAPER_10X14: u32 = 16u32; +pub const DMPAPER_11X17: u32 = 17u32; +pub const DMPAPER_12X11: u32 = 90u32; +pub const DMPAPER_15X11: u32 = 46u32; +pub const DMPAPER_9X11: u32 = 44u32; +pub const DMPAPER_A2: u32 = 66u32; +pub const DMPAPER_A3: u32 = 8u32; +pub const DMPAPER_A3_EXTRA: u32 = 63u32; +pub const DMPAPER_A3_EXTRA_TRANSVERSE: u32 = 68u32; +pub const DMPAPER_A3_ROTATED: u32 = 76u32; +pub const DMPAPER_A3_TRANSVERSE: u32 = 67u32; +pub const DMPAPER_A4: u32 = 9u32; +pub const DMPAPER_A4SMALL: u32 = 10u32; +pub const DMPAPER_A4_EXTRA: u32 = 53u32; +pub const DMPAPER_A4_PLUS: u32 = 60u32; +pub const DMPAPER_A4_ROTATED: u32 = 77u32; +pub const DMPAPER_A4_TRANSVERSE: u32 = 55u32; +pub const DMPAPER_A5: u32 = 11u32; +pub const DMPAPER_A5_EXTRA: u32 = 64u32; +pub const DMPAPER_A5_ROTATED: u32 = 78u32; +pub const DMPAPER_A5_TRANSVERSE: u32 = 61u32; +pub const DMPAPER_A6: u32 = 70u32; +pub const DMPAPER_A6_ROTATED: u32 = 83u32; +pub const DMPAPER_A_PLUS: u32 = 57u32; +pub const DMPAPER_B4: u32 = 12u32; +pub const DMPAPER_B4_JIS_ROTATED: u32 = 79u32; +pub const DMPAPER_B5: u32 = 13u32; +pub const DMPAPER_B5_EXTRA: u32 = 65u32; +pub const DMPAPER_B5_JIS_ROTATED: u32 = 80u32; +pub const DMPAPER_B5_TRANSVERSE: u32 = 62u32; +pub const DMPAPER_B6_JIS: u32 = 88u32; +pub const DMPAPER_B6_JIS_ROTATED: u32 = 89u32; +pub const DMPAPER_B_PLUS: u32 = 58u32; +pub const DMPAPER_CSHEET: u32 = 24u32; +pub const DMPAPER_DBL_JAPANESE_POSTCARD: u32 = 69u32; +pub const DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: u32 = 82u32; +pub const DMPAPER_DSHEET: u32 = 25u32; +pub const DMPAPER_ENV_10: u32 = 20u32; +pub const DMPAPER_ENV_11: u32 = 21u32; +pub const DMPAPER_ENV_12: u32 = 22u32; +pub const DMPAPER_ENV_14: u32 = 23u32; +pub const DMPAPER_ENV_9: u32 = 19u32; +pub const DMPAPER_ENV_B4: u32 = 33u32; +pub const DMPAPER_ENV_B5: u32 = 34u32; +pub const DMPAPER_ENV_B6: u32 = 35u32; +pub const DMPAPER_ENV_C3: u32 = 29u32; +pub const DMPAPER_ENV_C4: u32 = 30u32; +pub const DMPAPER_ENV_C5: u32 = 28u32; +pub const DMPAPER_ENV_C6: u32 = 31u32; +pub const DMPAPER_ENV_C65: u32 = 32u32; +pub const DMPAPER_ENV_DL: u32 = 27u32; +pub const DMPAPER_ENV_INVITE: u32 = 47u32; +pub const DMPAPER_ENV_ITALY: u32 = 36u32; +pub const DMPAPER_ENV_MONARCH: u32 = 37u32; +pub const DMPAPER_ENV_PERSONAL: u32 = 38u32; +pub const DMPAPER_ESHEET: u32 = 26u32; +pub const DMPAPER_EXECUTIVE: u32 = 7u32; +pub const DMPAPER_FANFOLD_LGL_GERMAN: u32 = 41u32; +pub const DMPAPER_FANFOLD_STD_GERMAN: u32 = 40u32; +pub const DMPAPER_FANFOLD_US: u32 = 39u32; +pub const DMPAPER_FOLIO: u32 = 14u32; +pub const DMPAPER_ISO_B4: u32 = 42u32; +pub const DMPAPER_JAPANESE_POSTCARD: u32 = 43u32; +pub const DMPAPER_JAPANESE_POSTCARD_ROTATED: u32 = 81u32; +pub const DMPAPER_JENV_CHOU3: u32 = 73u32; +pub const DMPAPER_JENV_CHOU3_ROTATED: u32 = 86u32; +pub const DMPAPER_JENV_CHOU4: u32 = 74u32; +pub const DMPAPER_JENV_CHOU4_ROTATED: u32 = 87u32; +pub const DMPAPER_JENV_KAKU2: u32 = 71u32; +pub const DMPAPER_JENV_KAKU2_ROTATED: u32 = 84u32; +pub const DMPAPER_JENV_KAKU3: u32 = 72u32; +pub const DMPAPER_JENV_KAKU3_ROTATED: u32 = 85u32; +pub const DMPAPER_JENV_YOU4: u32 = 91u32; +pub const DMPAPER_JENV_YOU4_ROTATED: u32 = 92u32; +pub const DMPAPER_LAST: u32 = 118u32; +pub const DMPAPER_LEDGER: u32 = 4u32; +pub const DMPAPER_LEGAL: u32 = 5u32; +pub const DMPAPER_LEGAL_EXTRA: u32 = 51u32; +pub const DMPAPER_LETTER: u32 = 1u32; +pub const DMPAPER_LETTERSMALL: u32 = 2u32; +pub const DMPAPER_LETTER_EXTRA: u32 = 50u32; +pub const DMPAPER_LETTER_EXTRA_TRANSVERSE: u32 = 56u32; +pub const DMPAPER_LETTER_PLUS: u32 = 59u32; +pub const DMPAPER_LETTER_ROTATED: u32 = 75u32; +pub const DMPAPER_LETTER_TRANSVERSE: u32 = 54u32; +pub const DMPAPER_NOTE: u32 = 18u32; +pub const DMPAPER_P16K: u32 = 93u32; +pub const DMPAPER_P16K_ROTATED: u32 = 106u32; +pub const DMPAPER_P32K: u32 = 94u32; +pub const DMPAPER_P32KBIG: u32 = 95u32; +pub const DMPAPER_P32KBIG_ROTATED: u32 = 108u32; +pub const DMPAPER_P32K_ROTATED: u32 = 107u32; +pub const DMPAPER_PENV_1: u32 = 96u32; +pub const DMPAPER_PENV_10: u32 = 105u32; +pub const DMPAPER_PENV_10_ROTATED: u32 = 118u32; +pub const DMPAPER_PENV_1_ROTATED: u32 = 109u32; +pub const DMPAPER_PENV_2: u32 = 97u32; +pub const DMPAPER_PENV_2_ROTATED: u32 = 110u32; +pub const DMPAPER_PENV_3: u32 = 98u32; +pub const DMPAPER_PENV_3_ROTATED: u32 = 111u32; +pub const DMPAPER_PENV_4: u32 = 99u32; +pub const DMPAPER_PENV_4_ROTATED: u32 = 112u32; +pub const DMPAPER_PENV_5: u32 = 100u32; +pub const DMPAPER_PENV_5_ROTATED: u32 = 113u32; +pub const DMPAPER_PENV_6: u32 = 101u32; +pub const DMPAPER_PENV_6_ROTATED: u32 = 114u32; +pub const DMPAPER_PENV_7: u32 = 102u32; +pub const DMPAPER_PENV_7_ROTATED: u32 = 115u32; +pub const DMPAPER_PENV_8: u32 = 103u32; +pub const DMPAPER_PENV_8_ROTATED: u32 = 116u32; +pub const DMPAPER_PENV_9: u32 = 104u32; +pub const DMPAPER_PENV_9_ROTATED: u32 = 117u32; +pub const DMPAPER_QUARTO: u32 = 15u32; +pub const DMPAPER_RESERVED_48: u32 = 48u32; +pub const DMPAPER_RESERVED_49: u32 = 49u32; +pub const DMPAPER_STATEMENT: u32 = 6u32; +pub const DMPAPER_TABLOID: u32 = 3u32; +pub const DMPAPER_TABLOID_EXTRA: u32 = 52u32; +pub const DMPAPER_USER: u32 = 256u32; +pub const DMRES_DRAFT: i32 = -1i32; +pub const DMRES_HIGH: i32 = -4i32; +pub const DMRES_LOW: i32 = -2i32; +pub const DMRES_MEDIUM: i32 = -3i32; +pub const DMTT_BITMAP: DEVMODE_TRUETYPE_OPTION = 1i16; +pub const DMTT_DOWNLOAD: DEVMODE_TRUETYPE_OPTION = 2i16; +pub const DMTT_DOWNLOAD_OUTLINE: DEVMODE_TRUETYPE_OPTION = 4i16; +pub const DMTT_SUBDEV: DEVMODE_TRUETYPE_OPTION = 3i16; +pub const DM_BITSPERPEL: DEVMODE_FIELD_FLAGS = 262144u32; +pub const DM_COLLATE: DEVMODE_FIELD_FLAGS = 32768u32; +pub const DM_COLOR: DEVMODE_FIELD_FLAGS = 2048u32; +pub const DM_COPIES: DEVMODE_FIELD_FLAGS = 256u32; +pub const DM_COPY: DEVMODE_FIELD_FLAGS = 2u32; +pub const DM_DEFAULTSOURCE: DEVMODE_FIELD_FLAGS = 512u32; +pub const DM_DISPLAYFIXEDOUTPUT: DEVMODE_FIELD_FLAGS = 536870912u32; +pub const DM_DISPLAYFLAGS: DEVMODE_FIELD_FLAGS = 2097152u32; +pub const DM_DISPLAYFREQUENCY: DEVMODE_FIELD_FLAGS = 4194304u32; +pub const DM_DISPLAYORIENTATION: DEVMODE_FIELD_FLAGS = 128u32; +pub const DM_DITHERTYPE: DEVMODE_FIELD_FLAGS = 67108864u32; +pub const DM_DUPLEX: DEVMODE_FIELD_FLAGS = 4096u32; +pub const DM_FORMNAME: DEVMODE_FIELD_FLAGS = 65536u32; +pub const DM_ICMINTENT: DEVMODE_FIELD_FLAGS = 16777216u32; +pub const DM_ICMMETHOD: DEVMODE_FIELD_FLAGS = 8388608u32; +pub const DM_INTERLACED: DEVMODE_FIELD_FLAGS = 2u32; +pub const DM_IN_BUFFER: DEVMODE_FIELD_FLAGS = 8u32; +pub const DM_IN_PROMPT: DEVMODE_FIELD_FLAGS = 4u32; +pub const DM_LOGPIXELS: DEVMODE_FIELD_FLAGS = 131072u32; +pub const DM_MEDIATYPE: DEVMODE_FIELD_FLAGS = 33554432u32; +pub const DM_MODIFY: DEVMODE_FIELD_FLAGS = 8u32; +pub const DM_NUP: DEVMODE_FIELD_FLAGS = 64u32; +pub const DM_ORIENTATION: DEVMODE_FIELD_FLAGS = 1u32; +pub const DM_OUT_BUFFER: DEVMODE_FIELD_FLAGS = 2u32; +pub const DM_OUT_DEFAULT: DEVMODE_FIELD_FLAGS = 1u32; +pub const DM_PANNINGHEIGHT: DEVMODE_FIELD_FLAGS = 268435456u32; +pub const DM_PANNINGWIDTH: DEVMODE_FIELD_FLAGS = 134217728u32; +pub const DM_PAPERLENGTH: DEVMODE_FIELD_FLAGS = 4u32; +pub const DM_PAPERSIZE: DEVMODE_FIELD_FLAGS = 2u32; +pub const DM_PAPERWIDTH: DEVMODE_FIELD_FLAGS = 8u32; +pub const DM_PELSHEIGHT: DEVMODE_FIELD_FLAGS = 1048576u32; +pub const DM_PELSWIDTH: DEVMODE_FIELD_FLAGS = 524288u32; +pub const DM_POSITION: DEVMODE_FIELD_FLAGS = 32u32; +pub const DM_PRINTQUALITY: DEVMODE_FIELD_FLAGS = 1024u32; +pub const DM_PROMPT: DEVMODE_FIELD_FLAGS = 4u32; +pub const DM_SCALE: DEVMODE_FIELD_FLAGS = 16u32; +pub const DM_SPECVERSION: DEVMODE_FIELD_FLAGS = 1025u32; +pub const DM_TTOPTION: DEVMODE_FIELD_FLAGS = 16384u32; +pub const DM_UPDATE: DEVMODE_FIELD_FLAGS = 1u32; +pub const DM_YRESOLUTION: DEVMODE_FIELD_FLAGS = 8192u32; +pub const DOWNLOADFACE: u32 = 514u32; +pub const DOWNLOADHEADER: u32 = 4111u32; +pub const DRAFTMODE: u32 = 7u32; +pub const DRAFT_QUALITY: FONT_QUALITY = 1u8; +pub const DRAWPATTERNRECT: u32 = 25u32; +pub const DRIVERVERSION: GET_DEVICE_CAPS_INDEX = 0u32; +pub const DSS_DISABLED: DRAWSTATE_FLAGS = 32u32; +pub const DSS_HIDEPREFIX: DRAWSTATE_FLAGS = 512u32; +pub const DSS_MONO: DRAWSTATE_FLAGS = 128u32; +pub const DSS_NORMAL: DRAWSTATE_FLAGS = 0u32; +pub const DSS_PREFIXONLY: DRAWSTATE_FLAGS = 1024u32; +pub const DSS_RIGHT: DRAWSTATE_FLAGS = 32768u32; +pub const DSS_UNION: DRAWSTATE_FLAGS = 16u32; +pub const DSTINVERT: ROP_CODE = 5570569u32; +pub const DST_BITMAP: DRAWSTATE_FLAGS = 4u32; +pub const DST_COMPLEX: DRAWSTATE_FLAGS = 0u32; +pub const DST_ICON: DRAWSTATE_FLAGS = 3u32; +pub const DST_PREFIXTEXT: DRAWSTATE_FLAGS = 2u32; +pub const DST_TEXT: DRAWSTATE_FLAGS = 1u32; +pub const DT_BOTTOM: DRAW_TEXT_FORMAT = 8u32; +pub const DT_CALCRECT: DRAW_TEXT_FORMAT = 1024u32; +pub const DT_CENTER: DRAW_TEXT_FORMAT = 1u32; +pub const DT_CHARSTREAM: u32 = 4u32; +pub const DT_DISPFILE: u32 = 6u32; +pub const DT_EDITCONTROL: DRAW_TEXT_FORMAT = 8192u32; +pub const DT_END_ELLIPSIS: DRAW_TEXT_FORMAT = 32768u32; +pub const DT_EXPANDTABS: DRAW_TEXT_FORMAT = 64u32; +pub const DT_EXTERNALLEADING: DRAW_TEXT_FORMAT = 512u32; +pub const DT_HIDEPREFIX: DRAW_TEXT_FORMAT = 1048576u32; +pub const DT_INTERNAL: DRAW_TEXT_FORMAT = 4096u32; +pub const DT_LEFT: DRAW_TEXT_FORMAT = 0u32; +pub const DT_METAFILE: u32 = 5u32; +pub const DT_MODIFYSTRING: DRAW_TEXT_FORMAT = 65536u32; +pub const DT_NOCLIP: DRAW_TEXT_FORMAT = 256u32; +pub const DT_NOFULLWIDTHCHARBREAK: DRAW_TEXT_FORMAT = 524288u32; +pub const DT_NOPREFIX: DRAW_TEXT_FORMAT = 2048u32; +pub const DT_PATH_ELLIPSIS: DRAW_TEXT_FORMAT = 16384u32; +pub const DT_PLOTTER: u32 = 0u32; +pub const DT_PREFIXONLY: DRAW_TEXT_FORMAT = 2097152u32; +pub const DT_RASCAMERA: u32 = 3u32; +pub const DT_RASDISPLAY: u32 = 1u32; +pub const DT_RASPRINTER: u32 = 2u32; +pub const DT_RIGHT: DRAW_TEXT_FORMAT = 2u32; +pub const DT_RTLREADING: DRAW_TEXT_FORMAT = 131072u32; +pub const DT_SINGLELINE: DRAW_TEXT_FORMAT = 32u32; +pub const DT_TABSTOP: DRAW_TEXT_FORMAT = 128u32; +pub const DT_TOP: DRAW_TEXT_FORMAT = 0u32; +pub const DT_VCENTER: DRAW_TEXT_FORMAT = 4u32; +pub const DT_WORDBREAK: DRAW_TEXT_FORMAT = 16u32; +pub const DT_WORD_ELLIPSIS: DRAW_TEXT_FORMAT = 262144u32; +pub const EASTEUROPE_CHARSET: FONT_CHARSET = 238u8; +pub const EDGE_BUMP: DRAWEDGE_FLAGS = 9u32; +pub const EDGE_ETCHED: DRAWEDGE_FLAGS = 6u32; +pub const EDGE_RAISED: DRAWEDGE_FLAGS = 5u32; +pub const EDGE_SUNKEN: DRAWEDGE_FLAGS = 10u32; +pub const EDS_RAWMODE: ENUM_DISPLAY_SETTINGS_FLAGS = 2u32; +pub const EDS_ROTATEDMODE: ENUM_DISPLAY_SETTINGS_FLAGS = 4u32; +pub const ELF_CULTURE_LATIN: u32 = 0u32; +pub const ELF_VENDOR_SIZE: u32 = 4u32; +pub const ELF_VERSION: u32 = 0u32; +pub const EMBED_EDITABLE: EMBEDDED_FONT_PRIV_STATUS = 2u32; +pub const EMBED_INSTALLABLE: EMBEDDED_FONT_PRIV_STATUS = 3u32; +pub const EMBED_NOEMBEDDING: EMBEDDED_FONT_PRIV_STATUS = 4u32; +pub const EMBED_PREVIEWPRINT: EMBEDDED_FONT_PRIV_STATUS = 1u32; +pub const EMR_ABORTPATH: ENHANCED_METAFILE_RECORD_TYPE = 68u32; +pub const EMR_ALPHABLEND: ENHANCED_METAFILE_RECORD_TYPE = 114u32; +pub const EMR_ANGLEARC: ENHANCED_METAFILE_RECORD_TYPE = 41u32; +pub const EMR_ARC: ENHANCED_METAFILE_RECORD_TYPE = 45u32; +pub const EMR_ARCTO: ENHANCED_METAFILE_RECORD_TYPE = 55u32; +pub const EMR_BEGINPATH: ENHANCED_METAFILE_RECORD_TYPE = 59u32; +pub const EMR_BITBLT: ENHANCED_METAFILE_RECORD_TYPE = 76u32; +pub const EMR_CHORD: ENHANCED_METAFILE_RECORD_TYPE = 46u32; +pub const EMR_CLOSEFIGURE: ENHANCED_METAFILE_RECORD_TYPE = 61u32; +pub const EMR_COLORCORRECTPALETTE: ENHANCED_METAFILE_RECORD_TYPE = 111u32; +pub const EMR_COLORMATCHTOTARGETW: ENHANCED_METAFILE_RECORD_TYPE = 121u32; +pub const EMR_CREATEBRUSHINDIRECT: ENHANCED_METAFILE_RECORD_TYPE = 39u32; +pub const EMR_CREATECOLORSPACE: ENHANCED_METAFILE_RECORD_TYPE = 99u32; +pub const EMR_CREATECOLORSPACEW: ENHANCED_METAFILE_RECORD_TYPE = 122u32; +pub const EMR_CREATEDIBPATTERNBRUSHPT: ENHANCED_METAFILE_RECORD_TYPE = 94u32; +pub const EMR_CREATEMONOBRUSH: ENHANCED_METAFILE_RECORD_TYPE = 93u32; +pub const EMR_CREATEPALETTE: ENHANCED_METAFILE_RECORD_TYPE = 49u32; +pub const EMR_CREATEPEN: ENHANCED_METAFILE_RECORD_TYPE = 38u32; +pub const EMR_DELETECOLORSPACE: ENHANCED_METAFILE_RECORD_TYPE = 101u32; +pub const EMR_DELETEOBJECT: ENHANCED_METAFILE_RECORD_TYPE = 40u32; +pub const EMR_ELLIPSE: ENHANCED_METAFILE_RECORD_TYPE = 42u32; +pub const EMR_ENDPATH: ENHANCED_METAFILE_RECORD_TYPE = 60u32; +pub const EMR_EOF: ENHANCED_METAFILE_RECORD_TYPE = 14u32; +pub const EMR_EXCLUDECLIPRECT: ENHANCED_METAFILE_RECORD_TYPE = 29u32; +pub const EMR_EXTCREATEFONTINDIRECTW: ENHANCED_METAFILE_RECORD_TYPE = 82u32; +pub const EMR_EXTCREATEPEN: ENHANCED_METAFILE_RECORD_TYPE = 95u32; +pub const EMR_EXTFLOODFILL: ENHANCED_METAFILE_RECORD_TYPE = 53u32; +pub const EMR_EXTSELECTCLIPRGN: ENHANCED_METAFILE_RECORD_TYPE = 75u32; +pub const EMR_EXTTEXTOUTA: ENHANCED_METAFILE_RECORD_TYPE = 83u32; +pub const EMR_EXTTEXTOUTW: ENHANCED_METAFILE_RECORD_TYPE = 84u32; +pub const EMR_FILLPATH: ENHANCED_METAFILE_RECORD_TYPE = 62u32; +pub const EMR_FILLRGN: ENHANCED_METAFILE_RECORD_TYPE = 71u32; +pub const EMR_FLATTENPATH: ENHANCED_METAFILE_RECORD_TYPE = 65u32; +pub const EMR_FRAMERGN: ENHANCED_METAFILE_RECORD_TYPE = 72u32; +pub const EMR_GDICOMMENT: ENHANCED_METAFILE_RECORD_TYPE = 70u32; +pub const EMR_GLSBOUNDEDRECORD: ENHANCED_METAFILE_RECORD_TYPE = 103u32; +pub const EMR_GLSRECORD: ENHANCED_METAFILE_RECORD_TYPE = 102u32; +pub const EMR_GRADIENTFILL: ENHANCED_METAFILE_RECORD_TYPE = 118u32; +pub const EMR_HEADER: ENHANCED_METAFILE_RECORD_TYPE = 1u32; +pub const EMR_INTERSECTCLIPRECT: ENHANCED_METAFILE_RECORD_TYPE = 30u32; +pub const EMR_INVERTRGN: ENHANCED_METAFILE_RECORD_TYPE = 73u32; +pub const EMR_LINETO: ENHANCED_METAFILE_RECORD_TYPE = 54u32; +pub const EMR_MASKBLT: ENHANCED_METAFILE_RECORD_TYPE = 78u32; +pub const EMR_MAX: ENHANCED_METAFILE_RECORD_TYPE = 122u32; +pub const EMR_MIN: ENHANCED_METAFILE_RECORD_TYPE = 1u32; +pub const EMR_MODIFYWORLDTRANSFORM: ENHANCED_METAFILE_RECORD_TYPE = 36u32; +pub const EMR_MOVETOEX: ENHANCED_METAFILE_RECORD_TYPE = 27u32; +pub const EMR_OFFSETCLIPRGN: ENHANCED_METAFILE_RECORD_TYPE = 26u32; +pub const EMR_PAINTRGN: ENHANCED_METAFILE_RECORD_TYPE = 74u32; +pub const EMR_PIE: ENHANCED_METAFILE_RECORD_TYPE = 47u32; +pub const EMR_PIXELFORMAT: ENHANCED_METAFILE_RECORD_TYPE = 104u32; +pub const EMR_PLGBLT: ENHANCED_METAFILE_RECORD_TYPE = 79u32; +pub const EMR_POLYBEZIER: ENHANCED_METAFILE_RECORD_TYPE = 2u32; +pub const EMR_POLYBEZIER16: ENHANCED_METAFILE_RECORD_TYPE = 85u32; +pub const EMR_POLYBEZIERTO: ENHANCED_METAFILE_RECORD_TYPE = 5u32; +pub const EMR_POLYBEZIERTO16: ENHANCED_METAFILE_RECORD_TYPE = 88u32; +pub const EMR_POLYDRAW: ENHANCED_METAFILE_RECORD_TYPE = 56u32; +pub const EMR_POLYDRAW16: ENHANCED_METAFILE_RECORD_TYPE = 92u32; +pub const EMR_POLYGON: ENHANCED_METAFILE_RECORD_TYPE = 3u32; +pub const EMR_POLYGON16: ENHANCED_METAFILE_RECORD_TYPE = 86u32; +pub const EMR_POLYLINE: ENHANCED_METAFILE_RECORD_TYPE = 4u32; +pub const EMR_POLYLINE16: ENHANCED_METAFILE_RECORD_TYPE = 87u32; +pub const EMR_POLYLINETO: ENHANCED_METAFILE_RECORD_TYPE = 6u32; +pub const EMR_POLYLINETO16: ENHANCED_METAFILE_RECORD_TYPE = 89u32; +pub const EMR_POLYPOLYGON: ENHANCED_METAFILE_RECORD_TYPE = 8u32; +pub const EMR_POLYPOLYGON16: ENHANCED_METAFILE_RECORD_TYPE = 91u32; +pub const EMR_POLYPOLYLINE: ENHANCED_METAFILE_RECORD_TYPE = 7u32; +pub const EMR_POLYPOLYLINE16: ENHANCED_METAFILE_RECORD_TYPE = 90u32; +pub const EMR_POLYTEXTOUTA: ENHANCED_METAFILE_RECORD_TYPE = 96u32; +pub const EMR_POLYTEXTOUTW: ENHANCED_METAFILE_RECORD_TYPE = 97u32; +pub const EMR_REALIZEPALETTE: ENHANCED_METAFILE_RECORD_TYPE = 52u32; +pub const EMR_RECTANGLE: ENHANCED_METAFILE_RECORD_TYPE = 43u32; +pub const EMR_RESERVED_105: ENHANCED_METAFILE_RECORD_TYPE = 105u32; +pub const EMR_RESERVED_106: ENHANCED_METAFILE_RECORD_TYPE = 106u32; +pub const EMR_RESERVED_107: ENHANCED_METAFILE_RECORD_TYPE = 107u32; +pub const EMR_RESERVED_108: ENHANCED_METAFILE_RECORD_TYPE = 108u32; +pub const EMR_RESERVED_109: ENHANCED_METAFILE_RECORD_TYPE = 109u32; +pub const EMR_RESERVED_110: ENHANCED_METAFILE_RECORD_TYPE = 110u32; +pub const EMR_RESERVED_117: ENHANCED_METAFILE_RECORD_TYPE = 117u32; +pub const EMR_RESERVED_119: ENHANCED_METAFILE_RECORD_TYPE = 119u32; +pub const EMR_RESERVED_120: ENHANCED_METAFILE_RECORD_TYPE = 120u32; +pub const EMR_RESIZEPALETTE: ENHANCED_METAFILE_RECORD_TYPE = 51u32; +pub const EMR_RESTOREDC: ENHANCED_METAFILE_RECORD_TYPE = 34u32; +pub const EMR_ROUNDRECT: ENHANCED_METAFILE_RECORD_TYPE = 44u32; +pub const EMR_SAVEDC: ENHANCED_METAFILE_RECORD_TYPE = 33u32; +pub const EMR_SCALEVIEWPORTEXTEX: ENHANCED_METAFILE_RECORD_TYPE = 31u32; +pub const EMR_SCALEWINDOWEXTEX: ENHANCED_METAFILE_RECORD_TYPE = 32u32; +pub const EMR_SELECTCLIPPATH: ENHANCED_METAFILE_RECORD_TYPE = 67u32; +pub const EMR_SELECTOBJECT: ENHANCED_METAFILE_RECORD_TYPE = 37u32; +pub const EMR_SELECTPALETTE: ENHANCED_METAFILE_RECORD_TYPE = 48u32; +pub const EMR_SETARCDIRECTION: ENHANCED_METAFILE_RECORD_TYPE = 57u32; +pub const EMR_SETBKCOLOR: ENHANCED_METAFILE_RECORD_TYPE = 25u32; +pub const EMR_SETBKMODE: ENHANCED_METAFILE_RECORD_TYPE = 18u32; +pub const EMR_SETBRUSHORGEX: ENHANCED_METAFILE_RECORD_TYPE = 13u32; +pub const EMR_SETCOLORADJUSTMENT: ENHANCED_METAFILE_RECORD_TYPE = 23u32; +pub const EMR_SETCOLORSPACE: ENHANCED_METAFILE_RECORD_TYPE = 100u32; +pub const EMR_SETDIBITSTODEVICE: ENHANCED_METAFILE_RECORD_TYPE = 80u32; +pub const EMR_SETICMMODE: ENHANCED_METAFILE_RECORD_TYPE = 98u32; +pub const EMR_SETICMPROFILEA: ENHANCED_METAFILE_RECORD_TYPE = 112u32; +pub const EMR_SETICMPROFILEW: ENHANCED_METAFILE_RECORD_TYPE = 113u32; +pub const EMR_SETLAYOUT: ENHANCED_METAFILE_RECORD_TYPE = 115u32; +pub const EMR_SETMAPMODE: ENHANCED_METAFILE_RECORD_TYPE = 17u32; +pub const EMR_SETMAPPERFLAGS: ENHANCED_METAFILE_RECORD_TYPE = 16u32; +pub const EMR_SETMETARGN: ENHANCED_METAFILE_RECORD_TYPE = 28u32; +pub const EMR_SETMITERLIMIT: ENHANCED_METAFILE_RECORD_TYPE = 58u32; +pub const EMR_SETPALETTEENTRIES: ENHANCED_METAFILE_RECORD_TYPE = 50u32; +pub const EMR_SETPIXELV: ENHANCED_METAFILE_RECORD_TYPE = 15u32; +pub const EMR_SETPOLYFILLMODE: ENHANCED_METAFILE_RECORD_TYPE = 19u32; +pub const EMR_SETROP2: ENHANCED_METAFILE_RECORD_TYPE = 20u32; +pub const EMR_SETSTRETCHBLTMODE: ENHANCED_METAFILE_RECORD_TYPE = 21u32; +pub const EMR_SETTEXTALIGN: ENHANCED_METAFILE_RECORD_TYPE = 22u32; +pub const EMR_SETTEXTCOLOR: ENHANCED_METAFILE_RECORD_TYPE = 24u32; +pub const EMR_SETVIEWPORTEXTEX: ENHANCED_METAFILE_RECORD_TYPE = 11u32; +pub const EMR_SETVIEWPORTORGEX: ENHANCED_METAFILE_RECORD_TYPE = 12u32; +pub const EMR_SETWINDOWEXTEX: ENHANCED_METAFILE_RECORD_TYPE = 9u32; +pub const EMR_SETWINDOWORGEX: ENHANCED_METAFILE_RECORD_TYPE = 10u32; +pub const EMR_SETWORLDTRANSFORM: ENHANCED_METAFILE_RECORD_TYPE = 35u32; +pub const EMR_STRETCHBLT: ENHANCED_METAFILE_RECORD_TYPE = 77u32; +pub const EMR_STRETCHDIBITS: ENHANCED_METAFILE_RECORD_TYPE = 81u32; +pub const EMR_STROKEANDFILLPATH: ENHANCED_METAFILE_RECORD_TYPE = 63u32; +pub const EMR_STROKEPATH: ENHANCED_METAFILE_RECORD_TYPE = 64u32; +pub const EMR_TRANSPARENTBLT: ENHANCED_METAFILE_RECORD_TYPE = 116u32; +pub const EMR_WIDENPATH: ENHANCED_METAFILE_RECORD_TYPE = 66u32; +pub const ENABLEDUPLEX: u32 = 28u32; +pub const ENABLEPAIRKERNING: u32 = 769u32; +pub const ENABLERELATIVEWIDTHS: u32 = 768u32; +pub const ENCAPSULATED_POSTSCRIPT: u32 = 4116u32; +pub const ENDDOC: u32 = 11u32; +pub const END_PATH: u32 = 4098u32; +pub const ENHMETA_SIGNATURE: u32 = 1179469088u32; +pub const ENHMETA_STOCK_OBJECT: u32 = 2147483648u32; +pub const ENUMPAPERBINS: u32 = 31u32; +pub const ENUMPAPERMETRICS: u32 = 34u32; +pub const ENUM_CURRENT_SETTINGS: ENUM_DISPLAY_SETTINGS_MODE = 4294967295u32; +pub const ENUM_REGISTRY_SETTINGS: ENUM_DISPLAY_SETTINGS_MODE = 4294967294u32; +pub const EPSPRINTING: u32 = 33u32; +pub const EPS_SIGNATURE: u32 = 1179865157u32; +pub const ERROR: i32 = 0i32; +pub const ERR_FORMAT: u32 = 1006u32; +pub const ERR_GENERIC: u32 = 1000u32; +pub const ERR_INVALID_BASE: u32 = 1085u32; +pub const ERR_INVALID_CMAP: u32 = 1060u32; +pub const ERR_INVALID_DELTA_FORMAT: u32 = 1013u32; +pub const ERR_INVALID_EBLC: u32 = 1086u32; +pub const ERR_INVALID_GDEF: u32 = 1083u32; +pub const ERR_INVALID_GLYF: u32 = 1061u32; +pub const ERR_INVALID_GPOS: u32 = 1082u32; +pub const ERR_INVALID_GSUB: u32 = 1081u32; +pub const ERR_INVALID_HDMX: u32 = 1089u32; +pub const ERR_INVALID_HEAD: u32 = 1062u32; +pub const ERR_INVALID_HHEA: u32 = 1063u32; +pub const ERR_INVALID_HHEA_OR_VHEA: u32 = 1072u32; +pub const ERR_INVALID_HMTX: u32 = 1064u32; +pub const ERR_INVALID_HMTX_OR_VMTX: u32 = 1073u32; +pub const ERR_INVALID_JSTF: u32 = 1084u32; +pub const ERR_INVALID_LOCA: u32 = 1065u32; +pub const ERR_INVALID_LTSH: u32 = 1087u32; +pub const ERR_INVALID_MAXP: u32 = 1066u32; +pub const ERR_INVALID_MERGE_CHECKSUMS: u32 = 1011u32; +pub const ERR_INVALID_MERGE_FORMATS: u32 = 1010u32; +pub const ERR_INVALID_MERGE_NUMGLYPHS: u32 = 1012u32; +pub const ERR_INVALID_NAME: u32 = 1067u32; +pub const ERR_INVALID_OS2: u32 = 1069u32; +pub const ERR_INVALID_POST: u32 = 1068u32; +pub const ERR_INVALID_TTC_INDEX: u32 = 1015u32; +pub const ERR_INVALID_TTO: u32 = 1080u32; +pub const ERR_INVALID_VDMX: u32 = 1088u32; +pub const ERR_INVALID_VHEA: u32 = 1070u32; +pub const ERR_INVALID_VMTX: u32 = 1071u32; +pub const ERR_MEM: u32 = 1005u32; +pub const ERR_MISSING_CMAP: u32 = 1030u32; +pub const ERR_MISSING_EBDT: u32 = 1044u32; +pub const ERR_MISSING_GLYF: u32 = 1031u32; +pub const ERR_MISSING_HEAD: u32 = 1032u32; +pub const ERR_MISSING_HHEA: u32 = 1033u32; +pub const ERR_MISSING_HHEA_OR_VHEA: u32 = 1042u32; +pub const ERR_MISSING_HMTX: u32 = 1034u32; +pub const ERR_MISSING_HMTX_OR_VMTX: u32 = 1043u32; +pub const ERR_MISSING_LOCA: u32 = 1035u32; +pub const ERR_MISSING_MAXP: u32 = 1036u32; +pub const ERR_MISSING_NAME: u32 = 1037u32; +pub const ERR_MISSING_OS2: u32 = 1039u32; +pub const ERR_MISSING_POST: u32 = 1038u32; +pub const ERR_MISSING_VHEA: u32 = 1040u32; +pub const ERR_MISSING_VMTX: u32 = 1041u32; +pub const ERR_NOT_TTC: u32 = 1014u32; +pub const ERR_NO_GLYPHS: u32 = 1009u32; +pub const ERR_PARAMETER0: u32 = 1100u32; +pub const ERR_PARAMETER1: u32 = 1101u32; +pub const ERR_PARAMETER10: u32 = 1110u32; +pub const ERR_PARAMETER11: u32 = 1111u32; +pub const ERR_PARAMETER12: u32 = 1112u32; +pub const ERR_PARAMETER13: u32 = 1113u32; +pub const ERR_PARAMETER14: u32 = 1114u32; +pub const ERR_PARAMETER15: u32 = 1115u32; +pub const ERR_PARAMETER16: u32 = 1116u32; +pub const ERR_PARAMETER2: u32 = 1102u32; +pub const ERR_PARAMETER3: u32 = 1103u32; +pub const ERR_PARAMETER4: u32 = 1104u32; +pub const ERR_PARAMETER5: u32 = 1105u32; +pub const ERR_PARAMETER6: u32 = 1106u32; +pub const ERR_PARAMETER7: u32 = 1107u32; +pub const ERR_PARAMETER8: u32 = 1108u32; +pub const ERR_PARAMETER9: u32 = 1109u32; +pub const ERR_READCONTROL: u32 = 1003u32; +pub const ERR_READOUTOFBOUNDS: u32 = 1001u32; +pub const ERR_VERSION: u32 = 1008u32; +pub const ERR_WOULD_GROW: u32 = 1007u32; +pub const ERR_WRITECONTROL: u32 = 1004u32; +pub const ERR_WRITEOUTOFBOUNDS: u32 = 1002u32; +pub const ETO_CLIPPED: ETO_OPTIONS = 4u32; +pub const ETO_GLYPH_INDEX: ETO_OPTIONS = 16u32; +pub const ETO_IGNORELANGUAGE: ETO_OPTIONS = 4096u32; +pub const ETO_NUMERICSLATIN: ETO_OPTIONS = 2048u32; +pub const ETO_NUMERICSLOCAL: ETO_OPTIONS = 1024u32; +pub const ETO_OPAQUE: ETO_OPTIONS = 2u32; +pub const ETO_PDY: ETO_OPTIONS = 8192u32; +pub const ETO_REVERSE_INDEX_MAP: ETO_OPTIONS = 65536u32; +pub const ETO_RTLREADING: ETO_OPTIONS = 128u32; +pub const EXTTEXTOUT: u32 = 512u32; +pub const EXT_DEVICE_CAPS: u32 = 4099u32; +pub const E_ADDFONTFAILED: i32 = 512i32; +pub const E_API_NOTIMPL: i32 = 1i32; +pub const E_CHARCODECOUNTINVALID: i32 = 2i32; +pub const E_CHARCODESETINVALID: i32 = 3i32; +pub const E_CHARSETINVALID: i32 = 21i32; +pub const E_COULDNTCREATETEMPFILE: i32 = 513i32; +pub const E_DEVICETRUETYPEFONT: i32 = 4i32; +pub const E_ERRORACCESSINGEXCLUDELIST: i32 = 274i32; +pub const E_ERRORACCESSINGFACENAME: i32 = 13i32; +pub const E_ERRORACCESSINGFONTDATA: i32 = 12i32; +pub const E_ERRORCOMPRESSINGFONTDATA: i32 = 256i32; +pub const E_ERRORCONVERTINGCHARS: i32 = 18i32; +pub const E_ERRORCREATINGFONTFILE: i32 = 269i32; +pub const E_ERRORDECOMPRESSINGFONTDATA: i32 = 273i32; +pub const E_ERROREXPANDINGFONTDATA: i32 = 519i32; +pub const E_ERRORGETTINGDC: i32 = 520i32; +pub const E_ERRORREADINGFONTDATA: i32 = 267i32; +pub const E_ERRORUNICODECONVERSION: i32 = 17i32; +pub const E_EXCEPTION: i32 = 19i32; +pub const E_EXCEPTIONINCOMPRESSION: i32 = 522i32; +pub const E_EXCEPTIONINDECOMPRESSION: i32 = 521i32; +pub const E_FACENAMEINVALID: i32 = 275i32; +pub const E_FILE_NOT_FOUND: i32 = 23i32; +pub const E_FLAGSINVALID: i32 = 268i32; +pub const E_FONTALREADYEXISTS: i32 = 270i32; +pub const E_FONTDATAINVALID: i32 = 258i32; +pub const E_FONTFAMILYNAMENOTINFULL: i32 = 285i32; +pub const E_FONTFILECREATEFAILED: i32 = 515i32; +pub const E_FONTFILENOTFOUND: i32 = 517i32; +pub const E_FONTINSTALLFAILED: i32 = 272i32; +pub const E_FONTNAMEALREADYEXISTS: i32 = 271i32; +pub const E_FONTNOTEMBEDDABLE: i32 = 260i32; +pub const E_FONTREFERENCEINVALID: i32 = 8i32; +pub const E_FONTVARIATIONSIMULATED: i32 = 283i32; +pub const E_HDCINVALID: i32 = 6i32; +pub const E_INPUTPARAMINVALID: i32 = 25i32; +pub const E_NAMECHANGEFAILED: i32 = 259i32; +pub const E_NOFREEMEMORY: i32 = 7i32; +pub const E_NONE: i32 = 0i32; +pub const E_NOOS2: i32 = 265i32; +pub const E_NOTATRUETYPEFONT: i32 = 10i32; +pub const E_PBENABLEDINVALID: i32 = 280i32; +pub const E_PERMISSIONSINVALID: i32 = 279i32; +pub const E_PRIVSINVALID: i32 = 261i32; +pub const E_PRIVSTATUSINVALID: i32 = 278i32; +pub const E_READFROMSTREAMFAILED: i32 = 263i32; +pub const E_RESERVEDPARAMNOTNULL: i32 = 20i32; +pub const E_RESOURCEFILECREATEFAILED: i32 = 518i32; +pub const E_SAVETOSTREAMFAILED: i32 = 264i32; +pub const E_STATUSINVALID: i32 = 277i32; +pub const E_STREAMINVALID: i32 = 276i32; +pub const E_SUBSETTINGEXCEPTION: i32 = 281i32; +pub const E_SUBSETTINGFAILED: i32 = 262i32; +pub const E_SUBSTRING_TEST_FAIL: i32 = 282i32; +pub const E_T2NOFREEMEMORY: i32 = 266i32; +pub const E_TTC_INDEX_OUT_OF_RANGE: i32 = 24i32; +pub const E_WINDOWSAPI: i32 = 516i32; +pub const FEATURESETTING_CUSTPAPER: u32 = 3u32; +pub const FEATURESETTING_MIRROR: u32 = 4u32; +pub const FEATURESETTING_NEGATIVE: u32 = 5u32; +pub const FEATURESETTING_NUP: u32 = 0u32; +pub const FEATURESETTING_OUTPUT: u32 = 1u32; +pub const FEATURESETTING_PRIVATE_BEGIN: u32 = 4096u32; +pub const FEATURESETTING_PRIVATE_END: u32 = 8191u32; +pub const FEATURESETTING_PROTOCOL: u32 = 6u32; +pub const FEATURESETTING_PSLEVEL: u32 = 2u32; +pub const FF_DECORATIVE: FONT_FAMILY = 80u8; +pub const FF_DONTCARE: FONT_FAMILY = 0u8; +pub const FF_MODERN: FONT_FAMILY = 48u8; +pub const FF_ROMAN: FONT_FAMILY = 16u8; +pub const FF_SCRIPT: FONT_FAMILY = 64u8; +pub const FF_SWISS: FONT_FAMILY = 32u8; +pub const FIXED_PITCH: FONT_PITCH = 1u8; +pub const FLI_GLYPHS: i32 = 262144i32; +pub const FLI_MASK: u32 = 4155u32; +pub const FLOODFILLBORDER: EXT_FLOOD_FILL_TYPE = 0u32; +pub const FLOODFILLSURFACE: EXT_FLOOD_FILL_TYPE = 1u32; +pub const FLUSHOUTPUT: u32 = 6u32; +pub const FONTMAPPER_MAX: u32 = 10u32; +pub const FR_NOT_ENUM: FONT_RESOURCE_CHARACTERISTICS = 32u32; +pub const FR_PRIVATE: FONT_RESOURCE_CHARACTERISTICS = 16u32; +pub const FS_ARABIC: i32 = 64i32; +pub const FS_BALTIC: i32 = 128i32; +pub const FS_CHINESESIMP: i32 = 262144i32; +pub const FS_CHINESETRAD: i32 = 1048576i32; +pub const FS_CYRILLIC: i32 = 4i32; +pub const FS_GREEK: i32 = 8i32; +pub const FS_HEBREW: i32 = 32i32; +pub const FS_JISJAPAN: i32 = 131072i32; +pub const FS_JOHAB: i32 = 2097152i32; +pub const FS_LATIN1: i32 = 1i32; +pub const FS_LATIN2: i32 = 2i32; +pub const FS_SYMBOL: i32 = -2147483648i32; +pub const FS_THAI: i32 = 65536i32; +pub const FS_TURKISH: i32 = 16i32; +pub const FS_VIETNAMESE: i32 = 256i32; +pub const FS_WANSUNG: i32 = 524288i32; +pub const FW_BLACK: FONT_WEIGHT = 900u32; +pub const FW_BOLD: FONT_WEIGHT = 700u32; +pub const FW_DEMIBOLD: FONT_WEIGHT = 600u32; +pub const FW_DONTCARE: FONT_WEIGHT = 0u32; +pub const FW_EXTRABOLD: FONT_WEIGHT = 800u32; +pub const FW_EXTRALIGHT: FONT_WEIGHT = 200u32; +pub const FW_HEAVY: FONT_WEIGHT = 900u32; +pub const FW_LIGHT: FONT_WEIGHT = 300u32; +pub const FW_MEDIUM: FONT_WEIGHT = 500u32; +pub const FW_NORMAL: FONT_WEIGHT = 400u32; +pub const FW_REGULAR: FONT_WEIGHT = 400u32; +pub const FW_SEMIBOLD: FONT_WEIGHT = 600u32; +pub const FW_THIN: FONT_WEIGHT = 100u32; +pub const FW_ULTRABOLD: FONT_WEIGHT = 800u32; +pub const FW_ULTRALIGHT: FONT_WEIGHT = 200u32; +pub const GB2312_CHARSET: FONT_CHARSET = 134u8; +pub const GCPCLASS_ARABIC: u32 = 2u32; +pub const GCPCLASS_HEBREW: u32 = 2u32; +pub const GCPCLASS_LATIN: u32 = 1u32; +pub const GCPCLASS_LATINNUMBER: u32 = 5u32; +pub const GCPCLASS_LATINNUMERICSEPARATOR: u32 = 7u32; +pub const GCPCLASS_LATINNUMERICTERMINATOR: u32 = 6u32; +pub const GCPCLASS_LOCALNUMBER: u32 = 4u32; +pub const GCPCLASS_NEUTRAL: u32 = 3u32; +pub const GCPCLASS_NUMERICSEPARATOR: u32 = 8u32; +pub const GCPCLASS_POSTBOUNDLTR: u32 = 32u32; +pub const GCPCLASS_POSTBOUNDRTL: u32 = 16u32; +pub const GCPCLASS_PREBOUNDLTR: u32 = 128u32; +pub const GCPCLASS_PREBOUNDRTL: u32 = 64u32; +pub const GCPGLYPH_LINKAFTER: u32 = 16384u32; +pub const GCPGLYPH_LINKBEFORE: u32 = 32768u32; +pub const GCP_CLASSIN: GET_CHARACTER_PLACEMENT_FLAGS = 524288u32; +pub const GCP_DBCS: u32 = 1u32; +pub const GCP_DIACRITIC: GET_CHARACTER_PLACEMENT_FLAGS = 256u32; +pub const GCP_DISPLAYZWG: GET_CHARACTER_PLACEMENT_FLAGS = 4194304u32; +pub const GCP_ERROR: u32 = 32768u32; +pub const GCP_GLYPHSHAPE: GET_CHARACTER_PLACEMENT_FLAGS = 16u32; +pub const GCP_JUSTIFY: GET_CHARACTER_PLACEMENT_FLAGS = 65536u32; +pub const GCP_JUSTIFYIN: i32 = 2097152i32; +pub const GCP_KASHIDA: GET_CHARACTER_PLACEMENT_FLAGS = 1024u32; +pub const GCP_LIGATE: GET_CHARACTER_PLACEMENT_FLAGS = 32u32; +pub const GCP_MAXEXTENT: GET_CHARACTER_PLACEMENT_FLAGS = 1048576u32; +pub const GCP_NEUTRALOVERRIDE: GET_CHARACTER_PLACEMENT_FLAGS = 33554432u32; +pub const GCP_NUMERICOVERRIDE: GET_CHARACTER_PLACEMENT_FLAGS = 16777216u32; +pub const GCP_NUMERICSLATIN: GET_CHARACTER_PLACEMENT_FLAGS = 67108864u32; +pub const GCP_NUMERICSLOCAL: GET_CHARACTER_PLACEMENT_FLAGS = 134217728u32; +pub const GCP_REORDER: GET_CHARACTER_PLACEMENT_FLAGS = 2u32; +pub const GCP_SYMSWAPOFF: GET_CHARACTER_PLACEMENT_FLAGS = 8388608u32; +pub const GCP_USEKERNING: GET_CHARACTER_PLACEMENT_FLAGS = 8u32; +pub const GDICOMMENT_BEGINGROUP: u32 = 2u32; +pub const GDICOMMENT_ENDGROUP: u32 = 3u32; +pub const GDICOMMENT_IDENTIFIER: u32 = 1128875079u32; +pub const GDICOMMENT_MULTIFORMATS: u32 = 1073741828u32; +pub const GDICOMMENT_UNICODE_END: u32 = 128u32; +pub const GDICOMMENT_UNICODE_STRING: u32 = 64u32; +pub const GDICOMMENT_WINDOWS_METAFILE: u32 = 2147483649u32; +pub const GDIPLUS_TS_QUERYVER: u32 = 4122u32; +pub const GDIPLUS_TS_RECORD: u32 = 4123u32; +pub const GDIREGISTERDDRAWPACKETVERSION: u32 = 1u32; +pub const GDI_ERROR: i32 = -1i32; +pub const GETCOLORTABLE: u32 = 5u32; +pub const GETDEVICEUNITS: u32 = 42u32; +pub const GETEXTENDEDTEXTMETRICS: u32 = 256u32; +pub const GETEXTENTTABLE: u32 = 257u32; +pub const GETFACENAME: u32 = 513u32; +pub const GETPAIRKERNTABLE: u32 = 258u32; +pub const GETPENWIDTH: u32 = 16u32; +pub const GETPHYSPAGESIZE: u32 = 12u32; +pub const GETPRINTINGOFFSET: u32 = 13u32; +pub const GETSCALINGFACTOR: u32 = 14u32; +pub const GETSETPAPERBINS: u32 = 29u32; +pub const GETSETPAPERMETRICS: u32 = 35u32; +pub const GETSETPRINTORIENT: u32 = 30u32; +pub const GETSETSCREENPARAMS: u32 = 3072u32; +pub const GETTECHNOLGY: u32 = 20u32; +pub const GETTECHNOLOGY: u32 = 20u32; +pub const GETTRACKKERNTABLE: u32 = 259u32; +pub const GETVECTORBRUSHSIZE: u32 = 27u32; +pub const GETVECTORPENSIZE: u32 = 26u32; +pub const GET_PS_FEATURESETTING: u32 = 4121u32; +pub const GGI_MARK_NONEXISTING_GLYPHS: u32 = 1u32; +pub const GGO_BEZIER: GET_GLYPH_OUTLINE_FORMAT = 3u32; +pub const GGO_BITMAP: GET_GLYPH_OUTLINE_FORMAT = 1u32; +pub const GGO_GLYPH_INDEX: GET_GLYPH_OUTLINE_FORMAT = 128u32; +pub const GGO_GRAY2_BITMAP: GET_GLYPH_OUTLINE_FORMAT = 4u32; +pub const GGO_GRAY4_BITMAP: GET_GLYPH_OUTLINE_FORMAT = 5u32; +pub const GGO_GRAY8_BITMAP: GET_GLYPH_OUTLINE_FORMAT = 6u32; +pub const GGO_METRICS: GET_GLYPH_OUTLINE_FORMAT = 0u32; +pub const GGO_NATIVE: GET_GLYPH_OUTLINE_FORMAT = 2u32; +pub const GGO_UNHINTED: GET_GLYPH_OUTLINE_FORMAT = 256u32; +pub const GM_ADVANCED: GRAPHICS_MODE = 2i32; +pub const GM_COMPATIBLE: GRAPHICS_MODE = 1i32; +pub const GM_LAST: u32 = 2u32; +pub const GRADIENT_FILL_OP_FLAG: u32 = 255u32; +pub const GRADIENT_FILL_RECT_H: GRADIENT_FILL = 0u32; +pub const GRADIENT_FILL_RECT_V: GRADIENT_FILL = 1u32; +pub const GRADIENT_FILL_TRIANGLE: GRADIENT_FILL = 2u32; +pub const GRAY_BRUSH: GET_STOCK_OBJECT_FLAGS = 2i32; +pub const GREEK_CHARSET: FONT_CHARSET = 161u8; +pub const GS_8BIT_INDICES: u32 = 1u32; +pub const HALFTONE: STRETCH_BLT_MODE = 4i32; +pub const HANGEUL_CHARSET: FONT_CHARSET = 129u8; +pub const HANGUL_CHARSET: FONT_CHARSET = 129u8; +pub const HEBREW_CHARSET: FONT_CHARSET = 177u8; +pub const HOLLOW_BRUSH: GET_STOCK_OBJECT_FLAGS = 5i32; +pub const HORZRES: GET_DEVICE_CAPS_INDEX = 8u32; +pub const HORZSIZE: GET_DEVICE_CAPS_INDEX = 4u32; +pub const HS_API_MAX: u32 = 12u32; +pub const HS_BDIAGONAL: HATCH_BRUSH_STYLE = 3i32; +pub const HS_CROSS: HATCH_BRUSH_STYLE = 4i32; +pub const HS_DIAGCROSS: HATCH_BRUSH_STYLE = 5i32; +pub const HS_FDIAGONAL: HATCH_BRUSH_STYLE = 2i32; +pub const HS_HORIZONTAL: HATCH_BRUSH_STYLE = 0i32; +pub const HS_VERTICAL: HATCH_BRUSH_STYLE = 1i32; +pub const ILLUMINANT_A: u32 = 1u32; +pub const ILLUMINANT_B: u32 = 2u32; +pub const ILLUMINANT_C: u32 = 3u32; +pub const ILLUMINANT_D50: u32 = 4u32; +pub const ILLUMINANT_D55: u32 = 5u32; +pub const ILLUMINANT_D65: u32 = 6u32; +pub const ILLUMINANT_D75: u32 = 7u32; +pub const ILLUMINANT_DAYLIGHT: u32 = 3u32; +pub const ILLUMINANT_DEVICE_DEFAULT: u32 = 0u32; +pub const ILLUMINANT_F2: u32 = 8u32; +pub const ILLUMINANT_FLUORESCENT: u32 = 8u32; +pub const ILLUMINANT_MAX_INDEX: u32 = 8u32; +pub const ILLUMINANT_NTSC: u32 = 3u32; +pub const ILLUMINANT_TUNGSTEN: u32 = 1u32; +pub const JOHAB_CHARSET: FONT_CHARSET = 130u8; +pub const LAYOUT_BITMAPORIENTATIONPRESERVED: DC_LAYOUT = 8u32; +pub const LAYOUT_BTT: u32 = 2u32; +pub const LAYOUT_RTL: DC_LAYOUT = 1u32; +pub const LAYOUT_VBH: u32 = 4u32; +pub const LCS_CALIBRATED_RGB: i32 = 0i32; +pub const LCS_GM_ABS_COLORIMETRIC: i32 = 8i32; +pub const LCS_GM_BUSINESS: i32 = 1i32; +pub const LCS_GM_GRAPHICS: i32 = 2i32; +pub const LCS_GM_IMAGES: i32 = 4i32; +pub const LC_INTERIORS: u32 = 128u32; +pub const LC_MARKER: u32 = 4u32; +pub const LC_NONE: u32 = 0u32; +pub const LC_POLYLINE: u32 = 2u32; +pub const LC_POLYMARKER: u32 = 8u32; +pub const LC_STYLED: u32 = 32u32; +pub const LC_WIDE: u32 = 16u32; +pub const LC_WIDESTYLED: u32 = 64u32; +pub const LF_FACESIZE: u32 = 32u32; +pub const LF_FULLFACESIZE: u32 = 64u32; +pub const LICENSE_DEFAULT: FONT_LICENSE_PRIVS = 0u32; +pub const LICENSE_EDITABLE: FONT_LICENSE_PRIVS = 8u32; +pub const LICENSE_INSTALLABLE: FONT_LICENSE_PRIVS = 0u32; +pub const LICENSE_NOEMBEDDING: FONT_LICENSE_PRIVS = 2u32; +pub const LICENSE_PREVIEWPRINT: FONT_LICENSE_PRIVS = 4u32; +pub const LINECAPS: GET_DEVICE_CAPS_INDEX = 30u32; +pub const LOGPIXELSX: GET_DEVICE_CAPS_INDEX = 88u32; +pub const LOGPIXELSY: GET_DEVICE_CAPS_INDEX = 90u32; +pub const LPD_DOUBLEBUFFER: u32 = 1u32; +pub const LPD_SHARE_ACCUM: u32 = 256u32; +pub const LPD_SHARE_DEPTH: u32 = 64u32; +pub const LPD_SHARE_STENCIL: u32 = 128u32; +pub const LPD_STEREO: u32 = 2u32; +pub const LPD_SUPPORT_GDI: u32 = 16u32; +pub const LPD_SUPPORT_OPENGL: u32 = 32u32; +pub const LPD_SWAP_COPY: u32 = 1024u32; +pub const LPD_SWAP_EXCHANGE: u32 = 512u32; +pub const LPD_TRANSPARENT: u32 = 4096u32; +pub const LPD_TYPE_COLORINDEX: u32 = 1u32; +pub const LPD_TYPE_RGBA: u32 = 0u32; +pub const LTGRAY_BRUSH: GET_STOCK_OBJECT_FLAGS = 1i32; +pub const MAC_CHARSET: FONT_CHARSET = 77u8; +pub const MAXSTRETCHBLTMODE: u32 = 4u32; +pub const MERGECOPY: ROP_CODE = 12583114u32; +pub const MERGEPAINT: ROP_CODE = 12255782u32; +pub const METAFILE_DRIVER: u32 = 2049u32; +pub const META_ANIMATEPALETTE: u32 = 1078u32; +pub const META_ARC: u32 = 2071u32; +pub const META_BITBLT: u32 = 2338u32; +pub const META_CHORD: u32 = 2096u32; +pub const META_CREATEBRUSHINDIRECT: u32 = 764u32; +pub const META_CREATEFONTINDIRECT: u32 = 763u32; +pub const META_CREATEPALETTE: u32 = 247u32; +pub const META_CREATEPATTERNBRUSH: u32 = 505u32; +pub const META_CREATEPENINDIRECT: u32 = 762u32; +pub const META_CREATEREGION: u32 = 1791u32; +pub const META_DELETEOBJECT: u32 = 496u32; +pub const META_DIBBITBLT: u32 = 2368u32; +pub const META_DIBCREATEPATTERNBRUSH: u32 = 322u32; +pub const META_DIBSTRETCHBLT: u32 = 2881u32; +pub const META_ELLIPSE: u32 = 1048u32; +pub const META_ESCAPE: u32 = 1574u32; +pub const META_EXCLUDECLIPRECT: u32 = 1045u32; +pub const META_EXTFLOODFILL: u32 = 1352u32; +pub const META_EXTTEXTOUT: u32 = 2610u32; +pub const META_FILLREGION: u32 = 552u32; +pub const META_FLOODFILL: u32 = 1049u32; +pub const META_FRAMEREGION: u32 = 1065u32; +pub const META_INTERSECTCLIPRECT: u32 = 1046u32; +pub const META_INVERTREGION: u32 = 298u32; +pub const META_LINETO: u32 = 531u32; +pub const META_MOVETO: u32 = 532u32; +pub const META_OFFSETCLIPRGN: u32 = 544u32; +pub const META_OFFSETVIEWPORTORG: u32 = 529u32; +pub const META_OFFSETWINDOWORG: u32 = 527u32; +pub const META_PAINTREGION: u32 = 299u32; +pub const META_PATBLT: u32 = 1565u32; +pub const META_PIE: u32 = 2074u32; +pub const META_POLYGON: u32 = 804u32; +pub const META_POLYLINE: u32 = 805u32; +pub const META_POLYPOLYGON: u32 = 1336u32; +pub const META_REALIZEPALETTE: u32 = 53u32; +pub const META_RECTANGLE: u32 = 1051u32; +pub const META_RESIZEPALETTE: u32 = 313u32; +pub const META_RESTOREDC: u32 = 295u32; +pub const META_ROUNDRECT: u32 = 1564u32; +pub const META_SAVEDC: u32 = 30u32; +pub const META_SCALEVIEWPORTEXT: u32 = 1042u32; +pub const META_SCALEWINDOWEXT: u32 = 1040u32; +pub const META_SELECTCLIPREGION: u32 = 300u32; +pub const META_SELECTOBJECT: u32 = 301u32; +pub const META_SELECTPALETTE: u32 = 564u32; +pub const META_SETBKCOLOR: u32 = 513u32; +pub const META_SETBKMODE: u32 = 258u32; +pub const META_SETDIBTODEV: u32 = 3379u32; +pub const META_SETLAYOUT: u32 = 329u32; +pub const META_SETMAPMODE: u32 = 259u32; +pub const META_SETMAPPERFLAGS: u32 = 561u32; +pub const META_SETPALENTRIES: u32 = 55u32; +pub const META_SETPIXEL: u32 = 1055u32; +pub const META_SETPOLYFILLMODE: u32 = 262u32; +pub const META_SETRELABS: u32 = 261u32; +pub const META_SETROP2: u32 = 260u32; +pub const META_SETSTRETCHBLTMODE: u32 = 263u32; +pub const META_SETTEXTALIGN: u32 = 302u32; +pub const META_SETTEXTCHAREXTRA: u32 = 264u32; +pub const META_SETTEXTCOLOR: u32 = 521u32; +pub const META_SETTEXTJUSTIFICATION: u32 = 522u32; +pub const META_SETVIEWPORTEXT: u32 = 526u32; +pub const META_SETVIEWPORTORG: u32 = 525u32; +pub const META_SETWINDOWEXT: u32 = 524u32; +pub const META_SETWINDOWORG: u32 = 523u32; +pub const META_STRETCHBLT: u32 = 2851u32; +pub const META_STRETCHDIB: u32 = 3907u32; +pub const META_TEXTOUT: u32 = 1313u32; +pub const MFCOMMENT: u32 = 15u32; +pub const MILCORE_TS_QUERYVER_RESULT_FALSE: u32 = 0u32; +pub const MILCORE_TS_QUERYVER_RESULT_TRUE: u32 = 2147483647u32; +pub const MM_ANISOTROPIC: HDC_MAP_MODE = 8i32; +pub const MM_HIENGLISH: HDC_MAP_MODE = 5i32; +pub const MM_HIMETRIC: HDC_MAP_MODE = 3i32; +pub const MM_ISOTROPIC: HDC_MAP_MODE = 7i32; +pub const MM_LOENGLISH: HDC_MAP_MODE = 4i32; +pub const MM_LOMETRIC: HDC_MAP_MODE = 2i32; +pub const MM_MAX_AXES_NAMELEN: u32 = 16u32; +pub const MM_MAX_NUMAXES: u32 = 16u32; +pub const MM_TEXT: HDC_MAP_MODE = 1i32; +pub const MM_TWIPS: HDC_MAP_MODE = 6i32; +pub const MONITOR_DEFAULTTONEAREST: MONITOR_FROM_FLAGS = 2u32; +pub const MONITOR_DEFAULTTONULL: MONITOR_FROM_FLAGS = 0u32; +pub const MONITOR_DEFAULTTOPRIMARY: MONITOR_FROM_FLAGS = 1u32; +pub const MONO_FONT: u32 = 8u32; +pub const MOUSETRAILS: u32 = 39u32; +pub const MWT_IDENTITY: MODIFY_WORLD_TRANSFORM_MODE = 1u32; +pub const MWT_LEFTMULTIPLY: MODIFY_WORLD_TRANSFORM_MODE = 2u32; +pub const MWT_RIGHTMULTIPLY: MODIFY_WORLD_TRANSFORM_MODE = 3u32; +pub const NEWFRAME: u32 = 1u32; +pub const NEWTRANSPARENT: u32 = 3u32; +pub const NEXTBAND: u32 = 3u32; +pub const NOMIRRORBITMAP: ROP_CODE = 2147483648u32; +pub const NONANTIALIASED_QUALITY: FONT_QUALITY = 3u8; +pub const NOTSRCCOPY: ROP_CODE = 3342344u32; +pub const NOTSRCERASE: ROP_CODE = 1114278u32; +pub const NTM_BOLD: i32 = 32i32; +pub const NTM_DSIG: u32 = 2097152u32; +pub const NTM_ITALIC: i32 = 1i32; +pub const NTM_MULTIPLEMASTER: u32 = 524288u32; +pub const NTM_NONNEGATIVE_AC: u32 = 65536u32; +pub const NTM_PS_OPENTYPE: u32 = 131072u32; +pub const NTM_REGULAR: i32 = 64i32; +pub const NTM_TT_OPENTYPE: u32 = 262144u32; +pub const NTM_TYPE1: u32 = 1048576u32; +pub const NULLREGION: GDI_REGION_TYPE = 1i32; +pub const NULL_BRUSH: GET_STOCK_OBJECT_FLAGS = 5i32; +pub const NULL_PEN: GET_STOCK_OBJECT_FLAGS = 8i32; +pub const NUMBRUSHES: GET_DEVICE_CAPS_INDEX = 16u32; +pub const NUMCOLORS: GET_DEVICE_CAPS_INDEX = 24u32; +pub const NUMFONTS: GET_DEVICE_CAPS_INDEX = 22u32; +pub const NUMMARKERS: GET_DEVICE_CAPS_INDEX = 20u32; +pub const NUMPENS: GET_DEVICE_CAPS_INDEX = 18u32; +pub const NUMRESERVED: GET_DEVICE_CAPS_INDEX = 106u32; +pub const OBJ_BITMAP: OBJ_TYPE = 7i32; +pub const OBJ_BRUSH: OBJ_TYPE = 2i32; +pub const OBJ_COLORSPACE: OBJ_TYPE = 14i32; +pub const OBJ_DC: OBJ_TYPE = 3i32; +pub const OBJ_ENHMETADC: OBJ_TYPE = 12i32; +pub const OBJ_ENHMETAFILE: OBJ_TYPE = 13i32; +pub const OBJ_EXTPEN: OBJ_TYPE = 11i32; +pub const OBJ_FONT: OBJ_TYPE = 6i32; +pub const OBJ_MEMDC: OBJ_TYPE = 10i32; +pub const OBJ_METADC: OBJ_TYPE = 4i32; +pub const OBJ_METAFILE: OBJ_TYPE = 9i32; +pub const OBJ_PAL: OBJ_TYPE = 5i32; +pub const OBJ_PEN: OBJ_TYPE = 1i32; +pub const OBJ_REGION: OBJ_TYPE = 8i32; +pub const OEM_CHARSET: FONT_CHARSET = 255u8; +pub const OEM_FIXED_FONT: GET_STOCK_OBJECT_FLAGS = 10i32; +pub const OPAQUE: BACKGROUND_MODE = 2u32; +pub const OPENCHANNEL: u32 = 4110u32; +pub const OUT_CHARACTER_PRECIS: FONT_OUTPUT_PRECISION = 2u8; +pub const OUT_DEFAULT_PRECIS: FONT_OUTPUT_PRECISION = 0u8; +pub const OUT_DEVICE_PRECIS: FONT_OUTPUT_PRECISION = 5u8; +pub const OUT_OUTLINE_PRECIS: FONT_OUTPUT_PRECISION = 8u8; +pub const OUT_PS_ONLY_PRECIS: FONT_OUTPUT_PRECISION = 10u8; +pub const OUT_RASTER_PRECIS: FONT_OUTPUT_PRECISION = 6u8; +pub const OUT_SCREEN_OUTLINE_PRECIS: FONT_OUTPUT_PRECISION = 9u8; +pub const OUT_STRING_PRECIS: FONT_OUTPUT_PRECISION = 1u8; +pub const OUT_STROKE_PRECIS: FONT_OUTPUT_PRECISION = 3u8; +pub const OUT_TT_ONLY_PRECIS: FONT_OUTPUT_PRECISION = 7u8; +pub const OUT_TT_PRECIS: FONT_OUTPUT_PRECISION = 4u8; +pub const PANOSE_COUNT: u32 = 10u32; +pub const PAN_ANY: u32 = 0u32; +pub const PAN_ARMSTYLE_INDEX: u32 = 6u32; +pub const PAN_ARM_ANY: PAN_ARM_STYLE = 0u8; +pub const PAN_ARM_NO_FIT: PAN_ARM_STYLE = 1u8; +pub const PAN_BENT_ARMS_DOUBLE_SERIF: PAN_ARM_STYLE = 11u8; +pub const PAN_BENT_ARMS_HORZ: PAN_ARM_STYLE = 7u8; +pub const PAN_BENT_ARMS_SINGLE_SERIF: PAN_ARM_STYLE = 10u8; +pub const PAN_BENT_ARMS_VERT: PAN_ARM_STYLE = 9u8; +pub const PAN_BENT_ARMS_WEDGE: PAN_ARM_STYLE = 8u8; +pub const PAN_CONTRAST_ANY: PAN_CONTRAST = 0u8; +pub const PAN_CONTRAST_HIGH: PAN_CONTRAST = 8u8; +pub const PAN_CONTRAST_INDEX: PAN_CONTRAST = 4u8; +pub const PAN_CONTRAST_LOW: PAN_CONTRAST = 4u8; +pub const PAN_CONTRAST_MEDIUM: PAN_CONTRAST = 6u8; +pub const PAN_CONTRAST_MEDIUM_HIGH: PAN_CONTRAST = 7u8; +pub const PAN_CONTRAST_MEDIUM_LOW: PAN_CONTRAST = 5u8; +pub const PAN_CONTRAST_NONE: PAN_CONTRAST = 2u8; +pub const PAN_CONTRAST_NO_FIT: PAN_CONTRAST = 1u8; +pub const PAN_CONTRAST_VERY_HIGH: PAN_CONTRAST = 9u8; +pub const PAN_CONTRAST_VERY_LOW: PAN_CONTRAST = 3u8; +pub const PAN_CULTURE_LATIN: u32 = 0u32; +pub const PAN_FAMILYTYPE_INDEX: u32 = 0u32; +pub const PAN_FAMILY_ANY: PAN_FAMILY_TYPE = 0u8; +pub const PAN_FAMILY_DECORATIVE: PAN_FAMILY_TYPE = 4u8; +pub const PAN_FAMILY_NO_FIT: PAN_FAMILY_TYPE = 1u8; +pub const PAN_FAMILY_PICTORIAL: PAN_FAMILY_TYPE = 5u8; +pub const PAN_FAMILY_SCRIPT: PAN_FAMILY_TYPE = 3u8; +pub const PAN_FAMILY_TEXT_DISPLAY: PAN_FAMILY_TYPE = 2u8; +pub const PAN_LETTERFORM_INDEX: u32 = 7u32; +pub const PAN_LETT_FORM_ANY: PAN_LETT_FORM = 0u8; +pub const PAN_LETT_FORM_NO_FIT: PAN_LETT_FORM = 1u8; +pub const PAN_LETT_NORMAL_BOXED: PAN_LETT_FORM = 4u8; +pub const PAN_LETT_NORMAL_CONTACT: PAN_LETT_FORM = 2u8; +pub const PAN_LETT_NORMAL_FLATTENED: PAN_LETT_FORM = 5u8; +pub const PAN_LETT_NORMAL_OFF_CENTER: PAN_LETT_FORM = 7u8; +pub const PAN_LETT_NORMAL_ROUNDED: PAN_LETT_FORM = 6u8; +pub const PAN_LETT_NORMAL_SQUARE: PAN_LETT_FORM = 8u8; +pub const PAN_LETT_NORMAL_WEIGHTED: PAN_LETT_FORM = 3u8; +pub const PAN_LETT_OBLIQUE_BOXED: PAN_LETT_FORM = 11u8; +pub const PAN_LETT_OBLIQUE_CONTACT: PAN_LETT_FORM = 9u8; +pub const PAN_LETT_OBLIQUE_FLATTENED: PAN_LETT_FORM = 12u8; +pub const PAN_LETT_OBLIQUE_OFF_CENTER: PAN_LETT_FORM = 14u8; +pub const PAN_LETT_OBLIQUE_ROUNDED: PAN_LETT_FORM = 13u8; +pub const PAN_LETT_OBLIQUE_SQUARE: PAN_LETT_FORM = 15u8; +pub const PAN_LETT_OBLIQUE_WEIGHTED: PAN_LETT_FORM = 10u8; +pub const PAN_MIDLINE_ANY: PAN_MIDLINE = 0u8; +pub const PAN_MIDLINE_CONSTANT_POINTED: PAN_MIDLINE = 9u8; +pub const PAN_MIDLINE_CONSTANT_SERIFED: PAN_MIDLINE = 10u8; +pub const PAN_MIDLINE_CONSTANT_TRIMMED: PAN_MIDLINE = 8u8; +pub const PAN_MIDLINE_HIGH_POINTED: PAN_MIDLINE = 6u8; +pub const PAN_MIDLINE_HIGH_SERIFED: PAN_MIDLINE = 7u8; +pub const PAN_MIDLINE_HIGH_TRIMMED: PAN_MIDLINE = 5u8; +pub const PAN_MIDLINE_INDEX: PAN_MIDLINE = 8u8; +pub const PAN_MIDLINE_LOW_POINTED: PAN_MIDLINE = 12u8; +pub const PAN_MIDLINE_LOW_SERIFED: PAN_MIDLINE = 13u8; +pub const PAN_MIDLINE_LOW_TRIMMED: PAN_MIDLINE = 11u8; +pub const PAN_MIDLINE_NO_FIT: PAN_MIDLINE = 1u8; +pub const PAN_MIDLINE_STANDARD_POINTED: PAN_MIDLINE = 3u8; +pub const PAN_MIDLINE_STANDARD_SERIFED: PAN_MIDLINE = 4u8; +pub const PAN_MIDLINE_STANDARD_TRIMMED: PAN_MIDLINE = 2u8; +pub const PAN_NO_FIT: u32 = 1u32; +pub const PAN_PROPORTION_INDEX: u32 = 3u32; +pub const PAN_PROP_ANY: PAN_PROPORTION = 0u8; +pub const PAN_PROP_CONDENSED: PAN_PROPORTION = 6u8; +pub const PAN_PROP_EVEN_WIDTH: PAN_PROPORTION = 4u8; +pub const PAN_PROP_EXPANDED: PAN_PROPORTION = 5u8; +pub const PAN_PROP_MODERN: PAN_PROPORTION = 3u8; +pub const PAN_PROP_MONOSPACED: PAN_PROPORTION = 9u8; +pub const PAN_PROP_NO_FIT: PAN_PROPORTION = 1u8; +pub const PAN_PROP_OLD_STYLE: PAN_PROPORTION = 2u8; +pub const PAN_PROP_VERY_CONDENSED: PAN_PROPORTION = 8u8; +pub const PAN_PROP_VERY_EXPANDED: PAN_PROPORTION = 7u8; +pub const PAN_SERIFSTYLE_INDEX: u32 = 1u32; +pub const PAN_SERIF_ANY: PAN_SERIF_STYLE = 0u8; +pub const PAN_SERIF_BONE: PAN_SERIF_STYLE = 8u8; +pub const PAN_SERIF_COVE: PAN_SERIF_STYLE = 2u8; +pub const PAN_SERIF_EXAGGERATED: PAN_SERIF_STYLE = 9u8; +pub const PAN_SERIF_FLARED: PAN_SERIF_STYLE = 14u8; +pub const PAN_SERIF_NORMAL_SANS: PAN_SERIF_STYLE = 11u8; +pub const PAN_SERIF_NO_FIT: PAN_SERIF_STYLE = 1u8; +pub const PAN_SERIF_OBTUSE_COVE: PAN_SERIF_STYLE = 3u8; +pub const PAN_SERIF_OBTUSE_SANS: PAN_SERIF_STYLE = 12u8; +pub const PAN_SERIF_OBTUSE_SQUARE_COVE: PAN_SERIF_STYLE = 5u8; +pub const PAN_SERIF_PERP_SANS: PAN_SERIF_STYLE = 13u8; +pub const PAN_SERIF_ROUNDED: PAN_SERIF_STYLE = 15u8; +pub const PAN_SERIF_SQUARE: PAN_SERIF_STYLE = 6u8; +pub const PAN_SERIF_SQUARE_COVE: PAN_SERIF_STYLE = 4u8; +pub const PAN_SERIF_THIN: PAN_SERIF_STYLE = 7u8; +pub const PAN_SERIF_TRIANGLE: PAN_SERIF_STYLE = 10u8; +pub const PAN_STRAIGHT_ARMS_DOUBLE_SERIF: PAN_ARM_STYLE = 6u8; +pub const PAN_STRAIGHT_ARMS_HORZ: PAN_ARM_STYLE = 2u8; +pub const PAN_STRAIGHT_ARMS_SINGLE_SERIF: PAN_ARM_STYLE = 5u8; +pub const PAN_STRAIGHT_ARMS_VERT: PAN_ARM_STYLE = 4u8; +pub const PAN_STRAIGHT_ARMS_WEDGE: PAN_ARM_STYLE = 3u8; +pub const PAN_STROKEVARIATION_INDEX: u32 = 5u32; +pub const PAN_STROKE_ANY: PAN_STROKE_VARIATION = 0u8; +pub const PAN_STROKE_GRADUAL_DIAG: PAN_STROKE_VARIATION = 2u8; +pub const PAN_STROKE_GRADUAL_HORZ: PAN_STROKE_VARIATION = 5u8; +pub const PAN_STROKE_GRADUAL_TRAN: PAN_STROKE_VARIATION = 3u8; +pub const PAN_STROKE_GRADUAL_VERT: PAN_STROKE_VARIATION = 4u8; +pub const PAN_STROKE_INSTANT_VERT: PAN_STROKE_VARIATION = 8u8; +pub const PAN_STROKE_NO_FIT: PAN_STROKE_VARIATION = 1u8; +pub const PAN_STROKE_RAPID_HORZ: PAN_STROKE_VARIATION = 7u8; +pub const PAN_STROKE_RAPID_VERT: PAN_STROKE_VARIATION = 6u8; +pub const PAN_WEIGHT_ANY: PAN_WEIGHT = 0u8; +pub const PAN_WEIGHT_BLACK: PAN_WEIGHT = 10u8; +pub const PAN_WEIGHT_BOLD: PAN_WEIGHT = 8u8; +pub const PAN_WEIGHT_BOOK: PAN_WEIGHT = 5u8; +pub const PAN_WEIGHT_DEMI: PAN_WEIGHT = 7u8; +pub const PAN_WEIGHT_HEAVY: PAN_WEIGHT = 9u8; +pub const PAN_WEIGHT_INDEX: PAN_WEIGHT = 2u8; +pub const PAN_WEIGHT_LIGHT: PAN_WEIGHT = 3u8; +pub const PAN_WEIGHT_MEDIUM: PAN_WEIGHT = 6u8; +pub const PAN_WEIGHT_NORD: PAN_WEIGHT = 11u8; +pub const PAN_WEIGHT_NO_FIT: PAN_WEIGHT = 1u8; +pub const PAN_WEIGHT_THIN: PAN_WEIGHT = 4u8; +pub const PAN_WEIGHT_VERY_LIGHT: PAN_WEIGHT = 2u8; +pub const PAN_XHEIGHT_ANY: PAN_XHEIGHT = 0u8; +pub const PAN_XHEIGHT_CONSTANT_LARGE: PAN_XHEIGHT = 4u8; +pub const PAN_XHEIGHT_CONSTANT_SMALL: PAN_XHEIGHT = 2u8; +pub const PAN_XHEIGHT_CONSTANT_STD: PAN_XHEIGHT = 3u8; +pub const PAN_XHEIGHT_DUCKING_LARGE: PAN_XHEIGHT = 7u8; +pub const PAN_XHEIGHT_DUCKING_SMALL: PAN_XHEIGHT = 5u8; +pub const PAN_XHEIGHT_DUCKING_STD: PAN_XHEIGHT = 6u8; +pub const PAN_XHEIGHT_INDEX: PAN_XHEIGHT = 9u8; +pub const PAN_XHEIGHT_NO_FIT: PAN_XHEIGHT = 1u8; +pub const PASSTHROUGH: u32 = 19u32; +pub const PATCOPY: ROP_CODE = 15728673u32; +pub const PATINVERT: ROP_CODE = 5898313u32; +pub const PATPAINT: ROP_CODE = 16452105u32; +pub const PC_EXPLICIT: u32 = 2u32; +pub const PC_INTERIORS: u32 = 128u32; +pub const PC_NOCOLLAPSE: u32 = 4u32; +pub const PC_NONE: u32 = 0u32; +pub const PC_PATHS: u32 = 512u32; +pub const PC_POLYGON: u32 = 1u32; +pub const PC_POLYPOLYGON: u32 = 256u32; +pub const PC_RECTANGLE: u32 = 2u32; +pub const PC_RESERVED: u32 = 1u32; +pub const PC_SCANLINE: u32 = 8u32; +pub const PC_STYLED: u32 = 32u32; +pub const PC_TRAPEZOID: u32 = 4u32; +pub const PC_WIDE: u32 = 16u32; +pub const PC_WIDESTYLED: u32 = 64u32; +pub const PC_WINDPOLYGON: u32 = 4u32; +pub const PDEVICESIZE: GET_DEVICE_CAPS_INDEX = 26u32; +pub const PHYSICALHEIGHT: GET_DEVICE_CAPS_INDEX = 111u32; +pub const PHYSICALOFFSETX: GET_DEVICE_CAPS_INDEX = 112u32; +pub const PHYSICALOFFSETY: GET_DEVICE_CAPS_INDEX = 113u32; +pub const PHYSICALWIDTH: GET_DEVICE_CAPS_INDEX = 110u32; +pub const PLANES: GET_DEVICE_CAPS_INDEX = 14u32; +pub const POLYFILL_LAST: u32 = 2u32; +pub const POLYGONALCAPS: GET_DEVICE_CAPS_INDEX = 32u32; +pub const POSTSCRIPT_DATA: u32 = 37u32; +pub const POSTSCRIPT_IDENTIFY: u32 = 4117u32; +pub const POSTSCRIPT_IGNORE: u32 = 38u32; +pub const POSTSCRIPT_INJECTION: u32 = 4118u32; +pub const POSTSCRIPT_PASSTHROUGH: u32 = 4115u32; +pub const PRINTRATEUNIT_CPS: u32 = 2u32; +pub const PRINTRATEUNIT_IPM: u32 = 4u32; +pub const PRINTRATEUNIT_LPM: u32 = 3u32; +pub const PRINTRATEUNIT_PPM: u32 = 1u32; +pub const PROOF_QUALITY: FONT_QUALITY = 2u8; +pub const PR_JOBSTATUS: u32 = 0u32; +pub const PSIDENT_GDICENTRIC: u32 = 0u32; +pub const PSIDENT_PSCENTRIC: u32 = 1u32; +pub const PSINJECT_DLFONT: u32 = 3722304989u32; +pub const PSPROTOCOL_ASCII: u32 = 0u32; +pub const PSPROTOCOL_BCP: u32 = 1u32; +pub const PSPROTOCOL_BINARY: u32 = 3u32; +pub const PSPROTOCOL_TBCP: u32 = 2u32; +pub const PS_ALTERNATE: PEN_STYLE = 8i32; +pub const PS_COSMETIC: PEN_STYLE = 0i32; +pub const PS_DASH: PEN_STYLE = 1i32; +pub const PS_DASHDOT: PEN_STYLE = 3i32; +pub const PS_DASHDOTDOT: PEN_STYLE = 4i32; +pub const PS_DOT: PEN_STYLE = 2i32; +pub const PS_ENDCAP_FLAT: PEN_STYLE = 512i32; +pub const PS_ENDCAP_MASK: PEN_STYLE = 3840i32; +pub const PS_ENDCAP_ROUND: PEN_STYLE = 0i32; +pub const PS_ENDCAP_SQUARE: PEN_STYLE = 256i32; +pub const PS_GEOMETRIC: PEN_STYLE = 65536i32; +pub const PS_INSIDEFRAME: PEN_STYLE = 6i32; +pub const PS_JOIN_BEVEL: PEN_STYLE = 4096i32; +pub const PS_JOIN_MASK: PEN_STYLE = 61440i32; +pub const PS_JOIN_MITER: PEN_STYLE = 8192i32; +pub const PS_JOIN_ROUND: PEN_STYLE = 0i32; +pub const PS_NULL: PEN_STYLE = 5i32; +pub const PS_SOLID: PEN_STYLE = 0i32; +pub const PS_STYLE_MASK: PEN_STYLE = 15i32; +pub const PS_TYPE_MASK: PEN_STYLE = 983040i32; +pub const PS_USERSTYLE: PEN_STYLE = 7i32; +pub const PT_BEZIERTO: u32 = 4u32; +pub const PT_CLOSEFIGURE: u32 = 1u32; +pub const PT_LINETO: u32 = 2u32; +pub const PT_MOVETO: u32 = 6u32; +pub const QDI_DIBTOSCREEN: u32 = 4u32; +pub const QDI_GETDIBITS: u32 = 2u32; +pub const QDI_SETDIBITS: u32 = 1u32; +pub const QDI_STRETCHDIB: u32 = 8u32; +pub const QUERYDIBSUPPORT: u32 = 3073u32; +pub const QUERYESCSUPPORT: u32 = 8u32; +pub const QUERYROPSUPPORT: u32 = 40u32; +pub const R2_BLACK: R2_MODE = 1i32; +pub const R2_COPYPEN: R2_MODE = 13i32; +pub const R2_LAST: R2_MODE = 16i32; +pub const R2_MASKNOTPEN: R2_MODE = 3i32; +pub const R2_MASKPEN: R2_MODE = 9i32; +pub const R2_MASKPENNOT: R2_MODE = 5i32; +pub const R2_MERGENOTPEN: R2_MODE = 12i32; +pub const R2_MERGEPEN: R2_MODE = 15i32; +pub const R2_MERGEPENNOT: R2_MODE = 14i32; +pub const R2_NOP: R2_MODE = 11i32; +pub const R2_NOT: R2_MODE = 6i32; +pub const R2_NOTCOPYPEN: R2_MODE = 4i32; +pub const R2_NOTMASKPEN: R2_MODE = 8i32; +pub const R2_NOTMERGEPEN: R2_MODE = 2i32; +pub const R2_NOTXORPEN: R2_MODE = 10i32; +pub const R2_WHITE: R2_MODE = 16i32; +pub const R2_XORPEN: R2_MODE = 7i32; +pub const RASTERCAPS: GET_DEVICE_CAPS_INDEX = 38u32; +pub const RASTER_FONTTYPE: u32 = 1u32; +pub const RC_BANDING: u32 = 2u32; +pub const RC_BIGFONT: u32 = 1024u32; +pub const RC_BITBLT: u32 = 1u32; +pub const RC_BITMAP64: u32 = 8u32; +pub const RC_DEVBITS: u32 = 32768u32; +pub const RC_DIBTODEV: u32 = 512u32; +pub const RC_DI_BITMAP: u32 = 128u32; +pub const RC_FLOODFILL: u32 = 4096u32; +pub const RC_GDI20_OUTPUT: u32 = 16u32; +pub const RC_GDI20_STATE: u32 = 32u32; +pub const RC_OP_DX_OUTPUT: u32 = 16384u32; +pub const RC_PALETTE: u32 = 256u32; +pub const RC_SAVEBITMAP: u32 = 64u32; +pub const RC_SCALING: u32 = 4u32; +pub const RC_STRETCHBLT: u32 = 2048u32; +pub const RC_STRETCHDIB: u32 = 8192u32; +pub const RDH_RECTANGLES: u32 = 1u32; +pub const RDW_ALLCHILDREN: REDRAW_WINDOW_FLAGS = 128u32; +pub const RDW_ERASE: REDRAW_WINDOW_FLAGS = 4u32; +pub const RDW_ERASENOW: REDRAW_WINDOW_FLAGS = 512u32; +pub const RDW_FRAME: REDRAW_WINDOW_FLAGS = 1024u32; +pub const RDW_INTERNALPAINT: REDRAW_WINDOW_FLAGS = 2u32; +pub const RDW_INVALIDATE: REDRAW_WINDOW_FLAGS = 1u32; +pub const RDW_NOCHILDREN: REDRAW_WINDOW_FLAGS = 64u32; +pub const RDW_NOERASE: REDRAW_WINDOW_FLAGS = 32u32; +pub const RDW_NOFRAME: REDRAW_WINDOW_FLAGS = 2048u32; +pub const RDW_NOINTERNALPAINT: REDRAW_WINDOW_FLAGS = 16u32; +pub const RDW_UPDATENOW: REDRAW_WINDOW_FLAGS = 256u32; +pub const RDW_VALIDATE: REDRAW_WINDOW_FLAGS = 8u32; +pub const RELATIVE: u32 = 2u32; +pub const RESTORE_CTM: u32 = 4100u32; +pub const RGN_AND: RGN_COMBINE_MODE = 1i32; +pub const RGN_COPY: RGN_COMBINE_MODE = 5i32; +pub const RGN_DIFF: RGN_COMBINE_MODE = 4i32; +pub const RGN_ERROR: GDI_REGION_TYPE = 0i32; +pub const RGN_MAX: RGN_COMBINE_MODE = 5i32; +pub const RGN_MIN: RGN_COMBINE_MODE = 1i32; +pub const RGN_OR: RGN_COMBINE_MODE = 2i32; +pub const RGN_XOR: RGN_COMBINE_MODE = 3i32; +pub const RUSSIAN_CHARSET: FONT_CHARSET = 204u8; +pub const SAVE_CTM: u32 = 4101u32; +pub const SB_CONST_ALPHA: u32 = 1u32; +pub const SB_GRAD_RECT: u32 = 16u32; +pub const SB_GRAD_TRI: u32 = 32u32; +pub const SB_NONE: u32 = 0u32; +pub const SB_PIXEL_ALPHA: u32 = 2u32; +pub const SB_PREMULT_ALPHA: u32 = 4u32; +pub const SCALINGFACTORX: GET_DEVICE_CAPS_INDEX = 114u32; +pub const SCALINGFACTORY: GET_DEVICE_CAPS_INDEX = 115u32; +pub const SC_SCREENSAVE: u32 = 61760u32; +pub const SELECTDIB: u32 = 41u32; +pub const SELECTPAPERSOURCE: u32 = 18u32; +pub const SETABORTPROC: u32 = 9u32; +pub const SETALLJUSTVALUES: u32 = 771u32; +pub const SETCHARSET: u32 = 772u32; +pub const SETCOLORTABLE: u32 = 4u32; +pub const SETCOPYCOUNT: u32 = 17u32; +pub const SETDIBSCALING: u32 = 32u32; +pub const SETICMPROFILE_EMBEDED: u32 = 1u32; +pub const SETKERNTRACK: u32 = 770u32; +pub const SETLINECAP: u32 = 21u32; +pub const SETLINEJOIN: u32 = 22u32; +pub const SETMITERLIMIT: u32 = 23u32; +pub const SET_ARC_DIRECTION: u32 = 4102u32; +pub const SET_BACKGROUND_COLOR: u32 = 4103u32; +pub const SET_BOUNDS: u32 = 4109u32; +pub const SET_CLIP_BOX: u32 = 4108u32; +pub const SET_MIRROR_MODE: u32 = 4110u32; +pub const SET_POLY_MODE: u32 = 4104u32; +pub const SET_SCREEN_ANGLE: u32 = 4105u32; +pub const SET_SPREAD: u32 = 4106u32; +pub const SHADEBLENDCAPS: GET_DEVICE_CAPS_INDEX = 120u32; +pub const SHIFTJIS_CHARSET: FONT_CHARSET = 128u8; +pub const SIMPLEREGION: GDI_REGION_TYPE = 2i32; +pub const SIZEPALETTE: GET_DEVICE_CAPS_INDEX = 104u32; +pub const SPCLPASSTHROUGH2: u32 = 4568u32; +pub const SP_APPABORT: i32 = -2i32; +pub const SP_ERROR: i32 = -1i32; +pub const SP_NOTREPORTED: u32 = 16384u32; +pub const SP_OUTOFDISK: i32 = -4i32; +pub const SP_OUTOFMEMORY: i32 = -5i32; +pub const SP_USERABORT: i32 = -3i32; +pub const SRCAND: ROP_CODE = 8913094u32; +pub const SRCCOPY: ROP_CODE = 13369376u32; +pub const SRCERASE: ROP_CODE = 4457256u32; +pub const SRCINVERT: ROP_CODE = 6684742u32; +pub const SRCPAINT: ROP_CODE = 15597702u32; +pub const STARTDOC: u32 = 10u32; +pub const STOCK_LAST: u32 = 19u32; +pub const STRETCHBLT: u32 = 2048u32; +pub const STRETCH_ANDSCANS: STRETCH_BLT_MODE = 1i32; +pub const STRETCH_DELETESCANS: STRETCH_BLT_MODE = 3i32; +pub const STRETCH_HALFTONE: STRETCH_BLT_MODE = 4i32; +pub const STRETCH_ORSCANS: STRETCH_BLT_MODE = 2i32; +pub const SYMBOL_CHARSET: FONT_CHARSET = 2u8; +pub const SYSPAL_ERROR: u32 = 0u32; +pub const SYSPAL_NOSTATIC: SYSTEM_PALETTE_USE = 2u32; +pub const SYSPAL_NOSTATIC256: SYSTEM_PALETTE_USE = 3u32; +pub const SYSPAL_STATIC: SYSTEM_PALETTE_USE = 1u32; +pub const SYSRGN: u32 = 4u32; +pub const SYSTEM_FIXED_FONT: GET_STOCK_OBJECT_FLAGS = 16i32; +pub const SYSTEM_FONT: GET_STOCK_OBJECT_FLAGS = 13i32; +pub const TA_BASELINE: TEXT_ALIGN_OPTIONS = 24u32; +pub const TA_BOTTOM: TEXT_ALIGN_OPTIONS = 8u32; +pub const TA_CENTER: TEXT_ALIGN_OPTIONS = 6u32; +pub const TA_LEFT: TEXT_ALIGN_OPTIONS = 0u32; +pub const TA_MASK: TEXT_ALIGN_OPTIONS = 287u32; +pub const TA_NOUPDATECP: TEXT_ALIGN_OPTIONS = 0u32; +pub const TA_RIGHT: TEXT_ALIGN_OPTIONS = 2u32; +pub const TA_RTLREADING: TEXT_ALIGN_OPTIONS = 256u32; +pub const TA_TOP: TEXT_ALIGN_OPTIONS = 0u32; +pub const TA_UPDATECP: TEXT_ALIGN_OPTIONS = 1u32; +pub const TC_CP_STROKE: u32 = 4u32; +pub const TC_CR_90: u32 = 8u32; +pub const TC_CR_ANY: u32 = 16u32; +pub const TC_EA_DOUBLE: u32 = 512u32; +pub const TC_IA_ABLE: u32 = 1024u32; +pub const TC_OP_CHARACTER: u32 = 1u32; +pub const TC_OP_STROKE: u32 = 2u32; +pub const TC_RA_ABLE: u32 = 8192u32; +pub const TC_RESERVED: u32 = 32768u32; +pub const TC_SA_CONTIN: u32 = 256u32; +pub const TC_SA_DOUBLE: u32 = 64u32; +pub const TC_SA_INTEGER: u32 = 128u32; +pub const TC_SCROLLBLT: u32 = 65536u32; +pub const TC_SF_X_YINDEP: u32 = 32u32; +pub const TC_SO_ABLE: u32 = 4096u32; +pub const TC_UA_ABLE: u32 = 2048u32; +pub const TC_VA_ABLE: u32 = 16384u32; +pub const TECHNOLOGY: GET_DEVICE_CAPS_INDEX = 2u32; +pub const TEXTCAPS: GET_DEVICE_CAPS_INDEX = 34u32; +pub const THAI_CHARSET: FONT_CHARSET = 222u8; +pub const TMPF_DEVICE: TMPF_FLAGS = 8u8; +pub const TMPF_FIXED_PITCH: TMPF_FLAGS = 1u8; +pub const TMPF_TRUETYPE: TMPF_FLAGS = 4u8; +pub const TMPF_VECTOR: TMPF_FLAGS = 2u8; +pub const TRANSFORM_CTM: u32 = 4107u32; +pub const TRANSPARENT: BACKGROUND_MODE = 1u32; +pub const TRUETYPE_FONTTYPE: u32 = 4u32; +pub const TTDELETE_DONTREMOVEFONT: u32 = 1u32; +pub const TTEMBED_EMBEDEUDC: TTEMBED_FLAGS = 32u32; +pub const TTEMBED_EUDCEMBEDDED: u32 = 2u32; +pub const TTEMBED_FAILIFVARIATIONSIMULATED: u32 = 16u32; +pub const TTEMBED_RAW: TTEMBED_FLAGS = 0u32; +pub const TTEMBED_SUBSET: TTEMBED_FLAGS = 1u32; +pub const TTEMBED_SUBSETCANCEL: u32 = 4u32; +pub const TTEMBED_TTCOMPRESSED: TTEMBED_FLAGS = 4u32; +pub const TTEMBED_VARIATIONSIMULATED: u32 = 1u32; +pub const TTEMBED_WEBOBJECT: u32 = 128u32; +pub const TTEMBED_XORENCRYPTDATA: u32 = 268435456u32; +pub const TTFCFP_APPLE_PLATFORMID: u32 = 1u32; +pub const TTFCFP_DELTA: u32 = 2u32; +pub const TTFCFP_DONT_CARE: u32 = 65535u32; +pub const TTFCFP_FLAGS_COMPRESS: u32 = 2u32; +pub const TTFCFP_FLAGS_GLYPHLIST: u32 = 8u32; +pub const TTFCFP_FLAGS_SUBSET: u32 = 1u32; +pub const TTFCFP_FLAGS_TTC: u32 = 4u32; +pub const TTFCFP_ISO_PLATFORMID: CREATE_FONT_PACKAGE_SUBSET_PLATFORM = 2i16; +pub const TTFCFP_LANG_KEEP_ALL: u32 = 0u32; +pub const TTFCFP_MS_PLATFORMID: u32 = 3u32; +pub const TTFCFP_STD_MAC_CHAR_SET: CREATE_FONT_PACKAGE_SUBSET_ENCODING = 0i16; +pub const TTFCFP_SUBSET: u32 = 0u32; +pub const TTFCFP_SUBSET1: u32 = 1u32; +pub const TTFCFP_SYMBOL_CHAR_SET: CREATE_FONT_PACKAGE_SUBSET_ENCODING = 0i16; +pub const TTFCFP_UNICODE_CHAR_SET: CREATE_FONT_PACKAGE_SUBSET_ENCODING = 1i16; +pub const TTFCFP_UNICODE_PLATFORMID: CREATE_FONT_PACKAGE_SUBSET_PLATFORM = 0i16; +pub const TTFMFP_DELTA: u32 = 2u32; +pub const TTFMFP_SUBSET: u32 = 0u32; +pub const TTFMFP_SUBSET1: u32 = 1u32; +pub const TTLOAD_EUDC_OVERWRITE: u32 = 2u32; +pub const TTLOAD_EUDC_SET: u32 = 4u32; +pub const TTLOAD_FONT_IN_SYSSTARTUP: TTLOAD_EMBEDDED_FONT_STATUS = 2u32; +pub const TTLOAD_FONT_SUBSETTED: TTLOAD_EMBEDDED_FONT_STATUS = 1u32; +pub const TTLOAD_PRIVATE: u32 = 1u32; +pub const TT_AVAILABLE: u32 = 1u32; +pub const TT_ENABLED: u32 = 2u32; +pub const TT_POLYGON_TYPE: u32 = 24u32; +pub const TT_PRIM_CSPLINE: u32 = 3u32; +pub const TT_PRIM_LINE: u32 = 1u32; +pub const TT_PRIM_QSPLINE: u32 = 2u32; +pub const TURKISH_CHARSET: FONT_CHARSET = 162u8; +pub const VARIABLE_PITCH: FONT_PITCH = 2u8; +pub const VERTRES: GET_DEVICE_CAPS_INDEX = 10u32; +pub const VERTSIZE: GET_DEVICE_CAPS_INDEX = 6u32; +pub const VIETNAMESE_CHARSET: FONT_CHARSET = 163u8; +pub const VREFRESH: GET_DEVICE_CAPS_INDEX = 116u32; +pub const VTA_BASELINE: TEXT_ALIGN_OPTIONS = 24u32; +pub const VTA_BOTTOM: TEXT_ALIGN_OPTIONS = 2u32; +pub const VTA_CENTER: TEXT_ALIGN_OPTIONS = 6u32; +pub const VTA_LEFT: TEXT_ALIGN_OPTIONS = 8u32; +pub const VTA_RIGHT: TEXT_ALIGN_OPTIONS = 0u32; +pub const VTA_TOP: TEXT_ALIGN_OPTIONS = 0u32; +pub const WGL_FONT_LINES: u32 = 0u32; +pub const WGL_FONT_POLYGONS: u32 = 1u32; +pub const WGL_SWAPMULTIPLE_MAX: u32 = 16u32; +pub const WGL_SWAP_MAIN_PLANE: u32 = 1u32; +pub const WGL_SWAP_OVERLAY1: u32 = 2u32; +pub const WGL_SWAP_OVERLAY10: u32 = 1024u32; +pub const WGL_SWAP_OVERLAY11: u32 = 2048u32; +pub const WGL_SWAP_OVERLAY12: u32 = 4096u32; +pub const WGL_SWAP_OVERLAY13: u32 = 8192u32; +pub const WGL_SWAP_OVERLAY14: u32 = 16384u32; +pub const WGL_SWAP_OVERLAY15: u32 = 32768u32; +pub const WGL_SWAP_OVERLAY2: u32 = 4u32; +pub const WGL_SWAP_OVERLAY3: u32 = 8u32; +pub const WGL_SWAP_OVERLAY4: u32 = 16u32; +pub const WGL_SWAP_OVERLAY5: u32 = 32u32; +pub const WGL_SWAP_OVERLAY6: u32 = 64u32; +pub const WGL_SWAP_OVERLAY7: u32 = 128u32; +pub const WGL_SWAP_OVERLAY8: u32 = 256u32; +pub const WGL_SWAP_OVERLAY9: u32 = 512u32; +pub const WGL_SWAP_UNDERLAY1: u32 = 65536u32; +pub const WGL_SWAP_UNDERLAY10: u32 = 33554432u32; +pub const WGL_SWAP_UNDERLAY11: u32 = 67108864u32; +pub const WGL_SWAP_UNDERLAY12: u32 = 134217728u32; +pub const WGL_SWAP_UNDERLAY13: u32 = 268435456u32; +pub const WGL_SWAP_UNDERLAY14: u32 = 536870912u32; +pub const WGL_SWAP_UNDERLAY15: u32 = 1073741824u32; +pub const WGL_SWAP_UNDERLAY2: u32 = 131072u32; +pub const WGL_SWAP_UNDERLAY3: u32 = 262144u32; +pub const WGL_SWAP_UNDERLAY4: u32 = 524288u32; +pub const WGL_SWAP_UNDERLAY5: u32 = 1048576u32; +pub const WGL_SWAP_UNDERLAY6: u32 = 2097152u32; +pub const WGL_SWAP_UNDERLAY7: u32 = 4194304u32; +pub const WGL_SWAP_UNDERLAY8: u32 = 8388608u32; +pub const WGL_SWAP_UNDERLAY9: u32 = 16777216u32; +pub const WHITENESS: ROP_CODE = 16711778u32; +pub const WHITEONBLACK: STRETCH_BLT_MODE = 2i32; +pub const WHITE_BRUSH: GET_STOCK_OBJECT_FLAGS = 0i32; +pub const WHITE_PEN: GET_STOCK_OBJECT_FLAGS = 6i32; +pub const WINDING: CREATE_POLYGON_RGN_MODE = 2i32; +pub type ARC_DIRECTION = i32; +pub type BACKGROUND_MODE = u32; +pub type BI_COMPRESSION = u32; +pub type BRUSH_STYLE = u32; +pub type CDS_TYPE = u32; +pub type CREATE_FONT_PACKAGE_SUBSET_ENCODING = i16; +pub type CREATE_FONT_PACKAGE_SUBSET_PLATFORM = i16; +pub type CREATE_POLYGON_RGN_MODE = i32; +pub type DC_LAYOUT = u32; +pub type DEVMODE_COLLATE = i16; +pub type DEVMODE_COLOR = i16; +pub type DEVMODE_DISPLAY_FIXED_OUTPUT = u32; +pub type DEVMODE_DISPLAY_ORIENTATION = u32; +pub type DEVMODE_DUPLEX = i16; +pub type DEVMODE_FIELD_FLAGS = u32; +pub type DEVMODE_TRUETYPE_OPTION = i16; +pub type DFCS_STATE = u32; +pub type DFC_TYPE = u32; +pub type DIB_USAGE = u32; +pub type DISPLAYCONFIG_COLOR_ENCODING = i32; +pub type DISP_CHANGE = i32; +pub type DRAWEDGE_FLAGS = u32; +pub type DRAWSTATE_FLAGS = u32; +pub type DRAW_CAPTION_FLAGS = u32; +pub type DRAW_EDGE_FLAGS = u32; +pub type DRAW_TEXT_FORMAT = u32; +pub type EMBEDDED_FONT_PRIV_STATUS = u32; +pub type EMBED_FONT_CHARSET = u32; +pub type ENHANCED_METAFILE_RECORD_TYPE = u32; +pub type ENUM_DISPLAY_SETTINGS_FLAGS = u32; +pub type ENUM_DISPLAY_SETTINGS_MODE = u32; +pub type ETO_OPTIONS = u32; +pub type EXT_FLOOD_FILL_TYPE = u32; +pub type FONT_CHARSET = u8; +pub type FONT_CLIP_PRECISION = u8; +pub type FONT_FAMILY = u8; +pub type FONT_LICENSE_PRIVS = u32; +pub type FONT_OUTPUT_PRECISION = u8; +pub type FONT_PITCH = u8; +pub type FONT_QUALITY = u8; +pub type FONT_RESOURCE_CHARACTERISTICS = u32; +pub type FONT_WEIGHT = u32; +pub type GDI_REGION_TYPE = i32; +pub type GET_CHARACTER_PLACEMENT_FLAGS = u32; +pub type GET_DCX_FLAGS = u32; +pub type GET_DEVICE_CAPS_INDEX = u32; +pub type GET_GLYPH_OUTLINE_FORMAT = u32; +pub type GET_STOCK_OBJECT_FLAGS = i32; +pub type GRADIENT_FILL = u32; +pub type GRAPHICS_MODE = i32; +pub type HATCH_BRUSH_STYLE = i32; +pub type HDC_MAP_MODE = i32; +pub type MODIFY_WORLD_TRANSFORM_MODE = u32; +pub type MONITOR_FROM_FLAGS = u32; +pub type OBJ_TYPE = i32; +pub type PAN_ARM_STYLE = u8; +pub type PAN_CONTRAST = u8; +pub type PAN_FAMILY_TYPE = u8; +pub type PAN_LETT_FORM = u8; +pub type PAN_MIDLINE = u8; +pub type PAN_PROPORTION = u8; +pub type PAN_SERIF_STYLE = u8; +pub type PAN_STROKE_VARIATION = u8; +pub type PAN_WEIGHT = u8; +pub type PAN_XHEIGHT = u8; +pub type PEN_STYLE = i32; +pub type R2_MODE = i32; +pub type REDRAW_WINDOW_FLAGS = u32; +pub type RGN_COMBINE_MODE = i32; +pub type ROP_CODE = u32; +pub type SET_BOUNDS_RECT_FLAGS = u32; +pub type STRETCH_BLT_MODE = i32; +pub type SYSTEM_PALETTE_USE = u32; +pub type SYS_COLOR_INDEX = i32; +pub type TEXT_ALIGN_OPTIONS = u32; +pub type TMPF_FLAGS = u8; +pub type TTEMBED_FLAGS = u32; +pub type TTLOAD_EMBEDDED_FONT_STATUS = u32; +#[repr(C)] +pub struct ABC { + pub abcA: i32, + pub abcB: u32, + pub abcC: i32, +} +impl ::core::marker::Copy for ABC {} +impl ::core::clone::Clone for ABC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ABCFLOAT { + pub abcfA: f32, + pub abcfB: f32, + pub abcfC: f32, +} +impl ::core::marker::Copy for ABCFLOAT {} +impl ::core::clone::Clone for ABCFLOAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ABORTPATH { + pub emr: EMR, +} +impl ::core::marker::Copy for ABORTPATH {} +impl ::core::clone::Clone for ABORTPATH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AXESLISTA { + pub axlReserved: u32, + pub axlNumAxes: u32, + pub axlAxisInfo: [AXISINFOA; 16], +} +impl ::core::marker::Copy for AXESLISTA {} +impl ::core::clone::Clone for AXESLISTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AXESLISTW { + pub axlReserved: u32, + pub axlNumAxes: u32, + pub axlAxisInfo: [AXISINFOW; 16], +} +impl ::core::marker::Copy for AXESLISTW {} +impl ::core::clone::Clone for AXESLISTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AXISINFOA { + pub axMinValue: i32, + pub axMaxValue: i32, + pub axAxisName: [u8; 16], +} +impl ::core::marker::Copy for AXISINFOA {} +impl ::core::clone::Clone for AXISINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AXISINFOW { + pub axMinValue: i32, + pub axMaxValue: i32, + pub axAxisName: [u16; 16], +} +impl ::core::marker::Copy for AXISINFOW {} +impl ::core::clone::Clone for AXISINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BITMAP { + pub bmType: i32, + pub bmWidth: i32, + pub bmHeight: i32, + pub bmWidthBytes: i32, + pub bmPlanes: u16, + pub bmBitsPixel: u16, + pub bmBits: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for BITMAP {} +impl ::core::clone::Clone for BITMAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BITMAPCOREHEADER { + pub bcSize: u32, + pub bcWidth: u16, + pub bcHeight: u16, + pub bcPlanes: u16, + pub bcBitCount: u16, +} +impl ::core::marker::Copy for BITMAPCOREHEADER {} +impl ::core::clone::Clone for BITMAPCOREHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BITMAPCOREINFO { + pub bmciHeader: BITMAPCOREHEADER, + pub bmciColors: [RGBTRIPLE; 1], +} +impl ::core::marker::Copy for BITMAPCOREINFO {} +impl ::core::clone::Clone for BITMAPCOREINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct BITMAPFILEHEADER { + pub bfType: u16, + pub bfSize: u32, + pub bfReserved1: u16, + pub bfReserved2: u16, + pub bfOffBits: u32, +} +impl ::core::marker::Copy for BITMAPFILEHEADER {} +impl ::core::clone::Clone for BITMAPFILEHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BITMAPINFO { + pub bmiHeader: BITMAPINFOHEADER, + pub bmiColors: [RGBQUAD; 1], +} +impl ::core::marker::Copy for BITMAPINFO {} +impl ::core::clone::Clone for BITMAPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BITMAPINFOHEADER { + pub biSize: u32, + pub biWidth: i32, + pub biHeight: i32, + pub biPlanes: u16, + pub biBitCount: u16, + pub biCompression: u32, + pub biSizeImage: u32, + pub biXPelsPerMeter: i32, + pub biYPelsPerMeter: i32, + pub biClrUsed: u32, + pub biClrImportant: u32, +} +impl ::core::marker::Copy for BITMAPINFOHEADER {} +impl ::core::clone::Clone for BITMAPINFOHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BITMAPV4HEADER { + pub bV4Size: u32, + pub bV4Width: i32, + pub bV4Height: i32, + pub bV4Planes: u16, + pub bV4BitCount: u16, + pub bV4V4Compression: BI_COMPRESSION, + pub bV4SizeImage: u32, + pub bV4XPelsPerMeter: i32, + pub bV4YPelsPerMeter: i32, + pub bV4ClrUsed: u32, + pub bV4ClrImportant: u32, + pub bV4RedMask: u32, + pub bV4GreenMask: u32, + pub bV4BlueMask: u32, + pub bV4AlphaMask: u32, + pub bV4CSType: u32, + pub bV4Endpoints: CIEXYZTRIPLE, + pub bV4GammaRed: u32, + pub bV4GammaGreen: u32, + pub bV4GammaBlue: u32, +} +impl ::core::marker::Copy for BITMAPV4HEADER {} +impl ::core::clone::Clone for BITMAPV4HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BITMAPV5HEADER { + pub bV5Size: u32, + pub bV5Width: i32, + pub bV5Height: i32, + pub bV5Planes: u16, + pub bV5BitCount: u16, + pub bV5Compression: BI_COMPRESSION, + pub bV5SizeImage: u32, + pub bV5XPelsPerMeter: i32, + pub bV5YPelsPerMeter: i32, + pub bV5ClrUsed: u32, + pub bV5ClrImportant: u32, + pub bV5RedMask: u32, + pub bV5GreenMask: u32, + pub bV5BlueMask: u32, + pub bV5AlphaMask: u32, + pub bV5CSType: u32, + pub bV5Endpoints: CIEXYZTRIPLE, + pub bV5GammaRed: u32, + pub bV5GammaGreen: u32, + pub bV5GammaBlue: u32, + pub bV5Intent: u32, + pub bV5ProfileData: u32, + pub bV5ProfileSize: u32, + pub bV5Reserved: u32, +} +impl ::core::marker::Copy for BITMAPV5HEADER {} +impl ::core::clone::Clone for BITMAPV5HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BLENDFUNCTION { + pub BlendOp: u8, + pub BlendFlags: u8, + pub SourceConstantAlpha: u8, + pub AlphaFormat: u8, +} +impl ::core::marker::Copy for BLENDFUNCTION {} +impl ::core::clone::Clone for BLENDFUNCTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CIEXYZ { + pub ciexyzX: i32, + pub ciexyzY: i32, + pub ciexyzZ: i32, +} +impl ::core::marker::Copy for CIEXYZ {} +impl ::core::clone::Clone for CIEXYZ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CIEXYZTRIPLE { + pub ciexyzRed: CIEXYZ, + pub ciexyzGreen: CIEXYZ, + pub ciexyzBlue: CIEXYZ, +} +impl ::core::marker::Copy for CIEXYZTRIPLE {} +impl ::core::clone::Clone for CIEXYZTRIPLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLORADJUSTMENT { + pub caSize: u16, + pub caFlags: u16, + pub caIlluminantIndex: u16, + pub caRedGamma: u16, + pub caGreenGamma: u16, + pub caBlueGamma: u16, + pub caReferenceBlack: u16, + pub caReferenceWhite: u16, + pub caContrast: i16, + pub caBrightness: i16, + pub caColorfulness: i16, + pub caRedGreenTint: i16, +} +impl ::core::marker::Copy for COLORADJUSTMENT {} +impl ::core::clone::Clone for COLORADJUSTMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DESIGNVECTOR { + pub dvReserved: u32, + pub dvNumAxes: u32, + pub dvValues: [i32; 16], +} +impl ::core::marker::Copy for DESIGNVECTOR {} +impl ::core::clone::Clone for DESIGNVECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVMODEA { + pub dmDeviceName: [u8; 32], + pub dmSpecVersion: u16, + pub dmDriverVersion: u16, + pub dmSize: u16, + pub dmDriverExtra: u16, + pub dmFields: DEVMODE_FIELD_FLAGS, + pub Anonymous1: DEVMODEA_0, + pub dmColor: DEVMODE_COLOR, + pub dmDuplex: DEVMODE_DUPLEX, + pub dmYResolution: i16, + pub dmTTOption: DEVMODE_TRUETYPE_OPTION, + pub dmCollate: DEVMODE_COLLATE, + pub dmFormName: [u8; 32], + pub dmLogPixels: u16, + pub dmBitsPerPel: u32, + pub dmPelsWidth: u32, + pub dmPelsHeight: u32, + pub Anonymous2: DEVMODEA_1, + pub dmDisplayFrequency: u32, + pub dmICMMethod: u32, + pub dmICMIntent: u32, + pub dmMediaType: u32, + pub dmDitherType: u32, + pub dmReserved1: u32, + pub dmReserved2: u32, + pub dmPanningWidth: u32, + pub dmPanningHeight: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVMODEA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVMODEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DEVMODEA_0 { + pub Anonymous1: DEVMODEA_0_0, + pub Anonymous2: DEVMODEA_0_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVMODEA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVMODEA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVMODEA_0_0 { + pub dmOrientation: i16, + pub dmPaperSize: i16, + pub dmPaperLength: i16, + pub dmPaperWidth: i16, + pub dmScale: i16, + pub dmCopies: i16, + pub dmDefaultSource: i16, + pub dmPrintQuality: i16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVMODEA_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVMODEA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVMODEA_0_1 { + pub dmPosition: super::super::Foundation::POINTL, + pub dmDisplayOrientation: DEVMODE_DISPLAY_ORIENTATION, + pub dmDisplayFixedOutput: DEVMODE_DISPLAY_FIXED_OUTPUT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVMODEA_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVMODEA_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DEVMODEA_1 { + pub dmDisplayFlags: u32, + pub dmNup: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVMODEA_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVMODEA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVMODEW { + pub dmDeviceName: [u16; 32], + pub dmSpecVersion: u16, + pub dmDriverVersion: u16, + pub dmSize: u16, + pub dmDriverExtra: u16, + pub dmFields: DEVMODE_FIELD_FLAGS, + pub Anonymous1: DEVMODEW_0, + pub dmColor: DEVMODE_COLOR, + pub dmDuplex: DEVMODE_DUPLEX, + pub dmYResolution: i16, + pub dmTTOption: DEVMODE_TRUETYPE_OPTION, + pub dmCollate: DEVMODE_COLLATE, + pub dmFormName: [u16; 32], + pub dmLogPixels: u16, + pub dmBitsPerPel: u32, + pub dmPelsWidth: u32, + pub dmPelsHeight: u32, + pub Anonymous2: DEVMODEW_1, + pub dmDisplayFrequency: u32, + pub dmICMMethod: u32, + pub dmICMIntent: u32, + pub dmMediaType: u32, + pub dmDitherType: u32, + pub dmReserved1: u32, + pub dmReserved2: u32, + pub dmPanningWidth: u32, + pub dmPanningHeight: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVMODEW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVMODEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DEVMODEW_0 { + pub Anonymous1: DEVMODEW_0_0, + pub Anonymous2: DEVMODEW_0_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVMODEW_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVMODEW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVMODEW_0_0 { + pub dmOrientation: i16, + pub dmPaperSize: i16, + pub dmPaperLength: i16, + pub dmPaperWidth: i16, + pub dmScale: i16, + pub dmCopies: i16, + pub dmDefaultSource: i16, + pub dmPrintQuality: i16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVMODEW_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVMODEW_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVMODEW_0_1 { + pub dmPosition: super::super::Foundation::POINTL, + pub dmDisplayOrientation: DEVMODE_DISPLAY_ORIENTATION, + pub dmDisplayFixedOutput: DEVMODE_DISPLAY_FIXED_OUTPUT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVMODEW_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVMODEW_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DEVMODEW_1 { + pub dmDisplayFlags: u32, + pub dmNup: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVMODEW_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVMODEW_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DIBSECTION { + pub dsBm: BITMAP, + pub dsBmih: BITMAPINFOHEADER, + pub dsBitfields: [u32; 3], + pub dshSection: super::super::Foundation::HANDLE, + pub dsOffset: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DIBSECTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DIBSECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISPLAY_DEVICEA { + pub cb: u32, + pub DeviceName: [u8; 32], + pub DeviceString: [u8; 128], + pub StateFlags: u32, + pub DeviceID: [u8; 128], + pub DeviceKey: [u8; 128], +} +impl ::core::marker::Copy for DISPLAY_DEVICEA {} +impl ::core::clone::Clone for DISPLAY_DEVICEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISPLAY_DEVICEW { + pub cb: u32, + pub DeviceName: [u16; 32], + pub DeviceString: [u16; 128], + pub StateFlags: u32, + pub DeviceID: [u16; 128], + pub DeviceKey: [u16; 128], +} +impl ::core::marker::Copy for DISPLAY_DEVICEW {} +impl ::core::clone::Clone for DISPLAY_DEVICEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRAWTEXTPARAMS { + pub cbSize: u32, + pub iTabLength: i32, + pub iLeftMargin: i32, + pub iRightMargin: i32, + pub uiLengthDrawn: u32, +} +impl ::core::marker::Copy for DRAWTEXTPARAMS {} +impl ::core::clone::Clone for DRAWTEXTPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMR { + pub iType: ENHANCED_METAFILE_RECORD_TYPE, + pub nSize: u32, +} +impl ::core::marker::Copy for EMR {} +impl ::core::clone::Clone for EMR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRALPHABLEND { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub xDest: i32, + pub yDest: i32, + pub cxDest: i32, + pub cyDest: i32, + pub dwRop: u32, + pub xSrc: i32, + pub ySrc: i32, + pub xformSrc: XFORM, + pub crBkColorSrc: super::super::Foundation::COLORREF, + pub iUsageSrc: u32, + pub offBmiSrc: u32, + pub cbBmiSrc: u32, + pub offBitsSrc: u32, + pub cbBitsSrc: u32, + pub cxSrc: i32, + pub cySrc: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRALPHABLEND {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRALPHABLEND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRANGLEARC { + pub emr: EMR, + pub ptlCenter: super::super::Foundation::POINTL, + pub nRadius: u32, + pub eStartAngle: f32, + pub eSweepAngle: f32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRANGLEARC {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRANGLEARC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRARC { + pub emr: EMR, + pub rclBox: super::super::Foundation::RECTL, + pub ptlStart: super::super::Foundation::POINTL, + pub ptlEnd: super::super::Foundation::POINTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRARC {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRARC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRBITBLT { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub xDest: i32, + pub yDest: i32, + pub cxDest: i32, + pub cyDest: i32, + pub dwRop: u32, + pub xSrc: i32, + pub ySrc: i32, + pub xformSrc: XFORM, + pub crBkColorSrc: super::super::Foundation::COLORREF, + pub iUsageSrc: u32, + pub offBmiSrc: u32, + pub cbBmiSrc: u32, + pub offBitsSrc: u32, + pub cbBitsSrc: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRBITBLT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRBITBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRCOLORCORRECTPALETTE { + pub emr: EMR, + pub ihPalette: u32, + pub nFirstEntry: u32, + pub nPalEntries: u32, + pub nReserved: u32, +} +impl ::core::marker::Copy for EMRCOLORCORRECTPALETTE {} +impl ::core::clone::Clone for EMRCOLORCORRECTPALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRCOLORMATCHTOTARGET { + pub emr: EMR, + pub dwAction: u32, + pub dwFlags: u32, + pub cbName: u32, + pub cbData: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for EMRCOLORMATCHTOTARGET {} +impl ::core::clone::Clone for EMRCOLORMATCHTOTARGET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRCREATEBRUSHINDIRECT { + pub emr: EMR, + pub ihBrush: u32, + pub lb: LOGBRUSH32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRCREATEBRUSHINDIRECT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRCREATEBRUSHINDIRECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRCREATEDIBPATTERNBRUSHPT { + pub emr: EMR, + pub ihBrush: u32, + pub iUsage: u32, + pub offBmi: u32, + pub cbBmi: u32, + pub offBits: u32, + pub cbBits: u32, +} +impl ::core::marker::Copy for EMRCREATEDIBPATTERNBRUSHPT {} +impl ::core::clone::Clone for EMRCREATEDIBPATTERNBRUSHPT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRCREATEMONOBRUSH { + pub emr: EMR, + pub ihBrush: u32, + pub iUsage: u32, + pub offBmi: u32, + pub cbBmi: u32, + pub offBits: u32, + pub cbBits: u32, +} +impl ::core::marker::Copy for EMRCREATEMONOBRUSH {} +impl ::core::clone::Clone for EMRCREATEMONOBRUSH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRCREATEPALETTE { + pub emr: EMR, + pub ihPal: u32, + pub lgpl: LOGPALETTE, +} +impl ::core::marker::Copy for EMRCREATEPALETTE {} +impl ::core::clone::Clone for EMRCREATEPALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRCREATEPEN { + pub emr: EMR, + pub ihPen: u32, + pub lopn: LOGPEN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRCREATEPEN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRCREATEPEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRELLIPSE { + pub emr: EMR, + pub rclBox: super::super::Foundation::RECTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRELLIPSE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRELLIPSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMREOF { + pub emr: EMR, + pub nPalEntries: u32, + pub offPalEntries: u32, + pub nSizeLast: u32, +} +impl ::core::marker::Copy for EMREOF {} +impl ::core::clone::Clone for EMREOF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMREXCLUDECLIPRECT { + pub emr: EMR, + pub rclClip: super::super::Foundation::RECTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMREXCLUDECLIPRECT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMREXCLUDECLIPRECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMREXTCREATEFONTINDIRECTW { + pub emr: EMR, + pub ihFont: u32, + pub elfw: EXTLOGFONTW, +} +impl ::core::marker::Copy for EMREXTCREATEFONTINDIRECTW {} +impl ::core::clone::Clone for EMREXTCREATEFONTINDIRECTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMREXTCREATEPEN { + pub emr: EMR, + pub ihPen: u32, + pub offBmi: u32, + pub cbBmi: u32, + pub offBits: u32, + pub cbBits: u32, + pub elp: EXTLOGPEN32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMREXTCREATEPEN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMREXTCREATEPEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMREXTESCAPE { + pub emr: EMR, + pub iEscape: i32, + pub cbEscData: i32, + pub EscData: [u8; 1], +} +impl ::core::marker::Copy for EMREXTESCAPE {} +impl ::core::clone::Clone for EMREXTESCAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMREXTFLOODFILL { + pub emr: EMR, + pub ptlStart: super::super::Foundation::POINTL, + pub crColor: super::super::Foundation::COLORREF, + pub iMode: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMREXTFLOODFILL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMREXTFLOODFILL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMREXTSELECTCLIPRGN { + pub emr: EMR, + pub cbRgnData: u32, + pub iMode: u32, + pub RgnData: [u8; 1], +} +impl ::core::marker::Copy for EMREXTSELECTCLIPRGN {} +impl ::core::clone::Clone for EMREXTSELECTCLIPRGN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMREXTTEXTOUTA { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub iGraphicsMode: u32, + pub exScale: f32, + pub eyScale: f32, + pub emrtext: EMRTEXT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMREXTTEXTOUTA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMREXTTEXTOUTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRFILLPATH { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRFILLPATH {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRFILLPATH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRFILLRGN { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub cbRgnData: u32, + pub ihBrush: u32, + pub RgnData: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRFILLRGN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRFILLRGN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRFORMAT { + pub dSignature: u32, + pub nVersion: u32, + pub cbData: u32, + pub offData: u32, +} +impl ::core::marker::Copy for EMRFORMAT {} +impl ::core::clone::Clone for EMRFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRFRAMERGN { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub cbRgnData: u32, + pub ihBrush: u32, + pub szlStroke: super::super::Foundation::SIZE, + pub RgnData: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRFRAMERGN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRFRAMERGN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRGDICOMMENT { + pub emr: EMR, + pub cbData: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for EMRGDICOMMENT {} +impl ::core::clone::Clone for EMRGDICOMMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRGLSBOUNDEDRECORD { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub cbData: u32, + pub Data: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRGLSBOUNDEDRECORD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRGLSBOUNDEDRECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRGLSRECORD { + pub emr: EMR, + pub cbData: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for EMRGLSRECORD {} +impl ::core::clone::Clone for EMRGLSRECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRGRADIENTFILL { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub nVer: u32, + pub nTri: u32, + pub ulMode: GRADIENT_FILL, + pub Ver: [TRIVERTEX; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRGRADIENTFILL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRGRADIENTFILL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRINVERTRGN { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub cbRgnData: u32, + pub RgnData: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRINVERTRGN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRINVERTRGN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRLINETO { + pub emr: EMR, + pub ptl: super::super::Foundation::POINTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRLINETO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRLINETO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRMASKBLT { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub xDest: i32, + pub yDest: i32, + pub cxDest: i32, + pub cyDest: i32, + pub dwRop: u32, + pub xSrc: i32, + pub ySrc: i32, + pub xformSrc: XFORM, + pub crBkColorSrc: super::super::Foundation::COLORREF, + pub iUsageSrc: u32, + pub offBmiSrc: u32, + pub cbBmiSrc: u32, + pub offBitsSrc: u32, + pub cbBitsSrc: u32, + pub xMask: i32, + pub yMask: i32, + pub iUsageMask: u32, + pub offBmiMask: u32, + pub cbBmiMask: u32, + pub offBitsMask: u32, + pub cbBitsMask: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRMASKBLT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRMASKBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRMODIFYWORLDTRANSFORM { + pub emr: EMR, + pub xform: XFORM, + pub iMode: MODIFY_WORLD_TRANSFORM_MODE, +} +impl ::core::marker::Copy for EMRMODIFYWORLDTRANSFORM {} +impl ::core::clone::Clone for EMRMODIFYWORLDTRANSFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRNAMEDESCAPE { + pub emr: EMR, + pub iEscape: i32, + pub cbDriver: i32, + pub cbEscData: i32, + pub EscData: [u8; 1], +} +impl ::core::marker::Copy for EMRNAMEDESCAPE {} +impl ::core::clone::Clone for EMRNAMEDESCAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMROFFSETCLIPRGN { + pub emr: EMR, + pub ptlOffset: super::super::Foundation::POINTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMROFFSETCLIPRGN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMROFFSETCLIPRGN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRPLGBLT { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub aptlDest: [super::super::Foundation::POINTL; 3], + pub xSrc: i32, + pub ySrc: i32, + pub cxSrc: i32, + pub cySrc: i32, + pub xformSrc: XFORM, + pub crBkColorSrc: super::super::Foundation::COLORREF, + pub iUsageSrc: u32, + pub offBmiSrc: u32, + pub cbBmiSrc: u32, + pub offBitsSrc: u32, + pub cbBitsSrc: u32, + pub xMask: i32, + pub yMask: i32, + pub iUsageMask: u32, + pub offBmiMask: u32, + pub cbBmiMask: u32, + pub offBitsMask: u32, + pub cbBitsMask: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRPLGBLT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRPLGBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRPOLYDRAW { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub cptl: u32, + pub aptl: [super::super::Foundation::POINTL; 1], + pub abTypes: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRPOLYDRAW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRPOLYDRAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRPOLYDRAW16 { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub cpts: u32, + pub apts: [super::super::Foundation::POINTS; 1], + pub abTypes: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRPOLYDRAW16 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRPOLYDRAW16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRPOLYLINE { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub cptl: u32, + pub aptl: [super::super::Foundation::POINTL; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRPOLYLINE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRPOLYLINE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRPOLYLINE16 { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub cpts: u32, + pub apts: [super::super::Foundation::POINTS; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRPOLYLINE16 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRPOLYLINE16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRPOLYPOLYLINE { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub nPolys: u32, + pub cptl: u32, + pub aPolyCounts: [u32; 1], + pub aptl: [super::super::Foundation::POINTL; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRPOLYPOLYLINE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRPOLYPOLYLINE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRPOLYPOLYLINE16 { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub nPolys: u32, + pub cpts: u32, + pub aPolyCounts: [u32; 1], + pub apts: [super::super::Foundation::POINTS; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRPOLYPOLYLINE16 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRPOLYPOLYLINE16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRPOLYTEXTOUTA { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub iGraphicsMode: u32, + pub exScale: f32, + pub eyScale: f32, + pub cStrings: i32, + pub aemrtext: [EMRTEXT; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRPOLYTEXTOUTA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRPOLYTEXTOUTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRRESIZEPALETTE { + pub emr: EMR, + pub ihPal: u32, + pub cEntries: u32, +} +impl ::core::marker::Copy for EMRRESIZEPALETTE {} +impl ::core::clone::Clone for EMRRESIZEPALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRRESTOREDC { + pub emr: EMR, + pub iRelative: i32, +} +impl ::core::marker::Copy for EMRRESTOREDC {} +impl ::core::clone::Clone for EMRRESTOREDC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRROUNDRECT { + pub emr: EMR, + pub rclBox: super::super::Foundation::RECTL, + pub szlCorner: super::super::Foundation::SIZE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRROUNDRECT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRROUNDRECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRSCALEVIEWPORTEXTEX { + pub emr: EMR, + pub xNum: i32, + pub xDenom: i32, + pub yNum: i32, + pub yDenom: i32, +} +impl ::core::marker::Copy for EMRSCALEVIEWPORTEXTEX {} +impl ::core::clone::Clone for EMRSCALEVIEWPORTEXTEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRSELECTCLIPPATH { + pub emr: EMR, + pub iMode: u32, +} +impl ::core::marker::Copy for EMRSELECTCLIPPATH {} +impl ::core::clone::Clone for EMRSELECTCLIPPATH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRSELECTOBJECT { + pub emr: EMR, + pub ihObject: u32, +} +impl ::core::marker::Copy for EMRSELECTOBJECT {} +impl ::core::clone::Clone for EMRSELECTOBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRSELECTPALETTE { + pub emr: EMR, + pub ihPal: u32, +} +impl ::core::marker::Copy for EMRSELECTPALETTE {} +impl ::core::clone::Clone for EMRSELECTPALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRSETARCDIRECTION { + pub emr: EMR, + pub iArcDirection: u32, +} +impl ::core::marker::Copy for EMRSETARCDIRECTION {} +impl ::core::clone::Clone for EMRSETARCDIRECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRSETCOLORADJUSTMENT { + pub emr: EMR, + pub ColorAdjustment: COLORADJUSTMENT, +} +impl ::core::marker::Copy for EMRSETCOLORADJUSTMENT {} +impl ::core::clone::Clone for EMRSETCOLORADJUSTMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRSETCOLORSPACE { + pub emr: EMR, + pub ihCS: u32, +} +impl ::core::marker::Copy for EMRSETCOLORSPACE {} +impl ::core::clone::Clone for EMRSETCOLORSPACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRSETDIBITSTODEVICE { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub xDest: i32, + pub yDest: i32, + pub xSrc: i32, + pub ySrc: i32, + pub cxSrc: i32, + pub cySrc: i32, + pub offBmiSrc: u32, + pub cbBmiSrc: u32, + pub offBitsSrc: u32, + pub cbBitsSrc: u32, + pub iUsageSrc: u32, + pub iStartScan: u32, + pub cScans: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRSETDIBITSTODEVICE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRSETDIBITSTODEVICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRSETICMPROFILE { + pub emr: EMR, + pub dwFlags: u32, + pub cbName: u32, + pub cbData: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for EMRSETICMPROFILE {} +impl ::core::clone::Clone for EMRSETICMPROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRSETMAPPERFLAGS { + pub emr: EMR, + pub dwFlags: u32, +} +impl ::core::marker::Copy for EMRSETMAPPERFLAGS {} +impl ::core::clone::Clone for EMRSETMAPPERFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRSETMITERLIMIT { + pub emr: EMR, + pub eMiterLimit: f32, +} +impl ::core::marker::Copy for EMRSETMITERLIMIT {} +impl ::core::clone::Clone for EMRSETMITERLIMIT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRSETPALETTEENTRIES { + pub emr: EMR, + pub ihPal: u32, + pub iStart: u32, + pub cEntries: u32, + pub aPalEntries: [PALETTEENTRY; 1], +} +impl ::core::marker::Copy for EMRSETPALETTEENTRIES {} +impl ::core::clone::Clone for EMRSETPALETTEENTRIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRSETPIXELV { + pub emr: EMR, + pub ptlPixel: super::super::Foundation::POINTL, + pub crColor: super::super::Foundation::COLORREF, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRSETPIXELV {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRSETPIXELV { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRSETTEXTCOLOR { + pub emr: EMR, + pub crColor: super::super::Foundation::COLORREF, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRSETTEXTCOLOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRSETTEXTCOLOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRSETVIEWPORTEXTEX { + pub emr: EMR, + pub szlExtent: super::super::Foundation::SIZE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRSETVIEWPORTEXTEX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRSETVIEWPORTEXTEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRSETVIEWPORTORGEX { + pub emr: EMR, + pub ptlOrigin: super::super::Foundation::POINTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRSETVIEWPORTORGEX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRSETVIEWPORTORGEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMRSETWORLDTRANSFORM { + pub emr: EMR, + pub xform: XFORM, +} +impl ::core::marker::Copy for EMRSETWORLDTRANSFORM {} +impl ::core::clone::Clone for EMRSETWORLDTRANSFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRSTRETCHBLT { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub xDest: i32, + pub yDest: i32, + pub cxDest: i32, + pub cyDest: i32, + pub dwRop: u32, + pub xSrc: i32, + pub ySrc: i32, + pub xformSrc: XFORM, + pub crBkColorSrc: super::super::Foundation::COLORREF, + pub iUsageSrc: u32, + pub offBmiSrc: u32, + pub cbBmiSrc: u32, + pub offBitsSrc: u32, + pub cbBitsSrc: u32, + pub cxSrc: i32, + pub cySrc: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRSTRETCHBLT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRSTRETCHBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRSTRETCHDIBITS { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub xDest: i32, + pub yDest: i32, + pub xSrc: i32, + pub ySrc: i32, + pub cxSrc: i32, + pub cySrc: i32, + pub offBmiSrc: u32, + pub cbBmiSrc: u32, + pub offBitsSrc: u32, + pub cbBitsSrc: u32, + pub iUsageSrc: u32, + pub dwRop: u32, + pub cxDest: i32, + pub cyDest: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRSTRETCHDIBITS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRSTRETCHDIBITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRTEXT { + pub ptlReference: super::super::Foundation::POINTL, + pub nChars: u32, + pub offString: u32, + pub fOptions: u32, + pub rcl: super::super::Foundation::RECTL, + pub offDx: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EMRTRANSPARENTBLT { + pub emr: EMR, + pub rclBounds: super::super::Foundation::RECTL, + pub xDest: i32, + pub yDest: i32, + pub cxDest: i32, + pub cyDest: i32, + pub dwRop: u32, + pub xSrc: i32, + pub ySrc: i32, + pub xformSrc: XFORM, + pub crBkColorSrc: super::super::Foundation::COLORREF, + pub iUsageSrc: u32, + pub offBmiSrc: u32, + pub cbBmiSrc: u32, + pub offBitsSrc: u32, + pub cbBitsSrc: u32, + pub cxSrc: i32, + pub cySrc: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EMRTRANSPARENTBLT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EMRTRANSPARENTBLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ENHMETAHEADER { + pub iType: u32, + pub nSize: u32, + pub rclBounds: super::super::Foundation::RECTL, + pub rclFrame: super::super::Foundation::RECTL, + pub dSignature: u32, + pub nVersion: u32, + pub nBytes: u32, + pub nRecords: u32, + pub nHandles: u16, + pub sReserved: u16, + pub nDescription: u32, + pub offDescription: u32, + pub nPalEntries: u32, + pub szlDevice: super::super::Foundation::SIZE, + pub szlMillimeters: super::super::Foundation::SIZE, + pub cbPixelFormat: u32, + pub offPixelFormat: u32, + pub bOpenGL: u32, + pub szlMicrometers: super::super::Foundation::SIZE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ENHMETAHEADER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ENHMETAHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENHMETARECORD { + pub iType: ENHANCED_METAFILE_RECORD_TYPE, + pub nSize: u32, + pub dParm: [u32; 1], +} +impl ::core::marker::Copy for ENHMETARECORD {} +impl ::core::clone::Clone for ENHMETARECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENUMLOGFONTA { + pub elfLogFont: LOGFONTA, + pub elfFullName: [u8; 64], + pub elfStyle: [u8; 32], +} +impl ::core::marker::Copy for ENUMLOGFONTA {} +impl ::core::clone::Clone for ENUMLOGFONTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENUMLOGFONTEXA { + pub elfLogFont: LOGFONTA, + pub elfFullName: [u8; 64], + pub elfStyle: [u8; 32], + pub elfScript: [u8; 32], +} +impl ::core::marker::Copy for ENUMLOGFONTEXA {} +impl ::core::clone::Clone for ENUMLOGFONTEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENUMLOGFONTEXDVA { + pub elfEnumLogfontEx: ENUMLOGFONTEXA, + pub elfDesignVector: DESIGNVECTOR, +} +impl ::core::marker::Copy for ENUMLOGFONTEXDVA {} +impl ::core::clone::Clone for ENUMLOGFONTEXDVA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENUMLOGFONTEXDVW { + pub elfEnumLogfontEx: ENUMLOGFONTEXW, + pub elfDesignVector: DESIGNVECTOR, +} +impl ::core::marker::Copy for ENUMLOGFONTEXDVW {} +impl ::core::clone::Clone for ENUMLOGFONTEXDVW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENUMLOGFONTEXW { + pub elfLogFont: LOGFONTW, + pub elfFullName: [u16; 64], + pub elfStyle: [u16; 32], + pub elfScript: [u16; 32], +} +impl ::core::marker::Copy for ENUMLOGFONTEXW {} +impl ::core::clone::Clone for ENUMLOGFONTEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENUMLOGFONTW { + pub elfLogFont: LOGFONTW, + pub elfFullName: [u16; 64], + pub elfStyle: [u16; 32], +} +impl ::core::marker::Copy for ENUMLOGFONTW {} +impl ::core::clone::Clone for ENUMLOGFONTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXTLOGFONTA { + pub elfLogFont: LOGFONTA, + pub elfFullName: [u8; 64], + pub elfStyle: [u8; 32], + pub elfVersion: u32, + pub elfStyleSize: u32, + pub elfMatch: u32, + pub elfReserved: u32, + pub elfVendorId: [u8; 4], + pub elfCulture: u32, + pub elfPanose: PANOSE, +} +impl ::core::marker::Copy for EXTLOGFONTA {} +impl ::core::clone::Clone for EXTLOGFONTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXTLOGFONTW { + pub elfLogFont: LOGFONTW, + pub elfFullName: [u16; 64], + pub elfStyle: [u16; 32], + pub elfVersion: u32, + pub elfStyleSize: u32, + pub elfMatch: u32, + pub elfReserved: u32, + pub elfVendorId: [u8; 4], + pub elfCulture: u32, + pub elfPanose: PANOSE, +} +impl ::core::marker::Copy for EXTLOGFONTW {} +impl ::core::clone::Clone for EXTLOGFONTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EXTLOGPEN { + pub elpPenStyle: u32, + pub elpWidth: u32, + pub elpBrushStyle: u32, + pub elpColor: super::super::Foundation::COLORREF, + pub elpHatch: usize, + pub elpNumEntries: u32, + pub elpStyleEntry: [u32; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EXTLOGPEN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EXTLOGPEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EXTLOGPEN32 { + pub elpPenStyle: u32, + pub elpWidth: u32, + pub elpBrushStyle: u32, + pub elpColor: super::super::Foundation::COLORREF, + pub elpHatch: u32, + pub elpNumEntries: u32, + pub elpStyleEntry: [u32; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EXTLOGPEN32 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EXTLOGPEN32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FIXED { + pub fract: u16, + pub value: i16, +} +impl ::core::marker::Copy for FIXED {} +impl ::core::clone::Clone for FIXED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GCP_RESULTSA { + pub lStructSize: u32, + pub lpOutString: ::windows_sys::core::PSTR, + pub lpOrder: *mut u32, + pub lpDx: *mut i32, + pub lpCaretPos: *mut i32, + pub lpClass: ::windows_sys::core::PSTR, + pub lpGlyphs: ::windows_sys::core::PWSTR, + pub nGlyphs: u32, + pub nMaxFit: i32, +} +impl ::core::marker::Copy for GCP_RESULTSA {} +impl ::core::clone::Clone for GCP_RESULTSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GCP_RESULTSW { + pub lStructSize: u32, + pub lpOutString: ::windows_sys::core::PWSTR, + pub lpOrder: *mut u32, + pub lpDx: *mut i32, + pub lpCaretPos: *mut i32, + pub lpClass: ::windows_sys::core::PSTR, + pub lpGlyphs: ::windows_sys::core::PWSTR, + pub nGlyphs: u32, + pub nMaxFit: i32, +} +impl ::core::marker::Copy for GCP_RESULTSW {} +impl ::core::clone::Clone for GCP_RESULTSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GLYPHMETRICS { + pub gmBlackBoxX: u32, + pub gmBlackBoxY: u32, + pub gmptGlyphOrigin: super::super::Foundation::POINT, + pub gmCellIncX: i16, + pub gmCellIncY: i16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GLYPHMETRICS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GLYPHMETRICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GLYPHSET { + pub cbThis: u32, + pub flAccel: u32, + pub cGlyphsSupported: u32, + pub cRanges: u32, + pub ranges: [WCRANGE; 1], +} +impl ::core::marker::Copy for GLYPHSET {} +impl ::core::clone::Clone for GLYPHSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GRADIENT_RECT { + pub UpperLeft: u32, + pub LowerRight: u32, +} +impl ::core::marker::Copy for GRADIENT_RECT {} +impl ::core::clone::Clone for GRADIENT_RECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GRADIENT_TRIANGLE { + pub Vertex1: u32, + pub Vertex2: u32, + pub Vertex3: u32, +} +impl ::core::marker::Copy for GRADIENT_TRIANGLE {} +impl ::core::clone::Clone for GRADIENT_TRIANGLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HANDLETABLE { + pub objectHandle: [HGDIOBJ; 1], +} +impl ::core::marker::Copy for HANDLETABLE {} +impl ::core::clone::Clone for HANDLETABLE { + fn clone(&self) -> Self { + *self + } +} +pub type HBITMAP = isize; +pub type HBRUSH = isize; +pub type HDC = isize; +pub type HENHMETAFILE = isize; +pub type HFONT = isize; +pub type HGDIOBJ = isize; +pub type HMETAFILE = isize; +pub type HMONITOR = isize; +pub type HPALETTE = isize; +pub type HPEN = isize; +pub type HRGN = isize; +#[repr(C)] +pub struct KERNINGPAIR { + pub wFirst: u16, + pub wSecond: u16, + pub iKernAmount: i32, +} +impl ::core::marker::Copy for KERNINGPAIR {} +impl ::core::clone::Clone for KERNINGPAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LOGBRUSH { + pub lbStyle: BRUSH_STYLE, + pub lbColor: super::super::Foundation::COLORREF, + pub lbHatch: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LOGBRUSH {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LOGBRUSH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LOGBRUSH32 { + pub lbStyle: BRUSH_STYLE, + pub lbColor: super::super::Foundation::COLORREF, + pub lbHatch: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LOGBRUSH32 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LOGBRUSH32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOGFONTA { + pub lfHeight: i32, + pub lfWidth: i32, + pub lfEscapement: i32, + pub lfOrientation: i32, + pub lfWeight: i32, + pub lfItalic: u8, + pub lfUnderline: u8, + pub lfStrikeOut: u8, + pub lfCharSet: FONT_CHARSET, + pub lfOutPrecision: FONT_OUTPUT_PRECISION, + pub lfClipPrecision: FONT_CLIP_PRECISION, + pub lfQuality: FONT_QUALITY, + pub lfPitchAndFamily: u8, + pub lfFaceName: [u8; 32], +} +impl ::core::marker::Copy for LOGFONTA {} +impl ::core::clone::Clone for LOGFONTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOGFONTW { + pub lfHeight: i32, + pub lfWidth: i32, + pub lfEscapement: i32, + pub lfOrientation: i32, + pub lfWeight: i32, + pub lfItalic: u8, + pub lfUnderline: u8, + pub lfStrikeOut: u8, + pub lfCharSet: FONT_CHARSET, + pub lfOutPrecision: FONT_OUTPUT_PRECISION, + pub lfClipPrecision: FONT_CLIP_PRECISION, + pub lfQuality: FONT_QUALITY, + pub lfPitchAndFamily: u8, + pub lfFaceName: [u16; 32], +} +impl ::core::marker::Copy for LOGFONTW {} +impl ::core::clone::Clone for LOGFONTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOGPALETTE { + pub palVersion: u16, + pub palNumEntries: u16, + pub palPalEntry: [PALETTEENTRY; 1], +} +impl ::core::marker::Copy for LOGPALETTE {} +impl ::core::clone::Clone for LOGPALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LOGPEN { + pub lopnStyle: u32, + pub lopnWidth: super::super::Foundation::POINT, + pub lopnColor: super::super::Foundation::COLORREF, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LOGPEN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LOGPEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MAT2 { + pub eM11: FIXED, + pub eM12: FIXED, + pub eM21: FIXED, + pub eM22: FIXED, +} +impl ::core::marker::Copy for MAT2 {} +impl ::core::clone::Clone for MAT2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct METAHEADER { + pub mtType: u16, + pub mtHeaderSize: u16, + pub mtVersion: u16, + pub mtSize: u32, + pub mtNoObjects: u16, + pub mtMaxRecord: u32, + pub mtNoParameters: u16, +} +impl ::core::marker::Copy for METAHEADER {} +impl ::core::clone::Clone for METAHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct METARECORD { + pub rdSize: u32, + pub rdFunction: u16, + pub rdParm: [u16; 1], +} +impl ::core::marker::Copy for METARECORD {} +impl ::core::clone::Clone for METARECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MONITORINFO { + pub cbSize: u32, + pub rcMonitor: super::super::Foundation::RECT, + pub rcWork: super::super::Foundation::RECT, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MONITORINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MONITORINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MONITORINFOEXA { + pub monitorInfo: MONITORINFO, + pub szDevice: [u8; 32], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MONITORINFOEXA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MONITORINFOEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MONITORINFOEXW { + pub monitorInfo: MONITORINFO, + pub szDevice: [u16; 32], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MONITORINFOEXW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MONITORINFOEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NEWTEXTMETRICA { + pub tmHeight: i32, + pub tmAscent: i32, + pub tmDescent: i32, + pub tmInternalLeading: i32, + pub tmExternalLeading: i32, + pub tmAveCharWidth: i32, + pub tmMaxCharWidth: i32, + pub tmWeight: i32, + pub tmOverhang: i32, + pub tmDigitizedAspectX: i32, + pub tmDigitizedAspectY: i32, + pub tmFirstChar: u8, + pub tmLastChar: u8, + pub tmDefaultChar: u8, + pub tmBreakChar: u8, + pub tmItalic: u8, + pub tmUnderlined: u8, + pub tmStruckOut: u8, + pub tmPitchAndFamily: TMPF_FLAGS, + pub tmCharSet: u8, + pub ntmFlags: u32, + pub ntmSizeEM: u32, + pub ntmCellHeight: u32, + pub ntmAvgWidth: u32, +} +impl ::core::marker::Copy for NEWTEXTMETRICA {} +impl ::core::clone::Clone for NEWTEXTMETRICA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NEWTEXTMETRICW { + pub tmHeight: i32, + pub tmAscent: i32, + pub tmDescent: i32, + pub tmInternalLeading: i32, + pub tmExternalLeading: i32, + pub tmAveCharWidth: i32, + pub tmMaxCharWidth: i32, + pub tmWeight: i32, + pub tmOverhang: i32, + pub tmDigitizedAspectX: i32, + pub tmDigitizedAspectY: i32, + pub tmFirstChar: u16, + pub tmLastChar: u16, + pub tmDefaultChar: u16, + pub tmBreakChar: u16, + pub tmItalic: u8, + pub tmUnderlined: u8, + pub tmStruckOut: u8, + pub tmPitchAndFamily: TMPF_FLAGS, + pub tmCharSet: u8, + pub ntmFlags: u32, + pub ntmSizeEM: u32, + pub ntmCellHeight: u32, + pub ntmAvgWidth: u32, +} +impl ::core::marker::Copy for NEWTEXTMETRICW {} +impl ::core::clone::Clone for NEWTEXTMETRICW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OUTLINETEXTMETRICA { + pub otmSize: u32, + pub otmTextMetrics: TEXTMETRICA, + pub otmFiller: u8, + pub otmPanoseNumber: PANOSE, + pub otmfsSelection: u32, + pub otmfsType: u32, + pub otmsCharSlopeRise: i32, + pub otmsCharSlopeRun: i32, + pub otmItalicAngle: i32, + pub otmEMSquare: u32, + pub otmAscent: i32, + pub otmDescent: i32, + pub otmLineGap: u32, + pub otmsCapEmHeight: u32, + pub otmsXHeight: u32, + pub otmrcFontBox: super::super::Foundation::RECT, + pub otmMacAscent: i32, + pub otmMacDescent: i32, + pub otmMacLineGap: u32, + pub otmusMinimumPPEM: u32, + pub otmptSubscriptSize: super::super::Foundation::POINT, + pub otmptSubscriptOffset: super::super::Foundation::POINT, + pub otmptSuperscriptSize: super::super::Foundation::POINT, + pub otmptSuperscriptOffset: super::super::Foundation::POINT, + pub otmsStrikeoutSize: u32, + pub otmsStrikeoutPosition: i32, + pub otmsUnderscoreSize: i32, + pub otmsUnderscorePosition: i32, + pub otmpFamilyName: ::windows_sys::core::PSTR, + pub otmpFaceName: ::windows_sys::core::PSTR, + pub otmpStyleName: ::windows_sys::core::PSTR, + pub otmpFullName: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OUTLINETEXTMETRICA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OUTLINETEXTMETRICA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OUTLINETEXTMETRICW { + pub otmSize: u32, + pub otmTextMetrics: TEXTMETRICW, + pub otmFiller: u8, + pub otmPanoseNumber: PANOSE, + pub otmfsSelection: u32, + pub otmfsType: u32, + pub otmsCharSlopeRise: i32, + pub otmsCharSlopeRun: i32, + pub otmItalicAngle: i32, + pub otmEMSquare: u32, + pub otmAscent: i32, + pub otmDescent: i32, + pub otmLineGap: u32, + pub otmsCapEmHeight: u32, + pub otmsXHeight: u32, + pub otmrcFontBox: super::super::Foundation::RECT, + pub otmMacAscent: i32, + pub otmMacDescent: i32, + pub otmMacLineGap: u32, + pub otmusMinimumPPEM: u32, + pub otmptSubscriptSize: super::super::Foundation::POINT, + pub otmptSubscriptOffset: super::super::Foundation::POINT, + pub otmptSuperscriptSize: super::super::Foundation::POINT, + pub otmptSuperscriptOffset: super::super::Foundation::POINT, + pub otmsStrikeoutSize: u32, + pub otmsStrikeoutPosition: i32, + pub otmsUnderscoreSize: i32, + pub otmsUnderscorePosition: i32, + pub otmpFamilyName: ::windows_sys::core::PSTR, + pub otmpFaceName: ::windows_sys::core::PSTR, + pub otmpStyleName: ::windows_sys::core::PSTR, + pub otmpFullName: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OUTLINETEXTMETRICW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OUTLINETEXTMETRICW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PAINTSTRUCT { + pub hdc: HDC, + pub fErase: super::super::Foundation::BOOL, + pub rcPaint: super::super::Foundation::RECT, + pub fRestore: super::super::Foundation::BOOL, + pub fIncUpdate: super::super::Foundation::BOOL, + pub rgbReserved: [u8; 32], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PAINTSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PAINTSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PALETTEENTRY { + pub peRed: u8, + pub peGreen: u8, + pub peBlue: u8, + pub peFlags: u8, +} +impl ::core::marker::Copy for PALETTEENTRY {} +impl ::core::clone::Clone for PALETTEENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PANOSE { + pub bFamilyType: PAN_FAMILY_TYPE, + pub bSerifStyle: PAN_SERIF_STYLE, + pub bWeight: PAN_WEIGHT, + pub bProportion: PAN_PROPORTION, + pub bContrast: PAN_CONTRAST, + pub bStrokeVariation: PAN_STROKE_VARIATION, + pub bArmStyle: PAN_ARM_STYLE, + pub bLetterform: PAN_LETT_FORM, + pub bMidline: PAN_MIDLINE, + pub bXHeight: PAN_XHEIGHT, +} +impl ::core::marker::Copy for PANOSE {} +impl ::core::clone::Clone for PANOSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PELARRAY { + pub paXCount: i32, + pub paYCount: i32, + pub paXExt: i32, + pub paYExt: i32, + pub paRGBs: u8, +} +impl ::core::marker::Copy for PELARRAY {} +impl ::core::clone::Clone for PELARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POINTFX { + pub x: FIXED, + pub y: FIXED, +} +impl ::core::marker::Copy for POINTFX {} +impl ::core::clone::Clone for POINTFX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POLYTEXTA { + pub x: i32, + pub y: i32, + pub n: u32, + pub lpstr: ::windows_sys::core::PCSTR, + pub uiFlags: u32, + pub rcl: super::super::Foundation::RECT, + pub pdx: *mut i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POLYTEXTA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POLYTEXTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POLYTEXTW { + pub x: i32, + pub y: i32, + pub n: u32, + pub lpstr: ::windows_sys::core::PCWSTR, + pub uiFlags: u32, + pub rcl: super::super::Foundation::RECT, + pub pdx: *mut i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POLYTEXTW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POLYTEXTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASTERIZER_STATUS { + pub nSize: i16, + pub wFlags: i16, + pub nLanguageID: i16, +} +impl ::core::marker::Copy for RASTERIZER_STATUS {} +impl ::core::clone::Clone for RASTERIZER_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RGBQUAD { + pub rgbBlue: u8, + pub rgbGreen: u8, + pub rgbRed: u8, + pub rgbReserved: u8, +} +impl ::core::marker::Copy for RGBQUAD {} +impl ::core::clone::Clone for RGBQUAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RGBTRIPLE { + pub rgbtBlue: u8, + pub rgbtGreen: u8, + pub rgbtRed: u8, +} +impl ::core::marker::Copy for RGBTRIPLE {} +impl ::core::clone::Clone for RGBTRIPLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RGNDATA { + pub rdh: RGNDATAHEADER, + pub Buffer: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RGNDATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RGNDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RGNDATAHEADER { + pub dwSize: u32, + pub iType: u32, + pub nCount: u32, + pub nRgnSize: u32, + pub rcBound: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RGNDATAHEADER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RGNDATAHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TEXTMETRICA { + pub tmHeight: i32, + pub tmAscent: i32, + pub tmDescent: i32, + pub tmInternalLeading: i32, + pub tmExternalLeading: i32, + pub tmAveCharWidth: i32, + pub tmMaxCharWidth: i32, + pub tmWeight: i32, + pub tmOverhang: i32, + pub tmDigitizedAspectX: i32, + pub tmDigitizedAspectY: i32, + pub tmFirstChar: u8, + pub tmLastChar: u8, + pub tmDefaultChar: u8, + pub tmBreakChar: u8, + pub tmItalic: u8, + pub tmUnderlined: u8, + pub tmStruckOut: u8, + pub tmPitchAndFamily: TMPF_FLAGS, + pub tmCharSet: u8, +} +impl ::core::marker::Copy for TEXTMETRICA {} +impl ::core::clone::Clone for TEXTMETRICA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TEXTMETRICW { + pub tmHeight: i32, + pub tmAscent: i32, + pub tmDescent: i32, + pub tmInternalLeading: i32, + pub tmExternalLeading: i32, + pub tmAveCharWidth: i32, + pub tmMaxCharWidth: i32, + pub tmWeight: i32, + pub tmOverhang: i32, + pub tmDigitizedAspectX: i32, + pub tmDigitizedAspectY: i32, + pub tmFirstChar: u16, + pub tmLastChar: u16, + pub tmDefaultChar: u16, + pub tmBreakChar: u16, + pub tmItalic: u8, + pub tmUnderlined: u8, + pub tmStruckOut: u8, + pub tmPitchAndFamily: TMPF_FLAGS, + pub tmCharSet: u8, +} +impl ::core::marker::Copy for TEXTMETRICW {} +impl ::core::clone::Clone for TEXTMETRICW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRIVERTEX { + pub x: i32, + pub y: i32, + pub Red: u16, + pub Green: u16, + pub Blue: u16, + pub Alpha: u16, +} +impl ::core::marker::Copy for TRIVERTEX {} +impl ::core::clone::Clone for TRIVERTEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TTEMBEDINFO { + pub usStructSize: u16, + pub usRootStrSize: u16, + pub pusRootStr: *mut u16, +} +impl ::core::marker::Copy for TTEMBEDINFO {} +impl ::core::clone::Clone for TTEMBEDINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TTLOADINFO { + pub usStructSize: u16, + pub usRefStrSize: u16, + pub pusRefStr: *mut u16, +} +impl ::core::marker::Copy for TTLOADINFO {} +impl ::core::clone::Clone for TTLOADINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TTPOLYCURVE { + pub wType: u16, + pub cpfx: u16, + pub apfx: [POINTFX; 1], +} +impl ::core::marker::Copy for TTPOLYCURVE {} +impl ::core::clone::Clone for TTPOLYCURVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TTPOLYGONHEADER { + pub cb: u32, + pub dwType: u32, + pub pfxStart: POINTFX, +} +impl ::core::marker::Copy for TTPOLYGONHEADER {} +impl ::core::clone::Clone for TTPOLYGONHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TTVALIDATIONTESTSPARAMS { + pub ulStructSize: u32, + pub lTestFromSize: i32, + pub lTestToSize: i32, + pub ulCharSet: u32, + pub usReserved1: u16, + pub usCharCodeCount: u16, + pub pusCharCodeSet: *mut u16, +} +impl ::core::marker::Copy for TTVALIDATIONTESTSPARAMS {} +impl ::core::clone::Clone for TTVALIDATIONTESTSPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TTVALIDATIONTESTSPARAMSEX { + pub ulStructSize: u32, + pub lTestFromSize: i32, + pub lTestToSize: i32, + pub ulCharSet: u32, + pub usReserved1: u16, + pub usCharCodeCount: u16, + pub pulCharCodeSet: *mut u32, +} +impl ::core::marker::Copy for TTVALIDATIONTESTSPARAMSEX {} +impl ::core::clone::Clone for TTVALIDATIONTESTSPARAMSEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WCRANGE { + pub wcLow: u16, + pub cGlyphs: u16, +} +impl ::core::marker::Copy for WCRANGE {} +impl ::core::clone::Clone for WCRANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WGLSWAP { + pub hdc: HDC, + pub uiFlags: u32, +} +impl ::core::marker::Copy for WGLSWAP {} +impl ::core::clone::Clone for WGLSWAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XFORM { + pub eM11: f32, + pub eM12: f32, + pub eM21: f32, + pub eM22: f32, + pub eDx: f32, + pub eDy: f32, +} +impl ::core::marker::Copy for XFORM {} +impl ::core::clone::Clone for XFORM { + fn clone(&self) -> Self { + *self + } +} +pub type CFP_ALLOCPROC = ::core::option::Option *mut ::core::ffi::c_void>; +pub type CFP_FREEPROC = ::core::option::Option ()>; +pub type CFP_REALLOCPROC = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DRAWSTATEPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ENHMFENUMPROC = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FONTENUMPROCA = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FONTENUMPROCW = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type GOBJENUMPROC = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type GRAYSTRINGPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LINEDDAPROC = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFNDEVCAPS = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFNDEVMODE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type MFENUMPROC = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type MONITORENUMPROC = ::core::option::Option super::super::Foundation::BOOL>; +pub type READEMBEDPROC = ::core::option::Option u32>; +pub type WRITEEMBEDPROC = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/GdiPlus/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/GdiPlus/mod.rs new file mode 100644 index 000000000..c90a6d950 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/GdiPlus/mod.rs @@ -0,0 +1,2639 @@ +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathArc(path : *mut GpPath, x : f32, y : f32, width : f32, height : f32, startangle : f32, sweepangle : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathArcI(path : *mut GpPath, x : i32, y : i32, width : i32, height : i32, startangle : f32, sweepangle : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathBezier(path : *mut GpPath, x1 : f32, y1 : f32, x2 : f32, y2 : f32, x3 : f32, y3 : f32, x4 : f32, y4 : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathBezierI(path : *mut GpPath, x1 : i32, y1 : i32, x2 : i32, y2 : i32, x3 : i32, y3 : i32, x4 : i32, y4 : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathBeziers(path : *mut GpPath, points : *const PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathBeziersI(path : *mut GpPath, points : *const Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathClosedCurve(path : *mut GpPath, points : *const PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathClosedCurve2(path : *mut GpPath, points : *const PointF, count : i32, tension : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathClosedCurve2I(path : *mut GpPath, points : *const Point, count : i32, tension : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathClosedCurveI(path : *mut GpPath, points : *const Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathCurve(path : *mut GpPath, points : *const PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathCurve2(path : *mut GpPath, points : *const PointF, count : i32, tension : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathCurve2I(path : *mut GpPath, points : *const Point, count : i32, tension : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathCurve3(path : *mut GpPath, points : *const PointF, count : i32, offset : i32, numberofsegments : i32, tension : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathCurve3I(path : *mut GpPath, points : *const Point, count : i32, offset : i32, numberofsegments : i32, tension : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathCurveI(path : *mut GpPath, points : *const Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathEllipse(path : *mut GpPath, x : f32, y : f32, width : f32, height : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathEllipseI(path : *mut GpPath, x : i32, y : i32, width : i32, height : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathLine(path : *mut GpPath, x1 : f32, y1 : f32, x2 : f32, y2 : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathLine2(path : *mut GpPath, points : *const PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathLine2I(path : *mut GpPath, points : *const Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathLineI(path : *mut GpPath, x1 : i32, y1 : i32, x2 : i32, y2 : i32) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipAddPathPath(path : *mut GpPath, addingpath : *const GpPath, connect : super::super::Foundation:: BOOL) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathPie(path : *mut GpPath, x : f32, y : f32, width : f32, height : f32, startangle : f32, sweepangle : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathPieI(path : *mut GpPath, x : i32, y : i32, width : i32, height : i32, startangle : f32, sweepangle : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathPolygon(path : *mut GpPath, points : *const PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathPolygonI(path : *mut GpPath, points : *const Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathRectangle(path : *mut GpPath, x : f32, y : f32, width : f32, height : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathRectangleI(path : *mut GpPath, x : i32, y : i32, width : i32, height : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathRectangles(path : *mut GpPath, rects : *const RectF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathRectanglesI(path : *mut GpPath, rects : *const Rect, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathString(path : *mut GpPath, string : ::windows_sys::core::PCWSTR, length : i32, family : *const GpFontFamily, style : i32, emsize : f32, layoutrect : *const RectF, format : *const GpStringFormat) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAddPathStringI(path : *mut GpPath, string : ::windows_sys::core::PCWSTR, length : i32, family : *const GpFontFamily, style : i32, emsize : f32, layoutrect : *const Rect, format : *const GpStringFormat) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipAlloc(size : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("gdiplus.dll" "system" fn GdipBeginContainer(graphics : *mut GpGraphics, dstrect : *const RectF, srcrect : *const RectF, unit : Unit, state : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipBeginContainer2(graphics : *mut GpGraphics, state : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipBeginContainerI(graphics : *mut GpGraphics, dstrect : *const Rect, srcrect : *const Rect, unit : Unit, state : *mut u32) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipBitmapApplyEffect(bitmap : *mut GpBitmap, effect : *mut CGpEffect, roi : *mut super::super::Foundation:: RECT, useauxdata : super::super::Foundation:: BOOL, auxdata : *mut *mut ::core::ffi::c_void, auxdatasize : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipBitmapConvertFormat(pinputbitmap : *mut GpBitmap, format : i32, dithertype : DitherType, palettetype : PaletteType, palette : *mut ColorPalette, alphathresholdpercent : f32) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipBitmapCreateApplyEffect(inputbitmaps : *mut *mut GpBitmap, numinputs : i32, effect : *mut CGpEffect, roi : *mut super::super::Foundation:: RECT, outputrect : *mut super::super::Foundation:: RECT, outputbitmap : *mut *mut GpBitmap, useauxdata : super::super::Foundation:: BOOL, auxdata : *mut *mut ::core::ffi::c_void, auxdatasize : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipBitmapGetHistogram(bitmap : *mut GpBitmap, format : HistogramFormat, numberofentries : u32, channel0 : *mut u32, channel1 : *mut u32, channel2 : *mut u32, channel3 : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipBitmapGetHistogramSize(format : HistogramFormat, numberofentries : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipBitmapGetPixel(bitmap : *mut GpBitmap, x : i32, y : i32, color : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipBitmapLockBits(bitmap : *mut GpBitmap, rect : *const Rect, flags : u32, format : i32, lockedbitmapdata : *mut BitmapData) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipBitmapSetPixel(bitmap : *mut GpBitmap, x : i32, y : i32, color : u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipBitmapSetResolution(bitmap : *mut GpBitmap, xdpi : f32, ydpi : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipBitmapUnlockBits(bitmap : *mut GpBitmap, lockedbitmapdata : *mut BitmapData) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipClearPathMarkers(path : *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCloneBitmapArea(x : f32, y : f32, width : f32, height : f32, format : i32, srcbitmap : *mut GpBitmap, dstbitmap : *mut *mut GpBitmap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCloneBitmapAreaI(x : i32, y : i32, width : i32, height : i32, format : i32, srcbitmap : *mut GpBitmap, dstbitmap : *mut *mut GpBitmap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCloneBrush(brush : *mut GpBrush, clonebrush : *mut *mut GpBrush) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCloneCustomLineCap(customcap : *mut GpCustomLineCap, clonedcap : *mut *mut GpCustomLineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCloneFont(font : *mut GpFont, clonefont : *mut *mut GpFont) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCloneFontFamily(fontfamily : *mut GpFontFamily, clonedfontfamily : *mut *mut GpFontFamily) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCloneImage(image : *mut GpImage, cloneimage : *mut *mut GpImage) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCloneImageAttributes(imageattr : *const GpImageAttributes, cloneimageattr : *mut *mut GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCloneMatrix(matrix : *mut Matrix, clonematrix : *mut *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipClonePath(path : *mut GpPath, clonepath : *mut *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipClonePen(pen : *mut GpPen, clonepen : *mut *mut GpPen) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCloneRegion(region : *mut GpRegion, cloneregion : *mut *mut GpRegion) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCloneStringFormat(format : *const GpStringFormat, newformat : *mut *mut GpStringFormat) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipClosePathFigure(path : *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipClosePathFigures(path : *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCombineRegionPath(region : *mut GpRegion, path : *mut GpPath, combinemode : CombineMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCombineRegionRect(region : *mut GpRegion, rect : *const RectF, combinemode : CombineMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCombineRegionRectI(region : *mut GpRegion, rect : *const Rect, combinemode : CombineMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCombineRegionRegion(region : *mut GpRegion, region2 : *mut GpRegion, combinemode : CombineMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipComment(graphics : *mut GpGraphics, sizedata : u32, data : *const u8) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipConvertToEmfPlus(refgraphics : *const GpGraphics, metafile : *mut GpMetafile, conversionfailureflag : *mut i32, emftype : EmfType, description : ::windows_sys::core::PCWSTR, out_metafile : *mut *mut GpMetafile) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipConvertToEmfPlusToFile(refgraphics : *const GpGraphics, metafile : *mut GpMetafile, conversionfailureflag : *mut i32, filename : ::windows_sys::core::PCWSTR, emftype : EmfType, description : ::windows_sys::core::PCWSTR, out_metafile : *mut *mut GpMetafile) -> Status); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn GdipConvertToEmfPlusToStream(refgraphics : *const GpGraphics, metafile : *mut GpMetafile, conversionfailureflag : *mut i32, stream : super::super::System::Com:: IStream, emftype : EmfType, description : ::windows_sys::core::PCWSTR, out_metafile : *mut *mut GpMetafile) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipCreateAdjustableArrowCap(height : f32, width : f32, isfilled : super::super::Foundation:: BOOL, cap : *mut *mut GpAdjustableArrowCap) -> Status); +#[cfg(feature = "Win32_Graphics_DirectDraw")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_DirectDraw\"`"] fn GdipCreateBitmapFromDirectDrawSurface(surface : super::DirectDraw:: IDirectDrawSurface7, bitmap : *mut *mut GpBitmap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateBitmapFromFile(filename : ::windows_sys::core::PCWSTR, bitmap : *mut *mut GpBitmap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateBitmapFromFileICM(filename : ::windows_sys::core::PCWSTR, bitmap : *mut *mut GpBitmap) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipCreateBitmapFromGdiDib(gdibitmapinfo : *const super::Gdi:: BITMAPINFO, gdibitmapdata : *mut ::core::ffi::c_void, bitmap : *mut *mut GpBitmap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateBitmapFromGraphics(width : i32, height : i32, target : *mut GpGraphics, bitmap : *mut *mut GpBitmap) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipCreateBitmapFromHBITMAP(hbm : super::Gdi:: HBITMAP, hpal : super::Gdi:: HPALETTE, bitmap : *mut *mut GpBitmap) -> Status); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn GdipCreateBitmapFromHICON(hicon : super::super::UI::WindowsAndMessaging:: HICON, bitmap : *mut *mut GpBitmap) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipCreateBitmapFromResource(hinstance : super::super::Foundation:: HINSTANCE, lpbitmapname : ::windows_sys::core::PCWSTR, bitmap : *mut *mut GpBitmap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateBitmapFromScan0(width : i32, height : i32, stride : i32, format : i32, scan0 : *const u8, bitmap : *mut *mut GpBitmap) -> Status); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn GdipCreateBitmapFromStream(stream : super::super::System::Com:: IStream, bitmap : *mut *mut GpBitmap) -> Status); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn GdipCreateBitmapFromStreamICM(stream : super::super::System::Com:: IStream, bitmap : *mut *mut GpBitmap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateCachedBitmap(bitmap : *mut GpBitmap, graphics : *mut GpGraphics, cachedbitmap : *mut *mut GpCachedBitmap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateCustomLineCap(fillpath : *mut GpPath, strokepath : *mut GpPath, basecap : LineCap, baseinset : f32, customcap : *mut *mut GpCustomLineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateEffect(guid : ::windows_sys::core::GUID, effect : *mut *mut CGpEffect) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateFont(fontfamily : *const GpFontFamily, emsize : f32, style : i32, unit : Unit, font : *mut *mut GpFont) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateFontFamilyFromName(name : ::windows_sys::core::PCWSTR, fontcollection : *mut GpFontCollection, fontfamily : *mut *mut GpFontFamily) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipCreateFontFromDC(hdc : super::Gdi:: HDC, font : *mut *mut GpFont) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipCreateFontFromLogfontA(hdc : super::Gdi:: HDC, logfont : *const super::Gdi:: LOGFONTA, font : *mut *mut GpFont) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipCreateFontFromLogfontW(hdc : super::Gdi:: HDC, logfont : *const super::Gdi:: LOGFONTW, font : *mut *mut GpFont) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipCreateFromHDC(hdc : super::Gdi:: HDC, graphics : *mut *mut GpGraphics) -> Status); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GdipCreateFromHDC2(hdc : super::Gdi:: HDC, hdevice : super::super::Foundation:: HANDLE, graphics : *mut *mut GpGraphics) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipCreateFromHWND(hwnd : super::super::Foundation:: HWND, graphics : *mut *mut GpGraphics) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipCreateFromHWNDICM(hwnd : super::super::Foundation:: HWND, graphics : *mut *mut GpGraphics) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipCreateHBITMAPFromBitmap(bitmap : *mut GpBitmap, hbmreturn : *mut super::Gdi:: HBITMAP, background : u32) -> Status); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn GdipCreateHICONFromBitmap(bitmap : *mut GpBitmap, hbmreturn : *mut super::super::UI::WindowsAndMessaging:: HICON) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipCreateHalftonePalette() -> super::Gdi:: HPALETTE); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateHatchBrush(hatchstyle : HatchStyle, forecol : u32, backcol : u32, brush : *mut *mut GpHatch) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateImageAttributes(imageattr : *mut *mut GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateLineBrush(point1 : *const PointF, point2 : *const PointF, color1 : u32, color2 : u32, wrapmode : WrapMode, linegradient : *mut *mut GpLineGradient) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateLineBrushFromRect(rect : *const RectF, color1 : u32, color2 : u32, mode : LinearGradientMode, wrapmode : WrapMode, linegradient : *mut *mut GpLineGradient) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateLineBrushFromRectI(rect : *const Rect, color1 : u32, color2 : u32, mode : LinearGradientMode, wrapmode : WrapMode, linegradient : *mut *mut GpLineGradient) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipCreateLineBrushFromRectWithAngle(rect : *const RectF, color1 : u32, color2 : u32, angle : f32, isanglescalable : super::super::Foundation:: BOOL, wrapmode : WrapMode, linegradient : *mut *mut GpLineGradient) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipCreateLineBrushFromRectWithAngleI(rect : *const Rect, color1 : u32, color2 : u32, angle : f32, isanglescalable : super::super::Foundation:: BOOL, wrapmode : WrapMode, linegradient : *mut *mut GpLineGradient) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateLineBrushI(point1 : *const Point, point2 : *const Point, color1 : u32, color2 : u32, wrapmode : WrapMode, linegradient : *mut *mut GpLineGradient) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateMatrix(matrix : *mut *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateMatrix2(m11 : f32, m12 : f32, m21 : f32, m22 : f32, dx : f32, dy : f32, matrix : *mut *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateMatrix3(rect : *const RectF, dstplg : *const PointF, matrix : *mut *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateMatrix3I(rect : *const Rect, dstplg : *const Point, matrix : *mut *mut Matrix) -> Status); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GdipCreateMetafileFromEmf(hemf : super::Gdi:: HENHMETAFILE, deleteemf : super::super::Foundation:: BOOL, metafile : *mut *mut GpMetafile) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateMetafileFromFile(file : ::windows_sys::core::PCWSTR, metafile : *mut *mut GpMetafile) -> Status); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn GdipCreateMetafileFromStream(stream : super::super::System::Com:: IStream, metafile : *mut *mut GpMetafile) -> Status); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GdipCreateMetafileFromWmf(hwmf : super::Gdi:: HMETAFILE, deletewmf : super::super::Foundation:: BOOL, wmfplaceablefileheader : *const WmfPlaceableFileHeader, metafile : *mut *mut GpMetafile) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateMetafileFromWmfFile(file : ::windows_sys::core::PCWSTR, wmfplaceablefileheader : *const WmfPlaceableFileHeader, metafile : *mut *mut GpMetafile) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreatePath(brushmode : FillMode, path : *mut *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreatePath2(param0 : *const PointF, param1 : *const u8, param2 : i32, param3 : FillMode, path : *mut *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreatePath2I(param0 : *const Point, param1 : *const u8, param2 : i32, param3 : FillMode, path : *mut *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreatePathGradient(points : *const PointF, count : i32, wrapmode : WrapMode, polygradient : *mut *mut GpPathGradient) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreatePathGradientFromPath(path : *const GpPath, polygradient : *mut *mut GpPathGradient) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreatePathGradientI(points : *const Point, count : i32, wrapmode : WrapMode, polygradient : *mut *mut GpPathGradient) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreatePathIter(iterator : *mut *mut GpPathIterator, path : *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreatePen1(color : u32, width : f32, unit : Unit, pen : *mut *mut GpPen) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreatePen2(brush : *mut GpBrush, width : f32, unit : Unit, pen : *mut *mut GpPen) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateRegion(region : *mut *mut GpRegion) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipCreateRegionHrgn(hrgn : super::Gdi:: HRGN, region : *mut *mut GpRegion) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateRegionPath(path : *mut GpPath, region : *mut *mut GpRegion) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateRegionRect(rect : *const RectF, region : *mut *mut GpRegion) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateRegionRectI(rect : *const Rect, region : *mut *mut GpRegion) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateRegionRgnData(regiondata : *const u8, size : i32, region : *mut *mut GpRegion) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateSolidFill(color : u32, brush : *mut *mut GpSolidFill) -> Status); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn GdipCreateStreamOnFile(filename : ::windows_sys::core::PCWSTR, access : u32, stream : *mut super::super::System::Com:: IStream) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateStringFormat(formatattributes : i32, language : u16, format : *mut *mut GpStringFormat) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateTexture(image : *mut GpImage, wrapmode : WrapMode, texture : *mut *mut GpTexture) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateTexture2(image : *mut GpImage, wrapmode : WrapMode, x : f32, y : f32, width : f32, height : f32, texture : *mut *mut GpTexture) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateTexture2I(image : *mut GpImage, wrapmode : WrapMode, x : i32, y : i32, width : i32, height : i32, texture : *mut *mut GpTexture) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateTextureIA(image : *mut GpImage, imageattributes : *const GpImageAttributes, x : f32, y : f32, width : f32, height : f32, texture : *mut *mut GpTexture) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipCreateTextureIAI(image : *mut GpImage, imageattributes : *const GpImageAttributes, x : i32, y : i32, width : i32, height : i32, texture : *mut *mut GpTexture) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeleteBrush(brush : *mut GpBrush) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeleteCachedBitmap(cachedbitmap : *mut GpCachedBitmap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeleteCustomLineCap(customcap : *mut GpCustomLineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeleteEffect(effect : *mut CGpEffect) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeleteFont(font : *mut GpFont) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeleteFontFamily(fontfamily : *mut GpFontFamily) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeleteGraphics(graphics : *mut GpGraphics) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeleteMatrix(matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeletePath(path : *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeletePathIter(iterator : *mut GpPathIterator) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeletePen(pen : *mut GpPen) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeletePrivateFontCollection(fontcollection : *mut *mut GpFontCollection) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeleteRegion(region : *mut GpRegion) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDeleteStringFormat(format : *mut GpStringFormat) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDisposeImage(image : *mut GpImage) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDisposeImageAttributes(imageattr : *mut GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawArc(graphics : *mut GpGraphics, pen : *mut GpPen, x : f32, y : f32, width : f32, height : f32, startangle : f32, sweepangle : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawArcI(graphics : *mut GpGraphics, pen : *mut GpPen, x : i32, y : i32, width : i32, height : i32, startangle : f32, sweepangle : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawBezier(graphics : *mut GpGraphics, pen : *mut GpPen, x1 : f32, y1 : f32, x2 : f32, y2 : f32, x3 : f32, y3 : f32, x4 : f32, y4 : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawBezierI(graphics : *mut GpGraphics, pen : *mut GpPen, x1 : i32, y1 : i32, x2 : i32, y2 : i32, x3 : i32, y3 : i32, x4 : i32, y4 : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawBeziers(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawBeziersI(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawCachedBitmap(graphics : *mut GpGraphics, cachedbitmap : *mut GpCachedBitmap, x : i32, y : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawClosedCurve(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawClosedCurve2(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const PointF, count : i32, tension : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawClosedCurve2I(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const Point, count : i32, tension : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawClosedCurveI(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawCurve(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawCurve2(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const PointF, count : i32, tension : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawCurve2I(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const Point, count : i32, tension : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawCurve3(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const PointF, count : i32, offset : i32, numberofsegments : i32, tension : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawCurve3I(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const Point, count : i32, offset : i32, numberofsegments : i32, tension : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawCurveI(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawDriverString(graphics : *mut GpGraphics, text : *const u16, length : i32, font : *const GpFont, brush : *const GpBrush, positions : *const PointF, flags : i32, matrix : *const Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawEllipse(graphics : *mut GpGraphics, pen : *mut GpPen, x : f32, y : f32, width : f32, height : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawEllipseI(graphics : *mut GpGraphics, pen : *mut GpPen, x : i32, y : i32, width : i32, height : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawImage(graphics : *mut GpGraphics, image : *mut GpImage, x : f32, y : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawImageFX(graphics : *mut GpGraphics, image : *mut GpImage, source : *mut RectF, xform : *mut Matrix, effect : *mut CGpEffect, imageattributes : *mut GpImageAttributes, srcunit : Unit) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawImageI(graphics : *mut GpGraphics, image : *mut GpImage, x : i32, y : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawImagePointRect(graphics : *mut GpGraphics, image : *mut GpImage, x : f32, y : f32, srcx : f32, srcy : f32, srcwidth : f32, srcheight : f32, srcunit : Unit) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawImagePointRectI(graphics : *mut GpGraphics, image : *mut GpImage, x : i32, y : i32, srcx : i32, srcy : i32, srcwidth : i32, srcheight : i32, srcunit : Unit) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawImagePoints(graphics : *mut GpGraphics, image : *mut GpImage, dstpoints : *const PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawImagePointsI(graphics : *mut GpGraphics, image : *mut GpImage, dstpoints : *const Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawImagePointsRect(graphics : *mut GpGraphics, image : *mut GpImage, points : *const PointF, count : i32, srcx : f32, srcy : f32, srcwidth : f32, srcheight : f32, srcunit : Unit, imageattributes : *const GpImageAttributes, callback : isize, callbackdata : *mut ::core::ffi::c_void) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawImagePointsRectI(graphics : *mut GpGraphics, image : *mut GpImage, points : *const Point, count : i32, srcx : i32, srcy : i32, srcwidth : i32, srcheight : i32, srcunit : Unit, imageattributes : *const GpImageAttributes, callback : isize, callbackdata : *mut ::core::ffi::c_void) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawImageRect(graphics : *mut GpGraphics, image : *mut GpImage, x : f32, y : f32, width : f32, height : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawImageRectI(graphics : *mut GpGraphics, image : *mut GpImage, x : i32, y : i32, width : i32, height : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawImageRectRect(graphics : *mut GpGraphics, image : *mut GpImage, dstx : f32, dsty : f32, dstwidth : f32, dstheight : f32, srcx : f32, srcy : f32, srcwidth : f32, srcheight : f32, srcunit : Unit, imageattributes : *const GpImageAttributes, callback : isize, callbackdata : *mut ::core::ffi::c_void) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawImageRectRectI(graphics : *mut GpGraphics, image : *mut GpImage, dstx : i32, dsty : i32, dstwidth : i32, dstheight : i32, srcx : i32, srcy : i32, srcwidth : i32, srcheight : i32, srcunit : Unit, imageattributes : *const GpImageAttributes, callback : isize, callbackdata : *mut ::core::ffi::c_void) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawLine(graphics : *mut GpGraphics, pen : *mut GpPen, x1 : f32, y1 : f32, x2 : f32, y2 : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawLineI(graphics : *mut GpGraphics, pen : *mut GpPen, x1 : i32, y1 : i32, x2 : i32, y2 : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawLines(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawLinesI(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawPath(graphics : *mut GpGraphics, pen : *mut GpPen, path : *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawPie(graphics : *mut GpGraphics, pen : *mut GpPen, x : f32, y : f32, width : f32, height : f32, startangle : f32, sweepangle : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawPieI(graphics : *mut GpGraphics, pen : *mut GpPen, x : i32, y : i32, width : i32, height : i32, startangle : f32, sweepangle : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawPolygon(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawPolygonI(graphics : *mut GpGraphics, pen : *mut GpPen, points : *const Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawRectangle(graphics : *mut GpGraphics, pen : *mut GpPen, x : f32, y : f32, width : f32, height : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawRectangleI(graphics : *mut GpGraphics, pen : *mut GpPen, x : i32, y : i32, width : i32, height : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawRectangles(graphics : *mut GpGraphics, pen : *mut GpPen, rects : *const RectF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawRectanglesI(graphics : *mut GpGraphics, pen : *mut GpPen, rects : *const Rect, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipDrawString(graphics : *mut GpGraphics, string : ::windows_sys::core::PCWSTR, length : i32, font : *const GpFont, layoutrect : *const RectF, stringformat : *const GpStringFormat, brush : *const GpBrush) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipEmfToWmfBits(hemf : super::Gdi:: HENHMETAFILE, cbdata16 : u32, pdata16 : *mut u8, imapmode : i32, eflags : i32) -> u32); +::windows_targets::link!("gdiplus.dll" "system" fn GdipEndContainer(graphics : *mut GpGraphics, state : u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipEnumerateMetafileDestPoint(graphics : *mut GpGraphics, metafile : *const GpMetafile, destpoint : *const PointF, callback : isize, callbackdata : *mut ::core::ffi::c_void, imageattributes : *const GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipEnumerateMetafileDestPointI(graphics : *mut GpGraphics, metafile : *const GpMetafile, destpoint : *const Point, callback : isize, callbackdata : *mut ::core::ffi::c_void, imageattributes : *const GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipEnumerateMetafileDestPoints(graphics : *mut GpGraphics, metafile : *const GpMetafile, destpoints : *const PointF, count : i32, callback : isize, callbackdata : *mut ::core::ffi::c_void, imageattributes : *const GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipEnumerateMetafileDestPointsI(graphics : *mut GpGraphics, metafile : *const GpMetafile, destpoints : *const Point, count : i32, callback : isize, callbackdata : *mut ::core::ffi::c_void, imageattributes : *const GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipEnumerateMetafileDestRect(graphics : *mut GpGraphics, metafile : *const GpMetafile, destrect : *const RectF, callback : isize, callbackdata : *mut ::core::ffi::c_void, imageattributes : *const GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipEnumerateMetafileDestRectI(graphics : *mut GpGraphics, metafile : *const GpMetafile, destrect : *const Rect, callback : isize, callbackdata : *mut ::core::ffi::c_void, imageattributes : *const GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipEnumerateMetafileSrcRectDestPoint(graphics : *mut GpGraphics, metafile : *const GpMetafile, destpoint : *const PointF, srcrect : *const RectF, srcunit : Unit, callback : isize, callbackdata : *mut ::core::ffi::c_void, imageattributes : *const GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipEnumerateMetafileSrcRectDestPointI(graphics : *mut GpGraphics, metafile : *const GpMetafile, destpoint : *const Point, srcrect : *const Rect, srcunit : Unit, callback : isize, callbackdata : *mut ::core::ffi::c_void, imageattributes : *const GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipEnumerateMetafileSrcRectDestPoints(graphics : *mut GpGraphics, metafile : *const GpMetafile, destpoints : *const PointF, count : i32, srcrect : *const RectF, srcunit : Unit, callback : isize, callbackdata : *mut ::core::ffi::c_void, imageattributes : *const GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipEnumerateMetafileSrcRectDestPointsI(graphics : *mut GpGraphics, metafile : *const GpMetafile, destpoints : *const Point, count : i32, srcrect : *const Rect, srcunit : Unit, callback : isize, callbackdata : *mut ::core::ffi::c_void, imageattributes : *const GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipEnumerateMetafileSrcRectDestRect(graphics : *mut GpGraphics, metafile : *const GpMetafile, destrect : *const RectF, srcrect : *const RectF, srcunit : Unit, callback : isize, callbackdata : *mut ::core::ffi::c_void, imageattributes : *const GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipEnumerateMetafileSrcRectDestRectI(graphics : *mut GpGraphics, metafile : *const GpMetafile, destrect : *const Rect, srcrect : *const Rect, srcunit : Unit, callback : isize, callbackdata : *mut ::core::ffi::c_void, imageattributes : *const GpImageAttributes) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillClosedCurve(graphics : *mut GpGraphics, brush : *mut GpBrush, points : *const PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillClosedCurve2(graphics : *mut GpGraphics, brush : *mut GpBrush, points : *const PointF, count : i32, tension : f32, fillmode : FillMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillClosedCurve2I(graphics : *mut GpGraphics, brush : *mut GpBrush, points : *const Point, count : i32, tension : f32, fillmode : FillMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillClosedCurveI(graphics : *mut GpGraphics, brush : *mut GpBrush, points : *const Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillEllipse(graphics : *mut GpGraphics, brush : *mut GpBrush, x : f32, y : f32, width : f32, height : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillEllipseI(graphics : *mut GpGraphics, brush : *mut GpBrush, x : i32, y : i32, width : i32, height : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillPath(graphics : *mut GpGraphics, brush : *mut GpBrush, path : *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillPie(graphics : *mut GpGraphics, brush : *mut GpBrush, x : f32, y : f32, width : f32, height : f32, startangle : f32, sweepangle : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillPieI(graphics : *mut GpGraphics, brush : *mut GpBrush, x : i32, y : i32, width : i32, height : i32, startangle : f32, sweepangle : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillPolygon(graphics : *mut GpGraphics, brush : *mut GpBrush, points : *const PointF, count : i32, fillmode : FillMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillPolygon2(graphics : *mut GpGraphics, brush : *mut GpBrush, points : *const PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillPolygon2I(graphics : *mut GpGraphics, brush : *mut GpBrush, points : *const Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillPolygonI(graphics : *mut GpGraphics, brush : *mut GpBrush, points : *const Point, count : i32, fillmode : FillMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillRectangle(graphics : *mut GpGraphics, brush : *mut GpBrush, x : f32, y : f32, width : f32, height : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillRectangleI(graphics : *mut GpGraphics, brush : *mut GpBrush, x : i32, y : i32, width : i32, height : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillRectangles(graphics : *mut GpGraphics, brush : *mut GpBrush, rects : *const RectF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillRectanglesI(graphics : *mut GpGraphics, brush : *mut GpBrush, rects : *const Rect, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFillRegion(graphics : *mut GpGraphics, brush : *mut GpBrush, region : *mut GpRegion) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFindFirstImageItem(image : *mut GpImage, item : *mut ImageItemData) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFindNextImageItem(image : *mut GpImage, item : *mut ImageItemData) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFlattenPath(path : *mut GpPath, matrix : *mut Matrix, flatness : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFlush(graphics : *mut GpGraphics, intention : FlushIntention) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipFree(ptr : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipGetAdjustableArrowCapFillState(cap : *mut GpAdjustableArrowCap, fillstate : *mut super::super::Foundation:: BOOL) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetAdjustableArrowCapHeight(cap : *mut GpAdjustableArrowCap, height : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetAdjustableArrowCapMiddleInset(cap : *mut GpAdjustableArrowCap, middleinset : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetAdjustableArrowCapWidth(cap : *mut GpAdjustableArrowCap, width : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetAllPropertyItems(image : *mut GpImage, totalbuffersize : u32, numproperties : u32, allitems : *mut PropertyItem) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetBrushType(brush : *mut GpBrush, r#type : *mut BrushType) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetCellAscent(family : *const GpFontFamily, style : i32, cellascent : *mut u16) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetCellDescent(family : *const GpFontFamily, style : i32, celldescent : *mut u16) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetClip(graphics : *mut GpGraphics, region : *mut GpRegion) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetClipBounds(graphics : *mut GpGraphics, rect : *mut RectF) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetClipBoundsI(graphics : *mut GpGraphics, rect : *mut Rect) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetCompositingMode(graphics : *mut GpGraphics, compositingmode : *mut CompositingMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetCompositingQuality(graphics : *mut GpGraphics, compositingquality : *mut CompositingQuality) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetCustomLineCapBaseCap(customcap : *mut GpCustomLineCap, basecap : *mut LineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetCustomLineCapBaseInset(customcap : *mut GpCustomLineCap, inset : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetCustomLineCapStrokeCaps(customcap : *mut GpCustomLineCap, startcap : *mut LineCap, endcap : *mut LineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetCustomLineCapStrokeJoin(customcap : *mut GpCustomLineCap, linejoin : *mut LineJoin) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetCustomLineCapType(customcap : *mut GpCustomLineCap, captype : *mut CustomLineCapType) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetCustomLineCapWidthScale(customcap : *mut GpCustomLineCap, widthscale : *mut f32) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipGetDC(graphics : *mut GpGraphics, hdc : *mut super::Gdi:: HDC) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetDpiX(graphics : *mut GpGraphics, dpi : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetDpiY(graphics : *mut GpGraphics, dpi : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetEffectParameterSize(effect : *mut CGpEffect, size : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetEffectParameters(effect : *mut CGpEffect, size : *mut u32, params : *mut ::core::ffi::c_void) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetEmHeight(family : *const GpFontFamily, style : i32, emheight : *mut u16) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetEncoderParameterList(image : *mut GpImage, clsidencoder : *const ::windows_sys::core::GUID, size : u32, buffer : *mut EncoderParameters) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetEncoderParameterListSize(image : *mut GpImage, clsidencoder : *const ::windows_sys::core::GUID, size : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetFamily(font : *mut GpFont, family : *mut *mut GpFontFamily) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetFamilyName(family : *const GpFontFamily, name : ::windows_sys::core::PWSTR, language : u16) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetFontCollectionFamilyCount(fontcollection : *mut GpFontCollection, numfound : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetFontCollectionFamilyList(fontcollection : *const GpFontCollection, numsought : i32, gpfamilies : *mut *mut GpFontFamily, numfound : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetFontHeight(font : *const GpFont, graphics : *const GpGraphics, height : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetFontHeightGivenDPI(font : *const GpFont, dpi : f32, height : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetFontSize(font : *mut GpFont, size : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetFontStyle(font : *mut GpFont, style : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetFontUnit(font : *mut GpFont, unit : *mut Unit) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetGenericFontFamilyMonospace(nativefamily : *mut *mut GpFontFamily) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetGenericFontFamilySansSerif(nativefamily : *mut *mut GpFontFamily) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetGenericFontFamilySerif(nativefamily : *mut *mut GpFontFamily) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetHatchBackgroundColor(brush : *mut GpHatch, backcol : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetHatchForegroundColor(brush : *mut GpHatch, forecol : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetHatchStyle(brush : *mut GpHatch, hatchstyle : *mut HatchStyle) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipGetHemfFromMetafile(metafile : *mut GpMetafile, hemf : *mut super::Gdi:: HENHMETAFILE) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageAttributesAdjustedPalette(imageattr : *mut GpImageAttributes, colorpalette : *mut ColorPalette, coloradjusttype : ColorAdjustType) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageBounds(image : *mut GpImage, srcrect : *mut RectF, srcunit : *mut Unit) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageDecoders(numdecoders : u32, size : u32, decoders : *mut ImageCodecInfo) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageDecodersSize(numdecoders : *mut u32, size : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageDimension(image : *mut GpImage, width : *mut f32, height : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageEncoders(numencoders : u32, size : u32, encoders : *mut ImageCodecInfo) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageEncodersSize(numencoders : *mut u32, size : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageFlags(image : *mut GpImage, flags : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageGraphicsContext(image : *mut GpImage, graphics : *mut *mut GpGraphics) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageHeight(image : *mut GpImage, height : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageHorizontalResolution(image : *mut GpImage, resolution : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageItemData(image : *mut GpImage, item : *mut ImageItemData) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImagePalette(image : *mut GpImage, palette : *mut ColorPalette, size : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImagePaletteSize(image : *mut GpImage, size : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImagePixelFormat(image : *mut GpImage, format : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageRawFormat(image : *mut GpImage, format : *mut ::windows_sys::core::GUID) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageThumbnail(image : *mut GpImage, thumbwidth : u32, thumbheight : u32, thumbimage : *mut *mut GpImage, callback : isize, callbackdata : *mut ::core::ffi::c_void) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageType(image : *mut GpImage, r#type : *mut ImageType) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageVerticalResolution(image : *mut GpImage, resolution : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetImageWidth(image : *mut GpImage, width : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetInterpolationMode(graphics : *mut GpGraphics, interpolationmode : *mut InterpolationMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetLineBlend(brush : *mut GpLineGradient, blend : *mut f32, positions : *mut f32, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetLineBlendCount(brush : *mut GpLineGradient, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetLineColors(brush : *mut GpLineGradient, colors : *mut u32) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipGetLineGammaCorrection(brush : *mut GpLineGradient, usegammacorrection : *mut super::super::Foundation:: BOOL) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetLinePresetBlend(brush : *mut GpLineGradient, blend : *mut u32, positions : *mut f32, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetLinePresetBlendCount(brush : *mut GpLineGradient, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetLineRect(brush : *mut GpLineGradient, rect : *mut RectF) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetLineRectI(brush : *mut GpLineGradient, rect : *mut Rect) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetLineSpacing(family : *const GpFontFamily, style : i32, linespacing : *mut u16) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetLineTransform(brush : *mut GpLineGradient, matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetLineWrapMode(brush : *mut GpLineGradient, wrapmode : *mut WrapMode) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipGetLogFontA(font : *mut GpFont, graphics : *mut GpGraphics, logfonta : *mut super::Gdi:: LOGFONTA) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipGetLogFontW(font : *mut GpFont, graphics : *mut GpGraphics, logfontw : *mut super::Gdi:: LOGFONTW) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetMatrixElements(matrix : *const Matrix, matrixout : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetMetafileDownLevelRasterizationLimit(metafile : *const GpMetafile, metafilerasterizationlimitdpi : *mut u32) -> Status); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GdipGetMetafileHeaderFromEmf(hemf : super::Gdi:: HENHMETAFILE, header : *mut MetafileHeader) -> Status); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GdipGetMetafileHeaderFromFile(filename : ::windows_sys::core::PCWSTR, header : *mut MetafileHeader) -> Status); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GdipGetMetafileHeaderFromMetafile(metafile : *mut GpMetafile, header : *mut MetafileHeader) -> Status); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com\"`"] fn GdipGetMetafileHeaderFromStream(stream : super::super::System::Com:: IStream, header : *mut MetafileHeader) -> Status); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GdipGetMetafileHeaderFromWmf(hwmf : super::Gdi:: HMETAFILE, wmfplaceablefileheader : *const WmfPlaceableFileHeader, header : *mut MetafileHeader) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetNearestColor(graphics : *mut GpGraphics, argb : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPageScale(graphics : *mut GpGraphics, scale : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPageUnit(graphics : *mut GpGraphics, unit : *mut Unit) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathData(path : *mut GpPath, pathdata : *mut PathData) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathFillMode(path : *mut GpPath, fillmode : *mut FillMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientBlend(brush : *mut GpPathGradient, blend : *mut f32, positions : *mut f32, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientBlendCount(brush : *mut GpPathGradient, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientCenterColor(brush : *mut GpPathGradient, colors : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientCenterPoint(brush : *mut GpPathGradient, points : *mut PointF) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientCenterPointI(brush : *mut GpPathGradient, points : *mut Point) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientFocusScales(brush : *mut GpPathGradient, xscale : *mut f32, yscale : *mut f32) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipGetPathGradientGammaCorrection(brush : *mut GpPathGradient, usegammacorrection : *mut super::super::Foundation:: BOOL) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientPath(brush : *mut GpPathGradient, path : *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientPointCount(brush : *mut GpPathGradient, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientPresetBlend(brush : *mut GpPathGradient, blend : *mut u32, positions : *mut f32, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientPresetBlendCount(brush : *mut GpPathGradient, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientRect(brush : *mut GpPathGradient, rect : *mut RectF) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientRectI(brush : *mut GpPathGradient, rect : *mut Rect) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientSurroundColorCount(brush : *mut GpPathGradient, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientSurroundColorsWithCount(brush : *const GpPathGradient, color : *mut u32, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientTransform(brush : *mut GpPathGradient, matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathGradientWrapMode(brush : *mut GpPathGradient, wrapmode : *mut WrapMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathLastPoint(path : *mut GpPath, lastpoint : *mut PointF) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathPoints(param0 : *mut GpPath, points : *mut PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathPointsI(param0 : *mut GpPath, points : *mut Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathTypes(path : *const GpPath, types : *mut u8, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathWorldBounds(path : *mut GpPath, bounds : *mut RectF, matrix : *const Matrix, pen : *const GpPen) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPathWorldBoundsI(path : *mut GpPath, bounds : *mut Rect, matrix : *const Matrix, pen : *const GpPen) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenBrushFill(pen : *mut GpPen, brush : *mut *mut GpBrush) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenColor(pen : *mut GpPen, argb : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenCompoundArray(pen : *mut GpPen, dash : *mut f32, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenCompoundCount(pen : *mut GpPen, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenCustomEndCap(pen : *mut GpPen, customcap : *mut *mut GpCustomLineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenCustomStartCap(pen : *mut GpPen, customcap : *mut *mut GpCustomLineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenDashArray(pen : *mut GpPen, dash : *mut f32, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenDashCap197819(pen : *mut GpPen, dashcap : *mut DashCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenDashCount(pen : *mut GpPen, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenDashOffset(pen : *mut GpPen, offset : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenDashStyle(pen : *mut GpPen, dashstyle : *mut DashStyle) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenEndCap(pen : *mut GpPen, endcap : *mut LineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenFillType(pen : *mut GpPen, r#type : *mut PenType) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenLineJoin(pen : *mut GpPen, linejoin : *mut LineJoin) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenMiterLimit(pen : *mut GpPen, miterlimit : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenMode(pen : *mut GpPen, penmode : *mut PenAlignment) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenStartCap(pen : *mut GpPen, startcap : *mut LineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenTransform(pen : *mut GpPen, matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenUnit(pen : *mut GpPen, unit : *mut Unit) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPenWidth(pen : *mut GpPen, width : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPixelOffsetMode(graphics : *mut GpGraphics, pixeloffsetmode : *mut PixelOffsetMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPointCount(path : *mut GpPath, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPropertyCount(image : *mut GpImage, numofproperty : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPropertyIdList(image : *mut GpImage, numofproperty : u32, list : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPropertyItem(image : *mut GpImage, propid : u32, propsize : u32, buffer : *mut PropertyItem) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPropertyItemSize(image : *mut GpImage, propid : u32, size : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetPropertySize(image : *mut GpImage, totalbuffersize : *mut u32, numproperties : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetRegionBounds(region : *mut GpRegion, graphics : *mut GpGraphics, rect : *mut RectF) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetRegionBoundsI(region : *mut GpRegion, graphics : *mut GpGraphics, rect : *mut Rect) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetRegionData(region : *mut GpRegion, buffer : *mut u8, buffersize : u32, sizefilled : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetRegionDataSize(region : *mut GpRegion, buffersize : *mut u32) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipGetRegionHRgn(region : *mut GpRegion, graphics : *mut GpGraphics, hrgn : *mut super::Gdi:: HRGN) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetRegionScans(region : *mut GpRegion, rects : *mut RectF, count : *mut i32, matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetRegionScansCount(region : *mut GpRegion, count : *mut u32, matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetRegionScansI(region : *mut GpRegion, rects : *mut Rect, count : *mut i32, matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetRenderingOrigin(graphics : *mut GpGraphics, x : *mut i32, y : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetSmoothingMode(graphics : *mut GpGraphics, smoothingmode : *mut SmoothingMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetSolidFillColor(brush : *mut GpSolidFill, color : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetStringFormatAlign(format : *const GpStringFormat, align : *mut StringAlignment) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetStringFormatDigitSubstitution(format : *const GpStringFormat, language : *mut u16, substitute : *mut StringDigitSubstitute) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetStringFormatFlags(format : *const GpStringFormat, flags : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetStringFormatHotkeyPrefix(format : *const GpStringFormat, hotkeyprefix : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetStringFormatLineAlign(format : *const GpStringFormat, align : *mut StringAlignment) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetStringFormatMeasurableCharacterRangeCount(format : *const GpStringFormat, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetStringFormatTabStopCount(format : *const GpStringFormat, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetStringFormatTabStops(format : *const GpStringFormat, count : i32, firsttaboffset : *mut f32, tabstops : *mut f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetStringFormatTrimming(format : *const GpStringFormat, trimming : *mut StringTrimming) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetTextContrast(graphics : *mut GpGraphics, contrast : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetTextRenderingHint(graphics : *mut GpGraphics, mode : *mut TextRenderingHint) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetTextureImage(brush : *mut GpTexture, image : *mut *mut GpImage) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetTextureTransform(brush : *mut GpTexture, matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetTextureWrapMode(brush : *mut GpTexture, wrapmode : *mut WrapMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetVisibleClipBounds(graphics : *mut GpGraphics, rect : *mut RectF) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetVisibleClipBoundsI(graphics : *mut GpGraphics, rect : *mut Rect) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGetWorldTransform(graphics : *mut GpGraphics, matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGraphicsClear(graphics : *mut GpGraphics, color : u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipGraphicsSetAbort(pgraphics : *mut GpGraphics, piabort : GdiplusAbort) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipImageForceValidation(image : *mut GpImage) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipImageGetFrameCount(image : *mut GpImage, dimensionid : *const ::windows_sys::core::GUID, count : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipImageGetFrameDimensionsCount(image : *mut GpImage, count : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipImageGetFrameDimensionsList(image : *mut GpImage, dimensionids : *mut ::windows_sys::core::GUID, count : u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipImageRotateFlip(image : *mut GpImage, rftype : RotateFlipType) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipImageSelectActiveFrame(image : *mut GpImage, dimensionid : *const ::windows_sys::core::GUID, frameindex : u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipImageSetAbort(pimage : *mut GpImage, piabort : GdiplusAbort) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipInitializePalette(palette : *mut ColorPalette, palettetype : PaletteType, optimalcolors : i32, usetransparentcolor : super::super::Foundation:: BOOL, bitmap : *mut GpBitmap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipInvertMatrix(matrix : *mut Matrix) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsClipEmpty(graphics : *mut GpGraphics, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsEmptyRegion(region : *mut GpRegion, graphics : *mut GpGraphics, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsEqualRegion(region : *mut GpRegion, region2 : *mut GpRegion, graphics : *mut GpGraphics, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsInfiniteRegion(region : *mut GpRegion, graphics : *mut GpGraphics, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsMatrixEqual(matrix : *const Matrix, matrix2 : *const Matrix, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsMatrixIdentity(matrix : *const Matrix, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsMatrixInvertible(matrix : *const Matrix, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsOutlineVisiblePathPoint(path : *mut GpPath, x : f32, y : f32, pen : *mut GpPen, graphics : *mut GpGraphics, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsOutlineVisiblePathPointI(path : *mut GpPath, x : i32, y : i32, pen : *mut GpPen, graphics : *mut GpGraphics, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsStyleAvailable(family : *const GpFontFamily, style : i32, isstyleavailable : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsVisibleClipEmpty(graphics : *mut GpGraphics, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsVisiblePathPoint(path : *mut GpPath, x : f32, y : f32, graphics : *mut GpGraphics, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsVisiblePathPointI(path : *mut GpPath, x : i32, y : i32, graphics : *mut GpGraphics, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsVisiblePoint(graphics : *mut GpGraphics, x : f32, y : f32, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsVisiblePointI(graphics : *mut GpGraphics, x : i32, y : i32, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsVisibleRect(graphics : *mut GpGraphics, x : f32, y : f32, width : f32, height : f32, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsVisibleRectI(graphics : *mut GpGraphics, x : i32, y : i32, width : i32, height : i32, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsVisibleRegionPoint(region : *mut GpRegion, x : f32, y : f32, graphics : *mut GpGraphics, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsVisibleRegionPointI(region : *mut GpRegion, x : i32, y : i32, graphics : *mut GpGraphics, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsVisibleRegionRect(region : *mut GpRegion, x : f32, y : f32, width : f32, height : f32, graphics : *mut GpGraphics, result : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipIsVisibleRegionRectI(region : *mut GpRegion, x : i32, y : i32, width : i32, height : i32, graphics : *mut GpGraphics, result : *mut super::super::Foundation:: BOOL) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipLoadImageFromFile(filename : ::windows_sys::core::PCWSTR, image : *mut *mut GpImage) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipLoadImageFromFileICM(filename : ::windows_sys::core::PCWSTR, image : *mut *mut GpImage) -> Status); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn GdipLoadImageFromStream(stream : super::super::System::Com:: IStream, image : *mut *mut GpImage) -> Status); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn GdipLoadImageFromStreamICM(stream : super::super::System::Com:: IStream, image : *mut *mut GpImage) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipMeasureCharacterRanges(graphics : *mut GpGraphics, string : ::windows_sys::core::PCWSTR, length : i32, font : *const GpFont, layoutrect : *const RectF, stringformat : *const GpStringFormat, regioncount : i32, regions : *mut *mut GpRegion) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipMeasureDriverString(graphics : *mut GpGraphics, text : *const u16, length : i32, font : *const GpFont, positions : *const PointF, flags : i32, matrix : *const Matrix, boundingbox : *mut RectF) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipMeasureString(graphics : *mut GpGraphics, string : ::windows_sys::core::PCWSTR, length : i32, font : *const GpFont, layoutrect : *const RectF, stringformat : *const GpStringFormat, boundingbox : *mut RectF, codepointsfitted : *mut i32, linesfilled : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipMultiplyLineTransform(brush : *mut GpLineGradient, matrix : *const Matrix, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipMultiplyMatrix(matrix : *mut Matrix, matrix2 : *mut Matrix, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipMultiplyPathGradientTransform(brush : *mut GpPathGradient, matrix : *const Matrix, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipMultiplyPenTransform(pen : *mut GpPen, matrix : *const Matrix, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipMultiplyTextureTransform(brush : *mut GpTexture, matrix : *const Matrix, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipMultiplyWorldTransform(graphics : *mut GpGraphics, matrix : *const Matrix, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipNewInstalledFontCollection(fontcollection : *mut *mut GpFontCollection) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipNewPrivateFontCollection(fontcollection : *mut *mut GpFontCollection) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipPathIterCopyData(iterator : *mut GpPathIterator, resultcount : *mut i32, points : *mut PointF, types : *mut u8, startindex : i32, endindex : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipPathIterEnumerate(iterator : *mut GpPathIterator, resultcount : *mut i32, points : *mut PointF, types : *mut u8, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipPathIterGetCount(iterator : *mut GpPathIterator, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipPathIterGetSubpathCount(iterator : *mut GpPathIterator, count : *mut i32) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipPathIterHasCurve(iterator : *mut GpPathIterator, hascurve : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipPathIterIsValid(iterator : *mut GpPathIterator, valid : *mut super::super::Foundation:: BOOL) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipPathIterNextMarker(iterator : *mut GpPathIterator, resultcount : *mut i32, startindex : *mut i32, endindex : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipPathIterNextMarkerPath(iterator : *mut GpPathIterator, resultcount : *mut i32, path : *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipPathIterNextPathType(iterator : *mut GpPathIterator, resultcount : *mut i32, pathtype : *mut u8, startindex : *mut i32, endindex : *mut i32) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipPathIterNextSubpath(iterator : *mut GpPathIterator, resultcount : *mut i32, startindex : *mut i32, endindex : *mut i32, isclosed : *mut super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipPathIterNextSubpathPath(iterator : *mut GpPathIterator, resultcount : *mut i32, path : *mut GpPath, isclosed : *mut super::super::Foundation:: BOOL) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipPathIterRewind(iterator : *mut GpPathIterator) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipPlayMetafileRecord(metafile : *const GpMetafile, recordtype : EmfPlusRecordType, flags : u32, datasize : u32, data : *const u8) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipPrivateAddFontFile(fontcollection : *mut GpFontCollection, filename : ::windows_sys::core::PCWSTR) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipPrivateAddMemoryFont(fontcollection : *mut GpFontCollection, memory : *const ::core::ffi::c_void, length : i32) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipRecordMetafile(referencehdc : super::Gdi:: HDC, r#type : EmfType, framerect : *const RectF, frameunit : MetafileFrameUnit, description : ::windows_sys::core::PCWSTR, metafile : *mut *mut GpMetafile) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipRecordMetafileFileName(filename : ::windows_sys::core::PCWSTR, referencehdc : super::Gdi:: HDC, r#type : EmfType, framerect : *const RectF, frameunit : MetafileFrameUnit, description : ::windows_sys::core::PCWSTR, metafile : *mut *mut GpMetafile) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipRecordMetafileFileNameI(filename : ::windows_sys::core::PCWSTR, referencehdc : super::Gdi:: HDC, r#type : EmfType, framerect : *const Rect, frameunit : MetafileFrameUnit, description : ::windows_sys::core::PCWSTR, metafile : *mut *mut GpMetafile) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipRecordMetafileI(referencehdc : super::Gdi:: HDC, r#type : EmfType, framerect : *const Rect, frameunit : MetafileFrameUnit, description : ::windows_sys::core::PCWSTR, metafile : *mut *mut GpMetafile) -> Status); +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com\"`"] fn GdipRecordMetafileStream(stream : super::super::System::Com:: IStream, referencehdc : super::Gdi:: HDC, r#type : EmfType, framerect : *const RectF, frameunit : MetafileFrameUnit, description : ::windows_sys::core::PCWSTR, metafile : *mut *mut GpMetafile) -> Status); +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com\"`"] fn GdipRecordMetafileStreamI(stream : super::super::System::Com:: IStream, referencehdc : super::Gdi:: HDC, r#type : EmfType, framerect : *const Rect, frameunit : MetafileFrameUnit, description : ::windows_sys::core::PCWSTR, metafile : *mut *mut GpMetafile) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipReleaseDC(graphics : *mut GpGraphics, hdc : super::Gdi:: HDC) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipRemovePropertyItem(image : *mut GpImage, propid : u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipResetClip(graphics : *mut GpGraphics) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipResetImageAttributes(imageattr : *mut GpImageAttributes, r#type : ColorAdjustType) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipResetLineTransform(brush : *mut GpLineGradient) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipResetPageTransform(graphics : *mut GpGraphics) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipResetPath(path : *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipResetPathGradientTransform(brush : *mut GpPathGradient) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipResetPenTransform(pen : *mut GpPen) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipResetTextureTransform(brush : *mut GpTexture) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipResetWorldTransform(graphics : *mut GpGraphics) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipRestoreGraphics(graphics : *mut GpGraphics, state : u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipReversePath(path : *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipRotateLineTransform(brush : *mut GpLineGradient, angle : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipRotateMatrix(matrix : *mut Matrix, angle : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipRotatePathGradientTransform(brush : *mut GpPathGradient, angle : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipRotatePenTransform(pen : *mut GpPen, angle : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipRotateTextureTransform(brush : *mut GpTexture, angle : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipRotateWorldTransform(graphics : *mut GpGraphics, angle : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSaveAdd(image : *mut GpImage, encoderparams : *const EncoderParameters) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSaveAddImage(image : *mut GpImage, newimage : *mut GpImage, encoderparams : *const EncoderParameters) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSaveGraphics(graphics : *mut GpGraphics, state : *mut u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSaveImageToFile(image : *mut GpImage, filename : ::windows_sys::core::PCWSTR, clsidencoder : *const ::windows_sys::core::GUID, encoderparams : *const EncoderParameters) -> Status); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn GdipSaveImageToStream(image : *mut GpImage, stream : super::super::System::Com:: IStream, clsidencoder : *const ::windows_sys::core::GUID, encoderparams : *const EncoderParameters) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipScaleLineTransform(brush : *mut GpLineGradient, sx : f32, sy : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipScaleMatrix(matrix : *mut Matrix, scalex : f32, scaley : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipScalePathGradientTransform(brush : *mut GpPathGradient, sx : f32, sy : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipScalePenTransform(pen : *mut GpPen, sx : f32, sy : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipScaleTextureTransform(brush : *mut GpTexture, sx : f32, sy : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipScaleWorldTransform(graphics : *mut GpGraphics, sx : f32, sy : f32, order : MatrixOrder) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipSetAdjustableArrowCapFillState(cap : *mut GpAdjustableArrowCap, fillstate : super::super::Foundation:: BOOL) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetAdjustableArrowCapHeight(cap : *mut GpAdjustableArrowCap, height : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetAdjustableArrowCapMiddleInset(cap : *mut GpAdjustableArrowCap, middleinset : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetAdjustableArrowCapWidth(cap : *mut GpAdjustableArrowCap, width : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetClipGraphics(graphics : *mut GpGraphics, srcgraphics : *mut GpGraphics, combinemode : CombineMode) -> Status); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GdipSetClipHrgn(graphics : *mut GpGraphics, hrgn : super::Gdi:: HRGN, combinemode : CombineMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetClipPath(graphics : *mut GpGraphics, path : *mut GpPath, combinemode : CombineMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetClipRect(graphics : *mut GpGraphics, x : f32, y : f32, width : f32, height : f32, combinemode : CombineMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetClipRectI(graphics : *mut GpGraphics, x : i32, y : i32, width : i32, height : i32, combinemode : CombineMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetClipRegion(graphics : *mut GpGraphics, region : *mut GpRegion, combinemode : CombineMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetCompositingMode(graphics : *mut GpGraphics, compositingmode : CompositingMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetCompositingQuality(graphics : *mut GpGraphics, compositingquality : CompositingQuality) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetCustomLineCapBaseCap(customcap : *mut GpCustomLineCap, basecap : LineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetCustomLineCapBaseInset(customcap : *mut GpCustomLineCap, inset : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetCustomLineCapStrokeCaps(customcap : *mut GpCustomLineCap, startcap : LineCap, endcap : LineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetCustomLineCapStrokeJoin(customcap : *mut GpCustomLineCap, linejoin : LineJoin) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetCustomLineCapWidthScale(customcap : *mut GpCustomLineCap, widthscale : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetEffectParameters(effect : *mut CGpEffect, params : *const ::core::ffi::c_void, size : u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetEmpty(region : *mut GpRegion) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipSetImageAttributesCachedBackground(imageattr : *mut GpImageAttributes, enableflag : super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipSetImageAttributesColorKeys(imageattr : *mut GpImageAttributes, r#type : ColorAdjustType, enableflag : super::super::Foundation:: BOOL, colorlow : u32, colorhigh : u32) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipSetImageAttributesColorMatrix(imageattr : *mut GpImageAttributes, r#type : ColorAdjustType, enableflag : super::super::Foundation:: BOOL, colormatrix : *const ColorMatrix, graymatrix : *const ColorMatrix, flags : ColorMatrixFlags) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipSetImageAttributesGamma(imageattr : *mut GpImageAttributes, r#type : ColorAdjustType, enableflag : super::super::Foundation:: BOOL, gamma : f32) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipSetImageAttributesNoOp(imageattr : *mut GpImageAttributes, r#type : ColorAdjustType, enableflag : super::super::Foundation:: BOOL) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipSetImageAttributesOutputChannel(imageattr : *mut GpImageAttributes, r#type : ColorAdjustType, enableflag : super::super::Foundation:: BOOL, channelflags : ColorChannelFlags) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipSetImageAttributesOutputChannelColorProfile(imageattr : *mut GpImageAttributes, r#type : ColorAdjustType, enableflag : super::super::Foundation:: BOOL, colorprofilefilename : ::windows_sys::core::PCWSTR) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipSetImageAttributesRemapTable(imageattr : *mut GpImageAttributes, r#type : ColorAdjustType, enableflag : super::super::Foundation:: BOOL, mapsize : u32, map : *const ColorMap) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipSetImageAttributesThreshold(imageattr : *mut GpImageAttributes, r#type : ColorAdjustType, enableflag : super::super::Foundation:: BOOL, threshold : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetImageAttributesToIdentity(imageattr : *mut GpImageAttributes, r#type : ColorAdjustType) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipSetImageAttributesWrapMode(imageattr : *mut GpImageAttributes, wrap : WrapMode, argb : u32, clamp : super::super::Foundation:: BOOL) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetImagePalette(image : *mut GpImage, palette : *const ColorPalette) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetInfinite(region : *mut GpRegion) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetInterpolationMode(graphics : *mut GpGraphics, interpolationmode : InterpolationMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetLineBlend(brush : *mut GpLineGradient, blend : *const f32, positions : *const f32, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetLineColors(brush : *mut GpLineGradient, color1 : u32, color2 : u32) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipSetLineGammaCorrection(brush : *mut GpLineGradient, usegammacorrection : super::super::Foundation:: BOOL) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetLineLinearBlend(brush : *mut GpLineGradient, focus : f32, scale : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetLinePresetBlend(brush : *mut GpLineGradient, blend : *const u32, positions : *const f32, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetLineSigmaBlend(brush : *mut GpLineGradient, focus : f32, scale : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetLineTransform(brush : *mut GpLineGradient, matrix : *const Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetLineWrapMode(brush : *mut GpLineGradient, wrapmode : WrapMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetMatrixElements(matrix : *mut Matrix, m11 : f32, m12 : f32, m21 : f32, m22 : f32, dx : f32, dy : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetMetafileDownLevelRasterizationLimit(metafile : *mut GpMetafile, metafilerasterizationlimitdpi : u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPageScale(graphics : *mut GpGraphics, scale : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPageUnit(graphics : *mut GpGraphics, unit : Unit) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathFillMode(path : *mut GpPath, fillmode : FillMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathGradientBlend(brush : *mut GpPathGradient, blend : *const f32, positions : *const f32, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathGradientCenterColor(brush : *mut GpPathGradient, colors : u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathGradientCenterPoint(brush : *mut GpPathGradient, points : *const PointF) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathGradientCenterPointI(brush : *mut GpPathGradient, points : *const Point) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathGradientFocusScales(brush : *mut GpPathGradient, xscale : f32, yscale : f32) -> Status); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdipSetPathGradientGammaCorrection(brush : *mut GpPathGradient, usegammacorrection : super::super::Foundation:: BOOL) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathGradientLinearBlend(brush : *mut GpPathGradient, focus : f32, scale : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathGradientPath(brush : *mut GpPathGradient, path : *const GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathGradientPresetBlend(brush : *mut GpPathGradient, blend : *const u32, positions : *const f32, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathGradientSigmaBlend(brush : *mut GpPathGradient, focus : f32, scale : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathGradientSurroundColorsWithCount(brush : *mut GpPathGradient, color : *const u32, count : *mut i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathGradientTransform(brush : *mut GpPathGradient, matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathGradientWrapMode(brush : *mut GpPathGradient, wrapmode : WrapMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPathMarker(path : *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenBrushFill(pen : *mut GpPen, brush : *mut GpBrush) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenColor(pen : *mut GpPen, argb : u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenCompoundArray(pen : *mut GpPen, dash : *const f32, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenCustomEndCap(pen : *mut GpPen, customcap : *mut GpCustomLineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenCustomStartCap(pen : *mut GpPen, customcap : *mut GpCustomLineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenDashArray(pen : *mut GpPen, dash : *const f32, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenDashCap197819(pen : *mut GpPen, dashcap : DashCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenDashOffset(pen : *mut GpPen, offset : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenDashStyle(pen : *mut GpPen, dashstyle : DashStyle) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenEndCap(pen : *mut GpPen, endcap : LineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenLineCap197819(pen : *mut GpPen, startcap : LineCap, endcap : LineCap, dashcap : DashCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenLineJoin(pen : *mut GpPen, linejoin : LineJoin) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenMiterLimit(pen : *mut GpPen, miterlimit : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenMode(pen : *mut GpPen, penmode : PenAlignment) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenStartCap(pen : *mut GpPen, startcap : LineCap) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenTransform(pen : *mut GpPen, matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenUnit(pen : *mut GpPen, unit : Unit) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPenWidth(pen : *mut GpPen, width : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPixelOffsetMode(graphics : *mut GpGraphics, pixeloffsetmode : PixelOffsetMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetPropertyItem(image : *mut GpImage, item : *const PropertyItem) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetRenderingOrigin(graphics : *mut GpGraphics, x : i32, y : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetSmoothingMode(graphics : *mut GpGraphics, smoothingmode : SmoothingMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetSolidFillColor(brush : *mut GpSolidFill, color : u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetStringFormatAlign(format : *mut GpStringFormat, align : StringAlignment) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetStringFormatDigitSubstitution(format : *mut GpStringFormat, language : u16, substitute : StringDigitSubstitute) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetStringFormatFlags(format : *mut GpStringFormat, flags : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetStringFormatHotkeyPrefix(format : *mut GpStringFormat, hotkeyprefix : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetStringFormatLineAlign(format : *mut GpStringFormat, align : StringAlignment) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetStringFormatMeasurableCharacterRanges(format : *mut GpStringFormat, rangecount : i32, ranges : *const CharacterRange) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetStringFormatTabStops(format : *mut GpStringFormat, firsttaboffset : f32, count : i32, tabstops : *const f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetStringFormatTrimming(format : *mut GpStringFormat, trimming : StringTrimming) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetTextContrast(graphics : *mut GpGraphics, contrast : u32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetTextRenderingHint(graphics : *mut GpGraphics, mode : TextRenderingHint) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetTextureTransform(brush : *mut GpTexture, matrix : *const Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetTextureWrapMode(brush : *mut GpTexture, wrapmode : WrapMode) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipSetWorldTransform(graphics : *mut GpGraphics, matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipShearMatrix(matrix : *mut Matrix, shearx : f32, sheary : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipStartPathFigure(path : *mut GpPath) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipStringFormatGetGenericDefault(format : *mut *mut GpStringFormat) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipStringFormatGetGenericTypographic(format : *mut *mut GpStringFormat) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTestControl(control : GpTestControlEnum, param1 : *mut ::core::ffi::c_void) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTransformMatrixPoints(matrix : *mut Matrix, pts : *mut PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTransformMatrixPointsI(matrix : *mut Matrix, pts : *mut Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTransformPath(path : *mut GpPath, matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTransformPoints(graphics : *mut GpGraphics, destspace : CoordinateSpace, srcspace : CoordinateSpace, points : *mut PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTransformPointsI(graphics : *mut GpGraphics, destspace : CoordinateSpace, srcspace : CoordinateSpace, points : *mut Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTransformRegion(region : *mut GpRegion, matrix : *mut Matrix) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTranslateClip(graphics : *mut GpGraphics, dx : f32, dy : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTranslateClipI(graphics : *mut GpGraphics, dx : i32, dy : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTranslateLineTransform(brush : *mut GpLineGradient, dx : f32, dy : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTranslateMatrix(matrix : *mut Matrix, offsetx : f32, offsety : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTranslatePathGradientTransform(brush : *mut GpPathGradient, dx : f32, dy : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTranslatePenTransform(pen : *mut GpPen, dx : f32, dy : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTranslateRegion(region : *mut GpRegion, dx : f32, dy : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTranslateRegionI(region : *mut GpRegion, dx : i32, dy : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTranslateTextureTransform(brush : *mut GpTexture, dx : f32, dy : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipTranslateWorldTransform(graphics : *mut GpGraphics, dx : f32, dy : f32, order : MatrixOrder) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipVectorTransformMatrixPoints(matrix : *mut Matrix, pts : *mut PointF, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipVectorTransformMatrixPointsI(matrix : *mut Matrix, pts : *mut Point, count : i32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipWarpPath(path : *mut GpPath, matrix : *mut Matrix, points : *const PointF, count : i32, srcx : f32, srcy : f32, srcwidth : f32, srcheight : f32, warpmode : WarpMode, flatness : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipWidenPath(nativepath : *mut GpPath, pen : *mut GpPen, matrix : *mut Matrix, flatness : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdipWindingModeOutline(path : *mut GpPath, matrix : *mut Matrix, flatness : f32) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdiplusNotificationHook(token : *mut usize) -> Status); +::windows_targets::link!("gdiplus.dll" "system" fn GdiplusNotificationUnhook(token : usize) -> ()); +::windows_targets::link!("gdiplus.dll" "system" fn GdiplusShutdown(token : usize) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdiplus.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdiplusStartup(token : *mut usize, input : *const GdiplusStartupInput, output : *mut GdiplusStartupOutput) -> Status); +pub type GdiplusAbort = *mut ::core::ffi::c_void; +pub type IImageBytes = *mut ::core::ffi::c_void; +pub const ALPHA_SHIFT: u32 = 24u32; +pub const Aborted: Status = 9i32; +pub const AccessDenied: Status = 12i32; +pub const AdjustBlackSaturation: CurveAdjustments = 7i32; +pub const AdjustContrast: CurveAdjustments = 2i32; +pub const AdjustDensity: CurveAdjustments = 1i32; +pub const AdjustExposure: CurveAdjustments = 0i32; +pub const AdjustHighlight: CurveAdjustments = 3i32; +pub const AdjustMidtone: CurveAdjustments = 5i32; +pub const AdjustShadow: CurveAdjustments = 4i32; +pub const AdjustWhiteSaturation: CurveAdjustments = 6i32; +pub const BLUE_SHIFT: u32 = 0u32; +pub const BlurEffectGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x633c80a4_1843_482b_9ef2_be2834c5fdd4); +pub const BrightnessContrastEffectGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd3a1dbe1_8ec4_4c17_9f4c_ea97ad1c343d); +pub const BrushTypeHatchFill: BrushType = 1i32; +pub const BrushTypeLinearGradient: BrushType = 4i32; +pub const BrushTypePathGradient: BrushType = 3i32; +pub const BrushTypeSolidColor: BrushType = 0i32; +pub const BrushTypeTextureFill: BrushType = 2i32; +pub const CodecIImageBytes: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x025d1823_6c7d_447b_bbdb_a3cbc3dfa2fc); +pub const ColorAdjustTypeAny: ColorAdjustType = 6i32; +pub const ColorAdjustTypeBitmap: ColorAdjustType = 1i32; +pub const ColorAdjustTypeBrush: ColorAdjustType = 2i32; +pub const ColorAdjustTypeCount: ColorAdjustType = 5i32; +pub const ColorAdjustTypeDefault: ColorAdjustType = 0i32; +pub const ColorAdjustTypePen: ColorAdjustType = 3i32; +pub const ColorAdjustTypeText: ColorAdjustType = 4i32; +pub const ColorBalanceEffectGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x537e597d_251e_48da_9664_29ca496b70f8); +pub const ColorChannelFlagsC: ColorChannelFlags = 0i32; +pub const ColorChannelFlagsK: ColorChannelFlags = 3i32; +pub const ColorChannelFlagsLast: ColorChannelFlags = 4i32; +pub const ColorChannelFlagsM: ColorChannelFlags = 1i32; +pub const ColorChannelFlagsY: ColorChannelFlags = 2i32; +pub const ColorCurveEffectGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdd6a0022_58e4_4a67_9d9b_d48eb881a53d); +pub const ColorLUTEffectGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa7ce72a9_0f7f_40d7_b3cc_d0c02d5c3212); +pub const ColorMatrixEffectGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x718f2615_7933_40e3_a511_5f68fe14dd74); +pub const ColorMatrixFlagsAltGray: ColorMatrixFlags = 2i32; +pub const ColorMatrixFlagsDefault: ColorMatrixFlags = 0i32; +pub const ColorMatrixFlagsSkipGrays: ColorMatrixFlags = 1i32; +pub const ColorModeARGB32: ColorMode = 0i32; +pub const ColorModeARGB64: ColorMode = 1i32; +pub const CombineModeComplement: CombineMode = 5i32; +pub const CombineModeExclude: CombineMode = 4i32; +pub const CombineModeIntersect: CombineMode = 1i32; +pub const CombineModeReplace: CombineMode = 0i32; +pub const CombineModeUnion: CombineMode = 2i32; +pub const CombineModeXor: CombineMode = 3i32; +pub const CompositingModeSourceCopy: CompositingMode = 1i32; +pub const CompositingModeSourceOver: CompositingMode = 0i32; +pub const CompositingQualityAssumeLinear: CompositingQuality = 4i32; +pub const CompositingQualityDefault: CompositingQuality = 0i32; +pub const CompositingQualityGammaCorrected: CompositingQuality = 3i32; +pub const CompositingQualityHighQuality: CompositingQuality = 2i32; +pub const CompositingQualityHighSpeed: CompositingQuality = 1i32; +pub const CompositingQualityInvalid: CompositingQuality = -1i32; +pub const ConvertToEmfPlusFlagsDefault: ConvertToEmfPlusFlags = 0i32; +pub const ConvertToEmfPlusFlagsInvalidRecord: ConvertToEmfPlusFlags = 4i32; +pub const ConvertToEmfPlusFlagsRopUsed: ConvertToEmfPlusFlags = 1i32; +pub const ConvertToEmfPlusFlagsText: ConvertToEmfPlusFlags = 2i32; +pub const CoordinateSpaceDevice: CoordinateSpace = 2i32; +pub const CoordinateSpacePage: CoordinateSpace = 1i32; +pub const CoordinateSpaceWorld: CoordinateSpace = 0i32; +pub const CurveChannelAll: CurveChannel = 0i32; +pub const CurveChannelBlue: CurveChannel = 3i32; +pub const CurveChannelGreen: CurveChannel = 2i32; +pub const CurveChannelRed: CurveChannel = 1i32; +pub const CustomLineCapTypeAdjustableArrow: CustomLineCapType = 1i32; +pub const CustomLineCapTypeDefault: CustomLineCapType = 0i32; +pub const DashCapFlat: DashCap = 0i32; +pub const DashCapRound: DashCap = 2i32; +pub const DashCapTriangle: DashCap = 3i32; +pub const DashStyleCustom: DashStyle = 5i32; +pub const DashStyleDash: DashStyle = 1i32; +pub const DashStyleDashDot: DashStyle = 3i32; +pub const DashStyleDashDotDot: DashStyle = 4i32; +pub const DashStyleDot: DashStyle = 2i32; +pub const DashStyleSolid: DashStyle = 0i32; +pub const DebugEventLevelFatal: DebugEventLevel = 0i32; +pub const DebugEventLevelWarning: DebugEventLevel = 1i32; +pub const DitherTypeDualSpiral4x4: DitherType = 7i32; +pub const DitherTypeDualSpiral8x8: DitherType = 8i32; +pub const DitherTypeErrorDiffusion: DitherType = 9i32; +pub const DitherTypeMax: DitherType = 10i32; +pub const DitherTypeNone: DitherType = 0i32; +pub const DitherTypeOrdered16x16: DitherType = 4i32; +pub const DitherTypeOrdered4x4: DitherType = 2i32; +pub const DitherTypeOrdered8x8: DitherType = 3i32; +pub const DitherTypeSolid: DitherType = 1i32; +pub const DitherTypeSpiral4x4: DitherType = 5i32; +pub const DitherTypeSpiral8x8: DitherType = 6i32; +pub const DriverStringOptionsCmapLookup: DriverStringOptions = 1i32; +pub const DriverStringOptionsLimitSubpixel: DriverStringOptions = 8i32; +pub const DriverStringOptionsRealizedAdvance: DriverStringOptions = 4i32; +pub const DriverStringOptionsVertical: DriverStringOptions = 2i32; +pub const EmfPlusRecordTotal: EmfPlusRecordType = 16443i32; +pub const EmfPlusRecordTypeBeginContainer: EmfPlusRecordType = 16423i32; +pub const EmfPlusRecordTypeBeginContainerNoParams: EmfPlusRecordType = 16424i32; +pub const EmfPlusRecordTypeClear: EmfPlusRecordType = 16393i32; +pub const EmfPlusRecordTypeComment: EmfPlusRecordType = 16387i32; +pub const EmfPlusRecordTypeDrawArc: EmfPlusRecordType = 16402i32; +pub const EmfPlusRecordTypeDrawBeziers: EmfPlusRecordType = 16409i32; +pub const EmfPlusRecordTypeDrawClosedCurve: EmfPlusRecordType = 16407i32; +pub const EmfPlusRecordTypeDrawCurve: EmfPlusRecordType = 16408i32; +pub const EmfPlusRecordTypeDrawDriverString: EmfPlusRecordType = 16438i32; +pub const EmfPlusRecordTypeDrawEllipse: EmfPlusRecordType = 16399i32; +pub const EmfPlusRecordTypeDrawImage: EmfPlusRecordType = 16410i32; +pub const EmfPlusRecordTypeDrawImagePoints: EmfPlusRecordType = 16411i32; +pub const EmfPlusRecordTypeDrawLines: EmfPlusRecordType = 16397i32; +pub const EmfPlusRecordTypeDrawPath: EmfPlusRecordType = 16405i32; +pub const EmfPlusRecordTypeDrawPie: EmfPlusRecordType = 16401i32; +pub const EmfPlusRecordTypeDrawRects: EmfPlusRecordType = 16395i32; +pub const EmfPlusRecordTypeDrawString: EmfPlusRecordType = 16412i32; +pub const EmfPlusRecordTypeEndContainer: EmfPlusRecordType = 16425i32; +pub const EmfPlusRecordTypeEndOfFile: EmfPlusRecordType = 16386i32; +pub const EmfPlusRecordTypeFillClosedCurve: EmfPlusRecordType = 16406i32; +pub const EmfPlusRecordTypeFillEllipse: EmfPlusRecordType = 16398i32; +pub const EmfPlusRecordTypeFillPath: EmfPlusRecordType = 16404i32; +pub const EmfPlusRecordTypeFillPie: EmfPlusRecordType = 16400i32; +pub const EmfPlusRecordTypeFillPolygon: EmfPlusRecordType = 16396i32; +pub const EmfPlusRecordTypeFillRects: EmfPlusRecordType = 16394i32; +pub const EmfPlusRecordTypeFillRegion: EmfPlusRecordType = 16403i32; +pub const EmfPlusRecordTypeGetDC: EmfPlusRecordType = 16388i32; +pub const EmfPlusRecordTypeHeader: EmfPlusRecordType = 16385i32; +pub const EmfPlusRecordTypeInvalid: EmfPlusRecordType = 16384i32; +pub const EmfPlusRecordTypeMax: EmfPlusRecordType = 16442i32; +pub const EmfPlusRecordTypeMin: EmfPlusRecordType = 16385i32; +pub const EmfPlusRecordTypeMultiFormatEnd: EmfPlusRecordType = 16391i32; +pub const EmfPlusRecordTypeMultiFormatSection: EmfPlusRecordType = 16390i32; +pub const EmfPlusRecordTypeMultiFormatStart: EmfPlusRecordType = 16389i32; +pub const EmfPlusRecordTypeMultiplyWorldTransform: EmfPlusRecordType = 16428i32; +pub const EmfPlusRecordTypeObject: EmfPlusRecordType = 16392i32; +pub const EmfPlusRecordTypeOffsetClip: EmfPlusRecordType = 16437i32; +pub const EmfPlusRecordTypeResetClip: EmfPlusRecordType = 16433i32; +pub const EmfPlusRecordTypeResetWorldTransform: EmfPlusRecordType = 16427i32; +pub const EmfPlusRecordTypeRestore: EmfPlusRecordType = 16422i32; +pub const EmfPlusRecordTypeRotateWorldTransform: EmfPlusRecordType = 16431i32; +pub const EmfPlusRecordTypeSave: EmfPlusRecordType = 16421i32; +pub const EmfPlusRecordTypeScaleWorldTransform: EmfPlusRecordType = 16430i32; +pub const EmfPlusRecordTypeSerializableObject: EmfPlusRecordType = 16440i32; +pub const EmfPlusRecordTypeSetAntiAliasMode: EmfPlusRecordType = 16414i32; +pub const EmfPlusRecordTypeSetClipPath: EmfPlusRecordType = 16435i32; +pub const EmfPlusRecordTypeSetClipRect: EmfPlusRecordType = 16434i32; +pub const EmfPlusRecordTypeSetClipRegion: EmfPlusRecordType = 16436i32; +pub const EmfPlusRecordTypeSetCompositingMode: EmfPlusRecordType = 16419i32; +pub const EmfPlusRecordTypeSetCompositingQuality: EmfPlusRecordType = 16420i32; +pub const EmfPlusRecordTypeSetInterpolationMode: EmfPlusRecordType = 16417i32; +pub const EmfPlusRecordTypeSetPageTransform: EmfPlusRecordType = 16432i32; +pub const EmfPlusRecordTypeSetPixelOffsetMode: EmfPlusRecordType = 16418i32; +pub const EmfPlusRecordTypeSetRenderingOrigin: EmfPlusRecordType = 16413i32; +pub const EmfPlusRecordTypeSetTSClip: EmfPlusRecordType = 16442i32; +pub const EmfPlusRecordTypeSetTSGraphics: EmfPlusRecordType = 16441i32; +pub const EmfPlusRecordTypeSetTextContrast: EmfPlusRecordType = 16416i32; +pub const EmfPlusRecordTypeSetTextRenderingHint: EmfPlusRecordType = 16415i32; +pub const EmfPlusRecordTypeSetWorldTransform: EmfPlusRecordType = 16426i32; +pub const EmfPlusRecordTypeStrokeFillPath: EmfPlusRecordType = 16439i32; +pub const EmfPlusRecordTypeTranslateWorldTransform: EmfPlusRecordType = 16429i32; +pub const EmfRecordTypeAbortPath: EmfPlusRecordType = 68i32; +pub const EmfRecordTypeAlphaBlend: EmfPlusRecordType = 114i32; +pub const EmfRecordTypeAngleArc: EmfPlusRecordType = 41i32; +pub const EmfRecordTypeArc: EmfPlusRecordType = 45i32; +pub const EmfRecordTypeArcTo: EmfPlusRecordType = 55i32; +pub const EmfRecordTypeBeginPath: EmfPlusRecordType = 59i32; +pub const EmfRecordTypeBitBlt: EmfPlusRecordType = 76i32; +pub const EmfRecordTypeChord: EmfPlusRecordType = 46i32; +pub const EmfRecordTypeCloseFigure: EmfPlusRecordType = 61i32; +pub const EmfRecordTypeColorCorrectPalette: EmfPlusRecordType = 111i32; +pub const EmfRecordTypeColorMatchToTargetW: EmfPlusRecordType = 121i32; +pub const EmfRecordTypeCreateBrushIndirect: EmfPlusRecordType = 39i32; +pub const EmfRecordTypeCreateColorSpace: EmfPlusRecordType = 99i32; +pub const EmfRecordTypeCreateColorSpaceW: EmfPlusRecordType = 122i32; +pub const EmfRecordTypeCreateDIBPatternBrushPt: EmfPlusRecordType = 94i32; +pub const EmfRecordTypeCreateMonoBrush: EmfPlusRecordType = 93i32; +pub const EmfRecordTypeCreatePalette: EmfPlusRecordType = 49i32; +pub const EmfRecordTypeCreatePen: EmfPlusRecordType = 38i32; +pub const EmfRecordTypeDeleteColorSpace: EmfPlusRecordType = 101i32; +pub const EmfRecordTypeDeleteObject: EmfPlusRecordType = 40i32; +pub const EmfRecordTypeDrawEscape: EmfPlusRecordType = 105i32; +pub const EmfRecordTypeEOF: EmfPlusRecordType = 14i32; +pub const EmfRecordTypeEllipse: EmfPlusRecordType = 42i32; +pub const EmfRecordTypeEndPath: EmfPlusRecordType = 60i32; +pub const EmfRecordTypeExcludeClipRect: EmfPlusRecordType = 29i32; +pub const EmfRecordTypeExtCreateFontIndirect: EmfPlusRecordType = 82i32; +pub const EmfRecordTypeExtCreatePen: EmfPlusRecordType = 95i32; +pub const EmfRecordTypeExtEscape: EmfPlusRecordType = 106i32; +pub const EmfRecordTypeExtFloodFill: EmfPlusRecordType = 53i32; +pub const EmfRecordTypeExtSelectClipRgn: EmfPlusRecordType = 75i32; +pub const EmfRecordTypeExtTextOutA: EmfPlusRecordType = 83i32; +pub const EmfRecordTypeExtTextOutW: EmfPlusRecordType = 84i32; +pub const EmfRecordTypeFillPath: EmfPlusRecordType = 62i32; +pub const EmfRecordTypeFillRgn: EmfPlusRecordType = 71i32; +pub const EmfRecordTypeFlattenPath: EmfPlusRecordType = 65i32; +pub const EmfRecordTypeForceUFIMapping: EmfPlusRecordType = 109i32; +pub const EmfRecordTypeFrameRgn: EmfPlusRecordType = 72i32; +pub const EmfRecordTypeGLSBoundedRecord: EmfPlusRecordType = 103i32; +pub const EmfRecordTypeGLSRecord: EmfPlusRecordType = 102i32; +pub const EmfRecordTypeGdiComment: EmfPlusRecordType = 70i32; +pub const EmfRecordTypeGradientFill: EmfPlusRecordType = 118i32; +pub const EmfRecordTypeHeader: EmfPlusRecordType = 1i32; +pub const EmfRecordTypeIntersectClipRect: EmfPlusRecordType = 30i32; +pub const EmfRecordTypeInvertRgn: EmfPlusRecordType = 73i32; +pub const EmfRecordTypeLineTo: EmfPlusRecordType = 54i32; +pub const EmfRecordTypeMaskBlt: EmfPlusRecordType = 78i32; +pub const EmfRecordTypeMax: EmfPlusRecordType = 122i32; +pub const EmfRecordTypeMin: EmfPlusRecordType = 1i32; +pub const EmfRecordTypeModifyWorldTransform: EmfPlusRecordType = 36i32; +pub const EmfRecordTypeMoveToEx: EmfPlusRecordType = 27i32; +pub const EmfRecordTypeNamedEscape: EmfPlusRecordType = 110i32; +pub const EmfRecordTypeOffsetClipRgn: EmfPlusRecordType = 26i32; +pub const EmfRecordTypePaintRgn: EmfPlusRecordType = 74i32; +pub const EmfRecordTypePie: EmfPlusRecordType = 47i32; +pub const EmfRecordTypePixelFormat: EmfPlusRecordType = 104i32; +pub const EmfRecordTypePlgBlt: EmfPlusRecordType = 79i32; +pub const EmfRecordTypePolyBezier: EmfPlusRecordType = 2i32; +pub const EmfRecordTypePolyBezier16: EmfPlusRecordType = 85i32; +pub const EmfRecordTypePolyBezierTo: EmfPlusRecordType = 5i32; +pub const EmfRecordTypePolyBezierTo16: EmfPlusRecordType = 88i32; +pub const EmfRecordTypePolyDraw: EmfPlusRecordType = 56i32; +pub const EmfRecordTypePolyDraw16: EmfPlusRecordType = 92i32; +pub const EmfRecordTypePolyLineTo: EmfPlusRecordType = 6i32; +pub const EmfRecordTypePolyPolygon: EmfPlusRecordType = 8i32; +pub const EmfRecordTypePolyPolygon16: EmfPlusRecordType = 91i32; +pub const EmfRecordTypePolyPolyline: EmfPlusRecordType = 7i32; +pub const EmfRecordTypePolyPolyline16: EmfPlusRecordType = 90i32; +pub const EmfRecordTypePolyTextOutA: EmfPlusRecordType = 96i32; +pub const EmfRecordTypePolyTextOutW: EmfPlusRecordType = 97i32; +pub const EmfRecordTypePolygon: EmfPlusRecordType = 3i32; +pub const EmfRecordTypePolygon16: EmfPlusRecordType = 86i32; +pub const EmfRecordTypePolyline: EmfPlusRecordType = 4i32; +pub const EmfRecordTypePolyline16: EmfPlusRecordType = 87i32; +pub const EmfRecordTypePolylineTo16: EmfPlusRecordType = 89i32; +pub const EmfRecordTypeRealizePalette: EmfPlusRecordType = 52i32; +pub const EmfRecordTypeRectangle: EmfPlusRecordType = 43i32; +pub const EmfRecordTypeReserved_069: EmfPlusRecordType = 69i32; +pub const EmfRecordTypeReserved_117: EmfPlusRecordType = 117i32; +pub const EmfRecordTypeResizePalette: EmfPlusRecordType = 51i32; +pub const EmfRecordTypeRestoreDC: EmfPlusRecordType = 34i32; +pub const EmfRecordTypeRoundRect: EmfPlusRecordType = 44i32; +pub const EmfRecordTypeSaveDC: EmfPlusRecordType = 33i32; +pub const EmfRecordTypeScaleViewportExtEx: EmfPlusRecordType = 31i32; +pub const EmfRecordTypeScaleWindowExtEx: EmfPlusRecordType = 32i32; +pub const EmfRecordTypeSelectClipPath: EmfPlusRecordType = 67i32; +pub const EmfRecordTypeSelectObject: EmfPlusRecordType = 37i32; +pub const EmfRecordTypeSelectPalette: EmfPlusRecordType = 48i32; +pub const EmfRecordTypeSetArcDirection: EmfPlusRecordType = 57i32; +pub const EmfRecordTypeSetBkColor: EmfPlusRecordType = 25i32; +pub const EmfRecordTypeSetBkMode: EmfPlusRecordType = 18i32; +pub const EmfRecordTypeSetBrushOrgEx: EmfPlusRecordType = 13i32; +pub const EmfRecordTypeSetColorAdjustment: EmfPlusRecordType = 23i32; +pub const EmfRecordTypeSetColorSpace: EmfPlusRecordType = 100i32; +pub const EmfRecordTypeSetDIBitsToDevice: EmfPlusRecordType = 80i32; +pub const EmfRecordTypeSetICMMode: EmfPlusRecordType = 98i32; +pub const EmfRecordTypeSetICMProfileA: EmfPlusRecordType = 112i32; +pub const EmfRecordTypeSetICMProfileW: EmfPlusRecordType = 113i32; +pub const EmfRecordTypeSetLayout: EmfPlusRecordType = 115i32; +pub const EmfRecordTypeSetLinkedUFIs: EmfPlusRecordType = 119i32; +pub const EmfRecordTypeSetMapMode: EmfPlusRecordType = 17i32; +pub const EmfRecordTypeSetMapperFlags: EmfPlusRecordType = 16i32; +pub const EmfRecordTypeSetMetaRgn: EmfPlusRecordType = 28i32; +pub const EmfRecordTypeSetMiterLimit: EmfPlusRecordType = 58i32; +pub const EmfRecordTypeSetPaletteEntries: EmfPlusRecordType = 50i32; +pub const EmfRecordTypeSetPixelV: EmfPlusRecordType = 15i32; +pub const EmfRecordTypeSetPolyFillMode: EmfPlusRecordType = 19i32; +pub const EmfRecordTypeSetROP2: EmfPlusRecordType = 20i32; +pub const EmfRecordTypeSetStretchBltMode: EmfPlusRecordType = 21i32; +pub const EmfRecordTypeSetTextAlign: EmfPlusRecordType = 22i32; +pub const EmfRecordTypeSetTextColor: EmfPlusRecordType = 24i32; +pub const EmfRecordTypeSetTextJustification: EmfPlusRecordType = 120i32; +pub const EmfRecordTypeSetViewportExtEx: EmfPlusRecordType = 11i32; +pub const EmfRecordTypeSetViewportOrgEx: EmfPlusRecordType = 12i32; +pub const EmfRecordTypeSetWindowExtEx: EmfPlusRecordType = 9i32; +pub const EmfRecordTypeSetWindowOrgEx: EmfPlusRecordType = 10i32; +pub const EmfRecordTypeSetWorldTransform: EmfPlusRecordType = 35i32; +pub const EmfRecordTypeSmallTextOut: EmfPlusRecordType = 108i32; +pub const EmfRecordTypeStartDoc: EmfPlusRecordType = 107i32; +pub const EmfRecordTypeStretchBlt: EmfPlusRecordType = 77i32; +pub const EmfRecordTypeStretchDIBits: EmfPlusRecordType = 81i32; +pub const EmfRecordTypeStrokeAndFillPath: EmfPlusRecordType = 63i32; +pub const EmfRecordTypeStrokePath: EmfPlusRecordType = 64i32; +pub const EmfRecordTypeTransparentBlt: EmfPlusRecordType = 116i32; +pub const EmfRecordTypeWidenPath: EmfPlusRecordType = 66i32; +pub const EmfToWmfBitsFlagsDefault: EmfToWmfBitsFlags = 0i32; +pub const EmfToWmfBitsFlagsEmbedEmf: EmfToWmfBitsFlags = 1i32; +pub const EmfToWmfBitsFlagsIncludePlaceable: EmfToWmfBitsFlags = 2i32; +pub const EmfToWmfBitsFlagsNoXORClip: EmfToWmfBitsFlags = 4i32; +pub const EmfTypeEmfOnly: EmfType = 3i32; +pub const EmfTypeEmfPlusDual: EmfType = 5i32; +pub const EmfTypeEmfPlusOnly: EmfType = 4i32; +pub const EncoderChrominanceTable: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e455dc_09b3_4316_8260_676ada32481c); +pub const EncoderColorDepth: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66087055_ad66_4c7c_9a18_38a2310b8337); +pub const EncoderColorSpace: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae7a62a0_ee2c_49d8_9d07_1ba8a927596e); +pub const EncoderCompression: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe09d739d_ccd4_44ee_8eba_3fbf8be4fc58); +pub const EncoderImageItems: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x63875e13_1f1d_45ab_9195_a29b6066a650); +pub const EncoderLuminanceTable: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xedb33bce_0266_4a77_b904_27216099e717); +pub const EncoderParameterValueTypeASCII: EncoderParameterValueType = 2i32; +pub const EncoderParameterValueTypeByte: EncoderParameterValueType = 1i32; +pub const EncoderParameterValueTypeLong: EncoderParameterValueType = 4i32; +pub const EncoderParameterValueTypeLongRange: EncoderParameterValueType = 6i32; +pub const EncoderParameterValueTypePointer: EncoderParameterValueType = 9i32; +pub const EncoderParameterValueTypeRational: EncoderParameterValueType = 5i32; +pub const EncoderParameterValueTypeRationalRange: EncoderParameterValueType = 8i32; +pub const EncoderParameterValueTypeShort: EncoderParameterValueType = 3i32; +pub const EncoderParameterValueTypeUndefined: EncoderParameterValueType = 7i32; +pub const EncoderQuality: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1d5be4b5_fa4a_452d_9cdd_5db35105e7eb); +pub const EncoderRenderMethod: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6d42c53a_229a_4825_8bb7_5c99e2b9a8b8); +pub const EncoderSaveAsCMYK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa219bbc9_0a9d_4005_a3ee_3a421b8bb06c); +pub const EncoderSaveFlag: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x292266fc_ac40_47bf_8cfc_a85b89a655de); +pub const EncoderScanMethod: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3a4e2661_3109_4e56_8536_42c156e7dcfa); +pub const EncoderTransformation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8d0eb2d1_a58e_4ea8_aa14_108074b7b6f9); +pub const EncoderValueColorTypeCMYK: EncoderValue = 0i32; +pub const EncoderValueColorTypeGray: EncoderValue = 24i32; +pub const EncoderValueColorTypeRGB: EncoderValue = 25i32; +pub const EncoderValueColorTypeYCCK: EncoderValue = 1i32; +pub const EncoderValueCompressionCCITT3: EncoderValue = 3i32; +pub const EncoderValueCompressionCCITT4: EncoderValue = 4i32; +pub const EncoderValueCompressionLZW: EncoderValue = 2i32; +pub const EncoderValueCompressionNone: EncoderValue = 6i32; +pub const EncoderValueCompressionRle: EncoderValue = 5i32; +pub const EncoderValueFlush: EncoderValue = 20i32; +pub const EncoderValueFrameDimensionPage: EncoderValue = 23i32; +pub const EncoderValueFrameDimensionResolution: EncoderValue = 22i32; +pub const EncoderValueFrameDimensionTime: EncoderValue = 21i32; +pub const EncoderValueLastFrame: EncoderValue = 19i32; +pub const EncoderValueMultiFrame: EncoderValue = 18i32; +pub const EncoderValueRenderNonProgressive: EncoderValue = 12i32; +pub const EncoderValueRenderProgressive: EncoderValue = 11i32; +pub const EncoderValueScanMethodInterlaced: EncoderValue = 7i32; +pub const EncoderValueScanMethodNonInterlaced: EncoderValue = 8i32; +pub const EncoderValueTransformFlipHorizontal: EncoderValue = 16i32; +pub const EncoderValueTransformFlipVertical: EncoderValue = 17i32; +pub const EncoderValueTransformRotate180: EncoderValue = 14i32; +pub const EncoderValueTransformRotate270: EncoderValue = 15i32; +pub const EncoderValueTransformRotate90: EncoderValue = 13i32; +pub const EncoderValueVersionGif87: EncoderValue = 9i32; +pub const EncoderValueVersionGif89: EncoderValue = 10i32; +pub const EncoderVersion: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x24d18c76_814a_41a4_bf53_1c219cccf797); +pub const FileNotFound: Status = 10i32; +pub const FillModeAlternate: FillMode = 0i32; +pub const FillModeWinding: FillMode = 1i32; +pub const FlatnessDefault: f32 = 0.25f32; +pub const FlushIntentionFlush: FlushIntention = 0i32; +pub const FlushIntentionSync: FlushIntention = 1i32; +pub const FontFamilyNotFound: Status = 14i32; +pub const FontStyleBold: FontStyle = 1i32; +pub const FontStyleBoldItalic: FontStyle = 3i32; +pub const FontStyleItalic: FontStyle = 2i32; +pub const FontStyleNotFound: Status = 15i32; +pub const FontStyleRegular: FontStyle = 0i32; +pub const FontStyleStrikeout: FontStyle = 8i32; +pub const FontStyleUnderline: FontStyle = 4i32; +pub const FormatIDImageInformation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe5836cbe_5eef_4f1d_acde_ae4c43b608ce); +pub const FormatIDJpegAppHeaders: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1c4afdcd_6177_43cf_abc7_5f51af39ee85); +pub const FrameDimensionPage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7462dc86_6180_4c7e_8e3f_ee7333a7a483); +pub const FrameDimensionResolution: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x84236f7b_3bd3_428f_8dab_4ea1439ca315); +pub const FrameDimensionTime: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6aedbd6d_3fb5_418a_83a6_7f45229dc872); +pub const GDIP_EMFPLUSFLAGS_DISPLAY: u32 = 1u32; +pub const GDIP_EMFPLUS_RECORD_BASE: u32 = 16384u32; +pub const GDIP_WMF_RECORD_BASE: u32 = 65536u32; +pub const GREEN_SHIFT: u32 = 8u32; +pub const GdiplusNotInitialized: Status = 18i32; +pub const GdiplusStartupDefault: GdiplusStartupParams = 0i32; +pub const GdiplusStartupNoSetRound: GdiplusStartupParams = 1i32; +pub const GdiplusStartupSetPSValue: GdiplusStartupParams = 2i32; +pub const GdiplusStartupTransparencyMask: GdiplusStartupParams = -16777216i32; +pub const GenericError: Status = 1i32; +pub const GenericFontFamilyMonospace: GenericFontFamily = 2i32; +pub const GenericFontFamilySansSerif: GenericFontFamily = 1i32; +pub const GenericFontFamilySerif: GenericFontFamily = 0i32; +pub const HatchStyle05Percent: HatchStyle = 6i32; +pub const HatchStyle10Percent: HatchStyle = 7i32; +pub const HatchStyle20Percent: HatchStyle = 8i32; +pub const HatchStyle25Percent: HatchStyle = 9i32; +pub const HatchStyle30Percent: HatchStyle = 10i32; +pub const HatchStyle40Percent: HatchStyle = 11i32; +pub const HatchStyle50Percent: HatchStyle = 12i32; +pub const HatchStyle60Percent: HatchStyle = 13i32; +pub const HatchStyle70Percent: HatchStyle = 14i32; +pub const HatchStyle75Percent: HatchStyle = 15i32; +pub const HatchStyle80Percent: HatchStyle = 16i32; +pub const HatchStyle90Percent: HatchStyle = 17i32; +pub const HatchStyleBackwardDiagonal: HatchStyle = 3i32; +pub const HatchStyleCross: HatchStyle = 4i32; +pub const HatchStyleDarkDownwardDiagonal: HatchStyle = 20i32; +pub const HatchStyleDarkHorizontal: HatchStyle = 29i32; +pub const HatchStyleDarkUpwardDiagonal: HatchStyle = 21i32; +pub const HatchStyleDarkVertical: HatchStyle = 28i32; +pub const HatchStyleDashedDownwardDiagonal: HatchStyle = 30i32; +pub const HatchStyleDashedHorizontal: HatchStyle = 32i32; +pub const HatchStyleDashedUpwardDiagonal: HatchStyle = 31i32; +pub const HatchStyleDashedVertical: HatchStyle = 33i32; +pub const HatchStyleDiagonalBrick: HatchStyle = 38i32; +pub const HatchStyleDiagonalCross: HatchStyle = 5i32; +pub const HatchStyleDivot: HatchStyle = 42i32; +pub const HatchStyleDottedDiamond: HatchStyle = 44i32; +pub const HatchStyleDottedGrid: HatchStyle = 43i32; +pub const HatchStyleForwardDiagonal: HatchStyle = 2i32; +pub const HatchStyleHorizontal: HatchStyle = 0i32; +pub const HatchStyleHorizontalBrick: HatchStyle = 39i32; +pub const HatchStyleLargeCheckerBoard: HatchStyle = 50i32; +pub const HatchStyleLargeConfetti: HatchStyle = 35i32; +pub const HatchStyleLargeGrid: HatchStyle = 4i32; +pub const HatchStyleLightDownwardDiagonal: HatchStyle = 18i32; +pub const HatchStyleLightHorizontal: HatchStyle = 25i32; +pub const HatchStyleLightUpwardDiagonal: HatchStyle = 19i32; +pub const HatchStyleLightVertical: HatchStyle = 24i32; +pub const HatchStyleMax: HatchStyle = 52i32; +pub const HatchStyleMin: HatchStyle = 0i32; +pub const HatchStyleNarrowHorizontal: HatchStyle = 27i32; +pub const HatchStyleNarrowVertical: HatchStyle = 26i32; +pub const HatchStyleOutlinedDiamond: HatchStyle = 51i32; +pub const HatchStylePlaid: HatchStyle = 41i32; +pub const HatchStyleShingle: HatchStyle = 45i32; +pub const HatchStyleSmallCheckerBoard: HatchStyle = 49i32; +pub const HatchStyleSmallConfetti: HatchStyle = 34i32; +pub const HatchStyleSmallGrid: HatchStyle = 48i32; +pub const HatchStyleSolidDiamond: HatchStyle = 52i32; +pub const HatchStyleSphere: HatchStyle = 47i32; +pub const HatchStyleTotal: HatchStyle = 53i32; +pub const HatchStyleTrellis: HatchStyle = 46i32; +pub const HatchStyleVertical: HatchStyle = 1i32; +pub const HatchStyleWave: HatchStyle = 37i32; +pub const HatchStyleWeave: HatchStyle = 40i32; +pub const HatchStyleWideDownwardDiagonal: HatchStyle = 22i32; +pub const HatchStyleWideUpwardDiagonal: HatchStyle = 23i32; +pub const HatchStyleZigZag: HatchStyle = 36i32; +pub const HistogramFormatA: HistogramFormat = 7i32; +pub const HistogramFormatARGB: HistogramFormat = 0i32; +pub const HistogramFormatB: HistogramFormat = 4i32; +pub const HistogramFormatG: HistogramFormat = 5i32; +pub const HistogramFormatGray: HistogramFormat = 3i32; +pub const HistogramFormatPARGB: HistogramFormat = 1i32; +pub const HistogramFormatR: HistogramFormat = 6i32; +pub const HistogramFormatRGB: HistogramFormat = 2i32; +pub const HotkeyPrefixHide: HotkeyPrefix = 2i32; +pub const HotkeyPrefixNone: HotkeyPrefix = 0i32; +pub const HotkeyPrefixShow: HotkeyPrefix = 1i32; +pub const HueSaturationLightnessEffectGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8b2dd6c3_eb07_4d87_a5f0_7108e26a9c5f); +pub const ImageCodecFlagsBlockingDecode: ImageCodecFlags = 32i32; +pub const ImageCodecFlagsBuiltin: ImageCodecFlags = 65536i32; +pub const ImageCodecFlagsDecoder: ImageCodecFlags = 2i32; +pub const ImageCodecFlagsEncoder: ImageCodecFlags = 1i32; +pub const ImageCodecFlagsSeekableEncode: ImageCodecFlags = 16i32; +pub const ImageCodecFlagsSupportBitmap: ImageCodecFlags = 4i32; +pub const ImageCodecFlagsSupportVector: ImageCodecFlags = 8i32; +pub const ImageCodecFlagsSystem: ImageCodecFlags = 131072i32; +pub const ImageCodecFlagsUser: ImageCodecFlags = 262144i32; +pub const ImageFlagsCaching: ImageFlags = 131072i32; +pub const ImageFlagsColorSpaceCMYK: ImageFlags = 32i32; +pub const ImageFlagsColorSpaceGRAY: ImageFlags = 64i32; +pub const ImageFlagsColorSpaceRGB: ImageFlags = 16i32; +pub const ImageFlagsColorSpaceYCBCR: ImageFlags = 128i32; +pub const ImageFlagsColorSpaceYCCK: ImageFlags = 256i32; +pub const ImageFlagsHasAlpha: ImageFlags = 2i32; +pub const ImageFlagsHasRealDPI: ImageFlags = 4096i32; +pub const ImageFlagsHasRealPixelSize: ImageFlags = 8192i32; +pub const ImageFlagsHasTranslucent: ImageFlags = 4i32; +pub const ImageFlagsNone: ImageFlags = 0i32; +pub const ImageFlagsPartiallyScalable: ImageFlags = 8i32; +pub const ImageFlagsReadOnly: ImageFlags = 65536i32; +pub const ImageFlagsScalable: ImageFlags = 1i32; +pub const ImageFormatBMP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96b3cab_0728_11d3_9d7b_0000f81ef32e); +pub const ImageFormatEMF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96b3cac_0728_11d3_9d7b_0000f81ef32e); +pub const ImageFormatEXIF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96b3cb2_0728_11d3_9d7b_0000f81ef32e); +pub const ImageFormatGIF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96b3cb0_0728_11d3_9d7b_0000f81ef32e); +pub const ImageFormatHEIF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96b3cb6_0728_11d3_9d7b_0000f81ef32e); +pub const ImageFormatIcon: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96b3cb5_0728_11d3_9d7b_0000f81ef32e); +pub const ImageFormatJPEG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96b3cae_0728_11d3_9d7b_0000f81ef32e); +pub const ImageFormatMemoryBMP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96b3caa_0728_11d3_9d7b_0000f81ef32e); +pub const ImageFormatPNG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96b3caf_0728_11d3_9d7b_0000f81ef32e); +pub const ImageFormatTIFF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96b3cb1_0728_11d3_9d7b_0000f81ef32e); +pub const ImageFormatUndefined: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96b3ca9_0728_11d3_9d7b_0000f81ef32e); +pub const ImageFormatWEBP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96b3cb7_0728_11d3_9d7b_0000f81ef32e); +pub const ImageFormatWMF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96b3cad_0728_11d3_9d7b_0000f81ef32e); +pub const ImageLockModeRead: ImageLockMode = 1i32; +pub const ImageLockModeUserInputBuf: ImageLockMode = 4i32; +pub const ImageLockModeWrite: ImageLockMode = 2i32; +pub const ImageTypeBitmap: ImageType = 1i32; +pub const ImageTypeMetafile: ImageType = 2i32; +pub const ImageTypeUnknown: ImageType = 0i32; +pub const InsufficientBuffer: Status = 5i32; +pub const InterpolationModeBicubic: InterpolationMode = 4i32; +pub const InterpolationModeBilinear: InterpolationMode = 3i32; +pub const InterpolationModeDefault: InterpolationMode = 0i32; +pub const InterpolationModeHighQuality: InterpolationMode = 2i32; +pub const InterpolationModeHighQualityBicubic: InterpolationMode = 7i32; +pub const InterpolationModeHighQualityBilinear: InterpolationMode = 6i32; +pub const InterpolationModeInvalid: InterpolationMode = -1i32; +pub const InterpolationModeLowQuality: InterpolationMode = 1i32; +pub const InterpolationModeNearestNeighbor: InterpolationMode = 5i32; +pub const InvalidParameter: Status = 2i32; +pub const ItemDataPositionAfterBits: ItemDataPosition = 2i32; +pub const ItemDataPositionAfterHeader: ItemDataPosition = 0i32; +pub const ItemDataPositionAfterPalette: ItemDataPosition = 1i32; +pub const LevelsEffectGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x99c354ec_2a31_4f3a_8c34_17a803b33a25); +pub const LineCapAnchorMask: LineCap = 240i32; +pub const LineCapArrowAnchor: LineCap = 20i32; +pub const LineCapCustom: LineCap = 255i32; +pub const LineCapDiamondAnchor: LineCap = 19i32; +pub const LineCapFlat: LineCap = 0i32; +pub const LineCapNoAnchor: LineCap = 16i32; +pub const LineCapRound: LineCap = 2i32; +pub const LineCapRoundAnchor: LineCap = 18i32; +pub const LineCapSquare: LineCap = 1i32; +pub const LineCapSquareAnchor: LineCap = 17i32; +pub const LineCapTriangle: LineCap = 3i32; +pub const LineJoinBevel: LineJoin = 1i32; +pub const LineJoinMiter: LineJoin = 0i32; +pub const LineJoinMiterClipped: LineJoin = 3i32; +pub const LineJoinRound: LineJoin = 2i32; +pub const LinearGradientModeBackwardDiagonal: LinearGradientMode = 3i32; +pub const LinearGradientModeForwardDiagonal: LinearGradientMode = 2i32; +pub const LinearGradientModeHorizontal: LinearGradientMode = 0i32; +pub const LinearGradientModeVertical: LinearGradientMode = 1i32; +pub const MatrixOrderAppend: MatrixOrder = 1i32; +pub const MatrixOrderPrepend: MatrixOrder = 0i32; +pub const MetafileFrameUnitDocument: MetafileFrameUnit = 5i32; +pub const MetafileFrameUnitGdi: MetafileFrameUnit = 7i32; +pub const MetafileFrameUnitInch: MetafileFrameUnit = 4i32; +pub const MetafileFrameUnitMillimeter: MetafileFrameUnit = 6i32; +pub const MetafileFrameUnitPixel: MetafileFrameUnit = 2i32; +pub const MetafileFrameUnitPoint: MetafileFrameUnit = 3i32; +pub const MetafileTypeEmf: MetafileType = 3i32; +pub const MetafileTypeEmfPlusDual: MetafileType = 5i32; +pub const MetafileTypeEmfPlusOnly: MetafileType = 4i32; +pub const MetafileTypeInvalid: MetafileType = 0i32; +pub const MetafileTypeWmf: MetafileType = 1i32; +pub const MetafileTypeWmfPlaceable: MetafileType = 2i32; +pub const NotImplemented: Status = 6i32; +pub const NotTrueTypeFont: Status = 16i32; +pub const ObjectBusy: Status = 4i32; +pub const ObjectTypeBrush: ObjectType = 1i32; +pub const ObjectTypeCustomLineCap: ObjectType = 9i32; +pub const ObjectTypeFont: ObjectType = 6i32; +pub const ObjectTypeGraphics: ObjectType = 10i32; +pub const ObjectTypeImage: ObjectType = 5i32; +pub const ObjectTypeImageAttributes: ObjectType = 8i32; +pub const ObjectTypeInvalid: ObjectType = 0i32; +pub const ObjectTypeMax: ObjectType = 10i32; +pub const ObjectTypeMin: ObjectType = 1i32; +pub const ObjectTypePath: ObjectType = 3i32; +pub const ObjectTypePen: ObjectType = 2i32; +pub const ObjectTypeRegion: ObjectType = 4i32; +pub const ObjectTypeStringFormat: ObjectType = 7i32; +pub const Ok: Status = 0i32; +pub const OutOfMemory: Status = 3i32; +pub const PaletteFlagsGrayScale: PaletteFlags = 2i32; +pub const PaletteFlagsHalftone: PaletteFlags = 4i32; +pub const PaletteFlagsHasAlpha: PaletteFlags = 1i32; +pub const PaletteTypeCustom: PaletteType = 0i32; +pub const PaletteTypeFixedBW: PaletteType = 2i32; +pub const PaletteTypeFixedHalftone125: PaletteType = 6i32; +pub const PaletteTypeFixedHalftone216: PaletteType = 7i32; +pub const PaletteTypeFixedHalftone252: PaletteType = 8i32; +pub const PaletteTypeFixedHalftone256: PaletteType = 9i32; +pub const PaletteTypeFixedHalftone27: PaletteType = 4i32; +pub const PaletteTypeFixedHalftone64: PaletteType = 5i32; +pub const PaletteTypeFixedHalftone8: PaletteType = 3i32; +pub const PaletteTypeOptimal: PaletteType = 1i32; +pub const PathPointTypeBezier: PathPointType = 3i32; +pub const PathPointTypeBezier3: PathPointType = 3i32; +pub const PathPointTypeCloseSubpath: PathPointType = 128i32; +pub const PathPointTypeDashMode: PathPointType = 16i32; +pub const PathPointTypeLine: PathPointType = 1i32; +pub const PathPointTypePathMarker: PathPointType = 32i32; +pub const PathPointTypePathTypeMask: PathPointType = 7i32; +pub const PathPointTypeStart: PathPointType = 0i32; +pub const PenAlignmentCenter: PenAlignment = 0i32; +pub const PenAlignmentInset: PenAlignment = 1i32; +pub const PenTypeHatchFill: PenType = 1i32; +pub const PenTypeLinearGradient: PenType = 4i32; +pub const PenTypePathGradient: PenType = 3i32; +pub const PenTypeSolidColor: PenType = 0i32; +pub const PenTypeTextureFill: PenType = 2i32; +pub const PenTypeUnknown: PenType = -1i32; +pub const PixelFormatAlpha: u32 = 262144u32; +pub const PixelFormatCanonical: u32 = 2097152u32; +pub const PixelFormatDontCare: u32 = 0u32; +pub const PixelFormatExtended: u32 = 1048576u32; +pub const PixelFormatGDI: u32 = 131072u32; +pub const PixelFormatIndexed: u32 = 65536u32; +pub const PixelFormatMax: u32 = 16u32; +pub const PixelFormatPAlpha: u32 = 524288u32; +pub const PixelFormatUndefined: u32 = 0u32; +pub const PixelOffsetModeDefault: PixelOffsetMode = 0i32; +pub const PixelOffsetModeHalf: PixelOffsetMode = 4i32; +pub const PixelOffsetModeHighQuality: PixelOffsetMode = 2i32; +pub const PixelOffsetModeHighSpeed: PixelOffsetMode = 1i32; +pub const PixelOffsetModeInvalid: PixelOffsetMode = -1i32; +pub const PixelOffsetModeNone: PixelOffsetMode = 3i32; +pub const ProfileNotFound: Status = 21i32; +pub const PropertyNotFound: Status = 19i32; +pub const PropertyNotSupported: Status = 20i32; +pub const PropertyTagArtist: u32 = 315u32; +pub const PropertyTagBitsPerSample: u32 = 258u32; +pub const PropertyTagCellHeight: u32 = 265u32; +pub const PropertyTagCellWidth: u32 = 264u32; +pub const PropertyTagChrominanceTable: u32 = 20625u32; +pub const PropertyTagColorMap: u32 = 320u32; +pub const PropertyTagColorTransferFunction: u32 = 20506u32; +pub const PropertyTagCompression: u32 = 259u32; +pub const PropertyTagCopyright: u32 = 33432u32; +pub const PropertyTagDateTime: u32 = 306u32; +pub const PropertyTagDocumentName: u32 = 269u32; +pub const PropertyTagDotRange: u32 = 336u32; +pub const PropertyTagEquipMake: u32 = 271u32; +pub const PropertyTagEquipModel: u32 = 272u32; +pub const PropertyTagExifAperture: u32 = 37378u32; +pub const PropertyTagExifBrightness: u32 = 37379u32; +pub const PropertyTagExifCfaPattern: u32 = 41730u32; +pub const PropertyTagExifColorSpace: u32 = 40961u32; +pub const PropertyTagExifCompBPP: u32 = 37122u32; +pub const PropertyTagExifCompConfig: u32 = 37121u32; +pub const PropertyTagExifContrast: u32 = 41992u32; +pub const PropertyTagExifCustomRendered: u32 = 41985u32; +pub const PropertyTagExifDTDigSS: u32 = 37522u32; +pub const PropertyTagExifDTDigitized: u32 = 36868u32; +pub const PropertyTagExifDTOrig: u32 = 36867u32; +pub const PropertyTagExifDTOrigSS: u32 = 37521u32; +pub const PropertyTagExifDTSubsec: u32 = 37520u32; +pub const PropertyTagExifDeviceSettingDesc: u32 = 41995u32; +pub const PropertyTagExifDigitalZoomRatio: u32 = 41988u32; +pub const PropertyTagExifExposureBias: u32 = 37380u32; +pub const PropertyTagExifExposureIndex: u32 = 41493u32; +pub const PropertyTagExifExposureMode: u32 = 41986u32; +pub const PropertyTagExifExposureProg: u32 = 34850u32; +pub const PropertyTagExifExposureTime: u32 = 33434u32; +pub const PropertyTagExifFNumber: u32 = 33437u32; +pub const PropertyTagExifFPXVer: u32 = 40960u32; +pub const PropertyTagExifFileSource: u32 = 41728u32; +pub const PropertyTagExifFlash: u32 = 37385u32; +pub const PropertyTagExifFlashEnergy: u32 = 41483u32; +pub const PropertyTagExifFocalLength: u32 = 37386u32; +pub const PropertyTagExifFocalLengthIn35mmFilm: u32 = 41989u32; +pub const PropertyTagExifFocalResUnit: u32 = 41488u32; +pub const PropertyTagExifFocalXRes: u32 = 41486u32; +pub const PropertyTagExifFocalYRes: u32 = 41487u32; +pub const PropertyTagExifGainControl: u32 = 41991u32; +pub const PropertyTagExifIFD: u32 = 34665u32; +pub const PropertyTagExifISOSpeed: u32 = 34855u32; +pub const PropertyTagExifInterop: u32 = 40965u32; +pub const PropertyTagExifLightSource: u32 = 37384u32; +pub const PropertyTagExifMakerNote: u32 = 37500u32; +pub const PropertyTagExifMaxAperture: u32 = 37381u32; +pub const PropertyTagExifMeteringMode: u32 = 37383u32; +pub const PropertyTagExifOECF: u32 = 34856u32; +pub const PropertyTagExifPixXDim: u32 = 40962u32; +pub const PropertyTagExifPixYDim: u32 = 40963u32; +pub const PropertyTagExifRelatedWav: u32 = 40964u32; +pub const PropertyTagExifSaturation: u32 = 41993u32; +pub const PropertyTagExifSceneCaptureType: u32 = 41990u32; +pub const PropertyTagExifSceneType: u32 = 41729u32; +pub const PropertyTagExifSensingMethod: u32 = 41495u32; +pub const PropertyTagExifSharpness: u32 = 41994u32; +pub const PropertyTagExifShutterSpeed: u32 = 37377u32; +pub const PropertyTagExifSpatialFR: u32 = 41484u32; +pub const PropertyTagExifSpectralSense: u32 = 34852u32; +pub const PropertyTagExifSubjectArea: u32 = 37396u32; +pub const PropertyTagExifSubjectDist: u32 = 37382u32; +pub const PropertyTagExifSubjectDistanceRange: u32 = 41996u32; +pub const PropertyTagExifSubjectLoc: u32 = 41492u32; +pub const PropertyTagExifUniqueImageID: u32 = 42016u32; +pub const PropertyTagExifUserComment: u32 = 37510u32; +pub const PropertyTagExifVer: u32 = 36864u32; +pub const PropertyTagExifWhiteBalance: u32 = 41987u32; +pub const PropertyTagExtraSamples: u32 = 338u32; +pub const PropertyTagFillOrder: u32 = 266u32; +pub const PropertyTagFrameDelay: u32 = 20736u32; +pub const PropertyTagFreeByteCounts: u32 = 289u32; +pub const PropertyTagFreeOffset: u32 = 288u32; +pub const PropertyTagGamma: u32 = 769u32; +pub const PropertyTagGlobalPalette: u32 = 20738u32; +pub const PropertyTagGpsAltitude: u32 = 6u32; +pub const PropertyTagGpsAltitudeRef: u32 = 5u32; +pub const PropertyTagGpsAreaInformation: u32 = 28u32; +pub const PropertyTagGpsDate: u32 = 29u32; +pub const PropertyTagGpsDestBear: u32 = 24u32; +pub const PropertyTagGpsDestBearRef: u32 = 23u32; +pub const PropertyTagGpsDestDist: u32 = 26u32; +pub const PropertyTagGpsDestDistRef: u32 = 25u32; +pub const PropertyTagGpsDestLat: u32 = 20u32; +pub const PropertyTagGpsDestLatRef: u32 = 19u32; +pub const PropertyTagGpsDestLong: u32 = 22u32; +pub const PropertyTagGpsDestLongRef: u32 = 21u32; +pub const PropertyTagGpsDifferential: u32 = 30u32; +pub const PropertyTagGpsGpsDop: u32 = 11u32; +pub const PropertyTagGpsGpsMeasureMode: u32 = 10u32; +pub const PropertyTagGpsGpsSatellites: u32 = 8u32; +pub const PropertyTagGpsGpsStatus: u32 = 9u32; +pub const PropertyTagGpsGpsTime: u32 = 7u32; +pub const PropertyTagGpsIFD: u32 = 34853u32; +pub const PropertyTagGpsImgDir: u32 = 17u32; +pub const PropertyTagGpsImgDirRef: u32 = 16u32; +pub const PropertyTagGpsLatitude: u32 = 2u32; +pub const PropertyTagGpsLatitudeRef: u32 = 1u32; +pub const PropertyTagGpsLongitude: u32 = 4u32; +pub const PropertyTagGpsLongitudeRef: u32 = 3u32; +pub const PropertyTagGpsMapDatum: u32 = 18u32; +pub const PropertyTagGpsProcessingMethod: u32 = 27u32; +pub const PropertyTagGpsSpeed: u32 = 13u32; +pub const PropertyTagGpsSpeedRef: u32 = 12u32; +pub const PropertyTagGpsTrack: u32 = 15u32; +pub const PropertyTagGpsTrackRef: u32 = 14u32; +pub const PropertyTagGpsVer: u32 = 0u32; +pub const PropertyTagGrayResponseCurve: u32 = 291u32; +pub const PropertyTagGrayResponseUnit: u32 = 290u32; +pub const PropertyTagGridSize: u32 = 20497u32; +pub const PropertyTagHalftoneDegree: u32 = 20492u32; +pub const PropertyTagHalftoneHints: u32 = 321u32; +pub const PropertyTagHalftoneLPI: u32 = 20490u32; +pub const PropertyTagHalftoneLPIUnit: u32 = 20491u32; +pub const PropertyTagHalftoneMisc: u32 = 20494u32; +pub const PropertyTagHalftoneScreen: u32 = 20495u32; +pub const PropertyTagHalftoneShape: u32 = 20493u32; +pub const PropertyTagHostComputer: u32 = 316u32; +pub const PropertyTagICCProfile: u32 = 34675u32; +pub const PropertyTagICCProfileDescriptor: u32 = 770u32; +pub const PropertyTagImageDescription: u32 = 270u32; +pub const PropertyTagImageHeight: u32 = 257u32; +pub const PropertyTagImageTitle: u32 = 800u32; +pub const PropertyTagImageWidth: u32 = 256u32; +pub const PropertyTagIndexBackground: u32 = 20739u32; +pub const PropertyTagIndexTransparent: u32 = 20740u32; +pub const PropertyTagInkNames: u32 = 333u32; +pub const PropertyTagInkSet: u32 = 332u32; +pub const PropertyTagJPEGACTables: u32 = 521u32; +pub const PropertyTagJPEGDCTables: u32 = 520u32; +pub const PropertyTagJPEGInterFormat: u32 = 513u32; +pub const PropertyTagJPEGInterLength: u32 = 514u32; +pub const PropertyTagJPEGLosslessPredictors: u32 = 517u32; +pub const PropertyTagJPEGPointTransforms: u32 = 518u32; +pub const PropertyTagJPEGProc: u32 = 512u32; +pub const PropertyTagJPEGQTables: u32 = 519u32; +pub const PropertyTagJPEGQuality: u32 = 20496u32; +pub const PropertyTagJPEGRestartInterval: u32 = 515u32; +pub const PropertyTagLoopCount: u32 = 20737u32; +pub const PropertyTagLuminanceTable: u32 = 20624u32; +pub const PropertyTagMaxSampleValue: u32 = 281u32; +pub const PropertyTagMinSampleValue: u32 = 280u32; +pub const PropertyTagNewSubfileType: u32 = 254u32; +pub const PropertyTagNumberOfInks: u32 = 334u32; +pub const PropertyTagOrientation: u32 = 274u32; +pub const PropertyTagPageName: u32 = 285u32; +pub const PropertyTagPageNumber: u32 = 297u32; +pub const PropertyTagPaletteHistogram: u32 = 20755u32; +pub const PropertyTagPhotometricInterp: u32 = 262u32; +pub const PropertyTagPixelPerUnitX: u32 = 20753u32; +pub const PropertyTagPixelPerUnitY: u32 = 20754u32; +pub const PropertyTagPixelUnit: u32 = 20752u32; +pub const PropertyTagPlanarConfig: u32 = 284u32; +pub const PropertyTagPredictor: u32 = 317u32; +pub const PropertyTagPrimaryChromaticities: u32 = 319u32; +pub const PropertyTagPrintFlags: u32 = 20485u32; +pub const PropertyTagPrintFlagsBleedWidth: u32 = 20488u32; +pub const PropertyTagPrintFlagsBleedWidthScale: u32 = 20489u32; +pub const PropertyTagPrintFlagsCrop: u32 = 20487u32; +pub const PropertyTagPrintFlagsVersion: u32 = 20486u32; +pub const PropertyTagREFBlackWhite: u32 = 532u32; +pub const PropertyTagResolutionUnit: u32 = 296u32; +pub const PropertyTagResolutionXLengthUnit: u32 = 20483u32; +pub const PropertyTagResolutionXUnit: u32 = 20481u32; +pub const PropertyTagResolutionYLengthUnit: u32 = 20484u32; +pub const PropertyTagResolutionYUnit: u32 = 20482u32; +pub const PropertyTagRowsPerStrip: u32 = 278u32; +pub const PropertyTagSMaxSampleValue: u32 = 341u32; +pub const PropertyTagSMinSampleValue: u32 = 340u32; +pub const PropertyTagSRGBRenderingIntent: u32 = 771u32; +pub const PropertyTagSampleFormat: u32 = 339u32; +pub const PropertyTagSamplesPerPixel: u32 = 277u32; +pub const PropertyTagSoftwareUsed: u32 = 305u32; +pub const PropertyTagStripBytesCount: u32 = 279u32; +pub const PropertyTagStripOffsets: u32 = 273u32; +pub const PropertyTagSubfileType: u32 = 255u32; +pub const PropertyTagT4Option: u32 = 292u32; +pub const PropertyTagT6Option: u32 = 293u32; +pub const PropertyTagTargetPrinter: u32 = 337u32; +pub const PropertyTagThreshHolding: u32 = 263u32; +pub const PropertyTagThumbnailArtist: u32 = 20532u32; +pub const PropertyTagThumbnailBitsPerSample: u32 = 20514u32; +pub const PropertyTagThumbnailColorDepth: u32 = 20501u32; +pub const PropertyTagThumbnailCompressedSize: u32 = 20505u32; +pub const PropertyTagThumbnailCompression: u32 = 20515u32; +pub const PropertyTagThumbnailCopyRight: u32 = 20539u32; +pub const PropertyTagThumbnailData: u32 = 20507u32; +pub const PropertyTagThumbnailDateTime: u32 = 20531u32; +pub const PropertyTagThumbnailEquipMake: u32 = 20518u32; +pub const PropertyTagThumbnailEquipModel: u32 = 20519u32; +pub const PropertyTagThumbnailFormat: u32 = 20498u32; +pub const PropertyTagThumbnailHeight: u32 = 20500u32; +pub const PropertyTagThumbnailImageDescription: u32 = 20517u32; +pub const PropertyTagThumbnailImageHeight: u32 = 20513u32; +pub const PropertyTagThumbnailImageWidth: u32 = 20512u32; +pub const PropertyTagThumbnailOrientation: u32 = 20521u32; +pub const PropertyTagThumbnailPhotometricInterp: u32 = 20516u32; +pub const PropertyTagThumbnailPlanarConfig: u32 = 20527u32; +pub const PropertyTagThumbnailPlanes: u32 = 20502u32; +pub const PropertyTagThumbnailPrimaryChromaticities: u32 = 20534u32; +pub const PropertyTagThumbnailRawBytes: u32 = 20503u32; +pub const PropertyTagThumbnailRefBlackWhite: u32 = 20538u32; +pub const PropertyTagThumbnailResolutionUnit: u32 = 20528u32; +pub const PropertyTagThumbnailResolutionX: u32 = 20525u32; +pub const PropertyTagThumbnailResolutionY: u32 = 20526u32; +pub const PropertyTagThumbnailRowsPerStrip: u32 = 20523u32; +pub const PropertyTagThumbnailSamplesPerPixel: u32 = 20522u32; +pub const PropertyTagThumbnailSize: u32 = 20504u32; +pub const PropertyTagThumbnailSoftwareUsed: u32 = 20530u32; +pub const PropertyTagThumbnailStripBytesCount: u32 = 20524u32; +pub const PropertyTagThumbnailStripOffsets: u32 = 20520u32; +pub const PropertyTagThumbnailTransferFunction: u32 = 20529u32; +pub const PropertyTagThumbnailWhitePoint: u32 = 20533u32; +pub const PropertyTagThumbnailWidth: u32 = 20499u32; +pub const PropertyTagThumbnailYCbCrCoefficients: u32 = 20535u32; +pub const PropertyTagThumbnailYCbCrPositioning: u32 = 20537u32; +pub const PropertyTagThumbnailYCbCrSubsampling: u32 = 20536u32; +pub const PropertyTagTileByteCounts: u32 = 325u32; +pub const PropertyTagTileLength: u32 = 323u32; +pub const PropertyTagTileOffset: u32 = 324u32; +pub const PropertyTagTileWidth: u32 = 322u32; +pub const PropertyTagTransferFuncition: u32 = 301u32; +pub const PropertyTagTransferRange: u32 = 342u32; +pub const PropertyTagTypeASCII: u32 = 2u32; +pub const PropertyTagTypeByte: u32 = 1u32; +pub const PropertyTagTypeLong: u32 = 4u32; +pub const PropertyTagTypeRational: u32 = 5u32; +pub const PropertyTagTypeSLONG: u32 = 9u32; +pub const PropertyTagTypeSRational: u32 = 10u32; +pub const PropertyTagTypeShort: u32 = 3u32; +pub const PropertyTagTypeUndefined: u32 = 7u32; +pub const PropertyTagWhitePoint: u32 = 318u32; +pub const PropertyTagXPosition: u32 = 286u32; +pub const PropertyTagXResolution: u32 = 282u32; +pub const PropertyTagYCbCrCoefficients: u32 = 529u32; +pub const PropertyTagYCbCrPositioning: u32 = 531u32; +pub const PropertyTagYCbCrSubsampling: u32 = 530u32; +pub const PropertyTagYPosition: u32 = 287u32; +pub const PropertyTagYResolution: u32 = 283u32; +pub const QualityModeDefault: QualityMode = 0i32; +pub const QualityModeHigh: QualityMode = 2i32; +pub const QualityModeInvalid: QualityMode = -1i32; +pub const QualityModeLow: QualityMode = 1i32; +pub const RED_SHIFT: u32 = 16u32; +pub const RedEyeCorrectionEffectGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x74d29d05_69a4_4266_9549_3cc52836b632); +pub const Rotate180FlipNone: RotateFlipType = 2i32; +pub const Rotate180FlipX: RotateFlipType = 6i32; +pub const Rotate180FlipXY: RotateFlipType = 0i32; +pub const Rotate180FlipY: RotateFlipType = 4i32; +pub const Rotate270FlipNone: RotateFlipType = 3i32; +pub const Rotate270FlipX: RotateFlipType = 7i32; +pub const Rotate270FlipXY: RotateFlipType = 1i32; +pub const Rotate270FlipY: RotateFlipType = 5i32; +pub const Rotate90FlipNone: RotateFlipType = 1i32; +pub const Rotate90FlipX: RotateFlipType = 5i32; +pub const Rotate90FlipXY: RotateFlipType = 3i32; +pub const Rotate90FlipY: RotateFlipType = 7i32; +pub const RotateNoneFlipNone: RotateFlipType = 0i32; +pub const RotateNoneFlipX: RotateFlipType = 4i32; +pub const RotateNoneFlipXY: RotateFlipType = 2i32; +pub const RotateNoneFlipY: RotateFlipType = 6i32; +pub const SharpenEffectGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x63cbf3ee_c526_402c_8f71_62c540bf5142); +pub const SmoothingModeAntiAlias: SmoothingMode = 4i32; +pub const SmoothingModeAntiAlias8x4: SmoothingMode = 4i32; +pub const SmoothingModeAntiAlias8x8: SmoothingMode = 5i32; +pub const SmoothingModeDefault: SmoothingMode = 0i32; +pub const SmoothingModeHighQuality: SmoothingMode = 2i32; +pub const SmoothingModeHighSpeed: SmoothingMode = 1i32; +pub const SmoothingModeInvalid: SmoothingMode = -1i32; +pub const SmoothingModeNone: SmoothingMode = 3i32; +pub const StringAlignmentCenter: StringAlignment = 1i32; +pub const StringAlignmentFar: StringAlignment = 2i32; +pub const StringAlignmentNear: StringAlignment = 0i32; +pub const StringDigitSubstituteNational: StringDigitSubstitute = 2i32; +pub const StringDigitSubstituteNone: StringDigitSubstitute = 1i32; +pub const StringDigitSubstituteTraditional: StringDigitSubstitute = 3i32; +pub const StringDigitSubstituteUser: StringDigitSubstitute = 0i32; +pub const StringFormatFlagsBypassGDI: StringFormatFlags = -2147483648i32; +pub const StringFormatFlagsDirectionRightToLeft: StringFormatFlags = 1i32; +pub const StringFormatFlagsDirectionVertical: StringFormatFlags = 2i32; +pub const StringFormatFlagsDisplayFormatControl: StringFormatFlags = 32i32; +pub const StringFormatFlagsLineLimit: StringFormatFlags = 8192i32; +pub const StringFormatFlagsMeasureTrailingSpaces: StringFormatFlags = 2048i32; +pub const StringFormatFlagsNoClip: StringFormatFlags = 16384i32; +pub const StringFormatFlagsNoFitBlackBox: StringFormatFlags = 4i32; +pub const StringFormatFlagsNoFontFallback: StringFormatFlags = 1024i32; +pub const StringFormatFlagsNoWrap: StringFormatFlags = 4096i32; +pub const StringTrimmingCharacter: StringTrimming = 1i32; +pub const StringTrimmingEllipsisCharacter: StringTrimming = 3i32; +pub const StringTrimmingEllipsisPath: StringTrimming = 5i32; +pub const StringTrimmingEllipsisWord: StringTrimming = 4i32; +pub const StringTrimmingNone: StringTrimming = 0i32; +pub const StringTrimmingWord: StringTrimming = 2i32; +pub const TestControlForceBilinear: GpTestControlEnum = 0i32; +pub const TestControlGetBuildNumber: GpTestControlEnum = 2i32; +pub const TestControlNoICM: GpTestControlEnum = 1i32; +pub const TextRenderingHintAntiAlias: TextRenderingHint = 4i32; +pub const TextRenderingHintAntiAliasGridFit: TextRenderingHint = 3i32; +pub const TextRenderingHintClearTypeGridFit: TextRenderingHint = 5i32; +pub const TextRenderingHintSingleBitPerPixel: TextRenderingHint = 2i32; +pub const TextRenderingHintSingleBitPerPixelGridFit: TextRenderingHint = 1i32; +pub const TextRenderingHintSystemDefault: TextRenderingHint = 0i32; +pub const TintEffectGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1077af00_2848_4441_9489_44ad4c2d7a2c); +pub const UnitDisplay: Unit = 1i32; +pub const UnitDocument: Unit = 5i32; +pub const UnitInch: Unit = 4i32; +pub const UnitMillimeter: Unit = 6i32; +pub const UnitPixel: Unit = 2i32; +pub const UnitPoint: Unit = 3i32; +pub const UnitWorld: Unit = 0i32; +pub const UnknownImageFormat: Status = 13i32; +pub const UnsupportedGdiplusVersion: Status = 17i32; +pub const ValueOverflow: Status = 11i32; +pub const WarpModeBilinear: WarpMode = 1i32; +pub const WarpModePerspective: WarpMode = 0i32; +pub const Win32Error: Status = 7i32; +pub const WmfRecordTypeAbortDoc: EmfPlusRecordType = 65618i32; +pub const WmfRecordTypeAnimatePalette: EmfPlusRecordType = 66614i32; +pub const WmfRecordTypeArc: EmfPlusRecordType = 67607i32; +pub const WmfRecordTypeBitBlt: EmfPlusRecordType = 67874i32; +pub const WmfRecordTypeChord: EmfPlusRecordType = 67632i32; +pub const WmfRecordTypeCreateBitmap: EmfPlusRecordType = 67326i32; +pub const WmfRecordTypeCreateBitmapIndirect: EmfPlusRecordType = 66301i32; +pub const WmfRecordTypeCreateBrush: EmfPlusRecordType = 65784i32; +pub const WmfRecordTypeCreateBrushIndirect: EmfPlusRecordType = 66300i32; +pub const WmfRecordTypeCreateFontIndirect: EmfPlusRecordType = 66299i32; +pub const WmfRecordTypeCreatePalette: EmfPlusRecordType = 65783i32; +pub const WmfRecordTypeCreatePatternBrush: EmfPlusRecordType = 66041i32; +pub const WmfRecordTypeCreatePenIndirect: EmfPlusRecordType = 66298i32; +pub const WmfRecordTypeCreateRegion: EmfPlusRecordType = 67327i32; +pub const WmfRecordTypeDIBBitBlt: EmfPlusRecordType = 67904i32; +pub const WmfRecordTypeDIBCreatePatternBrush: EmfPlusRecordType = 65858i32; +pub const WmfRecordTypeDIBStretchBlt: EmfPlusRecordType = 68417i32; +pub const WmfRecordTypeDeleteObject: EmfPlusRecordType = 66032i32; +pub const WmfRecordTypeDrawText: EmfPlusRecordType = 67119i32; +pub const WmfRecordTypeEllipse: EmfPlusRecordType = 66584i32; +pub const WmfRecordTypeEndDoc: EmfPlusRecordType = 65630i32; +pub const WmfRecordTypeEndPage: EmfPlusRecordType = 65616i32; +pub const WmfRecordTypeEscape: EmfPlusRecordType = 67110i32; +pub const WmfRecordTypeExcludeClipRect: EmfPlusRecordType = 66581i32; +pub const WmfRecordTypeExtFloodFill: EmfPlusRecordType = 66888i32; +pub const WmfRecordTypeExtTextOut: EmfPlusRecordType = 68146i32; +pub const WmfRecordTypeFillRegion: EmfPlusRecordType = 66088i32; +pub const WmfRecordTypeFloodFill: EmfPlusRecordType = 66585i32; +pub const WmfRecordTypeFrameRegion: EmfPlusRecordType = 66601i32; +pub const WmfRecordTypeIntersectClipRect: EmfPlusRecordType = 66582i32; +pub const WmfRecordTypeInvertRegion: EmfPlusRecordType = 65834i32; +pub const WmfRecordTypeLineTo: EmfPlusRecordType = 66067i32; +pub const WmfRecordTypeMoveTo: EmfPlusRecordType = 66068i32; +pub const WmfRecordTypeOffsetClipRgn: EmfPlusRecordType = 66080i32; +pub const WmfRecordTypeOffsetViewportOrg: EmfPlusRecordType = 66065i32; +pub const WmfRecordTypeOffsetWindowOrg: EmfPlusRecordType = 66063i32; +pub const WmfRecordTypePaintRegion: EmfPlusRecordType = 65835i32; +pub const WmfRecordTypePatBlt: EmfPlusRecordType = 67101i32; +pub const WmfRecordTypePie: EmfPlusRecordType = 67610i32; +pub const WmfRecordTypePolyPolygon: EmfPlusRecordType = 66872i32; +pub const WmfRecordTypePolygon: EmfPlusRecordType = 66340i32; +pub const WmfRecordTypePolyline: EmfPlusRecordType = 66341i32; +pub const WmfRecordTypeRealizePalette: EmfPlusRecordType = 65589i32; +pub const WmfRecordTypeRectangle: EmfPlusRecordType = 66587i32; +pub const WmfRecordTypeResetDC: EmfPlusRecordType = 65868i32; +pub const WmfRecordTypeResizePalette: EmfPlusRecordType = 65849i32; +pub const WmfRecordTypeRestoreDC: EmfPlusRecordType = 65831i32; +pub const WmfRecordTypeRoundRect: EmfPlusRecordType = 67100i32; +pub const WmfRecordTypeSaveDC: EmfPlusRecordType = 65566i32; +pub const WmfRecordTypeScaleViewportExt: EmfPlusRecordType = 66578i32; +pub const WmfRecordTypeScaleWindowExt: EmfPlusRecordType = 66576i32; +pub const WmfRecordTypeSelectClipRegion: EmfPlusRecordType = 65836i32; +pub const WmfRecordTypeSelectObject: EmfPlusRecordType = 65837i32; +pub const WmfRecordTypeSelectPalette: EmfPlusRecordType = 66100i32; +pub const WmfRecordTypeSetBkColor: EmfPlusRecordType = 66049i32; +pub const WmfRecordTypeSetBkMode: EmfPlusRecordType = 65794i32; +pub const WmfRecordTypeSetDIBToDev: EmfPlusRecordType = 68915i32; +pub const WmfRecordTypeSetLayout: EmfPlusRecordType = 65865i32; +pub const WmfRecordTypeSetMapMode: EmfPlusRecordType = 65795i32; +pub const WmfRecordTypeSetMapperFlags: EmfPlusRecordType = 66097i32; +pub const WmfRecordTypeSetPalEntries: EmfPlusRecordType = 65591i32; +pub const WmfRecordTypeSetPixel: EmfPlusRecordType = 66591i32; +pub const WmfRecordTypeSetPolyFillMode: EmfPlusRecordType = 65798i32; +pub const WmfRecordTypeSetROP2: EmfPlusRecordType = 65796i32; +pub const WmfRecordTypeSetRelAbs: EmfPlusRecordType = 65797i32; +pub const WmfRecordTypeSetStretchBltMode: EmfPlusRecordType = 65799i32; +pub const WmfRecordTypeSetTextAlign: EmfPlusRecordType = 65838i32; +pub const WmfRecordTypeSetTextCharExtra: EmfPlusRecordType = 65800i32; +pub const WmfRecordTypeSetTextColor: EmfPlusRecordType = 66057i32; +pub const WmfRecordTypeSetTextJustification: EmfPlusRecordType = 66058i32; +pub const WmfRecordTypeSetViewportExt: EmfPlusRecordType = 66062i32; +pub const WmfRecordTypeSetViewportOrg: EmfPlusRecordType = 66061i32; +pub const WmfRecordTypeSetWindowExt: EmfPlusRecordType = 66060i32; +pub const WmfRecordTypeSetWindowOrg: EmfPlusRecordType = 66059i32; +pub const WmfRecordTypeStartDoc: EmfPlusRecordType = 65869i32; +pub const WmfRecordTypeStartPage: EmfPlusRecordType = 65615i32; +pub const WmfRecordTypeStretchBlt: EmfPlusRecordType = 68387i32; +pub const WmfRecordTypeStretchDIB: EmfPlusRecordType = 69443i32; +pub const WmfRecordTypeTextOut: EmfPlusRecordType = 66849i32; +pub const WrapModeClamp: WrapMode = 4i32; +pub const WrapModeTile: WrapMode = 0i32; +pub const WrapModeTileFlipX: WrapMode = 1i32; +pub const WrapModeTileFlipXY: WrapMode = 3i32; +pub const WrapModeTileFlipY: WrapMode = 2i32; +pub const WrongState: Status = 8i32; +pub type BrushType = i32; +pub type ColorAdjustType = i32; +pub type ColorChannelFlags = i32; +pub type ColorMatrixFlags = i32; +pub type ColorMode = i32; +pub type CombineMode = i32; +pub type CompositingMode = i32; +pub type CompositingQuality = i32; +pub type ConvertToEmfPlusFlags = i32; +pub type CoordinateSpace = i32; +pub type CurveAdjustments = i32; +pub type CurveChannel = i32; +pub type CustomLineCapType = i32; +pub type DashCap = i32; +pub type DashStyle = i32; +pub type DebugEventLevel = i32; +pub type DitherType = i32; +pub type DriverStringOptions = i32; +pub type EmfPlusRecordType = i32; +pub type EmfToWmfBitsFlags = i32; +pub type EmfType = i32; +pub type EncoderParameterValueType = i32; +pub type EncoderValue = i32; +pub type FillMode = i32; +pub type FlushIntention = i32; +pub type FontStyle = i32; +pub type GdiplusStartupParams = i32; +pub type GenericFontFamily = i32; +pub type GpTestControlEnum = i32; +pub type HatchStyle = i32; +pub type HistogramFormat = i32; +pub type HotkeyPrefix = i32; +pub type ImageCodecFlags = i32; +pub type ImageFlags = i32; +pub type ImageLockMode = i32; +pub type ImageType = i32; +pub type InterpolationMode = i32; +pub type ItemDataPosition = i32; +pub type LineCap = i32; +pub type LineJoin = i32; +pub type LinearGradientMode = i32; +pub type MatrixOrder = i32; +pub type MetafileFrameUnit = i32; +pub type MetafileType = i32; +pub type ObjectType = i32; +pub type PaletteFlags = i32; +pub type PaletteType = i32; +pub type PathPointType = i32; +pub type PenAlignment = i32; +pub type PenType = i32; +pub type PixelOffsetMode = i32; +pub type QualityMode = i32; +pub type RotateFlipType = i32; +pub type SmoothingMode = i32; +pub type Status = i32; +pub type StringAlignment = i32; +pub type StringDigitSubstitute = i32; +pub type StringFormatFlags = i32; +pub type StringTrimming = i32; +pub type TextRenderingHint = i32; +pub type Unit = i32; +pub type WarpMode = i32; +pub type WrapMode = i32; +pub type Bitmap = isize; +#[repr(C)] +pub struct BitmapData { + pub Width: u32, + pub Height: u32, + pub Stride: i32, + pub PixelFormat: i32, + pub Scan0: *mut ::core::ffi::c_void, + pub Reserved: usize, +} +impl ::core::marker::Copy for BitmapData {} +impl ::core::clone::Clone for BitmapData { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct Blur { + pub Base: Effect, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for Blur {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for Blur { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BlurParams { + pub radius: f32, + pub expandEdge: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BlurParams {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BlurParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BrightnessContrast { + pub Base: Effect, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BrightnessContrast {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BrightnessContrast { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BrightnessContrastParams { + pub brightnessLevel: i32, + pub contrastLevel: i32, +} +impl ::core::marker::Copy for BrightnessContrastParams {} +impl ::core::clone::Clone for BrightnessContrastParams { + fn clone(&self) -> Self { + *self + } +} +pub type CGpEffect = isize; +pub type CachedBitmap = isize; +#[repr(C)] +pub struct CharacterRange { + pub First: i32, + pub Length: i32, +} +impl ::core::marker::Copy for CharacterRange {} +impl ::core::clone::Clone for CharacterRange { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct Color { + pub Argb: u32, +} +impl Color { + pub const AliceBlue: i32 = -984833i32; + pub const AntiqueWhite: i32 = -332841i32; + pub const Aqua: i32 = -16711681i32; + pub const Aquamarine: i32 = -8388652i32; + pub const Azure: i32 = -983041i32; + pub const Beige: i32 = -657956i32; + pub const Bisque: i32 = -6972i32; + pub const Black: i32 = -16777216i32; + pub const BlanchedAlmond: i32 = -5171i32; + pub const Blue: i32 = -16776961i32; + pub const BlueViolet: i32 = -7722014i32; + pub const Brown: i32 = -5952982i32; + pub const BurlyWood: i32 = -2180985i32; + pub const CadetBlue: i32 = -10510688i32; + pub const Chartreuse: i32 = -8388864i32; + pub const Chocolate: i32 = -2987746i32; + pub const Coral: i32 = -32944i32; + pub const CornflowerBlue: i32 = -10185235i32; + pub const Cornsilk: i32 = -1828i32; + pub const Crimson: i32 = -2354116i32; + pub const Cyan: i32 = -16711681i32; + pub const DarkBlue: i32 = -16777077i32; + pub const DarkCyan: i32 = -16741493i32; + pub const DarkGoldenrod: i32 = -4684277i32; + pub const DarkGray: i32 = -5658199i32; + pub const DarkGreen: i32 = -16751616i32; + pub const DarkKhaki: i32 = -4343957i32; + pub const DarkMagenta: i32 = -7667573i32; + pub const DarkOliveGreen: i32 = -11179217i32; + pub const DarkOrange: i32 = -29696i32; + pub const DarkOrchid: i32 = -6737204i32; + pub const DarkRed: i32 = -7667712i32; + pub const DarkSalmon: i32 = -1468806i32; + pub const DarkSeaGreen: i32 = -7357301i32; + pub const DarkSlateBlue: i32 = -12042869i32; + pub const DarkSlateGray: i32 = -13676721i32; + pub const DarkTurquoise: i32 = -16724271i32; + pub const DarkViolet: i32 = -7077677i32; + pub const DeepPink: i32 = -60269i32; + pub const DeepSkyBlue: i32 = -16728065i32; + pub const DimGray: i32 = -9868951i32; + pub const DodgerBlue: i32 = -14774017i32; + pub const Firebrick: i32 = -5103070i32; + pub const FloralWhite: i32 = -1296i32; + pub const ForestGreen: i32 = -14513374i32; + pub const Fuchsia: i32 = -65281i32; + pub const Gainsboro: i32 = -2302756i32; + pub const GhostWhite: i32 = -460545i32; + pub const Gold: i32 = -10496i32; + pub const Goldenrod: i32 = -2448096i32; + pub const Gray: i32 = -8355712i32; + pub const Green: i32 = -16744448i32; + pub const GreenYellow: i32 = -5374161i32; + pub const Honeydew: i32 = -983056i32; + pub const HotPink: i32 = -38476i32; + pub const IndianRed: i32 = -3318692i32; + pub const Indigo: i32 = -11861886i32; + pub const Ivory: i32 = -16i32; + pub const Khaki: i32 = -989556i32; + pub const Lavender: i32 = -1644806i32; + pub const LavenderBlush: i32 = -3851i32; + pub const LawnGreen: i32 = -8586240i32; + pub const LemonChiffon: i32 = -1331i32; + pub const LightBlue: i32 = -5383962i32; + pub const LightCoral: i32 = -1015680i32; + pub const LightCyan: i32 = -2031617i32; + pub const LightGoldenrodYellow: i32 = -329006i32; + pub const LightGray: i32 = -2894893i32; + pub const LightGreen: i32 = -7278960i32; + pub const LightPink: i32 = -18751i32; + pub const LightSalmon: i32 = -24454i32; + pub const LightSeaGreen: i32 = -14634326i32; + pub const LightSkyBlue: i32 = -7876870i32; + pub const LightSlateGray: i32 = -8943463i32; + pub const LightSteelBlue: i32 = -5192482i32; + pub const LightYellow: i32 = -32i32; + pub const Lime: i32 = -16711936i32; + pub const LimeGreen: i32 = -13447886i32; + pub const Linen: i32 = -331546i32; + pub const Magenta: i32 = -65281i32; + pub const Maroon: i32 = -8388608i32; + pub const MediumAquamarine: i32 = -10039894i32; + pub const MediumBlue: i32 = -16777011i32; + pub const MediumOrchid: i32 = -4565549i32; + pub const MediumPurple: i32 = -7114533i32; + pub const MediumSeaGreen: i32 = -12799119i32; + pub const MediumSlateBlue: i32 = -8689426i32; + pub const MediumSpringGreen: i32 = -16713062i32; + pub const MediumTurquoise: i32 = -12004916i32; + pub const MediumVioletRed: i32 = -3730043i32; + pub const MidnightBlue: i32 = -15132304i32; + pub const MintCream: i32 = -655366i32; + pub const MistyRose: i32 = -6943i32; + pub const Moccasin: i32 = -6987i32; + pub const NavajoWhite: i32 = -8531i32; + pub const Navy: i32 = -16777088i32; + pub const OldLace: i32 = -133658i32; + pub const Olive: i32 = -8355840i32; + pub const OliveDrab: i32 = -9728477i32; + pub const Orange: i32 = -23296i32; + pub const OrangeRed: i32 = -47872i32; + pub const Orchid: i32 = -2461482i32; + pub const PaleGoldenrod: i32 = -1120086i32; + pub const PaleGreen: i32 = -6751336i32; + pub const PaleTurquoise: i32 = -5247250i32; + pub const PaleVioletRed: i32 = -2396013i32; + pub const PapayaWhip: i32 = -4139i32; + pub const PeachPuff: i32 = -9543i32; + pub const Peru: i32 = -3308225i32; + pub const Pink: i32 = -16181i32; + pub const Plum: i32 = -2252579i32; + pub const PowderBlue: i32 = -5185306i32; + pub const Purple: i32 = -8388480i32; + pub const Red: i32 = -65536i32; + pub const RosyBrown: i32 = -4419697i32; + pub const RoyalBlue: i32 = -12490271i32; + pub const SaddleBrown: i32 = -7650029i32; + pub const Salmon: i32 = -360334i32; + pub const SandyBrown: i32 = -744352i32; + pub const SeaGreen: i32 = -13726889i32; + pub const SeaShell: i32 = -2578i32; + pub const Sienna: i32 = -6270419i32; + pub const Silver: i32 = -4144960i32; + pub const SkyBlue: i32 = -7876885i32; + pub const SlateBlue: i32 = -9807155i32; + pub const SlateGray: i32 = -9404272i32; + pub const Snow: i32 = -1286i32; + pub const SpringGreen: i32 = -16711809i32; + pub const SteelBlue: i32 = -12156236i32; + pub const Tan: i32 = -2968436i32; + pub const Teal: i32 = -16744320i32; + pub const Thistle: i32 = -2572328i32; + pub const Tomato: i32 = -40121i32; + pub const Transparent: i32 = 16777215i32; + pub const Turquoise: i32 = -12525360i32; + pub const Violet: i32 = -1146130i32; + pub const Wheat: i32 = -663885i32; + pub const White: i32 = -1i32; + pub const WhiteSmoke: i32 = -657931i32; + pub const Yellow: i32 = -256i32; + pub const YellowGreen: i32 = -6632142i32; + pub const AlphaShift: i32 = 24i32; + pub const RedShift: i32 = 16i32; + pub const GreenShift: i32 = 8i32; + pub const BlueShift: i32 = 0i32; + pub const AlphaMask: i32 = -16777216i32; + pub const RedMask: i32 = 16711680i32; + pub const GreenMask: i32 = 65280i32; + pub const BlueMask: i32 = 255i32; +} +impl ::core::marker::Copy for Color {} +impl ::core::clone::Clone for Color { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ColorBalance { + pub Base: Effect, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ColorBalance {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ColorBalance { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ColorBalanceParams { + pub cyanRed: i32, + pub magentaGreen: i32, + pub yellowBlue: i32, +} +impl ::core::marker::Copy for ColorBalanceParams {} +impl ::core::clone::Clone for ColorBalanceParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ColorCurve { + pub Base: Effect, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ColorCurve {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ColorCurve { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ColorCurveParams { + pub adjustment: CurveAdjustments, + pub channel: CurveChannel, + pub adjustValue: i32, +} +impl ::core::marker::Copy for ColorCurveParams {} +impl ::core::clone::Clone for ColorCurveParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ColorLUT { + pub Base: Effect, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ColorLUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ColorLUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ColorLUTParams { + pub lutB: [u8; 256], + pub lutG: [u8; 256], + pub lutR: [u8; 256], + pub lutA: [u8; 256], +} +impl ::core::marker::Copy for ColorLUTParams {} +impl ::core::clone::Clone for ColorLUTParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ColorMap { + pub oldColor: Color, + pub newColor: Color, +} +impl ::core::marker::Copy for ColorMap {} +impl ::core::clone::Clone for ColorMap { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ColorMatrix { + pub m: [f32; 25], +} +impl ::core::marker::Copy for ColorMatrix {} +impl ::core::clone::Clone for ColorMatrix { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ColorMatrixEffect { + pub Base: Effect, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ColorMatrixEffect {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ColorMatrixEffect { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ColorPalette { + pub Flags: u32, + pub Count: u32, + pub Entries: [u32; 1], +} +impl ::core::marker::Copy for ColorPalette {} +impl ::core::clone::Clone for ColorPalette { + fn clone(&self) -> Self { + *self + } +} +pub type CustomLineCap = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ENHMETAHEADER3 { + pub iType: u32, + pub nSize: u32, + pub rclBounds: super::super::Foundation::RECTL, + pub rclFrame: super::super::Foundation::RECTL, + pub dSignature: u32, + pub nVersion: u32, + pub nBytes: u32, + pub nRecords: u32, + pub nHandles: u16, + pub sReserved: u16, + pub nDescription: u32, + pub offDescription: u32, + pub nPalEntries: u32, + pub szlDevice: super::super::Foundation::SIZE, + pub szlMillimeters: super::super::Foundation::SIZE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ENHMETAHEADER3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ENHMETAHEADER3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct Effect { + pub lpVtbl: *mut *mut ::core::ffi::c_void, + pub nativeEffect: *mut CGpEffect, + pub auxDataSize: i32, + pub auxData: *mut ::core::ffi::c_void, + pub useAuxData: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for Effect {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for Effect { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EncoderParameter { + pub Guid: ::windows_sys::core::GUID, + pub NumberOfValues: u32, + pub Type: u32, + pub Value: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for EncoderParameter {} +impl ::core::clone::Clone for EncoderParameter { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EncoderParameters { + pub Count: u32, + pub Parameter: [EncoderParameter; 1], +} +impl ::core::marker::Copy for EncoderParameters {} +impl ::core::clone::Clone for EncoderParameters { + fn clone(&self) -> Self { + *self + } +} +pub type Font = isize; +pub type FontCollection = isize; +pub type FontFamily = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GdiplusStartupInput { + pub GdiplusVersion: u32, + pub DebugEventCallback: isize, + pub SuppressBackgroundThread: super::super::Foundation::BOOL, + pub SuppressExternalCodecs: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GdiplusStartupInput {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GdiplusStartupInput { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GdiplusStartupInputEx { + pub Base: GdiplusStartupInput, + pub StartupParameters: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GdiplusStartupInputEx {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GdiplusStartupInputEx { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GdiplusStartupOutput { + pub NotificationHook: isize, + pub NotificationUnhook: isize, +} +impl ::core::marker::Copy for GdiplusStartupOutput {} +impl ::core::clone::Clone for GdiplusStartupOutput { + fn clone(&self) -> Self { + *self + } +} +pub type GpAdjustableArrowCap = isize; +pub type GpBitmap = isize; +pub type GpBrush = isize; +pub type GpCachedBitmap = isize; +pub type GpCustomLineCap = isize; +pub type GpFont = isize; +pub type GpFontCollection = isize; +pub type GpFontFamily = isize; +pub type GpGraphics = isize; +pub type GpHatch = isize; +pub type GpImage = isize; +pub type GpImageAttributes = isize; +pub type GpInstalledFontCollection = isize; +pub type GpLineGradient = isize; +pub type GpMetafile = isize; +pub type GpPath = isize; +pub type GpPathGradient = isize; +pub type GpPathIterator = isize; +pub type GpPen = isize; +pub type GpPrivateFontCollection = isize; +pub type GpRegion = isize; +pub type GpSolidFill = isize; +pub type GpStringFormat = isize; +pub type GpTexture = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HueSaturationLightness { + pub Base: Effect, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HueSaturationLightness {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HueSaturationLightness { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HueSaturationLightnessParams { + pub hueLevel: i32, + pub saturationLevel: i32, + pub lightnessLevel: i32, +} +impl ::core::marker::Copy for HueSaturationLightnessParams {} +impl ::core::clone::Clone for HueSaturationLightnessParams { + fn clone(&self) -> Self { + *self + } +} +pub type Image = isize; +#[repr(C)] +pub struct ImageCodecInfo { + pub Clsid: ::windows_sys::core::GUID, + pub FormatID: ::windows_sys::core::GUID, + pub CodecName: ::windows_sys::core::PCWSTR, + pub DllName: ::windows_sys::core::PCWSTR, + pub FormatDescription: ::windows_sys::core::PCWSTR, + pub FilenameExtension: ::windows_sys::core::PCWSTR, + pub MimeType: ::windows_sys::core::PCWSTR, + pub Flags: u32, + pub Version: u32, + pub SigCount: u32, + pub SigSize: u32, + pub SigPattern: *const u8, + pub SigMask: *const u8, +} +impl ::core::marker::Copy for ImageCodecInfo {} +impl ::core::clone::Clone for ImageCodecInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ImageItemData { + pub Size: u32, + pub Position: u32, + pub Desc: *mut ::core::ffi::c_void, + pub DescSize: u32, + pub Data: *mut ::core::ffi::c_void, + pub DataSize: u32, + pub Cookie: u32, +} +impl ::core::marker::Copy for ImageItemData {} +impl ::core::clone::Clone for ImageItemData { + fn clone(&self) -> Self { + *self + } +} +pub type InstalledFontCollection = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct Levels { + pub Base: Effect, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for Levels {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for Levels { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LevelsParams { + pub highlight: i32, + pub midtone: i32, + pub shadow: i32, +} +impl ::core::marker::Copy for LevelsParams {} +impl ::core::clone::Clone for LevelsParams { + fn clone(&self) -> Self { + *self + } +} +pub type Matrix = isize; +pub type Metafile = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct MetafileHeader { + pub Type: MetafileType, + pub Size: u32, + pub Version: u32, + pub EmfPlusFlags: u32, + pub DpiX: f32, + pub DpiY: f32, + pub X: i32, + pub Y: i32, + pub Width: i32, + pub Height: i32, + pub Anonymous: MetafileHeader_0, + pub EmfPlusHeaderSize: i32, + pub LogicalDpiX: i32, + pub LogicalDpiY: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for MetafileHeader {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for MetafileHeader { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub union MetafileHeader_0 { + pub WmfHeader: super::Gdi::METAHEADER, + pub EmfHeader: ENHMETAHEADER3, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for MetafileHeader_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for MetafileHeader_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PWMFRect16 { + pub Left: i16, + pub Top: i16, + pub Right: i16, + pub Bottom: i16, +} +impl ::core::marker::Copy for PWMFRect16 {} +impl ::core::clone::Clone for PWMFRect16 { + fn clone(&self) -> Self { + *self + } +} +pub type PathData = isize; +#[repr(C)] +pub struct Point { + pub X: i32, + pub Y: i32, +} +impl ::core::marker::Copy for Point {} +impl ::core::clone::Clone for Point { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PointF { + pub X: f32, + pub Y: f32, +} +impl ::core::marker::Copy for PointF {} +impl ::core::clone::Clone for PointF { + fn clone(&self) -> Self { + *self + } +} +pub type PrivateFontCollection = isize; +#[repr(C)] +pub struct PropertyItem { + pub id: u32, + pub length: u32, + pub r#type: u16, + pub value: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for PropertyItem {} +impl ::core::clone::Clone for PropertyItem { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct Rect { + pub X: i32, + pub Y: i32, + pub Width: i32, + pub Height: i32, +} +impl ::core::marker::Copy for Rect {} +impl ::core::clone::Clone for Rect { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RectF { + pub X: f32, + pub Y: f32, + pub Width: f32, + pub Height: f32, +} +impl ::core::marker::Copy for RectF {} +impl ::core::clone::Clone for RectF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RedEyeCorrection { + pub Base: Effect, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RedEyeCorrection {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RedEyeCorrection { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RedEyeCorrectionParams { + pub numberOfAreas: u32, + pub areas: *mut super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RedEyeCorrectionParams {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RedEyeCorrectionParams { + fn clone(&self) -> Self { + *self + } +} +pub type Region = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct Sharpen { + pub Base: Effect, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for Sharpen {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for Sharpen { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SharpenParams { + pub radius: f32, + pub amount: f32, +} +impl ::core::marker::Copy for SharpenParams {} +impl ::core::clone::Clone for SharpenParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct Size { + pub Width: i32, + pub Height: i32, +} +impl ::core::marker::Copy for Size {} +impl ::core::clone::Clone for Size { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SizeF { + pub Width: f32, + pub Height: f32, +} +impl ::core::marker::Copy for SizeF {} +impl ::core::clone::Clone for SizeF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct Tint { + pub Base: Effect, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for Tint {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for Tint { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TintParams { + pub hue: i32, + pub amount: i32, +} +impl ::core::marker::Copy for TintParams {} +impl ::core::clone::Clone for TintParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct WmfPlaceableFileHeader { + pub Key: u32, + pub Hmf: i16, + pub BoundingBox: PWMFRect16, + pub Inch: i16, + pub Reserved: u32, + pub Checksum: i16, +} +impl ::core::marker::Copy for WmfPlaceableFileHeader {} +impl ::core::clone::Clone for WmfPlaceableFileHeader { + fn clone(&self) -> Self { + *self + } +} +pub type DebugEventProc = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DrawImageAbort = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type EnumerateMetafileProc = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type GetThumbnailImageAbort = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ImageAbort = ::core::option::Option super::super::Foundation::BOOL>; +pub type NotificationHookProc = ::core::option::Option Status>; +pub type NotificationUnhookProc = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Hlsl/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Hlsl/mod.rs new file mode 100644 index 000000000..ef4120222 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Hlsl/mod.rs @@ -0,0 +1,2 @@ +pub const D3DCOMPILE_OPTIMIZATION_LEVEL2: u32 = 49152u32; +pub const D3D_COMPILE_STANDARD_FILE_INCLUDE: u32 = 1u32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/OpenGL/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/OpenGL/mod.rs new file mode 100644 index 000000000..01bffa45f --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/OpenGL/mod.rs @@ -0,0 +1,1312 @@ +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ChoosePixelFormat(hdc : super::Gdi:: HDC, ppfd : *const PIXELFORMATDESCRIPTOR) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn DescribePixelFormat(hdc : super::Gdi:: HDC, ipixelformat : i32, nbytes : u32, ppfd : *mut PIXELFORMATDESCRIPTOR) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetEnhMetaFilePixelFormat(hemf : super::Gdi:: HENHMETAFILE, cbbuffer : u32, ppfd : *mut PIXELFORMATDESCRIPTOR) -> u32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetPixelFormat(hdc : super::Gdi:: HDC) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn SetPixelFormat(hdc : super::Gdi:: HDC, format : i32, ppfd : *const PIXELFORMATDESCRIPTOR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn SwapBuffers(param0 : super::Gdi:: HDC) -> super::super::Foundation:: BOOL); +::windows_targets::link!("opengl32.dll" "system" fn glAccum(op : u32, value : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glAlphaFunc(func : u32, r#ref : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glAreTexturesResident(n : i32, textures : *const u32, residences : *mut u8) -> u8); +::windows_targets::link!("opengl32.dll" "system" fn glArrayElement(i : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glBegin(mode : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glBindTexture(target : u32, texture : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glBitmap(width : i32, height : i32, xorig : f32, yorig : f32, xmove : f32, ymove : f32, bitmap : *const u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glBlendFunc(sfactor : u32, dfactor : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glCallList(list : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glCallLists(n : i32, r#type : u32, lists : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glClear(mask : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glClearAccum(red : f32, green : f32, blue : f32, alpha : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glClearColor(red : f32, green : f32, blue : f32, alpha : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glClearDepth(depth : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glClearIndex(c : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glClearStencil(s : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glClipPlane(plane : u32, equation : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3b(red : i8, green : i8, blue : i8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3bv(v : *const i8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3d(red : f64, green : f64, blue : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3dv(v : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3f(red : f32, green : f32, blue : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3fv(v : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3i(red : i32, green : i32, blue : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3iv(v : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3s(red : i16, green : i16, blue : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3sv(v : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3ub(red : u8, green : u8, blue : u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3ubv(v : *const u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3ui(red : u32, green : u32, blue : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3uiv(v : *const u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3us(red : u16, green : u16, blue : u16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor3usv(v : *const u16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4b(red : i8, green : i8, blue : i8, alpha : i8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4bv(v : *const i8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4d(red : f64, green : f64, blue : f64, alpha : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4dv(v : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4f(red : f32, green : f32, blue : f32, alpha : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4fv(v : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4i(red : i32, green : i32, blue : i32, alpha : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4iv(v : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4s(red : i16, green : i16, blue : i16, alpha : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4sv(v : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4ub(red : u8, green : u8, blue : u8, alpha : u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4ubv(v : *const u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4ui(red : u32, green : u32, blue : u32, alpha : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4uiv(v : *const u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4us(red : u16, green : u16, blue : u16, alpha : u16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColor4usv(v : *const u16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColorMask(red : u8, green : u8, blue : u8, alpha : u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColorMaterial(face : u32, mode : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glColorPointer(size : i32, r#type : u32, stride : i32, pointer : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glCopyPixels(x : i32, y : i32, width : i32, height : i32, r#type : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glCopyTexImage1D(target : u32, level : i32, internalformat : u32, x : i32, y : i32, width : i32, border : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glCopyTexImage2D(target : u32, level : i32, internalformat : u32, x : i32, y : i32, width : i32, height : i32, border : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glCopyTexSubImage1D(target : u32, level : i32, xoffset : i32, x : i32, y : i32, width : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glCopyTexSubImage2D(target : u32, level : i32, xoffset : i32, yoffset : i32, x : i32, y : i32, width : i32, height : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glCullFace(mode : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glDeleteLists(list : u32, range : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glDeleteTextures(n : i32, textures : *const u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glDepthFunc(func : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glDepthMask(flag : u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glDepthRange(znear : f64, zfar : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glDisable(cap : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glDisableClientState(array : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glDrawArrays(mode : u32, first : i32, count : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glDrawBuffer(mode : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glDrawElements(mode : u32, count : i32, r#type : u32, indices : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glDrawPixels(width : i32, height : i32, format : u32, r#type : u32, pixels : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEdgeFlag(flag : u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEdgeFlagPointer(stride : i32, pointer : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEdgeFlagv(flag : *const u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEnable(cap : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEnableClientState(array : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEnd() -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEndList() -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEvalCoord1d(u : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEvalCoord1dv(u : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEvalCoord1f(u : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEvalCoord1fv(u : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEvalCoord2d(u : f64, v : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEvalCoord2dv(u : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEvalCoord2f(u : f32, v : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEvalCoord2fv(u : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEvalMesh1(mode : u32, i1 : i32, i2 : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEvalMesh2(mode : u32, i1 : i32, i2 : i32, j1 : i32, j2 : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEvalPoint1(i : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glEvalPoint2(i : i32, j : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glFeedbackBuffer(size : i32, r#type : u32, buffer : *mut f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glFinish() -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glFlush() -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glFogf(pname : u32, param1 : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glFogfv(pname : u32, params : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glFogi(pname : u32, param1 : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glFogiv(pname : u32, params : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glFrontFace(mode : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glFrustum(left : f64, right : f64, bottom : f64, top : f64, znear : f64, zfar : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGenLists(range : i32) -> u32); +::windows_targets::link!("opengl32.dll" "system" fn glGenTextures(n : i32, textures : *mut u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetBooleanv(pname : u32, params : *mut u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetClipPlane(plane : u32, equation : *mut f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetDoublev(pname : u32, params : *mut f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetError() -> u32); +::windows_targets::link!("opengl32.dll" "system" fn glGetFloatv(pname : u32, params : *mut f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetIntegerv(pname : u32, params : *mut i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetLightfv(light : u32, pname : u32, params : *mut f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetLightiv(light : u32, pname : u32, params : *mut i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetMapdv(target : u32, query : u32, v : *mut f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetMapfv(target : u32, query : u32, v : *mut f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetMapiv(target : u32, query : u32, v : *mut i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetMaterialfv(face : u32, pname : u32, params : *mut f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetMaterialiv(face : u32, pname : u32, params : *mut i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetPixelMapfv(map : u32, values : *mut f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetPixelMapuiv(map : u32, values : *mut u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetPixelMapusv(map : u32, values : *mut u16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetPointerv(pname : u32, params : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetPolygonStipple(mask : *mut u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetString(name : u32) -> *mut u8); +::windows_targets::link!("opengl32.dll" "system" fn glGetTexEnvfv(target : u32, pname : u32, params : *mut f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetTexEnviv(target : u32, pname : u32, params : *mut i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetTexGendv(coord : u32, pname : u32, params : *mut f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetTexGenfv(coord : u32, pname : u32, params : *mut f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetTexGeniv(coord : u32, pname : u32, params : *mut i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetTexImage(target : u32, level : i32, format : u32, r#type : u32, pixels : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetTexLevelParameterfv(target : u32, level : i32, pname : u32, params : *mut f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetTexLevelParameteriv(target : u32, level : i32, pname : u32, params : *mut i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetTexParameterfv(target : u32, pname : u32, params : *mut f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glGetTexParameteriv(target : u32, pname : u32, params : *mut i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glHint(target : u32, mode : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glIndexMask(mask : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glIndexPointer(r#type : u32, stride : i32, pointer : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glIndexd(c : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glIndexdv(c : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glIndexf(c : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glIndexfv(c : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glIndexi(c : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glIndexiv(c : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glIndexs(c : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glIndexsv(c : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glIndexub(c : u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glIndexubv(c : *const u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glInitNames() -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glInterleavedArrays(format : u32, stride : i32, pointer : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glIsEnabled(cap : u32) -> u8); +::windows_targets::link!("opengl32.dll" "system" fn glIsList(list : u32) -> u8); +::windows_targets::link!("opengl32.dll" "system" fn glIsTexture(texture : u32) -> u8); +::windows_targets::link!("opengl32.dll" "system" fn glLightModelf(pname : u32, param1 : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLightModelfv(pname : u32, params : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLightModeli(pname : u32, param1 : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLightModeliv(pname : u32, params : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLightf(light : u32, pname : u32, param2 : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLightfv(light : u32, pname : u32, params : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLighti(light : u32, pname : u32, param2 : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLightiv(light : u32, pname : u32, params : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLineStipple(factor : i32, pattern : u16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLineWidth(width : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glListBase(base : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLoadIdentity() -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLoadMatrixd(m : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLoadMatrixf(m : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLoadName(name : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glLogicOp(opcode : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMap1d(target : u32, u1 : f64, u2 : f64, stride : i32, order : i32, points : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMap1f(target : u32, u1 : f32, u2 : f32, stride : i32, order : i32, points : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMap2d(target : u32, u1 : f64, u2 : f64, ustride : i32, uorder : i32, v1 : f64, v2 : f64, vstride : i32, vorder : i32, points : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMap2f(target : u32, u1 : f32, u2 : f32, ustride : i32, uorder : i32, v1 : f32, v2 : f32, vstride : i32, vorder : i32, points : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMapGrid1d(un : i32, u1 : f64, u2 : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMapGrid1f(un : i32, u1 : f32, u2 : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMapGrid2d(un : i32, u1 : f64, u2 : f64, vn : i32, v1 : f64, v2 : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMapGrid2f(un : i32, u1 : f32, u2 : f32, vn : i32, v1 : f32, v2 : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMaterialf(face : u32, pname : u32, param2 : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMaterialfv(face : u32, pname : u32, params : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMateriali(face : u32, pname : u32, param2 : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMaterialiv(face : u32, pname : u32, params : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMatrixMode(mode : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMultMatrixd(m : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glMultMatrixf(m : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glNewList(list : u32, mode : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glNormal3b(nx : i8, ny : i8, nz : i8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glNormal3bv(v : *const i8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glNormal3d(nx : f64, ny : f64, nz : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glNormal3dv(v : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glNormal3f(nx : f32, ny : f32, nz : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glNormal3fv(v : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glNormal3i(nx : i32, ny : i32, nz : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glNormal3iv(v : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glNormal3s(nx : i16, ny : i16, nz : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glNormal3sv(v : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glNormalPointer(r#type : u32, stride : i32, pointer : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glOrtho(left : f64, right : f64, bottom : f64, top : f64, znear : f64, zfar : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPassThrough(token : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPixelMapfv(map : u32, mapsize : i32, values : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPixelMapuiv(map : u32, mapsize : i32, values : *const u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPixelMapusv(map : u32, mapsize : i32, values : *const u16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPixelStoref(pname : u32, param1 : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPixelStorei(pname : u32, param1 : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPixelTransferf(pname : u32, param1 : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPixelTransferi(pname : u32, param1 : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPixelZoom(xfactor : f32, yfactor : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPointSize(size : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPolygonMode(face : u32, mode : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPolygonOffset(factor : f32, units : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPolygonStipple(mask : *const u8) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPopAttrib() -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPopClientAttrib() -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPopMatrix() -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPopName() -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPrioritizeTextures(n : i32, textures : *const u32, priorities : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPushAttrib(mask : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPushClientAttrib(mask : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPushMatrix() -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glPushName(name : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos2d(x : f64, y : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos2dv(v : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos2f(x : f32, y : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos2fv(v : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos2i(x : i32, y : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos2iv(v : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos2s(x : i16, y : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos2sv(v : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos3d(x : f64, y : f64, z : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos3dv(v : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos3f(x : f32, y : f32, z : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos3fv(v : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos3i(x : i32, y : i32, z : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos3iv(v : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos3s(x : i16, y : i16, z : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos3sv(v : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos4d(x : f64, y : f64, z : f64, w : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos4dv(v : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos4f(x : f32, y : f32, z : f32, w : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos4fv(v : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos4i(x : i32, y : i32, z : i32, w : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos4iv(v : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos4s(x : i16, y : i16, z : i16, w : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRasterPos4sv(v : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glReadBuffer(mode : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glReadPixels(x : i32, y : i32, width : i32, height : i32, format : u32, r#type : u32, pixels : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRectd(x1 : f64, y1 : f64, x2 : f64, y2 : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRectdv(v1 : *const f64, v2 : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRectf(x1 : f32, y1 : f32, x2 : f32, y2 : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRectfv(v1 : *const f32, v2 : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRecti(x1 : i32, y1 : i32, x2 : i32, y2 : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRectiv(v1 : *const i32, v2 : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRects(x1 : i16, y1 : i16, x2 : i16, y2 : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRectsv(v1 : *const i16, v2 : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRenderMode(mode : u32) -> i32); +::windows_targets::link!("opengl32.dll" "system" fn glRotated(angle : f64, x : f64, y : f64, z : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glRotatef(angle : f32, x : f32, y : f32, z : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glScaled(x : f64, y : f64, z : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glScalef(x : f32, y : f32, z : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glScissor(x : i32, y : i32, width : i32, height : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glSelectBuffer(size : i32, buffer : *mut u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glShadeModel(mode : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glStencilFunc(func : u32, r#ref : i32, mask : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glStencilMask(mask : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glStencilOp(fail : u32, zfail : u32, zpass : u32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord1d(s : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord1dv(v : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord1f(s : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord1fv(v : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord1i(s : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord1iv(v : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord1s(s : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord1sv(v : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord2d(s : f64, t : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord2dv(v : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord2f(s : f32, t : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord2fv(v : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord2i(s : i32, t : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord2iv(v : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord2s(s : i16, t : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord2sv(v : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord3d(s : f64, t : f64, r : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord3dv(v : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord3f(s : f32, t : f32, r : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord3fv(v : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord3i(s : i32, t : i32, r : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord3iv(v : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord3s(s : i16, t : i16, r : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord3sv(v : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord4d(s : f64, t : f64, r : f64, q : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord4dv(v : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord4f(s : f32, t : f32, r : f32, q : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord4fv(v : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord4i(s : i32, t : i32, r : i32, q : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord4iv(v : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord4s(s : i16, t : i16, r : i16, q : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoord4sv(v : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexCoordPointer(size : i32, r#type : u32, stride : i32, pointer : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexEnvf(target : u32, pname : u32, param2 : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexEnvfv(target : u32, pname : u32, params : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexEnvi(target : u32, pname : u32, param2 : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexEnviv(target : u32, pname : u32, params : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexGend(coord : u32, pname : u32, param2 : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexGendv(coord : u32, pname : u32, params : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexGenf(coord : u32, pname : u32, param2 : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexGenfv(coord : u32, pname : u32, params : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexGeni(coord : u32, pname : u32, param2 : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexGeniv(coord : u32, pname : u32, params : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexImage1D(target : u32, level : i32, internalformat : i32, width : i32, border : i32, format : u32, r#type : u32, pixels : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexImage2D(target : u32, level : i32, internalformat : i32, width : i32, height : i32, border : i32, format : u32, r#type : u32, pixels : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexParameterf(target : u32, pname : u32, param2 : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexParameterfv(target : u32, pname : u32, params : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexParameteri(target : u32, pname : u32, param2 : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexParameteriv(target : u32, pname : u32, params : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexSubImage1D(target : u32, level : i32, xoffset : i32, width : i32, format : u32, r#type : u32, pixels : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTexSubImage2D(target : u32, level : i32, xoffset : i32, yoffset : i32, width : i32, height : i32, format : u32, r#type : u32, pixels : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTranslated(x : f64, y : f64, z : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glTranslatef(x : f32, y : f32, z : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex2d(x : f64, y : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex2dv(v : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex2f(x : f32, y : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex2fv(v : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex2i(x : i32, y : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex2iv(v : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex2s(x : i16, y : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex2sv(v : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex3d(x : f64, y : f64, z : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex3dv(v : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex3f(x : f32, y : f32, z : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex3fv(v : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex3i(x : i32, y : i32, z : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex3iv(v : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex3s(x : i16, y : i16, z : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex3sv(v : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex4d(x : f64, y : f64, z : f64, w : f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex4dv(v : *const f64) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex4f(x : f32, y : f32, z : f32, w : f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex4fv(v : *const f32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex4i(x : i32, y : i32, z : i32, w : i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex4iv(v : *const i32) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex4s(x : i16, y : i16, z : i16, w : i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertex4sv(v : *const i16) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glVertexPointer(size : i32, r#type : u32, stride : i32, pointer : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("opengl32.dll" "system" fn glViewport(x : i32, y : i32, width : i32, height : i32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluBeginCurve(nobj : *mut GLUnurbs) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluBeginPolygon(tess : *mut GLUtesselator) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluBeginSurface(nobj : *mut GLUnurbs) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluBeginTrim(nobj : *mut GLUnurbs) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluBuild1DMipmaps(target : u32, components : i32, width : i32, format : u32, r#type : u32, data : *const ::core::ffi::c_void) -> i32); +::windows_targets::link!("glu32.dll" "system" fn gluBuild2DMipmaps(target : u32, components : i32, width : i32, height : i32, format : u32, r#type : u32, data : *const ::core::ffi::c_void) -> i32); +::windows_targets::link!("glu32.dll" "system" fn gluCylinder(qobj : *mut GLUquadric, baseradius : f64, topradius : f64, height : f64, slices : i32, stacks : i32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluDeleteNurbsRenderer(nobj : *mut GLUnurbs) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluDeleteQuadric(state : *mut GLUquadric) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluDeleteTess(tess : *mut GLUtesselator) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluDisk(qobj : *mut GLUquadric, innerradius : f64, outerradius : f64, slices : i32, loops : i32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluEndCurve(nobj : *mut GLUnurbs) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluEndPolygon(tess : *mut GLUtesselator) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluEndSurface(nobj : *mut GLUnurbs) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluEndTrim(nobj : *mut GLUnurbs) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluErrorString(errcode : u32) -> *mut u8); +::windows_targets::link!("glu32.dll" "system" fn gluErrorUnicodeStringEXT(errcode : u32) -> ::windows_sys::core::PCWSTR); +::windows_targets::link!("glu32.dll" "system" fn gluGetNurbsProperty(nobj : *mut GLUnurbs, property : u32, value : *mut f32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluGetString(name : u32) -> *mut u8); +::windows_targets::link!("glu32.dll" "system" fn gluGetTessProperty(tess : *mut GLUtesselator, which : u32, value : *mut f64) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluLoadSamplingMatrices(nobj : *mut GLUnurbs, modelmatrix : *const f32, projmatrix : *const f32, viewport : *const i32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluLookAt(eyex : f64, eyey : f64, eyez : f64, centerx : f64, centery : f64, centerz : f64, upx : f64, upy : f64, upz : f64) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluNewNurbsRenderer() -> *mut GLUnurbs); +::windows_targets::link!("glu32.dll" "system" fn gluNewQuadric() -> *mut GLUquadric); +::windows_targets::link!("glu32.dll" "system" fn gluNewTess() -> *mut GLUtesselator); +::windows_targets::link!("glu32.dll" "system" fn gluNextContour(tess : *mut GLUtesselator, r#type : u32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluNurbsCallback(nobj : *mut GLUnurbs, which : u32, r#fn : isize) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluNurbsCurve(nobj : *mut GLUnurbs, nknots : i32, knot : *mut f32, stride : i32, ctlarray : *mut f32, order : i32, r#type : u32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluNurbsProperty(nobj : *mut GLUnurbs, property : u32, value : f32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluNurbsSurface(nobj : *mut GLUnurbs, sknot_count : i32, sknot : *mut f32, tknot_count : i32, tknot : *mut f32, s_stride : i32, t_stride : i32, ctlarray : *mut f32, sorder : i32, torder : i32, r#type : u32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluOrtho2D(left : f64, right : f64, bottom : f64, top : f64) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluPartialDisk(qobj : *mut GLUquadric, innerradius : f64, outerradius : f64, slices : i32, loops : i32, startangle : f64, sweepangle : f64) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluPerspective(fovy : f64, aspect : f64, znear : f64, zfar : f64) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluPickMatrix(x : f64, y : f64, width : f64, height : f64, viewport : *mut i32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluProject(objx : f64, objy : f64, objz : f64, modelmatrix : *const f64, projmatrix : *const f64, viewport : *const i32, winx : *mut f64, winy : *mut f64, winz : *mut f64) -> i32); +::windows_targets::link!("glu32.dll" "system" fn gluPwlCurve(nobj : *mut GLUnurbs, count : i32, array : *mut f32, stride : i32, r#type : u32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluQuadricCallback(qobj : *mut GLUquadric, which : u32, r#fn : isize) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluQuadricDrawStyle(quadobject : *mut GLUquadric, drawstyle : u32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluQuadricNormals(quadobject : *mut GLUquadric, normals : u32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluQuadricOrientation(quadobject : *mut GLUquadric, orientation : u32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluQuadricTexture(quadobject : *mut GLUquadric, texturecoords : u8) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluScaleImage(format : u32, widthin : i32, heightin : i32, typein : u32, datain : *const ::core::ffi::c_void, widthout : i32, heightout : i32, typeout : u32, dataout : *mut ::core::ffi::c_void) -> i32); +::windows_targets::link!("glu32.dll" "system" fn gluSphere(qobj : *mut GLUquadric, radius : f64, slices : i32, stacks : i32) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluTessBeginContour(tess : *mut GLUtesselator) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluTessBeginPolygon(tess : *mut GLUtesselator, polygon_data : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluTessCallback(tess : *mut GLUtesselator, which : u32, r#fn : isize) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluTessEndContour(tess : *mut GLUtesselator) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluTessEndPolygon(tess : *mut GLUtesselator) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluTessNormal(tess : *mut GLUtesselator, x : f64, y : f64, z : f64) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluTessProperty(tess : *mut GLUtesselator, which : u32, value : f64) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluTessVertex(tess : *mut GLUtesselator, coords : *mut f64, data : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("glu32.dll" "system" fn gluUnProject(winx : f64, winy : f64, winz : f64, modelmatrix : *const f64, projmatrix : *const f64, viewport : *const i32, objx : *mut f64, objy : *mut f64, objz : *mut f64) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn wglCopyContext(param0 : HGLRC, param1 : HGLRC, param2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn wglCreateContext(param0 : super::Gdi:: HDC) -> HGLRC); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn wglCreateLayerContext(param0 : super::Gdi:: HDC, param1 : i32) -> HGLRC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn wglDeleteContext(param0 : HGLRC) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn wglDescribeLayerPlane(param0 : super::Gdi:: HDC, param1 : i32, param2 : i32, param3 : u32, param4 : *mut LAYERPLANEDESCRIPTOR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("opengl32.dll" "system" fn wglGetCurrentContext() -> HGLRC); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn wglGetCurrentDC() -> super::Gdi:: HDC); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn wglGetLayerPaletteEntries(param0 : super::Gdi:: HDC, param1 : i32, param2 : i32, param3 : i32, param4 : *mut super::super::Foundation:: COLORREF) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn wglGetProcAddress(param0 : ::windows_sys::core::PCSTR) -> super::super::Foundation:: PROC); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn wglMakeCurrent(param0 : super::Gdi:: HDC, param1 : HGLRC) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn wglRealizeLayerPalette(param0 : super::Gdi:: HDC, param1 : i32, param2 : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn wglSetLayerPaletteEntries(param0 : super::Gdi:: HDC, param1 : i32, param2 : i32, param3 : i32, param4 : *const super::super::Foundation:: COLORREF) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn wglShareLists(param0 : HGLRC, param1 : HGLRC) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn wglSwapLayerBuffers(param0 : super::Gdi:: HDC, param1 : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn wglUseFontBitmapsA(param0 : super::Gdi:: HDC, param1 : u32, param2 : u32, param3 : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn wglUseFontBitmapsW(param0 : super::Gdi:: HDC, param1 : u32, param2 : u32, param3 : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn wglUseFontOutlinesA(param0 : super::Gdi:: HDC, param1 : u32, param2 : u32, param3 : u32, param4 : f32, param5 : f32, param6 : i32, param7 : *mut GLYPHMETRICSFLOAT) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("opengl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn wglUseFontOutlinesW(param0 : super::Gdi:: HDC, param1 : u32, param2 : u32, param3 : u32, param4 : f32, param5 : f32, param6 : i32, param7 : *mut GLYPHMETRICSFLOAT) -> super::super::Foundation:: BOOL); +pub const GLU_AUTO_LOAD_MATRIX: u32 = 100200u32; +pub const GLU_BEGIN: u32 = 100100u32; +pub const GLU_CCW: u32 = 100121u32; +pub const GLU_CULLING: u32 = 100201u32; +pub const GLU_CW: u32 = 100120u32; +pub const GLU_DISPLAY_MODE: u32 = 100204u32; +pub const GLU_DOMAIN_DISTANCE: u32 = 100217u32; +pub const GLU_EDGE_FLAG: u32 = 100104u32; +pub const GLU_END: u32 = 100102u32; +pub const GLU_ERROR: u32 = 100103u32; +pub const GLU_EXTENSIONS: u32 = 100801u32; +pub const GLU_EXTERIOR: u32 = 100123u32; +pub const GLU_FALSE: u32 = 0u32; +pub const GLU_FILL: u32 = 100012u32; +pub const GLU_FLAT: u32 = 100001u32; +pub const GLU_INCOMPATIBLE_GL_VERSION: u32 = 100903u32; +pub const GLU_INSIDE: u32 = 100021u32; +pub const GLU_INTERIOR: u32 = 100122u32; +pub const GLU_INVALID_ENUM: u32 = 100900u32; +pub const GLU_INVALID_VALUE: u32 = 100901u32; +pub const GLU_LINE: u32 = 100011u32; +pub const GLU_MAP1_TRIM_2: u32 = 100210u32; +pub const GLU_MAP1_TRIM_3: u32 = 100211u32; +pub const GLU_NONE: u32 = 100002u32; +pub const GLU_NURBS_ERROR1: u32 = 100251u32; +pub const GLU_NURBS_ERROR10: u32 = 100260u32; +pub const GLU_NURBS_ERROR11: u32 = 100261u32; +pub const GLU_NURBS_ERROR12: u32 = 100262u32; +pub const GLU_NURBS_ERROR13: u32 = 100263u32; +pub const GLU_NURBS_ERROR14: u32 = 100264u32; +pub const GLU_NURBS_ERROR15: u32 = 100265u32; +pub const GLU_NURBS_ERROR16: u32 = 100266u32; +pub const GLU_NURBS_ERROR17: u32 = 100267u32; +pub const GLU_NURBS_ERROR18: u32 = 100268u32; +pub const GLU_NURBS_ERROR19: u32 = 100269u32; +pub const GLU_NURBS_ERROR2: u32 = 100252u32; +pub const GLU_NURBS_ERROR20: u32 = 100270u32; +pub const GLU_NURBS_ERROR21: u32 = 100271u32; +pub const GLU_NURBS_ERROR22: u32 = 100272u32; +pub const GLU_NURBS_ERROR23: u32 = 100273u32; +pub const GLU_NURBS_ERROR24: u32 = 100274u32; +pub const GLU_NURBS_ERROR25: u32 = 100275u32; +pub const GLU_NURBS_ERROR26: u32 = 100276u32; +pub const GLU_NURBS_ERROR27: u32 = 100277u32; +pub const GLU_NURBS_ERROR28: u32 = 100278u32; +pub const GLU_NURBS_ERROR29: u32 = 100279u32; +pub const GLU_NURBS_ERROR3: u32 = 100253u32; +pub const GLU_NURBS_ERROR30: u32 = 100280u32; +pub const GLU_NURBS_ERROR31: u32 = 100281u32; +pub const GLU_NURBS_ERROR32: u32 = 100282u32; +pub const GLU_NURBS_ERROR33: u32 = 100283u32; +pub const GLU_NURBS_ERROR34: u32 = 100284u32; +pub const GLU_NURBS_ERROR35: u32 = 100285u32; +pub const GLU_NURBS_ERROR36: u32 = 100286u32; +pub const GLU_NURBS_ERROR37: u32 = 100287u32; +pub const GLU_NURBS_ERROR4: u32 = 100254u32; +pub const GLU_NURBS_ERROR5: u32 = 100255u32; +pub const GLU_NURBS_ERROR6: u32 = 100256u32; +pub const GLU_NURBS_ERROR7: u32 = 100257u32; +pub const GLU_NURBS_ERROR8: u32 = 100258u32; +pub const GLU_NURBS_ERROR9: u32 = 100259u32; +pub const GLU_OUTLINE_PATCH: u32 = 100241u32; +pub const GLU_OUTLINE_POLYGON: u32 = 100240u32; +pub const GLU_OUTSIDE: u32 = 100020u32; +pub const GLU_OUT_OF_MEMORY: u32 = 100902u32; +pub const GLU_PARAMETRIC_ERROR: u32 = 100216u32; +pub const GLU_PARAMETRIC_TOLERANCE: u32 = 100202u32; +pub const GLU_PATH_LENGTH: u32 = 100215u32; +pub const GLU_POINT: u32 = 100010u32; +pub const GLU_SAMPLING_METHOD: u32 = 100205u32; +pub const GLU_SAMPLING_TOLERANCE: u32 = 100203u32; +pub const GLU_SILHOUETTE: u32 = 100013u32; +pub const GLU_SMOOTH: u32 = 100000u32; +pub const GLU_TESS_BEGIN: u32 = 100100u32; +pub const GLU_TESS_BEGIN_DATA: u32 = 100106u32; +pub const GLU_TESS_BOUNDARY_ONLY: u32 = 100141u32; +pub const GLU_TESS_COMBINE: u32 = 100105u32; +pub const GLU_TESS_COMBINE_DATA: u32 = 100111u32; +pub const GLU_TESS_COORD_TOO_LARGE: u32 = 100155u32; +pub const GLU_TESS_EDGE_FLAG: u32 = 100104u32; +pub const GLU_TESS_EDGE_FLAG_DATA: u32 = 100110u32; +pub const GLU_TESS_END: u32 = 100102u32; +pub const GLU_TESS_END_DATA: u32 = 100108u32; +pub const GLU_TESS_ERROR: u32 = 100103u32; +pub const GLU_TESS_ERROR1: u32 = 100151u32; +pub const GLU_TESS_ERROR2: u32 = 100152u32; +pub const GLU_TESS_ERROR3: u32 = 100153u32; +pub const GLU_TESS_ERROR4: u32 = 100154u32; +pub const GLU_TESS_ERROR5: u32 = 100155u32; +pub const GLU_TESS_ERROR6: u32 = 100156u32; +pub const GLU_TESS_ERROR7: u32 = 100157u32; +pub const GLU_TESS_ERROR8: u32 = 100158u32; +pub const GLU_TESS_ERROR_DATA: u32 = 100109u32; +pub const GLU_TESS_MISSING_BEGIN_CONTOUR: u32 = 100152u32; +pub const GLU_TESS_MISSING_BEGIN_POLYGON: u32 = 100151u32; +pub const GLU_TESS_MISSING_END_CONTOUR: u32 = 100154u32; +pub const GLU_TESS_MISSING_END_POLYGON: u32 = 100153u32; +pub const GLU_TESS_NEED_COMBINE_CALLBACK: u32 = 100156u32; +pub const GLU_TESS_TOLERANCE: u32 = 100142u32; +pub const GLU_TESS_VERTEX: u32 = 100101u32; +pub const GLU_TESS_VERTEX_DATA: u32 = 100107u32; +pub const GLU_TESS_WINDING_ABS_GEQ_TWO: u32 = 100134u32; +pub const GLU_TESS_WINDING_NEGATIVE: u32 = 100133u32; +pub const GLU_TESS_WINDING_NONZERO: u32 = 100131u32; +pub const GLU_TESS_WINDING_ODD: u32 = 100130u32; +pub const GLU_TESS_WINDING_POSITIVE: u32 = 100132u32; +pub const GLU_TESS_WINDING_RULE: u32 = 100140u32; +pub const GLU_TRUE: u32 = 1u32; +pub const GLU_UNKNOWN: u32 = 100124u32; +pub const GLU_U_STEP: u32 = 100206u32; +pub const GLU_VERSION: u32 = 100800u32; +pub const GLU_VERSION_1_1: u32 = 1u32; +pub const GLU_VERSION_1_2: u32 = 1u32; +pub const GLU_VERTEX: u32 = 100101u32; +pub const GLU_V_STEP: u32 = 100207u32; +pub const GL_2D: u32 = 1536u32; +pub const GL_2_BYTES: u32 = 5127u32; +pub const GL_3D: u32 = 1537u32; +pub const GL_3D_COLOR: u32 = 1538u32; +pub const GL_3D_COLOR_TEXTURE: u32 = 1539u32; +pub const GL_3_BYTES: u32 = 5128u32; +pub const GL_4D_COLOR_TEXTURE: u32 = 1540u32; +pub const GL_4_BYTES: u32 = 5129u32; +pub const GL_ACCUM: u32 = 256u32; +pub const GL_ACCUM_ALPHA_BITS: u32 = 3419u32; +pub const GL_ACCUM_BLUE_BITS: u32 = 3418u32; +pub const GL_ACCUM_BUFFER_BIT: u32 = 512u32; +pub const GL_ACCUM_CLEAR_VALUE: u32 = 2944u32; +pub const GL_ACCUM_GREEN_BITS: u32 = 3417u32; +pub const GL_ACCUM_RED_BITS: u32 = 3416u32; +pub const GL_ADD: u32 = 260u32; +pub const GL_ALL_ATTRIB_BITS: u32 = 1048575u32; +pub const GL_ALPHA: u32 = 6406u32; +pub const GL_ALPHA12: u32 = 32829u32; +pub const GL_ALPHA16: u32 = 32830u32; +pub const GL_ALPHA4: u32 = 32827u32; +pub const GL_ALPHA8: u32 = 32828u32; +pub const GL_ALPHA_BIAS: u32 = 3357u32; +pub const GL_ALPHA_BITS: u32 = 3413u32; +pub const GL_ALPHA_SCALE: u32 = 3356u32; +pub const GL_ALPHA_TEST: u32 = 3008u32; +pub const GL_ALPHA_TEST_FUNC: u32 = 3009u32; +pub const GL_ALPHA_TEST_REF: u32 = 3010u32; +pub const GL_ALWAYS: u32 = 519u32; +pub const GL_AMBIENT: u32 = 4608u32; +pub const GL_AMBIENT_AND_DIFFUSE: u32 = 5634u32; +pub const GL_AND: u32 = 5377u32; +pub const GL_AND_INVERTED: u32 = 5380u32; +pub const GL_AND_REVERSE: u32 = 5378u32; +pub const GL_ATTRIB_STACK_DEPTH: u32 = 2992u32; +pub const GL_AUTO_NORMAL: u32 = 3456u32; +pub const GL_AUX0: u32 = 1033u32; +pub const GL_AUX1: u32 = 1034u32; +pub const GL_AUX2: u32 = 1035u32; +pub const GL_AUX3: u32 = 1036u32; +pub const GL_AUX_BUFFERS: u32 = 3072u32; +pub const GL_BACK: u32 = 1029u32; +pub const GL_BACK_LEFT: u32 = 1026u32; +pub const GL_BACK_RIGHT: u32 = 1027u32; +pub const GL_BGRA_EXT: u32 = 32993u32; +pub const GL_BGR_EXT: u32 = 32992u32; +pub const GL_BITMAP: u32 = 6656u32; +pub const GL_BITMAP_TOKEN: u32 = 1796u32; +pub const GL_BLEND: u32 = 3042u32; +pub const GL_BLEND_DST: u32 = 3040u32; +pub const GL_BLEND_SRC: u32 = 3041u32; +pub const GL_BLUE: u32 = 6405u32; +pub const GL_BLUE_BIAS: u32 = 3355u32; +pub const GL_BLUE_BITS: u32 = 3412u32; +pub const GL_BLUE_SCALE: u32 = 3354u32; +pub const GL_BYTE: u32 = 5120u32; +pub const GL_C3F_V3F: u32 = 10788u32; +pub const GL_C4F_N3F_V3F: u32 = 10790u32; +pub const GL_C4UB_V2F: u32 = 10786u32; +pub const GL_C4UB_V3F: u32 = 10787u32; +pub const GL_CCW: u32 = 2305u32; +pub const GL_CLAMP: u32 = 10496u32; +pub const GL_CLEAR: u32 = 5376u32; +pub const GL_CLIENT_ALL_ATTRIB_BITS: u32 = 4294967295u32; +pub const GL_CLIENT_ATTRIB_STACK_DEPTH: u32 = 2993u32; +pub const GL_CLIENT_PIXEL_STORE_BIT: u32 = 1u32; +pub const GL_CLIENT_VERTEX_ARRAY_BIT: u32 = 2u32; +pub const GL_CLIP_PLANE0: u32 = 12288u32; +pub const GL_CLIP_PLANE1: u32 = 12289u32; +pub const GL_CLIP_PLANE2: u32 = 12290u32; +pub const GL_CLIP_PLANE3: u32 = 12291u32; +pub const GL_CLIP_PLANE4: u32 = 12292u32; +pub const GL_CLIP_PLANE5: u32 = 12293u32; +pub const GL_COEFF: u32 = 2560u32; +pub const GL_COLOR: u32 = 6144u32; +pub const GL_COLOR_ARRAY: u32 = 32886u32; +pub const GL_COLOR_ARRAY_COUNT_EXT: u32 = 32900u32; +pub const GL_COLOR_ARRAY_EXT: u32 = 32886u32; +pub const GL_COLOR_ARRAY_POINTER: u32 = 32912u32; +pub const GL_COLOR_ARRAY_POINTER_EXT: u32 = 32912u32; +pub const GL_COLOR_ARRAY_SIZE: u32 = 32897u32; +pub const GL_COLOR_ARRAY_SIZE_EXT: u32 = 32897u32; +pub const GL_COLOR_ARRAY_STRIDE: u32 = 32899u32; +pub const GL_COLOR_ARRAY_STRIDE_EXT: u32 = 32899u32; +pub const GL_COLOR_ARRAY_TYPE: u32 = 32898u32; +pub const GL_COLOR_ARRAY_TYPE_EXT: u32 = 32898u32; +pub const GL_COLOR_BUFFER_BIT: u32 = 16384u32; +pub const GL_COLOR_CLEAR_VALUE: u32 = 3106u32; +pub const GL_COLOR_INDEX: u32 = 6400u32; +pub const GL_COLOR_INDEX12_EXT: u32 = 32998u32; +pub const GL_COLOR_INDEX16_EXT: u32 = 32999u32; +pub const GL_COLOR_INDEX1_EXT: u32 = 32994u32; +pub const GL_COLOR_INDEX2_EXT: u32 = 32995u32; +pub const GL_COLOR_INDEX4_EXT: u32 = 32996u32; +pub const GL_COLOR_INDEX8_EXT: u32 = 32997u32; +pub const GL_COLOR_INDEXES: u32 = 5635u32; +pub const GL_COLOR_LOGIC_OP: u32 = 3058u32; +pub const GL_COLOR_MATERIAL: u32 = 2903u32; +pub const GL_COLOR_MATERIAL_FACE: u32 = 2901u32; +pub const GL_COLOR_MATERIAL_PARAMETER: u32 = 2902u32; +pub const GL_COLOR_TABLE_ALPHA_SIZE_EXT: u32 = 32989u32; +pub const GL_COLOR_TABLE_BLUE_SIZE_EXT: u32 = 32988u32; +pub const GL_COLOR_TABLE_FORMAT_EXT: u32 = 32984u32; +pub const GL_COLOR_TABLE_GREEN_SIZE_EXT: u32 = 32987u32; +pub const GL_COLOR_TABLE_INTENSITY_SIZE_EXT: u32 = 32991u32; +pub const GL_COLOR_TABLE_LUMINANCE_SIZE_EXT: u32 = 32990u32; +pub const GL_COLOR_TABLE_RED_SIZE_EXT: u32 = 32986u32; +pub const GL_COLOR_TABLE_WIDTH_EXT: u32 = 32985u32; +pub const GL_COLOR_WRITEMASK: u32 = 3107u32; +pub const GL_COMPILE: u32 = 4864u32; +pub const GL_COMPILE_AND_EXECUTE: u32 = 4865u32; +pub const GL_CONSTANT_ATTENUATION: u32 = 4615u32; +pub const GL_COPY: u32 = 5379u32; +pub const GL_COPY_INVERTED: u32 = 5388u32; +pub const GL_COPY_PIXEL_TOKEN: u32 = 1798u32; +pub const GL_CULL_FACE: u32 = 2884u32; +pub const GL_CULL_FACE_MODE: u32 = 2885u32; +pub const GL_CURRENT_BIT: u32 = 1u32; +pub const GL_CURRENT_COLOR: u32 = 2816u32; +pub const GL_CURRENT_INDEX: u32 = 2817u32; +pub const GL_CURRENT_NORMAL: u32 = 2818u32; +pub const GL_CURRENT_RASTER_COLOR: u32 = 2820u32; +pub const GL_CURRENT_RASTER_DISTANCE: u32 = 2825u32; +pub const GL_CURRENT_RASTER_INDEX: u32 = 2821u32; +pub const GL_CURRENT_RASTER_POSITION: u32 = 2823u32; +pub const GL_CURRENT_RASTER_POSITION_VALID: u32 = 2824u32; +pub const GL_CURRENT_RASTER_TEXTURE_COORDS: u32 = 2822u32; +pub const GL_CURRENT_TEXTURE_COORDS: u32 = 2819u32; +pub const GL_CW: u32 = 2304u32; +pub const GL_DECAL: u32 = 8449u32; +pub const GL_DECR: u32 = 7683u32; +pub const GL_DEPTH: u32 = 6145u32; +pub const GL_DEPTH_BIAS: u32 = 3359u32; +pub const GL_DEPTH_BITS: u32 = 3414u32; +pub const GL_DEPTH_BUFFER_BIT: u32 = 256u32; +pub const GL_DEPTH_CLEAR_VALUE: u32 = 2931u32; +pub const GL_DEPTH_COMPONENT: u32 = 6402u32; +pub const GL_DEPTH_FUNC: u32 = 2932u32; +pub const GL_DEPTH_RANGE: u32 = 2928u32; +pub const GL_DEPTH_SCALE: u32 = 3358u32; +pub const GL_DEPTH_TEST: u32 = 2929u32; +pub const GL_DEPTH_WRITEMASK: u32 = 2930u32; +pub const GL_DIFFUSE: u32 = 4609u32; +pub const GL_DITHER: u32 = 3024u32; +pub const GL_DOMAIN: u32 = 2562u32; +pub const GL_DONT_CARE: u32 = 4352u32; +pub const GL_DOUBLE: u32 = 5130u32; +pub const GL_DOUBLEBUFFER: u32 = 3122u32; +pub const GL_DOUBLE_EXT: u32 = 5130u32; +pub const GL_DRAW_BUFFER: u32 = 3073u32; +pub const GL_DRAW_PIXEL_TOKEN: u32 = 1797u32; +pub const GL_DST_ALPHA: u32 = 772u32; +pub const GL_DST_COLOR: u32 = 774u32; +pub const GL_EDGE_FLAG: u32 = 2883u32; +pub const GL_EDGE_FLAG_ARRAY: u32 = 32889u32; +pub const GL_EDGE_FLAG_ARRAY_COUNT_EXT: u32 = 32909u32; +pub const GL_EDGE_FLAG_ARRAY_EXT: u32 = 32889u32; +pub const GL_EDGE_FLAG_ARRAY_POINTER: u32 = 32915u32; +pub const GL_EDGE_FLAG_ARRAY_POINTER_EXT: u32 = 32915u32; +pub const GL_EDGE_FLAG_ARRAY_STRIDE: u32 = 32908u32; +pub const GL_EDGE_FLAG_ARRAY_STRIDE_EXT: u32 = 32908u32; +pub const GL_EMISSION: u32 = 5632u32; +pub const GL_ENABLE_BIT: u32 = 8192u32; +pub const GL_EQUAL: u32 = 514u32; +pub const GL_EQUIV: u32 = 5385u32; +pub const GL_EVAL_BIT: u32 = 65536u32; +pub const GL_EXP: u32 = 2048u32; +pub const GL_EXP2: u32 = 2049u32; +pub const GL_EXTENSIONS: u32 = 7939u32; +pub const GL_EXT_bgra: u32 = 1u32; +pub const GL_EXT_paletted_texture: u32 = 1u32; +pub const GL_EXT_vertex_array: u32 = 1u32; +pub const GL_EYE_LINEAR: u32 = 9216u32; +pub const GL_EYE_PLANE: u32 = 9474u32; +pub const GL_FALSE: u32 = 0u32; +pub const GL_FASTEST: u32 = 4353u32; +pub const GL_FEEDBACK: u32 = 7169u32; +pub const GL_FEEDBACK_BUFFER_POINTER: u32 = 3568u32; +pub const GL_FEEDBACK_BUFFER_SIZE: u32 = 3569u32; +pub const GL_FEEDBACK_BUFFER_TYPE: u32 = 3570u32; +pub const GL_FILL: u32 = 6914u32; +pub const GL_FLAT: u32 = 7424u32; +pub const GL_FLOAT: u32 = 5126u32; +pub const GL_FOG: u32 = 2912u32; +pub const GL_FOG_BIT: u32 = 128u32; +pub const GL_FOG_COLOR: u32 = 2918u32; +pub const GL_FOG_DENSITY: u32 = 2914u32; +pub const GL_FOG_END: u32 = 2916u32; +pub const GL_FOG_HINT: u32 = 3156u32; +pub const GL_FOG_INDEX: u32 = 2913u32; +pub const GL_FOG_MODE: u32 = 2917u32; +pub const GL_FOG_SPECULAR_TEXTURE_WIN: u32 = 33004u32; +pub const GL_FOG_START: u32 = 2915u32; +pub const GL_FRONT: u32 = 1028u32; +pub const GL_FRONT_AND_BACK: u32 = 1032u32; +pub const GL_FRONT_FACE: u32 = 2886u32; +pub const GL_FRONT_LEFT: u32 = 1024u32; +pub const GL_FRONT_RIGHT: u32 = 1025u32; +pub const GL_GEQUAL: u32 = 518u32; +pub const GL_GREATER: u32 = 516u32; +pub const GL_GREEN: u32 = 6404u32; +pub const GL_GREEN_BIAS: u32 = 3353u32; +pub const GL_GREEN_BITS: u32 = 3411u32; +pub const GL_GREEN_SCALE: u32 = 3352u32; +pub const GL_HINT_BIT: u32 = 32768u32; +pub const GL_INCR: u32 = 7682u32; +pub const GL_INDEX_ARRAY: u32 = 32887u32; +pub const GL_INDEX_ARRAY_COUNT_EXT: u32 = 32903u32; +pub const GL_INDEX_ARRAY_EXT: u32 = 32887u32; +pub const GL_INDEX_ARRAY_POINTER: u32 = 32913u32; +pub const GL_INDEX_ARRAY_POINTER_EXT: u32 = 32913u32; +pub const GL_INDEX_ARRAY_STRIDE: u32 = 32902u32; +pub const GL_INDEX_ARRAY_STRIDE_EXT: u32 = 32902u32; +pub const GL_INDEX_ARRAY_TYPE: u32 = 32901u32; +pub const GL_INDEX_ARRAY_TYPE_EXT: u32 = 32901u32; +pub const GL_INDEX_BITS: u32 = 3409u32; +pub const GL_INDEX_CLEAR_VALUE: u32 = 3104u32; +pub const GL_INDEX_LOGIC_OP: u32 = 3057u32; +pub const GL_INDEX_MODE: u32 = 3120u32; +pub const GL_INDEX_OFFSET: u32 = 3347u32; +pub const GL_INDEX_SHIFT: u32 = 3346u32; +pub const GL_INDEX_WRITEMASK: u32 = 3105u32; +pub const GL_INT: u32 = 5124u32; +pub const GL_INTENSITY: u32 = 32841u32; +pub const GL_INTENSITY12: u32 = 32844u32; +pub const GL_INTENSITY16: u32 = 32845u32; +pub const GL_INTENSITY4: u32 = 32842u32; +pub const GL_INTENSITY8: u32 = 32843u32; +pub const GL_INVALID_ENUM: u32 = 1280u32; +pub const GL_INVALID_OPERATION: u32 = 1282u32; +pub const GL_INVALID_VALUE: u32 = 1281u32; +pub const GL_INVERT: u32 = 5386u32; +pub const GL_KEEP: u32 = 7680u32; +pub const GL_LEFT: u32 = 1030u32; +pub const GL_LEQUAL: u32 = 515u32; +pub const GL_LESS: u32 = 513u32; +pub const GL_LIGHT0: u32 = 16384u32; +pub const GL_LIGHT1: u32 = 16385u32; +pub const GL_LIGHT2: u32 = 16386u32; +pub const GL_LIGHT3: u32 = 16387u32; +pub const GL_LIGHT4: u32 = 16388u32; +pub const GL_LIGHT5: u32 = 16389u32; +pub const GL_LIGHT6: u32 = 16390u32; +pub const GL_LIGHT7: u32 = 16391u32; +pub const GL_LIGHTING: u32 = 2896u32; +pub const GL_LIGHTING_BIT: u32 = 64u32; +pub const GL_LIGHT_MODEL_AMBIENT: u32 = 2899u32; +pub const GL_LIGHT_MODEL_LOCAL_VIEWER: u32 = 2897u32; +pub const GL_LIGHT_MODEL_TWO_SIDE: u32 = 2898u32; +pub const GL_LINE: u32 = 6913u32; +pub const GL_LINEAR: u32 = 9729u32; +pub const GL_LINEAR_ATTENUATION: u32 = 4616u32; +pub const GL_LINEAR_MIPMAP_LINEAR: u32 = 9987u32; +pub const GL_LINEAR_MIPMAP_NEAREST: u32 = 9985u32; +pub const GL_LINES: u32 = 1u32; +pub const GL_LINE_BIT: u32 = 4u32; +pub const GL_LINE_LOOP: u32 = 2u32; +pub const GL_LINE_RESET_TOKEN: u32 = 1799u32; +pub const GL_LINE_SMOOTH: u32 = 2848u32; +pub const GL_LINE_SMOOTH_HINT: u32 = 3154u32; +pub const GL_LINE_STIPPLE: u32 = 2852u32; +pub const GL_LINE_STIPPLE_PATTERN: u32 = 2853u32; +pub const GL_LINE_STIPPLE_REPEAT: u32 = 2854u32; +pub const GL_LINE_STRIP: u32 = 3u32; +pub const GL_LINE_TOKEN: u32 = 1794u32; +pub const GL_LINE_WIDTH: u32 = 2849u32; +pub const GL_LINE_WIDTH_GRANULARITY: u32 = 2851u32; +pub const GL_LINE_WIDTH_RANGE: u32 = 2850u32; +pub const GL_LIST_BASE: u32 = 2866u32; +pub const GL_LIST_BIT: u32 = 131072u32; +pub const GL_LIST_INDEX: u32 = 2867u32; +pub const GL_LIST_MODE: u32 = 2864u32; +pub const GL_LOAD: u32 = 257u32; +pub const GL_LOGIC_OP: u32 = 3057u32; +pub const GL_LOGIC_OP_MODE: u32 = 3056u32; +pub const GL_LUMINANCE: u32 = 6409u32; +pub const GL_LUMINANCE12: u32 = 32833u32; +pub const GL_LUMINANCE12_ALPHA12: u32 = 32839u32; +pub const GL_LUMINANCE12_ALPHA4: u32 = 32838u32; +pub const GL_LUMINANCE16: u32 = 32834u32; +pub const GL_LUMINANCE16_ALPHA16: u32 = 32840u32; +pub const GL_LUMINANCE4: u32 = 32831u32; +pub const GL_LUMINANCE4_ALPHA4: u32 = 32835u32; +pub const GL_LUMINANCE6_ALPHA2: u32 = 32836u32; +pub const GL_LUMINANCE8: u32 = 32832u32; +pub const GL_LUMINANCE8_ALPHA8: u32 = 32837u32; +pub const GL_LUMINANCE_ALPHA: u32 = 6410u32; +pub const GL_MAP1_COLOR_4: u32 = 3472u32; +pub const GL_MAP1_GRID_DOMAIN: u32 = 3536u32; +pub const GL_MAP1_GRID_SEGMENTS: u32 = 3537u32; +pub const GL_MAP1_INDEX: u32 = 3473u32; +pub const GL_MAP1_NORMAL: u32 = 3474u32; +pub const GL_MAP1_TEXTURE_COORD_1: u32 = 3475u32; +pub const GL_MAP1_TEXTURE_COORD_2: u32 = 3476u32; +pub const GL_MAP1_TEXTURE_COORD_3: u32 = 3477u32; +pub const GL_MAP1_TEXTURE_COORD_4: u32 = 3478u32; +pub const GL_MAP1_VERTEX_3: u32 = 3479u32; +pub const GL_MAP1_VERTEX_4: u32 = 3480u32; +pub const GL_MAP2_COLOR_4: u32 = 3504u32; +pub const GL_MAP2_GRID_DOMAIN: u32 = 3538u32; +pub const GL_MAP2_GRID_SEGMENTS: u32 = 3539u32; +pub const GL_MAP2_INDEX: u32 = 3505u32; +pub const GL_MAP2_NORMAL: u32 = 3506u32; +pub const GL_MAP2_TEXTURE_COORD_1: u32 = 3507u32; +pub const GL_MAP2_TEXTURE_COORD_2: u32 = 3508u32; +pub const GL_MAP2_TEXTURE_COORD_3: u32 = 3509u32; +pub const GL_MAP2_TEXTURE_COORD_4: u32 = 3510u32; +pub const GL_MAP2_VERTEX_3: u32 = 3511u32; +pub const GL_MAP2_VERTEX_4: u32 = 3512u32; +pub const GL_MAP_COLOR: u32 = 3344u32; +pub const GL_MAP_STENCIL: u32 = 3345u32; +pub const GL_MATRIX_MODE: u32 = 2976u32; +pub const GL_MAX_ATTRIB_STACK_DEPTH: u32 = 3381u32; +pub const GL_MAX_CLIENT_ATTRIB_STACK_DEPTH: u32 = 3387u32; +pub const GL_MAX_CLIP_PLANES: u32 = 3378u32; +pub const GL_MAX_ELEMENTS_INDICES_WIN: u32 = 33001u32; +pub const GL_MAX_ELEMENTS_VERTICES_WIN: u32 = 33000u32; +pub const GL_MAX_EVAL_ORDER: u32 = 3376u32; +pub const GL_MAX_LIGHTS: u32 = 3377u32; +pub const GL_MAX_LIST_NESTING: u32 = 2865u32; +pub const GL_MAX_MODELVIEW_STACK_DEPTH: u32 = 3382u32; +pub const GL_MAX_NAME_STACK_DEPTH: u32 = 3383u32; +pub const GL_MAX_PIXEL_MAP_TABLE: u32 = 3380u32; +pub const GL_MAX_PROJECTION_STACK_DEPTH: u32 = 3384u32; +pub const GL_MAX_TEXTURE_SIZE: u32 = 3379u32; +pub const GL_MAX_TEXTURE_STACK_DEPTH: u32 = 3385u32; +pub const GL_MAX_VIEWPORT_DIMS: u32 = 3386u32; +pub const GL_MODELVIEW: u32 = 5888u32; +pub const GL_MODELVIEW_MATRIX: u32 = 2982u32; +pub const GL_MODELVIEW_STACK_DEPTH: u32 = 2979u32; +pub const GL_MODULATE: u32 = 8448u32; +pub const GL_MULT: u32 = 259u32; +pub const GL_N3F_V3F: u32 = 10789u32; +pub const GL_NAME_STACK_DEPTH: u32 = 3440u32; +pub const GL_NAND: u32 = 5390u32; +pub const GL_NEAREST: u32 = 9728u32; +pub const GL_NEAREST_MIPMAP_LINEAR: u32 = 9986u32; +pub const GL_NEAREST_MIPMAP_NEAREST: u32 = 9984u32; +pub const GL_NEVER: u32 = 512u32; +pub const GL_NICEST: u32 = 4354u32; +pub const GL_NONE: u32 = 0u32; +pub const GL_NOOP: u32 = 5381u32; +pub const GL_NOR: u32 = 5384u32; +pub const GL_NORMALIZE: u32 = 2977u32; +pub const GL_NORMAL_ARRAY: u32 = 32885u32; +pub const GL_NORMAL_ARRAY_COUNT_EXT: u32 = 32896u32; +pub const GL_NORMAL_ARRAY_EXT: u32 = 32885u32; +pub const GL_NORMAL_ARRAY_POINTER: u32 = 32911u32; +pub const GL_NORMAL_ARRAY_POINTER_EXT: u32 = 32911u32; +pub const GL_NORMAL_ARRAY_STRIDE: u32 = 32895u32; +pub const GL_NORMAL_ARRAY_STRIDE_EXT: u32 = 32895u32; +pub const GL_NORMAL_ARRAY_TYPE: u32 = 32894u32; +pub const GL_NORMAL_ARRAY_TYPE_EXT: u32 = 32894u32; +pub const GL_NOTEQUAL: u32 = 517u32; +pub const GL_NO_ERROR: u32 = 0u32; +pub const GL_OBJECT_LINEAR: u32 = 9217u32; +pub const GL_OBJECT_PLANE: u32 = 9473u32; +pub const GL_ONE: u32 = 1u32; +pub const GL_ONE_MINUS_DST_ALPHA: u32 = 773u32; +pub const GL_ONE_MINUS_DST_COLOR: u32 = 775u32; +pub const GL_ONE_MINUS_SRC_ALPHA: u32 = 771u32; +pub const GL_ONE_MINUS_SRC_COLOR: u32 = 769u32; +pub const GL_OR: u32 = 5383u32; +pub const GL_ORDER: u32 = 2561u32; +pub const GL_OR_INVERTED: u32 = 5389u32; +pub const GL_OR_REVERSE: u32 = 5387u32; +pub const GL_OUT_OF_MEMORY: u32 = 1285u32; +pub const GL_PACK_ALIGNMENT: u32 = 3333u32; +pub const GL_PACK_LSB_FIRST: u32 = 3329u32; +pub const GL_PACK_ROW_LENGTH: u32 = 3330u32; +pub const GL_PACK_SKIP_PIXELS: u32 = 3332u32; +pub const GL_PACK_SKIP_ROWS: u32 = 3331u32; +pub const GL_PACK_SWAP_BYTES: u32 = 3328u32; +pub const GL_PASS_THROUGH_TOKEN: u32 = 1792u32; +pub const GL_PERSPECTIVE_CORRECTION_HINT: u32 = 3152u32; +pub const GL_PHONG_HINT_WIN: u32 = 33003u32; +pub const GL_PHONG_WIN: u32 = 33002u32; +pub const GL_PIXEL_MAP_A_TO_A: u32 = 3193u32; +pub const GL_PIXEL_MAP_A_TO_A_SIZE: u32 = 3257u32; +pub const GL_PIXEL_MAP_B_TO_B: u32 = 3192u32; +pub const GL_PIXEL_MAP_B_TO_B_SIZE: u32 = 3256u32; +pub const GL_PIXEL_MAP_G_TO_G: u32 = 3191u32; +pub const GL_PIXEL_MAP_G_TO_G_SIZE: u32 = 3255u32; +pub const GL_PIXEL_MAP_I_TO_A: u32 = 3189u32; +pub const GL_PIXEL_MAP_I_TO_A_SIZE: u32 = 3253u32; +pub const GL_PIXEL_MAP_I_TO_B: u32 = 3188u32; +pub const GL_PIXEL_MAP_I_TO_B_SIZE: u32 = 3252u32; +pub const GL_PIXEL_MAP_I_TO_G: u32 = 3187u32; +pub const GL_PIXEL_MAP_I_TO_G_SIZE: u32 = 3251u32; +pub const GL_PIXEL_MAP_I_TO_I: u32 = 3184u32; +pub const GL_PIXEL_MAP_I_TO_I_SIZE: u32 = 3248u32; +pub const GL_PIXEL_MAP_I_TO_R: u32 = 3186u32; +pub const GL_PIXEL_MAP_I_TO_R_SIZE: u32 = 3250u32; +pub const GL_PIXEL_MAP_R_TO_R: u32 = 3190u32; +pub const GL_PIXEL_MAP_R_TO_R_SIZE: u32 = 3254u32; +pub const GL_PIXEL_MAP_S_TO_S: u32 = 3185u32; +pub const GL_PIXEL_MAP_S_TO_S_SIZE: u32 = 3249u32; +pub const GL_PIXEL_MODE_BIT: u32 = 32u32; +pub const GL_POINT: u32 = 6912u32; +pub const GL_POINTS: u32 = 0u32; +pub const GL_POINT_BIT: u32 = 2u32; +pub const GL_POINT_SIZE: u32 = 2833u32; +pub const GL_POINT_SIZE_GRANULARITY: u32 = 2835u32; +pub const GL_POINT_SIZE_RANGE: u32 = 2834u32; +pub const GL_POINT_SMOOTH: u32 = 2832u32; +pub const GL_POINT_SMOOTH_HINT: u32 = 3153u32; +pub const GL_POINT_TOKEN: u32 = 1793u32; +pub const GL_POLYGON: u32 = 9u32; +pub const GL_POLYGON_BIT: u32 = 8u32; +pub const GL_POLYGON_MODE: u32 = 2880u32; +pub const GL_POLYGON_OFFSET_FACTOR: u32 = 32824u32; +pub const GL_POLYGON_OFFSET_FILL: u32 = 32823u32; +pub const GL_POLYGON_OFFSET_LINE: u32 = 10754u32; +pub const GL_POLYGON_OFFSET_POINT: u32 = 10753u32; +pub const GL_POLYGON_OFFSET_UNITS: u32 = 10752u32; +pub const GL_POLYGON_SMOOTH: u32 = 2881u32; +pub const GL_POLYGON_SMOOTH_HINT: u32 = 3155u32; +pub const GL_POLYGON_STIPPLE: u32 = 2882u32; +pub const GL_POLYGON_STIPPLE_BIT: u32 = 16u32; +pub const GL_POLYGON_TOKEN: u32 = 1795u32; +pub const GL_POSITION: u32 = 4611u32; +pub const GL_PROJECTION: u32 = 5889u32; +pub const GL_PROJECTION_MATRIX: u32 = 2983u32; +pub const GL_PROJECTION_STACK_DEPTH: u32 = 2980u32; +pub const GL_PROXY_TEXTURE_1D: u32 = 32867u32; +pub const GL_PROXY_TEXTURE_2D: u32 = 32868u32; +pub const GL_Q: u32 = 8195u32; +pub const GL_QUADRATIC_ATTENUATION: u32 = 4617u32; +pub const GL_QUADS: u32 = 7u32; +pub const GL_QUAD_STRIP: u32 = 8u32; +pub const GL_R: u32 = 8194u32; +pub const GL_R3_G3_B2: u32 = 10768u32; +pub const GL_READ_BUFFER: u32 = 3074u32; +pub const GL_RED: u32 = 6403u32; +pub const GL_RED_BIAS: u32 = 3349u32; +pub const GL_RED_BITS: u32 = 3410u32; +pub const GL_RED_SCALE: u32 = 3348u32; +pub const GL_RENDER: u32 = 7168u32; +pub const GL_RENDERER: u32 = 7937u32; +pub const GL_RENDER_MODE: u32 = 3136u32; +pub const GL_REPEAT: u32 = 10497u32; +pub const GL_REPLACE: u32 = 7681u32; +pub const GL_RETURN: u32 = 258u32; +pub const GL_RGB: u32 = 6407u32; +pub const GL_RGB10: u32 = 32850u32; +pub const GL_RGB10_A2: u32 = 32857u32; +pub const GL_RGB12: u32 = 32851u32; +pub const GL_RGB16: u32 = 32852u32; +pub const GL_RGB4: u32 = 32847u32; +pub const GL_RGB5: u32 = 32848u32; +pub const GL_RGB5_A1: u32 = 32855u32; +pub const GL_RGB8: u32 = 32849u32; +pub const GL_RGBA: u32 = 6408u32; +pub const GL_RGBA12: u32 = 32858u32; +pub const GL_RGBA16: u32 = 32859u32; +pub const GL_RGBA2: u32 = 32853u32; +pub const GL_RGBA4: u32 = 32854u32; +pub const GL_RGBA8: u32 = 32856u32; +pub const GL_RGBA_MODE: u32 = 3121u32; +pub const GL_RIGHT: u32 = 1031u32; +pub const GL_S: u32 = 8192u32; +pub const GL_SCISSOR_BIT: u32 = 524288u32; +pub const GL_SCISSOR_BOX: u32 = 3088u32; +pub const GL_SCISSOR_TEST: u32 = 3089u32; +pub const GL_SELECT: u32 = 7170u32; +pub const GL_SELECTION_BUFFER_POINTER: u32 = 3571u32; +pub const GL_SELECTION_BUFFER_SIZE: u32 = 3572u32; +pub const GL_SET: u32 = 5391u32; +pub const GL_SHADE_MODEL: u32 = 2900u32; +pub const GL_SHININESS: u32 = 5633u32; +pub const GL_SHORT: u32 = 5122u32; +pub const GL_SMOOTH: u32 = 7425u32; +pub const GL_SPECULAR: u32 = 4610u32; +pub const GL_SPHERE_MAP: u32 = 9218u32; +pub const GL_SPOT_CUTOFF: u32 = 4614u32; +pub const GL_SPOT_DIRECTION: u32 = 4612u32; +pub const GL_SPOT_EXPONENT: u32 = 4613u32; +pub const GL_SRC_ALPHA: u32 = 770u32; +pub const GL_SRC_ALPHA_SATURATE: u32 = 776u32; +pub const GL_SRC_COLOR: u32 = 768u32; +pub const GL_STACK_OVERFLOW: u32 = 1283u32; +pub const GL_STACK_UNDERFLOW: u32 = 1284u32; +pub const GL_STENCIL: u32 = 6146u32; +pub const GL_STENCIL_BITS: u32 = 3415u32; +pub const GL_STENCIL_BUFFER_BIT: u32 = 1024u32; +pub const GL_STENCIL_CLEAR_VALUE: u32 = 2961u32; +pub const GL_STENCIL_FAIL: u32 = 2964u32; +pub const GL_STENCIL_FUNC: u32 = 2962u32; +pub const GL_STENCIL_INDEX: u32 = 6401u32; +pub const GL_STENCIL_PASS_DEPTH_FAIL: u32 = 2965u32; +pub const GL_STENCIL_PASS_DEPTH_PASS: u32 = 2966u32; +pub const GL_STENCIL_REF: u32 = 2967u32; +pub const GL_STENCIL_TEST: u32 = 2960u32; +pub const GL_STENCIL_VALUE_MASK: u32 = 2963u32; +pub const GL_STENCIL_WRITEMASK: u32 = 2968u32; +pub const GL_STEREO: u32 = 3123u32; +pub const GL_SUBPIXEL_BITS: u32 = 3408u32; +pub const GL_T: u32 = 8193u32; +pub const GL_T2F_C3F_V3F: u32 = 10794u32; +pub const GL_T2F_C4F_N3F_V3F: u32 = 10796u32; +pub const GL_T2F_C4UB_V3F: u32 = 10793u32; +pub const GL_T2F_N3F_V3F: u32 = 10795u32; +pub const GL_T2F_V3F: u32 = 10791u32; +pub const GL_T4F_C4F_N3F_V4F: u32 = 10797u32; +pub const GL_T4F_V4F: u32 = 10792u32; +pub const GL_TEXTURE: u32 = 5890u32; +pub const GL_TEXTURE_1D: u32 = 3552u32; +pub const GL_TEXTURE_2D: u32 = 3553u32; +pub const GL_TEXTURE_ALPHA_SIZE: u32 = 32863u32; +pub const GL_TEXTURE_BINDING_1D: u32 = 32872u32; +pub const GL_TEXTURE_BINDING_2D: u32 = 32873u32; +pub const GL_TEXTURE_BIT: u32 = 262144u32; +pub const GL_TEXTURE_BLUE_SIZE: u32 = 32862u32; +pub const GL_TEXTURE_BORDER: u32 = 4101u32; +pub const GL_TEXTURE_BORDER_COLOR: u32 = 4100u32; +pub const GL_TEXTURE_COMPONENTS: u32 = 4099u32; +pub const GL_TEXTURE_COORD_ARRAY: u32 = 32888u32; +pub const GL_TEXTURE_COORD_ARRAY_COUNT_EXT: u32 = 32907u32; +pub const GL_TEXTURE_COORD_ARRAY_EXT: u32 = 32888u32; +pub const GL_TEXTURE_COORD_ARRAY_POINTER: u32 = 32914u32; +pub const GL_TEXTURE_COORD_ARRAY_POINTER_EXT: u32 = 32914u32; +pub const GL_TEXTURE_COORD_ARRAY_SIZE: u32 = 32904u32; +pub const GL_TEXTURE_COORD_ARRAY_SIZE_EXT: u32 = 32904u32; +pub const GL_TEXTURE_COORD_ARRAY_STRIDE: u32 = 32906u32; +pub const GL_TEXTURE_COORD_ARRAY_STRIDE_EXT: u32 = 32906u32; +pub const GL_TEXTURE_COORD_ARRAY_TYPE: u32 = 32905u32; +pub const GL_TEXTURE_COORD_ARRAY_TYPE_EXT: u32 = 32905u32; +pub const GL_TEXTURE_ENV: u32 = 8960u32; +pub const GL_TEXTURE_ENV_COLOR: u32 = 8705u32; +pub const GL_TEXTURE_ENV_MODE: u32 = 8704u32; +pub const GL_TEXTURE_GEN_MODE: u32 = 9472u32; +pub const GL_TEXTURE_GEN_Q: u32 = 3171u32; +pub const GL_TEXTURE_GEN_R: u32 = 3170u32; +pub const GL_TEXTURE_GEN_S: u32 = 3168u32; +pub const GL_TEXTURE_GEN_T: u32 = 3169u32; +pub const GL_TEXTURE_GREEN_SIZE: u32 = 32861u32; +pub const GL_TEXTURE_HEIGHT: u32 = 4097u32; +pub const GL_TEXTURE_INTENSITY_SIZE: u32 = 32865u32; +pub const GL_TEXTURE_INTERNAL_FORMAT: u32 = 4099u32; +pub const GL_TEXTURE_LUMINANCE_SIZE: u32 = 32864u32; +pub const GL_TEXTURE_MAG_FILTER: u32 = 10240u32; +pub const GL_TEXTURE_MATRIX: u32 = 2984u32; +pub const GL_TEXTURE_MIN_FILTER: u32 = 10241u32; +pub const GL_TEXTURE_PRIORITY: u32 = 32870u32; +pub const GL_TEXTURE_RED_SIZE: u32 = 32860u32; +pub const GL_TEXTURE_RESIDENT: u32 = 32871u32; +pub const GL_TEXTURE_STACK_DEPTH: u32 = 2981u32; +pub const GL_TEXTURE_WIDTH: u32 = 4096u32; +pub const GL_TEXTURE_WRAP_S: u32 = 10242u32; +pub const GL_TEXTURE_WRAP_T: u32 = 10243u32; +pub const GL_TRANSFORM_BIT: u32 = 4096u32; +pub const GL_TRIANGLES: u32 = 4u32; +pub const GL_TRIANGLE_FAN: u32 = 6u32; +pub const GL_TRIANGLE_STRIP: u32 = 5u32; +pub const GL_TRUE: u32 = 1u32; +pub const GL_UNPACK_ALIGNMENT: u32 = 3317u32; +pub const GL_UNPACK_LSB_FIRST: u32 = 3313u32; +pub const GL_UNPACK_ROW_LENGTH: u32 = 3314u32; +pub const GL_UNPACK_SKIP_PIXELS: u32 = 3316u32; +pub const GL_UNPACK_SKIP_ROWS: u32 = 3315u32; +pub const GL_UNPACK_SWAP_BYTES: u32 = 3312u32; +pub const GL_UNSIGNED_BYTE: u32 = 5121u32; +pub const GL_UNSIGNED_INT: u32 = 5125u32; +pub const GL_UNSIGNED_SHORT: u32 = 5123u32; +pub const GL_V2F: u32 = 10784u32; +pub const GL_V3F: u32 = 10785u32; +pub const GL_VENDOR: u32 = 7936u32; +pub const GL_VERSION: u32 = 7938u32; +pub const GL_VERSION_1_1: u32 = 1u32; +pub const GL_VERTEX_ARRAY: u32 = 32884u32; +pub const GL_VERTEX_ARRAY_COUNT_EXT: u32 = 32893u32; +pub const GL_VERTEX_ARRAY_EXT: u32 = 32884u32; +pub const GL_VERTEX_ARRAY_POINTER: u32 = 32910u32; +pub const GL_VERTEX_ARRAY_POINTER_EXT: u32 = 32910u32; +pub const GL_VERTEX_ARRAY_SIZE: u32 = 32890u32; +pub const GL_VERTEX_ARRAY_SIZE_EXT: u32 = 32890u32; +pub const GL_VERTEX_ARRAY_STRIDE: u32 = 32892u32; +pub const GL_VERTEX_ARRAY_STRIDE_EXT: u32 = 32892u32; +pub const GL_VERTEX_ARRAY_TYPE: u32 = 32891u32; +pub const GL_VERTEX_ARRAY_TYPE_EXT: u32 = 32891u32; +pub const GL_VIEWPORT: u32 = 2978u32; +pub const GL_VIEWPORT_BIT: u32 = 2048u32; +pub const GL_WIN_draw_range_elements: u32 = 1u32; +pub const GL_WIN_swap_hint: u32 = 1u32; +pub const GL_XOR: u32 = 5382u32; +pub const GL_ZERO: u32 = 0u32; +pub const GL_ZOOM_X: u32 = 3350u32; +pub const GL_ZOOM_Y: u32 = 3351u32; +pub const PFD_DEPTH_DONTCARE: PFD_FLAGS = 536870912u32; +pub const PFD_DIRECT3D_ACCELERATED: PFD_FLAGS = 16384u32; +pub const PFD_DOUBLEBUFFER: PFD_FLAGS = 1u32; +pub const PFD_DOUBLEBUFFER_DONTCARE: PFD_FLAGS = 1073741824u32; +pub const PFD_DRAW_TO_BITMAP: PFD_FLAGS = 8u32; +pub const PFD_DRAW_TO_WINDOW: PFD_FLAGS = 4u32; +pub const PFD_GENERIC_ACCELERATED: PFD_FLAGS = 4096u32; +pub const PFD_GENERIC_FORMAT: PFD_FLAGS = 64u32; +pub const PFD_MAIN_PLANE: PFD_LAYER_TYPE = 0i8; +pub const PFD_NEED_PALETTE: PFD_FLAGS = 128u32; +pub const PFD_NEED_SYSTEM_PALETTE: PFD_FLAGS = 256u32; +pub const PFD_OVERLAY_PLANE: PFD_LAYER_TYPE = 1i8; +pub const PFD_STEREO: PFD_FLAGS = 2u32; +pub const PFD_STEREO_DONTCARE: PFD_FLAGS = 2147483648u32; +pub const PFD_SUPPORT_COMPOSITION: PFD_FLAGS = 32768u32; +pub const PFD_SUPPORT_DIRECTDRAW: PFD_FLAGS = 8192u32; +pub const PFD_SUPPORT_GDI: PFD_FLAGS = 16u32; +pub const PFD_SUPPORT_OPENGL: PFD_FLAGS = 32u32; +pub const PFD_SWAP_COPY: PFD_FLAGS = 1024u32; +pub const PFD_SWAP_EXCHANGE: PFD_FLAGS = 512u32; +pub const PFD_SWAP_LAYER_BUFFERS: PFD_FLAGS = 2048u32; +pub const PFD_TYPE_COLORINDEX: PFD_PIXEL_TYPE = 1u8; +pub const PFD_TYPE_RGBA: PFD_PIXEL_TYPE = 0u8; +pub const PFD_UNDERLAY_PLANE: PFD_LAYER_TYPE = -1i8; +pub type PFD_FLAGS = u32; +pub type PFD_LAYER_TYPE = i8; +pub type PFD_PIXEL_TYPE = u8; +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct EMRPIXELFORMAT { + pub emr: super::Gdi::EMR, + pub pfd: PIXELFORMATDESCRIPTOR, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for EMRPIXELFORMAT {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for EMRPIXELFORMAT { + fn clone(&self) -> Self { + *self + } +} +pub type GLUnurbs = isize; +pub type GLUquadric = isize; +pub type GLUtesselator = isize; +#[repr(C)] +pub struct GLYPHMETRICSFLOAT { + pub gmfBlackBoxX: f32, + pub gmfBlackBoxY: f32, + pub gmfptGlyphOrigin: POINTFLOAT, + pub gmfCellIncX: f32, + pub gmfCellIncY: f32, +} +impl ::core::marker::Copy for GLYPHMETRICSFLOAT {} +impl ::core::clone::Clone for GLYPHMETRICSFLOAT { + fn clone(&self) -> Self { + *self + } +} +pub type HGLRC = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LAYERPLANEDESCRIPTOR { + pub nSize: u16, + pub nVersion: u16, + pub dwFlags: u32, + pub iPixelType: u8, + pub cColorBits: u8, + pub cRedBits: u8, + pub cRedShift: u8, + pub cGreenBits: u8, + pub cGreenShift: u8, + pub cBlueBits: u8, + pub cBlueShift: u8, + pub cAlphaBits: u8, + pub cAlphaShift: u8, + pub cAccumBits: u8, + pub cAccumRedBits: u8, + pub cAccumGreenBits: u8, + pub cAccumBlueBits: u8, + pub cAccumAlphaBits: u8, + pub cDepthBits: u8, + pub cStencilBits: u8, + pub cAuxBuffers: u8, + pub iLayerPlane: u8, + pub bReserved: u8, + pub crTransparent: super::super::Foundation::COLORREF, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LAYERPLANEDESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LAYERPLANEDESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PIXELFORMATDESCRIPTOR { + pub nSize: u16, + pub nVersion: u16, + pub dwFlags: PFD_FLAGS, + pub iPixelType: PFD_PIXEL_TYPE, + pub cColorBits: u8, + pub cRedBits: u8, + pub cRedShift: u8, + pub cGreenBits: u8, + pub cGreenShift: u8, + pub cBlueBits: u8, + pub cBlueShift: u8, + pub cAlphaBits: u8, + pub cAlphaShift: u8, + pub cAccumBits: u8, + pub cAccumRedBits: u8, + pub cAccumGreenBits: u8, + pub cAccumBlueBits: u8, + pub cAccumAlphaBits: u8, + pub cDepthBits: u8, + pub cStencilBits: u8, + pub cAuxBuffers: u8, + pub iLayerType: u8, + pub bReserved: u8, + pub dwLayerMask: u32, + pub dwVisibleMask: u32, + pub dwDamageMask: u32, +} +impl ::core::marker::Copy for PIXELFORMATDESCRIPTOR {} +impl ::core::clone::Clone for PIXELFORMATDESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POINTFLOAT { + pub x: f32, + pub y: f32, +} +impl ::core::marker::Copy for POINTFLOAT {} +impl ::core::clone::Clone for POINTFLOAT { + fn clone(&self) -> Self { + *self + } +} +pub type GLUnurbsErrorProc = ::core::option::Option ()>; +pub type GLUquadricErrorProc = ::core::option::Option ()>; +pub type GLUtessBeginDataProc = ::core::option::Option ()>; +pub type GLUtessBeginProc = ::core::option::Option ()>; +pub type GLUtessCombineDataProc = ::core::option::Option ()>; +pub type GLUtessCombineProc = ::core::option::Option ()>; +pub type GLUtessEdgeFlagDataProc = ::core::option::Option ()>; +pub type GLUtessEdgeFlagProc = ::core::option::Option ()>; +pub type GLUtessEndDataProc = ::core::option::Option ()>; +pub type GLUtessEndProc = ::core::option::Option ()>; +pub type GLUtessErrorDataProc = ::core::option::Option ()>; +pub type GLUtessErrorProc = ::core::option::Option ()>; +pub type GLUtessVertexDataProc = ::core::option::Option ()>; +pub type GLUtessVertexProc = ::core::option::Option ()>; +pub type PFNGLADDSWAPHINTRECTWINPROC = ::core::option::Option ()>; +pub type PFNGLARRAYELEMENTARRAYEXTPROC = ::core::option::Option ()>; +pub type PFNGLARRAYELEMENTEXTPROC = ::core::option::Option ()>; +pub type PFNGLCOLORPOINTEREXTPROC = ::core::option::Option ()>; +pub type PFNGLCOLORSUBTABLEEXTPROC = ::core::option::Option ()>; +pub type PFNGLCOLORTABLEEXTPROC = ::core::option::Option ()>; +pub type PFNGLDRAWARRAYSEXTPROC = ::core::option::Option ()>; +pub type PFNGLDRAWRANGEELEMENTSWINPROC = ::core::option::Option ()>; +pub type PFNGLEDGEFLAGPOINTEREXTPROC = ::core::option::Option ()>; +pub type PFNGLGETCOLORTABLEEXTPROC = ::core::option::Option ()>; +pub type PFNGLGETCOLORTABLEPARAMETERFVEXTPROC = ::core::option::Option ()>; +pub type PFNGLGETCOLORTABLEPARAMETERIVEXTPROC = ::core::option::Option ()>; +pub type PFNGLGETPOINTERVEXTPROC = ::core::option::Option ()>; +pub type PFNGLINDEXPOINTEREXTPROC = ::core::option::Option ()>; +pub type PFNGLNORMALPOINTEREXTPROC = ::core::option::Option ()>; +pub type PFNGLTEXCOORDPOINTEREXTPROC = ::core::option::Option ()>; +pub type PFNGLVERTEXPOINTEREXTPROC = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Printing/PrintTicket/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Printing/PrintTicket/mod.rs new file mode 100644 index 000000000..8564163f7 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Printing/PrintTicket/mod.rs @@ -0,0 +1,34 @@ +#[cfg(feature = "Win32_Storage_Xps")] +::windows_targets::link!("prntvpt.dll" "system" #[doc = "Required features: `\"Win32_Storage_Xps\"`"] fn PTCloseProvider(hprovider : super::super::super::Storage::Xps:: HPTPROVIDER) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Storage_Xps", feature = "Win32_System_Com"))] +::windows_targets::link!("prntvpt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Storage_Xps\"`, `\"Win32_System_Com\"`"] fn PTConvertDevModeToPrintTicket(hprovider : super::super::super::Storage::Xps:: HPTPROVIDER, cbdevmode : u32, pdevmode : *const super::super::Gdi:: DEVMODEA, scope : EPrintTicketScope, pprintticket : super::super::super::System::Com:: IStream) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Storage_Xps", feature = "Win32_System_Com"))] +::windows_targets::link!("prntvpt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Storage_Xps\"`, `\"Win32_System_Com\"`"] fn PTConvertPrintTicketToDevMode(hprovider : super::super::super::Storage::Xps:: HPTPROVIDER, pprintticket : super::super::super::System::Com:: IStream, basedevmodetype : EDefaultDevmodeType, scope : EPrintTicketScope, pcbdevmode : *mut u32, ppdevmode : *mut *mut super::super::Gdi:: DEVMODEA, pbstrerrormessage : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Storage_Xps", feature = "Win32_System_Com"))] +::windows_targets::link!("prntvpt.dll" "system" #[doc = "Required features: `\"Win32_Storage_Xps\"`, `\"Win32_System_Com\"`"] fn PTGetPrintCapabilities(hprovider : super::super::super::Storage::Xps:: HPTPROVIDER, pprintticket : super::super::super::System::Com:: IStream, pcapabilities : super::super::super::System::Com:: IStream, pbstrerrormessage : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Storage_Xps", feature = "Win32_System_Com"))] +::windows_targets::link!("prntvpt.dll" "system" #[doc = "Required features: `\"Win32_Storage_Xps\"`, `\"Win32_System_Com\"`"] fn PTGetPrintDeviceCapabilities(hprovider : super::super::super::Storage::Xps:: HPTPROVIDER, pprintticket : super::super::super::System::Com:: IStream, pdevicecapabilities : super::super::super::System::Com:: IStream, pbstrerrormessage : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Storage_Xps", feature = "Win32_System_Com"))] +::windows_targets::link!("prntvpt.dll" "system" #[doc = "Required features: `\"Win32_Storage_Xps\"`, `\"Win32_System_Com\"`"] fn PTGetPrintDeviceResources(hprovider : super::super::super::Storage::Xps:: HPTPROVIDER, pszlocalename : ::windows_sys::core::PCWSTR, pprintticket : super::super::super::System::Com:: IStream, pdeviceresources : super::super::super::System::Com:: IStream, pbstrerrormessage : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Storage_Xps", feature = "Win32_System_Com"))] +::windows_targets::link!("prntvpt.dll" "system" #[doc = "Required features: `\"Win32_Storage_Xps\"`, `\"Win32_System_Com\"`"] fn PTMergeAndValidatePrintTicket(hprovider : super::super::super::Storage::Xps:: HPTPROVIDER, pbaseticket : super::super::super::System::Com:: IStream, pdeltaticket : super::super::super::System::Com:: IStream, scope : EPrintTicketScope, presultticket : super::super::super::System::Com:: IStream, pbstrerrormessage : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Storage_Xps")] +::windows_targets::link!("prntvpt.dll" "system" #[doc = "Required features: `\"Win32_Storage_Xps\"`"] fn PTOpenProvider(pszprintername : ::windows_sys::core::PCWSTR, dwversion : u32, phprovider : *mut super::super::super::Storage::Xps:: HPTPROVIDER) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Storage_Xps")] +::windows_targets::link!("prntvpt.dll" "system" #[doc = "Required features: `\"Win32_Storage_Xps\"`"] fn PTOpenProviderEx(pszprintername : ::windows_sys::core::PCWSTR, dwmaxversion : u32, dwprefversion : u32, phprovider : *mut super::super::super::Storage::Xps:: HPTPROVIDER, pusedversion : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("prntvpt.dll" "system" fn PTQuerySchemaVersionSupport(pszprintername : ::windows_sys::core::PCWSTR, pmaxversion : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("prntvpt.dll" "system" fn PTReleaseMemory(pbuffer : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +pub const E_DELTA_PRINTTICKET_FORMAT: u32 = 2147745797u32; +pub const E_PRINTCAPABILITIES_FORMAT: u32 = 2147745796u32; +pub const E_PRINTDEVICECAPABILITIES_FORMAT: u32 = 2147745798u32; +pub const E_PRINTTICKET_FORMAT: u32 = 2147745795u32; +pub const PRINTTICKET_ISTREAM_APIS: u32 = 1u32; +pub const S_PT_CONFLICT_RESOLVED: u32 = 262146u32; +pub const S_PT_NO_CONFLICT: u32 = 262145u32; +pub const kPTDocumentScope: EPrintTicketScope = 1i32; +pub const kPTJobScope: EPrintTicketScope = 2i32; +pub const kPTPageScope: EPrintTicketScope = 0i32; +pub const kPrinterDefaultDevmode: EDefaultDevmodeType = 1i32; +pub const kUserDefaultDevmode: EDefaultDevmodeType = 0i32; +pub type EDefaultDevmodeType = i32; +pub type EPrintTicketScope = i32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Printing/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Printing/mod.rs new file mode 100644 index 000000000..63116d467 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/Printing/mod.rs @@ -0,0 +1,5787 @@ +#[cfg(feature = "Win32_Graphics_Printing_PrintTicket")] +#[doc = "Required features: `\"Win32_Graphics_Printing_PrintTicket\"`"] +pub mod PrintTicket; +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AbortPrinter(hprinter : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddFormA(hprinter : super::super::Foundation:: HANDLE, level : u32, pform : *const u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddFormW(hprinter : super::super::Foundation:: HANDLE, level : u32, pform : *const u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddJobA(hprinter : super::super::Foundation:: HANDLE, level : u32, pdata : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddJobW(hprinter : super::super::Foundation:: HANDLE, level : u32, pdata : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddMonitorA(pname : ::windows_sys::core::PCSTR, level : u32, pmonitors : *const u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddMonitorW(pname : ::windows_sys::core::PCWSTR, level : u32, pmonitors : *const u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPortA(pname : ::windows_sys::core::PCSTR, hwnd : super::super::Foundation:: HWND, pmonitorname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPortW(pname : ::windows_sys::core::PCWSTR, hwnd : super::super::Foundation:: HWND, pmonitorname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrintDeviceObject(hprinter : super::super::Foundation:: HANDLE, phdeviceobject : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrintProcessorA(pname : ::windows_sys::core::PCSTR, penvironment : ::windows_sys::core::PCSTR, ppathname : ::windows_sys::core::PCSTR, pprintprocessorname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrintProcessorW(pname : ::windows_sys::core::PCWSTR, penvironment : ::windows_sys::core::PCWSTR, ppathname : ::windows_sys::core::PCWSTR, pprintprocessorname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrintProvidorA(pname : ::windows_sys::core::PCSTR, level : u32, pprovidorinfo : *const u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrintProvidorW(pname : ::windows_sys::core::PCWSTR, level : u32, pprovidorinfo : *const u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrinterA(pname : ::windows_sys::core::PCSTR, level : u32, pprinter : *const u8) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrinterConnection2A(hwnd : super::super::Foundation:: HWND, pszname : ::windows_sys::core::PCSTR, dwlevel : u32, pconnectioninfo : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrinterConnection2W(hwnd : super::super::Foundation:: HWND, pszname : ::windows_sys::core::PCWSTR, dwlevel : u32, pconnectioninfo : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrinterConnectionA(pname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrinterConnectionW(pname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrinterDriverA(pname : ::windows_sys::core::PCSTR, level : u32, pdriverinfo : *const u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrinterDriverExA(pname : ::windows_sys::core::PCSTR, level : u32, lpbdriverinfo : *const u8, dwfilecopyflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrinterDriverExW(pname : ::windows_sys::core::PCWSTR, level : u32, lpbdriverinfo : *const u8, dwfilecopyflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrinterDriverW(pname : ::windows_sys::core::PCWSTR, level : u32, pdriverinfo : *const u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddPrinterW(pname : ::windows_sys::core::PCWSTR, level : u32, pprinter : *const u8) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn AdvancedDocumentPropertiesA(hwnd : super::super::Foundation:: HWND, hprinter : super::super::Foundation:: HANDLE, pdevicename : ::windows_sys::core::PCSTR, pdevmodeoutput : *mut super::Gdi:: DEVMODEA, pdevmodeinput : *const super::Gdi:: DEVMODEA) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn AdvancedDocumentPropertiesW(hwnd : super::super::Foundation:: HWND, hprinter : super::super::Foundation:: HANDLE, pdevicename : ::windows_sys::core::PCWSTR, pdevmodeoutput : *mut super::Gdi:: DEVMODEW, pdevmodeinput : *const super::Gdi:: DEVMODEW) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppendPrinterNotifyInfoData(pinfodest : *const PRINTER_NOTIFY_INFO, pdatasrc : *const PRINTER_NOTIFY_INFO_DATA, fdwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CallRouterFindFirstPrinterChangeNotification(hprinterrpc : super::super::Foundation:: HANDLE, fdwfilterflags : u32, fdwoptions : u32, hnotify : super::super::Foundation:: HANDLE, pprinternotifyoptions : *const PRINTER_NOTIFY_OPTIONS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClosePrinter(hprinter : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseSpoolFileHandle(hprinter : super::super::Foundation:: HANDLE, hspoolfile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CommitSpoolData(hprinter : super::super::Foundation:: HANDLE, hspoolfile : super::super::Foundation:: HANDLE, cbcommit : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("compstui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CommonPropertySheetUIA(hwndowner : super::super::Foundation:: HWND, pfnpropsheetui : PFNPROPSHEETUI, lparam : super::super::Foundation:: LPARAM, presult : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("compstui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CommonPropertySheetUIW(hwndowner : super::super::Foundation:: HWND, pfnpropsheetui : PFNPROPSHEETUI, lparam : super::super::Foundation:: LPARAM, presult : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConfigurePortA(pname : ::windows_sys::core::PCSTR, hwnd : super::super::Foundation:: HWND, pportname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConfigurePortW(pname : ::windows_sys::core::PCWSTR, hwnd : super::super::Foundation:: HWND, pportname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConnectToPrinterDlg(hwnd : super::super::Foundation:: HWND, flags : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CorePrinterDriverInstalledA(pszserver : ::windows_sys::core::PCSTR, pszenvironment : ::windows_sys::core::PCSTR, coredriverguid : ::windows_sys::core::GUID, ftdriverdate : super::super::Foundation:: FILETIME, dwldriverversion : u64, pbdriverinstalled : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CorePrinterDriverInstalledW(pszserver : ::windows_sys::core::PCWSTR, pszenvironment : ::windows_sys::core::PCWSTR, coredriverguid : ::windows_sys::core::GUID, ftdriverdate : super::super::Foundation:: FILETIME, dwldriverversion : u64, pbdriverinstalled : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winspool.drv" "system" fn CreatePrintAsyncNotifyChannel(pszname : ::windows_sys::core::PCWSTR, pnotificationtype : *const ::windows_sys::core::GUID, euserfilter : PrintAsyncNotifyUserFilter, econversationstyle : PrintAsyncNotifyConversationStyle, pcallback : IPrintAsyncNotifyCallback, ppiasynchnotification : *mut IPrintAsyncNotifyChannel) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CreatePrinterIC(hprinter : super::super::Foundation:: HANDLE, pdevmode : *const super::Gdi:: DEVMODEW) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteFormA(hprinter : super::super::Foundation:: HANDLE, pformname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteFormW(hprinter : super::super::Foundation:: HANDLE, pformname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteJobNamedProperty(hprinter : super::super::Foundation:: HANDLE, jobid : u32, pszname : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteMonitorA(pname : ::windows_sys::core::PCSTR, penvironment : ::windows_sys::core::PCSTR, pmonitorname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteMonitorW(pname : ::windows_sys::core::PCWSTR, penvironment : ::windows_sys::core::PCWSTR, pmonitorname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePortA(pname : ::windows_sys::core::PCSTR, hwnd : super::super::Foundation:: HWND, pportname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePortW(pname : ::windows_sys::core::PCWSTR, hwnd : super::super::Foundation:: HWND, pportname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrintProcessorA(pname : ::windows_sys::core::PCSTR, penvironment : ::windows_sys::core::PCSTR, pprintprocessorname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrintProcessorW(pname : ::windows_sys::core::PCWSTR, penvironment : ::windows_sys::core::PCWSTR, pprintprocessorname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrintProvidorA(pname : ::windows_sys::core::PCSTR, penvironment : ::windows_sys::core::PCSTR, pprintprovidorname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrintProvidorW(pname : ::windows_sys::core::PCWSTR, penvironment : ::windows_sys::core::PCWSTR, pprintprovidorname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinter(hprinter : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinterConnectionA(pname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinterConnectionW(pname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinterDataA(hprinter : super::super::Foundation:: HANDLE, pvaluename : ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinterDataExA(hprinter : super::super::Foundation:: HANDLE, pkeyname : ::windows_sys::core::PCSTR, pvaluename : ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinterDataExW(hprinter : super::super::Foundation:: HANDLE, pkeyname : ::windows_sys::core::PCWSTR, pvaluename : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinterDataW(hprinter : super::super::Foundation:: HANDLE, pvaluename : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinterDriverA(pname : ::windows_sys::core::PCSTR, penvironment : ::windows_sys::core::PCSTR, pdrivername : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinterDriverExA(pname : ::windows_sys::core::PCSTR, penvironment : ::windows_sys::core::PCSTR, pdrivername : ::windows_sys::core::PCSTR, dwdeleteflag : u32, dwversionflag : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinterDriverExW(pname : ::windows_sys::core::PCWSTR, penvironment : ::windows_sys::core::PCWSTR, pdrivername : ::windows_sys::core::PCWSTR, dwdeleteflag : u32, dwversionflag : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winspool.drv" "system" fn DeletePrinterDriverPackageA(pszserver : ::windows_sys::core::PCSTR, pszinfpath : ::windows_sys::core::PCSTR, pszenvironment : ::windows_sys::core::PCSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winspool.drv" "system" fn DeletePrinterDriverPackageW(pszserver : ::windows_sys::core::PCWSTR, pszinfpath : ::windows_sys::core::PCWSTR, pszenvironment : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinterDriverW(pname : ::windows_sys::core::PCWSTR, penvironment : ::windows_sys::core::PCWSTR, pdrivername : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinterIC(hprinteric : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinterKeyA(hprinter : super::super::Foundation:: HANDLE, pkeyname : ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePrinterKeyW(hprinter : super::super::Foundation:: HANDLE, pkeyname : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DevQueryPrint(hprinter : super::super::Foundation:: HANDLE, pdevmode : *const super::Gdi:: DEVMODEA, presid : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DevQueryPrintEx(pdqpinfo : *mut DEVQUERYPRINT_INFO) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DocumentPropertiesA(hwnd : super::super::Foundation:: HWND, hprinter : super::super::Foundation:: HANDLE, pdevicename : ::windows_sys::core::PCSTR, pdevmodeoutput : *mut super::Gdi:: DEVMODEA, pdevmodeinput : *const super::Gdi:: DEVMODEA, fmode : u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DocumentPropertiesW(hwnd : super::super::Foundation:: HWND, hprinter : super::super::Foundation:: HANDLE, pdevicename : ::windows_sys::core::PCWSTR, pdevmodeoutput : *mut super::Gdi:: DEVMODEW, pdevmodeinput : *const super::Gdi:: DEVMODEW, fmode : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EndDocPrinter(hprinter : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EndPagePrinter(hprinter : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumFormsA(hprinter : super::super::Foundation:: HANDLE, level : u32, pform : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumFormsW(hprinter : super::super::Foundation:: HANDLE, level : u32, pform : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumJobNamedProperties(hprinter : super::super::Foundation:: HANDLE, jobid : u32, pcproperties : *mut u32, ppproperties : *mut *mut PrintNamedProperty) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumJobsA(hprinter : super::super::Foundation:: HANDLE, firstjob : u32, nojobs : u32, level : u32, pjob : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumJobsW(hprinter : super::super::Foundation:: HANDLE, firstjob : u32, nojobs : u32, level : u32, pjob : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumMonitorsA(pname : ::windows_sys::core::PCSTR, level : u32, pmonitor : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumMonitorsW(pname : ::windows_sys::core::PCWSTR, level : u32, pmonitor : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPortsA(pname : ::windows_sys::core::PCSTR, level : u32, pport : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPortsW(pname : ::windows_sys::core::PCWSTR, level : u32, pport : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrintProcessorDatatypesA(pname : ::windows_sys::core::PCSTR, pprintprocessorname : ::windows_sys::core::PCSTR, level : u32, pdatatypes : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrintProcessorDatatypesW(pname : ::windows_sys::core::PCWSTR, pprintprocessorname : ::windows_sys::core::PCWSTR, level : u32, pdatatypes : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrintProcessorsA(pname : ::windows_sys::core::PCSTR, penvironment : ::windows_sys::core::PCSTR, level : u32, pprintprocessorinfo : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrintProcessorsW(pname : ::windows_sys::core::PCWSTR, penvironment : ::windows_sys::core::PCWSTR, level : u32, pprintprocessorinfo : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrinterDataA(hprinter : super::super::Foundation:: HANDLE, dwindex : u32, pvaluename : ::windows_sys::core::PSTR, cbvaluename : u32, pcbvaluename : *mut u32, ptype : *mut u32, pdata : *mut u8, cbdata : u32, pcbdata : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrinterDataExA(hprinter : super::super::Foundation:: HANDLE, pkeyname : ::windows_sys::core::PCSTR, penumvalues : *mut u8, cbenumvalues : u32, pcbenumvalues : *mut u32, pnenumvalues : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrinterDataExW(hprinter : super::super::Foundation:: HANDLE, pkeyname : ::windows_sys::core::PCWSTR, penumvalues : *mut u8, cbenumvalues : u32, pcbenumvalues : *mut u32, pnenumvalues : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrinterDataW(hprinter : super::super::Foundation:: HANDLE, dwindex : u32, pvaluename : ::windows_sys::core::PWSTR, cbvaluename : u32, pcbvaluename : *mut u32, ptype : *mut u32, pdata : *mut u8, cbdata : u32, pcbdata : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrinterDriversA(pname : ::windows_sys::core::PCSTR, penvironment : ::windows_sys::core::PCSTR, level : u32, pdriverinfo : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrinterDriversW(pname : ::windows_sys::core::PCWSTR, penvironment : ::windows_sys::core::PCWSTR, level : u32, pdriverinfo : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrinterKeyA(hprinter : super::super::Foundation:: HANDLE, pkeyname : ::windows_sys::core::PCSTR, psubkey : ::windows_sys::core::PSTR, cbsubkey : u32, pcbsubkey : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrinterKeyW(hprinter : super::super::Foundation:: HANDLE, pkeyname : ::windows_sys::core::PCWSTR, psubkey : ::windows_sys::core::PWSTR, cbsubkey : u32, pcbsubkey : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrintersA(flags : u32, name : ::windows_sys::core::PCSTR, level : u32, pprinterenum : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPrintersW(flags : u32, name : ::windows_sys::core::PCWSTR, level : u32, pprinterenum : *mut u8, cbbuf : u32, pcbneeded : *mut u32, pcreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ExtDeviceMode(hwnd : super::super::Foundation:: HWND, hinst : super::super::Foundation:: HANDLE, pdevmodeoutput : *mut super::Gdi:: DEVMODEA, pdevicename : ::windows_sys::core::PCSTR, pport : ::windows_sys::core::PCSTR, pdevmodeinput : *const super::Gdi:: DEVMODEA, pprofile : ::windows_sys::core::PCSTR, fmode : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindClosePrinterChangeNotification(hchange : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstPrinterChangeNotification(hprinter : super::super::Foundation:: HANDLE, fdwfilter : u32, fdwoptions : u32, pprinternotifyoptions : *const ::core::ffi::c_void) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextPrinterChangeNotification(hchange : super::super::Foundation:: HANDLE, pdwchange : *mut u32, pvreserved : *const ::core::ffi::c_void, ppprinternotifyinfo : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlushPrinter(hprinter : super::super::Foundation:: HANDLE, pbuf : *const ::core::ffi::c_void, cbbuf : u32, pcwritten : *mut u32, csleep : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winspool.drv" "system" fn FreePrintNamedPropertyArray(cproperties : u32, ppproperties : *mut *mut PrintNamedProperty) -> ()); +::windows_targets::link!("winspool.drv" "system" fn FreePrintPropertyValue(pvalue : *mut PrintPropertyValue) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreePrinterNotifyInfo(pprinternotifyinfo : *const PRINTER_NOTIFY_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdiDeleteSpoolFileHandle(spoolfilehandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdiEndDocEMF(spoolfilehandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdiEndPageEMF(spoolfilehandle : super::super::Foundation:: HANDLE, dwoptimization : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GdiGetDC(spoolfilehandle : super::super::Foundation:: HANDLE) -> super::Gdi:: HDC); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GdiGetDevmodeForPage(spoolfilehandle : super::super::Foundation:: HANDLE, dwpagenumber : u32, pcurrdm : *mut *mut super::Gdi:: DEVMODEW, plastdm : *mut *mut super::Gdi:: DEVMODEW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdiGetPageCount(spoolfilehandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdiGetPageHandle(spoolfilehandle : super::super::Foundation:: HANDLE, page : u32, pdwpagetype : *mut u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GdiGetSpoolFileHandle(pwszprintername : ::windows_sys::core::PCWSTR, pdevmode : *mut super::Gdi:: DEVMODEW, pwszdocname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdiPlayPageEMF(spoolfilehandle : super::super::Foundation:: HANDLE, hemf : super::super::Foundation:: HANDLE, prectdocument : *mut super::super::Foundation:: RECT, prectborder : *mut super::super::Foundation:: RECT, prectclip : *mut super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GdiResetDCEMF(spoolfilehandle : super::super::Foundation:: HANDLE, pcurrdm : *mut super::Gdi:: DEVMODEW) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_Xps"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_Xps\"`"] fn GdiStartDocEMF(spoolfilehandle : super::super::Foundation:: HANDLE, pdocinfo : *mut super::super::Storage::Xps:: DOCINFOW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GdiStartPageEMF(spoolfilehandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("mscms.dll" "system" fn GenerateCopyFilePaths(pszprintername : ::windows_sys::core::PCWSTR, pszdirectory : ::windows_sys::core::PCWSTR, psplclientinfo : *const u8, dwlevel : u32, pszsourcedir : ::windows_sys::core::PWSTR, pcchsourcedirsize : *mut u32, psztargetdir : ::windows_sys::core::PWSTR, pcchtargetdirsize : *mut u32, dwflags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("compstui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCPSUIUserData(hdlg : super::super::Foundation:: HWND) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCorePrinterDriversA(pszserver : ::windows_sys::core::PCSTR, pszenvironment : ::windows_sys::core::PCSTR, pszzcoredriverdependencies : ::windows_sys::core::PCSTR, ccoreprinterdrivers : u32, pcoreprinterdrivers : *mut CORE_PRINTER_DRIVERA) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCorePrinterDriversW(pszserver : ::windows_sys::core::PCWSTR, pszenvironment : ::windows_sys::core::PCWSTR, pszzcoredriverdependencies : ::windows_sys::core::PCWSTR, ccoreprinterdrivers : u32, pcoreprinterdrivers : *mut CORE_PRINTER_DRIVERW) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDefaultPrinterA(pszbuffer : ::windows_sys::core::PSTR, pcchbuffer : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDefaultPrinterW(pszbuffer : ::windows_sys::core::PWSTR, pcchbuffer : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFormA(hprinter : super::super::Foundation:: HANDLE, pformname : ::windows_sys::core::PCSTR, level : u32, pform : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFormW(hprinter : super::super::Foundation:: HANDLE, pformname : ::windows_sys::core::PCWSTR, level : u32, pform : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetJobA(hprinter : super::super::Foundation:: HANDLE, jobid : u32, level : u32, pjob : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetJobAttributes(pprintername : ::windows_sys::core::PCWSTR, pdevmode : *const super::Gdi:: DEVMODEW, pattributeinfo : *mut ATTRIBUTE_INFO_3) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetJobAttributesEx(pprintername : ::windows_sys::core::PCWSTR, pdevmode : *const super::Gdi:: DEVMODEW, dwlevel : u32, pattributeinfo : *mut u8, nsize : u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetJobNamedPropertyValue(hprinter : super::super::Foundation:: HANDLE, jobid : u32, pszname : ::windows_sys::core::PCWSTR, pvalue : *mut PrintPropertyValue) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetJobW(hprinter : super::super::Foundation:: HANDLE, jobid : u32, level : u32, pjob : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrintExecutionData(pdata : *mut PRINT_EXECUTION_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrintOutputInfo(hwnd : super::super::Foundation:: HWND, pszprinter : ::windows_sys::core::PCWSTR, phfile : *mut super::super::Foundation:: HANDLE, ppszoutputfile : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrintProcessorDirectoryA(pname : ::windows_sys::core::PCSTR, penvironment : ::windows_sys::core::PCSTR, level : u32, pprintprocessorinfo : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrintProcessorDirectoryW(pname : ::windows_sys::core::PCWSTR, penvironment : ::windows_sys::core::PCWSTR, level : u32, pprintprocessorinfo : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrinterA(hprinter : super::super::Foundation:: HANDLE, level : u32, pprinter : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrinterDataA(hprinter : super::super::Foundation:: HANDLE, pvaluename : ::windows_sys::core::PCSTR, ptype : *mut u32, pdata : *mut u8, nsize : u32, pcbneeded : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrinterDataExA(hprinter : super::super::Foundation:: HANDLE, pkeyname : ::windows_sys::core::PCSTR, pvaluename : ::windows_sys::core::PCSTR, ptype : *mut u32, pdata : *mut u8, nsize : u32, pcbneeded : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrinterDataExW(hprinter : super::super::Foundation:: HANDLE, pkeyname : ::windows_sys::core::PCWSTR, pvaluename : ::windows_sys::core::PCWSTR, ptype : *mut u32, pdata : *mut u8, nsize : u32, pcbneeded : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrinterDataW(hprinter : super::super::Foundation:: HANDLE, pvaluename : ::windows_sys::core::PCWSTR, ptype : *mut u32, pdata : *mut u8, nsize : u32, pcbneeded : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrinterDriver2A(hwnd : super::super::Foundation:: HWND, hprinter : super::super::Foundation:: HANDLE, penvironment : ::windows_sys::core::PCSTR, level : u32, pdriverinfo : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrinterDriver2W(hwnd : super::super::Foundation:: HWND, hprinter : super::super::Foundation:: HANDLE, penvironment : ::windows_sys::core::PCWSTR, level : u32, pdriverinfo : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrinterDriverA(hprinter : super::super::Foundation:: HANDLE, penvironment : ::windows_sys::core::PCSTR, level : u32, pdriverinfo : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrinterDriverDirectoryA(pname : ::windows_sys::core::PCSTR, penvironment : ::windows_sys::core::PCSTR, level : u32, pdriverdirectory : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrinterDriverDirectoryW(pname : ::windows_sys::core::PCWSTR, penvironment : ::windows_sys::core::PCWSTR, level : u32, pdriverdirectory : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winspool.drv" "system" fn GetPrinterDriverPackagePathA(pszserver : ::windows_sys::core::PCSTR, pszenvironment : ::windows_sys::core::PCSTR, pszlanguage : ::windows_sys::core::PCSTR, pszpackageid : ::windows_sys::core::PCSTR, pszdriverpackagecab : ::windows_sys::core::PSTR, cchdriverpackagecab : u32, pcchrequiredsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winspool.drv" "system" fn GetPrinterDriverPackagePathW(pszserver : ::windows_sys::core::PCWSTR, pszenvironment : ::windows_sys::core::PCWSTR, pszlanguage : ::windows_sys::core::PCWSTR, pszpackageid : ::windows_sys::core::PCWSTR, pszdriverpackagecab : ::windows_sys::core::PWSTR, cchdriverpackagecab : u32, pcchrequiredsize : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrinterDriverW(hprinter : super::super::Foundation:: HANDLE, penvironment : ::windows_sys::core::PCWSTR, level : u32, pdriverinfo : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrinterW(hprinter : super::super::Foundation:: HANDLE, level : u32, pprinter : *mut u8, cbbuf : u32, pcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSpoolFileHandle(hprinter : super::super::Foundation:: HANDLE) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImpersonatePrinterClient(htoken : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winspool.drv" "system" fn InstallPrinterDriverFromPackageA(pszserver : ::windows_sys::core::PCSTR, pszinfpath : ::windows_sys::core::PCSTR, pszdrivername : ::windows_sys::core::PCSTR, pszenvironment : ::windows_sys::core::PCSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winspool.drv" "system" fn InstallPrinterDriverFromPackageW(pszserver : ::windows_sys::core::PCWSTR, pszinfpath : ::windows_sys::core::PCWSTR, pszdrivername : ::windows_sys::core::PCWSTR, pszenvironment : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn IsValidDevmodeA(pdevmode : *const super::Gdi:: DEVMODEA, devmodesize : usize) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn IsValidDevmodeW(pdevmode : *const super::Gdi:: DEVMODEW, devmodesize : usize) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn OpenPrinter2A(pprintername : ::windows_sys::core::PCSTR, phprinter : *mut super::super::Foundation:: HANDLE, pdefault : *const PRINTER_DEFAULTSA, poptions : *const PRINTER_OPTIONSA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn OpenPrinter2W(pprintername : ::windows_sys::core::PCWSTR, phprinter : *mut super::super::Foundation:: HANDLE, pdefault : *const PRINTER_DEFAULTSW, poptions : *const PRINTER_OPTIONSW) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn OpenPrinterA(pprintername : ::windows_sys::core::PCSTR, phprinter : *mut super::super::Foundation:: HANDLE, pdefault : *const PRINTER_DEFAULTSA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn OpenPrinterW(pprintername : ::windows_sys::core::PCWSTR, phprinter : *mut super::super::Foundation:: HANDLE, pdefault : *const PRINTER_DEFAULTSW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PartialReplyPrinterChangeNotification(hprinter : super::super::Foundation:: HANDLE, pdatasrc : *const PRINTER_NOTIFY_INFO_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PlayGdiScriptOnPrinterIC(hprinteric : super::super::Foundation:: HANDLE, pin : *const u8, cin : u32, pout : *mut u8, cout : u32, ul : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrinterMessageBoxA(hprinter : super::super::Foundation:: HANDLE, error : u32, hwnd : super::super::Foundation:: HWND, ptext : ::windows_sys::core::PCSTR, pcaption : ::windows_sys::core::PCSTR, dwtype : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrinterMessageBoxW(hprinter : super::super::Foundation:: HANDLE, error : u32, hwnd : super::super::Foundation:: HWND, ptext : ::windows_sys::core::PCWSTR, pcaption : ::windows_sys::core::PCWSTR, dwtype : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrinterProperties(hwnd : super::super::Foundation:: HWND, hprinter : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ProvidorFindClosePrinterChangeNotification(hprinter : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ProvidorFindFirstPrinterChangeNotification(hprinter : super::super::Foundation:: HANDLE, fdwflags : u32, fdwoptions : u32, hnotify : super::super::Foundation:: HANDLE, pprinternotifyoptions : *const ::core::ffi::c_void, pvreserved1 : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadPrinter(hprinter : super::super::Foundation:: HANDLE, pbuf : *mut ::core::ffi::c_void, cbbuf : u32, pnobytesread : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterForPrintAsyncNotifications(pszname : ::windows_sys::core::PCWSTR, pnotificationtype : *const ::windows_sys::core::GUID, euserfilter : PrintAsyncNotifyUserFilter, econversationstyle : PrintAsyncNotifyConversationStyle, pcallback : IPrintAsyncNotifyCallback, phnotify : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemovePrintDeviceObject(hdeviceobject : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReplyPrinterChangeNotification(hprinter : super::super::Foundation:: HANDLE, fdwchangeflags : u32, pdwresult : *mut u32, pprinternotifyinfo : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReplyPrinterChangeNotificationEx(hnotify : super::super::Foundation:: HANDLE, dwcolor : u32, fdwflags : u32, pdwresult : *mut u32, pprinternotifyinfo : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReportJobProcessingProgress(printerhandle : super::super::Foundation:: HANDLE, jobid : u32, joboperation : EPrintXPSJobOperation, jobprogress : EPrintXPSJobProgress) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ResetPrinterA(hprinter : super::super::Foundation:: HANDLE, pdefault : *const PRINTER_DEFAULTSA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ResetPrinterW(hprinter : super::super::Foundation:: HANDLE, pdefault : *const PRINTER_DEFAULTSW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RevertToPrinterSelf() -> super::super::Foundation:: HANDLE); +::windows_targets::link!("spoolss.dll" "system" fn RouterAllocBidiMem(numbytes : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterAllocBidiResponseContainer(count : u32) -> *mut BIDI_RESPONSE_CONTAINER); +::windows_targets::link!("spoolss.dll" "system" fn RouterAllocPrinterNotifyInfo(cprinternotifyinfodata : u32) -> *mut PRINTER_NOTIFY_INFO); +::windows_targets::link!("spoolss.dll" "system" fn RouterFreeBidiMem(pmempointer : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterFreeBidiResponseContainer(pdata : *const BIDI_RESPONSE_CONTAINER) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterFreePrinterNotifyInfo(pinfo : *const PRINTER_NOTIFY_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ScheduleJob(hprinter : super::super::Foundation:: HANDLE, jobid : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("compstui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCPSUIUserData(hdlg : super::super::Foundation:: HWND, cpsuiuserdata : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDefaultPrinterA(pszprinter : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDefaultPrinterW(pszprinter : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFormA(hprinter : super::super::Foundation:: HANDLE, pformname : ::windows_sys::core::PCSTR, level : u32, pform : *const u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFormW(hprinter : super::super::Foundation:: HANDLE, pformname : ::windows_sys::core::PCWSTR, level : u32, pform : *const u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetJobA(hprinter : super::super::Foundation:: HANDLE, jobid : u32, level : u32, pjob : *const u8, command : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetJobNamedProperty(hprinter : super::super::Foundation:: HANDLE, jobid : u32, pproperty : *const PrintNamedProperty) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetJobW(hprinter : super::super::Foundation:: HANDLE, jobid : u32, level : u32, pjob : *const u8, command : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPortA(pname : ::windows_sys::core::PCSTR, pportname : ::windows_sys::core::PCSTR, dwlevel : u32, pportinfo : *const u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPortW(pname : ::windows_sys::core::PCWSTR, pportname : ::windows_sys::core::PCWSTR, dwlevel : u32, pportinfo : *const u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPrinterA(hprinter : super::super::Foundation:: HANDLE, level : u32, pprinter : *const u8, command : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPrinterDataA(hprinter : super::super::Foundation:: HANDLE, pvaluename : ::windows_sys::core::PCSTR, r#type : u32, pdata : *const u8, cbdata : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPrinterDataExA(hprinter : super::super::Foundation:: HANDLE, pkeyname : ::windows_sys::core::PCSTR, pvaluename : ::windows_sys::core::PCSTR, r#type : u32, pdata : *const u8, cbdata : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPrinterDataExW(hprinter : super::super::Foundation:: HANDLE, pkeyname : ::windows_sys::core::PCWSTR, pvaluename : ::windows_sys::core::PCWSTR, r#type : u32, pdata : *const u8, cbdata : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPrinterDataW(hprinter : super::super::Foundation:: HANDLE, pvaluename : ::windows_sys::core::PCWSTR, r#type : u32, pdata : *const u8, cbdata : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPrinterW(hprinter : super::super::Foundation:: HANDLE, level : u32, pprinter : *const u8, command : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SplIsSessionZero(hprinter : super::super::Foundation:: HANDLE, jobid : u32, pissessionzero : *mut super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SplPromptUIInUsersSession(hprinter : super::super::Foundation:: HANDLE, jobid : u32, puiparams : *const SHOWUIPARAMS, presponse : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SpoolerCopyFileEvent(pszprintername : ::windows_sys::core::PCWSTR, pszkey : ::windows_sys::core::PCWSTR, dwcopyfileevent : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SpoolerFindClosePrinterChangeNotification(hprinter : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SpoolerFindFirstPrinterChangeNotification(hprinter : super::super::Foundation:: HANDLE, fdwfilterflags : u32, fdwoptions : u32, pprinternotifyoptions : *const ::core::ffi::c_void, pvreserved : *const ::core::ffi::c_void, pnotificationconfig : *const ::core::ffi::c_void, phnotify : *mut super::super::Foundation:: HANDLE, phevent : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SpoolerFindNextPrinterChangeNotification(hprinter : super::super::Foundation:: HANDLE, pfdwchange : *mut u32, pprinternotifyoptions : *const ::core::ffi::c_void, ppprinternotifyinfo : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("spoolss.dll" "system" fn SpoolerFreePrinterNotifyInfo(pinfo : *const PRINTER_NOTIFY_INFO) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SpoolerRefreshPrinterChangeNotification(hprinter : super::super::Foundation:: HANDLE, dwcolor : u32, poptions : *const PRINTER_NOTIFY_OPTIONS, ppinfo : *mut *mut PRINTER_NOTIFY_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StartDocPrinterA(hprinter : super::super::Foundation:: HANDLE, level : u32, pdocinfo : *const DOC_INFO_1A) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StartDocPrinterW(hprinter : super::super::Foundation:: HANDLE, level : u32, pdocinfo : *const DOC_INFO_1W) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StartPagePrinter(hprinter : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnRegisterForPrintAsyncNotifications(param0 : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("spoolss.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdatePrintDeviceObject(hprinter : super::super::Foundation:: HANDLE, hdeviceobject : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UploadPrinterDriverPackageA(pszserver : ::windows_sys::core::PCSTR, pszinfpath : ::windows_sys::core::PCSTR, pszenvironment : ::windows_sys::core::PCSTR, dwflags : u32, hwnd : super::super::Foundation:: HWND, pszdestinfpath : ::windows_sys::core::PSTR, pcchdestinfpath : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UploadPrinterDriverPackageW(pszserver : ::windows_sys::core::PCWSTR, pszinfpath : ::windows_sys::core::PCWSTR, pszenvironment : ::windows_sys::core::PCWSTR, dwflags : u32, hwnd : super::super::Foundation:: HWND, pszdestinfpath : ::windows_sys::core::PWSTR, pcchdestinfpath : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitForPrinterChange(hprinter : super::super::Foundation:: HANDLE, flags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WritePrinter(hprinter : super::super::Foundation:: HANDLE, pbuf : *const ::core::ffi::c_void, cbbuf : u32, pcwritten : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn XcvDataW(hxcv : super::super::Foundation:: HANDLE, pszdataname : ::windows_sys::core::PCWSTR, pinputdata : *const u8, cbinputdata : u32, poutputdata : *mut u8, cboutputdata : u32, pcboutputneeded : *mut u32, pdwstatus : *mut u32) -> super::super::Foundation:: BOOL); +pub type IAsyncGetSendNotificationCookie = *mut ::core::ffi::c_void; +pub type IAsyncGetSrvReferralCookie = *mut ::core::ffi::c_void; +pub type IBidiAsyncNotifyChannel = *mut ::core::ffi::c_void; +pub type IBidiRequest = *mut ::core::ffi::c_void; +pub type IBidiRequestContainer = *mut ::core::ffi::c_void; +pub type IBidiSpl = *mut ::core::ffi::c_void; +pub type IBidiSpl2 = *mut ::core::ffi::c_void; +pub type IFixedDocument = *mut ::core::ffi::c_void; +pub type IFixedDocumentSequence = *mut ::core::ffi::c_void; +pub type IFixedPage = *mut ::core::ffi::c_void; +pub type IImgCreateErrorInfo = *mut ::core::ffi::c_void; +pub type IImgErrorInfo = *mut ::core::ffi::c_void; +pub type IInterFilterCommunicator = *mut ::core::ffi::c_void; +pub type IPartBase = *mut ::core::ffi::c_void; +pub type IPartColorProfile = *mut ::core::ffi::c_void; +pub type IPartDiscardControl = *mut ::core::ffi::c_void; +pub type IPartFont = *mut ::core::ffi::c_void; +pub type IPartFont2 = *mut ::core::ffi::c_void; +pub type IPartImage = *mut ::core::ffi::c_void; +pub type IPartPrintTicket = *mut ::core::ffi::c_void; +pub type IPartResourceDictionary = *mut ::core::ffi::c_void; +pub type IPartThumbnail = *mut ::core::ffi::c_void; +pub type IPrintAsyncCookie = *mut ::core::ffi::c_void; +pub type IPrintAsyncNewChannelCookie = *mut ::core::ffi::c_void; +pub type IPrintAsyncNotify = *mut ::core::ffi::c_void; +pub type IPrintAsyncNotifyCallback = *mut ::core::ffi::c_void; +pub type IPrintAsyncNotifyChannel = *mut ::core::ffi::c_void; +pub type IPrintAsyncNotifyDataObject = *mut ::core::ffi::c_void; +pub type IPrintAsyncNotifyRegistration = *mut ::core::ffi::c_void; +pub type IPrintAsyncNotifyServerReferral = *mut ::core::ffi::c_void; +pub type IPrintBidiAsyncNotifyRegistration = *mut ::core::ffi::c_void; +pub type IPrintClassObjectFactory = *mut ::core::ffi::c_void; +pub type IPrintCoreHelper = *mut ::core::ffi::c_void; +pub type IPrintCoreHelperPS = *mut ::core::ffi::c_void; +pub type IPrintCoreHelperUni = *mut ::core::ffi::c_void; +pub type IPrintCoreHelperUni2 = *mut ::core::ffi::c_void; +pub type IPrintCoreUI2 = *mut ::core::ffi::c_void; +pub type IPrintJob = *mut ::core::ffi::c_void; +pub type IPrintJobCollection = *mut ::core::ffi::c_void; +pub type IPrintOemCommon = *mut ::core::ffi::c_void; +pub type IPrintOemDriverUI = *mut ::core::ffi::c_void; +pub type IPrintOemUI = *mut ::core::ffi::c_void; +pub type IPrintOemUI2 = *mut ::core::ffi::c_void; +pub type IPrintOemUIMXDC = *mut ::core::ffi::c_void; +pub type IPrintPipelineFilter = *mut ::core::ffi::c_void; +pub type IPrintPipelineManagerControl = *mut ::core::ffi::c_void; +pub type IPrintPipelineProgressReport = *mut ::core::ffi::c_void; +pub type IPrintPipelinePropertyBag = *mut ::core::ffi::c_void; +pub type IPrintPreviewDxgiPackageTarget = *mut ::core::ffi::c_void; +pub type IPrintReadStream = *mut ::core::ffi::c_void; +pub type IPrintReadStreamFactory = *mut ::core::ffi::c_void; +pub type IPrintSchemaAsyncOperation = *mut ::core::ffi::c_void; +pub type IPrintSchemaAsyncOperationEvent = *mut ::core::ffi::c_void; +pub type IPrintSchemaCapabilities = *mut ::core::ffi::c_void; +pub type IPrintSchemaCapabilities2 = *mut ::core::ffi::c_void; +pub type IPrintSchemaDisplayableElement = *mut ::core::ffi::c_void; +pub type IPrintSchemaElement = *mut ::core::ffi::c_void; +pub type IPrintSchemaFeature = *mut ::core::ffi::c_void; +pub type IPrintSchemaNUpOption = *mut ::core::ffi::c_void; +pub type IPrintSchemaOption = *mut ::core::ffi::c_void; +pub type IPrintSchemaOptionCollection = *mut ::core::ffi::c_void; +pub type IPrintSchemaPageImageableSize = *mut ::core::ffi::c_void; +pub type IPrintSchemaPageMediaSizeOption = *mut ::core::ffi::c_void; +pub type IPrintSchemaParameterDefinition = *mut ::core::ffi::c_void; +pub type IPrintSchemaParameterInitializer = *mut ::core::ffi::c_void; +pub type IPrintSchemaTicket = *mut ::core::ffi::c_void; +pub type IPrintSchemaTicket2 = *mut ::core::ffi::c_void; +pub type IPrintTicketProvider = *mut ::core::ffi::c_void; +pub type IPrintTicketProvider2 = *mut ::core::ffi::c_void; +pub type IPrintUnidiAsyncNotifyRegistration = *mut ::core::ffi::c_void; +pub type IPrintWriteStream = *mut ::core::ffi::c_void; +pub type IPrintWriteStreamFlush = *mut ::core::ffi::c_void; +pub type IPrinterBidiSetRequestCallback = *mut ::core::ffi::c_void; +pub type IPrinterExtensionAsyncOperation = *mut ::core::ffi::c_void; +pub type IPrinterExtensionContext = *mut ::core::ffi::c_void; +pub type IPrinterExtensionContextCollection = *mut ::core::ffi::c_void; +pub type IPrinterExtensionEvent = *mut ::core::ffi::c_void; +pub type IPrinterExtensionEventArgs = *mut ::core::ffi::c_void; +pub type IPrinterExtensionManager = *mut ::core::ffi::c_void; +pub type IPrinterExtensionRequest = *mut ::core::ffi::c_void; +pub type IPrinterPropertyBag = *mut ::core::ffi::c_void; +pub type IPrinterQueue = *mut ::core::ffi::c_void; +pub type IPrinterQueue2 = *mut ::core::ffi::c_void; +pub type IPrinterQueueEvent = *mut ::core::ffi::c_void; +pub type IPrinterQueueView = *mut ::core::ffi::c_void; +pub type IPrinterQueueViewEvent = *mut ::core::ffi::c_void; +pub type IPrinterScriptContext = *mut ::core::ffi::c_void; +pub type IPrinterScriptablePropertyBag = *mut ::core::ffi::c_void; +pub type IPrinterScriptablePropertyBag2 = *mut ::core::ffi::c_void; +pub type IPrinterScriptableSequentialStream = *mut ::core::ffi::c_void; +pub type IPrinterScriptableStream = *mut ::core::ffi::c_void; +pub type IXpsDocument = *mut ::core::ffi::c_void; +pub type IXpsDocumentConsumer = *mut ::core::ffi::c_void; +pub type IXpsDocumentProvider = *mut ::core::ffi::c_void; +pub type IXpsPartIterator = *mut ::core::ffi::c_void; +pub type IXpsRasterizationFactory = *mut ::core::ffi::c_void; +pub type IXpsRasterizationFactory1 = *mut ::core::ffi::c_void; +pub type IXpsRasterizationFactory2 = *mut ::core::ffi::c_void; +pub type IXpsRasterizer = *mut ::core::ffi::c_void; +pub type IXpsRasterizerNotificationCallback = *mut ::core::ffi::c_void; +pub const ALREADY_REGISTERED: PrintAsyncNotifyError = 15i32; +pub const ALREADY_UNREGISTERED: PrintAsyncNotifyError = 14i32; +pub const APD_COPY_ALL_FILES: u32 = 4u32; +pub const APD_COPY_FROM_DIRECTORY: u32 = 16u32; +pub const APD_COPY_NEW_FILES: u32 = 8u32; +pub const APD_STRICT_DOWNGRADE: u32 = 2u32; +pub const APD_STRICT_UPGRADE: u32 = 1u32; +pub const APPLYCPSUI_NO_NEWDEF: u32 = 1u32; +pub const APPLYCPSUI_OK_CANCEL_BUTTON: u32 = 2u32; +pub const ASYNC_CALL_ALREADY_PARKED: PrintAsyncNotifyError = 12i32; +pub const ASYNC_CALL_IN_PROGRESS: PrintAsyncNotifyError = 17i32; +pub const ASYNC_NOTIFICATION_FAILURE: PrintAsyncNotifyError = 6i32; +pub const BIDI_ACCESS_ADMINISTRATOR: u32 = 1u32; +pub const BIDI_ACCESS_USER: u32 = 2u32; +pub const BIDI_ACTION_ENUM_SCHEMA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnumSchema"); +pub const BIDI_ACTION_GET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Get"); +pub const BIDI_ACTION_GET_ALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GetAll"); +pub const BIDI_ACTION_GET_WITH_ARGUMENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GetWithArgument"); +pub const BIDI_ACTION_SET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Set"); +pub const BIDI_BLOB: BIDI_TYPE = 7i32; +pub const BIDI_BOOL: BIDI_TYPE = 3i32; +pub const BIDI_ENUM: BIDI_TYPE = 6i32; +pub const BIDI_FLOAT: BIDI_TYPE = 2i32; +pub const BIDI_INT: BIDI_TYPE = 1i32; +pub const BIDI_NULL: BIDI_TYPE = 0i32; +pub const BIDI_STRING: BIDI_TYPE = 4i32; +pub const BIDI_TEXT: BIDI_TYPE = 5i32; +pub const BOOKLET_EDGE_LEFT: u32 = 0u32; +pub const BOOKLET_EDGE_RIGHT: u32 = 1u32; +pub const BOOKLET_PRINT: u32 = 2u32; +pub const BORDER_PRINT: u32 = 0u32; +pub const BidiRequest: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9162a23_45f9_47cc_80f5_fe0fe9b9e1a2); +pub const BidiRequestContainer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfc5b8a24_db05_4a01_8388_22edf6c2bbba); +pub const BidiSpl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2a614240_a4c5_4c33_bd87_1bc709331639); +pub const CC_BIG5: i32 = -10i32; +pub const CC_CP437: i32 = -1i32; +pub const CC_CP850: i32 = -2i32; +pub const CC_CP863: i32 = -3i32; +pub const CC_DEFAULT: u32 = 0u32; +pub const CC_GB2312: i32 = -16i32; +pub const CC_ISC: i32 = -11i32; +pub const CC_JIS: i32 = -12i32; +pub const CC_JIS_ANK: i32 = -13i32; +pub const CC_NOPRECNV: u32 = 65535u32; +pub const CC_NS86: i32 = -14i32; +pub const CC_SJIS: i32 = -17i32; +pub const CC_TCA: i32 = -15i32; +pub const CC_WANSUNG: i32 = -18i32; +pub const CDM_CONVERT: u32 = 1u32; +pub const CDM_CONVERT351: u32 = 2u32; +pub const CDM_DRIVER_DEFAULT: u32 = 4u32; +pub const CHANNEL_ACQUIRED: PrintAsyncNotifyError = 16i32; +pub const CHANNEL_ALREADY_CLOSED: PrintAsyncNotifyError = 8i32; +pub const CHANNEL_ALREADY_OPENED: PrintAsyncNotifyError = 9i32; +pub const CHANNEL_CLOSED_BY_ANOTHER_LISTENER: PrintAsyncNotifyError = 2i32; +pub const CHANNEL_CLOSED_BY_SAME_LISTENER: PrintAsyncNotifyError = 3i32; +pub const CHANNEL_CLOSED_BY_SERVER: PrintAsyncNotifyError = 1i32; +pub const CHANNEL_NOT_OPENED: PrintAsyncNotifyError = 11i32; +pub const CHANNEL_RELEASED_BY_LISTENER: PrintAsyncNotifyError = 4i32; +pub const CHANNEL_WAITING_FOR_CLIENT_NOTIFICATION: PrintAsyncNotifyError = 10i32; +pub const CHKBOXS_FALSE_PDATA: u32 = 3u32; +pub const CHKBOXS_FALSE_TRUE: u32 = 0u32; +pub const CHKBOXS_NONE_PDATA: u32 = 6u32; +pub const CHKBOXS_NO_PDATA: u32 = 4u32; +pub const CHKBOXS_NO_YES: u32 = 1u32; +pub const CHKBOXS_OFF_ON: u32 = 2u32; +pub const CHKBOXS_OFF_PDATA: u32 = 5u32; +pub const CLSID_OEMPTPROVIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x91723892_45d2_48e2_9ec9_562379daf992); +pub const CLSID_OEMRENDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6d6abf26_9f38_11d1_882a_00c04fb961ec); +pub const CLSID_OEMUI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xabce80d7_9f46_11d1_882a_00c04fb961ec); +pub const CLSID_OEMUIMXDC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4e144300_5b43_4288_932a_5e4dd6d82bed); +pub const CLSID_PTPROVIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x46ac151b_8490_4531_96cc_55bf2bf19e11); +pub const CLSID_XPSRASTERIZER_FACTORY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x503e79bf_1d09_4764_9d72_1eb0c65967c6); +pub const COLOR_OPTIMIZATION: u32 = 1u32; +pub const COPYFILE_EVENT_ADD_PRINTER_CONNECTION: u32 = 3u32; +pub const COPYFILE_EVENT_DELETE_PRINTER: u32 = 2u32; +pub const COPYFILE_EVENT_DELETE_PRINTER_CONNECTION: u32 = 4u32; +pub const COPYFILE_EVENT_FILES_CHANGED: u32 = 5u32; +pub const COPYFILE_EVENT_SET_PRINTER_DATAEX: u32 = 1u32; +pub const COPYFILE_FLAG_CLIENT_SPOOLER: u32 = 1u32; +pub const COPYFILE_FLAG_SERVER_SPOOLER: u32 = 2u32; +pub const CPSFUNC_ADD_HPROPSHEETPAGE: u32 = 0u32; +pub const CPSFUNC_ADD_PCOMPROPSHEETUI: u32 = 3u32; +pub const CPSFUNC_ADD_PCOMPROPSHEETUIA: u32 = 2u32; +pub const CPSFUNC_ADD_PCOMPROPSHEETUIW: u32 = 3u32; +pub const CPSFUNC_ADD_PFNPROPSHEETUI: u32 = 5u32; +pub const CPSFUNC_ADD_PFNPROPSHEETUIA: u32 = 4u32; +pub const CPSFUNC_ADD_PFNPROPSHEETUIW: u32 = 5u32; +pub const CPSFUNC_ADD_PROPSHEETPAGE: u32 = 1u32; +pub const CPSFUNC_ADD_PROPSHEETPAGEA: u32 = 15u32; +pub const CPSFUNC_ADD_PROPSHEETPAGEW: u32 = 1u32; +pub const CPSFUNC_DELETE_HCOMPROPSHEET: u32 = 6u32; +pub const CPSFUNC_DO_APPLY_CPSUI: u32 = 25u32; +pub const CPSFUNC_GET_HPSUIPAGES: u32 = 10u32; +pub const CPSFUNC_GET_PAGECOUNT: u32 = 8u32; +pub const CPSFUNC_GET_PFNPROPSHEETUI_ICON: u32 = 14u32; +pub const CPSFUNC_IGNORE_CPSUI_PSN_APPLY: u32 = 24u32; +pub const CPSFUNC_INSERT_PSUIPAGE: u32 = 17u32; +pub const CPSFUNC_INSERT_PSUIPAGEA: u32 = 16u32; +pub const CPSFUNC_INSERT_PSUIPAGEW: u32 = 17u32; +pub const CPSFUNC_LOAD_CPSUI_ICON: u32 = 13u32; +pub const CPSFUNC_LOAD_CPSUI_STRING: u32 = 12u32; +pub const CPSFUNC_LOAD_CPSUI_STRINGA: u32 = 11u32; +pub const CPSFUNC_LOAD_CPSUI_STRINGW: u32 = 12u32; +pub const CPSFUNC_QUERY_DATABLOCK: u32 = 22u32; +pub const CPSFUNC_SET_DATABLOCK: u32 = 21u32; +pub const CPSFUNC_SET_DMPUB_HIDEBITS: u32 = 23u32; +pub const CPSFUNC_SET_FUSION_CONTEXT: u32 = 26u32; +pub const CPSFUNC_SET_HSTARTPAGE: u32 = 7u32; +pub const CPSFUNC_SET_PSUIPAGE_ICON: u32 = 20u32; +pub const CPSFUNC_SET_PSUIPAGE_TITLE: u32 = 19u32; +pub const CPSFUNC_SET_PSUIPAGE_TITLEA: u32 = 18u32; +pub const CPSFUNC_SET_PSUIPAGE_TITLEW: u32 = 19u32; +pub const CPSFUNC_SET_RESULT: u32 = 9u32; +pub const CPSUICB_ACTION_ITEMS_APPLIED: u32 = 4u32; +pub const CPSUICB_ACTION_NONE: u32 = 0u32; +pub const CPSUICB_ACTION_NO_APPLY_EXIT: u32 = 3u32; +pub const CPSUICB_ACTION_OPTIF_CHANGED: u32 = 1u32; +pub const CPSUICB_ACTION_REINIT_ITEMS: u32 = 2u32; +pub const CPSUICB_REASON_ABOUT: u32 = 9u32; +pub const CPSUICB_REASON_APPLYNOW: u32 = 6u32; +pub const CPSUICB_REASON_DLGPROC: u32 = 3u32; +pub const CPSUICB_REASON_ECB_CHANGED: u32 = 2u32; +pub const CPSUICB_REASON_EXTPUSH: u32 = 5u32; +pub const CPSUICB_REASON_ITEMS_REVERTED: u32 = 8u32; +pub const CPSUICB_REASON_KILLACTIVE: u32 = 11u32; +pub const CPSUICB_REASON_OPTITEM_SETFOCUS: u32 = 7u32; +pub const CPSUICB_REASON_PUSHBUTTON: u32 = 1u32; +pub const CPSUICB_REASON_SEL_CHANGED: u32 = 0u32; +pub const CPSUICB_REASON_SETACTIVE: u32 = 10u32; +pub const CPSUICB_REASON_UNDO_CHANGES: u32 = 4u32; +pub const CPSUIF_ABOUT_CALLBACK: u32 = 4u32; +pub const CPSUIF_ICONID_AS_HICON: u32 = 2u32; +pub const CPSUIF_UPDATE_PERMISSION: u32 = 1u32; +pub const CPSUI_CANCEL: u32 = 0u32; +pub const CPSUI_OK: u32 = 1u32; +pub const CPSUI_REBOOTSYSTEM: u32 = 3u32; +pub const CPSUI_RESTARTWINDOWS: u32 = 2u32; +pub const CUSTOMPARAM_HEIGHT: u32 = 1u32; +pub const CUSTOMPARAM_HEIGHTOFFSET: u32 = 3u32; +pub const CUSTOMPARAM_MAX: u32 = 5u32; +pub const CUSTOMPARAM_ORIENTATION: u32 = 4u32; +pub const CUSTOMPARAM_WIDTH: u32 = 0u32; +pub const CUSTOMPARAM_WIDTHOFFSET: u32 = 2u32; +pub const Compression_Fast: EXpsCompressionOptions = 3i32; +pub const Compression_Normal: EXpsCompressionOptions = 1i32; +pub const Compression_NotCompressed: EXpsCompressionOptions = 0i32; +pub const Compression_Small: EXpsCompressionOptions = 2i32; +pub const DEF_PRIORITY: u32 = 1u32; +pub const DF_BKSP_OK: u32 = 64u32; +pub const DF_NOITALIC: u32 = 1u32; +pub const DF_NOUNDER: u32 = 2u32; +pub const DF_NO_BOLD: u32 = 8u32; +pub const DF_NO_DOUBLE_UNDERLINE: u32 = 16u32; +pub const DF_NO_STRIKETHRU: u32 = 32u32; +pub const DF_TYPE_CAPSL: u32 = 3u32; +pub const DF_TYPE_HPINTELLIFONT: u32 = 0u32; +pub const DF_TYPE_OEM1: u32 = 4u32; +pub const DF_TYPE_OEM2: u32 = 5u32; +pub const DF_TYPE_PST1: u32 = 2u32; +pub const DF_TYPE_TRUETYPE: u32 = 1u32; +pub const DF_XM_CR: u32 = 4u32; +pub const DISPID_PRINTEREXTENSION_CONTEXT: u32 = 11800u32; +pub const DISPID_PRINTEREXTENSION_CONTEXTCOLLECTION: u32 = 12100u32; +pub const DISPID_PRINTEREXTENSION_CONTEXTCOLLECTION_COUNT: u32 = 12101u32; +pub const DISPID_PRINTEREXTENSION_CONTEXTCOLLECTION_GETAT: u32 = 12102u32; +pub const DISPID_PRINTEREXTENSION_CONTEXT_DRIVERPROPERTIES: u32 = 11803u32; +pub const DISPID_PRINTEREXTENSION_CONTEXT_PRINTERQUEUE: u32 = 11801u32; +pub const DISPID_PRINTEREXTENSION_CONTEXT_PRINTSCHEMATICKET: u32 = 11802u32; +pub const DISPID_PRINTEREXTENSION_CONTEXT_USERPROPERTIES: u32 = 11804u32; +pub const DISPID_PRINTEREXTENSION_EVENT: u32 = 12200u32; +pub const DISPID_PRINTEREXTENSION_EVENTARGS: u32 = 12000u32; +pub const DISPID_PRINTEREXTENSION_EVENTARGS_BIDINOTIFICATION: u32 = 12001u32; +pub const DISPID_PRINTEREXTENSION_EVENTARGS_DETAILEDREASONID: u32 = 12005u32; +pub const DISPID_PRINTEREXTENSION_EVENTARGS_REASONID: u32 = 12002u32; +pub const DISPID_PRINTEREXTENSION_EVENTARGS_REQUEST: u32 = 12003u32; +pub const DISPID_PRINTEREXTENSION_EVENTARGS_SOURCEAPPLICATION: u32 = 12004u32; +pub const DISPID_PRINTEREXTENSION_EVENTARGS_WINDOWMODAL: u32 = 12006u32; +pub const DISPID_PRINTEREXTENSION_EVENTARGS_WINDOWPARENT: u32 = 12007u32; +pub const DISPID_PRINTEREXTENSION_EVENT_ONDRIVEREVENT: u32 = 12201u32; +pub const DISPID_PRINTEREXTENSION_EVENT_ONPRINTERQUEUESENUMERATED: u32 = 12202u32; +pub const DISPID_PRINTEREXTENSION_REQUEST: u32 = 11900u32; +pub const DISPID_PRINTEREXTENSION_REQUEST_CANCEL: u32 = 11901u32; +pub const DISPID_PRINTEREXTENSION_REQUEST_COMPLETE: u32 = 11902u32; +pub const DISPID_PRINTERPROPERTYBAG: u32 = 11400u32; +pub const DISPID_PRINTERPROPERTYBAG_GETBOOL: u32 = 11401u32; +pub const DISPID_PRINTERPROPERTYBAG_GETBYTES: u32 = 11407u32; +pub const DISPID_PRINTERPROPERTYBAG_GETINT32: u32 = 11403u32; +pub const DISPID_PRINTERPROPERTYBAG_GETREADSTREAM: u32 = 11409u32; +pub const DISPID_PRINTERPROPERTYBAG_GETSTRING: u32 = 11405u32; +pub const DISPID_PRINTERPROPERTYBAG_GETWRITESTREAM: u32 = 11410u32; +pub const DISPID_PRINTERPROPERTYBAG_SETBOOL: u32 = 11402u32; +pub const DISPID_PRINTERPROPERTYBAG_SETBYTES: u32 = 11408u32; +pub const DISPID_PRINTERPROPERTYBAG_SETINT32: u32 = 11404u32; +pub const DISPID_PRINTERPROPERTYBAG_SETSTRING: u32 = 11406u32; +pub const DISPID_PRINTERQUEUE: u32 = 11600u32; +pub const DISPID_PRINTERQUEUEEVENT: u32 = 11700u32; +pub const DISPID_PRINTERQUEUEEVENT_ONBIDIRESPONSERECEIVED: u32 = 11701u32; +pub const DISPID_PRINTERQUEUEVIEW: u32 = 12700u32; +pub const DISPID_PRINTERQUEUEVIEW_EVENT: u32 = 12800u32; +pub const DISPID_PRINTERQUEUEVIEW_EVENT_ONCHANGED: u32 = 12801u32; +pub const DISPID_PRINTERQUEUEVIEW_SETVIEWRANGE: u32 = 12701u32; +pub const DISPID_PRINTERQUEUE_GETPRINTERQUEUEVIEW: u32 = 11606u32; +pub const DISPID_PRINTERQUEUE_GETPROPERTIES: u32 = 11604u32; +pub const DISPID_PRINTERQUEUE_HANDLE: u32 = 11601u32; +pub const DISPID_PRINTERQUEUE_NAME: u32 = 11602u32; +pub const DISPID_PRINTERQUEUE_SENDBIDIQUERY: u32 = 11603u32; +pub const DISPID_PRINTERQUEUE_SENDBIDISETREQUESTASYNC: u32 = 11605u32; +pub const DISPID_PRINTERSCRIPTABLEPROPERTYBAG: u32 = 11500u32; +pub const DISPID_PRINTERSCRIPTABLEPROPERTYBAG_GETBOOL: u32 = 11501u32; +pub const DISPID_PRINTERSCRIPTABLEPROPERTYBAG_GETBYTES: u32 = 11507u32; +pub const DISPID_PRINTERSCRIPTABLEPROPERTYBAG_GETINT32: u32 = 11503u32; +pub const DISPID_PRINTERSCRIPTABLEPROPERTYBAG_GETREADSTREAM: u32 = 11509u32; +pub const DISPID_PRINTERSCRIPTABLEPROPERTYBAG_GETSTREAMASXML: u32 = 11411u32; +pub const DISPID_PRINTERSCRIPTABLEPROPERTYBAG_GETSTRING: u32 = 11505u32; +pub const DISPID_PRINTERSCRIPTABLEPROPERTYBAG_GETWRITESTREAM: u32 = 11510u32; +pub const DISPID_PRINTERSCRIPTABLEPROPERTYBAG_SETBOOL: u32 = 11502u32; +pub const DISPID_PRINTERSCRIPTABLEPROPERTYBAG_SETBYTES: u32 = 11508u32; +pub const DISPID_PRINTERSCRIPTABLEPROPERTYBAG_SETINT32: u32 = 11504u32; +pub const DISPID_PRINTERSCRIPTABLEPROPERTYBAG_SETSTRING: u32 = 11506u32; +pub const DISPID_PRINTERSCRIPTABLESEQUENTIALSTREAM: u32 = 11200u32; +pub const DISPID_PRINTERSCRIPTABLESEQUENTIALSTREAM_READ: u32 = 11201u32; +pub const DISPID_PRINTERSCRIPTABLESEQUENTIALSTREAM_WRITE: u32 = 11202u32; +pub const DISPID_PRINTERSCRIPTABLESTREAM: u32 = 11300u32; +pub const DISPID_PRINTERSCRIPTABLESTREAM_COMMIT: u32 = 11301u32; +pub const DISPID_PRINTERSCRIPTABLESTREAM_SEEK: u32 = 11302u32; +pub const DISPID_PRINTERSCRIPTABLESTREAM_SETSIZE: u32 = 11303u32; +pub const DISPID_PRINTERSCRIPTCONTEXT: u32 = 12300u32; +pub const DISPID_PRINTERSCRIPTCONTEXT_DRIVERPROPERTIES: u32 = 12301u32; +pub const DISPID_PRINTERSCRIPTCONTEXT_QUEUEPROPERTIES: u32 = 12302u32; +pub const DISPID_PRINTERSCRIPTCONTEXT_USERPROPERTIES: u32 = 12303u32; +pub const DISPID_PRINTJOBCOLLECTION: u32 = 12600u32; +pub const DISPID_PRINTJOBCOLLECTION_COUNT: u32 = 12601u32; +pub const DISPID_PRINTJOBCOLLECTION_GETAT: u32 = 12602u32; +pub const DISPID_PRINTSCHEMA_ASYNCOPERATION: u32 = 10900u32; +pub const DISPID_PRINTSCHEMA_ASYNCOPERATIONEVENT: u32 = 11100u32; +pub const DISPID_PRINTSCHEMA_ASYNCOPERATIONEVENT_COMPLETED: u32 = 11101u32; +pub const DISPID_PRINTSCHEMA_ASYNCOPERATION_CANCEL: u32 = 10902u32; +pub const DISPID_PRINTSCHEMA_ASYNCOPERATION_START: u32 = 10901u32; +pub const DISPID_PRINTSCHEMA_CAPABILITIES: u32 = 10800u32; +pub const DISPID_PRINTSCHEMA_CAPABILITIES_GETFEATURE: u32 = 10802u32; +pub const DISPID_PRINTSCHEMA_CAPABILITIES_GETFEATURE_KEYNAME: u32 = 10801u32; +pub const DISPID_PRINTSCHEMA_CAPABILITIES_GETOPTIONS: u32 = 10807u32; +pub const DISPID_PRINTSCHEMA_CAPABILITIES_GETPARAMETERDEFINITION: u32 = 10808u32; +pub const DISPID_PRINTSCHEMA_CAPABILITIES_GETSELECTEDOPTION: u32 = 10806u32; +pub const DISPID_PRINTSCHEMA_CAPABILITIES_JOBCOPIESMAXVALUE: u32 = 10805u32; +pub const DISPID_PRINTSCHEMA_CAPABILITIES_JOBCOPIESMINVALUE: u32 = 10804u32; +pub const DISPID_PRINTSCHEMA_CAPABILITIES_PAGEIMAGEABLESIZE: u32 = 10803u32; +pub const DISPID_PRINTSCHEMA_DISPLAYABLEELEMENT: u32 = 10100u32; +pub const DISPID_PRINTSCHEMA_DISPLAYABLEELEMENT_DISPLAYNAME: u32 = 10101u32; +pub const DISPID_PRINTSCHEMA_ELEMENT: u32 = 10000u32; +pub const DISPID_PRINTSCHEMA_ELEMENT_NAME: u32 = 10002u32; +pub const DISPID_PRINTSCHEMA_ELEMENT_NAMESPACEURI: u32 = 10003u32; +pub const DISPID_PRINTSCHEMA_ELEMENT_XMLNODE: u32 = 10001u32; +pub const DISPID_PRINTSCHEMA_FEATURE: u32 = 10600u32; +pub const DISPID_PRINTSCHEMA_FEATURE_DISPLAYUI: u32 = 10604u32; +pub const DISPID_PRINTSCHEMA_FEATURE_GETOPTION: u32 = 10603u32; +pub const DISPID_PRINTSCHEMA_FEATURE_SELECTEDOPTION: u32 = 10601u32; +pub const DISPID_PRINTSCHEMA_FEATURE_SELECTIONTYPE: u32 = 10602u32; +pub const DISPID_PRINTSCHEMA_NUPOPTION: u32 = 10400u32; +pub const DISPID_PRINTSCHEMA_NUPOPTION_PAGESPERSHEET: u32 = 10401u32; +pub const DISPID_PRINTSCHEMA_OPTION: u32 = 10200u32; +pub const DISPID_PRINTSCHEMA_OPTIONCOLLECTION: u32 = 10500u32; +pub const DISPID_PRINTSCHEMA_OPTIONCOLLECTION_COUNT: u32 = 10501u32; +pub const DISPID_PRINTSCHEMA_OPTIONCOLLECTION_GETAT: u32 = 10502u32; +pub const DISPID_PRINTSCHEMA_OPTION_CONSTRAINED: u32 = 10202u32; +pub const DISPID_PRINTSCHEMA_OPTION_GETPROPERTYVALUE: u32 = 10203u32; +pub const DISPID_PRINTSCHEMA_OPTION_SELECTED: u32 = 10201u32; +pub const DISPID_PRINTSCHEMA_PAGEIMAGEABLESIZE: u32 = 10700u32; +pub const DISPID_PRINTSCHEMA_PAGEIMAGEABLESIZE_EXTENT_HEIGHT: u32 = 10706u32; +pub const DISPID_PRINTSCHEMA_PAGEIMAGEABLESIZE_EXTENT_WIDTH: u32 = 10705u32; +pub const DISPID_PRINTSCHEMA_PAGEIMAGEABLESIZE_IMAGEABLE_HEIGHT: u32 = 10702u32; +pub const DISPID_PRINTSCHEMA_PAGEIMAGEABLESIZE_IMAGEABLE_WIDTH: u32 = 10701u32; +pub const DISPID_PRINTSCHEMA_PAGEIMAGEABLESIZE_ORIGIN_HEIGHT: u32 = 10704u32; +pub const DISPID_PRINTSCHEMA_PAGEIMAGEABLESIZE_ORIGIN_WIDTH: u32 = 10703u32; +pub const DISPID_PRINTSCHEMA_PAGEMEDIASIZEOPTION: u32 = 10300u32; +pub const DISPID_PRINTSCHEMA_PAGEMEDIASIZEOPTION_HEIGHT: u32 = 10302u32; +pub const DISPID_PRINTSCHEMA_PAGEMEDIASIZEOPTION_WIDTH: u32 = 10301u32; +pub const DISPID_PRINTSCHEMA_PARAMETERDEFINITION: u32 = 12500u32; +pub const DISPID_PRINTSCHEMA_PARAMETERDEFINITION_DATATYPE: u32 = 12503u32; +pub const DISPID_PRINTSCHEMA_PARAMETERDEFINITION_RANGEMAX: u32 = 12505u32; +pub const DISPID_PRINTSCHEMA_PARAMETERDEFINITION_RANGEMIN: u32 = 12504u32; +pub const DISPID_PRINTSCHEMA_PARAMETERDEFINITION_UNITTYPE: u32 = 12502u32; +pub const DISPID_PRINTSCHEMA_PARAMETERDEFINITION_USERINPUTREQUIRED: u32 = 12501u32; +pub const DISPID_PRINTSCHEMA_PARAMETERINITIALIZER: u32 = 12400u32; +pub const DISPID_PRINTSCHEMA_PARAMETERINITIALIZER_VALUE: u32 = 12401u32; +pub const DISPID_PRINTSCHEMA_TICKET: u32 = 11000u32; +pub const DISPID_PRINTSCHEMA_TICKET_COMMITASYNC: u32 = 11004u32; +pub const DISPID_PRINTSCHEMA_TICKET_GETCAPABILITIES: u32 = 11006u32; +pub const DISPID_PRINTSCHEMA_TICKET_GETFEATURE: u32 = 11002u32; +pub const DISPID_PRINTSCHEMA_TICKET_GETFEATURE_KEYNAME: u32 = 11001u32; +pub const DISPID_PRINTSCHEMA_TICKET_GETPARAMETERINITIALIZER: u32 = 11008u32; +pub const DISPID_PRINTSCHEMA_TICKET_JOBCOPIESALLDOCUMENTS: u32 = 11007u32; +pub const DISPID_PRINTSCHEMA_TICKET_NOTIFYXMLCHANGED: u32 = 11005u32; +pub const DISPID_PRINTSCHEMA_TICKET_VALIDATEASYNC: u32 = 11003u32; +pub const DI_CHANNEL: u32 = 1u32; +pub const DI_MEMORYMAP_WRITE: u32 = 1u32; +pub const DI_READ_SPOOL_JOB: u32 = 3u32; +pub const DMPUB_BOOKLET_EDGE: u32 = 21u32; +pub const DMPUB_COLOR: u32 = 6u32; +pub const DMPUB_COPIES_COLLATE: u32 = 3u32; +pub const DMPUB_DEFSOURCE: u32 = 4u32; +pub const DMPUB_DITHERTYPE: u32 = 13u32; +pub const DMPUB_DUPLEX: u32 = 7u32; +pub const DMPUB_FIRST: u32 = 1u32; +pub const DMPUB_FORMNAME: u32 = 9u32; +pub const DMPUB_ICMINTENT: u32 = 11u32; +pub const DMPUB_ICMMETHOD: u32 = 10u32; +pub const DMPUB_LAST: u32 = 21u32; +pub const DMPUB_MANUAL_DUPLEX: u32 = 19u32; +pub const DMPUB_MEDIATYPE: u32 = 12u32; +pub const DMPUB_NONE: u32 = 0u32; +pub const DMPUB_NUP: u32 = 16u32; +pub const DMPUB_NUP_DIRECTION: u32 = 18u32; +pub const DMPUB_OEM_GRAPHIC_ITEM: u32 = 98u32; +pub const DMPUB_OEM_PAPER_ITEM: u32 = 97u32; +pub const DMPUB_OEM_ROOT_ITEM: u32 = 99u32; +pub const DMPUB_ORIENTATION: u32 = 1u32; +pub const DMPUB_OUTPUTBIN: u32 = 14u32; +pub const DMPUB_PAGEORDER: u32 = 17u32; +pub const DMPUB_PRINTQUALITY: u32 = 5u32; +pub const DMPUB_QUALITY: u32 = 15u32; +pub const DMPUB_SCALE: u32 = 2u32; +pub const DMPUB_STAPLE: u32 = 20u32; +pub const DMPUB_TTOPTION: u32 = 8u32; +pub const DMPUB_USER: u32 = 100u32; +pub const DM_ADVANCED: u32 = 16u32; +pub const DM_INVALIDATE_DRIVER_CACHE: u32 = 536870912u32; +pub const DM_NOPERMISSION: u32 = 32u32; +pub const DM_PROMPT_NON_MODAL: u32 = 1073741824u32; +pub const DM_RESERVED: u32 = 2147483648u32; +pub const DM_USER_DEFAULT: u32 = 64u32; +pub const DOCUMENTEVENT_ABORTDOC: u32 = 9u32; +pub const DOCUMENTEVENT_CREATEDCPOST: u32 = 2u32; +pub const DOCUMENTEVENT_CREATEDCPRE: u32 = 1u32; +pub const DOCUMENTEVENT_DELETEDC: u32 = 10u32; +pub const DOCUMENTEVENT_ENDDOC: u32 = 8u32; +pub const DOCUMENTEVENT_ENDDOCPOST: u32 = 12u32; +pub const DOCUMENTEVENT_ENDDOCPRE: u32 = 8u32; +pub const DOCUMENTEVENT_ENDPAGE: u32 = 7u32; +pub const DOCUMENTEVENT_ESCAPE: u32 = 11u32; +pub const DOCUMENTEVENT_FAILURE: i32 = -1i32; +pub const DOCUMENTEVENT_FIRST: u32 = 1u32; +pub const DOCUMENTEVENT_LAST: u32 = 15u32; +pub const DOCUMENTEVENT_QUERYFILTER: u32 = 14u32; +pub const DOCUMENTEVENT_RESETDCPOST: u32 = 4u32; +pub const DOCUMENTEVENT_RESETDCPRE: u32 = 3u32; +pub const DOCUMENTEVENT_SPOOLED: u32 = 65536u32; +pub const DOCUMENTEVENT_STARTDOC: u32 = 5u32; +pub const DOCUMENTEVENT_STARTDOCPOST: u32 = 13u32; +pub const DOCUMENTEVENT_STARTDOCPRE: u32 = 5u32; +pub const DOCUMENTEVENT_STARTPAGE: u32 = 6u32; +pub const DOCUMENTEVENT_SUCCESS: u32 = 1u32; +pub const DOCUMENTEVENT_UNSUPPORTED: u32 = 0u32; +pub const DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTPOST: u32 = 5u32; +pub const DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTPRE: u32 = 2u32; +pub const DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTPRINTTICKETPOST: u32 = 11u32; +pub const DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTPRINTTICKETPRE: u32 = 8u32; +pub const DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTSEQUENCEPOST: u32 = 13u32; +pub const DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTSEQUENCEPRE: u32 = 1u32; +pub const DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTSEQUENCEPRINTTICKETPOST: u32 = 12u32; +pub const DOCUMENTEVENT_XPS_ADDFIXEDDOCUMENTSEQUENCEPRINTTICKETPRE: u32 = 7u32; +pub const DOCUMENTEVENT_XPS_ADDFIXEDPAGEEPRE: u32 = 3u32; +pub const DOCUMENTEVENT_XPS_ADDFIXEDPAGEPOST: u32 = 4u32; +pub const DOCUMENTEVENT_XPS_ADDFIXEDPAGEPRINTTICKETPOST: u32 = 10u32; +pub const DOCUMENTEVENT_XPS_ADDFIXEDPAGEPRINTTICKETPRE: u32 = 9u32; +pub const DOCUMENTEVENT_XPS_CANCELJOB: u32 = 6u32; +pub const DOC_INFO_INTERNAL_LEVEL: u32 = 100u32; +pub const DPD_DELETE_ALL_FILES: u32 = 4u32; +pub const DPD_DELETE_SPECIFIC_VERSION: u32 = 2u32; +pub const DPD_DELETE_UNUSED_FILES: u32 = 1u32; +pub const DPF_ICONID_AS_HICON: u32 = 1u32; +pub const DPF_USE_HDLGTEMPLATE: u32 = 2u32; +pub const DPS_NOPERMISSION: u32 = 1u32; +pub const DP_STD_DOCPROPPAGE1: u32 = 65533u32; +pub const DP_STD_DOCPROPPAGE2: u32 = 65534u32; +pub const DP_STD_RESERVED_START: u32 = 65520u32; +pub const DP_STD_TREEVIEWPAGE: u32 = 65535u32; +pub const DRIVER_EVENT_DELETE: u32 = 2u32; +pub const DRIVER_EVENT_INITIALIZE: u32 = 1u32; +pub const DRIVER_KERNELMODE: u32 = 1u32; +pub const DRIVER_USERMODE: u32 = 2u32; +pub const DSPRINT_PENDING: u32 = 2147483648u32; +pub const DSPRINT_PUBLISH: u32 = 1u32; +pub const DSPRINT_REPUBLISH: u32 = 8u32; +pub const DSPRINT_UNPUBLISH: u32 = 4u32; +pub const DSPRINT_UPDATE: u32 = 2u32; +pub const ECBF_CHECKNAME_AT_FRONT: u32 = 1u32; +pub const ECBF_CHECKNAME_ONLY: u32 = 128u32; +pub const ECBF_CHECKNAME_ONLY_ENABLED: u32 = 2u32; +pub const ECBF_ICONID_AS_HICON: u32 = 4u32; +pub const ECBF_MASK: u32 = 255u32; +pub const ECBF_OVERLAY_ECBICON_IF_CHECKED: u32 = 16u32; +pub const ECBF_OVERLAY_NO_ICON: u32 = 64u32; +pub const ECBF_OVERLAY_STOP_ICON: u32 = 32u32; +pub const ECBF_OVERLAY_WARNING_ICON: u32 = 8u32; +pub const EMF_PP_COLOR_OPTIMIZATION: u32 = 1u32; +pub const EPF_ICONID_AS_HICON: u32 = 8u32; +pub const EPF_INCL_SETUP_TITLE: u32 = 2u32; +pub const EPF_MASK: u32 = 255u32; +pub const EPF_NO_DOT_DOT_DOT: u32 = 4u32; +pub const EPF_OVERLAY_NO_ICON: u32 = 64u32; +pub const EPF_OVERLAY_STOP_ICON: u32 = 32u32; +pub const EPF_OVERLAY_WARNING_ICON: u32 = 16u32; +pub const EPF_PUSH_TYPE_DLGPROC: u32 = 1u32; +pub const EPF_USE_HDLGTEMPLATE: u32 = 128u32; +pub const ERROR_BIDI_DEVICE_CONFIG_UNCHANGED: u32 = 13014u32; +pub const ERROR_BIDI_DEVICE_OFFLINE: u32 = 13004u32; +pub const ERROR_BIDI_ERROR_BASE: u32 = 13000u32; +pub const ERROR_BIDI_GET_ARGUMENT_NOT_SUPPORTED: u32 = 13012u32; +pub const ERROR_BIDI_GET_MISSING_ARGUMENT: u32 = 13013u32; +pub const ERROR_BIDI_GET_REQUIRES_ARGUMENT: u32 = 13011u32; +pub const ERROR_BIDI_NO_BIDI_SCHEMA_EXTENSIONS: u32 = 13016u32; +pub const ERROR_BIDI_NO_LOCALIZED_RESOURCES: u32 = 13015u32; +pub const ERROR_BIDI_SCHEMA_NOT_SUPPORTED: u32 = 13005u32; +pub const ERROR_BIDI_SCHEMA_READ_ONLY: u32 = 13002u32; +pub const ERROR_BIDI_SCHEMA_WRITE_ONLY: u32 = 13010u32; +pub const ERROR_BIDI_SERVER_OFFLINE: u32 = 13003u32; +pub const ERROR_BIDI_SET_DIFFERENT_TYPE: u32 = 13006u32; +pub const ERROR_BIDI_SET_INVALID_SCHEMAPATH: u32 = 13008u32; +pub const ERROR_BIDI_SET_MULTIPLE_SCHEMAPATH: u32 = 13007u32; +pub const ERROR_BIDI_SET_UNKNOWN_FAILURE: u32 = 13009u32; +pub const ERROR_BIDI_STATUS_OK: u32 = 0u32; +pub const ERROR_BIDI_STATUS_WARNING: u32 = 13001u32; +pub const ERROR_BIDI_UNSUPPORTED_CLIENT_LANGUAGE: u32 = 13017u32; +pub const ERROR_BIDI_UNSUPPORTED_RESOURCE_FORMAT: u32 = 13018u32; +pub const ERR_CPSUI_ALLOCMEM_FAILED: i32 = -2i32; +pub const ERR_CPSUI_CREATEPROPPAGE_FAILED: i32 = -10i32; +pub const ERR_CPSUI_CREATE_IMAGELIST_FAILED: i32 = -33i32; +pub const ERR_CPSUI_CREATE_TRACKBAR_FAILED: i32 = -31i32; +pub const ERR_CPSUI_CREATE_UDARROW_FAILED: i32 = -32i32; +pub const ERR_CPSUI_DMCOPIES_USE_EXTPUSH: i32 = -43i32; +pub const ERR_CPSUI_FUNCTION_NOT_IMPLEMENTED: i32 = -9999i32; +pub const ERR_CPSUI_GETLASTERROR: i32 = -1i32; +pub const ERR_CPSUI_INTERNAL_ERROR: i32 = -10000i32; +pub const ERR_CPSUI_INVALID_DLGPAGEIDX: i32 = -16i32; +pub const ERR_CPSUI_INVALID_DLGPAGE_CBSIZE: i32 = -14i32; +pub const ERR_CPSUI_INVALID_DMPUBID: i32 = -29i32; +pub const ERR_CPSUI_INVALID_DMPUB_TVOT: i32 = -30i32; +pub const ERR_CPSUI_INVALID_ECB_CBSIZE: i32 = -26i32; +pub const ERR_CPSUI_INVALID_EDITBOX_BUF_SIZE: i32 = -25i32; +pub const ERR_CPSUI_INVALID_EDITBOX_PSEL: i32 = -24i32; +pub const ERR_CPSUI_INVALID_EXTPUSH_CBSIZE: i32 = -39i32; +pub const ERR_CPSUI_INVALID_LBCB_TYPE: i32 = -35i32; +pub const ERR_CPSUI_INVALID_LPARAM: i32 = -4i32; +pub const ERR_CPSUI_INVALID_OPTITEM_CBSIZE: i32 = -19i32; +pub const ERR_CPSUI_INVALID_OPTPARAM_CBSIZE: i32 = -23i32; +pub const ERR_CPSUI_INVALID_OPTTYPE_CBSIZE: i32 = -20i32; +pub const ERR_CPSUI_INVALID_OPTTYPE_COUNT: i32 = -21i32; +pub const ERR_CPSUI_INVALID_PDATA: i32 = -3i32; +pub const ERR_CPSUI_INVALID_PDLGPAGE: i32 = -13i32; +pub const ERR_CPSUI_INVALID_PUSHBUTTON_TYPE: i32 = -38i32; +pub const ERR_CPSUI_INVALID_TVOT_TYPE: i32 = -34i32; +pub const ERR_CPSUI_MORE_THAN_ONE_STDPAGE: i32 = -12i32; +pub const ERR_CPSUI_MORE_THAN_ONE_TVPAGE: i32 = -11i32; +pub const ERR_CPSUI_NO_EXTPUSH_DLGTEMPLATEID: i32 = -41i32; +pub const ERR_CPSUI_NO_PROPSHEETPAGE: i32 = -8i32; +pub const ERR_CPSUI_NULL_CALLERNAME: i32 = -6i32; +pub const ERR_CPSUI_NULL_ECB_PCHECKEDNAME: i32 = -28i32; +pub const ERR_CPSUI_NULL_ECB_PTITLE: i32 = -27i32; +pub const ERR_CPSUI_NULL_EXTPUSH_CALLBACK: i32 = -42i32; +pub const ERR_CPSUI_NULL_EXTPUSH_DLGPROC: i32 = -40i32; +pub const ERR_CPSUI_NULL_HINST: i32 = -5i32; +pub const ERR_CPSUI_NULL_OPTITEMNAME: i32 = -7i32; +pub const ERR_CPSUI_NULL_POPTITEM: i32 = -18i32; +pub const ERR_CPSUI_NULL_POPTPARAM: i32 = -22i32; +pub const ERR_CPSUI_SUBITEM_DIFF_DLGPAGEIDX: i32 = -17i32; +pub const ERR_CPSUI_SUBITEM_DIFF_OPTIF_HIDE: i32 = -36i32; +pub const ERR_CPSUI_TOO_MANY_DLGPAGES: i32 = -15i32; +pub const ERR_CPSUI_TOO_MANY_PROPSHEETPAGES: i32 = -9i32; +pub const ERR_CPSUI_ZERO_OPTITEM: i32 = -44i32; +pub const E_VERSION_NOT_SUPPORTED: u32 = 2147745793u32; +pub const FG_CANCHANGE: u32 = 128u32; +pub const FILL_WITH_DEFAULTS: u32 = 1u32; +pub const FMTID_PrinterPropertyBag: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x75f9adca_097d_45c3_a6e4_bab29e276f3e); +pub const FNT_INFO_CURRENTFONTID: u32 = 10u32; +pub const FNT_INFO_FONTBOLD: u32 = 6u32; +pub const FNT_INFO_FONTHEIGHT: u32 = 4u32; +pub const FNT_INFO_FONTITALIC: u32 = 7u32; +pub const FNT_INFO_FONTMAXWIDTH: u32 = 13u32; +pub const FNT_INFO_FONTSTRIKETHRU: u32 = 9u32; +pub const FNT_INFO_FONTUNDERLINE: u32 = 8u32; +pub const FNT_INFO_FONTWIDTH: u32 = 5u32; +pub const FNT_INFO_GRAYPERCENTAGE: u32 = 1u32; +pub const FNT_INFO_MAX: u32 = 14u32; +pub const FNT_INFO_NEXTFONTID: u32 = 2u32; +pub const FNT_INFO_NEXTGLYPH: u32 = 3u32; +pub const FNT_INFO_PRINTDIRINCCDEGREES: u32 = 0u32; +pub const FNT_INFO_TEXTXRES: u32 = 12u32; +pub const FNT_INFO_TEXTYRES: u32 = 11u32; +pub const FONT_DIR_SORTED: u32 = 1u32; +pub const FONT_FL_DEVICEFONT: u32 = 16u32; +pub const FONT_FL_GLYPHSET_GTT: u32 = 32u32; +pub const FONT_FL_GLYPHSET_RLE: u32 = 64u32; +pub const FONT_FL_IFI: u32 = 2u32; +pub const FONT_FL_PERMANENT_SF: u32 = 8u32; +pub const FONT_FL_RESERVED: u32 = 32768u32; +pub const FONT_FL_SOFTFONT: u32 = 4u32; +pub const FONT_FL_UFM: u32 = 1u32; +pub const FORM_BUILTIN: u32 = 1u32; +pub const FORM_PRINTER: u32 = 2u32; +pub const FORM_USER: u32 = 0u32; +pub const FinalPageCount: PageCountType = 0i32; +pub const Font_Normal: EXpsFontOptions = 0i32; +pub const Font_Obfusticate: EXpsFontOptions = 1i32; +pub const GPD_OEMCUSTOMDATA: u32 = 1u32; +pub const GUID_DEVINTERFACE_IPPUSB_PRINT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2f40381_f46d_4e51_bce7_62de6cf2d098); +pub const GUID_DEVINTERFACE_USBPRINT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x28d78fad_5a12_11d1_ae5b_0000f803a8c2); +pub const IDI_CPSUI_ADVANCE: u32 = 64058u32; +pub const IDI_CPSUI_AUTOSEL: u32 = 64025u32; +pub const IDI_CPSUI_COLLATE: u32 = 64030u32; +pub const IDI_CPSUI_COLOR: u32 = 64040u32; +pub const IDI_CPSUI_COPY: u32 = 64046u32; +pub const IDI_CPSUI_DEVICE: u32 = 64060u32; +pub const IDI_CPSUI_DEVICE2: u32 = 64061u32; +pub const IDI_CPSUI_DEVICE_FEATURE: u32 = 64080u32; +pub const IDI_CPSUI_DITHER_COARSE: u32 = 64042u32; +pub const IDI_CPSUI_DITHER_FINE: u32 = 64043u32; +pub const IDI_CPSUI_DITHER_LINEART: u32 = 64044u32; +pub const IDI_CPSUI_DITHER_NONE: u32 = 64041u32; +pub const IDI_CPSUI_DOCUMENT: u32 = 64059u32; +pub const IDI_CPSUI_DUPLEX_HORZ: u32 = 64032u32; +pub const IDI_CPSUI_DUPLEX_HORZ_L: u32 = 64085u32; +pub const IDI_CPSUI_DUPLEX_NONE: u32 = 64031u32; +pub const IDI_CPSUI_DUPLEX_NONE_L: u32 = 64084u32; +pub const IDI_CPSUI_DUPLEX_VERT: u32 = 64033u32; +pub const IDI_CPSUI_DUPLEX_VERT_L: u32 = 64086u32; +pub const IDI_CPSUI_EMPTY: u32 = 64000u32; +pub const IDI_CPSUI_ENVELOPE: u32 = 64010u32; +pub const IDI_CPSUI_ENVELOPE_FEED: u32 = 64097u32; +pub const IDI_CPSUI_ERROR: u32 = 64050u32; +pub const IDI_CPSUI_FALSE: u32 = 64005u32; +pub const IDI_CPSUI_FAX: u32 = 64095u32; +pub const IDI_CPSUI_FONTCART: u32 = 64013u32; +pub const IDI_CPSUI_FONTCARTHDR: u32 = 64012u32; +pub const IDI_CPSUI_FONTCART_SLOT: u32 = 64098u32; +pub const IDI_CPSUI_FONTSUB: u32 = 64081u32; +pub const IDI_CPSUI_FORMTRAYASSIGN: u32 = 64076u32; +pub const IDI_CPSUI_GENERIC_ITEM: u32 = 64073u32; +pub const IDI_CPSUI_GENERIC_OPTION: u32 = 64072u32; +pub const IDI_CPSUI_GRAPHIC: u32 = 64057u32; +pub const IDI_CPSUI_HALFTONE_SETUP: u32 = 64048u32; +pub const IDI_CPSUI_HTCLRADJ: u32 = 64047u32; +pub const IDI_CPSUI_HT_DEVICE: u32 = 64017u32; +pub const IDI_CPSUI_HT_HOST: u32 = 64016u32; +pub const IDI_CPSUI_ICM_INTENT: u32 = 64053u32; +pub const IDI_CPSUI_ICM_METHOD: u32 = 64052u32; +pub const IDI_CPSUI_ICM_OPTION: u32 = 64051u32; +pub const IDI_CPSUI_ICONID_FIRST: u32 = 64000u32; +pub const IDI_CPSUI_ICONID_LAST: u32 = 64111u32; +pub const IDI_CPSUI_INSTALLABLE_OPTION: u32 = 64078u32; +pub const IDI_CPSUI_LANDSCAPE: u32 = 64023u32; +pub const IDI_CPSUI_LAYOUT_BMP_ARROWL: u32 = 64100u32; +pub const IDI_CPSUI_LAYOUT_BMP_ARROWLR: u32 = 64104u32; +pub const IDI_CPSUI_LAYOUT_BMP_ARROWS: u32 = 64101u32; +pub const IDI_CPSUI_LAYOUT_BMP_BOOKLETL: u32 = 64102u32; +pub const IDI_CPSUI_LAYOUT_BMP_BOOKLETL_NB: u32 = 64106u32; +pub const IDI_CPSUI_LAYOUT_BMP_BOOKLETP: u32 = 64103u32; +pub const IDI_CPSUI_LAYOUT_BMP_BOOKLETP_NB: u32 = 64107u32; +pub const IDI_CPSUI_LAYOUT_BMP_PORTRAIT: u32 = 64099u32; +pub const IDI_CPSUI_LAYOUT_BMP_ROT_PORT: u32 = 64105u32; +pub const IDI_CPSUI_LF_PEN_PLOTTER: u32 = 64087u32; +pub const IDI_CPSUI_LF_RASTER_PLOTTER: u32 = 64089u32; +pub const IDI_CPSUI_MANUAL_FEED: u32 = 64094u32; +pub const IDI_CPSUI_MEM: u32 = 64011u32; +pub const IDI_CPSUI_MONO: u32 = 64039u32; +pub const IDI_CPSUI_NO: u32 = 64003u32; +pub const IDI_CPSUI_NOTINSTALLED: u32 = 64069u32; +pub const IDI_CPSUI_NUP_BORDER: u32 = 64111u32; +pub const IDI_CPSUI_OFF: u32 = 64007u32; +pub const IDI_CPSUI_ON: u32 = 64008u32; +pub const IDI_CPSUI_OPTION: u32 = 64066u32; +pub const IDI_CPSUI_OPTION2: u32 = 64067u32; +pub const IDI_CPSUI_OUTBIN: u32 = 64055u32; +pub const IDI_CPSUI_OUTPUT: u32 = 64056u32; +pub const IDI_CPSUI_PAGE_PROTECT: u32 = 64096u32; +pub const IDI_CPSUI_PAPER_OUTPUT: u32 = 64009u32; +pub const IDI_CPSUI_PAPER_TRAY: u32 = 64026u32; +pub const IDI_CPSUI_PAPER_TRAY2: u32 = 64027u32; +pub const IDI_CPSUI_PAPER_TRAY3: u32 = 64028u32; +pub const IDI_CPSUI_PEN_CARROUSEL: u32 = 64092u32; +pub const IDI_CPSUI_PLOTTER_PEN: u32 = 64093u32; +pub const IDI_CPSUI_PORTRAIT: u32 = 64022u32; +pub const IDI_CPSUI_POSTSCRIPT: u32 = 64082u32; +pub const IDI_CPSUI_PRINTER: u32 = 64062u32; +pub const IDI_CPSUI_PRINTER2: u32 = 64063u32; +pub const IDI_CPSUI_PRINTER3: u32 = 64064u32; +pub const IDI_CPSUI_PRINTER4: u32 = 64065u32; +pub const IDI_CPSUI_PRINTER_FEATURE: u32 = 64079u32; +pub const IDI_CPSUI_PRINTER_FOLDER: u32 = 64077u32; +pub const IDI_CPSUI_QUESTION: u32 = 64075u32; +pub const IDI_CPSUI_RES_DRAFT: u32 = 64034u32; +pub const IDI_CPSUI_RES_HIGH: u32 = 64037u32; +pub const IDI_CPSUI_RES_LOW: u32 = 64035u32; +pub const IDI_CPSUI_RES_MEDIUM: u32 = 64036u32; +pub const IDI_CPSUI_RES_PRESENTATION: u32 = 64038u32; +pub const IDI_CPSUI_ROLL_PAPER: u32 = 64091u32; +pub const IDI_CPSUI_ROT_LAND: u32 = 64024u32; +pub const IDI_CPSUI_ROT_PORT: u32 = 64110u32; +pub const IDI_CPSUI_RUN_DIALOG: u32 = 64074u32; +pub const IDI_CPSUI_SCALING: u32 = 64045u32; +pub const IDI_CPSUI_SEL_NONE: u32 = 64001u32; +pub const IDI_CPSUI_SF_PEN_PLOTTER: u32 = 64088u32; +pub const IDI_CPSUI_SF_RASTER_PLOTTER: u32 = 64090u32; +pub const IDI_CPSUI_STAPLER_OFF: u32 = 64015u32; +pub const IDI_CPSUI_STAPLER_ON: u32 = 64014u32; +pub const IDI_CPSUI_STD_FORM: u32 = 64054u32; +pub const IDI_CPSUI_STOP: u32 = 64068u32; +pub const IDI_CPSUI_STOP_WARNING_OVERLAY: u32 = 64071u32; +pub const IDI_CPSUI_TELEPHONE: u32 = 64083u32; +pub const IDI_CPSUI_TRANSPARENT: u32 = 64029u32; +pub const IDI_CPSUI_TRUE: u32 = 64006u32; +pub const IDI_CPSUI_TT_DOWNLOADSOFT: u32 = 64019u32; +pub const IDI_CPSUI_TT_DOWNLOADVECT: u32 = 64020u32; +pub const IDI_CPSUI_TT_PRINTASGRAPHIC: u32 = 64018u32; +pub const IDI_CPSUI_TT_SUBDEV: u32 = 64021u32; +pub const IDI_CPSUI_WARNING: u32 = 64002u32; +pub const IDI_CPSUI_WARNING_OVERLAY: u32 = 64070u32; +pub const IDI_CPSUI_WATERMARK: u32 = 64049u32; +pub const IDI_CPSUI_YES: u32 = 64004u32; +pub const IDS_CPSUI_ABOUT: u32 = 64848u32; +pub const IDS_CPSUI_ADVANCED: u32 = 64722u32; +pub const IDS_CPSUI_ADVANCEDOCUMENT: u32 = 64716u32; +pub const IDS_CPSUI_ALL: u32 = 64841u32; +pub const IDS_CPSUI_AUTOSELECT: u32 = 64718u32; +pub const IDS_CPSUI_BACKTOFRONT: u32 = 64857u32; +pub const IDS_CPSUI_BOND: u32 = 64786u32; +pub const IDS_CPSUI_BOOKLET: u32 = 64873u32; +pub const IDS_CPSUI_BOOKLET_EDGE: u32 = 64888u32; +pub const IDS_CPSUI_BOOKLET_EDGE_LEFT: u32 = 64889u32; +pub const IDS_CPSUI_BOOKLET_EDGE_RIGHT: u32 = 64890u32; +pub const IDS_CPSUI_CASSETTE_TRAY: u32 = 64810u32; +pub const IDS_CPSUI_CHANGE: u32 = 64702u32; +pub const IDS_CPSUI_CHANGED: u32 = 64846u32; +pub const IDS_CPSUI_CHANGES: u32 = 64845u32; +pub const IDS_CPSUI_COARSE: u32 = 64787u32; +pub const IDS_CPSUI_COLLATE: u32 = 64756u32; +pub const IDS_CPSUI_COLLATED: u32 = 64757u32; +pub const IDS_CPSUI_COLON_SEP: u32 = 64707u32; +pub const IDS_CPSUI_COLOR: u32 = 64764u32; +pub const IDS_CPSUI_COLOR_APPERANCE: u32 = 64744u32; +pub const IDS_CPSUI_COPIES: u32 = 64831u32; +pub const IDS_CPSUI_COPY: u32 = 64830u32; +pub const IDS_CPSUI_DEFAULT: u32 = 64732u32; +pub const IDS_CPSUI_DEFAULTDOCUMENT: u32 = 64714u32; +pub const IDS_CPSUI_DEFAULT_TRAY: u32 = 64811u32; +pub const IDS_CPSUI_DEVICE: u32 = 64842u32; +pub const IDS_CPSUI_DEVICEOPTIONS: u32 = 64725u32; +pub const IDS_CPSUI_DEVICE_SETTINGS: u32 = 64852u32; +pub const IDS_CPSUI_DITHERING: u32 = 64752u32; +pub const IDS_CPSUI_DOCUMENT: u32 = 64715u32; +pub const IDS_CPSUI_DOWN_THEN_LEFT: u32 = 64882u32; +pub const IDS_CPSUI_DOWN_THEN_RIGHT: u32 = 64880u32; +pub const IDS_CPSUI_DRAFT: u32 = 64759u32; +pub const IDS_CPSUI_DUPLEX: u32 = 64745u32; +pub const IDS_CPSUI_ENVELOPE_TRAY: u32 = 64804u32; +pub const IDS_CPSUI_ENVMANUAL_TRAY: u32 = 64805u32; +pub const IDS_CPSUI_ERRDIFFUSE: u32 = 64790u32; +pub const IDS_CPSUI_ERROR: u32 = 64733u32; +pub const IDS_CPSUI_EXIST: u32 = 64736u32; +pub const IDS_CPSUI_FALSE: u32 = 64726u32; +pub const IDS_CPSUI_FAST: u32 = 64838u32; +pub const IDS_CPSUI_FAX: u32 = 64835u32; +pub const IDS_CPSUI_FINE: u32 = 64788u32; +pub const IDS_CPSUI_FORMNAME: u32 = 64747u32; +pub const IDS_CPSUI_FORMSOURCE: u32 = 64812u32; +pub const IDS_CPSUI_FORMTRAYASSIGN: u32 = 64798u32; +pub const IDS_CPSUI_FRONTTOBACK: u32 = 64856u32; +pub const IDS_CPSUI_GLOSSY: u32 = 64783u32; +pub const IDS_CPSUI_GRAPHIC: u32 = 64720u32; +pub const IDS_CPSUI_GRAYSCALE: u32 = 64765u32; +pub const IDS_CPSUI_HALFTONE: u32 = 64791u32; +pub const IDS_CPSUI_HALFTONE_SETUP: u32 = 64817u32; +pub const IDS_CPSUI_HIGH: u32 = 64762u32; +pub const IDS_CPSUI_HORIZONTAL: u32 = 64768u32; +pub const IDS_CPSUI_HTCLRADJ: u32 = 64792u32; +pub const IDS_CPSUI_ICM: u32 = 64748u32; +pub const IDS_CPSUI_ICMINTENT: u32 = 64750u32; +pub const IDS_CPSUI_ICMMETHOD: u32 = 64749u32; +pub const IDS_CPSUI_ICM_BLACKWHITE: u32 = 64776u32; +pub const IDS_CPSUI_ICM_COLORMETRIC: u32 = 64781u32; +pub const IDS_CPSUI_ICM_CONTRAST: u32 = 64780u32; +pub const IDS_CPSUI_ICM_NO: u32 = 64777u32; +pub const IDS_CPSUI_ICM_SATURATION: u32 = 64779u32; +pub const IDS_CPSUI_ICM_YES: u32 = 64778u32; +pub const IDS_CPSUI_INSTFONTCART: u32 = 64818u32; +pub const IDS_CPSUI_LANDSCAPE: u32 = 64754u32; +pub const IDS_CPSUI_LARGECAP_TRAY: u32 = 64809u32; +pub const IDS_CPSUI_LARGEFMT_TRAY: u32 = 64808u32; +pub const IDS_CPSUI_LBCB_NOSEL: u32 = 64712u32; +pub const IDS_CPSUI_LEFT_ANGLE: u32 = 64708u32; +pub const IDS_CPSUI_LEFT_SLOT: u32 = 64823u32; +pub const IDS_CPSUI_LEFT_THEN_DOWN: u32 = 64881u32; +pub const IDS_CPSUI_LINEART: u32 = 64789u32; +pub const IDS_CPSUI_LONG_SIDE: u32 = 64770u32; +pub const IDS_CPSUI_LOW: u32 = 64760u32; +pub const IDS_CPSUI_LOWER_TRAY: u32 = 64801u32; +pub const IDS_CPSUI_MAILBOX: u32 = 64829u32; +pub const IDS_CPSUI_MAKE: u32 = 64833u32; +pub const IDS_CPSUI_MANUALFEED: u32 = 64813u32; +pub const IDS_CPSUI_MANUAL_DUPLEX: u32 = 64883u32; +pub const IDS_CPSUI_MANUAL_DUPLEX_OFF: u32 = 64885u32; +pub const IDS_CPSUI_MANUAL_DUPLEX_ON: u32 = 64884u32; +pub const IDS_CPSUI_MANUAL_TRAY: u32 = 64803u32; +pub const IDS_CPSUI_MEDIA: u32 = 64751u32; +pub const IDS_CPSUI_MEDIUM: u32 = 64761u32; +pub const IDS_CPSUI_MIDDLE_TRAY: u32 = 64802u32; +pub const IDS_CPSUI_MONOCHROME: u32 = 64766u32; +pub const IDS_CPSUI_MORE: u32 = 64701u32; +pub const IDS_CPSUI_NO: u32 = 64728u32; +pub const IDS_CPSUI_NONE: u32 = 64734u32; +pub const IDS_CPSUI_NOT: u32 = 64735u32; +pub const IDS_CPSUI_NOTINSTALLED: u32 = 64737u32; +pub const IDS_CPSUI_NO_NAME: u32 = 64850u32; +pub const IDS_CPSUI_NUM_OF_COPIES: u32 = 64740u32; +pub const IDS_CPSUI_NUP: u32 = 64864u32; +pub const IDS_CPSUI_NUP_BORDER: u32 = 64891u32; +pub const IDS_CPSUI_NUP_BORDERED: u32 = 64892u32; +pub const IDS_CPSUI_NUP_DIRECTION: u32 = 64878u32; +pub const IDS_CPSUI_NUP_FOURUP: u32 = 64867u32; +pub const IDS_CPSUI_NUP_NINEUP: u32 = 64869u32; +pub const IDS_CPSUI_NUP_NORMAL: u32 = 64865u32; +pub const IDS_CPSUI_NUP_SIXTEENUP: u32 = 64870u32; +pub const IDS_CPSUI_NUP_SIXUP: u32 = 64868u32; +pub const IDS_CPSUI_NUP_TWOUP: u32 = 64866u32; +pub const IDS_CPSUI_OF: u32 = 64704u32; +pub const IDS_CPSUI_OFF: u32 = 64730u32; +pub const IDS_CPSUI_ON: u32 = 64731u32; +pub const IDS_CPSUI_ONLYONE: u32 = 64800u32; +pub const IDS_CPSUI_OPTION: u32 = 64703u32; +pub const IDS_CPSUI_OPTIONS: u32 = 64721u32; +pub const IDS_CPSUI_ORIENTATION: u32 = 64738u32; +pub const IDS_CPSUI_OUTBINASSIGN: u32 = 64796u32; +pub const IDS_CPSUI_OUTPUTBIN: u32 = 64863u32; +pub const IDS_CPSUI_PAGEORDER: u32 = 64855u32; +pub const IDS_CPSUI_PAGEPROTECT: u32 = 64816u32; +pub const IDS_CPSUI_PAPER_OUTPUT: u32 = 64719u32; +pub const IDS_CPSUI_PERCENT: u32 = 64711u32; +pub const IDS_CPSUI_PLOT: u32 = 64836u32; +pub const IDS_CPSUI_PORTRAIT: u32 = 64753u32; +pub const IDS_CPSUI_POSTER: u32 = 64874u32; +pub const IDS_CPSUI_POSTER_2x2: u32 = 64875u32; +pub const IDS_CPSUI_POSTER_3x3: u32 = 64876u32; +pub const IDS_CPSUI_POSTER_4x4: u32 = 64877u32; +pub const IDS_CPSUI_PRESENTATION: u32 = 64763u32; +pub const IDS_CPSUI_PRINT: u32 = 64834u32; +pub const IDS_CPSUI_PRINTER: u32 = 64717u32; +pub const IDS_CPSUI_PRINTERMEM_KB: u32 = 64814u32; +pub const IDS_CPSUI_PRINTERMEM_MB: u32 = 64815u32; +pub const IDS_CPSUI_PRINTFLDSETTING: u32 = 64758u32; +pub const IDS_CPSUI_PRINTQUALITY: u32 = 64742u32; +pub const IDS_CPSUI_PROPERTIES: u32 = 64713u32; +pub const IDS_CPSUI_QUALITY_BEST: u32 = 64861u32; +pub const IDS_CPSUI_QUALITY_BETTER: u32 = 64860u32; +pub const IDS_CPSUI_QUALITY_CUSTOM: u32 = 64862u32; +pub const IDS_CPSUI_QUALITY_DRAFT: u32 = 64859u32; +pub const IDS_CPSUI_QUALITY_SETTINGS: u32 = 64858u32; +pub const IDS_CPSUI_RANGE_FROM: u32 = 64705u32; +pub const IDS_CPSUI_REGULAR: u32 = 64785u32; +pub const IDS_CPSUI_RESET: u32 = 64840u32; +pub const IDS_CPSUI_RESOLUTION: u32 = 64743u32; +pub const IDS_CPSUI_REVERT: u32 = 64844u32; +pub const IDS_CPSUI_RIGHT_ANGLE: u32 = 64709u32; +pub const IDS_CPSUI_RIGHT_SLOT: u32 = 64824u32; +pub const IDS_CPSUI_RIGHT_THEN_DOWN: u32 = 64879u32; +pub const IDS_CPSUI_ROTATED: u32 = 64839u32; +pub const IDS_CPSUI_ROT_LAND: u32 = 64755u32; +pub const IDS_CPSUI_ROT_PORT: u32 = 64886u32; +pub const IDS_CPSUI_SCALING: u32 = 64739u32; +pub const IDS_CPSUI_SETTING: u32 = 64851u32; +pub const IDS_CPSUI_SETTINGS: u32 = 64843u32; +pub const IDS_CPSUI_SETUP: u32 = 64700u32; +pub const IDS_CPSUI_SHORT_SIDE: u32 = 64771u32; +pub const IDS_CPSUI_SIDE1: u32 = 64871u32; +pub const IDS_CPSUI_SIDE2: u32 = 64872u32; +pub const IDS_CPSUI_SIMPLEX: u32 = 64767u32; +pub const IDS_CPSUI_SLASH_SEP: u32 = 64710u32; +pub const IDS_CPSUI_SLOT1: u32 = 64819u32; +pub const IDS_CPSUI_SLOT2: u32 = 64820u32; +pub const IDS_CPSUI_SLOT3: u32 = 64821u32; +pub const IDS_CPSUI_SLOT4: u32 = 64822u32; +pub const IDS_CPSUI_SLOW: u32 = 64837u32; +pub const IDS_CPSUI_SMALLFMT_TRAY: u32 = 64807u32; +pub const IDS_CPSUI_SOURCE: u32 = 64741u32; +pub const IDS_CPSUI_STACKER: u32 = 64828u32; +pub const IDS_CPSUI_STANDARD: u32 = 64782u32; +pub const IDS_CPSUI_STAPLE: u32 = 64887u32; +pub const IDS_CPSUI_STAPLER: u32 = 64825u32; +pub const IDS_CPSUI_STAPLER_OFF: u32 = 64827u32; +pub const IDS_CPSUI_STAPLER_ON: u32 = 64826u32; +pub const IDS_CPSUI_STDDOCPROPTAB: u32 = 64723u32; +pub const IDS_CPSUI_STDDOCPROPTAB1: u32 = 64853u32; +pub const IDS_CPSUI_STDDOCPROPTAB2: u32 = 64854u32; +pub const IDS_CPSUI_STDDOCPROPTVTAB: u32 = 64724u32; +pub const IDS_CPSUI_STRID_FIRST: u32 = 64700u32; +pub const IDS_CPSUI_STRID_LAST: u32 = 64892u32; +pub const IDS_CPSUI_TO: u32 = 64706u32; +pub const IDS_CPSUI_TOTAL: u32 = 64832u32; +pub const IDS_CPSUI_TRACTOR_TRAY: u32 = 64806u32; +pub const IDS_CPSUI_TRANSPARENCY: u32 = 64784u32; +pub const IDS_CPSUI_TRUE: u32 = 64727u32; +pub const IDS_CPSUI_TTOPTION: u32 = 64746u32; +pub const IDS_CPSUI_TT_DOWNLOADSOFT: u32 = 64773u32; +pub const IDS_CPSUI_TT_DOWNLOADVECT: u32 = 64774u32; +pub const IDS_CPSUI_TT_PRINTASGRAPHIC: u32 = 64772u32; +pub const IDS_CPSUI_TT_SUBDEV: u32 = 64775u32; +pub const IDS_CPSUI_UPPER_TRAY: u32 = 64799u32; +pub const IDS_CPSUI_USE_DEVICE_HT: u32 = 64794u32; +pub const IDS_CPSUI_USE_HOST_HT: u32 = 64793u32; +pub const IDS_CPSUI_USE_PRINTER_HT: u32 = 64795u32; +pub const IDS_CPSUI_VERSION: u32 = 64849u32; +pub const IDS_CPSUI_VERTICAL: u32 = 64769u32; +pub const IDS_CPSUI_WARNING: u32 = 64847u32; +pub const IDS_CPSUI_WATERMARK: u32 = 64797u32; +pub const IDS_CPSUI_YES: u32 = 64729u32; +pub const INSPSUIPAGE_MODE_AFTER: u32 = 1u32; +pub const INSPSUIPAGE_MODE_BEFORE: u32 = 0u32; +pub const INSPSUIPAGE_MODE_FIRST_CHILD: u32 = 2u32; +pub const INSPSUIPAGE_MODE_INDEX: u32 = 4u32; +pub const INSPSUIPAGE_MODE_LAST_CHILD: u32 = 3u32; +pub const INTERNAL_NOTIFICATION_QUEUE_IS_FULL: PrintAsyncNotifyError = 19i32; +pub const INVALID_NOTIFICATION_TYPE: PrintAsyncNotifyError = 20i32; +pub const IOCTL_USBPRINT_ADD_CHILD_DEVICE: u32 = 2228316u32; +pub const IOCTL_USBPRINT_ADD_MSIPP_COMPAT_ID: u32 = 2228308u32; +pub const IOCTL_USBPRINT_CYCLE_PORT: u32 = 2228320u32; +pub const IOCTL_USBPRINT_GET_1284_ID: u32 = 2228276u32; +pub const IOCTL_USBPRINT_GET_INTERFACE_TYPE: u32 = 2228300u32; +pub const IOCTL_USBPRINT_GET_LPT_STATUS: u32 = 2228272u32; +pub const IOCTL_USBPRINT_GET_PROTOCOL: u32 = 2228292u32; +pub const IOCTL_USBPRINT_SET_DEVICE_ID: u32 = 2228312u32; +pub const IOCTL_USBPRINT_SET_PORT_NUMBER: u32 = 2228304u32; +pub const IOCTL_USBPRINT_SET_PROTOCOL: u32 = 2228296u32; +pub const IOCTL_USBPRINT_SOFT_RESET: u32 = 2228288u32; +pub const IOCTL_USBPRINT_VENDOR_GET_COMMAND: u32 = 2228284u32; +pub const IOCTL_USBPRINT_VENDOR_SET_COMMAND: u32 = 2228280u32; +pub const IPDFP_COPY_ALL_FILES: u32 = 1u32; +pub const IntermediatePageCount: PageCountType = 1i32; +pub const JOB_ACCESS_ADMINISTER: u32 = 16u32; +pub const JOB_ACCESS_READ: u32 = 32u32; +pub const JOB_CONTROL_CANCEL: u32 = 3u32; +pub const JOB_CONTROL_DELETE: u32 = 5u32; +pub const JOB_CONTROL_LAST_PAGE_EJECTED: u32 = 7u32; +pub const JOB_CONTROL_PAUSE: u32 = 1u32; +pub const JOB_CONTROL_RELEASE: u32 = 9u32; +pub const JOB_CONTROL_RESTART: u32 = 4u32; +pub const JOB_CONTROL_RESUME: u32 = 2u32; +pub const JOB_CONTROL_RETAIN: u32 = 8u32; +pub const JOB_CONTROL_SEND_TOAST: u32 = 10u32; +pub const JOB_CONTROL_SENT_TO_PRINTER: u32 = 6u32; +pub const JOB_NOTIFY_FIELD_BYTES_PRINTED: u32 = 23u32; +pub const JOB_NOTIFY_FIELD_DATATYPE: u32 = 5u32; +pub const JOB_NOTIFY_FIELD_DEVMODE: u32 = 9u32; +pub const JOB_NOTIFY_FIELD_DOCUMENT: u32 = 13u32; +pub const JOB_NOTIFY_FIELD_DRIVER_NAME: u32 = 8u32; +pub const JOB_NOTIFY_FIELD_MACHINE_NAME: u32 = 1u32; +pub const JOB_NOTIFY_FIELD_NOTIFY_NAME: u32 = 4u32; +pub const JOB_NOTIFY_FIELD_PAGES_PRINTED: u32 = 21u32; +pub const JOB_NOTIFY_FIELD_PARAMETERS: u32 = 7u32; +pub const JOB_NOTIFY_FIELD_PORT_NAME: u32 = 2u32; +pub const JOB_NOTIFY_FIELD_POSITION: u32 = 15u32; +pub const JOB_NOTIFY_FIELD_PRINTER_NAME: u32 = 0u32; +pub const JOB_NOTIFY_FIELD_PRINT_PROCESSOR: u32 = 6u32; +pub const JOB_NOTIFY_FIELD_PRIORITY: u32 = 14u32; +pub const JOB_NOTIFY_FIELD_REMOTE_JOB_ID: u32 = 24u32; +pub const JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: u32 = 12u32; +pub const JOB_NOTIFY_FIELD_START_TIME: u32 = 17u32; +pub const JOB_NOTIFY_FIELD_STATUS: u32 = 10u32; +pub const JOB_NOTIFY_FIELD_STATUS_STRING: u32 = 11u32; +pub const JOB_NOTIFY_FIELD_SUBMITTED: u32 = 16u32; +pub const JOB_NOTIFY_FIELD_TIME: u32 = 19u32; +pub const JOB_NOTIFY_FIELD_TOTAL_BYTES: u32 = 22u32; +pub const JOB_NOTIFY_FIELD_TOTAL_PAGES: u32 = 20u32; +pub const JOB_NOTIFY_FIELD_UNTIL_TIME: u32 = 18u32; +pub const JOB_NOTIFY_FIELD_USER_NAME: u32 = 3u32; +pub const JOB_NOTIFY_TYPE: u32 = 1u32; +pub const JOB_POSITION_UNSPECIFIED: u32 = 0u32; +pub const JOB_STATUS_BLOCKED_DEVQ: u32 = 512u32; +pub const JOB_STATUS_COMPLETE: u32 = 4096u32; +pub const JOB_STATUS_DELETED: u32 = 256u32; +pub const JOB_STATUS_DELETING: u32 = 4u32; +pub const JOB_STATUS_ERROR: u32 = 2u32; +pub const JOB_STATUS_OFFLINE: u32 = 32u32; +pub const JOB_STATUS_PAPEROUT: u32 = 64u32; +pub const JOB_STATUS_PAUSED: u32 = 1u32; +pub const JOB_STATUS_PRINTED: u32 = 128u32; +pub const JOB_STATUS_PRINTING: u32 = 16u32; +pub const JOB_STATUS_RENDERING_LOCALLY: u32 = 16384u32; +pub const JOB_STATUS_RESTART: u32 = 2048u32; +pub const JOB_STATUS_RETAINED: u32 = 8192u32; +pub const JOB_STATUS_SPOOLING: u32 = 8u32; +pub const JOB_STATUS_USER_INTERVENTION: u32 = 1024u32; +pub const LOCAL_ONLY_REGISTRATION: PrintAsyncNotifyError = 23i32; +pub const LPR: u32 = 2u32; +pub const MAX_ADDRESS_STR_LEN: u32 = 13u32; +pub const MAX_CHANNEL_COUNT_EXCEEDED: PrintAsyncNotifyError = 22i32; +pub const MAX_CPSFUNC_INDEX: u32 = 26u32; +pub const MAX_DEVICEDESCRIPTION_STR_LEN: u32 = 257u32; +pub const MAX_DLGPAGE_COUNT: u32 = 64u32; +pub const MAX_FORM_KEYWORD_LENGTH: u32 = 64u32; +pub const MAX_IPADDR_STR_LEN: u32 = 16u32; +pub const MAX_NETWORKNAME2_LEN: u32 = 128u32; +pub const MAX_NETWORKNAME_LEN: u32 = 49u32; +pub const MAX_NOTIFICATION_SIZE_EXCEEDED: PrintAsyncNotifyError = 18i32; +pub const MAX_PORTNAME_LEN: u32 = 64u32; +pub const MAX_PRIORITY: u32 = 99u32; +pub const MAX_PROPSHEETUI_REASON_INDEX: u32 = 5u32; +pub const MAX_PSUIPAGEINSERT_INDEX: u32 = 5u32; +pub const MAX_QUEUENAME_LEN: u32 = 33u32; +pub const MAX_REGISTRATION_COUNT_EXCEEDED: PrintAsyncNotifyError = 21i32; +pub const MAX_RES_STR_CHARS: u32 = 160u32; +pub const MAX_SNMP_COMMUNITY_STR_LEN: u32 = 33u32; +pub const MIN_PRIORITY: u32 = 1u32; +pub const MS_PRINT_JOB_OUTPUT_FILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsPrintJobOutputFile"); +pub const MTYPE_ADD: u32 = 64u32; +pub const MTYPE_COMPOSE: u32 = 1u32; +pub const MTYPE_DIRECT: u32 = 2u32; +pub const MTYPE_DISABLE: u32 = 128u32; +pub const MTYPE_DOUBLE: u32 = 16u32; +pub const MTYPE_DOUBLEBYTECHAR_MASK: u32 = 24u32; +pub const MTYPE_FORMAT_MASK: u32 = 7u32; +pub const MTYPE_PAIRED: u32 = 4u32; +pub const MTYPE_PREDEFIN_MASK: u32 = 224u32; +pub const MTYPE_REPLACE: u32 = 32u32; +pub const MTYPE_SINGLE: u32 = 8u32; +pub const MV_GRAPHICS: u32 = 4u32; +pub const MV_PHYSICAL: u32 = 8u32; +pub const MV_RELATIVE: u32 = 2u32; +pub const MV_SENDXMOVECMD: u32 = 16u32; +pub const MV_SENDYMOVECMD: u32 = 32u32; +pub const MV_UPDATE: u32 = 1u32; +pub const MXDCOP_GET_FILENAME: u32 = 14u32; +pub const MXDCOP_PRINTTICKET_FIXED_DOC: u32 = 24u32; +pub const MXDCOP_PRINTTICKET_FIXED_DOC_SEQ: u32 = 22u32; +pub const MXDCOP_PRINTTICKET_FIXED_PAGE: u32 = 26u32; +pub const MXDCOP_SET_S0PAGE: u32 = 28u32; +pub const MXDCOP_SET_S0PAGE_RESOURCE: u32 = 30u32; +pub const MXDCOP_SET_XPSPASSTHRU_MODE: u32 = 32u32; +pub const MXDC_ESCAPE: u32 = 4122u32; +pub const MXDC_IMAGETYPE_JPEGHIGH_COMPRESSION: MXDC_IMAGE_TYPE_ENUMS = 1i32; +pub const MXDC_IMAGETYPE_JPEGLOW_COMPRESSION: MXDC_IMAGE_TYPE_ENUMS = 3i32; +pub const MXDC_IMAGETYPE_JPEGMEDIUM_COMPRESSION: MXDC_IMAGE_TYPE_ENUMS = 2i32; +pub const MXDC_IMAGETYPE_PNG: MXDC_IMAGE_TYPE_ENUMS = 4i32; +pub const MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES: MXDC_LANDSCAPE_ROTATION_ENUMS = -90i32; +pub const MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_90_DEGREES: MXDC_LANDSCAPE_ROTATION_ENUMS = 90i32; +pub const MXDC_LANDSCAPE_ROTATE_NONE: MXDC_LANDSCAPE_ROTATION_ENUMS = 0i32; +pub const MXDC_RESOURCE_DICTIONARY: MXDC_S0_PAGE_ENUMS = 5i32; +pub const MXDC_RESOURCE_ICC_PROFILE: MXDC_S0_PAGE_ENUMS = 6i32; +pub const MXDC_RESOURCE_JPEG: MXDC_S0_PAGE_ENUMS = 1i32; +pub const MXDC_RESOURCE_JPEG_THUMBNAIL: MXDC_S0_PAGE_ENUMS = 7i32; +pub const MXDC_RESOURCE_MAX: MXDC_S0_PAGE_ENUMS = 9i32; +pub const MXDC_RESOURCE_PNG: MXDC_S0_PAGE_ENUMS = 2i32; +pub const MXDC_RESOURCE_PNG_THUMBNAIL: MXDC_S0_PAGE_ENUMS = 8i32; +pub const MXDC_RESOURCE_TIFF: MXDC_S0_PAGE_ENUMS = 3i32; +pub const MXDC_RESOURCE_TTF: MXDC_S0_PAGE_ENUMS = 0i32; +pub const MXDC_RESOURCE_WDP: MXDC_S0_PAGE_ENUMS = 4i32; +pub const NORMAL_PRINT: u32 = 0u32; +pub const NOTIFICATION_COMMAND_CONTEXT_ACQUIRE: NOTIFICATION_CALLBACK_COMMANDS = 1i32; +pub const NOTIFICATION_COMMAND_CONTEXT_RELEASE: NOTIFICATION_CALLBACK_COMMANDS = 2i32; +pub const NOTIFICATION_COMMAND_NOTIFY: NOTIFICATION_CALLBACK_COMMANDS = 0i32; +pub const NOTIFICATION_CONFIG_ASYNC_CHANNEL: NOTIFICATION_CONFIG_FLAGS = 8i32; +pub const NOTIFICATION_CONFIG_CREATE_EVENT: NOTIFICATION_CONFIG_FLAGS = 1i32; +pub const NOTIFICATION_CONFIG_EVENT_TRIGGER: NOTIFICATION_CONFIG_FLAGS = 4i32; +pub const NOTIFICATION_CONFIG_REGISTER_CALLBACK: NOTIFICATION_CONFIG_FLAGS = 2i32; +pub const NOTIFICATION_RELEASE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba9a5027_a70e_4ae7_9b7d_eb3e06ad4157); +pub const NOT_REGISTERED: PrintAsyncNotifyError = 13i32; +pub const NO_BORDER_PRINT: u32 = 1u32; +pub const NO_COLOR_OPTIMIZATION: u32 = 0u32; +pub const NO_LISTENERS: PrintAsyncNotifyError = 7i32; +pub const NO_PRIORITY: u32 = 0u32; +pub const OEMCUIP_DOCPROP: u32 = 1u32; +pub const OEMCUIP_PRNPROP: u32 = 2u32; +pub const OEMDM_CONVERT: u32 = 3u32; +pub const OEMDM_DEFAULT: u32 = 2u32; +pub const OEMDM_MERGE: u32 = 4u32; +pub const OEMDM_SIZE: u32 = 1u32; +pub const OEMGDS_FREEMEM: u32 = 32769u32; +pub const OEMGDS_JOBTIMEOUT: u32 = 32770u32; +pub const OEMGDS_MAX: u32 = 65536u32; +pub const OEMGDS_MAXBITMAP: u32 = 32774u32; +pub const OEMGDS_MINOUTLINE: u32 = 32773u32; +pub const OEMGDS_MIN_DOCSTICKY: u32 = 1u32; +pub const OEMGDS_MIN_PRINTERSTICKY: u32 = 32768u32; +pub const OEMGDS_PRINTFLAGS: u32 = 32768u32; +pub const OEMGDS_PROTOCOL: u32 = 32772u32; +pub const OEMGDS_PSDM_CUSTOMSIZE: u32 = 6u32; +pub const OEMGDS_PSDM_DIALECT: u32 = 2u32; +pub const OEMGDS_PSDM_FLAGS: u32 = 1u32; +pub const OEMGDS_PSDM_NUP: u32 = 4u32; +pub const OEMGDS_PSDM_PSLEVEL: u32 = 5u32; +pub const OEMGDS_PSDM_TTDLFMT: u32 = 3u32; +pub const OEMGDS_UNIDM_FLAGS: u32 = 16385u32; +pub const OEMGDS_UNIDM_GPDVER: u32 = 16384u32; +pub const OEMGDS_WAITTIMEOUT: u32 = 32771u32; +pub const OEMGI_GETINTERFACEVERSION: u32 = 2u32; +pub const OEMGI_GETPUBLISHERINFO: u32 = 4u32; +pub const OEMGI_GETREQUESTEDHELPERINTERFACES: u32 = 5u32; +pub const OEMGI_GETSIGNATURE: u32 = 1u32; +pub const OEMGI_GETVERSION: u32 = 3u32; +pub const OEMPUBLISH_DEFAULT: u32 = 0u32; +pub const OEMPUBLISH_IPRINTCOREHELPER: u32 = 1u32; +pub const OEMTTY_INFO_CODEPAGE: u32 = 2u32; +pub const OEMTTY_INFO_MARGINS: u32 = 1u32; +pub const OEMTTY_INFO_NUM_UFMS: u32 = 3u32; +pub const OEMTTY_INFO_UFM_IDS: u32 = 4u32; +pub const OEM_MODE_PUBLISHER: u32 = 1u32; +pub const OIEXTF_ANSI_STRING: u32 = 1u32; +pub const OPTCF_HIDE: u32 = 1u32; +pub const OPTCF_MASK: u32 = 1u32; +pub const OPTIF_CALLBACK: i32 = 4i32; +pub const OPTIF_CHANGED: i32 = 8i32; +pub const OPTIF_CHANGEONCE: i32 = 16i32; +pub const OPTIF_COLLAPSE: i32 = 1i32; +pub const OPTIF_DISABLED: i32 = 32i32; +pub const OPTIF_ECB_CHECKED: i32 = 64i32; +pub const OPTIF_EXT_DISABLED: i32 = 256i32; +pub const OPTIF_EXT_HIDE: i32 = 128i32; +pub const OPTIF_EXT_IS_EXTPUSH: i32 = 1024i32; +pub const OPTIF_HAS_POIEXT: i32 = 65536i32; +pub const OPTIF_HIDE: i32 = 2i32; +pub const OPTIF_INITIAL_TVITEM: i32 = 32768i32; +pub const OPTIF_MASK: i32 = 131071i32; +pub const OPTIF_NO_GROUPBOX_NAME: i32 = 2048i32; +pub const OPTIF_OVERLAY_NO_ICON: i32 = 16384i32; +pub const OPTIF_OVERLAY_STOP_ICON: i32 = 8192i32; +pub const OPTIF_OVERLAY_WARNING_ICON: i32 = 4096i32; +pub const OPTIF_SEL_AS_HICON: i32 = 512i32; +pub const OPTPF_DISABLED: u32 = 2u32; +pub const OPTPF_HIDE: u32 = 1u32; +pub const OPTPF_ICONID_AS_HICON: u32 = 4u32; +pub const OPTPF_MASK: u32 = 127u32; +pub const OPTPF_OVERLAY_NO_ICON: u32 = 32u32; +pub const OPTPF_OVERLAY_STOP_ICON: u32 = 16u32; +pub const OPTPF_OVERLAY_WARNING_ICON: u32 = 8u32; +pub const OPTPF_USE_HDLGTEMPLATE: u32 = 64u32; +pub const OPTTF_MASK: u32 = 3u32; +pub const OPTTF_NOSPACE_BEFORE_POSTFIX: u32 = 2u32; +pub const OPTTF_TYPE_DISABLED: u32 = 1u32; +pub const OTS_LBCB_INCL_ITEM_NONE: u32 = 8u32; +pub const OTS_LBCB_NO_ICON16_IN_ITEM: u32 = 16u32; +pub const OTS_LBCB_PROPPAGE_CBUSELB: u32 = 4u32; +pub const OTS_LBCB_PROPPAGE_LBUSECB: u32 = 2u32; +pub const OTS_LBCB_SORT: u32 = 1u32; +pub const OTS_MASK: u32 = 255u32; +pub const OTS_PUSH_ENABLE_ALWAYS: u32 = 128u32; +pub const OTS_PUSH_INCL_SETUP_TITLE: u32 = 32u32; +pub const OTS_PUSH_NO_DOT_DOT_DOT: u32 = 64u32; +pub const PDEV_ADJUST_PAPER_MARGIN_TYPE: u32 = 1u32; +pub const PDEV_HOSTFONT_ENABLED_TYPE: u32 = 2u32; +pub const PDEV_USE_TRUE_COLOR_TYPE: u32 = 3u32; +pub const PORT_STATUS_DOOR_OPEN: u32 = 7u32; +pub const PORT_STATUS_NO_TONER: u32 = 6u32; +pub const PORT_STATUS_OFFLINE: u32 = 1u32; +pub const PORT_STATUS_OUTPUT_BIN_FULL: u32 = 4u32; +pub const PORT_STATUS_OUT_OF_MEMORY: u32 = 9u32; +pub const PORT_STATUS_PAPER_JAM: u32 = 2u32; +pub const PORT_STATUS_PAPER_OUT: u32 = 3u32; +pub const PORT_STATUS_PAPER_PROBLEM: u32 = 5u32; +pub const PORT_STATUS_POWER_SAVE: u32 = 12u32; +pub const PORT_STATUS_TONER_LOW: u32 = 10u32; +pub const PORT_STATUS_TYPE_ERROR: u32 = 1u32; +pub const PORT_STATUS_TYPE_INFO: u32 = 3u32; +pub const PORT_STATUS_TYPE_WARNING: u32 = 2u32; +pub const PORT_STATUS_USER_INTERVENTION: u32 = 8u32; +pub const PORT_STATUS_WARMING_UP: u32 = 11u32; +pub const PORT_TYPE_NET_ATTACHED: u32 = 8u32; +pub const PORT_TYPE_READ: u32 = 2u32; +pub const PORT_TYPE_REDIRECTED: u32 = 4u32; +pub const PORT_TYPE_WRITE: u32 = 1u32; +pub const PPCAPS_BOOKLET_EDGE: u32 = 1u32; +pub const PPCAPS_BORDER_PRINT: u32 = 1u32; +pub const PPCAPS_REVERSE_PAGES_FOR_REVERSE_DUPLEX: u32 = 1u32; +pub const PPCAPS_RIGHT_THEN_DOWN: u32 = 1u32; +pub const PPCAPS_SQUARE_SCALING: u32 = 1u32; +pub const PRINTER_ACCESS_ADMINISTER: PRINTER_ACCESS_RIGHTS = 4u32; +pub const PRINTER_ACCESS_MANAGE_LIMITED: PRINTER_ACCESS_RIGHTS = 64u32; +pub const PRINTER_ACCESS_USE: PRINTER_ACCESS_RIGHTS = 8u32; +pub const PRINTER_ALL_ACCESS: PRINTER_ACCESS_RIGHTS = 983052u32; +pub const PRINTER_ATTRIBUTE_DEFAULT: u32 = 4u32; +pub const PRINTER_ATTRIBUTE_DIRECT: u32 = 2u32; +pub const PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST: u32 = 512u32; +pub const PRINTER_ATTRIBUTE_ENABLE_BIDI: u32 = 2048u32; +pub const PRINTER_ATTRIBUTE_ENABLE_DEVQ: u32 = 128u32; +pub const PRINTER_ATTRIBUTE_ENTERPRISE_CLOUD: u32 = 8388608u32; +pub const PRINTER_ATTRIBUTE_FAX: u32 = 16384u32; +pub const PRINTER_ATTRIBUTE_FRIENDLY_NAME: u32 = 1048576u32; +pub const PRINTER_ATTRIBUTE_HIDDEN: u32 = 32u32; +pub const PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS: u32 = 256u32; +pub const PRINTER_ATTRIBUTE_LOCAL: u32 = 64u32; +pub const PRINTER_ATTRIBUTE_MACHINE: u32 = 524288u32; +pub const PRINTER_ATTRIBUTE_NETWORK: u32 = 16u32; +pub const PRINTER_ATTRIBUTE_PER_USER: u32 = 4194304u32; +pub const PRINTER_ATTRIBUTE_PUBLISHED: u32 = 8192u32; +pub const PRINTER_ATTRIBUTE_PUSHED_MACHINE: u32 = 262144u32; +pub const PRINTER_ATTRIBUTE_PUSHED_USER: u32 = 131072u32; +pub const PRINTER_ATTRIBUTE_QUEUED: u32 = 1u32; +pub const PRINTER_ATTRIBUTE_RAW_ONLY: u32 = 4096u32; +pub const PRINTER_ATTRIBUTE_SHARED: u32 = 8u32; +pub const PRINTER_ATTRIBUTE_TS: u32 = 32768u32; +pub const PRINTER_ATTRIBUTE_TS_GENERIC_DRIVER: u32 = 2097152u32; +pub const PRINTER_ATTRIBUTE_WORK_OFFLINE: u32 = 1024u32; +pub const PRINTER_CHANGE_ADD_FORM: u32 = 65536u32; +pub const PRINTER_CHANGE_ADD_JOB: u32 = 256u32; +pub const PRINTER_CHANGE_ADD_PORT: u32 = 1048576u32; +pub const PRINTER_CHANGE_ADD_PRINTER: u32 = 1u32; +pub const PRINTER_CHANGE_ADD_PRINTER_DRIVER: u32 = 268435456u32; +pub const PRINTER_CHANGE_ADD_PRINT_PROCESSOR: u32 = 16777216u32; +pub const PRINTER_CHANGE_ALL: u32 = 2138570751u32; +pub const PRINTER_CHANGE_CONFIGURE_PORT: u32 = 2097152u32; +pub const PRINTER_CHANGE_DELETE_FORM: u32 = 262144u32; +pub const PRINTER_CHANGE_DELETE_JOB: u32 = 1024u32; +pub const PRINTER_CHANGE_DELETE_PORT: u32 = 4194304u32; +pub const PRINTER_CHANGE_DELETE_PRINTER: u32 = 4u32; +pub const PRINTER_CHANGE_DELETE_PRINTER_DRIVER: u32 = 1073741824u32; +pub const PRINTER_CHANGE_DELETE_PRINT_PROCESSOR: u32 = 67108864u32; +pub const PRINTER_CHANGE_FAILED_CONNECTION_PRINTER: u32 = 8u32; +pub const PRINTER_CHANGE_FORM: u32 = 458752u32; +pub const PRINTER_CHANGE_JOB: u32 = 65280u32; +pub const PRINTER_CHANGE_PORT: u32 = 7340032u32; +pub const PRINTER_CHANGE_PRINTER: u32 = 255u32; +pub const PRINTER_CHANGE_PRINTER_DRIVER: u32 = 1879048192u32; +pub const PRINTER_CHANGE_PRINT_PROCESSOR: u32 = 117440512u32; +pub const PRINTER_CHANGE_SERVER: u32 = 134217728u32; +pub const PRINTER_CHANGE_SET_FORM: u32 = 131072u32; +pub const PRINTER_CHANGE_SET_JOB: u32 = 512u32; +pub const PRINTER_CHANGE_SET_PRINTER: u32 = 2u32; +pub const PRINTER_CHANGE_SET_PRINTER_DRIVER: u32 = 536870912u32; +pub const PRINTER_CHANGE_TIMEOUT: u32 = 2147483648u32; +pub const PRINTER_CHANGE_WRITE_JOB: u32 = 2048u32; +pub const PRINTER_CONNECTION_MISMATCH: u32 = 32u32; +pub const PRINTER_CONNECTION_NO_UI: u32 = 64u32; +pub const PRINTER_CONTROL_PAUSE: u32 = 1u32; +pub const PRINTER_CONTROL_PURGE: u32 = 3u32; +pub const PRINTER_CONTROL_RESUME: u32 = 2u32; +pub const PRINTER_CONTROL_SET_STATUS: u32 = 4u32; +pub const PRINTER_DELETE: PRINTER_ACCESS_RIGHTS = 65536u32; +pub const PRINTER_DRIVER_CATEGORY_3D: u32 = 4096u32; +pub const PRINTER_DRIVER_CATEGORY_CLOUD: u32 = 8192u32; +pub const PRINTER_DRIVER_CATEGORY_FAX: u32 = 64u32; +pub const PRINTER_DRIVER_CATEGORY_FILE: u32 = 128u32; +pub const PRINTER_DRIVER_CATEGORY_SERVICE: u32 = 512u32; +pub const PRINTER_DRIVER_CATEGORY_VIRTUAL: u32 = 256u32; +pub const PRINTER_DRIVER_CLASS: u32 = 8u32; +pub const PRINTER_DRIVER_DERIVED: u32 = 16u32; +pub const PRINTER_DRIVER_NOT_SHAREABLE: u32 = 32u32; +pub const PRINTER_DRIVER_PACKAGE_AWARE: u32 = 1u32; +pub const PRINTER_DRIVER_SANDBOX_DISABLED: u32 = 2048u32; +pub const PRINTER_DRIVER_SANDBOX_ENABLED: u32 = 4u32; +pub const PRINTER_DRIVER_SOFT_RESET_REQUIRED: u32 = 1024u32; +pub const PRINTER_DRIVER_XPS: u32 = 2u32; +pub const PRINTER_ENUM_CATEGORY_3D: u32 = 67108864u32; +pub const PRINTER_ENUM_CATEGORY_ALL: u32 = 33554432u32; +pub const PRINTER_ENUM_CONNECTIONS: u32 = 4u32; +pub const PRINTER_ENUM_CONTAINER: u32 = 32768u32; +pub const PRINTER_ENUM_DEFAULT: u32 = 1u32; +pub const PRINTER_ENUM_EXPAND: u32 = 16384u32; +pub const PRINTER_ENUM_FAVORITE: u32 = 4u32; +pub const PRINTER_ENUM_HIDE: u32 = 16777216u32; +pub const PRINTER_ENUM_ICON1: u32 = 65536u32; +pub const PRINTER_ENUM_ICON2: u32 = 131072u32; +pub const PRINTER_ENUM_ICON3: u32 = 262144u32; +pub const PRINTER_ENUM_ICON4: u32 = 524288u32; +pub const PRINTER_ENUM_ICON5: u32 = 1048576u32; +pub const PRINTER_ENUM_ICON6: u32 = 2097152u32; +pub const PRINTER_ENUM_ICON7: u32 = 4194304u32; +pub const PRINTER_ENUM_ICON8: u32 = 8388608u32; +pub const PRINTER_ENUM_ICONMASK: u32 = 16711680u32; +pub const PRINTER_ENUM_LOCAL: u32 = 2u32; +pub const PRINTER_ENUM_NAME: u32 = 8u32; +pub const PRINTER_ENUM_NETWORK: u32 = 64u32; +pub const PRINTER_ENUM_REMOTE: u32 = 16u32; +pub const PRINTER_ENUM_SHARED: u32 = 32u32; +pub const PRINTER_ERROR_INFORMATION: u32 = 2147483648u32; +pub const PRINTER_ERROR_JAM: u32 = 2u32; +pub const PRINTER_ERROR_OUTOFPAPER: u32 = 1u32; +pub const PRINTER_ERROR_OUTOFTONER: u32 = 4u32; +pub const PRINTER_ERROR_SEVERE: u32 = 536870912u32; +pub const PRINTER_ERROR_WARNING: u32 = 1073741824u32; +pub const PRINTER_EVENT_ADD_CONNECTION: u32 = 1u32; +pub const PRINTER_EVENT_ADD_CONNECTION_NO_UI: u32 = 9u32; +pub const PRINTER_EVENT_ATTRIBUTES_CHANGED: u32 = 7u32; +pub const PRINTER_EVENT_CACHE_DELETE: u32 = 6u32; +pub const PRINTER_EVENT_CACHE_REFRESH: u32 = 5u32; +pub const PRINTER_EVENT_CONFIGURATION_CHANGE: u32 = 0u32; +pub const PRINTER_EVENT_CONFIGURATION_UPDATE: u32 = 8u32; +pub const PRINTER_EVENT_DELETE: u32 = 4u32; +pub const PRINTER_EVENT_DELETE_CONNECTION: u32 = 2u32; +pub const PRINTER_EVENT_DELETE_CONNECTION_NO_UI: u32 = 10u32; +pub const PRINTER_EVENT_FLAG_NO_UI: u32 = 1u32; +pub const PRINTER_EVENT_INITIALIZE: u32 = 3u32; +pub const PRINTER_EXECUTE: PRINTER_ACCESS_RIGHTS = 131080u32; +pub const PRINTER_EXTENSION_DETAILEDREASON_PRINTER_STATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5d5a1704_dfd1_4181_8eee_815c86edad31); +pub const PRINTER_EXTENSION_REASON_DRIVER_EVENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x23bb1328_63de_4293_915b_a6a23d929acb); +pub const PRINTER_EXTENSION_REASON_PRINT_PREFERENCES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xec8f261f_267c_469f_b5d6_3933023c29cc); +pub const PRINTER_NOTIFY_CATEGORY_3D: u32 = 8192u32; +pub const PRINTER_NOTIFY_CATEGORY_ALL: u32 = 4096u32; +pub const PRINTER_NOTIFY_FIELD_ATTRIBUTES: u32 = 13u32; +pub const PRINTER_NOTIFY_FIELD_AVERAGE_PPM: u32 = 21u32; +pub const PRINTER_NOTIFY_FIELD_BRANCH_OFFICE_PRINTING: u32 = 28u32; +pub const PRINTER_NOTIFY_FIELD_BYTES_PRINTED: u32 = 25u32; +pub const PRINTER_NOTIFY_FIELD_CJOBS: u32 = 20u32; +pub const PRINTER_NOTIFY_FIELD_COMMENT: u32 = 5u32; +pub const PRINTER_NOTIFY_FIELD_DATATYPE: u32 = 11u32; +pub const PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: u32 = 15u32; +pub const PRINTER_NOTIFY_FIELD_DEVMODE: u32 = 7u32; +pub const PRINTER_NOTIFY_FIELD_DRIVER_NAME: u32 = 4u32; +pub const PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: u32 = 27u32; +pub const PRINTER_NOTIFY_FIELD_LOCATION: u32 = 6u32; +pub const PRINTER_NOTIFY_FIELD_OBJECT_GUID: u32 = 26u32; +pub const PRINTER_NOTIFY_FIELD_PAGES_PRINTED: u32 = 23u32; +pub const PRINTER_NOTIFY_FIELD_PARAMETERS: u32 = 10u32; +pub const PRINTER_NOTIFY_FIELD_PORT_NAME: u32 = 3u32; +pub const PRINTER_NOTIFY_FIELD_PRINTER_NAME: u32 = 1u32; +pub const PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: u32 = 9u32; +pub const PRINTER_NOTIFY_FIELD_PRIORITY: u32 = 14u32; +pub const PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: u32 = 12u32; +pub const PRINTER_NOTIFY_FIELD_SEPFILE: u32 = 8u32; +pub const PRINTER_NOTIFY_FIELD_SERVER_NAME: u32 = 0u32; +pub const PRINTER_NOTIFY_FIELD_SHARE_NAME: u32 = 2u32; +pub const PRINTER_NOTIFY_FIELD_START_TIME: u32 = 16u32; +pub const PRINTER_NOTIFY_FIELD_STATUS: u32 = 18u32; +pub const PRINTER_NOTIFY_FIELD_STATUS_STRING: u32 = 19u32; +pub const PRINTER_NOTIFY_FIELD_TOTAL_BYTES: u32 = 24u32; +pub const PRINTER_NOTIFY_FIELD_TOTAL_PAGES: u32 = 22u32; +pub const PRINTER_NOTIFY_FIELD_UNTIL_TIME: u32 = 17u32; +pub const PRINTER_NOTIFY_INFO_DATA_COMPACT: u32 = 1u32; +pub const PRINTER_NOTIFY_INFO_DISCARDED: u32 = 1u32; +pub const PRINTER_NOTIFY_OPTIONS_REFRESH: u32 = 1u32; +pub const PRINTER_NOTIFY_STATUS_ENDPOINT: u32 = 1u32; +pub const PRINTER_NOTIFY_STATUS_INFO: u32 = 4u32; +pub const PRINTER_NOTIFY_STATUS_POLL: u32 = 2u32; +pub const PRINTER_NOTIFY_TYPE: u32 = 0u32; +pub const PRINTER_OEMINTF_VERSION: u32 = 65536u32; +pub const PRINTER_OPTION_CACHE: PRINTER_OPTION_FLAGS = 2i32; +pub const PRINTER_OPTION_CLIENT_CHANGE: PRINTER_OPTION_FLAGS = 4i32; +pub const PRINTER_OPTION_NO_CACHE: PRINTER_OPTION_FLAGS = 1i32; +pub const PRINTER_OPTION_NO_CLIENT_DATA: PRINTER_OPTION_FLAGS = 8i32; +pub const PRINTER_READ: PRINTER_ACCESS_RIGHTS = 131080u32; +pub const PRINTER_READ_CONTROL: PRINTER_ACCESS_RIGHTS = 131072u32; +pub const PRINTER_STANDARD_RIGHTS_EXECUTE: PRINTER_ACCESS_RIGHTS = 131072u32; +pub const PRINTER_STANDARD_RIGHTS_READ: PRINTER_ACCESS_RIGHTS = 131072u32; +pub const PRINTER_STANDARD_RIGHTS_REQUIRED: PRINTER_ACCESS_RIGHTS = 983040u32; +pub const PRINTER_STANDARD_RIGHTS_WRITE: PRINTER_ACCESS_RIGHTS = 131072u32; +pub const PRINTER_STATUS_BUSY: u32 = 512u32; +pub const PRINTER_STATUS_DOOR_OPEN: u32 = 4194304u32; +pub const PRINTER_STATUS_DRIVER_UPDATE_NEEDED: u32 = 67108864u32; +pub const PRINTER_STATUS_ERROR: u32 = 2u32; +pub const PRINTER_STATUS_INITIALIZING: u32 = 32768u32; +pub const PRINTER_STATUS_IO_ACTIVE: u32 = 256u32; +pub const PRINTER_STATUS_MANUAL_FEED: u32 = 32u32; +pub const PRINTER_STATUS_NOT_AVAILABLE: u32 = 4096u32; +pub const PRINTER_STATUS_NO_TONER: u32 = 262144u32; +pub const PRINTER_STATUS_OFFLINE: u32 = 128u32; +pub const PRINTER_STATUS_OUTPUT_BIN_FULL: u32 = 2048u32; +pub const PRINTER_STATUS_OUT_OF_MEMORY: u32 = 2097152u32; +pub const PRINTER_STATUS_PAGE_PUNT: u32 = 524288u32; +pub const PRINTER_STATUS_PAPER_JAM: u32 = 8u32; +pub const PRINTER_STATUS_PAPER_OUT: u32 = 16u32; +pub const PRINTER_STATUS_PAPER_PROBLEM: u32 = 64u32; +pub const PRINTER_STATUS_PAUSED: u32 = 1u32; +pub const PRINTER_STATUS_PENDING_DELETION: u32 = 4u32; +pub const PRINTER_STATUS_POWER_SAVE: u32 = 16777216u32; +pub const PRINTER_STATUS_PRINTING: u32 = 1024u32; +pub const PRINTER_STATUS_PROCESSING: u32 = 16384u32; +pub const PRINTER_STATUS_SERVER_OFFLINE: u32 = 33554432u32; +pub const PRINTER_STATUS_SERVER_UNKNOWN: u32 = 8388608u32; +pub const PRINTER_STATUS_TONER_LOW: u32 = 131072u32; +pub const PRINTER_STATUS_USER_INTERVENTION: u32 = 1048576u32; +pub const PRINTER_STATUS_WAITING: u32 = 8192u32; +pub const PRINTER_STATUS_WARMING_UP: u32 = 65536u32; +pub const PRINTER_SYNCHRONIZE: PRINTER_ACCESS_RIGHTS = 1048576u32; +pub const PRINTER_WRITE: PRINTER_ACCESS_RIGHTS = 131080u32; +pub const PRINTER_WRITE_DAC: PRINTER_ACCESS_RIGHTS = 262144u32; +pub const PRINTER_WRITE_OWNER: PRINTER_ACCESS_RIGHTS = 524288u32; +pub const PRINT_APP_BIDI_NOTIFY_CHANNEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2abad223_b994_4aca_82fc_4571b1b585ac); +pub const PRINT_EXECUTION_CONTEXT_APPLICATION: PRINT_EXECUTION_CONTEXT = 0i32; +pub const PRINT_EXECUTION_CONTEXT_FILTER_PIPELINE: PRINT_EXECUTION_CONTEXT = 3i32; +pub const PRINT_EXECUTION_CONTEXT_SPOOLER_ISOLATION_HOST: PRINT_EXECUTION_CONTEXT = 2i32; +pub const PRINT_EXECUTION_CONTEXT_SPOOLER_SERVICE: PRINT_EXECUTION_CONTEXT = 1i32; +pub const PRINT_EXECUTION_CONTEXT_WOW64: PRINT_EXECUTION_CONTEXT = 4i32; +pub const PRINT_PORT_MONITOR_NOTIFY_CHANNEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25df3b0e_74a9_47f5_80ce_79b4b1eb5c58); +pub const PROPSHEETUI_INFO_VERSION: u32 = 256u32; +pub const PROPSHEETUI_REASON_BEFORE_INIT: u32 = 5u32; +pub const PROPSHEETUI_REASON_DESTROY: u32 = 2u32; +pub const PROPSHEETUI_REASON_GET_ICON: u32 = 4u32; +pub const PROPSHEETUI_REASON_GET_INFO_HEADER: u32 = 1u32; +pub const PROPSHEETUI_REASON_INIT: u32 = 0u32; +pub const PROPSHEETUI_REASON_SET_RESULT: u32 = 3u32; +pub const PROTOCOL_LPR_TYPE: u32 = 2u32; +pub const PROTOCOL_RAWTCP_TYPE: u32 = 1u32; +pub const PROTOCOL_UNKNOWN_TYPE: u32 = 0u32; +pub const PSUIHDRF_DEFTITLE: u32 = 16u32; +pub const PSUIHDRF_EXACT_PTITLE: u32 = 32u32; +pub const PSUIHDRF_NOAPPLYNOW: u32 = 2u32; +pub const PSUIHDRF_OBSOLETE: u32 = 1u32; +pub const PSUIHDRF_PROPTITLE: u32 = 4u32; +pub const PSUIHDRF_USEHICON: u32 = 8u32; +pub const PSUIINFO_UNICODE: u32 = 1u32; +pub const PSUIPAGEINSERT_DLL: u32 = 5u32; +pub const PSUIPAGEINSERT_GROUP_PARENT: u32 = 0u32; +pub const PSUIPAGEINSERT_HPROPSHEETPAGE: u32 = 4u32; +pub const PSUIPAGEINSERT_PCOMPROPSHEETUI: u32 = 1u32; +pub const PSUIPAGEINSERT_PFNPROPSHEETUI: u32 = 2u32; +pub const PSUIPAGEINSERT_PROPSHEETPAGE: u32 = 3u32; +pub const PTSHIM_DEFAULT: SHIMOPTS = 0i32; +pub const PTSHIM_NOSNAPSHOT: SHIMOPTS = 1i32; +pub const PUSHBUTTON_TYPE_CALLBACK: u32 = 1u32; +pub const PUSHBUTTON_TYPE_DLGPROC: u32 = 0u32; +pub const PUSHBUTTON_TYPE_HTCLRADJ: u32 = 2u32; +pub const PUSHBUTTON_TYPE_HTSETUP: u32 = 3u32; +pub const PrintJobStatus_BlockedDeviceQueue: PrintJobStatus = 512i32; +pub const PrintJobStatus_Complete: PrintJobStatus = 4096i32; +pub const PrintJobStatus_Deleted: PrintJobStatus = 256i32; +pub const PrintJobStatus_Deleting: PrintJobStatus = 4i32; +pub const PrintJobStatus_Error: PrintJobStatus = 2i32; +pub const PrintJobStatus_Offline: PrintJobStatus = 32i32; +pub const PrintJobStatus_PaperOut: PrintJobStatus = 64i32; +pub const PrintJobStatus_Paused: PrintJobStatus = 1i32; +pub const PrintJobStatus_Printed: PrintJobStatus = 128i32; +pub const PrintJobStatus_Printing: PrintJobStatus = 16i32; +pub const PrintJobStatus_Restarted: PrintJobStatus = 2048i32; +pub const PrintJobStatus_Retained: PrintJobStatus = 8192i32; +pub const PrintJobStatus_Spooling: PrintJobStatus = 8i32; +pub const PrintJobStatus_UserIntervention: PrintJobStatus = 1024i32; +pub const PrintSchemaAsyncOperation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43b2f83d_10f2_48ab_831b_55fdbdbd34a4); +pub const PrintSchemaConstrainedSetting_Admin: PrintSchemaConstrainedSetting = 2i32; +pub const PrintSchemaConstrainedSetting_Device: PrintSchemaConstrainedSetting = 3i32; +pub const PrintSchemaConstrainedSetting_None: PrintSchemaConstrainedSetting = 0i32; +pub const PrintSchemaConstrainedSetting_PrintTicket: PrintSchemaConstrainedSetting = 1i32; +pub const PrintSchemaParameterDataType_Integer: PrintSchemaParameterDataType = 0i32; +pub const PrintSchemaParameterDataType_NumericString: PrintSchemaParameterDataType = 1i32; +pub const PrintSchemaParameterDataType_String: PrintSchemaParameterDataType = 2i32; +pub const PrintSchemaSelectionType_PickMany: PrintSchemaSelectionType = 1i32; +pub const PrintSchemaSelectionType_PickOne: PrintSchemaSelectionType = 0i32; +pub const PrinterExtensionManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x331b60da_9e90_4dd0_9c84_eac4e659b61f); +pub const PrinterQueue: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeb54c230_798c_4c9e_b461_29fad04039b1); +pub const PrinterQueueView: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeb54c231_798c_4c9e_b461_29fad04039b1); +pub const QCP_DEVICEPROFILE: u32 = 0u32; +pub const QCP_PROFILEDISK: u32 = 2u32; +pub const QCP_PROFILEMEMORY: u32 = 1u32; +pub const QCP_SOURCEPROFILE: u32 = 1u32; +pub const RAWTCP: u32 = 1u32; +pub const REMOTE_ONLY_REGISTRATION: PrintAsyncNotifyError = 24i32; +pub const REVERSE_PAGES_FOR_REVERSE_DUPLEX: u32 = 1u32; +pub const REVERSE_PRINT: u32 = 1u32; +pub const RIGHT_THEN_DOWN: u32 = 1u32; +pub const ROUTER_STOP_ROUTING: u32 = 2u32; +pub const ROUTER_SUCCESS: u32 = 1u32; +pub const ROUTER_UNKNOWN: u32 = 0u32; +pub const SERVER_ACCESS_ADMINISTER: PRINTER_ACCESS_RIGHTS = 1u32; +pub const SERVER_ACCESS_ENUMERATE: PRINTER_ACCESS_RIGHTS = 2u32; +pub const SERVER_ALL_ACCESS: PRINTER_ACCESS_RIGHTS = 983043u32; +pub const SERVER_EXECUTE: PRINTER_ACCESS_RIGHTS = 131074u32; +pub const SERVER_NOTIFY_FIELD_PRINT_DRIVER_ISOLATION_GROUP: u32 = 0u32; +pub const SERVER_NOTIFY_TYPE: u32 = 2u32; +pub const SERVER_READ: PRINTER_ACCESS_RIGHTS = 131074u32; +pub const SERVER_WRITE: PRINTER_ACCESS_RIGHTS = 131075u32; +pub const SETOPTIONS_FLAG_KEEP_CONFLICT: u32 = 2u32; +pub const SETOPTIONS_FLAG_RESOLVE_CONFLICT: u32 = 1u32; +pub const SETOPTIONS_RESULT_CONFLICT_REMAINED: u32 = 2u32; +pub const SETOPTIONS_RESULT_CONFLICT_RESOLVED: u32 = 1u32; +pub const SETOPTIONS_RESULT_NO_CONFLICT: u32 = 0u32; +pub const SPLDS_ASSET_NUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("assetNumber"); +pub const SPLDS_BYTES_PER_MINUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("bytesPerMinute"); +pub const SPLDS_DESCRIPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("description"); +pub const SPLDS_DRIVER_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsDriver"); +pub const SPLDS_DRIVER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("driverName"); +pub const SPLDS_DRIVER_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("driverVersion"); +pub const SPLDS_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("flags"); +pub const SPLDS_LOCATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("location"); +pub const SPLDS_PORT_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("portName"); +pub const SPLDS_PRINTER_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printQueue"); +pub const SPLDS_PRINTER_LOCATIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printerLocations"); +pub const SPLDS_PRINTER_MODEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printerModel"); +pub const SPLDS_PRINTER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printerName"); +pub const SPLDS_PRINTER_NAME_ALIASES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printerNameAliases"); +pub const SPLDS_PRINT_ATTRIBUTES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printAttributes"); +pub const SPLDS_PRINT_BIN_NAMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printBinNames"); +pub const SPLDS_PRINT_COLLATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printCollate"); +pub const SPLDS_PRINT_COLOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printColor"); +pub const SPLDS_PRINT_DUPLEX_SUPPORTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printDuplexSupported"); +pub const SPLDS_PRINT_END_TIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printEndTime"); +pub const SPLDS_PRINT_KEEP_PRINTED_JOBS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printKeepPrintedJobs"); +pub const SPLDS_PRINT_LANGUAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printLanguage"); +pub const SPLDS_PRINT_MAC_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printMACAddress"); +pub const SPLDS_PRINT_MAX_RESOLUTION_SUPPORTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printMaxResolutionSupported"); +pub const SPLDS_PRINT_MAX_X_EXTENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printMaxXExtent"); +pub const SPLDS_PRINT_MAX_Y_EXTENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printMaxYExtent"); +pub const SPLDS_PRINT_MEDIA_READY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printMediaReady"); +pub const SPLDS_PRINT_MEDIA_SUPPORTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printMediaSupported"); +pub const SPLDS_PRINT_MEMORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printMemory"); +pub const SPLDS_PRINT_MIN_X_EXTENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printMinXExtent"); +pub const SPLDS_PRINT_MIN_Y_EXTENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printMinYExtent"); +pub const SPLDS_PRINT_NETWORK_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printNetworkAddress"); +pub const SPLDS_PRINT_NOTIFY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printNotify"); +pub const SPLDS_PRINT_NUMBER_UP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printNumberUp"); +pub const SPLDS_PRINT_ORIENTATIONS_SUPPORTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printOrientationsSupported"); +pub const SPLDS_PRINT_OWNER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printOwner"); +pub const SPLDS_PRINT_PAGES_PER_MINUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printPagesPerMinute"); +pub const SPLDS_PRINT_RATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printRate"); +pub const SPLDS_PRINT_RATE_UNIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printRateUnit"); +pub const SPLDS_PRINT_SEPARATOR_FILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printSeparatorFile"); +pub const SPLDS_PRINT_SHARE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printShareName"); +pub const SPLDS_PRINT_SPOOLING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printSpooling"); +pub const SPLDS_PRINT_STAPLING_SUPPORTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printStaplingSupported"); +pub const SPLDS_PRINT_START_TIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printStartTime"); +pub const SPLDS_PRINT_STATUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("printStatus"); +pub const SPLDS_PRIORITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("priority"); +pub const SPLDS_SERVER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("serverName"); +pub const SPLDS_SHORT_SERVER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("shortServerName"); +pub const SPLDS_SPOOLER_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsSpooler"); +pub const SPLDS_UNC_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("uNCName"); +pub const SPLDS_URL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("url"); +pub const SPLDS_USER_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsUser"); +pub const SPLDS_VERSION_NUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("versionNumber"); +pub const SPLPRINTER_USER_MODE_PRINTER_DRIVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SPLUserModePrinterDriver"); +pub const SPLREG_ALLOW_USER_MANAGEFORMS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AllowUserManageForms"); +pub const SPLREG_ARCHITECTURE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Architecture"); +pub const SPLREG_BEEP_ENABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BeepEnabled"); +pub const SPLREG_DEFAULT_SPOOL_DIRECTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultSpoolDirectory"); +pub const SPLREG_DNS_MACHINE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DNSMachineName"); +pub const SPLREG_DS_PRESENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsPresent"); +pub const SPLREG_DS_PRESENT_FOR_USER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsPresentForUser"); +pub const SPLREG_EVENT_LOG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EventLog"); +pub const SPLREG_MAJOR_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MajorVersion"); +pub const SPLREG_MINOR_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MinorVersion"); +pub const SPLREG_NET_POPUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NetPopup"); +pub const SPLREG_NET_POPUP_TO_COMPUTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NetPopupToComputer"); +pub const SPLREG_OS_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OSVersion"); +pub const SPLREG_OS_VERSIONEX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OSVersionEx"); +pub const SPLREG_PORT_THREAD_PRIORITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PortThreadPriority"); +pub const SPLREG_PORT_THREAD_PRIORITY_DEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PortThreadPriorityDefault"); +pub const SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintDriverIsolationExecutionPolicy"); +pub const SPLREG_PRINT_DRIVER_ISOLATION_GROUPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintDriverIsolationGroups"); +pub const SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintDriverIsolationIdleTimeout"); +pub const SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintDriverIsolationMaxobjsBeforeRecycle"); +pub const SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintDriverIsolationOverrideCompat"); +pub const SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintDriverIsolationTimeBeforeRecycle"); +pub const SPLREG_PRINT_QUEUE_V4_DRIVER_DIRECTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintQueueV4DriverDirectory"); +pub const SPLREG_REMOTE_FAX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RemoteFax"); +pub const SPLREG_RESTART_JOB_ON_POOL_ENABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestartJobOnPoolEnabled"); +pub const SPLREG_RESTART_JOB_ON_POOL_ERROR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestartJobOnPoolError"); +pub const SPLREG_RETRY_POPUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RetryPopup"); +pub const SPLREG_SCHEDULER_THREAD_PRIORITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SchedulerThreadPriority"); +pub const SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SchedulerThreadPriorityDefault"); +pub const SPLREG_WEBSHAREMGMT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WebShareMgmt"); +pub const SPOOL_FILE_PERSISTENT: u32 = 1u32; +pub const SPOOL_FILE_TEMPORARY: u32 = 2u32; +pub const SR_OWNER: u32 = 0u32; +pub const SR_OWNER_PARENT: u32 = 1u32; +pub const SSP_STDPAGE1: u32 = 10001u32; +pub const SSP_STDPAGE2: u32 = 10002u32; +pub const SSP_TVPAGE: u32 = 10000u32; +pub const STRING_LANGPAIR: u32 = 4u32; +pub const STRING_MUIDLL: u32 = 2u32; +pub const STRING_NONE: u32 = 1u32; +pub const S_CONFLICT_RESOLVED: u32 = 262146u32; +pub const S_DEVCAP_OUTPUT_FULL_REPLACEMENT: ::windows_sys::core::HRESULT = 318465i32; +pub const S_NO_CONFLICT: u32 = 262145u32; +pub const TTDOWNLOAD_BITMAP: u32 = 2u32; +pub const TTDOWNLOAD_DONTCARE: u32 = 0u32; +pub const TTDOWNLOAD_GRAPHICS: u32 = 1u32; +pub const TTDOWNLOAD_TTOUTLINE: u32 = 3u32; +pub const TVOT_2STATES: u32 = 0u32; +pub const TVOT_3STATES: u32 = 1u32; +pub const TVOT_CHKBOX: u32 = 9u32; +pub const TVOT_COMBOBOX: u32 = 6u32; +pub const TVOT_EDITBOX: u32 = 7u32; +pub const TVOT_LISTBOX: u32 = 5u32; +pub const TVOT_NSTATES_EX: u32 = 10u32; +pub const TVOT_PUSHBUTTON: u32 = 8u32; +pub const TVOT_SCROLLBAR: u32 = 4u32; +pub const TVOT_TRACKBAR: u32 = 3u32; +pub const TVOT_UDARROW: u32 = 2u32; +pub const TYPE_GLYPHHANDLE: u32 = 3u32; +pub const TYPE_GLYPHID: u32 = 4u32; +pub const TYPE_TRANSDATA: u32 = 2u32; +pub const TYPE_UNICODE: u32 = 1u32; +pub const UFF_VERSION_NUMBER: u32 = 65537u32; +pub const UFM_CART: u32 = 2u32; +pub const UFM_SCALABLE: u32 = 4u32; +pub const UFM_SOFT: u32 = 1u32; +pub const UFOFLAG_TTDOWNLOAD_BITMAP: u32 = 2u32; +pub const UFOFLAG_TTDOWNLOAD_TTOUTLINE: u32 = 4u32; +pub const UFOFLAG_TTFONT: u32 = 1u32; +pub const UFOFLAG_TTOUTLINE_BOLD_SIM: u32 = 8u32; +pub const UFOFLAG_TTOUTLINE_ITALIC_SIM: u32 = 16u32; +pub const UFOFLAG_TTOUTLINE_VERTICAL: u32 = 32u32; +pub const UFOFLAG_TTSUBSTITUTED: u32 = 64u32; +pub const UFO_GETINFO_FONTOBJ: u32 = 1u32; +pub const UFO_GETINFO_GLYPHBITMAP: u32 = 3u32; +pub const UFO_GETINFO_GLYPHSTRING: u32 = 2u32; +pub const UFO_GETINFO_GLYPHWIDTH: u32 = 4u32; +pub const UFO_GETINFO_MEMORY: u32 = 5u32; +pub const UFO_GETINFO_STDVARIABLE: u32 = 6u32; +pub const UNIFM_VERSION_1_0: u32 = 65536u32; +pub const UNIRECTIONAL_NOTIFICATION_LOST: PrintAsyncNotifyError = 5i32; +pub const UNI_GLYPHSETDATA_VERSION_1_0: u32 = 65536u32; +pub const UNKNOWN_PROTOCOL: u32 = 0u32; +pub const UPDP_CHECK_DRIVERSTORE: u32 = 4u32; +pub const UPDP_SILENT_UPLOAD: u32 = 1u32; +pub const UPDP_UPLOAD_ALWAYS: u32 = 2u32; +pub const USBPRINT_IOCTL_INDEX: u32 = 0u32; +pub const USB_PRINTER_INTERFACE_CLASSIC: u32 = 1u32; +pub const USB_PRINTER_INTERFACE_DUAL: u32 = 3u32; +pub const USB_PRINTER_INTERFACE_IPP: u32 = 2u32; +pub const WM_FI_FILENAME: u32 = 900u32; +pub const XPSRAS_BACKGROUND_COLOR_OPAQUE: XPSRAS_BACKGROUND_COLOR = 1i32; +pub const XPSRAS_BACKGROUND_COLOR_TRANSPARENT: XPSRAS_BACKGROUND_COLOR = 0i32; +pub const XPSRAS_PIXEL_FORMAT_128BPP_PRGBA_FLOAT_SCRGB: XPSRAS_PIXEL_FORMAT = 3i32; +pub const XPSRAS_PIXEL_FORMAT_32BPP_PBGRA_UINT_SRGB: XPSRAS_PIXEL_FORMAT = 1i32; +pub const XPSRAS_PIXEL_FORMAT_64BPP_PRGBA_HALF_SCRGB: XPSRAS_PIXEL_FORMAT = 2i32; +pub const XPSRAS_RENDERING_MODE_ALIASED: XPSRAS_RENDERING_MODE = 1i32; +pub const XPSRAS_RENDERING_MODE_ANTIALIASED: XPSRAS_RENDERING_MODE = 0i32; +pub const XPS_FP_DRIVER_PROPERTY_BAG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverPropertyBag"); +pub const XPS_FP_JOB_ID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintJobId"); +pub const XPS_FP_JOB_LEVEL_PRINTTICKET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("JobPrintTicket"); +pub const XPS_FP_MERGED_DATAFILE_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MergedDataFilePath"); +pub const XPS_FP_MS_CONTENT_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverMultiContentType"); +pub const XPS_FP_MS_CONTENT_TYPE_OPENXPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OpenXPS"); +pub const XPS_FP_MS_CONTENT_TYPE_XPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("XPS"); +pub const XPS_FP_OUTPUT_FILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintOutputFileName"); +pub const XPS_FP_PRINTDEVICECAPABILITIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintDeviceCapabilities"); +pub const XPS_FP_PRINTER_HANDLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrinterHandle"); +pub const XPS_FP_PRINTER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrinterName"); +pub const XPS_FP_PRINT_CLASS_FACTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintClassFactory"); +pub const XPS_FP_PROGRESS_REPORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProgressReport"); +pub const XPS_FP_QUEUE_PROPERTY_BAG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("QueuePropertyBag"); +pub const XPS_FP_RESOURCE_DLL_PATHS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResourceDLLPaths"); +pub const XPS_FP_USER_PRINT_TICKET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PerUserPrintTicket"); +pub const XPS_FP_USER_TOKEN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UserSecurityToken"); +pub const XpsJob_DocumentSequenceAdded: EXpsJobConsumption = 0i32; +pub const XpsJob_FixedDocumentAdded: EXpsJobConsumption = 1i32; +pub const XpsJob_FixedPageAdded: EXpsJobConsumption = 2i32; +pub const Xps_Restricted_Font_Editable: EXpsFontRestriction = 8i32; +pub const Xps_Restricted_Font_Installable: EXpsFontRestriction = 0i32; +pub const Xps_Restricted_Font_NoEmbedding: EXpsFontRestriction = 2i32; +pub const Xps_Restricted_Font_PreviewPrint: EXpsFontRestriction = 4i32; +pub const kADT_ASCII: EATTRIBUTE_DATATYPE = 5i32; +pub const kADT_BINARY: EATTRIBUTE_DATATYPE = 7i32; +pub const kADT_BOOL: EATTRIBUTE_DATATYPE = 1i32; +pub const kADT_CUSTOMSIZEPARAMS: EATTRIBUTE_DATATYPE = 10i32; +pub const kADT_DWORD: EATTRIBUTE_DATATYPE = 4i32; +pub const kADT_INT: EATTRIBUTE_DATATYPE = 2i32; +pub const kADT_LONG: EATTRIBUTE_DATATYPE = 3i32; +pub const kADT_RECT: EATTRIBUTE_DATATYPE = 9i32; +pub const kADT_SIZE: EATTRIBUTE_DATATYPE = 8i32; +pub const kADT_UNICODE: EATTRIBUTE_DATATYPE = 6i32; +pub const kADT_UNKNOWN: EATTRIBUTE_DATATYPE = 0i32; +pub const kAddingDocumentSequence: EPrintXPSJobProgress = 0i32; +pub const kAddingFixedDocument: EPrintXPSJobProgress = 2i32; +pub const kAddingFixedPage: EPrintXPSJobProgress = 4i32; +pub const kAllUsers: PrintAsyncNotifyUserFilter = 1i32; +pub const kBiDirectional: PrintAsyncNotifyConversationStyle = 0i32; +pub const kDocumentSequenceAdded: EPrintXPSJobProgress = 1i32; +pub const kFixedDocumentAdded: EPrintXPSJobProgress = 3i32; +pub const kFixedPageAdded: EPrintXPSJobProgress = 5i32; +pub const kFontAdded: EPrintXPSJobProgress = 7i32; +pub const kImageAdded: EPrintXPSJobProgress = 8i32; +pub const kInvalidJobState: EBranchOfficeJobEventType = 0i32; +pub const kJobConsumption: EPrintXPSJobOperation = 2i32; +pub const kJobProduction: EPrintXPSJobOperation = 1i32; +pub const kLogJobError: EBranchOfficeJobEventType = 3i32; +pub const kLogJobPipelineError: EBranchOfficeJobEventType = 4i32; +pub const kLogJobPrinted: EBranchOfficeJobEventType = 1i32; +pub const kLogJobRendered: EBranchOfficeJobEventType = 2i32; +pub const kLogOfflineFileFull: EBranchOfficeJobEventType = 5i32; +pub const kMessageBox: UI_TYPE = 0i32; +pub const kPerUser: PrintAsyncNotifyUserFilter = 0i32; +pub const kPropertyTypeBuffer: EPrintPropertyType = 10i32; +pub const kPropertyTypeByte: EPrintPropertyType = 4i32; +pub const kPropertyTypeDevMode: EPrintPropertyType = 6i32; +pub const kPropertyTypeInt32: EPrintPropertyType = 2i32; +pub const kPropertyTypeInt64: EPrintPropertyType = 3i32; +pub const kPropertyTypeNotificationOptions: EPrintPropertyType = 9i32; +pub const kPropertyTypeNotificationReply: EPrintPropertyType = 8i32; +pub const kPropertyTypeSD: EPrintPropertyType = 7i32; +pub const kPropertyTypeString: EPrintPropertyType = 1i32; +pub const kPropertyTypeTime: EPrintPropertyType = 5i32; +pub const kResourceAdded: EPrintXPSJobProgress = 6i32; +pub const kUniDirectional: PrintAsyncNotifyConversationStyle = 1i32; +pub const kXpsDocumentCommitted: EPrintXPSJobProgress = 9i32; +pub type BIDI_TYPE = i32; +pub type EATTRIBUTE_DATATYPE = i32; +pub type EBranchOfficeJobEventType = i32; +pub type EPrintPropertyType = i32; +pub type EPrintXPSJobOperation = i32; +pub type EPrintXPSJobProgress = i32; +pub type EXpsCompressionOptions = i32; +pub type EXpsFontOptions = i32; +pub type EXpsFontRestriction = i32; +pub type EXpsJobConsumption = i32; +pub type MXDC_IMAGE_TYPE_ENUMS = i32; +pub type MXDC_LANDSCAPE_ROTATION_ENUMS = i32; +pub type MXDC_S0_PAGE_ENUMS = i32; +pub type NOTIFICATION_CALLBACK_COMMANDS = i32; +pub type NOTIFICATION_CONFIG_FLAGS = i32; +pub type PRINTER_ACCESS_RIGHTS = u32; +pub type PRINTER_OPTION_FLAGS = i32; +pub type PRINT_EXECUTION_CONTEXT = i32; +pub type PageCountType = i32; +pub type PrintAsyncNotifyConversationStyle = i32; +pub type PrintAsyncNotifyError = i32; +pub type PrintAsyncNotifyUserFilter = i32; +pub type PrintJobStatus = i32; +pub type PrintSchemaConstrainedSetting = i32; +pub type PrintSchemaParameterDataType = i32; +pub type PrintSchemaSelectionType = i32; +pub type SHIMOPTS = i32; +pub type UI_TYPE = i32; +pub type XPSRAS_BACKGROUND_COLOR = i32; +pub type XPSRAS_PIXEL_FORMAT = i32; +pub type XPSRAS_RENDERING_MODE = i32; +#[repr(C)] +pub struct ADDJOB_INFO_1A { + pub Path: ::windows_sys::core::PSTR, + pub JobId: u32, +} +impl ::core::marker::Copy for ADDJOB_INFO_1A {} +impl ::core::clone::Clone for ADDJOB_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADDJOB_INFO_1W { + pub Path: ::windows_sys::core::PWSTR, + pub JobId: u32, +} +impl ::core::marker::Copy for ADDJOB_INFO_1W {} +impl ::core::clone::Clone for ADDJOB_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATTRIBUTE_INFO_1 { + pub dwJobNumberOfPagesPerSide: u32, + pub dwDrvNumberOfPagesPerSide: u32, + pub dwNupBorderFlags: u32, + pub dwJobPageOrderFlags: u32, + pub dwDrvPageOrderFlags: u32, + pub dwJobNumberOfCopies: u32, + pub dwDrvNumberOfCopies: u32, +} +impl ::core::marker::Copy for ATTRIBUTE_INFO_1 {} +impl ::core::clone::Clone for ATTRIBUTE_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATTRIBUTE_INFO_2 { + pub dwJobNumberOfPagesPerSide: u32, + pub dwDrvNumberOfPagesPerSide: u32, + pub dwNupBorderFlags: u32, + pub dwJobPageOrderFlags: u32, + pub dwDrvPageOrderFlags: u32, + pub dwJobNumberOfCopies: u32, + pub dwDrvNumberOfCopies: u32, + pub dwColorOptimization: u32, +} +impl ::core::marker::Copy for ATTRIBUTE_INFO_2 {} +impl ::core::clone::Clone for ATTRIBUTE_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATTRIBUTE_INFO_3 { + pub dwJobNumberOfPagesPerSide: u32, + pub dwDrvNumberOfPagesPerSide: u32, + pub dwNupBorderFlags: u32, + pub dwJobPageOrderFlags: u32, + pub dwDrvPageOrderFlags: u32, + pub dwJobNumberOfCopies: u32, + pub dwDrvNumberOfCopies: u32, + pub dwColorOptimization: u32, + pub dmPrintQuality: i16, + pub dmYResolution: i16, +} +impl ::core::marker::Copy for ATTRIBUTE_INFO_3 {} +impl ::core::clone::Clone for ATTRIBUTE_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATTRIBUTE_INFO_4 { + pub dwJobNumberOfPagesPerSide: u32, + pub dwDrvNumberOfPagesPerSide: u32, + pub dwNupBorderFlags: u32, + pub dwJobPageOrderFlags: u32, + pub dwDrvPageOrderFlags: u32, + pub dwJobNumberOfCopies: u32, + pub dwDrvNumberOfCopies: u32, + pub dwColorOptimization: u32, + pub dmPrintQuality: i16, + pub dmYResolution: i16, + pub dwDuplexFlags: u32, + pub dwNupDirection: u32, + pub dwBookletFlags: u32, + pub dwScalingPercentX: u32, + pub dwScalingPercentY: u32, +} +impl ::core::marker::Copy for ATTRIBUTE_INFO_4 {} +impl ::core::clone::Clone for ATTRIBUTE_INFO_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BIDI_DATA { + pub dwBidiType: u32, + pub u: BIDI_DATA_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BIDI_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BIDI_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union BIDI_DATA_0 { + pub bData: super::super::Foundation::BOOL, + pub iData: i32, + pub sData: ::windows_sys::core::PWSTR, + pub fData: f32, + pub biData: BINARY_CONTAINER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BIDI_DATA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BIDI_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BIDI_REQUEST_CONTAINER { + pub Version: u32, + pub Flags: u32, + pub Count: u32, + pub aData: [BIDI_REQUEST_DATA; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BIDI_REQUEST_CONTAINER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BIDI_REQUEST_CONTAINER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BIDI_REQUEST_DATA { + pub dwReqNumber: u32, + pub pSchema: ::windows_sys::core::PWSTR, + pub data: BIDI_DATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BIDI_REQUEST_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BIDI_REQUEST_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BIDI_RESPONSE_CONTAINER { + pub Version: u32, + pub Flags: u32, + pub Count: u32, + pub aData: [BIDI_RESPONSE_DATA; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BIDI_RESPONSE_CONTAINER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BIDI_RESPONSE_CONTAINER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BIDI_RESPONSE_DATA { + pub dwResult: u32, + pub dwReqNumber: u32, + pub pSchema: ::windows_sys::core::PWSTR, + pub data: BIDI_DATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BIDI_RESPONSE_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BIDI_RESPONSE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BINARY_CONTAINER { + pub cbBuf: u32, + pub pData: *mut u8, +} +impl ::core::marker::Copy for BINARY_CONTAINER {} +impl ::core::clone::Clone for BINARY_CONTAINER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BranchOfficeJobData { + pub eEventType: EBranchOfficeJobEventType, + pub JobId: u32, + pub JobInfo: BranchOfficeJobData_0, +} +impl ::core::marker::Copy for BranchOfficeJobData {} +impl ::core::clone::Clone for BranchOfficeJobData { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union BranchOfficeJobData_0 { + pub LogJobPrinted: BranchOfficeJobDataPrinted, + pub LogJobRendered: BranchOfficeJobDataRendered, + pub LogJobError: BranchOfficeJobDataError, + pub LogPipelineFailed: BranchOfficeJobDataPipelineFailed, + pub LogOfflineFileFull: BranchOfficeLogOfflineFileFull, +} +impl ::core::marker::Copy for BranchOfficeJobData_0 {} +impl ::core::clone::Clone for BranchOfficeJobData_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BranchOfficeJobDataContainer { + pub cJobDataEntries: u32, + pub JobData: [BranchOfficeJobData; 1], +} +impl ::core::marker::Copy for BranchOfficeJobDataContainer {} +impl ::core::clone::Clone for BranchOfficeJobDataContainer { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BranchOfficeJobDataError { + pub LastError: u32, + pub pDocumentName: ::windows_sys::core::PWSTR, + pub pUserName: ::windows_sys::core::PWSTR, + pub pPrinterName: ::windows_sys::core::PWSTR, + pub pDataType: ::windows_sys::core::PWSTR, + pub TotalSize: i64, + pub PrintedSize: i64, + pub TotalPages: u32, + pub PrintedPages: u32, + pub pMachineName: ::windows_sys::core::PWSTR, + pub pJobError: ::windows_sys::core::PWSTR, + pub pErrorDescription: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for BranchOfficeJobDataError {} +impl ::core::clone::Clone for BranchOfficeJobDataError { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BranchOfficeJobDataPipelineFailed { + pub pDocumentName: ::windows_sys::core::PWSTR, + pub pPrinterName: ::windows_sys::core::PWSTR, + pub pExtraErrorInfo: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for BranchOfficeJobDataPipelineFailed {} +impl ::core::clone::Clone for BranchOfficeJobDataPipelineFailed { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BranchOfficeJobDataPrinted { + pub Status: u32, + pub pDocumentName: ::windows_sys::core::PWSTR, + pub pUserName: ::windows_sys::core::PWSTR, + pub pMachineName: ::windows_sys::core::PWSTR, + pub pPrinterName: ::windows_sys::core::PWSTR, + pub pPortName: ::windows_sys::core::PWSTR, + pub Size: i64, + pub TotalPages: u32, +} +impl ::core::marker::Copy for BranchOfficeJobDataPrinted {} +impl ::core::clone::Clone for BranchOfficeJobDataPrinted { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BranchOfficeJobDataRendered { + pub Size: i64, + pub ICMMethod: u32, + pub Color: i16, + pub PrintQuality: i16, + pub YResolution: i16, + pub Copies: i16, + pub TTOption: i16, +} +impl ::core::marker::Copy for BranchOfficeJobDataRendered {} +impl ::core::clone::Clone for BranchOfficeJobDataRendered { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BranchOfficeLogOfflineFileFull { + pub pMachineName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for BranchOfficeLogOfflineFileFull {} +impl ::core::clone::Clone for BranchOfficeLogOfflineFileFull { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct COMPROPSHEETUI { + pub cbSize: u16, + pub Flags: u16, + pub hInstCaller: super::super::Foundation::HINSTANCE, + pub pCallerName: *mut i8, + pub UserData: usize, + pub pHelpFile: *mut i8, + pub pfnCallBack: _CPSUICALLBACK, + pub pOptItem: *mut OPTITEM, + pub pDlgPage: *mut DLGPAGE, + pub cOptItem: u16, + pub cDlgPage: u16, + pub IconID: usize, + pub pOptItemName: *mut i8, + pub CallerVersion: u16, + pub OptItemVersion: u16, + pub dwReserved: [usize; 4], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for COMPROPSHEETUI {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for COMPROPSHEETUI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONFIG_INFO_DATA_1 { + pub Reserved: [u8; 128], + pub dwVersion: u32, +} +impl ::core::marker::Copy for CONFIG_INFO_DATA_1 {} +impl ::core::clone::Clone for CONFIG_INFO_DATA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CORE_PRINTER_DRIVERA { + pub CoreDriverGUID: ::windows_sys::core::GUID, + pub ftDriverDate: super::super::Foundation::FILETIME, + pub dwlDriverVersion: u64, + pub szPackageID: [u8; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CORE_PRINTER_DRIVERA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CORE_PRINTER_DRIVERA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CORE_PRINTER_DRIVERW { + pub CoreDriverGUID: ::windows_sys::core::GUID, + pub ftDriverDate: super::super::Foundation::FILETIME, + pub dwlDriverVersion: u64, + pub szPackageID: [u16; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CORE_PRINTER_DRIVERW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CORE_PRINTER_DRIVERW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct CPSUICBPARAM { + pub cbSize: u16, + pub Reason: u16, + pub hDlg: super::super::Foundation::HWND, + pub pOptItem: *mut OPTITEM, + pub cOptItem: u16, + pub Flags: u16, + pub pCurItem: *mut OPTITEM, + pub Anonymous: CPSUICBPARAM_0, + pub UserData: usize, + pub Result: usize, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for CPSUICBPARAM {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for CPSUICBPARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub union CPSUICBPARAM_0 { + pub OldSel: i32, + pub pOldSel: *mut i8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for CPSUICBPARAM_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for CPSUICBPARAM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CPSUIDATABLOCK { + pub cbData: u32, + pub pbData: *mut u8, +} +impl ::core::marker::Copy for CPSUIDATABLOCK {} +impl ::core::clone::Clone for CPSUIDATABLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CUSTOMSIZEPARAM { + pub dwOrder: i32, + pub lMinVal: i32, + pub lMaxVal: i32, +} +impl ::core::marker::Copy for CUSTOMSIZEPARAM {} +impl ::core::clone::Clone for CUSTOMSIZEPARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DATATYPES_INFO_1A { + pub pName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DATATYPES_INFO_1A {} +impl ::core::clone::Clone for DATATYPES_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DATATYPES_INFO_1W { + pub pName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DATATYPES_INFO_1W {} +impl ::core::clone::Clone for DATATYPES_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DATA_HEADER { + pub dwSignature: u32, + pub wSize: u16, + pub wDataID: u16, + pub dwDataSize: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for DATA_HEADER {} +impl ::core::clone::Clone for DATA_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DELETE_PORT_DATA_1 { + pub psztPortName: [u16; 64], + pub Reserved: [u8; 98], + pub dwVersion: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for DELETE_PORT_DATA_1 {} +impl ::core::clone::Clone for DELETE_PORT_DATA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVICEPROPERTYHEADER { + pub cbSize: u16, + pub Flags: u16, + pub hPrinter: super::super::Foundation::HANDLE, + pub pszPrinterName: *mut i8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVICEPROPERTYHEADER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVICEPROPERTYHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct DEVQUERYPRINT_INFO { + pub cbSize: u16, + pub Level: u16, + pub hPrinter: super::super::Foundation::HANDLE, + pub pDevMode: *mut super::Gdi::DEVMODEA, + pub pszErrorStr: ::windows_sys::core::PWSTR, + pub cchErrorStr: u32, + pub cchNeeded: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for DEVQUERYPRINT_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for DEVQUERYPRINT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct DLGPAGE { + pub cbSize: u16, + pub Flags: u16, + pub DlgProc: super::super::UI::WindowsAndMessaging::DLGPROC, + pub pTabName: *mut i8, + pub IconID: usize, + pub Anonymous: DLGPAGE_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for DLGPAGE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for DLGPAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub union DLGPAGE_0 { + pub DlgTemplateID: u16, + pub hDlgTemplate: super::super::Foundation::HANDLE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for DLGPAGE_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for DLGPAGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct DOCEVENT_CREATEDCPRE { + pub pszDriver: ::windows_sys::core::PWSTR, + pub pszDevice: ::windows_sys::core::PWSTR, + pub pdm: *mut super::Gdi::DEVMODEW, + pub bIC: super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for DOCEVENT_CREATEDCPRE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for DOCEVENT_CREATEDCPRE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOCEVENT_ESCAPE { + pub iEscape: i32, + pub cjInput: i32, + pub pvInData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for DOCEVENT_ESCAPE {} +impl ::core::clone::Clone for DOCEVENT_ESCAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOCEVENT_FILTER { + pub cbSize: u32, + pub cElementsAllocated: u32, + pub cElementsNeeded: u32, + pub cElementsReturned: u32, + pub aDocEventCall: [u32; 1], +} +impl ::core::marker::Copy for DOCEVENT_FILTER {} +impl ::core::clone::Clone for DOCEVENT_FILTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct DOCUMENTPROPERTYHEADER { + pub cbSize: u16, + pub Reserved: u16, + pub hPrinter: super::super::Foundation::HANDLE, + pub pszPrinterName: *mut i8, + pub pdmIn: *mut super::Gdi::DEVMODEA, + pub pdmOut: *mut super::Gdi::DEVMODEA, + pub cbOut: u32, + pub fMode: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for DOCUMENTPROPERTYHEADER {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for DOCUMENTPROPERTYHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOC_INFO_1A { + pub pDocName: ::windows_sys::core::PSTR, + pub pOutputFile: ::windows_sys::core::PSTR, + pub pDatatype: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DOC_INFO_1A {} +impl ::core::clone::Clone for DOC_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOC_INFO_1W { + pub pDocName: ::windows_sys::core::PWSTR, + pub pOutputFile: ::windows_sys::core::PWSTR, + pub pDatatype: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DOC_INFO_1W {} +impl ::core::clone::Clone for DOC_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOC_INFO_2A { + pub pDocName: ::windows_sys::core::PSTR, + pub pOutputFile: ::windows_sys::core::PSTR, + pub pDatatype: ::windows_sys::core::PSTR, + pub dwMode: u32, + pub JobId: u32, +} +impl ::core::marker::Copy for DOC_INFO_2A {} +impl ::core::clone::Clone for DOC_INFO_2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOC_INFO_2W { + pub pDocName: ::windows_sys::core::PWSTR, + pub pOutputFile: ::windows_sys::core::PWSTR, + pub pDatatype: ::windows_sys::core::PWSTR, + pub dwMode: u32, + pub JobId: u32, +} +impl ::core::marker::Copy for DOC_INFO_2W {} +impl ::core::clone::Clone for DOC_INFO_2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOC_INFO_3A { + pub pDocName: ::windows_sys::core::PSTR, + pub pOutputFile: ::windows_sys::core::PSTR, + pub pDatatype: ::windows_sys::core::PSTR, + pub dwFlags: u32, +} +impl ::core::marker::Copy for DOC_INFO_3A {} +impl ::core::clone::Clone for DOC_INFO_3A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOC_INFO_3W { + pub pDocName: ::windows_sys::core::PWSTR, + pub pOutputFile: ::windows_sys::core::PWSTR, + pub pDatatype: ::windows_sys::core::PWSTR, + pub dwFlags: u32, +} +impl ::core::marker::Copy for DOC_INFO_3W {} +impl ::core::clone::Clone for DOC_INFO_3W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOC_INFO_INTERNAL { + pub pDocName: *mut i8, + pub pOutputFile: *mut i8, + pub pDatatype: *mut i8, + pub bLowILJob: super::super::Foundation::BOOL, + pub hTokenLowIL: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOC_INFO_INTERNAL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOC_INFO_INTERNAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_INFO_1A { + pub pName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DRIVER_INFO_1A {} +impl ::core::clone::Clone for DRIVER_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_INFO_1W { + pub pName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DRIVER_INFO_1W {} +impl ::core::clone::Clone for DRIVER_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_INFO_2A { + pub cVersion: u32, + pub pName: ::windows_sys::core::PSTR, + pub pEnvironment: ::windows_sys::core::PSTR, + pub pDriverPath: ::windows_sys::core::PSTR, + pub pDataFile: ::windows_sys::core::PSTR, + pub pConfigFile: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DRIVER_INFO_2A {} +impl ::core::clone::Clone for DRIVER_INFO_2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_INFO_2W { + pub cVersion: u32, + pub pName: ::windows_sys::core::PWSTR, + pub pEnvironment: ::windows_sys::core::PWSTR, + pub pDriverPath: ::windows_sys::core::PWSTR, + pub pDataFile: ::windows_sys::core::PWSTR, + pub pConfigFile: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DRIVER_INFO_2W {} +impl ::core::clone::Clone for DRIVER_INFO_2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_INFO_3A { + pub cVersion: u32, + pub pName: ::windows_sys::core::PSTR, + pub pEnvironment: ::windows_sys::core::PSTR, + pub pDriverPath: ::windows_sys::core::PSTR, + pub pDataFile: ::windows_sys::core::PSTR, + pub pConfigFile: ::windows_sys::core::PSTR, + pub pHelpFile: ::windows_sys::core::PSTR, + pub pDependentFiles: ::windows_sys::core::PSTR, + pub pMonitorName: ::windows_sys::core::PSTR, + pub pDefaultDataType: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DRIVER_INFO_3A {} +impl ::core::clone::Clone for DRIVER_INFO_3A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_INFO_3W { + pub cVersion: u32, + pub pName: ::windows_sys::core::PWSTR, + pub pEnvironment: ::windows_sys::core::PWSTR, + pub pDriverPath: ::windows_sys::core::PWSTR, + pub pDataFile: ::windows_sys::core::PWSTR, + pub pConfigFile: ::windows_sys::core::PWSTR, + pub pHelpFile: ::windows_sys::core::PWSTR, + pub pDependentFiles: ::windows_sys::core::PWSTR, + pub pMonitorName: ::windows_sys::core::PWSTR, + pub pDefaultDataType: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DRIVER_INFO_3W {} +impl ::core::clone::Clone for DRIVER_INFO_3W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_INFO_4A { + pub cVersion: u32, + pub pName: ::windows_sys::core::PSTR, + pub pEnvironment: ::windows_sys::core::PSTR, + pub pDriverPath: ::windows_sys::core::PSTR, + pub pDataFile: ::windows_sys::core::PSTR, + pub pConfigFile: ::windows_sys::core::PSTR, + pub pHelpFile: ::windows_sys::core::PSTR, + pub pDependentFiles: ::windows_sys::core::PSTR, + pub pMonitorName: ::windows_sys::core::PSTR, + pub pDefaultDataType: ::windows_sys::core::PSTR, + pub pszzPreviousNames: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DRIVER_INFO_4A {} +impl ::core::clone::Clone for DRIVER_INFO_4A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_INFO_4W { + pub cVersion: u32, + pub pName: ::windows_sys::core::PWSTR, + pub pEnvironment: ::windows_sys::core::PWSTR, + pub pDriverPath: ::windows_sys::core::PWSTR, + pub pDataFile: ::windows_sys::core::PWSTR, + pub pConfigFile: ::windows_sys::core::PWSTR, + pub pHelpFile: ::windows_sys::core::PWSTR, + pub pDependentFiles: ::windows_sys::core::PWSTR, + pub pMonitorName: ::windows_sys::core::PWSTR, + pub pDefaultDataType: ::windows_sys::core::PWSTR, + pub pszzPreviousNames: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DRIVER_INFO_4W {} +impl ::core::clone::Clone for DRIVER_INFO_4W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_INFO_5A { + pub cVersion: u32, + pub pName: ::windows_sys::core::PSTR, + pub pEnvironment: ::windows_sys::core::PSTR, + pub pDriverPath: ::windows_sys::core::PSTR, + pub pDataFile: ::windows_sys::core::PSTR, + pub pConfigFile: ::windows_sys::core::PSTR, + pub dwDriverAttributes: u32, + pub dwConfigVersion: u32, + pub dwDriverVersion: u32, +} +impl ::core::marker::Copy for DRIVER_INFO_5A {} +impl ::core::clone::Clone for DRIVER_INFO_5A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_INFO_5W { + pub cVersion: u32, + pub pName: ::windows_sys::core::PWSTR, + pub pEnvironment: ::windows_sys::core::PWSTR, + pub pDriverPath: ::windows_sys::core::PWSTR, + pub pDataFile: ::windows_sys::core::PWSTR, + pub pConfigFile: ::windows_sys::core::PWSTR, + pub dwDriverAttributes: u32, + pub dwConfigVersion: u32, + pub dwDriverVersion: u32, +} +impl ::core::marker::Copy for DRIVER_INFO_5W {} +impl ::core::clone::Clone for DRIVER_INFO_5W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DRIVER_INFO_6A { + pub cVersion: u32, + pub pName: ::windows_sys::core::PSTR, + pub pEnvironment: ::windows_sys::core::PSTR, + pub pDriverPath: ::windows_sys::core::PSTR, + pub pDataFile: ::windows_sys::core::PSTR, + pub pConfigFile: ::windows_sys::core::PSTR, + pub pHelpFile: ::windows_sys::core::PSTR, + pub pDependentFiles: ::windows_sys::core::PSTR, + pub pMonitorName: ::windows_sys::core::PSTR, + pub pDefaultDataType: ::windows_sys::core::PSTR, + pub pszzPreviousNames: ::windows_sys::core::PSTR, + pub ftDriverDate: super::super::Foundation::FILETIME, + pub dwlDriverVersion: u64, + pub pszMfgName: ::windows_sys::core::PSTR, + pub pszOEMUrl: ::windows_sys::core::PSTR, + pub pszHardwareID: ::windows_sys::core::PSTR, + pub pszProvider: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRIVER_INFO_6A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRIVER_INFO_6A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DRIVER_INFO_6W { + pub cVersion: u32, + pub pName: ::windows_sys::core::PWSTR, + pub pEnvironment: ::windows_sys::core::PWSTR, + pub pDriverPath: ::windows_sys::core::PWSTR, + pub pDataFile: ::windows_sys::core::PWSTR, + pub pConfigFile: ::windows_sys::core::PWSTR, + pub pHelpFile: ::windows_sys::core::PWSTR, + pub pDependentFiles: ::windows_sys::core::PWSTR, + pub pMonitorName: ::windows_sys::core::PWSTR, + pub pDefaultDataType: ::windows_sys::core::PWSTR, + pub pszzPreviousNames: ::windows_sys::core::PWSTR, + pub ftDriverDate: super::super::Foundation::FILETIME, + pub dwlDriverVersion: u64, + pub pszMfgName: ::windows_sys::core::PWSTR, + pub pszOEMUrl: ::windows_sys::core::PWSTR, + pub pszHardwareID: ::windows_sys::core::PWSTR, + pub pszProvider: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRIVER_INFO_6W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRIVER_INFO_6W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DRIVER_INFO_8A { + pub cVersion: u32, + pub pName: ::windows_sys::core::PSTR, + pub pEnvironment: ::windows_sys::core::PSTR, + pub pDriverPath: ::windows_sys::core::PSTR, + pub pDataFile: ::windows_sys::core::PSTR, + pub pConfigFile: ::windows_sys::core::PSTR, + pub pHelpFile: ::windows_sys::core::PSTR, + pub pDependentFiles: ::windows_sys::core::PSTR, + pub pMonitorName: ::windows_sys::core::PSTR, + pub pDefaultDataType: ::windows_sys::core::PSTR, + pub pszzPreviousNames: ::windows_sys::core::PSTR, + pub ftDriverDate: super::super::Foundation::FILETIME, + pub dwlDriverVersion: u64, + pub pszMfgName: ::windows_sys::core::PSTR, + pub pszOEMUrl: ::windows_sys::core::PSTR, + pub pszHardwareID: ::windows_sys::core::PSTR, + pub pszProvider: ::windows_sys::core::PSTR, + pub pszPrintProcessor: ::windows_sys::core::PSTR, + pub pszVendorSetup: ::windows_sys::core::PSTR, + pub pszzColorProfiles: ::windows_sys::core::PSTR, + pub pszInfPath: ::windows_sys::core::PSTR, + pub dwPrinterDriverAttributes: u32, + pub pszzCoreDriverDependencies: ::windows_sys::core::PSTR, + pub ftMinInboxDriverVerDate: super::super::Foundation::FILETIME, + pub dwlMinInboxDriverVerVersion: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRIVER_INFO_8A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRIVER_INFO_8A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DRIVER_INFO_8W { + pub cVersion: u32, + pub pName: ::windows_sys::core::PWSTR, + pub pEnvironment: ::windows_sys::core::PWSTR, + pub pDriverPath: ::windows_sys::core::PWSTR, + pub pDataFile: ::windows_sys::core::PWSTR, + pub pConfigFile: ::windows_sys::core::PWSTR, + pub pHelpFile: ::windows_sys::core::PWSTR, + pub pDependentFiles: ::windows_sys::core::PWSTR, + pub pMonitorName: ::windows_sys::core::PWSTR, + pub pDefaultDataType: ::windows_sys::core::PWSTR, + pub pszzPreviousNames: ::windows_sys::core::PWSTR, + pub ftDriverDate: super::super::Foundation::FILETIME, + pub dwlDriverVersion: u64, + pub pszMfgName: ::windows_sys::core::PWSTR, + pub pszOEMUrl: ::windows_sys::core::PWSTR, + pub pszHardwareID: ::windows_sys::core::PWSTR, + pub pszProvider: ::windows_sys::core::PWSTR, + pub pszPrintProcessor: ::windows_sys::core::PWSTR, + pub pszVendorSetup: ::windows_sys::core::PWSTR, + pub pszzColorProfiles: ::windows_sys::core::PWSTR, + pub pszInfPath: ::windows_sys::core::PWSTR, + pub dwPrinterDriverAttributes: u32, + pub pszzCoreDriverDependencies: ::windows_sys::core::PWSTR, + pub ftMinInboxDriverVerDate: super::super::Foundation::FILETIME, + pub dwlMinInboxDriverVerVersion: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRIVER_INFO_8W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRIVER_INFO_8W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_UPGRADE_INFO_1 { + pub pPrinterName: *mut i8, + pub pOldDriverDirectory: *mut i8, +} +impl ::core::marker::Copy for DRIVER_UPGRADE_INFO_1 {} +impl ::core::clone::Clone for DRIVER_UPGRADE_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_UPGRADE_INFO_2 { + pub pPrinterName: *mut i8, + pub pOldDriverDirectory: *mut i8, + pub cVersion: u32, + pub pName: *mut i8, + pub pEnvironment: *mut i8, + pub pDriverPath: *mut i8, + pub pDataFile: *mut i8, + pub pConfigFile: *mut i8, + pub pHelpFile: *mut i8, + pub pDependentFiles: *mut i8, + pub pMonitorName: *mut i8, + pub pDefaultDataType: *mut i8, + pub pszzPreviousNames: *mut i8, +} +impl ::core::marker::Copy for DRIVER_UPGRADE_INFO_2 {} +impl ::core::clone::Clone for DRIVER_UPGRADE_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXTCHKBOX { + pub cbSize: u16, + pub Flags: u16, + pub pTitle: *mut i8, + pub pSeparator: *mut i8, + pub pCheckedName: *mut i8, + pub IconID: usize, + pub wReserved: [u16; 4], + pub dwReserved: [usize; 2], +} +impl ::core::marker::Copy for EXTCHKBOX {} +impl ::core::clone::Clone for EXTCHKBOX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct EXTPUSH { + pub cbSize: u16, + pub Flags: u16, + pub pTitle: *mut i8, + pub Anonymous1: EXTPUSH_0, + pub IconID: usize, + pub Anonymous2: EXTPUSH_1, + pub dwReserved: [usize; 3], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for EXTPUSH {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for EXTPUSH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub union EXTPUSH_0 { + pub DlgProc: super::super::UI::WindowsAndMessaging::DLGPROC, + pub pfnCallBack: super::super::Foundation::FARPROC, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for EXTPUSH_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for EXTPUSH_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub union EXTPUSH_1 { + pub DlgTemplateID: u16, + pub hDlgTemplate: super::super::Foundation::HANDLE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for EXTPUSH_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for EXTPUSH_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXTTEXTMETRIC { + pub emSize: i16, + pub emPointSize: i16, + pub emOrientation: i16, + pub emMasterHeight: i16, + pub emMinScale: i16, + pub emMaxScale: i16, + pub emMasterUnits: i16, + pub emCapHeight: i16, + pub emXHeight: i16, + pub emLowerCaseAscent: i16, + pub emLowerCaseDescent: i16, + pub emSlant: i16, + pub emSuperScript: i16, + pub emSubScript: i16, + pub emSuperScriptSize: i16, + pub emSubScriptSize: i16, + pub emUnderlineOffset: i16, + pub emUnderlineWidth: i16, + pub emDoubleUpperUnderlineOffset: i16, + pub emDoubleLowerUnderlineOffset: i16, + pub emDoubleUpperUnderlineWidth: i16, + pub emDoubleLowerUnderlineWidth: i16, + pub emStrikeOutOffset: i16, + pub emStrikeOutWidth: i16, + pub emKernPairs: u16, + pub emKernTracks: u16, +} +impl ::core::marker::Copy for EXTTEXTMETRIC {} +impl ::core::clone::Clone for EXTTEXTMETRIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FORM_INFO_1A { + pub Flags: u32, + pub pName: ::windows_sys::core::PSTR, + pub Size: super::super::Foundation::SIZE, + pub ImageableArea: super::super::Foundation::RECTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FORM_INFO_1A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FORM_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FORM_INFO_1W { + pub Flags: u32, + pub pName: ::windows_sys::core::PWSTR, + pub Size: super::super::Foundation::SIZE, + pub ImageableArea: super::super::Foundation::RECTL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FORM_INFO_1W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FORM_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FORM_INFO_2A { + pub Flags: u32, + pub pName: ::windows_sys::core::PCSTR, + pub Size: super::super::Foundation::SIZE, + pub ImageableArea: super::super::Foundation::RECTL, + pub pKeyword: ::windows_sys::core::PCSTR, + pub StringType: u32, + pub pMuiDll: ::windows_sys::core::PCSTR, + pub dwResourceId: u32, + pub pDisplayName: ::windows_sys::core::PCSTR, + pub wLangId: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FORM_INFO_2A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FORM_INFO_2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FORM_INFO_2W { + pub Flags: u32, + pub pName: ::windows_sys::core::PCWSTR, + pub Size: super::super::Foundation::SIZE, + pub ImageableArea: super::super::Foundation::RECTL, + pub pKeyword: ::windows_sys::core::PCSTR, + pub StringType: u32, + pub pMuiDll: ::windows_sys::core::PCWSTR, + pub dwResourceId: u32, + pub pDisplayName: ::windows_sys::core::PCWSTR, + pub wLangId: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FORM_INFO_2W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FORM_INFO_2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GLYPHRUN { + pub wcLow: u16, + pub wGlyphCount: u16, +} +impl ::core::marker::Copy for GLYPHRUN {} +impl ::core::clone::Clone for GLYPHRUN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INSERTPSUIPAGE_INFO { + pub cbSize: u16, + pub Type: u8, + pub Mode: u8, + pub dwData1: usize, + pub dwData2: usize, + pub dwData3: usize, +} +impl ::core::marker::Copy for INSERTPSUIPAGE_INFO {} +impl ::core::clone::Clone for INSERTPSUIPAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INVOC { + pub dwCount: u32, + pub loOffset: u32, +} +impl ::core::marker::Copy for INVOC {} +impl ::core::clone::Clone for INVOC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ImgErrorInfo { + pub description: ::windows_sys::core::BSTR, + pub guid: ::windows_sys::core::GUID, + pub helpContext: u32, + pub helpFile: ::windows_sys::core::BSTR, + pub source: ::windows_sys::core::BSTR, + pub devDescription: ::windows_sys::core::BSTR, + pub errorID: ::windows_sys::core::GUID, + pub cUserParameters: u32, + pub aUserParameters: *mut ::windows_sys::core::BSTR, + pub userFallback: ::windows_sys::core::BSTR, + pub exceptionID: u32, +} +impl ::core::marker::Copy for ImgErrorInfo {} +impl ::core::clone::Clone for ImgErrorInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct JOB_INFO_1A { + pub JobId: u32, + pub pPrinterName: ::windows_sys::core::PSTR, + pub pMachineName: ::windows_sys::core::PSTR, + pub pUserName: ::windows_sys::core::PSTR, + pub pDocument: ::windows_sys::core::PSTR, + pub pDatatype: ::windows_sys::core::PSTR, + pub pStatus: ::windows_sys::core::PSTR, + pub Status: u32, + pub Priority: u32, + pub Position: u32, + pub TotalPages: u32, + pub PagesPrinted: u32, + pub Submitted: super::super::Foundation::SYSTEMTIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for JOB_INFO_1A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for JOB_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct JOB_INFO_1W { + pub JobId: u32, + pub pPrinterName: ::windows_sys::core::PWSTR, + pub pMachineName: ::windows_sys::core::PWSTR, + pub pUserName: ::windows_sys::core::PWSTR, + pub pDocument: ::windows_sys::core::PWSTR, + pub pDatatype: ::windows_sys::core::PWSTR, + pub pStatus: ::windows_sys::core::PWSTR, + pub Status: u32, + pub Priority: u32, + pub Position: u32, + pub TotalPages: u32, + pub PagesPrinted: u32, + pub Submitted: super::super::Foundation::SYSTEMTIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for JOB_INFO_1W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for JOB_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +pub struct JOB_INFO_2A { + pub JobId: u32, + pub pPrinterName: ::windows_sys::core::PSTR, + pub pMachineName: ::windows_sys::core::PSTR, + pub pUserName: ::windows_sys::core::PSTR, + pub pDocument: ::windows_sys::core::PSTR, + pub pNotifyName: ::windows_sys::core::PSTR, + pub pDatatype: ::windows_sys::core::PSTR, + pub pPrintProcessor: ::windows_sys::core::PSTR, + pub pParameters: ::windows_sys::core::PSTR, + pub pDriverName: ::windows_sys::core::PSTR, + pub pDevMode: *mut super::Gdi::DEVMODEA, + pub pStatus: ::windows_sys::core::PSTR, + pub pSecurityDescriptor: super::super::Security::PSECURITY_DESCRIPTOR, + pub Status: u32, + pub Priority: u32, + pub Position: u32, + pub StartTime: u32, + pub UntilTime: u32, + pub TotalPages: u32, + pub Size: u32, + pub Submitted: super::super::Foundation::SYSTEMTIME, + pub Time: u32, + pub PagesPrinted: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +impl ::core::marker::Copy for JOB_INFO_2A {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +impl ::core::clone::Clone for JOB_INFO_2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +pub struct JOB_INFO_2W { + pub JobId: u32, + pub pPrinterName: ::windows_sys::core::PWSTR, + pub pMachineName: ::windows_sys::core::PWSTR, + pub pUserName: ::windows_sys::core::PWSTR, + pub pDocument: ::windows_sys::core::PWSTR, + pub pNotifyName: ::windows_sys::core::PWSTR, + pub pDatatype: ::windows_sys::core::PWSTR, + pub pPrintProcessor: ::windows_sys::core::PWSTR, + pub pParameters: ::windows_sys::core::PWSTR, + pub pDriverName: ::windows_sys::core::PWSTR, + pub pDevMode: *mut super::Gdi::DEVMODEW, + pub pStatus: ::windows_sys::core::PWSTR, + pub pSecurityDescriptor: super::super::Security::PSECURITY_DESCRIPTOR, + pub Status: u32, + pub Priority: u32, + pub Position: u32, + pub StartTime: u32, + pub UntilTime: u32, + pub TotalPages: u32, + pub Size: u32, + pub Submitted: super::super::Foundation::SYSTEMTIME, + pub Time: u32, + pub PagesPrinted: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +impl ::core::marker::Copy for JOB_INFO_2W {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +impl ::core::clone::Clone for JOB_INFO_2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOB_INFO_3 { + pub JobId: u32, + pub NextJobId: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for JOB_INFO_3 {} +impl ::core::clone::Clone for JOB_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +pub struct JOB_INFO_4A { + pub JobId: u32, + pub pPrinterName: ::windows_sys::core::PSTR, + pub pMachineName: ::windows_sys::core::PSTR, + pub pUserName: ::windows_sys::core::PSTR, + pub pDocument: ::windows_sys::core::PSTR, + pub pNotifyName: ::windows_sys::core::PSTR, + pub pDatatype: ::windows_sys::core::PSTR, + pub pPrintProcessor: ::windows_sys::core::PSTR, + pub pParameters: ::windows_sys::core::PSTR, + pub pDriverName: ::windows_sys::core::PSTR, + pub pDevMode: *mut super::Gdi::DEVMODEA, + pub pStatus: ::windows_sys::core::PSTR, + pub pSecurityDescriptor: super::super::Security::PSECURITY_DESCRIPTOR, + pub Status: u32, + pub Priority: u32, + pub Position: u32, + pub StartTime: u32, + pub UntilTime: u32, + pub TotalPages: u32, + pub Size: u32, + pub Submitted: super::super::Foundation::SYSTEMTIME, + pub Time: u32, + pub PagesPrinted: u32, + pub SizeHigh: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +impl ::core::marker::Copy for JOB_INFO_4A {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +impl ::core::clone::Clone for JOB_INFO_4A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +pub struct JOB_INFO_4W { + pub JobId: u32, + pub pPrinterName: ::windows_sys::core::PWSTR, + pub pMachineName: ::windows_sys::core::PWSTR, + pub pUserName: ::windows_sys::core::PWSTR, + pub pDocument: ::windows_sys::core::PWSTR, + pub pNotifyName: ::windows_sys::core::PWSTR, + pub pDatatype: ::windows_sys::core::PWSTR, + pub pPrintProcessor: ::windows_sys::core::PWSTR, + pub pParameters: ::windows_sys::core::PWSTR, + pub pDriverName: ::windows_sys::core::PWSTR, + pub pDevMode: *mut super::Gdi::DEVMODEW, + pub pStatus: ::windows_sys::core::PWSTR, + pub pSecurityDescriptor: super::super::Security::PSECURITY_DESCRIPTOR, + pub Status: u32, + pub Priority: u32, + pub Position: u32, + pub StartTime: u32, + pub UntilTime: u32, + pub TotalPages: u32, + pub Size: u32, + pub Submitted: super::super::Foundation::SYSTEMTIME, + pub Time: u32, + pub PagesPrinted: u32, + pub SizeHigh: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +impl ::core::marker::Copy for JOB_INFO_4W {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +impl ::core::clone::Clone for JOB_INFO_4W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Devices_Display\"`"] +#[cfg(feature = "Win32_Devices_Display")] +pub struct KERNDATA { + pub dwSize: u32, + pub dwKernPairNum: u32, + pub KernPair: [super::super::Devices::Display::FD_KERNINGPAIR; 1], +} +#[cfg(feature = "Win32_Devices_Display")] +impl ::core::marker::Copy for KERNDATA {} +#[cfg(feature = "Win32_Devices_Display")] +impl ::core::clone::Clone for KERNDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MAPTABLE { + pub dwSize: u32, + pub dwGlyphNum: u32, + pub Trans: [TRANSDATA; 1], +} +impl ::core::marker::Copy for MAPTABLE {} +impl ::core::clone::Clone for MAPTABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MESSAGEBOX_PARAMS { + pub cbSize: u32, + pub pTitle: ::windows_sys::core::PWSTR, + pub pMessage: ::windows_sys::core::PWSTR, + pub Style: u32, + pub dwTimeout: u32, + pub bWait: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MESSAGEBOX_PARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MESSAGEBOX_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] +#[cfg(all(feature = "Win32_Devices_Communication", feature = "Win32_Foundation", feature = "Win32_System_Power"))] +pub struct MONITOR { + pub pfnEnumPorts: PFN_PRINTING_ENUMPORTS, + pub pfnOpenPort: PFN_PRINTING_OPENPORT, + pub pfnOpenPortEx: PFN_PRINTING_OPENPORTEX, + pub pfnStartDocPort: PFN_PRINTING_STARTDOCPORT, + pub pfnWritePort: PFN_PRINTING_WRITEPORT, + pub pfnReadPort: PFN_PRINTING_READPORT, + pub pfnEndDocPort: PFN_PRINTING_ENDDOCPORT, + pub pfnClosePort: PFN_PRINTING_CLOSEPORT, + pub pfnAddPort: PFN_PRINTING_ADDPORT, + pub pfnAddPortEx: PFN_PRINTING_ADDPORTEX, + pub pfnConfigurePort: PFN_PRINTING_CONFIGUREPORT, + pub pfnDeletePort: PFN_PRINTING_DELETEPORT, + pub pfnGetPrinterDataFromPort: PFN_PRINTING_GETPRINTERDATAFROMPORT, + pub pfnSetPortTimeOuts: PFN_PRINTING_SETPORTTIMEOUTS, + pub pfnXcvOpenPort: PFN_PRINTING_XCVOPENPORT, + pub pfnXcvDataPort: PFN_PRINTING_XCVDATAPORT, + pub pfnXcvClosePort: PFN_PRINTING_XCVCLOSEPORT, +} +#[cfg(all(feature = "Win32_Devices_Communication", feature = "Win32_Foundation", feature = "Win32_System_Power"))] +impl ::core::marker::Copy for MONITOR {} +#[cfg(all(feature = "Win32_Devices_Communication", feature = "Win32_Foundation", feature = "Win32_System_Power"))] +impl ::core::clone::Clone for MONITOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] +#[cfg(all(feature = "Win32_Devices_Communication", feature = "Win32_Foundation", feature = "Win32_System_Power"))] +pub struct MONITOR2 { + pub cbSize: u32, + pub pfnEnumPorts: PFN_PRINTING_ENUMPORTS2, + pub pfnOpenPort: PFN_PRINTING_OPENPORT2, + pub pfnOpenPortEx: PFN_PRINTING_OPENPORTEX2, + pub pfnStartDocPort: PFN_PRINTING_STARTDOCPORT2, + pub pfnWritePort: PFN_PRINTING_WRITEPORT2, + pub pfnReadPort: PFN_PRINTING_READPORT2, + pub pfnEndDocPort: PFN_PRINTING_ENDDOCPORT2, + pub pfnClosePort: PFN_PRINTING_CLOSEPORT2, + pub pfnAddPort: PFN_PRINTING_ADDPORT2, + pub pfnAddPortEx: PFN_PRINTING_ADDPORTEX2, + pub pfnConfigurePort: PFN_PRINTING_CONFIGUREPORT2, + pub pfnDeletePort: PFN_PRINTING_DELETEPORT2, + pub pfnGetPrinterDataFromPort: PFN_PRINTING_GETPRINTERDATAFROMPORT2, + pub pfnSetPortTimeOuts: PFN_PRINTING_SETPORTTIMEOUTS2, + pub pfnXcvOpenPort: PFN_PRINTING_XCVOPENPORT2, + pub pfnXcvDataPort: PFN_PRINTING_XCVDATAPORT2, + pub pfnXcvClosePort: PFN_PRINTING_XCVCLOSEPORT2, + pub pfnShutdown: PFN_PRINTING_SHUTDOWN2, + pub pfnSendRecvBidiDataFromPort: PFN_PRINTING_SENDRECVBIDIDATAFROMPORT2, + pub pfnNotifyUsedPorts: PFN_PRINTING_NOTIFYUSEDPORTS2, + pub pfnNotifyUnusedPorts: PFN_PRINTING_NOTIFYUNUSEDPORTS2, + pub pfnPowerEvent: PFN_PRINTING_POWEREVENT2, +} +#[cfg(all(feature = "Win32_Devices_Communication", feature = "Win32_Foundation", feature = "Win32_System_Power"))] +impl ::core::marker::Copy for MONITOR2 {} +#[cfg(all(feature = "Win32_Devices_Communication", feature = "Win32_Foundation", feature = "Win32_System_Power"))] +impl ::core::clone::Clone for MONITOR2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] +#[cfg(all(feature = "Win32_Devices_Communication", feature = "Win32_Foundation", feature = "Win32_System_Power"))] +pub struct MONITOREX { + pub dwMonitorSize: u32, + pub Monitor: MONITOR, +} +#[cfg(all(feature = "Win32_Devices_Communication", feature = "Win32_Foundation", feature = "Win32_System_Power"))] +impl ::core::marker::Copy for MONITOREX {} +#[cfg(all(feature = "Win32_Devices_Communication", feature = "Win32_Foundation", feature = "Win32_System_Power"))] +impl ::core::clone::Clone for MONITOREX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub struct MONITORINIT { + pub cbSize: u32, + pub hSpooler: super::super::Foundation::HANDLE, + pub hckRegistryRoot: super::super::System::Registry::HKEY, + pub pMonitorReg: *mut MONITORREG, + pub bLocal: super::super::Foundation::BOOL, + pub pszServerName: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for MONITORINIT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for MONITORINIT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MONITORREG { + pub cbSize: u32, + pub fpCreateKey: isize, + pub fpOpenKey: isize, + pub fpCloseKey: isize, + pub fpDeleteKey: isize, + pub fpEnumKey: isize, + pub fpQueryInfoKey: isize, + pub fpSetValue: isize, + pub fpDeleteValue: isize, + pub fpEnumValue: isize, + pub fpQueryValue: isize, +} +impl ::core::marker::Copy for MONITORREG {} +impl ::core::clone::Clone for MONITORREG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MONITORUI { + pub dwMonitorUISize: u32, + pub pfnAddPortUI: isize, + pub pfnConfigurePortUI: isize, + pub pfnDeletePortUI: isize, +} +impl ::core::marker::Copy for MONITORUI {} +impl ::core::clone::Clone for MONITORUI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MONITOR_INFO_1A { + pub pName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for MONITOR_INFO_1A {} +impl ::core::clone::Clone for MONITOR_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MONITOR_INFO_1W { + pub pName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for MONITOR_INFO_1W {} +impl ::core::clone::Clone for MONITOR_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MONITOR_INFO_2A { + pub pName: ::windows_sys::core::PSTR, + pub pEnvironment: ::windows_sys::core::PSTR, + pub pDLLName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for MONITOR_INFO_2A {} +impl ::core::clone::Clone for MONITOR_INFO_2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MONITOR_INFO_2W { + pub pName: ::windows_sys::core::PWSTR, + pub pEnvironment: ::windows_sys::core::PWSTR, + pub pDLLName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for MONITOR_INFO_2W {} +impl ::core::clone::Clone for MONITOR_INFO_2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MXDC_ESCAPE_HEADER_T { + pub cbInput: u32, + pub cbOutput: u32, + pub opCode: u32, +} +impl ::core::marker::Copy for MXDC_ESCAPE_HEADER_T {} +impl ::core::clone::Clone for MXDC_ESCAPE_HEADER_T { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MXDC_GET_FILENAME_DATA_T { + pub cbOutput: u32, + pub wszData: [u16; 1], +} +impl ::core::marker::Copy for MXDC_GET_FILENAME_DATA_T {} +impl ::core::clone::Clone for MXDC_GET_FILENAME_DATA_T { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MXDC_PRINTTICKET_DATA_T { + pub dwDataSize: u32, + pub bData: [u8; 1], +} +impl ::core::marker::Copy for MXDC_PRINTTICKET_DATA_T {} +impl ::core::clone::Clone for MXDC_PRINTTICKET_DATA_T { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MXDC_PRINTTICKET_ESCAPE_T { + pub mxdcEscape: MXDC_ESCAPE_HEADER_T, + pub printTicketData: MXDC_PRINTTICKET_DATA_T, +} +impl ::core::marker::Copy for MXDC_PRINTTICKET_ESCAPE_T {} +impl ::core::clone::Clone for MXDC_PRINTTICKET_ESCAPE_T { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MXDC_S0PAGE_DATA_T { + pub dwSize: u32, + pub bData: [u8; 1], +} +impl ::core::marker::Copy for MXDC_S0PAGE_DATA_T {} +impl ::core::clone::Clone for MXDC_S0PAGE_DATA_T { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T { + pub mxdcEscape: MXDC_ESCAPE_HEADER_T, + pub xpsS0PageData: MXDC_S0PAGE_DATA_T, +} +impl ::core::marker::Copy for MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T {} +impl ::core::clone::Clone for MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MXDC_S0PAGE_RESOURCE_ESCAPE_T { + pub mxdcEscape: MXDC_ESCAPE_HEADER_T, + pub xpsS0PageResourcePassthrough: MXDC_XPS_S0PAGE_RESOURCE_T, +} +impl ::core::marker::Copy for MXDC_S0PAGE_RESOURCE_ESCAPE_T {} +impl ::core::clone::Clone for MXDC_S0PAGE_RESOURCE_ESCAPE_T { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MXDC_XPS_S0PAGE_RESOURCE_T { + pub dwSize: u32, + pub dwResourceType: u32, + pub szUri: [u8; 260], + pub dwDataSize: u32, + pub bData: [u8; 1], +} +impl ::core::marker::Copy for MXDC_XPS_S0PAGE_RESOURCE_T {} +impl ::core::clone::Clone for MXDC_XPS_S0PAGE_RESOURCE_T { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NOTIFICATION_CONFIG_1 { + pub cbSize: u32, + pub fdwFlags: u32, + pub pfnNotifyCallback: ROUTER_NOTIFY_CALLBACK, + pub pContext: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NOTIFICATION_CONFIG_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NOTIFICATION_CONFIG_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct OEMCUIPPARAM { + pub cbSize: u32, + pub poemuiobj: *mut OEMUIOBJ, + pub hPrinter: super::super::Foundation::HANDLE, + pub pPrinterName: ::windows_sys::core::PWSTR, + pub hModule: super::super::Foundation::HANDLE, + pub hOEMHeap: super::super::Foundation::HANDLE, + pub pPublicDM: *mut super::Gdi::DEVMODEA, + pub pOEMDM: *mut ::core::ffi::c_void, + pub dwFlags: u32, + pub pDrvOptItems: *mut OPTITEM, + pub cDrvOptItems: u32, + pub pOEMOptItems: *mut OPTITEM, + pub cOEMOptItems: u32, + pub pOEMUserData: *mut ::core::ffi::c_void, + pub OEMCUIPCallback: OEMCUIPCALLBACK, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OEMCUIPPARAM {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OEMCUIPPARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct OEMDMPARAM { + pub cbSize: u32, + pub pdriverobj: *mut ::core::ffi::c_void, + pub hPrinter: super::super::Foundation::HANDLE, + pub hModule: super::super::Foundation::HANDLE, + pub pPublicDMIn: *mut super::Gdi::DEVMODEA, + pub pPublicDMOut: *mut super::Gdi::DEVMODEA, + pub pOEMDMIn: *mut ::core::ffi::c_void, + pub pOEMDMOut: *mut ::core::ffi::c_void, + pub cbBufSize: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for OEMDMPARAM {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for OEMDMPARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OEMFONTINSTPARAM { + pub cbSize: u32, + pub hPrinter: super::super::Foundation::HANDLE, + pub hModule: super::super::Foundation::HANDLE, + pub hHeap: super::super::Foundation::HANDLE, + pub dwFlags: u32, + pub pFontInstallerName: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OEMFONTINSTPARAM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OEMFONTINSTPARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OEMUIOBJ { + pub cbSize: u32, + pub pOemUIProcs: *mut OEMUIPROCS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OEMUIOBJ {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OEMUIOBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OEMUIPROCS { + pub DrvGetDriverSetting: PFN_DrvGetDriverSetting, + pub DrvUpdateUISetting: PFN_DrvUpdateUISetting, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OEMUIPROCS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OEMUIPROCS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct OEMUIPSPARAM { + pub cbSize: u32, + pub poemuiobj: *mut OEMUIOBJ, + pub hPrinter: super::super::Foundation::HANDLE, + pub pPrinterName: ::windows_sys::core::PWSTR, + pub hModule: super::super::Foundation::HANDLE, + pub hOEMHeap: super::super::Foundation::HANDLE, + pub pPublicDM: *mut super::Gdi::DEVMODEA, + pub pOEMDM: *mut ::core::ffi::c_void, + pub pOEMUserData: *mut ::core::ffi::c_void, + pub dwFlags: u32, + pub pOemEntry: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for OEMUIPSPARAM {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for OEMUIPSPARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OEM_DMEXTRAHEADER { + pub dwSize: u32, + pub dwSignature: u32, + pub dwVersion: u32, +} +impl ::core::marker::Copy for OEM_DMEXTRAHEADER {} +impl ::core::clone::Clone for OEM_DMEXTRAHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OIEXT { + pub cbSize: u16, + pub Flags: u16, + pub hInstCaller: super::super::Foundation::HINSTANCE, + pub pHelpFile: *mut i8, + pub dwReserved: [usize; 4], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OIEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OIEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OPTCOMBO { + pub cbSize: u16, + pub Flags: u8, + pub cListItem: u16, + pub pListItem: *mut OPTPARAM, + pub Sel: i32, + pub dwReserved: [u32; 3], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPTCOMBO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPTCOMBO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct OPTITEM { + pub cbSize: u16, + pub Level: u8, + pub DlgPageIdx: u8, + pub Flags: u32, + pub UserData: usize, + pub pName: *mut i8, + pub Anonymous1: OPTITEM_0, + pub Anonymous2: OPTITEM_1, + pub pOptType: *mut OPTTYPE, + pub HelpIndex: u32, + pub DMPubID: u8, + pub UserItemID: u8, + pub wReserved: u16, + pub pOIExt: *mut OIEXT, + pub dwReserved: [usize; 3], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OPTITEM {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OPTITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub union OPTITEM_0 { + pub Sel: i32, + pub pSel: *mut i8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OPTITEM_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OPTITEM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub union OPTITEM_1 { + pub pExtChkBox: *mut EXTCHKBOX, + pub pExtPush: *mut EXTPUSH, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OPTITEM_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OPTITEM_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OPTPARAM { + pub cbSize: u16, + pub Flags: u8, + pub Style: u8, + pub pData: *mut i8, + pub IconID: usize, + pub lParam: super::super::Foundation::LPARAM, + pub dwReserved: [usize; 2], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPTPARAM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPTPARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OPTTYPE { + pub cbSize: u16, + pub Type: u8, + pub Flags: u8, + pub Count: u16, + pub BegCtrlID: u16, + pub pOptParam: *mut OPTPARAM, + pub Style: u16, + pub wReserved: [u16; 3], + pub dwReserved: [usize; 3], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPTTYPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPTTYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PORT_DATA_1 { + pub sztPortName: [u16; 64], + pub dwVersion: u32, + pub dwProtocol: u32, + pub cbSize: u32, + pub dwReserved: u32, + pub sztHostAddress: [u16; 49], + pub sztSNMPCommunity: [u16; 33], + pub dwDoubleSpool: u32, + pub sztQueue: [u16; 33], + pub sztIPAddress: [u16; 16], + pub Reserved: [u8; 540], + pub dwPortNumber: u32, + pub dwSNMPEnabled: u32, + pub dwSNMPDevIndex: u32, +} +impl ::core::marker::Copy for PORT_DATA_1 {} +impl ::core::clone::Clone for PORT_DATA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PORT_DATA_2 { + pub sztPortName: [u16; 64], + pub dwVersion: u32, + pub dwProtocol: u32, + pub cbSize: u32, + pub dwReserved: u32, + pub sztHostAddress: [u16; 128], + pub sztSNMPCommunity: [u16; 33], + pub dwDoubleSpool: u32, + pub sztQueue: [u16; 33], + pub Reserved: [u8; 514], + pub dwPortNumber: u32, + pub dwSNMPEnabled: u32, + pub dwSNMPDevIndex: u32, + pub dwPortMonitorMibIndex: u32, +} +impl ::core::marker::Copy for PORT_DATA_2 {} +impl ::core::clone::Clone for PORT_DATA_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PORT_DATA_LIST_1 { + pub dwVersion: u32, + pub cPortData: u32, + pub pPortData: [PORT_DATA_2; 1], +} +impl ::core::marker::Copy for PORT_DATA_LIST_1 {} +impl ::core::clone::Clone for PORT_DATA_LIST_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PORT_INFO_1A { + pub pName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for PORT_INFO_1A {} +impl ::core::clone::Clone for PORT_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PORT_INFO_1W { + pub pName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PORT_INFO_1W {} +impl ::core::clone::Clone for PORT_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PORT_INFO_2A { + pub pPortName: ::windows_sys::core::PSTR, + pub pMonitorName: ::windows_sys::core::PSTR, + pub pDescription: ::windows_sys::core::PSTR, + pub fPortType: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for PORT_INFO_2A {} +impl ::core::clone::Clone for PORT_INFO_2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PORT_INFO_2W { + pub pPortName: ::windows_sys::core::PWSTR, + pub pMonitorName: ::windows_sys::core::PWSTR, + pub pDescription: ::windows_sys::core::PWSTR, + pub fPortType: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for PORT_INFO_2W {} +impl ::core::clone::Clone for PORT_INFO_2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PORT_INFO_3A { + pub dwStatus: u32, + pub pszStatus: ::windows_sys::core::PSTR, + pub dwSeverity: u32, +} +impl ::core::marker::Copy for PORT_INFO_3A {} +impl ::core::clone::Clone for PORT_INFO_3A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PORT_INFO_3W { + pub dwStatus: u32, + pub pszStatus: ::windows_sys::core::PWSTR, + pub dwSeverity: u32, +} +impl ::core::marker::Copy for PORT_INFO_3W {} +impl ::core::clone::Clone for PORT_INFO_3W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_CONNECTION_INFO_1A { + pub dwFlags: u32, + pub pszDriverName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for PRINTER_CONNECTION_INFO_1A {} +impl ::core::clone::Clone for PRINTER_CONNECTION_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_CONNECTION_INFO_1W { + pub dwFlags: u32, + pub pszDriverName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PRINTER_CONNECTION_INFO_1W {} +impl ::core::clone::Clone for PRINTER_CONNECTION_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTER_DEFAULTSA { + pub pDatatype: ::windows_sys::core::PSTR, + pub pDevMode: *mut super::Gdi::DEVMODEA, + pub DesiredAccess: PRINTER_ACCESS_RIGHTS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTER_DEFAULTSA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTER_DEFAULTSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTER_DEFAULTSW { + pub pDatatype: ::windows_sys::core::PWSTR, + pub pDevMode: *mut super::Gdi::DEVMODEW, + pub DesiredAccess: PRINTER_ACCESS_RIGHTS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTER_DEFAULTSW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTER_DEFAULTSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_ENUM_VALUESA { + pub pValueName: ::windows_sys::core::PSTR, + pub cbValueName: u32, + pub dwType: u32, + pub pData: *mut u8, + pub cbData: u32, +} +impl ::core::marker::Copy for PRINTER_ENUM_VALUESA {} +impl ::core::clone::Clone for PRINTER_ENUM_VALUESA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_ENUM_VALUESW { + pub pValueName: ::windows_sys::core::PWSTR, + pub cbValueName: u32, + pub dwType: u32, + pub pData: *mut u8, + pub cbData: u32, +} +impl ::core::marker::Copy for PRINTER_ENUM_VALUESW {} +impl ::core::clone::Clone for PRINTER_ENUM_VALUESW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_EVENT_ATTRIBUTES_INFO { + pub cbSize: u32, + pub dwOldAttributes: u32, + pub dwNewAttributes: u32, +} +impl ::core::marker::Copy for PRINTER_EVENT_ATTRIBUTES_INFO {} +impl ::core::clone::Clone for PRINTER_EVENT_ATTRIBUTES_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_INFO_1A { + pub Flags: u32, + pub pDescription: ::windows_sys::core::PSTR, + pub pName: ::windows_sys::core::PSTR, + pub pComment: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for PRINTER_INFO_1A {} +impl ::core::clone::Clone for PRINTER_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_INFO_1W { + pub Flags: u32, + pub pDescription: ::windows_sys::core::PWSTR, + pub pName: ::windows_sys::core::PWSTR, + pub pComment: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PRINTER_INFO_1W {} +impl ::core::clone::Clone for PRINTER_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +pub struct PRINTER_INFO_2A { + pub pServerName: ::windows_sys::core::PSTR, + pub pPrinterName: ::windows_sys::core::PSTR, + pub pShareName: ::windows_sys::core::PSTR, + pub pPortName: ::windows_sys::core::PSTR, + pub pDriverName: ::windows_sys::core::PSTR, + pub pComment: ::windows_sys::core::PSTR, + pub pLocation: ::windows_sys::core::PSTR, + pub pDevMode: *mut super::Gdi::DEVMODEA, + pub pSepFile: ::windows_sys::core::PSTR, + pub pPrintProcessor: ::windows_sys::core::PSTR, + pub pDatatype: ::windows_sys::core::PSTR, + pub pParameters: ::windows_sys::core::PSTR, + pub pSecurityDescriptor: super::super::Security::PSECURITY_DESCRIPTOR, + pub Attributes: u32, + pub Priority: u32, + pub DefaultPriority: u32, + pub StartTime: u32, + pub UntilTime: u32, + pub Status: u32, + pub cJobs: u32, + pub AveragePPM: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +impl ::core::marker::Copy for PRINTER_INFO_2A {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +impl ::core::clone::Clone for PRINTER_INFO_2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +pub struct PRINTER_INFO_2W { + pub pServerName: ::windows_sys::core::PWSTR, + pub pPrinterName: ::windows_sys::core::PWSTR, + pub pShareName: ::windows_sys::core::PWSTR, + pub pPortName: ::windows_sys::core::PWSTR, + pub pDriverName: ::windows_sys::core::PWSTR, + pub pComment: ::windows_sys::core::PWSTR, + pub pLocation: ::windows_sys::core::PWSTR, + pub pDevMode: *mut super::Gdi::DEVMODEW, + pub pSepFile: ::windows_sys::core::PWSTR, + pub pPrintProcessor: ::windows_sys::core::PWSTR, + pub pDatatype: ::windows_sys::core::PWSTR, + pub pParameters: ::windows_sys::core::PWSTR, + pub pSecurityDescriptor: super::super::Security::PSECURITY_DESCRIPTOR, + pub Attributes: u32, + pub Priority: u32, + pub DefaultPriority: u32, + pub StartTime: u32, + pub UntilTime: u32, + pub Status: u32, + pub cJobs: u32, + pub AveragePPM: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +impl ::core::marker::Copy for PRINTER_INFO_2W {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +impl ::core::clone::Clone for PRINTER_INFO_2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct PRINTER_INFO_3 { + pub pSecurityDescriptor: super::super::Security::PSECURITY_DESCRIPTOR, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for PRINTER_INFO_3 {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for PRINTER_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_INFO_4A { + pub pPrinterName: ::windows_sys::core::PSTR, + pub pServerName: ::windows_sys::core::PSTR, + pub Attributes: u32, +} +impl ::core::marker::Copy for PRINTER_INFO_4A {} +impl ::core::clone::Clone for PRINTER_INFO_4A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_INFO_4W { + pub pPrinterName: ::windows_sys::core::PWSTR, + pub pServerName: ::windows_sys::core::PWSTR, + pub Attributes: u32, +} +impl ::core::marker::Copy for PRINTER_INFO_4W {} +impl ::core::clone::Clone for PRINTER_INFO_4W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_INFO_5A { + pub pPrinterName: ::windows_sys::core::PSTR, + pub pPortName: ::windows_sys::core::PSTR, + pub Attributes: u32, + pub DeviceNotSelectedTimeout: u32, + pub TransmissionRetryTimeout: u32, +} +impl ::core::marker::Copy for PRINTER_INFO_5A {} +impl ::core::clone::Clone for PRINTER_INFO_5A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_INFO_5W { + pub pPrinterName: ::windows_sys::core::PWSTR, + pub pPortName: ::windows_sys::core::PWSTR, + pub Attributes: u32, + pub DeviceNotSelectedTimeout: u32, + pub TransmissionRetryTimeout: u32, +} +impl ::core::marker::Copy for PRINTER_INFO_5W {} +impl ::core::clone::Clone for PRINTER_INFO_5W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_INFO_6 { + pub dwStatus: u32, +} +impl ::core::marker::Copy for PRINTER_INFO_6 {} +impl ::core::clone::Clone for PRINTER_INFO_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_INFO_7A { + pub pszObjectGUID: ::windows_sys::core::PSTR, + pub dwAction: u32, +} +impl ::core::marker::Copy for PRINTER_INFO_7A {} +impl ::core::clone::Clone for PRINTER_INFO_7A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_INFO_7W { + pub pszObjectGUID: ::windows_sys::core::PWSTR, + pub dwAction: u32, +} +impl ::core::marker::Copy for PRINTER_INFO_7W {} +impl ::core::clone::Clone for PRINTER_INFO_7W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTER_INFO_8A { + pub pDevMode: *mut super::Gdi::DEVMODEA, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTER_INFO_8A {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTER_INFO_8A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTER_INFO_8W { + pub pDevMode: *mut super::Gdi::DEVMODEW, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTER_INFO_8W {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTER_INFO_8W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTER_INFO_9A { + pub pDevMode: *mut super::Gdi::DEVMODEA, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTER_INFO_9A {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTER_INFO_9A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTER_INFO_9W { + pub pDevMode: *mut super::Gdi::DEVMODEW, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTER_INFO_9W {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTER_INFO_9W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_NOTIFY_INFO { + pub Version: u32, + pub Flags: u32, + pub Count: u32, + pub aData: [PRINTER_NOTIFY_INFO_DATA; 1], +} +impl ::core::marker::Copy for PRINTER_NOTIFY_INFO {} +impl ::core::clone::Clone for PRINTER_NOTIFY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_NOTIFY_INFO_DATA { + pub Type: u16, + pub Field: u16, + pub Reserved: u32, + pub Id: u32, + pub NotifyData: PRINTER_NOTIFY_INFO_DATA_0, +} +impl ::core::marker::Copy for PRINTER_NOTIFY_INFO_DATA {} +impl ::core::clone::Clone for PRINTER_NOTIFY_INFO_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PRINTER_NOTIFY_INFO_DATA_0 { + pub adwData: [u32; 2], + pub Data: PRINTER_NOTIFY_INFO_DATA_0_0, +} +impl ::core::marker::Copy for PRINTER_NOTIFY_INFO_DATA_0 {} +impl ::core::clone::Clone for PRINTER_NOTIFY_INFO_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_NOTIFY_INFO_DATA_0_0 { + pub cbBuf: u32, + pub pBuf: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for PRINTER_NOTIFY_INFO_DATA_0_0 {} +impl ::core::clone::Clone for PRINTER_NOTIFY_INFO_DATA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_NOTIFY_INIT { + pub Size: u32, + pub Reserved: u32, + pub PollTime: u32, +} +impl ::core::marker::Copy for PRINTER_NOTIFY_INIT {} +impl ::core::clone::Clone for PRINTER_NOTIFY_INIT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_NOTIFY_OPTIONS { + pub Version: u32, + pub Flags: u32, + pub Count: u32, + pub pTypes: *mut PRINTER_NOTIFY_OPTIONS_TYPE, +} +impl ::core::marker::Copy for PRINTER_NOTIFY_OPTIONS {} +impl ::core::clone::Clone for PRINTER_NOTIFY_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_NOTIFY_OPTIONS_TYPE { + pub Type: u16, + pub Reserved0: u16, + pub Reserved1: u32, + pub Reserved2: u32, + pub Count: u32, + pub pFields: *mut u16, +} +impl ::core::marker::Copy for PRINTER_NOTIFY_OPTIONS_TYPE {} +impl ::core::clone::Clone for PRINTER_NOTIFY_OPTIONS_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_OPTIONSA { + pub cbSize: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for PRINTER_OPTIONSA {} +impl ::core::clone::Clone for PRINTER_OPTIONSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTER_OPTIONSW { + pub cbSize: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for PRINTER_OPTIONSW {} +impl ::core::clone::Clone for PRINTER_OPTIONSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTIFI32 { + pub cjThis: u32, + pub cjIfiExtra: u32, + pub dpwszFamilyName: i32, + pub dpwszStyleName: i32, + pub dpwszFaceName: i32, + pub dpwszUniqueName: i32, + pub dpFontSim: i32, + pub lEmbedId: i32, + pub lItalicAngle: i32, + pub lCharBias: i32, + pub dpCharSets: i32, + pub jWinCharSet: u8, + pub jWinPitchAndFamily: u8, + pub usWinWeight: u16, + pub flInfo: u32, + pub fsSelection: u16, + pub fsType: u16, + pub fwdUnitsPerEm: i16, + pub fwdLowestPPEm: i16, + pub fwdWinAscender: i16, + pub fwdWinDescender: i16, + pub fwdMacAscender: i16, + pub fwdMacDescender: i16, + pub fwdMacLineGap: i16, + pub fwdTypoAscender: i16, + pub fwdTypoDescender: i16, + pub fwdTypoLineGap: i16, + pub fwdAveCharWidth: i16, + pub fwdMaxCharInc: i16, + pub fwdCapHeight: i16, + pub fwdXHeight: i16, + pub fwdSubscriptXSize: i16, + pub fwdSubscriptYSize: i16, + pub fwdSubscriptXOffset: i16, + pub fwdSubscriptYOffset: i16, + pub fwdSuperscriptXSize: i16, + pub fwdSuperscriptYSize: i16, + pub fwdSuperscriptXOffset: i16, + pub fwdSuperscriptYOffset: i16, + pub fwdUnderscoreSize: i16, + pub fwdUnderscorePosition: i16, + pub fwdStrikeoutSize: i16, + pub fwdStrikeoutPosition: i16, + pub chFirstChar: u8, + pub chLastChar: u8, + pub chDefaultChar: u8, + pub chBreakChar: u8, + pub wcFirstChar: u16, + pub wcLastChar: u16, + pub wcDefaultChar: u16, + pub wcBreakChar: u16, + pub ptlBaseline: super::super::Foundation::POINTL, + pub ptlAspect: super::super::Foundation::POINTL, + pub ptlCaret: super::super::Foundation::POINTL, + pub rclFontBox: super::super::Foundation::RECTL, + pub achVendId: [u8; 4], + pub cKerningPairs: u32, + pub ulPanoseCulture: u32, + pub panose: super::Gdi::PANOSE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTIFI32 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTIFI32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTPROCESSOROPENDATA { + pub pDevMode: *mut super::Gdi::DEVMODEA, + pub pDatatype: ::windows_sys::core::PWSTR, + pub pParameters: ::windows_sys::core::PWSTR, + pub pDocumentName: ::windows_sys::core::PWSTR, + pub JobId: u32, + pub pOutputFile: ::windows_sys::core::PWSTR, + pub pPrinterName: ::windows_sys::core::PWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTPROCESSOROPENDATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTPROCESSOROPENDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTPROCESSOR_CAPS_1 { + pub dwLevel: u32, + pub dwNupOptions: u32, + pub dwPageOrderFlags: u32, + pub dwNumberOfCopies: u32, +} +impl ::core::marker::Copy for PRINTPROCESSOR_CAPS_1 {} +impl ::core::clone::Clone for PRINTPROCESSOR_CAPS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTPROCESSOR_CAPS_2 { + pub dwLevel: u32, + pub dwNupOptions: u32, + pub dwPageOrderFlags: u32, + pub dwNumberOfCopies: u32, + pub dwDuplexHandlingCaps: u32, + pub dwNupDirectionCaps: u32, + pub dwNupBorderCaps: u32, + pub dwBookletHandlingCaps: u32, + pub dwScalingCaps: u32, +} +impl ::core::marker::Copy for PRINTPROCESSOR_CAPS_2 {} +impl ::core::clone::Clone for PRINTPROCESSOR_CAPS_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTPROCESSOR_INFO_1A { + pub pName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for PRINTPROCESSOR_INFO_1A {} +impl ::core::clone::Clone for PRINTPROCESSOR_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTPROCESSOR_INFO_1W { + pub pName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PRINTPROCESSOR_INFO_1W {} +impl ::core::clone::Clone for PRINTPROCESSOR_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINTPROVIDOR { + pub fpOpenPrinter: isize, + pub fpSetJob: isize, + pub fpGetJob: isize, + pub fpEnumJobs: isize, + pub fpAddPrinter: isize, + pub fpDeletePrinter: isize, + pub fpSetPrinter: isize, + pub fpGetPrinter: isize, + pub fpEnumPrinters: isize, + pub fpAddPrinterDriver: isize, + pub fpEnumPrinterDrivers: isize, + pub fpGetPrinterDriver: isize, + pub fpGetPrinterDriverDirectory: isize, + pub fpDeletePrinterDriver: isize, + pub fpAddPrintProcessor: isize, + pub fpEnumPrintProcessors: isize, + pub fpGetPrintProcessorDirectory: isize, + pub fpDeletePrintProcessor: isize, + pub fpEnumPrintProcessorDatatypes: isize, + pub fpStartDocPrinter: isize, + pub fpStartPagePrinter: isize, + pub fpWritePrinter: isize, + pub fpEndPagePrinter: isize, + pub fpAbortPrinter: isize, + pub fpReadPrinter: isize, + pub fpEndDocPrinter: isize, + pub fpAddJob: isize, + pub fpScheduleJob: isize, + pub fpGetPrinterData: isize, + pub fpSetPrinterData: isize, + pub fpWaitForPrinterChange: isize, + pub fpClosePrinter: isize, + pub fpAddForm: isize, + pub fpDeleteForm: isize, + pub fpGetForm: isize, + pub fpSetForm: isize, + pub fpEnumForms: isize, + pub fpEnumMonitors: isize, + pub fpEnumPorts: isize, + pub fpAddPort: isize, + pub fpConfigurePort: isize, + pub fpDeletePort: isize, + pub fpCreatePrinterIC: isize, + pub fpPlayGdiScriptOnPrinterIC: isize, + pub fpDeletePrinterIC: isize, + pub fpAddPrinterConnection: isize, + pub fpDeletePrinterConnection: isize, + pub fpPrinterMessageBox: isize, + pub fpAddMonitor: isize, + pub fpDeleteMonitor: isize, + pub fpResetPrinter: isize, + pub fpGetPrinterDriverEx: isize, + pub fpFindFirstPrinterChangeNotification: isize, + pub fpFindClosePrinterChangeNotification: isize, + pub fpAddPortEx: isize, + pub fpShutDown: isize, + pub fpRefreshPrinterChangeNotification: isize, + pub fpOpenPrinterEx: isize, + pub fpAddPrinterEx: isize, + pub fpSetPort: isize, + pub fpEnumPrinterData: isize, + pub fpDeletePrinterData: isize, + pub fpClusterSplOpen: isize, + pub fpClusterSplClose: isize, + pub fpClusterSplIsAlive: isize, + pub fpSetPrinterDataEx: isize, + pub fpGetPrinterDataEx: isize, + pub fpEnumPrinterDataEx: isize, + pub fpEnumPrinterKey: isize, + pub fpDeletePrinterDataEx: isize, + pub fpDeletePrinterKey: isize, + pub fpSeekPrinter: isize, + pub fpDeletePrinterDriverEx: isize, + pub fpAddPerMachineConnection: isize, + pub fpDeletePerMachineConnection: isize, + pub fpEnumPerMachineConnections: isize, + pub fpXcvData: isize, + pub fpAddPrinterDriverEx: isize, + pub fpSplReadPrinter: isize, + pub fpDriverUnloadComplete: isize, + pub fpGetSpoolFileInfo: isize, + pub fpCommitSpoolData: isize, + pub fpCloseSpoolFileHandle: isize, + pub fpFlushPrinter: isize, + pub fpSendRecvBidiData: isize, + pub fpAddPrinterConnection2: isize, + pub fpGetPrintClassObject: isize, + pub fpReportJobProcessingProgress: isize, + pub fpEnumAndLogProvidorObjects: isize, + pub fpInternalGetPrinterDriver: isize, + pub fpFindCompatibleDriver: isize, + pub fpInstallPrinterDriverPackageFromConnection: isize, + pub fpGetJobNamedPropertyValue: isize, + pub fpSetJobNamedProperty: isize, + pub fpDeleteJobNamedProperty: isize, + pub fpEnumJobNamedProperties: isize, + pub fpPowerEvent: isize, + pub fpGetUserPropertyBag: isize, + pub fpCanShutdown: isize, + pub fpLogJobInfoForBranchOffice: isize, + pub fpRegeneratePrintDeviceCapabilities: isize, + pub fpPrintSupportOperation: isize, + pub fpIppCreateJobOnPrinter: isize, + pub fpIppGetJobAttributes: isize, + pub fpIppSetJobAttributes: isize, + pub fpIppGetPrinterAttributes: isize, + pub fpIppSetPrinterAttributes: isize, + pub fpIppCreateJobOnPrinterWithAttributes: isize, +} +impl ::core::marker::Copy for PRINTPROVIDOR {} +impl ::core::clone::Clone for PRINTPROVIDOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINT_EXECUTION_DATA { + pub context: PRINT_EXECUTION_CONTEXT, + pub clientAppPID: u32, +} +impl ::core::marker::Copy for PRINT_EXECUTION_DATA {} +impl ::core::clone::Clone for PRINT_EXECUTION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINT_FEATURE_OPTION { + pub pszFeature: ::windows_sys::core::PCSTR, + pub pszOption: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for PRINT_FEATURE_OPTION {} +impl ::core::clone::Clone for PRINT_FEATURE_OPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct PROPSHEETUI_GETICON_INFO { + pub cbSize: u16, + pub Flags: u16, + pub cxIcon: u16, + pub cyIcon: u16, + pub hIcon: super::super::UI::WindowsAndMessaging::HICON, +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for PROPSHEETUI_GETICON_INFO {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for PROPSHEETUI_GETICON_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROPSHEETUI_INFO { + pub cbSize: u16, + pub Version: u16, + pub Flags: u16, + pub Reason: u16, + pub hComPropSheet: super::super::Foundation::HANDLE, + pub pfnComPropSheet: PFNCOMPROPSHEET, + pub lParamInit: super::super::Foundation::LPARAM, + pub UserData: usize, + pub Result: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROPSHEETUI_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROPSHEETUI_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PROPSHEETUI_INFO_HEADER { + pub cbSize: u16, + pub Flags: u16, + pub pTitle: *mut i8, + pub hWndParent: super::super::Foundation::HWND, + pub hInst: super::super::Foundation::HINSTANCE, + pub Anonymous: PROPSHEETUI_INFO_HEADER_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETUI_INFO_HEADER {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETUI_INFO_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETUI_INFO_HEADER_0 { + pub hIcon: super::super::UI::WindowsAndMessaging::HICON, + pub IconID: usize, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETUI_INFO_HEADER_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETUI_INFO_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROVIDOR_INFO_1A { + pub pName: ::windows_sys::core::PSTR, + pub pEnvironment: ::windows_sys::core::PSTR, + pub pDLLName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for PROVIDOR_INFO_1A {} +impl ::core::clone::Clone for PROVIDOR_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROVIDOR_INFO_1W { + pub pName: ::windows_sys::core::PWSTR, + pub pEnvironment: ::windows_sys::core::PWSTR, + pub pDLLName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PROVIDOR_INFO_1W {} +impl ::core::clone::Clone for PROVIDOR_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROVIDOR_INFO_2A { + pub pOrder: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for PROVIDOR_INFO_2A {} +impl ::core::clone::Clone for PROVIDOR_INFO_2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROVIDOR_INFO_2W { + pub pOrder: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PROVIDOR_INFO_2W {} +impl ::core::clone::Clone for PROVIDOR_INFO_2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSCRIPT5_PRIVATE_DEVMODE { + pub wReserved: [u16; 57], + pub wSize: u16, +} +impl ::core::marker::Copy for PSCRIPT5_PRIVATE_DEVMODE {} +impl ::core::clone::Clone for PSCRIPT5_PRIVATE_DEVMODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PSPINFO { + pub cbSize: u16, + pub wReserved: u16, + pub hComPropSheet: super::super::Foundation::HANDLE, + pub hCPSUIPage: super::super::Foundation::HANDLE, + pub pfnComPropSheet: PFNCOMPROPSHEET, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSPINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PUBLISHERINFO { + pub dwMode: u32, + pub wMinoutlinePPEM: u16, + pub wMaxbitmapPPEM: u16, +} +impl ::core::marker::Copy for PUBLISHERINFO {} +impl ::core::clone::Clone for PUBLISHERINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PrintNamedProperty { + pub propertyName: ::windows_sys::core::PWSTR, + pub propertyValue: PrintPropertyValue, +} +impl ::core::marker::Copy for PrintNamedProperty {} +impl ::core::clone::Clone for PrintNamedProperty { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PrintPropertiesCollection { + pub numberOfProperties: u32, + pub propertiesCollection: *mut PrintNamedProperty, +} +impl ::core::marker::Copy for PrintPropertiesCollection {} +impl ::core::clone::Clone for PrintPropertiesCollection { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PrintPropertyValue { + pub ePropertyType: EPrintPropertyType, + pub value: PrintPropertyValue_0, +} +impl ::core::marker::Copy for PrintPropertyValue {} +impl ::core::clone::Clone for PrintPropertyValue { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PrintPropertyValue_0 { + pub propertyByte: u8, + pub propertyString: ::windows_sys::core::PWSTR, + pub propertyInt32: i32, + pub propertyInt64: i64, + pub propertyBlob: PrintPropertyValue_0_0, +} +impl ::core::marker::Copy for PrintPropertyValue_0 {} +impl ::core::clone::Clone for PrintPropertyValue_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PrintPropertyValue_0_0 { + pub cbBuf: u32, + pub pBuf: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for PrintPropertyValue_0_0 {} +impl ::core::clone::Clone for PrintPropertyValue_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SETRESULT_INFO { + pub cbSize: u16, + pub wReserved: u16, + pub hSetResult: super::super::Foundation::HANDLE, + pub Result: super::super::Foundation::LRESULT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SETRESULT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SETRESULT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SHOWUIPARAMS { + pub UIType: UI_TYPE, + pub MessageBoxParams: MESSAGEBOX_PARAMS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SHOWUIPARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SHOWUIPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SIMULATE_CAPS_1 { + pub dwLevel: u32, + pub dwPageOrderFlags: u32, + pub dwNumberOfCopies: u32, + pub dwCollate: u32, + pub dwNupOptions: u32, +} +impl ::core::marker::Copy for SIMULATE_CAPS_1 {} +impl ::core::clone::Clone for SIMULATE_CAPS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SPLCLIENT_INFO_1 { + pub dwSize: u32, + pub pMachineName: ::windows_sys::core::PWSTR, + pub pUserName: ::windows_sys::core::PWSTR, + pub dwBuildNum: u32, + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, + pub wProcessorArchitecture: u16, +} +impl ::core::marker::Copy for SPLCLIENT_INFO_1 {} +impl ::core::clone::Clone for SPLCLIENT_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SPLCLIENT_INFO_2_W2K { + pub hSplPrinter: usize, +} +impl ::core::marker::Copy for SPLCLIENT_INFO_2_W2K {} +impl ::core::clone::Clone for SPLCLIENT_INFO_2_W2K { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SPLCLIENT_INFO_2_WINXP { + pub hSplPrinter: u64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SPLCLIENT_INFO_2_WINXP {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SPLCLIENT_INFO_2_WINXP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct SPLCLIENT_INFO_2_WINXP { + pub hSplPrinter: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SPLCLIENT_INFO_2_WINXP {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SPLCLIENT_INFO_2_WINXP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SPLCLIENT_INFO_3_VISTA { + pub cbSize: u32, + pub dwFlags: u32, + pub dwSize: u32, + pub pMachineName: ::windows_sys::core::PWSTR, + pub pUserName: ::windows_sys::core::PWSTR, + pub dwBuildNum: u32, + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, + pub wProcessorArchitecture: u16, + pub hSplPrinter: u64, +} +impl ::core::marker::Copy for SPLCLIENT_INFO_3_VISTA {} +impl ::core::clone::Clone for SPLCLIENT_INFO_3_VISTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSDATA { + pub ubCodePageID: u8, + pub ubType: u8, + pub uCode: TRANSDATA_0, +} +impl ::core::marker::Copy for TRANSDATA {} +impl ::core::clone::Clone for TRANSDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union TRANSDATA_0 { + pub sCode: i16, + pub ubCode: u8, + pub ubPairs: [u8; 2], +} +impl ::core::marker::Copy for TRANSDATA_0 {} +impl ::core::clone::Clone for TRANSDATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UFF_FILEHEADER { + pub dwSignature: u32, + pub dwVersion: u32, + pub dwSize: u32, + pub nFonts: u32, + pub nGlyphSets: u32, + pub nVarData: u32, + pub offFontDir: u32, + pub dwFlags: u32, + pub dwReserved: [u32; 4], +} +impl ::core::marker::Copy for UFF_FILEHEADER {} +impl ::core::clone::Clone for UFF_FILEHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UFF_FONTDIRECTORY { + pub dwSignature: u32, + pub wSize: u16, + pub wFontID: u16, + pub sGlyphID: i16, + pub wFlags: u16, + pub dwInstallerSig: u32, + pub offFontName: u32, + pub offCartridgeName: u32, + pub offFontData: u32, + pub offGlyphData: u32, + pub offVarData: u32, +} +impl ::core::marker::Copy for UFF_FONTDIRECTORY {} +impl ::core::clone::Clone for UFF_FONTDIRECTORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UNIDRVINFO { + pub dwSize: u32, + pub flGenFlags: u32, + pub wType: u16, + pub fCaps: u16, + pub wXRes: u16, + pub wYRes: u16, + pub sYAdjust: i16, + pub sYMoved: i16, + pub wPrivateData: u16, + pub sShift: i16, + pub SelectFont: INVOC, + pub UnSelectFont: INVOC, + pub wReserved: [u16; 4], +} +impl ::core::marker::Copy for UNIDRVINFO {} +impl ::core::clone::Clone for UNIDRVINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UNIDRV_PRIVATE_DEVMODE { + pub wReserved: [u16; 4], + pub wSize: u16, +} +impl ::core::marker::Copy for UNIDRV_PRIVATE_DEVMODE {} +impl ::core::clone::Clone for UNIDRV_PRIVATE_DEVMODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UNIFM_HDR { + pub dwSize: u32, + pub dwVersion: u32, + pub ulDefaultCodepage: u32, + pub lGlyphSetDataRCID: i32, + pub loUnidrvInfo: u32, + pub loIFIMetrics: u32, + pub loExtTextMetric: u32, + pub loWidthTable: u32, + pub loKernPair: u32, + pub dwReserved: [u32; 2], +} +impl ::core::marker::Copy for UNIFM_HDR {} +impl ::core::clone::Clone for UNIFM_HDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UNI_CODEPAGEINFO { + pub dwCodePage: u32, + pub SelectSymbolSet: INVOC, + pub UnSelectSymbolSet: INVOC, +} +impl ::core::marker::Copy for UNI_CODEPAGEINFO {} +impl ::core::clone::Clone for UNI_CODEPAGEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UNI_GLYPHSETDATA { + pub dwSize: u32, + pub dwVersion: u32, + pub dwFlags: u32, + pub lPredefinedID: i32, + pub dwGlyphCount: u32, + pub dwRunCount: u32, + pub loRunOffset: u32, + pub dwCodePageCount: u32, + pub loCodePageOffset: u32, + pub loMapTableOffset: u32, + pub dwReserved: [u32; 2], +} +impl ::core::marker::Copy for UNI_GLYPHSETDATA {} +impl ::core::clone::Clone for UNI_GLYPHSETDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USERDATA { + pub dwSize: u32, + pub dwItemID: usize, + pub pKeyWordName: ::windows_sys::core::PSTR, + pub dwReserved: [u32; 8], +} +impl ::core::marker::Copy for USERDATA {} +impl ::core::clone::Clone for USERDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIDTHRUN { + pub wStartGlyph: u16, + pub wGlyphCount: u16, + pub loCharWidthOffset: u32, +} +impl ::core::marker::Copy for WIDTHRUN {} +impl ::core::clone::Clone for WIDTHRUN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIDTHTABLE { + pub dwSize: u32, + pub dwRunNum: u32, + pub WidthRun: [WIDTHRUN; 1], +} +impl ::core::marker::Copy for WIDTHTABLE {} +impl ::core::clone::Clone for WIDTHTABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _SPLCLIENT_INFO_2_V3 { + pub hSplPrinter: u64, +} +impl ::core::marker::Copy for _SPLCLIENT_INFO_2_V3 {} +impl ::core::clone::Clone for _SPLCLIENT_INFO_2_V3 { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type EMFPLAYPROC = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub type OEMCUIPCALLBACK = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNCOMPROPSHEET = ::core::option::Option isize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNPROPSHEETUI = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvGetDriverSetting = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvUpdateUISetting = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DrvUpgradeRegistrySetting = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_ADDPORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_ADDPORT2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_ADDPORTEX = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_ADDPORTEX2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_CLOSEPORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_CLOSEPORT2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_CONFIGUREPORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_CONFIGUREPORT2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_DELETEPORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_DELETEPORT2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_ENDDOCPORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_ENDDOCPORT2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_ENUMPORTS = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_ENUMPORTS2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_GETPRINTERDATAFROMPORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_GETPRINTERDATAFROMPORT2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_NOTIFYUNUSEDPORTS2 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_NOTIFYUSEDPORTS2 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_OPENPORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_OPENPORT2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] +#[cfg(all(feature = "Win32_Devices_Communication", feature = "Win32_Foundation", feature = "Win32_System_Power"))] +pub type PFN_PRINTING_OPENPORTEX = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] +#[cfg(all(feature = "Win32_Devices_Communication", feature = "Win32_Foundation", feature = "Win32_System_Power"))] +pub type PFN_PRINTING_OPENPORTEX2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Power\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Power"))] +pub type PFN_PRINTING_POWEREVENT2 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_READPORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_READPORT2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_SENDRECVBIDIDATAFROMPORT2 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Win32_Devices_Communication", feature = "Win32_Foundation"))] +pub type PFN_PRINTING_SETPORTTIMEOUTS = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`"] +#[cfg(all(feature = "Win32_Devices_Communication", feature = "Win32_Foundation"))] +pub type PFN_PRINTING_SETPORTTIMEOUTS2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_SHUTDOWN2 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_STARTDOCPORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_STARTDOCPORT2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_WRITEPORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_WRITEPORT2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_XCVCLOSEPORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_XCVCLOSEPORT2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_XCVDATAPORT = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_XCVDATAPORT2 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_XCVOPENPORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_PRINTING_XCVOPENPORT2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ROUTER_NOTIFY_CALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub type _CPSUICALLBACK = ::core::option::Option i32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/mod.rs new file mode 100644 index 000000000..17737ab75 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Graphics/mod.rs @@ -0,0 +1,18 @@ +#[cfg(feature = "Win32_Graphics_Dwm")] +#[doc = "Required features: `\"Win32_Graphics_Dwm\"`"] +pub mod Dwm; +#[cfg(feature = "Win32_Graphics_Gdi")] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +pub mod Gdi; +#[cfg(feature = "Win32_Graphics_GdiPlus")] +#[doc = "Required features: `\"Win32_Graphics_GdiPlus\"`"] +pub mod GdiPlus; +#[cfg(feature = "Win32_Graphics_Hlsl")] +#[doc = "Required features: `\"Win32_Graphics_Hlsl\"`"] +pub mod Hlsl; +#[cfg(feature = "Win32_Graphics_OpenGL")] +#[doc = "Required features: `\"Win32_Graphics_OpenGL\"`"] +pub mod OpenGL; +#[cfg(feature = "Win32_Graphics_Printing")] +#[doc = "Required features: `\"Win32_Graphics_Printing\"`"] +pub mod Printing; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Management/MobileDeviceManagementRegistration/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Management/MobileDeviceManagementRegistration/mod.rs new file mode 100644 index 000000000..c66954b7f --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Management/MobileDeviceManagementRegistration/mod.rs @@ -0,0 +1,121 @@ +::windows_targets::link!("mdmlocalmanagement.dll" "system" fn ApplyLocalManagementSyncML(syncmlrequest : ::windows_sys::core::PCWSTR, syncmlresult : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mdmregistration.dll" "system" fn DiscoverManagementService(pszupn : ::windows_sys::core::PCWSTR, ppmgmtinfo : *mut *mut MANAGEMENT_SERVICE_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mdmregistration.dll" "system" fn DiscoverManagementServiceEx(pszupn : ::windows_sys::core::PCWSTR, pszdiscoveryservicecandidate : ::windows_sys::core::PCWSTR, ppmgmtinfo : *mut *mut MANAGEMENT_SERVICE_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mdmregistration.dll" "system" fn GetDeviceManagementConfigInfo(providerid : ::windows_sys::core::PCWSTR, configstringbufferlength : *mut u32, configstring : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mdmregistration.dll" "system" fn GetDeviceRegistrationInfo(deviceinformationclass : REGISTRATION_INFORMATION_CLASS, ppdeviceregistrationinfo : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mdmregistration.dll" "system" fn GetManagementAppHyperlink(cchhyperlink : u32, pszhyperlink : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mdmregistration.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsDeviceRegisteredWithManagement(pfisdeviceregisteredwithmanagement : *mut super::super::Foundation:: BOOL, cchupn : u32, pszupn : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mdmregistration.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsManagementRegistrationAllowed(pfismanagementregistrationallowed : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mdmregistration.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsMdmUxWithoutAadAllowed(isenrollmentallowed : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mdmregistration.dll" "system" fn RegisterDeviceDualEnrollMmpcUsingAADDeviceCredentials(cchenrollmentid : u32, pszenrollmentid : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mdmlocalmanagement.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterDeviceWithLocalManagement(alreadyregistered : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mdmregistration.dll" "system" fn RegisterDeviceWithManagement(pszupn : ::windows_sys::core::PCWSTR, ppszmdmserviceuri : ::windows_sys::core::PCWSTR, ppzsaccesstoken : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mdmregistration.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterDeviceWithManagementUsingAADCredentials(usertoken : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mdmregistration.dll" "system" fn RegisterDeviceWithManagementUsingAADDeviceCredentials() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mdmregistration.dll" "system" fn RegisterDeviceWithManagementUsingAADDeviceCredentials2(mdmapplicationid : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mdmregistration.dll" "system" fn SetDeviceManagementConfigInfo(providerid : ::windows_sys::core::PCWSTR, configstring : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mdmregistration.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetManagedExternally(ismanagedexternally : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mdmlocalmanagement.dll" "system" fn UnregisterDeviceWithLocalManagement() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mdmregistration.dll" "system" fn UnregisterDeviceWithManagement(enrollmentid : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +pub const DEVICEREGISTRATIONTYPE_MAM: u32 = 5u32; +pub const DEVICEREGISTRATIONTYPE_MDM_DEVICEWIDE_WITH_AAD: u32 = 6u32; +pub const DEVICEREGISTRATIONTYPE_MDM_ONLY: u32 = 0u32; +pub const DEVICEREGISTRATIONTYPE_MDM_USERSPECIFIC_WITH_AAD: u32 = 13u32; +pub const DEVICE_ENROLLER_FACILITY_CODE: u32 = 24u32; +pub const DeviceRegistrationBasicInfo: REGISTRATION_INFORMATION_CLASS = 1i32; +pub const MDM_REGISTRATION_FACILITY_CODE: u32 = 25u32; +pub const MENROLL_E_CERTAUTH_FAILED_TO_FIND_CERT: ::windows_sys::core::HRESULT = -2145910744i32; +pub const MENROLL_E_CERTPOLICY_PRIVATEKEYCREATION_FAILED: ::windows_sys::core::HRESULT = -2145910745i32; +pub const MENROLL_E_CONNECTIVITY: ::windows_sys::core::HRESULT = -2145910768i32; +pub const MENROLL_E_DEVICECAPREACHED: ::windows_sys::core::HRESULT = -2145910765i32; +pub const MENROLL_E_DEVICENOTSUPPORTED: ::windows_sys::core::HRESULT = -2145910764i32; +pub const MENROLL_E_DEVICE_ALREADY_ENROLLED: ::windows_sys::core::HRESULT = -2145910774i32; +pub const MENROLL_E_DEVICE_AUTHENTICATION_ERROR: ::windows_sys::core::HRESULT = -2145910782i32; +pub const MENROLL_E_DEVICE_AUTHORIZATION_ERROR: ::windows_sys::core::HRESULT = -2145910781i32; +pub const MENROLL_E_DEVICE_CERTIFCATEREQUEST_ERROR: ::windows_sys::core::HRESULT = -2145910780i32; +pub const MENROLL_E_DEVICE_CERTIFICATEREQUEST_ERROR: ::windows_sys::core::HRESULT = -2145910780i32; +pub const MENROLL_E_DEVICE_CONFIGMGRSERVER_ERROR: ::windows_sys::core::HRESULT = -2145910779i32; +pub const MENROLL_E_DEVICE_INTERNALSERVICE_ERROR: ::windows_sys::core::HRESULT = -2145910778i32; +pub const MENROLL_E_DEVICE_INVALIDSECURITY_ERROR: ::windows_sys::core::HRESULT = -2145910777i32; +pub const MENROLL_E_DEVICE_MANAGEMENT_BLOCKED: ::windows_sys::core::HRESULT = -2145910746i32; +pub const MENROLL_E_DEVICE_MESSAGE_FORMAT_ERROR: ::windows_sys::core::HRESULT = -2145910783i32; +pub const MENROLL_E_DEVICE_NOT_ENROLLED: ::windows_sys::core::HRESULT = -2145910773i32; +pub const MENROLL_E_DEVICE_UNKNOWN_ERROR: ::windows_sys::core::HRESULT = -2145910776i32; +pub const MENROLL_E_DISCOVERY_SEC_CERT_DATE_INVALID: ::windows_sys::core::HRESULT = -2145910771i32; +pub const MENROLL_E_EMPTY_MESSAGE: ::windows_sys::core::HRESULT = -2145910743i32; +pub const MENROLL_E_ENROLLMENTDATAINVALID: ::windows_sys::core::HRESULT = -2145910759i32; +pub const MENROLL_E_ENROLLMENT_IN_PROGRESS: ::windows_sys::core::HRESULT = -2145910775i32; +pub const MENROLL_E_INMAINTENANCE: ::windows_sys::core::HRESULT = -2145910761i32; +pub const MENROLL_E_INSECUREREDIRECT: ::windows_sys::core::HRESULT = -2145910758i32; +pub const MENROLL_E_INVALIDSSLCERT: ::windows_sys::core::HRESULT = -2145910766i32; +pub const MENROLL_E_MDM_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -2145910735i32; +pub const MENROLL_E_NOTELIGIBLETORENEW: ::windows_sys::core::HRESULT = -2145910762i32; +pub const MENROLL_E_NOTSUPPORTED: ::windows_sys::core::HRESULT = -2145910763i32; +pub const MENROLL_E_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2145910763i32; +pub const MENROLL_E_PASSWORD_NEEDED: ::windows_sys::core::HRESULT = -2145910770i32; +pub const MENROLL_E_PLATFORM_LICENSE_ERROR: ::windows_sys::core::HRESULT = -2145910756i32; +pub const MENROLL_E_PLATFORM_UNKNOWN_ERROR: ::windows_sys::core::HRESULT = -2145910755i32; +pub const MENROLL_E_PLATFORM_WRONG_STATE: ::windows_sys::core::HRESULT = -2145910757i32; +pub const MENROLL_E_PROV_CSP_APPMGMT: ::windows_sys::core::HRESULT = -2145910747i32; +pub const MENROLL_E_PROV_CSP_CERTSTORE: ::windows_sys::core::HRESULT = -2145910754i32; +pub const MENROLL_E_PROV_CSP_DMCLIENT: ::windows_sys::core::HRESULT = -2145910752i32; +pub const MENROLL_E_PROV_CSP_MISC: ::windows_sys::core::HRESULT = -2145910750i32; +pub const MENROLL_E_PROV_CSP_PFW: ::windows_sys::core::HRESULT = -2145910751i32; +pub const MENROLL_E_PROV_CSP_W7: ::windows_sys::core::HRESULT = -2145910753i32; +pub const MENROLL_E_PROV_SSLCERTNOTFOUND: ::windows_sys::core::HRESULT = -2145910748i32; +pub const MENROLL_E_PROV_UNKNOWN: ::windows_sys::core::HRESULT = -2145910749i32; +pub const MENROLL_E_USERLICENSE: ::windows_sys::core::HRESULT = -2145910760i32; +pub const MENROLL_E_USER_CANCELED: ::windows_sys::core::HRESULT = -2145910742i32; +pub const MENROLL_E_USER_CANCELLED: ::windows_sys::core::HRESULT = -2145910736i32; +pub const MENROLL_E_USER_LICENSE: ::windows_sys::core::HRESULT = -2145910760i32; +pub const MENROLL_E_WAB_ERROR: ::windows_sys::core::HRESULT = -2145910769i32; +pub const MREGISTER_E_DEVICE_ALREADY_REGISTERED: ::windows_sys::core::HRESULT = -2145845238i32; +pub const MREGISTER_E_DEVICE_AUTHENTICATION_ERROR: ::windows_sys::core::HRESULT = -2145845246i32; +pub const MREGISTER_E_DEVICE_AUTHORIZATION_ERROR: ::windows_sys::core::HRESULT = -2145845245i32; +pub const MREGISTER_E_DEVICE_CERTIFCATEREQUEST_ERROR: ::windows_sys::core::HRESULT = -2145845244i32; +pub const MREGISTER_E_DEVICE_CONFIGMGRSERVER_ERROR: ::windows_sys::core::HRESULT = -2145845243i32; +pub const MREGISTER_E_DEVICE_INTERNALSERVICE_ERROR: ::windows_sys::core::HRESULT = -2145845242i32; +pub const MREGISTER_E_DEVICE_INVALIDSECURITY_ERROR: ::windows_sys::core::HRESULT = -2145845241i32; +pub const MREGISTER_E_DEVICE_MESSAGE_FORMAT_ERROR: ::windows_sys::core::HRESULT = -2145845247i32; +pub const MREGISTER_E_DEVICE_NOT_AD_REGISTERED_ERROR: ::windows_sys::core::HRESULT = -2145845235i32; +pub const MREGISTER_E_DEVICE_NOT_REGISTERED: ::windows_sys::core::HRESULT = -2145845237i32; +pub const MREGISTER_E_DEVICE_UNKNOWN_ERROR: ::windows_sys::core::HRESULT = -2145845240i32; +pub const MREGISTER_E_DISCOVERY_FAILED: ::windows_sys::core::HRESULT = -2145845234i32; +pub const MREGISTER_E_DISCOVERY_REDIRECTED: ::windows_sys::core::HRESULT = -2145845236i32; +pub const MREGISTER_E_REGISTRATION_IN_PROGRESS: ::windows_sys::core::HRESULT = -2145845239i32; +pub const MaxDeviceInfoClass: REGISTRATION_INFORMATION_CLASS = 2i32; +pub type REGISTRATION_INFORMATION_CLASS = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MANAGEMENT_REGISTRATION_INFO { + pub fDeviceRegisteredWithManagement: super::super::Foundation::BOOL, + pub dwDeviceRegistionKind: u32, + pub pszUPN: ::windows_sys::core::PWSTR, + pub pszMDMServiceUri: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MANAGEMENT_REGISTRATION_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MANAGEMENT_REGISTRATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MANAGEMENT_SERVICE_INFO { + pub pszMDMServiceUri: ::windows_sys::core::PWSTR, + pub pszAuthenticationUri: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for MANAGEMENT_SERVICE_INFO {} +impl ::core::clone::Clone for MANAGEMENT_SERVICE_INFO { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Management/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Management/mod.rs new file mode 100644 index 000000000..636ff37e0 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Management/mod.rs @@ -0,0 +1,3 @@ +#[cfg(feature = "Win32_Management_MobileDeviceManagementRegistration")] +#[doc = "Required features: `\"Win32_Management_MobileDeviceManagementRegistration\"`"] +pub mod MobileDeviceManagementRegistration; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Media/Audio/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/Audio/mod.rs new file mode 100644 index 000000000..45a430fe9 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/Audio/mod.rs @@ -0,0 +1,2814 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("mmdevapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn ActivateAudioInterfaceAsync(deviceinterfacepath : ::windows_sys::core::PCWSTR, riid : *const ::windows_sys::core::GUID, activationparams : *const super::super::System::Com::StructuredStorage:: PROPVARIANT, completionhandler : IActivateAudioInterfaceCompletionHandler, activationoperation : *mut IActivateAudioInterfaceAsyncOperation) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRegisterMessageFilter(lpmessagefilter : IMessageFilter, lplpmessagefilter : *mut IMessageFilter) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("windows.media.mediacontrol.dll" "system" fn CreateCaptureAudioStateMonitor(audiostatemonitor : *mut IAudioStateMonitor) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("windows.media.mediacontrol.dll" "system" fn CreateCaptureAudioStateMonitorForCategory(category : AUDIO_STREAM_CATEGORY, audiostatemonitor : *mut IAudioStateMonitor) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("windows.media.mediacontrol.dll" "system" fn CreateCaptureAudioStateMonitorForCategoryAndDeviceId(category : AUDIO_STREAM_CATEGORY, deviceid : ::windows_sys::core::PCWSTR, audiostatemonitor : *mut IAudioStateMonitor) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("windows.media.mediacontrol.dll" "system" fn CreateCaptureAudioStateMonitorForCategoryAndDeviceRole(category : AUDIO_STREAM_CATEGORY, role : ERole, audiostatemonitor : *mut IAudioStateMonitor) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("windows.media.mediacontrol.dll" "system" fn CreateRenderAudioStateMonitor(audiostatemonitor : *mut IAudioStateMonitor) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("windows.media.mediacontrol.dll" "system" fn CreateRenderAudioStateMonitorForCategory(category : AUDIO_STREAM_CATEGORY, audiostatemonitor : *mut IAudioStateMonitor) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("windows.media.mediacontrol.dll" "system" fn CreateRenderAudioStateMonitorForCategoryAndDeviceId(category : AUDIO_STREAM_CATEGORY, deviceid : ::windows_sys::core::PCWSTR, audiostatemonitor : *mut IAudioStateMonitor) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("windows.media.mediacontrol.dll" "system" fn CreateRenderAudioStateMonitorForCategoryAndDeviceRole(category : AUDIO_STREAM_CATEGORY, role : ERole, audiostatemonitor : *mut IAudioStateMonitor) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PlaySoundA(pszsound : ::windows_sys::core::PCSTR, hmod : super::super::Foundation:: HMODULE, fdwsound : SND_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PlaySoundW(pszsound : ::windows_sys::core::PCWSTR, hmod : super::super::Foundation:: HMODULE, fdwsound : SND_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmDriverAddA(phadid : *mut HACMDRIVERID, hinstmodule : super::super::Foundation:: HINSTANCE, lparam : super::super::Foundation:: LPARAM, dwpriority : u32, fdwadd : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmDriverAddW(phadid : *mut HACMDRIVERID, hinstmodule : super::super::Foundation:: HINSTANCE, lparam : super::super::Foundation:: LPARAM, dwpriority : u32, fdwadd : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmDriverClose(had : HACMDRIVER, fdwclose : u32) -> u32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn acmDriverDetailsA(hadid : HACMDRIVERID, padd : *mut ACMDRIVERDETAILSA, fdwdetails : u32) -> u32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn acmDriverDetailsW(hadid : HACMDRIVERID, padd : *mut ACMDRIVERDETAILSW, fdwdetails : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmDriverEnum(fncallback : ACMDRIVERENUMCB, dwinstance : usize, fdwenum : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmDriverID(hao : HACMOBJ, phadid : *mut HACMDRIVERID, fdwdriverid : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmDriverMessage(had : HACMDRIVER, umsg : u32, lparam1 : super::super::Foundation:: LPARAM, lparam2 : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +::windows_targets::link!("msacm32.dll" "system" fn acmDriverOpen(phad : *mut HACMDRIVER, hadid : HACMDRIVERID, fdwopen : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmDriverPriority(hadid : HACMDRIVERID, dwpriority : u32, fdwpriority : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmDriverRemove(hadid : HACMDRIVERID, fdwremove : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmFilterChooseA(pafltrc : *mut ACMFILTERCHOOSEA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmFilterChooseW(pafltrc : *mut ACMFILTERCHOOSEW) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmFilterDetailsA(had : HACMDRIVER, pafd : *mut ACMFILTERDETAILSA, fdwdetails : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmFilterDetailsW(had : HACMDRIVER, pafd : *mut ACMFILTERDETAILSW, fdwdetails : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmFilterEnumA(had : HACMDRIVER, pafd : *mut ACMFILTERDETAILSA, fncallback : ACMFILTERENUMCBA, dwinstance : usize, fdwenum : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmFilterEnumW(had : HACMDRIVER, pafd : *mut ACMFILTERDETAILSW, fncallback : ACMFILTERENUMCBW, dwinstance : usize, fdwenum : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmFilterTagDetailsA(had : HACMDRIVER, paftd : *mut ACMFILTERTAGDETAILSA, fdwdetails : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmFilterTagDetailsW(had : HACMDRIVER, paftd : *mut ACMFILTERTAGDETAILSW, fdwdetails : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmFilterTagEnumA(had : HACMDRIVER, paftd : *mut ACMFILTERTAGDETAILSA, fncallback : ACMFILTERTAGENUMCBA, dwinstance : usize, fdwenum : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmFilterTagEnumW(had : HACMDRIVER, paftd : *mut ACMFILTERTAGDETAILSW, fncallback : ACMFILTERTAGENUMCBW, dwinstance : usize, fdwenum : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmFormatChooseA(pafmtc : *mut ACMFORMATCHOOSEA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmFormatChooseW(pafmtc : *mut ACMFORMATCHOOSEW) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmFormatDetailsA(had : HACMDRIVER, pafd : *mut ACMFORMATDETAILSA, fdwdetails : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmFormatDetailsW(had : HACMDRIVER, pafd : *mut tACMFORMATDETAILSW, fdwdetails : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmFormatEnumA(had : HACMDRIVER, pafd : *mut ACMFORMATDETAILSA, fncallback : ACMFORMATENUMCBA, dwinstance : usize, fdwenum : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmFormatEnumW(had : HACMDRIVER, pafd : *mut tACMFORMATDETAILSW, fncallback : ACMFORMATENUMCBW, dwinstance : usize, fdwenum : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmFormatSuggest(had : HACMDRIVER, pwfxsrc : *mut WAVEFORMATEX, pwfxdst : *mut WAVEFORMATEX, cbwfxdst : u32, fdwsuggest : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmFormatTagDetailsA(had : HACMDRIVER, paftd : *mut ACMFORMATTAGDETAILSA, fdwdetails : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmFormatTagDetailsW(had : HACMDRIVER, paftd : *mut ACMFORMATTAGDETAILSW, fdwdetails : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmFormatTagEnumA(had : HACMDRIVER, paftd : *mut ACMFORMATTAGDETAILSA, fncallback : ACMFORMATTAGENUMCBA, dwinstance : usize, fdwenum : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmFormatTagEnumW(had : HACMDRIVER, paftd : *mut ACMFORMATTAGDETAILSW, fncallback : ACMFORMATTAGENUMCBW, dwinstance : usize, fdwenum : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmGetVersion() -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmMetrics(hao : HACMOBJ, umetric : u32, pmetric : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmStreamClose(has : HACMSTREAM, fdwclose : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmStreamConvert(has : HACMSTREAM, pash : *mut ACMSTREAMHEADER, fdwconvert : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msacm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn acmStreamMessage(has : HACMSTREAM, umsg : u32, lparam1 : super::super::Foundation:: LPARAM, lparam2 : super::super::Foundation:: LPARAM) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmStreamOpen(phas : *mut HACMSTREAM, had : HACMDRIVER, pwfxsrc : *mut WAVEFORMATEX, pwfxdst : *mut WAVEFORMATEX, pwfltr : *mut WAVEFILTER, dwcallback : usize, dwinstance : usize, fdwopen : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmStreamPrepareHeader(has : HACMSTREAM, pash : *mut ACMSTREAMHEADER, fdwprepare : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmStreamReset(has : HACMSTREAM, fdwreset : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmStreamSize(has : HACMSTREAM, cbinput : u32, pdwoutputbytes : *mut u32, fdwsize : u32) -> u32); +::windows_targets::link!("msacm32.dll" "system" fn acmStreamUnprepareHeader(has : HACMSTREAM, pash : *mut ACMSTREAMHEADER, fdwunprepare : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn auxGetDevCapsA(udeviceid : usize, pac : *mut AUXCAPSA, cbac : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn auxGetDevCapsW(udeviceid : usize, pac : *mut AUXCAPSW, cbac : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn auxGetNumDevs() -> u32); +::windows_targets::link!("winmm.dll" "system" fn auxGetVolume(udeviceid : u32, pdwvolume : *mut u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn auxOutMessage(udeviceid : u32, umsg : u32, dw1 : usize, dw2 : usize) -> u32); +::windows_targets::link!("winmm.dll" "system" fn auxSetVolume(udeviceid : u32, dwvolume : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiConnect(hmi : HMIDI, hmo : HMIDIOUT, preserved : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiDisconnect(hmi : HMIDI, hmo : HMIDIOUT, preserved : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInAddBuffer(hmi : HMIDIIN, pmh : *mut MIDIHDR, cbmh : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInClose(hmi : HMIDIIN) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInGetDevCapsA(udeviceid : usize, pmic : *mut MIDIINCAPSA, cbmic : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInGetDevCapsW(udeviceid : usize, pmic : *mut MIDIINCAPSW, cbmic : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInGetErrorTextA(mmrerror : u32, psztext : ::windows_sys::core::PSTR, cchtext : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInGetErrorTextW(mmrerror : u32, psztext : ::windows_sys::core::PWSTR, cchtext : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInGetID(hmi : HMIDIIN, pudeviceid : *mut u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInGetNumDevs() -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInMessage(hmi : HMIDIIN, umsg : u32, dw1 : usize, dw2 : usize) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInOpen(phmi : *mut HMIDIIN, udeviceid : u32, dwcallback : usize, dwinstance : usize, fdwopen : MIDI_WAVE_OPEN_TYPE) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInPrepareHeader(hmi : HMIDIIN, pmh : *mut MIDIHDR, cbmh : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInReset(hmi : HMIDIIN) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInStart(hmi : HMIDIIN) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInStop(hmi : HMIDIIN) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiInUnprepareHeader(hmi : HMIDIIN, pmh : *mut MIDIHDR, cbmh : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutCacheDrumPatches(hmo : HMIDIOUT, upatch : u32, pwkya : *const u16, fucache : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutCachePatches(hmo : HMIDIOUT, ubank : u32, pwpa : *const u16, fucache : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutClose(hmo : HMIDIOUT) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutGetDevCapsA(udeviceid : usize, pmoc : *mut MIDIOUTCAPSA, cbmoc : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutGetDevCapsW(udeviceid : usize, pmoc : *mut MIDIOUTCAPSW, cbmoc : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutGetErrorTextA(mmrerror : u32, psztext : ::windows_sys::core::PSTR, cchtext : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutGetErrorTextW(mmrerror : u32, psztext : ::windows_sys::core::PWSTR, cchtext : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutGetID(hmo : HMIDIOUT, pudeviceid : *mut u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutGetNumDevs() -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutGetVolume(hmo : HMIDIOUT, pdwvolume : *mut u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutLongMsg(hmo : HMIDIOUT, pmh : *const MIDIHDR, cbmh : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutMessage(hmo : HMIDIOUT, umsg : u32, dw1 : usize, dw2 : usize) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutOpen(phmo : *mut HMIDIOUT, udeviceid : u32, dwcallback : usize, dwinstance : usize, fdwopen : MIDI_WAVE_OPEN_TYPE) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutPrepareHeader(hmo : HMIDIOUT, pmh : *mut MIDIHDR, cbmh : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutReset(hmo : HMIDIOUT) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutSetVolume(hmo : HMIDIOUT, dwvolume : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutShortMsg(hmo : HMIDIOUT, dwmsg : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiOutUnprepareHeader(hmo : HMIDIOUT, pmh : *mut MIDIHDR, cbmh : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiStreamClose(hms : HMIDISTRM) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiStreamOpen(phms : *mut HMIDISTRM, pudeviceid : *mut u32, cmidi : u32, dwcallback : usize, dwinstance : usize, fdwopen : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiStreamOut(hms : HMIDISTRM, pmh : *mut MIDIHDR, cbmh : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiStreamPause(hms : HMIDISTRM) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiStreamPosition(hms : HMIDISTRM, lpmmt : *mut super:: MMTIME, cbmmt : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiStreamProperty(hms : HMIDISTRM, lppropdata : *mut u8, dwproperty : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiStreamRestart(hms : HMIDISTRM) -> u32); +::windows_targets::link!("winmm.dll" "system" fn midiStreamStop(hms : HMIDISTRM) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mixerClose(hmx : HMIXER) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mixerGetControlDetailsA(hmxobj : HMIXEROBJ, pmxcd : *mut MIXERCONTROLDETAILS, fdwdetails : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mixerGetControlDetailsW(hmxobj : HMIXEROBJ, pmxcd : *mut MIXERCONTROLDETAILS, fdwdetails : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mixerGetDevCapsA(umxid : usize, pmxcaps : *mut MIXERCAPSA, cbmxcaps : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mixerGetDevCapsW(umxid : usize, pmxcaps : *mut MIXERCAPSW, cbmxcaps : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mixerGetID(hmxobj : HMIXEROBJ, pumxid : *mut u32, fdwid : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mixerGetLineControlsA(hmxobj : HMIXEROBJ, pmxlc : *mut MIXERLINECONTROLSA, fdwcontrols : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mixerGetLineControlsW(hmxobj : HMIXEROBJ, pmxlc : *mut MIXERLINECONTROLSW, fdwcontrols : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mixerGetLineInfoA(hmxobj : HMIXEROBJ, pmxl : *mut MIXERLINEA, fdwinfo : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mixerGetLineInfoW(hmxobj : HMIXEROBJ, pmxl : *mut MIXERLINEW, fdwinfo : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mixerGetNumDevs() -> u32); +::windows_targets::link!("winmm.dll" "system" fn mixerMessage(hmx : HMIXER, umsg : u32, dwparam1 : usize, dwparam2 : usize) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mixerOpen(phmx : *mut HMIXER, umxid : u32, dwcallback : usize, dwinstance : usize, fdwopen : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mixerSetControlDetails(hmxobj : HMIXEROBJ, pmxcd : *const MIXERCONTROLDETAILS, fdwdetails : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn sndPlaySoundA(pszsound : ::windows_sys::core::PCSTR, fusound : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn sndPlaySoundW(pszsound : ::windows_sys::core::PCWSTR, fusound : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winmm.dll" "system" fn waveInAddBuffer(hwi : HWAVEIN, pwh : *mut WAVEHDR, cbwh : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInClose(hwi : HWAVEIN) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInGetDevCapsA(udeviceid : usize, pwic : *mut WAVEINCAPSA, cbwic : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInGetDevCapsW(udeviceid : usize, pwic : *mut WAVEINCAPSW, cbwic : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInGetErrorTextA(mmrerror : u32, psztext : ::windows_sys::core::PSTR, cchtext : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInGetErrorTextW(mmrerror : u32, psztext : ::windows_sys::core::PWSTR, cchtext : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInGetID(hwi : HWAVEIN, pudeviceid : *const u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInGetNumDevs() -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInGetPosition(hwi : HWAVEIN, pmmt : *mut super:: MMTIME, cbmmt : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInMessage(hwi : HWAVEIN, umsg : u32, dw1 : usize, dw2 : usize) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInOpen(phwi : *mut HWAVEIN, udeviceid : u32, pwfx : *const WAVEFORMATEX, dwcallback : usize, dwinstance : usize, fdwopen : MIDI_WAVE_OPEN_TYPE) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInPrepareHeader(hwi : HWAVEIN, pwh : *mut WAVEHDR, cbwh : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInReset(hwi : HWAVEIN) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInStart(hwi : HWAVEIN) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInStop(hwi : HWAVEIN) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveInUnprepareHeader(hwi : HWAVEIN, pwh : *mut WAVEHDR, cbwh : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutBreakLoop(hwo : HWAVEOUT) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutClose(hwo : HWAVEOUT) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutGetDevCapsA(udeviceid : usize, pwoc : *mut WAVEOUTCAPSA, cbwoc : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutGetDevCapsW(udeviceid : usize, pwoc : *mut WAVEOUTCAPSW, cbwoc : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutGetErrorTextA(mmrerror : u32, psztext : ::windows_sys::core::PSTR, cchtext : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutGetErrorTextW(mmrerror : u32, psztext : ::windows_sys::core::PWSTR, cchtext : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutGetID(hwo : HWAVEOUT, pudeviceid : *mut u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutGetNumDevs() -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutGetPitch(hwo : HWAVEOUT, pdwpitch : *mut u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutGetPlaybackRate(hwo : HWAVEOUT, pdwrate : *mut u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutGetPosition(hwo : HWAVEOUT, pmmt : *mut super:: MMTIME, cbmmt : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutGetVolume(hwo : HWAVEOUT, pdwvolume : *mut u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutMessage(hwo : HWAVEOUT, umsg : u32, dw1 : usize, dw2 : usize) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutOpen(phwo : *mut HWAVEOUT, udeviceid : u32, pwfx : *const WAVEFORMATEX, dwcallback : usize, dwinstance : usize, fdwopen : MIDI_WAVE_OPEN_TYPE) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutPause(hwo : HWAVEOUT) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutPrepareHeader(hwo : HWAVEOUT, pwh : *mut WAVEHDR, cbwh : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutReset(hwo : HWAVEOUT) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutRestart(hwo : HWAVEOUT) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutSetPitch(hwo : HWAVEOUT, dwpitch : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutSetPlaybackRate(hwo : HWAVEOUT, dwrate : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutSetVolume(hwo : HWAVEOUT, dwvolume : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutUnprepareHeader(hwo : HWAVEOUT, pwh : *mut WAVEHDR, cbwh : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn waveOutWrite(hwo : HWAVEOUT, pwh : *mut WAVEHDR, cbwh : u32) -> u32); +pub type IAcousticEchoCancellationControl = *mut ::core::ffi::c_void; +pub type IActivateAudioInterfaceAsyncOperation = *mut ::core::ffi::c_void; +pub type IActivateAudioInterfaceCompletionHandler = *mut ::core::ffi::c_void; +pub type IAudioAmbisonicsControl = *mut ::core::ffi::c_void; +pub type IAudioAutoGainControl = *mut ::core::ffi::c_void; +pub type IAudioBass = *mut ::core::ffi::c_void; +pub type IAudioCaptureClient = *mut ::core::ffi::c_void; +pub type IAudioChannelConfig = *mut ::core::ffi::c_void; +pub type IAudioClient = *mut ::core::ffi::c_void; +pub type IAudioClient2 = *mut ::core::ffi::c_void; +pub type IAudioClient3 = *mut ::core::ffi::c_void; +pub type IAudioClientDuckingControl = *mut ::core::ffi::c_void; +pub type IAudioClock = *mut ::core::ffi::c_void; +pub type IAudioClock2 = *mut ::core::ffi::c_void; +pub type IAudioClockAdjustment = *mut ::core::ffi::c_void; +pub type IAudioEffectsChangedNotificationClient = *mut ::core::ffi::c_void; +pub type IAudioEffectsManager = *mut ::core::ffi::c_void; +pub type IAudioFormatEnumerator = *mut ::core::ffi::c_void; +pub type IAudioInputSelector = *mut ::core::ffi::c_void; +pub type IAudioLoudness = *mut ::core::ffi::c_void; +pub type IAudioMidrange = *mut ::core::ffi::c_void; +pub type IAudioMute = *mut ::core::ffi::c_void; +pub type IAudioOutputSelector = *mut ::core::ffi::c_void; +pub type IAudioPeakMeter = *mut ::core::ffi::c_void; +pub type IAudioRenderClient = *mut ::core::ffi::c_void; +pub type IAudioSessionControl = *mut ::core::ffi::c_void; +pub type IAudioSessionControl2 = *mut ::core::ffi::c_void; +pub type IAudioSessionEnumerator = *mut ::core::ffi::c_void; +pub type IAudioSessionEvents = *mut ::core::ffi::c_void; +pub type IAudioSessionManager = *mut ::core::ffi::c_void; +pub type IAudioSessionManager2 = *mut ::core::ffi::c_void; +pub type IAudioSessionNotification = *mut ::core::ffi::c_void; +pub type IAudioStateMonitor = *mut ::core::ffi::c_void; +pub type IAudioStreamVolume = *mut ::core::ffi::c_void; +pub type IAudioSystemEffectsPropertyChangeNotificationClient = *mut ::core::ffi::c_void; +pub type IAudioSystemEffectsPropertyStore = *mut ::core::ffi::c_void; +pub type IAudioTreble = *mut ::core::ffi::c_void; +pub type IAudioViewManagerService = *mut ::core::ffi::c_void; +pub type IAudioVolumeDuckNotification = *mut ::core::ffi::c_void; +pub type IAudioVolumeLevel = *mut ::core::ffi::c_void; +pub type IChannelAudioVolume = *mut ::core::ffi::c_void; +pub type IConnector = *mut ::core::ffi::c_void; +pub type IControlChangeNotify = *mut ::core::ffi::c_void; +pub type IControlInterface = *mut ::core::ffi::c_void; +pub type IDeviceSpecificProperty = *mut ::core::ffi::c_void; +pub type IDeviceTopology = *mut ::core::ffi::c_void; +pub type IMMDevice = *mut ::core::ffi::c_void; +pub type IMMDeviceActivator = *mut ::core::ffi::c_void; +pub type IMMDeviceCollection = *mut ::core::ffi::c_void; +pub type IMMDeviceEnumerator = *mut ::core::ffi::c_void; +pub type IMMEndpoint = *mut ::core::ffi::c_void; +pub type IMMNotificationClient = *mut ::core::ffi::c_void; +pub type IMessageFilter = *mut ::core::ffi::c_void; +pub type IPart = *mut ::core::ffi::c_void; +pub type IPartsList = *mut ::core::ffi::c_void; +pub type IPerChannelDbLevel = *mut ::core::ffi::c_void; +pub type ISimpleAudioVolume = *mut ::core::ffi::c_void; +pub type ISpatialAudioClient = *mut ::core::ffi::c_void; +pub type ISpatialAudioClient2 = *mut ::core::ffi::c_void; +pub type ISpatialAudioMetadataClient = *mut ::core::ffi::c_void; +pub type ISpatialAudioMetadataCopier = *mut ::core::ffi::c_void; +pub type ISpatialAudioMetadataItems = *mut ::core::ffi::c_void; +pub type ISpatialAudioMetadataItemsBuffer = *mut ::core::ffi::c_void; +pub type ISpatialAudioMetadataReader = *mut ::core::ffi::c_void; +pub type ISpatialAudioMetadataWriter = *mut ::core::ffi::c_void; +pub type ISpatialAudioObject = *mut ::core::ffi::c_void; +pub type ISpatialAudioObjectBase = *mut ::core::ffi::c_void; +pub type ISpatialAudioObjectForHrtf = *mut ::core::ffi::c_void; +pub type ISpatialAudioObjectForMetadataCommands = *mut ::core::ffi::c_void; +pub type ISpatialAudioObjectForMetadataItems = *mut ::core::ffi::c_void; +pub type ISpatialAudioObjectRenderStream = *mut ::core::ffi::c_void; +pub type ISpatialAudioObjectRenderStreamBase = *mut ::core::ffi::c_void; +pub type ISpatialAudioObjectRenderStreamForHrtf = *mut ::core::ffi::c_void; +pub type ISpatialAudioObjectRenderStreamForMetadata = *mut ::core::ffi::c_void; +pub type ISpatialAudioObjectRenderStreamNotify = *mut ::core::ffi::c_void; +pub type ISubunit = *mut ::core::ffi::c_void; +pub const ACMDM_DRIVER_ABOUT: u32 = 24587u32; +pub const ACMDM_DRIVER_DETAILS: u32 = 24586u32; +pub const ACMDM_DRIVER_NOTIFY: u32 = 24577u32; +pub const ACMDM_FILTERTAG_DETAILS: u32 = 24626u32; +pub const ACMDM_FILTER_DETAILS: u32 = 24627u32; +pub const ACMDM_FORMATTAG_DETAILS: u32 = 24601u32; +pub const ACMDM_FORMAT_DETAILS: u32 = 24602u32; +pub const ACMDM_FORMAT_SUGGEST: u32 = 24603u32; +pub const ACMDM_HARDWARE_WAVE_CAPS_INPUT: u32 = 24596u32; +pub const ACMDM_HARDWARE_WAVE_CAPS_OUTPUT: u32 = 24597u32; +pub const ACMDM_RESERVED_HIGH: u32 = 28671u32; +pub const ACMDM_RESERVED_LOW: u32 = 24576u32; +pub const ACMDM_STREAM_CLOSE: u32 = 24653u32; +pub const ACMDM_STREAM_CONVERT: u32 = 24655u32; +pub const ACMDM_STREAM_OPEN: u32 = 24652u32; +pub const ACMDM_STREAM_PREPARE: u32 = 24657u32; +pub const ACMDM_STREAM_RESET: u32 = 24656u32; +pub const ACMDM_STREAM_SIZE: u32 = 24654u32; +pub const ACMDM_STREAM_UNPREPARE: u32 = 24658u32; +pub const ACMDM_STREAM_UPDATE: u32 = 24659u32; +pub const ACMDM_USER: u32 = 16384u32; +pub const ACMDRIVERDETAILS_COPYRIGHT_CHARS: u32 = 80u32; +pub const ACMDRIVERDETAILS_FEATURES_CHARS: u32 = 512u32; +pub const ACMDRIVERDETAILS_LICENSING_CHARS: u32 = 128u32; +pub const ACMDRIVERDETAILS_LONGNAME_CHARS: u32 = 128u32; +pub const ACMDRIVERDETAILS_SHORTNAME_CHARS: u32 = 32u32; +pub const ACMDRIVERDETAILS_SUPPORTF_ASYNC: i32 = 16i32; +pub const ACMDRIVERDETAILS_SUPPORTF_CODEC: i32 = 1i32; +pub const ACMDRIVERDETAILS_SUPPORTF_CONVERTER: i32 = 2i32; +pub const ACMDRIVERDETAILS_SUPPORTF_DISABLED: i32 = -2147483648i32; +pub const ACMDRIVERDETAILS_SUPPORTF_FILTER: i32 = 4i32; +pub const ACMDRIVERDETAILS_SUPPORTF_HARDWARE: i32 = 8i32; +pub const ACMDRIVERDETAILS_SUPPORTF_LOCAL: i32 = 1073741824i32; +pub const ACMERR_BASE: u32 = 512u32; +pub const ACMERR_BUSY: u32 = 513u32; +pub const ACMERR_CANCELED: u32 = 515u32; +pub const ACMERR_NOTPOSSIBLE: u32 = 512u32; +pub const ACMERR_UNPREPARED: u32 = 514u32; +pub const ACMFILTERCHOOSE_STYLEF_CONTEXTHELP: i32 = 128i32; +pub const ACMFILTERCHOOSE_STYLEF_ENABLEHOOK: i32 = 8i32; +pub const ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE: i32 = 16i32; +pub const ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE: i32 = 32i32; +pub const ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT: i32 = 64i32; +pub const ACMFILTERCHOOSE_STYLEF_SHOWHELP: i32 = 4i32; +pub const ACMFILTERDETAILS_FILTER_CHARS: u32 = 128u32; +pub const ACMFILTERTAGDETAILS_FILTERTAG_CHARS: u32 = 48u32; +pub const ACMFORMATCHOOSE_STYLEF_CONTEXTHELP: i32 = 128i32; +pub const ACMFORMATCHOOSE_STYLEF_ENABLEHOOK: i32 = 8i32; +pub const ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE: i32 = 16i32; +pub const ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE: i32 = 32i32; +pub const ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT: i32 = 64i32; +pub const ACMFORMATCHOOSE_STYLEF_SHOWHELP: i32 = 4i32; +pub const ACMFORMATDETAILS_FORMAT_CHARS: u32 = 128u32; +pub const ACMFORMATTAGDETAILS_FORMATTAG_CHARS: u32 = 48u32; +pub const ACMHELPMSGCONTEXTHELP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("acmchoose_contexthelp"); +pub const ACMHELPMSGCONTEXTHELPA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("acmchoose_contexthelp"); +pub const ACMHELPMSGCONTEXTHELPW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("acmchoose_contexthelp"); +pub const ACMHELPMSGCONTEXTMENU: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("acmchoose_contextmenu"); +pub const ACMHELPMSGCONTEXTMENUA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("acmchoose_contextmenu"); +pub const ACMHELPMSGCONTEXTMENUW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("acmchoose_contextmenu"); +pub const ACMHELPMSGSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("acmchoose_help"); +pub const ACMHELPMSGSTRINGA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("acmchoose_help"); +pub const ACMHELPMSGSTRINGW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("acmchoose_help"); +pub const ACMSTREAMHEADER_STATUSF_DONE: i32 = 65536i32; +pub const ACMSTREAMHEADER_STATUSF_INQUEUE: i32 = 1048576i32; +pub const ACMSTREAMHEADER_STATUSF_PREPARED: i32 = 131072i32; +pub const ACM_DRIVERADDF_FUNCTION: i32 = 3i32; +pub const ACM_DRIVERADDF_GLOBAL: i32 = 8i32; +pub const ACM_DRIVERADDF_LOCAL: i32 = 0i32; +pub const ACM_DRIVERADDF_NAME: i32 = 1i32; +pub const ACM_DRIVERADDF_NOTIFYHWND: i32 = 4i32; +pub const ACM_DRIVERADDF_TYPEMASK: i32 = 7i32; +pub const ACM_DRIVERENUMF_DISABLED: i32 = -2147483648i32; +pub const ACM_DRIVERENUMF_NOLOCAL: i32 = 1073741824i32; +pub const ACM_DRIVERPRIORITYF_ABLEMASK: i32 = 3i32; +pub const ACM_DRIVERPRIORITYF_BEGIN: i32 = 65536i32; +pub const ACM_DRIVERPRIORITYF_DEFERMASK: i32 = 196608i32; +pub const ACM_DRIVERPRIORITYF_DISABLE: i32 = 2i32; +pub const ACM_DRIVERPRIORITYF_ENABLE: i32 = 1i32; +pub const ACM_DRIVERPRIORITYF_END: i32 = 131072i32; +pub const ACM_FILTERDETAILSF_FILTER: i32 = 1i32; +pub const ACM_FILTERDETAILSF_INDEX: i32 = 0i32; +pub const ACM_FILTERDETAILSF_QUERYMASK: i32 = 15i32; +pub const ACM_FILTERENUMF_DWFILTERTAG: i32 = 65536i32; +pub const ACM_FILTERTAGDETAILSF_FILTERTAG: i32 = 1i32; +pub const ACM_FILTERTAGDETAILSF_INDEX: i32 = 0i32; +pub const ACM_FILTERTAGDETAILSF_LARGESTSIZE: i32 = 2i32; +pub const ACM_FILTERTAGDETAILSF_QUERYMASK: i32 = 15i32; +pub const ACM_FORMATDETAILSF_FORMAT: i32 = 1i32; +pub const ACM_FORMATDETAILSF_INDEX: i32 = 0i32; +pub const ACM_FORMATDETAILSF_QUERYMASK: i32 = 15i32; +pub const ACM_FORMATENUMF_CONVERT: i32 = 1048576i32; +pub const ACM_FORMATENUMF_HARDWARE: i32 = 4194304i32; +pub const ACM_FORMATENUMF_INPUT: i32 = 8388608i32; +pub const ACM_FORMATENUMF_NCHANNELS: i32 = 131072i32; +pub const ACM_FORMATENUMF_NSAMPLESPERSEC: i32 = 262144i32; +pub const ACM_FORMATENUMF_OUTPUT: i32 = 16777216i32; +pub const ACM_FORMATENUMF_SUGGEST: i32 = 2097152i32; +pub const ACM_FORMATENUMF_WBITSPERSAMPLE: i32 = 524288i32; +pub const ACM_FORMATENUMF_WFORMATTAG: i32 = 65536i32; +pub const ACM_FORMATSUGGESTF_NCHANNELS: i32 = 131072i32; +pub const ACM_FORMATSUGGESTF_NSAMPLESPERSEC: i32 = 262144i32; +pub const ACM_FORMATSUGGESTF_TYPEMASK: i32 = 16711680i32; +pub const ACM_FORMATSUGGESTF_WBITSPERSAMPLE: i32 = 524288i32; +pub const ACM_FORMATSUGGESTF_WFORMATTAG: i32 = 65536i32; +pub const ACM_FORMATTAGDETAILSF_FORMATTAG: i32 = 1i32; +pub const ACM_FORMATTAGDETAILSF_INDEX: i32 = 0i32; +pub const ACM_FORMATTAGDETAILSF_LARGESTSIZE: i32 = 2i32; +pub const ACM_FORMATTAGDETAILSF_QUERYMASK: i32 = 15i32; +pub const ACM_METRIC_COUNT_CODECS: u32 = 2u32; +pub const ACM_METRIC_COUNT_CONVERTERS: u32 = 3u32; +pub const ACM_METRIC_COUNT_DISABLED: u32 = 5u32; +pub const ACM_METRIC_COUNT_DRIVERS: u32 = 1u32; +pub const ACM_METRIC_COUNT_FILTERS: u32 = 4u32; +pub const ACM_METRIC_COUNT_HARDWARE: u32 = 6u32; +pub const ACM_METRIC_COUNT_LOCAL_CODECS: u32 = 21u32; +pub const ACM_METRIC_COUNT_LOCAL_CONVERTERS: u32 = 22u32; +pub const ACM_METRIC_COUNT_LOCAL_DISABLED: u32 = 24u32; +pub const ACM_METRIC_COUNT_LOCAL_DRIVERS: u32 = 20u32; +pub const ACM_METRIC_COUNT_LOCAL_FILTERS: u32 = 23u32; +pub const ACM_METRIC_DRIVER_PRIORITY: u32 = 101u32; +pub const ACM_METRIC_DRIVER_SUPPORT: u32 = 100u32; +pub const ACM_METRIC_HARDWARE_WAVE_INPUT: u32 = 30u32; +pub const ACM_METRIC_HARDWARE_WAVE_OUTPUT: u32 = 31u32; +pub const ACM_METRIC_MAX_SIZE_FILTER: u32 = 51u32; +pub const ACM_METRIC_MAX_SIZE_FORMAT: u32 = 50u32; +pub const ACM_STREAMCONVERTF_BLOCKALIGN: u32 = 4u32; +pub const ACM_STREAMCONVERTF_END: u32 = 32u32; +pub const ACM_STREAMCONVERTF_START: u32 = 16u32; +pub const ACM_STREAMOPENF_ASYNC: u32 = 2u32; +pub const ACM_STREAMOPENF_NONREALTIME: u32 = 4u32; +pub const ACM_STREAMOPENF_QUERY: u32 = 1u32; +pub const ACM_STREAMSIZEF_DESTINATION: i32 = 1i32; +pub const ACM_STREAMSIZEF_QUERYMASK: i32 = 15i32; +pub const ACM_STREAMSIZEF_SOURCE: i32 = 0i32; +pub const AMBISONICS_CHANNEL_ORDERING_ACN: AMBISONICS_CHANNEL_ORDERING = 0i32; +pub const AMBISONICS_NORMALIZATION_N3D: AMBISONICS_NORMALIZATION = 1i32; +pub const AMBISONICS_NORMALIZATION_SN3D: AMBISONICS_NORMALIZATION = 0i32; +pub const AMBISONICS_PARAM_VERSION_1: u32 = 1u32; +pub const AMBISONICS_TYPE_FULL3D: AMBISONICS_TYPE = 0i32; +pub const AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY: _AUDCLNT_BUFFERFLAGS = 1i32; +pub const AUDCLNT_BUFFERFLAGS_SILENT: _AUDCLNT_BUFFERFLAGS = 2i32; +pub const AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR: _AUDCLNT_BUFFERFLAGS = 4i32; +pub const AUDCLNT_E_ALREADY_INITIALIZED: ::windows_sys::core::HRESULT = -2004287486i32; +pub const AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL: ::windows_sys::core::HRESULT = -2004287469i32; +pub const AUDCLNT_E_BUFFER_ERROR: ::windows_sys::core::HRESULT = -2004287464i32; +pub const AUDCLNT_E_BUFFER_OPERATION_PENDING: ::windows_sys::core::HRESULT = -2004287477i32; +pub const AUDCLNT_E_BUFFER_SIZE_ERROR: ::windows_sys::core::HRESULT = -2004287466i32; +pub const AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED: ::windows_sys::core::HRESULT = -2004287463i32; +pub const AUDCLNT_E_BUFFER_TOO_LARGE: ::windows_sys::core::HRESULT = -2004287482i32; +pub const AUDCLNT_E_CPUUSAGE_EXCEEDED: ::windows_sys::core::HRESULT = -2004287465i32; +pub const AUDCLNT_E_DEVICE_INVALIDATED: ::windows_sys::core::HRESULT = -2004287484i32; +pub const AUDCLNT_E_DEVICE_IN_USE: ::windows_sys::core::HRESULT = -2004287478i32; +pub const AUDCLNT_E_EFFECT_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2004287423i32; +pub const AUDCLNT_E_EFFECT_STATE_READ_ONLY: ::windows_sys::core::HRESULT = -2004287422i32; +pub const AUDCLNT_E_ENDPOINT_CREATE_FAILED: ::windows_sys::core::HRESULT = -2004287473i32; +pub const AUDCLNT_E_ENDPOINT_OFFLOAD_NOT_CAPABLE: ::windows_sys::core::HRESULT = -2004287454i32; +pub const AUDCLNT_E_ENGINE_FORMAT_LOCKED: ::windows_sys::core::HRESULT = -2004287447i32; +pub const AUDCLNT_E_ENGINE_PERIODICITY_LOCKED: ::windows_sys::core::HRESULT = -2004287448i32; +pub const AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED: ::windows_sys::core::HRESULT = -2004287471i32; +pub const AUDCLNT_E_EVENTHANDLE_NOT_SET: ::windows_sys::core::HRESULT = -2004287468i32; +pub const AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2004287474i32; +pub const AUDCLNT_E_EXCLUSIVE_MODE_ONLY: ::windows_sys::core::HRESULT = -2004287470i32; +pub const AUDCLNT_E_HEADTRACKING_ENABLED: ::windows_sys::core::HRESULT = -2004287440i32; +pub const AUDCLNT_E_HEADTRACKING_UNSUPPORTED: ::windows_sys::core::HRESULT = -2004287424i32; +pub const AUDCLNT_E_INCORRECT_BUFFER_SIZE: ::windows_sys::core::HRESULT = -2004287467i32; +pub const AUDCLNT_E_INVALID_DEVICE_PERIOD: ::windows_sys::core::HRESULT = -2004287456i32; +pub const AUDCLNT_E_INVALID_SIZE: ::windows_sys::core::HRESULT = -2004287479i32; +pub const AUDCLNT_E_INVALID_STREAM_FLAG: ::windows_sys::core::HRESULT = -2004287455i32; +pub const AUDCLNT_E_NONOFFLOAD_MODE_ONLY: ::windows_sys::core::HRESULT = -2004287451i32; +pub const AUDCLNT_E_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -2004287487i32; +pub const AUDCLNT_E_NOT_STOPPED: ::windows_sys::core::HRESULT = -2004287483i32; +pub const AUDCLNT_E_OFFLOAD_MODE_ONLY: ::windows_sys::core::HRESULT = -2004287452i32; +pub const AUDCLNT_E_OUT_OF_OFFLOAD_RESOURCES: ::windows_sys::core::HRESULT = -2004287453i32; +pub const AUDCLNT_E_OUT_OF_ORDER: ::windows_sys::core::HRESULT = -2004287481i32; +pub const AUDCLNT_E_RAW_MODE_UNSUPPORTED: ::windows_sys::core::HRESULT = -2004287449i32; +pub const AUDCLNT_E_RESOURCES_INVALIDATED: ::windows_sys::core::HRESULT = -2004287450i32; +pub const AUDCLNT_E_SERVICE_NOT_RUNNING: ::windows_sys::core::HRESULT = -2004287472i32; +pub const AUDCLNT_E_THREAD_NOT_REGISTERED: ::windows_sys::core::HRESULT = -2004287476i32; +pub const AUDCLNT_E_UNSUPPORTED_FORMAT: ::windows_sys::core::HRESULT = -2004287480i32; +pub const AUDCLNT_E_WRONG_ENDPOINT_TYPE: ::windows_sys::core::HRESULT = -2004287485i32; +pub const AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE: u32 = 536870912u32; +pub const AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED: u32 = 1073741824u32; +pub const AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED: u32 = 268435456u32; +pub const AUDCLNT_SHAREMODE_EXCLUSIVE: AUDCLNT_SHAREMODE = 1i32; +pub const AUDCLNT_SHAREMODE_SHARED: AUDCLNT_SHAREMODE = 0i32; +pub const AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM: u32 = 2147483648u32; +pub const AUDCLNT_STREAMFLAGS_CROSSPROCESS: u32 = 65536u32; +pub const AUDCLNT_STREAMFLAGS_EVENTCALLBACK: u32 = 262144u32; +pub const AUDCLNT_STREAMFLAGS_LOOPBACK: u32 = 131072u32; +pub const AUDCLNT_STREAMFLAGS_NOPERSIST: u32 = 524288u32; +pub const AUDCLNT_STREAMFLAGS_RATEADJUST: u32 = 1048576u32; +pub const AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY: u32 = 134217728u32; +pub const AUDCLNT_STREAMOPTIONS_AMBISONICS: AUDCLNT_STREAMOPTIONS = 4i32; +pub const AUDCLNT_STREAMOPTIONS_MATCH_FORMAT: AUDCLNT_STREAMOPTIONS = 2i32; +pub const AUDCLNT_STREAMOPTIONS_NONE: AUDCLNT_STREAMOPTIONS = 0i32; +pub const AUDCLNT_STREAMOPTIONS_RAW: AUDCLNT_STREAMOPTIONS = 1i32; +pub const AUDCLNT_S_BUFFER_EMPTY: ::windows_sys::core::HRESULT = 143196161i32; +pub const AUDCLNT_S_POSITION_STALLED: ::windows_sys::core::HRESULT = 143196163i32; +pub const AUDCLNT_S_THREAD_ALREADY_REGISTERED: ::windows_sys::core::HRESULT = 143196162i32; +pub const AUDIOCLIENT_ACTIVATION_TYPE_DEFAULT: AUDIOCLIENT_ACTIVATION_TYPE = 0i32; +pub const AUDIOCLIENT_ACTIVATION_TYPE_PROCESS_LOOPBACK: AUDIOCLIENT_ACTIVATION_TYPE = 1i32; +pub const AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ: u32 = 1u32; +pub const AUDIO_DUCKING_OPTIONS_DEFAULT: AUDIO_DUCKING_OPTIONS = 0i32; +pub const AUDIO_DUCKING_OPTIONS_DO_NOT_DUCK_OTHER_STREAMS: AUDIO_DUCKING_OPTIONS = 1i32; +pub const AUDIO_EFFECT_STATE_OFF: AUDIO_EFFECT_STATE = 0i32; +pub const AUDIO_EFFECT_STATE_ON: AUDIO_EFFECT_STATE = 1i32; +pub const AUDIO_SYSTEMEFFECTS_PROPERTYSTORE_TYPE_DEFAULT: AUDIO_SYSTEMEFFECTS_PROPERTYSTORE_TYPE = 0i32; +pub const AUDIO_SYSTEMEFFECTS_PROPERTYSTORE_TYPE_ENUM_COUNT: AUDIO_SYSTEMEFFECTS_PROPERTYSTORE_TYPE = 3i32; +pub const AUDIO_SYSTEMEFFECTS_PROPERTYSTORE_TYPE_USER: AUDIO_SYSTEMEFFECTS_PROPERTYSTORE_TYPE = 1i32; +pub const AUDIO_SYSTEMEFFECTS_PROPERTYSTORE_TYPE_VOLATILE: AUDIO_SYSTEMEFFECTS_PROPERTYSTORE_TYPE = 2i32; +pub const AUXCAPS_AUXIN: u32 = 2u32; +pub const AUXCAPS_CDAUDIO: u32 = 1u32; +pub const AUXCAPS_LRVOLUME: u32 = 2u32; +pub const AUXCAPS_VOLUME: u32 = 1u32; +pub const AudioCategory_Alerts: AUDIO_STREAM_CATEGORY = 4i32; +pub const AudioCategory_Communications: AUDIO_STREAM_CATEGORY = 3i32; +pub const AudioCategory_FarFieldSpeech: AUDIO_STREAM_CATEGORY = 12i32; +pub const AudioCategory_ForegroundOnlyMedia: AUDIO_STREAM_CATEGORY = 1i32; +pub const AudioCategory_GameChat: AUDIO_STREAM_CATEGORY = 8i32; +pub const AudioCategory_GameEffects: AUDIO_STREAM_CATEGORY = 6i32; +pub const AudioCategory_GameMedia: AUDIO_STREAM_CATEGORY = 7i32; +pub const AudioCategory_Media: AUDIO_STREAM_CATEGORY = 11i32; +pub const AudioCategory_Movie: AUDIO_STREAM_CATEGORY = 10i32; +pub const AudioCategory_Other: AUDIO_STREAM_CATEGORY = 0i32; +pub const AudioCategory_SoundEffects: AUDIO_STREAM_CATEGORY = 5i32; +pub const AudioCategory_Speech: AUDIO_STREAM_CATEGORY = 9i32; +pub const AudioCategory_UniformSpeech: AUDIO_STREAM_CATEGORY = 13i32; +pub const AudioCategory_VoiceTyping: AUDIO_STREAM_CATEGORY = 14i32; +pub const AudioObjectType_BackCenter: AudioObjectType = 131072i32; +pub const AudioObjectType_BackLeft: AudioObjectType = 128i32; +pub const AudioObjectType_BackRight: AudioObjectType = 256i32; +pub const AudioObjectType_BottomBackLeft: AudioObjectType = 32768i32; +pub const AudioObjectType_BottomBackRight: AudioObjectType = 65536i32; +pub const AudioObjectType_BottomFrontLeft: AudioObjectType = 8192i32; +pub const AudioObjectType_BottomFrontRight: AudioObjectType = 16384i32; +pub const AudioObjectType_Dynamic: AudioObjectType = 1i32; +pub const AudioObjectType_FrontCenter: AudioObjectType = 8i32; +pub const AudioObjectType_FrontLeft: AudioObjectType = 2i32; +pub const AudioObjectType_FrontRight: AudioObjectType = 4i32; +pub const AudioObjectType_LowFrequency: AudioObjectType = 16i32; +pub const AudioObjectType_None: AudioObjectType = 0i32; +pub const AudioObjectType_SideLeft: AudioObjectType = 32i32; +pub const AudioObjectType_SideRight: AudioObjectType = 64i32; +pub const AudioObjectType_TopBackLeft: AudioObjectType = 2048i32; +pub const AudioObjectType_TopBackRight: AudioObjectType = 4096i32; +pub const AudioObjectType_TopFrontLeft: AudioObjectType = 512i32; +pub const AudioObjectType_TopFrontRight: AudioObjectType = 1024i32; +pub const AudioSessionStateActive: AudioSessionState = 1i32; +pub const AudioSessionStateExpired: AudioSessionState = 2i32; +pub const AudioSessionStateInactive: AudioSessionState = 0i32; +pub const CALLBACK_EVENT: MIDI_WAVE_OPEN_TYPE = 327680u32; +pub const CALLBACK_FUNCTION: MIDI_WAVE_OPEN_TYPE = 196608u32; +pub const CALLBACK_NULL: MIDI_WAVE_OPEN_TYPE = 0u32; +pub const CALLBACK_TASK: MIDI_WAVE_OPEN_TYPE = 131072u32; +pub const CALLBACK_THREAD: MIDI_WAVE_OPEN_TYPE = 131072u32; +pub const CALLBACK_TYPEMASK: MIDI_WAVE_OPEN_TYPE = 458752u32; +pub const CALLBACK_WINDOW: MIDI_WAVE_OPEN_TYPE = 65536u32; +pub const Connector: PartType = 0i32; +pub const DEVICE_STATEMASK_ALL: u32 = 15u32; +pub const DEVICE_STATE_ACTIVE: u32 = 1u32; +pub const DEVICE_STATE_DISABLED: u32 = 2u32; +pub const DEVICE_STATE_NOTPRESENT: u32 = 4u32; +pub const DEVICE_STATE_UNPLUGGED: u32 = 8u32; +pub const DEVINTERFACE_AUDIO_CAPTURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2eef81be_33fa_4800_9670_1cd474972c3f); +pub const DEVINTERFACE_AUDIO_RENDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe6327cad_dcec_4949_ae8a_991e976a79d2); +pub const DEVINTERFACE_MIDI_INPUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x504be32c_ccf6_4d2c_b73f_6f8b3747e22b); +pub const DEVINTERFACE_MIDI_OUTPUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6dc23320_ab33_4ce4_80d4_bbb3ebbf2814); +pub const DRVM_MAPPER: u32 = 8192u32; +pub const DRVM_MAPPER_STATUS: u32 = 8192u32; +pub const DRV_MAPPER_PREFERRED_INPUT_GET: u32 = 16384u32; +pub const DRV_MAPPER_PREFERRED_OUTPUT_GET: u32 = 16386u32; +pub const DeviceTopology: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1df639d0_5ec1_47aa_9379_828dc1aa8c59); +pub const DigitalAudioDisplayDevice: EndpointFormFactor = 9i32; +pub const DisconnectReasonDeviceRemoval: AudioSessionDisconnectReason = 0i32; +pub const DisconnectReasonExclusiveModeOverride: AudioSessionDisconnectReason = 5i32; +pub const DisconnectReasonFormatChanged: AudioSessionDisconnectReason = 2i32; +pub const DisconnectReasonServerShutdown: AudioSessionDisconnectReason = 1i32; +pub const DisconnectReasonSessionDisconnected: AudioSessionDisconnectReason = 4i32; +pub const DisconnectReasonSessionLogoff: AudioSessionDisconnectReason = 3i32; +pub const EDataFlow_enum_count: EDataFlow = 3i32; +pub const ENDPOINT_FORMAT_RESET_MIX_ONLY: u32 = 1u32; +pub const ENDPOINT_HARDWARE_SUPPORT_METER: u32 = 4u32; +pub const ENDPOINT_HARDWARE_SUPPORT_MUTE: u32 = 2u32; +pub const ENDPOINT_HARDWARE_SUPPORT_VOLUME: u32 = 1u32; +pub const ENDPOINT_SYSFX_DISABLED: u32 = 1u32; +pub const ENDPOINT_SYSFX_ENABLED: u32 = 0u32; +pub const ERole_enum_count: ERole = 3i32; +pub const EVENTCONTEXT_VOLUMESLIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe2c2e9de_09b1_4b04_84e5_07931225ee04); +pub const EndpointFormFactor_enum_count: EndpointFormFactor = 11i32; +pub const FILTERCHOOSE_CUSTOM_VERIFY: u32 = 2u32; +pub const FILTERCHOOSE_FILTERTAG_VERIFY: u32 = 0u32; +pub const FILTERCHOOSE_FILTER_VERIFY: u32 = 1u32; +pub const FILTERCHOOSE_MESSAGE: u32 = 0u32; +pub const FORMATCHOOSE_CUSTOM_VERIFY: u32 = 2u32; +pub const FORMATCHOOSE_FORMATTAG_VERIFY: u32 = 0u32; +pub const FORMATCHOOSE_FORMAT_VERIFY: u32 = 1u32; +pub const FORMATCHOOSE_MESSAGE: u32 = 0u32; +pub const Full: AudioStateMonitorSoundLevel = 2i32; +pub const Handset: EndpointFormFactor = 6i32; +pub const Headphones: EndpointFormFactor = 3i32; +pub const Headset: EndpointFormFactor = 5i32; +pub const In: DataFlow = 0i32; +pub const LineLevel: EndpointFormFactor = 2i32; +pub const Low: AudioStateMonitorSoundLevel = 1i32; +pub const MEVT_COMMENT: u8 = 130u8; +pub const MEVT_F_CALLBACK: i32 = 1073741824i32; +pub const MEVT_F_LONG: i32 = -2147483648i32; +pub const MEVT_F_SHORT: i32 = 0i32; +pub const MEVT_LONGMSG: u8 = 128u8; +pub const MEVT_NOP: u8 = 2u8; +pub const MEVT_SHORTMSG: u8 = 0u8; +pub const MEVT_TEMPO: u8 = 1u8; +pub const MEVT_VERSION: u8 = 132u8; +pub const MHDR_DONE: u32 = 1u32; +pub const MHDR_INQUEUE: u32 = 4u32; +pub const MHDR_ISSTRM: u32 = 8u32; +pub const MHDR_PREPARED: u32 = 2u32; +pub const MIDICAPS_CACHE: u32 = 4u32; +pub const MIDICAPS_LRVOLUME: u32 = 2u32; +pub const MIDICAPS_STREAM: u32 = 8u32; +pub const MIDICAPS_VOLUME: u32 = 1u32; +pub const MIDIERR_BADOPENMODE: u32 = 70u32; +pub const MIDIERR_DONT_CONTINUE: u32 = 71u32; +pub const MIDIERR_INVALIDSETUP: u32 = 69u32; +pub const MIDIERR_LASTERROR: u32 = 71u32; +pub const MIDIERR_NODEVICE: u32 = 68u32; +pub const MIDIERR_NOMAP: u32 = 66u32; +pub const MIDIERR_NOTREADY: u32 = 67u32; +pub const MIDIERR_STILLPLAYING: u32 = 65u32; +pub const MIDIERR_UNPREPARED: u32 = 64u32; +pub const MIDIPATCHSIZE: u32 = 128u32; +pub const MIDIPROP_GET: i32 = 1073741824i32; +pub const MIDIPROP_SET: i32 = -2147483648i32; +pub const MIDIPROP_TEMPO: i32 = 2i32; +pub const MIDIPROP_TIMEDIV: i32 = 1i32; +pub const MIDISTRM_ERROR: i32 = -2i32; +pub const MIDI_CACHE_ALL: u32 = 1u32; +pub const MIDI_CACHE_BESTFIT: u32 = 2u32; +pub const MIDI_CACHE_QUERY: u32 = 3u32; +pub const MIDI_IO_STATUS: MIDI_WAVE_OPEN_TYPE = 32u32; +pub const MIDI_UNCACHE: u32 = 4u32; +pub const MIXERCONTROL_CONTROLF_DISABLED: i32 = -2147483648i32; +pub const MIXERCONTROL_CONTROLF_MULTIPLE: i32 = 2i32; +pub const MIXERCONTROL_CONTROLF_UNIFORM: i32 = 1i32; +pub const MIXERCONTROL_CONTROLTYPE_BASS: u32 = 1342373890u32; +pub const MIXERCONTROL_CONTROLTYPE_BASS_BOOST: u32 = 536945271u32; +pub const MIXERCONTROL_CONTROLTYPE_BOOLEAN: u32 = 536936448u32; +pub const MIXERCONTROL_CONTROLTYPE_BOOLEANMETER: u32 = 268500992u32; +pub const MIXERCONTROL_CONTROLTYPE_BUTTON: u32 = 553713664u32; +pub const MIXERCONTROL_CONTROLTYPE_CUSTOM: u32 = 0u32; +pub const MIXERCONTROL_CONTROLTYPE_DECIBELS: u32 = 805568512u32; +pub const MIXERCONTROL_CONTROLTYPE_EQUALIZER: u32 = 1342373892u32; +pub const MIXERCONTROL_CONTROLTYPE_FADER: u32 = 1342373888u32; +pub const MIXERCONTROL_CONTROLTYPE_LOUDNESS: u32 = 536936452u32; +pub const MIXERCONTROL_CONTROLTYPE_MICROTIME: u32 = 1610809344u32; +pub const MIXERCONTROL_CONTROLTYPE_MILLITIME: u32 = 1627586560u32; +pub const MIXERCONTROL_CONTROLTYPE_MIXER: u32 = 1895890945u32; +pub const MIXERCONTROL_CONTROLTYPE_MONO: u32 = 536936451u32; +pub const MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT: u32 = 1895890944u32; +pub const MIXERCONTROL_CONTROLTYPE_MUTE: u32 = 536936450u32; +pub const MIXERCONTROL_CONTROLTYPE_MUX: u32 = 1879113729u32; +pub const MIXERCONTROL_CONTROLTYPE_ONOFF: u32 = 536936449u32; +pub const MIXERCONTROL_CONTROLTYPE_PAN: u32 = 1073872897u32; +pub const MIXERCONTROL_CONTROLTYPE_PEAKMETER: u32 = 268566529u32; +pub const MIXERCONTROL_CONTROLTYPE_PERCENT: u32 = 805634048u32; +pub const MIXERCONTROL_CONTROLTYPE_QSOUNDPAN: u32 = 1073872898u32; +pub const MIXERCONTROL_CONTROLTYPE_SIGNED: u32 = 805437440u32; +pub const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER: u32 = 268566528u32; +pub const MIXERCONTROL_CONTROLTYPE_SINGLESELECT: u32 = 1879113728u32; +pub const MIXERCONTROL_CONTROLTYPE_SLIDER: u32 = 1073872896u32; +pub const MIXERCONTROL_CONTROLTYPE_STEREOENH: u32 = 536936453u32; +pub const MIXERCONTROL_CONTROLTYPE_TREBLE: u32 = 1342373891u32; +pub const MIXERCONTROL_CONTROLTYPE_UNSIGNED: u32 = 805502976u32; +pub const MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER: u32 = 268632064u32; +pub const MIXERCONTROL_CONTROLTYPE_VOLUME: u32 = 1342373889u32; +pub const MIXERCONTROL_CT_CLASS_CUSTOM: i32 = 0i32; +pub const MIXERCONTROL_CT_CLASS_FADER: i32 = 1342177280i32; +pub const MIXERCONTROL_CT_CLASS_LIST: i32 = 1879048192i32; +pub const MIXERCONTROL_CT_CLASS_MASK: i32 = -268435456i32; +pub const MIXERCONTROL_CT_CLASS_METER: i32 = 268435456i32; +pub const MIXERCONTROL_CT_CLASS_NUMBER: i32 = 805306368i32; +pub const MIXERCONTROL_CT_CLASS_SLIDER: i32 = 1073741824i32; +pub const MIXERCONTROL_CT_CLASS_SWITCH: i32 = 536870912i32; +pub const MIXERCONTROL_CT_CLASS_TIME: i32 = 1610612736i32; +pub const MIXERCONTROL_CT_SC_LIST_MULTIPLE: i32 = 16777216i32; +pub const MIXERCONTROL_CT_SC_LIST_SINGLE: i32 = 0i32; +pub const MIXERCONTROL_CT_SC_METER_POLLED: i32 = 0i32; +pub const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN: i32 = 0i32; +pub const MIXERCONTROL_CT_SC_SWITCH_BUTTON: i32 = 16777216i32; +pub const MIXERCONTROL_CT_SC_TIME_MICROSECS: i32 = 0i32; +pub const MIXERCONTROL_CT_SC_TIME_MILLISECS: i32 = 16777216i32; +pub const MIXERCONTROL_CT_SUBCLASS_MASK: i32 = 251658240i32; +pub const MIXERCONTROL_CT_UNITS_BOOLEAN: i32 = 65536i32; +pub const MIXERCONTROL_CT_UNITS_CUSTOM: i32 = 0i32; +pub const MIXERCONTROL_CT_UNITS_DECIBELS: i32 = 262144i32; +pub const MIXERCONTROL_CT_UNITS_MASK: i32 = 16711680i32; +pub const MIXERCONTROL_CT_UNITS_PERCENT: i32 = 327680i32; +pub const MIXERCONTROL_CT_UNITS_SIGNED: i32 = 131072i32; +pub const MIXERCONTROL_CT_UNITS_UNSIGNED: i32 = 196608i32; +pub const MIXERLINE_COMPONENTTYPE_DST_DIGITAL: MIXERLINE_COMPONENTTYPE = 1u32; +pub const MIXERLINE_COMPONENTTYPE_DST_FIRST: i32 = 0i32; +pub const MIXERLINE_COMPONENTTYPE_DST_HEADPHONES: MIXERLINE_COMPONENTTYPE = 5u32; +pub const MIXERLINE_COMPONENTTYPE_DST_LAST: u32 = 8u32; +pub const MIXERLINE_COMPONENTTYPE_DST_LINE: MIXERLINE_COMPONENTTYPE = 2u32; +pub const MIXERLINE_COMPONENTTYPE_DST_MONITOR: MIXERLINE_COMPONENTTYPE = 3u32; +pub const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS: MIXERLINE_COMPONENTTYPE = 4u32; +pub const MIXERLINE_COMPONENTTYPE_DST_TELEPHONE: MIXERLINE_COMPONENTTYPE = 6u32; +pub const MIXERLINE_COMPONENTTYPE_DST_UNDEFINED: MIXERLINE_COMPONENTTYPE = 0u32; +pub const MIXERLINE_COMPONENTTYPE_DST_VOICEIN: MIXERLINE_COMPONENTTYPE = 8u32; +pub const MIXERLINE_COMPONENTTYPE_DST_WAVEIN: MIXERLINE_COMPONENTTYPE = 7u32; +pub const MIXERLINE_COMPONENTTYPE_SRC_ANALOG: MIXERLINE_COMPONENTTYPE = 4106u32; +pub const MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY: MIXERLINE_COMPONENTTYPE = 4105u32; +pub const MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC: MIXERLINE_COMPONENTTYPE = 4101u32; +pub const MIXERLINE_COMPONENTTYPE_SRC_DIGITAL: MIXERLINE_COMPONENTTYPE = 4097u32; +pub const MIXERLINE_COMPONENTTYPE_SRC_FIRST: i32 = 4096i32; +pub const MIXERLINE_COMPONENTTYPE_SRC_LAST: u32 = 4106u32; +pub const MIXERLINE_COMPONENTTYPE_SRC_LINE: MIXERLINE_COMPONENTTYPE = 4098u32; +pub const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE: MIXERLINE_COMPONENTTYPE = 4099u32; +pub const MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER: MIXERLINE_COMPONENTTYPE = 4103u32; +pub const MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER: MIXERLINE_COMPONENTTYPE = 4100u32; +pub const MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE: MIXERLINE_COMPONENTTYPE = 4102u32; +pub const MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED: MIXERLINE_COMPONENTTYPE = 4096u32; +pub const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT: MIXERLINE_COMPONENTTYPE = 4104u32; +pub const MIXERLINE_LINEF_ACTIVE: i32 = 1i32; +pub const MIXERLINE_LINEF_DISCONNECTED: i32 = 32768i32; +pub const MIXERLINE_LINEF_SOURCE: i32 = -2147483648i32; +pub const MIXERLINE_TARGETTYPE_AUX: u32 = 5u32; +pub const MIXERLINE_TARGETTYPE_MIDIIN: u32 = 4u32; +pub const MIXERLINE_TARGETTYPE_MIDIOUT: u32 = 3u32; +pub const MIXERLINE_TARGETTYPE_UNDEFINED: u32 = 0u32; +pub const MIXERLINE_TARGETTYPE_WAVEIN: u32 = 2u32; +pub const MIXERLINE_TARGETTYPE_WAVEOUT: u32 = 1u32; +pub const MIXERR_INVALCONTROL: u32 = 1025u32; +pub const MIXERR_INVALLINE: u32 = 1024u32; +pub const MIXERR_INVALVALUE: u32 = 1026u32; +pub const MIXERR_LASTERROR: u32 = 1026u32; +pub const MIXER_GETCONTROLDETAILSF_LISTTEXT: i32 = 1i32; +pub const MIXER_GETCONTROLDETAILSF_QUERYMASK: i32 = 15i32; +pub const MIXER_GETCONTROLDETAILSF_VALUE: i32 = 0i32; +pub const MIXER_GETLINECONTROLSF_ALL: i32 = 0i32; +pub const MIXER_GETLINECONTROLSF_ONEBYID: i32 = 1i32; +pub const MIXER_GETLINECONTROLSF_ONEBYTYPE: i32 = 2i32; +pub const MIXER_GETLINECONTROLSF_QUERYMASK: i32 = 15i32; +pub const MIXER_GETLINEINFOF_COMPONENTTYPE: i32 = 3i32; +pub const MIXER_GETLINEINFOF_DESTINATION: i32 = 0i32; +pub const MIXER_GETLINEINFOF_LINEID: i32 = 2i32; +pub const MIXER_GETLINEINFOF_QUERYMASK: i32 = 15i32; +pub const MIXER_GETLINEINFOF_SOURCE: i32 = 1i32; +pub const MIXER_GETLINEINFOF_TARGETTYPE: i32 = 4i32; +pub const MIXER_LONG_NAME_CHARS: u32 = 64u32; +pub const MIXER_OBJECTF_AUX: i32 = 1342177280i32; +pub const MIXER_OBJECTF_HANDLE: i32 = -2147483648i32; +pub const MIXER_OBJECTF_MIDIIN: i32 = 1073741824i32; +pub const MIXER_OBJECTF_MIDIOUT: i32 = 805306368i32; +pub const MIXER_OBJECTF_MIXER: i32 = 0i32; +pub const MIXER_OBJECTF_WAVEIN: i32 = 536870912i32; +pub const MIXER_OBJECTF_WAVEOUT: i32 = 268435456i32; +pub const MIXER_SETCONTROLDETAILSF_CUSTOM: i32 = 1i32; +pub const MIXER_SETCONTROLDETAILSF_QUERYMASK: i32 = 15i32; +pub const MIXER_SETCONTROLDETAILSF_VALUE: i32 = 0i32; +pub const MIXER_SHORT_NAME_CHARS: u32 = 16u32; +pub const MMDeviceEnumerator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbcde0395_e52f_467c_8e3d_c4579291692e); +pub const MM_ACM_FILTERCHOOSE: u32 = 32768u32; +pub const MM_ACM_FORMATCHOOSE: u32 = 32768u32; +pub const MOD_FMSYNTH: u32 = 4u32; +pub const MOD_MAPPER: u32 = 5u32; +pub const MOD_MIDIPORT: u32 = 1u32; +pub const MOD_SQSYNTH: u32 = 3u32; +pub const MOD_SWSYNTH: u32 = 7u32; +pub const MOD_SYNTH: u32 = 2u32; +pub const MOD_WAVETABLE: u32 = 6u32; +pub const Microphone: EndpointFormFactor = 4i32; +pub const Muted: AudioStateMonitorSoundLevel = 0i32; +pub const Out: DataFlow = 1i32; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpointLogo_IconEffects: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf1ab780d_2010_4ed3_a3a6_8b87f0f0c476), pid: 0 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpointLogo_IconPath: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf1ab780d_2010_4ed3_a3a6_8b87f0f0c476), pid: 1 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpointSettings_LaunchContract: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x14242002_0320_4de4_9555_a7d82b73c286), pid: 1 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpointSettings_MenuText: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x14242002_0320_4de4_9555_a7d82b73c286), pid: 0 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpoint_Association: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1da5d803_d492_4edd_8c23_e0c0ffee7f0e), pid: 2 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpoint_ControlPanelPageProvider: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1da5d803_d492_4edd_8c23_e0c0ffee7f0e), pid: 1 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpoint_Default_VolumeInDb: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1da5d803_d492_4edd_8c23_e0c0ffee7f0e), pid: 9 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpoint_Disable_SysFx: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1da5d803_d492_4edd_8c23_e0c0ffee7f0e), pid: 5 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpoint_FormFactor: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1da5d803_d492_4edd_8c23_e0c0ffee7f0e), pid: 0 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpoint_FullRangeSpeakers: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1da5d803_d492_4edd_8c23_e0c0ffee7f0e), pid: 6 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpoint_GUID: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1da5d803_d492_4edd_8c23_e0c0ffee7f0e), pid: 4 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpoint_JackSubType: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1da5d803_d492_4edd_8c23_e0c0ffee7f0e), pid: 8 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpoint_PhysicalSpeakers: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1da5d803_d492_4edd_8c23_e0c0ffee7f0e), pid: 3 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEndpoint_Supports_EventDriven_Mode: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1da5d803_d492_4edd_8c23_e0c0ffee7f0e), pid: 7 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEngine_DeviceFormat: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xf19f064d_082c_4e27_bc73_6882a1bb8e4c), pid: 0 }; +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub const PKEY_AudioEngine_OEMFormat: super::super::UI::Shell::PropertiesSystem::PROPERTYKEY = super::super::UI::Shell::PropertiesSystem::PROPERTYKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xe4870e26_3cc5_4cd2_ba46_ca0a9a70ed04), pid: 3 }; +pub const PROCESS_LOOPBACK_MODE_EXCLUDE_TARGET_PROCESS_TREE: PROCESS_LOOPBACK_MODE = 1i32; +pub const PROCESS_LOOPBACK_MODE_INCLUDE_TARGET_PROCESS_TREE: PROCESS_LOOPBACK_MODE = 0i32; +pub const RemoteNetworkDevice: EndpointFormFactor = 0i32; +pub const SND_ALIAS: SND_FLAGS = 65536u32; +pub const SND_ALIAS_ID: SND_FLAGS = 1114112u32; +pub const SND_ALIAS_START: u32 = 0u32; +pub const SND_APPLICATION: SND_FLAGS = 128u32; +pub const SND_ASYNC: SND_FLAGS = 1u32; +pub const SND_FILENAME: SND_FLAGS = 131072u32; +pub const SND_LOOP: SND_FLAGS = 8u32; +pub const SND_MEMORY: SND_FLAGS = 4u32; +pub const SND_NODEFAULT: SND_FLAGS = 2u32; +pub const SND_NOSTOP: SND_FLAGS = 16u32; +pub const SND_NOWAIT: SND_FLAGS = 8192u32; +pub const SND_PURGE: SND_FLAGS = 64u32; +pub const SND_RESOURCE: SND_FLAGS = 262148u32; +pub const SND_RING: i32 = 1048576i32; +pub const SND_SENTRY: SND_FLAGS = 524288u32; +pub const SND_SYNC: SND_FLAGS = 0u32; +pub const SND_SYSTEM: SND_FLAGS = 2097152u32; +pub const SPATIAL_AUDIO_POSITION: u32 = 200u32; +pub const SPATIAL_AUDIO_STANDARD_COMMANDS_START: u32 = 200u32; +pub const SPATIAL_AUDIO_STREAM_OPTIONS_NONE: SPATIAL_AUDIO_STREAM_OPTIONS = 0i32; +pub const SPATIAL_AUDIO_STREAM_OPTIONS_OFFLOAD: SPATIAL_AUDIO_STREAM_OPTIONS = 1i32; +pub const SPDIF: EndpointFormFactor = 8i32; +pub const SPTLAUDCLNT_E_DESTROYED: ::windows_sys::core::HRESULT = -2004287232i32; +pub const SPTLAUDCLNT_E_ERRORS_IN_OBJECT_CALLS: ::windows_sys::core::HRESULT = -2004287227i32; +pub const SPTLAUDCLNT_E_INTERNAL: ::windows_sys::core::HRESULT = -2004287219i32; +pub const SPTLAUDCLNT_E_INVALID_LICENSE: ::windows_sys::core::HRESULT = -2004287224i32; +pub const SPTLAUDCLNT_E_METADATA_FORMAT_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2004287226i32; +pub const SPTLAUDCLNT_E_NO_MORE_OBJECTS: ::windows_sys::core::HRESULT = -2004287229i32; +pub const SPTLAUDCLNT_E_OBJECT_ALREADY_ACTIVE: ::windows_sys::core::HRESULT = -2004287220i32; +pub const SPTLAUDCLNT_E_OUT_OF_ORDER: ::windows_sys::core::HRESULT = -2004287231i32; +pub const SPTLAUDCLNT_E_PROPERTY_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2004287228i32; +pub const SPTLAUDCLNT_E_RESOURCES_INVALIDATED: ::windows_sys::core::HRESULT = -2004287230i32; +pub const SPTLAUDCLNT_E_STATIC_OBJECT_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2004287221i32; +pub const SPTLAUDCLNT_E_STREAM_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2004287225i32; +pub const SPTLAUDCLNT_E_STREAM_NOT_STOPPED: ::windows_sys::core::HRESULT = -2004287222i32; +pub const SPTLAUD_MD_CLNT_E_ATTACH_FAILED_INTERNAL_BUFFER: ::windows_sys::core::HRESULT = -2004286956i32; +pub const SPTLAUD_MD_CLNT_E_BUFFER_ALREADY_ATTACHED: ::windows_sys::core::HRESULT = -2004286969i32; +pub const SPTLAUD_MD_CLNT_E_BUFFER_NOT_ATTACHED: ::windows_sys::core::HRESULT = -2004286968i32; +pub const SPTLAUD_MD_CLNT_E_BUFFER_STILL_ATTACHED: ::windows_sys::core::HRESULT = -2004286940i32; +pub const SPTLAUD_MD_CLNT_E_COMMAND_ALREADY_WRITTEN: ::windows_sys::core::HRESULT = -2004286942i32; +pub const SPTLAUD_MD_CLNT_E_COMMAND_NOT_FOUND: ::windows_sys::core::HRESULT = -2004286976i32; +pub const SPTLAUD_MD_CLNT_E_DETACH_FAILED_INTERNAL_BUFFER: ::windows_sys::core::HRESULT = -2004286955i32; +pub const SPTLAUD_MD_CLNT_E_FORMAT_MISMATCH: ::windows_sys::core::HRESULT = -2004286941i32; +pub const SPTLAUD_MD_CLNT_E_FRAMECOUNT_OUT_OF_RANGE: ::windows_sys::core::HRESULT = -2004286967i32; +pub const SPTLAUD_MD_CLNT_E_FRAMEOFFSET_OUT_OF_RANGE: ::windows_sys::core::HRESULT = -2004286952i32; +pub const SPTLAUD_MD_CLNT_E_INVALID_ARGS: ::windows_sys::core::HRESULT = -2004286974i32; +pub const SPTLAUD_MD_CLNT_E_ITEMS_ALREADY_OPEN: ::windows_sys::core::HRESULT = -2004286957i32; +pub const SPTLAUD_MD_CLNT_E_ITEMS_LOCKED_FOR_WRITING: ::windows_sys::core::HRESULT = -2004286939i32; +pub const SPTLAUD_MD_CLNT_E_ITEM_COPY_OVERFLOW: ::windows_sys::core::HRESULT = -2004286959i32; +pub const SPTLAUD_MD_CLNT_E_ITEM_MUST_HAVE_COMMANDS: ::windows_sys::core::HRESULT = -2004286951i32; +pub const SPTLAUD_MD_CLNT_E_MEMORY_BOUNDS: ::windows_sys::core::HRESULT = -2004286971i32; +pub const SPTLAUD_MD_CLNT_E_METADATA_FORMAT_NOT_FOUND: ::windows_sys::core::HRESULT = -2004286973i32; +pub const SPTLAUD_MD_CLNT_E_NO_BUFFER_ATTACHED: ::windows_sys::core::HRESULT = -2004286954i32; +pub const SPTLAUD_MD_CLNT_E_NO_ITEMOFFSET_WRITTEN: ::windows_sys::core::HRESULT = -2004286944i32; +pub const SPTLAUD_MD_CLNT_E_NO_ITEMS_FOUND: ::windows_sys::core::HRESULT = -2004286960i32; +pub const SPTLAUD_MD_CLNT_E_NO_ITEMS_OPEN: ::windows_sys::core::HRESULT = -2004286958i32; +pub const SPTLAUD_MD_CLNT_E_NO_ITEMS_WRITTEN: ::windows_sys::core::HRESULT = -2004286943i32; +pub const SPTLAUD_MD_CLNT_E_NO_MORE_COMMANDS: ::windows_sys::core::HRESULT = -2004286970i32; +pub const SPTLAUD_MD_CLNT_E_NO_MORE_ITEMS: ::windows_sys::core::HRESULT = -2004286953i32; +pub const SPTLAUD_MD_CLNT_E_OBJECT_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -2004286975i32; +pub const SPTLAUD_MD_CLNT_E_VALUE_BUFFER_INCORRECT_SIZE: ::windows_sys::core::HRESULT = -2004286972i32; +pub const SpatialAudioHrtfDirectivity_Cardioid: SpatialAudioHrtfDirectivityType = 1i32; +pub const SpatialAudioHrtfDirectivity_Cone: SpatialAudioHrtfDirectivityType = 2i32; +pub const SpatialAudioHrtfDirectivity_OmniDirectional: SpatialAudioHrtfDirectivityType = 0i32; +pub const SpatialAudioHrtfDistanceDecay_CustomDecay: SpatialAudioHrtfDistanceDecayType = 1i32; +pub const SpatialAudioHrtfDistanceDecay_NaturalDecay: SpatialAudioHrtfDistanceDecayType = 0i32; +pub const SpatialAudioHrtfEnvironment_Average: SpatialAudioHrtfEnvironmentType = 4i32; +pub const SpatialAudioHrtfEnvironment_Large: SpatialAudioHrtfEnvironmentType = 2i32; +pub const SpatialAudioHrtfEnvironment_Medium: SpatialAudioHrtfEnvironmentType = 1i32; +pub const SpatialAudioHrtfEnvironment_Outdoors: SpatialAudioHrtfEnvironmentType = 3i32; +pub const SpatialAudioHrtfEnvironment_Small: SpatialAudioHrtfEnvironmentType = 0i32; +pub const SpatialAudioMetadataCopy_Append: SpatialAudioMetadataCopyMode = 1i32; +pub const SpatialAudioMetadataCopy_AppendMergeWithFirst: SpatialAudioMetadataCopyMode = 3i32; +pub const SpatialAudioMetadataCopy_AppendMergeWithLast: SpatialAudioMetadataCopyMode = 2i32; +pub const SpatialAudioMetadataCopy_Overwrite: SpatialAudioMetadataCopyMode = 0i32; +pub const SpatialAudioMetadataWriterOverflow_Fail: SpatialAudioMetadataWriterOverflowMode = 0i32; +pub const SpatialAudioMetadataWriterOverflow_MergeWithLast: SpatialAudioMetadataWriterOverflowMode = 2i32; +pub const SpatialAudioMetadataWriterOverflow_MergeWithNew: SpatialAudioMetadataWriterOverflowMode = 1i32; +pub const Speakers: EndpointFormFactor = 1i32; +pub const Subunit: PartType = 1i32; +pub const UnknownDigitalPassthrough: EndpointFormFactor = 7i32; +pub const UnknownFormFactor: EndpointFormFactor = 10i32; +pub const VIRTUAL_AUDIO_DEVICE_PROCESS_LOOPBACK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VAD\\Process_Loopback"); +pub const WAVECAPS_LRVOLUME: u32 = 8u32; +pub const WAVECAPS_PITCH: u32 = 1u32; +pub const WAVECAPS_PLAYBACKRATE: u32 = 2u32; +pub const WAVECAPS_SAMPLEACCURATE: u32 = 32u32; +pub const WAVECAPS_SYNC: u32 = 16u32; +pub const WAVECAPS_VOLUME: u32 = 4u32; +pub const WAVEIN_MAPPER_STATUS_DEVICE: u32 = 0u32; +pub const WAVEIN_MAPPER_STATUS_FORMAT: u32 = 2u32; +pub const WAVEIN_MAPPER_STATUS_MAPPED: u32 = 1u32; +pub const WAVEOUT_MAPPER_STATUS_DEVICE: u32 = 0u32; +pub const WAVEOUT_MAPPER_STATUS_FORMAT: u32 = 2u32; +pub const WAVEOUT_MAPPER_STATUS_MAPPED: u32 = 1u32; +pub const WAVERR_BADFORMAT: u32 = 32u32; +pub const WAVERR_LASTERROR: u32 = 35u32; +pub const WAVERR_STILLPLAYING: u32 = 33u32; +pub const WAVERR_SYNC: u32 = 35u32; +pub const WAVERR_UNPREPARED: u32 = 34u32; +pub const WAVE_ALLOWSYNC: MIDI_WAVE_OPEN_TYPE = 2u32; +pub const WAVE_FORMAT_1M08: u32 = 1u32; +pub const WAVE_FORMAT_1M16: u32 = 4u32; +pub const WAVE_FORMAT_1S08: u32 = 2u32; +pub const WAVE_FORMAT_1S16: u32 = 8u32; +pub const WAVE_FORMAT_2M08: u32 = 16u32; +pub const WAVE_FORMAT_2M16: u32 = 64u32; +pub const WAVE_FORMAT_2S08: u32 = 32u32; +pub const WAVE_FORMAT_2S16: u32 = 128u32; +pub const WAVE_FORMAT_44M08: u32 = 256u32; +pub const WAVE_FORMAT_44M16: u32 = 1024u32; +pub const WAVE_FORMAT_44S08: u32 = 512u32; +pub const WAVE_FORMAT_44S16: u32 = 2048u32; +pub const WAVE_FORMAT_48M08: u32 = 4096u32; +pub const WAVE_FORMAT_48M16: u32 = 16384u32; +pub const WAVE_FORMAT_48S08: u32 = 8192u32; +pub const WAVE_FORMAT_48S16: u32 = 32768u32; +pub const WAVE_FORMAT_4M08: u32 = 256u32; +pub const WAVE_FORMAT_4M16: u32 = 1024u32; +pub const WAVE_FORMAT_4S08: u32 = 512u32; +pub const WAVE_FORMAT_4S16: u32 = 2048u32; +pub const WAVE_FORMAT_96M08: u32 = 65536u32; +pub const WAVE_FORMAT_96M16: u32 = 262144u32; +pub const WAVE_FORMAT_96S08: u32 = 131072u32; +pub const WAVE_FORMAT_96S16: u32 = 524288u32; +pub const WAVE_FORMAT_DIRECT: MIDI_WAVE_OPEN_TYPE = 8u32; +pub const WAVE_FORMAT_DIRECT_QUERY: MIDI_WAVE_OPEN_TYPE = 9u32; +pub const WAVE_FORMAT_PCM: u32 = 1u32; +pub const WAVE_FORMAT_QUERY: MIDI_WAVE_OPEN_TYPE = 1u32; +pub const WAVE_INVALIDFORMAT: u32 = 0u32; +pub const WAVE_MAPPED: MIDI_WAVE_OPEN_TYPE = 4u32; +pub const WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE: MIDI_WAVE_OPEN_TYPE = 16u32; +pub const WAVE_MAPPER: u32 = 4294967295u32; +pub const WHDR_BEGINLOOP: u32 = 4u32; +pub const WHDR_DONE: u32 = 1u32; +pub const WHDR_ENDLOOP: u32 = 8u32; +pub const WHDR_INQUEUE: u32 = 16u32; +pub const WHDR_PREPARED: u32 = 2u32; +pub const WIDM_MAPPER_STATUS: u32 = 8192u32; +pub const WODM_MAPPER_STATUS: u32 = 8192u32; +pub const eAll: EDataFlow = 2i32; +pub const eCapture: EDataFlow = 1i32; +pub const eCommunications: ERole = 2i32; +pub const eConsole: ERole = 0i32; +pub const eMultimedia: ERole = 1i32; +pub const eRender: EDataFlow = 0i32; +pub type AMBISONICS_CHANNEL_ORDERING = i32; +pub type AMBISONICS_NORMALIZATION = i32; +pub type AMBISONICS_TYPE = i32; +pub type AUDCLNT_SHAREMODE = i32; +pub type AUDCLNT_STREAMOPTIONS = i32; +pub type AUDIOCLIENT_ACTIVATION_TYPE = i32; +pub type AUDIO_DUCKING_OPTIONS = i32; +pub type AUDIO_EFFECT_STATE = i32; +pub type AUDIO_STREAM_CATEGORY = i32; +pub type AUDIO_SYSTEMEFFECTS_PROPERTYSTORE_TYPE = i32; +pub type AudioObjectType = i32; +pub type AudioSessionDisconnectReason = i32; +pub type AudioSessionState = i32; +pub type AudioStateMonitorSoundLevel = i32; +#[repr(transparent)] +pub struct ConnectorType(pub i32); +impl ConnectorType { + pub const Unknown_Connector: Self = Self(0i32); + pub const Physical_Internal: Self = Self(1i32); + pub const Physical_External: Self = Self(2i32); + pub const Software_IO: Self = Self(3i32); + pub const Software_Fixed: Self = Self(4i32); + pub const Network: Self = Self(5i32); +} +impl ::core::marker::Copy for ConnectorType {} +impl ::core::clone::Clone for ConnectorType { + fn clone(&self) -> Self { + *self + } +} +pub type DataFlow = i32; +pub type EDataFlow = i32; +pub type ERole = i32; +pub type EndpointFormFactor = i32; +pub type MIDI_WAVE_OPEN_TYPE = u32; +pub type MIXERLINE_COMPONENTTYPE = u32; +pub type PROCESS_LOOPBACK_MODE = i32; +pub type PartType = i32; +pub type SND_FLAGS = u32; +pub type SPATIAL_AUDIO_STREAM_OPTIONS = i32; +pub type SpatialAudioHrtfDirectivityType = i32; +pub type SpatialAudioHrtfDistanceDecayType = i32; +pub type SpatialAudioHrtfEnvironmentType = i32; +pub type SpatialAudioMetadataCopyMode = i32; +pub type SpatialAudioMetadataWriterOverflowMode = i32; +pub type _AUDCLNT_BUFFERFLAGS = i32; +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct ACMDRIVERDETAILSA { + pub cbStruct: u32, + pub fccType: u32, + pub fccComp: u32, + pub wMid: u16, + pub wPid: u16, + pub vdwACM: u32, + pub vdwDriver: u32, + pub fdwSupport: u32, + pub cFormatTags: u32, + pub cFilterTags: u32, + pub hicon: super::super::UI::WindowsAndMessaging::HICON, + pub szShortName: [u8; 32], + pub szLongName: [u8; 128], + pub szCopyright: [u8; 80], + pub szLicensing: [u8; 128], + pub szFeatures: [u8; 512], +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for ACMDRIVERDETAILSA {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for ACMDRIVERDETAILSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct ACMDRIVERDETAILSW { + pub cbStruct: u32, + pub fccType: u32, + pub fccComp: u32, + pub wMid: u16, + pub wPid: u16, + pub vdwACM: u32, + pub vdwDriver: u32, + pub fdwSupport: u32, + pub cFormatTags: u32, + pub cFilterTags: u32, + pub hicon: super::super::UI::WindowsAndMessaging::HICON, + pub szShortName: [u16; 32], + pub szLongName: [u16; 128], + pub szCopyright: [u16; 80], + pub szLicensing: [u16; 128], + pub szFeatures: [u16; 512], +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for ACMDRIVERDETAILSW {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for ACMDRIVERDETAILSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACMDRVFORMATSUGGEST { + pub cbStruct: u32, + pub fdwSuggest: u32, + pub pwfxSrc: *mut WAVEFORMATEX, + pub cbwfxSrc: u32, + pub pwfxDst: *mut WAVEFORMATEX, + pub cbwfxDst: u32, +} +impl ::core::marker::Copy for ACMDRVFORMATSUGGEST {} +impl ::core::clone::Clone for ACMDRVFORMATSUGGEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACMDRVOPENDESCA { + pub cbStruct: u32, + pub fccType: u32, + pub fccComp: u32, + pub dwVersion: u32, + pub dwFlags: u32, + pub dwError: u32, + pub pszSectionName: ::windows_sys::core::PCSTR, + pub pszAliasName: ::windows_sys::core::PCSTR, + pub dnDevNode: u32, +} +impl ::core::marker::Copy for ACMDRVOPENDESCA {} +impl ::core::clone::Clone for ACMDRVOPENDESCA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACMDRVOPENDESCW { + pub cbStruct: u32, + pub fccType: u32, + pub fccComp: u32, + pub dwVersion: u32, + pub dwFlags: u32, + pub dwError: u32, + pub pszSectionName: ::windows_sys::core::PCWSTR, + pub pszAliasName: ::windows_sys::core::PCWSTR, + pub dnDevNode: u32, +} +impl ::core::marker::Copy for ACMDRVOPENDESCW {} +impl ::core::clone::Clone for ACMDRVOPENDESCW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACMDRVSTREAMHEADER { + pub cbStruct: u32, + pub fdwStatus: u32, + pub dwUser: usize, + pub pbSrc: *mut u8, + pub cbSrcLength: u32, + pub cbSrcLengthUsed: u32, + pub dwSrcUser: usize, + pub pbDst: *mut u8, + pub cbDstLength: u32, + pub cbDstLengthUsed: u32, + pub dwDstUser: usize, + pub fdwConvert: u32, + pub padshNext: *mut ACMDRVSTREAMHEADER, + pub fdwDriver: u32, + pub dwDriver: usize, + pub fdwPrepared: u32, + pub dwPrepared: usize, + pub pbPreparedSrc: *mut u8, + pub cbPreparedSrcLength: u32, + pub pbPreparedDst: *mut u8, + pub cbPreparedDstLength: u32, +} +impl ::core::marker::Copy for ACMDRVSTREAMHEADER {} +impl ::core::clone::Clone for ACMDRVSTREAMHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACMDRVSTREAMINSTANCE { + pub cbStruct: u32, + pub pwfxSrc: *mut WAVEFORMATEX, + pub pwfxDst: *mut WAVEFORMATEX, + pub pwfltr: *mut WAVEFILTER, + pub dwCallback: usize, + pub dwInstance: usize, + pub fdwOpen: u32, + pub fdwDriver: u32, + pub dwDriver: usize, + pub has: HACMSTREAM, +} +impl ::core::marker::Copy for ACMDRVSTREAMINSTANCE {} +impl ::core::clone::Clone for ACMDRVSTREAMINSTANCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACMDRVSTREAMSIZE { + pub cbStruct: u32, + pub fdwSize: u32, + pub cbSrcLength: u32, + pub cbDstLength: u32, +} +impl ::core::marker::Copy for ACMDRVSTREAMSIZE {} +impl ::core::clone::Clone for ACMDRVSTREAMSIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ACMFILTERCHOOSEA { + pub cbStruct: u32, + pub fdwStyle: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub pwfltr: *mut WAVEFILTER, + pub cbwfltr: u32, + pub pszTitle: ::windows_sys::core::PCSTR, + pub szFilterTag: [u8; 48], + pub szFilter: [u8; 128], + pub pszName: ::windows_sys::core::PSTR, + pub cchName: u32, + pub fdwEnum: u32, + pub pwfltrEnum: *mut WAVEFILTER, + pub hInstance: super::super::Foundation::HINSTANCE, + pub pszTemplateName: ::windows_sys::core::PCSTR, + pub lCustData: super::super::Foundation::LPARAM, + pub pfnHook: ACMFILTERCHOOSEHOOKPROCA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ACMFILTERCHOOSEA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ACMFILTERCHOOSEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ACMFILTERCHOOSEW { + pub cbStruct: u32, + pub fdwStyle: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub pwfltr: *mut WAVEFILTER, + pub cbwfltr: u32, + pub pszTitle: ::windows_sys::core::PCWSTR, + pub szFilterTag: [u16; 48], + pub szFilter: [u16; 128], + pub pszName: ::windows_sys::core::PWSTR, + pub cchName: u32, + pub fdwEnum: u32, + pub pwfltrEnum: *mut WAVEFILTER, + pub hInstance: super::super::Foundation::HINSTANCE, + pub pszTemplateName: ::windows_sys::core::PCWSTR, + pub lCustData: super::super::Foundation::LPARAM, + pub pfnHook: ACMFILTERCHOOSEHOOKPROCW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ACMFILTERCHOOSEW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ACMFILTERCHOOSEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACMFILTERDETAILSA { + pub cbStruct: u32, + pub dwFilterIndex: u32, + pub dwFilterTag: u32, + pub fdwSupport: u32, + pub pwfltr: *mut WAVEFILTER, + pub cbwfltr: u32, + pub szFilter: [u8; 128], +} +impl ::core::marker::Copy for ACMFILTERDETAILSA {} +impl ::core::clone::Clone for ACMFILTERDETAILSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACMFILTERDETAILSW { + pub cbStruct: u32, + pub dwFilterIndex: u32, + pub dwFilterTag: u32, + pub fdwSupport: u32, + pub pwfltr: *mut WAVEFILTER, + pub cbwfltr: u32, + pub szFilter: [u16; 128], +} +impl ::core::marker::Copy for ACMFILTERDETAILSW {} +impl ::core::clone::Clone for ACMFILTERDETAILSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACMFILTERTAGDETAILSA { + pub cbStruct: u32, + pub dwFilterTagIndex: u32, + pub dwFilterTag: u32, + pub cbFilterSize: u32, + pub fdwSupport: u32, + pub cStandardFilters: u32, + pub szFilterTag: [u8; 48], +} +impl ::core::marker::Copy for ACMFILTERTAGDETAILSA {} +impl ::core::clone::Clone for ACMFILTERTAGDETAILSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACMFILTERTAGDETAILSW { + pub cbStruct: u32, + pub dwFilterTagIndex: u32, + pub dwFilterTag: u32, + pub cbFilterSize: u32, + pub fdwSupport: u32, + pub cStandardFilters: u32, + pub szFilterTag: [u16; 48], +} +impl ::core::marker::Copy for ACMFILTERTAGDETAILSW {} +impl ::core::clone::Clone for ACMFILTERTAGDETAILSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ACMFORMATCHOOSEA { + pub cbStruct: u32, + pub fdwStyle: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub pwfx: *mut WAVEFORMATEX, + pub cbwfx: u32, + pub pszTitle: ::windows_sys::core::PCSTR, + pub szFormatTag: [u8; 48], + pub szFormat: [u8; 128], + pub pszName: ::windows_sys::core::PSTR, + pub cchName: u32, + pub fdwEnum: u32, + pub pwfxEnum: *mut WAVEFORMATEX, + pub hInstance: super::super::Foundation::HINSTANCE, + pub pszTemplateName: ::windows_sys::core::PCSTR, + pub lCustData: super::super::Foundation::LPARAM, + pub pfnHook: ACMFORMATCHOOSEHOOKPROCA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ACMFORMATCHOOSEA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ACMFORMATCHOOSEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ACMFORMATCHOOSEW { + pub cbStruct: u32, + pub fdwStyle: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub pwfx: *mut WAVEFORMATEX, + pub cbwfx: u32, + pub pszTitle: ::windows_sys::core::PCWSTR, + pub szFormatTag: [u16; 48], + pub szFormat: [u16; 128], + pub pszName: ::windows_sys::core::PWSTR, + pub cchName: u32, + pub fdwEnum: u32, + pub pwfxEnum: *mut WAVEFORMATEX, + pub hInstance: super::super::Foundation::HINSTANCE, + pub pszTemplateName: ::windows_sys::core::PCWSTR, + pub lCustData: super::super::Foundation::LPARAM, + pub pfnHook: ACMFORMATCHOOSEHOOKPROCW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ACMFORMATCHOOSEW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ACMFORMATCHOOSEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACMFORMATDETAILSA { + pub cbStruct: u32, + pub dwFormatIndex: u32, + pub dwFormatTag: u32, + pub fdwSupport: u32, + pub pwfx: *mut WAVEFORMATEX, + pub cbwfx: u32, + pub szFormat: [u8; 128], +} +impl ::core::marker::Copy for ACMFORMATDETAILSA {} +impl ::core::clone::Clone for ACMFORMATDETAILSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACMFORMATTAGDETAILSA { + pub cbStruct: u32, + pub dwFormatTagIndex: u32, + pub dwFormatTag: u32, + pub cbFormatSize: u32, + pub fdwSupport: u32, + pub cStandardFormats: u32, + pub szFormatTag: [u8; 48], +} +impl ::core::marker::Copy for ACMFORMATTAGDETAILSA {} +impl ::core::clone::Clone for ACMFORMATTAGDETAILSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACMFORMATTAGDETAILSW { + pub cbStruct: u32, + pub dwFormatTagIndex: u32, + pub dwFormatTag: u32, + pub cbFormatSize: u32, + pub fdwSupport: u32, + pub cStandardFormats: u32, + pub szFormatTag: [u16; 48], +} +impl ::core::marker::Copy for ACMFORMATTAGDETAILSW {} +impl ::core::clone::Clone for ACMFORMATTAGDETAILSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct ACMSTREAMHEADER { + pub cbStruct: u32, + pub fdwStatus: u32, + pub dwUser: usize, + pub pbSrc: *mut u8, + pub cbSrcLength: u32, + pub cbSrcLengthUsed: u32, + pub dwSrcUser: usize, + pub pbDst: *mut u8, + pub cbDstLength: u32, + pub cbDstLengthUsed: u32, + pub dwDstUser: usize, + pub dwReservedDriver: [u32; 15], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for ACMSTREAMHEADER {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for ACMSTREAMHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct ACMSTREAMHEADER { + pub cbStruct: u32, + pub fdwStatus: u32, + pub dwUser: usize, + pub pbSrc: *mut u8, + pub cbSrcLength: u32, + pub cbSrcLengthUsed: u32, + pub dwSrcUser: usize, + pub pbDst: *mut u8, + pub cbDstLength: u32, + pub cbDstLengthUsed: u32, + pub dwDstUser: usize, + pub dwReservedDriver: [u32; 10], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for ACMSTREAMHEADER {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for ACMSTREAMHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AMBISONICS_PARAMS { + pub u32Size: u32, + pub u32Version: u32, + pub u32Type: AMBISONICS_TYPE, + pub u32ChannelOrdering: AMBISONICS_CHANNEL_ORDERING, + pub u32Normalization: AMBISONICS_NORMALIZATION, + pub u32Order: u32, + pub u32NumChannels: u32, + pub pu32ChannelMap: *mut u32, +} +impl ::core::marker::Copy for AMBISONICS_PARAMS {} +impl ::core::clone::Clone for AMBISONICS_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUDIOCLIENT_ACTIVATION_PARAMS { + pub ActivationType: AUDIOCLIENT_ACTIVATION_TYPE, + pub Anonymous: AUDIOCLIENT_ACTIVATION_PARAMS_0, +} +impl ::core::marker::Copy for AUDIOCLIENT_ACTIVATION_PARAMS {} +impl ::core::clone::Clone for AUDIOCLIENT_ACTIVATION_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union AUDIOCLIENT_ACTIVATION_PARAMS_0 { + pub ProcessLoopbackParams: AUDIOCLIENT_PROCESS_LOOPBACK_PARAMS, +} +impl ::core::marker::Copy for AUDIOCLIENT_ACTIVATION_PARAMS_0 {} +impl ::core::clone::Clone for AUDIOCLIENT_ACTIVATION_PARAMS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUDIOCLIENT_PROCESS_LOOPBACK_PARAMS { + pub TargetProcessId: u32, + pub ProcessLoopbackMode: PROCESS_LOOPBACK_MODE, +} +impl ::core::marker::Copy for AUDIOCLIENT_PROCESS_LOOPBACK_PARAMS {} +impl ::core::clone::Clone for AUDIOCLIENT_PROCESS_LOOPBACK_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AUDIO_EFFECT { + pub id: ::windows_sys::core::GUID, + pub canSetState: super::super::Foundation::BOOL, + pub state: AUDIO_EFFECT_STATE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AUDIO_EFFECT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AUDIO_EFFECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AUDIO_VOLUME_NOTIFICATION_DATA { + pub guidEventContext: ::windows_sys::core::GUID, + pub bMuted: super::super::Foundation::BOOL, + pub fMasterVolume: f32, + pub nChannels: u32, + pub afChannelVolumes: [f32; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AUDIO_VOLUME_NOTIFICATION_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AUDIO_VOLUME_NOTIFICATION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct AUXCAPS2A { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u8; 32], + pub wTechnology: u16, + pub wReserved1: u16, + pub dwSupport: u32, + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for AUXCAPS2A {} +impl ::core::clone::Clone for AUXCAPS2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct AUXCAPS2W { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u16; 32], + pub wTechnology: u16, + pub wReserved1: u16, + pub dwSupport: u32, + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for AUXCAPS2W {} +impl ::core::clone::Clone for AUXCAPS2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct AUXCAPSA { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u8; 32], + pub wTechnology: u16, + pub wReserved1: u16, + pub dwSupport: u32, +} +impl ::core::marker::Copy for AUXCAPSA {} +impl ::core::clone::Clone for AUXCAPSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct AUXCAPSW { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u16; 32], + pub wTechnology: u16, + pub wReserved1: u16, + pub dwSupport: u32, +} +impl ::core::marker::Copy for AUXCAPSW {} +impl ::core::clone::Clone for AUXCAPSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AudioClient3ActivationParams { + pub tracingContextId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for AudioClient3ActivationParams {} +impl ::core::clone::Clone for AudioClient3ActivationParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AudioClientProperties { + pub cbSize: u32, + pub bIsOffload: super::super::Foundation::BOOL, + pub eCategory: AUDIO_STREAM_CATEGORY, + pub Options: AUDCLNT_STREAMOPTIONS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AudioClientProperties {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AudioClientProperties { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AudioExtensionParams { + pub AddPageParam: super::super::Foundation::LPARAM, + pub pEndpoint: IMMDevice, + pub pPnpInterface: IMMDevice, + pub pPnpDevnode: IMMDevice, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AudioExtensionParams {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AudioExtensionParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIRECTX_AUDIO_ACTIVATION_PARAMS { + pub cbDirectXAudioActivationParams: u32, + pub guidAudioSession: ::windows_sys::core::GUID, + pub dwAudioStreamFlags: u32, +} +impl ::core::marker::Copy for DIRECTX_AUDIO_ACTIVATION_PARAMS {} +impl ::core::clone::Clone for DIRECTX_AUDIO_ACTIVATION_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ECHOWAVEFILTER { + pub wfltr: WAVEFILTER, + pub dwVolume: u32, + pub dwDelay: u32, +} +impl ::core::marker::Copy for ECHOWAVEFILTER {} +impl ::core::clone::Clone for ECHOWAVEFILTER { + fn clone(&self) -> Self { + *self + } +} +pub type HACMDRIVER = isize; +pub type HACMDRIVERID = isize; +pub type HACMOBJ = isize; +pub type HACMSTREAM = isize; +pub type HMIDI = isize; +pub type HMIDIIN = isize; +pub type HMIDIOUT = isize; +pub type HMIDISTRM = isize; +pub type HMIXER = isize; +pub type HMIXEROBJ = isize; +pub type HWAVE = isize; +pub type HWAVEIN = isize; +pub type HWAVEOUT = isize; +#[repr(C, packed(1))] +pub struct MIDIEVENT { + pub dwDeltaTime: u32, + pub dwStreamID: u32, + pub dwEvent: u32, + pub dwParms: [u32; 1], +} +impl ::core::marker::Copy for MIDIEVENT {} +impl ::core::clone::Clone for MIDIEVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIDIHDR { + pub lpData: ::windows_sys::core::PSTR, + pub dwBufferLength: u32, + pub dwBytesRecorded: u32, + pub dwUser: usize, + pub dwFlags: u32, + pub lpNext: *mut MIDIHDR, + pub reserved: usize, + pub dwOffset: u32, + pub dwReserved: [usize; 8], +} +impl ::core::marker::Copy for MIDIHDR {} +impl ::core::clone::Clone for MIDIHDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIDIINCAPS2A { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u8; 32], + pub dwSupport: u32, + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for MIDIINCAPS2A {} +impl ::core::clone::Clone for MIDIINCAPS2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIDIINCAPS2W { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u16; 32], + pub dwSupport: u32, + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for MIDIINCAPS2W {} +impl ::core::clone::Clone for MIDIINCAPS2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIDIINCAPSA { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u8; 32], + pub dwSupport: u32, +} +impl ::core::marker::Copy for MIDIINCAPSA {} +impl ::core::clone::Clone for MIDIINCAPSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIDIINCAPSW { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u16; 32], + pub dwSupport: u32, +} +impl ::core::marker::Copy for MIDIINCAPSW {} +impl ::core::clone::Clone for MIDIINCAPSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIDIOUTCAPS2A { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u8; 32], + pub wTechnology: u16, + pub wVoices: u16, + pub wNotes: u16, + pub wChannelMask: u16, + pub dwSupport: u32, + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for MIDIOUTCAPS2A {} +impl ::core::clone::Clone for MIDIOUTCAPS2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIDIOUTCAPS2W { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u16; 32], + pub wTechnology: u16, + pub wVoices: u16, + pub wNotes: u16, + pub wChannelMask: u16, + pub dwSupport: u32, + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for MIDIOUTCAPS2W {} +impl ::core::clone::Clone for MIDIOUTCAPS2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIDIOUTCAPSA { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u8; 32], + pub wTechnology: u16, + pub wVoices: u16, + pub wNotes: u16, + pub wChannelMask: u16, + pub dwSupport: u32, +} +impl ::core::marker::Copy for MIDIOUTCAPSA {} +impl ::core::clone::Clone for MIDIOUTCAPSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIDIOUTCAPSW { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u16; 32], + pub wTechnology: u16, + pub wVoices: u16, + pub wNotes: u16, + pub wChannelMask: u16, + pub dwSupport: u32, +} +impl ::core::marker::Copy for MIDIOUTCAPSW {} +impl ::core::clone::Clone for MIDIOUTCAPSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIDIPROPTEMPO { + pub cbStruct: u32, + pub dwTempo: u32, +} +impl ::core::marker::Copy for MIDIPROPTEMPO {} +impl ::core::clone::Clone for MIDIPROPTEMPO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIDIPROPTIMEDIV { + pub cbStruct: u32, + pub dwTimeDiv: u32, +} +impl ::core::marker::Copy for MIDIPROPTIMEDIV {} +impl ::core::clone::Clone for MIDIPROPTIMEDIV { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIDISTRMBUFFVER { + pub dwVersion: u32, + pub dwMid: u32, + pub dwOEMVersion: u32, +} +impl ::core::marker::Copy for MIDISTRMBUFFVER {} +impl ::core::clone::Clone for MIDISTRMBUFFVER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCAPS2A { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u8; 32], + pub fdwSupport: u32, + pub cDestinations: u32, + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for MIXERCAPS2A {} +impl ::core::clone::Clone for MIXERCAPS2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCAPS2W { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u16; 32], + pub fdwSupport: u32, + pub cDestinations: u32, + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for MIXERCAPS2W {} +impl ::core::clone::Clone for MIXERCAPS2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCAPSA { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u8; 32], + pub fdwSupport: u32, + pub cDestinations: u32, +} +impl ::core::marker::Copy for MIXERCAPSA {} +impl ::core::clone::Clone for MIXERCAPSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCAPSW { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u16; 32], + pub fdwSupport: u32, + pub cDestinations: u32, +} +impl ::core::marker::Copy for MIXERCAPSW {} +impl ::core::clone::Clone for MIXERCAPSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCONTROLA { + pub cbStruct: u32, + pub dwControlID: u32, + pub dwControlType: u32, + pub fdwControl: u32, + pub cMultipleItems: u32, + pub szShortName: [u8; 16], + pub szName: [u8; 64], + pub Bounds: MIXERCONTROLA_0, + pub Metrics: MIXERCONTROLA_1, +} +impl ::core::marker::Copy for MIXERCONTROLA {} +impl ::core::clone::Clone for MIXERCONTROLA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union MIXERCONTROLA_0 { + pub Anonymous1: MIXERCONTROLA_0_0, + pub Anonymous2: MIXERCONTROLA_0_1, + pub dwReserved: [u32; 6], +} +impl ::core::marker::Copy for MIXERCONTROLA_0 {} +impl ::core::clone::Clone for MIXERCONTROLA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCONTROLA_0_0 { + pub lMinimum: i32, + pub lMaximum: i32, +} +impl ::core::marker::Copy for MIXERCONTROLA_0_0 {} +impl ::core::clone::Clone for MIXERCONTROLA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCONTROLA_0_1 { + pub dwMinimum: u32, + pub dwMaximum: u32, +} +impl ::core::marker::Copy for MIXERCONTROLA_0_1 {} +impl ::core::clone::Clone for MIXERCONTROLA_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union MIXERCONTROLA_1 { + pub cSteps: u32, + pub cbCustomData: u32, + pub dwReserved: [u32; 6], +} +impl ::core::marker::Copy for MIXERCONTROLA_1 {} +impl ::core::clone::Clone for MIXERCONTROLA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MIXERCONTROLDETAILS { + pub cbStruct: u32, + pub dwControlID: u32, + pub cChannels: u32, + pub Anonymous: MIXERCONTROLDETAILS_0, + pub cbDetails: u32, + pub paDetails: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MIXERCONTROLDETAILS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MIXERCONTROLDETAILS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union MIXERCONTROLDETAILS_0 { + pub hwndOwner: super::super::Foundation::HWND, + pub cMultipleItems: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MIXERCONTROLDETAILS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MIXERCONTROLDETAILS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCONTROLDETAILS_BOOLEAN { + pub fValue: i32, +} +impl ::core::marker::Copy for MIXERCONTROLDETAILS_BOOLEAN {} +impl ::core::clone::Clone for MIXERCONTROLDETAILS_BOOLEAN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCONTROLDETAILS_LISTTEXTA { + pub dwParam1: u32, + pub dwParam2: u32, + pub szName: [u8; 64], +} +impl ::core::marker::Copy for MIXERCONTROLDETAILS_LISTTEXTA {} +impl ::core::clone::Clone for MIXERCONTROLDETAILS_LISTTEXTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCONTROLDETAILS_LISTTEXTW { + pub dwParam1: u32, + pub dwParam2: u32, + pub szName: [u16; 64], +} +impl ::core::marker::Copy for MIXERCONTROLDETAILS_LISTTEXTW {} +impl ::core::clone::Clone for MIXERCONTROLDETAILS_LISTTEXTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCONTROLDETAILS_SIGNED { + pub lValue: i32, +} +impl ::core::marker::Copy for MIXERCONTROLDETAILS_SIGNED {} +impl ::core::clone::Clone for MIXERCONTROLDETAILS_SIGNED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCONTROLDETAILS_UNSIGNED { + pub dwValue: u32, +} +impl ::core::marker::Copy for MIXERCONTROLDETAILS_UNSIGNED {} +impl ::core::clone::Clone for MIXERCONTROLDETAILS_UNSIGNED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCONTROLW { + pub cbStruct: u32, + pub dwControlID: u32, + pub dwControlType: u32, + pub fdwControl: u32, + pub cMultipleItems: u32, + pub szShortName: [u16; 16], + pub szName: [u16; 64], + pub Bounds: MIXERCONTROLW_0, + pub Metrics: MIXERCONTROLW_1, +} +impl ::core::marker::Copy for MIXERCONTROLW {} +impl ::core::clone::Clone for MIXERCONTROLW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union MIXERCONTROLW_0 { + pub Anonymous1: MIXERCONTROLW_0_0, + pub Anonymous2: MIXERCONTROLW_0_1, + pub dwReserved: [u32; 6], +} +impl ::core::marker::Copy for MIXERCONTROLW_0 {} +impl ::core::clone::Clone for MIXERCONTROLW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCONTROLW_0_0 { + pub lMinimum: i32, + pub lMaximum: i32, +} +impl ::core::marker::Copy for MIXERCONTROLW_0_0 {} +impl ::core::clone::Clone for MIXERCONTROLW_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERCONTROLW_0_1 { + pub dwMinimum: u32, + pub dwMaximum: u32, +} +impl ::core::marker::Copy for MIXERCONTROLW_0_1 {} +impl ::core::clone::Clone for MIXERCONTROLW_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union MIXERCONTROLW_1 { + pub cSteps: u32, + pub cbCustomData: u32, + pub dwReserved: [u32; 6], +} +impl ::core::marker::Copy for MIXERCONTROLW_1 {} +impl ::core::clone::Clone for MIXERCONTROLW_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERLINEA { + pub cbStruct: u32, + pub dwDestination: u32, + pub dwSource: u32, + pub dwLineID: u32, + pub fdwLine: u32, + pub dwUser: usize, + pub dwComponentType: MIXERLINE_COMPONENTTYPE, + pub cChannels: u32, + pub cConnections: u32, + pub cControls: u32, + pub szShortName: [u8; 16], + pub szName: [u8; 64], + pub Target: MIXERLINEA_0, +} +impl ::core::marker::Copy for MIXERLINEA {} +impl ::core::clone::Clone for MIXERLINEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERLINEA_0 { + pub dwType: u32, + pub dwDeviceID: u32, + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u8; 32], +} +impl ::core::marker::Copy for MIXERLINEA_0 {} +impl ::core::clone::Clone for MIXERLINEA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERLINECONTROLSA { + pub cbStruct: u32, + pub dwLineID: u32, + pub Anonymous: MIXERLINECONTROLSA_0, + pub cControls: u32, + pub cbmxctrl: u32, + pub pamxctrl: *mut MIXERCONTROLA, +} +impl ::core::marker::Copy for MIXERLINECONTROLSA {} +impl ::core::clone::Clone for MIXERLINECONTROLSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union MIXERLINECONTROLSA_0 { + pub dwControlID: u32, + pub dwControlType: u32, +} +impl ::core::marker::Copy for MIXERLINECONTROLSA_0 {} +impl ::core::clone::Clone for MIXERLINECONTROLSA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERLINECONTROLSW { + pub cbStruct: u32, + pub dwLineID: u32, + pub Anonymous: MIXERLINECONTROLSW_0, + pub cControls: u32, + pub cbmxctrl: u32, + pub pamxctrl: *mut MIXERCONTROLW, +} +impl ::core::marker::Copy for MIXERLINECONTROLSW {} +impl ::core::clone::Clone for MIXERLINECONTROLSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union MIXERLINECONTROLSW_0 { + pub dwControlID: u32, + pub dwControlType: u32, +} +impl ::core::marker::Copy for MIXERLINECONTROLSW_0 {} +impl ::core::clone::Clone for MIXERLINECONTROLSW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERLINEW { + pub cbStruct: u32, + pub dwDestination: u32, + pub dwSource: u32, + pub dwLineID: u32, + pub fdwLine: u32, + pub dwUser: usize, + pub dwComponentType: MIXERLINE_COMPONENTTYPE, + pub cChannels: u32, + pub cConnections: u32, + pub cControls: u32, + pub szShortName: [u16; 16], + pub szName: [u16; 64], + pub Target: MIXERLINEW_0, +} +impl ::core::marker::Copy for MIXERLINEW {} +impl ::core::clone::Clone for MIXERLINEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIXERLINEW_0 { + pub dwType: u32, + pub dwDeviceID: u32, + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u16; 32], +} +impl ::core::marker::Copy for MIXERLINEW_0 {} +impl ::core::clone::Clone for MIXERLINEW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PCMWAVEFORMAT { + pub wf: WAVEFORMAT, + pub wBitsPerSample: u16, +} +impl ::core::marker::Copy for PCMWAVEFORMAT {} +impl ::core::clone::Clone for PCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SpatialAudioClientActivationParams { + pub tracingContextId: ::windows_sys::core::GUID, + pub appId: ::windows_sys::core::GUID, + pub majorVersion: i32, + pub minorVersion1: i32, + pub minorVersion2: i32, + pub minorVersion3: i32, +} +impl ::core::marker::Copy for SpatialAudioClientActivationParams {} +impl ::core::clone::Clone for SpatialAudioClientActivationParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SpatialAudioHrtfActivationParams { + pub ObjectFormat: *const WAVEFORMATEX, + pub StaticObjectTypeMask: AudioObjectType, + pub MinDynamicObjectCount: u32, + pub MaxDynamicObjectCount: u32, + pub Category: AUDIO_STREAM_CATEGORY, + pub EventHandle: super::super::Foundation::HANDLE, + pub NotifyObject: ISpatialAudioObjectRenderStreamNotify, + pub DistanceDecay: *mut SpatialAudioHrtfDistanceDecay, + pub Directivity: *mut SpatialAudioHrtfDirectivityUnion, + pub Environment: *mut SpatialAudioHrtfEnvironmentType, + pub Orientation: *mut f32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SpatialAudioHrtfActivationParams {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SpatialAudioHrtfActivationParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SpatialAudioHrtfActivationParams2 { + pub ObjectFormat: *const WAVEFORMATEX, + pub StaticObjectTypeMask: AudioObjectType, + pub MinDynamicObjectCount: u32, + pub MaxDynamicObjectCount: u32, + pub Category: AUDIO_STREAM_CATEGORY, + pub EventHandle: super::super::Foundation::HANDLE, + pub NotifyObject: ISpatialAudioObjectRenderStreamNotify, + pub DistanceDecay: *mut SpatialAudioHrtfDistanceDecay, + pub Directivity: *mut SpatialAudioHrtfDirectivityUnion, + pub Environment: *mut SpatialAudioHrtfEnvironmentType, + pub Orientation: *mut f32, + pub Options: SPATIAL_AUDIO_STREAM_OPTIONS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SpatialAudioHrtfActivationParams2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SpatialAudioHrtfActivationParams2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SpatialAudioHrtfDirectivity { + pub Type: SpatialAudioHrtfDirectivityType, + pub Scaling: f32, +} +impl ::core::marker::Copy for SpatialAudioHrtfDirectivity {} +impl ::core::clone::Clone for SpatialAudioHrtfDirectivity { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SpatialAudioHrtfDirectivityCardioid { + pub directivity: SpatialAudioHrtfDirectivity, + pub Order: f32, +} +impl ::core::marker::Copy for SpatialAudioHrtfDirectivityCardioid {} +impl ::core::clone::Clone for SpatialAudioHrtfDirectivityCardioid { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SpatialAudioHrtfDirectivityCone { + pub directivity: SpatialAudioHrtfDirectivity, + pub InnerAngle: f32, + pub OuterAngle: f32, +} +impl ::core::marker::Copy for SpatialAudioHrtfDirectivityCone {} +impl ::core::clone::Clone for SpatialAudioHrtfDirectivityCone { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SpatialAudioHrtfDirectivityUnion { + pub Cone: SpatialAudioHrtfDirectivityCone, + pub Cardiod: SpatialAudioHrtfDirectivityCardioid, + pub Omni: SpatialAudioHrtfDirectivity, +} +impl ::core::marker::Copy for SpatialAudioHrtfDirectivityUnion {} +impl ::core::clone::Clone for SpatialAudioHrtfDirectivityUnion { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SpatialAudioHrtfDistanceDecay { + pub Type: SpatialAudioHrtfDistanceDecayType, + pub MaxGain: f32, + pub MinGain: f32, + pub UnityGainDistance: f32, + pub CutoffDistance: f32, +} +impl ::core::marker::Copy for SpatialAudioHrtfDistanceDecay {} +impl ::core::clone::Clone for SpatialAudioHrtfDistanceDecay { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SpatialAudioMetadataItemsInfo { + pub FrameCount: u16, + pub ItemCount: u16, + pub MaxItemCount: u16, + pub MaxValueBufferLength: u32, +} +impl ::core::marker::Copy for SpatialAudioMetadataItemsInfo {} +impl ::core::clone::Clone for SpatialAudioMetadataItemsInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SpatialAudioObjectRenderStreamActivationParams { + pub ObjectFormat: *const WAVEFORMATEX, + pub StaticObjectTypeMask: AudioObjectType, + pub MinDynamicObjectCount: u32, + pub MaxDynamicObjectCount: u32, + pub Category: AUDIO_STREAM_CATEGORY, + pub EventHandle: super::super::Foundation::HANDLE, + pub NotifyObject: ISpatialAudioObjectRenderStreamNotify, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SpatialAudioObjectRenderStreamActivationParams {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SpatialAudioObjectRenderStreamActivationParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SpatialAudioObjectRenderStreamActivationParams2 { + pub ObjectFormat: *const WAVEFORMATEX, + pub StaticObjectTypeMask: AudioObjectType, + pub MinDynamicObjectCount: u32, + pub MaxDynamicObjectCount: u32, + pub Category: AUDIO_STREAM_CATEGORY, + pub EventHandle: super::super::Foundation::HANDLE, + pub NotifyObject: ISpatialAudioObjectRenderStreamNotify, + pub Options: SPATIAL_AUDIO_STREAM_OPTIONS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SpatialAudioObjectRenderStreamActivationParams2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SpatialAudioObjectRenderStreamActivationParams2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct SpatialAudioObjectRenderStreamForMetadataActivationParams { + pub ObjectFormat: *const WAVEFORMATEX, + pub StaticObjectTypeMask: AudioObjectType, + pub MinDynamicObjectCount: u32, + pub MaxDynamicObjectCount: u32, + pub Category: AUDIO_STREAM_CATEGORY, + pub EventHandle: super::super::Foundation::HANDLE, + pub MetadataFormatId: ::windows_sys::core::GUID, + pub MaxMetadataItemCount: u16, + pub MetadataActivationParams: *const super::super::System::Com::StructuredStorage::PROPVARIANT, + pub NotifyObject: ISpatialAudioObjectRenderStreamNotify, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for SpatialAudioObjectRenderStreamForMetadataActivationParams {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for SpatialAudioObjectRenderStreamForMetadataActivationParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct SpatialAudioObjectRenderStreamForMetadataActivationParams2 { + pub ObjectFormat: *const WAVEFORMATEX, + pub StaticObjectTypeMask: AudioObjectType, + pub MinDynamicObjectCount: u32, + pub MaxDynamicObjectCount: u32, + pub Category: AUDIO_STREAM_CATEGORY, + pub EventHandle: super::super::Foundation::HANDLE, + pub MetadataFormatId: ::windows_sys::core::GUID, + pub MaxMetadataItemCount: u32, + pub MetadataActivationParams: *const super::super::System::Com::StructuredStorage::PROPVARIANT, + pub NotifyObject: ISpatialAudioObjectRenderStreamNotify, + pub Options: SPATIAL_AUDIO_STREAM_OPTIONS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for SpatialAudioObjectRenderStreamForMetadataActivationParams2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for SpatialAudioObjectRenderStreamForMetadataActivationParams2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct VOLUMEWAVEFILTER { + pub wfltr: WAVEFILTER, + pub dwVolume: u32, +} +impl ::core::marker::Copy for VOLUMEWAVEFILTER {} +impl ::core::clone::Clone for VOLUMEWAVEFILTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WAVEFILTER { + pub cbStruct: u32, + pub dwFilterTag: u32, + pub fdwFilter: u32, + pub dwReserved: [u32; 5], +} +impl ::core::marker::Copy for WAVEFILTER {} +impl ::core::clone::Clone for WAVEFILTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WAVEFORMAT { + pub wFormatTag: u16, + pub nChannels: u16, + pub nSamplesPerSec: u32, + pub nAvgBytesPerSec: u32, + pub nBlockAlign: u16, +} +impl ::core::marker::Copy for WAVEFORMAT {} +impl ::core::clone::Clone for WAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WAVEFORMATEX { + pub wFormatTag: u16, + pub nChannels: u16, + pub nSamplesPerSec: u32, + pub nAvgBytesPerSec: u32, + pub nBlockAlign: u16, + pub wBitsPerSample: u16, + pub cbSize: u16, +} +impl ::core::marker::Copy for WAVEFORMATEX {} +impl ::core::clone::Clone for WAVEFORMATEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WAVEFORMATEXTENSIBLE { + pub Format: WAVEFORMATEX, + pub Samples: WAVEFORMATEXTENSIBLE_0, + pub dwChannelMask: u32, + pub SubFormat: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for WAVEFORMATEXTENSIBLE {} +impl ::core::clone::Clone for WAVEFORMATEXTENSIBLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WAVEFORMATEXTENSIBLE_0 { + pub wValidBitsPerSample: u16, + pub wSamplesPerBlock: u16, + pub wReserved: u16, +} +impl ::core::marker::Copy for WAVEFORMATEXTENSIBLE_0 {} +impl ::core::clone::Clone for WAVEFORMATEXTENSIBLE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WAVEHDR { + pub lpData: ::windows_sys::core::PSTR, + pub dwBufferLength: u32, + pub dwBytesRecorded: u32, + pub dwUser: usize, + pub dwFlags: u32, + pub dwLoops: u32, + pub lpNext: *mut WAVEHDR, + pub reserved: usize, +} +impl ::core::marker::Copy for WAVEHDR {} +impl ::core::clone::Clone for WAVEHDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WAVEINCAPS2A { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u8; 32], + pub dwFormats: u32, + pub wChannels: u16, + pub wReserved1: u16, + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for WAVEINCAPS2A {} +impl ::core::clone::Clone for WAVEINCAPS2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WAVEINCAPS2W { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u16; 32], + pub dwFormats: u32, + pub wChannels: u16, + pub wReserved1: u16, + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for WAVEINCAPS2W {} +impl ::core::clone::Clone for WAVEINCAPS2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WAVEINCAPSA { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u8; 32], + pub dwFormats: u32, + pub wChannels: u16, + pub wReserved1: u16, +} +impl ::core::marker::Copy for WAVEINCAPSA {} +impl ::core::clone::Clone for WAVEINCAPSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WAVEINCAPSW { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u16; 32], + pub dwFormats: u32, + pub wChannels: u16, + pub wReserved1: u16, +} +impl ::core::marker::Copy for WAVEINCAPSW {} +impl ::core::clone::Clone for WAVEINCAPSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WAVEOUTCAPS2A { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u8; 32], + pub dwFormats: u32, + pub wChannels: u16, + pub wReserved1: u16, + pub dwSupport: u32, + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for WAVEOUTCAPS2A {} +impl ::core::clone::Clone for WAVEOUTCAPS2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WAVEOUTCAPS2W { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u16; 32], + pub dwFormats: u32, + pub wChannels: u16, + pub wReserved1: u16, + pub dwSupport: u32, + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for WAVEOUTCAPS2W {} +impl ::core::clone::Clone for WAVEOUTCAPS2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WAVEOUTCAPSA { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u8; 32], + pub dwFormats: u32, + pub wChannels: u16, + pub wReserved1: u16, + pub dwSupport: u32, +} +impl ::core::marker::Copy for WAVEOUTCAPSA {} +impl ::core::clone::Clone for WAVEOUTCAPSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WAVEOUTCAPSW { + pub wMid: u16, + pub wPid: u16, + pub vDriverVersion: u32, + pub szPname: [u16; 32], + pub dwFormats: u32, + pub wChannels: u16, + pub wReserved1: u16, + pub dwSupport: u32, +} +impl ::core::marker::Copy for WAVEOUTCAPSW {} +impl ::core::clone::Clone for WAVEOUTCAPSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct tACMFORMATDETAILSW { + pub cbStruct: u32, + pub dwFormatIndex: u32, + pub dwFormatTag: u32, + pub fdwSupport: u32, + pub pwfx: *mut WAVEFORMATEX, + pub cbwfx: u32, + pub szFormat: [u16; 128], +} +impl ::core::marker::Copy for tACMFORMATDETAILSW {} +impl ::core::clone::Clone for tACMFORMATDETAILSW { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ACMDRIVERENUMCB = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ACMFILTERCHOOSEHOOKPROCA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ACMFILTERCHOOSEHOOKPROCW = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ACMFILTERENUMCBA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ACMFILTERENUMCBW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ACMFILTERTAGENUMCBA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ACMFILTERTAGENUMCBW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ACMFORMATCHOOSEHOOKPROCA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ACMFORMATCHOOSEHOOKPROCW = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ACMFORMATENUMCBA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ACMFORMATENUMCBW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ACMFORMATTAGENUMCBA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ACMFORMATTAGENUMCBW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPACMDRIVERPROC = ::core::option::Option super::super::Foundation::LRESULT>; +#[doc = "Required features: `\"Win32_Media_Multimedia\"`"] +#[cfg(feature = "Win32_Media_Multimedia")] +pub type LPMIDICALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Media_Multimedia\"`"] +#[cfg(feature = "Win32_Media_Multimedia")] +pub type LPWAVECALLBACK = ::core::option::Option ()>; +pub type PAudioStateMonitorCallback = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Media/DxMediaObjects/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/DxMediaObjects/mod.rs new file mode 100644 index 000000000..5d5e502c5 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/DxMediaObjects/mod.rs @@ -0,0 +1,125 @@ +::windows_targets::link!("msdmo.dll" "system" fn DMOEnum(guidcategory : *const ::windows_sys::core::GUID, dwflags : u32, cintypes : u32, pintypes : *const DMO_PARTIAL_MEDIATYPE, couttypes : u32, pouttypes : *const DMO_PARTIAL_MEDIATYPE, ppenum : *mut IEnumDMO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdmo.dll" "system" fn DMOGetName(clsiddmo : *const ::windows_sys::core::GUID, szname : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdmo.dll" "system" fn DMOGetTypes(clsiddmo : *const ::windows_sys::core::GUID, ulinputtypesrequested : u32, pulinputtypessupplied : *mut u32, pinputtypes : *mut DMO_PARTIAL_MEDIATYPE, uloutputtypesrequested : u32, puloutputtypessupplied : *mut u32, poutputtypes : *mut DMO_PARTIAL_MEDIATYPE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdmo.dll" "system" fn DMORegister(szname : ::windows_sys::core::PCWSTR, clsiddmo : *const ::windows_sys::core::GUID, guidcategory : *const ::windows_sys::core::GUID, dwflags : u32, cintypes : u32, pintypes : *const DMO_PARTIAL_MEDIATYPE, couttypes : u32, pouttypes : *const DMO_PARTIAL_MEDIATYPE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msdmo.dll" "system" fn DMOUnregister(clsiddmo : *const ::windows_sys::core::GUID, guidcategory : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdmo.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoCopyMediaType(pmtdest : *mut DMO_MEDIA_TYPE, pmtsrc : *const DMO_MEDIA_TYPE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdmo.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoCreateMediaType(ppmt : *mut *mut DMO_MEDIA_TYPE, cbformat : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdmo.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoDeleteMediaType(pmt : *mut DMO_MEDIA_TYPE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdmo.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoDuplicateMediaType(ppmtdest : *mut *mut DMO_MEDIA_TYPE, pmtsrc : *const DMO_MEDIA_TYPE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdmo.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoFreeMediaType(pmt : *mut DMO_MEDIA_TYPE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdmo.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoInitMediaType(pmt : *mut DMO_MEDIA_TYPE, cbformat : u32) -> ::windows_sys::core::HRESULT); +pub type IDMOQualityControl = *mut ::core::ffi::c_void; +pub type IDMOVideoOutputOptimizations = *mut ::core::ffi::c_void; +pub type IEnumDMO = *mut ::core::ffi::c_void; +pub type IMediaBuffer = *mut ::core::ffi::c_void; +pub type IMediaObject = *mut ::core::ffi::c_void; +pub type IMediaObjectInPlace = *mut ::core::ffi::c_void; +pub const DMOCATEGORY_ACOUSTIC_ECHO_CANCEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbf963d80_c559_11d0_8a2b_00a0c9255ac1); +pub const DMOCATEGORY_AGC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe88c9ba0_c557_11d0_8a2b_00a0c9255ac1); +pub const DMOCATEGORY_AUDIO_CAPTURE_EFFECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf665aaba_3e09_4920_aa5f_219811148f09); +pub const DMOCATEGORY_AUDIO_DECODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57f2db8b_e6bb_4513_9d43_dcd2a6593125); +pub const DMOCATEGORY_AUDIO_EFFECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf3602b3f_0592_48df_a4cd_674721e7ebeb); +pub const DMOCATEGORY_AUDIO_ENCODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33d9a761_90c8_11d0_bd43_00a0c911ce86); +pub const DMOCATEGORY_AUDIO_NOISE_SUPPRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe07f903f_62fd_4e60_8cdd_dea7236665b5); +pub const DMOCATEGORY_VIDEO_DECODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4a69b442_28be_4991_969c_b500adf5d8a8); +pub const DMOCATEGORY_VIDEO_EFFECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd990ee14_776c_4723_be46_3da2f56f10b9); +pub const DMOCATEGORY_VIDEO_ENCODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33d9a760_90c8_11d0_bd43_00a0c911ce86); +pub const DMO_ENUMF_INCLUDE_KEYED: DMO_ENUM_FLAGS = 1i32; +pub const DMO_E_INVALIDSTREAMINDEX: ::windows_sys::core::HRESULT = -2147220991i32; +pub const DMO_E_INVALIDTYPE: ::windows_sys::core::HRESULT = -2147220990i32; +pub const DMO_E_NOTACCEPTING: ::windows_sys::core::HRESULT = -2147220988i32; +pub const DMO_E_NO_MORE_ITEMS: ::windows_sys::core::HRESULT = -2147220986i32; +pub const DMO_E_TYPE_NOT_ACCEPTED: ::windows_sys::core::HRESULT = -2147220987i32; +pub const DMO_E_TYPE_NOT_SET: ::windows_sys::core::HRESULT = -2147220989i32; +pub const DMO_INPLACE_NORMAL: _DMO_INPLACE_PROCESS_FLAGS = 0i32; +pub const DMO_INPLACE_ZERO: _DMO_INPLACE_PROCESS_FLAGS = 1i32; +pub const DMO_INPUT_DATA_BUFFERF_DISCONTINUITY: _DMO_INPUT_DATA_BUFFER_FLAGS = 8i32; +pub const DMO_INPUT_DATA_BUFFERF_SYNCPOINT: _DMO_INPUT_DATA_BUFFER_FLAGS = 1i32; +pub const DMO_INPUT_DATA_BUFFERF_TIME: _DMO_INPUT_DATA_BUFFER_FLAGS = 2i32; +pub const DMO_INPUT_DATA_BUFFERF_TIMELENGTH: _DMO_INPUT_DATA_BUFFER_FLAGS = 4i32; +pub const DMO_INPUT_STATUSF_ACCEPT_DATA: _DMO_INPUT_STATUS_FLAGS = 1i32; +pub const DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE: _DMO_INPUT_STREAM_INFO_FLAGS = 4i32; +pub const DMO_INPUT_STREAMF_HOLDS_BUFFERS: _DMO_INPUT_STREAM_INFO_FLAGS = 8i32; +pub const DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER: _DMO_INPUT_STREAM_INFO_FLAGS = 2i32; +pub const DMO_INPUT_STREAMF_WHOLE_SAMPLES: _DMO_INPUT_STREAM_INFO_FLAGS = 1i32; +pub const DMO_OUTPUT_DATA_BUFFERF_DISCONTINUITY: _DMO_OUTPUT_DATA_BUFFER_FLAGS = 8i32; +pub const DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE: _DMO_OUTPUT_DATA_BUFFER_FLAGS = 16777216i32; +pub const DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT: _DMO_OUTPUT_DATA_BUFFER_FLAGS = 1i32; +pub const DMO_OUTPUT_DATA_BUFFERF_TIME: _DMO_OUTPUT_DATA_BUFFER_FLAGS = 2i32; +pub const DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH: _DMO_OUTPUT_DATA_BUFFER_FLAGS = 4i32; +pub const DMO_OUTPUT_STREAMF_DISCARDABLE: _DMO_OUTPUT_STREAM_INFO_FLAGS = 8i32; +pub const DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE: _DMO_OUTPUT_STREAM_INFO_FLAGS = 4i32; +pub const DMO_OUTPUT_STREAMF_OPTIONAL: _DMO_OUTPUT_STREAM_INFO_FLAGS = 16i32; +pub const DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER: _DMO_OUTPUT_STREAM_INFO_FLAGS = 2i32; +pub const DMO_OUTPUT_STREAMF_WHOLE_SAMPLES: _DMO_OUTPUT_STREAM_INFO_FLAGS = 1i32; +pub const DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER: _DMO_PROCESS_OUTPUT_FLAGS = 1i32; +pub const DMO_QUALITY_STATUS_ENABLED: _DMO_QUALITY_STATUS_FLAGS = 1i32; +pub const DMO_REGISTERF_IS_KEYED: DMO_REGISTER_FLAGS = 1i32; +pub const DMO_SET_TYPEF_CLEAR: _DMO_SET_TYPE_FLAGS = 2i32; +pub const DMO_SET_TYPEF_TEST_ONLY: _DMO_SET_TYPE_FLAGS = 1i32; +pub const DMO_VOSF_NEEDS_PREVIOUS_SAMPLE: _DMO_VIDEO_OUTPUT_STREAM_FLAGS = 1i32; +pub type DMO_ENUM_FLAGS = i32; +pub type DMO_REGISTER_FLAGS = i32; +pub type _DMO_INPLACE_PROCESS_FLAGS = i32; +pub type _DMO_INPUT_DATA_BUFFER_FLAGS = i32; +pub type _DMO_INPUT_STATUS_FLAGS = i32; +pub type _DMO_INPUT_STREAM_INFO_FLAGS = i32; +pub type _DMO_OUTPUT_DATA_BUFFER_FLAGS = i32; +pub type _DMO_OUTPUT_STREAM_INFO_FLAGS = i32; +pub type _DMO_PROCESS_OUTPUT_FLAGS = i32; +pub type _DMO_QUALITY_STATUS_FLAGS = i32; +pub type _DMO_SET_TYPE_FLAGS = i32; +pub type _DMO_VIDEO_OUTPUT_STREAM_FLAGS = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DMO_MEDIA_TYPE { + pub majortype: ::windows_sys::core::GUID, + pub subtype: ::windows_sys::core::GUID, + pub bFixedSizeSamples: super::super::Foundation::BOOL, + pub bTemporalCompression: super::super::Foundation::BOOL, + pub lSampleSize: u32, + pub formattype: ::windows_sys::core::GUID, + pub pUnk: ::windows_sys::core::IUnknown, + pub cbFormat: u32, + pub pbFormat: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DMO_MEDIA_TYPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DMO_MEDIA_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DMO_OUTPUT_DATA_BUFFER { + pub pBuffer: IMediaBuffer, + pub dwStatus: u32, + pub rtTimestamp: i64, + pub rtTimelength: i64, +} +impl ::core::marker::Copy for DMO_OUTPUT_DATA_BUFFER {} +impl ::core::clone::Clone for DMO_OUTPUT_DATA_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DMO_PARTIAL_MEDIATYPE { + pub r#type: ::windows_sys::core::GUID, + pub subtype: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for DMO_PARTIAL_MEDIATYPE {} +impl ::core::clone::Clone for DMO_PARTIAL_MEDIATYPE { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Media/KernelStreaming/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/KernelStreaming/mod.rs new file mode 100644 index 000000000..de29a28a5 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/KernelStreaming/mod.rs @@ -0,0 +1,7630 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksuser.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KsCreateAllocator(connectionhandle : super::super::Foundation:: HANDLE, allocatorframing : *const KSALLOCATOR_FRAMING, allocatorhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksuser.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KsCreateAllocator2(connectionhandle : super::super::Foundation:: HANDLE, allocatorframing : *const KSALLOCATOR_FRAMING, allocatorhandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksuser.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KsCreateClock(connectionhandle : super::super::Foundation:: HANDLE, clockcreate : *const KSCLOCK_CREATE, clockhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksuser.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KsCreateClock2(connectionhandle : super::super::Foundation:: HANDLE, clockcreate : *const KSCLOCK_CREATE, clockhandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksuser.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KsCreatePin(filterhandle : super::super::Foundation:: HANDLE, connect : *const KSPIN_CONNECT, desiredaccess : u32, connectionhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksuser.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KsCreatePin2(filterhandle : super::super::Foundation:: HANDLE, connect : *const KSPIN_CONNECT, desiredaccess : u32, connectionhandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksuser.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KsCreateTopologyNode(parenthandle : super::super::Foundation:: HANDLE, nodecreate : *const KSNODE_CREATE, desiredaccess : u32, nodehandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksuser.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KsCreateTopologyNode2(parenthandle : super::super::Foundation:: HANDLE, nodecreate : *const KSNODE_CREATE, desiredaccess : u32, nodehandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))] +::windows_targets::link!("ksproxy.ax" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`"] fn KsGetMediaType(position : i32, ammediatype : *mut super::MediaFoundation:: AM_MEDIA_TYPE, filterhandle : super::super::Foundation:: HANDLE, pinfactoryid : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksproxy.ax" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KsGetMediaTypeCount(filterhandle : super::super::Foundation:: HANDLE, pinfactoryid : u32, mediatypecount : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksproxy.ax" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KsGetMultiplePinFactoryItems(filterhandle : super::super::Foundation:: HANDLE, pinfactoryid : u32, propertyid : u32, items : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksproxy.ax" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KsOpenDefaultDevice(category : *const ::windows_sys::core::GUID, access : u32, devicehandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ksproxy.ax" "system" fn KsResolveRequiredAttributes(datarange : *const KSDATAFORMAT, attributes : *const KSMULTIPLE_ITEM) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ksproxy.ax" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KsSynchronousDeviceControl(handle : super::super::Foundation:: HANDLE, iocontrol : u32, inbuffer : *const ::core::ffi::c_void, inlength : u32, outbuffer : *mut ::core::ffi::c_void, outlength : u32, bytesreturned : *mut u32) -> ::windows_sys::core::HRESULT); +pub type IKsAggregateControl = *mut ::core::ffi::c_void; +pub type IKsAllocator = *mut ::core::ffi::c_void; +pub type IKsAllocatorEx = *mut ::core::ffi::c_void; +pub type IKsClockPropertySet = *mut ::core::ffi::c_void; +pub type IKsControl = *mut ::core::ffi::c_void; +pub type IKsDataTypeCompletion = *mut ::core::ffi::c_void; +pub type IKsDataTypeHandler = *mut ::core::ffi::c_void; +pub type IKsFormatSupport = *mut ::core::ffi::c_void; +pub type IKsInterfaceHandler = *mut ::core::ffi::c_void; +pub type IKsJackContainerId = *mut ::core::ffi::c_void; +pub type IKsJackDescription = *mut ::core::ffi::c_void; +pub type IKsJackDescription2 = *mut ::core::ffi::c_void; +pub type IKsJackDescription3 = *mut ::core::ffi::c_void; +pub type IKsJackSinkInformation = *mut ::core::ffi::c_void; +pub type IKsNodeControl = *mut ::core::ffi::c_void; +pub type IKsNotifyEvent = *mut ::core::ffi::c_void; +pub type IKsObject = *mut ::core::ffi::c_void; +pub type IKsPin = *mut ::core::ffi::c_void; +pub type IKsPinEx = *mut ::core::ffi::c_void; +pub type IKsPinFactory = *mut ::core::ffi::c_void; +pub type IKsPinPipe = *mut ::core::ffi::c_void; +pub type IKsPropertySet = *mut ::core::ffi::c_void; +pub type IKsQualityForwarder = *mut ::core::ffi::c_void; +pub type IKsTopology = *mut ::core::ffi::c_void; +pub type IKsTopologyInfo = *mut ::core::ffi::c_void; +pub const AEC_MODE_FULL_DUPLEX: u32 = 2u32; +pub const AEC_MODE_HALF_DUPLEX: u32 = 1u32; +pub const AEC_MODE_PASS_THROUGH: u32 = 0u32; +pub const AEC_STATUS_FD_CURRENTLY_CONVERGED: u32 = 8u32; +pub const AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED: u32 = 1u32; +pub const AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED: u32 = 2u32; +pub const AEC_STATUS_FD_HISTORY_UNINITIALIZED: u32 = 0u32; +pub const APO_CLASS_UUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5989fce8_9cd0_467d_8a6a_5419e31529d4); +pub const AUDIOENDPOINT_CLASS_UUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc166523c_fe0c_4a94_a586_f1a80cfbbf3e); +pub const AUDIOMODULE_MAX_DATA_SIZE: u32 = 64000u32; +pub const AUDIOMODULE_MAX_NAME_CCH_SIZE: u32 = 128u32; +pub const AUDIOPOSTURE_ORIENTATION_NOTROTATED: AUDIOPOSTURE_ORIENTATION = 0i32; +pub const AUDIOPOSTURE_ORIENTATION_ROTATED180DEGREESCOUNTERCLOCKWISE: AUDIOPOSTURE_ORIENTATION = 2i32; +pub const AUDIOPOSTURE_ORIENTATION_ROTATED270DEGREESCOUNTERCLOCKWISE: AUDIOPOSTURE_ORIENTATION = 3i32; +pub const AUDIOPOSTURE_ORIENTATION_ROTATED90DEGREESCOUNTERCLOCKWISE: AUDIOPOSTURE_ORIENTATION = 1i32; +pub const AUDIO_CURVE_TYPE_NONE: AUDIO_CURVE_TYPE = 0i32; +pub const AUDIO_CURVE_TYPE_WINDOWS_FADE: AUDIO_CURVE_TYPE = 1i32; +pub const AUDIO_EFFECT_TYPE_ACOUSTIC_ECHO_CANCELLATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adbe_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_AUTOMATIC_GAIN_CONTROL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adc0_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_BASS_BOOST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adc5_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_BASS_MANAGEMENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adca_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_BEAMFORMING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adc1_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_CONSTANT_TONE_REMOVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adc2_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64add0_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_DYNAMIC_RANGE_COMPRESSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adce_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_ENVIRONMENTAL_EFFECTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adcb_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_EQUALIZER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adc3_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_FAR_FIELD_BEAMFORMING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adcf_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_LOUDNESS_EQUALIZER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adc4_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_NOISE_SUPPRESSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adbf_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_ROOM_CORRECTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adc9_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_SPEAKER_COMPENSATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adcd_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_SPEAKER_FILL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adc8_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_SPEAKER_PROTECTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adcc_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_VIRTUAL_HEADPHONES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adc7_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_EFFECT_TYPE_VIRTUAL_SURROUND: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f64adc6_8211_11e2_8c70_2c27d7f001fa); +pub const AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x98951333_b9cd_48b1_a0a3_ff40682d73f7); +pub const AUDIO_SIGNALPROCESSINGMODE_DEFAULT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc18e2f7e_933d_4965_b7d1_1eef228d2af3); +pub const AUDIO_SIGNALPROCESSINGMODE_FAR_FIELD_SPEECH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x28941cba_3be6_4a78_9a76_30fd91559b64); +pub const AUDIO_SIGNALPROCESSINGMODE_MEDIA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4780004e_7133_41d8_8c74_660dadd2c0ee); +pub const AUDIO_SIGNALPROCESSINGMODE_MOVIE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb26feb0d_ec94_477c_9494_d1ab8e753f6e); +pub const AUDIO_SIGNALPROCESSINGMODE_NOTIFICATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9cf2a70b_f377_403b_bd6b_360863e0355c); +pub const AUDIO_SIGNALPROCESSINGMODE_RAW: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9e90ea20_b493_4fd1_a1a8_7e1361a956cf); +pub const AUDIO_SIGNALPROCESSINGMODE_SPEECH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfc1cfc9b_b9d6_4cfa_b5e0_4bb2166878b2); +pub const AllocatorStrategy_DontCare: u32 = 0u32; +pub const AllocatorStrategy_MaximizeSpeed: u32 = 8u32; +pub const AllocatorStrategy_MinimizeFrameSize: u32 = 2u32; +pub const AllocatorStrategy_MinimizeNumberOfAllocators: u32 = 4u32; +pub const AllocatorStrategy_MinimizeNumberOfFrames: u32 = 1u32; +pub const BLUETOOTHLE_MIDI_SERVICE_UUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03b80e5a_ede8_4b33_a751_6ce34ec4c700); +pub const BLUETOOTH_MIDI_DATAIO_CHARACTERISTIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7772e5db_3868_4112_a1a9_f2669d106bf3); +pub const BUS_INTERFACE_REFERENCE_VERSION: u32 = 256u32; +pub const CASCADE_FORM: KSDS3D_HRTF_FILTER_METHOD = 1i32; +pub const CC_MAX_HW_DECODE_LINES: u32 = 12u32; +pub const CLSID_KsIBasicAudioInterfaceHandler: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9f8ac3e_0f71_11d2_b72c_00c04fb6bd3d); +pub const CLSID_Proxy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x17cca71b_ecd7_11d0_b908_00a0c9223196); +pub const CONSTRICTOR_OPTION_DISABLE: CONSTRICTOR_OPTION = 0i32; +pub const CONSTRICTOR_OPTION_MUTE: CONSTRICTOR_OPTION = 1i32; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_KsAudio_Controller_DeviceInterface_Path: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x13e004d6_b066_43bd_913b_a415cd13da87), pid: 3 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_KsAudio_PacketSize_Constraints: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x13e004d6_b066_43bd_913b_a415cd13da87), pid: 2 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_KsAudio_PacketSize_Constraints2: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x9404f781_7191_409b_8b0b_80bf6ec229ae), pid: 2 }; +pub const DIRECT_FORM: KSDS3D_HRTF_FILTER_METHOD = 0i32; +pub const DS3D_HRTF_VERSION_1: KSDS3D_HRTF_FILTER_VERSION = 0i32; +pub const EPcxGenLocation_enum_count: EPcxGenLocation = 4i32; +pub const EPcxGeoLocation_enum_count: EPcxGeoLocation = 16i32; +pub const EVENTSETID_CROSSBAR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a2e0641_28e4_11d0_a18c_00a0c9118956); +pub const EVENTSETID_TUNER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a2e0606_28e4_11d0_a18c_00a0c9118956); +pub const EVENTSETID_VIDCAP_CAMERACONTROL_REGION_OF_INTEREST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2fdffc5d_c732_4ba6_b5df_6b4d7fc88b8b); +pub const EVENTSETID_VIDEODECODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a2e0621_28e4_11d0_a18c_00a0c9118956); +pub const FLOAT_COEFF: KSDS3D_HRTF_COEFF_FORMAT = 0i32; +pub const FULL_FILTER: KSDS3D_HRTF_FILTER_QUALITY = 0i32; +pub const FramingProp_Ex: FRAMING_PROP = 3i32; +pub const FramingProp_None: FRAMING_PROP = 1i32; +pub const FramingProp_Old: FRAMING_PROP = 2i32; +pub const FramingProp_Uninitialized: FRAMING_PROP = 0i32; +pub const Framing_Cache_ReadLast: FRAMING_CACHE_OPS = 1i32; +pub const Framing_Cache_ReadOrig: FRAMING_CACHE_OPS = 2i32; +pub const Framing_Cache_Update: FRAMING_CACHE_OPS = 0i32; +pub const Framing_Cache_Write: FRAMING_CACHE_OPS = 3i32; +pub const GUID_NULL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000000); +pub const IOCTL_KS_DISABLE_EVENT: u32 = 3080203u32; +pub const IOCTL_KS_ENABLE_EVENT: u32 = 3080199u32; +pub const IOCTL_KS_HANDSHAKE: u32 = 3080223u32; +pub const IOCTL_KS_METHOD: u32 = 3080207u32; +pub const IOCTL_KS_PROPERTY: u32 = 3080195u32; +pub const IOCTL_KS_READ_STREAM: u32 = 3096599u32; +pub const IOCTL_KS_RESET_STATE: u32 = 3080219u32; +pub const IOCTL_KS_WRITE_STREAM: u32 = 3112979u32; +pub const JACKDESC2_DYNAMIC_FORMAT_CHANGE_CAPABILITY: u32 = 2u32; +pub const JACKDESC2_PRESENCE_DETECT_CAPABILITY: u32 = 1u32; +pub const KSAC3_ALTERNATE_AUDIO_1: u32 = 1u32; +pub const KSAC3_ALTERNATE_AUDIO_2: u32 = 2u32; +pub const KSAC3_ALTERNATE_AUDIO_BOTH: u32 = 3u32; +pub const KSAC3_SERVICE_COMMENTARY: u32 = 5u32; +pub const KSAC3_SERVICE_DIALOG_ONLY: u32 = 4u32; +pub const KSAC3_SERVICE_EMERGENCY_FLASH: u32 = 6u32; +pub const KSAC3_SERVICE_HEARING_IMPAIRED: u32 = 3u32; +pub const KSAC3_SERVICE_MAIN_AUDIO: u32 = 0u32; +pub const KSAC3_SERVICE_NO_DIALOG: u32 = 1u32; +pub const KSAC3_SERVICE_VISUALLY_IMPAIRED: u32 = 2u32; +pub const KSAC3_SERVICE_VOICE_OVER: u32 = 7u32; +pub const KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1c22c56d_9879_4f5b_a389_27996ddc2810); +pub const KSALGORITHMINSTANCE_SYSTEM_AGC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x950e55b9_877c_4c67_be08_e47b5611130a); +pub const KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb6f5a0a0_9e61_4f8c_91e3_76cf0f3c471f); +pub const KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ab0882e_7274_4516_877d_4eee99ba4fd0); +pub const KSALLOCATOR_FLAG_2D_BUFFER_REQUIRED: u32 = 32768u32; +pub const KSALLOCATOR_FLAG_ALLOCATOR_EXISTS: u32 = 2048u32; +pub const KSALLOCATOR_FLAG_ATTENTION_STEPPING: u32 = 8192u32; +pub const KSALLOCATOR_FLAG_CAN_ALLOCATE: u32 = 64u32; +pub const KSALLOCATOR_FLAG_CYCLE: u32 = 1024u32; +pub const KSALLOCATOR_FLAG_DEVICE_SPECIFIC: u32 = 32u32; +pub const KSALLOCATOR_FLAG_ENABLE_CACHED_MDL: u32 = 16384u32; +pub const KSALLOCATOR_FLAG_INDEPENDENT_RANGES: u32 = 4096u32; +pub const KSALLOCATOR_FLAG_INSIST_ON_FRAMESIZE_RATIO: u32 = 128u32; +pub const KSALLOCATOR_FLAG_MULTIPLE_OUTPUT: u32 = 512u32; +pub const KSALLOCATOR_FLAG_NO_FRAME_INTEGRITY: u32 = 256u32; +pub const KSALLOCATOR_FLAG_PARTIAL_READ_SUPPORT: u32 = 16u32; +pub const KSALLOCATOR_OPTIONF_COMPATIBLE: u32 = 1u32; +pub const KSALLOCATOR_OPTIONF_SYSTEM_MEMORY: u32 = 2u32; +pub const KSALLOCATOR_OPTIONF_VALID: u32 = 3u32; +pub const KSALLOCATOR_REQUIREMENTF_FRAME_INTEGRITY: u32 = 4u32; +pub const KSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER: u32 = 1u32; +pub const KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE: u32 = 8u32; +pub const KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY: u32 = 2147483648u32; +pub const KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY: u32 = 2u32; +pub const KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY_CUSTOM_ALLOCATION: u32 = 16u32; +pub const KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe1f89eb5_5f46_419b_967b_ff6770b98401); +pub const KSATTRIBUTE_REQUIRED: u32 = 1u32; +pub const KSAUDDECOUTMODE_PCM_51: u32 = 2u32; +pub const KSAUDDECOUTMODE_SPDIFF: u32 = 4u32; +pub const KSAUDDECOUTMODE_STEREO_ANALOG: u32 = 1u32; +pub const KSAUDFNAME_3D_CENTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9f0670b4_991f_11d2_ac4d_00c04f8efb68); +pub const KSAUDFNAME_3D_DEPTH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x63ff5747_991f_11d2_ac4d_00c04f8efb68); +pub const KSAUDFNAME_3D_STEREO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fede2_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_ALTERNATE_MICROPHONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2bc31d6b_96e3_11d2_ac4c_00c04f8efb68); +pub const KSAUDFNAME_AUX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedfe_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_AUX_MUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedfd_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_AUX_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedfc_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_BASS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fede0_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_CD_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedfb_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_CD_IN_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedf3_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_CD_MUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedea_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_CD_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fede9_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_LINE_IN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedf9_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_LINE_IN_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedf4_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_LINE_MUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedec_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_LINE_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedeb_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_MASTER_MUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fede4_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_MASTER_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fede3_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_MICROPHONE_BOOST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2bc31d6a_96e3_11d2_ac4c_00c04f8efb68); +pub const KSAUDFNAME_MIC_IN_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedf5_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_MIC_MUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedee_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_MIC_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185feded_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_MIDI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedf8_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_MIDI_IN_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedf2_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_MIDI_MUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fede8_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_MIDI_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fede7_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_MIDRANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa2cbe478_ae84_49a1_8b72_4ad09b78ed34); +pub const KSAUDFNAME_MONO_MIX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00dff078_96e3_11d2_ac4c_00c04f8efb68); +pub const KSAUDFNAME_MONO_MIX_MUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2bc31d69_96e3_11d2_ac4c_00c04f8efb68); +pub const KSAUDFNAME_MONO_MIX_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x22b0eafe_96e3_11d2_ac4c_00c04f8efb68); +pub const KSAUDFNAME_MONO_OUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf9b41dc3_96e2_11d2_ac4c_00c04f8efb68); +pub const KSAUDFNAME_MONO_OUT_MUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ad247ec_96e3_11d2_ac4c_00c04f8efb68); +pub const KSAUDFNAME_MONO_OUT_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ad247eb_96e3_11d2_ac4c_00c04f8efb68); +pub const KSAUDFNAME_PC_SPEAKER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedff_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_PC_SPEAKER_MUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedf1_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_PC_SPEAKER_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedf0_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_PEAKMETER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57e24340_fc5b_4612_a562_72b11a29dfae); +pub const KSAUDFNAME_RECORDING_CONTROL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedfa_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_RECORDING_SOURCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedef_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_STEREO_MIX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00dff077_96e3_11d2_ac4c_00c04f8efb68); +pub const KSAUDFNAME_STEREO_MIX_MUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x22b0eafd_96e3_11d2_ac4c_00c04f8efb68); +pub const KSAUDFNAME_STEREO_MIX_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ad247ed_96e3_11d2_ac4c_00c04f8efb68); +pub const KSAUDFNAME_TREBLE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fede1_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x915daec4_a434_11d2_ac52_00c04f8efb68); +pub const KSAUDFNAME_VIDEO_MUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b46e709_992a_11d2_ac4d_00c04f8efb68); +pub const KSAUDFNAME_VIDEO_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b46e708_992a_11d2_ac4d_00c04f8efb68); +pub const KSAUDFNAME_VOLUME_CONTROL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedf7_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_WAVE_IN_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fedf6_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_WAVE_MUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fede6_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_WAVE_OUT_MIX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fee00_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDFNAME_WAVE_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185fede5_9905_11d1_95a9_00c04fb925d3); +pub const KSAUDIO_CPU_RESOURCES_HOST_CPU: u32 = 2147483647u32; +pub const KSAUDIO_CPU_RESOURCES_NOT_HOST_CPU: u32 = 0u32; +pub const KSAUDIO_QUALITY_ADVANCED: u32 = 3u32; +pub const KSAUDIO_QUALITY_BASIC: u32 = 2u32; +pub const KSAUDIO_QUALITY_PC: u32 = 1u32; +pub const KSAUDIO_QUALITY_WORST: u32 = 0u32; +pub const KSAUDIO_SPEAKER_DIRECTOUT: u32 = 0u32; +pub const KSAUDIO_SPEAKER_GROUND_FRONT_CENTER: u32 = 4u32; +pub const KSAUDIO_SPEAKER_GROUND_FRONT_LEFT: u32 = 1u32; +pub const KSAUDIO_SPEAKER_GROUND_FRONT_RIGHT: u32 = 2u32; +pub const KSAUDIO_SPEAKER_GROUND_REAR_LEFT: u32 = 16u32; +pub const KSAUDIO_SPEAKER_GROUND_REAR_RIGHT: u32 = 32u32; +pub const KSAUDIO_SPEAKER_MONO: u32 = 4u32; +pub const KSAUDIO_SPEAKER_SUPER_WOOFER: u32 = 8u32; +pub const KSAUDIO_SPEAKER_TOP_MIDDLE: u32 = 2048u32; +pub const KSAUDIO_STEREO_SPEAKER_GEOMETRY_HEADPHONE: i32 = -1i32; +pub const KSAUDIO_STEREO_SPEAKER_GEOMETRY_MAX: u32 = 180u32; +pub const KSAUDIO_STEREO_SPEAKER_GEOMETRY_MIN: u32 = 5u32; +pub const KSAUDIO_STEREO_SPEAKER_GEOMETRY_NARROW: u32 = 10u32; +pub const KSAUDIO_STEREO_SPEAKER_GEOMETRY_WIDE: u32 = 20u32; +pub const KSCAMERAPROFILE_BalancedVideoAndPhoto: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6b52b017_42c7_4a21_bfe3_23f009149887); +pub const KSCAMERAPROFILE_CompressedCamera: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e34cdc1_27ad_437f_abde_02b629f37b44); +pub const KSCAMERAPROFILE_FLAGS_FACEDETECTION: u64 = 8u64; +pub const KSCAMERAPROFILE_FLAGS_PHOTOHDR: u64 = 4u64; +pub const KSCAMERAPROFILE_FLAGS_PREVIEW_RES_MUSTMATCH: u64 = 32u64; +pub const KSCAMERAPROFILE_FLAGS_VARIABLEPHOTOSEQUENCE: u64 = 16u64; +pub const KSCAMERAPROFILE_FLAGS_VIDEOHDR: u64 = 2u64; +pub const KSCAMERAPROFILE_FLAGS_VIDEOSTABLIZATION: u64 = 1u64; +pub const KSCAMERAPROFILE_FaceAuth_Mode: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x81361b22_700b_4546_a2d4_c52e907bfc27); +pub const KSCAMERAPROFILE_HDRWithWCGPhoto: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9bf6f1ff_b555_4625_b326_a46def318fb7); +pub const KSCAMERAPROFILE_HDRWithWCGVideo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4b27c336_4924_4989_b994_fdaf1dc7cd85); +pub const KSCAMERAPROFILE_HighFrameRate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x566e6113_8c35_48e7_b89f_d23fdc1219dc); +pub const KSCAMERAPROFILE_HighQualityPhoto: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x32440725_961b_4ca3_b5b2_854e719d9e1b); +pub const KSCAMERAPROFILE_Legacy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb4894d81_62b7_4eec_8740_80658c4a9d3e); +pub const KSCAMERAPROFILE_PhotoSequence: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x02399d9d_4ee8_49ba_bc07_5ff156531413); +pub const KSCAMERAPROFILE_VariablePhotoSequence: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9ff2cb56_e75a_49b1_a928_9985d5946f87); +pub const KSCAMERAPROFILE_VideoConferencing: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc5444a88_e1bf_4597_b2dd_9e1ead864bb8); +pub const KSCAMERAPROFILE_VideoHDR8: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd4f3f4ec_bdff_4314_b1d4_008e281f74e7); +pub const KSCAMERAPROFILE_VideoRecording: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa0e517e8_8f8c_4f6f_9a57_46fc2f647ec0); +pub const KSCAMERA_EXTENDEDPROP_ADVANCEDPHOTO_AUTO: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_ADVANCEDPHOTO_FNF: u64 = 4u64; +pub const KSCAMERA_EXTENDEDPROP_ADVANCEDPHOTO_HDR: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_ADVANCEDPHOTO_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_ADVANCEDPHOTO_ULTRALOWLIGHT: u64 = 8u64; +pub const KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_BLUR: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_MASK: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_SHALLOWFOCUS: u64 = 4u64; +pub const KSCAMERA_EXTENDEDPROP_CAPS_ASYNCCONTROL: u64 = 9223372036854775808u64; +pub const KSCAMERA_EXTENDEDPROP_CAPS_CANCELLABLE: u64 = 4611686018427387904u64; +pub const KSCAMERA_EXTENDEDPROP_CAPS_MASK: u64 = 18374686479671623680u64; +pub const KSCAMERA_EXTENDEDPROP_CAPS_RESERVED: u64 = 18374686479671623680u64; +pub const KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_AUTOFACEFRAMING: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_MANUAL: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_EVCOMP_FULLSTEP: u64 = 16u64; +pub const KSCAMERA_EXTENDEDPROP_EVCOMP_HALFSTEP: u64 = 8u64; +pub const KSCAMERA_EXTENDEDPROP_EVCOMP_QUARTERSTEP: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_EVCOMP_THIRDSTEP: u64 = 4u64; +pub const KSCAMERA_EXTENDEDPROP_EYEGAZECORRECTION_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_EYEGAZECORRECTION_ON: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_EYEGAZECORRECTION_STARE: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_ALTERNATIVE_FRAME_ILLUMINATION: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_BACKGROUND_SUBTRACTION: u64 = 4u64; +pub const KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_DISABLED: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_BLINK: u64 = 8u64; +pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_ON: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_PHOTO: u64 = 4u64; +pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_PREVIEW: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_SMILE: u64 = 16u64; +pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_VIDEO: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_FILTERSCOPE: u32 = 4294967295u32; +pub const KSCAMERA_EXTENDEDPROP_FLAG_CANCELOPERATION: u64 = 9223372036854775808u64; +pub const KSCAMERA_EXTENDEDPROP_FLAG_MASK: u64 = 18374686479671623680u64; +pub const KSCAMERA_EXTENDEDPROP_FLASH_ASSISTANT_AUTO: u64 = 256u64; +pub const KSCAMERA_EXTENDEDPROP_FLASH_ASSISTANT_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_FLASH_ASSISTANT_ON: u64 = 128u64; +pub const KSCAMERA_EXTENDEDPROP_FLASH_AUTO: u64 = 4u64; +pub const KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER: u64 = 8u64; +pub const KSCAMERA_EXTENDEDPROP_FLASH_MULTIFLASHSUPPORTED: u64 = 64u64; +pub const KSCAMERA_EXTENDEDPROP_FLASH_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_FLASH_ON: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_FLASH_REDEYEREDUCTION: u64 = 16u64; +pub const KSCAMERA_EXTENDEDPROP_FLASH_SINGLEFLASH: u64 = 32u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUSPRIORITY_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUSPRIORITY_ON: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUSSTATE_FAILED: KSCAMERA_EXTENDEDPROP_FOCUSSTATE = 4i32; +pub const KSCAMERA_EXTENDEDPROP_FOCUSSTATE_FOCUSED: KSCAMERA_EXTENDEDPROP_FOCUSSTATE = 3i32; +pub const KSCAMERA_EXTENDEDPROP_FOCUSSTATE_LOST: KSCAMERA_EXTENDEDPROP_FOCUSSTATE = 1i32; +pub const KSCAMERA_EXTENDEDPROP_FOCUSSTATE_SEARCHING: KSCAMERA_EXTENDEDPROP_FOCUSSTATE = 2i32; +pub const KSCAMERA_EXTENDEDPROP_FOCUSSTATE_UNINITIALIZED: KSCAMERA_EXTENDEDPROP_FOCUSSTATE = 0i32; +pub const KSCAMERA_EXTENDEDPROP_FOCUS_CONTINUOUS: u64 = 256u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUS_CONTINUOUSLOCK: u64 = 512u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUS_DISTANCE_HYPERFOCAL: u64 = 33554432u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUS_DISTANCE_INFINITY: u64 = 16777216u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUS_DISTANCE_NEAREST: u64 = 67108864u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUS_DRIVERFALLBACK_OFF: u64 = 2048u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUS_RANGE_FULLRANGE: u64 = 262144u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUS_RANGE_HYPERFOCAL: u64 = 1048576u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUS_RANGE_INFINITY: u64 = 524288u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUS_RANGE_MACRO: u64 = 65536u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUS_RANGE_NORMAL: u64 = 131072u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUS_REGIONBASED: u64 = 4096u64; +pub const KSCAMERA_EXTENDEDPROP_FOCUS_UNLOCK: u64 = 1024u64; +pub const KSCAMERA_EXTENDEDPROP_HISTOGRAM_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_HISTOGRAM_ON: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_IRTORCHMODE_ALTERNATING_FRAME_ILLUMINATION: u64 = 4u64; +pub const KSCAMERA_EXTENDEDPROP_IRTORCHMODE_ALWAYS_ON: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_IRTORCHMODE_OFF: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_ISO_100: u64 = 8u64; +pub const KSCAMERA_EXTENDEDPROP_ISO_12800: u64 = 1024u64; +pub const KSCAMERA_EXTENDEDPROP_ISO_1600: u64 = 128u64; +pub const KSCAMERA_EXTENDEDPROP_ISO_200: u64 = 16u64; +pub const KSCAMERA_EXTENDEDPROP_ISO_25600: u64 = 2048u64; +pub const KSCAMERA_EXTENDEDPROP_ISO_3200: u64 = 256u64; +pub const KSCAMERA_EXTENDEDPROP_ISO_400: u64 = 32u64; +pub const KSCAMERA_EXTENDEDPROP_ISO_50: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_ISO_6400: u64 = 512u64; +pub const KSCAMERA_EXTENDEDPROP_ISO_80: u64 = 4u64; +pub const KSCAMERA_EXTENDEDPROP_ISO_800: u64 = 64u64; +pub const KSCAMERA_EXTENDEDPROP_ISO_AUTO: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_ISO_MANUAL: u64 = 36028797018963968u64; +pub const KSCAMERA_EXTENDEDPROP_METADATA_ALIGNMENTREQUIRED: u64 = 256u64; +pub const KSCAMERA_EXTENDEDPROP_METADATA_MEMORYTYPE_MASK: u64 = 255u64; +pub const KSCAMERA_EXTENDEDPROP_METADATA_SYSTEMMEMORY: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_1024: KSCAMERA_EXTENDEDPROP_MetadataAlignment = 10i32; +pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_128: KSCAMERA_EXTENDEDPROP_MetadataAlignment = 7i32; +pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_16: KSCAMERA_EXTENDEDPROP_MetadataAlignment = 4i32; +pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_2048: KSCAMERA_EXTENDEDPROP_MetadataAlignment = 11i32; +pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_256: KSCAMERA_EXTENDEDPROP_MetadataAlignment = 8i32; +pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_32: KSCAMERA_EXTENDEDPROP_MetadataAlignment = 5i32; +pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_4096: KSCAMERA_EXTENDEDPROP_MetadataAlignment = 12i32; +pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_512: KSCAMERA_EXTENDEDPROP_MetadataAlignment = 9i32; +pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_64: KSCAMERA_EXTENDEDPROP_MetadataAlignment = 6i32; +pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_8192: KSCAMERA_EXTENDEDPROP_MetadataAlignment = 13i32; +pub const KSCAMERA_EXTENDEDPROP_OIS_AUTO: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_OIS_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_OIS_ON: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_OPTIMIZATION_DEFAULT: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_OPTIMIZATION_LATENCY: u64 = 8u64; +pub const KSCAMERA_EXTENDEDPROP_OPTIMIZATION_PHOTO: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_OPTIMIZATION_POWER: u64 = 16u64; +pub const KSCAMERA_EXTENDEDPROP_OPTIMIZATION_QUALITY: u64 = 4u64; +pub const KSCAMERA_EXTENDEDPROP_OPTIMIZATION_VIDEO: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_PHOTOCONFIRMATION_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_PHOTOCONFIRMATION_ON: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_PHOTOMODE_NORMAL: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_PHOTOMODE_SEQUENCE: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_PHOTOMODE_SEQUENCE_SUB_NONE: u32 = 0u32; +pub const KSCAMERA_EXTENDEDPROP_PHOTOMODE_SEQUENCE_SUB_VARIABLE: u32 = 1u32; +pub const KSCAMERA_EXTENDEDPROP_PHOTOTHUMBNAIL_16X: u64 = 8u64; +pub const KSCAMERA_EXTENDEDPROP_PHOTOTHUMBNAIL_2X: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_PHOTOTHUMBNAIL_4X: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_PHOTOTHUMBNAIL_8X: u64 = 4u64; +pub const KSCAMERA_EXTENDEDPROP_PHOTOTHUMBNAIL_DISABLE: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_DYNAMIC: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_ON: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_ROITYPE_FACE: KSCAMERA_EXTENDEDPROP_ROITYPE = 1i32; +pub const KSCAMERA_EXTENDEDPROP_ROITYPE_UNKNOWN: KSCAMERA_EXTENDEDPROP_ROITYPE = 0i32; +pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_AUTO: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_BACKLIT: u64 = 1024u64; +pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_BEACH: u64 = 32u64; +pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_CANDLELIGHT: u64 = 128u64; +pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_LANDSCAPE: u64 = 256u64; +pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_MACRO: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_MANUAL: u64 = 36028797018963968u64; +pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_NIGHT: u64 = 16u64; +pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_NIGHTPORTRAIT: u64 = 512u64; +pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_PORTRAIT: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_SNOW: u64 = 8u64; +pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_SPORT: u64 = 4u64; +pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_SUNSET: u64 = 64u64; +pub const KSCAMERA_EXTENDEDPROP_SECUREMODE_DISABLED: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_SECUREMODE_ENABLED: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_VFR_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_VFR_ON: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOHDR_AUTO: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOHDR_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOHDR_ON: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOPROCFLAG_AUTO: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOPROCFLAG_LOCK: u64 = 4u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOPROCFLAG_MANUAL: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_AUTO: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_ON: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOTEMPORALDENOISING_AUTO: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOTEMPORALDENOISING_OFF: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOTEMPORALDENOISING_ON: u64 = 4u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOTORCH_OFF: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON_ADJUSTABLEPOWER: u64 = 2u64; +pub const KSCAMERA_EXTENDEDPROP_WARMSTART_MODE_DISABLED: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_WARMSTART_MODE_ENABLED: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_WBPRESET_CANDLELIGHT: KSCAMERA_EXTENDEDPROP_WBPRESET = 6i32; +pub const KSCAMERA_EXTENDEDPROP_WBPRESET_CLOUDY: KSCAMERA_EXTENDEDPROP_WBPRESET = 1i32; +pub const KSCAMERA_EXTENDEDPROP_WBPRESET_DAYLIGHT: KSCAMERA_EXTENDEDPROP_WBPRESET = 2i32; +pub const KSCAMERA_EXTENDEDPROP_WBPRESET_FLASH: KSCAMERA_EXTENDEDPROP_WBPRESET = 3i32; +pub const KSCAMERA_EXTENDEDPROP_WBPRESET_FLUORESCENT: KSCAMERA_EXTENDEDPROP_WBPRESET = 4i32; +pub const KSCAMERA_EXTENDEDPROP_WBPRESET_TUNGSTEN: KSCAMERA_EXTENDEDPROP_WBPRESET = 5i32; +pub const KSCAMERA_EXTENDEDPROP_WHITEBALANCE_PRESET: KSCAMERA_EXTENDEDPROP_WHITEBALANCE_MODE = 2i32; +pub const KSCAMERA_EXTENDEDPROP_WHITEBALANCE_TEMPERATURE: KSCAMERA_EXTENDEDPROP_WHITEBALANCE_MODE = 1i32; +pub const KSCAMERA_EXTENDEDPROP_ZOOM_DEFAULT: u64 = 0u64; +pub const KSCAMERA_EXTENDEDPROP_ZOOM_DIRECT: u64 = 1u64; +pub const KSCAMERA_EXTENDEDPROP_ZOOM_SMOOTH: u64 = 2u64; +pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_EXPOSURECOMPENSATION: u32 = 2u32; +pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_EXPOSURETIME: u32 = 1u32; +pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_FLASH: u32 = 64u32; +pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_FLASHPOWER: u32 = 128u32; +pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_FOCUSSTATE: u32 = 8u32; +pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_ISOSPEED: u32 = 4u32; +pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_LENSPOSITION: u32 = 16u32; +pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_SCENEMODE: u32 = 512u32; +pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_SENSORFRAMERATE: u32 = 1024u32; +pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_WHITEBALANCE: u32 = 32u32; +pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_ZOOMFACTOR: u32 = 256u32; +pub const KSCAMERA_METADATA_FRAMEILLUMINATION_FLAG_ON: u32 = 1u32; +pub const KSCAMERA_PERFRAMESETTING_AUTO: u64 = 4294967296u64; +pub const KSCAMERA_PERFRAMESETTING_ITEM_CUSTOM: KSCAMERA_PERFRAMESETTING_ITEM_TYPE = 7i32; +pub const KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_COMPENSATION: KSCAMERA_PERFRAMESETTING_ITEM_TYPE = 3i32; +pub const KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_TIME: KSCAMERA_PERFRAMESETTING_ITEM_TYPE = 1i32; +pub const KSCAMERA_PERFRAMESETTING_ITEM_FLASH: KSCAMERA_PERFRAMESETTING_ITEM_TYPE = 2i32; +pub const KSCAMERA_PERFRAMESETTING_ITEM_FOCUS: KSCAMERA_PERFRAMESETTING_ITEM_TYPE = 5i32; +pub const KSCAMERA_PERFRAMESETTING_ITEM_ISO: KSCAMERA_PERFRAMESETTING_ITEM_TYPE = 4i32; +pub const KSCAMERA_PERFRAMESETTING_ITEM_PHOTOCONFIRMATION: KSCAMERA_PERFRAMESETTING_ITEM_TYPE = 6i32; +pub const KSCAMERA_PERFRAMESETTING_MANUAL: u64 = 8589934592u64; +pub const KSCATEGORY_ACOUSTIC_ECHO_CANCEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbf963d80_c559_11d0_8a2b_00a0c9255ac1); +pub const KSCATEGORY_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6994ad04_93ef_11d0_a3cc_00a0c9223196); +pub const KSCATEGORY_BRIDGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x085aff00_62ce_11cf_a5d6_28db04c10000); +pub const KSCATEGORY_CAPTURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65e8773d_8f56_11d0_a3b9_00a0c9223196); +pub const KSCATEGORY_CLOCK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53172480_4791_11d0_a5d6_28db04c10000); +pub const KSCATEGORY_COMMUNICATIONSTRANSFORM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf1dda2c_9743_11d0_a3ee_00a0c9223196); +pub const KSCATEGORY_CROSSBAR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa799a801_a46d_11d0_a18c_00a02401dcd4); +pub const KSCATEGORY_DATACOMPRESSOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1e84c900_7e70_11d0_a5d6_28db04c10000); +pub const KSCATEGORY_DATADECOMPRESSOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2721ae20_7e70_11d0_a5d6_28db04c10000); +pub const KSCATEGORY_DATATRANSFORM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2eb07ea0_7e70_11d0_a5d6_28db04c10000); +pub const KSCATEGORY_ENCODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x19689bf6_c384_48fd_ad51_90e58c79f70b); +pub const KSCATEGORY_ESCALANTE_PLATFORM_DRIVER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x74f3aea8_9768_11d1_8e07_00a0c95ec22e); +pub const KSCATEGORY_FILESYSTEM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x760fed5e_9357_11d0_a3cc_00a0c9223196); +pub const KSCATEGORY_INTERFACETRANSFORM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf1dda2d_9743_11d0_a3ee_00a0c9223196); +pub const KSCATEGORY_MEDIUMTRANSFORM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf1dda2e_9743_11d0_a3ee_00a0c9223196); +pub const KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x830a44f2_a32d_476b_be97_42845673b35a); +pub const KSCATEGORY_MIXER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xad809c00_7b88_11d0_a5d6_28db04c10000); +pub const KSCATEGORY_MULTIPLEXER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7a5de1d3_01a1_452c_b481_4fa2b96271e8); +pub const KSCATEGORY_NETWORK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x67c9cc3c_69c4_11d2_8759_00a0c9223196); +pub const KSCATEGORY_NETWORK_CAMERA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb8238652_b500_41eb_b4f3_4234f7f5ae99); +pub const KSCATEGORY_PROXY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x97ebaaca_95bd_11d0_a3ea_00a0c9223196); +pub const KSCATEGORY_QUALITY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x97ebaacb_95bd_11d0_a3ea_00a0c9223196); +pub const KSCATEGORY_REALTIME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeb115ffc_10c8_4964_831d_6dcb02e6f23f); +pub const KSCATEGORY_RENDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65e8773e_8f56_11d0_a3b9_00a0c9223196); +pub const KSCATEGORY_SENSOR_CAMERA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x24e552d7_6523_47f7_a647_d3465bf1f5ca); +pub const KSCATEGORY_SENSOR_GROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x669c7214_0a88_4311_a7f3_4e79820e33bd); +pub const KSCATEGORY_SPLITTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0a4252a0_7e70_11d0_a5d6_28db04c10000); +pub const KSCATEGORY_TEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6994ad06_93ef_11d0_a3cc_00a0c9223196); +pub const KSCATEGORY_TOPOLOGY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdda54a40_1e4c_11d1_a050_405705c10000); +pub const KSCATEGORY_TVAUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa799a802_a46d_11d0_a18c_00a02401dcd4); +pub const KSCATEGORY_TVTUNER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa799a800_a46d_11d0_a18c_00a02401dcd4); +pub const KSCATEGORY_VBICODEC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x07dad660_22f1_11d1_a9f4_00c04fbbde8f); +pub const KSCATEGORY_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6994ad05_93ef_11d0_a3cc_00a0c9223196); +pub const KSCATEGORY_VIDEO_CAMERA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe5323777_f976_4f5b_9b55_b94699c46e44); +pub const KSCATEGORY_VIRTUAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3503eac4_1f26_11d1_8ab0_00a0c9223196); +pub const KSCATEGORY_VPMUX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa799a803_a46d_11d0_a18c_00a02401dcd4); +pub const KSCATEGORY_WDMAUD_USE_PIN_NAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x47a4fa20_a251_11d1_a050_0000f8004788); +pub const KSCOMPONENTID_USBAUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8f1275f0_26e9_4264_ba4d_39fff01d94aa); +pub const KSCREATE_ITEM_FREEONSTOP: u32 = 8u32; +pub const KSCREATE_ITEM_NOPARAMETERS: u32 = 4u32; +pub const KSCREATE_ITEM_SECURITYCHANGED: u32 = 1u32; +pub const KSCREATE_ITEM_WILDCARD: u32 = 2u32; +pub const KSCameraProfileSensorType_Custom: u32 = 128u32; +pub const KSCameraProfileSensorType_Depth: u32 = 4u32; +pub const KSCameraProfileSensorType_ImageSegmentation: u32 = 16u32; +pub const KSCameraProfileSensorType_Infrared: u32 = 2u32; +pub const KSCameraProfileSensorType_PoseTracking: u32 = 8u32; +pub const KSCameraProfileSensorType_RGB: u32 = 1u32; +pub const KSDATAFORMAT_BIT_ATTRIBUTES: u32 = 1u32; +pub const KSDATAFORMAT_BIT_TEMPORAL_COMPRESSION: u32 = 0u32; +pub const KSDATAFORMAT_SPECIFIER_AC3_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d80e4_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_SPECIFIER_ANALOGVIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0482dde0_7817_11cf_8a03_00aa006ecb65); +pub const KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36523b35_8ee5_11d1_8ca3_0060b057664a); +pub const KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36523b32_8ee5_11d1_8ca3_0060b057664a); +pub const KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36523b31_8ee5_11d1_8ca3_0060b057664a); +pub const KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36523b34_8ee5_11d1_8ca3_0060b057664a); +pub const KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36523b33_8ee5_11d1_8ca3_0060b057664a); +pub const KSDATAFORMAT_SPECIFIER_DSOUND: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x518590a2_a184_11d0_8522_00c04fd9baf3); +pub const KSDATAFORMAT_SPECIFIER_FILEHANDLE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65e8773c_8f56_11d0_a3b9_00a0c9223196); +pub const KSDATAFORMAT_SPECIFIER_FILENAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaa797b40_e974_11cf_a5d6_28db04c10000); +pub const KSDATAFORMAT_SPECIFIER_H264_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2017be05_6629_4248_aaed_7e1a47bc9b9c); +pub const KSDATAFORMAT_SPECIFIER_IMAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x692fa379_d3e8_4651_b5b4_0b94b013eeaf); +pub const KSDATAFORMAT_SPECIFIER_JPEG_IMAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x692fa379_d3e8_4651_b5b4_0b94b013eeaf); +pub const KSDATAFORMAT_SPECIFIER_LPCM_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d80e6_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x05589f82_c356_11ce_bf01_00aa0055595a); +pub const KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d80e5_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d80e3_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_SPECIFIER_NONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0f6417d6_c318_11d0_a43f_00a0c9223196); +pub const KSDATAFORMAT_SPECIFIER_VBI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf72a76e0_eb0a_11d0_ace4_0000c0cc16ba); +pub const KSDATAFORMAT_SPECIFIER_VC_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xad98d184_aac3_11d0_a41c_00a0c9223196); +pub const KSDATAFORMAT_SPECIFIER_VIDEOINFO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x05589f80_c356_11ce_bf01_00aa0055595a); +pub const KSDATAFORMAT_SPECIFIER_VIDEOINFO2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf72a76a0_eb0a_11d0_ace4_0000c0cc16ba); +pub const KSDATAFORMAT_SPECIFIER_WAVEFORMATEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x05589f81_c356_11ce_bf01_00aa0055595a); +pub const KSDATAFORMAT_SUBTYPE_AC3_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d802c_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_SUBTYPE_ANALOG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6dba3190_67bd_11cf_a0f7_0020afd156e4); +pub const KSDATAFORMAT_SUBTYPE_CC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33214cc1_011f_11d2_b4b1_00a0d102cfbe); +pub const KSDATAFORMAT_SUBTYPE_D16: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000050_0004_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_DSS_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa0af4f82_e163_11d0_bad9_00609744111a); +pub const KSDATAFORMAT_SUBTYPE_DSS_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa0af4f81_e163_11d0_bad9_00609744111a); +pub const KSDATAFORMAT_SUBTYPE_DTS_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d8033_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_AAC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000006_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_ATRAC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000008_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000092_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0000000a_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS_ATMOS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0000010a_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MAT20: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0000010c_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MAT21: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0000030c_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MLP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0000000c_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_DST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0000000d_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_DTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000008_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_DTSX_E1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0000010b_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_DTSX_E2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0000030b_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_DTS_HD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0000000b_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_MPEG1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000003_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_MPEG2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000004_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_MPEG3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000005_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_ONE_BIT_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000009_0cea_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IEC61937_WMA_PRO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000164_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_IMAGE_RGB32: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000016_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_JPEG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x19e4a5aa_5662_4fc5_a0c0_1758028e1057); +pub const KSDATAFORMAT_SUBTYPE_L16: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000051_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_L16_CUSTOM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000051_8000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_L16_IR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000051_0002_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_L8: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000032_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_L8_CUSTOM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000032_8000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_L8_IR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000032_0002_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_LPCM_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d8032_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_SUBTYPE_Line21_BytePair: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6e8d4a22_310c_11d0_b79a_00aa003767a7); +pub const KSDATAFORMAT_SUBTYPE_Line21_GOPPacket: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6e8d4a23_310c_11d0_b79a_00aa003767a7); +pub const KSDATAFORMAT_SUBTYPE_MIDI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1d262760_e957_11cf_a5d6_28db04c10000); +pub const KSDATAFORMAT_SUBTYPE_MIDI_BUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2ca15fa0_6cfe_11cf_a5d6_28db04c10000); +pub const KSDATAFORMAT_SUBTYPE_MJPG_CUSTOM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x47504a4d_8000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_MJPG_DEPTH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x47504a4d_0004_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_MJPG_IR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x47504a4d_0002_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_MPEG1Packet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb80_524f_11ce_9f53_0020af0ba770); +pub const KSDATAFORMAT_SUBTYPE_MPEG1Payload: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb81_524f_11ce_9f53_0020af0ba770); +pub const KSDATAFORMAT_SUBTYPE_MPEG1Video: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb86_524f_11ce_9f53_0020af0ba770); +pub const KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d802b_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d8026_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_SUBTYPE_MPEGLAYER3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000055_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_MPEG_HEAAC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00001610_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_NABTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf72a76e2_eb0a_11d0_ace4_0000c0cc16ba); +pub const KSDATAFORMAT_SUBTYPE_NABTS_FEC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe757bca1_39ac_11d1_a9f5_00c04fbbde8f); +pub const KSDATAFORMAT_SUBTYPE_NONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb8e_524f_11ce_9f53_0020af0ba770); +pub const KSDATAFORMAT_SUBTYPE_OVERLAY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb7f_524f_11ce_9f53_0020af0ba770); +pub const KSDATAFORMAT_SUBTYPE_PCM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000001_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_RAW8: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xca20d9a0_3e3e_11d1_9bf9_00c04fbbdebf); +pub const KSDATAFORMAT_SUBTYPE_RIFF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4995daee_9ee6_11d0_a40e_00a0c9223196); +pub const KSDATAFORMAT_SUBTYPE_RIFFMIDI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4995daf0_9ee6_11d0_a40e_00a0c9223196); +pub const KSDATAFORMAT_SUBTYPE_RIFFWAVE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb8b_524f_11ce_9f53_0020af0ba770); +pub const KSDATAFORMAT_SUBTYPE_SDDS_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d8034_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36523b25_8ee5_11d1_8ca3_0060b057664a); +pub const KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36523b22_8ee5_11d1_8ca3_0060b057664a); +pub const KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36523b21_8ee5_11d1_8ca3_0060b057664a); +pub const KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36523b24_8ee5_11d1_8ca3_0060b057664a); +pub const KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36523b23_8ee5_11d1_8ca3_0060b057664a); +pub const KSDATAFORMAT_SUBTYPE_SUBPICTURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d802d_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_SUBTYPE_TELETEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf72a76e3_eb0a_11d0_ace4_0000c0cc16ba); +pub const KSDATAFORMAT_SUBTYPE_VPVBI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5a9b6a41_1a22_11d1_bad9_00609744111a); +pub const KSDATAFORMAT_SUBTYPE_VPVideo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5a9b6a40_1a22_11d1_bad9_00609744111a); +pub const KSDATAFORMAT_SUBTYPE_WAVEFORMATEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_WMAUDIO2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000161_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_WMAUDIO3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000162_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_SUBTYPE_WMAUDIO_LOSSLESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000163_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_TYPE_ANALOGAUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0482dee1_7817_11cf_8a03_00aa006ecb65); +pub const KSDATAFORMAT_TYPE_ANALOGVIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0482dde1_7817_11cf_8a03_00aa006ecb65); +pub const KSDATAFORMAT_TYPE_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x73647561_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_TYPE_AUXLine21Data: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x670aea80_3a82_11d0_b79b_00aa003767a7); +pub const KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xed0b916a_044d_11d1_aa78_00c04fc31d60); +pub const KSDATAFORMAT_TYPE_IMAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x72178c23_e45b_11d5_bc2a_00b0d0f3f4ab); +pub const KSDATAFORMAT_TYPE_MIDI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7364696d_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_TYPE_MPEG2_PES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d8020_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_TYPE_MPEG2_PROGRAM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d8022_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_TYPE_MPEG2_TRANSPORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d8023_db46_11cf_b4d1_00805f6cbbea); +pub const KSDATAFORMAT_TYPE_MUSIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe725d360_62cc_11cf_a5d6_28db04c10000); +pub const KSDATAFORMAT_TYPE_NABTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe757bca0_39ac_11d1_a9f5_00c04fbbde8f); +pub const KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36523b11_8ee5_11d1_8ca3_0060b057664a); +pub const KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36523b13_8ee5_11d1_8ca3_0060b057664a); +pub const KSDATAFORMAT_TYPE_STANDARD_PES_PACKET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36523b12_8ee5_11d1_8ca3_0060b057664a); +pub const KSDATAFORMAT_TYPE_STREAM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb83_524f_11ce_9f53_0020af0ba770); +pub const KSDATAFORMAT_TYPE_TEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x73747874_0000_0010_8000_00aa00389b71); +pub const KSDATAFORMAT_TYPE_VBI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf72a76e1_eb0a_11d0_ace4_0000c0cc16ba); +pub const KSDATAFORMAT_TYPE_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x73646976_0000_0010_8000_00aa00389b71); +pub const KSDATARANGE_BIT_ATTRIBUTES: u32 = 1u32; +pub const KSDATARANGE_BIT_REQUIRED_ATTRIBUTES: u32 = 2u32; +pub const KSDEGRADESETID_Standard: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9f564180_704c_11d0_a5d6_28db04c10000); +pub const KSDEGRADE_STANDARD_COMPUTATION: KSDEGRADE_STANDARD = 2i32; +pub const KSDEGRADE_STANDARD_QUALITY: KSDEGRADE_STANDARD = 1i32; +pub const KSDEGRADE_STANDARD_SAMPLE: KSDEGRADE_STANDARD = 0i32; +pub const KSDEGRADE_STANDARD_SKIP: KSDEGRADE_STANDARD = 3i32; +pub const KSDEVICE_DESCRIPTOR_VERSION: u32 = 256u32; +pub const KSDEVICE_DESCRIPTOR_VERSION_2: u32 = 272u32; +pub const KSDEVICE_FLAG_ENABLE_QUERYINTERFACE: u32 = 4u32; +pub const KSDEVICE_FLAG_ENABLE_REMOTE_WAKEUP: u32 = 1u32; +pub const KSDEVICE_FLAG_LOWPOWER_PASSTHROUGH: u32 = 2u32; +pub const KSDEVICE_PROFILE_TYPE_CAMERA: u32 = 1u32; +pub const KSDEVICE_PROFILE_TYPE_UNKNOWN: u32 = 0u32; +pub const KSDEVICE_THERMAL_STATE_HIGH: KSDEVICE_THERMAL_STATE = 1i32; +pub const KSDEVICE_THERMAL_STATE_LOW: KSDEVICE_THERMAL_STATE = 0i32; +pub const KSDISPATCH_FASTIO: u32 = 2147483648u32; +pub const KSDS3D_COEFF_COUNT: KSDS3D_HRTF_COEFF_FORMAT = 2i32; +pub const KSDS3D_FILTER_METHOD_COUNT: KSDS3D_HRTF_FILTER_METHOD = 2i32; +pub const KSDS3D_FILTER_QUALITY_COUNT: KSDS3D_HRTF_FILTER_QUALITY = 2i32; +pub const KSDSOUND_3D_MODE_DISABLE: u32 = 2u32; +pub const KSDSOUND_3D_MODE_HEADRELATIVE: u32 = 1u32; +pub const KSDSOUND_3D_MODE_NORMAL: u32 = 0u32; +pub const KSDSOUND_BUFFER_CTRL_3D: u32 = 1u32; +pub const KSDSOUND_BUFFER_CTRL_FREQUENCY: u32 = 2u32; +pub const KSDSOUND_BUFFER_CTRL_HRTF_3D: u32 = 1073741824u32; +pub const KSDSOUND_BUFFER_CTRL_PAN: u32 = 4u32; +pub const KSDSOUND_BUFFER_CTRL_POSITIONNOTIFY: u32 = 16u32; +pub const KSDSOUND_BUFFER_CTRL_VOLUME: u32 = 8u32; +pub const KSDSOUND_BUFFER_LOCHARDWARE: u32 = 4u32; +pub const KSDSOUND_BUFFER_LOCSOFTWARE: u32 = 8u32; +pub const KSDSOUND_BUFFER_PRIMARY: u32 = 1u32; +pub const KSDSOUND_BUFFER_STATIC: u32 = 2u32; +pub const KSEVENTF_DPC: u32 = 16u32; +pub const KSEVENTF_EVENT_HANDLE: u32 = 1u32; +pub const KSEVENTF_EVENT_OBJECT: u32 = 4u32; +pub const KSEVENTF_KSWORKITEM: u32 = 128u32; +pub const KSEVENTF_SEMAPHORE_HANDLE: u32 = 2u32; +pub const KSEVENTF_SEMAPHORE_OBJECT: u32 = 8u32; +pub const KSEVENTF_WORKITEM: u32 = 32u32; +pub const KSEVENTSETID_AudioControlChange: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe85e9698_fa2f_11d1_95bd_00c04fb925d3); +pub const KSEVENTSETID_CameraAsyncControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x22a11754_9701_4088_b33f_6b9cbc52df5e); +pub const KSEVENTSETID_CameraEvent: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7899b2e0_6b43_4964_9d2a_a21f4061f576); +pub const KSEVENTSETID_Clock: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x364d8e20_62c7_11cf_a5d6_28db04c10000); +pub const KSEVENTSETID_Connection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f4bcbe0_9ea5_11cf_a5d6_28db04c10000); +pub const KSEVENTSETID_Device: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x288296ec_9f94_41b4_a153_aa31aeecb33f); +pub const KSEVENTSETID_DynamicFormatChange: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x162ac456_83d7_4239_96df_c75ffa138bc6); +pub const KSEVENTSETID_EXTDEV_Command: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x109c7988_b3cb_11d2_b48e_006097b3391b); +pub const KSEVENTSETID_ExtendedCameraControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x571c92c9_13a2_47e3_a649_d2a778166384); +pub const KSEVENTSETID_LoopedStreaming: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4682b940_c6ef_11d0_96d8_00aa0051e51d); +pub const KSEVENTSETID_PinCapsChange: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdd4f192e_3b78_49ad_a534_2c315b822000); +pub const KSEVENTSETID_SoundDetector: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x69785c9b_fc2d_49d6_ac32_4799f87de9f6); +pub const KSEVENTSETID_StreamAllocator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x75d95571_073c_11d0_a161_0020afd156e4); +pub const KSEVENTSETID_Telephony: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb77f12b4_ceb4_4484_8d5e_52c1e7d8762d); +pub const KSEVENTSETID_VIDCAPTOSTI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdb47de20_f628_11d1_ba41_00a0c90d2b05); +pub const KSEVENTSETID_VIDCAP_TVAUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a2e0651_28e4_11d0_a18c_00a0c9118956); +pub const KSEVENTSETID_VPNotify: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x20c5598e_d3c8_11d0_8dfc_00c04fd7c08b); +pub const KSEVENTSETID_VPVBINotify: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xec529b01_1a1f_11d1_bad9_00609744111a); +pub const KSEVENTSETID_VolumeLimit: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xda168465_3a7c_4858_9d4a_3e8e24701aef); +pub const KSEVENT_CAMERACONTROL_FOCUS: KSEVENT_CAMERACONTROL = 0i32; +pub const KSEVENT_CAMERACONTROL_ZOOM: KSEVENT_CAMERACONTROL = 1i32; +pub const KSEVENT_CLOCK_INTERVAL_MARK: KSEVENT_CLOCK_POSITION = 0i32; +pub const KSEVENT_CLOCK_POSITION_MARK: KSEVENT_CLOCK_POSITION = 1i32; +pub const KSEVENT_CONNECTION_DATADISCONTINUITY: KSEVENT_CONNECTION = 1i32; +pub const KSEVENT_CONNECTION_ENDOFSTREAM: KSEVENT_CONNECTION = 4i32; +pub const KSEVENT_CONNECTION_POSITIONUPDATE: KSEVENT_CONNECTION = 0i32; +pub const KSEVENT_CONNECTION_PRIORITY: KSEVENT_CONNECTION = 3i32; +pub const KSEVENT_CONNECTION_TIMEDISCONTINUITY: KSEVENT_CONNECTION = 2i32; +pub const KSEVENT_CONTROL_CHANGE: KSEVENT_AUDIO_CONTROL_CHANGE = 0i32; +pub const KSEVENT_CROSSBAR_CHANGED: KSEVENT_CROSSBAR = 0i32; +pub const KSEVENT_DEVICE_LOST: KSEVENT_DEVICE = 0i32; +pub const KSEVENT_DEVICE_PREEMPTED: KSEVENT_DEVICE = 1i32; +pub const KSEVENT_DEVICE_THERMAL_HIGH: KSEVENT_DEVICE = 2i32; +pub const KSEVENT_DEVICE_THERMAL_LOW: KSEVENT_DEVICE = 3i32; +pub const KSEVENT_DYNAMIC_FORMAT_CHANGE: KSEVENT_DYNAMICFORMATCHANGE = 0i32; +pub const KSEVENT_ENTRY_BUFFERED: u32 = 4u32; +pub const KSEVENT_ENTRY_DELETED: u32 = 1u32; +pub const KSEVENT_ENTRY_ONESHOT: u32 = 2u32; +pub const KSEVENT_EXTDEV_COMMAND_BUSRESET: KSEVENT_DEVCMD = 2i32; +pub const KSEVENT_EXTDEV_COMMAND_CONTROL_INTERIM_READY: KSEVENT_DEVCMD = 1i32; +pub const KSEVENT_EXTDEV_COMMAND_NOTIFY_INTERIM_READY: KSEVENT_DEVCMD = 0i32; +pub const KSEVENT_EXTDEV_NOTIFY_MEDIUM_CHANGE: KSEVENT_DEVCMD = 7i32; +pub const KSEVENT_EXTDEV_NOTIFY_REMOVAL: KSEVENT_DEVCMD = 6i32; +pub const KSEVENT_EXTDEV_OPERATION_MODE_UPDATE: KSEVENT_DEVCMD = 4i32; +pub const KSEVENT_EXTDEV_TIMECODE_UPDATE: KSEVENT_DEVCMD = 3i32; +pub const KSEVENT_EXTDEV_TRANSPORT_STATE_UPDATE: KSEVENT_DEVCMD = 5i32; +pub const KSEVENT_LOOPEDSTREAMING_POSITION: KSEVENT_LOOPEDSTREAMING = 0i32; +pub const KSEVENT_PHOTO_SAMPLE_SCANNED: KSEVENT_CAMERAEVENT = 0i32; +pub const KSEVENT_PINCAPS_FORMATCHANGE: KSEVENT_PINCAPS_CHANGENOTIFICATIONS = 0i32; +pub const KSEVENT_PINCAPS_JACKINFOCHANGE: KSEVENT_PINCAPS_CHANGENOTIFICATIONS = 1i32; +pub const KSEVENT_SOUNDDETECTOR_MATCHDETECTED: KSEVENT_SOUNDDETECTOR = 1i32; +pub const KSEVENT_STREAMALLOCATOR_FREEFRAME: KSEVENT_STREAMALLOCATOR = 1i32; +pub const KSEVENT_STREAMALLOCATOR_INTERNAL_FREEFRAME: KSEVENT_STREAMALLOCATOR = 0i32; +pub const KSEVENT_TELEPHONY_ENDPOINTPAIRS_CHANGED: KSEVENT_TELEPHONY = 0i32; +pub const KSEVENT_TUNER_CHANGED: KSEVENT_TUNER = 0i32; +pub const KSEVENT_TUNER_INITIATE_SCAN: KSEVENT_TUNER = 1i32; +pub const KSEVENT_TVAUDIO_CHANGED: KSEVENT_TVAUDIO = 0i32; +pub const KSEVENT_TYPE_BASICSUPPORT: u32 = 512u32; +pub const KSEVENT_TYPE_ENABLE: u32 = 1u32; +pub const KSEVENT_TYPE_ENABLEBUFFERED: u32 = 4u32; +pub const KSEVENT_TYPE_ONESHOT: u32 = 2u32; +pub const KSEVENT_TYPE_QUERYBUFFER: u32 = 1024u32; +pub const KSEVENT_TYPE_SETSUPPORT: u32 = 256u32; +pub const KSEVENT_TYPE_TOPOLOGY: u32 = 268435456u32; +pub const KSEVENT_VIDCAPTOSTI_EXT_TRIGGER: KSEVENT_VIDCAPTOSTI = 0i32; +pub const KSEVENT_VIDCAP_AUTO_UPDATE: KSEVENT_VIDCAPTOSTI = 1i32; +pub const KSEVENT_VIDCAP_SEARCH: KSEVENT_VIDCAPTOSTI = 2i32; +pub const KSEVENT_VIDEODECODER_CHANGED: KSEVENT_VIDEODECODER = 0i32; +pub const KSEVENT_VOLUMELIMIT_CHANGED: KSEVENT_VOLUMELIMIT = 0i32; +pub const KSEVENT_VPNOTIFY_FORMATCHANGE: KSEVENT_VPNOTIFY = 0i32; +pub const KSEVENT_VPVBINOTIFY_FORMATCHANGE: KSEVENT_VPVBINOTIFY = 0i32; +pub const KSFILTER_FLAG_CRITICAL_PROCESSING: u32 = 2u32; +pub const KSFILTER_FLAG_DENY_USERMODE_ACCESS: u32 = 2147483648u32; +pub const KSFILTER_FLAG_DISPATCH_LEVEL_PROCESSING: u32 = 1u32; +pub const KSFILTER_FLAG_HYPERCRITICAL_PROCESSING: u32 = 4u32; +pub const KSFILTER_FLAG_PRIORITIZE_REFERENCEGUID: u32 = 16u32; +pub const KSFILTER_FLAG_RECEIVE_ZERO_LENGTH_SAMPLES: u32 = 8u32; +pub const KSFRAMETIME_VARIABLESIZE: u32 = 1u32; +pub const KSINTERFACESETID_FileIo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8c6f932c_e771_11d0_b8ff_00a0c9223196); +pub const KSINTERFACESETID_Media: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3a13eb40_30a7_11d0_a5d6_28db04c10000); +pub const KSINTERFACESETID_Standard: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1a8766a0_62ce_11cf_a5d6_28db04c10000); +pub const KSINTERFACE_FILEIO_STREAMING: KSINTERFACE_FILEIO = 0i32; +pub const KSINTERFACE_MEDIA_MUSIC: KSINTERFACE_MEDIA = 0i32; +pub const KSINTERFACE_MEDIA_WAVE_BUFFERED: KSINTERFACE_MEDIA = 1i32; +pub const KSINTERFACE_MEDIA_WAVE_QUEUED: KSINTERFACE_MEDIA = 2i32; +pub const KSINTERFACE_STANDARD_CONTROL: KSINTERFACE_STANDARD = 2i32; +pub const KSINTERFACE_STANDARD_LOOPED_STREAMING: KSINTERFACE_STANDARD = 1i32; +pub const KSINTERFACE_STANDARD_STREAMING: KSINTERFACE_STANDARD = 0i32; +pub const KSJACK_SINK_CONNECTIONTYPE_DISPLAYPORT: KSJACK_SINK_CONNECTIONTYPE = 1i32; +pub const KSJACK_SINK_CONNECTIONTYPE_HDMI: KSJACK_SINK_CONNECTIONTYPE = 0i32; +pub const KSMEDIUMSETID_MidiBus: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x05908040_3246_11d0_a5d6_28db04c10000); +pub const KSMEDIUMSETID_Standard: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4747b320_62ce_11cf_a5d6_28db04c10000); +pub const KSMEDIUMSETID_VPBus: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa18c15ec_ce43_11d0_abe7_00a0c9223196); +pub const KSMEDIUM_STANDARD_DEVIO: u32 = 0u32; +pub const KSMEDIUM_TYPE_ANYINSTANCE: u32 = 0u32; +pub const KSMEMORY_TYPE_DEVICE_UNKNOWN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x091bb639_603f_11d1_b067_00a0c9062802); +pub const KSMEMORY_TYPE_KERNEL_NONPAGED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4a6d5fc4_7895_11d1_b069_00a0c9062802); +pub const KSMEMORY_TYPE_KERNEL_PAGED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd833f8f8_7894_11d1_b069_00a0c9062802); +pub const KSMEMORY_TYPE_SYSTEM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x091bb638_603f_11d1_b067_00a0c9062802); +pub const KSMEMORY_TYPE_USER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8cb0fc28_7893_11d1_b069_00a0c9062802); +pub const KSMETHODSETID_StreamAllocator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf6e4341_ec87_11cf_a130_0020afd156e4); +pub const KSMETHODSETID_StreamIo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65d003ca_1523_11d2_b27a_00a0c9223196); +pub const KSMETHODSETID_Wavetable: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdcef31eb_d907_11d0_9583_00c04fb925d3); +pub const KSMETHOD_STREAMALLOCATOR_ALLOC: KSMETHOD_STREAMALLOCATOR = 0i32; +pub const KSMETHOD_STREAMALLOCATOR_FREE: KSMETHOD_STREAMALLOCATOR = 1i32; +pub const KSMETHOD_STREAMIO_READ: KSMETHOD_STREAMIO = 0i32; +pub const KSMETHOD_STREAMIO_WRITE: KSMETHOD_STREAMIO = 1i32; +pub const KSMETHOD_TYPE_BASICSUPPORT: u32 = 512u32; +pub const KSMETHOD_TYPE_MODIFY: u32 = 3u32; +pub const KSMETHOD_TYPE_NONE: u32 = 0u32; +pub const KSMETHOD_TYPE_READ: u32 = 1u32; +pub const KSMETHOD_TYPE_SEND: u32 = 1u32; +pub const KSMETHOD_TYPE_SETSUPPORT: u32 = 256u32; +pub const KSMETHOD_TYPE_SOURCE: u32 = 4u32; +pub const KSMETHOD_TYPE_TOPOLOGY: u32 = 268435456u32; +pub const KSMETHOD_TYPE_WRITE: u32 = 2u32; +pub const KSMETHOD_WAVETABLE_WAVE_ALLOC: KSMETHOD_WAVETABLE = 0i32; +pub const KSMETHOD_WAVETABLE_WAVE_FIND: KSMETHOD_WAVETABLE = 2i32; +pub const KSMETHOD_WAVETABLE_WAVE_FREE: KSMETHOD_WAVETABLE = 1i32; +pub const KSMETHOD_WAVETABLE_WAVE_WRITE: KSMETHOD_WAVETABLE = 3i32; +pub const KSMETHOD_WAVE_QUEUED_BREAKLOOP: u32 = 1u32; +pub const KSMFT_CATEGORY_AUDIO_DECODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9ea73fb4_ef7a_4559_8d5d_719d8f0426c7); +pub const KSMFT_CATEGORY_AUDIO_EFFECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x11064c48_3648_4ed0_932e_05ce8ac811b7); +pub const KSMFT_CATEGORY_AUDIO_ENCODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x91c64bd0_f91e_4d8c_9276_db248279d975); +pub const KSMFT_CATEGORY_DEMULTIPLEXER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa8700a7a_939b_44c5_99d7_76226b23b3f1); +pub const KSMFT_CATEGORY_MULTIPLEXER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x059c561e_05ae_4b61_b69d_55b61ee54a7b); +pub const KSMFT_CATEGORY_OTHER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x90175d57_b7ea_4901_aeb3_933a8747756f); +pub const KSMFT_CATEGORY_VIDEO_DECODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd6c02d4b_6833_45b4_971a_05a4b04bab91); +pub const KSMFT_CATEGORY_VIDEO_EFFECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x12e17c21_532c_4a6e_8a1c_40825a736397); +pub const KSMFT_CATEGORY_VIDEO_ENCODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf79eac7d_e545_4387_bdee_d647d7bde42a); +pub const KSMFT_CATEGORY_VIDEO_PROCESSOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x302ea3fc_aa5f_47f9_9f7a_c2188bb16302); +pub const KSMICARRAY_MICARRAYTYPE_3D: KSMICARRAY_MICARRAYTYPE = 2i32; +pub const KSMICARRAY_MICARRAYTYPE_LINEAR: KSMICARRAY_MICARRAYTYPE = 0i32; +pub const KSMICARRAY_MICARRAYTYPE_PLANAR: KSMICARRAY_MICARRAYTYPE = 1i32; +pub const KSMICARRAY_MICTYPE_8SHAPED: KSMICARRAY_MICTYPE = 5i32; +pub const KSMICARRAY_MICTYPE_CARDIOID: KSMICARRAY_MICTYPE = 2i32; +pub const KSMICARRAY_MICTYPE_HYPERCARDIOID: KSMICARRAY_MICTYPE = 4i32; +pub const KSMICARRAY_MICTYPE_OMNIDIRECTIONAL: KSMICARRAY_MICTYPE = 0i32; +pub const KSMICARRAY_MICTYPE_SUBCARDIOID: KSMICARRAY_MICTYPE = 1i32; +pub const KSMICARRAY_MICTYPE_SUPERCARDIOID: KSMICARRAY_MICTYPE = 3i32; +pub const KSMICARRAY_MICTYPE_VENDORDEFINED: KSMICARRAY_MICTYPE = 15i32; +pub const KSMPEGVIDMODE_LTRBOX: u32 = 2u32; +pub const KSMPEGVIDMODE_PANSCAN: u32 = 1u32; +pub const KSMPEGVIDMODE_SCALE: u32 = 4u32; +pub const KSMUSIC_TECHNOLOGY_FMSYNTH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x252c5c80_62e9_11cf_a5d6_28db04c10000); +pub const KSMUSIC_TECHNOLOGY_PORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x86c92e60_62e8_11cf_a5d6_28db04c10000); +pub const KSMUSIC_TECHNOLOGY_SQSYNTH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0ecf4380_62e9_11cf_a5d6_28db04c10000); +pub const KSMUSIC_TECHNOLOGY_SWSYNTH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x37407736_3620_11d1_85d3_0000f8754380); +pub const KSMUSIC_TECHNOLOGY_WAVETABLE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x394ec7c0_62e9_11cf_a5d6_28db04c10000); +pub const KSNAME_Allocator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x642f5d00_4791_11d0_a5d6_28db04c10000); +pub const KSNAME_Clock: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53172480_4791_11d0_a5d6_28db04c10000); +pub const KSNAME_Filter: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b365890_165f_11d0_a195_0020afd156e4); +pub const KSNAME_Pin: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x146f1a80_4791_11d0_a5d6_28db04c10000); +pub const KSNAME_TopologyNode: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0621061a_ee75_11d0_b915_00a0c9223196); +pub const KSNODEPIN_AEC_CAPTURE_IN: u32 = 2u32; +pub const KSNODEPIN_AEC_CAPTURE_OUT: u32 = 3u32; +pub const KSNODEPIN_AEC_RENDER_IN: u32 = 1u32; +pub const KSNODEPIN_AEC_RENDER_OUT: u32 = 0u32; +pub const KSNODEPIN_DEMUX_IN: u32 = 0u32; +pub const KSNODEPIN_DEMUX_OUT: u32 = 1u32; +pub const KSNODEPIN_STANDARD_IN: u32 = 1u32; +pub const KSNODEPIN_STANDARD_OUT: u32 = 0u32; +pub const KSNODEPIN_SUM_MUX_IN: u32 = 1u32; +pub const KSNODEPIN_SUM_MUX_OUT: u32 = 0u32; +pub const KSNODETYPE_1394_DA_STREAM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21fe6_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_1394_DV_STREAM_SOUNDTRACK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21fe7_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_3D_EFFECTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x55515860_c559_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_ADC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d837fe0_c555_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_AGC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe88c9ba0_c557_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_ANALOG_CONNECTOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21fe1_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_ANALOG_TAPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220e7_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_AUDIO_ENGINE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x35caf6e4_f3b3_4168_bb4b_55e77a461c7e); +pub const KSNODETYPE_AUDIO_KEYWORDDETECTOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3817e0b8_df58_4375_b669_c49634331f9d); +pub const KSNODETYPE_AUDIO_LOOPBACK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8f42c0b2_91ce_4bcf_9ccd_0e599037ab35); +pub const KSNODETYPE_AUDIO_MODULE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x45aab42e_caeb_4052_8aa9_b38cb5109619); +pub const KSNODETYPE_BIDIRECTIONAL_UNDEFINED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21de0_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_CABLE_TUNER_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220ee_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_CD_PLAYER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220e3_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_CHORUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x20173f20_c559_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_COMMUNICATION_SPEAKER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21ce6_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_DAC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x507ae360_c554_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220e4_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220e5_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_DELAY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x144981e0_c558_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_DEMUX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc0eb67d4_e807_11d0_958a_00c04fb925d3); +pub const KSNODETYPE_DESKTOP_MICROPHONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21be2_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_DESKTOP_SPEAKER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21ce4_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_DEV_SPECIFIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x941c7ac0_c559_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_DIGITAL_AUDIO_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21fe2_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_DISPLAYPORT_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe47e4031_3ea6_418d_8f9b_b73843ccba97); +pub const KSNODETYPE_DOWN_LINE_PHONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21ee3_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_DRM_DESCRAMBLE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xffbb6e3f_ccfe_4d84_90d9_421418b03a8e); +pub const KSNODETYPE_DSS_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220ef_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_DVD_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220eb_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_DYN_RANGE_COMPRESSOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x08c8a6a8_601f_4af8_8793_d905ff4ca97d); +pub const KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21de5_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21de4_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_EMBEDDED_UNDEFINED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220e0_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_EQUALIZATION_NOISE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220e2_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_EQUALIZER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9d41b4a0_c557_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_EXTERNAL_UNDEFINED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21fe0_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_FM_RX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x834a733c_f485_41c0_a62b_513025014e40); +pub const KSNODETYPE_HANDSET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21de1_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_HDMI_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd1b9cc2a_f519_417f_91c9_55fa65481001); +pub const KSNODETYPE_HEADPHONES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21ce2_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_HEADSET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21de2_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21ce3_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_INPUT_UNDEFINED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21be0_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_LEGACY_AUDIO_CONNECTOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21fe4_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220e1_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_LINE_CONNECTOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21fe3_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_LOUDNESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x41887440_c558_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21ce7_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_MICROPHONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21be1_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_MICROPHONE_ARRAY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21be5_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_MIDI_ELEMENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x01c6fe66_6e48_4c65_ac9b_52db5d656c7e); +pub const KSNODETYPE_MIDI_JACK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x265e0c3f_fa39_4df3_ab04_be01b91e299a); +pub const KSNODETYPE_MINIDISK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220e6_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_MULTITRACK_RECORDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220f2_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_MUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x02b223c0_c557_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_MUX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2ceaf780_c556_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_NOISE_SUPPRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe07f903f_62fd_4e60_8cdd_dea7236665b5); +pub const KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21be4_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_OUTPUT_UNDEFINED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21ce0_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_PARAMETRIC_EQUALIZER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x19bb3a6a_ce2b_4442_87ec_6727c3cab477); +pub const KSNODETYPE_PEAKMETER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa085651e_5f0d_4b36_a869_d195d6ab4b9e); +pub const KSNODETYPE_PERSONAL_MICROPHONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21be3_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_PHONE_LINE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21ee1_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_PHONOGRAPH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220e8_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_PROCESSING_MICROPHONE_ARRAY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21be6_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_PROLOGIC_DECODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x831c2c80_c558_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_PROLOGIC_ENCODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8074c5b2_3c66_11d2_b45a_3078302c2030); +pub const KSNODETYPE_RADIO_RECEIVER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220f0_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_RADIO_TRANSMITTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220f1_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_REVERB: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xef0328e0_c558_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_ROOM_SPEAKER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21ce5_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_SATELLITE_RECEIVER_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220ed_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_SPDIF_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21fe5_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_SPEAKER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21ce1_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21de3_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_SPEAKERS_STATIC_JACK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x28e04f87_4dbe_4f8d_8589_025d209dfb4a); +pub const KSNODETYPE_SRC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9db7b9e0_c555_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_STEREO_WIDE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa9e69800_c558_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_SUM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xda441a60_c556_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_SUPERMIX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe573adc0_c555_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_SYNTHESIZER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220f3_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_TELEPHONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21ee2_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_TELEPHONY_BIDI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x686d7cc0_d903_4258_b443_3a3d3580741c); +pub const KSNODETYPE_TELEPHONY_UNDEFINED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff21ee0_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_TONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7607e580_c557_11d0_8a2b_00a0c9255ac1); +pub const KSNODETYPE_TV_TUNER_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220ec_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_UPDOWN_MIX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb7edc5cf_7b63_4ee2_a100_29ee2cb6b2de); +pub const KSNODETYPE_VCR_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220e9_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_VIDEO_CAMERA_TERMINAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff229e6_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_VIDEO_DISC_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff220ea_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_VIDEO_INPUT_MTT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff229e7_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_VIDEO_INPUT_TERMINAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff229e2_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_VIDEO_OUTPUT_MTT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff229e8_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_VIDEO_OUTPUT_TERMINAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff229e3_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_VIDEO_PROCESSING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff229e5_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_VIDEO_SELECTOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff229e4_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_VIDEO_STREAMING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdff229e1_f70f_11d0_b917_00a0c9223196); +pub const KSNODETYPE_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3a5acc00_c557_11d0_8a2b_00a0c9255ac1); +pub const KSNOTIFICATIONID_AudioModule: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9c2220f0_d9a6_4d5c_a036_573857fd50d2); +pub const KSNOTIFICATIONID_SoundDetector: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6389d844_bb32_4c4c_a802_f4b4b77afead); +pub const KSPIN_COMMUNICATION_BOTH: KSPIN_COMMUNICATION = 3i32; +pub const KSPIN_COMMUNICATION_BRIDGE: KSPIN_COMMUNICATION = 4i32; +pub const KSPIN_COMMUNICATION_NONE: KSPIN_COMMUNICATION = 0i32; +pub const KSPIN_COMMUNICATION_SINK: KSPIN_COMMUNICATION = 1i32; +pub const KSPIN_COMMUNICATION_SOURCE: KSPIN_COMMUNICATION = 2i32; +pub const KSPIN_DATAFLOW_IN: KSPIN_DATAFLOW = 1i32; +pub const KSPIN_DATAFLOW_OUT: KSPIN_DATAFLOW = 2i32; +pub const KSPIN_FLAG_ASYNCHRONOUS_PROCESSING: u32 = 8u32; +pub const KSPIN_FLAG_CRITICAL_PROCESSING: u32 = 2u32; +pub const KSPIN_FLAG_DENY_USERMODE_ACCESS: u32 = 2147483648u32; +pub const KSPIN_FLAG_DISPATCH_LEVEL_PROCESSING: u32 = 1u32; +pub const KSPIN_FLAG_DISTINCT_TRAILING_EDGE: u32 = 512u32; +pub const KSPIN_FLAG_DO_NOT_INITIATE_PROCESSING: u32 = 16u32; +pub const KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT: u32 = 524288u32; +pub const KSPIN_FLAG_ENFORCE_FIFO: u32 = 128u32; +pub const KSPIN_FLAG_FIXED_FORMAT: u32 = 1048576u32; +pub const KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING: u32 = 64u32; +pub const KSPIN_FLAG_GENERATE_EOS_EVENTS: u32 = 2097152u32; +pub const KSPIN_FLAG_GENERATE_MAPPINGS: u32 = 256u32; +pub const KSPIN_FLAG_HYPERCRITICAL_PROCESSING: u32 = 4u32; +pub const KSPIN_FLAG_IMPLEMENT_CLOCK: u32 = 4194304u32; +pub const KSPIN_FLAG_INITIATE_PROCESSING_ON_EVERY_ARRIVAL: u32 = 32u32; +pub const KSPIN_FLAG_PROCESS_IF_ANY_IN_RUN_STATE: u32 = 16777216u32; +pub const KSPIN_FLAG_PROCESS_IN_RUN_STATE_ONLY: u32 = 65536u32; +pub const KSPIN_FLAG_SOME_FRAMES_REQUIRED_FOR_PROCESSING: u32 = 8388608u32; +pub const KSPIN_FLAG_SPLITTER: u32 = 131072u32; +pub const KSPIN_FLAG_USE_STANDARD_TRANSPORT: u32 = 262144u32; +pub const KSPIN_MDL_CACHING_NOTIFY_ADDSAMPLE: KSPIN_MDL_CACHING_EVENT = 3i32; +pub const KSPIN_MDL_CACHING_NOTIFY_CLEANALL_NOWAIT: KSPIN_MDL_CACHING_EVENT = 2i32; +pub const KSPIN_MDL_CACHING_NOTIFY_CLEANALL_WAIT: KSPIN_MDL_CACHING_EVENT = 1i32; +pub const KSPIN_MDL_CACHING_NOTIFY_CLEANUP: KSPIN_MDL_CACHING_EVENT = 0i32; +pub const KSPRIORITY_EXCLUSIVE: u32 = 4294967295u32; +pub const KSPRIORITY_HIGH: u32 = 2147483648u32; +pub const KSPRIORITY_LOW: u32 = 1u32; +pub const KSPRIORITY_NORMAL: u32 = 1073741824u32; +pub const KSPROBE_ALLOCATEMDL: u32 = 16u32; +pub const KSPROBE_ALLOWFORMATCHANGE: u32 = 128u32; +pub const KSPROBE_MODIFY: u32 = 512u32; +pub const KSPROBE_PROBEANDLOCK: u32 = 32u32; +pub const KSPROBE_STREAMREAD: u32 = 0u32; +pub const KSPROBE_STREAMWRITE: u32 = 1u32; +pub const KSPROBE_SYSTEMADDRESS: u32 = 64u32; +pub const KSPROPERTYSETID_ExtendedCameraControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1cb79112_c0d2_4213_9ca6_cd4fdb927972); +pub const KSPROPERTYSETID_NetworkCameraControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e780f09_5745_4e3a_bc9f_f226ea43a6ec); +pub const KSPROPERTYSETID_PerFrameSettingControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf1f3e261_dee6_4537_bff5_ee206db54aac); +pub const KSPROPERTY_AC3_ALTERNATE_AUDIO: KSPROPERTY_AC3 = 2i32; +pub const KSPROPERTY_AC3_BIT_STREAM_MODE: KSPROPERTY_AC3 = 4i32; +pub const KSPROPERTY_AC3_DIALOGUE_LEVEL: KSPROPERTY_AC3 = 5i32; +pub const KSPROPERTY_AC3_DOWNMIX: KSPROPERTY_AC3 = 3i32; +pub const KSPROPERTY_AC3_ERROR_CONCEALMENT: KSPROPERTY_AC3 = 1i32; +pub const KSPROPERTY_AC3_LANGUAGE_CODE: KSPROPERTY_AC3 = 6i32; +pub const KSPROPERTY_AC3_ROOM_TYPE: KSPROPERTY_AC3 = 7i32; +pub const KSPROPERTY_ALLOCATOR_CLEANUP_CACHEDMDLPAGES: KSPPROPERTY_ALLOCATOR_MDLCACHING = 1i32; +pub const KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS: KSPROPERTY_ALLOCATOR_CONTROL = 2i32; +pub const KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE: KSPROPERTY_ALLOCATOR_CONTROL = 3i32; +pub const KSPROPERTY_ALLOCATOR_CONTROL_HONOR_COUNT: KSPROPERTY_ALLOCATOR_CONTROL = 0i32; +pub const KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE: KSPROPERTY_ALLOCATOR_CONTROL = 1i32; +pub const KSPROPERTY_ATN_READER: KSPROPERTY_TIMECODE = 1i32; +pub const KSPROPERTY_AUDDECOUT_CUR_MODE: KSPROPERTY_AUDDECOUT = 1i32; +pub const KSPROPERTY_AUDDECOUT_MODES: KSPROPERTY_AUDDECOUT = 0i32; +pub const KSPROPERTY_AUDIOENGINE_BUFFER_SIZE_RANGE: KSPROPERTY_AUDIOENGINE = 7i32; +pub const KSPROPERTY_AUDIOENGINE_DESCRIPTOR: KSPROPERTY_AUDIOENGINE = 6i32; +pub const KSPROPERTY_AUDIOENGINE_DEVICECONTROLS: KSPROPERTY_AUDIOENGINE = 10i32; +pub const KSPROPERTY_AUDIOENGINE_DEVICEFORMAT: KSPROPERTY_AUDIOENGINE = 4i32; +pub const KSPROPERTY_AUDIOENGINE_GFXENABLE: KSPROPERTY_AUDIOENGINE = 1i32; +pub const KSPROPERTY_AUDIOENGINE_LFXENABLE: KSPROPERTY_AUDIOENGINE = 0i32; +pub const KSPROPERTY_AUDIOENGINE_LOOPBACK_PROTECTION: KSPROPERTY_AUDIOENGINE = 8i32; +pub const KSPROPERTY_AUDIOENGINE_MIXFORMAT: KSPROPERTY_AUDIOENGINE = 2i32; +pub const KSPROPERTY_AUDIOENGINE_SUPPORTEDDEVICEFORMATS: KSPROPERTY_AUDIOENGINE = 5i32; +pub const KSPROPERTY_AUDIOENGINE_VOLUMELEVEL: KSPROPERTY_AUDIOENGINE = 9i32; +pub const KSPROPERTY_AUDIOMODULE_COMMAND: KSPROPERTY_AUDIOMODULE = 2i32; +pub const KSPROPERTY_AUDIOMODULE_DESCRIPTORS: KSPROPERTY_AUDIOMODULE = 1i32; +pub const KSPROPERTY_AUDIOMODULE_NOTIFICATION_DEVICE_ID: KSPROPERTY_AUDIOMODULE = 3i32; +pub const KSPROPERTY_AUDIOPOSTURE_ORIENTATION: KSPROPERTY_AUDIOPOSTURE = 1i32; +pub const KSPROPERTY_AUDIORESOURCEMANAGEMENT_RESOURCEGROUP: KSPROPERTY_AUDIORESOURCEMANAGEMENT = 0i32; +pub const KSPROPERTY_AUDIOSIGNALPROCESSING_MODES: KSPROPERTY_AUDIOSIGNALPROCESSING = 0i32; +pub const KSPROPERTY_AUDIO_3D_INTERFACE: KSPROPERTY_AUDIO = 36i32; +pub const KSPROPERTY_AUDIO_AGC: KSPROPERTY_AUDIO = 21i32; +pub const KSPROPERTY_AUDIO_ALGORITHM_INSTANCE: KSPROPERTY_AUDIO = 38i32; +pub const KSPROPERTY_AUDIO_BASS: KSPROPERTY_AUDIO = 14i32; +pub const KSPROPERTY_AUDIO_BASS_BOOST: KSPROPERTY_AUDIO = 17i32; +pub const KSPROPERTY_AUDIO_BUFFER_DURATION: u32 = 1u32; +pub const KSPROPERTY_AUDIO_CHANNEL_CONFIG: KSPROPERTY_AUDIO = 3i32; +pub const KSPROPERTY_AUDIO_CHORUS_LEVEL: KSPROPERTY_AUDIO = 27i32; +pub const KSPROPERTY_AUDIO_CHORUS_MODULATION_DEPTH: KSPROPERTY_AUDIO = 47i32; +pub const KSPROPERTY_AUDIO_CHORUS_MODULATION_RATE: KSPROPERTY_AUDIO = 46i32; +pub const KSPROPERTY_AUDIO_COPY_PROTECTION: KSPROPERTY_AUDIO = 2i32; +pub const KSPROPERTY_AUDIO_CPU_RESOURCES: KSPROPERTY_AUDIO = 33i32; +pub const KSPROPERTY_AUDIO_DELAY: KSPROPERTY_AUDIO = 22i32; +pub const KSPROPERTY_AUDIO_DEMUX_DEST: KSPROPERTY_AUDIO = 29i32; +pub const KSPROPERTY_AUDIO_DEV_SPECIFIC: KSPROPERTY_AUDIO = 28i32; +pub const KSPROPERTY_AUDIO_DYNAMIC_RANGE: KSPROPERTY_AUDIO = 6i32; +pub const KSPROPERTY_AUDIO_DYNAMIC_SAMPLING_RATE: KSPROPERTY_AUDIO = 9i32; +pub const KSPROPERTY_AUDIO_EQ_BANDS: KSPROPERTY_AUDIO = 20i32; +pub const KSPROPERTY_AUDIO_EQ_LEVEL: KSPROPERTY_AUDIO = 18i32; +pub const KSPROPERTY_AUDIO_FILTER_STATE: KSPROPERTY_AUDIO = 39i32; +pub const KSPROPERTY_AUDIO_LATENCY: KSPROPERTY_AUDIO = 1i32; +pub const KSPROPERTY_AUDIO_LINEAR_BUFFER_POSITION: KSPROPERTY_AUDIO = 54i32; +pub const KSPROPERTY_AUDIO_LOUDNESS: KSPROPERTY_AUDIO = 23i32; +pub const KSPROPERTY_AUDIO_MANUFACTURE_GUID: KSPROPERTY_AUDIO = 31i32; +pub const KSPROPERTY_AUDIO_MIC_ARRAY_GEOMETRY: KSPROPERTY_AUDIO = 51i32; +pub const KSPROPERTY_AUDIO_MIC_SENSITIVITY: KSPROPERTY_AUDIO = 58i32; +pub const KSPROPERTY_AUDIO_MIC_SENSITIVITY2: KSPROPERTY_AUDIO = 60i32; +pub const KSPROPERTY_AUDIO_MIC_SNR: KSPROPERTY_AUDIO = 59i32; +pub const KSPROPERTY_AUDIO_MID: KSPROPERTY_AUDIO = 15i32; +pub const KSPROPERTY_AUDIO_MIX_LEVEL_CAPS: KSPROPERTY_AUDIO = 11i32; +pub const KSPROPERTY_AUDIO_MIX_LEVEL_TABLE: KSPROPERTY_AUDIO = 10i32; +pub const KSPROPERTY_AUDIO_MUTE: KSPROPERTY_AUDIO = 13i32; +pub const KSPROPERTY_AUDIO_MUX_SOURCE: KSPROPERTY_AUDIO = 12i32; +pub const KSPROPERTY_AUDIO_NUM_EQ_BANDS: KSPROPERTY_AUDIO = 19i32; +pub const KSPROPERTY_AUDIO_PEAKMETER: KSPROPERTY_AUDIO = 37i32; +pub const KSPROPERTY_AUDIO_PEAKMETER2: KSPROPERTY_AUDIO = 55i32; +pub const KSPROPERTY_AUDIO_PEQ_BAND_CENTER_FREQ: KSPROPERTY_AUDIO = 43i32; +pub const KSPROPERTY_AUDIO_PEQ_BAND_LEVEL: KSPROPERTY_AUDIO = 45i32; +pub const KSPROPERTY_AUDIO_PEQ_BAND_Q_FACTOR: KSPROPERTY_AUDIO = 44i32; +pub const KSPROPERTY_AUDIO_PEQ_MAX_BANDS: KSPROPERTY_AUDIO = 41i32; +pub const KSPROPERTY_AUDIO_PEQ_NUM_BANDS: KSPROPERTY_AUDIO = 42i32; +pub const KSPROPERTY_AUDIO_POSITION: KSPROPERTY_AUDIO = 5i32; +pub const KSPROPERTY_AUDIO_POSITIONEX: KSPROPERTY_AUDIO = 50i32; +pub const KSPROPERTY_AUDIO_PREFERRED_STATUS: KSPROPERTY_AUDIO = 40i32; +pub const KSPROPERTY_AUDIO_PRESENTATION_POSITION: KSPROPERTY_AUDIO = 52i32; +pub const KSPROPERTY_AUDIO_PRODUCT_GUID: KSPROPERTY_AUDIO = 32i32; +pub const KSPROPERTY_AUDIO_QUALITY: KSPROPERTY_AUDIO = 7i32; +pub const KSPROPERTY_AUDIO_REVERB_DELAY_FEEDBACK: KSPROPERTY_AUDIO = 49i32; +pub const KSPROPERTY_AUDIO_REVERB_LEVEL: KSPROPERTY_AUDIO = 26i32; +pub const KSPROPERTY_AUDIO_REVERB_TIME: KSPROPERTY_AUDIO = 48i32; +pub const KSPROPERTY_AUDIO_SAMPLING_RATE: KSPROPERTY_AUDIO = 8i32; +pub const KSPROPERTY_AUDIO_STEREO_ENHANCE: KSPROPERTY_AUDIO = 30i32; +pub const KSPROPERTY_AUDIO_STEREO_SPEAKER_GEOMETRY: KSPROPERTY_AUDIO = 34i32; +pub const KSPROPERTY_AUDIO_SURROUND_ENCODE: KSPROPERTY_AUDIO = 35i32; +pub const KSPROPERTY_AUDIO_TREBLE: KSPROPERTY_AUDIO = 16i32; +pub const KSPROPERTY_AUDIO_VOLUMELEVEL: KSPROPERTY_AUDIO = 4i32; +pub const KSPROPERTY_AUDIO_VOLUMELIMIT_ENGAGED: KSPROPERTY_AUDIO = 57i32; +pub const KSPROPERTY_AUDIO_WAVERT_CURRENT_WRITE_LASTBUFFER_POSITION: KSPROPERTY_AUDIO = 56i32; +pub const KSPROPERTY_AUDIO_WAVERT_CURRENT_WRITE_POSITION: KSPROPERTY_AUDIO = 53i32; +pub const KSPROPERTY_AUDIO_WIDENESS: KSPROPERTY_AUDIO = 25i32; +pub const KSPROPERTY_AUDIO_WIDE_MODE: KSPROPERTY_AUDIO = 24i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYGEOGRAPHIC: KSPROPERTY_BIBLIOGRAPHIC = 825570848i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYPERSONALNAME: KSPROPERTY_BIBLIOGRAPHIC = 808465952i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYRELATED: KSPROPERTY_BIBLIOGRAPHIC = 808728352i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTITLE: KSPROPERTY_BIBLIOGRAPHIC = 808727584i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTOPICALTERM: KSPROPERTY_BIBLIOGRAPHIC = 808793632i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYUNIFORMTITLE: KSPROPERTY_BIBLIOGRAPHIC = 808662816i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDFORMAVAILABLE: KSPROPERTY_BIBLIOGRAPHIC = 808662304i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_AWARDS: KSPROPERTY_BIBLIOGRAPHIC = 909653280i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_BIBLIOGRAPHYNOTE: KSPROPERTY_BIBLIOGRAPHIC = 875574560i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_CATALOGINGSOURCE: KSPROPERTY_BIBLIOGRAPHIC = 808726560i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_CITATION: KSPROPERTY_BIBLIOGRAPHIC = 808531232i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_CONTENTSNOTE: KSPROPERTY_BIBLIOGRAPHIC = 892351776i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_CREATIONCREDIT: KSPROPERTY_BIBLIOGRAPHIC = 942683424i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_GENERALNOTE: KSPROPERTY_BIBLIOGRAPHIC = 808465696i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMCURRICULUM: KSPROPERTY_BIBLIOGRAPHIC = 943011360i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMGENRE: KSPROPERTY_BIBLIOGRAPHIC = 892679712i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_ISBN: KSPROPERTY_BIBLIOGRAPHIC = 808595488i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_ISSN: KSPROPERTY_BIBLIOGRAPHIC = 842149920i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_LCCN: KSPROPERTY_BIBLIOGRAPHIC = 808529952i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_LEADER: KSPROPERTY_BIBLIOGRAPHIC = 1380207648i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_MAINCORPORATEBODY: KSPROPERTY_BIBLIOGRAPHIC = 808530208i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_MAINMEETINGNAME: KSPROPERTY_BIBLIOGRAPHIC = 825307424i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_MAINPERSONALNAME: KSPROPERTY_BIBLIOGRAPHIC = 808464672i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_MAINUNIFORMTITLE: KSPROPERTY_BIBLIOGRAPHIC = 808661280i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_PARTICIPANT: KSPROPERTY_BIBLIOGRAPHIC = 825308448i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_PHYSICALDESCRIPTION: KSPROPERTY_BIBLIOGRAPHIC = 808465184i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_PUBLICATION: KSPROPERTY_BIBLIOGRAPHIC = 808858144i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENT: KSPROPERTY_BIBLIOGRAPHIC = 809055264i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTPERSONALNAME: KSPROPERTY_BIBLIOGRAPHIC = 808466464i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTUNIFORMTITLE: KSPROPERTY_BIBLIOGRAPHIC = 808663072i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_SUMMARY: KSPROPERTY_BIBLIOGRAPHIC = 808596768i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_SYSTEMDETAILS: KSPROPERTY_BIBLIOGRAPHIC = 942880032i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_TARGETAUDIENCE: KSPROPERTY_BIBLIOGRAPHIC = 825373984i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_TITLESTATEMENT: KSPROPERTY_BIBLIOGRAPHIC = 892613152i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_UNIFORMTITLE: KSPROPERTY_BIBLIOGRAPHIC = 808727072i32; +pub const KSPROPERTY_BIBLIOGRAPHIC_VARYINGFORMTITLE: KSPROPERTY_BIBLIOGRAPHIC = 909390368i32; +pub const KSPROPERTY_CAMERACONTROL_AUTO_EXPOSURE_PRIORITY: KSPROPERTY_VIDCAP_CAMERACONTROL = 19i32; +pub const KSPROPERTY_CAMERACONTROL_EXPOSURE: KSPROPERTY_VIDCAP_CAMERACONTROL = 4i32; +pub const KSPROPERTY_CAMERACONTROL_EXPOSURE_RELATIVE: KSPROPERTY_VIDCAP_CAMERACONTROL = 14i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_ADVANCEDPHOTO: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 33i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_BACKGROUNDSEGMENTATION: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 41i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_CAMERAANGLEOFFSET: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 17i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_DIGITALWINDOW: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 43i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_DIGITALWINDOW_CONFIGCAPS: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 42i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_END: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 44i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_END2: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 44i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_EVCOMPENSATION: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 16i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_EXPOSUREMODE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 12i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_EYEGAZECORRECTION: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 40i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FACEAUTH_MODE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 35i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FACEDETECTION: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 29i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FIELDOFVIEW: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 15i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FLASHMODE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 9i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FOCUSMODE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 13i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FOCUSPRIORITY: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 19i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FOCUSSTATE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 20i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_HISTOGRAM: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 31i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_IRTORCHMODE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 38i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_ISO: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 14i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_ISO_ADVANCED: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 26i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_MAXVIDFPS_PHOTORES: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 5i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_MCC: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 25i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_METADATA: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 18i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_OIS: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 32i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_OPTIMIZATIONHINT: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 10i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOCONFIRMATION: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 23i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOFRAMERATE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 1i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMAXFRAMERATE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 2i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMODE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 0i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOTHUMBNAIL: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 6i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOTRIGGERTIME: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 3i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PROFILE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 34i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_RELATIVEPANELOPTIMIZATION: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 39i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_CONFIGCAPS: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 21i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_ISPCONTROL: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 22i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_SCENEMODE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 7i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_SECURE_MODE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 36i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_TORCHMODE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 8i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_VFR: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 28i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_VIDEOHDR: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 30i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_VIDEOSTABILIZATION: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 27i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_VIDEOTEMPORALDENOISING: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 37i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_WARMSTART: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 4i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_WHITEBALANCEMODE: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 11i32; +pub const KSPROPERTY_CAMERACONTROL_EXTENDED_ZOOM: KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = 24i32; +pub const KSPROPERTY_CAMERACONTROL_FLAGS_ABSOLUTE: i32 = 0i32; +pub const KSPROPERTY_CAMERACONTROL_FLAGS_ASYNCHRONOUS: i32 = 4i32; +pub const KSPROPERTY_CAMERACONTROL_FLAGS_AUTO: i32 = 1i32; +pub const KSPROPERTY_CAMERACONTROL_FLAGS_MANUAL: i32 = 2i32; +pub const KSPROPERTY_CAMERACONTROL_FLAGS_RELATIVE: i32 = 16i32; +pub const KSPROPERTY_CAMERACONTROL_FLASH_AUTO: i32 = 2i32; +pub const KSPROPERTY_CAMERACONTROL_FLASH_FLAGS_AUTO: i32 = 1i32; +pub const KSPROPERTY_CAMERACONTROL_FLASH_FLAGS_MANUAL: i32 = 2i32; +pub const KSPROPERTY_CAMERACONTROL_FLASH_OFF: i32 = 0i32; +pub const KSPROPERTY_CAMERACONTROL_FLASH_ON: i32 = 1i32; +pub const KSPROPERTY_CAMERACONTROL_FLASH_PROPERTY_ID: KSPROPERTY_CAMERACONTROL_FLASH = 0i32; +pub const KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH: KSPROPERTY_VIDCAP_CAMERACONTROL = 18i32; +pub const KSPROPERTY_CAMERACONTROL_FOCUS: KSPROPERTY_VIDCAP_CAMERACONTROL = 6i32; +pub const KSPROPERTY_CAMERACONTROL_FOCUS_RELATIVE: KSPROPERTY_VIDCAP_CAMERACONTROL = 16i32; +pub const KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_EXCLUSIVE_WITH_RECORD: i32 = 1i32; +pub const KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_PROPERTY_ID: KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY = 0i32; +pub const KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_SEQUENCE_EXCLUSIVE_WITH_RECORD: i32 = 2i32; +pub const KSPROPERTY_CAMERACONTROL_IRIS: KSPROPERTY_VIDCAP_CAMERACONTROL = 5i32; +pub const KSPROPERTY_CAMERACONTROL_IRIS_RELATIVE: KSPROPERTY_VIDCAP_CAMERACONTROL = 15i32; +pub const KSPROPERTY_CAMERACONTROL_PAN: KSPROPERTY_VIDCAP_CAMERACONTROL = 0i32; +pub const KSPROPERTY_CAMERACONTROL_PANTILT: KSPROPERTY_VIDCAP_CAMERACONTROL = 9i32; +pub const KSPROPERTY_CAMERACONTROL_PANTILT_RELATIVE: KSPROPERTY_VIDCAP_CAMERACONTROL = 17i32; +pub const KSPROPERTY_CAMERACONTROL_PAN_RELATIVE: KSPROPERTY_VIDCAP_CAMERACONTROL = 10i32; +pub const KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY: KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY = 0i32; +pub const KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CLEAR: KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY = 2i32; +pub const KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_SET: KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY = 1i32; +pub const KSPROPERTY_CAMERACONTROL_PRIVACY: KSPROPERTY_VIDCAP_CAMERACONTROL = 8i32; +pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_CONFIG_EXPOSURE: i32 = 512i32; +pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_CONFIG_FOCUS: i32 = 256i32; +pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_CONFIG_WB: i32 = 1024i32; +pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_CONVERGEMODE: i32 = 1073741824i32; +pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_FLAGS_ASYNC: i32 = -2147483648i32; +pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_FLAGS_AUTO: i32 = 1i32; +pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_FLAGS_MANUAL: i32 = 2i32; +pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_PROPERTY_ID: KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST = 0i32; +pub const KSPROPERTY_CAMERACONTROL_ROLL: KSPROPERTY_VIDCAP_CAMERACONTROL = 2i32; +pub const KSPROPERTY_CAMERACONTROL_ROLL_RELATIVE: KSPROPERTY_VIDCAP_CAMERACONTROL = 12i32; +pub const KSPROPERTY_CAMERACONTROL_SCANMODE: KSPROPERTY_VIDCAP_CAMERACONTROL = 7i32; +pub const KSPROPERTY_CAMERACONTROL_TILT: KSPROPERTY_VIDCAP_CAMERACONTROL = 1i32; +pub const KSPROPERTY_CAMERACONTROL_TILT_RELATIVE: KSPROPERTY_VIDCAP_CAMERACONTROL = 11i32; +pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_AUTO: i32 = 4i32; +pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_FLAGS_AUTO: i32 = 1i32; +pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_FLAGS_MANUAL: i32 = 2i32; +pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_HIGH: i32 = 1i32; +pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_LOW: i32 = 3i32; +pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_MEDIUM: i32 = 2i32; +pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_OFF: i32 = 0i32; +pub const KSPROPERTY_CAMERACONTROL_VIDEO_STABILIZATION_MODE_PROPERTY_ID: KSPROPERTY_CAMERACONTROL_VIDEO_STABILIZATION_MODE = 0i32; +pub const KSPROPERTY_CAMERACONTROL_ZOOM: KSPROPERTY_VIDCAP_CAMERACONTROL = 3i32; +pub const KSPROPERTY_CAMERACONTROL_ZOOM_RELATIVE: KSPROPERTY_VIDCAP_CAMERACONTROL = 13i32; +pub const KSPROPERTY_CAMERA_PHOTOTRIGGERTIME_CLEAR: KSPROPERTY_CAMERA_PHOTOTRIGGERTIME_FLAGS = 0i32; +pub const KSPROPERTY_CAMERA_PHOTOTRIGGERTIME_SET: KSPROPERTY_CAMERA_PHOTOTRIGGERTIME_FLAGS = 1i32; +pub const KSPROPERTY_CLOCK_CORRELATEDPHYSICALTIME: KSPROPERTY_CLOCK = 3i32; +pub const KSPROPERTY_CLOCK_CORRELATEDTIME: KSPROPERTY_CLOCK = 2i32; +pub const KSPROPERTY_CLOCK_PHYSICALTIME: KSPROPERTY_CLOCK = 1i32; +pub const KSPROPERTY_CLOCK_RESOLUTION: KSPROPERTY_CLOCK = 4i32; +pub const KSPROPERTY_CLOCK_STATE: KSPROPERTY_CLOCK = 5i32; +pub const KSPROPERTY_CLOCK_TIME: KSPROPERTY_CLOCK = 0i32; +pub const KSPROPERTY_CONNECTION_ACQUIREORDERING: KSPROPERTY_CONNECTION = 5i32; +pub const KSPROPERTY_CONNECTION_ALLOCATORFRAMING: KSPROPERTY_CONNECTION = 3i32; +pub const KSPROPERTY_CONNECTION_ALLOCATORFRAMING_EX: KSPROPERTY_CONNECTION = 6i32; +pub const KSPROPERTY_CONNECTION_DATAFORMAT: KSPROPERTY_CONNECTION = 2i32; +pub const KSPROPERTY_CONNECTION_PRIORITY: KSPROPERTY_CONNECTION = 1i32; +pub const KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT: KSPROPERTY_CONNECTION = 4i32; +pub const KSPROPERTY_CONNECTION_STARTAT: KSPROPERTY_CONNECTION = 7i32; +pub const KSPROPERTY_CONNECTION_STATE: KSPROPERTY_CONNECTION = 0i32; +pub const KSPROPERTY_COPY_MACROVISION: KSPROPERTY_COPYPROT = 5i32; +pub const KSPROPERTY_CROSSBAR_CAN_ROUTE: KSPROPERTY_VIDCAP_CROSSBAR = 2i32; +pub const KSPROPERTY_CROSSBAR_CAPS: KSPROPERTY_VIDCAP_CROSSBAR = 0i32; +pub const KSPROPERTY_CROSSBAR_INPUT_ACTIVE: KSPROPERTY_VIDCAP_CROSSBAR = 4i32; +pub const KSPROPERTY_CROSSBAR_PININFO: KSPROPERTY_VIDCAP_CROSSBAR = 1i32; +pub const KSPROPERTY_CROSSBAR_ROUTE: KSPROPERTY_VIDCAP_CROSSBAR = 3i32; +pub const KSPROPERTY_CURRENT_CAPTURE_SURFACE: KSPROPERTY_VIDMEM_TRANSPORT = 3i32; +pub const KSPROPERTY_CYCLIC_POSITION: KSPROPERTY_CYCLIC = 0i32; +pub const KSPROPERTY_DIRECTSOUND3DBUFFER_ALL: KSPROPERTY_DIRECTSOUND3DBUFFER = 0i32; +pub const KSPROPERTY_DIRECTSOUND3DBUFFER_CONEANGLES: KSPROPERTY_DIRECTSOUND3DBUFFER = 3i32; +pub const KSPROPERTY_DIRECTSOUND3DBUFFER_CONEORIENTATION: KSPROPERTY_DIRECTSOUND3DBUFFER = 4i32; +pub const KSPROPERTY_DIRECTSOUND3DBUFFER_CONEOUTSIDEVOLUME: KSPROPERTY_DIRECTSOUND3DBUFFER = 5i32; +pub const KSPROPERTY_DIRECTSOUND3DBUFFER_MAXDISTANCE: KSPROPERTY_DIRECTSOUND3DBUFFER = 7i32; +pub const KSPROPERTY_DIRECTSOUND3DBUFFER_MINDISTANCE: KSPROPERTY_DIRECTSOUND3DBUFFER = 6i32; +pub const KSPROPERTY_DIRECTSOUND3DBUFFER_MODE: KSPROPERTY_DIRECTSOUND3DBUFFER = 8i32; +pub const KSPROPERTY_DIRECTSOUND3DBUFFER_POSITION: KSPROPERTY_DIRECTSOUND3DBUFFER = 1i32; +pub const KSPROPERTY_DIRECTSOUND3DBUFFER_VELOCITY: KSPROPERTY_DIRECTSOUND3DBUFFER = 2i32; +pub const KSPROPERTY_DIRECTSOUND3DLISTENER_ALL: KSPROPERTY_DIRECTSOUND3DLISTENER = 0i32; +pub const KSPROPERTY_DIRECTSOUND3DLISTENER_ALLOCATION: KSPROPERTY_DIRECTSOUND3DLISTENER = 8i32; +pub const KSPROPERTY_DIRECTSOUND3DLISTENER_BATCH: KSPROPERTY_DIRECTSOUND3DLISTENER = 7i32; +pub const KSPROPERTY_DIRECTSOUND3DLISTENER_DISTANCEFACTOR: KSPROPERTY_DIRECTSOUND3DLISTENER = 4i32; +pub const KSPROPERTY_DIRECTSOUND3DLISTENER_DOPPLERFACTOR: KSPROPERTY_DIRECTSOUND3DLISTENER = 6i32; +pub const KSPROPERTY_DIRECTSOUND3DLISTENER_ORIENTATION: KSPROPERTY_DIRECTSOUND3DLISTENER = 3i32; +pub const KSPROPERTY_DIRECTSOUND3DLISTENER_POSITION: KSPROPERTY_DIRECTSOUND3DLISTENER = 1i32; +pub const KSPROPERTY_DIRECTSOUND3DLISTENER_ROLLOFFFACTOR: KSPROPERTY_DIRECTSOUND3DLISTENER = 5i32; +pub const KSPROPERTY_DIRECTSOUND3DLISTENER_VELOCITY: KSPROPERTY_DIRECTSOUND3DLISTENER = 2i32; +pub const KSPROPERTY_DISPLAY_ADAPTER_GUID: KSPROPERTY_VIDMEM_TRANSPORT = 1i32; +pub const KSPROPERTY_DRMAUDIOSTREAM_CONTENTID: KSPROPERTY_DRMAUDIOSTREAM = 0i32; +pub const KSPROPERTY_DROPPEDFRAMES_CURRENT: KSPROPERTY_VIDCAP_DROPPEDFRAMES = 0i32; +pub const KSPROPERTY_DVDCOPY_CHLG_KEY: KSPROPERTY_COPYPROT = 1i32; +pub const KSPROPERTY_DVDCOPY_DEC_KEY2: KSPROPERTY_COPYPROT = 3i32; +pub const KSPROPERTY_DVDCOPY_DISC_KEY: KSPROPERTY_COPYPROT = 128i32; +pub const KSPROPERTY_DVDCOPY_DVD_KEY1: KSPROPERTY_COPYPROT = 2i32; +pub const KSPROPERTY_DVDCOPY_REGION: KSPROPERTY_COPYPROT = 6i32; +pub const KSPROPERTY_DVDCOPY_SET_COPY_STATE: KSPROPERTY_COPYPROT = 7i32; +pub const KSPROPERTY_DVDCOPY_TITLE_KEY: KSPROPERTY_COPYPROT = 4i32; +pub const KSPROPERTY_DVDSUBPIC_COMPOSIT_ON: KSPROPERTY_DVDSUBPIC = 2i32; +pub const KSPROPERTY_DVDSUBPIC_HLI: KSPROPERTY_DVDSUBPIC = 1i32; +pub const KSPROPERTY_DVDSUBPIC_PALETTE: KSPROPERTY_DVDSUBPIC = 0i32; +pub const KSPROPERTY_EXTDEVICE_CAPABILITIES: KSPROPERTY_EXTDEVICE = 4i32; +pub const KSPROPERTY_EXTDEVICE_ID: KSPROPERTY_EXTDEVICE = 0i32; +pub const KSPROPERTY_EXTDEVICE_PORT: KSPROPERTY_EXTDEVICE = 3i32; +pub const KSPROPERTY_EXTDEVICE_POWER_STATE: KSPROPERTY_EXTDEVICE = 2i32; +pub const KSPROPERTY_EXTDEVICE_VERSION: KSPROPERTY_EXTDEVICE = 1i32; +pub const KSPROPERTY_EXTENSION_UNIT_CONTROL: KSPROPERTY_EXTENSION_UNIT = 1i32; +pub const KSPROPERTY_EXTENSION_UNIT_INFO: KSPROPERTY_EXTENSION_UNIT = 0i32; +pub const KSPROPERTY_EXTENSION_UNIT_PASS_THROUGH: KSPROPERTY_EXTENSION_UNIT = 65535i32; +pub const KSPROPERTY_EXTXPORT_ATN_SEARCH: KSPROPERTY_EXTXPORT = 8i32; +pub const KSPROPERTY_EXTXPORT_CAPABILITIES: KSPROPERTY_EXTXPORT = 0i32; +pub const KSPROPERTY_EXTXPORT_INPUT_SIGNAL_MODE: KSPROPERTY_EXTXPORT = 1i32; +pub const KSPROPERTY_EXTXPORT_LOAD_MEDIUM: KSPROPERTY_EXTXPORT = 3i32; +pub const KSPROPERTY_EXTXPORT_MEDIUM_INFO: KSPROPERTY_EXTXPORT = 4i32; +pub const KSPROPERTY_EXTXPORT_OUTPUT_SIGNAL_MODE: KSPROPERTY_EXTXPORT = 2i32; +pub const KSPROPERTY_EXTXPORT_RTC_SEARCH: KSPROPERTY_EXTXPORT = 9i32; +pub const KSPROPERTY_EXTXPORT_STATE: KSPROPERTY_EXTXPORT = 5i32; +pub const KSPROPERTY_EXTXPORT_STATE_NOTIFY: KSPROPERTY_EXTXPORT = 6i32; +pub const KSPROPERTY_EXTXPORT_TIMECODE_SEARCH: KSPROPERTY_EXTXPORT = 7i32; +pub const KSPROPERTY_FMRX_ANTENNAENDPOINTID: KSPROPERTY_FMRX_TOPOLOGY = 2i32; +pub const KSPROPERTY_FMRX_ENDPOINTID: KSPROPERTY_FMRX_TOPOLOGY = 0i32; +pub const KSPROPERTY_FMRX_STATE: KSPROPERTY_FMRX_CONTROL = 0i32; +pub const KSPROPERTY_FMRX_VOLUME: KSPROPERTY_FMRX_TOPOLOGY = 1i32; +pub const KSPROPERTY_GENERAL_COMPONENTID: KSPROPERTY_GENERAL = 0i32; +pub const KSPROPERTY_HRTF3D_FILTER_FORMAT: KSPROPERTY_HRTF3D = 2i32; +pub const KSPROPERTY_HRTF3D_INITIALIZE: KSPROPERTY_HRTF3D = 1i32; +pub const KSPROPERTY_HRTF3D_PARAMS: KSPROPERTY_HRTF3D = 0i32; +pub const KSPROPERTY_INTERLEAVEDAUDIO_FORMATINFORMATION: KSPROPERTY_INTERLEAVEDAUDIO = 1i32; +pub const KSPROPERTY_ITD3D_PARAMS: KSPROPERTY_ITD3D = 0i32; +pub const KSPROPERTY_JACK_CONTAINERID: KSPROPERTY_JACK = 4i32; +pub const KSPROPERTY_JACK_DESCRIPTION: KSPROPERTY_JACK = 1i32; +pub const KSPROPERTY_JACK_DESCRIPTION2: KSPROPERTY_JACK = 2i32; +pub const KSPROPERTY_JACK_DESCRIPTION3: KSPROPERTY_JACK = 5i32; +pub const KSPROPERTY_JACK_SINK_INFO: KSPROPERTY_JACK = 3i32; +pub const KSPROPERTY_MAP_CAPTURE_HANDLE_TO_VRAM_ADDRESS: KSPROPERTY_VIDMEM_TRANSPORT = 4i32; +pub const KSPROPERTY_MEDIASEEKING_AVAILABLE: KSPROPERTY_MEDIASEEKING = 7i32; +pub const KSPROPERTY_MEDIASEEKING_CAPABILITIES: KSPROPERTY_MEDIASEEKING = 0i32; +pub const KSPROPERTY_MEDIASEEKING_CONVERTTIMEFORMAT: KSPROPERTY_MEDIASEEKING = 9i32; +pub const KSPROPERTY_MEDIASEEKING_DURATION: KSPROPERTY_MEDIASEEKING = 6i32; +pub const KSPROPERTY_MEDIASEEKING_FORMATS: KSPROPERTY_MEDIASEEKING = 1i32; +pub const KSPROPERTY_MEDIASEEKING_POSITION: KSPROPERTY_MEDIASEEKING = 3i32; +pub const KSPROPERTY_MEDIASEEKING_POSITIONS: KSPROPERTY_MEDIASEEKING = 5i32; +pub const KSPROPERTY_MEDIASEEKING_PREROLL: KSPROPERTY_MEDIASEEKING = 8i32; +pub const KSPROPERTY_MEDIASEEKING_STOPPOSITION: KSPROPERTY_MEDIASEEKING = 4i32; +pub const KSPROPERTY_MEDIASEEKING_TIMEFORMAT: KSPROPERTY_MEDIASEEKING = 2i32; +pub const KSPROPERTY_MEMBER_FLAG_BASICSUPPORT_MULTICHANNEL: u32 = 2u32; +pub const KSPROPERTY_MEMBER_FLAG_BASICSUPPORT_UNIFORM: u32 = 4u32; +pub const KSPROPERTY_MEMBER_FLAG_DEFAULT: u32 = 1u32; +pub const KSPROPERTY_MEMBER_RANGES: u32 = 1u32; +pub const KSPROPERTY_MEMBER_STEPPEDRANGES: u32 = 2u32; +pub const KSPROPERTY_MEMBER_VALUES: u32 = 3u32; +pub const KSPROPERTY_MEMORY_TRANSPORT: i32 = 1i32; +pub const KSPROPERTY_MPEG2VID_16_9_PANSCAN: KSPROPERTY_MPEG2VID = 4i32; +pub const KSPROPERTY_MPEG2VID_16_9_RECT: KSPROPERTY_MPEG2VID = 3i32; +pub const KSPROPERTY_MPEG2VID_4_3_RECT: KSPROPERTY_MPEG2VID = 2i32; +pub const KSPROPERTY_MPEG2VID_CUR_MODE: KSPROPERTY_MPEG2VID = 1i32; +pub const KSPROPERTY_MPEG2VID_MODES: KSPROPERTY_MPEG2VID = 0i32; +pub const KSPROPERTY_MPEG4_MEDIATYPE_SD_BOX: KSPROPERTY_MPEG4_MEDIATYPE_ATTRIBUTES = 1i32; +pub const KSPROPERTY_NETWORKCAMERACONTROL_EVENTTOPICS_XML: KSPROPERTY_NETWORKCAMERACONTROL_PROPERTY = 3i32; +pub const KSPROPERTY_NETWORKCAMERACONTROL_METADATA: KSPROPERTY_NETWORKCAMERACONTROL_PROPERTY = 2i32; +pub const KSPROPERTY_NETWORKCAMERACONTROL_METADATA_TYPE_EVENTSINFO: KSPROPERTY_NETWORKCAMERACONTROL_METADATA_TYPE = 0i32; +pub const KSPROPERTY_NETWORKCAMERACONTROL_NTP: KSPROPERTY_NETWORKCAMERACONTROL_PROPERTY = 0i32; +pub const KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE_CUSTOM: KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE = 2i32; +pub const KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE_DISABLE: KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE = 0i32; +pub const KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE_HOSTNTP: KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE = 1i32; +pub const KSPROPERTY_NETWORKCAMERACONTROL_URI: KSPROPERTY_NETWORKCAMERACONTROL_PROPERTY = 1i32; +pub const KSPROPERTY_ONESHOT_DISCONNECT: KSPROPERTY_BTAUDIO = 1i32; +pub const KSPROPERTY_ONESHOT_RECONNECT: KSPROPERTY_BTAUDIO = 0i32; +pub const KSPROPERTY_OVERLAYUPDATE_CLIPLIST: KSPROPERTY_OVERLAYUPDATE = 1i32; +pub const KSPROPERTY_OVERLAYUPDATE_COLORKEY: KSPROPERTY_OVERLAYUPDATE = 4i32; +pub const KSPROPERTY_OVERLAYUPDATE_COLORREF: KSPROPERTY_OVERLAYUPDATE = 268435456i32; +pub const KSPROPERTY_OVERLAYUPDATE_DISPLAYCHANGE: KSPROPERTY_OVERLAYUPDATE = 16i32; +pub const KSPROPERTY_OVERLAYUPDATE_INTERESTS: KSPROPERTY_OVERLAYUPDATE = 0i32; +pub const KSPROPERTY_OVERLAYUPDATE_PALETTE: KSPROPERTY_OVERLAYUPDATE = 2i32; +pub const KSPROPERTY_OVERLAYUPDATE_VIDEOPOSITION: KSPROPERTY_OVERLAYUPDATE = 8i32; +pub const KSPROPERTY_PIN_CATEGORY: KSPROPERTY_PIN = 11i32; +pub const KSPROPERTY_PIN_CINSTANCES: KSPROPERTY_PIN = 0i32; +pub const KSPROPERTY_PIN_COMMUNICATION: KSPROPERTY_PIN = 7i32; +pub const KSPROPERTY_PIN_CONSTRAINEDDATARANGES: KSPROPERTY_PIN = 13i32; +pub const KSPROPERTY_PIN_CTYPES: KSPROPERTY_PIN = 1i32; +pub const KSPROPERTY_PIN_DATAFLOW: KSPROPERTY_PIN = 2i32; +pub const KSPROPERTY_PIN_DATAINTERSECTION: KSPROPERTY_PIN = 4i32; +pub const KSPROPERTY_PIN_DATARANGES: KSPROPERTY_PIN = 3i32; +pub const KSPROPERTY_PIN_FLAGS_ATTRIBUTE_RANGE_AWARE: u32 = 1u32; +pub const KSPROPERTY_PIN_FLAGS_MASK: u32 = 1u32; +pub const KSPROPERTY_PIN_GLOBALCINSTANCES: KSPROPERTY_PIN = 8i32; +pub const KSPROPERTY_PIN_INTERFACES: KSPROPERTY_PIN = 5i32; +pub const KSPROPERTY_PIN_MEDIUMS: KSPROPERTY_PIN = 6i32; +pub const KSPROPERTY_PIN_MODEDATAFORMATS: KSPROPERTY_PIN = 16i32; +pub const KSPROPERTY_PIN_NAME: KSPROPERTY_PIN = 12i32; +pub const KSPROPERTY_PIN_NECESSARYINSTANCES: KSPROPERTY_PIN = 9i32; +pub const KSPROPERTY_PIN_PHYSICALCONNECTION: KSPROPERTY_PIN = 10i32; +pub const KSPROPERTY_PIN_PROPOSEDATAFORMAT: KSPROPERTY_PIN = 14i32; +pub const KSPROPERTY_PIN_PROPOSEDATAFORMAT2: KSPROPERTY_PIN = 15i32; +pub const KSPROPERTY_PREFERRED_CAPTURE_SURFACE: KSPROPERTY_VIDMEM_TRANSPORT = 2i32; +pub const KSPROPERTY_QUALITY_ERROR: KSPROPERTY_QUALITY = 1i32; +pub const KSPROPERTY_QUALITY_REPORT: KSPROPERTY_QUALITY = 0i32; +pub const KSPROPERTY_RAW_AVC_CMD: KSPROPERTY_EXTXPORT = 10i32; +pub const KSPROPERTY_RTAUDIO_BUFFER: KSPROPERTY_RTAUDIO = 1i32; +pub const KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION: KSPROPERTY_RTAUDIO = 5i32; +pub const KSPROPERTY_RTAUDIO_CLOCKREGISTER: KSPROPERTY_RTAUDIO = 4i32; +pub const KSPROPERTY_RTAUDIO_GETPOSITIONFUNCTION: KSPROPERTY_RTAUDIO = 0i32; +pub const KSPROPERTY_RTAUDIO_GETREADPACKET: KSPROPERTY_RTAUDIO = 11i32; +pub const KSPROPERTY_RTAUDIO_HWLATENCY: KSPROPERTY_RTAUDIO = 2i32; +pub const KSPROPERTY_RTAUDIO_PACKETCOUNT: KSPROPERTY_RTAUDIO = 9i32; +pub const KSPROPERTY_RTAUDIO_PACKETVREGISTER: KSPROPERTY_RTAUDIO = 13i32; +pub const KSPROPERTY_RTAUDIO_POSITIONREGISTER: KSPROPERTY_RTAUDIO = 3i32; +pub const KSPROPERTY_RTAUDIO_PRESENTATION_POSITION: KSPROPERTY_RTAUDIO = 10i32; +pub const KSPROPERTY_RTAUDIO_QUERY_NOTIFICATION_SUPPORT: KSPROPERTY_RTAUDIO = 8i32; +pub const KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT: KSPROPERTY_RTAUDIO = 6i32; +pub const KSPROPERTY_RTAUDIO_SETWRITEPACKET: KSPROPERTY_RTAUDIO = 12i32; +pub const KSPROPERTY_RTAUDIO_UNREGISTER_NOTIFICATION_EVENT: KSPROPERTY_RTAUDIO = 7i32; +pub const KSPROPERTY_RTC_READER: KSPROPERTY_TIMECODE = 2i32; +pub const KSPROPERTY_SELECTOR_NUM_SOURCES: KSPROPERTY_VIDCAP_SELECTOR = 1i32; +pub const KSPROPERTY_SELECTOR_SOURCE_NODE_ID: KSPROPERTY_VIDCAP_SELECTOR = 0i32; +pub const KSPROPERTY_SOUNDDETECTOR_ARMED: KSPROPERTY_SOUNDDETECTOR = 3i32; +pub const KSPROPERTY_SOUNDDETECTOR_MATCHRESULT: KSPROPERTY_SOUNDDETECTOR = 4i32; +pub const KSPROPERTY_SOUNDDETECTOR_PATTERNS: KSPROPERTY_SOUNDDETECTOR = 2i32; +pub const KSPROPERTY_SOUNDDETECTOR_RESET: KSPROPERTY_SOUNDDETECTOR = 5i32; +pub const KSPROPERTY_SOUNDDETECTOR_STREAMINGSUPPORT: KSPROPERTY_SOUNDDETECTOR = 6i32; +pub const KSPROPERTY_SOUNDDETECTOR_SUPPORTEDPATTERNS: KSPROPERTY_SOUNDDETECTOR = 1i32; +pub const KSPROPERTY_STREAMINTERFACE_HEADERSIZE: KSPROPERTY_STREAMINTERFACE = 0i32; +pub const KSPROPERTY_STREAM_ALLOCATOR: KSPROPERTY_STREAM = 0i32; +pub const KSPROPERTY_STREAM_DEGRADATION: KSPROPERTY_STREAM = 2i32; +pub const KSPROPERTY_STREAM_FRAMETIME: KSPROPERTY_STREAM = 7i32; +pub const KSPROPERTY_STREAM_MASTERCLOCK: KSPROPERTY_STREAM = 3i32; +pub const KSPROPERTY_STREAM_PIPE_ID: KSPROPERTY_STREAM = 10i32; +pub const KSPROPERTY_STREAM_PRESENTATIONEXTENT: KSPROPERTY_STREAM = 6i32; +pub const KSPROPERTY_STREAM_PRESENTATIONTIME: KSPROPERTY_STREAM = 5i32; +pub const KSPROPERTY_STREAM_QUALITY: KSPROPERTY_STREAM = 1i32; +pub const KSPROPERTY_STREAM_RATE: KSPROPERTY_STREAM = 9i32; +pub const KSPROPERTY_STREAM_RATECAPABILITY: KSPROPERTY_STREAM = 8i32; +pub const KSPROPERTY_STREAM_TIMEFORMAT: KSPROPERTY_STREAM = 4i32; +pub const KSPROPERTY_TELEPHONY_CALLCONTROL: KSPROPERTY_TELEPHONY_CONTROL = 2i32; +pub const KSPROPERTY_TELEPHONY_CALLHOLD: KSPROPERTY_TELEPHONY_CONTROL = 4i32; +pub const KSPROPERTY_TELEPHONY_CALLINFO: KSPROPERTY_TELEPHONY_CONTROL = 1i32; +pub const KSPROPERTY_TELEPHONY_ENDPOINTIDPAIR: KSPROPERTY_TELEPHONY_TOPOLOGY = 0i32; +pub const KSPROPERTY_TELEPHONY_MUTE_TX: KSPROPERTY_TELEPHONY_CONTROL = 5i32; +pub const KSPROPERTY_TELEPHONY_PROVIDERCHANGE: KSPROPERTY_TELEPHONY_CONTROL = 3i32; +pub const KSPROPERTY_TELEPHONY_PROVIDERID: KSPROPERTY_TELEPHONY_CONTROL = 0i32; +pub const KSPROPERTY_TELEPHONY_VOLUME: KSPROPERTY_TELEPHONY_TOPOLOGY = 1i32; +pub const KSPROPERTY_TIMECODE_READER: KSPROPERTY_TIMECODE = 0i32; +pub const KSPROPERTY_TOPOLOGYNODE_ENABLE: KSPROPERTY_TOPOLOGYNODE = 1i32; +pub const KSPROPERTY_TOPOLOGYNODE_RESET: KSPROPERTY_TOPOLOGYNODE = 2i32; +pub const KSPROPERTY_TOPOLOGY_CATEGORIES: KSPROPERTY_TOPOLOGY = 0i32; +pub const KSPROPERTY_TOPOLOGY_CONNECTIONS: KSPROPERTY_TOPOLOGY = 2i32; +pub const KSPROPERTY_TOPOLOGY_NAME: KSPROPERTY_TOPOLOGY = 3i32; +pub const KSPROPERTY_TOPOLOGY_NODES: KSPROPERTY_TOPOLOGY = 1i32; +pub const KSPROPERTY_TUNER_CAPS: KSPROPERTY_TUNER = 0i32; +pub const KSPROPERTY_TUNER_FREQUENCY: KSPROPERTY_TUNER = 4i32; +pub const KSPROPERTY_TUNER_IF_MEDIUM: KSPROPERTY_TUNER = 7i32; +pub const KSPROPERTY_TUNER_INPUT: KSPROPERTY_TUNER = 5i32; +pub const KSPROPERTY_TUNER_MODE: KSPROPERTY_TUNER = 2i32; +pub const KSPROPERTY_TUNER_MODE_AM_RADIO: KSPROPERTY_TUNER_MODES = 4i32; +pub const KSPROPERTY_TUNER_MODE_ATSC: KSPROPERTY_TUNER_MODES = 16i32; +pub const KSPROPERTY_TUNER_MODE_CAPS: KSPROPERTY_TUNER = 1i32; +pub const KSPROPERTY_TUNER_MODE_DSS: KSPROPERTY_TUNER_MODES = 8i32; +pub const KSPROPERTY_TUNER_MODE_FM_RADIO: KSPROPERTY_TUNER_MODES = 2i32; +pub const KSPROPERTY_TUNER_MODE_TV: KSPROPERTY_TUNER_MODES = 1i32; +pub const KSPROPERTY_TUNER_NETWORKTYPE_SCAN_CAPS: KSPROPERTY_TUNER = 11i32; +pub const KSPROPERTY_TUNER_SCAN_CAPS: KSPROPERTY_TUNER = 8i32; +pub const KSPROPERTY_TUNER_SCAN_STATUS: KSPROPERTY_TUNER = 9i32; +pub const KSPROPERTY_TUNER_STANDARD: KSPROPERTY_TUNER = 3i32; +pub const KSPROPERTY_TUNER_STANDARD_MODE: KSPROPERTY_TUNER = 10i32; +pub const KSPROPERTY_TUNER_STATUS: KSPROPERTY_TUNER = 6i32; +pub const KSPROPERTY_TVAUDIO_CAPS: KSPROPERTY_VIDCAP_TVAUDIO = 0i32; +pub const KSPROPERTY_TVAUDIO_CURRENTLY_AVAILABLE_MODES: KSPROPERTY_VIDCAP_TVAUDIO = 2i32; +pub const KSPROPERTY_TVAUDIO_MODE: KSPROPERTY_VIDCAP_TVAUDIO = 1i32; +pub const KSPROPERTY_TYPE_BASICSUPPORT: u32 = 512u32; +pub const KSPROPERTY_TYPE_COPYPAYLOAD: u32 = 2147483648u32; +pub const KSPROPERTY_TYPE_DEFAULTVALUES: u32 = 65536u32; +pub const KSPROPERTY_TYPE_FSFILTERSCOPE: u32 = 1073741824u32; +pub const KSPROPERTY_TYPE_GET: u32 = 1u32; +pub const KSPROPERTY_TYPE_GETPAYLOADSIZE: u32 = 4u32; +pub const KSPROPERTY_TYPE_HIGHPRIORITY: u32 = 134217728u32; +pub const KSPROPERTY_TYPE_RELATIONS: u32 = 1024u32; +pub const KSPROPERTY_TYPE_SERIALIZERAW: u32 = 8192u32; +pub const KSPROPERTY_TYPE_SERIALIZESET: u32 = 2048u32; +pub const KSPROPERTY_TYPE_SERIALIZESIZE: u32 = 32768u32; +pub const KSPROPERTY_TYPE_SET: u32 = 2u32; +pub const KSPROPERTY_TYPE_SETSUPPORT: u32 = 256u32; +pub const KSPROPERTY_TYPE_TOPOLOGY: u32 = 268435456u32; +pub const KSPROPERTY_TYPE_UNSERIALIZERAW: u32 = 16384u32; +pub const KSPROPERTY_TYPE_UNSERIALIZESET: u32 = 4096u32; +pub const KSPROPERTY_VBICAP_PROPERTIES_PROTECTION: KSPROPERTY_VBICAP = 1i32; +pub const KSPROPERTY_VBICODECFILTERING_SCANLINES_DISCOVERED_BIT_ARRAY: KSPROPERTY_VBICODECFILTERING = 2i32; +pub const KSPROPERTY_VBICODECFILTERING_SCANLINES_REQUESTED_BIT_ARRAY: KSPROPERTY_VBICODECFILTERING = 1i32; +pub const KSPROPERTY_VBICODECFILTERING_STATISTICS: KSPROPERTY_VBICODECFILTERING = 5i32; +pub const KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_DISCOVERED_BIT_ARRAY: KSPROPERTY_VBICODECFILTERING = 4i32; +pub const KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_REQUESTED_BIT_ARRAY: KSPROPERTY_VBICODECFILTERING = 3i32; +pub const KSPROPERTY_VIDEOCOMPRESSION_GETINFO: KSPROPERTY_VIDCAP_VIDEOCOMPRESSION = 0i32; +pub const KSPROPERTY_VIDEOCOMPRESSION_KEYFRAME_RATE: KSPROPERTY_VIDCAP_VIDEOCOMPRESSION = 1i32; +pub const KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_FRAME_SIZE: KSPROPERTY_VIDCAP_VIDEOCOMPRESSION = 5i32; +pub const KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_KEYFRAME: KSPROPERTY_VIDCAP_VIDEOCOMPRESSION = 4i32; +pub const KSPROPERTY_VIDEOCOMPRESSION_PFRAMES_PER_KEYFRAME: KSPROPERTY_VIDCAP_VIDEOCOMPRESSION = 2i32; +pub const KSPROPERTY_VIDEOCOMPRESSION_QUALITY: KSPROPERTY_VIDCAP_VIDEOCOMPRESSION = 3i32; +pub const KSPROPERTY_VIDEOCOMPRESSION_WINDOWSIZE: KSPROPERTY_VIDCAP_VIDEOCOMPRESSION = 6i32; +pub const KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE: KSPROPERTY_VIDCAP_VIDEOCONTROL = 1i32; +pub const KSPROPERTY_VIDEOCONTROL_CAPS: KSPROPERTY_VIDCAP_VIDEOCONTROL = 0i32; +pub const KSPROPERTY_VIDEOCONTROL_FRAME_RATES: KSPROPERTY_VIDCAP_VIDEOCONTROL = 2i32; +pub const KSPROPERTY_VIDEOCONTROL_MODE: KSPROPERTY_VIDCAP_VIDEOCONTROL = 3i32; +pub const KSPROPERTY_VIDEODECODER_CAPS: KSPROPERTY_VIDCAP_VIDEODECODER = 0i32; +pub const KSPROPERTY_VIDEODECODER_OUTPUT_ENABLE: KSPROPERTY_VIDCAP_VIDEODECODER = 3i32; +pub const KSPROPERTY_VIDEODECODER_STANDARD: KSPROPERTY_VIDCAP_VIDEODECODER = 1i32; +pub const KSPROPERTY_VIDEODECODER_STATUS: KSPROPERTY_VIDCAP_VIDEODECODER = 2i32; +pub const KSPROPERTY_VIDEODECODER_STATUS2: KSPROPERTY_VIDCAP_VIDEODECODER = 5i32; +pub const KSPROPERTY_VIDEODECODER_VCR_TIMING: KSPROPERTY_VIDCAP_VIDEODECODER = 4i32; +pub const KSPROPERTY_VIDEOENCODER_CAPS: KSPROPERTY_VIDCAP_VIDEOENCODER = 0i32; +pub const KSPROPERTY_VIDEOENCODER_CC_ENABLE: KSPROPERTY_VIDCAP_VIDEOENCODER = 3i32; +pub const KSPROPERTY_VIDEOENCODER_COPYPROTECTION: KSPROPERTY_VIDCAP_VIDEOENCODER = 2i32; +pub const KSPROPERTY_VIDEOENCODER_STANDARD: KSPROPERTY_VIDCAP_VIDEOENCODER = 1i32; +pub const KSPROPERTY_VIDEOPROCAMP_BACKLIGHT_COMPENSATION: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 8i32; +pub const KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 0i32; +pub const KSPROPERTY_VIDEOPROCAMP_COLORENABLE: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 6i32; +pub const KSPROPERTY_VIDEOPROCAMP_CONTRAST: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 1i32; +pub const KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 10i32; +pub const KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER_LIMIT: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 11i32; +pub const KSPROPERTY_VIDEOPROCAMP_FLAGS_AUTO: i32 = 1i32; +pub const KSPROPERTY_VIDEOPROCAMP_FLAGS_MANUAL: i32 = 2i32; +pub const KSPROPERTY_VIDEOPROCAMP_GAIN: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 9i32; +pub const KSPROPERTY_VIDEOPROCAMP_GAMMA: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 5i32; +pub const KSPROPERTY_VIDEOPROCAMP_HUE: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 2i32; +pub const KSPROPERTY_VIDEOPROCAMP_POWERLINE_FREQUENCY: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 13i32; +pub const KSPROPERTY_VIDEOPROCAMP_SATURATION: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 3i32; +pub const KSPROPERTY_VIDEOPROCAMP_SHARPNESS: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 4i32; +pub const KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 7i32; +pub const KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE_COMPONENT: KSPROPERTY_VIDCAP_VIDEOPROCAMP = 12i32; +pub const KSPROPERTY_VPCONFIG_DDRAWHANDLE: KSPROPERTY_VPCONFIG = 12i32; +pub const KSPROPERTY_VPCONFIG_DDRAWSURFACEHANDLE: KSPROPERTY_VPCONFIG = 14i32; +pub const KSPROPERTY_VPCONFIG_DECIMATIONCAPABILITY: KSPROPERTY_VPCONFIG = 10i32; +pub const KSPROPERTY_VPCONFIG_GETCONNECTINFO: KSPROPERTY_VPCONFIG = 1i32; +pub const KSPROPERTY_VPCONFIG_GETVIDEOFORMAT: KSPROPERTY_VPCONFIG = 7i32; +pub const KSPROPERTY_VPCONFIG_INFORMVPINPUT: KSPROPERTY_VPCONFIG = 5i32; +pub const KSPROPERTY_VPCONFIG_INVERTPOLARITY: KSPROPERTY_VPCONFIG = 9i32; +pub const KSPROPERTY_VPCONFIG_MAXPIXELRATE: KSPROPERTY_VPCONFIG = 4i32; +pub const KSPROPERTY_VPCONFIG_NUMCONNECTINFO: KSPROPERTY_VPCONFIG = 0i32; +pub const KSPROPERTY_VPCONFIG_NUMVIDEOFORMAT: KSPROPERTY_VPCONFIG = 6i32; +pub const KSPROPERTY_VPCONFIG_SCALEFACTOR: KSPROPERTY_VPCONFIG = 11i32; +pub const KSPROPERTY_VPCONFIG_SETCONNECTINFO: KSPROPERTY_VPCONFIG = 2i32; +pub const KSPROPERTY_VPCONFIG_SETVIDEOFORMAT: KSPROPERTY_VPCONFIG = 8i32; +pub const KSPROPERTY_VPCONFIG_SURFACEPARAMS: KSPROPERTY_VPCONFIG = 15i32; +pub const KSPROPERTY_VPCONFIG_VIDEOPORTID: KSPROPERTY_VPCONFIG = 13i32; +pub const KSPROPERTY_VPCONFIG_VPDATAINFO: KSPROPERTY_VPCONFIG = 3i32; +pub const KSPROPERTY_WAVE_BUFFER: KSPROPERTY_WAVE = 3i32; +pub const KSPROPERTY_WAVE_COMPATIBLE_CAPABILITIES: KSPROPERTY_WAVE = 0i32; +pub const KSPROPERTY_WAVE_FREQUENCY: KSPROPERTY_WAVE = 4i32; +pub const KSPROPERTY_WAVE_INPUT_CAPABILITIES: KSPROPERTY_WAVE = 1i32; +pub const KSPROPERTY_WAVE_OUTPUT_CAPABILITIES: KSPROPERTY_WAVE = 2i32; +pub const KSPROPERTY_WAVE_PAN: KSPROPERTY_WAVE = 6i32; +pub const KSPROPERTY_WAVE_QUEUED_POSITION: u32 = 1u32; +pub const KSPROPERTY_WAVE_VOLUME: KSPROPERTY_WAVE = 5i32; +pub const KSPROPSETID_AC3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbfabe720_6e1f_11d0_bcf2_444553540000); +pub const KSPROPSETID_Audio: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x45ffaaa0_6e1b_11d0_bcf2_444553540000); +pub const KSPROPSETID_AudioBufferDuration: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4e73c07f_23cc_4955_a7ea_3da502496290); +pub const KSPROPSETID_AudioDecoderOut: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6ca6e020_43bd_11d0_bd6a_003505c103a9); +pub const KSPROPSETID_AudioEngine: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3a2f82dc_886f_4baa_9eb4_082b9025c536); +pub const KSPROPSETID_AudioModule: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc034fdb0_ff75_47c8_aa3c_ee46716b50c6); +pub const KSPROPSETID_AudioPosture: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa3fb7b0d_474e_4f51_a379_51282dd4fa8f); +pub const KSPROPSETID_AudioResourceManagement: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd0b305e1_b2cc_484c_8f23_e5d28ad9cf88); +pub const KSPROPSETID_AudioSignalProcessing: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4f67b528_30c9_40de_b2fb_859ddd1f3470); +pub const KSPROPSETID_Bibliographic: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x07ba150e_e2b1_11d0_ac17_00a0c9223196); +pub const KSPROPSETID_BtAudio: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7fa06c40_b8f6_4c7e_8556_e8c33a12e54d); +pub const KSPROPSETID_Clock: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdf12a4c0_ac17_11cf_a5d6_28db04c10000); +pub const KSPROPSETID_Connection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1d58c920_ac9b_11cf_a5d6_28db04c10000); +pub const KSPROPSETID_CopyProt: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e8a0a40_6aef_11d0_9ed0_00a024ca19b3); +pub const KSPROPSETID_Cyclic: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3ffeaea0_2bee_11cf_a5d6_28db04c10000); +pub const KSPROPSETID_DirectSound3DBuffer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x437b3411_d060_11d0_8583_00c04fd9baf3); +pub const KSPROPSETID_DirectSound3DListener: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x437b3414_d060_11d0_8583_00c04fd9baf3); +pub const KSPROPSETID_DrmAudioStream: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2f2c8ddd_4198_4fac_ba29_61bb05b7de06); +pub const KSPROPSETID_DvdSubPic: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xac390460_43af_11d0_bd6a_003505c103a9); +pub const KSPROPSETID_FMRXControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x947bba3a_e8ee_4786_90c4_8428185f05be); +pub const KSPROPSETID_FMRXTopology: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0c46ce8f_dc2d_4204_9dc9_f58963366563); +pub const KSPROPSETID_General: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1464eda5_6a8f_11d1_9aa7_00a0c9223196); +pub const KSPROPSETID_Hrtf3d: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb66decb0_a083_11d0_851e_00c04fd9baf3); +pub const KSPROPSETID_InterleavedAudio: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe9ebe550_d619_4c0a_976b_7062322b3006); +pub const KSPROPSETID_Itd3d: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6429f090_9fd9_11d0_a75b_00a0c90365e3); +pub const KSPROPSETID_Jack: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4509f757_2d46_4637_8e62_ce7db944f57b); +pub const KSPROPSETID_MPEG4_MediaType_Attributes: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xff6c4bfa_07a9_4c7b_a237_672f9d68065f); +pub const KSPROPSETID_MediaSeeking: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xee904f0c_d09b_11d0_abe9_00a0c9223196); +pub const KSPROPSETID_MemoryTransport: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0a3d1c5d_5243_4819_9ed0_aee8044cee2b); +pub const KSPROPSETID_Mpeg2Vid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc8e11b60_0cc9_11d0_bd69_003505c103a9); +pub const KSPROPSETID_OverlayUpdate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x490ea5cf_7681_11d1_a21c_00a0c9223196); +pub const KSPROPSETID_Pin: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8c134960_51ad_11cf_878a_94f801c10000); +pub const KSPROPSETID_PinMDLCacheClearProp: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbd718a7b_97fc_40c7_88ce_d3ff06f55b16); +pub const KSPROPSETID_Quality: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd16ad380_ac1a_11cf_a5d6_28db04c10000); +pub const KSPROPSETID_RtAudio: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa855a48c_2f78_4729_9051_1968746b9eef); +pub const KSPROPSETID_SoundDetector: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x113c425e_fd17_4057_b422_ed4074f1afdf); +pub const KSPROPSETID_SoundDetector2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfe07e322_450c_4bd5_84ca_a948500ea6aa); +pub const KSPROPSETID_Stream: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65aaba60_98ae_11cf_a10d_0020afd156e4); +pub const KSPROPSETID_StreamAllocator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf6e4342_ec87_11cf_a130_0020afd156e4); +pub const KSPROPSETID_StreamInterface: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1fdd8ee1_9cd3_11d0_82aa_0000f822fe8a); +pub const KSPROPSETID_TSRateChange: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa503c5c0_1d1d_11d1_ad80_444553540000); +pub const KSPROPSETID_TelephonyControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb6df7eb1_d099_489f_a6a0_c0106f0887a7); +pub const KSPROPSETID_TelephonyTopology: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xabf25c7e_0e64_4e32_b190_d0f6d7c53e97); +pub const KSPROPSETID_Topology: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x720d4ac0_7533_11d0_a5d6_28db04c10000); +pub const KSPROPSETID_TopologyNode: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x45ffaaa1_6e1b_11d0_bcf2_444553540000); +pub const KSPROPSETID_VBICAP_PROPERTIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf162c607_7b35_496f_ad7f_2dca3b46b718); +pub const KSPROPSETID_VBICodecFiltering: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcafeb0ca_8715_11d0_bd6a_0035c0edbabe); +pub const KSPROPSETID_VPConfig: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbc29a660_30e3_11d0_9e69_00c04fd7c15b); +pub const KSPROPSETID_VPVBIConfig: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xec529b00_1a1f_11d1_bad9_00609744111a); +pub const KSPROPSETID_VramCapture: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe73face3_2880_4902_b799_88d0cd634e0f); +pub const KSPROPSETID_Wave: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x924e54b0_630f_11cf_ada7_08003e30494a); +pub const KSPROPTYPESETID_General: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x97e99ba0_bdea_11cf_a5d6_28db04c10000); +pub const KSRATE_NOPRESENTATIONDURATION: u32 = 2u32; +pub const KSRATE_NOPRESENTATIONSTART: u32 = 1u32; +pub const KSRELATIVEEVENT_FLAG_HANDLE: u32 = 1u32; +pub const KSRELATIVEEVENT_FLAG_POINTER: u32 = 2u32; +pub const KSRESET_BEGIN: KSRESET = 0i32; +pub const KSRESET_END: KSRESET = 1i32; +pub const KSSTATE_ACQUIRE: KSSTATE = 1i32; +pub const KSSTATE_PAUSE: KSSTATE = 2i32; +pub const KSSTATE_RUN: KSSTATE = 3i32; +pub const KSSTATE_STOP: KSSTATE = 0i32; +pub const KSSTREAM_FAILUREEXCEPTION: u32 = 8192u32; +pub const KSSTREAM_HEADER_OPTIONSF_BUFFEREDTRANSFER: u32 = 1024u32; +pub const KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY: u32 = 4u32; +pub const KSSTREAM_HEADER_OPTIONSF_DURATIONVALID: u32 = 256u32; +pub const KSSTREAM_HEADER_OPTIONSF_ENDOFPHOTOSEQUENCE: u32 = 8192u32; +pub const KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM: u32 = 512u32; +pub const KSSTREAM_HEADER_OPTIONSF_FLUSHONPAUSE: u32 = 128u32; +pub const KSSTREAM_HEADER_OPTIONSF_FRAMEINFO: u32 = 16384u32; +pub const KSSTREAM_HEADER_OPTIONSF_LOOPEDDATA: u32 = 2147483648u32; +pub const KSSTREAM_HEADER_OPTIONSF_METADATA: u32 = 4096u32; +pub const KSSTREAM_HEADER_OPTIONSF_PERSIST_SAMPLE: u32 = 32768u32; +pub const KSSTREAM_HEADER_OPTIONSF_PREROLL: u32 = 2u32; +pub const KSSTREAM_HEADER_OPTIONSF_SAMPLE_PERSISTED: u32 = 65536u32; +pub const KSSTREAM_HEADER_OPTIONSF_SECUREBUFFERTRANSFER: u32 = 262144u32; +pub const KSSTREAM_HEADER_OPTIONSF_SPLICEPOINT: u32 = 1u32; +pub const KSSTREAM_HEADER_OPTIONSF_TIMEDISCONTINUITY: u32 = 64u32; +pub const KSSTREAM_HEADER_OPTIONSF_TIMEVALID: u32 = 16u32; +pub const KSSTREAM_HEADER_OPTIONSF_TYPECHANGED: u32 = 8u32; +pub const KSSTREAM_HEADER_OPTIONSF_VRAM_DATA_TRANSFER: u32 = 2048u32; +pub const KSSTREAM_HEADER_TRACK_COMPLETION_NUMBERS: u32 = 131072u32; +pub const KSSTREAM_NONPAGED_DATA: u32 = 256u32; +pub const KSSTREAM_PAGED_DATA: u32 = 0u32; +pub const KSSTREAM_READ: u32 = 0u32; +pub const KSSTREAM_SYNCHRONOUS: u32 = 4096u32; +pub const KSSTREAM_UVC_SECURE_ATTRIBUTE_SIZE: u32 = 8192u32; +pub const KSSTREAM_WRITE: u32 = 1u32; +pub const KSSTRING_Allocator: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{642F5D00-4791-11D0-A5D6-28DB04C10000}"); +pub const KSSTRING_AllocatorEx: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{091BB63B-603F-11D1-B067-00A0C9062802}"); +pub const KSSTRING_Clock: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{53172480-4791-11D0-A5D6-28DB04C10000}"); +pub const KSSTRING_Filter: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{9B365890-165F-11D0-A195-0020AFD156E4}"); +pub const KSSTRING_Pin: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{146F1A80-4791-11D0-A5D6-28DB04C10000}"); +pub const KSSTRING_TopologyNode: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{0621061A-EE75-11D0-B915-00A0C9223196}"); +pub const KSTIME_FORMAT_BYTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b785571_8c82_11cf_bc0c_00aa00ac74f6); +pub const KSTIME_FORMAT_FIELD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b785573_8c82_11cf_bc0c_00aa00ac74f6); +pub const KSTIME_FORMAT_FRAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b785570_8c82_11cf_bc0c_00aa00ac74f6); +pub const KSTIME_FORMAT_MEDIA_TIME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b785574_8c82_11cf_bc0c_00aa00ac74f6); +pub const KSTIME_FORMAT_SAMPLE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b785572_8c82_11cf_bc0c_00aa00ac74f6); +pub const KSWAVE_BUFFER_ATTRIBUTEF_LOOPING: u32 = 1u32; +pub const KSWAVE_BUFFER_ATTRIBUTEF_STATIC: u32 = 2u32; +pub const KSWAVE_COMPATCAPS_INPUT: u32 = 0u32; +pub const KSWAVE_COMPATCAPS_OUTPUT: u32 = 1u32; +pub const KS_AMCONTROL_COLORINFO_PRESENT: u32 = 128u32; +pub const KS_AMCONTROL_PAD_TO_16x9: u32 = 4u32; +pub const KS_AMCONTROL_PAD_TO_4x3: u32 = 2u32; +pub const KS_AMCONTROL_USED: u32 = 1u32; +pub const KS_AMVP_BEST_BANDWIDTH: KS_AMVP_SELECTFORMATBY = 1i32; +pub const KS_AMVP_DO_NOT_CARE: KS_AMVP_SELECTFORMATBY = 0i32; +pub const KS_AMVP_INPUT_SAME_AS_OUTPUT: KS_AMVP_SELECTFORMATBY = 2i32; +pub const KS_AMVP_MODE_BOBINTERLEAVED: KS_AMVP_MODE = 1i32; +pub const KS_AMVP_MODE_BOBNONINTERLEAVED: KS_AMVP_MODE = 2i32; +pub const KS_AMVP_MODE_SKIPEVEN: KS_AMVP_MODE = 3i32; +pub const KS_AMVP_MODE_SKIPODD: KS_AMVP_MODE = 4i32; +pub const KS_AMVP_MODE_WEAVE: KS_AMVP_MODE = 0i32; +pub const KS_AM_RATE_ExactRateChange: KS_AM_PROPERTY_TS_RATE_CHANGE = 2i32; +pub const KS_AM_RATE_MaxFullDataRate: KS_AM_PROPERTY_TS_RATE_CHANGE = 3i32; +pub const KS_AM_RATE_SimpleRateChange: KS_AM_PROPERTY_TS_RATE_CHANGE = 1i32; +pub const KS_AM_RATE_Step: KS_AM_PROPERTY_TS_RATE_CHANGE = 4i32; +pub const KS_AM_UseNewCSSKey: i32 = 1i32; +pub const KS_AnalogVideo_NTSC_433: KS_AnalogVideoStandard = 4i32; +pub const KS_AnalogVideo_NTSC_M: KS_AnalogVideoStandard = 1i32; +pub const KS_AnalogVideo_NTSC_M_J: KS_AnalogVideoStandard = 2i32; +pub const KS_AnalogVideo_NTSC_Mask: u32 = 7u32; +pub const KS_AnalogVideo_None: KS_AnalogVideoStandard = 0i32; +pub const KS_AnalogVideo_PAL_60: KS_AnalogVideoStandard = 2048i32; +pub const KS_AnalogVideo_PAL_B: KS_AnalogVideoStandard = 16i32; +pub const KS_AnalogVideo_PAL_D: KS_AnalogVideoStandard = 32i32; +pub const KS_AnalogVideo_PAL_G: KS_AnalogVideoStandard = 64i32; +pub const KS_AnalogVideo_PAL_H: KS_AnalogVideoStandard = 128i32; +pub const KS_AnalogVideo_PAL_I: KS_AnalogVideoStandard = 256i32; +pub const KS_AnalogVideo_PAL_M: KS_AnalogVideoStandard = 512i32; +pub const KS_AnalogVideo_PAL_Mask: u32 = 1052656u32; +pub const KS_AnalogVideo_PAL_N: KS_AnalogVideoStandard = 1024i32; +pub const KS_AnalogVideo_PAL_N_COMBO: KS_AnalogVideoStandard = 1048576i32; +pub const KS_AnalogVideo_SECAM_B: KS_AnalogVideoStandard = 4096i32; +pub const KS_AnalogVideo_SECAM_D: KS_AnalogVideoStandard = 8192i32; +pub const KS_AnalogVideo_SECAM_G: KS_AnalogVideoStandard = 16384i32; +pub const KS_AnalogVideo_SECAM_H: KS_AnalogVideoStandard = 32768i32; +pub const KS_AnalogVideo_SECAM_K: KS_AnalogVideoStandard = 65536i32; +pub const KS_AnalogVideo_SECAM_K1: KS_AnalogVideoStandard = 131072i32; +pub const KS_AnalogVideo_SECAM_L: KS_AnalogVideoStandard = 262144i32; +pub const KS_AnalogVideo_SECAM_L1: KS_AnalogVideoStandard = 524288i32; +pub const KS_AnalogVideo_SECAM_Mask: u32 = 1044480u32; +pub const KS_BI_BITFIELDS: i32 = 3i32; +pub const KS_BI_JPEG: i32 = 4i32; +pub const KS_BI_RGB: i32 = 0i32; +pub const KS_BI_RLE4: i32 = 2i32; +pub const KS_BI_RLE8: i32 = 1i32; +pub const KS_CAMERACONTROL_ASYNC_RESET: KS_CameraControlAsyncOperation = 3i32; +pub const KS_CAMERACONTROL_ASYNC_START: KS_CameraControlAsyncOperation = 1i32; +pub const KS_CAMERACONTROL_ASYNC_STOP: KS_CameraControlAsyncOperation = 2i32; +pub const KS_CAPTURE_ALLOC_INVALID: CAPTURE_MEMORY_ALLOCATION_FLAGS = 0i32; +pub const KS_CAPTURE_ALLOC_SECURE_BUFFER: CAPTURE_MEMORY_ALLOCATION_FLAGS = 16i32; +pub const KS_CAPTURE_ALLOC_SYSTEM: CAPTURE_MEMORY_ALLOCATION_FLAGS = 1i32; +pub const KS_CAPTURE_ALLOC_SYSTEM_AGP: CAPTURE_MEMORY_ALLOCATION_FLAGS = 4i32; +pub const KS_CAPTURE_ALLOC_VRAM: CAPTURE_MEMORY_ALLOCATION_FLAGS = 2i32; +pub const KS_CAPTURE_ALLOC_VRAM_MAPPED: CAPTURE_MEMORY_ALLOCATION_FLAGS = 8i32; +pub const KS_CC_SUBSTREAM_EVEN: i32 = 2i32; +pub const KS_CC_SUBSTREAM_FIELD1_MASK: i32 = 240i32; +pub const KS_CC_SUBSTREAM_FIELD2_MASK: i32 = 7936i32; +pub const KS_CC_SUBSTREAM_ODD: i32 = 1i32; +pub const KS_CC_SUBSTREAM_SERVICE_CC1: i32 = 16i32; +pub const KS_CC_SUBSTREAM_SERVICE_CC2: i32 = 32i32; +pub const KS_CC_SUBSTREAM_SERVICE_CC3: i32 = 256i32; +pub const KS_CC_SUBSTREAM_SERVICE_CC4: i32 = 512i32; +pub const KS_CC_SUBSTREAM_SERVICE_T1: i32 = 64i32; +pub const KS_CC_SUBSTREAM_SERVICE_T2: i32 = 128i32; +pub const KS_CC_SUBSTREAM_SERVICE_T3: i32 = 1024i32; +pub const KS_CC_SUBSTREAM_SERVICE_T4: i32 = 2048i32; +pub const KS_CC_SUBSTREAM_SERVICE_XDS: i32 = 4096i32; +pub const KS_COPYPROTECT_RestrictDuplication: u32 = 1u32; +pub const KS_CompressionCaps_CanBFrame: KS_CompressionCaps = 8i32; +pub const KS_CompressionCaps_CanCrunch: KS_CompressionCaps = 2i32; +pub const KS_CompressionCaps_CanKeyFrame: KS_CompressionCaps = 4i32; +pub const KS_CompressionCaps_CanQuality: KS_CompressionCaps = 1i32; +pub const KS_CompressionCaps_CanWindow: KS_CompressionCaps = 16i32; +pub const KS_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED: KS_DVDCOPYSTATE = 2i32; +pub const KS_DVDCOPYSTATE_AUTHENTICATION_REQUIRED: KS_DVDCOPYSTATE = 3i32; +pub const KS_DVDCOPYSTATE_DONE: KS_DVDCOPYSTATE = 4i32; +pub const KS_DVDCOPYSTATE_INITIALIZE: KS_DVDCOPYSTATE = 0i32; +pub const KS_DVDCOPYSTATE_INITIALIZE_TITLE: KS_DVDCOPYSTATE = 1i32; +pub const KS_DVD_CGMS_COPY_ONCE: u32 = 16u32; +pub const KS_DVD_CGMS_COPY_PERMITTED: u32 = 0u32; +pub const KS_DVD_CGMS_COPY_PROTECT_MASK: u32 = 24u32; +pub const KS_DVD_CGMS_NO_COPY: u32 = 24u32; +pub const KS_DVD_CGMS_RESERVED_MASK: u32 = 120u32; +pub const KS_DVD_COPYRIGHTED: u32 = 64u32; +pub const KS_DVD_COPYRIGHT_MASK: u32 = 64u32; +pub const KS_DVD_NOT_COPYRIGHTED: u32 = 0u32; +pub const KS_DVD_SECTOR_NOT_PROTECTED: u32 = 0u32; +pub const KS_DVD_SECTOR_PROTECTED: u32 = 32u32; +pub const KS_DVD_SECTOR_PROTECT_MASK: u32 = 32u32; +pub const KS_INTERLACE_1FieldPerSample: u32 = 2u32; +pub const KS_INTERLACE_DisplayModeBobOnly: u32 = 0u32; +pub const KS_INTERLACE_DisplayModeBobOrWeave: u32 = 128u32; +pub const KS_INTERLACE_DisplayModeMask: u32 = 192u32; +pub const KS_INTERLACE_DisplayModeWeaveOnly: u32 = 64u32; +pub const KS_INTERLACE_Field1First: u32 = 4u32; +pub const KS_INTERLACE_FieldPatBothIrregular: u32 = 48u32; +pub const KS_INTERLACE_FieldPatBothRegular: u32 = 32u32; +pub const KS_INTERLACE_FieldPatField1Only: u32 = 0u32; +pub const KS_INTERLACE_FieldPatField2Only: u32 = 16u32; +pub const KS_INTERLACE_FieldPatternMask: u32 = 48u32; +pub const KS_INTERLACE_IsInterlaced: u32 = 1u32; +pub const KS_INTERLACE_UNUSED: u32 = 8u32; +pub const KS_MACROVISION_DISABLED: KS_COPY_MACROVISION_LEVEL = 0i32; +pub const KS_MACROVISION_LEVEL1: KS_COPY_MACROVISION_LEVEL = 1i32; +pub const KS_MACROVISION_LEVEL2: KS_COPY_MACROVISION_LEVEL = 2i32; +pub const KS_MACROVISION_LEVEL3: KS_COPY_MACROVISION_LEVEL = 3i32; +pub const KS_MAX_SIZE_MPEG1_SEQUENCE_INFO: u32 = 140u32; +pub const KS_MPEG2Level_High: KS_MPEG2Level = 3i32; +pub const KS_MPEG2Level_High1440: KS_MPEG2Level = 2i32; +pub const KS_MPEG2Level_Low: KS_MPEG2Level = 0i32; +pub const KS_MPEG2Level_Main: KS_MPEG2Level = 1i32; +pub const KS_MPEG2Profile_High: KS_MPEG2Profile = 4i32; +pub const KS_MPEG2Profile_Main: KS_MPEG2Profile = 1i32; +pub const KS_MPEG2Profile_SNRScalable: KS_MPEG2Profile = 2i32; +pub const KS_MPEG2Profile_Simple: KS_MPEG2Profile = 0i32; +pub const KS_MPEG2Profile_SpatiallyScalable: KS_MPEG2Profile = 3i32; +pub const KS_MPEG2_27MhzTimebase: u32 = 256u32; +pub const KS_MPEG2_DSS_UserData: u32 = 64u32; +pub const KS_MPEG2_DVB_UserData: u32 = 128u32; +pub const KS_MPEG2_DVDLine21Field1: u32 = 2u32; +pub const KS_MPEG2_DVDLine21Field2: u32 = 4u32; +pub const KS_MPEG2_DoPanScan: u32 = 1u32; +pub const KS_MPEG2_FilmCameraMode: u32 = 16u32; +pub const KS_MPEG2_LetterboxAnalogOut: u32 = 32u32; +pub const KS_MPEG2_SourceIsLetterboxed: u32 = 8u32; +pub const KS_MPEG2_WidescreenAnalogOut: u32 = 512u32; +pub const KS_MPEGAUDIOINFO_27MhzTimebase: u32 = 1u32; +pub const KS_MemoryTypeAnyHost: KS_LogicalMemoryType = 6i32; +pub const KS_MemoryTypeDeviceHostMapped: KS_LogicalMemoryType = 3i32; +pub const KS_MemoryTypeDeviceSpecific: KS_LogicalMemoryType = 4i32; +pub const KS_MemoryTypeDontCare: KS_LogicalMemoryType = 0i32; +pub const KS_MemoryTypeKernelNonPaged: KS_LogicalMemoryType = 2i32; +pub const KS_MemoryTypeKernelPaged: KS_LogicalMemoryType = 1i32; +pub const KS_MemoryTypeUser: KS_LogicalMemoryType = 5i32; +pub const KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_ADVERTISER_BASE: u32 = 2224u32; +pub const KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_CONTENT_BASE: u32 = 2208u32; +pub const KS_NABTS_GROUPID_MICROSOFT_RESERVED_TEST_DATA_BASE: u32 = 2288u32; +pub const KS_NABTS_GROUPID_NETWORK_WIDE_ADVERTISER_BASE: u32 = 2160u32; +pub const KS_NABTS_GROUPID_NETWORK_WIDE_CONTENT_BASE: u32 = 2144u32; +pub const KS_NABTS_GROUPID_ORIGINAL_CONTENT_ADVERTISER_BASE: u32 = 2064u32; +pub const KS_NABTS_GROUPID_ORIGINAL_CONTENT_BASE: u32 = 2048u32; +pub const KS_NABTS_GROUPID_PRODUCTION_COMPANY_ADVERTISER_BASE: u32 = 2096u32; +pub const KS_NABTS_GROUPID_PRODUCTION_COMPANY_CONTENT_BASE: u32 = 2080u32; +pub const KS_NABTS_GROUPID_SYNDICATED_SHOW_ADVERTISER_BASE: u32 = 2128u32; +pub const KS_NABTS_GROUPID_SYNDICATED_SHOW_CONTENT_BASE: u32 = 2112u32; +pub const KS_NABTS_GROUPID_TELEVISION_STATION_ADVERTISER_BASE: u32 = 2192u32; +pub const KS_NABTS_GROUPID_TELEVISION_STATION_CONTENT_BASE: u32 = 2176u32; +pub const KS_Obsolete_VideoControlFlag_ExternalTriggerEnable: KS_VideoControlFlags = 16i32; +pub const KS_Obsolete_VideoControlFlag_Trigger: KS_VideoControlFlags = 32i32; +pub const KS_PhysConn_Audio_1394: KS_PhysicalConnectorType = 4103i32; +pub const KS_PhysConn_Audio_AESDigital: KS_PhysicalConnectorType = 4099i32; +pub const KS_PhysConn_Audio_AUX: KS_PhysicalConnectorType = 4102i32; +pub const KS_PhysConn_Audio_AudioDecoder: KS_PhysicalConnectorType = 4105i32; +pub const KS_PhysConn_Audio_Line: KS_PhysicalConnectorType = 4097i32; +pub const KS_PhysConn_Audio_Mic: KS_PhysicalConnectorType = 4098i32; +pub const KS_PhysConn_Audio_SCSI: KS_PhysicalConnectorType = 4101i32; +pub const KS_PhysConn_Audio_SPDIFDigital: KS_PhysicalConnectorType = 4100i32; +pub const KS_PhysConn_Audio_Tuner: KS_PhysicalConnectorType = 4096i32; +pub const KS_PhysConn_Audio_USB: KS_PhysicalConnectorType = 4104i32; +pub const KS_PhysConn_Video_1394: KS_PhysicalConnectorType = 10i32; +pub const KS_PhysConn_Video_AUX: KS_PhysicalConnectorType = 9i32; +pub const KS_PhysConn_Video_Composite: KS_PhysicalConnectorType = 2i32; +pub const KS_PhysConn_Video_ParallelDigital: KS_PhysicalConnectorType = 7i32; +pub const KS_PhysConn_Video_RGB: KS_PhysicalConnectorType = 4i32; +pub const KS_PhysConn_Video_SCART: KS_PhysicalConnectorType = 14i32; +pub const KS_PhysConn_Video_SCSI: KS_PhysicalConnectorType = 8i32; +pub const KS_PhysConn_Video_SVideo: KS_PhysicalConnectorType = 3i32; +pub const KS_PhysConn_Video_SerialDigital: KS_PhysicalConnectorType = 6i32; +pub const KS_PhysConn_Video_Tuner: KS_PhysicalConnectorType = 1i32; +pub const KS_PhysConn_Video_USB: KS_PhysicalConnectorType = 11i32; +pub const KS_PhysConn_Video_VideoDecoder: KS_PhysicalConnectorType = 12i32; +pub const KS_PhysConn_Video_VideoEncoder: KS_PhysicalConnectorType = 13i32; +pub const KS_PhysConn_Video_YRYBY: KS_PhysicalConnectorType = 5i32; +pub const KS_PixAspectRatio_NTSC16x9: KS_AMPixAspectRatio = 1i32; +pub const KS_PixAspectRatio_NTSC4x3: KS_AMPixAspectRatio = 0i32; +pub const KS_PixAspectRatio_PAL16x9: KS_AMPixAspectRatio = 3i32; +pub const KS_PixAspectRatio_PAL4x3: KS_AMPixAspectRatio = 2i32; +pub const KS_SECURE_CAMERA_SCENARIO_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae53fc6e_8d89_4488_9d2e_4d008731c5fd); +pub const KS_SEEKING_AbsolutePositioning: KS_SEEKING_FLAGS = 1i32; +pub const KS_SEEKING_CanGetCurrentPos: KS_SEEKING_CAPABILITIES = 8i32; +pub const KS_SEEKING_CanGetDuration: KS_SEEKING_CAPABILITIES = 32i32; +pub const KS_SEEKING_CanGetStopPos: KS_SEEKING_CAPABILITIES = 16i32; +pub const KS_SEEKING_CanPlayBackwards: KS_SEEKING_CAPABILITIES = 64i32; +pub const KS_SEEKING_CanSeekAbsolute: KS_SEEKING_CAPABILITIES = 1i32; +pub const KS_SEEKING_CanSeekBackwards: KS_SEEKING_CAPABILITIES = 4i32; +pub const KS_SEEKING_CanSeekForwards: KS_SEEKING_CAPABILITIES = 2i32; +pub const KS_SEEKING_IncrementalPositioning: KS_SEEKING_FLAGS = 3i32; +pub const KS_SEEKING_NoPositioning: KS_SEEKING_FLAGS = 0i32; +pub const KS_SEEKING_PositioningBitsMask: KS_SEEKING_FLAGS = 3i32; +pub const KS_SEEKING_RelativePositioning: KS_SEEKING_FLAGS = 2i32; +pub const KS_SEEKING_ReturnTime: KS_SEEKING_FLAGS = 8i32; +pub const KS_SEEKING_SeekToKeyFrame: KS_SEEKING_FLAGS = 4i32; +pub const KS_StreamingHint_CompQuality: KS_VideoStreamingHints = 2048i32; +pub const KS_StreamingHint_CompWindowSize: KS_VideoStreamingHints = 4096i32; +pub const KS_StreamingHint_FrameInterval: KS_VideoStreamingHints = 256i32; +pub const KS_StreamingHint_KeyFrameRate: KS_VideoStreamingHints = 512i32; +pub const KS_StreamingHint_PFrameRate: KS_VideoStreamingHints = 1024i32; +pub const KS_TUNER_STRATEGY_DRIVER_TUNES: KS_TUNER_STRATEGY = 4i32; +pub const KS_TUNER_STRATEGY_PLL: KS_TUNER_STRATEGY = 1i32; +pub const KS_TUNER_STRATEGY_SIGNAL_STRENGTH: KS_TUNER_STRATEGY = 2i32; +pub const KS_TUNER_TUNING_COARSE: KS_TUNER_TUNING_FLAGS = 3i32; +pub const KS_TUNER_TUNING_EXACT: KS_TUNER_TUNING_FLAGS = 1i32; +pub const KS_TUNER_TUNING_FINE: KS_TUNER_TUNING_FLAGS = 2i32; +pub const KS_TVAUDIO_MODE_LANG_A: u32 = 16u32; +pub const KS_TVAUDIO_MODE_LANG_B: u32 = 32u32; +pub const KS_TVAUDIO_MODE_LANG_C: u32 = 64u32; +pub const KS_TVAUDIO_MODE_MONO: u32 = 1u32; +pub const KS_TVAUDIO_MODE_STEREO: u32 = 2u32; +pub const KS_TVAUDIO_PRESET_LANG_A: u32 = 4096u32; +pub const KS_TVAUDIO_PRESET_LANG_B: u32 = 8192u32; +pub const KS_TVAUDIO_PRESET_LANG_C: u32 = 16384u32; +pub const KS_TVAUDIO_PRESET_STEREO: u32 = 512u32; +pub const KS_TVTUNER_CHANGE_BEGIN_TUNE: i32 = 1i32; +pub const KS_TVTUNER_CHANGE_END_TUNE: i32 = 2i32; +pub const KS_VBICAP_PROTECTION_MV_DETECTED: i32 = 4i32; +pub const KS_VBICAP_PROTECTION_MV_HARDWARE: i32 = 2i32; +pub const KS_VBICAP_PROTECTION_MV_PRESENT: i32 = 1i32; +pub const KS_VBIDATARATE_CC: i32 = 503493i32; +pub const KS_VBIDATARATE_NABTS: i32 = 5727272i32; +pub const KS_VBI_FLAG_FIELD1: i32 = 1i32; +pub const KS_VBI_FLAG_FIELD2: i32 = 2i32; +pub const KS_VBI_FLAG_FRAME: i32 = 0i32; +pub const KS_VBI_FLAG_MV_DETECTED: i32 = 1024i32; +pub const KS_VBI_FLAG_MV_HARDWARE: i32 = 512i32; +pub const KS_VBI_FLAG_MV_PRESENT: i32 = 256i32; +pub const KS_VBI_FLAG_TVTUNER_CHANGE: i32 = 16i32; +pub const KS_VBI_FLAG_VBIINFOHEADER_CHANGE: i32 = 32i32; +pub const KS_VIDEODECODER_FLAGS_CAN_DISABLE_OUTPUT: KS_VIDEODECODER_FLAGS = 1i32; +pub const KS_VIDEODECODER_FLAGS_CAN_INDICATE_LOCKED: KS_VIDEODECODER_FLAGS = 4i32; +pub const KS_VIDEODECODER_FLAGS_CAN_USE_VCR_LOCKING: KS_VIDEODECODER_FLAGS = 2i32; +pub const KS_VIDEOSTREAM_CAPTURE: u32 = 2u32; +pub const KS_VIDEOSTREAM_CC: u32 = 256u32; +pub const KS_VIDEOSTREAM_EDS: u32 = 512u32; +pub const KS_VIDEOSTREAM_IS_VPE: u32 = 32768u32; +pub const KS_VIDEOSTREAM_NABTS: u32 = 32u32; +pub const KS_VIDEOSTREAM_PREVIEW: u32 = 1u32; +pub const KS_VIDEOSTREAM_STILL: u32 = 4096u32; +pub const KS_VIDEOSTREAM_TELETEXT: u32 = 1024u32; +pub const KS_VIDEOSTREAM_VBI: u32 = 16u32; +pub const KS_VIDEO_ALLOC_VPE_AGP: u32 = 4u32; +pub const KS_VIDEO_ALLOC_VPE_DISPLAY: u32 = 2u32; +pub const KS_VIDEO_ALLOC_VPE_SYSTEM: u32 = 1u32; +pub const KS_VIDEO_FLAG_B_FRAME: i32 = 32i32; +pub const KS_VIDEO_FLAG_FIELD1: i32 = 1i32; +pub const KS_VIDEO_FLAG_FIELD1FIRST: i32 = 4i32; +pub const KS_VIDEO_FLAG_FIELD2: i32 = 2i32; +pub const KS_VIDEO_FLAG_FIELD_MASK: i32 = 3i32; +pub const KS_VIDEO_FLAG_FRAME: i32 = 0i32; +pub const KS_VIDEO_FLAG_IPB_MASK: i32 = 48i32; +pub const KS_VIDEO_FLAG_I_FRAME: i32 = 0i32; +pub const KS_VIDEO_FLAG_P_FRAME: i32 = 16i32; +pub const KS_VIDEO_FLAG_REPEAT_FIELD: i32 = 64i32; +pub const KS_VIDEO_FLAG_WEAVE: i32 = 8i32; +pub const KS_VideoControlFlag_ExternalTriggerEnable: KS_VideoControlFlags = 4i32; +pub const KS_VideoControlFlag_FlipHorizontal: KS_VideoControlFlags = 1i32; +pub const KS_VideoControlFlag_FlipVertical: KS_VideoControlFlags = 2i32; +pub const KS_VideoControlFlag_IndependentImagePin: KS_VideoControlFlags = 64i32; +pub const KS_VideoControlFlag_StartPhotoSequenceCapture: KS_VideoControlFlags = 256i32; +pub const KS_VideoControlFlag_StillCapturePreviewFrame: KS_VideoControlFlags = 128i32; +pub const KS_VideoControlFlag_StopPhotoSequenceCapture: KS_VideoControlFlags = 512i32; +pub const KS_VideoControlFlag_Trigger: KS_VideoControlFlags = 8i32; +pub const KS_iBLUE: u32 = 2u32; +pub const KS_iEGA_COLORS: u32 = 16u32; +pub const KS_iGREEN: u32 = 1u32; +pub const KS_iMASK_COLORS: u32 = 3u32; +pub const KS_iMAXBITS: u32 = 8u32; +pub const KS_iPALETTE: u32 = 8u32; +pub const KS_iPALETTE_COLORS: u32 = 256u32; +pub const KS_iRED: u32 = 0u32; +pub const KS_iTRUECOLOR: u32 = 16u32; +pub const KsAllocatorMode_Kernel: KSALLOCATORMODE = 1i32; +pub const KsAllocatorMode_User: KSALLOCATORMODE = 0i32; +pub const KsIoOperation_Read: KSIOOPERATION = 1i32; +pub const KsIoOperation_Write: KSIOOPERATION = 0i32; +pub const KsPeekOperation_AddRef: KSPEEKOPERATION = 1i32; +pub const KsPeekOperation_PeekOnly: KSPEEKOPERATION = 0i32; +pub const LIGHT_FILTER: KSDS3D_HRTF_FILTER_QUALITY = 1i32; +pub const MAX_NABTS_VBI_LINES_PER_FIELD: u32 = 11u32; +pub const MAX_RESOURCEGROUPID_LENGTH: u32 = 256u32; +pub const MAX_SINK_DESCRIPTION_NAME_LENGTH: u32 = 32u32; +pub const MAX_WST_VBI_LINES_PER_FIELD: u32 = 17u32; +pub const MIN_DEV_VER_FOR_FLAGS: u32 = 272u32; +pub const MIN_DEV_VER_FOR_QI: u32 = 256u32; +pub const MetadataId_BackgroundSegmentationMask: KSCAMERA_MetadataId = 8i32; +pub const MetadataId_CameraExtrinsics: KSCAMERA_MetadataId = 4i32; +pub const MetadataId_CameraIntrinsics: KSCAMERA_MetadataId = 5i32; +pub const MetadataId_CaptureStats: KSCAMERA_MetadataId = 3i32; +pub const MetadataId_Custom_Start: KSCAMERA_MetadataId = -2147483648i32; +pub const MetadataId_DigitalWindow: KSCAMERA_MetadataId = 7i32; +pub const MetadataId_FrameIllumination: KSCAMERA_MetadataId = 6i32; +pub const MetadataId_PhotoConfirmation: KSCAMERA_MetadataId = 1i32; +pub const MetadataId_Standard_End: KSCAMERA_MetadataId = 8i32; +pub const MetadataId_Standard_Start: KSCAMERA_MetadataId = 1i32; +pub const MetadataId_UsbVideoHeader: KSCAMERA_MetadataId = 2i32; +pub const NABTS_BUFFER_PICTURENUMBER_SUPPORT: u32 = 1u32; +pub const NABTS_BYTES_PER_LINE: u32 = 36u32; +pub const NABTS_LINES_PER_BUNDLE: u32 = 16u32; +pub const NABTS_PAYLOAD_PER_LINE: u32 = 28u32; +pub const NANOSECONDS: u32 = 10000000u32; +pub const PINNAME_DISPLAYPORT_OUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x21fbb329_1a4a_48da_a076_2318a3c59b26); +pub const PINNAME_HDMI_OUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x387bfc03_e7ef_4901_86e0_35b7c32b00ef); +pub const PINNAME_IMAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38a0cd98_d49b_4ce8_b48a_344667a17830); +pub const PINNAME_SPDIF_IN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x15dc9025_22ad_41b3_8875_f4ceb0299e20); +pub const PINNAME_SPDIF_OUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3a264481_e52c_4b82_8e7a_c8e2f91dc380); +pub const PINNAME_VIDEO_ANALOGVIDEOIN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb6c4283_0353_11d1_905f_0000c0cc16ba); +pub const PINNAME_VIDEO_CAPTURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb6c4281_0353_11d1_905f_0000c0cc16ba); +pub const PINNAME_VIDEO_CC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb6c4289_0353_11d1_905f_0000c0cc16ba); +pub const PINNAME_VIDEO_CC_CAPTURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1aad8061_012d_11d2_b4b1_00a0d102cfbe); +pub const PINNAME_VIDEO_EDS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb6c4287_0353_11d1_905f_0000c0cc16ba); +pub const PINNAME_VIDEO_NABTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb6c4286_0353_11d1_905f_0000c0cc16ba); +pub const PINNAME_VIDEO_NABTS_CAPTURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x29703660_498a_11d2_b4b1_00a0d102cfbe); +pub const PINNAME_VIDEO_PREVIEW: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb6c4282_0353_11d1_905f_0000c0cc16ba); +pub const PINNAME_VIDEO_STILL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb6c428a_0353_11d1_905f_0000c0cc16ba); +pub const PINNAME_VIDEO_TELETEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb6c4288_0353_11d1_905f_0000c0cc16ba); +pub const PINNAME_VIDEO_TIMECODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb6c428b_0353_11d1_905f_0000c0cc16ba); +pub const PINNAME_VIDEO_VBI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb6c4284_0353_11d1_905f_0000c0cc16ba); +pub const PINNAME_VIDEO_VIDEOPORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb6c4285_0353_11d1_905f_0000c0cc16ba); +pub const PINNAME_VIDEO_VIDEOPORT_VBI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb6c428c_0353_11d1_905f_0000c0cc16ba); +pub const PROPSETID_ALLOCATOR_CONTROL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53171960_148e_11d2_9979_0000c0cc16ba); +pub const PROPSETID_EXT_DEVICE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb5730a90_1a2c_11cf_8c23_00aa006b6814); +pub const PROPSETID_EXT_TRANSPORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa03cd5f0_3045_11cf_8c44_00aa006b6814); +pub const PROPSETID_TIMECODE_READER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b496ce1_811b_11cf_8c77_00aa006b6814); +pub const PROPSETID_TUNER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a2e0605_28e4_11d0_a18c_00a0c9118956); +pub const PROPSETID_VIDCAP_CAMERACONTROL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6e13370_30ac_11d0_a18c_00a0c9118956); +pub const PROPSETID_VIDCAP_CAMERACONTROL_FLASH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x785e8f49_63a2_4144_ab70_ffb278fa26ce); +pub const PROPSETID_VIDCAP_CAMERACONTROL_IMAGE_PIN_CAPABILITY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9d3d7bbf_5c6d_4138_bb00_584edd20f7c5); +pub const PROPSETID_VIDCAP_CAMERACONTROL_REGION_OF_INTEREST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9d12d198_f86c_4fed_b023_5d87653da793); +pub const PROPSETID_VIDCAP_CAMERACONTROL_VIDEO_STABILIZATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43964bd3_7716_404e_8be1_d299b20e50fd); +pub const PROPSETID_VIDCAP_CROSSBAR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a2e0640_28e4_11d0_a18c_00a0c9118956); +pub const PROPSETID_VIDCAP_DROPPEDFRAMES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6e13344_30ac_11d0_a18c_00a0c9118956); +pub const PROPSETID_VIDCAP_SELECTOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1abdaeca_68b6_4f83_9371_b413907c7b9f); +pub const PROPSETID_VIDCAP_TVAUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a2e0650_28e4_11d0_a18c_00a0c9118956); +pub const PROPSETID_VIDCAP_VIDEOCOMPRESSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6e13343_30ac_11d0_a18c_00a0c9118956); +pub const PROPSETID_VIDCAP_VIDEOCONTROL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a2e0670_28e4_11d0_a18c_00a0c9118956); +pub const PROPSETID_VIDCAP_VIDEODECODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6e13350_30ac_11d0_a18c_00a0c9118956); +pub const PROPSETID_VIDCAP_VIDEOENCODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a2e0610_28e4_11d0_a18c_00a0c9118956); +pub const PROPSETID_VIDCAP_VIDEOPROCAMP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6e13360_30ac_11d0_a18c_00a0c9118956); +pub const PipeFactor_Align: u32 = 512u32; +pub const PipeFactor_Buffers: u32 = 256u32; +pub const PipeFactor_FixedCompression: u32 = 64u32; +pub const PipeFactor_Flags: u32 = 8u32; +pub const PipeFactor_LogicalEnd: u32 = 2048u32; +pub const PipeFactor_MemoryTypes: u32 = 4u32; +pub const PipeFactor_None: u32 = 0u32; +pub const PipeFactor_OptimalRanges: u32 = 32u32; +pub const PipeFactor_PhysicalEnd: u32 = 1024u32; +pub const PipeFactor_PhysicalRanges: u32 = 16u32; +pub const PipeFactor_UnknownCompression: u32 = 128u32; +pub const PipeFactor_UserModeDownstream: u32 = 2u32; +pub const PipeFactor_UserModeUpstream: u32 = 1u32; +pub const PipeState_CompressionUnknown: PIPE_STATE = 3i32; +pub const PipeState_DontCare: PIPE_STATE = 0i32; +pub const PipeState_Finalized: PIPE_STATE = 4i32; +pub const PipeState_RangeFixed: PIPE_STATE = 2i32; +pub const PipeState_RangeNotFixed: PIPE_STATE = 1i32; +pub const Pipe_Allocator_FirstPin: PIPE_ALLOCATOR_PLACE = 1i32; +pub const Pipe_Allocator_LastPin: PIPE_ALLOCATOR_PLACE = 2i32; +pub const Pipe_Allocator_MiddlePin: PIPE_ALLOCATOR_PLACE = 3i32; +pub const Pipe_Allocator_None: PIPE_ALLOCATOR_PLACE = 0i32; +pub const RT_RCDATA: ::windows_sys::core::PCWSTR = 10u16 as _; +pub const RT_STRING: ::windows_sys::core::PCWSTR = 6u16 as _; +pub const SHORT_COEFF: KSDS3D_HRTF_COEFF_FORMAT = 1i32; +pub const SPEAKER_ALL: u32 = 2147483648u32; +pub const SPEAKER_BACK_CENTER: u32 = 256u32; +pub const SPEAKER_BACK_LEFT: u32 = 16u32; +pub const SPEAKER_BACK_RIGHT: u32 = 32u32; +pub const SPEAKER_FRONT_CENTER: u32 = 4u32; +pub const SPEAKER_FRONT_LEFT: u32 = 1u32; +pub const SPEAKER_FRONT_LEFT_OF_CENTER: u32 = 64u32; +pub const SPEAKER_FRONT_RIGHT: u32 = 2u32; +pub const SPEAKER_FRONT_RIGHT_OF_CENTER: u32 = 128u32; +pub const SPEAKER_LOW_FREQUENCY: u32 = 8u32; +pub const SPEAKER_RESERVED: u32 = 2147221504u32; +pub const SPEAKER_SIDE_LEFT: u32 = 512u32; +pub const SPEAKER_SIDE_RIGHT: u32 = 1024u32; +pub const SPEAKER_TOP_BACK_CENTER: u32 = 65536u32; +pub const SPEAKER_TOP_BACK_LEFT: u32 = 32768u32; +pub const SPEAKER_TOP_BACK_RIGHT: u32 = 131072u32; +pub const SPEAKER_TOP_CENTER: u32 = 2048u32; +pub const SPEAKER_TOP_FRONT_CENTER: u32 = 8192u32; +pub const SPEAKER_TOP_FRONT_LEFT: u32 = 4096u32; +pub const SPEAKER_TOP_FRONT_RIGHT: u32 = 16384u32; +pub const SYSAUDIO_FLAGS_CLEAR_PREFERRED: u32 = 2u32; +pub const SYSAUDIO_FLAGS_DONT_COMBINE_PINS: u32 = 1u32; +pub const TELEPHONY_CALLCONTROLOP_DISABLE: TELEPHONY_CALLCONTROLOP = 0i32; +pub const TELEPHONY_CALLCONTROLOP_ENABLE: TELEPHONY_CALLCONTROLOP = 1i32; +pub const TELEPHONY_CALLSTATE_DISABLED: TELEPHONY_CALLSTATE = 0i32; +pub const TELEPHONY_CALLSTATE_ENABLED: TELEPHONY_CALLSTATE = 1i32; +pub const TELEPHONY_CALLSTATE_HOLD: TELEPHONY_CALLSTATE = 2i32; +pub const TELEPHONY_CALLSTATE_PROVIDERTRANSITION: TELEPHONY_CALLSTATE = 3i32; +pub const TELEPHONY_CALLTYPE_CIRCUITSWITCHED: TELEPHONY_CALLTYPE = 0i32; +pub const TELEPHONY_CALLTYPE_PACKETSWITCHED_LTE: TELEPHONY_CALLTYPE = 1i32; +pub const TELEPHONY_CALLTYPE_PACKETSWITCHED_WLAN: TELEPHONY_CALLTYPE = 2i32; +pub const TELEPHONY_PROVIDERCHANGEOP_BEGIN: TELEPHONY_PROVIDERCHANGEOP = 1i32; +pub const TELEPHONY_PROVIDERCHANGEOP_CANCEL: TELEPHONY_PROVIDERCHANGEOP = 2i32; +pub const TELEPHONY_PROVIDERCHANGEOP_END: TELEPHONY_PROVIDERCHANGEOP = 0i32; +pub const Tuner_LockType_Locked: TunerLockType = 2i32; +pub const Tuner_LockType_None: TunerLockType = 0i32; +pub const Tuner_LockType_Within_Scan_Sensing_Range: TunerLockType = 1i32; +pub const WAVE_FORMAT_EXTENSIBLE: u32 = 65534u32; +pub const WST_BYTES_PER_LINE: u32 = 42u32; +pub const WST_TVTUNER_CHANGE_BEGIN_TUNE: i32 = 4096i32; +pub const WST_TVTUNER_CHANGE_END_TUNE: i32 = 8192i32; +pub const eConnType3Point5mm: EPcxConnectionType = 1i32; +pub const eConnTypeAtapiInternal: EPcxConnectionType = 3i32; +pub const eConnTypeCombination: EPcxConnectionType = 11i32; +pub const eConnTypeMultichannelAnalogDIN: EPcxConnectionType = 8i32; +pub const eConnTypeOptical: EPcxConnectionType = 5i32; +pub const eConnTypeOtherAnalog: EPcxConnectionType = 7i32; +pub const eConnTypeOtherDigital: EPcxConnectionType = 6i32; +pub const eConnTypeQuarter: EPcxConnectionType = 2i32; +pub const eConnTypeRCA: EPcxConnectionType = 4i32; +pub const eConnTypeRJ11Modem: EPcxConnectionType = 10i32; +pub const eConnTypeUnknown: EPcxConnectionType = 0i32; +pub const eConnTypeXlrProfessional: EPcxConnectionType = 9i32; +pub const eDeviceControlUseMissing: EDeviceControlUseType = 0i32; +pub const eDeviceControlUsePrimary: EDeviceControlUseType = 1i32; +pub const eDeviceControlUseSecondary: EDeviceControlUseType = 2i32; +pub const eGenLocInternal: EPcxGenLocation = 1i32; +pub const eGenLocOther: EPcxGenLocation = 3i32; +pub const eGenLocPrimaryBox: EPcxGenLocation = 0i32; +pub const eGenLocSeparate: EPcxGenLocation = 2i32; +pub const eGeoLocATAPI: EPcxGeoLocation = 13i32; +pub const eGeoLocBottom: EPcxGeoLocation = 6i32; +pub const eGeoLocDrivebay: EPcxGeoLocation = 10i32; +pub const eGeoLocFront: EPcxGeoLocation = 2i32; +pub const eGeoLocHDMI: EPcxGeoLocation = 11i32; +pub const eGeoLocInsideMobileLid: EPcxGeoLocation = 9i32; +pub const eGeoLocLeft: EPcxGeoLocation = 3i32; +pub const eGeoLocNotApplicable: EPcxGeoLocation = 14i32; +pub const eGeoLocOutsideMobileLid: EPcxGeoLocation = 12i32; +pub const eGeoLocRear: EPcxGeoLocation = 1i32; +pub const eGeoLocRearPanel: EPcxGeoLocation = 7i32; +pub const eGeoLocReserved6: EPcxGeoLocation = 15i32; +pub const eGeoLocRight: EPcxGeoLocation = 4i32; +pub const eGeoLocRiser: EPcxGeoLocation = 8i32; +pub const eGeoLocTop: EPcxGeoLocation = 5i32; +pub const ePortConnBothIntegratedAndJack: EPxcPortConnection = 2i32; +pub const ePortConnIntegratedDevice: EPxcPortConnection = 1i32; +pub const ePortConnJack: EPxcPortConnection = 0i32; +pub const ePortConnUnknown: EPxcPortConnection = 3i32; +pub type AUDIOPOSTURE_ORIENTATION = i32; +pub type AUDIO_CURVE_TYPE = i32; +pub type CAPTURE_MEMORY_ALLOCATION_FLAGS = i32; +pub type CONSTRICTOR_OPTION = i32; +pub type EDeviceControlUseType = i32; +pub type EPcxConnectionType = i32; +pub type EPcxGenLocation = i32; +pub type EPcxGeoLocation = i32; +pub type EPxcPortConnection = i32; +pub type FRAMING_CACHE_OPS = i32; +pub type FRAMING_PROP = i32; +pub type KSALLOCATORMODE = i32; +pub type KSCAMERA_EXTENDEDPROP_FOCUSSTATE = i32; +pub type KSCAMERA_EXTENDEDPROP_MetadataAlignment = i32; +pub type KSCAMERA_EXTENDEDPROP_ROITYPE = i32; +pub type KSCAMERA_EXTENDEDPROP_WBPRESET = i32; +pub type KSCAMERA_EXTENDEDPROP_WHITEBALANCE_MODE = i32; +pub type KSCAMERA_MetadataId = i32; +pub type KSCAMERA_PERFRAMESETTING_ITEM_TYPE = i32; +pub type KSDEGRADE_STANDARD = i32; +pub type KSDEVICE_THERMAL_STATE = i32; +pub type KSDS3D_HRTF_COEFF_FORMAT = i32; +pub type KSDS3D_HRTF_FILTER_METHOD = i32; +pub type KSDS3D_HRTF_FILTER_QUALITY = i32; +pub type KSDS3D_HRTF_FILTER_VERSION = i32; +pub type KSEVENT_AUDIO_CONTROL_CHANGE = i32; +pub type KSEVENT_CAMERACONTROL = i32; +pub type KSEVENT_CAMERAEVENT = i32; +pub type KSEVENT_CLOCK_POSITION = i32; +pub type KSEVENT_CONNECTION = i32; +pub type KSEVENT_CROSSBAR = i32; +pub type KSEVENT_DEVCMD = i32; +pub type KSEVENT_DEVICE = i32; +pub type KSEVENT_DYNAMICFORMATCHANGE = i32; +pub type KSEVENT_LOOPEDSTREAMING = i32; +pub type KSEVENT_PINCAPS_CHANGENOTIFICATIONS = i32; +pub type KSEVENT_SOUNDDETECTOR = i32; +pub type KSEVENT_STREAMALLOCATOR = i32; +pub type KSEVENT_TELEPHONY = i32; +pub type KSEVENT_TUNER = i32; +pub type KSEVENT_TVAUDIO = i32; +pub type KSEVENT_VIDCAPTOSTI = i32; +pub type KSEVENT_VIDEODECODER = i32; +pub type KSEVENT_VOLUMELIMIT = i32; +pub type KSEVENT_VPNOTIFY = i32; +pub type KSEVENT_VPVBINOTIFY = i32; +pub type KSINTERFACE_FILEIO = i32; +pub type KSINTERFACE_MEDIA = i32; +pub type KSINTERFACE_STANDARD = i32; +pub type KSIOOPERATION = i32; +pub type KSJACK_SINK_CONNECTIONTYPE = i32; +pub type KSMETHOD_STREAMALLOCATOR = i32; +pub type KSMETHOD_STREAMIO = i32; +pub type KSMETHOD_WAVETABLE = i32; +pub type KSMICARRAY_MICARRAYTYPE = i32; +pub type KSMICARRAY_MICTYPE = i32; +pub type KSPEEKOPERATION = i32; +pub type KSPIN_COMMUNICATION = i32; +pub type KSPIN_DATAFLOW = i32; +pub type KSPIN_MDL_CACHING_EVENT = i32; +pub type KSPPROPERTY_ALLOCATOR_MDLCACHING = i32; +pub type KSPROPERTY_AC3 = i32; +pub type KSPROPERTY_ALLOCATOR_CONTROL = i32; +pub type KSPROPERTY_AUDDECOUT = i32; +pub type KSPROPERTY_AUDIO = i32; +pub type KSPROPERTY_AUDIOENGINE = i32; +pub type KSPROPERTY_AUDIOMODULE = i32; +pub type KSPROPERTY_AUDIOPOSTURE = i32; +pub type KSPROPERTY_AUDIORESOURCEMANAGEMENT = i32; +pub type KSPROPERTY_AUDIOSIGNALPROCESSING = i32; +pub type KSPROPERTY_BIBLIOGRAPHIC = i32; +pub type KSPROPERTY_BTAUDIO = i32; +pub type KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY = i32; +pub type KSPROPERTY_CAMERACONTROL_FLASH = i32; +pub type KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY = i32; +pub type KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY = i32; +pub type KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST = i32; +pub type KSPROPERTY_CAMERACONTROL_VIDEO_STABILIZATION_MODE = i32; +pub type KSPROPERTY_CAMERA_PHOTOTRIGGERTIME_FLAGS = i32; +pub type KSPROPERTY_CLOCK = i32; +pub type KSPROPERTY_CONNECTION = i32; +pub type KSPROPERTY_COPYPROT = i32; +pub type KSPROPERTY_CYCLIC = i32; +pub type KSPROPERTY_DIRECTSOUND3DBUFFER = i32; +pub type KSPROPERTY_DIRECTSOUND3DLISTENER = i32; +pub type KSPROPERTY_DRMAUDIOSTREAM = i32; +pub type KSPROPERTY_DVDSUBPIC = i32; +pub type KSPROPERTY_EXTDEVICE = i32; +pub type KSPROPERTY_EXTENSION_UNIT = i32; +pub type KSPROPERTY_EXTXPORT = i32; +pub type KSPROPERTY_FMRX_CONTROL = i32; +pub type KSPROPERTY_FMRX_TOPOLOGY = i32; +pub type KSPROPERTY_GENERAL = i32; +pub type KSPROPERTY_HRTF3D = i32; +pub type KSPROPERTY_INTERLEAVEDAUDIO = i32; +pub type KSPROPERTY_ITD3D = i32; +pub type KSPROPERTY_JACK = i32; +pub type KSPROPERTY_MEDIASEEKING = i32; +pub type KSPROPERTY_MPEG2VID = i32; +pub type KSPROPERTY_MPEG4_MEDIATYPE_ATTRIBUTES = i32; +pub type KSPROPERTY_NETWORKCAMERACONTROL_METADATA_TYPE = i32; +pub type KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE = i32; +pub type KSPROPERTY_NETWORKCAMERACONTROL_PROPERTY = i32; +pub type KSPROPERTY_OVERLAYUPDATE = i32; +pub type KSPROPERTY_PIN = i32; +pub type KSPROPERTY_QUALITY = i32; +pub type KSPROPERTY_RTAUDIO = i32; +pub type KSPROPERTY_SOUNDDETECTOR = i32; +pub type KSPROPERTY_STREAM = i32; +pub type KSPROPERTY_STREAMINTERFACE = i32; +pub type KSPROPERTY_TELEPHONY_CONTROL = i32; +pub type KSPROPERTY_TELEPHONY_TOPOLOGY = i32; +pub type KSPROPERTY_TIMECODE = i32; +pub type KSPROPERTY_TOPOLOGY = i32; +pub type KSPROPERTY_TOPOLOGYNODE = i32; +pub type KSPROPERTY_TUNER = i32; +pub type KSPROPERTY_TUNER_MODES = i32; +pub type KSPROPERTY_VBICAP = i32; +pub type KSPROPERTY_VBICODECFILTERING = i32; +pub type KSPROPERTY_VIDCAP_CAMERACONTROL = i32; +pub type KSPROPERTY_VIDCAP_CROSSBAR = i32; +pub type KSPROPERTY_VIDCAP_DROPPEDFRAMES = i32; +pub type KSPROPERTY_VIDCAP_SELECTOR = i32; +pub type KSPROPERTY_VIDCAP_TVAUDIO = i32; +pub type KSPROPERTY_VIDCAP_VIDEOCOMPRESSION = i32; +pub type KSPROPERTY_VIDCAP_VIDEOCONTROL = i32; +pub type KSPROPERTY_VIDCAP_VIDEODECODER = i32; +pub type KSPROPERTY_VIDCAP_VIDEOENCODER = i32; +pub type KSPROPERTY_VIDCAP_VIDEOPROCAMP = i32; +pub type KSPROPERTY_VIDMEM_TRANSPORT = i32; +pub type KSPROPERTY_VPCONFIG = i32; +pub type KSPROPERTY_WAVE = i32; +pub type KSRESET = i32; +pub type KSSTATE = i32; +pub type KS_AMPixAspectRatio = i32; +pub type KS_AMVP_MODE = i32; +pub type KS_AMVP_SELECTFORMATBY = i32; +pub type KS_AM_PROPERTY_TS_RATE_CHANGE = i32; +pub type KS_AnalogVideoStandard = i32; +pub type KS_COPY_MACROVISION_LEVEL = i32; +pub type KS_CameraControlAsyncOperation = i32; +pub type KS_CompressionCaps = i32; +pub type KS_DVDCOPYSTATE = i32; +pub type KS_LogicalMemoryType = i32; +pub type KS_MPEG2Level = i32; +pub type KS_MPEG2Profile = i32; +pub type KS_PhysicalConnectorType = i32; +pub type KS_SEEKING_CAPABILITIES = i32; +pub type KS_SEEKING_FLAGS = i32; +pub type KS_TUNER_STRATEGY = i32; +pub type KS_TUNER_TUNING_FLAGS = i32; +pub type KS_VIDEODECODER_FLAGS = i32; +pub type KS_VideoControlFlags = i32; +pub type KS_VideoStreamingHints = i32; +pub type PIPE_ALLOCATOR_PLACE = i32; +pub type PIPE_STATE = i32; +pub type TELEPHONY_CALLCONTROLOP = i32; +pub type TELEPHONY_CALLSTATE = i32; +pub type TELEPHONY_CALLTYPE = i32; +pub type TELEPHONY_PROVIDERCHANGEOP = i32; +pub type TunerLockType = i32; +#[repr(C)] +pub struct ALLOCATOR_PROPERTIES_EX { + pub cBuffers: i32, + pub cbBuffer: i32, + pub cbAlign: i32, + pub cbPrefix: i32, + pub MemoryType: ::windows_sys::core::GUID, + pub BusType: ::windows_sys::core::GUID, + pub State: PIPE_STATE, + pub Input: PIPE_TERMINATION, + pub Output: PIPE_TERMINATION, + pub Strategy: u32, + pub Flags: u32, + pub Weight: u32, + pub LogicalMemoryType: KS_LogicalMemoryType, + pub AllocatorPlace: PIPE_ALLOCATOR_PLACE, + pub Dimensions: PIPE_DIMENSIONS, + pub PhysicalRange: KS_FRAMING_RANGE, + pub PrevSegment: IKsAllocatorEx, + pub CountNextSegments: u32, + pub NextSegments: *mut IKsAllocatorEx, + pub InsideFactors: u32, + pub NumberPins: u32, +} +impl ::core::marker::Copy for ALLOCATOR_PROPERTIES_EX {} +impl ::core::clone::Clone for ALLOCATOR_PROPERTIES_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AUDIORESOURCEMANAGEMENT_RESOURCEGROUP { + pub ResourceGroupAcquired: super::super::Foundation::BOOL, + pub ResourceGroupName: [u16; 256], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AUDIORESOURCEMANAGEMENT_RESOURCEGROUP {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AUDIORESOURCEMANAGEMENT_RESOURCEGROUP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CC_BYTE_PAIR { + pub Decoded: [u8; 2], + pub Reserved: u16, +} +impl ::core::marker::Copy for CC_BYTE_PAIR {} +impl ::core::clone::Clone for CC_BYTE_PAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CC_HW_FIELD { + pub ScanlinesRequested: VBICODECFILTERING_SCANLINES, + pub fieldFlags: u32, + pub PictureNumber: i64, + pub Lines: [CC_BYTE_PAIR; 12], +} +impl ::core::marker::Copy for CC_HW_FIELD {} +impl ::core::clone::Clone for CC_HW_FIELD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVCAPS { + pub CanRecord: i32, + pub CanRecordStrobe: i32, + pub HasAudio: i32, + pub HasVideo: i32, + pub UsesFiles: i32, + pub CanSave: i32, + pub DeviceType: i32, + pub TCRead: i32, + pub TCWrite: i32, + pub CTLRead: i32, + pub IndexRead: i32, + pub Preroll: i32, + pub Postroll: i32, + pub SyncAcc: i32, + pub NormRate: i32, + pub CanPreview: i32, + pub CanMonitorSrc: i32, + pub CanTest: i32, + pub VideoIn: i32, + pub AudioIn: i32, + pub Calibrate: i32, + pub SeekType: i32, + pub SimulatedHardware: i32, +} +impl ::core::marker::Copy for DEVCAPS {} +impl ::core::clone::Clone for DEVCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS3DVECTOR { + pub Anonymous1: DS3DVECTOR_0, + pub Anonymous2: DS3DVECTOR_1, + pub Anonymous3: DS3DVECTOR_2, +} +impl ::core::marker::Copy for DS3DVECTOR {} +impl ::core::clone::Clone for DS3DVECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DS3DVECTOR_0 { + pub x: f32, + pub dvX: f32, +} +impl ::core::marker::Copy for DS3DVECTOR_0 {} +impl ::core::clone::Clone for DS3DVECTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DS3DVECTOR_1 { + pub y: f32, + pub dvY: f32, +} +impl ::core::marker::Copy for DS3DVECTOR_1 {} +impl ::core::clone::Clone for DS3DVECTOR_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DS3DVECTOR_2 { + pub z: f32, + pub dvZ: f32, +} +impl ::core::marker::Copy for DS3DVECTOR_2 {} +impl ::core::clone::Clone for DS3DVECTOR_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERLEAVED_AUDIO_FORMAT_INFORMATION { + pub Size: u32, + pub PrimaryChannelCount: u32, + pub PrimaryChannelStartPosition: u32, + pub PrimaryChannelMask: u32, + pub InterleavedChannelCount: u32, + pub InterleavedChannelStartPosition: u32, + pub InterleavedChannelMask: u32, +} +impl ::core::marker::Copy for INTERLEAVED_AUDIO_FORMAT_INFORMATION {} +impl ::core::clone::Clone for INTERLEAVED_AUDIO_FORMAT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSAC3_ALTERNATE_AUDIO { + pub fStereo: super::super::Foundation::BOOL, + pub DualMode: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSAC3_ALTERNATE_AUDIO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSAC3_ALTERNATE_AUDIO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAC3_BIT_STREAM_MODE { + pub BitStreamMode: i32, +} +impl ::core::marker::Copy for KSAC3_BIT_STREAM_MODE {} +impl ::core::clone::Clone for KSAC3_BIT_STREAM_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAC3_DIALOGUE_LEVEL { + pub DialogueLevel: u32, +} +impl ::core::marker::Copy for KSAC3_DIALOGUE_LEVEL {} +impl ::core::clone::Clone for KSAC3_DIALOGUE_LEVEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSAC3_DOWNMIX { + pub fDownMix: super::super::Foundation::BOOL, + pub fDolbySurround: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSAC3_DOWNMIX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSAC3_DOWNMIX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSAC3_ERROR_CONCEALMENT { + pub fRepeatPreviousBlock: super::super::Foundation::BOOL, + pub fErrorInCurrentBlock: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSAC3_ERROR_CONCEALMENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSAC3_ERROR_CONCEALMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSAC3_ROOM_TYPE { + pub fLargeRoom: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSAC3_ROOM_TYPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSAC3_ROOM_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSALLOCATOR_FRAMING { + pub Anonymous1: KSALLOCATOR_FRAMING_0, + pub PoolType: u32, + pub Frames: u32, + pub FrameSize: u32, + pub Anonymous2: KSALLOCATOR_FRAMING_1, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSALLOCATOR_FRAMING {} +impl ::core::clone::Clone for KSALLOCATOR_FRAMING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KSALLOCATOR_FRAMING_0 { + pub OptionsFlags: u32, + pub RequirementsFlags: u32, +} +impl ::core::marker::Copy for KSALLOCATOR_FRAMING_0 {} +impl ::core::clone::Clone for KSALLOCATOR_FRAMING_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KSALLOCATOR_FRAMING_1 { + pub FileAlignment: u32, + pub FramePitch: i32, +} +impl ::core::marker::Copy for KSALLOCATOR_FRAMING_1 {} +impl ::core::clone::Clone for KSALLOCATOR_FRAMING_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSALLOCATOR_FRAMING_EX { + pub CountItems: u32, + pub PinFlags: u32, + pub OutputCompression: KS_COMPRESSION, + pub PinWeight: u32, + pub FramingItem: [KS_FRAMING_ITEM; 1], +} +impl ::core::marker::Copy for KSALLOCATOR_FRAMING_EX {} +impl ::core::clone::Clone for KSALLOCATOR_FRAMING_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSATTRIBUTE { + pub Size: u32, + pub Flags: u32, + pub Attribute: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for KSATTRIBUTE {} +impl ::core::clone::Clone for KSATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE { + pub AttributeHeader: KSATTRIBUTE, + pub SignalProcessingMode: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE {} +impl ::core::clone::Clone for KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIOENGINE_BUFFER_SIZE_RANGE { + pub MinBufferBytes: u32, + pub MaxBufferBytes: u32, +} +impl ::core::marker::Copy for KSAUDIOENGINE_BUFFER_SIZE_RANGE {} +impl ::core::clone::Clone for KSAUDIOENGINE_BUFFER_SIZE_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIOENGINE_DESCRIPTOR { + pub nHostPinId: u32, + pub nOffloadPinId: u32, + pub nLoopbackPinId: u32, +} +impl ::core::marker::Copy for KSAUDIOENGINE_DESCRIPTOR {} +impl ::core::clone::Clone for KSAUDIOENGINE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIOENGINE_DEVICECONTROLS { + pub Volume: EDeviceControlUseType, + pub Mute: EDeviceControlUseType, + pub PeakMeter: EDeviceControlUseType, +} +impl ::core::marker::Copy for KSAUDIOENGINE_DEVICECONTROLS {} +impl ::core::clone::Clone for KSAUDIOENGINE_DEVICECONTROLS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIOENGINE_VOLUMELEVEL { + pub TargetVolume: i32, + pub CurveType: AUDIO_CURVE_TYPE, + pub CurveDuration: u64, +} +impl ::core::marker::Copy for KSAUDIOENGINE_VOLUMELEVEL {} +impl ::core::clone::Clone for KSAUDIOENGINE_VOLUMELEVEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIOMODULE_DESCRIPTOR { + pub ClassId: ::windows_sys::core::GUID, + pub InstanceId: u32, + pub VersionMajor: u32, + pub VersionMinor: u32, + pub Name: [u16; 128], +} +impl ::core::marker::Copy for KSAUDIOMODULE_DESCRIPTOR {} +impl ::core::clone::Clone for KSAUDIOMODULE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIOMODULE_NOTIFICATION { + pub Anonymous: KSAUDIOMODULE_NOTIFICATION_0, +} +impl ::core::marker::Copy for KSAUDIOMODULE_NOTIFICATION {} +impl ::core::clone::Clone for KSAUDIOMODULE_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KSAUDIOMODULE_NOTIFICATION_0 { + pub ProviderId: KSAUDIOMODULE_NOTIFICATION_0_0, + pub Alignment: i64, +} +impl ::core::marker::Copy for KSAUDIOMODULE_NOTIFICATION_0 {} +impl ::core::clone::Clone for KSAUDIOMODULE_NOTIFICATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIOMODULE_NOTIFICATION_0_0 { + pub DeviceId: ::windows_sys::core::GUID, + pub ClassId: ::windows_sys::core::GUID, + pub InstanceId: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSAUDIOMODULE_NOTIFICATION_0_0 {} +impl ::core::clone::Clone for KSAUDIOMODULE_NOTIFICATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIOMODULE_PROPERTY { + pub Property: KSIDENTIFIER, + pub ClassId: ::windows_sys::core::GUID, + pub InstanceId: u32, +} +impl ::core::marker::Copy for KSAUDIOMODULE_PROPERTY {} +impl ::core::clone::Clone for KSAUDIOMODULE_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIO_CHANNEL_CONFIG { + pub ActiveSpeakerPositions: i32, +} +impl ::core::marker::Copy for KSAUDIO_CHANNEL_CONFIG {} +impl ::core::clone::Clone for KSAUDIO_CHANNEL_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSAUDIO_COPY_PROTECTION { + pub fCopyrighted: super::super::Foundation::BOOL, + pub fOriginal: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSAUDIO_COPY_PROTECTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSAUDIO_COPY_PROTECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIO_DYNAMIC_RANGE { + pub QuietCompression: u32, + pub LoudCompression: u32, +} +impl ::core::marker::Copy for KSAUDIO_DYNAMIC_RANGE {} +impl ::core::clone::Clone for KSAUDIO_DYNAMIC_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIO_MICROPHONE_COORDINATES { + pub usType: u16, + pub wXCoord: i16, + pub wYCoord: i16, + pub wZCoord: i16, + pub wVerticalAngle: i16, + pub wHorizontalAngle: i16, +} +impl ::core::marker::Copy for KSAUDIO_MICROPHONE_COORDINATES {} +impl ::core::clone::Clone for KSAUDIO_MICROPHONE_COORDINATES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIO_MIC_ARRAY_GEOMETRY { + pub usVersion: u16, + pub usMicArrayType: u16, + pub wVerticalAngleBegin: i16, + pub wVerticalAngleEnd: i16, + pub wHorizontalAngleBegin: i16, + pub wHorizontalAngleEnd: i16, + pub usFrequencyBandLo: u16, + pub usFrequencyBandHi: u16, + pub usNumberOfMicrophones: u16, + pub KsMicCoord: [KSAUDIO_MICROPHONE_COORDINATES; 1], +} +impl ::core::marker::Copy for KSAUDIO_MIC_ARRAY_GEOMETRY {} +impl ::core::clone::Clone for KSAUDIO_MIC_ARRAY_GEOMETRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSAUDIO_MIXCAP_TABLE { + pub InputChannels: u32, + pub OutputChannels: u32, + pub Capabilities: [KSAUDIO_MIX_CAPS; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSAUDIO_MIXCAP_TABLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSAUDIO_MIXCAP_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSAUDIO_MIXLEVEL { + pub Mute: super::super::Foundation::BOOL, + pub Level: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSAUDIO_MIXLEVEL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSAUDIO_MIXLEVEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSAUDIO_MIX_CAPS { + pub Mute: super::super::Foundation::BOOL, + pub Minimum: i32, + pub Maximum: i32, + pub Anonymous: KSAUDIO_MIX_CAPS_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSAUDIO_MIX_CAPS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSAUDIO_MIX_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union KSAUDIO_MIX_CAPS_0 { + pub Reset: i32, + pub Resolution: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSAUDIO_MIX_CAPS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSAUDIO_MIX_CAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIO_PACKETSIZE_CONSTRAINTS { + pub MinPacketPeriodInHns: u32, + pub PacketSizeFileAlignment: u32, + pub Reserved: u32, + pub NumProcessingModeConstraints: u32, + pub ProcessingModeConstraints: [KSAUDIO_PACKETSIZE_PROCESSINGMODE_CONSTRAINT; 1], +} +impl ::core::marker::Copy for KSAUDIO_PACKETSIZE_CONSTRAINTS {} +impl ::core::clone::Clone for KSAUDIO_PACKETSIZE_CONSTRAINTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIO_PACKETSIZE_CONSTRAINTS2 { + pub MinPacketPeriodInHns: u32, + pub PacketSizeFileAlignment: u32, + pub MaxPacketSizeInBytes: u32, + pub NumProcessingModeConstraints: u32, + pub ProcessingModeConstraints: [KSAUDIO_PACKETSIZE_PROCESSINGMODE_CONSTRAINT; 1], +} +impl ::core::marker::Copy for KSAUDIO_PACKETSIZE_CONSTRAINTS2 {} +impl ::core::clone::Clone for KSAUDIO_PACKETSIZE_CONSTRAINTS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIO_PACKETSIZE_PROCESSINGMODE_CONSTRAINT { + pub ProcessingMode: ::windows_sys::core::GUID, + pub SamplesPerProcessingPacket: u32, + pub ProcessingPacketDurationInHns: u32, +} +impl ::core::marker::Copy for KSAUDIO_PACKETSIZE_PROCESSINGMODE_CONSTRAINT {} +impl ::core::clone::Clone for KSAUDIO_PACKETSIZE_PROCESSINGMODE_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIO_POSITION { + pub PlayOffset: u64, + pub WriteOffset: u64, +} +impl ::core::marker::Copy for KSAUDIO_POSITION {} +impl ::core::clone::Clone for KSAUDIO_POSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIO_POSITIONEX { + pub TimerFrequency: i64, + pub TimeStamp1: i64, + pub Position: KSAUDIO_POSITION, + pub TimeStamp2: i64, +} +impl ::core::marker::Copy for KSAUDIO_POSITIONEX {} +impl ::core::clone::Clone for KSAUDIO_POSITIONEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSAUDIO_PRESENTATION_POSITION { + pub u64PositionInBlocks: u64, + pub u64QPCPosition: u64, +} +impl ::core::marker::Copy for KSAUDIO_PRESENTATION_POSITION {} +impl ::core::clone::Clone for KSAUDIO_PRESENTATION_POSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_CONFIGCAPS { + pub Resolution: super::super::Foundation::SIZE, + pub MaxFrameRate: KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_CONFIGCAPS_0, + pub MaskResolution: super::super::Foundation::SIZE, + pub SubType: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_CONFIGCAPS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_CONFIGCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_CONFIGCAPS_0 { + pub Numerator: i32, + pub Denominator: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_CONFIGCAPS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_CONFIGCAPS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_CAMERAOFFSET { + pub PitchAngle: i32, + pub YawAngle: i32, + pub Flag: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_CAMERAOFFSET {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_CAMERAOFFSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPS { + pub ResolutionX: i32, + pub ResolutionY: i32, + pub PorchTop: i32, + pub PorchLeft: i32, + pub PorchBottom: i32, + pub PorchRight: i32, + pub NonUpscalingWindowSize: i32, + pub MinWindowSize: i32, + pub MaxWindowSize: i32, + pub Reserved: i32, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPS {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPSHEADER { + pub Size: u32, + pub Count: u32, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPSHEADER {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_CONFIGCAPSHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_SETTING { + pub OriginX: i32, + pub OriginY: i32, + pub WindowSize: i32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_SETTING {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_SETTING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_EVCOMPENSATION { + pub Mode: u32, + pub Min: i32, + pub Max: i32, + pub Value: i32, + pub Reserved: u64, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_EVCOMPENSATION {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_EVCOMPENSATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_FIELDOFVIEW { + pub NormalizedFocalLengthX: u32, + pub NormalizedFocalLengthY: u32, + pub Flag: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_FIELDOFVIEW {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_FIELDOFVIEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_HEADER { + pub Version: u32, + pub PinId: u32, + pub Size: u32, + pub Result: u32, + pub Flags: u64, + pub Capability: u64, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_HEADER {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_METADATAINFO { + pub BufferAlignment: i32, + pub MaxMetadataBufferSize: u32, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_METADATAINFO {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_METADATAINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_PHOTOMODE { + pub RequestedHistoryFrames: u32, + pub MaxHistoryFrames: u32, + pub SubMode: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_PHOTOMODE {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_PHOTOMODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_PROFILE { + pub ProfileId: ::windows_sys::core::GUID, + pub Index: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_PROFILE {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_PROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPS { + pub ControlId: u32, + pub MaxNumberOfROIs: u32, + pub Capability: u64, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPS {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPSHEADER { + pub Size: u32, + pub ConfigCapCount: u32, + pub Reserved: u64, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPSHEADER {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPSHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSCAMERA_EXTENDEDPROP_ROI_EXPOSURE { + pub ROIInfo: KSCAMERA_EXTENDEDPROP_ROI_INFO, + pub Reserved: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_ROI_EXPOSURE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_ROI_EXPOSURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSCAMERA_EXTENDEDPROP_ROI_FOCUS { + pub ROIInfo: KSCAMERA_EXTENDEDPROP_ROI_INFO, + pub Reserved: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_ROI_FOCUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_ROI_FOCUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSCAMERA_EXTENDEDPROP_ROI_INFO { + pub Region: super::super::Foundation::RECT, + pub Flags: u64, + pub Weight: i32, + pub RegionOfInterestType: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_ROI_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_ROI_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL { + pub ControlId: u32, + pub ROICount: u32, + pub Result: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER { + pub Size: u32, + pub ControlCount: u32, + pub Reserved: u64, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSCAMERA_EXTENDEDPROP_ROI_WHITEBALANCE { + pub ROIInfo: KSCAMERA_EXTENDEDPROP_ROI_INFO, + pub Reserved: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_ROI_WHITEBALANCE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_ROI_WHITEBALANCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_VALUE { + pub Value: KSCAMERA_EXTENDEDPROP_VALUE_0, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_VALUE {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KSCAMERA_EXTENDEDPROP_VALUE_0 { + pub dbl: f64, + pub ull: u64, + pub ul: u32, + pub ratio: u64, + pub l: i32, + pub ll: i64, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_VALUE_0 {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_VALUE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING { + pub Mode: u32, + pub Min: i32, + pub Max: i32, + pub Step: i32, + pub VideoProc: KSCAMERA_EXTENDEDPROP_VALUE, + pub Reserved: u64, +} +impl ::core::marker::Copy for KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING {} +impl ::core::clone::Clone for KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_MAXVIDEOFPS_FORPHOTORES { + pub PhotoResWidth: u32, + pub PhotoResHeight: u32, + pub PreviewFPSNum: u32, + pub PreviewFPSDenom: u32, + pub CaptureFPSNum: u32, + pub CaptureFPSDenom: u32, +} +impl ::core::marker::Copy for KSCAMERA_MAXVIDEOFPS_FORPHOTORES {} +impl ::core::clone::Clone for KSCAMERA_MAXVIDEOFPS_FORPHOTORES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSCAMERA_METADATA_BACKGROUNDSEGMENTATIONMASK { + pub Header: KSCAMERA_METADATA_ITEMHEADER, + pub MaskCoverageBoundingBox: super::super::Foundation::RECT, + pub MaskResolution: super::super::Foundation::SIZE, + pub ForegroundBoundingBox: super::super::Foundation::RECT, + pub MaskData: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSCAMERA_METADATA_BACKGROUNDSEGMENTATIONMASK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSCAMERA_METADATA_BACKGROUNDSEGMENTATIONMASK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_METADATA_CAPTURESTATS { + pub Header: KSCAMERA_METADATA_ITEMHEADER, + pub Flags: u32, + pub Reserved: u32, + pub ExposureTime: u64, + pub ExposureCompensationFlags: u64, + pub ExposureCompensationValue: i32, + pub IsoSpeed: u32, + pub FocusState: u32, + pub LensPosition: u32, + pub WhiteBalance: u32, + pub Flash: u32, + pub FlashPower: u32, + pub ZoomFactor: u32, + pub SceneMode: u64, + pub SensorFramerate: u64, +} +impl ::core::marker::Copy for KSCAMERA_METADATA_CAPTURESTATS {} +impl ::core::clone::Clone for KSCAMERA_METADATA_CAPTURESTATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_METADATA_DIGITALWINDOW { + pub Header: KSCAMERA_METADATA_ITEMHEADER, + pub Window: KSCAMERA_EXTENDEDPROP_DIGITALWINDOW_SETTING, +} +impl ::core::marker::Copy for KSCAMERA_METADATA_DIGITALWINDOW {} +impl ::core::clone::Clone for KSCAMERA_METADATA_DIGITALWINDOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_METADATA_FRAMEILLUMINATION { + pub Header: KSCAMERA_METADATA_ITEMHEADER, + pub Flags: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSCAMERA_METADATA_FRAMEILLUMINATION {} +impl ::core::clone::Clone for KSCAMERA_METADATA_FRAMEILLUMINATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_METADATA_ITEMHEADER { + pub MetadataId: u32, + pub Size: u32, +} +impl ::core::marker::Copy for KSCAMERA_METADATA_ITEMHEADER {} +impl ::core::clone::Clone for KSCAMERA_METADATA_ITEMHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_METADATA_PHOTOCONFIRMATION { + pub Header: KSCAMERA_METADATA_ITEMHEADER, + pub PhotoConfirmationIndex: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSCAMERA_METADATA_PHOTOCONFIRMATION {} +impl ::core::clone::Clone for KSCAMERA_METADATA_PHOTOCONFIRMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_PERFRAMESETTING_CAP_HEADER { + pub Size: u32, + pub ItemCount: u32, + pub Flags: u64, +} +impl ::core::marker::Copy for KSCAMERA_PERFRAMESETTING_CAP_HEADER {} +impl ::core::clone::Clone for KSCAMERA_PERFRAMESETTING_CAP_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER { + pub Size: u32, + pub Type: u32, + pub Flags: u64, +} +impl ::core::marker::Copy for KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER {} +impl ::core::clone::Clone for KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_PERFRAMESETTING_CUSTOM_ITEM { + pub Size: u32, + pub Reserved: u32, + pub Id: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for KSCAMERA_PERFRAMESETTING_CUSTOM_ITEM {} +impl ::core::clone::Clone for KSCAMERA_PERFRAMESETTING_CUSTOM_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_PERFRAMESETTING_FRAME_HEADER { + pub Size: u32, + pub Id: u32, + pub ItemCount: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSCAMERA_PERFRAMESETTING_FRAME_HEADER {} +impl ::core::clone::Clone for KSCAMERA_PERFRAMESETTING_FRAME_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_PERFRAMESETTING_HEADER { + pub Size: u32, + pub FrameCount: u32, + pub Id: ::windows_sys::core::GUID, + pub Flags: u64, + pub LoopCount: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSCAMERA_PERFRAMESETTING_HEADER {} +impl ::core::clone::Clone for KSCAMERA_PERFRAMESETTING_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_PERFRAMESETTING_ITEM_HEADER { + pub Size: u32, + pub Type: u32, + pub Flags: u64, +} +impl ::core::marker::Copy for KSCAMERA_PERFRAMESETTING_ITEM_HEADER {} +impl ::core::clone::Clone for KSCAMERA_PERFRAMESETTING_ITEM_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_PROFILE_CONCURRENCYINFO { + pub ReferenceGuid: ::windows_sys::core::GUID, + pub Reserved: u32, + pub ProfileCount: u32, + pub Profiles: *mut KSCAMERA_PROFILE_INFO, +} +impl ::core::marker::Copy for KSCAMERA_PROFILE_CONCURRENCYINFO {} +impl ::core::clone::Clone for KSCAMERA_PROFILE_CONCURRENCYINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_PROFILE_INFO { + pub ProfileId: ::windows_sys::core::GUID, + pub Index: u32, + pub PinCount: u32, + pub Pins: *mut KSCAMERA_PROFILE_PININFO, +} +impl ::core::marker::Copy for KSCAMERA_PROFILE_INFO {} +impl ::core::clone::Clone for KSCAMERA_PROFILE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_PROFILE_MEDIAINFO { + pub Resolution: KSCAMERA_PROFILE_MEDIAINFO_1, + pub MaxFrameRate: KSCAMERA_PROFILE_MEDIAINFO_0, + pub Flags: u64, + pub Data0: u32, + pub Data1: u32, + pub Data2: u32, + pub Data3: u32, +} +impl ::core::marker::Copy for KSCAMERA_PROFILE_MEDIAINFO {} +impl ::core::clone::Clone for KSCAMERA_PROFILE_MEDIAINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_PROFILE_MEDIAINFO_0 { + pub Numerator: u32, + pub Denominator: u32, +} +impl ::core::marker::Copy for KSCAMERA_PROFILE_MEDIAINFO_0 {} +impl ::core::clone::Clone for KSCAMERA_PROFILE_MEDIAINFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_PROFILE_MEDIAINFO_1 { + pub X: u32, + pub Y: u32, +} +impl ::core::marker::Copy for KSCAMERA_PROFILE_MEDIAINFO_1 {} +impl ::core::clone::Clone for KSCAMERA_PROFILE_MEDIAINFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_PROFILE_PININFO { + pub PinCategory: ::windows_sys::core::GUID, + pub Anonymous: KSCAMERA_PROFILE_PININFO_0, + pub MediaInfoCount: u32, + pub MediaInfos: *mut KSCAMERA_PROFILE_MEDIAINFO, +} +impl ::core::marker::Copy for KSCAMERA_PROFILE_PININFO {} +impl ::core::clone::Clone for KSCAMERA_PROFILE_PININFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KSCAMERA_PROFILE_PININFO_0 { + pub Anonymous: KSCAMERA_PROFILE_PININFO_0_0, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSCAMERA_PROFILE_PININFO_0 {} +impl ::core::clone::Clone for KSCAMERA_PROFILE_PININFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCAMERA_PROFILE_PININFO_0_0 { + pub PinIndex: u16, + pub ProfileSensorType: u16, +} +impl ::core::marker::Copy for KSCAMERA_PROFILE_PININFO_0_0 {} +impl ::core::clone::Clone for KSCAMERA_PROFILE_PININFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCLOCK_CREATE { + pub CreateFlags: u32, +} +impl ::core::marker::Copy for KSCLOCK_CREATE {} +impl ::core::clone::Clone for KSCLOCK_CREATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCOMPONENTID { + pub Manufacturer: ::windows_sys::core::GUID, + pub Product: ::windows_sys::core::GUID, + pub Component: ::windows_sys::core::GUID, + pub Name: ::windows_sys::core::GUID, + pub Version: u32, + pub Revision: u32, +} +impl ::core::marker::Copy for KSCOMPONENTID {} +impl ::core::clone::Clone for KSCOMPONENTID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSCORRELATED_TIME { + pub Time: i64, + pub SystemTime: i64, +} +impl ::core::marker::Copy for KSCORRELATED_TIME {} +impl ::core::clone::Clone for KSCORRELATED_TIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KSDATAFORMAT { + pub Anonymous: KSDATAFORMAT_0, + pub Alignment: i64, +} +impl ::core::marker::Copy for KSDATAFORMAT {} +impl ::core::clone::Clone for KSDATAFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDATAFORMAT_0 { + pub FormatSize: u32, + pub Flags: u32, + pub SampleSize: u32, + pub Reserved: u32, + pub MajorFormat: ::windows_sys::core::GUID, + pub SubFormat: ::windows_sys::core::GUID, + pub Specifier: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for KSDATAFORMAT_0 {} +impl ::core::clone::Clone for KSDATAFORMAT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDATARANGE_AUDIO { + pub DataRange: KSDATAFORMAT, + pub MaximumChannels: u32, + pub MinimumBitsPerSample: u32, + pub MaximumBitsPerSample: u32, + pub MinimumSampleFrequency: u32, + pub MaximumSampleFrequency: u32, +} +impl ::core::marker::Copy for KSDATARANGE_AUDIO {} +impl ::core::clone::Clone for KSDATARANGE_AUDIO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDATARANGE_MUSIC { + pub DataRange: KSDATAFORMAT, + pub Technology: ::windows_sys::core::GUID, + pub Channels: u32, + pub Notes: u32, + pub ChannelMask: u32, +} +impl ::core::marker::Copy for KSDATARANGE_MUSIC {} +impl ::core::clone::Clone for KSDATARANGE_MUSIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDEVICE_PROFILE_INFO { + pub Type: u32, + pub Size: u32, + pub Anonymous: KSDEVICE_PROFILE_INFO_0, +} +impl ::core::marker::Copy for KSDEVICE_PROFILE_INFO {} +impl ::core::clone::Clone for KSDEVICE_PROFILE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KSDEVICE_PROFILE_INFO_0 { + pub Camera: KSDEVICE_PROFILE_INFO_0_0, +} +impl ::core::marker::Copy for KSDEVICE_PROFILE_INFO_0 {} +impl ::core::clone::Clone for KSDEVICE_PROFILE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDEVICE_PROFILE_INFO_0_0 { + pub Info: KSCAMERA_PROFILE_INFO, + pub Reserved: u32, + pub ConcurrencyCount: u32, + pub Concurrency: *mut KSCAMERA_PROFILE_CONCURRENCYINFO, +} +impl ::core::marker::Copy for KSDEVICE_PROFILE_INFO_0_0 {} +impl ::core::clone::Clone for KSDEVICE_PROFILE_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDISPLAYCHANGE { + pub PelsWidth: u32, + pub PelsHeight: u32, + pub BitsPerPel: u32, + pub DeviceID: [u16; 1], +} +impl ::core::marker::Copy for KSDISPLAYCHANGE {} +impl ::core::clone::Clone for KSDISPLAYCHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDS3D_BUFFER_ALL { + pub Position: DS3DVECTOR, + pub Velocity: DS3DVECTOR, + pub InsideConeAngle: u32, + pub OutsideConeAngle: u32, + pub ConeOrientation: DS3DVECTOR, + pub ConeOutsideVolume: i32, + pub MinDistance: f32, + pub MaxDistance: f32, + pub Mode: u32, +} +impl ::core::marker::Copy for KSDS3D_BUFFER_ALL {} +impl ::core::clone::Clone for KSDS3D_BUFFER_ALL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDS3D_BUFFER_CONE_ANGLES { + pub InsideConeAngle: u32, + pub OutsideConeAngle: u32, +} +impl ::core::marker::Copy for KSDS3D_BUFFER_CONE_ANGLES {} +impl ::core::clone::Clone for KSDS3D_BUFFER_CONE_ANGLES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDS3D_HRTF_FILTER_FORMAT_MSG { + pub FilterMethod: KSDS3D_HRTF_FILTER_METHOD, + pub CoeffFormat: KSDS3D_HRTF_COEFF_FORMAT, + pub Version: KSDS3D_HRTF_FILTER_VERSION, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSDS3D_HRTF_FILTER_FORMAT_MSG {} +impl ::core::clone::Clone for KSDS3D_HRTF_FILTER_FORMAT_MSG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDS3D_HRTF_INIT_MSG { + pub Size: u32, + pub Quality: KSDS3D_HRTF_FILTER_QUALITY, + pub SampleRate: f32, + pub MaxFilterSize: u32, + pub FilterTransientMuteLength: u32, + pub FilterOverlapBufferLength: u32, + pub OutputOverlapBufferLength: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSDS3D_HRTF_INIT_MSG {} +impl ::core::clone::Clone for KSDS3D_HRTF_INIT_MSG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSDS3D_HRTF_PARAMS_MSG { + pub Size: u32, + pub Enabled: u32, + pub SwapChannels: super::super::Foundation::BOOL, + pub ZeroAzimuth: super::super::Foundation::BOOL, + pub CrossFadeOutput: super::super::Foundation::BOOL, + pub FilterSize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSDS3D_HRTF_PARAMS_MSG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSDS3D_HRTF_PARAMS_MSG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDS3D_ITD_PARAMS { + pub Channel: i32, + pub VolSmoothScale: f32, + pub TotalDryAttenuation: f32, + pub TotalWetAttenuation: f32, + pub SmoothFrequency: i32, + pub Delay: i32, +} +impl ::core::marker::Copy for KSDS3D_ITD_PARAMS {} +impl ::core::clone::Clone for KSDS3D_ITD_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDS3D_ITD_PARAMS_MSG { + pub Enabled: u32, + pub LeftParams: KSDS3D_ITD_PARAMS, + pub RightParams: KSDS3D_ITD_PARAMS, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSDS3D_ITD_PARAMS_MSG {} +impl ::core::clone::Clone for KSDS3D_ITD_PARAMS_MSG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDS3D_LISTENER_ALL { + pub Position: DS3DVECTOR, + pub Velocity: DS3DVECTOR, + pub OrientFront: DS3DVECTOR, + pub OrientTop: DS3DVECTOR, + pub DistanceFactor: f32, + pub RolloffFactor: f32, + pub DopplerFactor: f32, +} +impl ::core::marker::Copy for KSDS3D_LISTENER_ALL {} +impl ::core::clone::Clone for KSDS3D_LISTENER_ALL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSDS3D_LISTENER_ORIENTATION { + pub Front: DS3DVECTOR, + pub Top: DS3DVECTOR, +} +impl ::core::marker::Copy for KSDS3D_LISTENER_ORIENTATION {} +impl ::core::clone::Clone for KSDS3D_LISTENER_ORIENTATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSERROR { + pub Context: *mut ::core::ffi::c_void, + pub Status: u32, +} +impl ::core::marker::Copy for KSERROR {} +impl ::core::clone::Clone for KSERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSEVENTDATA { + pub NotificationType: u32, + pub Anonymous: KSEVENTDATA_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSEVENTDATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSEVENTDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union KSEVENTDATA_0 { + pub EventHandle: KSEVENTDATA_0_1, + pub SemaphoreHandle: KSEVENTDATA_0_2, + pub Alignment: KSEVENTDATA_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSEVENTDATA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSEVENTDATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSEVENTDATA_0_0 { + pub Unused: *mut ::core::ffi::c_void, + pub Alignment: [isize; 2], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSEVENTDATA_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSEVENTDATA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSEVENTDATA_0_1 { + pub Event: super::super::Foundation::HANDLE, + pub Reserved: [usize; 2], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSEVENTDATA_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSEVENTDATA_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSEVENTDATA_0_2 { + pub Semaphore: super::super::Foundation::HANDLE, + pub Reserved: u32, + pub Adjustment: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSEVENTDATA_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSEVENTDATA_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSEVENT_TIME_INTERVAL { + pub EventData: KSEVENTDATA, + pub TimeBase: i64, + pub Interval: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSEVENT_TIME_INTERVAL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSEVENT_TIME_INTERVAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSEVENT_TIME_MARK { + pub EventData: KSEVENTDATA, + pub MarkTime: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSEVENT_TIME_MARK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSEVENT_TIME_MARK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSEVENT_TUNER_INITIATE_SCAN_S { + pub EventData: KSEVENTDATA, + pub StartFrequency: u32, + pub EndFrequency: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSEVENT_TUNER_INITIATE_SCAN_S {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSEVENT_TUNER_INITIATE_SCAN_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSE_NODE { + pub Event: KSIDENTIFIER, + pub NodeId: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSE_NODE {} +impl ::core::clone::Clone for KSE_NODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSE_PIN { + pub Event: KSIDENTIFIER, + pub PinId: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSE_PIN {} +impl ::core::clone::Clone for KSE_PIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSFRAMETIME { + pub Duration: i64, + pub FrameFlags: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSFRAMETIME {} +impl ::core::clone::Clone for KSFRAMETIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSGOP_USERDATA { + pub sc: u32, + pub reserved1: u32, + pub cFields: u8, + pub l21Data: [u8; 3], +} +impl ::core::marker::Copy for KSGOP_USERDATA {} +impl ::core::clone::Clone for KSGOP_USERDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSIDENTIFIER { + pub Anonymous: KSIDENTIFIER_0, +} +impl ::core::marker::Copy for KSIDENTIFIER {} +impl ::core::clone::Clone for KSIDENTIFIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KSIDENTIFIER_0 { + pub Anonymous: KSIDENTIFIER_0_0, + pub Alignment: i64, +} +impl ::core::marker::Copy for KSIDENTIFIER_0 {} +impl ::core::clone::Clone for KSIDENTIFIER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSIDENTIFIER_0_0 { + pub Set: ::windows_sys::core::GUID, + pub Id: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for KSIDENTIFIER_0_0 {} +impl ::core::clone::Clone for KSIDENTIFIER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSINTERVAL { + pub TimeBase: i64, + pub Interval: i64, +} +impl ::core::marker::Copy for KSINTERVAL {} +impl ::core::clone::Clone for KSINTERVAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSJACK_DESCRIPTION { + pub ChannelMapping: u32, + pub Color: u32, + pub ConnectionType: EPcxConnectionType, + pub GeoLocation: EPcxGeoLocation, + pub GenLocation: EPcxGenLocation, + pub PortConnection: EPxcPortConnection, + pub IsConnected: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSJACK_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSJACK_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSJACK_DESCRIPTION2 { + pub DeviceStateInfo: u32, + pub JackCapabilities: u32, +} +impl ::core::marker::Copy for KSJACK_DESCRIPTION2 {} +impl ::core::clone::Clone for KSJACK_DESCRIPTION2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSJACK_DESCRIPTION3 { + pub ConfigId: u32, +} +impl ::core::marker::Copy for KSJACK_DESCRIPTION3 {} +impl ::core::clone::Clone for KSJACK_DESCRIPTION3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSJACK_SINK_INFORMATION { + pub ConnType: KSJACK_SINK_CONNECTIONTYPE, + pub ManufacturerId: u16, + pub ProductId: u16, + pub AudioLatency: u16, + pub HDCPCapable: super::super::Foundation::BOOL, + pub AICapable: super::super::Foundation::BOOL, + pub SinkDescriptionLength: u8, + pub SinkDescription: [u16; 32], + pub PortId: super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSJACK_SINK_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSJACK_SINK_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSMPEGVID_RECT { + pub StartX: u32, + pub StartY: u32, + pub EndX: u32, + pub EndY: u32, +} +impl ::core::marker::Copy for KSMPEGVID_RECT {} +impl ::core::clone::Clone for KSMPEGVID_RECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSMULTIPLE_DATA_PROP { + pub Property: KSIDENTIFIER, + pub MultipleItem: KSMULTIPLE_ITEM, +} +impl ::core::marker::Copy for KSMULTIPLE_DATA_PROP {} +impl ::core::clone::Clone for KSMULTIPLE_DATA_PROP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSMULTIPLE_ITEM { + pub Size: u32, + pub Count: u32, +} +impl ::core::marker::Copy for KSMULTIPLE_ITEM {} +impl ::core::clone::Clone for KSMULTIPLE_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSMUSICFORMAT { + pub TimeDeltaMs: u32, + pub ByteCount: u32, +} +impl ::core::marker::Copy for KSMUSICFORMAT {} +impl ::core::clone::Clone for KSMUSICFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSM_NODE { + pub Method: KSIDENTIFIER, + pub NodeId: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSM_NODE {} +impl ::core::clone::Clone for KSM_NODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSNODEPROPERTY { + pub Property: KSIDENTIFIER, + pub NodeId: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSNODEPROPERTY {} +impl ::core::clone::Clone for KSNODEPROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct KSNODEPROPERTY_AUDIO_3D_LISTENER { + pub NodeProperty: KSNODEPROPERTY, + pub ListenerId: *mut ::core::ffi::c_void, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for KSNODEPROPERTY_AUDIO_3D_LISTENER {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for KSNODEPROPERTY_AUDIO_3D_LISTENER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct KSNODEPROPERTY_AUDIO_3D_LISTENER { + pub NodeProperty: KSNODEPROPERTY, + pub ListenerId: *mut ::core::ffi::c_void, + pub Reserved: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for KSNODEPROPERTY_AUDIO_3D_LISTENER {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for KSNODEPROPERTY_AUDIO_3D_LISTENER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSNODEPROPERTY_AUDIO_CHANNEL { + pub NodeProperty: KSNODEPROPERTY, + pub Channel: i32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSNODEPROPERTY_AUDIO_CHANNEL {} +impl ::core::clone::Clone for KSNODEPROPERTY_AUDIO_CHANNEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSNODEPROPERTY_AUDIO_DEV_SPECIFIC { + pub NodeProperty: KSNODEPROPERTY, + pub DevSpecificId: u32, + pub DeviceInfo: u32, + pub Length: u32, +} +impl ::core::marker::Copy for KSNODEPROPERTY_AUDIO_DEV_SPECIFIC {} +impl ::core::clone::Clone for KSNODEPROPERTY_AUDIO_DEV_SPECIFIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct KSNODEPROPERTY_AUDIO_PROPERTY { + pub NodeProperty: KSNODEPROPERTY, + pub AppContext: *mut ::core::ffi::c_void, + pub Length: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for KSNODEPROPERTY_AUDIO_PROPERTY {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for KSNODEPROPERTY_AUDIO_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct KSNODEPROPERTY_AUDIO_PROPERTY { + pub NodeProperty: KSNODEPROPERTY, + pub AppContext: *mut ::core::ffi::c_void, + pub Length: u32, + pub Reserved: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for KSNODEPROPERTY_AUDIO_PROPERTY {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for KSNODEPROPERTY_AUDIO_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSNODE_CREATE { + pub CreateFlags: u32, + pub Node: u32, +} +impl ::core::marker::Copy for KSNODE_CREATE {} +impl ::core::clone::Clone for KSNODE_CREATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPIN_CINSTANCES { + pub PossibleCount: u32, + pub CurrentCount: u32, +} +impl ::core::marker::Copy for KSPIN_CINSTANCES {} +impl ::core::clone::Clone for KSPIN_CINSTANCES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPIN_CONNECT { + pub Interface: KSIDENTIFIER, + pub Medium: KSIDENTIFIER, + pub PinId: u32, + pub PinToHandle: super::super::Foundation::HANDLE, + pub Priority: KSPRIORITY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPIN_CONNECT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPIN_CONNECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPIN_MDL_CACHING_NOTIFICATION { + pub Event: KSPIN_MDL_CACHING_EVENT, + pub Buffer: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for KSPIN_MDL_CACHING_NOTIFICATION {} +impl ::core::clone::Clone for KSPIN_MDL_CACHING_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPIN_MDL_CACHING_NOTIFICATION32 { + pub Event: KSPIN_MDL_CACHING_EVENT, + pub Buffer: u32, +} +impl ::core::marker::Copy for KSPIN_MDL_CACHING_NOTIFICATION32 {} +impl ::core::clone::Clone for KSPIN_MDL_CACHING_NOTIFICATION32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPIN_PHYSICALCONNECTION { + pub Size: u32, + pub Pin: u32, + pub SymbolicLinkName: [u16; 1], +} +impl ::core::marker::Copy for KSPIN_PHYSICALCONNECTION {} +impl ::core::clone::Clone for KSPIN_PHYSICALCONNECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPRIORITY { + pub PriorityClass: u32, + pub PrioritySubClass: u32, +} +impl ::core::marker::Copy for KSPRIORITY {} +impl ::core::clone::Clone for KSPRIORITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S { + pub InterleavedCapSupported: u32, +} +impl ::core::marker::Copy for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S {} +impl ::core::clone::Clone for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S { + pub InterleavedCapPossible: u32, +} +impl ::core::marker::Copy for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S {} +impl ::core::clone::Clone for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S { + pub CX: u32, + pub CY: u32, +} +impl ::core::marker::Copy for KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S {} +impl ::core::clone::Clone for KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KSPROPERTY_BOUNDS_LONG { + pub Anonymous1: KSPROPERTY_BOUNDS_LONG_0, + pub Anonymous2: KSPROPERTY_BOUNDS_LONG_1, +} +impl ::core::marker::Copy for KSPROPERTY_BOUNDS_LONG {} +impl ::core::clone::Clone for KSPROPERTY_BOUNDS_LONG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_BOUNDS_LONG_0 { + pub SignedMinimum: i32, + pub SignedMaximum: i32, +} +impl ::core::marker::Copy for KSPROPERTY_BOUNDS_LONG_0 {} +impl ::core::clone::Clone for KSPROPERTY_BOUNDS_LONG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_BOUNDS_LONG_1 { + pub UnsignedMinimum: u32, + pub UnsignedMaximum: u32, +} +impl ::core::marker::Copy for KSPROPERTY_BOUNDS_LONG_1 {} +impl ::core::clone::Clone for KSPROPERTY_BOUNDS_LONG_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KSPROPERTY_BOUNDS_LONGLONG { + pub Anonymous1: KSPROPERTY_BOUNDS_LONGLONG_0, + pub Anonymous2: KSPROPERTY_BOUNDS_LONGLONG_1, +} +impl ::core::marker::Copy for KSPROPERTY_BOUNDS_LONGLONG {} +impl ::core::clone::Clone for KSPROPERTY_BOUNDS_LONGLONG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_BOUNDS_LONGLONG_0 { + pub SignedMinimum: i64, + pub SignedMaximum: i64, +} +impl ::core::marker::Copy for KSPROPERTY_BOUNDS_LONGLONG_0 {} +impl ::core::clone::Clone for KSPROPERTY_BOUNDS_LONGLONG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_BOUNDS_LONGLONG_1 { + pub UnsignedMinimum: u64, + pub UnsignedMaximum: u64, +} +impl ::core::marker::Copy for KSPROPERTY_BOUNDS_LONGLONG_1 {} +impl ::core::clone::Clone for KSPROPERTY_BOUNDS_LONGLONG_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_CAMERACONTROL_FLASH_S { + pub Flash: u32, + pub Capabilities: u32, +} +impl ::core::marker::Copy for KSPROPERTY_CAMERACONTROL_FLASH_S {} +impl ::core::clone::Clone for KSPROPERTY_CAMERACONTROL_FLASH_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S { + pub Property: KSIDENTIFIER, + pub lOcularFocalLength: i32, + pub lObjectiveFocalLengthMin: i32, + pub lObjectiveFocalLengthMax: i32, +} +impl ::core::marker::Copy for KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S {} +impl ::core::clone::Clone for KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_S { + pub Capabilities: u32, + pub Reserved0: u32, +} +impl ::core::marker::Copy for KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_S {} +impl ::core::clone::Clone for KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S { + pub NodeProperty: KSNODEPROPERTY, + pub lOcularFocalLength: i32, + pub lObjectiveFocalLengthMin: i32, + pub lObjectiveFocalLengthMax: i32, +} +impl ::core::marker::Copy for KSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S {} +impl ::core::clone::Clone for KSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_CAMERACONTROL_NODE_S { + pub NodeProperty: KSP_NODE, + pub Value: i32, + pub Flags: u32, + pub Capabilities: u32, +} +impl ::core::marker::Copy for KSPROPERTY_CAMERACONTROL_NODE_S {} +impl ::core::clone::Clone for KSPROPERTY_CAMERACONTROL_NODE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_CAMERACONTROL_NODE_S2 { + pub NodeProperty: KSP_NODE, + pub Value1: i32, + pub Flags: u32, + pub Capabilities: u32, + pub Value2: i32, +} +impl ::core::marker::Copy for KSPROPERTY_CAMERACONTROL_NODE_S2 {} +impl ::core::clone::Clone for KSPROPERTY_CAMERACONTROL_NODE_S2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S { + pub FocusRect: super::super::Foundation::RECT, + pub AutoFocusLock: super::super::Foundation::BOOL, + pub AutoExposureLock: super::super::Foundation::BOOL, + pub AutoWhitebalanceLock: super::super::Foundation::BOOL, + pub Anonymous: KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S_0 { + pub Capabilities: u32, + pub Configuration: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_CAMERACONTROL_S { + pub Property: KSIDENTIFIER, + pub Value: i32, + pub Flags: u32, + pub Capabilities: u32, +} +impl ::core::marker::Copy for KSPROPERTY_CAMERACONTROL_S {} +impl ::core::clone::Clone for KSPROPERTY_CAMERACONTROL_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_CAMERACONTROL_S2 { + pub Property: KSIDENTIFIER, + pub Value1: i32, + pub Flags: u32, + pub Capabilities: u32, + pub Value2: i32, +} +impl ::core::marker::Copy for KSPROPERTY_CAMERACONTROL_S2 {} +impl ::core::clone::Clone for KSPROPERTY_CAMERACONTROL_S2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPROPERTY_CAMERACONTROL_S_EX { + pub Property: KSIDENTIFIER, + pub Value: i32, + pub Flags: u32, + pub Capabilities: u32, + pub FocusRect: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_CAMERACONTROL_S_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_CAMERACONTROL_S_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_S { + pub VideoStabilizationMode: u32, + pub Capabilities: u32, +} +impl ::core::marker::Copy for KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_S {} +impl ::core::clone::Clone for KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_CROSSBAR_ACTIVE_S { + pub Property: KSIDENTIFIER, + pub IndexInputPin: u32, + pub Active: u32, +} +impl ::core::marker::Copy for KSPROPERTY_CROSSBAR_ACTIVE_S {} +impl ::core::clone::Clone for KSPROPERTY_CROSSBAR_ACTIVE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_CROSSBAR_CAPS_S { + pub Property: KSIDENTIFIER, + pub NumberOfInputs: u32, + pub NumberOfOutputs: u32, +} +impl ::core::marker::Copy for KSPROPERTY_CROSSBAR_CAPS_S {} +impl ::core::clone::Clone for KSPROPERTY_CROSSBAR_CAPS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_CROSSBAR_PININFO_S { + pub Property: KSIDENTIFIER, + pub Direction: KSPIN_DATAFLOW, + pub Index: u32, + pub PinType: u32, + pub RelatedPinIndex: u32, + pub Medium: KSIDENTIFIER, +} +impl ::core::marker::Copy for KSPROPERTY_CROSSBAR_PININFO_S {} +impl ::core::clone::Clone for KSPROPERTY_CROSSBAR_PININFO_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_CROSSBAR_ROUTE_S { + pub Property: KSIDENTIFIER, + pub IndexInputPin: u32, + pub IndexOutputPin: u32, + pub CanRoute: u32, +} +impl ::core::marker::Copy for KSPROPERTY_CROSSBAR_ROUTE_S {} +impl ::core::clone::Clone for KSPROPERTY_CROSSBAR_ROUTE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_DESCRIPTION { + pub AccessFlags: u32, + pub DescriptionSize: u32, + pub PropTypeSet: KSIDENTIFIER, + pub MembersListCount: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSPROPERTY_DESCRIPTION {} +impl ::core::clone::Clone for KSPROPERTY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_DROPPEDFRAMES_CURRENT_S { + pub Property: KSIDENTIFIER, + pub PictureNumber: i64, + pub DropCount: i64, + pub AverageFrameSize: u32, +} +impl ::core::marker::Copy for KSPROPERTY_DROPPEDFRAMES_CURRENT_S {} +impl ::core::clone::Clone for KSPROPERTY_DROPPEDFRAMES_CURRENT_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_EXTDEVICE_S { + pub Property: KSIDENTIFIER, + pub u: KSPROPERTY_EXTDEVICE_S_0, +} +impl ::core::marker::Copy for KSPROPERTY_EXTDEVICE_S {} +impl ::core::clone::Clone for KSPROPERTY_EXTDEVICE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KSPROPERTY_EXTDEVICE_S_0 { + pub Capabilities: DEVCAPS, + pub DevPort: u32, + pub PowerState: u32, + pub pawchString: [u16; 260], + pub NodeUniqueID: [u32; 2], +} +impl ::core::marker::Copy for KSPROPERTY_EXTDEVICE_S_0 {} +impl ::core::clone::Clone for KSPROPERTY_EXTDEVICE_S_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPROPERTY_EXTXPORT_NODE_S { + pub NodeProperty: KSP_NODE, + pub u: KSPROPERTY_EXTXPORT_NODE_S_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_EXTXPORT_NODE_S {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_EXTXPORT_NODE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union KSPROPERTY_EXTXPORT_NODE_S_0 { + pub Capabilities: u32, + pub SignalMode: u32, + pub LoadMedium: u32, + pub MediumInfo: MEDIUM_INFO, + pub XPrtState: TRANSPORT_STATE, + pub Timecode: KSPROPERTY_EXTXPORT_NODE_S_0_1, + pub dwTimecode: u32, + pub dwAbsTrackNumber: u32, + pub RawAVC: KSPROPERTY_EXTXPORT_NODE_S_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_EXTXPORT_NODE_S_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_EXTXPORT_NODE_S_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPROPERTY_EXTXPORT_NODE_S_0_0 { + pub PayloadSize: u32, + pub Payload: [u8; 512], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_EXTXPORT_NODE_S_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_EXTXPORT_NODE_S_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPROPERTY_EXTXPORT_NODE_S_0_1 { + pub frame: u8, + pub second: u8, + pub minute: u8, + pub hour: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_EXTXPORT_NODE_S_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_EXTXPORT_NODE_S_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPROPERTY_EXTXPORT_S { + pub Property: KSIDENTIFIER, + pub u: KSPROPERTY_EXTXPORT_S_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_EXTXPORT_S {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_EXTXPORT_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union KSPROPERTY_EXTXPORT_S_0 { + pub Capabilities: u32, + pub SignalMode: u32, + pub LoadMedium: u32, + pub MediumInfo: MEDIUM_INFO, + pub XPrtState: TRANSPORT_STATE, + pub Timecode: KSPROPERTY_EXTXPORT_S_0_1, + pub dwTimecode: u32, + pub dwAbsTrackNumber: u32, + pub RawAVC: KSPROPERTY_EXTXPORT_S_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_EXTXPORT_S_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_EXTXPORT_S_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPROPERTY_EXTXPORT_S_0_0 { + pub PayloadSize: u32, + pub Payload: [u8; 512], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_EXTXPORT_S_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_EXTXPORT_S_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPROPERTY_EXTXPORT_S_0_1 { + pub frame: u8, + pub second: u8, + pub minute: u8, + pub hour: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_EXTXPORT_S_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_EXTXPORT_S_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_MEDIAAVAILABLE { + pub Earliest: i64, + pub Latest: i64, +} +impl ::core::marker::Copy for KSPROPERTY_MEDIAAVAILABLE {} +impl ::core::clone::Clone for KSPROPERTY_MEDIAAVAILABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_MEMBERSHEADER { + pub MembersFlags: u32, + pub MembersSize: u32, + pub MembersCount: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for KSPROPERTY_MEMBERSHEADER {} +impl ::core::clone::Clone for KSPROPERTY_MEMBERSHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_NETWORKCAMERACONTROL_EVENT_INFO { + pub Header: KSCAMERA_METADATA_ITEMHEADER, + pub EventFilter: [u16; 1], +} +impl ::core::marker::Copy for KSPROPERTY_NETWORKCAMERACONTROL_EVENT_INFO {} +impl ::core::clone::Clone for KSPROPERTY_NETWORKCAMERACONTROL_EVENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPROPERTY_NETWORKCAMERACONTROL_METADATA_INFO { + pub MetadataItems: u32, + pub Size: u32, + pub PTZStatus: super::super::Foundation::BOOL, + pub Events: super::super::Foundation::BOOL, + pub Analytics: super::super::Foundation::BOOL, + pub Reserved: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_NETWORKCAMERACONTROL_METADATA_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_NETWORKCAMERACONTROL_METADATA_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_HEADER { + pub Size: u32, + pub Type: KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE, +} +impl ::core::marker::Copy for KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_HEADER {} +impl ::core::clone::Clone for KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_POSITIONS { + pub Current: i64, + pub Stop: i64, + pub CurrentFlags: KS_SEEKING_FLAGS, + pub StopFlags: KS_SEEKING_FLAGS, +} +impl ::core::marker::Copy for KSPROPERTY_POSITIONS {} +impl ::core::clone::Clone for KSPROPERTY_POSITIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_SELECTOR_NODE_S { + pub NodeProperty: KSP_NODE, + pub Value: i32, + pub Flags: u32, + pub Capabilities: u32, +} +impl ::core::marker::Copy for KSPROPERTY_SELECTOR_NODE_S {} +impl ::core::clone::Clone for KSPROPERTY_SELECTOR_NODE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_SELECTOR_S { + pub Property: KSIDENTIFIER, + pub Value: i32, + pub Flags: u32, + pub Capabilities: u32, +} +impl ::core::marker::Copy for KSPROPERTY_SELECTOR_S {} +impl ::core::clone::Clone for KSPROPERTY_SELECTOR_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_SERIAL { + pub PropTypeSet: KSIDENTIFIER, + pub Id: u32, + pub PropertyLength: u32, +} +impl ::core::marker::Copy for KSPROPERTY_SERIAL {} +impl ::core::clone::Clone for KSPROPERTY_SERIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct KSPROPERTY_SERIALHDR { + pub PropertySet: ::windows_sys::core::GUID, + pub Count: u32, +} +impl ::core::marker::Copy for KSPROPERTY_SERIALHDR {} +impl ::core::clone::Clone for KSPROPERTY_SERIALHDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_SPHLI { + pub HLISS: u16, + pub Reserved: u16, + pub StartPTM: u32, + pub EndPTM: u32, + pub StartX: u16, + pub StartY: u16, + pub StopX: u16, + pub StopY: u16, + pub ColCon: KS_COLCON, +} +impl ::core::marker::Copy for KSPROPERTY_SPHLI {} +impl ::core::clone::Clone for KSPROPERTY_SPHLI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_SPPAL { + pub sppal: [KS_DVD_YUV; 16], +} +impl ::core::marker::Copy for KSPROPERTY_SPPAL {} +impl ::core::clone::Clone for KSPROPERTY_SPPAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_STEPPING_LONG { + pub SteppingDelta: u32, + pub Reserved: u32, + pub Bounds: KSPROPERTY_BOUNDS_LONG, +} +impl ::core::marker::Copy for KSPROPERTY_STEPPING_LONG {} +impl ::core::clone::Clone for KSPROPERTY_STEPPING_LONG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_STEPPING_LONGLONG { + pub SteppingDelta: u64, + pub Bounds: KSPROPERTY_BOUNDS_LONGLONG, +} +impl ::core::marker::Copy for KSPROPERTY_STEPPING_LONGLONG {} +impl ::core::clone::Clone for KSPROPERTY_STEPPING_LONGLONG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TIMECODE_NODE_S { + pub NodeProperty: KSP_NODE, + pub TimecodeSamp: super::TIMECODE_SAMPLE, +} +impl ::core::marker::Copy for KSPROPERTY_TIMECODE_NODE_S {} +impl ::core::clone::Clone for KSPROPERTY_TIMECODE_NODE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TIMECODE_S { + pub Property: KSIDENTIFIER, + pub TimecodeSamp: super::TIMECODE_SAMPLE, +} +impl ::core::marker::Copy for KSPROPERTY_TIMECODE_S {} +impl ::core::clone::Clone for KSPROPERTY_TIMECODE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TUNER_CAPS_S { + pub Property: KSIDENTIFIER, + pub ModesSupported: u32, + pub VideoMedium: KSIDENTIFIER, + pub TVAudioMedium: KSIDENTIFIER, + pub RadioAudioMedium: KSIDENTIFIER, +} +impl ::core::marker::Copy for KSPROPERTY_TUNER_CAPS_S {} +impl ::core::clone::Clone for KSPROPERTY_TUNER_CAPS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TUNER_FREQUENCY_S { + pub Property: KSIDENTIFIER, + pub Frequency: u32, + pub LastFrequency: u32, + pub TuningFlags: u32, + pub VideoSubChannel: u32, + pub AudioSubChannel: u32, + pub Channel: u32, + pub Country: u32, +} +impl ::core::marker::Copy for KSPROPERTY_TUNER_FREQUENCY_S {} +impl ::core::clone::Clone for KSPROPERTY_TUNER_FREQUENCY_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TUNER_IF_MEDIUM_S { + pub Property: KSIDENTIFIER, + pub IFMedium: KSIDENTIFIER, +} +impl ::core::marker::Copy for KSPROPERTY_TUNER_IF_MEDIUM_S {} +impl ::core::clone::Clone for KSPROPERTY_TUNER_IF_MEDIUM_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TUNER_INPUT_S { + pub Property: KSIDENTIFIER, + pub InputIndex: u32, +} +impl ::core::marker::Copy for KSPROPERTY_TUNER_INPUT_S {} +impl ::core::clone::Clone for KSPROPERTY_TUNER_INPUT_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TUNER_MODE_CAPS_S { + pub Property: KSIDENTIFIER, + pub Mode: u32, + pub StandardsSupported: u32, + pub MinFrequency: u32, + pub MaxFrequency: u32, + pub TuningGranularity: u32, + pub NumberOfInputs: u32, + pub SettlingTime: u32, + pub Strategy: u32, +} +impl ::core::marker::Copy for KSPROPERTY_TUNER_MODE_CAPS_S {} +impl ::core::clone::Clone for KSPROPERTY_TUNER_MODE_CAPS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TUNER_MODE_S { + pub Property: KSIDENTIFIER, + pub Mode: u32, +} +impl ::core::marker::Copy for KSPROPERTY_TUNER_MODE_S {} +impl ::core::clone::Clone for KSPROPERTY_TUNER_MODE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TUNER_NETWORKTYPE_SCAN_CAPS_S { + pub Property: KSIDENTIFIER, + pub NetworkType: ::windows_sys::core::GUID, + pub BufferSize: u32, + pub NetworkTunerCapabilities: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for KSPROPERTY_TUNER_NETWORKTYPE_SCAN_CAPS_S {} +impl ::core::clone::Clone for KSPROPERTY_TUNER_NETWORKTYPE_SCAN_CAPS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPROPERTY_TUNER_SCAN_CAPS_S { + pub Property: KSIDENTIFIER, + pub fSupportsHardwareAssistedScanning: super::super::Foundation::BOOL, + pub SupportedBroadcastStandards: u32, + pub GUIDBucket: *mut ::core::ffi::c_void, + pub lengthofBucket: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_TUNER_SCAN_CAPS_S {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_TUNER_SCAN_CAPS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TUNER_SCAN_STATUS_S { + pub Property: KSIDENTIFIER, + pub LockStatus: TunerLockType, + pub CurrentFrequency: u32, +} +impl ::core::marker::Copy for KSPROPERTY_TUNER_SCAN_STATUS_S {} +impl ::core::clone::Clone for KSPROPERTY_TUNER_SCAN_STATUS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPROPERTY_TUNER_STANDARD_MODE_S { + pub Property: KSIDENTIFIER, + pub AutoDetect: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_TUNER_STANDARD_MODE_S {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_TUNER_STANDARD_MODE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TUNER_STANDARD_S { + pub Property: KSIDENTIFIER, + pub Standard: u32, +} +impl ::core::marker::Copy for KSPROPERTY_TUNER_STANDARD_S {} +impl ::core::clone::Clone for KSPROPERTY_TUNER_STANDARD_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TUNER_STATUS_S { + pub Property: KSIDENTIFIER, + pub CurrentFrequency: u32, + pub PLLOffset: u32, + pub SignalStrength: u32, + pub Busy: u32, +} +impl ::core::marker::Copy for KSPROPERTY_TUNER_STATUS_S {} +impl ::core::clone::Clone for KSPROPERTY_TUNER_STATUS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TVAUDIO_CAPS_S { + pub Property: KSIDENTIFIER, + pub Capabilities: u32, + pub InputMedium: KSIDENTIFIER, + pub OutputMedium: KSIDENTIFIER, +} +impl ::core::marker::Copy for KSPROPERTY_TVAUDIO_CAPS_S {} +impl ::core::clone::Clone for KSPROPERTY_TVAUDIO_CAPS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_TVAUDIO_S { + pub Property: KSIDENTIFIER, + pub Mode: u32, +} +impl ::core::marker::Copy for KSPROPERTY_TVAUDIO_S {} +impl ::core::clone::Clone for KSPROPERTY_TVAUDIO_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S { + pub Property: KSIDENTIFIER, + pub Substreams: VBICODECFILTERING_CC_SUBSTREAMS, +} +impl ::core::marker::Copy for KSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S {} +impl ::core::clone::Clone for KSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S { + pub Property: KSIDENTIFIER, + pub Substreams: VBICODECFILTERING_NABTS_SUBSTREAMS, +} +impl ::core::marker::Copy for KSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S {} +impl ::core::clone::Clone for KSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VBICODECFILTERING_SCANLINES_S { + pub Property: KSIDENTIFIER, + pub Scanlines: VBICODECFILTERING_SCANLINES, +} +impl ::core::marker::Copy for KSPROPERTY_VBICODECFILTERING_SCANLINES_S {} +impl ::core::clone::Clone for KSPROPERTY_VBICODECFILTERING_SCANLINES_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S { + pub Property: KSIDENTIFIER, + pub Statistics: VBICODECFILTERING_STATISTICS_CC_PIN, +} +impl ::core::marker::Copy for KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S {} +impl ::core::clone::Clone for KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S { + pub Property: KSIDENTIFIER, + pub Statistics: VBICODECFILTERING_STATISTICS_CC, +} +impl ::core::marker::Copy for KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S {} +impl ::core::clone::Clone for KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S { + pub Property: KSIDENTIFIER, + pub Statistics: VBICODECFILTERING_STATISTICS_COMMON_PIN, +} +impl ::core::marker::Copy for KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S {} +impl ::core::clone::Clone for KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S { + pub Property: KSIDENTIFIER, + pub Statistics: VBICODECFILTERING_STATISTICS_COMMON, +} +impl ::core::marker::Copy for KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S {} +impl ::core::clone::Clone for KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S { + pub Property: KSIDENTIFIER, + pub Statistics: VBICODECFILTERING_STATISTICS_NABTS_PIN, +} +impl ::core::marker::Copy for KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S {} +impl ::core::clone::Clone for KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S { + pub Property: KSIDENTIFIER, + pub Statistics: VBICODECFILTERING_STATISTICS_NABTS, +} +impl ::core::marker::Copy for KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S {} +impl ::core::clone::Clone for KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEOCOMPRESSION_GETINFO_S { + pub Property: KSIDENTIFIER, + pub StreamIndex: u32, + pub DefaultKeyFrameRate: i32, + pub DefaultPFrameRate: i32, + pub DefaultQuality: i32, + pub NumberOfQualitySettings: i32, + pub Capabilities: i32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEOCOMPRESSION_GETINFO_S {} +impl ::core::clone::Clone for KSPROPERTY_VIDEOCOMPRESSION_GETINFO_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEOCOMPRESSION_S { + pub Property: KSIDENTIFIER, + pub StreamIndex: u32, + pub Value: i32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEOCOMPRESSION_S {} +impl ::core::clone::Clone for KSPROPERTY_VIDEOCOMPRESSION_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEOCOMPRESSION_S1 { + pub Property: KSIDENTIFIER, + pub StreamIndex: u32, + pub Value: i32, + pub Flags: u32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEOCOMPRESSION_S1 {} +impl ::core::clone::Clone for KSPROPERTY_VIDEOCOMPRESSION_S1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S { + pub Property: KSIDENTIFIER, + pub StreamIndex: u32, + pub RangeIndex: u32, + pub Dimensions: super::super::Foundation::SIZE, + pub CurrentActualFrameRate: i64, + pub CurrentMaxAvailableFrameRate: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEOCONTROL_CAPS_S { + pub Property: KSIDENTIFIER, + pub StreamIndex: u32, + pub VideoControlCaps: u32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEOCONTROL_CAPS_S {} +impl ::core::clone::Clone for KSPROPERTY_VIDEOCONTROL_CAPS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSPROPERTY_VIDEOCONTROL_FRAME_RATES_S { + pub Property: KSIDENTIFIER, + pub StreamIndex: u32, + pub RangeIndex: u32, + pub Dimensions: super::super::Foundation::SIZE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSPROPERTY_VIDEOCONTROL_FRAME_RATES_S {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSPROPERTY_VIDEOCONTROL_FRAME_RATES_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEOCONTROL_MODE_S { + pub Property: KSIDENTIFIER, + pub StreamIndex: u32, + pub Mode: i32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEOCONTROL_MODE_S {} +impl ::core::clone::Clone for KSPROPERTY_VIDEOCONTROL_MODE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEODECODER_CAPS_S { + pub Property: KSIDENTIFIER, + pub StandardsSupported: u32, + pub Capabilities: u32, + pub SettlingTime: u32, + pub HSyncPerVSync: u32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEODECODER_CAPS_S {} +impl ::core::clone::Clone for KSPROPERTY_VIDEODECODER_CAPS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEODECODER_S { + pub Property: KSIDENTIFIER, + pub Value: u32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEODECODER_S {} +impl ::core::clone::Clone for KSPROPERTY_VIDEODECODER_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEODECODER_STATUS2_S { + pub Property: KSIDENTIFIER, + pub NumberOfLines: u32, + pub SignalLocked: u32, + pub ChromaLock: u32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEODECODER_STATUS2_S {} +impl ::core::clone::Clone for KSPROPERTY_VIDEODECODER_STATUS2_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEODECODER_STATUS_S { + pub Property: KSIDENTIFIER, + pub NumberOfLines: u32, + pub SignalLocked: u32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEODECODER_STATUS_S {} +impl ::core::clone::Clone for KSPROPERTY_VIDEODECODER_STATUS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEOENCODER_S { + pub Property: KSIDENTIFIER, + pub Value: i32, + pub Flags: u32, + pub Capabilities: u32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEOENCODER_S {} +impl ::core::clone::Clone for KSPROPERTY_VIDEOENCODER_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEOPROCAMP_NODE_S { + pub NodeProperty: KSP_NODE, + pub Value: i32, + pub Flags: u32, + pub Capabilities: u32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEOPROCAMP_NODE_S {} +impl ::core::clone::Clone for KSPROPERTY_VIDEOPROCAMP_NODE_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEOPROCAMP_NODE_S2 { + pub NodeProperty: KSP_NODE, + pub Value1: i32, + pub Flags: u32, + pub Capabilities: u32, + pub Value2: i32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEOPROCAMP_NODE_S2 {} +impl ::core::clone::Clone for KSPROPERTY_VIDEOPROCAMP_NODE_S2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEOPROCAMP_S { + pub Property: KSIDENTIFIER, + pub Value: i32, + pub Flags: u32, + pub Capabilities: u32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEOPROCAMP_S {} +impl ::core::clone::Clone for KSPROPERTY_VIDEOPROCAMP_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSPROPERTY_VIDEOPROCAMP_S2 { + pub Property: KSIDENTIFIER, + pub Value1: i32, + pub Flags: u32, + pub Capabilities: u32, + pub Value2: i32, +} +impl ::core::marker::Copy for KSPROPERTY_VIDEOPROCAMP_S2 {} +impl ::core::clone::Clone for KSPROPERTY_VIDEOPROCAMP_S2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSP_NODE { + pub Property: KSIDENTIFIER, + pub NodeId: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSP_NODE {} +impl ::core::clone::Clone for KSP_NODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSP_PIN { + pub Property: KSIDENTIFIER, + pub PinId: u32, + pub Anonymous: KSP_PIN_0, +} +impl ::core::marker::Copy for KSP_PIN {} +impl ::core::clone::Clone for KSP_PIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KSP_PIN_0 { + pub Reserved: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for KSP_PIN_0 {} +impl ::core::clone::Clone for KSP_PIN_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSP_TIMEFORMAT { + pub Property: KSIDENTIFIER, + pub SourceFormat: ::windows_sys::core::GUID, + pub TargetFormat: ::windows_sys::core::GUID, + pub Time: i64, +} +impl ::core::marker::Copy for KSP_TIMEFORMAT {} +impl ::core::clone::Clone for KSP_TIMEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSQUALITY { + pub Context: *mut ::core::ffi::c_void, + pub Proportion: u32, + pub DeltaTime: i64, +} +impl ::core::marker::Copy for KSQUALITY {} +impl ::core::clone::Clone for KSQUALITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSQUALITY_MANAGER { + pub QualityManager: super::super::Foundation::HANDLE, + pub Context: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSQUALITY_MANAGER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSQUALITY_MANAGER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSQUERYBUFFER { + pub Event: KSIDENTIFIER, + pub EventData: *mut KSEVENTDATA, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSQUERYBUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSQUERYBUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRATE { + pub PresentationStart: i64, + pub Duration: i64, + pub Interface: KSIDENTIFIER, + pub Rate: i32, + pub Flags: u32, +} +impl ::core::marker::Copy for KSRATE {} +impl ::core::clone::Clone for KSRATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRATE_CAPABILITY { + pub Property: KSIDENTIFIER, + pub Rate: KSRATE, +} +impl ::core::marker::Copy for KSRATE_CAPABILITY {} +impl ::core::clone::Clone for KSRATE_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSRELATIVEEVENT { + pub Size: u32, + pub Flags: u32, + pub Anonymous: KSRELATIVEEVENT_0, + pub Reserved: *mut ::core::ffi::c_void, + pub Event: KSIDENTIFIER, + pub EventData: KSEVENTDATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSRELATIVEEVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSRELATIVEEVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union KSRELATIVEEVENT_0 { + pub ObjectHandle: super::super::Foundation::HANDLE, + pub ObjectPointer: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSRELATIVEEVENT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSRELATIVEEVENT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRESOLUTION { + pub Granularity: i64, + pub Error: i64, +} +impl ::core::marker::Copy for KSRESOLUTION {} +impl ::core::clone::Clone for KSRESOLUTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSRTAUDIO_BUFFER { + pub BufferAddress: *mut ::core::ffi::c_void, + pub ActualBufferSize: u32, + pub CallMemoryBarrier: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSRTAUDIO_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSRTAUDIO_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSRTAUDIO_BUFFER32 { + pub BufferAddress: u32, + pub ActualBufferSize: u32, + pub CallMemoryBarrier: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSRTAUDIO_BUFFER32 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSRTAUDIO_BUFFER32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRTAUDIO_BUFFER_PROPERTY { + pub Property: KSIDENTIFIER, + pub BaseAddress: *mut ::core::ffi::c_void, + pub RequestedBufferSize: u32, +} +impl ::core::marker::Copy for KSRTAUDIO_BUFFER_PROPERTY {} +impl ::core::clone::Clone for KSRTAUDIO_BUFFER_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRTAUDIO_BUFFER_PROPERTY32 { + pub Property: KSIDENTIFIER, + pub BaseAddress: u32, + pub RequestedBufferSize: u32, +} +impl ::core::marker::Copy for KSRTAUDIO_BUFFER_PROPERTY32 {} +impl ::core::clone::Clone for KSRTAUDIO_BUFFER_PROPERTY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION { + pub Property: KSIDENTIFIER, + pub BaseAddress: *mut ::core::ffi::c_void, + pub RequestedBufferSize: u32, + pub NotificationCount: u32, +} +impl ::core::marker::Copy for KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION {} +impl ::core::clone::Clone for KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION32 { + pub Property: KSIDENTIFIER, + pub BaseAddress: u32, + pub RequestedBufferSize: u32, + pub NotificationCount: u32, +} +impl ::core::marker::Copy for KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION32 {} +impl ::core::clone::Clone for KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSRTAUDIO_GETREADPACKET_INFO { + pub PacketNumber: u32, + pub Flags: u32, + pub PerformanceCounterValue: u64, + pub MoreData: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSRTAUDIO_GETREADPACKET_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSRTAUDIO_GETREADPACKET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRTAUDIO_HWLATENCY { + pub FifoSize: u32, + pub ChipsetDelay: u32, + pub CodecDelay: u32, +} +impl ::core::marker::Copy for KSRTAUDIO_HWLATENCY {} +impl ::core::clone::Clone for KSRTAUDIO_HWLATENCY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRTAUDIO_HWREGISTER { + pub Register: *mut ::core::ffi::c_void, + pub Width: u32, + pub Numerator: u64, + pub Denominator: u64, + pub Accuracy: u32, +} +impl ::core::marker::Copy for KSRTAUDIO_HWREGISTER {} +impl ::core::clone::Clone for KSRTAUDIO_HWREGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRTAUDIO_HWREGISTER32 { + pub Register: u32, + pub Width: u32, + pub Numerator: u64, + pub Denominator: u64, + pub Accuracy: u32, +} +impl ::core::marker::Copy for KSRTAUDIO_HWREGISTER32 {} +impl ::core::clone::Clone for KSRTAUDIO_HWREGISTER32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRTAUDIO_HWREGISTER_PROPERTY { + pub Property: KSIDENTIFIER, + pub BaseAddress: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for KSRTAUDIO_HWREGISTER_PROPERTY {} +impl ::core::clone::Clone for KSRTAUDIO_HWREGISTER_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRTAUDIO_HWREGISTER_PROPERTY32 { + pub Property: KSIDENTIFIER, + pub BaseAddress: u32, +} +impl ::core::marker::Copy for KSRTAUDIO_HWREGISTER_PROPERTY32 {} +impl ::core::clone::Clone for KSRTAUDIO_HWREGISTER_PROPERTY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY { + pub Property: KSIDENTIFIER, + pub NotificationEvent: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY32 { + pub Property: KSIDENTIFIER, + pub NotificationEvent: u32, +} +impl ::core::marker::Copy for KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY32 {} +impl ::core::clone::Clone for KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRTAUDIO_PACKETVREGISTER { + pub CompletedPacketCount: *mut u64, + pub CompletedPacketQPC: *mut u64, + pub CompletedPacketHash: *mut u64, +} +impl ::core::marker::Copy for KSRTAUDIO_PACKETVREGISTER {} +impl ::core::clone::Clone for KSRTAUDIO_PACKETVREGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRTAUDIO_PACKETVREGISTER_PROPERTY { + pub Property: KSIDENTIFIER, + pub BaseAddress: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for KSRTAUDIO_PACKETVREGISTER_PROPERTY {} +impl ::core::clone::Clone for KSRTAUDIO_PACKETVREGISTER_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSRTAUDIO_SETWRITEPACKET_INFO { + pub PacketNumber: u32, + pub Flags: u32, + pub EosPacketLength: u32, +} +impl ::core::marker::Copy for KSRTAUDIO_SETWRITEPACKET_INFO {} +impl ::core::clone::Clone for KSRTAUDIO_SETWRITEPACKET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSSOUNDDETECTORPROPERTY { + pub Property: KSIDENTIFIER, + pub EventId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for KSSOUNDDETECTORPROPERTY {} +impl ::core::clone::Clone for KSSOUNDDETECTORPROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSSTREAMALLOCATOR_STATUS { + pub Framing: KSALLOCATOR_FRAMING, + pub AllocatedFrames: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSSTREAMALLOCATOR_STATUS {} +impl ::core::clone::Clone for KSSTREAMALLOCATOR_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSSTREAMALLOCATOR_STATUS_EX { + pub Framing: KSALLOCATOR_FRAMING_EX, + pub AllocatedFrames: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSSTREAMALLOCATOR_STATUS_EX {} +impl ::core::clone::Clone for KSSTREAMALLOCATOR_STATUS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct KSSTREAM_HEADER { + pub Size: u32, + pub TypeSpecificFlags: u32, + pub PresentationTime: KSTIME, + pub Duration: i64, + pub FrameExtent: u32, + pub DataUsed: u32, + pub Data: *mut ::core::ffi::c_void, + pub OptionsFlags: u32, + pub Reserved: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for KSSTREAM_HEADER {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for KSSTREAM_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct KSSTREAM_HEADER { + pub Size: u32, + pub TypeSpecificFlags: u32, + pub PresentationTime: KSTIME, + pub Duration: i64, + pub FrameExtent: u32, + pub DataUsed: u32, + pub Data: *mut ::core::ffi::c_void, + pub OptionsFlags: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for KSSTREAM_HEADER {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for KSSTREAM_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSSTREAM_METADATA_INFO { + pub BufferSize: u32, + pub UsedSize: u32, + pub Data: *mut ::core::ffi::c_void, + pub SystemVa: *mut ::core::ffi::c_void, + pub Flags: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSSTREAM_METADATA_INFO {} +impl ::core::clone::Clone for KSSTREAM_METADATA_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSSTREAM_SEGMENT { + pub KsInterfaceHandler: IKsInterfaceHandler, + pub KsDataTypeHandler: IKsDataTypeHandler, + pub IoOperation: KSIOOPERATION, + pub CompletionEvent: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSSTREAM_SEGMENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSSTREAM_SEGMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSSTREAM_UVC_METADATA { + pub StartOfFrameTimestamp: KSSTREAM_UVC_METADATATYPE_TIMESTAMP, + pub EndOfFrameTimestamp: KSSTREAM_UVC_METADATATYPE_TIMESTAMP, +} +impl ::core::marker::Copy for KSSTREAM_UVC_METADATA {} +impl ::core::clone::Clone for KSSTREAM_UVC_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSSTREAM_UVC_METADATATYPE_TIMESTAMP { + pub PresentationTimeStamp: u32, + pub SourceClockReference: u32, + pub Anonymous: KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0, + pub Reserved0: u16, + pub Reserved1: u32, +} +impl ::core::marker::Copy for KSSTREAM_UVC_METADATATYPE_TIMESTAMP {} +impl ::core::clone::Clone for KSSTREAM_UVC_METADATATYPE_TIMESTAMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0 { + pub Anonymous: KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0_0, + pub SCRToken: u16, +} +impl ::core::marker::Copy for KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0 {} +impl ::core::clone::Clone for KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0_0 {} +impl ::core::clone::Clone for KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSTELEPHONY_CALLCONTROL { + pub CallType: TELEPHONY_CALLTYPE, + pub CallControlOp: TELEPHONY_CALLCONTROLOP, +} +impl ::core::marker::Copy for KSTELEPHONY_CALLCONTROL {} +impl ::core::clone::Clone for KSTELEPHONY_CALLCONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSTELEPHONY_CALLINFO { + pub CallType: TELEPHONY_CALLTYPE, + pub CallState: TELEPHONY_CALLSTATE, +} +impl ::core::marker::Copy for KSTELEPHONY_CALLINFO {} +impl ::core::clone::Clone for KSTELEPHONY_CALLINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSTELEPHONY_PROVIDERCHANGE { + pub CallType: TELEPHONY_CALLTYPE, + pub ProviderChangeOp: TELEPHONY_PROVIDERCHANGEOP, +} +impl ::core::marker::Copy for KSTELEPHONY_PROVIDERCHANGE {} +impl ::core::clone::Clone for KSTELEPHONY_PROVIDERCHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSTIME { + pub Time: i64, + pub Numerator: u32, + pub Denominator: u32, +} +impl ::core::marker::Copy for KSTIME {} +impl ::core::clone::Clone for KSTIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSTOPOLOGY { + pub CategoriesCount: u32, + pub Categories: *const ::windows_sys::core::GUID, + pub TopologyNodesCount: u32, + pub TopologyNodes: *const ::windows_sys::core::GUID, + pub TopologyConnectionsCount: u32, + pub TopologyConnections: *const KSTOPOLOGY_CONNECTION, + pub TopologyNodesNames: *const ::windows_sys::core::GUID, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSTOPOLOGY {} +impl ::core::clone::Clone for KSTOPOLOGY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSTOPOLOGY_CONNECTION { + pub FromNode: u32, + pub FromNodePin: u32, + pub ToNode: u32, + pub ToNodePin: u32, +} +impl ::core::marker::Copy for KSTOPOLOGY_CONNECTION {} +impl ::core::clone::Clone for KSTOPOLOGY_CONNECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSTOPOLOGY_ENDPOINTID { + pub TopologyName: [u16; 260], + pub PinId: u32, +} +impl ::core::marker::Copy for KSTOPOLOGY_ENDPOINTID {} +impl ::core::clone::Clone for KSTOPOLOGY_ENDPOINTID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSTOPOLOGY_ENDPOINTIDPAIR { + pub RenderEndpoint: KSTOPOLOGY_ENDPOINTID, + pub CaptureEndpoint: KSTOPOLOGY_ENDPOINTID, +} +impl ::core::marker::Copy for KSTOPOLOGY_ENDPOINTIDPAIR {} +impl ::core::clone::Clone for KSTOPOLOGY_ENDPOINTIDPAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSVPMAXPIXELRATE { + pub Size: KS_AMVPSIZE, + pub MaxPixelsPerSecond: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for KSVPMAXPIXELRATE {} +impl ::core::clone::Clone for KSVPMAXPIXELRATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSVPSIZE_PROP { + pub Property: KSIDENTIFIER, + pub Size: KS_AMVPSIZE, +} +impl ::core::marker::Copy for KSVPSIZE_PROP {} +impl ::core::clone::Clone for KSVPSIZE_PROP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSVPSURFACEPARAMS { + pub dwPitch: u32, + pub dwXOrigin: u32, + pub dwYOrigin: u32, +} +impl ::core::marker::Copy for KSVPSURFACEPARAMS {} +impl ::core::clone::Clone for KSVPSURFACEPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KSWAVETABLE_WAVE_DESC { + pub Identifier: KSIDENTIFIER, + pub Size: u32, + pub Looped: super::super::Foundation::BOOL, + pub LoopPoint: u32, + pub InROM: super::super::Foundation::BOOL, + pub Format: KSDATAFORMAT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KSWAVETABLE_WAVE_DESC {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KSWAVETABLE_WAVE_DESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSWAVE_BUFFER { + pub Attributes: u32, + pub BufferSize: u32, + pub BufferAddress: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for KSWAVE_BUFFER {} +impl ::core::clone::Clone for KSWAVE_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSWAVE_COMPATCAPS { + pub ulDeviceType: u32, +} +impl ::core::marker::Copy for KSWAVE_COMPATCAPS {} +impl ::core::clone::Clone for KSWAVE_COMPATCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSWAVE_INPUT_CAPABILITIES { + pub MaximumChannelsPerConnection: u32, + pub MinimumBitsPerSample: u32, + pub MaximumBitsPerSample: u32, + pub MinimumSampleFrequency: u32, + pub MaximumSampleFrequency: u32, + pub TotalConnections: u32, + pub ActiveConnections: u32, +} +impl ::core::marker::Copy for KSWAVE_INPUT_CAPABILITIES {} +impl ::core::clone::Clone for KSWAVE_INPUT_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSWAVE_OUTPUT_CAPABILITIES { + pub MaximumChannelsPerConnection: u32, + pub MinimumBitsPerSample: u32, + pub MaximumBitsPerSample: u32, + pub MinimumSampleFrequency: u32, + pub MaximumSampleFrequency: u32, + pub TotalConnections: u32, + pub StaticConnections: u32, + pub StreamingConnections: u32, + pub ActiveConnections: u32, + pub ActiveStaticConnections: u32, + pub ActiveStreamingConnections: u32, + pub Total3DConnections: u32, + pub Static3DConnections: u32, + pub Streaming3DConnections: u32, + pub Active3DConnections: u32, + pub ActiveStatic3DConnections: u32, + pub ActiveStreaming3DConnections: u32, + pub TotalSampleMemory: u32, + pub FreeSampleMemory: u32, + pub LargestFreeContiguousSampleMemory: u32, +} +impl ::core::marker::Copy for KSWAVE_OUTPUT_CAPABILITIES {} +impl ::core::clone::Clone for KSWAVE_OUTPUT_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KSWAVE_VOLUME { + pub LeftAttenuation: i32, + pub RightAttenuation: i32, +} +impl ::core::marker::Copy for KSWAVE_VOLUME {} +impl ::core::clone::Clone for KSWAVE_VOLUME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_AMVPDATAINFO { + pub dwSize: u32, + pub dwMicrosecondsPerField: u32, + pub amvpDimInfo: KS_AMVPDIMINFO, + pub dwPictAspectRatioX: u32, + pub dwPictAspectRatioY: u32, + pub bEnableDoubleClock: super::super::Foundation::BOOL, + pub bEnableVACT: super::super::Foundation::BOOL, + pub bDataIsInterlaced: super::super::Foundation::BOOL, + pub lHalfLinesOdd: i32, + pub bFieldPolarityInverted: super::super::Foundation::BOOL, + pub dwNumLinesInVREF: u32, + pub lHalfLinesEven: i32, + pub dwReserved1: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_AMVPDATAINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_AMVPDATAINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_AMVPDIMINFO { + pub dwFieldWidth: u32, + pub dwFieldHeight: u32, + pub dwVBIWidth: u32, + pub dwVBIHeight: u32, + pub rcValidRegion: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_AMVPDIMINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_AMVPDIMINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_AMVPSIZE { + pub dwWidth: u32, + pub dwHeight: u32, +} +impl ::core::marker::Copy for KS_AMVPSIZE {} +impl ::core::clone::Clone for KS_AMVPSIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_AM_ExactRateChange { + pub OutputZeroTime: i64, + pub Rate: i32, +} +impl ::core::marker::Copy for KS_AM_ExactRateChange {} +impl ::core::clone::Clone for KS_AM_ExactRateChange { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_AM_SimpleRateChange { + pub StartTime: i64, + pub Rate: i32, +} +impl ::core::marker::Copy for KS_AM_SimpleRateChange {} +impl ::core::clone::Clone for KS_AM_SimpleRateChange { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_ANALOGVIDEOINFO { + pub rcSource: super::super::Foundation::RECT, + pub rcTarget: super::super::Foundation::RECT, + pub dwActiveWidth: u32, + pub dwActiveHeight: u32, + pub AvgTimePerFrame: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_ANALOGVIDEOINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_ANALOGVIDEOINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_BITMAPINFOHEADER { + pub biSize: u32, + pub biWidth: i32, + pub biHeight: i32, + pub biPlanes: u16, + pub biBitCount: u16, + pub biCompression: u32, + pub biSizeImage: u32, + pub biXPelsPerMeter: i32, + pub biYPelsPerMeter: i32, + pub biClrUsed: u32, + pub biClrImportant: u32, +} +impl ::core::marker::Copy for KS_BITMAPINFOHEADER {} +impl ::core::clone::Clone for KS_BITMAPINFOHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_COLCON { + pub _bitfield1: u8, + pub _bitfield2: u8, + pub _bitfield3: u8, + pub _bitfield4: u8, +} +impl ::core::marker::Copy for KS_COLCON {} +impl ::core::clone::Clone for KS_COLCON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_COMPRESSION { + pub RatioNumerator: u32, + pub RatioDenominator: u32, + pub RatioConstantMargin: u32, +} +impl ::core::marker::Copy for KS_COMPRESSION {} +impl ::core::clone::Clone for KS_COMPRESSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_COPY_MACROVISION { + pub MACROVISIONLevel: u32, +} +impl ::core::marker::Copy for KS_COPY_MACROVISION {} +impl ::core::clone::Clone for KS_COPY_MACROVISION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_DATAFORMAT_H264VIDEOINFO { + pub DataFormat: KSDATAFORMAT, + pub H264VideoInfoHeader: KS_H264VIDEOINFO, +} +impl ::core::marker::Copy for KS_DATAFORMAT_H264VIDEOINFO {} +impl ::core::clone::Clone for KS_DATAFORMAT_H264VIDEOINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_DATAFORMAT_IMAGEINFO { + pub DataFormat: KSDATAFORMAT, + pub ImageInfoHeader: KS_BITMAPINFOHEADER, +} +impl ::core::marker::Copy for KS_DATAFORMAT_IMAGEINFO {} +impl ::core::clone::Clone for KS_DATAFORMAT_IMAGEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_DATAFORMAT_MPEGVIDEOINFO2 { + pub DataFormat: KSDATAFORMAT, + pub MpegVideoInfoHeader2: KS_MPEGVIDEOINFO2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_DATAFORMAT_MPEGVIDEOINFO2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_DATAFORMAT_MPEGVIDEOINFO2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_DATAFORMAT_VBIINFOHEADER { + pub DataFormat: KSDATAFORMAT, + pub VBIInfoHeader: KS_VBIINFOHEADER, +} +impl ::core::marker::Copy for KS_DATAFORMAT_VBIINFOHEADER {} +impl ::core::clone::Clone for KS_DATAFORMAT_VBIINFOHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_DATAFORMAT_VIDEOINFOHEADER { + pub DataFormat: KSDATAFORMAT, + pub VideoInfoHeader: KS_VIDEOINFOHEADER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_DATAFORMAT_VIDEOINFOHEADER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_DATAFORMAT_VIDEOINFOHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_DATAFORMAT_VIDEOINFOHEADER2 { + pub DataFormat: KSDATAFORMAT, + pub VideoInfoHeader2: KS_VIDEOINFOHEADER2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_DATAFORMAT_VIDEOINFOHEADER2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_DATAFORMAT_VIDEOINFOHEADER2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_DATAFORMAT_VIDEOINFO_PALETTE { + pub DataFormat: KSDATAFORMAT, + pub VideoInfo: KS_VIDEOINFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_DATAFORMAT_VIDEOINFO_PALETTE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_DATAFORMAT_VIDEOINFO_PALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_DATARANGE_ANALOGVIDEO { + pub DataRange: KSDATAFORMAT, + pub AnalogVideoInfo: KS_ANALOGVIDEOINFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_DATARANGE_ANALOGVIDEO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_DATARANGE_ANALOGVIDEO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_DATARANGE_H264_VIDEO { + pub DataRange: KSDATAFORMAT, + pub bFixedSizeSamples: super::super::Foundation::BOOL, + pub bTemporalCompression: super::super::Foundation::BOOL, + pub StreamDescriptionFlags: u32, + pub MemoryAllocationFlags: u32, + pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS, + pub VideoInfoHeader: KS_H264VIDEOINFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_DATARANGE_H264_VIDEO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_DATARANGE_H264_VIDEO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_DATARANGE_IMAGE { + pub DataRange: KSDATAFORMAT, + pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS, + pub ImageInfoHeader: KS_BITMAPINFOHEADER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_DATARANGE_IMAGE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_DATARANGE_IMAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_DATARANGE_MPEG1_VIDEO { + pub DataRange: KSDATAFORMAT, + pub bFixedSizeSamples: super::super::Foundation::BOOL, + pub bTemporalCompression: super::super::Foundation::BOOL, + pub StreamDescriptionFlags: u32, + pub MemoryAllocationFlags: u32, + pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS, + pub VideoInfoHeader: KS_MPEG1VIDEOINFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_DATARANGE_MPEG1_VIDEO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_DATARANGE_MPEG1_VIDEO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_DATARANGE_MPEG2_VIDEO { + pub DataRange: KSDATAFORMAT, + pub bFixedSizeSamples: super::super::Foundation::BOOL, + pub bTemporalCompression: super::super::Foundation::BOOL, + pub StreamDescriptionFlags: u32, + pub MemoryAllocationFlags: u32, + pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS, + pub VideoInfoHeader: KS_MPEGVIDEOINFO2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_DATARANGE_MPEG2_VIDEO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_DATARANGE_MPEG2_VIDEO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_DATARANGE_VIDEO { + pub DataRange: KSDATAFORMAT, + pub bFixedSizeSamples: super::super::Foundation::BOOL, + pub bTemporalCompression: super::super::Foundation::BOOL, + pub StreamDescriptionFlags: u32, + pub MemoryAllocationFlags: u32, + pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS, + pub VideoInfoHeader: KS_VIDEOINFOHEADER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_DATARANGE_VIDEO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_DATARANGE_VIDEO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_DATARANGE_VIDEO2 { + pub DataRange: KSDATAFORMAT, + pub bFixedSizeSamples: super::super::Foundation::BOOL, + pub bTemporalCompression: super::super::Foundation::BOOL, + pub StreamDescriptionFlags: u32, + pub MemoryAllocationFlags: u32, + pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS, + pub VideoInfoHeader: KS_VIDEOINFOHEADER2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_DATARANGE_VIDEO2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_DATARANGE_VIDEO2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_DATARANGE_VIDEO_PALETTE { + pub DataRange: KSDATAFORMAT, + pub bFixedSizeSamples: super::super::Foundation::BOOL, + pub bTemporalCompression: super::super::Foundation::BOOL, + pub StreamDescriptionFlags: u32, + pub MemoryAllocationFlags: u32, + pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS, + pub VideoInfo: KS_VIDEOINFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_DATARANGE_VIDEO_PALETTE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_DATARANGE_VIDEO_PALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_DATARANGE_VIDEO_VBI { + pub DataRange: KSDATAFORMAT, + pub bFixedSizeSamples: super::super::Foundation::BOOL, + pub bTemporalCompression: super::super::Foundation::BOOL, + pub StreamDescriptionFlags: u32, + pub MemoryAllocationFlags: u32, + pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS, + pub VBIInfoHeader: KS_VBIINFOHEADER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_DATARANGE_VIDEO_VBI {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_DATARANGE_VIDEO_VBI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_DVDCOPY_BUSKEY { + pub BusKey: [u8; 5], + pub Reserved: [u8; 1], +} +impl ::core::marker::Copy for KS_DVDCOPY_BUSKEY {} +impl ::core::clone::Clone for KS_DVDCOPY_BUSKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_DVDCOPY_CHLGKEY { + pub ChlgKey: [u8; 10], + pub Reserved: [u8; 2], +} +impl ::core::marker::Copy for KS_DVDCOPY_CHLGKEY {} +impl ::core::clone::Clone for KS_DVDCOPY_CHLGKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_DVDCOPY_DISCKEY { + pub DiscKey: [u8; 2048], +} +impl ::core::marker::Copy for KS_DVDCOPY_DISCKEY {} +impl ::core::clone::Clone for KS_DVDCOPY_DISCKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_DVDCOPY_REGION { + pub Reserved: u8, + pub RegionData: u8, + pub Reserved2: [u8; 2], +} +impl ::core::marker::Copy for KS_DVDCOPY_REGION {} +impl ::core::clone::Clone for KS_DVDCOPY_REGION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_DVDCOPY_SET_COPY_STATE { + pub DVDCopyState: u32, +} +impl ::core::marker::Copy for KS_DVDCOPY_SET_COPY_STATE {} +impl ::core::clone::Clone for KS_DVDCOPY_SET_COPY_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_DVDCOPY_TITLEKEY { + pub KeyFlags: u32, + pub ReservedNT: [u32; 2], + pub TitleKey: [u8; 6], + pub Reserved: [u8; 2], +} +impl ::core::marker::Copy for KS_DVDCOPY_TITLEKEY {} +impl ::core::clone::Clone for KS_DVDCOPY_TITLEKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_DVD_YCrCb { + pub Reserved: u8, + pub Y: u8, + pub Cr: u8, + pub Cb: u8, +} +impl ::core::marker::Copy for KS_DVD_YCrCb {} +impl ::core::clone::Clone for KS_DVD_YCrCb { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_DVD_YUV { + pub Reserved: u8, + pub Y: u8, + pub V: u8, + pub U: u8, +} +impl ::core::marker::Copy for KS_DVD_YUV {} +impl ::core::clone::Clone for KS_DVD_YUV { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_FRAME_INFO { + pub ExtendedHeaderSize: u32, + pub dwFrameFlags: u32, + pub PictureNumber: i64, + pub DropCount: i64, + pub hDirectDraw: super::super::Foundation::HANDLE, + pub hSurfaceHandle: super::super::Foundation::HANDLE, + pub DirectDrawRect: super::super::Foundation::RECT, + pub Anonymous1: KS_FRAME_INFO_0, + pub Reserved2: u32, + pub Anonymous2: KS_FRAME_INFO_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_FRAME_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_FRAME_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union KS_FRAME_INFO_0 { + pub lSurfacePitch: i32, + pub Reserved1: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_FRAME_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_FRAME_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union KS_FRAME_INFO_1 { + pub Anonymous: KS_FRAME_INFO_1_0, + pub FrameCompletionNumber: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_FRAME_INFO_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_FRAME_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_FRAME_INFO_1_0 { + pub Reserved3: u32, + pub Reserved4: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_FRAME_INFO_1_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_FRAME_INFO_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_FRAMING_ITEM { + pub MemoryType: ::windows_sys::core::GUID, + pub BusType: ::windows_sys::core::GUID, + pub MemoryFlags: u32, + pub BusFlags: u32, + pub Flags: u32, + pub Frames: u32, + pub Anonymous: KS_FRAMING_ITEM_0, + pub MemoryTypeWeight: u32, + pub PhysicalRange: KS_FRAMING_RANGE, + pub FramingRange: KS_FRAMING_RANGE_WEIGHTED, +} +impl ::core::marker::Copy for KS_FRAMING_ITEM {} +impl ::core::clone::Clone for KS_FRAMING_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KS_FRAMING_ITEM_0 { + pub FileAlignment: u32, + pub FramePitch: i32, +} +impl ::core::marker::Copy for KS_FRAMING_ITEM_0 {} +impl ::core::clone::Clone for KS_FRAMING_ITEM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_FRAMING_RANGE { + pub MinFrameSize: u32, + pub MaxFrameSize: u32, + pub Stepping: u32, +} +impl ::core::marker::Copy for KS_FRAMING_RANGE {} +impl ::core::clone::Clone for KS_FRAMING_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_FRAMING_RANGE_WEIGHTED { + pub Range: KS_FRAMING_RANGE, + pub InPlaceWeight: u32, + pub NotInPlaceWeight: u32, +} +impl ::core::marker::Copy for KS_FRAMING_RANGE_WEIGHTED {} +impl ::core::clone::Clone for KS_FRAMING_RANGE_WEIGHTED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_H264VIDEOINFO { + pub wWidth: u16, + pub wHeight: u16, + pub wSARwidth: u16, + pub wSARheight: u16, + pub wProfile: u16, + pub bLevelIDC: u8, + pub wConstrainedToolset: u16, + pub bmSupportedUsages: u32, + pub bmCapabilities: u16, + pub bmSVCCapabilities: u32, + pub bmMVCCapabilities: u32, + pub dwFrameInterval: u32, + pub bMaxCodecConfigDelay: u8, + pub bmSupportedSliceModes: u8, + pub bmSupportedSyncFrameTypes: u8, + pub bResolutionScaling: u8, + pub bSimulcastSupport: u8, + pub bmSupportedRateControlModes: u8, + pub wMaxMBperSecOneResolutionNoScalability: u16, + pub wMaxMBperSecTwoResolutionsNoScalability: u16, + pub wMaxMBperSecThreeResolutionsNoScalability: u16, + pub wMaxMBperSecFourResolutionsNoScalability: u16, + pub wMaxMBperSecOneResolutionTemporalScalability: u16, + pub wMaxMBperSecTwoResolutionsTemporalScalablility: u16, + pub wMaxMBperSecThreeResolutionsTemporalScalability: u16, + pub wMaxMBperSecFourResolutionsTemporalScalability: u16, + pub wMaxMBperSecOneResolutionTemporalQualityScalability: u16, + pub wMaxMBperSecTwoResolutionsTemporalQualityScalability: u16, + pub wMaxMBperSecThreeResolutionsTemporalQualityScalablity: u16, + pub wMaxMBperSecFourResolutionsTemporalQualityScalability: u16, + pub wMaxMBperSecOneResolutionTemporalSpatialScalability: u16, + pub wMaxMBperSecTwoResolutionsTemporalSpatialScalability: u16, + pub wMaxMBperSecThreeResolutionsTemporalSpatialScalablity: u16, + pub wMaxMBperSecFourResolutionsTemporalSpatialScalability: u16, + pub wMaxMBperSecOneResolutionFullScalability: u16, + pub wMaxMBperSecTwoResolutionsFullScalability: u16, + pub wMaxMBperSecThreeResolutionsFullScalability: u16, + pub wMaxMBperSecFourResolutionsFullScalability: u16, +} +impl ::core::marker::Copy for KS_H264VIDEOINFO {} +impl ::core::clone::Clone for KS_H264VIDEOINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_MPEG1VIDEOINFO { + pub hdr: KS_VIDEOINFOHEADER, + pub dwStartTimeCode: u32, + pub cbSequenceHeader: u32, + pub bSequenceHeader: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_MPEG1VIDEOINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_MPEG1VIDEOINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_MPEGAUDIOINFO { + pub dwFlags: u32, + pub dwReserved1: u32, + pub dwReserved2: u32, + pub dwReserved3: u32, +} +impl ::core::marker::Copy for KS_MPEGAUDIOINFO {} +impl ::core::clone::Clone for KS_MPEGAUDIOINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_MPEGVIDEOINFO2 { + pub hdr: KS_VIDEOINFOHEADER2, + pub dwStartTimeCode: u32, + pub cbSequenceHeader: u32, + pub dwProfile: u32, + pub dwLevel: u32, + pub dwFlags: u32, + pub bSequenceHeader: [u32; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_MPEGVIDEOINFO2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_MPEGVIDEOINFO2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_RGBQUAD { + pub rgbBlue: u8, + pub rgbGreen: u8, + pub rgbRed: u8, + pub rgbReserved: u8, +} +impl ::core::marker::Copy for KS_RGBQUAD {} +impl ::core::clone::Clone for KS_RGBQUAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_TRUECOLORINFO { + pub dwBitMasks: [u32; 3], + pub bmiColors: [KS_RGBQUAD; 256], +} +impl ::core::marker::Copy for KS_TRUECOLORINFO {} +impl ::core::clone::Clone for KS_TRUECOLORINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_TVTUNER_CHANGE_INFO { + pub dwFlags: u32, + pub dwCountryCode: u32, + pub dwAnalogVideoStandard: u32, + pub dwChannel: u32, +} +impl ::core::marker::Copy for KS_TVTUNER_CHANGE_INFO {} +impl ::core::clone::Clone for KS_TVTUNER_CHANGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_VBIINFOHEADER { + pub StartLine: u32, + pub EndLine: u32, + pub SamplingFrequency: u32, + pub MinLineStartTime: u32, + pub MaxLineStartTime: u32, + pub ActualLineStartTime: u32, + pub ActualLineEndTime: u32, + pub VideoStandard: u32, + pub SamplesPerLine: u32, + pub StrideInBytes: u32, + pub BufferSize: u32, +} +impl ::core::marker::Copy for KS_VBIINFOHEADER {} +impl ::core::clone::Clone for KS_VBIINFOHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KS_VBI_FRAME_INFO { + pub ExtendedHeaderSize: u32, + pub dwFrameFlags: u32, + pub PictureNumber: i64, + pub DropCount: i64, + pub dwSamplingFrequency: u32, + pub TvTunerChangeInfo: KS_TVTUNER_CHANGE_INFO, + pub VBIInfoHeader: KS_VBIINFOHEADER, +} +impl ::core::marker::Copy for KS_VBI_FRAME_INFO {} +impl ::core::clone::Clone for KS_VBI_FRAME_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_VIDEOINFO { + pub rcSource: super::super::Foundation::RECT, + pub rcTarget: super::super::Foundation::RECT, + pub dwBitRate: u32, + pub dwBitErrorRate: u32, + pub AvgTimePerFrame: i64, + pub bmiHeader: KS_BITMAPINFOHEADER, + pub Anonymous: KS_VIDEOINFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_VIDEOINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_VIDEOINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union KS_VIDEOINFO_0 { + pub bmiColors: [KS_RGBQUAD; 256], + pub dwBitMasks: [u32; 3], + pub TrueColorInfo: KS_TRUECOLORINFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_VIDEOINFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_VIDEOINFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_VIDEOINFOHEADER { + pub rcSource: super::super::Foundation::RECT, + pub rcTarget: super::super::Foundation::RECT, + pub dwBitRate: u32, + pub dwBitErrorRate: u32, + pub AvgTimePerFrame: i64, + pub bmiHeader: KS_BITMAPINFOHEADER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_VIDEOINFOHEADER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_VIDEOINFOHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_VIDEOINFOHEADER2 { + pub rcSource: super::super::Foundation::RECT, + pub rcTarget: super::super::Foundation::RECT, + pub dwBitRate: u32, + pub dwBitErrorRate: u32, + pub AvgTimePerFrame: i64, + pub dwInterlaceFlags: u32, + pub dwCopyProtectFlags: u32, + pub dwPictAspectRatioX: u32, + pub dwPictAspectRatioY: u32, + pub Anonymous: KS_VIDEOINFOHEADER2_0, + pub dwReserved2: u32, + pub bmiHeader: KS_BITMAPINFOHEADER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_VIDEOINFOHEADER2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_VIDEOINFOHEADER2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union KS_VIDEOINFOHEADER2_0 { + pub dwControlFlags: u32, + pub dwReserved1: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_VIDEOINFOHEADER2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_VIDEOINFOHEADER2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KS_VIDEO_STREAM_CONFIG_CAPS { + pub guid: ::windows_sys::core::GUID, + pub VideoStandard: u32, + pub InputSize: super::super::Foundation::SIZE, + pub MinCroppingSize: super::super::Foundation::SIZE, + pub MaxCroppingSize: super::super::Foundation::SIZE, + pub CropGranularityX: i32, + pub CropGranularityY: i32, + pub CropAlignX: i32, + pub CropAlignY: i32, + pub MinOutputSize: super::super::Foundation::SIZE, + pub MaxOutputSize: super::super::Foundation::SIZE, + pub OutputGranularityX: i32, + pub OutputGranularityY: i32, + pub StretchTapsX: i32, + pub StretchTapsY: i32, + pub ShrinkTapsX: i32, + pub ShrinkTapsY: i32, + pub MinFrameInterval: i64, + pub MaxFrameInterval: i64, + pub MinBitsPerSecond: i32, + pub MaxBitsPerSecond: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KS_VIDEO_STREAM_CONFIG_CAPS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KS_VIDEO_STREAM_CONFIG_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LOOPEDSTREAMING_POSITION_EVENT_DATA { + pub KsEventData: KSEVENTDATA, + pub Position: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LOOPEDSTREAMING_POSITION_EVENT_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LOOPEDSTREAMING_POSITION_EVENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MEDIUM_INFO { + pub MediaPresent: super::super::Foundation::BOOL, + pub MediaType: u32, + pub RecordInhibit: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MEDIUM_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MEDIUM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MF_MDL_SHARED_PAYLOAD_KEY { + pub combined: MF_MDL_SHARED_PAYLOAD_KEY_0, + pub GMDLHandle: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for MF_MDL_SHARED_PAYLOAD_KEY {} +impl ::core::clone::Clone for MF_MDL_SHARED_PAYLOAD_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MF_MDL_SHARED_PAYLOAD_KEY_0 { + pub pHandle: u32, + pub fHandle: u32, + pub uPayload: u64, +} +impl ::core::marker::Copy for MF_MDL_SHARED_PAYLOAD_KEY_0 {} +impl ::core::clone::Clone for MF_MDL_SHARED_PAYLOAD_KEY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NABTSFEC_BUFFER { + pub dataSize: u32, + pub groupID: u16, + pub Reserved: u16, + pub data: [u8; 448], +} +impl ::core::marker::Copy for NABTSFEC_BUFFER {} +impl ::core::clone::Clone for NABTSFEC_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NABTS_BUFFER { + pub ScanlinesRequested: VBICODECFILTERING_SCANLINES, + pub PictureNumber: i64, + pub NabtsLines: [NABTS_BUFFER_LINE; 11], +} +impl ::core::marker::Copy for NABTS_BUFFER {} +impl ::core::clone::Clone for NABTS_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NABTS_BUFFER_LINE { + pub Confidence: u8, + pub Bytes: [u8; 36], +} +impl ::core::marker::Copy for NABTS_BUFFER_LINE {} +impl ::core::clone::Clone for NABTS_BUFFER_LINE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OPTIMAL_WEIGHT_TOTALS { + pub MinTotalNominator: i64, + pub MaxTotalNominator: i64, + pub TotalDenominator: i64, +} +impl ::core::marker::Copy for OPTIMAL_WEIGHT_TOTALS {} +impl ::core::clone::Clone for OPTIMAL_WEIGHT_TOTALS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PIPE_DIMENSIONS { + pub AllocatorPin: KS_COMPRESSION, + pub MaxExpansionPin: KS_COMPRESSION, + pub EndPin: KS_COMPRESSION, +} +impl ::core::marker::Copy for PIPE_DIMENSIONS {} +impl ::core::clone::Clone for PIPE_DIMENSIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PIPE_TERMINATION { + pub Flags: u32, + pub OutsideFactors: u32, + pub Weigth: u32, + pub PhysicalRange: KS_FRAMING_RANGE, + pub OptimalRange: KS_FRAMING_RANGE_WEIGHTED, + pub Compression: KS_COMPRESSION, +} +impl ::core::marker::Copy for PIPE_TERMINATION {} +impl ::core::clone::Clone for PIPE_TERMINATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECURE_BUFFER_INFO { + pub guidBufferIdentifier: ::windows_sys::core::GUID, + pub cbBufferSize: u32, + pub cbCaptured: u32, + pub ullReserved: [u64; 16], +} +impl ::core::marker::Copy for SECURE_BUFFER_INFO {} +impl ::core::clone::Clone for SECURE_BUFFER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOUNDDETECTOR_PATTERNHEADER { + pub Size: u32, + pub PatternType: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for SOUNDDETECTOR_PATTERNHEADER {} +impl ::core::clone::Clone for SOUNDDETECTOR_PATTERNHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSPORTAUDIOPARMS { + pub EnableOutput: i32, + pub EnableRecord: i32, + pub EnableSelsync: i32, + pub Input: i32, + pub MonitorSource: i32, +} +impl ::core::marker::Copy for TRANSPORTAUDIOPARMS {} +impl ::core::clone::Clone for TRANSPORTAUDIOPARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSPORTBASICPARMS { + pub TimeFormat: i32, + pub TimeReference: i32, + pub Superimpose: i32, + pub EndStopAction: i32, + pub RecordFormat: i32, + pub StepFrames: i32, + pub SetpField: i32, + pub Preroll: i32, + pub RecPreroll: i32, + pub Postroll: i32, + pub EditDelay: i32, + pub PlayTCDelay: i32, + pub RecTCDelay: i32, + pub EditField: i32, + pub FrameServo: i32, + pub ColorFrameServo: i32, + pub ServoRef: i32, + pub WarnGenlock: i32, + pub SetTracking: i32, + pub VolumeName: [i8; 40], + pub Ballistic: [i32; 20], + pub Speed: i32, + pub CounterFormat: i32, + pub TunerChannel: i32, + pub TunerNumber: i32, + pub TimerEvent: i32, + pub TimerStartDay: i32, + pub TimerStartTime: i32, + pub TimerStopDay: i32, + pub TimerStopTime: i32, +} +impl ::core::marker::Copy for TRANSPORTBASICPARMS {} +impl ::core::clone::Clone for TRANSPORTBASICPARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSPORTSTATUS { + pub Mode: i32, + pub LastError: i32, + pub RecordInhibit: i32, + pub ServoLock: i32, + pub MediaPresent: i32, + pub MediaLength: i32, + pub MediaSize: i32, + pub MediaTrackCount: i32, + pub MediaTrackLength: i32, + pub MediaTrackSide: i32, + pub MediaType: i32, + pub LinkMode: i32, + pub NotifyOn: i32, +} +impl ::core::marker::Copy for TRANSPORTSTATUS {} +impl ::core::clone::Clone for TRANSPORTSTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSPORTVIDEOPARMS { + pub OutputMode: i32, + pub Input: i32, +} +impl ::core::marker::Copy for TRANSPORTVIDEOPARMS {} +impl ::core::clone::Clone for TRANSPORTVIDEOPARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSPORT_STATE { + pub Mode: u32, + pub State: u32, +} +impl ::core::marker::Copy for TRANSPORT_STATE {} +impl ::core::clone::Clone for TRANSPORT_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TUNER_ANALOG_CAPS_S { + pub Mode: u32, + pub StandardsSupported: u32, + pub MinFrequency: u32, + pub MaxFrequency: u32, + pub TuningGranularity: u32, + pub SettlingTime: u32, + pub ScanSensingRange: u32, + pub FineTuneSensingRange: u32, +} +impl ::core::marker::Copy for TUNER_ANALOG_CAPS_S {} +impl ::core::clone::Clone for TUNER_ANALOG_CAPS_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBICAP_PROPERTIES_PROTECTION_S { + pub Property: KSIDENTIFIER, + pub StreamIndex: u32, + pub Status: u32, +} +impl ::core::marker::Copy for VBICAP_PROPERTIES_PROTECTION_S {} +impl ::core::clone::Clone for VBICAP_PROPERTIES_PROTECTION_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBICODECFILTERING_CC_SUBSTREAMS { + pub SubstreamMask: u32, +} +impl ::core::marker::Copy for VBICODECFILTERING_CC_SUBSTREAMS {} +impl ::core::clone::Clone for VBICODECFILTERING_CC_SUBSTREAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBICODECFILTERING_NABTS_SUBSTREAMS { + pub SubstreamMask: [u32; 128], +} +impl ::core::marker::Copy for VBICODECFILTERING_NABTS_SUBSTREAMS {} +impl ::core::clone::Clone for VBICODECFILTERING_NABTS_SUBSTREAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBICODECFILTERING_SCANLINES { + pub DwordBitArray: [u32; 32], +} +impl ::core::marker::Copy for VBICODECFILTERING_SCANLINES {} +impl ::core::clone::Clone for VBICODECFILTERING_SCANLINES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBICODECFILTERING_STATISTICS_CC { + pub Common: VBICODECFILTERING_STATISTICS_COMMON, +} +impl ::core::marker::Copy for VBICODECFILTERING_STATISTICS_CC {} +impl ::core::clone::Clone for VBICODECFILTERING_STATISTICS_CC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBICODECFILTERING_STATISTICS_CC_PIN { + pub Common: VBICODECFILTERING_STATISTICS_COMMON_PIN, +} +impl ::core::marker::Copy for VBICODECFILTERING_STATISTICS_CC_PIN {} +impl ::core::clone::Clone for VBICODECFILTERING_STATISTICS_CC_PIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBICODECFILTERING_STATISTICS_COMMON { + pub InputSRBsProcessed: u32, + pub OutputSRBsProcessed: u32, + pub SRBsIgnored: u32, + pub InputSRBsMissing: u32, + pub OutputSRBsMissing: u32, + pub OutputFailures: u32, + pub InternalErrors: u32, + pub ExternalErrors: u32, + pub InputDiscontinuities: u32, + pub DSPFailures: u32, + pub TvTunerChanges: u32, + pub VBIHeaderChanges: u32, + pub LineConfidenceAvg: u32, + pub BytesOutput: u32, +} +impl ::core::marker::Copy for VBICODECFILTERING_STATISTICS_COMMON {} +impl ::core::clone::Clone for VBICODECFILTERING_STATISTICS_COMMON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBICODECFILTERING_STATISTICS_COMMON_PIN { + pub SRBsProcessed: u32, + pub SRBsIgnored: u32, + pub SRBsMissing: u32, + pub InternalErrors: u32, + pub ExternalErrors: u32, + pub Discontinuities: u32, + pub LineConfidenceAvg: u32, + pub BytesOutput: u32, +} +impl ::core::marker::Copy for VBICODECFILTERING_STATISTICS_COMMON_PIN {} +impl ::core::clone::Clone for VBICODECFILTERING_STATISTICS_COMMON_PIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBICODECFILTERING_STATISTICS_NABTS { + pub Common: VBICODECFILTERING_STATISTICS_COMMON, + pub FECBundleBadLines: u32, + pub FECQueueOverflows: u32, + pub FECCorrectedLines: u32, + pub FECUncorrectableLines: u32, + pub BundlesProcessed: u32, + pub BundlesSent2IP: u32, + pub FilteredLines: u32, +} +impl ::core::marker::Copy for VBICODECFILTERING_STATISTICS_NABTS {} +impl ::core::clone::Clone for VBICODECFILTERING_STATISTICS_NABTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBICODECFILTERING_STATISTICS_NABTS_PIN { + pub Common: VBICODECFILTERING_STATISTICS_COMMON_PIN, +} +impl ::core::marker::Copy for VBICODECFILTERING_STATISTICS_NABTS_PIN {} +impl ::core::clone::Clone for VBICODECFILTERING_STATISTICS_NABTS_PIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBICODECFILTERING_STATISTICS_TELETEXT { + pub Common: VBICODECFILTERING_STATISTICS_COMMON, +} +impl ::core::marker::Copy for VBICODECFILTERING_STATISTICS_TELETEXT {} +impl ::core::clone::Clone for VBICODECFILTERING_STATISTICS_TELETEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBICODECFILTERING_STATISTICS_TELETEXT_PIN { + pub Common: VBICODECFILTERING_STATISTICS_COMMON_PIN, +} +impl ::core::marker::Copy for VBICODECFILTERING_STATISTICS_TELETEXT_PIN {} +impl ::core::clone::Clone for VBICODECFILTERING_STATISTICS_TELETEXT_PIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VRAM_SURFACE_INFO { + pub hSurface: usize, + pub VramPhysicalAddress: i64, + pub cbCaptured: u32, + pub dwWidth: u32, + pub dwHeight: u32, + pub dwLinearSize: u32, + pub lPitch: i32, + pub ullReserved: [u64; 16], +} +impl ::core::marker::Copy for VRAM_SURFACE_INFO {} +impl ::core::clone::Clone for VRAM_SURFACE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VRAM_SURFACE_INFO_PROPERTY_S { + pub Property: KSIDENTIFIER, + pub pVramSurfaceInfo: *mut VRAM_SURFACE_INFO, +} +impl ::core::marker::Copy for VRAM_SURFACE_INFO_PROPERTY_S {} +impl ::core::clone::Clone for VRAM_SURFACE_INFO_PROPERTY_S { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WNF_KSCAMERA_STREAMSTATE_INFO { + pub ProcessId: u32, + pub SessionId: u32, + pub StreamState: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for WNF_KSCAMERA_STREAMSTATE_INFO {} +impl ::core::clone::Clone for WNF_KSCAMERA_STREAMSTATE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WST_BUFFER { + pub ScanlinesRequested: VBICODECFILTERING_SCANLINES, + pub WstLines: [WST_BUFFER_LINE; 17], +} +impl ::core::marker::Copy for WST_BUFFER {} +impl ::core::clone::Clone for WST_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WST_BUFFER_LINE { + pub Confidence: u8, + pub Bytes: [u8; 42], +} +impl ::core::marker::Copy for WST_BUFFER_LINE {} +impl ::core::clone::Clone for WST_BUFFER_LINE { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Media/Multimedia/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/Multimedia/mod.rs new file mode 100644 index 000000000..24b30afe8 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/Multimedia/mod.rs @@ -0,0 +1,7660 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AVIBuildFilterA(lpszfilter : ::windows_sys::core::PSTR, cbfilter : i32, fsaving : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AVIBuildFilterW(lpszfilter : ::windows_sys::core::PWSTR, cbfilter : i32, fsaving : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIClearClipboard() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIFileAddRef(pfile : IAVIFile) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AVIFileCreateStreamA(pfile : IAVIFile, ppavi : *mut IAVIStream, psi : *const AVISTREAMINFOA) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AVIFileCreateStreamW(pfile : IAVIFile, ppavi : *mut IAVIStream, psi : *const AVISTREAMINFOW) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIFileEndRecord(pfile : IAVIFile) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIFileExit() -> ()); +::windows_targets::link!("avifil32.dll" "system" fn AVIFileGetStream(pfile : IAVIFile, ppavi : *mut IAVIStream, fcctype : u32, lparam : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIFileInfoA(pfile : IAVIFile, pfi : *mut AVIFILEINFOA, lsize : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIFileInfoW(pfile : IAVIFile, pfi : *mut AVIFILEINFOW, lsize : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIFileInit() -> ()); +::windows_targets::link!("avifil32.dll" "system" fn AVIFileOpenA(ppfile : *mut IAVIFile, szfile : ::windows_sys::core::PCSTR, umode : u32, lphandler : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIFileOpenW(ppfile : *mut IAVIFile, szfile : ::windows_sys::core::PCWSTR, umode : u32, lphandler : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIFileReadData(pfile : IAVIFile, ckid : u32, lpdata : *mut ::core::ffi::c_void, lpcbdata : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIFileRelease(pfile : IAVIFile) -> u32); +::windows_targets::link!("avifil32.dll" "system" fn AVIFileWriteData(pfile : IAVIFile, ckid : u32, lpdata : *const ::core::ffi::c_void, cbdata : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIGetFromClipboard(lppf : *mut IAVIFile) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIMakeCompressedStream(ppscompressed : *mut IAVIStream, ppssource : IAVIStream, lpoptions : *const AVICOMPRESSOPTIONS, pclsidhandler : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIMakeFileFromStreams(ppfile : *mut IAVIFile, nstreams : i32, papstreams : *const IAVIStream) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AVIMakeStreamFromClipboard(cfformat : u32, hglobal : super::super::Foundation:: HANDLE, ppstream : *mut IAVIStream) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIPutFileOnClipboard(pf : IAVIFile) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AVISaveA(szfile : ::windows_sys::core::PCSTR, pclsidhandler : *const ::windows_sys::core::GUID, lpfncallback : AVISAVECALLBACK, nstreams : i32, pfile : IAVIStream, lpoptions : *const AVICOMPRESSOPTIONS, ...) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AVISaveOptions(hwnd : super::super::Foundation:: HWND, uiflags : u32, nstreams : i32, ppavi : *const IAVIStream, plpoptions : *mut *mut AVICOMPRESSOPTIONS) -> isize); +::windows_targets::link!("avifil32.dll" "system" fn AVISaveOptionsFree(nstreams : i32, plpoptions : *const *const AVICOMPRESSOPTIONS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AVISaveVA(szfile : ::windows_sys::core::PCSTR, pclsidhandler : *const ::windows_sys::core::GUID, lpfncallback : AVISAVECALLBACK, nstreams : i32, ppavi : *const IAVIStream, plpoptions : *const *const AVICOMPRESSOPTIONS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AVISaveVW(szfile : ::windows_sys::core::PCWSTR, pclsidhandler : *const ::windows_sys::core::GUID, lpfncallback : AVISAVECALLBACK, nstreams : i32, ppavi : *const IAVIStream, plpoptions : *const *const AVICOMPRESSOPTIONS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AVISaveW(szfile : ::windows_sys::core::PCWSTR, pclsidhandler : *const ::windows_sys::core::GUID, lpfncallback : AVISAVECALLBACK, nstreams : i32, pfile : IAVIStream, lpoptions : *const AVICOMPRESSOPTIONS, ...) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamAddRef(pavi : IAVIStream) -> u32); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamBeginStreaming(pavi : IAVIStream, lstart : i32, lend : i32, lrate : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamCreate(ppavi : *mut IAVIStream, lparam1 : i32, lparam2 : i32, pclsidhandler : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamEndStreaming(pavi : IAVIStream) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamFindSample(pavi : IAVIStream, lpos : i32, lflags : i32) -> i32); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamGetFrame(pg : IGetFrame, lpos : i32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamGetFrameClose(pg : IGetFrame) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("avifil32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn AVIStreamGetFrameOpen(pavi : IAVIStream, lpbiwanted : *const super::super::Graphics::Gdi:: BITMAPINFOHEADER) -> IGetFrame); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AVIStreamInfoA(pavi : IAVIStream, psi : *mut AVISTREAMINFOA, lsize : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AVIStreamInfoW(pavi : IAVIStream, psi : *mut AVISTREAMINFOW, lsize : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamLength(pavi : IAVIStream) -> i32); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamOpenFromFileA(ppavi : *mut IAVIStream, szfile : ::windows_sys::core::PCSTR, fcctype : u32, lparam : i32, mode : u32, pclsidhandler : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamOpenFromFileW(ppavi : *mut IAVIStream, szfile : ::windows_sys::core::PCWSTR, fcctype : u32, lparam : i32, mode : u32, pclsidhandler : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamRead(pavi : IAVIStream, lstart : i32, lsamples : i32, lpbuffer : *mut ::core::ffi::c_void, cbbuffer : i32, plbytes : *mut i32, plsamples : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamReadData(pavi : IAVIStream, fcc : u32, lp : *mut ::core::ffi::c_void, lpcb : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamReadFormat(pavi : IAVIStream, lpos : i32, lpformat : *mut ::core::ffi::c_void, lpcbformat : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamRelease(pavi : IAVIStream) -> u32); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamSampleToTime(pavi : IAVIStream, lsample : i32) -> i32); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamSetFormat(pavi : IAVIStream, lpos : i32, lpformat : *const ::core::ffi::c_void, cbformat : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamStart(pavi : IAVIStream) -> i32); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamTimeToSample(pavi : IAVIStream, ltime : i32) -> i32); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamWrite(pavi : IAVIStream, lstart : i32, lsamples : i32, lpbuffer : *const ::core::ffi::c_void, cbbuffer : i32, dwflags : u32, plsampwritten : *mut i32, plbyteswritten : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn AVIStreamWriteData(pavi : IAVIStream, fcc : u32, lp : *const ::core::ffi::c_void, cb : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseDriver(hdriver : HDRVR, lparam1 : super::super::Foundation:: LPARAM, lparam2 : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +::windows_targets::link!("avifil32.dll" "system" fn CreateEditableStream(ppseditable : *mut IAVIStream, pssource : IAVIStream) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefDriverProc(dwdriveridentifier : usize, hdrvr : HDRVR, umsg : u32, lparam1 : super::super::Foundation:: LPARAM, lparam2 : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawDibBegin(hdd : isize, hdc : super::super::Graphics::Gdi:: HDC, dxdst : i32, dydst : i32, lpbi : *const super::super::Graphics::Gdi:: BITMAPINFOHEADER, dxsrc : i32, dysrc : i32, wflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawDibChangePalette(hdd : isize, istart : i32, ilen : i32, lppe : *const super::super::Graphics::Gdi:: PALETTEENTRY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawDibClose(hdd : isize) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawDibDraw(hdd : isize, hdc : super::super::Graphics::Gdi:: HDC, xdst : i32, ydst : i32, dxdst : i32, dydst : i32, lpbi : *const super::super::Graphics::Gdi:: BITMAPINFOHEADER, lpbits : *const ::core::ffi::c_void, xsrc : i32, ysrc : i32, dxsrc : i32, dysrc : i32, wflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawDibEnd(hdd : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn DrawDibGetBuffer(hdd : isize, lpbi : *mut super::super::Graphics::Gdi:: BITMAPINFOHEADER, dwsize : u32, dwflags : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn DrawDibGetPalette(hdd : isize) -> super::super::Graphics::Gdi:: HPALETTE); +::windows_targets::link!("msvfw32.dll" "system" fn DrawDibOpen() -> isize); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawDibProfileDisplay(lpbi : *const super::super::Graphics::Gdi:: BITMAPINFOHEADER) -> super::super::Foundation:: LRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawDibRealize(hdd : isize, hdc : super::super::Graphics::Gdi:: HDC, fbackground : super::super::Foundation:: BOOL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawDibSetPalette(hdd : isize, hpal : super::super::Graphics::Gdi:: HPALETTE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawDibStart(hdd : isize, rate : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawDibStop(hdd : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawDibTime(hdd : isize, lpddtime : *mut DRAWDIBTIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DriverCallback(dwcallback : usize, dwflags : u32, hdevice : HDRVR, dwmsg : u32, dwuser : usize, dwparam1 : usize, dwparam2 : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrvGetModuleHandle(hdriver : HDRVR) -> super::super::Foundation:: HMODULE); +::windows_targets::link!("avifil32.dll" "system" fn EditStreamClone(pavi : IAVIStream, ppresult : *mut IAVIStream) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn EditStreamCopy(pavi : IAVIStream, plstart : *mut i32, pllength : *mut i32, ppresult : *mut IAVIStream) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn EditStreamCut(pavi : IAVIStream, plstart : *mut i32, pllength : *mut i32, ppresult : *mut IAVIStream) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn EditStreamPaste(pavi : IAVIStream, plpos : *mut i32, pllength : *mut i32, pstream : IAVIStream, lstart : i32, lend : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EditStreamSetInfoA(pavi : IAVIStream, lpinfo : *const AVISTREAMINFOA, cbinfo : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avifil32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EditStreamSetInfoW(pavi : IAVIStream, lpinfo : *const AVISTREAMINFOW, cbinfo : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn EditStreamSetNameA(pavi : IAVIStream, lpszname : ::windows_sys::core::PCSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("avifil32.dll" "system" fn EditStreamSetNameW(pavi : IAVIStream, lpszname : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDriverModuleHandle(hdriver : HDRVR) -> super::super::Foundation:: HMODULE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls_Dialogs"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls_Dialogs\"`"] fn GetOpenFileNamePreviewA(lpofn : *mut super::super::UI::Controls::Dialogs:: OPENFILENAMEA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls_Dialogs"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls_Dialogs\"`"] fn GetOpenFileNamePreviewW(lpofn : *mut super::super::UI::Controls::Dialogs:: OPENFILENAMEW) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls_Dialogs"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls_Dialogs\"`"] fn GetSaveFileNamePreviewA(lpofn : *mut super::super::UI::Controls::Dialogs:: OPENFILENAMEA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls_Dialogs"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls_Dialogs\"`"] fn GetSaveFileNamePreviewW(lpofn : *mut super::super::UI::Controls::Dialogs:: OPENFILENAMEW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ICClose(hic : HIC) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("msvfw32.dll" "cdecl" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ICCompress(hic : HIC, dwflags : u32, lpbioutput : *const super::super::Graphics::Gdi:: BITMAPINFOHEADER, lpdata : *mut ::core::ffi::c_void, lpbiinput : *const super::super::Graphics::Gdi:: BITMAPINFOHEADER, lpbits : *const ::core::ffi::c_void, lpckid : *mut u32, lpdwflags : *mut u32, lframenum : i32, dwframesize : u32, dwquality : u32, lpbiprev : *const super::super::Graphics::Gdi:: BITMAPINFOHEADER, lpprev : *const ::core::ffi::c_void) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ICCompressorChoose(hwnd : super::super::Foundation:: HWND, uiflags : u32, pvin : *const ::core::ffi::c_void, lpdata : *const ::core::ffi::c_void, pc : *mut COMPVARS, lpsztitle : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ICCompressorFree(pc : *const COMPVARS) -> ()); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("msvfw32.dll" "cdecl" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ICDecompress(hic : HIC, dwflags : u32, lpbiformat : *const super::super::Graphics::Gdi:: BITMAPINFOHEADER, lpdata : *const ::core::ffi::c_void, lpbi : *const super::super::Graphics::Gdi:: BITMAPINFOHEADER, lpbits : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("msvfw32.dll" "cdecl" fn ICDraw(hic : HIC, dwflags : u32, lpformat : *const ::core::ffi::c_void, lpdata : *const ::core::ffi::c_void, cbdata : u32, ltime : i32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("msvfw32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ICDrawBegin(hic : HIC, dwflags : u32, hpal : super::super::Graphics::Gdi:: HPALETTE, hwnd : super::super::Foundation:: HWND, hdc : super::super::Graphics::Gdi:: HDC, xdst : i32, ydst : i32, dxdst : i32, dydst : i32, lpbi : *const super::super::Graphics::Gdi:: BITMAPINFOHEADER, xsrc : i32, ysrc : i32, dxsrc : i32, dysrc : i32, dwrate : u32, dwscale : u32) -> u32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ICGetDisplayFormat(hic : HIC, lpbiin : *const super::super::Graphics::Gdi:: BITMAPINFOHEADER, lpbiout : *mut super::super::Graphics::Gdi:: BITMAPINFOHEADER, bitdepth : i32, dx : i32, dy : i32) -> HIC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ICGetInfo(hic : HIC, picinfo : *mut ICINFO, cb : u32) -> super::super::Foundation:: LRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ICImageCompress(hic : HIC, uiflags : u32, lpbiin : *const super::super::Graphics::Gdi:: BITMAPINFO, lpbits : *const ::core::ffi::c_void, lpbiout : *const super::super::Graphics::Gdi:: BITMAPINFO, lquality : i32, plsize : *mut i32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ICImageDecompress(hic : HIC, uiflags : u32, lpbiin : *const super::super::Graphics::Gdi:: BITMAPINFO, lpbits : *const ::core::ffi::c_void, lpbiout : *const super::super::Graphics::Gdi:: BITMAPINFO) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ICInfo(fcctype : u32, fcchandler : u32, lpicinfo : *mut ICINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ICInstall(fcctype : u32, fcchandler : u32, lparam : super::super::Foundation:: LPARAM, szdesc : ::windows_sys::core::PCSTR, wflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ICLocate(fcctype : u32, fcchandler : u32, lpbiin : *const super::super::Graphics::Gdi:: BITMAPINFOHEADER, lpbiout : *const super::super::Graphics::Gdi:: BITMAPINFOHEADER, wflags : u16) -> HIC); +::windows_targets::link!("msvfw32.dll" "system" fn ICOpen(fcctype : u32, fcchandler : u32, wmode : u32) -> HIC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ICOpenFunction(fcctype : u32, fcchandler : u32, wmode : u32, lpfnhandler : super::super::Foundation:: FARPROC) -> HIC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ICRemove(fcctype : u32, fcchandler : u32, wflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ICSendMessage(hic : HIC, msg : u32, dw1 : usize, dw2 : usize) -> super::super::Foundation:: LRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ICSeqCompressFrame(pc : *const COMPVARS, uiflags : u32, lpbits : *const ::core::ffi::c_void, pfkey : *mut super::super::Foundation:: BOOL, plsize : *mut i32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ICSeqCompressFrameEnd(pc : *const COMPVARS) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("msvfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ICSeqCompressFrameStart(pc : *const COMPVARS, lpbiin : *const super::super::Graphics::Gdi:: BITMAPINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MCIWndCreateA(hwndparent : super::super::Foundation:: HWND, hinstance : super::super::Foundation:: HINSTANCE, dwstyle : u32, szfile : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MCIWndCreateW(hwndparent : super::super::Foundation:: HWND, hinstance : super::super::Foundation:: HINSTANCE, dwstyle : u32, szfile : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msvfw32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MCIWndRegisterClass() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenDriver(szdrivername : ::windows_sys::core::PCWSTR, szsectionname : ::windows_sys::core::PCWSTR, lparam2 : super::super::Foundation:: LPARAM) -> HDRVR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendDriverMessage(hdriver : HDRVR, message : u32, lparam1 : super::super::Foundation:: LPARAM, lparam2 : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +::windows_targets::link!("msvfw32.dll" "system" fn VideoForWindowsVersion() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avicap32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn capCreateCaptureWindowA(lpszwindowname : ::windows_sys::core::PCSTR, dwstyle : u32, x : i32, y : i32, nwidth : i32, nheight : i32, hwndparent : super::super::Foundation:: HWND, nid : i32) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avicap32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn capCreateCaptureWindowW(lpszwindowname : ::windows_sys::core::PCWSTR, dwstyle : u32, x : i32, y : i32, nwidth : i32, nheight : i32, hwndparent : super::super::Foundation:: HWND, nid : i32) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avicap32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn capGetDriverDescriptionA(wdriverindex : u32, lpszname : ::windows_sys::core::PSTR, cbname : i32, lpszver : ::windows_sys::core::PSTR, cbver : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avicap32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn capGetDriverDescriptionW(wdriverindex : u32, lpszname : ::windows_sys::core::PWSTR, cbname : i32, lpszver : ::windows_sys::core::PWSTR, cbver : i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winmm.dll" "system" fn joyGetDevCapsA(ujoyid : usize, pjc : *mut JOYCAPSA, cbjc : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn joyGetDevCapsW(ujoyid : usize, pjc : *mut JOYCAPSW, cbjc : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn joyGetNumDevs() -> u32); +::windows_targets::link!("winmm.dll" "system" fn joyGetPos(ujoyid : u32, pji : *mut JOYINFO) -> u32); +::windows_targets::link!("winmm.dll" "system" fn joyGetPosEx(ujoyid : u32, pji : *mut JOYINFOEX) -> u32); +::windows_targets::link!("winmm.dll" "system" fn joyGetThreshold(ujoyid : u32, puthreshold : *mut u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn joyReleaseCapture(ujoyid : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn joySetCapture(hwnd : super::super::Foundation:: HWND, ujoyid : u32, uperiod : u32, fchanged : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("winmm.dll" "system" fn joySetThreshold(ujoyid : u32, uthreshold : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mciDriverNotify(hwndcallback : super::super::Foundation:: HANDLE, wdeviceid : u32, ustatus : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winmm.dll" "system" fn mciDriverYield(wdeviceid : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mciFreeCommandResource(wtable : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winmm.dll" "system" fn mciGetCreatorTask(mciid : u32) -> super:: HTASK); +::windows_targets::link!("winmm.dll" "system" fn mciGetDeviceIDA(pszdevice : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mciGetDeviceIDFromElementIDA(dwelementid : u32, lpstrtype : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mciGetDeviceIDFromElementIDW(dwelementid : u32, lpstrtype : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mciGetDeviceIDW(pszdevice : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mciGetDriverData(wdeviceid : u32) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mciGetErrorStringA(mcierr : u32, psztext : ::windows_sys::core::PSTR, cchtext : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mciGetErrorStringW(mcierr : u32, psztext : ::windows_sys::core::PWSTR, cchtext : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winmm.dll" "system" fn mciGetYieldProc(mciid : u32, pdwyielddata : *const u32) -> YIELDPROC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mciLoadCommandResource(hinstance : super::super::Foundation:: HANDLE, lpresname : ::windows_sys::core::PCWSTR, wtype : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mciSendCommandA(mciid : u32, umsg : u32, dwparam1 : usize, dwparam2 : usize) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mciSendCommandW(mciid : u32, umsg : u32, dwparam1 : usize, dwparam2 : usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mciSendStringA(lpstrcommand : ::windows_sys::core::PCSTR, lpstrreturnstring : ::windows_sys::core::PSTR, ureturnlength : u32, hwndcallback : super::super::Foundation:: HWND) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mciSendStringW(lpstrcommand : ::windows_sys::core::PCWSTR, lpstrreturnstring : ::windows_sys::core::PWSTR, ureturnlength : u32, hwndcallback : super::super::Foundation:: HWND) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mciSetDriverData(wdeviceid : u32, dwdata : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mciSetYieldProc(mciid : u32, fpyieldproc : YIELDPROC, dwyielddata : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winmm.dll" "system" fn mmDrvInstall(hdriver : HDRVR, wszdrventry : ::windows_sys::core::PCWSTR, drvmessage : DRIVERMSGPROC, wflags : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mmGetCurrentTask() -> u32); +::windows_targets::link!("winmm.dll" "system" fn mmTaskBlock(h : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mmTaskCreate(lpfn : LPTASKCALLBACK, lph : *mut super::super::Foundation:: HANDLE, dwinst : usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mmTaskSignal(h : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winmm.dll" "system" fn mmTaskYield() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mmioAdvance(hmmio : HMMIO, pmmioinfo : *const MMIOINFO, fuadvance : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mmioAscend(hmmio : HMMIO, pmmcki : *const MMCKINFO, fuascend : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mmioClose(hmmio : HMMIO, fuclose : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mmioCreateChunk(hmmio : HMMIO, pmmcki : *const MMCKINFO, fucreate : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mmioDescend(hmmio : HMMIO, pmmcki : *mut MMCKINFO, pmmckiparent : *const MMCKINFO, fudescend : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mmioFlush(hmmio : HMMIO, fuflush : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mmioGetInfo(hmmio : HMMIO, pmmioinfo : *mut MMIOINFO, fuinfo : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mmioInstallIOProcA(fccioproc : u32, pioproc : LPMMIOPROC, dwflags : u32) -> LPMMIOPROC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mmioInstallIOProcW(fccioproc : u32, pioproc : LPMMIOPROC, dwflags : u32) -> LPMMIOPROC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mmioOpenA(pszfilename : ::windows_sys::core::PSTR, pmmioinfo : *mut MMIOINFO, fdwopen : u32) -> HMMIO); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mmioOpenW(pszfilename : ::windows_sys::core::PWSTR, pmmioinfo : *mut MMIOINFO, fdwopen : u32) -> HMMIO); +::windows_targets::link!("winmm.dll" "system" fn mmioRead(hmmio : HMMIO, pch : *mut i8, cch : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mmioRenameA(pszfilename : ::windows_sys::core::PCSTR, psznewfilename : ::windows_sys::core::PCSTR, pmmioinfo : *const MMIOINFO, fdwrename : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mmioRenameW(pszfilename : ::windows_sys::core::PCWSTR, psznewfilename : ::windows_sys::core::PCWSTR, pmmioinfo : *const MMIOINFO, fdwrename : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mmioSeek(hmmio : HMMIO, loffset : i32, iorigin : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mmioSendMessage(hmmio : HMMIO, umsg : u32, lparam1 : super::super::Foundation:: LPARAM, lparam2 : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +::windows_targets::link!("winmm.dll" "system" fn mmioSetBuffer(hmmio : HMMIO, pchbuffer : ::windows_sys::core::PSTR, cchbuffer : i32, fubuffer : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winmm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn mmioSetInfo(hmmio : HMMIO, pmmioinfo : *const MMIOINFO, fuinfo : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mmioStringToFOURCCA(sz : ::windows_sys::core::PCSTR, uflags : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mmioStringToFOURCCW(sz : ::windows_sys::core::PCWSTR, uflags : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn mmioWrite(hmmio : HMMIO, pch : ::windows_sys::core::PCSTR, cch : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-mm-misc-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn sndOpenSound(eventname : ::windows_sys::core::PCWSTR, appname : ::windows_sys::core::PCWSTR, flags : i32, filehandle : *mut super::super::Foundation:: HANDLE) -> i32); +pub type IAVIEditStream = *mut ::core::ffi::c_void; +pub type IAVIFile = *mut ::core::ffi::c_void; +pub type IAVIPersistFile = *mut ::core::ffi::c_void; +pub type IAVIStream = *mut ::core::ffi::c_void; +pub type IAVIStreaming = *mut ::core::ffi::c_void; +pub type IGetFrame = *mut ::core::ffi::c_void; +pub const ACMDM_BASE: u32 = 24576u32; +pub const ACM_MPEG_COPYRIGHT: u32 = 2u32; +pub const ACM_MPEG_DUALCHANNEL: u32 = 4u32; +pub const ACM_MPEG_ID_MPEG1: u32 = 16u32; +pub const ACM_MPEG_JOINTSTEREO: u32 = 2u32; +pub const ACM_MPEG_LAYER1: u32 = 1u32; +pub const ACM_MPEG_LAYER2: u32 = 2u32; +pub const ACM_MPEG_LAYER3: u32 = 4u32; +pub const ACM_MPEG_ORIGINALHOME: u32 = 4u32; +pub const ACM_MPEG_PRIVATEBIT: u32 = 1u32; +pub const ACM_MPEG_PROTECTIONBIT: u32 = 8u32; +pub const ACM_MPEG_SINGLECHANNEL: u32 = 8u32; +pub const ACM_MPEG_STEREO: u32 = 1u32; +pub const AUXDM_GETDEVCAPS: u32 = 4u32; +pub const AUXDM_GETNUMDEVS: u32 = 3u32; +pub const AUXDM_GETVOLUME: u32 = 5u32; +pub const AUXDM_SETVOLUME: u32 = 6u32; +pub const AUXM_INIT: u32 = 100u32; +pub const AUXM_INIT_EX: u32 = 104u32; +pub const AVICOMPRESSF_DATARATE: u32 = 2u32; +pub const AVICOMPRESSF_INTERLEAVE: u32 = 1u32; +pub const AVICOMPRESSF_KEYFRAMES: u32 = 4u32; +pub const AVICOMPRESSF_VALID: u32 = 8u32; +pub const AVIERR_OK: i32 = 0i32; +pub const AVIFILECAPS_ALLKEYFRAMES: u32 = 16u32; +pub const AVIFILECAPS_CANREAD: u32 = 1u32; +pub const AVIFILECAPS_CANWRITE: u32 = 2u32; +pub const AVIFILECAPS_NOCOMPRESSION: u32 = 32u32; +pub const AVIFILEHANDLER_CANACCEPTNONRGB: u32 = 4u32; +pub const AVIFILEHANDLER_CANREAD: u32 = 1u32; +pub const AVIFILEHANDLER_CANWRITE: u32 = 2u32; +pub const AVIFILEINFO_COPYRIGHTED: u32 = 131072u32; +pub const AVIFILEINFO_HASINDEX: u32 = 16u32; +pub const AVIFILEINFO_ISINTERLEAVED: u32 = 256u32; +pub const AVIFILEINFO_MUSTUSEINDEX: u32 = 32u32; +pub const AVIFILEINFO_WASCAPTUREFILE: u32 = 65536u32; +pub const AVIGETFRAMEF_BESTDISPLAYFMT: u32 = 1u32; +pub const AVIIF_CONTROLFRAME: i32 = 512i32; +pub const AVIIF_TWOCC: i32 = 2i32; +pub const AVISTREAMINFO_DISABLED: u32 = 1u32; +pub const AVISTREAMINFO_FORMATCHANGES: u32 = 65536u32; +pub const AVISTREAMREAD_CONVENIENT: i32 = -1i32; +pub const AVSTREAMMASTER_AUDIO: u32 = 0u32; +pub const AVSTREAMMASTER_NONE: u32 = 1u32; +pub const BI_1632: u32 = 842217009u32; +pub const CLSID_AVIFile: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00020000_0000_0000_c000_000000000046); +pub const CLSID_AVISimpleUnMarshal: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00020009_0000_0000_c000_000000000046); +pub const CONTROLCALLBACK_CAPTURING: u32 = 2u32; +pub const CONTROLCALLBACK_PREROLL: u32 = 1u32; +pub const CRYSTAL_NET_SFM_CODEC: u32 = 1u32; +pub const DCB_EVENT: u32 = 5u32; +pub const DCB_FUNCTION: u32 = 3u32; +pub const DCB_NOSWITCH: u32 = 8u32; +pub const DCB_NULL: u32 = 0u32; +pub const DCB_TASK: u32 = 2u32; +pub const DCB_TYPEMASK: u32 = 7u32; +pub const DCB_WINDOW: u32 = 1u32; +pub const DDF_0001: u32 = 1u32; +pub const DDF_2000: u32 = 8192u32; +pub const DDF_ANIMATE: u32 = 32u32; +pub const DDF_BACKGROUNDPAL: u32 = 512u32; +pub const DDF_BUFFER: u32 = 64u32; +pub const DDF_DONTDRAW: u32 = 16u32; +pub const DDF_FULLSCREEN: u32 = 256u32; +pub const DDF_HALFTONE: u32 = 4096u32; +pub const DDF_HURRYUP: u32 = 2048u32; +pub const DDF_JUSTDRAWIT: u32 = 128u32; +pub const DDF_NOTKEYFRAME: u32 = 1024u32; +pub const DDF_PREROLL: u32 = 16u32; +pub const DDF_SAME_DIB: u32 = 8u32; +pub const DDF_SAME_DRAW: u32 = 8u32; +pub const DDF_SAME_HDC: u32 = 4u32; +pub const DDF_SAME_SIZE: u32 = 8u32; +pub const DDF_UPDATE: u32 = 2u32; +pub const DLG_ACMFILTERCHOOSE_ID: u32 = 71u32; +pub const DLG_ACMFORMATCHOOSE_ID: u32 = 70u32; +pub const DRIVERS_SECTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRIVERS32"); +pub const DRVCNF_CANCEL: u32 = 0u32; +pub const DRVCNF_OK: u32 = 1u32; +pub const DRVCNF_RESTART: u32 = 2u32; +pub const DRVM_ADD_THRU: u32 = 257u32; +pub const DRVM_DISABLE: u32 = 102u32; +pub const DRVM_ENABLE: u32 = 103u32; +pub const DRVM_EXIT: u32 = 101u32; +pub const DRVM_INIT: u32 = 100u32; +pub const DRVM_INIT_EX: u32 = 104u32; +pub const DRVM_IOCTL: u32 = 256u32; +pub const DRVM_IOCTL_CMD_SYSTEM: i32 = -2147483648i32; +pub const DRVM_IOCTL_CMD_USER: i32 = 0i32; +pub const DRVM_IOCTL_LAST: u32 = 261u32; +pub const DRVM_MAPPER_CONSOLEVOICECOM_GET: u32 = 8215u32; +pub const DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY: u32 = 1u32; +pub const DRVM_MAPPER_PREFERRED_GET: u32 = 8213u32; +pub const DRVM_MAPPER_RECONFIGURE: u32 = 8193u32; +pub const DRVM_REMOVE_THRU: u32 = 258u32; +pub const DRVM_USER: u32 = 16384u32; +pub const DRV_CANCEL: u32 = 0u32; +pub const DRV_CLOSE: u32 = 4u32; +pub const DRV_CONFIGURE: u32 = 7u32; +pub const DRV_DISABLE: u32 = 5u32; +pub const DRV_ENABLE: u32 = 2u32; +pub const DRV_EXITSESSION: u32 = 11u32; +pub const DRV_FREE: u32 = 6u32; +pub const DRV_INSTALL: u32 = 9u32; +pub const DRV_LOAD: u32 = 1u32; +pub const DRV_MCI_FIRST: u32 = 2048u32; +pub const DRV_MCI_LAST: u32 = 6143u32; +pub const DRV_OK: u32 = 1u32; +pub const DRV_OPEN: u32 = 3u32; +pub const DRV_PNPINSTALL: u32 = 2059u32; +pub const DRV_POWER: u32 = 15u32; +pub const DRV_QUERYCONFIGURE: u32 = 8u32; +pub const DRV_QUERYDEVICEINTERFACE: u32 = 2060u32; +pub const DRV_QUERYDEVICEINTERFACESIZE: u32 = 2061u32; +pub const DRV_QUERYDEVNODE: u32 = 2050u32; +pub const DRV_QUERYFUNCTIONINSTANCEID: u32 = 2065u32; +pub const DRV_QUERYFUNCTIONINSTANCEIDSIZE: u32 = 2066u32; +pub const DRV_QUERYIDFROMSTRINGID: u32 = 2064u32; +pub const DRV_QUERYMAPPABLE: u32 = 2053u32; +pub const DRV_QUERYMODULE: u32 = 2057u32; +pub const DRV_QUERYSTRINGID: u32 = 2062u32; +pub const DRV_QUERYSTRINGIDSIZE: u32 = 2063u32; +pub const DRV_REMOVE: u32 = 10u32; +pub const DRV_RESERVED: u32 = 2048u32; +pub const DRV_RESTART: u32 = 2u32; +pub const DRV_USER: u32 = 16384u32; +pub const DVM_CONFIGURE_END: u32 = 8191u32; +pub const DVM_CONFIGURE_START: u32 = 4096u32; +pub const DVM_DST_RECT: u32 = 4101u32; +pub const DVM_FORMAT: u32 = 4098u32; +pub const DVM_PALETTE: u32 = 4097u32; +pub const DVM_PALETTERGB555: u32 = 4099u32; +pub const DVM_SRC_RECT: u32 = 4100u32; +pub const DVM_USER: u32 = 16384u32; +pub const DV_ERR_13: u32 = 16u32; +pub const DV_ERR_ALLOCATED: u32 = 19u32; +pub const DV_ERR_BADDEVICEID: u32 = 20u32; +pub const DV_ERR_BADERRNUM: u32 = 22u32; +pub const DV_ERR_BADFORMAT: u32 = 2u32; +pub const DV_ERR_BADINSTALL: u32 = 8u32; +pub const DV_ERR_BASE: u32 = 1u32; +pub const DV_ERR_CONFIG1: u32 = 13u32; +pub const DV_ERR_CONFIG2: u32 = 14u32; +pub const DV_ERR_CREATEPALETTE: u32 = 9u32; +pub const DV_ERR_DMA_CONFLICT: u32 = 26u32; +pub const DV_ERR_FLAGS: u32 = 15u32; +pub const DV_ERR_INT_CONFLICT: u32 = 27u32; +pub const DV_ERR_INVALHANDLE: u32 = 21u32; +pub const DV_ERR_IO_CONFLICT: u32 = 25u32; +pub const DV_ERR_LASTERROR: u32 = 28u32; +pub const DV_ERR_MEM_CONFLICT: u32 = 24u32; +pub const DV_ERR_NOMEM: u32 = 18u32; +pub const DV_ERR_NONSPECIFIC: u32 = 1u32; +pub const DV_ERR_NOTDETECTED: u32 = 7u32; +pub const DV_ERR_NOTSUPPORTED: u32 = 17u32; +pub const DV_ERR_NO_BUFFERS: u32 = 23u32; +pub const DV_ERR_OK: u32 = 0u32; +pub const DV_ERR_PARAM1: u32 = 11u32; +pub const DV_ERR_PARAM2: u32 = 12u32; +pub const DV_ERR_PROTECT_ONLY: u32 = 28u32; +pub const DV_ERR_SIZEFIELD: u32 = 10u32; +pub const DV_ERR_STILLPLAYING: u32 = 3u32; +pub const DV_ERR_SYNC: u32 = 5u32; +pub const DV_ERR_TOOMANYCHANNELS: u32 = 6u32; +pub const DV_ERR_UNPREPARED: u32 = 4u32; +pub const DV_ERR_USER_MSG: u32 = 1001u32; +pub const DV_VM_CLOSE: u32 = 977u32; +pub const DV_VM_DATA: u32 = 978u32; +pub const DV_VM_ERROR: u32 = 979u32; +pub const DV_VM_OPEN: u32 = 976u32; +pub const FACILITY_NS: u32 = 13u32; +pub const FACILITY_NS_WIN32: u32 = 7u32; +pub const FIND_ANY: i32 = 32i32; +pub const FIND_DIR: i32 = 15i32; +pub const FIND_FORMAT: i32 = 64i32; +pub const FIND_FROM_START: i32 = 8i32; +pub const FIND_INDEX: i32 = 16384i32; +pub const FIND_KEY: i32 = 16i32; +pub const FIND_LENGTH: i32 = 4096i32; +pub const FIND_NEXT: i32 = 1i32; +pub const FIND_OFFSET: i32 = 8192i32; +pub const FIND_POS: i32 = 0i32; +pub const FIND_PREV: i32 = 4i32; +pub const FIND_RET: i32 = 61440i32; +pub const FIND_SIZE: i32 = 12288i32; +pub const FIND_TYPE: i32 = 240i32; +pub const ICCOMPRESSFRAMES_PADDING: u32 = 1u32; +pub const ICCOMPRESS_KEYFRAME: i32 = 1i32; +pub const ICDECOMPRESS_HURRYUP: i32 = -2147483648i32; +pub const ICDECOMPRESS_NOTKEYFRAME: i32 = 134217728i32; +pub const ICDECOMPRESS_NULLFRAME: i32 = 268435456i32; +pub const ICDECOMPRESS_PREROLL: i32 = 536870912i32; +pub const ICDECOMPRESS_UPDATE: i32 = 1073741824i32; +pub const ICDRAW_ANIMATE: i32 = 8i32; +pub const ICDRAW_BUFFER: i32 = 256i32; +pub const ICDRAW_CONTINUE: i32 = 16i32; +pub const ICDRAW_FULLSCREEN: i32 = 2i32; +pub const ICDRAW_HDC: i32 = 4i32; +pub const ICDRAW_HURRYUP: i32 = -2147483648i32; +pub const ICDRAW_MEMORYDC: i32 = 32i32; +pub const ICDRAW_NOTKEYFRAME: i32 = 134217728i32; +pub const ICDRAW_NULLFRAME: i32 = 268435456i32; +pub const ICDRAW_PREROLL: i32 = 536870912i32; +pub const ICDRAW_QUERY: i32 = 1i32; +pub const ICDRAW_RENDER: i32 = 128i32; +pub const ICDRAW_UPDATE: i32 = 1073741824i32; +pub const ICDRAW_UPDATING: i32 = 64i32; +pub const ICERR_ABORT: i32 = -10i32; +pub const ICERR_BADBITDEPTH: i32 = -200i32; +pub const ICERR_BADFLAGS: i32 = -5i32; +pub const ICERR_BADFORMAT: i32 = -2i32; +pub const ICERR_BADHANDLE: i32 = -8i32; +pub const ICERR_BADIMAGESIZE: i32 = -201i32; +pub const ICERR_BADPARAM: i32 = -6i32; +pub const ICERR_BADSIZE: i32 = -7i32; +pub const ICERR_CANTUPDATE: i32 = -9i32; +pub const ICERR_CUSTOM: i32 = -400i32; +pub const ICERR_DONTDRAW: i32 = 1i32; +pub const ICERR_ERROR: i32 = -100i32; +pub const ICERR_GOTOKEYFRAME: i32 = 3i32; +pub const ICERR_INTERNAL: i32 = -4i32; +pub const ICERR_MEMORY: i32 = -3i32; +pub const ICERR_NEWPALETTE: i32 = 2i32; +pub const ICERR_OK: i32 = 0i32; +pub const ICERR_STOPDRAWING: i32 = 4i32; +pub const ICERR_UNSUPPORTED: i32 = -1i32; +pub const ICINSTALL_DRIVER: u32 = 2u32; +pub const ICINSTALL_DRIVERW: u32 = 32770u32; +pub const ICINSTALL_FUNCTION: u32 = 1u32; +pub const ICINSTALL_HDRV: u32 = 4u32; +pub const ICINSTALL_UNICODE: u32 = 32768u32; +pub const ICMF_ABOUT_QUERY: u32 = 1u32; +pub const ICMF_CHOOSE_ALLCOMPRESSORS: u32 = 8u32; +pub const ICMF_CHOOSE_DATARATE: u32 = 2u32; +pub const ICMF_CHOOSE_KEYFRAME: u32 = 1u32; +pub const ICMF_CHOOSE_PREVIEW: u32 = 4u32; +pub const ICMF_COMPVARS_VALID: u32 = 1u32; +pub const ICMF_CONFIGURE_QUERY: u32 = 1u32; +pub const ICMODE_COMPRESS: u32 = 1u32; +pub const ICMODE_DECOMPRESS: u32 = 2u32; +pub const ICMODE_DRAW: u32 = 8u32; +pub const ICMODE_FASTCOMPRESS: u32 = 5u32; +pub const ICMODE_FASTDECOMPRESS: u32 = 3u32; +pub const ICMODE_INTERNALF_FUNCTION32: u32 = 32768u32; +pub const ICMODE_INTERNALF_MASK: u32 = 32768u32; +pub const ICMODE_QUERY: u32 = 4u32; +pub const ICM_ABOUT: u32 = 20491u32; +pub const ICM_COMPRESS: u32 = 16392u32; +pub const ICM_COMPRESS_BEGIN: u32 = 16391u32; +pub const ICM_COMPRESS_END: u32 = 16393u32; +pub const ICM_COMPRESS_FRAMES: u32 = 16455u32; +pub const ICM_COMPRESS_FRAMES_INFO: u32 = 16454u32; +pub const ICM_COMPRESS_GET_FORMAT: u32 = 16388u32; +pub const ICM_COMPRESS_GET_SIZE: u32 = 16389u32; +pub const ICM_COMPRESS_QUERY: u32 = 16390u32; +pub const ICM_CONFIGURE: u32 = 20490u32; +pub const ICM_DECOMPRESS: u32 = 16397u32; +pub const ICM_DECOMPRESSEX: u32 = 16446u32; +pub const ICM_DECOMPRESSEX_BEGIN: u32 = 16444u32; +pub const ICM_DECOMPRESSEX_END: u32 = 16447u32; +pub const ICM_DECOMPRESSEX_QUERY: u32 = 16445u32; +pub const ICM_DECOMPRESS_BEGIN: u32 = 16396u32; +pub const ICM_DECOMPRESS_END: u32 = 16398u32; +pub const ICM_DECOMPRESS_GET_FORMAT: u32 = 16394u32; +pub const ICM_DECOMPRESS_GET_PALETTE: u32 = 16414u32; +pub const ICM_DECOMPRESS_QUERY: u32 = 16395u32; +pub const ICM_DECOMPRESS_SET_PALETTE: u32 = 16413u32; +pub const ICM_DRAW: u32 = 16417u32; +pub const ICM_DRAW_BEGIN: u32 = 16399u32; +pub const ICM_DRAW_BITS: u32 = 16404u32; +pub const ICM_DRAW_CHANGEPALETTE: u32 = 16435u32; +pub const ICM_DRAW_END: u32 = 16405u32; +pub const ICM_DRAW_FLUSH: u32 = 16421u32; +pub const ICM_DRAW_GETTIME: u32 = 16416u32; +pub const ICM_DRAW_GET_PALETTE: u32 = 16400u32; +pub const ICM_DRAW_IDLE: u32 = 16436u32; +pub const ICM_DRAW_QUERY: u32 = 16415u32; +pub const ICM_DRAW_REALIZE: u32 = 16420u32; +pub const ICM_DRAW_RENDERBUFFER: u32 = 16422u32; +pub const ICM_DRAW_SETTIME: u32 = 16419u32; +pub const ICM_DRAW_START: u32 = 16402u32; +pub const ICM_DRAW_START_PLAY: u32 = 16423u32; +pub const ICM_DRAW_STOP: u32 = 16403u32; +pub const ICM_DRAW_STOP_PLAY: u32 = 16424u32; +pub const ICM_DRAW_SUGGESTFORMAT: u32 = 16434u32; +pub const ICM_DRAW_UPDATE: u32 = 16401u32; +pub const ICM_DRAW_WINDOW: u32 = 16418u32; +pub const ICM_ENUMFORMATS: u32 = 20501u32; +pub const ICM_GET: u32 = 20521u32; +pub const ICM_GETBUFFERSWANTED: u32 = 16425u32; +pub const ICM_GETDEFAULTKEYFRAMERATE: u32 = 16426u32; +pub const ICM_GETDEFAULTQUALITY: u32 = 20510u32; +pub const ICM_GETERRORTEXT: u32 = 20492u32; +pub const ICM_GETFORMATNAME: u32 = 20500u32; +pub const ICM_GETINFO: u32 = 20482u32; +pub const ICM_GETQUALITY: u32 = 20511u32; +pub const ICM_GETSTATE: u32 = 20480u32; +pub const ICM_RESERVED: u32 = 20480u32; +pub const ICM_RESERVED_HIGH: u32 = 24576u32; +pub const ICM_RESERVED_LOW: u32 = 20480u32; +pub const ICM_SET: u32 = 20520u32; +pub const ICM_SETQUALITY: u32 = 20512u32; +pub const ICM_SETSTATE: u32 = 20481u32; +pub const ICM_SET_STATUS_PROC: u32 = 16456u32; +pub const ICM_USER: u32 = 16384u32; +pub const ICQUALITY_DEFAULT: i32 = -1i32; +pub const ICQUALITY_HIGH: u32 = 10000u32; +pub const ICQUALITY_LOW: u32 = 0u32; +pub const ICSTATUS_END: u32 = 2u32; +pub const ICSTATUS_ERROR: u32 = 3u32; +pub const ICSTATUS_START: u32 = 0u32; +pub const ICSTATUS_STATUS: u32 = 1u32; +pub const ICSTATUS_YIELD: u32 = 4u32; +pub const ICVERSION: u32 = 260u32; +pub const IDD_ACMFILTERCHOOSE_BTN_DELNAME: u32 = 104u32; +pub const IDD_ACMFILTERCHOOSE_BTN_HELP: u32 = 9u32; +pub const IDD_ACMFILTERCHOOSE_BTN_SETNAME: u32 = 103u32; +pub const IDD_ACMFILTERCHOOSE_CMB_CUSTOM: u32 = 100u32; +pub const IDD_ACMFILTERCHOOSE_CMB_FILTER: u32 = 102u32; +pub const IDD_ACMFILTERCHOOSE_CMB_FILTERTAG: u32 = 101u32; +pub const IDD_ACMFORMATCHOOSE_BTN_DELNAME: u32 = 104u32; +pub const IDD_ACMFORMATCHOOSE_BTN_HELP: u32 = 9u32; +pub const IDD_ACMFORMATCHOOSE_BTN_SETNAME: u32 = 103u32; +pub const IDD_ACMFORMATCHOOSE_CMB_CUSTOM: u32 = 100u32; +pub const IDD_ACMFORMATCHOOSE_CMB_FORMAT: u32 = 102u32; +pub const IDD_ACMFORMATCHOOSE_CMB_FORMATTAG: u32 = 101u32; +pub const IDS_CAP_AUDIO_DROP_COMPERROR: u32 = 442u32; +pub const IDS_CAP_AUDIO_DROP_ERROR: u32 = 441u32; +pub const IDS_CAP_AVI_DRAWDIB_ERROR: u32 = 439u32; +pub const IDS_CAP_AVI_INIT_ERROR: u32 = 433u32; +pub const IDS_CAP_BEGIN: u32 = 300u32; +pub const IDS_CAP_CANTOPEN: u32 = 409u32; +pub const IDS_CAP_COMPRESSOR_ERROR: u32 = 440u32; +pub const IDS_CAP_DEFAVIEXT: u32 = 407u32; +pub const IDS_CAP_DEFPALEXT: u32 = 408u32; +pub const IDS_CAP_DRIVER_ERROR: u32 = 418u32; +pub const IDS_CAP_END: u32 = 301u32; +pub const IDS_CAP_ERRORDIBSAVE: u32 = 406u32; +pub const IDS_CAP_ERRORPALOPEN: u32 = 404u32; +pub const IDS_CAP_ERRORPALSAVE: u32 = 405u32; +pub const IDS_CAP_FILEEXISTS: u32 = 403u32; +pub const IDS_CAP_FILE_OPEN_ERROR: u32 = 429u32; +pub const IDS_CAP_FILE_WRITE_ERROR: u32 = 430u32; +pub const IDS_CAP_INFO: u32 = 401u32; +pub const IDS_CAP_MCI_CANT_STEP_ERROR: u32 = 437u32; +pub const IDS_CAP_MCI_CONTROL_ERROR: u32 = 436u32; +pub const IDS_CAP_NODISKSPACE: u32 = 415u32; +pub const IDS_CAP_NO_AUDIO_CAP_ERROR: u32 = 438u32; +pub const IDS_CAP_NO_FRAME_CAP_ERROR: u32 = 434u32; +pub const IDS_CAP_NO_PALETTE_WARN: u32 = 435u32; +pub const IDS_CAP_OUTOFMEM: u32 = 402u32; +pub const IDS_CAP_READONLYFILE: u32 = 413u32; +pub const IDS_CAP_RECORDING_ERROR: u32 = 431u32; +pub const IDS_CAP_RECORDING_ERROR2: u32 = 432u32; +pub const IDS_CAP_SAVEASPERCENT: u32 = 417u32; +pub const IDS_CAP_SEQ_MSGSTART: u32 = 410u32; +pub const IDS_CAP_SEQ_MSGSTOP: u32 = 411u32; +pub const IDS_CAP_SETFILESIZE: u32 = 416u32; +pub const IDS_CAP_STAT_CAP_AUDIO: u32 = 509u32; +pub const IDS_CAP_STAT_CAP_FINI: u32 = 503u32; +pub const IDS_CAP_STAT_CAP_INIT: u32 = 502u32; +pub const IDS_CAP_STAT_CAP_L_FRAMES: u32 = 508u32; +pub const IDS_CAP_STAT_FRAMESDROPPED: u32 = 513u32; +pub const IDS_CAP_STAT_I_FRAMES: u32 = 506u32; +pub const IDS_CAP_STAT_LIVE_MODE: u32 = 500u32; +pub const IDS_CAP_STAT_L_FRAMES: u32 = 507u32; +pub const IDS_CAP_STAT_OPTPAL_BUILD: u32 = 505u32; +pub const IDS_CAP_STAT_OVERLAY_MODE: u32 = 501u32; +pub const IDS_CAP_STAT_PALETTE_BUILD: u32 = 504u32; +pub const IDS_CAP_STAT_VIDEOAUDIO: u32 = 511u32; +pub const IDS_CAP_STAT_VIDEOCURRENT: u32 = 510u32; +pub const IDS_CAP_STAT_VIDEOONLY: u32 = 512u32; +pub const IDS_CAP_VIDEDITERR: u32 = 412u32; +pub const IDS_CAP_VIDEO_ADD_ERROR: u32 = 427u32; +pub const IDS_CAP_VIDEO_ALLOC_ERROR: u32 = 425u32; +pub const IDS_CAP_VIDEO_OPEN_ERROR: u32 = 424u32; +pub const IDS_CAP_VIDEO_PREPARE_ERROR: u32 = 426u32; +pub const IDS_CAP_VIDEO_SIZE_ERROR: u32 = 428u32; +pub const IDS_CAP_WAVE_ADD_ERROR: u32 = 422u32; +pub const IDS_CAP_WAVE_ALLOC_ERROR: u32 = 420u32; +pub const IDS_CAP_WAVE_OPEN_ERROR: u32 = 419u32; +pub const IDS_CAP_WAVE_PREPARE_ERROR: u32 = 421u32; +pub const IDS_CAP_WAVE_SIZE_ERROR: u32 = 423u32; +pub const IDS_CAP_WRITEERROR: u32 = 414u32; +pub const JDD_CONFIGCHANGED: u32 = 2307u32; +pub const JDD_GETDEVCAPS: u32 = 2050u32; +pub const JDD_GETNUMDEVS: u32 = 2049u32; +pub const JDD_GETPOS: u32 = 2305u32; +pub const JDD_GETPOSEX: u32 = 2308u32; +pub const JDD_SETCALIBRATION: u32 = 2306u32; +pub const JIFMK_00: u32 = 65280u32; +pub const JIFMK_APP0: u32 = 65504u32; +pub const JIFMK_APP1: u32 = 65505u32; +pub const JIFMK_APP2: u32 = 65506u32; +pub const JIFMK_APP3: u32 = 65507u32; +pub const JIFMK_APP4: u32 = 65508u32; +pub const JIFMK_APP5: u32 = 65509u32; +pub const JIFMK_APP6: u32 = 65510u32; +pub const JIFMK_APP7: u32 = 65511u32; +pub const JIFMK_COM: u32 = 65534u32; +pub const JIFMK_DAC: u32 = 65484u32; +pub const JIFMK_DHP: u32 = 65502u32; +pub const JIFMK_DHT: u32 = 65476u32; +pub const JIFMK_DNL: u32 = 65500u32; +pub const JIFMK_DQT: u32 = 65499u32; +pub const JIFMK_DRI: u32 = 65501u32; +pub const JIFMK_EOI: u32 = 65497u32; +pub const JIFMK_EXP: u32 = 65503u32; +pub const JIFMK_FF: u32 = 65535u32; +pub const JIFMK_JPG: u32 = 65480u32; +pub const JIFMK_JPG0: u32 = 65520u32; +pub const JIFMK_JPG1: u32 = 65521u32; +pub const JIFMK_JPG10: u32 = 65530u32; +pub const JIFMK_JPG11: u32 = 65531u32; +pub const JIFMK_JPG12: u32 = 65532u32; +pub const JIFMK_JPG13: u32 = 65533u32; +pub const JIFMK_JPG2: u32 = 65522u32; +pub const JIFMK_JPG3: u32 = 65523u32; +pub const JIFMK_JPG4: u32 = 65524u32; +pub const JIFMK_JPG5: u32 = 65525u32; +pub const JIFMK_JPG6: u32 = 65526u32; +pub const JIFMK_JPG7: u32 = 65527u32; +pub const JIFMK_JPG8: u32 = 65528u32; +pub const JIFMK_JPG9: u32 = 65529u32; +pub const JIFMK_RES: u32 = 65282u32; +pub const JIFMK_RST0: u32 = 65488u32; +pub const JIFMK_RST1: u32 = 65489u32; +pub const JIFMK_RST2: u32 = 65490u32; +pub const JIFMK_RST3: u32 = 65491u32; +pub const JIFMK_RST4: u32 = 65492u32; +pub const JIFMK_RST5: u32 = 65493u32; +pub const JIFMK_RST6: u32 = 65494u32; +pub const JIFMK_RST7: u32 = 65495u32; +pub const JIFMK_SOF0: u32 = 65472u32; +pub const JIFMK_SOF1: u32 = 65473u32; +pub const JIFMK_SOF10: u32 = 65482u32; +pub const JIFMK_SOF11: u32 = 65483u32; +pub const JIFMK_SOF13: u32 = 65485u32; +pub const JIFMK_SOF14: u32 = 65486u32; +pub const JIFMK_SOF15: u32 = 65487u32; +pub const JIFMK_SOF2: u32 = 65474u32; +pub const JIFMK_SOF3: u32 = 65475u32; +pub const JIFMK_SOF5: u32 = 65477u32; +pub const JIFMK_SOF6: u32 = 65478u32; +pub const JIFMK_SOF7: u32 = 65479u32; +pub const JIFMK_SOF9: u32 = 65481u32; +pub const JIFMK_SOI: u32 = 65496u32; +pub const JIFMK_SOS: u32 = 65498u32; +pub const JIFMK_TEM: u32 = 65281u32; +pub const JOYCAPS_HASPOV: u32 = 16u32; +pub const JOYCAPS_HASR: u32 = 2u32; +pub const JOYCAPS_HASU: u32 = 4u32; +pub const JOYCAPS_HASV: u32 = 8u32; +pub const JOYCAPS_HASZ: u32 = 1u32; +pub const JOYCAPS_POV4DIR: u32 = 32u32; +pub const JOYCAPS_POVCTS: u32 = 64u32; +pub const JOYERR_NOCANDO: u32 = 166u32; +pub const JOYERR_NOERROR: u32 = 0u32; +pub const JOYERR_PARMS: u32 = 165u32; +pub const JOYERR_UNPLUGGED: u32 = 167u32; +pub const JOYSTICKID1: u32 = 0u32; +pub const JOYSTICKID2: u32 = 1u32; +pub const JOY_BUTTON1: u32 = 1u32; +pub const JOY_BUTTON10: i32 = 512i32; +pub const JOY_BUTTON11: i32 = 1024i32; +pub const JOY_BUTTON12: i32 = 2048i32; +pub const JOY_BUTTON13: i32 = 4096i32; +pub const JOY_BUTTON14: i32 = 8192i32; +pub const JOY_BUTTON15: i32 = 16384i32; +pub const JOY_BUTTON16: i32 = 32768i32; +pub const JOY_BUTTON17: i32 = 65536i32; +pub const JOY_BUTTON18: i32 = 131072i32; +pub const JOY_BUTTON19: i32 = 262144i32; +pub const JOY_BUTTON1CHG: u32 = 256u32; +pub const JOY_BUTTON2: u32 = 2u32; +pub const JOY_BUTTON20: i32 = 524288i32; +pub const JOY_BUTTON21: i32 = 1048576i32; +pub const JOY_BUTTON22: i32 = 2097152i32; +pub const JOY_BUTTON23: i32 = 4194304i32; +pub const JOY_BUTTON24: i32 = 8388608i32; +pub const JOY_BUTTON25: i32 = 16777216i32; +pub const JOY_BUTTON26: i32 = 33554432i32; +pub const JOY_BUTTON27: i32 = 67108864i32; +pub const JOY_BUTTON28: i32 = 134217728i32; +pub const JOY_BUTTON29: i32 = 268435456i32; +pub const JOY_BUTTON2CHG: u32 = 512u32; +pub const JOY_BUTTON3: u32 = 4u32; +pub const JOY_BUTTON30: i32 = 536870912i32; +pub const JOY_BUTTON31: i32 = 1073741824i32; +pub const JOY_BUTTON32: i32 = -2147483648i32; +pub const JOY_BUTTON3CHG: u32 = 1024u32; +pub const JOY_BUTTON4: u32 = 8u32; +pub const JOY_BUTTON4CHG: u32 = 2048u32; +pub const JOY_BUTTON5: i32 = 16i32; +pub const JOY_BUTTON6: i32 = 32i32; +pub const JOY_BUTTON7: i32 = 64i32; +pub const JOY_BUTTON8: i32 = 128i32; +pub const JOY_BUTTON9: i32 = 256i32; +pub const JOY_CAL_READ3: i32 = 262144i32; +pub const JOY_CAL_READ4: i32 = 524288i32; +pub const JOY_CAL_READ5: i32 = 4194304i32; +pub const JOY_CAL_READ6: i32 = 8388608i32; +pub const JOY_CAL_READALWAYS: i32 = 65536i32; +pub const JOY_CAL_READRONLY: i32 = 33554432i32; +pub const JOY_CAL_READUONLY: i32 = 67108864i32; +pub const JOY_CAL_READVONLY: i32 = 134217728i32; +pub const JOY_CAL_READXONLY: i32 = 1048576i32; +pub const JOY_CAL_READXYONLY: i32 = 131072i32; +pub const JOY_CAL_READYONLY: i32 = 2097152i32; +pub const JOY_CAL_READZONLY: i32 = 16777216i32; +pub const JOY_CONFIGCHANGED_MSGSTRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MSJSTICK_VJOYD_MSGSTR"); +pub const JOY_POVBACKWARD: u32 = 18000u32; +pub const JOY_POVFORWARD: u32 = 0u32; +pub const JOY_POVLEFT: u32 = 27000u32; +pub const JOY_POVRIGHT: u32 = 9000u32; +pub const JOY_RETURNBUTTONS: i32 = 128i32; +pub const JOY_RETURNCENTERED: i32 = 1024i32; +pub const JOY_RETURNPOV: i32 = 64i32; +pub const JOY_RETURNPOVCTS: i32 = 512i32; +pub const JOY_RETURNR: i32 = 8i32; +pub const JOY_RETURNRAWDATA: i32 = 256i32; +pub const JOY_RETURNU: i32 = 16i32; +pub const JOY_RETURNV: i32 = 32i32; +pub const JOY_RETURNX: i32 = 1i32; +pub const JOY_RETURNY: i32 = 2i32; +pub const JOY_RETURNZ: i32 = 4i32; +pub const JOY_USEDEADZONE: i32 = 2048i32; +pub const JPEG_PROCESS_BASELINE: u32 = 0u32; +pub const JPEG_RGB: u32 = 3u32; +pub const JPEG_Y: u32 = 1u32; +pub const JPEG_YCbCr: u32 = 2u32; +pub const KSDATAFORMAT_SUBTYPE_IEEE_FLOAT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000003_0000_0010_8000_00aa00389b71); +pub const MCIERR_AVI_AUDIOERROR: u32 = 619u32; +pub const MCIERR_AVI_BADPALETTE: u32 = 620u32; +pub const MCIERR_AVI_CANTPLAYFULLSCREEN: u32 = 615u32; +pub const MCIERR_AVI_DISPLAYERROR: u32 = 618u32; +pub const MCIERR_AVI_NOCOMPRESSOR: u32 = 617u32; +pub const MCIERR_AVI_NODISPDIB: u32 = 614u32; +pub const MCIERR_AVI_NOTINTERLEAVED: u32 = 613u32; +pub const MCIERR_AVI_OLDAVIFORMAT: u32 = 612u32; +pub const MCIERR_AVI_TOOBIGFORVGA: u32 = 616u32; +pub const MCIERR_BAD_CONSTANT: u32 = 290u32; +pub const MCIERR_BAD_INTEGER: u32 = 270u32; +pub const MCIERR_BAD_TIME_FORMAT: u32 = 293u32; +pub const MCIERR_CANNOT_LOAD_DRIVER: u32 = 266u32; +pub const MCIERR_CANNOT_USE_ALL: u32 = 279u32; +pub const MCIERR_CREATEWINDOW: u32 = 347u32; +pub const MCIERR_CUSTOM_DRIVER_BASE: u32 = 512u32; +pub const MCIERR_DEVICE_LENGTH: u32 = 310u32; +pub const MCIERR_DEVICE_LOCKED: u32 = 288u32; +pub const MCIERR_DEVICE_NOT_INSTALLED: u32 = 306u32; +pub const MCIERR_DEVICE_NOT_READY: u32 = 276u32; +pub const MCIERR_DEVICE_OPEN: u32 = 265u32; +pub const MCIERR_DEVICE_ORD_LENGTH: u32 = 311u32; +pub const MCIERR_DEVICE_TYPE_REQUIRED: u32 = 287u32; +pub const MCIERR_DGV_BAD_CLIPBOARD_RANGE: u32 = 517u32; +pub const MCIERR_DGV_DEVICE_LIMIT: u32 = 512u32; +pub const MCIERR_DGV_DEVICE_MEMORY_FULL: u32 = 516u32; +pub const MCIERR_DGV_DISK_FULL: u32 = 515u32; +pub const MCIERR_DGV_IOERR: u32 = 513u32; +pub const MCIERR_DGV_WORKSPACE_EMPTY: u32 = 514u32; +pub const MCIERR_DRIVER: u32 = 278u32; +pub const MCIERR_DRIVER_INTERNAL: u32 = 272u32; +pub const MCIERR_DUPLICATE_ALIAS: u32 = 289u32; +pub const MCIERR_DUPLICATE_FLAGS: u32 = 295u32; +pub const MCIERR_EXTENSION_NOT_FOUND: u32 = 281u32; +pub const MCIERR_EXTRA_CHARACTERS: u32 = 305u32; +pub const MCIERR_FILENAME_REQUIRED: u32 = 304u32; +pub const MCIERR_FILE_NOT_FOUND: u32 = 275u32; +pub const MCIERR_FILE_NOT_SAVED: u32 = 286u32; +pub const MCIERR_FILE_READ: u32 = 348u32; +pub const MCIERR_FILE_WRITE: u32 = 349u32; +pub const MCIERR_FLAGS_NOT_COMPATIBLE: u32 = 284u32; +pub const MCIERR_GET_CD: u32 = 307u32; +pub const MCIERR_HARDWARE: u32 = 262u32; +pub const MCIERR_ILLEGAL_FOR_AUTO_OPEN: u32 = 303u32; +pub const MCIERR_INTERNAL: u32 = 277u32; +pub const MCIERR_INVALID_DEVICE_ID: u32 = 257u32; +pub const MCIERR_INVALID_DEVICE_NAME: u32 = 263u32; +pub const MCIERR_INVALID_FILE: u32 = 296u32; +pub const MCIERR_MISSING_COMMAND_STRING: u32 = 267u32; +pub const MCIERR_MISSING_DEVICE_NAME: u32 = 292u32; +pub const MCIERR_MISSING_PARAMETER: u32 = 273u32; +pub const MCIERR_MISSING_STRING_ARGUMENT: u32 = 269u32; +pub const MCIERR_MULTIPLE: u32 = 280u32; +pub const MCIERR_MUST_USE_SHAREABLE: u32 = 291u32; +pub const MCIERR_NEW_REQUIRES_ALIAS: u32 = 299u32; +pub const MCIERR_NONAPPLICABLE_FUNCTION: u32 = 302u32; +pub const MCIERR_NOTIFY_ON_AUTO_OPEN: u32 = 300u32; +pub const MCIERR_NO_CLOSING_QUOTE: u32 = 294u32; +pub const MCIERR_NO_ELEMENT_ALLOWED: u32 = 301u32; +pub const MCIERR_NO_IDENTITY: u32 = 350u32; +pub const MCIERR_NO_INTEGER: u32 = 312u32; +pub const MCIERR_NO_WINDOW: u32 = 346u32; +pub const MCIERR_NULL_PARAMETER_BLOCK: u32 = 297u32; +pub const MCIERR_OUTOFRANGE: u32 = 282u32; +pub const MCIERR_OUT_OF_MEMORY: u32 = 264u32; +pub const MCIERR_PARAM_OVERFLOW: u32 = 268u32; +pub const MCIERR_PARSER_INTERNAL: u32 = 271u32; +pub const MCIERR_SEQ_DIV_INCOMPATIBLE: u32 = 336u32; +pub const MCIERR_SEQ_NOMIDIPRESENT: u32 = 343u32; +pub const MCIERR_SEQ_PORTUNSPECIFIED: u32 = 342u32; +pub const MCIERR_SEQ_PORT_INUSE: u32 = 337u32; +pub const MCIERR_SEQ_PORT_MAPNODEVICE: u32 = 339u32; +pub const MCIERR_SEQ_PORT_MISCERROR: u32 = 340u32; +pub const MCIERR_SEQ_PORT_NONEXISTENT: u32 = 338u32; +pub const MCIERR_SEQ_TIMER: u32 = 341u32; +pub const MCIERR_SET_CD: u32 = 308u32; +pub const MCIERR_SET_DRIVE: u32 = 309u32; +pub const MCIERR_UNNAMED_RESOURCE: u32 = 298u32; +pub const MCIERR_UNRECOGNIZED_COMMAND: u32 = 261u32; +pub const MCIERR_UNRECOGNIZED_KEYWORD: u32 = 259u32; +pub const MCIERR_UNSUPPORTED_FUNCTION: u32 = 274u32; +pub const MCIERR_WAVE_INPUTSINUSE: u32 = 322u32; +pub const MCIERR_WAVE_INPUTSUNSUITABLE: u32 = 328u32; +pub const MCIERR_WAVE_INPUTUNSPECIFIED: u32 = 325u32; +pub const MCIERR_WAVE_OUTPUTSINUSE: u32 = 320u32; +pub const MCIERR_WAVE_OUTPUTSUNSUITABLE: u32 = 326u32; +pub const MCIERR_WAVE_OUTPUTUNSPECIFIED: u32 = 324u32; +pub const MCIERR_WAVE_SETINPUTINUSE: u32 = 323u32; +pub const MCIERR_WAVE_SETINPUTUNSUITABLE: u32 = 329u32; +pub const MCIERR_WAVE_SETOUTPUTINUSE: u32 = 321u32; +pub const MCIERR_WAVE_SETOUTPUTUNSUITABLE: u32 = 327u32; +pub const MCIWNDF_NOAUTOSIZEMOVIE: u32 = 4u32; +pub const MCIWNDF_NOAUTOSIZEWINDOW: u32 = 1u32; +pub const MCIWNDF_NOERRORDLG: u32 = 16384u32; +pub const MCIWNDF_NOMENU: u32 = 8u32; +pub const MCIWNDF_NOOPEN: u32 = 32768u32; +pub const MCIWNDF_NOPLAYBAR: u32 = 2u32; +pub const MCIWNDF_NOTIFYALL: u32 = 7936u32; +pub const MCIWNDF_NOTIFYANSI: u32 = 128u32; +pub const MCIWNDF_NOTIFYERROR: u32 = 4096u32; +pub const MCIWNDF_NOTIFYMEDIA: u32 = 2048u32; +pub const MCIWNDF_NOTIFYMEDIAA: u32 = 2176u32; +pub const MCIWNDF_NOTIFYMEDIAW: u32 = 2048u32; +pub const MCIWNDF_NOTIFYMODE: u32 = 256u32; +pub const MCIWNDF_NOTIFYPOS: u32 = 512u32; +pub const MCIWNDF_NOTIFYSIZE: u32 = 1024u32; +pub const MCIWNDF_RECORD: u32 = 8192u32; +pub const MCIWNDF_SHOWALL: u32 = 112u32; +pub const MCIWNDF_SHOWMODE: u32 = 64u32; +pub const MCIWNDF_SHOWNAME: u32 = 16u32; +pub const MCIWNDF_SHOWPOS: u32 = 32u32; +pub const MCIWNDM_CAN_CONFIG: u32 = 1173u32; +pub const MCIWNDM_CAN_EJECT: u32 = 1172u32; +pub const MCIWNDM_CAN_PLAY: u32 = 1168u32; +pub const MCIWNDM_CAN_RECORD: u32 = 1170u32; +pub const MCIWNDM_CAN_SAVE: u32 = 1171u32; +pub const MCIWNDM_CAN_WINDOW: u32 = 1169u32; +pub const MCIWNDM_CHANGESTYLES: u32 = 1159u32; +pub const MCIWNDM_EJECT: u32 = 1131u32; +pub const MCIWNDM_GETACTIVETIMER: u32 = 1156u32; +pub const MCIWNDM_GETALIAS: u32 = 1161u32; +pub const MCIWNDM_GETDEVICE: u32 = 1249u32; +pub const MCIWNDM_GETDEVICEA: u32 = 1149u32; +pub const MCIWNDM_GETDEVICEID: u32 = 1124u32; +pub const MCIWNDM_GETDEVICEW: u32 = 1249u32; +pub const MCIWNDM_GETEND: u32 = 1129u32; +pub const MCIWNDM_GETERROR: u32 = 1252u32; +pub const MCIWNDM_GETERRORA: u32 = 1152u32; +pub const MCIWNDM_GETERRORW: u32 = 1252u32; +pub const MCIWNDM_GETFILENAME: u32 = 1248u32; +pub const MCIWNDM_GETFILENAMEA: u32 = 1148u32; +pub const MCIWNDM_GETFILENAMEW: u32 = 1248u32; +pub const MCIWNDM_GETINACTIVETIMER: u32 = 1157u32; +pub const MCIWNDM_GETLENGTH: u32 = 1128u32; +pub const MCIWNDM_GETMODE: u32 = 1230u32; +pub const MCIWNDM_GETMODEA: u32 = 1130u32; +pub const MCIWNDM_GETMODEW: u32 = 1230u32; +pub const MCIWNDM_GETPALETTE: u32 = 1150u32; +pub const MCIWNDM_GETPOSITION: u32 = 1226u32; +pub const MCIWNDM_GETPOSITIONA: u32 = 1126u32; +pub const MCIWNDM_GETPOSITIONW: u32 = 1226u32; +pub const MCIWNDM_GETREPEAT: u32 = 1139u32; +pub const MCIWNDM_GETSPEED: u32 = 1137u32; +pub const MCIWNDM_GETSTART: u32 = 1127u32; +pub const MCIWNDM_GETSTYLES: u32 = 1160u32; +pub const MCIWNDM_GETTIMEFORMAT: u32 = 1244u32; +pub const MCIWNDM_GETTIMEFORMATA: u32 = 1144u32; +pub const MCIWNDM_GETTIMEFORMATW: u32 = 1244u32; +pub const MCIWNDM_GETVOLUME: u32 = 1135u32; +pub const MCIWNDM_GETZOOM: u32 = 1133u32; +pub const MCIWNDM_GET_DEST: u32 = 1166u32; +pub const MCIWNDM_GET_SOURCE: u32 = 1164u32; +pub const MCIWNDM_NEW: u32 = 1258u32; +pub const MCIWNDM_NEWA: u32 = 1158u32; +pub const MCIWNDM_NEWW: u32 = 1258u32; +pub const MCIWNDM_NOTIFYERROR: u32 = 1229u32; +pub const MCIWNDM_NOTIFYMEDIA: u32 = 1227u32; +pub const MCIWNDM_NOTIFYMODE: u32 = 1224u32; +pub const MCIWNDM_NOTIFYPOS: u32 = 1225u32; +pub const MCIWNDM_NOTIFYSIZE: u32 = 1226u32; +pub const MCIWNDM_OPEN: u32 = 1276u32; +pub const MCIWNDM_OPENA: u32 = 1177u32; +pub const MCIWNDM_OPENINTERFACE: u32 = 1175u32; +pub const MCIWNDM_OPENW: u32 = 1276u32; +pub const MCIWNDM_PALETTEKICK: u32 = 1174u32; +pub const MCIWNDM_PLAYFROM: u32 = 1146u32; +pub const MCIWNDM_PLAYREVERSE: u32 = 1163u32; +pub const MCIWNDM_PLAYTO: u32 = 1147u32; +pub const MCIWNDM_PUT_DEST: u32 = 1167u32; +pub const MCIWNDM_PUT_SOURCE: u32 = 1165u32; +pub const MCIWNDM_REALIZE: u32 = 1142u32; +pub const MCIWNDM_RETURNSTRING: u32 = 1262u32; +pub const MCIWNDM_RETURNSTRINGA: u32 = 1162u32; +pub const MCIWNDM_RETURNSTRINGW: u32 = 1262u32; +pub const MCIWNDM_SENDSTRING: u32 = 1225u32; +pub const MCIWNDM_SENDSTRINGA: u32 = 1125u32; +pub const MCIWNDM_SENDSTRINGW: u32 = 1225u32; +pub const MCIWNDM_SETACTIVETIMER: u32 = 1154u32; +pub const MCIWNDM_SETINACTIVETIMER: u32 = 1155u32; +pub const MCIWNDM_SETOWNER: u32 = 1176u32; +pub const MCIWNDM_SETPALETTE: u32 = 1151u32; +pub const MCIWNDM_SETREPEAT: u32 = 1138u32; +pub const MCIWNDM_SETSPEED: u32 = 1136u32; +pub const MCIWNDM_SETTIMEFORMAT: u32 = 1243u32; +pub const MCIWNDM_SETTIMEFORMATA: u32 = 1143u32; +pub const MCIWNDM_SETTIMEFORMATW: u32 = 1243u32; +pub const MCIWNDM_SETTIMERS: u32 = 1153u32; +pub const MCIWNDM_SETVOLUME: u32 = 1134u32; +pub const MCIWNDM_SETZOOM: u32 = 1132u32; +pub const MCIWNDM_VALIDATEMEDIA: u32 = 1145u32; +pub const MCIWNDOPENF_NEW: u32 = 1u32; +pub const MCIWND_END: i32 = -2i32; +pub const MCIWND_START: i32 = -1i32; +pub const MCIWND_WINDOW_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MCIWndClass"); +pub const MCI_ANIM_GETDEVCAPS_CAN_REVERSE: i32 = 16385i32; +pub const MCI_ANIM_GETDEVCAPS_CAN_STRETCH: i32 = 16391i32; +pub const MCI_ANIM_GETDEVCAPS_FAST_RATE: i32 = 16386i32; +pub const MCI_ANIM_GETDEVCAPS_MAX_WINDOWS: i32 = 16392i32; +pub const MCI_ANIM_GETDEVCAPS_NORMAL_RATE: i32 = 16388i32; +pub const MCI_ANIM_GETDEVCAPS_PALETTES: i32 = 16390i32; +pub const MCI_ANIM_GETDEVCAPS_SLOW_RATE: i32 = 16387i32; +pub const MCI_ANIM_INFO_TEXT: i32 = 65536i32; +pub const MCI_ANIM_OPEN_NOSTATIC: i32 = 262144i32; +pub const MCI_ANIM_OPEN_PARENT: i32 = 131072i32; +pub const MCI_ANIM_OPEN_WS: i32 = 65536i32; +pub const MCI_ANIM_PLAY_FAST: i32 = 262144i32; +pub const MCI_ANIM_PLAY_REVERSE: i32 = 131072i32; +pub const MCI_ANIM_PLAY_SCAN: i32 = 1048576i32; +pub const MCI_ANIM_PLAY_SLOW: i32 = 524288i32; +pub const MCI_ANIM_PLAY_SPEED: i32 = 65536i32; +pub const MCI_ANIM_PUT_DESTINATION: i32 = 262144i32; +pub const MCI_ANIM_PUT_SOURCE: i32 = 131072i32; +pub const MCI_ANIM_REALIZE_BKGD: i32 = 131072i32; +pub const MCI_ANIM_REALIZE_NORM: i32 = 65536i32; +pub const MCI_ANIM_RECT: i32 = 65536i32; +pub const MCI_ANIM_STATUS_FORWARD: i32 = 16386i32; +pub const MCI_ANIM_STATUS_HPAL: i32 = 16388i32; +pub const MCI_ANIM_STATUS_HWND: i32 = 16387i32; +pub const MCI_ANIM_STATUS_SPEED: i32 = 16385i32; +pub const MCI_ANIM_STATUS_STRETCH: i32 = 16389i32; +pub const MCI_ANIM_STEP_FRAMES: i32 = 131072i32; +pub const MCI_ANIM_STEP_REVERSE: i32 = 65536i32; +pub const MCI_ANIM_UPDATE_HDC: i32 = 131072i32; +pub const MCI_ANIM_WHERE_DESTINATION: i32 = 262144i32; +pub const MCI_ANIM_WHERE_SOURCE: i32 = 131072i32; +pub const MCI_ANIM_WINDOW_DEFAULT: i32 = 0i32; +pub const MCI_ANIM_WINDOW_DISABLE_STRETCH: i32 = 2097152i32; +pub const MCI_ANIM_WINDOW_ENABLE_STRETCH: i32 = 1048576i32; +pub const MCI_ANIM_WINDOW_HWND: i32 = 65536i32; +pub const MCI_ANIM_WINDOW_STATE: i32 = 262144i32; +pub const MCI_ANIM_WINDOW_TEXT: i32 = 524288i32; +pub const MCI_AVI_SETVIDEO_DRAW_PROCEDURE: i32 = 32768i32; +pub const MCI_AVI_SETVIDEO_PALETTE_COLOR: i32 = 33024i32; +pub const MCI_AVI_SETVIDEO_PALETTE_HALFTONE: i32 = 65535i32; +pub const MCI_AVI_STATUS_AUDIO_BREAKS: i32 = 32771i32; +pub const MCI_AVI_STATUS_FRAMES_SKIPPED: i32 = 32769i32; +pub const MCI_AVI_STATUS_LAST_PLAY_SPEED: i32 = 32770i32; +pub const MCI_BREAK: u32 = 2065u32; +pub const MCI_BREAK_HWND: i32 = 512i32; +pub const MCI_BREAK_KEY: i32 = 256i32; +pub const MCI_BREAK_OFF: i32 = 1024i32; +pub const MCI_CAPTURE: u32 = 2160u32; +pub const MCI_CDA_STATUS_TYPE_TRACK: i32 = 16385i32; +pub const MCI_CDA_TRACK_AUDIO: u32 = 1088u32; +pub const MCI_CDA_TRACK_OTHER: u32 = 1089u32; +pub const MCI_CLOSE: u32 = 2052u32; +pub const MCI_CLOSE_DRIVER: u32 = 2050u32; +pub const MCI_COLONIZED3_RETURN: u32 = 131072u32; +pub const MCI_COLONIZED4_RETURN: u32 = 262144u32; +pub const MCI_COMMAND_HEAD: u32 = 0u32; +pub const MCI_CONFIGURE: u32 = 2170u32; +pub const MCI_CONSTANT: u32 = 8u32; +pub const MCI_COPY: u32 = 2130u32; +pub const MCI_CUE: u32 = 2096u32; +pub const MCI_CUT: u32 = 2129u32; +pub const MCI_DELETE: u32 = 2134u32; +pub const MCI_DEVTYPE_ANIMATION: u32 = 519u32; +pub const MCI_DEVTYPE_CD_AUDIO: u32 = 516u32; +pub const MCI_DEVTYPE_DAT: u32 = 517u32; +pub const MCI_DEVTYPE_DIGITAL_VIDEO: u32 = 520u32; +pub const MCI_DEVTYPE_FIRST: u32 = 513u32; +pub const MCI_DEVTYPE_FIRST_USER: u32 = 4096u32; +pub const MCI_DEVTYPE_LAST: u32 = 523u32; +pub const MCI_DEVTYPE_OTHER: u32 = 521u32; +pub const MCI_DEVTYPE_OVERLAY: u32 = 515u32; +pub const MCI_DEVTYPE_SCANNER: u32 = 518u32; +pub const MCI_DEVTYPE_SEQUENCER: u32 = 523u32; +pub const MCI_DEVTYPE_VCR: u32 = 513u32; +pub const MCI_DEVTYPE_VIDEODISC: u32 = 514u32; +pub const MCI_DEVTYPE_WAVEFORM_AUDIO: u32 = 522u32; +pub const MCI_DGV_CAPTURE_AS: i32 = 65536i32; +pub const MCI_DGV_CAPTURE_AT: i32 = 131072i32; +pub const MCI_DGV_COPY_AT: i32 = 65536i32; +pub const MCI_DGV_COPY_AUDIO_STREAM: i32 = 131072i32; +pub const MCI_DGV_COPY_VIDEO_STREAM: i32 = 262144i32; +pub const MCI_DGV_CUE_INPUT: i32 = 65536i32; +pub const MCI_DGV_CUE_NOSHOW: i32 = 262144i32; +pub const MCI_DGV_CUE_OUTPUT: i32 = 131072i32; +pub const MCI_DGV_CUT_AT: i32 = 65536i32; +pub const MCI_DGV_CUT_AUDIO_STREAM: i32 = 131072i32; +pub const MCI_DGV_CUT_VIDEO_STREAM: i32 = 262144i32; +pub const MCI_DGV_DELETE_AT: i32 = 65536i32; +pub const MCI_DGV_DELETE_AUDIO_STREAM: i32 = 131072i32; +pub const MCI_DGV_DELETE_VIDEO_STREAM: i32 = 262144i32; +pub const MCI_DGV_FF_AVI: i32 = 16385i32; +pub const MCI_DGV_FF_AVSS: i32 = 16384i32; +pub const MCI_DGV_FF_DIB: i32 = 16386i32; +pub const MCI_DGV_FF_JFIF: i32 = 16390i32; +pub const MCI_DGV_FF_JPEG: i32 = 16388i32; +pub const MCI_DGV_FF_MPEG: i32 = 16391i32; +pub const MCI_DGV_FF_RDIB: i32 = 16387i32; +pub const MCI_DGV_FF_RJPEG: i32 = 16389i32; +pub const MCI_DGV_FILE_MODE_EDITING: u32 = 3u32; +pub const MCI_DGV_FILE_MODE_EDITING_S: i32 = 32774i32; +pub const MCI_DGV_FILE_MODE_IDLE: u32 = 4u32; +pub const MCI_DGV_FILE_MODE_IDLE_S: i32 = 32775i32; +pub const MCI_DGV_FILE_MODE_LOADING: u32 = 2u32; +pub const MCI_DGV_FILE_MODE_LOADING_S: i32 = 32773i32; +pub const MCI_DGV_FILE_MODE_SAVING: u32 = 1u32; +pub const MCI_DGV_FILE_MODE_SAVING_S: i32 = 32772i32; +pub const MCI_DGV_FILE_S: i32 = 32770i32; +pub const MCI_DGV_FREEZE_AT: i32 = 65536i32; +pub const MCI_DGV_FREEZE_OUTSIDE: i32 = 131072i32; +pub const MCI_DGV_GETDEVCAPS_CAN_FREEZE: i32 = 16386i32; +pub const MCI_DGV_GETDEVCAPS_CAN_LOCK: i32 = 16384i32; +pub const MCI_DGV_GETDEVCAPS_CAN_REVERSE: i32 = 16388i32; +pub const MCI_DGV_GETDEVCAPS_CAN_STRETCH: i32 = 16385i32; +pub const MCI_DGV_GETDEVCAPS_CAN_STR_IN: i32 = 16392i32; +pub const MCI_DGV_GETDEVCAPS_CAN_TEST: i32 = 16393i32; +pub const MCI_DGV_GETDEVCAPS_HAS_STILL: i32 = 16389i32; +pub const MCI_DGV_GETDEVCAPS_MAXIMUM_RATE: i32 = 16394i32; +pub const MCI_DGV_GETDEVCAPS_MAX_WINDOWS: i32 = 16387i32; +pub const MCI_DGV_GETDEVCAPS_MINIMUM_RATE: i32 = 16395i32; +pub const MCI_DGV_GETDEVCAPS_PALETTES: i32 = 16390i32; +pub const MCI_DGV_INFO_AUDIO_ALG: i32 = 16388i32; +pub const MCI_DGV_INFO_AUDIO_QUALITY: i32 = 16385i32; +pub const MCI_DGV_INFO_ITEM: i32 = 131072i32; +pub const MCI_DGV_INFO_STILL_ALG: i32 = 16389i32; +pub const MCI_DGV_INFO_STILL_QUALITY: i32 = 16386i32; +pub const MCI_DGV_INFO_TEXT: i32 = 65536i32; +pub const MCI_DGV_INFO_USAGE: i32 = 16384i32; +pub const MCI_DGV_INFO_VIDEO_ALG: i32 = 16390i32; +pub const MCI_DGV_INFO_VIDEO_QUALITY: i32 = 16387i32; +pub const MCI_DGV_INPUT_S: i32 = 32771i32; +pub const MCI_DGV_LIST_ALG: i32 = 524288i32; +pub const MCI_DGV_LIST_AUDIO_ALG: i32 = 16384i32; +pub const MCI_DGV_LIST_AUDIO_QUALITY: i32 = 16385i32; +pub const MCI_DGV_LIST_AUDIO_STREAM: i32 = 16386i32; +pub const MCI_DGV_LIST_COUNT: i32 = 131072i32; +pub const MCI_DGV_LIST_ITEM: i32 = 65536i32; +pub const MCI_DGV_LIST_NUMBER: i32 = 262144i32; +pub const MCI_DGV_LIST_STILL_ALG: i32 = 16387i32; +pub const MCI_DGV_LIST_STILL_QUALITY: i32 = 16388i32; +pub const MCI_DGV_LIST_VIDEO_ALG: i32 = 16389i32; +pub const MCI_DGV_LIST_VIDEO_QUALITY: i32 = 16390i32; +pub const MCI_DGV_LIST_VIDEO_SOURCE: i32 = 16392i32; +pub const MCI_DGV_LIST_VIDEO_STREAM: i32 = 16391i32; +pub const MCI_DGV_METHOD_DIRECT: i32 = 40962i32; +pub const MCI_DGV_METHOD_POST: i32 = 40961i32; +pub const MCI_DGV_METHOD_PRE: i32 = 40960i32; +pub const MCI_DGV_MONITOR_FILE: i32 = 16385i32; +pub const MCI_DGV_MONITOR_INPUT: i32 = 16384i32; +pub const MCI_DGV_MONITOR_METHOD: i32 = 65536i32; +pub const MCI_DGV_MONITOR_SOURCE: i32 = 131072i32; +pub const MCI_DGV_OPEN_16BIT: i32 = 524288i32; +pub const MCI_DGV_OPEN_32BIT: i32 = 1048576i32; +pub const MCI_DGV_OPEN_NOSTATIC: i32 = 262144i32; +pub const MCI_DGV_OPEN_PARENT: i32 = 131072i32; +pub const MCI_DGV_OPEN_WS: i32 = 65536i32; +pub const MCI_DGV_PASTE_AT: i32 = 65536i32; +pub const MCI_DGV_PASTE_AUDIO_STREAM: i32 = 131072i32; +pub const MCI_DGV_PASTE_INSERT: i32 = 524288i32; +pub const MCI_DGV_PASTE_OVERWRITE: i32 = 1048576i32; +pub const MCI_DGV_PASTE_VIDEO_STREAM: i32 = 262144i32; +pub const MCI_DGV_PLAY_REPEAT: i32 = 65536i32; +pub const MCI_DGV_PLAY_REVERSE: i32 = 131072i32; +pub const MCI_DGV_PUT_CLIENT: i32 = 4194304i32; +pub const MCI_DGV_PUT_DESTINATION: i32 = 262144i32; +pub const MCI_DGV_PUT_FRAME: i32 = 524288i32; +pub const MCI_DGV_PUT_SOURCE: i32 = 131072i32; +pub const MCI_DGV_PUT_VIDEO: i32 = 1048576i32; +pub const MCI_DGV_PUT_WINDOW: i32 = 2097152i32; +pub const MCI_DGV_REALIZE_BKGD: i32 = 131072i32; +pub const MCI_DGV_REALIZE_NORM: i32 = 65536i32; +pub const MCI_DGV_RECORD_AUDIO_STREAM: i32 = 262144i32; +pub const MCI_DGV_RECORD_HOLD: i32 = 131072i32; +pub const MCI_DGV_RECORD_VIDEO_STREAM: i32 = 524288i32; +pub const MCI_DGV_RECT: i32 = 65536i32; +pub const MCI_DGV_RESERVE_IN: i32 = 65536i32; +pub const MCI_DGV_RESERVE_SIZE: i32 = 131072i32; +pub const MCI_DGV_RESTORE_AT: i32 = 131072i32; +pub const MCI_DGV_RESTORE_FROM: i32 = 65536i32; +pub const MCI_DGV_SAVE_ABORT: i32 = 131072i32; +pub const MCI_DGV_SAVE_KEEPRESERVE: i32 = 262144i32; +pub const MCI_DGV_SETAUDIO_ALG: i32 = 262144i32; +pub const MCI_DGV_SETAUDIO_AVGBYTESPERSEC: i32 = 16390i32; +pub const MCI_DGV_SETAUDIO_BASS: i32 = 16385i32; +pub const MCI_DGV_SETAUDIO_BITSPERSAMPLE: i32 = 16392i32; +pub const MCI_DGV_SETAUDIO_BLOCKALIGN: i32 = 16391i32; +pub const MCI_DGV_SETAUDIO_CLOCKTIME: i32 = 131072i32; +pub const MCI_DGV_SETAUDIO_INPUT: i32 = 33554432i32; +pub const MCI_DGV_SETAUDIO_ITEM: i32 = 8388608i32; +pub const MCI_DGV_SETAUDIO_LEFT: i32 = 2097152i32; +pub const MCI_DGV_SETAUDIO_OUTPUT: i32 = 67108864i32; +pub const MCI_DGV_SETAUDIO_OVER: i32 = 65536i32; +pub const MCI_DGV_SETAUDIO_QUALITY: i32 = 524288i32; +pub const MCI_DGV_SETAUDIO_RECORD: i32 = 1048576i32; +pub const MCI_DGV_SETAUDIO_RIGHT: i32 = 4194304i32; +pub const MCI_DGV_SETAUDIO_SAMPLESPERSEC: i32 = 16389i32; +pub const MCI_DGV_SETAUDIO_SOURCE: i32 = 16388i32; +pub const MCI_DGV_SETAUDIO_SOURCE_AVERAGE: i32 = 16384i32; +pub const MCI_DGV_SETAUDIO_SOURCE_LEFT: i32 = 1i32; +pub const MCI_DGV_SETAUDIO_SOURCE_RIGHT: i32 = 2i32; +pub const MCI_DGV_SETAUDIO_SOURCE_STEREO: i32 = 0i32; +pub const MCI_DGV_SETAUDIO_SRC_AVERAGE_S: i32 = 32802i32; +pub const MCI_DGV_SETAUDIO_SRC_LEFT_S: i32 = 32800i32; +pub const MCI_DGV_SETAUDIO_SRC_RIGHT_S: i32 = 32801i32; +pub const MCI_DGV_SETAUDIO_SRC_STEREO_S: i32 = 32803i32; +pub const MCI_DGV_SETAUDIO_STREAM: i32 = 16387i32; +pub const MCI_DGV_SETAUDIO_TREBLE: i32 = 16384i32; +pub const MCI_DGV_SETAUDIO_VALUE: i32 = 16777216i32; +pub const MCI_DGV_SETAUDIO_VOLUME: i32 = 16386i32; +pub const MCI_DGV_SETVIDEO_ALG: i32 = 131072i32; +pub const MCI_DGV_SETVIDEO_BITSPERPEL: i32 = 16396i32; +pub const MCI_DGV_SETVIDEO_BRIGHTNESS: i32 = 16384i32; +pub const MCI_DGV_SETVIDEO_CLOCKTIME: i32 = 262144i32; +pub const MCI_DGV_SETVIDEO_COLOR: i32 = 16385i32; +pub const MCI_DGV_SETVIDEO_CONTRAST: i32 = 16386i32; +pub const MCI_DGV_SETVIDEO_FRAME_RATE: i32 = 16392i32; +pub const MCI_DGV_SETVIDEO_GAMMA: i32 = 16389i32; +pub const MCI_DGV_SETVIDEO_INPUT: i32 = 33554432i32; +pub const MCI_DGV_SETVIDEO_ITEM: i32 = 1048576i32; +pub const MCI_DGV_SETVIDEO_KEY_COLOR: i32 = 16395i32; +pub const MCI_DGV_SETVIDEO_KEY_INDEX: i32 = 16394i32; +pub const MCI_DGV_SETVIDEO_OUTPUT: i32 = 67108864i32; +pub const MCI_DGV_SETVIDEO_OVER: i32 = 2097152i32; +pub const MCI_DGV_SETVIDEO_PALHANDLE: i32 = 16391i32; +pub const MCI_DGV_SETVIDEO_QUALITY: i32 = 65536i32; +pub const MCI_DGV_SETVIDEO_RECORD: i32 = 4194304i32; +pub const MCI_DGV_SETVIDEO_SHARPNESS: i32 = 16388i32; +pub const MCI_DGV_SETVIDEO_SOURCE: i32 = 16393i32; +pub const MCI_DGV_SETVIDEO_SRC_GENERIC: i32 = 16389i32; +pub const MCI_DGV_SETVIDEO_SRC_GENERIC_S: i32 = 32789i32; +pub const MCI_DGV_SETVIDEO_SRC_NTSC: i32 = 16384i32; +pub const MCI_DGV_SETVIDEO_SRC_NTSC_S: i32 = 32784i32; +pub const MCI_DGV_SETVIDEO_SRC_NUMBER: i32 = 524288i32; +pub const MCI_DGV_SETVIDEO_SRC_PAL: i32 = 16387i32; +pub const MCI_DGV_SETVIDEO_SRC_PAL_S: i32 = 32787i32; +pub const MCI_DGV_SETVIDEO_SRC_RGB: i32 = 16385i32; +pub const MCI_DGV_SETVIDEO_SRC_RGB_S: i32 = 32785i32; +pub const MCI_DGV_SETVIDEO_SRC_SECAM: i32 = 16388i32; +pub const MCI_DGV_SETVIDEO_SRC_SECAM_S: i32 = 32788i32; +pub const MCI_DGV_SETVIDEO_SRC_SVIDEO: i32 = 16386i32; +pub const MCI_DGV_SETVIDEO_SRC_SVIDEO_S: i32 = 32786i32; +pub const MCI_DGV_SETVIDEO_STILL: i32 = 8388608i32; +pub const MCI_DGV_SETVIDEO_STREAM: i32 = 16390i32; +pub const MCI_DGV_SETVIDEO_TINT: i32 = 16387i32; +pub const MCI_DGV_SETVIDEO_VALUE: i32 = 16777216i32; +pub const MCI_DGV_SET_FILEFORMAT: i32 = 524288i32; +pub const MCI_DGV_SET_SEEK_EXACTLY: i32 = 65536i32; +pub const MCI_DGV_SET_SPEED: i32 = 131072i32; +pub const MCI_DGV_SET_STILL: i32 = 262144i32; +pub const MCI_DGV_SIGNAL_AT: i32 = 65536i32; +pub const MCI_DGV_SIGNAL_CANCEL: i32 = 524288i32; +pub const MCI_DGV_SIGNAL_EVERY: i32 = 131072i32; +pub const MCI_DGV_SIGNAL_POSITION: i32 = 1048576i32; +pub const MCI_DGV_SIGNAL_USERVAL: i32 = 262144i32; +pub const MCI_DGV_STATUS_AUDIO: i32 = 16404i32; +pub const MCI_DGV_STATUS_AUDIO_INPUT: i32 = 16384i32; +pub const MCI_DGV_STATUS_AUDIO_RECORD: i32 = 16410i32; +pub const MCI_DGV_STATUS_AUDIO_SOURCE: i32 = 16393i32; +pub const MCI_DGV_STATUS_AUDIO_STREAM: i32 = 16429i32; +pub const MCI_DGV_STATUS_AVGBYTESPERSEC: i32 = 16424i32; +pub const MCI_DGV_STATUS_BASS: i32 = 16399i32; +pub const MCI_DGV_STATUS_BITSPERPEL: i32 = 16427i32; +pub const MCI_DGV_STATUS_BITSPERSAMPLE: i32 = 16426i32; +pub const MCI_DGV_STATUS_BLOCKALIGN: i32 = 16425i32; +pub const MCI_DGV_STATUS_BRIGHTNESS: i32 = 16389i32; +pub const MCI_DGV_STATUS_COLOR: i32 = 16390i32; +pub const MCI_DGV_STATUS_CONTRAST: i32 = 16391i32; +pub const MCI_DGV_STATUS_DISKSPACE: i32 = 2097152i32; +pub const MCI_DGV_STATUS_FILEFORMAT: i32 = 16392i32; +pub const MCI_DGV_STATUS_FILE_COMPLETION: i32 = 16416i32; +pub const MCI_DGV_STATUS_FILE_MODE: i32 = 16415i32; +pub const MCI_DGV_STATUS_FORWARD: i32 = 16428i32; +pub const MCI_DGV_STATUS_FRAME_RATE: i32 = 16398i32; +pub const MCI_DGV_STATUS_GAMMA: i32 = 16394i32; +pub const MCI_DGV_STATUS_HPAL: i32 = 16388i32; +pub const MCI_DGV_STATUS_HWND: i32 = 16385i32; +pub const MCI_DGV_STATUS_INPUT: i32 = 4194304i32; +pub const MCI_DGV_STATUS_KEY_COLOR: i32 = 16421i32; +pub const MCI_DGV_STATUS_KEY_INDEX: i32 = 16420i32; +pub const MCI_DGV_STATUS_LEFT: i32 = 524288i32; +pub const MCI_DGV_STATUS_MONITOR: i32 = 16395i32; +pub const MCI_DGV_STATUS_MONITOR_METHOD: i32 = 16396i32; +pub const MCI_DGV_STATUS_NOMINAL: i32 = 131072i32; +pub const MCI_DGV_STATUS_OUTPUT: i32 = 8388608i32; +pub const MCI_DGV_STATUS_PAUSE_MODE: i32 = 16422i32; +pub const MCI_DGV_STATUS_RECORD: i32 = 16777216i32; +pub const MCI_DGV_STATUS_REFERENCE: i32 = 262144i32; +pub const MCI_DGV_STATUS_RIGHT: i32 = 1048576i32; +pub const MCI_DGV_STATUS_SAMPLESPERSEC: i32 = 16423i32; +pub const MCI_DGV_STATUS_SEEK_EXACTLY: i32 = 16401i32; +pub const MCI_DGV_STATUS_SHARPNESS: i32 = 16402i32; +pub const MCI_DGV_STATUS_SIZE: i32 = 16400i32; +pub const MCI_DGV_STATUS_SMPTE: i32 = 16403i32; +pub const MCI_DGV_STATUS_SPEED: i32 = 16387i32; +pub const MCI_DGV_STATUS_STILL_FILEFORMAT: i32 = 16413i32; +pub const MCI_DGV_STATUS_TINT: i32 = 16405i32; +pub const MCI_DGV_STATUS_TREBLE: i32 = 16406i32; +pub const MCI_DGV_STATUS_UNSAVED: i32 = 16407i32; +pub const MCI_DGV_STATUS_VIDEO: i32 = 16408i32; +pub const MCI_DGV_STATUS_VIDEO_RECORD: i32 = 16412i32; +pub const MCI_DGV_STATUS_VIDEO_SOURCE: i32 = 16411i32; +pub const MCI_DGV_STATUS_VIDEO_SRC_NUM: i32 = 16414i32; +pub const MCI_DGV_STATUS_VIDEO_STREAM: i32 = 16430i32; +pub const MCI_DGV_STATUS_VOLUME: i32 = 16409i32; +pub const MCI_DGV_STATUS_WINDOW_MAXIMIZED: i32 = 16419i32; +pub const MCI_DGV_STATUS_WINDOW_MINIMIZED: i32 = 16418i32; +pub const MCI_DGV_STATUS_WINDOW_VISIBLE: i32 = 16417i32; +pub const MCI_DGV_STEP_FRAMES: i32 = 131072i32; +pub const MCI_DGV_STEP_REVERSE: i32 = 65536i32; +pub const MCI_DGV_STOP_HOLD: i32 = 65536i32; +pub const MCI_DGV_UPDATE_HDC: i32 = 131072i32; +pub const MCI_DGV_UPDATE_PAINT: i32 = 262144i32; +pub const MCI_DGV_WHERE_DESTINATION: i32 = 262144i32; +pub const MCI_DGV_WHERE_FRAME: i32 = 524288i32; +pub const MCI_DGV_WHERE_MAX: i32 = 4194304i32; +pub const MCI_DGV_WHERE_SOURCE: i32 = 131072i32; +pub const MCI_DGV_WHERE_VIDEO: i32 = 1048576i32; +pub const MCI_DGV_WHERE_WINDOW: i32 = 2097152i32; +pub const MCI_DGV_WINDOW_DEFAULT: i32 = 0i32; +pub const MCI_DGV_WINDOW_HWND: i32 = 65536i32; +pub const MCI_DGV_WINDOW_STATE: i32 = 262144i32; +pub const MCI_DGV_WINDOW_TEXT: i32 = 524288i32; +pub const MCI_END_COMMAND: u32 = 3u32; +pub const MCI_END_COMMAND_LIST: u32 = 6u32; +pub const MCI_END_CONSTANT: u32 = 9u32; +pub const MCI_ESCAPE: u32 = 2053u32; +pub const MCI_FALSE: u32 = 531u32; +pub const MCI_FIRST: u32 = 2048u32; +pub const MCI_FLAG: u32 = 5u32; +pub const MCI_FORMAT_BYTES: u32 = 8u32; +pub const MCI_FORMAT_BYTES_S: u32 = 541u32; +pub const MCI_FORMAT_FRAMES: u32 = 3u32; +pub const MCI_FORMAT_FRAMES_S: u32 = 536u32; +pub const MCI_FORMAT_HMS: u32 = 1u32; +pub const MCI_FORMAT_HMS_S: u32 = 534u32; +pub const MCI_FORMAT_MILLISECONDS: u32 = 0u32; +pub const MCI_FORMAT_MILLISECONDS_S: u32 = 533u32; +pub const MCI_FORMAT_MSF: u32 = 2u32; +pub const MCI_FORMAT_MSF_S: u32 = 535u32; +pub const MCI_FORMAT_SAMPLES: u32 = 9u32; +pub const MCI_FORMAT_SAMPLES_S: u32 = 542u32; +pub const MCI_FORMAT_SMPTE_24: u32 = 4u32; +pub const MCI_FORMAT_SMPTE_24_S: u32 = 537u32; +pub const MCI_FORMAT_SMPTE_25: u32 = 5u32; +pub const MCI_FORMAT_SMPTE_25_S: u32 = 538u32; +pub const MCI_FORMAT_SMPTE_30: u32 = 6u32; +pub const MCI_FORMAT_SMPTE_30DROP: u32 = 7u32; +pub const MCI_FORMAT_SMPTE_30DROP_S: u32 = 540u32; +pub const MCI_FORMAT_SMPTE_30_S: u32 = 539u32; +pub const MCI_FORMAT_TMSF: u32 = 10u32; +pub const MCI_FORMAT_TMSF_S: u32 = 543u32; +pub const MCI_FREEZE: u32 = 2116u32; +pub const MCI_FROM: i32 = 4i32; +pub const MCI_GETDEVCAPS: u32 = 2059u32; +pub const MCI_GETDEVCAPS_CAN_EJECT: i32 = 7i32; +pub const MCI_GETDEVCAPS_CAN_PLAY: i32 = 8i32; +pub const MCI_GETDEVCAPS_CAN_RECORD: i32 = 1i32; +pub const MCI_GETDEVCAPS_CAN_SAVE: i32 = 9i32; +pub const MCI_GETDEVCAPS_COMPOUND_DEVICE: i32 = 6i32; +pub const MCI_GETDEVCAPS_DEVICE_TYPE: i32 = 4i32; +pub const MCI_GETDEVCAPS_HAS_AUDIO: i32 = 2i32; +pub const MCI_GETDEVCAPS_HAS_VIDEO: i32 = 3i32; +pub const MCI_GETDEVCAPS_ITEM: i32 = 256i32; +pub const MCI_GETDEVCAPS_USES_FILES: i32 = 5i32; +pub const MCI_HDC: u32 = 12u32; +pub const MCI_HPAL: u32 = 11u32; +pub const MCI_HWND: u32 = 10u32; +pub const MCI_INFO: u32 = 2058u32; +pub const MCI_INFO_COPYRIGHT: i32 = 8192i32; +pub const MCI_INFO_FILE: i32 = 512i32; +pub const MCI_INFO_MEDIA_IDENTITY: i32 = 2048i32; +pub const MCI_INFO_MEDIA_UPC: i32 = 1024i32; +pub const MCI_INFO_NAME: i32 = 4096i32; +pub const MCI_INFO_PRODUCT: i32 = 256i32; +pub const MCI_INFO_VERSION: i32 = 1024i32; +pub const MCI_INTEGER: u32 = 2u32; +pub const MCI_INTEGER64: u32 = 13u32; +pub const MCI_INTEGER_RETURNED: u32 = 524288u32; +pub const MCI_LAST: u32 = 4095u32; +pub const MCI_LIST: u32 = 2168u32; +pub const MCI_LOAD: u32 = 2128u32; +pub const MCI_LOAD_FILE: i32 = 256i32; +pub const MCI_MAX_DEVICE_TYPE_LENGTH: u32 = 80u32; +pub const MCI_MCIAVI_PLAY_FULLBY2: i32 = 67108864i32; +pub const MCI_MCIAVI_PLAY_FULLSCREEN: i32 = 33554432i32; +pub const MCI_MCIAVI_PLAY_WINDOW: i32 = 16777216i32; +pub const MCI_MODE_NOT_READY: u32 = 524u32; +pub const MCI_MODE_OPEN: u32 = 530u32; +pub const MCI_MODE_PAUSE: u32 = 529u32; +pub const MCI_MODE_PLAY: u32 = 526u32; +pub const MCI_MODE_RECORD: u32 = 527u32; +pub const MCI_MODE_SEEK: u32 = 528u32; +pub const MCI_MODE_STOP: u32 = 525u32; +pub const MCI_MONITOR: u32 = 2161u32; +pub const MCI_NOTIFY: i32 = 1i32; +pub const MCI_NOTIFY_ABORTED: u32 = 4u32; +pub const MCI_NOTIFY_FAILURE: u32 = 8u32; +pub const MCI_NOTIFY_SUCCESSFUL: u32 = 1u32; +pub const MCI_NOTIFY_SUPERSEDED: u32 = 2u32; +pub const MCI_OFF: u32 = 0u32; +pub const MCI_OFF_S: i32 = 32769i32; +pub const MCI_ON: u32 = 1u32; +pub const MCI_ON_S: i32 = 32768i32; +pub const MCI_OPEN: u32 = 2051u32; +pub const MCI_OPEN_ALIAS: i32 = 1024i32; +pub const MCI_OPEN_DRIVER: u32 = 2049u32; +pub const MCI_OPEN_ELEMENT: i32 = 512i32; +pub const MCI_OPEN_ELEMENT_ID: i32 = 2048i32; +pub const MCI_OPEN_SHAREABLE: i32 = 256i32; +pub const MCI_OPEN_TYPE: i32 = 8192i32; +pub const MCI_OPEN_TYPE_ID: i32 = 4096i32; +pub const MCI_OVLY_GETDEVCAPS_CAN_FREEZE: i32 = 16386i32; +pub const MCI_OVLY_GETDEVCAPS_CAN_STRETCH: i32 = 16385i32; +pub const MCI_OVLY_GETDEVCAPS_MAX_WINDOWS: i32 = 16387i32; +pub const MCI_OVLY_INFO_TEXT: i32 = 65536i32; +pub const MCI_OVLY_OPEN_PARENT: i32 = 131072i32; +pub const MCI_OVLY_OPEN_WS: i32 = 65536i32; +pub const MCI_OVLY_PUT_DESTINATION: i32 = 262144i32; +pub const MCI_OVLY_PUT_FRAME: i32 = 524288i32; +pub const MCI_OVLY_PUT_SOURCE: i32 = 131072i32; +pub const MCI_OVLY_PUT_VIDEO: i32 = 1048576i32; +pub const MCI_OVLY_RECT: i32 = 65536i32; +pub const MCI_OVLY_STATUS_HWND: i32 = 16385i32; +pub const MCI_OVLY_STATUS_STRETCH: i32 = 16386i32; +pub const MCI_OVLY_WHERE_DESTINATION: i32 = 262144i32; +pub const MCI_OVLY_WHERE_FRAME: i32 = 524288i32; +pub const MCI_OVLY_WHERE_SOURCE: i32 = 131072i32; +pub const MCI_OVLY_WHERE_VIDEO: i32 = 1048576i32; +pub const MCI_OVLY_WINDOW_DEFAULT: i32 = 0i32; +pub const MCI_OVLY_WINDOW_DISABLE_STRETCH: i32 = 2097152i32; +pub const MCI_OVLY_WINDOW_ENABLE_STRETCH: i32 = 1048576i32; +pub const MCI_OVLY_WINDOW_HWND: i32 = 65536i32; +pub const MCI_OVLY_WINDOW_STATE: i32 = 262144i32; +pub const MCI_OVLY_WINDOW_TEXT: i32 = 524288i32; +pub const MCI_PASTE: u32 = 2131u32; +pub const MCI_PAUSE: u32 = 2057u32; +pub const MCI_PLAY: u32 = 2054u32; +pub const MCI_PUT: u32 = 2114u32; +pub const MCI_QUALITY: u32 = 2167u32; +pub const MCI_QUALITY_ALG: i32 = 262144i32; +pub const MCI_QUALITY_DIALOG: i32 = 524288i32; +pub const MCI_QUALITY_HANDLE: i32 = 1048576i32; +pub const MCI_QUALITY_ITEM: i32 = 65536i32; +pub const MCI_QUALITY_ITEM_AUDIO: i32 = 16384i32; +pub const MCI_QUALITY_ITEM_STILL: i32 = 16385i32; +pub const MCI_QUALITY_ITEM_VIDEO: i32 = 16386i32; +pub const MCI_QUALITY_NAME: i32 = 131072i32; +pub const MCI_REALIZE: u32 = 2112u32; +pub const MCI_RECORD: u32 = 2063u32; +pub const MCI_RECORD_INSERT: i32 = 256i32; +pub const MCI_RECORD_OVERWRITE: i32 = 512i32; +pub const MCI_RECT: u32 = 7u32; +pub const MCI_RESERVE: u32 = 2162u32; +pub const MCI_RESOURCE_DRIVER: u32 = 1048576u32; +pub const MCI_RESOURCE_RETURNED: u32 = 65536u32; +pub const MCI_RESTORE: u32 = 2171u32; +pub const MCI_RESUME: u32 = 2133u32; +pub const MCI_RETURN: u32 = 4u32; +pub const MCI_SAVE: u32 = 2067u32; +pub const MCI_SAVE_FILE: i32 = 256i32; +pub const MCI_SECTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MCI32"); +pub const MCI_SEEK: u32 = 2055u32; +pub const MCI_SEEK_TO_END: i32 = 512i32; +pub const MCI_SEEK_TO_START: i32 = 256i32; +pub const MCI_SEQ_FILE: u32 = 16386u32; +pub const MCI_SEQ_FILE_S: u32 = 1222u32; +pub const MCI_SEQ_FORMAT_SONGPTR: u32 = 16385u32; +pub const MCI_SEQ_FORMAT_SONGPTR_S: u32 = 1225u32; +pub const MCI_SEQ_MAPPER: u32 = 65535u32; +pub const MCI_SEQ_MAPPER_S: u32 = 1221u32; +pub const MCI_SEQ_MIDI: u32 = 16387u32; +pub const MCI_SEQ_MIDI_S: u32 = 1223u32; +pub const MCI_SEQ_NONE: u32 = 65533u32; +pub const MCI_SEQ_NONE_S: u32 = 1226u32; +pub const MCI_SEQ_SET_MASTER: i32 = 524288i32; +pub const MCI_SEQ_SET_OFFSET: i32 = 16777216i32; +pub const MCI_SEQ_SET_PORT: i32 = 131072i32; +pub const MCI_SEQ_SET_SLAVE: i32 = 262144i32; +pub const MCI_SEQ_SET_TEMPO: i32 = 65536i32; +pub const MCI_SEQ_SMPTE: u32 = 16388u32; +pub const MCI_SEQ_SMPTE_S: u32 = 1224u32; +pub const MCI_SEQ_STATUS_COPYRIGHT: i32 = 16396i32; +pub const MCI_SEQ_STATUS_DIVTYPE: i32 = 16394i32; +pub const MCI_SEQ_STATUS_MASTER: i32 = 16392i32; +pub const MCI_SEQ_STATUS_NAME: i32 = 16395i32; +pub const MCI_SEQ_STATUS_OFFSET: i32 = 16393i32; +pub const MCI_SEQ_STATUS_PORT: i32 = 16387i32; +pub const MCI_SEQ_STATUS_SLAVE: i32 = 16391i32; +pub const MCI_SEQ_STATUS_TEMPO: i32 = 16386i32; +pub const MCI_SET: u32 = 2061u32; +pub const MCI_SETAUDIO: u32 = 2163u32; +pub const MCI_SETVIDEO: u32 = 2166u32; +pub const MCI_SET_AUDIO: i32 = 2048i32; +pub const MCI_SET_AUDIO_ALL: i32 = 0i32; +pub const MCI_SET_AUDIO_LEFT: i32 = 1i32; +pub const MCI_SET_AUDIO_RIGHT: i32 = 2i32; +pub const MCI_SET_DOOR_CLOSED: i32 = 512i32; +pub const MCI_SET_DOOR_OPEN: i32 = 256i32; +pub const MCI_SET_OFF: i32 = 16384i32; +pub const MCI_SET_ON: i32 = 8192i32; +pub const MCI_SET_TIME_FORMAT: i32 = 1024i32; +pub const MCI_SET_VIDEO: i32 = 4096i32; +pub const MCI_SIGNAL: u32 = 2165u32; +pub const MCI_SPIN: u32 = 2060u32; +pub const MCI_STATUS: u32 = 2068u32; +pub const MCI_STATUS_CURRENT_TRACK: i32 = 8i32; +pub const MCI_STATUS_ITEM: i32 = 256i32; +pub const MCI_STATUS_LENGTH: i32 = 1i32; +pub const MCI_STATUS_MEDIA_PRESENT: i32 = 5i32; +pub const MCI_STATUS_MODE: i32 = 4i32; +pub const MCI_STATUS_NUMBER_OF_TRACKS: i32 = 3i32; +pub const MCI_STATUS_POSITION: i32 = 2i32; +pub const MCI_STATUS_READY: i32 = 7i32; +pub const MCI_STATUS_START: i32 = 512i32; +pub const MCI_STATUS_TIME_FORMAT: i32 = 6i32; +pub const MCI_STEP: u32 = 2062u32; +pub const MCI_STOP: u32 = 2056u32; +pub const MCI_STRING: u32 = 1u32; +pub const MCI_SYSINFO: u32 = 2064u32; +pub const MCI_SYSINFO_INSTALLNAME: i32 = 2048i32; +pub const MCI_SYSINFO_NAME: i32 = 1024i32; +pub const MCI_SYSINFO_OPEN: i32 = 512i32; +pub const MCI_SYSINFO_QUANTITY: i32 = 256i32; +pub const MCI_TEST: i32 = 32i32; +pub const MCI_TO: i32 = 8i32; +pub const MCI_TRACK: i32 = 16i32; +pub const MCI_TRUE: u32 = 532u32; +pub const MCI_UNDO: u32 = 2169u32; +pub const MCI_UNFREEZE: u32 = 2117u32; +pub const MCI_UPDATE: u32 = 2132u32; +pub const MCI_USER_MESSAGES: u32 = 3072u32; +pub const MCI_VD_ESCAPE_STRING: i32 = 256i32; +pub const MCI_VD_FORMAT_TRACK: u32 = 16385u32; +pub const MCI_VD_FORMAT_TRACK_S: u32 = 1029u32; +pub const MCI_VD_GETDEVCAPS_CAN_REVERSE: i32 = 16386i32; +pub const MCI_VD_GETDEVCAPS_CAV: i32 = 131072i32; +pub const MCI_VD_GETDEVCAPS_CLV: i32 = 65536i32; +pub const MCI_VD_GETDEVCAPS_FAST_RATE: i32 = 16387i32; +pub const MCI_VD_GETDEVCAPS_NORMAL_RATE: i32 = 16389i32; +pub const MCI_VD_GETDEVCAPS_SLOW_RATE: i32 = 16388i32; +pub const MCI_VD_MEDIA_CAV: u32 = 1027u32; +pub const MCI_VD_MEDIA_CLV: u32 = 1026u32; +pub const MCI_VD_MEDIA_OTHER: u32 = 1028u32; +pub const MCI_VD_MODE_PARK: u32 = 1025u32; +pub const MCI_VD_PLAY_FAST: i32 = 131072i32; +pub const MCI_VD_PLAY_REVERSE: i32 = 65536i32; +pub const MCI_VD_PLAY_SCAN: i32 = 524288i32; +pub const MCI_VD_PLAY_SLOW: i32 = 1048576i32; +pub const MCI_VD_PLAY_SPEED: i32 = 262144i32; +pub const MCI_VD_SEEK_REVERSE: i32 = 65536i32; +pub const MCI_VD_SPIN_DOWN: i32 = 131072i32; +pub const MCI_VD_SPIN_UP: i32 = 65536i32; +pub const MCI_VD_STATUS_DISC_SIZE: i32 = 16390i32; +pub const MCI_VD_STATUS_FORWARD: i32 = 16387i32; +pub const MCI_VD_STATUS_MEDIA_TYPE: i32 = 16388i32; +pub const MCI_VD_STATUS_SIDE: i32 = 16389i32; +pub const MCI_VD_STATUS_SPEED: i32 = 16386i32; +pub const MCI_VD_STEP_FRAMES: i32 = 65536i32; +pub const MCI_VD_STEP_REVERSE: i32 = 131072i32; +pub const MCI_WAIT: i32 = 2i32; +pub const MCI_WAVE_GETDEVCAPS_INPUTS: i32 = 16385i32; +pub const MCI_WAVE_GETDEVCAPS_OUTPUTS: i32 = 16386i32; +pub const MCI_WAVE_INPUT: i32 = 4194304i32; +pub const MCI_WAVE_MAPPER: u32 = 1153u32; +pub const MCI_WAVE_OPEN_BUFFER: i32 = 65536i32; +pub const MCI_WAVE_OUTPUT: i32 = 8388608i32; +pub const MCI_WAVE_PCM: u32 = 1152u32; +pub const MCI_WAVE_SET_ANYINPUT: i32 = 67108864i32; +pub const MCI_WAVE_SET_ANYOUTPUT: i32 = 134217728i32; +pub const MCI_WAVE_SET_AVGBYTESPERSEC: i32 = 524288i32; +pub const MCI_WAVE_SET_BITSPERSAMPLE: i32 = 2097152i32; +pub const MCI_WAVE_SET_BLOCKALIGN: i32 = 1048576i32; +pub const MCI_WAVE_SET_CHANNELS: i32 = 131072i32; +pub const MCI_WAVE_SET_FORMATTAG: i32 = 65536i32; +pub const MCI_WAVE_SET_SAMPLESPERSEC: i32 = 262144i32; +pub const MCI_WAVE_STATUS_AVGBYTESPERSEC: i32 = 16388i32; +pub const MCI_WAVE_STATUS_BITSPERSAMPLE: i32 = 16390i32; +pub const MCI_WAVE_STATUS_BLOCKALIGN: i32 = 16389i32; +pub const MCI_WAVE_STATUS_CHANNELS: i32 = 16386i32; +pub const MCI_WAVE_STATUS_FORMATTAG: i32 = 16385i32; +pub const MCI_WAVE_STATUS_LEVEL: i32 = 16391i32; +pub const MCI_WAVE_STATUS_SAMPLESPERSEC: i32 = 16387i32; +pub const MCI_WHERE: u32 = 2115u32; +pub const MCI_WINDOW: u32 = 2113u32; +pub const MCMADM_E_REGKEY_NOT_FOUND: ::windows_sys::core::HRESULT = -1072889750i32; +pub const MCMADM_I_NO_EVENTS: ::windows_sys::core::HRESULT = 1074593897i32; +pub const MIDIMAPPER_S: u32 = 1227u32; +pub const MIDI_IO_COOKED: i32 = 2i32; +pub const MIDI_IO_PACKED: i32 = 0i32; +pub const MIDM_ADDBUFFER: u32 = 59u32; +pub const MIDM_CLOSE: u32 = 56u32; +pub const MIDM_GETDEVCAPS: u32 = 54u32; +pub const MIDM_GETNUMDEVS: u32 = 53u32; +pub const MIDM_INIT: u32 = 100u32; +pub const MIDM_INIT_EX: u32 = 104u32; +pub const MIDM_MAPPER: u32 = 8192u32; +pub const MIDM_OPEN: u32 = 55u32; +pub const MIDM_PREPARE: u32 = 57u32; +pub const MIDM_RESET: u32 = 62u32; +pub const MIDM_START: u32 = 60u32; +pub const MIDM_STOP: u32 = 61u32; +pub const MIDM_UNPREPARE: u32 = 58u32; +pub const MIDM_USER: u32 = 16384u32; +pub const MIXERCONTROL_CONTROLTYPE_SRS_MTS: u32 = 536936454u32; +pub const MIXERCONTROL_CONTROLTYPE_SRS_ONOFF: u32 = 536936455u32; +pub const MIXERCONTROL_CONTROLTYPE_SRS_SYNTHSELECT: u32 = 536936456u32; +pub const MMIOERR_ACCESSDENIED: u32 = 268u32; +pub const MMIOERR_BASE: u32 = 256u32; +pub const MMIOERR_CANNOTCLOSE: u32 = 260u32; +pub const MMIOERR_CANNOTEXPAND: u32 = 264u32; +pub const MMIOERR_CANNOTOPEN: u32 = 259u32; +pub const MMIOERR_CANNOTREAD: u32 = 261u32; +pub const MMIOERR_CANNOTSEEK: u32 = 263u32; +pub const MMIOERR_CANNOTWRITE: u32 = 262u32; +pub const MMIOERR_CHUNKNOTFOUND: u32 = 265u32; +pub const MMIOERR_FILENOTFOUND: u32 = 257u32; +pub const MMIOERR_INVALIDFILE: u32 = 272u32; +pub const MMIOERR_NETWORKERROR: u32 = 270u32; +pub const MMIOERR_OUTOFMEMORY: u32 = 258u32; +pub const MMIOERR_PATHNOTFOUND: u32 = 267u32; +pub const MMIOERR_SHARINGVIOLATION: u32 = 269u32; +pub const MMIOERR_TOOMANYOPENFILES: u32 = 271u32; +pub const MMIOERR_UNBUFFERED: u32 = 266u32; +pub const MMIOM_CLOSE: u32 = 4u32; +pub const MMIOM_OPEN: u32 = 3u32; +pub const MMIOM_READ: u32 = 0u32; +pub const MMIOM_RENAME: u32 = 6u32; +pub const MMIOM_SEEK: u32 = 2u32; +pub const MMIOM_USER: u32 = 32768u32; +pub const MMIOM_WRITE: u32 = 1u32; +pub const MMIOM_WRITEFLUSH: u32 = 5u32; +pub const MMIO_ALLOCBUF: u32 = 65536u32; +pub const MMIO_COMPAT: u32 = 0u32; +pub const MMIO_CREATE: u32 = 4096u32; +pub const MMIO_CREATELIST: u32 = 64u32; +pub const MMIO_CREATERIFF: u32 = 32u32; +pub const MMIO_DEFAULTBUFFER: u32 = 8192u32; +pub const MMIO_DELETE: u32 = 512u32; +pub const MMIO_DENYNONE: u32 = 64u32; +pub const MMIO_DENYREAD: u32 = 48u32; +pub const MMIO_DENYWRITE: u32 = 32u32; +pub const MMIO_DIRTY: u32 = 268435456u32; +pub const MMIO_EMPTYBUF: u32 = 16u32; +pub const MMIO_EXCLUSIVE: u32 = 16u32; +pub const MMIO_EXIST: u32 = 16384u32; +pub const MMIO_FHOPEN: u32 = 16u32; +pub const MMIO_FINDCHUNK: u32 = 16u32; +pub const MMIO_FINDLIST: u32 = 64u32; +pub const MMIO_FINDPROC: u32 = 262144u32; +pub const MMIO_FINDRIFF: u32 = 32u32; +pub const MMIO_GETTEMP: u32 = 131072u32; +pub const MMIO_GLOBALPROC: u32 = 268435456u32; +pub const MMIO_INSTALLPROC: u32 = 65536u32; +pub const MMIO_PARSE: u32 = 256u32; +pub const MMIO_READ: u32 = 0u32; +pub const MMIO_READWRITE: u32 = 2u32; +pub const MMIO_REMOVEPROC: u32 = 131072u32; +pub const MMIO_RWMODE: u32 = 3u32; +pub const MMIO_SHAREMODE: u32 = 112u32; +pub const MMIO_TOUPPER: u32 = 16u32; +pub const MMIO_UNICODEPROC: u32 = 16777216u32; +pub const MMIO_WRITE: u32 = 1u32; +pub const MM_3COM: u32 = 260u32; +pub const MM_3COM_CB_MIXER: u32 = 1u32; +pub const MM_3COM_CB_WAVEIN: u32 = 2u32; +pub const MM_3COM_CB_WAVEOUT: u32 = 3u32; +pub const MM_3DFX: u32 = 262u32; +pub const MM_AARDVARK: u32 = 11u32; +pub const MM_AARDVARK_STUDIO12_WAVEIN: u32 = 2u32; +pub const MM_AARDVARK_STUDIO12_WAVEOUT: u32 = 1u32; +pub const MM_AARDVARK_STUDIO88_WAVEIN: u32 = 4u32; +pub const MM_AARDVARK_STUDIO88_WAVEOUT: u32 = 3u32; +pub const MM_ACTIVEVOICE: u32 = 225u32; +pub const MM_ACTIVEVOICE_ACM_VOXADPCM: u32 = 1u32; +pub const MM_ACULAB: u32 = 14u32; +pub const MM_ADDX: u32 = 118u32; +pub const MM_ADDX_PCTV_AUX_CD: u32 = 5u32; +pub const MM_ADDX_PCTV_AUX_LINE: u32 = 6u32; +pub const MM_ADDX_PCTV_DIGITALMIX: u32 = 1u32; +pub const MM_ADDX_PCTV_MIXER: u32 = 4u32; +pub const MM_ADDX_PCTV_WAVEIN: u32 = 2u32; +pub const MM_ADDX_PCTV_WAVEOUT: u32 = 3u32; +pub const MM_ADLACC: u32 = 91u32; +pub const MM_ADMOS: u32 = 235u32; +pub const MM_ADMOS_FM_SYNTH: u32 = 1u32; +pub const MM_ADMOS_QS3AMIDIIN: u32 = 3u32; +pub const MM_ADMOS_QS3AMIDIOUT: u32 = 2u32; +pub const MM_ADMOS_QS3AWAVEIN: u32 = 5u32; +pub const MM_ADMOS_QS3AWAVEOUT: u32 = 4u32; +pub const MM_AHEAD: u32 = 77u32; +pub const MM_AHEAD_GENERIC: u32 = 4u32; +pub const MM_AHEAD_MULTISOUND: u32 = 1u32; +pub const MM_AHEAD_PROAUDIO: u32 = 3u32; +pub const MM_AHEAD_SOUNDBLASTER: u32 = 2u32; +pub const MM_ALARIS: u32 = 174u32; +pub const MM_ALDIGITAL: u32 = 143u32; +pub const MM_ALESIS: u32 = 243u32; +pub const MM_ALGOVISION: u32 = 266u32; +pub const MM_ALGOVISION_VB80AUX: u32 = 4u32; +pub const MM_ALGOVISION_VB80AUX2: u32 = 5u32; +pub const MM_ALGOVISION_VB80MIXER: u32 = 3u32; +pub const MM_ALGOVISION_VB80WAVEIN: u32 = 2u32; +pub const MM_ALGOVISION_VB80WAVEOUT: u32 = 1u32; +pub const MM_AMD: u32 = 146u32; +pub const MM_AMD_INTERWAVE_AUX1: u32 = 10u32; +pub const MM_AMD_INTERWAVE_AUX2: u32 = 11u32; +pub const MM_AMD_INTERWAVE_AUX_CD: u32 = 13u32; +pub const MM_AMD_INTERWAVE_AUX_MIC: u32 = 12u32; +pub const MM_AMD_INTERWAVE_EX_CD: u32 = 7u32; +pub const MM_AMD_INTERWAVE_EX_TELEPHONY: u32 = 16u32; +pub const MM_AMD_INTERWAVE_JOYSTICK: u32 = 6u32; +pub const MM_AMD_INTERWAVE_MIDIIN: u32 = 8u32; +pub const MM_AMD_INTERWAVE_MIDIOUT: u32 = 9u32; +pub const MM_AMD_INTERWAVE_MIXER1: u32 = 4u32; +pub const MM_AMD_INTERWAVE_MIXER2: u32 = 5u32; +pub const MM_AMD_INTERWAVE_MONO_IN: u32 = 14u32; +pub const MM_AMD_INTERWAVE_MONO_OUT: u32 = 15u32; +pub const MM_AMD_INTERWAVE_STEREO_ENHANCED: u32 = 19u32; +pub const MM_AMD_INTERWAVE_SYNTH: u32 = 3u32; +pub const MM_AMD_INTERWAVE_WAVEIN: u32 = 1u32; +pub const MM_AMD_INTERWAVE_WAVEOUT: u32 = 2u32; +pub const MM_AMD_INTERWAVE_WAVEOUT_BASE: u32 = 17u32; +pub const MM_AMD_INTERWAVE_WAVEOUT_TREBLE: u32 = 18u32; +pub const MM_ANALOGDEVICES: u32 = 252u32; +pub const MM_ANTEX: u32 = 31u32; +pub const MM_ANTEX_AUDIOPORT22_FEEDTHRU: u32 = 9u32; +pub const MM_ANTEX_AUDIOPORT22_WAVEIN: u32 = 7u32; +pub const MM_ANTEX_AUDIOPORT22_WAVEOUT: u32 = 8u32; +pub const MM_ANTEX_SX12_WAVEIN: u32 = 1u32; +pub const MM_ANTEX_SX12_WAVEOUT: u32 = 2u32; +pub const MM_ANTEX_SX15_WAVEIN: u32 = 3u32; +pub const MM_ANTEX_SX15_WAVEOUT: u32 = 4u32; +pub const MM_ANTEX_VP625_WAVEIN: u32 = 5u32; +pub const MM_ANTEX_VP625_WAVEOUT: u32 = 6u32; +pub const MM_APICOM: u32 = 116u32; +pub const MM_APPLE: u32 = 99u32; +pub const MM_APPS: u32 = 42u32; +pub const MM_APT: u32 = 56u32; +pub const MM_APT_ACE100CD: u32 = 1u32; +pub const MM_ARRAY: u32 = 231u32; +pub const MM_ARTISOFT: u32 = 20u32; +pub const MM_ARTISOFT_SBWAVEIN: u32 = 1u32; +pub const MM_ARTISOFT_SBWAVEOUT: u32 = 2u32; +pub const MM_AST: u32 = 64u32; +pub const MM_AST_MODEMWAVE_WAVEIN: u32 = 13u32; +pub const MM_AST_MODEMWAVE_WAVEOUT: u32 = 14u32; +pub const MM_ATI: u32 = 27u32; +pub const MM_ATT: u32 = 185u32; +pub const MM_ATT_G729A: u32 = 1u32; +pub const MM_ATT_MICROELECTRONICS: u32 = 139u32; +pub const MM_AU8820_AUX: u32 = 21u32; +pub const MM_AU8820_MIDIIN: u32 = 23u32; +pub const MM_AU8820_MIDIOUT: u32 = 22u32; +pub const MM_AU8820_MIXER: u32 = 20u32; +pub const MM_AU8820_SYNTH: u32 = 17u32; +pub const MM_AU8820_WAVEIN: u32 = 19u32; +pub const MM_AU8820_WAVEOUT: u32 = 18u32; +pub const MM_AU8830_AUX: u32 = 37u32; +pub const MM_AU8830_MIDIIN: u32 = 39u32; +pub const MM_AU8830_MIDIOUT: u32 = 38u32; +pub const MM_AU8830_MIXER: u32 = 36u32; +pub const MM_AU8830_SYNTH: u32 = 33u32; +pub const MM_AU8830_WAVEIN: u32 = 35u32; +pub const MM_AU8830_WAVEOUT: u32 = 34u32; +pub const MM_AUDIOFILE: u32 = 47u32; +pub const MM_AUDIOPT: u32 = 74u32; +pub const MM_AUDIOSCIENCE: u32 = 217u32; +pub const MM_AURAVISION: u32 = 80u32; +pub const MM_AUREAL: u32 = 181u32; +pub const MM_AUREAL_AU8820: u32 = 16u32; +pub const MM_AUREAL_AU8830: u32 = 32u32; +pub const MM_AZTECH: u32 = 52u32; +pub const MM_AZTECH_AUX: u32 = 404u32; +pub const MM_AZTECH_AUX_CD: u32 = 401u32; +pub const MM_AZTECH_AUX_LINE: u32 = 402u32; +pub const MM_AZTECH_AUX_MIC: u32 = 403u32; +pub const MM_AZTECH_DSP16_FMSYNTH: u32 = 68u32; +pub const MM_AZTECH_DSP16_WAVEIN: u32 = 65u32; +pub const MM_AZTECH_DSP16_WAVEOUT: u32 = 66u32; +pub const MM_AZTECH_DSP16_WAVESYNTH: u32 = 70u32; +pub const MM_AZTECH_FMSYNTH: u32 = 20u32; +pub const MM_AZTECH_MIDIIN: u32 = 4u32; +pub const MM_AZTECH_MIDIOUT: u32 = 3u32; +pub const MM_AZTECH_MIXER: u32 = 21u32; +pub const MM_AZTECH_NOVA16_MIXER: u32 = 73u32; +pub const MM_AZTECH_NOVA16_WAVEIN: u32 = 71u32; +pub const MM_AZTECH_NOVA16_WAVEOUT: u32 = 72u32; +pub const MM_AZTECH_PRO16_FMSYNTH: u32 = 38u32; +pub const MM_AZTECH_PRO16_WAVEIN: u32 = 33u32; +pub const MM_AZTECH_PRO16_WAVEOUT: u32 = 34u32; +pub const MM_AZTECH_WASH16_MIXER: u32 = 76u32; +pub const MM_AZTECH_WASH16_WAVEIN: u32 = 74u32; +pub const MM_AZTECH_WASH16_WAVEOUT: u32 = 75u32; +pub const MM_AZTECH_WAVEIN: u32 = 17u32; +pub const MM_AZTECH_WAVEOUT: u32 = 18u32; +pub const MM_BCB: u32 = 192u32; +pub const MM_BCB_NETBOARD_10: u32 = 1u32; +pub const MM_BCB_TT75_10: u32 = 2u32; +pub const MM_BECUBED: u32 = 10u32; +pub const MM_BERCOS: u32 = 199u32; +pub const MM_BERCOS_MIXER: u32 = 2u32; +pub const MM_BERCOS_WAVEIN: u32 = 1u32; +pub const MM_BERCOS_WAVEOUT: u32 = 3u32; +pub const MM_BERKOM: u32 = 189u32; +pub const MM_BINTEC: u32 = 12u32; +pub const MM_BINTEC_TAPI_WAVE: u32 = 1u32; +pub const MM_BROOKTREE: u32 = 121u32; +pub const MM_BTV_AUX_CD: u32 = 8u32; +pub const MM_BTV_AUX_LINE: u32 = 6u32; +pub const MM_BTV_AUX_MIC: u32 = 7u32; +pub const MM_BTV_DIGITALIN: u32 = 9u32; +pub const MM_BTV_DIGITALOUT: u32 = 10u32; +pub const MM_BTV_MIDIIN: u32 = 3u32; +pub const MM_BTV_MIDIOUT: u32 = 4u32; +pub const MM_BTV_MIDISYNTH: u32 = 5u32; +pub const MM_BTV_MIDIWAVESTREAM: u32 = 11u32; +pub const MM_BTV_MIXER: u32 = 12u32; +pub const MM_BTV_WAVEIN: u32 = 1u32; +pub const MM_BTV_WAVEOUT: u32 = 2u32; +pub const MM_CANAM: u32 = 148u32; +pub const MM_CANAM_CBXWAVEIN: u32 = 2u32; +pub const MM_CANAM_CBXWAVEOUT: u32 = 1u32; +pub const MM_CANOPUS: u32 = 49u32; +pub const MM_CANOPUS_ACM_DVREX: u32 = 1u32; +pub const MM_CASIO: u32 = 162u32; +pub const MM_CASIO_LSG_MIDIOUT: u32 = 3u32; +pub const MM_CASIO_WP150_MIDIIN: u32 = 2u32; +pub const MM_CASIO_WP150_MIDIOUT: u32 = 1u32; +pub const MM_CAT: u32 = 41u32; +pub const MM_CAT_WAVEOUT: u32 = 1u32; +pub const MM_CDPC_AUX: u32 = 119u32; +pub const MM_CDPC_MIDIIN: u32 = 114u32; +pub const MM_CDPC_MIDIOUT: u32 = 113u32; +pub const MM_CDPC_MIXER: u32 = 118u32; +pub const MM_CDPC_SYNTH: u32 = 115u32; +pub const MM_CDPC_WAVEIN: u32 = 117u32; +pub const MM_CDPC_WAVEOUT: u32 = 116u32; +pub const MM_CHROMATIC: u32 = 155u32; +pub const MM_CHROMATIC_M1: u32 = 1u32; +pub const MM_CHROMATIC_M1_AUX: u32 = 6u32; +pub const MM_CHROMATIC_M1_AUX_CD: u32 = 7u32; +pub const MM_CHROMATIC_M1_FMSYNTH: u32 = 4u32; +pub const MM_CHROMATIC_M1_MIDIIN: u32 = 8u32; +pub const MM_CHROMATIC_M1_MIDIOUT: u32 = 9u32; +pub const MM_CHROMATIC_M1_MIXER: u32 = 5u32; +pub const MM_CHROMATIC_M1_MPEGWAVEIN: u32 = 17u32; +pub const MM_CHROMATIC_M1_MPEGWAVEOUT: u32 = 18u32; +pub const MM_CHROMATIC_M1_WAVEIN: u32 = 2u32; +pub const MM_CHROMATIC_M1_WAVEOUT: u32 = 3u32; +pub const MM_CHROMATIC_M1_WTSYNTH: u32 = 16u32; +pub const MM_CHROMATIC_M2: u32 = 19u32; +pub const MM_CHROMATIC_M2_AUX: u32 = 24u32; +pub const MM_CHROMATIC_M2_AUX_CD: u32 = 25u32; +pub const MM_CHROMATIC_M2_FMSYNTH: u32 = 22u32; +pub const MM_CHROMATIC_M2_MIDIIN: u32 = 32u32; +pub const MM_CHROMATIC_M2_MIDIOUT: u32 = 33u32; +pub const MM_CHROMATIC_M2_MIXER: u32 = 23u32; +pub const MM_CHROMATIC_M2_MPEGWAVEIN: u32 = 35u32; +pub const MM_CHROMATIC_M2_MPEGWAVEOUT: u32 = 36u32; +pub const MM_CHROMATIC_M2_WAVEIN: u32 = 20u32; +pub const MM_CHROMATIC_M2_WAVEOUT: u32 = 21u32; +pub const MM_CHROMATIC_M2_WTSYNTH: u32 = 34u32; +pub const MM_CIRRUSLOGIC: u32 = 105u32; +pub const MM_COLORGRAPH: u32 = 179u32; +pub const MM_COMPAQ: u32 = 92u32; +pub const MM_COMPAQ_BB_WAVEAUX: u32 = 3u32; +pub const MM_COMPAQ_BB_WAVEIN: u32 = 1u32; +pub const MM_COMPAQ_BB_WAVEOUT: u32 = 2u32; +pub const MM_COMPUSIC: u32 = 89u32; +pub const MM_COMPUTER_FRIENDS: u32 = 45u32; +pub const MM_CONCEPTS: u32 = 108u32; +pub const MM_CONNECTIX: u32 = 158u32; +pub const MM_CONNECTIX_VIDEC_CODEC: u32 = 1u32; +pub const MM_CONTROLRES: u32 = 84u32; +pub const MM_COREDYNAMICS: u32 = 147u32; +pub const MM_COREDYNAMICS_DYNAGRAFX_VGA: u32 = 9u32; +pub const MM_COREDYNAMICS_DYNAGRAFX_WAVE_IN: u32 = 10u32; +pub const MM_COREDYNAMICS_DYNAGRAFX_WAVE_OUT: u32 = 11u32; +pub const MM_COREDYNAMICS_DYNAMIXHR: u32 = 1u32; +pub const MM_COREDYNAMICS_DYNASONIX_AUDIO_IN: u32 = 7u32; +pub const MM_COREDYNAMICS_DYNASONIX_AUDIO_OUT: u32 = 8u32; +pub const MM_COREDYNAMICS_DYNASONIX_MIDI_IN: u32 = 3u32; +pub const MM_COREDYNAMICS_DYNASONIX_MIDI_OUT: u32 = 4u32; +pub const MM_COREDYNAMICS_DYNASONIX_SYNTH: u32 = 2u32; +pub const MM_COREDYNAMICS_DYNASONIX_WAVE_IN: u32 = 5u32; +pub const MM_COREDYNAMICS_DYNASONIX_WAVE_OUT: u32 = 6u32; +pub const MM_CREATIVE: u32 = 2u32; +pub const MM_CREATIVE_AUX_CD: u32 = 401u32; +pub const MM_CREATIVE_AUX_LINE: u32 = 402u32; +pub const MM_CREATIVE_AUX_MASTER: u32 = 404u32; +pub const MM_CREATIVE_AUX_MIC: u32 = 403u32; +pub const MM_CREATIVE_AUX_MIDI: u32 = 407u32; +pub const MM_CREATIVE_AUX_PCSPK: u32 = 405u32; +pub const MM_CREATIVE_AUX_WAVE: u32 = 406u32; +pub const MM_CREATIVE_FMSYNTH_MONO: u32 = 301u32; +pub const MM_CREATIVE_FMSYNTH_STEREO: u32 = 302u32; +pub const MM_CREATIVE_MIDIIN: u32 = 202u32; +pub const MM_CREATIVE_MIDIOUT: u32 = 201u32; +pub const MM_CREATIVE_MIDI_AWE32: u32 = 303u32; +pub const MM_CREATIVE_PHNBLST_WAVEIN: u32 = 5u32; +pub const MM_CREATIVE_PHNBLST_WAVEOUT: u32 = 105u32; +pub const MM_CREATIVE_SB15_WAVEIN: u32 = 1u32; +pub const MM_CREATIVE_SB15_WAVEOUT: u32 = 101u32; +pub const MM_CREATIVE_SB16_MIXER: u32 = 409u32; +pub const MM_CREATIVE_SB20_WAVEIN: u32 = 2u32; +pub const MM_CREATIVE_SB20_WAVEOUT: u32 = 102u32; +pub const MM_CREATIVE_SBP16_WAVEIN: u32 = 4u32; +pub const MM_CREATIVE_SBP16_WAVEOUT: u32 = 104u32; +pub const MM_CREATIVE_SBPRO_MIXER: u32 = 408u32; +pub const MM_CREATIVE_SBPRO_WAVEIN: u32 = 3u32; +pub const MM_CREATIVE_SBPRO_WAVEOUT: u32 = 103u32; +pub const MM_CRYSTAL: u32 = 132u32; +pub const MM_CRYSTAL_CS4232_INPUTGAIN_AUX1: u32 = 13u32; +pub const MM_CRYSTAL_CS4232_INPUTGAIN_LOOP: u32 = 14u32; +pub const MM_CRYSTAL_CS4232_MIDIIN: u32 = 9u32; +pub const MM_CRYSTAL_CS4232_MIDIOUT: u32 = 10u32; +pub const MM_CRYSTAL_CS4232_WAVEAUX_AUX1: u32 = 4u32; +pub const MM_CRYSTAL_CS4232_WAVEAUX_AUX2: u32 = 5u32; +pub const MM_CRYSTAL_CS4232_WAVEAUX_LINE: u32 = 6u32; +pub const MM_CRYSTAL_CS4232_WAVEAUX_MASTER: u32 = 8u32; +pub const MM_CRYSTAL_CS4232_WAVEAUX_MONO: u32 = 7u32; +pub const MM_CRYSTAL_CS4232_WAVEIN: u32 = 1u32; +pub const MM_CRYSTAL_CS4232_WAVEMIXER: u32 = 3u32; +pub const MM_CRYSTAL_CS4232_WAVEOUT: u32 = 2u32; +pub const MM_CRYSTAL_NET: u32 = 154u32; +pub const MM_CRYSTAL_SOUND_FUSION_JOYSTICK: u32 = 26u32; +pub const MM_CRYSTAL_SOUND_FUSION_MIDIIN: u32 = 24u32; +pub const MM_CRYSTAL_SOUND_FUSION_MIDIOUT: u32 = 25u32; +pub const MM_CRYSTAL_SOUND_FUSION_MIXER: u32 = 23u32; +pub const MM_CRYSTAL_SOUND_FUSION_WAVEIN: u32 = 21u32; +pub const MM_CRYSTAL_SOUND_FUSION_WAVEOUT: u32 = 22u32; +pub const MM_CS: u32 = 242u32; +pub const MM_CYRIX: u32 = 6u32; +pub const MM_CYRIX_XAAUX: u32 = 6u32; +pub const MM_CYRIX_XAMIDIIN: u32 = 2u32; +pub const MM_CYRIX_XAMIDIOUT: u32 = 3u32; +pub const MM_CYRIX_XAMIXER: u32 = 7u32; +pub const MM_CYRIX_XASYNTH: u32 = 1u32; +pub const MM_CYRIX_XAWAVEIN: u32 = 4u32; +pub const MM_CYRIX_XAWAVEOUT: u32 = 5u32; +pub const MM_DATAFUSION: u32 = 196u32; +pub const MM_DATARAN: u32 = 232u32; +pub const MM_DDD: u32 = 151u32; +pub const MM_DDD_MIDILINK_MIDIIN: u32 = 1u32; +pub const MM_DDD_MIDILINK_MIDIOUT: u32 = 2u32; +pub const MM_DF_ACM_G726: u32 = 1u32; +pub const MM_DF_ACM_GSM610: u32 = 2u32; +pub const MM_DIACOUSTICS: u32 = 129u32; +pub const MM_DIACOUSTICS_DRUM_ACTION: u32 = 1u32; +pub const MM_DIALOGIC: u32 = 93u32; +pub const MM_DIAMONDMM: u32 = 163u32; +pub const MM_DICTAPHONE: u32 = 214u32; +pub const MM_DICTAPHONE_G726: u32 = 1u32; +pub const MM_DIGIGRAM: u32 = 227u32; +pub const MM_DIGITAL: u32 = 100u32; +pub const MM_DIGITAL_ACM_G723: u32 = 3u32; +pub const MM_DIGITAL_AUDIO_LABS: u32 = 136u32; +pub const MM_DIGITAL_AUDIO_LABS_CDLX: u32 = 19u32; +pub const MM_DIGITAL_AUDIO_LABS_CPRO: u32 = 17u32; +pub const MM_DIGITAL_AUDIO_LABS_CTDIF: u32 = 20u32; +pub const MM_DIGITAL_AUDIO_LABS_DOC: u32 = 2u32; +pub const MM_DIGITAL_AUDIO_LABS_TC: u32 = 1u32; +pub const MM_DIGITAL_AUDIO_LABS_V8: u32 = 16u32; +pub const MM_DIGITAL_AUDIO_LABS_VP: u32 = 18u32; +pub const MM_DIGITAL_AV320_WAVEIN: u32 = 1u32; +pub const MM_DIGITAL_AV320_WAVEOUT: u32 = 2u32; +pub const MM_DIGITAL_ICM_H261: u32 = 5u32; +pub const MM_DIGITAL_ICM_H263: u32 = 4u32; +pub const MM_DIMD_AUX_LINE: u32 = 9u32; +pub const MM_DIMD_DIRSOUND: u32 = 1u32; +pub const MM_DIMD_MIDIIN: u32 = 7u32; +pub const MM_DIMD_MIDIOUT: u32 = 8u32; +pub const MM_DIMD_MIXER: u32 = 10u32; +pub const MM_DIMD_PLATFORM: u32 = 0u32; +pub const MM_DIMD_VIRTJOY: u32 = 4u32; +pub const MM_DIMD_VIRTMPU: u32 = 2u32; +pub const MM_DIMD_VIRTSB: u32 = 3u32; +pub const MM_DIMD_WAVEIN: u32 = 5u32; +pub const MM_DIMD_WAVEOUT: u32 = 6u32; +pub const MM_DIMD_WSS_AUX: u32 = 21u32; +pub const MM_DIMD_WSS_MIXER: u32 = 17u32; +pub const MM_DIMD_WSS_SYNTH: u32 = 76u32; +pub const MM_DIMD_WSS_WAVEIN: u32 = 14u32; +pub const MM_DIMD_WSS_WAVEOUT: u32 = 15u32; +pub const MM_DOLBY: u32 = 78u32; +pub const MM_DPSINC: u32 = 191u32; +pub const MM_DSP_GROUP: u32 = 43u32; +pub const MM_DSP_GROUP_TRUESPEECH: u32 = 1u32; +pub const MM_DSP_SOLUTIONS: u32 = 25u32; +pub const MM_DSP_SOLUTIONS_AUX: u32 = 4u32; +pub const MM_DSP_SOLUTIONS_SYNTH: u32 = 3u32; +pub const MM_DSP_SOLUTIONS_WAVEIN: u32 = 2u32; +pub const MM_DSP_SOLUTIONS_WAVEOUT: u32 = 1u32; +pub const MM_DTS: u32 = 226u32; +pub const MM_DTS_DS: u32 = 1u32; +pub const MM_DUCK: u32 = 197u32; +pub const MM_DVISION: u32 = 165u32; +pub const MM_ECHO: u32 = 39u32; +pub const MM_ECHO_AUX: u32 = 6u32; +pub const MM_ECHO_MIDIIN: u32 = 5u32; +pub const MM_ECHO_MIDIOUT: u32 = 4u32; +pub const MM_ECHO_SYNTH: u32 = 1u32; +pub const MM_ECHO_WAVEIN: u32 = 3u32; +pub const MM_ECHO_WAVEOUT: u32 = 2u32; +pub const MM_ECS: u32 = 145u32; +pub const MM_ECS_AADF_MIDI_IN: u32 = 10u32; +pub const MM_ECS_AADF_MIDI_OUT: u32 = 11u32; +pub const MM_ECS_AADF_WAVE2MIDI_IN: u32 = 12u32; +pub const MM_EES: u32 = 219u32; +pub const MM_EES_PCMIDI14: u32 = 1u32; +pub const MM_EES_PCMIDI14_IN: u32 = 2u32; +pub const MM_EES_PCMIDI14_OUT1: u32 = 3u32; +pub const MM_EES_PCMIDI14_OUT2: u32 = 4u32; +pub const MM_EES_PCMIDI14_OUT3: u32 = 5u32; +pub const MM_EES_PCMIDI14_OUT4: u32 = 6u32; +pub const MM_EMAGIC: u32 = 208u32; +pub const MM_EMAGIC_UNITOR8: u32 = 1u32; +pub const MM_EMU: u32 = 19u32; +pub const MM_EMU_APSMIDIIN: u32 = 2u32; +pub const MM_EMU_APSMIDIOUT: u32 = 3u32; +pub const MM_EMU_APSSYNTH: u32 = 1u32; +pub const MM_EMU_APSWAVEIN: u32 = 4u32; +pub const MM_EMU_APSWAVEOUT: u32 = 5u32; +pub const MM_ENET: u32 = 206u32; +pub const MM_ENET_T2000_HANDSETIN: u32 = 3u32; +pub const MM_ENET_T2000_HANDSETOUT: u32 = 4u32; +pub const MM_ENET_T2000_LINEIN: u32 = 1u32; +pub const MM_ENET_T2000_LINEOUT: u32 = 2u32; +pub const MM_ENSONIQ: u32 = 125u32; +pub const MM_ENSONIQ_SOUNDSCAPE: u32 = 16u32; +pub const MM_EPSON: u32 = 50u32; +pub const MM_EPS_FMSND: u32 = 1u32; +pub const MM_ESS: u32 = 46u32; +pub const MM_ESS_AMAUX: u32 = 3u32; +pub const MM_ESS_AMMIDIIN: u32 = 6u32; +pub const MM_ESS_AMMIDIOUT: u32 = 5u32; +pub const MM_ESS_AMSYNTH: u32 = 4u32; +pub const MM_ESS_AMWAVEIN: u32 = 2u32; +pub const MM_ESS_AMWAVEOUT: u32 = 1u32; +pub const MM_ESS_AUX_CD: u32 = 8u32; +pub const MM_ESS_ES1488_MIXER: u32 = 24u32; +pub const MM_ESS_ES1488_WAVEIN: u32 = 23u32; +pub const MM_ESS_ES1488_WAVEOUT: u32 = 22u32; +pub const MM_ESS_ES1688_MIXER: u32 = 27u32; +pub const MM_ESS_ES1688_WAVEIN: u32 = 26u32; +pub const MM_ESS_ES1688_WAVEOUT: u32 = 25u32; +pub const MM_ESS_ES1788_MIXER: u32 = 30u32; +pub const MM_ESS_ES1788_WAVEIN: u32 = 29u32; +pub const MM_ESS_ES1788_WAVEOUT: u32 = 28u32; +pub const MM_ESS_ES1868_MIXER: u32 = 36u32; +pub const MM_ESS_ES1868_WAVEIN: u32 = 35u32; +pub const MM_ESS_ES1868_WAVEOUT: u32 = 34u32; +pub const MM_ESS_ES1878_MIXER: u32 = 39u32; +pub const MM_ESS_ES1878_WAVEIN: u32 = 38u32; +pub const MM_ESS_ES1878_WAVEOUT: u32 = 37u32; +pub const MM_ESS_ES1888_MIXER: u32 = 33u32; +pub const MM_ESS_ES1888_WAVEIN: u32 = 32u32; +pub const MM_ESS_ES1888_WAVEOUT: u32 = 31u32; +pub const MM_ESS_ES488_MIXER: u32 = 18u32; +pub const MM_ESS_ES488_WAVEIN: u32 = 17u32; +pub const MM_ESS_ES488_WAVEOUT: u32 = 16u32; +pub const MM_ESS_ES688_MIXER: u32 = 21u32; +pub const MM_ESS_ES688_WAVEIN: u32 = 20u32; +pub const MM_ESS_ES688_WAVEOUT: u32 = 19u32; +pub const MM_ESS_MIXER: u32 = 7u32; +pub const MM_ESS_MPU401_MIDIIN: u32 = 10u32; +pub const MM_ESS_MPU401_MIDIOUT: u32 = 9u32; +pub const MM_ETEK: u32 = 241u32; +pub const MM_ETEK_KWIKMIDI_MIDIIN: u32 = 1u32; +pub const MM_ETEK_KWIKMIDI_MIDIOUT: u32 = 2u32; +pub const MM_EUPHONICS: u32 = 152u32; +pub const MM_EUPHONICS_AUX_CD: u32 = 1u32; +pub const MM_EUPHONICS_AUX_LINE: u32 = 2u32; +pub const MM_EUPHONICS_AUX_MASTER: u32 = 3u32; +pub const MM_EUPHONICS_AUX_MIC: u32 = 4u32; +pub const MM_EUPHONICS_AUX_MIDI: u32 = 5u32; +pub const MM_EUPHONICS_AUX_WAVE: u32 = 6u32; +pub const MM_EUPHONICS_EUSYNTH: u32 = 14u32; +pub const MM_EUPHONICS_FMSYNTH_MONO: u32 = 7u32; +pub const MM_EUPHONICS_FMSYNTH_STEREO: u32 = 8u32; +pub const MM_EUPHONICS_MIDIIN: u32 = 9u32; +pub const MM_EUPHONICS_MIDIOUT: u32 = 10u32; +pub const MM_EUPHONICS_MIXER: u32 = 11u32; +pub const MM_EUPHONICS_WAVEIN: u32 = 12u32; +pub const MM_EUPHONICS_WAVEOUT: u32 = 13u32; +pub const MM_EVEREX: u32 = 38u32; +pub const MM_EVEREX_CARRIER: u32 = 1u32; +pub const MM_EXAN: u32 = 63u32; +pub const MM_FAITH: u32 = 15u32; +pub const MM_FAST: u32 = 126u32; +pub const MM_FHGIIS_MPEGLAYER3: u32 = 10u32; +pub const MM_FHGIIS_MPEGLAYER3_ADVANCED: u32 = 12u32; +pub const MM_FHGIIS_MPEGLAYER3_ADVANCEDPLUS: u32 = 14u32; +pub const MM_FHGIIS_MPEGLAYER3_BASIC: u32 = 11u32; +pub const MM_FHGIIS_MPEGLAYER3_DECODE: u32 = 9u32; +pub const MM_FHGIIS_MPEGLAYER3_LITE: u32 = 10u32; +pub const MM_FHGIIS_MPEGLAYER3_PROFESSIONAL: u32 = 13u32; +pub const MM_FLEXION: u32 = 249u32; +pub const MM_FLEXION_X300_WAVEIN: u32 = 1u32; +pub const MM_FLEXION_X300_WAVEOUT: u32 = 2u32; +pub const MM_FORTEMEDIA: u32 = 229u32; +pub const MM_FORTEMEDIA_AUX: u32 = 5u32; +pub const MM_FORTEMEDIA_FMSYNC: u32 = 3u32; +pub const MM_FORTEMEDIA_MIXER: u32 = 4u32; +pub const MM_FORTEMEDIA_WAVEIN: u32 = 1u32; +pub const MM_FORTEMEDIA_WAVEOUT: u32 = 2u32; +pub const MM_FRAUNHOFER_IIS: u32 = 172u32; +pub const MM_FRONTIER: u32 = 160u32; +pub const MM_FRONTIER_WAVECENTER_MIDIIN: u32 = 1u32; +pub const MM_FRONTIER_WAVECENTER_MIDIOUT: u32 = 2u32; +pub const MM_FRONTIER_WAVECENTER_WAVEIN: u32 = 3u32; +pub const MM_FRONTIER_WAVECENTER_WAVEOUT: u32 = 4u32; +pub const MM_FTR: u32 = 198u32; +pub const MM_FTR_ACM: u32 = 2u32; +pub const MM_FTR_ENCODER_WAVEIN: u32 = 1u32; +pub const MM_FUJITSU: u32 = 4u32; +pub const MM_GADGETLABS: u32 = 159u32; +pub const MM_GADGETLABS_WAVE42_WAVEIN: u32 = 3u32; +pub const MM_GADGETLABS_WAVE42_WAVEOUT: u32 = 4u32; +pub const MM_GADGETLABS_WAVE44_WAVEIN: u32 = 1u32; +pub const MM_GADGETLABS_WAVE44_WAVEOUT: u32 = 2u32; +pub const MM_GADGETLABS_WAVE4_MIDIIN: u32 = 5u32; +pub const MM_GADGETLABS_WAVE4_MIDIOUT: u32 = 6u32; +pub const MM_GRANDE: u32 = 117u32; +pub const MM_GRAVIS: u32 = 34u32; +pub const MM_GUILLEMOT: u32 = 207u32; +pub const MM_GULBRANSEN: u32 = 130u32; +pub const MM_HAFTMANN: u32 = 220u32; +pub const MM_HAFTMANN_LPTDAC2: u32 = 1u32; +pub const MM_HEADSPACE: u32 = 222u32; +pub const MM_HEADSPACE_HAEMIXER: u32 = 4u32; +pub const MM_HEADSPACE_HAESYNTH: u32 = 1u32; +pub const MM_HEADSPACE_HAEWAVEIN: u32 = 3u32; +pub const MM_HEADSPACE_HAEWAVEOUT: u32 = 2u32; +pub const MM_HEWLETT_PACKARD: u32 = 13u32; +pub const MM_HEWLETT_PACKARD_CU_CODEC: u32 = 1u32; +pub const MM_HORIZONS: u32 = 107u32; +pub const MM_HP: u32 = 253u32; +pub const MM_HP_WAVEIN: u32 = 2u32; +pub const MM_HP_WAVEOUT: u32 = 1u32; +pub const MM_HYPERACTIVE: u32 = 246u32; +pub const MM_IBM: u32 = 22u32; +pub const MM_IBM_MWAVE_AUX: u32 = 23u32; +pub const MM_IBM_MWAVE_MIDIIN: u32 = 21u32; +pub const MM_IBM_MWAVE_MIDIOUT: u32 = 22u32; +pub const MM_IBM_MWAVE_MIXER: u32 = 20u32; +pub const MM_IBM_MWAVE_WAVEIN: u32 = 18u32; +pub const MM_IBM_MWAVE_WAVEOUT: u32 = 19u32; +pub const MM_IBM_PCMCIA_AUX: u32 = 16u32; +pub const MM_IBM_PCMCIA_MIDIIN: u32 = 14u32; +pub const MM_IBM_PCMCIA_MIDIOUT: u32 = 15u32; +pub const MM_IBM_PCMCIA_SYNTH: u32 = 13u32; +pub const MM_IBM_PCMCIA_WAVEIN: u32 = 11u32; +pub const MM_IBM_PCMCIA_WAVEOUT: u32 = 12u32; +pub const MM_IBM_THINKPAD200: u32 = 17u32; +pub const MM_IBM_WC_MIDIOUT: u32 = 30u32; +pub const MM_IBM_WC_MIXEROUT: u32 = 33u32; +pub const MM_IBM_WC_WAVEOUT: u32 = 31u32; +pub const MM_ICCC: u32 = 259u32; +pub const MM_ICCC_UNA3_AUX: u32 = 3u32; +pub const MM_ICCC_UNA3_MIXER: u32 = 4u32; +pub const MM_ICCC_UNA3_WAVEIN: u32 = 1u32; +pub const MM_ICCC_UNA3_WAVEOUT: u32 = 2u32; +pub const MM_ICE: u32 = 239u32; +pub const MM_ICE_AUX: u32 = 11u32; +pub const MM_ICE_MIDIIN1: u32 = 6u32; +pub const MM_ICE_MIDIIN2: u32 = 8u32; +pub const MM_ICE_MIDIOUT1: u32 = 5u32; +pub const MM_ICE_MIDIOUT2: u32 = 7u32; +pub const MM_ICE_MIXER: u32 = 10u32; +pub const MM_ICE_MTWAVEIN: u32 = 4u32; +pub const MM_ICE_MTWAVEOUT: u32 = 3u32; +pub const MM_ICE_SYNTH: u32 = 9u32; +pub const MM_ICE_WAVEIN: u32 = 2u32; +pub const MM_ICE_WAVEOUT: u32 = 1u32; +pub const MM_ICL_PS: u32 = 32u32; +pub const MM_ICOM_AUX: u32 = 6u32; +pub const MM_ICOM_LINE: u32 = 7u32; +pub const MM_ICOM_MIXER: u32 = 5u32; +pub const MM_ICOM_WAVEIN: u32 = 3u32; +pub const MM_ICOM_WAVEOUT: u32 = 4u32; +pub const MM_ICS: u32 = 57u32; +pub const MM_ICS_2115_LITE_MIDIOUT: u32 = 13u32; +pub const MM_ICS_2120_LITE_MIDIOUT: u32 = 14u32; +pub const MM_ICS_WAVEDECK_AUX: u32 = 4u32; +pub const MM_ICS_WAVEDECK_MIXER: u32 = 3u32; +pub const MM_ICS_WAVEDECK_SYNTH: u32 = 5u32; +pub const MM_ICS_WAVEDECK_WAVEIN: u32 = 2u32; +pub const MM_ICS_WAVEDECK_WAVEOUT: u32 = 1u32; +pub const MM_ICS_WAVEDEC_SB_AUX: u32 = 12u32; +pub const MM_ICS_WAVEDEC_SB_FM_MIDIOUT: u32 = 8u32; +pub const MM_ICS_WAVEDEC_SB_MIXER: u32 = 11u32; +pub const MM_ICS_WAVEDEC_SB_MPU401_MIDIIN: u32 = 10u32; +pub const MM_ICS_WAVEDEC_SB_MPU401_MIDIOUT: u32 = 9u32; +pub const MM_ICS_WAVEDEC_SB_WAVEIN: u32 = 7u32; +pub const MM_ICS_WAVEDEC_SB_WAVEOUT: u32 = 6u32; +pub const MM_INSOFT: u32 = 94u32; +pub const MM_INTEL: u32 = 33u32; +pub const MM_INTELOPD_AUX: u32 = 401u32; +pub const MM_INTELOPD_WAVEIN: u32 = 1u32; +pub const MM_INTELOPD_WAVEOUT: u32 = 101u32; +pub const MM_INTEL_NSPMODEMLINEIN: u32 = 501u32; +pub const MM_INTEL_NSPMODEMLINEOUT: u32 = 502u32; +pub const MM_INTERACTIVE: u32 = 36u32; +pub const MM_INTERACTIVE_WAVEIN: u32 = 69u32; +pub const MM_INTERACTIVE_WAVEOUT: u32 = 69u32; +pub const MM_INTERNET: u32 = 244u32; +pub const MM_INTERNET_SSW_MIDIIN: u32 = 11u32; +pub const MM_INTERNET_SSW_MIDIOUT: u32 = 10u32; +pub const MM_INTERNET_SSW_WAVEIN: u32 = 13u32; +pub const MM_INTERNET_SSW_WAVEOUT: u32 = 12u32; +pub const MM_INVISION: u32 = 188u32; +pub const MM_IODD: u32 = 258u32; +pub const MM_IOMAGIC: u32 = 82u32; +pub const MM_IOMAGIC_TEMPO_AUXOUT: u32 = 6u32; +pub const MM_IOMAGIC_TEMPO_MIDIOUT: u32 = 4u32; +pub const MM_IOMAGIC_TEMPO_MXDOUT: u32 = 5u32; +pub const MM_IOMAGIC_TEMPO_SYNTH: u32 = 3u32; +pub const MM_IOMAGIC_TEMPO_WAVEIN: u32 = 2u32; +pub const MM_IOMAGIC_TEMPO_WAVEOUT: u32 = 1u32; +pub const MM_IPI: u32 = 238u32; +pub const MM_IPI_ACM_HSX: u32 = 1u32; +pub const MM_IPI_ACM_RPELP: u32 = 2u32; +pub const MM_IPI_AT_MIXER: u32 = 6u32; +pub const MM_IPI_AT_WAVEIN: u32 = 5u32; +pub const MM_IPI_AT_WAVEOUT: u32 = 4u32; +pub const MM_IPI_WF_ASSS: u32 = 3u32; +pub const MM_ISOLUTION: u32 = 106u32; +pub const MM_ISOLUTION_PASCAL: u32 = 1u32; +pub const MM_ITERATEDSYS: u32 = 58u32; +pub const MM_ITERATEDSYS_FUFCODEC: u32 = 1u32; +pub const MM_I_LINK: u32 = 233u32; +pub const MM_I_LINK_VOICE_CODER: u32 = 1u32; +pub const MM_KAY_ELEMETRICS: u32 = 131u32; +pub const MM_KAY_ELEMETRICS_CSL: u32 = 17152u32; +pub const MM_KAY_ELEMETRICS_CSL_4CHANNEL: u32 = 17161u32; +pub const MM_KAY_ELEMETRICS_CSL_DAT: u32 = 17160u32; +pub const MM_KORG: u32 = 55u32; +pub const MM_KORG_1212IO_MSWAVEIN: u32 = 3u32; +pub const MM_KORG_1212IO_MSWAVEOUT: u32 = 4u32; +pub const MM_KORG_PCIF_MIDIIN: u32 = 2u32; +pub const MM_KORG_PCIF_MIDIOUT: u32 = 1u32; +pub const MM_LERNOUT_ANDHAUSPIE_LHCODECACM: u32 = 1u32; +pub const MM_LERNOUT_AND_HAUSPIE: u32 = 97u32; +pub const MM_LEXICON: u32 = 236u32; +pub const MM_LEXICON_STUDIO_WAVE_IN: u32 = 2u32; +pub const MM_LEXICON_STUDIO_WAVE_OUT: u32 = 1u32; +pub const MM_LOGITECH: u32 = 60u32; +pub const MM_LUCENT: u32 = 184u32; +pub const MM_LUCENT_ACM_G723: u32 = 0u32; +pub const MM_LUCID: u32 = 221u32; +pub const MM_LUCID_PCI24WAVEIN: u32 = 1u32; +pub const MM_LUCID_PCI24WAVEOUT: u32 = 2u32; +pub const MM_LUMINOSITI: u32 = 224u32; +pub const MM_LUMINOSITI_SCWAVEIN: u32 = 1u32; +pub const MM_LUMINOSITI_SCWAVEMIX: u32 = 3u32; +pub const MM_LUMINOSITI_SCWAVEOUT: u32 = 2u32; +pub const MM_LYNX: u32 = 212u32; +pub const MM_LYRRUS: u32 = 88u32; +pub const MM_LYRRUS_BRIDGE_GUITAR: u32 = 1u32; +pub const MM_MALDEN: u32 = 261u32; +pub const MM_MARIAN: u32 = 190u32; +pub const MM_MARIAN_ARC44WAVEIN: u32 = 1u32; +pub const MM_MARIAN_ARC44WAVEOUT: u32 = 2u32; +pub const MM_MARIAN_ARC88WAVEIN: u32 = 5u32; +pub const MM_MARIAN_ARC88WAVEOUT: u32 = 6u32; +pub const MM_MARIAN_PRODIF24WAVEIN: u32 = 3u32; +pub const MM_MARIAN_PRODIF24WAVEOUT: u32 = 4u32; +pub const MM_MATROX_DIV: u32 = 254u32; +pub const MM_MATSUSHITA: u32 = 83u32; +pub const MM_MATSUSHITA_AUX: u32 = 5u32; +pub const MM_MATSUSHITA_FMSYNTH_STEREO: u32 = 3u32; +pub const MM_MATSUSHITA_MIXER: u32 = 4u32; +pub const MM_MATSUSHITA_WAVEIN: u32 = 1u32; +pub const MM_MATSUSHITA_WAVEOUT: u32 = 2u32; +pub const MM_MEDIASONIC: u32 = 71u32; +pub const MM_MEDIASONIC_ACM_G723: u32 = 1u32; +pub const MM_MEDIASONIC_ICOM: u32 = 2u32; +pub const MM_MEDIATRIX: u32 = 141u32; +pub const MM_MEDIAVISION: u32 = 3u32; +pub const MM_MEDIAVISION_CDPC: u32 = 112u32; +pub const MM_MEDIAVISION_OPUS1208: u32 = 128u32; +pub const MM_MEDIAVISION_OPUS1216: u32 = 144u32; +pub const MM_MEDIAVISION_PROAUDIO: u32 = 16u32; +pub const MM_MEDIAVISION_PROAUDIO_16: u32 = 96u32; +pub const MM_MEDIAVISION_PROAUDIO_PLUS: u32 = 80u32; +pub const MM_MEDIAVISION_PROSTUDIO_16: u32 = 96u32; +pub const MM_MEDIAVISION_THUNDER: u32 = 32u32; +pub const MM_MEDIAVISION_TPORT: u32 = 64u32; +pub const MM_MELABS: u32 = 44u32; +pub const MM_MELABS_MIDI2GO: u32 = 1u32; +pub const MM_MERGING_MPEGL3: u32 = 1u32; +pub const MM_MERGING_TECHNOLOGIES: u32 = 177u32; +pub const MM_METHEUS: u32 = 59u32; +pub const MM_METHEUS_ZIPPER: u32 = 1u32; +pub const MM_MICRONAS: u32 = 251u32; +pub const MM_MICRONAS_CLP833: u32 = 2u32; +pub const MM_MICRONAS_SC4: u32 = 1u32; +pub const MM_MINDMAKER: u32 = 263u32; +pub const MM_MINDMAKER_GC_MIXER: u32 = 3u32; +pub const MM_MINDMAKER_GC_WAVEIN: u32 = 1u32; +pub const MM_MINDMAKER_GC_WAVEOUT: u32 = 2u32; +pub const MM_MIRO: u32 = 104u32; +pub const MM_MIRO_DC30_MIX: u32 = 7u32; +pub const MM_MIRO_DC30_WAVEIN: u32 = 6u32; +pub const MM_MIRO_DC30_WAVEOUT: u32 = 5u32; +pub const MM_MIRO_MOVIEPRO: u32 = 1u32; +pub const MM_MIRO_VIDEOD1: u32 = 2u32; +pub const MM_MIRO_VIDEODC1TV: u32 = 3u32; +pub const MM_MIRO_VIDEOTD: u32 = 4u32; +pub const MM_MITEL: u32 = 16u32; +pub const MM_MITEL_MEDIAPATH_WAVEIN: u32 = 301u32; +pub const MM_MITEL_MEDIAPATH_WAVEOUT: u32 = 300u32; +pub const MM_MITEL_MPA_HANDSET_WAVEIN: u32 = 201u32; +pub const MM_MITEL_MPA_HANDSET_WAVEOUT: u32 = 200u32; +pub const MM_MITEL_MPA_HANDSFREE_WAVEIN: u32 = 203u32; +pub const MM_MITEL_MPA_HANDSFREE_WAVEOUT: u32 = 202u32; +pub const MM_MITEL_MPA_LINE1_WAVEIN: u32 = 205u32; +pub const MM_MITEL_MPA_LINE1_WAVEOUT: u32 = 204u32; +pub const MM_MITEL_MPA_LINE2_WAVEIN: u32 = 207u32; +pub const MM_MITEL_MPA_LINE2_WAVEOUT: u32 = 206u32; +pub const MM_MITEL_TALKTO_BRIDGED_WAVEIN: u32 = 105u32; +pub const MM_MITEL_TALKTO_BRIDGED_WAVEOUT: u32 = 104u32; +pub const MM_MITEL_TALKTO_HANDSET_WAVEIN: u32 = 103u32; +pub const MM_MITEL_TALKTO_HANDSET_WAVEOUT: u32 = 102u32; +pub const MM_MITEL_TALKTO_LINE_WAVEIN: u32 = 101u32; +pub const MM_MITEL_TALKTO_LINE_WAVEOUT: u32 = 100u32; +pub const MM_MMOTION_WAVEAUX: u32 = 1u32; +pub const MM_MMOTION_WAVEIN: u32 = 3u32; +pub const MM_MMOTION_WAVEOUT: u32 = 2u32; +pub const MM_MOSCOM: u32 = 68u32; +pub const MM_MOSCOM_VPC2400_IN: u32 = 1u32; +pub const MM_MOSCOM_VPC2400_OUT: u32 = 2u32; +pub const MM_MOTIONPIXELS: u32 = 193u32; +pub const MM_MOTIONPIXELS_MVI2: u32 = 1u32; +pub const MM_MOTOROLA: u32 = 48u32; +pub const MM_MOTU: u32 = 101u32; +pub const MM_MOTU_DTX_MIDI_IN_A: u32 = 801u32; +pub const MM_MOTU_DTX_MIDI_IN_B: u32 = 802u32; +pub const MM_MOTU_DTX_MIDI_IN_SYNC: u32 = 800u32; +pub const MM_MOTU_DTX_MIDI_OUT_A: u32 = 801u32; +pub const MM_MOTU_DTX_MIDI_OUT_B: u32 = 802u32; +pub const MM_MOTU_FLYER_MIDI_IN_A: u32 = 601u32; +pub const MM_MOTU_FLYER_MIDI_IN_B: u32 = 602u32; +pub const MM_MOTU_FLYER_MIDI_IN_SYNC: u32 = 600u32; +pub const MM_MOTU_FLYER_MIDI_OUT_A: u32 = 601u32; +pub const MM_MOTU_FLYER_MIDI_OUT_B: u32 = 602u32; +pub const MM_MOTU_MTPAV_MIDIIN_1: u32 = 901u32; +pub const MM_MOTU_MTPAV_MIDIIN_2: u32 = 902u32; +pub const MM_MOTU_MTPAV_MIDIIN_3: u32 = 903u32; +pub const MM_MOTU_MTPAV_MIDIIN_4: u32 = 904u32; +pub const MM_MOTU_MTPAV_MIDIIN_5: u32 = 905u32; +pub const MM_MOTU_MTPAV_MIDIIN_6: u32 = 906u32; +pub const MM_MOTU_MTPAV_MIDIIN_7: u32 = 907u32; +pub const MM_MOTU_MTPAV_MIDIIN_8: u32 = 908u32; +pub const MM_MOTU_MTPAV_MIDIIN_ADAT: u32 = 917u32; +pub const MM_MOTU_MTPAV_MIDIIN_SYNC: u32 = 900u32; +pub const MM_MOTU_MTPAV_MIDIOUT_1: u32 = 901u32; +pub const MM_MOTU_MTPAV_MIDIOUT_2: u32 = 902u32; +pub const MM_MOTU_MTPAV_MIDIOUT_3: u32 = 903u32; +pub const MM_MOTU_MTPAV_MIDIOUT_4: u32 = 904u32; +pub const MM_MOTU_MTPAV_MIDIOUT_5: u32 = 905u32; +pub const MM_MOTU_MTPAV_MIDIOUT_6: u32 = 906u32; +pub const MM_MOTU_MTPAV_MIDIOUT_7: u32 = 907u32; +pub const MM_MOTU_MTPAV_MIDIOUT_8: u32 = 908u32; +pub const MM_MOTU_MTPAV_MIDIOUT_ADAT: u32 = 917u32; +pub const MM_MOTU_MTPAV_MIDIOUT_ALL: u32 = 900u32; +pub const MM_MOTU_MTPAV_NET_MIDIIN_1: u32 = 909u32; +pub const MM_MOTU_MTPAV_NET_MIDIIN_2: u32 = 910u32; +pub const MM_MOTU_MTPAV_NET_MIDIIN_3: u32 = 911u32; +pub const MM_MOTU_MTPAV_NET_MIDIIN_4: u32 = 912u32; +pub const MM_MOTU_MTPAV_NET_MIDIIN_5: u32 = 913u32; +pub const MM_MOTU_MTPAV_NET_MIDIIN_6: u32 = 914u32; +pub const MM_MOTU_MTPAV_NET_MIDIIN_7: u32 = 915u32; +pub const MM_MOTU_MTPAV_NET_MIDIIN_8: u32 = 916u32; +pub const MM_MOTU_MTPAV_NET_MIDIOUT_1: u32 = 909u32; +pub const MM_MOTU_MTPAV_NET_MIDIOUT_2: u32 = 910u32; +pub const MM_MOTU_MTPAV_NET_MIDIOUT_3: u32 = 911u32; +pub const MM_MOTU_MTPAV_NET_MIDIOUT_4: u32 = 912u32; +pub const MM_MOTU_MTPAV_NET_MIDIOUT_5: u32 = 913u32; +pub const MM_MOTU_MTPAV_NET_MIDIOUT_6: u32 = 914u32; +pub const MM_MOTU_MTPAV_NET_MIDIOUT_7: u32 = 915u32; +pub const MM_MOTU_MTPAV_NET_MIDIOUT_8: u32 = 916u32; +pub const MM_MOTU_MTPII_MIDIIN_1: u32 = 201u32; +pub const MM_MOTU_MTPII_MIDIIN_2: u32 = 202u32; +pub const MM_MOTU_MTPII_MIDIIN_3: u32 = 203u32; +pub const MM_MOTU_MTPII_MIDIIN_4: u32 = 204u32; +pub const MM_MOTU_MTPII_MIDIIN_5: u32 = 205u32; +pub const MM_MOTU_MTPII_MIDIIN_6: u32 = 206u32; +pub const MM_MOTU_MTPII_MIDIIN_7: u32 = 207u32; +pub const MM_MOTU_MTPII_MIDIIN_8: u32 = 208u32; +pub const MM_MOTU_MTPII_MIDIIN_SYNC: u32 = 200u32; +pub const MM_MOTU_MTPII_MIDIOUT_1: u32 = 201u32; +pub const MM_MOTU_MTPII_MIDIOUT_2: u32 = 202u32; +pub const MM_MOTU_MTPII_MIDIOUT_3: u32 = 203u32; +pub const MM_MOTU_MTPII_MIDIOUT_4: u32 = 204u32; +pub const MM_MOTU_MTPII_MIDIOUT_5: u32 = 205u32; +pub const MM_MOTU_MTPII_MIDIOUT_6: u32 = 206u32; +pub const MM_MOTU_MTPII_MIDIOUT_7: u32 = 207u32; +pub const MM_MOTU_MTPII_MIDIOUT_8: u32 = 208u32; +pub const MM_MOTU_MTPII_MIDIOUT_ALL: u32 = 200u32; +pub const MM_MOTU_MTPII_NET_MIDIIN_1: u32 = 209u32; +pub const MM_MOTU_MTPII_NET_MIDIIN_2: u32 = 210u32; +pub const MM_MOTU_MTPII_NET_MIDIIN_3: u32 = 211u32; +pub const MM_MOTU_MTPII_NET_MIDIIN_4: u32 = 212u32; +pub const MM_MOTU_MTPII_NET_MIDIIN_5: u32 = 213u32; +pub const MM_MOTU_MTPII_NET_MIDIIN_6: u32 = 214u32; +pub const MM_MOTU_MTPII_NET_MIDIIN_7: u32 = 215u32; +pub const MM_MOTU_MTPII_NET_MIDIIN_8: u32 = 216u32; +pub const MM_MOTU_MTPII_NET_MIDIOUT_1: u32 = 209u32; +pub const MM_MOTU_MTPII_NET_MIDIOUT_2: u32 = 210u32; +pub const MM_MOTU_MTPII_NET_MIDIOUT_3: u32 = 211u32; +pub const MM_MOTU_MTPII_NET_MIDIOUT_4: u32 = 212u32; +pub const MM_MOTU_MTPII_NET_MIDIOUT_5: u32 = 213u32; +pub const MM_MOTU_MTPII_NET_MIDIOUT_6: u32 = 214u32; +pub const MM_MOTU_MTPII_NET_MIDIOUT_7: u32 = 215u32; +pub const MM_MOTU_MTPII_NET_MIDIOUT_8: u32 = 216u32; +pub const MM_MOTU_MTP_MIDIIN_1: u32 = 101u32; +pub const MM_MOTU_MTP_MIDIIN_2: u32 = 102u32; +pub const MM_MOTU_MTP_MIDIIN_3: u32 = 103u32; +pub const MM_MOTU_MTP_MIDIIN_4: u32 = 104u32; +pub const MM_MOTU_MTP_MIDIIN_5: u32 = 105u32; +pub const MM_MOTU_MTP_MIDIIN_6: u32 = 106u32; +pub const MM_MOTU_MTP_MIDIIN_7: u32 = 107u32; +pub const MM_MOTU_MTP_MIDIIN_8: u32 = 108u32; +pub const MM_MOTU_MTP_MIDIOUT_1: u32 = 101u32; +pub const MM_MOTU_MTP_MIDIOUT_2: u32 = 102u32; +pub const MM_MOTU_MTP_MIDIOUT_3: u32 = 103u32; +pub const MM_MOTU_MTP_MIDIOUT_4: u32 = 104u32; +pub const MM_MOTU_MTP_MIDIOUT_5: u32 = 105u32; +pub const MM_MOTU_MTP_MIDIOUT_6: u32 = 106u32; +pub const MM_MOTU_MTP_MIDIOUT_7: u32 = 107u32; +pub const MM_MOTU_MTP_MIDIOUT_8: u32 = 108u32; +pub const MM_MOTU_MTP_MIDIOUT_ALL: u32 = 100u32; +pub const MM_MOTU_MXN_MIDIIN_1: u32 = 501u32; +pub const MM_MOTU_MXN_MIDIIN_2: u32 = 502u32; +pub const MM_MOTU_MXN_MIDIIN_3: u32 = 503u32; +pub const MM_MOTU_MXN_MIDIIN_4: u32 = 504u32; +pub const MM_MOTU_MXN_MIDIIN_SYNC: u32 = 500u32; +pub const MM_MOTU_MXN_MIDIOUT_1: u32 = 501u32; +pub const MM_MOTU_MXN_MIDIOUT_2: u32 = 502u32; +pub const MM_MOTU_MXN_MIDIOUT_3: u32 = 503u32; +pub const MM_MOTU_MXN_MIDIOUT_4: u32 = 504u32; +pub const MM_MOTU_MXN_MIDIOUT_ALL: u32 = 500u32; +pub const MM_MOTU_MXPMPU_MIDIIN_1: u32 = 401u32; +pub const MM_MOTU_MXPMPU_MIDIIN_2: u32 = 402u32; +pub const MM_MOTU_MXPMPU_MIDIIN_3: u32 = 403u32; +pub const MM_MOTU_MXPMPU_MIDIIN_4: u32 = 404u32; +pub const MM_MOTU_MXPMPU_MIDIIN_5: u32 = 405u32; +pub const MM_MOTU_MXPMPU_MIDIIN_6: u32 = 406u32; +pub const MM_MOTU_MXPMPU_MIDIIN_SYNC: u32 = 400u32; +pub const MM_MOTU_MXPMPU_MIDIOUT_1: u32 = 401u32; +pub const MM_MOTU_MXPMPU_MIDIOUT_2: u32 = 402u32; +pub const MM_MOTU_MXPMPU_MIDIOUT_3: u32 = 403u32; +pub const MM_MOTU_MXPMPU_MIDIOUT_4: u32 = 404u32; +pub const MM_MOTU_MXPMPU_MIDIOUT_5: u32 = 405u32; +pub const MM_MOTU_MXPMPU_MIDIOUT_6: u32 = 406u32; +pub const MM_MOTU_MXPMPU_MIDIOUT_ALL: u32 = 400u32; +pub const MM_MOTU_MXPXT_MIDIIN_1: u32 = 1001u32; +pub const MM_MOTU_MXPXT_MIDIIN_2: u32 = 1002u32; +pub const MM_MOTU_MXPXT_MIDIIN_3: u32 = 1003u32; +pub const MM_MOTU_MXPXT_MIDIIN_4: u32 = 1004u32; +pub const MM_MOTU_MXPXT_MIDIIN_5: u32 = 1005u32; +pub const MM_MOTU_MXPXT_MIDIIN_6: u32 = 1006u32; +pub const MM_MOTU_MXPXT_MIDIIN_7: u32 = 1007u32; +pub const MM_MOTU_MXPXT_MIDIIN_8: u32 = 1008u32; +pub const MM_MOTU_MXPXT_MIDIIN_SYNC: u32 = 1000u32; +pub const MM_MOTU_MXPXT_MIDIOUT_1: u32 = 1001u32; +pub const MM_MOTU_MXPXT_MIDIOUT_2: u32 = 1002u32; +pub const MM_MOTU_MXPXT_MIDIOUT_3: u32 = 1003u32; +pub const MM_MOTU_MXPXT_MIDIOUT_4: u32 = 1004u32; +pub const MM_MOTU_MXPXT_MIDIOUT_5: u32 = 1005u32; +pub const MM_MOTU_MXPXT_MIDIOUT_6: u32 = 1006u32; +pub const MM_MOTU_MXPXT_MIDIOUT_7: u32 = 1007u32; +pub const MM_MOTU_MXPXT_MIDIOUT_8: u32 = 1008u32; +pub const MM_MOTU_MXPXT_MIDIOUT_ALL: u32 = 1000u32; +pub const MM_MOTU_MXP_MIDIIN_MIDIIN_1: u32 = 301u32; +pub const MM_MOTU_MXP_MIDIIN_MIDIIN_2: u32 = 302u32; +pub const MM_MOTU_MXP_MIDIIN_MIDIIN_3: u32 = 303u32; +pub const MM_MOTU_MXP_MIDIIN_MIDIIN_4: u32 = 304u32; +pub const MM_MOTU_MXP_MIDIIN_MIDIIN_5: u32 = 305u32; +pub const MM_MOTU_MXP_MIDIIN_MIDIIN_6: u32 = 306u32; +pub const MM_MOTU_MXP_MIDIIN_MIDIOUT_1: u32 = 301u32; +pub const MM_MOTU_MXP_MIDIIN_MIDIOUT_2: u32 = 302u32; +pub const MM_MOTU_MXP_MIDIIN_MIDIOUT_3: u32 = 303u32; +pub const MM_MOTU_MXP_MIDIIN_MIDIOUT_4: u32 = 304u32; +pub const MM_MOTU_MXP_MIDIIN_MIDIOUT_5: u32 = 305u32; +pub const MM_MOTU_MXP_MIDIIN_MIDIOUT_6: u32 = 306u32; +pub const MM_MOTU_MXP_MIDIIN_MIDIOUT_ALL: u32 = 300u32; +pub const MM_MOTU_MXP_MIDIIN_SYNC: u32 = 300u32; +pub const MM_MOTU_PKX_MIDI_IN_A: u32 = 701u32; +pub const MM_MOTU_PKX_MIDI_IN_B: u32 = 702u32; +pub const MM_MOTU_PKX_MIDI_IN_SYNC: u32 = 700u32; +pub const MM_MOTU_PKX_MIDI_OUT_A: u32 = 701u32; +pub const MM_MOTU_PKX_MIDI_OUT_B: u32 = 702u32; +pub const MM_MPTUS: u32 = 95u32; +pub const MM_MPTUS_SPWAVEOUT: u32 = 1u32; +pub const MM_MSFT_ACM_G711: u32 = 37u32; +pub const MM_MSFT_ACM_GSM610: u32 = 36u32; +pub const MM_MSFT_ACM_IMAADPCM: u32 = 34u32; +pub const MM_MSFT_ACM_MSADPCM: u32 = 33u32; +pub const MM_MSFT_ACM_MSAUDIO1: u32 = 39u32; +pub const MM_MSFT_ACM_MSFILTER: u32 = 35u32; +pub const MM_MSFT_ACM_MSG723: u32 = 92u32; +pub const MM_MSFT_ACM_MSNAUDIO: u32 = 91u32; +pub const MM_MSFT_ACM_MSRT24: u32 = 93u32; +pub const MM_MSFT_ACM_PCM: u32 = 38u32; +pub const MM_MSFT_ACM_WMAUDIO: u32 = 39u32; +pub const MM_MSFT_ACM_WMAUDIO2: u32 = 101u32; +pub const MM_MSFT_GENERIC_AUX_CD: u32 = 30u32; +pub const MM_MSFT_GENERIC_AUX_LINE: u32 = 28u32; +pub const MM_MSFT_GENERIC_AUX_MIC: u32 = 29u32; +pub const MM_MSFT_GENERIC_MIDIIN: u32 = 25u32; +pub const MM_MSFT_GENERIC_MIDIOUT: u32 = 26u32; +pub const MM_MSFT_GENERIC_MIDISYNTH: u32 = 27u32; +pub const MM_MSFT_GENERIC_WAVEIN: u32 = 23u32; +pub const MM_MSFT_GENERIC_WAVEOUT: u32 = 24u32; +pub const MM_MSFT_MSACM: u32 = 32u32; +pub const MM_MSFT_MSOPL_SYNTH: u32 = 76u32; +pub const MM_MSFT_SB16_AUX_CD: u32 = 66u32; +pub const MM_MSFT_SB16_AUX_LINE: u32 = 65u32; +pub const MM_MSFT_SB16_MIDIIN: u32 = 62u32; +pub const MM_MSFT_SB16_MIDIOUT: u32 = 63u32; +pub const MM_MSFT_SB16_MIXER: u32 = 67u32; +pub const MM_MSFT_SB16_SYNTH: u32 = 64u32; +pub const MM_MSFT_SB16_WAVEIN: u32 = 60u32; +pub const MM_MSFT_SB16_WAVEOUT: u32 = 61u32; +pub const MM_MSFT_SBPRO_AUX_CD: u32 = 74u32; +pub const MM_MSFT_SBPRO_AUX_LINE: u32 = 73u32; +pub const MM_MSFT_SBPRO_MIDIIN: u32 = 70u32; +pub const MM_MSFT_SBPRO_MIDIOUT: u32 = 71u32; +pub const MM_MSFT_SBPRO_MIXER: u32 = 75u32; +pub const MM_MSFT_SBPRO_SYNTH: u32 = 72u32; +pub const MM_MSFT_SBPRO_WAVEIN: u32 = 68u32; +pub const MM_MSFT_SBPRO_WAVEOUT: u32 = 69u32; +pub const MM_MSFT_VMDMS_HANDSET_WAVEIN: u32 = 82u32; +pub const MM_MSFT_VMDMS_HANDSET_WAVEOUT: u32 = 83u32; +pub const MM_MSFT_VMDMS_LINE_WAVEIN: u32 = 80u32; +pub const MM_MSFT_VMDMS_LINE_WAVEOUT: u32 = 81u32; +pub const MM_MSFT_VMDMW_HANDSET_WAVEIN: u32 = 86u32; +pub const MM_MSFT_VMDMW_HANDSET_WAVEOUT: u32 = 87u32; +pub const MM_MSFT_VMDMW_LINE_WAVEIN: u32 = 84u32; +pub const MM_MSFT_VMDMW_LINE_WAVEOUT: u32 = 85u32; +pub const MM_MSFT_VMDMW_MIXER: u32 = 88u32; +pub const MM_MSFT_VMDM_GAME_WAVEIN: u32 = 90u32; +pub const MM_MSFT_VMDM_GAME_WAVEOUT: u32 = 89u32; +pub const MM_MSFT_WDMAUDIO_AUX: u32 = 105u32; +pub const MM_MSFT_WDMAUDIO_MIDIIN: u32 = 103u32; +pub const MM_MSFT_WDMAUDIO_MIDIOUT: u32 = 102u32; +pub const MM_MSFT_WDMAUDIO_MIXER: u32 = 104u32; +pub const MM_MSFT_WDMAUDIO_WAVEIN: u32 = 101u32; +pub const MM_MSFT_WDMAUDIO_WAVEOUT: u32 = 100u32; +pub const MM_MSFT_WSS_AUX: u32 = 21u32; +pub const MM_MSFT_WSS_FMSYNTH_STEREO: u32 = 16u32; +pub const MM_MSFT_WSS_MIXER: u32 = 17u32; +pub const MM_MSFT_WSS_NT_AUX: u32 = 59u32; +pub const MM_MSFT_WSS_NT_FMSYNTH_STEREO: u32 = 57u32; +pub const MM_MSFT_WSS_NT_MIXER: u32 = 58u32; +pub const MM_MSFT_WSS_NT_WAVEIN: u32 = 55u32; +pub const MM_MSFT_WSS_NT_WAVEOUT: u32 = 56u32; +pub const MM_MSFT_WSS_OEM_AUX: u32 = 22u32; +pub const MM_MSFT_WSS_OEM_FMSYNTH_STEREO: u32 = 20u32; +pub const MM_MSFT_WSS_OEM_MIXER: u32 = 31u32; +pub const MM_MSFT_WSS_OEM_WAVEIN: u32 = 18u32; +pub const MM_MSFT_WSS_OEM_WAVEOUT: u32 = 19u32; +pub const MM_MSFT_WSS_WAVEIN: u32 = 14u32; +pub const MM_MSFT_WSS_WAVEOUT: u32 = 15u32; +pub const MM_MWM: u32 = 209u32; +pub const MM_NCR: u32 = 62u32; +pub const MM_NCR_BA_AUX: u32 = 4u32; +pub const MM_NCR_BA_MIXER: u32 = 5u32; +pub const MM_NCR_BA_SYNTH: u32 = 3u32; +pub const MM_NCR_BA_WAVEIN: u32 = 1u32; +pub const MM_NCR_BA_WAVEOUT: u32 = 2u32; +pub const MM_NEC: u32 = 26u32; +pub const MM_NEC_26_SYNTH: u32 = 9u32; +pub const MM_NEC_73_86_SYNTH: u32 = 5u32; +pub const MM_NEC_73_86_WAVEIN: u32 = 7u32; +pub const MM_NEC_73_86_WAVEOUT: u32 = 6u32; +pub const MM_NEC_JOYSTICK: u32 = 12u32; +pub const MM_NEC_MPU401_MIDIIN: u32 = 11u32; +pub const MM_NEC_MPU401_MIDIOUT: u32 = 10u32; +pub const MM_NEOMAGIC: u32 = 176u32; +pub const MM_NEOMAGIC_AUX: u32 = 6u32; +pub const MM_NEOMAGIC_MIDIIN: u32 = 5u32; +pub const MM_NEOMAGIC_MIDIOUT: u32 = 4u32; +pub const MM_NEOMAGIC_MW3DX_AUX: u32 = 17u32; +pub const MM_NEOMAGIC_MW3DX_FMSYNTH: u32 = 14u32; +pub const MM_NEOMAGIC_MW3DX_GMSYNTH: u32 = 15u32; +pub const MM_NEOMAGIC_MW3DX_MIDIIN: u32 = 13u32; +pub const MM_NEOMAGIC_MW3DX_MIDIOUT: u32 = 12u32; +pub const MM_NEOMAGIC_MW3DX_MIXER: u32 = 16u32; +pub const MM_NEOMAGIC_MW3DX_WAVEIN: u32 = 11u32; +pub const MM_NEOMAGIC_MW3DX_WAVEOUT: u32 = 10u32; +pub const MM_NEOMAGIC_MWAVE_AUX: u32 = 25u32; +pub const MM_NEOMAGIC_MWAVE_MIDIIN: u32 = 23u32; +pub const MM_NEOMAGIC_MWAVE_MIDIOUT: u32 = 22u32; +pub const MM_NEOMAGIC_MWAVE_MIXER: u32 = 24u32; +pub const MM_NEOMAGIC_MWAVE_WAVEIN: u32 = 21u32; +pub const MM_NEOMAGIC_MWAVE_WAVEOUT: u32 = 20u32; +pub const MM_NEOMAGIC_SYNTH: u32 = 1u32; +pub const MM_NEOMAGIC_WAVEIN: u32 = 3u32; +pub const MM_NEOMAGIC_WAVEOUT: u32 = 2u32; +pub const MM_NETSCAPE: u32 = 166u32; +pub const MM_NETXL: u32 = 8u32; +pub const MM_NETXL_XLVIDEO: u32 = 1u32; +pub const MM_NEWMEDIA: u32 = 86u32; +pub const MM_NEWMEDIA_WAVJAMMER: u32 = 1u32; +pub const MM_NMP: u32 = 195u32; +pub const MM_NMP_ACM_AMR: u32 = 10u32; +pub const MM_NMP_CCP_WAVEIN: u32 = 1u32; +pub const MM_NMP_CCP_WAVEOUT: u32 = 2u32; +pub const MM_NMS: u32 = 87u32; +pub const MM_NOGATECH: u32 = 75u32; +pub const MM_NORRIS: u32 = 150u32; +pub const MM_NORRIS_VOICELINK: u32 = 1u32; +pub const MM_NORTEL_MPXAC_WAVEIN: u32 = 1u32; +pub const MM_NORTEL_MPXAC_WAVEOUT: u32 = 2u32; +pub const MM_NORTHERN_TELECOM: u32 = 115u32; +pub const MM_NVIDIA: u32 = 127u32; +pub const MM_NVIDIA_AUX: u32 = 7u32; +pub const MM_NVIDIA_GAMEPORT: u32 = 5u32; +pub const MM_NVIDIA_MIDIIN: u32 = 4u32; +pub const MM_NVIDIA_MIDIOUT: u32 = 3u32; +pub const MM_NVIDIA_MIXER: u32 = 6u32; +pub const MM_NVIDIA_WAVEIN: u32 = 2u32; +pub const MM_NVIDIA_WAVEOUT: u32 = 1u32; +pub const MM_OKI: u32 = 79u32; +pub const MM_OKSORI: u32 = 128u32; +pub const MM_OKSORI_BASE: u32 = 0u32; +pub const MM_OKSORI_EXT_MIC1: u32 = 15u32; +pub const MM_OKSORI_EXT_MIC2: u32 = 16u32; +pub const MM_OKSORI_FM_OPL4: u32 = 5u32; +pub const MM_OKSORI_MIDIIN: u32 = 18u32; +pub const MM_OKSORI_MIDIOUT: u32 = 17u32; +pub const MM_OKSORI_MIX_AUX1: u32 = 13u32; +pub const MM_OKSORI_MIX_CD: u32 = 10u32; +pub const MM_OKSORI_MIX_ECHO: u32 = 12u32; +pub const MM_OKSORI_MIX_FM: u32 = 8u32; +pub const MM_OKSORI_MIX_LINE: u32 = 9u32; +pub const MM_OKSORI_MIX_LINE1: u32 = 14u32; +pub const MM_OKSORI_MIX_MASTER: u32 = 6u32; +pub const MM_OKSORI_MIX_MIC: u32 = 11u32; +pub const MM_OKSORI_MIX_WAVE: u32 = 7u32; +pub const MM_OKSORI_MPEG_CDVISION: u32 = 19u32; +pub const MM_OKSORI_OSR16_WAVEIN: u32 = 4u32; +pub const MM_OKSORI_OSR16_WAVEOUT: u32 = 3u32; +pub const MM_OKSORI_OSR8_WAVEIN: u32 = 2u32; +pub const MM_OKSORI_OSR8_WAVEOUT: u32 = 1u32; +pub const MM_OLIVETTI: u32 = 81u32; +pub const MM_OLIVETTI_ACM_ADPCM: u32 = 10u32; +pub const MM_OLIVETTI_ACM_CELP: u32 = 11u32; +pub const MM_OLIVETTI_ACM_GSM: u32 = 9u32; +pub const MM_OLIVETTI_ACM_OPR: u32 = 13u32; +pub const MM_OLIVETTI_ACM_SBC: u32 = 12u32; +pub const MM_OLIVETTI_AUX: u32 = 4u32; +pub const MM_OLIVETTI_JOYSTICK: u32 = 8u32; +pub const MM_OLIVETTI_MIDIIN: u32 = 5u32; +pub const MM_OLIVETTI_MIDIOUT: u32 = 6u32; +pub const MM_OLIVETTI_MIXER: u32 = 3u32; +pub const MM_OLIVETTI_SYNTH: u32 = 7u32; +pub const MM_OLIVETTI_WAVEIN: u32 = 1u32; +pub const MM_OLIVETTI_WAVEOUT: u32 = 2u32; +pub const MM_ONLIVE: u32 = 200u32; +pub const MM_ONLIVE_MPCODEC: u32 = 1u32; +pub const MM_OPCODE: u32 = 113u32; +pub const MM_OPTI: u32 = 90u32; +pub const MM_OPTI_M16_AUX: u32 = 7u32; +pub const MM_OPTI_M16_FMSYNTH_STEREO: u32 = 1u32; +pub const MM_OPTI_M16_MIDIIN: u32 = 2u32; +pub const MM_OPTI_M16_MIDIOUT: u32 = 3u32; +pub const MM_OPTI_M16_MIXER: u32 = 6u32; +pub const MM_OPTI_M16_WAVEIN: u32 = 4u32; +pub const MM_OPTI_M16_WAVEOUT: u32 = 5u32; +pub const MM_OPTI_M32_AUX: u32 = 38u32; +pub const MM_OPTI_M32_MIDIIN: u32 = 34u32; +pub const MM_OPTI_M32_MIDIOUT: u32 = 35u32; +pub const MM_OPTI_M32_MIXER: u32 = 37u32; +pub const MM_OPTI_M32_SYNTH_STEREO: u32 = 36u32; +pub const MM_OPTI_M32_WAVEIN: u32 = 32u32; +pub const MM_OPTI_M32_WAVEOUT: u32 = 33u32; +pub const MM_OPTI_P16_AUX: u32 = 22u32; +pub const MM_OPTI_P16_FMSYNTH_STEREO: u32 = 16u32; +pub const MM_OPTI_P16_MIDIIN: u32 = 17u32; +pub const MM_OPTI_P16_MIDIOUT: u32 = 18u32; +pub const MM_OPTI_P16_MIXER: u32 = 21u32; +pub const MM_OPTI_P16_WAVEIN: u32 = 19u32; +pub const MM_OPTI_P16_WAVEOUT: u32 = 20u32; +pub const MM_OPUS1208_AUX: u32 = 135u32; +pub const MM_OPUS1208_MIXER: u32 = 134u32; +pub const MM_OPUS1208_SYNTH: u32 = 131u32; +pub const MM_OPUS1208_WAVEIN: u32 = 133u32; +pub const MM_OPUS1208_WAVEOUT: u32 = 132u32; +pub const MM_OPUS1216_AUX: u32 = 151u32; +pub const MM_OPUS1216_MIDIIN: u32 = 146u32; +pub const MM_OPUS1216_MIDIOUT: u32 = 145u32; +pub const MM_OPUS1216_MIXER: u32 = 150u32; +pub const MM_OPUS1216_SYNTH: u32 = 147u32; +pub const MM_OPUS1216_WAVEIN: u32 = 149u32; +pub const MM_OPUS1216_WAVEOUT: u32 = 148u32; +pub const MM_OPUS401_MIDIIN: u32 = 130u32; +pub const MM_OPUS401_MIDIOUT: u32 = 129u32; +pub const MM_OSITECH: u32 = 103u32; +pub const MM_OSITECH_TRUMPCARD: u32 = 1u32; +pub const MM_OSPREY: u32 = 140u32; +pub const MM_OSPREY_1000WAVEIN: u32 = 1u32; +pub const MM_OSPREY_1000WAVEOUT: u32 = 2u32; +pub const MM_OTI: u32 = 180u32; +pub const MM_OTI_611MIDIN: u32 = 18u32; +pub const MM_OTI_611MIDIOUT: u32 = 19u32; +pub const MM_OTI_611MIXER: u32 = 7u32; +pub const MM_OTI_611WAVEIN: u32 = 5u32; +pub const MM_OTI_611WAVEOUT: u32 = 6u32; +pub const MM_PACIFICRESEARCH: u32 = 210u32; +pub const MM_PCSPEAKER_WAVEOUT: u32 = 13u32; +pub const MM_PHILIPS_ACM_LPCBB: u32 = 1u32; +pub const MM_PHILIPS_SPEECH_PROCESSING: u32 = 7u32; +pub const MM_PHONET: u32 = 203u32; +pub const MM_PHONET_PP_MIXER: u32 = 3u32; +pub const MM_PHONET_PP_WAVEIN: u32 = 2u32; +pub const MM_PHONET_PP_WAVEOUT: u32 = 1u32; +pub const MM_PICTURETEL: u32 = 138u32; +pub const MM_PID_UNMAPPED: u32 = 65535u32; +pub const MM_PINNACLE: u32 = 218u32; +pub const MM_PRAGMATRAX: u32 = 5u32; +pub const MM_PRECEPT: u32 = 153u32; +pub const MM_PROAUD_16_AUX: u32 = 103u32; +pub const MM_PROAUD_16_MIDIIN: u32 = 98u32; +pub const MM_PROAUD_16_MIDIOUT: u32 = 97u32; +pub const MM_PROAUD_16_MIXER: u32 = 102u32; +pub const MM_PROAUD_16_SYNTH: u32 = 99u32; +pub const MM_PROAUD_16_WAVEIN: u32 = 101u32; +pub const MM_PROAUD_16_WAVEOUT: u32 = 100u32; +pub const MM_PROAUD_AUX: u32 = 23u32; +pub const MM_PROAUD_MIDIIN: u32 = 18u32; +pub const MM_PROAUD_MIDIOUT: u32 = 17u32; +pub const MM_PROAUD_MIXER: u32 = 22u32; +pub const MM_PROAUD_PLUS_AUX: u32 = 87u32; +pub const MM_PROAUD_PLUS_MIDIIN: u32 = 82u32; +pub const MM_PROAUD_PLUS_MIDIOUT: u32 = 81u32; +pub const MM_PROAUD_PLUS_MIXER: u32 = 86u32; +pub const MM_PROAUD_PLUS_SYNTH: u32 = 83u32; +pub const MM_PROAUD_PLUS_WAVEIN: u32 = 85u32; +pub const MM_PROAUD_PLUS_WAVEOUT: u32 = 84u32; +pub const MM_PROAUD_SYNTH: u32 = 19u32; +pub const MM_PROAUD_WAVEIN: u32 = 21u32; +pub const MM_PROAUD_WAVEOUT: u32 = 20u32; +pub const MM_QCIAR: u32 = 98u32; +pub const MM_QDESIGN: u32 = 194u32; +pub const MM_QDESIGN_ACM_MPEG: u32 = 1u32; +pub const MM_QDESIGN_ACM_QDESIGN_MUSIC: u32 = 2u32; +pub const MM_QTEAM: u32 = 169u32; +pub const MM_QUALCOMM: u32 = 215u32; +pub const MM_QUANTUM3D: u32 = 17u32; +pub const MM_QUARTERDECK: u32 = 134u32; +pub const MM_QUARTERDECK_LHWAVEIN: u32 = 0u32; +pub const MM_QUARTERDECK_LHWAVEOUT: u32 = 1u32; +pub const MM_QUICKAUDIO: u32 = 255u32; +pub const MM_QUICKAUDIO_MAXIMIDI: u32 = 2u32; +pub const MM_QUICKAUDIO_MINIMIDI: u32 = 1u32; +pub const MM_QUICKNET: u32 = 173u32; +pub const MM_QUICKNET_PJWAVEIN: u32 = 1u32; +pub const MM_QUICKNET_PJWAVEOUT: u32 = 2u32; +pub const MM_RADIUS: u32 = 110u32; +pub const MM_RHETOREX: u32 = 120u32; +pub const MM_RHETOREX_WAVEIN: u32 = 1u32; +pub const MM_RHETOREX_WAVEOUT: u32 = 2u32; +pub const MM_RICHMOND: u32 = 257u32; +pub const MM_ROCKWELL: u32 = 111u32; +pub const MM_ROLAND: u32 = 24u32; +pub const MM_ROLAND_MPU401_MIDIIN: u32 = 16u32; +pub const MM_ROLAND_MPU401_MIDIOUT: u32 = 15u32; +pub const MM_ROLAND_RAP10_MIDIIN: u32 = 11u32; +pub const MM_ROLAND_RAP10_MIDIOUT: u32 = 10u32; +pub const MM_ROLAND_RAP10_SYNTH: u32 = 12u32; +pub const MM_ROLAND_RAP10_WAVEIN: u32 = 14u32; +pub const MM_ROLAND_RAP10_WAVEOUT: u32 = 13u32; +pub const MM_ROLAND_SC7_MIDIIN: u32 = 22u32; +pub const MM_ROLAND_SC7_MIDIOUT: u32 = 21u32; +pub const MM_ROLAND_SCP_AUX: u32 = 48u32; +pub const MM_ROLAND_SCP_MIDIIN: u32 = 39u32; +pub const MM_ROLAND_SCP_MIDIOUT: u32 = 38u32; +pub const MM_ROLAND_SCP_MIXER: u32 = 42u32; +pub const MM_ROLAND_SCP_WAVEIN: u32 = 41u32; +pub const MM_ROLAND_SCP_WAVEOUT: u32 = 40u32; +pub const MM_ROLAND_SERIAL_MIDIIN: u32 = 24u32; +pub const MM_ROLAND_SERIAL_MIDIOUT: u32 = 23u32; +pub const MM_ROLAND_SMPU_MIDIINA: u32 = 19u32; +pub const MM_ROLAND_SMPU_MIDIINB: u32 = 20u32; +pub const MM_ROLAND_SMPU_MIDIOUTA: u32 = 17u32; +pub const MM_ROLAND_SMPU_MIDIOUTB: u32 = 18u32; +pub const MM_RZS: u32 = 216u32; +pub const MM_RZS_ACM_TUBGSM: u32 = 1u32; +pub const MM_S3: u32 = 164u32; +pub const MM_S3_AUX: u32 = 7u32; +pub const MM_S3_FMSYNTH: u32 = 5u32; +pub const MM_S3_MIDIIN: u32 = 4u32; +pub const MM_S3_MIDIOUT: u32 = 3u32; +pub const MM_S3_MIXER: u32 = 6u32; +pub const MM_S3_WAVEIN: u32 = 2u32; +pub const MM_S3_WAVEOUT: u32 = 1u32; +pub const MM_SANYO: u32 = 72u32; +pub const MM_SANYO_ACM_LD_ADPCM: u32 = 1u32; +pub const MM_SCALACS: u32 = 54u32; +pub const MM_SEERSYS: u32 = 137u32; +pub const MM_SEERSYS_REALITY: u32 = 6u32; +pub const MM_SEERSYS_SEERMIX: u32 = 3u32; +pub const MM_SEERSYS_SEERSYNTH: u32 = 1u32; +pub const MM_SEERSYS_SEERWAVE: u32 = 2u32; +pub const MM_SEERSYS_WAVESYNTH: u32 = 4u32; +pub const MM_SEERSYS_WAVESYNTH_WG: u32 = 5u32; +pub const MM_SELSIUS_SYSTEMS: u32 = 234u32; +pub const MM_SELSIUS_SYSTEMS_RTPWAVEIN: u32 = 2u32; +pub const MM_SELSIUS_SYSTEMS_RTPWAVEOUT: u32 = 1u32; +pub const MM_SGI: u32 = 237u32; +pub const MM_SGI_320_MIXER: u32 = 3u32; +pub const MM_SGI_320_WAVEIN: u32 = 1u32; +pub const MM_SGI_320_WAVEOUT: u32 = 2u32; +pub const MM_SGI_540_MIXER: u32 = 6u32; +pub const MM_SGI_540_WAVEIN: u32 = 4u32; +pub const MM_SGI_540_WAVEOUT: u32 = 5u32; +pub const MM_SGI_RAD_ADAT8CHAN_WAVEIN: u32 = 19u32; +pub const MM_SGI_RAD_ADAT8CHAN_WAVEOUT: u32 = 32u32; +pub const MM_SGI_RAD_ADATMONO1_WAVEIN: u32 = 7u32; +pub const MM_SGI_RAD_ADATMONO1_WAVEOUT: u32 = 20u32; +pub const MM_SGI_RAD_ADATMONO2_WAVEIN: u32 = 8u32; +pub const MM_SGI_RAD_ADATMONO2_WAVEOUT: u32 = 21u32; +pub const MM_SGI_RAD_ADATMONO3_WAVEIN: u32 = 9u32; +pub const MM_SGI_RAD_ADATMONO3_WAVEOUT: u32 = 22u32; +pub const MM_SGI_RAD_ADATMONO4_WAVEIN: u32 = 10u32; +pub const MM_SGI_RAD_ADATMONO4_WAVEOUT: u32 = 23u32; +pub const MM_SGI_RAD_ADATMONO5_WAVEIN: u32 = 11u32; +pub const MM_SGI_RAD_ADATMONO5_WAVEOUT: u32 = 24u32; +pub const MM_SGI_RAD_ADATMONO6_WAVEIN: u32 = 12u32; +pub const MM_SGI_RAD_ADATMONO6_WAVEOUT: u32 = 25u32; +pub const MM_SGI_RAD_ADATMONO7_WAVEIN: u32 = 13u32; +pub const MM_SGI_RAD_ADATMONO7_WAVEOUT: u32 = 26u32; +pub const MM_SGI_RAD_ADATMONO8_WAVEIN: u32 = 14u32; +pub const MM_SGI_RAD_ADATMONO8_WAVEOUT: u32 = 27u32; +pub const MM_SGI_RAD_ADATSTEREO12_WAVEIN: u32 = 15u32; +pub const MM_SGI_RAD_ADATSTEREO12_WAVEOUT: u32 = 28u32; +pub const MM_SGI_RAD_ADATSTEREO32_WAVEOUT: u32 = 29u32; +pub const MM_SGI_RAD_ADATSTEREO34_WAVEIN: u32 = 16u32; +pub const MM_SGI_RAD_ADATSTEREO56_WAVEIN: u32 = 17u32; +pub const MM_SGI_RAD_ADATSTEREO56_WAVEOUT: u32 = 30u32; +pub const MM_SGI_RAD_ADATSTEREO78_WAVEIN: u32 = 18u32; +pub const MM_SGI_RAD_ADATSTEREO78_WAVEOUT: u32 = 31u32; +pub const MM_SGI_RAD_AESMONO1_WAVEIN: u32 = 33u32; +pub const MM_SGI_RAD_AESMONO1_WAVEOUT: u32 = 36u32; +pub const MM_SGI_RAD_AESMONO2_WAVEIN: u32 = 34u32; +pub const MM_SGI_RAD_AESMONO2_WAVEOUT: u32 = 37u32; +pub const MM_SGI_RAD_AESSTEREO_WAVEIN: u32 = 35u32; +pub const MM_SGI_RAD_AESSTEREO_WAVEOUT: u32 = 38u32; +pub const MM_SHARP: u32 = 183u32; +pub const MM_SHARP_MDC_AUX: u32 = 6u32; +pub const MM_SHARP_MDC_AUX_BASS: u32 = 101u32; +pub const MM_SHARP_MDC_AUX_CHR: u32 = 109u32; +pub const MM_SHARP_MDC_AUX_MASTER: u32 = 100u32; +pub const MM_SHARP_MDC_AUX_MIDI_VOL: u32 = 103u32; +pub const MM_SHARP_MDC_AUX_RVB: u32 = 108u32; +pub const MM_SHARP_MDC_AUX_TREBLE: u32 = 102u32; +pub const MM_SHARP_MDC_AUX_VOL: u32 = 107u32; +pub const MM_SHARP_MDC_AUX_WAVE_CHR: u32 = 106u32; +pub const MM_SHARP_MDC_AUX_WAVE_RVB: u32 = 105u32; +pub const MM_SHARP_MDC_AUX_WAVE_VOL: u32 = 104u32; +pub const MM_SHARP_MDC_MIDI_IN: u32 = 2u32; +pub const MM_SHARP_MDC_MIDI_OUT: u32 = 3u32; +pub const MM_SHARP_MDC_MIDI_SYNTH: u32 = 1u32; +pub const MM_SHARP_MDC_MIXER: u32 = 10u32; +pub const MM_SHARP_MDC_WAVE_IN: u32 = 4u32; +pub const MM_SHARP_MDC_WAVE_OUT: u32 = 5u32; +pub const MM_SICRESOURCE: u32 = 175u32; +pub const MM_SICRESOURCE_SSO3D: u32 = 2u32; +pub const MM_SICRESOURCE_SSOW3DI: u32 = 3u32; +pub const MM_SIEMENS_SBC: u32 = 201u32; +pub const MM_SIERRA: u32 = 40u32; +pub const MM_SIERRA_ARIA_AUX: u32 = 25u32; +pub const MM_SIERRA_ARIA_AUX2: u32 = 32u32; +pub const MM_SIERRA_ARIA_MIDIIN: u32 = 21u32; +pub const MM_SIERRA_ARIA_MIDIOUT: u32 = 20u32; +pub const MM_SIERRA_ARIA_SYNTH: u32 = 22u32; +pub const MM_SIERRA_ARIA_WAVEIN: u32 = 24u32; +pub const MM_SIERRA_ARIA_WAVEOUT: u32 = 23u32; +pub const MM_SIERRA_QUARTET_AUX_CD: u32 = 85u32; +pub const MM_SIERRA_QUARTET_AUX_LINE: u32 = 86u32; +pub const MM_SIERRA_QUARTET_AUX_MODEM: u32 = 87u32; +pub const MM_SIERRA_QUARTET_MIDIIN: u32 = 82u32; +pub const MM_SIERRA_QUARTET_MIDIOUT: u32 = 83u32; +pub const MM_SIERRA_QUARTET_MIXER: u32 = 88u32; +pub const MM_SIERRA_QUARTET_SYNTH: u32 = 84u32; +pub const MM_SIERRA_QUARTET_WAVEIN: u32 = 80u32; +pub const MM_SIERRA_QUARTET_WAVEOUT: u32 = 81u32; +pub const MM_SILICONSOFT: u32 = 69u32; +pub const MM_SILICONSOFT_SC1_WAVEIN: u32 = 1u32; +pub const MM_SILICONSOFT_SC1_WAVEOUT: u32 = 2u32; +pub const MM_SILICONSOFT_SC2_WAVEIN: u32 = 3u32; +pub const MM_SILICONSOFT_SC2_WAVEOUT: u32 = 4u32; +pub const MM_SILICONSOFT_SOUNDJR2PR_WAVEIN: u32 = 6u32; +pub const MM_SILICONSOFT_SOUNDJR2PR_WAVEOUT: u32 = 7u32; +pub const MM_SILICONSOFT_SOUNDJR2_WAVEOUT: u32 = 5u32; +pub const MM_SILICONSOFT_SOUNDJR3_WAVEOUT: u32 = 8u32; +pub const MM_SIPROLAB: u32 = 211u32; +pub const MM_SIPROLAB_ACELPNET: u32 = 1u32; +pub const MM_SNI: u32 = 18u32; +pub const MM_SNI_ACM_G721: u32 = 1u32; +pub const MM_SOFTLAB_NSK: u32 = 228u32; +pub const MM_SOFTLAB_NSK_FRW_AUX: u32 = 4u32; +pub const MM_SOFTLAB_NSK_FRW_MIXER: u32 = 3u32; +pub const MM_SOFTLAB_NSK_FRW_WAVEIN: u32 = 1u32; +pub const MM_SOFTLAB_NSK_FRW_WAVEOUT: u32 = 2u32; +pub const MM_SOFTSOUND: u32 = 149u32; +pub const MM_SOFTSOUND_CODEC: u32 = 1u32; +pub const MM_SONICFOUNDRY: u32 = 66u32; +pub const MM_SONORUS: u32 = 230u32; +pub const MM_SONORUS_STUDIO: u32 = 1u32; +pub const MM_SONY: u32 = 245u32; +pub const MM_SONY_ACM_SCX: u32 = 1u32; +pub const MM_SORVIS: u32 = 187u32; +pub const MM_SOUNDESIGNS: u32 = 142u32; +pub const MM_SOUNDESIGNS_WAVEIN: u32 = 1u32; +pub const MM_SOUNDESIGNS_WAVEOUT: u32 = 2u32; +pub const MM_SOUNDSCAPE_AUX: u32 = 24u32; +pub const MM_SOUNDSCAPE_MIDIIN: u32 = 21u32; +pub const MM_SOUNDSCAPE_MIDIOUT: u32 = 20u32; +pub const MM_SOUNDSCAPE_MIXER: u32 = 23u32; +pub const MM_SOUNDSCAPE_SYNTH: u32 = 22u32; +pub const MM_SOUNDSCAPE_WAVEIN: u32 = 19u32; +pub const MM_SOUNDSCAPE_WAVEOUT: u32 = 17u32; +pub const MM_SOUNDSCAPE_WAVEOUT_AUX: u32 = 18u32; +pub const MM_SOUNDSPACE: u32 = 167u32; +pub const MM_SPECTRUM_PRODUCTIONS: u32 = 213u32; +pub const MM_SPECTRUM_SIGNAL_PROCESSING: u32 = 144u32; +pub const MM_SPEECHCOMP: u32 = 76u32; +pub const MM_SPLASH_STUDIOS: u32 = 133u32; +pub const MM_SSP_SNDFESAUX: u32 = 7u32; +pub const MM_SSP_SNDFESMIDIIN: u32 = 3u32; +pub const MM_SSP_SNDFESMIDIOUT: u32 = 4u32; +pub const MM_SSP_SNDFESMIX: u32 = 6u32; +pub const MM_SSP_SNDFESSYNTH: u32 = 5u32; +pub const MM_SSP_SNDFESWAVEIN: u32 = 1u32; +pub const MM_SSP_SNDFESWAVEOUT: u32 = 2u32; +pub const MM_STUDER: u32 = 171u32; +pub const MM_STUDIO_16_AUX: u32 = 103u32; +pub const MM_STUDIO_16_MIDIIN: u32 = 98u32; +pub const MM_STUDIO_16_MIDIOUT: u32 = 97u32; +pub const MM_STUDIO_16_MIXER: u32 = 102u32; +pub const MM_STUDIO_16_SYNTH: u32 = 99u32; +pub const MM_STUDIO_16_WAVEIN: u32 = 101u32; +pub const MM_STUDIO_16_WAVEOUT: u32 = 100u32; +pub const MM_ST_MICROELECTRONICS: u32 = 265u32; +pub const MM_SUNCOM: u32 = 186u32; +pub const MM_SUPERMAC: u32 = 73u32; +pub const MM_SYDEC_NV: u32 = 248u32; +pub const MM_SYDEC_NV_WAVEIN: u32 = 1u32; +pub const MM_SYDEC_NV_WAVEOUT: u32 = 2u32; +pub const MM_TANDY: u32 = 29u32; +pub const MM_TANDY_PSSJWAVEIN: u32 = 9u32; +pub const MM_TANDY_PSSJWAVEOUT: u32 = 10u32; +pub const MM_TANDY_SENS_MMAMIDIIN: u32 = 6u32; +pub const MM_TANDY_SENS_MMAMIDIOUT: u32 = 7u32; +pub const MM_TANDY_SENS_MMAWAVEIN: u32 = 4u32; +pub const MM_TANDY_SENS_MMAWAVEOUT: u32 = 5u32; +pub const MM_TANDY_SENS_VISWAVEOUT: u32 = 8u32; +pub const MM_TANDY_VISBIOSSYNTH: u32 = 3u32; +pub const MM_TANDY_VISWAVEIN: u32 = 1u32; +pub const MM_TANDY_VISWAVEOUT: u32 = 2u32; +pub const MM_TBS_TROPEZ_AUX1: u32 = 39u32; +pub const MM_TBS_TROPEZ_AUX2: u32 = 40u32; +pub const MM_TBS_TROPEZ_LINE: u32 = 41u32; +pub const MM_TBS_TROPEZ_WAVEIN: u32 = 37u32; +pub const MM_TBS_TROPEZ_WAVEOUT: u32 = 38u32; +pub const MM_TDK: u32 = 135u32; +pub const MM_TDK_MW_AUX: u32 = 6u32; +pub const MM_TDK_MW_AUX_BASS: u32 = 101u32; +pub const MM_TDK_MW_AUX_CHR: u32 = 109u32; +pub const MM_TDK_MW_AUX_MASTER: u32 = 100u32; +pub const MM_TDK_MW_AUX_MIDI_VOL: u32 = 103u32; +pub const MM_TDK_MW_AUX_RVB: u32 = 108u32; +pub const MM_TDK_MW_AUX_TREBLE: u32 = 102u32; +pub const MM_TDK_MW_AUX_VOL: u32 = 107u32; +pub const MM_TDK_MW_AUX_WAVE_CHR: u32 = 106u32; +pub const MM_TDK_MW_AUX_WAVE_RVB: u32 = 105u32; +pub const MM_TDK_MW_AUX_WAVE_VOL: u32 = 104u32; +pub const MM_TDK_MW_MIDI_IN: u32 = 2u32; +pub const MM_TDK_MW_MIDI_OUT: u32 = 3u32; +pub const MM_TDK_MW_MIDI_SYNTH: u32 = 1u32; +pub const MM_TDK_MW_MIXER: u32 = 10u32; +pub const MM_TDK_MW_WAVE_IN: u32 = 4u32; +pub const MM_TDK_MW_WAVE_OUT: u32 = 5u32; +pub const MM_TELEKOL: u32 = 264u32; +pub const MM_TELEKOL_WAVEIN: u32 = 2u32; +pub const MM_TELEKOL_WAVEOUT: u32 = 1u32; +pub const MM_TERALOGIC: u32 = 202u32; +pub const MM_TERRATEC: u32 = 70u32; +pub const MM_THUNDER_AUX: u32 = 39u32; +pub const MM_THUNDER_SYNTH: u32 = 35u32; +pub const MM_THUNDER_WAVEIN: u32 = 37u32; +pub const MM_THUNDER_WAVEOUT: u32 = 36u32; +pub const MM_TPORT_SYNTH: u32 = 67u32; +pub const MM_TPORT_WAVEIN: u32 = 66u32; +pub const MM_TPORT_WAVEOUT: u32 = 65u32; +pub const MM_TRUEVISION: u32 = 51u32; +pub const MM_TRUEVISION_WAVEIN1: u32 = 1u32; +pub const MM_TRUEVISION_WAVEOUT1: u32 = 2u32; +pub const MM_TTEWS_AUX: u32 = 9u32; +pub const MM_TTEWS_MIDIIN: u32 = 3u32; +pub const MM_TTEWS_MIDIMONITOR: u32 = 6u32; +pub const MM_TTEWS_MIDIOUT: u32 = 4u32; +pub const MM_TTEWS_MIDISYNTH: u32 = 5u32; +pub const MM_TTEWS_MIXER: u32 = 10u32; +pub const MM_TTEWS_VMIDIIN: u32 = 7u32; +pub const MM_TTEWS_VMIDIOUT: u32 = 8u32; +pub const MM_TTEWS_WAVEIN: u32 = 1u32; +pub const MM_TTEWS_WAVEOUT: u32 = 2u32; +pub const MM_TURTLE_BEACH: u32 = 21u32; +pub const MM_UHER_INFORMATIC: u32 = 247u32; +pub const MM_UH_ACM_ADPCM: u32 = 1u32; +pub const MM_UNISYS: u32 = 223u32; +pub const MM_UNISYS_ACM_NAP: u32 = 1u32; +pub const MM_UNMAPPED: u32 = 65535u32; +pub const MM_VAL: u32 = 35u32; +pub const MM_VAL_MICROKEY_AP_WAVEIN: u32 = 1u32; +pub const MM_VAL_MICROKEY_AP_WAVEOUT: u32 = 2u32; +pub const MM_VANKOEVERING: u32 = 168u32; +pub const MM_VIA: u32 = 250u32; +pub const MM_VIA_AUX: u32 = 4u32; +pub const MM_VIA_MIXER: u32 = 3u32; +pub const MM_VIA_MPU401_MIDIIN: u32 = 6u32; +pub const MM_VIA_MPU401_MIDIOUT: u32 = 5u32; +pub const MM_VIA_SWFM_SYNTH: u32 = 7u32; +pub const MM_VIA_WAVEIN: u32 = 2u32; +pub const MM_VIA_WAVEOUT: u32 = 1u32; +pub const MM_VIA_WDM_MIXER: u32 = 10u32; +pub const MM_VIA_WDM_MPU401_MIDIIN: u32 = 12u32; +pub const MM_VIA_WDM_MPU401_MIDIOUT: u32 = 11u32; +pub const MM_VIA_WDM_WAVEIN: u32 = 9u32; +pub const MM_VIA_WDM_WAVEOUT: u32 = 8u32; +pub const MM_VIDEOLOGIC: u32 = 53u32; +pub const MM_VIDEOLOGIC_MSWAVEIN: u32 = 1u32; +pub const MM_VIDEOLOGIC_MSWAVEOUT: u32 = 2u32; +pub const MM_VIENNASYS: u32 = 157u32; +pub const MM_VIENNASYS_TSP_WAVE_DRIVER: u32 = 1u32; +pub const MM_VIONA: u32 = 161u32; +pub const MM_VIONAQVINPCI_WAVEOUT: u32 = 3u32; +pub const MM_VIONA_BUSTER_MIXER: u32 = 4u32; +pub const MM_VIONA_CINEMASTER_MIXER: u32 = 5u32; +pub const MM_VIONA_CONCERTO_MIXER: u32 = 6u32; +pub const MM_VIONA_QVINPCI_MIXER: u32 = 1u32; +pub const MM_VIONA_QVINPCI_WAVEIN: u32 = 2u32; +pub const MM_VIRTUALMUSIC: u32 = 205u32; +pub const MM_VITEC: u32 = 67u32; +pub const MM_VITEC_VMAKER: u32 = 1u32; +pub const MM_VITEC_VMPRO: u32 = 2u32; +pub const MM_VIVO: u32 = 182u32; +pub const MM_VIVO_AUDIO_CODEC: u32 = 1u32; +pub const MM_VKC_MPU401_MIDIIN: u32 = 256u32; +pub const MM_VKC_MPU401_MIDIOUT: u32 = 512u32; +pub const MM_VKC_SERIAL_MIDIIN: u32 = 257u32; +pub const MM_VKC_SERIAL_MIDIOUT: u32 = 513u32; +pub const MM_VOCALTEC: u32 = 23u32; +pub const MM_VOCALTEC_WAVEIN: u32 = 2u32; +pub const MM_VOCALTEC_WAVEOUT: u32 = 1u32; +pub const MM_VOICEINFO: u32 = 156u32; +pub const MM_VOICEMIXER: u32 = 1u32; +pub const MM_VOXWARE: u32 = 114u32; +pub const MM_VOXWARE_CODEC: u32 = 1u32; +pub const MM_VOYETRA: u32 = 30u32; +pub const MM_VQST: u32 = 240u32; +pub const MM_VQST_VQC1: u32 = 1u32; +pub const MM_VQST_VQC2: u32 = 2u32; +pub const MM_VTG: u32 = 109u32; +pub const MM_WANGLABS: u32 = 28u32; +pub const MM_WANGLABS_WAVEIN1: u32 = 1u32; +pub const MM_WANGLABS_WAVEOUT1: u32 = 2u32; +pub const MM_WEITEK: u32 = 96u32; +pub const MM_WILDCAT: u32 = 119u32; +pub const MM_WILDCAT_AUTOSCOREMIDIIN: u32 = 1u32; +pub const MM_WILLOPOND_SNDCOMM_WAVEIN: u32 = 108u32; +pub const MM_WILLOWPOND: u32 = 65u32; +pub const MM_WILLOWPOND_FMSYNTH_STEREO: u32 = 20u32; +pub const MM_WILLOWPOND_GENERIC_AUX: u32 = 115u32; +pub const MM_WILLOWPOND_GENERIC_MIXER: u32 = 114u32; +pub const MM_WILLOWPOND_GENERIC_WAVEIN: u32 = 112u32; +pub const MM_WILLOWPOND_GENERIC_WAVEOUT: u32 = 113u32; +pub const MM_WILLOWPOND_MPU401: u32 = 21u32; +pub const MM_WILLOWPOND_PH_AUX: u32 = 107u32; +pub const MM_WILLOWPOND_PH_MIXER: u32 = 106u32; +pub const MM_WILLOWPOND_PH_WAVEIN: u32 = 104u32; +pub const MM_WILLOWPOND_PH_WAVEOUT: u32 = 105u32; +pub const MM_WILLOWPOND_SNDCOMM_AUX: u32 = 111u32; +pub const MM_WILLOWPOND_SNDCOMM_MIXER: u32 = 110u32; +pub const MM_WILLOWPOND_SNDCOMM_WAVEOUT: u32 = 109u32; +pub const MM_WILLOWPOND_SNDPORT_AUX: u32 = 103u32; +pub const MM_WILLOWPOND_SNDPORT_MIXER: u32 = 102u32; +pub const MM_WILLOWPOND_SNDPORT_WAVEIN: u32 = 100u32; +pub const MM_WILLOWPOND_SNDPORT_WAVEOUT: u32 = 101u32; +pub const MM_WINBOND: u32 = 204u32; +pub const MM_WINNOV: u32 = 61u32; +pub const MM_WINNOV_CAVIAR_CHAMPAGNE: u32 = 4u32; +pub const MM_WINNOV_CAVIAR_VIDC: u32 = 3u32; +pub const MM_WINNOV_CAVIAR_WAVEIN: u32 = 1u32; +pub const MM_WINNOV_CAVIAR_WAVEOUT: u32 = 2u32; +pub const MM_WINNOV_CAVIAR_YUV8: u32 = 5u32; +pub const MM_WORKBIT: u32 = 102u32; +pub const MM_WORKBIT_AUX: u32 = 7u32; +pub const MM_WORKBIT_FMSYNTH: u32 = 6u32; +pub const MM_WORKBIT_JOYSTICK: u32 = 8u32; +pub const MM_WORKBIT_MIDIIN: u32 = 4u32; +pub const MM_WORKBIT_MIDIOUT: u32 = 5u32; +pub const MM_WORKBIT_MIXER: u32 = 1u32; +pub const MM_WORKBIT_WAVEIN: u32 = 3u32; +pub const MM_WORKBIT_WAVEOUT: u32 = 2u32; +pub const MM_WSS_SB16_AUX_CD: u32 = 45u32; +pub const MM_WSS_SB16_AUX_LINE: u32 = 44u32; +pub const MM_WSS_SB16_MIDIIN: u32 = 41u32; +pub const MM_WSS_SB16_MIDIOUT: u32 = 42u32; +pub const MM_WSS_SB16_MIXER: u32 = 46u32; +pub const MM_WSS_SB16_SYNTH: u32 = 43u32; +pub const MM_WSS_SB16_WAVEIN: u32 = 39u32; +pub const MM_WSS_SB16_WAVEOUT: u32 = 40u32; +pub const MM_WSS_SBPRO_AUX_CD: u32 = 53u32; +pub const MM_WSS_SBPRO_AUX_LINE: u32 = 52u32; +pub const MM_WSS_SBPRO_MIDIIN: u32 = 49u32; +pub const MM_WSS_SBPRO_MIDIOUT: u32 = 50u32; +pub const MM_WSS_SBPRO_MIXER: u32 = 54u32; +pub const MM_WSS_SBPRO_SYNTH: u32 = 51u32; +pub const MM_WSS_SBPRO_WAVEIN: u32 = 47u32; +pub const MM_WSS_SBPRO_WAVEOUT: u32 = 48u32; +pub const MM_XEBEC: u32 = 85u32; +pub const MM_XIRLINK: u32 = 178u32; +pub const MM_XIRLINK_VISIONLINK: u32 = 1u32; +pub const MM_XYZ: u32 = 112u32; +pub const MM_YAMAHA: u32 = 37u32; +pub const MM_YAMAHA_ACXG_AUX: u32 = 41u32; +pub const MM_YAMAHA_ACXG_MIDIOUT: u32 = 39u32; +pub const MM_YAMAHA_ACXG_MIXER: u32 = 40u32; +pub const MM_YAMAHA_ACXG_WAVEIN: u32 = 37u32; +pub const MM_YAMAHA_ACXG_WAVEOUT: u32 = 38u32; +pub const MM_YAMAHA_GSS_AUX: u32 = 6u32; +pub const MM_YAMAHA_GSS_MIDIIN: u32 = 5u32; +pub const MM_YAMAHA_GSS_MIDIOUT: u32 = 4u32; +pub const MM_YAMAHA_GSS_SYNTH: u32 = 1u32; +pub const MM_YAMAHA_GSS_WAVEIN: u32 = 3u32; +pub const MM_YAMAHA_GSS_WAVEOUT: u32 = 2u32; +pub const MM_YAMAHA_OPL3SA_FMSYNTH: u32 = 18u32; +pub const MM_YAMAHA_OPL3SA_JOYSTICK: u32 = 24u32; +pub const MM_YAMAHA_OPL3SA_MIDIIN: u32 = 21u32; +pub const MM_YAMAHA_OPL3SA_MIDIOUT: u32 = 20u32; +pub const MM_YAMAHA_OPL3SA_MIXER: u32 = 23u32; +pub const MM_YAMAHA_OPL3SA_WAVEIN: u32 = 17u32; +pub const MM_YAMAHA_OPL3SA_WAVEOUT: u32 = 16u32; +pub const MM_YAMAHA_OPL3SA_YSYNTH: u32 = 19u32; +pub const MM_YAMAHA_SERIAL_MIDIIN: u32 = 8u32; +pub const MM_YAMAHA_SERIAL_MIDIOUT: u32 = 7u32; +pub const MM_YAMAHA_SXG_MIDIOUT: u32 = 34u32; +pub const MM_YAMAHA_SXG_MIXER: u32 = 36u32; +pub const MM_YAMAHA_SXG_WAVEOUT: u32 = 35u32; +pub const MM_YAMAHA_YMF724LEG_FMSYNTH: u32 = 32u32; +pub const MM_YAMAHA_YMF724LEG_MIDIIN: u32 = 26u32; +pub const MM_YAMAHA_YMF724LEG_MIDIOUT: u32 = 25u32; +pub const MM_YAMAHA_YMF724LEG_MIXER: u32 = 33u32; +pub const MM_YAMAHA_YMF724_AUX: u32 = 30u32; +pub const MM_YAMAHA_YMF724_MIDIOUT: u32 = 29u32; +pub const MM_YAMAHA_YMF724_MIXER: u32 = 31u32; +pub const MM_YAMAHA_YMF724_WAVEIN: u32 = 28u32; +pub const MM_YAMAHA_YMF724_WAVEOUT: u32 = 27u32; +pub const MM_YOUCOM: u32 = 256u32; +pub const MM_ZEFIRO: u32 = 170u32; +pub const MM_ZEFIRO_ZA2: u32 = 2u32; +pub const MM_ZYXEL: u32 = 9u32; +pub const MM_ZYXEL_ACM_ADPCM: u32 = 1u32; +pub const MODM_CACHEDRUMPATCHES: u32 = 13u32; +pub const MODM_CACHEPATCHES: u32 = 12u32; +pub const MODM_CLOSE: u32 = 4u32; +pub const MODM_DATA: u32 = 7u32; +pub const MODM_GETDEVCAPS: u32 = 2u32; +pub const MODM_GETNUMDEVS: u32 = 1u32; +pub const MODM_GETPOS: u32 = 17u32; +pub const MODM_GETVOLUME: u32 = 10u32; +pub const MODM_INIT: u32 = 100u32; +pub const MODM_INIT_EX: u32 = 104u32; +pub const MODM_LONGDATA: u32 = 8u32; +pub const MODM_MAPPER: u32 = 8192u32; +pub const MODM_OPEN: u32 = 3u32; +pub const MODM_PAUSE: u32 = 18u32; +pub const MODM_PREFERRED: u32 = 22u32; +pub const MODM_PREPARE: u32 = 5u32; +pub const MODM_PROPERTIES: u32 = 21u32; +pub const MODM_RECONFIGURE: u32 = 18280u32; +pub const MODM_RESET: u32 = 9u32; +pub const MODM_RESTART: u32 = 19u32; +pub const MODM_SETVOLUME: u32 = 11u32; +pub const MODM_STOP: u32 = 20u32; +pub const MODM_STRMDATA: u32 = 14u32; +pub const MODM_UNPREPARE: u32 = 6u32; +pub const MODM_USER: u32 = 16384u32; +pub const MPEGLAYER3_ID_CONSTANTFRAMESIZE: u32 = 2u32; +pub const MPEGLAYER3_ID_MPEG: u32 = 1u32; +pub const MPEGLAYER3_ID_UNKNOWN: u32 = 0u32; +pub const MPEGLAYER3_WFX_EXTRA_BYTES: u32 = 12u32; +pub const MSAUDIO1_BITS_PER_SAMPLE: u32 = 16u32; +pub const MSAUDIO1_MAX_CHANNELS: u32 = 2u32; +pub const MXDM_BASE: u32 = 1u32; +pub const MXDM_CLOSE: u32 = 4u32; +pub const MXDM_GETCONTROLDETAILS: u32 = 7u32; +pub const MXDM_GETDEVCAPS: u32 = 2u32; +pub const MXDM_GETLINECONTROLS: u32 = 6u32; +pub const MXDM_GETLINEINFO: u32 = 5u32; +pub const MXDM_GETNUMDEVS: u32 = 1u32; +pub const MXDM_INIT: u32 = 100u32; +pub const MXDM_INIT_EX: u32 = 104u32; +pub const MXDM_OPEN: u32 = 3u32; +pub const MXDM_SETCONTROLDETAILS: u32 = 8u32; +pub const MXDM_USER: u32 = 16384u32; +pub const NS_DRM_E_MIGRATION_IMAGE_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -1072879730i32; +pub const NS_DRM_E_MIGRATION_SOURCE_MACHINE_IN_USE: ::windows_sys::core::HRESULT = -1072879732i32; +pub const NS_DRM_E_MIGRATION_TARGET_MACHINE_LESS_THAN_LH: ::windows_sys::core::HRESULT = -1072879731i32; +pub const NS_DRM_E_MIGRATION_UPGRADE_WITH_DIFF_SID: ::windows_sys::core::HRESULT = -1072879733i32; +pub const NS_E_8BIT_WAVE_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072886834i32; +pub const NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED: ::windows_sys::core::HRESULT = -1072882778i32; +pub const NS_E_ACTIVE_SG_DEVICE_DISCONNECTED: ::windows_sys::core::HRESULT = -1072882779i32; +pub const NS_E_ADVANCEDEDIT_TOO_MANY_PICTURES: ::windows_sys::core::HRESULT = -1072884886i32; +pub const NS_E_ALLOCATE_FILE_FAIL: ::windows_sys::core::HRESULT = -1072889759i32; +pub const NS_E_ALL_PROTOCOLS_DISABLED: ::windows_sys::core::HRESULT = -1072877845i32; +pub const NS_E_ALREADY_CONNECTED: ::windows_sys::core::HRESULT = -1072889840i32; +pub const NS_E_ANALOG_VIDEO_PROTECTION_LEVEL_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072879353i32; +pub const NS_E_ARCHIVE_ABORT_DUE_TO_BCAST: ::windows_sys::core::HRESULT = -1072884338i32; +pub const NS_E_ARCHIVE_FILENAME_NOTSET: ::windows_sys::core::HRESULT = -1072882823i32; +pub const NS_E_ARCHIVE_GAP_DETECTED: ::windows_sys::core::HRESULT = -1072884337i32; +pub const NS_E_ARCHIVE_REACH_QUOTA: ::windows_sys::core::HRESULT = -1072884339i32; +pub const NS_E_ARCHIVE_SAME_AS_INPUT: ::windows_sys::core::HRESULT = -1072882812i32; +pub const NS_E_ASSERT: ::windows_sys::core::HRESULT = -1072889653i32; +pub const NS_E_ASX_INVALIDFORMAT: ::windows_sys::core::HRESULT = -1072885655i32; +pub const NS_E_ASX_INVALIDVERSION: ::windows_sys::core::HRESULT = -1072885654i32; +pub const NS_E_ASX_INVALID_REPEAT_BLOCK: ::windows_sys::core::HRESULT = -1072885653i32; +pub const NS_E_ASX_NOTHING_TO_WRITE: ::windows_sys::core::HRESULT = -1072885652i32; +pub const NS_E_ATTRIBUTE_NOT_ALLOWED: ::windows_sys::core::HRESULT = -1072886825i32; +pub const NS_E_ATTRIBUTE_READ_ONLY: ::windows_sys::core::HRESULT = -1072886826i32; +pub const NS_E_AUDIENCE_CONTENTTYPE_MISMATCH: ::windows_sys::core::HRESULT = -1072882791i32; +pub const NS_E_AUDIENCE__LANGUAGE_CONTENTTYPE_MISMATCH: ::windows_sys::core::HRESULT = -1072882717i32; +pub const NS_E_AUDIODEVICE_BADFORMAT: ::windows_sys::core::HRESULT = -1072882845i32; +pub const NS_E_AUDIODEVICE_BUSY: ::windows_sys::core::HRESULT = -1072882847i32; +pub const NS_E_AUDIODEVICE_UNEXPECTED: ::windows_sys::core::HRESULT = -1072882846i32; +pub const NS_E_AUDIO_BITRATE_STEPDOWN: ::windows_sys::core::HRESULT = -1072882759i32; +pub const NS_E_AUDIO_CODEC_ERROR: ::windows_sys::core::HRESULT = -1072886845i32; +pub const NS_E_AUDIO_CODEC_NOT_INSTALLED: ::windows_sys::core::HRESULT = -1072886846i32; +pub const NS_E_AUTHORIZATION_FILE_NOT_FOUND: ::windows_sys::core::HRESULT = -1072884336i32; +pub const NS_E_BACKUP_RESTORE_BAD_DATA: ::windows_sys::core::HRESULT = -1072879803i32; +pub const NS_E_BACKUP_RESTORE_BAD_REQUEST_ID: ::windows_sys::core::HRESULT = -1072879826i32; +pub const NS_E_BACKUP_RESTORE_FAILURE: ::windows_sys::core::HRESULT = -1072879827i32; +pub const NS_E_BACKUP_RESTORE_TOO_MANY_RESETS: ::windows_sys::core::HRESULT = -1072879770i32; +pub const NS_E_BAD_ADAPTER_ADDRESS: ::windows_sys::core::HRESULT = -1072889799i32; +pub const NS_E_BAD_ADAPTER_NAME: ::windows_sys::core::HRESULT = -1072889652i32; +pub const NS_E_BAD_BLOCK0_VERSION: ::windows_sys::core::HRESULT = -1072889757i32; +pub const NS_E_BAD_CONTENTEDL: ::windows_sys::core::HRESULT = -1072882774i32; +pub const NS_E_BAD_CONTROL_DATA: ::windows_sys::core::HRESULT = -1072889806i32; +pub const NS_E_BAD_CUB_UID: ::windows_sys::core::HRESULT = -1072889454i32; +pub const NS_E_BAD_DELIVERY_MODE: ::windows_sys::core::HRESULT = -1072889798i32; +pub const NS_E_BAD_DISK_UID: ::windows_sys::core::HRESULT = -1072889756i32; +pub const NS_E_BAD_FSMAJOR_VERSION: ::windows_sys::core::HRESULT = -1072889755i32; +pub const NS_E_BAD_MARKIN: ::windows_sys::core::HRESULT = -1072882856i32; +pub const NS_E_BAD_MARKOUT: ::windows_sys::core::HRESULT = -1072882855i32; +pub const NS_E_BAD_MULTICAST_ADDRESS: ::windows_sys::core::HRESULT = -1072889800i32; +pub const NS_E_BAD_REQUEST: ::windows_sys::core::HRESULT = -1072877853i32; +pub const NS_E_BAD_STAMPNUMBER: ::windows_sys::core::HRESULT = -1072889754i32; +pub const NS_E_BAD_SYNTAX_IN_SERVER_RESPONSE: ::windows_sys::core::HRESULT = -1072877826i32; +pub const NS_E_BKGDOWNLOAD_CALLFUNCENDED: ::windows_sys::core::HRESULT = -1072885145i32; +pub const NS_E_BKGDOWNLOAD_CALLFUNCFAILED: ::windows_sys::core::HRESULT = -1072885147i32; +pub const NS_E_BKGDOWNLOAD_CALLFUNCTIMEOUT: ::windows_sys::core::HRESULT = -1072885146i32; +pub const NS_E_BKGDOWNLOAD_CANCELCOMPLETEDJOB: ::windows_sys::core::HRESULT = -1072885153i32; +pub const NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB: ::windows_sys::core::HRESULT = -1072885154i32; +pub const NS_E_BKGDOWNLOAD_FAILEDINITIALIZE: ::windows_sys::core::HRESULT = -1072885143i32; +pub const NS_E_BKGDOWNLOAD_FAILED_TO_CREATE_TEMPFILE: ::windows_sys::core::HRESULT = -1072885150i32; +pub const NS_E_BKGDOWNLOAD_INVALIDJOBSIGNATURE: ::windows_sys::core::HRESULT = -1072885151i32; +pub const NS_E_BKGDOWNLOAD_INVALID_FILE_NAME: ::windows_sys::core::HRESULT = -1072885141i32; +pub const NS_E_BKGDOWNLOAD_NOJOBPOINTER: ::windows_sys::core::HRESULT = -1072885152i32; +pub const NS_E_BKGDOWNLOAD_PLUGIN_FAILEDINITIALIZE: ::windows_sys::core::HRESULT = -1072885149i32; +pub const NS_E_BKGDOWNLOAD_PLUGIN_FAILEDTOMOVEFILE: ::windows_sys::core::HRESULT = -1072885148i32; +pub const NS_E_BKGDOWNLOAD_WMDUNPACKFAILED: ::windows_sys::core::HRESULT = -1072885144i32; +pub const NS_E_BKGDOWNLOAD_WRONG_NO_FILES: ::windows_sys::core::HRESULT = -1072885155i32; +pub const NS_E_BUSY: ::windows_sys::core::HRESULT = -1072889819i32; +pub const NS_E_CACHE_ARCHIVE_CONFLICT: ::windows_sys::core::HRESULT = -1072884756i32; +pub const NS_E_CACHE_CANNOT_BE_CACHED: ::windows_sys::core::HRESULT = -1072884752i32; +pub const NS_E_CACHE_NOT_BROADCAST: ::windows_sys::core::HRESULT = -1072884753i32; +pub const NS_E_CACHE_NOT_MODIFIED: ::windows_sys::core::HRESULT = -1072884751i32; +pub const NS_E_CACHE_ORIGIN_SERVER_NOT_FOUND: ::windows_sys::core::HRESULT = -1072884755i32; +pub const NS_E_CACHE_ORIGIN_SERVER_TIMEOUT: ::windows_sys::core::HRESULT = -1072884754i32; +pub const NS_E_CANNOTCONNECT: ::windows_sys::core::HRESULT = -1072889850i32; +pub const NS_E_CANNOTCONNECTEVENTS: ::windows_sys::core::HRESULT = -1072889745i32; +pub const NS_E_CANNOTDESTROYTITLE: ::windows_sys::core::HRESULT = -1072889849i32; +pub const NS_E_CANNOTOFFLINEDISK: ::windows_sys::core::HRESULT = -1072889847i32; +pub const NS_E_CANNOTONLINEDISK: ::windows_sys::core::HRESULT = -1072889846i32; +pub const NS_E_CANNOTRENAMETITLE: ::windows_sys::core::HRESULT = -1072889848i32; +pub const NS_E_CANNOT_BUY_OR_DOWNLOAD_CONTENT: ::windows_sys::core::HRESULT = -1072884904i32; +pub const NS_E_CANNOT_BUY_OR_DOWNLOAD_FROM_MULTIPLE_SERVICES: ::windows_sys::core::HRESULT = -1072884905i32; +pub const NS_E_CANNOT_CONNECT_TO_PROXY: ::windows_sys::core::HRESULT = -1072877842i32; +pub const NS_E_CANNOT_DELETE_ACTIVE_SOURCEGROUP: ::windows_sys::core::HRESULT = -1072882848i32; +pub const NS_E_CANNOT_GENERATE_BROADCAST_INFO_FOR_QUALITYVBR: ::windows_sys::core::HRESULT = -1072882721i32; +pub const NS_E_CANNOT_PAUSE_LIVEBROADCAST: ::windows_sys::core::HRESULT = -1072882802i32; +pub const NS_E_CANNOT_READ_PLAYLIST_FROM_MEDIASERVER: ::windows_sys::core::HRESULT = -1072877838i32; +pub const NS_E_CANNOT_REMOVE_PLUGIN: ::windows_sys::core::HRESULT = -1072884655i32; +pub const NS_E_CANNOT_REMOVE_PUBLISHING_POINT: ::windows_sys::core::HRESULT = -1072884656i32; +pub const NS_E_CANNOT_SYNC_DRM_TO_NON_JANUS_DEVICE: ::windows_sys::core::HRESULT = -1072885178i32; +pub const NS_E_CANNOT_SYNC_PREVIOUS_SYNC_RUNNING: ::windows_sys::core::HRESULT = -1072885177i32; +pub const NS_E_CANT_READ_DIGITAL: ::windows_sys::core::HRESULT = -1072885855i32; +pub const NS_E_CCLINK_DOWN: ::windows_sys::core::HRESULT = -1072889821i32; +pub const NS_E_CD_COPYTO_CD: ::windows_sys::core::HRESULT = -1072885842i32; +pub const NS_E_CD_DRIVER_PROBLEM: ::windows_sys::core::HRESULT = -1072885838i32; +pub const NS_E_CD_EMPTY_TRACK_QUEUE: ::windows_sys::core::HRESULT = -1072885255i32; +pub const NS_E_CD_ISRC_INVALID: ::windows_sys::core::HRESULT = -1072885253i32; +pub const NS_E_CD_MEDIA_CATALOG_NUMBER_INVALID: ::windows_sys::core::HRESULT = -1072885252i32; +pub const NS_E_CD_NO_BUFFERS_READ: ::windows_sys::core::HRESULT = -1072885256i32; +pub const NS_E_CD_NO_READER: ::windows_sys::core::HRESULT = -1072885254i32; +pub const NS_E_CD_QUEUEING_DISABLED: ::windows_sys::core::HRESULT = -1072885249i32; +pub const NS_E_CD_READ_ERROR: ::windows_sys::core::HRESULT = -1072885844i32; +pub const NS_E_CD_READ_ERROR_NO_CORRECTION: ::windows_sys::core::HRESULT = -1072885845i32; +pub const NS_E_CD_REFRESH: ::windows_sys::core::HRESULT = -1072885839i32; +pub const NS_E_CD_SLOW_COPY: ::windows_sys::core::HRESULT = -1072885843i32; +pub const NS_E_CD_SPEEDDETECT_NOT_ENOUGH_READS: ::windows_sys::core::HRESULT = -1072885250i32; +pub const NS_E_CHANGING_PROXYBYPASS: ::windows_sys::core::HRESULT = -1072885565i32; +pub const NS_E_CHANGING_PROXY_EXCEPTIONLIST: ::windows_sys::core::HRESULT = -1072885566i32; +pub const NS_E_CHANGING_PROXY_NAME: ::windows_sys::core::HRESULT = -1072885568i32; +pub const NS_E_CHANGING_PROXY_PORT: ::windows_sys::core::HRESULT = -1072885567i32; +pub const NS_E_CHANGING_PROXY_PROTOCOL_NOT_FOUND: ::windows_sys::core::HRESULT = -1072885564i32; +pub const NS_E_CLOSED_ON_SUSPEND: ::windows_sys::core::HRESULT = -1072877839i32; +pub const NS_E_CODEC_DMO_ERROR: ::windows_sys::core::HRESULT = -1072886822i32; +pub const NS_E_CODEC_UNAVAILABLE: ::windows_sys::core::HRESULT = -1072882813i32; +pub const NS_E_COMPRESSED_DIGITAL_AUDIO_PROTECTION_LEVEL_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072879352i32; +pub const NS_E_COMPRESSED_DIGITAL_VIDEO_PROTECTION_LEVEL_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072879355i32; +pub const NS_E_CONNECTION_FAILURE: ::windows_sys::core::HRESULT = -1072889815i32; +pub const NS_E_CONNECT_TIMEOUT: ::windows_sys::core::HRESULT = -1072877818i32; +pub const NS_E_CONTENT_PARTNER_STILL_INITIALIZING: ::windows_sys::core::HRESULT = -1072884894i32; +pub const NS_E_CORECD_NOTAMEDIACD: ::windows_sys::core::HRESULT = -1072885561i32; +pub const NS_E_CRITICAL_ERROR: ::windows_sys::core::HRESULT = -1072884452i32; +pub const NS_E_CUB_FAIL: ::windows_sys::core::HRESULT = -1072889773i32; +pub const NS_E_CUB_FAIL_LINK: ::windows_sys::core::HRESULT = -1072889456i32; +pub const NS_E_CURLHELPER_NOTADIRECTORY: ::windows_sys::core::HRESULT = -1072884947i32; +pub const NS_E_CURLHELPER_NOTAFILE: ::windows_sys::core::HRESULT = -1072884946i32; +pub const NS_E_CURLHELPER_NOTRELATIVE: ::windows_sys::core::HRESULT = -1072884944i32; +pub const NS_E_CURL_CANTDECODE: ::windows_sys::core::HRESULT = -1072884945i32; +pub const NS_E_CURL_CANTWALK: ::windows_sys::core::HRESULT = -1072884949i32; +pub const NS_E_CURL_INVALIDBUFFERSIZE: ::windows_sys::core::HRESULT = -1072884943i32; +pub const NS_E_CURL_INVALIDCHAR: ::windows_sys::core::HRESULT = -1072884955i32; +pub const NS_E_CURL_INVALIDHOSTNAME: ::windows_sys::core::HRESULT = -1072884954i32; +pub const NS_E_CURL_INVALIDPATH: ::windows_sys::core::HRESULT = -1072884953i32; +pub const NS_E_CURL_INVALIDPORT: ::windows_sys::core::HRESULT = -1072884948i32; +pub const NS_E_CURL_INVALIDSCHEME: ::windows_sys::core::HRESULT = -1072884952i32; +pub const NS_E_CURL_INVALIDURL: ::windows_sys::core::HRESULT = -1072884951i32; +pub const NS_E_CURL_NOTSAFE: ::windows_sys::core::HRESULT = -1072884956i32; +pub const NS_E_DAMAGED_FILE: ::windows_sys::core::HRESULT = -1072885813i32; +pub const NS_E_DATAPATH_NO_SINK: ::windows_sys::core::HRESULT = -1072884456i32; +pub const NS_E_DATA_SOURCE_ENUMERATION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1072884352i32; +pub const NS_E_DATA_UNIT_EXTENSION_TOO_LARGE: ::windows_sys::core::HRESULT = -1072886823i32; +pub const NS_E_DDRAW_GENERIC: ::windows_sys::core::HRESULT = -1072885571i32; +pub const NS_E_DEVCONTROL_FAILED_SEEK: ::windows_sys::core::HRESULT = -1072882796i32; +pub const NS_E_DEVICECONTROL_UNSTABLE: ::windows_sys::core::HRESULT = -1072882719i32; +pub const NS_E_DEVICE_DISCONNECTED: ::windows_sys::core::HRESULT = -1072885854i32; +pub const NS_E_DEVICE_IS_NOT_READY: ::windows_sys::core::HRESULT = -1072885385i32; +pub const NS_E_DEVICE_NOT_READY: ::windows_sys::core::HRESULT = -1072885814i32; +pub const NS_E_DEVICE_NOT_SUPPORT_FORMAT: ::windows_sys::core::HRESULT = -1072885853i32; +pub const NS_E_DEVICE_NOT_WMDRM_DEVICE: ::windows_sys::core::HRESULT = -1072879749i32; +pub const NS_E_DISK_FAIL: ::windows_sys::core::HRESULT = -1072889771i32; +pub const NS_E_DISK_READ: ::windows_sys::core::HRESULT = -1072889833i32; +pub const NS_E_DISK_WRITE: ::windows_sys::core::HRESULT = -1072889834i32; +pub const NS_E_DISPLAY_MODE_CHANGE_FAILED: ::windows_sys::core::HRESULT = -1072885570i32; +pub const NS_E_DRMPROFILE_NOTFOUND: ::windows_sys::core::HRESULT = -1072882731i32; +pub const NS_E_DRM_ACQUIRING_LICENSE: ::windows_sys::core::HRESULT = -1072879829i32; +pub const NS_E_DRM_ACTION_NOT_QUERIED: ::windows_sys::core::HRESULT = -1072879830i32; +pub const NS_E_DRM_ALREADY_INDIVIDUALIZED: ::windows_sys::core::HRESULT = -1072879831i32; +pub const NS_E_DRM_APPCERT_REVOKED: ::windows_sys::core::HRESULT = -1072879790i32; +pub const NS_E_DRM_ATTRIBUTE_TOO_LONG: ::windows_sys::core::HRESULT = -1072879438i32; +pub const NS_E_DRM_BACKUPRESTORE_BUSY: ::windows_sys::core::HRESULT = -1072879804i32; +pub const NS_E_DRM_BACKUP_CORRUPT: ::windows_sys::core::HRESULT = -1072879805i32; +pub const NS_E_DRM_BACKUP_EXISTS: ::windows_sys::core::HRESULT = -1072879806i32; +pub const NS_E_DRM_BAD_REQUEST: ::windows_sys::core::HRESULT = -1072879440i32; +pub const NS_E_DRM_BB_UNABLE_TO_INITIALIZE: ::windows_sys::core::HRESULT = -1072879744i32; +pub const NS_E_DRM_BUFFER_TOO_SMALL: ::windows_sys::core::HRESULT = -1072879780i32; +pub const NS_E_DRM_BUSY: ::windows_sys::core::HRESULT = -1072879551i32; +pub const NS_E_DRM_CACHED_CONTENT_ERROR: ::windows_sys::core::HRESULT = -1072879797i32; +pub const NS_E_DRM_CERTIFICATE_REVOKED: ::windows_sys::core::HRESULT = -1072879455i32; +pub const NS_E_DRM_CERTIFICATE_SECURITY_LEVEL_INADEQUATE: ::windows_sys::core::HRESULT = -1072879442i32; +pub const NS_E_DRM_CHAIN_TOO_LONG: ::windows_sys::core::HRESULT = -1072879540i32; +pub const NS_E_DRM_CHECKPOINT_CORRUPT: ::windows_sys::core::HRESULT = -1072879721i32; +pub const NS_E_DRM_CHECKPOINT_FAILED: ::windows_sys::core::HRESULT = -1072879745i32; +pub const NS_E_DRM_CHECKPOINT_MISMATCH: ::windows_sys::core::HRESULT = -1072879722i32; +pub const NS_E_DRM_CLIENT_CODE_EXPIRED: ::windows_sys::core::HRESULT = -1072879545i32; +pub const NS_E_DRM_DATASTORE_CORRUPT: ::windows_sys::core::HRESULT = -1072879741i32; +pub const NS_E_DRM_DEBUGGING_NOT_ALLOWED: ::windows_sys::core::HRESULT = -1072879769i32; +pub const NS_E_DRM_DECRYPT_ERROR: ::windows_sys::core::HRESULT = -1072879837i32; +pub const NS_E_DRM_DEVICE_ACTIVATION_CANCELED: ::windows_sys::core::HRESULT = -1072879771i32; +pub const NS_E_DRM_DEVICE_ALREADY_REGISTERED: ::windows_sys::core::HRESULT = -1072879445i32; +pub const NS_E_DRM_DEVICE_LIMIT_REACHED: ::windows_sys::core::HRESULT = -1072879453i32; +pub const NS_E_DRM_DEVICE_NOT_OPEN: ::windows_sys::core::HRESULT = -1072879446i32; +pub const NS_E_DRM_DEVICE_NOT_REGISTERED: ::windows_sys::core::HRESULT = -1072879646i32; +pub const NS_E_DRM_DRIVER_AUTH_FAILURE: ::windows_sys::core::HRESULT = -1072879795i32; +pub const NS_E_DRM_DRIVER_DIGIOUT_FAILURE: ::windows_sys::core::HRESULT = -1072879792i32; +pub const NS_E_DRM_DRMV2CLT_REVOKED: ::windows_sys::core::HRESULT = -1072879434i32; +pub const NS_E_DRM_ENCRYPT_ERROR: ::windows_sys::core::HRESULT = -1072879838i32; +pub const NS_E_DRM_ENUM_LICENSE_FAILED: ::windows_sys::core::HRESULT = -1072879845i32; +pub const NS_E_DRM_ERROR_BAD_NET_RESP: ::windows_sys::core::HRESULT = -1072879778i32; +pub const NS_E_DRM_EXPIRED_LICENSEBLOB: ::windows_sys::core::HRESULT = -1072879437i32; +pub const NS_E_DRM_GET_CONTENTSTRING_ERROR: ::windows_sys::core::HRESULT = -1072879811i32; +pub const NS_E_DRM_GET_LICENSESTRING_ERROR: ::windows_sys::core::HRESULT = -1072879812i32; +pub const NS_E_DRM_GET_LICENSE_ERROR: ::windows_sys::core::HRESULT = -1072879815i32; +pub const NS_E_DRM_HARDWAREID_MISMATCH: ::windows_sys::core::HRESULT = -1072879729i32; +pub const NS_E_DRM_HARDWARE_INCONSISTENT: ::windows_sys::core::HRESULT = -1072879788i32; +pub const NS_E_DRM_INCLUSION_LIST_REQUIRED: ::windows_sys::core::HRESULT = -1072879435i32; +pub const NS_E_DRM_INDIVIDUALIZATION_INCOMPLETE: ::windows_sys::core::HRESULT = -1072879796i32; +pub const NS_E_DRM_INDIVIDUALIZE_ERROR: ::windows_sys::core::HRESULT = -1072879818i32; +pub const NS_E_DRM_INDIVIDUALIZING: ::windows_sys::core::HRESULT = -1072879828i32; +pub const NS_E_DRM_INDIV_FRAUD: ::windows_sys::core::HRESULT = -1072879549i32; +pub const NS_E_DRM_INDIV_NO_CABS: ::windows_sys::core::HRESULT = -1072879548i32; +pub const NS_E_DRM_INDIV_SERVICE_UNAVAILABLE: ::windows_sys::core::HRESULT = -1072879547i32; +pub const NS_E_DRM_INVALID_APPCERT: ::windows_sys::core::HRESULT = -1072879748i32; +pub const NS_E_DRM_INVALID_APPDATA: ::windows_sys::core::HRESULT = -1072879808i32; +pub const NS_E_DRM_INVALID_APPDATA_VERSION: ::windows_sys::core::HRESULT = -1072879807i32; +pub const NS_E_DRM_INVALID_APPLICATION: ::windows_sys::core::HRESULT = -1072879855i32; +pub const NS_E_DRM_INVALID_CERTIFICATE: ::windows_sys::core::HRESULT = -1072879456i32; +pub const NS_E_DRM_INVALID_CONTENT: ::windows_sys::core::HRESULT = -1072879850i32; +pub const NS_E_DRM_INVALID_CRL: ::windows_sys::core::HRESULT = -1072879439i32; +pub const NS_E_DRM_INVALID_DATA: ::windows_sys::core::HRESULT = -1072879775i32; +pub const NS_E_DRM_INVALID_KID: ::windows_sys::core::HRESULT = -1072879543i32; +pub const NS_E_DRM_INVALID_LICENSE: ::windows_sys::core::HRESULT = -1072879848i32; +pub const NS_E_DRM_INVALID_LICENSEBLOB: ::windows_sys::core::HRESULT = -1072879436i32; +pub const NS_E_DRM_INVALID_LICENSE_ACQUIRED: ::windows_sys::core::HRESULT = -1072879841i32; +pub const NS_E_DRM_INVALID_LICENSE_REQUEST: ::windows_sys::core::HRESULT = -1072879844i32; +pub const NS_E_DRM_INVALID_MACHINE: ::windows_sys::core::HRESULT = -1072879847i32; +pub const NS_E_DRM_INVALID_MIGRATION_IMAGE: ::windows_sys::core::HRESULT = -1072879736i32; +pub const NS_E_DRM_INVALID_PROPERTY: ::windows_sys::core::HRESULT = -1072879799i32; +pub const NS_E_DRM_INVALID_PROXIMITY_RESPONSE: ::windows_sys::core::HRESULT = -1072879448i32; +pub const NS_E_DRM_INVALID_SECURESTORE_PASSWORD: ::windows_sys::core::HRESULT = -1072879791i32; +pub const NS_E_DRM_INVALID_SESSION: ::windows_sys::core::HRESULT = -1072879447i32; +pub const NS_E_DRM_KEY_ERROR: ::windows_sys::core::HRESULT = -1072879839i32; +pub const NS_E_DRM_LICENSE_APPSECLOW: ::windows_sys::core::HRESULT = -1072879654i32; +pub const NS_E_DRM_LICENSE_APP_NOTALLOWED: ::windows_sys::core::HRESULT = -1072879651i32; +pub const NS_E_DRM_LICENSE_CERT_EXPIRED: ::windows_sys::core::HRESULT = -1072879649i32; +pub const NS_E_DRM_LICENSE_CLOSE_ERROR: ::windows_sys::core::HRESULT = -1072879816i32; +pub const NS_E_DRM_LICENSE_CONTENT_REVOKED: ::windows_sys::core::HRESULT = -1072879647i32; +pub const NS_E_DRM_LICENSE_DELETION_ERROR: ::windows_sys::core::HRESULT = -1072879538i32; +pub const NS_E_DRM_LICENSE_EXPIRED: ::windows_sys::core::HRESULT = -1072879656i32; +pub const NS_E_DRM_LICENSE_INITIALIZATION_ERROR: ::windows_sys::core::HRESULT = -1072879542i32; +pub const NS_E_DRM_LICENSE_INVALID_XML: ::windows_sys::core::HRESULT = -1072879835i32; +pub const NS_E_DRM_LICENSE_NOSAP: ::windows_sys::core::HRESULT = -1072879606i32; +pub const NS_E_DRM_LICENSE_NOSVP: ::windows_sys::core::HRESULT = -1072879605i32; +pub const NS_E_DRM_LICENSE_NOTACQUIRED: ::windows_sys::core::HRESULT = -1072879783i32; +pub const NS_E_DRM_LICENSE_NOTENABLED: ::windows_sys::core::HRESULT = -1072879655i32; +pub const NS_E_DRM_LICENSE_NOTRUSTEDCODEC: ::windows_sys::core::HRESULT = -1072879603i32; +pub const NS_E_DRM_LICENSE_NOWDM: ::windows_sys::core::HRESULT = -1072879604i32; +pub const NS_E_DRM_LICENSE_OPEN_ERROR: ::windows_sys::core::HRESULT = -1072879817i32; +pub const NS_E_DRM_LICENSE_SECLOW: ::windows_sys::core::HRESULT = -1072879648i32; +pub const NS_E_DRM_LICENSE_SERVER_INFO_MISSING: ::windows_sys::core::HRESULT = -1072879552i32; +pub const NS_E_DRM_LICENSE_STORE_ERROR: ::windows_sys::core::HRESULT = -1072879854i32; +pub const NS_E_DRM_LICENSE_STORE_SAVE_ERROR: ::windows_sys::core::HRESULT = -1072879852i32; +pub const NS_E_DRM_LICENSE_UNAVAILABLE: ::windows_sys::core::HRESULT = -1072879454i32; +pub const NS_E_DRM_LICENSE_UNUSABLE: ::windows_sys::core::HRESULT = -1072879800i32; +pub const NS_E_DRM_LIC_NEEDS_DEVICE_CLOCK_SET: ::windows_sys::core::HRESULT = -1072879751i32; +pub const NS_E_DRM_MALFORMED_CONTENT_HEADER: ::windows_sys::core::HRESULT = -1072879716i32; +pub const NS_E_DRM_MIGRATION_IMPORTER_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1072879734i32; +pub const NS_E_DRM_MIGRATION_INVALID_LEGACYV2_DATA: ::windows_sys::core::HRESULT = -1072879727i32; +pub const NS_E_DRM_MIGRATION_INVALID_LEGACYV2_SST_PASSWORD: ::windows_sys::core::HRESULT = -1072879725i32; +pub const NS_E_DRM_MIGRATION_LICENSE_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -1072879726i32; +pub const NS_E_DRM_MIGRATION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1072879724i32; +pub const NS_E_DRM_MIGRATION_OBJECT_IN_USE: ::windows_sys::core::HRESULT = -1072879717i32; +pub const NS_E_DRM_MIGRATION_OPERATION_CANCELLED: ::windows_sys::core::HRESULT = -1072879718i32; +pub const NS_E_DRM_MIGRATION_TARGET_NOT_ONLINE: ::windows_sys::core::HRESULT = -1072879737i32; +pub const NS_E_DRM_MIGRATION_TARGET_STATES_CORRUPTED: ::windows_sys::core::HRESULT = -1072879735i32; +pub const NS_E_DRM_MONITOR_ERROR: ::windows_sys::core::HRESULT = -1072879810i32; +pub const NS_E_DRM_MUST_APPROVE: ::windows_sys::core::HRESULT = -1072879450i32; +pub const NS_E_DRM_MUST_REGISTER: ::windows_sys::core::HRESULT = -1072879451i32; +pub const NS_E_DRM_MUST_REVALIDATE: ::windows_sys::core::HRESULT = -1072879449i32; +pub const NS_E_DRM_NEEDS_INDIVIDUALIZATION: ::windows_sys::core::HRESULT = -1072879832i32; +pub const NS_E_DRM_NEEDS_UPGRADE_TEMPFILE: ::windows_sys::core::HRESULT = -1072879555i32; +pub const NS_E_DRM_NEED_UPGRADE_MSSAP: ::windows_sys::core::HRESULT = -1072879794i32; +pub const NS_E_DRM_NEED_UPGRADE_PD: ::windows_sys::core::HRESULT = -1072879554i32; +pub const NS_E_DRM_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -1072879772i32; +pub const NS_E_DRM_NO_RIGHTS: ::windows_sys::core::HRESULT = -1072879840i32; +pub const NS_E_DRM_NO_UPLINK_LICENSE: ::windows_sys::core::HRESULT = -1072879544i32; +pub const NS_E_DRM_OPERATION_CANCELED: ::windows_sys::core::HRESULT = -1072879768i32; +pub const NS_E_DRM_PARAMETERS_MISMATCHED: ::windows_sys::core::HRESULT = -1072879825i32; +pub const NS_E_DRM_PASSWORD_TOO_LONG: ::windows_sys::core::HRESULT = -1072882797i32; +pub const NS_E_DRM_PD_TOO_MANY_DEVICES: ::windows_sys::core::HRESULT = -1072879550i32; +pub const NS_E_DRM_POLICY_DISABLE_ONLINE: ::windows_sys::core::HRESULT = -1072879774i32; +pub const NS_E_DRM_POLICY_METERING_DISABLED: ::windows_sys::core::HRESULT = -1072879754i32; +pub const NS_E_DRM_PROFILE_NOT_SET: ::windows_sys::core::HRESULT = -1072882801i32; +pub const NS_E_DRM_PROTOCOL_FORCEFUL_TERMINATION_ON_CHALLENGE: ::windows_sys::core::HRESULT = -1072879746i32; +pub const NS_E_DRM_PROTOCOL_FORCEFUL_TERMINATION_ON_PETITION: ::windows_sys::core::HRESULT = -1072879747i32; +pub const NS_E_DRM_QUERY_ERROR: ::windows_sys::core::HRESULT = -1072879814i32; +pub const NS_E_DRM_REOPEN_CONTENT: ::windows_sys::core::HRESULT = -1072879793i32; +pub const NS_E_DRM_REPORT_ERROR: ::windows_sys::core::HRESULT = -1072879813i32; +pub const NS_E_DRM_RESTORE_FRAUD: ::windows_sys::core::HRESULT = -1072879789i32; +pub const NS_E_DRM_RESTORE_SERVICE_UNAVAILABLE: ::windows_sys::core::HRESULT = -1072879546i32; +pub const NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED: ::windows_sys::core::HRESULT = -1072879767i32; +pub const NS_E_DRM_RIV_TOO_SMALL: ::windows_sys::core::HRESULT = -1072879433i32; +pub const NS_E_DRM_SDK_VERSIONMISMATCH: ::windows_sys::core::HRESULT = -1072879752i32; +pub const NS_E_DRM_SDMI_NOMORECOPIES: ::windows_sys::core::HRESULT = -1072879786i32; +pub const NS_E_DRM_SDMI_TRIGGER: ::windows_sys::core::HRESULT = -1072879787i32; +pub const NS_E_DRM_SECURE_STORE_ERROR: ::windows_sys::core::HRESULT = -1072879853i32; +pub const NS_E_DRM_SECURE_STORE_NOT_FOUND: ::windows_sys::core::HRESULT = -1072879798i32; +pub const NS_E_DRM_SECURE_STORE_UNLOCK_ERROR: ::windows_sys::core::HRESULT = -1072879851i32; +pub const NS_E_DRM_SECURITY_COMPONENT_SIGNATURE_INVALID: ::windows_sys::core::HRESULT = -1072879776i32; +pub const NS_E_DRM_SIGNATURE_FAILURE: ::windows_sys::core::HRESULT = -1072879553i32; +pub const NS_E_DRM_SOURCEID_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1072879602i32; +pub const NS_E_DRM_STORE_NEEDINDI: ::windows_sys::core::HRESULT = -1072879653i32; +pub const NS_E_DRM_STORE_NOTALLOWED: ::windows_sys::core::HRESULT = -1072879652i32; +pub const NS_E_DRM_STORE_NOTALLSTORED: ::windows_sys::core::HRESULT = -1072879777i32; +pub const NS_E_DRM_STUBLIB_REQUIRED: ::windows_sys::core::HRESULT = -1072879739i32; +pub const NS_E_DRM_TRACK_EXCEEDED_PLAYLIST_RESTICTION: ::windows_sys::core::HRESULT = -1072879760i32; +pub const NS_E_DRM_TRACK_EXCEEDED_TRACKBURN_RESTRICTION: ::windows_sys::core::HRESULT = -1072879759i32; +pub const NS_E_DRM_TRANSFER_CHAINED_LICENSES_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072879753i32; +pub const NS_E_DRM_UNABLE_TO_ACQUIRE_LICENSE: ::windows_sys::core::HRESULT = -1072879842i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_AUTHENTICATION_OBJECT: ::windows_sys::core::HRESULT = -1072879773i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_BACKUP_OBJECT: ::windows_sys::core::HRESULT = -1072879819i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_CERTIFICATE_OBJECT: ::windows_sys::core::HRESULT = -1072879738i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT: ::windows_sys::core::HRESULT = -1072879782i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT: ::windows_sys::core::HRESULT = -1072879821i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_DEVICE_REGISTRATION_OBJECT: ::windows_sys::core::HRESULT = -1072879764i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_ENCRYPT_OBJECT: ::windows_sys::core::HRESULT = -1072879822i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_HEADER_OBJECT: ::windows_sys::core::HRESULT = -1072879785i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_INDI_OBJECT: ::windows_sys::core::HRESULT = -1072879823i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_INMEMORYSTORE_OBJECT: ::windows_sys::core::HRESULT = -1072879740i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT: ::windows_sys::core::HRESULT = -1072879784i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_LICENSE_OBJECT: ::windows_sys::core::HRESULT = -1072879824i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_METERING_OBJECT: ::windows_sys::core::HRESULT = -1072879763i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_MIGRATION_IMPORTER_OBJECT: ::windows_sys::core::HRESULT = -1072879723i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_PLAYLIST_BURN_OBJECT: ::windows_sys::core::HRESULT = -1072879765i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_PLAYLIST_OBJECT: ::windows_sys::core::HRESULT = -1072879766i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_PROPERTIES_OBJECT: ::windows_sys::core::HRESULT = -1072879820i32; +pub const NS_E_DRM_UNABLE_TO_CREATE_STATE_DATA_OBJECT: ::windows_sys::core::HRESULT = -1072879781i32; +pub const NS_E_DRM_UNABLE_TO_GET_DEVICE_CERT: ::windows_sys::core::HRESULT = -1072879758i32; +pub const NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK: ::windows_sys::core::HRESULT = -1072879757i32; +pub const NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK_FROM_SERVER: ::windows_sys::core::HRESULT = -1072879755i32; +pub const NS_E_DRM_UNABLE_TO_INITIALIZE: ::windows_sys::core::HRESULT = -1072879843i32; +pub const NS_E_DRM_UNABLE_TO_LOAD_HARDWARE_ID: ::windows_sys::core::HRESULT = -1072879743i32; +pub const NS_E_DRM_UNABLE_TO_OPEN_DATA_STORE: ::windows_sys::core::HRESULT = -1072879742i32; +pub const NS_E_DRM_UNABLE_TO_OPEN_LICENSE: ::windows_sys::core::HRESULT = -1072879849i32; +pub const NS_E_DRM_UNABLE_TO_OPEN_PORT: ::windows_sys::core::HRESULT = -1072879441i32; +pub const NS_E_DRM_UNABLE_TO_SET_PARAMETER: ::windows_sys::core::HRESULT = -1072879809i32; +pub const NS_E_DRM_UNABLE_TO_SET_SECURE_CLOCK: ::windows_sys::core::HRESULT = -1072879756i32; +pub const NS_E_DRM_UNABLE_TO_VERIFY_PROXIMITY: ::windows_sys::core::HRESULT = -1072879452i32; +pub const NS_E_DRM_UNSUPPORTED_ACTION: ::windows_sys::core::HRESULT = -1072879443i32; +pub const NS_E_DRM_UNSUPPORTED_ALGORITHM: ::windows_sys::core::HRESULT = -1072879539i32; +pub const NS_E_DRM_UNSUPPORTED_PROPERTY: ::windows_sys::core::HRESULT = -1072879779i32; +pub const NS_E_DRM_UNSUPPORTED_PROTOCOL_VERSION: ::windows_sys::core::HRESULT = -1072879444i32; +pub const NS_E_DUPLICATE_ADDRESS: ::windows_sys::core::HRESULT = -1072889801i32; +pub const NS_E_DUPLICATE_DRMPROFILE: ::windows_sys::core::HRESULT = -1072882800i32; +pub const NS_E_DUPLICATE_NAME: ::windows_sys::core::HRESULT = -1072889802i32; +pub const NS_E_DUPLICATE_PACKET: ::windows_sys::core::HRESULT = -1072886829i32; +pub const NS_E_DVD_AUTHORING_PROBLEM: ::windows_sys::core::HRESULT = -1072885404i32; +pub const NS_E_DVD_CANNOT_COPY_PROTECTED: ::windows_sys::core::HRESULT = -1072885390i32; +pub const NS_E_DVD_CANNOT_JUMP: ::windows_sys::core::HRESULT = -1072885393i32; +pub const NS_E_DVD_COMPATIBLE_VIDEO_CARD: ::windows_sys::core::HRESULT = -1072885402i32; +pub const NS_E_DVD_COPY_PROTECT: ::windows_sys::core::HRESULT = -1072885405i32; +pub const NS_E_DVD_DEVICE_CONTENTION: ::windows_sys::core::HRESULT = -1072885392i32; +pub const NS_E_DVD_DISC_COPY_PROTECT_OUTPUT_FAILED: ::windows_sys::core::HRESULT = -1072885407i32; +pub const NS_E_DVD_DISC_COPY_PROTECT_OUTPUT_NS: ::windows_sys::core::HRESULT = -1072885408i32; +pub const NS_E_DVD_DISC_DECODER_REGION: ::windows_sys::core::HRESULT = -1072885399i32; +pub const NS_E_DVD_GRAPH_BUILDING: ::windows_sys::core::HRESULT = -1072885396i32; +pub const NS_E_DVD_INVALID_DISC_REGION: ::windows_sys::core::HRESULT = -1072885403i32; +pub const NS_E_DVD_INVALID_TITLE_CHAPTER: ::windows_sys::core::HRESULT = -1072885388i32; +pub const NS_E_DVD_MACROVISION: ::windows_sys::core::HRESULT = -1072885401i32; +pub const NS_E_DVD_NO_AUDIO_STREAM: ::windows_sys::core::HRESULT = -1072885397i32; +pub const NS_E_DVD_NO_DECODER: ::windows_sys::core::HRESULT = -1072885395i32; +pub const NS_E_DVD_NO_SUBPICTURE_STREAM: ::windows_sys::core::HRESULT = -1072885406i32; +pub const NS_E_DVD_NO_VIDEO_MEMORY: ::windows_sys::core::HRESULT = -1072885391i32; +pub const NS_E_DVD_NO_VIDEO_STREAM: ::windows_sys::core::HRESULT = -1072885398i32; +pub const NS_E_DVD_PARENTAL: ::windows_sys::core::HRESULT = -1072885394i32; +pub const NS_E_DVD_REQUIRED_PROPERTY_NOT_SET: ::windows_sys::core::HRESULT = -1072885389i32; +pub const NS_E_DVD_SYSTEM_DECODER_REGION: ::windows_sys::core::HRESULT = -1072885400i32; +pub const NS_E_EDL_REQUIRED_FOR_DEVICE_MULTIPASS: ::windows_sys::core::HRESULT = -1072882713i32; +pub const NS_E_EMPTY_PLAYLIST: ::windows_sys::core::HRESULT = -1072884555i32; +pub const NS_E_EMPTY_PROGRAM_NAME: ::windows_sys::core::HRESULT = -1072889642i32; +pub const NS_E_ENACTPLAN_GIVEUP: ::windows_sys::core::HRESULT = -1072889752i32; +pub const NS_E_END_OF_PLAYLIST: ::windows_sys::core::HRESULT = -1072876856i32; +pub const NS_E_END_OF_TAPE: ::windows_sys::core::HRESULT = -1072882770i32; +pub const NS_E_ERROR_FROM_PROXY: ::windows_sys::core::HRESULT = -1072877852i32; +pub const NS_E_EXCEED_MAX_DRM_PROFILE_LIMIT: ::windows_sys::core::HRESULT = -1072882720i32; +pub const NS_E_EXPECT_MONO_WAV_INPUT: ::windows_sys::core::HRESULT = -1072882783i32; +pub const NS_E_FAILED_DOWNLOAD_ABORT_BURN: ::windows_sys::core::HRESULT = -1072885540i32; +pub const NS_E_FAIL_LAUNCH_ROXIO_PLUGIN: ::windows_sys::core::HRESULT = -1072885376i32; +pub const NS_E_FEATURE_DISABLED_BY_GROUP_POLICY: ::windows_sys::core::HRESULT = -1072886820i32; +pub const NS_E_FEATURE_DISABLED_IN_SKU: ::windows_sys::core::HRESULT = -1072886819i32; +pub const NS_E_FEATURE_REQUIRES_ENTERPRISE_SERVER: ::windows_sys::core::HRESULT = -1072884349i32; +pub const NS_E_FILE_ALLOCATION_FAILED: ::windows_sys::core::HRESULT = -1072889826i32; +pub const NS_E_FILE_BANDWIDTH_LIMIT: ::windows_sys::core::HRESULT = -1072889808i32; +pub const NS_E_FILE_EXISTS: ::windows_sys::core::HRESULT = -1072889829i32; +pub const NS_E_FILE_FAILED_CHECKS: ::windows_sys::core::HRESULT = -1072885811i32; +pub const NS_E_FILE_INIT_FAILED: ::windows_sys::core::HRESULT = -1072889825i32; +pub const NS_E_FILE_NOT_FOUND: ::windows_sys::core::HRESULT = -1072889830i32; +pub const NS_E_FILE_OPEN_FAILED: ::windows_sys::core::HRESULT = -1072889827i32; +pub const NS_E_FILE_PLAY_FAILED: ::windows_sys::core::HRESULT = -1072889824i32; +pub const NS_E_FILE_READ: ::windows_sys::core::HRESULT = -1072889831i32; +pub const NS_E_FILE_WRITE: ::windows_sys::core::HRESULT = -1072889832i32; +pub const NS_E_FIREWALL: ::windows_sys::core::HRESULT = -1072877831i32; +pub const NS_E_FLASH_PLAYBACK_NOT_ALLOWED: ::windows_sys::core::HRESULT = -1072885553i32; +pub const NS_E_GLITCH_MODE: ::windows_sys::core::HRESULT = -1072889451i32; +pub const NS_E_GRAPH_NOAUDIOLANGUAGE: ::windows_sys::core::HRESULT = -1072885563i32; +pub const NS_E_GRAPH_NOAUDIOLANGUAGESELECTED: ::windows_sys::core::HRESULT = -1072885562i32; +pub const NS_E_HDS_KEY_MISMATCH: ::windows_sys::core::HRESULT = -1072879719i32; +pub const NS_E_HEADER_MISMATCH: ::windows_sys::core::HRESULT = -1072884449i32; +pub const NS_E_HTTP_DISABLED: ::windows_sys::core::HRESULT = -1072889645i32; +pub const NS_E_HTTP_TEXT_DATACONTAINER_INVALID_SERVER_RESPONSE: ::windows_sys::core::HRESULT = -1072884340i32; +pub const NS_E_HTTP_TEXT_DATACONTAINER_SIZE_LIMIT_EXCEEDED: ::windows_sys::core::HRESULT = -1072884343i32; +pub const NS_E_ICMQUERYFORMAT: ::windows_sys::core::HRESULT = -1072882836i32; +pub const NS_E_IE_DISALLOWS_ACTIVEX_CONTROLS: ::windows_sys::core::HRESULT = -1072885554i32; +pub const NS_E_IMAGE_DOWNLOAD_FAILED: ::windows_sys::core::HRESULT = -1072885106i32; +pub const NS_E_IMAPI_LOSSOFSTREAMING: ::windows_sys::core::HRESULT = -1072885378i32; +pub const NS_E_IMAPI_MEDIUM_INVALIDTYPE: ::windows_sys::core::HRESULT = -1072885374i32; +pub const NS_E_INCOMPATIBLE_FORMAT: ::windows_sys::core::HRESULT = -1072889791i32; +pub const NS_E_INCOMPATIBLE_PUSH_SERVER: ::windows_sys::core::HRESULT = -1072877812i32; +pub const NS_E_INCOMPATIBLE_SERVER: ::windows_sys::core::HRESULT = -1072877848i32; +pub const NS_E_INCOMPATIBLE_VERSION: ::windows_sys::core::HRESULT = -1072886841i32; +pub const NS_E_INCOMPLETE_PLAYLIST: ::windows_sys::core::HRESULT = -1072885182i32; +pub const NS_E_INCORRECTCLIPSETTINGS: ::windows_sys::core::HRESULT = -1072882820i32; +pub const NS_E_INDUCED: ::windows_sys::core::HRESULT = -1072889822i32; +pub const NS_E_INPUTSOURCE_PROBLEM: ::windows_sys::core::HRESULT = -1072882806i32; +pub const NS_E_INPUT_DOESNOT_SUPPORT_SMPTE: ::windows_sys::core::HRESULT = -1072882776i32; +pub const NS_E_INPUT_WAVFORMAT_MISMATCH: ::windows_sys::core::HRESULT = -1072882782i32; +pub const NS_E_INSUFFICIENT_BANDWIDTH: ::windows_sys::core::HRESULT = -1072889812i32; +pub const NS_E_INSUFFICIENT_DATA: ::windows_sys::core::HRESULT = -1072889654i32; +pub const NS_E_INTERFACE_NOT_REGISTERED_IN_GIT: ::windows_sys::core::HRESULT = -1072885142i32; +pub const NS_E_INTERLACEMODE_MISMATCH: ::windows_sys::core::HRESULT = -1072882773i32; +pub const NS_E_INTERLACE_REQUIRE_SAMESIZE: ::windows_sys::core::HRESULT = -1072882795i32; +pub const NS_E_INTERNAL: ::windows_sys::core::HRESULT = -1072889820i32; +pub const NS_E_INTERNAL_SERVER_ERROR: ::windows_sys::core::HRESULT = -1072877854i32; +pub const NS_E_INVALIDCALL_WHILE_ARCHIVAL_RUNNING: ::windows_sys::core::HRESULT = -1072882828i32; +pub const NS_E_INVALIDCALL_WHILE_ENCODER_RUNNING: ::windows_sys::core::HRESULT = -1072882842i32; +pub const NS_E_INVALIDCALL_WHILE_ENCODER_STOPPED: ::windows_sys::core::HRESULT = -1072882817i32; +pub const NS_E_INVALIDINPUTFPS: ::windows_sys::core::HRESULT = -1072882815i32; +pub const NS_E_INVALIDPACKETSIZE: ::windows_sys::core::HRESULT = -1072882827i32; +pub const NS_E_INVALIDPROFILE: ::windows_sys::core::HRESULT = -1072886842i32; +pub const NS_E_INVALID_ARCHIVE: ::windows_sys::core::HRESULT = -1072889795i32; +pub const NS_E_INVALID_AUDIO_BUFFERMAX: ::windows_sys::core::HRESULT = -1072882756i32; +pub const NS_E_INVALID_AUDIO_PEAKRATE: ::windows_sys::core::HRESULT = -1072882758i32; +pub const NS_E_INVALID_AUDIO_PEAKRATE_2: ::windows_sys::core::HRESULT = -1072882757i32; +pub const NS_E_INVALID_BLACKHOLE_ADDRESS: ::windows_sys::core::HRESULT = -1072889792i32; +pub const NS_E_INVALID_CHANNEL: ::windows_sys::core::HRESULT = -1072889797i32; +pub const NS_E_INVALID_CLIENT: ::windows_sys::core::HRESULT = -1072889793i32; +pub const NS_E_INVALID_DATA: ::windows_sys::core::HRESULT = -1072889809i32; +pub const NS_E_INVALID_DEVICE: ::windows_sys::core::HRESULT = -1072882799i32; +pub const NS_E_INVALID_DRMV2CLT_STUBLIB: ::windows_sys::core::HRESULT = -1072879728i32; +pub const NS_E_INVALID_EDL: ::windows_sys::core::HRESULT = -1072886824i32; +pub const NS_E_INVALID_FILE_BITRATE: ::windows_sys::core::HRESULT = -1072882735i32; +pub const NS_E_INVALID_FOLDDOWN_COEFFICIENTS: ::windows_sys::core::HRESULT = -1072882732i32; +pub const NS_E_INVALID_INDEX: ::windows_sys::core::HRESULT = -1072889839i32; +pub const NS_E_INVALID_INDEX2: ::windows_sys::core::HRESULT = -1072889639i32; +pub const NS_E_INVALID_INPUT_AUDIENCE_INDEX: ::windows_sys::core::HRESULT = -1072882786i32; +pub const NS_E_INVALID_INPUT_FORMAT: ::windows_sys::core::HRESULT = -1072886856i32; +pub const NS_E_INVALID_INPUT_LANGUAGE: ::windows_sys::core::HRESULT = -1072882785i32; +pub const NS_E_INVALID_INPUT_STREAM: ::windows_sys::core::HRESULT = -1072882784i32; +pub const NS_E_INVALID_INTERLACEMODE: ::windows_sys::core::HRESULT = -1072882725i32; +pub const NS_E_INVALID_INTERLACE_COMPAT: ::windows_sys::core::HRESULT = -1072882724i32; +pub const NS_E_INVALID_KEY: ::windows_sys::core::HRESULT = -1072889790i32; +pub const NS_E_INVALID_LOG_URL: ::windows_sys::core::HRESULT = -1072884347i32; +pub const NS_E_INVALID_MTU_RANGE: ::windows_sys::core::HRESULT = -1072884346i32; +pub const NS_E_INVALID_NAME: ::windows_sys::core::HRESULT = -1072889828i32; +pub const NS_E_INVALID_NONSQUAREPIXEL_COMPAT: ::windows_sys::core::HRESULT = -1072882723i32; +pub const NS_E_INVALID_NUM_PASSES: ::windows_sys::core::HRESULT = -1072886827i32; +pub const NS_E_INVALID_OPERATING_SYSTEM_VERSION: ::windows_sys::core::HRESULT = -1072884647i32; +pub const NS_E_INVALID_OUTPUT_FORMAT: ::windows_sys::core::HRESULT = -1072886853i32; +pub const NS_E_INVALID_PIXEL_ASPECT_RATIO: ::windows_sys::core::HRESULT = -1072882718i32; +pub const NS_E_INVALID_PLAY_STATISTICS: ::windows_sys::core::HRESULT = -1072884345i32; +pub const NS_E_INVALID_PLUGIN_LOAD_TYPE_CONFIGURATION: ::windows_sys::core::HRESULT = -1072884652i32; +pub const NS_E_INVALID_PORT: ::windows_sys::core::HRESULT = -1072889789i32; +pub const NS_E_INVALID_PROFILE_CONTENTTYPE: ::windows_sys::core::HRESULT = -1072882716i32; +pub const NS_E_INVALID_PUBLISHING_POINT_NAME: ::windows_sys::core::HRESULT = -1072884651i32; +pub const NS_E_INVALID_PUSH_PUBLISHING_POINT: ::windows_sys::core::HRESULT = -1072884453i32; +pub const NS_E_INVALID_PUSH_PUBLISHING_POINT_START_REQUEST: ::windows_sys::core::HRESULT = -1072884645i32; +pub const NS_E_INVALID_PUSH_TEMPLATE: ::windows_sys::core::HRESULT = -1072884454i32; +pub const NS_E_INVALID_QUERY_OPERATOR: ::windows_sys::core::HRESULT = -1072876849i32; +pub const NS_E_INVALID_QUERY_PROPERTY: ::windows_sys::core::HRESULT = -1072876848i32; +pub const NS_E_INVALID_REDIRECT: ::windows_sys::core::HRESULT = -1072877846i32; +pub const NS_E_INVALID_REQUEST: ::windows_sys::core::HRESULT = -1072889813i32; +pub const NS_E_INVALID_SAMPLING_RATE: ::windows_sys::core::HRESULT = -1072886832i32; +pub const NS_E_INVALID_SCRIPT_BITRATE: ::windows_sys::core::HRESULT = -1072882737i32; +pub const NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL: ::windows_sys::core::HRESULT = -1072882722i32; +pub const NS_E_INVALID_STREAM: ::windows_sys::core::HRESULT = -1072889796i32; +pub const NS_E_INVALID_TIMECODE: ::windows_sys::core::HRESULT = -1072882730i32; +pub const NS_E_INVALID_TTL: ::windows_sys::core::HRESULT = -1072889788i32; +pub const NS_E_INVALID_VBR_COMPAT: ::windows_sys::core::HRESULT = -1072882766i32; +pub const NS_E_INVALID_VBR_WITH_UNCOMP: ::windows_sys::core::HRESULT = -1072882764i32; +pub const NS_E_INVALID_VIDEO_BITRATE: ::windows_sys::core::HRESULT = -1072882753i32; +pub const NS_E_INVALID_VIDEO_BUFFER: ::windows_sys::core::HRESULT = -1072882743i32; +pub const NS_E_INVALID_VIDEO_BUFFERMAX: ::windows_sys::core::HRESULT = -1072882742i32; +pub const NS_E_INVALID_VIDEO_BUFFERMAX_2: ::windows_sys::core::HRESULT = -1072882741i32; +pub const NS_E_INVALID_VIDEO_CQUALITY: ::windows_sys::core::HRESULT = -1072882744i32; +pub const NS_E_INVALID_VIDEO_FPS: ::windows_sys::core::HRESULT = -1072882747i32; +pub const NS_E_INVALID_VIDEO_HEIGHT: ::windows_sys::core::HRESULT = -1072882748i32; +pub const NS_E_INVALID_VIDEO_HEIGHT_ALIGN: ::windows_sys::core::HRESULT = -1072882739i32; +pub const NS_E_INVALID_VIDEO_IQUALITY: ::windows_sys::core::HRESULT = -1072882745i32; +pub const NS_E_INVALID_VIDEO_KEYFRAME: ::windows_sys::core::HRESULT = -1072882746i32; +pub const NS_E_INVALID_VIDEO_PEAKRATE: ::windows_sys::core::HRESULT = -1072882751i32; +pub const NS_E_INVALID_VIDEO_PEAKRATE_2: ::windows_sys::core::HRESULT = -1072882750i32; +pub const NS_E_INVALID_VIDEO_WIDTH: ::windows_sys::core::HRESULT = -1072882749i32; +pub const NS_E_INVALID_VIDEO_WIDTH_ALIGN: ::windows_sys::core::HRESULT = -1072882740i32; +pub const NS_E_INVALID_VIDEO_WIDTH_FOR_INTERLACED_ENCODING: ::windows_sys::core::HRESULT = -1072882712i32; +pub const NS_E_LANGUAGE_MISMATCH: ::windows_sys::core::HRESULT = -1072882788i32; +pub const NS_E_LATE_OPERATION: ::windows_sys::core::HRESULT = -1072889810i32; +pub const NS_E_LATE_PACKET: ::windows_sys::core::HRESULT = -1072886830i32; +pub const NS_E_LICENSE_EXPIRED: ::windows_sys::core::HRESULT = -1072889644i32; +pub const NS_E_LICENSE_HEADER_MISSING_URL: ::windows_sys::core::HRESULT = -1072879750i32; +pub const NS_E_LICENSE_INCORRECT_RIGHTS: ::windows_sys::core::HRESULT = -1072886847i32; +pub const NS_E_LICENSE_OUTOFDATE: ::windows_sys::core::HRESULT = -1072886848i32; +pub const NS_E_LICENSE_REQUIRED: ::windows_sys::core::HRESULT = -1072886850i32; +pub const NS_E_LOGFILEPERIOD: ::windows_sys::core::HRESULT = -1072889784i32; +pub const NS_E_LOG_FILE_SIZE: ::windows_sys::core::HRESULT = -1072889782i32; +pub const NS_E_LOG_NEED_TO_BE_SKIPPED: ::windows_sys::core::HRESULT = -1072884344i32; +pub const NS_E_MARKIN_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072882711i32; +pub const NS_E_MAX_BITRATE: ::windows_sys::core::HRESULT = -1072889785i32; +pub const NS_E_MAX_CLIENTS: ::windows_sys::core::HRESULT = -1072889783i32; +pub const NS_E_MAX_FILERATE: ::windows_sys::core::HRESULT = -1072889781i32; +pub const NS_E_MAX_FUNNELS_ALERT: ::windows_sys::core::HRESULT = -1072889760i32; +pub const NS_E_MAX_PACKET_SIZE_TOO_SMALL: ::windows_sys::core::HRESULT = -1072886831i32; +pub const NS_E_MEDIACD_READ_ERROR: ::windows_sys::core::HRESULT = -1072885555i32; +pub const NS_E_MEDIA_LIBRARY_FAILED: ::windows_sys::core::HRESULT = -1072885810i32; +pub const NS_E_MEDIA_PARSER_INVALID_FORMAT: ::windows_sys::core::HRESULT = -1072884351i32; +pub const NS_E_MEMSTORAGE_BAD_DATA: ::windows_sys::core::HRESULT = -1072885381i32; +pub const NS_E_METADATA_CACHE_DATA_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1072876837i32; +pub const NS_E_METADATA_CANNOT_RETRIEVE_FROM_OFFLINE_CACHE: ::windows_sys::core::HRESULT = -1072876834i32; +pub const NS_E_METADATA_CANNOT_SET_LOCALE: ::windows_sys::core::HRESULT = -1072876841i32; +pub const NS_E_METADATA_FORMAT_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1072876843i32; +pub const NS_E_METADATA_IDENTIFIER_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1072876835i32; +pub const NS_E_METADATA_INVALID_DOCUMENT_TYPE: ::windows_sys::core::HRESULT = -1072876836i32; +pub const NS_E_METADATA_LANGUAGE_NOT_SUPORTED: ::windows_sys::core::HRESULT = -1072876840i32; +pub const NS_E_METADATA_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1072876838i32; +pub const NS_E_METADATA_NO_EDITING_CAPABILITY: ::windows_sys::core::HRESULT = -1072876842i32; +pub const NS_E_METADATA_NO_RFC1766_NAME_FOR_LOCALE: ::windows_sys::core::HRESULT = -1072876839i32; +pub const NS_E_MISMATCHED_MEDIACONTENT: ::windows_sys::core::HRESULT = -1072882849i32; +pub const NS_E_MISSING_AUDIENCE: ::windows_sys::core::HRESULT = -1072882792i32; +pub const NS_E_MISSING_CHANNEL: ::windows_sys::core::HRESULT = -1072889641i32; +pub const NS_E_MISSING_SOURCE_INDEX: ::windows_sys::core::HRESULT = -1072882790i32; +pub const NS_E_MIXER_INVALID_CONTROL: ::windows_sys::core::HRESULT = -1072885850i32; +pub const NS_E_MIXER_INVALID_LINE: ::windows_sys::core::HRESULT = -1072885851i32; +pub const NS_E_MIXER_INVALID_VALUE: ::windows_sys::core::HRESULT = -1072885849i32; +pub const NS_E_MIXER_NODRIVER: ::windows_sys::core::HRESULT = -1072885841i32; +pub const NS_E_MIXER_UNKNOWN_MMRESULT: ::windows_sys::core::HRESULT = -1072885848i32; +pub const NS_E_MLS_SMARTPLAYLIST_FILTER_NOT_REGISTERED: ::windows_sys::core::HRESULT = -1072885643i32; +pub const NS_E_MMSAUTOSERVER_CANTFINDWALKER: ::windows_sys::core::HRESULT = -1072889786i32; +pub const NS_E_MMS_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1072877830i32; +pub const NS_E_MONITOR_GIVEUP: ::windows_sys::core::HRESULT = -1072889656i32; +pub const NS_E_MP3_FORMAT_NOT_FOUND: ::windows_sys::core::HRESULT = -1072885846i32; +pub const NS_E_MPDB_GENERIC: ::windows_sys::core::HRESULT = -1072885812i32; +pub const NS_E_MSAUDIO_NOT_INSTALLED: ::windows_sys::core::HRESULT = -1072886855i32; +pub const NS_E_MSBD_NO_LONGER_SUPPORTED: ::windows_sys::core::HRESULT = -1072877844i32; +pub const NS_E_MULTICAST_DISABLED: ::windows_sys::core::HRESULT = -1072877847i32; +pub const NS_E_MULTICAST_PLUGIN_NOT_ENABLED: ::windows_sys::core::HRESULT = -1072884648i32; +pub const NS_E_MULTIPLE_AUDIO_CODECS: ::windows_sys::core::HRESULT = -1072882761i32; +pub const NS_E_MULTIPLE_AUDIO_FORMATS: ::windows_sys::core::HRESULT = -1072882760i32; +pub const NS_E_MULTIPLE_FILE_BITRATES: ::windows_sys::core::HRESULT = -1072882736i32; +pub const NS_E_MULTIPLE_SCRIPT_BITRATES: ::windows_sys::core::HRESULT = -1072882738i32; +pub const NS_E_MULTIPLE_VBR_AUDIENCES: ::windows_sys::core::HRESULT = -1072882763i32; +pub const NS_E_MULTIPLE_VIDEO_CODECS: ::windows_sys::core::HRESULT = -1072882755i32; +pub const NS_E_MULTIPLE_VIDEO_SIZES: ::windows_sys::core::HRESULT = -1072882754i32; +pub const NS_E_NAMESPACE_BAD_NAME: ::windows_sys::core::HRESULT = -1072884842i32; +pub const NS_E_NAMESPACE_BUFFER_TOO_SMALL: ::windows_sys::core::HRESULT = -1072884850i32; +pub const NS_E_NAMESPACE_CALLBACK_NOT_FOUND: ::windows_sys::core::HRESULT = -1072884847i32; +pub const NS_E_NAMESPACE_DUPLICATE_CALLBACK: ::windows_sys::core::HRESULT = -1072884848i32; +pub const NS_E_NAMESPACE_DUPLICATE_NAME: ::windows_sys::core::HRESULT = -1072884845i32; +pub const NS_E_NAMESPACE_EMPTY_NAME: ::windows_sys::core::HRESULT = -1072884844i32; +pub const NS_E_NAMESPACE_INDEX_TOO_LARGE: ::windows_sys::core::HRESULT = -1072884843i32; +pub const NS_E_NAMESPACE_NAME_TOO_LONG: ::windows_sys::core::HRESULT = -1072884846i32; +pub const NS_E_NAMESPACE_NODE_CONFLICT: ::windows_sys::core::HRESULT = -1072884852i32; +pub const NS_E_NAMESPACE_NODE_NOT_FOUND: ::windows_sys::core::HRESULT = -1072884851i32; +pub const NS_E_NAMESPACE_TOO_MANY_CALLBACKS: ::windows_sys::core::HRESULT = -1072884849i32; +pub const NS_E_NAMESPACE_WRONG_PERSIST: ::windows_sys::core::HRESULT = -1072884854i32; +pub const NS_E_NAMESPACE_WRONG_SECURITY: ::windows_sys::core::HRESULT = -1072884841i32; +pub const NS_E_NAMESPACE_WRONG_TYPE: ::windows_sys::core::HRESULT = -1072884853i32; +pub const NS_E_NEED_CORE_REFERENCE: ::windows_sys::core::HRESULT = -1072885556i32; +pub const NS_E_NEED_TO_ASK_USER: ::windows_sys::core::HRESULT = -1072885798i32; +pub const NS_E_NETWORK_BUSY: ::windows_sys::core::HRESULT = -1072889842i32; +pub const NS_E_NETWORK_RESOURCE_FAILURE: ::windows_sys::core::HRESULT = -1072889816i32; +pub const NS_E_NETWORK_SERVICE_FAILURE: ::windows_sys::core::HRESULT = -1072889817i32; +pub const NS_E_NETWORK_SINK_WRITE: ::windows_sys::core::HRESULT = -1072877832i32; +pub const NS_E_NET_READ: ::windows_sys::core::HRESULT = -1072889835i32; +pub const NS_E_NET_WRITE: ::windows_sys::core::HRESULT = -1072889836i32; +pub const NS_E_NOCONNECTION: ::windows_sys::core::HRESULT = -1072889851i32; +pub const NS_E_NOFUNNEL: ::windows_sys::core::HRESULT = -1072889844i32; +pub const NS_E_NOMATCHING_ELEMENT: ::windows_sys::core::HRESULT = -1072882850i32; +pub const NS_E_NOMATCHING_MEDIASOURCE: ::windows_sys::core::HRESULT = -1072882854i32; +pub const NS_E_NONSQUAREPIXELMODE_MISMATCH: ::windows_sys::core::HRESULT = -1072882772i32; +pub const NS_E_NOREGISTEREDWALKER: ::windows_sys::core::HRESULT = -1072889845i32; +pub const NS_E_NOSOURCEGROUPS: ::windows_sys::core::HRESULT = -1072882816i32; +pub const NS_E_NOSTATSAVAILABLE: ::windows_sys::core::HRESULT = -1072882819i32; +pub const NS_E_NOTARCHIVING: ::windows_sys::core::HRESULT = -1072882818i32; +pub const NS_E_NOTHING_TO_DO: ::windows_sys::core::HRESULT = -1072887823i32; +pub const NS_E_NOTITLES: ::windows_sys::core::HRESULT = -1072889794i32; +pub const NS_E_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -1072886852i32; +pub const NS_E_NOT_CONNECTED: ::windows_sys::core::HRESULT = -1072886837i32; +pub const NS_E_NOT_CONTENT_PARTNER_TRACK: ::windows_sys::core::HRESULT = -1072884902i32; +pub const NS_E_NOT_LICENSED: ::windows_sys::core::HRESULT = -1072889651i32; +pub const NS_E_NOT_REBUILDING: ::windows_sys::core::HRESULT = -1072889811i32; +pub const NS_E_NO_ACTIVE_SOURCEGROUP: ::windows_sys::core::HRESULT = -1072882830i32; +pub const NS_E_NO_AUDIENCES: ::windows_sys::core::HRESULT = -1072882768i32; +pub const NS_E_NO_AUDIODATA: ::windows_sys::core::HRESULT = -1072882807i32; +pub const NS_E_NO_AUDIO_COMPAT: ::windows_sys::core::HRESULT = -1072882767i32; +pub const NS_E_NO_AUDIO_TIMECOMPRESSION: ::windows_sys::core::HRESULT = -1072882729i32; +pub const NS_E_NO_CD: ::windows_sys::core::HRESULT = -1072885856i32; +pub const NS_E_NO_CD_BURNER: ::windows_sys::core::HRESULT = -1072885386i32; +pub const NS_E_NO_CHANNELS: ::windows_sys::core::HRESULT = -1072889640i32; +pub const NS_E_NO_DATAVIEW_SUPPORT: ::windows_sys::core::HRESULT = -1072882814i32; +pub const NS_E_NO_DEVICE: ::windows_sys::core::HRESULT = -1072889743i32; +pub const NS_E_NO_ERROR_STRING_FOUND: ::windows_sys::core::HRESULT = -1072885808i32; +pub const NS_E_NO_EXISTING_PACKETIZER: ::windows_sys::core::HRESULT = -1072877827i32; +pub const NS_E_NO_FORMATS: ::windows_sys::core::HRESULT = -1072889749i32; +pub const NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER: ::windows_sys::core::HRESULT = -1072882777i32; +pub const NS_E_NO_LOCALPLAY: ::windows_sys::core::HRESULT = -1072889843i32; +pub const NS_E_NO_MBR_WITH_TIMECODE: ::windows_sys::core::HRESULT = -1072882726i32; +pub const NS_E_NO_MEDIAFORMAT_IN_SOURCE: ::windows_sys::core::HRESULT = -1072882833i32; +pub const NS_E_NO_MEDIA_IN_AUDIENCE: ::windows_sys::core::HRESULT = -1072882769i32; +pub const NS_E_NO_MEDIA_PROTOCOL: ::windows_sys::core::HRESULT = -1072889445i32; +pub const NS_E_NO_MORE_SAMPLES: ::windows_sys::core::HRESULT = -1072886833i32; +pub const NS_E_NO_MULTICAST: ::windows_sys::core::HRESULT = -1072887822i32; +pub const NS_E_NO_MULTIPASS_FOR_LIVEDEVICE: ::windows_sys::core::HRESULT = -1072882793i32; +pub const NS_E_NO_NEW_CONNECTIONS: ::windows_sys::core::HRESULT = -1072884451i32; +pub const NS_E_NO_PAL_INVERSE_TELECINE: ::windows_sys::core::HRESULT = -1072882780i32; +pub const NS_E_NO_PDA: ::windows_sys::core::HRESULT = -1072885383i32; +pub const NS_E_NO_PROFILE_IN_SOURCEGROUP: ::windows_sys::core::HRESULT = -1072882841i32; +pub const NS_E_NO_PROFILE_NAME: ::windows_sys::core::HRESULT = -1072882765i32; +pub const NS_E_NO_REALTIME_PREPROCESS: ::windows_sys::core::HRESULT = -1072882804i32; +pub const NS_E_NO_REALTIME_TIMECOMPRESSION: ::windows_sys::core::HRESULT = -1072882810i32; +pub const NS_E_NO_REFERENCES: ::windows_sys::core::HRESULT = -1072889748i32; +pub const NS_E_NO_REPEAT_PREPROCESS: ::windows_sys::core::HRESULT = -1072882803i32; +pub const NS_E_NO_SCRIPT_ENGINE: ::windows_sys::core::HRESULT = -1072884356i32; +pub const NS_E_NO_SCRIPT_STREAM: ::windows_sys::core::HRESULT = -1072882829i32; +pub const NS_E_NO_SERVER_CONTACT: ::windows_sys::core::HRESULT = -1072889650i32; +pub const NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS: ::windows_sys::core::HRESULT = -1072882775i32; +pub const NS_E_NO_SPECIFIED_DEVICE: ::windows_sys::core::HRESULT = -1072889742i32; +pub const NS_E_NO_STREAM: ::windows_sys::core::HRESULT = -1072889805i32; +pub const NS_E_NO_TWOPASS_TIMECOMPRESSION: ::windows_sys::core::HRESULT = -1072882728i32; +pub const NS_E_NO_VALID_OUTPUT_STREAM: ::windows_sys::core::HRESULT = -1072882832i32; +pub const NS_E_NO_VALID_SOURCE_PLUGIN: ::windows_sys::core::HRESULT = -1072882831i32; +pub const NS_E_NUM_LANGUAGE_MISMATCH: ::windows_sys::core::HRESULT = -1072882789i32; +pub const NS_E_OFFLINE_MODE: ::windows_sys::core::HRESULT = -1072886838i32; +pub const NS_E_OPEN_CONTAINING_FOLDER_FAILED: ::windows_sys::core::HRESULT = -1072884893i32; +pub const NS_E_OPEN_FILE_LIMIT: ::windows_sys::core::HRESULT = -1072889807i32; +pub const NS_E_OUTPUT_PROTECTION_LEVEL_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072879356i32; +pub const NS_E_OUTPUT_PROTECTION_SCHEME_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072879350i32; +pub const NS_E_PACKETSINK_UNKNOWN_FEC_STREAM: ::windows_sys::core::HRESULT = -1072877814i32; +pub const NS_E_PAGING_ERROR: ::windows_sys::core::HRESULT = -1072889758i32; +pub const NS_E_PARTIALLY_REBUILT_DISK: ::windows_sys::core::HRESULT = -1072889753i32; +pub const NS_E_PDA_CANNOT_CREATE_ADDITIONAL_SYNC_RELATIONSHIP: ::windows_sys::core::HRESULT = -1072885371i32; +pub const NS_E_PDA_CANNOT_SYNC_FROM_INTERNET: ::windows_sys::core::HRESULT = -1072885196i32; +pub const NS_E_PDA_CANNOT_SYNC_FROM_LOCATION: ::windows_sys::core::HRESULT = -1072885357i32; +pub const NS_E_PDA_CANNOT_SYNC_INVALID_PLAYLIST: ::windows_sys::core::HRESULT = -1072885195i32; +pub const NS_E_PDA_CANNOT_TRANSCODE: ::windows_sys::core::HRESULT = -1072885367i32; +pub const NS_E_PDA_CANNOT_TRANSCODE_TO_AUDIO: ::windows_sys::core::HRESULT = -1072885187i32; +pub const NS_E_PDA_CANNOT_TRANSCODE_TO_IMAGE: ::windows_sys::core::HRESULT = -1072885185i32; +pub const NS_E_PDA_CANNOT_TRANSCODE_TO_VIDEO: ::windows_sys::core::HRESULT = -1072885186i32; +pub const NS_E_PDA_CEWMDM_DRM_ERROR: ::windows_sys::core::HRESULT = -1072885183i32; +pub const NS_E_PDA_DELETE_FAILED: ::windows_sys::core::HRESULT = -1072885192i32; +pub const NS_E_PDA_DEVICESUPPORTDISABLED: ::windows_sys::core::HRESULT = -1072885360i32; +pub const NS_E_PDA_DEVICE_FULL: ::windows_sys::core::HRESULT = -1072885377i32; +pub const NS_E_PDA_DEVICE_FULL_IN_SESSION: ::windows_sys::core::HRESULT = -1072885375i32; +pub const NS_E_PDA_DEVICE_NOT_RESPONDING: ::windows_sys::core::HRESULT = -1072885190i32; +pub const NS_E_PDA_ENCODER_NOT_RESPONDING: ::windows_sys::core::HRESULT = -1072885358i32; +pub const NS_E_PDA_FAILED_TO_BURN: ::windows_sys::core::HRESULT = -1072885542i32; +pub const NS_E_PDA_FAILED_TO_ENCRYPT_TRANSCODED_FILE: ::windows_sys::core::HRESULT = -1072885188i32; +pub const NS_E_PDA_FAILED_TO_RETRIEVE_FILE: ::windows_sys::core::HRESULT = -1072885191i32; +pub const NS_E_PDA_FAILED_TO_SYNCHRONIZE_FILE: ::windows_sys::core::HRESULT = -1072885194i32; +pub const NS_E_PDA_FAILED_TO_TRANSCODE_PHOTO: ::windows_sys::core::HRESULT = -1072885189i32; +pub const NS_E_PDA_FAIL_READ_WAVE_FILE: ::windows_sys::core::HRESULT = -1072885379i32; +pub const NS_E_PDA_FAIL_SELECT_DEVICE: ::windows_sys::core::HRESULT = -1072885380i32; +pub const NS_E_PDA_INITIALIZINGDEVICES: ::windows_sys::core::HRESULT = -1072885363i32; +pub const NS_E_PDA_MANUALDEVICE: ::windows_sys::core::HRESULT = -1072885373i32; +pub const NS_E_PDA_NO_LONGER_AVAILABLE: ::windows_sys::core::HRESULT = -1072885359i32; +pub const NS_E_PDA_NO_TRANSCODE_OF_DRM: ::windows_sys::core::HRESULT = -1072885370i32; +pub const NS_E_PDA_OBSOLETE_SP: ::windows_sys::core::HRESULT = -1072885362i32; +pub const NS_E_PDA_PARTNERSHIPNOTEXIST: ::windows_sys::core::HRESULT = -1072885372i32; +pub const NS_E_PDA_RETRIEVED_FILE_FILENAME_TOO_LONG: ::windows_sys::core::HRESULT = -1072885184i32; +pub const NS_E_PDA_SYNC_FAILED: ::windows_sys::core::HRESULT = -1072885193i32; +pub const NS_E_PDA_SYNC_LOGIN_ERROR: ::windows_sys::core::HRESULT = -1072885180i32; +pub const NS_E_PDA_SYNC_RUNNING: ::windows_sys::core::HRESULT = -1072885181i32; +pub const NS_E_PDA_TITLE_COLLISION: ::windows_sys::core::HRESULT = -1072885361i32; +pub const NS_E_PDA_TOO_MANY_FILES_IN_DIRECTORY: ::windows_sys::core::HRESULT = -1072885366i32; +pub const NS_E_PDA_TOO_MANY_FILE_COLLISIONS: ::windows_sys::core::HRESULT = -1072885368i32; +pub const NS_E_PDA_TRANSCODECACHEFULL: ::windows_sys::core::HRESULT = -1072885369i32; +pub const NS_E_PDA_TRANSCODE_CODEC_NOT_FOUND: ::windows_sys::core::HRESULT = -1072885179i32; +pub const NS_E_PDA_TRANSCODE_NOT_PERMITTED: ::windows_sys::core::HRESULT = -1072885364i32; +pub const NS_E_PDA_UNSPECIFIED_ERROR: ::windows_sys::core::HRESULT = -1072885382i32; +pub const NS_E_PDA_UNSUPPORTED_FORMAT: ::windows_sys::core::HRESULT = -1072885384i32; +pub const NS_E_PLAYLIST_CONTAINS_ERRORS: ::windows_sys::core::HRESULT = -1072885569i32; +pub const NS_E_PLAYLIST_END_RECEDING: ::windows_sys::core::HRESULT = -1072884547i32; +pub const NS_E_PLAYLIST_ENTRY_ALREADY_PLAYING: ::windows_sys::core::HRESULT = -1072884556i32; +pub const NS_E_PLAYLIST_ENTRY_HAS_CHANGED: ::windows_sys::core::HRESULT = -1072877835i32; +pub const NS_E_PLAYLIST_ENTRY_NOT_IN_PLAYLIST: ::windows_sys::core::HRESULT = -1072884552i32; +pub const NS_E_PLAYLIST_ENTRY_SEEK: ::windows_sys::core::HRESULT = -1072884551i32; +pub const NS_E_PLAYLIST_PARSE_FAILURE: ::windows_sys::core::HRESULT = -1072884554i32; +pub const NS_E_PLAYLIST_PLUGIN_NOT_FOUND: ::windows_sys::core::HRESULT = -1072884353i32; +pub const NS_E_PLAYLIST_RECURSIVE_PLAYLISTS: ::windows_sys::core::HRESULT = -1072884550i32; +pub const NS_E_PLAYLIST_SHUTDOWN: ::windows_sys::core::HRESULT = -1072884548i32; +pub const NS_E_PLAYLIST_TOO_MANY_NESTED_PLAYLISTS: ::windows_sys::core::HRESULT = -1072884549i32; +pub const NS_E_PLAYLIST_UNSUPPORTED_ENTRY: ::windows_sys::core::HRESULT = -1072884553i32; +pub const NS_E_PLUGIN_CLSID_INVALID: ::windows_sys::core::HRESULT = -1072882826i32; +pub const NS_E_PLUGIN_ERROR_REPORTED: ::windows_sys::core::HRESULT = -1072884355i32; +pub const NS_E_PLUGIN_NOTSHUTDOWN: ::windows_sys::core::HRESULT = -1072885802i32; +pub const NS_E_PORT_IN_USE: ::windows_sys::core::HRESULT = -1072884342i32; +pub const NS_E_PORT_IN_USE_HTTP: ::windows_sys::core::HRESULT = -1072884341i32; +pub const NS_E_PROCESSINGSHOWSYNCWIZARD: ::windows_sys::core::HRESULT = -1072885365i32; +pub const NS_E_PROFILE_MISMATCH: ::windows_sys::core::HRESULT = -1072882821i32; +pub const NS_E_PROPERTY_NOT_FOUND: ::windows_sys::core::HRESULT = -1072876854i32; +pub const NS_E_PROPERTY_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1072876846i32; +pub const NS_E_PROPERTY_READ_ONLY: ::windows_sys::core::HRESULT = -1072876852i32; +pub const NS_E_PROTECTED_CONTENT: ::windows_sys::core::HRESULT = -1072886851i32; +pub const NS_E_PROTOCOL_MISMATCH: ::windows_sys::core::HRESULT = -1072889838i32; +pub const NS_E_PROXY_ACCESSDENIED: ::windows_sys::core::HRESULT = -1072877834i32; +pub const NS_E_PROXY_CONNECT_TIMEOUT: ::windows_sys::core::HRESULT = -1072877817i32; +pub const NS_E_PROXY_DNS_TIMEOUT: ::windows_sys::core::HRESULT = -1072877840i32; +pub const NS_E_PROXY_NOT_FOUND: ::windows_sys::core::HRESULT = -1072877843i32; +pub const NS_E_PROXY_SOURCE_ACCESSDENIED: ::windows_sys::core::HRESULT = -1072877833i32; +pub const NS_E_PROXY_TIMEOUT: ::windows_sys::core::HRESULT = -1072877851i32; +pub const NS_E_PUBLISHING_POINT_INVALID_REQUEST_WHILE_STARTED: ::windows_sys::core::HRESULT = -1072884649i32; +pub const NS_E_PUBLISHING_POINT_REMOVED: ::windows_sys::core::HRESULT = -1072884646i32; +pub const NS_E_PUBLISHING_POINT_STOPPED: ::windows_sys::core::HRESULT = -1072884642i32; +pub const NS_E_PUSH_CANNOTCONNECT: ::windows_sys::core::HRESULT = -1072877813i32; +pub const NS_E_PUSH_DUPLICATE_PUBLISHING_POINT_NAME: ::windows_sys::core::HRESULT = -1072884448i32; +pub const NS_E_REBOOT_RECOMMENDED: ::windows_sys::core::HRESULT = -1072878854i32; +pub const NS_E_REBOOT_REQUIRED: ::windows_sys::core::HRESULT = -1072878853i32; +pub const NS_E_RECORDQ_DISK_FULL: ::windows_sys::core::HRESULT = -1072882781i32; +pub const NS_E_REDBOOK_ENABLED_WHILE_COPYING: ::windows_sys::core::HRESULT = -1072885840i32; +pub const NS_E_REDIRECT: ::windows_sys::core::HRESULT = -1072884856i32; +pub const NS_E_REDIRECT_TO_PROXY: ::windows_sys::core::HRESULT = -1072877855i32; +pub const NS_E_REFUSED_BY_SERVER: ::windows_sys::core::HRESULT = -1072877849i32; +pub const NS_E_REG_FLUSH_FAILURE: ::windows_sys::core::HRESULT = -1072879720i32; +pub const NS_E_REMIRRORED_DISK: ::windows_sys::core::HRESULT = -1072889655i32; +pub const NS_E_REQUIRE_STREAMING_CLIENT: ::windows_sys::core::HRESULT = -1072877836i32; +pub const NS_E_RESET_SOCKET_CONNECTION: ::windows_sys::core::HRESULT = -1072877824i32; +pub const NS_E_RESOURCE_GONE: ::windows_sys::core::HRESULT = -1072877828i32; +pub const NS_E_SAME_AS_INPUT_COMBINATION: ::windows_sys::core::HRESULT = -1072882734i32; +pub const NS_E_SCHEMA_CLASSIFY_FAILURE: ::windows_sys::core::HRESULT = -1072876844i32; +pub const NS_E_SCRIPT_DEBUGGER_NOT_INSTALLED: ::windows_sys::core::HRESULT = -1072884350i32; +pub const NS_E_SDK_BUFFERTOOSMALL: ::windows_sys::core::HRESULT = -1072886828i32; +pub const NS_E_SERVER_ACCESSDENIED: ::windows_sys::core::HRESULT = -1072877829i32; +pub const NS_E_SERVER_DNS_TIMEOUT: ::windows_sys::core::HRESULT = -1072877841i32; +pub const NS_E_SERVER_NOT_FOUND: ::windows_sys::core::HRESULT = -1072889803i32; +pub const NS_E_SERVER_UNAVAILABLE: ::windows_sys::core::HRESULT = -1072877850i32; +pub const NS_E_SESSION_INVALID: ::windows_sys::core::HRESULT = -1072877816i32; +pub const NS_E_SESSION_NOT_FOUND: ::windows_sys::core::HRESULT = -1072877837i32; +pub const NS_E_SETUP_BLOCKED: ::windows_sys::core::HRESULT = -1072878848i32; +pub const NS_E_SETUP_DRM_MIGRATION_FAILED: ::windows_sys::core::HRESULT = -1072878851i32; +pub const NS_E_SETUP_DRM_MIGRATION_FAILED_AND_IGNORABLE_FAILURE: ::windows_sys::core::HRESULT = -1072878849i32; +pub const NS_E_SETUP_IGNORABLE_FAILURE: ::windows_sys::core::HRESULT = -1072878850i32; +pub const NS_E_SETUP_INCOMPLETE: ::windows_sys::core::HRESULT = -1072878852i32; +pub const NS_E_SET_DISK_UID_FAILED: ::windows_sys::core::HRESULT = -1072889823i32; +pub const NS_E_SHARING_STATE_OUT_OF_SYNC: ::windows_sys::core::HRESULT = -1072885772i32; +pub const NS_E_SHARING_VIOLATION: ::windows_sys::core::HRESULT = -1072885809i32; +pub const NS_E_SHUTDOWN: ::windows_sys::core::HRESULT = -1072889814i32; +pub const NS_E_SLOW_READ_DIGITAL: ::windows_sys::core::HRESULT = -1072885852i32; +pub const NS_E_SLOW_READ_DIGITAL_WITH_ERRORCORRECTION: ::windows_sys::core::HRESULT = -1072885251i32; +pub const NS_E_SMPTEMODE_MISMATCH: ::windows_sys::core::HRESULT = -1072882771i32; +pub const NS_E_SOURCEGROUP_NOTPREPARED: ::windows_sys::core::HRESULT = -1072882822i32; +pub const NS_E_SOURCE_CANNOT_LOOP: ::windows_sys::core::HRESULT = -1072882733i32; +pub const NS_E_SOURCE_NOTSPECIFIED: ::windows_sys::core::HRESULT = -1072882811i32; +pub const NS_E_SOURCE_PLUGIN_NOT_FOUND: ::windows_sys::core::HRESULT = -1072884354i32; +pub const NS_E_SPEECHEDL_ON_NON_MIXEDMODE: ::windows_sys::core::HRESULT = -1072882798i32; +pub const NS_E_STALE_PRESENTATION: ::windows_sys::core::HRESULT = -1072884855i32; +pub const NS_E_STREAM_END: ::windows_sys::core::HRESULT = -1072889804i32; +pub const NS_E_STRIDE_REFUSED: ::windows_sys::core::HRESULT = -1072889787i32; +pub const NS_E_SUBSCRIPTIONSERVICE_DOWNLOAD_TIMEOUT: ::windows_sys::core::HRESULT = -1072884896i32; +pub const NS_E_SUBSCRIPTIONSERVICE_LOGIN_FAILED: ::windows_sys::core::HRESULT = -1072884897i32; +pub const NS_E_SUBSCRIPTIONSERVICE_PLAYBACK_DISALLOWED: ::windows_sys::core::HRESULT = -1072884906i32; +pub const NS_E_SYNCWIZ_CANNOT_CHANGE_SETTINGS: ::windows_sys::core::HRESULT = -1072885265i32; +pub const NS_E_SYNCWIZ_DEVICE_FULL: ::windows_sys::core::HRESULT = -1072885266i32; +pub const NS_E_TABLE_KEY_NOT_FOUND: ::windows_sys::core::HRESULT = -1072876851i32; +pub const NS_E_TAMPERED_CONTENT: ::windows_sys::core::HRESULT = -1072886849i32; +pub const NS_E_TCP_DISABLED: ::windows_sys::core::HRESULT = -1072889646i32; +pub const NS_E_TIGER_FAIL: ::windows_sys::core::HRESULT = -1072889776i32; +pub const NS_E_TIMECODE_REQUIRES_VIDEOSTREAM: ::windows_sys::core::HRESULT = -1072882727i32; +pub const NS_E_TIMEOUT: ::windows_sys::core::HRESULT = -1072889837i32; +pub const NS_E_TITLE_BITRATE: ::windows_sys::core::HRESULT = -1072889643i32; +pub const NS_E_TITLE_SIZE_EXCEEDED: ::windows_sys::core::HRESULT = -1072889648i32; +pub const NS_E_TOO_MANY_AUDIO: ::windows_sys::core::HRESULT = -1072882852i32; +pub const NS_E_TOO_MANY_DEVICECONTROL: ::windows_sys::core::HRESULT = -1072882794i32; +pub const NS_E_TOO_MANY_HOPS: ::windows_sys::core::HRESULT = -1072877822i32; +pub const NS_E_TOO_MANY_MULTICAST_SINKS: ::windows_sys::core::HRESULT = -1072884650i32; +pub const NS_E_TOO_MANY_SESS: ::windows_sys::core::HRESULT = -1072889841i32; +pub const NS_E_TOO_MANY_TITLES: ::windows_sys::core::HRESULT = -1072889649i32; +pub const NS_E_TOO_MANY_VIDEO: ::windows_sys::core::HRESULT = -1072882851i32; +pub const NS_E_TOO_MUCH_DATA: ::windows_sys::core::HRESULT = -1072886836i32; +pub const NS_E_TOO_MUCH_DATA_FROM_SERVER: ::windows_sys::core::HRESULT = -1072877819i32; +pub const NS_E_TRACK_DOWNLOAD_REQUIRES_ALBUM_PURCHASE: ::windows_sys::core::HRESULT = -1072884901i32; +pub const NS_E_TRACK_DOWNLOAD_REQUIRES_PURCHASE: ::windows_sys::core::HRESULT = -1072884900i32; +pub const NS_E_TRACK_PURCHASE_MAXIMUM_EXCEEDED: ::windows_sys::core::HRESULT = -1072884899i32; +pub const NS_E_TRANSCODE_DELETECACHEERROR: ::windows_sys::core::HRESULT = -1072885264i32; +pub const NS_E_TRANSFORM_PLUGIN_INVALID: ::windows_sys::core::HRESULT = -1072882714i32; +pub const NS_E_TRANSFORM_PLUGIN_NOT_FOUND: ::windows_sys::core::HRESULT = -1072882715i32; +pub const NS_E_UDP_DISABLED: ::windows_sys::core::HRESULT = -1072889647i32; +pub const NS_E_UNABLE_TO_CREATE_RIP_LOCATION: ::windows_sys::core::HRESULT = -1072885552i32; +pub const NS_E_UNCOMPRESSED_DIGITAL_AUDIO_PROTECTION_LEVEL_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072879351i32; +pub const NS_E_UNCOMPRESSED_DIGITAL_VIDEO_PROTECTION_LEVEL_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072879354i32; +pub const NS_E_UNCOMP_COMP_COMBINATION: ::windows_sys::core::HRESULT = -1072882762i32; +pub const NS_E_UNEXPECTED_DISPLAY_SETTINGS: ::windows_sys::core::HRESULT = -1072882808i32; +pub const NS_E_UNEXPECTED_MSAUDIO_ERROR: ::windows_sys::core::HRESULT = -1072886854i32; +pub const NS_E_UNKNOWN_PROTOCOL: ::windows_sys::core::HRESULT = -1072877856i32; +pub const NS_E_UNRECOGNIZED_STREAM_TYPE: ::windows_sys::core::HRESULT = -1072889818i32; +pub const NS_E_UNSUPPORTED_ARCHIVEOPERATION: ::windows_sys::core::HRESULT = -1072882824i32; +pub const NS_E_UNSUPPORTED_ARCHIVETYPE: ::windows_sys::core::HRESULT = -1072882825i32; +pub const NS_E_UNSUPPORTED_ENCODER_DEVICE: ::windows_sys::core::HRESULT = -1072882809i32; +pub const NS_E_UNSUPPORTED_LANGUAGE: ::windows_sys::core::HRESULT = -1072884644i32; +pub const NS_E_UNSUPPORTED_LOAD_TYPE: ::windows_sys::core::HRESULT = -1072884653i32; +pub const NS_E_UNSUPPORTED_PROPERTY: ::windows_sys::core::HRESULT = -1072886835i32; +pub const NS_E_UNSUPPORTED_SOURCETYPE: ::windows_sys::core::HRESULT = -1072882853i32; +pub const NS_E_URLLIST_INVALIDFORMAT: ::windows_sys::core::HRESULT = -1072885651i32; +pub const NS_E_USER_STOP: ::windows_sys::core::HRESULT = -1072885847i32; +pub const NS_E_USE_FILE_SOURCE: ::windows_sys::core::HRESULT = -1072876855i32; +pub const NS_E_VBRMODE_MISMATCH: ::windows_sys::core::HRESULT = -1072882787i32; +pub const NS_E_VIDCAPCREATEWINDOW: ::windows_sys::core::HRESULT = -1072882835i32; +pub const NS_E_VIDCAPDRVINUSE: ::windows_sys::core::HRESULT = -1072882834i32; +pub const NS_E_VIDCAPSTARTFAILED: ::windows_sys::core::HRESULT = -1072882839i32; +pub const NS_E_VIDEODEVICE_BUSY: ::windows_sys::core::HRESULT = -1072882844i32; +pub const NS_E_VIDEODEVICE_UNEXPECTED: ::windows_sys::core::HRESULT = -1072882843i32; +pub const NS_E_VIDEODRIVER_UNSTABLE: ::windows_sys::core::HRESULT = -1072882840i32; +pub const NS_E_VIDEO_BITRATE_STEPDOWN: ::windows_sys::core::HRESULT = -1072882752i32; +pub const NS_E_VIDEO_CODEC_ERROR: ::windows_sys::core::HRESULT = -1072886843i32; +pub const NS_E_VIDEO_CODEC_NOT_INSTALLED: ::windows_sys::core::HRESULT = -1072886844i32; +pub const NS_E_VIDSOURCECOMPRESSION: ::windows_sys::core::HRESULT = -1072882838i32; +pub const NS_E_VIDSOURCESIZE: ::windows_sys::core::HRESULT = -1072882837i32; +pub const NS_E_WALKER_SERVER: ::windows_sys::core::HRESULT = -1072889779i32; +pub const NS_E_WALKER_UNKNOWN: ::windows_sys::core::HRESULT = -1072889780i32; +pub const NS_E_WALKER_USAGE: ::windows_sys::core::HRESULT = -1072889778i32; +pub const NS_E_WAVE_OPEN: ::windows_sys::core::HRESULT = -1072889747i32; +pub const NS_E_WINSOCK_ERROR_STRING: ::windows_sys::core::HRESULT = -1072885463i32; +pub const NS_E_WIZARD_RUNNING: ::windows_sys::core::HRESULT = -1072884348i32; +pub const NS_E_WMDM_REVOKED: ::windows_sys::core::HRESULT = -1072885572i32; +pub const NS_E_WMDRM_DEPRECATED: ::windows_sys::core::HRESULT = -1072886818i32; +pub const NS_E_WME_VERSION_MISMATCH: ::windows_sys::core::HRESULT = -1072882805i32; +pub const NS_E_WMG_CANNOTQUEUE: ::windows_sys::core::HRESULT = -1072885684i32; +pub const NS_E_WMG_COPP_SECURITY_INVALID: ::windows_sys::core::HRESULT = -1072885678i32; +pub const NS_E_WMG_COPP_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072885677i32; +pub const NS_E_WMG_FILETRANSFERNOTALLOWED: ::windows_sys::core::HRESULT = -1072885672i32; +pub const NS_E_WMG_INVALIDSTATE: ::windows_sys::core::HRESULT = -1072885676i32; +pub const NS_E_WMG_INVALID_COPP_CERTIFICATE: ::windows_sys::core::HRESULT = -1072885679i32; +pub const NS_E_WMG_LICENSE_TAMPERED: ::windows_sys::core::HRESULT = -1072885660i32; +pub const NS_E_WMG_NOSDKINTERFACE: ::windows_sys::core::HRESULT = -1072885674i32; +pub const NS_E_WMG_NOTALLOUTPUTSRENDERED: ::windows_sys::core::HRESULT = -1072885673i32; +pub const NS_E_WMG_PLUGINUNAVAILABLE: ::windows_sys::core::HRESULT = -1072885685i32; +pub const NS_E_WMG_PREROLLLICENSEACQUISITIONNOTALLOWED: ::windows_sys::core::HRESULT = -1072885683i32; +pub const NS_E_WMG_RATEUNAVAILABLE: ::windows_sys::core::HRESULT = -1072885686i32; +pub const NS_E_WMG_SINKALREADYEXISTS: ::windows_sys::core::HRESULT = -1072885675i32; +pub const NS_E_WMG_UNEXPECTEDPREROLLSTATUS: ::windows_sys::core::HRESULT = -1072885682i32; +pub const NS_E_WMPBR_BACKUPCANCEL: ::windows_sys::core::HRESULT = -1072885455i32; +pub const NS_E_WMPBR_BACKUPRESTOREFAILED: ::windows_sys::core::HRESULT = -1072885448i32; +pub const NS_E_WMPBR_DRIVE_INVALID: ::windows_sys::core::HRESULT = -1072885449i32; +pub const NS_E_WMPBR_ERRORWITHURL: ::windows_sys::core::HRESULT = -1072885453i32; +pub const NS_E_WMPBR_NAMECOLLISION: ::windows_sys::core::HRESULT = -1072885452i32; +pub const NS_E_WMPBR_NOLISTENER: ::windows_sys::core::HRESULT = -1072885456i32; +pub const NS_E_WMPBR_RESTORECANCEL: ::windows_sys::core::HRESULT = -1072885454i32; +pub const NS_E_WMPCORE_BUFFERTOOSMALL: ::windows_sys::core::HRESULT = -1072885633i32; +pub const NS_E_WMPCORE_BUSY: ::windows_sys::core::HRESULT = -1072885577i32; +pub const NS_E_WMPCORE_COCREATEFAILEDFORGITOBJECT: ::windows_sys::core::HRESULT = -1072885635i32; +pub const NS_E_WMPCORE_CODEC_DOWNLOAD_NOT_ALLOWED: ::windows_sys::core::HRESULT = -1072885604i32; +pub const NS_E_WMPCORE_CODEC_NOT_FOUND: ::windows_sys::core::HRESULT = -1072885605i32; +pub const NS_E_WMPCORE_CODEC_NOT_TRUSTED: ::windows_sys::core::HRESULT = -1072885606i32; +pub const NS_E_WMPCORE_CURRENT_MEDIA_NOT_ACTIVE: ::windows_sys::core::HRESULT = -1072885591i32; +pub const NS_E_WMPCORE_DEVICE_DRIVERS_MISSING: ::windows_sys::core::HRESULT = -1072885539i32; +pub const NS_E_WMPCORE_ERRORMANAGERNOTAVAILABLE: ::windows_sys::core::HRESULT = -1072885619i32; +pub const NS_E_WMPCORE_ERRORSINKNOTREGISTERED: ::windows_sys::core::HRESULT = -1072885620i32; +pub const NS_E_WMPCORE_ERROR_DOWNLOADING_PLAYLIST: ::windows_sys::core::HRESULT = -1072885603i32; +pub const NS_E_WMPCORE_FAILEDTOGETMARSHALLEDEVENTHANDLERINTERFACE: ::windows_sys::core::HRESULT = -1072885634i32; +pub const NS_E_WMPCORE_FAILED_TO_BUILD_PLAYLIST: ::windows_sys::core::HRESULT = -1072885602i32; +pub const NS_E_WMPCORE_FILE_NOT_FOUND: ::windows_sys::core::HRESULT = -1072885574i32; +pub const NS_E_WMPCORE_GRAPH_NOT_IN_LIST: ::windows_sys::core::HRESULT = -1072885622i32; +pub const NS_E_WMPCORE_INVALIDPLAYLISTMODE: ::windows_sys::core::HRESULT = -1072885631i32; +pub const NS_E_WMPCORE_INVALID_PLAYLIST_URL: ::windows_sys::core::HRESULT = -1072885585i32; +pub const NS_E_WMPCORE_ITEMNOTINPLAYLIST: ::windows_sys::core::HRESULT = -1072885626i32; +pub const NS_E_WMPCORE_LIST_ENTRY_NO_REF: ::windows_sys::core::HRESULT = -1072885608i32; +pub const NS_E_WMPCORE_MEDIA_ALTERNATE_REF_EMPTY: ::windows_sys::core::HRESULT = -1072885596i32; +pub const NS_E_WMPCORE_MEDIA_CHILD_PLAYLIST_UNAVAILABLE: ::windows_sys::core::HRESULT = -1072885576i32; +pub const NS_E_WMPCORE_MEDIA_ERROR_RESUME_FAILED: ::windows_sys::core::HRESULT = -1072885617i32; +pub const NS_E_WMPCORE_MEDIA_NO_CHILD_PLAYLIST: ::windows_sys::core::HRESULT = -1072885575i32; +pub const NS_E_WMPCORE_MEDIA_UNAVAILABLE: ::windows_sys::core::HRESULT = -1072885581i32; +pub const NS_E_WMPCORE_MEDIA_URL_TOO_LONG: ::windows_sys::core::HRESULT = -1072885560i32; +pub const NS_E_WMPCORE_MISMATCHED_RUNTIME: ::windows_sys::core::HRESULT = -1072885584i32; +pub const NS_E_WMPCORE_MISNAMED_FILE: ::windows_sys::core::HRESULT = -1072885607i32; +pub const NS_E_WMPCORE_NOBROWSER: ::windows_sys::core::HRESULT = -1072885624i32; +pub const NS_E_WMPCORE_NOSOURCEURLSTRING: ::windows_sys::core::HRESULT = -1072885636i32; +pub const NS_E_WMPCORE_NO_PLAYABLE_MEDIA_IN_PLAYLIST: ::windows_sys::core::HRESULT = -1072885579i32; +pub const NS_E_WMPCORE_NO_REF_IN_ENTRY: ::windows_sys::core::HRESULT = -1072885616i32; +pub const NS_E_WMPCORE_PLAYLISTEMPTY: ::windows_sys::core::HRESULT = -1072885625i32; +pub const NS_E_WMPCORE_PLAYLIST_EMPTY_NESTED_PLAYLIST_SKIPPED_ITEMS: ::windows_sys::core::HRESULT = -1072885578i32; +pub const NS_E_WMPCORE_PLAYLIST_EMPTY_OR_SINGLE_MEDIA: ::windows_sys::core::HRESULT = -1072885621i32; +pub const NS_E_WMPCORE_PLAYLIST_EVENT_ATTRIBUTE_ABSENT: ::windows_sys::core::HRESULT = -1072885594i32; +pub const NS_E_WMPCORE_PLAYLIST_EVENT_EMPTY: ::windows_sys::core::HRESULT = -1072885593i32; +pub const NS_E_WMPCORE_PLAYLIST_IMPORT_FAILED_NO_ITEMS: ::windows_sys::core::HRESULT = -1072885583i32; +pub const NS_E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_EXHAUSTED: ::windows_sys::core::HRESULT = -1072885600i32; +pub const NS_E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_INIT_FAILED: ::windows_sys::core::HRESULT = -1072885597i32; +pub const NS_E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_MORPH_FAILED: ::windows_sys::core::HRESULT = -1072885598i32; +pub const NS_E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_NAME_NOT_FOUND: ::windows_sys::core::HRESULT = -1072885599i32; +pub const NS_E_WMPCORE_PLAYLIST_ITEM_ALTERNATE_NONE: ::windows_sys::core::HRESULT = -1072885601i32; +pub const NS_E_WMPCORE_PLAYLIST_NO_EVENT_NAME: ::windows_sys::core::HRESULT = -1072885595i32; +pub const NS_E_WMPCORE_PLAYLIST_REPEAT_EMPTY: ::windows_sys::core::HRESULT = -1072885588i32; +pub const NS_E_WMPCORE_PLAYLIST_REPEAT_END_MEDIA_NONE: ::windows_sys::core::HRESULT = -1072885586i32; +pub const NS_E_WMPCORE_PLAYLIST_REPEAT_START_MEDIA_NONE: ::windows_sys::core::HRESULT = -1072885587i32; +pub const NS_E_WMPCORE_PLAYLIST_STACK_EMPTY: ::windows_sys::core::HRESULT = -1072885592i32; +pub const NS_E_WMPCORE_SOME_CODECS_MISSING: ::windows_sys::core::HRESULT = -1072885551i32; +pub const NS_E_WMPCORE_TEMP_FILE_NOT_FOUND: ::windows_sys::core::HRESULT = -1072885573i32; +pub const NS_E_WMPCORE_UNAVAILABLE: ::windows_sys::core::HRESULT = -1072885632i32; +pub const NS_E_WMPCORE_UNRECOGNIZED_MEDIA_URL: ::windows_sys::core::HRESULT = -1072885623i32; +pub const NS_E_WMPCORE_USER_CANCEL: ::windows_sys::core::HRESULT = -1072885589i32; +pub const NS_E_WMPCORE_VIDEO_TRANSFORM_FILTER_INSERTION: ::windows_sys::core::HRESULT = -1072885582i32; +pub const NS_E_WMPCORE_WEBHELPFAILED: ::windows_sys::core::HRESULT = -1072885618i32; +pub const NS_E_WMPCORE_WMX_ENTRYREF_NO_REF: ::windows_sys::core::HRESULT = -1072885580i32; +pub const NS_E_WMPCORE_WMX_LIST_ATTRIBUTE_NAME_EMPTY: ::windows_sys::core::HRESULT = -1072885615i32; +pub const NS_E_WMPCORE_WMX_LIST_ATTRIBUTE_NAME_ILLEGAL: ::windows_sys::core::HRESULT = -1072885614i32; +pub const NS_E_WMPCORE_WMX_LIST_ATTRIBUTE_VALUE_EMPTY: ::windows_sys::core::HRESULT = -1072885613i32; +pub const NS_E_WMPCORE_WMX_LIST_ATTRIBUTE_VALUE_ILLEGAL: ::windows_sys::core::HRESULT = -1072885612i32; +pub const NS_E_WMPCORE_WMX_LIST_ITEM_ATTRIBUTE_NAME_EMPTY: ::windows_sys::core::HRESULT = -1072885611i32; +pub const NS_E_WMPCORE_WMX_LIST_ITEM_ATTRIBUTE_NAME_ILLEGAL: ::windows_sys::core::HRESULT = -1072885610i32; +pub const NS_E_WMPCORE_WMX_LIST_ITEM_ATTRIBUTE_VALUE_EMPTY: ::windows_sys::core::HRESULT = -1072885609i32; +pub const NS_E_WMPFLASH_CANT_FIND_COM_SERVER: ::windows_sys::core::HRESULT = -1072885559i32; +pub const NS_E_WMPFLASH_INCOMPATIBLEVERSION: ::windows_sys::core::HRESULT = -1072885558i32; +pub const NS_E_WMPIM_DIALUPFAILED: ::windows_sys::core::HRESULT = -1072885464i32; +pub const NS_E_WMPIM_USERCANCELED: ::windows_sys::core::HRESULT = -1072885465i32; +pub const NS_E_WMPIM_USEROFFLINE: ::windows_sys::core::HRESULT = -1072885466i32; +pub const NS_E_WMPOCXGRAPH_IE_DISALLOWS_ACTIVEX_CONTROLS: ::windows_sys::core::HRESULT = -1072885557i32; +pub const NS_E_WMPOCX_ERRORMANAGERNOTAVAILABLE: ::windows_sys::core::HRESULT = -1072885803i32; +pub const NS_E_WMPOCX_NOT_RUNNING_REMOTELY: ::windows_sys::core::HRESULT = -1072885805i32; +pub const NS_E_WMPOCX_NO_ACTIVE_CORE: ::windows_sys::core::HRESULT = -1072885806i32; +pub const NS_E_WMPOCX_NO_REMOTE_CORE: ::windows_sys::core::HRESULT = -1072885807i32; +pub const NS_E_WMPOCX_NO_REMOTE_WINDOW: ::windows_sys::core::HRESULT = -1072885804i32; +pub const NS_E_WMPOCX_PLAYER_NOT_DOCKED: ::windows_sys::core::HRESULT = -1072885797i32; +pub const NS_E_WMPOCX_REMOTE_PLAYER_ALREADY_RUNNING: ::windows_sys::core::HRESULT = -1072885766i32; +pub const NS_E_WMPOCX_UNABLE_TO_LOAD_SKIN: ::windows_sys::core::HRESULT = -1072885781i32; +pub const NS_E_WMPXML_ATTRIBUTENOTFOUND: ::windows_sys::core::HRESULT = -1072885833i32; +pub const NS_E_WMPXML_EMPTYDOC: ::windows_sys::core::HRESULT = -1072885831i32; +pub const NS_E_WMPXML_ENDOFDATA: ::windows_sys::core::HRESULT = -1072885835i32; +pub const NS_E_WMPXML_NOERROR: ::windows_sys::core::HRESULT = -1072885836i32; +pub const NS_E_WMPXML_PARSEERROR: ::windows_sys::core::HRESULT = -1072885834i32; +pub const NS_E_WMPXML_PINOTFOUND: ::windows_sys::core::HRESULT = -1072885832i32; +pub const NS_E_WMPZIP_CORRUPT: ::windows_sys::core::HRESULT = -1072885735i32; +pub const NS_E_WMPZIP_FILENOTFOUND: ::windows_sys::core::HRESULT = -1072885734i32; +pub const NS_E_WMPZIP_NOTAZIPFILE: ::windows_sys::core::HRESULT = -1072885736i32; +pub const NS_E_WMP_ACCESS_DENIED: ::windows_sys::core::HRESULT = -1072885294i32; +pub const NS_E_WMP_ADDTOLIBRARY_FAILED: ::windows_sys::core::HRESULT = -1072885817i32; +pub const NS_E_WMP_ALREADY_IN_USE: ::windows_sys::core::HRESULT = -1072885346i32; +pub const NS_E_WMP_AUDIO_CODEC_NOT_INSTALLED: ::windows_sys::core::HRESULT = -1072885305i32; +pub const NS_E_WMP_AUDIO_DEVICE_LOST: ::windows_sys::core::HRESULT = -1072885275i32; +pub const NS_E_WMP_AUDIO_HW_PROBLEM: ::windows_sys::core::HRESULT = -1072885318i32; +pub const NS_E_WMP_AUTOPLAY_INVALID_STATE: ::windows_sys::core::HRESULT = -1072884996i32; +pub const NS_E_WMP_BAD_DRIVER: ::windows_sys::core::HRESULT = -1072885295i32; +pub const NS_E_WMP_BMP_BITMAP_NOT_CREATED: ::windows_sys::core::HRESULT = -1072885712i32; +pub const NS_E_WMP_BMP_COMPRESSION_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072885711i32; +pub const NS_E_WMP_BMP_INVALID_BITMASK: ::windows_sys::core::HRESULT = -1072885714i32; +pub const NS_E_WMP_BMP_INVALID_FORMAT: ::windows_sys::core::HRESULT = -1072885710i32; +pub const NS_E_WMP_BMP_TOPDOWN_DIB_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072885713i32; +pub const NS_E_WMP_BSTR_TOO_LONG: ::windows_sys::core::HRESULT = -1072885006i32; +pub const NS_E_WMP_BURN_DISC_OVERFLOW: ::windows_sys::core::HRESULT = -1072885287i32; +pub const NS_E_WMP_CANNOT_BURN_NON_LOCAL_FILE: ::windows_sys::core::HRESULT = -1072885546i32; +pub const NS_E_WMP_CANNOT_FIND_FILE: ::windows_sys::core::HRESULT = -1072885353i32; +pub const NS_E_WMP_CANNOT_FIND_FOLDER: ::windows_sys::core::HRESULT = -1072885801i32; +pub const NS_E_WMP_CANT_PLAY_PROTECTED: ::windows_sys::core::HRESULT = -1072885773i32; +pub const NS_E_WMP_CD_ANOTHER_USER: ::windows_sys::core::HRESULT = -1072885297i32; +pub const NS_E_WMP_CD_STASH_NO_SPACE: ::windows_sys::core::HRESULT = -1072885291i32; +pub const NS_E_WMP_CODEC_NEEDED_WITH_4CC: ::windows_sys::core::HRESULT = -1072885343i32; +pub const NS_E_WMP_CODEC_NEEDED_WITH_FORMATTAG: ::windows_sys::core::HRESULT = -1072885342i32; +pub const NS_E_WMP_COMPONENT_REVOKED: ::windows_sys::core::HRESULT = -1072884986i32; +pub const NS_E_WMP_CONNECT_TIMEOUT: ::windows_sys::core::HRESULT = -1072885311i32; +pub const NS_E_WMP_CONVERT_FILE_CORRUPT: ::windows_sys::core::HRESULT = -1072885413i32; +pub const NS_E_WMP_CONVERT_FILE_FAILED: ::windows_sys::core::HRESULT = -1072885416i32; +pub const NS_E_WMP_CONVERT_NO_RIGHTS_ERRORURL: ::windows_sys::core::HRESULT = -1072885415i32; +pub const NS_E_WMP_CONVERT_NO_RIGHTS_NOERRORURL: ::windows_sys::core::HRESULT = -1072885414i32; +pub const NS_E_WMP_CONVERT_PLUGIN_UNAVAILABLE_ERRORURL: ::windows_sys::core::HRESULT = -1072885412i32; +pub const NS_E_WMP_CONVERT_PLUGIN_UNAVAILABLE_NOERRORURL: ::windows_sys::core::HRESULT = -1072885411i32; +pub const NS_E_WMP_CONVERT_PLUGIN_UNKNOWN_FILE_OWNER: ::windows_sys::core::HRESULT = -1072885410i32; +pub const NS_E_WMP_CS_JPGPOSITIONIMAGE: ::windows_sys::core::HRESULT = -1072885746i32; +pub const NS_E_WMP_CS_NOTEVENLYDIVISIBLE: ::windows_sys::core::HRESULT = -1072885745i32; +pub const NS_E_WMP_DAI_SONGTOOSHORT: ::windows_sys::core::HRESULT = -1072885687i32; +pub const NS_E_WMP_DRM_ACQUIRING_LICENSE: ::windows_sys::core::HRESULT = -1072885246i32; +pub const NS_E_WMP_DRM_CANNOT_RESTORE: ::windows_sys::core::HRESULT = -1072885288i32; +pub const NS_E_WMP_DRM_COMPONENT_FAILURE: ::windows_sys::core::HRESULT = -1072885278i32; +pub const NS_E_WMP_DRM_CORRUPT_BACKUP: ::windows_sys::core::HRESULT = -1072885324i32; +pub const NS_E_WMP_DRM_DRIVER_AUTH_FAILURE: ::windows_sys::core::HRESULT = -1072885302i32; +pub const NS_E_WMP_DRM_GENERIC_LICENSE_FAILURE: ::windows_sys::core::HRESULT = -1072885286i32; +pub const NS_E_WMP_DRM_INDIV_FAILED: ::windows_sys::core::HRESULT = -1072885283i32; +pub const NS_E_WMP_DRM_INVALID_SIG: ::windows_sys::core::HRESULT = -1072885289i32; +pub const NS_E_WMP_DRM_LICENSE_CONTENT_REVOKED: ::windows_sys::core::HRESULT = -1072885241i32; +pub const NS_E_WMP_DRM_LICENSE_EXPIRED: ::windows_sys::core::HRESULT = -1072885245i32; +pub const NS_E_WMP_DRM_LICENSE_NOSAP: ::windows_sys::core::HRESULT = -1072885240i32; +pub const NS_E_WMP_DRM_LICENSE_NOTACQUIRED: ::windows_sys::core::HRESULT = -1072885244i32; +pub const NS_E_WMP_DRM_LICENSE_NOTENABLED: ::windows_sys::core::HRESULT = -1072885243i32; +pub const NS_E_WMP_DRM_LICENSE_SERVER_UNAVAILABLE: ::windows_sys::core::HRESULT = -1072885323i32; +pub const NS_E_WMP_DRM_LICENSE_UNUSABLE: ::windows_sys::core::HRESULT = -1072885242i32; +pub const NS_E_WMP_DRM_NEEDS_AUTHORIZATION: ::windows_sys::core::HRESULT = -1072885296i32; +pub const NS_E_WMP_DRM_NEW_HARDWARE: ::windows_sys::core::HRESULT = -1072885290i32; +pub const NS_E_WMP_DRM_NOT_ACQUIRING: ::windows_sys::core::HRESULT = -1072885055i32; +pub const NS_E_WMP_DRM_NO_DEVICE_CERT: ::windows_sys::core::HRESULT = -1072885277i32; +pub const NS_E_WMP_DRM_NO_RIGHTS: ::windows_sys::core::HRESULT = -1072885284i32; +pub const NS_E_WMP_DRM_NO_SECURE_CLOCK: ::windows_sys::core::HRESULT = -1072885285i32; +pub const NS_E_WMP_DRM_UNABLE_TO_ACQUIRE_LICENSE: ::windows_sys::core::HRESULT = -1072885239i32; +pub const NS_E_WMP_DSHOW_UNSUPPORTED_FORMAT: ::windows_sys::core::HRESULT = -1072885350i32; +pub const NS_E_WMP_ERASE_FAILED: ::windows_sys::core::HRESULT = -1072885548i32; +pub const NS_E_WMP_EXTERNAL_NOTREADY: ::windows_sys::core::HRESULT = -1072885796i32; +pub const NS_E_WMP_FAILED_TO_OPEN_IMAGE: ::windows_sys::core::HRESULT = -1072885692i32; +pub const NS_E_WMP_FAILED_TO_OPEN_WMD: ::windows_sys::core::HRESULT = -1072885774i32; +pub const NS_E_WMP_FAILED_TO_RIP_TRACK: ::windows_sys::core::HRESULT = -1072885549i32; +pub const NS_E_WMP_FAILED_TO_SAVE_FILE: ::windows_sys::core::HRESULT = -1072885777i32; +pub const NS_E_WMP_FAILED_TO_SAVE_PLAYLIST: ::windows_sys::core::HRESULT = -1072885775i32; +pub const NS_E_WMP_FILESCANALREADYSTARTED: ::windows_sys::core::HRESULT = -1072885826i32; +pub const NS_E_WMP_FILE_DOES_NOT_FIT_ON_CD: ::windows_sys::core::HRESULT = -1072885544i32; +pub const NS_E_WMP_FILE_NO_DURATION: ::windows_sys::core::HRESULT = -1072885543i32; +pub const NS_E_WMP_FILE_OPEN_FAILED: ::windows_sys::core::HRESULT = -1072885327i32; +pub const NS_E_WMP_FILE_TYPE_CANNOT_BURN_TO_AUDIO_CD: ::windows_sys::core::HRESULT = -1072885545i32; +pub const NS_E_WMP_FORMAT_FAILED: ::windows_sys::core::HRESULT = -1072885547i32; +pub const NS_E_WMP_GIF_BAD_VERSION_NUMBER: ::windows_sys::core::HRESULT = -1072885722i32; +pub const NS_E_WMP_GIF_INVALID_FORMAT: ::windows_sys::core::HRESULT = -1072885723i32; +pub const NS_E_WMP_GIF_NO_IMAGE_IN_FILE: ::windows_sys::core::HRESULT = -1072885721i32; +pub const NS_E_WMP_GIF_UNEXPECTED_ENDOFFILE: ::windows_sys::core::HRESULT = -1072885724i32; +pub const NS_E_WMP_GOFULLSCREEN_FAILED: ::windows_sys::core::HRESULT = -1072885313i32; +pub const NS_E_WMP_HME_INVALIDOBJECTID: ::windows_sys::core::HRESULT = -1072885825i32; +pub const NS_E_WMP_HME_NOTSEARCHABLEFORITEMS: ::windows_sys::core::HRESULT = -1072885823i32; +pub const NS_E_WMP_HME_STALEREQUEST: ::windows_sys::core::HRESULT = -1072885822i32; +pub const NS_E_WMP_HWND_NOTFOUND: ::windows_sys::core::HRESULT = -1072885156i32; +pub const NS_E_WMP_IMAGE_FILETYPE_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072885726i32; +pub const NS_E_WMP_IMAGE_INVALID_FORMAT: ::windows_sys::core::HRESULT = -1072885725i32; +pub const NS_E_WMP_IMAPI2_ERASE_DEVICE_BUSY: ::windows_sys::core::HRESULT = -1072885279i32; +pub const NS_E_WMP_IMAPI2_ERASE_FAIL: ::windows_sys::core::HRESULT = -1072885280i32; +pub const NS_E_WMP_IMAPI_DEVICE_BUSY: ::windows_sys::core::HRESULT = -1072885330i32; +pub const NS_E_WMP_IMAPI_DEVICE_INVALIDTYPE: ::windows_sys::core::HRESULT = -1072885303i32; +pub const NS_E_WMP_IMAPI_DEVICE_NOTPRESENT: ::windows_sys::core::HRESULT = -1072885331i32; +pub const NS_E_WMP_IMAPI_FAILURE: ::windows_sys::core::HRESULT = -1072885345i32; +pub const NS_E_WMP_IMAPI_GENERIC: ::windows_sys::core::HRESULT = -1072885333i32; +pub const NS_E_WMP_IMAPI_LOSS_OF_STREAMING: ::windows_sys::core::HRESULT = -1072885329i32; +pub const NS_E_WMP_IMAPI_MEDIA_INCOMPATIBLE: ::windows_sys::core::HRESULT = -1072885274i32; +pub const NS_E_WMP_INVALID_ASX: ::windows_sys::core::HRESULT = -1072885347i32; +pub const NS_E_WMP_INVALID_KEY: ::windows_sys::core::HRESULT = -1072885298i32; +pub const NS_E_WMP_INVALID_LIBRARY_ADD: ::windows_sys::core::HRESULT = -1072885316i32; +pub const NS_E_WMP_INVALID_MAX_VAL: ::windows_sys::core::HRESULT = -1072885751i32; +pub const NS_E_WMP_INVALID_MIN_VAL: ::windows_sys::core::HRESULT = -1072885750i32; +pub const NS_E_WMP_INVALID_PROTOCOL: ::windows_sys::core::HRESULT = -1072885317i32; +pub const NS_E_WMP_INVALID_REQUEST: ::windows_sys::core::HRESULT = -1072885292i32; +pub const NS_E_WMP_INVALID_SKIN: ::windows_sys::core::HRESULT = -1072885780i32; +pub const NS_E_WMP_JPGTRANSPARENCY: ::windows_sys::core::HRESULT = -1072885755i32; +pub const NS_E_WMP_JPG_BAD_DCTSIZE: ::windows_sys::core::HRESULT = -1072885707i32; +pub const NS_E_WMP_JPG_BAD_PRECISION: ::windows_sys::core::HRESULT = -1072885705i32; +pub const NS_E_WMP_JPG_BAD_VERSION_NUMBER: ::windows_sys::core::HRESULT = -1072885706i32; +pub const NS_E_WMP_JPG_CCIR601_NOTIMPL: ::windows_sys::core::HRESULT = -1072885704i32; +pub const NS_E_WMP_JPG_FRACT_SAMPLE_NOTIMPL: ::windows_sys::core::HRESULT = -1072885701i32; +pub const NS_E_WMP_JPG_IMAGE_TOO_BIG: ::windows_sys::core::HRESULT = -1072885700i32; +pub const NS_E_WMP_JPG_INVALID_FORMAT: ::windows_sys::core::HRESULT = -1072885708i32; +pub const NS_E_WMP_JPG_JERR_ARITHCODING_NOTIMPL: ::windows_sys::core::HRESULT = -1072885709i32; +pub const NS_E_WMP_JPG_NO_IMAGE_IN_FILE: ::windows_sys::core::HRESULT = -1072885703i32; +pub const NS_E_WMP_JPG_READ_ERROR: ::windows_sys::core::HRESULT = -1072885702i32; +pub const NS_E_WMP_JPG_SOF_UNSUPPORTED: ::windows_sys::core::HRESULT = -1072885698i32; +pub const NS_E_WMP_JPG_UNEXPECTED_ENDOFFILE: ::windows_sys::core::HRESULT = -1072885699i32; +pub const NS_E_WMP_JPG_UNKNOWN_MARKER: ::windows_sys::core::HRESULT = -1072885697i32; +pub const NS_E_WMP_LICENSE_REQUIRED: ::windows_sys::core::HRESULT = -1072885238i32; +pub const NS_E_WMP_LICENSE_RESTRICTS: ::windows_sys::core::HRESULT = -1072885293i32; +pub const NS_E_WMP_LOCKEDINSKINMODE: ::windows_sys::core::HRESULT = -1072885778i32; +pub const NS_E_WMP_LOGON_FAILURE: ::windows_sys::core::HRESULT = -1072885354i32; +pub const NS_E_WMP_MF_CODE_EXPIRED: ::windows_sys::core::HRESULT = -1072885824i32; +pub const NS_E_WMP_MLS_STALE_DATA: ::windows_sys::core::HRESULT = -1072885795i32; +pub const NS_E_WMP_MMS_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1072885315i32; +pub const NS_E_WMP_MSSAP_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1072885341i32; +pub const NS_E_WMP_MULTICAST_DISABLED: ::windows_sys::core::HRESULT = -1072885310i32; +pub const NS_E_WMP_MULTIPLE_ERROR_IN_PLAYLIST: ::windows_sys::core::HRESULT = -1072885281i32; +pub const NS_E_WMP_NEED_UPGRADE: ::windows_sys::core::HRESULT = -1072885319i32; +pub const NS_E_WMP_NETWORK_ERROR: ::windows_sys::core::HRESULT = -1072885312i32; +pub const NS_E_WMP_NETWORK_FIREWALL: ::windows_sys::core::HRESULT = -1072885322i32; +pub const NS_E_WMP_NETWORK_RESOURCE_FAILURE: ::windows_sys::core::HRESULT = -1072885301i32; +pub const NS_E_WMP_NONMEDIA_FILES: ::windows_sys::core::HRESULT = -1072885348i32; +pub const NS_E_WMP_NO_DISK_SPACE: ::windows_sys::core::HRESULT = -1072885355i32; +pub const NS_E_WMP_NO_PROTOCOLS_SELECTED: ::windows_sys::core::HRESULT = -1072885314i32; +pub const NS_E_WMP_NO_REMOVABLE_MEDIA: ::windows_sys::core::HRESULT = -1072885321i32; +pub const NS_E_WMP_OUTOFMEMORY: ::windows_sys::core::HRESULT = -1072885306i32; +pub const NS_E_WMP_PATH_ALREADY_IN_LIBRARY: ::windows_sys::core::HRESULT = -1072885830i32; +pub const NS_E_WMP_PLAYLIST_EXISTS: ::windows_sys::core::HRESULT = -1072885349i32; +pub const NS_E_WMP_PLUGINDLL_NOTFOUND: ::windows_sys::core::HRESULT = -1072885799i32; +pub const NS_E_WMP_PNG_INVALIDFORMAT: ::windows_sys::core::HRESULT = -1072885720i32; +pub const NS_E_WMP_PNG_UNSUPPORTED_BAD_CRC: ::windows_sys::core::HRESULT = -1072885715i32; +pub const NS_E_WMP_PNG_UNSUPPORTED_BITDEPTH: ::windows_sys::core::HRESULT = -1072885719i32; +pub const NS_E_WMP_PNG_UNSUPPORTED_COMPRESSION: ::windows_sys::core::HRESULT = -1072885718i32; +pub const NS_E_WMP_PNG_UNSUPPORTED_FILTER: ::windows_sys::core::HRESULT = -1072885717i32; +pub const NS_E_WMP_PNG_UNSUPPORTED_INTERLACE: ::windows_sys::core::HRESULT = -1072885716i32; +pub const NS_E_WMP_POLICY_VALUE_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -1072885206i32; +pub const NS_E_WMP_PROTECTED_CONTENT: ::windows_sys::core::HRESULT = -1072885237i32; +pub const NS_E_WMP_PROTOCOL_PROBLEM: ::windows_sys::core::HRESULT = -1072885356i32; +pub const NS_E_WMP_PROXY_CONNECT_TIMEOUT: ::windows_sys::core::HRESULT = -1072885320i32; +pub const NS_E_WMP_PROXY_NOT_FOUND: ::windows_sys::core::HRESULT = -1072885308i32; +pub const NS_E_WMP_RBC_JPGMAPPINGIMAGE: ::windows_sys::core::HRESULT = -1072885756i32; +pub const NS_E_WMP_RECORDING_NOT_ALLOWED: ::windows_sys::core::HRESULT = -1072885815i32; +pub const NS_E_WMP_RIP_FAILED: ::windows_sys::core::HRESULT = -1072885550i32; +pub const NS_E_WMP_SAVEAS_READONLY: ::windows_sys::core::HRESULT = -1072885776i32; +pub const NS_E_WMP_SENDMAILFAILED: ::windows_sys::core::HRESULT = -1072885779i32; +pub const NS_E_WMP_SERVER_DNS_TIMEOUT: ::windows_sys::core::HRESULT = -1072885309i32; +pub const NS_E_WMP_SERVER_INACCESSIBLE: ::windows_sys::core::HRESULT = -1072885352i32; +pub const NS_E_WMP_SERVER_NONEWCONNECTIONS: ::windows_sys::core::HRESULT = -1072885282i32; +pub const NS_E_WMP_SERVER_NOT_RESPONDING: ::windows_sys::core::HRESULT = -1072885325i32; +pub const NS_E_WMP_SERVER_SECURITY_ERROR: ::windows_sys::core::HRESULT = -1072885276i32; +pub const NS_E_WMP_SERVER_UNAVAILABLE: ::windows_sys::core::HRESULT = -1072885328i32; +pub const NS_E_WMP_STREAMING_RECORDING_NOT_ALLOWED: ::windows_sys::core::HRESULT = -1072885800i32; +pub const NS_E_WMP_TAMPERED_CONTENT: ::windows_sys::core::HRESULT = -1072885307i32; +pub const NS_E_WMP_UDRM_NOUSERLIST: ::windows_sys::core::HRESULT = -1072885056i32; +pub const NS_E_WMP_UI_NOSKININZIP: ::windows_sys::core::HRESULT = -1072885785i32; +pub const NS_E_WMP_UI_NOTATHEMEFILE: ::windows_sys::core::HRESULT = -1072885792i32; +pub const NS_E_WMP_UI_OBJECTNOTFOUND: ::windows_sys::core::HRESULT = -1072885787i32; +pub const NS_E_WMP_UI_PASSTHROUGH: ::windows_sys::core::HRESULT = -1072885788i32; +pub const NS_E_WMP_UI_SECONDHANDLER: ::windows_sys::core::HRESULT = -1072885786i32; +pub const NS_E_WMP_UI_SUBCONTROLSNOTSUPPORTED: ::windows_sys::core::HRESULT = -1072885794i32; +pub const NS_E_WMP_UI_SUBELEMENTNOTFOUND: ::windows_sys::core::HRESULT = -1072885791i32; +pub const NS_E_WMP_UI_VERSIONMISMATCH: ::windows_sys::core::HRESULT = -1072885793i32; +pub const NS_E_WMP_UI_VERSIONPARSE: ::windows_sys::core::HRESULT = -1072885790i32; +pub const NS_E_WMP_UI_VIEWIDNOTFOUND: ::windows_sys::core::HRESULT = -1072885789i32; +pub const NS_E_WMP_UNKNOWN_ERROR: ::windows_sys::core::HRESULT = -1072885299i32; +pub const NS_E_WMP_UNSUPPORTED_FORMAT: ::windows_sys::core::HRESULT = -1072885351i32; +pub const NS_E_WMP_UPGRADE_APPLICATION: ::windows_sys::core::HRESULT = -1072885300i32; +pub const NS_E_WMP_URLDOWNLOADFAILED: ::windows_sys::core::HRESULT = -1072885782i32; +pub const NS_E_WMP_VERIFY_ONLINE: ::windows_sys::core::HRESULT = -1072885326i32; +pub const NS_E_WMP_VIDEO_CODEC_NOT_INSTALLED: ::windows_sys::core::HRESULT = -1072885304i32; +pub const NS_E_WMP_WINDOWSAPIFAILURE: ::windows_sys::core::HRESULT = -1072885816i32; +pub const NS_E_WMP_WMDM_BUSY: ::windows_sys::core::HRESULT = -1072885336i32; +pub const NS_E_WMP_WMDM_FAILURE: ::windows_sys::core::HRESULT = -1072885344i32; +pub const NS_E_WMP_WMDM_INCORRECT_RIGHTS: ::windows_sys::core::HRESULT = -1072885334i32; +pub const NS_E_WMP_WMDM_INTERFACEDEAD: ::windows_sys::core::HRESULT = -1072885340i32; +pub const NS_E_WMP_WMDM_LICENSE_EXPIRED: ::windows_sys::core::HRESULT = -1072885337i32; +pub const NS_E_WMP_WMDM_LICENSE_NOTEXIST: ::windows_sys::core::HRESULT = -1072885338i32; +pub const NS_E_WMP_WMDM_NORIGHTS: ::windows_sys::core::HRESULT = -1072885335i32; +pub const NS_E_WMP_WMDM_NOTCERTIFIED: ::windows_sys::core::HRESULT = -1072885339i32; +pub const NS_E_WMR_CANNOT_RENDER_BINARY_STREAM: ::windows_sys::core::HRESULT = -1072885661i32; +pub const NS_E_WMR_NOCALLBACKAVAILABLE: ::windows_sys::core::HRESULT = -1072885666i32; +pub const NS_E_WMR_NOSOURCEFILTER: ::windows_sys::core::HRESULT = -1072885668i32; +pub const NS_E_WMR_PINNOTFOUND: ::windows_sys::core::HRESULT = -1072885670i32; +pub const NS_E_WMR_PINTYPENOMATCH: ::windows_sys::core::HRESULT = -1072885667i32; +pub const NS_E_WMR_SAMPLEPROPERTYNOTSET: ::windows_sys::core::HRESULT = -1072885662i32; +pub const NS_E_WMR_UNSUPPORTEDSTREAM: ::windows_sys::core::HRESULT = -1072885671i32; +pub const NS_E_WMR_WAITINGONFORMATSWITCH: ::windows_sys::core::HRESULT = -1072885669i32; +pub const NS_E_WMR_WILLNOT_RENDER_BINARY_STREAM: ::windows_sys::core::HRESULT = -1072885659i32; +pub const NS_E_WMX_ATTRIBUTE_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -1072885649i32; +pub const NS_E_WMX_ATTRIBUTE_DOES_NOT_EXIST: ::windows_sys::core::HRESULT = -1072885650i32; +pub const NS_E_WMX_ATTRIBUTE_UNRETRIEVABLE: ::windows_sys::core::HRESULT = -1072885648i32; +pub const NS_E_WMX_INVALID_FORMAT_OVER_NESTING: ::windows_sys::core::HRESULT = -1072885642i32; +pub const NS_E_WMX_ITEM_DOES_NOT_EXIST: ::windows_sys::core::HRESULT = -1072885647i32; +pub const NS_E_WMX_ITEM_TYPE_ILLEGAL: ::windows_sys::core::HRESULT = -1072885646i32; +pub const NS_E_WMX_ITEM_UNSETTABLE: ::windows_sys::core::HRESULT = -1072885645i32; +pub const NS_E_WMX_PLAYLIST_EMPTY: ::windows_sys::core::HRESULT = -1072885644i32; +pub const NS_E_WMX_UNRECOGNIZED_PLAYLIST_FORMAT: ::windows_sys::core::HRESULT = -1072885656i32; +pub const NS_E_WONT_DO_DIGITAL: ::windows_sys::core::HRESULT = -1072885837i32; +pub const NS_E_WRONG_OS_VERSION: ::windows_sys::core::HRESULT = -1072884643i32; +pub const NS_E_WRONG_PUBLISHING_POINT_TYPE: ::windows_sys::core::HRESULT = -1072884654i32; +pub const NS_E_WSX_INVALID_VERSION: ::windows_sys::core::HRESULT = -1072884450i32; +pub const NS_I_CATATONIC_AUTO_UNFAIL: ::windows_sys::core::HRESULT = -2146631270i32; +pub const NS_I_CATATONIC_FAILURE: ::windows_sys::core::HRESULT = -2146631271i32; +pub const NS_I_CUB_RUNNING: ::windows_sys::core::HRESULT = 1074593874i32; +pub const NS_I_CUB_START: ::windows_sys::core::HRESULT = 1074593873i32; +pub const NS_I_CUB_UNFAIL_LINK: ::windows_sys::core::HRESULT = 1074594193i32; +pub const NS_I_DISK_REBUILD_ABORTED: ::windows_sys::core::HRESULT = 1074593880i32; +pub const NS_I_DISK_REBUILD_FINISHED: ::windows_sys::core::HRESULT = 1074593879i32; +pub const NS_I_DISK_REBUILD_STARTED: ::windows_sys::core::HRESULT = 1074593878i32; +pub const NS_I_DISK_START: ::windows_sys::core::HRESULT = 1074593876i32; +pub const NS_I_DISK_STOP: ::windows_sys::core::HRESULT = 1074594200i32; +pub const NS_I_EXISTING_PACKETIZER: ::windows_sys::core::HRESULT = 1074605827i32; +pub const NS_I_KILL_CONNECTION: ::windows_sys::core::HRESULT = 1074593886i32; +pub const NS_I_KILL_USERSESSION: ::windows_sys::core::HRESULT = 1074593885i32; +pub const NS_I_LIMIT_BANDWIDTH: ::windows_sys::core::HRESULT = 1074593904i32; +pub const NS_I_LIMIT_FUNNELS: ::windows_sys::core::HRESULT = 1074593881i32; +pub const NS_I_LOGGING_FAILED: ::windows_sys::core::HRESULT = 1074593902i32; +pub const NS_I_MANUAL_PROXY: ::windows_sys::core::HRESULT = 1074605828i32; +pub const NS_I_NOLOG_STOP: ::windows_sys::core::HRESULT = 1074605825i32; +pub const NS_I_PLAYLIST_CHANGE_RECEDING: ::windows_sys::core::HRESULT = 1074599102i32; +pub const NS_I_REBUILD_DISK: ::windows_sys::core::HRESULT = 1074593887i32; +pub const NS_I_RECONNECTED: ::windows_sys::core::HRESULT = 1074605823i32; +pub const NS_I_RESTRIPE_CUB_OUT: ::windows_sys::core::HRESULT = 1074594199i32; +pub const NS_I_RESTRIPE_DISK_OUT: ::windows_sys::core::HRESULT = 1074594198i32; +pub const NS_I_RESTRIPE_DONE: ::windows_sys::core::HRESULT = 1074594196i32; +pub const NS_I_RESTRIPE_START: ::windows_sys::core::HRESULT = 1074594195i32; +pub const NS_I_START_DISK: ::windows_sys::core::HRESULT = 1074593882i32; +pub const NS_I_STOP_CUB: ::windows_sys::core::HRESULT = 1074593884i32; +pub const NS_I_STOP_DISK: ::windows_sys::core::HRESULT = 1074593883i32; +pub const NS_I_TIGER_START: ::windows_sys::core::HRESULT = 1074593871i32; +pub const NS_S_CALLABORTED: ::windows_sys::core::HRESULT = 851969i32; +pub const NS_S_CALLPENDING: ::windows_sys::core::HRESULT = 851968i32; +pub const NS_S_CHANGENOTICE: ::windows_sys::core::HRESULT = 864013i32; +pub const NS_S_DEGRADING_QUALITY: ::windows_sys::core::HRESULT = 854985i32; +pub const NS_S_DRM_ACQUIRE_CANCELLED: ::windows_sys::core::HRESULT = 862023i32; +pub const NS_S_DRM_BURNABLE_TRACK: ::windows_sys::core::HRESULT = 862062i32; +pub const NS_S_DRM_BURNABLE_TRACK_WITH_PLAYLIST_RESTRICTION: ::windows_sys::core::HRESULT = 862063i32; +pub const NS_S_DRM_INDIVIDUALIZED: ::windows_sys::core::HRESULT = 861991i32; +pub const NS_S_DRM_LICENSE_ACQUIRED: ::windows_sys::core::HRESULT = 861990i32; +pub const NS_S_DRM_MONITOR_CANCELLED: ::windows_sys::core::HRESULT = 862022i32; +pub const NS_S_DRM_NEEDS_INDIVIDUALIZATION: ::windows_sys::core::HRESULT = 862174i32; +pub const NS_S_EOSRECEDING: ::windows_sys::core::HRESULT = 864009i32; +pub const NS_S_NAVIGATION_COMPLETE_WITH_ERRORS: ::windows_sys::core::HRESULT = 856926i32; +pub const NS_S_NEED_TO_BUY_BURN_RIGHTS: ::windows_sys::core::HRESULT = 856283i32; +pub const NS_S_OPERATION_PENDING: ::windows_sys::core::HRESULT = 856398i32; +pub const NS_S_PUBLISHING_POINT_STARTED_WITH_FAILED_SINKS: ::windows_sys::core::HRESULT = 857369i32; +pub const NS_S_REBOOT_RECOMMENDED: ::windows_sys::core::HRESULT = 862968i32; +pub const NS_S_REBOOT_REQUIRED: ::windows_sys::core::HRESULT = 862969i32; +pub const NS_S_REBUFFERING: ::windows_sys::core::HRESULT = 854984i32; +pub const NS_S_STREAM_TRUNCATED: ::windows_sys::core::HRESULT = 851970i32; +pub const NS_S_TRACK_ALREADY_DOWNLOADED: ::windows_sys::core::HRESULT = 856929i32; +pub const NS_S_TRACK_BUY_REQUIRES_ALBUM_PURCHASE: ::windows_sys::core::HRESULT = 856921i32; +pub const NS_S_TRANSCRYPTOR_EOF: ::windows_sys::core::HRESULT = 855003i32; +pub const NS_S_WMG_ADVISE_DROP_FRAME: ::windows_sys::core::HRESULT = 856166i32; +pub const NS_S_WMG_ADVISE_DROP_TO_KEYFRAME: ::windows_sys::core::HRESULT = 856167i32; +pub const NS_S_WMG_FORCE_DROP_FRAME: ::windows_sys::core::HRESULT = 856143i32; +pub const NS_S_WMPBR_PARTIALSUCCESS: ::windows_sys::core::HRESULT = 856374i32; +pub const NS_S_WMPBR_SUCCESS: ::windows_sys::core::HRESULT = 856373i32; +pub const NS_S_WMPCORE_COMMAND_NOT_AVAILABLE: ::windows_sys::core::HRESULT = 856325i32; +pub const NS_S_WMPCORE_MEDIA_CHILD_PLAYLIST_OPEN_PENDING: ::windows_sys::core::HRESULT = 856329i32; +pub const NS_S_WMPCORE_MEDIA_VALIDATION_PENDING: ::windows_sys::core::HRESULT = 856323i32; +pub const NS_S_WMPCORE_MORE_NODES_AVAIABLE: ::windows_sys::core::HRESULT = 856330i32; +pub const NS_S_WMPCORE_PLAYLISTCLEARABORT: ::windows_sys::core::HRESULT = 856318i32; +pub const NS_S_WMPCORE_PLAYLISTREMOVEITEMABORT: ::windows_sys::core::HRESULT = 856319i32; +pub const NS_S_WMPCORE_PLAYLIST_COLLAPSED_TO_SINGLE_MEDIA: ::windows_sys::core::HRESULT = 856328i32; +pub const NS_S_WMPCORE_PLAYLIST_CREATION_PENDING: ::windows_sys::core::HRESULT = 856322i32; +pub const NS_S_WMPCORE_PLAYLIST_IMPORT_MISSING_ITEMS: ::windows_sys::core::HRESULT = 856327i32; +pub const NS_S_WMPCORE_PLAYLIST_NAME_AUTO_GENERATED: ::windows_sys::core::HRESULT = 856326i32; +pub const NS_S_WMPCORE_PLAYLIST_REPEAT_SECONDARY_SEGMENTS_IGNORED: ::windows_sys::core::HRESULT = 856324i32; +pub const NS_S_WMPEFFECT_OPAQUE: ::windows_sys::core::HRESULT = 856389i32; +pub const NS_S_WMPEFFECT_TRANSPARENT: ::windows_sys::core::HRESULT = 856388i32; +pub const NS_S_WMP_EXCEPTION: ::windows_sys::core::HRESULT = 856041i32; +pub const NS_S_WMP_LOADED_BMP_IMAGE: ::windows_sys::core::HRESULT = 856130i32; +pub const NS_S_WMP_LOADED_GIF_IMAGE: ::windows_sys::core::HRESULT = 856128i32; +pub const NS_S_WMP_LOADED_JPG_IMAGE: ::windows_sys::core::HRESULT = 856131i32; +pub const NS_S_WMP_LOADED_PNG_IMAGE: ::windows_sys::core::HRESULT = 856129i32; +pub const NS_S_WMP_UI_VERSIONMISMATCH: ::windows_sys::core::HRESULT = 856040i32; +pub const NS_S_WMR_ALREADYRENDERED: ::windows_sys::core::HRESULT = 856159i32; +pub const NS_S_WMR_PINTYPEFULLMATCH: ::windows_sys::core::HRESULT = 856161i32; +pub const NS_S_WMR_PINTYPEPARTIALMATCH: ::windows_sys::core::HRESULT = 856160i32; +pub const NS_W_FILE_BANDWIDTH_LIMIT: ::windows_sys::core::HRESULT = -2146631676i32; +pub const NS_W_SERVER_BANDWIDTH_LIMIT: ::windows_sys::core::HRESULT = -2146631677i32; +pub const NS_W_UNKNOWN_EVENT: ::windows_sys::core::HRESULT = -2146631584i32; +pub const PD_CAN_DRAW_DIB: u32 = 1u32; +pub const PD_CAN_STRETCHDIB: u32 = 2u32; +pub const PD_STRETCHDIB_1_1_OK: u32 = 4u32; +pub const PD_STRETCHDIB_1_2_OK: u32 = 8u32; +pub const PD_STRETCHDIB_1_N_OK: u32 = 16u32; +pub const ROCKWELL_WA1_MIXER: u32 = 103u32; +pub const ROCKWELL_WA1_MPU401_IN: u32 = 104u32; +pub const ROCKWELL_WA1_MPU401_OUT: u32 = 105u32; +pub const ROCKWELL_WA1_SYNTH: u32 = 102u32; +pub const ROCKWELL_WA1_WAVEIN: u32 = 100u32; +pub const ROCKWELL_WA1_WAVEOUT: u32 = 101u32; +pub const ROCKWELL_WA2_MIXER: u32 = 203u32; +pub const ROCKWELL_WA2_MPU401_IN: u32 = 204u32; +pub const ROCKWELL_WA2_MPU401_OUT: u32 = 205u32; +pub const ROCKWELL_WA2_SYNTH: u32 = 202u32; +pub const ROCKWELL_WA2_WAVEIN: u32 = 200u32; +pub const ROCKWELL_WA2_WAVEOUT: u32 = 201u32; +pub const SEARCH_ANY: i32 = 32i32; +pub const SEARCH_BACKWARD: i32 = 4i32; +pub const SEARCH_FORWARD: i32 = 1i32; +pub const SEARCH_KEY: i32 = 16i32; +pub const SEARCH_NEAREST: i32 = 4i32; +pub const SEEK_CUR: u32 = 1u32; +pub const SEEK_END: u32 = 2u32; +pub const SEEK_SET: u32 = 0u32; +pub const TARGET_DEVICE_FRIENDLY_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("TargetDeviceFriendlyName"); +pub const TARGET_DEVICE_OPEN_EXCLUSIVELY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("TargetDeviceOpenExclusively"); +pub const TASKERR_NOTASKSUPPORT: u32 = 1u32; +pub const TASKERR_OUTOFMEMORY: u32 = 2u32; +pub const TDD_BEGINMINPERIOD: u32 = 2064u32; +pub const TDD_ENDMINPERIOD: u32 = 2068u32; +pub const TDD_GETDEVCAPS: u32 = 2060u32; +pub const TDD_GETSYSTEMTIME: u32 = 2056u32; +pub const TDD_KILLTIMEREVENT: u32 = 2048u32; +pub const TDD_SETTIMEREVENT: u32 = 2052u32; +pub const VADMAD_Device_ID: u32 = 1092u32; +pub const VCAPS_CAN_SCALE: u32 = 8u32; +pub const VCAPS_DST_CAN_CLIP: u32 = 4u32; +pub const VCAPS_OVERLAY: u32 = 1u32; +pub const VCAPS_SRC_CAN_CLIP: u32 = 2u32; +pub const VFW_HIDE_CAMERACONTROL_PAGE: u32 = 4u32; +pub const VFW_HIDE_SETTINGS_PAGE: u32 = 1u32; +pub const VFW_HIDE_VIDEOSRC_PAGE: u32 = 2u32; +pub const VFW_OEM_ADD_PAGE: u32 = 2147483648u32; +pub const VFW_QUERY_DEV_CHANGED: u32 = 256u32; +pub const VFW_USE_DEVICE_HANDLE: u32 = 1u32; +pub const VFW_USE_STREAM_HANDLE: u32 = 2u32; +pub const VHDR_DONE: u32 = 1u32; +pub const VHDR_INQUEUE: u32 = 4u32; +pub const VHDR_KEYFRAME: u32 = 8u32; +pub const VHDR_PREPARED: u32 = 2u32; +pub const VHDR_VALID: u32 = 15u32; +pub const VIDCF_COMPRESSFRAMES: u32 = 8u32; +pub const VIDCF_CRUNCH: u32 = 2u32; +pub const VIDCF_DRAW: u32 = 16u32; +pub const VIDCF_FASTTEMPORALC: u32 = 32u32; +pub const VIDCF_FASTTEMPORALD: u32 = 128u32; +pub const VIDCF_QUALITY: u32 = 1u32; +pub const VIDCF_TEMPORAL: u32 = 4u32; +pub const VIDEO_CONFIGURE_CURRENT: u32 = 16u32; +pub const VIDEO_CONFIGURE_GET: u32 = 8192u32; +pub const VIDEO_CONFIGURE_MAX: u32 = 128u32; +pub const VIDEO_CONFIGURE_MIN: u32 = 64u32; +pub const VIDEO_CONFIGURE_NOMINAL: u32 = 32u32; +pub const VIDEO_CONFIGURE_QUERY: u32 = 32768u32; +pub const VIDEO_CONFIGURE_QUERYSIZE: u32 = 1u32; +pub const VIDEO_CONFIGURE_SET: u32 = 4096u32; +pub const VIDEO_DLG_QUERY: u32 = 16u32; +pub const VIDEO_EXTERNALIN: u32 = 1u32; +pub const VIDEO_EXTERNALOUT: u32 = 2u32; +pub const VIDEO_IN: u32 = 4u32; +pub const VIDEO_OUT: u32 = 8u32; +pub const VP_COMMAND_GET: u32 = 1u32; +pub const VP_COMMAND_SET: u32 = 2u32; +pub const VP_CP_CMD_ACTIVATE: u32 = 1u32; +pub const VP_CP_CMD_CHANGE: u32 = 4u32; +pub const VP_CP_CMD_DEACTIVATE: u32 = 2u32; +pub const VP_CP_TYPE_APS_TRIGGER: u32 = 1u32; +pub const VP_CP_TYPE_MACROVISION: u32 = 2u32; +pub const VP_FLAGS_BRIGHTNESS: u32 = 64u32; +pub const VP_FLAGS_CONTRAST: u32 = 128u32; +pub const VP_FLAGS_COPYPROTECT: u32 = 256u32; +pub const VP_FLAGS_FLICKER: u32 = 4u32; +pub const VP_FLAGS_MAX_UNSCALED: u32 = 16u32; +pub const VP_FLAGS_OVERSCAN: u32 = 8u32; +pub const VP_FLAGS_POSITION: u32 = 32u32; +pub const VP_FLAGS_TV_MODE: u32 = 1u32; +pub const VP_FLAGS_TV_STANDARD: u32 = 2u32; +pub const VP_MODE_TV_PLAYBACK: u32 = 2u32; +pub const VP_MODE_WIN_GRAPHICS: u32 = 1u32; +pub const VP_TV_STANDARD_NTSC_433: u32 = 65536u32; +pub const VP_TV_STANDARD_NTSC_M: u32 = 1u32; +pub const VP_TV_STANDARD_NTSC_M_J: u32 = 2u32; +pub const VP_TV_STANDARD_PAL_60: u32 = 262144u32; +pub const VP_TV_STANDARD_PAL_B: u32 = 4u32; +pub const VP_TV_STANDARD_PAL_D: u32 = 8u32; +pub const VP_TV_STANDARD_PAL_G: u32 = 131072u32; +pub const VP_TV_STANDARD_PAL_H: u32 = 16u32; +pub const VP_TV_STANDARD_PAL_I: u32 = 32u32; +pub const VP_TV_STANDARD_PAL_M: u32 = 64u32; +pub const VP_TV_STANDARD_PAL_N: u32 = 128u32; +pub const VP_TV_STANDARD_SECAM_B: u32 = 256u32; +pub const VP_TV_STANDARD_SECAM_D: u32 = 512u32; +pub const VP_TV_STANDARD_SECAM_G: u32 = 1024u32; +pub const VP_TV_STANDARD_SECAM_H: u32 = 2048u32; +pub const VP_TV_STANDARD_SECAM_K: u32 = 4096u32; +pub const VP_TV_STANDARD_SECAM_K1: u32 = 8192u32; +pub const VP_TV_STANDARD_SECAM_L: u32 = 16384u32; +pub const VP_TV_STANDARD_SECAM_L1: u32 = 524288u32; +pub const VP_TV_STANDARD_WIN_VGA: u32 = 32768u32; +pub const WAVE_FILTER_DEVELOPMENT: u32 = 65535u32; +pub const WAVE_FILTER_ECHO: u32 = 2u32; +pub const WAVE_FILTER_UNKNOWN: u32 = 0u32; +pub const WAVE_FILTER_VOLUME: u32 = 1u32; +pub const WAVE_FORMAT_3COM_NBX: u32 = 28672u32; +pub const WAVE_FORMAT_ADPCM: u32 = 2u32; +pub const WAVE_FORMAT_ALAC: u32 = 27745u32; +pub const WAVE_FORMAT_ALAW: u32 = 6u32; +pub const WAVE_FORMAT_AMR_NB: u32 = 29537u32; +pub const WAVE_FORMAT_AMR_WB: u32 = 29538u32; +pub const WAVE_FORMAT_AMR_WP: u32 = 29539u32; +pub const WAVE_FORMAT_ANTEX_ADPCME: u32 = 51u32; +pub const WAVE_FORMAT_APTX: u32 = 37u32; +pub const WAVE_FORMAT_AUDIOFILE_AF10: u32 = 38u32; +pub const WAVE_FORMAT_AUDIOFILE_AF36: u32 = 36u32; +pub const WAVE_FORMAT_BTV_DIGITAL: u32 = 1024u32; +pub const WAVE_FORMAT_CANOPUS_ATRAC: u32 = 99u32; +pub const WAVE_FORMAT_CIRRUS: u32 = 96u32; +pub const WAVE_FORMAT_CODIAN: u32 = 41252u32; +pub const WAVE_FORMAT_COMVERSE_INFOSYS_AVQSBC: u32 = 41217u32; +pub const WAVE_FORMAT_COMVERSE_INFOSYS_G723_1: u32 = 41216u32; +pub const WAVE_FORMAT_COMVERSE_INFOSYS_SBC: u32 = 41218u32; +pub const WAVE_FORMAT_CONGRUENCY: u32 = 141u32; +pub const WAVE_FORMAT_CONTROL_RES_CR10: u32 = 55u32; +pub const WAVE_FORMAT_CONTROL_RES_VQLPC: u32 = 52u32; +pub const WAVE_FORMAT_CONVEDIA_G729: u32 = 140u32; +pub const WAVE_FORMAT_CREATIVE_ADPCM: u32 = 512u32; +pub const WAVE_FORMAT_CREATIVE_FASTSPEECH10: u32 = 515u32; +pub const WAVE_FORMAT_CREATIVE_FASTSPEECH8: u32 = 514u32; +pub const WAVE_FORMAT_CS2: u32 = 608u32; +pub const WAVE_FORMAT_CS_IMAADPCM: u32 = 57u32; +pub const WAVE_FORMAT_CUSEEME: u32 = 7939u32; +pub const WAVE_FORMAT_CU_CODEC: u32 = 25u32; +pub const WAVE_FORMAT_DEVELOPMENT: u32 = 65535u32; +pub const WAVE_FORMAT_DF_G726: u32 = 133u32; +pub const WAVE_FORMAT_DF_GSM610: u32 = 134u32; +pub const WAVE_FORMAT_DIALOGIC_OKI_ADPCM: u32 = 23u32; +pub const WAVE_FORMAT_DICTAPHONE_CELP54: u32 = 322u32; +pub const WAVE_FORMAT_DICTAPHONE_CELP68: u32 = 321u32; +pub const WAVE_FORMAT_DIGIADPCM: u32 = 54u32; +pub const WAVE_FORMAT_DIGIFIX: u32 = 22u32; +pub const WAVE_FORMAT_DIGIREAL: u32 = 53u32; +pub const WAVE_FORMAT_DIGISTD: u32 = 21u32; +pub const WAVE_FORMAT_DIGITAL_G723: u32 = 291u32; +pub const WAVE_FORMAT_DIVIO_G726: u32 = 16963u32; +pub const WAVE_FORMAT_DIVIO_MPEG4_AAC: u32 = 16707u32; +pub const WAVE_FORMAT_DOLBY_AC2: u32 = 48u32; +pub const WAVE_FORMAT_DOLBY_AC3_SPDIF: u32 = 146u32; +pub const WAVE_FORMAT_DOLBY_AC4: u32 = 44096u32; +pub const WAVE_FORMAT_DRM: u32 = 9u32; +pub const WAVE_FORMAT_DSAT: u32 = 102u32; +pub const WAVE_FORMAT_DSAT_DISPLAY: u32 = 103u32; +pub const WAVE_FORMAT_DSPGROUP_TRUESPEECH: u32 = 34u32; +pub const WAVE_FORMAT_DTS: u32 = 8u32; +pub const WAVE_FORMAT_DTS2: u32 = 8193u32; +pub const WAVE_FORMAT_DTS_DS: u32 = 400u32; +pub const WAVE_FORMAT_DVI_ADPCM: u32 = 17u32; +pub const WAVE_FORMAT_DVM: u32 = 8192u32; +pub const WAVE_FORMAT_ECHOSC1: u32 = 35u32; +pub const WAVE_FORMAT_ECHOSC3: u32 = 58u32; +pub const WAVE_FORMAT_ENCORE_G726: u32 = 41223u32; +pub const WAVE_FORMAT_ESPCM: u32 = 97u32; +pub const WAVE_FORMAT_ESST_AC3: u32 = 577u32; +pub const WAVE_FORMAT_FAAD_AAC: u32 = 28781u32; +pub const WAVE_FORMAT_FLAC: u32 = 61868u32; +pub const WAVE_FORMAT_FM_TOWNS_SND: u32 = 768u32; +pub const WAVE_FORMAT_FRACE_TELECOM_G729: u32 = 41251u32; +pub const WAVE_FORMAT_FRAUNHOFER_IIS_MPEG2_AAC: u32 = 384u32; +pub const WAVE_FORMAT_G721_ADPCM: u32 = 64u32; +pub const WAVE_FORMAT_G722_ADPCM: u32 = 101u32; +pub const WAVE_FORMAT_G723_ADPCM: u32 = 20u32; +pub const WAVE_FORMAT_G726ADPCM: u32 = 320u32; +pub const WAVE_FORMAT_G726_ADPCM: u32 = 100u32; +pub const WAVE_FORMAT_G728_CELP: u32 = 65u32; +pub const WAVE_FORMAT_G729A: u32 = 131u32; +pub const WAVE_FORMAT_GENERIC_PASSTHRU: u32 = 585u32; +pub const WAVE_FORMAT_GLOBAL_IP_ILBC: u32 = 41238u32; +pub const WAVE_FORMAT_GSM610: u32 = 49u32; +pub const WAVE_FORMAT_GSM_610: u32 = 41229u32; +pub const WAVE_FORMAT_GSM_620: u32 = 41230u32; +pub const WAVE_FORMAT_GSM_660: u32 = 41231u32; +pub const WAVE_FORMAT_GSM_690: u32 = 41232u32; +pub const WAVE_FORMAT_GSM_ADAPTIVE_MULTIRATE_WB: u32 = 41233u32; +pub const WAVE_FORMAT_GSM_AMR_CBR: u32 = 31265u32; +pub const WAVE_FORMAT_GSM_AMR_VBR_SID: u32 = 31266u32; +pub const WAVE_FORMAT_HP_DYN_VOICE: u32 = 26u32; +pub const WAVE_FORMAT_IBM_CVSD: u32 = 5u32; +pub const WAVE_FORMAT_IEEE_FLOAT: u32 = 3u32; +pub const WAVE_FORMAT_ILINK_VC: u32 = 560u32; +pub const WAVE_FORMAT_IMA_ADPCM: u32 = 17u32; +pub const WAVE_FORMAT_INDEO_AUDIO: u32 = 1026u32; +pub const WAVE_FORMAT_INFOCOM_ITS_G721_ADPCM: u32 = 139u32; +pub const WAVE_FORMAT_INGENIENT_G726: u32 = 41221u32; +pub const WAVE_FORMAT_INNINGS_TELECOM_ADPCM: u32 = 6521u32; +pub const WAVE_FORMAT_INTEL_G723_1: u32 = 67u32; +pub const WAVE_FORMAT_INTEL_G729: u32 = 68u32; +pub const WAVE_FORMAT_INTEL_MUSIC_CODER: u32 = 1025u32; +pub const WAVE_FORMAT_IPI_HSX: u32 = 592u32; +pub const WAVE_FORMAT_IPI_RPELP: u32 = 593u32; +pub const WAVE_FORMAT_IRAT: u32 = 257u32; +pub const WAVE_FORMAT_ISIAUDIO: u32 = 136u32; +pub const WAVE_FORMAT_ISIAUDIO_2: u32 = 5121u32; +pub const WAVE_FORMAT_KNOWLEDGE_ADVENTURE_ADPCM: u32 = 376u32; +pub const WAVE_FORMAT_LEAD_SPEECH: u32 = 17228u32; +pub const WAVE_FORMAT_LEAD_VORBIS: u32 = 22092u32; +pub const WAVE_FORMAT_LH_CODEC: u32 = 4352u32; +pub const WAVE_FORMAT_LH_CODEC_CELP: u32 = 4353u32; +pub const WAVE_FORMAT_LH_CODEC_SBC12: u32 = 4355u32; +pub const WAVE_FORMAT_LH_CODEC_SBC16: u32 = 4356u32; +pub const WAVE_FORMAT_LH_CODEC_SBC8: u32 = 4354u32; +pub const WAVE_FORMAT_LIGHTWAVE_LOSSLESS: u32 = 2222u32; +pub const WAVE_FORMAT_LRC: u32 = 40u32; +pub const WAVE_FORMAT_LUCENT_G723: u32 = 89u32; +pub const WAVE_FORMAT_LUCENT_SX5363S: u32 = 7180u32; +pub const WAVE_FORMAT_LUCENT_SX8300P: u32 = 7175u32; +pub const WAVE_FORMAT_MAKEAVIS: u32 = 13075u32; +pub const WAVE_FORMAT_MALDEN_PHONYTALK: u32 = 160u32; +pub const WAVE_FORMAT_MEDIASONIC_G723: u32 = 147u32; +pub const WAVE_FORMAT_MEDIASPACE_ADPCM: u32 = 18u32; +pub const WAVE_FORMAT_MEDIAVISION_ADPCM: u32 = 24u32; +pub const WAVE_FORMAT_MICRONAS: u32 = 848u32; +pub const WAVE_FORMAT_MICRONAS_CELP833: u32 = 849u32; +pub const WAVE_FORMAT_MPEG: u32 = 80u32; +pub const WAVE_FORMAT_MPEG4_AAC: u32 = 41222u32; +pub const WAVE_FORMAT_MPEGLAYER3: u32 = 85u32; +pub const WAVE_FORMAT_MPEG_ADTS_AAC: u32 = 5632u32; +pub const WAVE_FORMAT_MPEG_HEAAC: u32 = 5648u32; +pub const WAVE_FORMAT_MPEG_LOAS: u32 = 5634u32; +pub const WAVE_FORMAT_MPEG_RAW_AAC: u32 = 5633u32; +pub const WAVE_FORMAT_MSAUDIO1: u32 = 352u32; +pub const WAVE_FORMAT_MSG723: u32 = 66u32; +pub const WAVE_FORMAT_MSNAUDIO: u32 = 50u32; +pub const WAVE_FORMAT_MSRT24: u32 = 130u32; +pub const WAVE_FORMAT_MULAW: u32 = 7u32; +pub const WAVE_FORMAT_MULTITUDE_FT_SX20: u32 = 138u32; +pub const WAVE_FORMAT_MVI_MVI2: u32 = 132u32; +pub const WAVE_FORMAT_NEC_AAC: u32 = 176u32; +pub const WAVE_FORMAT_NICE_ACA: u32 = 41240u32; +pub const WAVE_FORMAT_NICE_ADPCM: u32 = 41241u32; +pub const WAVE_FORMAT_NICE_G728: u32 = 41250u32; +pub const WAVE_FORMAT_NMS_VBXADPCM: u32 = 56u32; +pub const WAVE_FORMAT_NOKIA_ADAPTIVE_MULTIRATE: u32 = 16897u32; +pub const WAVE_FORMAT_NOKIA_MPEG_ADTS_AAC: u32 = 5640u32; +pub const WAVE_FORMAT_NOKIA_MPEG_RAW_AAC: u32 = 5641u32; +pub const WAVE_FORMAT_NORCOM_VOICE_SYSTEMS_ADPCM: u32 = 645u32; +pub const WAVE_FORMAT_NORRIS: u32 = 5120u32; +pub const WAVE_FORMAT_NTCSOFT_ALF2CM_ACM: u32 = 8132u32; +pub const WAVE_FORMAT_OGG_VORBIS_MODE_1: u32 = 26447u32; +pub const WAVE_FORMAT_OGG_VORBIS_MODE_1_PLUS: u32 = 26479u32; +pub const WAVE_FORMAT_OGG_VORBIS_MODE_2: u32 = 26448u32; +pub const WAVE_FORMAT_OGG_VORBIS_MODE_2_PLUS: u32 = 26480u32; +pub const WAVE_FORMAT_OGG_VORBIS_MODE_3: u32 = 26449u32; +pub const WAVE_FORMAT_OGG_VORBIS_MODE_3_PLUS: u32 = 26481u32; +pub const WAVE_FORMAT_OKI_ADPCM: u32 = 16u32; +pub const WAVE_FORMAT_OLIADPCM: u32 = 4097u32; +pub const WAVE_FORMAT_OLICELP: u32 = 4098u32; +pub const WAVE_FORMAT_OLIGSM: u32 = 4096u32; +pub const WAVE_FORMAT_OLIOPR: u32 = 4100u32; +pub const WAVE_FORMAT_OLISBC: u32 = 4099u32; +pub const WAVE_FORMAT_ON2_VP6_AUDIO: u32 = 1281u32; +pub const WAVE_FORMAT_ON2_VP7_AUDIO: u32 = 1280u32; +pub const WAVE_FORMAT_ONLIVE: u32 = 137u32; +pub const WAVE_FORMAT_OPUS: u32 = 28751u32; +pub const WAVE_FORMAT_PAC: u32 = 83u32; +pub const WAVE_FORMAT_PACKED: u32 = 153u32; +pub const WAVE_FORMAT_PCM_S: u32 = 1152u32; +pub const WAVE_FORMAT_PHILIPS_CELP: u32 = 288u32; +pub const WAVE_FORMAT_PHILIPS_GRUNDIG: u32 = 289u32; +pub const WAVE_FORMAT_PHILIPS_LPCBB: u32 = 152u32; +pub const WAVE_FORMAT_POLYCOM_G722: u32 = 41234u32; +pub const WAVE_FORMAT_POLYCOM_G728: u32 = 41235u32; +pub const WAVE_FORMAT_POLYCOM_G729_A: u32 = 41236u32; +pub const WAVE_FORMAT_POLYCOM_SIREN: u32 = 41237u32; +pub const WAVE_FORMAT_PROSODY_1612: u32 = 39u32; +pub const WAVE_FORMAT_PROSODY_8KBPS: u32 = 148u32; +pub const WAVE_FORMAT_QDESIGN_MUSIC: u32 = 1104u32; +pub const WAVE_FORMAT_QUALCOMM_HALFRATE: u32 = 337u32; +pub const WAVE_FORMAT_QUALCOMM_PUREVOICE: u32 = 336u32; +pub const WAVE_FORMAT_QUARTERDECK: u32 = 544u32; +pub const WAVE_FORMAT_RACAL_RECORDER_G720_A: u32 = 162u32; +pub const WAVE_FORMAT_RACAL_RECORDER_G723_1: u32 = 163u32; +pub const WAVE_FORMAT_RACAL_RECORDER_GSM: u32 = 161u32; +pub const WAVE_FORMAT_RACAL_RECORDER_TETRA_ACELP: u32 = 164u32; +pub const WAVE_FORMAT_RADIOTIME_TIME_SHIFT_RADIO: u32 = 41239u32; +pub const WAVE_FORMAT_RAW_AAC1: u32 = 255u32; +pub const WAVE_FORMAT_RAW_SPORT: u32 = 576u32; +pub const WAVE_FORMAT_RHETOREX_ADPCM: u32 = 256u32; +pub const WAVE_FORMAT_ROCKWELL_ADPCM: u32 = 59u32; +pub const WAVE_FORMAT_ROCKWELL_DIGITALK: u32 = 60u32; +pub const WAVE_FORMAT_RT24: u32 = 82u32; +pub const WAVE_FORMAT_SANYO_LD_ADPCM: u32 = 293u32; +pub const WAVE_FORMAT_SBC24: u32 = 145u32; +pub const WAVE_FORMAT_SHARP_G726: u32 = 69u32; +pub const WAVE_FORMAT_SIERRA_ADPCM: u32 = 19u32; +pub const WAVE_FORMAT_SIPROLAB_ACELP4800: u32 = 305u32; +pub const WAVE_FORMAT_SIPROLAB_ACELP8V3: u32 = 306u32; +pub const WAVE_FORMAT_SIPROLAB_ACEPLNET: u32 = 304u32; +pub const WAVE_FORMAT_SIPROLAB_G729: u32 = 307u32; +pub const WAVE_FORMAT_SIPROLAB_G729A: u32 = 308u32; +pub const WAVE_FORMAT_SIPROLAB_KELVIN: u32 = 309u32; +pub const WAVE_FORMAT_SOFTSOUND: u32 = 128u32; +pub const WAVE_FORMAT_SONARC: u32 = 33u32; +pub const WAVE_FORMAT_SONICFOUNDRY_LOSSLESS: u32 = 6513u32; +pub const WAVE_FORMAT_SONY_ATRAC3: u32 = 626u32; +pub const WAVE_FORMAT_SONY_SCX: u32 = 624u32; +pub const WAVE_FORMAT_SONY_SCY: u32 = 625u32; +pub const WAVE_FORMAT_SONY_SPC: u32 = 627u32; +pub const WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS: u32 = 5376u32; +pub const WAVE_FORMAT_SPEEX_VOICE: u32 = 41225u32; +pub const WAVE_FORMAT_SYCOM_ACM_SYC008: u32 = 372u32; +pub const WAVE_FORMAT_SYCOM_ACM_SYC701_CELP54: u32 = 374u32; +pub const WAVE_FORMAT_SYCOM_ACM_SYC701_CELP68: u32 = 375u32; +pub const WAVE_FORMAT_SYCOM_ACM_SYC701_G726L: u32 = 373u32; +pub const WAVE_FORMAT_SYMBOL_G729_A: u32 = 41219u32; +pub const WAVE_FORMAT_TELUM_AUDIO: u32 = 640u32; +pub const WAVE_FORMAT_TELUM_IA_AUDIO: u32 = 641u32; +pub const WAVE_FORMAT_TPC: u32 = 1665u32; +pub const WAVE_FORMAT_TUBGSM: u32 = 341u32; +pub const WAVE_FORMAT_UHER_ADPCM: u32 = 528u32; +pub const WAVE_FORMAT_ULEAD_DV_AUDIO: u32 = 533u32; +pub const WAVE_FORMAT_ULEAD_DV_AUDIO_1: u32 = 534u32; +pub const WAVE_FORMAT_UNISYS_NAP_16K: u32 = 371u32; +pub const WAVE_FORMAT_UNISYS_NAP_ADPCM: u32 = 368u32; +pub const WAVE_FORMAT_UNISYS_NAP_ALAW: u32 = 370u32; +pub const WAVE_FORMAT_UNISYS_NAP_ULAW: u32 = 369u32; +pub const WAVE_FORMAT_UNKNOWN: u32 = 0u32; +pub const WAVE_FORMAT_VIANIX_MASC: u32 = 41226u32; +pub const WAVE_FORMAT_VIVO_G723: u32 = 273u32; +pub const WAVE_FORMAT_VIVO_SIREN: u32 = 274u32; +pub const WAVE_FORMAT_VME_VMPCM: u32 = 1664u32; +pub const WAVE_FORMAT_VOCORD_G721: u32 = 41242u32; +pub const WAVE_FORMAT_VOCORD_G722_1: u32 = 41244u32; +pub const WAVE_FORMAT_VOCORD_G723_1: u32 = 41248u32; +pub const WAVE_FORMAT_VOCORD_G726: u32 = 41243u32; +pub const WAVE_FORMAT_VOCORD_G728: u32 = 41245u32; +pub const WAVE_FORMAT_VOCORD_G729: u32 = 41246u32; +pub const WAVE_FORMAT_VOCORD_G729_A: u32 = 41247u32; +pub const WAVE_FORMAT_VOCORD_LBC: u32 = 41249u32; +pub const WAVE_FORMAT_VODAFONE_MPEG_ADTS_AAC: u32 = 5642u32; +pub const WAVE_FORMAT_VODAFONE_MPEG_RAW_AAC: u32 = 5643u32; +pub const WAVE_FORMAT_VOICEAGE_AMR: u32 = 310u32; +pub const WAVE_FORMAT_VOICEAGE_AMR_WB: u32 = 41220u32; +pub const WAVE_FORMAT_VOXWARE: u32 = 98u32; +pub const WAVE_FORMAT_VOXWARE_AC10: u32 = 113u32; +pub const WAVE_FORMAT_VOXWARE_AC16: u32 = 114u32; +pub const WAVE_FORMAT_VOXWARE_AC20: u32 = 115u32; +pub const WAVE_FORMAT_VOXWARE_AC8: u32 = 112u32; +pub const WAVE_FORMAT_VOXWARE_BYTE_ALIGNED: u32 = 105u32; +pub const WAVE_FORMAT_VOXWARE_RT24: u32 = 116u32; +pub const WAVE_FORMAT_VOXWARE_RT24_SPEECH: u32 = 6172u32; +pub const WAVE_FORMAT_VOXWARE_RT29: u32 = 117u32; +pub const WAVE_FORMAT_VOXWARE_RT29HW: u32 = 118u32; +pub const WAVE_FORMAT_VOXWARE_SC3: u32 = 122u32; +pub const WAVE_FORMAT_VOXWARE_SC3_1: u32 = 123u32; +pub const WAVE_FORMAT_VOXWARE_TQ40: u32 = 121u32; +pub const WAVE_FORMAT_VOXWARE_TQ60: u32 = 129u32; +pub const WAVE_FORMAT_VOXWARE_VR12: u32 = 119u32; +pub const WAVE_FORMAT_VOXWARE_VR18: u32 = 120u32; +pub const WAVE_FORMAT_VSELP: u32 = 4u32; +pub const WAVE_FORMAT_WAVPACK_AUDIO: u32 = 22358u32; +pub const WAVE_FORMAT_WM9_SPECTRUM_ANALYZER: u32 = 41227u32; +pub const WAVE_FORMAT_WMASPDIF: u32 = 356u32; +pub const WAVE_FORMAT_WMAUDIO2: u32 = 353u32; +pub const WAVE_FORMAT_WMAUDIO3: u32 = 354u32; +pub const WAVE_FORMAT_WMAUDIO_LOSSLESS: u32 = 355u32; +pub const WAVE_FORMAT_WMAVOICE10: u32 = 11u32; +pub const WAVE_FORMAT_WMAVOICE9: u32 = 10u32; +pub const WAVE_FORMAT_WMF_SPECTRUM_ANAYZER: u32 = 41228u32; +pub const WAVE_FORMAT_XEBEC: u32 = 61u32; +pub const WAVE_FORMAT_YAMAHA_ADPCM: u32 = 32u32; +pub const WAVE_FORMAT_ZOLL_ASAO: u32 = 41224u32; +pub const WAVE_FORMAT_ZYXEL_ADPCM: u32 = 151u32; +pub const WAVE_MAPPER_S: u32 = 1153u32; +pub const WIDM_ADDBUFFER: u32 = 56u32; +pub const WIDM_CLOSE: u32 = 53u32; +pub const WIDM_GETDEVCAPS: u32 = 51u32; +pub const WIDM_GETNUMDEVS: u32 = 50u32; +pub const WIDM_GETPOS: u32 = 60u32; +pub const WIDM_INIT: u32 = 100u32; +pub const WIDM_INIT_EX: u32 = 104u32; +pub const WIDM_OPEN: u32 = 52u32; +pub const WIDM_PREFERRED: u32 = 61u32; +pub const WIDM_PREPARE: u32 = 54u32; +pub const WIDM_RESET: u32 = 59u32; +pub const WIDM_START: u32 = 57u32; +pub const WIDM_STOP: u32 = 58u32; +pub const WIDM_UNPREPARE: u32 = 55u32; +pub const WMAUDIO2_BITS_PER_SAMPLE: u32 = 16u32; +pub const WMAUDIO2_MAX_CHANNELS: u32 = 2u32; +pub const WMAUDIO_BITS_PER_SAMPLE: u32 = 16u32; +pub const WMAUDIO_MAX_CHANNELS: u32 = 2u32; +pub const WM_CAP_ABORT: u32 = 1093u32; +pub const WM_CAP_DLG_VIDEOCOMPRESSION: u32 = 1070u32; +pub const WM_CAP_DLG_VIDEODISPLAY: u32 = 1067u32; +pub const WM_CAP_DLG_VIDEOFORMAT: u32 = 1065u32; +pub const WM_CAP_DLG_VIDEOSOURCE: u32 = 1066u32; +pub const WM_CAP_DRIVER_CONNECT: u32 = 1034u32; +pub const WM_CAP_DRIVER_DISCONNECT: u32 = 1035u32; +pub const WM_CAP_DRIVER_GET_CAPS: u32 = 1038u32; +pub const WM_CAP_DRIVER_GET_NAME: u32 = 1136u32; +pub const WM_CAP_DRIVER_GET_NAMEA: u32 = 1036u32; +pub const WM_CAP_DRIVER_GET_NAMEW: u32 = 1136u32; +pub const WM_CAP_DRIVER_GET_VERSION: u32 = 1137u32; +pub const WM_CAP_DRIVER_GET_VERSIONA: u32 = 1037u32; +pub const WM_CAP_DRIVER_GET_VERSIONW: u32 = 1137u32; +pub const WM_CAP_EDIT_COPY: u32 = 1054u32; +pub const WM_CAP_END: u32 = 1205u32; +pub const WM_CAP_FILE_ALLOCATE: u32 = 1046u32; +pub const WM_CAP_FILE_GET_CAPTURE_FILE: u32 = 1145u32; +pub const WM_CAP_FILE_GET_CAPTURE_FILEA: u32 = 1045u32; +pub const WM_CAP_FILE_GET_CAPTURE_FILEW: u32 = 1145u32; +pub const WM_CAP_FILE_SAVEAS: u32 = 1147u32; +pub const WM_CAP_FILE_SAVEASA: u32 = 1047u32; +pub const WM_CAP_FILE_SAVEASW: u32 = 1147u32; +pub const WM_CAP_FILE_SAVEDIB: u32 = 1149u32; +pub const WM_CAP_FILE_SAVEDIBA: u32 = 1049u32; +pub const WM_CAP_FILE_SAVEDIBW: u32 = 1149u32; +pub const WM_CAP_FILE_SET_CAPTURE_FILE: u32 = 1144u32; +pub const WM_CAP_FILE_SET_CAPTURE_FILEA: u32 = 1044u32; +pub const WM_CAP_FILE_SET_CAPTURE_FILEW: u32 = 1144u32; +pub const WM_CAP_FILE_SET_INFOCHUNK: u32 = 1048u32; +pub const WM_CAP_GET_AUDIOFORMAT: u32 = 1060u32; +pub const WM_CAP_GET_CAPSTREAMPTR: u32 = 1025u32; +pub const WM_CAP_GET_MCI_DEVICE: u32 = 1191u32; +pub const WM_CAP_GET_MCI_DEVICEA: u32 = 1091u32; +pub const WM_CAP_GET_MCI_DEVICEW: u32 = 1191u32; +pub const WM_CAP_GET_SEQUENCE_SETUP: u32 = 1089u32; +pub const WM_CAP_GET_STATUS: u32 = 1078u32; +pub const WM_CAP_GET_USER_DATA: u32 = 1032u32; +pub const WM_CAP_GET_VIDEOFORMAT: u32 = 1068u32; +pub const WM_CAP_GRAB_FRAME: u32 = 1084u32; +pub const WM_CAP_GRAB_FRAME_NOSTOP: u32 = 1085u32; +pub const WM_CAP_PAL_AUTOCREATE: u32 = 1107u32; +pub const WM_CAP_PAL_MANUALCREATE: u32 = 1108u32; +pub const WM_CAP_PAL_OPEN: u32 = 1204u32; +pub const WM_CAP_PAL_OPENA: u32 = 1104u32; +pub const WM_CAP_PAL_OPENW: u32 = 1204u32; +pub const WM_CAP_PAL_PASTE: u32 = 1106u32; +pub const WM_CAP_PAL_SAVE: u32 = 1205u32; +pub const WM_CAP_PAL_SAVEA: u32 = 1105u32; +pub const WM_CAP_PAL_SAVEW: u32 = 1205u32; +pub const WM_CAP_SEQUENCE: u32 = 1086u32; +pub const WM_CAP_SEQUENCE_NOFILE: u32 = 1087u32; +pub const WM_CAP_SET_AUDIOFORMAT: u32 = 1059u32; +pub const WM_CAP_SET_CALLBACK_CAPCONTROL: u32 = 1109u32; +pub const WM_CAP_SET_CALLBACK_ERROR: u32 = 1126u32; +pub const WM_CAP_SET_CALLBACK_ERRORA: u32 = 1026u32; +pub const WM_CAP_SET_CALLBACK_ERRORW: u32 = 1126u32; +pub const WM_CAP_SET_CALLBACK_FRAME: u32 = 1029u32; +pub const WM_CAP_SET_CALLBACK_STATUS: u32 = 1127u32; +pub const WM_CAP_SET_CALLBACK_STATUSA: u32 = 1027u32; +pub const WM_CAP_SET_CALLBACK_STATUSW: u32 = 1127u32; +pub const WM_CAP_SET_CALLBACK_VIDEOSTREAM: u32 = 1030u32; +pub const WM_CAP_SET_CALLBACK_WAVESTREAM: u32 = 1031u32; +pub const WM_CAP_SET_CALLBACK_YIELD: u32 = 1028u32; +pub const WM_CAP_SET_MCI_DEVICE: u32 = 1190u32; +pub const WM_CAP_SET_MCI_DEVICEA: u32 = 1090u32; +pub const WM_CAP_SET_MCI_DEVICEW: u32 = 1190u32; +pub const WM_CAP_SET_OVERLAY: u32 = 1075u32; +pub const WM_CAP_SET_PREVIEW: u32 = 1074u32; +pub const WM_CAP_SET_PREVIEWRATE: u32 = 1076u32; +pub const WM_CAP_SET_SCALE: u32 = 1077u32; +pub const WM_CAP_SET_SCROLL: u32 = 1079u32; +pub const WM_CAP_SET_SEQUENCE_SETUP: u32 = 1088u32; +pub const WM_CAP_SET_USER_DATA: u32 = 1033u32; +pub const WM_CAP_SET_VIDEOFORMAT: u32 = 1069u32; +pub const WM_CAP_SINGLE_FRAME: u32 = 1096u32; +pub const WM_CAP_SINGLE_FRAME_CLOSE: u32 = 1095u32; +pub const WM_CAP_SINGLE_FRAME_OPEN: u32 = 1094u32; +pub const WM_CAP_START: u32 = 1024u32; +pub const WM_CAP_STOP: u32 = 1092u32; +pub const WM_CAP_UNICODE_END: u32 = 1205u32; +pub const WM_CAP_UNICODE_START: u32 = 1124u32; +pub const WODM_BREAKLOOP: u32 = 20u32; +pub const WODM_BUSY: u32 = 21u32; +pub const WODM_CLOSE: u32 = 6u32; +pub const WODM_GETDEVCAPS: u32 = 4u32; +pub const WODM_GETNUMDEVS: u32 = 3u32; +pub const WODM_GETPITCH: u32 = 14u32; +pub const WODM_GETPLAYBACKRATE: u32 = 18u32; +pub const WODM_GETPOS: u32 = 13u32; +pub const WODM_GETVOLUME: u32 = 16u32; +pub const WODM_INIT: u32 = 100u32; +pub const WODM_INIT_EX: u32 = 104u32; +pub const WODM_OPEN: u32 = 5u32; +pub const WODM_PAUSE: u32 = 10u32; +pub const WODM_PREFERRED: u32 = 21u32; +pub const WODM_PREPARE: u32 = 7u32; +pub const WODM_RESET: u32 = 12u32; +pub const WODM_RESTART: u32 = 11u32; +pub const WODM_SETPITCH: u32 = 15u32; +pub const WODM_SETPLAYBACKRATE: u32 = 19u32; +pub const WODM_SETVOLUME: u32 = 17u32; +pub const WODM_UNPREPARE: u32 = 8u32; +pub const WODM_WRITE: u32 = 9u32; +#[repr(C, packed(1))] +pub struct ADPCMCOEFSET { + pub iCoef1: i16, + pub iCoef2: i16, +} +impl ::core::marker::Copy for ADPCMCOEFSET {} +impl ::core::clone::Clone for ADPCMCOEFSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct ADPCMEWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wSamplesPerBlock: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for ADPCMEWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for ADPCMEWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct ADPCMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wSamplesPerBlock: u16, + pub wNumCoef: u16, + pub aCoef: [ADPCMCOEFSET; 1], +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for ADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for ADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct APTXWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for APTXWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for APTXWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct AUDIOFILE_AF10WAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for AUDIOFILE_AF10WAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for AUDIOFILE_AF10WAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct AUDIOFILE_AF36WAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for AUDIOFILE_AF36WAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for AUDIOFILE_AF36WAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AVICOMPRESSOPTIONS { + pub fccType: u32, + pub fccHandler: u32, + pub dwKeyFrameEvery: u32, + pub dwQuality: u32, + pub dwBytesPerSecond: u32, + pub dwFlags: u32, + pub lpFormat: *mut ::core::ffi::c_void, + pub cbFormat: u32, + pub lpParms: *mut ::core::ffi::c_void, + pub cbParms: u32, + pub dwInterleaveEvery: u32, +} +impl ::core::marker::Copy for AVICOMPRESSOPTIONS {} +impl ::core::clone::Clone for AVICOMPRESSOPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AVIFILEINFOA { + pub dwMaxBytesPerSec: u32, + pub dwFlags: u32, + pub dwCaps: u32, + pub dwStreams: u32, + pub dwSuggestedBufferSize: u32, + pub dwWidth: u32, + pub dwHeight: u32, + pub dwScale: u32, + pub dwRate: u32, + pub dwLength: u32, + pub dwEditCount: u32, + pub szFileType: [u8; 64], +} +impl ::core::marker::Copy for AVIFILEINFOA {} +impl ::core::clone::Clone for AVIFILEINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AVIFILEINFOW { + pub dwMaxBytesPerSec: u32, + pub dwFlags: u32, + pub dwCaps: u32, + pub dwStreams: u32, + pub dwSuggestedBufferSize: u32, + pub dwWidth: u32, + pub dwHeight: u32, + pub dwScale: u32, + pub dwRate: u32, + pub dwLength: u32, + pub dwEditCount: u32, + pub szFileType: [u16; 64], +} +impl ::core::marker::Copy for AVIFILEINFOW {} +impl ::core::clone::Clone for AVIFILEINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AVISTREAMINFOA { + pub fccType: u32, + pub fccHandler: u32, + pub dwFlags: u32, + pub dwCaps: u32, + pub wPriority: u16, + pub wLanguage: u16, + pub dwScale: u32, + pub dwRate: u32, + pub dwStart: u32, + pub dwLength: u32, + pub dwInitialFrames: u32, + pub dwSuggestedBufferSize: u32, + pub dwQuality: u32, + pub dwSampleSize: u32, + pub rcFrame: super::super::Foundation::RECT, + pub dwEditCount: u32, + pub dwFormatChangeCount: u32, + pub szName: [u8; 64], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AVISTREAMINFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AVISTREAMINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AVISTREAMINFOW { + pub fccType: u32, + pub fccHandler: u32, + pub dwFlags: u32, + pub dwCaps: u32, + pub wPriority: u16, + pub wLanguage: u16, + pub dwScale: u32, + pub dwRate: u32, + pub dwStart: u32, + pub dwLength: u32, + pub dwInitialFrames: u32, + pub dwSuggestedBufferSize: u32, + pub dwQuality: u32, + pub dwSampleSize: u32, + pub rcFrame: super::super::Foundation::RECT, + pub dwEditCount: u32, + pub dwFormatChangeCount: u32, + pub szName: [u16; 64], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AVISTREAMINFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AVISTREAMINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CAPDRIVERCAPS { + pub wDeviceIndex: u32, + pub fHasOverlay: super::super::Foundation::BOOL, + pub fHasDlgVideoSource: super::super::Foundation::BOOL, + pub fHasDlgVideoFormat: super::super::Foundation::BOOL, + pub fHasDlgVideoDisplay: super::super::Foundation::BOOL, + pub fCaptureInitialized: super::super::Foundation::BOOL, + pub fDriverSuppliesPalettes: super::super::Foundation::BOOL, + pub hVideoIn: super::super::Foundation::HANDLE, + pub hVideoOut: super::super::Foundation::HANDLE, + pub hVideoExtIn: super::super::Foundation::HANDLE, + pub hVideoExtOut: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CAPDRIVERCAPS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CAPDRIVERCAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CAPINFOCHUNK { + pub fccInfoID: u32, + pub lpData: *mut ::core::ffi::c_void, + pub cbData: i32, +} +impl ::core::marker::Copy for CAPINFOCHUNK {} +impl ::core::clone::Clone for CAPINFOCHUNK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct CAPSTATUS { + pub uiImageWidth: u32, + pub uiImageHeight: u32, + pub fLiveWindow: super::super::Foundation::BOOL, + pub fOverlayWindow: super::super::Foundation::BOOL, + pub fScale: super::super::Foundation::BOOL, + pub ptScroll: super::super::Foundation::POINT, + pub fUsingDefaultPalette: super::super::Foundation::BOOL, + pub fAudioHardware: super::super::Foundation::BOOL, + pub fCapFileExists: super::super::Foundation::BOOL, + pub dwCurrentVideoFrame: u32, + pub dwCurrentVideoFramesDropped: u32, + pub dwCurrentWaveSamples: u32, + pub dwCurrentTimeElapsedMS: u32, + pub hPalCurrent: super::super::Graphics::Gdi::HPALETTE, + pub fCapturingNow: super::super::Foundation::BOOL, + pub dwReturn: u32, + pub wNumVideoAllocated: u32, + pub wNumAudioAllocated: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for CAPSTATUS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for CAPSTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CAPTUREPARMS { + pub dwRequestMicroSecPerFrame: u32, + pub fMakeUserHitOKToCapture: super::super::Foundation::BOOL, + pub wPercentDropForError: u32, + pub fYield: super::super::Foundation::BOOL, + pub dwIndexSize: u32, + pub wChunkGranularity: u32, + pub fUsingDOSMemory: super::super::Foundation::BOOL, + pub wNumVideoRequested: u32, + pub fCaptureAudio: super::super::Foundation::BOOL, + pub wNumAudioRequested: u32, + pub vKeyAbort: u32, + pub fAbortLeftMouse: super::super::Foundation::BOOL, + pub fAbortRightMouse: super::super::Foundation::BOOL, + pub fLimitEnabled: super::super::Foundation::BOOL, + pub wTimeLimit: u32, + pub fMCIControl: super::super::Foundation::BOOL, + pub fStepMCIDevice: super::super::Foundation::BOOL, + pub dwMCIStartTime: u32, + pub dwMCIStopTime: u32, + pub fStepCaptureAt2x: super::super::Foundation::BOOL, + pub wStepCaptureAverageFrames: u32, + pub dwAudioBufferSize: u32, + pub fDisableWriteCache: super::super::Foundation::BOOL, + pub AVStreamMaster: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CAPTUREPARMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CAPTUREPARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CHANNEL_CAPS { + pub dwFlags: u32, + pub dwSrcRectXMod: u32, + pub dwSrcRectYMod: u32, + pub dwSrcRectWidthMod: u32, + pub dwSrcRectHeightMod: u32, + pub dwDstRectXMod: u32, + pub dwDstRectYMod: u32, + pub dwDstRectWidthMod: u32, + pub dwDstRectHeightMod: u32, +} +impl ::core::marker::Copy for CHANNEL_CAPS {} +impl ::core::clone::Clone for CHANNEL_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct COMPVARS { + pub cbSize: i32, + pub dwFlags: u32, + pub hic: HIC, + pub fccType: u32, + pub fccHandler: u32, + pub lpbiIn: *mut super::super::Graphics::Gdi::BITMAPINFO, + pub lpbiOut: *mut super::super::Graphics::Gdi::BITMAPINFO, + pub lpBitsOut: *mut ::core::ffi::c_void, + pub lpBitsPrev: *mut ::core::ffi::c_void, + pub lFrame: i32, + pub lKey: i32, + pub lDataRate: i32, + pub lQ: i32, + pub lKeyCount: i32, + pub lpState: *mut ::core::ffi::c_void, + pub cbState: i32, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for COMPVARS {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for COMPVARS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct CONTRESCR10WAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wSamplesPerBlock: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for CONTRESCR10WAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for CONTRESCR10WAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct CONTRESVQLPCWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wSamplesPerBlock: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for CONTRESVQLPCWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for CONTRESVQLPCWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct CREATIVEADPCMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wRevision: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for CREATIVEADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for CREATIVEADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct CREATIVEFASTSPEECH10WAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wRevision: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for CREATIVEFASTSPEECH10WAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for CREATIVEFASTSPEECH10WAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct CREATIVEFASTSPEECH8WAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wRevision: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for CREATIVEFASTSPEECH8WAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for CREATIVEFASTSPEECH8WAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct CSIMAADPCMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for CSIMAADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for CSIMAADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct DIALOGICOKIADPCMWAVEFORMAT { + pub ewf: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for DIALOGICOKIADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for DIALOGICOKIADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct DIGIADPCMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wSamplesPerBlock: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for DIGIADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for DIGIADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct DIGIFIXWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for DIGIFIXWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for DIGIFIXWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct DIGIREALWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wSamplesPerBlock: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for DIGIREALWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for DIGIREALWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct DIGISTDWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for DIGISTDWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for DIGISTDWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct DOLBYAC2WAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub nAuxBitsCode: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for DOLBYAC2WAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for DOLBYAC2WAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRAWDIBTIME { + pub timeCount: i32, + pub timeDraw: i32, + pub timeDecompress: i32, + pub timeDither: i32, + pub timeStretch: i32, + pub timeBlt: i32, + pub timeSetDIBits: i32, +} +impl ::core::marker::Copy for DRAWDIBTIME {} +impl ::core::clone::Clone for DRAWDIBTIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct DRMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wReserved: u16, + pub ulContentId: u32, + pub wfxSecure: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for DRMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for DRMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DRVCONFIGINFO { + pub dwDCISize: u32, + pub lpszDCISectionName: ::windows_sys::core::PCWSTR, + pub lpszDCIAliasName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for DRVCONFIGINFO {} +impl ::core::clone::Clone for DRVCONFIGINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DRVCONFIGINFOEX { + pub dwDCISize: u32, + pub lpszDCISectionName: ::windows_sys::core::PCWSTR, + pub lpszDCIAliasName: ::windows_sys::core::PCWSTR, + pub dnDevNode: u32, +} +impl ::core::marker::Copy for DRVCONFIGINFOEX {} +impl ::core::clone::Clone for DRVCONFIGINFOEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DRVM_IOCTL_DATA { + pub dwSize: u32, + pub dwCmd: u32, +} +impl ::core::marker::Copy for DRVM_IOCTL_DATA {} +impl ::core::clone::Clone for DRVM_IOCTL_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct DVIADPCMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wSamplesPerBlock: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for DVIADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for DVIADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct ECHOSC1WAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for ECHOSC1WAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for ECHOSC1WAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct EXBMINFOHEADER { + pub bmi: super::super::Graphics::Gdi::BITMAPINFOHEADER, + pub biExtDataOffset: u32, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for EXBMINFOHEADER {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for EXBMINFOHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct FMTOWNS_SND_WAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wRevision: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for FMTOWNS_SND_WAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for FMTOWNS_SND_WAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct G721_ADPCMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub nAuxBlockSize: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for G721_ADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for G721_ADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct G723_ADPCMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub cbExtraSize: u16, + pub nAuxBlockSize: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for G723_ADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for G723_ADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct GSM610WAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wSamplesPerBlock: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for GSM610WAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for GSM610WAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +pub type HDRVR = isize; +pub type HIC = isize; +pub type HMMIO = isize; +pub type HVIDEO = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct ICCOMPRESS { + pub dwFlags: u32, + pub lpbiOutput: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER, + pub lpOutput: *mut ::core::ffi::c_void, + pub lpbiInput: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER, + pub lpInput: *mut ::core::ffi::c_void, + pub lpckid: *mut u32, + pub lpdwFlags: *mut u32, + pub lFrameNum: i32, + pub dwFrameSize: u32, + pub dwQuality: u32, + pub lpbiPrev: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER, + pub lpPrev: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for ICCOMPRESS {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for ICCOMPRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct ICCOMPRESSFRAMES { + pub dwFlags: u32, + pub lpbiOutput: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER, + pub lOutput: super::super::Foundation::LPARAM, + pub lpbiInput: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER, + pub lInput: super::super::Foundation::LPARAM, + pub lStartFrame: i32, + pub lFrameCount: i32, + pub lQuality: i32, + pub lDataRate: i32, + pub lKeyRate: i32, + pub dwRate: u32, + pub dwScale: u32, + pub dwOverheadPerFrame: u32, + pub dwReserved2: u32, + pub GetData: isize, + pub PutData: isize, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for ICCOMPRESSFRAMES {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for ICCOMPRESSFRAMES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct ICDECOMPRESS { + pub dwFlags: u32, + pub lpbiInput: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER, + pub lpInput: *mut ::core::ffi::c_void, + pub lpbiOutput: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER, + pub lpOutput: *mut ::core::ffi::c_void, + pub ckid: u32, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for ICDECOMPRESS {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for ICDECOMPRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct ICDECOMPRESSEX { + pub dwFlags: u32, + pub lpbiSrc: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER, + pub lpSrc: *mut ::core::ffi::c_void, + pub lpbiDst: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER, + pub lpDst: *mut ::core::ffi::c_void, + pub xDst: i32, + pub yDst: i32, + pub dxDst: i32, + pub dyDst: i32, + pub xSrc: i32, + pub ySrc: i32, + pub dxSrc: i32, + pub dySrc: i32, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for ICDECOMPRESSEX {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for ICDECOMPRESSEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ICDRAW { + pub dwFlags: u32, + pub lpFormat: *mut ::core::ffi::c_void, + pub lpData: *mut ::core::ffi::c_void, + pub cbData: u32, + pub lTime: i32, +} +impl ::core::marker::Copy for ICDRAW {} +impl ::core::clone::Clone for ICDRAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct ICDRAWBEGIN { + pub dwFlags: u32, + pub hpal: super::super::Graphics::Gdi::HPALETTE, + pub hwnd: super::super::Foundation::HWND, + pub hdc: super::super::Graphics::Gdi::HDC, + pub xDst: i32, + pub yDst: i32, + pub dxDst: i32, + pub dyDst: i32, + pub lpbi: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER, + pub xSrc: i32, + pub ySrc: i32, + pub dxSrc: i32, + pub dySrc: i32, + pub dwRate: u32, + pub dwScale: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for ICDRAWBEGIN {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for ICDRAWBEGIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct ICDRAWSUGGEST { + pub lpbiIn: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER, + pub lpbiSuggest: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER, + pub dxSrc: i32, + pub dySrc: i32, + pub dxDst: i32, + pub dyDst: i32, + pub hicDecompressor: HIC, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for ICDRAWSUGGEST {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for ICDRAWSUGGEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ICINFO { + pub dwSize: u32, + pub fccType: u32, + pub fccHandler: u32, + pub dwFlags: u32, + pub dwVersion: u32, + pub dwVersionICM: u32, + pub szName: [u16; 16], + pub szDescription: [u16; 128], + pub szDriver: [u16; 128], +} +impl ::core::marker::Copy for ICINFO {} +impl ::core::clone::Clone for ICINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ICOPEN { + pub dwSize: u32, + pub fccType: u32, + pub fccHandler: u32, + pub dwVersion: u32, + pub dwFlags: u32, + pub dwError: super::super::Foundation::LRESULT, + pub pV1Reserved: *mut ::core::ffi::c_void, + pub pV2Reserved: *mut ::core::ffi::c_void, + pub dnDevNode: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ICOPEN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ICOPEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct ICPALETTE { + pub dwFlags: u32, + pub iStart: i32, + pub iLen: i32, + pub lppe: *mut super::super::Graphics::Gdi::PALETTEENTRY, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for ICPALETTE {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for ICPALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ICSETSTATUSPROC { + pub dwFlags: u32, + pub lParam: super::super::Foundation::LPARAM, + pub Status: isize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ICSETSTATUSPROC {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ICSETSTATUSPROC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct IMAADPCMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wSamplesPerBlock: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for IMAADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for IMAADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct JOYCAPS2A { + pub wMid: u16, + pub wPid: u16, + pub szPname: [u8; 32], + pub wXmin: u32, + pub wXmax: u32, + pub wYmin: u32, + pub wYmax: u32, + pub wZmin: u32, + pub wZmax: u32, + pub wNumButtons: u32, + pub wPeriodMin: u32, + pub wPeriodMax: u32, + pub wRmin: u32, + pub wRmax: u32, + pub wUmin: u32, + pub wUmax: u32, + pub wVmin: u32, + pub wVmax: u32, + pub wCaps: u32, + pub wMaxAxes: u32, + pub wNumAxes: u32, + pub wMaxButtons: u32, + pub szRegKey: [u8; 32], + pub szOEMVxD: [u8; 260], + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for JOYCAPS2A {} +impl ::core::clone::Clone for JOYCAPS2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct JOYCAPS2W { + pub wMid: u16, + pub wPid: u16, + pub szPname: [u16; 32], + pub wXmin: u32, + pub wXmax: u32, + pub wYmin: u32, + pub wYmax: u32, + pub wZmin: u32, + pub wZmax: u32, + pub wNumButtons: u32, + pub wPeriodMin: u32, + pub wPeriodMax: u32, + pub wRmin: u32, + pub wRmax: u32, + pub wUmin: u32, + pub wUmax: u32, + pub wVmin: u32, + pub wVmax: u32, + pub wCaps: u32, + pub wMaxAxes: u32, + pub wNumAxes: u32, + pub wMaxButtons: u32, + pub szRegKey: [u16; 32], + pub szOEMVxD: [u16; 260], + pub ManufacturerGuid: ::windows_sys::core::GUID, + pub ProductGuid: ::windows_sys::core::GUID, + pub NameGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for JOYCAPS2W {} +impl ::core::clone::Clone for JOYCAPS2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct JOYCAPSA { + pub wMid: u16, + pub wPid: u16, + pub szPname: [u8; 32], + pub wXmin: u32, + pub wXmax: u32, + pub wYmin: u32, + pub wYmax: u32, + pub wZmin: u32, + pub wZmax: u32, + pub wNumButtons: u32, + pub wPeriodMin: u32, + pub wPeriodMax: u32, + pub wRmin: u32, + pub wRmax: u32, + pub wUmin: u32, + pub wUmax: u32, + pub wVmin: u32, + pub wVmax: u32, + pub wCaps: u32, + pub wMaxAxes: u32, + pub wNumAxes: u32, + pub wMaxButtons: u32, + pub szRegKey: [u8; 32], + pub szOEMVxD: [u8; 260], +} +impl ::core::marker::Copy for JOYCAPSA {} +impl ::core::clone::Clone for JOYCAPSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct JOYCAPSW { + pub wMid: u16, + pub wPid: u16, + pub szPname: [u16; 32], + pub wXmin: u32, + pub wXmax: u32, + pub wYmin: u32, + pub wYmax: u32, + pub wZmin: u32, + pub wZmax: u32, + pub wNumButtons: u32, + pub wPeriodMin: u32, + pub wPeriodMax: u32, + pub wRmin: u32, + pub wRmax: u32, + pub wUmin: u32, + pub wUmax: u32, + pub wVmin: u32, + pub wVmax: u32, + pub wCaps: u32, + pub wMaxAxes: u32, + pub wNumAxes: u32, + pub wMaxButtons: u32, + pub szRegKey: [u16; 32], + pub szOEMVxD: [u16; 260], +} +impl ::core::marker::Copy for JOYCAPSW {} +impl ::core::clone::Clone for JOYCAPSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct JOYINFO { + pub wXpos: u32, + pub wYpos: u32, + pub wZpos: u32, + pub wButtons: u32, +} +impl ::core::marker::Copy for JOYINFO {} +impl ::core::clone::Clone for JOYINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct JOYINFOEX { + pub dwSize: u32, + pub dwFlags: u32, + pub dwXpos: u32, + pub dwYpos: u32, + pub dwZpos: u32, + pub dwRpos: u32, + pub dwUpos: u32, + pub dwVpos: u32, + pub dwButtons: u32, + pub dwButtonNumber: u32, + pub dwPOV: u32, + pub dwReserved1: u32, + pub dwReserved2: u32, +} +impl ::core::marker::Copy for JOYINFOEX {} +impl ::core::clone::Clone for JOYINFOEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct JPEGINFOHEADER { + pub JPEGSize: u32, + pub JPEGProcess: u32, + pub JPEGColorSpaceID: u32, + pub JPEGBitsPerSample: u32, + pub JPEGHSubSampling: u32, + pub JPEGVSubSampling: u32, +} +impl ::core::marker::Copy for JPEGINFOHEADER {} +impl ::core::clone::Clone for JPEGINFOHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_ANIM_OPEN_PARMSA { + pub dwCallback: usize, + pub wDeviceID: u32, + pub lpstrDeviceType: ::windows_sys::core::PCSTR, + pub lpstrElementName: ::windows_sys::core::PCSTR, + pub lpstrAlias: ::windows_sys::core::PCSTR, + pub dwStyle: u32, + pub hWndParent: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_ANIM_OPEN_PARMSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_ANIM_OPEN_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_ANIM_OPEN_PARMSW { + pub dwCallback: usize, + pub wDeviceID: u32, + pub lpstrDeviceType: ::windows_sys::core::PCWSTR, + pub lpstrElementName: ::windows_sys::core::PCWSTR, + pub lpstrAlias: ::windows_sys::core::PCWSTR, + pub dwStyle: u32, + pub hWndParent: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_ANIM_OPEN_PARMSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_ANIM_OPEN_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_ANIM_PLAY_PARMS { + pub dwCallback: usize, + pub dwFrom: u32, + pub dwTo: u32, + pub dwSpeed: u32, +} +impl ::core::marker::Copy for MCI_ANIM_PLAY_PARMS {} +impl ::core::clone::Clone for MCI_ANIM_PLAY_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_ANIM_RECT_PARMS { + pub dwCallback: usize, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_ANIM_RECT_PARMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_ANIM_RECT_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_ANIM_STEP_PARMS { + pub dwCallback: usize, + pub dwFrames: u32, +} +impl ::core::marker::Copy for MCI_ANIM_STEP_PARMS {} +impl ::core::clone::Clone for MCI_ANIM_STEP_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct MCI_ANIM_UPDATE_PARMS { + pub dwCallback: usize, + pub rc: super::super::Foundation::RECT, + pub hDC: super::super::Graphics::Gdi::HDC, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for MCI_ANIM_UPDATE_PARMS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for MCI_ANIM_UPDATE_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_ANIM_WINDOW_PARMSA { + pub dwCallback: usize, + pub hWnd: super::super::Foundation::HWND, + pub nCmdShow: u32, + pub lpstrText: ::windows_sys::core::PCSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_ANIM_WINDOW_PARMSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_ANIM_WINDOW_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_ANIM_WINDOW_PARMSW { + pub dwCallback: usize, + pub hWnd: super::super::Foundation::HWND, + pub nCmdShow: u32, + pub lpstrText: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_ANIM_WINDOW_PARMSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_ANIM_WINDOW_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_BREAK_PARMS { + pub dwCallback: usize, + pub nVirtKey: i32, + pub hwndBreak: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_BREAK_PARMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_BREAK_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_CAPTURE_PARMSA { + pub dwCallback: usize, + pub lpstrFileName: ::windows_sys::core::PSTR, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_CAPTURE_PARMSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_CAPTURE_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_CAPTURE_PARMSW { + pub dwCallback: usize, + pub lpstrFileName: ::windows_sys::core::PWSTR, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_CAPTURE_PARMSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_CAPTURE_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_COPY_PARMS { + pub dwCallback: usize, + pub dwFrom: u32, + pub dwTo: u32, + pub rc: super::super::Foundation::RECT, + pub dwAudioStream: u32, + pub dwVideoStream: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_COPY_PARMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_COPY_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_CUE_PARMS { + pub dwCallback: usize, + pub dwTo: u32, +} +impl ::core::marker::Copy for MCI_DGV_CUE_PARMS {} +impl ::core::clone::Clone for MCI_DGV_CUE_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_CUT_PARMS { + pub dwCallback: usize, + pub dwFrom: u32, + pub dwTo: u32, + pub rc: super::super::Foundation::RECT, + pub dwAudioStream: u32, + pub dwVideoStream: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_CUT_PARMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_CUT_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_DELETE_PARMS { + pub dwCallback: usize, + pub dwFrom: u32, + pub dwTo: u32, + pub rc: super::super::Foundation::RECT, + pub dwAudioStream: u32, + pub dwVideoStream: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_DELETE_PARMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_DELETE_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_INFO_PARMSA { + pub dwCallback: usize, + pub lpstrReturn: ::windows_sys::core::PSTR, + pub dwRetSize: u32, + pub dwItem: u32, +} +impl ::core::marker::Copy for MCI_DGV_INFO_PARMSA {} +impl ::core::clone::Clone for MCI_DGV_INFO_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_INFO_PARMSW { + pub dwCallback: usize, + pub lpstrReturn: ::windows_sys::core::PWSTR, + pub dwRetSize: u32, + pub dwItem: u32, +} +impl ::core::marker::Copy for MCI_DGV_INFO_PARMSW {} +impl ::core::clone::Clone for MCI_DGV_INFO_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_LIST_PARMSA { + pub dwCallback: usize, + pub lpstrReturn: ::windows_sys::core::PSTR, + pub dwLength: u32, + pub dwNumber: u32, + pub dwItem: u32, + pub lpstrAlgorithm: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for MCI_DGV_LIST_PARMSA {} +impl ::core::clone::Clone for MCI_DGV_LIST_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_LIST_PARMSW { + pub dwCallback: usize, + pub lpstrReturn: ::windows_sys::core::PWSTR, + pub dwLength: u32, + pub dwNumber: u32, + pub dwItem: u32, + pub lpstrAlgorithm: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for MCI_DGV_LIST_PARMSW {} +impl ::core::clone::Clone for MCI_DGV_LIST_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_MONITOR_PARMS { + pub dwCallback: usize, + pub dwSource: u32, + pub dwMethod: u32, +} +impl ::core::marker::Copy for MCI_DGV_MONITOR_PARMS {} +impl ::core::clone::Clone for MCI_DGV_MONITOR_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_OPEN_PARMSA { + pub dwCallback: usize, + pub wDeviceID: u32, + pub lpstrDeviceType: ::windows_sys::core::PSTR, + pub lpstrElementName: ::windows_sys::core::PSTR, + pub lpstrAlias: ::windows_sys::core::PSTR, + pub dwStyle: u32, + pub hWndParent: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_OPEN_PARMSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_OPEN_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_OPEN_PARMSW { + pub dwCallback: usize, + pub wDeviceID: u32, + pub lpstrDeviceType: ::windows_sys::core::PWSTR, + pub lpstrElementName: ::windows_sys::core::PWSTR, + pub lpstrAlias: ::windows_sys::core::PWSTR, + pub dwStyle: u32, + pub hWndParent: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_OPEN_PARMSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_OPEN_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_PASTE_PARMS { + pub dwCallback: usize, + pub dwTo: u32, + pub rc: super::super::Foundation::RECT, + pub dwAudioStream: u32, + pub dwVideoStream: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_PASTE_PARMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_PASTE_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_QUALITY_PARMSA { + pub dwCallback: usize, + pub dwItem: u32, + pub lpstrName: ::windows_sys::core::PSTR, + pub lpstrAlgorithm: u32, + pub dwHandle: u32, +} +impl ::core::marker::Copy for MCI_DGV_QUALITY_PARMSA {} +impl ::core::clone::Clone for MCI_DGV_QUALITY_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_QUALITY_PARMSW { + pub dwCallback: usize, + pub dwItem: u32, + pub lpstrName: ::windows_sys::core::PWSTR, + pub lpstrAlgorithm: u32, + pub dwHandle: u32, +} +impl ::core::marker::Copy for MCI_DGV_QUALITY_PARMSW {} +impl ::core::clone::Clone for MCI_DGV_QUALITY_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_RECORD_PARMS { + pub dwCallback: usize, + pub dwFrom: u32, + pub dwTo: u32, + pub rc: super::super::Foundation::RECT, + pub dwAudioStream: u32, + pub dwVideoStream: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_RECORD_PARMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_RECORD_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_RECT_PARMS { + pub dwCallback: usize, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_RECT_PARMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_RECT_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_RESERVE_PARMSA { + pub dwCallback: usize, + pub lpstrPath: ::windows_sys::core::PSTR, + pub dwSize: u32, +} +impl ::core::marker::Copy for MCI_DGV_RESERVE_PARMSA {} +impl ::core::clone::Clone for MCI_DGV_RESERVE_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_RESERVE_PARMSW { + pub dwCallback: usize, + pub lpstrPath: ::windows_sys::core::PWSTR, + pub dwSize: u32, +} +impl ::core::marker::Copy for MCI_DGV_RESERVE_PARMSW {} +impl ::core::clone::Clone for MCI_DGV_RESERVE_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_RESTORE_PARMSA { + pub dwCallback: usize, + pub lpstrFileName: ::windows_sys::core::PSTR, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_RESTORE_PARMSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_RESTORE_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_RESTORE_PARMSW { + pub dwCallback: usize, + pub lpstrFileName: ::windows_sys::core::PWSTR, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_RESTORE_PARMSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_RESTORE_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_SAVE_PARMSA { + pub dwCallback: usize, + pub lpstrFileName: ::windows_sys::core::PSTR, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_SAVE_PARMSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_SAVE_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_SAVE_PARMSW { + pub dwCallback: usize, + pub lpstrFileName: ::windows_sys::core::PWSTR, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_SAVE_PARMSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_SAVE_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_SETAUDIO_PARMSA { + pub dwCallback: usize, + pub dwItem: u32, + pub dwValue: u32, + pub dwOver: u32, + pub lpstrAlgorithm: ::windows_sys::core::PSTR, + pub lpstrQuality: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for MCI_DGV_SETAUDIO_PARMSA {} +impl ::core::clone::Clone for MCI_DGV_SETAUDIO_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_SETAUDIO_PARMSW { + pub dwCallback: usize, + pub dwItem: u32, + pub dwValue: u32, + pub dwOver: u32, + pub lpstrAlgorithm: ::windows_sys::core::PWSTR, + pub lpstrQuality: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for MCI_DGV_SETAUDIO_PARMSW {} +impl ::core::clone::Clone for MCI_DGV_SETAUDIO_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_SETVIDEO_PARMSA { + pub dwCallback: usize, + pub dwItem: u32, + pub dwValue: u32, + pub dwOver: u32, + pub lpstrAlgorithm: ::windows_sys::core::PSTR, + pub lpstrQuality: ::windows_sys::core::PSTR, + pub dwSourceNumber: u32, +} +impl ::core::marker::Copy for MCI_DGV_SETVIDEO_PARMSA {} +impl ::core::clone::Clone for MCI_DGV_SETVIDEO_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_SETVIDEO_PARMSW { + pub dwCallback: usize, + pub dwItem: u32, + pub dwValue: u32, + pub dwOver: u32, + pub lpstrAlgorithm: ::windows_sys::core::PWSTR, + pub lpstrQuality: ::windows_sys::core::PWSTR, + pub dwSourceNumber: u32, +} +impl ::core::marker::Copy for MCI_DGV_SETVIDEO_PARMSW {} +impl ::core::clone::Clone for MCI_DGV_SETVIDEO_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_SET_PARMS { + pub dwCallback: usize, + pub dwTimeFormat: u32, + pub dwAudio: u32, + pub dwFileFormat: u32, + pub dwSpeed: u32, +} +impl ::core::marker::Copy for MCI_DGV_SET_PARMS {} +impl ::core::clone::Clone for MCI_DGV_SET_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_SIGNAL_PARMS { + pub dwCallback: usize, + pub dwPosition: u32, + pub dwPeriod: u32, + pub dwUserParm: u32, +} +impl ::core::marker::Copy for MCI_DGV_SIGNAL_PARMS {} +impl ::core::clone::Clone for MCI_DGV_SIGNAL_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_STATUS_PARMSA { + pub dwCallback: usize, + pub dwReturn: usize, + pub dwItem: u32, + pub dwTrack: u32, + pub lpstrDrive: ::windows_sys::core::PSTR, + pub dwReference: u32, +} +impl ::core::marker::Copy for MCI_DGV_STATUS_PARMSA {} +impl ::core::clone::Clone for MCI_DGV_STATUS_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_STATUS_PARMSW { + pub dwCallback: usize, + pub dwReturn: usize, + pub dwItem: u32, + pub dwTrack: u32, + pub lpstrDrive: ::windows_sys::core::PWSTR, + pub dwReference: u32, +} +impl ::core::marker::Copy for MCI_DGV_STATUS_PARMSW {} +impl ::core::clone::Clone for MCI_DGV_STATUS_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_DGV_STEP_PARMS { + pub dwCallback: usize, + pub dwFrames: u32, +} +impl ::core::marker::Copy for MCI_DGV_STEP_PARMS {} +impl ::core::clone::Clone for MCI_DGV_STEP_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct MCI_DGV_UPDATE_PARMS { + pub dwCallback: usize, + pub rc: super::super::Foundation::RECT, + pub hDC: super::super::Graphics::Gdi::HDC, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for MCI_DGV_UPDATE_PARMS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for MCI_DGV_UPDATE_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_WINDOW_PARMSA { + pub dwCallback: usize, + pub hWnd: super::super::Foundation::HWND, + pub nCmdShow: u32, + pub lpstrText: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_WINDOW_PARMSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_WINDOW_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_DGV_WINDOW_PARMSW { + pub dwCallback: usize, + pub hWnd: super::super::Foundation::HWND, + pub nCmdShow: u32, + pub lpstrText: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_DGV_WINDOW_PARMSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_DGV_WINDOW_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_GENERIC_PARMS { + pub dwCallback: usize, +} +impl ::core::marker::Copy for MCI_GENERIC_PARMS {} +impl ::core::clone::Clone for MCI_GENERIC_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_GETDEVCAPS_PARMS { + pub dwCallback: usize, + pub dwReturn: u32, + pub dwItem: u32, +} +impl ::core::marker::Copy for MCI_GETDEVCAPS_PARMS {} +impl ::core::clone::Clone for MCI_GETDEVCAPS_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_INFO_PARMSA { + pub dwCallback: usize, + pub lpstrReturn: ::windows_sys::core::PSTR, + pub dwRetSize: u32, +} +impl ::core::marker::Copy for MCI_INFO_PARMSA {} +impl ::core::clone::Clone for MCI_INFO_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_INFO_PARMSW { + pub dwCallback: usize, + pub lpstrReturn: ::windows_sys::core::PWSTR, + pub dwRetSize: u32, +} +impl ::core::marker::Copy for MCI_INFO_PARMSW {} +impl ::core::clone::Clone for MCI_INFO_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_LOAD_PARMSA { + pub dwCallback: usize, + pub lpfilename: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for MCI_LOAD_PARMSA {} +impl ::core::clone::Clone for MCI_LOAD_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_LOAD_PARMSW { + pub dwCallback: usize, + pub lpfilename: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for MCI_LOAD_PARMSW {} +impl ::core::clone::Clone for MCI_LOAD_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_OPEN_DRIVER_PARMS { + pub wDeviceID: u32, + pub lpstrParams: ::windows_sys::core::PCWSTR, + pub wCustomCommandTable: u32, + pub wType: u32, +} +impl ::core::marker::Copy for MCI_OPEN_DRIVER_PARMS {} +impl ::core::clone::Clone for MCI_OPEN_DRIVER_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_OPEN_PARMSA { + pub dwCallback: usize, + pub wDeviceID: u32, + pub lpstrDeviceType: ::windows_sys::core::PCSTR, + pub lpstrElementName: ::windows_sys::core::PCSTR, + pub lpstrAlias: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for MCI_OPEN_PARMSA {} +impl ::core::clone::Clone for MCI_OPEN_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_OPEN_PARMSW { + pub dwCallback: usize, + pub wDeviceID: u32, + pub lpstrDeviceType: ::windows_sys::core::PCWSTR, + pub lpstrElementName: ::windows_sys::core::PCWSTR, + pub lpstrAlias: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for MCI_OPEN_PARMSW {} +impl ::core::clone::Clone for MCI_OPEN_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_OVLY_LOAD_PARMSA { + pub dwCallback: usize, + pub lpfilename: ::windows_sys::core::PCSTR, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_OVLY_LOAD_PARMSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_OVLY_LOAD_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_OVLY_LOAD_PARMSW { + pub dwCallback: usize, + pub lpfilename: ::windows_sys::core::PCWSTR, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_OVLY_LOAD_PARMSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_OVLY_LOAD_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_OVLY_OPEN_PARMSA { + pub dwCallback: usize, + pub wDeviceID: u32, + pub lpstrDeviceType: ::windows_sys::core::PCSTR, + pub lpstrElementName: ::windows_sys::core::PCSTR, + pub lpstrAlias: ::windows_sys::core::PCSTR, + pub dwStyle: u32, + pub hWndParent: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_OVLY_OPEN_PARMSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_OVLY_OPEN_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_OVLY_OPEN_PARMSW { + pub dwCallback: usize, + pub wDeviceID: u32, + pub lpstrDeviceType: ::windows_sys::core::PCWSTR, + pub lpstrElementName: ::windows_sys::core::PCWSTR, + pub lpstrAlias: ::windows_sys::core::PCWSTR, + pub dwStyle: u32, + pub hWndParent: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_OVLY_OPEN_PARMSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_OVLY_OPEN_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_OVLY_RECT_PARMS { + pub dwCallback: usize, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_OVLY_RECT_PARMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_OVLY_RECT_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_OVLY_SAVE_PARMSA { + pub dwCallback: usize, + pub lpfilename: ::windows_sys::core::PCSTR, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_OVLY_SAVE_PARMSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_OVLY_SAVE_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_OVLY_SAVE_PARMSW { + pub dwCallback: usize, + pub lpfilename: ::windows_sys::core::PCWSTR, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_OVLY_SAVE_PARMSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_OVLY_SAVE_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_OVLY_WINDOW_PARMSA { + pub dwCallback: usize, + pub hWnd: super::super::Foundation::HWND, + pub nCmdShow: u32, + pub lpstrText: ::windows_sys::core::PCSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_OVLY_WINDOW_PARMSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_OVLY_WINDOW_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCI_OVLY_WINDOW_PARMSW { + pub dwCallback: usize, + pub hWnd: super::super::Foundation::HWND, + pub nCmdShow: u32, + pub lpstrText: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCI_OVLY_WINDOW_PARMSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCI_OVLY_WINDOW_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_PLAY_PARMS { + pub dwCallback: usize, + pub dwFrom: u32, + pub dwTo: u32, +} +impl ::core::marker::Copy for MCI_PLAY_PARMS {} +impl ::core::clone::Clone for MCI_PLAY_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_RECORD_PARMS { + pub dwCallback: usize, + pub dwFrom: u32, + pub dwTo: u32, +} +impl ::core::marker::Copy for MCI_RECORD_PARMS {} +impl ::core::clone::Clone for MCI_RECORD_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_SAVE_PARMSA { + pub dwCallback: usize, + pub lpfilename: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for MCI_SAVE_PARMSA {} +impl ::core::clone::Clone for MCI_SAVE_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_SAVE_PARMSW { + pub dwCallback: usize, + pub lpfilename: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for MCI_SAVE_PARMSW {} +impl ::core::clone::Clone for MCI_SAVE_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_SEEK_PARMS { + pub dwCallback: usize, + pub dwTo: u32, +} +impl ::core::marker::Copy for MCI_SEEK_PARMS {} +impl ::core::clone::Clone for MCI_SEEK_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_SEQ_SET_PARMS { + pub dwCallback: usize, + pub dwTimeFormat: u32, + pub dwAudio: u32, + pub dwTempo: u32, + pub dwPort: u32, + pub dwSlave: u32, + pub dwMaster: u32, + pub dwOffset: u32, +} +impl ::core::marker::Copy for MCI_SEQ_SET_PARMS {} +impl ::core::clone::Clone for MCI_SEQ_SET_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_SET_PARMS { + pub dwCallback: usize, + pub dwTimeFormat: u32, + pub dwAudio: u32, +} +impl ::core::marker::Copy for MCI_SET_PARMS {} +impl ::core::clone::Clone for MCI_SET_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_STATUS_PARMS { + pub dwCallback: usize, + pub dwReturn: usize, + pub dwItem: u32, + pub dwTrack: u32, +} +impl ::core::marker::Copy for MCI_STATUS_PARMS {} +impl ::core::clone::Clone for MCI_STATUS_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_SYSINFO_PARMSA { + pub dwCallback: usize, + pub lpstrReturn: ::windows_sys::core::PSTR, + pub dwRetSize: u32, + pub dwNumber: u32, + pub wDeviceType: u32, +} +impl ::core::marker::Copy for MCI_SYSINFO_PARMSA {} +impl ::core::clone::Clone for MCI_SYSINFO_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_SYSINFO_PARMSW { + pub dwCallback: usize, + pub lpstrReturn: ::windows_sys::core::PWSTR, + pub dwRetSize: u32, + pub dwNumber: u32, + pub wDeviceType: u32, +} +impl ::core::marker::Copy for MCI_SYSINFO_PARMSW {} +impl ::core::clone::Clone for MCI_SYSINFO_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_VD_ESCAPE_PARMSA { + pub dwCallback: usize, + pub lpstrCommand: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for MCI_VD_ESCAPE_PARMSA {} +impl ::core::clone::Clone for MCI_VD_ESCAPE_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_VD_ESCAPE_PARMSW { + pub dwCallback: usize, + pub lpstrCommand: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for MCI_VD_ESCAPE_PARMSW {} +impl ::core::clone::Clone for MCI_VD_ESCAPE_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_VD_PLAY_PARMS { + pub dwCallback: usize, + pub dwFrom: u32, + pub dwTo: u32, + pub dwSpeed: u32, +} +impl ::core::marker::Copy for MCI_VD_PLAY_PARMS {} +impl ::core::clone::Clone for MCI_VD_PLAY_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_VD_STEP_PARMS { + pub dwCallback: usize, + pub dwFrames: u32, +} +impl ::core::marker::Copy for MCI_VD_STEP_PARMS {} +impl ::core::clone::Clone for MCI_VD_STEP_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_WAVE_DELETE_PARMS { + pub dwCallback: usize, + pub dwFrom: u32, + pub dwTo: u32, +} +impl ::core::marker::Copy for MCI_WAVE_DELETE_PARMS {} +impl ::core::clone::Clone for MCI_WAVE_DELETE_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_WAVE_OPEN_PARMSA { + pub dwCallback: usize, + pub wDeviceID: u32, + pub lpstrDeviceType: ::windows_sys::core::PCSTR, + pub lpstrElementName: ::windows_sys::core::PCSTR, + pub lpstrAlias: ::windows_sys::core::PCSTR, + pub dwBufferSeconds: u32, +} +impl ::core::marker::Copy for MCI_WAVE_OPEN_PARMSA {} +impl ::core::clone::Clone for MCI_WAVE_OPEN_PARMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_WAVE_OPEN_PARMSW { + pub dwCallback: usize, + pub wDeviceID: u32, + pub lpstrDeviceType: ::windows_sys::core::PCWSTR, + pub lpstrElementName: ::windows_sys::core::PCWSTR, + pub lpstrAlias: ::windows_sys::core::PCWSTR, + pub dwBufferSeconds: u32, +} +impl ::core::marker::Copy for MCI_WAVE_OPEN_PARMSW {} +impl ::core::clone::Clone for MCI_WAVE_OPEN_PARMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MCI_WAVE_SET_PARMS { + pub dwCallback: usize, + pub dwTimeFormat: u32, + pub dwAudio: u32, + pub wInput: u32, + pub wOutput: u32, + pub wFormatTag: u16, + pub wReserved2: u16, + pub nChannels: u16, + pub wReserved3: u16, + pub nSamplesPerSec: u32, + pub nAvgBytesPerSec: u32, + pub nBlockAlign: u16, + pub wReserved4: u16, + pub wBitsPerSample: u16, + pub wReserved5: u16, +} +impl ::core::marker::Copy for MCI_WAVE_SET_PARMS {} +impl ::core::clone::Clone for MCI_WAVE_SET_PARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct MEDIASPACEADPCMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wRevision: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for MEDIASPACEADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for MEDIASPACEADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MIDIOPENSTRMID { + pub dwStreamID: u32, + pub uDeviceID: u32, +} +impl ::core::marker::Copy for MIDIOPENSTRMID {} +impl ::core::clone::Clone for MIDIOPENSTRMID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct MIXEROPENDESC { + pub hmx: super::Audio::HMIXER, + pub pReserved0: *mut ::core::ffi::c_void, + pub dwCallback: usize, + pub dwInstance: usize, + pub dnDevNode: usize, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for MIXEROPENDESC {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for MIXEROPENDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MMCKINFO { + pub ckid: u32, + pub cksize: u32, + pub fccType: u32, + pub dwDataOffset: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for MMCKINFO {} +impl ::core::clone::Clone for MMCKINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MMIOINFO { + pub dwFlags: u32, + pub fccIOProc: u32, + pub pIOProc: LPMMIOPROC, + pub wErrorRet: u32, + pub htask: super::HTASK, + pub cchBuffer: i32, + pub pchBuffer: *mut i8, + pub pchNext: *mut i8, + pub pchEndRead: *mut i8, + pub pchEndWrite: *mut i8, + pub lBufOffset: i32, + pub lDiskOffset: i32, + pub adwInfo: [u32; 3], + pub dwReserved1: u32, + pub dwReserved2: u32, + pub hmmio: HMMIO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MMIOINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MMIOINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct MSAUDIO1WAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wSamplesPerBlock: u16, + pub wEncodeOptions: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for MSAUDIO1WAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for MSAUDIO1WAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct NMS_VBXADPCMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wSamplesPerBlock: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for NMS_VBXADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for NMS_VBXADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct OLIADPCMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for OLIADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for OLIADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct OLICELPWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for OLICELPWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for OLICELPWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct OLIGSMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for OLIGSMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for OLIGSMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct OLIOPRWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for OLIOPRWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for OLIOPRWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct OLISBCWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for OLISBCWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for OLISBCWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct SIERRAADPCMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wRevision: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for SIERRAADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for SIERRAADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct SONARCWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wCompType: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for SONARCWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for SONARCWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TIMEREVENT { + pub wDelay: u16, + pub wResolution: u16, + pub lpFunction: super::LPTIMECALLBACK, + pub dwUser: u32, + pub wFlags: u16, + pub wReserved1: u16, +} +impl ::core::marker::Copy for TIMEREVENT {} +impl ::core::clone::Clone for TIMEREVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct TRUESPEECHWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wRevision: u16, + pub nSamplesPerBlock: u16, + pub abReserved: [u8; 28], +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for TRUESPEECHWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for TRUESPEECHWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIDEOHDR { + pub lpData: *mut u8, + pub dwBufferLength: u32, + pub dwBytesUsed: u32, + pub dwTimeCaptured: u32, + pub dwUser: usize, + pub dwFlags: u32, + pub dwReserved: [usize; 4], +} +impl ::core::marker::Copy for VIDEOHDR {} +impl ::core::clone::Clone for VIDEOHDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct WAVEOPENDESC { + pub hWave: super::Audio::HWAVE, + pub lpFormat: *mut super::Audio::WAVEFORMAT, + pub dwCallback: usize, + pub dwInstance: usize, + pub uMappedDeviceID: u32, + pub dnDevNode: usize, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for WAVEOPENDESC {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for WAVEOPENDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct WMAUDIO2WAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub dwSamplesPerBlock: u32, + pub wEncodeOptions: u16, + pub dwSuperBlockAlign: u32, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for WMAUDIO2WAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for WMAUDIO2WAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct WMAUDIO3WAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, + pub wValidBitsPerSample: u16, + pub dwChannelMask: u32, + pub dwReserved1: u32, + pub dwReserved2: u32, + pub wEncodeOptions: u16, + pub wReserved3: u16, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for WMAUDIO3WAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for WMAUDIO3WAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +#[cfg(feature = "Win32_Media_Audio")] +pub struct YAMAHA_ADPCMWAVEFORMAT { + pub wfx: super::Audio::WAVEFORMATEX, +} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::marker::Copy for YAMAHA_ADPCMWAVEFORMAT {} +#[cfg(feature = "Win32_Media_Audio")] +impl ::core::clone::Clone for YAMAHA_ADPCMWAVEFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct s_RIFFWAVE_inst { + pub bUnshiftedNote: u8, + pub chFineTune: u8, + pub chGain: u8, + pub bLowNote: u8, + pub bHighNote: u8, + pub bLowVelocity: u8, + pub bHighVelocity: u8, +} +impl ::core::marker::Copy for s_RIFFWAVE_inst {} +impl ::core::clone::Clone for s_RIFFWAVE_inst { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type AVISAVECALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CAPCONTROLCALLBACK = ::core::option::Option super::super::Foundation::LRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CAPERRORCALLBACKA = ::core::option::Option super::super::Foundation::LRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CAPERRORCALLBACKW = ::core::option::Option super::super::Foundation::LRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CAPSTATUSCALLBACKA = ::core::option::Option super::super::Foundation::LRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CAPSTATUSCALLBACKW = ::core::option::Option super::super::Foundation::LRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CAPVIDEOCALLBACK = ::core::option::Option super::super::Foundation::LRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Media_Audio\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_Audio"))] +pub type CAPWAVECALLBACK = ::core::option::Option super::super::Foundation::LRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CAPYIELDCALLBACK = ::core::option::Option super::super::Foundation::LRESULT>; +pub type DRIVERMSGPROC = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DRIVERPROC = ::core::option::Option super::super::Foundation::LRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPFNEXTDEVIO = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPMMIOPROC = ::core::option::Option super::super::Foundation::LRESULT>; +pub type LPTASKCALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +pub type VFWWDMExtensionProc = ::core::option::Option u32>; +pub type YIELDPROC = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Media/Streaming/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/Streaming/mod.rs new file mode 100644 index 000000000..c4e8a585c --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/Streaming/mod.rs @@ -0,0 +1,202 @@ +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_DLNACAP: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x88ad39db_0d0c_4a38_8435_4043826b5c91), pid: 16 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_DLNADOC: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x88ad39db_0d0c_4a38_8435_4043826b5c91), pid: 15 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_MaxVolume: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x88ad39db_0d0c_4a38_8435_4043826b5c91), pid: 19 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_PacketWakeSupported: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x88ad39db_0d0c_4a38_8435_4043826b5c91), pid: 0 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_SendPacketWakeSupported: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x88ad39db_0d0c_4a38_8435_4043826b5c91), pid: 1 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_SinkProtocolInfo: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x88ad39db_0d0c_4a38_8435_4043826b5c91), pid: 14 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_SupportsAudio: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x88ad39db_0d0c_4a38_8435_4043826b5c91), pid: 8 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_SupportsImages: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x88ad39db_0d0c_4a38_8435_4043826b5c91), pid: 10 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_SupportsMute: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x88ad39db_0d0c_4a38_8435_4043826b5c91), pid: 18 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_SupportsSearch: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x88ad39db_0d0c_4a38_8435_4043826b5c91), pid: 17 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_SupportsSetNextAVT: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x88ad39db_0d0c_4a38_8435_4043826b5c91), pid: 20 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_SupportsVideo: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x88ad39db_0d0c_4a38_8435_4043826b5c91), pid: 9 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Device_UDN: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x88ad39db_0d0c_4a38_8435_4043826b5c91), pid: 6 }; +pub const GUID_DEVINTERFACE_DMP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25b4e268_2a05_496e_803b_266837fbda4b); +pub const GUID_DEVINTERFACE_DMR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd0875fb4_2196_4c7a_a63d_e416addd60a1); +pub const GUID_DEVINTERFACE_DMS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc96037ae_a558_4470_b432_115a31b85553); +pub const MF_MEDIASOURCE_STATUS_INFO_FULLYSUPPORTED: MF_MEDIASOURCE_STATUS_INFO = 0i32; +pub const MF_MEDIASOURCE_STATUS_INFO_UNKNOWN: MF_MEDIASOURCE_STATUS_INFO = 1i32; +pub const MF_TRANSFER_VIDEO_FRAME_DEFAULT: MF_TRANSFER_VIDEO_FRAME_FLAGS = 0i32; +pub const MF_TRANSFER_VIDEO_FRAME_IGNORE_PAR: MF_TRANSFER_VIDEO_FRAME_FLAGS = 2i32; +pub const MF_TRANSFER_VIDEO_FRAME_STRETCH: MF_TRANSFER_VIDEO_FRAME_FLAGS = 1i32; +pub type MF_MEDIASOURCE_STATUS_INFO = i32; +pub type MF_TRANSFER_VIDEO_FRAME_FLAGS = i32; +#[repr(C)] +pub struct CapturedMetadataExposureCompensation { + pub Flags: u64, + pub Value: i32, +} +impl ::core::marker::Copy for CapturedMetadataExposureCompensation {} +impl ::core::clone::Clone for CapturedMetadataExposureCompensation { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CapturedMetadataISOGains { + pub AnalogGain: f32, + pub DigitalGain: f32, +} +impl ::core::marker::Copy for CapturedMetadataISOGains {} +impl ::core::clone::Clone for CapturedMetadataISOGains { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CapturedMetadataWhiteBalanceGains { + pub R: f32, + pub G: f32, + pub B: f32, +} +impl ::core::marker::Copy for CapturedMetadataWhiteBalanceGains {} +impl ::core::clone::Clone for CapturedMetadataWhiteBalanceGains { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FaceCharacterization { + pub BlinkScoreLeft: u32, + pub BlinkScoreRight: u32, + pub FacialExpression: u32, + pub FacialExpressionScore: u32, +} +impl ::core::marker::Copy for FaceCharacterization {} +impl ::core::clone::Clone for FaceCharacterization { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FaceCharacterizationBlobHeader { + pub Size: u32, + pub Count: u32, +} +impl ::core::marker::Copy for FaceCharacterizationBlobHeader {} +impl ::core::clone::Clone for FaceCharacterizationBlobHeader { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FaceRectInfo { + pub Region: super::super::Foundation::RECT, + pub confidenceLevel: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FaceRectInfo {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FaceRectInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FaceRectInfoBlobHeader { + pub Size: u32, + pub Count: u32, +} +impl ::core::marker::Copy for FaceRectInfoBlobHeader {} +impl ::core::clone::Clone for FaceRectInfoBlobHeader { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HistogramBlobHeader { + pub Size: u32, + pub Histograms: u32, +} +impl ::core::marker::Copy for HistogramBlobHeader {} +impl ::core::clone::Clone for HistogramBlobHeader { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HistogramDataHeader { + pub Size: u32, + pub ChannelMask: u32, + pub Linear: u32, +} +impl ::core::marker::Copy for HistogramDataHeader {} +impl ::core::clone::Clone for HistogramDataHeader { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HistogramGrid { + pub Width: u32, + pub Height: u32, + pub Region: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HistogramGrid {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HistogramGrid { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HistogramHeader { + pub Size: u32, + pub Bins: u32, + pub FourCC: u32, + pub ChannelMasks: u32, + pub Grid: HistogramGrid, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HistogramHeader {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HistogramHeader { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MetadataTimeStamps { + pub Flags: u32, + pub Device: i64, + pub Presentation: i64, +} +impl ::core::marker::Copy for MetadataTimeStamps {} +impl ::core::clone::Clone for MetadataTimeStamps { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Media/WindowsMediaFormat/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/WindowsMediaFormat/mod.rs new file mode 100644 index 000000000..bc3c9b0bf --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/WindowsMediaFormat/mod.rs @@ -0,0 +1,1237 @@ +::windows_targets::link!("wmvcore.dll" "system" fn WMCreateBackupRestorer(pcallback : ::windows_sys::core::IUnknown, ppbackup : *mut IWMLicenseBackup) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wmvcore.dll" "system" fn WMCreateEditor(ppeditor : *mut IWMMetadataEditor) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wmvcore.dll" "system" fn WMCreateIndexer(ppindexer : *mut IWMIndexer) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wmvcore.dll" "system" fn WMCreateProfileManager(ppprofilemanager : *mut IWMProfileManager) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wmvcore.dll" "system" fn WMCreateReader(punkcert : ::windows_sys::core::IUnknown, dwrights : u32, ppreader : *mut IWMReader) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wmvcore.dll" "system" fn WMCreateSyncReader(punkcert : ::windows_sys::core::IUnknown, dwrights : u32, ppsyncreader : *mut IWMSyncReader) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wmvcore.dll" "system" fn WMCreateWriter(punkcert : ::windows_sys::core::IUnknown, ppwriter : *mut IWMWriter) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wmvcore.dll" "system" fn WMCreateWriterFileSink(ppsink : *mut IWMWriterFileSink) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wmvcore.dll" "system" fn WMCreateWriterNetworkSink(ppsink : *mut IWMWriterNetworkSink) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wmvcore.dll" "system" fn WMCreateWriterPushSink(ppsink : *mut IWMWriterPushSink) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wmvcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WMIsContentProtected(pwszfilename : ::windows_sys::core::PCWSTR, pfisprotected : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +pub type INSNetSourceCreator = *mut ::core::ffi::c_void; +pub type INSSBuffer = *mut ::core::ffi::c_void; +pub type INSSBuffer2 = *mut ::core::ffi::c_void; +pub type INSSBuffer3 = *mut ::core::ffi::c_void; +pub type INSSBuffer4 = *mut ::core::ffi::c_void; +pub type IWMAddressAccess = *mut ::core::ffi::c_void; +pub type IWMAddressAccess2 = *mut ::core::ffi::c_void; +pub type IWMAuthorizer = *mut ::core::ffi::c_void; +pub type IWMBackupRestoreProps = *mut ::core::ffi::c_void; +pub type IWMBandwidthSharing = *mut ::core::ffi::c_void; +pub type IWMClientConnections = *mut ::core::ffi::c_void; +pub type IWMClientConnections2 = *mut ::core::ffi::c_void; +pub type IWMCodecInfo = *mut ::core::ffi::c_void; +pub type IWMCodecInfo2 = *mut ::core::ffi::c_void; +pub type IWMCodecInfo3 = *mut ::core::ffi::c_void; +pub type IWMCredentialCallback = *mut ::core::ffi::c_void; +pub type IWMDRMEditor = *mut ::core::ffi::c_void; +pub type IWMDRMMessageParser = *mut ::core::ffi::c_void; +pub type IWMDRMReader = *mut ::core::ffi::c_void; +pub type IWMDRMReader2 = *mut ::core::ffi::c_void; +pub type IWMDRMReader3 = *mut ::core::ffi::c_void; +pub type IWMDRMTranscryptionManager = *mut ::core::ffi::c_void; +pub type IWMDRMTranscryptor = *mut ::core::ffi::c_void; +pub type IWMDRMTranscryptor2 = *mut ::core::ffi::c_void; +pub type IWMDRMWriter = *mut ::core::ffi::c_void; +pub type IWMDRMWriter2 = *mut ::core::ffi::c_void; +pub type IWMDRMWriter3 = *mut ::core::ffi::c_void; +pub type IWMDeviceRegistration = *mut ::core::ffi::c_void; +pub type IWMGetSecureChannel = *mut ::core::ffi::c_void; +pub type IWMHeaderInfo = *mut ::core::ffi::c_void; +pub type IWMHeaderInfo2 = *mut ::core::ffi::c_void; +pub type IWMHeaderInfo3 = *mut ::core::ffi::c_void; +pub type IWMIStreamProps = *mut ::core::ffi::c_void; +pub type IWMImageInfo = *mut ::core::ffi::c_void; +pub type IWMIndexer = *mut ::core::ffi::c_void; +pub type IWMIndexer2 = *mut ::core::ffi::c_void; +pub type IWMInputMediaProps = *mut ::core::ffi::c_void; +pub type IWMLanguageList = *mut ::core::ffi::c_void; +pub type IWMLicenseBackup = *mut ::core::ffi::c_void; +pub type IWMLicenseRestore = *mut ::core::ffi::c_void; +pub type IWMLicenseRevocationAgent = *mut ::core::ffi::c_void; +pub type IWMMediaProps = *mut ::core::ffi::c_void; +pub type IWMMetadataEditor = *mut ::core::ffi::c_void; +pub type IWMMetadataEditor2 = *mut ::core::ffi::c_void; +pub type IWMMutualExclusion = *mut ::core::ffi::c_void; +pub type IWMMutualExclusion2 = *mut ::core::ffi::c_void; +pub type IWMOutputMediaProps = *mut ::core::ffi::c_void; +pub type IWMPacketSize = *mut ::core::ffi::c_void; +pub type IWMPacketSize2 = *mut ::core::ffi::c_void; +pub type IWMPlayerHook = *mut ::core::ffi::c_void; +pub type IWMPlayerTimestampHook = *mut ::core::ffi::c_void; +pub type IWMProfile = *mut ::core::ffi::c_void; +pub type IWMProfile2 = *mut ::core::ffi::c_void; +pub type IWMProfile3 = *mut ::core::ffi::c_void; +pub type IWMProfileManager = *mut ::core::ffi::c_void; +pub type IWMProfileManager2 = *mut ::core::ffi::c_void; +pub type IWMProfileManagerLanguage = *mut ::core::ffi::c_void; +pub type IWMPropertyVault = *mut ::core::ffi::c_void; +pub type IWMProximityDetection = *mut ::core::ffi::c_void; +pub type IWMReader = *mut ::core::ffi::c_void; +pub type IWMReaderAccelerator = *mut ::core::ffi::c_void; +pub type IWMReaderAdvanced = *mut ::core::ffi::c_void; +pub type IWMReaderAdvanced2 = *mut ::core::ffi::c_void; +pub type IWMReaderAdvanced3 = *mut ::core::ffi::c_void; +pub type IWMReaderAdvanced4 = *mut ::core::ffi::c_void; +pub type IWMReaderAdvanced5 = *mut ::core::ffi::c_void; +pub type IWMReaderAdvanced6 = *mut ::core::ffi::c_void; +pub type IWMReaderAllocatorEx = *mut ::core::ffi::c_void; +pub type IWMReaderCallback = *mut ::core::ffi::c_void; +pub type IWMReaderCallbackAdvanced = *mut ::core::ffi::c_void; +pub type IWMReaderNetworkConfig = *mut ::core::ffi::c_void; +pub type IWMReaderNetworkConfig2 = *mut ::core::ffi::c_void; +pub type IWMReaderPlaylistBurn = *mut ::core::ffi::c_void; +pub type IWMReaderStreamClock = *mut ::core::ffi::c_void; +pub type IWMReaderTimecode = *mut ::core::ffi::c_void; +pub type IWMReaderTypeNegotiation = *mut ::core::ffi::c_void; +pub type IWMRegisterCallback = *mut ::core::ffi::c_void; +pub type IWMRegisteredDevice = *mut ::core::ffi::c_void; +pub type IWMSBufferAllocator = *mut ::core::ffi::c_void; +pub type IWMSInternalAdminNetSource = *mut ::core::ffi::c_void; +pub type IWMSInternalAdminNetSource2 = *mut ::core::ffi::c_void; +pub type IWMSInternalAdminNetSource3 = *mut ::core::ffi::c_void; +pub type IWMSecureChannel = *mut ::core::ffi::c_void; +pub type IWMStatusCallback = *mut ::core::ffi::c_void; +pub type IWMStreamConfig = *mut ::core::ffi::c_void; +pub type IWMStreamConfig2 = *mut ::core::ffi::c_void; +pub type IWMStreamConfig3 = *mut ::core::ffi::c_void; +pub type IWMStreamList = *mut ::core::ffi::c_void; +pub type IWMStreamPrioritization = *mut ::core::ffi::c_void; +pub type IWMSyncReader = *mut ::core::ffi::c_void; +pub type IWMSyncReader2 = *mut ::core::ffi::c_void; +pub type IWMVideoMediaProps = *mut ::core::ffi::c_void; +pub type IWMWatermarkInfo = *mut ::core::ffi::c_void; +pub type IWMWriter = *mut ::core::ffi::c_void; +pub type IWMWriterAdvanced = *mut ::core::ffi::c_void; +pub type IWMWriterAdvanced2 = *mut ::core::ffi::c_void; +pub type IWMWriterAdvanced3 = *mut ::core::ffi::c_void; +pub type IWMWriterFileSink = *mut ::core::ffi::c_void; +pub type IWMWriterFileSink2 = *mut ::core::ffi::c_void; +pub type IWMWriterFileSink3 = *mut ::core::ffi::c_void; +pub type IWMWriterNetworkSink = *mut ::core::ffi::c_void; +pub type IWMWriterPostView = *mut ::core::ffi::c_void; +pub type IWMWriterPostViewCallback = *mut ::core::ffi::c_void; +pub type IWMWriterPreprocess = *mut ::core::ffi::c_void; +pub type IWMWriterPushSink = *mut ::core::ffi::c_void; +pub type IWMWriterSink = *mut ::core::ffi::c_void; +pub const AM_CONFIGASFWRITER_PARAM_AUTOINDEX: _AM_ASFWRITERCONFIG_PARAM = 1i32; +pub const AM_CONFIGASFWRITER_PARAM_DONTCOMPRESS: _AM_ASFWRITERCONFIG_PARAM = 3i32; +pub const AM_CONFIGASFWRITER_PARAM_MULTIPASS: _AM_ASFWRITERCONFIG_PARAM = 2i32; +pub const CLSID_ClientNetManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcd12a3ce_9c42_11d2_beed_0060082f2054); +pub const CLSID_WMBandwidthSharing_Exclusive: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaf6060aa_5197_11d2_b6af_00c04fd908e9); +pub const CLSID_WMBandwidthSharing_Partial: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaf6060ab_5197_11d2_b6af_00c04fd908e9); +pub const CLSID_WMMUTEX_Bitrate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd6e22a01_35da_11d1_9034_00a0c90349be); +pub const CLSID_WMMUTEX_Language: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd6e22a00_35da_11d1_9034_00a0c90349be); +pub const CLSID_WMMUTEX_Presentation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd6e22a02_35da_11d1_9034_00a0c90349be); +pub const CLSID_WMMUTEX_Unknown: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd6e22a03_35da_11d1_9034_00a0c90349be); +pub const DRM_OPL_TYPES: u32 = 1u32; +pub const NETSOURCE_URLCREDPOLICY_SETTING_ANONYMOUSONLY: NETSOURCE_URLCREDPOLICY_SETTINGS = 2i32; +pub const NETSOURCE_URLCREDPOLICY_SETTING_MUSTPROMPTUSER: NETSOURCE_URLCREDPOLICY_SETTINGS = 1i32; +pub const NETSOURCE_URLCREDPOLICY_SETTING_SILENTLOGONOK: NETSOURCE_URLCREDPOLICY_SETTINGS = 0i32; +pub const WEBSTREAM_SAMPLE_TYPE_FILE: WEBSTREAM_SAMPLE_TYPE = 1i32; +pub const WEBSTREAM_SAMPLE_TYPE_RENDER: WEBSTREAM_SAMPLE_TYPE = 2i32; +pub const WMDRM_IMPORT_INIT_STRUCT_DEFINED: u32 = 1u32; +pub const WMFORMAT_MPEG2Video: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d80e3_db46_11cf_b4d1_00805f6cbbea); +pub const WMFORMAT_Script: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c8510f2_debe_4ca7_bba5_f07a104f8dff); +pub const WMFORMAT_VideoInfo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x05589f80_c356_11ce_bf01_00aa0055595a); +pub const WMFORMAT_WaveFormatEx: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x05589f81_c356_11ce_bf01_00aa0055595a); +pub const WMFORMAT_WebStream: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xda1e6b13_8359_4050_b398_388e965bf00c); +pub const WMMEDIASUBTYPE_ACELPnet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000130_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_Base: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_DRM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000009_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_I420: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30323449_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_IYUV: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x56555949_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_M4S2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3253344d_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_MP3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000055_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_MP43: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3334504d_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_MP4S: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5334504d_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_MPEG2_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe06d8026_db46_11cf_b4d1_00805f6cbbea); +pub const WMMEDIASUBTYPE_MSS1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3153534d_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_MSS2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3253534d_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_P422: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x32323450_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_PCM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000001_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_RGB1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb78_524f_11ce_9f53_0020af0ba770); +pub const WMMEDIASUBTYPE_RGB24: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb7d_524f_11ce_9f53_0020af0ba770); +pub const WMMEDIASUBTYPE_RGB32: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb7e_524f_11ce_9f53_0020af0ba770); +pub const WMMEDIASUBTYPE_RGB4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb79_524f_11ce_9f53_0020af0ba770); +pub const WMMEDIASUBTYPE_RGB555: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb7c_524f_11ce_9f53_0020af0ba770); +pub const WMMEDIASUBTYPE_RGB565: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb7b_524f_11ce_9f53_0020af0ba770); +pub const WMMEDIASUBTYPE_RGB8: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe436eb7a_524f_11ce_9f53_0020af0ba770); +pub const WMMEDIASUBTYPE_UYVY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x59565955_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_VIDEOIMAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1d4a45f2_e5f6_4b44_8388_f0ae5c0e0c37); +pub const WMMEDIASUBTYPE_WMAudioV2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000161_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WMAudioV7: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000161_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WMAudioV8: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000161_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WMAudioV9: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000162_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WMAudio_Lossless: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000163_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WMSP1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0000000a_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WMSP2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0000000b_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WMV1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x31564d57_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WMV2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x32564d57_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WMV3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33564d57_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WMVA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x41564d57_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WMVP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x50564d57_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WVC1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x31435657_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WVP2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x32505657_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_WebStream: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x776257d4_c627_41cb_8f81_7ac7ff1c40cc); +pub const WMMEDIASUBTYPE_YUY2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x32595559_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_YV12: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x32315659_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_YVU9: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x39555659_0000_0010_8000_00aa00389b71); +pub const WMMEDIASUBTYPE_YVYU: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x55595659_0000_0010_8000_00aa00389b71); +pub const WMMEDIATYPE_Audio: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x73647561_0000_0010_8000_00aa00389b71); +pub const WMMEDIATYPE_FileTransfer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd9e47579_930e_4427_adfc_ad80f290e470); +pub const WMMEDIATYPE_Image: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x34a50fd8_8aa5_4386_81fe_a0efe0488e31); +pub const WMMEDIATYPE_Script: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x73636d64_0000_0010_8000_00aa00389b71); +pub const WMMEDIATYPE_Text: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9bba1ea7_5ab2_4829_ba57_0940209bcf3e); +pub const WMMEDIATYPE_Video: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x73646976_0000_0010_8000_00aa00389b71); +pub const WMSCRIPTTYPE_TwoStrings: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x82f38a70_c29f_11d1_97ad_00a0c95ea850); +pub const WMT_ACQUIRE_LICENSE: WMT_STATUS = 23i32; +pub const WMT_BACKUPRESTORE_BEGIN: WMT_STATUS = 21i32; +pub const WMT_BACKUPRESTORE_CONNECTING: WMT_STATUS = 28i32; +pub const WMT_BACKUPRESTORE_DISCONNECTING: WMT_STATUS = 29i32; +pub const WMT_BACKUPRESTORE_END: WMT_STATUS = 27i32; +pub const WMT_BUFFERING_START: WMT_STATUS = 2i32; +pub const WMT_BUFFERING_STOP: WMT_STATUS = 3i32; +pub const WMT_CLEANPOINT_ONLY: WMT_STREAM_SELECTION = 1i32; +pub const WMT_CLIENT_CONNECT: WMT_STATUS = 32i32; +pub const WMT_CLIENT_CONNECT_EX: WMT_STATUS = 37i32; +pub const WMT_CLIENT_DISCONNECT: WMT_STATUS = 33i32; +pub const WMT_CLIENT_DISCONNECT_EX: WMT_STATUS = 38i32; +pub const WMT_CLIENT_PROPERTIES: WMT_STATUS = 42i32; +pub const WMT_CLOSED: WMT_STATUS = 13i32; +pub const WMT_CODECINFO_AUDIO: WMT_CODEC_INFO_TYPE = 0i32; +pub const WMT_CODECINFO_UNKNOWN: WMT_CODEC_INFO_TYPE = -1i32; +pub const WMT_CODECINFO_VIDEO: WMT_CODEC_INFO_TYPE = 1i32; +pub const WMT_CONNECTING: WMT_STATUS = 8i32; +pub const WMT_CONTENT_ENABLER: WMT_STATUS = 51i32; +pub const WMT_CREDENTIAL_CLEAR_TEXT: WMT_CREDENTIAL_FLAGS = 4i32; +pub const WMT_CREDENTIAL_DONT_CACHE: WMT_CREDENTIAL_FLAGS = 2i32; +pub const WMT_CREDENTIAL_ENCRYPT: WMT_CREDENTIAL_FLAGS = 16i32; +pub const WMT_CREDENTIAL_PROXY: WMT_CREDENTIAL_FLAGS = 8i32; +pub const WMT_CREDENTIAL_SAVE: WMT_CREDENTIAL_FLAGS = 1i32; +pub const WMT_DMOCATEGORY_AUDIO_WATERMARK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65221c5a_fa75_4b39_b50c_06c336b6a3ef); +pub const WMT_DMOCATEGORY_VIDEO_WATERMARK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x187cc922_8efc_4404_9daf_63f4830df1bc); +pub const WMT_DRMLA_TAMPERED: WMT_DRMLA_TRUST = 2i32; +pub const WMT_DRMLA_TRUSTED: WMT_DRMLA_TRUST = 1i32; +pub const WMT_DRMLA_UNTRUSTED: WMT_DRMLA_TRUST = 0i32; +pub const WMT_END_OF_FILE: WMT_STATUS = 4i32; +pub const WMT_END_OF_SEGMENT: WMT_STATUS = 5i32; +pub const WMT_END_OF_STREAMING: WMT_STATUS = 6i32; +pub const WMT_EOF: WMT_STATUS = 4i32; +pub const WMT_ERROR: WMT_STATUS = 0i32; +pub const WMT_ERROR_WITHURL: WMT_STATUS = 30i32; +pub const WMT_FM_FILESINK_DATA_UNITS: WMT_FILESINK_MODE = 2i32; +pub const WMT_FM_FILESINK_UNBUFFERED: WMT_FILESINK_MODE = 4i32; +pub const WMT_FM_SINGLE_BUFFERS: WMT_FILESINK_MODE = 1i32; +pub const WMT_IMAGETYPE_BITMAP: WMT_ATTR_IMAGETYPE = 1i32; +pub const WMT_IMAGETYPE_GIF: WMT_ATTR_IMAGETYPE = 3i32; +pub const WMT_IMAGETYPE_JPEG: WMT_ATTR_IMAGETYPE = 2i32; +pub const WMT_INDEX_PROGRESS: WMT_STATUS = 16i32; +pub const WMT_INDIVIDUALIZE: WMT_STATUS = 24i32; +pub const WMT_INIT_PLAYLIST_BURN: WMT_STATUS = 44i32; +pub const WMT_IT_BITMAP: WMT_IMAGE_TYPE = 1i32; +pub const WMT_IT_FRAME_NUMBERS: WMT_INDEXER_TYPE = 1i32; +pub const WMT_IT_GIF: WMT_IMAGE_TYPE = 3i32; +pub const WMT_IT_JPEG: WMT_IMAGE_TYPE = 2i32; +pub const WMT_IT_NEAREST_CLEAN_POINT: WMT_INDEX_TYPE = 3i32; +pub const WMT_IT_NEAREST_DATA_UNIT: WMT_INDEX_TYPE = 1i32; +pub const WMT_IT_NEAREST_OBJECT: WMT_INDEX_TYPE = 2i32; +pub const WMT_IT_NONE: WMT_IMAGE_TYPE = 0i32; +pub const WMT_IT_PRESENTATION_TIME: WMT_INDEXER_TYPE = 0i32; +pub const WMT_IT_TIMECODE: WMT_INDEXER_TYPE = 2i32; +pub const WMT_LICENSEURL_SIGNATURE_STATE: WMT_STATUS = 43i32; +pub const WMT_LOCATING: WMT_STATUS = 7i32; +pub const WMT_MISSING_CODEC: WMT_STATUS = 10i32; +pub const WMT_MS_CLASS_MIXED: WMT_MUSICSPEECH_CLASS_MODE = 2i32; +pub const WMT_MS_CLASS_MUSIC: WMT_MUSICSPEECH_CLASS_MODE = 0i32; +pub const WMT_MS_CLASS_SPEECH: WMT_MUSICSPEECH_CLASS_MODE = 1i32; +pub const WMT_NATIVE_OUTPUT_PROPS_CHANGED: WMT_STATUS = 34i32; +pub const WMT_NEEDS_INDIVIDUALIZATION: WMT_STATUS = 25i32; +pub const WMT_NEW_METADATA: WMT_STATUS = 20i32; +pub const WMT_NEW_SOURCEFLAGS: WMT_STATUS = 19i32; +pub const WMT_NO_RIGHTS: WMT_STATUS = 9i32; +pub const WMT_NO_RIGHTS_EX: WMT_STATUS = 26i32; +pub const WMT_OFF: WMT_STREAM_SELECTION = 0i32; +pub const WMT_OFFSET_FORMAT_100NS: WMT_OFFSET_FORMAT = 0i32; +pub const WMT_OFFSET_FORMAT_100NS_APPROXIMATE: WMT_OFFSET_FORMAT = 4i32; +pub const WMT_OFFSET_FORMAT_FRAME_NUMBERS: WMT_OFFSET_FORMAT = 1i32; +pub const WMT_OFFSET_FORMAT_PLAYLIST_OFFSET: WMT_OFFSET_FORMAT = 2i32; +pub const WMT_OFFSET_FORMAT_TIMECODE: WMT_OFFSET_FORMAT = 3i32; +pub const WMT_ON: WMT_STREAM_SELECTION = 2i32; +pub const WMT_OPENED: WMT_STATUS = 1i32; +pub const WMT_PLAY_MODE_AUTOSELECT: WMT_PLAY_MODE = 0i32; +pub const WMT_PLAY_MODE_DOWNLOAD: WMT_PLAY_MODE = 2i32; +pub const WMT_PLAY_MODE_LOCAL: WMT_PLAY_MODE = 1i32; +pub const WMT_PLAY_MODE_STREAMING: WMT_PLAY_MODE = 3i32; +pub const WMT_PREROLL_COMPLETE: WMT_STATUS = 41i32; +pub const WMT_PREROLL_READY: WMT_STATUS = 40i32; +pub const WMT_PROTOCOL_HTTP: WMT_NET_PROTOCOL = 0i32; +pub const WMT_PROXIMITY_COMPLETED: WMT_STATUS = 50i32; +pub const WMT_PROXIMITY_RESULT: WMT_STATUS = 49i32; +pub const WMT_PROXY_SETTING_AUTO: WMT_PROXY_SETTINGS = 2i32; +pub const WMT_PROXY_SETTING_BROWSER: WMT_PROXY_SETTINGS = 3i32; +pub const WMT_PROXY_SETTING_MANUAL: WMT_PROXY_SETTINGS = 1i32; +pub const WMT_PROXY_SETTING_MAX: WMT_PROXY_SETTINGS = 4i32; +pub const WMT_PROXY_SETTING_NONE: WMT_PROXY_SETTINGS = 0i32; +pub const WMT_RECONNECT_END: WMT_STATUS = 36i32; +pub const WMT_RECONNECT_START: WMT_STATUS = 35i32; +pub const WMT_RESTRICTED_LICENSE: WMT_STATUS = 31i32; +pub const WMT_RIGHT_COLLABORATIVE_PLAY: WMT_RIGHTS = 256i32; +pub const WMT_RIGHT_COPY: WMT_RIGHTS = 128i32; +pub const WMT_RIGHT_COPY_TO_CD: WMT_RIGHTS = 8i32; +pub const WMT_RIGHT_COPY_TO_NON_SDMI_DEVICE: WMT_RIGHTS = 2i32; +pub const WMT_RIGHT_COPY_TO_SDMI_DEVICE: WMT_RIGHTS = 16i32; +pub const WMT_RIGHT_ONE_TIME: WMT_RIGHTS = 32i32; +pub const WMT_RIGHT_PLAYBACK: WMT_RIGHTS = 1i32; +pub const WMT_RIGHT_SAVE_STREAM_PROTECTED: WMT_RIGHTS = 64i32; +pub const WMT_RIGHT_SDMI_NOMORECOPIES: WMT_RIGHTS = 131072i32; +pub const WMT_RIGHT_SDMI_TRIGGER: WMT_RIGHTS = 65536i32; +pub const WMT_SAVEAS_START: WMT_STATUS = 17i32; +pub const WMT_SAVEAS_STOP: WMT_STATUS = 18i32; +pub const WMT_SET_FEC_SPAN: WMT_STATUS = 39i32; +pub const WMT_SOURCE_SWITCH: WMT_STATUS = 22i32; +pub const WMT_STARTED: WMT_STATUS = 11i32; +pub const WMT_STOPPED: WMT_STATUS = 12i32; +pub const WMT_STRIDING: WMT_STATUS = 14i32; +pub const WMT_Storage_Format_MP3: WMT_STORAGE_FORMAT = 0i32; +pub const WMT_Storage_Format_V1: WMT_STORAGE_FORMAT = 1i32; +pub const WMT_TIMECODE_FRAMERATE_24: WMT_TIMECODE_FRAMERATE = 3i32; +pub const WMT_TIMECODE_FRAMERATE_25: WMT_TIMECODE_FRAMERATE = 2i32; +pub const WMT_TIMECODE_FRAMERATE_30: WMT_TIMECODE_FRAMERATE = 0i32; +pub const WMT_TIMECODE_FRAMERATE_30DROP: WMT_TIMECODE_FRAMERATE = 1i32; +pub const WMT_TIMER: WMT_STATUS = 15i32; +pub const WMT_TRANSCRYPTOR_CLOSED: WMT_STATUS = 48i32; +pub const WMT_TRANSCRYPTOR_INIT: WMT_STATUS = 45i32; +pub const WMT_TRANSCRYPTOR_READ: WMT_STATUS = 47i32; +pub const WMT_TRANSCRYPTOR_SEEKED: WMT_STATUS = 46i32; +pub const WMT_TYPE_BINARY: WMT_ATTR_DATATYPE = 2i32; +pub const WMT_TYPE_BOOL: WMT_ATTR_DATATYPE = 3i32; +pub const WMT_TYPE_DWORD: WMT_ATTR_DATATYPE = 0i32; +pub const WMT_TYPE_GUID: WMT_ATTR_DATATYPE = 6i32; +pub const WMT_TYPE_QWORD: WMT_ATTR_DATATYPE = 4i32; +pub const WMT_TYPE_STRING: WMT_ATTR_DATATYPE = 1i32; +pub const WMT_TYPE_WORD: WMT_ATTR_DATATYPE = 5i32; +pub const WMT_Transport_Type_Reliable: WMT_TRANSPORT_TYPE = 1i32; +pub const WMT_Transport_Type_Unreliable: WMT_TRANSPORT_TYPE = 0i32; +pub const WMT_VER_4_0: WMT_VERSION = 262144i32; +pub const WMT_VER_7_0: WMT_VERSION = 458752i32; +pub const WMT_VER_8_0: WMT_VERSION = 524288i32; +pub const WMT_VER_9_0: WMT_VERSION = 589824i32; +pub const WMT_VIDEOIMAGE_INTEGER_DENOMINATOR: i32 = 65536i32; +pub const WMT_VIDEOIMAGE_MAGIC_NUMBER: u32 = 491406834u32; +pub const WMT_VIDEOIMAGE_MAGIC_NUMBER_2: u32 = 491406835u32; +pub const WMT_VIDEOIMAGE_SAMPLE_ADV_BLENDING: u32 = 8u32; +pub const WMT_VIDEOIMAGE_SAMPLE_BLENDING: u32 = 4u32; +pub const WMT_VIDEOIMAGE_SAMPLE_INPUT_FRAME: u32 = 1u32; +pub const WMT_VIDEOIMAGE_SAMPLE_MOTION: u32 = 1u32; +pub const WMT_VIDEOIMAGE_SAMPLE_OUTPUT_FRAME: u32 = 2u32; +pub const WMT_VIDEOIMAGE_SAMPLE_ROTATION: u32 = 2u32; +pub const WMT_VIDEOIMAGE_SAMPLE_USES_CURRENT_INPUT_FRAME: u32 = 4u32; +pub const WMT_VIDEOIMAGE_SAMPLE_USES_PREVIOUS_INPUT_FRAME: u32 = 8u32; +pub const WMT_VIDEOIMAGE_TRANSITION_BOW_TIE: u32 = 11u32; +pub const WMT_VIDEOIMAGE_TRANSITION_CIRCLE: u32 = 12u32; +pub const WMT_VIDEOIMAGE_TRANSITION_CROSS_FADE: u32 = 13u32; +pub const WMT_VIDEOIMAGE_TRANSITION_DIAGONAL: u32 = 14u32; +pub const WMT_VIDEOIMAGE_TRANSITION_DIAMOND: u32 = 15u32; +pub const WMT_VIDEOIMAGE_TRANSITION_FADE_TO_COLOR: u32 = 16u32; +pub const WMT_VIDEOIMAGE_TRANSITION_FILLED_V: u32 = 17u32; +pub const WMT_VIDEOIMAGE_TRANSITION_FLIP: u32 = 18u32; +pub const WMT_VIDEOIMAGE_TRANSITION_INSET: u32 = 19u32; +pub const WMT_VIDEOIMAGE_TRANSITION_IRIS: u32 = 20u32; +pub const WMT_VIDEOIMAGE_TRANSITION_PAGE_ROLL: u32 = 21u32; +pub const WMT_VIDEOIMAGE_TRANSITION_RECTANGLE: u32 = 23u32; +pub const WMT_VIDEOIMAGE_TRANSITION_REVEAL: u32 = 24u32; +pub const WMT_VIDEOIMAGE_TRANSITION_SLIDE: u32 = 27u32; +pub const WMT_VIDEOIMAGE_TRANSITION_SPLIT: u32 = 29u32; +pub const WMT_VIDEOIMAGE_TRANSITION_STAR: u32 = 30u32; +pub const WMT_VIDEOIMAGE_TRANSITION_WHEEL: u32 = 31u32; +pub const WMT_WMETYPE_AUDIO: WMT_WATERMARK_ENTRY_TYPE = 1i32; +pub const WMT_WMETYPE_VIDEO: WMT_WATERMARK_ENTRY_TYPE = 2i32; +pub const WM_AETYPE_EXCLUDE: WM_AETYPE = 101i32; +pub const WM_AETYPE_INCLUDE: WM_AETYPE = 105i32; +pub const WM_CL_INTERLACED420: u32 = 0u32; +pub const WM_CL_PROGRESSIVE420: u32 = 1u32; +pub const WM_CT_BOTTOM_FIELD_FIRST: u32 = 32u32; +pub const WM_CT_INTERLACED: u32 = 128u32; +pub const WM_CT_REPEAT_FIRST_FIELD: u32 = 16u32; +pub const WM_CT_TOP_FIELD_FIRST: u32 = 64u32; +pub const WM_DM_DEINTERLACE_HALFSIZE: WM_DM_INTERLACED_TYPE = 2i32; +pub const WM_DM_DEINTERLACE_HALFSIZEDOUBLERATE: WM_DM_INTERLACED_TYPE = 3i32; +pub const WM_DM_DEINTERLACE_INVERSETELECINE: WM_DM_INTERLACED_TYPE = 4i32; +pub const WM_DM_DEINTERLACE_NORMAL: WM_DM_INTERLACED_TYPE = 1i32; +pub const WM_DM_DEINTERLACE_VERTICALHALFSIZEDOUBLERATE: WM_DM_INTERLACED_TYPE = 5i32; +pub const WM_DM_IT_DISABLE_COHERENT_MODE: WM_DM_IT_FIRST_FRAME_COHERENCY = 0i32; +pub const WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_BOTTOM: WM_DM_IT_FIRST_FRAME_COHERENCY = 6i32; +pub const WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_TOP: WM_DM_IT_FIRST_FRAME_COHERENCY = 1i32; +pub const WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_BOTTOM: WM_DM_IT_FIRST_FRAME_COHERENCY = 7i32; +pub const WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_TOP: WM_DM_IT_FIRST_FRAME_COHERENCY = 2i32; +pub const WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_BOTTOM: WM_DM_IT_FIRST_FRAME_COHERENCY = 8i32; +pub const WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_TOP: WM_DM_IT_FIRST_FRAME_COHERENCY = 3i32; +pub const WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_BOTTOM: WM_DM_IT_FIRST_FRAME_COHERENCY = 9i32; +pub const WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_TOP: WM_DM_IT_FIRST_FRAME_COHERENCY = 4i32; +pub const WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_BOTTOM: WM_DM_IT_FIRST_FRAME_COHERENCY = 10i32; +pub const WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_TOP: WM_DM_IT_FIRST_FRAME_COHERENCY = 5i32; +pub const WM_DM_NOTINTERLACED: WM_DM_INTERLACED_TYPE = 0i32; +pub const WM_MAX_STREAMS: u32 = 63u32; +pub const WM_MAX_VIDEO_STREAMS: u32 = 63u32; +pub const WM_PLAYBACK_DRC_HIGH: WM_PLAYBACK_DRC_LEVEL = 0i32; +pub const WM_PLAYBACK_DRC_LOW: WM_PLAYBACK_DRC_LEVEL = 2i32; +pub const WM_PLAYBACK_DRC_MEDIUM: WM_PLAYBACK_DRC_LEVEL = 1i32; +pub const WM_SFEX_DATALOSS: WM_SFEX_TYPE = 4i32; +pub const WM_SFEX_NOTASYNCPOINT: WM_SFEX_TYPE = 2i32; +pub const WM_SF_CLEANPOINT: WM_SF_TYPE = 1i32; +pub const WM_SF_DATALOSS: WM_SF_TYPE = 4i32; +pub const WM_SF_DISCONTINUITY: WM_SF_TYPE = 2i32; +pub const WM_SampleExtensionGUID_ChromaLocation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4c5acca0_9276_4b2c_9e4c_a0edefdd217e); +pub const WM_SampleExtensionGUID_ColorSpaceInfo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf79ada56_30eb_4f2b_9f7a_f24b139a1157); +pub const WM_SampleExtensionGUID_ContentType: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd590dc20_07bc_436c_9cf7_f3bbfbf1a4dc); +pub const WM_SampleExtensionGUID_FileName: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe165ec0e_19ed_45d7_b4a7_25cbd1e28e9b); +pub const WM_SampleExtensionGUID_OutputCleanPoint: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf72a3c6f_6eb4_4ebc_b192_09ad9759e828); +pub const WM_SampleExtensionGUID_PixelAspectRatio: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1b1ee554_f9ea_4bc8_821a_376b74e4c4b8); +pub const WM_SampleExtensionGUID_SampleDuration: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6bd9450_867f_4907_83a3_c77921b733ad); +pub const WM_SampleExtensionGUID_SampleProtectionSalt: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5403deee_b9ee_438f_aa83_3804997e569d); +pub const WM_SampleExtensionGUID_Timecode: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x399595ec_8667_4e2d_8fdb_98814ce76c1e); +pub const WM_SampleExtensionGUID_UserDataInfo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x732bb4fa_78be_4549_99bd_02db1a55b7a8); +pub const WM_SampleExtension_ChromaLocation_Size: u32 = 1u32; +pub const WM_SampleExtension_ColorSpaceInfo_Size: u32 = 3u32; +pub const WM_SampleExtension_ContentType_Size: u32 = 1u32; +pub const WM_SampleExtension_PixelAspectRatio_Size: u32 = 2u32; +pub const WM_SampleExtension_SampleDuration_Size: u32 = 2u32; +pub const WM_SampleExtension_Timecode_Size: u32 = 14u32; +pub const g_dwWMContentAttributes: u32 = 5u32; +pub const g_dwWMNSCAttributes: u32 = 5u32; +pub const g_dwWMSpecialAttributes: u32 = 20u32; +pub const g_wszASFLeakyBucketPairs: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ASFLeakyBucketPairs"); +pub const g_wszAllowInterlacedOutput: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AllowInterlacedOutput"); +pub const g_wszAverageLevel: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AverageLevel"); +pub const g_wszBufferAverage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Buffer Average"); +pub const g_wszComplexity: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_COMPLEXITYEX"); +pub const g_wszComplexityLive: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_COMPLEXITYEXLIVE"); +pub const g_wszComplexityMax: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_COMPLEXITYEXMAX"); +pub const g_wszComplexityOffline: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_COMPLEXITYEXOFFLINE"); +pub const g_wszDecoderComplexityRequested: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_DECODERCOMPLEXITYPROFILE"); +pub const g_wszDedicatedDeliveryThread: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DedicatedDeliveryThread"); +pub const g_wszDeinterlaceMode: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeinterlaceMode"); +pub const g_wszDeliverOnReceive: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeliverOnReceive"); +pub const g_wszDeviceConformanceTemplate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceConformanceTemplate"); +pub const g_wszDynamicRangeControl: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DynamicRangeControl"); +pub const g_wszEDL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_EDL"); +pub const g_wszEarlyDataDelivery: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EarlyDataDelivery"); +pub const g_wszEnableDiscreteOutput: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableDiscreteOutput"); +pub const g_wszEnableFrameInterpolation: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableFrameInterpolation"); +pub const g_wszEnableWMAProSPDIFOutput: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableWMAProSPDIFOutput"); +pub const g_wszFailSeekOnError: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FailSeekOnError"); +pub const g_wszFixedFrameRate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FixedFrameRate"); +pub const g_wszFold6To2Channels3: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Fold6To2Channels3"); +pub const g_wszFoldToChannelsTemplate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Fold%luTo%luChannels%lu"); +pub const g_wszInitialPatternForInverseTelecine: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InitialPatternForInverseTelecine"); +pub const g_wszInterlacedCoding: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InterlacedCoding"); +pub const g_wszIsVBRSupported: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_ISVBRSUPPORTED"); +pub const g_wszJPEGCompressionQuality: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("JPEGCompressionQuality"); +pub const g_wszJustInTimeDecode: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("JustInTimeDecode"); +pub const g_wszMixedClassMode: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MixedClassMode"); +pub const g_wszMusicClassMode: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MusicClassMode"); +pub const g_wszMusicSpeechClassMode: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MusicSpeechClassMode"); +pub const g_wszNeedsPreviousSample: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NeedsPreviousSample"); +pub const g_wszNumPasses: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_PASSESUSED"); +pub const g_wszOriginalSourceFormatTag: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_SOURCEFORMATTAG"); +pub const g_wszOriginalWaveFormat: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_ORIGINALWAVEFORMAT"); +pub const g_wszPeakValue: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PeakValue"); +pub const g_wszPermitSeeksBeyondEndOfStream: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PermitSeeksBeyondEndOfStream"); +pub const g_wszReloadIndexOnSeek: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReloadIndexOnSeek"); +pub const g_wszScrambledAudio: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScrambledAudio"); +pub const g_wszSingleOutputBuffer: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SingleOutputBuffer"); +pub const g_wszSoftwareScaling: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SoftwareScaling"); +pub const g_wszSourceBufferTime: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SourceBufferTime"); +pub const g_wszSourceMaxBytesAtOnce: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SourceMaxBytesAtOnce"); +pub const g_wszSpeakerConfig: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SpeakerConfig"); +pub const g_wszSpeechCaps: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SpeechFormatCap"); +pub const g_wszSpeechClassMode: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SpeechClassMode"); +pub const g_wszStreamLanguage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StreamLanguage"); +pub const g_wszStreamNumIndexObjects: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StreamNumIndexObjects"); +pub const g_wszUsePacketAtSeekPoint: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UsePacketAtSeekPoint"); +pub const g_wszVBRBitrateMax: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_RMAX"); +pub const g_wszVBRBufferWindowMax: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_BMAX"); +pub const g_wszVBREnabled: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_VBRENABLED"); +pub const g_wszVBRPeak: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VBR Peak"); +pub const g_wszVBRQuality: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_VBRQUALITY"); +pub const g_wszVideoSampleDurations: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VideoSampleDurations"); +pub const g_wszWMADID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ADID"); +pub const g_wszWMASFPacketCount: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ASFPacketCount"); +pub const g_wszWMASFSecurityObjectsSize: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ASFSecurityObjectsSize"); +pub const g_wszWMAlbumArtist: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/AlbumArtist"); +pub const g_wszWMAlbumArtistSort: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/AlbumArtistSort"); +pub const g_wszWMAlbumCoverURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/AlbumCoverURL"); +pub const g_wszWMAlbumTitle: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/AlbumTitle"); +pub const g_wszWMAlbumTitleSort: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/AlbumTitleSort"); +pub const g_wszWMAspectRatioX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AspectRatioX"); +pub const g_wszWMAspectRatioY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AspectRatioY"); +pub const g_wszWMAudioFileURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/AudioFileURL"); +pub const g_wszWMAudioSourceURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/AudioSourceURL"); +pub const g_wszWMAuthor: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Author"); +pub const g_wszWMAuthorSort: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AuthorSort"); +pub const g_wszWMAuthorURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/AuthorURL"); +pub const g_wszWMBannerImageData: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BannerImageData"); +pub const g_wszWMBannerImageType: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BannerImageType"); +pub const g_wszWMBannerImageURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BannerImageURL"); +pub const g_wszWMBeatsPerMinute: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/BeatsPerMinute"); +pub const g_wszWMBitrate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Bitrate"); +pub const g_wszWMBroadcast: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Broadcast"); +pub const g_wszWMCategory: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Category"); +pub const g_wszWMCodec: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Codec"); +pub const g_wszWMComposer: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Composer"); +pub const g_wszWMComposerSort: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ComposerSort"); +pub const g_wszWMConductor: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Conductor"); +pub const g_wszWMContainerFormat: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ContainerFormat"); +pub const g_wszWMContentDistributor: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ContentDistributor"); +pub const g_wszWMContentGroupDescription: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ContentGroupDescription"); +pub const g_wszWMCopyright: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Copyright"); +pub const g_wszWMCopyrightURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CopyrightURL"); +pub const g_wszWMCurrentBitrate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentBitrate"); +pub const g_wszWMDRM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/DRM"); +pub const g_wszWMDRM_ContentID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_ContentID"); +pub const g_wszWMDRM_Flags: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_Flags"); +pub const g_wszWMDRM_HeaderSignPrivKey: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_HeaderSignPrivKey"); +pub const g_wszWMDRM_IndividualizedVersion: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_IndividualizedVersion"); +pub const g_wszWMDRM_KeyID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_KeyID"); +pub const g_wszWMDRM_KeySeed: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_KeySeed"); +pub const g_wszWMDRM_LASignatureCert: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_LASignatureCert"); +pub const g_wszWMDRM_LASignatureLicSrvCert: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_LASignatureLicSrvCert"); +pub const g_wszWMDRM_LASignaturePrivKey: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_LASignaturePrivKey"); +pub const g_wszWMDRM_LASignatureRootCert: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_LASignatureRootCert"); +pub const g_wszWMDRM_Level: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_Level"); +pub const g_wszWMDRM_LicenseAcqURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_LicenseAcqURL"); +pub const g_wszWMDRM_SourceID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_SourceID"); +pub const g_wszWMDRM_V1LicenseAcqURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRM_V1LicenseAcqURL"); +pub const g_wszWMDVDID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/DVDID"); +pub const g_wszWMDescription: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const g_wszWMDirector: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Director"); +pub const g_wszWMDuration: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Duration"); +pub const g_wszWMEncodedBy: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/EncodedBy"); +pub const g_wszWMEncodingSettings: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/EncodingSettings"); +pub const g_wszWMEncodingTime: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/EncodingTime"); +pub const g_wszWMEpisodeNumber: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/EpisodeNumber"); +pub const g_wszWMFileSize: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileSize"); +pub const g_wszWMGenre: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Genre"); +pub const g_wszWMGenreID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/GenreID"); +pub const g_wszWMHasArbitraryDataStream: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HasArbitraryDataStream"); +pub const g_wszWMHasAttachedImages: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HasAttachedImages"); +pub const g_wszWMHasAudio: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HasAudio"); +pub const g_wszWMHasFileTransferStream: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HasFileTransferStream"); +pub const g_wszWMHasImage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HasImage"); +pub const g_wszWMHasScript: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HasScript"); +pub const g_wszWMHasVideo: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HasVideo"); +pub const g_wszWMISAN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ISAN"); +pub const g_wszWMISRC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ISRC"); +pub const g_wszWMInitialKey: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/InitialKey"); +pub const g_wszWMIsCompilation: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/IsCompilation"); +pub const g_wszWMIsVBR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsVBR"); +pub const g_wszWMLanguage: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Language"); +pub const g_wszWMLyrics: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Lyrics"); +pub const g_wszWMLyrics_Synchronised: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Lyrics_Synchronised"); +pub const g_wszWMMCDI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MCDI"); +pub const g_wszWMMediaClassPrimaryID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaClassPrimaryID"); +pub const g_wszWMMediaClassSecondaryID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaClassSecondaryID"); +pub const g_wszWMMediaCredits: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaCredits"); +pub const g_wszWMMediaIsDelay: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaIsDelay"); +pub const g_wszWMMediaIsFinale: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaIsFinale"); +pub const g_wszWMMediaIsLive: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaIsLive"); +pub const g_wszWMMediaIsPremiere: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaIsPremiere"); +pub const g_wszWMMediaIsRepeat: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaIsRepeat"); +pub const g_wszWMMediaIsSAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaIsSAP"); +pub const g_wszWMMediaIsStereo: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaIsStereo"); +pub const g_wszWMMediaIsSubtitled: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaIsSubtitled"); +pub const g_wszWMMediaIsTape: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaIsTape"); +pub const g_wszWMMediaNetworkAffiliation: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaNetworkAffiliation"); +pub const g_wszWMMediaOriginalBroadcastDateTime: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaOriginalBroadcastDateTime"); +pub const g_wszWMMediaOriginalChannel: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaOriginalChannel"); +pub const g_wszWMMediaStationCallSign: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaStationCallSign"); +pub const g_wszWMMediaStationName: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/MediaStationName"); +pub const g_wszWMModifiedBy: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ModifiedBy"); +pub const g_wszWMMood: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Mood"); +pub const g_wszWMNSCAddress: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NSC_Address"); +pub const g_wszWMNSCDescription: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NSC_Description"); +pub const g_wszWMNSCEmail: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NSC_Email"); +pub const g_wszWMNSCName: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NSC_Name"); +pub const g_wszWMNSCPhone: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NSC_Phone"); +pub const g_wszWMNumberOfFrames: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NumberOfFrames"); +pub const g_wszWMOptimalBitrate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OptimalBitrate"); +pub const g_wszWMOriginalAlbumTitle: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/OriginalAlbumTitle"); +pub const g_wszWMOriginalArtist: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/OriginalArtist"); +pub const g_wszWMOriginalFilename: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/OriginalFilename"); +pub const g_wszWMOriginalLyricist: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/OriginalLyricist"); +pub const g_wszWMOriginalReleaseTime: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/OriginalReleaseTime"); +pub const g_wszWMOriginalReleaseYear: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/OriginalReleaseYear"); +pub const g_wszWMParentalRating: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ParentalRating"); +pub const g_wszWMParentalRatingReason: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ParentalRatingReason"); +pub const g_wszWMPartOfSet: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/PartOfSet"); +pub const g_wszWMPeakBitrate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/PeakBitrate"); +pub const g_wszWMPeriod: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Period"); +pub const g_wszWMPicture: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Picture"); +pub const g_wszWMPlaylistDelay: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/PlaylistDelay"); +pub const g_wszWMProducer: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Producer"); +pub const g_wszWMPromotionURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/PromotionURL"); +pub const g_wszWMProtected: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Is_Protected"); +pub const g_wszWMProtectionType: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ProtectionType"); +pub const g_wszWMProvider: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Provider"); +pub const g_wszWMProviderCopyright: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ProviderCopyright"); +pub const g_wszWMProviderRating: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ProviderRating"); +pub const g_wszWMProviderStyle: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ProviderStyle"); +pub const g_wszWMPublisher: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Publisher"); +pub const g_wszWMRadioStationName: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/RadioStationName"); +pub const g_wszWMRadioStationOwner: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/RadioStationOwner"); +pub const g_wszWMRating: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Rating"); +pub const g_wszWMSeasonNumber: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/SeasonNumber"); +pub const g_wszWMSeekable: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Seekable"); +pub const g_wszWMSharedUserRating: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/SharedUserRating"); +pub const g_wszWMSignature_Name: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Signature_Name"); +pub const g_wszWMSkipBackward: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Can_Skip_Backward"); +pub const g_wszWMSkipForward: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Can_Skip_Forward"); +pub const g_wszWMStreamTypeInfo: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/StreamTypeInfo"); +pub const g_wszWMStridable: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Stridable"); +pub const g_wszWMSubTitle: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/SubTitle"); +pub const g_wszWMSubTitleDescription: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/SubTitleDescription"); +pub const g_wszWMSubscriptionContentID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/SubscriptionContentID"); +pub const g_wszWMText: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Text"); +pub const g_wszWMTitle: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Title"); +pub const g_wszWMTitleSort: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TitleSort"); +pub const g_wszWMToolName: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ToolName"); +pub const g_wszWMToolVersion: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/ToolVersion"); +pub const g_wszWMTrack: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Track"); +pub const g_wszWMTrackNumber: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/TrackNumber"); +pub const g_wszWMTrusted: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Is_Trusted"); +pub const g_wszWMUniqueFileIdentifier: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/UniqueFileIdentifier"); +pub const g_wszWMUse_Advanced_DRM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Use_Advanced_DRM"); +pub const g_wszWMUse_DRM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Use_DRM"); +pub const g_wszWMUserWebURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/UserWebURL"); +pub const g_wszWMVideoClosedCaptioning: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/VideoClosedCaptioning"); +pub const g_wszWMVideoFrameRate: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/VideoFrameRate"); +pub const g_wszWMVideoHeight: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/VideoHeight"); +pub const g_wszWMVideoWidth: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/VideoWidth"); +pub const g_wszWMWMADRCAverageReference: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/WMADRCAverageReference"); +pub const g_wszWMWMADRCAverageTarget: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/WMADRCAverageTarget"); +pub const g_wszWMWMADRCPeakReference: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/WMADRCPeakReference"); +pub const g_wszWMWMADRCPeakTarget: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/WMADRCPeakTarget"); +pub const g_wszWMWMCPDistributor: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/WMCPDistributor"); +pub const g_wszWMWMCPDistributorID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/WMCPDistributorID"); +pub const g_wszWMWMCollectionGroupID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/WMCollectionGroupID"); +pub const g_wszWMWMCollectionID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/WMCollectionID"); +pub const g_wszWMWMContentID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/WMContentID"); +pub const g_wszWMWMShadowFileSourceDRMType: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/WMShadowFileSourceDRMType"); +pub const g_wszWMWMShadowFileSourceFileType: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/WMShadowFileSourceFileType"); +pub const g_wszWMWriter: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Writer"); +pub const g_wszWMYear: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WM/Year"); +pub const g_wszWatermarkCLSID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WatermarkCLSID"); +pub const g_wszWatermarkConfig: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WatermarkConfig"); +pub type NETSOURCE_URLCREDPOLICY_SETTINGS = i32; +pub type WEBSTREAM_SAMPLE_TYPE = i32; +pub type WMT_ATTR_DATATYPE = i32; +pub type WMT_ATTR_IMAGETYPE = i32; +pub type WMT_CODEC_INFO_TYPE = i32; +pub type WMT_CREDENTIAL_FLAGS = i32; +pub type WMT_DRMLA_TRUST = i32; +pub type WMT_FILESINK_MODE = i32; +pub type WMT_IMAGE_TYPE = i32; +pub type WMT_INDEXER_TYPE = i32; +pub type WMT_INDEX_TYPE = i32; +pub type WMT_MUSICSPEECH_CLASS_MODE = i32; +pub type WMT_NET_PROTOCOL = i32; +pub type WMT_OFFSET_FORMAT = i32; +pub type WMT_PLAY_MODE = i32; +pub type WMT_PROXY_SETTINGS = i32; +pub type WMT_RIGHTS = i32; +pub type WMT_STATUS = i32; +pub type WMT_STORAGE_FORMAT = i32; +pub type WMT_STREAM_SELECTION = i32; +pub type WMT_TIMECODE_FRAMERATE = i32; +pub type WMT_TRANSPORT_TYPE = i32; +pub type WMT_VERSION = i32; +pub type WMT_WATERMARK_ENTRY_TYPE = i32; +pub type WM_AETYPE = i32; +pub type WM_DM_INTERLACED_TYPE = i32; +pub type WM_DM_IT_FIRST_FRAME_COHERENCY = i32; +pub type WM_PLAYBACK_DRC_LEVEL = i32; +pub type WM_SFEX_TYPE = i32; +pub type WM_SF_TYPE = i32; +pub type _AM_ASFWRITERCONFIG_PARAM = i32; +#[repr(C)] +pub struct AM_WMT_EVENT_DATA { + pub hrStatus: ::windows_sys::core::HRESULT, + pub pData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for AM_WMT_EVENT_DATA {} +impl ::core::clone::Clone for AM_WMT_EVENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRM_COPY_OPL { + pub wMinimumCopyLevel: u16, + pub oplIdIncludes: DRM_OPL_OUTPUT_IDS, + pub oplIdExcludes: DRM_OPL_OUTPUT_IDS, +} +impl ::core::marker::Copy for DRM_COPY_OPL {} +impl ::core::clone::Clone for DRM_COPY_OPL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRM_MINIMUM_OUTPUT_PROTECTION_LEVELS { + pub wCompressedDigitalVideo: u16, + pub wUncompressedDigitalVideo: u16, + pub wAnalogVideo: u16, + pub wCompressedDigitalAudio: u16, + pub wUncompressedDigitalAudio: u16, +} +impl ::core::marker::Copy for DRM_MINIMUM_OUTPUT_PROTECTION_LEVELS {} +impl ::core::clone::Clone for DRM_MINIMUM_OUTPUT_PROTECTION_LEVELS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRM_OPL_OUTPUT_IDS { + pub cIds: u16, + pub rgIds: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for DRM_OPL_OUTPUT_IDS {} +impl ::core::clone::Clone for DRM_OPL_OUTPUT_IDS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRM_OUTPUT_PROTECTION { + pub guidId: ::windows_sys::core::GUID, + pub bConfigData: u8, +} +impl ::core::marker::Copy for DRM_OUTPUT_PROTECTION {} +impl ::core::clone::Clone for DRM_OUTPUT_PROTECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRM_PLAY_OPL { + pub minOPL: DRM_MINIMUM_OUTPUT_PROTECTION_LEVELS, + pub oplIdReserved: DRM_OPL_OUTPUT_IDS, + pub vopi: DRM_VIDEO_OUTPUT_PROTECTION_IDS, +} +impl ::core::marker::Copy for DRM_PLAY_OPL {} +impl ::core::clone::Clone for DRM_PLAY_OPL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRM_VAL16 { + pub val: [u8; 16], +} +impl ::core::marker::Copy for DRM_VAL16 {} +impl ::core::clone::Clone for DRM_VAL16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRM_VIDEO_OUTPUT_PROTECTION_IDS { + pub cEntries: u16, + pub rgVop: *mut DRM_OUTPUT_PROTECTION, +} +impl ::core::marker::Copy for DRM_VIDEO_OUTPUT_PROTECTION_IDS {} +impl ::core::clone::Clone for DRM_VIDEO_OUTPUT_PROTECTION_IDS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WMDRM_IMPORT_INIT_STRUCT { + pub dwVersion: u32, + pub cbEncryptedSessionKeyMessage: u32, + pub pbEncryptedSessionKeyMessage: *mut u8, + pub cbEncryptedKeyMessage: u32, + pub pbEncryptedKeyMessage: *mut u8, +} +impl ::core::marker::Copy for WMDRM_IMPORT_INIT_STRUCT {} +impl ::core::clone::Clone for WMDRM_IMPORT_INIT_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct WMMPEG2VIDEOINFO { + pub hdr: WMVIDEOINFOHEADER2, + pub dwStartTimeCode: u32, + pub cbSequenceHeader: u32, + pub dwProfile: u32, + pub dwLevel: u32, + pub dwFlags: u32, + pub dwSequenceHeader: [u32; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for WMMPEG2VIDEOINFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for WMMPEG2VIDEOINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WMSCRIPTFORMAT { + pub scriptType: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for WMSCRIPTFORMAT {} +impl ::core::clone::Clone for WMSCRIPTFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WMT_BUFFER_SEGMENT { + pub pBuffer: INSSBuffer, + pub cbOffset: u32, + pub cbLength: u32, +} +impl ::core::marker::Copy for WMT_BUFFER_SEGMENT {} +impl ::core::clone::Clone for WMT_BUFFER_SEGMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WMT_COLORSPACEINFO_EXTENSION_DATA { + pub ucColorPrimaries: u8, + pub ucColorTransferChar: u8, + pub ucColorMatrixCoef: u8, +} +impl ::core::marker::Copy for WMT_COLORSPACEINFO_EXTENSION_DATA {} +impl ::core::clone::Clone for WMT_COLORSPACEINFO_EXTENSION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WMT_FILESINK_DATA_UNIT { + pub packetHeaderBuffer: WMT_BUFFER_SEGMENT, + pub cPayloads: u32, + pub pPayloadHeaderBuffers: *mut WMT_BUFFER_SEGMENT, + pub cPayloadDataFragments: u32, + pub pPayloadDataFragments: *mut WMT_PAYLOAD_FRAGMENT, +} +impl ::core::marker::Copy for WMT_FILESINK_DATA_UNIT {} +impl ::core::clone::Clone for WMT_FILESINK_DATA_UNIT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WMT_PAYLOAD_FRAGMENT { + pub dwPayloadIndex: u32, + pub segmentData: WMT_BUFFER_SEGMENT, +} +impl ::core::marker::Copy for WMT_PAYLOAD_FRAGMENT {} +impl ::core::clone::Clone for WMT_PAYLOAD_FRAGMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct WMT_TIMECODE_EXTENSION_DATA { + pub wRange: u16, + pub dwTimecode: u32, + pub dwUserbits: u32, + pub dwAmFlags: u32, +} +impl ::core::marker::Copy for WMT_TIMECODE_EXTENSION_DATA {} +impl ::core::clone::Clone for WMT_TIMECODE_EXTENSION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WMT_VIDEOIMAGE_SAMPLE { + pub dwMagic: u32, + pub cbStruct: u32, + pub dwControlFlags: u32, + pub dwInputFlagsCur: u32, + pub lCurMotionXtoX: i32, + pub lCurMotionYtoX: i32, + pub lCurMotionXoffset: i32, + pub lCurMotionXtoY: i32, + pub lCurMotionYtoY: i32, + pub lCurMotionYoffset: i32, + pub lCurBlendCoef1: i32, + pub lCurBlendCoef2: i32, + pub dwInputFlagsPrev: u32, + pub lPrevMotionXtoX: i32, + pub lPrevMotionYtoX: i32, + pub lPrevMotionXoffset: i32, + pub lPrevMotionXtoY: i32, + pub lPrevMotionYtoY: i32, + pub lPrevMotionYoffset: i32, + pub lPrevBlendCoef1: i32, + pub lPrevBlendCoef2: i32, +} +impl ::core::marker::Copy for WMT_VIDEOIMAGE_SAMPLE {} +impl ::core::clone::Clone for WMT_VIDEOIMAGE_SAMPLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WMT_VIDEOIMAGE_SAMPLE2 { + pub dwMagic: u32, + pub dwStructSize: u32, + pub dwControlFlags: u32, + pub dwViewportWidth: u32, + pub dwViewportHeight: u32, + pub dwCurrImageWidth: u32, + pub dwCurrImageHeight: u32, + pub fCurrRegionX0: f32, + pub fCurrRegionY0: f32, + pub fCurrRegionWidth: f32, + pub fCurrRegionHeight: f32, + pub fCurrBlendCoef: f32, + pub dwPrevImageWidth: u32, + pub dwPrevImageHeight: u32, + pub fPrevRegionX0: f32, + pub fPrevRegionY0: f32, + pub fPrevRegionWidth: f32, + pub fPrevRegionHeight: f32, + pub fPrevBlendCoef: f32, + pub dwEffectType: u32, + pub dwNumEffectParas: u32, + pub fEffectPara0: f32, + pub fEffectPara1: f32, + pub fEffectPara2: f32, + pub fEffectPara3: f32, + pub fEffectPara4: f32, + pub bKeepPrevImage: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WMT_VIDEOIMAGE_SAMPLE2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WMT_VIDEOIMAGE_SAMPLE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WMT_WATERMARK_ENTRY { + pub wmetType: WMT_WATERMARK_ENTRY_TYPE, + pub clsid: ::windows_sys::core::GUID, + pub cbDisplayName: u32, + pub pwszDisplayName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WMT_WATERMARK_ENTRY {} +impl ::core::clone::Clone for WMT_WATERMARK_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WMT_WEBSTREAM_FORMAT { + pub cbSize: u16, + pub cbSampleHeaderFixedData: u16, + pub wVersion: u16, + pub wReserved: u16, +} +impl ::core::marker::Copy for WMT_WEBSTREAM_FORMAT {} +impl ::core::clone::Clone for WMT_WEBSTREAM_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WMT_WEBSTREAM_SAMPLE_HEADER { + pub cbLength: u16, + pub wPart: u16, + pub cTotalParts: u16, + pub wSampleType: u16, + pub wszURL: [u16; 1], +} +impl ::core::marker::Copy for WMT_WEBSTREAM_SAMPLE_HEADER {} +impl ::core::clone::Clone for WMT_WEBSTREAM_SAMPLE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct WMVIDEOINFOHEADER { + pub rcSource: super::super::Foundation::RECT, + pub rcTarget: super::super::Foundation::RECT, + pub dwBitRate: u32, + pub dwBitErrorRate: u32, + pub AvgTimePerFrame: i64, + pub bmiHeader: super::super::Graphics::Gdi::BITMAPINFOHEADER, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for WMVIDEOINFOHEADER {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for WMVIDEOINFOHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct WMVIDEOINFOHEADER2 { + pub rcSource: super::super::Foundation::RECT, + pub rcTarget: super::super::Foundation::RECT, + pub dwBitRate: u32, + pub dwBitErrorRate: u32, + pub AvgTimePerFrame: i64, + pub dwInterlaceFlags: u32, + pub dwCopyProtectFlags: u32, + pub dwPictAspectRatioX: u32, + pub dwPictAspectRatioY: u32, + pub dwReserved1: u32, + pub dwReserved2: u32, + pub bmiHeader: super::super::Graphics::Gdi::BITMAPINFOHEADER, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for WMVIDEOINFOHEADER2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for WMVIDEOINFOHEADER2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WM_ADDRESS_ACCESSENTRY { + pub dwIPAddress: u32, + pub dwMask: u32, +} +impl ::core::marker::Copy for WM_ADDRESS_ACCESSENTRY {} +impl ::core::clone::Clone for WM_ADDRESS_ACCESSENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WM_CLIENT_PROPERTIES { + pub dwIPAddress: u32, + pub dwPort: u32, +} +impl ::core::marker::Copy for WM_CLIENT_PROPERTIES {} +impl ::core::clone::Clone for WM_CLIENT_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WM_CLIENT_PROPERTIES_EX { + pub cbSize: u32, + pub pwszIPAddress: ::windows_sys::core::PCWSTR, + pub pwszPort: ::windows_sys::core::PCWSTR, + pub pwszDNSName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WM_CLIENT_PROPERTIES_EX {} +impl ::core::clone::Clone for WM_CLIENT_PROPERTIES_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WM_LEAKY_BUCKET_PAIR { + pub dwBitrate: u32, + pub msBufferWindow: u32, +} +impl ::core::marker::Copy for WM_LEAKY_BUCKET_PAIR {} +impl ::core::clone::Clone for WM_LEAKY_BUCKET_PAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WM_MEDIA_TYPE { + pub majortype: ::windows_sys::core::GUID, + pub subtype: ::windows_sys::core::GUID, + pub bFixedSizeSamples: super::super::Foundation::BOOL, + pub bTemporalCompression: super::super::Foundation::BOOL, + pub lSampleSize: u32, + pub formattype: ::windows_sys::core::GUID, + pub pUnk: ::windows_sys::core::IUnknown, + pub cbFormat: u32, + pub pbFormat: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WM_MEDIA_TYPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WM_MEDIA_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WM_PICTURE { + pub pwszMIMEType: ::windows_sys::core::PWSTR, + pub bPictureType: u8, + pub pwszDescription: ::windows_sys::core::PWSTR, + pub dwDataLen: u32, + pub pbData: *mut u8, +} +impl ::core::marker::Copy for WM_PICTURE {} +impl ::core::clone::Clone for WM_PICTURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WM_PORT_NUMBER_RANGE { + pub wPortBegin: u16, + pub wPortEnd: u16, +} +impl ::core::marker::Copy for WM_PORT_NUMBER_RANGE {} +impl ::core::clone::Clone for WM_PORT_NUMBER_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WM_READER_CLIENTINFO { + pub cbSize: u32, + pub wszLang: ::windows_sys::core::PWSTR, + pub wszBrowserUserAgent: ::windows_sys::core::PWSTR, + pub wszBrowserWebPage: ::windows_sys::core::PWSTR, + pub qwReserved: u64, + pub pReserved: *mut super::super::Foundation::LPARAM, + pub wszHostExe: ::windows_sys::core::PWSTR, + pub qwHostVersion: u64, + pub wszPlayerUserAgent: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WM_READER_CLIENTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WM_READER_CLIENTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WM_READER_STATISTICS { + pub cbSize: u32, + pub dwBandwidth: u32, + pub cPacketsReceived: u32, + pub cPacketsRecovered: u32, + pub cPacketsLost: u32, + pub wQuality: u16, +} +impl ::core::marker::Copy for WM_READER_STATISTICS {} +impl ::core::clone::Clone for WM_READER_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WM_STREAM_PRIORITY_RECORD { + pub wStreamNumber: u16, + pub fMandatory: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WM_STREAM_PRIORITY_RECORD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WM_STREAM_PRIORITY_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WM_STREAM_TYPE_INFO { + pub guidMajorType: ::windows_sys::core::GUID, + pub cbFormat: u32, +} +impl ::core::marker::Copy for WM_STREAM_TYPE_INFO {} +impl ::core::clone::Clone for WM_STREAM_TYPE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WM_SYNCHRONISED_LYRICS { + pub bTimeStampFormat: u8, + pub bContentType: u8, + pub pwszContentDescriptor: ::windows_sys::core::PWSTR, + pub dwLyricsLen: u32, + pub pbLyrics: *mut u8, +} +impl ::core::marker::Copy for WM_SYNCHRONISED_LYRICS {} +impl ::core::clone::Clone for WM_SYNCHRONISED_LYRICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WM_USER_TEXT { + pub pwszDescription: ::windows_sys::core::PWSTR, + pub pwszText: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WM_USER_TEXT {} +impl ::core::clone::Clone for WM_USER_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WM_USER_WEB_URL { + pub pwszDescription: ::windows_sys::core::PWSTR, + pub pwszURL: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WM_USER_WEB_URL {} +impl ::core::clone::Clone for WM_USER_WEB_URL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WM_WRITER_STATISTICS { + pub qwSampleCount: u64, + pub qwByteCount: u64, + pub qwDroppedSampleCount: u64, + pub qwDroppedByteCount: u64, + pub dwCurrentBitrate: u32, + pub dwAverageBitrate: u32, + pub dwExpectedBitrate: u32, + pub dwCurrentSampleRate: u32, + pub dwAverageSampleRate: u32, + pub dwExpectedSampleRate: u32, +} +impl ::core::marker::Copy for WM_WRITER_STATISTICS {} +impl ::core::clone::Clone for WM_WRITER_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WM_WRITER_STATISTICS_EX { + pub dwBitratePlusOverhead: u32, + pub dwCurrentSampleDropRateInQueue: u32, + pub dwCurrentSampleDropRateInCodec: u32, + pub dwCurrentSampleDropRateInMultiplexer: u32, + pub dwTotalSampleDropsInQueue: u32, + pub dwTotalSampleDropsInCodec: u32, + pub dwTotalSampleDropsInMultiplexer: u32, +} +impl ::core::marker::Copy for WM_WRITER_STATISTICS_EX {} +impl ::core::clone::Clone for WM_WRITER_STATISTICS_EX { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Media/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/mod.rs new file mode 100644 index 000000000..68e83a19f --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Media/mod.rs @@ -0,0 +1,237 @@ +#[cfg(feature = "Win32_Media_Audio")] +#[doc = "Required features: `\"Win32_Media_Audio\"`"] +pub mod Audio; +#[cfg(feature = "Win32_Media_DxMediaObjects")] +#[doc = "Required features: `\"Win32_Media_DxMediaObjects\"`"] +pub mod DxMediaObjects; +#[cfg(feature = "Win32_Media_KernelStreaming")] +#[doc = "Required features: `\"Win32_Media_KernelStreaming\"`"] +pub mod KernelStreaming; +#[cfg(feature = "Win32_Media_Multimedia")] +#[doc = "Required features: `\"Win32_Media_Multimedia\"`"] +pub mod Multimedia; +#[cfg(feature = "Win32_Media_Streaming")] +#[doc = "Required features: `\"Win32_Media_Streaming\"`"] +pub mod Streaming; +#[cfg(feature = "Win32_Media_WindowsMediaFormat")] +#[doc = "Required features: `\"Win32_Media_WindowsMediaFormat\"`"] +pub mod WindowsMediaFormat; +::windows_targets::link!("winmm.dll" "system" fn timeBeginPeriod(uperiod : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn timeEndPeriod(uperiod : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn timeGetDevCaps(ptc : *mut TIMECAPS, cbtc : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn timeGetSystemTime(pmmt : *mut MMTIME, cbmmt : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn timeGetTime() -> u32); +::windows_targets::link!("winmm.dll" "system" fn timeKillEvent(utimerid : u32) -> u32); +::windows_targets::link!("winmm.dll" "system" fn timeSetEvent(udelay : u32, uresolution : u32, fptc : LPTIMECALLBACK, dwuser : usize, fuevent : u32) -> u32); +pub type IReferenceClock = *mut ::core::ffi::c_void; +pub type IReferenceClock2 = *mut ::core::ffi::c_void; +pub type IReferenceClockTimerControl = *mut ::core::ffi::c_void; +pub const ED_DEVCAP_ATN_READ: TIMECODE_SAMPLE_FLAGS = 5047u32; +pub const ED_DEVCAP_RTC_READ: TIMECODE_SAMPLE_FLAGS = 5050u32; +pub const ED_DEVCAP_TIMECODE_READ: TIMECODE_SAMPLE_FLAGS = 4121u32; +pub const JOYERR_BASE: u32 = 160u32; +pub const MAXERRORLENGTH: u32 = 256u32; +pub const MAXPNAMELEN: u32 = 32u32; +pub const MCIERR_BASE: u32 = 256u32; +pub const MCI_CD_OFFSET: u32 = 1088u32; +pub const MCI_SEQ_OFFSET: u32 = 1216u32; +pub const MCI_STRING_OFFSET: u32 = 512u32; +pub const MCI_VD_OFFSET: u32 = 1024u32; +pub const MCI_WAVE_OFFSET: u32 = 1152u32; +pub const MIDIERR_BASE: u32 = 64u32; +pub const MIXERR_BASE: u32 = 1024u32; +pub const MMSYSERR_ALLOCATED: u32 = 4u32; +pub const MMSYSERR_BADDB: u32 = 14u32; +pub const MMSYSERR_BADDEVICEID: u32 = 2u32; +pub const MMSYSERR_BADERRNUM: u32 = 9u32; +pub const MMSYSERR_BASE: u32 = 0u32; +pub const MMSYSERR_DELETEERROR: u32 = 18u32; +pub const MMSYSERR_ERROR: u32 = 1u32; +pub const MMSYSERR_HANDLEBUSY: u32 = 12u32; +pub const MMSYSERR_INVALFLAG: u32 = 10u32; +pub const MMSYSERR_INVALHANDLE: u32 = 5u32; +pub const MMSYSERR_INVALIDALIAS: u32 = 13u32; +pub const MMSYSERR_INVALPARAM: u32 = 11u32; +pub const MMSYSERR_KEYNOTFOUND: u32 = 15u32; +pub const MMSYSERR_LASTERROR: u32 = 21u32; +pub const MMSYSERR_MOREDATA: u32 = 21u32; +pub const MMSYSERR_NODRIVER: u32 = 6u32; +pub const MMSYSERR_NODRIVERCB: u32 = 20u32; +pub const MMSYSERR_NOERROR: u32 = 0u32; +pub const MMSYSERR_NOMEM: u32 = 7u32; +pub const MMSYSERR_NOTENABLED: u32 = 3u32; +pub const MMSYSERR_NOTSUPPORTED: u32 = 8u32; +pub const MMSYSERR_READERROR: u32 = 16u32; +pub const MMSYSERR_VALNOTFOUND: u32 = 19u32; +pub const MMSYSERR_WRITEERROR: u32 = 17u32; +pub const MM_ADLIB: u32 = 9u32; +pub const MM_DRVM_CLOSE: u32 = 977u32; +pub const MM_DRVM_DATA: u32 = 978u32; +pub const MM_DRVM_ERROR: u32 = 979u32; +pub const MM_DRVM_OPEN: u32 = 976u32; +pub const MM_JOY1BUTTONDOWN: u32 = 949u32; +pub const MM_JOY1BUTTONUP: u32 = 951u32; +pub const MM_JOY1MOVE: u32 = 928u32; +pub const MM_JOY1ZMOVE: u32 = 930u32; +pub const MM_JOY2BUTTONDOWN: u32 = 950u32; +pub const MM_JOY2BUTTONUP: u32 = 952u32; +pub const MM_JOY2MOVE: u32 = 929u32; +pub const MM_JOY2ZMOVE: u32 = 931u32; +pub const MM_MCINOTIFY: u32 = 953u32; +pub const MM_MCISIGNAL: u32 = 971u32; +pub const MM_MICROSOFT: u32 = 1u32; +pub const MM_MIDI_MAPPER: u32 = 1u32; +pub const MM_MIM_CLOSE: u32 = 962u32; +pub const MM_MIM_DATA: u32 = 963u32; +pub const MM_MIM_ERROR: u32 = 965u32; +pub const MM_MIM_LONGDATA: u32 = 964u32; +pub const MM_MIM_LONGERROR: u32 = 966u32; +pub const MM_MIM_MOREDATA: u32 = 972u32; +pub const MM_MIM_OPEN: u32 = 961u32; +pub const MM_MIXM_CONTROL_CHANGE: u32 = 977u32; +pub const MM_MIXM_LINE_CHANGE: u32 = 976u32; +pub const MM_MOM_CLOSE: u32 = 968u32; +pub const MM_MOM_DONE: u32 = 969u32; +pub const MM_MOM_OPEN: u32 = 967u32; +pub const MM_MOM_POSITIONCB: u32 = 970u32; +pub const MM_MPU401_MIDIIN: u32 = 11u32; +pub const MM_MPU401_MIDIOUT: u32 = 10u32; +pub const MM_PC_JOYSTICK: u32 = 12u32; +pub const MM_SNDBLST_MIDIIN: u32 = 4u32; +pub const MM_SNDBLST_MIDIOUT: u32 = 3u32; +pub const MM_SNDBLST_SYNTH: u32 = 5u32; +pub const MM_SNDBLST_WAVEIN: u32 = 7u32; +pub const MM_SNDBLST_WAVEOUT: u32 = 6u32; +pub const MM_STREAM_CLOSE: u32 = 981u32; +pub const MM_STREAM_DONE: u32 = 982u32; +pub const MM_STREAM_ERROR: u32 = 983u32; +pub const MM_STREAM_OPEN: u32 = 980u32; +pub const MM_WAVE_MAPPER: u32 = 2u32; +pub const MM_WIM_CLOSE: u32 = 959u32; +pub const MM_WIM_DATA: u32 = 960u32; +pub const MM_WIM_OPEN: u32 = 958u32; +pub const MM_WOM_CLOSE: u32 = 956u32; +pub const MM_WOM_DONE: u32 = 957u32; +pub const MM_WOM_OPEN: u32 = 955u32; +pub const TIMERR_BASE: u32 = 96u32; +pub const TIMERR_NOCANDO: u32 = 97u32; +pub const TIMERR_NOERROR: u32 = 0u32; +pub const TIMERR_STRUCT: u32 = 129u32; +pub const TIME_BYTES: u32 = 4u32; +pub const TIME_CALLBACK_EVENT_PULSE: u32 = 32u32; +pub const TIME_CALLBACK_EVENT_SET: u32 = 16u32; +pub const TIME_CALLBACK_FUNCTION: u32 = 0u32; +pub const TIME_KILL_SYNCHRONOUS: u32 = 256u32; +pub const TIME_MIDI: u32 = 16u32; +pub const TIME_MS: u32 = 1u32; +pub const TIME_ONESHOT: u32 = 0u32; +pub const TIME_PERIODIC: u32 = 1u32; +pub const TIME_SAMPLES: u32 = 2u32; +pub const TIME_SMPTE: u32 = 8u32; +pub const TIME_TICKS: u32 = 32u32; +pub const WAVERR_BASE: u32 = 32u32; +pub type TIMECODE_SAMPLE_FLAGS = u32; +pub type HTASK = isize; +#[repr(C, packed(1))] +pub struct MMTIME { + pub wType: u32, + pub u: MMTIME_0, +} +impl ::core::marker::Copy for MMTIME {} +impl ::core::clone::Clone for MMTIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union MMTIME_0 { + pub ms: u32, + pub sample: u32, + pub cb: u32, + pub ticks: u32, + pub smpte: MMTIME_0_1, + pub midi: MMTIME_0_0, +} +impl ::core::marker::Copy for MMTIME_0 {} +impl ::core::clone::Clone for MMTIME_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MMTIME_0_0 { + pub songptrpos: u32, +} +impl ::core::marker::Copy for MMTIME_0_0 {} +impl ::core::clone::Clone for MMTIME_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MMTIME_0_1 { + pub hour: u8, + pub min: u8, + pub sec: u8, + pub frame: u8, + pub fps: u8, + pub dummy: u8, + pub pad: [u8; 2], +} +impl ::core::marker::Copy for MMTIME_0_1 {} +impl ::core::clone::Clone for MMTIME_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TIMECAPS { + pub wPeriodMin: u32, + pub wPeriodMax: u32, +} +impl ::core::marker::Copy for TIMECAPS {} +impl ::core::clone::Clone for TIMECAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union TIMECODE { + pub Anonymous: TIMECODE_0, + pub qw: u64, +} +impl ::core::marker::Copy for TIMECODE {} +impl ::core::clone::Clone for TIMECODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TIMECODE_0 { + pub wFrameRate: u16, + pub wFrameFract: u16, + pub dwFrames: u32, +} +impl ::core::marker::Copy for TIMECODE_0 {} +impl ::core::clone::Clone for TIMECODE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TIMECODE_SAMPLE { + pub qwTick: i64, + pub timecode: TIMECODE, + pub dwUser: u32, + pub dwFlags: TIMECODE_SAMPLE_FLAGS, +} +impl ::core::marker::Copy for TIMECODE_SAMPLE {} +impl ::core::clone::Clone for TIMECODE_SAMPLE { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Media_Multimedia\"`"] +#[cfg(feature = "Win32_Media_Multimedia")] +pub type LPDRVCALLBACK = ::core::option::Option ()>; +pub type LPTIMECALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Dhcp/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Dhcp/mod.rs new file mode 100644 index 000000000..72ac85ea4 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Dhcp/mod.rs @@ -0,0 +1,2878 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpAddFilterV4(serveripaddress : ::windows_sys::core::PCWSTR, addfilterinfo : *const DHCP_FILTER_ADD_INFO, forceflag : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpAddSecurityGroup(pserver : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpAddServer(flags : u32, idinfo : *mut ::core::ffi::c_void, newserver : *mut DHCPDS_SERVER, callbackfn : *mut ::core::ffi::c_void, callbackdata : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpAddSubnetElement(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, addelementinfo : *const DHCP_SUBNET_ELEMENT_DATA) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpAddSubnetElementV4(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, addelementinfo : *const DHCP_SUBNET_ELEMENT_DATA_V4) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpAddSubnetElementV5(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, addelementinfo : *const DHCP_SUBNET_ELEMENT_DATA_V5) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpAddSubnetElementV6(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : DHCP_IPV6_ADDRESS, addelementinfo : *mut DHCP_SUBNET_ELEMENT_DATA_V6) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpAuditLogGetParams(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, auditlogdir : *mut ::windows_sys::core::PWSTR, diskcheckinterval : *mut u32, maxlogfilessize : *mut u32, minspaceondisk : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpAuditLogSetParams(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, auditlogdir : ::windows_sys::core::PCWSTR, diskcheckinterval : u32, maxlogfilessize : u32, minspaceondisk : u32) -> u32); +::windows_targets::link!("dhcpcsvc.dll" "system" fn DhcpCApiCleanup() -> ()); +::windows_targets::link!("dhcpcsvc.dll" "system" fn DhcpCApiInitialize(version : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpCreateClass(serveripaddress : ::windows_sys::core::PCWSTR, reservedmustbezero : u32, classinfo : *mut DHCP_CLASS_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpCreateClassV6(serveripaddress : ::windows_sys::core::PCWSTR, reservedmustbezero : u32, classinfo : *mut DHCP_CLASS_INFO_V6) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpCreateClientInfo(serveripaddress : ::windows_sys::core::PCWSTR, clientinfo : *const DHCP_CLIENT_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpCreateClientInfoV4(serveripaddress : ::windows_sys::core::PCWSTR, clientinfo : *const DHCP_CLIENT_INFO_V4) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpCreateClientInfoVQ(serveripaddress : ::windows_sys::core::PCWSTR, clientinfo : *const DHCP_CLIENT_INFO_VQ) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpCreateOption(serveripaddress : ::windows_sys::core::PCWSTR, optionid : u32, optioninfo : *const DHCP_OPTION) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpCreateOptionV5(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, optioninfo : *mut DHCP_OPTION) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpCreateOptionV6(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, optioninfo : *mut DHCP_OPTION) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpCreateSubnet(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, subnetinfo : *const DHCP_SUBNET_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpCreateSubnetV6(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : DHCP_IPV6_ADDRESS, subnetinfo : *mut DHCP_SUBNET_INFO_V6) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpCreateSubnetVQ(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, subnetinfo : *const DHCP_SUBNET_INFO_VQ) -> u32); +::windows_targets::link!("dhcpcsvc.dll" "system" fn DhcpDeRegisterParamChange(flags : u32, reserved : *mut ::core::ffi::c_void, event : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpDeleteClass(serveripaddress : ::windows_sys::core::PCWSTR, reservedmustbezero : u32, classname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpDeleteClassV6(serveripaddress : ::windows_sys::core::PCWSTR, reservedmustbezero : u32, classname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpDeleteClientInfo(serveripaddress : ::windows_sys::core::PCWSTR, clientinfo : *const DHCP_SEARCH_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpDeleteClientInfoV6(serveripaddress : ::windows_sys::core::PCWSTR, clientinfo : *const DHCP_SEARCH_INFO_V6) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpDeleteFilterV4(serveripaddress : ::windows_sys::core::PCWSTR, deletefilterinfo : *const DHCP_ADDR_PATTERN) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpDeleteServer(flags : u32, idinfo : *mut ::core::ffi::c_void, newserver : *mut DHCPDS_SERVER, callbackfn : *mut ::core::ffi::c_void, callbackdata : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpDeleteSubnet(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, forceflag : DHCP_FORCE_FLAG) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpDeleteSubnetV6(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : DHCP_IPV6_ADDRESS, forceflag : DHCP_FORCE_FLAG) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpDeleteSuperScopeV4(serveripaddress : ::windows_sys::core::PCWSTR, superscopename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpDsCleanup() -> ()); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpDsInit() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpEnumClasses(serveripaddress : ::windows_sys::core::PCWSTR, reservedmustbezero : u32, resumehandle : *mut u32, preferredmaximum : u32, classinfoarray : *mut *mut DHCP_CLASS_INFO_ARRAY, nread : *mut u32, ntotal : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpEnumClassesV6(serveripaddress : ::windows_sys::core::PCWSTR, reservedmustbezero : u32, resumehandle : *mut u32, preferredmaximum : u32, classinfoarray : *mut *mut DHCP_CLASS_INFO_ARRAY_V6, nread : *mut u32, ntotal : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpEnumFilterV4(serveripaddress : ::windows_sys::core::PCWSTR, resumehandle : *mut DHCP_ADDR_PATTERN, preferredmaximum : u32, listtype : DHCP_FILTER_LIST_TYPE, enumfilterinfo : *mut *mut DHCP_FILTER_ENUM_INFO, elementsread : *mut u32, elementstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumOptionValues(serveripaddress : ::windows_sys::core::PCWSTR, scopeinfo : *const DHCP_OPTION_SCOPE_INFO, resumehandle : *mut u32, preferredmaximum : u32, optionvalues : *mut *mut DHCP_OPTION_VALUE_ARRAY, optionsread : *mut u32, optionstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumOptionValuesV5(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO, resumehandle : *mut u32, preferredmaximum : u32, optionvalues : *mut *mut DHCP_OPTION_VALUE_ARRAY, optionsread : *mut u32, optionstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumOptionValuesV6(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO6, resumehandle : *mut u32, preferredmaximum : u32, optionvalues : *mut *mut DHCP_OPTION_VALUE_ARRAY, optionsread : *mut u32, optionstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumOptions(serveripaddress : ::windows_sys::core::PCWSTR, resumehandle : *mut u32, preferredmaximum : u32, options : *mut *mut DHCP_OPTION_ARRAY, optionsread : *mut u32, optionstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumOptionsV5(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, resumehandle : *mut u32, preferredmaximum : u32, options : *mut *mut DHCP_OPTION_ARRAY, optionsread : *mut u32, optionstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumOptionsV6(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, resumehandle : *mut u32, preferredmaximum : u32, options : *mut *mut DHCP_OPTION_ARRAY, optionsread : *mut u32, optionstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumServers(flags : u32, idinfo : *mut ::core::ffi::c_void, servers : *mut *mut DHCPDS_SERVERS, callbackfn : *mut ::core::ffi::c_void, callbackdata : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumSubnetClients(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, resumehandle : *mut u32, preferredmaximum : u32, clientinfo : *mut *mut DHCP_CLIENT_INFO_ARRAY, clientsread : *mut u32, clientstotal : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpEnumSubnetClientsFilterStatusInfo(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, resumehandle : *mut u32, preferredmaximum : u32, clientinfo : *mut *mut DHCP_CLIENT_FILTER_STATUS_INFO_ARRAY, clientsread : *mut u32, clientstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumSubnetClientsV4(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, resumehandle : *mut u32, preferredmaximum : u32, clientinfo : *mut *mut DHCP_CLIENT_INFO_ARRAY_V4, clientsread : *mut u32, clientstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumSubnetClientsV5(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, resumehandle : *mut u32, preferredmaximum : u32, clientinfo : *mut *mut DHCP_CLIENT_INFO_ARRAY_V5, clientsread : *mut u32, clientstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumSubnetClientsV6(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : DHCP_IPV6_ADDRESS, resumehandle : *mut DHCP_IPV6_ADDRESS, preferredmaximum : u32, clientinfo : *mut *mut DHCP_CLIENT_INFO_ARRAY_V6, clientsread : *mut u32, clientstotal : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpEnumSubnetClientsVQ(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, resumehandle : *mut u32, preferredmaximum : u32, clientinfo : *mut *mut DHCP_CLIENT_INFO_ARRAY_VQ, clientsread : *mut u32, clientstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumSubnetElements(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, enumelementtype : DHCP_SUBNET_ELEMENT_TYPE, resumehandle : *mut u32, preferredmaximum : u32, enumelementinfo : *mut *mut DHCP_SUBNET_ELEMENT_INFO_ARRAY, elementsread : *mut u32, elementstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumSubnetElementsV4(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, enumelementtype : DHCP_SUBNET_ELEMENT_TYPE, resumehandle : *mut u32, preferredmaximum : u32, enumelementinfo : *mut *mut DHCP_SUBNET_ELEMENT_INFO_ARRAY_V4, elementsread : *mut u32, elementstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumSubnetElementsV5(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, enumelementtype : DHCP_SUBNET_ELEMENT_TYPE, resumehandle : *mut u32, preferredmaximum : u32, enumelementinfo : *mut *mut DHCP_SUBNET_ELEMENT_INFO_ARRAY_V5, elementsread : *mut u32, elementstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumSubnetElementsV6(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : DHCP_IPV6_ADDRESS, enumelementtype : DHCP_SUBNET_ELEMENT_TYPE_V6, resumehandle : *mut u32, preferredmaximum : u32, enumelementinfo : *mut *mut DHCP_SUBNET_ELEMENT_INFO_ARRAY_V6, elementsread : *mut u32, elementstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumSubnets(serveripaddress : ::windows_sys::core::PCWSTR, resumehandle : *mut u32, preferredmaximum : u32, enuminfo : *mut *mut DHCP_IP_ARRAY, elementsread : *mut u32, elementstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpEnumSubnetsV6(serveripaddress : ::windows_sys::core::PCWSTR, resumehandle : *mut u32, preferredmaximum : u32, enuminfo : *mut *mut DHCPV6_IP_ARRAY, elementsread : *mut u32, elementstotal : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpGetAllOptionValues(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO, values : *mut *mut DHCP_ALL_OPTION_VALUES) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpGetAllOptionValuesV6(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO6, values : *mut *mut DHCP_ALL_OPTION_VALUES) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetAllOptions(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionstruct : *mut *mut DHCP_ALL_OPTIONS) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetAllOptionsV6(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionstruct : *mut *mut DHCP_ALL_OPTIONS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpGetClassInfo(serveripaddress : ::windows_sys::core::PCWSTR, reservedmustbezero : u32, partialclassinfo : *mut DHCP_CLASS_INFO, filledclassinfo : *mut *mut DHCP_CLASS_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetClientInfo(serveripaddress : ::windows_sys::core::PCWSTR, searchinfo : *const DHCP_SEARCH_INFO, clientinfo : *mut *mut DHCP_CLIENT_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetClientInfoV4(serveripaddress : ::windows_sys::core::PCWSTR, searchinfo : *const DHCP_SEARCH_INFO, clientinfo : *mut *mut DHCP_CLIENT_INFO_V4) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetClientInfoV6(serveripaddress : ::windows_sys::core::PCWSTR, searchinfo : *const DHCP_SEARCH_INFO_V6, clientinfo : *mut *mut DHCP_CLIENT_INFO_V6) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpGetClientInfoVQ(serveripaddress : ::windows_sys::core::PCWSTR, searchinfo : *const DHCP_SEARCH_INFO, clientinfo : *mut *mut DHCP_CLIENT_INFO_VQ) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetClientOptions(serveripaddress : ::windows_sys::core::PCWSTR, clientipaddress : u32, clientsubnetmask : u32, clientoptions : *mut *mut DHCP_OPTION_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpGetFilterV4(serveripaddress : ::windows_sys::core::PCWSTR, globalfilterinfo : *mut DHCP_FILTER_GLOBAL_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetMibInfo(serveripaddress : ::windows_sys::core::PCWSTR, mibinfo : *mut *mut DHCP_MIB_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetMibInfoV5(serveripaddress : ::windows_sys::core::PCWSTR, mibinfo : *mut *mut DHCP_MIB_INFO_V5) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetMibInfoV6(serveripaddress : ::windows_sys::core::PCWSTR, mibinfo : *mut *mut DHCP_MIB_INFO_V6) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetOptionInfo(serveripaddress : ::windows_sys::core::PCWSTR, optionid : u32, optioninfo : *mut *mut DHCP_OPTION) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetOptionInfoV5(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, optioninfo : *mut *mut DHCP_OPTION) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetOptionInfoV6(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, optioninfo : *mut *mut DHCP_OPTION) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetOptionValue(serveripaddress : ::windows_sys::core::PCWSTR, optionid : u32, scopeinfo : *const DHCP_OPTION_SCOPE_INFO, optionvalue : *mut *mut DHCP_OPTION_VALUE) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetOptionValueV5(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO, optionvalue : *mut *mut DHCP_OPTION_VALUE) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetOptionValueV6(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO6, optionvalue : *mut *mut DHCP_OPTION_VALUE) -> u32); +::windows_targets::link!("dhcpcsvc.dll" "system" fn DhcpGetOriginalSubnetMask(sadaptername : ::windows_sys::core::PCWSTR, dwsubnetmask : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpGetServerBindingInfo(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, bindelementsinfo : *mut *mut DHCP_BIND_ELEMENT_ARRAY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpGetServerBindingInfoV6(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, bindelementsinfo : *mut *mut DHCPV6_BIND_ELEMENT_ARRAY) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetServerSpecificStrings(serveripaddress : ::windows_sys::core::PCWSTR, serverspecificstrings : *mut *mut DHCP_SERVER_SPECIFIC_STRINGS) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetSubnetDelayOffer(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, timedelayinmilliseconds : *mut u16) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetSubnetInfo(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, subnetinfo : *mut *mut DHCP_SUBNET_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetSubnetInfoV6(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : DHCP_IPV6_ADDRESS, subnetinfo : *mut *mut DHCP_SUBNET_INFO_V6) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetSubnetInfoVQ(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, subnetinfo : *mut *mut DHCP_SUBNET_INFO_VQ) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetSuperScopeInfoV4(serveripaddress : ::windows_sys::core::PCWSTR, superscopetable : *mut *mut DHCP_SUPER_SCOPE_TABLE) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetThreadOptions(pflags : *mut u32, reserved : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpGetVersion(serveripaddress : ::windows_sys::core::PCWSTR, majorversion : *mut u32, minorversion : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprAddV4PolicyCondition(policy : *mut DHCP_POLICY, parentexpr : u32, r#type : DHCP_POL_ATTR_TYPE, optionid : u32, suboptionid : u32, vendorname : ::windows_sys::core::PCWSTR, operator : DHCP_POL_COMPARATOR, value : *const u8, valuelength : u32, conditionindex : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprAddV4PolicyExpr(policy : *mut DHCP_POLICY, parentexpr : u32, operator : DHCP_POL_LOGIC_OPER, exprindex : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprAddV4PolicyRange(policy : *mut DHCP_POLICY, range : *const DHCP_IP_RANGE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprCreateV4Policy(policyname : ::windows_sys::core::PCWSTR, fglobalpolicy : super::super::Foundation:: BOOL, subnet : u32, processingorder : u32, rootoperator : DHCP_POL_LOGIC_OPER, description : ::windows_sys::core::PCWSTR, enabled : super::super::Foundation:: BOOL, policy : *mut *mut DHCP_POLICY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprCreateV4PolicyEx(policyname : ::windows_sys::core::PCWSTR, fglobalpolicy : super::super::Foundation:: BOOL, subnet : u32, processingorder : u32, rootoperator : DHCP_POL_LOGIC_OPER, description : ::windows_sys::core::PCWSTR, enabled : super::super::Foundation:: BOOL, policy : *mut *mut DHCP_POLICY_EX) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpHlprFindV4DhcpProperty(propertyarray : *const DHCP_PROPERTY_ARRAY, id : DHCP_PROPERTY_ID, r#type : DHCP_PROPERTY_TYPE) -> *mut DHCP_PROPERTY); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpHlprFreeV4DhcpProperty(property : *mut DHCP_PROPERTY) -> ()); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpHlprFreeV4DhcpPropertyArray(propertyarray : *mut DHCP_PROPERTY_ARRAY) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprFreeV4Policy(policy : *mut DHCP_POLICY) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprFreeV4PolicyArray(policyarray : *mut DHCP_POLICY_ARRAY) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprFreeV4PolicyEx(policyex : *mut DHCP_POLICY_EX) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprFreeV4PolicyExArray(policyexarray : *mut DHCP_POLICY_EX_ARRAY) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprIsV4PolicySingleUC(policy : *const DHCP_POLICY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprIsV4PolicyValid(ppolicy : *const DHCP_POLICY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprIsV4PolicyWellFormed(ppolicy : *const DHCP_POLICY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprModifyV4PolicyExpr(policy : *mut DHCP_POLICY, operator : DHCP_POL_LOGIC_OPER) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpHlprResetV4PolicyExpr(policy : *mut DHCP_POLICY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpModifyClass(serveripaddress : ::windows_sys::core::PCWSTR, reservedmustbezero : u32, classinfo : *mut DHCP_CLASS_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpModifyClassV6(serveripaddress : ::windows_sys::core::PCWSTR, reservedmustbezero : u32, classinfo : *mut DHCP_CLASS_INFO_V6) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpcsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpRegisterParamChange(flags : u32, reserved : *const ::core::ffi::c_void, adaptername : ::windows_sys::core::PCWSTR, classid : *mut DHCPCAPI_CLASSID, params : DHCPCAPI_PARAMS_ARRAY, handle : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("dhcpcsvc.dll" "system" fn DhcpRemoveDNSRegistrations() -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpRemoveOption(serveripaddress : ::windows_sys::core::PCWSTR, optionid : u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpRemoveOptionV5(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpRemoveOptionV6(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpRemoveOptionValue(serveripaddress : ::windows_sys::core::PCWSTR, optionid : u32, scopeinfo : *const DHCP_OPTION_SCOPE_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpRemoveOptionValueV5(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpRemoveOptionValueV6(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO6) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpRemoveSubnetElement(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, removeelementinfo : *const DHCP_SUBNET_ELEMENT_DATA, forceflag : DHCP_FORCE_FLAG) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpRemoveSubnetElementV4(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, removeelementinfo : *const DHCP_SUBNET_ELEMENT_DATA_V4, forceflag : DHCP_FORCE_FLAG) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpRemoveSubnetElementV5(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, removeelementinfo : *const DHCP_SUBNET_ELEMENT_DATA_V5, forceflag : DHCP_FORCE_FLAG) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpRemoveSubnetElementV6(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : DHCP_IPV6_ADDRESS, removeelementinfo : *mut DHCP_SUBNET_ELEMENT_DATA_V6, forceflag : DHCP_FORCE_FLAG) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpcsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpRequestParams(flags : u32, reserved : *mut ::core::ffi::c_void, adaptername : ::windows_sys::core::PCWSTR, classid : *mut DHCPCAPI_CLASSID, sendparams : DHCPCAPI_PARAMS_ARRAY, recdparams : DHCPCAPI_PARAMS_ARRAY, buffer : *mut u8, psize : *mut u32, requestidstr : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpRpcFreeMemory(bufferpointer : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpScanDatabase(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, fixflag : u32, scanlist : *mut *mut DHCP_SCAN_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpServerAuditlogParamsFree(configinfo : *mut DHCP_SERVER_CONFIG_INFO_VQ) -> ()); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpServerBackupDatabase(serveripaddress : ::windows_sys::core::PCWSTR, path : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpServerGetConfig(serveripaddress : ::windows_sys::core::PCWSTR, configinfo : *mut *mut DHCP_SERVER_CONFIG_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpServerGetConfigV4(serveripaddress : ::windows_sys::core::PCWSTR, configinfo : *mut *mut DHCP_SERVER_CONFIG_INFO_V4) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpServerGetConfigV6(serveripaddress : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO6, configinfo : *mut *mut DHCP_SERVER_CONFIG_INFO_V6) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpServerGetConfigVQ(serveripaddress : ::windows_sys::core::PCWSTR, configinfo : *mut *mut DHCP_SERVER_CONFIG_INFO_VQ) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpServerQueryAttribute(serveripaddr : ::windows_sys::core::PCWSTR, dwreserved : u32, dhcpattribid : u32, pdhcpattrib : *mut *mut DHCP_ATTRIB) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpServerQueryAttributes(serveripaddr : ::windows_sys::core::PCWSTR, dwreserved : u32, dwattribcount : u32, pdhcpattribs : *mut u32, pdhcpattribarr : *mut *mut DHCP_ATTRIB_ARRAY) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpServerQueryDnsRegCredentials(serveripaddress : ::windows_sys::core::PCWSTR, unamesize : u32, uname : ::windows_sys::core::PWSTR, domainsize : u32, domain : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpServerRedoAuthorization(serveripaddr : ::windows_sys::core::PCWSTR, dwreserved : u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpServerRestoreDatabase(serveripaddress : ::windows_sys::core::PCWSTR, path : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpServerSetConfig(serveripaddress : ::windows_sys::core::PCWSTR, fieldstoset : u32, configinfo : *mut DHCP_SERVER_CONFIG_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpServerSetConfigV4(serveripaddress : ::windows_sys::core::PCWSTR, fieldstoset : u32, configinfo : *mut DHCP_SERVER_CONFIG_INFO_V4) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpServerSetConfigV6(serveripaddress : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO6, fieldstoset : u32, configinfo : *mut DHCP_SERVER_CONFIG_INFO_V6) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpServerSetConfigVQ(serveripaddress : ::windows_sys::core::PCWSTR, fieldstoset : u32, configinfo : *mut DHCP_SERVER_CONFIG_INFO_VQ) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpServerSetDnsRegCredentials(serveripaddress : ::windows_sys::core::PCWSTR, uname : ::windows_sys::core::PCWSTR, domain : ::windows_sys::core::PCWSTR, passwd : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpServerSetDnsRegCredentialsV5(serveripaddress : ::windows_sys::core::PCWSTR, uname : ::windows_sys::core::PCWSTR, domain : ::windows_sys::core::PCWSTR, passwd : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetClientInfo(serveripaddress : ::windows_sys::core::PCWSTR, clientinfo : *const DHCP_CLIENT_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetClientInfoV4(serveripaddress : ::windows_sys::core::PCWSTR, clientinfo : *const DHCP_CLIENT_INFO_V4) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetClientInfoV6(serveripaddress : ::windows_sys::core::PCWSTR, clientinfo : *const DHCP_CLIENT_INFO_V6) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpSetClientInfoVQ(serveripaddress : ::windows_sys::core::PCWSTR, clientinfo : *const DHCP_CLIENT_INFO_VQ) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpSetFilterV4(serveripaddress : ::windows_sys::core::PCWSTR, globalfilterinfo : *const DHCP_FILTER_GLOBAL_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetOptionInfo(serveripaddress : ::windows_sys::core::PCWSTR, optionid : u32, optioninfo : *const DHCP_OPTION) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetOptionInfoV5(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, optioninfo : *mut DHCP_OPTION) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetOptionInfoV6(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, optioninfo : *mut DHCP_OPTION) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetOptionValue(serveripaddress : ::windows_sys::core::PCWSTR, optionid : u32, scopeinfo : *const DHCP_OPTION_SCOPE_INFO, optionvalue : *const DHCP_OPTION_DATA) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetOptionValueV5(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO, optionvalue : *mut DHCP_OPTION_DATA) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetOptionValueV6(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO6, optionvalue : *mut DHCP_OPTION_DATA) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetOptionValues(serveripaddress : ::windows_sys::core::PCWSTR, scopeinfo : *const DHCP_OPTION_SCOPE_INFO, optionvalues : *const DHCP_OPTION_VALUE_ARRAY) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetOptionValuesV5(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, classname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO, optionvalues : *mut DHCP_OPTION_VALUE_ARRAY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpSetServerBindingInfo(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, bindelementinfo : *mut DHCP_BIND_ELEMENT_ARRAY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpSetServerBindingInfoV6(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, bindelementinfo : *mut DHCPV6_BIND_ELEMENT_ARRAY) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetSubnetDelayOffer(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, timedelayinmilliseconds : u16) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetSubnetInfo(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, subnetinfo : *const DHCP_SUBNET_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetSubnetInfoV6(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : DHCP_IPV6_ADDRESS, subnetinfo : *mut DHCP_SUBNET_INFO_V6) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetSubnetInfoVQ(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, subnetinfo : *const DHCP_SUBNET_INFO_VQ) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpSetSuperScopeV4(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, superscopename : ::windows_sys::core::PCWSTR, changeexisting : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpSetThreadOptions(flags : u32, reserved : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("dhcpcsvc.dll" "system" fn DhcpUndoRequestParams(flags : u32, reserved : *const ::core::ffi::c_void, adaptername : ::windows_sys::core::PCWSTR, requestidstr : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4AddPolicyRange(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, policyname : ::windows_sys::core::PCWSTR, range : *const DHCP_IP_RANGE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4CreateClientInfo(serveripaddress : ::windows_sys::core::PCWSTR, clientinfo : *const DHCP_CLIENT_INFO_PB) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4CreateClientInfoEx(serveripaddress : ::windows_sys::core::PCWSTR, clientinfo : *const DHCP_CLIENT_INFO_EX) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4CreatePolicy(serveripaddress : ::windows_sys::core::PCWSTR, ppolicy : *const DHCP_POLICY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4CreatePolicyEx(serveripaddress : ::windows_sys::core::PCWSTR, policyex : *const DHCP_POLICY_EX) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4DeletePolicy(serveripaddress : ::windows_sys::core::PCWSTR, fglobalpolicy : super::super::Foundation:: BOOL, subnetaddress : u32, policyname : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4EnumPolicies(serveripaddress : ::windows_sys::core::PCWSTR, resumehandle : *mut u32, preferredmaximum : u32, fglobalpolicy : super::super::Foundation:: BOOL, subnetaddress : u32, enuminfo : *mut *mut DHCP_POLICY_ARRAY, elementsread : *mut u32, elementstotal : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4EnumPoliciesEx(serveripaddress : ::windows_sys::core::PCWSTR, resumehandle : *mut u32, preferredmaximum : u32, globalpolicy : super::super::Foundation:: BOOL, subnetaddress : u32, enuminfo : *mut *mut DHCP_POLICY_EX_ARRAY, elementsread : *mut u32, elementstotal : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4EnumSubnetClients(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, resumehandle : *mut u32, preferredmaximum : u32, clientinfo : *mut *mut DHCP_CLIENT_INFO_PB_ARRAY, clientsread : *mut u32, clientstotal : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4EnumSubnetClientsEx(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, resumehandle : *mut u32, preferredmaximum : u32, clientinfo : *mut *mut DHCP_CLIENT_INFO_EX_ARRAY, clientsread : *mut u32, clientstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4EnumSubnetReservations(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, resumehandle : *mut u32, preferredmaximum : u32, enumelementinfo : *mut *mut DHCP_RESERVATION_INFO_ARRAY, elementsread : *mut u32, elementstotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4FailoverAddScopeToRelationship(serveripaddress : ::windows_sys::core::PCWSTR, prelationship : *const DHCP_FAILOVER_RELATIONSHIP) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4FailoverCreateRelationship(serveripaddress : ::windows_sys::core::PCWSTR, prelationship : *const DHCP_FAILOVER_RELATIONSHIP) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4FailoverDeleteRelationship(serveripaddress : ::windows_sys::core::PCWSTR, prelationshipname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4FailoverDeleteScopeFromRelationship(serveripaddress : ::windows_sys::core::PCWSTR, prelationship : *const DHCP_FAILOVER_RELATIONSHIP) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4FailoverEnumRelationship(serveripaddress : ::windows_sys::core::PCWSTR, resumehandle : *mut u32, preferredmaximum : u32, prelationship : *mut *mut DHCP_FAILOVER_RELATIONSHIP_ARRAY, relationshipread : *mut u32, relationshiptotal : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4FailoverGetAddressStatus(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, pstatus : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4FailoverGetClientInfo(serveripaddress : ::windows_sys::core::PCWSTR, searchinfo : *const DHCP_SEARCH_INFO, clientinfo : *mut *mut DHCPV4_FAILOVER_CLIENT_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4FailoverGetRelationship(serveripaddress : ::windows_sys::core::PCWSTR, prelationshipname : ::windows_sys::core::PCWSTR, prelationship : *mut *mut DHCP_FAILOVER_RELATIONSHIP) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4FailoverGetScopeRelationship(serveripaddress : ::windows_sys::core::PCWSTR, scopeid : u32, prelationship : *mut *mut DHCP_FAILOVER_RELATIONSHIP) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4FailoverGetScopeStatistics(serveripaddress : ::windows_sys::core::PCWSTR, scopeid : u32, pstats : *mut *mut DHCP_FAILOVER_STATISTICS) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4FailoverGetSystemTime(serveripaddress : ::windows_sys::core::PCWSTR, ptime : *mut u32, pmaxalloweddeltatime : *mut u32) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4FailoverSetRelationship(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, prelationship : *const DHCP_FAILOVER_RELATIONSHIP) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4FailoverTriggerAddrAllocation(serveripaddress : ::windows_sys::core::PCWSTR, pfailrelname : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4GetAllOptionValues(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO, values : *mut *mut DHCP_ALL_OPTION_VALUES_PB) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4GetClientInfo(serveripaddress : ::windows_sys::core::PCWSTR, searchinfo : *const DHCP_SEARCH_INFO, clientinfo : *mut *mut DHCP_CLIENT_INFO_PB) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4GetClientInfoEx(serveripaddress : ::windows_sys::core::PCWSTR, searchinfo : *const DHCP_SEARCH_INFO, clientinfo : *mut *mut DHCP_CLIENT_INFO_EX) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4GetFreeIPAddress(serveripaddress : ::windows_sys::core::PCWSTR, scopeid : u32, startip : u32, endip : u32, numfreeaddrreq : u32, ipaddrlist : *mut *mut DHCP_IP_ARRAY) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4GetOptionValue(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, policyname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO, optionvalue : *mut *mut DHCP_OPTION_VALUE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4GetPolicy(serveripaddress : ::windows_sys::core::PCWSTR, fglobalpolicy : super::super::Foundation:: BOOL, subnetaddress : u32, policyname : ::windows_sys::core::PCWSTR, policy : *mut *mut DHCP_POLICY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4GetPolicyEx(serveripaddress : ::windows_sys::core::PCWSTR, globalpolicy : super::super::Foundation:: BOOL, subnetaddress : u32, policyname : ::windows_sys::core::PCWSTR, policy : *mut *mut DHCP_POLICY_EX) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4QueryPolicyEnforcement(serveripaddress : ::windows_sys::core::PCWSTR, fglobalpolicy : super::super::Foundation:: BOOL, subnetaddress : u32, enabled : *mut super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4RemoveOptionValue(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, policyname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4RemovePolicyRange(serveripaddress : ::windows_sys::core::PCWSTR, subnetaddress : u32, policyname : ::windows_sys::core::PCWSTR, range : *const DHCP_IP_RANGE) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4SetOptionValue(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, optionid : u32, policyname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO, optionvalue : *mut DHCP_OPTION_DATA) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV4SetOptionValues(serveripaddress : ::windows_sys::core::PCWSTR, flags : u32, policyname : ::windows_sys::core::PCWSTR, vendorname : ::windows_sys::core::PCWSTR, scopeinfo : *mut DHCP_OPTION_SCOPE_INFO, optionvalues : *mut DHCP_OPTION_VALUE_ARRAY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4SetPolicy(serveripaddress : ::windows_sys::core::PCWSTR, fieldsmodified : u32, fglobalpolicy : super::super::Foundation:: BOOL, subnetaddress : u32, policyname : ::windows_sys::core::PCWSTR, policy : *const DHCP_POLICY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4SetPolicyEnforcement(serveripaddress : ::windows_sys::core::PCWSTR, fglobalpolicy : super::super::Foundation:: BOOL, subnetaddress : u32, enable : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV4SetPolicyEx(serveripaddress : ::windows_sys::core::PCWSTR, fieldsmodified : u32, globalpolicy : super::super::Foundation:: BOOL, subnetaddress : u32, policyname : ::windows_sys::core::PCWSTR, policy : *const DHCP_POLICY_EX) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV6CreateClientInfo(serveripaddress : ::windows_sys::core::PCWSTR, clientinfo : *const DHCP_CLIENT_INFO_V6) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV6GetFreeIPAddress(serveripaddress : ::windows_sys::core::PCWSTR, scopeid : DHCP_IPV6_ADDRESS, startip : DHCP_IPV6_ADDRESS, endip : DHCP_IPV6_ADDRESS, numfreeaddrreq : u32, ipaddrlist : *mut *mut DHCPV6_IP_ARRAY) -> u32); +::windows_targets::link!("dhcpsapi.dll" "system" fn DhcpV6GetStatelessStatistics(serveripaddress : ::windows_sys::core::PCWSTR, statelessstats : *mut *mut DHCPV6_STATELESS_STATS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV6GetStatelessStoreParams(serveripaddress : ::windows_sys::core::PCWSTR, fserverlevel : super::super::Foundation:: BOOL, subnetaddress : DHCP_IPV6_ADDRESS, params : *mut *mut DHCPV6_STATELESS_PARAMS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DhcpV6SetStatelessStoreParams(serveripaddress : ::windows_sys::core::PCWSTR, fserverlevel : super::super::Foundation:: BOOL, subnetaddress : DHCP_IPV6_ADDRESS, fieldmodified : u32, params : *const DHCPV6_STATELESS_PARAMS) -> u32); +::windows_targets::link!("dhcpcsvc6.dll" "system" fn Dhcpv6CApiCleanup() -> ()); +::windows_targets::link!("dhcpcsvc6.dll" "system" fn Dhcpv6CApiInitialize(version : *mut u32) -> ()); +::windows_targets::link!("dhcpcsvc6.dll" "system" fn Dhcpv6ReleasePrefix(adaptername : ::windows_sys::core::PCWSTR, classid : *mut DHCPV6CAPI_CLASSID, leaseinfo : *mut DHCPV6PrefixLeaseInformation) -> u32); +::windows_targets::link!("dhcpcsvc6.dll" "system" fn Dhcpv6RenewPrefix(adaptername : ::windows_sys::core::PCWSTR, pclassid : *mut DHCPV6CAPI_CLASSID, prefixleaseinfo : *mut DHCPV6PrefixLeaseInformation, pdwtimetowait : *mut u32, bvalidateprefix : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpcsvc6.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Dhcpv6RequestParams(forcenewinform : super::super::Foundation:: BOOL, reserved : *mut ::core::ffi::c_void, adaptername : ::windows_sys::core::PCWSTR, classid : *mut DHCPV6CAPI_CLASSID, recdparams : DHCPV6CAPI_PARAMS_ARRAY, buffer : *mut u8, psize : *mut u32) -> u32); +::windows_targets::link!("dhcpcsvc6.dll" "system" fn Dhcpv6RequestPrefix(adaptername : ::windows_sys::core::PCWSTR, pclassid : *mut DHCPV6CAPI_CLASSID, prefixleaseinfo : *mut DHCPV6PrefixLeaseInformation, pdwtimetowait : *mut u32) -> u32); +pub const ADDRESS_TYPE_IANA: u32 = 0u32; +pub const ADDRESS_TYPE_IATA: u32 = 1u32; +pub const Allow: DHCP_FILTER_LIST_TYPE = 1i32; +pub const CHANGESTATE: u32 = 4u32; +pub const CLIENT_TYPE_BOOTP: u32 = 2u32; +pub const CLIENT_TYPE_DHCP: u32 = 1u32; +pub const CLIENT_TYPE_NONE: u32 = 100u32; +pub const CLIENT_TYPE_RESERVATION_FLAG: u32 = 4u32; +pub const CLIENT_TYPE_UNSPECIFIED: u32 = 0u32; +pub const COMMUNICATION_INT: FSM_STATE = 4i32; +pub const CONFLICT_DONE: FSM_STATE = 7i32; +pub const DEFAULTQUARSETTING: QuarantineStatus = 5i32; +pub const DHCPCAPI_DEREGISTER_HANDLE_EVENT: u32 = 1u32; +pub const DHCPCAPI_REGISTER_HANDLE_EVENT: u32 = 1u32; +pub const DHCPCAPI_REQUEST_ASYNCHRONOUS: u32 = 4u32; +pub const DHCPCAPI_REQUEST_CANCEL: u32 = 8u32; +pub const DHCPCAPI_REQUEST_MASK: u32 = 15u32; +pub const DHCPCAPI_REQUEST_PERSISTENT: u32 = 1u32; +pub const DHCPCAPI_REQUEST_SYNCHRONOUS: u32 = 2u32; +pub const DHCPV6_OPTION_CLIENTID: u32 = 1u32; +pub const DHCPV6_OPTION_DNS_SERVERS: u32 = 23u32; +pub const DHCPV6_OPTION_DOMAIN_LIST: u32 = 24u32; +pub const DHCPV6_OPTION_IA_NA: u32 = 3u32; +pub const DHCPV6_OPTION_IA_PD: u32 = 25u32; +pub const DHCPV6_OPTION_IA_TA: u32 = 4u32; +pub const DHCPV6_OPTION_NISP_DOMAIN_NAME: u32 = 30u32; +pub const DHCPV6_OPTION_NISP_SERVERS: u32 = 28u32; +pub const DHCPV6_OPTION_NIS_DOMAIN_NAME: u32 = 29u32; +pub const DHCPV6_OPTION_NIS_SERVERS: u32 = 27u32; +pub const DHCPV6_OPTION_ORO: u32 = 6u32; +pub const DHCPV6_OPTION_PREFERENCE: u32 = 7u32; +pub const DHCPV6_OPTION_RAPID_COMMIT: u32 = 14u32; +pub const DHCPV6_OPTION_RECONF_MSG: u32 = 19u32; +pub const DHCPV6_OPTION_SERVERID: u32 = 2u32; +pub const DHCPV6_OPTION_SIP_SERVERS_ADDRS: u32 = 22u32; +pub const DHCPV6_OPTION_SIP_SERVERS_NAMES: u32 = 21u32; +pub const DHCPV6_OPTION_UNICAST: u32 = 12u32; +pub const DHCPV6_OPTION_USER_CLASS: u32 = 15u32; +pub const DHCPV6_OPTION_VENDOR_CLASS: u32 = 16u32; +pub const DHCPV6_OPTION_VENDOR_OPTS: u32 = 17u32; +pub const DHCP_ATTRIB_BOOL_IS_ADMIN: u32 = 5u32; +pub const DHCP_ATTRIB_BOOL_IS_BINDING_AWARE: u32 = 4u32; +pub const DHCP_ATTRIB_BOOL_IS_DYNBOOTP: u32 = 2u32; +pub const DHCP_ATTRIB_BOOL_IS_PART_OF_DSDC: u32 = 3u32; +pub const DHCP_ATTRIB_BOOL_IS_ROGUE: u32 = 1u32; +pub const DHCP_ATTRIB_TYPE_BOOL: u32 = 1u32; +pub const DHCP_ATTRIB_TYPE_ULONG: u32 = 2u32; +pub const DHCP_ATTRIB_ULONG_RESTORE_STATUS: u32 = 6u32; +pub const DHCP_CALLOUT_ENTRY_POINT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("DhcpServerCalloutEntry"); +pub const DHCP_CALLOUT_LIST_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\DHCPServer\\Parameters"); +pub const DHCP_CALLOUT_LIST_VALUE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CalloutDlls"); +pub const DHCP_CLIENT_BOOTP: u32 = 805306371u32; +pub const DHCP_CLIENT_DHCP: u32 = 805306372u32; +pub const DHCP_CONTROL_CONTINUE: u32 = 4u32; +pub const DHCP_CONTROL_PAUSE: u32 = 3u32; +pub const DHCP_CONTROL_START: u32 = 1u32; +pub const DHCP_CONTROL_STOP: u32 = 2u32; +pub const DHCP_DROP_DUPLICATE: u32 = 1u32; +pub const DHCP_DROP_GEN_FAILURE: u32 = 256u32; +pub const DHCP_DROP_INTERNAL_ERROR: u32 = 3u32; +pub const DHCP_DROP_INVALID: u32 = 8u32; +pub const DHCP_DROP_NOADDRESS: u32 = 10u32; +pub const DHCP_DROP_NOMEM: u32 = 2u32; +pub const DHCP_DROP_NO_SUBNETS: u32 = 7u32; +pub const DHCP_DROP_PAUSED: u32 = 6u32; +pub const DHCP_DROP_PROCESSED: u32 = 11u32; +pub const DHCP_DROP_TIMEOUT: u32 = 4u32; +pub const DHCP_DROP_UNAUTH: u32 = 5u32; +pub const DHCP_DROP_WRONG_SERVER: u32 = 9u32; +pub const DHCP_ENDPOINT_FLAG_CANT_MODIFY: u32 = 1u32; +pub const DHCP_FAILOVER_DELETE_SCOPES: u32 = 1u32; +pub const DHCP_FAILOVER_MAX_NUM_ADD_SCOPES: u32 = 400u32; +pub const DHCP_FAILOVER_MAX_NUM_REL: u32 = 31u32; +pub const DHCP_FLAGS_DONT_ACCESS_DS: u32 = 1u32; +pub const DHCP_FLAGS_DONT_DO_RPC: u32 = 2u32; +pub const DHCP_FLAGS_OPTION_IS_VENDOR: u32 = 3u32; +pub const DHCP_GIVE_ADDRESS_NEW: u32 = 805306369u32; +pub const DHCP_GIVE_ADDRESS_OLD: u32 = 805306370u32; +pub const DHCP_MAX_DELAY: u32 = 1000u32; +pub const DHCP_MIN_DELAY: u32 = 0u32; +pub const DHCP_OPT_ENUM_IGNORE_VENDOR: u32 = 1u32; +pub const DHCP_OPT_ENUM_USE_CLASSNAME: u32 = 2u32; +pub const DHCP_PROB_CONFLICT: u32 = 536870913u32; +pub const DHCP_PROB_DECLINE: u32 = 536870914u32; +pub const DHCP_PROB_NACKED: u32 = 536870916u32; +pub const DHCP_PROB_RELEASE: u32 = 536870915u32; +pub const DHCP_SEND_PACKET: u32 = 268435456u32; +pub const DHCP_SUBNET_INFO_VQ_FLAG_QUARANTINE: u32 = 1u32; +pub const DNS_FLAG_CLEANUP_EXPIRED: u32 = 4u32; +pub const DNS_FLAG_DISABLE_PTR_UPDATE: u32 = 64u32; +pub const DNS_FLAG_ENABLED: u32 = 1u32; +pub const DNS_FLAG_HAS_DNS_SUFFIX: u32 = 128u32; +pub const DNS_FLAG_UPDATE_BOTH_ALWAYS: u32 = 16u32; +pub const DNS_FLAG_UPDATE_DHCID: u32 = 32u32; +pub const DNS_FLAG_UPDATE_DOWNLEVEL: u32 = 2u32; +pub const DROPPACKET: QuarantineStatus = 2i32; +pub const Deny: DHCP_FILTER_LIST_TYPE = 0i32; +pub const DhcpArrayTypeOption: DHCP_OPTION_TYPE = 1i32; +pub const DhcpAttrFqdn: DHCP_POL_ATTR_TYPE = 3i32; +pub const DhcpAttrFqdnSingleLabel: DHCP_POL_ATTR_TYPE = 4i32; +pub const DhcpAttrHWAddr: DHCP_POL_ATTR_TYPE = 0i32; +pub const DhcpAttrOption: DHCP_POL_ATTR_TYPE = 1i32; +pub const DhcpAttrSubOption: DHCP_POL_ATTR_TYPE = 2i32; +pub const DhcpBinaryDataOption: DHCP_OPTION_DATA_TYPE = 6i32; +pub const DhcpByteOption: DHCP_OPTION_DATA_TYPE = 0i32; +pub const DhcpClientHardwareAddress: DHCP_SEARCH_INFO_TYPE = 1i32; +pub const DhcpClientIpAddress: DHCP_SEARCH_INFO_TYPE = 0i32; +pub const DhcpClientName: DHCP_SEARCH_INFO_TYPE = 2i32; +pub const DhcpCompBeginsWith: DHCP_POL_COMPARATOR = 2i32; +pub const DhcpCompEndsWith: DHCP_POL_COMPARATOR = 4i32; +pub const DhcpCompEqual: DHCP_POL_COMPARATOR = 0i32; +pub const DhcpCompNotBeginWith: DHCP_POL_COMPARATOR = 3i32; +pub const DhcpCompNotEndWith: DHCP_POL_COMPARATOR = 5i32; +pub const DhcpCompNotEqual: DHCP_POL_COMPARATOR = 1i32; +pub const DhcpDWordDWordOption: DHCP_OPTION_DATA_TYPE = 3i32; +pub const DhcpDWordOption: DHCP_OPTION_DATA_TYPE = 2i32; +pub const DhcpDatabaseFix: DHCP_SCAN_FLAG = 1i32; +pub const DhcpDefaultOptions: DHCP_OPTION_SCOPE_TYPE = 0i32; +pub const DhcpDefaultOptions6: DHCP_OPTION_SCOPE_TYPE6 = 0i32; +pub const DhcpEncapsulatedDataOption: DHCP_OPTION_DATA_TYPE = 7i32; +pub const DhcpExcludedIpRanges: DHCP_SUBNET_ELEMENT_TYPE = 3i32; +pub const DhcpFailoverForce: DHCP_FORCE_FLAG = 2i32; +pub const DhcpFullForce: DHCP_FORCE_FLAG = 0i32; +pub const DhcpGlobalOptions: DHCP_OPTION_SCOPE_TYPE = 1i32; +pub const DhcpGlobalOptions6: DHCP_OPTION_SCOPE_TYPE6 = 3i32; +pub const DhcpIpAddressOption: DHCP_OPTION_DATA_TYPE = 4i32; +pub const DhcpIpRanges: DHCP_SUBNET_ELEMENT_TYPE = 0i32; +pub const DhcpIpRangesBootpOnly: DHCP_SUBNET_ELEMENT_TYPE = 7i32; +pub const DhcpIpRangesDhcpBootp: DHCP_SUBNET_ELEMENT_TYPE = 6i32; +pub const DhcpIpRangesDhcpOnly: DHCP_SUBNET_ELEMENT_TYPE = 5i32; +pub const DhcpIpUsedClusters: DHCP_SUBNET_ELEMENT_TYPE = 4i32; +pub const DhcpIpv6AddressOption: DHCP_OPTION_DATA_TYPE = 8i32; +pub const DhcpLogicalAnd: DHCP_POL_LOGIC_OPER = 1i32; +pub const DhcpLogicalOr: DHCP_POL_LOGIC_OPER = 0i32; +pub const DhcpMScopeOptions: DHCP_OPTION_SCOPE_TYPE = 4i32; +pub const DhcpNoForce: DHCP_FORCE_FLAG = 1i32; +pub const DhcpPropIdClientAddressStateEx: DHCP_PROPERTY_ID = 1i32; +pub const DhcpPropIdPolicyDnsSuffix: DHCP_PROPERTY_ID = 0i32; +pub const DhcpPropTypeBinary: DHCP_PROPERTY_TYPE = 4i32; +pub const DhcpPropTypeByte: DHCP_PROPERTY_TYPE = 0i32; +pub const DhcpPropTypeDword: DHCP_PROPERTY_TYPE = 2i32; +pub const DhcpPropTypeString: DHCP_PROPERTY_TYPE = 3i32; +pub const DhcpPropTypeWord: DHCP_PROPERTY_TYPE = 1i32; +pub const DhcpRegistryFix: DHCP_SCAN_FLAG = 0i32; +pub const DhcpReservedIps: DHCP_SUBNET_ELEMENT_TYPE = 2i32; +pub const DhcpReservedOptions: DHCP_OPTION_SCOPE_TYPE = 3i32; +pub const DhcpReservedOptions6: DHCP_OPTION_SCOPE_TYPE6 = 2i32; +pub const DhcpScopeOptions6: DHCP_OPTION_SCOPE_TYPE6 = 1i32; +pub const DhcpSecondaryHosts: DHCP_SUBNET_ELEMENT_TYPE = 1i32; +pub const DhcpStatelessPurgeInterval: DHCPV6_STATELESS_PARAM_TYPE = 1i32; +pub const DhcpStatelessStatus: DHCPV6_STATELESS_PARAM_TYPE = 2i32; +pub const DhcpStringDataOption: DHCP_OPTION_DATA_TYPE = 5i32; +pub const DhcpSubnetDisabled: DHCP_SUBNET_STATE = 1i32; +pub const DhcpSubnetDisabledSwitched: DHCP_SUBNET_STATE = 3i32; +pub const DhcpSubnetEnabled: DHCP_SUBNET_STATE = 0i32; +pub const DhcpSubnetEnabledSwitched: DHCP_SUBNET_STATE = 2i32; +pub const DhcpSubnetInvalidState: DHCP_SUBNET_STATE = 4i32; +pub const DhcpSubnetOptions: DHCP_OPTION_SCOPE_TYPE = 2i32; +pub const DhcpUnaryElementTypeOption: DHCP_OPTION_TYPE = 0i32; +pub const DhcpUpdatePolicyDescr: DHCP_POLICY_FIELDS_TO_UPDATE = 16i32; +pub const DhcpUpdatePolicyDnsSuffix: DHCP_POLICY_FIELDS_TO_UPDATE = 64i32; +pub const DhcpUpdatePolicyExpr: DHCP_POLICY_FIELDS_TO_UPDATE = 4i32; +pub const DhcpUpdatePolicyName: DHCP_POLICY_FIELDS_TO_UPDATE = 1i32; +pub const DhcpUpdatePolicyOrder: DHCP_POLICY_FIELDS_TO_UPDATE = 2i32; +pub const DhcpUpdatePolicyRanges: DHCP_POLICY_FIELDS_TO_UPDATE = 8i32; +pub const DhcpUpdatePolicyStatus: DHCP_POLICY_FIELDS_TO_UPDATE = 32i32; +pub const DhcpWordOption: DHCP_OPTION_DATA_TYPE = 1i32; +pub const Dhcpv6ClientDUID: DHCP_SEARCH_INFO_TYPE_V6 = 1i32; +pub const Dhcpv6ClientIpAddress: DHCP_SEARCH_INFO_TYPE_V6 = 0i32; +pub const Dhcpv6ClientName: DHCP_SEARCH_INFO_TYPE_V6 = 2i32; +pub const Dhcpv6ExcludedIpRanges: DHCP_SUBNET_ELEMENT_TYPE_V6 = 2i32; +pub const Dhcpv6IpRanges: DHCP_SUBNET_ELEMENT_TYPE_V6 = 0i32; +pub const Dhcpv6ReservedIps: DHCP_SUBNET_ELEMENT_TYPE_V6 = 1i32; +pub const ERROR_DDS_CLASS_DOES_NOT_EXIST: u32 = 20078u32; +pub const ERROR_DDS_CLASS_EXISTS: u32 = 20077u32; +pub const ERROR_DDS_DHCP_SERVER_NOT_FOUND: u32 = 20074u32; +pub const ERROR_DDS_NO_DHCP_ROOT: u32 = 20071u32; +pub const ERROR_DDS_NO_DS_AVAILABLE: u32 = 20070u32; +pub const ERROR_DDS_OPTION_ALREADY_EXISTS: u32 = 20075u32; +pub const ERROR_DDS_OPTION_DOES_NOT_EXIST: u32 = 20076u32; +pub const ERROR_DDS_POSSIBLE_RANGE_CONFLICT: u32 = 20087u32; +pub const ERROR_DDS_RANGE_DOES_NOT_EXIST: u32 = 20088u32; +pub const ERROR_DDS_RESERVATION_CONFLICT: u32 = 20086u32; +pub const ERROR_DDS_RESERVATION_NOT_PRESENT: u32 = 20085u32; +pub const ERROR_DDS_SERVER_ADDRESS_MISMATCH: u32 = 20081u32; +pub const ERROR_DDS_SERVER_ALREADY_EXISTS: u32 = 20079u32; +pub const ERROR_DDS_SERVER_DOES_NOT_EXIST: u32 = 20080u32; +pub const ERROR_DDS_SUBNET_EXISTS: u32 = 20082u32; +pub const ERROR_DDS_SUBNET_HAS_DIFF_SSCOPE: u32 = 20083u32; +pub const ERROR_DDS_SUBNET_NOT_PRESENT: u32 = 20084u32; +pub const ERROR_DDS_TOO_MANY_ERRORS: u32 = 20073u32; +pub const ERROR_DDS_UNEXPECTED_ERROR: u32 = 20072u32; +pub const ERROR_DHCP_ADDRESS_NOT_AVAILABLE: u32 = 20011u32; +pub const ERROR_DHCP_CANNOT_MODIFY_BINDINGS: u32 = 20051u32; +pub const ERROR_DHCP_CANT_CHANGE_ATTRIBUTE: u32 = 20048u32; +pub const ERROR_DHCP_CLASS_ALREADY_EXISTS: u32 = 20045u32; +pub const ERROR_DHCP_CLASS_NOT_FOUND: u32 = 20044u32; +pub const ERROR_DHCP_CLIENT_EXISTS: u32 = 20014u32; +pub const ERROR_DHCP_DATABASE_INIT_FAILED: u32 = 20001u32; +pub const ERROR_DHCP_DEFAULT_SCOPE_EXITS: u32 = 20047u32; +pub const ERROR_DHCP_DELETE_BUILTIN_CLASS: u32 = 20089u32; +pub const ERROR_DHCP_ELEMENT_CANT_REMOVE: u32 = 20007u32; +pub const ERROR_DHCP_EXEMPTION_EXISTS: u32 = 20055u32; +pub const ERROR_DHCP_EXEMPTION_NOT_PRESENT: u32 = 20056u32; +pub const ERROR_DHCP_FO_ADDSCOPE_LEASES_NOT_SYNCED: u32 = 20127u32; +pub const ERROR_DHCP_FO_BOOT_NOT_SUPPORTED: u32 = 20131u32; +pub const ERROR_DHCP_FO_FEATURE_NOT_SUPPORTED: u32 = 20134u32; +pub const ERROR_DHCP_FO_IPRANGE_TYPE_CONV_ILLEGAL: u32 = 20129u32; +pub const ERROR_DHCP_FO_MAX_ADD_SCOPES: u32 = 20130u32; +pub const ERROR_DHCP_FO_MAX_RELATIONSHIPS: u32 = 20128u32; +pub const ERROR_DHCP_FO_NOT_SUPPORTED: u32 = 20118u32; +pub const ERROR_DHCP_FO_RANGE_PART_OF_REL: u32 = 20132u32; +pub const ERROR_DHCP_FO_RELATIONSHIP_DOES_NOT_EXIST: u32 = 20115u32; +pub const ERROR_DHCP_FO_RELATIONSHIP_EXISTS: u32 = 20114u32; +pub const ERROR_DHCP_FO_RELATIONSHIP_NAME_TOO_LONG: u32 = 20125u32; +pub const ERROR_DHCP_FO_RELATION_IS_SECONDARY: u32 = 20117u32; +pub const ERROR_DHCP_FO_SCOPE_ALREADY_IN_RELATIONSHIP: u32 = 20113u32; +pub const ERROR_DHCP_FO_SCOPE_NOT_IN_RELATIONSHIP: u32 = 20116u32; +pub const ERROR_DHCP_FO_SCOPE_SYNC_IN_PROGRESS: u32 = 20133u32; +pub const ERROR_DHCP_FO_STATE_NOT_NORMAL: u32 = 20120u32; +pub const ERROR_DHCP_FO_TIME_OUT_OF_SYNC: u32 = 20119u32; +pub const ERROR_DHCP_HARDWARE_ADDRESS_TYPE_ALREADY_EXEMPT: u32 = 20101u32; +pub const ERROR_DHCP_INVALID_DELAY: u32 = 20092u32; +pub const ERROR_DHCP_INVALID_DHCP_CLIENT: u32 = 20016u32; +pub const ERROR_DHCP_INVALID_DHCP_MESSAGE: u32 = 20015u32; +pub const ERROR_DHCP_INVALID_PARAMETER_OPTION32: u32 = 20057u32; +pub const ERROR_DHCP_INVALID_POLICY_EXPRESSION: u32 = 20109u32; +pub const ERROR_DHCP_INVALID_PROCESSING_ORDER: u32 = 20110u32; +pub const ERROR_DHCP_INVALID_RANGE: u32 = 20023u32; +pub const ERROR_DHCP_INVALID_SUBNET_PREFIX: u32 = 20091u32; +pub const ERROR_DHCP_IPRANGE_CONV_ILLEGAL: u32 = 20049u32; +pub const ERROR_DHCP_IPRANGE_EXITS: u32 = 20021u32; +pub const ERROR_DHCP_IP_ADDRESS_IN_USE: u32 = 20032u32; +pub const ERROR_DHCP_JET97_CONV_REQUIRED: u32 = 20036u32; +pub const ERROR_DHCP_JET_CONV_REQUIRED: u32 = 20027u32; +pub const ERROR_DHCP_JET_ERROR: u32 = 20013u32; +pub const ERROR_DHCP_LINKLAYER_ADDRESS_DOES_NOT_EXIST: u32 = 20095u32; +pub const ERROR_DHCP_LINKLAYER_ADDRESS_EXISTS: u32 = 20093u32; +pub const ERROR_DHCP_LINKLAYER_ADDRESS_RESERVATION_EXISTS: u32 = 20094u32; +pub const ERROR_DHCP_LOG_FILE_PATH_TOO_LONG: u32 = 20033u32; +pub const ERROR_DHCP_MSCOPE_EXISTS: u32 = 20053u32; +pub const ERROR_DHCP_NAP_NOT_SUPPORTED: u32 = 20138u32; +pub const ERROR_DHCP_NETWORK_CHANGED: u32 = 20050u32; +pub const ERROR_DHCP_NETWORK_INIT_FAILED: u32 = 20003u32; +pub const ERROR_DHCP_NOT_RESERVED_CLIENT: u32 = 20018u32; +pub const ERROR_DHCP_NO_ADMIN_PERMISSION: u32 = 20121u32; +pub const ERROR_DHCP_OPTION_EXITS: u32 = 20009u32; +pub const ERROR_DHCP_OPTION_NOT_PRESENT: u32 = 20010u32; +pub const ERROR_DHCP_OPTION_TYPE_MISMATCH: u32 = 20103u32; +pub const ERROR_DHCP_POLICY_BAD_PARENT_EXPR: u32 = 20104u32; +pub const ERROR_DHCP_POLICY_EDIT_FQDN_UNSUPPORTED: u32 = 20137u32; +pub const ERROR_DHCP_POLICY_EXISTS: u32 = 20105u32; +pub const ERROR_DHCP_POLICY_FQDN_OPTION_UNSUPPORTED: u32 = 20136u32; +pub const ERROR_DHCP_POLICY_FQDN_RANGE_UNSUPPORTED: u32 = 20135u32; +pub const ERROR_DHCP_POLICY_NOT_FOUND: u32 = 20111u32; +pub const ERROR_DHCP_POLICY_RANGE_BAD: u32 = 20107u32; +pub const ERROR_DHCP_POLICY_RANGE_EXISTS: u32 = 20106u32; +pub const ERROR_DHCP_PRIMARY_NOT_FOUND: u32 = 20006u32; +pub const ERROR_DHCP_RANGE_EXTENDED: u32 = 20024u32; +pub const ERROR_DHCP_RANGE_FULL: u32 = 20012u32; +pub const ERROR_DHCP_RANGE_INVALID_IN_SERVER_POLICY: u32 = 20108u32; +pub const ERROR_DHCP_RANGE_TOO_SMALL: u32 = 20020u32; +pub const ERROR_DHCP_REACHED_END_OF_SELECTION: u32 = 20126u32; +pub const ERROR_DHCP_REGISTRY_INIT_FAILED: u32 = 20000u32; +pub const ERROR_DHCP_RESERVEDIP_EXITS: u32 = 20022u32; +pub const ERROR_DHCP_RESERVED_CLIENT: u32 = 20019u32; +pub const ERROR_DHCP_ROGUE_DS_CONFLICT: u32 = 20041u32; +pub const ERROR_DHCP_ROGUE_DS_UNREACHABLE: u32 = 20040u32; +pub const ERROR_DHCP_ROGUE_INIT_FAILED: u32 = 20037u32; +pub const ERROR_DHCP_ROGUE_NOT_AUTHORIZED: u32 = 20039u32; +pub const ERROR_DHCP_ROGUE_NOT_OUR_ENTERPRISE: u32 = 20042u32; +pub const ERROR_DHCP_ROGUE_SAMSHUTDOWN: u32 = 20038u32; +pub const ERROR_DHCP_ROGUE_STANDALONE_IN_DS: u32 = 20043u32; +pub const ERROR_DHCP_RPC_INIT_FAILED: u32 = 20002u32; +pub const ERROR_DHCP_SCOPE_NAME_TOO_LONG: u32 = 20046u32; +pub const ERROR_DHCP_SERVER_NAME_NOT_RESOLVED: u32 = 20124u32; +pub const ERROR_DHCP_SERVER_NOT_REACHABLE: u32 = 20122u32; +pub const ERROR_DHCP_SERVER_NOT_RUNNING: u32 = 20123u32; +pub const ERROR_DHCP_SERVICE_PAUSED: u32 = 20017u32; +pub const ERROR_DHCP_SUBNET_EXISTS: u32 = 20052u32; +pub const ERROR_DHCP_SUBNET_EXITS: u32 = 20004u32; +pub const ERROR_DHCP_SUBNET_NOT_PRESENT: u32 = 20005u32; +pub const ERROR_DHCP_SUPER_SCOPE_NAME_TOO_LONG: u32 = 20030u32; +pub const ERROR_DHCP_UNDEFINED_HARDWARE_ADDRESS_TYPE: u32 = 20102u32; +pub const ERROR_DHCP_UNSUPPORTED_CLIENT: u32 = 20034u32; +pub const ERROR_EXTEND_TOO_SMALL: u32 = 20025u32; +pub const ERROR_LAST_DHCP_SERVER_ERROR: u32 = 20139u32; +pub const ERROR_MSCOPE_RANGE_TOO_SMALL: u32 = 20054u32; +pub const ERROR_SCOPE_RANGE_POLICY_RANGE_CONFLICT: u32 = 20112u32; +pub const ERROR_SERVER_INVALID_BOOT_FILE_TABLE: u32 = 20028u32; +pub const ERROR_SERVER_UNKNOWN_BOOT_FILE_NAME: u32 = 20029u32; +pub const EXEMPT: QuarantineStatus = 4i32; +pub const FILTER_STATUS_FULL_MATCH_IN_ALLOW_LIST: u32 = 2u32; +pub const FILTER_STATUS_FULL_MATCH_IN_DENY_LIST: u32 = 4u32; +pub const FILTER_STATUS_NONE: u32 = 1u32; +pub const FILTER_STATUS_WILDCARD_MATCH_IN_ALLOW_LIST: u32 = 8u32; +pub const FILTER_STATUS_WILDCARD_MATCH_IN_DENY_LIST: u32 = 16u32; +pub const HWTYPE_ETHERNET_10MB: u32 = 1u32; +pub const HotStandby: DHCP_FAILOVER_MODE = 1i32; +pub const INIT: FSM_STATE = 1i32; +pub const LoadBalance: DHCP_FAILOVER_MODE = 0i32; +pub const MAC_ADDRESS_LENGTH: u32 = 6u32; +pub const MAX_PATTERN_LENGTH: u32 = 255u32; +pub const MCLT: u32 = 1u32; +pub const MODE: u32 = 16u32; +pub const NOQUARANTINE: QuarantineStatus = 0i32; +pub const NOQUARINFO: QuarantineStatus = 6i32; +pub const NORMAL: FSM_STATE = 3i32; +pub const NO_STATE: FSM_STATE = 0i32; +pub const OPTION_ALL_SUBNETS_MTU: u32 = 27u32; +pub const OPTION_ARP_CACHE_TIMEOUT: u32 = 35u32; +pub const OPTION_BE_A_MASK_SUPPLIER: u32 = 30u32; +pub const OPTION_BE_A_ROUTER: u32 = 19u32; +pub const OPTION_BOOTFILE_NAME: u32 = 67u32; +pub const OPTION_BOOT_FILE_SIZE: u32 = 13u32; +pub const OPTION_BROADCAST_ADDRESS: u32 = 28u32; +pub const OPTION_CLIENT_CLASS_INFO: u32 = 60u32; +pub const OPTION_CLIENT_ID: u32 = 61u32; +pub const OPTION_COOKIE_SERVERS: u32 = 8u32; +pub const OPTION_DEFAULT_TTL: u32 = 23u32; +pub const OPTION_DOMAIN_NAME: u32 = 15u32; +pub const OPTION_DOMAIN_NAME_SERVERS: u32 = 6u32; +pub const OPTION_END: u32 = 255u32; +pub const OPTION_ETHERNET_ENCAPSULATION: u32 = 36u32; +pub const OPTION_EXTENSIONS_PATH: u32 = 18u32; +pub const OPTION_HOST_NAME: u32 = 12u32; +pub const OPTION_IEN116_NAME_SERVERS: u32 = 5u32; +pub const OPTION_IMPRESS_SERVERS: u32 = 10u32; +pub const OPTION_KEEP_ALIVE_DATA_SIZE: u32 = 39u32; +pub const OPTION_KEEP_ALIVE_INTERVAL: u32 = 38u32; +pub const OPTION_LEASE_TIME: u32 = 51u32; +pub const OPTION_LOG_SERVERS: u32 = 7u32; +pub const OPTION_LPR_SERVERS: u32 = 9u32; +pub const OPTION_MAX_REASSEMBLY_SIZE: u32 = 22u32; +pub const OPTION_MERIT_DUMP_FILE: u32 = 14u32; +pub const OPTION_MESSAGE: u32 = 56u32; +pub const OPTION_MESSAGE_LENGTH: u32 = 57u32; +pub const OPTION_MESSAGE_TYPE: u32 = 53u32; +pub const OPTION_MSFT_IE_PROXY: u32 = 252u32; +pub const OPTION_MTU: u32 = 26u32; +pub const OPTION_NETBIOS_DATAGRAM_SERVER: u32 = 45u32; +pub const OPTION_NETBIOS_NAME_SERVER: u32 = 44u32; +pub const OPTION_NETBIOS_NODE_TYPE: u32 = 46u32; +pub const OPTION_NETBIOS_SCOPE_OPTION: u32 = 47u32; +pub const OPTION_NETWORK_INFO_SERVERS: u32 = 41u32; +pub const OPTION_NETWORK_INFO_SERVICE_DOM: u32 = 40u32; +pub const OPTION_NETWORK_TIME_SERVERS: u32 = 42u32; +pub const OPTION_NON_LOCAL_SOURCE_ROUTING: u32 = 20u32; +pub const OPTION_OK_TO_OVERLAY: u32 = 52u32; +pub const OPTION_PAD: u32 = 0u32; +pub const OPTION_PARAMETER_REQUEST_LIST: u32 = 55u32; +pub const OPTION_PERFORM_MASK_DISCOVERY: u32 = 29u32; +pub const OPTION_PERFORM_ROUTER_DISCOVERY: u32 = 31u32; +pub const OPTION_PMTU_AGING_TIMEOUT: u32 = 24u32; +pub const OPTION_PMTU_PLATEAU_TABLE: u32 = 25u32; +pub const OPTION_POLICY_FILTER_FOR_NLSR: u32 = 21u32; +pub const OPTION_REBIND_TIME: u32 = 59u32; +pub const OPTION_RENEWAL_TIME: u32 = 58u32; +pub const OPTION_REQUESTED_ADDRESS: u32 = 50u32; +pub const OPTION_RLP_SERVERS: u32 = 11u32; +pub const OPTION_ROOT_DISK: u32 = 17u32; +pub const OPTION_ROUTER_ADDRESS: u32 = 3u32; +pub const OPTION_ROUTER_SOLICITATION_ADDR: u32 = 32u32; +pub const OPTION_SERVER_IDENTIFIER: u32 = 54u32; +pub const OPTION_STATIC_ROUTES: u32 = 33u32; +pub const OPTION_SUBNET_MASK: u32 = 1u32; +pub const OPTION_SWAP_SERVER: u32 = 16u32; +pub const OPTION_TFTP_SERVER_NAME: u32 = 66u32; +pub const OPTION_TIME_OFFSET: u32 = 2u32; +pub const OPTION_TIME_SERVERS: u32 = 4u32; +pub const OPTION_TRAILERS: u32 = 34u32; +pub const OPTION_TTL: u32 = 37u32; +pub const OPTION_VENDOR_SPEC_INFO: u32 = 43u32; +pub const OPTION_XWINDOW_DISPLAY_MANAGER: u32 = 49u32; +pub const OPTION_XWINDOW_FONT_SERVER: u32 = 48u32; +pub const PARTNER_DOWN: FSM_STATE = 5i32; +pub const PAUSED: FSM_STATE = 12i32; +pub const PERCENTAGE: u32 = 8u32; +pub const POTENTIAL_CONFLICT: FSM_STATE = 6i32; +pub const PREVSTATE: u32 = 32u32; +pub const PROBATION: QuarantineStatus = 3i32; +pub const PrimaryServer: DHCP_FAILOVER_SERVER = 0i32; +pub const QUARANTINE_CONFIG_OPTION: u32 = 43222u32; +pub const QUARANTINE_SCOPE_QUARPROFILE_OPTION: u32 = 43221u32; +pub const QUARANTIN_OPTION_BASE: u32 = 43220u32; +pub const RECOVER: FSM_STATE = 9i32; +pub const RECOVER_DONE: FSM_STATE = 11i32; +pub const RECOVER_WAIT: FSM_STATE = 10i32; +pub const RESOLUTION_INT: FSM_STATE = 8i32; +pub const RESTRICTEDACCESS: QuarantineStatus = 1i32; +pub const SAFEPERIOD: u32 = 2u32; +pub const SHAREDSECRET: u32 = 64u32; +pub const SHUTDOWN: FSM_STATE = 13i32; +pub const STARTUP: FSM_STATE = 2i32; +pub const STATUS_NOPREFIX_AVAIL: StatusCode = 6i32; +pub const STATUS_NO_BINDING: StatusCode = 3i32; +pub const STATUS_NO_ERROR: StatusCode = 0i32; +pub const STATUS_UNSPECIFIED_FAILURE: StatusCode = 1i32; +pub const SecondaryServer: DHCP_FAILOVER_SERVER = 1i32; +pub const Set_APIProtocolSupport: u32 = 1u32; +pub const Set_AuditLogState: u32 = 2048u32; +pub const Set_BackupInterval: u32 = 16u32; +pub const Set_BackupPath: u32 = 8u32; +pub const Set_BootFileTable: u32 = 1024u32; +pub const Set_DatabaseCleanupInterval: u32 = 128u32; +pub const Set_DatabaseLoggingFlag: u32 = 32u32; +pub const Set_DatabaseName: u32 = 2u32; +pub const Set_DatabasePath: u32 = 4u32; +pub const Set_DebugFlag: u32 = 256u32; +pub const Set_PingRetries: u32 = 512u32; +pub const Set_PreferredLifetime: u32 = 4u32; +pub const Set_PreferredLifetimeIATA: u32 = 64u32; +pub const Set_QuarantineDefFail: u32 = 8192u32; +pub const Set_QuarantineON: u32 = 4096u32; +pub const Set_RapidCommitFlag: u32 = 2u32; +pub const Set_RestoreFlag: u32 = 64u32; +pub const Set_T1: u32 = 16u32; +pub const Set_T2: u32 = 32u32; +pub const Set_UnicastFlag: u32 = 1u32; +pub const Set_ValidLifetime: u32 = 8u32; +pub const Set_ValidLifetimeIATA: u32 = 128u32; +pub const V5_ADDRESS_BIT_BOTH_REC: u32 = 32u32; +pub const V5_ADDRESS_BIT_DELETED: u32 = 128u32; +pub const V5_ADDRESS_BIT_UNREGISTERED: u32 = 64u32; +pub const V5_ADDRESS_EX_BIT_DISABLE_PTR_RR: u32 = 1u32; +pub const V5_ADDRESS_STATE_ACTIVE: u32 = 1u32; +pub const V5_ADDRESS_STATE_DECLINED: u32 = 2u32; +pub const V5_ADDRESS_STATE_DOOM: u32 = 3u32; +pub const V5_ADDRESS_STATE_OFFERED: u32 = 0u32; +pub const WARNING_EXTENDED_LESS: i32 = 20026i32; +pub type DHCPV6_STATELESS_PARAM_TYPE = i32; +pub type DHCP_FAILOVER_MODE = i32; +pub type DHCP_FAILOVER_SERVER = i32; +pub type DHCP_FILTER_LIST_TYPE = i32; +pub type DHCP_FORCE_FLAG = i32; +pub type DHCP_OPTION_DATA_TYPE = i32; +pub type DHCP_OPTION_SCOPE_TYPE = i32; +pub type DHCP_OPTION_SCOPE_TYPE6 = i32; +pub type DHCP_OPTION_TYPE = i32; +pub type DHCP_POLICY_FIELDS_TO_UPDATE = i32; +pub type DHCP_POL_ATTR_TYPE = i32; +pub type DHCP_POL_COMPARATOR = i32; +pub type DHCP_POL_LOGIC_OPER = i32; +pub type DHCP_PROPERTY_ID = i32; +pub type DHCP_PROPERTY_TYPE = i32; +pub type DHCP_SCAN_FLAG = i32; +pub type DHCP_SEARCH_INFO_TYPE = i32; +pub type DHCP_SEARCH_INFO_TYPE_V6 = i32; +pub type DHCP_SUBNET_ELEMENT_TYPE = i32; +pub type DHCP_SUBNET_ELEMENT_TYPE_V6 = i32; +pub type DHCP_SUBNET_STATE = i32; +pub type FSM_STATE = i32; +pub type QuarantineStatus = i32; +pub type StatusCode = i32; +#[repr(C)] +pub struct DATE_TIME { + pub dwLowDateTime: u32, + pub dwHighDateTime: u32, +} +impl ::core::marker::Copy for DATE_TIME {} +impl ::core::clone::Clone for DATE_TIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCPAPI_PARAMS { + pub Flags: u32, + pub OptionId: u32, + pub IsVendor: super::super::Foundation::BOOL, + pub Data: *mut u8, + pub nBytesData: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCPAPI_PARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCPAPI_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCPCAPI_CLASSID { + pub Flags: u32, + pub Data: *mut u8, + pub nBytesData: u32, +} +impl ::core::marker::Copy for DHCPCAPI_CLASSID {} +impl ::core::clone::Clone for DHCPCAPI_CLASSID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCPCAPI_PARAMS_ARRAY { + pub nParams: u32, + pub Params: *mut DHCPAPI_PARAMS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCPCAPI_PARAMS_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCPCAPI_PARAMS_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCPDS_SERVER { + pub Version: u32, + pub ServerName: ::windows_sys::core::PWSTR, + pub ServerAddress: u32, + pub Flags: u32, + pub State: u32, + pub DsLocation: ::windows_sys::core::PWSTR, + pub DsLocType: u32, +} +impl ::core::marker::Copy for DHCPDS_SERVER {} +impl ::core::clone::Clone for DHCPDS_SERVER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCPDS_SERVERS { + pub Flags: u32, + pub NumElements: u32, + pub Servers: *mut DHCPDS_SERVER, +} +impl ::core::marker::Copy for DHCPDS_SERVERS {} +impl ::core::clone::Clone for DHCPDS_SERVERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCPV4_FAILOVER_CLIENT_INFO { + pub ClientIpAddress: u32, + pub SubnetMask: u32, + pub ClientHardwareAddress: DHCP_BINARY_DATA, + pub ClientName: ::windows_sys::core::PWSTR, + pub ClientComment: ::windows_sys::core::PWSTR, + pub ClientLeaseExpires: DATE_TIME, + pub OwnerHost: DHCP_HOST_INFO, + pub bClientType: u8, + pub AddressState: u8, + pub Status: QuarantineStatus, + pub ProbationEnds: DATE_TIME, + pub QuarantineCapable: super::super::Foundation::BOOL, + pub SentPotExpTime: u32, + pub AckPotExpTime: u32, + pub RecvPotExpTime: u32, + pub StartTime: u32, + pub CltLastTransTime: u32, + pub LastBndUpdTime: u32, + pub BndMsgStatus: u32, + pub PolicyName: ::windows_sys::core::PWSTR, + pub Flags: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCPV4_FAILOVER_CLIENT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCPV4_FAILOVER_CLIENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCPV4_FAILOVER_CLIENT_INFO_ARRAY { + pub NumElements: u32, + pub Clients: *mut *mut DHCPV4_FAILOVER_CLIENT_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCPV4_FAILOVER_CLIENT_INFO_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCPV4_FAILOVER_CLIENT_INFO_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCPV4_FAILOVER_CLIENT_INFO_EX { + pub ClientIpAddress: u32, + pub SubnetMask: u32, + pub ClientHardwareAddress: DHCP_BINARY_DATA, + pub ClientName: ::windows_sys::core::PWSTR, + pub ClientComment: ::windows_sys::core::PWSTR, + pub ClientLeaseExpires: DATE_TIME, + pub OwnerHost: DHCP_HOST_INFO, + pub bClientType: u8, + pub AddressState: u8, + pub Status: QuarantineStatus, + pub ProbationEnds: DATE_TIME, + pub QuarantineCapable: super::super::Foundation::BOOL, + pub SentPotExpTime: u32, + pub AckPotExpTime: u32, + pub RecvPotExpTime: u32, + pub StartTime: u32, + pub CltLastTransTime: u32, + pub LastBndUpdTime: u32, + pub BndMsgStatus: u32, + pub PolicyName: ::windows_sys::core::PWSTR, + pub Flags: u8, + pub AddressStateEx: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCPV4_FAILOVER_CLIENT_INFO_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCPV4_FAILOVER_CLIENT_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCPV6CAPI_CLASSID { + pub Flags: u32, + pub Data: *mut u8, + pub nBytesData: u32, +} +impl ::core::marker::Copy for DHCPV6CAPI_CLASSID {} +impl ::core::clone::Clone for DHCPV6CAPI_CLASSID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCPV6CAPI_PARAMS { + pub Flags: u32, + pub OptionId: u32, + pub IsVendor: super::super::Foundation::BOOL, + pub Data: *mut u8, + pub nBytesData: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCPV6CAPI_PARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCPV6CAPI_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCPV6CAPI_PARAMS_ARRAY { + pub nParams: u32, + pub Params: *mut DHCPV6CAPI_PARAMS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCPV6CAPI_PARAMS_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCPV6CAPI_PARAMS_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCPV6Prefix { + pub prefix: [u8; 16], + pub prefixLength: u32, + pub preferredLifeTime: u32, + pub validLifeTime: u32, + pub status: StatusCode, +} +impl ::core::marker::Copy for DHCPV6Prefix {} +impl ::core::clone::Clone for DHCPV6Prefix { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCPV6PrefixLeaseInformation { + pub nPrefixes: u32, + pub prefixArray: *mut DHCPV6Prefix, + pub iaid: u32, + pub T1: i64, + pub T2: i64, + pub MaxLeaseExpirationTime: i64, + pub LastRenewalTime: i64, + pub status: StatusCode, + pub ServerId: *mut u8, + pub ServerIdLen: u32, +} +impl ::core::marker::Copy for DHCPV6PrefixLeaseInformation {} +impl ::core::clone::Clone for DHCPV6PrefixLeaseInformation { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCPV6_BIND_ELEMENT { + pub Flags: u32, + pub fBoundToDHCPServer: super::super::Foundation::BOOL, + pub AdapterPrimaryAddress: DHCP_IPV6_ADDRESS, + pub AdapterSubnetAddress: DHCP_IPV6_ADDRESS, + pub IfDescription: ::windows_sys::core::PWSTR, + pub IpV6IfIndex: u32, + pub IfIdSize: u32, + pub IfId: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCPV6_BIND_ELEMENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCPV6_BIND_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCPV6_BIND_ELEMENT_ARRAY { + pub NumElements: u32, + pub Elements: *mut DHCPV6_BIND_ELEMENT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCPV6_BIND_ELEMENT_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCPV6_BIND_ELEMENT_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCPV6_IP_ARRAY { + pub NumElements: u32, + pub Elements: *mut DHCP_IPV6_ADDRESS, +} +impl ::core::marker::Copy for DHCPV6_IP_ARRAY {} +impl ::core::clone::Clone for DHCPV6_IP_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCPV6_STATELESS_PARAMS { + pub Status: super::super::Foundation::BOOL, + pub PurgeInterval: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCPV6_STATELESS_PARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCPV6_STATELESS_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCPV6_STATELESS_SCOPE_STATS { + pub SubnetAddress: DHCP_IPV6_ADDRESS, + pub NumStatelessClientsAdded: u64, + pub NumStatelessClientsRemoved: u64, +} +impl ::core::marker::Copy for DHCPV6_STATELESS_SCOPE_STATS {} +impl ::core::clone::Clone for DHCPV6_STATELESS_SCOPE_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCPV6_STATELESS_STATS { + pub NumScopes: u32, + pub ScopeStats: *mut DHCPV6_STATELESS_SCOPE_STATS, +} +impl ::core::marker::Copy for DHCPV6_STATELESS_STATS {} +impl ::core::clone::Clone for DHCPV6_STATELESS_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_ADDR_PATTERN { + pub MatchHWType: super::super::Foundation::BOOL, + pub HWType: u8, + pub IsWildcard: super::super::Foundation::BOOL, + pub Length: u8, + pub Pattern: [u8; 255], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_ADDR_PATTERN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_ADDR_PATTERN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_ALL_OPTIONS { + pub Flags: u32, + pub NonVendorOptions: *mut DHCP_OPTION_ARRAY, + pub NumVendorOptions: u32, + pub VendorOptions: *mut DHCP_ALL_OPTIONS_0, +} +impl ::core::marker::Copy for DHCP_ALL_OPTIONS {} +impl ::core::clone::Clone for DHCP_ALL_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_ALL_OPTIONS_0 { + pub Option: DHCP_OPTION, + pub VendorName: ::windows_sys::core::PWSTR, + pub ClassName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DHCP_ALL_OPTIONS_0 {} +impl ::core::clone::Clone for DHCP_ALL_OPTIONS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_ALL_OPTION_VALUES { + pub Flags: u32, + pub NumElements: u32, + pub Options: *mut DHCP_ALL_OPTION_VALUES_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_ALL_OPTION_VALUES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_ALL_OPTION_VALUES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_ALL_OPTION_VALUES_0 { + pub ClassName: ::windows_sys::core::PWSTR, + pub VendorName: ::windows_sys::core::PWSTR, + pub IsVendor: super::super::Foundation::BOOL, + pub OptionsArray: *mut DHCP_OPTION_VALUE_ARRAY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_ALL_OPTION_VALUES_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_ALL_OPTION_VALUES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_ALL_OPTION_VALUES_PB { + pub Flags: u32, + pub NumElements: u32, + pub Options: *mut DHCP_ALL_OPTION_VALUES_PB_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_ALL_OPTION_VALUES_PB {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_ALL_OPTION_VALUES_PB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_ALL_OPTION_VALUES_PB_0 { + pub PolicyName: ::windows_sys::core::PWSTR, + pub VendorName: ::windows_sys::core::PWSTR, + pub IsVendor: super::super::Foundation::BOOL, + pub OptionsArray: *mut DHCP_OPTION_VALUE_ARRAY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_ALL_OPTION_VALUES_PB_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_ALL_OPTION_VALUES_PB_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_ATTRIB { + pub DhcpAttribId: u32, + pub DhcpAttribType: u32, + pub Anonymous: DHCP_ATTRIB_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_ATTRIB {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_ATTRIB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DHCP_ATTRIB_0 { + pub DhcpAttribBool: super::super::Foundation::BOOL, + pub DhcpAttribUlong: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_ATTRIB_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_ATTRIB_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_ATTRIB_ARRAY { + pub NumElements: u32, + pub DhcpAttribs: *mut DHCP_ATTRIB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_ATTRIB_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_ATTRIB_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_BINARY_DATA { + pub DataLength: u32, + pub Data: *mut u8, +} +impl ::core::marker::Copy for DHCP_BINARY_DATA {} +impl ::core::clone::Clone for DHCP_BINARY_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_BIND_ELEMENT { + pub Flags: u32, + pub fBoundToDHCPServer: super::super::Foundation::BOOL, + pub AdapterPrimaryAddress: u32, + pub AdapterSubnetAddress: u32, + pub IfDescription: ::windows_sys::core::PWSTR, + pub IfIdSize: u32, + pub IfId: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_BIND_ELEMENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_BIND_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_BIND_ELEMENT_ARRAY { + pub NumElements: u32, + pub Elements: *mut DHCP_BIND_ELEMENT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_BIND_ELEMENT_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_BIND_ELEMENT_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_BOOTP_IP_RANGE { + pub StartAddress: u32, + pub EndAddress: u32, + pub BootpAllocated: u32, + pub MaxBootpAllowed: u32, +} +impl ::core::marker::Copy for DHCP_BOOTP_IP_RANGE {} +impl ::core::clone::Clone for DHCP_BOOTP_IP_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_CALLOUT_TABLE { + pub DhcpControlHook: LPDHCP_CONTROL, + pub DhcpNewPktHook: LPDHCP_NEWPKT, + pub DhcpPktDropHook: LPDHCP_DROP_SEND, + pub DhcpPktSendHook: LPDHCP_DROP_SEND, + pub DhcpAddressDelHook: LPDHCP_PROB, + pub DhcpAddressOfferHook: LPDHCP_GIVE_ADDRESS, + pub DhcpHandleOptionsHook: LPDHCP_HANDLE_OPTIONS, + pub DhcpDeleteClientHook: LPDHCP_DELETE_CLIENT, + pub DhcpExtensionHook: *mut ::core::ffi::c_void, + pub DhcpReservedHook: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_CALLOUT_TABLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_CALLOUT_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_CLASS_INFO { + pub ClassName: ::windows_sys::core::PWSTR, + pub ClassComment: ::windows_sys::core::PWSTR, + pub ClassDataLength: u32, + pub IsVendor: super::super::Foundation::BOOL, + pub Flags: u32, + pub ClassData: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_CLASS_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_CLASS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_CLASS_INFO_ARRAY { + pub NumElements: u32, + pub Classes: *mut DHCP_CLASS_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_CLASS_INFO_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_CLASS_INFO_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_CLASS_INFO_ARRAY_V6 { + pub NumElements: u32, + pub Classes: *mut DHCP_CLASS_INFO_V6, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_CLASS_INFO_ARRAY_V6 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_CLASS_INFO_ARRAY_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_CLASS_INFO_V6 { + pub ClassName: ::windows_sys::core::PWSTR, + pub ClassComment: ::windows_sys::core::PWSTR, + pub ClassDataLength: u32, + pub IsVendor: super::super::Foundation::BOOL, + pub EnterpriseNumber: u32, + pub Flags: u32, + pub ClassData: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_CLASS_INFO_V6 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_CLASS_INFO_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_CLIENT_FILTER_STATUS_INFO { + pub ClientIpAddress: u32, + pub SubnetMask: u32, + pub ClientHardwareAddress: DHCP_BINARY_DATA, + pub ClientName: ::windows_sys::core::PWSTR, + pub ClientComment: ::windows_sys::core::PWSTR, + pub ClientLeaseExpires: DATE_TIME, + pub OwnerHost: DHCP_HOST_INFO, + pub bClientType: u8, + pub AddressState: u8, + pub Status: QuarantineStatus, + pub ProbationEnds: DATE_TIME, + pub QuarantineCapable: super::super::Foundation::BOOL, + pub FilterStatus: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_CLIENT_FILTER_STATUS_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_CLIENT_FILTER_STATUS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_CLIENT_FILTER_STATUS_INFO_ARRAY { + pub NumElements: u32, + pub Clients: *mut *mut DHCP_CLIENT_FILTER_STATUS_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_CLIENT_FILTER_STATUS_INFO_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_CLIENT_FILTER_STATUS_INFO_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_CLIENT_INFO { + pub ClientIpAddress: u32, + pub SubnetMask: u32, + pub ClientHardwareAddress: DHCP_BINARY_DATA, + pub ClientName: ::windows_sys::core::PWSTR, + pub ClientComment: ::windows_sys::core::PWSTR, + pub ClientLeaseExpires: DATE_TIME, + pub OwnerHost: DHCP_HOST_INFO, +} +impl ::core::marker::Copy for DHCP_CLIENT_INFO {} +impl ::core::clone::Clone for DHCP_CLIENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_CLIENT_INFO_ARRAY { + pub NumElements: u32, + pub Clients: *mut *mut DHCP_CLIENT_INFO, +} +impl ::core::marker::Copy for DHCP_CLIENT_INFO_ARRAY {} +impl ::core::clone::Clone for DHCP_CLIENT_INFO_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_CLIENT_INFO_ARRAY_V4 { + pub NumElements: u32, + pub Clients: *mut *mut DHCP_CLIENT_INFO_V4, +} +impl ::core::marker::Copy for DHCP_CLIENT_INFO_ARRAY_V4 {} +impl ::core::clone::Clone for DHCP_CLIENT_INFO_ARRAY_V4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_CLIENT_INFO_ARRAY_V5 { + pub NumElements: u32, + pub Clients: *mut *mut DHCP_CLIENT_INFO_V5, +} +impl ::core::marker::Copy for DHCP_CLIENT_INFO_ARRAY_V5 {} +impl ::core::clone::Clone for DHCP_CLIENT_INFO_ARRAY_V5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_CLIENT_INFO_ARRAY_V6 { + pub NumElements: u32, + pub Clients: *mut *mut DHCP_CLIENT_INFO_V6, +} +impl ::core::marker::Copy for DHCP_CLIENT_INFO_ARRAY_V6 {} +impl ::core::clone::Clone for DHCP_CLIENT_INFO_ARRAY_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_CLIENT_INFO_ARRAY_VQ { + pub NumElements: u32, + pub Clients: *mut *mut DHCP_CLIENT_INFO_VQ, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_CLIENT_INFO_ARRAY_VQ {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_CLIENT_INFO_ARRAY_VQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_CLIENT_INFO_EX { + pub ClientIpAddress: u32, + pub SubnetMask: u32, + pub ClientHardwareAddress: DHCP_BINARY_DATA, + pub ClientName: ::windows_sys::core::PWSTR, + pub ClientComment: ::windows_sys::core::PWSTR, + pub ClientLeaseExpires: DATE_TIME, + pub OwnerHost: DHCP_HOST_INFO, + pub bClientType: u8, + pub AddressState: u8, + pub Status: QuarantineStatus, + pub ProbationEnds: DATE_TIME, + pub QuarantineCapable: super::super::Foundation::BOOL, + pub FilterStatus: u32, + pub PolicyName: ::windows_sys::core::PWSTR, + pub Properties: *mut DHCP_PROPERTY_ARRAY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_CLIENT_INFO_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_CLIENT_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_CLIENT_INFO_EX_ARRAY { + pub NumElements: u32, + pub Clients: *mut *mut DHCP_CLIENT_INFO_EX, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_CLIENT_INFO_EX_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_CLIENT_INFO_EX_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_CLIENT_INFO_PB { + pub ClientIpAddress: u32, + pub SubnetMask: u32, + pub ClientHardwareAddress: DHCP_BINARY_DATA, + pub ClientName: ::windows_sys::core::PWSTR, + pub ClientComment: ::windows_sys::core::PWSTR, + pub ClientLeaseExpires: DATE_TIME, + pub OwnerHost: DHCP_HOST_INFO, + pub bClientType: u8, + pub AddressState: u8, + pub Status: QuarantineStatus, + pub ProbationEnds: DATE_TIME, + pub QuarantineCapable: super::super::Foundation::BOOL, + pub FilterStatus: u32, + pub PolicyName: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_CLIENT_INFO_PB {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_CLIENT_INFO_PB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_CLIENT_INFO_PB_ARRAY { + pub NumElements: u32, + pub Clients: *mut *mut DHCP_CLIENT_INFO_PB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_CLIENT_INFO_PB_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_CLIENT_INFO_PB_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_CLIENT_INFO_V4 { + pub ClientIpAddress: u32, + pub SubnetMask: u32, + pub ClientHardwareAddress: DHCP_BINARY_DATA, + pub ClientName: ::windows_sys::core::PWSTR, + pub ClientComment: ::windows_sys::core::PWSTR, + pub ClientLeaseExpires: DATE_TIME, + pub OwnerHost: DHCP_HOST_INFO, + pub bClientType: u8, +} +impl ::core::marker::Copy for DHCP_CLIENT_INFO_V4 {} +impl ::core::clone::Clone for DHCP_CLIENT_INFO_V4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_CLIENT_INFO_V5 { + pub ClientIpAddress: u32, + pub SubnetMask: u32, + pub ClientHardwareAddress: DHCP_BINARY_DATA, + pub ClientName: ::windows_sys::core::PWSTR, + pub ClientComment: ::windows_sys::core::PWSTR, + pub ClientLeaseExpires: DATE_TIME, + pub OwnerHost: DHCP_HOST_INFO, + pub bClientType: u8, + pub AddressState: u8, +} +impl ::core::marker::Copy for DHCP_CLIENT_INFO_V5 {} +impl ::core::clone::Clone for DHCP_CLIENT_INFO_V5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_CLIENT_INFO_V6 { + pub ClientIpAddress: DHCP_IPV6_ADDRESS, + pub ClientDUID: DHCP_BINARY_DATA, + pub AddressType: u32, + pub IAID: u32, + pub ClientName: ::windows_sys::core::PWSTR, + pub ClientComment: ::windows_sys::core::PWSTR, + pub ClientValidLeaseExpires: DATE_TIME, + pub ClientPrefLeaseExpires: DATE_TIME, + pub OwnerHost: DHCP_HOST_INFO_V6, +} +impl ::core::marker::Copy for DHCP_CLIENT_INFO_V6 {} +impl ::core::clone::Clone for DHCP_CLIENT_INFO_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_CLIENT_INFO_VQ { + pub ClientIpAddress: u32, + pub SubnetMask: u32, + pub ClientHardwareAddress: DHCP_BINARY_DATA, + pub ClientName: ::windows_sys::core::PWSTR, + pub ClientComment: ::windows_sys::core::PWSTR, + pub ClientLeaseExpires: DATE_TIME, + pub OwnerHost: DHCP_HOST_INFO, + pub bClientType: u8, + pub AddressState: u8, + pub Status: QuarantineStatus, + pub ProbationEnds: DATE_TIME, + pub QuarantineCapable: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_CLIENT_INFO_VQ {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_CLIENT_INFO_VQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_FAILOVER_RELATIONSHIP { + pub PrimaryServer: u32, + pub SecondaryServer: u32, + pub Mode: DHCP_FAILOVER_MODE, + pub ServerType: DHCP_FAILOVER_SERVER, + pub State: FSM_STATE, + pub PrevState: FSM_STATE, + pub Mclt: u32, + pub SafePeriod: u32, + pub RelationshipName: ::windows_sys::core::PWSTR, + pub PrimaryServerName: ::windows_sys::core::PWSTR, + pub SecondaryServerName: ::windows_sys::core::PWSTR, + pub pScopes: *mut DHCP_IP_ARRAY, + pub Percentage: u8, + pub SharedSecret: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DHCP_FAILOVER_RELATIONSHIP {} +impl ::core::clone::Clone for DHCP_FAILOVER_RELATIONSHIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_FAILOVER_RELATIONSHIP_ARRAY { + pub NumElements: u32, + pub pRelationships: *mut DHCP_FAILOVER_RELATIONSHIP, +} +impl ::core::marker::Copy for DHCP_FAILOVER_RELATIONSHIP_ARRAY {} +impl ::core::clone::Clone for DHCP_FAILOVER_RELATIONSHIP_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_FAILOVER_STATISTICS { + pub NumAddr: u32, + pub AddrFree: u32, + pub AddrInUse: u32, + pub PartnerAddrFree: u32, + pub ThisAddrFree: u32, + pub PartnerAddrInUse: u32, + pub ThisAddrInUse: u32, +} +impl ::core::marker::Copy for DHCP_FAILOVER_STATISTICS {} +impl ::core::clone::Clone for DHCP_FAILOVER_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_FILTER_ADD_INFO { + pub AddrPatt: DHCP_ADDR_PATTERN, + pub Comment: ::windows_sys::core::PWSTR, + pub ListType: DHCP_FILTER_LIST_TYPE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_FILTER_ADD_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_FILTER_ADD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_FILTER_ENUM_INFO { + pub NumElements: u32, + pub pEnumRecords: *mut DHCP_FILTER_RECORD, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_FILTER_ENUM_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_FILTER_ENUM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_FILTER_GLOBAL_INFO { + pub EnforceAllowList: super::super::Foundation::BOOL, + pub EnforceDenyList: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_FILTER_GLOBAL_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_FILTER_GLOBAL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_FILTER_RECORD { + pub AddrPatt: DHCP_ADDR_PATTERN, + pub Comment: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_FILTER_RECORD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_FILTER_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_HOST_INFO { + pub IpAddress: u32, + pub NetBiosName: ::windows_sys::core::PWSTR, + pub HostName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DHCP_HOST_INFO {} +impl ::core::clone::Clone for DHCP_HOST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_HOST_INFO_V6 { + pub IpAddress: DHCP_IPV6_ADDRESS, + pub NetBiosName: ::windows_sys::core::PWSTR, + pub HostName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DHCP_HOST_INFO_V6 {} +impl ::core::clone::Clone for DHCP_HOST_INFO_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_IPV6_ADDRESS { + pub HighOrderBits: u64, + pub LowOrderBits: u64, +} +impl ::core::marker::Copy for DHCP_IPV6_ADDRESS {} +impl ::core::clone::Clone for DHCP_IPV6_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_IP_ARRAY { + pub NumElements: u32, + pub Elements: *mut u32, +} +impl ::core::marker::Copy for DHCP_IP_ARRAY {} +impl ::core::clone::Clone for DHCP_IP_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_IP_CLUSTER { + pub ClusterAddress: u32, + pub ClusterMask: u32, +} +impl ::core::marker::Copy for DHCP_IP_CLUSTER {} +impl ::core::clone::Clone for DHCP_IP_CLUSTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_IP_RANGE { + pub StartAddress: u32, + pub EndAddress: u32, +} +impl ::core::marker::Copy for DHCP_IP_RANGE {} +impl ::core::clone::Clone for DHCP_IP_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_IP_RANGE_ARRAY { + pub NumElements: u32, + pub Elements: *mut DHCP_IP_RANGE, +} +impl ::core::marker::Copy for DHCP_IP_RANGE_ARRAY {} +impl ::core::clone::Clone for DHCP_IP_RANGE_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_IP_RANGE_V6 { + pub StartAddress: DHCP_IPV6_ADDRESS, + pub EndAddress: DHCP_IPV6_ADDRESS, +} +impl ::core::marker::Copy for DHCP_IP_RANGE_V6 {} +impl ::core::clone::Clone for DHCP_IP_RANGE_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_IP_RESERVATION { + pub ReservedIpAddress: u32, + pub ReservedForClient: *mut DHCP_BINARY_DATA, +} +impl ::core::marker::Copy for DHCP_IP_RESERVATION {} +impl ::core::clone::Clone for DHCP_IP_RESERVATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_IP_RESERVATION_INFO { + pub ReservedIpAddress: u32, + pub ReservedForClient: DHCP_BINARY_DATA, + pub ReservedClientName: ::windows_sys::core::PWSTR, + pub ReservedClientDesc: ::windows_sys::core::PWSTR, + pub bAllowedClientTypes: u8, + pub fOptionsPresent: u8, +} +impl ::core::marker::Copy for DHCP_IP_RESERVATION_INFO {} +impl ::core::clone::Clone for DHCP_IP_RESERVATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_IP_RESERVATION_V4 { + pub ReservedIpAddress: u32, + pub ReservedForClient: *mut DHCP_BINARY_DATA, + pub bAllowedClientTypes: u8, +} +impl ::core::marker::Copy for DHCP_IP_RESERVATION_V4 {} +impl ::core::clone::Clone for DHCP_IP_RESERVATION_V4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_IP_RESERVATION_V6 { + pub ReservedIpAddress: DHCP_IPV6_ADDRESS, + pub ReservedForClient: *mut DHCP_BINARY_DATA, + pub InterfaceId: u32, +} +impl ::core::marker::Copy for DHCP_IP_RESERVATION_V6 {} +impl ::core::clone::Clone for DHCP_IP_RESERVATION_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_MIB_INFO { + pub Discovers: u32, + pub Offers: u32, + pub Requests: u32, + pub Acks: u32, + pub Naks: u32, + pub Declines: u32, + pub Releases: u32, + pub ServerStartTime: DATE_TIME, + pub Scopes: u32, + pub ScopeInfo: *mut SCOPE_MIB_INFO, +} +impl ::core::marker::Copy for DHCP_MIB_INFO {} +impl ::core::clone::Clone for DHCP_MIB_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_MIB_INFO_V5 { + pub Discovers: u32, + pub Offers: u32, + pub Requests: u32, + pub Acks: u32, + pub Naks: u32, + pub Declines: u32, + pub Releases: u32, + pub ServerStartTime: DATE_TIME, + pub QtnNumLeases: u32, + pub QtnPctQtnLeases: u32, + pub QtnProbationLeases: u32, + pub QtnNonQtnLeases: u32, + pub QtnExemptLeases: u32, + pub QtnCapableClients: u32, + pub QtnIASErrors: u32, + pub DelayedOffers: u32, + pub ScopesWithDelayedOffers: u32, + pub Scopes: u32, + pub ScopeInfo: *mut SCOPE_MIB_INFO_V5, +} +impl ::core::marker::Copy for DHCP_MIB_INFO_V5 {} +impl ::core::clone::Clone for DHCP_MIB_INFO_V5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_MIB_INFO_V6 { + pub Solicits: u32, + pub Advertises: u32, + pub Requests: u32, + pub Renews: u32, + pub Rebinds: u32, + pub Replies: u32, + pub Confirms: u32, + pub Declines: u32, + pub Releases: u32, + pub Informs: u32, + pub ServerStartTime: DATE_TIME, + pub Scopes: u32, + pub ScopeInfo: *mut SCOPE_MIB_INFO_V6, +} +impl ::core::marker::Copy for DHCP_MIB_INFO_V6 {} +impl ::core::clone::Clone for DHCP_MIB_INFO_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_MIB_INFO_VQ { + pub Discovers: u32, + pub Offers: u32, + pub Requests: u32, + pub Acks: u32, + pub Naks: u32, + pub Declines: u32, + pub Releases: u32, + pub ServerStartTime: DATE_TIME, + pub QtnNumLeases: u32, + pub QtnPctQtnLeases: u32, + pub QtnProbationLeases: u32, + pub QtnNonQtnLeases: u32, + pub QtnExemptLeases: u32, + pub QtnCapableClients: u32, + pub QtnIASErrors: u32, + pub Scopes: u32, + pub ScopeInfo: *mut SCOPE_MIB_INFO_VQ, +} +impl ::core::marker::Copy for DHCP_MIB_INFO_VQ {} +impl ::core::clone::Clone for DHCP_MIB_INFO_VQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_OPTION { + pub OptionID: u32, + pub OptionName: ::windows_sys::core::PWSTR, + pub OptionComment: ::windows_sys::core::PWSTR, + pub DefaultValue: DHCP_OPTION_DATA, + pub OptionType: DHCP_OPTION_TYPE, +} +impl ::core::marker::Copy for DHCP_OPTION {} +impl ::core::clone::Clone for DHCP_OPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_OPTION_ARRAY { + pub NumElements: u32, + pub Options: *mut DHCP_OPTION, +} +impl ::core::marker::Copy for DHCP_OPTION_ARRAY {} +impl ::core::clone::Clone for DHCP_OPTION_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_OPTION_DATA { + pub NumElements: u32, + pub Elements: *mut DHCP_OPTION_DATA_ELEMENT, +} +impl ::core::marker::Copy for DHCP_OPTION_DATA {} +impl ::core::clone::Clone for DHCP_OPTION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_OPTION_DATA_ELEMENT { + pub OptionType: DHCP_OPTION_DATA_TYPE, + pub Element: DHCP_OPTION_DATA_ELEMENT_0, +} +impl ::core::marker::Copy for DHCP_OPTION_DATA_ELEMENT {} +impl ::core::clone::Clone for DHCP_OPTION_DATA_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DHCP_OPTION_DATA_ELEMENT_0 { + pub ByteOption: u8, + pub WordOption: u16, + pub DWordOption: u32, + pub DWordDWordOption: DWORD_DWORD, + pub IpAddressOption: u32, + pub StringDataOption: ::windows_sys::core::PWSTR, + pub BinaryDataOption: DHCP_BINARY_DATA, + pub EncapsulatedDataOption: DHCP_BINARY_DATA, + pub Ipv6AddressDataOption: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DHCP_OPTION_DATA_ELEMENT_0 {} +impl ::core::clone::Clone for DHCP_OPTION_DATA_ELEMENT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_OPTION_LIST { + pub NumOptions: u32, + pub Options: *mut DHCP_OPTION_VALUE, +} +impl ::core::marker::Copy for DHCP_OPTION_LIST {} +impl ::core::clone::Clone for DHCP_OPTION_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_OPTION_SCOPE_INFO { + pub ScopeType: DHCP_OPTION_SCOPE_TYPE, + pub ScopeInfo: DHCP_OPTION_SCOPE_INFO_0, +} +impl ::core::marker::Copy for DHCP_OPTION_SCOPE_INFO {} +impl ::core::clone::Clone for DHCP_OPTION_SCOPE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DHCP_OPTION_SCOPE_INFO_0 { + pub DefaultScopeInfo: *mut ::core::ffi::c_void, + pub GlobalScopeInfo: *mut ::core::ffi::c_void, + pub SubnetScopeInfo: u32, + pub ReservedScopeInfo: DHCP_RESERVED_SCOPE, + pub MScopeInfo: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DHCP_OPTION_SCOPE_INFO_0 {} +impl ::core::clone::Clone for DHCP_OPTION_SCOPE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_OPTION_SCOPE_INFO6 { + pub ScopeType: DHCP_OPTION_SCOPE_TYPE6, + pub ScopeInfo: DHCP_OPTION_SCOPE_INFO6_0, +} +impl ::core::marker::Copy for DHCP_OPTION_SCOPE_INFO6 {} +impl ::core::clone::Clone for DHCP_OPTION_SCOPE_INFO6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DHCP_OPTION_SCOPE_INFO6_0 { + pub DefaultScopeInfo: *mut ::core::ffi::c_void, + pub SubnetScopeInfo: DHCP_IPV6_ADDRESS, + pub ReservedScopeInfo: DHCP_RESERVED_SCOPE6, +} +impl ::core::marker::Copy for DHCP_OPTION_SCOPE_INFO6_0 {} +impl ::core::clone::Clone for DHCP_OPTION_SCOPE_INFO6_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_OPTION_VALUE { + pub OptionID: u32, + pub Value: DHCP_OPTION_DATA, +} +impl ::core::marker::Copy for DHCP_OPTION_VALUE {} +impl ::core::clone::Clone for DHCP_OPTION_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_OPTION_VALUE_ARRAY { + pub NumElements: u32, + pub Values: *mut DHCP_OPTION_VALUE, +} +impl ::core::marker::Copy for DHCP_OPTION_VALUE_ARRAY {} +impl ::core::clone::Clone for DHCP_OPTION_VALUE_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_PERF_STATS { + pub dwNumPacketsReceived: u32, + pub dwNumPacketsDuplicate: u32, + pub dwNumPacketsExpired: u32, + pub dwNumMilliSecondsProcessed: u32, + pub dwNumPacketsInActiveQueue: u32, + pub dwNumPacketsInPingQueue: u32, + pub dwNumDiscoversReceived: u32, + pub dwNumOffersSent: u32, + pub dwNumRequestsReceived: u32, + pub dwNumInformsReceived: u32, + pub dwNumAcksSent: u32, + pub dwNumNacksSent: u32, + pub dwNumDeclinesReceived: u32, + pub dwNumReleasesReceived: u32, + pub dwNumDelayedOfferInQueue: u32, + pub dwNumPacketsProcessed: u32, + pub dwNumPacketsInQuarWaitingQueue: u32, + pub dwNumPacketsInQuarReadyQueue: u32, + pub dwNumPacketsInQuarDecisionQueue: u32, +} +impl ::core::marker::Copy for DHCP_PERF_STATS {} +impl ::core::clone::Clone for DHCP_PERF_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_POLICY { + pub PolicyName: ::windows_sys::core::PWSTR, + pub IsGlobalPolicy: super::super::Foundation::BOOL, + pub Subnet: u32, + pub ProcessingOrder: u32, + pub Conditions: *mut DHCP_POL_COND_ARRAY, + pub Expressions: *mut DHCP_POL_EXPR_ARRAY, + pub Ranges: *mut DHCP_IP_RANGE_ARRAY, + pub Description: ::windows_sys::core::PWSTR, + pub Enabled: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_POLICY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_POLICY_ARRAY { + pub NumElements: u32, + pub Elements: *mut DHCP_POLICY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_POLICY_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_POLICY_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_POLICY_EX { + pub PolicyName: ::windows_sys::core::PWSTR, + pub IsGlobalPolicy: super::super::Foundation::BOOL, + pub Subnet: u32, + pub ProcessingOrder: u32, + pub Conditions: *mut DHCP_POL_COND_ARRAY, + pub Expressions: *mut DHCP_POL_EXPR_ARRAY, + pub Ranges: *mut DHCP_IP_RANGE_ARRAY, + pub Description: ::windows_sys::core::PWSTR, + pub Enabled: super::super::Foundation::BOOL, + pub Properties: *mut DHCP_PROPERTY_ARRAY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_POLICY_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_POLICY_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_POLICY_EX_ARRAY { + pub NumElements: u32, + pub Elements: *mut DHCP_POLICY_EX, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_POLICY_EX_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_POLICY_EX_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_POL_COND { + pub ParentExpr: u32, + pub Type: DHCP_POL_ATTR_TYPE, + pub OptionID: u32, + pub SubOptionID: u32, + pub VendorName: ::windows_sys::core::PWSTR, + pub Operator: DHCP_POL_COMPARATOR, + pub Value: *mut u8, + pub ValueLength: u32, +} +impl ::core::marker::Copy for DHCP_POL_COND {} +impl ::core::clone::Clone for DHCP_POL_COND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_POL_COND_ARRAY { + pub NumElements: u32, + pub Elements: *mut DHCP_POL_COND, +} +impl ::core::marker::Copy for DHCP_POL_COND_ARRAY {} +impl ::core::clone::Clone for DHCP_POL_COND_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_POL_EXPR { + pub ParentExpr: u32, + pub Operator: DHCP_POL_LOGIC_OPER, +} +impl ::core::marker::Copy for DHCP_POL_EXPR {} +impl ::core::clone::Clone for DHCP_POL_EXPR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_POL_EXPR_ARRAY { + pub NumElements: u32, + pub Elements: *mut DHCP_POL_EXPR, +} +impl ::core::marker::Copy for DHCP_POL_EXPR_ARRAY {} +impl ::core::clone::Clone for DHCP_POL_EXPR_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_PROPERTY { + pub ID: DHCP_PROPERTY_ID, + pub Type: DHCP_PROPERTY_TYPE, + pub Value: DHCP_PROPERTY_0, +} +impl ::core::marker::Copy for DHCP_PROPERTY {} +impl ::core::clone::Clone for DHCP_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DHCP_PROPERTY_0 { + pub ByteValue: u8, + pub WordValue: u16, + pub DWordValue: u32, + pub StringValue: ::windows_sys::core::PWSTR, + pub BinaryValue: DHCP_BINARY_DATA, +} +impl ::core::marker::Copy for DHCP_PROPERTY_0 {} +impl ::core::clone::Clone for DHCP_PROPERTY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_PROPERTY_ARRAY { + pub NumElements: u32, + pub Elements: *mut DHCP_PROPERTY, +} +impl ::core::marker::Copy for DHCP_PROPERTY_ARRAY {} +impl ::core::clone::Clone for DHCP_PROPERTY_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_RESERVATION_INFO_ARRAY { + pub NumElements: u32, + pub Elements: *mut *mut DHCP_IP_RESERVATION_INFO, +} +impl ::core::marker::Copy for DHCP_RESERVATION_INFO_ARRAY {} +impl ::core::clone::Clone for DHCP_RESERVATION_INFO_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_RESERVED_SCOPE { + pub ReservedIpAddress: u32, + pub ReservedIpSubnetAddress: u32, +} +impl ::core::marker::Copy for DHCP_RESERVED_SCOPE {} +impl ::core::clone::Clone for DHCP_RESERVED_SCOPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_RESERVED_SCOPE6 { + pub ReservedIpAddress: DHCP_IPV6_ADDRESS, + pub ReservedIpSubnetAddress: DHCP_IPV6_ADDRESS, +} +impl ::core::marker::Copy for DHCP_RESERVED_SCOPE6 {} +impl ::core::clone::Clone for DHCP_RESERVED_SCOPE6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SCAN_ITEM { + pub IpAddress: u32, + pub ScanFlag: DHCP_SCAN_FLAG, +} +impl ::core::marker::Copy for DHCP_SCAN_ITEM {} +impl ::core::clone::Clone for DHCP_SCAN_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SCAN_LIST { + pub NumScanItems: u32, + pub ScanItems: *mut DHCP_SCAN_ITEM, +} +impl ::core::marker::Copy for DHCP_SCAN_LIST {} +impl ::core::clone::Clone for DHCP_SCAN_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SEARCH_INFO { + pub SearchType: DHCP_SEARCH_INFO_TYPE, + pub SearchInfo: DHCP_SEARCH_INFO_0, +} +impl ::core::marker::Copy for DHCP_SEARCH_INFO {} +impl ::core::clone::Clone for DHCP_SEARCH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DHCP_SEARCH_INFO_0 { + pub ClientIpAddress: u32, + pub ClientHardwareAddress: DHCP_BINARY_DATA, + pub ClientName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DHCP_SEARCH_INFO_0 {} +impl ::core::clone::Clone for DHCP_SEARCH_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SEARCH_INFO_V6 { + pub SearchType: DHCP_SEARCH_INFO_TYPE_V6, + pub SearchInfo: DHCP_SEARCH_INFO_V6_0, +} +impl ::core::marker::Copy for DHCP_SEARCH_INFO_V6 {} +impl ::core::clone::Clone for DHCP_SEARCH_INFO_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DHCP_SEARCH_INFO_V6_0 { + pub ClientIpAddress: DHCP_IPV6_ADDRESS, + pub ClientDUID: DHCP_BINARY_DATA, + pub ClientName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DHCP_SEARCH_INFO_V6_0 {} +impl ::core::clone::Clone for DHCP_SEARCH_INFO_V6_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SERVER_CONFIG_INFO { + pub APIProtocolSupport: u32, + pub DatabaseName: ::windows_sys::core::PWSTR, + pub DatabasePath: ::windows_sys::core::PWSTR, + pub BackupPath: ::windows_sys::core::PWSTR, + pub BackupInterval: u32, + pub DatabaseLoggingFlag: u32, + pub RestoreFlag: u32, + pub DatabaseCleanupInterval: u32, + pub DebugFlag: u32, +} +impl ::core::marker::Copy for DHCP_SERVER_CONFIG_INFO {} +impl ::core::clone::Clone for DHCP_SERVER_CONFIG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_SERVER_CONFIG_INFO_V4 { + pub APIProtocolSupport: u32, + pub DatabaseName: ::windows_sys::core::PWSTR, + pub DatabasePath: ::windows_sys::core::PWSTR, + pub BackupPath: ::windows_sys::core::PWSTR, + pub BackupInterval: u32, + pub DatabaseLoggingFlag: u32, + pub RestoreFlag: u32, + pub DatabaseCleanupInterval: u32, + pub DebugFlag: u32, + pub dwPingRetries: u32, + pub cbBootTableString: u32, + pub wszBootTableString: ::windows_sys::core::PWSTR, + pub fAuditLog: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_SERVER_CONFIG_INFO_V4 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_SERVER_CONFIG_INFO_V4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_SERVER_CONFIG_INFO_V6 { + pub UnicastFlag: super::super::Foundation::BOOL, + pub RapidCommitFlag: super::super::Foundation::BOOL, + pub PreferredLifetime: u32, + pub ValidLifetime: u32, + pub T1: u32, + pub T2: u32, + pub PreferredLifetimeIATA: u32, + pub ValidLifetimeIATA: u32, + pub fAuditLog: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_SERVER_CONFIG_INFO_V6 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_SERVER_CONFIG_INFO_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_SERVER_CONFIG_INFO_VQ { + pub APIProtocolSupport: u32, + pub DatabaseName: ::windows_sys::core::PWSTR, + pub DatabasePath: ::windows_sys::core::PWSTR, + pub BackupPath: ::windows_sys::core::PWSTR, + pub BackupInterval: u32, + pub DatabaseLoggingFlag: u32, + pub RestoreFlag: u32, + pub DatabaseCleanupInterval: u32, + pub DebugFlag: u32, + pub dwPingRetries: u32, + pub cbBootTableString: u32, + pub wszBootTableString: ::windows_sys::core::PWSTR, + pub fAuditLog: super::super::Foundation::BOOL, + pub QuarantineOn: super::super::Foundation::BOOL, + pub QuarDefFail: u32, + pub QuarRuntimeStatus: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_SERVER_CONFIG_INFO_VQ {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_SERVER_CONFIG_INFO_VQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DHCP_SERVER_OPTIONS { + pub MessageType: *mut u8, + pub SubnetMask: *mut u32, + pub RequestedAddress: *mut u32, + pub RequestLeaseTime: *mut u32, + pub OverlayFields: *mut u8, + pub RouterAddress: *mut u32, + pub Server: *mut u32, + pub ParameterRequestList: *mut u8, + pub ParameterRequestListLength: u32, + pub MachineName: ::windows_sys::core::PSTR, + pub MachineNameLength: u32, + pub ClientHardwareAddressType: u8, + pub ClientHardwareAddressLength: u8, + pub ClientHardwareAddress: *mut u8, + pub ClassIdentifier: ::windows_sys::core::PSTR, + pub ClassIdentifierLength: u32, + pub VendorClass: *mut u8, + pub VendorClassLength: u32, + pub DNSFlags: u32, + pub DNSNameLength: u32, + pub DNSName: *mut u8, + pub DSDomainNameRequested: super::super::Foundation::BOOLEAN, + pub DSDomainName: ::windows_sys::core::PSTR, + pub DSDomainNameLen: u32, + pub ScopeId: *mut u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DHCP_SERVER_OPTIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DHCP_SERVER_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SERVER_SPECIFIC_STRINGS { + pub DefaultVendorClassName: ::windows_sys::core::PWSTR, + pub DefaultUserClassName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DHCP_SERVER_SPECIFIC_STRINGS {} +impl ::core::clone::Clone for DHCP_SERVER_SPECIFIC_STRINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SUBNET_ELEMENT_DATA { + pub ElementType: DHCP_SUBNET_ELEMENT_TYPE, + pub Element: DHCP_SUBNET_ELEMENT_DATA_0, +} +impl ::core::marker::Copy for DHCP_SUBNET_ELEMENT_DATA {} +impl ::core::clone::Clone for DHCP_SUBNET_ELEMENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DHCP_SUBNET_ELEMENT_DATA_0 { + pub IpRange: *mut DHCP_IP_RANGE, + pub SecondaryHost: *mut DHCP_HOST_INFO, + pub ReservedIp: *mut DHCP_IP_RESERVATION, + pub ExcludeIpRange: *mut DHCP_IP_RANGE, + pub IpUsedCluster: *mut DHCP_IP_CLUSTER, +} +impl ::core::marker::Copy for DHCP_SUBNET_ELEMENT_DATA_0 {} +impl ::core::clone::Clone for DHCP_SUBNET_ELEMENT_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SUBNET_ELEMENT_DATA_V4 { + pub ElementType: DHCP_SUBNET_ELEMENT_TYPE, + pub Element: DHCP_SUBNET_ELEMENT_DATA_V4_0, +} +impl ::core::marker::Copy for DHCP_SUBNET_ELEMENT_DATA_V4 {} +impl ::core::clone::Clone for DHCP_SUBNET_ELEMENT_DATA_V4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DHCP_SUBNET_ELEMENT_DATA_V4_0 { + pub IpRange: *mut DHCP_IP_RANGE, + pub SecondaryHost: *mut DHCP_HOST_INFO, + pub ReservedIp: *mut DHCP_IP_RESERVATION_V4, + pub ExcludeIpRange: *mut DHCP_IP_RANGE, + pub IpUsedCluster: *mut DHCP_IP_CLUSTER, +} +impl ::core::marker::Copy for DHCP_SUBNET_ELEMENT_DATA_V4_0 {} +impl ::core::clone::Clone for DHCP_SUBNET_ELEMENT_DATA_V4_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SUBNET_ELEMENT_DATA_V5 { + pub ElementType: DHCP_SUBNET_ELEMENT_TYPE, + pub Element: DHCP_SUBNET_ELEMENT_DATA_V5_0, +} +impl ::core::marker::Copy for DHCP_SUBNET_ELEMENT_DATA_V5 {} +impl ::core::clone::Clone for DHCP_SUBNET_ELEMENT_DATA_V5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DHCP_SUBNET_ELEMENT_DATA_V5_0 { + pub IpRange: *mut DHCP_BOOTP_IP_RANGE, + pub SecondaryHost: *mut DHCP_HOST_INFO, + pub ReservedIp: *mut DHCP_IP_RESERVATION_V4, + pub ExcludeIpRange: *mut DHCP_IP_RANGE, + pub IpUsedCluster: *mut DHCP_IP_CLUSTER, +} +impl ::core::marker::Copy for DHCP_SUBNET_ELEMENT_DATA_V5_0 {} +impl ::core::clone::Clone for DHCP_SUBNET_ELEMENT_DATA_V5_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SUBNET_ELEMENT_DATA_V6 { + pub ElementType: DHCP_SUBNET_ELEMENT_TYPE_V6, + pub Element: DHCP_SUBNET_ELEMENT_DATA_V6_0, +} +impl ::core::marker::Copy for DHCP_SUBNET_ELEMENT_DATA_V6 {} +impl ::core::clone::Clone for DHCP_SUBNET_ELEMENT_DATA_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DHCP_SUBNET_ELEMENT_DATA_V6_0 { + pub IpRange: *mut DHCP_IP_RANGE_V6, + pub ReservedIp: *mut DHCP_IP_RESERVATION_V6, + pub ExcludeIpRange: *mut DHCP_IP_RANGE_V6, +} +impl ::core::marker::Copy for DHCP_SUBNET_ELEMENT_DATA_V6_0 {} +impl ::core::clone::Clone for DHCP_SUBNET_ELEMENT_DATA_V6_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SUBNET_ELEMENT_INFO_ARRAY { + pub NumElements: u32, + pub Elements: *mut DHCP_SUBNET_ELEMENT_DATA, +} +impl ::core::marker::Copy for DHCP_SUBNET_ELEMENT_INFO_ARRAY {} +impl ::core::clone::Clone for DHCP_SUBNET_ELEMENT_INFO_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SUBNET_ELEMENT_INFO_ARRAY_V4 { + pub NumElements: u32, + pub Elements: *mut DHCP_SUBNET_ELEMENT_DATA_V4, +} +impl ::core::marker::Copy for DHCP_SUBNET_ELEMENT_INFO_ARRAY_V4 {} +impl ::core::clone::Clone for DHCP_SUBNET_ELEMENT_INFO_ARRAY_V4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SUBNET_ELEMENT_INFO_ARRAY_V5 { + pub NumElements: u32, + pub Elements: *mut DHCP_SUBNET_ELEMENT_DATA_V5, +} +impl ::core::marker::Copy for DHCP_SUBNET_ELEMENT_INFO_ARRAY_V5 {} +impl ::core::clone::Clone for DHCP_SUBNET_ELEMENT_INFO_ARRAY_V5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SUBNET_ELEMENT_INFO_ARRAY_V6 { + pub NumElements: u32, + pub Elements: *mut DHCP_SUBNET_ELEMENT_DATA_V6, +} +impl ::core::marker::Copy for DHCP_SUBNET_ELEMENT_INFO_ARRAY_V6 {} +impl ::core::clone::Clone for DHCP_SUBNET_ELEMENT_INFO_ARRAY_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SUBNET_INFO { + pub SubnetAddress: u32, + pub SubnetMask: u32, + pub SubnetName: ::windows_sys::core::PWSTR, + pub SubnetComment: ::windows_sys::core::PWSTR, + pub PrimaryHost: DHCP_HOST_INFO, + pub SubnetState: DHCP_SUBNET_STATE, +} +impl ::core::marker::Copy for DHCP_SUBNET_INFO {} +impl ::core::clone::Clone for DHCP_SUBNET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SUBNET_INFO_V6 { + pub SubnetAddress: DHCP_IPV6_ADDRESS, + pub Prefix: u32, + pub Preference: u16, + pub SubnetName: ::windows_sys::core::PWSTR, + pub SubnetComment: ::windows_sys::core::PWSTR, + pub State: u32, + pub ScopeId: u32, +} +impl ::core::marker::Copy for DHCP_SUBNET_INFO_V6 {} +impl ::core::clone::Clone for DHCP_SUBNET_INFO_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SUBNET_INFO_VQ { + pub SubnetAddress: u32, + pub SubnetMask: u32, + pub SubnetName: ::windows_sys::core::PWSTR, + pub SubnetComment: ::windows_sys::core::PWSTR, + pub PrimaryHost: DHCP_HOST_INFO, + pub SubnetState: DHCP_SUBNET_STATE, + pub QuarantineOn: u32, + pub Reserved1: u32, + pub Reserved2: u32, + pub Reserved3: i64, + pub Reserved4: i64, +} +impl ::core::marker::Copy for DHCP_SUBNET_INFO_VQ {} +impl ::core::clone::Clone for DHCP_SUBNET_INFO_VQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SUPER_SCOPE_TABLE { + pub cEntries: u32, + pub pEntries: *mut DHCP_SUPER_SCOPE_TABLE_ENTRY, +} +impl ::core::marker::Copy for DHCP_SUPER_SCOPE_TABLE {} +impl ::core::clone::Clone for DHCP_SUPER_SCOPE_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DHCP_SUPER_SCOPE_TABLE_ENTRY { + pub SubnetAddress: u32, + pub SuperScopeNumber: u32, + pub NextInSuperScope: u32, + pub SuperScopeName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DHCP_SUPER_SCOPE_TABLE_ENTRY {} +impl ::core::clone::Clone for DHCP_SUPER_SCOPE_TABLE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DWORD_DWORD { + pub DWord1: u32, + pub DWord2: u32, +} +impl ::core::marker::Copy for DWORD_DWORD {} +impl ::core::clone::Clone for DWORD_DWORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCOPE_MIB_INFO { + pub Subnet: u32, + pub NumAddressesInuse: u32, + pub NumAddressesFree: u32, + pub NumPendingOffers: u32, +} +impl ::core::marker::Copy for SCOPE_MIB_INFO {} +impl ::core::clone::Clone for SCOPE_MIB_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCOPE_MIB_INFO_V5 { + pub Subnet: u32, + pub NumAddressesInuse: u32, + pub NumAddressesFree: u32, + pub NumPendingOffers: u32, +} +impl ::core::marker::Copy for SCOPE_MIB_INFO_V5 {} +impl ::core::clone::Clone for SCOPE_MIB_INFO_V5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCOPE_MIB_INFO_V6 { + pub Subnet: DHCP_IPV6_ADDRESS, + pub NumAddressesInuse: u64, + pub NumAddressesFree: u64, + pub NumPendingAdvertises: u64, +} +impl ::core::marker::Copy for SCOPE_MIB_INFO_V6 {} +impl ::core::clone::Clone for SCOPE_MIB_INFO_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCOPE_MIB_INFO_VQ { + pub Subnet: u32, + pub NumAddressesInuse: u32, + pub NumAddressesFree: u32, + pub NumPendingOffers: u32, + pub QtnNumLeases: u32, + pub QtnPctQtnLeases: u32, + pub QtnProbationLeases: u32, + pub QtnNonQtnLeases: u32, + pub QtnExemptLeases: u32, + pub QtnCapableClients: u32, +} +impl ::core::marker::Copy for SCOPE_MIB_INFO_VQ {} +impl ::core::clone::Clone for SCOPE_MIB_INFO_VQ { + fn clone(&self) -> Self { + *self + } +} +pub type LPDHCP_CONTROL = ::core::option::Option u32>; +pub type LPDHCP_DELETE_CLIENT = ::core::option::Option u32>; +pub type LPDHCP_DROP_SEND = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDHCP_ENTRY_POINT_FUNC = ::core::option::Option u32>; +pub type LPDHCP_GIVE_ADDRESS = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDHCP_HANDLE_OPTIONS = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDHCP_NEWPKT = ::core::option::Option u32>; +pub type LPDHCP_PROB = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Dns/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Dns/mod.rs new file mode 100644 index 000000000..b86be2361 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Dns/mod.rs @@ -0,0 +1,2170 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsAcquireContextHandle_A(credentialflags : u32, credentials : *const ::core::ffi::c_void, pcontext : *mut super::super::Foundation:: HANDLE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsAcquireContextHandle_W(credentialflags : u32, credentials : *const ::core::ffi::c_void, pcontext : *mut super::super::Foundation:: HANDLE) -> i32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsCancelQuery(pcancelhandle : *const DNS_QUERY_CANCEL) -> i32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsConnectionDeletePolicyEntries(policyentrytag : DNS_CONNECTION_POLICY_TAG) -> u32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsConnectionDeleteProxyInfo(pwszconnectionname : ::windows_sys::core::PCWSTR, r#type : DNS_CONNECTION_PROXY_TYPE) -> u32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsConnectionFreeNameList(pnamelist : *mut DNS_CONNECTION_NAME_LIST) -> ()); +::windows_targets::link!("dnsapi.dll" "system" fn DnsConnectionFreeProxyInfo(pproxyinfo : *mut DNS_CONNECTION_PROXY_INFO) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsConnectionFreeProxyInfoEx(pproxyinfoex : *mut DNS_CONNECTION_PROXY_INFO_EX) -> ()); +::windows_targets::link!("dnsapi.dll" "system" fn DnsConnectionFreeProxyList(pproxylist : *mut DNS_CONNECTION_PROXY_LIST) -> ()); +::windows_targets::link!("dnsapi.dll" "system" fn DnsConnectionGetNameList(pnamelist : *mut DNS_CONNECTION_NAME_LIST) -> u32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsConnectionGetProxyInfo(pwszconnectionname : ::windows_sys::core::PCWSTR, r#type : DNS_CONNECTION_PROXY_TYPE, pproxyinfo : *mut DNS_CONNECTION_PROXY_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsConnectionGetProxyInfoForHostUrl(pwszhosturl : ::windows_sys::core::PCWSTR, pselectioncontext : *const u8, dwselectioncontextlength : u32, dwexplicitinterfaceindex : u32, pproxyinfoex : *mut DNS_CONNECTION_PROXY_INFO_EX) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsConnectionGetProxyInfoForHostUrlEx(pwszhosturl : ::windows_sys::core::PCWSTR, pselectioncontext : *const u8, dwselectioncontextlength : u32, dwexplicitinterfaceindex : u32, pwszconnectionname : ::windows_sys::core::PCWSTR, pproxyinfoex : *mut DNS_CONNECTION_PROXY_INFO_EX) -> u32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsConnectionGetProxyList(pwszconnectionname : ::windows_sys::core::PCWSTR, pproxylist : *mut DNS_CONNECTION_PROXY_LIST) -> u32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsConnectionSetPolicyEntries(policyentrytag : DNS_CONNECTION_POLICY_TAG, ppolicyentrylist : *const DNS_CONNECTION_POLICY_ENTRY_LIST) -> u32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsConnectionSetProxyInfo(pwszconnectionname : ::windows_sys::core::PCWSTR, r#type : DNS_CONNECTION_PROXY_TYPE, pproxyinfo : *const DNS_CONNECTION_PROXY_INFO) -> u32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsConnectionUpdateIfIndexTable(pconnectionifindexentries : *const DNS_CONNECTION_IFINDEX_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsExtractRecordsFromMessage_UTF8(pdnsbuffer : *const DNS_MESSAGE_BUFFER, wmessagelength : u16, pprecord : *mut *mut DNS_RECORDA) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsExtractRecordsFromMessage_W(pdnsbuffer : *const DNS_MESSAGE_BUFFER, wmessagelength : u16, pprecord : *mut *mut DNS_RECORDA) -> i32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsFree(pdata : *const ::core::ffi::c_void, freetype : DNS_FREE_TYPE) -> ()); +::windows_targets::link!("dnsapi.dll" "system" fn DnsFreeCustomServers(pcservers : *mut u32, ppservers : *mut *mut DNS_CUSTOM_SERVER) -> ()); +::windows_targets::link!("dnsapi.dll" "system" fn DnsFreeProxyName(proxyname : ::windows_sys::core::PCWSTR) -> ()); +::windows_targets::link!("dnsapi.dll" "system" fn DnsGetApplicationSettings(pcservers : *mut u32, ppdefaultservers : *mut *mut DNS_CUSTOM_SERVER, psettings : *mut DNS_APPLICATION_SETTINGS) -> u32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsGetProxyInformation(hostname : ::windows_sys::core::PCWSTR, proxyinformation : *mut DNS_PROXY_INFORMATION, defaultproxyinformation : *mut DNS_PROXY_INFORMATION, completionroutine : DNS_PROXY_COMPLETION_ROUTINE, completioncontext : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsModifyRecordsInSet_A(paddrecords : *const DNS_RECORDA, pdeleterecords : *const DNS_RECORDA, options : u32, hcredentials : super::super::Foundation:: HANDLE, pextralist : *mut ::core::ffi::c_void, preserved : *mut ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsModifyRecordsInSet_UTF8(paddrecords : *const DNS_RECORDA, pdeleterecords : *const DNS_RECORDA, options : u32, hcredentials : super::super::Foundation:: HANDLE, pextralist : *mut ::core::ffi::c_void, preserved : *mut ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsModifyRecordsInSet_W(paddrecords : *const DNS_RECORDA, pdeleterecords : *const DNS_RECORDA, options : u32, hcredentials : super::super::Foundation:: HANDLE, pextralist : *mut ::core::ffi::c_void, preserved : *mut ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsNameCompare_A(pname1 : ::windows_sys::core::PCSTR, pname2 : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsNameCompare_W(pname1 : ::windows_sys::core::PCWSTR, pname2 : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("dnsapi.dll" "system" fn DnsQueryConfig(config : DNS_CONFIG_TYPE, flag : u32, pwsadaptername : ::windows_sys::core::PCWSTR, preserved : *const ::core::ffi::c_void, pbuffer : *mut ::core::ffi::c_void, pbuflen : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsQueryEx(pqueryrequest : *const DNS_QUERY_REQUEST, pqueryresults : *mut DNS_QUERY_RESULT, pcancelhandle : *mut DNS_QUERY_CANCEL) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsQuery_A(pszname : ::windows_sys::core::PCSTR, wtype : DNS_TYPE, options : DNS_QUERY_OPTIONS, pextra : *mut ::core::ffi::c_void, ppqueryresults : *mut *mut DNS_RECORDA, preserved : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsQuery_UTF8(pszname : ::windows_sys::core::PCSTR, wtype : DNS_TYPE, options : DNS_QUERY_OPTIONS, pextra : *mut ::core::ffi::c_void, ppqueryresults : *mut *mut DNS_RECORDA, preserved : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsQuery_W(pszname : ::windows_sys::core::PCWSTR, wtype : DNS_TYPE, options : DNS_QUERY_OPTIONS, pextra : *mut ::core::ffi::c_void, ppqueryresults : *mut *mut DNS_RECORDA, preserved : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsRecordCompare(precord1 : *const DNS_RECORDA, precord2 : *const DNS_RECORDA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsRecordCopyEx(precord : *const DNS_RECORDA, charsetin : DNS_CHARSET, charsetout : DNS_CHARSET) -> *mut DNS_RECORDA); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsRecordSetCompare(prr1 : *mut DNS_RECORDA, prr2 : *mut DNS_RECORDA, ppdiff1 : *mut *mut DNS_RECORDA, ppdiff2 : *mut *mut DNS_RECORDA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsRecordSetCopyEx(precordset : *const DNS_RECORDA, charsetin : DNS_CHARSET, charsetout : DNS_CHARSET) -> *mut DNS_RECORDA); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsRecordSetDetach(precordlist : *mut DNS_RECORDA) -> *mut DNS_RECORDA); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsReleaseContextHandle(hcontext : super::super::Foundation:: HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsReplaceRecordSetA(preplaceset : *const DNS_RECORDA, options : u32, hcontext : super::super::Foundation:: HANDLE, pextrainfo : *mut ::core::ffi::c_void, preserved : *mut ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsReplaceRecordSetUTF8(preplaceset : *const DNS_RECORDA, options : u32, hcontext : super::super::Foundation:: HANDLE, pextrainfo : *mut ::core::ffi::c_void, preserved : *mut ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsReplaceRecordSetW(preplaceset : *const DNS_RECORDA, options : u32, hcontext : super::super::Foundation:: HANDLE, pextrainfo : *mut ::core::ffi::c_void, preserved : *mut ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsServiceBrowse(prequest : *const DNS_SERVICE_BROWSE_REQUEST, pcancel : *mut DNS_SERVICE_CANCEL) -> i32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsServiceBrowseCancel(pcancelhandle : *const DNS_SERVICE_CANCEL) -> i32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsServiceConstructInstance(pservicename : ::windows_sys::core::PCWSTR, phostname : ::windows_sys::core::PCWSTR, pip4 : *const u32, pip6 : *const IP6_ADDRESS, wport : u16, wpriority : u16, wweight : u16, dwpropertiescount : u32, keys : *const ::windows_sys::core::PCWSTR, values : *const ::windows_sys::core::PCWSTR) -> *mut DNS_SERVICE_INSTANCE); +::windows_targets::link!("dnsapi.dll" "system" fn DnsServiceCopyInstance(porig : *const DNS_SERVICE_INSTANCE) -> *mut DNS_SERVICE_INSTANCE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsServiceDeRegister(prequest : *const DNS_SERVICE_REGISTER_REQUEST, pcancel : *mut DNS_SERVICE_CANCEL) -> u32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsServiceFreeInstance(pinstance : *const DNS_SERVICE_INSTANCE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsServiceRegister(prequest : *const DNS_SERVICE_REGISTER_REQUEST, pcancel : *mut DNS_SERVICE_CANCEL) -> u32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsServiceRegisterCancel(pcancelhandle : *const DNS_SERVICE_CANCEL) -> u32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsServiceResolve(prequest : *const DNS_SERVICE_RESOLVE_REQUEST, pcancel : *mut DNS_SERVICE_CANCEL) -> i32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsServiceResolveCancel(pcancelhandle : *const DNS_SERVICE_CANCEL) -> i32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsSetApplicationSettings(cservers : u32, pservers : *const DNS_CUSTOM_SERVER, psettings : *const DNS_APPLICATION_SETTINGS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsStartMulticastQuery(pqueryrequest : *const MDNS_QUERY_REQUEST, phandle : *mut MDNS_QUERY_HANDLE) -> i32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsStopMulticastQuery(phandle : *mut MDNS_QUERY_HANDLE) -> i32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsValidateName_A(pszname : ::windows_sys::core::PCSTR, format : DNS_NAME_FORMAT) -> i32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsValidateName_UTF8(pszname : ::windows_sys::core::PCSTR, format : DNS_NAME_FORMAT) -> i32); +::windows_targets::link!("dnsapi.dll" "system" fn DnsValidateName_W(pszname : ::windows_sys::core::PCWSTR, format : DNS_NAME_FORMAT) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsWriteQuestionToBuffer_UTF8(pdnsbuffer : *mut DNS_MESSAGE_BUFFER, pdwbuffersize : *mut u32, pszname : ::windows_sys::core::PCSTR, wtype : u16, xid : u16, frecursiondesired : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dnsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsWriteQuestionToBuffer_W(pdnsbuffer : *mut DNS_MESSAGE_BUFFER, pdwbuffersize : *mut u32, pszname : ::windows_sys::core::PCWSTR, wtype : u16, xid : u16, frecursiondesired : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +pub const DDR_MAX_IP_HINTS: u32 = 4u32; +pub const DNSREC_ADDITIONAL: u32 = 3u32; +pub const DNSREC_ANSWER: u32 = 1u32; +pub const DNSREC_AUTHORITY: u32 = 2u32; +pub const DNSREC_DELETE: u32 = 4u32; +pub const DNSREC_NOEXIST: u32 = 4u32; +pub const DNSREC_PREREQ: u32 = 1u32; +pub const DNSREC_QUESTION: u32 = 0u32; +pub const DNSREC_SECTION: u32 = 3u32; +pub const DNSREC_UPDATE: u32 = 2u32; +pub const DNSREC_ZONE: u32 = 0u32; +pub const DNSSEC_ALGORITHM_ECDSAP256_SHA256: u32 = 13u32; +pub const DNSSEC_ALGORITHM_ECDSAP384_SHA384: u32 = 14u32; +pub const DNSSEC_ALGORITHM_NULL: u32 = 253u32; +pub const DNSSEC_ALGORITHM_PRIVATE: u32 = 254u32; +pub const DNSSEC_ALGORITHM_RSAMD5: u32 = 1u32; +pub const DNSSEC_ALGORITHM_RSASHA1: u32 = 5u32; +pub const DNSSEC_ALGORITHM_RSASHA1_NSEC3: u32 = 7u32; +pub const DNSSEC_ALGORITHM_RSASHA256: u32 = 8u32; +pub const DNSSEC_ALGORITHM_RSASHA512: u32 = 10u32; +pub const DNSSEC_DIGEST_ALGORITHM_SHA1: u32 = 1u32; +pub const DNSSEC_DIGEST_ALGORITHM_SHA256: u32 = 2u32; +pub const DNSSEC_DIGEST_ALGORITHM_SHA384: u32 = 4u32; +pub const DNSSEC_KEY_FLAG_EXTEND: u32 = 8u32; +pub const DNSSEC_KEY_FLAG_FLAG10: u32 = 1024u32; +pub const DNSSEC_KEY_FLAG_FLAG11: u32 = 2048u32; +pub const DNSSEC_KEY_FLAG_FLAG2: u32 = 4u32; +pub const DNSSEC_KEY_FLAG_FLAG4: u32 = 16u32; +pub const DNSSEC_KEY_FLAG_FLAG5: u32 = 32u32; +pub const DNSSEC_KEY_FLAG_FLAG8: u32 = 256u32; +pub const DNSSEC_KEY_FLAG_FLAG9: u32 = 512u32; +pub const DNSSEC_KEY_FLAG_HOST: u32 = 128u32; +pub const DNSSEC_KEY_FLAG_NOAUTH: u32 = 1u32; +pub const DNSSEC_KEY_FLAG_NOCONF: u32 = 2u32; +pub const DNSSEC_KEY_FLAG_NTPE3: u32 = 192u32; +pub const DNSSEC_KEY_FLAG_SIG0: u32 = 0u32; +pub const DNSSEC_KEY_FLAG_SIG1: u32 = 4096u32; +pub const DNSSEC_KEY_FLAG_SIG10: u32 = 40960u32; +pub const DNSSEC_KEY_FLAG_SIG11: u32 = 45056u32; +pub const DNSSEC_KEY_FLAG_SIG12: u32 = 49152u32; +pub const DNSSEC_KEY_FLAG_SIG13: u32 = 53248u32; +pub const DNSSEC_KEY_FLAG_SIG14: u32 = 57344u32; +pub const DNSSEC_KEY_FLAG_SIG15: u32 = 61440u32; +pub const DNSSEC_KEY_FLAG_SIG2: u32 = 8192u32; +pub const DNSSEC_KEY_FLAG_SIG3: u32 = 12288u32; +pub const DNSSEC_KEY_FLAG_SIG4: u32 = 16384u32; +pub const DNSSEC_KEY_FLAG_SIG5: u32 = 20480u32; +pub const DNSSEC_KEY_FLAG_SIG6: u32 = 24576u32; +pub const DNSSEC_KEY_FLAG_SIG7: u32 = 28672u32; +pub const DNSSEC_KEY_FLAG_SIG8: u32 = 32768u32; +pub const DNSSEC_KEY_FLAG_SIG9: u32 = 36864u32; +pub const DNSSEC_KEY_FLAG_USER: u32 = 0u32; +pub const DNSSEC_KEY_FLAG_ZONE: u32 = 64u32; +pub const DNSSEC_PROTOCOL_DNSSEC: u32 = 3u32; +pub const DNSSEC_PROTOCOL_EMAIL: u32 = 2u32; +pub const DNSSEC_PROTOCOL_IPSEC: u32 = 4u32; +pub const DNSSEC_PROTOCOL_NONE: u32 = 0u32; +pub const DNSSEC_PROTOCOL_TLS: u32 = 1u32; +pub const DNS_ADDRESS_STRING_LENGTH: u32 = 65u32; +pub const DNS_ADDR_MAX_SOCKADDR_LENGTH: u32 = 32u32; +pub const DNS_APP_SETTINGS_EXCLUSIVE_SERVERS: u32 = 1u32; +pub const DNS_APP_SETTINGS_VERSION1: u32 = 1u32; +pub const DNS_ATMA_AESA_ADDR_LENGTH: u32 = 20u32; +pub const DNS_ATMA_FORMAT_AESA: u32 = 2u32; +pub const DNS_ATMA_FORMAT_E164: u32 = 1u32; +pub const DNS_ATMA_MAX_ADDR_LENGTH: u32 = 20u32; +pub const DNS_ATMA_MAX_RECORD_LENGTH: u32 = 21u32; +pub const DNS_CLASS_ALL: u32 = 255u32; +pub const DNS_CLASS_ANY: u32 = 255u32; +pub const DNS_CLASS_CHAOS: u32 = 3u32; +pub const DNS_CLASS_CSNET: u32 = 2u32; +pub const DNS_CLASS_HESIOD: u32 = 4u32; +pub const DNS_CLASS_INTERNET: u32 = 1u32; +pub const DNS_CLASS_NONE: u32 = 254u32; +pub const DNS_CLASS_UNICAST_RESPONSE: u32 = 32768u32; +pub const DNS_COMPRESSED_QUESTION_NAME: u32 = 49164u32; +pub const DNS_CONFIG_FLAG_ALLOC: u32 = 1u32; +pub const DNS_CONNECTION_NAME_MAX_LENGTH: u32 = 64u32; +pub const DNS_CONNECTION_POLICY_ENTRY_ONDEMAND: u32 = 1u32; +pub const DNS_CONNECTION_PROXY_INFO_CURRENT_VERSION: u32 = 1u32; +pub const DNS_CONNECTION_PROXY_INFO_EXCEPTION_MAX_LENGTH: u32 = 1024u32; +pub const DNS_CONNECTION_PROXY_INFO_EXTRA_INFO_MAX_LENGTH: u32 = 1024u32; +pub const DNS_CONNECTION_PROXY_INFO_FLAG_BYPASSLOCAL: u32 = 2u32; +pub const DNS_CONNECTION_PROXY_INFO_FLAG_DISABLED: u32 = 1u32; +pub const DNS_CONNECTION_PROXY_INFO_FRIENDLY_NAME_MAX_LENGTH: u32 = 64u32; +pub const DNS_CONNECTION_PROXY_INFO_PASSWORD_MAX_LENGTH: u32 = 128u32; +pub const DNS_CONNECTION_PROXY_INFO_SERVER_MAX_LENGTH: u32 = 256u32; +pub const DNS_CONNECTION_PROXY_INFO_SWITCH_CONFIG: DNS_CONNECTION_PROXY_INFO_SWITCH = 0i32; +pub const DNS_CONNECTION_PROXY_INFO_SWITCH_SCRIPT: DNS_CONNECTION_PROXY_INFO_SWITCH = 1i32; +pub const DNS_CONNECTION_PROXY_INFO_SWITCH_WPAD: DNS_CONNECTION_PROXY_INFO_SWITCH = 2i32; +pub const DNS_CONNECTION_PROXY_INFO_USERNAME_MAX_LENGTH: u32 = 128u32; +pub const DNS_CONNECTION_PROXY_TYPE_HTTP: DNS_CONNECTION_PROXY_TYPE = 1i32; +pub const DNS_CONNECTION_PROXY_TYPE_NULL: DNS_CONNECTION_PROXY_TYPE = 0i32; +pub const DNS_CONNECTION_PROXY_TYPE_SOCKS4: DNS_CONNECTION_PROXY_TYPE = 4i32; +pub const DNS_CONNECTION_PROXY_TYPE_SOCKS5: DNS_CONNECTION_PROXY_TYPE = 5i32; +pub const DNS_CONNECTION_PROXY_TYPE_WAP: DNS_CONNECTION_PROXY_TYPE = 2i32; +pub const DNS_CUSTOM_SERVER_TYPE_DOH: u32 = 2u32; +pub const DNS_CUSTOM_SERVER_TYPE_UDP: u32 = 1u32; +pub const DNS_CUSTOM_SERVER_UDP_FALLBACK: u32 = 1u32; +pub const DNS_MAX_IP4_REVERSE_NAME_BUFFER_LENGTH: u32 = 31u32; +pub const DNS_MAX_IP4_REVERSE_NAME_LENGTH: u32 = 31u32; +pub const DNS_MAX_IP6_REVERSE_NAME_BUFFER_LENGTH: u32 = 75u32; +pub const DNS_MAX_IP6_REVERSE_NAME_LENGTH: u32 = 75u32; +pub const DNS_MAX_LABEL_BUFFER_LENGTH: u32 = 64u32; +pub const DNS_MAX_LABEL_LENGTH: u32 = 63u32; +pub const DNS_MAX_NAME_BUFFER_LENGTH: u32 = 256u32; +pub const DNS_MAX_NAME_LENGTH: u32 = 255u32; +pub const DNS_MAX_REVERSE_NAME_BUFFER_LENGTH: u32 = 75u32; +pub const DNS_MAX_REVERSE_NAME_LENGTH: u32 = 75u32; +pub const DNS_MAX_TEXT_STRING_LENGTH: u32 = 255u32; +pub const DNS_OPCODE_IQUERY: u32 = 1u32; +pub const DNS_OPCODE_NOTIFY: u32 = 4u32; +pub const DNS_OPCODE_QUERY: u32 = 0u32; +pub const DNS_OPCODE_SERVER_STATUS: u32 = 2u32; +pub const DNS_OPCODE_UNKNOWN: u32 = 3u32; +pub const DNS_OPCODE_UPDATE: u32 = 5u32; +pub const DNS_PORT_HOST_ORDER: u32 = 53u32; +pub const DNS_PORT_NET_ORDER: u32 = 13568u32; +pub const DNS_PROXY_INFORMATION_DEFAULT_SETTINGS: DNS_PROXY_INFORMATION_TYPE = 1i32; +pub const DNS_PROXY_INFORMATION_DIRECT: DNS_PROXY_INFORMATION_TYPE = 0i32; +pub const DNS_PROXY_INFORMATION_DOES_NOT_EXIST: DNS_PROXY_INFORMATION_TYPE = 3i32; +pub const DNS_PROXY_INFORMATION_PROXY_NAME: DNS_PROXY_INFORMATION_TYPE = 2i32; +pub const DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE: DNS_QUERY_OPTIONS = 1u32; +pub const DNS_QUERY_ADDRCONFIG: DNS_QUERY_OPTIONS = 8192u32; +pub const DNS_QUERY_APPEND_MULTILABEL: DNS_QUERY_OPTIONS = 8388608u32; +pub const DNS_QUERY_BYPASS_CACHE: DNS_QUERY_OPTIONS = 8u32; +pub const DNS_QUERY_CACHE_ONLY: DNS_QUERY_OPTIONS = 16u32; +pub const DNS_QUERY_DISABLE_IDN_ENCODING: DNS_QUERY_OPTIONS = 2097152u32; +pub const DNS_QUERY_DNSSEC_CHECKING_DISABLED: DNS_QUERY_OPTIONS = 33554432u32; +pub const DNS_QUERY_DNSSEC_OK: DNS_QUERY_OPTIONS = 16777216u32; +pub const DNS_QUERY_DONT_RESET_TTL_VALUES: DNS_QUERY_OPTIONS = 1048576u32; +pub const DNS_QUERY_DUAL_ADDR: DNS_QUERY_OPTIONS = 16384u32; +pub const DNS_QUERY_MULTICAST_ONLY: DNS_QUERY_OPTIONS = 1024u32; +pub const DNS_QUERY_NO_HOSTS_FILE: DNS_QUERY_OPTIONS = 64u32; +pub const DNS_QUERY_NO_LOCAL_NAME: DNS_QUERY_OPTIONS = 32u32; +pub const DNS_QUERY_NO_MULTICAST: DNS_QUERY_OPTIONS = 2048u32; +pub const DNS_QUERY_NO_NETBT: DNS_QUERY_OPTIONS = 128u32; +pub const DNS_QUERY_NO_RECURSION: DNS_QUERY_OPTIONS = 4u32; +pub const DNS_QUERY_NO_WIRE_QUERY: DNS_QUERY_OPTIONS = 16u32; +pub const DNS_QUERY_REQUEST_VERSION1: DNS_QUERY_OPTIONS = 1u32; +pub const DNS_QUERY_REQUEST_VERSION2: DNS_QUERY_OPTIONS = 2u32; +pub const DNS_QUERY_REQUEST_VERSION3: DNS_QUERY_OPTIONS = 3u32; +pub const DNS_QUERY_RESERVED: DNS_QUERY_OPTIONS = 4026531840u32; +pub const DNS_QUERY_RESULTS_VERSION1: DNS_QUERY_OPTIONS = 1u32; +pub const DNS_QUERY_RETURN_MESSAGE: DNS_QUERY_OPTIONS = 512u32; +pub const DNS_QUERY_STANDARD: DNS_QUERY_OPTIONS = 0u32; +pub const DNS_QUERY_TREAT_AS_FQDN: DNS_QUERY_OPTIONS = 4096u32; +pub const DNS_QUERY_USE_TCP_ONLY: DNS_QUERY_OPTIONS = 2u32; +pub const DNS_QUERY_WIRE_ONLY: DNS_QUERY_OPTIONS = 256u32; +pub const DNS_RCLASS_ALL: u32 = 65280u32; +pub const DNS_RCLASS_ANY: u32 = 65280u32; +pub const DNS_RCLASS_CHAOS: u32 = 768u32; +pub const DNS_RCLASS_CSNET: u32 = 512u32; +pub const DNS_RCLASS_HESIOD: u32 = 1024u32; +pub const DNS_RCLASS_INTERNET: u32 = 256u32; +pub const DNS_RCLASS_MDNS_CACHE_FLUSH: u32 = 128u32; +pub const DNS_RCLASS_NONE: u32 = 65024u32; +pub const DNS_RCLASS_UNICAST_RESPONSE: u32 = 128u32; +pub const DNS_RCODE_BADKEY: u32 = 17u32; +pub const DNS_RCODE_BADSIG: u32 = 16u32; +pub const DNS_RCODE_BADTIME: u32 = 18u32; +pub const DNS_RCODE_BADVERS: u32 = 16u32; +pub const DNS_RCODE_FORMAT_ERROR: u32 = 1u32; +pub const DNS_RCODE_FORMERR: u32 = 1u32; +pub const DNS_RCODE_MAX: u32 = 15u32; +pub const DNS_RCODE_NAME_ERROR: u32 = 3u32; +pub const DNS_RCODE_NOERROR: u32 = 0u32; +pub const DNS_RCODE_NOTAUTH: u32 = 9u32; +pub const DNS_RCODE_NOTIMPL: u32 = 4u32; +pub const DNS_RCODE_NOTZONE: u32 = 10u32; +pub const DNS_RCODE_NOT_IMPLEMENTED: u32 = 4u32; +pub const DNS_RCODE_NO_ERROR: u32 = 0u32; +pub const DNS_RCODE_NXDOMAIN: u32 = 3u32; +pub const DNS_RCODE_NXRRSET: u32 = 8u32; +pub const DNS_RCODE_REFUSED: u32 = 5u32; +pub const DNS_RCODE_SERVER_FAILURE: u32 = 2u32; +pub const DNS_RCODE_SERVFAIL: u32 = 2u32; +pub const DNS_RCODE_YXDOMAIN: u32 = 6u32; +pub const DNS_RCODE_YXRRSET: u32 = 7u32; +pub const DNS_RFC_MAX_UDP_PACKET_LENGTH: u32 = 512u32; +pub const DNS_RTYPE_A: u32 = 256u32; +pub const DNS_RTYPE_A6: u32 = 9728u32; +pub const DNS_RTYPE_AAAA: u32 = 7168u32; +pub const DNS_RTYPE_AFSDB: u32 = 4608u32; +pub const DNS_RTYPE_ALL: u32 = 65280u32; +pub const DNS_RTYPE_ANY: u32 = 65280u32; +pub const DNS_RTYPE_ATMA: u32 = 8704u32; +pub const DNS_RTYPE_AXFR: u32 = 64512u32; +pub const DNS_RTYPE_CERT: u32 = 9472u32; +pub const DNS_RTYPE_CNAME: u32 = 1280u32; +pub const DNS_RTYPE_DHCID: u32 = 12544u32; +pub const DNS_RTYPE_DNAME: u32 = 9984u32; +pub const DNS_RTYPE_DNSKEY: u32 = 12288u32; +pub const DNS_RTYPE_DS: u32 = 11008u32; +pub const DNS_RTYPE_EID: u32 = 7936u32; +pub const DNS_RTYPE_GID: u32 = 26112u32; +pub const DNS_RTYPE_GPOS: u32 = 6912u32; +pub const DNS_RTYPE_HINFO: u32 = 3328u32; +pub const DNS_RTYPE_ISDN: u32 = 5120u32; +pub const DNS_RTYPE_IXFR: u32 = 64256u32; +pub const DNS_RTYPE_KEY: u32 = 6400u32; +pub const DNS_RTYPE_KX: u32 = 9216u32; +pub const DNS_RTYPE_LOC: u32 = 7424u32; +pub const DNS_RTYPE_MAILA: u32 = 65024u32; +pub const DNS_RTYPE_MAILB: u32 = 64768u32; +pub const DNS_RTYPE_MB: u32 = 1792u32; +pub const DNS_RTYPE_MD: u32 = 768u32; +pub const DNS_RTYPE_MF: u32 = 1024u32; +pub const DNS_RTYPE_MG: u32 = 2048u32; +pub const DNS_RTYPE_MINFO: u32 = 3584u32; +pub const DNS_RTYPE_MR: u32 = 2304u32; +pub const DNS_RTYPE_MX: u32 = 3840u32; +pub const DNS_RTYPE_NAPTR: u32 = 8960u32; +pub const DNS_RTYPE_NIMLOC: u32 = 8192u32; +pub const DNS_RTYPE_NS: u32 = 512u32; +pub const DNS_RTYPE_NSAP: u32 = 5632u32; +pub const DNS_RTYPE_NSAPPTR: u32 = 5888u32; +pub const DNS_RTYPE_NSEC: u32 = 12032u32; +pub const DNS_RTYPE_NSEC3: u32 = 12800u32; +pub const DNS_RTYPE_NSEC3PARAM: u32 = 13056u32; +pub const DNS_RTYPE_NULL: u32 = 2560u32; +pub const DNS_RTYPE_NXT: u32 = 7680u32; +pub const DNS_RTYPE_OPT: u32 = 10496u32; +pub const DNS_RTYPE_PTR: u32 = 3072u32; +pub const DNS_RTYPE_PX: u32 = 6656u32; +pub const DNS_RTYPE_RP: u32 = 4352u32; +pub const DNS_RTYPE_RRSIG: u32 = 11776u32; +pub const DNS_RTYPE_RT: u32 = 5376u32; +pub const DNS_RTYPE_SIG: u32 = 6144u32; +pub const DNS_RTYPE_SINK: u32 = 10240u32; +pub const DNS_RTYPE_SOA: u32 = 1536u32; +pub const DNS_RTYPE_SRV: u32 = 8448u32; +pub const DNS_RTYPE_TEXT: u32 = 4096u32; +pub const DNS_RTYPE_TKEY: u32 = 63744u32; +pub const DNS_RTYPE_TLSA: u32 = 13312u32; +pub const DNS_RTYPE_TSIG: u32 = 64000u32; +pub const DNS_RTYPE_UID: u32 = 25856u32; +pub const DNS_RTYPE_UINFO: u32 = 25600u32; +pub const DNS_RTYPE_UNSPEC: u32 = 26368u32; +pub const DNS_RTYPE_WINS: u32 = 511u32; +pub const DNS_RTYPE_WINSR: u32 = 767u32; +pub const DNS_RTYPE_WKS: u32 = 2816u32; +pub const DNS_RTYPE_X25: u32 = 4864u32; +pub const DNS_TKEY_MODE_DIFFIE_HELLMAN: u32 = 2u32; +pub const DNS_TKEY_MODE_GSS: u32 = 3u32; +pub const DNS_TKEY_MODE_RESOLVER_ASSIGN: u32 = 4u32; +pub const DNS_TKEY_MODE_SERVER_ASSIGN: u32 = 1u32; +pub const DNS_TYPE_A: DNS_TYPE = 1u16; +pub const DNS_TYPE_A6: DNS_TYPE = 38u16; +pub const DNS_TYPE_AAAA: DNS_TYPE = 28u16; +pub const DNS_TYPE_ADDRS: DNS_TYPE = 248u16; +pub const DNS_TYPE_AFSDB: DNS_TYPE = 18u16; +pub const DNS_TYPE_ALL: DNS_TYPE = 255u16; +pub const DNS_TYPE_ANY: DNS_TYPE = 255u16; +pub const DNS_TYPE_ATMA: DNS_TYPE = 34u16; +pub const DNS_TYPE_AXFR: DNS_TYPE = 252u16; +pub const DNS_TYPE_CERT: DNS_TYPE = 37u16; +pub const DNS_TYPE_CNAME: DNS_TYPE = 5u16; +pub const DNS_TYPE_DHCID: DNS_TYPE = 49u16; +pub const DNS_TYPE_DNAME: DNS_TYPE = 39u16; +pub const DNS_TYPE_DNSKEY: DNS_TYPE = 48u16; +pub const DNS_TYPE_DS: DNS_TYPE = 43u16; +pub const DNS_TYPE_EID: DNS_TYPE = 31u16; +pub const DNS_TYPE_GID: DNS_TYPE = 102u16; +pub const DNS_TYPE_GPOS: DNS_TYPE = 27u16; +pub const DNS_TYPE_HINFO: DNS_TYPE = 13u16; +pub const DNS_TYPE_HTTPS: DNS_TYPE = 65u16; +pub const DNS_TYPE_ISDN: DNS_TYPE = 20u16; +pub const DNS_TYPE_IXFR: DNS_TYPE = 251u16; +pub const DNS_TYPE_KEY: DNS_TYPE = 25u16; +pub const DNS_TYPE_KX: DNS_TYPE = 36u16; +pub const DNS_TYPE_LOC: DNS_TYPE = 29u16; +pub const DNS_TYPE_MAILA: DNS_TYPE = 254u16; +pub const DNS_TYPE_MAILB: DNS_TYPE = 253u16; +pub const DNS_TYPE_MB: DNS_TYPE = 7u16; +pub const DNS_TYPE_MD: DNS_TYPE = 3u16; +pub const DNS_TYPE_MF: DNS_TYPE = 4u16; +pub const DNS_TYPE_MG: DNS_TYPE = 8u16; +pub const DNS_TYPE_MINFO: DNS_TYPE = 14u16; +pub const DNS_TYPE_MR: DNS_TYPE = 9u16; +pub const DNS_TYPE_MX: DNS_TYPE = 15u16; +pub const DNS_TYPE_NAPTR: DNS_TYPE = 35u16; +pub const DNS_TYPE_NBSTAT: DNS_TYPE = 65282u16; +pub const DNS_TYPE_NIMLOC: DNS_TYPE = 32u16; +pub const DNS_TYPE_NS: DNS_TYPE = 2u16; +pub const DNS_TYPE_NSAP: DNS_TYPE = 22u16; +pub const DNS_TYPE_NSAPPTR: DNS_TYPE = 23u16; +pub const DNS_TYPE_NSEC: DNS_TYPE = 47u16; +pub const DNS_TYPE_NSEC3: DNS_TYPE = 50u16; +pub const DNS_TYPE_NSEC3PARAM: DNS_TYPE = 51u16; +pub const DNS_TYPE_NULL: DNS_TYPE = 10u16; +pub const DNS_TYPE_NXT: DNS_TYPE = 30u16; +pub const DNS_TYPE_OPT: DNS_TYPE = 41u16; +pub const DNS_TYPE_PTR: DNS_TYPE = 12u16; +pub const DNS_TYPE_PX: DNS_TYPE = 26u16; +pub const DNS_TYPE_RP: DNS_TYPE = 17u16; +pub const DNS_TYPE_RRSIG: DNS_TYPE = 46u16; +pub const DNS_TYPE_RT: DNS_TYPE = 21u16; +pub const DNS_TYPE_SIG: DNS_TYPE = 24u16; +pub const DNS_TYPE_SINK: DNS_TYPE = 40u16; +pub const DNS_TYPE_SOA: DNS_TYPE = 6u16; +pub const DNS_TYPE_SRV: DNS_TYPE = 33u16; +pub const DNS_TYPE_SVCB: DNS_TYPE = 64u16; +pub const DNS_TYPE_TEXT: DNS_TYPE = 16u16; +pub const DNS_TYPE_TKEY: DNS_TYPE = 249u16; +pub const DNS_TYPE_TLSA: DNS_TYPE = 52u16; +pub const DNS_TYPE_TSIG: DNS_TYPE = 250u16; +pub const DNS_TYPE_UID: DNS_TYPE = 101u16; +pub const DNS_TYPE_UINFO: DNS_TYPE = 100u16; +pub const DNS_TYPE_UNSPEC: DNS_TYPE = 103u16; +pub const DNS_TYPE_WINS: DNS_TYPE = 65281u16; +pub const DNS_TYPE_WINSR: DNS_TYPE = 65282u16; +pub const DNS_TYPE_WKS: DNS_TYPE = 11u16; +pub const DNS_TYPE_X25: DNS_TYPE = 19u16; +pub const DNS_TYPE_ZERO: DNS_TYPE = 0u16; +pub const DNS_UPDATE_CACHE_SECURITY_CONTEXT: u32 = 512u32; +pub const DNS_UPDATE_FORCE_SECURITY_NEGO: u32 = 2048u32; +pub const DNS_UPDATE_REMOTE_SERVER: u32 = 16384u32; +pub const DNS_UPDATE_RESERVED: u32 = 4294901760u32; +pub const DNS_UPDATE_SECURITY_OFF: u32 = 16u32; +pub const DNS_UPDATE_SECURITY_ON: u32 = 32u32; +pub const DNS_UPDATE_SECURITY_ONLY: u32 = 256u32; +pub const DNS_UPDATE_SECURITY_USE_DEFAULT: u32 = 0u32; +pub const DNS_UPDATE_SKIP_NO_UPDATE_ADAPTERS: u32 = 8192u32; +pub const DNS_UPDATE_TEST_USE_LOCAL_SYS_ACCT: u32 = 1024u32; +pub const DNS_UPDATE_TRY_ALL_MASTER_SERVERS: u32 = 4096u32; +pub const DNS_VALSVR_ERROR_INVALID_ADDR: u32 = 1u32; +pub const DNS_VALSVR_ERROR_INVALID_NAME: u32 = 2u32; +pub const DNS_VALSVR_ERROR_NO_AUTH: u32 = 5u32; +pub const DNS_VALSVR_ERROR_NO_RESPONSE: u32 = 4u32; +pub const DNS_VALSVR_ERROR_NO_TCP: u32 = 16u32; +pub const DNS_VALSVR_ERROR_REFUSED: u32 = 6u32; +pub const DNS_VALSVR_ERROR_UNKNOWN: u32 = 255u32; +pub const DNS_VALSVR_ERROR_UNREACHABLE: u32 = 3u32; +pub const DNS_WINS_FLAG_LOCAL: u32 = 65536u32; +pub const DNS_WINS_FLAG_SCOPE: u32 = 2147483648u32; +pub const DnsCharSetAnsi: DNS_CHARSET = 3i32; +pub const DnsCharSetUnicode: DNS_CHARSET = 1i32; +pub const DnsCharSetUnknown: DNS_CHARSET = 0i32; +pub const DnsCharSetUtf8: DNS_CHARSET = 2i32; +pub const DnsConfigAdapterDomainName_A: DNS_CONFIG_TYPE = 4i32; +pub const DnsConfigAdapterDomainName_UTF8: DNS_CONFIG_TYPE = 5i32; +pub const DnsConfigAdapterDomainName_W: DNS_CONFIG_TYPE = 3i32; +pub const DnsConfigAdapterHostNameRegistrationEnabled: DNS_CONFIG_TYPE = 10i32; +pub const DnsConfigAdapterInfo: DNS_CONFIG_TYPE = 8i32; +pub const DnsConfigAddressRegistrationMaxCount: DNS_CONFIG_TYPE = 11i32; +pub const DnsConfigDnsServerList: DNS_CONFIG_TYPE = 6i32; +pub const DnsConfigFullHostName_A: DNS_CONFIG_TYPE = 16i32; +pub const DnsConfigFullHostName_UTF8: DNS_CONFIG_TYPE = 17i32; +pub const DnsConfigFullHostName_W: DNS_CONFIG_TYPE = 15i32; +pub const DnsConfigHostName_A: DNS_CONFIG_TYPE = 13i32; +pub const DnsConfigHostName_UTF8: DNS_CONFIG_TYPE = 14i32; +pub const DnsConfigHostName_W: DNS_CONFIG_TYPE = 12i32; +pub const DnsConfigNameServer: DNS_CONFIG_TYPE = 18i32; +pub const DnsConfigPrimaryDomainName_A: DNS_CONFIG_TYPE = 1i32; +pub const DnsConfigPrimaryDomainName_UTF8: DNS_CONFIG_TYPE = 2i32; +pub const DnsConfigPrimaryDomainName_W: DNS_CONFIG_TYPE = 0i32; +pub const DnsConfigPrimaryHostNameRegistrationEnabled: DNS_CONFIG_TYPE = 9i32; +pub const DnsConfigSearchList: DNS_CONFIG_TYPE = 7i32; +pub const DnsFreeFlat: DNS_FREE_TYPE = 0i32; +pub const DnsFreeParsedMessageFields: DNS_FREE_TYPE = 2i32; +pub const DnsFreeRecordList: DNS_FREE_TYPE = 1i32; +pub const DnsNameDomain: DNS_NAME_FORMAT = 0i32; +pub const DnsNameDomainLabel: DNS_NAME_FORMAT = 1i32; +pub const DnsNameHostnameFull: DNS_NAME_FORMAT = 2i32; +pub const DnsNameHostnameLabel: DNS_NAME_FORMAT = 3i32; +pub const DnsNameSrvRecord: DNS_NAME_FORMAT = 5i32; +pub const DnsNameValidateTld: DNS_NAME_FORMAT = 6i32; +pub const DnsNameWildcard: DNS_NAME_FORMAT = 4i32; +pub const DnsSectionAddtional: DNS_SECTION = 3i32; +pub const DnsSectionAnswer: DNS_SECTION = 1i32; +pub const DnsSectionAuthority: DNS_SECTION = 2i32; +pub const DnsSectionQuestion: DNS_SECTION = 0i32; +pub const DnsSvcbParamAlpn: DNS_SVCB_PARAM_TYPE = 1i32; +pub const DnsSvcbParamDohPath: DNS_SVCB_PARAM_TYPE = 7i32; +pub const DnsSvcbParamDohPathOpenDns: DNS_SVCB_PARAM_TYPE = 65432i32; +pub const DnsSvcbParamDohPathQuad9: DNS_SVCB_PARAM_TYPE = 65380i32; +pub const DnsSvcbParamEch: DNS_SVCB_PARAM_TYPE = 5i32; +pub const DnsSvcbParamIpv4Hint: DNS_SVCB_PARAM_TYPE = 4i32; +pub const DnsSvcbParamIpv6Hint: DNS_SVCB_PARAM_TYPE = 6i32; +pub const DnsSvcbParamMandatory: DNS_SVCB_PARAM_TYPE = 0i32; +pub const DnsSvcbParamNoDefaultAlpn: DNS_SVCB_PARAM_TYPE = 2i32; +pub const DnsSvcbParamPort: DNS_SVCB_PARAM_TYPE = 3i32; +pub const IP4_ADDRESS_STRING_BUFFER_LENGTH: u32 = 16u32; +pub const IP4_ADDRESS_STRING_LENGTH: u32 = 16u32; +pub const IP6_ADDRESS_STRING_BUFFER_LENGTH: u32 = 65u32; +pub const IP6_ADDRESS_STRING_LENGTH: u32 = 65u32; +pub const SIZEOF_IP4_ADDRESS: u32 = 4u32; +pub const TAG_DNS_CONNECTION_POLICY_TAG_CONNECTION_MANAGER: DNS_CONNECTION_POLICY_TAG = 1i32; +pub const TAG_DNS_CONNECTION_POLICY_TAG_DEFAULT: DNS_CONNECTION_POLICY_TAG = 0i32; +pub const TAG_DNS_CONNECTION_POLICY_TAG_WWWPT: DNS_CONNECTION_POLICY_TAG = 2i32; +pub type DNS_CHARSET = i32; +pub type DNS_CONFIG_TYPE = i32; +pub type DNS_CONNECTION_POLICY_TAG = i32; +pub type DNS_CONNECTION_PROXY_INFO_SWITCH = i32; +pub type DNS_CONNECTION_PROXY_TYPE = i32; +pub type DNS_FREE_TYPE = i32; +pub type DNS_NAME_FORMAT = i32; +pub type DNS_PROXY_INFORMATION_TYPE = i32; +pub type DNS_QUERY_OPTIONS = u32; +pub type DNS_SECTION = i32; +pub type DNS_SVCB_PARAM_TYPE = i32; +pub type DNS_TYPE = u16; +#[repr(C)] +pub struct DNS_AAAA_DATA { + pub Ip6Address: IP6_ADDRESS, +} +impl ::core::marker::Copy for DNS_AAAA_DATA {} +impl ::core::clone::Clone for DNS_AAAA_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_ADDR { + pub MaxSa: [u8; 32], + pub Data: DNS_ADDR_0, +} +impl ::core::marker::Copy for DNS_ADDR {} +impl ::core::clone::Clone for DNS_ADDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union DNS_ADDR_0 { + pub DnsAddrUserDword: [u32; 8], +} +impl ::core::marker::Copy for DNS_ADDR_0 {} +impl ::core::clone::Clone for DNS_ADDR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DNS_ADDR_ARRAY { + pub MaxCount: u32, + pub AddrCount: u32, + pub Tag: u32, + pub Family: u16, + pub WordReserved: u16, + pub Flags: u32, + pub MatchFlag: u32, + pub Reserved1: u32, + pub Reserved2: u32, + pub AddrArray: [DNS_ADDR; 1], +} +impl ::core::marker::Copy for DNS_ADDR_ARRAY {} +impl ::core::clone::Clone for DNS_ADDR_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_APPLICATION_SETTINGS { + pub Version: u32, + pub Flags: u64, +} +impl ::core::marker::Copy for DNS_APPLICATION_SETTINGS {} +impl ::core::clone::Clone for DNS_APPLICATION_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_ATMA_DATA { + pub AddressType: u8, + pub Address: [u8; 20], +} +impl ::core::marker::Copy for DNS_ATMA_DATA {} +impl ::core::clone::Clone for DNS_ATMA_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_A_DATA { + pub IpAddress: u32, +} +impl ::core::marker::Copy for DNS_A_DATA {} +impl ::core::clone::Clone for DNS_A_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_CONNECTION_IFINDEX_ENTRY { + pub pwszConnectionName: ::windows_sys::core::PCWSTR, + pub dwIfIndex: u32, +} +impl ::core::marker::Copy for DNS_CONNECTION_IFINDEX_ENTRY {} +impl ::core::clone::Clone for DNS_CONNECTION_IFINDEX_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_CONNECTION_IFINDEX_LIST { + pub pConnectionIfIndexEntries: *mut DNS_CONNECTION_IFINDEX_ENTRY, + pub nEntries: u32, +} +impl ::core::marker::Copy for DNS_CONNECTION_IFINDEX_LIST {} +impl ::core::clone::Clone for DNS_CONNECTION_IFINDEX_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_CONNECTION_NAME { + pub wszName: [u16; 65], +} +impl ::core::marker::Copy for DNS_CONNECTION_NAME {} +impl ::core::clone::Clone for DNS_CONNECTION_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_CONNECTION_NAME_LIST { + pub cNames: u32, + pub pNames: *mut DNS_CONNECTION_NAME, +} +impl ::core::marker::Copy for DNS_CONNECTION_NAME_LIST {} +impl ::core::clone::Clone for DNS_CONNECTION_NAME_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_CONNECTION_POLICY_ENTRY { + pub pwszHost: ::windows_sys::core::PCWSTR, + pub pwszAppId: ::windows_sys::core::PCWSTR, + pub cbAppSid: u32, + pub pbAppSid: *mut u8, + pub nConnections: u32, + pub ppwszConnections: *const ::windows_sys::core::PCWSTR, + pub dwPolicyEntryFlags: u32, +} +impl ::core::marker::Copy for DNS_CONNECTION_POLICY_ENTRY {} +impl ::core::clone::Clone for DNS_CONNECTION_POLICY_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_CONNECTION_POLICY_ENTRY_LIST { + pub pPolicyEntries: *mut DNS_CONNECTION_POLICY_ENTRY, + pub nEntries: u32, +} +impl ::core::marker::Copy for DNS_CONNECTION_POLICY_ENTRY_LIST {} +impl ::core::clone::Clone for DNS_CONNECTION_POLICY_ENTRY_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_CONNECTION_PROXY_ELEMENT { + pub Type: DNS_CONNECTION_PROXY_TYPE, + pub Info: DNS_CONNECTION_PROXY_INFO, +} +impl ::core::marker::Copy for DNS_CONNECTION_PROXY_ELEMENT {} +impl ::core::clone::Clone for DNS_CONNECTION_PROXY_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_CONNECTION_PROXY_INFO { + pub Version: u32, + pub pwszFriendlyName: ::windows_sys::core::PWSTR, + pub Flags: u32, + pub Switch: DNS_CONNECTION_PROXY_INFO_SWITCH, + pub Anonymous: DNS_CONNECTION_PROXY_INFO_0, +} +impl ::core::marker::Copy for DNS_CONNECTION_PROXY_INFO {} +impl ::core::clone::Clone for DNS_CONNECTION_PROXY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DNS_CONNECTION_PROXY_INFO_0 { + pub Config: DNS_CONNECTION_PROXY_INFO_0_0, + pub Script: DNS_CONNECTION_PROXY_INFO_0_1, +} +impl ::core::marker::Copy for DNS_CONNECTION_PROXY_INFO_0 {} +impl ::core::clone::Clone for DNS_CONNECTION_PROXY_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_CONNECTION_PROXY_INFO_0_0 { + pub pwszServer: ::windows_sys::core::PWSTR, + pub pwszUsername: ::windows_sys::core::PWSTR, + pub pwszPassword: ::windows_sys::core::PWSTR, + pub pwszException: ::windows_sys::core::PWSTR, + pub pwszExtraInfo: ::windows_sys::core::PWSTR, + pub Port: u16, +} +impl ::core::marker::Copy for DNS_CONNECTION_PROXY_INFO_0_0 {} +impl ::core::clone::Clone for DNS_CONNECTION_PROXY_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_CONNECTION_PROXY_INFO_0_1 { + pub pwszScript: ::windows_sys::core::PWSTR, + pub pwszUsername: ::windows_sys::core::PWSTR, + pub pwszPassword: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DNS_CONNECTION_PROXY_INFO_0_1 {} +impl ::core::clone::Clone for DNS_CONNECTION_PROXY_INFO_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_CONNECTION_PROXY_INFO_EX { + pub ProxyInfo: DNS_CONNECTION_PROXY_INFO, + pub dwInterfaceIndex: u32, + pub pwszConnectionName: ::windows_sys::core::PWSTR, + pub fDirectConfiguration: super::super::Foundation::BOOL, + pub hConnection: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_CONNECTION_PROXY_INFO_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_CONNECTION_PROXY_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_CONNECTION_PROXY_LIST { + pub cProxies: u32, + pub pProxies: *mut DNS_CONNECTION_PROXY_ELEMENT, +} +impl ::core::marker::Copy for DNS_CONNECTION_PROXY_LIST {} +impl ::core::clone::Clone for DNS_CONNECTION_PROXY_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_CUSTOM_SERVER { + pub dwServerType: u32, + pub ullFlags: u64, + pub Anonymous1: DNS_CUSTOM_SERVER_0, + pub Anonymous2: DNS_CUSTOM_SERVER_1, +} +impl ::core::marker::Copy for DNS_CUSTOM_SERVER {} +impl ::core::clone::Clone for DNS_CUSTOM_SERVER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DNS_CUSTOM_SERVER_0 { + pub pwszTemplate: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DNS_CUSTOM_SERVER_0 {} +impl ::core::clone::Clone for DNS_CUSTOM_SERVER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DNS_CUSTOM_SERVER_1 { + pub MaxSa: [u8; 32], +} +impl ::core::marker::Copy for DNS_CUSTOM_SERVER_1 {} +impl ::core::clone::Clone for DNS_CUSTOM_SERVER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_DHCID_DATA { + pub dwByteCount: u32, + pub DHCID: [u8; 1], +} +impl ::core::marker::Copy for DNS_DHCID_DATA {} +impl ::core::clone::Clone for DNS_DHCID_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_DS_DATA { + pub wKeyTag: u16, + pub chAlgorithm: u8, + pub chDigestType: u8, + pub wDigestLength: u16, + pub wPad: u16, + pub Digest: [u8; 1], +} +impl ::core::marker::Copy for DNS_DS_DATA {} +impl ::core::clone::Clone for DNS_DS_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DNS_HEADER { + pub Xid: u16, + pub _bitfield1: u8, + pub _bitfield2: u8, + pub QuestionCount: u16, + pub AnswerCount: u16, + pub NameServerCount: u16, + pub AdditionalCount: u16, +} +impl ::core::marker::Copy for DNS_HEADER {} +impl ::core::clone::Clone for DNS_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DNS_HEADER_EXT { + pub _bitfield: u16, + pub chRcode: u8, + pub chVersion: u8, +} +impl ::core::marker::Copy for DNS_HEADER_EXT {} +impl ::core::clone::Clone for DNS_HEADER_EXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_KEY_DATA { + pub wFlags: u16, + pub chProtocol: u8, + pub chAlgorithm: u8, + pub wKeyLength: u16, + pub wPad: u16, + pub Key: [u8; 1], +} +impl ::core::marker::Copy for DNS_KEY_DATA {} +impl ::core::clone::Clone for DNS_KEY_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_LOC_DATA { + pub wVersion: u16, + pub wSize: u16, + pub wHorPrec: u16, + pub wVerPrec: u16, + pub dwLatitude: u32, + pub dwLongitude: u32, + pub dwAltitude: u32, +} +impl ::core::marker::Copy for DNS_LOC_DATA {} +impl ::core::clone::Clone for DNS_LOC_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_MESSAGE_BUFFER { + pub MessageHead: DNS_HEADER, + pub MessageBody: [u8; 1], +} +impl ::core::marker::Copy for DNS_MESSAGE_BUFFER {} +impl ::core::clone::Clone for DNS_MESSAGE_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_MINFO_DATAA { + pub pNameMailbox: ::windows_sys::core::PSTR, + pub pNameErrorsMailbox: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DNS_MINFO_DATAA {} +impl ::core::clone::Clone for DNS_MINFO_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_MINFO_DATAW { + pub pNameMailbox: ::windows_sys::core::PWSTR, + pub pNameErrorsMailbox: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DNS_MINFO_DATAW {} +impl ::core::clone::Clone for DNS_MINFO_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_MX_DATAA { + pub pNameExchange: ::windows_sys::core::PSTR, + pub wPreference: u16, + pub Pad: u16, +} +impl ::core::marker::Copy for DNS_MX_DATAA {} +impl ::core::clone::Clone for DNS_MX_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_MX_DATAW { + pub pNameExchange: ::windows_sys::core::PWSTR, + pub wPreference: u16, + pub Pad: u16, +} +impl ::core::marker::Copy for DNS_MX_DATAW {} +impl ::core::clone::Clone for DNS_MX_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_NAPTR_DATAA { + pub wOrder: u16, + pub wPreference: u16, + pub pFlags: ::windows_sys::core::PSTR, + pub pService: ::windows_sys::core::PSTR, + pub pRegularExpression: ::windows_sys::core::PSTR, + pub pReplacement: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DNS_NAPTR_DATAA {} +impl ::core::clone::Clone for DNS_NAPTR_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_NAPTR_DATAW { + pub wOrder: u16, + pub wPreference: u16, + pub pFlags: ::windows_sys::core::PWSTR, + pub pService: ::windows_sys::core::PWSTR, + pub pRegularExpression: ::windows_sys::core::PWSTR, + pub pReplacement: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DNS_NAPTR_DATAW {} +impl ::core::clone::Clone for DNS_NAPTR_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_NSEC3PARAM_DATA { + pub chAlgorithm: u8, + pub bFlags: u8, + pub wIterations: u16, + pub bSaltLength: u8, + pub bPad: [u8; 3], + pub pbSalt: [u8; 1], +} +impl ::core::marker::Copy for DNS_NSEC3PARAM_DATA {} +impl ::core::clone::Clone for DNS_NSEC3PARAM_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_NSEC3_DATA { + pub chAlgorithm: u8, + pub bFlags: u8, + pub wIterations: u16, + pub bSaltLength: u8, + pub bHashLength: u8, + pub wTypeBitMapsLength: u16, + pub chData: [u8; 1], +} +impl ::core::marker::Copy for DNS_NSEC3_DATA {} +impl ::core::clone::Clone for DNS_NSEC3_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_NSEC_DATAA { + pub pNextDomainName: ::windows_sys::core::PSTR, + pub wTypeBitMapsLength: u16, + pub wPad: u16, + pub TypeBitMaps: [u8; 1], +} +impl ::core::marker::Copy for DNS_NSEC_DATAA {} +impl ::core::clone::Clone for DNS_NSEC_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_NSEC_DATAW { + pub pNextDomainName: ::windows_sys::core::PWSTR, + pub wTypeBitMapsLength: u16, + pub wPad: u16, + pub TypeBitMaps: [u8; 1], +} +impl ::core::marker::Copy for DNS_NSEC_DATAW {} +impl ::core::clone::Clone for DNS_NSEC_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_NULL_DATA { + pub dwByteCount: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for DNS_NULL_DATA {} +impl ::core::clone::Clone for DNS_NULL_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_NXT_DATAA { + pub pNameNext: ::windows_sys::core::PSTR, + pub wNumTypes: u16, + pub wTypes: [u16; 1], +} +impl ::core::marker::Copy for DNS_NXT_DATAA {} +impl ::core::clone::Clone for DNS_NXT_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_NXT_DATAW { + pub pNameNext: ::windows_sys::core::PWSTR, + pub wNumTypes: u16, + pub wTypes: [u16; 1], +} +impl ::core::marker::Copy for DNS_NXT_DATAW {} +impl ::core::clone::Clone for DNS_NXT_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_OPT_DATA { + pub wDataLength: u16, + pub wPad: u16, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for DNS_OPT_DATA {} +impl ::core::clone::Clone for DNS_OPT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_PROXY_INFORMATION { + pub version: u32, + pub proxyInformationType: DNS_PROXY_INFORMATION_TYPE, + pub proxyName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DNS_PROXY_INFORMATION {} +impl ::core::clone::Clone for DNS_PROXY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_PTR_DATAA { + pub pNameHost: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DNS_PTR_DATAA {} +impl ::core::clone::Clone for DNS_PTR_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_PTR_DATAW { + pub pNameHost: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DNS_PTR_DATAW {} +impl ::core::clone::Clone for DNS_PTR_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_QUERY_CANCEL { + pub Reserved: [u8; 32], +} +impl ::core::marker::Copy for DNS_QUERY_CANCEL {} +impl ::core::clone::Clone for DNS_QUERY_CANCEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_QUERY_REQUEST { + pub Version: u32, + pub QueryName: ::windows_sys::core::PCWSTR, + pub QueryType: u16, + pub QueryOptions: u64, + pub pDnsServerList: *mut DNS_ADDR_ARRAY, + pub InterfaceIndex: u32, + pub pQueryCompletionCallback: PDNS_QUERY_COMPLETION_ROUTINE, + pub pQueryContext: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_QUERY_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_QUERY_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_QUERY_REQUEST3 { + pub Version: u32, + pub QueryName: ::windows_sys::core::PCWSTR, + pub QueryType: u16, + pub QueryOptions: u64, + pub pDnsServerList: *mut DNS_ADDR_ARRAY, + pub InterfaceIndex: u32, + pub pQueryCompletionCallback: PDNS_QUERY_COMPLETION_ROUTINE, + pub pQueryContext: *mut ::core::ffi::c_void, + pub IsNetworkQueryRequired: super::super::Foundation::BOOL, + pub RequiredNetworkIndex: u32, + pub cCustomServers: u32, + pub pCustomServers: *mut DNS_CUSTOM_SERVER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_QUERY_REQUEST3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_QUERY_REQUEST3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_QUERY_RESULT { + pub Version: u32, + pub QueryStatus: i32, + pub QueryOptions: u64, + pub pQueryRecords: *mut DNS_RECORDA, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_QUERY_RESULT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_QUERY_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_RECORDA { + pub pNext: *mut DNS_RECORDA, + pub pName: ::windows_sys::core::PSTR, + pub wType: u16, + pub wDataLength: u16, + pub Flags: DNS_RECORDA_1, + pub dwTtl: u32, + pub dwReserved: u32, + pub Data: DNS_RECORDA_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_RECORDA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_RECORDA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DNS_RECORDA_0 { + pub A: DNS_A_DATA, + pub SOA: DNS_SOA_DATAA, + pub Soa: DNS_SOA_DATAA, + pub PTR: DNS_PTR_DATAA, + pub Ptr: DNS_PTR_DATAA, + pub NS: DNS_PTR_DATAA, + pub Ns: DNS_PTR_DATAA, + pub CNAME: DNS_PTR_DATAA, + pub Cname: DNS_PTR_DATAA, + pub DNAME: DNS_PTR_DATAA, + pub Dname: DNS_PTR_DATAA, + pub MB: DNS_PTR_DATAA, + pub Mb: DNS_PTR_DATAA, + pub MD: DNS_PTR_DATAA, + pub Md: DNS_PTR_DATAA, + pub MF: DNS_PTR_DATAA, + pub Mf: DNS_PTR_DATAA, + pub MG: DNS_PTR_DATAA, + pub Mg: DNS_PTR_DATAA, + pub MR: DNS_PTR_DATAA, + pub Mr: DNS_PTR_DATAA, + pub MINFO: DNS_MINFO_DATAA, + pub Minfo: DNS_MINFO_DATAA, + pub RP: DNS_MINFO_DATAA, + pub Rp: DNS_MINFO_DATAA, + pub MX: DNS_MX_DATAA, + pub Mx: DNS_MX_DATAA, + pub AFSDB: DNS_MX_DATAA, + pub Afsdb: DNS_MX_DATAA, + pub RT: DNS_MX_DATAA, + pub Rt: DNS_MX_DATAA, + pub HINFO: DNS_TXT_DATAA, + pub Hinfo: DNS_TXT_DATAA, + pub ISDN: DNS_TXT_DATAA, + pub Isdn: DNS_TXT_DATAA, + pub TXT: DNS_TXT_DATAA, + pub Txt: DNS_TXT_DATAA, + pub X25: DNS_TXT_DATAA, + pub Null: DNS_NULL_DATA, + pub WKS: DNS_WKS_DATA, + pub Wks: DNS_WKS_DATA, + pub AAAA: DNS_AAAA_DATA, + pub KEY: DNS_KEY_DATA, + pub Key: DNS_KEY_DATA, + pub SIG: DNS_SIG_DATAA, + pub Sig: DNS_SIG_DATAA, + pub ATMA: DNS_ATMA_DATA, + pub Atma: DNS_ATMA_DATA, + pub NXT: DNS_NXT_DATAA, + pub Nxt: DNS_NXT_DATAA, + pub SRV: DNS_SRV_DATAA, + pub Srv: DNS_SRV_DATAA, + pub NAPTR: DNS_NAPTR_DATAA, + pub Naptr: DNS_NAPTR_DATAA, + pub OPT: DNS_OPT_DATA, + pub Opt: DNS_OPT_DATA, + pub DS: DNS_DS_DATA, + pub Ds: DNS_DS_DATA, + pub RRSIG: DNS_SIG_DATAA, + pub Rrsig: DNS_SIG_DATAA, + pub NSEC: DNS_NSEC_DATAA, + pub Nsec: DNS_NSEC_DATAA, + pub DNSKEY: DNS_KEY_DATA, + pub Dnskey: DNS_KEY_DATA, + pub TKEY: DNS_TKEY_DATAA, + pub Tkey: DNS_TKEY_DATAA, + pub TSIG: DNS_TSIG_DATAA, + pub Tsig: DNS_TSIG_DATAA, + pub WINS: DNS_WINS_DATA, + pub Wins: DNS_WINS_DATA, + pub WINSR: DNS_WINSR_DATAA, + pub WinsR: DNS_WINSR_DATAA, + pub NBSTAT: DNS_WINSR_DATAA, + pub Nbstat: DNS_WINSR_DATAA, + pub DHCID: DNS_DHCID_DATA, + pub NSEC3: DNS_NSEC3_DATA, + pub Nsec3: DNS_NSEC3_DATA, + pub NSEC3PARAM: DNS_NSEC3PARAM_DATA, + pub Nsec3Param: DNS_NSEC3PARAM_DATA, + pub TLSA: DNS_TLSA_DATA, + pub Tlsa: DNS_TLSA_DATA, + pub SVCB: DNS_SVCB_DATA, + pub Svcb: DNS_SVCB_DATA, + pub UNKNOWN: DNS_UNKNOWN_DATA, + pub Unknown: DNS_UNKNOWN_DATA, + pub pDataPtr: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_RECORDA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_RECORDA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DNS_RECORDA_1 { + pub DW: u32, + pub S: DNS_RECORD_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_RECORDA_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_RECORDA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_RECORDW { + pub pNext: *mut DNS_RECORDW, + pub pName: ::windows_sys::core::PWSTR, + pub wType: u16, + pub wDataLength: u16, + pub Flags: DNS_RECORDW_1, + pub dwTtl: u32, + pub dwReserved: u32, + pub Data: DNS_RECORDW_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_RECORDW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_RECORDW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DNS_RECORDW_0 { + pub A: DNS_A_DATA, + pub SOA: DNS_SOA_DATAW, + pub Soa: DNS_SOA_DATAW, + pub PTR: DNS_PTR_DATAW, + pub Ptr: DNS_PTR_DATAW, + pub NS: DNS_PTR_DATAW, + pub Ns: DNS_PTR_DATAW, + pub CNAME: DNS_PTR_DATAW, + pub Cname: DNS_PTR_DATAW, + pub DNAME: DNS_PTR_DATAW, + pub Dname: DNS_PTR_DATAW, + pub MB: DNS_PTR_DATAW, + pub Mb: DNS_PTR_DATAW, + pub MD: DNS_PTR_DATAW, + pub Md: DNS_PTR_DATAW, + pub MF: DNS_PTR_DATAW, + pub Mf: DNS_PTR_DATAW, + pub MG: DNS_PTR_DATAW, + pub Mg: DNS_PTR_DATAW, + pub MR: DNS_PTR_DATAW, + pub Mr: DNS_PTR_DATAW, + pub MINFO: DNS_MINFO_DATAW, + pub Minfo: DNS_MINFO_DATAW, + pub RP: DNS_MINFO_DATAW, + pub Rp: DNS_MINFO_DATAW, + pub MX: DNS_MX_DATAW, + pub Mx: DNS_MX_DATAW, + pub AFSDB: DNS_MX_DATAW, + pub Afsdb: DNS_MX_DATAW, + pub RT: DNS_MX_DATAW, + pub Rt: DNS_MX_DATAW, + pub HINFO: DNS_TXT_DATAW, + pub Hinfo: DNS_TXT_DATAW, + pub ISDN: DNS_TXT_DATAW, + pub Isdn: DNS_TXT_DATAW, + pub TXT: DNS_TXT_DATAW, + pub Txt: DNS_TXT_DATAW, + pub X25: DNS_TXT_DATAW, + pub Null: DNS_NULL_DATA, + pub WKS: DNS_WKS_DATA, + pub Wks: DNS_WKS_DATA, + pub AAAA: DNS_AAAA_DATA, + pub KEY: DNS_KEY_DATA, + pub Key: DNS_KEY_DATA, + pub SIG: DNS_SIG_DATAW, + pub Sig: DNS_SIG_DATAW, + pub ATMA: DNS_ATMA_DATA, + pub Atma: DNS_ATMA_DATA, + pub NXT: DNS_NXT_DATAW, + pub Nxt: DNS_NXT_DATAW, + pub SRV: DNS_SRV_DATAW, + pub Srv: DNS_SRV_DATAW, + pub NAPTR: DNS_NAPTR_DATAW, + pub Naptr: DNS_NAPTR_DATAW, + pub OPT: DNS_OPT_DATA, + pub Opt: DNS_OPT_DATA, + pub DS: DNS_DS_DATA, + pub Ds: DNS_DS_DATA, + pub RRSIG: DNS_SIG_DATAW, + pub Rrsig: DNS_SIG_DATAW, + pub NSEC: DNS_NSEC_DATAW, + pub Nsec: DNS_NSEC_DATAW, + pub DNSKEY: DNS_KEY_DATA, + pub Dnskey: DNS_KEY_DATA, + pub TKEY: DNS_TKEY_DATAW, + pub Tkey: DNS_TKEY_DATAW, + pub TSIG: DNS_TSIG_DATAW, + pub Tsig: DNS_TSIG_DATAW, + pub WINS: DNS_WINS_DATA, + pub Wins: DNS_WINS_DATA, + pub WINSR: DNS_WINSR_DATAW, + pub WinsR: DNS_WINSR_DATAW, + pub NBSTAT: DNS_WINSR_DATAW, + pub Nbstat: DNS_WINSR_DATAW, + pub DHCID: DNS_DHCID_DATA, + pub NSEC3: DNS_NSEC3_DATA, + pub Nsec3: DNS_NSEC3_DATA, + pub NSEC3PARAM: DNS_NSEC3PARAM_DATA, + pub Nsec3Param: DNS_NSEC3PARAM_DATA, + pub TLSA: DNS_TLSA_DATA, + pub Tlsa: DNS_TLSA_DATA, + pub SVCB: DNS_SVCB_DATA, + pub Svcb: DNS_SVCB_DATA, + pub UNKNOWN: DNS_UNKNOWN_DATA, + pub Unknown: DNS_UNKNOWN_DATA, + pub pDataPtr: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_RECORDW_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_RECORDW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DNS_RECORDW_1 { + pub DW: u32, + pub S: DNS_RECORD_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_RECORDW_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_RECORDW_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_RECORD_FLAGS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DNS_RECORD_FLAGS {} +impl ::core::clone::Clone for DNS_RECORD_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_RECORD_OPTW { + pub pNext: *mut DNS_RECORDW, + pub pName: ::windows_sys::core::PWSTR, + pub wType: u16, + pub wDataLength: u16, + pub Flags: DNS_RECORD_OPTW_1, + pub ExtHeader: DNS_HEADER_EXT, + pub wPayloadSize: u16, + pub wReserved: u16, + pub Data: DNS_RECORD_OPTW_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_RECORD_OPTW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_RECORD_OPTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DNS_RECORD_OPTW_0 { + pub OPT: DNS_OPT_DATA, + pub Opt: DNS_OPT_DATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_RECORD_OPTW_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_RECORD_OPTW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DNS_RECORD_OPTW_1 { + pub DW: u32, + pub S: DNS_RECORD_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_RECORD_OPTW_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_RECORD_OPTW_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_RRSET { + pub pFirstRR: *mut DNS_RECORDA, + pub pLastRR: *mut DNS_RECORDA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_RRSET {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_RRSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_SERVICE_BROWSE_REQUEST { + pub Version: u32, + pub InterfaceIndex: u32, + pub QueryName: ::windows_sys::core::PCWSTR, + pub Anonymous: DNS_SERVICE_BROWSE_REQUEST_0, + pub pQueryContext: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_SERVICE_BROWSE_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_SERVICE_BROWSE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DNS_SERVICE_BROWSE_REQUEST_0 { + pub pBrowseCallback: PDNS_SERVICE_BROWSE_CALLBACK, + pub pBrowseCallbackV2: PDNS_QUERY_COMPLETION_ROUTINE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_SERVICE_BROWSE_REQUEST_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_SERVICE_BROWSE_REQUEST_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SERVICE_CANCEL { + pub reserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for DNS_SERVICE_CANCEL {} +impl ::core::clone::Clone for DNS_SERVICE_CANCEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SERVICE_INSTANCE { + pub pszInstanceName: ::windows_sys::core::PWSTR, + pub pszHostName: ::windows_sys::core::PWSTR, + pub ip4Address: *mut u32, + pub ip6Address: *mut IP6_ADDRESS, + pub wPort: u16, + pub wPriority: u16, + pub wWeight: u16, + pub dwPropertyCount: u32, + pub keys: *mut ::windows_sys::core::PWSTR, + pub values: *mut ::windows_sys::core::PWSTR, + pub dwInterfaceIndex: u32, +} +impl ::core::marker::Copy for DNS_SERVICE_INSTANCE {} +impl ::core::clone::Clone for DNS_SERVICE_INSTANCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_SERVICE_REGISTER_REQUEST { + pub Version: u32, + pub InterfaceIndex: u32, + pub pServiceInstance: *mut DNS_SERVICE_INSTANCE, + pub pRegisterCompletionCallback: PDNS_SERVICE_REGISTER_COMPLETE, + pub pQueryContext: *mut ::core::ffi::c_void, + pub hCredentials: super::super::Foundation::HANDLE, + pub unicastEnabled: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_SERVICE_REGISTER_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_SERVICE_REGISTER_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SERVICE_RESOLVE_REQUEST { + pub Version: u32, + pub InterfaceIndex: u32, + pub QueryName: ::windows_sys::core::PWSTR, + pub pResolveCompletionCallback: PDNS_SERVICE_RESOLVE_COMPLETE, + pub pQueryContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for DNS_SERVICE_RESOLVE_REQUEST {} +impl ::core::clone::Clone for DNS_SERVICE_RESOLVE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SIG_DATAA { + pub wTypeCovered: u16, + pub chAlgorithm: u8, + pub chLabelCount: u8, + pub dwOriginalTtl: u32, + pub dwExpiration: u32, + pub dwTimeSigned: u32, + pub wKeyTag: u16, + pub wSignatureLength: u16, + pub pNameSigner: ::windows_sys::core::PSTR, + pub Signature: [u8; 1], +} +impl ::core::marker::Copy for DNS_SIG_DATAA {} +impl ::core::clone::Clone for DNS_SIG_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SIG_DATAW { + pub wTypeCovered: u16, + pub chAlgorithm: u8, + pub chLabelCount: u8, + pub dwOriginalTtl: u32, + pub dwExpiration: u32, + pub dwTimeSigned: u32, + pub wKeyTag: u16, + pub wSignatureLength: u16, + pub pNameSigner: ::windows_sys::core::PWSTR, + pub Signature: [u8; 1], +} +impl ::core::marker::Copy for DNS_SIG_DATAW {} +impl ::core::clone::Clone for DNS_SIG_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SOA_DATAA { + pub pNamePrimaryServer: ::windows_sys::core::PSTR, + pub pNameAdministrator: ::windows_sys::core::PSTR, + pub dwSerialNo: u32, + pub dwRefresh: u32, + pub dwRetry: u32, + pub dwExpire: u32, + pub dwDefaultTtl: u32, +} +impl ::core::marker::Copy for DNS_SOA_DATAA {} +impl ::core::clone::Clone for DNS_SOA_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SOA_DATAW { + pub pNamePrimaryServer: ::windows_sys::core::PWSTR, + pub pNameAdministrator: ::windows_sys::core::PWSTR, + pub dwSerialNo: u32, + pub dwRefresh: u32, + pub dwRetry: u32, + pub dwExpire: u32, + pub dwDefaultTtl: u32, +} +impl ::core::marker::Copy for DNS_SOA_DATAW {} +impl ::core::clone::Clone for DNS_SOA_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SRV_DATAA { + pub pNameTarget: ::windows_sys::core::PSTR, + pub wPriority: u16, + pub wWeight: u16, + pub wPort: u16, + pub Pad: u16, +} +impl ::core::marker::Copy for DNS_SRV_DATAA {} +impl ::core::clone::Clone for DNS_SRV_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SRV_DATAW { + pub pNameTarget: ::windows_sys::core::PWSTR, + pub wPriority: u16, + pub wWeight: u16, + pub wPort: u16, + pub Pad: u16, +} +impl ::core::marker::Copy for DNS_SRV_DATAW {} +impl ::core::clone::Clone for DNS_SRV_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SVCB_DATA { + pub wSvcPriority: u16, + pub pszTargetName: ::windows_sys::core::PSTR, + pub cSvcParams: u16, + pub pSvcParams: *mut DNS_SVCB_PARAM, +} +impl ::core::marker::Copy for DNS_SVCB_DATA {} +impl ::core::clone::Clone for DNS_SVCB_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SVCB_PARAM { + pub wSvcParamKey: u16, + pub Anonymous: DNS_SVCB_PARAM_0, +} +impl ::core::marker::Copy for DNS_SVCB_PARAM {} +impl ::core::clone::Clone for DNS_SVCB_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DNS_SVCB_PARAM_0 { + pub pIpv4Hints: *mut DNS_SVCB_PARAM_IPV4, + pub pIpv6Hints: *mut DNS_SVCB_PARAM_IPV6, + pub pMandatory: *mut DNS_SVCB_PARAM_MANDATORY, + pub pAlpn: *mut DNS_SVCB_PARAM_ALPN, + pub wPort: u16, + pub pUnknown: *mut DNS_SVCB_PARAM_UNKNOWN, + pub pszDohPath: ::windows_sys::core::PSTR, + pub pReserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for DNS_SVCB_PARAM_0 {} +impl ::core::clone::Clone for DNS_SVCB_PARAM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SVCB_PARAM_ALPN { + pub cIds: u16, + pub rgIds: [DNS_SVCB_PARAM_ALPN_ID; 1], +} +impl ::core::marker::Copy for DNS_SVCB_PARAM_ALPN {} +impl ::core::clone::Clone for DNS_SVCB_PARAM_ALPN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SVCB_PARAM_ALPN_ID { + pub cBytes: u8, + pub pbId: *mut u8, +} +impl ::core::marker::Copy for DNS_SVCB_PARAM_ALPN_ID {} +impl ::core::clone::Clone for DNS_SVCB_PARAM_ALPN_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SVCB_PARAM_IPV4 { + pub cIps: u16, + pub rgIps: [u32; 1], +} +impl ::core::marker::Copy for DNS_SVCB_PARAM_IPV4 {} +impl ::core::clone::Clone for DNS_SVCB_PARAM_IPV4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SVCB_PARAM_IPV6 { + pub cIps: u16, + pub rgIps: [IP6_ADDRESS; 1], +} +impl ::core::marker::Copy for DNS_SVCB_PARAM_IPV6 {} +impl ::core::clone::Clone for DNS_SVCB_PARAM_IPV6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SVCB_PARAM_MANDATORY { + pub cMandatoryKeys: u16, + pub rgwMandatoryKeys: [u16; 1], +} +impl ::core::marker::Copy for DNS_SVCB_PARAM_MANDATORY {} +impl ::core::clone::Clone for DNS_SVCB_PARAM_MANDATORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SVCB_PARAM_UNKNOWN { + pub cBytes: u16, + pub pbSvcParamValue: [u8; 1], +} +impl ::core::marker::Copy for DNS_SVCB_PARAM_UNKNOWN {} +impl ::core::clone::Clone for DNS_SVCB_PARAM_UNKNOWN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_TKEY_DATAA { + pub pNameAlgorithm: ::windows_sys::core::PSTR, + pub pAlgorithmPacket: *mut u8, + pub pKey: *mut u8, + pub pOtherData: *mut u8, + pub dwCreateTime: u32, + pub dwExpireTime: u32, + pub wMode: u16, + pub wError: u16, + pub wKeyLength: u16, + pub wOtherLength: u16, + pub cAlgNameLength: u8, + pub bPacketPointers: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_TKEY_DATAA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_TKEY_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_TKEY_DATAW { + pub pNameAlgorithm: ::windows_sys::core::PWSTR, + pub pAlgorithmPacket: *mut u8, + pub pKey: *mut u8, + pub pOtherData: *mut u8, + pub dwCreateTime: u32, + pub dwExpireTime: u32, + pub wMode: u16, + pub wError: u16, + pub wKeyLength: u16, + pub wOtherLength: u16, + pub cAlgNameLength: u8, + pub bPacketPointers: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_TKEY_DATAW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_TKEY_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_TLSA_DATA { + pub bCertUsage: u8, + pub bSelector: u8, + pub bMatchingType: u8, + pub bCertificateAssociationDataLength: u16, + pub bPad: [u8; 3], + pub bCertificateAssociationData: [u8; 1], +} +impl ::core::marker::Copy for DNS_TLSA_DATA {} +impl ::core::clone::Clone for DNS_TLSA_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_TSIG_DATAA { + pub pNameAlgorithm: ::windows_sys::core::PSTR, + pub pAlgorithmPacket: *mut u8, + pub pSignature: *mut u8, + pub pOtherData: *mut u8, + pub i64CreateTime: i64, + pub wFudgeTime: u16, + pub wOriginalXid: u16, + pub wError: u16, + pub wSigLength: u16, + pub wOtherLength: u16, + pub cAlgNameLength: u8, + pub bPacketPointers: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_TSIG_DATAA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_TSIG_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DNS_TSIG_DATAW { + pub pNameAlgorithm: ::windows_sys::core::PWSTR, + pub pAlgorithmPacket: *mut u8, + pub pSignature: *mut u8, + pub pOtherData: *mut u8, + pub i64CreateTime: i64, + pub wFudgeTime: u16, + pub wOriginalXid: u16, + pub wError: u16, + pub wSigLength: u16, + pub wOtherLength: u16, + pub cAlgNameLength: u8, + pub bPacketPointers: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DNS_TSIG_DATAW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DNS_TSIG_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_TXT_DATAA { + pub dwStringCount: u32, + pub pStringArray: [::windows_sys::core::PSTR; 1], +} +impl ::core::marker::Copy for DNS_TXT_DATAA {} +impl ::core::clone::Clone for DNS_TXT_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_TXT_DATAW { + pub dwStringCount: u32, + pub pStringArray: [::windows_sys::core::PWSTR; 1], +} +impl ::core::marker::Copy for DNS_TXT_DATAW {} +impl ::core::clone::Clone for DNS_TXT_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_UNKNOWN_DATA { + pub dwByteCount: u32, + pub bData: [u8; 1], +} +impl ::core::marker::Copy for DNS_UNKNOWN_DATA {} +impl ::core::clone::Clone for DNS_UNKNOWN_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_WINSR_DATAA { + pub dwMappingFlag: u32, + pub dwLookupTimeout: u32, + pub dwCacheTimeout: u32, + pub pNameResultDomain: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DNS_WINSR_DATAA {} +impl ::core::clone::Clone for DNS_WINSR_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_WINSR_DATAW { + pub dwMappingFlag: u32, + pub dwLookupTimeout: u32, + pub dwCacheTimeout: u32, + pub pNameResultDomain: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DNS_WINSR_DATAW {} +impl ::core::clone::Clone for DNS_WINSR_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_WINS_DATA { + pub dwMappingFlag: u32, + pub dwLookupTimeout: u32, + pub dwCacheTimeout: u32, + pub cWinsServerCount: u32, + pub WinsServers: [u32; 1], +} +impl ::core::marker::Copy for DNS_WINS_DATA {} +impl ::core::clone::Clone for DNS_WINS_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DNS_WIRE_QUESTION { + pub QuestionType: u16, + pub QuestionClass: u16, +} +impl ::core::marker::Copy for DNS_WIRE_QUESTION {} +impl ::core::clone::Clone for DNS_WIRE_QUESTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DNS_WIRE_RECORD { + pub RecordType: u16, + pub RecordClass: u16, + pub TimeToLive: u32, + pub DataLength: u16, +} +impl ::core::marker::Copy for DNS_WIRE_RECORD {} +impl ::core::clone::Clone for DNS_WIRE_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_WKS_DATA { + pub IpAddress: u32, + pub chProtocol: u8, + pub BitMask: [u8; 1], +} +impl ::core::marker::Copy for DNS_WKS_DATA {} +impl ::core::clone::Clone for DNS_WKS_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP4_ARRAY { + pub AddrCount: u32, + pub AddrArray: [u32; 1], +} +impl ::core::marker::Copy for IP4_ARRAY {} +impl ::core::clone::Clone for IP4_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub union IP6_ADDRESS { + pub IP6Qword: [u64; 2], + pub IP6Dword: [u32; 4], + pub IP6Word: [u16; 8], + pub IP6Byte: [u8; 16], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for IP6_ADDRESS {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for IP6_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub union IP6_ADDRESS { + pub IP6Dword: [u32; 4], + pub IP6Word: [u16; 8], + pub IP6Byte: [u8; 16], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for IP6_ADDRESS {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for IP6_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MDNS_QUERY_HANDLE { + pub nameBuf: [u16; 256], + pub wType: u16, + pub pSubscription: *mut ::core::ffi::c_void, + pub pWnfCallbackParams: *mut ::core::ffi::c_void, + pub stateNameData: [u32; 2], +} +impl ::core::marker::Copy for MDNS_QUERY_HANDLE {} +impl ::core::clone::Clone for MDNS_QUERY_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MDNS_QUERY_REQUEST { + pub Version: u32, + pub ulRefCount: u32, + pub Query: ::windows_sys::core::PCWSTR, + pub QueryType: u16, + pub QueryOptions: u64, + pub InterfaceIndex: u32, + pub pQueryCallback: PMDNS_QUERY_CALLBACK, + pub pQueryContext: *mut ::core::ffi::c_void, + pub fAnswerReceived: super::super::Foundation::BOOL, + pub ulResendCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MDNS_QUERY_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MDNS_QUERY_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct _DnsRecordOptA { + pub pNext: *mut DNS_RECORDA, + pub pName: ::windows_sys::core::PSTR, + pub wType: u16, + pub wDataLength: u16, + pub Flags: _DnsRecordOptA_1, + pub ExtHeader: DNS_HEADER_EXT, + pub wPayloadSize: u16, + pub wReserved: u16, + pub Data: _DnsRecordOptA_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for _DnsRecordOptA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for _DnsRecordOptA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union _DnsRecordOptA_0 { + pub OPT: DNS_OPT_DATA, + pub Opt: DNS_OPT_DATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for _DnsRecordOptA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for _DnsRecordOptA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union _DnsRecordOptA_1 { + pub DW: u32, + pub S: DNS_RECORD_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for _DnsRecordOptA_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for _DnsRecordOptA_1 { + fn clone(&self) -> Self { + *self + } +} +pub type DNS_PROXY_COMPLETION_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDNS_QUERY_COMPLETION_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDNS_SERVICE_BROWSE_CALLBACK = ::core::option::Option ()>; +pub type PDNS_SERVICE_REGISTER_COMPLETE = ::core::option::Option ()>; +pub type PDNS_SERVICE_RESOLVE_COMPLETE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMDNS_QUERY_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/InternetConnectionWizard/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/InternetConnectionWizard/mod.rs new file mode 100644 index 000000000..ba36850f3 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/InternetConnectionWizard/mod.rs @@ -0,0 +1,22 @@ +pub const ICW_ALREADYRUN: u32 = 4u32; +pub const ICW_CHECKSTATUS: u32 = 1u32; +pub const ICW_FULLPRESENT: u32 = 1u32; +pub const ICW_FULL_SMARTSTART: u32 = 2048u32; +pub const ICW_LAUNCHEDFULL: u32 = 256u32; +pub const ICW_LAUNCHEDMANUAL: u32 = 512u32; +pub const ICW_LAUNCHFULL: u32 = 256u32; +pub const ICW_LAUNCHMANUAL: u32 = 512u32; +pub const ICW_MANUALPRESENT: u32 = 2u32; +pub const ICW_MAX_ACCTNAME: u32 = 256u32; +pub const ICW_MAX_EMAILADDR: u32 = 128u32; +pub const ICW_MAX_EMAILNAME: u32 = 64u32; +pub const ICW_MAX_LOGONNAME: u32 = 256u32; +pub const ICW_MAX_PASSWORD: u32 = 256u32; +pub const ICW_MAX_RASNAME: u32 = 256u32; +pub const ICW_MAX_SERVERNAME: u32 = 64u32; +pub const ICW_REGKEYCOMPLETED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Completed"); +pub const ICW_REGPATHSETTINGS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Software\\Microsoft\\Internet Connection Wizard"); +pub const ICW_USEDEFAULTS: u32 = 1u32; +pub const ICW_USE_SHELLNEXT: u32 = 1024u32; +pub type PFNCHECKCONNECTIONWIZARD = ::core::option::Option u32>; +pub type PFNSETSHELLNEXT = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/IpHelper/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/IpHelper/mod.rs new file mode 100644 index 000000000..4d5198af1 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/IpHelper/mod.rs @@ -0,0 +1,4412 @@ +::windows_targets::link!("iphlpapi.dll" "system" fn AddIPAddress(address : u32, ipmask : u32, ifindex : u32, ntecontext : *mut u32, nteinstance : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn CancelIPChangeNotify(notifyoverlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +::windows_targets::link!("iphlpapi.dll" "system" fn CancelIfTimestampConfigChange(notificationhandle : HIFTIMESTAMPCHANGE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CancelMibChangeNotify2(notificationhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] fn CaptureInterfaceHardwareCrossTimestamp(interfaceluid : *const super::Ndis:: NET_LUID_LH, crosstimestamp : *mut INTERFACE_HARDWARE_CROSSTIMESTAMP) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertCompartmentGuidToId(compartmentguid : *const ::windows_sys::core::GUID, compartmentid : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertCompartmentIdToGuid(compartmentid : u32, compartmentguid : *mut ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn ConvertInterfaceAliasToLuid(interfacealias : ::windows_sys::core::PCWSTR, interfaceluid : *mut super::Ndis:: NET_LUID_LH) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn ConvertInterfaceGuidToLuid(interfaceguid : *const ::windows_sys::core::GUID, interfaceluid : *mut super::Ndis:: NET_LUID_LH) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn ConvertInterfaceIndexToLuid(interfaceindex : u32, interfaceluid : *mut super::Ndis:: NET_LUID_LH) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn ConvertInterfaceLuidToAlias(interfaceluid : *const super::Ndis:: NET_LUID_LH, interfacealias : ::windows_sys::core::PWSTR, length : usize) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn ConvertInterfaceLuidToGuid(interfaceluid : *const super::Ndis:: NET_LUID_LH, interfaceguid : *mut ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn ConvertInterfaceLuidToIndex(interfaceluid : *const super::Ndis:: NET_LUID_LH, interfaceindex : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn ConvertInterfaceLuidToNameA(interfaceluid : *const super::Ndis:: NET_LUID_LH, interfacename : ::windows_sys::core::PSTR, length : usize) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn ConvertInterfaceLuidToNameW(interfaceluid : *const super::Ndis:: NET_LUID_LH, interfacename : ::windows_sys::core::PWSTR, length : usize) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn ConvertInterfaceNameToLuidA(interfacename : ::windows_sys::core::PCSTR, interfaceluid : *mut super::Ndis:: NET_LUID_LH) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn ConvertInterfaceNameToLuidW(interfacename : ::windows_sys::core::PCWSTR, interfaceluid : *mut super::Ndis:: NET_LUID_LH) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertIpv4MaskToLength(mask : u32, masklength : *mut u8) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertLengthToIpv4Mask(masklength : u32, mask : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn CreateAnycastIpAddressEntry(row : *const MIB_ANYCASTIPADDRESS_ROW) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn CreateIpForwardEntry(proute : *const MIB_IPFORWARDROW) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn CreateIpForwardEntry2(row : *const MIB_IPFORWARD_ROW2) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn CreateIpNetEntry(parpentry : *const MIB_IPNETROW_LH) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn CreateIpNetEntry2(row : *const MIB_IPNET_ROW2) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn CreatePersistentTcpPortReservation(startport : u16, numberofports : u16, token : *mut u64) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn CreatePersistentUdpPortReservation(startport : u16, numberofports : u16, token : *mut u64) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn CreateProxyArpEntry(dwaddress : u32, dwmask : u32, dwifindex : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn CreateSortedAddressPairs(sourceaddresslist : *const super::super::Networking::WinSock:: SOCKADDR_IN6, sourceaddresscount : u32, destinationaddresslist : *const super::super::Networking::WinSock:: SOCKADDR_IN6, destinationaddresscount : u32, addresssortoptions : u32, sortedaddresspairlist : *mut *mut super::super::Networking::WinSock:: SOCKADDR_IN6_PAIR, sortedaddresspaircount : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn CreateUnicastIpAddressEntry(row : *const MIB_UNICASTIPADDRESS_ROW) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn DeleteAnycastIpAddressEntry(row : *const MIB_ANYCASTIPADDRESS_ROW) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn DeleteIPAddress(ntecontext : u32) -> u32); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn DeleteIpForwardEntry(proute : *const MIB_IPFORWARDROW) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn DeleteIpForwardEntry2(row : *const MIB_IPFORWARD_ROW2) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn DeleteIpNetEntry(parpentry : *const MIB_IPNETROW_LH) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn DeleteIpNetEntry2(row : *const MIB_IPNET_ROW2) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn DeletePersistentTcpPortReservation(startport : u16, numberofports : u16) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn DeletePersistentUdpPortReservation(startport : u16, numberofports : u16) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn DeleteProxyArpEntry(dwaddress : u32, dwmask : u32, dwifindex : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn DeleteUnicastIpAddressEntry(row : *const MIB_UNICASTIPADDRESS_ROW) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn DisableMediaSense(phandle : *mut super::super::Foundation:: HANDLE, poverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn EnableRouter(phandle : *mut super::super::Foundation:: HANDLE, poverlapped : *mut super::super::System::IO:: OVERLAPPED) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn FlushIpNetTable(dwifindex : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn FlushIpNetTable2(family : super::super::Networking::WinSock:: ADDRESS_FAMILY, interfaceindex : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn FlushIpPathTable(family : super::super::Networking::WinSock:: ADDRESS_FAMILY) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn FreeDnsSettings(settings : *mut DNS_SETTINGS) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeInterfaceDnsSettings(settings : *mut DNS_INTERFACE_SETTINGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeMibTable(memory : *const ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn GetAdapterIndex(adaptername : ::windows_sys::core::PCWSTR, ifindex : *mut u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetAdapterOrderMap() -> *mut IP_ADAPTER_ORDER_MAP); +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetAdaptersAddresses(family : u32, flags : GET_ADAPTERS_ADDRESSES_FLAGS, reserved : *const ::core::ffi::c_void, adapteraddresses : *mut IP_ADAPTER_ADDRESSES_LH, sizepointer : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAdaptersInfo(adapterinfo : *mut IP_ADAPTER_INFO, sizepointer : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetAnycastIpAddressEntry(row : *mut MIB_ANYCASTIPADDRESS_ROW) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetAnycastIpAddressTable(family : super::super::Networking::WinSock:: ADDRESS_FAMILY, table : *mut *mut MIB_ANYCASTIPADDRESS_TABLE) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn GetBestInterface(dwdestaddr : u32, pdwbestifindex : *mut u32) -> u32); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn GetBestInterfaceEx(pdestaddr : *const super::super::Networking::WinSock:: SOCKADDR, pdwbestifindex : *mut u32) -> u32); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn GetBestRoute(dwdestaddr : u32, dwsourceaddr : u32, pbestroute : *mut MIB_IPFORWARDROW) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetBestRoute2(interfaceluid : *const super::Ndis:: NET_LUID_LH, interfaceindex : u32, sourceaddress : *const super::super::Networking::WinSock:: SOCKADDR_INET, destinationaddress : *const super::super::Networking::WinSock:: SOCKADDR_INET, addresssortoptions : u32, bestroute : *mut MIB_IPFORWARD_ROW2, bestsourceaddress : *mut super::super::Networking::WinSock:: SOCKADDR_INET) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentThreadCompartmentId() -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn GetCurrentThreadCompartmentScope(compartmentscope : *mut u32, compartmentid : *mut u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDefaultCompartmentId() -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDnsSettings(settings : *mut DNS_SETTINGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetExtendedTcpTable(ptcptable : *mut ::core::ffi::c_void, pdwsize : *mut u32, border : super::super::Foundation:: BOOL, ulaf : u32, tableclass : TCP_TABLE_CLASS, reserved : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetExtendedUdpTable(pudptable : *mut ::core::ffi::c_void, pdwsize : *mut u32, border : super::super::Foundation:: BOOL, ulaf : u32, tableclass : UDP_TABLE_CLASS, reserved : u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetFriendlyIfIndex(ifindex : u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetIcmpStatistics(statistics : *mut MIB_ICMP) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetIcmpStatisticsEx(statistics : *mut MIB_ICMP_EX_XPSP1, family : u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetIfEntry(pifrow : *mut MIB_IFROW) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn GetIfEntry2(row : *mut MIB_IF_ROW2) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn GetIfEntry2Ex(level : MIB_IF_ENTRY_LEVEL, row : *mut MIB_IF_ROW2) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetIfStackTable(table : *mut *mut MIB_IFSTACK_TABLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetIfTable(piftable : *mut MIB_IFTABLE, pdwsize : *mut u32, border : super::super::Foundation:: BOOL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn GetIfTable2(table : *mut *mut MIB_IF_TABLE2) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn GetIfTable2Ex(level : MIB_IF_TABLE_LEVEL, table : *mut *mut MIB_IF_TABLE2) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn GetInterfaceActiveTimestampCapabilities(interfaceluid : *const super::Ndis:: NET_LUID_LH, timestampcapabilites : *mut INTERFACE_TIMESTAMP_CAPABILITIES) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn GetInterfaceCurrentTimestampCapabilities(interfaceluid : *const super::Ndis:: NET_LUID_LH, timestampcapabilites : *mut INTERFACE_TIMESTAMP_CAPABILITIES) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetInterfaceDnsSettings(interface : ::windows_sys::core::GUID, settings : *mut DNS_INTERFACE_SETTINGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn GetInterfaceHardwareTimestampCapabilities(interfaceluid : *const super::Ndis:: NET_LUID_LH, timestampcapabilites : *mut INTERFACE_TIMESTAMP_CAPABILITIES) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetInterfaceInfo(piftable : *mut IP_INTERFACE_INFO, dwoutbuflen : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn GetInterfaceSupportedTimestampCapabilities(interfaceluid : *const super::Ndis:: NET_LUID_LH, timestampcapabilites : *mut INTERFACE_TIMESTAMP_CAPABILITIES) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetInvertedIfStackTable(table : *mut *mut MIB_INVERTEDIFSTACK_TABLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetIpAddrTable(pipaddrtable : *mut MIB_IPADDRTABLE, pdwsize : *mut u32, border : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetIpErrorString(errorcode : u32, buffer : ::windows_sys::core::PWSTR, size : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetIpForwardEntry2(row : *mut MIB_IPFORWARD_ROW2) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn GetIpForwardTable(pipforwardtable : *mut MIB_IPFORWARDTABLE, pdwsize : *mut u32, border : super::super::Foundation:: BOOL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetIpForwardTable2(family : super::super::Networking::WinSock:: ADDRESS_FAMILY, table : *mut *mut MIB_IPFORWARD_TABLE2) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetIpInterfaceEntry(row : *mut MIB_IPINTERFACE_ROW) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetIpInterfaceTable(family : super::super::Networking::WinSock:: ADDRESS_FAMILY, table : *mut *mut MIB_IPINTERFACE_TABLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetIpNetEntry2(row : *mut MIB_IPNET_ROW2) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetIpNetTable(ipnettable : *mut MIB_IPNETTABLE, sizepointer : *mut u32, order : super::super::Foundation:: BOOL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetIpNetTable2(family : super::super::Networking::WinSock:: ADDRESS_FAMILY, table : *mut *mut MIB_IPNET_TABLE2) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn GetIpNetworkConnectionBandwidthEstimates(interfaceindex : u32, addressfamily : super::super::Networking::WinSock:: ADDRESS_FAMILY, bandwidthestimates : *mut MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetIpPathEntry(row : *mut MIB_IPPATH_ROW) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetIpPathTable(family : super::super::Networking::WinSock:: ADDRESS_FAMILY, table : *mut *mut MIB_IPPATH_TABLE) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn GetIpStatistics(statistics : *mut MIB_IPSTATS_LH) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetIpStatisticsEx(statistics : *mut MIB_IPSTATS_LH, family : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetJobCompartmentId(jobhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetMulticastIpAddressEntry(row : *mut MIB_MULTICASTIPADDRESS_ROW) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetMulticastIpAddressTable(family : super::super::Networking::WinSock:: ADDRESS_FAMILY, table : *mut *mut MIB_MULTICASTIPADDRESS_TABLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn GetNetworkConnectivityHint(connectivityhint : *mut super::super::Networking::WinSock:: NL_NETWORK_CONNECTIVITY_HINT) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn GetNetworkConnectivityHintForInterface(interfaceindex : u32, connectivityhint : *mut super::super::Networking::WinSock:: NL_NETWORK_CONNECTIVITY_HINT) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNetworkInformation(networkguid : *const ::windows_sys::core::GUID, compartmentid : *mut u32, siteid : *mut u32, networkname : ::windows_sys::core::PWSTR, length : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNetworkParams(pfixedinfo : *mut FIXED_INFO_W2KSP1, poutbuflen : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn GetNumberOfInterfaces(pdwnumif : *mut u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetOwnerModuleFromPidAndInfo(ulpid : u32, pinfo : *const u64, class : TCPIP_OWNER_MODULE_INFO_CLASS, pbuffer : *mut ::core::ffi::c_void, pdwsize : *mut u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetOwnerModuleFromTcp6Entry(ptcpentry : *const MIB_TCP6ROW_OWNER_MODULE, class : TCPIP_OWNER_MODULE_INFO_CLASS, pbuffer : *mut ::core::ffi::c_void, pdwsize : *mut u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetOwnerModuleFromTcpEntry(ptcpentry : *const MIB_TCPROW_OWNER_MODULE, class : TCPIP_OWNER_MODULE_INFO_CLASS, pbuffer : *mut ::core::ffi::c_void, pdwsize : *mut u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetOwnerModuleFromUdp6Entry(pudpentry : *const MIB_UDP6ROW_OWNER_MODULE, class : TCPIP_OWNER_MODULE_INFO_CLASS, pbuffer : *mut ::core::ffi::c_void, pdwsize : *mut u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetOwnerModuleFromUdpEntry(pudpentry : *const MIB_UDPROW_OWNER_MODULE, class : TCPIP_OWNER_MODULE_INFO_CLASS, pbuffer : *mut ::core::ffi::c_void, pdwsize : *mut u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetPerAdapterInfo(ifindex : u32, pperadapterinfo : *mut IP_PER_ADAPTER_INFO_W2KSP1, poutbuflen : *mut u32) -> u32); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn GetPerTcp6ConnectionEStats(row : *const MIB_TCP6ROW, estatstype : TCP_ESTATS_TYPE, rw : *mut u8, rwversion : u32, rwsize : u32, ros : *mut u8, rosversion : u32, rossize : u32, rod : *mut u8, rodversion : u32, rodsize : u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetPerTcpConnectionEStats(row : *const MIB_TCPROW_LH, estatstype : TCP_ESTATS_TYPE, rw : *mut u8, rwversion : u32, rwsize : u32, ros : *mut u8, rosversion : u32, rossize : u32, rod : *mut u8, rodversion : u32, rodsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRTTAndHopCount(destipaddress : u32, hopcount : *mut u32, maxhops : u32, rtt : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSessionCompartmentId(sessionid : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn GetTcp6Table(tcptable : *mut MIB_TCP6TABLE, sizepointer : *mut u32, order : super::super::Foundation:: BOOL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn GetTcp6Table2(tcptable : *mut MIB_TCP6TABLE2, sizepointer : *mut u32, order : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetTcpStatistics(statistics : *mut MIB_TCPSTATS_LH) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetTcpStatisticsEx(statistics : *mut MIB_TCPSTATS_LH, family : u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetTcpStatisticsEx2(statistics : *mut MIB_TCPSTATS2, family : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTcpTable(tcptable : *mut MIB_TCPTABLE, sizepointer : *mut u32, order : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTcpTable2(tcptable : *mut MIB_TCPTABLE2, sizepointer : *mut u32, order : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTeredoPort(port : *mut u16) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn GetUdp6Table(udp6table : *mut MIB_UDP6TABLE, sizepointer : *mut u32, order : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetUdpStatistics(stats : *mut MIB_UDPSTATS) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetUdpStatisticsEx(statistics : *mut MIB_UDPSTATS, family : u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetUdpStatisticsEx2(statistics : *mut MIB_UDPSTATS2, family : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUdpTable(udptable : *mut MIB_UDPTABLE, sizepointer : *mut u32, order : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn GetUniDirectionalAdapterInfo(pipifinfo : *mut IP_UNIDIRECTIONAL_ADAPTER_ADDRESS, dwoutbuflen : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetUnicastIpAddressEntry(row : *mut MIB_UNICASTIPADDRESS_ROW) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn GetUnicastIpAddressTable(family : super::super::Networking::WinSock:: ADDRESS_FAMILY, table : *mut *mut MIB_UNICASTIPADDRESS_TABLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Icmp6CreateFile() -> super::super::Foundation:: HANDLE); +::windows_targets::link!("iphlpapi.dll" "system" fn Icmp6ParseReplies(replybuffer : *mut ::core::ffi::c_void, replysize : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock", feature = "Win32_System_IO"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`, `\"Win32_System_IO\"`"] fn Icmp6SendEcho2(icmphandle : super::super::Foundation:: HANDLE, event : super::super::Foundation:: HANDLE, apcroutine : super::super::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, sourceaddress : *const super::super::Networking::WinSock:: SOCKADDR_IN6, destinationaddress : *const super::super::Networking::WinSock:: SOCKADDR_IN6, requestdata : *const ::core::ffi::c_void, requestsize : u16, requestoptions : *const IP_OPTION_INFORMATION, replybuffer : *mut ::core::ffi::c_void, replysize : u32, timeout : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IcmpCloseHandle(icmphandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IcmpCreateFile() -> super::super::Foundation:: HANDLE); +::windows_targets::link!("iphlpapi.dll" "system" fn IcmpParseReplies(replybuffer : *mut ::core::ffi::c_void, replysize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IcmpSendEcho(icmphandle : super::super::Foundation:: HANDLE, destinationaddress : u32, requestdata : *const ::core::ffi::c_void, requestsize : u16, requestoptions : *const IP_OPTION_INFORMATION, replybuffer : *mut ::core::ffi::c_void, replysize : u32, timeout : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn IcmpSendEcho2(icmphandle : super::super::Foundation:: HANDLE, event : super::super::Foundation:: HANDLE, apcroutine : super::super::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, destinationaddress : u32, requestdata : *const ::core::ffi::c_void, requestsize : u16, requestoptions : *const IP_OPTION_INFORMATION, replybuffer : *mut ::core::ffi::c_void, replysize : u32, timeout : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn IcmpSendEcho2Ex(icmphandle : super::super::Foundation:: HANDLE, event : super::super::Foundation:: HANDLE, apcroutine : super::super::System::IO:: PIO_APC_ROUTINE, apccontext : *const ::core::ffi::c_void, sourceaddress : u32, destinationaddress : u32, requestdata : *const ::core::ffi::c_void, requestsize : u16, requestoptions : *const IP_OPTION_INFORMATION, replybuffer : *mut ::core::ffi::c_void, replysize : u32, timeout : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn InitializeIpForwardEntry(row : *mut MIB_IPFORWARD_ROW2) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn InitializeIpInterfaceEntry(row : *mut MIB_IPINTERFACE_ROW) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn InitializeUnicastIpAddressEntry(row : *mut MIB_UNICASTIPADDRESS_ROW) -> ()); +::windows_targets::link!("iphlpapi.dll" "system" fn IpReleaseAddress(adapterinfo : *const IP_ADAPTER_INDEX_MAP) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn IpRenewAddress(adapterinfo : *const IP_ADAPTER_INDEX_MAP) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn LookupPersistentTcpPortReservation(startport : u16, numberofports : u16, token : *mut u64) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn LookupPersistentUdpPortReservation(startport : u16, numberofports : u16, token : *mut u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NhpAllocateAndGetInterfaceInfoFromStack(pptable : *mut *mut IP_INTERFACE_NAME_INFO_W2KSP1, pdwcount : *mut u32, border : super::super::Foundation:: BOOL, hheap : super::super::Foundation:: HANDLE, dwflags : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NotifyAddrChange(handle : *mut super::super::Foundation:: HANDLE, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn NotifyIfTimestampConfigChange(callercontext : *const ::core::ffi::c_void, callback : PINTERFACE_TIMESTAMP_CONFIG_CHANGE_CALLBACK, notificationhandle : *mut HIFTIMESTAMPCHANGE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn NotifyIpInterfaceChange(family : super::super::Networking::WinSock:: ADDRESS_FAMILY, callback : PIPINTERFACE_CHANGE_CALLBACK, callercontext : *const ::core::ffi::c_void, initialnotification : super::super::Foundation:: BOOLEAN, notificationhandle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn NotifyNetworkConnectivityHintChange(callback : PNETWORK_CONNECTIVITY_HINT_CHANGE_CALLBACK, callercontext : *const ::core::ffi::c_void, initialnotification : super::super::Foundation:: BOOLEAN, notificationhandle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn NotifyRouteChange(handle : *mut super::super::Foundation:: HANDLE, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn NotifyRouteChange2(addressfamily : super::super::Networking::WinSock:: ADDRESS_FAMILY, callback : PIPFORWARD_CHANGE_CALLBACK, callercontext : *const ::core::ffi::c_void, initialnotification : super::super::Foundation:: BOOLEAN, notificationhandle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn NotifyStableUnicastIpAddressTable(family : super::super::Networking::WinSock:: ADDRESS_FAMILY, table : *mut *mut MIB_UNICASTIPADDRESS_TABLE, callercallback : PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK, callercontext : *const ::core::ffi::c_void, notificationhandle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NotifyTeredoPortChange(callback : PTEREDO_PORT_CHANGE_CALLBACK, callercontext : *const ::core::ffi::c_void, initialnotification : super::super::Foundation:: BOOLEAN, notificationhandle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn NotifyUnicastIpAddressChange(family : super::super::Networking::WinSock:: ADDRESS_FAMILY, callback : PUNICAST_IPADDRESS_CHANGE_CALLBACK, callercontext : *const ::core::ffi::c_void, initialnotification : super::super::Foundation:: BOOLEAN, notificationhandle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn ParseNetworkString(networkstring : ::windows_sys::core::PCWSTR, types : u32, addressinfo : *mut NET_ADDRESS_INFO, portnumber : *mut u16, prefixlength : *mut u8) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn PfAddFiltersToInterface(ih : *mut ::core::ffi::c_void, cinfilters : u32, pfiltin : *mut PF_FILTER_DESCRIPTOR, coutfilters : u32, pfiltout : *mut PF_FILTER_DESCRIPTOR, pfhandle : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn PfAddGlobalFilterToInterface(pinterface : *mut ::core::ffi::c_void, gffilter : GLOBAL_FILTER) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn PfBindInterfaceToIPAddress(pinterface : *mut ::core::ffi::c_void, pfattype : PFADDRESSTYPE, ipaddress : *mut u8) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn PfBindInterfaceToIndex(pinterface : *mut ::core::ffi::c_void, dwindex : u32, pfatlinktype : PFADDRESSTYPE, linkipaddress : *mut u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PfCreateInterface(dwname : u32, inaction : PFFORWARD_ACTION, outaction : PFFORWARD_ACTION, buselog : super::super::Foundation:: BOOL, bmustbeunique : super::super::Foundation:: BOOL, ppinterface : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn PfDeleteInterface(pinterface : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn PfDeleteLog() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PfGetInterfaceStatistics(pinterface : *mut ::core::ffi::c_void, ppfstats : *mut PF_INTERFACE_STATS, pdwbuffersize : *mut u32, fresetcounters : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PfMakeLog(hevent : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn PfRebindFilters(pinterface : *mut ::core::ffi::c_void, platebindinfo : *mut PF_LATEBIND_INFO) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn PfRemoveFilterHandles(pinterface : *mut ::core::ffi::c_void, cfilters : u32, pvhandles : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn PfRemoveFiltersFromInterface(ih : *mut ::core::ffi::c_void, cinfilters : u32, pfiltin : *mut PF_FILTER_DESCRIPTOR, coutfilters : u32, pfiltout : *mut PF_FILTER_DESCRIPTOR) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn PfRemoveGlobalFilterFromInterface(pinterface : *mut ::core::ffi::c_void, gffilter : GLOBAL_FILTER) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn PfSetLogBuffer(pbbuffer : *mut u8, dwsize : u32, dwthreshold : u32, dwentries : u32, pdwloggedentries : *mut u32, pdwlostentries : *mut u32, pdwsizeused : *mut u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn PfTestPacket(pininterface : *mut ::core::ffi::c_void, poutinterface : *mut ::core::ffi::c_void, cbytes : u32, pbpacket : *mut u8, ppaction : *mut PFFORWARD_ACTION) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn PfUnBindInterface(pinterface : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn RegisterInterfaceTimestampConfigChange(callback : PINTERFACE_TIMESTAMP_CONFIG_CHANGE_CALLBACK, callercontext : *const ::core::ffi::c_void, notificationhandle : *mut HIFTIMESTAMPCHANGE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn ResolveIpNetEntry2(row : *mut MIB_IPNET_ROW2, sourceaddress : *const super::super::Networking::WinSock:: SOCKADDR_INET) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn ResolveNeighbor(networkaddress : *const super::super::Networking::WinSock:: SOCKADDR, physicaladdress : *mut ::core::ffi::c_void, physicaladdresslength : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn RestoreMediaSense(poverlapped : *const super::super::System::IO:: OVERLAPPED, lpdwenablecount : *mut u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn SendARP(destip : u32, srcip : u32, pmacaddr : *mut ::core::ffi::c_void, phyaddrlen : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCurrentThreadCompartmentId(compartmentid : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCurrentThreadCompartmentScope(compartmentscope : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDnsSettings(settings : *const DNS_SETTINGS) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn SetIfEntry(pifrow : *const MIB_IFROW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetInterfaceDnsSettings(interface : ::windows_sys::core::GUID, settings : *const DNS_INTERFACE_SETTINGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn SetIpForwardEntry(proute : *const MIB_IPFORWARDROW) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn SetIpForwardEntry2(route : *const MIB_IPFORWARD_ROW2) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn SetIpInterfaceEntry(row : *mut MIB_IPINTERFACE_ROW) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn SetIpNetEntry(parpentry : *const MIB_IPNETROW_LH) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn SetIpNetEntry2(row : *const MIB_IPNET_ROW2) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn SetIpStatistics(pipstats : *const MIB_IPSTATS_LH) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn SetIpStatisticsEx(statistics : *const MIB_IPSTATS_LH, family : u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn SetIpTTL(nttl : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetJobCompartmentId(jobhandle : super::super::Foundation:: HANDLE, compartmentid : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetNetworkInformation(networkguid : *const ::windows_sys::core::GUID, compartmentid : u32, networkname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn SetPerTcp6ConnectionEStats(row : *const MIB_TCP6ROW, estatstype : TCP_ESTATS_TYPE, rw : *const u8, rwversion : u32, rwsize : u32, offset : u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn SetPerTcpConnectionEStats(row : *const MIB_TCPROW_LH, estatstype : TCP_ESTATS_TYPE, rw : *const u8, rwversion : u32, rwsize : u32, offset : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSessionCompartmentId(sessionid : u32, compartmentid : u32) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("iphlpapi.dll" "system" fn SetTcpEntry(ptcprow : *const MIB_TCPROW_LH) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] fn SetUnicastIpAddressEntry(row : *const MIB_UNICASTIPADDRESS_ROW) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("iphlpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn UnenableRouter(poverlapped : *const super::super::System::IO:: OVERLAPPED, lpdwenablecount : *mut u32) -> u32); +::windows_targets::link!("iphlpapi.dll" "system" fn UnregisterInterfaceTimestampConfigChange(notificationhandle : HIFTIMESTAMPCHANGE) -> ()); +::windows_targets::link!("iphlpapi.dll" "system" fn if_indextoname(interfaceindex : u32, interfacename : ::windows_sys::core::PSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("iphlpapi.dll" "system" fn if_nametoindex(interfacename : ::windows_sys::core::PCSTR) -> u32); +pub const ANY_SIZE: u32 = 1u32; +pub const BEST_IF: u32 = 20u32; +pub const BEST_ROUTE: u32 = 21u32; +pub const BROADCAST_NODETYPE: u32 = 1u32; +pub const DEFAULT_MINIMUM_ENTITIES: u32 = 32u32; +pub const DEST_LONGER: u32 = 29u32; +pub const DEST_MATCHING: u32 = 28u32; +pub const DEST_SHORTER: u32 = 30u32; +pub const DNS_DDR_ADAPTER_ENABLE_DOH: u32 = 1u32; +pub const DNS_DDR_ADAPTER_ENABLE_UDP_FALLBACK: u32 = 2u32; +pub const DNS_DOH_AUTO_UPGRADE_SERVER: u32 = 8u32; +pub const DNS_DOH_POLICY_AUTO: u32 = 16u32; +pub const DNS_DOH_POLICY_DISABLE: u32 = 8u32; +pub const DNS_DOH_POLICY_NOT_CONFIGURED: u32 = 4u32; +pub const DNS_DOH_POLICY_REQUIRED: u32 = 32u32; +pub const DNS_DOH_SERVER_SETTINGS_ENABLE: u32 = 2u32; +pub const DNS_DOH_SERVER_SETTINGS_ENABLE_AUTO: u32 = 1u32; +pub const DNS_DOH_SERVER_SETTINGS_ENABLE_DDR: u32 = 16u32; +pub const DNS_DOH_SERVER_SETTINGS_FALLBACK_TO_UDP: u32 = 4u32; +pub const DNS_ENABLE_DDR: u32 = 64u32; +pub const DNS_ENABLE_DOH: u32 = 1u32; +pub const DNS_INTERFACE_SETTINGS_VERSION1: u32 = 1u32; +pub const DNS_INTERFACE_SETTINGS_VERSION2: u32 = 2u32; +pub const DNS_INTERFACE_SETTINGS_VERSION3: u32 = 3u32; +pub const DNS_INTERFACE_SETTINGS_VERSION4: u32 = 4u32; +pub const DNS_SERVER_PROPERTY_VERSION1: u32 = 1u32; +pub const DNS_SETTINGS_ENABLE_LLMNR: u32 = 128u32; +pub const DNS_SETTINGS_QUERY_ADAPTER_NAME: u32 = 256u32; +pub const DNS_SETTINGS_VERSION1: u32 = 1u32; +pub const DNS_SETTINGS_VERSION2: u32 = 2u32; +pub const DNS_SETTING_DDR: u32 = 32768u32; +pub const DNS_SETTING_DISABLE_UNCONSTRAINED_QUERIES: u32 = 1024u32; +pub const DNS_SETTING_DOH: u32 = 4096u32; +pub const DNS_SETTING_DOH_PROFILE: u32 = 8192u32; +pub const DNS_SETTING_DOMAIN: u32 = 32u32; +pub const DNS_SETTING_ENCRYPTED_DNS_ADAPTER_FLAGS: u32 = 16384u32; +pub const DNS_SETTING_HOSTNAME: u32 = 64u32; +pub const DNS_SETTING_IPV6: u32 = 1u32; +pub const DNS_SETTING_NAMESERVER: u32 = 2u32; +pub const DNS_SETTING_PROFILE_NAMESERVER: u32 = 512u32; +pub const DNS_SETTING_REGISTER_ADAPTER_NAME: u32 = 16u32; +pub const DNS_SETTING_REGISTRATION_ENABLED: u32 = 8u32; +pub const DNS_SETTING_SEARCHLIST: u32 = 4u32; +pub const DNS_SETTING_SUPPLEMENTAL_SEARCH_LIST: u32 = 2048u32; +pub const DnsServerDohProperty: DNS_SERVER_PROPERTY_TYPE = 1i32; +pub const DnsServerInvalidProperty: DNS_SERVER_PROPERTY_TYPE = 0i32; +pub const ERROR_BASE: u32 = 23000u32; +pub const ERROR_IPV6_NOT_IMPLEMENTED: u32 = 23003u32; +pub const FD_FLAGS_ALLFLAGS: u32 = 1u32; +pub const FD_FLAGS_NOSYN: u32 = 1u32; +pub const FILTER_ICMP_CODE_ANY: u8 = 255u8; +pub const FILTER_ICMP_TYPE_ANY: u8 = 255u8; +pub const GAA_FLAG_INCLUDE_ALL_COMPARTMENTS: GET_ADAPTERS_ADDRESSES_FLAGS = 512u32; +pub const GAA_FLAG_INCLUDE_ALL_INTERFACES: GET_ADAPTERS_ADDRESSES_FLAGS = 256u32; +pub const GAA_FLAG_INCLUDE_GATEWAYS: GET_ADAPTERS_ADDRESSES_FLAGS = 128u32; +pub const GAA_FLAG_INCLUDE_PREFIX: GET_ADAPTERS_ADDRESSES_FLAGS = 16u32; +pub const GAA_FLAG_INCLUDE_TUNNEL_BINDINGORDER: GET_ADAPTERS_ADDRESSES_FLAGS = 1024u32; +pub const GAA_FLAG_INCLUDE_WINS_INFO: GET_ADAPTERS_ADDRESSES_FLAGS = 64u32; +pub const GAA_FLAG_SKIP_ANYCAST: GET_ADAPTERS_ADDRESSES_FLAGS = 2u32; +pub const GAA_FLAG_SKIP_DNS_INFO: u32 = 2048u32; +pub const GAA_FLAG_SKIP_DNS_SERVER: GET_ADAPTERS_ADDRESSES_FLAGS = 8u32; +pub const GAA_FLAG_SKIP_FRIENDLY_NAME: GET_ADAPTERS_ADDRESSES_FLAGS = 32u32; +pub const GAA_FLAG_SKIP_MULTICAST: GET_ADAPTERS_ADDRESSES_FLAGS = 4u32; +pub const GAA_FLAG_SKIP_UNICAST: GET_ADAPTERS_ADDRESSES_FLAGS = 1u32; +pub const GF_FRAGCACHE: GLOBAL_FILTER = 9i32; +pub const GF_FRAGMENTS: GLOBAL_FILTER = 2i32; +pub const GF_STRONGHOST: GLOBAL_FILTER = 8i32; +pub const HYBRID_NODETYPE: u32 = 8u32; +pub const ICMP4_DST_UNREACH: ICMP4_TYPE = 3i32; +pub const ICMP4_ECHO_REPLY: ICMP4_TYPE = 0i32; +pub const ICMP4_ECHO_REQUEST: ICMP4_TYPE = 8i32; +pub const ICMP4_MASK_REPLY: ICMP4_TYPE = 18i32; +pub const ICMP4_MASK_REQUEST: ICMP4_TYPE = 17i32; +pub const ICMP4_PARAM_PROB: ICMP4_TYPE = 12i32; +pub const ICMP4_REDIRECT: ICMP4_TYPE = 5i32; +pub const ICMP4_ROUTER_ADVERT: ICMP4_TYPE = 9i32; +pub const ICMP4_ROUTER_SOLICIT: ICMP4_TYPE = 10i32; +pub const ICMP4_SOURCE_QUENCH: ICMP4_TYPE = 4i32; +pub const ICMP4_TIMESTAMP_REPLY: ICMP4_TYPE = 14i32; +pub const ICMP4_TIMESTAMP_REQUEST: ICMP4_TYPE = 13i32; +pub const ICMP4_TIME_EXCEEDED: ICMP4_TYPE = 11i32; +pub const ICMP6_DST_UNREACH: ICMP6_TYPE = 1i32; +pub const ICMP6_ECHO_REPLY: ICMP6_TYPE = 129i32; +pub const ICMP6_ECHO_REQUEST: ICMP6_TYPE = 128i32; +pub const ICMP6_INFOMSG_MASK: u32 = 128u32; +pub const ICMP6_MEMBERSHIP_QUERY: ICMP6_TYPE = 130i32; +pub const ICMP6_MEMBERSHIP_REDUCTION: ICMP6_TYPE = 132i32; +pub const ICMP6_MEMBERSHIP_REPORT: ICMP6_TYPE = 131i32; +pub const ICMP6_PACKET_TOO_BIG: ICMP6_TYPE = 2i32; +pub const ICMP6_PARAM_PROB: ICMP6_TYPE = 4i32; +pub const ICMP6_TIME_EXCEEDED: ICMP6_TYPE = 3i32; +pub const ICMP6_V2_MEMBERSHIP_REPORT: ICMP6_TYPE = 143i32; +pub const ICMP_STATS: u32 = 11u32; +pub const IF_ACCESS_BROADCAST: IF_ACCESS_TYPE = 2i32; +pub const IF_ACCESS_LOOPBACK: IF_ACCESS_TYPE = 1i32; +pub const IF_ACCESS_POINTTOMULTIPOINT: IF_ACCESS_TYPE = 4i32; +pub const IF_ACCESS_POINTTOPOINT: IF_ACCESS_TYPE = 3i32; +pub const IF_ACCESS_POINT_TO_MULTI_POINT: IF_ACCESS_TYPE = 4i32; +pub const IF_ACCESS_POINT_TO_POINT: IF_ACCESS_TYPE = 3i32; +pub const IF_ADMIN_STATUS_DOWN: u32 = 2u32; +pub const IF_ADMIN_STATUS_TESTING: u32 = 3u32; +pub const IF_ADMIN_STATUS_UP: u32 = 1u32; +pub const IF_CHECK_MCAST: u32 = 1u32; +pub const IF_CHECK_NONE: u32 = 0u32; +pub const IF_CHECK_SEND: u32 = 2u32; +pub const IF_CONNECTION_DEDICATED: u32 = 1u32; +pub const IF_CONNECTION_DEMAND: u32 = 3u32; +pub const IF_CONNECTION_PASSIVE: u32 = 2u32; +pub const IF_NUMBER: u32 = 0u32; +pub const IF_OPER_STATUS_CONNECTED: INTERNAL_IF_OPER_STATUS = 4i32; +pub const IF_OPER_STATUS_CONNECTING: INTERNAL_IF_OPER_STATUS = 3i32; +pub const IF_OPER_STATUS_DISCONNECTED: INTERNAL_IF_OPER_STATUS = 2i32; +pub const IF_OPER_STATUS_NON_OPERATIONAL: INTERNAL_IF_OPER_STATUS = 0i32; +pub const IF_OPER_STATUS_OPERATIONAL: INTERNAL_IF_OPER_STATUS = 5i32; +pub const IF_OPER_STATUS_UNREACHABLE: INTERNAL_IF_OPER_STATUS = 1i32; +pub const IF_ROW: u32 = 2u32; +pub const IF_STATUS: u32 = 25u32; +pub const IF_TABLE: u32 = 1u32; +pub const IF_TYPE_A12MPPSWITCH: u32 = 130u32; +pub const IF_TYPE_AAL2: u32 = 187u32; +pub const IF_TYPE_AAL5: u32 = 49u32; +pub const IF_TYPE_ADSL: u32 = 94u32; +pub const IF_TYPE_AFLANE_8023: u32 = 59u32; +pub const IF_TYPE_AFLANE_8025: u32 = 60u32; +pub const IF_TYPE_ARAP: u32 = 88u32; +pub const IF_TYPE_ARCNET: u32 = 35u32; +pub const IF_TYPE_ARCNET_PLUS: u32 = 36u32; +pub const IF_TYPE_ASYNC: u32 = 84u32; +pub const IF_TYPE_ATM: u32 = 37u32; +pub const IF_TYPE_ATM_DXI: u32 = 105u32; +pub const IF_TYPE_ATM_FUNI: u32 = 106u32; +pub const IF_TYPE_ATM_IMA: u32 = 107u32; +pub const IF_TYPE_ATM_LOGICAL: u32 = 80u32; +pub const IF_TYPE_ATM_RADIO: u32 = 189u32; +pub const IF_TYPE_ATM_SUBINTERFACE: u32 = 134u32; +pub const IF_TYPE_ATM_VCI_ENDPT: u32 = 194u32; +pub const IF_TYPE_ATM_VIRTUAL: u32 = 149u32; +pub const IF_TYPE_BASIC_ISDN: u32 = 20u32; +pub const IF_TYPE_BGP_POLICY_ACCOUNTING: u32 = 162u32; +pub const IF_TYPE_BSC: u32 = 83u32; +pub const IF_TYPE_CCTEMUL: u32 = 61u32; +pub const IF_TYPE_CES: u32 = 133u32; +pub const IF_TYPE_CHANNEL: u32 = 70u32; +pub const IF_TYPE_CNR: u32 = 85u32; +pub const IF_TYPE_COFFEE: u32 = 132u32; +pub const IF_TYPE_COMPOSITELINK: u32 = 155u32; +pub const IF_TYPE_DCN: u32 = 141u32; +pub const IF_TYPE_DDN_X25: u32 = 4u32; +pub const IF_TYPE_DIGITALPOWERLINE: u32 = 138u32; +pub const IF_TYPE_DIGITAL_WRAPPER_OVERHEAD_CHANNEL: u32 = 186u32; +pub const IF_TYPE_DLSW: u32 = 74u32; +pub const IF_TYPE_DOCSCABLE_DOWNSTREAM: u32 = 128u32; +pub const IF_TYPE_DOCSCABLE_MACLAYER: u32 = 127u32; +pub const IF_TYPE_DOCSCABLE_UPSTREAM: u32 = 129u32; +pub const IF_TYPE_DS0: u32 = 81u32; +pub const IF_TYPE_DS0_BUNDLE: u32 = 82u32; +pub const IF_TYPE_DS1: u32 = 18u32; +pub const IF_TYPE_DS1_FDL: u32 = 170u32; +pub const IF_TYPE_DS3: u32 = 30u32; +pub const IF_TYPE_DTM: u32 = 140u32; +pub const IF_TYPE_DVBRCC_DOWNSTREAM: u32 = 147u32; +pub const IF_TYPE_DVBRCC_MACLAYER: u32 = 146u32; +pub const IF_TYPE_DVBRCC_UPSTREAM: u32 = 148u32; +pub const IF_TYPE_DVB_ASI_IN: u32 = 172u32; +pub const IF_TYPE_DVB_ASI_OUT: u32 = 173u32; +pub const IF_TYPE_E1: u32 = 19u32; +pub const IF_TYPE_EON: u32 = 25u32; +pub const IF_TYPE_EPLRS: u32 = 87u32; +pub const IF_TYPE_ESCON: u32 = 73u32; +pub const IF_TYPE_ETHERNET_3MBIT: u32 = 26u32; +pub const IF_TYPE_ETHERNET_CSMACD: u32 = 6u32; +pub const IF_TYPE_FAST: u32 = 125u32; +pub const IF_TYPE_FASTETHER: u32 = 62u32; +pub const IF_TYPE_FASTETHER_FX: u32 = 69u32; +pub const IF_TYPE_FDDI: u32 = 15u32; +pub const IF_TYPE_FIBRECHANNEL: u32 = 56u32; +pub const IF_TYPE_FRAMERELAY: u32 = 32u32; +pub const IF_TYPE_FRAMERELAY_INTERCONNECT: u32 = 58u32; +pub const IF_TYPE_FRAMERELAY_MPI: u32 = 92u32; +pub const IF_TYPE_FRAMERELAY_SERVICE: u32 = 44u32; +pub const IF_TYPE_FRF16_MFR_BUNDLE: u32 = 163u32; +pub const IF_TYPE_FR_DLCI_ENDPT: u32 = 193u32; +pub const IF_TYPE_FR_FORWARD: u32 = 158u32; +pub const IF_TYPE_G703_2MB: u32 = 67u32; +pub const IF_TYPE_G703_64K: u32 = 66u32; +pub const IF_TYPE_GIGABITETHERNET: u32 = 117u32; +pub const IF_TYPE_GR303_IDT: u32 = 178u32; +pub const IF_TYPE_GR303_RDT: u32 = 177u32; +pub const IF_TYPE_H323_GATEKEEPER: u32 = 164u32; +pub const IF_TYPE_H323_PROXY: u32 = 165u32; +pub const IF_TYPE_HDH_1822: u32 = 3u32; +pub const IF_TYPE_HDLC: u32 = 118u32; +pub const IF_TYPE_HDSL2: u32 = 168u32; +pub const IF_TYPE_HIPERLAN2: u32 = 183u32; +pub const IF_TYPE_HIPPI: u32 = 47u32; +pub const IF_TYPE_HIPPIINTERFACE: u32 = 57u32; +pub const IF_TYPE_HOSTPAD: u32 = 90u32; +pub const IF_TYPE_HSSI: u32 = 46u32; +pub const IF_TYPE_HYPERCHANNEL: u32 = 14u32; +pub const IF_TYPE_IBM370PARCHAN: u32 = 72u32; +pub const IF_TYPE_IDSL: u32 = 154u32; +pub const IF_TYPE_IEEE1394: u32 = 144u32; +pub const IF_TYPE_IEEE80211: u32 = 71u32; +pub const IF_TYPE_IEEE80212: u32 = 55u32; +pub const IF_TYPE_IEEE802154: u32 = 259u32; +pub const IF_TYPE_IEEE80216_WMAN: u32 = 237u32; +pub const IF_TYPE_IEEE8023AD_LAG: u32 = 161u32; +pub const IF_TYPE_IF_GSN: u32 = 145u32; +pub const IF_TYPE_IMT: u32 = 190u32; +pub const IF_TYPE_INTERLEAVE: u32 = 124u32; +pub const IF_TYPE_IP: u32 = 126u32; +pub const IF_TYPE_IPFORWARD: u32 = 142u32; +pub const IF_TYPE_IPOVER_ATM: u32 = 114u32; +pub const IF_TYPE_IPOVER_CDLC: u32 = 109u32; +pub const IF_TYPE_IPOVER_CLAW: u32 = 110u32; +pub const IF_TYPE_IPSWITCH: u32 = 78u32; +pub const IF_TYPE_IS088023_CSMACD: u32 = 7u32; +pub const IF_TYPE_ISDN: u32 = 63u32; +pub const IF_TYPE_ISDN_S: u32 = 75u32; +pub const IF_TYPE_ISDN_U: u32 = 76u32; +pub const IF_TYPE_ISO88022_LLC: u32 = 41u32; +pub const IF_TYPE_ISO88024_TOKENBUS: u32 = 8u32; +pub const IF_TYPE_ISO88025R_DTR: u32 = 86u32; +pub const IF_TYPE_ISO88025_CRFPRINT: u32 = 98u32; +pub const IF_TYPE_ISO88025_FIBER: u32 = 115u32; +pub const IF_TYPE_ISO88025_TOKENRING: u32 = 9u32; +pub const IF_TYPE_ISO88026_MAN: u32 = 10u32; +pub const IF_TYPE_ISUP: u32 = 179u32; +pub const IF_TYPE_L2_VLAN: u32 = 135u32; +pub const IF_TYPE_L3_IPVLAN: u32 = 136u32; +pub const IF_TYPE_L3_IPXVLAN: u32 = 137u32; +pub const IF_TYPE_LAP_B: u32 = 16u32; +pub const IF_TYPE_LAP_D: u32 = 77u32; +pub const IF_TYPE_LAP_F: u32 = 119u32; +pub const IF_TYPE_LOCALTALK: u32 = 42u32; +pub const IF_TYPE_MEDIAMAILOVERIP: u32 = 139u32; +pub const IF_TYPE_MF_SIGLINK: u32 = 167u32; +pub const IF_TYPE_MIO_X25: u32 = 38u32; +pub const IF_TYPE_MODEM: u32 = 48u32; +pub const IF_TYPE_MPC: u32 = 113u32; +pub const IF_TYPE_MPLS: u32 = 166u32; +pub const IF_TYPE_MPLS_TUNNEL: u32 = 150u32; +pub const IF_TYPE_MSDSL: u32 = 143u32; +pub const IF_TYPE_MVL: u32 = 191u32; +pub const IF_TYPE_MYRINET: u32 = 99u32; +pub const IF_TYPE_NFAS: u32 = 175u32; +pub const IF_TYPE_NSIP: u32 = 27u32; +pub const IF_TYPE_OPTICAL_CHANNEL: u32 = 195u32; +pub const IF_TYPE_OPTICAL_TRANSPORT: u32 = 196u32; +pub const IF_TYPE_OTHER: u32 = 1u32; +pub const IF_TYPE_PARA: u32 = 34u32; +pub const IF_TYPE_PLC: u32 = 174u32; +pub const IF_TYPE_POS: u32 = 171u32; +pub const IF_TYPE_PPP: u32 = 23u32; +pub const IF_TYPE_PPPMULTILINKBUNDLE: u32 = 108u32; +pub const IF_TYPE_PRIMARY_ISDN: u32 = 21u32; +pub const IF_TYPE_PROP_BWA_P2MP: u32 = 184u32; +pub const IF_TYPE_PROP_CNLS: u32 = 89u32; +pub const IF_TYPE_PROP_DOCS_WIRELESS_DOWNSTREAM: u32 = 181u32; +pub const IF_TYPE_PROP_DOCS_WIRELESS_MACLAYER: u32 = 180u32; +pub const IF_TYPE_PROP_DOCS_WIRELESS_UPSTREAM: u32 = 182u32; +pub const IF_TYPE_PROP_MULTIPLEXOR: u32 = 54u32; +pub const IF_TYPE_PROP_POINT2POINT_SERIAL: u32 = 22u32; +pub const IF_TYPE_PROP_VIRTUAL: u32 = 53u32; +pub const IF_TYPE_PROP_WIRELESS_P2P: u32 = 157u32; +pub const IF_TYPE_PROTEON_10MBIT: u32 = 12u32; +pub const IF_TYPE_PROTEON_80MBIT: u32 = 13u32; +pub const IF_TYPE_QLLC: u32 = 68u32; +pub const IF_TYPE_RADIO_MAC: u32 = 188u32; +pub const IF_TYPE_RADSL: u32 = 95u32; +pub const IF_TYPE_REACH_DSL: u32 = 192u32; +pub const IF_TYPE_REGULAR_1822: u32 = 2u32; +pub const IF_TYPE_RFC1483: u32 = 159u32; +pub const IF_TYPE_RFC877_X25: u32 = 5u32; +pub const IF_TYPE_RS232: u32 = 33u32; +pub const IF_TYPE_RSRB: u32 = 79u32; +pub const IF_TYPE_SDLC: u32 = 17u32; +pub const IF_TYPE_SDSL: u32 = 96u32; +pub const IF_TYPE_SHDSL: u32 = 169u32; +pub const IF_TYPE_SIP: u32 = 31u32; +pub const IF_TYPE_SLIP: u32 = 28u32; +pub const IF_TYPE_SMDS_DXI: u32 = 43u32; +pub const IF_TYPE_SMDS_ICIP: u32 = 52u32; +pub const IF_TYPE_SOFTWARE_LOOPBACK: u32 = 24u32; +pub const IF_TYPE_SONET: u32 = 39u32; +pub const IF_TYPE_SONET_OVERHEAD_CHANNEL: u32 = 185u32; +pub const IF_TYPE_SONET_PATH: u32 = 50u32; +pub const IF_TYPE_SONET_VT: u32 = 51u32; +pub const IF_TYPE_SRP: u32 = 151u32; +pub const IF_TYPE_SS7_SIGLINK: u32 = 156u32; +pub const IF_TYPE_STACKTOSTACK: u32 = 111u32; +pub const IF_TYPE_STARLAN: u32 = 11u32; +pub const IF_TYPE_TDLC: u32 = 116u32; +pub const IF_TYPE_TERMPAD: u32 = 91u32; +pub const IF_TYPE_TR008: u32 = 176u32; +pub const IF_TYPE_TRANSPHDLC: u32 = 123u32; +pub const IF_TYPE_TUNNEL: u32 = 131u32; +pub const IF_TYPE_ULTRA: u32 = 29u32; +pub const IF_TYPE_USB: u32 = 160u32; +pub const IF_TYPE_V11: u32 = 64u32; +pub const IF_TYPE_V35: u32 = 45u32; +pub const IF_TYPE_V36: u32 = 65u32; +pub const IF_TYPE_V37: u32 = 120u32; +pub const IF_TYPE_VDSL: u32 = 97u32; +pub const IF_TYPE_VIRTUALIPADDRESS: u32 = 112u32; +pub const IF_TYPE_VOICEOVERATM: u32 = 152u32; +pub const IF_TYPE_VOICEOVERFRAMERELAY: u32 = 153u32; +pub const IF_TYPE_VOICE_EM: u32 = 100u32; +pub const IF_TYPE_VOICE_ENCAP: u32 = 103u32; +pub const IF_TYPE_VOICE_FXO: u32 = 101u32; +pub const IF_TYPE_VOICE_FXS: u32 = 102u32; +pub const IF_TYPE_VOICE_OVERIP: u32 = 104u32; +pub const IF_TYPE_WWANPP: u32 = 243u32; +pub const IF_TYPE_WWANPP2: u32 = 244u32; +pub const IF_TYPE_X213: u32 = 93u32; +pub const IF_TYPE_X25_HUNTGROUP: u32 = 122u32; +pub const IF_TYPE_X25_MLP: u32 = 121u32; +pub const IF_TYPE_X25_PLE: u32 = 40u32; +pub const IF_TYPE_XBOX_WIRELESS: u32 = 281u32; +pub const INTERFACE_HARDWARE_CROSSTIMESTAMP_VERSION_1: u32 = 1u32; +pub const INTERFACE_TIMESTAMP_CAPABILITIES_VERSION_1: u32 = 1u32; +pub const IOCTL_ARP_SEND_REQUEST: u32 = 103u32; +pub const IOCTL_IP_ADDCHANGE_NOTIFY_REQUEST: u32 = 102u32; +pub const IOCTL_IP_GET_BEST_INTERFACE: u32 = 105u32; +pub const IOCTL_IP_INTERFACE_INFO: u32 = 104u32; +pub const IOCTL_IP_RTCHANGE_NOTIFY_REQUEST: u32 = 101u32; +pub const IOCTL_IP_UNIDIRECTIONAL_ADAPTER_ADDRESS: u32 = 106u32; +pub const IP6_STATS: u32 = 36u32; +pub const IPRTRMGR_PID: u32 = 10000u32; +pub const IPV6_GLOBAL_INFO: u32 = 4294901775u32; +pub const IPV6_ROUTE_INFO: u32 = 4294901776u32; +pub const IP_ADAPTER_ADDRESS_DNS_ELIGIBLE: u32 = 1u32; +pub const IP_ADAPTER_ADDRESS_TRANSIENT: u32 = 2u32; +pub const IP_ADAPTER_DDNS_ENABLED: u32 = 1u32; +pub const IP_ADAPTER_DHCP_ENABLED: u32 = 4u32; +pub const IP_ADAPTER_IPV4_ENABLED: u32 = 128u32; +pub const IP_ADAPTER_IPV6_ENABLED: u32 = 256u32; +pub const IP_ADAPTER_IPV6_MANAGE_ADDRESS_CONFIG: u32 = 512u32; +pub const IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG: u32 = 32u32; +pub const IP_ADAPTER_NETBIOS_OVER_TCPIP_ENABLED: u32 = 64u32; +pub const IP_ADAPTER_NO_MULTICAST: u32 = 16u32; +pub const IP_ADAPTER_RECEIVE_ONLY: u32 = 8u32; +pub const IP_ADAPTER_REGISTER_ADAPTER_SUFFIX: u32 = 2u32; +pub const IP_ADDRROW: u32 = 5u32; +pub const IP_ADDRTABLE: u32 = 4u32; +pub const IP_ADDR_ADDED: u32 = 11023u32; +pub const IP_ADDR_DELETED: u32 = 11019u32; +pub const IP_BAD_DESTINATION: u32 = 11018u32; +pub const IP_BAD_HEADER: u32 = 11042u32; +pub const IP_BAD_OPTION: u32 = 11007u32; +pub const IP_BAD_REQ: u32 = 11011u32; +pub const IP_BAD_ROUTE: u32 = 11012u32; +pub const IP_BIND_ADAPTER: u32 = 11026u32; +pub const IP_BUF_TOO_SMALL: u32 = 11001u32; +pub const IP_DEMAND_DIAL_FILTER_INFO: u32 = 4294901769u32; +pub const IP_DEMAND_DIAL_FILTER_INFO_V6: u32 = 4294901779u32; +pub const IP_DEST_ADDR_UNREACHABLE: u32 = 11003u32; +pub const IP_DEST_HOST_UNREACHABLE: u32 = 11003u32; +pub const IP_DEST_NET_UNREACHABLE: u32 = 11002u32; +pub const IP_DEST_NO_ROUTE: u32 = 11002u32; +pub const IP_DEST_PORT_UNREACHABLE: u32 = 11005u32; +pub const IP_DEST_PROHIBITED: u32 = 11004u32; +pub const IP_DEST_PROT_UNREACHABLE: u32 = 11004u32; +pub const IP_DEST_SCOPE_MISMATCH: u32 = 11045u32; +pub const IP_DEST_UNREACHABLE: u32 = 11040u32; +pub const IP_DEVICE_DOES_NOT_EXIST: u32 = 11028u32; +pub const IP_DUPLICATE_ADDRESS: u32 = 11029u32; +pub const IP_DUPLICATE_IPADD: u32 = 11034u32; +pub const IP_EXPORT_INCLUDED: u32 = 1u32; +pub const IP_FILTER_ENABLE_INFO: u32 = 4294901781u32; +pub const IP_FILTER_ENABLE_INFO_V6: u32 = 4294901782u32; +pub const IP_FLAG_DF: u32 = 2u32; +pub const IP_FLAG_REVERSE: u32 = 1u32; +pub const IP_FORWARDNUMBER: u32 = 6u32; +pub const IP_FORWARDROW: u32 = 8u32; +pub const IP_FORWARDTABLE: u32 = 7u32; +pub const IP_GENERAL_FAILURE: u32 = 11050u32; +pub const IP_GENERAL_INFO_BASE: u32 = 4294901760u32; +pub const IP_GLOBAL_INFO: u32 = 4294901763u32; +pub const IP_HOP_LIMIT_EXCEEDED: u32 = 11013u32; +pub const IP_HW_ERROR: u32 = 11008u32; +pub const IP_ICMP_ERROR: u32 = 11044u32; +pub const IP_IFFILTER_INFO: u32 = 4294901773u32; +pub const IP_IFFILTER_INFO_V6: u32 = 4294901780u32; +pub const IP_INTERFACE_METRIC_CHANGE: u32 = 11030u32; +pub const IP_INTERFACE_STATUS_INFO: u32 = 4294901764u32; +pub const IP_INTERFACE_WOL_CAPABILITY_CHANGE: u32 = 11033u32; +pub const IP_IN_FILTER_INFO: u32 = 4294901761u32; +pub const IP_IN_FILTER_INFO_V6: u32 = 4294901777u32; +pub const IP_IPINIP_CFG_INFO: u32 = 4294901772u32; +pub const IP_MCAST_BOUNDARY_INFO: u32 = 4294901771u32; +pub const IP_MCAST_HEARBEAT_INFO: u32 = 4294901770u32; +pub const IP_MCAST_LIMIT_INFO: u32 = 4294901774u32; +pub const IP_MEDIA_CONNECT: u32 = 11024u32; +pub const IP_MEDIA_DISCONNECT: u32 = 11025u32; +pub const IP_MTU_CHANGE: u32 = 11021u32; +pub const IP_NEGOTIATING_IPSEC: u32 = 11032u32; +pub const IP_NETROW: u32 = 10u32; +pub const IP_NETTABLE: u32 = 9u32; +pub const IP_NO_RESOURCES: u32 = 11006u32; +pub const IP_OPTION_TOO_BIG: u32 = 11017u32; +pub const IP_OUT_FILTER_INFO: u32 = 4294901762u32; +pub const IP_OUT_FILTER_INFO_V6: u32 = 4294901778u32; +pub const IP_PACKET_TOO_BIG: u32 = 11009u32; +pub const IP_PARAMETER_PROBLEM: u32 = 11015u32; +pub const IP_PARAM_PROBLEM: u32 = 11015u32; +pub const IP_PENDING: u32 = 11255u32; +pub const IP_PROT_PRIORITY_INFO: u32 = 4294901766u32; +pub const IP_PROT_PRIORITY_INFO_EX: u32 = 4294901783u32; +pub const IP_REASSEMBLY_TIME_EXCEEDED: u32 = 11014u32; +pub const IP_RECONFIG_SECFLTR: u32 = 11031u32; +pub const IP_REQ_TIMED_OUT: u32 = 11010u32; +pub const IP_ROUTER_DISC_INFO: u32 = 4294901767u32; +pub const IP_ROUTER_MANAGER_VERSION: u32 = 1u32; +pub const IP_ROUTE_INFO: u32 = 4294901765u32; +pub const IP_SOURCE_QUENCH: u32 = 11016u32; +pub const IP_SPEC_MTU_CHANGE: u32 = 11020u32; +pub const IP_STATS: u32 = 3u32; +pub const IP_STATUS_BASE: u32 = 11000u32; +pub const IP_SUCCESS: u32 = 0u32; +pub const IP_TIME_EXCEEDED: u32 = 11041u32; +pub const IP_TTL_EXPIRED_REASSEM: u32 = 11014u32; +pub const IP_TTL_EXPIRED_TRANSIT: u32 = 11013u32; +pub const IP_UNBIND_ADAPTER: u32 = 11027u32; +pub const IP_UNLOAD: u32 = 11022u32; +pub const IP_UNRECOGNIZED_NEXT_HEADER: u32 = 11043u32; +pub const LB_DST_ADDR_USE_DSTADDR_FLAG: u32 = 8u32; +pub const LB_DST_ADDR_USE_SRCADDR_FLAG: u32 = 4u32; +pub const LB_DST_MASK_LATE_FLAG: u32 = 32u32; +pub const LB_SRC_ADDR_USE_DSTADDR_FLAG: u32 = 2u32; +pub const LB_SRC_ADDR_USE_SRCADDR_FLAG: u32 = 1u32; +pub const LB_SRC_MASK_LATE_FLAG: u32 = 16u32; +pub const MAXLEN_IFDESCR: u32 = 256u32; +pub const MAXLEN_PHYSADDR: u32 = 8u32; +pub const MAX_ADAPTER_ADDRESS_LENGTH: u32 = 8u32; +pub const MAX_ADAPTER_DESCRIPTION_LENGTH: u32 = 128u32; +pub const MAX_ADAPTER_NAME: u32 = 128u32; +pub const MAX_ADAPTER_NAME_LENGTH: u32 = 256u32; +pub const MAX_DHCPV6_DUID_LENGTH: u32 = 130u32; +pub const MAX_DNS_SUFFIX_STRING_LENGTH: u32 = 256u32; +pub const MAX_DOMAIN_NAME_LEN: u32 = 128u32; +pub const MAX_HOSTNAME_LEN: u32 = 128u32; +pub const MAX_IF_TYPE: u32 = 281u32; +pub const MAX_INTERFACE_NAME_LEN: u32 = 256u32; +pub const MAX_IP_STATUS: u32 = 11050u32; +pub const MAX_MIB_OFFSET: u32 = 8u32; +pub const MAX_OPT_SIZE: u32 = 40u32; +pub const MAX_SCOPE_ID_LEN: u32 = 256u32; +pub const MAX_SCOPE_NAME_LEN: u32 = 255u32; +pub const MCAST_BOUNDARY: u32 = 26u32; +pub const MCAST_GLOBAL: u32 = 24u32; +pub const MCAST_IF_ENTRY: u32 = 23u32; +pub const MCAST_MFE: u32 = 18u32; +pub const MCAST_MFE_STATS: u32 = 19u32; +pub const MCAST_MFE_STATS_EX: u32 = 35u32; +pub const MCAST_SCOPE: u32 = 27u32; +pub const MIB_IF_ADMIN_STATUS_DOWN: u32 = 2u32; +pub const MIB_IF_ADMIN_STATUS_TESTING: u32 = 3u32; +pub const MIB_IF_ADMIN_STATUS_UP: u32 = 1u32; +pub const MIB_IF_TYPE_ETHERNET: u32 = 6u32; +pub const MIB_IF_TYPE_FDDI: u32 = 15u32; +pub const MIB_IF_TYPE_LOOPBACK: u32 = 24u32; +pub const MIB_IF_TYPE_OTHER: u32 = 1u32; +pub const MIB_IF_TYPE_PPP: u32 = 23u32; +pub const MIB_IF_TYPE_SLIP: u32 = 28u32; +pub const MIB_IF_TYPE_TOKENRING: u32 = 9u32; +pub const MIB_INVALID_TEREDO_PORT_NUMBER: u32 = 0u32; +pub const MIB_IPADDR_DELETED: u32 = 64u32; +pub const MIB_IPADDR_DISCONNECTED: u32 = 8u32; +pub const MIB_IPADDR_DNS_ELIGIBLE: u32 = 256u32; +pub const MIB_IPADDR_DYNAMIC: u32 = 4u32; +pub const MIB_IPADDR_PRIMARY: u32 = 1u32; +pub const MIB_IPADDR_TRANSIENT: u32 = 128u32; +pub const MIB_IPNET_TYPE_DYNAMIC: MIB_IPNET_TYPE = 3i32; +pub const MIB_IPNET_TYPE_INVALID: MIB_IPNET_TYPE = 2i32; +pub const MIB_IPNET_TYPE_OTHER: MIB_IPNET_TYPE = 1i32; +pub const MIB_IPNET_TYPE_STATIC: MIB_IPNET_TYPE = 4i32; +pub const MIB_IPROUTE_METRIC_UNUSED: u32 = 4294967295u32; +pub const MIB_IPROUTE_TYPE_DIRECT: MIB_IPFORWARD_TYPE = 3i32; +pub const MIB_IPROUTE_TYPE_INDIRECT: MIB_IPFORWARD_TYPE = 4i32; +pub const MIB_IPROUTE_TYPE_INVALID: MIB_IPFORWARD_TYPE = 2i32; +pub const MIB_IPROUTE_TYPE_OTHER: MIB_IPFORWARD_TYPE = 1i32; +pub const MIB_IP_FORWARDING: MIB_IPSTATS_FORWARDING = 1i32; +pub const MIB_IP_NOT_FORWARDING: MIB_IPSTATS_FORWARDING = 2i32; +pub const MIB_TCP_RTO_CONSTANT: TCP_RTO_ALGORITHM = 2i32; +pub const MIB_TCP_RTO_OTHER: TCP_RTO_ALGORITHM = 1i32; +pub const MIB_TCP_RTO_RSRE: TCP_RTO_ALGORITHM = 3i32; +pub const MIB_TCP_RTO_VANJ: TCP_RTO_ALGORITHM = 4i32; +pub const MIB_TCP_STATE_CLOSED: MIB_TCP_STATE = 1i32; +pub const MIB_TCP_STATE_CLOSE_WAIT: MIB_TCP_STATE = 8i32; +pub const MIB_TCP_STATE_CLOSING: MIB_TCP_STATE = 9i32; +pub const MIB_TCP_STATE_DELETE_TCB: MIB_TCP_STATE = 12i32; +pub const MIB_TCP_STATE_ESTAB: MIB_TCP_STATE = 5i32; +pub const MIB_TCP_STATE_FIN_WAIT1: MIB_TCP_STATE = 6i32; +pub const MIB_TCP_STATE_FIN_WAIT2: MIB_TCP_STATE = 7i32; +pub const MIB_TCP_STATE_LAST_ACK: MIB_TCP_STATE = 10i32; +pub const MIB_TCP_STATE_LISTEN: MIB_TCP_STATE = 2i32; +pub const MIB_TCP_STATE_RESERVED: MIB_TCP_STATE = 100i32; +pub const MIB_TCP_STATE_SYN_RCVD: MIB_TCP_STATE = 4i32; +pub const MIB_TCP_STATE_SYN_SENT: MIB_TCP_STATE = 3i32; +pub const MIB_TCP_STATE_TIME_WAIT: MIB_TCP_STATE = 11i32; +pub const MIB_USE_CURRENT_FORWARDING: u32 = 4294967295u32; +pub const MIB_USE_CURRENT_TTL: u32 = 4294967295u32; +pub const MIN_IF_TYPE: u32 = 1u32; +pub const MIXED_NODETYPE: u32 = 4u32; +pub const MibAddInstance: MIB_NOTIFICATION_TYPE = 1i32; +pub const MibDeleteInstance: MIB_NOTIFICATION_TYPE = 2i32; +pub const MibIfEntryNormal: MIB_IF_ENTRY_LEVEL = 0i32; +pub const MibIfEntryNormalWithoutStatistics: MIB_IF_ENTRY_LEVEL = 2i32; +pub const MibIfTableNormal: MIB_IF_TABLE_LEVEL = 0i32; +pub const MibIfTableNormalWithoutStatistics: MIB_IF_TABLE_LEVEL = 2i32; +pub const MibIfTableRaw: MIB_IF_TABLE_LEVEL = 1i32; +pub const MibInitialNotification: MIB_NOTIFICATION_TYPE = 3i32; +pub const MibParameterNotification: MIB_NOTIFICATION_TYPE = 0i32; +pub const ND_NEIGHBOR_ADVERT: ICMP6_TYPE = 136i32; +pub const ND_NEIGHBOR_SOLICIT: ICMP6_TYPE = 135i32; +pub const ND_REDIRECT: ICMP6_TYPE = 137i32; +pub const ND_ROUTER_ADVERT: ICMP6_TYPE = 134i32; +pub const ND_ROUTER_SOLICIT: ICMP6_TYPE = 133i32; +pub const NET_ADDRESS_DNS_NAME: NET_ADDRESS_FORMAT = 1i32; +pub const NET_ADDRESS_FORMAT_UNSPECIFIED: NET_ADDRESS_FORMAT = 0i32; +pub const NET_ADDRESS_IPV4: NET_ADDRESS_FORMAT = 2i32; +pub const NET_ADDRESS_IPV6: NET_ADDRESS_FORMAT = 3i32; +pub const NET_STRING_IPV4_ADDRESS: u32 = 1u32; +pub const NET_STRING_IPV4_NETWORK: u32 = 4u32; +pub const NET_STRING_IPV4_SERVICE: u32 = 2u32; +pub const NET_STRING_IPV6_ADDRESS: u32 = 8u32; +pub const NET_STRING_IPV6_ADDRESS_NO_SCOPE: u32 = 16u32; +pub const NET_STRING_IPV6_NETWORK: u32 = 128u32; +pub const NET_STRING_IPV6_SERVICE: u32 = 32u32; +pub const NET_STRING_IPV6_SERVICE_NO_SCOPE: u32 = 64u32; +pub const NET_STRING_NAMED_ADDRESS: u32 = 256u32; +pub const NET_STRING_NAMED_SERVICE: u32 = 512u32; +pub const NUMBER_OF_EXPORTED_VARIABLES: u32 = 39u32; +pub const PEER_TO_PEER_NODETYPE: u32 = 2u32; +pub const PFERROR_BUFFER_TOO_SMALL: u32 = 23002u32; +pub const PFERROR_NO_FILTERS_GIVEN: u32 = 23001u32; +pub const PFERROR_NO_PF_INTERFACE: u32 = 23000u32; +pub const PFFT_FILTER: PFFRAMETYPE = 1i32; +pub const PFFT_FRAG: PFFRAMETYPE = 2i32; +pub const PFFT_SPOOF: PFFRAMETYPE = 3i32; +pub const PF_ACTION_DROP: PFFORWARD_ACTION = 1i32; +pub const PF_ACTION_FORWARD: PFFORWARD_ACTION = 0i32; +pub const PF_IPV4: PFADDRESSTYPE = 0i32; +pub const PF_IPV6: PFADDRESSTYPE = 1i32; +pub const PROXY_ARP: u32 = 22u32; +pub const ROUTE_LONGER: u32 = 32u32; +pub const ROUTE_MATCHING: u32 = 31u32; +pub const ROUTE_SHORTER: u32 = 33u32; +pub const ROUTE_STATE: u32 = 34u32; +pub const TCP6_STATS: u32 = 38u32; +pub const TCPIP_OWNER_MODULE_INFO_BASIC: TCPIP_OWNER_MODULE_INFO_CLASS = 0i32; +pub const TCPIP_OWNING_MODULE_SIZE: u32 = 16u32; +pub const TCP_ROW: u32 = 14u32; +pub const TCP_STATS: u32 = 12u32; +pub const TCP_TABLE: u32 = 13u32; +pub const TCP_TABLE_BASIC_ALL: TCP_TABLE_CLASS = 2i32; +pub const TCP_TABLE_BASIC_CONNECTIONS: TCP_TABLE_CLASS = 1i32; +pub const TCP_TABLE_BASIC_LISTENER: TCP_TABLE_CLASS = 0i32; +pub const TCP_TABLE_OWNER_MODULE_ALL: TCP_TABLE_CLASS = 8i32; +pub const TCP_TABLE_OWNER_MODULE_CONNECTIONS: TCP_TABLE_CLASS = 7i32; +pub const TCP_TABLE_OWNER_MODULE_LISTENER: TCP_TABLE_CLASS = 6i32; +pub const TCP_TABLE_OWNER_PID_ALL: TCP_TABLE_CLASS = 5i32; +pub const TCP_TABLE_OWNER_PID_CONNECTIONS: TCP_TABLE_CLASS = 4i32; +pub const TCP_TABLE_OWNER_PID_LISTENER: TCP_TABLE_CLASS = 3i32; +pub const TcpBoolOptDisabled: TCP_BOOLEAN_OPTIONAL = 0i32; +pub const TcpBoolOptEnabled: TCP_BOOLEAN_OPTIONAL = 1i32; +pub const TcpBoolOptUnchanged: TCP_BOOLEAN_OPTIONAL = -1i32; +pub const TcpConnectionEstatsBandwidth: TCP_ESTATS_TYPE = 7i32; +pub const TcpConnectionEstatsData: TCP_ESTATS_TYPE = 1i32; +pub const TcpConnectionEstatsFineRtt: TCP_ESTATS_TYPE = 8i32; +pub const TcpConnectionEstatsMaximum: TCP_ESTATS_TYPE = 9i32; +pub const TcpConnectionEstatsObsRec: TCP_ESTATS_TYPE = 6i32; +pub const TcpConnectionEstatsPath: TCP_ESTATS_TYPE = 3i32; +pub const TcpConnectionEstatsRec: TCP_ESTATS_TYPE = 5i32; +pub const TcpConnectionEstatsSendBuff: TCP_ESTATS_TYPE = 4i32; +pub const TcpConnectionEstatsSndCong: TCP_ESTATS_TYPE = 2i32; +pub const TcpConnectionEstatsSynOpts: TCP_ESTATS_TYPE = 0i32; +pub const TcpConnectionOffloadStateInHost: TCP_CONNECTION_OFFLOAD_STATE = 0i32; +pub const TcpConnectionOffloadStateMax: TCP_CONNECTION_OFFLOAD_STATE = 4i32; +pub const TcpConnectionOffloadStateOffloaded: TCP_CONNECTION_OFFLOAD_STATE = 2i32; +pub const TcpConnectionOffloadStateOffloading: TCP_CONNECTION_OFFLOAD_STATE = 1i32; +pub const TcpConnectionOffloadStateUploading: TCP_CONNECTION_OFFLOAD_STATE = 3i32; +pub const TcpErrorAboveAckWindow: TCP_SOFT_ERROR = 4i32; +pub const TcpErrorAboveDataWindow: TCP_SOFT_ERROR = 2i32; +pub const TcpErrorAboveTsWindow: TCP_SOFT_ERROR = 6i32; +pub const TcpErrorBelowAckWindow: TCP_SOFT_ERROR = 3i32; +pub const TcpErrorBelowDataWindow: TCP_SOFT_ERROR = 1i32; +pub const TcpErrorBelowTsWindow: TCP_SOFT_ERROR = 5i32; +pub const TcpErrorDataChecksumError: TCP_SOFT_ERROR = 7i32; +pub const TcpErrorDataLengthError: TCP_SOFT_ERROR = 8i32; +pub const TcpErrorMaxSoftError: TCP_SOFT_ERROR = 9i32; +pub const TcpErrorNone: TCP_SOFT_ERROR = 0i32; +pub const TcpRtoAlgorithmConstant: TCP_RTO_ALGORITHM = 2i32; +pub const TcpRtoAlgorithmOther: TCP_RTO_ALGORITHM = 1i32; +pub const TcpRtoAlgorithmRsre: TCP_RTO_ALGORITHM = 3i32; +pub const TcpRtoAlgorithmVanj: TCP_RTO_ALGORITHM = 4i32; +pub const UDP6_STATS: u32 = 37u32; +pub const UDP_ROW: u32 = 17u32; +pub const UDP_STATS: u32 = 15u32; +pub const UDP_TABLE: u32 = 16u32; +pub const UDP_TABLE_BASIC: UDP_TABLE_CLASS = 0i32; +pub const UDP_TABLE_OWNER_MODULE: UDP_TABLE_CLASS = 2i32; +pub const UDP_TABLE_OWNER_PID: UDP_TABLE_CLASS = 1i32; +pub type DNS_SERVER_PROPERTY_TYPE = i32; +pub type GET_ADAPTERS_ADDRESSES_FLAGS = u32; +pub type GLOBAL_FILTER = i32; +pub type ICMP4_TYPE = i32; +pub type ICMP6_TYPE = i32; +pub type IF_ACCESS_TYPE = i32; +pub type INTERNAL_IF_OPER_STATUS = i32; +pub type MIB_IF_ENTRY_LEVEL = i32; +pub type MIB_IF_TABLE_LEVEL = i32; +pub type MIB_IPFORWARD_TYPE = i32; +pub type MIB_IPNET_TYPE = i32; +pub type MIB_IPSTATS_FORWARDING = i32; +pub type MIB_NOTIFICATION_TYPE = i32; +pub type MIB_TCP_STATE = i32; +pub type NET_ADDRESS_FORMAT = i32; +pub type PFADDRESSTYPE = i32; +pub type PFFORWARD_ACTION = i32; +pub type PFFRAMETYPE = i32; +pub type TCPIP_OWNER_MODULE_INFO_CLASS = i32; +pub type TCP_BOOLEAN_OPTIONAL = i32; +pub type TCP_CONNECTION_OFFLOAD_STATE = i32; +pub type TCP_ESTATS_TYPE = i32; +pub type TCP_RTO_ALGORITHM = i32; +pub type TCP_SOFT_ERROR = i32; +pub type TCP_TABLE_CLASS = i32; +pub type UDP_TABLE_CLASS = i32; +#[repr(C)] +pub struct ARP_SEND_REPLY { + pub DestAddress: u32, + pub SrcAddress: u32, +} +impl ::core::marker::Copy for ARP_SEND_REPLY {} +impl ::core::clone::Clone for ARP_SEND_REPLY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_DOH_SERVER_SETTINGS { + pub Template: ::windows_sys::core::PWSTR, + pub Flags: u64, +} +impl ::core::marker::Copy for DNS_DOH_SERVER_SETTINGS {} +impl ::core::clone::Clone for DNS_DOH_SERVER_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_INTERFACE_SETTINGS { + pub Version: u32, + pub Flags: u64, + pub Domain: ::windows_sys::core::PWSTR, + pub NameServer: ::windows_sys::core::PWSTR, + pub SearchList: ::windows_sys::core::PWSTR, + pub RegistrationEnabled: u32, + pub RegisterAdapterName: u32, + pub EnableLLMNR: u32, + pub QueryAdapterName: u32, + pub ProfileNameServer: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DNS_INTERFACE_SETTINGS {} +impl ::core::clone::Clone for DNS_INTERFACE_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_INTERFACE_SETTINGS3 { + pub Version: u32, + pub Flags: u64, + pub Domain: ::windows_sys::core::PWSTR, + pub NameServer: ::windows_sys::core::PWSTR, + pub SearchList: ::windows_sys::core::PWSTR, + pub RegistrationEnabled: u32, + pub RegisterAdapterName: u32, + pub EnableLLMNR: u32, + pub QueryAdapterName: u32, + pub ProfileNameServer: ::windows_sys::core::PWSTR, + pub DisableUnconstrainedQueries: u32, + pub SupplementalSearchList: ::windows_sys::core::PWSTR, + pub cServerProperties: u32, + pub ServerProperties: *mut DNS_SERVER_PROPERTY, + pub cProfileServerProperties: u32, + pub ProfileServerProperties: *mut DNS_SERVER_PROPERTY, +} +impl ::core::marker::Copy for DNS_INTERFACE_SETTINGS3 {} +impl ::core::clone::Clone for DNS_INTERFACE_SETTINGS3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_INTERFACE_SETTINGS4 { + pub Version: u32, + pub Flags: u64, + pub Domain: ::windows_sys::core::PWSTR, + pub NameServer: ::windows_sys::core::PWSTR, + pub SearchList: ::windows_sys::core::PWSTR, + pub RegistrationEnabled: u32, + pub RegisterAdapterName: u32, + pub EnableLLMNR: u32, + pub QueryAdapterName: u32, + pub ProfileNameServer: ::windows_sys::core::PWSTR, + pub DisableUnconstrainedQueries: u32, + pub SupplementalSearchList: ::windows_sys::core::PWSTR, + pub cServerProperties: u32, + pub ServerProperties: *mut DNS_SERVER_PROPERTY, + pub cProfileServerProperties: u32, + pub ProfileServerProperties: *mut DNS_SERVER_PROPERTY, + pub EncryptedDnsAdapterFlags: u32, +} +impl ::core::marker::Copy for DNS_INTERFACE_SETTINGS4 {} +impl ::core::clone::Clone for DNS_INTERFACE_SETTINGS4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_INTERFACE_SETTINGS_EX { + pub SettingsV1: DNS_INTERFACE_SETTINGS, + pub DisableUnconstrainedQueries: u32, + pub SupplementalSearchList: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DNS_INTERFACE_SETTINGS_EX {} +impl ::core::clone::Clone for DNS_INTERFACE_SETTINGS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SERVER_PROPERTY { + pub Version: u32, + pub ServerIndex: u32, + pub Type: DNS_SERVER_PROPERTY_TYPE, + pub Property: DNS_SERVER_PROPERTY_TYPES, +} +impl ::core::marker::Copy for DNS_SERVER_PROPERTY {} +impl ::core::clone::Clone for DNS_SERVER_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DNS_SERVER_PROPERTY_TYPES { + pub DohSettings: *mut DNS_DOH_SERVER_SETTINGS, +} +impl ::core::marker::Copy for DNS_SERVER_PROPERTY_TYPES {} +impl ::core::clone::Clone for DNS_SERVER_PROPERTY_TYPES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SETTINGS { + pub Version: u32, + pub Flags: u64, + pub Hostname: ::windows_sys::core::PWSTR, + pub Domain: ::windows_sys::core::PWSTR, + pub SearchList: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DNS_SETTINGS {} +impl ::core::clone::Clone for DNS_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DNS_SETTINGS2 { + pub Version: u32, + pub Flags: u64, + pub Hostname: ::windows_sys::core::PWSTR, + pub Domain: ::windows_sys::core::PWSTR, + pub SearchList: ::windows_sys::core::PWSTR, + pub SettingFlags: u64, +} +impl ::core::marker::Copy for DNS_SETTINGS2 {} +impl ::core::clone::Clone for DNS_SETTINGS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FIXED_INFO_W2KSP1 { + pub HostName: [u8; 132], + pub DomainName: [u8; 132], + pub CurrentDnsServer: *mut IP_ADDR_STRING, + pub DnsServerList: IP_ADDR_STRING, + pub NodeType: u32, + pub ScopeId: [u8; 260], + pub EnableRouting: u32, + pub EnableProxy: u32, + pub EnableDns: u32, +} +impl ::core::marker::Copy for FIXED_INFO_W2KSP1 {} +impl ::core::clone::Clone for FIXED_INFO_W2KSP1 { + fn clone(&self) -> Self { + *self + } +} +pub type HIFTIMESTAMPCHANGE = isize; +#[repr(C)] +pub struct ICMPV6_ECHO_REPLY_LH { + pub Address: IPV6_ADDRESS_EX, + pub Status: u32, + pub RoundTripTime: u32, +} +impl ::core::marker::Copy for ICMPV6_ECHO_REPLY_LH {} +impl ::core::clone::Clone for ICMPV6_ECHO_REPLY_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ICMP_ECHO_REPLY { + pub Address: u32, + pub Status: u32, + pub RoundTripTime: u32, + pub DataSize: u16, + pub Reserved: u16, + pub Data: *mut ::core::ffi::c_void, + pub Options: IP_OPTION_INFORMATION, +} +impl ::core::marker::Copy for ICMP_ECHO_REPLY {} +impl ::core::clone::Clone for ICMP_ECHO_REPLY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct ICMP_ECHO_REPLY32 { + pub Address: u32, + pub Status: u32, + pub RoundTripTime: u32, + pub DataSize: u16, + pub Reserved: u16, + pub Data: *mut ::core::ffi::c_void, + pub Options: IP_OPTION_INFORMATION32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for ICMP_ECHO_REPLY32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for ICMP_ECHO_REPLY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERFACE_HARDWARE_CROSSTIMESTAMP { + pub SystemTimestamp1: u64, + pub HardwareClockTimestamp: u64, + pub SystemTimestamp2: u64, +} +impl ::core::marker::Copy for INTERFACE_HARDWARE_CROSSTIMESTAMP {} +impl ::core::clone::Clone for INTERFACE_HARDWARE_CROSSTIMESTAMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERFACE_HARDWARE_TIMESTAMP_CAPABILITIES { + pub PtpV2OverUdpIPv4EventMessageReceive: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv4AllMessageReceive: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv4EventMessageTransmit: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv4AllMessageTransmit: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv6EventMessageReceive: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv6AllMessageReceive: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv6EventMessageTransmit: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv6AllMessageTransmit: super::super::Foundation::BOOLEAN, + pub AllReceive: super::super::Foundation::BOOLEAN, + pub AllTransmit: super::super::Foundation::BOOLEAN, + pub TaggedTransmit: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERFACE_HARDWARE_TIMESTAMP_CAPABILITIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERFACE_HARDWARE_TIMESTAMP_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERFACE_SOFTWARE_TIMESTAMP_CAPABILITIES { + pub AllReceive: super::super::Foundation::BOOLEAN, + pub AllTransmit: super::super::Foundation::BOOLEAN, + pub TaggedTransmit: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERFACE_SOFTWARE_TIMESTAMP_CAPABILITIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERFACE_SOFTWARE_TIMESTAMP_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERFACE_TIMESTAMP_CAPABILITIES { + pub HardwareClockFrequencyHz: u64, + pub SupportsCrossTimestamp: super::super::Foundation::BOOLEAN, + pub HardwareCapabilities: INTERFACE_HARDWARE_TIMESTAMP_CAPABILITIES, + pub SoftwareCapabilities: INTERFACE_SOFTWARE_TIMESTAMP_CAPABILITIES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERFACE_TIMESTAMP_CAPABILITIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERFACE_TIMESTAMP_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IPV6_ADDRESS_EX { + pub sin6_port: u16, + pub sin6_flowinfo: u32, + pub sin6_addr: [u16; 8], + pub sin6_scope_id: u32, +} +impl ::core::marker::Copy for IPV6_ADDRESS_EX {} +impl ::core::clone::Clone for IPV6_ADDRESS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct IP_ADAPTER_ADDRESSES_LH { + pub Anonymous1: IP_ADAPTER_ADDRESSES_LH_0, + pub Next: *mut IP_ADAPTER_ADDRESSES_LH, + pub AdapterName: ::windows_sys::core::PSTR, + pub FirstUnicastAddress: *mut IP_ADAPTER_UNICAST_ADDRESS_LH, + pub FirstAnycastAddress: *mut IP_ADAPTER_ANYCAST_ADDRESS_XP, + pub FirstMulticastAddress: *mut IP_ADAPTER_MULTICAST_ADDRESS_XP, + pub FirstDnsServerAddress: *mut IP_ADAPTER_DNS_SERVER_ADDRESS_XP, + pub DnsSuffix: ::windows_sys::core::PWSTR, + pub Description: ::windows_sys::core::PWSTR, + pub FriendlyName: ::windows_sys::core::PWSTR, + pub PhysicalAddress: [u8; 8], + pub PhysicalAddressLength: u32, + pub Anonymous2: IP_ADAPTER_ADDRESSES_LH_1, + pub Mtu: u32, + pub IfType: u32, + pub OperStatus: super::Ndis::IF_OPER_STATUS, + pub Ipv6IfIndex: u32, + pub ZoneIndices: [u32; 16], + pub FirstPrefix: *mut IP_ADAPTER_PREFIX_XP, + pub TransmitLinkSpeed: u64, + pub ReceiveLinkSpeed: u64, + pub FirstWinsServerAddress: *mut IP_ADAPTER_WINS_SERVER_ADDRESS_LH, + pub FirstGatewayAddress: *mut IP_ADAPTER_GATEWAY_ADDRESS_LH, + pub Ipv4Metric: u32, + pub Ipv6Metric: u32, + pub Luid: super::Ndis::NET_LUID_LH, + pub Dhcpv4Server: super::super::Networking::WinSock::SOCKET_ADDRESS, + pub CompartmentId: u32, + pub NetworkGuid: ::windows_sys::core::GUID, + pub ConnectionType: super::Ndis::NET_IF_CONNECTION_TYPE, + pub TunnelType: super::Ndis::TUNNEL_TYPE, + pub Dhcpv6Server: super::super::Networking::WinSock::SOCKET_ADDRESS, + pub Dhcpv6ClientDuid: [u8; 130], + pub Dhcpv6ClientDuidLength: u32, + pub Dhcpv6Iaid: u32, + pub FirstDnsSuffix: *mut IP_ADAPTER_DNS_SUFFIX, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for IP_ADAPTER_ADDRESSES_LH {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for IP_ADAPTER_ADDRESSES_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub union IP_ADAPTER_ADDRESSES_LH_0 { + pub Alignment: u64, + pub Anonymous: IP_ADAPTER_ADDRESSES_LH_0_0, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for IP_ADAPTER_ADDRESSES_LH_0 {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for IP_ADAPTER_ADDRESSES_LH_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct IP_ADAPTER_ADDRESSES_LH_0_0 { + pub Length: u32, + pub IfIndex: u32, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for IP_ADAPTER_ADDRESSES_LH_0_0 {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for IP_ADAPTER_ADDRESSES_LH_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub union IP_ADAPTER_ADDRESSES_LH_1 { + pub Flags: u32, + pub Anonymous: IP_ADAPTER_ADDRESSES_LH_1_0, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for IP_ADAPTER_ADDRESSES_LH_1 {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for IP_ADAPTER_ADDRESSES_LH_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct IP_ADAPTER_ADDRESSES_LH_1_0 { + pub _bitfield: u32, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for IP_ADAPTER_ADDRESSES_LH_1_0 {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for IP_ADAPTER_ADDRESSES_LH_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct IP_ADAPTER_ADDRESSES_XP { + pub Anonymous: IP_ADAPTER_ADDRESSES_XP_0, + pub Next: *mut IP_ADAPTER_ADDRESSES_XP, + pub AdapterName: ::windows_sys::core::PSTR, + pub FirstUnicastAddress: *mut IP_ADAPTER_UNICAST_ADDRESS_XP, + pub FirstAnycastAddress: *mut IP_ADAPTER_ANYCAST_ADDRESS_XP, + pub FirstMulticastAddress: *mut IP_ADAPTER_MULTICAST_ADDRESS_XP, + pub FirstDnsServerAddress: *mut IP_ADAPTER_DNS_SERVER_ADDRESS_XP, + pub DnsSuffix: ::windows_sys::core::PWSTR, + pub Description: ::windows_sys::core::PWSTR, + pub FriendlyName: ::windows_sys::core::PWSTR, + pub PhysicalAddress: [u8; 8], + pub PhysicalAddressLength: u32, + pub Flags: u32, + pub Mtu: u32, + pub IfType: u32, + pub OperStatus: super::Ndis::IF_OPER_STATUS, + pub Ipv6IfIndex: u32, + pub ZoneIndices: [u32; 16], + pub FirstPrefix: *mut IP_ADAPTER_PREFIX_XP, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for IP_ADAPTER_ADDRESSES_XP {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for IP_ADAPTER_ADDRESSES_XP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub union IP_ADAPTER_ADDRESSES_XP_0 { + pub Alignment: u64, + pub Anonymous: IP_ADAPTER_ADDRESSES_XP_0_0, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for IP_ADAPTER_ADDRESSES_XP_0 {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for IP_ADAPTER_ADDRESSES_XP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct IP_ADAPTER_ADDRESSES_XP_0_0 { + pub Length: u32, + pub IfIndex: u32, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for IP_ADAPTER_ADDRESSES_XP_0_0 {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for IP_ADAPTER_ADDRESSES_XP_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_ANYCAST_ADDRESS_XP { + pub Anonymous: IP_ADAPTER_ANYCAST_ADDRESS_XP_0, + pub Next: *mut IP_ADAPTER_ANYCAST_ADDRESS_XP, + pub Address: super::super::Networking::WinSock::SOCKET_ADDRESS, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_ANYCAST_ADDRESS_XP {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_ANYCAST_ADDRESS_XP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union IP_ADAPTER_ANYCAST_ADDRESS_XP_0 { + pub Alignment: u64, + pub Anonymous: IP_ADAPTER_ANYCAST_ADDRESS_XP_0_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_ANYCAST_ADDRESS_XP_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_ANYCAST_ADDRESS_XP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_ANYCAST_ADDRESS_XP_0_0 { + pub Length: u32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_ANYCAST_ADDRESS_XP_0_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_ANYCAST_ADDRESS_XP_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_DNS_SERVER_ADDRESS_XP { + pub Anonymous: IP_ADAPTER_DNS_SERVER_ADDRESS_XP_0, + pub Next: *mut IP_ADAPTER_DNS_SERVER_ADDRESS_XP, + pub Address: super::super::Networking::WinSock::SOCKET_ADDRESS, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_DNS_SERVER_ADDRESS_XP {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_DNS_SERVER_ADDRESS_XP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union IP_ADAPTER_DNS_SERVER_ADDRESS_XP_0 { + pub Alignment: u64, + pub Anonymous: IP_ADAPTER_DNS_SERVER_ADDRESS_XP_0_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_DNS_SERVER_ADDRESS_XP_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_DNS_SERVER_ADDRESS_XP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_DNS_SERVER_ADDRESS_XP_0_0 { + pub Length: u32, + pub Reserved: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_DNS_SERVER_ADDRESS_XP_0_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_DNS_SERVER_ADDRESS_XP_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_ADAPTER_DNS_SUFFIX { + pub Next: *mut IP_ADAPTER_DNS_SUFFIX, + pub String: [u16; 256], +} +impl ::core::marker::Copy for IP_ADAPTER_DNS_SUFFIX {} +impl ::core::clone::Clone for IP_ADAPTER_DNS_SUFFIX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_GATEWAY_ADDRESS_LH { + pub Anonymous: IP_ADAPTER_GATEWAY_ADDRESS_LH_0, + pub Next: *mut IP_ADAPTER_GATEWAY_ADDRESS_LH, + pub Address: super::super::Networking::WinSock::SOCKET_ADDRESS, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_GATEWAY_ADDRESS_LH {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_GATEWAY_ADDRESS_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union IP_ADAPTER_GATEWAY_ADDRESS_LH_0 { + pub Alignment: u64, + pub Anonymous: IP_ADAPTER_GATEWAY_ADDRESS_LH_0_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_GATEWAY_ADDRESS_LH_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_GATEWAY_ADDRESS_LH_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_GATEWAY_ADDRESS_LH_0_0 { + pub Length: u32, + pub Reserved: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_GATEWAY_ADDRESS_LH_0_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_GATEWAY_ADDRESS_LH_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_ADAPTER_INDEX_MAP { + pub Index: u32, + pub Name: [u16; 128], +} +impl ::core::marker::Copy for IP_ADAPTER_INDEX_MAP {} +impl ::core::clone::Clone for IP_ADAPTER_INDEX_MAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IP_ADAPTER_INFO { + pub Next: *mut IP_ADAPTER_INFO, + pub ComboIndex: u32, + pub AdapterName: [u8; 260], + pub Description: [u8; 132], + pub AddressLength: u32, + pub Address: [u8; 8], + pub Index: u32, + pub Type: u32, + pub DhcpEnabled: u32, + pub CurrentIpAddress: *mut IP_ADDR_STRING, + pub IpAddressList: IP_ADDR_STRING, + pub GatewayList: IP_ADDR_STRING, + pub DhcpServer: IP_ADDR_STRING, + pub HaveWins: super::super::Foundation::BOOL, + pub PrimaryWinsServer: IP_ADDR_STRING, + pub SecondaryWinsServer: IP_ADDR_STRING, + pub LeaseObtained: i64, + pub LeaseExpires: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IP_ADAPTER_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IP_ADAPTER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_MULTICAST_ADDRESS_XP { + pub Anonymous: IP_ADAPTER_MULTICAST_ADDRESS_XP_0, + pub Next: *mut IP_ADAPTER_MULTICAST_ADDRESS_XP, + pub Address: super::super::Networking::WinSock::SOCKET_ADDRESS, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_MULTICAST_ADDRESS_XP {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_MULTICAST_ADDRESS_XP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union IP_ADAPTER_MULTICAST_ADDRESS_XP_0 { + pub Alignment: u64, + pub Anonymous: IP_ADAPTER_MULTICAST_ADDRESS_XP_0_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_MULTICAST_ADDRESS_XP_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_MULTICAST_ADDRESS_XP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_MULTICAST_ADDRESS_XP_0_0 { + pub Length: u32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_MULTICAST_ADDRESS_XP_0_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_MULTICAST_ADDRESS_XP_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_ADAPTER_ORDER_MAP { + pub NumAdapters: u32, + pub AdapterOrder: [u32; 1], +} +impl ::core::marker::Copy for IP_ADAPTER_ORDER_MAP {} +impl ::core::clone::Clone for IP_ADAPTER_ORDER_MAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_PREFIX_XP { + pub Anonymous: IP_ADAPTER_PREFIX_XP_0, + pub Next: *mut IP_ADAPTER_PREFIX_XP, + pub Address: super::super::Networking::WinSock::SOCKET_ADDRESS, + pub PrefixLength: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_PREFIX_XP {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_PREFIX_XP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union IP_ADAPTER_PREFIX_XP_0 { + pub Alignment: u64, + pub Anonymous: IP_ADAPTER_PREFIX_XP_0_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_PREFIX_XP_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_PREFIX_XP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_PREFIX_XP_0_0 { + pub Length: u32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_PREFIX_XP_0_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_PREFIX_XP_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_UNICAST_ADDRESS_LH { + pub Anonymous: IP_ADAPTER_UNICAST_ADDRESS_LH_0, + pub Next: *mut IP_ADAPTER_UNICAST_ADDRESS_LH, + pub Address: super::super::Networking::WinSock::SOCKET_ADDRESS, + pub PrefixOrigin: super::super::Networking::WinSock::NL_PREFIX_ORIGIN, + pub SuffixOrigin: super::super::Networking::WinSock::NL_SUFFIX_ORIGIN, + pub DadState: super::super::Networking::WinSock::NL_DAD_STATE, + pub ValidLifetime: u32, + pub PreferredLifetime: u32, + pub LeaseLifetime: u32, + pub OnLinkPrefixLength: u8, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_UNICAST_ADDRESS_LH {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_UNICAST_ADDRESS_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union IP_ADAPTER_UNICAST_ADDRESS_LH_0 { + pub Alignment: u64, + pub Anonymous: IP_ADAPTER_UNICAST_ADDRESS_LH_0_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_UNICAST_ADDRESS_LH_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_UNICAST_ADDRESS_LH_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_UNICAST_ADDRESS_LH_0_0 { + pub Length: u32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_UNICAST_ADDRESS_LH_0_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_UNICAST_ADDRESS_LH_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_UNICAST_ADDRESS_XP { + pub Anonymous: IP_ADAPTER_UNICAST_ADDRESS_XP_0, + pub Next: *mut IP_ADAPTER_UNICAST_ADDRESS_XP, + pub Address: super::super::Networking::WinSock::SOCKET_ADDRESS, + pub PrefixOrigin: super::super::Networking::WinSock::NL_PREFIX_ORIGIN, + pub SuffixOrigin: super::super::Networking::WinSock::NL_SUFFIX_ORIGIN, + pub DadState: super::super::Networking::WinSock::NL_DAD_STATE, + pub ValidLifetime: u32, + pub PreferredLifetime: u32, + pub LeaseLifetime: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_UNICAST_ADDRESS_XP {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_UNICAST_ADDRESS_XP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union IP_ADAPTER_UNICAST_ADDRESS_XP_0 { + pub Alignment: u64, + pub Anonymous: IP_ADAPTER_UNICAST_ADDRESS_XP_0_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_UNICAST_ADDRESS_XP_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_UNICAST_ADDRESS_XP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_UNICAST_ADDRESS_XP_0_0 { + pub Length: u32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_UNICAST_ADDRESS_XP_0_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_UNICAST_ADDRESS_XP_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_WINS_SERVER_ADDRESS_LH { + pub Anonymous: IP_ADAPTER_WINS_SERVER_ADDRESS_LH_0, + pub Next: *mut IP_ADAPTER_WINS_SERVER_ADDRESS_LH, + pub Address: super::super::Networking::WinSock::SOCKET_ADDRESS, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_WINS_SERVER_ADDRESS_LH {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_WINS_SERVER_ADDRESS_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union IP_ADAPTER_WINS_SERVER_ADDRESS_LH_0 { + pub Alignment: u64, + pub Anonymous: IP_ADAPTER_WINS_SERVER_ADDRESS_LH_0_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_WINS_SERVER_ADDRESS_LH_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_WINS_SERVER_ADDRESS_LH_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADAPTER_WINS_SERVER_ADDRESS_LH_0_0 { + pub Length: u32, + pub Reserved: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADAPTER_WINS_SERVER_ADDRESS_LH_0_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADAPTER_WINS_SERVER_ADDRESS_LH_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct IP_ADDRESS_PREFIX { + pub Prefix: super::super::Networking::WinSock::SOCKADDR_INET, + pub PrefixLength: u8, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for IP_ADDRESS_PREFIX {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for IP_ADDRESS_PREFIX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_ADDRESS_STRING { + pub String: [u8; 16], +} +impl ::core::marker::Copy for IP_ADDRESS_STRING {} +impl ::core::clone::Clone for IP_ADDRESS_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_ADDR_STRING { + pub Next: *mut IP_ADDR_STRING, + pub IpAddress: IP_ADDRESS_STRING, + pub IpMask: IP_ADDRESS_STRING, + pub Context: u32, +} +impl ::core::marker::Copy for IP_ADDR_STRING {} +impl ::core::clone::Clone for IP_ADDR_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_INTERFACE_INFO { + pub NumAdapters: i32, + pub Adapter: [IP_ADAPTER_INDEX_MAP; 1], +} +impl ::core::marker::Copy for IP_INTERFACE_INFO {} +impl ::core::clone::Clone for IP_INTERFACE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_INTERFACE_NAME_INFO_W2KSP1 { + pub Index: u32, + pub MediaType: u32, + pub ConnectionType: u8, + pub AccessType: u8, + pub DeviceGuid: ::windows_sys::core::GUID, + pub InterfaceGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for IP_INTERFACE_NAME_INFO_W2KSP1 {} +impl ::core::clone::Clone for IP_INTERFACE_NAME_INFO_W2KSP1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_MCAST_COUNTER_INFO { + pub InMcastOctets: u64, + pub OutMcastOctets: u64, + pub InMcastPkts: u64, + pub OutMcastPkts: u64, +} +impl ::core::marker::Copy for IP_MCAST_COUNTER_INFO {} +impl ::core::clone::Clone for IP_MCAST_COUNTER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_OPTION_INFORMATION { + pub Ttl: u8, + pub Tos: u8, + pub Flags: u8, + pub OptionsSize: u8, + pub OptionsData: *mut u8, +} +impl ::core::marker::Copy for IP_OPTION_INFORMATION {} +impl ::core::clone::Clone for IP_OPTION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct IP_OPTION_INFORMATION32 { + pub Ttl: u8, + pub Tos: u8, + pub Flags: u8, + pub OptionsSize: u8, + pub OptionsData: *mut u8, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for IP_OPTION_INFORMATION32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for IP_OPTION_INFORMATION32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_PER_ADAPTER_INFO_W2KSP1 { + pub AutoconfigEnabled: u32, + pub AutoconfigActive: u32, + pub CurrentDnsServer: *mut IP_ADDR_STRING, + pub DnsServerList: IP_ADDR_STRING, +} +impl ::core::marker::Copy for IP_PER_ADAPTER_INFO_W2KSP1 {} +impl ::core::clone::Clone for IP_PER_ADAPTER_INFO_W2KSP1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_UNIDIRECTIONAL_ADAPTER_ADDRESS { + pub NumAdapters: u32, + pub Address: [u32; 1], +} +impl ::core::marker::Copy for IP_UNIDIRECTIONAL_ADAPTER_ADDRESS {} +impl ::core::clone::Clone for IP_UNIDIRECTIONAL_ADAPTER_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIBICMPINFO { + pub icmpInStats: MIBICMPSTATS, + pub icmpOutStats: MIBICMPSTATS, +} +impl ::core::marker::Copy for MIBICMPINFO {} +impl ::core::clone::Clone for MIBICMPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIBICMPSTATS { + pub dwMsgs: u32, + pub dwErrors: u32, + pub dwDestUnreachs: u32, + pub dwTimeExcds: u32, + pub dwParmProbs: u32, + pub dwSrcQuenchs: u32, + pub dwRedirects: u32, + pub dwEchos: u32, + pub dwEchoReps: u32, + pub dwTimestamps: u32, + pub dwTimestampReps: u32, + pub dwAddrMasks: u32, + pub dwAddrMaskReps: u32, +} +impl ::core::marker::Copy for MIBICMPSTATS {} +impl ::core::clone::Clone for MIBICMPSTATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIBICMPSTATS_EX_XPSP1 { + pub dwMsgs: u32, + pub dwErrors: u32, + pub rgdwTypeCount: [u32; 256], +} +impl ::core::marker::Copy for MIBICMPSTATS_EX_XPSP1 {} +impl ::core::clone::Clone for MIBICMPSTATS_EX_XPSP1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_ANYCASTIPADDRESS_ROW { + pub Address: super::super::Networking::WinSock::SOCKADDR_INET, + pub InterfaceLuid: super::Ndis::NET_LUID_LH, + pub InterfaceIndex: u32, + pub ScopeId: super::super::Networking::WinSock::SCOPE_ID, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_ANYCASTIPADDRESS_ROW {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_ANYCASTIPADDRESS_ROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_ANYCASTIPADDRESS_TABLE { + pub NumEntries: u32, + pub Table: [MIB_ANYCASTIPADDRESS_ROW; 1], +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_ANYCASTIPADDRESS_TABLE {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_ANYCASTIPADDRESS_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_BEST_IF { + pub dwDestAddr: u32, + pub dwIfIndex: u32, +} +impl ::core::marker::Copy for MIB_BEST_IF {} +impl ::core::clone::Clone for MIB_BEST_IF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_BOUNDARYROW { + pub dwGroupAddress: u32, + pub dwGroupMask: u32, +} +impl ::core::marker::Copy for MIB_BOUNDARYROW {} +impl ::core::clone::Clone for MIB_BOUNDARYROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_ICMP { + pub stats: MIBICMPINFO, +} +impl ::core::marker::Copy for MIB_ICMP {} +impl ::core::clone::Clone for MIB_ICMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_ICMP_EX_XPSP1 { + pub icmpInStats: MIBICMPSTATS_EX_XPSP1, + pub icmpOutStats: MIBICMPSTATS_EX_XPSP1, +} +impl ::core::marker::Copy for MIB_ICMP_EX_XPSP1 {} +impl ::core::clone::Clone for MIB_ICMP_EX_XPSP1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IFNUMBER { + pub dwValue: u32, +} +impl ::core::marker::Copy for MIB_IFNUMBER {} +impl ::core::clone::Clone for MIB_IFNUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IFROW { + pub wszName: [u16; 256], + pub dwIndex: u32, + pub dwType: u32, + pub dwMtu: u32, + pub dwSpeed: u32, + pub dwPhysAddrLen: u32, + pub bPhysAddr: [u8; 8], + pub dwAdminStatus: u32, + pub dwOperStatus: INTERNAL_IF_OPER_STATUS, + pub dwLastChange: u32, + pub dwInOctets: u32, + pub dwInUcastPkts: u32, + pub dwInNUcastPkts: u32, + pub dwInDiscards: u32, + pub dwInErrors: u32, + pub dwInUnknownProtos: u32, + pub dwOutOctets: u32, + pub dwOutUcastPkts: u32, + pub dwOutNUcastPkts: u32, + pub dwOutDiscards: u32, + pub dwOutErrors: u32, + pub dwOutQLen: u32, + pub dwDescrLen: u32, + pub bDescr: [u8; 256], +} +impl ::core::marker::Copy for MIB_IFROW {} +impl ::core::clone::Clone for MIB_IFROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IFSTACK_ROW { + pub HigherLayerInterfaceIndex: u32, + pub LowerLayerInterfaceIndex: u32, +} +impl ::core::marker::Copy for MIB_IFSTACK_ROW {} +impl ::core::clone::Clone for MIB_IFSTACK_ROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IFSTACK_TABLE { + pub NumEntries: u32, + pub Table: [MIB_IFSTACK_ROW; 1], +} +impl ::core::marker::Copy for MIB_IFSTACK_TABLE {} +impl ::core::clone::Clone for MIB_IFSTACK_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MIB_IFSTATUS { + pub dwIfIndex: u32, + pub dwAdminStatus: u32, + pub dwOperationalStatus: u32, + pub bMHbeatActive: super::super::Foundation::BOOL, + pub bMHbeatAlive: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MIB_IFSTATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MIB_IFSTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IFTABLE { + pub dwNumEntries: u32, + pub table: [MIB_IFROW; 1], +} +impl ::core::marker::Copy for MIB_IFTABLE {} +impl ::core::clone::Clone for MIB_IFTABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct MIB_IF_ROW2 { + pub InterfaceLuid: super::Ndis::NET_LUID_LH, + pub InterfaceIndex: u32, + pub InterfaceGuid: ::windows_sys::core::GUID, + pub Alias: [u16; 257], + pub Description: [u16; 257], + pub PhysicalAddressLength: u32, + pub PhysicalAddress: [u8; 32], + pub PermanentPhysicalAddress: [u8; 32], + pub Mtu: u32, + pub Type: u32, + pub TunnelType: super::Ndis::TUNNEL_TYPE, + pub MediaType: super::Ndis::NDIS_MEDIUM, + pub PhysicalMediumType: super::Ndis::NDIS_PHYSICAL_MEDIUM, + pub AccessType: super::Ndis::NET_IF_ACCESS_TYPE, + pub DirectionType: super::Ndis::NET_IF_DIRECTION_TYPE, + pub InterfaceAndOperStatusFlags: MIB_IF_ROW2_0, + pub OperStatus: super::Ndis::IF_OPER_STATUS, + pub AdminStatus: super::Ndis::NET_IF_ADMIN_STATUS, + pub MediaConnectState: super::Ndis::NET_IF_MEDIA_CONNECT_STATE, + pub NetworkGuid: ::windows_sys::core::GUID, + pub ConnectionType: super::Ndis::NET_IF_CONNECTION_TYPE, + pub TransmitLinkSpeed: u64, + pub ReceiveLinkSpeed: u64, + pub InOctets: u64, + pub InUcastPkts: u64, + pub InNUcastPkts: u64, + pub InDiscards: u64, + pub InErrors: u64, + pub InUnknownProtos: u64, + pub InUcastOctets: u64, + pub InMulticastOctets: u64, + pub InBroadcastOctets: u64, + pub OutOctets: u64, + pub OutUcastPkts: u64, + pub OutNUcastPkts: u64, + pub OutDiscards: u64, + pub OutErrors: u64, + pub OutUcastOctets: u64, + pub OutMulticastOctets: u64, + pub OutBroadcastOctets: u64, + pub OutQLen: u64, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for MIB_IF_ROW2 {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for MIB_IF_ROW2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct MIB_IF_ROW2_0 { + pub _bitfield: u8, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for MIB_IF_ROW2_0 {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for MIB_IF_ROW2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct MIB_IF_TABLE2 { + pub NumEntries: u32, + pub Table: [MIB_IF_ROW2; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for MIB_IF_TABLE2 {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for MIB_IF_TABLE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_INVERTEDIFSTACK_ROW { + pub LowerLayerInterfaceIndex: u32, + pub HigherLayerInterfaceIndex: u32, +} +impl ::core::marker::Copy for MIB_INVERTEDIFSTACK_ROW {} +impl ::core::clone::Clone for MIB_INVERTEDIFSTACK_ROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_INVERTEDIFSTACK_TABLE { + pub NumEntries: u32, + pub Table: [MIB_INVERTEDIFSTACK_ROW; 1], +} +impl ::core::marker::Copy for MIB_INVERTEDIFSTACK_TABLE {} +impl ::core::clone::Clone for MIB_INVERTEDIFSTACK_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPADDRROW_W2K { + pub dwAddr: u32, + pub dwIndex: u32, + pub dwMask: u32, + pub dwBCastAddr: u32, + pub dwReasmSize: u32, + pub unused1: u16, + pub unused2: u16, +} +impl ::core::marker::Copy for MIB_IPADDRROW_W2K {} +impl ::core::clone::Clone for MIB_IPADDRROW_W2K { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPADDRROW_XP { + pub dwAddr: u32, + pub dwIndex: u32, + pub dwMask: u32, + pub dwBCastAddr: u32, + pub dwReasmSize: u32, + pub unused1: u16, + pub wType: u16, +} +impl ::core::marker::Copy for MIB_IPADDRROW_XP {} +impl ::core::clone::Clone for MIB_IPADDRROW_XP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPADDRTABLE { + pub dwNumEntries: u32, + pub table: [MIB_IPADDRROW_XP; 1], +} +impl ::core::marker::Copy for MIB_IPADDRTABLE {} +impl ::core::clone::Clone for MIB_IPADDRTABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct MIB_IPDESTROW { + pub ForwardRow: MIB_IPFORWARDROW, + pub dwForwardPreference: u32, + pub dwForwardViewSet: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MIB_IPDESTROW {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MIB_IPDESTROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct MIB_IPDESTTABLE { + pub dwNumEntries: u32, + pub table: [MIB_IPDESTROW; 1], +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MIB_IPDESTTABLE {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MIB_IPDESTTABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPFORWARDNUMBER { + pub dwValue: u32, +} +impl ::core::marker::Copy for MIB_IPFORWARDNUMBER {} +impl ::core::clone::Clone for MIB_IPFORWARDNUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct MIB_IPFORWARDROW { + pub dwForwardDest: u32, + pub dwForwardMask: u32, + pub dwForwardPolicy: u32, + pub dwForwardNextHop: u32, + pub dwForwardIfIndex: u32, + pub Anonymous1: MIB_IPFORWARDROW_0, + pub Anonymous2: MIB_IPFORWARDROW_1, + pub dwForwardAge: u32, + pub dwForwardNextHopAS: u32, + pub dwForwardMetric1: u32, + pub dwForwardMetric2: u32, + pub dwForwardMetric3: u32, + pub dwForwardMetric4: u32, + pub dwForwardMetric5: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MIB_IPFORWARDROW {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MIB_IPFORWARDROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union MIB_IPFORWARDROW_0 { + pub dwForwardType: u32, + pub ForwardType: MIB_IPFORWARD_TYPE, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MIB_IPFORWARDROW_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MIB_IPFORWARDROW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union MIB_IPFORWARDROW_1 { + pub dwForwardProto: u32, + pub ForwardProto: super::super::Networking::WinSock::NL_ROUTE_PROTOCOL, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MIB_IPFORWARDROW_1 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MIB_IPFORWARDROW_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct MIB_IPFORWARDTABLE { + pub dwNumEntries: u32, + pub table: [MIB_IPFORWARDROW; 1], +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MIB_IPFORWARDTABLE {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MIB_IPFORWARDTABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_IPFORWARD_ROW2 { + pub InterfaceLuid: super::Ndis::NET_LUID_LH, + pub InterfaceIndex: u32, + pub DestinationPrefix: IP_ADDRESS_PREFIX, + pub NextHop: super::super::Networking::WinSock::SOCKADDR_INET, + pub SitePrefixLength: u8, + pub ValidLifetime: u32, + pub PreferredLifetime: u32, + pub Metric: u32, + pub Protocol: super::super::Networking::WinSock::NL_ROUTE_PROTOCOL, + pub Loopback: super::super::Foundation::BOOLEAN, + pub AutoconfigureAddress: super::super::Foundation::BOOLEAN, + pub Publish: super::super::Foundation::BOOLEAN, + pub Immortal: super::super::Foundation::BOOLEAN, + pub Age: u32, + pub Origin: super::super::Networking::WinSock::NL_ROUTE_ORIGIN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_IPFORWARD_ROW2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_IPFORWARD_ROW2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_IPFORWARD_TABLE2 { + pub NumEntries: u32, + pub Table: [MIB_IPFORWARD_ROW2; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_IPFORWARD_TABLE2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_IPFORWARD_TABLE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_IPINTERFACE_ROW { + pub Family: super::super::Networking::WinSock::ADDRESS_FAMILY, + pub InterfaceLuid: super::Ndis::NET_LUID_LH, + pub InterfaceIndex: u32, + pub MaxReassemblySize: u32, + pub InterfaceIdentifier: u64, + pub MinRouterAdvertisementInterval: u32, + pub MaxRouterAdvertisementInterval: u32, + pub AdvertisingEnabled: super::super::Foundation::BOOLEAN, + pub ForwardingEnabled: super::super::Foundation::BOOLEAN, + pub WeakHostSend: super::super::Foundation::BOOLEAN, + pub WeakHostReceive: super::super::Foundation::BOOLEAN, + pub UseAutomaticMetric: super::super::Foundation::BOOLEAN, + pub UseNeighborUnreachabilityDetection: super::super::Foundation::BOOLEAN, + pub ManagedAddressConfigurationSupported: super::super::Foundation::BOOLEAN, + pub OtherStatefulConfigurationSupported: super::super::Foundation::BOOLEAN, + pub AdvertiseDefaultRoute: super::super::Foundation::BOOLEAN, + pub RouterDiscoveryBehavior: super::super::Networking::WinSock::NL_ROUTER_DISCOVERY_BEHAVIOR, + pub DadTransmits: u32, + pub BaseReachableTime: u32, + pub RetransmitTime: u32, + pub PathMtuDiscoveryTimeout: u32, + pub LinkLocalAddressBehavior: super::super::Networking::WinSock::NL_LINK_LOCAL_ADDRESS_BEHAVIOR, + pub LinkLocalAddressTimeout: u32, + pub ZoneIndices: [u32; 16], + pub SitePrefixLength: u32, + pub Metric: u32, + pub NlMtu: u32, + pub Connected: super::super::Foundation::BOOLEAN, + pub SupportsWakeUpPatterns: super::super::Foundation::BOOLEAN, + pub SupportsNeighborDiscovery: super::super::Foundation::BOOLEAN, + pub SupportsRouterDiscovery: super::super::Foundation::BOOLEAN, + pub ReachableTime: u32, + pub TransmitOffload: super::super::Networking::WinSock::NL_INTERFACE_OFFLOAD_ROD, + pub ReceiveOffload: super::super::Networking::WinSock::NL_INTERFACE_OFFLOAD_ROD, + pub DisableDefaultRoutes: super::super::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_IPINTERFACE_ROW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_IPINTERFACE_ROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_IPINTERFACE_TABLE { + pub NumEntries: u32, + pub Table: [MIB_IPINTERFACE_ROW; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_IPINTERFACE_TABLE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_IPINTERFACE_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPMCAST_BOUNDARY { + pub dwIfIndex: u32, + pub dwGroupAddress: u32, + pub dwGroupMask: u32, + pub dwStatus: u32, +} +impl ::core::marker::Copy for MIB_IPMCAST_BOUNDARY {} +impl ::core::clone::Clone for MIB_IPMCAST_BOUNDARY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPMCAST_BOUNDARY_TABLE { + pub dwNumEntries: u32, + pub table: [MIB_IPMCAST_BOUNDARY; 1], +} +impl ::core::marker::Copy for MIB_IPMCAST_BOUNDARY_TABLE {} +impl ::core::clone::Clone for MIB_IPMCAST_BOUNDARY_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPMCAST_GLOBAL { + pub dwEnable: u32, +} +impl ::core::marker::Copy for MIB_IPMCAST_GLOBAL {} +impl ::core::clone::Clone for MIB_IPMCAST_GLOBAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPMCAST_IF_ENTRY { + pub dwIfIndex: u32, + pub dwTtl: u32, + pub dwProtocol: u32, + pub dwRateLimit: u32, + pub ulInMcastOctets: u32, + pub ulOutMcastOctets: u32, +} +impl ::core::marker::Copy for MIB_IPMCAST_IF_ENTRY {} +impl ::core::clone::Clone for MIB_IPMCAST_IF_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPMCAST_IF_TABLE { + pub dwNumEntries: u32, + pub table: [MIB_IPMCAST_IF_ENTRY; 1], +} +impl ::core::marker::Copy for MIB_IPMCAST_IF_TABLE {} +impl ::core::clone::Clone for MIB_IPMCAST_IF_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPMCAST_MFE { + pub dwGroup: u32, + pub dwSource: u32, + pub dwSrcMask: u32, + pub dwUpStrmNgbr: u32, + pub dwInIfIndex: u32, + pub dwInIfProtocol: u32, + pub dwRouteProtocol: u32, + pub dwRouteNetwork: u32, + pub dwRouteMask: u32, + pub ulUpTime: u32, + pub ulExpiryTime: u32, + pub ulTimeOut: u32, + pub ulNumOutIf: u32, + pub fFlags: u32, + pub dwReserved: u32, + pub rgmioOutInfo: [MIB_IPMCAST_OIF_XP; 1], +} +impl ::core::marker::Copy for MIB_IPMCAST_MFE {} +impl ::core::clone::Clone for MIB_IPMCAST_MFE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPMCAST_MFE_STATS { + pub dwGroup: u32, + pub dwSource: u32, + pub dwSrcMask: u32, + pub dwUpStrmNgbr: u32, + pub dwInIfIndex: u32, + pub dwInIfProtocol: u32, + pub dwRouteProtocol: u32, + pub dwRouteNetwork: u32, + pub dwRouteMask: u32, + pub ulUpTime: u32, + pub ulExpiryTime: u32, + pub ulNumOutIf: u32, + pub ulInPkts: u32, + pub ulInOctets: u32, + pub ulPktsDifferentIf: u32, + pub ulQueueOverflow: u32, + pub rgmiosOutStats: [MIB_IPMCAST_OIF_STATS_LH; 1], +} +impl ::core::marker::Copy for MIB_IPMCAST_MFE_STATS {} +impl ::core::clone::Clone for MIB_IPMCAST_MFE_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPMCAST_MFE_STATS_EX_XP { + pub dwGroup: u32, + pub dwSource: u32, + pub dwSrcMask: u32, + pub dwUpStrmNgbr: u32, + pub dwInIfIndex: u32, + pub dwInIfProtocol: u32, + pub dwRouteProtocol: u32, + pub dwRouteNetwork: u32, + pub dwRouteMask: u32, + pub ulUpTime: u32, + pub ulExpiryTime: u32, + pub ulNumOutIf: u32, + pub ulInPkts: u32, + pub ulInOctets: u32, + pub ulPktsDifferentIf: u32, + pub ulQueueOverflow: u32, + pub ulUninitMfe: u32, + pub ulNegativeMfe: u32, + pub ulInDiscards: u32, + pub ulInHdrErrors: u32, + pub ulTotalOutPackets: u32, + pub rgmiosOutStats: [MIB_IPMCAST_OIF_STATS_LH; 1], +} +impl ::core::marker::Copy for MIB_IPMCAST_MFE_STATS_EX_XP {} +impl ::core::clone::Clone for MIB_IPMCAST_MFE_STATS_EX_XP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPMCAST_OIF_STATS_LH { + pub dwOutIfIndex: u32, + pub dwNextHopAddr: u32, + pub dwDialContext: u32, + pub ulTtlTooLow: u32, + pub ulFragNeeded: u32, + pub ulOutPackets: u32, + pub ulOutDiscards: u32, +} +impl ::core::marker::Copy for MIB_IPMCAST_OIF_STATS_LH {} +impl ::core::clone::Clone for MIB_IPMCAST_OIF_STATS_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPMCAST_OIF_STATS_W2K { + pub dwOutIfIndex: u32, + pub dwNextHopAddr: u32, + pub pvDialContext: *mut ::core::ffi::c_void, + pub ulTtlTooLow: u32, + pub ulFragNeeded: u32, + pub ulOutPackets: u32, + pub ulOutDiscards: u32, +} +impl ::core::marker::Copy for MIB_IPMCAST_OIF_STATS_W2K {} +impl ::core::clone::Clone for MIB_IPMCAST_OIF_STATS_W2K { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPMCAST_OIF_W2K { + pub dwOutIfIndex: u32, + pub dwNextHopAddr: u32, + pub pvReserved: *mut ::core::ffi::c_void, + pub dwReserved: u32, +} +impl ::core::marker::Copy for MIB_IPMCAST_OIF_W2K {} +impl ::core::clone::Clone for MIB_IPMCAST_OIF_W2K { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPMCAST_OIF_XP { + pub dwOutIfIndex: u32, + pub dwNextHopAddr: u32, + pub dwReserved: u32, + pub dwReserved1: u32, +} +impl ::core::marker::Copy for MIB_IPMCAST_OIF_XP {} +impl ::core::clone::Clone for MIB_IPMCAST_OIF_XP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPMCAST_SCOPE { + pub dwGroupAddress: u32, + pub dwGroupMask: u32, + pub snNameBuffer: [u16; 256], + pub dwStatus: u32, +} +impl ::core::marker::Copy for MIB_IPMCAST_SCOPE {} +impl ::core::clone::Clone for MIB_IPMCAST_SCOPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPNETROW_LH { + pub dwIndex: u32, + pub dwPhysAddrLen: u32, + pub bPhysAddr: [u8; 8], + pub dwAddr: u32, + pub Anonymous: MIB_IPNETROW_LH_0, +} +impl ::core::marker::Copy for MIB_IPNETROW_LH {} +impl ::core::clone::Clone for MIB_IPNETROW_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MIB_IPNETROW_LH_0 { + pub dwType: u32, + pub Type: MIB_IPNET_TYPE, +} +impl ::core::marker::Copy for MIB_IPNETROW_LH_0 {} +impl ::core::clone::Clone for MIB_IPNETROW_LH_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPNETROW_W2K { + pub dwIndex: u32, + pub dwPhysAddrLen: u32, + pub bPhysAddr: [u8; 8], + pub dwAddr: u32, + pub dwType: u32, +} +impl ::core::marker::Copy for MIB_IPNETROW_W2K {} +impl ::core::clone::Clone for MIB_IPNETROW_W2K { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPNETTABLE { + pub dwNumEntries: u32, + pub table: [MIB_IPNETROW_LH; 1], +} +impl ::core::marker::Copy for MIB_IPNETTABLE {} +impl ::core::clone::Clone for MIB_IPNETTABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_IPNET_ROW2 { + pub Address: super::super::Networking::WinSock::SOCKADDR_INET, + pub InterfaceIndex: u32, + pub InterfaceLuid: super::Ndis::NET_LUID_LH, + pub PhysicalAddress: [u8; 32], + pub PhysicalAddressLength: u32, + pub State: super::super::Networking::WinSock::NL_NEIGHBOR_STATE, + pub Anonymous: MIB_IPNET_ROW2_0, + pub ReachabilityTime: MIB_IPNET_ROW2_1, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_IPNET_ROW2 {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_IPNET_ROW2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub union MIB_IPNET_ROW2_0 { + pub Anonymous: MIB_IPNET_ROW2_0_0, + pub Flags: u8, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_IPNET_ROW2_0 {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_IPNET_ROW2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_IPNET_ROW2_0_0 { + pub _bitfield: u8, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_IPNET_ROW2_0_0 {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_IPNET_ROW2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub union MIB_IPNET_ROW2_1 { + pub LastReachable: u32, + pub LastUnreachable: u32, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_IPNET_ROW2_1 {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_IPNET_ROW2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_IPNET_TABLE2 { + pub NumEntries: u32, + pub Table: [MIB_IPNET_ROW2; 1], +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_IPNET_TABLE2 {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_IPNET_TABLE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_IPPATH_ROW { + pub Source: super::super::Networking::WinSock::SOCKADDR_INET, + pub Destination: super::super::Networking::WinSock::SOCKADDR_INET, + pub InterfaceLuid: super::Ndis::NET_LUID_LH, + pub InterfaceIndex: u32, + pub CurrentNextHop: super::super::Networking::WinSock::SOCKADDR_INET, + pub PathMtu: u32, + pub RttMean: u32, + pub RttDeviation: u32, + pub Anonymous: MIB_IPPATH_ROW_0, + pub IsReachable: super::super::Foundation::BOOLEAN, + pub LinkTransmitSpeed: u64, + pub LinkReceiveSpeed: u64, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_IPPATH_ROW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_IPPATH_ROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub union MIB_IPPATH_ROW_0 { + pub LastReachable: u32, + pub LastUnreachable: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_IPPATH_ROW_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_IPPATH_ROW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_IPPATH_TABLE { + pub NumEntries: u32, + pub Table: [MIB_IPPATH_ROW; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_IPPATH_TABLE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_IPPATH_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPSTATS_LH { + pub Anonymous: MIB_IPSTATS_LH_0, + pub dwDefaultTTL: u32, + pub dwInReceives: u32, + pub dwInHdrErrors: u32, + pub dwInAddrErrors: u32, + pub dwForwDatagrams: u32, + pub dwInUnknownProtos: u32, + pub dwInDiscards: u32, + pub dwInDelivers: u32, + pub dwOutRequests: u32, + pub dwRoutingDiscards: u32, + pub dwOutDiscards: u32, + pub dwOutNoRoutes: u32, + pub dwReasmTimeout: u32, + pub dwReasmReqds: u32, + pub dwReasmOks: u32, + pub dwReasmFails: u32, + pub dwFragOks: u32, + pub dwFragFails: u32, + pub dwFragCreates: u32, + pub dwNumIf: u32, + pub dwNumAddr: u32, + pub dwNumRoutes: u32, +} +impl ::core::marker::Copy for MIB_IPSTATS_LH {} +impl ::core::clone::Clone for MIB_IPSTATS_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MIB_IPSTATS_LH_0 { + pub dwForwarding: u32, + pub Forwarding: MIB_IPSTATS_FORWARDING, +} +impl ::core::marker::Copy for MIB_IPSTATS_LH_0 {} +impl ::core::clone::Clone for MIB_IPSTATS_LH_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_IPSTATS_W2K { + pub dwForwarding: u32, + pub dwDefaultTTL: u32, + pub dwInReceives: u32, + pub dwInHdrErrors: u32, + pub dwInAddrErrors: u32, + pub dwForwDatagrams: u32, + pub dwInUnknownProtos: u32, + pub dwInDiscards: u32, + pub dwInDelivers: u32, + pub dwOutRequests: u32, + pub dwRoutingDiscards: u32, + pub dwOutDiscards: u32, + pub dwOutNoRoutes: u32, + pub dwReasmTimeout: u32, + pub dwReasmReqds: u32, + pub dwReasmOks: u32, + pub dwReasmFails: u32, + pub dwFragOks: u32, + pub dwFragFails: u32, + pub dwFragCreates: u32, + pub dwNumIf: u32, + pub dwNumAddr: u32, + pub dwNumRoutes: u32, +} +impl ::core::marker::Copy for MIB_IPSTATS_W2K {} +impl ::core::clone::Clone for MIB_IPSTATS_W2K { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES { + pub InboundBandwidthInformation: super::super::Networking::WinSock::NL_BANDWIDTH_INFORMATION, + pub OutboundBandwidthInformation: super::super::Networking::WinSock::NL_BANDWIDTH_INFORMATION, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_MCAST_LIMIT_ROW { + pub dwTtl: u32, + pub dwRateLimit: u32, +} +impl ::core::marker::Copy for MIB_MCAST_LIMIT_ROW {} +impl ::core::clone::Clone for MIB_MCAST_LIMIT_ROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_MFE_STATS_TABLE { + pub dwNumEntries: u32, + pub table: [MIB_IPMCAST_MFE_STATS; 1], +} +impl ::core::marker::Copy for MIB_MFE_STATS_TABLE {} +impl ::core::clone::Clone for MIB_MFE_STATS_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_MFE_STATS_TABLE_EX_XP { + pub dwNumEntries: u32, + pub table: [*mut MIB_IPMCAST_MFE_STATS_EX_XP; 1], +} +impl ::core::marker::Copy for MIB_MFE_STATS_TABLE_EX_XP {} +impl ::core::clone::Clone for MIB_MFE_STATS_TABLE_EX_XP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_MFE_TABLE { + pub dwNumEntries: u32, + pub table: [MIB_IPMCAST_MFE; 1], +} +impl ::core::marker::Copy for MIB_MFE_TABLE {} +impl ::core::clone::Clone for MIB_MFE_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_MULTICASTIPADDRESS_ROW { + pub Address: super::super::Networking::WinSock::SOCKADDR_INET, + pub InterfaceIndex: u32, + pub InterfaceLuid: super::Ndis::NET_LUID_LH, + pub ScopeId: super::super::Networking::WinSock::SCOPE_ID, +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_MULTICASTIPADDRESS_ROW {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_MULTICASTIPADDRESS_ROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_MULTICASTIPADDRESS_TABLE { + pub NumEntries: u32, + pub Table: [MIB_MULTICASTIPADDRESS_ROW; 1], +} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_MULTICASTIPADDRESS_TABLE {} +#[cfg(all(feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_MULTICASTIPADDRESS_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_OPAQUE_INFO { + pub dwId: u32, + pub Anonymous: MIB_OPAQUE_INFO_0, +} +impl ::core::marker::Copy for MIB_OPAQUE_INFO {} +impl ::core::clone::Clone for MIB_OPAQUE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MIB_OPAQUE_INFO_0 { + pub ullAlign: u64, + pub rgbyData: [u8; 1], +} +impl ::core::marker::Copy for MIB_OPAQUE_INFO_0 {} +impl ::core::clone::Clone for MIB_OPAQUE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_OPAQUE_QUERY { + pub dwVarId: u32, + pub rgdwVarIndex: [u32; 1], +} +impl ::core::marker::Copy for MIB_OPAQUE_QUERY {} +impl ::core::clone::Clone for MIB_OPAQUE_QUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_PROXYARP { + pub dwAddress: u32, + pub dwMask: u32, + pub dwIfIndex: u32, +} +impl ::core::marker::Copy for MIB_PROXYARP {} +impl ::core::clone::Clone for MIB_PROXYARP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MIB_ROUTESTATE { + pub bRoutesSetToStack: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MIB_ROUTESTATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MIB_ROUTESTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct MIB_TCP6ROW { + pub State: MIB_TCP_STATE, + pub LocalAddr: super::super::Networking::WinSock::IN6_ADDR, + pub dwLocalScopeId: u32, + pub dwLocalPort: u32, + pub RemoteAddr: super::super::Networking::WinSock::IN6_ADDR, + pub dwRemoteScopeId: u32, + pub dwRemotePort: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MIB_TCP6ROW {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MIB_TCP6ROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct MIB_TCP6ROW2 { + pub LocalAddr: super::super::Networking::WinSock::IN6_ADDR, + pub dwLocalScopeId: u32, + pub dwLocalPort: u32, + pub RemoteAddr: super::super::Networking::WinSock::IN6_ADDR, + pub dwRemoteScopeId: u32, + pub dwRemotePort: u32, + pub State: MIB_TCP_STATE, + pub dwOwningPid: u32, + pub dwOffloadState: TCP_CONNECTION_OFFLOAD_STATE, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MIB_TCP6ROW2 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MIB_TCP6ROW2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCP6ROW_OWNER_MODULE { + pub ucLocalAddr: [u8; 16], + pub dwLocalScopeId: u32, + pub dwLocalPort: u32, + pub ucRemoteAddr: [u8; 16], + pub dwRemoteScopeId: u32, + pub dwRemotePort: u32, + pub dwState: u32, + pub dwOwningPid: u32, + pub liCreateTimestamp: i64, + pub OwningModuleInfo: [u64; 16], +} +impl ::core::marker::Copy for MIB_TCP6ROW_OWNER_MODULE {} +impl ::core::clone::Clone for MIB_TCP6ROW_OWNER_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCP6ROW_OWNER_PID { + pub ucLocalAddr: [u8; 16], + pub dwLocalScopeId: u32, + pub dwLocalPort: u32, + pub ucRemoteAddr: [u8; 16], + pub dwRemoteScopeId: u32, + pub dwRemotePort: u32, + pub dwState: u32, + pub dwOwningPid: u32, +} +impl ::core::marker::Copy for MIB_TCP6ROW_OWNER_PID {} +impl ::core::clone::Clone for MIB_TCP6ROW_OWNER_PID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct MIB_TCP6TABLE { + pub dwNumEntries: u32, + pub table: [MIB_TCP6ROW; 1], +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MIB_TCP6TABLE {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MIB_TCP6TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct MIB_TCP6TABLE2 { + pub dwNumEntries: u32, + pub table: [MIB_TCP6ROW2; 1], +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MIB_TCP6TABLE2 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MIB_TCP6TABLE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCP6TABLE_OWNER_MODULE { + pub dwNumEntries: u32, + pub table: [MIB_TCP6ROW_OWNER_MODULE; 1], +} +impl ::core::marker::Copy for MIB_TCP6TABLE_OWNER_MODULE {} +impl ::core::clone::Clone for MIB_TCP6TABLE_OWNER_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCP6TABLE_OWNER_PID { + pub dwNumEntries: u32, + pub table: [MIB_TCP6ROW_OWNER_PID; 1], +} +impl ::core::marker::Copy for MIB_TCP6TABLE_OWNER_PID {} +impl ::core::clone::Clone for MIB_TCP6TABLE_OWNER_PID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCPROW2 { + pub dwState: u32, + pub dwLocalAddr: u32, + pub dwLocalPort: u32, + pub dwRemoteAddr: u32, + pub dwRemotePort: u32, + pub dwOwningPid: u32, + pub dwOffloadState: TCP_CONNECTION_OFFLOAD_STATE, +} +impl ::core::marker::Copy for MIB_TCPROW2 {} +impl ::core::clone::Clone for MIB_TCPROW2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCPROW_LH { + pub Anonymous: MIB_TCPROW_LH_0, + pub dwLocalAddr: u32, + pub dwLocalPort: u32, + pub dwRemoteAddr: u32, + pub dwRemotePort: u32, +} +impl ::core::marker::Copy for MIB_TCPROW_LH {} +impl ::core::clone::Clone for MIB_TCPROW_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MIB_TCPROW_LH_0 { + pub dwState: u32, + pub State: MIB_TCP_STATE, +} +impl ::core::marker::Copy for MIB_TCPROW_LH_0 {} +impl ::core::clone::Clone for MIB_TCPROW_LH_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCPROW_OWNER_MODULE { + pub dwState: u32, + pub dwLocalAddr: u32, + pub dwLocalPort: u32, + pub dwRemoteAddr: u32, + pub dwRemotePort: u32, + pub dwOwningPid: u32, + pub liCreateTimestamp: i64, + pub OwningModuleInfo: [u64; 16], +} +impl ::core::marker::Copy for MIB_TCPROW_OWNER_MODULE {} +impl ::core::clone::Clone for MIB_TCPROW_OWNER_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCPROW_OWNER_PID { + pub dwState: u32, + pub dwLocalAddr: u32, + pub dwLocalPort: u32, + pub dwRemoteAddr: u32, + pub dwRemotePort: u32, + pub dwOwningPid: u32, +} +impl ::core::marker::Copy for MIB_TCPROW_OWNER_PID {} +impl ::core::clone::Clone for MIB_TCPROW_OWNER_PID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCPROW_W2K { + pub dwState: u32, + pub dwLocalAddr: u32, + pub dwLocalPort: u32, + pub dwRemoteAddr: u32, + pub dwRemotePort: u32, +} +impl ::core::marker::Copy for MIB_TCPROW_W2K {} +impl ::core::clone::Clone for MIB_TCPROW_W2K { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCPSTATS2 { + pub RtoAlgorithm: TCP_RTO_ALGORITHM, + pub dwRtoMin: u32, + pub dwRtoMax: u32, + pub dwMaxConn: u32, + pub dwActiveOpens: u32, + pub dwPassiveOpens: u32, + pub dwAttemptFails: u32, + pub dwEstabResets: u32, + pub dwCurrEstab: u32, + pub dw64InSegs: u64, + pub dw64OutSegs: u64, + pub dwRetransSegs: u32, + pub dwInErrs: u32, + pub dwOutRsts: u32, + pub dwNumConns: u32, +} +impl ::core::marker::Copy for MIB_TCPSTATS2 {} +impl ::core::clone::Clone for MIB_TCPSTATS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCPSTATS_LH { + pub Anonymous: MIB_TCPSTATS_LH_0, + pub dwRtoMin: u32, + pub dwRtoMax: u32, + pub dwMaxConn: u32, + pub dwActiveOpens: u32, + pub dwPassiveOpens: u32, + pub dwAttemptFails: u32, + pub dwEstabResets: u32, + pub dwCurrEstab: u32, + pub dwInSegs: u32, + pub dwOutSegs: u32, + pub dwRetransSegs: u32, + pub dwInErrs: u32, + pub dwOutRsts: u32, + pub dwNumConns: u32, +} +impl ::core::marker::Copy for MIB_TCPSTATS_LH {} +impl ::core::clone::Clone for MIB_TCPSTATS_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MIB_TCPSTATS_LH_0 { + pub dwRtoAlgorithm: u32, + pub RtoAlgorithm: TCP_RTO_ALGORITHM, +} +impl ::core::marker::Copy for MIB_TCPSTATS_LH_0 {} +impl ::core::clone::Clone for MIB_TCPSTATS_LH_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCPSTATS_W2K { + pub dwRtoAlgorithm: u32, + pub dwRtoMin: u32, + pub dwRtoMax: u32, + pub dwMaxConn: u32, + pub dwActiveOpens: u32, + pub dwPassiveOpens: u32, + pub dwAttemptFails: u32, + pub dwEstabResets: u32, + pub dwCurrEstab: u32, + pub dwInSegs: u32, + pub dwOutSegs: u32, + pub dwRetransSegs: u32, + pub dwInErrs: u32, + pub dwOutRsts: u32, + pub dwNumConns: u32, +} +impl ::core::marker::Copy for MIB_TCPSTATS_W2K {} +impl ::core::clone::Clone for MIB_TCPSTATS_W2K { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCPTABLE { + pub dwNumEntries: u32, + pub table: [MIB_TCPROW_LH; 1], +} +impl ::core::marker::Copy for MIB_TCPTABLE {} +impl ::core::clone::Clone for MIB_TCPTABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCPTABLE2 { + pub dwNumEntries: u32, + pub table: [MIB_TCPROW2; 1], +} +impl ::core::marker::Copy for MIB_TCPTABLE2 {} +impl ::core::clone::Clone for MIB_TCPTABLE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCPTABLE_OWNER_MODULE { + pub dwNumEntries: u32, + pub table: [MIB_TCPROW_OWNER_MODULE; 1], +} +impl ::core::marker::Copy for MIB_TCPTABLE_OWNER_MODULE {} +impl ::core::clone::Clone for MIB_TCPTABLE_OWNER_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_TCPTABLE_OWNER_PID { + pub dwNumEntries: u32, + pub table: [MIB_TCPROW_OWNER_PID; 1], +} +impl ::core::marker::Copy for MIB_TCPTABLE_OWNER_PID {} +impl ::core::clone::Clone for MIB_TCPTABLE_OWNER_PID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct MIB_UDP6ROW { + pub dwLocalAddr: super::super::Networking::WinSock::IN6_ADDR, + pub dwLocalScopeId: u32, + pub dwLocalPort: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MIB_UDP6ROW {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MIB_UDP6ROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDP6ROW2 { + pub ucLocalAddr: [u8; 16], + pub dwLocalScopeId: u32, + pub dwLocalPort: u32, + pub dwOwningPid: u32, + pub liCreateTimestamp: i64, + pub Anonymous: MIB_UDP6ROW2_0, + pub OwningModuleInfo: [u64; 16], + pub ucRemoteAddr: [u8; 16], + pub dwRemoteScopeId: u32, + pub dwRemotePort: u32, +} +impl ::core::marker::Copy for MIB_UDP6ROW2 {} +impl ::core::clone::Clone for MIB_UDP6ROW2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MIB_UDP6ROW2_0 { + pub Anonymous: MIB_UDP6ROW2_0_0, + pub dwFlags: i32, +} +impl ::core::marker::Copy for MIB_UDP6ROW2_0 {} +impl ::core::clone::Clone for MIB_UDP6ROW2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDP6ROW2_0_0 { + pub _bitfield: i32, +} +impl ::core::marker::Copy for MIB_UDP6ROW2_0_0 {} +impl ::core::clone::Clone for MIB_UDP6ROW2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDP6ROW_OWNER_MODULE { + pub ucLocalAddr: [u8; 16], + pub dwLocalScopeId: u32, + pub dwLocalPort: u32, + pub dwOwningPid: u32, + pub liCreateTimestamp: i64, + pub Anonymous: MIB_UDP6ROW_OWNER_MODULE_0, + pub OwningModuleInfo: [u64; 16], +} +impl ::core::marker::Copy for MIB_UDP6ROW_OWNER_MODULE {} +impl ::core::clone::Clone for MIB_UDP6ROW_OWNER_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MIB_UDP6ROW_OWNER_MODULE_0 { + pub Anonymous: MIB_UDP6ROW_OWNER_MODULE_0_0, + pub dwFlags: i32, +} +impl ::core::marker::Copy for MIB_UDP6ROW_OWNER_MODULE_0 {} +impl ::core::clone::Clone for MIB_UDP6ROW_OWNER_MODULE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDP6ROW_OWNER_MODULE_0_0 { + pub _bitfield: i32, +} +impl ::core::marker::Copy for MIB_UDP6ROW_OWNER_MODULE_0_0 {} +impl ::core::clone::Clone for MIB_UDP6ROW_OWNER_MODULE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDP6ROW_OWNER_PID { + pub ucLocalAddr: [u8; 16], + pub dwLocalScopeId: u32, + pub dwLocalPort: u32, + pub dwOwningPid: u32, +} +impl ::core::marker::Copy for MIB_UDP6ROW_OWNER_PID {} +impl ::core::clone::Clone for MIB_UDP6ROW_OWNER_PID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct MIB_UDP6TABLE { + pub dwNumEntries: u32, + pub table: [MIB_UDP6ROW; 1], +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MIB_UDP6TABLE {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MIB_UDP6TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDP6TABLE2 { + pub dwNumEntries: u32, + pub table: [MIB_UDP6ROW2; 1], +} +impl ::core::marker::Copy for MIB_UDP6TABLE2 {} +impl ::core::clone::Clone for MIB_UDP6TABLE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDP6TABLE_OWNER_MODULE { + pub dwNumEntries: u32, + pub table: [MIB_UDP6ROW_OWNER_MODULE; 1], +} +impl ::core::marker::Copy for MIB_UDP6TABLE_OWNER_MODULE {} +impl ::core::clone::Clone for MIB_UDP6TABLE_OWNER_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDP6TABLE_OWNER_PID { + pub dwNumEntries: u32, + pub table: [MIB_UDP6ROW_OWNER_PID; 1], +} +impl ::core::marker::Copy for MIB_UDP6TABLE_OWNER_PID {} +impl ::core::clone::Clone for MIB_UDP6TABLE_OWNER_PID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDPROW { + pub dwLocalAddr: u32, + pub dwLocalPort: u32, +} +impl ::core::marker::Copy for MIB_UDPROW {} +impl ::core::clone::Clone for MIB_UDPROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDPROW2 { + pub dwLocalAddr: u32, + pub dwLocalPort: u32, + pub dwOwningPid: u32, + pub liCreateTimestamp: i64, + pub Anonymous: MIB_UDPROW2_0, + pub OwningModuleInfo: [u64; 16], + pub dwRemoteAddr: u32, + pub dwRemotePort: u32, +} +impl ::core::marker::Copy for MIB_UDPROW2 {} +impl ::core::clone::Clone for MIB_UDPROW2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MIB_UDPROW2_0 { + pub Anonymous: MIB_UDPROW2_0_0, + pub dwFlags: i32, +} +impl ::core::marker::Copy for MIB_UDPROW2_0 {} +impl ::core::clone::Clone for MIB_UDPROW2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDPROW2_0_0 { + pub _bitfield: i32, +} +impl ::core::marker::Copy for MIB_UDPROW2_0_0 {} +impl ::core::clone::Clone for MIB_UDPROW2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDPROW_OWNER_MODULE { + pub dwLocalAddr: u32, + pub dwLocalPort: u32, + pub dwOwningPid: u32, + pub liCreateTimestamp: i64, + pub Anonymous: MIB_UDPROW_OWNER_MODULE_0, + pub OwningModuleInfo: [u64; 16], +} +impl ::core::marker::Copy for MIB_UDPROW_OWNER_MODULE {} +impl ::core::clone::Clone for MIB_UDPROW_OWNER_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MIB_UDPROW_OWNER_MODULE_0 { + pub Anonymous: MIB_UDPROW_OWNER_MODULE_0_0, + pub dwFlags: i32, +} +impl ::core::marker::Copy for MIB_UDPROW_OWNER_MODULE_0 {} +impl ::core::clone::Clone for MIB_UDPROW_OWNER_MODULE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDPROW_OWNER_MODULE_0_0 { + pub _bitfield: i32, +} +impl ::core::marker::Copy for MIB_UDPROW_OWNER_MODULE_0_0 {} +impl ::core::clone::Clone for MIB_UDPROW_OWNER_MODULE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDPROW_OWNER_PID { + pub dwLocalAddr: u32, + pub dwLocalPort: u32, + pub dwOwningPid: u32, +} +impl ::core::marker::Copy for MIB_UDPROW_OWNER_PID {} +impl ::core::clone::Clone for MIB_UDPROW_OWNER_PID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDPSTATS { + pub dwInDatagrams: u32, + pub dwNoPorts: u32, + pub dwInErrors: u32, + pub dwOutDatagrams: u32, + pub dwNumAddrs: u32, +} +impl ::core::marker::Copy for MIB_UDPSTATS {} +impl ::core::clone::Clone for MIB_UDPSTATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDPSTATS2 { + pub dw64InDatagrams: u64, + pub dwNoPorts: u32, + pub dwInErrors: u32, + pub dw64OutDatagrams: u64, + pub dwNumAddrs: u32, +} +impl ::core::marker::Copy for MIB_UDPSTATS2 {} +impl ::core::clone::Clone for MIB_UDPSTATS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDPTABLE { + pub dwNumEntries: u32, + pub table: [MIB_UDPROW; 1], +} +impl ::core::marker::Copy for MIB_UDPTABLE {} +impl ::core::clone::Clone for MIB_UDPTABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDPTABLE2 { + pub dwNumEntries: u32, + pub table: [MIB_UDPROW2; 1], +} +impl ::core::marker::Copy for MIB_UDPTABLE2 {} +impl ::core::clone::Clone for MIB_UDPTABLE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDPTABLE_OWNER_MODULE { + pub dwNumEntries: u32, + pub table: [MIB_UDPROW_OWNER_MODULE; 1], +} +impl ::core::marker::Copy for MIB_UDPTABLE_OWNER_MODULE {} +impl ::core::clone::Clone for MIB_UDPTABLE_OWNER_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIB_UDPTABLE_OWNER_PID { + pub dwNumEntries: u32, + pub table: [MIB_UDPROW_OWNER_PID; 1], +} +impl ::core::marker::Copy for MIB_UDPTABLE_OWNER_PID {} +impl ::core::clone::Clone for MIB_UDPTABLE_OWNER_PID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_UNICASTIPADDRESS_ROW { + pub Address: super::super::Networking::WinSock::SOCKADDR_INET, + pub InterfaceLuid: super::Ndis::NET_LUID_LH, + pub InterfaceIndex: u32, + pub PrefixOrigin: super::super::Networking::WinSock::NL_PREFIX_ORIGIN, + pub SuffixOrigin: super::super::Networking::WinSock::NL_SUFFIX_ORIGIN, + pub ValidLifetime: u32, + pub PreferredLifetime: u32, + pub OnLinkPrefixLength: u8, + pub SkipAsSource: super::super::Foundation::BOOLEAN, + pub DadState: super::super::Networking::WinSock::NL_DAD_STATE, + pub ScopeId: super::super::Networking::WinSock::SCOPE_ID, + pub CreationTimeStamp: i64, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_UNICASTIPADDRESS_ROW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_UNICASTIPADDRESS_ROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub struct MIB_UNICASTIPADDRESS_TABLE { + pub NumEntries: u32, + pub Table: [MIB_UNICASTIPADDRESS_ROW; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MIB_UNICASTIPADDRESS_TABLE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MIB_UNICASTIPADDRESS_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct NET_ADDRESS_INFO { + pub Format: NET_ADDRESS_FORMAT, + pub Anonymous: NET_ADDRESS_INFO_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for NET_ADDRESS_INFO {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for NET_ADDRESS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union NET_ADDRESS_INFO_0 { + pub NamedAddress: NET_ADDRESS_INFO_0_0, + pub Ipv4Address: super::super::Networking::WinSock::SOCKADDR_IN, + pub Ipv6Address: super::super::Networking::WinSock::SOCKADDR_IN6, + pub IpAddress: super::super::Networking::WinSock::SOCKADDR, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for NET_ADDRESS_INFO_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for NET_ADDRESS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct NET_ADDRESS_INFO_0_0 { + pub Address: [u16; 256], + pub Port: [u16; 6], +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for NET_ADDRESS_INFO_0_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for NET_ADDRESS_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PFLOGFRAME { + pub Timestamp: i64, + pub pfeTypeOfFrame: PFFRAMETYPE, + pub dwTotalSizeUsed: u32, + pub dwFilterRule: u32, + pub wSizeOfAdditionalData: u16, + pub wSizeOfIpHeader: u16, + pub dwInterfaceName: u32, + pub dwIPIndex: u32, + pub bPacketData: [u8; 1], +} +impl ::core::marker::Copy for PFLOGFRAME {} +impl ::core::clone::Clone for PFLOGFRAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PF_FILTER_DESCRIPTOR { + pub dwFilterFlags: u32, + pub dwRule: u32, + pub pfatType: PFADDRESSTYPE, + pub SrcAddr: *mut u8, + pub SrcMask: *mut u8, + pub DstAddr: *mut u8, + pub DstMask: *mut u8, + pub dwProtocol: u32, + pub fLateBound: u32, + pub wSrcPort: u16, + pub wDstPort: u16, + pub wSrcPortHighRange: u16, + pub wDstPortHighRange: u16, +} +impl ::core::marker::Copy for PF_FILTER_DESCRIPTOR {} +impl ::core::clone::Clone for PF_FILTER_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PF_FILTER_STATS { + pub dwNumPacketsFiltered: u32, + pub info: PF_FILTER_DESCRIPTOR, +} +impl ::core::marker::Copy for PF_FILTER_STATS {} +impl ::core::clone::Clone for PF_FILTER_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PF_INTERFACE_STATS { + pub pvDriverContext: *mut ::core::ffi::c_void, + pub dwFlags: u32, + pub dwInDrops: u32, + pub dwOutDrops: u32, + pub eaInAction: PFFORWARD_ACTION, + pub eaOutAction: PFFORWARD_ACTION, + pub dwNumInFilters: u32, + pub dwNumOutFilters: u32, + pub dwFrag: u32, + pub dwSpoof: u32, + pub dwReserved1: u32, + pub dwReserved2: u32, + pub liSYN: i64, + pub liTotalLogged: i64, + pub dwLostLogEntries: u32, + pub FilterInfo: [PF_FILTER_STATS; 1], +} +impl ::core::marker::Copy for PF_INTERFACE_STATS {} +impl ::core::clone::Clone for PF_INTERFACE_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PF_LATEBIND_INFO { + pub SrcAddr: *mut u8, + pub DstAddr: *mut u8, + pub Mask: *mut u8, +} +impl ::core::marker::Copy for PF_LATEBIND_INFO {} +impl ::core::clone::Clone for PF_LATEBIND_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCPIP_OWNER_MODULE_BASIC_INFO { + pub pModuleName: ::windows_sys::core::PWSTR, + pub pModulePath: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for TCPIP_OWNER_MODULE_BASIC_INFO {} +impl ::core::clone::Clone for TCPIP_OWNER_MODULE_BASIC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCP_ESTATS_BANDWIDTH_ROD_v0 { + pub OutboundBandwidth: u64, + pub InboundBandwidth: u64, + pub OutboundInstability: u64, + pub InboundInstability: u64, + pub OutboundBandwidthPeaked: super::super::Foundation::BOOLEAN, + pub InboundBandwidthPeaked: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCP_ESTATS_BANDWIDTH_ROD_v0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCP_ESTATS_BANDWIDTH_ROD_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_ESTATS_BANDWIDTH_RW_v0 { + pub EnableCollectionOutbound: TCP_BOOLEAN_OPTIONAL, + pub EnableCollectionInbound: TCP_BOOLEAN_OPTIONAL, +} +impl ::core::marker::Copy for TCP_ESTATS_BANDWIDTH_RW_v0 {} +impl ::core::clone::Clone for TCP_ESTATS_BANDWIDTH_RW_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_ESTATS_DATA_ROD_v0 { + pub DataBytesOut: u64, + pub DataSegsOut: u64, + pub DataBytesIn: u64, + pub DataSegsIn: u64, + pub SegsOut: u64, + pub SegsIn: u64, + pub SoftErrors: u32, + pub SoftErrorReason: u32, + pub SndUna: u32, + pub SndNxt: u32, + pub SndMax: u32, + pub ThruBytesAcked: u64, + pub RcvNxt: u32, + pub ThruBytesReceived: u64, +} +impl ::core::marker::Copy for TCP_ESTATS_DATA_ROD_v0 {} +impl ::core::clone::Clone for TCP_ESTATS_DATA_ROD_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCP_ESTATS_DATA_RW_v0 { + pub EnableCollection: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCP_ESTATS_DATA_RW_v0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCP_ESTATS_DATA_RW_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_ESTATS_FINE_RTT_ROD_v0 { + pub RttVar: u32, + pub MaxRtt: u32, + pub MinRtt: u32, + pub SumRtt: u32, +} +impl ::core::marker::Copy for TCP_ESTATS_FINE_RTT_ROD_v0 {} +impl ::core::clone::Clone for TCP_ESTATS_FINE_RTT_ROD_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCP_ESTATS_FINE_RTT_RW_v0 { + pub EnableCollection: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCP_ESTATS_FINE_RTT_RW_v0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCP_ESTATS_FINE_RTT_RW_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_ESTATS_OBS_REC_ROD_v0 { + pub CurRwinRcvd: u32, + pub MaxRwinRcvd: u32, + pub MinRwinRcvd: u32, + pub WinScaleRcvd: u8, +} +impl ::core::marker::Copy for TCP_ESTATS_OBS_REC_ROD_v0 {} +impl ::core::clone::Clone for TCP_ESTATS_OBS_REC_ROD_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCP_ESTATS_OBS_REC_RW_v0 { + pub EnableCollection: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCP_ESTATS_OBS_REC_RW_v0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCP_ESTATS_OBS_REC_RW_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_ESTATS_PATH_ROD_v0 { + pub FastRetran: u32, + pub Timeouts: u32, + pub SubsequentTimeouts: u32, + pub CurTimeoutCount: u32, + pub AbruptTimeouts: u32, + pub PktsRetrans: u32, + pub BytesRetrans: u32, + pub DupAcksIn: u32, + pub SacksRcvd: u32, + pub SackBlocksRcvd: u32, + pub CongSignals: u32, + pub PreCongSumCwnd: u32, + pub PreCongSumRtt: u32, + pub PostCongSumRtt: u32, + pub PostCongCountRtt: u32, + pub EcnSignals: u32, + pub EceRcvd: u32, + pub SendStall: u32, + pub QuenchRcvd: u32, + pub RetranThresh: u32, + pub SndDupAckEpisodes: u32, + pub SumBytesReordered: u32, + pub NonRecovDa: u32, + pub NonRecovDaEpisodes: u32, + pub AckAfterFr: u32, + pub DsackDups: u32, + pub SampleRtt: u32, + pub SmoothedRtt: u32, + pub RttVar: u32, + pub MaxRtt: u32, + pub MinRtt: u32, + pub SumRtt: u32, + pub CountRtt: u32, + pub CurRto: u32, + pub MaxRto: u32, + pub MinRto: u32, + pub CurMss: u32, + pub MaxMss: u32, + pub MinMss: u32, + pub SpuriousRtoDetections: u32, +} +impl ::core::marker::Copy for TCP_ESTATS_PATH_ROD_v0 {} +impl ::core::clone::Clone for TCP_ESTATS_PATH_ROD_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCP_ESTATS_PATH_RW_v0 { + pub EnableCollection: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCP_ESTATS_PATH_RW_v0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCP_ESTATS_PATH_RW_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_ESTATS_REC_ROD_v0 { + pub CurRwinSent: u32, + pub MaxRwinSent: u32, + pub MinRwinSent: u32, + pub LimRwin: u32, + pub DupAckEpisodes: u32, + pub DupAcksOut: u32, + pub CeRcvd: u32, + pub EcnSent: u32, + pub EcnNoncesRcvd: u32, + pub CurReasmQueue: u32, + pub MaxReasmQueue: u32, + pub CurAppRQueue: usize, + pub MaxAppRQueue: usize, + pub WinScaleSent: u8, +} +impl ::core::marker::Copy for TCP_ESTATS_REC_ROD_v0 {} +impl ::core::clone::Clone for TCP_ESTATS_REC_ROD_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCP_ESTATS_REC_RW_v0 { + pub EnableCollection: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCP_ESTATS_REC_RW_v0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCP_ESTATS_REC_RW_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_ESTATS_SEND_BUFF_ROD_v0 { + pub CurRetxQueue: usize, + pub MaxRetxQueue: usize, + pub CurAppWQueue: usize, + pub MaxAppWQueue: usize, +} +impl ::core::marker::Copy for TCP_ESTATS_SEND_BUFF_ROD_v0 {} +impl ::core::clone::Clone for TCP_ESTATS_SEND_BUFF_ROD_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCP_ESTATS_SEND_BUFF_RW_v0 { + pub EnableCollection: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCP_ESTATS_SEND_BUFF_RW_v0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCP_ESTATS_SEND_BUFF_RW_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_ESTATS_SND_CONG_ROD_v0 { + pub SndLimTransRwin: u32, + pub SndLimTimeRwin: u32, + pub SndLimBytesRwin: usize, + pub SndLimTransCwnd: u32, + pub SndLimTimeCwnd: u32, + pub SndLimBytesCwnd: usize, + pub SndLimTransSnd: u32, + pub SndLimTimeSnd: u32, + pub SndLimBytesSnd: usize, + pub SlowStart: u32, + pub CongAvoid: u32, + pub OtherReductions: u32, + pub CurCwnd: u32, + pub MaxSsCwnd: u32, + pub MaxCaCwnd: u32, + pub CurSsthresh: u32, + pub MaxSsthresh: u32, + pub MinSsthresh: u32, +} +impl ::core::marker::Copy for TCP_ESTATS_SND_CONG_ROD_v0 {} +impl ::core::clone::Clone for TCP_ESTATS_SND_CONG_ROD_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_ESTATS_SND_CONG_ROS_v0 { + pub LimCwnd: u32, +} +impl ::core::marker::Copy for TCP_ESTATS_SND_CONG_ROS_v0 {} +impl ::core::clone::Clone for TCP_ESTATS_SND_CONG_ROS_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCP_ESTATS_SND_CONG_RW_v0 { + pub EnableCollection: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCP_ESTATS_SND_CONG_RW_v0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCP_ESTATS_SND_CONG_RW_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCP_ESTATS_SYN_OPTS_ROS_v0 { + pub ActiveOpen: super::super::Foundation::BOOLEAN, + pub MssRcvd: u32, + pub MssSent: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCP_ESTATS_SYN_OPTS_ROS_v0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCP_ESTATS_SYN_OPTS_ROS_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_RESERVE_PORT_RANGE { + pub UpperRange: u16, + pub LowerRange: u16, +} +impl ::core::marker::Copy for TCP_RESERVE_PORT_RANGE {} +impl ::core::clone::Clone for TCP_RESERVE_PORT_RANGE { + fn clone(&self) -> Self { + *self + } +} +pub type PINTERFACE_TIMESTAMP_CONFIG_CHANGE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub type PIPFORWARD_CHANGE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub type PIPINTERFACE_CHANGE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub type PNETWORK_CONNECTIVITY_HINT_CHANGE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub type PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK = ::core::option::Option ()>; +pub type PTEREDO_PORT_CHANGE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] +pub type PUNICAST_IPADDRESS_CHANGE_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Multicast/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Multicast/mod.rs new file mode 100644 index 000000000..a37546d2e --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Multicast/mod.rs @@ -0,0 +1,94 @@ +::windows_targets::link!("dhcpcsvc.dll" "system" fn McastApiCleanup() -> ()); +::windows_targets::link!("dhcpcsvc.dll" "system" fn McastApiStartup(version : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dhcpcsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn McastEnumerateScopes(addrfamily : u16, requery : super::super::Foundation:: BOOL, pscopelist : *mut MCAST_SCOPE_ENTRY, pscopelen : *mut u32, pscopecount : *mut u32) -> u32); +::windows_targets::link!("dhcpcsvc.dll" "system" fn McastGenUID(prequestid : *mut MCAST_CLIENT_UID) -> u32); +::windows_targets::link!("dhcpcsvc.dll" "system" fn McastReleaseAddress(addrfamily : u16, prequestid : *mut MCAST_CLIENT_UID, preleaserequest : *mut MCAST_LEASE_REQUEST) -> u32); +::windows_targets::link!("dhcpcsvc.dll" "system" fn McastRenewAddress(addrfamily : u16, prequestid : *mut MCAST_CLIENT_UID, prenewrequest : *mut MCAST_LEASE_REQUEST, prenewresponse : *mut MCAST_LEASE_RESPONSE) -> u32); +::windows_targets::link!("dhcpcsvc.dll" "system" fn McastRequestAddress(addrfamily : u16, prequestid : *mut MCAST_CLIENT_UID, pscopectx : *mut MCAST_SCOPE_CTX, paddrrequest : *mut MCAST_LEASE_REQUEST, paddrresponse : *mut MCAST_LEASE_RESPONSE) -> u32); +pub const MCAST_API_CURRENT_VERSION: i32 = 1i32; +pub const MCAST_API_VERSION_0: i32 = 0i32; +pub const MCAST_API_VERSION_1: i32 = 1i32; +pub const MCAST_CLIENT_ID_LEN: u32 = 17u32; +#[repr(C)] +pub union IPNG_ADDRESS { + pub IpAddrV4: u32, + pub IpAddrV6: [u8; 16], +} +impl ::core::marker::Copy for IPNG_ADDRESS {} +impl ::core::clone::Clone for IPNG_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MCAST_CLIENT_UID { + pub ClientUID: *mut u8, + pub ClientUIDLength: u32, +} +impl ::core::marker::Copy for MCAST_CLIENT_UID {} +impl ::core::clone::Clone for MCAST_CLIENT_UID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MCAST_LEASE_REQUEST { + pub LeaseStartTime: i32, + pub MaxLeaseStartTime: i32, + pub LeaseDuration: u32, + pub MinLeaseDuration: u32, + pub ServerAddress: IPNG_ADDRESS, + pub MinAddrCount: u16, + pub AddrCount: u16, + pub pAddrBuf: *mut u8, +} +impl ::core::marker::Copy for MCAST_LEASE_REQUEST {} +impl ::core::clone::Clone for MCAST_LEASE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MCAST_LEASE_RESPONSE { + pub LeaseStartTime: i32, + pub LeaseEndTime: i32, + pub ServerAddress: IPNG_ADDRESS, + pub AddrCount: u16, + pub pAddrBuf: *mut u8, +} +impl ::core::marker::Copy for MCAST_LEASE_RESPONSE {} +impl ::core::clone::Clone for MCAST_LEASE_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MCAST_SCOPE_CTX { + pub ScopeID: IPNG_ADDRESS, + pub Interface: IPNG_ADDRESS, + pub ServerID: IPNG_ADDRESS, +} +impl ::core::marker::Copy for MCAST_SCOPE_CTX {} +impl ::core::clone::Clone for MCAST_SCOPE_CTX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCAST_SCOPE_ENTRY { + pub ScopeCtx: MCAST_SCOPE_CTX, + pub LastAddr: IPNG_ADDRESS, + pub TTL: u32, + pub ScopeDesc: super::super::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCAST_SCOPE_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCAST_SCOPE_ENTRY { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Ndis/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Ndis/mod.rs new file mode 100644 index 000000000..95ae02fc9 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Ndis/mod.rs @@ -0,0 +1,3997 @@ +pub const AUTHENTICATE: OFFLOAD_OPERATION_E = 1i32; +pub const CLOCK_NETWORK_DERIVED: u32 = 2u32; +pub const CLOCK_PRECISION: u32 = 4u32; +pub const DD_NDIS_DEVICE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Device\\NDIS"); +pub const DOT11_RSN_KCK_LENGTH: u32 = 16u32; +pub const DOT11_RSN_KEK_LENGTH: u32 = 16u32; +pub const DOT11_RSN_MAX_CIPHER_KEY_LENGTH: u32 = 32u32; +pub const EAPOL_REQUEST_ID_WOL_FLAG_MUST_ENCRYPT: u32 = 1u32; +pub const ENCRYPT: OFFLOAD_OPERATION_E = 2i32; +pub const ETHERNET_LENGTH_OF_ADDRESS: u32 = 6u32; +pub const GUID_DEVINTERFACE_NET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcac88484_7515_4c03_82e6_71a87abac361); +pub const GUID_DEVINTERFACE_NETUIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x08336f60_0679_4c6c_85d2_ae7ced65fff7); +pub const GUID_NDIS_802_11_ADD_KEY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xab8b5a62_1d51_49d8_ba5c_fa980be03a1d); +pub const GUID_NDIS_802_11_ADD_WEP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4307bff0_2129_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_ASSOCIATION_INFORMATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa08d4dd0_960e_40bd_8cf6_c538af98f2e3); +pub const GUID_NDIS_802_11_AUTHENTICATION_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43920a24_2129_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_BSSID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2504b6c2_1fa5_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_BSSID_LIST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x69526f9a_2062_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_BSSID_LIST_SCAN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0d9e01e1_ba70_11d4_b675_002048570337); +pub const GUID_NDIS_802_11_CONFIGURATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4a4df982_2068_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_DESIRED_RATES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x452ee08e_2536_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_DISASSOCIATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43671f40_2129_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_FRAGMENTATION_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x69aaa7c4_2062_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_INFRASTRUCTURE_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x697d5a7e_2062_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_MEDIA_STREAM_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0a56af66_d84b_49eb_a28d_5282cbb6d0cd); +pub const GUID_NDIS_802_11_NETWORK_TYPES_SUPPORTED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8531d6e6_2041_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_NETWORK_TYPE_IN_USE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x857e2326_2041_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_NUMBER_OF_ANTENNAS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x01779336_2064_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_POWER_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x85be837c_2041_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_PRIVACY_FILTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6733c4e9_4792_11d4_97f1_00c04f79c403); +pub const GUID_NDIS_802_11_RELOAD_DEFAULTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x748b14e8_32ee_4425_b91b_c9848c58b55a); +pub const GUID_NDIS_802_11_REMOVE_KEY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x73cb28e9_3188_42d5_b553_b21237e6088c); +pub const GUID_NDIS_802_11_REMOVE_WEP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x433c345c_2129_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_RSSI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1507db16_2053_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_RSSI_TRIGGER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x155689b8_2053_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_RTS_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0134d07e_2064_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_RX_ANTENNA_SELECTED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x01ac07a2_2064_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_SSID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7d2a90ea_2041_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_STATISTICS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x42bb73b0_2129_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_SUPPORTED_RATES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49db8722_2068_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_TEST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4b9ca16a_6a60_4e9d_920c_6335953fa0b5); +pub const GUID_NDIS_802_11_TX_ANTENNA_SELECTED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x01dbb74a_2064_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_TX_POWER_LEVEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x11e6ba76_2053_11d4_97eb_00c04f79c403); +pub const GUID_NDIS_802_11_WEP_STATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb027a21f_3cfa_4125_800b_3f7a18fddcdc); +pub const GUID_NDIS_802_3_CURRENT_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x44795700_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_3_MAC_OPTIONS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x44795703_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_3_MAXIMUM_LIST_SIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x44795702_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_3_MULTICAST_LIST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x44795701_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_3_PERMANENT_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x447956ff_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_3_RCV_ERROR_ALIGNMENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x44795704_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_3_XMIT_MORE_COLLISIONS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x44795706_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_3_XMIT_ONE_COLLISION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x44795705_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_5_CURRENT_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x44795708_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_5_CURRENT_FUNCTIONAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x44795709_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_5_CURRENT_GROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4479570a_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_5_CURRENT_RING_STATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xacf14032_a61c_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_5_CURRENT_RING_STATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x890a36ec_a61c_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_5_LAST_OPEN_STATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4479570b_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_5_LINE_ERRORS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xacf14033_a61c_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_5_LOST_FRAMES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xacf14034_a61c_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_802_5_PERMANENT_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x44795707_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_ENUMERATE_ADAPTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x981f2d7f_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_ENUMERATE_ADAPTERS_EX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x16716917_4306_4be4_9b5a_3809ae44b125); +pub const GUID_NDIS_ENUMERATE_VC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x981f2d82_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_DRIVER_VERSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x791ad198_e35c_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_HARDWARE_STATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x791ad192_e35c_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_LINK_SPEED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x791ad195_e35c_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_MAC_OPTIONS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x791ad19a_e35c_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_MEDIA_CONNECT_STATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x791ad19b_e35c_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_MEDIA_IN_USE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x791ad194_e35c_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_MEDIA_SUPPORTED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x791ad193_e35c_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_MINIMUM_LINK_SPEED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x791ad19d_e35c_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_RCV_PDUS_ERROR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0a214808_e35f_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_RCV_PDUS_NO_BUFFER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0a214809_e35f_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_RCV_PDUS_OK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0a214806_e35f_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_VENDOR_DESCRIPTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x791ad197_e35c_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_VENDOR_DRIVER_VERSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x791ad19c_e35c_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_VENDOR_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x791ad196_e35c_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_XMIT_PDUS_ERROR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0a214807_e35f_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CO_XMIT_PDUS_OK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0a214805_e35f_11d0_9692_00c04fc3358c); +pub const GUID_NDIS_GEN_CURRENT_LOOKAHEAD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec10361_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_CURRENT_PACKET_FILTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec10360_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_DRIVER_VERSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec10362_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_ENUMERATE_PORTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf1d6abe8_15e4_4407_81b7_6b830c777cd9); +pub const GUID_NDIS_GEN_HARDWARE_STATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec10354_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_INTERRUPT_MODERATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd9c8eea5_f16e_467c_84d5_6345a22ce213); +pub const GUID_NDIS_GEN_INTERRUPT_MODERATION_PARAMETERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd789adfa_9c56_433b_ad01_7574f3cedbe9); +pub const GUID_NDIS_GEN_LINK_PARAMETERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8c7d3579_252b_4614_82c5_a650daa15049); +pub const GUID_NDIS_GEN_LINK_SPEED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec10359_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_LINK_STATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba1f4c14_a945_4762_b916_0b5515b6f43a); +pub const GUID_NDIS_GEN_MAC_OPTIONS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec10365_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_MAXIMUM_FRAME_SIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec10358_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_MAXIMUM_LOOKAHEAD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec10357_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_MAXIMUM_SEND_PACKETS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec10367_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_MAXIMUM_TOTAL_SIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec10363_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_MEDIA_CONNECT_STATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec10366_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_MEDIA_IN_USE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec10356_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_MEDIA_SUPPORTED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec10355_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_PCI_DEVICE_CUSTOM_PROPERTIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaa39f5ab_e260_4d01_82b0_b737c880ea05); +pub const GUID_NDIS_GEN_PHYSICAL_MEDIUM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x418ca16d_3937_4208_940a_ec6196278085); +pub const GUID_NDIS_GEN_PHYSICAL_MEDIUM_EX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x899e7782_035b_43f9_8bb6_2b58971612e5); +pub const GUID_NDIS_GEN_PORT_AUTHENTICATION_PARAMETERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaab6ac31_86fb_48fb_8b48_63db235ace16); +pub const GUID_NDIS_GEN_PORT_STATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6fbf2a5f_8b8f_4920_8143_e6c460f52524); +pub const GUID_NDIS_GEN_RCV_ERROR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x447956fd_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_RCV_NO_BUFFER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x447956fe_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_RCV_OK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x447956fb_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_RECEIVE_BLOCK_SIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec1035d_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_RECEIVE_BUFFER_SPACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec1035b_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_STATISTICS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x368c45b5_c129_43c1_939e_7edc2d7fe621); +pub const GUID_NDIS_GEN_TRANSMIT_BLOCK_SIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec1035c_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_TRANSMIT_BUFFER_SPACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec1035a_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_VENDOR_DESCRIPTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec1035f_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_VENDOR_DRIVER_VERSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x447956f9_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_VENDOR_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ec1035e_a61a_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_VLAN_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x765dc702_c5e8_4b67_843b_3f5a4ff2648b); +pub const GUID_NDIS_GEN_XMIT_ERROR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x447956fc_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_GEN_XMIT_OK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x447956fa_a61b_11d0_8dd4_00c04fc3358c); +pub const GUID_NDIS_HD_SPLIT_CURRENT_CONFIG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x81d1303c_ab00_4e49_80b1_5e6e0bf9be53); +pub const GUID_NDIS_HD_SPLIT_PARAMETERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8c048bea_2913_4458_b68e_17f6c1e5c60e); +pub const GUID_NDIS_LAN_CLASS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xad498944_762f_11d0_8dcb_00c04fc3358c); +pub const GUID_NDIS_NDK_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7969ba4d_dd80_4bc7_b3e6_68043997e519); +pub const GUID_NDIS_NDK_STATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x530c69c9_2f51_49de_a1af_088d54ffa474); +pub const GUID_NDIS_NOTIFY_ADAPTER_ARRIVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x981f2d81_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_NOTIFY_ADAPTER_REMOVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x981f2d80_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_NOTIFY_BIND: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5413531c_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_NOTIFY_DEVICE_POWER_OFF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x81bc8189_b026_46ab_b964_f182e342934e); +pub const GUID_NDIS_NOTIFY_DEVICE_POWER_OFF_EX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4159353c_5cd7_42ce_8fe4_a45a2380cc4f); +pub const GUID_NDIS_NOTIFY_DEVICE_POWER_ON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5f81cfd0_f046_4342_af61_895acedaefd9); +pub const GUID_NDIS_NOTIFY_DEVICE_POWER_ON_EX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2b440188_92ac_4f60_9b2d_20a30cbb6bbe); +pub const GUID_NDIS_NOTIFY_FILTER_ARRIVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0b6d3c89_5917_43ca_b578_d01a7967c41c); +pub const GUID_NDIS_NOTIFY_FILTER_REMOVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1f177cd9_5955_4721_9f6a_78ebdfaef889); +pub const GUID_NDIS_NOTIFY_UNBIND: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6e3ce1ec_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_NOTIFY_VC_ARRIVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x182f9e0c_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_NOTIFY_VC_REMOVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x981f2d79_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_PM_ACTIVE_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb2cf76e3_b3ae_4394_a01f_338c9870e939); +pub const GUID_NDIS_PM_ADMIN_CONFIG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1528d111_708a_4ca4_9215_c05771161cda); +pub const GUID_NDIS_RECEIVE_FILTER_ENUM_FILTERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3f2c141d_83bc_11dd_94b8_001d09162bc3); +pub const GUID_NDIS_RECEIVE_FILTER_ENUM_QUEUES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3f2c141b_83bc_11dd_94b8_001d09162bc3); +pub const GUID_NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3f2c141a_83bc_11dd_94b8_001d09162bc3); +pub const GUID_NDIS_RECEIVE_FILTER_HARDWARE_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3f2c1419_83bc_11dd_94b8_001d09162bc3); +pub const GUID_NDIS_RECEIVE_FILTER_PARAMETERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3f2c141e_83bc_11dd_94b8_001d09162bc3); +pub const GUID_NDIS_RECEIVE_FILTER_QUEUE_PARAMETERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3f2c141c_83bc_11dd_94b8_001d09162bc3); +pub const GUID_NDIS_RECEIVE_SCALE_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x26c28774_4252_48fe_a610_a58a398c0eb1); +pub const GUID_NDIS_RSS_ENABLED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9565cd55_3402_4e32_a5b6_2f143f2f2c30); +pub const GUID_NDIS_STATUS_DOT11_ASSOCIATION_COMPLETION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x458bbea7_45a4_4ae2_b176_e51f96fc0568); +pub const GUID_NDIS_STATUS_DOT11_ASSOCIATION_START: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3927843b_6980_4b48_b15b_4de50977ac40); +pub const GUID_NDIS_STATUS_DOT11_CONNECTION_COMPLETION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x96efd9c9_7f1b_4a89_bc04_3e9e271765f1); +pub const GUID_NDIS_STATUS_DOT11_CONNECTION_START: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b74299d_998f_4454_ad08_c5af28576d1b); +pub const GUID_NDIS_STATUS_DOT11_DISASSOCIATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3fbeb6fc_0fe2_43fd_b2ad_bd99b5f93e13); +pub const GUID_NDIS_STATUS_DOT11_LINK_QUALITY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa3285184_ea99_48ed_825e_a426b11c2754); +pub const GUID_NDIS_STATUS_DOT11_MPDU_MAX_LENGTH_CHANGED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1d6560ec_8e48_4a3e_9fd5_a01b698db6c5); +pub const GUID_NDIS_STATUS_DOT11_PHY_STATE_CHANGED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdeb45316_71b5_4736_bdef_0a9e9f4e62dc); +pub const GUID_NDIS_STATUS_DOT11_PMKID_CANDIDATE_LIST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x26d8b8f6_db82_49eb_8bf3_4c130ef06950); +pub const GUID_NDIS_STATUS_DOT11_ROAMING_COMPLETION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdd9d47d1_282b_41e4_b924_66368817fcd3); +pub const GUID_NDIS_STATUS_DOT11_ROAMING_START: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb2412d0d_26c8_4f4e_93df_f7b705a0b433); +pub const GUID_NDIS_STATUS_DOT11_SCAN_CONFIRM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8500591e_a0c7_4efb_9342_b674b002cbe6); +pub const GUID_NDIS_STATUS_DOT11_TKIPMIC_FAILURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x442c2ae4_9bc5_4b90_a889_455ef220f4ee); +pub const GUID_NDIS_STATUS_EXTERNAL_CONNECTIVITY_CHANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfd306974_c420_4433_b0fe_4cf6a613f59f); +pub const GUID_NDIS_STATUS_HD_SPLIT_CURRENT_CONFIG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6c744b0e_ee9c_4205_90a2_015f6d65f403); +pub const GUID_NDIS_STATUS_LINK_SPEED_CHANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x981f2d85_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_STATUS_LINK_STATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x64c6f797_878c_4311_9246_65dba89c3a61); +pub const GUID_NDIS_STATUS_MEDIA_CONNECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x981f2d7d_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_STATUS_MEDIA_DISCONNECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x981f2d7e_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_STATUS_MEDIA_SPECIFIC_INDICATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x981f2d84_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_STATUS_NETWORK_CHANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xca8a56f9_ce81_40e6_a70f_a067a476e9e9); +pub const GUID_NDIS_STATUS_OPER_STATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf917b663_845e_4d3d_b6d4_15eb27af81c5); +pub const GUID_NDIS_STATUS_PACKET_FILTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd47c5407_2e75_46dd_8146_1d7ed2d6ab1d); +pub const GUID_NDIS_STATUS_PM_OFFLOAD_REJECTED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xadd1d481_711e_4d1a_92ca_a62db9329712); +pub const GUID_NDIS_STATUS_PM_WAKE_REASON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0933fd58_ca62_438f_83da_dfc1cccb8145); +pub const GUID_NDIS_STATUS_PM_WOL_PATTERN_REJECTED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf72cf68e_18d4_4d63_9a19_e69b13916b1a); +pub const GUID_NDIS_STATUS_PORT_STATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1dac0dfe_43e5_44b7_b759_7bf46de32e81); +pub const GUID_NDIS_STATUS_RESET_END: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x981f2d77_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_STATUS_RESET_START: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x981f2d76_b1f3_11d0_8dd7_00c04fc3358c); +pub const GUID_NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x45049fc6_54d8_40c8_9c3d_b011c4e715bc); +pub const GUID_NDIS_STATUS_TASK_OFFLOAD_HARDWARE_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb6b8158b_217c_4b2a_be86_6a04beea65b8); +pub const GUID_NDIS_STATUS_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf8edaeff_24e4_4ae6_a413_0b27f76b243d); +pub const GUID_NDIS_STATUS_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x391969b6_402c_43bf_8922_39eae0da1bb5); +pub const GUID_NDIS_SWITCH_MICROSOFT_VENDOR_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x202547fe_1c9c_40b9_bba1_08ada1f98b3c); +pub const GUID_NDIS_SWITCH_PORT_PROPERTY_PROFILE_ID_DEFAULT_EXTERNAL_NIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0b347846_0a0c_470a_9b7a_0d965850698f); +pub const GUID_NDIS_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2ee6aef1_0851_458b_bf0d_792343d1cde1); +pub const GUID_NDIS_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8ce71f2c_d63a_4390_a487_18fa47262ceb); +pub const GUID_NDIS_TCP_OFFLOAD_CURRENT_CONFIG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x68542fed_5c74_461e_8934_91c6f9c60960); +pub const GUID_NDIS_TCP_OFFLOAD_HARDWARE_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcd5f1102_590f_4ada_ab65_5b31b1dc0172); +pub const GUID_NDIS_TCP_OFFLOAD_PARAMETERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8ead9a22_7f69_4bc6_949a_c8187b074e61); +pub const GUID_NDIS_TCP_RSC_STATISTICS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x83104445_9b5d_4ee6_a2a5_2bd3fb3c36af); +pub const GUID_NDIS_WAKE_ON_MAGIC_PACKET_ONLY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa14f1c97_8839_4f8a_9996_a28996ebbf1d); +pub const GUID_NIC_SWITCH_CURRENT_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe76fdaf3_0be7_4d95_87e9_5aead4b590e9); +pub const GUID_NIC_SWITCH_HARDWARE_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x37cab40c_d1e8_4301_8c1d_58465e0c4c0f); +pub const GUID_PM_ADD_PROTOCOL_OFFLOAD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0c06c112_0d93_439b_9e6d_26be130c9784); +pub const GUID_PM_ADD_WOL_PATTERN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6fc83ba7_52bc_4faa_ac51_7d2ffe63ba90); +pub const GUID_PM_CURRENT_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3abdbd14_d44a_4a3f_9a63_a0a42a51b131); +pub const GUID_PM_GET_PROTOCOL_OFFLOAD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa6435cd9_149f_498e_951b_2d94bea3e3a3); +pub const GUID_PM_HARDWARE_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xece5360d_3291_4a6e_8044_00511fed27ee); +pub const GUID_PM_PARAMETERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x560245d2_e251_409c_a280_311935be3b28); +pub const GUID_PM_PROTOCOL_OFFLOAD_LIST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x736ec5ab_ca8f_4043_bb58_da402a48d9cc); +pub const GUID_PM_REMOVE_PROTOCOL_OFFLOAD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdecd7be2_a6b0_43ca_ae45_d000d20e5265); +pub const GUID_PM_REMOVE_WOL_PATTERN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa037a915_c6ca_4322_b3e3_ef754ec498dc); +pub const GUID_PM_WOL_PATTERN_LIST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4022be37_7ee2_47be_a5a5_050fc79afc75); +pub const GUID_RECEIVE_FILTER_CURRENT_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4054e80f_2bc1_4ccc_b033_4abc0c4a1e8c); +pub const GUID_STATUS_MEDIA_SPECIFIC_INDICATION_EX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaaacfca7_954a_4632_a16e_a8a63793a9e5); +pub const IF_ADMINISTRATIVE_DEMANDDIAL: IF_ADMINISTRATIVE_STATE = 2i32; +pub const IF_ADMINISTRATIVE_DISABLED: IF_ADMINISTRATIVE_STATE = 0i32; +pub const IF_ADMINISTRATIVE_ENABLED: IF_ADMINISTRATIVE_STATE = 1i32; +pub const IF_MAX_PHYS_ADDRESS_LENGTH: u32 = 32u32; +pub const IF_MAX_STRING_SIZE: u32 = 256u32; +pub const IOCTL_NDIS_RESERVED5: u32 = 1507380u32; +pub const IOCTL_NDIS_RESERVED6: u32 = 1540152u32; +pub const IPSEC_OFFLOAD_V2_AND_TCP_CHECKSUM_COEXISTENCE: u32 = 2u32; +pub const IPSEC_OFFLOAD_V2_AND_UDP_CHECKSUM_COEXISTENCE: u32 = 4u32; +pub const IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_128: u32 = 8u32; +pub const IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_192: u32 = 16u32; +pub const IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_256: u32 = 32u32; +pub const IPSEC_OFFLOAD_V2_AUTHENTICATION_MD5: u32 = 1u32; +pub const IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_1: u32 = 2u32; +pub const IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_256: u32 = 4u32; +pub const IPSEC_OFFLOAD_V2_ENCRYPTION_3_DES_CBC: u32 = 4u32; +pub const IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_128: u32 = 64u32; +pub const IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_192: u32 = 128u32; +pub const IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_256: u32 = 256u32; +pub const IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_128: u32 = 8u32; +pub const IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_192: u32 = 16u32; +pub const IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_256: u32 = 32u32; +pub const IPSEC_OFFLOAD_V2_ENCRYPTION_DES_CBC: u32 = 2u32; +pub const IPSEC_OFFLOAD_V2_ENCRYPTION_NONE: u32 = 1u32; +pub const IfOperStatusDormant: IF_OPER_STATUS = 5i32; +pub const IfOperStatusDown: IF_OPER_STATUS = 2i32; +pub const IfOperStatusLowerLayerDown: IF_OPER_STATUS = 7i32; +pub const IfOperStatusNotPresent: IF_OPER_STATUS = 6i32; +pub const IfOperStatusTesting: IF_OPER_STATUS = 3i32; +pub const IfOperStatusUnknown: IF_OPER_STATUS = 4i32; +pub const IfOperStatusUp: IF_OPER_STATUS = 1i32; +pub const MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED: u32 = 32u32; +pub const MediaConnectStateConnected: NET_IF_MEDIA_CONNECT_STATE = 1i32; +pub const MediaConnectStateDisconnected: NET_IF_MEDIA_CONNECT_STATE = 2i32; +pub const MediaConnectStateUnknown: NET_IF_MEDIA_CONNECT_STATE = 0i32; +pub const MediaDuplexStateFull: NET_IF_MEDIA_DUPLEX_STATE = 2i32; +pub const MediaDuplexStateHalf: NET_IF_MEDIA_DUPLEX_STATE = 1i32; +pub const MediaDuplexStateUnknown: NET_IF_MEDIA_DUPLEX_STATE = 0i32; +pub const NDIS_802_11_AI_REQFI_CAPABILITIES: u32 = 1u32; +pub const NDIS_802_11_AI_REQFI_CURRENTAPADDRESS: u32 = 4u32; +pub const NDIS_802_11_AI_REQFI_LISTENINTERVAL: u32 = 2u32; +pub const NDIS_802_11_AI_RESFI_ASSOCIATIONID: u32 = 4u32; +pub const NDIS_802_11_AI_RESFI_CAPABILITIES: u32 = 1u32; +pub const NDIS_802_11_AI_RESFI_STATUSCODE: u32 = 2u32; +pub const NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS: u32 = 15u32; +pub const NDIS_802_11_AUTH_REQUEST_GROUP_ERROR: u32 = 14u32; +pub const NDIS_802_11_AUTH_REQUEST_KEYUPDATE: u32 = 2u32; +pub const NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR: u32 = 6u32; +pub const NDIS_802_11_AUTH_REQUEST_REAUTH: u32 = 1u32; +pub const NDIS_802_11_LENGTH_RATES: u32 = 8u32; +pub const NDIS_802_11_LENGTH_RATES_EX: u32 = 16u32; +pub const NDIS_802_11_LENGTH_SSID: u32 = 32u32; +pub const NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED: u32 = 1u32; +pub const NDIS_802_3_MAC_OPTION_PRIORITY: u32 = 1u32; +pub const NDIS_CO_MAC_OPTION_DYNAMIC_LINK_SPEED: u32 = 1u32; +pub const NDIS_DEFAULT_RECEIVE_FILTER_ID: u32 = 0u32; +pub const NDIS_DEFAULT_RECEIVE_QUEUE_GROUP_ID: u32 = 0u32; +pub const NDIS_DEFAULT_RECEIVE_QUEUE_ID: u32 = 0u32; +pub const NDIS_DEFAULT_SWITCH_ID: u32 = 0u32; +pub const NDIS_DEFAULT_VPORT_ID: u32 = 0u32; +pub const NDIS_DEVICE_TYPE_ENDPOINT: u32 = 1u32; +pub const NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE: u32 = 4u32; +pub const NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE: u32 = 2u32; +pub const NDIS_DEVICE_WAKE_UP_ENABLE: u32 = 1u32; +pub const NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4: u32 = 1u32; +pub const NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV6: u32 = 4u32; +pub const NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_NOT_SUPPORTED: u32 = 0u32; +pub const NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4: u32 = 2u32; +pub const NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6: u32 = 8u32; +pub const NDIS_ENCAPSULATION_IEEE_802_3: u32 = 2u32; +pub const NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q: u32 = 4u32; +pub const NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB: u32 = 8u32; +pub const NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED: u32 = 16u32; +pub const NDIS_ENCAPSULATION_NOT_SUPPORTED: u32 = 0u32; +pub const NDIS_ENCAPSULATION_NULL: u32 = 1u32; +pub const NDIS_ENCAPSULATION_TYPE_GRE_MAC: u32 = 1u32; +pub const NDIS_ENCAPSULATION_TYPE_VXLAN: u32 = 2u32; +pub const NDIS_ETH_TYPE_802_1Q: u32 = 33024u32; +pub const NDIS_ETH_TYPE_802_1X: u32 = 34958u32; +pub const NDIS_ETH_TYPE_ARP: u32 = 2054u32; +pub const NDIS_ETH_TYPE_IPV4: u32 = 2048u32; +pub const NDIS_ETH_TYPE_IPV6: u32 = 34525u32; +pub const NDIS_ETH_TYPE_SLOW_PROTOCOL: u32 = 34825u32; +pub const NDIS_GFP_ENCAPSULATION_TYPE_IP_IN_GRE: u32 = 4u32; +pub const NDIS_GFP_ENCAPSULATION_TYPE_IP_IN_IP: u32 = 2u32; +pub const NDIS_GFP_ENCAPSULATION_TYPE_NOT_ENCAPSULATED: u32 = 1u32; +pub const NDIS_GFP_ENCAPSULATION_TYPE_NVGRE: u32 = 8u32; +pub const NDIS_GFP_ENCAPSULATION_TYPE_VXLAN: u32 = 16u32; +pub const NDIS_GFP_EXACT_MATCH_PROFILE_RDMA_FLOW: u32 = 1u32; +pub const NDIS_GFP_EXACT_MATCH_PROFILE_REVISION_1: u32 = 1u32; +pub const NDIS_GFP_HEADER_GROUP_EXACT_MATCH_IS_TTL_ONE: u32 = 1u32; +pub const NDIS_GFP_HEADER_GROUP_EXACT_MATCH_PROFILE_IS_TTL_ONE: u32 = 1u32; +pub const NDIS_GFP_HEADER_GROUP_EXACT_MATCH_PROFILE_REVISION_1: u32 = 1u32; +pub const NDIS_GFP_HEADER_GROUP_EXACT_MATCH_REVISION_1: u32 = 1u32; +pub const NDIS_GFP_HEADER_GROUP_WILDCARD_MATCH_IS_TTL_ONE: u32 = 1u32; +pub const NDIS_GFP_HEADER_GROUP_WILDCARD_MATCH_PROFILE_IS_TTL_ONE: u32 = 1u32; +pub const NDIS_GFP_HEADER_GROUP_WILDCARD_MATCH_PROFILE_REVISION_1: u32 = 1u32; +pub const NDIS_GFP_HEADER_GROUP_WILDCARD_MATCH_REVISION_1: u32 = 1u32; +pub const NDIS_GFP_HEADER_PRESENT_ESP: u32 = 2048u32; +pub const NDIS_GFP_HEADER_PRESENT_ETHERNET: u32 = 1u32; +pub const NDIS_GFP_HEADER_PRESENT_ICMP: u32 = 32u32; +pub const NDIS_GFP_HEADER_PRESENT_IPV4: u32 = 2u32; +pub const NDIS_GFP_HEADER_PRESENT_IPV6: u32 = 4u32; +pub const NDIS_GFP_HEADER_PRESENT_IP_IN_GRE_ENCAP: u32 = 256u32; +pub const NDIS_GFP_HEADER_PRESENT_IP_IN_IP_ENCAP: u32 = 128u32; +pub const NDIS_GFP_HEADER_PRESENT_NO_ENCAP: u32 = 64u32; +pub const NDIS_GFP_HEADER_PRESENT_NVGRE_ENCAP: u32 = 512u32; +pub const NDIS_GFP_HEADER_PRESENT_TCP: u32 = 8u32; +pub const NDIS_GFP_HEADER_PRESENT_UDP: u32 = 16u32; +pub const NDIS_GFP_HEADER_PRESENT_VXLAN_ENCAP: u32 = 1024u32; +pub const NDIS_GFP_UNDEFINED_PROFILE_ID: u32 = 0u32; +pub const NDIS_GFP_WILDCARD_MATCH_PROFILE_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_COUNTER_INFO_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_COUNTER_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_COUNTER_PARAMETERS_CLIENT_SPECIFIED_ADDRESS: u32 = 1u32; +pub const NDIS_GFT_COUNTER_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_COUNTER_VALUE_ARRAY_GET_VALUES: u32 = 2u32; +pub const NDIS_GFT_COUNTER_VALUE_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_COUNTER_VALUE_ARRAY_UPDATE_MEMORY_MAPPED_COUNTERS: u32 = 1u32; +pub const NDIS_GFT_CUSTOM_ACTION_LAST_ACTION: u32 = 1u32; +pub const NDIS_GFT_CUSTOM_ACTION_PROFILE_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_CUSTOM_ACTION_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_DELETE_PROFILE_ALL_PROFILES: u32 = 1u32; +pub const NDIS_GFT_DELETE_PROFILE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_DELETE_TABLE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_EMFE_ADD_IN_ACTIVATED_STATE: u32 = 1u32; +pub const NDIS_GFT_EMFE_ALL_VPORT_FLOW_ENTRIES: u32 = 33554432u32; +pub const NDIS_GFT_EMFE_COPY_AFTER_TCP_FIN_FLAG_SET: u32 = 2097152u32; +pub const NDIS_GFT_EMFE_COPY_AFTER_TCP_RST_FLAG_SET: u32 = 4194304u32; +pub const NDIS_GFT_EMFE_COPY_ALL_PACKETS: u32 = 65536u32; +pub const NDIS_GFT_EMFE_COPY_CONDITION_CHANGED: u32 = 16777216u32; +pub const NDIS_GFT_EMFE_COPY_FIRST_PACKET: u32 = 131072u32; +pub const NDIS_GFT_EMFE_COPY_WHEN_TCP_FLAG_SET: u32 = 262144u32; +pub const NDIS_GFT_EMFE_COUNTER_ALLOCATE: u32 = 1u32; +pub const NDIS_GFT_EMFE_COUNTER_CLIENT_SPECIFIED_ADDRESS: u32 = 4u32; +pub const NDIS_GFT_EMFE_COUNTER_MEMORY_MAPPED: u32 = 2u32; +pub const NDIS_GFT_EMFE_COUNTER_TRACK_TCP_FLOW: u32 = 8u32; +pub const NDIS_GFT_EMFE_CUSTOM_ACTION_PRESENT: u32 = 524288u32; +pub const NDIS_GFT_EMFE_MATCH_AND_ACTION_MUST_BE_SUPPORTED: u32 = 2u32; +pub const NDIS_GFT_EMFE_META_ACTION_BEFORE_HEADER_TRANSPOSITION: u32 = 1048576u32; +pub const NDIS_GFT_EMFE_RDMA_FLOW: u32 = 4u32; +pub const NDIS_GFT_EMFE_REDIRECT_TO_EGRESS_QUEUE_OF_VPORT: u32 = 8192u32; +pub const NDIS_GFT_EMFE_REDIRECT_TO_EGRESS_QUEUE_OF_VPORT_IF_TTL_IS_ONE: u32 = 32768u32; +pub const NDIS_GFT_EMFE_REDIRECT_TO_INGRESS_QUEUE_OF_VPORT: u32 = 4096u32; +pub const NDIS_GFT_EMFE_REDIRECT_TO_INGRESS_QUEUE_OF_VPORT_IF_TTL_IS_ONE: u32 = 16384u32; +pub const NDIS_GFT_EXACT_MATCH_FLOW_ENTRY_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_FLOW_ENTRY_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_FLOW_ENTRY_ID_ALL_NIC_SWITCH_FLOW_ENTRIES: u32 = 1u32; +pub const NDIS_GFT_FLOW_ENTRY_ID_ALL_TABLE_FLOW_ENTRIES: u32 = 2u32; +pub const NDIS_GFT_FLOW_ENTRY_ID_ALL_VPORT_FLOW_ENTRIES: u32 = 4u32; +pub const NDIS_GFT_FLOW_ENTRY_ID_ARRAY_COUNTER_VALUES: u32 = 65536u32; +pub const NDIS_GFT_FLOW_ENTRY_ID_ARRAY_DEFINED: u32 = 16u32; +pub const NDIS_GFT_FLOW_ENTRY_ID_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_FLOW_ENTRY_ID_RANGE_DEFINED: u32 = 8u32; +pub const NDIS_GFT_FLOW_ENTRY_INFO_ALL_FLOW_ENTRIES: u32 = 1u32; +pub const NDIS_GFT_FLOW_ENTRY_INFO_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_FREE_COUNTER_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_HEADER_GROUP_TRANSPOSITION_DECREMENT_TTL_IF_NOT_ONE: u32 = 1u32; +pub const NDIS_GFT_HEADER_GROUP_TRANSPOSITION_PROFILE_DECREMENT_TTL_IF_NOT_ONE: u32 = 1u32; +pub const NDIS_GFT_HEADER_GROUP_TRANSPOSITION_PROFILE_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_HEADER_GROUP_TRANSPOSITION_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_HEADER_TRANSPOSITION_PROFILE_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_HTP_COPY_ALL_PACKETS: u32 = 16u32; +pub const NDIS_GFT_HTP_COPY_FIRST_PACKET: u32 = 32u32; +pub const NDIS_GFT_HTP_COPY_WHEN_TCP_FLAG_SET: u32 = 64u32; +pub const NDIS_GFT_HTP_CUSTOM_ACTION_PRESENT: u32 = 128u32; +pub const NDIS_GFT_HTP_META_ACTION_BEFORE_HEADER_TRANSPOSITION: u32 = 256u32; +pub const NDIS_GFT_HTP_REDIRECT_TO_EGRESS_QUEUE_OF_VPORT: u32 = 2u32; +pub const NDIS_GFT_HTP_REDIRECT_TO_EGRESS_QUEUE_OF_VPORT_IF_TTL_IS_ONE: u32 = 8u32; +pub const NDIS_GFT_HTP_REDIRECT_TO_INGRESS_QUEUE_OF_VPORT: u32 = 1u32; +pub const NDIS_GFT_HTP_REDIRECT_TO_INGRESS_QUEUE_OF_VPORT_IF_TTL_IS_ONE: u32 = 4u32; +pub const NDIS_GFT_MAX_COUNTER_OBJECTS_PER_FLOW_ENTRY: u32 = 8u32; +pub const NDIS_GFT_OFFLOAD_CAPABILITIES_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_OFFLOAD_CAPS_8021P_PRIORITY_MASK: u32 = 131072u32; +pub const NDIS_GFT_OFFLOAD_CAPS_ADD_FLOW_ENTRY_DEACTIVATED_PREFERRED: u32 = 1u32; +pub const NDIS_GFT_OFFLOAD_CAPS_ALLOW: u32 = 262144u32; +pub const NDIS_GFT_OFFLOAD_CAPS_CLIENT_SPECIFIED_MEMORY_MAPPED_COUNTERS: u32 = 16u32; +pub const NDIS_GFT_OFFLOAD_CAPS_COMBINED_COUNTER_AND_STATE: u32 = 256u32; +pub const NDIS_GFT_OFFLOAD_CAPS_COPY_ALL: u32 = 256u32; +pub const NDIS_GFT_OFFLOAD_CAPS_COPY_FIRST: u32 = 512u32; +pub const NDIS_GFT_OFFLOAD_CAPS_COPY_WHEN_TCP_FLAG_SET: u32 = 1024u32; +pub const NDIS_GFT_OFFLOAD_CAPS_DESIGNATED_EXCEPTION_VPORT: u32 = 32768u32; +pub const NDIS_GFT_OFFLOAD_CAPS_DROP: u32 = 524288u32; +pub const NDIS_GFT_OFFLOAD_CAPS_DSCP_MASK: u32 = 65536u32; +pub const NDIS_GFT_OFFLOAD_CAPS_EGRESS_AGGREGATE_COUNTERS: u32 = 64u32; +pub const NDIS_GFT_OFFLOAD_CAPS_EGRESS_EXACT_MATCH: u32 = 8u32; +pub const NDIS_GFT_OFFLOAD_CAPS_EGRESS_WILDCARD_MATCH: u32 = 2u32; +pub const NDIS_GFT_OFFLOAD_CAPS_EXT_VPORT_EGRESS_EXACT_MATCH: u32 = 128u32; +pub const NDIS_GFT_OFFLOAD_CAPS_EXT_VPORT_EGRESS_WILDCARD_MATCH: u32 = 32u32; +pub const NDIS_GFT_OFFLOAD_CAPS_EXT_VPORT_INGRESS_EXACT_MATCH: u32 = 64u32; +pub const NDIS_GFT_OFFLOAD_CAPS_EXT_VPORT_INGRESS_WILDCARD_MATCH: u32 = 16u32; +pub const NDIS_GFT_OFFLOAD_CAPS_IGNORE_ACTION_SUPPORTED: u32 = 8u32; +pub const NDIS_GFT_OFFLOAD_CAPS_INGRESS_AGGREGATE_COUNTERS: u32 = 32u32; +pub const NDIS_GFT_OFFLOAD_CAPS_INGRESS_EXACT_MATCH: u32 = 4u32; +pub const NDIS_GFT_OFFLOAD_CAPS_INGRESS_WILDCARD_MATCH: u32 = 1u32; +pub const NDIS_GFT_OFFLOAD_CAPS_MEMORY_MAPPED_COUNTERS: u32 = 1u32; +pub const NDIS_GFT_OFFLOAD_CAPS_MEMORY_MAPPED_PAKCET_AND_BYTE_COUNTERS: u32 = 2u32; +pub const NDIS_GFT_OFFLOAD_CAPS_META_ACTION_AFTER_HEADER_TRANSPOSITION: u32 = 8192u32; +pub const NDIS_GFT_OFFLOAD_CAPS_META_ACTION_BEFORE_HEADER_TRANSPOSITION: u32 = 4096u32; +pub const NDIS_GFT_OFFLOAD_CAPS_MODIFY: u32 = 4u32; +pub const NDIS_GFT_OFFLOAD_CAPS_PER_FLOW_ENTRY_COUNTERS: u32 = 4u32; +pub const NDIS_GFT_OFFLOAD_CAPS_PER_PACKET_COUNTER_UPDATE: u32 = 8u32; +pub const NDIS_GFT_OFFLOAD_CAPS_PER_VPORT_EXCEPTION_VPORT: u32 = 16384u32; +pub const NDIS_GFT_OFFLOAD_CAPS_POP: u32 = 1u32; +pub const NDIS_GFT_OFFLOAD_CAPS_PUSH: u32 = 2u32; +pub const NDIS_GFT_OFFLOAD_CAPS_RATE_LIMITING_QUEUE_SUPPORTED: u32 = 2u32; +pub const NDIS_GFT_OFFLOAD_CAPS_REDIRECT_TO_EGRESS_QUEUE_OF_VPORT: u32 = 32u32; +pub const NDIS_GFT_OFFLOAD_CAPS_REDIRECT_TO_EGRESS_QUEUE_OF_VPORT_IF_TTL_IS_ONE: u32 = 128u32; +pub const NDIS_GFT_OFFLOAD_CAPS_REDIRECT_TO_INGRESS_QUEUE_OF_VPORT: u32 = 16u32; +pub const NDIS_GFT_OFFLOAD_CAPS_REDIRECT_TO_INGRESS_QUEUE_OF_VPORT_IF_TTL_IS_ONE: u32 = 64u32; +pub const NDIS_GFT_OFFLOAD_CAPS_SAMPLE: u32 = 2048u32; +pub const NDIS_GFT_OFFLOAD_CAPS_TRACK_TCP_FLOW_STATE: u32 = 128u32; +pub const NDIS_GFT_OFFLOAD_PARAMETERS_CUSTOM_PROVIDER_RESERVED: u32 = 4278190080u32; +pub const NDIS_GFT_OFFLOAD_PARAMETERS_ENABLE_OFFLOAD: u32 = 1u32; +pub const NDIS_GFT_OFFLOAD_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_PROFILE_INFO_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_PROFILE_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_RESERVED_CUSTOM_ACTIONS: u32 = 256u32; +pub const NDIS_GFT_STATISTICS_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_TABLE_INCLUDE_EXTERNAL_VPPORT: u32 = 1u32; +pub const NDIS_GFT_TABLE_INFO_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_TABLE_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_TABLE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_UNDEFINED_COUNTER_ID: u32 = 0u32; +pub const NDIS_GFT_UNDEFINED_CUSTOM_ACTION: u32 = 0u32; +pub const NDIS_GFT_UNDEFINED_FLOW_ENTRY_ID: u32 = 0u32; +pub const NDIS_GFT_UNDEFINED_TABLE_ID: u32 = 0u32; +pub const NDIS_GFT_VPORT_DSCP_FLAGS_CHANGED: u32 = 67108864u32; +pub const NDIS_GFT_VPORT_DSCP_GUARD_ENABLE_RX: u32 = 1u32; +pub const NDIS_GFT_VPORT_DSCP_GUARD_ENABLE_TX: u32 = 2u32; +pub const NDIS_GFT_VPORT_DSCP_MASK_CHANGED: u32 = 8388608u32; +pub const NDIS_GFT_VPORT_DSCP_MASK_ENABLE_RX: u32 = 4u32; +pub const NDIS_GFT_VPORT_DSCP_MASK_ENABLE_TX: u32 = 8u32; +pub const NDIS_GFT_VPORT_ENABLE: u32 = 1u32; +pub const NDIS_GFT_VPORT_ENABLE_STATE_CHANGED: u32 = 1048576u32; +pub const NDIS_GFT_VPORT_EXCEPTION_VPORT_CHANGED: u32 = 2097152u32; +pub const NDIS_GFT_VPORT_MAX_DSCP_MASK_COUNTER_OBJECTS: u32 = 64u32; +pub const NDIS_GFT_VPORT_MAX_PRIORITY_MASK_COUNTER_OBJECTS: u32 = 8u32; +pub const NDIS_GFT_VPORT_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_GFT_VPORT_PARAMS_CHANGE_MASK: u32 = 4293918720u32; +pub const NDIS_GFT_VPORT_PARAMS_CUSTOM_PROVIDER_RESERVED: u32 = 1044480u32; +pub const NDIS_GFT_VPORT_PARSE_VXLAN: u32 = 2u32; +pub const NDIS_GFT_VPORT_PARSE_VXLAN_NOT_IN_SRC_PORT_RANGE: u32 = 4u32; +pub const NDIS_GFT_VPORT_PRIORITY_MASK_CHANGED: u32 = 16777216u32; +pub const NDIS_GFT_VPORT_SAMPLING_RATE_CHANGED: u32 = 4194304u32; +pub const NDIS_GFT_VPORT_VXLAN_SETTINGS_CHANGED: u32 = 33554432u32; +pub const NDIS_GFT_WCFE_ADD_IN_ACTIVATED_STATE: u32 = 1u32; +pub const NDIS_GFT_WCFE_COPY_ALL_PACKETS: u32 = 32u32; +pub const NDIS_GFT_WCFE_COUNTER_ALLOCATE: u32 = 1u32; +pub const NDIS_GFT_WCFE_COUNTER_CLIENT_SPECIFIED_ADDRESS: u32 = 4u32; +pub const NDIS_GFT_WCFE_COUNTER_MEMORY_MAPPED: u32 = 2u32; +pub const NDIS_GFT_WCFE_CUSTOM_ACTION_PRESENT: u32 = 64u32; +pub const NDIS_GFT_WCFE_REDIRECT_TO_EGRESS_QUEUE_OF_VPORT: u32 = 4u32; +pub const NDIS_GFT_WCFE_REDIRECT_TO_EGRESS_QUEUE_OF_VPORT_IF_TTL_IS_ONE: u32 = 16u32; +pub const NDIS_GFT_WCFE_REDIRECT_TO_INGRESS_QUEUE_OF_VPORT: u32 = 2u32; +pub const NDIS_GFT_WCFE_REDIRECT_TO_INGRESS_QUEUE_OF_VPORT_IF_TTL_IS_ONE: u32 = 8u32; +pub const NDIS_GFT_WILDCARD_MATCH_FLOW_ENTRY_REVISION_1: u32 = 1u32; +pub const NDIS_HARDWARE_CROSSTIMESTAMP_REVISION_1: u32 = 1u32; +pub const NDIS_HASH_FUNCTION_MASK: u32 = 255u32; +pub const NDIS_HASH_IPV4: u32 = 256u32; +pub const NDIS_HASH_IPV6: u32 = 1024u32; +pub const NDIS_HASH_IPV6_EX: u32 = 2048u32; +pub const NDIS_HASH_TCP_IPV4: u32 = 512u32; +pub const NDIS_HASH_TCP_IPV6: u32 = 4096u32; +pub const NDIS_HASH_TCP_IPV6_EX: u32 = 8192u32; +pub const NDIS_HASH_TYPE_MASK: u32 = 16776960u32; +pub const NDIS_HASH_UDP_IPV4: u32 = 16384u32; +pub const NDIS_HASH_UDP_IPV6: u32 = 32768u32; +pub const NDIS_HASH_UDP_IPV6_EX: u32 = 65536u32; +pub const NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT: u32 = 1u32; +pub const NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS: u32 = 2u32; +pub const NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS: u32 = 4u32; +pub const NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS: u32 = 8u32; +pub const NDIS_HD_SPLIT_COMBINE_ALL_HEADERS: u32 = 1u32; +pub const NDIS_HD_SPLIT_CURRENT_CONFIG_REVISION_1: u32 = 1u32; +pub const NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT: u32 = 1u32; +pub const NDIS_HD_SPLIT_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_HYPERVISOR_INFO_FLAG_HYPERVISOR_PRESENT: u32 = 1u32; +pub const NDIS_HYPERVISOR_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_INTERRUPT_MODERATION_CHANGE_NEEDS_REINITIALIZE: u32 = 2u32; +pub const NDIS_INTERRUPT_MODERATION_CHANGE_NEEDS_RESET: u32 = 1u32; +pub const NDIS_INTERRUPT_MODERATION_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_IP_OPER_STATE_REVISION_1: u32 = 1u32; +pub const NDIS_IP_OPER_STATUS_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_ISOLATION_NAME_MAX_STRING_SIZE: u32 = 127u32; +pub const NDIS_ISOLATION_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_LINK_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_LINK_STATE_DUPLEX_AUTO_NEGOTIATED: u32 = 4u32; +pub const NDIS_LINK_STATE_PAUSE_FUNCTIONS_AUTO_NEGOTIATED: u32 = 8u32; +pub const NDIS_LINK_STATE_RCV_LINK_SPEED_AUTO_NEGOTIATED: u32 = 2u32; +pub const NDIS_LINK_STATE_REVISION_1: u32 = 1u32; +pub const NDIS_LINK_STATE_XMIT_LINK_SPEED_AUTO_NEGOTIATED: u32 = 1u32; +pub const NDIS_MAC_OPTION_8021P_PRIORITY: u32 = 64u32; +pub const NDIS_MAC_OPTION_8021Q_VLAN: u32 = 512u32; +pub const NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA: u32 = 1u32; +pub const NDIS_MAC_OPTION_EOTX_INDICATION: u32 = 32u32; +pub const NDIS_MAC_OPTION_FULL_DUPLEX: u32 = 16u32; +pub const NDIS_MAC_OPTION_NO_LOOPBACK: u32 = 8u32; +pub const NDIS_MAC_OPTION_RECEIVE_AT_DPC: u32 = 256u32; +pub const NDIS_MAC_OPTION_RECEIVE_SERIALIZED: u32 = 2u32; +pub const NDIS_MAC_OPTION_RESERVED: u32 = 2147483648u32; +pub const NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE: u32 = 128u32; +pub const NDIS_MAC_OPTION_TRANSFERS_NOT_PEND: u32 = 4u32; +pub const NDIS_MAXIMUM_PORTS: u32 = 16777216u32; +pub const NDIS_MEDIA_CAP_RECEIVE: u32 = 2u32; +pub const NDIS_MEDIA_CAP_TRANSMIT: u32 = 1u32; +pub const NDIS_NDK_CAPABILITIES_REVISION_1: u32 = 1u32; +pub const NDIS_NDK_CONNECTIONS_REVISION_1: u32 = 1u32; +pub const NDIS_NDK_LOCAL_ENDPOINTS_REVISION_1: u32 = 1u32; +pub const NDIS_NDK_STATISTICS_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_CAPABILITIES_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_CAPABILITIES_REVISION_2: u32 = 2u32; +pub const NDIS_NIC_SWITCH_CAPABILITIES_REVISION_3: u32 = 3u32; +pub const NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED: u32 = 4u32; +pub const NDIS_NIC_SWITCH_CAPS_NIC_SWITCH_WITHOUT_IOV_SUPPORTED: u32 = 64u32; +pub const NDIS_NIC_SWITCH_CAPS_PER_VPORT_INTERRUPT_MODERATION_SUPPORTED: u32 = 2u32; +pub const NDIS_NIC_SWITCH_CAPS_RSS_ON_PF_VPORTS_SUPPORTED: u32 = 128u32; +pub const NDIS_NIC_SWITCH_CAPS_RSS_PARAMETERS_PER_PF_VPORT_SUPPORTED: u32 = 32u32; +pub const NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_FUNCTION_SUPPORTED: u32 = 512u32; +pub const NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_KEY_SUPPORTED: u32 = 2048u32; +pub const NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_TYPE_SUPPORTED: u32 = 1024u32; +pub const NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_INDIRECTION_TABLE_SIZE_RESTRICTED: u32 = 4096u32; +pub const NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_INDIRECTION_TABLE_SUPPORTED: u32 = 256u32; +pub const NDIS_NIC_SWITCH_CAPS_SINGLE_VPORT_POOL: u32 = 16u32; +pub const NDIS_NIC_SWITCH_CAPS_VF_RSS_SUPPORTED: u32 = 8u32; +pub const NDIS_NIC_SWITCH_CAPS_VLAN_SUPPORTED: u32 = 1u32; +pub const NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_FREE_VF_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_INFO_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_PARAMETERS_CHANGE_MASK: u32 = 4294901760u32; +pub const NDIS_NIC_SWITCH_PARAMETERS_DEFAULT_NUMBER_OF_QUEUE_PAIRS_FOR_DEFAULT_VPORT: u32 = 1u32; +pub const NDIS_NIC_SWITCH_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_PARAMETERS_REVISION_2: u32 = 2u32; +pub const NDIS_NIC_SWITCH_PARAMETERS_SWITCH_NAME_CHANGED: u32 = 65536u32; +pub const NDIS_NIC_SWITCH_VF_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH: u32 = 1u32; +pub const NDIS_NIC_SWITCH_VF_INFO_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_VF_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_VF_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION: u32 = 1u32; +pub const NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH: u32 = 2u32; +pub const NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_VPORT_INFO_GFT_ENABLED: u32 = 4u32; +pub const NDIS_NIC_SWITCH_VPORT_INFO_LOOKAHEAD_SPLIT_ENABLED: u32 = 1u32; +pub const NDIS_NIC_SWITCH_VPORT_INFO_PACKET_DIRECT_RX_ONLY: u32 = 2u32; +pub const NDIS_NIC_SWITCH_VPORT_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMETERS_REVISION_2: u32 = 2u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMS_CHANGE_MASK: u32 = 4294901760u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMS_ENFORCE_MAX_SG_LIST: u32 = 32768u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMS_FLAGS_CHANGED: u32 = 65536u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMS_INT_MOD_CHANGED: u32 = 262144u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMS_LOOKAHEAD_SPLIT_ENABLED: u32 = 1u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMS_NAME_CHANGED: u32 = 131072u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMS_NDK_PARAMS_CHANGED: u32 = 2097152u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMS_NUM_QUEUE_PAIRS_CHANGED: u32 = 8388608u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMS_PACKET_DIRECT_RX_ONLY: u32 = 2u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMS_PROCESSOR_AFFINITY_CHANGED: u32 = 1048576u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMS_QOS_SQ_ID_CHANGED: u32 = 4194304u32; +pub const NDIS_NIC_SWITCH_VPORT_PARAMS_STATE_CHANGED: u32 = 524288u32; +pub const NDIS_OBJECT_REVISION_1: u32 = 1u32; +pub const NDIS_OBJECT_TYPE_BIND_PARAMETERS: u32 = 134u32; +pub const NDIS_OBJECT_TYPE_CLIENT_CHIMNEY_OFFLOAD_CHARACTERISTICS: u32 = 147u32; +pub const NDIS_OBJECT_TYPE_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS: u32 = 142u32; +pub const NDIS_OBJECT_TYPE_CONFIGURATION_OBJECT: u32 = 169u32; +pub const NDIS_OBJECT_TYPE_CO_CALL_MANAGER_OPTIONAL_HANDLERS: u32 = 165u32; +pub const NDIS_OBJECT_TYPE_CO_CLIENT_OPTIONAL_HANDLERS: u32 = 166u32; +pub const NDIS_OBJECT_TYPE_CO_MINIPORT_CHARACTERISTICS: u32 = 145u32; +pub const NDIS_OBJECT_TYPE_CO_PROTOCOL_CHARACTERISTICS: u32 = 144u32; +pub const NDIS_OBJECT_TYPE_DEFAULT: u32 = 128u32; +pub const NDIS_OBJECT_TYPE_DEVICE_OBJECT_ATTRIBUTES: u32 = 133u32; +pub const NDIS_OBJECT_TYPE_DRIVER_WRAPPER_OBJECT: u32 = 170u32; +pub const NDIS_OBJECT_TYPE_FILTER_ATTACH_PARAMETERS: u32 = 153u32; +pub const NDIS_OBJECT_TYPE_FILTER_ATTRIBUTES: u32 = 141u32; +pub const NDIS_OBJECT_TYPE_FILTER_DRIVER_CHARACTERISTICS: u32 = 139u32; +pub const NDIS_OBJECT_TYPE_FILTER_PARTIAL_CHARACTERISTICS: u32 = 140u32; +pub const NDIS_OBJECT_TYPE_FILTER_PAUSE_PARAMETERS: u32 = 154u32; +pub const NDIS_OBJECT_TYPE_FILTER_RESTART_PARAMETERS: u32 = 155u32; +pub const NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES: u32 = 171u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES: u32 = 159u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES: u32 = 175u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_NATIVE_802_11_ATTRIBUTES: u32 = 161u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_NDK_ATTRIBUTES: u32 = 179u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES: u32 = 160u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_PACKET_DIRECT_ATTRIBUTES: u32 = 197u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES: u32 = 158u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES: u32 = 164u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_DEVICE_POWER_NOTIFICATION: u32 = 198u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS: u32 = 138u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_INIT_PARAMETERS: u32 = 129u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_INTERRUPT: u32 = 132u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_PNP_CHARACTERISTICS: u32 = 146u32; +pub const NDIS_OBJECT_TYPE_MINIPORT_SS_CHARACTERISTICS: u32 = 180u32; +pub const NDIS_OBJECT_TYPE_NDK_PROVIDER_CHARACTERISTICS: u32 = 178u32; +pub const NDIS_OBJECT_TYPE_NSI_COMPARTMENT_RW_STRUCT: u32 = 173u32; +pub const NDIS_OBJECT_TYPE_NSI_INTERFACE_PERSIST_RW_STRUCT: u32 = 174u32; +pub const NDIS_OBJECT_TYPE_NSI_NETWORK_RW_STRUCT: u32 = 172u32; +pub const NDIS_OBJECT_TYPE_OFFLOAD: u32 = 167u32; +pub const NDIS_OBJECT_TYPE_OFFLOAD_ENCAPSULATION: u32 = 168u32; +pub const NDIS_OBJECT_TYPE_OID_REQUEST: u32 = 150u32; +pub const NDIS_OBJECT_TYPE_OPEN_PARAMETERS: u32 = 135u32; +pub const NDIS_OBJECT_TYPE_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_1: u32 = 1u32; +pub const NDIS_OBJECT_TYPE_PCI_DEVICE_CUSTOM_PROPERTIES_REVISION_2: u32 = 2u32; +pub const NDIS_OBJECT_TYPE_PD_RECEIVE_QUEUE: u32 = 191u32; +pub const NDIS_OBJECT_TYPE_PD_TRANSMIT_QUEUE: u32 = 190u32; +pub const NDIS_OBJECT_TYPE_PORT_CHARACTERISTICS: u32 = 156u32; +pub const NDIS_OBJECT_TYPE_PORT_STATE: u32 = 157u32; +pub const NDIS_OBJECT_TYPE_PROTOCOL_DRIVER_CHARACTERISTICS: u32 = 149u32; +pub const NDIS_OBJECT_TYPE_PROTOCOL_RESTART_PARAMETERS: u32 = 163u32; +pub const NDIS_OBJECT_TYPE_PROVIDER_CHIMNEY_OFFLOAD_CHARACTERISTICS: u32 = 148u32; +pub const NDIS_OBJECT_TYPE_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS: u32 = 143u32; +pub const NDIS_OBJECT_TYPE_QOS_CAPABILITIES: u32 = 181u32; +pub const NDIS_OBJECT_TYPE_QOS_CLASSIFICATION_ELEMENT: u32 = 183u32; +pub const NDIS_OBJECT_TYPE_QOS_PARAMETERS: u32 = 182u32; +pub const NDIS_OBJECT_TYPE_REQUEST_EX: u32 = 150u32; +pub const NDIS_OBJECT_TYPE_RESTART_GENERAL_ATTRIBUTES: u32 = 162u32; +pub const NDIS_OBJECT_TYPE_RSS_CAPABILITIES: u32 = 136u32; +pub const NDIS_OBJECT_TYPE_RSS_PARAMETERS: u32 = 137u32; +pub const NDIS_OBJECT_TYPE_RSS_PARAMETERS_V2: u32 = 200u32; +pub const NDIS_OBJECT_TYPE_RSS_PROCESSOR_INFO: u32 = 177u32; +pub const NDIS_OBJECT_TYPE_RSS_SET_INDIRECTION_ENTRIES: u32 = 201u32; +pub const NDIS_OBJECT_TYPE_SG_DMA_DESCRIPTION: u32 = 131u32; +pub const NDIS_OBJECT_TYPE_SHARED_MEMORY_PROVIDER_CHARACTERISTICS: u32 = 176u32; +pub const NDIS_OBJECT_TYPE_STATUS_INDICATION: u32 = 152u32; +pub const NDIS_OBJECT_TYPE_SWITCH_OPTIONAL_HANDLERS: u32 = 184u32; +pub const NDIS_OBJECT_TYPE_TIMER_CHARACTERISTICS: u32 = 151u32; +pub const NDIS_OFFLOAD_FLAGS_GROUP_CHECKSUM_CAPABILITIES: u32 = 1u32; +pub const NDIS_OFFLOAD_NOT_SUPPORTED: u32 = 0u32; +pub const NDIS_OFFLOAD_PARAMETERS_CONNECTION_OFFLOAD_DISABLED: u32 = 1u32; +pub const NDIS_OFFLOAD_PARAMETERS_CONNECTION_OFFLOAD_ENABLED: u32 = 2u32; +pub const NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_AND_ESP_ENABLED: u32 = 4u32; +pub const NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_ENABLED: u32 = 2u32; +pub const NDIS_OFFLOAD_PARAMETERS_IPSECV1_DISABLED: u32 = 1u32; +pub const NDIS_OFFLOAD_PARAMETERS_IPSECV1_ESP_ENABLED: u32 = 3u32; +pub const NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_AND_ESP_ENABLED: u32 = 4u32; +pub const NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_ENABLED: u32 = 2u32; +pub const NDIS_OFFLOAD_PARAMETERS_IPSECV2_DISABLED: u32 = 1u32; +pub const NDIS_OFFLOAD_PARAMETERS_IPSECV2_ESP_ENABLED: u32 = 3u32; +pub const NDIS_OFFLOAD_PARAMETERS_LSOV1_DISABLED: u32 = 1u32; +pub const NDIS_OFFLOAD_PARAMETERS_LSOV1_ENABLED: u32 = 2u32; +pub const NDIS_OFFLOAD_PARAMETERS_LSOV2_DISABLED: u32 = 1u32; +pub const NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED: u32 = 2u32; +pub const NDIS_OFFLOAD_PARAMETERS_NO_CHANGE: u32 = 0u32; +pub const NDIS_OFFLOAD_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_OFFLOAD_PARAMETERS_REVISION_2: u32 = 2u32; +pub const NDIS_OFFLOAD_PARAMETERS_REVISION_3: u32 = 3u32; +pub const NDIS_OFFLOAD_PARAMETERS_REVISION_4: u32 = 4u32; +pub const NDIS_OFFLOAD_PARAMETERS_REVISION_5: u32 = 5u32; +pub const NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED: u32 = 1u32; +pub const NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED: u32 = 2u32; +pub const NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED: u32 = 3u32; +pub const NDIS_OFFLOAD_PARAMETERS_SKIP_REGISTRY_UPDATE: u32 = 1u32; +pub const NDIS_OFFLOAD_PARAMETERS_TX_ENABLED_RX_DISABLED: u32 = 2u32; +pub const NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED: u32 = 1u32; +pub const NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED: u32 = 4u32; +pub const NDIS_OFFLOAD_PARAMETERS_USO_DISABLED: u32 = 1u32; +pub const NDIS_OFFLOAD_PARAMETERS_USO_ENABLED: u32 = 2u32; +pub const NDIS_OFFLOAD_REVISION_1: u32 = 1u32; +pub const NDIS_OFFLOAD_REVISION_2: u32 = 2u32; +pub const NDIS_OFFLOAD_REVISION_3: u32 = 3u32; +pub const NDIS_OFFLOAD_REVISION_4: u32 = 4u32; +pub const NDIS_OFFLOAD_REVISION_5: u32 = 5u32; +pub const NDIS_OFFLOAD_REVISION_6: u32 = 6u32; +pub const NDIS_OFFLOAD_REVISION_7: u32 = 7u32; +pub const NDIS_OFFLOAD_SET_NO_CHANGE: u32 = 0u32; +pub const NDIS_OFFLOAD_SET_OFF: u32 = 2u32; +pub const NDIS_OFFLOAD_SET_ON: u32 = 1u32; +pub const NDIS_OFFLOAD_SUPPORTED: u32 = 1u32; +pub const NDIS_OPER_STATE_REVISION_1: u32 = 1u32; +pub const NDIS_PACKET_TYPE_ALL_FUNCTIONAL: u32 = 8192u32; +pub const NDIS_PACKET_TYPE_ALL_LOCAL: u32 = 128u32; +pub const NDIS_PACKET_TYPE_ALL_MULTICAST: u32 = 4u32; +pub const NDIS_PACKET_TYPE_BROADCAST: u32 = 8u32; +pub const NDIS_PACKET_TYPE_DIRECTED: u32 = 1u32; +pub const NDIS_PACKET_TYPE_FUNCTIONAL: u32 = 16384u32; +pub const NDIS_PACKET_TYPE_GROUP: u32 = 4096u32; +pub const NDIS_PACKET_TYPE_MAC_FRAME: u32 = 32768u32; +pub const NDIS_PACKET_TYPE_MULTICAST: u32 = 2u32; +pub const NDIS_PACKET_TYPE_NO_LOCAL: u32 = 65536u32; +pub const NDIS_PACKET_TYPE_PROMISCUOUS: u32 = 32u32; +pub const NDIS_PACKET_TYPE_SMT: u32 = 64u32; +pub const NDIS_PACKET_TYPE_SOURCE_ROUTING: u32 = 16u32; +pub const NDIS_PD_CAPABILITIES_REVISION_1: u32 = 1u32; +pub const NDIS_PD_CAPS_DRAIN_NOTIFICATIONS_SUPPORTED: u32 = 2u32; +pub const NDIS_PD_CAPS_NOTIFICATION_MODERATION_COUNT_SUPPORTED: u32 = 8u32; +pub const NDIS_PD_CAPS_NOTIFICATION_MODERATION_INTERVAL_SUPPORTED: u32 = 4u32; +pub const NDIS_PD_CAPS_RECEIVE_FILTER_COUNTERS_SUPPORTED: u32 = 1u32; +pub const NDIS_PD_CONFIG_REVISION_1: u32 = 1u32; +pub const NDIS_PM_CAPABILITIES_REVISION_1: u32 = 1u32; +pub const NDIS_PM_CAPABILITIES_REVISION_2: u32 = 2u32; +pub const NDIS_PM_MAX_PATTERN_ID: u32 = 65535u32; +pub const NDIS_PM_MAX_STRING_SIZE: u32 = 64u32; +pub const NDIS_PM_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_PM_PARAMETERS_REVISION_2: u32 = 2u32; +pub const NDIS_PM_PRIVATE_PATTERN_ID: u32 = 1u32; +pub const NDIS_PM_PROTOCOL_OFFLOAD_80211_RSN_REKEY_ENABLED: u32 = 128u32; +pub const NDIS_PM_PROTOCOL_OFFLOAD_80211_RSN_REKEY_SUPPORTED: u32 = 128u32; +pub const NDIS_PM_PROTOCOL_OFFLOAD_ARP_ENABLED: u32 = 1u32; +pub const NDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED: u32 = 1u32; +pub const NDIS_PM_PROTOCOL_OFFLOAD_NS_ENABLED: u32 = 2u32; +pub const NDIS_PM_PROTOCOL_OFFLOAD_NS_SUPPORTED: u32 = 2u32; +pub const NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST: u32 = 1u32; +pub const NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST: u32 = 4294967295u32; +pub const NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_NORMAL: u32 = 268435456u32; +pub const NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1: u32 = 1u32; +pub const NDIS_PM_PROTOCOL_OFFLOAD_REVISION_2: u32 = 2u32; +pub const NDIS_PM_SELECTIVE_SUSPEND_ENABLED: u32 = 16u32; +pub const NDIS_PM_SELECTIVE_SUSPEND_SUPPORTED: u32 = 2u32; +pub const NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED: u32 = 1u32; +pub const NDIS_PM_WAKE_ON_MEDIA_CONNECT_SUPPORTED: u32 = 1u32; +pub const NDIS_PM_WAKE_ON_MEDIA_DISCONNECT_ENABLED: u32 = 2u32; +pub const NDIS_PM_WAKE_ON_MEDIA_DISCONNECT_SUPPORTED: u32 = 2u32; +pub const NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED: u32 = 1u32; +pub const NDIS_PM_WAKE_PACKET_REVISION_1: u32 = 1u32; +pub const NDIS_PM_WAKE_REASON_REVISION_1: u32 = 1u32; +pub const NDIS_PM_WOL_BITMAP_PATTERN_ENABLED: u32 = 1u32; +pub const NDIS_PM_WOL_BITMAP_PATTERN_SUPPORTED: u32 = 1u32; +pub const NDIS_PM_WOL_EAPOL_REQUEST_ID_MESSAGE_ENABLED: u32 = 65536u32; +pub const NDIS_PM_WOL_EAPOL_REQUEST_ID_MESSAGE_SUPPORTED: u32 = 65536u32; +pub const NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_ENABLED: u32 = 512u32; +pub const NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_SUPPORTED: u32 = 512u32; +pub const NDIS_PM_WOL_IPV4_TCP_SYN_ENABLED: u32 = 4u32; +pub const NDIS_PM_WOL_IPV4_TCP_SYN_SUPPORTED: u32 = 4u32; +pub const NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_ENABLED: u32 = 2048u32; +pub const NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_SUPPORTED: u32 = 2048u32; +pub const NDIS_PM_WOL_IPV6_TCP_SYN_ENABLED: u32 = 8u32; +pub const NDIS_PM_WOL_IPV6_TCP_SYN_SUPPORTED: u32 = 8u32; +pub const NDIS_PM_WOL_MAGIC_PACKET_ENABLED: u32 = 2u32; +pub const NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED: u32 = 2u32; +pub const NDIS_PM_WOL_PATTERN_REVISION_1: u32 = 1u32; +pub const NDIS_PM_WOL_PATTERN_REVISION_2: u32 = 2u32; +pub const NDIS_PM_WOL_PRIORITY_HIGHEST: u32 = 1u32; +pub const NDIS_PM_WOL_PRIORITY_LOWEST: u32 = 4294967295u32; +pub const NDIS_PM_WOL_PRIORITY_NORMAL: u32 = 268435456u32; +pub const NDIS_PNP_WAKE_UP_LINK_CHANGE: u32 = 4u32; +pub const NDIS_PNP_WAKE_UP_MAGIC_PACKET: u32 = 1u32; +pub const NDIS_PNP_WAKE_UP_PATTERN_MATCH: u32 = 2u32; +pub const NDIS_PORT_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_PORT_AUTHENTICATION_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_PORT_CHARACTERISTICS_REVISION_1: u32 = 1u32; +pub const NDIS_PORT_CHAR_USE_DEFAULT_AUTH_SETTINGS: u32 = 1u32; +pub const NDIS_PORT_STATE_REVISION_1: u32 = 1u32; +pub const NDIS_PROTOCOL_ID_DEFAULT: u32 = 0u32; +pub const NDIS_PROTOCOL_ID_IP6: u32 = 3u32; +pub const NDIS_PROTOCOL_ID_IPX: u32 = 6u32; +pub const NDIS_PROTOCOL_ID_MASK: u32 = 15u32; +pub const NDIS_PROTOCOL_ID_MAX: u32 = 15u32; +pub const NDIS_PROTOCOL_ID_NBF: u32 = 7u32; +pub const NDIS_PROTOCOL_ID_TCP_IP: u32 = 2u32; +pub const NDIS_PROT_OPTION_ESTIMATED_LENGTH: u32 = 1u32; +pub const NDIS_PROT_OPTION_NO_LOOPBACK: u32 = 2u32; +pub const NDIS_PROT_OPTION_NO_RSVD_ON_RCVPKT: u32 = 4u32; +pub const NDIS_PROT_OPTION_SEND_RESTRICTED: u32 = 8u32; +pub const NDIS_QOS_ACTION_MAXIMUM: u32 = 1u32; +pub const NDIS_QOS_ACTION_PRIORITY: u32 = 0u32; +pub const NDIS_QOS_CAPABILITIES_CEE_DCBX_SUPPORTED: u32 = 4u32; +pub const NDIS_QOS_CAPABILITIES_IEEE_DCBX_SUPPORTED: u32 = 8u32; +pub const NDIS_QOS_CAPABILITIES_MACSEC_BYPASS_SUPPORTED: u32 = 2u32; +pub const NDIS_QOS_CAPABILITIES_REVISION_1: u32 = 1u32; +pub const NDIS_QOS_CAPABILITIES_STRICT_TSA_SUPPORTED: u32 = 1u32; +pub const NDIS_QOS_CLASSIFICATION_ELEMENT_REVISION_1: u32 = 1u32; +pub const NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT: u32 = 16777216u32; +pub const NDIS_QOS_CLASSIFICATION_SET_BY_MINIPORT_MASK: u32 = 4278190080u32; +pub const NDIS_QOS_CONDITION_DEFAULT: u32 = 1u32; +pub const NDIS_QOS_CONDITION_ETHERTYPE: u32 = 5u32; +pub const NDIS_QOS_CONDITION_MAXIMUM: u32 = 7u32; +pub const NDIS_QOS_CONDITION_NETDIRECT_PORT: u32 = 6u32; +pub const NDIS_QOS_CONDITION_RESERVED: u32 = 0u32; +pub const NDIS_QOS_CONDITION_TCP_OR_UDP_PORT: u32 = 4u32; +pub const NDIS_QOS_CONDITION_TCP_PORT: u32 = 2u32; +pub const NDIS_QOS_CONDITION_UDP_PORT: u32 = 3u32; +pub const NDIS_QOS_DEFAULT_SQ_ID: u32 = 0u32; +pub const NDIS_QOS_MAXIMUM_PRIORITIES: u32 = 8u32; +pub const NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES: u32 = 8u32; +pub const NDIS_QOS_OFFLOAD_CAPABILITIES_REVISION_1: u32 = 1u32; +pub const NDIS_QOS_OFFLOAD_CAPABILITIES_REVISION_2: u32 = 2u32; +pub const NDIS_QOS_OFFLOAD_CAPS_GFT_SQ: u32 = 2u32; +pub const NDIS_QOS_OFFLOAD_CAPS_STANDARD_SQ: u32 = 1u32; +pub const NDIS_QOS_PARAMETERS_CLASSIFICATION_CHANGED: u32 = 65536u32; +pub const NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED: u32 = 131072u32; +pub const NDIS_QOS_PARAMETERS_ETS_CHANGED: u32 = 1u32; +pub const NDIS_QOS_PARAMETERS_ETS_CONFIGURED: u32 = 2u32; +pub const NDIS_QOS_PARAMETERS_PFC_CHANGED: u32 = 256u32; +pub const NDIS_QOS_PARAMETERS_PFC_CONFIGURED: u32 = 512u32; +pub const NDIS_QOS_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_QOS_PARAMETERS_WILLING: u32 = 2147483648u32; +pub const NDIS_QOS_SQ_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_QOS_SQ_PARAMETERS_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_QOS_SQ_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_QOS_SQ_PARAMETERS_REVISION_2: u32 = 2u32; +pub const NDIS_QOS_SQ_RECEIVE_CAP_ENABLED: u32 = 4u32; +pub const NDIS_QOS_SQ_STATS_REVISION_1: u32 = 1u32; +pub const NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED: u32 = 1u32; +pub const NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED: u32 = 2u32; +pub const NDIS_QOS_TSA_CBS: u32 = 1u32; +pub const NDIS_QOS_TSA_ETS: u32 = 2u32; +pub const NDIS_QOS_TSA_MAXIMUM: u32 = 3u32; +pub const NDIS_QOS_TSA_STRICT: u32 = 0u32; +pub const NDIS_RECEIVE_FILTER_ANY_VLAN_SUPPORTED: u32 = 32u32; +pub const NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED: u32 = 2u32; +pub const NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED: u32 = 8u32; +pub const NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED: u32 = 4u32; +pub const NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2: u32 = 2u32; +pub const NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_FOR_DEFAULT_QUEUE_SUPPORTED: u32 = 64u32; +pub const NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED: u32 = 8u32; +pub const NDIS_RECEIVE_FILTER_FIELD_MAC_HEADER_VLAN_UNTAGGED_OR_ZERO: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_REVISION_2: u32 = 2u32; +pub const NDIS_RECEIVE_FILTER_FLAGS_RESERVED: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE: u32 = 64u32; +pub const NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE: u32 = 128u32; +pub const NDIS_RECEIVE_FILTER_INFO_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_INFO_ARRAY_REVISION_2: u32 = 2u32; +pub const NDIS_RECEIVE_FILTER_INFO_ARRAY_VPORT_ID_SPECIFIED: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED: u32 = 16u32; +pub const NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED: u32 = 2u32; +pub const NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED: u32 = 4u32; +pub const NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED: u32 = 4u32; +pub const NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED: u32 = 32u32; +pub const NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED: u32 = 16u32; +pub const NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED: u32 = 4u32; +pub const NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED: u32 = 2u32; +pub const NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED: u32 = 8u32; +pub const NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED: u32 = 2u32; +pub const NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE: u32 = 256u32; +pub const NDIS_RECEIVE_FILTER_PACKET_ENCAPSULATION: u32 = 2u32; +pub const NDIS_RECEIVE_FILTER_PACKET_ENCAPSULATION_GRE: u32 = 2u32; +pub const NDIS_RECEIVE_FILTER_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_PARAMETERS_REVISION_2: u32 = 2u32; +pub const NDIS_RECEIVE_FILTER_RESERVED: u32 = 254u32; +pub const NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED: u32 = 2u32; +pub const NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED: u32 = 4u32; +pub const NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED: u32 = 16u32; +pub const NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED: u32 = 1u32; +pub const NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED: u32 = 2u32; +pub const NDIS_RECEIVE_HASH_FLAG_ENABLE_HASH: u32 = 1u32; +pub const NDIS_RECEIVE_HASH_FLAG_HASH_INFO_UNCHANGED: u32 = 2u32; +pub const NDIS_RECEIVE_HASH_FLAG_HASH_KEY_UNCHANGED: u32 = 4u32; +pub const NDIS_RECEIVE_HASH_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_QUEUE_FREE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_QUEUE_INFO_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_QUEUE_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_QUEUE_INFO_REVISION_2: u32 = 2u32; +pub const NDIS_RECEIVE_QUEUE_PARAMETERS_CHANGE_MASK: u32 = 4294901760u32; +pub const NDIS_RECEIVE_QUEUE_PARAMETERS_FLAGS_CHANGED: u32 = 65536u32; +pub const NDIS_RECEIVE_QUEUE_PARAMETERS_INTERRUPT_COALESCING_DOMAIN_ID_CHANGED: u32 = 1048576u32; +pub const NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED: u32 = 2u32; +pub const NDIS_RECEIVE_QUEUE_PARAMETERS_NAME_CHANGED: u32 = 524288u32; +pub const NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION: u32 = 1u32; +pub const NDIS_RECEIVE_QUEUE_PARAMETERS_PROCESSOR_AFFINITY_CHANGED: u32 = 131072u32; +pub const NDIS_RECEIVE_QUEUE_PARAMETERS_QOS_SQ_ID_CHANGED: u32 = 2097152u32; +pub const NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_2: u32 = 2u32; +pub const NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_3: u32 = 3u32; +pub const NDIS_RECEIVE_QUEUE_PARAMETERS_SUGGESTED_RECV_BUFFER_NUMBERS_CHANGED: u32 = 262144u32; +pub const NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2: u32 = 2u32; +pub const NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_3: u32 = 3u32; +pub const NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_2: u32 = 2u32; +pub const NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_3: u32 = 3u32; +pub const NDIS_RECEIVE_SCALE_PARAMETERS_V2_REVISION_1: u32 = 1u32; +pub const NDIS_RECEIVE_SCALE_PARAM_ENABLE_RSS: u32 = 1u32; +pub const NDIS_RECEIVE_SCALE_PARAM_HASH_INFO_CHANGED: u32 = 2u32; +pub const NDIS_RECEIVE_SCALE_PARAM_HASH_KEY_CHANGED: u32 = 4u32; +pub const NDIS_RECEIVE_SCALE_PARAM_NUMBER_OF_ENTRIES_CHANGED: u32 = 16u32; +pub const NDIS_RECEIVE_SCALE_PARAM_NUMBER_OF_QUEUES_CHANGED: u32 = 8u32; +pub const NDIS_RING_AUTO_REMOVAL_ERROR: u32 = 1024u32; +pub const NDIS_RING_COUNTER_OVERFLOW: u32 = 256u32; +pub const NDIS_RING_HARD_ERROR: u32 = 16384u32; +pub const NDIS_RING_LOBE_WIRE_FAULT: u32 = 2048u32; +pub const NDIS_RING_REMOVE_RECEIVED: u32 = 512u32; +pub const NDIS_RING_RING_RECOVERY: u32 = 64u32; +pub const NDIS_RING_SIGNAL_LOSS: u32 = 32768u32; +pub const NDIS_RING_SINGLE_STATION: u32 = 128u32; +pub const NDIS_RING_SOFT_ERROR: u32 = 8192u32; +pub const NDIS_RING_TRANSMIT_BEACON: u32 = 4096u32; +pub const NDIS_ROUTING_DOMAIN_ENTRY_REVISION_1: u32 = 1u32; +pub const NDIS_ROUTING_DOMAIN_ISOLATION_ENTRY_REVISION_1: u32 = 1u32; +pub const NDIS_RSC_STATISTICS_REVISION_1: u32 = 1u32; +pub const NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC: u32 = 67108864u32; +pub const NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR: u32 = 33554432u32; +pub const NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4: u32 = 256u32; +pub const NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6: u32 = 512u32; +pub const NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX: u32 = 1024u32; +pub const NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4: u32 = 2048u32; +pub const NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6: u32 = 4096u32; +pub const NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX: u32 = 8192u32; +pub const NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS: u32 = 16777216u32; +pub const NDIS_RSS_CAPS_RSS_AVAILABLE_ON_PORTS: u32 = 268435456u32; +pub const NDIS_RSS_CAPS_SUPPORTS_INDEPENDENT_ENTRY_MOVE: u32 = 1073741824u32; +pub const NDIS_RSS_CAPS_SUPPORTS_MSI_X: u32 = 536870912u32; +pub const NDIS_RSS_CAPS_USING_MSI_X: u32 = 134217728u32; +pub const NDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_1: u32 = 40u32; +pub const NDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_2: u32 = 40u32; +pub const NDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_3: u32 = 40u32; +pub const NDIS_RSS_HASH_SECRET_KEY_SIZE_REVISION_1: u32 = 40u32; +pub const NDIS_RSS_INDIRECTION_TABLE_MAX_SIZE_REVISION_1: u32 = 128u32; +pub const NDIS_RSS_INDIRECTION_TABLE_SIZE_REVISION_1: u32 = 128u32; +pub const NDIS_RSS_PARAM_FLAG_BASE_CPU_UNCHANGED: u32 = 1u32; +pub const NDIS_RSS_PARAM_FLAG_DEFAULT_PROCESSOR_UNCHANGED: u32 = 32u32; +pub const NDIS_RSS_PARAM_FLAG_DISABLE_RSS: u32 = 16u32; +pub const NDIS_RSS_PARAM_FLAG_HASH_INFO_UNCHANGED: u32 = 2u32; +pub const NDIS_RSS_PARAM_FLAG_HASH_KEY_UNCHANGED: u32 = 8u32; +pub const NDIS_RSS_PARAM_FLAG_ITABLE_UNCHANGED: u32 = 4u32; +pub const NDIS_RSS_PROCESSOR_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_RSS_PROCESSOR_INFO_REVISION_2: u32 = 2u32; +pub const NDIS_RSS_SET_INDIRECTION_ENTRIES_REVISION_1: u32 = 1u32; +pub const NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_DEFAULT_PROCESSOR: u32 = 2u32; +pub const NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_PRIMARY_PROCESSOR: u32 = 1u32; +pub const NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1: u32 = 240u32; +pub const NDIS_SRIOV_BAR_RESOURCES_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_SRIOV_CAPABILITIES_REVISION_1: u32 = 1u32; +pub const NDIS_SRIOV_CAPS_PF_MINIPORT: u32 = 2u32; +pub const NDIS_SRIOV_CAPS_SRIOV_SUPPORTED: u32 = 1u32; +pub const NDIS_SRIOV_CAPS_VF_MINIPORT: u32 = 4u32; +pub const NDIS_SRIOV_CONFIG_STATE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SRIOV_OVERLYING_ADAPTER_INFO_VERSION_1: u32 = 1u32; +pub const NDIS_SRIOV_PF_LUID_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_SRIOV_PROBED_BARS_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SRIOV_RESET_VF_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_SRIOV_VF_SERIAL_NUMBER_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_STATISTICS_FLAGS_VALID_BROADCAST_BYTES_RCV: u32 = 262144u32; +pub const NDIS_STATISTICS_FLAGS_VALID_BROADCAST_BYTES_XMIT: u32 = 2097152u32; +pub const NDIS_STATISTICS_FLAGS_VALID_BROADCAST_FRAMES_RCV: u32 = 4u32; +pub const NDIS_STATISTICS_FLAGS_VALID_BROADCAST_FRAMES_XMIT: u32 = 256u32; +pub const NDIS_STATISTICS_FLAGS_VALID_BYTES_RCV: u32 = 8u32; +pub const NDIS_STATISTICS_FLAGS_VALID_BYTES_XMIT: u32 = 512u32; +pub const NDIS_STATISTICS_FLAGS_VALID_DIRECTED_BYTES_RCV: u32 = 65536u32; +pub const NDIS_STATISTICS_FLAGS_VALID_DIRECTED_BYTES_XMIT: u32 = 524288u32; +pub const NDIS_STATISTICS_FLAGS_VALID_DIRECTED_FRAMES_RCV: u32 = 1u32; +pub const NDIS_STATISTICS_FLAGS_VALID_DIRECTED_FRAMES_XMIT: u32 = 64u32; +pub const NDIS_STATISTICS_FLAGS_VALID_MULTICAST_BYTES_RCV: u32 = 131072u32; +pub const NDIS_STATISTICS_FLAGS_VALID_MULTICAST_BYTES_XMIT: u32 = 1048576u32; +pub const NDIS_STATISTICS_FLAGS_VALID_MULTICAST_FRAMES_RCV: u32 = 2u32; +pub const NDIS_STATISTICS_FLAGS_VALID_MULTICAST_FRAMES_XMIT: u32 = 128u32; +pub const NDIS_STATISTICS_FLAGS_VALID_RCV_DISCARDS: u32 = 16u32; +pub const NDIS_STATISTICS_FLAGS_VALID_RCV_ERROR: u32 = 32u32; +pub const NDIS_STATISTICS_FLAGS_VALID_XMIT_DISCARDS: u32 = 32768u32; +pub const NDIS_STATISTICS_FLAGS_VALID_XMIT_ERROR: u32 = 1024u32; +pub const NDIS_STATISTICS_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS6: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS61: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS620: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS630: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS640: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS650: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS651: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS660: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS670: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS680: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS681: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS682: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS683: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS684: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS685: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS686: u32 = 1u32; +pub const NDIS_SUPPORT_NDIS687: u32 = 1u32; +pub const NDIS_SWITCH_FEATURE_STATUS_CUSTOM_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_FEATURE_STATUS_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_NIC_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_NIC_FLAGS_MAPPED_NIC_UPDATED: u32 = 4u32; +pub const NDIS_SWITCH_NIC_FLAGS_NIC_INITIALIZING: u32 = 1u32; +pub const NDIS_SWITCH_NIC_FLAGS_NIC_SUSPENDED: u32 = 2u32; +pub const NDIS_SWITCH_NIC_FLAGS_NIC_SUSPENDED_LM: u32 = 16u32; +pub const NDIS_SWITCH_NIC_OID_REQUEST_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_NIC_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_NIC_PARAMETERS_REVISION_2: u32 = 2u32; +pub const NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_NIC_SAVE_STATE_REVISION_2: u32 = 2u32; +pub const NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION_1: u32 = 1u32; +pub const NDIS_SWITCH_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_ARRAY_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_PARAMETERS_FLAG_RESTORING_PORT: u32 = 2u32; +pub const NDIS_SWITCH_PORT_PARAMETERS_FLAG_UNTRUSTED_INTERNAL_PORT: u32 = 1u32; +pub const NDIS_SWITCH_PORT_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_PROPERTY_CUSTOM_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_PROPERTY_ISOLATION_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_PROPERTY_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_PROPERTY_PROFILE_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_PROPERTY_ROUTING_DOMAIN_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_PROPERTY_SECURITY_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PORT_PROPERTY_SECURITY_REVISION_2: u32 = 2u32; +pub const NDIS_SWITCH_PORT_PROPERTY_VLAN_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PROPERTY_CUSTOM_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PROPERTY_ENUM_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SWITCH_PROPERTY_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_SYSTEM_PROCESSOR_INFO_EX_REVISION_1: u32 = 1u32; +pub const NDIS_TCP_CONNECTION_OFFLOAD_REVISION_1: u32 = 1u32; +pub const NDIS_TCP_CONNECTION_OFFLOAD_REVISION_2: u32 = 2u32; +pub const NDIS_TCP_RECV_SEG_COALESC_OFFLOAD_REVISION_1: u32 = 1u32; +pub const NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES_REVISION_1: u32 = 1u32; +pub const NDIS_TIMESTAMP_CAPABILITIES_REVISION_1: u32 = 1u32; +pub const NDIS_WLAN_WAKE_ON_4WAY_HANDSHAKE_REQUEST_ENABLED: u32 = 8u32; +pub const NDIS_WLAN_WAKE_ON_4WAY_HANDSHAKE_REQUEST_SUPPORTED: u32 = 8u32; +pub const NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_ENABLED: u32 = 2u32; +pub const NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_SUPPORTED: u32 = 2u32; +pub const NDIS_WLAN_WAKE_ON_GTK_HANDSHAKE_ERROR_ENABLED: u32 = 4u32; +pub const NDIS_WLAN_WAKE_ON_GTK_HANDSHAKE_ERROR_SUPPORTED: u32 = 4u32; +pub const NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_ENABLED: u32 = 1u32; +pub const NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_SUPPORTED: u32 = 1u32; +pub const NDIS_WMI_DEFAULT_METHOD_ID: u32 = 1u32; +pub const NDIS_WMI_ENUM_ADAPTER_REVISION_1: u32 = 1u32; +pub const NDIS_WMI_EVENT_HEADER_REVISION_1: u32 = 1u32; +pub const NDIS_WMI_METHOD_HEADER_REVISION_1: u32 = 1u32; +pub const NDIS_WMI_OBJECT_TYPE_ENUM_ADAPTER: u32 = 4u32; +pub const NDIS_WMI_OBJECT_TYPE_EVENT: u32 = 3u32; +pub const NDIS_WMI_OBJECT_TYPE_METHOD: u32 = 2u32; +pub const NDIS_WMI_OBJECT_TYPE_OUTPUT_INFO: u32 = 5u32; +pub const NDIS_WMI_OBJECT_TYPE_SET: u32 = 1u32; +pub const NDIS_WMI_PM_ACTIVE_CAPABILITIES_REVISION_1: u32 = 1u32; +pub const NDIS_WMI_PM_ADMIN_CONFIG_REVISION_1: u32 = 1u32; +pub const NDIS_WMI_RECEIVE_QUEUE_INFO_REVISION_1: u32 = 1u32; +pub const NDIS_WMI_RECEIVE_QUEUE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const NDIS_WMI_SET_HEADER_REVISION_1: u32 = 1u32; +pub const NDIS_WWAN_WAKE_ON_PACKET_STATE_ENABLED: u32 = 8u32; +pub const NDIS_WWAN_WAKE_ON_PACKET_STATE_SUPPORTED: u32 = 8u32; +pub const NDIS_WWAN_WAKE_ON_REGISTER_STATE_ENABLED: u32 = 1u32; +pub const NDIS_WWAN_WAKE_ON_REGISTER_STATE_SUPPORTED: u32 = 1u32; +pub const NDIS_WWAN_WAKE_ON_SMS_RECEIVE_ENABLED: u32 = 2u32; +pub const NDIS_WWAN_WAKE_ON_SMS_RECEIVE_SUPPORTED: u32 = 2u32; +pub const NDIS_WWAN_WAKE_ON_UICC_CHANGE_ENABLED: u32 = 16u32; +pub const NDIS_WWAN_WAKE_ON_UICC_CHANGE_SUPPORTED: u32 = 16u32; +pub const NDIS_WWAN_WAKE_ON_USSD_RECEIVE_ENABLED: u32 = 4u32; +pub const NDIS_WWAN_WAKE_ON_USSD_RECEIVE_SUPPORTED: u32 = 4u32; +pub const NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED: u32 = 4u32; +pub const NDK_ADAPTER_FLAG_CQ_RESIZE_SUPPORTED: u32 = 256u32; +pub const NDK_ADAPTER_FLAG_IN_ORDER_DMA_SUPPORTED: u32 = 1u32; +pub const NDK_ADAPTER_FLAG_LOOPBACK_CONNECTIONS_SUPPORTED: u32 = 65536u32; +pub const NDK_ADAPTER_FLAG_MULTI_ENGINE_SUPPORTED: u32 = 8u32; +pub const NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED: u32 = 16u32; +pub const NDK_ADAPTER_FLAG_RDMA_READ_SINK_NOT_REQUIRED: u32 = 2u32; +pub const NET_IFLUID_UNSPECIFIED: u32 = 0u32; +pub const NET_IF_ACCESS_BROADCAST: NET_IF_ACCESS_TYPE = 2i32; +pub const NET_IF_ACCESS_LOOPBACK: NET_IF_ACCESS_TYPE = 1i32; +pub const NET_IF_ACCESS_MAXIMUM: NET_IF_ACCESS_TYPE = 5i32; +pub const NET_IF_ACCESS_POINT_TO_MULTI_POINT: NET_IF_ACCESS_TYPE = 4i32; +pub const NET_IF_ACCESS_POINT_TO_POINT: NET_IF_ACCESS_TYPE = 3i32; +pub const NET_IF_ADMIN_STATUS_DOWN: NET_IF_ADMIN_STATUS = 2i32; +pub const NET_IF_ADMIN_STATUS_TESTING: NET_IF_ADMIN_STATUS = 3i32; +pub const NET_IF_ADMIN_STATUS_UP: NET_IF_ADMIN_STATUS = 1i32; +pub const NET_IF_CONNECTION_DEDICATED: NET_IF_CONNECTION_TYPE = 1i32; +pub const NET_IF_CONNECTION_DEMAND: NET_IF_CONNECTION_TYPE = 3i32; +pub const NET_IF_CONNECTION_MAXIMUM: NET_IF_CONNECTION_TYPE = 4i32; +pub const NET_IF_CONNECTION_PASSIVE: NET_IF_CONNECTION_TYPE = 2i32; +pub const NET_IF_DIRECTION_MAXIMUM: NET_IF_DIRECTION_TYPE = 3i32; +pub const NET_IF_DIRECTION_RECEIVEONLY: NET_IF_DIRECTION_TYPE = 2i32; +pub const NET_IF_DIRECTION_SENDONLY: NET_IF_DIRECTION_TYPE = 1i32; +pub const NET_IF_DIRECTION_SENDRECEIVE: NET_IF_DIRECTION_TYPE = 0i32; +pub const NET_IF_OID_COMPARTMENT_ID: u32 = 2u32; +pub const NET_IF_OID_IF_ALIAS: u32 = 1u32; +pub const NET_IF_OID_IF_ENTRY: u32 = 4u32; +pub const NET_IF_OID_NETWORK_GUID: u32 = 3u32; +pub const NET_IF_OPER_STATUS_DORMANT: NET_IF_OPER_STATUS = 5i32; +pub const NET_IF_OPER_STATUS_DORMANT_LOW_POWER: u32 = 8u32; +pub const NET_IF_OPER_STATUS_DORMANT_PAUSED: u32 = 4u32; +pub const NET_IF_OPER_STATUS_DOWN: NET_IF_OPER_STATUS = 2i32; +pub const NET_IF_OPER_STATUS_DOWN_NOT_AUTHENTICATED: u32 = 1u32; +pub const NET_IF_OPER_STATUS_DOWN_NOT_MEDIA_CONNECTED: u32 = 2u32; +pub const NET_IF_OPER_STATUS_LOWER_LAYER_DOWN: NET_IF_OPER_STATUS = 7i32; +pub const NET_IF_OPER_STATUS_NOT_PRESENT: NET_IF_OPER_STATUS = 6i32; +pub const NET_IF_OPER_STATUS_TESTING: NET_IF_OPER_STATUS = 3i32; +pub const NET_IF_OPER_STATUS_UNKNOWN: NET_IF_OPER_STATUS = 4i32; +pub const NET_IF_OPER_STATUS_UP: NET_IF_OPER_STATUS = 1i32; +pub const NET_IF_RCV_ADDRESS_TYPE_NON_VOLATILE: NET_IF_RCV_ADDRESS_TYPE = 3i32; +pub const NET_IF_RCV_ADDRESS_TYPE_OTHER: NET_IF_RCV_ADDRESS_TYPE = 1i32; +pub const NET_IF_RCV_ADDRESS_TYPE_VOLATILE: NET_IF_RCV_ADDRESS_TYPE = 2i32; +pub const NET_SITEID_MAXSYSTEM: u32 = 268435455u32; +pub const NET_SITEID_MAXUSER: u32 = 134217727u32; +pub const NET_SITEID_UNSPECIFIED: u32 = 0u32; +pub const NIIF_FILTER_INTERFACE: u32 = 2u32; +pub const NIIF_HARDWARE_INTERFACE: u32 = 1u32; +pub const NIIF_NDIS_ENDPOINT_INTERFACE: u32 = 64u32; +pub const NIIF_NDIS_ISCSI_INTERFACE: u32 = 128u32; +pub const NIIF_NDIS_RESERVED1: u32 = 4u32; +pub const NIIF_NDIS_RESERVED2: u32 = 8u32; +pub const NIIF_NDIS_RESERVED3: u32 = 16u32; +pub const NIIF_NDIS_RESERVED4: u32 = 256u32; +pub const NIIF_NDIS_WDM_INTERFACE: u32 = 32u32; +pub const Ndis802_11AuthModeAutoSwitch: NDIS_802_11_AUTHENTICATION_MODE = 2i32; +pub const Ndis802_11AuthModeMax: NDIS_802_11_AUTHENTICATION_MODE = 11i32; +pub const Ndis802_11AuthModeOpen: NDIS_802_11_AUTHENTICATION_MODE = 0i32; +pub const Ndis802_11AuthModeShared: NDIS_802_11_AUTHENTICATION_MODE = 1i32; +pub const Ndis802_11AuthModeWPA: NDIS_802_11_AUTHENTICATION_MODE = 3i32; +pub const Ndis802_11AuthModeWPA2: NDIS_802_11_AUTHENTICATION_MODE = 6i32; +pub const Ndis802_11AuthModeWPA2PSK: NDIS_802_11_AUTHENTICATION_MODE = 7i32; +pub const Ndis802_11AuthModeWPA3: NDIS_802_11_AUTHENTICATION_MODE = 8i32; +pub const Ndis802_11AuthModeWPA3Ent: NDIS_802_11_AUTHENTICATION_MODE = 10i32; +pub const Ndis802_11AuthModeWPA3Ent192: NDIS_802_11_AUTHENTICATION_MODE = 8i32; +pub const Ndis802_11AuthModeWPA3SAE: NDIS_802_11_AUTHENTICATION_MODE = 9i32; +pub const Ndis802_11AuthModeWPANone: NDIS_802_11_AUTHENTICATION_MODE = 5i32; +pub const Ndis802_11AuthModeWPAPSK: NDIS_802_11_AUTHENTICATION_MODE = 4i32; +pub const Ndis802_11AutoUnknown: NDIS_802_11_NETWORK_INFRASTRUCTURE = 2i32; +pub const Ndis802_11Automode: NDIS_802_11_NETWORK_TYPE = 4i32; +pub const Ndis802_11DS: NDIS_802_11_NETWORK_TYPE = 1i32; +pub const Ndis802_11Encryption1Enabled: NDIS_802_11_WEP_STATUS = 0i32; +pub const Ndis802_11Encryption1KeyAbsent: NDIS_802_11_WEP_STATUS = 2i32; +pub const Ndis802_11Encryption2Enabled: NDIS_802_11_WEP_STATUS = 4i32; +pub const Ndis802_11Encryption2KeyAbsent: NDIS_802_11_WEP_STATUS = 5i32; +pub const Ndis802_11Encryption3Enabled: NDIS_802_11_WEP_STATUS = 6i32; +pub const Ndis802_11Encryption3KeyAbsent: NDIS_802_11_WEP_STATUS = 7i32; +pub const Ndis802_11EncryptionDisabled: NDIS_802_11_WEP_STATUS = 1i32; +pub const Ndis802_11EncryptionNotSupported: NDIS_802_11_WEP_STATUS = 3i32; +pub const Ndis802_11FH: NDIS_802_11_NETWORK_TYPE = 0i32; +pub const Ndis802_11IBSS: NDIS_802_11_NETWORK_INFRASTRUCTURE = 0i32; +pub const Ndis802_11Infrastructure: NDIS_802_11_NETWORK_INFRASTRUCTURE = 1i32; +pub const Ndis802_11InfrastructureMax: NDIS_802_11_NETWORK_INFRASTRUCTURE = 3i32; +pub const Ndis802_11MediaStreamOff: NDIS_802_11_MEDIA_STREAM_MODE = 0i32; +pub const Ndis802_11MediaStreamOn: NDIS_802_11_MEDIA_STREAM_MODE = 1i32; +pub const Ndis802_11NetworkTypeMax: NDIS_802_11_NETWORK_TYPE = 5i32; +pub const Ndis802_11OFDM24: NDIS_802_11_NETWORK_TYPE = 3i32; +pub const Ndis802_11OFDM5: NDIS_802_11_NETWORK_TYPE = 2i32; +pub const Ndis802_11PowerModeCAM: NDIS_802_11_POWER_MODE = 0i32; +pub const Ndis802_11PowerModeFast_PSP: NDIS_802_11_POWER_MODE = 2i32; +pub const Ndis802_11PowerModeMAX_PSP: NDIS_802_11_POWER_MODE = 1i32; +pub const Ndis802_11PowerModeMax: NDIS_802_11_POWER_MODE = 3i32; +pub const Ndis802_11PrivFilter8021xWEP: NDIS_802_11_PRIVACY_FILTER = 1i32; +pub const Ndis802_11PrivFilterAcceptAll: NDIS_802_11_PRIVACY_FILTER = 0i32; +pub const Ndis802_11RadioStatusHardwareOff: NDIS_802_11_RADIO_STATUS = 1i32; +pub const Ndis802_11RadioStatusHardwareSoftwareOff: NDIS_802_11_RADIO_STATUS = 3i32; +pub const Ndis802_11RadioStatusMax: NDIS_802_11_RADIO_STATUS = 4i32; +pub const Ndis802_11RadioStatusOn: NDIS_802_11_RADIO_STATUS = 0i32; +pub const Ndis802_11RadioStatusSoftwareOff: NDIS_802_11_RADIO_STATUS = 2i32; +pub const Ndis802_11ReloadWEPKeys: NDIS_802_11_RELOAD_DEFAULTS = 0i32; +pub const Ndis802_11StatusTypeMax: NDIS_802_11_STATUS_TYPE = 3i32; +pub const Ndis802_11StatusType_Authentication: NDIS_802_11_STATUS_TYPE = 0i32; +pub const Ndis802_11StatusType_MediaStreamMode: NDIS_802_11_STATUS_TYPE = 1i32; +pub const Ndis802_11StatusType_PMKID_CandidateList: NDIS_802_11_STATUS_TYPE = 2i32; +pub const Ndis802_11WEPDisabled: NDIS_802_11_WEP_STATUS = 1i32; +pub const Ndis802_11WEPEnabled: NDIS_802_11_WEP_STATUS = 0i32; +pub const Ndis802_11WEPKeyAbsent: NDIS_802_11_WEP_STATUS = 2i32; +pub const Ndis802_11WEPNotSupported: NDIS_802_11_WEP_STATUS = 3i32; +pub const NdisDefinitelyNetworkChange: NDIS_NETWORK_CHANGE_TYPE = 2i32; +pub const NdisDeviceStateD0: NDIS_DEVICE_POWER_STATE = 1i32; +pub const NdisDeviceStateD1: NDIS_DEVICE_POWER_STATE = 2i32; +pub const NdisDeviceStateD2: NDIS_DEVICE_POWER_STATE = 3i32; +pub const NdisDeviceStateD3: NDIS_DEVICE_POWER_STATE = 4i32; +pub const NdisDeviceStateMaximum: NDIS_DEVICE_POWER_STATE = 5i32; +pub const NdisDeviceStateUnspecified: NDIS_DEVICE_POWER_STATE = 0i32; +pub const NdisFddiRingDetect: NDIS_FDDI_RING_MGT_STATE = 4i32; +pub const NdisFddiRingDirected: NDIS_FDDI_RING_MGT_STATE = 7i32; +pub const NdisFddiRingIsolated: NDIS_FDDI_RING_MGT_STATE = 1i32; +pub const NdisFddiRingNonOperational: NDIS_FDDI_RING_MGT_STATE = 2i32; +pub const NdisFddiRingNonOperationalDup: NDIS_FDDI_RING_MGT_STATE = 5i32; +pub const NdisFddiRingOperational: NDIS_FDDI_RING_MGT_STATE = 3i32; +pub const NdisFddiRingOperationalDup: NDIS_FDDI_RING_MGT_STATE = 6i32; +pub const NdisFddiRingTrace: NDIS_FDDI_RING_MGT_STATE = 8i32; +pub const NdisFddiStateActive: NDIS_FDDI_LCONNECTION_STATE = 9i32; +pub const NdisFddiStateBreak: NDIS_FDDI_LCONNECTION_STATE = 2i32; +pub const NdisFddiStateConnect: NDIS_FDDI_LCONNECTION_STATE = 4i32; +pub const NdisFddiStateJoin: NDIS_FDDI_LCONNECTION_STATE = 7i32; +pub const NdisFddiStateMaintenance: NDIS_FDDI_LCONNECTION_STATE = 10i32; +pub const NdisFddiStateNext: NDIS_FDDI_LCONNECTION_STATE = 5i32; +pub const NdisFddiStateOff: NDIS_FDDI_LCONNECTION_STATE = 1i32; +pub const NdisFddiStateSignal: NDIS_FDDI_LCONNECTION_STATE = 6i32; +pub const NdisFddiStateTrace: NDIS_FDDI_LCONNECTION_STATE = 3i32; +pub const NdisFddiStateVerify: NDIS_FDDI_LCONNECTION_STATE = 8i32; +pub const NdisFddiTypeCWrapA: NDIS_FDDI_ATTACHMENT_TYPE = 10i32; +pub const NdisFddiTypeCWrapB: NDIS_FDDI_ATTACHMENT_TYPE = 11i32; +pub const NdisFddiTypeCWrapS: NDIS_FDDI_ATTACHMENT_TYPE = 12i32; +pub const NdisFddiTypeIsolated: NDIS_FDDI_ATTACHMENT_TYPE = 1i32; +pub const NdisFddiTypeLocalA: NDIS_FDDI_ATTACHMENT_TYPE = 2i32; +pub const NdisFddiTypeLocalAB: NDIS_FDDI_ATTACHMENT_TYPE = 4i32; +pub const NdisFddiTypeLocalB: NDIS_FDDI_ATTACHMENT_TYPE = 3i32; +pub const NdisFddiTypeLocalS: NDIS_FDDI_ATTACHMENT_TYPE = 5i32; +pub const NdisFddiTypeThrough: NDIS_FDDI_ATTACHMENT_TYPE = 13i32; +pub const NdisFddiTypeWrapA: NDIS_FDDI_ATTACHMENT_TYPE = 6i32; +pub const NdisFddiTypeWrapAB: NDIS_FDDI_ATTACHMENT_TYPE = 8i32; +pub const NdisFddiTypeWrapB: NDIS_FDDI_ATTACHMENT_TYPE = 7i32; +pub const NdisFddiTypeWrapS: NDIS_FDDI_ATTACHMENT_TYPE = 9i32; +pub const NdisHardwareStatusClosing: NDIS_HARDWARE_STATUS = 3i32; +pub const NdisHardwareStatusInitializing: NDIS_HARDWARE_STATUS = 1i32; +pub const NdisHardwareStatusNotReady: NDIS_HARDWARE_STATUS = 4i32; +pub const NdisHardwareStatusReady: NDIS_HARDWARE_STATUS = 0i32; +pub const NdisHardwareStatusReset: NDIS_HARDWARE_STATUS = 2i32; +pub const NdisHashFunctionReserved1: u32 = 2u32; +pub const NdisHashFunctionReserved2: u32 = 4u32; +pub const NdisHashFunctionReserved3: u32 = 8u32; +pub const NdisHashFunctionToeplitz: u32 = 1u32; +pub const NdisInterruptModerationDisabled: NDIS_INTERRUPT_MODERATION = 3i32; +pub const NdisInterruptModerationEnabled: NDIS_INTERRUPT_MODERATION = 2i32; +pub const NdisInterruptModerationNotSupported: NDIS_INTERRUPT_MODERATION = 1i32; +pub const NdisInterruptModerationUnknown: NDIS_INTERRUPT_MODERATION = 0i32; +pub const NdisMediaStateConnected: NDIS_MEDIA_STATE = 0i32; +pub const NdisMediaStateDisconnected: NDIS_MEDIA_STATE = 1i32; +pub const NdisMedium1394: NDIS_MEDIUM = 13i32; +pub const NdisMedium802_3: NDIS_MEDIUM = 0i32; +pub const NdisMedium802_5: NDIS_MEDIUM = 1i32; +pub const NdisMediumArcnet878_2: NDIS_MEDIUM = 7i32; +pub const NdisMediumArcnetRaw: NDIS_MEDIUM = 6i32; +pub const NdisMediumAtm: NDIS_MEDIUM = 8i32; +pub const NdisMediumBpc: NDIS_MEDIUM = 11i32; +pub const NdisMediumCoWan: NDIS_MEDIUM = 12i32; +pub const NdisMediumDix: NDIS_MEDIUM = 5i32; +pub const NdisMediumFddi: NDIS_MEDIUM = 2i32; +pub const NdisMediumIP: NDIS_MEDIUM = 19i32; +pub const NdisMediumInfiniBand: NDIS_MEDIUM = 14i32; +pub const NdisMediumIrda: NDIS_MEDIUM = 10i32; +pub const NdisMediumLocalTalk: NDIS_MEDIUM = 4i32; +pub const NdisMediumLoopback: NDIS_MEDIUM = 17i32; +pub const NdisMediumMax: NDIS_MEDIUM = 20i32; +pub const NdisMediumNative802_11: NDIS_MEDIUM = 16i32; +pub const NdisMediumTunnel: NDIS_MEDIUM = 15i32; +pub const NdisMediumWan: NDIS_MEDIUM = 3i32; +pub const NdisMediumWiMAX: NDIS_MEDIUM = 18i32; +pub const NdisMediumWirelessWan: NDIS_MEDIUM = 9i32; +pub const NdisNetworkChangeFromMediaConnect: NDIS_NETWORK_CHANGE_TYPE = 3i32; +pub const NdisNetworkChangeMax: NDIS_NETWORK_CHANGE_TYPE = 4i32; +pub const NdisPauseFunctionsReceiveOnly: NDIS_SUPPORTED_PAUSE_FUNCTIONS = 2i32; +pub const NdisPauseFunctionsSendAndReceive: NDIS_SUPPORTED_PAUSE_FUNCTIONS = 3i32; +pub const NdisPauseFunctionsSendOnly: NDIS_SUPPORTED_PAUSE_FUNCTIONS = 1i32; +pub const NdisPauseFunctionsUnknown: NDIS_SUPPORTED_PAUSE_FUNCTIONS = 4i32; +pub const NdisPauseFunctionsUnsupported: NDIS_SUPPORTED_PAUSE_FUNCTIONS = 0i32; +pub const NdisPhysicalMedium1394: NDIS_PHYSICAL_MEDIUM = 7i32; +pub const NdisPhysicalMedium802_3: NDIS_PHYSICAL_MEDIUM = 14i32; +pub const NdisPhysicalMedium802_5: NDIS_PHYSICAL_MEDIUM = 15i32; +pub const NdisPhysicalMediumBluetooth: NDIS_PHYSICAL_MEDIUM = 10i32; +pub const NdisPhysicalMediumCableModem: NDIS_PHYSICAL_MEDIUM = 2i32; +pub const NdisPhysicalMediumDSL: NDIS_PHYSICAL_MEDIUM = 5i32; +pub const NdisPhysicalMediumFibreChannel: NDIS_PHYSICAL_MEDIUM = 6i32; +pub const NdisPhysicalMediumInfiniband: NDIS_PHYSICAL_MEDIUM = 11i32; +pub const NdisPhysicalMediumIrda: NDIS_PHYSICAL_MEDIUM = 16i32; +pub const NdisPhysicalMediumMax: NDIS_PHYSICAL_MEDIUM = 21i32; +pub const NdisPhysicalMediumNative802_11: NDIS_PHYSICAL_MEDIUM = 9i32; +pub const NdisPhysicalMediumNative802_15_4: NDIS_PHYSICAL_MEDIUM = 20i32; +pub const NdisPhysicalMediumOther: NDIS_PHYSICAL_MEDIUM = 19i32; +pub const NdisPhysicalMediumPhoneLine: NDIS_PHYSICAL_MEDIUM = 3i32; +pub const NdisPhysicalMediumPowerLine: NDIS_PHYSICAL_MEDIUM = 4i32; +pub const NdisPhysicalMediumUWB: NDIS_PHYSICAL_MEDIUM = 13i32; +pub const NdisPhysicalMediumUnspecified: NDIS_PHYSICAL_MEDIUM = 0i32; +pub const NdisPhysicalMediumWiMax: NDIS_PHYSICAL_MEDIUM = 12i32; +pub const NdisPhysicalMediumWiredCoWan: NDIS_PHYSICAL_MEDIUM = 18i32; +pub const NdisPhysicalMediumWiredWAN: NDIS_PHYSICAL_MEDIUM = 17i32; +pub const NdisPhysicalMediumWirelessLan: NDIS_PHYSICAL_MEDIUM = 1i32; +pub const NdisPhysicalMediumWirelessWan: NDIS_PHYSICAL_MEDIUM = 8i32; +pub const NdisPortAuthorizationUnknown: NDIS_PORT_AUTHORIZATION_STATE = 0i32; +pub const NdisPortAuthorized: NDIS_PORT_AUTHORIZATION_STATE = 1i32; +pub const NdisPortControlStateControlled: NDIS_PORT_CONTROL_STATE = 1i32; +pub const NdisPortControlStateUncontrolled: NDIS_PORT_CONTROL_STATE = 2i32; +pub const NdisPortControlStateUnknown: NDIS_PORT_CONTROL_STATE = 0i32; +pub const NdisPortReauthorizing: NDIS_PORT_AUTHORIZATION_STATE = 3i32; +pub const NdisPortType8021xSupplicant: NDIS_PORT_TYPE = 3i32; +pub const NdisPortTypeBridge: NDIS_PORT_TYPE = 1i32; +pub const NdisPortTypeMax: NDIS_PORT_TYPE = 4i32; +pub const NdisPortTypeRasConnection: NDIS_PORT_TYPE = 2i32; +pub const NdisPortTypeUndefined: NDIS_PORT_TYPE = 0i32; +pub const NdisPortUnauthorized: NDIS_PORT_AUTHORIZATION_STATE = 2i32; +pub const NdisPossibleNetworkChange: NDIS_NETWORK_CHANGE_TYPE = 1i32; +pub const NdisProcessorVendorAuthenticAMD: NDIS_PROCESSOR_VENDOR = 2i32; +pub const NdisProcessorVendorGenuinIntel: NDIS_PROCESSOR_VENDOR = 1i32; +pub const NdisProcessorVendorGenuineIntel: NDIS_PROCESSOR_VENDOR = 1i32; +pub const NdisProcessorVendorUnknown: NDIS_PROCESSOR_VENDOR = 0i32; +pub const NdisRequestClose: NDIS_REQUEST_TYPE = 4i32; +pub const NdisRequestGeneric1: NDIS_REQUEST_TYPE = 8i32; +pub const NdisRequestGeneric2: NDIS_REQUEST_TYPE = 9i32; +pub const NdisRequestGeneric3: NDIS_REQUEST_TYPE = 10i32; +pub const NdisRequestGeneric4: NDIS_REQUEST_TYPE = 11i32; +pub const NdisRequestOpen: NDIS_REQUEST_TYPE = 3i32; +pub const NdisRequestQueryInformation: NDIS_REQUEST_TYPE = 0i32; +pub const NdisRequestQueryStatistics: NDIS_REQUEST_TYPE = 2i32; +pub const NdisRequestReset: NDIS_REQUEST_TYPE = 7i32; +pub const NdisRequestSend: NDIS_REQUEST_TYPE = 5i32; +pub const NdisRequestSetInformation: NDIS_REQUEST_TYPE = 1i32; +pub const NdisRequestTransferData: NDIS_REQUEST_TYPE = 6i32; +pub const NdisRingStateClosed: NDIS_802_5_RING_STATE = 2i32; +pub const NdisRingStateClosing: NDIS_802_5_RING_STATE = 4i32; +pub const NdisRingStateOpenFailure: NDIS_802_5_RING_STATE = 5i32; +pub const NdisRingStateOpened: NDIS_802_5_RING_STATE = 1i32; +pub const NdisRingStateOpening: NDIS_802_5_RING_STATE = 3i32; +pub const NdisRingStateRingFailure: NDIS_802_5_RING_STATE = 6i32; +pub const NdisWanErrorControl: NDIS_WAN_QUALITY = 1i32; +pub const NdisWanHeaderEthernet: NDIS_WAN_HEADER_FORMAT = 1i32; +pub const NdisWanHeaderNative: NDIS_WAN_HEADER_FORMAT = 0i32; +pub const NdisWanMediumAgileVPN: NDIS_WAN_MEDIUM_SUBTYPE = 14i32; +pub const NdisWanMediumAtm: NDIS_WAN_MEDIUM_SUBTYPE = 5i32; +pub const NdisWanMediumFrameRelay: NDIS_WAN_MEDIUM_SUBTYPE = 4i32; +pub const NdisWanMediumGre: NDIS_WAN_MEDIUM_SUBTYPE = 15i32; +pub const NdisWanMediumHub: NDIS_WAN_MEDIUM_SUBTYPE = 0i32; +pub const NdisWanMediumIrda: NDIS_WAN_MEDIUM_SUBTYPE = 10i32; +pub const NdisWanMediumIsdn: NDIS_WAN_MEDIUM_SUBTYPE = 2i32; +pub const NdisWanMediumL2TP: NDIS_WAN_MEDIUM_SUBTYPE = 9i32; +pub const NdisWanMediumPPTP: NDIS_WAN_MEDIUM_SUBTYPE = 8i32; +pub const NdisWanMediumParallel: NDIS_WAN_MEDIUM_SUBTYPE = 11i32; +pub const NdisWanMediumPppoe: NDIS_WAN_MEDIUM_SUBTYPE = 12i32; +pub const NdisWanMediumSSTP: NDIS_WAN_MEDIUM_SUBTYPE = 13i32; +pub const NdisWanMediumSW56K: NDIS_WAN_MEDIUM_SUBTYPE = 7i32; +pub const NdisWanMediumSerial: NDIS_WAN_MEDIUM_SUBTYPE = 3i32; +pub const NdisWanMediumSonet: NDIS_WAN_MEDIUM_SUBTYPE = 6i32; +pub const NdisWanMediumSubTypeMax: NDIS_WAN_MEDIUM_SUBTYPE = 16i32; +pub const NdisWanMediumX_25: NDIS_WAN_MEDIUM_SUBTYPE = 1i32; +pub const NdisWanRaw: NDIS_WAN_QUALITY = 0i32; +pub const NdisWanReliable: NDIS_WAN_QUALITY = 2i32; +pub const NdkInfiniBand: NDK_RDMA_TECHNOLOGY = 2i32; +pub const NdkMaxTechnology: NDK_RDMA_TECHNOLOGY = 5i32; +pub const NdkRoCE: NDK_RDMA_TECHNOLOGY = 3i32; +pub const NdkRoCEv2: NDK_RDMA_TECHNOLOGY = 4i32; +pub const NdkUndefined: NDK_RDMA_TECHNOLOGY = 0i32; +pub const NdkiWarp: NDK_RDMA_TECHNOLOGY = 1i32; +pub const OFFLOAD_INBOUND_SA: u32 = 1u32; +pub const OFFLOAD_IPSEC_CONF_3_DES: OFFLOAD_CONF_ALGO = 3i32; +pub const OFFLOAD_IPSEC_CONF_DES: OFFLOAD_CONF_ALGO = 1i32; +pub const OFFLOAD_IPSEC_CONF_MAX: OFFLOAD_CONF_ALGO = 4i32; +pub const OFFLOAD_IPSEC_CONF_NONE: OFFLOAD_CONF_ALGO = 0i32; +pub const OFFLOAD_IPSEC_CONF_RESERVED: OFFLOAD_CONF_ALGO = 2i32; +pub const OFFLOAD_IPSEC_INTEGRITY_MAX: OFFLOAD_INTEGRITY_ALGO = 3i32; +pub const OFFLOAD_IPSEC_INTEGRITY_MD5: OFFLOAD_INTEGRITY_ALGO = 1i32; +pub const OFFLOAD_IPSEC_INTEGRITY_NONE: OFFLOAD_INTEGRITY_ALGO = 0i32; +pub const OFFLOAD_IPSEC_INTEGRITY_SHA: OFFLOAD_INTEGRITY_ALGO = 2i32; +pub const OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_IKE: UDP_ENCAP_TYPE = 0i32; +pub const OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_OTHER: UDP_ENCAP_TYPE = 1i32; +pub const OFFLOAD_MAX_SAS: u32 = 3u32; +pub const OFFLOAD_OUTBOUND_SA: u32 = 2u32; +pub const OID_1394_LOCAL_NODE_INFO: u32 = 201392385u32; +pub const OID_1394_VC_INFO: u32 = 201392386u32; +pub const OID_802_11_ADD_KEY: u32 = 218169629u32; +pub const OID_802_11_ADD_WEP: u32 = 218169619u32; +pub const OID_802_11_ASSOCIATION_INFORMATION: u32 = 218169631u32; +pub const OID_802_11_AUTHENTICATION_MODE: u32 = 218169624u32; +pub const OID_802_11_BSSID: u32 = 218169601u32; +pub const OID_802_11_BSSID_LIST: u32 = 218169879u32; +pub const OID_802_11_BSSID_LIST_SCAN: u32 = 218169626u32; +pub const OID_802_11_CAPABILITY: u32 = 218169634u32; +pub const OID_802_11_CONFIGURATION: u32 = 218169873u32; +pub const OID_802_11_DESIRED_RATES: u32 = 218169872u32; +pub const OID_802_11_DISASSOCIATE: u32 = 218169621u32; +pub const OID_802_11_ENCRYPTION_STATUS: u32 = 218169627u32; +pub const OID_802_11_FRAGMENTATION_THRESHOLD: u32 = 218169865u32; +pub const OID_802_11_INFRASTRUCTURE_MODE: u32 = 218169608u32; +pub const OID_802_11_MEDIA_STREAM_MODE: u32 = 218169633u32; +pub const OID_802_11_NETWORK_TYPES_SUPPORTED: u32 = 218169859u32; +pub const OID_802_11_NETWORK_TYPE_IN_USE: u32 = 218169860u32; +pub const OID_802_11_NON_BCAST_SSID_LIST: u32 = 218169636u32; +pub const OID_802_11_NUMBER_OF_ANTENNAS: u32 = 218169867u32; +pub const OID_802_11_PMKID: u32 = 218169635u32; +pub const OID_802_11_POWER_MODE: u32 = 218169878u32; +pub const OID_802_11_PRIVACY_FILTER: u32 = 218169625u32; +pub const OID_802_11_RADIO_STATUS: u32 = 218169637u32; +pub const OID_802_11_RELOAD_DEFAULTS: u32 = 218169628u32; +pub const OID_802_11_REMOVE_KEY: u32 = 218169630u32; +pub const OID_802_11_REMOVE_WEP: u32 = 218169620u32; +pub const OID_802_11_RSSI: u32 = 218169862u32; +pub const OID_802_11_RSSI_TRIGGER: u32 = 218169863u32; +pub const OID_802_11_RTS_THRESHOLD: u32 = 218169866u32; +pub const OID_802_11_RX_ANTENNA_SELECTED: u32 = 218169868u32; +pub const OID_802_11_SSID: u32 = 218169602u32; +pub const OID_802_11_STATISTICS: u32 = 218235410u32; +pub const OID_802_11_SUPPORTED_RATES: u32 = 218169870u32; +pub const OID_802_11_TEST: u32 = 218169632u32; +pub const OID_802_11_TX_ANTENNA_SELECTED: u32 = 218169869u32; +pub const OID_802_11_TX_POWER_LEVEL: u32 = 218169861u32; +pub const OID_802_11_WEP_STATUS: u32 = 218169627u32; +pub const OID_802_3_ADD_MULTICAST_ADDRESS: u32 = 16843272u32; +pub const OID_802_3_CURRENT_ADDRESS: u32 = 16843010u32; +pub const OID_802_3_DELETE_MULTICAST_ADDRESS: u32 = 16843273u32; +pub const OID_802_3_MAC_OPTIONS: u32 = 16843013u32; +pub const OID_802_3_MAXIMUM_LIST_SIZE: u32 = 16843012u32; +pub const OID_802_3_MULTICAST_LIST: u32 = 16843011u32; +pub const OID_802_3_PERMANENT_ADDRESS: u32 = 16843009u32; +pub const OID_802_3_RCV_ERROR_ALIGNMENT: u32 = 16908545u32; +pub const OID_802_3_RCV_OVERRUN: u32 = 16908803u32; +pub const OID_802_3_XMIT_DEFERRED: u32 = 16908801u32; +pub const OID_802_3_XMIT_HEARTBEAT_FAILURE: u32 = 16908805u32; +pub const OID_802_3_XMIT_LATE_COLLISIONS: u32 = 16908807u32; +pub const OID_802_3_XMIT_MAX_COLLISIONS: u32 = 16908802u32; +pub const OID_802_3_XMIT_MORE_COLLISIONS: u32 = 16908547u32; +pub const OID_802_3_XMIT_ONE_COLLISION: u32 = 16908546u32; +pub const OID_802_3_XMIT_TIMES_CRS_LOST: u32 = 16908806u32; +pub const OID_802_3_XMIT_UNDERRUN: u32 = 16908804u32; +pub const OID_802_5_ABORT_DELIMETERS: u32 = 33686019u32; +pub const OID_802_5_AC_ERRORS: u32 = 33686018u32; +pub const OID_802_5_BURST_ERRORS: u32 = 33686017u32; +pub const OID_802_5_CURRENT_ADDRESS: u32 = 33620226u32; +pub const OID_802_5_CURRENT_FUNCTIONAL: u32 = 33620227u32; +pub const OID_802_5_CURRENT_GROUP: u32 = 33620228u32; +pub const OID_802_5_CURRENT_RING_STATE: u32 = 33620231u32; +pub const OID_802_5_CURRENT_RING_STATUS: u32 = 33620230u32; +pub const OID_802_5_FRAME_COPIED_ERRORS: u32 = 33686020u32; +pub const OID_802_5_FREQUENCY_ERRORS: u32 = 33686021u32; +pub const OID_802_5_INTERNAL_ERRORS: u32 = 33686023u32; +pub const OID_802_5_LAST_OPEN_STATUS: u32 = 33620229u32; +pub const OID_802_5_LINE_ERRORS: u32 = 33685761u32; +pub const OID_802_5_LOST_FRAMES: u32 = 33685762u32; +pub const OID_802_5_PERMANENT_ADDRESS: u32 = 33620225u32; +pub const OID_802_5_TOKEN_ERRORS: u32 = 33686022u32; +pub const OID_ARCNET_CURRENT_ADDRESS: u32 = 100729090u32; +pub const OID_ARCNET_PERMANENT_ADDRESS: u32 = 100729089u32; +pub const OID_ARCNET_RECONFIGURATIONS: u32 = 100794881u32; +pub const OID_ATM_ACQUIRE_ACCESS_NET_RESOURCES: u32 = 134283779u32; +pub const OID_ATM_ALIGNMENT_REQUIRED: u32 = 134283784u32; +pub const OID_ATM_ASSIGNED_VPI: u32 = 134283778u32; +pub const OID_ATM_CALL_ALERTING: u32 = 134283788u32; +pub const OID_ATM_CALL_NOTIFY: u32 = 134283790u32; +pub const OID_ATM_CALL_PROCEEDING: u32 = 134283787u32; +pub const OID_ATM_CELLS_HEC_ERROR: u32 = 134349314u32; +pub const OID_ATM_DIGITAL_BROADCAST_VPIVCI: u32 = 134283782u32; +pub const OID_ATM_GET_NEAREST_FLOW: u32 = 134283783u32; +pub const OID_ATM_HW_CURRENT_ADDRESS: u32 = 134283524u32; +pub const OID_ATM_ILMI_VPIVCI: u32 = 134283781u32; +pub const OID_ATM_LECS_ADDRESS: u32 = 134283785u32; +pub const OID_ATM_MAX_AAL0_PACKET_SIZE: u32 = 134283528u32; +pub const OID_ATM_MAX_AAL1_PACKET_SIZE: u32 = 134283529u32; +pub const OID_ATM_MAX_AAL34_PACKET_SIZE: u32 = 134283530u32; +pub const OID_ATM_MAX_AAL5_PACKET_SIZE: u32 = 134283531u32; +pub const OID_ATM_MAX_ACTIVE_VCI_BITS: u32 = 134283526u32; +pub const OID_ATM_MAX_ACTIVE_VCS: u32 = 134283525u32; +pub const OID_ATM_MAX_ACTIVE_VPI_BITS: u32 = 134283527u32; +pub const OID_ATM_MY_IP_NM_ADDRESS: u32 = 134283791u32; +pub const OID_ATM_PARTY_ALERTING: u32 = 134283789u32; +pub const OID_ATM_RCV_CELLS_DROPPED: u32 = 134349059u32; +pub const OID_ATM_RCV_CELLS_OK: u32 = 134349057u32; +pub const OID_ATM_RCV_INVALID_VPI_VCI: u32 = 134349313u32; +pub const OID_ATM_RCV_REASSEMBLY_ERROR: u32 = 134349315u32; +pub const OID_ATM_RELEASE_ACCESS_NET_RESOURCES: u32 = 134283780u32; +pub const OID_ATM_SERVICE_ADDRESS: u32 = 134283786u32; +pub const OID_ATM_SIGNALING_VPIVCI: u32 = 134283777u32; +pub const OID_ATM_SUPPORTED_AAL_TYPES: u32 = 134283523u32; +pub const OID_ATM_SUPPORTED_SERVICE_CATEGORY: u32 = 134283522u32; +pub const OID_ATM_SUPPORTED_VC_RATES: u32 = 134283521u32; +pub const OID_ATM_XMIT_CELLS_OK: u32 = 134349058u32; +pub const OID_CO_ADDRESS_CHANGE: u32 = 4261412871u32; +pub const OID_CO_ADD_ADDRESS: u32 = 4261412868u32; +pub const OID_CO_ADD_PVC: u32 = 4261412865u32; +pub const OID_CO_AF_CLOSE: u32 = 4261412874u32; +pub const OID_CO_DELETE_ADDRESS: u32 = 4261412869u32; +pub const OID_CO_DELETE_PVC: u32 = 4261412866u32; +pub const OID_CO_GET_ADDRESSES: u32 = 4261412870u32; +pub const OID_CO_GET_CALL_INFORMATION: u32 = 4261412867u32; +pub const OID_CO_SIGNALING_DISABLED: u32 = 4261412873u32; +pub const OID_CO_SIGNALING_ENABLED: u32 = 4261412872u32; +pub const OID_CO_TAPI_ADDRESS_CAPS: u32 = 4261416963u32; +pub const OID_CO_TAPI_CM_CAPS: u32 = 4261416961u32; +pub const OID_CO_TAPI_DONT_REPORT_DIGITS: u32 = 4261416969u32; +pub const OID_CO_TAPI_GET_CALL_DIAGNOSTICS: u32 = 4261416967u32; +pub const OID_CO_TAPI_LINE_CAPS: u32 = 4261416962u32; +pub const OID_CO_TAPI_REPORT_DIGITS: u32 = 4261416968u32; +pub const OID_CO_TAPI_TRANSLATE_NDIS_CALLPARAMS: u32 = 4261416965u32; +pub const OID_CO_TAPI_TRANSLATE_TAPI_CALLPARAMS: u32 = 4261416964u32; +pub const OID_CO_TAPI_TRANSLATE_TAPI_SAP: u32 = 4261416966u32; +pub const OID_FDDI_ATTACHMENT_TYPE: u32 = 50462977u32; +pub const OID_FDDI_DOWNSTREAM_NODE_LONG: u32 = 50462979u32; +pub const OID_FDDI_FRAMES_LOST: u32 = 50462981u32; +pub const OID_FDDI_FRAME_ERRORS: u32 = 50462980u32; +pub const OID_FDDI_IF_ADMIN_STATUS: u32 = 50528894u32; +pub const OID_FDDI_IF_DESCR: u32 = 50528889u32; +pub const OID_FDDI_IF_IN_DISCARDS: u32 = 50528900u32; +pub const OID_FDDI_IF_IN_ERRORS: u32 = 50528901u32; +pub const OID_FDDI_IF_IN_NUCAST_PKTS: u32 = 50528899u32; +pub const OID_FDDI_IF_IN_OCTETS: u32 = 50528897u32; +pub const OID_FDDI_IF_IN_UCAST_PKTS: u32 = 50528898u32; +pub const OID_FDDI_IF_IN_UNKNOWN_PROTOS: u32 = 50528902u32; +pub const OID_FDDI_IF_LAST_CHANGE: u32 = 50528896u32; +pub const OID_FDDI_IF_MTU: u32 = 50528891u32; +pub const OID_FDDI_IF_OPER_STATUS: u32 = 50528895u32; +pub const OID_FDDI_IF_OUT_DISCARDS: u32 = 50528906u32; +pub const OID_FDDI_IF_OUT_ERRORS: u32 = 50528907u32; +pub const OID_FDDI_IF_OUT_NUCAST_PKTS: u32 = 50528905u32; +pub const OID_FDDI_IF_OUT_OCTETS: u32 = 50528903u32; +pub const OID_FDDI_IF_OUT_QLEN: u32 = 50528908u32; +pub const OID_FDDI_IF_OUT_UCAST_PKTS: u32 = 50528904u32; +pub const OID_FDDI_IF_PHYS_ADDRESS: u32 = 50528893u32; +pub const OID_FDDI_IF_SPECIFIC: u32 = 50528909u32; +pub const OID_FDDI_IF_SPEED: u32 = 50528892u32; +pub const OID_FDDI_IF_TYPE: u32 = 50528890u32; +pub const OID_FDDI_LCONNECTION_STATE: u32 = 50462985u32; +pub const OID_FDDI_LCT_FAILURES: u32 = 50462983u32; +pub const OID_FDDI_LEM_REJECTS: u32 = 50462984u32; +pub const OID_FDDI_LONG_CURRENT_ADDR: u32 = 50397442u32; +pub const OID_FDDI_LONG_MAX_LIST_SIZE: u32 = 50397444u32; +pub const OID_FDDI_LONG_MULTICAST_LIST: u32 = 50397443u32; +pub const OID_FDDI_LONG_PERMANENT_ADDR: u32 = 50397441u32; +pub const OID_FDDI_MAC_AVAILABLE_PATHS: u32 = 50528803u32; +pub const OID_FDDI_MAC_BRIDGE_FUNCTIONS: u32 = 50528800u32; +pub const OID_FDDI_MAC_COPIED_CT: u32 = 50528828u32; +pub const OID_FDDI_MAC_CURRENT_PATH: u32 = 50528804u32; +pub const OID_FDDI_MAC_DA_FLAG: u32 = 50528842u32; +pub const OID_FDDI_MAC_DOWNSTREAM_NBR: u32 = 50528806u32; +pub const OID_FDDI_MAC_DOWNSTREAM_PORT_TYPE: u32 = 50528811u32; +pub const OID_FDDI_MAC_DUP_ADDRESS_TEST: u32 = 50528809u32; +pub const OID_FDDI_MAC_ERROR_CT: u32 = 50528831u32; +pub const OID_FDDI_MAC_FRAME_CT: u32 = 50528827u32; +pub const OID_FDDI_MAC_FRAME_ERROR_FLAG: u32 = 50528844u32; +pub const OID_FDDI_MAC_FRAME_ERROR_RATIO: u32 = 50528838u32; +pub const OID_FDDI_MAC_FRAME_ERROR_THRESHOLD: u32 = 50528837u32; +pub const OID_FDDI_MAC_FRAME_STATUS_FUNCTIONS: u32 = 50528799u32; +pub const OID_FDDI_MAC_HARDWARE_PRESENT: u32 = 50528847u32; +pub const OID_FDDI_MAC_INDEX: u32 = 50528812u32; +pub const OID_FDDI_MAC_LATE_CT: u32 = 50528835u32; +pub const OID_FDDI_MAC_LONG_GRP_ADDRESS: u32 = 50528814u32; +pub const OID_FDDI_MAC_LOST_CT: u32 = 50528832u32; +pub const OID_FDDI_MAC_MA_UNITDATA_AVAILABLE: u32 = 50528846u32; +pub const OID_FDDI_MAC_MA_UNITDATA_ENABLE: u32 = 50528848u32; +pub const OID_FDDI_MAC_NOT_COPIED_CT: u32 = 50528834u32; +pub const OID_FDDI_MAC_NOT_COPIED_FLAG: u32 = 50528845u32; +pub const OID_FDDI_MAC_NOT_COPIED_RATIO: u32 = 50528840u32; +pub const OID_FDDI_MAC_NOT_COPIED_THRESHOLD: u32 = 50528839u32; +pub const OID_FDDI_MAC_OLD_DOWNSTREAM_NBR: u32 = 50528808u32; +pub const OID_FDDI_MAC_OLD_UPSTREAM_NBR: u32 = 50528807u32; +pub const OID_FDDI_MAC_REQUESTED_PATHS: u32 = 50528810u32; +pub const OID_FDDI_MAC_RING_OP_CT: u32 = 50528836u32; +pub const OID_FDDI_MAC_RMT_STATE: u32 = 50528841u32; +pub const OID_FDDI_MAC_SHORT_GRP_ADDRESS: u32 = 50528815u32; +pub const OID_FDDI_MAC_SMT_ADDRESS: u32 = 50528813u32; +pub const OID_FDDI_MAC_TOKEN_CT: u32 = 50528830u32; +pub const OID_FDDI_MAC_TRANSMIT_CT: u32 = 50528829u32; +pub const OID_FDDI_MAC_TVX_CAPABILITY: u32 = 50528802u32; +pub const OID_FDDI_MAC_TVX_EXPIRED_CT: u32 = 50528833u32; +pub const OID_FDDI_MAC_TVX_VALUE: u32 = 50528819u32; +pub const OID_FDDI_MAC_T_MAX: u32 = 50528818u32; +pub const OID_FDDI_MAC_T_MAX_CAPABILITY: u32 = 50528801u32; +pub const OID_FDDI_MAC_T_NEG: u32 = 50528817u32; +pub const OID_FDDI_MAC_T_PRI0: u32 = 50528820u32; +pub const OID_FDDI_MAC_T_PRI1: u32 = 50528821u32; +pub const OID_FDDI_MAC_T_PRI2: u32 = 50528822u32; +pub const OID_FDDI_MAC_T_PRI3: u32 = 50528823u32; +pub const OID_FDDI_MAC_T_PRI4: u32 = 50528824u32; +pub const OID_FDDI_MAC_T_PRI5: u32 = 50528825u32; +pub const OID_FDDI_MAC_T_PRI6: u32 = 50528826u32; +pub const OID_FDDI_MAC_T_REQ: u32 = 50528816u32; +pub const OID_FDDI_MAC_UNDA_FLAG: u32 = 50528843u32; +pub const OID_FDDI_MAC_UPSTREAM_NBR: u32 = 50528805u32; +pub const OID_FDDI_PATH_CONFIGURATION: u32 = 50528854u32; +pub const OID_FDDI_PATH_INDEX: u32 = 50528849u32; +pub const OID_FDDI_PATH_MAX_T_REQ: u32 = 50528859u32; +pub const OID_FDDI_PATH_RING_LATENCY: u32 = 50528850u32; +pub const OID_FDDI_PATH_SBA_AVAILABLE: u32 = 50528856u32; +pub const OID_FDDI_PATH_SBA_OVERHEAD: u32 = 50528853u32; +pub const OID_FDDI_PATH_SBA_PAYLOAD: u32 = 50528852u32; +pub const OID_FDDI_PATH_TRACE_STATUS: u32 = 50528851u32; +pub const OID_FDDI_PATH_TVX_LOWER_BOUND: u32 = 50528857u32; +pub const OID_FDDI_PATH_T_MAX_LOWER_BOUND: u32 = 50528858u32; +pub const OID_FDDI_PATH_T_R_MODE: u32 = 50528855u32; +pub const OID_FDDI_PORT_ACTION: u32 = 50528888u32; +pub const OID_FDDI_PORT_AVAILABLE_PATHS: u32 = 50528867u32; +pub const OID_FDDI_PORT_BS_FLAG: u32 = 50528873u32; +pub const OID_FDDI_PORT_CONNECTION_CAPABILITIES: u32 = 50528870u32; +pub const OID_FDDI_PORT_CONNECTION_POLICIES: u32 = 50528862u32; +pub const OID_FDDI_PORT_CONNNECT_STATE: u32 = 50528882u32; +pub const OID_FDDI_PORT_CURRENT_PATH: u32 = 50528864u32; +pub const OID_FDDI_PORT_EB_ERROR_CT: u32 = 50528875u32; +pub const OID_FDDI_PORT_HARDWARE_PRESENT: u32 = 50528886u32; +pub const OID_FDDI_PORT_INDEX: u32 = 50528871u32; +pub const OID_FDDI_PORT_LCT_FAIL_CT: u32 = 50528876u32; +pub const OID_FDDI_PORT_LEM_CT: u32 = 50528879u32; +pub const OID_FDDI_PORT_LEM_REJECT_CT: u32 = 50528878u32; +pub const OID_FDDI_PORT_LER_ALARM: u32 = 50528881u32; +pub const OID_FDDI_PORT_LER_CUTOFF: u32 = 50528880u32; +pub const OID_FDDI_PORT_LER_ESTIMATE: u32 = 50528877u32; +pub const OID_FDDI_PORT_LER_FLAG: u32 = 50528885u32; +pub const OID_FDDI_PORT_MAC_INDICATED: u32 = 50528863u32; +pub const OID_FDDI_PORT_MAC_LOOP_TIME: u32 = 50528868u32; +pub const OID_FDDI_PORT_MAC_PLACEMENT: u32 = 50528866u32; +pub const OID_FDDI_PORT_MAINT_LS: u32 = 50528872u32; +pub const OID_FDDI_PORT_MY_TYPE: u32 = 50528860u32; +pub const OID_FDDI_PORT_NEIGHBOR_TYPE: u32 = 50528861u32; +pub const OID_FDDI_PORT_PCM_STATE: u32 = 50528883u32; +pub const OID_FDDI_PORT_PC_LS: u32 = 50528874u32; +pub const OID_FDDI_PORT_PC_WITHHOLD: u32 = 50528884u32; +pub const OID_FDDI_PORT_PMD_CLASS: u32 = 50528869u32; +pub const OID_FDDI_PORT_REQUESTED_PATHS: u32 = 50528865u32; +pub const OID_FDDI_RING_MGT_STATE: u32 = 50462982u32; +pub const OID_FDDI_SHORT_CURRENT_ADDR: u32 = 50397446u32; +pub const OID_FDDI_SHORT_MAX_LIST_SIZE: u32 = 50397448u32; +pub const OID_FDDI_SHORT_MULTICAST_LIST: u32 = 50397447u32; +pub const OID_FDDI_SHORT_PERMANENT_ADDR: u32 = 50397445u32; +pub const OID_FDDI_SMT_AVAILABLE_PATHS: u32 = 50528779u32; +pub const OID_FDDI_SMT_BYPASS_PRESENT: u32 = 50528788u32; +pub const OID_FDDI_SMT_CF_STATE: u32 = 50528790u32; +pub const OID_FDDI_SMT_CONFIG_CAPABILITIES: u32 = 50528780u32; +pub const OID_FDDI_SMT_CONFIG_POLICY: u32 = 50528781u32; +pub const OID_FDDI_SMT_CONNECTION_POLICY: u32 = 50528782u32; +pub const OID_FDDI_SMT_ECM_STATE: u32 = 50528789u32; +pub const OID_FDDI_SMT_HI_VERSION_ID: u32 = 50528771u32; +pub const OID_FDDI_SMT_HOLD_STATE: u32 = 50528791u32; +pub const OID_FDDI_SMT_LAST_SET_STATION_ID: u32 = 50528798u32; +pub const OID_FDDI_SMT_LO_VERSION_ID: u32 = 50528772u32; +pub const OID_FDDI_SMT_MAC_CT: u32 = 50528776u32; +pub const OID_FDDI_SMT_MAC_INDEXES: u32 = 50528787u32; +pub const OID_FDDI_SMT_MANUFACTURER_DATA: u32 = 50528773u32; +pub const OID_FDDI_SMT_MASTER_CT: u32 = 50528778u32; +pub const OID_FDDI_SMT_MIB_VERSION_ID: u32 = 50528775u32; +pub const OID_FDDI_SMT_MSG_TIME_STAMP: u32 = 50528795u32; +pub const OID_FDDI_SMT_NON_MASTER_CT: u32 = 50528777u32; +pub const OID_FDDI_SMT_OP_VERSION_ID: u32 = 50528770u32; +pub const OID_FDDI_SMT_PEER_WRAP_FLAG: u32 = 50528794u32; +pub const OID_FDDI_SMT_PORT_INDEXES: u32 = 50528786u32; +pub const OID_FDDI_SMT_REMOTE_DISCONNECT_FLAG: u32 = 50528792u32; +pub const OID_FDDI_SMT_SET_COUNT: u32 = 50528797u32; +pub const OID_FDDI_SMT_STATION_ACTION: u32 = 50528887u32; +pub const OID_FDDI_SMT_STATION_ID: u32 = 50528769u32; +pub const OID_FDDI_SMT_STATION_STATUS: u32 = 50528793u32; +pub const OID_FDDI_SMT_STAT_RPT_POLICY: u32 = 50528784u32; +pub const OID_FDDI_SMT_TRACE_MAX_EXPIRATION: u32 = 50528785u32; +pub const OID_FDDI_SMT_TRANSITION_TIME_STAMP: u32 = 50528796u32; +pub const OID_FDDI_SMT_T_NOTIFY: u32 = 50528783u32; +pub const OID_FDDI_SMT_USER_DATA: u32 = 50528774u32; +pub const OID_FDDI_UPSTREAM_NODE_LONG: u32 = 50462978u32; +pub const OID_FFP_ADAPTER_STATS: u32 = 4227990033u32; +pub const OID_FFP_CONTROL: u32 = 4227924498u32; +pub const OID_FFP_DATA: u32 = 4227924500u32; +pub const OID_FFP_DRIVER_STATS: u32 = 4227990032u32; +pub const OID_FFP_FLUSH: u32 = 4227924497u32; +pub const OID_FFP_PARAMS: u32 = 4227924499u32; +pub const OID_FFP_SUPPORT: u32 = 4227924496u32; +pub const OID_GEN_ADMIN_STATUS: u32 = 66184u32; +pub const OID_GEN_ALIAS: u32 = 66185u32; +pub const OID_GEN_BROADCAST_BYTES_RCV: u32 = 131595u32; +pub const OID_GEN_BROADCAST_BYTES_XMIT: u32 = 131589u32; +pub const OID_GEN_BROADCAST_FRAMES_RCV: u32 = 131596u32; +pub const OID_GEN_BROADCAST_FRAMES_XMIT: u32 = 131590u32; +pub const OID_GEN_BYTES_RCV: u32 = 131609u32; +pub const OID_GEN_BYTES_XMIT: u32 = 131610u32; +pub const OID_GEN_CO_BYTES_RCV: u32 = 131591u32; +pub const OID_GEN_CO_BYTES_XMIT: u32 = 131585u32; +pub const OID_GEN_CO_BYTES_XMIT_OUTSTANDING: u32 = 131617u32; +pub const OID_GEN_CO_DEVICE_PROFILE: u32 = 131602u32; +pub const OID_GEN_CO_DRIVER_VERSION: u32 = 65808u32; +pub const OID_GEN_CO_GET_NETCARD_TIME: u32 = 131600u32; +pub const OID_GEN_CO_GET_TIME_CAPS: u32 = 131599u32; +pub const OID_GEN_CO_HARDWARE_STATUS: u32 = 65794u32; +pub const OID_GEN_CO_LINK_SPEED: u32 = 65799u32; +pub const OID_GEN_CO_MAC_OPTIONS: u32 = 65811u32; +pub const OID_GEN_CO_MEDIA_CONNECT_STATUS: u32 = 65812u32; +pub const OID_GEN_CO_MEDIA_IN_USE: u32 = 65796u32; +pub const OID_GEN_CO_MEDIA_SUPPORTED: u32 = 65795u32; +pub const OID_GEN_CO_MINIMUM_LINK_SPEED: u32 = 131360u32; +pub const OID_GEN_CO_NETCARD_LOAD: u32 = 131601u32; +pub const OID_GEN_CO_PROTOCOL_OPTIONS: u32 = 65810u32; +pub const OID_GEN_CO_RCV_CRC_ERROR: u32 = 131597u32; +pub const OID_GEN_CO_RCV_PDUS_ERROR: u32 = 131332u32; +pub const OID_GEN_CO_RCV_PDUS_NO_BUFFER: u32 = 131333u32; +pub const OID_GEN_CO_RCV_PDUS_OK: u32 = 131330u32; +pub const OID_GEN_CO_SUPPORTED_GUIDS: u32 = 65815u32; +pub const OID_GEN_CO_SUPPORTED_LIST: u32 = 65793u32; +pub const OID_GEN_CO_TRANSMIT_QUEUE_LENGTH: u32 = 131598u32; +pub const OID_GEN_CO_VENDOR_DESCRIPTION: u32 = 65805u32; +pub const OID_GEN_CO_VENDOR_DRIVER_VERSION: u32 = 65814u32; +pub const OID_GEN_CO_VENDOR_ID: u32 = 65804u32; +pub const OID_GEN_CO_XMIT_PDUS_ERROR: u32 = 131331u32; +pub const OID_GEN_CO_XMIT_PDUS_OK: u32 = 131329u32; +pub const OID_GEN_CURRENT_LOOKAHEAD: u32 = 65807u32; +pub const OID_GEN_CURRENT_PACKET_FILTER: u32 = 65806u32; +pub const OID_GEN_DEVICE_PROFILE: u32 = 131602u32; +pub const OID_GEN_DIRECTED_BYTES_RCV: u32 = 131591u32; +pub const OID_GEN_DIRECTED_BYTES_XMIT: u32 = 131585u32; +pub const OID_GEN_DIRECTED_FRAMES_RCV: u32 = 131592u32; +pub const OID_GEN_DIRECTED_FRAMES_XMIT: u32 = 131586u32; +pub const OID_GEN_DISCONTINUITY_TIME: u32 = 66178u32; +pub const OID_GEN_DRIVER_VERSION: u32 = 65808u32; +pub const OID_GEN_ENUMERATE_PORTS: u32 = 66061u32; +pub const OID_GEN_FRIENDLY_NAME: u32 = 131606u32; +pub const OID_GEN_GET_NETCARD_TIME: u32 = 131600u32; +pub const OID_GEN_GET_TIME_CAPS: u32 = 131599u32; +pub const OID_GEN_HARDWARE_STATUS: u32 = 65794u32; +pub const OID_GEN_HD_SPLIT_CURRENT_CONFIG: u32 = 66080u32; +pub const OID_GEN_HD_SPLIT_PARAMETERS: u32 = 66078u32; +pub const OID_GEN_INIT_TIME_MS: u32 = 131603u32; +pub const OID_GEN_INTERFACE_INFO: u32 = 66183u32; +pub const OID_GEN_INTERRUPT_MODERATION: u32 = 66057u32; +pub const OID_GEN_IP_OPER_STATUS: u32 = 66189u32; +pub const OID_GEN_ISOLATION_PARAMETERS: u32 = 66304u32; +pub const OID_GEN_LAST_CHANGE: u32 = 66177u32; +pub const OID_GEN_LINK_PARAMETERS: u32 = 66056u32; +pub const OID_GEN_LINK_SPEED: u32 = 65799u32; +pub const OID_GEN_LINK_SPEED_EX: u32 = 66187u32; +pub const OID_GEN_LINK_STATE: u32 = 66055u32; +pub const OID_GEN_MACHINE_NAME: u32 = 66074u32; +pub const OID_GEN_MAC_ADDRESS: u32 = 66053u32; +pub const OID_GEN_MAC_OPTIONS: u32 = 65811u32; +pub const OID_GEN_MAXIMUM_FRAME_SIZE: u32 = 65798u32; +pub const OID_GEN_MAXIMUM_LOOKAHEAD: u32 = 65797u32; +pub const OID_GEN_MAXIMUM_SEND_PACKETS: u32 = 65813u32; +pub const OID_GEN_MAXIMUM_TOTAL_SIZE: u32 = 65809u32; +pub const OID_GEN_MAX_LINK_SPEED: u32 = 66054u32; +pub const OID_GEN_MEDIA_CAPABILITIES: u32 = 66049u32; +pub const OID_GEN_MEDIA_CONNECT_STATUS: u32 = 65812u32; +pub const OID_GEN_MEDIA_CONNECT_STATUS_EX: u32 = 66186u32; +pub const OID_GEN_MEDIA_DUPLEX_STATE: u32 = 66188u32; +pub const OID_GEN_MEDIA_IN_USE: u32 = 65796u32; +pub const OID_GEN_MEDIA_SENSE_COUNTS: u32 = 131605u32; +pub const OID_GEN_MEDIA_SUPPORTED: u32 = 65795u32; +pub const OID_GEN_MINIPORT_RESTART_ATTRIBUTES: u32 = 66077u32; +pub const OID_GEN_MULTICAST_BYTES_RCV: u32 = 131593u32; +pub const OID_GEN_MULTICAST_BYTES_XMIT: u32 = 131587u32; +pub const OID_GEN_MULTICAST_FRAMES_RCV: u32 = 131594u32; +pub const OID_GEN_MULTICAST_FRAMES_XMIT: u32 = 131588u32; +pub const OID_GEN_NDIS_RESERVED_1: u32 = 131607u32; +pub const OID_GEN_NDIS_RESERVED_2: u32 = 131608u32; +pub const OID_GEN_NDIS_RESERVED_3: u32 = 66058u32; +pub const OID_GEN_NDIS_RESERVED_4: u32 = 66059u32; +pub const OID_GEN_NDIS_RESERVED_5: u32 = 66060u32; +pub const OID_GEN_NDIS_RESERVED_6: u32 = 66066u32; +pub const OID_GEN_NDIS_RESERVED_7: u32 = 131614u32; +pub const OID_GEN_NETCARD_LOAD: u32 = 131601u32; +pub const OID_GEN_NETWORK_LAYER_ADDRESSES: u32 = 65816u32; +pub const OID_GEN_OPERATIONAL_STATUS: u32 = 66179u32; +pub const OID_GEN_PCI_DEVICE_CUSTOM_PROPERTIES: u32 = 66065u32; +pub const OID_GEN_PHYSICAL_MEDIUM: u32 = 66050u32; +pub const OID_GEN_PHYSICAL_MEDIUM_EX: u32 = 66067u32; +pub const OID_GEN_PORT_AUTHENTICATION_PARAMETERS: u32 = 66063u32; +pub const OID_GEN_PORT_STATE: u32 = 66062u32; +pub const OID_GEN_PROMISCUOUS_MODE: u32 = 66176u32; +pub const OID_GEN_PROTOCOL_OPTIONS: u32 = 65810u32; +pub const OID_GEN_RCV_CRC_ERROR: u32 = 131597u32; +pub const OID_GEN_RCV_DISCARDS: u32 = 131611u32; +pub const OID_GEN_RCV_ERROR: u32 = 131332u32; +pub const OID_GEN_RCV_LINK_SPEED: u32 = 66181u32; +pub const OID_GEN_RCV_NO_BUFFER: u32 = 131333u32; +pub const OID_GEN_RCV_OK: u32 = 131330u32; +pub const OID_GEN_RECEIVE_BLOCK_SIZE: u32 = 65803u32; +pub const OID_GEN_RECEIVE_BUFFER_SPACE: u32 = 65801u32; +pub const OID_GEN_RECEIVE_HASH: u32 = 66079u32; +pub const OID_GEN_RECEIVE_SCALE_CAPABILITIES: u32 = 66051u32; +pub const OID_GEN_RECEIVE_SCALE_PARAMETERS: u32 = 66052u32; +pub const OID_GEN_RECEIVE_SCALE_PARAMETERS_V2: u32 = 66068u32; +pub const OID_GEN_RESET_COUNTS: u32 = 131604u32; +pub const OID_GEN_RNDIS_CONFIG_PARAMETER: u32 = 66075u32; +pub const OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES: u32 = 66240u32; +pub const OID_GEN_STATISTICS: u32 = 131334u32; +pub const OID_GEN_SUPPORTED_GUIDS: u32 = 65815u32; +pub const OID_GEN_SUPPORTED_LIST: u32 = 65793u32; +pub const OID_GEN_TIMEOUT_DPC_REQUEST_CAPABILITIES: u32 = 66064u32; +pub const OID_GEN_TRANSMIT_BLOCK_SIZE: u32 = 65802u32; +pub const OID_GEN_TRANSMIT_BUFFER_SPACE: u32 = 65800u32; +pub const OID_GEN_TRANSMIT_QUEUE_LENGTH: u32 = 131598u32; +pub const OID_GEN_TRANSPORT_HEADER_OFFSET: u32 = 65817u32; +pub const OID_GEN_UNKNOWN_PROTOS: u32 = 66182u32; +pub const OID_GEN_VENDOR_DESCRIPTION: u32 = 65805u32; +pub const OID_GEN_VENDOR_DRIVER_VERSION: u32 = 65814u32; +pub const OID_GEN_VENDOR_ID: u32 = 65804u32; +pub const OID_GEN_VLAN_ID: u32 = 66076u32; +pub const OID_GEN_XMIT_DISCARDS: u32 = 131612u32; +pub const OID_GEN_XMIT_ERROR: u32 = 131331u32; +pub const OID_GEN_XMIT_LINK_SPEED: u32 = 66180u32; +pub const OID_GEN_XMIT_OK: u32 = 131329u32; +pub const OID_GFT_ACTIVATE_FLOW_ENTRIES: u32 = 66575u32; +pub const OID_GFT_ADD_FLOW_ENTRIES: u32 = 66572u32; +pub const OID_GFT_ALLOCATE_COUNTERS: u32 = 66567u32; +pub const OID_GFT_COUNTER_VALUES: u32 = 66570u32; +pub const OID_GFT_CREATE_LOGICAL_VPORT: u32 = 66584u32; +pub const OID_GFT_CREATE_TABLE: u32 = 66564u32; +pub const OID_GFT_CURRENT_CAPABILITIES: u32 = 66562u32; +pub const OID_GFT_DEACTIVATE_FLOW_ENTRIES: u32 = 66576u32; +pub const OID_GFT_DELETE_FLOW_ENTRIES: u32 = 66573u32; +pub const OID_GFT_DELETE_LOGICAL_VPORT: u32 = 66585u32; +pub const OID_GFT_DELETE_PROFILE: u32 = 66582u32; +pub const OID_GFT_DELETE_TABLE: u32 = 66565u32; +pub const OID_GFT_ENUM_COUNTERS: u32 = 66569u32; +pub const OID_GFT_ENUM_FLOW_ENTRIES: u32 = 66574u32; +pub const OID_GFT_ENUM_LOGICAL_VPORTS: u32 = 66586u32; +pub const OID_GFT_ENUM_PROFILES: u32 = 66581u32; +pub const OID_GFT_ENUM_TABLES: u32 = 66566u32; +pub const OID_GFT_EXACT_MATCH_PROFILE: u32 = 66578u32; +pub const OID_GFT_FLOW_ENTRY_PARAMETERS: u32 = 66577u32; +pub const OID_GFT_FREE_COUNTERS: u32 = 66568u32; +pub const OID_GFT_GLOBAL_PARAMETERS: u32 = 66563u32; +pub const OID_GFT_HARDWARE_CAPABILITIES: u32 = 66561u32; +pub const OID_GFT_HEADER_TRANSPOSITION_PROFILE: u32 = 66579u32; +pub const OID_GFT_STATISTICS: u32 = 66571u32; +pub const OID_GFT_VPORT_PARAMETERS: u32 = 66583u32; +pub const OID_GFT_WILDCARD_MATCH_PROFILE: u32 = 66580u32; +pub const OID_IP4_OFFLOAD_STATS: u32 = 4227924489u32; +pub const OID_IP6_OFFLOAD_STATS: u32 = 4227924490u32; +pub const OID_IRDA_EXTRA_RCV_BOFS: u32 = 167838208u32; +pub const OID_IRDA_LINK_SPEED: u32 = 167837955u32; +pub const OID_IRDA_MAX_RECEIVE_WINDOW_SIZE: u32 = 167838212u32; +pub const OID_IRDA_MAX_SEND_WINDOW_SIZE: u32 = 167838213u32; +pub const OID_IRDA_MAX_UNICAST_LIST_SIZE: u32 = 167838211u32; +pub const OID_IRDA_MEDIA_BUSY: u32 = 167837956u32; +pub const OID_IRDA_RATE_SNIFF: u32 = 167838209u32; +pub const OID_IRDA_RECEIVING: u32 = 167837952u32; +pub const OID_IRDA_RESERVED1: u32 = 167838218u32; +pub const OID_IRDA_RESERVED2: u32 = 167838223u32; +pub const OID_IRDA_SUPPORTED_SPEEDS: u32 = 167837954u32; +pub const OID_IRDA_TURNAROUND_TIME: u32 = 167837953u32; +pub const OID_IRDA_UNICAST_LIST: u32 = 167838210u32; +pub const OID_KDNET_ADD_PF: u32 = 131619u32; +pub const OID_KDNET_ENUMERATE_PFS: u32 = 131618u32; +pub const OID_KDNET_QUERY_PF_INFORMATION: u32 = 131621u32; +pub const OID_KDNET_REMOVE_PF: u32 = 131620u32; +pub const OID_LTALK_COLLISIONS: u32 = 84017666u32; +pub const OID_LTALK_CURRENT_NODE_ID: u32 = 83951874u32; +pub const OID_LTALK_DEFERS: u32 = 84017667u32; +pub const OID_LTALK_FCS_ERRORS: u32 = 84017670u32; +pub const OID_LTALK_IN_BROADCASTS: u32 = 84017409u32; +pub const OID_LTALK_IN_LENGTH_ERRORS: u32 = 84017410u32; +pub const OID_LTALK_NO_DATA_ERRORS: u32 = 84017668u32; +pub const OID_LTALK_OUT_NO_HANDLERS: u32 = 84017665u32; +pub const OID_LTALK_RANDOM_CTS_ERRORS: u32 = 84017669u32; +pub const OID_NDK_CONNECTIONS: u32 = 4228121091u32; +pub const OID_NDK_LOCAL_ENDPOINTS: u32 = 4228121092u32; +pub const OID_NDK_SET_STATE: u32 = 4228121089u32; +pub const OID_NDK_STATISTICS: u32 = 4228121090u32; +pub const OID_NIC_SWITCH_ALLOCATE_VF: u32 = 66117u32; +pub const OID_NIC_SWITCH_CREATE_SWITCH: u32 = 66103u32; +pub const OID_NIC_SWITCH_CREATE_VPORT: u32 = 66113u32; +pub const OID_NIC_SWITCH_CURRENT_CAPABILITIES: u32 = 66095u32; +pub const OID_NIC_SWITCH_DELETE_SWITCH: u32 = 66105u32; +pub const OID_NIC_SWITCH_DELETE_VPORT: u32 = 66116u32; +pub const OID_NIC_SWITCH_ENUM_SWITCHES: u32 = 66112u32; +pub const OID_NIC_SWITCH_ENUM_VFS: u32 = 66120u32; +pub const OID_NIC_SWITCH_ENUM_VPORTS: u32 = 66115u32; +pub const OID_NIC_SWITCH_FREE_VF: u32 = 66118u32; +pub const OID_NIC_SWITCH_HARDWARE_CAPABILITIES: u32 = 66094u32; +pub const OID_NIC_SWITCH_PARAMETERS: u32 = 66104u32; +pub const OID_NIC_SWITCH_VF_PARAMETERS: u32 = 66119u32; +pub const OID_NIC_SWITCH_VPORT_PARAMETERS: u32 = 66114u32; +pub const OID_OFFLOAD_ENCAPSULATION: u32 = 16843018u32; +pub const OID_PACKET_COALESCING_FILTER_MATCH_COUNT: u32 = 66101u32; +pub const OID_PD_CLOSE_PROVIDER: u32 = 66818u32; +pub const OID_PD_OPEN_PROVIDER: u32 = 66817u32; +pub const OID_PD_QUERY_CURRENT_CONFIG: u32 = 66819u32; +pub const OID_PM_ADD_PROTOCOL_OFFLOAD: u32 = 4244701453u32; +pub const OID_PM_ADD_WOL_PATTERN: u32 = 4244701450u32; +pub const OID_PM_CURRENT_CAPABILITIES: u32 = 4244701447u32; +pub const OID_PM_GET_PROTOCOL_OFFLOAD: u32 = 4244701454u32; +pub const OID_PM_HARDWARE_CAPABILITIES: u32 = 4244701448u32; +pub const OID_PM_PARAMETERS: u32 = 4244701449u32; +pub const OID_PM_PROTOCOL_OFFLOAD_LIST: u32 = 4244701456u32; +pub const OID_PM_REMOVE_PROTOCOL_OFFLOAD: u32 = 4244701455u32; +pub const OID_PM_REMOVE_WOL_PATTERN: u32 = 4244701451u32; +pub const OID_PM_RESERVED_1: u32 = 4244701457u32; +pub const OID_PM_WOL_PATTERN_LIST: u32 = 4244701452u32; +pub const OID_PNP_ADD_WAKE_UP_PATTERN: u32 = 4244701443u32; +pub const OID_PNP_CAPABILITIES: u32 = 4244701440u32; +pub const OID_PNP_ENABLE_WAKE_UP: u32 = 4244701446u32; +pub const OID_PNP_QUERY_POWER: u32 = 4244701442u32; +pub const OID_PNP_REMOVE_WAKE_UP_PATTERN: u32 = 4244701444u32; +pub const OID_PNP_SET_POWER: u32 = 4244701441u32; +pub const OID_PNP_WAKE_UP_ERROR: u32 = 4244767233u32; +pub const OID_PNP_WAKE_UP_OK: u32 = 4244767232u32; +pub const OID_PNP_WAKE_UP_PATTERN_LIST: u32 = 4244701445u32; +pub const OID_QOS_CURRENT_CAPABILITIES: u32 = 4228186114u32; +pub const OID_QOS_HARDWARE_CAPABILITIES: u32 = 4228186113u32; +pub const OID_QOS_OFFLOAD_CREATE_SQ: u32 = 67075u32; +pub const OID_QOS_OFFLOAD_CURRENT_CAPABILITIES: u32 = 67074u32; +pub const OID_QOS_OFFLOAD_DELETE_SQ: u32 = 67076u32; +pub const OID_QOS_OFFLOAD_ENUM_SQS: u32 = 67078u32; +pub const OID_QOS_OFFLOAD_HARDWARE_CAPABILITIES: u32 = 67073u32; +pub const OID_QOS_OFFLOAD_SQ_STATS: u32 = 67079u32; +pub const OID_QOS_OFFLOAD_UPDATE_SQ: u32 = 67077u32; +pub const OID_QOS_OPERATIONAL_PARAMETERS: u32 = 4228186116u32; +pub const OID_QOS_PARAMETERS: u32 = 4228186115u32; +pub const OID_QOS_REMOTE_PARAMETERS: u32 = 4228186117u32; +pub const OID_QOS_RESERVED1: u32 = 4211147008u32; +pub const OID_QOS_RESERVED10: u32 = 4211147017u32; +pub const OID_QOS_RESERVED11: u32 = 4211147018u32; +pub const OID_QOS_RESERVED12: u32 = 4211147019u32; +pub const OID_QOS_RESERVED13: u32 = 4211147020u32; +pub const OID_QOS_RESERVED14: u32 = 4211147021u32; +pub const OID_QOS_RESERVED15: u32 = 4211147022u32; +pub const OID_QOS_RESERVED16: u32 = 4211147023u32; +pub const OID_QOS_RESERVED17: u32 = 4211147024u32; +pub const OID_QOS_RESERVED18: u32 = 4211147025u32; +pub const OID_QOS_RESERVED19: u32 = 4211147026u32; +pub const OID_QOS_RESERVED2: u32 = 4211147009u32; +pub const OID_QOS_RESERVED20: u32 = 4211147027u32; +pub const OID_QOS_RESERVED3: u32 = 4211147010u32; +pub const OID_QOS_RESERVED4: u32 = 4211147011u32; +pub const OID_QOS_RESERVED5: u32 = 4211147012u32; +pub const OID_QOS_RESERVED6: u32 = 4211147013u32; +pub const OID_QOS_RESERVED7: u32 = 4211147014u32; +pub const OID_QOS_RESERVED8: u32 = 4211147015u32; +pub const OID_QOS_RESERVED9: u32 = 4211147016u32; +pub const OID_RECEIVE_FILTER_ALLOCATE_QUEUE: u32 = 66083u32; +pub const OID_RECEIVE_FILTER_CLEAR_FILTER: u32 = 66088u32; +pub const OID_RECEIVE_FILTER_CURRENT_CAPABILITIES: u32 = 66093u32; +pub const OID_RECEIVE_FILTER_ENUM_FILTERS: u32 = 66089u32; +pub const OID_RECEIVE_FILTER_ENUM_QUEUES: u32 = 66085u32; +pub const OID_RECEIVE_FILTER_FREE_QUEUE: u32 = 66084u32; +pub const OID_RECEIVE_FILTER_GLOBAL_PARAMETERS: u32 = 66082u32; +pub const OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES: u32 = 66081u32; +pub const OID_RECEIVE_FILTER_MOVE_FILTER: u32 = 66096u32; +pub const OID_RECEIVE_FILTER_PARAMETERS: u32 = 66090u32; +pub const OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE: u32 = 66091u32; +pub const OID_RECEIVE_FILTER_QUEUE_PARAMETERS: u32 = 66086u32; +pub const OID_RECEIVE_FILTER_SET_FILTER: u32 = 66087u32; +pub const OID_SRIOV_BAR_RESOURCES: u32 = 66137u32; +pub const OID_SRIOV_CONFIG_STATE: u32 = 66145u32; +pub const OID_SRIOV_CURRENT_CAPABILITIES: u32 = 66128u32; +pub const OID_SRIOV_HARDWARE_CAPABILITIES: u32 = 66121u32; +pub const OID_SRIOV_OVERLYING_ADAPTER_INFO: u32 = 66152u32; +pub const OID_SRIOV_PF_LUID: u32 = 66144u32; +pub const OID_SRIOV_PROBED_BARS: u32 = 66136u32; +pub const OID_SRIOV_READ_VF_CONFIG_BLOCK: u32 = 66131u32; +pub const OID_SRIOV_READ_VF_CONFIG_SPACE: u32 = 66129u32; +pub const OID_SRIOV_RESET_VF: u32 = 66133u32; +pub const OID_SRIOV_SET_VF_POWER_STATE: u32 = 66134u32; +pub const OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK: u32 = 66153u32; +pub const OID_SRIOV_VF_SERIAL_NUMBER: u32 = 66146u32; +pub const OID_SRIOV_VF_VENDOR_DEVICE_ID: u32 = 66135u32; +pub const OID_SRIOV_WRITE_VF_CONFIG_BLOCK: u32 = 66132u32; +pub const OID_SRIOV_WRITE_VF_CONFIG_SPACE: u32 = 66130u32; +pub const OID_SWITCH_FEATURE_STATUS_QUERY: u32 = 66151u32; +pub const OID_SWITCH_NIC_ARRAY: u32 = 66167u32; +pub const OID_SWITCH_NIC_CONNECT: u32 = 66171u32; +pub const OID_SWITCH_NIC_CREATE: u32 = 66170u32; +pub const OID_SWITCH_NIC_DELETE: u32 = 66173u32; +pub const OID_SWITCH_NIC_DIRECT_REQUEST: u32 = 66198u32; +pub const OID_SWITCH_NIC_DISCONNECT: u32 = 66172u32; +pub const OID_SWITCH_NIC_REQUEST: u32 = 66160u32; +pub const OID_SWITCH_NIC_RESTORE: u32 = 66194u32; +pub const OID_SWITCH_NIC_RESTORE_COMPLETE: u32 = 66195u32; +pub const OID_SWITCH_NIC_RESUME: u32 = 66200u32; +pub const OID_SWITCH_NIC_SAVE: u32 = 66192u32; +pub const OID_SWITCH_NIC_SAVE_COMPLETE: u32 = 66193u32; +pub const OID_SWITCH_NIC_SUSPEND: u32 = 66199u32; +pub const OID_SWITCH_NIC_SUSPENDED_LM_SOURCE_FINISHED: u32 = 66202u32; +pub const OID_SWITCH_NIC_SUSPENDED_LM_SOURCE_STARTED: u32 = 66201u32; +pub const OID_SWITCH_NIC_UPDATED: u32 = 66196u32; +pub const OID_SWITCH_PARAMETERS: u32 = 66165u32; +pub const OID_SWITCH_PORT_ARRAY: u32 = 66166u32; +pub const OID_SWITCH_PORT_CREATE: u32 = 66168u32; +pub const OID_SWITCH_PORT_DELETE: u32 = 66169u32; +pub const OID_SWITCH_PORT_FEATURE_STATUS_QUERY: u32 = 66174u32; +pub const OID_SWITCH_PORT_PROPERTY_ADD: u32 = 66161u32; +pub const OID_SWITCH_PORT_PROPERTY_DELETE: u32 = 66163u32; +pub const OID_SWITCH_PORT_PROPERTY_ENUM: u32 = 66164u32; +pub const OID_SWITCH_PORT_PROPERTY_UPDATE: u32 = 66162u32; +pub const OID_SWITCH_PORT_TEARDOWN: u32 = 66175u32; +pub const OID_SWITCH_PORT_UPDATED: u32 = 66197u32; +pub const OID_SWITCH_PROPERTY_ADD: u32 = 66147u32; +pub const OID_SWITCH_PROPERTY_DELETE: u32 = 66149u32; +pub const OID_SWITCH_PROPERTY_ENUM: u32 = 66150u32; +pub const OID_SWITCH_PROPERTY_UPDATE: u32 = 66148u32; +pub const OID_TAPI_ACCEPT: u32 = 117637377u32; +pub const OID_TAPI_ANSWER: u32 = 117637378u32; +pub const OID_TAPI_CLOSE: u32 = 117637379u32; +pub const OID_TAPI_CLOSE_CALL: u32 = 117637380u32; +pub const OID_TAPI_CONDITIONAL_MEDIA_DETECTION: u32 = 117637381u32; +pub const OID_TAPI_CONFIG_DIALOG: u32 = 117637382u32; +pub const OID_TAPI_DEV_SPECIFIC: u32 = 117637383u32; +pub const OID_TAPI_DIAL: u32 = 117637384u32; +pub const OID_TAPI_DROP: u32 = 117637385u32; +pub const OID_TAPI_GATHER_DIGITS: u32 = 117637411u32; +pub const OID_TAPI_GET_ADDRESS_CAPS: u32 = 117637386u32; +pub const OID_TAPI_GET_ADDRESS_ID: u32 = 117637387u32; +pub const OID_TAPI_GET_ADDRESS_STATUS: u32 = 117637388u32; +pub const OID_TAPI_GET_CALL_ADDRESS_ID: u32 = 117637389u32; +pub const OID_TAPI_GET_CALL_INFO: u32 = 117637390u32; +pub const OID_TAPI_GET_CALL_STATUS: u32 = 117637391u32; +pub const OID_TAPI_GET_DEV_CAPS: u32 = 117637392u32; +pub const OID_TAPI_GET_DEV_CONFIG: u32 = 117637393u32; +pub const OID_TAPI_GET_EXTENSION_ID: u32 = 117637394u32; +pub const OID_TAPI_GET_ID: u32 = 117637395u32; +pub const OID_TAPI_GET_LINE_DEV_STATUS: u32 = 117637396u32; +pub const OID_TAPI_MAKE_CALL: u32 = 117637397u32; +pub const OID_TAPI_MONITOR_DIGITS: u32 = 117637412u32; +pub const OID_TAPI_NEGOTIATE_EXT_VERSION: u32 = 117637398u32; +pub const OID_TAPI_OPEN: u32 = 117637399u32; +pub const OID_TAPI_PROVIDER_INITIALIZE: u32 = 117637400u32; +pub const OID_TAPI_PROVIDER_SHUTDOWN: u32 = 117637401u32; +pub const OID_TAPI_SECURE_CALL: u32 = 117637402u32; +pub const OID_TAPI_SELECT_EXT_VERSION: u32 = 117637403u32; +pub const OID_TAPI_SEND_USER_USER_INFO: u32 = 117637404u32; +pub const OID_TAPI_SET_APP_SPECIFIC: u32 = 117637405u32; +pub const OID_TAPI_SET_CALL_PARAMS: u32 = 117637406u32; +pub const OID_TAPI_SET_DEFAULT_MEDIA_DETECTION: u32 = 117637407u32; +pub const OID_TAPI_SET_DEV_CONFIG: u32 = 117637408u32; +pub const OID_TAPI_SET_MEDIA_MODE: u32 = 117637409u32; +pub const OID_TAPI_SET_STATUS_MESSAGES: u32 = 117637410u32; +pub const OID_TCP4_OFFLOAD_STATS: u32 = 4227924487u32; +pub const OID_TCP6_OFFLOAD_STATS: u32 = 4227924488u32; +pub const OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG: u32 = 4227924494u32; +pub const OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES: u32 = 4227924495u32; +pub const OID_TCP_CONNECTION_OFFLOAD_PARAMETERS: u32 = 4228055553u32; +pub const OID_TCP_OFFLOAD_CURRENT_CONFIG: u32 = 4227924491u32; +pub const OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES: u32 = 4227924493u32; +pub const OID_TCP_OFFLOAD_PARAMETERS: u32 = 4227924492u32; +pub const OID_TCP_RSC_STATISTICS: u32 = 131613u32; +pub const OID_TCP_SAN_SUPPORT: u32 = 4227924484u32; +pub const OID_TCP_TASK_IPSEC_ADD_SA: u32 = 4227924482u32; +pub const OID_TCP_TASK_IPSEC_ADD_UDPESP_SA: u32 = 4227924485u32; +pub const OID_TCP_TASK_IPSEC_DELETE_SA: u32 = 4227924483u32; +pub const OID_TCP_TASK_IPSEC_DELETE_UDPESP_SA: u32 = 4227924486u32; +pub const OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA: u32 = 4228055554u32; +pub const OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX: u32 = 4228055557u32; +pub const OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA: u32 = 4228055555u32; +pub const OID_TCP_TASK_IPSEC_OFFLOAD_V2_UPDATE_SA: u32 = 4228055556u32; +pub const OID_TCP_TASK_OFFLOAD: u32 = 4227924481u32; +pub const OID_TIMESTAMP_CAPABILITY: u32 = 10485761u32; +pub const OID_TIMESTAMP_CURRENT_CONFIG: u32 = 10485762u32; +pub const OID_TIMESTAMP_GET_CROSSTIMESTAMP: u32 = 10485763u32; +pub const OID_TUNNEL_INTERFACE_RELEASE_OID: u32 = 251724039u32; +pub const OID_TUNNEL_INTERFACE_SET_OID: u32 = 251724038u32; +pub const OID_VLAN_RESERVED1: u32 = 66097u32; +pub const OID_VLAN_RESERVED2: u32 = 66098u32; +pub const OID_VLAN_RESERVED3: u32 = 66099u32; +pub const OID_VLAN_RESERVED4: u32 = 66100u32; +pub const OID_WAN_CO_GET_COMP_INFO: u32 = 67175040u32; +pub const OID_WAN_CO_GET_INFO: u32 = 67174784u32; +pub const OID_WAN_CO_GET_LINK_INFO: u32 = 67174786u32; +pub const OID_WAN_CO_GET_STATS_INFO: u32 = 67175042u32; +pub const OID_WAN_CO_SET_COMP_INFO: u32 = 67175041u32; +pub const OID_WAN_CO_SET_LINK_INFO: u32 = 67174785u32; +pub const OID_WAN_CURRENT_ADDRESS: u32 = 67174658u32; +pub const OID_WAN_GET_BRIDGE_INFO: u32 = 67174922u32; +pub const OID_WAN_GET_COMP_INFO: u32 = 67174924u32; +pub const OID_WAN_GET_INFO: u32 = 67174663u32; +pub const OID_WAN_GET_LINK_INFO: u32 = 67174665u32; +pub const OID_WAN_GET_STATS_INFO: u32 = 67174926u32; +pub const OID_WAN_HEADER_FORMAT: u32 = 67174662u32; +pub const OID_WAN_LINE_COUNT: u32 = 67174666u32; +pub const OID_WAN_MEDIUM_SUBTYPE: u32 = 67174661u32; +pub const OID_WAN_PERMANENT_ADDRESS: u32 = 67174657u32; +pub const OID_WAN_PROTOCOL_CAPS: u32 = 67174667u32; +pub const OID_WAN_PROTOCOL_TYPE: u32 = 67174660u32; +pub const OID_WAN_QUALITY_OF_SERVICE: u32 = 67174659u32; +pub const OID_WAN_SET_BRIDGE_INFO: u32 = 67174923u32; +pub const OID_WAN_SET_COMP_INFO: u32 = 67174925u32; +pub const OID_WAN_SET_LINK_INFO: u32 = 67174664u32; +pub const OID_WWAN_AUTH_CHALLENGE: u32 = 234946837u32; +pub const OID_WWAN_BASE_STATIONS_INFO: u32 = 234946888u32; +pub const OID_WWAN_CONNECT: u32 = 234946828u32; +pub const OID_WWAN_CREATE_MAC: u32 = 234946854u32; +pub const OID_WWAN_DELETE_MAC: u32 = 234946855u32; +pub const OID_WWAN_DEVICE_BINDINGS: u32 = 234946865u32; +pub const OID_WWAN_DEVICE_CAPS: u32 = 234946817u32; +pub const OID_WWAN_DEVICE_CAPS_EX: u32 = 234946862u32; +pub const OID_WWAN_DEVICE_RESET: u32 = 234946887u32; +pub const OID_WWAN_DEVICE_SERVICE_COMMAND: u32 = 234946840u32; +pub const OID_WWAN_DEVICE_SERVICE_SESSION: u32 = 234946851u32; +pub const OID_WWAN_DEVICE_SERVICE_SESSION_WRITE: u32 = 234946852u32; +pub const OID_WWAN_DRIVER_CAPS: u32 = 234946816u32; +pub const OID_WWAN_ENUMERATE_DEVICE_SERVICES: u32 = 234946838u32; +pub const OID_WWAN_ENUMERATE_DEVICE_SERVICE_COMMANDS: u32 = 234946850u32; +pub const OID_WWAN_HOME_PROVIDER: u32 = 234946822u32; +pub const OID_WWAN_IMS_VOICE_STATE: u32 = 234946867u32; +pub const OID_WWAN_LOCATION_STATE: u32 = 234946869u32; +pub const OID_WWAN_LTE_ATTACH_CONFIG: u32 = 234946882u32; +pub const OID_WWAN_LTE_ATTACH_STATUS: u32 = 234946883u32; +pub const OID_WWAN_MBIM_VERSION: u32 = 234946860u32; +pub const OID_WWAN_MODEM_CONFIG_INFO: u32 = 234946884u32; +pub const OID_WWAN_MODEM_LOGGING_CONFIG: u32 = 234946891u32; +pub const OID_WWAN_MPDP: u32 = 234946889u32; +pub const OID_WWAN_NETWORK_BLACKLIST: u32 = 234946881u32; +pub const OID_WWAN_NETWORK_IDLE_HINT: u32 = 234946871u32; +pub const OID_WWAN_NETWORK_PARAMS: u32 = 234946893u32; +pub const OID_WWAN_NITZ: u32 = 234946870u32; +pub const OID_WWAN_PACKET_SERVICE: u32 = 234946826u32; +pub const OID_WWAN_PCO: u32 = 234946885u32; +pub const OID_WWAN_PIN: u32 = 234946820u32; +pub const OID_WWAN_PIN_EX: u32 = 234946849u32; +pub const OID_WWAN_PIN_EX2: u32 = 234946859u32; +pub const OID_WWAN_PIN_LIST: u32 = 234946821u32; +pub const OID_WWAN_PREFERRED_MULTICARRIER_PROVIDERS: u32 = 234946853u32; +pub const OID_WWAN_PREFERRED_PROVIDERS: u32 = 234946823u32; +pub const OID_WWAN_PRESHUTDOWN: u32 = 234946872u32; +pub const OID_WWAN_PROVISIONED_CONTEXTS: u32 = 234946829u32; +pub const OID_WWAN_PS_MEDIA_CONFIG: u32 = 234946878u32; +pub const OID_WWAN_RADIO_STATE: u32 = 234946819u32; +pub const OID_WWAN_READY_INFO: u32 = 234946818u32; +pub const OID_WWAN_REGISTER_PARAMS: u32 = 234946892u32; +pub const OID_WWAN_REGISTER_STATE: u32 = 234946825u32; +pub const OID_WWAN_REGISTER_STATE_EX: u32 = 234946866u32; +pub const OID_WWAN_SAR_CONFIG: u32 = 234946879u32; +pub const OID_WWAN_SAR_TRANSMISSION_STATUS: u32 = 234946880u32; +pub const OID_WWAN_SERVICE_ACTIVATION: u32 = 234946830u32; +pub const OID_WWAN_SIGNAL_STATE: u32 = 234946827u32; +pub const OID_WWAN_SIGNAL_STATE_EX: u32 = 234946868u32; +pub const OID_WWAN_SLOT_INFO_STATUS: u32 = 234946864u32; +pub const OID_WWAN_SMS_CONFIGURATION: u32 = 234946831u32; +pub const OID_WWAN_SMS_DELETE: u32 = 234946834u32; +pub const OID_WWAN_SMS_READ: u32 = 234946832u32; +pub const OID_WWAN_SMS_SEND: u32 = 234946833u32; +pub const OID_WWAN_SMS_STATUS: u32 = 234946835u32; +pub const OID_WWAN_SUBSCRIBE_DEVICE_SERVICE_EVENTS: u32 = 234946839u32; +pub const OID_WWAN_SYS_CAPS: u32 = 234946861u32; +pub const OID_WWAN_SYS_SLOTMAPPINGS: u32 = 234946863u32; +pub const OID_WWAN_UE_POLICY: u32 = 234946894u32; +pub const OID_WWAN_UICC_ACCESS_BINARY: u32 = 234946857u32; +pub const OID_WWAN_UICC_ACCESS_RECORD: u32 = 234946858u32; +pub const OID_WWAN_UICC_APDU: u32 = 234946876u32; +pub const OID_WWAN_UICC_APP_LIST: u32 = 234946890u32; +pub const OID_WWAN_UICC_ATR: u32 = 234946873u32; +pub const OID_WWAN_UICC_CLOSE_CHANNEL: u32 = 234946875u32; +pub const OID_WWAN_UICC_FILE_STATUS: u32 = 234946856u32; +pub const OID_WWAN_UICC_OPEN_CHANNEL: u32 = 234946874u32; +pub const OID_WWAN_UICC_RESET: u32 = 234946886u32; +pub const OID_WWAN_UICC_TERMINAL_CAPABILITY: u32 = 234946877u32; +pub const OID_WWAN_USSD: u32 = 234946841u32; +pub const OID_WWAN_VENDOR_SPECIFIC: u32 = 234946836u32; +pub const OID_WWAN_VISIBLE_PROVIDERS: u32 = 234946824u32; +pub const OID_XBOX_ACC_RESERVED0: u32 = 4194304000u32; +pub const READABLE_LOCAL_CLOCK: u32 = 1u32; +pub const RECEIVE_TIME_INDICATION_CAPABLE: u32 = 8u32; +pub const TIMED_SEND_CAPABLE: u32 = 16u32; +pub const TIME_STAMP_CAPABLE: u32 = 32u32; +pub const TUNNEL_TYPE_6TO4: TUNNEL_TYPE = 11i32; +pub const TUNNEL_TYPE_DIRECT: TUNNEL_TYPE = 2i32; +pub const TUNNEL_TYPE_IPHTTPS: TUNNEL_TYPE = 15i32; +pub const TUNNEL_TYPE_ISATAP: TUNNEL_TYPE = 13i32; +pub const TUNNEL_TYPE_NONE: TUNNEL_TYPE = 0i32; +pub const TUNNEL_TYPE_OTHER: TUNNEL_TYPE = 1i32; +pub const TUNNEL_TYPE_TEREDO: TUNNEL_TYPE = 14i32; +pub const UNSPECIFIED_NETWORK_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x12ba5bde_143e_4c0d_b66d_2379bb141913); +pub const WAN_PROTOCOL_KEEPS_STATS: u32 = 1u32; +pub const fNDIS_GUID_ALLOW_READ: u32 = 32u32; +pub const fNDIS_GUID_ALLOW_WRITE: u32 = 64u32; +pub const fNDIS_GUID_ANSI_STRING: u32 = 4u32; +pub const fNDIS_GUID_ARRAY: u32 = 16u32; +pub const fNDIS_GUID_METHOD: u32 = 128u32; +pub const fNDIS_GUID_NDIS_RESERVED: u32 = 256u32; +pub const fNDIS_GUID_SUPPORT_COMMON_HEADER: u32 = 512u32; +pub const fNDIS_GUID_TO_OID: u32 = 1u32; +pub const fNDIS_GUID_TO_STATUS: u32 = 2u32; +pub const fNDIS_GUID_UNICODE_STRING: u32 = 8u32; +pub type IF_ADMINISTRATIVE_STATE = i32; +pub type IF_OPER_STATUS = i32; +pub type NDIS_802_11_AUTHENTICATION_MODE = i32; +pub type NDIS_802_11_MEDIA_STREAM_MODE = i32; +pub type NDIS_802_11_NETWORK_INFRASTRUCTURE = i32; +pub type NDIS_802_11_NETWORK_TYPE = i32; +pub type NDIS_802_11_POWER_MODE = i32; +pub type NDIS_802_11_PRIVACY_FILTER = i32; +pub type NDIS_802_11_RADIO_STATUS = i32; +pub type NDIS_802_11_RELOAD_DEFAULTS = i32; +pub type NDIS_802_11_STATUS_TYPE = i32; +pub type NDIS_802_11_WEP_STATUS = i32; +pub type NDIS_802_5_RING_STATE = i32; +pub type NDIS_DEVICE_POWER_STATE = i32; +pub type NDIS_FDDI_ATTACHMENT_TYPE = i32; +pub type NDIS_FDDI_LCONNECTION_STATE = i32; +pub type NDIS_FDDI_RING_MGT_STATE = i32; +pub type NDIS_HARDWARE_STATUS = i32; +pub type NDIS_INTERRUPT_MODERATION = i32; +pub type NDIS_MEDIA_STATE = i32; +pub type NDIS_MEDIUM = i32; +pub type NDIS_NETWORK_CHANGE_TYPE = i32; +pub type NDIS_PHYSICAL_MEDIUM = i32; +pub type NDIS_PORT_AUTHORIZATION_STATE = i32; +pub type NDIS_PORT_CONTROL_STATE = i32; +pub type NDIS_PORT_TYPE = i32; +pub type NDIS_PROCESSOR_VENDOR = i32; +pub type NDIS_REQUEST_TYPE = i32; +pub type NDIS_SUPPORTED_PAUSE_FUNCTIONS = i32; +pub type NDIS_WAN_HEADER_FORMAT = i32; +pub type NDIS_WAN_MEDIUM_SUBTYPE = i32; +pub type NDIS_WAN_QUALITY = i32; +pub type NDK_RDMA_TECHNOLOGY = i32; +pub type NET_IF_ACCESS_TYPE = i32; +pub type NET_IF_ADMIN_STATUS = i32; +pub type NET_IF_CONNECTION_TYPE = i32; +pub type NET_IF_DIRECTION_TYPE = i32; +pub type NET_IF_MEDIA_CONNECT_STATE = i32; +pub type NET_IF_MEDIA_DUPLEX_STATE = i32; +pub type NET_IF_OPER_STATUS = i32; +pub type NET_IF_RCV_ADDRESS_TYPE = i32; +pub type OFFLOAD_CONF_ALGO = i32; +pub type OFFLOAD_INTEGRITY_ALGO = i32; +pub type OFFLOAD_OPERATION_E = i32; +pub type TUNNEL_TYPE = i32; +pub type UDP_ENCAP_TYPE = i32; +#[repr(C)] +pub struct BSSID_INFO { + pub BSSID: [u8; 6], + pub PMKID: [u8; 16], +} +impl ::core::marker::Copy for BSSID_INFO {} +impl ::core::clone::Clone for BSSID_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GEN_GET_NETCARD_TIME { + pub ReadTime: u64, +} +impl ::core::marker::Copy for GEN_GET_NETCARD_TIME {} +impl ::core::clone::Clone for GEN_GET_NETCARD_TIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GEN_GET_TIME_CAPS { + pub Flags: u32, + pub ClockPrecision: u32, +} +impl ::core::marker::Copy for GEN_GET_TIME_CAPS {} +impl ::core::clone::Clone for GEN_GET_TIME_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IF_COUNTED_STRING_LH { + pub Length: u16, + pub String: [u16; 257], +} +impl ::core::marker::Copy for IF_COUNTED_STRING_LH {} +impl ::core::clone::Clone for IF_COUNTED_STRING_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IF_PHYSICAL_ADDRESS_LH { + pub Length: u16, + pub Address: [u8; 32], +} +impl ::core::marker::Copy for IF_PHYSICAL_ADDRESS_LH {} +impl ::core::clone::Clone for IF_PHYSICAL_ADDRESS_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_AI_REQFI { + pub Capabilities: u16, + pub ListenInterval: u16, + pub CurrentAPAddress: [u8; 6], +} +impl ::core::marker::Copy for NDIS_802_11_AI_REQFI {} +impl ::core::clone::Clone for NDIS_802_11_AI_REQFI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_AI_RESFI { + pub Capabilities: u16, + pub StatusCode: u16, + pub AssociationId: u16, +} +impl ::core::marker::Copy for NDIS_802_11_AI_RESFI {} +impl ::core::clone::Clone for NDIS_802_11_AI_RESFI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_ASSOCIATION_INFORMATION { + pub Length: u32, + pub AvailableRequestFixedIEs: u16, + pub RequestFixedIEs: NDIS_802_11_AI_REQFI, + pub RequestIELength: u32, + pub OffsetRequestIEs: u32, + pub AvailableResponseFixedIEs: u16, + pub ResponseFixedIEs: NDIS_802_11_AI_RESFI, + pub ResponseIELength: u32, + pub OffsetResponseIEs: u32, +} +impl ::core::marker::Copy for NDIS_802_11_ASSOCIATION_INFORMATION {} +impl ::core::clone::Clone for NDIS_802_11_ASSOCIATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_AUTHENTICATION_ENCRYPTION { + pub AuthModeSupported: NDIS_802_11_AUTHENTICATION_MODE, + pub EncryptStatusSupported: NDIS_802_11_WEP_STATUS, +} +impl ::core::marker::Copy for NDIS_802_11_AUTHENTICATION_ENCRYPTION {} +impl ::core::clone::Clone for NDIS_802_11_AUTHENTICATION_ENCRYPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_AUTHENTICATION_EVENT { + pub Status: NDIS_802_11_STATUS_INDICATION, + pub Request: [NDIS_802_11_AUTHENTICATION_REQUEST; 1], +} +impl ::core::marker::Copy for NDIS_802_11_AUTHENTICATION_EVENT {} +impl ::core::clone::Clone for NDIS_802_11_AUTHENTICATION_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_AUTHENTICATION_REQUEST { + pub Length: u32, + pub Bssid: [u8; 6], + pub Flags: u32, +} +impl ::core::marker::Copy for NDIS_802_11_AUTHENTICATION_REQUEST {} +impl ::core::clone::Clone for NDIS_802_11_AUTHENTICATION_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_BSSID_LIST { + pub NumberOfItems: u32, + pub Bssid: [NDIS_WLAN_BSSID; 1], +} +impl ::core::marker::Copy for NDIS_802_11_BSSID_LIST {} +impl ::core::clone::Clone for NDIS_802_11_BSSID_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_BSSID_LIST_EX { + pub NumberOfItems: u32, + pub Bssid: [NDIS_WLAN_BSSID_EX; 1], +} +impl ::core::marker::Copy for NDIS_802_11_BSSID_LIST_EX {} +impl ::core::clone::Clone for NDIS_802_11_BSSID_LIST_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_CAPABILITY { + pub Length: u32, + pub Version: u32, + pub NoOfPMKIDs: u32, + pub NoOfAuthEncryptPairsSupported: u32, + pub AuthenticationEncryptionSupported: [NDIS_802_11_AUTHENTICATION_ENCRYPTION; 1], +} +impl ::core::marker::Copy for NDIS_802_11_CAPABILITY {} +impl ::core::clone::Clone for NDIS_802_11_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_CONFIGURATION { + pub Length: u32, + pub BeaconPeriod: u32, + pub ATIMWindow: u32, + pub DSConfig: u32, + pub FHConfig: NDIS_802_11_CONFIGURATION_FH, +} +impl ::core::marker::Copy for NDIS_802_11_CONFIGURATION {} +impl ::core::clone::Clone for NDIS_802_11_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_CONFIGURATION_FH { + pub Length: u32, + pub HopPattern: u32, + pub HopSet: u32, + pub DwellTime: u32, +} +impl ::core::marker::Copy for NDIS_802_11_CONFIGURATION_FH {} +impl ::core::clone::Clone for NDIS_802_11_CONFIGURATION_FH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_FIXED_IEs { + pub Timestamp: [u8; 8], + pub BeaconInterval: u16, + pub Capabilities: u16, +} +impl ::core::marker::Copy for NDIS_802_11_FIXED_IEs {} +impl ::core::clone::Clone for NDIS_802_11_FIXED_IEs { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_KEY { + pub Length: u32, + pub KeyIndex: u32, + pub KeyLength: u32, + pub BSSID: [u8; 6], + pub KeyRSC: u64, + pub KeyMaterial: [u8; 1], +} +impl ::core::marker::Copy for NDIS_802_11_KEY {} +impl ::core::clone::Clone for NDIS_802_11_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_NETWORK_TYPE_LIST { + pub NumberOfItems: u32, + pub NetworkType: [NDIS_802_11_NETWORK_TYPE; 1], +} +impl ::core::marker::Copy for NDIS_802_11_NETWORK_TYPE_LIST {} +impl ::core::clone::Clone for NDIS_802_11_NETWORK_TYPE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_NON_BCAST_SSID_LIST { + pub NumberOfItems: u32, + pub Non_Bcast_Ssid: [NDIS_802_11_SSID; 1], +} +impl ::core::marker::Copy for NDIS_802_11_NON_BCAST_SSID_LIST {} +impl ::core::clone::Clone for NDIS_802_11_NON_BCAST_SSID_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_PMKID { + pub Length: u32, + pub BSSIDInfoCount: u32, + pub BSSIDInfo: [BSSID_INFO; 1], +} +impl ::core::marker::Copy for NDIS_802_11_PMKID {} +impl ::core::clone::Clone for NDIS_802_11_PMKID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_PMKID_CANDIDATE_LIST { + pub Version: u32, + pub NumCandidates: u32, + pub CandidateList: [PMKID_CANDIDATE; 1], +} +impl ::core::marker::Copy for NDIS_802_11_PMKID_CANDIDATE_LIST {} +impl ::core::clone::Clone for NDIS_802_11_PMKID_CANDIDATE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_REMOVE_KEY { + pub Length: u32, + pub KeyIndex: u32, + pub BSSID: [u8; 6], +} +impl ::core::marker::Copy for NDIS_802_11_REMOVE_KEY {} +impl ::core::clone::Clone for NDIS_802_11_REMOVE_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_SSID { + pub SsidLength: u32, + pub Ssid: [u8; 32], +} +impl ::core::marker::Copy for NDIS_802_11_SSID {} +impl ::core::clone::Clone for NDIS_802_11_SSID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_STATISTICS { + pub Length: u32, + pub TransmittedFragmentCount: i64, + pub MulticastTransmittedFrameCount: i64, + pub FailedCount: i64, + pub RetryCount: i64, + pub MultipleRetryCount: i64, + pub RTSSuccessCount: i64, + pub RTSFailureCount: i64, + pub ACKFailureCount: i64, + pub FrameDuplicateCount: i64, + pub ReceivedFragmentCount: i64, + pub MulticastReceivedFrameCount: i64, + pub FCSErrorCount: i64, + pub TKIPLocalMICFailures: i64, + pub TKIPICVErrorCount: i64, + pub TKIPCounterMeasuresInvoked: i64, + pub TKIPReplays: i64, + pub CCMPFormatErrors: i64, + pub CCMPReplays: i64, + pub CCMPDecryptErrors: i64, + pub FourWayHandshakeFailures: i64, + pub WEPUndecryptableCount: i64, + pub WEPICVErrorCount: i64, + pub DecryptSuccessCount: i64, + pub DecryptFailureCount: i64, +} +impl ::core::marker::Copy for NDIS_802_11_STATISTICS {} +impl ::core::clone::Clone for NDIS_802_11_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_STATUS_INDICATION { + pub StatusType: NDIS_802_11_STATUS_TYPE, +} +impl ::core::marker::Copy for NDIS_802_11_STATUS_INDICATION {} +impl ::core::clone::Clone for NDIS_802_11_STATUS_INDICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_TEST { + pub Length: u32, + pub Type: u32, + pub Anonymous: NDIS_802_11_TEST_0, +} +impl ::core::marker::Copy for NDIS_802_11_TEST {} +impl ::core::clone::Clone for NDIS_802_11_TEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NDIS_802_11_TEST_0 { + pub AuthenticationEvent: NDIS_802_11_AUTHENTICATION_EVENT, + pub RssiTrigger: i32, +} +impl ::core::marker::Copy for NDIS_802_11_TEST_0 {} +impl ::core::clone::Clone for NDIS_802_11_TEST_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_VARIABLE_IEs { + pub ElementID: u8, + pub Length: u8, + pub data: [u8; 1], +} +impl ::core::marker::Copy for NDIS_802_11_VARIABLE_IEs {} +impl ::core::clone::Clone for NDIS_802_11_VARIABLE_IEs { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_802_11_WEP { + pub Length: u32, + pub KeyIndex: u32, + pub KeyLength: u32, + pub KeyMaterial: [u8; 1], +} +impl ::core::marker::Copy for NDIS_802_11_WEP {} +impl ::core::clone::Clone for NDIS_802_11_WEP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_CO_DEVICE_PROFILE { + pub DeviceDescription: NDIS_VAR_DATA_DESC, + pub DevSpecificInfo: NDIS_VAR_DATA_DESC, + pub ulTAPISupplementaryPassThru: u32, + pub ulAddressModes: u32, + pub ulNumAddresses: u32, + pub ulBearerModes: u32, + pub ulMaxTxRate: u32, + pub ulMinTxRate: u32, + pub ulMaxRxRate: u32, + pub ulMinRxRate: u32, + pub ulMediaModes: u32, + pub ulGenerateToneModes: u32, + pub ulGenerateToneMaxNumFreq: u32, + pub ulGenerateDigitModes: u32, + pub ulMonitorToneMaxNumFreq: u32, + pub ulMonitorToneMaxNumEntries: u32, + pub ulMonitorDigitModes: u32, + pub ulGatherDigitsMinTimeout: u32, + pub ulGatherDigitsMaxTimeout: u32, + pub ulDevCapFlags: u32, + pub ulMaxNumActiveCalls: u32, + pub ulAnswerMode: u32, + pub ulUUIAcceptSize: u32, + pub ulUUIAnswerSize: u32, + pub ulUUIMakeCallSize: u32, + pub ulUUIDropSize: u32, + pub ulUUISendUserUserInfoSize: u32, + pub ulUUICallInfoSize: u32, +} +impl ::core::marker::Copy for NDIS_CO_DEVICE_PROFILE {} +impl ::core::clone::Clone for NDIS_CO_DEVICE_PROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_CO_LINK_SPEED { + pub Outbound: u32, + pub Inbound: u32, +} +impl ::core::marker::Copy for NDIS_CO_LINK_SPEED {} +impl ::core::clone::Clone for NDIS_CO_LINK_SPEED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_GUID { + pub Guid: ::windows_sys::core::GUID, + pub Anonymous: NDIS_GUID_0, + pub Size: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for NDIS_GUID {} +impl ::core::clone::Clone for NDIS_GUID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NDIS_GUID_0 { + pub Oid: u32, + pub Status: i32, +} +impl ::core::marker::Copy for NDIS_GUID_0 {} +impl ::core::clone::Clone for NDIS_GUID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_HARDWARE_CROSSTIMESTAMP { + pub Header: NDIS_OBJECT_HEADER, + pub Flags: u32, + pub SystemTimestamp1: u64, + pub HardwareClockTimestamp: u64, + pub SystemTimestamp2: u64, +} +impl ::core::marker::Copy for NDIS_HARDWARE_CROSSTIMESTAMP {} +impl ::core::clone::Clone for NDIS_HARDWARE_CROSSTIMESTAMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NDIS_INTERFACE_INFORMATION { + pub ifOperStatus: NET_IF_OPER_STATUS, + pub ifOperStatusFlags: u32, + pub MediaConnectState: NET_IF_MEDIA_CONNECT_STATE, + pub MediaDuplexState: NET_IF_MEDIA_DUPLEX_STATE, + pub ifMtu: u32, + pub ifPromiscuousMode: super::super::Foundation::BOOLEAN, + pub ifDeviceWakeUpEnable: super::super::Foundation::BOOLEAN, + pub XmitLinkSpeed: u64, + pub RcvLinkSpeed: u64, + pub ifLastChange: u64, + pub ifCounterDiscontinuityTime: u64, + pub ifInUnknownProtos: u64, + pub ifInDiscards: u64, + pub ifInErrors: u64, + pub ifHCInOctets: u64, + pub ifHCInUcastPkts: u64, + pub ifHCInMulticastPkts: u64, + pub ifHCInBroadcastPkts: u64, + pub ifHCOutOctets: u64, + pub ifHCOutUcastPkts: u64, + pub ifHCOutMulticastPkts: u64, + pub ifHCOutBroadcastPkts: u64, + pub ifOutErrors: u64, + pub ifOutDiscards: u64, + pub ifHCInUcastOctets: u64, + pub ifHCInMulticastOctets: u64, + pub ifHCInBroadcastOctets: u64, + pub ifHCOutUcastOctets: u64, + pub ifHCOutMulticastOctets: u64, + pub ifHCOutBroadcastOctets: u64, + pub CompartmentId: u32, + pub SupportedStatistics: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NDIS_INTERFACE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NDIS_INTERFACE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_INTERRUPT_MODERATION_PARAMETERS { + pub Header: NDIS_OBJECT_HEADER, + pub Flags: u32, + pub InterruptModeration: NDIS_INTERRUPT_MODERATION, +} +impl ::core::marker::Copy for NDIS_INTERRUPT_MODERATION_PARAMETERS {} +impl ::core::clone::Clone for NDIS_INTERRUPT_MODERATION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_IPSEC_OFFLOAD_V1 { + pub Supported: NDIS_IPSEC_OFFLOAD_V1_2, + pub IPv4AH: NDIS_IPSEC_OFFLOAD_V1_0, + pub IPv4ESP: NDIS_IPSEC_OFFLOAD_V1_1, +} +impl ::core::marker::Copy for NDIS_IPSEC_OFFLOAD_V1 {} +impl ::core::clone::Clone for NDIS_IPSEC_OFFLOAD_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_IPSEC_OFFLOAD_V1_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NDIS_IPSEC_OFFLOAD_V1_0 {} +impl ::core::clone::Clone for NDIS_IPSEC_OFFLOAD_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_IPSEC_OFFLOAD_V1_1 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NDIS_IPSEC_OFFLOAD_V1_1 {} +impl ::core::clone::Clone for NDIS_IPSEC_OFFLOAD_V1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_IPSEC_OFFLOAD_V1_2 { + pub Encapsulation: u32, + pub AhEspCombined: u32, + pub TransportTunnelCombined: u32, + pub IPv4Options: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for NDIS_IPSEC_OFFLOAD_V1_2 {} +impl ::core::clone::Clone for NDIS_IPSEC_OFFLOAD_V1_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_IP_OPER_STATE { + pub Header: NDIS_OBJECT_HEADER, + pub Flags: u32, + pub IpOperationalStatus: NDIS_IP_OPER_STATUS, +} +impl ::core::marker::Copy for NDIS_IP_OPER_STATE {} +impl ::core::clone::Clone for NDIS_IP_OPER_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_IP_OPER_STATUS { + pub AddressFamily: u32, + pub OperationalStatus: NET_IF_OPER_STATUS, + pub OperationalStatusFlags: u32, +} +impl ::core::marker::Copy for NDIS_IP_OPER_STATUS {} +impl ::core::clone::Clone for NDIS_IP_OPER_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_IP_OPER_STATUS_INFO { + pub Header: NDIS_OBJECT_HEADER, + pub Flags: u32, + pub NumberofAddressFamiliesReturned: u32, + pub IpOperationalStatus: [NDIS_IP_OPER_STATUS; 32], +} +impl ::core::marker::Copy for NDIS_IP_OPER_STATUS_INFO {} +impl ::core::clone::Clone for NDIS_IP_OPER_STATUS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_IRDA_PACKET_INFO { + pub ExtraBOFs: u32, + pub MinTurnAroundTime: u32, +} +impl ::core::marker::Copy for NDIS_IRDA_PACKET_INFO {} +impl ::core::clone::Clone for NDIS_IRDA_PACKET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_LINK_PARAMETERS { + pub Header: NDIS_OBJECT_HEADER, + pub MediaDuplexState: NET_IF_MEDIA_DUPLEX_STATE, + pub XmitLinkSpeed: u64, + pub RcvLinkSpeed: u64, + pub PauseFunctions: NDIS_SUPPORTED_PAUSE_FUNCTIONS, + pub AutoNegotiationFlags: u32, +} +impl ::core::marker::Copy for NDIS_LINK_PARAMETERS {} +impl ::core::clone::Clone for NDIS_LINK_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_LINK_SPEED { + pub XmitLinkSpeed: u64, + pub RcvLinkSpeed: u64, +} +impl ::core::marker::Copy for NDIS_LINK_SPEED {} +impl ::core::clone::Clone for NDIS_LINK_SPEED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_LINK_STATE { + pub Header: NDIS_OBJECT_HEADER, + pub MediaConnectState: NET_IF_MEDIA_CONNECT_STATE, + pub MediaDuplexState: NET_IF_MEDIA_DUPLEX_STATE, + pub XmitLinkSpeed: u64, + pub RcvLinkSpeed: u64, + pub PauseFunctions: NDIS_SUPPORTED_PAUSE_FUNCTIONS, + pub AutoNegotiationFlags: u32, +} +impl ::core::marker::Copy for NDIS_LINK_STATE {} +impl ::core::clone::Clone for NDIS_LINK_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_OBJECT_HEADER { + pub Type: u8, + pub Revision: u8, + pub Size: u16, +} +impl ::core::marker::Copy for NDIS_OBJECT_HEADER {} +impl ::core::clone::Clone for NDIS_OBJECT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_OFFLOAD { + pub Header: NDIS_OBJECT_HEADER, + pub Checksum: NDIS_TCP_IP_CHECKSUM_OFFLOAD, + pub LsoV1: NDIS_TCP_LARGE_SEND_OFFLOAD_V1, + pub IPsecV1: NDIS_IPSEC_OFFLOAD_V1, + pub LsoV2: NDIS_TCP_LARGE_SEND_OFFLOAD_V2, + pub Flags: u32, +} +impl ::core::marker::Copy for NDIS_OFFLOAD {} +impl ::core::clone::Clone for NDIS_OFFLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_OFFLOAD_PARAMETERS { + pub Header: NDIS_OBJECT_HEADER, + pub IPv4Checksum: u8, + pub TCPIPv4Checksum: u8, + pub UDPIPv4Checksum: u8, + pub TCPIPv6Checksum: u8, + pub UDPIPv6Checksum: u8, + pub LsoV1: u8, + pub IPsecV1: u8, + pub LsoV2IPv4: u8, + pub LsoV2IPv6: u8, + pub TcpConnectionIPv4: u8, + pub TcpConnectionIPv6: u8, + pub Flags: u32, +} +impl ::core::marker::Copy for NDIS_OFFLOAD_PARAMETERS {} +impl ::core::clone::Clone for NDIS_OFFLOAD_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_OPER_STATE { + pub Header: NDIS_OBJECT_HEADER, + pub OperationalStatus: NET_IF_OPER_STATUS, + pub OperationalStatusFlags: u32, +} +impl ::core::marker::Copy for NDIS_OPER_STATE {} +impl ::core::clone::Clone for NDIS_OPER_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_PCI_DEVICE_CUSTOM_PROPERTIES { + pub Header: NDIS_OBJECT_HEADER, + pub DeviceType: u32, + pub CurrentSpeedAndMode: u32, + pub CurrentPayloadSize: u32, + pub MaxPayloadSize: u32, + pub MaxReadRequestSize: u32, + pub CurrentLinkSpeed: u32, + pub CurrentLinkWidth: u32, + pub MaxLinkSpeed: u32, + pub MaxLinkWidth: u32, + pub PciExpressVersion: u32, + pub InterruptType: u32, + pub MaxInterruptMessages: u32, +} +impl ::core::marker::Copy for NDIS_PCI_DEVICE_CUSTOM_PROPERTIES {} +impl ::core::clone::Clone for NDIS_PCI_DEVICE_CUSTOM_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_PM_PACKET_PATTERN { + pub Priority: u32, + pub Reserved: u32, + pub MaskSize: u32, + pub PatternOffset: u32, + pub PatternSize: u32, + pub PatternFlags: u32, +} +impl ::core::marker::Copy for NDIS_PM_PACKET_PATTERN {} +impl ::core::clone::Clone for NDIS_PM_PACKET_PATTERN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_PM_WAKE_UP_CAPABILITIES { + pub MinMagicPacketWakeUp: NDIS_DEVICE_POWER_STATE, + pub MinPatternWakeUp: NDIS_DEVICE_POWER_STATE, + pub MinLinkChangeWakeUp: NDIS_DEVICE_POWER_STATE, +} +impl ::core::marker::Copy for NDIS_PM_WAKE_UP_CAPABILITIES {} +impl ::core::clone::Clone for NDIS_PM_WAKE_UP_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_PNP_CAPABILITIES { + pub Flags: u32, + pub WakeUpCapabilities: NDIS_PM_WAKE_UP_CAPABILITIES, +} +impl ::core::marker::Copy for NDIS_PNP_CAPABILITIES {} +impl ::core::clone::Clone for NDIS_PNP_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_PORT { + pub Next: *mut NDIS_PORT, + pub NdisReserved: *mut ::core::ffi::c_void, + pub MiniportReserved: *mut ::core::ffi::c_void, + pub ProtocolReserved: *mut ::core::ffi::c_void, + pub PortCharacteristics: NDIS_PORT_CHARACTERISTICS, +} +impl ::core::marker::Copy for NDIS_PORT {} +impl ::core::clone::Clone for NDIS_PORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_PORT_ARRAY { + pub Header: NDIS_OBJECT_HEADER, + pub NumberOfPorts: u32, + pub OffsetFirstPort: u32, + pub ElementSize: u32, + pub Ports: [NDIS_PORT_CHARACTERISTICS; 1], +} +impl ::core::marker::Copy for NDIS_PORT_ARRAY {} +impl ::core::clone::Clone for NDIS_PORT_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_PORT_AUTHENTICATION_PARAMETERS { + pub Header: NDIS_OBJECT_HEADER, + pub SendControlState: NDIS_PORT_CONTROL_STATE, + pub RcvControlState: NDIS_PORT_CONTROL_STATE, + pub SendAuthorizationState: NDIS_PORT_AUTHORIZATION_STATE, + pub RcvAuthorizationState: NDIS_PORT_AUTHORIZATION_STATE, +} +impl ::core::marker::Copy for NDIS_PORT_AUTHENTICATION_PARAMETERS {} +impl ::core::clone::Clone for NDIS_PORT_AUTHENTICATION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_PORT_CHARACTERISTICS { + pub Header: NDIS_OBJECT_HEADER, + pub PortNumber: u32, + pub Flags: u32, + pub Type: NDIS_PORT_TYPE, + pub MediaConnectState: NET_IF_MEDIA_CONNECT_STATE, + pub XmitLinkSpeed: u64, + pub RcvLinkSpeed: u64, + pub Direction: NET_IF_DIRECTION_TYPE, + pub SendControlState: NDIS_PORT_CONTROL_STATE, + pub RcvControlState: NDIS_PORT_CONTROL_STATE, + pub SendAuthorizationState: NDIS_PORT_AUTHORIZATION_STATE, + pub RcvAuthorizationState: NDIS_PORT_AUTHORIZATION_STATE, +} +impl ::core::marker::Copy for NDIS_PORT_CHARACTERISTICS {} +impl ::core::clone::Clone for NDIS_PORT_CHARACTERISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_PORT_STATE { + pub Header: NDIS_OBJECT_HEADER, + pub MediaConnectState: NET_IF_MEDIA_CONNECT_STATE, + pub XmitLinkSpeed: u64, + pub RcvLinkSpeed: u64, + pub Direction: NET_IF_DIRECTION_TYPE, + pub SendControlState: NDIS_PORT_CONTROL_STATE, + pub RcvControlState: NDIS_PORT_CONTROL_STATE, + pub SendAuthorizationState: NDIS_PORT_AUTHORIZATION_STATE, + pub RcvAuthorizationState: NDIS_PORT_AUTHORIZATION_STATE, + pub Flags: u32, +} +impl ::core::marker::Copy for NDIS_PORT_STATE {} +impl ::core::clone::Clone for NDIS_PORT_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_RECEIVE_HASH_PARAMETERS { + pub Header: NDIS_OBJECT_HEADER, + pub Flags: u32, + pub HashInformation: u32, + pub HashSecretKeySize: u16, + pub HashSecretKeyOffset: u32, +} +impl ::core::marker::Copy for NDIS_RECEIVE_HASH_PARAMETERS {} +impl ::core::clone::Clone for NDIS_RECEIVE_HASH_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_RECEIVE_SCALE_CAPABILITIES { + pub Header: NDIS_OBJECT_HEADER, + pub CapabilitiesFlags: u32, + pub NumberOfInterruptMessages: u32, + pub NumberOfReceiveQueues: u32, +} +impl ::core::marker::Copy for NDIS_RECEIVE_SCALE_CAPABILITIES {} +impl ::core::clone::Clone for NDIS_RECEIVE_SCALE_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_RECEIVE_SCALE_PARAMETERS { + pub Header: NDIS_OBJECT_HEADER, + pub Flags: u16, + pub BaseCpuNumber: u16, + pub HashInformation: u32, + pub IndirectionTableSize: u16, + pub IndirectionTableOffset: u32, + pub HashSecretKeySize: u16, + pub HashSecretKeyOffset: u32, +} +impl ::core::marker::Copy for NDIS_RECEIVE_SCALE_PARAMETERS {} +impl ::core::clone::Clone for NDIS_RECEIVE_SCALE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_STATISTICS_INFO { + pub Header: NDIS_OBJECT_HEADER, + pub SupportedStatistics: u32, + pub ifInDiscards: u64, + pub ifInErrors: u64, + pub ifHCInOctets: u64, + pub ifHCInUcastPkts: u64, + pub ifHCInMulticastPkts: u64, + pub ifHCInBroadcastPkts: u64, + pub ifHCOutOctets: u64, + pub ifHCOutUcastPkts: u64, + pub ifHCOutMulticastPkts: u64, + pub ifHCOutBroadcastPkts: u64, + pub ifOutErrors: u64, + pub ifOutDiscards: u64, + pub ifHCInUcastOctets: u64, + pub ifHCInMulticastOctets: u64, + pub ifHCInBroadcastOctets: u64, + pub ifHCOutUcastOctets: u64, + pub ifHCOutMulticastOctets: u64, + pub ifHCOutBroadcastOctets: u64, +} +impl ::core::marker::Copy for NDIS_STATISTICS_INFO {} +impl ::core::clone::Clone for NDIS_STATISTICS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_STATISTICS_VALUE { + pub Oid: u32, + pub DataLength: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for NDIS_STATISTICS_VALUE {} +impl ::core::clone::Clone for NDIS_STATISTICS_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_STATISTICS_VALUE_EX { + pub Oid: u32, + pub DataLength: u32, + pub Length: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for NDIS_STATISTICS_VALUE_EX {} +impl ::core::clone::Clone for NDIS_STATISTICS_VALUE_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_TCP_CONNECTION_OFFLOAD { + pub Header: NDIS_OBJECT_HEADER, + pub Encapsulation: u32, + pub _bitfield: u32, + pub TcpConnectionOffloadCapacity: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for NDIS_TCP_CONNECTION_OFFLOAD {} +impl ::core::clone::Clone for NDIS_TCP_CONNECTION_OFFLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_TCP_IP_CHECKSUM_OFFLOAD { + pub IPv4Transmit: NDIS_TCP_IP_CHECKSUM_OFFLOAD_1, + pub IPv4Receive: NDIS_TCP_IP_CHECKSUM_OFFLOAD_0, + pub IPv6Transmit: NDIS_TCP_IP_CHECKSUM_OFFLOAD_3, + pub IPv6Receive: NDIS_TCP_IP_CHECKSUM_OFFLOAD_2, +} +impl ::core::marker::Copy for NDIS_TCP_IP_CHECKSUM_OFFLOAD {} +impl ::core::clone::Clone for NDIS_TCP_IP_CHECKSUM_OFFLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_TCP_IP_CHECKSUM_OFFLOAD_0 { + pub Encapsulation: u32, + pub _bitfield: u32, +} +impl ::core::marker::Copy for NDIS_TCP_IP_CHECKSUM_OFFLOAD_0 {} +impl ::core::clone::Clone for NDIS_TCP_IP_CHECKSUM_OFFLOAD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_TCP_IP_CHECKSUM_OFFLOAD_1 { + pub Encapsulation: u32, + pub _bitfield: u32, +} +impl ::core::marker::Copy for NDIS_TCP_IP_CHECKSUM_OFFLOAD_1 {} +impl ::core::clone::Clone for NDIS_TCP_IP_CHECKSUM_OFFLOAD_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_TCP_IP_CHECKSUM_OFFLOAD_2 { + pub Encapsulation: u32, + pub _bitfield: u32, +} +impl ::core::marker::Copy for NDIS_TCP_IP_CHECKSUM_OFFLOAD_2 {} +impl ::core::clone::Clone for NDIS_TCP_IP_CHECKSUM_OFFLOAD_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_TCP_IP_CHECKSUM_OFFLOAD_3 { + pub Encapsulation: u32, + pub _bitfield: u32, +} +impl ::core::marker::Copy for NDIS_TCP_IP_CHECKSUM_OFFLOAD_3 {} +impl ::core::clone::Clone for NDIS_TCP_IP_CHECKSUM_OFFLOAD_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_TCP_LARGE_SEND_OFFLOAD_V1 { + pub IPv4: NDIS_TCP_LARGE_SEND_OFFLOAD_V1_0, +} +impl ::core::marker::Copy for NDIS_TCP_LARGE_SEND_OFFLOAD_V1 {} +impl ::core::clone::Clone for NDIS_TCP_LARGE_SEND_OFFLOAD_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_TCP_LARGE_SEND_OFFLOAD_V1_0 { + pub Encapsulation: u32, + pub MaxOffLoadSize: u32, + pub MinSegmentCount: u32, + pub _bitfield: u32, +} +impl ::core::marker::Copy for NDIS_TCP_LARGE_SEND_OFFLOAD_V1_0 {} +impl ::core::clone::Clone for NDIS_TCP_LARGE_SEND_OFFLOAD_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_TCP_LARGE_SEND_OFFLOAD_V2 { + pub IPv4: NDIS_TCP_LARGE_SEND_OFFLOAD_V2_0, + pub IPv6: NDIS_TCP_LARGE_SEND_OFFLOAD_V2_1, +} +impl ::core::marker::Copy for NDIS_TCP_LARGE_SEND_OFFLOAD_V2 {} +impl ::core::clone::Clone for NDIS_TCP_LARGE_SEND_OFFLOAD_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_TCP_LARGE_SEND_OFFLOAD_V2_0 { + pub Encapsulation: u32, + pub MaxOffLoadSize: u32, + pub MinSegmentCount: u32, +} +impl ::core::marker::Copy for NDIS_TCP_LARGE_SEND_OFFLOAD_V2_0 {} +impl ::core::clone::Clone for NDIS_TCP_LARGE_SEND_OFFLOAD_V2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_TCP_LARGE_SEND_OFFLOAD_V2_1 { + pub Encapsulation: u32, + pub MaxOffLoadSize: u32, + pub MinSegmentCount: u32, + pub _bitfield: u32, +} +impl ::core::marker::Copy for NDIS_TCP_LARGE_SEND_OFFLOAD_V2_1 {} +impl ::core::clone::Clone for NDIS_TCP_LARGE_SEND_OFFLOAD_V2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES { + pub Header: NDIS_OBJECT_HEADER, + pub Flags: u32, + pub TimeoutArrayLength: u32, + pub TimeoutArray: [u32; 1], +} +impl ::core::marker::Copy for NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES {} +impl ::core::clone::Clone for NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NDIS_TIMESTAMP_CAPABILITIES { + pub Header: NDIS_OBJECT_HEADER, + pub HardwareClockFrequencyHz: u64, + pub CrossTimestamp: super::super::Foundation::BOOLEAN, + pub Reserved1: u64, + pub Reserved2: u64, + pub TimestampFlags: NDIS_TIMESTAMP_CAPABILITY_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NDIS_TIMESTAMP_CAPABILITIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NDIS_TIMESTAMP_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NDIS_TIMESTAMP_CAPABILITY_FLAGS { + pub PtpV2OverUdpIPv4EventMsgReceiveHw: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv4AllMsgReceiveHw: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv4EventMsgTransmitHw: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv4AllMsgTransmitHw: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv6EventMsgReceiveHw: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv6AllMsgReceiveHw: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv6EventMsgTransmitHw: super::super::Foundation::BOOLEAN, + pub PtpV2OverUdpIPv6AllMsgTransmitHw: super::super::Foundation::BOOLEAN, + pub AllReceiveHw: super::super::Foundation::BOOLEAN, + pub AllTransmitHw: super::super::Foundation::BOOLEAN, + pub TaggedTransmitHw: super::super::Foundation::BOOLEAN, + pub AllReceiveSw: super::super::Foundation::BOOLEAN, + pub AllTransmitSw: super::super::Foundation::BOOLEAN, + pub TaggedTransmitSw: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NDIS_TIMESTAMP_CAPABILITY_FLAGS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NDIS_TIMESTAMP_CAPABILITY_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_VAR_DATA_DESC { + pub Length: u16, + pub MaximumLength: u16, + pub Offset: usize, +} +impl ::core::marker::Copy for NDIS_VAR_DATA_DESC {} +impl ::core::clone::Clone for NDIS_VAR_DATA_DESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WAN_PROTOCOL_CAPS { + pub Flags: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for NDIS_WAN_PROTOCOL_CAPS {} +impl ::core::clone::Clone for NDIS_WAN_PROTOCOL_CAPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WLAN_BSSID { + pub Length: u32, + pub MacAddress: [u8; 6], + pub Reserved: [u8; 2], + pub Ssid: NDIS_802_11_SSID, + pub Privacy: u32, + pub Rssi: i32, + pub NetworkTypeInUse: NDIS_802_11_NETWORK_TYPE, + pub Configuration: NDIS_802_11_CONFIGURATION, + pub InfrastructureMode: NDIS_802_11_NETWORK_INFRASTRUCTURE, + pub SupportedRates: [u8; 8], +} +impl ::core::marker::Copy for NDIS_WLAN_BSSID {} +impl ::core::clone::Clone for NDIS_WLAN_BSSID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WLAN_BSSID_EX { + pub Length: u32, + pub MacAddress: [u8; 6], + pub Reserved: [u8; 2], + pub Ssid: NDIS_802_11_SSID, + pub Privacy: u32, + pub Rssi: i32, + pub NetworkTypeInUse: NDIS_802_11_NETWORK_TYPE, + pub Configuration: NDIS_802_11_CONFIGURATION, + pub InfrastructureMode: NDIS_802_11_NETWORK_INFRASTRUCTURE, + pub SupportedRates: [u8; 16], + pub IELength: u32, + pub IEs: [u8; 1], +} +impl ::core::marker::Copy for NDIS_WLAN_BSSID_EX {} +impl ::core::clone::Clone for NDIS_WLAN_BSSID_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_ENUM_ADAPTER { + pub Header: NDIS_OBJECT_HEADER, + pub IfIndex: u32, + pub NetLuid: NET_LUID_LH, + pub DeviceNameLength: u16, + pub DeviceName: [u8; 1], +} +impl ::core::marker::Copy for NDIS_WMI_ENUM_ADAPTER {} +impl ::core::clone::Clone for NDIS_WMI_ENUM_ADAPTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_EVENT_HEADER { + pub Header: NDIS_OBJECT_HEADER, + pub IfIndex: u32, + pub NetLuid: NET_LUID_LH, + pub RequestId: u64, + pub PortNumber: u32, + pub DeviceNameLength: u32, + pub DeviceNameOffset: u32, + pub Padding: [u8; 4], +} +impl ::core::marker::Copy for NDIS_WMI_EVENT_HEADER {} +impl ::core::clone::Clone for NDIS_WMI_EVENT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_IPSEC_OFFLOAD_V1 { + pub Supported: NDIS_WMI_IPSEC_OFFLOAD_V1_2, + pub IPv4AH: NDIS_WMI_IPSEC_OFFLOAD_V1_0, + pub IPv4ESP: NDIS_WMI_IPSEC_OFFLOAD_V1_1, +} +impl ::core::marker::Copy for NDIS_WMI_IPSEC_OFFLOAD_V1 {} +impl ::core::clone::Clone for NDIS_WMI_IPSEC_OFFLOAD_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_IPSEC_OFFLOAD_V1_0 { + pub Md5: u32, + pub Sha_1: u32, + pub Transport: u32, + pub Tunnel: u32, + pub Send: u32, + pub Receive: u32, +} +impl ::core::marker::Copy for NDIS_WMI_IPSEC_OFFLOAD_V1_0 {} +impl ::core::clone::Clone for NDIS_WMI_IPSEC_OFFLOAD_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_IPSEC_OFFLOAD_V1_1 { + pub Des: u32, + pub Reserved: u32, + pub TripleDes: u32, + pub NullEsp: u32, + pub Transport: u32, + pub Tunnel: u32, + pub Send: u32, + pub Receive: u32, +} +impl ::core::marker::Copy for NDIS_WMI_IPSEC_OFFLOAD_V1_1 {} +impl ::core::clone::Clone for NDIS_WMI_IPSEC_OFFLOAD_V1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_IPSEC_OFFLOAD_V1_2 { + pub Encapsulation: u32, + pub AhEspCombined: u32, + pub TransportTunnelCombined: u32, + pub IPv4Options: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for NDIS_WMI_IPSEC_OFFLOAD_V1_2 {} +impl ::core::clone::Clone for NDIS_WMI_IPSEC_OFFLOAD_V1_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_METHOD_HEADER { + pub Header: NDIS_OBJECT_HEADER, + pub PortNumber: u32, + pub NetLuid: NET_LUID_LH, + pub RequestId: u64, + pub Timeout: u32, + pub Padding: [u8; 4], +} +impl ::core::marker::Copy for NDIS_WMI_METHOD_HEADER {} +impl ::core::clone::Clone for NDIS_WMI_METHOD_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_OFFLOAD { + pub Header: NDIS_OBJECT_HEADER, + pub Checksum: NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD, + pub LsoV1: NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1, + pub IPsecV1: NDIS_WMI_IPSEC_OFFLOAD_V1, + pub LsoV2: NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2, + pub Flags: u32, +} +impl ::core::marker::Copy for NDIS_WMI_OFFLOAD {} +impl ::core::clone::Clone for NDIS_WMI_OFFLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_OUTPUT_INFO { + pub Header: NDIS_OBJECT_HEADER, + pub Flags: u32, + pub SupportedRevision: u8, + pub DataOffset: u32, +} +impl ::core::marker::Copy for NDIS_WMI_OUTPUT_INFO {} +impl ::core::clone::Clone for NDIS_WMI_OUTPUT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_SET_HEADER { + pub Header: NDIS_OBJECT_HEADER, + pub PortNumber: u32, + pub NetLuid: NET_LUID_LH, + pub RequestId: u64, + pub Timeout: u32, + pub Padding: [u8; 4], +} +impl ::core::marker::Copy for NDIS_WMI_SET_HEADER {} +impl ::core::clone::Clone for NDIS_WMI_SET_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_TCP_CONNECTION_OFFLOAD { + pub Header: NDIS_OBJECT_HEADER, + pub Encapsulation: u32, + pub SupportIPv4: u32, + pub SupportIPv6: u32, + pub SupportIPv6ExtensionHeaders: u32, + pub SupportSack: u32, + pub TcpConnectionOffloadCapacity: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for NDIS_WMI_TCP_CONNECTION_OFFLOAD {} +impl ::core::clone::Clone for NDIS_WMI_TCP_CONNECTION_OFFLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD { + pub IPv4Transmit: NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_1, + pub IPv4Receive: NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_0, + pub IPv6Transmit: NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_3, + pub IPv6Receive: NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_2, +} +impl ::core::marker::Copy for NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD {} +impl ::core::clone::Clone for NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_0 { + pub Encapsulation: u32, + pub IpOptionsSupported: u32, + pub TcpOptionsSupported: u32, + pub TcpChecksum: u32, + pub UdpChecksum: u32, + pub IpChecksum: u32, +} +impl ::core::marker::Copy for NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_0 {} +impl ::core::clone::Clone for NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_1 { + pub Encapsulation: u32, + pub IpOptionsSupported: u32, + pub TcpOptionsSupported: u32, + pub TcpChecksum: u32, + pub UdpChecksum: u32, + pub IpChecksum: u32, +} +impl ::core::marker::Copy for NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_1 {} +impl ::core::clone::Clone for NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_2 { + pub Encapsulation: u32, + pub IpExtensionHeadersSupported: u32, + pub TcpOptionsSupported: u32, + pub TcpChecksum: u32, + pub UdpChecksum: u32, +} +impl ::core::marker::Copy for NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_2 {} +impl ::core::clone::Clone for NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_3 { + pub Encapsulation: u32, + pub IpExtensionHeadersSupported: u32, + pub TcpOptionsSupported: u32, + pub TcpChecksum: u32, + pub UdpChecksum: u32, +} +impl ::core::marker::Copy for NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_3 {} +impl ::core::clone::Clone for NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1 { + pub IPv4: NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1_0, +} +impl ::core::marker::Copy for NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1 {} +impl ::core::clone::Clone for NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1_0 { + pub Encapsulation: u32, + pub MaxOffLoadSize: u32, + pub MinSegmentCount: u32, + pub TcpOptions: u32, + pub IpOptions: u32, +} +impl ::core::marker::Copy for NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1_0 {} +impl ::core::clone::Clone for NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2 { + pub IPv4: NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2_0, + pub IPv6: NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2_1, +} +impl ::core::marker::Copy for NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2 {} +impl ::core::clone::Clone for NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2_0 { + pub Encapsulation: u32, + pub MaxOffLoadSize: u32, + pub MinSegmentCount: u32, +} +impl ::core::marker::Copy for NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2_0 {} +impl ::core::clone::Clone for NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2_1 { + pub Encapsulation: u32, + pub MaxOffLoadSize: u32, + pub MinSegmentCount: u32, + pub IpExtensionHeadersSupported: u32, + pub TcpOptionsSupported: u32, +} +impl ::core::marker::Copy for NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2_1 {} +impl ::core::clone::Clone for NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDK_ADAPTER_INFO { + pub Version: NDK_VERSION, + pub VendorId: u32, + pub DeviceId: u32, + pub MaxRegistrationSize: usize, + pub MaxWindowSize: usize, + pub FRMRPageCount: u32, + pub MaxInitiatorRequestSge: u32, + pub MaxReceiveRequestSge: u32, + pub MaxReadRequestSge: u32, + pub MaxTransferLength: u32, + pub MaxInlineDataSize: u32, + pub MaxInboundReadLimit: u32, + pub MaxOutboundReadLimit: u32, + pub MaxReceiveQueueDepth: u32, + pub MaxInitiatorQueueDepth: u32, + pub MaxSrqDepth: u32, + pub MaxCqDepth: u32, + pub LargeRequestThreshold: u32, + pub MaxCallerData: u32, + pub MaxCalleeData: u32, + pub AdapterFlags: u32, + pub RdmaTechnology: NDK_RDMA_TECHNOLOGY, +} +impl ::core::marker::Copy for NDK_ADAPTER_INFO {} +impl ::core::clone::Clone for NDK_ADAPTER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDK_VERSION { + pub Major: u16, + pub Minor: u16, +} +impl ::core::marker::Copy for NDK_VERSION {} +impl ::core::clone::Clone for NDK_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_ADDRESS { + pub AddressLength: u16, + pub AddressType: u16, + pub Address: [u8; 1], +} +impl ::core::marker::Copy for NETWORK_ADDRESS {} +impl ::core::clone::Clone for NETWORK_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_ADDRESS_IP { + pub sin_port: u16, + pub IN_ADDR: u32, + pub sin_zero: [u8; 8], +} +impl ::core::marker::Copy for NETWORK_ADDRESS_IP {} +impl ::core::clone::Clone for NETWORK_ADDRESS_IP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_ADDRESS_IP6 { + pub sin6_port: u16, + pub sin6_flowinfo: u32, + pub sin6_addr: [u16; 8], + pub sin6_scope_id: u32, +} +impl ::core::marker::Copy for NETWORK_ADDRESS_IP6 {} +impl ::core::clone::Clone for NETWORK_ADDRESS_IP6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_ADDRESS_IPX { + pub NetworkAddress: u32, + pub NodeAddress: [u8; 6], + pub Socket: u16, +} +impl ::core::marker::Copy for NETWORK_ADDRESS_IPX {} +impl ::core::clone::Clone for NETWORK_ADDRESS_IPX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_ADDRESS_LIST { + pub AddressCount: i32, + pub AddressType: u16, + pub Address: [NETWORK_ADDRESS; 1], +} +impl ::core::marker::Copy for NETWORK_ADDRESS_LIST {} +impl ::core::clone::Clone for NETWORK_ADDRESS_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NET_IF_ALIAS_LH { + pub ifAliasLength: u16, + pub ifAliasOffset: u16, +} +impl ::core::marker::Copy for NET_IF_ALIAS_LH {} +impl ::core::clone::Clone for NET_IF_ALIAS_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NET_IF_RCV_ADDRESS_LH { + pub ifRcvAddressType: NET_IF_RCV_ADDRESS_TYPE, + pub ifRcvAddressLength: u16, + pub ifRcvAddressOffset: u16, +} +impl ::core::marker::Copy for NET_IF_RCV_ADDRESS_LH {} +impl ::core::clone::Clone for NET_IF_RCV_ADDRESS_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NET_LUID_LH { + pub Value: u64, + pub Info: NET_LUID_LH_0, +} +impl ::core::marker::Copy for NET_LUID_LH {} +impl ::core::clone::Clone for NET_LUID_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NET_LUID_LH_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for NET_LUID_LH_0 {} +impl ::core::clone::Clone for NET_LUID_LH_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NET_PHYSICAL_LOCATION_LH { + pub BusNumber: u32, + pub SlotNumber: u32, + pub FunctionNumber: u32, +} +impl ::core::marker::Copy for NET_PHYSICAL_LOCATION_LH {} +impl ::core::clone::Clone for NET_PHYSICAL_LOCATION_LH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OFFLOAD_ALGO_INFO { + pub algoIdentifier: u32, + pub algoKeylen: u32, + pub algoRounds: u32, +} +impl ::core::marker::Copy for OFFLOAD_ALGO_INFO {} +impl ::core::clone::Clone for OFFLOAD_ALGO_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OFFLOAD_IPSEC_ADD_SA { + pub SrcAddr: u32, + pub SrcMask: u32, + pub DestAddr: u32, + pub DestMask: u32, + pub Protocol: u32, + pub SrcPort: u16, + pub DestPort: u16, + pub SrcTunnelAddr: u32, + pub DestTunnelAddr: u32, + pub Flags: u16, + pub NumSAs: i16, + pub SecAssoc: [OFFLOAD_SECURITY_ASSOCIATION; 3], + pub OffloadHandle: super::super::Foundation::HANDLE, + pub KeyLen: u32, + pub KeyMat: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OFFLOAD_IPSEC_ADD_SA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OFFLOAD_IPSEC_ADD_SA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OFFLOAD_IPSEC_ADD_UDPESP_SA { + pub SrcAddr: u32, + pub SrcMask: u32, + pub DstAddr: u32, + pub DstMask: u32, + pub Protocol: u32, + pub SrcPort: u16, + pub DstPort: u16, + pub SrcTunnelAddr: u32, + pub DstTunnelAddr: u32, + pub Flags: u16, + pub NumSAs: i16, + pub SecAssoc: [OFFLOAD_SECURITY_ASSOCIATION; 3], + pub OffloadHandle: super::super::Foundation::HANDLE, + pub EncapTypeEntry: OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY, + pub EncapTypeEntryOffldHandle: super::super::Foundation::HANDLE, + pub KeyLen: u32, + pub KeyMat: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OFFLOAD_IPSEC_ADD_UDPESP_SA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OFFLOAD_IPSEC_ADD_UDPESP_SA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OFFLOAD_IPSEC_DELETE_SA { + pub OffloadHandle: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OFFLOAD_IPSEC_DELETE_SA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OFFLOAD_IPSEC_DELETE_SA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OFFLOAD_IPSEC_DELETE_UDPESP_SA { + pub OffloadHandle: super::super::Foundation::HANDLE, + pub EncapTypeEntryOffldHandle: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OFFLOAD_IPSEC_DELETE_UDPESP_SA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OFFLOAD_IPSEC_DELETE_UDPESP_SA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY { + pub UdpEncapType: UDP_ENCAP_TYPE, + pub DstEncapPort: u16, +} +impl ::core::marker::Copy for OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY {} +impl ::core::clone::Clone for OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OFFLOAD_SECURITY_ASSOCIATION { + pub Operation: OFFLOAD_OPERATION_E, + pub SPI: u32, + pub IntegrityAlgo: OFFLOAD_ALGO_INFO, + pub ConfAlgo: OFFLOAD_ALGO_INFO, + pub Reserved: OFFLOAD_ALGO_INFO, +} +impl ::core::marker::Copy for OFFLOAD_SECURITY_ASSOCIATION {} +impl ::core::clone::Clone for OFFLOAD_SECURITY_ASSOCIATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PMKID_CANDIDATE { + pub BSSID: [u8; 6], + pub Flags: u32, +} +impl ::core::marker::Copy for PMKID_CANDIDATE {} +impl ::core::clone::Clone for PMKID_CANDIDATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSPORT_HEADER_OFFSET { + pub ProtocolType: u16, + pub HeaderOffset: u16, +} +impl ::core::marker::Copy for TRANSPORT_HEADER_OFFSET {} +impl ::core::clone::Clone for TRANSPORT_HEADER_OFFSET { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetBios/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetBios/mod.rs new file mode 100644 index 000000000..467eff3dc --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetBios/mod.rs @@ -0,0 +1,274 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Netbios(pncb : *mut NCB) -> u8); +pub const ALL_TRANSPORTS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("M\u{0}\u{0}\u{0}"); +pub const ASYNCH: u32 = 128u32; +pub const CALL_PENDING: u32 = 2u32; +pub const DEREGISTERED: u32 = 5u32; +pub const DUPLICATE: u32 = 6u32; +pub const DUPLICATE_DEREG: u32 = 7u32; +pub const GROUP_NAME: u32 = 128u32; +pub const HANGUP_COMPLETE: u32 = 5u32; +pub const HANGUP_PENDING: u32 = 4u32; +pub const LISTEN_OUTSTANDING: u32 = 1u32; +pub const MAX_LANA: u32 = 254u32; +pub const MS_NBF: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MNBF"); +pub const NAME_FLAGS_MASK: u32 = 135u32; +pub const NCBACTION: u32 = 119u32; +pub const NCBADDGRNAME: u32 = 54u32; +pub const NCBADDNAME: u32 = 48u32; +pub const NCBASTAT: u32 = 51u32; +pub const NCBCALL: u32 = 16u32; +pub const NCBCANCEL: u32 = 53u32; +pub const NCBCHAINSEND: u32 = 23u32; +pub const NCBCHAINSENDNA: u32 = 114u32; +pub const NCBDELNAME: u32 = 49u32; +pub const NCBDGRECV: u32 = 33u32; +pub const NCBDGRECVBC: u32 = 35u32; +pub const NCBDGSEND: u32 = 32u32; +pub const NCBDGSENDBC: u32 = 34u32; +pub const NCBENUM: u32 = 55u32; +pub const NCBFINDNAME: u32 = 120u32; +pub const NCBHANGUP: u32 = 18u32; +pub const NCBLANSTALERT: u32 = 115u32; +pub const NCBLISTEN: u32 = 17u32; +pub const NCBNAMSZ: u32 = 16u32; +pub const NCBRECV: u32 = 21u32; +pub const NCBRECVANY: u32 = 22u32; +pub const NCBRESET: u32 = 50u32; +pub const NCBSEND: u32 = 20u32; +pub const NCBSENDNA: u32 = 113u32; +pub const NCBSSTAT: u32 = 52u32; +pub const NCBTRACE: u32 = 121u32; +pub const NCBUNLINK: u32 = 112u32; +pub const NRC_ACTSES: u32 = 15u32; +pub const NRC_BADDR: u32 = 7u32; +pub const NRC_BRIDGE: u32 = 35u32; +pub const NRC_BUFLEN: u32 = 1u32; +pub const NRC_CANCEL: u32 = 38u32; +pub const NRC_CANOCCR: u32 = 36u32; +pub const NRC_CMDCAN: u32 = 11u32; +pub const NRC_CMDTMO: u32 = 5u32; +pub const NRC_DUPENV: u32 = 48u32; +pub const NRC_DUPNAME: u32 = 13u32; +pub const NRC_ENVNOTDEF: u32 = 52u32; +pub const NRC_GOODRET: u32 = 0u32; +pub const NRC_IFBUSY: u32 = 33u32; +pub const NRC_ILLCMD: u32 = 3u32; +pub const NRC_ILLNN: u32 = 19u32; +pub const NRC_INCOMP: u32 = 6u32; +pub const NRC_INUSE: u32 = 22u32; +pub const NRC_INVADDRESS: u32 = 57u32; +pub const NRC_INVDDID: u32 = 59u32; +pub const NRC_LOCKFAIL: u32 = 60u32; +pub const NRC_LOCTFUL: u32 = 17u32; +pub const NRC_MAXAPPS: u32 = 54u32; +pub const NRC_NAMCONF: u32 = 25u32; +pub const NRC_NAMERR: u32 = 23u32; +pub const NRC_NAMTFUL: u32 = 14u32; +pub const NRC_NOCALL: u32 = 20u32; +pub const NRC_NORES: u32 = 9u32; +pub const NRC_NORESOURCES: u32 = 56u32; +pub const NRC_NOSAPS: u32 = 55u32; +pub const NRC_NOWILD: u32 = 21u32; +pub const NRC_OPENERR: u32 = 63u32; +pub const NRC_OSRESNOTAV: u32 = 53u32; +pub const NRC_PENDING: u32 = 255u32; +pub const NRC_REMTFUL: u32 = 18u32; +pub const NRC_SABORT: u32 = 24u32; +pub const NRC_SCLOSED: u32 = 10u32; +pub const NRC_SNUMOUT: u32 = 8u32; +pub const NRC_SYSTEM: u32 = 64u32; +pub const NRC_TOOMANY: u32 = 34u32; +pub const REGISTERED: u32 = 4u32; +pub const REGISTERING: u32 = 0u32; +pub const SESSION_ABORTED: u32 = 6u32; +pub const SESSION_ESTABLISHED: u32 = 3u32; +pub const UNIQUE_NAME: u32 = 0u32; +#[repr(C)] +pub struct ACTION_HEADER { + pub transport_id: u32, + pub action_code: u16, + pub reserved: u16, +} +impl ::core::marker::Copy for ACTION_HEADER {} +impl ::core::clone::Clone for ACTION_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADAPTER_STATUS { + pub adapter_address: [u8; 6], + pub rev_major: u8, + pub reserved0: u8, + pub adapter_type: u8, + pub rev_minor: u8, + pub duration: u16, + pub frmr_recv: u16, + pub frmr_xmit: u16, + pub iframe_recv_err: u16, + pub xmit_aborts: u16, + pub xmit_success: u32, + pub recv_success: u32, + pub iframe_xmit_err: u16, + pub recv_buff_unavail: u16, + pub t1_timeouts: u16, + pub ti_timeouts: u16, + pub reserved1: u32, + pub free_ncbs: u16, + pub max_cfg_ncbs: u16, + pub max_ncbs: u16, + pub xmit_buf_unavail: u16, + pub max_dgram_size: u16, + pub pending_sess: u16, + pub max_cfg_sess: u16, + pub max_sess: u16, + pub max_sess_pkt_size: u16, + pub name_count: u16, +} +impl ::core::marker::Copy for ADAPTER_STATUS {} +impl ::core::clone::Clone for ADAPTER_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FIND_NAME_BUFFER { + pub length: u8, + pub access_control: u8, + pub frame_control: u8, + pub destination_addr: [u8; 6], + pub source_addr: [u8; 6], + pub routing_info: [u8; 18], +} +impl ::core::marker::Copy for FIND_NAME_BUFFER {} +impl ::core::clone::Clone for FIND_NAME_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FIND_NAME_HEADER { + pub node_count: u16, + pub reserved: u8, + pub unique_group: u8, +} +impl ::core::marker::Copy for FIND_NAME_HEADER {} +impl ::core::clone::Clone for FIND_NAME_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LANA_ENUM { + pub length: u8, + pub lana: [u8; 255], +} +impl ::core::marker::Copy for LANA_ENUM {} +impl ::core::clone::Clone for LANA_ENUM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NAME_BUFFER { + pub name: [u8; 16], + pub name_num: u8, + pub name_flags: u8, +} +impl ::core::marker::Copy for NAME_BUFFER {} +impl ::core::clone::Clone for NAME_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct NCB { + pub ncb_command: u8, + pub ncb_retcode: u8, + pub ncb_lsn: u8, + pub ncb_num: u8, + pub ncb_buffer: *mut u8, + pub ncb_length: u16, + pub ncb_callname: [u8; 16], + pub ncb_name: [u8; 16], + pub ncb_rto: u8, + pub ncb_sto: u8, + pub ncb_post: isize, + pub ncb_lana_num: u8, + pub ncb_cmd_cplt: u8, + pub ncb_reserve: [u8; 18], + pub ncb_event: super::super::Foundation::HANDLE, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NCB {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NCB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct NCB { + pub ncb_command: u8, + pub ncb_retcode: u8, + pub ncb_lsn: u8, + pub ncb_num: u8, + pub ncb_buffer: *mut u8, + pub ncb_length: u16, + pub ncb_callname: [u8; 16], + pub ncb_name: [u8; 16], + pub ncb_rto: u8, + pub ncb_sto: u8, + pub ncb_post: isize, + pub ncb_lana_num: u8, + pub ncb_cmd_cplt: u8, + pub ncb_reserve: [u8; 10], + pub ncb_event: super::super::Foundation::HANDLE, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NCB {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NCB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SESSION_BUFFER { + pub lsn: u8, + pub state: u8, + pub local_name: [u8; 16], + pub remote_name: [u8; 16], + pub rcvs_outstanding: u8, + pub sends_outstanding: u8, +} +impl ::core::marker::Copy for SESSION_BUFFER {} +impl ::core::clone::Clone for SESSION_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SESSION_HEADER { + pub sess_name: u8, + pub num_sess: u8, + pub rcv_dg_outstanding: u8, + pub rcv_any_outstanding: u8, +} +impl ::core::marker::Copy for SESSION_HEADER {} +impl ::core::clone::Clone for SESSION_HEADER { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetManagement/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetManagement/mod.rs new file mode 100644 index 000000000..d6ea03631 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetManagement/mod.rs @@ -0,0 +1,6564 @@ +::windows_targets::link!("mstask.dll" "system" fn GetNetScheduleAccountInformation(pwszservername : ::windows_sys::core::PCWSTR, ccaccount : u32, wszaccount : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("netapi32.dll" "system" fn I_NetLogonControl2(servername : ::windows_sys::core::PCWSTR, functioncode : u32, querylevel : u32, data : *const u8, buffer : *mut *mut u8) -> u32); +::windows_targets::link!("rtutils.dll" "system" fn LogErrorA(dwmessageid : u32, cnumberofsubstrings : u32, plpwssubstrings : *const ::windows_sys::core::PCSTR, dwerrorcode : u32) -> ()); +::windows_targets::link!("rtutils.dll" "system" fn LogErrorW(dwmessageid : u32, cnumberofsubstrings : u32, plpwssubstrings : *const ::windows_sys::core::PCWSTR, dwerrorcode : u32) -> ()); +::windows_targets::link!("rtutils.dll" "system" fn LogEventA(weventtype : u32, dwmessageid : u32, cnumberofsubstrings : u32, plpwssubstrings : *const ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("rtutils.dll" "system" fn LogEventW(weventtype : u32, dwmessageid : u32, cnumberofsubstrings : u32, plpwssubstrings : *const ::windows_sys::core::PCWSTR) -> ()); +::windows_targets::link!("rtutils.dll" "system" fn MprSetupProtocolEnum(dwtransportid : u32, lplpbuffer : *mut *mut u8, lpdwentriesread : *mut u32) -> u32); +::windows_targets::link!("rtutils.dll" "system" fn MprSetupProtocolFree(lpbuffer : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetAccessAdd(servername : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetAccessDel(servername : ::windows_sys::core::PCWSTR, resource : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetAccessEnum(servername : ::windows_sys::core::PCWSTR, basepath : ::windows_sys::core::PCWSTR, recursive : u32, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resume_handle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetAccessGetInfo(servername : ::windows_sys::core::PCWSTR, resource : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetAccessGetUserPerms(servername : ::windows_sys::core::PCWSTR, ugname : ::windows_sys::core::PCWSTR, resource : ::windows_sys::core::PCWSTR, perms : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetAccessSetInfo(servername : ::windows_sys::core::PCWSTR, resource : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetAddAlternateComputerName(server : ::windows_sys::core::PCWSTR, alternatename : ::windows_sys::core::PCWSTR, domainaccount : ::windows_sys::core::PCWSTR, domainaccountpassword : ::windows_sys::core::PCWSTR, reserved : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NetAddServiceAccount(servername : ::windows_sys::core::PCWSTR, accountname : ::windows_sys::core::PCWSTR, password : ::windows_sys::core::PCWSTR, flags : u32) -> super::super::Foundation:: NTSTATUS); +::windows_targets::link!("netapi32.dll" "system" fn NetAlertRaise(alerttype : ::windows_sys::core::PCWSTR, buffer : *const ::core::ffi::c_void, buffersize : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetAlertRaiseEx(alerttype : ::windows_sys::core::PCWSTR, variableinfo : *const ::core::ffi::c_void, variableinfosize : u32, servicename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetApiBufferAllocate(bytecount : u32, buffer : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetApiBufferFree(buffer : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetApiBufferReallocate(oldbuffer : *const ::core::ffi::c_void, newbytecount : u32, newbuffer : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetApiBufferSize(buffer : *const ::core::ffi::c_void, bytecount : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetAuditClear(server : ::windows_sys::core::PCWSTR, backupfile : ::windows_sys::core::PCWSTR, service : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetAuditRead(server : ::windows_sys::core::PCWSTR, service : ::windows_sys::core::PCWSTR, auditloghandle : *mut HLOG, offset : u32, reserved1 : *mut u32, reserved2 : u32, offsetflag : u32, bufptr : *mut *mut u8, prefmaxlen : u32, bytesread : *mut u32, totalavailable : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetAuditWrite(r#type : u32, buf : *mut u8, numbytes : u32, service : ::windows_sys::core::PCWSTR, reserved : *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetConfigGet(server : ::windows_sys::core::PCWSTR, component : ::windows_sys::core::PCWSTR, parameter : ::windows_sys::core::PCWSTR, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetConfigGetAll(server : ::windows_sys::core::PCWSTR, component : ::windows_sys::core::PCWSTR, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetConfigSet(server : ::windows_sys::core::PCWSTR, reserved1 : ::windows_sys::core::PCWSTR, component : ::windows_sys::core::PCWSTR, level : u32, reserved2 : u32, buf : *mut u8, reserved3 : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetCreateProvisioningPackage(pprovisioningparams : *const NETSETUP_PROVISIONING_PARAMS, pppackagebindata : *mut *mut u8, pdwpackagebindatasize : *mut u32, pppackagetextdata : *mut ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetEnumerateComputerNames(server : ::windows_sys::core::PCWSTR, nametype : NET_COMPUTER_NAME_TYPE, reserved : u32, entrycount : *mut u32, computernames : *mut *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NetEnumerateServiceAccounts(servername : ::windows_sys::core::PCWSTR, flags : u32, accountscount : *mut u32, accounts : *mut *mut *mut u16) -> super::super::Foundation:: NTSTATUS); +::windows_targets::link!("netapi32.dll" "system" fn NetErrorLogClear(uncservername : ::windows_sys::core::PCWSTR, backupfile : ::windows_sys::core::PCWSTR, reserved : *const u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetErrorLogRead(uncservername : ::windows_sys::core::PCWSTR, reserved1 : ::windows_sys::core::PCWSTR, errorloghandle : *const HLOG, offset : u32, reserved2 : *const u32, reserved3 : u32, offsetflag : u32, bufptr : *mut *mut u8, prefmaxsize : u32, bytesread : *mut u32, totalavailable : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetErrorLogWrite(reserved1 : *const u8, code : u32, component : ::windows_sys::core::PCWSTR, buffer : *const u8, numbytes : u32, msgbuf : *const u8, strcount : u32, reserved2 : *const u8) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn NetFreeAadJoinInformation(pjoininfo : *const DSREG_JOIN_INFO) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn NetGetAadJoinInformation(pcsztenantid : ::windows_sys::core::PCWSTR, ppjoininfo : *mut *mut DSREG_JOIN_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("netapi32.dll" "system" fn NetGetAnyDCName(servername : ::windows_sys::core::PCWSTR, domainname : ::windows_sys::core::PCWSTR, buffer : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetGetDCName(servername : ::windows_sys::core::PCWSTR, domainname : ::windows_sys::core::PCWSTR, buffer : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetGetDisplayInformationIndex(servername : ::windows_sys::core::PCWSTR, level : u32, prefix : ::windows_sys::core::PCWSTR, index : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetGetJoinInformation(lpserver : ::windows_sys::core::PCWSTR, lpnamebuffer : *mut ::windows_sys::core::PWSTR, buffertype : *mut NETSETUP_JOIN_STATUS) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetGetJoinableOUs(lpserver : ::windows_sys::core::PCWSTR, lpdomain : ::windows_sys::core::PCWSTR, lpaccount : ::windows_sys::core::PCWSTR, lppassword : ::windows_sys::core::PCWSTR, oucount : *mut u32, ous : *mut *mut ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetGroupAdd(servername : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetGroupAddUser(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetGroupDel(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetGroupDelUser(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetGroupEnum(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resume_handle : *mut usize) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetGroupGetInfo(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetGroupGetUsers(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resumehandle : *mut usize) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetGroupSetInfo(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetGroupSetUsers(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, totalentries : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NetIsServiceAccount(servername : ::windows_sys::core::PCWSTR, accountname : ::windows_sys::core::PCWSTR, isservice : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: NTSTATUS); +::windows_targets::link!("netapi32.dll" "system" fn NetJoinDomain(lpserver : ::windows_sys::core::PCWSTR, lpdomain : ::windows_sys::core::PCWSTR, lpmachineaccountou : ::windows_sys::core::PCWSTR, lpaccount : ::windows_sys::core::PCWSTR, lppassword : ::windows_sys::core::PCWSTR, fjoinoptions : NET_JOIN_DOMAIN_JOIN_OPTIONS) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetLocalGroupAdd(servername : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NetLocalGroupAddMember(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, membersid : super::super::Foundation:: PSID) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetLocalGroupAddMembers(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, totalentries : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetLocalGroupDel(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NetLocalGroupDelMember(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, membersid : super::super::Foundation:: PSID) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetLocalGroupDelMembers(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, totalentries : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetLocalGroupEnum(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resumehandle : *mut usize) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetLocalGroupGetInfo(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetLocalGroupGetMembers(servername : ::windows_sys::core::PCWSTR, localgroupname : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resumehandle : *mut usize) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetLocalGroupSetInfo(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetLocalGroupSetMembers(servername : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, totalentries : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetMessageBufferSend(servername : ::windows_sys::core::PCWSTR, msgname : ::windows_sys::core::PCWSTR, fromname : ::windows_sys::core::PCWSTR, buf : *const u8, buflen : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetMessageNameAdd(servername : ::windows_sys::core::PCWSTR, msgname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetMessageNameDel(servername : ::windows_sys::core::PCWSTR, msgname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetMessageNameEnum(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *const *const u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resume_handle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetMessageNameGetInfo(servername : ::windows_sys::core::PCWSTR, msgname : ::windows_sys::core::PCWSTR, level : u32, bufptr : *const *const u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetProvisionComputerAccount(lpdomain : ::windows_sys::core::PCWSTR, lpmachinename : ::windows_sys::core::PCWSTR, lpmachineaccountou : ::windows_sys::core::PCWSTR, lpdcname : ::windows_sys::core::PCWSTR, dwoptions : NETSETUP_PROVISION, pprovisionbindata : *mut *mut u8, pdwprovisionbindatasize : *mut u32, pprovisiontextdata : *mut ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetQueryDisplayInformation(servername : ::windows_sys::core::PCWSTR, level : u32, index : u32, entriesrequested : u32, preferredmaximumlength : u32, returnedentrycount : *mut u32, sortedbuffer : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NetQueryServiceAccount(servername : ::windows_sys::core::PCWSTR, accountname : ::windows_sys::core::PCWSTR, infolevel : u32, buffer : *mut *mut u8) -> super::super::Foundation:: NTSTATUS); +::windows_targets::link!("netapi32.dll" "system" fn NetRemoteComputerSupports(uncservername : ::windows_sys::core::PCWSTR, optionswanted : NET_REMOTE_COMPUTER_SUPPORTS_OPTIONS, optionssupported : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetRemoteTOD(uncservername : ::windows_sys::core::PCWSTR, bufferptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetRemoveAlternateComputerName(server : ::windows_sys::core::PCWSTR, alternatename : ::windows_sys::core::PCWSTR, domainaccount : ::windows_sys::core::PCWSTR, domainaccountpassword : ::windows_sys::core::PCWSTR, reserved : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NetRemoveServiceAccount(servername : ::windows_sys::core::PCWSTR, accountname : ::windows_sys::core::PCWSTR, flags : u32) -> super::super::Foundation:: NTSTATUS); +::windows_targets::link!("netapi32.dll" "system" fn NetRenameMachineInDomain(lpserver : ::windows_sys::core::PCWSTR, lpnewmachinename : ::windows_sys::core::PCWSTR, lpaccount : ::windows_sys::core::PCWSTR, lppassword : ::windows_sys::core::PCWSTR, frenameoptions : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplExportDirAdd(servername : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplExportDirDel(servername : ::windows_sys::core::PCWSTR, dirname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplExportDirEnum(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resumehandle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplExportDirGetInfo(servername : ::windows_sys::core::PCWSTR, dirname : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplExportDirLock(servername : ::windows_sys::core::PCWSTR, dirname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplExportDirSetInfo(servername : ::windows_sys::core::PCWSTR, dirname : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplExportDirUnlock(servername : ::windows_sys::core::PCWSTR, dirname : ::windows_sys::core::PCWSTR, unlockforce : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplGetInfo(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplImportDirAdd(servername : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplImportDirDel(servername : ::windows_sys::core::PCWSTR, dirname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplImportDirEnum(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resumehandle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplImportDirGetInfo(servername : ::windows_sys::core::PCWSTR, dirname : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplImportDirLock(servername : ::windows_sys::core::PCWSTR, dirname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplImportDirUnlock(servername : ::windows_sys::core::PCWSTR, dirname : ::windows_sys::core::PCWSTR, unlockforce : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetReplSetInfo(servername : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetRequestOfflineDomainJoin(pprovisionbindata : *const u8, cbprovisionbindatasize : u32, dwoptions : NET_REQUEST_PROVISION_OPTIONS, lpwindowspath : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetRequestProvisioningPackageInstall(ppackagebindata : *const u8, dwpackagebindatasize : u32, dwprovisionoptions : NET_REQUEST_PROVISION_OPTIONS, lpwindowspath : ::windows_sys::core::PCWSTR, pvreserved : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetScheduleJobAdd(servername : ::windows_sys::core::PCWSTR, buffer : *mut u8, jobid : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetScheduleJobDel(servername : ::windows_sys::core::PCWSTR, minjobid : u32, maxjobid : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetScheduleJobEnum(servername : ::windows_sys::core::PCWSTR, pointertobuffer : *mut *mut u8, prefferedmaximumlength : u32, entriesread : *mut u32, totalentries : *mut u32, resumehandle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetScheduleJobGetInfo(servername : ::windows_sys::core::PCWSTR, jobid : u32, pointertobuffer : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServerComputerNameAdd(servername : ::windows_sys::core::PCWSTR, emulateddomainname : ::windows_sys::core::PCWSTR, emulatedservername : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServerComputerNameDel(servername : ::windows_sys::core::PCWSTR, emulatedservername : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServerDiskEnum(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resume_handle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServerEnum(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, servertype : NET_SERVER_TYPE, domain : ::windows_sys::core::PCWSTR, resume_handle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServerGetInfo(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServerSetInfo(servername : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parmerror : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServerTransportAdd(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *const u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServerTransportAddEx(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *const u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServerTransportDel(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *const u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServerTransportEnum(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resume_handle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServiceControl(servername : ::windows_sys::core::PCWSTR, service : ::windows_sys::core::PCWSTR, opcode : u32, arg : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServiceEnum(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resume_handle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServiceGetInfo(servername : ::windows_sys::core::PCWSTR, service : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServiceInstall(servername : ::windows_sys::core::PCWSTR, service : ::windows_sys::core::PCWSTR, argc : u32, argv : *const ::windows_sys::core::PCWSTR, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetSetPrimaryComputerName(server : ::windows_sys::core::PCWSTR, primaryname : ::windows_sys::core::PCWSTR, domainaccount : ::windows_sys::core::PCWSTR, domainaccountpassword : ::windows_sys::core::PCWSTR, reserved : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUnjoinDomain(lpserver : ::windows_sys::core::PCWSTR, lpaccount : ::windows_sys::core::PCWSTR, lppassword : ::windows_sys::core::PCWSTR, funjoinoptions : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUseAdd(servername : *const i8, levelflags : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUseDel(uncservername : ::windows_sys::core::PCWSTR, usename : ::windows_sys::core::PCWSTR, forcelevelflags : FORCE_LEVEL_FLAGS) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUseEnum(uncservername : ::windows_sys::core::PCWSTR, levelflags : u32, bufptr : *mut *mut u8, preferedmaximumsize : u32, entriesread : *mut u32, totalentries : *mut u32, resumehandle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUseGetInfo(uncservername : ::windows_sys::core::PCWSTR, usename : ::windows_sys::core::PCWSTR, levelflags : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUserAdd(servername : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUserChangePassword(domainname : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, oldpassword : ::windows_sys::core::PCWSTR, newpassword : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUserDel(servername : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUserEnum(servername : ::windows_sys::core::PCWSTR, level : u32, filter : NET_USER_ENUM_FILTER_FLAGS, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resume_handle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUserGetGroups(servername : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUserGetInfo(servername : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUserGetLocalGroups(servername : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, level : u32, flags : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUserModalsGet(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUserModalsSet(servername : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUserSetGroups(servername : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, num_entries : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetUserSetInfo(servername : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetValidateName(lpserver : ::windows_sys::core::PCWSTR, lpname : ::windows_sys::core::PCWSTR, lpaccount : ::windows_sys::core::PCWSTR, lppassword : ::windows_sys::core::PCWSTR, nametype : NETSETUP_NAME_TYPE) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetValidatePasswordPolicy(servername : ::windows_sys::core::PCWSTR, qualifier : *mut ::core::ffi::c_void, validationtype : NET_VALIDATE_PASSWORD_TYPE, inputarg : *mut ::core::ffi::c_void, outputarg : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetValidatePasswordPolicyFree(outputarg : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetWkstaGetInfo(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetWkstaSetInfo(servername : ::windows_sys::core::PCWSTR, level : u32, buffer : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetWkstaTransportAdd(servername : *const i8, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetWkstaTransportDel(servername : ::windows_sys::core::PCWSTR, transportname : ::windows_sys::core::PCWSTR, ucond : FORCE_LEVEL_FLAGS) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetWkstaTransportEnum(servername : *const i8, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resume_handle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetWkstaUserEnum(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resumehandle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetWkstaUserGetInfo(reserved : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetWkstaUserSetInfo(reserved : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("rtutils.dll" "system" fn RouterAssert(pszfailedassertion : ::windows_sys::core::PCSTR, pszfilename : ::windows_sys::core::PCSTR, dwlinenumber : u32, pszmessage : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("rtutils.dll" "system" fn RouterGetErrorStringA(dwerrorcode : u32, lplpszerrorstring : *mut ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("rtutils.dll" "system" fn RouterGetErrorStringW(dwerrorcode : u32, lplpwszerrorstring : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogDeregisterA(hloghandle : super::super::Foundation:: HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogDeregisterW(hloghandle : super::super::Foundation:: HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogEventA(hloghandle : super::super::Foundation:: HANDLE, dweventtype : u32, dwmessageid : u32, dwsubstringcount : u32, plpszsubstringarray : *const ::windows_sys::core::PCSTR, dwerrorcode : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogEventDataA(hloghandle : super::super::Foundation:: HANDLE, dweventtype : u32, dwmessageid : u32, dwsubstringcount : u32, plpszsubstringarray : *const ::windows_sys::core::PCSTR, dwdatabytes : u32, lpdatabytes : *mut u8) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogEventDataW(hloghandle : super::super::Foundation:: HANDLE, dweventtype : u32, dwmessageid : u32, dwsubstringcount : u32, plpszsubstringarray : *const ::windows_sys::core::PCWSTR, dwdatabytes : u32, lpdatabytes : *mut u8) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogEventExA(hloghandle : super::super::Foundation:: HANDLE, dweventtype : u32, dwerrorcode : u32, dwmessageid : u32, ptszformat : ::windows_sys::core::PCSTR, ...) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogEventExW(hloghandle : super::super::Foundation:: HANDLE, dweventtype : u32, dwerrorcode : u32, dwmessageid : u32, ptszformat : ::windows_sys::core::PCWSTR, ...) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogEventStringA(hloghandle : super::super::Foundation:: HANDLE, dweventtype : u32, dwmessageid : u32, dwsubstringcount : u32, plpszsubstringarray : *const ::windows_sys::core::PCSTR, dwerrorcode : u32, dwerrorindex : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogEventStringW(hloghandle : super::super::Foundation:: HANDLE, dweventtype : u32, dwmessageid : u32, dwsubstringcount : u32, plpszsubstringarray : *const ::windows_sys::core::PCWSTR, dwerrorcode : u32, dwerrorindex : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogEventValistExA(hloghandle : super::super::Foundation:: HANDLE, dweventtype : u32, dwerrorcode : u32, dwmessageid : u32, ptszformat : ::windows_sys::core::PCSTR, arglist : *mut i8) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogEventValistExW(hloghandle : super::super::Foundation:: HANDLE, dweventtype : u32, dwerrorcode : u32, dwmessageid : u32, ptszformat : ::windows_sys::core::PCWSTR, arglist : *mut i8) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogEventW(hloghandle : super::super::Foundation:: HANDLE, dweventtype : u32, dwmessageid : u32, dwsubstringcount : u32, plpszsubstringarray : *const ::windows_sys::core::PCWSTR, dwerrorcode : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogRegisterA(lpszsource : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RouterLogRegisterW(lpszsource : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("mstask.dll" "system" fn SetNetScheduleAccountInformation(pwszservername : ::windows_sys::core::PCWSTR, pwszaccount : ::windows_sys::core::PCWSTR, pwszpassword : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtutils.dll" "system" fn TraceDeregisterA(dwtraceid : u32) -> u32); +::windows_targets::link!("rtutils.dll" "system" fn TraceDeregisterExA(dwtraceid : u32, dwflags : u32) -> u32); +::windows_targets::link!("rtutils.dll" "system" fn TraceDeregisterExW(dwtraceid : u32, dwflags : u32) -> u32); +::windows_targets::link!("rtutils.dll" "system" fn TraceDeregisterW(dwtraceid : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TraceDumpExA(dwtraceid : u32, dwflags : u32, lpbbytes : *mut u8, dwbytecount : u32, dwgroupsize : u32, baddressprefix : super::super::Foundation:: BOOL, lpszprefix : ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TraceDumpExW(dwtraceid : u32, dwflags : u32, lpbbytes : *mut u8, dwbytecount : u32, dwgroupsize : u32, baddressprefix : super::super::Foundation:: BOOL, lpszprefix : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TraceGetConsoleA(dwtraceid : u32, lphconsole : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TraceGetConsoleW(dwtraceid : u32, lphconsole : *mut super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("rtutils.dll" "cdecl" fn TracePrintfA(dwtraceid : u32, lpszformat : ::windows_sys::core::PCSTR, ...) -> u32); +::windows_targets::link!("rtutils.dll" "cdecl" fn TracePrintfExA(dwtraceid : u32, dwflags : u32, lpszformat : ::windows_sys::core::PCSTR, ...) -> u32); +::windows_targets::link!("rtutils.dll" "cdecl" fn TracePrintfExW(dwtraceid : u32, dwflags : u32, lpszformat : ::windows_sys::core::PCWSTR, ...) -> u32); +::windows_targets::link!("rtutils.dll" "cdecl" fn TracePrintfW(dwtraceid : u32, lpszformat : ::windows_sys::core::PCWSTR, ...) -> u32); +::windows_targets::link!("rtutils.dll" "system" fn TracePutsExA(dwtraceid : u32, dwflags : u32, lpszstring : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("rtutils.dll" "system" fn TracePutsExW(dwtraceid : u32, dwflags : u32, lpszstring : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("rtutils.dll" "system" fn TraceRegisterExA(lpszcallername : ::windows_sys::core::PCSTR, dwflags : u32) -> u32); +::windows_targets::link!("rtutils.dll" "system" fn TraceRegisterExW(lpszcallername : ::windows_sys::core::PCWSTR, dwflags : u32) -> u32); +::windows_targets::link!("rtutils.dll" "system" fn TraceVprintfExA(dwtraceid : u32, dwflags : u32, lpszformat : ::windows_sys::core::PCSTR, arglist : *mut i8) -> u32); +::windows_targets::link!("rtutils.dll" "system" fn TraceVprintfExW(dwtraceid : u32, dwflags : u32, lpszformat : ::windows_sys::core::PCWSTR, arglist : *mut i8) -> u32); +pub type IEnumNetCfgBindingInterface = *mut ::core::ffi::c_void; +pub type IEnumNetCfgBindingPath = *mut ::core::ffi::c_void; +pub type IEnumNetCfgComponent = *mut ::core::ffi::c_void; +pub type INetCfg = *mut ::core::ffi::c_void; +pub type INetCfgBindingInterface = *mut ::core::ffi::c_void; +pub type INetCfgBindingPath = *mut ::core::ffi::c_void; +pub type INetCfgClass = *mut ::core::ffi::c_void; +pub type INetCfgClassSetup = *mut ::core::ffi::c_void; +pub type INetCfgClassSetup2 = *mut ::core::ffi::c_void; +pub type INetCfgComponent = *mut ::core::ffi::c_void; +pub type INetCfgComponentBindings = *mut ::core::ffi::c_void; +pub type INetCfgComponentControl = *mut ::core::ffi::c_void; +pub type INetCfgComponentNotifyBinding = *mut ::core::ffi::c_void; +pub type INetCfgComponentNotifyGlobal = *mut ::core::ffi::c_void; +pub type INetCfgComponentPropertyUi = *mut ::core::ffi::c_void; +pub type INetCfgComponentSetup = *mut ::core::ffi::c_void; +pub type INetCfgComponentSysPrep = *mut ::core::ffi::c_void; +pub type INetCfgComponentUpperEdge = *mut ::core::ffi::c_void; +pub type INetCfgLock = *mut ::core::ffi::c_void; +pub type INetCfgPnpReconfigCallback = *mut ::core::ffi::c_void; +pub type INetCfgSysPrep = *mut ::core::ffi::c_void; +pub type INetLanConnectionUiInfo = *mut ::core::ffi::c_void; +pub type INetRasConnectionIpUiInfo = *mut ::core::ffi::c_void; +pub type IProvisioningDomain = *mut ::core::ffi::c_void; +pub type IProvisioningProfileWireless = *mut ::core::ffi::c_void; +pub const AA_AUDIT_ALL: u32 = 1u32; +pub const AA_A_ACL: u32 = 32768u32; +pub const AA_A_CREATE: u32 = 8192u32; +pub const AA_A_DELETE: u32 = 16384u32; +pub const AA_A_OPEN: u32 = 4096u32; +pub const AA_A_OWNER: u32 = 4u32; +pub const AA_A_WRITE: u32 = 8192u32; +pub const AA_CLOSE: u32 = 8u32; +pub const AA_F_ACL: u32 = 2048u32; +pub const AA_F_CREATE: u32 = 512u32; +pub const AA_F_DELETE: u32 = 1024u32; +pub const AA_F_OPEN: u32 = 256u32; +pub const AA_F_WRITE: u32 = 512u32; +pub const AA_S_ACL: u32 = 128u32; +pub const AA_S_CREATE: u32 = 32u32; +pub const AA_S_DELETE: u32 = 64u32; +pub const AA_S_OPEN: u32 = 16u32; +pub const AA_S_WRITE: u32 = 32u32; +pub const ACCESS_ACCESS_LIST_PARMNUM: u32 = 4u32; +pub const ACCESS_ATTR_PARMNUM: u32 = 2u32; +pub const ACCESS_AUDIT: u32 = 1u32; +pub const ACCESS_COUNT_PARMNUM: u32 = 3u32; +pub const ACCESS_FAIL_ACL: u32 = 2048u32; +pub const ACCESS_FAIL_DELETE: u32 = 1024u32; +pub const ACCESS_FAIL_MASK: u32 = 3840u32; +pub const ACCESS_FAIL_OPEN: u32 = 256u32; +pub const ACCESS_FAIL_SHIFT: u32 = 4u32; +pub const ACCESS_FAIL_WRITE: u32 = 512u32; +pub const ACCESS_GROUP: u32 = 32768u32; +pub const ACCESS_LETTERS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("RWCXDAP "); +pub const ACCESS_NONE: u32 = 0u32; +pub const ACCESS_RESOURCE_NAME_PARMNUM: u32 = 1u32; +pub const ACCESS_SUCCESS_ACL: u32 = 128u32; +pub const ACCESS_SUCCESS_DELETE: u32 = 64u32; +pub const ACCESS_SUCCESS_MASK: u32 = 240u32; +pub const ACCESS_SUCCESS_OPEN: u32 = 16u32; +pub const ACCESS_SUCCESS_WRITE: u32 = 32u32; +pub const ACTION_ADMINUNLOCK: u32 = 1u32; +pub const ACTION_LOCKOUT: u32 = 0u32; +pub const AE_ACCLIMITEXCD: u32 = 17u32; +pub const AE_ACCRESTRICT: u32 = 4u32; +pub const AE_ACLMOD: u32 = 12u32; +pub const AE_ACLMODFAIL: u32 = 19u32; +pub const AE_ADD: u32 = 2u32; +pub const AE_ADMIN: u32 = 2u32; +pub const AE_ADMINDIS: u32 = 3u32; +pub const AE_ADMINPRIVREQD: u32 = 2u32; +pub const AE_ADMIN_CLOSE: u32 = 2u32; +pub const AE_AUTODIS: u32 = 2u32; +pub const AE_BADPW: u32 = 1u32; +pub const AE_CLOSEFILE: u32 = 9u32; +pub const AE_CONNREJ: u32 = 6u32; +pub const AE_CONNSTART: u32 = 4u32; +pub const AE_CONNSTOP: u32 = 5u32; +pub const AE_DELETE: u32 = 1u32; +pub const AE_ERROR: u32 = 1u32; +pub const AE_GENERAL: u32 = 0u32; +pub const AE_GENERIC_TYPE: u32 = 21u32; +pub const AE_GUEST: u32 = 0u32; +pub const AE_LIM_DELETED: u32 = 5u32; +pub const AE_LIM_DISABLED: u32 = 4u32; +pub const AE_LIM_EXPIRED: u32 = 2u32; +pub const AE_LIM_INVAL_WKSTA: u32 = 3u32; +pub const AE_LIM_LOGONHOURS: u32 = 1u32; +pub const AE_LIM_UNKNOWN: u32 = 0u32; +pub const AE_LOCKOUT: u32 = 20u32; +pub const AE_MOD: u32 = 0u32; +pub const AE_NETLOGDENIED: u32 = 16u32; +pub const AE_NETLOGOFF: u32 = 15u32; +pub const AE_NETLOGON: u32 = 14u32; +pub const AE_NOACCESSPERM: u32 = 3u32; +pub const AE_NORMAL: u32 = 0u32; +pub const AE_NORMAL_CLOSE: u32 = 0u32; +pub const AE_RESACCESS: u32 = 7u32; +pub const AE_RESACCESS2: u32 = 18u32; +pub const AE_RESACCESSREJ: u32 = 8u32; +pub const AE_SERVICESTAT: u32 = 11u32; +pub const AE_SESSDIS: u32 = 1u32; +pub const AE_SESSLOGOFF: u32 = 2u32; +pub const AE_SESSLOGON: u32 = 1u32; +pub const AE_SESSPWERR: u32 = 3u32; +pub const AE_SES_CLOSE: u32 = 1u32; +pub const AE_SRVCONT: u32 = 2u32; +pub const AE_SRVPAUSED: u32 = 1u32; +pub const AE_SRVSTART: u32 = 0u32; +pub const AE_SRVSTATUS: u32 = 0u32; +pub const AE_SRVSTOP: u32 = 3u32; +pub const AE_UASMOD: u32 = 13u32; +pub const AE_UAS_GROUP: u32 = 1u32; +pub const AE_UAS_MODALS: u32 = 2u32; +pub const AE_UAS_USER: u32 = 0u32; +pub const AE_UNSHARE: u32 = 2u32; +pub const AE_USER: u32 = 1u32; +pub const AE_USERLIMIT: u32 = 0u32; +pub const AF_OP_ACCOUNTS: AF_OP = 8u32; +pub const AF_OP_COMM: AF_OP = 2u32; +pub const AF_OP_PRINT: AF_OP = 1u32; +pub const AF_OP_SERVER: AF_OP = 4u32; +pub const ALERTER_MAILSLOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\\\.\\MAILSLOT\\Alerter"); +pub const ALERTSZ: u32 = 128u32; +pub const ALERT_ADMIN_EVENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ADMIN"); +pub const ALERT_ERRORLOG_EVENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ERRORLOG"); +pub const ALERT_MESSAGE_EVENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MESSAGE"); +pub const ALERT_PRINT_EVENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PRINTING"); +pub const ALERT_USER_EVENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("USER"); +pub const ALIGN_SHIFT: u32 = 7u32; +pub const ALIGN_SIZE: u32 = 8u32; +pub const ALLOCATE_RESPONSE: u32 = 2u32; +pub const BACKUP_MSG_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BAK.MSG"); +pub const CLTYPE_LEN: u32 = 12u32; +pub const CNLEN: u32 = 15u32; +pub const COULD_NOT_VERIFY_VOLUMES: i32 = -1073727512i32; +pub const CREATE_BYPASS_CSC: u32 = 2u32; +pub const CREATE_CRED_RESET: u32 = 4u32; +pub const CREATE_GLOBAL_MAPPING: u32 = 256u32; +pub const CREATE_NO_CONNECT: u32 = 1u32; +pub const CREATE_PERSIST_MAPPING: u32 = 32u32; +pub const CREATE_REQUIRE_CONNECTION_INTEGRITY: u32 = 8u32; +pub const CREATE_REQUIRE_CONNECTION_PRIVACY: u32 = 16u32; +pub const CREATE_WRITE_THROUGH_SEMANTICS: u32 = 64u32; +pub const CRYPT_KEY_LEN: u32 = 7u32; +pub const CRYPT_TXT_LEN: u32 = 8u32; +pub const DEF_MAX_BADPW: u32 = 0u32; +pub const DEF_MAX_PWHIST: u32 = 8u32; +pub const DEF_MIN_PWLEN: u32 = 6u32; +pub const DEF_PWUNIQUENESS: u32 = 5u32; +pub const DEVLEN: u32 = 80u32; +pub const DFS_CONNECTION_FAILURE: i32 = 1073756226i32; +pub const DFS_ERROR_ACTIVEDIRECTORY_OFFLINE: i32 = -1073727301i32; +pub const DFS_ERROR_CLUSTERINFO_FAILED: i32 = -1073727307i32; +pub const DFS_ERROR_COMPUTERINFO_FAILED: i32 = -1073727308i32; +pub const DFS_ERROR_CREATEEVENT_FAILED: i32 = -1073727309i32; +pub const DFS_ERROR_CREATE_REPARSEPOINT_FAILURE: i32 = -1073727321i32; +pub const DFS_ERROR_CREATE_REPARSEPOINT_SUCCESS: i32 = 1073756370i32; +pub const DFS_ERROR_CROSS_FOREST_TRUST_INFO_FAILED: i32 = -1073727274i32; +pub const DFS_ERROR_DCINFO_FAILED: i32 = -1073727306i32; +pub const DFS_ERROR_DSCONNECT_FAILED: i32 = -2147469122i32; +pub const DFS_ERROR_DUPLICATE_LINK: i32 = -1073727277i32; +pub const DFS_ERROR_HANDLENAMESPACE_FAILED: i32 = -1073727304i32; +pub const DFS_ERROR_LINKS_OVERLAP: i32 = -1073727280i32; +pub const DFS_ERROR_LINK_OVERLAP: i32 = -1073727279i32; +pub const DFS_ERROR_MUTLIPLE_ROOTS_NOT_SUPPORTED: i32 = -1073727289i32; +pub const DFS_ERROR_NO_DFS_DATA: i32 = -1073727294i32; +pub const DFS_ERROR_ON_ROOT: i32 = -2147469114i32; +pub const DFS_ERROR_OVERLAPPING_DIRECTORIES: i32 = -1073727319i32; +pub const DFS_ERROR_PREFIXTABLE_FAILED: i32 = -1073727305i32; +pub const DFS_ERROR_REFLECTIONENGINE_FAILED: i32 = -1073727302i32; +pub const DFS_ERROR_REGISTERSTORE_FAILED: i32 = -1073727303i32; +pub const DFS_ERROR_REMOVE_LINK_FAILED: i32 = -1073727284i32; +pub const DFS_ERROR_RESYNCHRONIZE_FAILED: i32 = -1073727285i32; +pub const DFS_ERROR_ROOTSYNCINIT_FAILED: i32 = -1073727310i32; +pub const DFS_ERROR_SECURITYINIT_FAILED: i32 = -1073727313i32; +pub const DFS_ERROR_SITECACHEINIT_FAILED: i32 = -1073727311i32; +pub const DFS_ERROR_SITESUPPOR_FAILED: i32 = -1073727300i32; +pub const DFS_ERROR_TARGET_LIST_INCORRECT: i32 = -1073727281i32; +pub const DFS_ERROR_THREADINIT_FAILED: i32 = -1073727312i32; +pub const DFS_ERROR_TOO_MANY_ERRORS: i32 = -1073727315i32; +pub const DFS_ERROR_TRUSTED_DOMAIN_INFO_FAILED: i32 = -1073727276i32; +pub const DFS_ERROR_UNSUPPORTED_FILESYSTEM: i32 = -1073727320i32; +pub const DFS_ERROR_WINSOCKINIT_FAILED: i32 = -1073727314i32; +pub const DFS_INFO_ACTIVEDIRECTORY_ONLINE: i32 = 1073756332i32; +pub const DFS_INFO_CROSS_FOREST_TRUST_INFO_SUCCESS: i32 = 1073756375i32; +pub const DFS_INFO_DOMAIN_REFERRAL_MIN_OVERFLOW: i32 = 1073756361i32; +pub const DFS_INFO_DS_RECONNECTED: i32 = 1073756353i32; +pub const DFS_INFO_FINISH_BUILDING_NAMESPACE: i32 = 1073756357i32; +pub const DFS_INFO_FINISH_INIT: i32 = 1073756355i32; +pub const DFS_INFO_RECONNECT_DATA: i32 = 1073756356i32; +pub const DFS_INFO_TRUSTED_DOMAIN_INFO_SUCCESS: i32 = 1073756373i32; +pub const DFS_INIT_SUCCESS: i32 = 1073756376i32; +pub const DFS_MAX_DNR_ATTEMPTS: i32 = 1073756229i32; +pub const DFS_OPEN_FAILURE: i32 = 1073756231i32; +pub const DFS_REFERRAL_FAILURE: i32 = 1073756227i32; +pub const DFS_REFERRAL_REQUEST: i32 = 1073756142i32; +pub const DFS_REFERRAL_SUCCESS: i32 = 1073756228i32; +pub const DFS_ROOT_SHARE_ACQUIRE_FAILED: i32 = -2147469095i32; +pub const DFS_ROOT_SHARE_ACQUIRE_SUCCESS: i32 = 1073756378i32; +pub const DFS_SPECIAL_REFERRAL_FAILURE: i32 = 1073756230i32; +pub const DFS_WARN_DOMAIN_REFERRAL_OVERFLOW: i32 = -2147469112i32; +pub const DFS_WARN_INCOMPLETE_MOVE: i32 = -2147469110i32; +pub const DFS_WARN_METADATA_LINK_INFO_INVALID: i32 = -2147469106i32; +pub const DFS_WARN_METADATA_LINK_TYPE_INCORRECT: i32 = -2147469107i32; +pub const DNLEN: u32 = 15u32; +pub const DPP_ADVANCED: DEFAULT_PAGES = 1i32; +pub const DSREG_DEVICE_JOIN: DSREG_JOIN_TYPE = 1i32; +pub const DSREG_UNKNOWN_JOIN: DSREG_JOIN_TYPE = 0i32; +pub const DSREG_WORKPLACE_JOIN: DSREG_JOIN_TYPE = 2i32; +pub const EBP_ABOVE: ENUM_BINDING_PATHS_FLAGS = 1i32; +pub const EBP_BELOW: ENUM_BINDING_PATHS_FLAGS = 2i32; +pub const ENCRYPTED_PWLEN: u32 = 16u32; +pub const ERRLOG2_BASE: u32 = 5700u32; +pub const ERRLOG_BASE: u32 = 3100u32; +pub const EVENT_BAD_ACCOUNT_NAME: i32 = -1073734816i32; +pub const EVENT_BAD_SERVICE_STATE: i32 = -1073734808i32; +pub const EVENT_BOOT_SYSTEM_DRIVERS_FAILED: i32 = -1073734798i32; +pub const EVENT_BOWSER_CANT_READ_REGISTRY: i32 = 1073749853i32; +pub const EVENT_BOWSER_ELECTION_RECEIVED: i32 = 8012i32; +pub const EVENT_BOWSER_ELECTION_SENT_FIND_MASTER_FAILED: i32 = 1073749838i32; +pub const EVENT_BOWSER_ELECTION_SENT_GETBLIST_FAILED: i32 = 1073749837i32; +pub const EVENT_BOWSER_GETBROWSERLIST_THRESHOLD_EXCEEDED: i32 = 1073749855i32; +pub const EVENT_BOWSER_ILLEGAL_DATAGRAM: i32 = -2147475642i32; +pub const EVENT_BOWSER_ILLEGAL_DATAGRAM_THRESHOLD: i32 = -1073733808i32; +pub const EVENT_BOWSER_MAILSLOT_DATAGRAM_THRESHOLD_EXCEEDED: i32 = 1073749854i32; +pub const EVENT_BOWSER_NAME_CONVERSION_FAILED: i32 = -1073733814i32; +pub const EVENT_BOWSER_NON_MASTER_MASTER_ANNOUNCE: i32 = -2147475643i32; +pub const EVENT_BOWSER_NON_PDC_WON_ELECTION: i32 = 1073749852i32; +pub const EVENT_BOWSER_OLD_BACKUP_FOUND: i32 = 1073749848i32; +pub const EVENT_BOWSER_OTHER_MASTER_ON_NET: i32 = -1073733821i32; +pub const EVENT_BOWSER_PDC_LOST_ELECTION: i32 = 1073749851i32; +pub const EVENT_BOWSER_PROMOTED_WHILE_ALREADY_MASTER: i32 = -2147475644i32; +pub const EVENT_BRIDGE_ADAPTER_BIND_FAILED: i32 = -1073727120i32; +pub const EVENT_BRIDGE_ADAPTER_FILTER_FAILED: i32 = -1073727122i32; +pub const EVENT_BRIDGE_ADAPTER_LINK_SPEED_QUERY_FAILED: i32 = -1073727124i32; +pub const EVENT_BRIDGE_ADAPTER_MAC_ADDR_QUERY_FAILED: i32 = -1073727123i32; +pub const EVENT_BRIDGE_ADAPTER_NAME_QUERY_FAILED: i32 = -1073727121i32; +pub const EVENT_BRIDGE_BUFFER_POOL_CREATION_FAILED: i32 = -1073727214i32; +pub const EVENT_BRIDGE_DEVICE_CREATION_FAILED: i32 = -1073727221i32; +pub const EVENT_BRIDGE_ETHERNET_NOT_OFFERED: i32 = -1073727218i32; +pub const EVENT_BRIDGE_INIT_MALLOC_FAILED: i32 = -1073727213i32; +pub const EVENT_BRIDGE_MINIPORT_INIT_FAILED: i32 = -1073727219i32; +pub const EVENT_BRIDGE_MINIPORT_REGISTER_FAILED: i32 = -1073727222i32; +pub const EVENT_BRIDGE_MINIPROT_DEVNAME_MISSING: i32 = -1073727223i32; +pub const EVENT_BRIDGE_NO_BRIDGE_MAC_ADDR: i32 = -1073727220i32; +pub const EVENT_BRIDGE_PACKET_POOL_CREATION_FAILED: i32 = -1073727215i32; +pub const EVENT_BRIDGE_PROTOCOL_REGISTER_FAILED: i32 = -1073727224i32; +pub const EVENT_BRIDGE_THREAD_CREATION_FAILED: i32 = -1073727217i32; +pub const EVENT_BRIDGE_THREAD_REF_FAILED: i32 = -1073727216i32; +pub const EVENT_BROWSER_BACKUP_STOPPED: i32 = -1073733792i32; +pub const EVENT_BROWSER_DEPENDANT_SERVICE_FAILED: i32 = -1073733807i32; +pub const EVENT_BROWSER_DOMAIN_LIST_FAILED: i32 = -2147475626i32; +pub const EVENT_BROWSER_DOMAIN_LIST_RETRIEVED: i32 = 8026i32; +pub const EVENT_BROWSER_ELECTION_SENT_LANMAN_NT_STARTED: i32 = 1073749839i32; +pub const EVENT_BROWSER_ELECTION_SENT_LANMAN_NT_STOPPED: i32 = 1073749857i32; +pub const EVENT_BROWSER_ELECTION_SENT_ROLE_CHANGED: i32 = 1073749859i32; +pub const EVENT_BROWSER_GETBLIST_RECEIVED_NOT_MASTER: i32 = -1073733790i32; +pub const EVENT_BROWSER_ILLEGAL_CONFIG: i32 = -2147475625i32; +pub const EVENT_BROWSER_MASTER_PROMOTION_FAILED: i32 = -1073733815i32; +pub const EVENT_BROWSER_MASTER_PROMOTION_FAILED_NO_MASTER: i32 = -1073733804i32; +pub const EVENT_BROWSER_MASTER_PROMOTION_FAILED_STOPPING: i32 = -1073733805i32; +pub const EVENT_BROWSER_NOT_STARTED_IPX_CONFIG_MISMATCH: i32 = -1073733788i32; +pub const EVENT_BROWSER_OTHERDOMAIN_ADD_FAILED: i32 = -1073733813i32; +pub const EVENT_BROWSER_ROLE_CHANGE_FAILED: i32 = -1073733816i32; +pub const EVENT_BROWSER_SERVER_LIST_FAILED: i32 = -2147475627i32; +pub const EVENT_BROWSER_SERVER_LIST_RETRIEVED: i32 = 8025i32; +pub const EVENT_BROWSER_STATUS_BITS_UPDATE_FAILED: i32 = -1073733817i32; +pub const EVENT_CALL_TO_FUNCTION_FAILED: i32 = -1073734819i32; +pub const EVENT_CALL_TO_FUNCTION_FAILED_II: i32 = -1073734818i32; +pub const EVENT_CIRCULAR_DEPENDENCY_AUTO: i32 = -1073734806i32; +pub const EVENT_CIRCULAR_DEPENDENCY_DEMAND: i32 = -1073734807i32; +pub const EVENT_COMMAND_NOT_INTERACTIVE: i32 = -1073733924i32; +pub const EVENT_COMMAND_START_FAILED: i32 = -1073733923i32; +pub const EVENT_CONNECTION_TIMEOUT: i32 = -1073734815i32; +pub const EVENT_ComputerNameChange: i32 = -2147477637i32; +pub const EVENT_DAV_REDIR_DELAYED_WRITE_FAILED: i32 = -2147468848i32; +pub const EVENT_DCOM_ASSERTION_FAILURE: i32 = -1073731812i32; +pub const EVENT_DCOM_COMPLUS_DISABLED: i32 = -1073731810i32; +pub const EVENT_DCOM_INVALID_ENDPOINT_DATA: i32 = -1073731811i32; +pub const EVENT_DEPEND_ON_LATER_GROUP: i32 = -1073734804i32; +pub const EVENT_DEPEND_ON_LATER_SERVICE: i32 = -1073734805i32; +pub const EVENT_DNSAPI_DEREGISTRATION_FAILED_NOTSUPP: i32 = -2147472466i32; +pub const EVENT_DNSAPI_DEREGISTRATION_FAILED_NOTSUPP_PRIMARY_DN: i32 = -2147472454i32; +pub const EVENT_DNSAPI_DEREGISTRATION_FAILED_OTHER: i32 = -2147472463i32; +pub const EVENT_DNSAPI_DEREGISTRATION_FAILED_OTHER_PRIMARY_DN: i32 = -2147472451i32; +pub const EVENT_DNSAPI_DEREGISTRATION_FAILED_REFUSED: i32 = -2147472465i32; +pub const EVENT_DNSAPI_DEREGISTRATION_FAILED_REFUSED_PRIMARY_DN: i32 = -2147472453i32; +pub const EVENT_DNSAPI_DEREGISTRATION_FAILED_SECURITY: i32 = -2147472464i32; +pub const EVENT_DNSAPI_DEREGISTRATION_FAILED_SECURITY_PRIMARY_DN: i32 = -2147472452i32; +pub const EVENT_DNSAPI_DEREGISTRATION_FAILED_SERVERFAIL: i32 = -2147472467i32; +pub const EVENT_DNSAPI_DEREGISTRATION_FAILED_SERVERFAIL_PRIMARY_DN: i32 = -2147472455i32; +pub const EVENT_DNSAPI_DEREGISTRATION_FAILED_TIMEOUT: i32 = -2147472468i32; +pub const EVENT_DNSAPI_DEREGISTRATION_FAILED_TIMEOUT_PRIMARY_DN: i32 = -2147472456i32; +pub const EVENT_DNSAPI_PTR_DEREGISTRATION_FAILED_NOTSUPP: i32 = -2147472460i32; +pub const EVENT_DNSAPI_PTR_DEREGISTRATION_FAILED_OTHER: i32 = -2147472457i32; +pub const EVENT_DNSAPI_PTR_DEREGISTRATION_FAILED_REFUSED: i32 = -2147472459i32; +pub const EVENT_DNSAPI_PTR_DEREGISTRATION_FAILED_SECURITY: i32 = -2147472458i32; +pub const EVENT_DNSAPI_PTR_DEREGISTRATION_FAILED_SERVERFAIL: i32 = -2147472461i32; +pub const EVENT_DNSAPI_PTR_DEREGISTRATION_FAILED_TIMEOUT: i32 = -2147472462i32; +pub const EVENT_DNSAPI_PTR_REGISTRATION_FAILED_NOTSUPP: i32 = -2147472490i32; +pub const EVENT_DNSAPI_PTR_REGISTRATION_FAILED_OTHER: i32 = -2147472487i32; +pub const EVENT_DNSAPI_PTR_REGISTRATION_FAILED_REFUSED: i32 = -2147472489i32; +pub const EVENT_DNSAPI_PTR_REGISTRATION_FAILED_SECURITY: i32 = -2147472488i32; +pub const EVENT_DNSAPI_PTR_REGISTRATION_FAILED_SERVERFAIL: i32 = -2147472491i32; +pub const EVENT_DNSAPI_PTR_REGISTRATION_FAILED_TIMEOUT: i32 = -2147472492i32; +pub const EVENT_DNSAPI_REGISTERED_ADAPTER: i32 = 1073753024i32; +pub const EVENT_DNSAPI_REGISTERED_ADAPTER_PRIMARY_DN: i32 = 1073753026i32; +pub const EVENT_DNSAPI_REGISTERED_PTR: i32 = 1073753025i32; +pub const EVENT_DNSAPI_REGISTRATION_FAILED_NOTSUPP: i32 = -2147472496i32; +pub const EVENT_DNSAPI_REGISTRATION_FAILED_NOTSUPP_PRIMARY_DN: i32 = -2147472484i32; +pub const EVENT_DNSAPI_REGISTRATION_FAILED_OTHER: i32 = -2147472493i32; +pub const EVENT_DNSAPI_REGISTRATION_FAILED_OTHER_PRIMARY_DN: i32 = -2147472481i32; +pub const EVENT_DNSAPI_REGISTRATION_FAILED_REFUSED: i32 = -2147472495i32; +pub const EVENT_DNSAPI_REGISTRATION_FAILED_REFUSED_PRIMARY_DN: i32 = -2147472483i32; +pub const EVENT_DNSAPI_REGISTRATION_FAILED_SECURITY: i32 = -2147472494i32; +pub const EVENT_DNSAPI_REGISTRATION_FAILED_SECURITY_PRIMARY_DN: i32 = -2147472482i32; +pub const EVENT_DNSAPI_REGISTRATION_FAILED_SERVERFAIL: i32 = -2147472497i32; +pub const EVENT_DNSAPI_REGISTRATION_FAILED_SERVERFAIL_PRIMARY_DN: i32 = -2147472485i32; +pub const EVENT_DNSAPI_REGISTRATION_FAILED_TIMEOUT: i32 = -2147472498i32; +pub const EVENT_DNSAPI_REGISTRATION_FAILED_TIMEOUT_PRIMARY_DN: i32 = -2147472486i32; +pub const EVENT_DNSDomainNameChange: i32 = -2147477636i32; +pub const EVENT_DNS_CACHE_NETWORK_PERF_WARNING: i32 = -2147472598i32; +pub const EVENT_DNS_CACHE_START_FAILURE_LOW_MEMORY: i32 = -1073730817i32; +pub const EVENT_DNS_CACHE_START_FAILURE_NO_CONTROL: i32 = -1073730822i32; +pub const EVENT_DNS_CACHE_START_FAILURE_NO_DLL: i32 = -1073730824i32; +pub const EVENT_DNS_CACHE_START_FAILURE_NO_DONE_EVENT: i32 = -1073730821i32; +pub const EVENT_DNS_CACHE_START_FAILURE_NO_ENTRY: i32 = -1073730823i32; +pub const EVENT_DNS_CACHE_START_FAILURE_NO_RPC: i32 = -1073730820i32; +pub const EVENT_DNS_CACHE_START_FAILURE_NO_SHUTDOWN_NOTIFY: i32 = -1073730819i32; +pub const EVENT_DNS_CACHE_START_FAILURE_NO_UPDATE: i32 = -1073730818i32; +pub const EVENT_DNS_CACHE_UNABLE_TO_REACH_SERVER_WARNING: i32 = -2147472597i32; +pub const EVENT_EQOS_ERROR_MACHINE_POLICY_KEYNAME_SIZE_ZERO: i32 = -1073725118i32; +pub const EVENT_EQOS_ERROR_MACHINE_POLICY_KEYNAME_TOO_LONG: i32 = -1073725120i32; +pub const EVENT_EQOS_ERROR_MACHINE_POLICY_REFERESH: i32 = -1073725124i32; +pub const EVENT_EQOS_ERROR_OPENING_MACHINE_POLICY_ROOT_KEY: i32 = -1073725122i32; +pub const EVENT_EQOS_ERROR_OPENING_MACHINE_POLICY_SUBKEY: i32 = -1073725116i32; +pub const EVENT_EQOS_ERROR_OPENING_USER_POLICY_ROOT_KEY: i32 = -1073725121i32; +pub const EVENT_EQOS_ERROR_OPENING_USER_POLICY_SUBKEY: i32 = -1073725115i32; +pub const EVENT_EQOS_ERROR_PROCESSING_MACHINE_POLICY_FIELD: i32 = -1073725114i32; +pub const EVENT_EQOS_ERROR_PROCESSING_USER_POLICY_FIELD: i32 = -1073725113i32; +pub const EVENT_EQOS_ERROR_SETTING_APP_MARKING: i32 = -1073725111i32; +pub const EVENT_EQOS_ERROR_SETTING_TCP_AUTOTUNING: i32 = -1073725112i32; +pub const EVENT_EQOS_ERROR_USER_POLICY_KEYNAME_SIZE_ZERO: i32 = -1073725117i32; +pub const EVENT_EQOS_ERROR_USER_POLICY_KEYNAME_TOO_LONG: i32 = -1073725119i32; +pub const EVENT_EQOS_ERROR_USER_POLICY_REFERESH: i32 = -1073725123i32; +pub const EVENT_EQOS_INFO_APP_MARKING_ALLOWED: i32 = 1073758335i32; +pub const EVENT_EQOS_INFO_APP_MARKING_IGNORED: i32 = 1073758334i32; +pub const EVENT_EQOS_INFO_APP_MARKING_NOT_CONFIGURED: i32 = 1073758333i32; +pub const EVENT_EQOS_INFO_LOCAL_SETTING_DONT_USE_NLA: i32 = 1073758336i32; +pub const EVENT_EQOS_INFO_MACHINE_POLICY_REFRESH_NO_CHANGE: i32 = 1073758324i32; +pub const EVENT_EQOS_INFO_MACHINE_POLICY_REFRESH_WITH_CHANGE: i32 = 1073758325i32; +pub const EVENT_EQOS_INFO_TCP_AUTOTUNING_HIGHLY_RESTRICTED: i32 = 1073758330i32; +pub const EVENT_EQOS_INFO_TCP_AUTOTUNING_NORMAL: i32 = 1073758332i32; +pub const EVENT_EQOS_INFO_TCP_AUTOTUNING_NOT_CONFIGURED: i32 = 1073758328i32; +pub const EVENT_EQOS_INFO_TCP_AUTOTUNING_OFF: i32 = 1073758329i32; +pub const EVENT_EQOS_INFO_TCP_AUTOTUNING_RESTRICTED: i32 = 1073758331i32; +pub const EVENT_EQOS_INFO_USER_POLICY_REFRESH_NO_CHANGE: i32 = 1073758326i32; +pub const EVENT_EQOS_INFO_USER_POLICY_REFRESH_WITH_CHANGE: i32 = 1073758327i32; +pub const EVENT_EQOS_URL_QOS_APPLICATION_CONFLICT: i32 = 1073758337i32; +pub const EVENT_EQOS_WARNING_MACHINE_POLICY_CONFLICT: i32 = -2147467040i32; +pub const EVENT_EQOS_WARNING_MACHINE_POLICY_NO_FULLPATH_APPNAME: i32 = -2147467038i32; +pub const EVENT_EQOS_WARNING_MACHINE_POLICY_PROFILE_NOT_SPECIFIED: i32 = -2147467044i32; +pub const EVENT_EQOS_WARNING_MACHINE_POLICY_QUOTA_EXCEEDED: i32 = -2147467042i32; +pub const EVENT_EQOS_WARNING_MACHINE_POLICY_VERSION: i32 = -2147467046i32; +pub const EVENT_EQOS_WARNING_TEST_1: i32 = -2147467048i32; +pub const EVENT_EQOS_WARNING_TEST_2: i32 = -2147467047i32; +pub const EVENT_EQOS_WARNING_USER_POLICY_CONFLICT: i32 = -2147467039i32; +pub const EVENT_EQOS_WARNING_USER_POLICY_NO_FULLPATH_APPNAME: i32 = -2147467037i32; +pub const EVENT_EQOS_WARNING_USER_POLICY_PROFILE_NOT_SPECIFIED: i32 = -2147467043i32; +pub const EVENT_EQOS_WARNING_USER_POLICY_QUOTA_EXCEEDED: i32 = -2147467041i32; +pub const EVENT_EQOS_WARNING_USER_POLICY_VERSION: i32 = -2147467045i32; +pub const EVENT_EventLogProductInfo: i32 = -2147477639i32; +pub const EVENT_EventlogAbnormalShutdown: i32 = -2147477640i32; +pub const EVENT_EventlogStarted: i32 = -2147477643i32; +pub const EVENT_EventlogStopped: i32 = -2147477642i32; +pub const EVENT_EventlogUptime: i32 = -2147477635i32; +pub const EVENT_FIRST_LOGON_FAILED: i32 = -1073734811i32; +pub const EVENT_FIRST_LOGON_FAILED_II: i32 = -1073734786i32; +pub const EVENT_FRS_ACCESS_CHECKS_DISABLED: i32 = -2147470131i32; +pub const EVENT_FRS_ACCESS_CHECKS_FAILED_UNKNOWN: i32 = -1073728305i32; +pub const EVENT_FRS_ACCESS_CHECKS_FAILED_USER: i32 = -2147470130i32; +pub const EVENT_FRS_ASSERT: i32 = -1073728318i32; +pub const EVENT_FRS_BAD_REG_DATA: i32 = -2147470101i32; +pub const EVENT_FRS_CANNOT_COMMUNICATE: i32 = -1073728314i32; +pub const EVENT_FRS_CANNOT_CREATE_UUID: i32 = -1073728300i32; +pub const EVENT_FRS_CANNOT_START_BACKUP_RESTORE_IN_PROGRESS: i32 = -1073728303i32; +pub const EVENT_FRS_CANT_OPEN_PREINSTALL: i32 = -1073728273i32; +pub const EVENT_FRS_CANT_OPEN_STAGE: i32 = -1073728274i32; +pub const EVENT_FRS_DATABASE_SPACE: i32 = -1073728313i32; +pub const EVENT_FRS_DISK_WRITE_CACHE_ENABLED: i32 = -2147470136i32; +pub const EVENT_FRS_DS_POLL_ERROR_SUMMARY: i32 = -2147470086i32; +pub const EVENT_FRS_DUPLICATE_IN_CXTION: i32 = -1073728266i32; +pub const EVENT_FRS_DUPLICATE_IN_CXTION_SYSVOL: i32 = -1073728267i32; +pub const EVENT_FRS_ERROR: i32 = -1073728324i32; +pub const EVENT_FRS_ERROR_REPLICA_SET_DELETED: i32 = -2147470088i32; +pub const EVENT_FRS_HUGE_FILE: i32 = -2147470125i32; +pub const EVENT_FRS_IN_ERROR_STATE: i32 = -1073728269i32; +pub const EVENT_FRS_JET_1414: i32 = -1073728311i32; +pub const EVENT_FRS_JOIN_FAIL_TIME_SKEW: i32 = -1073728276i32; +pub const EVENT_FRS_LONG_JOIN: i32 = -2147470140i32; +pub const EVENT_FRS_LONG_JOIN_DONE: i32 = -2147470139i32; +pub const EVENT_FRS_MOVED_PREEXISTING: i32 = -2147470128i32; +pub const EVENT_FRS_NO_DNS_ATTRIBUTE: i32 = -2147470123i32; +pub const EVENT_FRS_NO_SID: i32 = -1073728298i32; +pub const EVENT_FRS_OVERLAPS_LOGGING: i32 = -1073728283i32; +pub const EVENT_FRS_OVERLAPS_OTHER_STAGE: i32 = -1073728279i32; +pub const EVENT_FRS_OVERLAPS_ROOT: i32 = -1073728280i32; +pub const EVENT_FRS_OVERLAPS_STAGE: i32 = -1073728281i32; +pub const EVENT_FRS_OVERLAPS_WORKING: i32 = -1073728282i32; +pub const EVENT_FRS_PREPARE_ROOT_FAILED: i32 = -1073728278i32; +pub const EVENT_FRS_REPLICA_IN_JRNL_WRAP_ERROR: i32 = -1073728263i32; +pub const EVENT_FRS_REPLICA_NO_ROOT_CHANGE: i32 = -1073728268i32; +pub const EVENT_FRS_REPLICA_SET_CREATE_FAIL: i32 = -1073728272i32; +pub const EVENT_FRS_REPLICA_SET_CREATE_OK: i32 = 1073755377i32; +pub const EVENT_FRS_REPLICA_SET_CXTIONS: i32 = 1073755378i32; +pub const EVENT_FRS_RMTCO_TIME_SKEW: i32 = -1073728275i32; +pub const EVENT_FRS_ROOT_HAS_MOVED: i32 = -1073728265i32; +pub const EVENT_FRS_ROOT_NOT_VALID: i32 = -1073728285i32; +pub const EVENT_FRS_STAGE_NOT_VALID: i32 = -1073728284i32; +pub const EVENT_FRS_STAGING_AREA_FULL: i32 = -2147470126i32; +pub const EVENT_FRS_STARTING: i32 = 1073755325i32; +pub const EVENT_FRS_STOPPED: i32 = 1073755327i32; +pub const EVENT_FRS_STOPPED_ASSERT: i32 = -1073728319i32; +pub const EVENT_FRS_STOPPED_FORCE: i32 = -1073728320i32; +pub const EVENT_FRS_STOPPING: i32 = 1073755326i32; +pub const EVENT_FRS_SYSVOL_NOT_READY: i32 = -2147470134i32; +pub const EVENT_FRS_SYSVOL_NOT_READY_PRIMARY: i32 = -2147470133i32; +pub const EVENT_FRS_SYSVOL_READY: i32 = 1073755340i32; +pub const EVENT_FRS_VOLUME_NOT_SUPPORTED: i32 = -1073728317i32; +pub const EVENT_INVALID_DRIVER_DEPENDENCY: i32 = -1073734809i32; +pub const EVENT_IPX_CREATE_DEVICE: i32 = -1073732318i32; +pub const EVENT_IPX_ILLEGAL_CONFIG: i32 = -2147474145i32; +pub const EVENT_IPX_INTERNAL_NET_INVALID: i32 = -1073732320i32; +pub const EVENT_IPX_NEW_DEFAULT_TYPE: i32 = 1073751325i32; +pub const EVENT_IPX_NO_ADAPTERS: i32 = -1073732317i32; +pub const EVENT_IPX_NO_FRAME_TYPES: i32 = -1073732319i32; +pub const EVENT_IPX_SAP_ANNOUNCE: i32 = -2147474146i32; +pub const EVENT_NBT_BAD_BACKUP_WINS_ADDR: i32 = -2147479344i32; +pub const EVENT_NBT_BAD_PRIMARY_WINS_ADDR: i32 = -2147479343i32; +pub const EVENT_NBT_CREATE_ADDRESS: i32 = -1073737517i32; +pub const EVENT_NBT_CREATE_CONNECTION: i32 = -1073737516i32; +pub const EVENT_NBT_CREATE_DEVICE: i32 = -1073737513i32; +pub const EVENT_NBT_CREATE_DRIVER: i32 = -1073737524i32; +pub const EVENT_NBT_DUPLICATE_NAME: i32 = -1073737505i32; +pub const EVENT_NBT_DUPLICATE_NAME_ERROR: i32 = -1073737503i32; +pub const EVENT_NBT_NAME_RELEASE: i32 = -1073737504i32; +pub const EVENT_NBT_NAME_SERVER_ADDRS: i32 = -1073737518i32; +pub const EVENT_NBT_NON_OS_INIT: i32 = -1073737515i32; +pub const EVENT_NBT_NO_BACKUP_WINS: i32 = -2147479346i32; +pub const EVENT_NBT_NO_DEVICES: i32 = -2147479336i32; +pub const EVENT_NBT_NO_RESOURCES: i32 = -1073737502i32; +pub const EVENT_NBT_NO_WINS: i32 = -2147479345i32; +pub const EVENT_NBT_OPEN_REG_LINKAGE: i32 = -1073737511i32; +pub const EVENT_NBT_OPEN_REG_NAMESERVER: i32 = -2147479332i32; +pub const EVENT_NBT_OPEN_REG_PARAMS: i32 = -1073737523i32; +pub const EVENT_NBT_READ_BIND: i32 = -1073737510i32; +pub const EVENT_NBT_READ_EXPORT: i32 = -1073737509i32; +pub const EVENT_NBT_TIMERS: i32 = -1073737514i32; +pub const EVENT_NDIS_ADAPTER_CHECK_ERROR: i32 = -1073736793i32; +pub const EVENT_NDIS_ADAPTER_DISABLED: i32 = -2147478634i32; +pub const EVENT_NDIS_ADAPTER_NOT_FOUND: i32 = -1073736821i32; +pub const EVENT_NDIS_BAD_IO_BASE_ADDRESS: i32 = -1073736812i32; +pub const EVENT_NDIS_BAD_VERSION: i32 = -1073736818i32; +pub const EVENT_NDIS_CABLE_DISCONNECTED_ERROR: i32 = -2147478615i32; +pub const EVENT_NDIS_DMA_CONFLICT: i32 = -2147478629i32; +pub const EVENT_NDIS_DRIVER_FAILURE: i32 = -1073736819i32; +pub const EVENT_NDIS_HARDWARE_FAILURE: i32 = -1073736822i32; +pub const EVENT_NDIS_INTERRUPT_CONFLICT: i32 = -2147478630i32; +pub const EVENT_NDIS_INTERRUPT_CONNECT: i32 = -1073736820i32; +pub const EVENT_NDIS_INVALID_DOWNLOAD_FILE_ERROR: i32 = -1073736804i32; +pub const EVENT_NDIS_INVALID_VALUE_FROM_ADAPTER: i32 = -1073736814i32; +pub const EVENT_NDIS_IO_PORT_CONFLICT: i32 = -2147478633i32; +pub const EVENT_NDIS_LOBE_FAILUE_ERROR: i32 = -2147478621i32; +pub const EVENT_NDIS_MAXFRAMESIZE_ERROR: i32 = -2147478625i32; +pub const EVENT_NDIS_MAXINTERNALBUFS_ERROR: i32 = -2147478624i32; +pub const EVENT_NDIS_MAXMULTICAST_ERROR: i32 = -2147478623i32; +pub const EVENT_NDIS_MAXRECEIVES_ERROR: i32 = -2147478627i32; +pub const EVENT_NDIS_MAXTRANSMITS_ERROR: i32 = -2147478626i32; +pub const EVENT_NDIS_MEMORY_CONFLICT: i32 = -2147478631i32; +pub const EVENT_NDIS_MISSING_CONFIGURATION_PARAMETER: i32 = -1073736813i32; +pub const EVENT_NDIS_NETWORK_ADDRESS: i32 = -1073736816i32; +pub const EVENT_NDIS_OUT_OF_RESOURCE: i32 = -1073736823i32; +pub const EVENT_NDIS_PORT_OR_DMA_CONFLICT: i32 = -2147478632i32; +pub const EVENT_NDIS_PRODUCTID_ERROR: i32 = -2147478622i32; +pub const EVENT_NDIS_RECEIVE_SPACE_SMALL: i32 = 1073746837i32; +pub const EVENT_NDIS_REMOVE_RECEIVED_ERROR: i32 = -2147478619i32; +pub const EVENT_NDIS_RESET_FAILURE_CORRECTION: i32 = -2147478614i32; +pub const EVENT_NDIS_RESET_FAILURE_ERROR: i32 = -2147478616i32; +pub const EVENT_NDIS_RESOURCE_CONFLICT: i32 = -1073736824i32; +pub const EVENT_NDIS_SIGNAL_LOSS_ERROR: i32 = -2147478620i32; +pub const EVENT_NDIS_TIMEOUT: i32 = -2147478641i32; +pub const EVENT_NDIS_TOKEN_RING_CORRECTION: i32 = 1073746854i32; +pub const EVENT_NDIS_UNSUPPORTED_CONFIGURATION: i32 = -1073736815i32; +pub const EVENT_PS_ADMISSIONCONTROL_OVERFLOW: i32 = -2147469537i32; +pub const EVENT_PS_BAD_BESTEFFORT_LIMIT: i32 = -2147469548i32; +pub const EVENT_PS_BINDING_FAILED: i32 = -1073727720i32; +pub const EVENT_PS_GPC_REGISTER_FAILED: i32 = -1073727824i32; +pub const EVENT_PS_INIT_DEVICE_FAILED: i32 = -1073727717i32; +pub const EVENT_PS_MISSING_ADAPTER_REGISTRY_DATA: i32 = -1073727719i32; +pub const EVENT_PS_NETWORK_ADDRESS_FAIL: i32 = -1073727712i32; +pub const EVENT_PS_NO_RESOURCES_FOR_INIT: i32 = -1073727823i32; +pub const EVENT_PS_QUERY_OID_GEN_LINK_SPEED: i32 = -1073727721i32; +pub const EVENT_PS_QUERY_OID_GEN_MAXIMUM_FRAME_SIZE: i32 = -1073727723i32; +pub const EVENT_PS_QUERY_OID_GEN_MAXIMUM_TOTAL_SIZE: i32 = -1073727722i32; +pub const EVENT_PS_REGISTER_ADDRESS_FAMILY_FAILED: i32 = -1073727718i32; +pub const EVENT_PS_REGISTER_MINIPORT_FAILED: i32 = -1073727821i32; +pub const EVENT_PS_REGISTER_PROTOCOL_FAILED: i32 = -1073727822i32; +pub const EVENT_PS_RESOURCE_POOL: i32 = -1073727714i32; +pub const EVENT_PS_WAN_LIMITED_BESTEFFORT: i32 = -2147469539i32; +pub const EVENT_PS_WMI_INSTANCE_NAME_FAILED: i32 = -1073727716i32; +pub const EVENT_RDR_AT_THREAD_MAX: i32 = -2147480622i32; +pub const EVENT_RDR_CANT_BIND_TRANSPORT: i32 = -2147480616i32; +pub const EVENT_RDR_CANT_BUILD_SMB_HEADER: i32 = -2147480613i32; +pub const EVENT_RDR_CANT_CREATE_DEVICE: i32 = -2147480646i32; +pub const EVENT_RDR_CANT_CREATE_THREAD: i32 = -2147480645i32; +pub const EVENT_RDR_CANT_GET_SECURITY_CONTEXT: i32 = -2147480614i32; +pub const EVENT_RDR_CANT_READ_REGISTRY: i32 = -2147480621i32; +pub const EVENT_RDR_CANT_REGISTER_ADDRESS: i32 = -2147480615i32; +pub const EVENT_RDR_CANT_SET_THREAD: i32 = -2147480644i32; +pub const EVENT_RDR_CLOSE_BEHIND: i32 = -2147480637i32; +pub const EVENT_RDR_CONNECTION: i32 = -2147480629i32; +pub const EVENT_RDR_CONNECTION_REFERENCE: i32 = -2147480633i32; +pub const EVENT_RDR_CONTEXTS: i32 = -2147480624i32; +pub const EVENT_RDR_DELAYED_SET_ATTRIBUTES_FAILED: i32 = -2147480618i32; +pub const EVENT_RDR_DELETEONCLOSE_FAILED: i32 = -2147480617i32; +pub const EVENT_RDR_DISPOSITION: i32 = -2147480625i32; +pub const EVENT_RDR_ENCRYPT: i32 = -2147480630i32; +pub const EVENT_RDR_FAILED_UNLOCK: i32 = -2147480639i32; +pub const EVENT_RDR_INVALID_LOCK_REPLY: i32 = -2147480641i32; +pub const EVENT_RDR_INVALID_OPLOCK: i32 = -2147480634i32; +pub const EVENT_RDR_INVALID_REPLY: i32 = -2147480643i32; +pub const EVENT_RDR_INVALID_SMB: i32 = -2147480642i32; +pub const EVENT_RDR_MAXCMDS: i32 = -2147480627i32; +pub const EVENT_RDR_OPLOCK_SMB: i32 = -2147480626i32; +pub const EVENT_RDR_PRIMARY_TRANSPORT_CONNECT_FAILED: i32 = -2147480619i32; +pub const EVENT_RDR_RESOURCE_SHORTAGE: i32 = -2147480647i32; +pub const EVENT_RDR_SECURITY_SIGNATURE_MISMATCH: i32 = -2147480612i32; +pub const EVENT_RDR_SERVER_REFERENCE: i32 = -2147480632i32; +pub const EVENT_RDR_SMB_REFERENCE: i32 = -2147480631i32; +pub const EVENT_RDR_TIMEOUT: i32 = -2147480635i32; +pub const EVENT_RDR_TIMEZONE_BIAS_TOO_LARGE: i32 = -2147480620i32; +pub const EVENT_RDR_UNEXPECTED_ERROR: i32 = -2147480636i32; +pub const EVENT_RDR_WRITE_BEHIND_FLUSH_FAILED: i32 = -2147480623i32; +pub const EVENT_READFILE_TIMEOUT: i32 = -1073734814i32; +pub const EVENT_REVERTED_TO_LASTKNOWNGOOD: i32 = -1073734817i32; +pub const EVENT_RPCSS_ACTIVATION_ERROR: i32 = -1073731817i32; +pub const EVENT_RPCSS_CREATEDEBUGGERPROCESS_FAILURE: i32 = -1073731794i32; +pub const EVENT_RPCSS_CREATEPROCESS_FAILURE: i32 = -1073731824i32; +pub const EVENT_RPCSS_DEFAULT_LAUNCH_ACCESS_DENIED: i32 = -1073731821i32; +pub const EVENT_RPCSS_LAUNCH_ACCESS_DENIED: i32 = -1073731822i32; +pub const EVENT_RPCSS_REMOTE_SIDE_ERROR: i32 = -1073731818i32; +pub const EVENT_RPCSS_REMOTE_SIDE_ERROR_WITH_FILE: i32 = -1073731816i32; +pub const EVENT_RPCSS_REMOTE_SIDE_UNAVAILABLE: i32 = -1073731815i32; +pub const EVENT_RPCSS_RUNAS_CANT_LOGIN: i32 = -1073731820i32; +pub const EVENT_RPCSS_RUNAS_CREATEPROCESS_FAILURE: i32 = -1073731823i32; +pub const EVENT_RPCSS_SERVER_NOT_RESPONDING: i32 = -1073731813i32; +pub const EVENT_RPCSS_SERVER_START_TIMEOUT: i32 = -1073731814i32; +pub const EVENT_RPCSS_START_SERVICE_FAILURE: i32 = -1073731819i32; +pub const EVENT_RPCSS_STOP_SERVICE_FAILURE: i32 = -1073731795i32; +pub const EVENT_RUNNING_LASTKNOWNGOOD: i32 = -1073734797i32; +pub const EVENT_SCOPE_LABEL_TOO_LONG: i32 = -2147479331i32; +pub const EVENT_SCOPE_TOO_LONG: i32 = -2147479330i32; +pub const EVENT_SECOND_LOGON_FAILED: i32 = -1073734810i32; +pub const EVENT_SERVICE_CONFIG_BACKOUT_FAILED: i32 = -1073734787i32; +pub const EVENT_SERVICE_CONTROL_SUCCESS: i32 = 1073748859i32; +pub const EVENT_SERVICE_CRASH: i32 = -1073734793i32; +pub const EVENT_SERVICE_CRASH_NO_ACTION: i32 = -1073734790i32; +pub const EVENT_SERVICE_DIFFERENT_PID_CONNECTED: i32 = -2147476609i32; +pub const EVENT_SERVICE_EXIT_FAILED: i32 = -1073734801i32; +pub const EVENT_SERVICE_EXIT_FAILED_SPECIFIC: i32 = -1073734800i32; +pub const EVENT_SERVICE_LOGON_TYPE_NOT_GRANTED: i32 = -1073734783i32; +pub const EVENT_SERVICE_NOT_INTERACTIVE: i32 = -1073734794i32; +pub const EVENT_SERVICE_RECOVERY_FAILED: i32 = -1073734792i32; +pub const EVENT_SERVICE_SCESRV_FAILED: i32 = -1073734791i32; +pub const EVENT_SERVICE_SHUTDOWN_FAILED: i32 = -1073734781i32; +pub const EVENT_SERVICE_START_AT_BOOT_FAILED: i32 = -1073734799i32; +pub const EVENT_SERVICE_START_FAILED: i32 = -1073734824i32; +pub const EVENT_SERVICE_START_FAILED_GROUP: i32 = -1073734822i32; +pub const EVENT_SERVICE_START_FAILED_II: i32 = -1073734823i32; +pub const EVENT_SERVICE_START_FAILED_NONE: i32 = -1073734821i32; +pub const EVENT_SERVICE_START_HUNG: i32 = -1073734802i32; +pub const EVENT_SERVICE_START_TYPE_CHANGED: i32 = 1073748864i32; +pub const EVENT_SERVICE_STATUS_SUCCESS: i32 = 1073748860i32; +pub const EVENT_SERVICE_STOP_SUCCESS_WITH_REASON: i32 = 1073748866i32; +pub const EVENT_SEVERE_SERVICE_FAILED: i32 = -1073734803i32; +pub const EVENT_SRV_CANT_BIND_DUP_NAME: i32 = -1073739319i32; +pub const EVENT_SRV_CANT_BIND_TO_TRANSPORT: i32 = -2147481144i32; +pub const EVENT_SRV_CANT_CHANGE_DOMAIN_NAME: i32 = -2147481136i32; +pub const EVENT_SRV_CANT_CREATE_DEVICE: i32 = -1073739822i32; +pub const EVENT_SRV_CANT_CREATE_PROCESS: i32 = -1073739821i32; +pub const EVENT_SRV_CANT_CREATE_THREAD: i32 = -1073739820i32; +pub const EVENT_SRV_CANT_GROW_TABLE: i32 = -2147481639i32; +pub const EVENT_SRV_CANT_LOAD_DRIVER: i32 = -2147481140i32; +pub const EVENT_SRV_CANT_MAP_ERROR: i32 = -2147481138i32; +pub const EVENT_SRV_CANT_OPEN_NPFS: i32 = -1073739817i32; +pub const EVENT_SRV_CANT_RECREATE_SHARE: i32 = -2147481137i32; +pub const EVENT_SRV_CANT_START_SCAVENGER: i32 = -1073739814i32; +pub const EVENT_SRV_CANT_UNLOAD_DRIVER: i32 = -2147481139i32; +pub const EVENT_SRV_DISK_FULL: i32 = -2147481635i32; +pub const EVENT_SRV_DOS_ATTACK_DETECTED: i32 = -2147481623i32; +pub const EVENT_SRV_INVALID_REGISTRY_VALUE: i32 = -2147481142i32; +pub const EVENT_SRV_INVALID_REQUEST: i32 = -1073739818i32; +pub const EVENT_SRV_INVALID_SD: i32 = -2147481141i32; +pub const EVENT_SRV_IRP_STACK_SIZE: i32 = -1073739813i32; +pub const EVENT_SRV_KEY_NOT_CREATED: i32 = -1073739322i32; +pub const EVENT_SRV_KEY_NOT_FOUND: i32 = -1073739323i32; +pub const EVENT_SRV_NETWORK_ERROR: i32 = -2147481636i32; +pub const EVENT_SRV_NONPAGED_POOL_LIMIT: i32 = -1073739807i32; +pub const EVENT_SRV_NO_BLOCKING_IO: i32 = -2147481624i32; +pub const EVENT_SRV_NO_FREE_CONNECTIONS: i32 = -2147481626i32; +pub const EVENT_SRV_NO_FREE_RAW_WORK_ITEM: i32 = -2147481625i32; +pub const EVENT_SRV_NO_NONPAGED_POOL: i32 = -1073739805i32; +pub const EVENT_SRV_NO_PAGED_POOL: i32 = -1073739804i32; +pub const EVENT_SRV_NO_TRANSPORTS_BOUND: i32 = -1073739321i32; +pub const EVENT_SRV_NO_VIRTUAL_MEMORY: i32 = -1073739808i32; +pub const EVENT_SRV_NO_WORK_ITEM: i32 = -2147481627i32; +pub const EVENT_SRV_OUT_OF_WORK_ITEM_DOS: i32 = -2147481621i32; +pub const EVENT_SRV_PAGED_POOL_LIMIT: i32 = -1073739806i32; +pub const EVENT_SRV_RESOURCE_SHORTAGE: i32 = -1073739823i32; +pub const EVENT_SRV_SERVICE_FAILED: i32 = -1073739824i32; +pub const EVENT_SRV_TOO_MANY_DOS: i32 = -2147481622i32; +pub const EVENT_SRV_TXF_INIT_FAILED: i32 = -2147481135i32; +pub const EVENT_SRV_UNEXPECTED_DISC: i32 = -1073739819i32; +pub const EVENT_STREAMS_ALLOCB_FAILURE: i32 = -2147479647i32; +pub const EVENT_STREAMS_ALLOCB_FAILURE_CNT: i32 = -2147479646i32; +pub const EVENT_STREAMS_ESBALLOC_FAILURE: i32 = -2147479645i32; +pub const EVENT_STREAMS_ESBALLOC_FAILURE_CNT: i32 = -2147479644i32; +pub const EVENT_STREAMS_STRLOG: i32 = -1073737824i32; +pub const EVENT_TAKE_OWNERSHIP: i32 = -1073734796i32; +pub const EVENT_TCPIP6_STARTED: i32 = 1073744924i32; +pub const EVENT_TCPIP_ADAPTER_REG_FAILURE: i32 = -1073737633i32; +pub const EVENT_TCPIP_ADDRESS_CONFLICT1: i32 = -1073737626i32; +pub const EVENT_TCPIP_ADDRESS_CONFLICT2: i32 = -1073737625i32; +pub const EVENT_TCPIP_AUTOCONFIGURED_ADDRESS_LIMIT_REACHED: i32 = -2147479444i32; +pub const EVENT_TCPIP_AUTOCONFIGURED_ROUTE_LIMIT_REACHED: i32 = -2147479443i32; +pub const EVENT_TCPIP_CREATE_DEVICE_FAILED: i32 = -1073737724i32; +pub const EVENT_TCPIP_DHCP_INIT_FAILED: i32 = -2147479458i32; +pub const EVENT_TCPIP_INTERFACE_BIND_FAILURE: i32 = -1073737617i32; +pub const EVENT_TCPIP_INVALID_ADDRESS: i32 = -1073737637i32; +pub const EVENT_TCPIP_INVALID_DEFAULT_GATEWAY: i32 = -2147479456i32; +pub const EVENT_TCPIP_INVALID_MASK: i32 = -1073737636i32; +pub const EVENT_TCPIP_IPV4_UNINSTALLED: i32 = 1073746027i32; +pub const EVENT_TCPIP_IP_INIT_FAILED: i32 = -1073737628i32; +pub const EVENT_TCPIP_MEDIA_CONNECT: i32 = 1073746025i32; +pub const EVENT_TCPIP_MEDIA_DISCONNECT: i32 = 1073746026i32; +pub const EVENT_TCPIP_NO_ADAPTER_RESOURCES: i32 = -1073737635i32; +pub const EVENT_TCPIP_NO_ADDRESS_LIST: i32 = -1073737631i32; +pub const EVENT_TCPIP_NO_BINDINGS: i32 = -1073737629i32; +pub const EVENT_TCPIP_NO_MASK: i32 = -1073737638i32; +pub const EVENT_TCPIP_NO_MASK_LIST: i32 = -1073737630i32; +pub const EVENT_TCPIP_NO_RESOURCES_FOR_INIT: i32 = -1073737723i32; +pub const EVENT_TCPIP_NTE_CONTEXT_LIST_FAILURE: i32 = -1073737624i32; +pub const EVENT_TCPIP_OUT_OF_ORDER_FRAGMENTS_EXCEEDED: i32 = -2147479442i32; +pub const EVENT_TCPIP_PCF_CLEAR_FILTER_FAILURE: i32 = -1073737530i32; +pub const EVENT_TCPIP_PCF_MISSING_CAPABILITY: i32 = -2147479357i32; +pub const EVENT_TCPIP_PCF_MULTICAST_OID_ISSUE: i32 = -2147479358i32; +pub const EVENT_TCPIP_PCF_NO_ARP_FILTER: i32 = -2147479355i32; +pub const EVENT_TCPIP_PCF_SET_FILTER_FAILURE: i32 = -2147479356i32; +pub const EVENT_TCPIP_TCP_CONNECTIONS_PERF_IMPACTED: i32 = -2147479418i32; +pub const EVENT_TCPIP_TCP_CONNECT_LIMIT_REACHED: i32 = -2147479422i32; +pub const EVENT_TCPIP_TCP_GLOBAL_EPHEMERAL_PORT_SPACE_EXHAUSTED: i32 = -2147479417i32; +pub const EVENT_TCPIP_TCP_INIT_FAILED: i32 = -1073737599i32; +pub const EVENT_TCPIP_TCP_MPP_ATTACKS_DETECTED: i32 = -2147479419i32; +pub const EVENT_TCPIP_TCP_TIME_WAIT_COLLISION: i32 = -2147479421i32; +pub const EVENT_TCPIP_TCP_WSD_WS_RESTRICTED: i32 = -2147479420i32; +pub const EVENT_TCPIP_TOO_MANY_GATEWAYS: i32 = -2147479451i32; +pub const EVENT_TCPIP_TOO_MANY_NETS: i32 = -1073737639i32; +pub const EVENT_TCPIP_UDP_GLOBAL_EPHEMERAL_PORT_SPACE_EXHAUSTED: i32 = -2147479382i32; +pub const EVENT_TCPIP_UDP_LIMIT_REACHED: i32 = -2147479383i32; +pub const EVENT_TRANSACT_INVALID: i32 = -1073734812i32; +pub const EVENT_TRANSACT_TIMEOUT: i32 = -1073734813i32; +pub const EVENT_TRANSPORT_ADAPTER_NOT_FOUND: i32 = -1073732818i32; +pub const EVENT_TRANSPORT_BAD_PROTOCOL: i32 = 1073750835i32; +pub const EVENT_TRANSPORT_BINDING_FAILED: i32 = -1073732819i32; +pub const EVENT_TRANSPORT_QUERY_OID_FAILED: i32 = -1073732816i32; +pub const EVENT_TRANSPORT_REGISTER_FAILED: i32 = -1073732820i32; +pub const EVENT_TRANSPORT_RESOURCE_LIMIT: i32 = -2147474646i32; +pub const EVENT_TRANSPORT_RESOURCE_POOL: i32 = -2147474647i32; +pub const EVENT_TRANSPORT_RESOURCE_SPECIFIC: i32 = -2147474645i32; +pub const EVENT_TRANSPORT_SET_OID_FAILED: i32 = -1073732817i32; +pub const EVENT_TRANSPORT_TOO_MANY_LINKS: i32 = 1073750834i32; +pub const EVENT_TRANSPORT_TRANSFER_DATA: i32 = 1073750833i32; +pub const EVENT_TRK_INTERNAL_ERROR: i32 = -1073729324i32; +pub const EVENT_TRK_SERVICE_CORRUPT_LOG: i32 = -1073729321i32; +pub const EVENT_TRK_SERVICE_DUPLICATE_VOLIDS: i32 = 1073754331i32; +pub const EVENT_TRK_SERVICE_MOVE_QUOTA_EXCEEDED: i32 = -2147471140i32; +pub const EVENT_TRK_SERVICE_START_FAILURE: i32 = -1073729322i32; +pub const EVENT_TRK_SERVICE_START_SUCCESS: i32 = 1073754325i32; +pub const EVENT_TRK_SERVICE_VOLUME_CLAIM: i32 = 1073754330i32; +pub const EVENT_TRK_SERVICE_VOLUME_CREATE: i32 = 1073754329i32; +pub const EVENT_TRK_SERVICE_VOL_QUOTA_EXCEEDED: i32 = -2147471144i32; +pub const EVENT_UP_DRIVER_ON_MP: i32 = -1073735724i32; +pub const EVENT_WEBCLIENT_CLOSE_DELETE_FAILED: i32 = -2147468746i32; +pub const EVENT_WEBCLIENT_CLOSE_PROPPATCH_FAILED: i32 = -2147468745i32; +pub const EVENT_WEBCLIENT_CLOSE_PUT_FAILED: i32 = -2147468747i32; +pub const EVENT_WEBCLIENT_SETINFO_PROPPATCH_FAILED: i32 = -2147468744i32; +pub const EVENT_WINNAT_SESSION_LIMIT_REACHED: i32 = -2147466648i32; +pub const EVENT_WINSOCK_CLOSESOCKET_STUCK: i32 = -2147467646i32; +pub const EVENT_WINSOCK_TDI_FILTER_DETECTED: i32 = -2147467647i32; +pub const EVENT_WSK_OWNINGTHREAD_PARAMETER_IGNORED: i32 = -1073725824i32; +pub const EVLEN: u32 = 16u32; +pub const EXTRA_EXIT_POINT: i32 = -1073727524i32; +pub const EXTRA_EXIT_POINT_DELETED: i32 = -1073727520i32; +pub const EXTRA_EXIT_POINT_NOT_DELETED: i32 = -1073727519i32; +pub const EXTRA_VOLUME: i32 = -1073727521i32; +pub const EXTRA_VOLUME_DELETED: i32 = -1073727514i32; +pub const EXTRA_VOLUME_NOT_DELETED: i32 = -1073727513i32; +pub const FILTER_INTERDOMAIN_TRUST_ACCOUNT: NET_USER_ENUM_FILTER_FLAGS = 8u32; +pub const FILTER_NORMAL_ACCOUNT: NET_USER_ENUM_FILTER_FLAGS = 2u32; +pub const FILTER_SERVER_TRUST_ACCOUNT: NET_USER_ENUM_FILTER_FLAGS = 32u32; +pub const FILTER_TEMP_DUPLICATE_ACCOUNT: NET_USER_ENUM_FILTER_FLAGS = 1u32; +pub const FILTER_WORKSTATION_TRUST_ACCOUNT: NET_USER_ENUM_FILTER_FLAGS = 16u32; +pub const GNLEN: u32 = 256u32; +pub const GROUPIDMASK: u32 = 32768u32; +pub const GROUP_ALL_PARMNUM: u32 = 0u32; +pub const GROUP_ATTRIBUTES_PARMNUM: u32 = 3u32; +pub const GROUP_COMMENT_PARMNUM: u32 = 2u32; +pub const GROUP_NAME_PARMNUM: u32 = 1u32; +pub const GROUP_SPECIALGRP_ADMINS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ADMINS"); +pub const GROUP_SPECIALGRP_GUESTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GUESTS"); +pub const GROUP_SPECIALGRP_LOCAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LOCAL"); +pub const GROUP_SPECIALGRP_USERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("USERS"); +pub const HARDWARE_ADDRESS_LENGTH: u32 = 6u32; +pub const HELP_MSG_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NETH"); +pub const INTERFACE_INFO_REVISION_1: u32 = 1u32; +pub const INVALID_TRACEID: u32 = 4294967295u32; +pub const IPX_PROTOCOL_BASE: u32 = 131071u32; +pub const IPX_PROTOCOL_RIP: u32 = 131072u32; +pub const IR_PROMISCUOUS: u32 = 0u32; +pub const IR_PROMISCUOUS_MULTICAST: u32 = 1u32; +pub const JOB_ADD_CURRENT_DATE: u32 = 8u32; +pub const JOB_EXEC_ERROR: u32 = 2u32; +pub const JOB_NONINTERACTIVE: u32 = 16u32; +pub const JOB_RUNS_TODAY: u32 = 4u32; +pub const JOB_RUN_PERIODICALLY: u32 = 1u32; +pub const KNOWLEDGE_INCONSISTENCY_DETECTED: i32 = -1073727511i32; +pub const LG_INCLUDE_INDIRECT: u32 = 1u32; +pub const LM20_CNLEN: u32 = 15u32; +pub const LM20_DEVLEN: u32 = 8u32; +pub const LM20_DNLEN: u32 = 15u32; +pub const LM20_GNLEN: u32 = 20u32; +pub const LM20_MAXCOMMENTSZ: u32 = 48u32; +pub const LM20_NNLEN: u32 = 12u32; +pub const LM20_PATHLEN: u32 = 256u32; +pub const LM20_PWLEN: u32 = 14u32; +pub const LM20_QNLEN: u32 = 12u32; +pub const LM20_SERVICE_ACTIVE: u32 = 0u32; +pub const LM20_SERVICE_CONTINUE_PENDING: u32 = 4u32; +pub const LM20_SERVICE_PAUSED: u32 = 12u32; +pub const LM20_SERVICE_PAUSE_PENDING: u32 = 8u32; +pub const LM20_SNLEN: u32 = 15u32; +pub const LM20_STXTLEN: u32 = 63u32; +pub const LM20_UNCLEN: u32 = 17u32; +pub const LM20_UNLEN: u32 = 20u32; +pub const LM_REDIR_FAILURE: i32 = 1073756225i32; +pub const LOCALGROUP_COMMENT_PARMNUM: u32 = 2u32; +pub const LOCALGROUP_NAME_PARMNUM: u32 = 1u32; +pub const LOGFLAGS_BACKWARD: u32 = 1u32; +pub const LOGFLAGS_FORWARD: u32 = 0u32; +pub const LOGFLAGS_SEEK: u32 = 2u32; +pub const LOWER_GET_HINT_MASK: u32 = 65280u32; +pub const LOWER_HINT_MASK: u32 = 255u32; +pub const MACHINE_UNJOINED: i32 = -1073727507i32; +pub const MAJOR_VERSION_MASK: u32 = 15u32; +pub const MAXCOMMENTSZ: u32 = 256u32; +pub const MAXPERMENTRIES: u32 = 64u32; +pub const MAX_LANMAN_MESSAGE_ID: u32 = 5899u32; +pub const MAX_NERR: u32 = 2999u32; +pub const MAX_PASSWD_LEN: u32 = 256u32; +pub const MAX_PREFERRED_LENGTH: u32 = 4294967295u32; +pub const MAX_PROTOCOL_DLL_LEN: u32 = 48u32; +pub const MAX_PROTOCOL_NAME_LEN: u32 = 40u32; +pub const MESSAGE_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NETMSG"); +pub const MFE_BOUNDARY_REACHED: u32 = 6u32; +pub const MFE_IIF: u32 = 8u32; +pub const MFE_NOT_FORWARDING: u32 = 2u32; +pub const MFE_NOT_LAST_HOP: u32 = 10u32; +pub const MFE_NO_ERROR: u32 = 0u32; +pub const MFE_NO_MULTICAST: u32 = 7u32; +pub const MFE_NO_ROUTE: u32 = 9u32; +pub const MFE_NO_SPACE: u32 = 13u32; +pub const MFE_OIF_PRUNED: u32 = 5u32; +pub const MFE_OLD_ROUTER: u32 = 11u32; +pub const MFE_PROHIBITED: u32 = 12u32; +pub const MFE_PRUNED_UPSTREAM: u32 = 4u32; +pub const MFE_REACHED_CORE: u32 = 1u32; +pub const MFE_WRONG_IF: u32 = 3u32; +pub const MIN_LANMAN_MESSAGE_ID: u32 = 2100u32; +pub const MISSING_EXIT_POINT: i32 = -1073727523i32; +pub const MISSING_EXIT_POINT_CREATED: i32 = -1073727518i32; +pub const MISSING_EXIT_POINT_NOT_CREATED: i32 = -1073727517i32; +pub const MISSING_VOLUME: i32 = -1073727522i32; +pub const MISSING_VOLUME_CREATED: i32 = -1073727516i32; +pub const MISSING_VOLUME_NOT_CREATED: i32 = -1073727515i32; +pub const MODALS_DOMAIN_ID_PARMNUM: u32 = 9u32; +pub const MODALS_DOMAIN_NAME_PARMNUM: u32 = 8u32; +pub const MODALS_FORCE_LOGOFF_PARMNUM: u32 = 4u32; +pub const MODALS_LOCKOUT_DURATION_PARMNUM: u32 = 10u32; +pub const MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM: u32 = 11u32; +pub const MODALS_LOCKOUT_THRESHOLD_PARMNUM: u32 = 12u32; +pub const MODALS_MAX_PASSWD_AGE_PARMNUM: u32 = 2u32; +pub const MODALS_MIN_PASSWD_AGE_PARMNUM: u32 = 3u32; +pub const MODALS_MIN_PASSWD_LEN_PARMNUM: u32 = 1u32; +pub const MODALS_PASSWD_HIST_LEN_PARMNUM: u32 = 5u32; +pub const MODALS_PRIMARY_PARMNUM: u32 = 7u32; +pub const MODALS_ROLE_PARMNUM: u32 = 6u32; +pub const MRINFO_DISABLED_FLAG: u32 = 32u32; +pub const MRINFO_DOWN_FLAG: u32 = 16u32; +pub const MRINFO_LEAF_FLAG: u32 = 128u32; +pub const MRINFO_PIM_FLAG: u32 = 4u32; +pub const MRINFO_QUERIER_FLAG: u32 = 64u32; +pub const MRINFO_TUNNEL_FLAG: u32 = 1u32; +pub const MSGNAME_FORWARDED_FROM: u32 = 16u32; +pub const MSGNAME_FORWARDED_TO: u32 = 4u32; +pub const MSGNAME_NOT_FORWARDED: u32 = 0u32; +pub const MS_ROUTER_VERSION: u32 = 1536u32; +pub const MsaInfoCanInstall: MSA_INFO_STATE = 4i32; +pub const MsaInfoCannotInstall: MSA_INFO_STATE = 3i32; +pub const MsaInfoInstalled: MSA_INFO_STATE = 5i32; +pub const MsaInfoLevel0: MSA_INFO_LEVEL = 0i32; +pub const MsaInfoLevelMax: MSA_INFO_LEVEL = 1i32; +pub const MsaInfoNotExist: MSA_INFO_STATE = 1i32; +pub const MsaInfoNotService: MSA_INFO_STATE = 2i32; +pub const NCF_DONTEXPOSELOWER: COMPONENT_CHARACTERISTICS = 4096i32; +pub const NCF_FILTER: COMPONENT_CHARACTERISTICS = 1024i32; +pub const NCF_FIXED_BINDING: COMPONENT_CHARACTERISTICS = 131072i32; +pub const NCF_HAS_UI: COMPONENT_CHARACTERISTICS = 128i32; +pub const NCF_HIDDEN: COMPONENT_CHARACTERISTICS = 8i32; +pub const NCF_HIDE_BINDING: COMPONENT_CHARACTERISTICS = 8192i32; +pub const NCF_LOWER: SUPPORTS_BINDING_INTERFACE_FLAGS = 1i32; +pub const NCF_LW_FILTER: COMPONENT_CHARACTERISTICS = 262144i32; +pub const NCF_MULTIPORT_INSTANCED_ADAPTER: COMPONENT_CHARACTERISTICS = 64i32; +pub const NCF_NDIS_PROTOCOL: COMPONENT_CHARACTERISTICS = 16384i32; +pub const NCF_NOT_USER_REMOVABLE: COMPONENT_CHARACTERISTICS = 32i32; +pub const NCF_NO_SERVICE: COMPONENT_CHARACTERISTICS = 16i32; +pub const NCF_PHYSICAL: COMPONENT_CHARACTERISTICS = 4i32; +pub const NCF_SINGLE_INSTANCE: COMPONENT_CHARACTERISTICS = 256i32; +pub const NCF_SOFTWARE_ENUMERATED: COMPONENT_CHARACTERISTICS = 2i32; +pub const NCF_UPPER: SUPPORTS_BINDING_INTERFACE_FLAGS = 2i32; +pub const NCF_VIRTUAL: COMPONENT_CHARACTERISTICS = 1i32; +pub const NCN_ADD: BIND_FLAGS1 = 1i32; +pub const NCN_BINDING_PATH: BIND_FLAGS1 = 256i32; +pub const NCN_DISABLE: BIND_FLAGS1 = 32i32; +pub const NCN_ENABLE: BIND_FLAGS1 = 16i32; +pub const NCN_NET: BIND_FLAGS1 = 65536i32; +pub const NCN_NETCLIENT: BIND_FLAGS1 = 262144i32; +pub const NCN_NETSERVICE: BIND_FLAGS1 = 524288i32; +pub const NCN_NETTRANS: BIND_FLAGS1 = 131072i32; +pub const NCN_PROPERTYCHANGE: BIND_FLAGS1 = 512i32; +pub const NCN_REMOVE: BIND_FLAGS1 = 2i32; +pub const NCN_UPDATE: BIND_FLAGS1 = 4i32; +pub const NCRL_NDIS: NCPNP_RECONFIG_LAYER = 1i32; +pub const NCRL_TDI: NCPNP_RECONFIG_LAYER = 2i32; +pub const NCRP_QUERY_PROPERTY_UI: NCRP_FLAGS = 1i32; +pub const NCRP_SHOW_PROPERTY_UI: NCRP_FLAGS = 2i32; +pub const NELOG_AT_Exec_Err: u32 = 3178u32; +pub const NELOG_AT_cannot_read: u32 = 3174u32; +pub const NELOG_AT_cannot_write: u32 = 3129u32; +pub const NELOG_AT_sched_err: u32 = 3175u32; +pub const NELOG_AT_schedule_file_created: u32 = 3176u32; +pub const NELOG_Access_File_Bad: u32 = 3122u32; +pub const NELOG_Build_Name: u32 = 3170u32; +pub const NELOG_Cant_Make_Msg_File: u32 = 3130u32; +pub const NELOG_DiskFT: u32 = 3221u32; +pub const NELOG_DriverNotLoaded: u32 = 5727u32; +pub const NELOG_Entries_Lost: u32 = 3114u32; +pub const NELOG_Error_in_DLL: u32 = 3256u32; +pub const NELOG_Exec_Netservr_NoMem: u32 = 3131u32; +pub const NELOG_FT_ErrLog_Too_Large: u32 = 3258u32; +pub const NELOG_FT_Update_In_Progress: u32 = 3259u32; +pub const NELOG_FailedToGetComputerName: u32 = 5726u32; +pub const NELOG_FailedToRegisterSC: u32 = 5724u32; +pub const NELOG_FailedToSetServiceStatus: u32 = 5725u32; +pub const NELOG_File_Changed: u32 = 3253u32; +pub const NELOG_Files_Dont_Fit: u32 = 3254u32; +pub const NELOG_HardErr_From_Server: u32 = 3182u32; +pub const NELOG_HotFix: u32 = 3181u32; +pub const NELOG_Init_Chardev_Err: u32 = 3124u32; +pub const NELOG_Init_Exec_Fail: u32 = 3105u32; +pub const NELOG_Init_OpenCreate_Err: u32 = 3110u32; +pub const NELOG_Init_Seg_Overflow: u32 = 3120u32; +pub const NELOG_Internal_Error: u32 = 3100u32; +pub const NELOG_Invalid_Config_File: u32 = 3252u32; +pub const NELOG_Invalid_Config_Line: u32 = 3251u32; +pub const NELOG_Ioctl_Error: u32 = 3108u32; +pub const NELOG_Joined_Domain: u32 = 3260u32; +pub const NELOG_Joined_Workgroup: u32 = 3261u32; +pub const NELOG_Lazy_Write_Err: u32 = 3180u32; +pub const NELOG_LocalSecFail1: u32 = 3183u32; +pub const NELOG_LocalSecFail2: u32 = 3184u32; +pub const NELOG_LocalSecFail3: u32 = 3185u32; +pub const NELOG_LocalSecGeneralFail: u32 = 3186u32; +pub const NELOG_Mail_Slt_Err: u32 = 3173u32; +pub const NELOG_Mailslot_err: u32 = 3127u32; +pub const NELOG_Message_Send: u32 = 3172u32; +pub const NELOG_Missing_Parameter: u32 = 3250u32; +pub const NELOG_Msg_Log_Err: u32 = 3150u32; +pub const NELOG_Msg_Sem_Shutdown: u32 = 3141u32; +pub const NELOG_Msg_Shutdown: u32 = 3140u32; +pub const NELOG_Msg_Unexpected_SMB_Type: u32 = 3152u32; +pub const NELOG_Name_Expansion: u32 = 3171u32; +pub const NELOG_Ncb_Error: u32 = 3106u32; +pub const NELOG_Ncb_TooManyErr: u32 = 3126u32; +pub const NELOG_NetBios: u32 = 3111u32; +pub const NELOG_NetLogonFailedToInitializeAuthzRm: u32 = 5821u32; +pub const NELOG_NetLogonFailedToInitializeRPCSD: u32 = 5822u32; +pub const NELOG_NetWkSta_Internal_Error: u32 = 3190u32; +pub const NELOG_NetWkSta_NCB_Err: u32 = 3195u32; +pub const NELOG_NetWkSta_No_Resource: u32 = 3191u32; +pub const NELOG_NetWkSta_Reset_Err: u32 = 3197u32; +pub const NELOG_NetWkSta_SMB_Err: u32 = 3192u32; +pub const NELOG_NetWkSta_Stuck_VC_Err: u32 = 3194u32; +pub const NELOG_NetWkSta_Too_Many: u32 = 3198u32; +pub const NELOG_NetWkSta_VC_Err: u32 = 3193u32; +pub const NELOG_NetWkSta_Write_Behind_Err: u32 = 3196u32; +pub const NELOG_Net_Not_Started: u32 = 3107u32; +pub const NELOG_NetlogonAddNameFailure: u32 = 5741u32; +pub const NELOG_NetlogonAuthDCFail: u32 = 3210u32; +pub const NELOG_NetlogonAuthDomainDowngraded: u32 = 5791u32; +pub const NELOG_NetlogonAuthNoDomainController: u32 = 5719u32; +pub const NELOG_NetlogonAuthNoTrustLsaSecret: u32 = 5720u32; +pub const NELOG_NetlogonAuthNoTrustSamAccount: u32 = 5721u32; +pub const NELOG_NetlogonAuthNoUplevelDomainController: u32 = 5790u32; +pub const NELOG_NetlogonBadSiteName: u32 = 5779u32; +pub const NELOG_NetlogonBadSubnetName: u32 = 5780u32; +pub const NELOG_NetlogonBrowserDriver: u32 = 5740u32; +pub const NELOG_NetlogonChangeLogCorrupt: u32 = 5705u32; +pub const NELOG_NetlogonDcOldSiteCovered: u32 = 5794u32; +pub const NELOG_NetlogonDcSiteCovered: u32 = 5784u32; +pub const NELOG_NetlogonDcSiteNotCovered: u32 = 5785u32; +pub const NELOG_NetlogonDcSiteNotCoveredAuto: u32 = 5795u32; +pub const NELOG_NetlogonDnsDeregAborted: u32 = 5808u32; +pub const NELOG_NetlogonDnsHostNameLowerCasingFailed: u32 = 5825u32; +pub const NELOG_NetlogonDownLevelLogoffFailed: u32 = 5708u32; +pub const NELOG_NetlogonDownLevelLogonFailed: u32 = 5707u32; +pub const NELOG_NetlogonDuplicateMachineAccounts: u32 = 5738u32; +pub const NELOG_NetlogonDynamicDnsDeregisterFailure: u32 = 5775u32; +pub const NELOG_NetlogonDynamicDnsFailure: u32 = 5782u32; +pub const NELOG_NetlogonDynamicDnsRegisterFailure: u32 = 5774u32; +pub const NELOG_NetlogonDynamicDnsServerFailure: u32 = 5781u32; +pub const NELOG_NetlogonFailedAccountDelta: u32 = 5735u32; +pub const NELOG_NetlogonFailedDnsHostNameUpdate: u32 = 5789u32; +pub const NELOG_NetlogonFailedDomainDelta: u32 = 5729u32; +pub const NELOG_NetlogonFailedFileCreate: u32 = 5776u32; +pub const NELOG_NetlogonFailedGlobalGroupDelta: u32 = 5730u32; +pub const NELOG_NetlogonFailedLocalGroupDelta: u32 = 5731u32; +pub const NELOG_NetlogonFailedPolicyDelta: u32 = 5733u32; +pub const NELOG_NetlogonFailedPrimary: u32 = 3223u32; +pub const NELOG_NetlogonFailedSecretDelta: u32 = 5736u32; +pub const NELOG_NetlogonFailedSpnUpdate: u32 = 5788u32; +pub const NELOG_NetlogonFailedToAddAuthzRpcInterface: u32 = 5820u32; +pub const NELOG_NetlogonFailedToAddRpcInterface: u32 = 5702u32; +pub const NELOG_NetlogonFailedToCreateShare: u32 = 5706u32; +pub const NELOG_NetlogonFailedToReadMailslot: u32 = 5703u32; +pub const NELOG_NetlogonFailedToRegisterSC: u32 = 5704u32; +pub const NELOG_NetlogonFailedToUpdateTrustList: u32 = 5701u32; +pub const NELOG_NetlogonFailedTrustedDomainDelta: u32 = 5734u32; +pub const NELOG_NetlogonFailedUserDelta: u32 = 5732u32; +pub const NELOG_NetlogonFullSyncCallFailed: u32 = 5714u32; +pub const NELOG_NetlogonFullSyncCallSuccess: u32 = 5713u32; +pub const NELOG_NetlogonFullSyncFailed: u32 = 5718u32; +pub const NELOG_NetlogonFullSyncSuccess: u32 = 5717u32; +pub const NELOG_NetlogonGcOldSiteCovered: u32 = 5796u32; +pub const NELOG_NetlogonGcSiteCovered: u32 = 5786u32; +pub const NELOG_NetlogonGcSiteNotCovered: u32 = 5787u32; +pub const NELOG_NetlogonGcSiteNotCoveredAuto: u32 = 5797u32; +pub const NELOG_NetlogonGetSubnetToSite: u32 = 5777u32; +pub const NELOG_NetlogonInvalidDwordParameterValue: u32 = 5804u32; +pub const NELOG_NetlogonInvalidGenericParameterValue: u32 = 5803u32; +pub const NELOG_NetlogonLanmanBdcsNotAllowed: u32 = 5772u32; +pub const NELOG_NetlogonMachinePasswdSetSucceeded: u32 = 5823u32; +pub const NELOG_NetlogonMsaPasswdSetSucceeded: u32 = 5824u32; +pub const NELOG_NetlogonNTLogoffFailed: u32 = 5710u32; +pub const NELOG_NetlogonNTLogonFailed: u32 = 5709u32; +pub const NELOG_NetlogonNdncOldSiteCovered: u32 = 5798u32; +pub const NELOG_NetlogonNdncSiteCovered: u32 = 5792u32; +pub const NELOG_NetlogonNdncSiteNotCovered: u32 = 5793u32; +pub const NELOG_NetlogonNdncSiteNotCoveredAuto: u32 = 5799u32; +pub const NELOG_NetlogonNoAddressToSiteMapping: u32 = 5802u32; +pub const NELOG_NetlogonNoDynamicDns: u32 = 5773u32; +pub const NELOG_NetlogonNoDynamicDnsManual: u32 = 5806u32; +pub const NELOG_NetlogonNoSiteForClient: u32 = 5778u32; +pub const NELOG_NetlogonNoSiteForClients: u32 = 5807u32; +pub const NELOG_NetlogonPartialSiteMappingForClients: u32 = 5810u32; +pub const NELOG_NetlogonPartialSyncCallFailed: u32 = 5712u32; +pub const NELOG_NetlogonPartialSyncCallSuccess: u32 = 5711u32; +pub const NELOG_NetlogonPartialSyncFailed: u32 = 5716u32; +pub const NELOG_NetlogonPartialSyncSuccess: u32 = 5715u32; +pub const NELOG_NetlogonPasswdSetFailed: u32 = 3224u32; +pub const NELOG_NetlogonRejectedRemoteDynamicDnsDeregister: u32 = 5814u32; +pub const NELOG_NetlogonRejectedRemoteDynamicDnsRegister: u32 = 5813u32; +pub const NELOG_NetlogonRemoteDynamicDnsDeregisterFailure: u32 = 5812u32; +pub const NELOG_NetlogonRemoteDynamicDnsRegisterFailure: u32 = 5811u32; +pub const NELOG_NetlogonRemoteDynamicDnsUpdateRequestFailure: u32 = 5815u32; +pub const NELOG_NetlogonRequireSignOrSealError: u32 = 3227u32; +pub const NELOG_NetlogonRpcCallCancelled: u32 = 5783u32; +pub const NELOG_NetlogonRpcPortRequestFailure: u32 = 5809u32; +pub const NELOG_NetlogonSSIInitError: u32 = 5700u32; +pub const NELOG_NetlogonServerAuthFailed: u32 = 5722u32; +pub const NELOG_NetlogonServerAuthFailedNoAccount: u32 = 5805u32; +pub const NELOG_NetlogonServerAuthNoTrustSamAccount: u32 = 5723u32; +pub const NELOG_NetlogonSessionTypeWrong: u32 = 5770u32; +pub const NELOG_NetlogonSpnCrackNamesFailure: u32 = 5801u32; +pub const NELOG_NetlogonSpnMultipleSamAccountNames: u32 = 5800u32; +pub const NELOG_NetlogonSyncError: u32 = 3226u32; +pub const NELOG_NetlogonSystemError: u32 = 5737u32; +pub const NELOG_NetlogonTooManyGlobalGroups: u32 = 5739u32; +pub const NELOG_NetlogonTrackingError: u32 = 3225u32; +pub const NELOG_NetlogonUserValidationReqInitialTimeOut: u32 = 5816u32; +pub const NELOG_NetlogonUserValidationReqRecurringTimeOut: u32 = 5817u32; +pub const NELOG_NetlogonUserValidationReqWaitInitialWarning: u32 = 5818u32; +pub const NELOG_NetlogonUserValidationReqWaitRecurringWarning: u32 = 5819u32; +pub const NELOG_NoTranportLoaded: u32 = 5728u32; +pub const NELOG_OEM_Code: u32 = 3299u32; +pub const NELOG_ReleaseMem_Alert: u32 = 3128u32; +pub const NELOG_Remote_API: u32 = 3125u32; +pub const NELOG_ReplAccessDenied: u32 = 3222u32; +pub const NELOG_ReplBadExport: u32 = 3219u32; +pub const NELOG_ReplBadImport: u32 = 3218u32; +pub const NELOG_ReplBadMsg: u32 = 3215u32; +pub const NELOG_ReplCannotMasterDir: u32 = 3207u32; +pub const NELOG_ReplLogonFailed: u32 = 3211u32; +pub const NELOG_ReplLostMaster: u32 = 3209u32; +pub const NELOG_ReplMaxFiles: u32 = 3213u32; +pub const NELOG_ReplMaxTreeDepth: u32 = 3214u32; +pub const NELOG_ReplNetErr: u32 = 3212u32; +pub const NELOG_ReplSignalFileErr: u32 = 3220u32; +pub const NELOG_ReplSysErr: u32 = 3216u32; +pub const NELOG_ReplUpdateError: u32 = 3208u32; +pub const NELOG_ReplUserCurDir: u32 = 3206u32; +pub const NELOG_ReplUserLoged: u32 = 3217u32; +pub const NELOG_Resource_Shortage: u32 = 3101u32; +pub const NELOG_RplAdapterResource: u32 = 5756u32; +pub const NELOG_RplBackupDatabase: u32 = 5765u32; +pub const NELOG_RplCheckConfigs: u32 = 5760u32; +pub const NELOG_RplCheckSecurity: u32 = 5764u32; +pub const NELOG_RplCreateProfiles: u32 = 5761u32; +pub const NELOG_RplFileCopy: u32 = 5757u32; +pub const NELOG_RplFileDelete: u32 = 5758u32; +pub const NELOG_RplFilePerms: u32 = 5759u32; +pub const NELOG_RplInitDatabase: u32 = 5766u32; +pub const NELOG_RplInitRestoredDatabase: u32 = 5769u32; +pub const NELOG_RplMessages: u32 = 5742u32; +pub const NELOG_RplRegistry: u32 = 5762u32; +pub const NELOG_RplReplaceRPLDISK: u32 = 5763u32; +pub const NELOG_RplRestoreDatabaseFailure: u32 = 5767u32; +pub const NELOG_RplRestoreDatabaseSuccess: u32 = 5768u32; +pub const NELOG_RplSystem: u32 = 5744u32; +pub const NELOG_RplUpgradeDBTo40: u32 = 5771u32; +pub const NELOG_RplWkstaBbcFile: u32 = 5751u32; +pub const NELOG_RplWkstaFileChecksum: u32 = 5749u32; +pub const NELOG_RplWkstaFileLineCount: u32 = 5750u32; +pub const NELOG_RplWkstaFileOpen: u32 = 5746u32; +pub const NELOG_RplWkstaFileRead: u32 = 5747u32; +pub const NELOG_RplWkstaFileSize: u32 = 5752u32; +pub const NELOG_RplWkstaInternal: u32 = 5753u32; +pub const NELOG_RplWkstaMemory: u32 = 5748u32; +pub const NELOG_RplWkstaNetwork: u32 = 5755u32; +pub const NELOG_RplWkstaTimeout: u32 = 5745u32; +pub const NELOG_RplWkstaWrongVersion: u32 = 5754u32; +pub const NELOG_RplXnsBoot: u32 = 5743u32; +pub const NELOG_SMB_Illegal: u32 = 3112u32; +pub const NELOG_Server_Lock_Failure: u32 = 3132u32; +pub const NELOG_Service_Fail: u32 = 3113u32; +pub const NELOG_Srv_Close_Failure: u32 = 3205u32; +pub const NELOG_Srv_No_Mem_Grow: u32 = 3121u32; +pub const NELOG_Srv_Thread_Failure: u32 = 3204u32; +pub const NELOG_Srvnet_NB_Open: u32 = 3177u32; +pub const NELOG_Srvnet_Not_Started: u32 = 3123u32; +pub const NELOG_System_Error: u32 = 3257u32; +pub const NELOG_System_Semaphore: u32 = 3109u32; +pub const NELOG_UPS_CannotOpenDriver: u32 = 3233u32; +pub const NELOG_UPS_CmdFileConfig: u32 = 3235u32; +pub const NELOG_UPS_CmdFileError: u32 = 3232u32; +pub const NELOG_UPS_CmdFileExec: u32 = 3236u32; +pub const NELOG_UPS_PowerBack: u32 = 3234u32; +pub const NELOG_UPS_PowerOut: u32 = 3230u32; +pub const NELOG_UPS_Shutdown: u32 = 3231u32; +pub const NELOG_Unable_To_Lock_Segment: u32 = 3102u32; +pub const NELOG_Unable_To_Unlock_Segment: u32 = 3103u32; +pub const NELOG_Uninstall_Service: u32 = 3104u32; +pub const NELOG_VIO_POPUP_ERR: u32 = 3151u32; +pub const NELOG_Wksta_Bad_Mailslot_SMB: u32 = 3165u32; +pub const NELOG_Wksta_BiosThreadFailure: u32 = 3162u32; +pub const NELOG_Wksta_Compname: u32 = 3161u32; +pub const NELOG_Wksta_HostTab_Full: u32 = 3164u32; +pub const NELOG_Wksta_Infoseg: u32 = 3160u32; +pub const NELOG_Wksta_IniSeg: u32 = 3163u32; +pub const NELOG_Wksta_SSIRelogon: u32 = 3167u32; +pub const NELOG_Wksta_UASInit: u32 = 3166u32; +pub const NELOG_Wrong_DLL_Version: u32 = 3255u32; +pub const NERR_ACFFileIOFail: u32 = 2229u32; +pub const NERR_ACFNoParent: u32 = 2232u32; +pub const NERR_ACFNoRoom: u32 = 2228u32; +pub const NERR_ACFNotFound: u32 = 2219u32; +pub const NERR_ACFNotLoaded: u32 = 2227u32; +pub const NERR_ACFTooManyLists: u32 = 2230u32; +pub const NERR_AccountExpired: u32 = 2239u32; +pub const NERR_AccountLockedOut: u32 = 2702u32; +pub const NERR_AccountReuseBlockedByPolicy: u32 = 2732u32; +pub const NERR_AccountUndefined: u32 = 2238u32; +pub const NERR_AcctLimitExceeded: u32 = 2434u32; +pub const NERR_ActiveConns: u32 = 2402u32; +pub const NERR_AddForwarded: u32 = 2275u32; +pub const NERR_AlertExists: u32 = 2430u32; +pub const NERR_AlreadyCloudDomainJoined: u32 = 2700u32; +pub const NERR_AlreadyExists: u32 = 2276u32; +pub const NERR_AlreadyForwarded: u32 = 2274u32; +pub const NERR_AlreadyLoggedOn: u32 = 2200u32; +pub const NERR_BASE: u32 = 2100u32; +pub const NERR_BadAsgType: u32 = 2251u32; +pub const NERR_BadComponent: u32 = 2356u32; +pub const NERR_BadControlRecv: u32 = 2193u32; +pub const NERR_BadDest: u32 = 2382u32; +pub const NERR_BadDev: u32 = 2341u32; +pub const NERR_BadDevString: u32 = 2340u32; +pub const NERR_BadDomainJoinInfo: u32 = 2712u32; +pub const NERR_BadDosFunction: u32 = 2502u32; +pub const NERR_BadDosRetCode: u32 = 2500u32; +pub const NERR_BadEventName: u32 = 2143u32; +pub const NERR_BadFileCheckSum: u32 = 2504u32; +pub const NERR_BadOfflineJoinInfo: u32 = 2710u32; +pub const NERR_BadPassword: u32 = 2203u32; +pub const NERR_BadPasswordCore: u32 = 2403u32; +pub const NERR_BadQueueDevString: u32 = 2334u32; +pub const NERR_BadQueuePriority: u32 = 2335u32; +pub const NERR_BadReceive: u32 = 2282u32; +pub const NERR_BadRecipient: u32 = 2433u32; +pub const NERR_BadServiceName: u32 = 2185u32; +pub const NERR_BadServiceProgName: u32 = 2188u32; +pub const NERR_BadSource: u32 = 2381u32; +pub const NERR_BadTransactConfig: u32 = 2141u32; +pub const NERR_BadUasConfig: u32 = 2450u32; +pub const NERR_BadUsername: u32 = 2202u32; +pub const NERR_BrowserConfiguredToNotRun: u32 = 2550u32; +pub const NERR_BrowserNotStarted: u32 = 2139u32; +pub const NERR_BrowserTableIncomplete: u32 = 2319u32; +pub const NERR_BufTooSmall: u32 = 2123u32; +pub const NERR_CallingRplSrvr: u32 = 2515u32; +pub const NERR_CanNotGrowSegment: u32 = 2233u32; +pub const NERR_CanNotGrowUASFile: u32 = 2456u32; +pub const NERR_CannotUnjoinAadDomain: u32 = 2727u32; +pub const NERR_CannotUpdateAadHostName: u32 = 2728u32; +pub const NERR_CantConnectRplSrvr: u32 = 2513u32; +pub const NERR_CantCreateJoinInfo: u32 = 2711u32; +pub const NERR_CantLoadOfflineHive: u32 = 2717u32; +pub const NERR_CantOpenImageFile: u32 = 2514u32; +pub const NERR_CantType: u32 = 2357u32; +pub const NERR_CantVerifyHostname: u32 = 2716u32; +pub const NERR_CfgCompNotFound: u32 = 2146u32; +pub const NERR_CfgParamNotFound: u32 = 2147u32; +pub const NERR_ClientNameNotFound: u32 = 2312u32; +pub const NERR_CommDevInUse: u32 = 2343u32; +pub const NERR_ComputerAccountNotFound: u32 = 2697u32; +pub const NERR_ConnectionInsecure: u32 = 2718u32; +pub const NERR_DCNotFound: u32 = 2453u32; +pub const NERR_DS8DCNotFound: u32 = 2722u32; +pub const NERR_DS8DCRequired: u32 = 2720u32; +pub const NERR_DS9DCNotFound: u32 = 2725u32; +pub const NERR_DataTypeInvalid: u32 = 2167u32; +pub const NERR_DatabaseUpToDate: u32 = 2248u32; +pub const NERR_DefaultJoinRequired: u32 = 2694u32; +pub const NERR_DelComputerName: u32 = 2278u32; +pub const NERR_DeleteLater: u32 = 2298u32; +pub const NERR_DestExists: u32 = 2153u32; +pub const NERR_DestIdle: u32 = 2158u32; +pub const NERR_DestInvalidOp: u32 = 2159u32; +pub const NERR_DestInvalidState: u32 = 2162u32; +pub const NERR_DestNoRoom: u32 = 2157u32; +pub const NERR_DestNotFound: u32 = 2152u32; +pub const NERR_DevInUse: u32 = 2404u32; +pub const NERR_DevInvalidOpCode: u32 = 2331u32; +pub const NERR_DevNotFound: u32 = 2332u32; +pub const NERR_DevNotOpen: u32 = 2333u32; +pub const NERR_DevNotRedirected: u32 = 2107u32; +pub const NERR_DeviceIsShared: u32 = 2252u32; +pub const NERR_DeviceNotShared: u32 = 2311u32; +pub const NERR_DeviceShareConflict: u32 = 2318u32; +pub const NERR_DfsAlreadyShared: u32 = 2664u32; +pub const NERR_DfsBadRenamePath: u32 = 2671u32; +pub const NERR_DfsCantCreateJunctionPoint: u32 = 2669u32; +pub const NERR_DfsCantRemoveDfsRoot: u32 = 2682u32; +pub const NERR_DfsCantRemoveLastServerShare: u32 = 2677u32; +pub const NERR_DfsChildOrParentInDfs: u32 = 2683u32; +pub const NERR_DfsCyclicalName: u32 = 2674u32; +pub const NERR_DfsDataIsIdentical: u32 = 2681u32; +pub const NERR_DfsDuplicateService: u32 = 2676u32; +pub const NERR_DfsInconsistent: u32 = 2679u32; +pub const NERR_DfsInternalCorruption: u32 = 2660u32; +pub const NERR_DfsInternalError: u32 = 2690u32; +pub const NERR_DfsLeafVolume: u32 = 2667u32; +pub const NERR_DfsNoSuchServer: u32 = 2673u32; +pub const NERR_DfsNoSuchShare: u32 = 2665u32; +pub const NERR_DfsNoSuchVolume: u32 = 2662u32; +pub const NERR_DfsNotALeafVolume: u32 = 2666u32; +pub const NERR_DfsNotSupportedInServerDfs: u32 = 2675u32; +pub const NERR_DfsServerNotDfsAware: u32 = 2670u32; +pub const NERR_DfsServerUpgraded: u32 = 2680u32; +pub const NERR_DfsVolumeAlreadyExists: u32 = 2663u32; +pub const NERR_DfsVolumeDataCorrupt: u32 = 2661u32; +pub const NERR_DfsVolumeHasMultipleServers: u32 = 2668u32; +pub const NERR_DfsVolumeIsInterDfs: u32 = 2678u32; +pub const NERR_DfsVolumeIsOffline: u32 = 2672u32; +pub const NERR_DifferentServers: u32 = 2383u32; +pub const NERR_DriverNotFound: u32 = 2166u32; +pub const NERR_DupNameReboot: u32 = 2144u32; +pub const NERR_DuplicateHostName: u32 = 2729u32; +pub const NERR_DuplicateName: u32 = 2297u32; +pub const NERR_DuplicateShare: u32 = 2118u32; +pub const NERR_ErrCommRunSrv: u32 = 2389u32; +pub const NERR_ErrorExecingGhost: u32 = 2391u32; +pub const NERR_ExecFailure: u32 = 2315u32; +pub const NERR_FileIdNotFound: u32 = 2314u32; +pub const NERR_GroupExists: u32 = 2223u32; +pub const NERR_GroupNotFound: u32 = 2220u32; +pub const NERR_GrpMsgProcessor: u32 = 2280u32; +pub const NERR_HostNameTooLong: u32 = 2730u32; +pub const NERR_ImageParamErr: u32 = 2508u32; +pub const NERR_InUseBySpooler: u32 = 2342u32; +pub const NERR_IncompleteDel: u32 = 2299u32; +pub const NERR_InternalError: u32 = 2140u32; +pub const NERR_InvalidAPI: u32 = 2142u32; +pub const NERR_InvalidComputer: u32 = 2351u32; +pub const NERR_InvalidDatabase: u32 = 2247u32; +pub const NERR_InvalidDevice: u32 = 2294u32; +pub const NERR_InvalidLana: u32 = 2400u32; +pub const NERR_InvalidLogSeek: u32 = 2440u32; +pub const NERR_InvalidLogonHours: u32 = 2241u32; +pub const NERR_InvalidMachineNameForJoin: u32 = 2724u32; +pub const NERR_InvalidMaxUsers: u32 = 2122u32; +pub const NERR_InvalidUASOp: u32 = 2451u32; +pub const NERR_InvalidWorkgroupName: u32 = 2695u32; +pub const NERR_InvalidWorkstation: u32 = 2240u32; +pub const NERR_IsDfsShare: u32 = 2321u32; +pub const NERR_ItemNotFound: u32 = 2115u32; +pub const NERR_JobInvalidState: u32 = 2164u32; +pub const NERR_JobNoRoom: u32 = 2156u32; +pub const NERR_JobNotFound: u32 = 2151u32; +pub const NERR_JoinPerformedMustRestart: u32 = 2713u32; +pub const NERR_LDAPCapableDCRequired: u32 = 2721u32; +pub const NERR_LanmanIniError: u32 = 2131u32; +pub const NERR_LastAdmin: u32 = 2452u32; +pub const NERR_LineTooLong: u32 = 2149u32; +pub const NERR_LocalDrive: u32 = 2405u32; +pub const NERR_LocalForward: u32 = 2279u32; +pub const NERR_LogFileChanged: u32 = 2378u32; +pub const NERR_LogFileCorrupt: u32 = 2379u32; +pub const NERR_LogOverflow: u32 = 2377u32; +pub const NERR_LogonDomainExists: u32 = 2216u32; +pub const NERR_LogonNoUserPath: u32 = 2211u32; +pub const NERR_LogonScriptError: u32 = 2212u32; +pub const NERR_LogonServerConflict: u32 = 2210u32; +pub const NERR_LogonServerNotFound: u32 = 2215u32; +pub const NERR_LogonTrackingError: u32 = 2454u32; +pub const NERR_LogonsPaused: u32 = 2209u32; +pub const NERR_MaxLenExceeded: u32 = 2354u32; +pub const NERR_MsgAlreadyStarted: u32 = 2271u32; +pub const NERR_MsgInitFailed: u32 = 2272u32; +pub const NERR_MsgNotStarted: u32 = 2284u32; +pub const NERR_MultipleNets: u32 = 2300u32; +pub const NERR_NameInUse: u32 = 2283u32; +pub const NERR_NameNotForwarded: u32 = 2288u32; +pub const NERR_NameNotFound: u32 = 2273u32; +pub const NERR_NameUsesIncompatibleCodePage: u32 = 2696u32; +pub const NERR_NetNameNotFound: u32 = 2310u32; +pub const NERR_NetNotStarted: u32 = 2102u32; +pub const NERR_NetlogonNotStarted: u32 = 2455u32; +pub const NERR_NetworkError: u32 = 2136u32; +pub const NERR_NoAlternateServers: u32 = 2467u32; +pub const NERR_NoCommDevs: u32 = 2337u32; +pub const NERR_NoComputerName: u32 = 2270u32; +pub const NERR_NoForwardName: u32 = 2286u32; +pub const NERR_NoJoinPending: u32 = 2714u32; +pub const NERR_NoNetworkResource: u32 = 2105u32; +pub const NERR_NoOfflineJoinInfo: u32 = 2709u32; +pub const NERR_NoRoom: u32 = 2119u32; +pub const NERR_NoRplBootSystem: u32 = 2505u32; +pub const NERR_NoSuchAlert: u32 = 2432u32; +pub const NERR_NoSuchConnection: u32 = 2462u32; +pub const NERR_NoSuchServer: u32 = 2460u32; +pub const NERR_NoSuchSession: u32 = 2461u32; +pub const NERR_NonDosFloppyUsed: u32 = 2510u32; +pub const NERR_NonValidatedLogon: u32 = 2217u32; +pub const NERR_NotInCache: u32 = 2235u32; +pub const NERR_NotInDispatchTbl: u32 = 2192u32; +pub const NERR_NotLocalDomain: u32 = 2320u32; +pub const NERR_NotLocalName: u32 = 2285u32; +pub const NERR_NotLoggedOn: u32 = 2201u32; +pub const NERR_NotPrimary: u32 = 2226u32; +pub const NERR_OpenFiles: u32 = 2401u32; +pub const NERR_PasswordCantChange: u32 = 2243u32; +pub const NERR_PasswordExpired: u32 = 2242u32; +pub const NERR_PasswordFilterError: u32 = 2705u32; +pub const NERR_PasswordHistConflict: u32 = 2244u32; +pub const NERR_PasswordMismatch: u32 = 2458u32; +pub const NERR_PasswordMustChange: u32 = 2701u32; +pub const NERR_PasswordNotComplexEnough: u32 = 2704u32; +pub const NERR_PasswordTooLong: u32 = 2703u32; +pub const NERR_PasswordTooRecent: u32 = 2246u32; +pub const NERR_PasswordTooShort: u32 = 2245u32; +pub const NERR_PausedRemote: u32 = 2281u32; +pub const NERR_PersonalSku: u32 = 2698u32; +pub const NERR_PlainTextSecretsRequired: u32 = 2726u32; +pub const NERR_ProcNoRespond: u32 = 2160u32; +pub const NERR_ProcNotFound: u32 = 2168u32; +pub const NERR_ProfileCleanup: u32 = 2372u32; +pub const NERR_ProfileFileTooBig: u32 = 2370u32; +pub const NERR_ProfileLoadErr: u32 = 2374u32; +pub const NERR_ProfileOffset: u32 = 2371u32; +pub const NERR_ProfileSaveErr: u32 = 2375u32; +pub const NERR_ProfileUnknownCmd: u32 = 2373u32; +pub const NERR_ProgNeedsExtraMem: u32 = 2501u32; +pub const NERR_ProvisioningBlobUnsupported: u32 = 2719u32; +pub const NERR_QExists: u32 = 2154u32; +pub const NERR_QInvalidState: u32 = 2163u32; +pub const NERR_QNoRoom: u32 = 2155u32; +pub const NERR_QNotFound: u32 = 2150u32; +pub const NERR_QueueNotFound: u32 = 2338u32; +pub const NERR_RPL_CONNECTED: u32 = 2519u32; +pub const NERR_RedirectedPath: u32 = 2117u32; +pub const NERR_RemoteBootFailed: u32 = 2503u32; +pub const NERR_RemoteErr: u32 = 2127u32; +pub const NERR_RemoteFull: u32 = 2287u32; +pub const NERR_RemoteOnly: u32 = 2106u32; +pub const NERR_ResourceExists: u32 = 2225u32; +pub const NERR_ResourceNotFound: u32 = 2222u32; +pub const NERR_RplAdapterInfoCorrupted: u32 = 2625u32; +pub const NERR_RplAdapterNameUnavailable: u32 = 2633u32; +pub const NERR_RplAdapterNotFound: u32 = 2637u32; +pub const NERR_RplBackupDatabase: u32 = 2636u32; +pub const NERR_RplBadDatabase: u32 = 2612u32; +pub const NERR_RplBadRegistry: u32 = 2611u32; +pub const NERR_RplBootInUse: u32 = 2635u32; +pub const NERR_RplBootInfoCorrupted: u32 = 2628u32; +pub const NERR_RplBootNameUnavailable: u32 = 2640u32; +pub const NERR_RplBootNotFound: u32 = 2631u32; +pub const NERR_RplBootRestart: u32 = 2511u32; +pub const NERR_RplBootServiceTerm: u32 = 2517u32; +pub const NERR_RplBootStartFailed: u32 = 2518u32; +pub const NERR_RplCannotEnum: u32 = 2615u32; +pub const NERR_RplConfigInfoCorrupted: u32 = 2623u32; +pub const NERR_RplConfigNameUnavailable: u32 = 2641u32; +pub const NERR_RplConfigNotEmpty: u32 = 2634u32; +pub const NERR_RplConfigNotFound: u32 = 2624u32; +pub const NERR_RplIncompatibleProfile: u32 = 2632u32; +pub const NERR_RplInternal: u32 = 2626u32; +pub const NERR_RplLoadrDiskErr: u32 = 2507u32; +pub const NERR_RplLoadrNetBiosErr: u32 = 2506u32; +pub const NERR_RplNeedsRPLUSERAcct: u32 = 2630u32; +pub const NERR_RplNoAdaptersStarted: u32 = 2610u32; +pub const NERR_RplNotRplServer: u32 = 2614u32; +pub const NERR_RplProfileInfoCorrupted: u32 = 2619u32; +pub const NERR_RplProfileNameUnavailable: u32 = 2621u32; +pub const NERR_RplProfileNotEmpty: u32 = 2622u32; +pub const NERR_RplProfileNotFound: u32 = 2620u32; +pub const NERR_RplRplfilesShare: u32 = 2613u32; +pub const NERR_RplSrvrCallFailed: u32 = 2512u32; +pub const NERR_RplVendorInfoCorrupted: u32 = 2627u32; +pub const NERR_RplVendorNameUnavailable: u32 = 2639u32; +pub const NERR_RplVendorNotFound: u32 = 2638u32; +pub const NERR_RplWkstaInfoCorrupted: u32 = 2616u32; +pub const NERR_RplWkstaNameUnavailable: u32 = 2618u32; +pub const NERR_RplWkstaNeedsUserAcct: u32 = 2629u32; +pub const NERR_RplWkstaNotFound: u32 = 2617u32; +pub const NERR_RunSrvPaused: u32 = 2385u32; +pub const NERR_SameAsComputerName: u32 = 2253u32; +pub const NERR_ServerNotStarted: u32 = 2114u32; +pub const NERR_ServiceCtlBusy: u32 = 2187u32; +pub const NERR_ServiceCtlNotValid: u32 = 2191u32; +pub const NERR_ServiceCtlTimeout: u32 = 2186u32; +pub const NERR_ServiceEntryLocked: u32 = 2183u32; +pub const NERR_ServiceInstalled: u32 = 2182u32; +pub const NERR_ServiceKillProc: u32 = 2190u32; +pub const NERR_ServiceNotCtrl: u32 = 2189u32; +pub const NERR_ServiceNotInstalled: u32 = 2184u32; +pub const NERR_ServiceNotStarting: u32 = 2194u32; +pub const NERR_ServiceTableFull: u32 = 2181u32; +pub const NERR_ServiceTableLocked: u32 = 2180u32; +pub const NERR_SetupAlreadyJoined: u32 = 2691u32; +pub const NERR_SetupCheckDNSConfig: u32 = 2699u32; +pub const NERR_SetupDomainController: u32 = 2693u32; +pub const NERR_SetupNotJoined: u32 = 2692u32; +pub const NERR_ShareMem: u32 = 2104u32; +pub const NERR_ShareNotFound: u32 = 2392u32; +pub const NERR_SourceIsDir: u32 = 2380u32; +pub const NERR_SpeGroupOp: u32 = 2234u32; +pub const NERR_SpoolNoMemory: u32 = 2165u32; +pub const NERR_SpoolerNotLoaded: u32 = 2161u32; +pub const NERR_StandaloneLogon: u32 = 2214u32; +pub const NERR_StartingRplBoot: u32 = 2516u32; +pub const NERR_Success: u32 = 0u32; +pub const NERR_SyncRequired: u32 = 2249u32; +pub const NERR_TargetVersionUnsupported: u32 = 2723u32; +pub const NERR_TimeDiffAtDC: u32 = 2457u32; +pub const NERR_TmpFile: u32 = 2316u32; +pub const NERR_TooManyAlerts: u32 = 2431u32; +pub const NERR_TooManyConnections: u32 = 2465u32; +pub const NERR_TooManyEntries: u32 = 2362u32; +pub const NERR_TooManyFiles: u32 = 2466u32; +pub const NERR_TooManyHostNames: u32 = 2731u32; +pub const NERR_TooManyImageParams: u32 = 2509u32; +pub const NERR_TooManyItems: u32 = 2121u32; +pub const NERR_TooManyNames: u32 = 2277u32; +pub const NERR_TooManyServers: u32 = 2463u32; +pub const NERR_TooManySessions: u32 = 2464u32; +pub const NERR_TooMuchData: u32 = 2317u32; +pub const NERR_TruncatedBroadcast: u32 = 2289u32; +pub const NERR_TryDownLevel: u32 = 2470u32; +pub const NERR_UPSDriverNotStarted: u32 = 2480u32; +pub const NERR_UPSInvalidCommPort: u32 = 2482u32; +pub const NERR_UPSInvalidConfig: u32 = 2481u32; +pub const NERR_UPSShutdownFailed: u32 = 2484u32; +pub const NERR_UPSSignalAsserted: u32 = 2483u32; +pub const NERR_UnableToAddName_F: u32 = 2205u32; +pub const NERR_UnableToAddName_W: u32 = 2204u32; +pub const NERR_UnableToDelName_F: u32 = 2207u32; +pub const NERR_UnableToDelName_W: u32 = 2206u32; +pub const NERR_UnknownDevDir: u32 = 2116u32; +pub const NERR_UnknownServer: u32 = 2103u32; +pub const NERR_UseNotFound: u32 = 2250u32; +pub const NERR_UserExists: u32 = 2224u32; +pub const NERR_UserInGroup: u32 = 2236u32; +pub const NERR_UserLogon: u32 = 2231u32; +pub const NERR_UserNotFound: u32 = 2221u32; +pub const NERR_UserNotInGroup: u32 = 2237u32; +pub const NERR_ValuesNotSet: u32 = 2715u32; +pub const NERR_WkstaInconsistentState: u32 = 2137u32; +pub const NERR_WkstaNotStarted: u32 = 2138u32; +pub const NERR_WriteFault: u32 = 2295u32; +pub const NETBIOS_NAME_LEN: u32 = 16u32; +pub const NETCFG_CLIENT_CID_MS_MSClient: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ms_msclient"); +pub const NETCFG_E_ACTIVE_RAS_CONNECTIONS: ::windows_sys::core::HRESULT = -2147180506i32; +pub const NETCFG_E_ADAPTER_NOT_FOUND: ::windows_sys::core::HRESULT = -2147180505i32; +pub const NETCFG_E_ALREADY_INITIALIZED: ::windows_sys::core::HRESULT = -2147180512i32; +pub const NETCFG_E_COMPONENT_REMOVED_PENDING_REBOOT: ::windows_sys::core::HRESULT = -2147180504i32; +pub const NETCFG_E_DUPLICATE_INSTANCEID: ::windows_sys::core::HRESULT = -2147180501i32; +pub const NETCFG_E_IN_USE: ::windows_sys::core::HRESULT = -2147180510i32; +pub const NETCFG_E_MAX_FILTER_LIMIT: ::windows_sys::core::HRESULT = -2147180503i32; +pub const NETCFG_E_NEED_REBOOT: ::windows_sys::core::HRESULT = -2147180507i32; +pub const NETCFG_E_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -2147180511i32; +pub const NETCFG_E_NO_WRITE_LOCK: ::windows_sys::core::HRESULT = -2147180508i32; +pub const NETCFG_E_VMSWITCH_ACTIVE_OVER_ADAPTER: ::windows_sys::core::HRESULT = -2147180502i32; +pub const NETCFG_SERVICE_CID_MS_NETBIOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ms_netbios"); +pub const NETCFG_SERVICE_CID_MS_PSCHED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ms_pschedpc"); +pub const NETCFG_SERVICE_CID_MS_SERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ms_server"); +pub const NETCFG_SERVICE_CID_MS_WLBS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ms_wlbs"); +pub const NETCFG_S_CAUSED_SETUP_CHANGE: ::windows_sys::core::HRESULT = 303140i32; +pub const NETCFG_S_COMMIT_NOW: ::windows_sys::core::HRESULT = 303141i32; +pub const NETCFG_S_DISABLE_QUERY: ::windows_sys::core::HRESULT = 303138i32; +pub const NETCFG_S_REBOOT: ::windows_sys::core::HRESULT = 303136i32; +pub const NETCFG_S_STILL_REFERENCED: ::windows_sys::core::HRESULT = 303139i32; +pub const NETCFG_TRANS_CID_MS_APPLETALK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ms_appletalk"); +pub const NETCFG_TRANS_CID_MS_NETBEUI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ms_netbeui"); +pub const NETCFG_TRANS_CID_MS_NETMON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ms_netmon"); +pub const NETCFG_TRANS_CID_MS_NWIPX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ms_nwipx"); +pub const NETCFG_TRANS_CID_MS_NWSPX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ms_nwspx"); +pub const NETCFG_TRANS_CID_MS_TCPIP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ms_tcpip"); +pub const NETLOGON_CONTROL_BACKUP_CHANGE_LOG: u32 = 65532u32; +pub const NETLOGON_CONTROL_BREAKPOINT: u32 = 65535u32; +pub const NETLOGON_CONTROL_CHANGE_PASSWORD: u32 = 9u32; +pub const NETLOGON_CONTROL_FIND_USER: u32 = 8u32; +pub const NETLOGON_CONTROL_FORCE_DNS_REG: u32 = 11u32; +pub const NETLOGON_CONTROL_PDC_REPLICATE: u32 = 4u32; +pub const NETLOGON_CONTROL_QUERY: u32 = 1u32; +pub const NETLOGON_CONTROL_QUERY_DNS_REG: u32 = 12u32; +pub const NETLOGON_CONTROL_QUERY_ENC_TYPES: u32 = 13u32; +pub const NETLOGON_CONTROL_REDISCOVER: u32 = 5u32; +pub const NETLOGON_CONTROL_REPLICATE: u32 = 2u32; +pub const NETLOGON_CONTROL_SET_DBFLAG: u32 = 65534u32; +pub const NETLOGON_CONTROL_SYNCHRONIZE: u32 = 3u32; +pub const NETLOGON_CONTROL_TC_QUERY: u32 = 6u32; +pub const NETLOGON_CONTROL_TC_VERIFY: u32 = 10u32; +pub const NETLOGON_CONTROL_TRANSPORT_NOTIFY: u32 = 7u32; +pub const NETLOGON_CONTROL_TRUNCATE_LOG: u32 = 65533u32; +pub const NETLOGON_CONTROL_UNLOAD_NETLOGON_DLL: u32 = 65531u32; +pub const NETLOGON_DNS_UPDATE_FAILURE: u32 = 64u32; +pub const NETLOGON_FULL_SYNC_REPLICATION: u32 = 4u32; +pub const NETLOGON_HAS_IP: u32 = 16u32; +pub const NETLOGON_HAS_TIMESERV: u32 = 32u32; +pub const NETLOGON_REDO_NEEDED: u32 = 8u32; +pub const NETLOGON_REPLICATION_IN_PROGRESS: u32 = 2u32; +pub const NETLOGON_REPLICATION_NEEDED: u32 = 1u32; +pub const NETLOGON_VERIFY_STATUS_RETURNED: u32 = 128u32; +pub const NETLOG_NetlogonNonWindowsSupportsSecureRpc: u32 = 5826u32; +pub const NETLOG_NetlogonRpcBacklogLimitFailure: u32 = 5837u32; +pub const NETLOG_NetlogonRpcBacklogLimitSet: u32 = 5836u32; +pub const NETLOG_NetlogonUnsecureRpcClient: u32 = 5827u32; +pub const NETLOG_NetlogonUnsecureRpcMachineAllowedBySsdl: u32 = 5830u32; +pub const NETLOG_NetlogonUnsecureRpcTrust: u32 = 5828u32; +pub const NETLOG_NetlogonUnsecureRpcTrustAllowedBySsdl: u32 = 5831u32; +pub const NETLOG_NetlogonUnsecuredRpcMachineTemporarilyAllowed: u32 = 5829u32; +pub const NETLOG_PassThruFilterError_Request_AdminOverride: u32 = 5834u32; +pub const NETLOG_PassThruFilterError_Request_Blocked: u32 = 5835u32; +pub const NETLOG_PassThruFilterError_Summary_AdminOverride: u32 = 5832u32; +pub const NETLOG_PassThruFilterError_Summary_Blocked: u32 = 5833u32; +pub const NETMAN_VARTYPE_HARDWARE_ADDRESS: u32 = 1u32; +pub const NETMAN_VARTYPE_STRING: u32 = 2u32; +pub const NETMAN_VARTYPE_ULONG: u32 = 0u32; +pub const NETSETUP_ACCT_CREATE: NET_JOIN_DOMAIN_JOIN_OPTIONS = 2u32; +pub const NETSETUP_ACCT_DELETE: u32 = 4u32; +pub const NETSETUP_ALT_SAMACCOUNTNAME: u32 = 131072u32; +pub const NETSETUP_AMBIGUOUS_DC: NET_JOIN_DOMAIN_JOIN_OPTIONS = 4096u32; +pub const NETSETUP_DEFER_SPN_SET: NET_JOIN_DOMAIN_JOIN_OPTIONS = 256u32; +pub const NETSETUP_DNS_NAME_CHANGES_ONLY: u32 = 4096u32; +pub const NETSETUP_DOMAIN_JOIN_IF_JOINED: NET_JOIN_DOMAIN_JOIN_OPTIONS = 32u32; +pub const NETSETUP_DONT_CONTROL_SERVICES: NET_JOIN_DOMAIN_JOIN_OPTIONS = 16384u32; +pub const NETSETUP_FORCE_SPN_SET: NET_JOIN_DOMAIN_JOIN_OPTIONS = 65536u32; +pub const NETSETUP_IGNORE_UNSUPPORTED_FLAGS: NET_JOIN_DOMAIN_JOIN_OPTIONS = 268435456u32; +pub const NETSETUP_INSTALL_INVOCATION: u32 = 262144u32; +pub const NETSETUP_JOIN_DC_ACCOUNT: NET_JOIN_DOMAIN_JOIN_OPTIONS = 512u32; +pub const NETSETUP_JOIN_DOMAIN: NET_JOIN_DOMAIN_JOIN_OPTIONS = 1u32; +pub const NETSETUP_JOIN_READONLY: NET_JOIN_DOMAIN_JOIN_OPTIONS = 2048u32; +pub const NETSETUP_JOIN_UNSECURE: NET_JOIN_DOMAIN_JOIN_OPTIONS = 64u32; +pub const NETSETUP_JOIN_WITH_NEW_NAME: NET_JOIN_DOMAIN_JOIN_OPTIONS = 1024u32; +pub const NETSETUP_MACHINE_PWD_PASSED: NET_JOIN_DOMAIN_JOIN_OPTIONS = 128u32; +pub const NETSETUP_NO_ACCT_REUSE: NET_JOIN_DOMAIN_JOIN_OPTIONS = 131072u32; +pub const NETSETUP_NO_NETLOGON_CACHE: NET_JOIN_DOMAIN_JOIN_OPTIONS = 8192u32; +pub const NETSETUP_PROVISIONING_PARAMS_CURRENT_VERSION: u32 = 2u32; +pub const NETSETUP_PROVISIONING_PARAMS_WIN8_VERSION: u32 = 1u32; +pub const NETSETUP_PROVISION_CHECK_PWD_ONLY: u32 = 2147483648u32; +pub const NETSETUP_PROVISION_DOWNLEVEL_PRIV_SUPPORT: NETSETUP_PROVISION = 1u32; +pub const NETSETUP_PROVISION_ONLINE_CALLER: NET_REQUEST_PROVISION_OPTIONS = 1073741824u32; +pub const NETSETUP_PROVISION_PERSISTENTSITE: u32 = 32u32; +pub const NETSETUP_PROVISION_REUSE_ACCOUNT: NETSETUP_PROVISION = 2u32; +pub const NETSETUP_PROVISION_ROOT_CA_CERTS: NETSETUP_PROVISION = 16u32; +pub const NETSETUP_PROVISION_SKIP_ACCOUNT_SEARCH: NETSETUP_PROVISION = 8u32; +pub const NETSETUP_PROVISION_USE_DEFAULT_PASSWORD: NETSETUP_PROVISION = 4u32; +pub const NETSETUP_SET_MACHINE_NAME: NET_JOIN_DOMAIN_JOIN_OPTIONS = 32768u32; +pub const NETSETUP_WIN9X_UPGRADE: NET_JOIN_DOMAIN_JOIN_OPTIONS = 16u32; +pub const NET_DFS_ENUM: i32 = 1073756324i32; +pub const NET_DFS_ENUMEX: i32 = 1073756325i32; +pub const NET_IGNORE_UNSUPPORTED_FLAGS: u32 = 1u32; +pub const NET_VALIDATE_BAD_PASSWORD_COUNT: u32 = 8u32; +pub const NET_VALIDATE_BAD_PASSWORD_TIME: u32 = 2u32; +pub const NET_VALIDATE_LOCKOUT_TIME: u32 = 4u32; +pub const NET_VALIDATE_PASSWORD_HISTORY: u32 = 32u32; +pub const NET_VALIDATE_PASSWORD_HISTORY_LENGTH: u32 = 16u32; +pub const NET_VALIDATE_PASSWORD_LAST_SET: u32 = 1u32; +pub const NON_VALIDATED_LOGON: u32 = 3u32; +pub const NOT_A_DFS_PATH: i32 = 1073756224i32; +pub const NO_PERMISSION_REQUIRED: u32 = 1u32; +pub const NSF_COMPONENT_UPDATE: NETWORK_UPGRADE_TYPE = 512i32; +pub const NSF_POSTSYSINSTALL: NETWORK_INSTALL_TIME = 2i32; +pub const NSF_PRIMARYINSTALL: NETWORK_INSTALL_TIME = 1i32; +pub const NSF_WIN16_UPGRADE: NETWORK_UPGRADE_TYPE = 16i32; +pub const NSF_WIN95_UPGRADE: NETWORK_UPGRADE_TYPE = 32i32; +pub const NSF_WINNT_SBS_UPGRADE: NETWORK_UPGRADE_TYPE = 256i32; +pub const NSF_WINNT_SVR_UPGRADE: NETWORK_UPGRADE_TYPE = 128i32; +pub const NSF_WINNT_WKS_UPGRADE: NETWORK_UPGRADE_TYPE = 64i32; +pub const NTFRSPRF_COLLECT_RPC_BINDING_ERROR_CONN: i32 = -1073728292i32; +pub const NTFRSPRF_COLLECT_RPC_BINDING_ERROR_SET: i32 = -1073728293i32; +pub const NTFRSPRF_COLLECT_RPC_CALL_ERROR_CONN: i32 = -1073728290i32; +pub const NTFRSPRF_COLLECT_RPC_CALL_ERROR_SET: i32 = -1073728291i32; +pub const NTFRSPRF_OPEN_RPC_BINDING_ERROR_CONN: i32 = -1073728296i32; +pub const NTFRSPRF_OPEN_RPC_BINDING_ERROR_SET: i32 = -1073728297i32; +pub const NTFRSPRF_OPEN_RPC_CALL_ERROR_CONN: i32 = -1073728294i32; +pub const NTFRSPRF_OPEN_RPC_CALL_ERROR_SET: i32 = -1073728295i32; +pub const NTFRSPRF_REGISTRY_ERROR_CONN: i32 = -1073728286i32; +pub const NTFRSPRF_REGISTRY_ERROR_SET: i32 = -1073728287i32; +pub const NTFRSPRF_VIRTUALALLOC_ERROR_CONN: i32 = -1073728288i32; +pub const NTFRSPRF_VIRTUALALLOC_ERROR_SET: i32 = -1073728289i32; +pub const NULL_USERSETINFO_PASSWD: ::windows_sys::core::PCSTR = ::windows_sys::core::s!(" "); +pub const NWSAP_DISPLAY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NW Sap Agent"); +pub const NWSAP_EVENT_BADWANFILTER_VALUE: i32 = -1073733302i32; +pub const NWSAP_EVENT_BIND_FAILED: i32 = -1073733320i32; +pub const NWSAP_EVENT_CARDLISTEVENT_FAIL: i32 = -1073733301i32; +pub const NWSAP_EVENT_CARDMALLOC_FAILED: i32 = -1073733316i32; +pub const NWSAP_EVENT_CREATELPCEVENT_ERROR: i32 = -1073733305i32; +pub const NWSAP_EVENT_CREATELPCPORT_ERROR: i32 = -1073733306i32; +pub const NWSAP_EVENT_GETSOCKNAME_FAILED: i32 = -1073733319i32; +pub const NWSAP_EVENT_HASHTABLE_MALLOC_FAILED: i32 = -1073733308i32; +pub const NWSAP_EVENT_INVALID_FILTERNAME: i32 = -2147475123i32; +pub const NWSAP_EVENT_KEY_NOT_FOUND: i32 = -1073733324i32; +pub const NWSAP_EVENT_LPCHANDLEMEMORY_ERROR: i32 = -1073733303i32; +pub const NWSAP_EVENT_LPCLISTENMEMORY_ERROR: i32 = -1073733304i32; +pub const NWSAP_EVENT_NOCARDS: i32 = -1073733315i32; +pub const NWSAP_EVENT_OPTBCASTINADDR_FAILED: i32 = -1073733317i32; +pub const NWSAP_EVENT_OPTEXTENDEDADDR_FAILED: i32 = -1073733318i32; +pub const NWSAP_EVENT_OPTMAXADAPTERNUM_ERROR: i32 = -1073733293i32; +pub const NWSAP_EVENT_RECVSEM_FAIL: i32 = -1073733313i32; +pub const NWSAP_EVENT_SDMDEVENT_FAIL: i32 = -1073733300i32; +pub const NWSAP_EVENT_SENDEVENT_FAIL: i32 = -1073733312i32; +pub const NWSAP_EVENT_SETOPTBCAST_FAILED: i32 = -1073733321i32; +pub const NWSAP_EVENT_SOCKET_FAILED: i32 = -1073733322i32; +pub const NWSAP_EVENT_STARTLPCWORKER_ERROR: i32 = -1073733307i32; +pub const NWSAP_EVENT_STARTRECEIVE_ERROR: i32 = -1073733311i32; +pub const NWSAP_EVENT_STARTWANCHECK_ERROR: i32 = -1073733294i32; +pub const NWSAP_EVENT_STARTWANWORKER_ERROR: i32 = -1073733295i32; +pub const NWSAP_EVENT_STARTWORKER_ERROR: i32 = -1073733310i32; +pub const NWSAP_EVENT_TABLE_MALLOC_FAILED: i32 = -1073733309i32; +pub const NWSAP_EVENT_THREADEVENT_FAIL: i32 = -1073733314i32; +pub const NWSAP_EVENT_WANBIND_FAILED: i32 = -1073733296i32; +pub const NWSAP_EVENT_WANEVENT_ERROR: i32 = -1073733291i32; +pub const NWSAP_EVENT_WANHANDLEMEMORY_ERROR: i32 = -1073733292i32; +pub const NWSAP_EVENT_WANSEM_FAIL: i32 = -1073733298i32; +pub const NWSAP_EVENT_WANSOCKET_FAILED: i32 = -1073733297i32; +pub const NWSAP_EVENT_WSASTARTUP_FAILED: i32 = -1073733323i32; +pub const NetAllComputerNames: NET_COMPUTER_NAME_TYPE = 2i32; +pub const NetAlternateComputerNames: NET_COMPUTER_NAME_TYPE = 1i32; +pub const NetComputerNameTypeMax: NET_COMPUTER_NAME_TYPE = 3i32; +pub const NetPrimaryComputerName: NET_COMPUTER_NAME_TYPE = 0i32; +pub const NetProvisioning: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2aa2b5fe_b846_4d07_810c_b21ee45320e3); +pub const NetSetupDnsMachine: NETSETUP_NAME_TYPE = 5i32; +pub const NetSetupDomain: NETSETUP_NAME_TYPE = 3i32; +pub const NetSetupDomainName: NETSETUP_JOIN_STATUS = 3i32; +pub const NetSetupMachine: NETSETUP_NAME_TYPE = 1i32; +pub const NetSetupNonExistentDomain: NETSETUP_NAME_TYPE = 4i32; +pub const NetSetupUnjoined: NETSETUP_JOIN_STATUS = 1i32; +pub const NetSetupUnknown: NETSETUP_NAME_TYPE = 0i32; +pub const NetSetupUnknownStatus: NETSETUP_JOIN_STATUS = 0i32; +pub const NetSetupWorkgroup: NETSETUP_NAME_TYPE = 2i32; +pub const NetSetupWorkgroupName: NETSETUP_JOIN_STATUS = 2i32; +pub const NetValidateAuthentication: NET_VALIDATE_PASSWORD_TYPE = 1i32; +pub const NetValidatePasswordChange: NET_VALIDATE_PASSWORD_TYPE = 2i32; +pub const NetValidatePasswordReset: NET_VALIDATE_PASSWORD_TYPE = 3i32; +pub const OBO_COMPONENT: OBO_TOKEN_TYPE = 2i32; +pub const OBO_SOFTWARE: OBO_TOKEN_TYPE = 3i32; +pub const OBO_USER: OBO_TOKEN_TYPE = 1i32; +pub const OS2MSG_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BASE"); +pub const PARMNUM_ALL: u32 = 0u32; +pub const PARMNUM_BASE_INFOLEVEL: u32 = 1000u32; +pub const PARM_ERROR_NONE: u32 = 0u32; +pub const PARM_ERROR_UNKNOWN: u32 = 4294967295u32; +pub const PASSWORD_EXPIRED: u32 = 2u32; +pub const PATHLEN: u32 = 256u32; +pub const PLATFORM_ID_DOS: u32 = 300u32; +pub const PLATFORM_ID_NT: u32 = 500u32; +pub const PLATFORM_ID_OS2: u32 = 400u32; +pub const PLATFORM_ID_OSF: u32 = 600u32; +pub const PLATFORM_ID_VMS: u32 = 700u32; +pub const PREFIX_MISMATCH: i32 = -1073727510i32; +pub const PREFIX_MISMATCH_FIXED: i32 = -1073727509i32; +pub const PREFIX_MISMATCH_NOT_FIXED: i32 = -1073727508i32; +pub const PRJOB_COMPLETE: u32 = 4u32; +pub const PRJOB_DELETED: u32 = 32768u32; +pub const PRJOB_DESTNOPAPER: u32 = 256u32; +pub const PRJOB_DESTOFFLINE: u32 = 32u32; +pub const PRJOB_DESTPAUSED: u32 = 64u32; +pub const PRJOB_DEVSTATUS: u32 = 508u32; +pub const PRJOB_ERROR: u32 = 16u32; +pub const PRJOB_INTERV: u32 = 8u32; +pub const PRJOB_NOTIFY: u32 = 128u32; +pub const PRJOB_QSTATUS: u32 = 3u32; +pub const PRJOB_QS_PAUSED: u32 = 1u32; +pub const PRJOB_QS_PRINTING: u32 = 3u32; +pub const PRJOB_QS_QUEUED: u32 = 0u32; +pub const PRJOB_QS_SPOOLING: u32 = 2u32; +pub const PROTO_IPV6_DHCP: u32 = 999u32; +pub const PROTO_IP_ALG: u32 = 10010u32; +pub const PROTO_IP_BGMP: u32 = 11u32; +pub const PROTO_IP_BOOTP: u32 = 9999u32; +pub const PROTO_IP_DHCP_ALLOCATOR: u32 = 10004u32; +pub const PROTO_IP_DIFFSERV: u32 = 10008u32; +pub const PROTO_IP_DNS_PROXY: u32 = 10003u32; +pub const PROTO_IP_DTP: u32 = 10013u32; +pub const PROTO_IP_FTP: u32 = 10012u32; +pub const PROTO_IP_H323: u32 = 10011u32; +pub const PROTO_IP_IGMP: u32 = 10u32; +pub const PROTO_IP_MGM: u32 = 10009u32; +pub const PROTO_IP_MSDP: u32 = 9u32; +pub const PROTO_IP_NAT: u32 = 10005u32; +pub const PROTO_IP_VRRP: u32 = 112u32; +pub const PROTO_TYPE_MCAST: u32 = 1u32; +pub const PROTO_TYPE_MS0: u32 = 2u32; +pub const PROTO_TYPE_MS1: u32 = 3u32; +pub const PROTO_TYPE_UCAST: u32 = 0u32; +pub const PROTO_VENDOR_MS0: u32 = 0u32; +pub const PROTO_VENDOR_MS1: u32 = 311u32; +pub const PROTO_VENDOR_MS2: u32 = 16383u32; +pub const PWLEN: u32 = 256u32; +pub const QNLEN: u32 = 80u32; +pub const RCUIF_DEMAND_DIAL: RASCON_UIINFO_FLAGS = 2i32; +pub const RCUIF_DISABLE_CLASS_BASED_ROUTE: RASCON_UIINFO_FLAGS = 32768i32; +pub const RCUIF_ENABLE_NBT: RASCON_UIINFO_FLAGS = 1024i32; +pub const RCUIF_NOT_ADMIN: RASCON_UIINFO_FLAGS = 4i32; +pub const RCUIF_USE_DISABLE_REGISTER_DNS: RASCON_UIINFO_FLAGS = 256i32; +pub const RCUIF_USE_HEADER_COMPRESSION: RASCON_UIINFO_FLAGS = 128i32; +pub const RCUIF_USE_IPv4_EXPLICIT_METRIC: RASCON_UIINFO_FLAGS = 64i32; +pub const RCUIF_USE_IPv4_NAME_SERVERS: RASCON_UIINFO_FLAGS = 16i32; +pub const RCUIF_USE_IPv4_REMOTE_GATEWAY: RASCON_UIINFO_FLAGS = 32i32; +pub const RCUIF_USE_IPv4_STATICADDRESS: RASCON_UIINFO_FLAGS = 8i32; +pub const RCUIF_USE_IPv6_EXPLICIT_METRIC: RASCON_UIINFO_FLAGS = 16384i32; +pub const RCUIF_USE_IPv6_NAME_SERVERS: RASCON_UIINFO_FLAGS = 4096i32; +pub const RCUIF_USE_IPv6_REMOTE_GATEWAY: RASCON_UIINFO_FLAGS = 8192i32; +pub const RCUIF_USE_IPv6_STATICADDRESS: RASCON_UIINFO_FLAGS = 2048i32; +pub const RCUIF_USE_PRIVATE_DNS_SUFFIX: RASCON_UIINFO_FLAGS = 512i32; +pub const RCUIF_VPN: RASCON_UIINFO_FLAGS = 1i32; +pub const REGISTER_PROTOCOL_ENTRY_POINT_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("RegisterProtocol"); +pub const REPL_EXPORT_EXTENT_INFOLEVEL: u32 = 1001u32; +pub const REPL_EXPORT_INTEGRITY_INFOLEVEL: u32 = 1000u32; +pub const REPL_EXTENT_FILE: u32 = 1u32; +pub const REPL_EXTENT_TREE: u32 = 2u32; +pub const REPL_GUARDTIME_INFOLEVEL: u32 = 1002u32; +pub const REPL_INTEGRITY_FILE: u32 = 1u32; +pub const REPL_INTEGRITY_TREE: u32 = 2u32; +pub const REPL_INTERVAL_INFOLEVEL: u32 = 1000u32; +pub const REPL_PULSE_INFOLEVEL: u32 = 1001u32; +pub const REPL_RANDOM_INFOLEVEL: u32 = 1003u32; +pub const REPL_ROLE_BOTH: u32 = 3u32; +pub const REPL_ROLE_EXPORT: u32 = 1u32; +pub const REPL_ROLE_IMPORT: u32 = 2u32; +pub const REPL_STATE_NEVER_REPLICATED: u32 = 3u32; +pub const REPL_STATE_NO_MASTER: u32 = 1u32; +pub const REPL_STATE_NO_SYNC: u32 = 2u32; +pub const REPL_STATE_OK: u32 = 0u32; +pub const REPL_UNLOCK_FORCE: u32 = 1u32; +pub const REPL_UNLOCK_NOFORCE: u32 = 0u32; +pub const RF_ADD_ALL_INTERFACES: u32 = 16u32; +pub const RF_DEMAND_UPDATE_ROUTES: u32 = 4u32; +pub const RF_MULTICAST: u32 = 32u32; +pub const RF_POWER: u32 = 64u32; +pub const RF_ROUTING: u32 = 1u32; +pub const RF_ROUTINGV6: u32 = 2u32; +pub const RIS_INTERFACE_ADDRESS_CHANGE: u32 = 0u32; +pub const RIS_INTERFACE_DISABLED: u32 = 2u32; +pub const RIS_INTERFACE_ENABLED: u32 = 1u32; +pub const RIS_INTERFACE_MEDIA_ABSENT: u32 = 4u32; +pub const RIS_INTERFACE_MEDIA_PRESENT: u32 = 3u32; +pub const ROUTING_DOMAIN_INFO_REVISION_1: u32 = 1u32; +pub const RTR_INFO_BLOCK_VERSION: u32 = 1u32; +pub const RTUTILS_MAX_PROTOCOL_DLL_LEN: u32 = 48u32; +pub const RTUTILS_MAX_PROTOCOL_NAME_LEN: u32 = 40u32; +pub const SERVCE_LM20_W32TIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("w32time"); +pub const SERVER_DISPLAY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Server"); +pub const SERVICE2_BASE: u32 = 5600u32; +pub const SERVICE_ACCOUNT_FLAG_ADD_AGAINST_RODC: i32 = 2i32; +pub const SERVICE_ACCOUNT_FLAG_LINK_TO_HOST_ONLY: i32 = 1i32; +pub const SERVICE_ACCOUNT_FLAG_REMOVE_OFFLINE: i32 = 2i32; +pub const SERVICE_ACCOUNT_FLAG_UNLINK_FROM_HOST_ONLY: i32 = 1i32; +pub const SERVICE_ACCOUNT_PASSWORD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_SA_{262E99C9-6160-4871-ACEC-4E61736B6F21}"); +pub const SERVICE_ACCOUNT_SECRET_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_SC_{262E99C9-6160-4871-ACEC-4E61736B6F21}_"); +pub const SERVICE_ADWS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ADWS"); +pub const SERVICE_AFP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AFP"); +pub const SERVICE_ALERTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ALERTER"); +pub const SERVICE_BASE: u32 = 3050u32; +pub const SERVICE_BROWSER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BROWSER"); +pub const SERVICE_CCP_CHKPT_NUM: u32 = 255u32; +pub const SERVICE_CCP_NO_HINT: u32 = 0u32; +pub const SERVICE_CCP_QUERY_HINT: u32 = 65536u32; +pub const SERVICE_CCP_WAIT_TIME: u32 = 65280u32; +pub const SERVICE_CTRL_CONTINUE: u32 = 2u32; +pub const SERVICE_CTRL_INTERROGATE: u32 = 0u32; +pub const SERVICE_CTRL_PAUSE: u32 = 1u32; +pub const SERVICE_CTRL_REDIR_COMM: u32 = 4u32; +pub const SERVICE_CTRL_REDIR_DISK: u32 = 1u32; +pub const SERVICE_CTRL_REDIR_PRINT: u32 = 2u32; +pub const SERVICE_CTRL_UNINSTALL: u32 = 3u32; +pub const SERVICE_DHCP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DHCP"); +pub const SERVICE_DNS_CACHE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DnsCache"); +pub const SERVICE_DOS_ENCRYPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ENCRYPT"); +pub const SERVICE_DSROLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsRoleSvc"); +pub const SERVICE_INSTALLED: u32 = 3u32; +pub const SERVICE_INSTALL_PENDING: u32 = 1u32; +pub const SERVICE_INSTALL_STATE: u32 = 3u32; +pub const SERVICE_IP_CHKPT_NUM: u32 = 255u32; +pub const SERVICE_IP_NO_HINT: u32 = 0u32; +pub const SERVICE_IP_QUERY_HINT: u32 = 65536u32; +pub const SERVICE_IP_WAITTIME_SHIFT: u32 = 8u32; +pub const SERVICE_IP_WAIT_TIME: u32 = 65280u32; +pub const SERVICE_ISMSERV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsmServ"); +pub const SERVICE_KDC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("kdc"); +pub const SERVICE_LM20_AFP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AFP"); +pub const SERVICE_LM20_ALERTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ALERTER"); +pub const SERVICE_LM20_BROWSER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BROWSER"); +pub const SERVICE_LM20_DHCP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DHCP"); +pub const SERVICE_LM20_DSROLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsRoleSvc"); +pub const SERVICE_LM20_ISMSERV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsmServ"); +pub const SERVICE_LM20_KDC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("kdc"); +pub const SERVICE_LM20_LMHOSTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LMHOSTS"); +pub const SERVICE_LM20_MESSENGER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MESSENGER"); +pub const SERVICE_LM20_NBT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NBT"); +pub const SERVICE_LM20_NETLOGON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NETLOGON"); +pub const SERVICE_LM20_NETPOPUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NETPOPUP"); +pub const SERVICE_LM20_NETRUN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NETRUN"); +pub const SERVICE_LM20_NTDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NTDS"); +pub const SERVICE_LM20_NTFRS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NtFrs"); +pub const SERVICE_LM20_NWSAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NwSapAgent"); +pub const SERVICE_LM20_REPL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("REPLICATOR"); +pub const SERVICE_LM20_RIPL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("REMOTEBOOT"); +pub const SERVICE_LM20_RPCLOCATOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RPCLOCATOR"); +pub const SERVICE_LM20_SCHEDULE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Schedule"); +pub const SERVICE_LM20_SERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SERVER"); +pub const SERVICE_LM20_SPOOLER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SPOOLER"); +pub const SERVICE_LM20_SQLSERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SQLSERVER"); +pub const SERVICE_LM20_TCPIP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TCPIP"); +pub const SERVICE_LM20_TELNET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Telnet"); +pub const SERVICE_LM20_TIMESOURCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TIMESOURCE"); +pub const SERVICE_LM20_TRKSVR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TrkSvr"); +pub const SERVICE_LM20_TRKWKS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TrkWks"); +pub const SERVICE_LM20_UPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UPS"); +pub const SERVICE_LM20_WORKSTATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WORKSTATION"); +pub const SERVICE_LM20_XACTSRV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("XACTSRV"); +pub const SERVICE_LMHOSTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LMHOSTS"); +pub const SERVICE_MAXTIME: u32 = 255u32; +pub const SERVICE_MESSENGER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MESSENGER"); +pub const SERVICE_NBT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NBT"); +pub const SERVICE_NETLOGON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NETLOGON"); +pub const SERVICE_NETPOPUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NETPOPUP"); +pub const SERVICE_NETRUN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NETRUN"); +pub const SERVICE_NOT_PAUSABLE: u32 = 0u32; +pub const SERVICE_NOT_UNINSTALLABLE: u32 = 0u32; +pub const SERVICE_NTDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NTDS"); +pub const SERVICE_NTFRS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NtFrs"); +pub const SERVICE_NTIP_WAITTIME_SHIFT: u32 = 12u32; +pub const SERVICE_NTLMSSP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NtLmSsp"); +pub const SERVICE_NT_MAXTIME: u32 = 65535u32; +pub const SERVICE_NWCS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NWCWorkstation"); +pub const SERVICE_NWSAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NwSapAgent"); +pub const SERVICE_PAUSABLE: u32 = 32u32; +pub const SERVICE_PAUSE_STATE: u32 = 12u32; +pub const SERVICE_REDIR_COMM_PAUSED: u32 = 1024u32; +pub const SERVICE_REDIR_DISK_PAUSED: u32 = 256u32; +pub const SERVICE_REDIR_PAUSED: u32 = 1792u32; +pub const SERVICE_REDIR_PRINT_PAUSED: u32 = 512u32; +pub const SERVICE_REPL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("REPLICATOR"); +pub const SERVICE_RESRV_MASK: u32 = 131071u32; +pub const SERVICE_RIPL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("REMOTEBOOT"); +pub const SERVICE_RPCLOCATOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RPCLOCATOR"); +pub const SERVICE_SCHEDULE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Schedule"); +pub const SERVICE_SERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LanmanServer"); +pub const SERVICE_SPOOLER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SPOOLER"); +pub const SERVICE_SQLSERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SQLSERVER"); +pub const SERVICE_TCPIP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TCPIP"); +pub const SERVICE_TELNET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Telnet"); +pub const SERVICE_TIMESOURCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TIMESOURCE"); +pub const SERVICE_TRKSVR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TrkSvr"); +pub const SERVICE_TRKWKS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TrkWks"); +pub const SERVICE_UIC_AMBIGPARM: u32 = 3058u32; +pub const SERVICE_UIC_BADPARMVAL: u32 = 3051u32; +pub const SERVICE_UIC_CONFIG: u32 = 3055u32; +pub const SERVICE_UIC_CONFLPARM: u32 = 3063u32; +pub const SERVICE_UIC_DUPPARM: u32 = 3059u32; +pub const SERVICE_UIC_EXEC: u32 = 3061u32; +pub const SERVICE_UIC_FILE: u32 = 3064u32; +pub const SERVICE_UIC_INTERNAL: u32 = 3057u32; +pub const SERVICE_UIC_KILL: u32 = 3060u32; +pub const SERVICE_UIC_MISSPARM: u32 = 3052u32; +pub const SERVICE_UIC_M_ADDPAK: u32 = 3090u32; +pub const SERVICE_UIC_M_ANNOUNCE: u32 = 3083u32; +pub const SERVICE_UIC_M_DATABASE_ERROR: u32 = 5602u32; +pub const SERVICE_UIC_M_DISK: u32 = 3071u32; +pub const SERVICE_UIC_M_ERRLOG: u32 = 3088u32; +pub const SERVICE_UIC_M_FILES: u32 = 3079u32; +pub const SERVICE_UIC_M_FILE_UW: u32 = 3089u32; +pub const SERVICE_UIC_M_LANGROUP: u32 = 3081u32; +pub const SERVICE_UIC_M_LANROOT: u32 = 3075u32; +pub const SERVICE_UIC_M_LAZY: u32 = 3091u32; +pub const SERVICE_UIC_M_LOGS: u32 = 3080u32; +pub const SERVICE_UIC_M_LSA_MACHINE_ACCT: u32 = 5601u32; +pub const SERVICE_UIC_M_MEMORY: u32 = 3070u32; +pub const SERVICE_UIC_M_MSGNAME: u32 = 3082u32; +pub const SERVICE_UIC_M_NETLOGON_AUTH: u32 = 3098u32; +pub const SERVICE_UIC_M_NETLOGON_DC_CFLCT: u32 = 3097u32; +pub const SERVICE_UIC_M_NETLOGON_MPATH: u32 = 5600u32; +pub const SERVICE_UIC_M_NETLOGON_NO_DC: u32 = 3096u32; +pub const SERVICE_UIC_M_NULL: u32 = 0u32; +pub const SERVICE_UIC_M_PROCESSES: u32 = 3073u32; +pub const SERVICE_UIC_M_REDIR: u32 = 3076u32; +pub const SERVICE_UIC_M_SECURITY: u32 = 3074u32; +pub const SERVICE_UIC_M_SEC_FILE_ERR: u32 = 3078u32; +pub const SERVICE_UIC_M_SERVER: u32 = 3077u32; +pub const SERVICE_UIC_M_SERVER_SEC_ERR: u32 = 3085u32; +pub const SERVICE_UIC_M_THREADS: u32 = 3072u32; +pub const SERVICE_UIC_M_UAS: u32 = 3084u32; +pub const SERVICE_UIC_M_UAS_INVALID_ROLE: u32 = 3095u32; +pub const SERVICE_UIC_M_UAS_MACHINE_ACCT: u32 = 3092u32; +pub const SERVICE_UIC_M_UAS_PROLOG: u32 = 3099u32; +pub const SERVICE_UIC_M_UAS_SERVERS_NMEMB: u32 = 3093u32; +pub const SERVICE_UIC_M_UAS_SERVERS_NOGRP: u32 = 3094u32; +pub const SERVICE_UIC_M_WKSTA: u32 = 3087u32; +pub const SERVICE_UIC_NORMAL: u32 = 0u32; +pub const SERVICE_UIC_RESOURCE: u32 = 3054u32; +pub const SERVICE_UIC_SUBSERV: u32 = 3062u32; +pub const SERVICE_UIC_SYSTEM: u32 = 3056u32; +pub const SERVICE_UIC_UNKPARM: u32 = 3053u32; +pub const SERVICE_UNINSTALLABLE: u32 = 16u32; +pub const SERVICE_UNINSTALLED: u32 = 0u32; +pub const SERVICE_UNINSTALL_PENDING: u32 = 2u32; +pub const SERVICE_UPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UPS"); +pub const SERVICE_W32TIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("w32time"); +pub const SERVICE_WORKSTATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LanmanWorkstation"); +pub const SERVICE_XACTSRV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("XACTSRV"); +pub const SESSION_CRYPT_KLEN: u32 = 21u32; +pub const SESSION_PWLEN: u32 = 24u32; +pub const SHPWLEN: u32 = 8u32; +pub const SNLEN: u32 = 80u32; +pub const SRV_HASH_GENERATION_ACTIVE: u32 = 2u32; +pub const SRV_SUPPORT_HASH_GENERATION: u32 = 1u32; +pub const STXTLEN: u32 = 256u32; +pub const SUPPORTS_ANY: i32 = -1i32; +pub const SUPPORTS_LOCAL: NET_REMOTE_COMPUTER_SUPPORTS_OPTIONS = 32u32; +pub const SUPPORTS_REMOTE_ADMIN_PROTOCOL: NET_REMOTE_COMPUTER_SUPPORTS_OPTIONS = 2u32; +pub const SUPPORTS_RPC: NET_REMOTE_COMPUTER_SUPPORTS_OPTIONS = 4u32; +pub const SUPPORTS_SAM_PROTOCOL: NET_REMOTE_COMPUTER_SUPPORTS_OPTIONS = 8u32; +pub const SUPPORTS_UNICODE: NET_REMOTE_COMPUTER_SUPPORTS_OPTIONS = 16u32; +pub const SVAUD_BADNETLOGON: u32 = 384u32; +pub const SVAUD_BADSESSLOGON: u32 = 24u32; +pub const SVAUD_BADUSE: u32 = 6144u32; +pub const SVAUD_GOODNETLOGON: u32 = 96u32; +pub const SVAUD_GOODSESSLOGON: u32 = 6u32; +pub const SVAUD_GOODUSE: u32 = 1536u32; +pub const SVAUD_LOGONLIM: u32 = 65536u32; +pub const SVAUD_PERMISSIONS: u32 = 16384u32; +pub const SVAUD_RESOURCE: u32 = 32768u32; +pub const SVAUD_SERVICE: u32 = 1u32; +pub const SVAUD_USERLIST: u32 = 8192u32; +pub const SVI1_NUM_ELEMENTS: u32 = 5u32; +pub const SVI2_NUM_ELEMENTS: u32 = 40u32; +pub const SVI3_NUM_ELEMENTS: u32 = 44u32; +pub const SVTI2_CLUSTER_DNN_NAME: u32 = 16u32; +pub const SVTI2_CLUSTER_NAME: u32 = 8u32; +pub const SVTI2_REMAP_PIPE_NAMES: u32 = 2u32; +pub const SVTI2_RESERVED1: u32 = 4096u32; +pub const SVTI2_RESERVED2: u32 = 8192u32; +pub const SVTI2_RESERVED3: u32 = 16384u32; +pub const SVTI2_SCOPED_NAME: u32 = 4u32; +pub const SVTI2_UNICODE_TRANSPORT_ADDRESS: u32 = 32u32; +pub const SV_ACCEPTDOWNLEVELAPIS_PARMNUM: u32 = 517u32; +pub const SV_ACCESSALERT_PARMNUM: u32 = 40u32; +pub const SV_ACTIVELOCKS_PARMNUM: u32 = 419u32; +pub const SV_ALERTSCHEDULE_PARMNUM: u32 = 547u32; +pub const SV_ALERTSCHED_PARMNUM: u32 = 37u32; +pub const SV_ALERTS_PARMNUM: u32 = 11u32; +pub const SV_ALIST_MTIME_PARMNUM: u32 = 403u32; +pub const SV_ANNDELTA_PARMNUM: u32 = 18u32; +pub const SV_ANNOUNCE_PARMNUM: u32 = 17u32; +pub const SV_AUTOSHARESERVER_PARMNUM: u32 = 592u32; +pub const SV_AUTOSHAREWKS_PARMNUM: u32 = 591u32; +pub const SV_BALANCECOUNT_PARMNUM: u32 = 577u32; +pub const SV_CACHEDDIRECTORYLIMIT_PARMNUM: u32 = 587u32; +pub const SV_CACHEDOPENLIMIT_PARMNUM: u32 = 571u32; +pub const SV_CHDEVJOBS_PARMNUM: u32 = 411u32; +pub const SV_CHDEVQ_PARMNUM: u32 = 410u32; +pub const SV_COMMENT_PARMNUM: u32 = 5u32; +pub const SV_CONNECTIONLESSAUTODISC_PARMNUM: u32 = 562u32; +pub const SV_CONNECTIONNOSESSIONSTIMEOUT_PARMNUM: u32 = 596u32; +pub const SV_CONNECTIONS_PARMNUM: u32 = 412u32; +pub const SV_CRITICALTHREADS_PARMNUM: u32 = 572u32; +pub const SV_DISABLEDOS_PARMNUM: u32 = 600u32; +pub const SV_DISABLESTRICTNAMECHECKING_PARMNUM: u32 = 602u32; +pub const SV_DISC_PARMNUM: u32 = 10u32; +pub const SV_DISKALERT_PARMNUM: u32 = 41u32; +pub const SV_DISKSPACETHRESHOLD_PARMNUM: u32 = 550u32; +pub const SV_DOMAIN_PARMNUM: u32 = 519u32; +pub const SV_ENABLEAUTHENTICATEUSERSHARING_PARMNUM: u32 = 603u32; +pub const SV_ENABLECOMPRESSION_PARMNUM: u32 = 590u32; +pub const SV_ENABLEFCBOPENS_PARMNUM: u32 = 538u32; +pub const SV_ENABLEFORCEDLOGOFF_PARMNUM: u32 = 515u32; +pub const SV_ENABLEOPLOCKFORCECLOSE_PARMNUM: u32 = 537u32; +pub const SV_ENABLEOPLOCKS_PARMNUM: u32 = 536u32; +pub const SV_ENABLERAW_PARMNUM: u32 = 539u32; +pub const SV_ENABLESECURITYSIGNATURE_PARMNUM: u32 = 593u32; +pub const SV_ENABLESHAREDNETDRIVES_PARMNUM: u32 = 540u32; +pub const SV_ENABLESOFTCOMPAT_PARMNUM: u32 = 514u32; +pub const SV_ENABLEW9XSECURITYSIGNATURE_PARMNUM: u32 = 598u32; +pub const SV_ENABLEWFW311DIRECTIPX_PARMNUM: u32 = 574u32; +pub const SV_ENFORCEKERBEROSREAUTHENTICATION_PARMNUM: u32 = 599u32; +pub const SV_ERRORALERT_PARMNUM: u32 = 38u32; +pub const SV_ERRORTHRESHOLD_PARMNUM: u32 = 548u32; +pub const SV_GLIST_MTIME_PARMNUM: u32 = 402u32; +pub const SV_GUESTACC_PARMNUM: u32 = 408u32; +pub const SV_HIDDEN: SERVER_INFO_HIDDEN = 1i32; +pub const SV_HIDDEN_PARMNUM: u32 = 16u32; +pub const SV_IDLETHREADTIMEOUT_PARMNUM: u32 = 597u32; +pub const SV_INITCONNTABLE_PARMNUM: u32 = 544u32; +pub const SV_INITFILETABLE_PARMNUM: u32 = 545u32; +pub const SV_INITSEARCHTABLE_PARMNUM: u32 = 546u32; +pub const SV_INITSESSTABLE_PARMNUM: u32 = 543u32; +pub const SV_INITWORKITEMS_PARMNUM: u32 = 505u32; +pub const SV_IRPSTACKSIZE_PARMNUM: u32 = 508u32; +pub const SV_LANMASK_PARMNUM: u32 = 407u32; +pub const SV_LINKINFOVALIDTIME_PARMNUM: u32 = 554u32; +pub const SV_LMANNOUNCE_PARMNUM: u32 = 518u32; +pub const SV_LOCKVIOLATIONDELAY_PARMNUM: u32 = 569u32; +pub const SV_LOCKVIOLATIONOFFSET_PARMNUM: u32 = 568u32; +pub const SV_LOCKVIOLATIONRETRIES_PARMNUM: u32 = 567u32; +pub const SV_LOGONALERT_PARMNUM: u32 = 39u32; +pub const SV_LOWDISKSPACEMINIMUM_PARMNUM: u32 = 601u32; +pub const SV_MAXAUDITSZ_PARMNUM: u32 = 43u32; +pub const SV_MAXCOPYLENGTH_PARMNUM: u32 = 588u32; +pub const SV_MAXCOPYREADLEN_PARMNUM: u32 = 520u32; +pub const SV_MAXCOPYWRITELEN_PARMNUM: u32 = 521u32; +pub const SV_MAXFREECONNECTIONS_PARMNUM: u32 = 542u32; +pub const SV_MAXFREELFCBS_PARMNUM: u32 = 581u32; +pub const SV_MAXFREEMFCBS_PARMNUM: u32 = 580u32; +pub const SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM: u32 = 582u32; +pub const SV_MAXFREERFCBS_PARMNUM: u32 = 579u32; +pub const SV_MAXGLOBALOPENSEARCH_PARMNUM: u32 = 565u32; +pub const SV_MAXKEEPCOMPLSEARCH_PARMNUM: u32 = 525u32; +pub const SV_MAXKEEPSEARCH_PARMNUM: u32 = 523u32; +pub const SV_MAXLINKDELAY_PARMNUM: u32 = 552u32; +pub const SV_MAXMPXCT_PARMNUM: u32 = 533u32; +pub const SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM: u32 = 512u32; +pub const SV_MAXPAGEDMEMORYUSAGE_PARMNUM: u32 = 513u32; +pub const SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM: u32 = 584u32; +pub const SV_MAXRAWBUFLEN_PARMNUM: u32 = 509u32; +pub const SV_MAXRAWWORKITEMS_PARMNUM: u32 = 557u32; +pub const SV_MAXTHREADSPERQUEUE_PARMNUM: u32 = 586u32; +pub const SV_MAXWORKITEMIDLETIME_PARMNUM: u32 = 556u32; +pub const SV_MAXWORKITEMS_PARMNUM: u32 = 506u32; +pub const SV_MAX_CMD_LEN: u32 = 256u32; +pub const SV_MAX_SRV_HEUR_LEN: u32 = 32u32; +pub const SV_MDLREADSWITCHOVER_PARMNUM: u32 = 570u32; +pub const SV_MINCLIENTBUFFERSIZE_PARMNUM: u32 = 595u32; +pub const SV_MINFREECONNECTIONS_PARMNUM: u32 = 541u32; +pub const SV_MINFREEWORKITEMS_PARMNUM: u32 = 530u32; +pub const SV_MINKEEPCOMPLSEARCH_PARMNUM: u32 = 524u32; +pub const SV_MINKEEPSEARCH_PARMNUM: u32 = 522u32; +pub const SV_MINLINKTHROUGHPUT_PARMNUM: u32 = 553u32; +pub const SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM: u32 = 583u32; +pub const SV_MINRCVQUEUE_PARMNUM: u32 = 529u32; +pub const SV_NAME_PARMNUM: u32 = 102u32; +pub const SV_NETIOALERT_PARMNUM: u32 = 42u32; +pub const SV_NETWORKERRORTHRESHOLD_PARMNUM: u32 = 549u32; +pub const SV_NODISC: i32 = -1i32; +pub const SV_NUMADMIN_PARMNUM: u32 = 406u32; +pub const SV_NUMBIGBUF_PARMNUM: u32 = 422u32; +pub const SV_NUMBLOCKTHREADS_PARMNUM: u32 = 527u32; +pub const SV_NUMFILETASKS_PARMNUM: u32 = 423u32; +pub const SV_NUMREQBUF_PARMNUM: u32 = 420u32; +pub const SV_OPENFILES_PARMNUM: u32 = 414u32; +pub const SV_OPENSEARCH_PARMNUM: u32 = 503u32; +pub const SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM: u32 = 535u32; +pub const SV_OPLOCKBREAKWAIT_PARMNUM: u32 = 534u32; +pub const SV_OTHERQUEUEAFFINITY_PARMNUM: u32 = 575u32; +pub const SV_PLATFORM_ID_NT: u32 = 500u32; +pub const SV_PLATFORM_ID_OS2: u32 = 400u32; +pub const SV_PLATFORM_ID_PARMNUM: u32 = 101u32; +pub const SV_PREFERREDAFFINITY_PARMNUM: u32 = 578u32; +pub const SV_PRODUCTTYPE_PARMNUM: u32 = 560u32; +pub const SV_QUEUESAMPLESECS_PARMNUM: u32 = 576u32; +pub const SV_RAWWORKITEMS_PARMNUM: u32 = 507u32; +pub const SV_REMOVEDUPLICATESEARCHES_PARMNUM: u32 = 566u32; +pub const SV_REQUIRESECURITYSIGNATURE_PARMNUM: u32 = 594u32; +pub const SV_RESTRICTNULLSESSACCESS_PARMNUM: u32 = 573u32; +pub const SV_SCAVQOSINFOUPDATETIME_PARMNUM: u32 = 555u32; +pub const SV_SCAVTIMEOUT_PARMNUM: u32 = 528u32; +pub const SV_SECURITY_PARMNUM: u32 = 405u32; +pub const SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM: u32 = 585u32; +pub const SV_SERVERSIZE_PARMNUM: u32 = 561u32; +pub const SV_SESSCONNS_PARMNUM: u32 = 511u32; +pub const SV_SESSOPENS_PARMNUM: u32 = 501u32; +pub const SV_SESSREQS_PARMNUM: u32 = 417u32; +pub const SV_SESSUSERS_PARMNUM: u32 = 510u32; +pub const SV_SESSVCS_PARMNUM: u32 = 502u32; +pub const SV_SHARESECURITY: SERVER_INFO_SECURITY = 0u32; +pub const SV_SHARES_PARMNUM: u32 = 413u32; +pub const SV_SHARINGVIOLATIONDELAY_PARMNUM: u32 = 564u32; +pub const SV_SHARINGVIOLATIONRETRIES_PARMNUM: u32 = 563u32; +pub const SV_SIZREQBUF_PARMNUM: u32 = 504u32; +pub const SV_SRVHEURISTICS_PARMNUM: u32 = 431u32; +pub const SV_THREADCOUNTADD_PARMNUM: u32 = 526u32; +pub const SV_THREADPRIORITY_PARMNUM: u32 = 532u32; +pub const SV_TIMESOURCE_PARMNUM: u32 = 516u32; +pub const SV_TYPE_AFP: NET_SERVER_TYPE = 64u32; +pub const SV_TYPE_ALL: NET_SERVER_TYPE = 4294967295u32; +pub const SV_TYPE_ALTERNATE_XPORT: NET_SERVER_TYPE = 536870912u32; +pub const SV_TYPE_BACKUP_BROWSER: NET_SERVER_TYPE = 131072u32; +pub const SV_TYPE_CLUSTER_NT: NET_SERVER_TYPE = 16777216u32; +pub const SV_TYPE_CLUSTER_VS_NT: NET_SERVER_TYPE = 67108864u32; +pub const SV_TYPE_DCE: NET_SERVER_TYPE = 268435456u32; +pub const SV_TYPE_DFS: NET_SERVER_TYPE = 8388608u32; +pub const SV_TYPE_DIALIN_SERVER: NET_SERVER_TYPE = 1024u32; +pub const SV_TYPE_DOMAIN_BAKCTRL: NET_SERVER_TYPE = 16u32; +pub const SV_TYPE_DOMAIN_CTRL: NET_SERVER_TYPE = 8u32; +pub const SV_TYPE_DOMAIN_ENUM: NET_SERVER_TYPE = 2147483648u32; +pub const SV_TYPE_DOMAIN_MASTER: NET_SERVER_TYPE = 524288u32; +pub const SV_TYPE_DOMAIN_MEMBER: NET_SERVER_TYPE = 256u32; +pub const SV_TYPE_LOCAL_LIST_ONLY: NET_SERVER_TYPE = 1073741824u32; +pub const SV_TYPE_MASTER_BROWSER: NET_SERVER_TYPE = 262144u32; +pub const SV_TYPE_NOVELL: NET_SERVER_TYPE = 128u32; +pub const SV_TYPE_NT: NET_SERVER_TYPE = 4096u32; +pub const SV_TYPE_PARMNUM: u32 = 105u32; +pub const SV_TYPE_POTENTIAL_BROWSER: NET_SERVER_TYPE = 65536u32; +pub const SV_TYPE_PRINTQ_SERVER: NET_SERVER_TYPE = 512u32; +pub const SV_TYPE_SERVER: NET_SERVER_TYPE = 2u32; +pub const SV_TYPE_SERVER_MFPN: NET_SERVER_TYPE = 16384u32; +pub const SV_TYPE_SERVER_NT: NET_SERVER_TYPE = 32768u32; +pub const SV_TYPE_SERVER_OSF: NET_SERVER_TYPE = 1048576u32; +pub const SV_TYPE_SERVER_UNIX: NET_SERVER_TYPE = 2048u32; +pub const SV_TYPE_SERVER_VMS: NET_SERVER_TYPE = 2097152u32; +pub const SV_TYPE_SQLSERVER: NET_SERVER_TYPE = 4u32; +pub const SV_TYPE_TERMINALSERVER: NET_SERVER_TYPE = 33554432u32; +pub const SV_TYPE_TIME_SOURCE: NET_SERVER_TYPE = 32u32; +pub const SV_TYPE_WFW: NET_SERVER_TYPE = 8192u32; +pub const SV_TYPE_WINDOWS: NET_SERVER_TYPE = 4194304u32; +pub const SV_TYPE_WORKSTATION: NET_SERVER_TYPE = 1u32; +pub const SV_TYPE_XENIX_SERVER: NET_SERVER_TYPE = 2048u32; +pub const SV_ULIST_MTIME_PARMNUM: u32 = 401u32; +pub const SV_USERPATH_PARMNUM: u32 = 112u32; +pub const SV_USERSECURITY: SERVER_INFO_SECURITY = 1u32; +pub const SV_USERS_PARMNUM: u32 = 107u32; +pub const SV_USERS_PER_LICENSE: u32 = 5u32; +pub const SV_VERSION_MAJOR_PARMNUM: u32 = 103u32; +pub const SV_VERSION_MINOR_PARMNUM: u32 = 104u32; +pub const SV_VISIBLE: SERVER_INFO_HIDDEN = 0i32; +pub const SV_XACTMEMSIZE_PARMNUM: u32 = 531u32; +pub const SW_AUTOPROF_LOAD_MASK: u32 = 1u32; +pub const SW_AUTOPROF_SAVE_MASK: u32 = 2u32; +pub const ServiceAccountPasswordGUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x262e99c9_6160_4871_acec_4e61736b6f21); +pub const TITLE_SC_MESSAGE_BOX: i32 = -1073734795i32; +pub const TRACE_NO_STDINFO: u32 = 1u32; +pub const TRACE_NO_SYNCH: u32 = 4u32; +pub const TRACE_USE_CONSOLE: u32 = 2u32; +pub const TRACE_USE_DATE: u32 = 8u32; +pub const TRACE_USE_FILE: u32 = 1u32; +pub const TRACE_USE_MASK: u32 = 2u32; +pub const TRACE_USE_MSEC: u32 = 4u32; +pub const TRANSPORT_NAME_PARMNUM: u32 = 202u32; +pub const TRANSPORT_QUALITYOFSERVICE_PARMNUM: u32 = 201u32; +pub const UAS_ROLE_BACKUP: USER_MODALS_ROLES = 2u32; +pub const UAS_ROLE_MEMBER: USER_MODALS_ROLES = 1u32; +pub const UAS_ROLE_PRIMARY: USER_MODALS_ROLES = 3u32; +pub const UAS_ROLE_STANDALONE: USER_MODALS_ROLES = 0u32; +pub const UF_ACCOUNTDISABLE: USER_ACCOUNT_FLAGS = 2u32; +pub const UF_DONT_EXPIRE_PASSWD: USER_ACCOUNT_FLAGS = 65536u32; +pub const UF_DONT_REQUIRE_PREAUTH: USER_ACCOUNT_FLAGS = 4194304u32; +pub const UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED: USER_ACCOUNT_FLAGS = 128u32; +pub const UF_HOMEDIR_REQUIRED: USER_ACCOUNT_FLAGS = 8u32; +pub const UF_INTERDOMAIN_TRUST_ACCOUNT: u32 = 2048u32; +pub const UF_LOCKOUT: USER_ACCOUNT_FLAGS = 16u32; +pub const UF_MNS_LOGON_ACCOUNT: u32 = 131072u32; +pub const UF_NORMAL_ACCOUNT: u32 = 512u32; +pub const UF_NOT_DELEGATED: USER_ACCOUNT_FLAGS = 1048576u32; +pub const UF_NO_AUTH_DATA_REQUIRED: u32 = 33554432u32; +pub const UF_PARTIAL_SECRETS_ACCOUNT: u32 = 67108864u32; +pub const UF_PASSWD_CANT_CHANGE: USER_ACCOUNT_FLAGS = 64u32; +pub const UF_PASSWD_NOTREQD: USER_ACCOUNT_FLAGS = 32u32; +pub const UF_PASSWORD_EXPIRED: USER_ACCOUNT_FLAGS = 8388608u32; +pub const UF_SCRIPT: USER_ACCOUNT_FLAGS = 1u32; +pub const UF_SERVER_TRUST_ACCOUNT: u32 = 8192u32; +pub const UF_SMARTCARD_REQUIRED: USER_ACCOUNT_FLAGS = 262144u32; +pub const UF_TEMP_DUPLICATE_ACCOUNT: u32 = 256u32; +pub const UF_TRUSTED_FOR_DELEGATION: USER_ACCOUNT_FLAGS = 524288u32; +pub const UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION: USER_ACCOUNT_FLAGS = 16777216u32; +pub const UF_USE_AES_KEYS: u32 = 134217728u32; +pub const UF_USE_DES_KEY_ONLY: USER_ACCOUNT_FLAGS = 2097152u32; +pub const UF_WORKSTATION_TRUST_ACCOUNT: u32 = 4096u32; +pub const UNCLEN: u32 = 17u32; +pub const UNITS_PER_DAY: u32 = 24u32; +pub const UNLEN: u32 = 256u32; +pub const UPPER_GET_HINT_MASK: u32 = 267386880u32; +pub const UPPER_HINT_MASK: u32 = 65280u32; +pub const USER_ACCT_EXPIRES_PARMNUM: u32 = 17u32; +pub const USER_AUTH_FLAGS_PARMNUM: u32 = 10u32; +pub const USER_CODE_PAGE_PARMNUM: u32 = 25u32; +pub const USER_COMMENT_PARMNUM: u32 = 7u32; +pub const USER_COUNTRY_CODE_PARMNUM: u32 = 24u32; +pub const USER_FLAGS_PARMNUM: u32 = 8u32; +pub const USER_FULL_NAME_PARMNUM: u32 = 11u32; +pub const USER_HOME_DIR_DRIVE_PARMNUM: u32 = 53u32; +pub const USER_HOME_DIR_PARMNUM: u32 = 6u32; +pub const USER_LAST_LOGOFF_PARMNUM: u32 = 16u32; +pub const USER_LAST_LOGON_PARMNUM: u32 = 15u32; +pub const USER_LOGON_HOURS_PARMNUM: u32 = 20u32; +pub const USER_LOGON_SERVER_PARMNUM: u32 = 23u32; +pub const USER_MAX_STORAGE_PARMNUM: u32 = 18u32; +pub const USER_NAME_PARMNUM: u32 = 1u32; +pub const USER_NUM_LOGONS_PARMNUM: u32 = 22u32; +pub const USER_PAD_PW_COUNT_PARMNUM: u32 = 21u32; +pub const USER_PARMS_PARMNUM: u32 = 13u32; +pub const USER_PASSWORD_AGE_PARMNUM: u32 = 4u32; +pub const USER_PASSWORD_PARMNUM: u32 = 3u32; +pub const USER_PRIMARY_GROUP_PARMNUM: u32 = 51u32; +pub const USER_PRIV_ADMIN: USER_PRIV = 2u32; +pub const USER_PRIV_GUEST: USER_PRIV = 0u32; +pub const USER_PRIV_MASK: u32 = 3u32; +pub const USER_PRIV_PARMNUM: u32 = 5u32; +pub const USER_PRIV_USER: USER_PRIV = 1u32; +pub const USER_PROFILE: u32 = 52u32; +pub const USER_PROFILE_PARMNUM: u32 = 52u32; +pub const USER_SCRIPT_PATH_PARMNUM: u32 = 9u32; +pub const USER_UNITS_PER_WEEK_PARMNUM: u32 = 19u32; +pub const USER_USR_COMMENT_PARMNUM: u32 = 12u32; +pub const USER_WORKSTATIONS_PARMNUM: u32 = 14u32; +pub const USE_ASGTYPE_PARMNUM: u32 = 4u32; +pub const USE_AUTHIDENTITY_PARMNUM: u32 = 8u32; +pub const USE_CHARDEV: u32 = 2u32; +pub const USE_CONN: u32 = 4u32; +pub const USE_DEFAULT_CREDENTIALS: u32 = 4u32; +pub const USE_DISCONN: u32 = 2u32; +pub const USE_DISKDEV: USE_INFO_ASG_TYPE = 0u32; +pub const USE_DOMAINNAME_PARMNUM: u32 = 6u32; +pub const USE_FLAGS_PARMNUM: u32 = 7u32; +pub const USE_FLAG_GLOBAL_MAPPING: u32 = 65536u32; +pub const USE_FORCE: FORCE_LEVEL_FLAGS = 1u32; +pub const USE_IPC: USE_INFO_ASG_TYPE = 3u32; +pub const USE_LOCAL_PARMNUM: u32 = 1u32; +pub const USE_LOTS_OF_FORCE: FORCE_LEVEL_FLAGS = 2u32; +pub const USE_NETERR: u32 = 3u32; +pub const USE_NOFORCE: FORCE_LEVEL_FLAGS = 0u32; +pub const USE_OK: u32 = 0u32; +pub const USE_OPTIONS_PARMNUM: u32 = 10u32; +pub const USE_PASSWORD_PARMNUM: u32 = 3u32; +pub const USE_PAUSED: u32 = 1u32; +pub const USE_RECONN: u32 = 5u32; +pub const USE_REMOTE_PARMNUM: u32 = 2u32; +pub const USE_SD_PARMNUM: u32 = 9u32; +pub const USE_SESSLOST: u32 = 2u32; +pub const USE_SPECIFIC_TRANSPORT: u32 = 2147483648u32; +pub const USE_SPOOLDEV: USE_INFO_ASG_TYPE = 1u32; +pub const USE_USERNAME_PARMNUM: u32 = 5u32; +pub const USE_WILDCARD: USE_INFO_ASG_TYPE = 4294967295u32; +pub const UseTransportType_None: TRANSPORT_TYPE = 0i32; +pub const UseTransportType_Quic: TRANSPORT_TYPE = 2i32; +pub const UseTransportType_Wsk: TRANSPORT_TYPE = 1i32; +pub const VALIDATED_LOGON: u32 = 0u32; +pub const VALID_LOGOFF: u32 = 1u32; +pub const WKSTA_BUFFERNAMEDPIPES_PARMNUM: u32 = 51u32; +pub const WKSTA_BUFFERREADONLYFILES_PARMNUM: u32 = 59u32; +pub const WKSTA_BUFFILESWITHDENYWRITE_PARMNUM: u32 = 58u32; +pub const WKSTA_CACHEFILETIMEOUT_PARMNUM: u32 = 47u32; +pub const WKSTA_CHARCOUNT_PARMNUM: u32 = 12u32; +pub const WKSTA_CHARTIME_PARMNUM: u32 = 11u32; +pub const WKSTA_CHARWAIT_PARMNUM: u32 = 10u32; +pub const WKSTA_COMPUTERNAME_PARMNUM: u32 = 1u32; +pub const WKSTA_DORMANTFILELIMIT_PARMNUM: u32 = 46u32; +pub const WKSTA_ERRLOGSZ_PARMNUM: u32 = 27u32; +pub const WKSTA_FORCECORECREATEMODE_PARMNUM: u32 = 60u32; +pub const WKSTA_KEEPCONN_PARMNUM: u32 = 13u32; +pub const WKSTA_KEEPSEARCH_PARMNUM: u32 = 14u32; +pub const WKSTA_LANGROUP_PARMNUM: u32 = 2u32; +pub const WKSTA_LANROOT_PARMNUM: u32 = 7u32; +pub const WKSTA_LOCKINCREMENT_PARMNUM: u32 = 42u32; +pub const WKSTA_LOCKMAXIMUM_PARMNUM: u32 = 43u32; +pub const WKSTA_LOCKQUOTA_PARMNUM: u32 = 41u32; +pub const WKSTA_LOGGED_ON_USERS_PARMNUM: u32 = 6u32; +pub const WKSTA_LOGON_DOMAIN_PARMNUM: u32 = 8u32; +pub const WKSTA_LOGON_SERVER_PARMNUM: u32 = 9u32; +pub const WKSTA_MAILSLOTS_PARMNUM: u32 = 30u32; +pub const WKSTA_MAXCMDS_PARMNUM: u32 = 15u32; +pub const WKSTA_MAXTHREADS_PARMNUM: u32 = 33u32; +pub const WKSTA_MAXWRKCACHE_PARMNUM: u32 = 17u32; +pub const WKSTA_NUMALERTS_PARMNUM: u32 = 20u32; +pub const WKSTA_NUMCHARBUF_PARMNUM: u32 = 22u32; +pub const WKSTA_NUMDGRAMBUF_PARMNUM: u32 = 31u32; +pub const WKSTA_NUMSERVICES_PARMNUM: u32 = 21u32; +pub const WKSTA_NUMWORKBUF_PARMNUM: u32 = 16u32; +pub const WKSTA_OTH_DOMAINS_PARMNUM: u32 = 101u32; +pub const WKSTA_PIPEINCREMENT_PARMNUM: u32 = 44u32; +pub const WKSTA_PIPEMAXIMUM_PARMNUM: u32 = 45u32; +pub const WKSTA_PLATFORM_ID_PARMNUM: u32 = 100u32; +pub const WKSTA_PRINTBUFTIME_PARMNUM: u32 = 28u32; +pub const WKSTA_READAHEADTHRUPUT_PARMNUM: u32 = 62u32; +pub const WKSTA_SESSTIMEOUT_PARMNUM: u32 = 18u32; +pub const WKSTA_SIZCHARBUF_PARMNUM: u32 = 23u32; +pub const WKSTA_SIZERROR_PARMNUM: u32 = 19u32; +pub const WKSTA_SIZWORKBUF_PARMNUM: u32 = 29u32; +pub const WKSTA_USE512BYTESMAXTRANSFER_PARMNUM: u32 = 61u32; +pub const WKSTA_USECLOSEBEHIND_PARMNUM: u32 = 50u32; +pub const WKSTA_USEENCRYPTION_PARMNUM: u32 = 57u32; +pub const WKSTA_USELOCKANDREADANDUNLOCK_PARMNUM: u32 = 52u32; +pub const WKSTA_USEOPPORTUNISTICLOCKING_PARMNUM: u32 = 48u32; +pub const WKSTA_USERAWREAD_PARMNUM: u32 = 54u32; +pub const WKSTA_USERAWWRITE_PARMNUM: u32 = 55u32; +pub const WKSTA_USEUNLOCKBEHIND_PARMNUM: u32 = 49u32; +pub const WKSTA_USEWRITERAWWITHDATA_PARMNUM: u32 = 56u32; +pub const WKSTA_UTILIZENTCACHING_PARMNUM: u32 = 53u32; +pub const WKSTA_VER_MAJOR_PARMNUM: u32 = 4u32; +pub const WKSTA_VER_MINOR_PARMNUM: u32 = 5u32; +pub const WKSTA_WRKHEURISTICS_PARMNUM: u32 = 32u32; +pub const WORKSTATION_DISPLAY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Workstation"); +pub const WZC_PROFILE_API_ERROR_FAILED_TO_LOAD_SCHEMA: u32 = 34u32; +pub const WZC_PROFILE_API_ERROR_FAILED_TO_LOAD_XML: u32 = 33u32; +pub const WZC_PROFILE_API_ERROR_INTERNAL: u32 = 36u32; +pub const WZC_PROFILE_API_ERROR_NOT_SUPPORTED: u32 = 32u32; +pub const WZC_PROFILE_API_ERROR_XML_VALIDATION_FAILED: u32 = 35u32; +pub const WZC_PROFILE_CONFIG_ERROR_1X_NOT_ALLOWED: u32 = 20u32; +pub const WZC_PROFILE_CONFIG_ERROR_1X_NOT_ALLOWED_KEY_REQUIRED: u32 = 21u32; +pub const WZC_PROFILE_CONFIG_ERROR_1X_NOT_ENABLED_KEY_PROVIDED: u32 = 22u32; +pub const WZC_PROFILE_CONFIG_ERROR_EAP_METHOD_NOT_APPLICABLE: u32 = 24u32; +pub const WZC_PROFILE_CONFIG_ERROR_EAP_METHOD_REQUIRED: u32 = 23u32; +pub const WZC_PROFILE_CONFIG_ERROR_INVALID_AUTH_FOR_CONNECTION_TYPE: u32 = 15u32; +pub const WZC_PROFILE_CONFIG_ERROR_INVALID_ENCRYPTION_FOR_AUTHMODE: u32 = 16u32; +pub const WZC_PROFILE_CONFIG_ERROR_KEY_INDEX_NOT_APPLICABLE: u32 = 19u32; +pub const WZC_PROFILE_CONFIG_ERROR_KEY_INDEX_REQUIRED: u32 = 18u32; +pub const WZC_PROFILE_CONFIG_ERROR_KEY_REQUIRED: u32 = 17u32; +pub const WZC_PROFILE_CONFIG_ERROR_WPA_ENCRYPTION_NOT_SUPPORTED: u32 = 26u32; +pub const WZC_PROFILE_CONFIG_ERROR_WPA_NOT_SUPPORTED: u32 = 25u32; +pub const WZC_PROFILE_SET_ERROR_DUPLICATE_NETWORK: u32 = 27u32; +pub const WZC_PROFILE_SET_ERROR_MEMORY_ALLOCATION: u32 = 28u32; +pub const WZC_PROFILE_SET_ERROR_READING_1X_CONFIG: u32 = 29u32; +pub const WZC_PROFILE_SET_ERROR_WRITING_1X_CONFIG: u32 = 30u32; +pub const WZC_PROFILE_SET_ERROR_WRITING_WZC_CFG: u32 = 31u32; +pub const WZC_PROFILE_SUCCESS: u32 = 0u32; +pub const WZC_PROFILE_XML_ERROR_1X_ENABLED: u32 = 10u32; +pub const WZC_PROFILE_XML_ERROR_AUTHENTICATION: u32 = 7u32; +pub const WZC_PROFILE_XML_ERROR_BAD_KEY_INDEX: u32 = 12u32; +pub const WZC_PROFILE_XML_ERROR_BAD_NETWORK_KEY: u32 = 14u32; +pub const WZC_PROFILE_XML_ERROR_BAD_SSID: u32 = 5u32; +pub const WZC_PROFILE_XML_ERROR_BAD_VERSION: u32 = 2u32; +pub const WZC_PROFILE_XML_ERROR_CONNECTION_TYPE: u32 = 6u32; +pub const WZC_PROFILE_XML_ERROR_EAP_METHOD: u32 = 11u32; +pub const WZC_PROFILE_XML_ERROR_ENCRYPTION: u32 = 8u32; +pub const WZC_PROFILE_XML_ERROR_KEY_INDEX_RANGE: u32 = 13u32; +pub const WZC_PROFILE_XML_ERROR_KEY_PROVIDED_AUTOMATICALLY: u32 = 9u32; +pub const WZC_PROFILE_XML_ERROR_NO_VERSION: u32 = 1u32; +pub const WZC_PROFILE_XML_ERROR_SSID_NOT_FOUND: u32 = 4u32; +pub const WZC_PROFILE_XML_ERROR_UNSUPPORTED_VERSION: u32 = 3u32; +pub type AF_OP = u32; +pub type BIND_FLAGS1 = i32; +pub type COMPONENT_CHARACTERISTICS = i32; +pub type DEFAULT_PAGES = i32; +pub type DSREG_JOIN_TYPE = i32; +pub type ENUM_BINDING_PATHS_FLAGS = i32; +pub type FORCE_LEVEL_FLAGS = u32; +pub type MSA_INFO_LEVEL = i32; +pub type MSA_INFO_STATE = i32; +pub type NCPNP_RECONFIG_LAYER = i32; +pub type NCRP_FLAGS = i32; +pub type NETSETUP_JOIN_STATUS = i32; +pub type NETSETUP_NAME_TYPE = i32; +pub type NETSETUP_PROVISION = u32; +pub type NETWORK_INSTALL_TIME = i32; +pub type NETWORK_UPGRADE_TYPE = i32; +pub type NET_COMPUTER_NAME_TYPE = i32; +pub type NET_JOIN_DOMAIN_JOIN_OPTIONS = u32; +pub type NET_REMOTE_COMPUTER_SUPPORTS_OPTIONS = u32; +pub type NET_REQUEST_PROVISION_OPTIONS = u32; +pub type NET_SERVER_TYPE = u32; +pub type NET_USER_ENUM_FILTER_FLAGS = u32; +pub type NET_VALIDATE_PASSWORD_TYPE = i32; +pub type OBO_TOKEN_TYPE = i32; +pub type RASCON_UIINFO_FLAGS = i32; +pub type SERVER_INFO_HIDDEN = i32; +pub type SERVER_INFO_SECURITY = u32; +pub type SUPPORTS_BINDING_INTERFACE_FLAGS = i32; +pub type TRANSPORT_TYPE = i32; +pub type USER_ACCOUNT_FLAGS = u32; +pub type USER_MODALS_ROLES = u32; +pub type USER_PRIV = u32; +pub type USE_INFO_ASG_TYPE = u32; +#[repr(C)] +pub struct ACCESS_INFO_0 { + pub acc0_resource_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ACCESS_INFO_0 {} +impl ::core::clone::Clone for ACCESS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACCESS_INFO_1 { + pub acc1_resource_name: ::windows_sys::core::PWSTR, + pub acc1_attr: u32, + pub acc1_count: u32, +} +impl ::core::marker::Copy for ACCESS_INFO_1 {} +impl ::core::clone::Clone for ACCESS_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACCESS_INFO_1002 { + pub acc1002_attr: u32, +} +impl ::core::marker::Copy for ACCESS_INFO_1002 {} +impl ::core::clone::Clone for ACCESS_INFO_1002 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACCESS_LIST { + pub acl_ugname: ::windows_sys::core::PWSTR, + pub acl_access: u32, +} +impl ::core::marker::Copy for ACCESS_LIST {} +impl ::core::clone::Clone for ACCESS_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADMIN_OTHER_INFO { + pub alrtad_errcode: u32, + pub alrtad_numstrings: u32, +} +impl ::core::marker::Copy for ADMIN_OTHER_INFO {} +impl ::core::clone::Clone for ADMIN_OTHER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_ACCLIM { + pub ae_al_compname: u32, + pub ae_al_username: u32, + pub ae_al_resname: u32, + pub ae_al_limit: u32, +} +impl ::core::marker::Copy for AE_ACCLIM {} +impl ::core::clone::Clone for AE_ACCLIM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_ACLMOD { + pub ae_am_compname: u32, + pub ae_am_username: u32, + pub ae_am_resname: u32, + pub ae_am_action: u32, + pub ae_am_datalen: u32, +} +impl ::core::marker::Copy for AE_ACLMOD {} +impl ::core::clone::Clone for AE_ACLMOD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_CLOSEFILE { + pub ae_cf_compname: u32, + pub ae_cf_username: u32, + pub ae_cf_resname: u32, + pub ae_cf_fileid: u32, + pub ae_cf_duration: u32, + pub ae_cf_reason: u32, +} +impl ::core::marker::Copy for AE_CLOSEFILE {} +impl ::core::clone::Clone for AE_CLOSEFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_CONNREJ { + pub ae_cr_compname: u32, + pub ae_cr_username: u32, + pub ae_cr_netname: u32, + pub ae_cr_reason: u32, +} +impl ::core::marker::Copy for AE_CONNREJ {} +impl ::core::clone::Clone for AE_CONNREJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_CONNSTART { + pub ae_ct_compname: u32, + pub ae_ct_username: u32, + pub ae_ct_netname: u32, + pub ae_ct_connid: u32, +} +impl ::core::marker::Copy for AE_CONNSTART {} +impl ::core::clone::Clone for AE_CONNSTART { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_CONNSTOP { + pub ae_cp_compname: u32, + pub ae_cp_username: u32, + pub ae_cp_netname: u32, + pub ae_cp_connid: u32, + pub ae_cp_reason: u32, +} +impl ::core::marker::Copy for AE_CONNSTOP {} +impl ::core::clone::Clone for AE_CONNSTOP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_GENERIC { + pub ae_ge_msgfile: u32, + pub ae_ge_msgnum: u32, + pub ae_ge_params: u32, + pub ae_ge_param1: u32, + pub ae_ge_param2: u32, + pub ae_ge_param3: u32, + pub ae_ge_param4: u32, + pub ae_ge_param5: u32, + pub ae_ge_param6: u32, + pub ae_ge_param7: u32, + pub ae_ge_param8: u32, + pub ae_ge_param9: u32, +} +impl ::core::marker::Copy for AE_GENERIC {} +impl ::core::clone::Clone for AE_GENERIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_LOCKOUT { + pub ae_lk_compname: u32, + pub ae_lk_username: u32, + pub ae_lk_action: u32, + pub ae_lk_bad_pw_count: u32, +} +impl ::core::marker::Copy for AE_LOCKOUT {} +impl ::core::clone::Clone for AE_LOCKOUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_NETLOGOFF { + pub ae_nf_compname: u32, + pub ae_nf_username: u32, + pub ae_nf_reserved1: u32, + pub ae_nf_reserved2: u32, +} +impl ::core::marker::Copy for AE_NETLOGOFF {} +impl ::core::clone::Clone for AE_NETLOGOFF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_NETLOGON { + pub ae_no_compname: u32, + pub ae_no_username: u32, + pub ae_no_privilege: u32, + pub ae_no_authflags: u32, +} +impl ::core::marker::Copy for AE_NETLOGON {} +impl ::core::clone::Clone for AE_NETLOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_RESACCESS { + pub ae_ra_compname: u32, + pub ae_ra_username: u32, + pub ae_ra_resname: u32, + pub ae_ra_operation: u32, + pub ae_ra_returncode: u32, + pub ae_ra_restype: u32, + pub ae_ra_fileid: u32, +} +impl ::core::marker::Copy for AE_RESACCESS {} +impl ::core::clone::Clone for AE_RESACCESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_RESACCESSREJ { + pub ae_rr_compname: u32, + pub ae_rr_username: u32, + pub ae_rr_resname: u32, + pub ae_rr_operation: u32, +} +impl ::core::marker::Copy for AE_RESACCESSREJ {} +impl ::core::clone::Clone for AE_RESACCESSREJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_SERVICESTAT { + pub ae_ss_compname: u32, + pub ae_ss_username: u32, + pub ae_ss_svcname: u32, + pub ae_ss_status: u32, + pub ae_ss_code: u32, + pub ae_ss_text: u32, + pub ae_ss_returnval: u32, +} +impl ::core::marker::Copy for AE_SERVICESTAT {} +impl ::core::clone::Clone for AE_SERVICESTAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_SESSLOGOFF { + pub ae_sf_compname: u32, + pub ae_sf_username: u32, + pub ae_sf_reason: u32, +} +impl ::core::marker::Copy for AE_SESSLOGOFF {} +impl ::core::clone::Clone for AE_SESSLOGOFF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_SESSLOGON { + pub ae_so_compname: u32, + pub ae_so_username: u32, + pub ae_so_privilege: u32, +} +impl ::core::marker::Copy for AE_SESSLOGON {} +impl ::core::clone::Clone for AE_SESSLOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_SESSPWERR { + pub ae_sp_compname: u32, + pub ae_sp_username: u32, +} +impl ::core::marker::Copy for AE_SESSPWERR {} +impl ::core::clone::Clone for AE_SESSPWERR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_SRVSTATUS { + pub ae_sv_status: u32, +} +impl ::core::marker::Copy for AE_SRVSTATUS {} +impl ::core::clone::Clone for AE_SRVSTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_UASMOD { + pub ae_um_compname: u32, + pub ae_um_username: u32, + pub ae_um_resname: u32, + pub ae_um_rectype: u32, + pub ae_um_action: u32, + pub ae_um_datalen: u32, +} +impl ::core::marker::Copy for AE_UASMOD {} +impl ::core::clone::Clone for AE_UASMOD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AT_ENUM { + pub JobId: u32, + pub JobTime: usize, + pub DaysOfMonth: u32, + pub DaysOfWeek: u8, + pub Flags: u8, + pub Command: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for AT_ENUM {} +impl ::core::clone::Clone for AT_ENUM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AT_INFO { + pub JobTime: usize, + pub DaysOfMonth: u32, + pub DaysOfWeek: u8, + pub Flags: u8, + pub Command: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for AT_INFO {} +impl ::core::clone::Clone for AT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUDIT_ENTRY { + pub ae_len: u32, + pub ae_reserved: u32, + pub ae_time: u32, + pub ae_type: u32, + pub ae_data_offset: u32, + pub ae_data_size: u32, +} +impl ::core::marker::Copy for AUDIT_ENTRY {} +impl ::core::clone::Clone for AUDIT_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONFIG_INFO_0 { + pub cfgi0_key: ::windows_sys::core::PWSTR, + pub cfgi0_data: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CONFIG_INFO_0 {} +impl ::core::clone::Clone for CONFIG_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct DSREG_JOIN_INFO { + pub joinType: DSREG_JOIN_TYPE, + pub pJoinCertificate: *const super::super::Security::Cryptography::CERT_CONTEXT, + pub pszDeviceId: ::windows_sys::core::PWSTR, + pub pszIdpDomain: ::windows_sys::core::PWSTR, + pub pszTenantId: ::windows_sys::core::PWSTR, + pub pszJoinUserEmail: ::windows_sys::core::PWSTR, + pub pszTenantDisplayName: ::windows_sys::core::PWSTR, + pub pszMdmEnrollmentUrl: ::windows_sys::core::PWSTR, + pub pszMdmTermsOfUseUrl: ::windows_sys::core::PWSTR, + pub pszMdmComplianceUrl: ::windows_sys::core::PWSTR, + pub pszUserSettingSyncUrl: ::windows_sys::core::PWSTR, + pub pUserInfo: *mut DSREG_USER_INFO, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for DSREG_JOIN_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for DSREG_JOIN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSREG_USER_INFO { + pub pszUserEmail: ::windows_sys::core::PWSTR, + pub pszUserKeyId: ::windows_sys::core::PWSTR, + pub pszUserKeyName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DSREG_USER_INFO {} +impl ::core::clone::Clone for DSREG_USER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ERRLOG_OTHER_INFO { + pub alrter_errcode: u32, + pub alrter_offset: u32, +} +impl ::core::marker::Copy for ERRLOG_OTHER_INFO {} +impl ::core::clone::Clone for ERRLOG_OTHER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ERROR_LOG { + pub el_len: u32, + pub el_reserved: u32, + pub el_time: u32, + pub el_error: u32, + pub el_name: ::windows_sys::core::PWSTR, + pub el_text: ::windows_sys::core::PWSTR, + pub el_data: *mut u8, + pub el_data_size: u32, + pub el_nstrings: u32, +} +impl ::core::marker::Copy for ERROR_LOG {} +impl ::core::clone::Clone for ERROR_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLAT_STRING { + pub MaximumLength: i16, + pub Length: i16, + pub Buffer: [u8; 1], +} +impl ::core::marker::Copy for FLAT_STRING {} +impl ::core::clone::Clone for FLAT_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_INFO_0 { + pub grpi0_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for GROUP_INFO_0 {} +impl ::core::clone::Clone for GROUP_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_INFO_1 { + pub grpi1_name: ::windows_sys::core::PWSTR, + pub grpi1_comment: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for GROUP_INFO_1 {} +impl ::core::clone::Clone for GROUP_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_INFO_1002 { + pub grpi1002_comment: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for GROUP_INFO_1002 {} +impl ::core::clone::Clone for GROUP_INFO_1002 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_INFO_1005 { + pub grpi1005_attributes: u32, +} +impl ::core::marker::Copy for GROUP_INFO_1005 {} +impl ::core::clone::Clone for GROUP_INFO_1005 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_INFO_2 { + pub grpi2_name: ::windows_sys::core::PWSTR, + pub grpi2_comment: ::windows_sys::core::PWSTR, + pub grpi2_group_id: u32, + pub grpi2_attributes: u32, +} +impl ::core::marker::Copy for GROUP_INFO_2 {} +impl ::core::clone::Clone for GROUP_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GROUP_INFO_3 { + pub grpi3_name: ::windows_sys::core::PWSTR, + pub grpi3_comment: ::windows_sys::core::PWSTR, + pub grpi3_group_sid: super::super::Foundation::PSID, + pub grpi3_attributes: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GROUP_INFO_3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GROUP_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_USERS_INFO_0 { + pub grui0_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for GROUP_USERS_INFO_0 {} +impl ::core::clone::Clone for GROUP_USERS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_USERS_INFO_1 { + pub grui1_name: ::windows_sys::core::PWSTR, + pub grui1_attributes: u32, +} +impl ::core::marker::Copy for GROUP_USERS_INFO_1 {} +impl ::core::clone::Clone for GROUP_USERS_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HARDWARE_ADDRESS { + pub Address: [u8; 6], +} +impl ::core::marker::Copy for HARDWARE_ADDRESS {} +impl ::core::clone::Clone for HARDWARE_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HLOG { + pub time: u32, + pub last_flags: u32, + pub offset: u32, + pub rec_offset: u32, +} +impl ::core::marker::Copy for HLOG {} +impl ::core::clone::Clone for HLOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOCALGROUP_INFO_0 { + pub lgrpi0_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for LOCALGROUP_INFO_0 {} +impl ::core::clone::Clone for LOCALGROUP_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOCALGROUP_INFO_1 { + pub lgrpi1_name: ::windows_sys::core::PWSTR, + pub lgrpi1_comment: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for LOCALGROUP_INFO_1 {} +impl ::core::clone::Clone for LOCALGROUP_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOCALGROUP_INFO_1002 { + pub lgrpi1002_comment: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for LOCALGROUP_INFO_1002 {} +impl ::core::clone::Clone for LOCALGROUP_INFO_1002 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LOCALGROUP_MEMBERS_INFO_0 { + pub lgrmi0_sid: super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LOCALGROUP_MEMBERS_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LOCALGROUP_MEMBERS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct LOCALGROUP_MEMBERS_INFO_1 { + pub lgrmi1_sid: super::super::Foundation::PSID, + pub lgrmi1_sidusage: super::super::Security::SID_NAME_USE, + pub lgrmi1_name: ::windows_sys::core::PWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for LOCALGROUP_MEMBERS_INFO_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for LOCALGROUP_MEMBERS_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct LOCALGROUP_MEMBERS_INFO_2 { + pub lgrmi2_sid: super::super::Foundation::PSID, + pub lgrmi2_sidusage: super::super::Security::SID_NAME_USE, + pub lgrmi2_domainandname: ::windows_sys::core::PWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for LOCALGROUP_MEMBERS_INFO_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for LOCALGROUP_MEMBERS_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOCALGROUP_MEMBERS_INFO_3 { + pub lgrmi3_domainandname: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for LOCALGROUP_MEMBERS_INFO_3 {} +impl ::core::clone::Clone for LOCALGROUP_MEMBERS_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOCALGROUP_USERS_INFO_0 { + pub lgrui0_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for LOCALGROUP_USERS_INFO_0 {} +impl ::core::clone::Clone for LOCALGROUP_USERS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MPR_PROTOCOL_0 { + pub dwProtocolId: u32, + pub wszProtocol: [u16; 41], + pub wszDLLName: [u16; 49], +} +impl ::core::marker::Copy for MPR_PROTOCOL_0 {} +impl ::core::clone::Clone for MPR_PROTOCOL_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSA_INFO_0 { + pub State: MSA_INFO_STATE, +} +impl ::core::marker::Copy for MSA_INFO_0 {} +impl ::core::clone::Clone for MSA_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSG_INFO_0 { + pub msgi0_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for MSG_INFO_0 {} +impl ::core::clone::Clone for MSG_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSG_INFO_1 { + pub msgi1_name: ::windows_sys::core::PWSTR, + pub msgi1_forward_flag: u32, + pub msgi1_forward: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for MSG_INFO_1 {} +impl ::core::clone::Clone for MSG_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETLOGON_INFO_1 { + pub netlog1_flags: u32, + pub netlog1_pdc_connection_status: u32, +} +impl ::core::marker::Copy for NETLOGON_INFO_1 {} +impl ::core::clone::Clone for NETLOGON_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETLOGON_INFO_2 { + pub netlog2_flags: u32, + pub netlog2_pdc_connection_status: u32, + pub netlog2_trusted_dc_name: ::windows_sys::core::PWSTR, + pub netlog2_tc_connection_status: u32, +} +impl ::core::marker::Copy for NETLOGON_INFO_2 {} +impl ::core::clone::Clone for NETLOGON_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETLOGON_INFO_3 { + pub netlog3_flags: u32, + pub netlog3_logon_attempts: u32, + pub netlog3_reserved1: u32, + pub netlog3_reserved2: u32, + pub netlog3_reserved3: u32, + pub netlog3_reserved4: u32, + pub netlog3_reserved5: u32, +} +impl ::core::marker::Copy for NETLOGON_INFO_3 {} +impl ::core::clone::Clone for NETLOGON_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETLOGON_INFO_4 { + pub netlog4_trusted_dc_name: ::windows_sys::core::PWSTR, + pub netlog4_trusted_domain_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for NETLOGON_INFO_4 {} +impl ::core::clone::Clone for NETLOGON_INFO_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETSETUP_PROVISIONING_PARAMS { + pub dwVersion: u32, + pub lpDomain: ::windows_sys::core::PCWSTR, + pub lpHostName: ::windows_sys::core::PCWSTR, + pub lpMachineAccountOU: ::windows_sys::core::PCWSTR, + pub lpDcName: ::windows_sys::core::PCWSTR, + pub dwProvisionOptions: NETSETUP_PROVISION, + pub aCertTemplateNames: *const ::windows_sys::core::PCWSTR, + pub cCertTemplateNames: u32, + pub aMachinePolicyNames: *const ::windows_sys::core::PCWSTR, + pub cMachinePolicyNames: u32, + pub aMachinePolicyPaths: *const ::windows_sys::core::PCWSTR, + pub cMachinePolicyPaths: u32, + pub lpNetbiosName: ::windows_sys::core::PWSTR, + pub lpSiteName: ::windows_sys::core::PWSTR, + pub lpPrimaryDNSDomain: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for NETSETUP_PROVISIONING_PARAMS {} +impl ::core::clone::Clone for NETSETUP_PROVISIONING_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_NAME { + pub Name: FLAT_STRING, +} +impl ::core::marker::Copy for NETWORK_NAME {} +impl ::core::clone::Clone for NETWORK_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NET_DISPLAY_GROUP { + pub grpi3_name: ::windows_sys::core::PWSTR, + pub grpi3_comment: ::windows_sys::core::PWSTR, + pub grpi3_group_id: u32, + pub grpi3_attributes: u32, + pub grpi3_next_index: u32, +} +impl ::core::marker::Copy for NET_DISPLAY_GROUP {} +impl ::core::clone::Clone for NET_DISPLAY_GROUP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NET_DISPLAY_MACHINE { + pub usri2_name: ::windows_sys::core::PWSTR, + pub usri2_comment: ::windows_sys::core::PWSTR, + pub usri2_flags: USER_ACCOUNT_FLAGS, + pub usri2_user_id: u32, + pub usri2_next_index: u32, +} +impl ::core::marker::Copy for NET_DISPLAY_MACHINE {} +impl ::core::clone::Clone for NET_DISPLAY_MACHINE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NET_DISPLAY_USER { + pub usri1_name: ::windows_sys::core::PWSTR, + pub usri1_comment: ::windows_sys::core::PWSTR, + pub usri1_flags: USER_ACCOUNT_FLAGS, + pub usri1_full_name: ::windows_sys::core::PWSTR, + pub usri1_user_id: u32, + pub usri1_next_index: u32, +} +impl ::core::marker::Copy for NET_DISPLAY_USER {} +impl ::core::clone::Clone for NET_DISPLAY_USER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NET_VALIDATE_AUTHENTICATION_INPUT_ARG { + pub InputPersistedFields: NET_VALIDATE_PERSISTED_FIELDS, + pub PasswordMatched: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NET_VALIDATE_AUTHENTICATION_INPUT_ARG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NET_VALIDATE_AUTHENTICATION_INPUT_ARG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NET_VALIDATE_OUTPUT_ARG { + pub ChangedPersistedFields: NET_VALIDATE_PERSISTED_FIELDS, + pub ValidationStatus: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NET_VALIDATE_OUTPUT_ARG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NET_VALIDATE_OUTPUT_ARG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG { + pub InputPersistedFields: NET_VALIDATE_PERSISTED_FIELDS, + pub ClearPassword: ::windows_sys::core::PWSTR, + pub UserAccountName: ::windows_sys::core::PWSTR, + pub HashedPassword: NET_VALIDATE_PASSWORD_HASH, + pub PasswordMatch: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NET_VALIDATE_PASSWORD_HASH { + pub Length: u32, + pub Hash: *mut u8, +} +impl ::core::marker::Copy for NET_VALIDATE_PASSWORD_HASH {} +impl ::core::clone::Clone for NET_VALIDATE_PASSWORD_HASH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NET_VALIDATE_PASSWORD_RESET_INPUT_ARG { + pub InputPersistedFields: NET_VALIDATE_PERSISTED_FIELDS, + pub ClearPassword: ::windows_sys::core::PWSTR, + pub UserAccountName: ::windows_sys::core::PWSTR, + pub HashedPassword: NET_VALIDATE_PASSWORD_HASH, + pub PasswordMustChangeAtNextLogon: super::super::Foundation::BOOLEAN, + pub ClearLockout: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NET_VALIDATE_PASSWORD_RESET_INPUT_ARG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NET_VALIDATE_PASSWORD_RESET_INPUT_ARG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NET_VALIDATE_PERSISTED_FIELDS { + pub PresentFields: u32, + pub PasswordLastSet: super::super::Foundation::FILETIME, + pub BadPasswordTime: super::super::Foundation::FILETIME, + pub LockoutTime: super::super::Foundation::FILETIME, + pub BadPasswordCount: u32, + pub PasswordHistoryLength: u32, + pub PasswordHistory: *mut NET_VALIDATE_PASSWORD_HASH, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NET_VALIDATE_PERSISTED_FIELDS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NET_VALIDATE_PERSISTED_FIELDS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OBO_TOKEN { + pub Type: OBO_TOKEN_TYPE, + pub pncc: INetCfgComponent, + pub pszwManufacturer: ::windows_sys::core::PCWSTR, + pub pszwProduct: ::windows_sys::core::PCWSTR, + pub pszwDisplayName: ::windows_sys::core::PCWSTR, + pub fRegistered: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OBO_TOKEN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OBO_TOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRINT_OTHER_INFO { + pub alrtpr_jobid: u32, + pub alrtpr_status: u32, + pub alrtpr_submitted: u32, + pub alrtpr_size: u32, +} +impl ::core::marker::Copy for PRINT_OTHER_INFO {} +impl ::core::clone::Clone for PRINT_OTHER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RASCON_IPUI { + pub guidConnection: ::windows_sys::core::GUID, + pub fIPv6Cfg: super::super::Foundation::BOOL, + pub dwFlags: u32, + pub pszwIpAddr: [u16; 16], + pub pszwDnsAddr: [u16; 16], + pub pszwDns2Addr: [u16; 16], + pub pszwWinsAddr: [u16; 16], + pub pszwWins2Addr: [u16; 16], + pub pszwDnsSuffix: [u16; 256], + pub pszwIpv6Addr: [u16; 65], + pub dwIpv6PrefixLength: u32, + pub pszwIpv6DnsAddr: [u16; 65], + pub pszwIpv6Dns2Addr: [u16; 65], + pub dwIPv4InfMetric: u32, + pub dwIPv6InfMetric: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASCON_IPUI {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASCON_IPUI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPL_EDIR_INFO_0 { + pub rped0_dirname: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for REPL_EDIR_INFO_0 {} +impl ::core::clone::Clone for REPL_EDIR_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPL_EDIR_INFO_1 { + pub rped1_dirname: ::windows_sys::core::PWSTR, + pub rped1_integrity: u32, + pub rped1_extent: u32, +} +impl ::core::marker::Copy for REPL_EDIR_INFO_1 {} +impl ::core::clone::Clone for REPL_EDIR_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPL_EDIR_INFO_1000 { + pub rped1000_integrity: u32, +} +impl ::core::marker::Copy for REPL_EDIR_INFO_1000 {} +impl ::core::clone::Clone for REPL_EDIR_INFO_1000 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPL_EDIR_INFO_1001 { + pub rped1001_extent: u32, +} +impl ::core::marker::Copy for REPL_EDIR_INFO_1001 {} +impl ::core::clone::Clone for REPL_EDIR_INFO_1001 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPL_EDIR_INFO_2 { + pub rped2_dirname: ::windows_sys::core::PWSTR, + pub rped2_integrity: u32, + pub rped2_extent: u32, + pub rped2_lockcount: u32, + pub rped2_locktime: u32, +} +impl ::core::marker::Copy for REPL_EDIR_INFO_2 {} +impl ::core::clone::Clone for REPL_EDIR_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPL_IDIR_INFO_0 { + pub rpid0_dirname: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for REPL_IDIR_INFO_0 {} +impl ::core::clone::Clone for REPL_IDIR_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPL_IDIR_INFO_1 { + pub rpid1_dirname: ::windows_sys::core::PWSTR, + pub rpid1_state: u32, + pub rpid1_mastername: ::windows_sys::core::PWSTR, + pub rpid1_last_update_time: u32, + pub rpid1_lockcount: u32, + pub rpid1_locktime: u32, +} +impl ::core::marker::Copy for REPL_IDIR_INFO_1 {} +impl ::core::clone::Clone for REPL_IDIR_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPL_INFO_0 { + pub rp0_role: u32, + pub rp0_exportpath: ::windows_sys::core::PWSTR, + pub rp0_exportlist: ::windows_sys::core::PWSTR, + pub rp0_importpath: ::windows_sys::core::PWSTR, + pub rp0_importlist: ::windows_sys::core::PWSTR, + pub rp0_logonusername: ::windows_sys::core::PWSTR, + pub rp0_interval: u32, + pub rp0_pulse: u32, + pub rp0_guardtime: u32, + pub rp0_random: u32, +} +impl ::core::marker::Copy for REPL_INFO_0 {} +impl ::core::clone::Clone for REPL_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPL_INFO_1000 { + pub rp1000_interval: u32, +} +impl ::core::marker::Copy for REPL_INFO_1000 {} +impl ::core::clone::Clone for REPL_INFO_1000 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPL_INFO_1001 { + pub rp1001_pulse: u32, +} +impl ::core::marker::Copy for REPL_INFO_1001 {} +impl ::core::clone::Clone for REPL_INFO_1001 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPL_INFO_1002 { + pub rp1002_guardtime: u32, +} +impl ::core::marker::Copy for REPL_INFO_1002 {} +impl ::core::clone::Clone for REPL_INFO_1002 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPL_INFO_1003 { + pub rp1003_random: u32, +} +impl ::core::marker::Copy for REPL_INFO_1003 {} +impl ::core::clone::Clone for REPL_INFO_1003 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTR_INFO_BLOCK_HEADER { + pub Version: u32, + pub Size: u32, + pub TocEntriesCount: u32, + pub TocEntry: [RTR_TOC_ENTRY; 1], +} +impl ::core::marker::Copy for RTR_INFO_BLOCK_HEADER {} +impl ::core::clone::Clone for RTR_INFO_BLOCK_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTR_TOC_ENTRY { + pub InfoType: u32, + pub InfoSize: u32, + pub Count: u32, + pub Offset: u32, +} +impl ::core::marker::Copy for RTR_TOC_ENTRY {} +impl ::core::clone::Clone for RTR_TOC_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_100 { + pub sv100_platform_id: u32, + pub sv100_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SERVER_INFO_100 {} +impl ::core::clone::Clone for SERVER_INFO_100 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1005 { + pub sv1005_comment: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SERVER_INFO_1005 {} +impl ::core::clone::Clone for SERVER_INFO_1005 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_101 { + pub sv101_platform_id: u32, + pub sv101_name: ::windows_sys::core::PWSTR, + pub sv101_version_major: u32, + pub sv101_version_minor: u32, + pub sv101_type: NET_SERVER_TYPE, + pub sv101_comment: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SERVER_INFO_101 {} +impl ::core::clone::Clone for SERVER_INFO_101 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1010 { + pub sv1010_disc: i32, +} +impl ::core::marker::Copy for SERVER_INFO_1010 {} +impl ::core::clone::Clone for SERVER_INFO_1010 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1016 { + pub sv1016_hidden: SERVER_INFO_HIDDEN, +} +impl ::core::marker::Copy for SERVER_INFO_1016 {} +impl ::core::clone::Clone for SERVER_INFO_1016 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1017 { + pub sv1017_announce: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1017 {} +impl ::core::clone::Clone for SERVER_INFO_1017 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1018 { + pub sv1018_anndelta: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1018 {} +impl ::core::clone::Clone for SERVER_INFO_1018 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_102 { + pub sv102_platform_id: u32, + pub sv102_name: ::windows_sys::core::PWSTR, + pub sv102_version_major: u32, + pub sv102_version_minor: u32, + pub sv102_type: NET_SERVER_TYPE, + pub sv102_comment: ::windows_sys::core::PWSTR, + pub sv102_users: u32, + pub sv102_disc: i32, + pub sv102_hidden: SERVER_INFO_HIDDEN, + pub sv102_announce: u32, + pub sv102_anndelta: u32, + pub sv102_licenses: u32, + pub sv102_userpath: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SERVER_INFO_102 {} +impl ::core::clone::Clone for SERVER_INFO_102 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_103 { + pub sv103_platform_id: u32, + pub sv103_name: ::windows_sys::core::PWSTR, + pub sv103_version_major: u32, + pub sv103_version_minor: u32, + pub sv103_type: u32, + pub sv103_comment: ::windows_sys::core::PWSTR, + pub sv103_users: u32, + pub sv103_disc: i32, + pub sv103_hidden: super::super::Foundation::BOOL, + pub sv103_announce: u32, + pub sv103_anndelta: u32, + pub sv103_licenses: u32, + pub sv103_userpath: ::windows_sys::core::PWSTR, + pub sv103_capabilities: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_103 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_103 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1107 { + pub sv1107_users: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1107 {} +impl ::core::clone::Clone for SERVER_INFO_1107 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1501 { + pub sv1501_sessopens: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1501 {} +impl ::core::clone::Clone for SERVER_INFO_1501 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1502 { + pub sv1502_sessvcs: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1502 {} +impl ::core::clone::Clone for SERVER_INFO_1502 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1503 { + pub sv1503_opensearch: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1503 {} +impl ::core::clone::Clone for SERVER_INFO_1503 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1506 { + pub sv1506_maxworkitems: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1506 {} +impl ::core::clone::Clone for SERVER_INFO_1506 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1509 { + pub sv1509_maxrawbuflen: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1509 {} +impl ::core::clone::Clone for SERVER_INFO_1509 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1510 { + pub sv1510_sessusers: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1510 {} +impl ::core::clone::Clone for SERVER_INFO_1510 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1511 { + pub sv1511_sessconns: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1511 {} +impl ::core::clone::Clone for SERVER_INFO_1511 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1512 { + pub sv1512_maxnonpagedmemoryusage: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1512 {} +impl ::core::clone::Clone for SERVER_INFO_1512 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1513 { + pub sv1513_maxpagedmemoryusage: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1513 {} +impl ::core::clone::Clone for SERVER_INFO_1513 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1514 { + pub sv1514_enablesoftcompat: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1514 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1514 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1515 { + pub sv1515_enableforcedlogoff: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1515 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1515 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1516 { + pub sv1516_timesource: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1516 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1516 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1518 { + pub sv1518_lmannounce: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1518 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1518 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1520 { + pub sv1520_maxcopyreadlen: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1520 {} +impl ::core::clone::Clone for SERVER_INFO_1520 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1521 { + pub sv1521_maxcopywritelen: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1521 {} +impl ::core::clone::Clone for SERVER_INFO_1521 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1522 { + pub sv1522_minkeepsearch: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1522 {} +impl ::core::clone::Clone for SERVER_INFO_1522 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1523 { + pub sv1523_maxkeepsearch: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1523 {} +impl ::core::clone::Clone for SERVER_INFO_1523 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1524 { + pub sv1524_minkeepcomplsearch: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1524 {} +impl ::core::clone::Clone for SERVER_INFO_1524 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1525 { + pub sv1525_maxkeepcomplsearch: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1525 {} +impl ::core::clone::Clone for SERVER_INFO_1525 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1528 { + pub sv1528_scavtimeout: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1528 {} +impl ::core::clone::Clone for SERVER_INFO_1528 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1529 { + pub sv1529_minrcvqueue: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1529 {} +impl ::core::clone::Clone for SERVER_INFO_1529 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1530 { + pub sv1530_minfreeworkitems: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1530 {} +impl ::core::clone::Clone for SERVER_INFO_1530 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1533 { + pub sv1533_maxmpxct: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1533 {} +impl ::core::clone::Clone for SERVER_INFO_1533 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1534 { + pub sv1534_oplockbreakwait: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1534 {} +impl ::core::clone::Clone for SERVER_INFO_1534 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1535 { + pub sv1535_oplockbreakresponsewait: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1535 {} +impl ::core::clone::Clone for SERVER_INFO_1535 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1536 { + pub sv1536_enableoplocks: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1536 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1536 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1537 { + pub sv1537_enableoplockforceclose: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1537 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1537 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1538 { + pub sv1538_enablefcbopens: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1538 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1538 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1539 { + pub sv1539_enableraw: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1539 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1539 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1540 { + pub sv1540_enablesharednetdrives: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1540 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1540 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1541 { + pub sv1541_minfreeconnections: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1541 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1541 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1542 { + pub sv1542_maxfreeconnections: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1542 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1542 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1543 { + pub sv1543_initsesstable: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1543 {} +impl ::core::clone::Clone for SERVER_INFO_1543 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1544 { + pub sv1544_initconntable: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1544 {} +impl ::core::clone::Clone for SERVER_INFO_1544 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1545 { + pub sv1545_initfiletable: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1545 {} +impl ::core::clone::Clone for SERVER_INFO_1545 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1546 { + pub sv1546_initsearchtable: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1546 {} +impl ::core::clone::Clone for SERVER_INFO_1546 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1547 { + pub sv1547_alertschedule: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1547 {} +impl ::core::clone::Clone for SERVER_INFO_1547 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1548 { + pub sv1548_errorthreshold: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1548 {} +impl ::core::clone::Clone for SERVER_INFO_1548 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1549 { + pub sv1549_networkerrorthreshold: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1549 {} +impl ::core::clone::Clone for SERVER_INFO_1549 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1550 { + pub sv1550_diskspacethreshold: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1550 {} +impl ::core::clone::Clone for SERVER_INFO_1550 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1552 { + pub sv1552_maxlinkdelay: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1552 {} +impl ::core::clone::Clone for SERVER_INFO_1552 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1553 { + pub sv1553_minlinkthroughput: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1553 {} +impl ::core::clone::Clone for SERVER_INFO_1553 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1554 { + pub sv1554_linkinfovalidtime: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1554 {} +impl ::core::clone::Clone for SERVER_INFO_1554 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1555 { + pub sv1555_scavqosinfoupdatetime: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1555 {} +impl ::core::clone::Clone for SERVER_INFO_1555 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1556 { + pub sv1556_maxworkitemidletime: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1556 {} +impl ::core::clone::Clone for SERVER_INFO_1556 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1557 { + pub sv1557_maxrawworkitems: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1557 {} +impl ::core::clone::Clone for SERVER_INFO_1557 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1560 { + pub sv1560_producttype: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1560 {} +impl ::core::clone::Clone for SERVER_INFO_1560 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1561 { + pub sv1561_serversize: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1561 {} +impl ::core::clone::Clone for SERVER_INFO_1561 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1562 { + pub sv1562_connectionlessautodisc: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1562 {} +impl ::core::clone::Clone for SERVER_INFO_1562 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1563 { + pub sv1563_sharingviolationretries: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1563 {} +impl ::core::clone::Clone for SERVER_INFO_1563 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1564 { + pub sv1564_sharingviolationdelay: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1564 {} +impl ::core::clone::Clone for SERVER_INFO_1564 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1565 { + pub sv1565_maxglobalopensearch: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1565 {} +impl ::core::clone::Clone for SERVER_INFO_1565 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1566 { + pub sv1566_removeduplicatesearches: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1566 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1566 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1567 { + pub sv1567_lockviolationretries: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1567 {} +impl ::core::clone::Clone for SERVER_INFO_1567 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1568 { + pub sv1568_lockviolationoffset: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1568 {} +impl ::core::clone::Clone for SERVER_INFO_1568 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1569 { + pub sv1569_lockviolationdelay: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1569 {} +impl ::core::clone::Clone for SERVER_INFO_1569 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1570 { + pub sv1570_mdlreadswitchover: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1570 {} +impl ::core::clone::Clone for SERVER_INFO_1570 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1571 { + pub sv1571_cachedopenlimit: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1571 {} +impl ::core::clone::Clone for SERVER_INFO_1571 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1572 { + pub sv1572_criticalthreads: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1572 {} +impl ::core::clone::Clone for SERVER_INFO_1572 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1573 { + pub sv1573_restrictnullsessaccess: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1573 {} +impl ::core::clone::Clone for SERVER_INFO_1573 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1574 { + pub sv1574_enablewfw311directipx: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1574 {} +impl ::core::clone::Clone for SERVER_INFO_1574 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1575 { + pub sv1575_otherqueueaffinity: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1575 {} +impl ::core::clone::Clone for SERVER_INFO_1575 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1576 { + pub sv1576_queuesamplesecs: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1576 {} +impl ::core::clone::Clone for SERVER_INFO_1576 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1577 { + pub sv1577_balancecount: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1577 {} +impl ::core::clone::Clone for SERVER_INFO_1577 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1578 { + pub sv1578_preferredaffinity: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1578 {} +impl ::core::clone::Clone for SERVER_INFO_1578 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1579 { + pub sv1579_maxfreerfcbs: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1579 {} +impl ::core::clone::Clone for SERVER_INFO_1579 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1580 { + pub sv1580_maxfreemfcbs: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1580 {} +impl ::core::clone::Clone for SERVER_INFO_1580 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1581 { + pub sv1581_maxfreemlcbs: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1581 {} +impl ::core::clone::Clone for SERVER_INFO_1581 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1582 { + pub sv1582_maxfreepagedpoolchunks: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1582 {} +impl ::core::clone::Clone for SERVER_INFO_1582 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1583 { + pub sv1583_minpagedpoolchunksize: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1583 {} +impl ::core::clone::Clone for SERVER_INFO_1583 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1584 { + pub sv1584_maxpagedpoolchunksize: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1584 {} +impl ::core::clone::Clone for SERVER_INFO_1584 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1585 { + pub sv1585_sendsfrompreferredprocessor: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1585 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1585 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1586 { + pub sv1586_maxthreadsperqueue: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1586 {} +impl ::core::clone::Clone for SERVER_INFO_1586 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1587 { + pub sv1587_cacheddirectorylimit: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1587 {} +impl ::core::clone::Clone for SERVER_INFO_1587 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1588 { + pub sv1588_maxcopylength: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1588 {} +impl ::core::clone::Clone for SERVER_INFO_1588 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1590 { + pub sv1590_enablecompression: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1590 {} +impl ::core::clone::Clone for SERVER_INFO_1590 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1591 { + pub sv1591_autosharewks: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1591 {} +impl ::core::clone::Clone for SERVER_INFO_1591 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1592 { + pub sv1592_autosharewks: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1592 {} +impl ::core::clone::Clone for SERVER_INFO_1592 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1593 { + pub sv1593_enablesecuritysignature: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1593 {} +impl ::core::clone::Clone for SERVER_INFO_1593 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1594 { + pub sv1594_requiresecuritysignature: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1594 {} +impl ::core::clone::Clone for SERVER_INFO_1594 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1595 { + pub sv1595_minclientbuffersize: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1595 {} +impl ::core::clone::Clone for SERVER_INFO_1595 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1596 { + pub sv1596_ConnectionNoSessionsTimeout: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1596 {} +impl ::core::clone::Clone for SERVER_INFO_1596 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1597 { + pub sv1597_IdleThreadTimeOut: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1597 {} +impl ::core::clone::Clone for SERVER_INFO_1597 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1598 { + pub sv1598_enableW9xsecuritysignature: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1598 {} +impl ::core::clone::Clone for SERVER_INFO_1598 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1599 { + pub sv1598_enforcekerberosreauthentication: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1599 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1599 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1600 { + pub sv1598_disabledos: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1600 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1600 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_1601 { + pub sv1598_lowdiskspaceminimum: u32, +} +impl ::core::marker::Copy for SERVER_INFO_1601 {} +impl ::core::clone::Clone for SERVER_INFO_1601 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_1602 { + pub sv_1598_disablestrictnamechecking: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_1602 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_1602 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_402 { + pub sv402_ulist_mtime: u32, + pub sv402_glist_mtime: u32, + pub sv402_alist_mtime: u32, + pub sv402_alerts: ::windows_sys::core::PWSTR, + pub sv402_security: SERVER_INFO_SECURITY, + pub sv402_numadmin: u32, + pub sv402_lanmask: u32, + pub sv402_guestacct: ::windows_sys::core::PWSTR, + pub sv402_chdevs: u32, + pub sv402_chdevq: u32, + pub sv402_chdevjobs: u32, + pub sv402_connections: u32, + pub sv402_shares: u32, + pub sv402_openfiles: u32, + pub sv402_sessopens: u32, + pub sv402_sessvcs: u32, + pub sv402_sessreqs: u32, + pub sv402_opensearch: u32, + pub sv402_activelocks: u32, + pub sv402_numreqbuf: u32, + pub sv402_sizreqbuf: u32, + pub sv402_numbigbuf: u32, + pub sv402_numfiletasks: u32, + pub sv402_alertsched: u32, + pub sv402_erroralert: u32, + pub sv402_logonalert: u32, + pub sv402_accessalert: u32, + pub sv402_diskalert: u32, + pub sv402_netioalert: u32, + pub sv402_maxauditsz: u32, + pub sv402_srvheuristics: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SERVER_INFO_402 {} +impl ::core::clone::Clone for SERVER_INFO_402 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_INFO_403 { + pub sv403_ulist_mtime: u32, + pub sv403_glist_mtime: u32, + pub sv403_alist_mtime: u32, + pub sv403_alerts: ::windows_sys::core::PWSTR, + pub sv403_security: SERVER_INFO_SECURITY, + pub sv403_numadmin: u32, + pub sv403_lanmask: u32, + pub sv403_guestacct: ::windows_sys::core::PWSTR, + pub sv403_chdevs: u32, + pub sv403_chdevq: u32, + pub sv403_chdevjobs: u32, + pub sv403_connections: u32, + pub sv403_shares: u32, + pub sv403_openfiles: u32, + pub sv403_sessopens: u32, + pub sv403_sessvcs: u32, + pub sv403_sessreqs: u32, + pub sv403_opensearch: u32, + pub sv403_activelocks: u32, + pub sv403_numreqbuf: u32, + pub sv403_sizreqbuf: u32, + pub sv403_numbigbuf: u32, + pub sv403_numfiletasks: u32, + pub sv403_alertsched: u32, + pub sv403_erroralert: u32, + pub sv403_logonalert: u32, + pub sv403_accessalert: u32, + pub sv403_diskalert: u32, + pub sv403_netioalert: u32, + pub sv403_maxauditsz: u32, + pub sv403_srvheuristics: ::windows_sys::core::PWSTR, + pub sv403_auditedevents: u32, + pub sv403_autoprofile: u32, + pub sv403_autopath: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SERVER_INFO_403 {} +impl ::core::clone::Clone for SERVER_INFO_403 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_502 { + pub sv502_sessopens: u32, + pub sv502_sessvcs: u32, + pub sv502_opensearch: u32, + pub sv502_sizreqbuf: u32, + pub sv502_initworkitems: u32, + pub sv502_maxworkitems: u32, + pub sv502_rawworkitems: u32, + pub sv502_irpstacksize: u32, + pub sv502_maxrawbuflen: u32, + pub sv502_sessusers: u32, + pub sv502_sessconns: u32, + pub sv502_maxpagedmemoryusage: u32, + pub sv502_maxnonpagedmemoryusage: u32, + pub sv502_enablesoftcompat: super::super::Foundation::BOOL, + pub sv502_enableforcedlogoff: super::super::Foundation::BOOL, + pub sv502_timesource: super::super::Foundation::BOOL, + pub sv502_acceptdownlevelapis: super::super::Foundation::BOOL, + pub sv502_lmannounce: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_502 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_502 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_503 { + pub sv503_sessopens: u32, + pub sv503_sessvcs: u32, + pub sv503_opensearch: u32, + pub sv503_sizreqbuf: u32, + pub sv503_initworkitems: u32, + pub sv503_maxworkitems: u32, + pub sv503_rawworkitems: u32, + pub sv503_irpstacksize: u32, + pub sv503_maxrawbuflen: u32, + pub sv503_sessusers: u32, + pub sv503_sessconns: u32, + pub sv503_maxpagedmemoryusage: u32, + pub sv503_maxnonpagedmemoryusage: u32, + pub sv503_enablesoftcompat: super::super::Foundation::BOOL, + pub sv503_enableforcedlogoff: super::super::Foundation::BOOL, + pub sv503_timesource: super::super::Foundation::BOOL, + pub sv503_acceptdownlevelapis: super::super::Foundation::BOOL, + pub sv503_lmannounce: super::super::Foundation::BOOL, + pub sv503_domain: ::windows_sys::core::PWSTR, + pub sv503_maxcopyreadlen: u32, + pub sv503_maxcopywritelen: u32, + pub sv503_minkeepsearch: u32, + pub sv503_maxkeepsearch: u32, + pub sv503_minkeepcomplsearch: u32, + pub sv503_maxkeepcomplsearch: u32, + pub sv503_threadcountadd: u32, + pub sv503_numblockthreads: u32, + pub sv503_scavtimeout: u32, + pub sv503_minrcvqueue: u32, + pub sv503_minfreeworkitems: u32, + pub sv503_xactmemsize: u32, + pub sv503_threadpriority: u32, + pub sv503_maxmpxct: u32, + pub sv503_oplockbreakwait: u32, + pub sv503_oplockbreakresponsewait: u32, + pub sv503_enableoplocks: super::super::Foundation::BOOL, + pub sv503_enableoplockforceclose: super::super::Foundation::BOOL, + pub sv503_enablefcbopens: super::super::Foundation::BOOL, + pub sv503_enableraw: super::super::Foundation::BOOL, + pub sv503_enablesharednetdrives: super::super::Foundation::BOOL, + pub sv503_minfreeconnections: u32, + pub sv503_maxfreeconnections: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_503 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_503 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_598 { + pub sv598_maxrawworkitems: u32, + pub sv598_maxthreadsperqueue: u32, + pub sv598_producttype: u32, + pub sv598_serversize: u32, + pub sv598_connectionlessautodisc: u32, + pub sv598_sharingviolationretries: u32, + pub sv598_sharingviolationdelay: u32, + pub sv598_maxglobalopensearch: u32, + pub sv598_removeduplicatesearches: u32, + pub sv598_lockviolationoffset: u32, + pub sv598_lockviolationdelay: u32, + pub sv598_mdlreadswitchover: u32, + pub sv598_cachedopenlimit: u32, + pub sv598_otherqueueaffinity: u32, + pub sv598_restrictnullsessaccess: super::super::Foundation::BOOL, + pub sv598_enablewfw311directipx: super::super::Foundation::BOOL, + pub sv598_queuesamplesecs: u32, + pub sv598_balancecount: u32, + pub sv598_preferredaffinity: u32, + pub sv598_maxfreerfcbs: u32, + pub sv598_maxfreemfcbs: u32, + pub sv598_maxfreelfcbs: u32, + pub sv598_maxfreepagedpoolchunks: u32, + pub sv598_minpagedpoolchunksize: u32, + pub sv598_maxpagedpoolchunksize: u32, + pub sv598_sendsfrompreferredprocessor: super::super::Foundation::BOOL, + pub sv598_cacheddirectorylimit: u32, + pub sv598_maxcopylength: u32, + pub sv598_enablecompression: super::super::Foundation::BOOL, + pub sv598_autosharewks: super::super::Foundation::BOOL, + pub sv598_autoshareserver: super::super::Foundation::BOOL, + pub sv598_enablesecuritysignature: super::super::Foundation::BOOL, + pub sv598_requiresecuritysignature: super::super::Foundation::BOOL, + pub sv598_minclientbuffersize: u32, + pub sv598_serverguid: ::windows_sys::core::GUID, + pub sv598_ConnectionNoSessionsTimeout: u32, + pub sv598_IdleThreadTimeOut: u32, + pub sv598_enableW9xsecuritysignature: super::super::Foundation::BOOL, + pub sv598_enforcekerberosreauthentication: super::super::Foundation::BOOL, + pub sv598_disabledos: super::super::Foundation::BOOL, + pub sv598_lowdiskspaceminimum: u32, + pub sv598_disablestrictnamechecking: super::super::Foundation::BOOL, + pub sv598_enableauthenticateusersharing: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_598 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_598 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_INFO_599 { + pub sv599_sessopens: u32, + pub sv599_sessvcs: u32, + pub sv599_opensearch: u32, + pub sv599_sizreqbuf: u32, + pub sv599_initworkitems: u32, + pub sv599_maxworkitems: u32, + pub sv599_rawworkitems: u32, + pub sv599_irpstacksize: u32, + pub sv599_maxrawbuflen: u32, + pub sv599_sessusers: u32, + pub sv599_sessconns: u32, + pub sv599_maxpagedmemoryusage: u32, + pub sv599_maxnonpagedmemoryusage: u32, + pub sv599_enablesoftcompat: super::super::Foundation::BOOL, + pub sv599_enableforcedlogoff: super::super::Foundation::BOOL, + pub sv599_timesource: super::super::Foundation::BOOL, + pub sv599_acceptdownlevelapis: super::super::Foundation::BOOL, + pub sv599_lmannounce: super::super::Foundation::BOOL, + pub sv599_domain: ::windows_sys::core::PWSTR, + pub sv599_maxcopyreadlen: u32, + pub sv599_maxcopywritelen: u32, + pub sv599_minkeepsearch: u32, + pub sv599_maxkeepsearch: u32, + pub sv599_minkeepcomplsearch: u32, + pub sv599_maxkeepcomplsearch: u32, + pub sv599_threadcountadd: u32, + pub sv599_numblockthreads: u32, + pub sv599_scavtimeout: u32, + pub sv599_minrcvqueue: u32, + pub sv599_minfreeworkitems: u32, + pub sv599_xactmemsize: u32, + pub sv599_threadpriority: u32, + pub sv599_maxmpxct: u32, + pub sv599_oplockbreakwait: u32, + pub sv599_oplockbreakresponsewait: u32, + pub sv599_enableoplocks: super::super::Foundation::BOOL, + pub sv599_enableoplockforceclose: super::super::Foundation::BOOL, + pub sv599_enablefcbopens: super::super::Foundation::BOOL, + pub sv599_enableraw: super::super::Foundation::BOOL, + pub sv599_enablesharednetdrives: super::super::Foundation::BOOL, + pub sv599_minfreeconnections: u32, + pub sv599_maxfreeconnections: u32, + pub sv599_initsesstable: u32, + pub sv599_initconntable: u32, + pub sv599_initfiletable: u32, + pub sv599_initsearchtable: u32, + pub sv599_alertschedule: u32, + pub sv599_errorthreshold: u32, + pub sv599_networkerrorthreshold: u32, + pub sv599_diskspacethreshold: u32, + pub sv599_reserved: u32, + pub sv599_maxlinkdelay: u32, + pub sv599_minlinkthroughput: u32, + pub sv599_linkinfovalidtime: u32, + pub sv599_scavqosinfoupdatetime: u32, + pub sv599_maxworkitemidletime: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_INFO_599 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_INFO_599 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_TRANSPORT_INFO_0 { + pub svti0_numberofvcs: u32, + pub svti0_transportname: ::windows_sys::core::PWSTR, + pub svti0_transportaddress: *mut u8, + pub svti0_transportaddresslength: u32, + pub svti0_networkaddress: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SERVER_TRANSPORT_INFO_0 {} +impl ::core::clone::Clone for SERVER_TRANSPORT_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_TRANSPORT_INFO_1 { + pub svti1_numberofvcs: u32, + pub svti1_transportname: ::windows_sys::core::PWSTR, + pub svti1_transportaddress: *mut u8, + pub svti1_transportaddresslength: u32, + pub svti1_networkaddress: ::windows_sys::core::PWSTR, + pub svti1_domain: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SERVER_TRANSPORT_INFO_1 {} +impl ::core::clone::Clone for SERVER_TRANSPORT_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_TRANSPORT_INFO_2 { + pub svti2_numberofvcs: u32, + pub svti2_transportname: ::windows_sys::core::PWSTR, + pub svti2_transportaddress: *mut u8, + pub svti2_transportaddresslength: u32, + pub svti2_networkaddress: ::windows_sys::core::PWSTR, + pub svti2_domain: ::windows_sys::core::PWSTR, + pub svti2_flags: u32, +} +impl ::core::marker::Copy for SERVER_TRANSPORT_INFO_2 {} +impl ::core::clone::Clone for SERVER_TRANSPORT_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_TRANSPORT_INFO_3 { + pub svti3_numberofvcs: u32, + pub svti3_transportname: ::windows_sys::core::PWSTR, + pub svti3_transportaddress: *mut u8, + pub svti3_transportaddresslength: u32, + pub svti3_networkaddress: ::windows_sys::core::PWSTR, + pub svti3_domain: ::windows_sys::core::PWSTR, + pub svti3_flags: u32, + pub svti3_passwordlength: u32, + pub svti3_password: [u8; 256], +} +impl ::core::marker::Copy for SERVER_TRANSPORT_INFO_3 {} +impl ::core::clone::Clone for SERVER_TRANSPORT_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_INFO_0 { + pub svci0_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SERVICE_INFO_0 {} +impl ::core::clone::Clone for SERVICE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_INFO_1 { + pub svci1_name: ::windows_sys::core::PWSTR, + pub svci1_status: u32, + pub svci1_code: u32, + pub svci1_pid: u32, +} +impl ::core::marker::Copy for SERVICE_INFO_1 {} +impl ::core::clone::Clone for SERVICE_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_INFO_2 { + pub svci2_name: ::windows_sys::core::PWSTR, + pub svci2_status: u32, + pub svci2_code: u32, + pub svci2_pid: u32, + pub svci2_text: ::windows_sys::core::PWSTR, + pub svci2_specific_error: u32, + pub svci2_display_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SERVICE_INFO_2 {} +impl ::core::clone::Clone for SERVICE_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SMB_COMPRESSION_INFO { + pub Switch: super::super::Foundation::BOOLEAN, + pub Reserved1: u8, + pub Reserved2: u16, + pub Reserved3: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SMB_COMPRESSION_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SMB_COMPRESSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SMB_TREE_CONNECT_PARAMETERS { + pub EABufferOffset: u32, + pub EABufferLen: u32, + pub CreateOptions: u32, + pub TreeConnectAttributes: u32, +} +impl ::core::marker::Copy for SMB_TREE_CONNECT_PARAMETERS {} +impl ::core::clone::Clone for SMB_TREE_CONNECT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SMB_USE_OPTION_COMPRESSION_PARAMETERS { + pub Tag: u32, + pub Length: u16, + pub Reserved: u16, +} +impl ::core::marker::Copy for SMB_USE_OPTION_COMPRESSION_PARAMETERS {} +impl ::core::clone::Clone for SMB_USE_OPTION_COMPRESSION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STD_ALERT { + pub alrt_timestamp: u32, + pub alrt_eventname: [u16; 17], + pub alrt_servicename: [u16; 81], +} +impl ::core::marker::Copy for STD_ALERT {} +impl ::core::clone::Clone for STD_ALERT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TIME_OF_DAY_INFO { + pub tod_elapsedt: u32, + pub tod_msecs: u32, + pub tod_hours: u32, + pub tod_mins: u32, + pub tod_secs: u32, + pub tod_hunds: u32, + pub tod_timezone: i32, + pub tod_tinterval: u32, + pub tod_day: u32, + pub tod_month: u32, + pub tod_year: u32, + pub tod_weekday: u32, +} +impl ::core::marker::Copy for TIME_OF_DAY_INFO {} +impl ::core::clone::Clone for TIME_OF_DAY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRANSPORT_INFO { + pub Type: TRANSPORT_TYPE, + pub SkipCertificateCheck: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRANSPORT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRANSPORT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_0 { + pub usri0_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_0 {} +impl ::core::clone::Clone for USER_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1 { + pub usri1_name: ::windows_sys::core::PWSTR, + pub usri1_password: ::windows_sys::core::PWSTR, + pub usri1_password_age: u32, + pub usri1_priv: USER_PRIV, + pub usri1_home_dir: ::windows_sys::core::PWSTR, + pub usri1_comment: ::windows_sys::core::PWSTR, + pub usri1_flags: USER_ACCOUNT_FLAGS, + pub usri1_script_path: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_1 {} +impl ::core::clone::Clone for USER_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_10 { + pub usri10_name: ::windows_sys::core::PWSTR, + pub usri10_comment: ::windows_sys::core::PWSTR, + pub usri10_usr_comment: ::windows_sys::core::PWSTR, + pub usri10_full_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_10 {} +impl ::core::clone::Clone for USER_INFO_10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1003 { + pub usri1003_password: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_1003 {} +impl ::core::clone::Clone for USER_INFO_1003 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1005 { + pub usri1005_priv: USER_PRIV, +} +impl ::core::marker::Copy for USER_INFO_1005 {} +impl ::core::clone::Clone for USER_INFO_1005 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1006 { + pub usri1006_home_dir: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_1006 {} +impl ::core::clone::Clone for USER_INFO_1006 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1007 { + pub usri1007_comment: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_1007 {} +impl ::core::clone::Clone for USER_INFO_1007 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1008 { + pub usri1008_flags: USER_ACCOUNT_FLAGS, +} +impl ::core::marker::Copy for USER_INFO_1008 {} +impl ::core::clone::Clone for USER_INFO_1008 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1009 { + pub usri1009_script_path: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_1009 {} +impl ::core::clone::Clone for USER_INFO_1009 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1010 { + pub usri1010_auth_flags: AF_OP, +} +impl ::core::marker::Copy for USER_INFO_1010 {} +impl ::core::clone::Clone for USER_INFO_1010 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1011 { + pub usri1011_full_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_1011 {} +impl ::core::clone::Clone for USER_INFO_1011 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1012 { + pub usri1012_usr_comment: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_1012 {} +impl ::core::clone::Clone for USER_INFO_1012 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1013 { + pub usri1013_parms: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_1013 {} +impl ::core::clone::Clone for USER_INFO_1013 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1014 { + pub usri1014_workstations: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_1014 {} +impl ::core::clone::Clone for USER_INFO_1014 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1017 { + pub usri1017_acct_expires: u32, +} +impl ::core::marker::Copy for USER_INFO_1017 {} +impl ::core::clone::Clone for USER_INFO_1017 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1018 { + pub usri1018_max_storage: u32, +} +impl ::core::marker::Copy for USER_INFO_1018 {} +impl ::core::clone::Clone for USER_INFO_1018 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1020 { + pub usri1020_units_per_week: u32, + pub usri1020_logon_hours: *mut u8, +} +impl ::core::marker::Copy for USER_INFO_1020 {} +impl ::core::clone::Clone for USER_INFO_1020 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1023 { + pub usri1023_logon_server: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_1023 {} +impl ::core::clone::Clone for USER_INFO_1023 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1024 { + pub usri1024_country_code: u32, +} +impl ::core::marker::Copy for USER_INFO_1024 {} +impl ::core::clone::Clone for USER_INFO_1024 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1025 { + pub usri1025_code_page: u32, +} +impl ::core::marker::Copy for USER_INFO_1025 {} +impl ::core::clone::Clone for USER_INFO_1025 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1051 { + pub usri1051_primary_group_id: u32, +} +impl ::core::marker::Copy for USER_INFO_1051 {} +impl ::core::clone::Clone for USER_INFO_1051 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1052 { + pub usri1052_profile: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_1052 {} +impl ::core::clone::Clone for USER_INFO_1052 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_1053 { + pub usri1053_home_dir_drive: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_INFO_1053 {} +impl ::core::clone::Clone for USER_INFO_1053 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_11 { + pub usri11_name: ::windows_sys::core::PWSTR, + pub usri11_comment: ::windows_sys::core::PWSTR, + pub usri11_usr_comment: ::windows_sys::core::PWSTR, + pub usri11_full_name: ::windows_sys::core::PWSTR, + pub usri11_priv: USER_PRIV, + pub usri11_auth_flags: AF_OP, + pub usri11_password_age: u32, + pub usri11_home_dir: ::windows_sys::core::PWSTR, + pub usri11_parms: ::windows_sys::core::PWSTR, + pub usri11_last_logon: u32, + pub usri11_last_logoff: u32, + pub usri11_bad_pw_count: u32, + pub usri11_num_logons: u32, + pub usri11_logon_server: ::windows_sys::core::PWSTR, + pub usri11_country_code: u32, + pub usri11_workstations: ::windows_sys::core::PWSTR, + pub usri11_max_storage: u32, + pub usri11_units_per_week: u32, + pub usri11_logon_hours: *mut u8, + pub usri11_code_page: u32, +} +impl ::core::marker::Copy for USER_INFO_11 {} +impl ::core::clone::Clone for USER_INFO_11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_2 { + pub usri2_name: ::windows_sys::core::PWSTR, + pub usri2_password: ::windows_sys::core::PWSTR, + pub usri2_password_age: u32, + pub usri2_priv: USER_PRIV, + pub usri2_home_dir: ::windows_sys::core::PWSTR, + pub usri2_comment: ::windows_sys::core::PWSTR, + pub usri2_flags: USER_ACCOUNT_FLAGS, + pub usri2_script_path: ::windows_sys::core::PWSTR, + pub usri2_auth_flags: AF_OP, + pub usri2_full_name: ::windows_sys::core::PWSTR, + pub usri2_usr_comment: ::windows_sys::core::PWSTR, + pub usri2_parms: ::windows_sys::core::PWSTR, + pub usri2_workstations: ::windows_sys::core::PWSTR, + pub usri2_last_logon: u32, + pub usri2_last_logoff: u32, + pub usri2_acct_expires: u32, + pub usri2_max_storage: u32, + pub usri2_units_per_week: u32, + pub usri2_logon_hours: *mut u8, + pub usri2_bad_pw_count: u32, + pub usri2_num_logons: u32, + pub usri2_logon_server: ::windows_sys::core::PWSTR, + pub usri2_country_code: u32, + pub usri2_code_page: u32, +} +impl ::core::marker::Copy for USER_INFO_2 {} +impl ::core::clone::Clone for USER_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_20 { + pub usri20_name: ::windows_sys::core::PWSTR, + pub usri20_full_name: ::windows_sys::core::PWSTR, + pub usri20_comment: ::windows_sys::core::PWSTR, + pub usri20_flags: USER_ACCOUNT_FLAGS, + pub usri20_user_id: u32, +} +impl ::core::marker::Copy for USER_INFO_20 {} +impl ::core::clone::Clone for USER_INFO_20 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_21 { + pub usri21_password: [u8; 16], +} +impl ::core::marker::Copy for USER_INFO_21 {} +impl ::core::clone::Clone for USER_INFO_21 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_22 { + pub usri22_name: ::windows_sys::core::PWSTR, + pub usri22_password: [u8; 16], + pub usri22_password_age: u32, + pub usri22_priv: USER_PRIV, + pub usri22_home_dir: ::windows_sys::core::PWSTR, + pub usri22_comment: ::windows_sys::core::PWSTR, + pub usri22_flags: USER_ACCOUNT_FLAGS, + pub usri22_script_path: ::windows_sys::core::PWSTR, + pub usri22_auth_flags: AF_OP, + pub usri22_full_name: ::windows_sys::core::PWSTR, + pub usri22_usr_comment: ::windows_sys::core::PWSTR, + pub usri22_parms: ::windows_sys::core::PWSTR, + pub usri22_workstations: ::windows_sys::core::PWSTR, + pub usri22_last_logon: u32, + pub usri22_last_logoff: u32, + pub usri22_acct_expires: u32, + pub usri22_max_storage: u32, + pub usri22_units_per_week: u32, + pub usri22_logon_hours: *mut u8, + pub usri22_bad_pw_count: u32, + pub usri22_num_logons: u32, + pub usri22_logon_server: ::windows_sys::core::PWSTR, + pub usri22_country_code: u32, + pub usri22_code_page: u32, +} +impl ::core::marker::Copy for USER_INFO_22 {} +impl ::core::clone::Clone for USER_INFO_22 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USER_INFO_23 { + pub usri23_name: ::windows_sys::core::PWSTR, + pub usri23_full_name: ::windows_sys::core::PWSTR, + pub usri23_comment: ::windows_sys::core::PWSTR, + pub usri23_flags: USER_ACCOUNT_FLAGS, + pub usri23_user_sid: super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USER_INFO_23 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USER_INFO_23 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USER_INFO_24 { + pub usri24_internet_identity: super::super::Foundation::BOOL, + pub usri24_flags: u32, + pub usri24_internet_provider_name: ::windows_sys::core::PWSTR, + pub usri24_internet_principal_name: ::windows_sys::core::PWSTR, + pub usri24_user_sid: super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USER_INFO_24 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USER_INFO_24 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_INFO_3 { + pub usri3_name: ::windows_sys::core::PWSTR, + pub usri3_password: ::windows_sys::core::PWSTR, + pub usri3_password_age: u32, + pub usri3_priv: USER_PRIV, + pub usri3_home_dir: ::windows_sys::core::PWSTR, + pub usri3_comment: ::windows_sys::core::PWSTR, + pub usri3_flags: USER_ACCOUNT_FLAGS, + pub usri3_script_path: ::windows_sys::core::PWSTR, + pub usri3_auth_flags: AF_OP, + pub usri3_full_name: ::windows_sys::core::PWSTR, + pub usri3_usr_comment: ::windows_sys::core::PWSTR, + pub usri3_parms: ::windows_sys::core::PWSTR, + pub usri3_workstations: ::windows_sys::core::PWSTR, + pub usri3_last_logon: u32, + pub usri3_last_logoff: u32, + pub usri3_acct_expires: u32, + pub usri3_max_storage: u32, + pub usri3_units_per_week: u32, + pub usri3_logon_hours: *mut u8, + pub usri3_bad_pw_count: u32, + pub usri3_num_logons: u32, + pub usri3_logon_server: ::windows_sys::core::PWSTR, + pub usri3_country_code: u32, + pub usri3_code_page: u32, + pub usri3_user_id: u32, + pub usri3_primary_group_id: u32, + pub usri3_profile: ::windows_sys::core::PWSTR, + pub usri3_home_dir_drive: ::windows_sys::core::PWSTR, + pub usri3_password_expired: u32, +} +impl ::core::marker::Copy for USER_INFO_3 {} +impl ::core::clone::Clone for USER_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USER_INFO_4 { + pub usri4_name: ::windows_sys::core::PWSTR, + pub usri4_password: ::windows_sys::core::PWSTR, + pub usri4_password_age: u32, + pub usri4_priv: USER_PRIV, + pub usri4_home_dir: ::windows_sys::core::PWSTR, + pub usri4_comment: ::windows_sys::core::PWSTR, + pub usri4_flags: USER_ACCOUNT_FLAGS, + pub usri4_script_path: ::windows_sys::core::PWSTR, + pub usri4_auth_flags: AF_OP, + pub usri4_full_name: ::windows_sys::core::PWSTR, + pub usri4_usr_comment: ::windows_sys::core::PWSTR, + pub usri4_parms: ::windows_sys::core::PWSTR, + pub usri4_workstations: ::windows_sys::core::PWSTR, + pub usri4_last_logon: u32, + pub usri4_last_logoff: u32, + pub usri4_acct_expires: u32, + pub usri4_max_storage: u32, + pub usri4_units_per_week: u32, + pub usri4_logon_hours: *mut u8, + pub usri4_bad_pw_count: u32, + pub usri4_num_logons: u32, + pub usri4_logon_server: ::windows_sys::core::PWSTR, + pub usri4_country_code: u32, + pub usri4_code_page: u32, + pub usri4_user_sid: super::super::Foundation::PSID, + pub usri4_primary_group_id: u32, + pub usri4_profile: ::windows_sys::core::PWSTR, + pub usri4_home_dir_drive: ::windows_sys::core::PWSTR, + pub usri4_password_expired: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USER_INFO_4 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USER_INFO_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_MODALS_INFO_0 { + pub usrmod0_min_passwd_len: u32, + pub usrmod0_max_passwd_age: u32, + pub usrmod0_min_passwd_age: u32, + pub usrmod0_force_logoff: u32, + pub usrmod0_password_hist_len: u32, +} +impl ::core::marker::Copy for USER_MODALS_INFO_0 {} +impl ::core::clone::Clone for USER_MODALS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_MODALS_INFO_1 { + pub usrmod1_role: u32, + pub usrmod1_primary: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_MODALS_INFO_1 {} +impl ::core::clone::Clone for USER_MODALS_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_MODALS_INFO_1001 { + pub usrmod1001_min_passwd_len: u32, +} +impl ::core::marker::Copy for USER_MODALS_INFO_1001 {} +impl ::core::clone::Clone for USER_MODALS_INFO_1001 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_MODALS_INFO_1002 { + pub usrmod1002_max_passwd_age: u32, +} +impl ::core::marker::Copy for USER_MODALS_INFO_1002 {} +impl ::core::clone::Clone for USER_MODALS_INFO_1002 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_MODALS_INFO_1003 { + pub usrmod1003_min_passwd_age: u32, +} +impl ::core::marker::Copy for USER_MODALS_INFO_1003 {} +impl ::core::clone::Clone for USER_MODALS_INFO_1003 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_MODALS_INFO_1004 { + pub usrmod1004_force_logoff: u32, +} +impl ::core::marker::Copy for USER_MODALS_INFO_1004 {} +impl ::core::clone::Clone for USER_MODALS_INFO_1004 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_MODALS_INFO_1005 { + pub usrmod1005_password_hist_len: u32, +} +impl ::core::marker::Copy for USER_MODALS_INFO_1005 {} +impl ::core::clone::Clone for USER_MODALS_INFO_1005 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_MODALS_INFO_1006 { + pub usrmod1006_role: USER_MODALS_ROLES, +} +impl ::core::marker::Copy for USER_MODALS_INFO_1006 {} +impl ::core::clone::Clone for USER_MODALS_INFO_1006 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_MODALS_INFO_1007 { + pub usrmod1007_primary: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USER_MODALS_INFO_1007 {} +impl ::core::clone::Clone for USER_MODALS_INFO_1007 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USER_MODALS_INFO_2 { + pub usrmod2_domain_name: ::windows_sys::core::PWSTR, + pub usrmod2_domain_id: super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USER_MODALS_INFO_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USER_MODALS_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_MODALS_INFO_3 { + pub usrmod3_lockout_duration: u32, + pub usrmod3_lockout_observation_window: u32, + pub usrmod3_lockout_threshold: u32, +} +impl ::core::marker::Copy for USER_MODALS_INFO_3 {} +impl ::core::clone::Clone for USER_MODALS_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_OTHER_INFO { + pub alrtus_errcode: u32, + pub alrtus_numstrings: u32, +} +impl ::core::marker::Copy for USER_OTHER_INFO {} +impl ::core::clone::Clone for USER_OTHER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USE_INFO_0 { + pub ui0_local: ::windows_sys::core::PWSTR, + pub ui0_remote: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USE_INFO_0 {} +impl ::core::clone::Clone for USE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USE_INFO_1 { + pub ui1_local: ::windows_sys::core::PWSTR, + pub ui1_remote: ::windows_sys::core::PWSTR, + pub ui1_password: ::windows_sys::core::PWSTR, + pub ui1_status: u32, + pub ui1_asg_type: USE_INFO_ASG_TYPE, + pub ui1_refcount: u32, + pub ui1_usecount: u32, +} +impl ::core::marker::Copy for USE_INFO_1 {} +impl ::core::clone::Clone for USE_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USE_INFO_2 { + pub ui2_local: ::windows_sys::core::PWSTR, + pub ui2_remote: ::windows_sys::core::PWSTR, + pub ui2_password: ::windows_sys::core::PWSTR, + pub ui2_status: u32, + pub ui2_asg_type: USE_INFO_ASG_TYPE, + pub ui2_refcount: u32, + pub ui2_usecount: u32, + pub ui2_username: ::windows_sys::core::PWSTR, + pub ui2_domainname: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USE_INFO_2 {} +impl ::core::clone::Clone for USE_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USE_INFO_3 { + pub ui3_ui2: USE_INFO_2, + pub ui3_flags: u32, +} +impl ::core::marker::Copy for USE_INFO_3 {} +impl ::core::clone::Clone for USE_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USE_INFO_4 { + pub ui4_ui3: USE_INFO_3, + pub ui4_auth_identity_length: u32, + pub ui4_auth_identity: *mut u8, +} +impl ::core::marker::Copy for USE_INFO_4 {} +impl ::core::clone::Clone for USE_INFO_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USE_INFO_5 { + pub ui4_ui3: USE_INFO_3, + pub ui4_auth_identity_length: u32, + pub ui4_auth_identity: *mut u8, + pub ui5_security_descriptor_length: u32, + pub ui5_security_descriptor: *mut u8, + pub ui5_use_options_length: u32, + pub ui5_use_options: *mut u8, +} +impl ::core::marker::Copy for USE_INFO_5 {} +impl ::core::clone::Clone for USE_INFO_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USE_OPTION_DEFERRED_CONNECTION_PARAMETERS { + pub Tag: u32, + pub Length: u16, + pub Reserved: u16, +} +impl ::core::marker::Copy for USE_OPTION_DEFERRED_CONNECTION_PARAMETERS {} +impl ::core::clone::Clone for USE_OPTION_DEFERRED_CONNECTION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USE_OPTION_GENERIC { + pub Tag: u32, + pub Length: u16, + pub Reserved: u16, +} +impl ::core::marker::Copy for USE_OPTION_GENERIC {} +impl ::core::clone::Clone for USE_OPTION_GENERIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USE_OPTION_PROPERTIES { + pub Tag: u32, + pub pInfo: *mut ::core::ffi::c_void, + pub Length: usize, +} +impl ::core::marker::Copy for USE_OPTION_PROPERTIES {} +impl ::core::clone::Clone for USE_OPTION_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USE_OPTION_TRANSPORT_PARAMETERS { + pub Tag: u32, + pub Length: u16, + pub Reserved: u16, +} +impl ::core::marker::Copy for USE_OPTION_TRANSPORT_PARAMETERS {} +impl ::core::clone::Clone for USE_OPTION_TRANSPORT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_100 { + pub wki100_platform_id: u32, + pub wki100_computername: ::windows_sys::core::PWSTR, + pub wki100_langroup: ::windows_sys::core::PWSTR, + pub wki100_ver_major: u32, + pub wki100_ver_minor: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_100 {} +impl ::core::clone::Clone for WKSTA_INFO_100 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_101 { + pub wki101_platform_id: u32, + pub wki101_computername: ::windows_sys::core::PWSTR, + pub wki101_langroup: ::windows_sys::core::PWSTR, + pub wki101_ver_major: u32, + pub wki101_ver_minor: u32, + pub wki101_lanroot: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WKSTA_INFO_101 {} +impl ::core::clone::Clone for WKSTA_INFO_101 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1010 { + pub wki1010_char_wait: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1010 {} +impl ::core::clone::Clone for WKSTA_INFO_1010 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1011 { + pub wki1011_collection_time: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1011 {} +impl ::core::clone::Clone for WKSTA_INFO_1011 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1012 { + pub wki1012_maximum_collection_count: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1012 {} +impl ::core::clone::Clone for WKSTA_INFO_1012 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1013 { + pub wki1013_keep_conn: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1013 {} +impl ::core::clone::Clone for WKSTA_INFO_1013 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1018 { + pub wki1018_sess_timeout: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1018 {} +impl ::core::clone::Clone for WKSTA_INFO_1018 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_102 { + pub wki102_platform_id: u32, + pub wki102_computername: ::windows_sys::core::PWSTR, + pub wki102_langroup: ::windows_sys::core::PWSTR, + pub wki102_ver_major: u32, + pub wki102_ver_minor: u32, + pub wki102_lanroot: ::windows_sys::core::PWSTR, + pub wki102_logged_on_users: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_102 {} +impl ::core::clone::Clone for WKSTA_INFO_102 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1023 { + pub wki1023_siz_char_buf: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1023 {} +impl ::core::clone::Clone for WKSTA_INFO_1023 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1027 { + pub wki1027_errlog_sz: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1027 {} +impl ::core::clone::Clone for WKSTA_INFO_1027 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1028 { + pub wki1028_print_buf_time: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1028 {} +impl ::core::clone::Clone for WKSTA_INFO_1028 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1032 { + pub wki1032_wrk_heuristics: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1032 {} +impl ::core::clone::Clone for WKSTA_INFO_1032 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1033 { + pub wki1033_max_threads: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1033 {} +impl ::core::clone::Clone for WKSTA_INFO_1033 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1041 { + pub wki1041_lock_quota: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1041 {} +impl ::core::clone::Clone for WKSTA_INFO_1041 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1042 { + pub wki1042_lock_increment: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1042 {} +impl ::core::clone::Clone for WKSTA_INFO_1042 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1043 { + pub wki1043_lock_maximum: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1043 {} +impl ::core::clone::Clone for WKSTA_INFO_1043 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1044 { + pub wki1044_pipe_increment: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1044 {} +impl ::core::clone::Clone for WKSTA_INFO_1044 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1045 { + pub wki1045_pipe_maximum: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1045 {} +impl ::core::clone::Clone for WKSTA_INFO_1045 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1046 { + pub wki1046_dormant_file_limit: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1046 {} +impl ::core::clone::Clone for WKSTA_INFO_1046 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1047 { + pub wki1047_cache_file_timeout: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1047 {} +impl ::core::clone::Clone for WKSTA_INFO_1047 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1048 { + pub wki1048_use_opportunistic_locking: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1048 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1048 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1049 { + pub wki1049_use_unlock_behind: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1049 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1049 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1050 { + pub wki1050_use_close_behind: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1050 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1050 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1051 { + pub wki1051_buf_named_pipes: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1051 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1051 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1052 { + pub wki1052_use_lock_read_unlock: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1052 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1052 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1053 { + pub wki1053_utilize_nt_caching: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1053 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1053 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1054 { + pub wki1054_use_raw_read: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1054 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1054 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1055 { + pub wki1055_use_raw_write: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1055 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1055 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1056 { + pub wki1056_use_write_raw_data: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1056 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1056 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1057 { + pub wki1057_use_encryption: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1057 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1057 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1058 { + pub wki1058_buf_files_deny_write: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1058 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1058 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1059 { + pub wki1059_buf_read_only_files: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1059 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1059 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1060 { + pub wki1060_force_core_create_mode: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1060 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1060 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_1061 { + pub wki1061_use_512_byte_max_transfer: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_1061 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_1061 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_1062 { + pub wki1062_read_ahead_throughput: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_1062 {} +impl ::core::clone::Clone for WKSTA_INFO_1062 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_302 { + pub wki302_char_wait: u32, + pub wki302_collection_time: u32, + pub wki302_maximum_collection_count: u32, + pub wki302_keep_conn: u32, + pub wki302_keep_search: u32, + pub wki302_max_cmds: u32, + pub wki302_num_work_buf: u32, + pub wki302_siz_work_buf: u32, + pub wki302_max_wrk_cache: u32, + pub wki302_sess_timeout: u32, + pub wki302_siz_error: u32, + pub wki302_num_alerts: u32, + pub wki302_num_services: u32, + pub wki302_errlog_sz: u32, + pub wki302_print_buf_time: u32, + pub wki302_num_char_buf: u32, + pub wki302_siz_char_buf: u32, + pub wki302_wrk_heuristics: ::windows_sys::core::PWSTR, + pub wki302_mailslots: u32, + pub wki302_num_dgram_buf: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_302 {} +impl ::core::clone::Clone for WKSTA_INFO_302 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_INFO_402 { + pub wki402_char_wait: u32, + pub wki402_collection_time: u32, + pub wki402_maximum_collection_count: u32, + pub wki402_keep_conn: u32, + pub wki402_keep_search: u32, + pub wki402_max_cmds: u32, + pub wki402_num_work_buf: u32, + pub wki402_siz_work_buf: u32, + pub wki402_max_wrk_cache: u32, + pub wki402_sess_timeout: u32, + pub wki402_siz_error: u32, + pub wki402_num_alerts: u32, + pub wki402_num_services: u32, + pub wki402_errlog_sz: u32, + pub wki402_print_buf_time: u32, + pub wki402_num_char_buf: u32, + pub wki402_siz_char_buf: u32, + pub wki402_wrk_heuristics: ::windows_sys::core::PWSTR, + pub wki402_mailslots: u32, + pub wki402_num_dgram_buf: u32, + pub wki402_max_threads: u32, +} +impl ::core::marker::Copy for WKSTA_INFO_402 {} +impl ::core::clone::Clone for WKSTA_INFO_402 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_INFO_502 { + pub wki502_char_wait: u32, + pub wki502_collection_time: u32, + pub wki502_maximum_collection_count: u32, + pub wki502_keep_conn: u32, + pub wki502_max_cmds: u32, + pub wki502_sess_timeout: u32, + pub wki502_siz_char_buf: u32, + pub wki502_max_threads: u32, + pub wki502_lock_quota: u32, + pub wki502_lock_increment: u32, + pub wki502_lock_maximum: u32, + pub wki502_pipe_increment: u32, + pub wki502_pipe_maximum: u32, + pub wki502_cache_file_timeout: u32, + pub wki502_dormant_file_limit: u32, + pub wki502_read_ahead_throughput: u32, + pub wki502_num_mailslot_buffers: u32, + pub wki502_num_srv_announce_buffers: u32, + pub wki502_max_illegal_datagram_events: u32, + pub wki502_illegal_datagram_event_reset_frequency: u32, + pub wki502_log_election_packets: super::super::Foundation::BOOL, + pub wki502_use_opportunistic_locking: super::super::Foundation::BOOL, + pub wki502_use_unlock_behind: super::super::Foundation::BOOL, + pub wki502_use_close_behind: super::super::Foundation::BOOL, + pub wki502_buf_named_pipes: super::super::Foundation::BOOL, + pub wki502_use_lock_read_unlock: super::super::Foundation::BOOL, + pub wki502_utilize_nt_caching: super::super::Foundation::BOOL, + pub wki502_use_raw_read: super::super::Foundation::BOOL, + pub wki502_use_raw_write: super::super::Foundation::BOOL, + pub wki502_use_write_raw_data: super::super::Foundation::BOOL, + pub wki502_use_encryption: super::super::Foundation::BOOL, + pub wki502_buf_files_deny_write: super::super::Foundation::BOOL, + pub wki502_buf_read_only_files: super::super::Foundation::BOOL, + pub wki502_force_core_create_mode: super::super::Foundation::BOOL, + pub wki502_use_512_byte_max_transfer: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_INFO_502 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_INFO_502 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WKSTA_TRANSPORT_INFO_0 { + pub wkti0_quality_of_service: u32, + pub wkti0_number_of_vcs: u32, + pub wkti0_transport_name: ::windows_sys::core::PWSTR, + pub wkti0_transport_address: ::windows_sys::core::PWSTR, + pub wkti0_wan_ish: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WKSTA_TRANSPORT_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WKSTA_TRANSPORT_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_USER_INFO_0 { + pub wkui0_username: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WKSTA_USER_INFO_0 {} +impl ::core::clone::Clone for WKSTA_USER_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_USER_INFO_1 { + pub wkui1_username: ::windows_sys::core::PWSTR, + pub wkui1_logon_domain: ::windows_sys::core::PWSTR, + pub wkui1_oth_domains: ::windows_sys::core::PWSTR, + pub wkui1_logon_server: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WKSTA_USER_INFO_1 {} +impl ::core::clone::Clone for WKSTA_USER_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WKSTA_USER_INFO_1101 { + pub wkui1101_oth_domains: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WKSTA_USER_INFO_1101 {} +impl ::core::clone::Clone for WKSTA_USER_INFO_1101 { + fn clone(&self) -> Self { + *self + } +} +pub type WORKERFUNCTION = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetShell/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetShell/mod.rs new file mode 100644 index 000000000..e83ec6b36 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetShell/mod.rs @@ -0,0 +1,246 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netsh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MatchEnumTag(hmodule : super::super::Foundation:: HANDLE, pwcarg : ::windows_sys::core::PCWSTR, dwnumarg : u32, penumtable : *const TOKEN_VALUE, pdwvalue : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netsh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MatchToken(pwszusertoken : ::windows_sys::core::PCWSTR, pwszcmdtoken : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netsh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PreprocessCommand(hmodule : super::super::Foundation:: HANDLE, ppwcarguments : *mut ::windows_sys::core::PWSTR, dwcurrentindex : u32, dwargcount : u32, ptttags : *mut TAG_TYPE, dwtagcount : u32, dwminargs : u32, dwmaxargs : u32, pdwtagtype : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netsh.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrintError(hmodule : super::super::Foundation:: HANDLE, dwerrid : u32, ...) -> u32); +::windows_targets::link!("netsh.dll" "cdecl" fn PrintMessage(pwszformat : ::windows_sys::core::PCWSTR, ...) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netsh.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrintMessageFromModule(hmodule : super::super::Foundation:: HANDLE, dwmsgid : u32, ...) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netsh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterContext(pchildcontext : *const NS_CONTEXT_ATTRIBUTES) -> u32); +::windows_targets::link!("netsh.dll" "system" fn RegisterHelper(pguidparentcontext : *const ::windows_sys::core::GUID, pfnregistersubcontext : *const NS_HELPER_ATTRIBUTES) -> u32); +pub const CMD_FLAG_HIDDEN: NS_CMD_FLAGS = 32i32; +pub const CMD_FLAG_INTERACTIVE: NS_CMD_FLAGS = 2i32; +pub const CMD_FLAG_LIMIT_MASK: NS_CMD_FLAGS = 65535i32; +pub const CMD_FLAG_LOCAL: NS_CMD_FLAGS = 8i32; +pub const CMD_FLAG_ONLINE: NS_CMD_FLAGS = 16i32; +pub const CMD_FLAG_PRIORITY: NS_CMD_FLAGS = -2147483648i32; +pub const CMD_FLAG_PRIVATE: NS_CMD_FLAGS = 1i32; +pub const DEFAULT_CONTEXT_PRIORITY: u32 = 100u32; +pub const ERROR_CMD_NOT_FOUND: u32 = 15004u32; +pub const ERROR_CONTEXT_ALREADY_REGISTERED: u32 = 15019u32; +pub const ERROR_CONTINUE_IN_PARENT_CONTEXT: u32 = 15016u32; +pub const ERROR_DLL_LOAD_FAILED: u32 = 15006u32; +pub const ERROR_ENTRY_PT_NOT_FOUND: u32 = 15005u32; +pub const ERROR_HELPER_ALREADY_REGISTERED: u32 = 15018u32; +pub const ERROR_INIT_DISPLAY: u32 = 15007u32; +pub const ERROR_INVALID_OPTION_TAG: u32 = 15009u32; +pub const ERROR_INVALID_OPTION_VALUE: u32 = 15014u32; +pub const ERROR_INVALID_SYNTAX: u32 = 15001u32; +pub const ERROR_MISSING_OPTION: u32 = 15011u32; +pub const ERROR_NO_CHANGE: u32 = 15003u32; +pub const ERROR_NO_ENTRIES: u32 = 15000u32; +pub const ERROR_NO_TAG: u32 = 15010u32; +pub const ERROR_OKAY: u32 = 15015u32; +pub const ERROR_PARSING_FAILURE: u32 = 15020u32; +pub const ERROR_PROTOCOL_NOT_IN_TRANSPORT: u32 = 15002u32; +pub const ERROR_SHOW_USAGE: u32 = 15013u32; +pub const ERROR_SUPPRESS_OUTPUT: u32 = 15017u32; +pub const ERROR_TAG_ALREADY_PRESENT: u32 = 15008u32; +pub const ERROR_TRANSPORT_NOT_PRESENT: u32 = 15012u32; +pub const GET_RESOURCE_STRING_FN_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("GetResourceString"); +pub const MAX_NAME_LEN: u32 = 48u32; +pub const NETSH_ARG_DELIMITER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("="); +pub const NETSH_CMD_DELIMITER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(" "); +pub const NETSH_COMMIT: NS_MODE_CHANGE = 0i32; +pub const NETSH_COMMIT_STATE: NS_MODE_CHANGE = 3i32; +pub const NETSH_ERROR_BASE: u32 = 15000u32; +pub const NETSH_ERROR_END: u32 = 15019u32; +pub const NETSH_FLUSH: NS_MODE_CHANGE = 2i32; +pub const NETSH_MAX_CMD_TOKEN_LENGTH: u32 = 128u32; +pub const NETSH_MAX_TOKEN_LENGTH: u32 = 64u32; +pub const NETSH_SAVE: NS_MODE_CHANGE = 4i32; +pub const NETSH_UNCOMMIT: NS_MODE_CHANGE = 1i32; +pub const NETSH_VERSION_50: u32 = 20480u32; +pub const NS_EVENT_FROM_N: NS_EVENTS = 4i32; +pub const NS_EVENT_FROM_START: NS_EVENTS = 8i32; +pub const NS_EVENT_LAST_N: NS_EVENTS = 1i32; +pub const NS_EVENT_LAST_SECS: NS_EVENTS = 2i32; +pub const NS_EVENT_LOOP: NS_EVENTS = 65536i32; +pub const NS_GET_EVENT_IDS_FN_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("GetEventIds"); +pub const NS_REQ_ALLOW_MULTIPLE: NS_REQS = 2i32; +pub const NS_REQ_ONE_OR_MORE: NS_REQS = 3i32; +pub const NS_REQ_PRESENT: NS_REQS = 1i32; +pub const NS_REQ_ZERO: NS_REQS = 0i32; +pub type NS_CMD_FLAGS = i32; +pub type NS_EVENTS = i32; +pub type NS_MODE_CHANGE = i32; +pub type NS_REQS = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMD_ENTRY { + pub pwszCmdToken: ::windows_sys::core::PCWSTR, + pub pfnCmdHandler: PFN_HANDLE_CMD, + pub dwShortCmdHelpToken: u32, + pub dwCmdHlpToken: u32, + pub dwFlags: u32, + pub pOsVersionCheck: PNS_OSVERSIONCHECK, + pub pfnCustomHelpFn: PFN_CUSTOM_HELP, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMD_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMD_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMD_GROUP_ENTRY { + pub pwszCmdGroupToken: ::windows_sys::core::PCWSTR, + pub dwShortCmdHelpToken: u32, + pub ulCmdGroupSize: u32, + pub dwFlags: u32, + pub pCmdGroup: *mut CMD_ENTRY, + pub pOsVersionCheck: PNS_OSVERSIONCHECK, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMD_GROUP_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMD_GROUP_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NS_CONTEXT_ATTRIBUTES { + pub Anonymous: NS_CONTEXT_ATTRIBUTES_0, + pub pwszContext: ::windows_sys::core::PWSTR, + pub guidHelper: ::windows_sys::core::GUID, + pub dwFlags: u32, + pub ulPriority: u32, + pub ulNumTopCmds: u32, + pub pTopCmds: *mut CMD_ENTRY, + pub ulNumGroups: u32, + pub pCmdGroups: *mut CMD_GROUP_ENTRY, + pub pfnCommitFn: PNS_CONTEXT_COMMIT_FN, + pub pfnDumpFn: PNS_CONTEXT_DUMP_FN, + pub pfnConnectFn: PNS_CONTEXT_CONNECT_FN, + pub pReserved: *mut ::core::ffi::c_void, + pub pfnOsVersionCheck: PNS_OSVERSIONCHECK, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NS_CONTEXT_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NS_CONTEXT_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union NS_CONTEXT_ATTRIBUTES_0 { + pub Anonymous: NS_CONTEXT_ATTRIBUTES_0_0, + pub _ullAlign: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NS_CONTEXT_ATTRIBUTES_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NS_CONTEXT_ATTRIBUTES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NS_CONTEXT_ATTRIBUTES_0_0 { + pub dwVersion: u32, + pub dwReserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NS_CONTEXT_ATTRIBUTES_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NS_CONTEXT_ATTRIBUTES_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NS_HELPER_ATTRIBUTES { + pub Anonymous: NS_HELPER_ATTRIBUTES_0, + pub guidHelper: ::windows_sys::core::GUID, + pub pfnStart: PNS_HELPER_START_FN, + pub pfnStop: PNS_HELPER_STOP_FN, +} +impl ::core::marker::Copy for NS_HELPER_ATTRIBUTES {} +impl ::core::clone::Clone for NS_HELPER_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NS_HELPER_ATTRIBUTES_0 { + pub Anonymous: NS_HELPER_ATTRIBUTES_0_0, + pub _ullAlign: u64, +} +impl ::core::marker::Copy for NS_HELPER_ATTRIBUTES_0 {} +impl ::core::clone::Clone for NS_HELPER_ATTRIBUTES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NS_HELPER_ATTRIBUTES_0_0 { + pub dwVersion: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for NS_HELPER_ATTRIBUTES_0_0 {} +impl ::core::clone::Clone for NS_HELPER_ATTRIBUTES_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TAG_TYPE { + pub pwszTag: ::windows_sys::core::PCWSTR, + pub dwRequired: u32, + pub bPresent: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TAG_TYPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TAG_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TOKEN_VALUE { + pub pwszToken: ::windows_sys::core::PCWSTR, + pub dwValue: u32, +} +impl ::core::marker::Copy for TOKEN_VALUE {} +impl ::core::clone::Clone for TOKEN_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CUSTOM_HELP = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_HANDLE_CMD = ::core::option::Option u32>; +pub type PGET_RESOURCE_STRING_FN = ::core::option::Option u32>; +pub type PNS_CONTEXT_COMMIT_FN = ::core::option::Option u32>; +pub type PNS_CONTEXT_CONNECT_FN = ::core::option::Option u32>; +pub type PNS_CONTEXT_DUMP_FN = ::core::option::Option u32>; +pub type PNS_DLL_INIT_FN = ::core::option::Option u32>; +pub type PNS_DLL_STOP_FN = ::core::option::Option u32>; +pub type PNS_HELPER_START_FN = ::core::option::Option u32>; +pub type PNS_HELPER_STOP_FN = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PNS_OSVERSIONCHECK = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetworkDiagnosticsFramework/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetworkDiagnosticsFramework/mod.rs new file mode 100644 index 000000000..6357f11cd --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/NetworkDiagnosticsFramework/mod.rs @@ -0,0 +1,326 @@ +::windows_targets::link!("ndfapi.dll" "system" fn NdfCancelIncident(handle : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ndfapi.dll" "system" fn NdfCloseIncident(handle : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ndfapi.dll" "system" fn NdfCreateConnectivityIncident(handle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ndfapi.dll" "system" fn NdfCreateDNSIncident(hostname : ::windows_sys::core::PCWSTR, querytype : u16, handle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("ndfapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn NdfCreateGroupingIncident(cloudname : ::windows_sys::core::PCWSTR, groupname : ::windows_sys::core::PCWSTR, identity : ::windows_sys::core::PCWSTR, invitation : ::windows_sys::core::PCWSTR, addresses : *const super::super::Networking::WinSock:: SOCKET_ADDRESS_LIST, appid : ::windows_sys::core::PCWSTR, handle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ndfapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NdfCreateIncident(helperclassname : ::windows_sys::core::PCWSTR, celt : u32, attributes : *const HELPER_ATTRIBUTE, handle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ndfapi.dll" "system" fn NdfCreateNetConnectionIncident(handle : *mut *mut ::core::ffi::c_void, id : ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ndfapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NdfCreatePnrpIncident(cloudname : ::windows_sys::core::PCWSTR, peername : ::windows_sys::core::PCWSTR, diagnosepublish : super::super::Foundation:: BOOL, appid : ::windows_sys::core::PCWSTR, handle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ndfapi.dll" "system" fn NdfCreateSharingIncident(uncpath : ::windows_sys::core::PCWSTR, handle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ndfapi.dll" "system" fn NdfCreateWebIncident(url : ::windows_sys::core::PCWSTR, handle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ndfapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NdfCreateWebIncidentEx(url : ::windows_sys::core::PCWSTR, usewinhttp : super::super::Foundation:: BOOL, modulename : ::windows_sys::core::PCWSTR, handle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Networking_WinSock", feature = "Win32_Security"))] +::windows_targets::link!("ndfapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Security\"`"] fn NdfCreateWinSockIncident(sock : super::super::Networking::WinSock:: SOCKET, host : ::windows_sys::core::PCWSTR, port : u16, appid : ::windows_sys::core::PCWSTR, userid : *const super::super::Security:: SID, handle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ndfapi.dll" "system" fn NdfDiagnoseIncident(handle : *const ::core::ffi::c_void, rootcausecount : *mut u32, rootcauses : *mut *mut RootCauseInfo, dwwait : u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ndfapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NdfExecuteDiagnosis(handle : *const ::core::ffi::c_void, hwnd : super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ndfapi.dll" "system" fn NdfGetTraceFile(handle : *const ::core::ffi::c_void, tracefilelocation : *mut ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ndfapi.dll" "system" fn NdfRepairIncident(handle : *const ::core::ffi::c_void, repairex : *const RepairInfoEx, dwwait : u32) -> ::windows_sys::core::HRESULT); +pub type INetDiagExtensibleHelper = *mut ::core::ffi::c_void; +pub type INetDiagHelper = *mut ::core::ffi::c_void; +pub type INetDiagHelperEx = *mut ::core::ffi::c_void; +pub type INetDiagHelperInfo = *mut ::core::ffi::c_void; +pub type INetDiagHelperUtilFactory = *mut ::core::ffi::c_void; +pub const AT_BOOLEAN: ATTRIBUTE_TYPE = 1i32; +pub const AT_GUID: ATTRIBUTE_TYPE = 11i32; +pub const AT_INT16: ATTRIBUTE_TYPE = 4i32; +pub const AT_INT32: ATTRIBUTE_TYPE = 6i32; +pub const AT_INT64: ATTRIBUTE_TYPE = 8i32; +pub const AT_INT8: ATTRIBUTE_TYPE = 2i32; +pub const AT_INVALID: ATTRIBUTE_TYPE = 0i32; +pub const AT_LIFE_TIME: ATTRIBUTE_TYPE = 12i32; +pub const AT_OCTET_STRING: ATTRIBUTE_TYPE = 14i32; +pub const AT_SOCKADDR: ATTRIBUTE_TYPE = 13i32; +pub const AT_STRING: ATTRIBUTE_TYPE = 10i32; +pub const AT_UINT16: ATTRIBUTE_TYPE = 5i32; +pub const AT_UINT32: ATTRIBUTE_TYPE = 7i32; +pub const AT_UINT64: ATTRIBUTE_TYPE = 9i32; +pub const AT_UINT8: ATTRIBUTE_TYPE = 3i32; +pub const DF_IMPERSONATION: u32 = 2147483648u32; +pub const DF_TRACELESS: u32 = 1073741824u32; +pub const DS_CONFIRMED: DIAGNOSIS_STATUS = 1i32; +pub const DS_DEFERRED: DIAGNOSIS_STATUS = 4i32; +pub const DS_INDETERMINATE: DIAGNOSIS_STATUS = 3i32; +pub const DS_NOT_IMPLEMENTED: DIAGNOSIS_STATUS = 0i32; +pub const DS_PASSTHROUGH: DIAGNOSIS_STATUS = 5i32; +pub const DS_REJECTED: DIAGNOSIS_STATUS = 2i32; +pub const NDF_ADD_CAPTURE_TRACE: u32 = 1u32; +pub const NDF_APPLY_INCLUSION_LIST_FILTER: u32 = 2u32; +pub const NDF_ERROR_START: u32 = 63744u32; +pub const NDF_E_BAD_PARAM: ::windows_sys::core::HRESULT = -2146895611i32; +pub const NDF_E_CANCELLED: ::windows_sys::core::HRESULT = -2146895614i32; +pub const NDF_E_DISABLED: ::windows_sys::core::HRESULT = -2146895612i32; +pub const NDF_E_LENGTH_EXCEEDED: ::windows_sys::core::HRESULT = -2146895616i32; +pub const NDF_E_NOHELPERCLASS: ::windows_sys::core::HRESULT = -2146895615i32; +pub const NDF_E_PROBLEM_PRESENT: ::windows_sys::core::HRESULT = -2146895608i32; +pub const NDF_E_UNKNOWN: ::windows_sys::core::HRESULT = -2146895609i32; +pub const NDF_E_VALIDATION: ::windows_sys::core::HRESULT = -2146895610i32; +pub const NDF_INBOUND_FLAG_EDGETRAVERSAL: u32 = 1u32; +pub const NDF_INBOUND_FLAG_HEALTHCHECK: u32 = 2u32; +pub const PT_DOWN_STREAM_HEALTH: PROBLEM_TYPE = 4i32; +pub const PT_HIGHER_UTILIZATION: PROBLEM_TYPE = 16i32; +pub const PT_HIGH_UTILIZATION: PROBLEM_TYPE = 8i32; +pub const PT_INVALID: PROBLEM_TYPE = 0i32; +pub const PT_LOWER_HEALTH: PROBLEM_TYPE = 2i32; +pub const PT_LOW_HEALTH: PROBLEM_TYPE = 1i32; +pub const PT_UP_STREAM_UTILIZATION: PROBLEM_TYPE = 32i32; +pub const RCF_ISCONFIRMED: u32 = 2u32; +pub const RCF_ISLEAF: u32 = 1u32; +pub const RCF_ISTHIRDPARTY: u32 = 4u32; +pub const RF_CONTACT_ADMIN: u32 = 131072u32; +pub const RF_INFORMATION_ONLY: u32 = 33554432u32; +pub const RF_REPRO: u32 = 2097152u32; +pub const RF_RESERVED: u32 = 1073741824u32; +pub const RF_RESERVED_CA: u32 = 2147483648u32; +pub const RF_RESERVED_LNI: u32 = 65536u32; +pub const RF_SHOW_EVENTS: u32 = 8388608u32; +pub const RF_UI_ONLY: u32 = 16777216u32; +pub const RF_USER_ACTION: u32 = 268435456u32; +pub const RF_USER_CONFIRMATION: u32 = 134217728u32; +pub const RF_VALIDATE_HELPTOPIC: u32 = 4194304u32; +pub const RF_WORKAROUND: u32 = 536870912u32; +pub const RR_NORISK: REPAIR_RISK = 2i32; +pub const RR_NOROLLBACK: REPAIR_RISK = 0i32; +pub const RR_ROLLBACK: REPAIR_RISK = 1i32; +pub const RS_APPLICATION: REPAIR_SCOPE = 2i32; +pub const RS_DEFERRED: REPAIR_STATUS = 3i32; +pub const RS_NOT_IMPLEMENTED: REPAIR_STATUS = 0i32; +pub const RS_PROCESS: REPAIR_SCOPE = 3i32; +pub const RS_REPAIRED: REPAIR_STATUS = 1i32; +pub const RS_SYSTEM: REPAIR_SCOPE = 0i32; +pub const RS_UNREPAIRED: REPAIR_STATUS = 2i32; +pub const RS_USER: REPAIR_SCOPE = 1i32; +pub const RS_USER_ACTION: REPAIR_STATUS = 4i32; +pub const UIT_DUI: UI_INFO_TYPE = 4i32; +pub const UIT_HELP_PANE: UI_INFO_TYPE = 3i32; +pub const UIT_INVALID: UI_INFO_TYPE = 0i32; +pub const UIT_NONE: UI_INFO_TYPE = 1i32; +pub const UIT_SHELL_COMMAND: UI_INFO_TYPE = 2i32; +pub type ATTRIBUTE_TYPE = i32; +pub type DIAGNOSIS_STATUS = i32; +pub type PROBLEM_TYPE = i32; +pub type REPAIR_RISK = i32; +pub type REPAIR_SCOPE = i32; +pub type REPAIR_STATUS = i32; +pub type UI_INFO_TYPE = i32; +#[repr(C)] +pub struct DIAG_SOCKADDR { + pub family: u16, + pub data: [u8; 126], +} +impl ::core::marker::Copy for DIAG_SOCKADDR {} +impl ::core::clone::Clone for DIAG_SOCKADDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DiagnosticsInfo { + pub cost: i32, + pub flags: u32, +} +impl ::core::marker::Copy for DiagnosticsInfo {} +impl ::core::clone::Clone for DiagnosticsInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HELPER_ATTRIBUTE { + pub pwszName: ::windows_sys::core::PWSTR, + pub r#type: ATTRIBUTE_TYPE, + pub Anonymous: HELPER_ATTRIBUTE_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HELPER_ATTRIBUTE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HELPER_ATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union HELPER_ATTRIBUTE_0 { + pub Boolean: super::super::Foundation::BOOL, + pub Char: u8, + pub Byte: u8, + pub Short: i16, + pub Word: u16, + pub Int: i32, + pub DWord: u32, + pub Int64: i64, + pub UInt64: u64, + pub PWStr: ::windows_sys::core::PWSTR, + pub Guid: ::windows_sys::core::GUID, + pub LifeTime: LIFE_TIME, + pub Address: DIAG_SOCKADDR, + pub OctetString: OCTET_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HELPER_ATTRIBUTE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HELPER_ATTRIBUTE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HYPOTHESIS { + pub pwszClassName: ::windows_sys::core::PWSTR, + pub pwszDescription: ::windows_sys::core::PWSTR, + pub celt: u32, + pub rgAttributes: *mut HELPER_ATTRIBUTE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HYPOTHESIS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HYPOTHESIS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HelperAttributeInfo { + pub pwszName: ::windows_sys::core::PWSTR, + pub r#type: ATTRIBUTE_TYPE, +} +impl ::core::marker::Copy for HelperAttributeInfo {} +impl ::core::clone::Clone for HelperAttributeInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HypothesisResult { + pub hypothesis: HYPOTHESIS, + pub pathStatus: DIAGNOSIS_STATUS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HypothesisResult {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HypothesisResult { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LIFE_TIME { + pub startTime: super::super::Foundation::FILETIME, + pub endTime: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LIFE_TIME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LIFE_TIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OCTET_STRING { + pub dwLength: u32, + pub lpValue: *mut u8, +} +impl ::core::marker::Copy for OCTET_STRING {} +impl ::core::clone::Clone for OCTET_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RepairInfo { + pub guid: ::windows_sys::core::GUID, + pub pwszClassName: ::windows_sys::core::PWSTR, + pub pwszDescription: ::windows_sys::core::PWSTR, + pub sidType: u32, + pub cost: i32, + pub flags: u32, + pub scope: REPAIR_SCOPE, + pub risk: REPAIR_RISK, + pub UiInfo: UiInfo, + pub rootCauseIndex: i32, +} +impl ::core::marker::Copy for RepairInfo {} +impl ::core::clone::Clone for RepairInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RepairInfoEx { + pub repair: RepairInfo, + pub repairRank: u16, +} +impl ::core::marker::Copy for RepairInfoEx {} +impl ::core::clone::Clone for RepairInfoEx { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RootCauseInfo { + pub pwszDescription: ::windows_sys::core::PWSTR, + pub rootCauseID: ::windows_sys::core::GUID, + pub rootCauseFlags: u32, + pub networkInterfaceID: ::windows_sys::core::GUID, + pub pRepairs: *mut RepairInfoEx, + pub repairCount: u16, +} +impl ::core::marker::Copy for RootCauseInfo {} +impl ::core::clone::Clone for RootCauseInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ShellCommandInfo { + pub pwszOperation: ::windows_sys::core::PWSTR, + pub pwszFile: ::windows_sys::core::PWSTR, + pub pwszParameters: ::windows_sys::core::PWSTR, + pub pwszDirectory: ::windows_sys::core::PWSTR, + pub nShowCmd: u32, +} +impl ::core::marker::Copy for ShellCommandInfo {} +impl ::core::clone::Clone for ShellCommandInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UiInfo { + pub r#type: UI_INFO_TYPE, + pub Anonymous: UiInfo_0, +} +impl ::core::marker::Copy for UiInfo {} +impl ::core::clone::Clone for UiInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union UiInfo_0 { + pub pwzNull: ::windows_sys::core::PWSTR, + pub ShellInfo: ShellCommandInfo, + pub pwzHelpUrl: ::windows_sys::core::PWSTR, + pub pwzDui: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for UiInfo_0 {} +impl ::core::clone::Clone for UiInfo_0 { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/P2P/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/P2P/mod.rs new file mode 100644 index 000000000..0118bc421 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/P2P/mod.rs @@ -0,0 +1,1716 @@ +::windows_targets::link!("drt.dll" "system" fn DrtClose(hdrt : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("drt.dll" "system" fn DrtContinueSearch(hsearchcontext : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("drtprov.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn DrtCreateDerivedKey(plocalcert : *const super::super::Security::Cryptography:: CERT_CONTEXT, pkey : *mut DRT_DATA) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("drtprov.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn DrtCreateDerivedKeySecurityProvider(prootcert : *const super::super::Security::Cryptography:: CERT_CONTEXT, plocalcert : *const super::super::Security::Cryptography:: CERT_CONTEXT, ppsecurityprovider : *mut *mut DRT_SECURITY_PROVIDER) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("drtprov.dll" "system" fn DrtCreateDnsBootstrapResolver(port : u16, pwszaddress : ::windows_sys::core::PCWSTR, ppmodule : *mut *mut DRT_BOOTSTRAP_PROVIDER) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("drttransport.dll" "system" fn DrtCreateIpv6UdpTransport(scope : DRT_SCOPE, dwscopeid : u32, dwlocalitythreshold : u32, pwport : *mut u16, phtransport : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("drtprov.dll" "system" fn DrtCreateNullSecurityProvider(ppsecurityprovider : *mut *mut DRT_SECURITY_PROVIDER) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("drtprov.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrtCreatePnrpBootstrapResolver(fpublish : super::super::Foundation:: BOOL, pwzpeername : ::windows_sys::core::PCWSTR, pwzcloudname : ::windows_sys::core::PCWSTR, pwzpublishingidentity : ::windows_sys::core::PCWSTR, ppresolver : *mut *mut DRT_BOOTSTRAP_PROVIDER) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("drtprov.dll" "system" fn DrtDeleteDerivedKeySecurityProvider(psecurityprovider : *const DRT_SECURITY_PROVIDER) -> ()); +::windows_targets::link!("drtprov.dll" "system" fn DrtDeleteDnsBootstrapResolver(presolver : *const DRT_BOOTSTRAP_PROVIDER) -> ()); +::windows_targets::link!("drttransport.dll" "system" fn DrtDeleteIpv6UdpTransport(htransport : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("drtprov.dll" "system" fn DrtDeleteNullSecurityProvider(psecurityprovider : *const DRT_SECURITY_PROVIDER) -> ()); +::windows_targets::link!("drtprov.dll" "system" fn DrtDeletePnrpBootstrapResolver(presolver : *const DRT_BOOTSTRAP_PROVIDER) -> ()); +::windows_targets::link!("drt.dll" "system" fn DrtEndSearch(hsearchcontext : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("drt.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn DrtGetEventData(hdrt : *const ::core::ffi::c_void, uleventdatalen : u32, peventdata : *mut DRT_EVENT_DATA) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("drt.dll" "system" fn DrtGetEventDataSize(hdrt : *const ::core::ffi::c_void, puleventdatalen : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("drt.dll" "system" fn DrtGetInstanceName(hdrt : *const ::core::ffi::c_void, ulcbinstancenamesize : u32, pwzdrtinstancename : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("drt.dll" "system" fn DrtGetInstanceNameSize(hdrt : *const ::core::ffi::c_void, pulcbinstancenamesize : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("drt.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn DrtGetSearchPath(hsearchcontext : *const ::core::ffi::c_void, ulsearchpathsize : u32, psearchpath : *mut DRT_ADDRESS_LIST) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("drt.dll" "system" fn DrtGetSearchPathSize(hsearchcontext : *const ::core::ffi::c_void, pulsearchpathsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("drt.dll" "system" fn DrtGetSearchResult(hsearchcontext : *const ::core::ffi::c_void, ulsearchresultsize : u32, psearchresult : *mut DRT_SEARCH_RESULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("drt.dll" "system" fn DrtGetSearchResultSize(hsearchcontext : *const ::core::ffi::c_void, pulsearchresultsize : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("drt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrtOpen(psettings : *const DRT_SETTINGS, hevent : super::super::Foundation:: HANDLE, pvcontext : *const ::core::ffi::c_void, phdrt : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("drt.dll" "system" fn DrtRegisterKey(hdrt : *const ::core::ffi::c_void, pregistration : *const DRT_REGISTRATION, pvkeycontext : *const ::core::ffi::c_void, phkeyregistration : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("drt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrtStartSearch(hdrt : *const ::core::ffi::c_void, pkey : *const DRT_DATA, pinfo : *const DRT_SEARCH_INFO, timeout : u32, hevent : super::super::Foundation:: HANDLE, pvcontext : *const ::core::ffi::c_void, hsearchcontext : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("drt.dll" "system" fn DrtUnregisterKey(hkeyregistration : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("drt.dll" "system" fn DrtUpdateKey(hkeyregistration : *const ::core::ffi::c_void, pappdata : *const DRT_DATA) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerCollabAddContact(pwzcontactdata : ::windows_sys::core::PCWSTR, ppcontact : *mut *mut PEER_CONTACT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn PeerCollabAsyncInviteContact(pccontact : *const PEER_CONTACT, pcendpoint : *const PEER_ENDPOINT, pcinvitation : *const PEER_INVITATION, hevent : super::super::Foundation:: HANDLE, phinvitation : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn PeerCollabAsyncInviteEndpoint(pcendpoint : *const PEER_ENDPOINT, pcinvitation : *const PEER_INVITATION, hevent : super::super::Foundation:: HANDLE, phinvitation : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerCollabCancelInvitation(hinvitation : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerCollabCloseHandle(hinvitation : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabDeleteContact(pwzpeername : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerCollabDeleteEndpointData(pcendpoint : *const PEER_ENDPOINT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabDeleteObject(pobjectid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabEnumApplicationRegistrationInfo(registrationtype : PEER_APPLICATION_REGISTRATION_TYPE, phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerCollabEnumApplications(pcendpoint : *const PEER_ENDPOINT, papplicationid : *const ::windows_sys::core::GUID, phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabEnumContacts(phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerCollabEnumEndpoints(pccontact : *const PEER_CONTACT, phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerCollabEnumObjects(pcendpoint : *const PEER_ENDPOINT, pobjectid : *const ::windows_sys::core::GUID, phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabEnumPeopleNearMe(phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabExportContact(pwzpeername : ::windows_sys::core::PCWSTR, ppwzcontactdata : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn PeerCollabGetAppLaunchInfo(pplaunchinfo : *mut *mut PEER_APP_LAUNCH_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabGetApplicationRegistrationInfo(papplicationid : *const ::windows_sys::core::GUID, registrationtype : PEER_APPLICATION_REGISTRATION_TYPE, ppapplication : *mut *mut PEER_APPLICATION_REGISTRATION_INFO) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerCollabGetContact(pwzpeername : ::windows_sys::core::PCWSTR, ppcontact : *mut *mut PEER_CONTACT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabGetEndpointName(ppwzendpointname : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn PeerCollabGetEventData(hpeerevent : *const ::core::ffi::c_void, ppeventdata : *mut *mut PEER_COLLAB_EVENT_DATA) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerCollabGetInvitationResponse(hinvitation : super::super::Foundation:: HANDLE, ppinvitationresponse : *mut *mut PEER_INVITATION_RESPONSE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerCollabGetPresenceInfo(pcendpoint : *const PEER_ENDPOINT, pppresenceinfo : *mut *mut PEER_PRESENCE_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabGetSigninOptions(pdwsigninoptions : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn PeerCollabInviteContact(pccontact : *const PEER_CONTACT, pcendpoint : *const PEER_ENDPOINT, pcinvitation : *const PEER_INVITATION, ppresponse : *mut *mut PEER_INVITATION_RESPONSE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerCollabInviteEndpoint(pcendpoint : *const PEER_ENDPOINT, pcinvitation : *const PEER_INVITATION, ppresponse : *mut *mut PEER_INVITATION_RESPONSE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerCollabParseContact(pwzcontactdata : ::windows_sys::core::PCWSTR, ppcontact : *mut *mut PEER_CONTACT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerCollabQueryContactData(pcendpoint : *const PEER_ENDPOINT, ppwzcontactdata : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerCollabRefreshEndpointData(pcendpoint : *const PEER_ENDPOINT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabRegisterApplication(pcapplication : *const PEER_APPLICATION_REGISTRATION_INFO, registrationtype : PEER_APPLICATION_REGISTRATION_TYPE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerCollabRegisterEvent(hevent : super::super::Foundation:: HANDLE, ceventregistration : u32, peventregistrations : *const PEER_COLLAB_EVENT_REGISTRATION, phpeerevent : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabSetEndpointName(pwzendpointname : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabSetObject(pcobject : *const PEER_OBJECT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabSetPresenceInfo(pcpresenceinfo : *const PEER_PRESENCE_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabShutdown() -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerCollabSignin(hwndparent : super::super::Foundation:: HWND, dwsigninoptions : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabSignout(dwsigninoptions : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabStartup(wversionrequested : u16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerCollabSubscribeEndpointData(pcendpoint : *const PEER_ENDPOINT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabUnregisterApplication(papplicationid : *const ::windows_sys::core::GUID, registrationtype : PEER_APPLICATION_REGISTRATION_TYPE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCollabUnregisterEvent(hpeerevent : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerCollabUnsubscribeEndpointData(pcendpoint : *const PEER_ENDPOINT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerCollabUpdateContact(pcontact : *const PEER_CONTACT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerCreatePeerName(pwzidentity : ::windows_sys::core::PCWSTR, pwzclassifier : ::windows_sys::core::PCWSTR, ppwzpeername : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistClientAddContentInformation(hpeerdist : isize, hcontenthandle : isize, cbnumberofbytes : u32, pbuffer : *const u8, lpoverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistClientAddData(hpeerdist : isize, hcontenthandle : isize, cbnumberofbytes : u32, pbuffer : *const u8, lpoverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistClientBlockRead(hpeerdist : isize, hcontenthandle : isize, cbmaxnumberofbytes : u32, pbuffer : *mut u8, dwtimeoutinmilliseconds : u32, lpoverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistClientCancelAsyncOperation(hpeerdist : isize, hcontenthandle : isize, poverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +::windows_targets::link!("peerdist.dll" "system" fn PeerDistClientCloseContent(hpeerdist : isize, hcontenthandle : isize) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistClientCompleteContentInformation(hpeerdist : isize, hcontenthandle : isize, lpoverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistClientFlushContent(hpeerdist : isize, pcontenttag : *const PEERDIST_CONTENT_TAG, hcompletionport : super::super::Foundation:: HANDLE, ulcompletionkey : usize, lpoverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +::windows_targets::link!("peerdist.dll" "system" fn PeerDistClientGetInformationByHandle(hpeerdist : isize, hcontenthandle : isize, peerdistclientinfoclass : PEERDIST_CLIENT_INFO_BY_HANDLE_CLASS, dwbuffersize : u32, lpinformation : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerDistClientOpenContent(hpeerdist : isize, pcontenttag : *const PEERDIST_CONTENT_TAG, hcompletionport : super::super::Foundation:: HANDLE, ulcompletionkey : usize, phcontenthandle : *mut isize) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistClientStreamRead(hpeerdist : isize, hcontenthandle : isize, cbmaxnumberofbytes : u32, pbuffer : *mut u8, dwtimeoutinmilliseconds : u32, lpoverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistGetOverlappedResult(lpoverlapped : *const super::super::System::IO:: OVERLAPPED, lpnumberofbytestransferred : *mut u32, bwait : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("peerdist.dll" "system" fn PeerDistGetStatus(hpeerdist : isize, ppeerdiststatus : *mut PEERDIST_STATUS) -> u32); +::windows_targets::link!("peerdist.dll" "system" fn PeerDistGetStatusEx(hpeerdist : isize, ppeerdiststatus : *mut PEERDIST_STATUS_INFO) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistRegisterForStatusChangeNotification(hpeerdist : isize, hcompletionport : super::super::Foundation:: HANDLE, ulcompletionkey : usize, lpoverlapped : *const super::super::System::IO:: OVERLAPPED, ppeerdiststatus : *mut PEERDIST_STATUS) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistRegisterForStatusChangeNotificationEx(hpeerdist : isize, hcompletionport : super::super::Foundation:: HANDLE, ulcompletionkey : usize, lpoverlapped : *const super::super::System::IO:: OVERLAPPED, ppeerdiststatus : *mut PEERDIST_STATUS_INFO) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistServerCancelAsyncOperation(hpeerdist : isize, cbcontentidentifier : u32, pcontentidentifier : *const u8, poverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +::windows_targets::link!("peerdist.dll" "system" fn PeerDistServerCloseContentInformation(hpeerdist : isize, hcontentinfo : isize) -> u32); +::windows_targets::link!("peerdist.dll" "system" fn PeerDistServerCloseStreamHandle(hpeerdist : isize, hstream : isize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerDistServerOpenContentInformation(hpeerdist : isize, cbcontentidentifier : u32, pcontentidentifier : *const u8, ullcontentoffset : u64, cbcontentlength : u64, hcompletionport : super::super::Foundation:: HANDLE, ulcompletionkey : usize, phcontentinfo : *mut isize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerDistServerOpenContentInformationEx(hpeerdist : isize, cbcontentidentifier : u32, pcontentidentifier : *const u8, ullcontentoffset : u64, cbcontentlength : u64, pretrievaloptions : *const PEERDIST_RETRIEVAL_OPTIONS, hcompletionport : super::super::Foundation:: HANDLE, ulcompletionkey : usize, phcontentinfo : *mut isize) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistServerPublishAddToStream(hpeerdist : isize, hstream : isize, cbnumberofbytes : u32, pbuffer : *const u8, lpoverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistServerPublishCompleteStream(hpeerdist : isize, hstream : isize, lpoverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerDistServerPublishStream(hpeerdist : isize, cbcontentidentifier : u32, pcontentidentifier : *const u8, cbcontentlength : u64, ppublishoptions : *const PEERDIST_PUBLICATION_OPTIONS, hcompletionport : super::super::Foundation:: HANDLE, ulcompletionkey : usize, phstream : *mut isize) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("peerdist.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn PeerDistServerRetrieveContentInformation(hpeerdist : isize, hcontentinfo : isize, cbmaxnumberofbytes : u32, pbuffer : *mut u8, lpoverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +::windows_targets::link!("peerdist.dll" "system" fn PeerDistServerUnpublish(hpeerdist : isize, cbcontentidentifier : u32, pcontentidentifier : *const u8) -> u32); +::windows_targets::link!("peerdist.dll" "system" fn PeerDistShutdown(hpeerdist : isize) -> u32); +::windows_targets::link!("peerdist.dll" "system" fn PeerDistStartup(dwversionrequested : u32, phpeerdist : *mut isize, pdwsupportedversion : *mut u32) -> u32); +::windows_targets::link!("peerdist.dll" "system" fn PeerDistUnregisterForStatusChangeNotification(hpeerdist : isize) -> u32); +::windows_targets::link!("p2p.dll" "system" fn PeerEndEnumeration(hpeerenum : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerEnumGroups(pwzidentity : ::windows_sys::core::PCWSTR, phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerEnumIdentities(phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerFreeData(pvdata : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("p2p.dll" "system" fn PeerGetItemCount(hpeerenum : *const ::core::ffi::c_void, pcount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGetNextItem(hpeerenum : *const ::core::ffi::c_void, pcount : *mut u32, pppvitems : *mut *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2pgraph.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGraphAddRecord(hgraph : *const ::core::ffi::c_void, precord : *const PEER_RECORD, precordid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphClose(hgraph : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphCloseDirectConnection(hgraph : *const ::core::ffi::c_void, ullconnectionid : u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2pgraph.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerGraphConnect(hgraph : *const ::core::ffi::c_void, pwzpeerid : ::windows_sys::core::PCWSTR, paddress : *const PEER_ADDRESS, pullconnectionid : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2pgraph.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGraphCreate(pgraphproperties : *const PEER_GRAPH_PROPERTIES, pwzdatabasename : ::windows_sys::core::PCWSTR, psecurityinterface : *const PEER_SECURITY_INTERFACE, phgraph : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphDelete(pwzgraphid : ::windows_sys::core::PCWSTR, pwzpeerid : ::windows_sys::core::PCWSTR, pwzdatabasename : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2pgraph.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGraphDeleteRecord(hgraph : *const ::core::ffi::c_void, precordid : *const ::windows_sys::core::GUID, flocal : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphEndEnumeration(hpeerenum : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphEnumConnections(hgraph : *const ::core::ffi::c_void, dwflags : u32, phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphEnumNodes(hgraph : *const ::core::ffi::c_void, pwzpeerid : ::windows_sys::core::PCWSTR, phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphEnumRecords(hgraph : *const ::core::ffi::c_void, precordtype : *const ::windows_sys::core::GUID, pwzpeerid : ::windows_sys::core::PCWSTR, phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphExportDatabase(hgraph : *const ::core::ffi::c_void, pwzfilepath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphFreeData(pvdata : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphGetEventData(hpeerevent : *const ::core::ffi::c_void, ppeventdata : *mut *mut PEER_GRAPH_EVENT_DATA) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphGetItemCount(hpeerenum : *const ::core::ffi::c_void, pcount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphGetNextItem(hpeerenum : *const ::core::ffi::c_void, pcount : *mut u32, pppvitems : *mut *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2pgraph.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerGraphGetNodeInfo(hgraph : *const ::core::ffi::c_void, ullnodeid : u64, ppnodeinfo : *mut *mut PEER_NODE_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphGetProperties(hgraph : *const ::core::ffi::c_void, ppgraphproperties : *mut *mut PEER_GRAPH_PROPERTIES) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2pgraph.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGraphGetRecord(hgraph : *const ::core::ffi::c_void, precordid : *const ::windows_sys::core::GUID, pprecord : *mut *mut PEER_RECORD) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphGetStatus(hgraph : *const ::core::ffi::c_void, pdwstatus : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphImportDatabase(hgraph : *const ::core::ffi::c_void, pwzfilepath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphListen(hgraph : *const ::core::ffi::c_void, dwscope : u32, dwscopeid : u32, wport : u16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2pgraph.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGraphOpen(pwzgraphid : ::windows_sys::core::PCWSTR, pwzpeerid : ::windows_sys::core::PCWSTR, pwzdatabasename : ::windows_sys::core::PCWSTR, psecurityinterface : *const PEER_SECURITY_INTERFACE, crecordtypesyncprecedence : u32, precordtypesyncprecedence : *const ::windows_sys::core::GUID, phgraph : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2pgraph.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerGraphOpenDirectConnection(hgraph : *const ::core::ffi::c_void, pwzpeerid : ::windows_sys::core::PCWSTR, paddress : *const PEER_ADDRESS, pullconnectionid : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2pgraph.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGraphPeerTimeToUniversalTime(hgraph : *const ::core::ffi::c_void, pftpeertime : *const super::super::Foundation:: FILETIME, pftuniversaltime : *mut super::super::Foundation:: FILETIME) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2pgraph.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGraphRegisterEvent(hgraph : *const ::core::ffi::c_void, hevent : super::super::Foundation:: HANDLE, ceventregistrations : u32, peventregistrations : *const PEER_GRAPH_EVENT_REGISTRATION, phpeerevent : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphSearchRecords(hgraph : *const ::core::ffi::c_void, pwzcriteria : ::windows_sys::core::PCWSTR, phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphSendData(hgraph : *const ::core::ffi::c_void, ullconnectionid : u64, ptype : *const ::windows_sys::core::GUID, cbdata : u32, pvdata : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphSetNodeAttributes(hgraph : *const ::core::ffi::c_void, pwzattributes : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2pgraph.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGraphSetPresence(hgraph : *const ::core::ffi::c_void, fpresent : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphSetProperties(hgraph : *const ::core::ffi::c_void, pgraphproperties : *const PEER_GRAPH_PROPERTIES) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphShutdown() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphStartup(wversionrequested : u16, pversiondata : *mut PEER_VERSION_DATA) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2pgraph.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGraphUniversalTimeToPeerTime(hgraph : *const ::core::ffi::c_void, pftuniversaltime : *const super::super::Foundation:: FILETIME, pftpeertime : *mut super::super::Foundation:: FILETIME) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphUnregisterEvent(hpeerevent : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2pgraph.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGraphUpdateRecord(hgraph : *const ::core::ffi::c_void, precord : *const PEER_RECORD) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2pgraph.dll" "system" fn PeerGraphValidateDeferredRecords(hgraph : *const ::core::ffi::c_void, crecordids : u32, precordids : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGroupAddRecord(hgroup : *const ::core::ffi::c_void, precord : *const PEER_RECORD, precordid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupClose(hgroup : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupCloseDirectConnection(hgroup : *const ::core::ffi::c_void, ullconnectionid : u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupConnect(hgroup : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerGroupConnectByAddress(hgroup : *const ::core::ffi::c_void, caddresses : u32, paddresses : *const PEER_ADDRESS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupCreate(pproperties : *const PEER_GROUP_PROPERTIES, phgroup : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGroupCreateInvitation(hgroup : *const ::core::ffi::c_void, pwzidentityinfo : ::windows_sys::core::PCWSTR, pftexpiration : *const super::super::Foundation:: FILETIME, croles : u32, proles : *const ::windows_sys::core::GUID, ppwzinvitation : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupCreatePasswordInvitation(hgroup : *const ::core::ffi::c_void, ppwzinvitation : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupDelete(pwzidentity : ::windows_sys::core::PCWSTR, pwzgrouppeername : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupDeleteRecord(hgroup : *const ::core::ffi::c_void, precordid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupEnumConnections(hgroup : *const ::core::ffi::c_void, dwflags : u32, phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupEnumMembers(hgroup : *const ::core::ffi::c_void, dwflags : u32, pwzidentity : ::windows_sys::core::PCWSTR, phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupEnumRecords(hgroup : *const ::core::ffi::c_void, precordtype : *const ::windows_sys::core::GUID, phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupExportConfig(hgroup : *const ::core::ffi::c_void, pwzpassword : ::windows_sys::core::PCWSTR, ppwzxml : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupExportDatabase(hgroup : *const ::core::ffi::c_void, pwzfilepath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupGetEventData(hpeerevent : *const ::core::ffi::c_void, ppeventdata : *mut *mut PEER_GROUP_EVENT_DATA) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupGetProperties(hgroup : *const ::core::ffi::c_void, ppproperties : *mut *mut PEER_GROUP_PROPERTIES) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGroupGetRecord(hgroup : *const ::core::ffi::c_void, precordid : *const ::windows_sys::core::GUID, pprecord : *mut *mut PEER_RECORD) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupGetStatus(hgroup : *const ::core::ffi::c_void, pdwstatus : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGroupImportConfig(pwzxml : ::windows_sys::core::PCWSTR, pwzpassword : ::windows_sys::core::PCWSTR, foverwrite : super::super::Foundation:: BOOL, ppwzidentity : *mut ::windows_sys::core::PWSTR, ppwzgroup : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupImportDatabase(hgroup : *const ::core::ffi::c_void, pwzfilepath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn PeerGroupIssueCredentials(hgroup : *const ::core::ffi::c_void, pwzsubjectidentity : ::windows_sys::core::PCWSTR, pcredentialinfo : *const PEER_CREDENTIAL_INFO, dwflags : u32, ppwzinvitation : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupJoin(pwzidentity : ::windows_sys::core::PCWSTR, pwzinvitation : ::windows_sys::core::PCWSTR, pwzcloud : ::windows_sys::core::PCWSTR, phgroup : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupOpen(pwzidentity : ::windows_sys::core::PCWSTR, pwzgrouppeername : ::windows_sys::core::PCWSTR, pwzcloud : ::windows_sys::core::PCWSTR, phgroup : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerGroupOpenDirectConnection(hgroup : *const ::core::ffi::c_void, pwzidentity : ::windows_sys::core::PCWSTR, paddress : *const PEER_ADDRESS, pullconnectionid : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn PeerGroupParseInvitation(pwzinvitation : ::windows_sys::core::PCWSTR, ppinvitationinfo : *mut *mut PEER_INVITATION_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupPasswordJoin(pwzidentity : ::windows_sys::core::PCWSTR, pwzinvitation : ::windows_sys::core::PCWSTR, pwzpassword : ::windows_sys::core::PCWSTR, pwzcloud : ::windows_sys::core::PCWSTR, phgroup : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGroupPeerTimeToUniversalTime(hgroup : *const ::core::ffi::c_void, pftpeertime : *const super::super::Foundation:: FILETIME, pftuniversaltime : *mut super::super::Foundation:: FILETIME) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGroupRegisterEvent(hgroup : *const ::core::ffi::c_void, hevent : super::super::Foundation:: HANDLE, ceventregistration : u32, peventregistrations : *const PEER_GROUP_EVENT_REGISTRATION, phpeerevent : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupResumePasswordAuthentication(hgroup : *const ::core::ffi::c_void, hpeereventhandle : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupSearchRecords(hgroup : *const ::core::ffi::c_void, pwzcriteria : ::windows_sys::core::PCWSTR, phpeerenum : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupSendData(hgroup : *const ::core::ffi::c_void, ullconnectionid : u64, ptype : *const ::windows_sys::core::GUID, cbdata : u32, pvdata : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupSetProperties(hgroup : *const ::core::ffi::c_void, pproperties : *const PEER_GROUP_PROPERTIES) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupShutdown() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupStartup(wversionrequested : u16, pversiondata : *mut PEER_VERSION_DATA) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGroupUniversalTimeToPeerTime(hgroup : *const ::core::ffi::c_void, pftuniversaltime : *const super::super::Foundation:: FILETIME, pftpeertime : *mut super::super::Foundation:: FILETIME) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerGroupUnregisterEvent(hpeerevent : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerGroupUpdateRecord(hgroup : *const ::core::ffi::c_void, precord : *const PEER_RECORD) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerHostNameToPeerName(pwzhostname : ::windows_sys::core::PCWSTR, ppwzpeername : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerIdentityCreate(pwzclassifier : ::windows_sys::core::PCWSTR, pwzfriendlyname : ::windows_sys::core::PCWSTR, hcryptprov : usize, ppwzidentity : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerIdentityDelete(pwzidentity : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerIdentityExport(pwzidentity : ::windows_sys::core::PCWSTR, pwzpassword : ::windows_sys::core::PCWSTR, ppwzexportxml : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerIdentityGetCryptKey(pwzidentity : ::windows_sys::core::PCWSTR, phcryptprov : *mut usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerIdentityGetDefault(ppwzpeername : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerIdentityGetFriendlyName(pwzidentity : ::windows_sys::core::PCWSTR, ppwzfriendlyname : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerIdentityGetXML(pwzidentity : ::windows_sys::core::PCWSTR, ppwzidentityxml : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerIdentityImport(pwzimportxml : ::windows_sys::core::PCWSTR, pwzpassword : ::windows_sys::core::PCWSTR, ppwzidentity : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerIdentitySetFriendlyName(pwzidentity : ::windows_sys::core::PCWSTR, pwzfriendlyname : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerNameToPeerHostName(pwzpeername : ::windows_sys::core::PCWSTR, ppwzhostname : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerPnrpEndResolve(hresolve : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerPnrpGetCloudInfo(pcnumclouds : *mut u32, ppcloudinfo : *mut *mut PEER_PNRP_CLOUD_INFO) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerPnrpGetEndpoint(hresolve : *const ::core::ffi::c_void, ppendpoint : *mut *mut PEER_PNRP_ENDPOINT_INFO) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerPnrpRegister(pcwzpeername : ::windows_sys::core::PCWSTR, pregistrationinfo : *const PEER_PNRP_REGISTRATION_INFO, phregistration : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerPnrpResolve(pcwzpeername : ::windows_sys::core::PCWSTR, pcwzcloudname : ::windows_sys::core::PCWSTR, pcendpoints : *mut u32, ppendpoints : *mut *mut PEER_PNRP_ENDPOINT_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerPnrpShutdown() -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeerPnrpStartResolve(pcwzpeername : ::windows_sys::core::PCWSTR, pcwzcloudname : ::windows_sys::core::PCWSTR, cmaxendpoints : u32, hevent : super::super::Foundation:: HANDLE, phresolve : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerPnrpStartup(wversionrequested : u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("p2p.dll" "system" fn PeerPnrpUnregister(hregistration : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("p2p.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn PeerPnrpUpdateRegistration(hregistration : *const ::core::ffi::c_void, pregistrationinfo : *const PEER_PNRP_REGISTRATION_INFO) -> ::windows_sys::core::HRESULT); +pub const DRT_ACTIVE: DRT_STATUS = 0i32; +pub const DRT_ADDRESS_FLAG_ACCEPTED: DRT_ADDRESS_FLAGS = 1i32; +pub const DRT_ADDRESS_FLAG_BAD_VALIDATE_ID: DRT_ADDRESS_FLAGS = 32i32; +pub const DRT_ADDRESS_FLAG_INQUIRE: DRT_ADDRESS_FLAGS = 128i32; +pub const DRT_ADDRESS_FLAG_LOOP: DRT_ADDRESS_FLAGS = 8i32; +pub const DRT_ADDRESS_FLAG_REJECTED: DRT_ADDRESS_FLAGS = 2i32; +pub const DRT_ADDRESS_FLAG_SUSPECT_UNREGISTERED_ID: DRT_ADDRESS_FLAGS = 64i32; +pub const DRT_ADDRESS_FLAG_TOO_BUSY: DRT_ADDRESS_FLAGS = 16i32; +pub const DRT_ADDRESS_FLAG_UNREACHABLE: DRT_ADDRESS_FLAGS = 4i32; +pub const DRT_ALONE: DRT_STATUS = 1i32; +pub const DRT_EVENT_LEAFSET_KEY_CHANGED: DRT_EVENT_TYPE = 1i32; +pub const DRT_EVENT_REGISTRATION_STATE_CHANGED: DRT_EVENT_TYPE = 2i32; +pub const DRT_EVENT_STATUS_CHANGED: DRT_EVENT_TYPE = 0i32; +pub const DRT_E_BOOTSTRAPPROVIDER_IN_USE: ::windows_sys::core::HRESULT = -2141052914i32; +pub const DRT_E_BOOTSTRAPPROVIDER_NOT_ATTACHED: ::windows_sys::core::HRESULT = -2141052913i32; +pub const DRT_E_CAPABILITY_MISMATCH: ::windows_sys::core::HRESULT = -2141052657i32; +pub const DRT_E_DUPLICATE_KEY: ::windows_sys::core::HRESULT = -2141052919i32; +pub const DRT_E_FAULTED: ::windows_sys::core::HRESULT = -2141052662i32; +pub const DRT_E_INSUFFICIENT_BUFFER: ::windows_sys::core::HRESULT = -2141052660i32; +pub const DRT_E_INVALID_ADDRESS: ::windows_sys::core::HRESULT = -2141052923i32; +pub const DRT_E_INVALID_BOOTSTRAP_PROVIDER: ::windows_sys::core::HRESULT = -2141052924i32; +pub const DRT_E_INVALID_CERT_CHAIN: ::windows_sys::core::HRESULT = -2141057020i32; +pub const DRT_E_INVALID_INSTANCE_PREFIX: ::windows_sys::core::HRESULT = -2141052659i32; +pub const DRT_E_INVALID_KEY: ::windows_sys::core::HRESULT = -2141057015i32; +pub const DRT_E_INVALID_KEY_SIZE: ::windows_sys::core::HRESULT = -2141057022i32; +pub const DRT_E_INVALID_MAX_ADDRESSES: ::windows_sys::core::HRESULT = -2141057017i32; +pub const DRT_E_INVALID_MAX_ENDPOINTS: ::windows_sys::core::HRESULT = -2141057007i32; +pub const DRT_E_INVALID_MESSAGE: ::windows_sys::core::HRESULT = -2141057019i32; +pub const DRT_E_INVALID_PORT: ::windows_sys::core::HRESULT = -2141052928i32; +pub const DRT_E_INVALID_SCOPE: ::windows_sys::core::HRESULT = -2141052922i32; +pub const DRT_E_INVALID_SEARCH_INFO: ::windows_sys::core::HRESULT = -2141052663i32; +pub const DRT_E_INVALID_SEARCH_RANGE: ::windows_sys::core::HRESULT = -2141057006i32; +pub const DRT_E_INVALID_SECURITY_MODE: ::windows_sys::core::HRESULT = -2141052658i32; +pub const DRT_E_INVALID_SECURITY_PROVIDER: ::windows_sys::core::HRESULT = -2141052926i32; +pub const DRT_E_INVALID_SETTINGS: ::windows_sys::core::HRESULT = -2141052664i32; +pub const DRT_E_INVALID_TRANSPORT_PROVIDER: ::windows_sys::core::HRESULT = -2141052927i32; +pub const DRT_E_NO_ADDRESSES_AVAILABLE: ::windows_sys::core::HRESULT = -2141052920i32; +pub const DRT_E_NO_MORE: ::windows_sys::core::HRESULT = -2141057018i32; +pub const DRT_E_SEARCH_IN_PROGRESS: ::windows_sys::core::HRESULT = -2141057016i32; +pub const DRT_E_SECURITYPROVIDER_IN_USE: ::windows_sys::core::HRESULT = -2141052916i32; +pub const DRT_E_SECURITYPROVIDER_NOT_ATTACHED: ::windows_sys::core::HRESULT = -2141052915i32; +pub const DRT_E_STILL_IN_USE: ::windows_sys::core::HRESULT = -2141052925i32; +pub const DRT_E_TIMEOUT: ::windows_sys::core::HRESULT = -2141057023i32; +pub const DRT_E_TRANSPORTPROVIDER_IN_USE: ::windows_sys::core::HRESULT = -2141052918i32; +pub const DRT_E_TRANSPORTPROVIDER_NOT_ATTACHED: ::windows_sys::core::HRESULT = -2141052917i32; +pub const DRT_E_TRANSPORT_ALREADY_BOUND: ::windows_sys::core::HRESULT = -2141052671i32; +pub const DRT_E_TRANSPORT_ALREADY_EXISTS_FOR_SCOPE: ::windows_sys::core::HRESULT = -2141052665i32; +pub const DRT_E_TRANSPORT_EXECUTING_CALLBACK: ::windows_sys::core::HRESULT = -2141052666i32; +pub const DRT_E_TRANSPORT_INVALID_ARGUMENT: ::windows_sys::core::HRESULT = -2141052668i32; +pub const DRT_E_TRANSPORT_NOT_BOUND: ::windows_sys::core::HRESULT = -2141052670i32; +pub const DRT_E_TRANSPORT_NO_DEST_ADDRESSES: ::windows_sys::core::HRESULT = -2141052667i32; +pub const DRT_E_TRANSPORT_SHUTTING_DOWN: ::windows_sys::core::HRESULT = -2141052921i32; +pub const DRT_E_TRANSPORT_STILL_BOUND: ::windows_sys::core::HRESULT = -2141052661i32; +pub const DRT_E_TRANSPORT_UNEXPECTED: ::windows_sys::core::HRESULT = -2141052669i32; +pub const DRT_FAULTED: DRT_STATUS = 20i32; +pub const DRT_GLOBAL_SCOPE: DRT_SCOPE = 1i32; +pub const DRT_LEAFSET_KEY_ADDED: DRT_LEAFSET_KEY_CHANGE_TYPE = 0i32; +pub const DRT_LEAFSET_KEY_DELETED: DRT_LEAFSET_KEY_CHANGE_TYPE = 1i32; +pub const DRT_LINK_LOCAL_ISATAP_SCOPEID: u32 = 4294967295u32; +pub const DRT_LINK_LOCAL_SCOPE: DRT_SCOPE = 3i32; +pub const DRT_MATCH_EXACT: DRT_MATCH_TYPE = 0i32; +pub const DRT_MATCH_INTERMEDIATE: DRT_MATCH_TYPE = 2i32; +pub const DRT_MATCH_NEAR: DRT_MATCH_TYPE = 1i32; +pub const DRT_MAX_INSTANCE_PREFIX_LEN: u32 = 128u32; +pub const DRT_MAX_PAYLOAD_SIZE: u32 = 5120u32; +pub const DRT_MAX_ROUTING_ADDRESSES: u32 = 20u32; +pub const DRT_MIN_ROUTING_ADDRESSES: u32 = 1u32; +pub const DRT_NO_NETWORK: DRT_STATUS = 10i32; +pub const DRT_PAYLOAD_REVOKED: u32 = 1u32; +pub const DRT_REGISTRATION_STATE_UNRESOLVEABLE: DRT_REGISTRATION_STATE = 1i32; +pub const DRT_SECURE_CONFIDENTIALPAYLOAD: DRT_SECURITY_MODE = 2i32; +pub const DRT_SECURE_MEMBERSHIP: DRT_SECURITY_MODE = 1i32; +pub const DRT_SECURE_RESOLVE: DRT_SECURITY_MODE = 0i32; +pub const DRT_SITE_LOCAL_SCOPE: DRT_SCOPE = 2i32; +pub const DRT_S_RETRY: ::windows_sys::core::HRESULT = 6426640i32; +pub const FACILITY_DRT: u32 = 98u32; +pub const MaximumPeerDistClientInfoByHandlesClass: PEERDIST_CLIENT_INFO_BY_HANDLE_CLASS = 1i32; +pub const NS_PNRPCLOUD: u32 = 39u32; +pub const NS_PNRPNAME: u32 = 38u32; +pub const NS_PROVIDER_PNRPCLOUD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03fe89ce_766d_4976_b9c1_bb9bc42c7b4d); +pub const NS_PROVIDER_PNRPNAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03fe89cd_766d_4976_b9c1_bb9bc42c7b4d); +pub const PEERDIST_PUBLICATION_OPTIONS_VERSION: i32 = 2i32; +pub const PEERDIST_PUBLICATION_OPTIONS_VERSION_1: i32 = 1i32; +pub const PEERDIST_PUBLICATION_OPTIONS_VERSION_2: i32 = 2i32; +pub const PEERDIST_READ_TIMEOUT_DEFAULT: u32 = 4294967294u32; +pub const PEERDIST_READ_TIMEOUT_LOCAL_CACHE_ONLY: u32 = 0u32; +pub const PEERDIST_RETRIEVAL_OPTIONS_CONTENTINFO_VERSION: PEERDIST_RETRIEVAL_OPTIONS_CONTENTINFO_VERSION_VALUE = 2u32; +pub const PEERDIST_RETRIEVAL_OPTIONS_CONTENTINFO_VERSION_1: PEERDIST_RETRIEVAL_OPTIONS_CONTENTINFO_VERSION_VALUE = 1u32; +pub const PEERDIST_RETRIEVAL_OPTIONS_CONTENTINFO_VERSION_2: PEERDIST_RETRIEVAL_OPTIONS_CONTENTINFO_VERSION_VALUE = 2u32; +pub const PEERDIST_STATUS_AVAILABLE: PEERDIST_STATUS = 2i32; +pub const PEERDIST_STATUS_DISABLED: PEERDIST_STATUS = 0i32; +pub const PEERDIST_STATUS_UNAVAILABLE: PEERDIST_STATUS = 1i32; +pub const PEER_APPLICATION_ALL_USERS: PEER_APPLICATION_REGISTRATION_TYPE = 1i32; +pub const PEER_APPLICATION_CURRENT_USER: PEER_APPLICATION_REGISTRATION_TYPE = 0i32; +pub const PEER_CHANGE_ADDED: PEER_CHANGE_TYPE = 0i32; +pub const PEER_CHANGE_DELETED: PEER_CHANGE_TYPE = 1i32; +pub const PEER_CHANGE_UPDATED: PEER_CHANGE_TYPE = 2i32; +pub const PEER_COLLAB_OBJECTID_USER_PICTURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdd15f41f_fc4e_4922_b035_4c06a754d01d); +pub const PEER_CONNECTED: PEER_CONNECTION_STATUS = 1i32; +pub const PEER_CONNECTION_DIRECT: PEER_CONNECTION_FLAGS = 2i32; +pub const PEER_CONNECTION_FAILED: PEER_CONNECTION_STATUS = 3i32; +pub const PEER_CONNECTION_NEIGHBOR: PEER_CONNECTION_FLAGS = 1i32; +pub const PEER_DEFER_EXPIRATION: PEER_GROUP_PROPERTY_FLAGS = 4i32; +pub const PEER_DISABLE_PRESENCE: PEER_GROUP_PROPERTY_FLAGS = 2i32; +pub const PEER_DISCONNECTED: PEER_CONNECTION_STATUS = 2i32; +pub const PEER_EVENT_ENDPOINT_APPLICATION_CHANGED: PEER_COLLAB_EVENT_TYPE = 4i32; +pub const PEER_EVENT_ENDPOINT_CHANGED: PEER_COLLAB_EVENT_TYPE = 2i32; +pub const PEER_EVENT_ENDPOINT_OBJECT_CHANGED: PEER_COLLAB_EVENT_TYPE = 5i32; +pub const PEER_EVENT_ENDPOINT_PRESENCE_CHANGED: PEER_COLLAB_EVENT_TYPE = 3i32; +pub const PEER_EVENT_MY_APPLICATION_CHANGED: PEER_COLLAB_EVENT_TYPE = 8i32; +pub const PEER_EVENT_MY_ENDPOINT_CHANGED: PEER_COLLAB_EVENT_TYPE = 6i32; +pub const PEER_EVENT_MY_OBJECT_CHANGED: PEER_COLLAB_EVENT_TYPE = 9i32; +pub const PEER_EVENT_MY_PRESENCE_CHANGED: PEER_COLLAB_EVENT_TYPE = 7i32; +pub const PEER_EVENT_PEOPLE_NEAR_ME_CHANGED: PEER_COLLAB_EVENT_TYPE = 10i32; +pub const PEER_EVENT_REQUEST_STATUS_CHANGED: PEER_COLLAB_EVENT_TYPE = 11i32; +pub const PEER_EVENT_WATCHLIST_CHANGED: PEER_COLLAB_EVENT_TYPE = 1i32; +pub const PEER_E_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2147024713i32; +pub const PEER_E_CLIENT_INVALID_COMPARTMENT_ID: ::windows_sys::core::HRESULT = -2147013390i32; +pub const PEER_E_CLOUD_DISABLED: ::windows_sys::core::HRESULT = -2147013394i32; +pub const PEER_E_CLOUD_IS_DEAD: ::windows_sys::core::HRESULT = -2147013387i32; +pub const PEER_E_CLOUD_IS_SEARCH_ONLY: ::windows_sys::core::HRESULT = -2147013391i32; +pub const PEER_E_CLOUD_NOT_FOUND: ::windows_sys::core::HRESULT = -2147013395i32; +pub const PEER_E_DISK_FULL: ::windows_sys::core::HRESULT = -2147024784i32; +pub const PEER_E_DUPLICATE_PEER_NAME: ::windows_sys::core::HRESULT = -2147013388i32; +pub const PEER_E_INVALID_IDENTITY: ::windows_sys::core::HRESULT = -2147013393i32; +pub const PEER_E_NOT_FOUND: ::windows_sys::core::HRESULT = -2147023728i32; +pub const PEER_E_TOO_MUCH_LOAD: ::windows_sys::core::HRESULT = -2147013392i32; +pub const PEER_GRAPH_EVENT_CONNECTION_REQUIRED: PEER_GRAPH_EVENT_TYPE = 7i32; +pub const PEER_GRAPH_EVENT_DIRECT_CONNECTION: PEER_GRAPH_EVENT_TYPE = 4i32; +pub const PEER_GRAPH_EVENT_INCOMING_DATA: PEER_GRAPH_EVENT_TYPE = 6i32; +pub const PEER_GRAPH_EVENT_NEIGHBOR_CONNECTION: PEER_GRAPH_EVENT_TYPE = 5i32; +pub const PEER_GRAPH_EVENT_NODE_CHANGED: PEER_GRAPH_EVENT_TYPE = 8i32; +pub const PEER_GRAPH_EVENT_PROPERTY_CHANGED: PEER_GRAPH_EVENT_TYPE = 2i32; +pub const PEER_GRAPH_EVENT_RECORD_CHANGED: PEER_GRAPH_EVENT_TYPE = 3i32; +pub const PEER_GRAPH_EVENT_STATUS_CHANGED: PEER_GRAPH_EVENT_TYPE = 1i32; +pub const PEER_GRAPH_EVENT_SYNCHRONIZED: PEER_GRAPH_EVENT_TYPE = 9i32; +pub const PEER_GRAPH_PROPERTY_DEFER_EXPIRATION: PEER_GRAPH_PROPERTY_FLAGS = 2i32; +pub const PEER_GRAPH_PROPERTY_HEARTBEATS: PEER_GRAPH_PROPERTY_FLAGS = 1i32; +pub const PEER_GRAPH_SCOPE_ANY: PEER_GRAPH_SCOPE = 0i32; +pub const PEER_GRAPH_SCOPE_GLOBAL: PEER_GRAPH_SCOPE = 1i32; +pub const PEER_GRAPH_SCOPE_LINKLOCAL: PEER_GRAPH_SCOPE = 3i32; +pub const PEER_GRAPH_SCOPE_LOOPBACK: PEER_GRAPH_SCOPE = 4i32; +pub const PEER_GRAPH_SCOPE_SITELOCAL: PEER_GRAPH_SCOPE = 2i32; +pub const PEER_GRAPH_STATUS_HAS_CONNECTIONS: PEER_GRAPH_STATUS_FLAGS = 2i32; +pub const PEER_GRAPH_STATUS_LISTENING: PEER_GRAPH_STATUS_FLAGS = 1i32; +pub const PEER_GRAPH_STATUS_SYNCHRONIZED: PEER_GRAPH_STATUS_FLAGS = 4i32; +pub const PEER_GROUP_EVENT_AUTHENTICATION_FAILED: PEER_GROUP_EVENT_TYPE = 11i32; +pub const PEER_GROUP_EVENT_CONNECTION_FAILED: PEER_GROUP_EVENT_TYPE = 10i32; +pub const PEER_GROUP_EVENT_DIRECT_CONNECTION: PEER_GROUP_EVENT_TYPE = 4i32; +pub const PEER_GROUP_EVENT_INCOMING_DATA: PEER_GROUP_EVENT_TYPE = 6i32; +pub const PEER_GROUP_EVENT_MEMBER_CHANGED: PEER_GROUP_EVENT_TYPE = 8i32; +pub const PEER_GROUP_EVENT_NEIGHBOR_CONNECTION: PEER_GROUP_EVENT_TYPE = 5i32; +pub const PEER_GROUP_EVENT_PROPERTY_CHANGED: PEER_GROUP_EVENT_TYPE = 2i32; +pub const PEER_GROUP_EVENT_RECORD_CHANGED: PEER_GROUP_EVENT_TYPE = 3i32; +pub const PEER_GROUP_EVENT_STATUS_CHANGED: PEER_GROUP_EVENT_TYPE = 1i32; +pub const PEER_GROUP_GMC_AUTHENTICATION: PEER_GROUP_AUTHENTICATION_SCHEME = 1i32; +pub const PEER_GROUP_PASSWORD_AUTHENTICATION: PEER_GROUP_AUTHENTICATION_SCHEME = 2i32; +pub const PEER_GROUP_ROLE_ADMIN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04387127_aa56_450a_8ce5_4f565c6790f4); +pub const PEER_GROUP_ROLE_INVITING_MEMBER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4370fd89_dc18_4cfb_8dbf_9853a8a9f905); +pub const PEER_GROUP_ROLE_MEMBER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf12dc4c7_0857_4ca0_93fc_b1bb19a3d8c2); +pub const PEER_GROUP_STATUS_HAS_CONNECTIONS: PEER_GROUP_STATUS = 2i32; +pub const PEER_GROUP_STATUS_LISTENING: PEER_GROUP_STATUS = 1i32; +pub const PEER_GROUP_STORE_CREDENTIALS: PEER_GROUP_ISSUE_CREDENTIAL_FLAGS = 1i32; +pub const PEER_INVITATION_RESPONSE_ACCEPTED: PEER_INVITATION_RESPONSE_TYPE = 1i32; +pub const PEER_INVITATION_RESPONSE_DECLINED: PEER_INVITATION_RESPONSE_TYPE = 0i32; +pub const PEER_INVITATION_RESPONSE_ERROR: PEER_INVITATION_RESPONSE_TYPE = 3i32; +pub const PEER_INVITATION_RESPONSE_EXPIRED: PEER_INVITATION_RESPONSE_TYPE = 2i32; +pub const PEER_MEMBER_CONNECTED: PEER_MEMBER_CHANGE_TYPE = 1i32; +pub const PEER_MEMBER_DATA_OPTIONAL: PEER_GROUP_PROPERTY_FLAGS = 1i32; +pub const PEER_MEMBER_DISCONNECTED: PEER_MEMBER_CHANGE_TYPE = 2i32; +pub const PEER_MEMBER_JOINED: PEER_MEMBER_CHANGE_TYPE = 4i32; +pub const PEER_MEMBER_LEFT: PEER_MEMBER_CHANGE_TYPE = 5i32; +pub const PEER_MEMBER_PRESENT: PEER_MEMBER_FLAGS = 1i32; +pub const PEER_MEMBER_UPDATED: PEER_MEMBER_CHANGE_TYPE = 3i32; +pub const PEER_NODE_CHANGE_CONNECTED: PEER_NODE_CHANGE_TYPE = 1i32; +pub const PEER_NODE_CHANGE_DISCONNECTED: PEER_NODE_CHANGE_TYPE = 2i32; +pub const PEER_NODE_CHANGE_UPDATED: PEER_NODE_CHANGE_TYPE = 3i32; +pub const PEER_PNRP_ALL_LINK_CLOUDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PEER_PNRP_ALL_LINKS"); +pub const PEER_PRESENCE_AWAY: PEER_PRESENCE_STATUS = 2i32; +pub const PEER_PRESENCE_BE_RIGHT_BACK: PEER_PRESENCE_STATUS = 3i32; +pub const PEER_PRESENCE_BUSY: PEER_PRESENCE_STATUS = 5i32; +pub const PEER_PRESENCE_IDLE: PEER_PRESENCE_STATUS = 4i32; +pub const PEER_PRESENCE_OFFLINE: PEER_PRESENCE_STATUS = 0i32; +pub const PEER_PRESENCE_ONLINE: PEER_PRESENCE_STATUS = 7i32; +pub const PEER_PRESENCE_ON_THE_PHONE: PEER_PRESENCE_STATUS = 6i32; +pub const PEER_PRESENCE_OUT_TO_LUNCH: PEER_PRESENCE_STATUS = 1i32; +pub const PEER_PUBLICATION_SCOPE_ALL: PEER_PUBLICATION_SCOPE = 3i32; +pub const PEER_PUBLICATION_SCOPE_INTERNET: PEER_PUBLICATION_SCOPE = 2i32; +pub const PEER_PUBLICATION_SCOPE_NEAR_ME: PEER_PUBLICATION_SCOPE = 1i32; +pub const PEER_PUBLICATION_SCOPE_NONE: PEER_PUBLICATION_SCOPE = 0i32; +pub const PEER_RECORD_ADDED: PEER_RECORD_CHANGE_TYPE = 1i32; +pub const PEER_RECORD_DELETED: PEER_RECORD_CHANGE_TYPE = 3i32; +pub const PEER_RECORD_EXPIRED: PEER_RECORD_CHANGE_TYPE = 4i32; +pub const PEER_RECORD_FLAG_AUTOREFRESH: PEER_RECORD_FLAGS = 1i32; +pub const PEER_RECORD_FLAG_DELETED: PEER_RECORD_FLAGS = 2i32; +pub const PEER_RECORD_UPDATED: PEER_RECORD_CHANGE_TYPE = 2i32; +pub const PEER_SIGNIN_ALL: PEER_SIGNIN_FLAGS = 3i32; +pub const PEER_SIGNIN_INTERNET: PEER_SIGNIN_FLAGS = 2i32; +pub const PEER_SIGNIN_NEAR_ME: PEER_SIGNIN_FLAGS = 1i32; +pub const PEER_SIGNIN_NONE: PEER_SIGNIN_FLAGS = 0i32; +pub const PEER_WATCH_ALLOWED: PEER_WATCH_PERMISSION = 1i32; +pub const PEER_WATCH_BLOCKED: PEER_WATCH_PERMISSION = 0i32; +pub const PNRPINFO_HINT: u32 = 1u32; +pub const PNRP_CLOUD_FULL_PARTICIPANT: PNRP_CLOUD_FLAGS = 4i32; +pub const PNRP_CLOUD_NAME_LOCAL: PNRP_CLOUD_FLAGS = 1i32; +pub const PNRP_CLOUD_NO_FLAGS: PNRP_CLOUD_FLAGS = 0i32; +pub const PNRP_CLOUD_RESOLVE_ONLY: PNRP_CLOUD_FLAGS = 2i32; +pub const PNRP_CLOUD_STATE_ACTIVE: PNRP_CLOUD_STATE = 2i32; +pub const PNRP_CLOUD_STATE_ALONE: PNRP_CLOUD_STATE = 6i32; +pub const PNRP_CLOUD_STATE_DEAD: PNRP_CLOUD_STATE = 3i32; +pub const PNRP_CLOUD_STATE_DISABLED: PNRP_CLOUD_STATE = 4i32; +pub const PNRP_CLOUD_STATE_NO_NET: PNRP_CLOUD_STATE = 5i32; +pub const PNRP_CLOUD_STATE_SYNCHRONISING: PNRP_CLOUD_STATE = 1i32; +pub const PNRP_CLOUD_STATE_VIRTUAL: PNRP_CLOUD_STATE = 0i32; +pub const PNRP_EXTENDED_PAYLOAD_TYPE_BINARY: PNRP_EXTENDED_PAYLOAD_TYPE = 1i32; +pub const PNRP_EXTENDED_PAYLOAD_TYPE_NONE: PNRP_EXTENDED_PAYLOAD_TYPE = 0i32; +pub const PNRP_EXTENDED_PAYLOAD_TYPE_STRING: PNRP_EXTENDED_PAYLOAD_TYPE = 2i32; +pub const PNRP_GLOBAL_SCOPE: PNRP_SCOPE = 1i32; +pub const PNRP_LINK_LOCAL_SCOPE: PNRP_SCOPE = 3i32; +pub const PNRP_MAX_ENDPOINT_ADDRESSES: u32 = 10u32; +pub const PNRP_MAX_EXTENDED_PAYLOAD_BYTES: u32 = 4096u32; +pub const PNRP_REGISTERED_ID_STATE_OK: PNRP_REGISTERED_ID_STATE = 1i32; +pub const PNRP_REGISTERED_ID_STATE_PROBLEM: PNRP_REGISTERED_ID_STATE = 2i32; +pub const PNRP_RESOLVE_CRITERIA_ANY_PEER_NAME: PNRP_RESOLVE_CRITERIA = 5i32; +pub const PNRP_RESOLVE_CRITERIA_DEFAULT: PNRP_RESOLVE_CRITERIA = 0i32; +pub const PNRP_RESOLVE_CRITERIA_NEAREST_NON_CURRENT_PROCESS_PEER_NAME: PNRP_RESOLVE_CRITERIA = 4i32; +pub const PNRP_RESOLVE_CRITERIA_NEAREST_PEER_NAME: PNRP_RESOLVE_CRITERIA = 6i32; +pub const PNRP_RESOLVE_CRITERIA_NEAREST_REMOTE_PEER_NAME: PNRP_RESOLVE_CRITERIA = 2i32; +pub const PNRP_RESOLVE_CRITERIA_NON_CURRENT_PROCESS_PEER_NAME: PNRP_RESOLVE_CRITERIA = 3i32; +pub const PNRP_RESOLVE_CRITERIA_REMOTE_PEER_NAME: PNRP_RESOLVE_CRITERIA = 1i32; +pub const PNRP_SCOPE_ANY: PNRP_SCOPE = 0i32; +pub const PNRP_SITE_LOCAL_SCOPE: PNRP_SCOPE = 2i32; +pub const PeerDistClientBasicInfo: PEERDIST_CLIENT_INFO_BY_HANDLE_CLASS = 0i32; +pub const SVCID_PNRPCLOUD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc2239ce6_00c0_4fbf_bad6_18139385a49a); +pub const SVCID_PNRPNAME_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc2239ce5_00c0_4fbf_bad6_18139385a49a); +pub const SVCID_PNRPNAME_V2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc2239ce7_00c0_4fbf_bad6_18139385a49a); +pub const WSA_PNRP_CLIENT_INVALID_COMPARTMENT_ID: u32 = 11506u32; +pub const WSA_PNRP_CLOUD_DISABLED: u32 = 11502u32; +pub const WSA_PNRP_CLOUD_IS_DEAD: u32 = 11509u32; +pub const WSA_PNRP_CLOUD_IS_SEARCH_ONLY: u32 = 11505u32; +pub const WSA_PNRP_CLOUD_NOT_FOUND: u32 = 11501u32; +pub const WSA_PNRP_DUPLICATE_PEER_NAME: u32 = 11508u32; +pub const WSA_PNRP_ERROR_BASE: u32 = 11500u32; +pub const WSA_PNRP_INVALID_IDENTITY: u32 = 11503u32; +pub const WSA_PNRP_TOO_MUCH_LOAD: u32 = 11504u32; +pub const WSZ_SCOPE_GLOBAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GLOBAL"); +pub const WSZ_SCOPE_LINKLOCAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LINKLOCAL"); +pub const WSZ_SCOPE_SITELOCAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SITELOCAL"); +pub type DRT_ADDRESS_FLAGS = i32; +pub type DRT_EVENT_TYPE = i32; +pub type DRT_LEAFSET_KEY_CHANGE_TYPE = i32; +pub type DRT_MATCH_TYPE = i32; +pub type DRT_REGISTRATION_STATE = i32; +pub type DRT_SCOPE = i32; +pub type DRT_SECURITY_MODE = i32; +pub type DRT_STATUS = i32; +pub type PEERDIST_CLIENT_INFO_BY_HANDLE_CLASS = i32; +pub type PEERDIST_RETRIEVAL_OPTIONS_CONTENTINFO_VERSION_VALUE = u32; +pub type PEERDIST_STATUS = i32; +pub type PEER_APPLICATION_REGISTRATION_TYPE = i32; +pub type PEER_CHANGE_TYPE = i32; +pub type PEER_COLLAB_EVENT_TYPE = i32; +pub type PEER_CONNECTION_FLAGS = i32; +pub type PEER_CONNECTION_STATUS = i32; +pub type PEER_GRAPH_EVENT_TYPE = i32; +pub type PEER_GRAPH_PROPERTY_FLAGS = i32; +pub type PEER_GRAPH_SCOPE = i32; +pub type PEER_GRAPH_STATUS_FLAGS = i32; +pub type PEER_GROUP_AUTHENTICATION_SCHEME = i32; +pub type PEER_GROUP_EVENT_TYPE = i32; +pub type PEER_GROUP_ISSUE_CREDENTIAL_FLAGS = i32; +pub type PEER_GROUP_PROPERTY_FLAGS = i32; +pub type PEER_GROUP_STATUS = i32; +pub type PEER_INVITATION_RESPONSE_TYPE = i32; +pub type PEER_MEMBER_CHANGE_TYPE = i32; +pub type PEER_MEMBER_FLAGS = i32; +pub type PEER_NODE_CHANGE_TYPE = i32; +pub type PEER_PRESENCE_STATUS = i32; +pub type PEER_PUBLICATION_SCOPE = i32; +pub type PEER_RECORD_CHANGE_TYPE = i32; +pub type PEER_RECORD_FLAGS = i32; +pub type PEER_SIGNIN_FLAGS = i32; +pub type PEER_WATCH_PERMISSION = i32; +pub type PNRP_CLOUD_FLAGS = i32; +pub type PNRP_CLOUD_STATE = i32; +pub type PNRP_EXTENDED_PAYLOAD_TYPE = i32; +pub type PNRP_REGISTERED_ID_STATE = i32; +pub type PNRP_RESOLVE_CRITERIA = i32; +pub type PNRP_SCOPE = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct DRT_ADDRESS { + pub socketAddress: super::super::Networking::WinSock::SOCKADDR_STORAGE, + pub flags: u32, + pub nearness: i32, + pub latency: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for DRT_ADDRESS {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for DRT_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct DRT_ADDRESS_LIST { + pub AddressCount: u32, + pub AddressList: [DRT_ADDRESS; 1], +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for DRT_ADDRESS_LIST {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for DRT_ADDRESS_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRT_BOOTSTRAP_PROVIDER { + pub pvContext: *mut ::core::ffi::c_void, + pub Attach: isize, + pub Detach: isize, + pub InitResolve: isize, + pub IssueResolve: isize, + pub EndResolve: isize, + pub Register: isize, + pub Unregister: isize, +} +impl ::core::marker::Copy for DRT_BOOTSTRAP_PROVIDER {} +impl ::core::clone::Clone for DRT_BOOTSTRAP_PROVIDER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRT_DATA { + pub cb: u32, + pub pb: *mut u8, +} +impl ::core::marker::Copy for DRT_DATA {} +impl ::core::clone::Clone for DRT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct DRT_EVENT_DATA { + pub r#type: DRT_EVENT_TYPE, + pub hr: ::windows_sys::core::HRESULT, + pub pvContext: *mut ::core::ffi::c_void, + pub Anonymous: DRT_EVENT_DATA_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for DRT_EVENT_DATA {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for DRT_EVENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union DRT_EVENT_DATA_0 { + pub leafsetKeyChange: DRT_EVENT_DATA_0_0, + pub registrationStateChange: DRT_EVENT_DATA_0_1, + pub statusChange: DRT_EVENT_DATA_0_2, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for DRT_EVENT_DATA_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for DRT_EVENT_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct DRT_EVENT_DATA_0_0 { + pub change: DRT_LEAFSET_KEY_CHANGE_TYPE, + pub localKey: DRT_DATA, + pub remoteKey: DRT_DATA, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for DRT_EVENT_DATA_0_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for DRT_EVENT_DATA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct DRT_EVENT_DATA_0_1 { + pub state: DRT_REGISTRATION_STATE, + pub localKey: DRT_DATA, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for DRT_EVENT_DATA_0_1 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for DRT_EVENT_DATA_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct DRT_EVENT_DATA_0_2 { + pub status: DRT_STATUS, + pub bootstrapAddresses: DRT_EVENT_DATA_0_2_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for DRT_EVENT_DATA_0_2 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for DRT_EVENT_DATA_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct DRT_EVENT_DATA_0_2_0 { + pub cntAddress: u32, + pub pAddresses: *mut super::super::Networking::WinSock::SOCKADDR_STORAGE, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for DRT_EVENT_DATA_0_2_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for DRT_EVENT_DATA_0_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRT_REGISTRATION { + pub key: DRT_DATA, + pub appData: DRT_DATA, +} +impl ::core::marker::Copy for DRT_REGISTRATION {} +impl ::core::clone::Clone for DRT_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DRT_SEARCH_INFO { + pub dwSize: u32, + pub fIterative: super::super::Foundation::BOOL, + pub fAllowCurrentInstanceMatch: super::super::Foundation::BOOL, + pub fAnyMatchInRange: super::super::Foundation::BOOL, + pub cMaxEndpoints: u32, + pub pMaximumKey: *mut DRT_DATA, + pub pMinimumKey: *mut DRT_DATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRT_SEARCH_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRT_SEARCH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRT_SEARCH_RESULT { + pub dwSize: u32, + pub r#type: DRT_MATCH_TYPE, + pub pvContext: *mut ::core::ffi::c_void, + pub registration: DRT_REGISTRATION, +} +impl ::core::marker::Copy for DRT_SEARCH_RESULT {} +impl ::core::clone::Clone for DRT_SEARCH_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRT_SECURITY_PROVIDER { + pub pvContext: *mut ::core::ffi::c_void, + pub Attach: isize, + pub Detach: isize, + pub RegisterKey: isize, + pub UnregisterKey: isize, + pub ValidateAndUnpackPayload: isize, + pub SecureAndPackPayload: isize, + pub FreeData: isize, + pub EncryptData: isize, + pub DecryptData: isize, + pub GetSerializedCredential: isize, + pub ValidateRemoteCredential: isize, + pub SignData: isize, + pub VerifyData: isize, +} +impl ::core::marker::Copy for DRT_SECURITY_PROVIDER {} +impl ::core::clone::Clone for DRT_SECURITY_PROVIDER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRT_SETTINGS { + pub dwSize: u32, + pub cbKey: u32, + pub bProtocolMajorVersion: u8, + pub bProtocolMinorVersion: u8, + pub ulMaxRoutingAddresses: u32, + pub pwzDrtInstancePrefix: ::windows_sys::core::PWSTR, + pub hTransport: *mut ::core::ffi::c_void, + pub pSecurityProvider: *mut DRT_SECURITY_PROVIDER, + pub pBootstrapProvider: *mut DRT_BOOTSTRAP_PROVIDER, + pub eSecurityMode: DRT_SECURITY_MODE, +} +impl ::core::marker::Copy for DRT_SETTINGS {} +impl ::core::clone::Clone for DRT_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PEERDIST_CLIENT_BASIC_INFO { + pub fFlashCrowd: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PEERDIST_CLIENT_BASIC_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PEERDIST_CLIENT_BASIC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEERDIST_CONTENT_TAG { + pub Data: [u8; 16], +} +impl ::core::marker::Copy for PEERDIST_CONTENT_TAG {} +impl ::core::clone::Clone for PEERDIST_CONTENT_TAG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEERDIST_PUBLICATION_OPTIONS { + pub dwVersion: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for PEERDIST_PUBLICATION_OPTIONS {} +impl ::core::clone::Clone for PEERDIST_PUBLICATION_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEERDIST_RETRIEVAL_OPTIONS { + pub cbSize: u32, + pub dwContentInfoMinVersion: u32, + pub dwContentInfoMaxVersion: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for PEERDIST_RETRIEVAL_OPTIONS {} +impl ::core::clone::Clone for PEERDIST_RETRIEVAL_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEERDIST_STATUS_INFO { + pub cbSize: u32, + pub status: PEERDIST_STATUS, + pub dwMinVer: PEERDIST_RETRIEVAL_OPTIONS_CONTENTINFO_VERSION_VALUE, + pub dwMaxVer: PEERDIST_RETRIEVAL_OPTIONS_CONTENTINFO_VERSION_VALUE, +} +impl ::core::marker::Copy for PEERDIST_STATUS_INFO {} +impl ::core::clone::Clone for PEERDIST_STATUS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct PEER_ADDRESS { + pub dwSize: u32, + pub sin6: super::super::Networking::WinSock::SOCKADDR_IN6, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for PEER_ADDRESS {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for PEER_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_APPLICATION { + pub id: ::windows_sys::core::GUID, + pub data: PEER_DATA, + pub pwzDescription: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PEER_APPLICATION {} +impl ::core::clone::Clone for PEER_APPLICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_APPLICATION_REGISTRATION_INFO { + pub application: PEER_APPLICATION, + pub pwzApplicationToLaunch: ::windows_sys::core::PWSTR, + pub pwzApplicationArguments: ::windows_sys::core::PWSTR, + pub dwPublicationScope: u32, +} +impl ::core::marker::Copy for PEER_APPLICATION_REGISTRATION_INFO {} +impl ::core::clone::Clone for PEER_APPLICATION_REGISTRATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct PEER_APP_LAUNCH_INFO { + pub pContact: *mut PEER_CONTACT, + pub pEndpoint: *mut PEER_ENDPOINT, + pub pInvitation: *mut PEER_INVITATION, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for PEER_APP_LAUNCH_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for PEER_APP_LAUNCH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct PEER_COLLAB_EVENT_DATA { + pub eventType: PEER_COLLAB_EVENT_TYPE, + pub Anonymous: PEER_COLLAB_EVENT_DATA_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for PEER_COLLAB_EVENT_DATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for PEER_COLLAB_EVENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub union PEER_COLLAB_EVENT_DATA_0 { + pub watchListChangedData: PEER_EVENT_WATCHLIST_CHANGED_DATA, + pub presenceChangedData: PEER_EVENT_PRESENCE_CHANGED_DATA, + pub applicationChangedData: PEER_EVENT_APPLICATION_CHANGED_DATA, + pub objectChangedData: PEER_EVENT_OBJECT_CHANGED_DATA, + pub endpointChangedData: PEER_EVENT_ENDPOINT_CHANGED_DATA, + pub peopleNearMeChangedData: PEER_EVENT_PEOPLE_NEAR_ME_CHANGED_DATA, + pub requestStatusChangedData: PEER_EVENT_REQUEST_STATUS_CHANGED_DATA, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for PEER_COLLAB_EVENT_DATA_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for PEER_COLLAB_EVENT_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_COLLAB_EVENT_REGISTRATION { + pub eventType: PEER_COLLAB_EVENT_TYPE, + pub pInstance: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for PEER_COLLAB_EVENT_REGISTRATION {} +impl ::core::clone::Clone for PEER_COLLAB_EVENT_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct PEER_CONNECTION_INFO { + pub dwSize: u32, + pub dwFlags: u32, + pub ullConnectionId: u64, + pub ullNodeId: u64, + pub pwzPeerId: ::windows_sys::core::PWSTR, + pub address: PEER_ADDRESS, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for PEER_CONNECTION_INFO {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for PEER_CONNECTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PEER_CONTACT { + pub pwzPeerName: ::windows_sys::core::PWSTR, + pub pwzNickName: ::windows_sys::core::PWSTR, + pub pwzDisplayName: ::windows_sys::core::PWSTR, + pub pwzEmailAddress: ::windows_sys::core::PWSTR, + pub fWatch: super::super::Foundation::BOOL, + pub WatcherPermissions: PEER_WATCH_PERMISSION, + pub credentials: PEER_DATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PEER_CONTACT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PEER_CONTACT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct PEER_CREDENTIAL_INFO { + pub dwSize: u32, + pub dwFlags: u32, + pub pwzFriendlyName: ::windows_sys::core::PWSTR, + pub pPublicKey: *mut super::super::Security::Cryptography::CERT_PUBLIC_KEY_INFO, + pub pwzIssuerPeerName: ::windows_sys::core::PWSTR, + pub pwzIssuerFriendlyName: ::windows_sys::core::PWSTR, + pub ftValidityStart: super::super::Foundation::FILETIME, + pub ftValidityEnd: super::super::Foundation::FILETIME, + pub cRoles: u32, + pub pRoles: *mut ::windows_sys::core::GUID, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for PEER_CREDENTIAL_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for PEER_CREDENTIAL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_DATA { + pub cbData: u32, + pub pbData: *mut u8, +} +impl ::core::marker::Copy for PEER_DATA {} +impl ::core::clone::Clone for PEER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct PEER_ENDPOINT { + pub address: PEER_ADDRESS, + pub pwzEndpointName: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for PEER_ENDPOINT {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for PEER_ENDPOINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct PEER_EVENT_APPLICATION_CHANGED_DATA { + pub pContact: *mut PEER_CONTACT, + pub pEndpoint: *mut PEER_ENDPOINT, + pub changeType: PEER_CHANGE_TYPE, + pub pApplication: *mut PEER_APPLICATION, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for PEER_EVENT_APPLICATION_CHANGED_DATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for PEER_EVENT_APPLICATION_CHANGED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_EVENT_CONNECTION_CHANGE_DATA { + pub dwSize: u32, + pub status: PEER_CONNECTION_STATUS, + pub ullConnectionId: u64, + pub ullNodeId: u64, + pub ullNextConnectionId: u64, + pub hrConnectionFailedReason: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for PEER_EVENT_CONNECTION_CHANGE_DATA {} +impl ::core::clone::Clone for PEER_EVENT_CONNECTION_CHANGE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct PEER_EVENT_ENDPOINT_CHANGED_DATA { + pub pContact: *mut PEER_CONTACT, + pub pEndpoint: *mut PEER_ENDPOINT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for PEER_EVENT_ENDPOINT_CHANGED_DATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for PEER_EVENT_ENDPOINT_CHANGED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_EVENT_INCOMING_DATA { + pub dwSize: u32, + pub ullConnectionId: u64, + pub r#type: ::windows_sys::core::GUID, + pub data: PEER_DATA, +} +impl ::core::marker::Copy for PEER_EVENT_INCOMING_DATA {} +impl ::core::clone::Clone for PEER_EVENT_INCOMING_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_EVENT_MEMBER_CHANGE_DATA { + pub dwSize: u32, + pub changeType: PEER_MEMBER_CHANGE_TYPE, + pub pwzIdentity: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PEER_EVENT_MEMBER_CHANGE_DATA {} +impl ::core::clone::Clone for PEER_EVENT_MEMBER_CHANGE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_EVENT_NODE_CHANGE_DATA { + pub dwSize: u32, + pub changeType: PEER_NODE_CHANGE_TYPE, + pub ullNodeId: u64, + pub pwzPeerId: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PEER_EVENT_NODE_CHANGE_DATA {} +impl ::core::clone::Clone for PEER_EVENT_NODE_CHANGE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct PEER_EVENT_OBJECT_CHANGED_DATA { + pub pContact: *mut PEER_CONTACT, + pub pEndpoint: *mut PEER_ENDPOINT, + pub changeType: PEER_CHANGE_TYPE, + pub pObject: *mut PEER_OBJECT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for PEER_EVENT_OBJECT_CHANGED_DATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for PEER_EVENT_OBJECT_CHANGED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct PEER_EVENT_PEOPLE_NEAR_ME_CHANGED_DATA { + pub changeType: PEER_CHANGE_TYPE, + pub pPeopleNearMe: *mut PEER_PEOPLE_NEAR_ME, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for PEER_EVENT_PEOPLE_NEAR_ME_CHANGED_DATA {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for PEER_EVENT_PEOPLE_NEAR_ME_CHANGED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct PEER_EVENT_PRESENCE_CHANGED_DATA { + pub pContact: *mut PEER_CONTACT, + pub pEndpoint: *mut PEER_ENDPOINT, + pub changeType: PEER_CHANGE_TYPE, + pub pPresenceInfo: *mut PEER_PRESENCE_INFO, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for PEER_EVENT_PRESENCE_CHANGED_DATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for PEER_EVENT_PRESENCE_CHANGED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_EVENT_RECORD_CHANGE_DATA { + pub dwSize: u32, + pub changeType: PEER_RECORD_CHANGE_TYPE, + pub recordId: ::windows_sys::core::GUID, + pub recordType: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for PEER_EVENT_RECORD_CHANGE_DATA {} +impl ::core::clone::Clone for PEER_EVENT_RECORD_CHANGE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct PEER_EVENT_REQUEST_STATUS_CHANGED_DATA { + pub pEndpoint: *mut PEER_ENDPOINT, + pub hrChange: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for PEER_EVENT_REQUEST_STATUS_CHANGED_DATA {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for PEER_EVENT_REQUEST_STATUS_CHANGED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_EVENT_SYNCHRONIZED_DATA { + pub dwSize: u32, + pub recordType: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for PEER_EVENT_SYNCHRONIZED_DATA {} +impl ::core::clone::Clone for PEER_EVENT_SYNCHRONIZED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PEER_EVENT_WATCHLIST_CHANGED_DATA { + pub pContact: *mut PEER_CONTACT, + pub changeType: PEER_CHANGE_TYPE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PEER_EVENT_WATCHLIST_CHANGED_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PEER_EVENT_WATCHLIST_CHANGED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_GRAPH_EVENT_DATA { + pub eventType: PEER_GRAPH_EVENT_TYPE, + pub Anonymous: PEER_GRAPH_EVENT_DATA_0, +} +impl ::core::marker::Copy for PEER_GRAPH_EVENT_DATA {} +impl ::core::clone::Clone for PEER_GRAPH_EVENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PEER_GRAPH_EVENT_DATA_0 { + pub dwStatus: PEER_GRAPH_STATUS_FLAGS, + pub incomingData: PEER_EVENT_INCOMING_DATA, + pub recordChangeData: PEER_EVENT_RECORD_CHANGE_DATA, + pub connectionChangeData: PEER_EVENT_CONNECTION_CHANGE_DATA, + pub nodeChangeData: PEER_EVENT_NODE_CHANGE_DATA, + pub synchronizedData: PEER_EVENT_SYNCHRONIZED_DATA, +} +impl ::core::marker::Copy for PEER_GRAPH_EVENT_DATA_0 {} +impl ::core::clone::Clone for PEER_GRAPH_EVENT_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_GRAPH_EVENT_REGISTRATION { + pub eventType: PEER_GRAPH_EVENT_TYPE, + pub pType: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for PEER_GRAPH_EVENT_REGISTRATION {} +impl ::core::clone::Clone for PEER_GRAPH_EVENT_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_GRAPH_PROPERTIES { + pub dwSize: u32, + pub dwFlags: u32, + pub dwScope: u32, + pub dwMaxRecordSize: u32, + pub pwzGraphId: ::windows_sys::core::PWSTR, + pub pwzCreatorId: ::windows_sys::core::PWSTR, + pub pwzFriendlyName: ::windows_sys::core::PWSTR, + pub pwzComment: ::windows_sys::core::PWSTR, + pub ulPresenceLifetime: u32, + pub cPresenceMax: u32, +} +impl ::core::marker::Copy for PEER_GRAPH_PROPERTIES {} +impl ::core::clone::Clone for PEER_GRAPH_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_GROUP_EVENT_DATA { + pub eventType: PEER_GROUP_EVENT_TYPE, + pub Anonymous: PEER_GROUP_EVENT_DATA_0, +} +impl ::core::marker::Copy for PEER_GROUP_EVENT_DATA {} +impl ::core::clone::Clone for PEER_GROUP_EVENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PEER_GROUP_EVENT_DATA_0 { + pub dwStatus: PEER_GROUP_STATUS, + pub incomingData: PEER_EVENT_INCOMING_DATA, + pub recordChangeData: PEER_EVENT_RECORD_CHANGE_DATA, + pub connectionChangeData: PEER_EVENT_CONNECTION_CHANGE_DATA, + pub memberChangeData: PEER_EVENT_MEMBER_CHANGE_DATA, + pub hrConnectionFailedReason: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for PEER_GROUP_EVENT_DATA_0 {} +impl ::core::clone::Clone for PEER_GROUP_EVENT_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_GROUP_EVENT_REGISTRATION { + pub eventType: PEER_GROUP_EVENT_TYPE, + pub pType: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for PEER_GROUP_EVENT_REGISTRATION {} +impl ::core::clone::Clone for PEER_GROUP_EVENT_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_GROUP_PROPERTIES { + pub dwSize: u32, + pub dwFlags: u32, + pub pwzCloud: ::windows_sys::core::PWSTR, + pub pwzClassifier: ::windows_sys::core::PWSTR, + pub pwzGroupPeerName: ::windows_sys::core::PWSTR, + pub pwzCreatorPeerName: ::windows_sys::core::PWSTR, + pub pwzFriendlyName: ::windows_sys::core::PWSTR, + pub pwzComment: ::windows_sys::core::PWSTR, + pub ulMemberDataLifetime: u32, + pub ulPresenceLifetime: u32, + pub dwAuthenticationSchemes: u32, + pub pwzGroupPassword: ::windows_sys::core::PWSTR, + pub groupPasswordRole: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for PEER_GROUP_PROPERTIES {} +impl ::core::clone::Clone for PEER_GROUP_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_INVITATION { + pub applicationId: ::windows_sys::core::GUID, + pub applicationData: PEER_DATA, + pub pwzMessage: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PEER_INVITATION {} +impl ::core::clone::Clone for PEER_INVITATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct PEER_INVITATION_INFO { + pub dwSize: u32, + pub dwFlags: u32, + pub pwzCloudName: ::windows_sys::core::PWSTR, + pub dwScope: u32, + pub dwCloudFlags: u32, + pub pwzGroupPeerName: ::windows_sys::core::PWSTR, + pub pwzIssuerPeerName: ::windows_sys::core::PWSTR, + pub pwzSubjectPeerName: ::windows_sys::core::PWSTR, + pub pwzGroupFriendlyName: ::windows_sys::core::PWSTR, + pub pwzIssuerFriendlyName: ::windows_sys::core::PWSTR, + pub pwzSubjectFriendlyName: ::windows_sys::core::PWSTR, + pub ftValidityStart: super::super::Foundation::FILETIME, + pub ftValidityEnd: super::super::Foundation::FILETIME, + pub cRoles: u32, + pub pRoles: *mut ::windows_sys::core::GUID, + pub cClassifiers: u32, + pub ppwzClassifiers: *mut ::windows_sys::core::PWSTR, + pub pSubjectPublicKey: *mut super::super::Security::Cryptography::CERT_PUBLIC_KEY_INFO, + pub authScheme: PEER_GROUP_AUTHENTICATION_SCHEME, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for PEER_INVITATION_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for PEER_INVITATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_INVITATION_RESPONSE { + pub action: PEER_INVITATION_RESPONSE_TYPE, + pub pwzMessage: ::windows_sys::core::PWSTR, + pub hrExtendedInfo: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for PEER_INVITATION_RESPONSE {} +impl ::core::clone::Clone for PEER_INVITATION_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock", feature = "Win32_Security_Cryptography"))] +pub struct PEER_MEMBER { + pub dwSize: u32, + pub dwFlags: u32, + pub pwzIdentity: ::windows_sys::core::PWSTR, + pub pwzAttributes: ::windows_sys::core::PWSTR, + pub ullNodeId: u64, + pub cAddresses: u32, + pub pAddresses: *mut PEER_ADDRESS, + pub pCredentialInfo: *mut PEER_CREDENTIAL_INFO, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for PEER_MEMBER {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for PEER_MEMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_NAME_PAIR { + pub dwSize: u32, + pub pwzPeerName: ::windows_sys::core::PWSTR, + pub pwzFriendlyName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PEER_NAME_PAIR {} +impl ::core::clone::Clone for PEER_NAME_PAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct PEER_NODE_INFO { + pub dwSize: u32, + pub ullNodeId: u64, + pub pwzPeerId: ::windows_sys::core::PWSTR, + pub cAddresses: u32, + pub pAddresses: *mut PEER_ADDRESS, + pub pwzAttributes: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for PEER_NODE_INFO {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for PEER_NODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_OBJECT { + pub id: ::windows_sys::core::GUID, + pub data: PEER_DATA, + pub dwPublicationScope: u32, +} +impl ::core::marker::Copy for PEER_OBJECT {} +impl ::core::clone::Clone for PEER_OBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct PEER_PEOPLE_NEAR_ME { + pub pwzNickName: ::windows_sys::core::PWSTR, + pub endpoint: PEER_ENDPOINT, + pub id: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for PEER_PEOPLE_NEAR_ME {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for PEER_PEOPLE_NEAR_ME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_PNRP_CLOUD_INFO { + pub pwzCloudName: ::windows_sys::core::PWSTR, + pub dwScope: PNRP_SCOPE, + pub dwScopeId: u32, +} +impl ::core::marker::Copy for PEER_PNRP_CLOUD_INFO {} +impl ::core::clone::Clone for PEER_PNRP_CLOUD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct PEER_PNRP_ENDPOINT_INFO { + pub pwzPeerName: ::windows_sys::core::PWSTR, + pub cAddresses: u32, + pub ppAddresses: *mut *mut super::super::Networking::WinSock::SOCKADDR, + pub pwzComment: ::windows_sys::core::PWSTR, + pub payload: PEER_DATA, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for PEER_PNRP_ENDPOINT_INFO {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for PEER_PNRP_ENDPOINT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct PEER_PNRP_REGISTRATION_INFO { + pub pwzCloudName: ::windows_sys::core::PWSTR, + pub pwzPublishingIdentity: ::windows_sys::core::PWSTR, + pub cAddresses: u32, + pub ppAddresses: *mut *mut super::super::Networking::WinSock::SOCKADDR, + pub wPort: u16, + pub pwzComment: ::windows_sys::core::PWSTR, + pub payload: PEER_DATA, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for PEER_PNRP_REGISTRATION_INFO {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for PEER_PNRP_REGISTRATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_PRESENCE_INFO { + pub status: PEER_PRESENCE_STATUS, + pub pwzDescriptiveText: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PEER_PRESENCE_INFO {} +impl ::core::clone::Clone for PEER_PRESENCE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PEER_RECORD { + pub dwSize: u32, + pub r#type: ::windows_sys::core::GUID, + pub id: ::windows_sys::core::GUID, + pub dwVersion: u32, + pub dwFlags: u32, + pub pwzCreatorId: ::windows_sys::core::PWSTR, + pub pwzModifiedById: ::windows_sys::core::PWSTR, + pub pwzAttributes: ::windows_sys::core::PWSTR, + pub ftCreation: super::super::Foundation::FILETIME, + pub ftExpiration: super::super::Foundation::FILETIME, + pub ftLastModified: super::super::Foundation::FILETIME, + pub securityData: PEER_DATA, + pub data: PEER_DATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PEER_RECORD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PEER_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PEER_SECURITY_INTERFACE { + pub dwSize: u32, + pub pwzSspFilename: ::windows_sys::core::PWSTR, + pub pwzPackageName: ::windows_sys::core::PWSTR, + pub cbSecurityInfo: u32, + pub pbSecurityInfo: *mut u8, + pub pvContext: *mut ::core::ffi::c_void, + pub pfnValidateRecord: PFNPEER_VALIDATE_RECORD, + pub pfnSecureRecord: PFNPEER_SECURE_RECORD, + pub pfnFreeSecurityData: PFNPEER_FREE_SECURITY_DATA, + pub pfnAuthFailed: PFNPEER_ON_PASSWORD_AUTH_FAILED, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PEER_SECURITY_INTERFACE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PEER_SECURITY_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PEER_VERSION_DATA { + pub wVersion: u16, + pub wHighestVersion: u16, +} +impl ::core::marker::Copy for PEER_VERSION_DATA {} +impl ::core::clone::Clone for PEER_VERSION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PNRPCLOUDINFO { + pub dwSize: u32, + pub Cloud: PNRP_CLOUD_ID, + pub enCloudState: PNRP_CLOUD_STATE, + pub enCloudFlags: PNRP_CLOUD_FLAGS, +} +impl ::core::marker::Copy for PNRPCLOUDINFO {} +impl ::core::clone::Clone for PNRPCLOUDINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct PNRPINFO_V1 { + pub dwSize: u32, + pub lpwszIdentity: ::windows_sys::core::PWSTR, + pub nMaxResolve: u32, + pub dwTimeout: u32, + pub dwLifetime: u32, + pub enResolveCriteria: PNRP_RESOLVE_CRITERIA, + pub dwFlags: u32, + pub saHint: super::super::Networking::WinSock::SOCKET_ADDRESS, + pub enNameState: PNRP_REGISTERED_ID_STATE, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for PNRPINFO_V1 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for PNRPINFO_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Networking_WinSock", feature = "Win32_System_Com"))] +pub struct PNRPINFO_V2 { + pub dwSize: u32, + pub lpwszIdentity: ::windows_sys::core::PWSTR, + pub nMaxResolve: u32, + pub dwTimeout: u32, + pub dwLifetime: u32, + pub enResolveCriteria: PNRP_RESOLVE_CRITERIA, + pub dwFlags: u32, + pub saHint: super::super::Networking::WinSock::SOCKET_ADDRESS, + pub enNameState: PNRP_REGISTERED_ID_STATE, + pub enExtendedPayloadType: PNRP_EXTENDED_PAYLOAD_TYPE, + pub Anonymous: PNRPINFO_V2_0, +} +#[cfg(all(feature = "Win32_Networking_WinSock", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for PNRPINFO_V2 {} +#[cfg(all(feature = "Win32_Networking_WinSock", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for PNRPINFO_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Networking_WinSock", feature = "Win32_System_Com"))] +pub union PNRPINFO_V2_0 { + pub blobPayload: super::super::System::Com::BLOB, + pub pwszPayload: ::windows_sys::core::PWSTR, +} +#[cfg(all(feature = "Win32_Networking_WinSock", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for PNRPINFO_V2_0 {} +#[cfg(all(feature = "Win32_Networking_WinSock", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for PNRPINFO_V2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PNRP_CLOUD_ID { + pub AddressFamily: i32, + pub Scope: PNRP_SCOPE, + pub ScopeId: u32, +} +impl ::core::marker::Copy for PNRP_CLOUD_ID {} +impl ::core::clone::Clone for PNRP_CLOUD_ID { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub type DRT_BOOTSTRAP_RESOLVE_CALLBACK = ::core::option::Option ()>; +pub type PFNPEER_FREE_SECURITY_DATA = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PFNPEER_ON_PASSWORD_AUTH_FAILED = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNPEER_SECURE_RECORD = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNPEER_VALIDATE_RECORD = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/QoS/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/QoS/mod.rs new file mode 100644 index 000000000..ca2a04c83 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/QoS/mod.rs @@ -0,0 +1,2110 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("qwave.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn QOSAddSocketToFlow(qoshandle : super::super::Foundation:: HANDLE, socket : super::super::Networking::WinSock:: SOCKET, destaddr : *const super::super::Networking::WinSock:: SOCKADDR, traffictype : QOS_TRAFFIC_TYPE, flags : u32, flowid : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("qwave.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn QOSCancel(qoshandle : super::super::Foundation:: HANDLE, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("qwave.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QOSCloseHandle(qoshandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("qwave.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QOSCreateHandle(version : *const QOS_VERSION, qoshandle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("qwave.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QOSEnumerateFlows(qoshandle : super::super::Foundation:: HANDLE, size : *mut u32, buffer : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("qwave.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn QOSNotifyFlow(qoshandle : super::super::Foundation:: HANDLE, flowid : u32, operation : QOS_NOTIFY_FLOW, size : *mut u32, buffer : *mut ::core::ffi::c_void, flags : u32, overlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("qwave.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn QOSQueryFlow(qoshandle : super::super::Foundation:: HANDLE, flowid : u32, operation : QOS_QUERY_FLOW, size : *mut u32, buffer : *mut ::core::ffi::c_void, flags : u32, overlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("qwave.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn QOSRemoveSocketFromFlow(qoshandle : super::super::Foundation:: HANDLE, socket : super::super::Networking::WinSock:: SOCKET, flowid : u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("qwave.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn QOSSetFlow(qoshandle : super::super::Foundation:: HANDLE, flowid : u32, operation : QOS_SET_FLOW, size : u32, buffer : *const ::core::ffi::c_void, flags : u32, overlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("qwave.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn QOSStartTrackingClient(qoshandle : super::super::Foundation:: HANDLE, destaddr : *const super::super::Networking::WinSock:: SOCKADDR, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("qwave.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn QOSStopTrackingClient(qoshandle : super::super::Foundation:: HANDLE, destaddr : *const super::super::Networking::WinSock:: SOCKADDR, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TcAddFilter(flowhandle : super::super::Foundation:: HANDLE, pgenericfilter : *const TC_GEN_FILTER, pfilterhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn TcAddFlow(ifchandle : super::super::Foundation:: HANDLE, clflowctx : super::super::Foundation:: HANDLE, flags : u32, pgenericflow : *const TC_GEN_FLOW, pflowhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TcCloseInterface(ifchandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TcDeleteFilter(filterhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TcDeleteFlow(flowhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TcDeregisterClient(clienthandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn TcEnumerateFlows(ifchandle : super::super::Foundation:: HANDLE, penumhandle : *mut super::super::Foundation:: HANDLE, pflowcount : *mut u32, pbufsize : *mut u32, buffer : *mut ENUMERATION_BUFFER) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn TcEnumerateInterfaces(clienthandle : super::super::Foundation:: HANDLE, pbuffersize : *mut u32, interfacebuffer : *mut TC_IFC_DESCRIPTOR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TcGetFlowNameA(flowhandle : super::super::Foundation:: HANDLE, strsize : u32, pflowname : ::windows_sys::core::PSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TcGetFlowNameW(flowhandle : super::super::Foundation:: HANDLE, strsize : u32, pflowname : ::windows_sys::core::PWSTR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn TcModifyFlow(flowhandle : super::super::Foundation:: HANDLE, pgenericflow : *const TC_GEN_FLOW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TcOpenInterfaceA(pinterfacename : ::windows_sys::core::PCSTR, clienthandle : super::super::Foundation:: HANDLE, clifcctx : super::super::Foundation:: HANDLE, pifchandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TcOpenInterfaceW(pinterfacename : ::windows_sys::core::PCWSTR, clienthandle : super::super::Foundation:: HANDLE, clifcctx : super::super::Foundation:: HANDLE, pifchandle : *mut super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("traffic.dll" "system" fn TcQueryFlowA(pflowname : ::windows_sys::core::PCSTR, pguidparam : *const ::windows_sys::core::GUID, pbuffersize : *mut u32, buffer : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("traffic.dll" "system" fn TcQueryFlowW(pflowname : ::windows_sys::core::PCWSTR, pguidparam : *const ::windows_sys::core::GUID, pbuffersize : *mut u32, buffer : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TcQueryInterface(ifchandle : super::super::Foundation:: HANDLE, pguidparam : *const ::windows_sys::core::GUID, notifychange : super::super::Foundation:: BOOLEAN, pbuffersize : *mut u32, buffer : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TcRegisterClient(tciversion : u32, clregctx : super::super::Foundation:: HANDLE, clienthandlerlist : *const TCI_CLIENT_FUNC_LIST, pclienthandle : *mut super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("traffic.dll" "system" fn TcSetFlowA(pflowname : ::windows_sys::core::PCSTR, pguidparam : *const ::windows_sys::core::GUID, buffersize : u32, buffer : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("traffic.dll" "system" fn TcSetFlowW(pflowname : ::windows_sys::core::PCWSTR, pguidparam : *const ::windows_sys::core::GUID, buffersize : u32, buffer : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("traffic.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TcSetInterface(ifchandle : super::super::Foundation:: HANDLE, pguidparam : *const ::windows_sys::core::GUID, buffersize : u32, buffer : *const ::core::ffi::c_void) -> u32); +pub const ABLE_TO_RECV_RSVP: u32 = 50002u32; +pub const ADM_CTRL_FAILED: u32 = 3u32; +pub const AD_FLAG_BREAK_BIT: u32 = 1u32; +pub const ALLOWED_TO_SEND_DATA: u32 = 50001u32; +pub const ANY_DEST_ADDR: u32 = 4294967295u32; +pub const CONTROLLED_DELAY_SERV: u32 = 4u32; +pub const CONTROLLED_LOAD_SERV: u32 = 5u32; +pub const CREDENTIAL_SUB_TYPE_ASCII_ID: u32 = 1u32; +pub const CREDENTIAL_SUB_TYPE_KERBEROS_TKT: u32 = 3u32; +pub const CREDENTIAL_SUB_TYPE_PGP_CERT: u32 = 5u32; +pub const CREDENTIAL_SUB_TYPE_UNICODE_ID: u32 = 2u32; +pub const CREDENTIAL_SUB_TYPE_X509_V3_CERT: u32 = 4u32; +pub const CURRENT_TCI_VERSION: u32 = 2u32; +pub const DD_TCP_DEVICE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Device\\Tcp"); +pub const DUP_RESULTS: u32 = 4u32; +pub const END_TO_END_QOSABILITY: u32 = 50006u32; +pub const ERROR_ADDRESS_TYPE_NOT_SUPPORTED: u32 = 7511u32; +pub const ERROR_DS_MAPPING_EXISTS: u32 = 7518u32; +pub const ERROR_DUPLICATE_FILTER: u32 = 7509u32; +pub const ERROR_FILTER_CONFLICT: u32 = 7510u32; +pub const ERROR_INCOMPATABLE_QOS: u32 = 7513u32; +pub const ERROR_INCOMPATIBLE_TCI_VERSION: u32 = 7501u32; +pub const ERROR_INVALID_ADDRESS_TYPE: u32 = 7508u32; +pub const ERROR_INVALID_DIFFSERV_FLOW: u32 = 7517u32; +pub const ERROR_INVALID_DS_CLASS: u32 = 7520u32; +pub const ERROR_INVALID_FLOW_MODE: u32 = 7516u32; +pub const ERROR_INVALID_PEAK_RATE: u32 = 7504u32; +pub const ERROR_INVALID_QOS_PRIORITY: u32 = 7506u32; +pub const ERROR_INVALID_SD_MODE: u32 = 7505u32; +pub const ERROR_INVALID_SERVICE_TYPE: u32 = 7502u32; +pub const ERROR_INVALID_SHAPE_RATE: u32 = 7519u32; +pub const ERROR_INVALID_TOKEN_RATE: u32 = 7503u32; +pub const ERROR_INVALID_TRAFFIC_CLASS: u32 = 7507u32; +pub const ERROR_NO_MORE_INFO: u32 = 1u32; +pub const ERROR_SPECF_InPlace: u32 = 1u32; +pub const ERROR_SPECF_NotGuilty: u32 = 2u32; +pub const ERROR_TC_NOT_SUPPORTED: u32 = 7514u32; +pub const ERROR_TC_OBJECT_LENGTH_INVALID: u32 = 7515u32; +pub const ERROR_TC_SUPPORTED_OBJECTS_EXIST: u32 = 7512u32; +pub const ERROR_TOO_MANY_CLIENTS: u32 = 7521u32; +pub const ERR_FORWARD_OK: u32 = 32768u32; +pub const ERR_Usage_globl: u32 = 0u32; +pub const ERR_Usage_local: u32 = 16u32; +pub const ERR_Usage_serv: u32 = 17u32; +pub const ERR_global_mask: u32 = 4095u32; +pub const EXPIRED_CREDENTIAL: u32 = 4u32; +pub const FILTERSPECV4: FilterType = 1i32; +pub const FILTERSPECV4_GPI: FilterType = 4i32; +pub const FILTERSPECV6: FilterType = 2i32; +pub const FILTERSPECV6_FLOW: FilterType = 3i32; +pub const FILTERSPECV6_GPI: FilterType = 5i32; +pub const FILTERSPEC_END: FilterType = 6i32; +pub const FLOW_DURATION: u32 = 5u32; +pub const FORCE_IMMEDIATE_REFRESH: u32 = 1u32; +pub const FSCTL_TCP_BASE: u32 = 18u32; +pub const FVEB_UNLOCK_FLAG_AUK_OSFVEINFO: u32 = 512u32; +pub const FVEB_UNLOCK_FLAG_CACHED: u32 = 1u32; +pub const FVEB_UNLOCK_FLAG_EXTERNAL: u32 = 32u32; +pub const FVEB_UNLOCK_FLAG_MEDIA: u32 = 2u32; +pub const FVEB_UNLOCK_FLAG_NBP: u32 = 256u32; +pub const FVEB_UNLOCK_FLAG_NONE: u32 = 0u32; +pub const FVEB_UNLOCK_FLAG_PASSPHRASE: u32 = 128u32; +pub const FVEB_UNLOCK_FLAG_PIN: u32 = 16u32; +pub const FVEB_UNLOCK_FLAG_RECOVERY: u32 = 64u32; +pub const FVEB_UNLOCK_FLAG_TPM: u32 = 4u32; +pub const GENERAL_INFO: u32 = 1u32; +pub const GQOS_API: u32 = 56400u32; +pub const GQOS_ERRORCODE_UNKNOWN: u32 = 4294967295u32; +pub const GQOS_ERRORVALUE_UNKNOWN: u32 = 4294967295u32; +pub const GQOS_KERNEL_TC: u32 = 56700u32; +pub const GQOS_KERNEL_TC_SYS: u32 = 56500u32; +pub const GQOS_NET_ADMISSION: u32 = 56100u32; +pub const GQOS_NET_POLICY: u32 = 56200u32; +pub const GQOS_NO_ERRORCODE: u32 = 0u32; +pub const GQOS_NO_ERRORVALUE: u32 = 0u32; +pub const GQOS_RSVP: u32 = 56300u32; +pub const GQOS_RSVP_SYS: u32 = 56600u32; +pub const GUARANTEED_SERV: u32 = 2u32; +pub const GUAR_ADSPARM_C: i32 = 131i32; +pub const GUAR_ADSPARM_Csum: i32 = 135i32; +pub const GUAR_ADSPARM_Ctot: i32 = 133i32; +pub const GUAR_ADSPARM_D: i32 = 132i32; +pub const GUAR_ADSPARM_Dsum: i32 = 136i32; +pub const GUAR_ADSPARM_Dtot: i32 = 134i32; +pub const GUID_QOS_BESTEFFORT_BANDWIDTH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xed885290_40ec_11d1_2c91_00aa00574915); +pub const GUID_QOS_ENABLE_AVG_STATS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbafb6d11_27c4_4801_a46f_ef8080c188c8); +pub const GUID_QOS_ENABLE_WINDOW_ADJUSTMENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaa966725_d3e9_4c55_b335_2a00279a1e64); +pub const GUID_QOS_FLOW_8021P_CONFORMING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x08c1e013_fcd2_11d2_be1e_00a0c99ee63b); +pub const GUID_QOS_FLOW_8021P_NONCONFORMING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x09023f91_fcd2_11d2_be1e_00a0c99ee63b); +pub const GUID_QOS_FLOW_COUNT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1147f880_40ed_11d1_2c91_00aa00574915); +pub const GUID_QOS_FLOW_IP_CONFORMING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x07f99a8b_fcd2_11d2_be1e_00a0c99ee63b); +pub const GUID_QOS_FLOW_IP_NONCONFORMING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x087a5987_fcd2_11d2_be1e_00a0c99ee63b); +pub const GUID_QOS_FLOW_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c82290a_515a_11d2_8e58_00c04fc9bfcb); +pub const GUID_QOS_ISSLOW_FLOW: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xabf273a4_ee07_11d2_be1b_00a0c99ee63b); +pub const GUID_QOS_LATENCY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfc408ef0_40ec_11d1_2c91_00aa00574915); +pub const GUID_QOS_MAX_OUTSTANDING_SENDS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x161ffa86_6120_11d1_2c91_00aa00574915); +pub const GUID_QOS_NON_BESTEFFORT_LIMIT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x185c44e0_40ed_11d1_2c91_00aa00574915); +pub const GUID_QOS_REMAINING_BANDWIDTH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc4c51720_40ec_11d1_2c91_00aa00574915); +pub const GUID_QOS_STATISTICS_BUFFER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbb2c0980_e900_11d1_b07e_0080c71382bf); +pub const GUID_QOS_TIMER_RESOLUTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba10cc88_f13e_11d2_be1b_00a0c99ee63b); +pub const HIGHLY_DELAY_SENSITIVE: u32 = 4294967294u32; +pub const IDENTITY_CHANGED: u32 = 5u32; +pub const IF_MIB_STATS_ID: u32 = 1u32; +pub const INFO_NOT_AVAILABLE: u32 = 4294967295u32; +pub const INSUFFICIENT_PRIVILEGES: u32 = 3u32; +pub const INTSERV_VERSION0: u32 = 0u32; +pub const INTSERV_VERS_MASK: u32 = 240u32; +pub const INV_LPM_HANDLE: u32 = 1u32; +pub const INV_REQ_HANDLE: u32 = 3u32; +pub const INV_RESULTS: u32 = 5u32; +pub const IP_INTFC_INFO_ID: u32 = 259u32; +pub const IP_MIB_ADDRTABLE_ENTRY_ID: u32 = 258u32; +pub const IP_MIB_STATS_ID: u32 = 1u32; +pub const ISPH_FLG_INV: u32 = 128u32; +pub const ISSH_BREAK_BIT: u32 = 128u32; +pub const IS_GUAR_RSPEC: i32 = 130i32; +pub const IS_WKP_COMPOSED_MTU: int_serv_wkp = 10i32; +pub const IS_WKP_HOP_CNT: int_serv_wkp = 4i32; +pub const IS_WKP_MIN_LATENCY: int_serv_wkp = 8i32; +pub const IS_WKP_PATH_BW: int_serv_wkp = 6i32; +pub const IS_WKP_Q_TSPEC: int_serv_wkp = 128i32; +pub const IS_WKP_TB_TSPEC: int_serv_wkp = 127i32; +pub const LINE_RATE: u32 = 50003u32; +pub const LOCAL_QOSABILITY: u32 = 50005u32; +pub const LOCAL_TRAFFIC_CONTROL: u32 = 50004u32; +pub const LPM_API_VERSION_1: u32 = 1u32; +pub const LPM_OK: u32 = 0u32; +pub const LPM_PE_ALL_TYPES: u32 = 0u32; +pub const LPM_PE_APP_IDENTITY: u32 = 3u32; +pub const LPM_PE_USER_IDENTITY: u32 = 2u32; +pub const LPM_RESULT_DEFER: u32 = 1u32; +pub const LPM_RESULT_READY: u32 = 0u32; +pub const LPM_TIME_OUT: u32 = 2u32; +pub const LPV_DONT_CARE: u32 = 65534u32; +pub const LPV_DROP_MSG: u32 = 65533u32; +pub const LPV_MAX_PRIORITY: u32 = 65280u32; +pub const LPV_MIN_PRIORITY: u32 = 1u32; +pub const LPV_REJECT: u32 = 65535u32; +pub const LPV_RESERVED: u32 = 0u32; +pub const MAX_HSP_UPGRADE_FILENAME_LENGTH: u32 = 64u32; +pub const MAX_PHYSADDR_SIZE: u32 = 8u32; +pub const MAX_STRING_LENGTH: u32 = 256u32; +pub const MODERATELY_DELAY_SENSITIVE: u32 = 4294967293u32; +pub const OSDEVICE_TYPE_BLOCKIO_CDROM: u32 = 65539u32; +pub const OSDEVICE_TYPE_BLOCKIO_FILE: u32 = 65541u32; +pub const OSDEVICE_TYPE_BLOCKIO_HARDDISK: u32 = 65537u32; +pub const OSDEVICE_TYPE_BLOCKIO_PARTITION: u32 = 65540u32; +pub const OSDEVICE_TYPE_BLOCKIO_RAMDISK: u32 = 65542u32; +pub const OSDEVICE_TYPE_BLOCKIO_REMOVABLEDISK: u32 = 65538u32; +pub const OSDEVICE_TYPE_BLOCKIO_VIRTUALHARDDISK: u32 = 65543u32; +pub const OSDEVICE_TYPE_CIMFS: u32 = 393216u32; +pub const OSDEVICE_TYPE_COMPOSITE: u32 = 327680u32; +pub const OSDEVICE_TYPE_SERIAL: u32 = 131072u32; +pub const OSDEVICE_TYPE_UDP: u32 = 196608u32; +pub const OSDEVICE_TYPE_UNKNOWN: u32 = 0u32; +pub const OSDEVICE_TYPE_VMBUS: u32 = 262144u32; +pub const Opt_Distinct: u32 = 8u32; +pub const Opt_Explicit: u32 = 2u32; +pub const Opt_Share_mask: u32 = 24u32; +pub const Opt_Shared: u32 = 16u32; +pub const Opt_SndSel_mask: u32 = 7u32; +pub const Opt_Wildcard: u32 = 1u32; +pub const PCM_VERSION_1: u32 = 1u32; +pub const PE_ATTRIB_TYPE_CREDENTIAL: u32 = 2u32; +pub const PE_ATTRIB_TYPE_POLICY_LOCATOR: u32 = 1u32; +pub const PE_TYPE_APPID: u32 = 3u32; +pub const POLICY_ERRV_CRAZY_FLOWSPEC: u32 = 57u32; +pub const POLICY_ERRV_EXPIRED_CREDENTIALS: u32 = 4u32; +pub const POLICY_ERRV_EXPIRED_USER_TOKEN: u32 = 51u32; +pub const POLICY_ERRV_GLOBAL_DEF_FLOW_COUNT: u32 = 1u32; +pub const POLICY_ERRV_GLOBAL_DEF_FLOW_DURATION: u32 = 9u32; +pub const POLICY_ERRV_GLOBAL_DEF_FLOW_RATE: u32 = 17u32; +pub const POLICY_ERRV_GLOBAL_DEF_PEAK_RATE: u32 = 25u32; +pub const POLICY_ERRV_GLOBAL_DEF_SUM_FLOW_RATE: u32 = 33u32; +pub const POLICY_ERRV_GLOBAL_DEF_SUM_PEAK_RATE: u32 = 41u32; +pub const POLICY_ERRV_GLOBAL_GRP_FLOW_COUNT: u32 = 2u32; +pub const POLICY_ERRV_GLOBAL_GRP_FLOW_DURATION: u32 = 10u32; +pub const POLICY_ERRV_GLOBAL_GRP_FLOW_RATE: u32 = 18u32; +pub const POLICY_ERRV_GLOBAL_GRP_PEAK_RATE: u32 = 26u32; +pub const POLICY_ERRV_GLOBAL_GRP_SUM_FLOW_RATE: u32 = 34u32; +pub const POLICY_ERRV_GLOBAL_GRP_SUM_PEAK_RATE: u32 = 42u32; +pub const POLICY_ERRV_GLOBAL_UNAUTH_USER_FLOW_COUNT: u32 = 4u32; +pub const POLICY_ERRV_GLOBAL_UNAUTH_USER_FLOW_DURATION: u32 = 12u32; +pub const POLICY_ERRV_GLOBAL_UNAUTH_USER_FLOW_RATE: u32 = 20u32; +pub const POLICY_ERRV_GLOBAL_UNAUTH_USER_PEAK_RATE: u32 = 28u32; +pub const POLICY_ERRV_GLOBAL_UNAUTH_USER_SUM_FLOW_RATE: u32 = 36u32; +pub const POLICY_ERRV_GLOBAL_UNAUTH_USER_SUM_PEAK_RATE: u32 = 44u32; +pub const POLICY_ERRV_GLOBAL_USER_FLOW_COUNT: u32 = 3u32; +pub const POLICY_ERRV_GLOBAL_USER_FLOW_DURATION: u32 = 11u32; +pub const POLICY_ERRV_GLOBAL_USER_FLOW_RATE: u32 = 19u32; +pub const POLICY_ERRV_GLOBAL_USER_PEAK_RATE: u32 = 27u32; +pub const POLICY_ERRV_GLOBAL_USER_SUM_FLOW_RATE: u32 = 35u32; +pub const POLICY_ERRV_GLOBAL_USER_SUM_PEAK_RATE: u32 = 43u32; +pub const POLICY_ERRV_IDENTITY_CHANGED: u32 = 5u32; +pub const POLICY_ERRV_INSUFFICIENT_PRIVILEGES: u32 = 3u32; +pub const POLICY_ERRV_NO_ACCEPTS: u32 = 55u32; +pub const POLICY_ERRV_NO_MEMORY: u32 = 56u32; +pub const POLICY_ERRV_NO_MORE_INFO: u32 = 1u32; +pub const POLICY_ERRV_NO_PRIVILEGES: u32 = 50u32; +pub const POLICY_ERRV_NO_RESOURCES: u32 = 52u32; +pub const POLICY_ERRV_PRE_EMPTED: u32 = 53u32; +pub const POLICY_ERRV_SUBNET_DEF_FLOW_COUNT: u32 = 5u32; +pub const POLICY_ERRV_SUBNET_DEF_FLOW_DURATION: u32 = 13u32; +pub const POLICY_ERRV_SUBNET_DEF_FLOW_RATE: u32 = 21u32; +pub const POLICY_ERRV_SUBNET_DEF_PEAK_RATE: u32 = 29u32; +pub const POLICY_ERRV_SUBNET_DEF_SUM_FLOW_RATE: u32 = 37u32; +pub const POLICY_ERRV_SUBNET_DEF_SUM_PEAK_RATE: u32 = 45u32; +pub const POLICY_ERRV_SUBNET_GRP_FLOW_COUNT: u32 = 6u32; +pub const POLICY_ERRV_SUBNET_GRP_FLOW_DURATION: u32 = 14u32; +pub const POLICY_ERRV_SUBNET_GRP_FLOW_RATE: u32 = 22u32; +pub const POLICY_ERRV_SUBNET_GRP_PEAK_RATE: u32 = 30u32; +pub const POLICY_ERRV_SUBNET_GRP_SUM_FLOW_RATE: u32 = 38u32; +pub const POLICY_ERRV_SUBNET_GRP_SUM_PEAK_RATE: u32 = 46u32; +pub const POLICY_ERRV_SUBNET_UNAUTH_USER_FLOW_COUNT: u32 = 8u32; +pub const POLICY_ERRV_SUBNET_UNAUTH_USER_FLOW_DURATION: u32 = 16u32; +pub const POLICY_ERRV_SUBNET_UNAUTH_USER_FLOW_RATE: u32 = 24u32; +pub const POLICY_ERRV_SUBNET_UNAUTH_USER_PEAK_RATE: u32 = 32u32; +pub const POLICY_ERRV_SUBNET_UNAUTH_USER_SUM_FLOW_RATE: u32 = 40u32; +pub const POLICY_ERRV_SUBNET_UNAUTH_USER_SUM_PEAK_RATE: u32 = 48u32; +pub const POLICY_ERRV_SUBNET_USER_FLOW_COUNT: u32 = 7u32; +pub const POLICY_ERRV_SUBNET_USER_FLOW_DURATION: u32 = 15u32; +pub const POLICY_ERRV_SUBNET_USER_FLOW_RATE: u32 = 23u32; +pub const POLICY_ERRV_SUBNET_USER_PEAK_RATE: u32 = 31u32; +pub const POLICY_ERRV_SUBNET_USER_SUM_FLOW_RATE: u32 = 39u32; +pub const POLICY_ERRV_SUBNET_USER_SUM_PEAK_RATE: u32 = 47u32; +pub const POLICY_ERRV_UNKNOWN: u32 = 0u32; +pub const POLICY_ERRV_UNKNOWN_USER: u32 = 49u32; +pub const POLICY_ERRV_UNSUPPORTED_CREDENTIAL_TYPE: u32 = 2u32; +pub const POLICY_ERRV_USER_CHANGED: u32 = 54u32; +pub const POLICY_LOCATOR_SUB_TYPE_ASCII_DN: u32 = 1u32; +pub const POLICY_LOCATOR_SUB_TYPE_ASCII_DN_ENC: u32 = 3u32; +pub const POLICY_LOCATOR_SUB_TYPE_UNICODE_DN: u32 = 2u32; +pub const POLICY_LOCATOR_SUB_TYPE_UNICODE_DN_ENC: u32 = 4u32; +pub const POSITIVE_INFINITY_RATE: u32 = 4294967294u32; +pub const PREDICTIVE_SERV: u32 = 3u32; +pub const QOSFlowRateCongestion: QOS_FLOWRATE_REASON = 2i32; +pub const QOSFlowRateContentChange: QOS_FLOWRATE_REASON = 1i32; +pub const QOSFlowRateHigherContentEncoding: QOS_FLOWRATE_REASON = 3i32; +pub const QOSFlowRateNotApplicable: QOS_FLOWRATE_REASON = 0i32; +pub const QOSFlowRateUserCaused: QOS_FLOWRATE_REASON = 4i32; +pub const QOSNotifyAvailable: QOS_NOTIFY_FLOW = 2i32; +pub const QOSNotifyCongested: QOS_NOTIFY_FLOW = 0i32; +pub const QOSNotifyUncongested: QOS_NOTIFY_FLOW = 1i32; +pub const QOSQueryFlowFundamentals: QOS_QUERY_FLOW = 0i32; +pub const QOSQueryOutgoingRate: QOS_QUERY_FLOW = 2i32; +pub const QOSQueryPacketPriority: QOS_QUERY_FLOW = 1i32; +pub const QOSSPBASE: u32 = 50000u32; +pub const QOSSP_ERR_BASE: u32 = 56000u32; +pub const QOSSetOutgoingDSCPValue: QOS_SET_FLOW = 2i32; +pub const QOSSetOutgoingRate: QOS_SET_FLOW = 1i32; +pub const QOSSetTrafficType: QOS_SET_FLOW = 0i32; +pub const QOSShapeAndMark: QOS_SHAPING = 1i32; +pub const QOSShapeOnly: QOS_SHAPING = 0i32; +pub const QOSTrafficTypeAudioVideo: QOS_TRAFFIC_TYPE = 3i32; +pub const QOSTrafficTypeBackground: QOS_TRAFFIC_TYPE = 1i32; +pub const QOSTrafficTypeBestEffort: QOS_TRAFFIC_TYPE = 0i32; +pub const QOSTrafficTypeControl: QOS_TRAFFIC_TYPE = 5i32; +pub const QOSTrafficTypeExcellentEffort: QOS_TRAFFIC_TYPE = 2i32; +pub const QOSTrafficTypeVoice: QOS_TRAFFIC_TYPE = 4i32; +pub const QOSUseNonConformantMarkings: QOS_SHAPING = 2i32; +pub const QOS_GENERAL_ID_BASE: u32 = 2000u32; +pub const QOS_MAX_OBJECT_STRING_LENGTH: u32 = 256u32; +pub const QOS_NON_ADAPTIVE_FLOW: u32 = 2u32; +pub const QOS_NOT_SPECIFIED: u32 = 4294967295u32; +pub const QOS_OUTGOING_DEFAULT_MINIMUM_BANDWIDTH: u32 = 4294967295u32; +pub const QOS_QUERYFLOW_FRESH: u32 = 1u32; +pub const QOS_TRAFFIC_GENERAL_ID_BASE: u32 = 4000u32; +pub const QUALITATIVE_SERV: u32 = 6u32; +pub const RCVD_PATH_TEAR: u32 = 1u32; +pub const RCVD_RESV_TEAR: u32 = 2u32; +pub const RESOURCES_ALLOCATED: u32 = 1u32; +pub const RESOURCES_MODIFIED: u32 = 2u32; +pub const RSVP_DEFAULT_STYLE: u32 = 0u32; +pub const RSVP_Err_ADMISSION: u32 = 1u32; +pub const RSVP_Err_AMBIG_FILTER: u32 = 9u32; +pub const RSVP_Err_API_ERROR: u32 = 20u32; +pub const RSVP_Err_BAD_DSTPORT: u32 = 7u32; +pub const RSVP_Err_BAD_SNDPORT: u32 = 8u32; +pub const RSVP_Err_BAD_STYLE: u32 = 5u32; +pub const RSVP_Err_NONE: u32 = 0u32; +pub const RSVP_Err_NO_PATH: u32 = 3u32; +pub const RSVP_Err_NO_SENDER: u32 = 4u32; +pub const RSVP_Err_POLICY: u32 = 2u32; +pub const RSVP_Err_PREEMPTED: u32 = 12u32; +pub const RSVP_Err_RSVP_SYS_ERROR: u32 = 23u32; +pub const RSVP_Err_TC_ERROR: u32 = 21u32; +pub const RSVP_Err_TC_SYS_ERROR: u32 = 22u32; +pub const RSVP_Err_UNKNOWN_CTYPE: u32 = 14u32; +pub const RSVP_Err_UNKNOWN_STYLE: u32 = 6u32; +pub const RSVP_Err_UNKN_OBJ_CLASS: u32 = 13u32; +pub const RSVP_Erv_API: u32 = 2u32; +pub const RSVP_Erv_Bandwidth: u32 = 2u32; +pub const RSVP_Erv_Bucket_szie: u32 = 32770u32; +pub const RSVP_Erv_Conflict_Serv: u32 = 1u32; +pub const RSVP_Erv_Crazy_Flowspec: u32 = 3u32; +pub const RSVP_Erv_Crazy_Tspec: u32 = 4u32; +pub const RSVP_Erv_DelayBnd: u32 = 1u32; +pub const RSVP_Erv_Flow_Rate: u32 = 32769u32; +pub const RSVP_Erv_MEMORY: u32 = 1u32; +pub const RSVP_Erv_MTU: u32 = 3u32; +pub const RSVP_Erv_Min_Policied_size: u32 = 32772u32; +pub const RSVP_Erv_No_Serv: u32 = 2u32; +pub const RSVP_Erv_Nonev: u32 = 0u32; +pub const RSVP_Erv_Other: u32 = 0u32; +pub const RSVP_Erv_Peak_Rate: u32 = 32771u32; +pub const RSVP_FIXED_FILTER_STYLE: u32 = 2u32; +pub const RSVP_OBJECT_ID_BASE: u32 = 1000u32; +pub const RSVP_PATH: u32 = 1u32; +pub const RSVP_PATH_ERR: u32 = 3u32; +pub const RSVP_PATH_TEAR: u32 = 5u32; +pub const RSVP_RESV: u32 = 2u32; +pub const RSVP_RESV_ERR: u32 = 4u32; +pub const RSVP_RESV_TEAR: u32 = 6u32; +pub const RSVP_SHARED_EXPLICIT_STYLE: u32 = 3u32; +pub const RSVP_WILDCARD_STYLE: u32 = 1u32; +pub const SERVICETYPE_BESTEFFORT: u32 = 1u32; +pub const SERVICETYPE_CONTROLLEDLOAD: u32 = 2u32; +pub const SERVICETYPE_GENERAL_INFORMATION: u32 = 5u32; +pub const SERVICETYPE_GUARANTEED: u32 = 3u32; +pub const SERVICETYPE_NETWORK_CONTROL: u32 = 10u32; +pub const SERVICETYPE_NETWORK_UNAVAILABLE: u32 = 4u32; +pub const SERVICETYPE_NOCHANGE: u32 = 6u32; +pub const SERVICETYPE_NONCONFORMING: u32 = 9u32; +pub const SERVICETYPE_NOTRAFFIC: u32 = 0u32; +pub const SERVICETYPE_QUALITATIVE: u32 = 13u32; +pub const SERVICE_BESTEFFORT: u32 = 2147549184u32; +pub const SERVICE_CONTROLLEDLOAD: u32 = 2147614720u32; +pub const SERVICE_GUARANTEED: u32 = 2147745792u32; +pub const SERVICE_NO_QOS_SIGNALING: u32 = 1073741824u32; +pub const SERVICE_NO_TRAFFIC_CONTROL: u32 = 2164260864u32; +pub const SERVICE_QUALITATIVE: u32 = 2149580800u32; +pub const SESSFLG_E_Police: u32 = 1u32; +pub const SIPAERROR_FIRMWAREFAILURE: u32 = 196609u32; +pub const SIPAERROR_INTERNALFAILURE: u32 = 196611u32; +pub const SIPAEVENTTYPE_AGGREGATION: u32 = 1073741824u32; +pub const SIPAEVENTTYPE_AUTHORITY: u32 = 393216u32; +pub const SIPAEVENTTYPE_CONTAINER: u32 = 65536u32; +pub const SIPAEVENTTYPE_DRTM: u32 = 786432u32; +pub const SIPAEVENTTYPE_ELAM: u32 = 589824u32; +pub const SIPAEVENTTYPE_ERROR: u32 = 196608u32; +pub const SIPAEVENTTYPE_INFORMATION: u32 = 131072u32; +pub const SIPAEVENTTYPE_KSR: u32 = 720896u32; +pub const SIPAEVENTTYPE_LOADEDMODULE: u32 = 458752u32; +pub const SIPAEVENTTYPE_NONMEASURED: u32 = 2147483648u32; +pub const SIPAEVENTTYPE_OSPARAMETER: u32 = 327680u32; +pub const SIPAEVENTTYPE_PREOSPARAMETER: u32 = 262144u32; +pub const SIPAEVENTTYPE_TRUSTPOINT: u32 = 524288u32; +pub const SIPAEVENTTYPE_VBS: u32 = 655360u32; +pub const SIPAEVENT_APPLICATION_RETURN: u32 = 131076u32; +pub const SIPAEVENT_APPLICATION_SVN: u32 = 131081u32; +pub const SIPAEVENT_AUTHENTICODEHASH: u32 = 458756u32; +pub const SIPAEVENT_AUTHORITYISSUER: u32 = 458757u32; +pub const SIPAEVENT_AUTHORITYPUBKEY: u32 = 393218u32; +pub const SIPAEVENT_AUTHORITYPUBLISHER: u32 = 458760u32; +pub const SIPAEVENT_AUTHORITYSERIAL: u32 = 458758u32; +pub const SIPAEVENT_AUTHORITYSHA1THUMBPRINT: u32 = 458761u32; +pub const SIPAEVENT_BITLOCKER_UNLOCK: u32 = 131077u32; +pub const SIPAEVENT_BOOTCOUNTER: u32 = 131074u32; +pub const SIPAEVENT_BOOTDEBUGGING: u32 = 262145u32; +pub const SIPAEVENT_BOOT_REVOCATION_LIST: u32 = 262146u32; +pub const SIPAEVENT_CODEINTEGRITY: u32 = 327682u32; +pub const SIPAEVENT_COUNTERID: u32 = 131079u32; +pub const SIPAEVENT_DATAEXECUTIONPREVENTION: u32 = 327684u32; +pub const SIPAEVENT_DRIVER_LOAD_POLICY: u32 = 327694u32; +pub const SIPAEVENT_DRTM_AMD_SMM_HASH: u32 = 786435u32; +pub const SIPAEVENT_DRTM_AMD_SMM_SIGNER_KEY: u32 = 786436u32; +pub const SIPAEVENT_DRTM_SMM_LEVEL: u32 = 786434u32; +pub const SIPAEVENT_DRTM_STATE_AUTH: u32 = 786433u32; +pub const SIPAEVENT_DUMPS_DISABLED: u32 = 327717u32; +pub const SIPAEVENT_DUMP_ENCRYPTION_ENABLED: u32 = 327718u32; +pub const SIPAEVENT_DUMP_ENCRYPTION_KEY_DIGEST: u32 = 327719u32; +pub const SIPAEVENT_ELAM_CONFIGURATION: u32 = 589826u32; +pub const SIPAEVENT_ELAM_KEYNAME: u32 = 589825u32; +pub const SIPAEVENT_ELAM_MEASURED: u32 = 589828u32; +pub const SIPAEVENT_ELAM_POLICY: u32 = 589827u32; +pub const SIPAEVENT_EVENTCOUNTER: u32 = 131078u32; +pub const SIPAEVENT_FILEPATH: u32 = 458753u32; +pub const SIPAEVENT_FLIGHTSIGNING: u32 = 327713u32; +pub const SIPAEVENT_HASHALGORITHMID: u32 = 458755u32; +pub const SIPAEVENT_HIBERNATION_DISABLED: u32 = 327716u32; +pub const SIPAEVENT_HYPERVISOR_BOOT_DMA_PROTECTION: u32 = 327728u32; +pub const SIPAEVENT_HYPERVISOR_DEBUG: u32 = 327693u32; +pub const SIPAEVENT_HYPERVISOR_IOMMU_POLICY: u32 = 327692u32; +pub const SIPAEVENT_HYPERVISOR_LAUNCH_TYPE: u32 = 327690u32; +pub const SIPAEVENT_HYPERVISOR_MMIO_NX_POLICY: u32 = 327696u32; +pub const SIPAEVENT_HYPERVISOR_MSR_FILTER_POLICY: u32 = 327697u32; +pub const SIPAEVENT_HYPERVISOR_PATH: u32 = 327691u32; +pub const SIPAEVENT_IMAGEBASE: u32 = 458759u32; +pub const SIPAEVENT_IMAGESIZE: u32 = 458754u32; +pub const SIPAEVENT_IMAGEVALIDATED: u32 = 458762u32; +pub const SIPAEVENT_INFORMATION: u32 = 131073u32; +pub const SIPAEVENT_KSR_SIGNATURE: u32 = 720897u32; +pub const SIPAEVENT_LSAISO_CONFIG: u32 = 327720u32; +pub const SIPAEVENT_MODULE_HSP: u32 = 458764u32; +pub const SIPAEVENT_MODULE_SVN: u32 = 458763u32; +pub const SIPAEVENT_MORBIT_API_STATUS: u32 = 131083u32; +pub const SIPAEVENT_MORBIT_NOT_CANCELABLE: u32 = 131080u32; +pub const SIPAEVENT_NOAUTHORITY: u32 = 393217u32; +pub const SIPAEVENT_OSDEVICE: u32 = 327688u32; +pub const SIPAEVENT_OSKERNELDEBUG: u32 = 327681u32; +pub const SIPAEVENT_OS_REVOCATION_LIST: u32 = 327699u32; +pub const SIPAEVENT_PAGEFILE_ENCRYPTION_ENABLED: u32 = 327714u32; +pub const SIPAEVENT_PHYSICALADDRESSEXTENSION: u32 = 327687u32; +pub const SIPAEVENT_SAFEMODE: u32 = 327685u32; +pub const SIPAEVENT_SBCP_INFO: u32 = 327721u32; +pub const SIPAEVENT_SI_POLICY: u32 = 327695u32; +pub const SIPAEVENT_SMT_STATUS: u32 = 327700u32; +pub const SIPAEVENT_SVN_CHAIN_STATUS: u32 = 131082u32; +pub const SIPAEVENT_SYSTEMROOT: u32 = 327689u32; +pub const SIPAEVENT_TESTSIGNING: u32 = 327683u32; +pub const SIPAEVENT_TRANSFER_CONTROL: u32 = 131075u32; +pub const SIPAEVENT_VBS_DUMP_USES_AMEROOT: u32 = 655369u32; +pub const SIPAEVENT_VBS_HVCI_POLICY: u32 = 655367u32; +pub const SIPAEVENT_VBS_IOMMU_REQUIRED: u32 = 655363u32; +pub const SIPAEVENT_VBS_MANDATORY_ENFORCEMENT: u32 = 655366u32; +pub const SIPAEVENT_VBS_MICROSOFT_BOOT_CHAIN_REQUIRED: u32 = 655368u32; +pub const SIPAEVENT_VBS_MMIO_NX_REQUIRED: u32 = 655364u32; +pub const SIPAEVENT_VBS_MSR_FILTERING_REQUIRED: u32 = 655365u32; +pub const SIPAEVENT_VBS_SECUREBOOT_REQUIRED: u32 = 655362u32; +pub const SIPAEVENT_VBS_VSM_NOSECRETS_ENFORCED: u32 = 655370u32; +pub const SIPAEVENT_VBS_VSM_REQUIRED: u32 = 655361u32; +pub const SIPAEVENT_VSM_IDKS_INFO: u32 = 327715u32; +pub const SIPAEVENT_VSM_IDK_INFO: u32 = 327712u32; +pub const SIPAEVENT_VSM_LAUNCH_TYPE: u32 = 327698u32; +pub const SIPAEVENT_WINPE: u32 = 327686u32; +pub const SIPAEV_ACTION: u32 = 5u32; +pub const SIPAEV_AMD_SL_EVENT_BASE: u32 = 32768u32; +pub const SIPAEV_AMD_SL_LOAD: u32 = 32769u32; +pub const SIPAEV_AMD_SL_LOAD_1: u32 = 32774u32; +pub const SIPAEV_AMD_SL_PSP_FW_SPLT: u32 = 32770u32; +pub const SIPAEV_AMD_SL_PUB_KEY: u32 = 32772u32; +pub const SIPAEV_AMD_SL_SEPARATOR: u32 = 32775u32; +pub const SIPAEV_AMD_SL_SVN: u32 = 32773u32; +pub const SIPAEV_AMD_SL_TSME_RB_FUSE: u32 = 32771u32; +pub const SIPAEV_COMPACT_HASH: u32 = 12u32; +pub const SIPAEV_CPU_MICROCODE: u32 = 9u32; +pub const SIPAEV_EFI_ACTION: u32 = 2147483655u32; +pub const SIPAEV_EFI_BOOT_SERVICES_APPLICATION: u32 = 2147483651u32; +pub const SIPAEV_EFI_BOOT_SERVICES_DRIVER: u32 = 2147483652u32; +pub const SIPAEV_EFI_EVENT_BASE: u32 = 2147483648u32; +pub const SIPAEV_EFI_GPT_EVENT: u32 = 2147483654u32; +pub const SIPAEV_EFI_HANDOFF_TABLES: u32 = 2147483657u32; +pub const SIPAEV_EFI_HANDOFF_TABLES2: u32 = 2147483659u32; +pub const SIPAEV_EFI_HCRTM_EVENT: u32 = 2147483664u32; +pub const SIPAEV_EFI_PLATFORM_FIRMWARE_BLOB: u32 = 2147483656u32; +pub const SIPAEV_EFI_PLATFORM_FIRMWARE_BLOB2: u32 = 2147483658u32; +pub const SIPAEV_EFI_RUNTIME_SERVICES_DRIVER: u32 = 2147483653u32; +pub const SIPAEV_EFI_SPDM_FIRMWARE_BLOB: u32 = 2147483873u32; +pub const SIPAEV_EFI_SPDM_FIRMWARE_CONFIG: u32 = 2147483874u32; +pub const SIPAEV_EFI_VARIABLE_AUTHORITY: u32 = 2147483872u32; +pub const SIPAEV_EFI_VARIABLE_BOOT: u32 = 2147483650u32; +pub const SIPAEV_EFI_VARIABLE_BOOT2: u32 = 2147483660u32; +pub const SIPAEV_EFI_VARIABLE_DRIVER_CONFIG: u32 = 2147483649u32; +pub const SIPAEV_EVENT_TAG: u32 = 6u32; +pub const SIPAEV_IPL: u32 = 13u32; +pub const SIPAEV_IPL_PARTITION_DATA: u32 = 14u32; +pub const SIPAEV_NONHOST_CODE: u32 = 15u32; +pub const SIPAEV_NONHOST_CONFIG: u32 = 16u32; +pub const SIPAEV_NONHOST_INFO: u32 = 17u32; +pub const SIPAEV_NO_ACTION: u32 = 3u32; +pub const SIPAEV_OMIT_BOOT_DEVICE_EVENTS: u32 = 18u32; +pub const SIPAEV_PLATFORM_CONFIG_FLAGS: u32 = 10u32; +pub const SIPAEV_POST_CODE: u32 = 1u32; +pub const SIPAEV_PREBOOT_CERT: u32 = 0u32; +pub const SIPAEV_SEPARATOR: u32 = 4u32; +pub const SIPAEV_S_CRTM_CONTENTS: u32 = 7u32; +pub const SIPAEV_S_CRTM_VERSION: u32 = 8u32; +pub const SIPAEV_TABLE_OF_DEVICES: u32 = 11u32; +pub const SIPAEV_TXT_BIOSAC_REG_DATA: u32 = 1034u32; +pub const SIPAEV_TXT_BOOT_POL_HASH: u32 = 1050u32; +pub const SIPAEV_TXT_BPM_HASH: u32 = 1047u32; +pub const SIPAEV_TXT_BPM_INFO_HASH: u32 = 1049u32; +pub const SIPAEV_TXT_CAP_VALUE: u32 = 1279u32; +pub const SIPAEV_TXT_COLD_BOOT_BIOS_HASH: u32 = 1045u32; +pub const SIPAEV_TXT_COMBINED_HASH: u32 = 1027u32; +pub const SIPAEV_TXT_CPU_SCRTM_STAT: u32 = 1035u32; +pub const SIPAEV_TXT_ELEMENTS_HASH: u32 = 1037u32; +pub const SIPAEV_TXT_EVENT_BASE: u32 = 1024u32; +pub const SIPAEV_TXT_HASH_START: u32 = 1026u32; +pub const SIPAEV_TXT_KM_HASH: u32 = 1046u32; +pub const SIPAEV_TXT_KM_INFO_HASH: u32 = 1048u32; +pub const SIPAEV_TXT_LCP_AUTHORITIES_HASH: u32 = 1043u32; +pub const SIPAEV_TXT_LCP_CONTROL_HASH: u32 = 1036u32; +pub const SIPAEV_TXT_LCP_DETAILS_HASH: u32 = 1042u32; +pub const SIPAEV_TXT_LCP_HASH: u32 = 1041u32; +pub const SIPAEV_TXT_MLE_HASH: u32 = 1028u32; +pub const SIPAEV_TXT_NV_INFO_HASH: u32 = 1044u32; +pub const SIPAEV_TXT_OSSINITDATA_CAP_HASH: u32 = 1039u32; +pub const SIPAEV_TXT_PCR_MAPPING: u32 = 1025u32; +pub const SIPAEV_TXT_RANDOM_VALUE: u32 = 1278u32; +pub const SIPAEV_TXT_SINIT_PUBKEY_HASH: u32 = 1040u32; +pub const SIPAEV_TXT_STM_HASH: u32 = 1038u32; +pub const SIPAEV_UNUSED: u32 = 2u32; +pub const SIPAHDRSIGNATURE: u32 = 1279476311u32; +pub const SIPAKSRHDRSIGNATURE: u32 = 1297240907u32; +pub const SIPALOGVERSION: u32 = 1u32; +pub const STATE_TIMEOUT: u32 = 4u32; +pub const TCBASE: u32 = 7500u32; +pub const TC_NONCONF_BORROW: u32 = 0u32; +pub const TC_NONCONF_BORROW_PLUS: u32 = 3u32; +pub const TC_NONCONF_DISCARD: u32 = 2u32; +pub const TC_NONCONF_SHAPE: u32 = 1u32; +pub const TC_NOTIFY_FLOW_CLOSE: u32 = 5u32; +pub const TC_NOTIFY_IFC_CHANGE: u32 = 3u32; +pub const TC_NOTIFY_IFC_CLOSE: u32 = 2u32; +pub const TC_NOTIFY_IFC_UP: u32 = 1u32; +pub const TC_NOTIFY_PARAM_CHANGED: u32 = 4u32; +pub const UNSUPPORTED_CREDENTIAL_TYPE: u32 = 2u32; +pub const WBCL_DIGEST_ALG_BITMAP_SHA3_256: u32 = 32u32; +pub const WBCL_DIGEST_ALG_BITMAP_SHA3_384: u32 = 64u32; +pub const WBCL_DIGEST_ALG_BITMAP_SHA3_512: u32 = 128u32; +pub const WBCL_DIGEST_ALG_BITMAP_SHA_1: u32 = 1u32; +pub const WBCL_DIGEST_ALG_BITMAP_SHA_2_256: u32 = 2u32; +pub const WBCL_DIGEST_ALG_BITMAP_SHA_2_384: u32 = 4u32; +pub const WBCL_DIGEST_ALG_BITMAP_SHA_2_512: u32 = 8u32; +pub const WBCL_DIGEST_ALG_BITMAP_SM3_256: u32 = 16u32; +pub const WBCL_DIGEST_ALG_ID_SHA3_256: u32 = 39u32; +pub const WBCL_DIGEST_ALG_ID_SHA3_384: u32 = 40u32; +pub const WBCL_DIGEST_ALG_ID_SHA3_512: u32 = 41u32; +pub const WBCL_DIGEST_ALG_ID_SHA_1: u32 = 4u32; +pub const WBCL_DIGEST_ALG_ID_SHA_2_256: u32 = 11u32; +pub const WBCL_DIGEST_ALG_ID_SHA_2_384: u32 = 12u32; +pub const WBCL_DIGEST_ALG_ID_SHA_2_512: u32 = 13u32; +pub const WBCL_DIGEST_ALG_ID_SM3_256: u32 = 18u32; +pub const WBCL_HASH_LEN_SHA1: u32 = 20u32; +pub const WBCL_MAX_HSP_UPGRADE_HASH_LEN: u32 = 64u32; +pub const class_ADSPEC: u32 = 13u32; +pub const class_CONFIRM: u32 = 15u32; +pub const class_ERROR_SPEC: u32 = 6u32; +pub const class_FILTER_SPEC: u32 = 10u32; +pub const class_FLOWSPEC: u32 = 9u32; +pub const class_INTEGRITY: u32 = 4u32; +pub const class_IS_FLOWSPEC: u32 = 9u32; +pub const class_MAX: u32 = 15u32; +pub const class_NULL: u32 = 0u32; +pub const class_POLICY_DATA: u32 = 14u32; +pub const class_RSVP_HOP: u32 = 3u32; +pub const class_SCOPE: u32 = 7u32; +pub const class_SENDER_TEMPLATE: u32 = 11u32; +pub const class_SENDER_TSPEC: u32 = 12u32; +pub const class_SESSION: u32 = 1u32; +pub const class_SESSION_GROUP: u32 = 2u32; +pub const class_STYLE: u32 = 8u32; +pub const class_TIME_VALUES: u32 = 5u32; +pub const ctype_ADSPEC_INTSERV: u32 = 2u32; +pub const ctype_ERROR_SPEC_ipv4: u32 = 1u32; +pub const ctype_FILTER_SPEC_ipv4: u32 = 1u32; +pub const ctype_FILTER_SPEC_ipv4GPI: u32 = 4u32; +pub const ctype_FLOWSPEC_Intserv0: u32 = 2u32; +pub const ctype_POLICY_DATA: u32 = 1u32; +pub const ctype_RSVP_HOP_ipv4: u32 = 1u32; +pub const ctype_SCOPE_list_ipv4: u32 = 1u32; +pub const ctype_SENDER_TEMPLATE_ipv4: u32 = 1u32; +pub const ctype_SENDER_TEMPLATE_ipv4GPI: u32 = 4u32; +pub const ctype_SENDER_TSPEC: u32 = 2u32; +pub const ctype_SESSION_ipv4: u32 = 1u32; +pub const ctype_SESSION_ipv4GPI: u32 = 3u32; +pub const ctype_STYLE: u32 = 1u32; +pub const ioctl_code: u32 = 1u32; +pub const mCOMPANY: u32 = 402653184u32; +pub const mIOC_IN: u32 = 2147483648u32; +pub const mIOC_OUT: u32 = 1073741824u32; +pub const mIOC_VENDOR: u32 = 67108864u32; +pub type FilterType = i32; +pub type QOS_FLOWRATE_REASON = i32; +pub type QOS_NOTIFY_FLOW = i32; +pub type QOS_QUERY_FLOW = i32; +pub type QOS_SET_FLOW = i32; +pub type QOS_SHAPING = i32; +pub type QOS_TRAFFIC_TYPE = i32; +pub type int_serv_wkp = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct ADDRESS_LIST_DESCRIPTOR { + pub MediaType: u32, + pub AddressList: super::Ndis::NETWORK_ADDRESS_LIST, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for ADDRESS_LIST_DESCRIPTOR {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for ADDRESS_LIST_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADSPEC { + pub adspec_header: RsvpObjHdr, + pub adspec_body: IS_ADSPEC_BODY, +} +impl ::core::marker::Copy for ADSPEC {} +impl ::core::clone::Clone for ADSPEC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AD_GENERAL_PARAMS { + pub IntServAwareHopCount: u32, + pub PathBandwidthEstimate: u32, + pub MinimumLatency: u32, + pub PathMTU: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for AD_GENERAL_PARAMS {} +impl ::core::clone::Clone for AD_GENERAL_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AD_GUARANTEED { + pub CTotal: u32, + pub DTotal: u32, + pub CSum: u32, + pub DSum: u32, +} +impl ::core::marker::Copy for AD_GUARANTEED {} +impl ::core::clone::Clone for AD_GUARANTEED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONTROL_SERVICE { + pub Length: u32, + pub Service: u32, + pub Overrides: AD_GENERAL_PARAMS, + pub Anonymous: CONTROL_SERVICE_0, +} +impl ::core::marker::Copy for CONTROL_SERVICE {} +impl ::core::clone::Clone for CONTROL_SERVICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CONTROL_SERVICE_0 { + pub Guaranteed: AD_GUARANTEED, + pub ParamBuffer: [PARAM_BUFFER; 1], +} +impl ::core::marker::Copy for CONTROL_SERVICE_0 {} +impl ::core::clone::Clone for CONTROL_SERVICE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CtrlLoadFlowspec { + pub CL_spec_serv_hdr: IntServServiceHdr, + pub CL_spec_parm_hdr: IntServParmHdr, + pub CL_spec_parms: GenTspecParms, +} +impl ::core::marker::Copy for CtrlLoadFlowspec {} +impl ::core::clone::Clone for CtrlLoadFlowspec { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct ENUMERATION_BUFFER { + pub Length: u32, + pub OwnerProcessId: u32, + pub FlowNameLength: u16, + pub FlowName: [u16; 256], + pub pFlow: *mut TC_GEN_FLOW, + pub NumberOfFilters: u32, + pub GenericFilter: [TC_GEN_FILTER; 1], +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for ENUMERATION_BUFFER {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for ENUMERATION_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct ERROR_SPEC { + pub errs_header: RsvpObjHdr, + pub errs_u: ERROR_SPEC_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for ERROR_SPEC {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for ERROR_SPEC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union ERROR_SPEC_0 { + pub errs_ipv4: Error_Spec_IPv4, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for ERROR_SPEC_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for ERROR_SPEC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct Error_Spec_IPv4 { + pub errs_errnode: super::super::Networking::WinSock::IN_ADDR, + pub errs_flags: u8, + pub errs_code: u8, + pub errs_value: u16, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for Error_Spec_IPv4 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for Error_Spec_IPv4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct FILTER_SPEC { + pub filt_header: RsvpObjHdr, + pub filt_u: FILTER_SPEC_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for FILTER_SPEC {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for FILTER_SPEC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union FILTER_SPEC_0 { + pub filt_ipv4: Filter_Spec_IPv4, + pub filt_ipv4gpi: Filter_Spec_IPv4GPI, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for FILTER_SPEC_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for FILTER_SPEC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct FLOWDESCRIPTOR { + pub FlowSpec: super::super::Networking::WinSock::FLOWSPEC, + pub NumFilters: u32, + pub FilterList: *mut RSVP_FILTERSPEC, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for FLOWDESCRIPTOR {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for FLOWDESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct FLOW_DESC { + pub u1: FLOW_DESC_0, + pub u2: FLOW_DESC_1, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for FLOW_DESC {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for FLOW_DESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union FLOW_DESC_0 { + pub stspec: *mut SENDER_TSPEC, + pub isflow: *mut IS_FLOWSPEC, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for FLOW_DESC_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for FLOW_DESC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union FLOW_DESC_1 { + pub stemp: *mut FILTER_SPEC, + pub fspec: *mut FILTER_SPEC, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for FLOW_DESC_1 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for FLOW_DESC_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct Filter_Spec_IPv4 { + pub filt_ipaddr: super::super::Networking::WinSock::IN_ADDR, + pub filt_unused: u16, + pub filt_port: u16, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for Filter_Spec_IPv4 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for Filter_Spec_IPv4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct Filter_Spec_IPv4GPI { + pub filt_ipaddr: super::super::Networking::WinSock::IN_ADDR, + pub filt_gpi: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for Filter_Spec_IPv4GPI {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for Filter_Spec_IPv4GPI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct Gads_parms_t { + pub Gads_serv_hdr: IntServServiceHdr, + pub Gads_Ctot_hdr: IntServParmHdr, + pub Gads_Ctot: u32, + pub Gads_Dtot_hdr: IntServParmHdr, + pub Gads_Dtot: u32, + pub Gads_Csum_hdr: IntServParmHdr, + pub Gads_Csum: u32, + pub Gads_Dsum_hdr: IntServParmHdr, + pub Gads_Dsum: u32, +} +impl ::core::marker::Copy for Gads_parms_t {} +impl ::core::clone::Clone for Gads_parms_t { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GenAdspecParams { + pub gen_parm_hdr: IntServServiceHdr, + pub gen_parm_hopcnt_hdr: IntServParmHdr, + pub gen_parm_hopcnt: u32, + pub gen_parm_pathbw_hdr: IntServParmHdr, + pub gen_parm_path_bw: f32, + pub gen_parm_minlat_hdr: IntServParmHdr, + pub gen_parm_min_latency: u32, + pub gen_parm_compmtu_hdr: IntServParmHdr, + pub gen_parm_composed_MTU: u32, +} +impl ::core::marker::Copy for GenAdspecParams {} +impl ::core::clone::Clone for GenAdspecParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GenTspec { + pub gen_Tspec_serv_hdr: IntServServiceHdr, + pub gen_Tspec_parm_hdr: IntServParmHdr, + pub gen_Tspec_parms: GenTspecParms, +} +impl ::core::marker::Copy for GenTspec {} +impl ::core::clone::Clone for GenTspec { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GenTspecParms { + pub TB_Tspec_r: f32, + pub TB_Tspec_b: f32, + pub TB_Tspec_p: f32, + pub TB_Tspec_m: u32, + pub TB_Tspec_M: u32, +} +impl ::core::marker::Copy for GenTspecParms {} +impl ::core::clone::Clone for GenTspecParms { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GuarFlowSpec { + pub Guar_serv_hdr: IntServServiceHdr, + pub Guar_Tspec_hdr: IntServParmHdr, + pub Guar_Tspec_parms: GenTspecParms, + pub Guar_Rspec_hdr: IntServParmHdr, + pub Guar_Rspec: GuarRspec, +} +impl ::core::marker::Copy for GuarFlowSpec {} +impl ::core::clone::Clone for GuarFlowSpec { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GuarRspec { + pub Guar_R: f32, + pub Guar_S: u32, +} +impl ::core::marker::Copy for GuarRspec {} +impl ::core::clone::Clone for GuarRspec { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct HSP_UPGRADE_IMAGEDATA { + pub hashAlgID: u16, + pub digestSize: u16, + pub digest: [u8; 64], + pub fileName: [u16; 64], +} +impl ::core::marker::Copy for HSP_UPGRADE_IMAGEDATA {} +impl ::core::clone::Clone for HSP_UPGRADE_IMAGEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IDPE_ATTR { + pub PeAttribLength: u16, + pub PeAttribType: u8, + pub PeAttribSubType: u8, + pub PeAttribValue: [u8; 4], +} +impl ::core::marker::Copy for IDPE_ATTR {} +impl ::core::clone::Clone for IDPE_ATTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ID_ERROR_OBJECT { + pub usIdErrLength: u16, + pub ucAType: u8, + pub ucSubType: u8, + pub usReserved: u16, + pub usIdErrorValue: u16, + pub ucIdErrData: [u8; 4], +} +impl ::core::marker::Copy for ID_ERROR_OBJECT {} +impl ::core::clone::Clone for ID_ERROR_OBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IN_ADDR_IPV4 { + pub Addr: u32, + pub AddrBytes: [u8; 4], +} +impl ::core::marker::Copy for IN_ADDR_IPV4 {} +impl ::core::clone::Clone for IN_ADDR_IPV4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IN_ADDR_IPV6 { + pub Addr: [u8; 16], +} +impl ::core::marker::Copy for IN_ADDR_IPV6 {} +impl ::core::clone::Clone for IN_ADDR_IPV6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPX_PATTERN { + pub Src: IPX_PATTERN_0, + pub Dest: IPX_PATTERN_0, +} +impl ::core::marker::Copy for IPX_PATTERN {} +impl ::core::clone::Clone for IPX_PATTERN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPX_PATTERN_0 { + pub NetworkAddress: u32, + pub NodeAddress: [u8; 6], + pub Socket: u16, +} +impl ::core::marker::Copy for IPX_PATTERN_0 {} +impl ::core::clone::Clone for IPX_PATTERN_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_PATTERN { + pub Reserved1: u32, + pub Reserved2: u32, + pub SrcAddr: u32, + pub DstAddr: u32, + pub S_un: IP_PATTERN_0, + pub ProtocolId: u8, + pub Reserved3: [u8; 3], +} +impl ::core::marker::Copy for IP_PATTERN {} +impl ::core::clone::Clone for IP_PATTERN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IP_PATTERN_0 { + pub S_un_ports: IP_PATTERN_0_1, + pub S_un_icmp: IP_PATTERN_0_0, + pub S_Spi: u32, +} +impl ::core::marker::Copy for IP_PATTERN_0 {} +impl ::core::clone::Clone for IP_PATTERN_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_PATTERN_0_0 { + pub s_type: u8, + pub s_code: u8, + pub filler: u16, +} +impl ::core::marker::Copy for IP_PATTERN_0_0 {} +impl ::core::clone::Clone for IP_PATTERN_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_PATTERN_0_1 { + pub s_srcport: u16, + pub s_dstport: u16, +} +impl ::core::marker::Copy for IP_PATTERN_0_1 {} +impl ::core::clone::Clone for IP_PATTERN_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IS_ADSPEC_BODY { + pub adspec_mh: IntServMainHdr, + pub adspec_genparms: GenAdspecParams, +} +impl ::core::marker::Copy for IS_ADSPEC_BODY {} +impl ::core::clone::Clone for IS_ADSPEC_BODY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IS_FLOWSPEC { + pub flow_header: RsvpObjHdr, + pub flow_body: IntServFlowSpec, +} +impl ::core::marker::Copy for IS_FLOWSPEC {} +impl ::core::clone::Clone for IS_FLOWSPEC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IntServFlowSpec { + pub spec_mh: IntServMainHdr, + pub spec_u: IntServFlowSpec_0, +} +impl ::core::marker::Copy for IntServFlowSpec {} +impl ::core::clone::Clone for IntServFlowSpec { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IntServFlowSpec_0 { + pub CL_spec: CtrlLoadFlowspec, + pub G_spec: GuarFlowSpec, + pub Q_spec: QualAppFlowSpec, +} +impl ::core::marker::Copy for IntServFlowSpec_0 {} +impl ::core::clone::Clone for IntServFlowSpec_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IntServMainHdr { + pub ismh_version: u8, + pub ismh_unused: u8, + pub ismh_len32b: u16, +} +impl ::core::marker::Copy for IntServMainHdr {} +impl ::core::clone::Clone for IntServMainHdr { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IntServParmHdr { + pub isph_parm_num: u8, + pub isph_flags: u8, + pub isph_len32b: u16, +} +impl ::core::marker::Copy for IntServParmHdr {} +impl ::core::clone::Clone for IntServParmHdr { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IntServServiceHdr { + pub issh_service: u8, + pub issh_flags: u8, + pub issh_len32b: u16, +} +impl ::core::marker::Copy for IntServServiceHdr {} +impl ::core::clone::Clone for IntServServiceHdr { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IntServTspecBody { + pub st_mh: IntServMainHdr, + pub tspec_u: IntServTspecBody_0, +} +impl ::core::marker::Copy for IntServTspecBody {} +impl ::core::clone::Clone for IntServTspecBody { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IntServTspecBody_0 { + pub gen_stspec: GenTspec, + pub qual_stspec: QualTspec, +} +impl ::core::marker::Copy for IntServTspecBody_0 {} +impl ::core::clone::Clone for IntServTspecBody_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct LPMIPTABLE { + pub ulIfIndex: u32, + pub MediaType: u32, + pub IfIpAddr: super::super::Networking::WinSock::IN_ADDR, + pub IfNetMask: super::super::Networking::WinSock::IN_ADDR, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for LPMIPTABLE {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for LPMIPTABLE { + fn clone(&self) -> Self { + *self + } +} +pub type LPM_HANDLE = isize; +#[repr(C)] +pub struct LPM_INIT_INFO { + pub PcmVersionNumber: u32, + pub ResultTimeLimit: u32, + pub ConfiguredLpmCount: i32, + pub AllocMemory: PALLOCMEM, + pub FreeMemory: PFREEMEM, + pub PcmAdmitResultCallback: CBADMITRESULT, + pub GetRsvpObjectsCallback: CBGETRSVPOBJECTS, +} +impl ::core::marker::Copy for LPM_INIT_INFO {} +impl ::core::clone::Clone for LPM_INIT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PARAM_BUFFER { + pub ParameterId: u32, + pub Length: u32, + pub Buffer: [u8; 1], +} +impl ::core::marker::Copy for PARAM_BUFFER {} +impl ::core::clone::Clone for PARAM_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POLICY_DATA { + pub PolicyObjHdr: RsvpObjHdr, + pub usPeOffset: u16, + pub usReserved: u16, +} +impl ::core::marker::Copy for POLICY_DATA {} +impl ::core::clone::Clone for POLICY_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POLICY_DECISION { + pub lpvResult: u32, + pub wPolicyErrCode: u16, + pub wPolicyErrValue: u16, +} +impl ::core::marker::Copy for POLICY_DECISION {} +impl ::core::clone::Clone for POLICY_DECISION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POLICY_ELEMENT { + pub usPeLength: u16, + pub usPeType: u16, + pub ucPeData: [u8; 4], +} +impl ::core::marker::Copy for POLICY_ELEMENT {} +impl ::core::clone::Clone for POLICY_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct QOS_DESTADDR { + pub ObjectHdr: QOS_OBJECT_HDR, + pub SocketAddress: *const super::super::Networking::WinSock::SOCKADDR, + pub SocketAddressLength: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for QOS_DESTADDR {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for QOS_DESTADDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QOS_DIFFSERV { + pub ObjectHdr: QOS_OBJECT_HDR, + pub DSFieldCount: u32, + pub DiffservRule: [u8; 1], +} +impl ::core::marker::Copy for QOS_DIFFSERV {} +impl ::core::clone::Clone for QOS_DIFFSERV { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QOS_DIFFSERV_RULE { + pub InboundDSField: u8, + pub ConformingOutboundDSField: u8, + pub NonConformingOutboundDSField: u8, + pub ConformingUserPriority: u8, + pub NonConformingUserPriority: u8, +} +impl ::core::marker::Copy for QOS_DIFFSERV_RULE {} +impl ::core::clone::Clone for QOS_DIFFSERV_RULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QOS_DS_CLASS { + pub ObjectHdr: QOS_OBJECT_HDR, + pub DSField: u32, +} +impl ::core::marker::Copy for QOS_DS_CLASS {} +impl ::core::clone::Clone for QOS_DS_CLASS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QOS_FLOWRATE_OUTGOING { + pub Bandwidth: u64, + pub ShapingBehavior: QOS_SHAPING, + pub Reason: QOS_FLOWRATE_REASON, +} +impl ::core::marker::Copy for QOS_FLOWRATE_OUTGOING {} +impl ::core::clone::Clone for QOS_FLOWRATE_OUTGOING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct QOS_FLOW_FUNDAMENTALS { + pub BottleneckBandwidthSet: super::super::Foundation::BOOL, + pub BottleneckBandwidth: u64, + pub AvailableBandwidthSet: super::super::Foundation::BOOL, + pub AvailableBandwidth: u64, + pub RTTSet: super::super::Foundation::BOOL, + pub RTT: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for QOS_FLOW_FUNDAMENTALS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for QOS_FLOW_FUNDAMENTALS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QOS_FRIENDLY_NAME { + pub ObjectHdr: QOS_OBJECT_HDR, + pub FriendlyName: [u16; 256], +} +impl ::core::marker::Copy for QOS_FRIENDLY_NAME {} +impl ::core::clone::Clone for QOS_FRIENDLY_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QOS_OBJECT_HDR { + pub ObjectType: u32, + pub ObjectLength: u32, +} +impl ::core::marker::Copy for QOS_OBJECT_HDR {} +impl ::core::clone::Clone for QOS_OBJECT_HDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QOS_PACKET_PRIORITY { + pub ConformantDSCPValue: u32, + pub NonConformantDSCPValue: u32, + pub ConformantL2Value: u32, + pub NonConformantL2Value: u32, +} +impl ::core::marker::Copy for QOS_PACKET_PRIORITY {} +impl ::core::clone::Clone for QOS_PACKET_PRIORITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QOS_SD_MODE { + pub ObjectHdr: QOS_OBJECT_HDR, + pub ShapeDiscardMode: u32, +} +impl ::core::marker::Copy for QOS_SD_MODE {} +impl ::core::clone::Clone for QOS_SD_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QOS_SHAPING_RATE { + pub ObjectHdr: QOS_OBJECT_HDR, + pub ShapingRate: u32, +} +impl ::core::marker::Copy for QOS_SHAPING_RATE {} +impl ::core::clone::Clone for QOS_SHAPING_RATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QOS_TCP_TRAFFIC { + pub ObjectHdr: QOS_OBJECT_HDR, +} +impl ::core::marker::Copy for QOS_TCP_TRAFFIC {} +impl ::core::clone::Clone for QOS_TCP_TRAFFIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QOS_TRAFFIC_CLASS { + pub ObjectHdr: QOS_OBJECT_HDR, + pub TrafficClass: u32, +} +impl ::core::marker::Copy for QOS_TRAFFIC_CLASS {} +impl ::core::clone::Clone for QOS_TRAFFIC_CLASS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QOS_VERSION { + pub MajorVersion: u16, + pub MinorVersion: u16, +} +impl ::core::marker::Copy for QOS_VERSION {} +impl ::core::clone::Clone for QOS_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QualAppFlowSpec { + pub Q_spec_serv_hdr: IntServServiceHdr, + pub Q_spec_parm_hdr: IntServParmHdr, + pub Q_spec_parms: QualTspecParms, +} +impl ::core::marker::Copy for QualAppFlowSpec {} +impl ::core::clone::Clone for QualAppFlowSpec { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QualTspec { + pub qual_Tspec_serv_hdr: IntServServiceHdr, + pub qual_Tspec_parm_hdr: IntServParmHdr, + pub qual_Tspec_parms: QualTspecParms, +} +impl ::core::marker::Copy for QualTspec {} +impl ::core::clone::Clone for QualTspec { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QualTspecParms { + pub TB_Tspec_M: u32, +} +impl ::core::marker::Copy for QualTspecParms {} +impl ::core::clone::Clone for QualTspecParms { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RESV_STYLE { + pub style_header: RsvpObjHdr, + pub style_word: u32, +} +impl ::core::marker::Copy for RESV_STYLE {} +impl ::core::clone::Clone for RESV_STYLE { + fn clone(&self) -> Self { + *self + } +} +pub type RHANDLE = isize; +#[repr(C)] +pub struct RSVP_ADSPEC { + pub ObjectHdr: QOS_OBJECT_HDR, + pub GeneralParams: AD_GENERAL_PARAMS, + pub NumberOfServices: u32, + pub Services: [CONTROL_SERVICE; 1], +} +impl ::core::marker::Copy for RSVP_ADSPEC {} +impl ::core::clone::Clone for RSVP_ADSPEC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RSVP_FILTERSPEC { + pub Type: FilterType, + pub Anonymous: RSVP_FILTERSPEC_0, +} +impl ::core::marker::Copy for RSVP_FILTERSPEC {} +impl ::core::clone::Clone for RSVP_FILTERSPEC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union RSVP_FILTERSPEC_0 { + pub FilterSpecV4: RSVP_FILTERSPEC_V4, + pub FilterSpecV6: RSVP_FILTERSPEC_V6, + pub FilterSpecV6Flow: RSVP_FILTERSPEC_V6_FLOW, + pub FilterSpecV4Gpi: RSVP_FILTERSPEC_V4_GPI, + pub FilterSpecV6Gpi: RSVP_FILTERSPEC_V6_GPI, +} +impl ::core::marker::Copy for RSVP_FILTERSPEC_0 {} +impl ::core::clone::Clone for RSVP_FILTERSPEC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RSVP_FILTERSPEC_V4 { + pub Address: IN_ADDR_IPV4, + pub Unused: u16, + pub Port: u16, +} +impl ::core::marker::Copy for RSVP_FILTERSPEC_V4 {} +impl ::core::clone::Clone for RSVP_FILTERSPEC_V4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RSVP_FILTERSPEC_V4_GPI { + pub Address: IN_ADDR_IPV4, + pub GeneralPortId: u32, +} +impl ::core::marker::Copy for RSVP_FILTERSPEC_V4_GPI {} +impl ::core::clone::Clone for RSVP_FILTERSPEC_V4_GPI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RSVP_FILTERSPEC_V6 { + pub Address: IN_ADDR_IPV6, + pub UnUsed: u16, + pub Port: u16, +} +impl ::core::marker::Copy for RSVP_FILTERSPEC_V6 {} +impl ::core::clone::Clone for RSVP_FILTERSPEC_V6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RSVP_FILTERSPEC_V6_FLOW { + pub Address: IN_ADDR_IPV6, + pub UnUsed: u8, + pub FlowLabel: [u8; 3], +} +impl ::core::marker::Copy for RSVP_FILTERSPEC_V6_FLOW {} +impl ::core::clone::Clone for RSVP_FILTERSPEC_V6_FLOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RSVP_FILTERSPEC_V6_GPI { + pub Address: IN_ADDR_IPV6, + pub GeneralPortId: u32, +} +impl ::core::marker::Copy for RSVP_FILTERSPEC_V6_GPI {} +impl ::core::clone::Clone for RSVP_FILTERSPEC_V6_GPI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct RSVP_HOP { + pub hop_header: RsvpObjHdr, + pub hop_u: RSVP_HOP_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RSVP_HOP {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RSVP_HOP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union RSVP_HOP_0 { + pub hop_ipv4: Rsvp_Hop_IPv4, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RSVP_HOP_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RSVP_HOP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct RSVP_MSG_OBJS { + pub RsvpMsgType: i32, + pub pRsvpSession: *mut RSVP_SESSION, + pub pRsvpFromHop: *mut RSVP_HOP, + pub pRsvpToHop: *mut RSVP_HOP, + pub pResvStyle: *mut RESV_STYLE, + pub pRsvpScope: *mut RSVP_SCOPE, + pub FlowDescCount: i32, + pub pFlowDescs: *mut FLOW_DESC, + pub PdObjectCount: i32, + pub ppPdObjects: *mut *mut POLICY_DATA, + pub pErrorSpec: *mut ERROR_SPEC, + pub pAdspec: *mut ADSPEC, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RSVP_MSG_OBJS {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RSVP_MSG_OBJS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RSVP_POLICY { + pub Len: u16, + pub Type: u16, + pub Info: [u8; 4], +} +impl ::core::marker::Copy for RSVP_POLICY {} +impl ::core::clone::Clone for RSVP_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RSVP_POLICY_INFO { + pub ObjectHdr: QOS_OBJECT_HDR, + pub NumPolicyElement: u32, + pub PolicyElement: [RSVP_POLICY; 1], +} +impl ::core::marker::Copy for RSVP_POLICY_INFO {} +impl ::core::clone::Clone for RSVP_POLICY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct RSVP_RESERVE_INFO { + pub ObjectHdr: QOS_OBJECT_HDR, + pub Style: u32, + pub ConfirmRequest: u32, + pub PolicyElementList: *mut RSVP_POLICY_INFO, + pub NumFlowDesc: u32, + pub FlowDescList: *mut FLOWDESCRIPTOR, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RSVP_RESERVE_INFO {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RSVP_RESERVE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct RSVP_SCOPE { + pub scopl_header: RsvpObjHdr, + pub scope_u: RSVP_SCOPE_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RSVP_SCOPE {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RSVP_SCOPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union RSVP_SCOPE_0 { + pub scopl_ipv4: Scope_list_ipv4, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RSVP_SCOPE_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RSVP_SCOPE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct RSVP_SESSION { + pub sess_header: RsvpObjHdr, + pub sess_u: RSVP_SESSION_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RSVP_SESSION {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RSVP_SESSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union RSVP_SESSION_0 { + pub sess_ipv4: Session_IPv4, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RSVP_SESSION_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RSVP_SESSION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RSVP_STATUS_INFO { + pub ObjectHdr: QOS_OBJECT_HDR, + pub StatusCode: u32, + pub ExtendedStatus1: u32, + pub ExtendedStatus2: u32, +} +impl ::core::marker::Copy for RSVP_STATUS_INFO {} +impl ::core::clone::Clone for RSVP_STATUS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RsvpObjHdr { + pub obj_length: u16, + pub obj_class: u8, + pub obj_ctype: u8, +} +impl ::core::marker::Copy for RsvpObjHdr {} +impl ::core::clone::Clone for RsvpObjHdr { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct Rsvp_Hop_IPv4 { + pub hop_ipaddr: super::super::Networking::WinSock::IN_ADDR, + pub hop_LIH: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for Rsvp_Hop_IPv4 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for Rsvp_Hop_IPv4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SENDER_TSPEC { + pub stspec_header: RsvpObjHdr, + pub stspec_body: IntServTspecBody, +} +impl ::core::marker::Copy for SENDER_TSPEC {} +impl ::core::clone::Clone for SENDER_TSPEC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SIPAEVENT_KSR_SIGNATURE_PAYLOAD { + pub SignAlgID: u32, + pub SignatureLength: u32, + pub Signature: [u8; 1], +} +impl ::core::marker::Copy for SIPAEVENT_KSR_SIGNATURE_PAYLOAD {} +impl ::core::clone::Clone for SIPAEVENT_KSR_SIGNATURE_PAYLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SIPAEVENT_REVOCATION_LIST_PAYLOAD { + pub CreationTime: i64, + pub DigestLength: u32, + pub HashAlgID: u16, + pub Digest: [u8; 1], +} +impl ::core::marker::Copy for SIPAEVENT_REVOCATION_LIST_PAYLOAD {} +impl ::core::clone::Clone for SIPAEVENT_REVOCATION_LIST_PAYLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SIPAEVENT_SBCP_INFO_PAYLOAD_V1 { + pub PayloadVersion: u32, + pub VarDataOffset: u32, + pub HashAlgID: u16, + pub DigestLength: u16, + pub Options: u32, + pub SignersCount: u32, + pub VarData: [u8; 1], +} +impl ::core::marker::Copy for SIPAEVENT_SBCP_INFO_PAYLOAD_V1 {} +impl ::core::clone::Clone for SIPAEVENT_SBCP_INFO_PAYLOAD_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SIPAEVENT_SI_POLICY_PAYLOAD { + pub PolicyVersion: u64, + pub PolicyNameLength: u16, + pub HashAlgID: u16, + pub DigestLength: u32, + pub VarLengthData: [u8; 1], +} +impl ::core::marker::Copy for SIPAEVENT_SI_POLICY_PAYLOAD {} +impl ::core::clone::Clone for SIPAEVENT_SI_POLICY_PAYLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SIPAEVENT_VSM_IDK_INFO_PAYLOAD { + pub KeyAlgID: u32, + pub Anonymous: SIPAEVENT_VSM_IDK_INFO_PAYLOAD_0, +} +impl ::core::marker::Copy for SIPAEVENT_VSM_IDK_INFO_PAYLOAD {} +impl ::core::clone::Clone for SIPAEVENT_VSM_IDK_INFO_PAYLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SIPAEVENT_VSM_IDK_INFO_PAYLOAD_0 { + pub RsaKeyInfo: SIPAEVENT_VSM_IDK_RSA_INFO, +} +impl ::core::marker::Copy for SIPAEVENT_VSM_IDK_INFO_PAYLOAD_0 {} +impl ::core::clone::Clone for SIPAEVENT_VSM_IDK_INFO_PAYLOAD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SIPAEVENT_VSM_IDK_RSA_INFO { + pub KeyBitLength: u32, + pub PublicExpLengthBytes: u32, + pub ModulusSizeBytes: u32, + pub PublicKeyData: [u8; 1], +} +impl ::core::marker::Copy for SIPAEVENT_VSM_IDK_RSA_INFO {} +impl ::core::clone::Clone for SIPAEVENT_VSM_IDK_RSA_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct Scope_list_ipv4 { + pub scopl_ipaddr: [super::super::Networking::WinSock::IN_ADDR; 1], +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for Scope_list_ipv4 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for Scope_list_ipv4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct Session_IPv4 { + pub sess_destaddr: super::super::Networking::WinSock::IN_ADDR, + pub sess_protid: u8, + pub sess_flags: u8, + pub sess_destport: u16, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for Session_IPv4 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for Session_IPv4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCG_PCClientPCREventStruct { + pub pcrIndex: u32, + pub eventType: u32, + pub digest: [u8; 20], + pub eventDataSize: u32, + pub event: [u8; 1], +} +impl ::core::marker::Copy for TCG_PCClientPCREventStruct {} +impl ::core::clone::Clone for TCG_PCClientPCREventStruct { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCG_PCClientTaggedEventStruct { + pub EventID: u32, + pub EventDataSize: u32, + pub EventData: [u8; 1], +} +impl ::core::marker::Copy for TCG_PCClientTaggedEventStruct {} +impl ::core::clone::Clone for TCG_PCClientTaggedEventStruct { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCI_CLIENT_FUNC_LIST { + pub ClNotifyHandler: TCI_NOTIFY_HANDLER, + pub ClAddFlowCompleteHandler: TCI_ADD_FLOW_COMPLETE_HANDLER, + pub ClModifyFlowCompleteHandler: TCI_MOD_FLOW_COMPLETE_HANDLER, + pub ClDeleteFlowCompleteHandler: TCI_DEL_FLOW_COMPLETE_HANDLER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCI_CLIENT_FUNC_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCI_CLIENT_FUNC_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TC_GEN_FILTER { + pub AddressType: u16, + pub PatternSize: u32, + pub Pattern: *mut ::core::ffi::c_void, + pub Mask: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for TC_GEN_FILTER {} +impl ::core::clone::Clone for TC_GEN_FILTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct TC_GEN_FLOW { + pub SendingFlowspec: super::super::Networking::WinSock::FLOWSPEC, + pub ReceivingFlowspec: super::super::Networking::WinSock::FLOWSPEC, + pub TcObjectsLength: u32, + pub TcObjects: [QOS_OBJECT_HDR; 1], +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for TC_GEN_FLOW {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for TC_GEN_FLOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct TC_IFC_DESCRIPTOR { + pub Length: u32, + pub pInterfaceName: ::windows_sys::core::PWSTR, + pub pInterfaceID: ::windows_sys::core::PWSTR, + pub AddressListDesc: ADDRESS_LIST_DESCRIPTOR, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for TC_IFC_DESCRIPTOR {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for TC_IFC_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct TC_SUPPORTED_INFO_BUFFER { + pub InstanceIDLength: u16, + pub InstanceID: [u16; 256], + pub InterfaceLuid: u64, + pub AddrListDesc: ADDRESS_LIST_DESCRIPTOR, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for TC_SUPPORTED_INFO_BUFFER {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for TC_SUPPORTED_INFO_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WBCL_Iterator { + pub firstElementPtr: *mut ::core::ffi::c_void, + pub logSize: u32, + pub currentElementPtr: *mut ::core::ffi::c_void, + pub currentElementSize: u32, + pub digestSize: u16, + pub logFormat: u16, + pub numberOfDigests: u32, + pub digestSizes: *mut ::core::ffi::c_void, + pub supportedAlgorithms: u32, + pub hashAlgorithm: u16, +} +impl ::core::marker::Copy for WBCL_Iterator {} +impl ::core::clone::Clone for WBCL_Iterator { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WBCL_LogHdr { + pub signature: u32, + pub version: u32, + pub entries: u32, + pub length: u32, +} +impl ::core::marker::Copy for WBCL_LogHdr {} +impl ::core::clone::Clone for WBCL_LogHdr { + fn clone(&self) -> Self { + *self + } +} +pub type CBADMITRESULT = ::core::option::Option *mut u32>; +pub type CBGETRSVPOBJECTS = ::core::option::Option *mut u32>; +pub type PALLOCMEM = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PFREEMEM = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type TCI_ADD_FLOW_COMPLETE_HANDLER = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type TCI_DEL_FLOW_COMPLETE_HANDLER = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type TCI_MOD_FLOW_COMPLETE_HANDLER = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type TCI_NOTIFY_HANDLER = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Rras/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Rras/mod.rs new file mode 100644 index 000000000..fd8be5c50 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Rras/mod.rs @@ -0,0 +1,4524 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MgmAddGroupMembershipEntry(hprotocol : super::super::Foundation:: HANDLE, dwsourceaddr : u32, dwsourcemask : u32, dwgroupaddr : u32, dwgroupmask : u32, dwifindex : u32, dwifnexthopipaddr : u32, dwflags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MgmDeRegisterMProtocol(hprotocol : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MgmDeleteGroupMembershipEntry(hprotocol : super::super::Foundation:: HANDLE, dwsourceaddr : u32, dwsourcemask : u32, dwgroupaddr : u32, dwgroupmask : u32, dwifindex : u32, dwifnexthopipaddr : u32, dwflags : u32) -> u32); +::windows_targets::link!("rtm.dll" "system" fn MgmGetFirstMfe(pdwbuffersize : *mut u32, pbbuffer : *mut u8, pdwnumentries : *mut u32) -> u32); +::windows_targets::link!("rtm.dll" "system" fn MgmGetFirstMfeStats(pdwbuffersize : *mut u32, pbbuffer : *mut u8, pdwnumentries : *mut u32, dwflags : u32) -> u32); +#[cfg(feature = "Win32_NetworkManagement_IpHelper")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_NetworkManagement_IpHelper\"`"] fn MgmGetMfe(pimm : *mut super::IpHelper:: MIB_IPMCAST_MFE, pdwbuffersize : *mut u32, pbbuffer : *mut u8) -> u32); +#[cfg(feature = "Win32_NetworkManagement_IpHelper")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_NetworkManagement_IpHelper\"`"] fn MgmGetMfeStats(pimm : *mut super::IpHelper:: MIB_IPMCAST_MFE, pdwbuffersize : *mut u32, pbbuffer : *mut u8, dwflags : u32) -> u32); +#[cfg(feature = "Win32_NetworkManagement_IpHelper")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_NetworkManagement_IpHelper\"`"] fn MgmGetNextMfe(pimmstart : *mut super::IpHelper:: MIB_IPMCAST_MFE, pdwbuffersize : *mut u32, pbbuffer : *mut u8, pdwnumentries : *mut u32) -> u32); +#[cfg(feature = "Win32_NetworkManagement_IpHelper")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_NetworkManagement_IpHelper\"`"] fn MgmGetNextMfeStats(pimmstart : *mut super::IpHelper:: MIB_IPMCAST_MFE, pdwbuffersize : *mut u32, pbbuffer : *mut u8, pdwnumentries : *mut u32, dwflags : u32) -> u32); +::windows_targets::link!("rtm.dll" "system" fn MgmGetProtocolOnInterface(dwifindex : u32, dwifnexthopaddr : u32, pdwifprotocolid : *mut u32, pdwifcomponentid : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MgmGroupEnumerationEnd(henum : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MgmGroupEnumerationGetNext(henum : super::super::Foundation:: HANDLE, pdwbuffersize : *mut u32, pbbuffer : *mut u8, pdwnumentries : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MgmGroupEnumerationStart(hprotocol : super::super::Foundation:: HANDLE, metenumtype : MGM_ENUM_TYPES, phenumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MgmRegisterMProtocol(prpiinfo : *mut ROUTING_PROTOCOL_CONFIG, dwprotocolid : u32, dwcomponentid : u32, phprotocol : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MgmReleaseInterfaceOwnership(hprotocol : super::super::Foundation:: HANDLE, dwifindex : u32, dwifnexthopaddr : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MgmTakeInterfaceOwnership(hprotocol : super::super::Foundation:: HANDLE, dwifindex : u32, dwifnexthopaddr : u32) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminBufferFree(pbuffer : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminConnectionClearStats(hrasserver : isize, hrasconnection : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminConnectionEnum(hrasserver : isize, dwlevel : u32, lplpbbuffer : *mut *mut u8, dwprefmaxlen : u32, lpdwentriesread : *mut u32, lpdwtotalentries : *mut u32, lpdwresumehandle : *const u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminConnectionEnumEx(hrasserver : isize, pobjectheader : *const MPRAPI_OBJECT_HEADER, dwpreferedmaxlen : u32, lpdwentriesread : *mut u32, lpdwtotalentries : *mut u32, pprasconn : *mut *mut RAS_CONNECTION_EX, lpdwresumehandle : *const u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminConnectionGetInfo(hrasserver : isize, dwlevel : u32, hrasconnection : super::super::Foundation:: HANDLE, lplpbbuffer : *mut *mut u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminConnectionGetInfoEx(hrasserver : isize, hrasconnection : super::super::Foundation:: HANDLE, prasconnection : *mut RAS_CONNECTION_EX) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminConnectionRemoveQuarantine(hrasserver : super::super::Foundation:: HANDLE, hrasconnection : super::super::Foundation:: HANDLE, fisipaddress : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminDeregisterConnectionNotification(hmprserver : isize, heventnotification : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminDeviceEnum(hmprserver : isize, dwlevel : u32, lplpbbuffer : *mut *mut u8, lpdwtotalentries : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminEstablishDomainRasServer(pszdomain : ::windows_sys::core::PCWSTR, pszmachine : ::windows_sys::core::PCWSTR, benable : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminGetErrorString(dwerror : u32, lplpwserrorstring : *mut ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminGetPDCServer(lpszdomain : ::windows_sys::core::PCWSTR, lpszserver : ::windows_sys::core::PCWSTR, lpszpdcserver : ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceConnect(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, hevent : super::super::Foundation:: HANDLE, fsynchronous : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceCreate(hmprserver : isize, dwlevel : u32, lpbbuffer : *const u8, phinterface : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceDelete(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceDeviceGetInfo(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, dwindex : u32, dwlevel : u32, lplpbuffer : *mut *mut u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceDeviceSetInfo(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, dwindex : u32, dwlevel : u32, lpbbuffer : *const u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceDisconnect(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminInterfaceEnum(hmprserver : isize, dwlevel : u32, lplpbbuffer : *mut *mut u8, dwprefmaxlen : u32, lpdwentriesread : *mut u32, lpdwtotalentries : *mut u32, lpdwresumehandle : *const u32) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminInterfaceGetCredentials(lpwsserver : ::windows_sys::core::PCWSTR, lpwsinterfacename : ::windows_sys::core::PCWSTR, lpwsusername : ::windows_sys::core::PWSTR, lpwspassword : ::windows_sys::core::PWSTR, lpwsdomainname : ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceGetCredentialsEx(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, dwlevel : u32, lplpbbuffer : *mut *mut u8) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`, `\"Win32_Security_Cryptography\"`"] fn MprAdminInterfaceGetCustomInfoEx(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, pcustominfo : *mut MPR_IF_CUSTOMINFOEX2) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceGetHandle(hmprserver : isize, lpwsinterfacename : ::windows_sys::core::PCWSTR, phinterface : *mut super::super::Foundation:: HANDLE, fincludeclientinterfaces : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceGetInfo(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, dwlevel : u32, lplpbbuffer : *const *const u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceQueryUpdateResult(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, dwprotocolid : u32, lpdwupdateresult : *mut u32) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminInterfaceSetCredentials(lpwsserver : ::windows_sys::core::PCWSTR, lpwsinterfacename : ::windows_sys::core::PCWSTR, lpwsusername : ::windows_sys::core::PCWSTR, lpwsdomainname : ::windows_sys::core::PCWSTR, lpwspassword : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceSetCredentialsEx(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, dwlevel : u32, lpbbuffer : *const u8) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`, `\"Win32_Security_Cryptography\"`"] fn MprAdminInterfaceSetCustomInfoEx(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, pcustominfo : *const MPR_IF_CUSTOMINFOEX2) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceSetInfo(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, dwlevel : u32, lpbbuffer : *const u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceTransportAdd(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, dwtransportid : u32, pinterfaceinfo : *const u8, dwinterfaceinfosize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceTransportGetInfo(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, dwtransportid : u32, ppinterfaceinfo : *mut *mut u8, lpdwinterfaceinfosize : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceTransportRemove(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, dwtransportid : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceTransportSetInfo(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, dwtransportid : u32, pinterfaceinfo : *const u8, dwinterfaceinfosize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceUpdatePhonebookInfo(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminInterfaceUpdateRoutes(hmprserver : isize, hinterface : super::super::Foundation:: HANDLE, dwprotocolid : u32, hevent : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminIsDomainRasServer(pszdomain : ::windows_sys::core::PCWSTR, pszmachine : ::windows_sys::core::PCWSTR, pbisrasserver : *mut super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminIsServiceInitialized(lpwsservername : ::windows_sys::core::PCWSTR, fisserviceinitialized : *const super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminIsServiceRunning(lpwsservername : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminMIBBufferFree(pbuffer : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminMIBEntryCreate(hmibserver : isize, dwpid : u32, dwroutingpid : u32, lpentry : *const ::core::ffi::c_void, dwentrysize : u32) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminMIBEntryDelete(hmibserver : isize, dwprotocolid : u32, dwroutingpid : u32, lpentry : *const ::core::ffi::c_void, dwentrysize : u32) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminMIBEntryGet(hmibserver : isize, dwprotocolid : u32, dwroutingpid : u32, lpinentry : *const ::core::ffi::c_void, dwinentrysize : u32, lplpoutentry : *mut *mut ::core::ffi::c_void, lpoutentrysize : *mut u32) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminMIBEntryGetFirst(hmibserver : isize, dwprotocolid : u32, dwroutingpid : u32, lpinentry : *const ::core::ffi::c_void, dwinentrysize : u32, lplpoutentry : *mut *mut ::core::ffi::c_void, lpoutentrysize : *mut u32) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminMIBEntryGetNext(hmibserver : isize, dwprotocolid : u32, dwroutingpid : u32, lpinentry : *const ::core::ffi::c_void, dwinentrysize : u32, lplpoutentry : *mut *mut ::core::ffi::c_void, lpoutentrysize : *mut u32) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminMIBEntrySet(hmibserver : isize, dwprotocolid : u32, dwroutingpid : u32, lpentry : *const ::core::ffi::c_void, dwentrysize : u32) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminMIBServerConnect(lpwsservername : ::windows_sys::core::PCWSTR, phmibserver : *mut isize) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminMIBServerDisconnect(hmibserver : isize) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminPortClearStats(hrasserver : isize, hport : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminPortDisconnect(hrasserver : isize, hport : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminPortEnum(hrasserver : isize, dwlevel : u32, hrasconnection : super::super::Foundation:: HANDLE, lplpbbuffer : *mut *mut u8, dwprefmaxlen : u32, lpdwentriesread : *mut u32, lpdwtotalentries : *mut u32, lpdwresumehandle : *const u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminPortGetInfo(hrasserver : isize, dwlevel : u32, hport : super::super::Foundation:: HANDLE, lplpbbuffer : *mut *mut u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminPortReset(hrasserver : isize, hport : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminRegisterConnectionNotification(hmprserver : isize, heventnotification : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminSendUserMessage(hmprserver : isize, hconnection : super::super::Foundation:: HANDLE, lpwszmessage : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminServerConnect(lpwsservername : ::windows_sys::core::PCWSTR, phmprserver : *mut isize) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminServerDisconnect(hmprserver : isize) -> ()); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminServerGetCredentials(hmprserver : isize, dwlevel : u32, lplpbbuffer : *const *const u8) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminServerGetInfo(hmprserver : isize, dwlevel : u32, lplpbbuffer : *mut *mut u8) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn MprAdminServerGetInfoEx(hmprserver : isize, pserverinfo : *mut MPR_SERVER_EX1) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminServerSetCredentials(hmprserver : isize, dwlevel : u32, lpbbuffer : *const u8) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminServerSetInfo(hmprserver : isize, dwlevel : u32, lpbbuffer : *const u8) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn MprAdminServerSetInfoEx(hmprserver : isize, pserverinfo : *const MPR_SERVER_SET_CONFIG_EX1) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminTransportCreate(hmprserver : isize, dwtransportid : u32, lpwstransportname : ::windows_sys::core::PCWSTR, pglobalinfo : *const u8, dwglobalinfosize : u32, pclientinterfaceinfo : *const u8, dwclientinterfaceinfosize : u32, lpwsdllpath : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminTransportGetInfo(hmprserver : isize, dwtransportid : u32, ppglobalinfo : *mut *mut u8, lpdwglobalinfosize : *mut u32, ppclientinterfaceinfo : *mut *mut u8, lpdwclientinterfaceinfosize : *mut u32) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminTransportSetInfo(hmprserver : isize, dwtransportid : u32, pglobalinfo : *const u8, dwglobalinfosize : u32, pclientinterfaceinfo : *const u8, dwclientinterfaceinfosize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprAdminUpdateConnection(hrasserver : isize, hrasconnection : super::super::Foundation:: HANDLE, prasupdateconnection : *const RAS_UPDATE_CONNECTION) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminUserGetInfo(lpszserver : ::windows_sys::core::PCWSTR, lpszuser : ::windows_sys::core::PCWSTR, dwlevel : u32, lpbbuffer : *mut u8) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprAdminUserSetInfo(lpszserver : ::windows_sys::core::PCWSTR, lpszuser : ::windows_sys::core::PCWSTR, dwlevel : u32, lpbbuffer : *const u8) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprConfigBufferFree(pbuffer : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigFilterGetInfo(hmprconfig : super::super::Foundation:: HANDLE, dwlevel : u32, dwtransportid : u32, lpbuffer : *mut u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigFilterSetInfo(hmprconfig : super::super::Foundation:: HANDLE, dwlevel : u32, dwtransportid : u32, lpbuffer : *const u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigGetFriendlyName(hmprconfig : super::super::Foundation:: HANDLE, pszguidname : ::windows_sys::core::PCWSTR, pszbuffer : ::windows_sys::core::PWSTR, dwbuffersize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigGetGuidName(hmprconfig : super::super::Foundation:: HANDLE, pszfriendlyname : ::windows_sys::core::PCWSTR, pszbuffer : ::windows_sys::core::PWSTR, dwbuffersize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigInterfaceCreate(hmprconfig : super::super::Foundation:: HANDLE, dwlevel : u32, lpbbuffer : *const u8, phrouterinterface : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigInterfaceDelete(hmprconfig : super::super::Foundation:: HANDLE, hrouterinterface : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigInterfaceEnum(hmprconfig : super::super::Foundation:: HANDLE, dwlevel : u32, lplpbuffer : *mut *mut u8, dwprefmaxlen : u32, lpdwentriesread : *mut u32, lpdwtotalentries : *mut u32, lpdwresumehandle : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`, `\"Win32_Security_Cryptography\"`"] fn MprConfigInterfaceGetCustomInfoEx(hmprconfig : super::super::Foundation:: HANDLE, hrouterinterface : super::super::Foundation:: HANDLE, pcustominfo : *mut MPR_IF_CUSTOMINFOEX2) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigInterfaceGetHandle(hmprconfig : super::super::Foundation:: HANDLE, lpwsinterfacename : ::windows_sys::core::PCWSTR, phrouterinterface : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigInterfaceGetInfo(hmprconfig : super::super::Foundation:: HANDLE, hrouterinterface : super::super::Foundation:: HANDLE, dwlevel : u32, lplpbuffer : *mut *mut u8, lpdwbuffersize : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`, `\"Win32_Security_Cryptography\"`"] fn MprConfigInterfaceSetCustomInfoEx(hmprconfig : super::super::Foundation:: HANDLE, hrouterinterface : super::super::Foundation:: HANDLE, pcustominfo : *const MPR_IF_CUSTOMINFOEX2) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigInterfaceSetInfo(hmprconfig : super::super::Foundation:: HANDLE, hrouterinterface : super::super::Foundation:: HANDLE, dwlevel : u32, lpbbuffer : *const u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigInterfaceTransportAdd(hmprconfig : super::super::Foundation:: HANDLE, hrouterinterface : super::super::Foundation:: HANDLE, dwtransportid : u32, lpwstransportname : ::windows_sys::core::PCWSTR, pinterfaceinfo : *const u8, dwinterfaceinfosize : u32, phrouteriftransport : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigInterfaceTransportEnum(hmprconfig : super::super::Foundation:: HANDLE, hrouterinterface : super::super::Foundation:: HANDLE, dwlevel : u32, lplpbuffer : *mut *mut u8, dwprefmaxlen : u32, lpdwentriesread : *mut u32, lpdwtotalentries : *mut u32, lpdwresumehandle : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigInterfaceTransportGetHandle(hmprconfig : super::super::Foundation:: HANDLE, hrouterinterface : super::super::Foundation:: HANDLE, dwtransportid : u32, phrouteriftransport : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigInterfaceTransportGetInfo(hmprconfig : super::super::Foundation:: HANDLE, hrouterinterface : super::super::Foundation:: HANDLE, hrouteriftransport : super::super::Foundation:: HANDLE, ppinterfaceinfo : *mut *mut u8, lpdwinterfaceinfosize : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigInterfaceTransportRemove(hmprconfig : super::super::Foundation:: HANDLE, hrouterinterface : super::super::Foundation:: HANDLE, hrouteriftransport : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigInterfaceTransportSetInfo(hmprconfig : super::super::Foundation:: HANDLE, hrouterinterface : super::super::Foundation:: HANDLE, hrouteriftransport : super::super::Foundation:: HANDLE, pinterfaceinfo : *const u8, dwinterfaceinfosize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigServerBackup(hmprconfig : super::super::Foundation:: HANDLE, lpwspath : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigServerConnect(lpwsservername : ::windows_sys::core::PCWSTR, phmprconfig : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigServerDisconnect(hmprconfig : super::super::Foundation:: HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigServerGetInfo(hmprconfig : super::super::Foundation:: HANDLE, dwlevel : u32, lplpbbuffer : *mut *mut u8) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn MprConfigServerGetInfoEx(hmprconfig : super::super::Foundation:: HANDLE, pserverinfo : *mut MPR_SERVER_EX1) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprConfigServerInstall(dwlevel : u32, pbuffer : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigServerRefresh(hmprconfig : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigServerRestore(hmprconfig : super::super::Foundation:: HANDLE, lpwspath : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprConfigServerSetInfo(hmprserver : isize, dwlevel : u32, lpbbuffer : *const u8) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn MprConfigServerSetInfoEx(hmprconfig : super::super::Foundation:: HANDLE, psetserverconfig : *const MPR_SERVER_SET_CONFIG_EX1) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigTransportCreate(hmprconfig : super::super::Foundation:: HANDLE, dwtransportid : u32, lpwstransportname : ::windows_sys::core::PCWSTR, pglobalinfo : *const u8, dwglobalinfosize : u32, pclientinterfaceinfo : *const u8, dwclientinterfaceinfosize : u32, lpwsdllpath : ::windows_sys::core::PCWSTR, phroutertransport : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigTransportDelete(hmprconfig : super::super::Foundation:: HANDLE, hroutertransport : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigTransportEnum(hmprconfig : super::super::Foundation:: HANDLE, dwlevel : u32, lplpbuffer : *mut *mut u8, dwprefmaxlen : u32, lpdwentriesread : *mut u32, lpdwtotalentries : *mut u32, lpdwresumehandle : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigTransportGetHandle(hmprconfig : super::super::Foundation:: HANDLE, dwtransportid : u32, phroutertransport : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigTransportGetInfo(hmprconfig : super::super::Foundation:: HANDLE, hroutertransport : super::super::Foundation:: HANDLE, ppglobalinfo : *mut *mut u8, lpdwglobalinfosize : *mut u32, ppclientinterfaceinfo : *mut *mut u8, lpdwclientinterfaceinfosize : *mut u32, lplpwsdllpath : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mprapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MprConfigTransportSetInfo(hmprconfig : super::super::Foundation:: HANDLE, hroutertransport : super::super::Foundation:: HANDLE, pglobalinfo : *const u8, dwglobalinfosize : u32, pclientinterfaceinfo : *const u8, dwclientinterfaceinfosize : u32, lpwsdllpath : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprInfoBlockAdd(lpheader : *const ::core::ffi::c_void, dwinfotype : u32, dwitemsize : u32, dwitemcount : u32, lpitemdata : *const u8, lplpnewheader : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprInfoBlockFind(lpheader : *const ::core::ffi::c_void, dwinfotype : u32, lpdwitemsize : *mut u32, lpdwitemcount : *mut u32, lplpitemdata : *mut *mut u8) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprInfoBlockQuerySize(lpheader : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprInfoBlockRemove(lpheader : *const ::core::ffi::c_void, dwinfotype : u32, lplpnewheader : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprInfoBlockSet(lpheader : *const ::core::ffi::c_void, dwinfotype : u32, dwitemsize : u32, dwitemcount : u32, lpitemdata : *const u8, lplpnewheader : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprInfoCreate(dwversion : u32, lplpnewheader : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprInfoDelete(lpheader : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprInfoDuplicate(lpheader : *const ::core::ffi::c_void, lplpnewheader : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("mprapi.dll" "system" fn MprInfoRemoveAll(lpheader : *const ::core::ffi::c_void, lplpnewheader : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasClearConnectionStatistics(hrasconn : HRASCONN) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasClearLinkStatistics(hrasconn : HRASCONN, dwsubentry : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasConnectionNotificationA(param0 : HRASCONN, param1 : super::super::Foundation:: HANDLE, param2 : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasConnectionNotificationW(param0 : HRASCONN, param1 : super::super::Foundation:: HANDLE, param2 : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasCreatePhonebookEntryA(param0 : super::super::Foundation:: HWND, param1 : ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasCreatePhonebookEntryW(param0 : super::super::Foundation:: HWND, param1 : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasDeleteEntryA(param0 : ::windows_sys::core::PCSTR, param1 : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasDeleteEntryW(param0 : ::windows_sys::core::PCWSTR, param1 : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasDeleteSubEntryA(pszphonebook : ::windows_sys::core::PCSTR, pszentry : ::windows_sys::core::PCSTR, dwsubentryid : u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasDeleteSubEntryW(pszphonebook : ::windows_sys::core::PCWSTR, pszentry : ::windows_sys::core::PCWSTR, dwsubentryid : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasDialA(param0 : *const RASDIALEXTENSIONS, param1 : ::windows_sys::core::PCSTR, param2 : *const RASDIALPARAMSA, param3 : u32, param4 : *const ::core::ffi::c_void, param5 : *mut HRASCONN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasdlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasDialDlgA(lpszphonebook : ::windows_sys::core::PCSTR, lpszentry : ::windows_sys::core::PCSTR, lpszphonenumber : ::windows_sys::core::PCSTR, lpinfo : *mut RASDIALDLG) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasdlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasDialDlgW(lpszphonebook : ::windows_sys::core::PCWSTR, lpszentry : ::windows_sys::core::PCWSTR, lpszphonenumber : ::windows_sys::core::PCWSTR, lpinfo : *mut RASDIALDLG) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasDialW(param0 : *const RASDIALEXTENSIONS, param1 : ::windows_sys::core::PCWSTR, param2 : *const RASDIALPARAMSW, param3 : u32, param4 : *const ::core::ffi::c_void, param5 : *mut HRASCONN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasEditPhonebookEntryA(param0 : super::super::Foundation:: HWND, param1 : ::windows_sys::core::PCSTR, param2 : ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasEditPhonebookEntryW(param0 : super::super::Foundation:: HWND, param1 : ::windows_sys::core::PCWSTR, param2 : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasdlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasEntryDlgA(lpszphonebook : ::windows_sys::core::PCSTR, lpszentry : ::windows_sys::core::PCSTR, lpinfo : *mut RASENTRYDLGA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasdlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasEntryDlgW(lpszphonebook : ::windows_sys::core::PCWSTR, lpszentry : ::windows_sys::core::PCWSTR, lpinfo : *mut RASENTRYDLGW) -> super::super::Foundation:: BOOL); +::windows_targets::link!("rasapi32.dll" "system" fn RasEnumAutodialAddressesA(lpprasautodialaddresses : *mut ::windows_sys::core::PSTR, lpdwcbrasautodialaddresses : *mut u32, lpdwcrasautodialaddresses : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasEnumAutodialAddressesW(lpprasautodialaddresses : *mut ::windows_sys::core::PWSTR, lpdwcbrasautodialaddresses : *mut u32, lpdwcrasautodialaddresses : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasEnumConnectionsA(param0 : *mut RASCONNA, param1 : *mut u32, param2 : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasEnumConnectionsW(param0 : *mut RASCONNW, param1 : *mut u32, param2 : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasEnumDevicesA(param0 : *mut RASDEVINFOA, param1 : *mut u32, param2 : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasEnumDevicesW(param0 : *mut RASDEVINFOW, param1 : *mut u32, param2 : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasEnumEntriesA(param0 : ::windows_sys::core::PCSTR, param1 : ::windows_sys::core::PCSTR, param2 : *mut RASENTRYNAMEA, param3 : *mut u32, param4 : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasEnumEntriesW(param0 : ::windows_sys::core::PCWSTR, param1 : ::windows_sys::core::PCWSTR, param2 : *mut RASENTRYNAMEW, param3 : *mut u32, param4 : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasFreeEapUserIdentityA(praseapuseridentity : *const RASEAPUSERIDENTITYA) -> ()); +::windows_targets::link!("rasapi32.dll" "system" fn RasFreeEapUserIdentityW(praseapuseridentity : *const RASEAPUSERIDENTITYW) -> ()); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetAutodialAddressA(param0 : ::windows_sys::core::PCSTR, param1 : *const u32, param2 : *mut RASAUTODIALENTRYA, param3 : *mut u32, param4 : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetAutodialAddressW(param0 : ::windows_sys::core::PCWSTR, param1 : *const u32, param2 : *mut RASAUTODIALENTRYW, param3 : *mut u32, param4 : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasGetAutodialEnableA(param0 : u32, param1 : *mut super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasGetAutodialEnableW(param0 : u32, param1 : *mut super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetAutodialParamA(param0 : u32, param1 : *mut ::core::ffi::c_void, param2 : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetAutodialParamW(param0 : u32, param1 : *mut ::core::ffi::c_void, param2 : *mut u32) -> u32); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn RasGetConnectStatusA(param0 : HRASCONN, param1 : *mut RASCONNSTATUSA) -> u32); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn RasGetConnectStatusW(param0 : HRASCONN, param1 : *mut RASCONNSTATUSW) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetConnectionStatistics(hrasconn : HRASCONN, lpstatistics : *mut RAS_STATS) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetCountryInfoA(param0 : *mut RASCTRYINFO, param1 : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetCountryInfoW(param0 : *mut RASCTRYINFO, param1 : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetCredentialsA(param0 : ::windows_sys::core::PCSTR, param1 : ::windows_sys::core::PCSTR, param2 : *mut RASCREDENTIALSA) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetCredentialsW(param0 : ::windows_sys::core::PCWSTR, param1 : ::windows_sys::core::PCWSTR, param2 : *mut RASCREDENTIALSW) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetCustomAuthDataA(pszphonebook : ::windows_sys::core::PCSTR, pszentry : ::windows_sys::core::PCSTR, pbcustomauthdata : *mut u8, pdwsizeofcustomauthdata : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetCustomAuthDataW(pszphonebook : ::windows_sys::core::PCWSTR, pszentry : ::windows_sys::core::PCWSTR, pbcustomauthdata : *mut u8, pdwsizeofcustomauthdata : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasGetEapUserDataA(htoken : super::super::Foundation:: HANDLE, pszphonebook : ::windows_sys::core::PCSTR, pszentry : ::windows_sys::core::PCSTR, pbeapdata : *mut u8, pdwsizeofeapdata : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasGetEapUserDataW(htoken : super::super::Foundation:: HANDLE, pszphonebook : ::windows_sys::core::PCWSTR, pszentry : ::windows_sys::core::PCWSTR, pbeapdata : *mut u8, pdwsizeofeapdata : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasGetEapUserIdentityA(pszphonebook : ::windows_sys::core::PCSTR, pszentry : ::windows_sys::core::PCSTR, dwflags : u32, hwnd : super::super::Foundation:: HWND, ppraseapuseridentity : *mut *mut RASEAPUSERIDENTITYA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasGetEapUserIdentityW(pszphonebook : ::windows_sys::core::PCWSTR, pszentry : ::windows_sys::core::PCWSTR, dwflags : u32, hwnd : super::super::Foundation:: HWND, ppraseapuseridentity : *mut *mut RASEAPUSERIDENTITYW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasGetEntryDialParamsA(param0 : ::windows_sys::core::PCSTR, param1 : *mut RASDIALPARAMSA, param2 : *mut super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasGetEntryDialParamsW(param0 : ::windows_sys::core::PCWSTR, param1 : *mut RASDIALPARAMSW, param2 : *mut super::super::Foundation:: BOOL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn RasGetEntryPropertiesA(param0 : ::windows_sys::core::PCSTR, param1 : ::windows_sys::core::PCSTR, param2 : *mut RASENTRYA, param3 : *mut u32, param4 : *mut u8, param5 : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn RasGetEntryPropertiesW(param0 : ::windows_sys::core::PCWSTR, param1 : ::windows_sys::core::PCWSTR, param2 : *mut RASENTRYW, param3 : *mut u32, param4 : *mut u8, param5 : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetErrorStringA(resourceid : u32, lpszstring : ::windows_sys::core::PSTR, inbufsize : u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetErrorStringW(resourceid : u32, lpszstring : ::windows_sys::core::PWSTR, inbufsize : u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetLinkStatistics(hrasconn : HRASCONN, dwsubentry : u32, lpstatistics : *mut RAS_STATS) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetPCscf(lpszpcscf : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetProjectionInfoA(param0 : HRASCONN, param1 : RASPROJECTION, param2 : *mut ::core::ffi::c_void, param3 : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn RasGetProjectionInfoEx(hrasconn : HRASCONN, prasprojection : *mut RAS_PROJECTION_INFO, lpdwsize : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetProjectionInfoW(param0 : HRASCONN, param1 : RASPROJECTION, param2 : *mut ::core::ffi::c_void, param3 : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetSubEntryHandleA(param0 : HRASCONN, param1 : u32, param2 : *mut HRASCONN) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetSubEntryHandleW(param0 : HRASCONN, param1 : u32, param2 : *mut HRASCONN) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetSubEntryPropertiesA(param0 : ::windows_sys::core::PCSTR, param1 : ::windows_sys::core::PCSTR, param2 : u32, param3 : *mut RASSUBENTRYA, param4 : *mut u32, param5 : *mut u8, param6 : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasGetSubEntryPropertiesW(param0 : ::windows_sys::core::PCWSTR, param1 : ::windows_sys::core::PCWSTR, param2 : u32, param3 : *mut RASSUBENTRYW, param4 : *mut u32, param5 : *mut u8, param6 : *mut u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasHangUpA(param0 : HRASCONN) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasHangUpW(param0 : HRASCONN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasInvokeEapUI(param0 : HRASCONN, param1 : u32, param2 : *const RASDIALEXTENSIONS, param3 : super::super::Foundation:: HWND) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasdlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasPhonebookDlgA(lpszphonebook : ::windows_sys::core::PCSTR, lpszentry : ::windows_sys::core::PCSTR, lpinfo : *mut RASPBDLGA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasdlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasPhonebookDlgW(lpszphonebook : ::windows_sys::core::PCWSTR, lpszentry : ::windows_sys::core::PCWSTR, lpinfo : *mut RASPBDLGW) -> super::super::Foundation:: BOOL); +::windows_targets::link!("rasapi32.dll" "system" fn RasRenameEntryA(param0 : ::windows_sys::core::PCSTR, param1 : ::windows_sys::core::PCSTR, param2 : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasRenameEntryW(param0 : ::windows_sys::core::PCWSTR, param1 : ::windows_sys::core::PCWSTR, param2 : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasSetAutodialAddressA(param0 : ::windows_sys::core::PCSTR, param1 : u32, param2 : *const RASAUTODIALENTRYA, param3 : u32, param4 : u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasSetAutodialAddressW(param0 : ::windows_sys::core::PCWSTR, param1 : u32, param2 : *const RASAUTODIALENTRYW, param3 : u32, param4 : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasSetAutodialEnableA(param0 : u32, param1 : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasSetAutodialEnableW(param0 : u32, param1 : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasSetAutodialParamA(param0 : u32, param1 : *const ::core::ffi::c_void, param2 : u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasSetAutodialParamW(param0 : u32, param1 : *const ::core::ffi::c_void, param2 : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasSetCredentialsA(param0 : ::windows_sys::core::PCSTR, param1 : ::windows_sys::core::PCSTR, param2 : *const RASCREDENTIALSA, param3 : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasSetCredentialsW(param0 : ::windows_sys::core::PCWSTR, param1 : ::windows_sys::core::PCWSTR, param2 : *const RASCREDENTIALSW, param3 : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasSetCustomAuthDataA(pszphonebook : ::windows_sys::core::PCSTR, pszentry : ::windows_sys::core::PCSTR, pbcustomauthdata : *const u8, dwsizeofcustomauthdata : u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasSetCustomAuthDataW(pszphonebook : ::windows_sys::core::PCWSTR, pszentry : ::windows_sys::core::PCWSTR, pbcustomauthdata : *const u8, dwsizeofcustomauthdata : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasSetEapUserDataA(htoken : super::super::Foundation:: HANDLE, pszphonebook : ::windows_sys::core::PCSTR, pszentry : ::windows_sys::core::PCSTR, pbeapdata : *const u8, dwsizeofeapdata : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasSetEapUserDataW(htoken : super::super::Foundation:: HANDLE, pszphonebook : ::windows_sys::core::PCWSTR, pszentry : ::windows_sys::core::PCWSTR, pbeapdata : *const u8, dwsizeofeapdata : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasSetEntryDialParamsA(param0 : ::windows_sys::core::PCSTR, param1 : *const RASDIALPARAMSA, param2 : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RasSetEntryDialParamsW(param0 : ::windows_sys::core::PCWSTR, param1 : *const RASDIALPARAMSW, param2 : super::super::Foundation:: BOOL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn RasSetEntryPropertiesA(param0 : ::windows_sys::core::PCSTR, param1 : ::windows_sys::core::PCSTR, param2 : *const RASENTRYA, param3 : u32, param4 : *const u8, param5 : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn RasSetEntryPropertiesW(param0 : ::windows_sys::core::PCWSTR, param1 : ::windows_sys::core::PCWSTR, param2 : *const RASENTRYW, param3 : u32, param4 : *const u8, param5 : u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasSetSubEntryPropertiesA(param0 : ::windows_sys::core::PCSTR, param1 : ::windows_sys::core::PCSTR, param2 : u32, param3 : *const RASSUBENTRYA, param4 : u32, param5 : *const u8, param6 : u32) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasSetSubEntryPropertiesW(param0 : ::windows_sys::core::PCWSTR, param1 : ::windows_sys::core::PCWSTR, param2 : u32, param3 : *const RASSUBENTRYW, param4 : u32, param5 : *const u8, param6 : u32) -> u32); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("rasapi32.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn RasUpdateConnection(hrasconn : HRASCONN, lprasupdateconn : *const RASUPDATECONN) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasValidateEntryNameA(param0 : ::windows_sys::core::PCSTR, param1 : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("rasapi32.dll" "system" fn RasValidateEntryNameW(param0 : ::windows_sys::core::PCWSTR, param1 : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmAddNextHop(rtmreghandle : isize, nexthopinfo : *mut RTM_NEXTHOP_INFO, nexthophandle : *mut isize, changeflags : *mut u32) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmAddRouteToDest(rtmreghandle : isize, routehandle : *mut isize, destaddress : *mut RTM_NET_ADDRESS, routeinfo : *mut RTM_ROUTE_INFO, timetolive : u32, routelisthandle : isize, notifytype : u32, notifyhandle : isize, changeflags : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmBlockMethods(rtmreghandle : isize, targethandle : super::super::Foundation:: HANDLE, targettype : u8, blockingflag : u32) -> u32); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn RtmConvertIpv6AddressAndLengthToNetAddress(pnetaddress : *mut RTM_NET_ADDRESS, address : super::super::Networking::WinSock:: IN6_ADDR, dwlength : u32, dwaddresssize : u32) -> u32); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn RtmConvertNetAddressToIpv6AddressAndLength(pnetaddress : *mut RTM_NET_ADDRESS, paddress : *mut super::super::Networking::WinSock:: IN6_ADDR, plength : *mut u32, dwaddresssize : u32) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmCreateDestEnum(rtmreghandle : isize, targetviews : u32, enumflags : u32, netaddress : *mut RTM_NET_ADDRESS, protocolid : u32, rtmenumhandle : *mut isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmCreateNextHopEnum(rtmreghandle : isize, enumflags : u32, netaddress : *mut RTM_NET_ADDRESS, rtmenumhandle : *mut isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmCreateRouteEnum(rtmreghandle : isize, desthandle : isize, targetviews : u32, enumflags : u32, startdest : *mut RTM_NET_ADDRESS, matchingflags : u32, criteriaroute : *mut RTM_ROUTE_INFO, criteriainterface : u32, rtmenumhandle : *mut isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmCreateRouteList(rtmreghandle : isize, routelisthandle : *mut isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmCreateRouteListEnum(rtmreghandle : isize, routelisthandle : isize, rtmenumhandle : *mut isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmDeleteEnumHandle(rtmreghandle : isize, enumhandle : isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmDeleteNextHop(rtmreghandle : isize, nexthophandle : isize, nexthopinfo : *mut RTM_NEXTHOP_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmDeleteRouteList(rtmreghandle : isize, routelisthandle : isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmDeleteRouteToDest(rtmreghandle : isize, routehandle : isize, changeflags : *mut u32) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmDeregisterEntity(rtmreghandle : isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmDeregisterFromChangeNotification(rtmreghandle : isize, notifyhandle : isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmFindNextHop(rtmreghandle : isize, nexthopinfo : *mut RTM_NEXTHOP_INFO, nexthophandle : *mut isize, nexthoppointer : *mut *mut RTM_NEXTHOP_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmGetChangeStatus(rtmreghandle : isize, notifyhandle : isize, desthandle : isize, changestatus : *mut super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmGetChangedDests(rtmreghandle : isize, notifyhandle : isize, numdests : *mut u32, changeddests : *mut RTM_DEST_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmGetDestInfo(rtmreghandle : isize, desthandle : isize, protocolid : u32, targetviews : u32, destinfo : *mut RTM_DEST_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmGetEntityInfo(rtmreghandle : isize, entityhandle : isize, entityinfo : *mut RTM_ENTITY_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmGetEntityMethods(rtmreghandle : isize, entityhandle : isize, nummethods : *mut u32, exptmethods : *mut RTM_ENTITY_EXPORT_METHOD) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmGetEnumDests(rtmreghandle : isize, enumhandle : isize, numdests : *mut u32, destinfos : *mut RTM_DEST_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmGetEnumNextHops(rtmreghandle : isize, enumhandle : isize, numnexthops : *mut u32, nexthophandles : *mut isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmGetEnumRoutes(rtmreghandle : isize, enumhandle : isize, numroutes : *mut u32, routehandles : *mut isize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmGetExactMatchDestination(rtmreghandle : isize, destaddress : *mut RTM_NET_ADDRESS, protocolid : u32, targetviews : u32, destinfo : *mut RTM_DEST_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmGetExactMatchRoute(rtmreghandle : isize, destaddress : *mut RTM_NET_ADDRESS, matchingflags : u32, routeinfo : *mut RTM_ROUTE_INFO, interfaceindex : u32, targetviews : u32, routehandle : *mut isize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmGetLessSpecificDestination(rtmreghandle : isize, desthandle : isize, protocolid : u32, targetviews : u32, destinfo : *mut RTM_DEST_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmGetListEnumRoutes(rtmreghandle : isize, enumhandle : isize, numroutes : *mut u32, routehandles : *mut isize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmGetMostSpecificDestination(rtmreghandle : isize, destaddress : *mut RTM_NET_ADDRESS, protocolid : u32, targetviews : u32, destinfo : *mut RTM_DEST_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmGetNextHopInfo(rtmreghandle : isize, nexthophandle : isize, nexthopinfo : *mut RTM_NEXTHOP_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmGetNextHopPointer(rtmreghandle : isize, nexthophandle : isize, nexthoppointer : *mut *mut RTM_NEXTHOP_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmGetOpaqueInformationPointer(rtmreghandle : isize, desthandle : isize, opaqueinfopointer : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmGetRegisteredEntities(rtmreghandle : isize, numentities : *mut u32, entityhandles : *mut isize, entityinfos : *mut RTM_ENTITY_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmGetRouteInfo(rtmreghandle : isize, routehandle : isize, routeinfo : *mut RTM_ROUTE_INFO, destaddress : *mut RTM_NET_ADDRESS) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmGetRoutePointer(rtmreghandle : isize, routehandle : isize, routepointer : *mut *mut RTM_ROUTE_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmHoldDestination(rtmreghandle : isize, desthandle : isize, targetviews : u32, holdtime : u32) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmIgnoreChangedDests(rtmreghandle : isize, notifyhandle : isize, numdests : u32, changeddests : *mut isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmInsertInRouteList(rtmreghandle : isize, routelisthandle : isize, numroutes : u32, routehandles : *mut isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmInvokeMethod(rtmreghandle : isize, entityhandle : isize, input : *mut RTM_ENTITY_METHOD_INPUT, outputsize : *mut u32, output : *mut RTM_ENTITY_METHOD_OUTPUT) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmIsBestRoute(rtmreghandle : isize, routehandle : isize, bestinviews : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmIsMarkedForChangeNotification(rtmreghandle : isize, notifyhandle : isize, desthandle : isize, destmarked : *mut super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmLockDestination(rtmreghandle : isize, desthandle : isize, exclusive : super::super::Foundation:: BOOL, lockdest : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmLockNextHop(rtmreghandle : isize, nexthophandle : isize, exclusive : super::super::Foundation:: BOOL, locknexthop : super::super::Foundation:: BOOL, nexthoppointer : *mut *mut RTM_NEXTHOP_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmLockRoute(rtmreghandle : isize, routehandle : isize, exclusive : super::super::Foundation:: BOOL, lockroute : super::super::Foundation:: BOOL, routepointer : *mut *mut RTM_ROUTE_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmMarkDestForChangeNotification(rtmreghandle : isize, notifyhandle : isize, desthandle : isize, markdest : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmReferenceHandles(rtmreghandle : isize, numhandles : u32, rtmhandles : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmRegisterEntity(rtmentityinfo : *mut RTM_ENTITY_INFO, exportmethods : *mut RTM_ENTITY_EXPORT_METHODS, eventcallback : RTM_EVENT_CALLBACK, reserveopaquepointer : super::super::Foundation:: BOOL, rtmregprofile : *mut RTM_REGN_PROFILE, rtmreghandle : *mut isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmRegisterForChangeNotification(rtmreghandle : isize, targetviews : u32, notifyflags : u32, notifycontext : *mut ::core::ffi::c_void, notifyhandle : *mut isize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmReleaseChangedDests(rtmreghandle : isize, notifyhandle : isize, numdests : u32, changeddests : *mut RTM_DEST_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmReleaseDestInfo(rtmreghandle : isize, destinfo : *mut RTM_DEST_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtmReleaseDests(rtmreghandle : isize, numdests : u32, destinfos : *mut RTM_DEST_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmReleaseEntities(rtmreghandle : isize, numentities : u32, entityhandles : *mut isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmReleaseEntityInfo(rtmreghandle : isize, entityinfo : *mut RTM_ENTITY_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmReleaseNextHopInfo(rtmreghandle : isize, nexthopinfo : *mut RTM_NEXTHOP_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmReleaseNextHops(rtmreghandle : isize, numnexthops : u32, nexthophandles : *mut isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmReleaseRouteInfo(rtmreghandle : isize, routeinfo : *mut RTM_ROUTE_INFO) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmReleaseRoutes(rtmreghandle : isize, numroutes : u32, routehandles : *mut isize) -> u32); +::windows_targets::link!("rtm.dll" "system" fn RtmUpdateAndUnlockRoute(rtmreghandle : isize, routehandle : isize, timetolive : u32, routelisthandle : isize, notifytype : u32, notifyhandle : isize, changeflags : *mut u32) -> u32); +pub const ALLOW_NO_AUTH: u32 = 1u32; +pub const ALL_SOURCES: MGM_ENUM_TYPES = 1i32; +pub const ANY_SOURCE: MGM_ENUM_TYPES = 0i32; +pub const ATADDRESSLEN: u32 = 32u32; +pub const DO_NOT_ALLOW_NO_AUTH: u32 = 0u32; +pub const ERROR_ACCESSING_TCPCFGDLL: u32 = 727u32; +pub const ERROR_ACCT_DISABLED: u32 = 647u32; +pub const ERROR_ACCT_EXPIRED: u32 = 708u32; +pub const ERROR_ACTION_REQUIRED: u32 = 877u32; +pub const ERROR_ALLOCATING_MEMORY: u32 = 664u32; +pub const ERROR_ALREADY_DISCONNECTING: u32 = 617u32; +pub const ERROR_ASYNC_REQUEST_PENDING: u32 = 616u32; +pub const ERROR_AUTHENTICATION_FAILURE: u32 = 691u32; +pub const ERROR_AUTH_INTERNAL: u32 = 645u32; +pub const ERROR_AUTOMATIC_VPN_FAILED: u32 = 800u32; +pub const ERROR_BAD_ADDRESS_SPECIFIED: u32 = 769u32; +pub const ERROR_BAD_CALLBACK_NUMBER: u32 = 704u32; +pub const ERROR_BAD_PHONE_NUMBER: u32 = 749u32; +pub const ERROR_BAD_STRING: u32 = 637u32; +pub const ERROR_BAD_USAGE_IN_INI_FILE: u32 = 669u32; +pub const ERROR_BIPLEX_PORT_NOT_AVAILABLE: u32 = 712u32; +pub const ERROR_BLOCKED: u32 = 775u32; +pub const ERROR_BROADBAND_ACTIVE: u32 = 813u32; +pub const ERROR_BROADBAND_NO_NIC: u32 = 814u32; +pub const ERROR_BROADBAND_TIMEOUT: u32 = 815u32; +pub const ERROR_BUFFER_INVALID: u32 = 610u32; +pub const ERROR_BUFFER_TOO_SMALL: u32 = 603u32; +pub const ERROR_BUNDLE_NOT_FOUND: u32 = 754u32; +pub const ERROR_CANNOT_DELETE: u32 = 817u32; +pub const ERROR_CANNOT_DO_CUSTOMDIAL: u32 = 755u32; +pub const ERROR_CANNOT_FIND_PHONEBOOK_ENTRY: u32 = 623u32; +pub const ERROR_CANNOT_GET_LANA: u32 = 639u32; +pub const ERROR_CANNOT_INITIATE_MOBIKE_UPDATE: u32 = 844u32; +pub const ERROR_CANNOT_LOAD_PHONEBOOK: u32 = 622u32; +pub const ERROR_CANNOT_LOAD_STRING: u32 = 626u32; +pub const ERROR_CANNOT_OPEN_PHONEBOOK: u32 = 621u32; +pub const ERROR_CANNOT_PROJECT_CLIENT: u32 = 634u32; +pub const ERROR_CANNOT_SET_PORT_INFO: u32 = 605u32; +pub const ERROR_CANNOT_SHARE_CONNECTION: u32 = 763u32; +pub const ERROR_CANNOT_USE_LOGON_CREDENTIALS: u32 = 739u32; +pub const ERROR_CANNOT_WRITE_PHONEBOOK: u32 = 624u32; +pub const ERROR_CERT_FOR_ENCRYPTION_NOT_FOUND: u32 = 781u32; +pub const ERROR_CHANGING_PASSWORD: u32 = 709u32; +pub const ERROR_CMD_TOO_LONG: u32 = 700u32; +pub const ERROR_CONGESTION: u32 = 771u32; +pub const ERROR_CONNECTING_DEVICE_NOT_FOUND: u32 = 797u32; +pub const ERROR_CONNECTION_ALREADY_SHARED: u32 = 758u32; +pub const ERROR_CONNECTION_REJECT: u32 = 770u32; +pub const ERROR_CORRUPT_PHONEBOOK: u32 = 625u32; +pub const ERROR_DCB_NOT_FOUND: u32 = 694u32; +pub const ERROR_DEFAULTOFF_MACRO_NOT_FOUND: u32 = 656u32; +pub const ERROR_DEVICENAME_NOT_FOUND: u32 = 659u32; +pub const ERROR_DEVICENAME_TOO_LONG: u32 = 658u32; +pub const ERROR_DEVICETYPE_DOES_NOT_EXIST: u32 = 609u32; +pub const ERROR_DEVICE_COMPLIANCE: u32 = 875u32; +pub const ERROR_DEVICE_DOES_NOT_EXIST: u32 = 608u32; +pub const ERROR_DEVICE_NOT_READY: u32 = 666u32; +pub const ERROR_DIAL_ALREADY_IN_PROGRESS: u32 = 756u32; +pub const ERROR_DISCONNECTION: u32 = 628u32; +pub const ERROR_DNSNAME_NOT_RESOLVABLE: u32 = 868u32; +pub const ERROR_DONOTDISTURB: u32 = 776u32; +pub const ERROR_EAPTLS_CACHE_CREDENTIALS_INVALID: u32 = 826u32; +pub const ERROR_EAPTLS_PASSWD_INVALID: u32 = 869u32; +pub const ERROR_EAPTLS_SCARD_CACHE_CREDENTIALS_INVALID: u32 = 847u32; +pub const ERROR_EAP_METHOD_DOES_NOT_SUPPORT_SSO: u32 = 851u32; +pub const ERROR_EAP_METHOD_NOT_INSTALLED: u32 = 850u32; +pub const ERROR_EAP_METHOD_OPERATION_NOT_SUPPORTED: u32 = 852u32; +pub const ERROR_EAP_SERVER_CERT_EXPIRED: u32 = 858u32; +pub const ERROR_EAP_SERVER_CERT_INVALID: u32 = 857u32; +pub const ERROR_EAP_SERVER_CERT_OTHER_ERROR: u32 = 860u32; +pub const ERROR_EAP_SERVER_CERT_REVOKED: u32 = 859u32; +pub const ERROR_EAP_SERVER_ROOT_CERT_INVALID: u32 = 865u32; +pub const ERROR_EAP_SERVER_ROOT_CERT_NAME_REQUIRED: u32 = 866u32; +pub const ERROR_EAP_SERVER_ROOT_CERT_NOT_FOUND: u32 = 864u32; +pub const ERROR_EAP_USER_CERT_EXPIRED: u32 = 854u32; +pub const ERROR_EAP_USER_CERT_INVALID: u32 = 853u32; +pub const ERROR_EAP_USER_CERT_OTHER_ERROR: u32 = 856u32; +pub const ERROR_EAP_USER_CERT_REVOKED: u32 = 855u32; +pub const ERROR_EAP_USER_ROOT_CERT_EXPIRED: u32 = 863u32; +pub const ERROR_EAP_USER_ROOT_CERT_INVALID: u32 = 862u32; +pub const ERROR_EAP_USER_ROOT_CERT_NOT_FOUND: u32 = 861u32; +pub const ERROR_EMPTY_INI_FILE: u32 = 690u32; +pub const ERROR_EVENT_INVALID: u32 = 607u32; +pub const ERROR_FAILED_CP_REQUIRED: u32 = 841u32; +pub const ERROR_FAILED_TO_ENCRYPT: u32 = 768u32; +pub const ERROR_FAST_USER_SWITCH: u32 = 831u32; +pub const ERROR_FEATURE_DEPRECATED: u32 = 816u32; +pub const ERROR_FILE_COULD_NOT_BE_OPENED: u32 = 657u32; +pub const ERROR_FROM_DEVICE: u32 = 651u32; +pub const ERROR_HANGUP_FAILED: u32 = 753u32; +pub const ERROR_HARDWARE_FAILURE: u32 = 630u32; +pub const ERROR_HIBERNATION: u32 = 832u32; +pub const ERROR_IDLE_TIMEOUT: u32 = 828u32; +pub const ERROR_IKEV2_PSK_INTERFACE_ALREADY_EXISTS: u32 = 870u32; +pub const ERROR_INCOMPATIBLE: u32 = 772u32; +pub const ERROR_INTERACTIVE_MODE: u32 = 703u32; +pub const ERROR_INTERNAL_ADDRESS_FAILURE: u32 = 840u32; +pub const ERROR_INVALID_AUTH_STATE: u32 = 705u32; +pub const ERROR_INVALID_CALLBACK_NUMBER: u32 = 751u32; +pub const ERROR_INVALID_COMPRESSION_SPECIFIED: u32 = 613u32; +pub const ERROR_INVALID_DESTINATION_IP: u32 = 871u32; +pub const ERROR_INVALID_FUNCTION_FOR_ENTRY: u32 = 780u32; +pub const ERROR_INVALID_INTERFACE_CONFIG: u32 = 872u32; +pub const ERROR_INVALID_MSCHAPV2_CONFIG: u32 = 805u32; +pub const ERROR_INVALID_PEAP_COOKIE_ATTRIBUTES: u32 = 849u32; +pub const ERROR_INVALID_PEAP_COOKIE_CONFIG: u32 = 803u32; +pub const ERROR_INVALID_PEAP_COOKIE_USER: u32 = 804u32; +pub const ERROR_INVALID_PORT_HANDLE: u32 = 601u32; +pub const ERROR_INVALID_PREFERENCES: u32 = 846u32; +pub const ERROR_INVALID_SERVER_CERT: u32 = 835u32; +pub const ERROR_INVALID_SIZE: u32 = 632u32; +pub const ERROR_INVALID_SMM: u32 = 745u32; +pub const ERROR_INVALID_TUNNELID: u32 = 837u32; +pub const ERROR_INVALID_VPNSTRATEGY: u32 = 825u32; +pub const ERROR_IN_COMMAND: u32 = 681u32; +pub const ERROR_IPSEC_SERVICE_STOPPED: u32 = 827u32; +pub const ERROR_IPXCP_DIALOUT_ALREADY_ACTIVE: u32 = 726u32; +pub const ERROR_IPXCP_NET_NUMBER_CONFLICT: u32 = 744u32; +pub const ERROR_IPXCP_NO_DIALIN_CONFIGURED: u32 = 725u32; +pub const ERROR_IPXCP_NO_DIALOUT_CONFIGURED: u32 = 724u32; +pub const ERROR_IP_CONFIGURATION: u32 = 716u32; +pub const ERROR_KEY_NOT_FOUND: u32 = 627u32; +pub const ERROR_LINE_BUSY: u32 = 676u32; +pub const ERROR_LINK_FAILURE: u32 = 829u32; +pub const ERROR_MACRO_NOT_DEFINED: u32 = 654u32; +pub const ERROR_MACRO_NOT_FOUND: u32 = 653u32; +pub const ERROR_MESSAGE_MACRO_NOT_FOUND: u32 = 655u32; +pub const ERROR_MOBIKE_DISABLED: u32 = 843u32; +pub const ERROR_NAME_EXISTS_ON_NET: u32 = 642u32; +pub const ERROR_NETBIOS_ERROR: u32 = 640u32; +pub const ERROR_NOT_BINARY_MACRO: u32 = 693u32; +pub const ERROR_NOT_NAP_CAPABLE: u32 = 836u32; +pub const ERROR_NO_ACTIVE_ISDN_LINES: u32 = 713u32; +pub const ERROR_NO_ANSWER: u32 = 678u32; +pub const ERROR_NO_CARRIER: u32 = 679u32; +pub const ERROR_NO_CERTIFICATE: u32 = 766u32; +pub const ERROR_NO_COMMAND_FOUND: u32 = 661u32; +pub const ERROR_NO_CONNECTION: u32 = 668u32; +pub const ERROR_NO_DIALIN_PERMISSION: u32 = 649u32; +pub const ERROR_NO_DIALTONE: u32 = 680u32; +pub const ERROR_NO_DIFF_USER_AT_LOGON: u32 = 784u32; +pub const ERROR_NO_EAPTLS_CERTIFICATE: u32 = 798u32; +pub const ERROR_NO_ENDPOINTS: u32 = 620u32; +pub const ERROR_NO_IP_ADDRESSES: u32 = 717u32; +pub const ERROR_NO_IP_RAS_ADAPTER: u32 = 728u32; +pub const ERROR_NO_ISDN_CHANNELS_AVAILABLE: u32 = 714u32; +pub const ERROR_NO_LOCAL_ENCRYPTION: u32 = 741u32; +pub const ERROR_NO_MAC_FOR_PORT: u32 = 747u32; +pub const ERROR_NO_REG_CERT_AT_LOGON: u32 = 785u32; +pub const ERROR_NO_REMOTE_ENCRYPTION: u32 = 742u32; +pub const ERROR_NO_RESPONSES: u32 = 660u32; +pub const ERROR_NO_SMART_CARD_READER: u32 = 764u32; +pub const ERROR_NUMBERCHANGED: u32 = 773u32; +pub const ERROR_OAKLEY_ATTRIB_FAIL: u32 = 788u32; +pub const ERROR_OAKLEY_AUTH_FAIL: u32 = 787u32; +pub const ERROR_OAKLEY_ERROR: u32 = 793u32; +pub const ERROR_OAKLEY_GENERAL_PROCESSING: u32 = 789u32; +pub const ERROR_OAKLEY_NO_CERT: u32 = 786u32; +pub const ERROR_OAKLEY_NO_PEER_CERT: u32 = 790u32; +pub const ERROR_OAKLEY_NO_POLICY: u32 = 791u32; +pub const ERROR_OAKLEY_TIMED_OUT: u32 = 792u32; +pub const ERROR_OUTOFORDER: u32 = 777u32; +pub const ERROR_OUT_OF_BUFFERS: u32 = 614u32; +pub const ERROR_OVERRUN: u32 = 710u32; +pub const ERROR_PARTIAL_RESPONSE_LOOPING: u32 = 697u32; +pub const ERROR_PASSWD_EXPIRED: u32 = 648u32; +pub const ERROR_PEAP_CRYPTOBINDING_INVALID: u32 = 823u32; +pub const ERROR_PEAP_CRYPTOBINDING_NOTRECEIVED: u32 = 824u32; +pub const ERROR_PEAP_IDENTITY_MISMATCH: u32 = 867u32; +pub const ERROR_PEAP_SERVER_REJECTED_CLIENT_TLV: u32 = 845u32; +pub const ERROR_PHONE_NUMBER_TOO_LONG: u32 = 723u32; +pub const ERROR_PLUGIN_NOT_INSTALLED: u32 = 876u32; +pub const ERROR_PORT_ALREADY_OPEN: u32 = 602u32; +pub const ERROR_PORT_DISCONNECTED: u32 = 619u32; +pub const ERROR_PORT_NOT_AVAILABLE: u32 = 633u32; +pub const ERROR_PORT_NOT_CONFIGURED: u32 = 665u32; +pub const ERROR_PORT_NOT_CONNECTED: u32 = 606u32; +pub const ERROR_PORT_NOT_FOUND: u32 = 615u32; +pub const ERROR_PORT_NOT_OPEN: u32 = 618u32; +pub const ERROR_PORT_OR_DEVICE: u32 = 692u32; +pub const ERROR_PPP_CP_REJECTED: u32 = 733u32; +pub const ERROR_PPP_INVALID_PACKET: u32 = 722u32; +pub const ERROR_PPP_LCP_TERMINATED: u32 = 734u32; +pub const ERROR_PPP_LOOPBACK_DETECTED: u32 = 737u32; +pub const ERROR_PPP_NCP_TERMINATED: u32 = 736u32; +pub const ERROR_PPP_NOT_CONVERGING: u32 = 732u32; +pub const ERROR_PPP_NO_ADDRESS_ASSIGNED: u32 = 738u32; +pub const ERROR_PPP_NO_PROTOCOLS_CONFIGURED: u32 = 720u32; +pub const ERROR_PPP_NO_RESPONSE: u32 = 721u32; +pub const ERROR_PPP_REMOTE_TERMINATED: u32 = 719u32; +pub const ERROR_PPP_REQUIRED_ADDRESS_REJECTED: u32 = 735u32; +pub const ERROR_PPP_TIMEOUT: u32 = 718u32; +pub const ERROR_PROJECTION_NOT_COMPLETE: u32 = 730u32; +pub const ERROR_PROTOCOL_ENGINE_DISABLED: u32 = 839u32; +pub const ERROR_PROTOCOL_NOT_CONFIGURED: u32 = 731u32; +pub const ERROR_RASAUTO_CANNOT_INITIALIZE: u32 = 757u32; +pub const ERROR_RASMAN_CANNOT_INITIALIZE: u32 = 711u32; +pub const ERROR_RASMAN_SERVICE_STOPPED: u32 = 834u32; +pub const ERROR_RASQEC_CONN_DOESNOTEXIST: u32 = 821u32; +pub const ERROR_RASQEC_NAPAGENT_NOT_CONNECTED: u32 = 820u32; +pub const ERROR_RASQEC_NAPAGENT_NOT_ENABLED: u32 = 819u32; +pub const ERROR_RASQEC_RESOURCE_CREATION_FAILED: u32 = 818u32; +pub const ERROR_RASQEC_TIMEOUT: u32 = 822u32; +pub const ERROR_READING_DEFAULTOFF: u32 = 689u32; +pub const ERROR_READING_DEVICENAME: u32 = 672u32; +pub const ERROR_READING_DEVICETYPE: u32 = 671u32; +pub const ERROR_READING_INI_FILE: u32 = 667u32; +pub const ERROR_READING_MAXCARRIERBPS: u32 = 675u32; +pub const ERROR_READING_MAXCONNECTBPS: u32 = 674u32; +pub const ERROR_READING_SCARD: u32 = 802u32; +pub const ERROR_READING_SECTIONNAME: u32 = 670u32; +pub const ERROR_READING_USAGE: u32 = 673u32; +pub const ERROR_RECV_BUF_FULL: u32 = 699u32; +pub const ERROR_REMOTE_DISCONNECTION: u32 = 629u32; +pub const ERROR_REMOTE_REQUIRES_ENCRYPTION: u32 = 743u32; +pub const ERROR_REQUEST_TIMEOUT: u32 = 638u32; +pub const ERROR_RESTRICTED_LOGON_HOURS: u32 = 646u32; +pub const ERROR_ROUTE_NOT_ALLOCATED: u32 = 612u32; +pub const ERROR_ROUTE_NOT_AVAILABLE: u32 = 611u32; +pub const ERROR_SCRIPT_SYNTAX: u32 = 752u32; +pub const ERROR_SERVER_GENERAL_NET_FAILURE: u32 = 643u32; +pub const ERROR_SERVER_NOT_RESPONDING: u32 = 650u32; +pub const ERROR_SERVER_OUT_OF_RESOURCES: u32 = 641u32; +pub const ERROR_SERVER_POLICY: u32 = 812u32; +pub const ERROR_SHARE_CONNECTION_FAILED: u32 = 761u32; +pub const ERROR_SHARING_ADDRESS_EXISTS: u32 = 765u32; +pub const ERROR_SHARING_CHANGE_FAILED: u32 = 759u32; +pub const ERROR_SHARING_HOST_ADDRESS_CONFLICT: u32 = 799u32; +pub const ERROR_SHARING_MULTIPLE_ADDRESSES: u32 = 767u32; +pub const ERROR_SHARING_NO_PRIVATE_LAN: u32 = 783u32; +pub const ERROR_SHARING_PRIVATE_INSTALL: u32 = 762u32; +pub const ERROR_SHARING_ROUTER_INSTALL: u32 = 760u32; +pub const ERROR_SHARING_RRAS_CONFLICT: u32 = 782u32; +pub const ERROR_SLIP_REQUIRES_IP: u32 = 729u32; +pub const ERROR_SMART_CARD_REQUIRED: u32 = 779u32; +pub const ERROR_SMM_TIMEOUT: u32 = 748u32; +pub const ERROR_SMM_UNINITIALIZED: u32 = 746u32; +pub const ERROR_SSO_CERT_MISSING: u32 = 874u32; +pub const ERROR_SSTP_COOKIE_SET_FAILURE: u32 = 848u32; +pub const ERROR_STATE_MACHINES_ALREADY_STARTED: u32 = 696u32; +pub const ERROR_STATE_MACHINES_NOT_STARTED: u32 = 695u32; +pub const ERROR_SYSTEM_SUSPENDED: u32 = 833u32; +pub const ERROR_TAPI_CONFIGURATION: u32 = 740u32; +pub const ERROR_TEMPFAILURE: u32 = 774u32; +pub const ERROR_TOO_MANY_LINE_ERRORS: u32 = 715u32; +pub const ERROR_TS_UNACCEPTABLE: u32 = 842u32; +pub const ERROR_UNABLE_TO_AUTHENTICATE_SERVER: u32 = 778u32; +pub const ERROR_UNEXPECTED_RESPONSE: u32 = 702u32; +pub const ERROR_UNKNOWN: u32 = 635u32; +pub const ERROR_UNKNOWN_DEVICE_TYPE: u32 = 663u32; +pub const ERROR_UNKNOWN_FRAMED_PROTOCOL: u32 = 794u32; +pub const ERROR_UNKNOWN_RESPONSE_KEY: u32 = 698u32; +pub const ERROR_UNKNOWN_SERVICE_TYPE: u32 = 796u32; +pub const ERROR_UNRECOGNIZED_RESPONSE: u32 = 652u32; +pub const ERROR_UNSUPPORTED_BPS: u32 = 701u32; +pub const ERROR_UPDATECONNECTION_REQUEST_IN_PROCESS: u32 = 838u32; +pub const ERROR_USER_DISCONNECTION: u32 = 631u32; +pub const ERROR_USER_LOGOFF: u32 = 830u32; +pub const ERROR_VALIDATING_SERVER_CERT: u32 = 801u32; +pub const ERROR_VOICE_ANSWER: u32 = 677u32; +pub const ERROR_VPN_BAD_CERT: u32 = 810u32; +pub const ERROR_VPN_BAD_PSK: u32 = 811u32; +pub const ERROR_VPN_DISCONNECT: u32 = 807u32; +pub const ERROR_VPN_GRE_BLOCKED: u32 = 806u32; +pub const ERROR_VPN_PLUGIN_GENERIC: u32 = 873u32; +pub const ERROR_VPN_REFUSED: u32 = 808u32; +pub const ERROR_VPN_TIMEOUT: u32 = 809u32; +pub const ERROR_WRITING_DEFAULTOFF: u32 = 688u32; +pub const ERROR_WRITING_DEVICENAME: u32 = 684u32; +pub const ERROR_WRITING_DEVICETYPE: u32 = 683u32; +pub const ERROR_WRITING_INITBPS: u32 = 706u32; +pub const ERROR_WRITING_MAXCARRIERBPS: u32 = 686u32; +pub const ERROR_WRITING_MAXCONNECTBPS: u32 = 685u32; +pub const ERROR_WRITING_SECTIONNAME: u32 = 682u32; +pub const ERROR_WRITING_USAGE: u32 = 687u32; +pub const ERROR_WRONG_DEVICE_ATTACHED: u32 = 636u32; +pub const ERROR_WRONG_INFO_SPECIFIED: u32 = 604u32; +pub const ERROR_WRONG_KEY_SPECIFIED: u32 = 662u32; +pub const ERROR_WRONG_MODULE: u32 = 750u32; +pub const ERROR_WRONG_TUNNEL_TYPE: u32 = 795u32; +pub const ERROR_X25_DIAGNOSTIC: u32 = 707u32; +pub const ET_None: u32 = 0u32; +pub const ET_Optional: u32 = 3u32; +pub const ET_Require: u32 = 1u32; +pub const ET_RequireMax: u32 = 2u32; +pub const IKEV2_ID_PAYLOAD_TYPE_DER_ASN1_DN: IKEV2_ID_PAYLOAD_TYPE = 9i32; +pub const IKEV2_ID_PAYLOAD_TYPE_DER_ASN1_GN: IKEV2_ID_PAYLOAD_TYPE = 10i32; +pub const IKEV2_ID_PAYLOAD_TYPE_FQDN: IKEV2_ID_PAYLOAD_TYPE = 2i32; +pub const IKEV2_ID_PAYLOAD_TYPE_ID_IPV6_ADDR: IKEV2_ID_PAYLOAD_TYPE = 5i32; +pub const IKEV2_ID_PAYLOAD_TYPE_INVALID: IKEV2_ID_PAYLOAD_TYPE = 0i32; +pub const IKEV2_ID_PAYLOAD_TYPE_IPV4_ADDR: IKEV2_ID_PAYLOAD_TYPE = 1i32; +pub const IKEV2_ID_PAYLOAD_TYPE_KEY_ID: IKEV2_ID_PAYLOAD_TYPE = 11i32; +pub const IKEV2_ID_PAYLOAD_TYPE_MAX: IKEV2_ID_PAYLOAD_TYPE = 12i32; +pub const IKEV2_ID_PAYLOAD_TYPE_RESERVED1: IKEV2_ID_PAYLOAD_TYPE = 4i32; +pub const IKEV2_ID_PAYLOAD_TYPE_RESERVED2: IKEV2_ID_PAYLOAD_TYPE = 6i32; +pub const IKEV2_ID_PAYLOAD_TYPE_RESERVED3: IKEV2_ID_PAYLOAD_TYPE = 7i32; +pub const IKEV2_ID_PAYLOAD_TYPE_RESERVED4: IKEV2_ID_PAYLOAD_TYPE = 8i32; +pub const IKEV2_ID_PAYLOAD_TYPE_RFC822_ADDR: IKEV2_ID_PAYLOAD_TYPE = 3i32; +pub const IPADDRESSLEN: u32 = 15u32; +pub const IPV6_ADDRESS_LEN_IN_BYTES: u32 = 16u32; +pub const IPXADDRESSLEN: u32 = 22u32; +pub const MAXIPADRESSLEN: u32 = 64u32; +pub const MAX_SSTP_HASH_SIZE: u32 = 32u32; +pub const METHOD_BGP4_AS_PATH: u32 = 1u32; +pub const METHOD_BGP4_NEXTHOP_ATTR: u32 = 8u32; +pub const METHOD_BGP4_PA_ORIGIN: u32 = 4u32; +pub const METHOD_BGP4_PEER_ID: u32 = 2u32; +pub const METHOD_RIP2_NEIGHBOUR_ADDR: u32 = 1u32; +pub const METHOD_RIP2_OUTBOUND_INTF: u32 = 2u32; +pub const METHOD_RIP2_ROUTE_TAG: u32 = 4u32; +pub const METHOD_RIP2_ROUTE_TIMESTAMP: u32 = 8u32; +pub const METHOD_TYPE_ALL_METHODS: u32 = 4294967295u32; +pub const MGM_FORWARD_STATE_FLAG: u32 = 2u32; +pub const MGM_JOIN_STATE_FLAG: u32 = 1u32; +pub const MGM_MFE_STATS_0: u32 = 1u32; +pub const MGM_MFE_STATS_1: u32 = 2u32; +pub const MPRAPI_ADMIN_DLL_VERSION_1: u32 = 1u32; +pub const MPRAPI_ADMIN_DLL_VERSION_2: u32 = 2u32; +pub const MPRAPI_IF_CUSTOM_CONFIG_FOR_IKEV2: u32 = 1u32; +pub const MPRAPI_IKEV2_AUTH_USING_CERT: u32 = 1u32; +pub const MPRAPI_IKEV2_AUTH_USING_EAP: u32 = 2u32; +pub const MPRAPI_IKEV2_PROJECTION_INFO_TYPE: u32 = 2u32; +pub const MPRAPI_IKEV2_SET_TUNNEL_CONFIG_PARAMS: u32 = 1u32; +pub const MPRAPI_L2TP_SET_TUNNEL_CONFIG_PARAMS: u32 = 1u32; +pub const MPRAPI_MPR_IF_CUSTOM_CONFIG_OBJECT_REVISION_1: u32 = 1u32; +pub const MPRAPI_MPR_IF_CUSTOM_CONFIG_OBJECT_REVISION_2: u32 = 2u32; +pub const MPRAPI_MPR_IF_CUSTOM_CONFIG_OBJECT_REVISION_3: u32 = 3u32; +pub const MPRAPI_MPR_SERVER_OBJECT_REVISION_1: u32 = 1u32; +pub const MPRAPI_MPR_SERVER_OBJECT_REVISION_2: u32 = 2u32; +pub const MPRAPI_MPR_SERVER_OBJECT_REVISION_3: u32 = 3u32; +pub const MPRAPI_MPR_SERVER_OBJECT_REVISION_4: u32 = 4u32; +pub const MPRAPI_MPR_SERVER_OBJECT_REVISION_5: u32 = 5u32; +pub const MPRAPI_MPR_SERVER_SET_CONFIG_OBJECT_REVISION_1: u32 = 1u32; +pub const MPRAPI_MPR_SERVER_SET_CONFIG_OBJECT_REVISION_2: u32 = 2u32; +pub const MPRAPI_MPR_SERVER_SET_CONFIG_OBJECT_REVISION_3: u32 = 3u32; +pub const MPRAPI_MPR_SERVER_SET_CONFIG_OBJECT_REVISION_4: u32 = 4u32; +pub const MPRAPI_MPR_SERVER_SET_CONFIG_OBJECT_REVISION_5: u32 = 5u32; +pub const MPRAPI_OBJECT_TYPE_AUTH_VALIDATION_OBJECT: MPRAPI_OBJECT_TYPE = 4i32; +pub const MPRAPI_OBJECT_TYPE_IF_CUSTOM_CONFIG_OBJECT: MPRAPI_OBJECT_TYPE = 6i32; +pub const MPRAPI_OBJECT_TYPE_MPR_SERVER_OBJECT: MPRAPI_OBJECT_TYPE = 2i32; +pub const MPRAPI_OBJECT_TYPE_MPR_SERVER_SET_CONFIG_OBJECT: MPRAPI_OBJECT_TYPE = 3i32; +pub const MPRAPI_OBJECT_TYPE_RAS_CONNECTION_OBJECT: MPRAPI_OBJECT_TYPE = 1i32; +pub const MPRAPI_OBJECT_TYPE_UPDATE_CONNECTION_OBJECT: MPRAPI_OBJECT_TYPE = 5i32; +pub const MPRAPI_PPP_PROJECTION_INFO_TYPE: u32 = 1u32; +pub const MPRAPI_RAS_CONNECTION_OBJECT_REVISION_1: u32 = 1u32; +pub const MPRAPI_RAS_UPDATE_CONNECTION_OBJECT_REVISION_1: u32 = 1u32; +pub const MPRAPI_SET_CONFIG_PROTOCOL_FOR_GRE: u32 = 16u32; +pub const MPRAPI_SET_CONFIG_PROTOCOL_FOR_IKEV2: u32 = 8u32; +pub const MPRAPI_SET_CONFIG_PROTOCOL_FOR_L2TP: u32 = 2u32; +pub const MPRAPI_SET_CONFIG_PROTOCOL_FOR_PPTP: u32 = 1u32; +pub const MPRAPI_SET_CONFIG_PROTOCOL_FOR_SSTP: u32 = 4u32; +pub const MPRDM_DialAll: MPR_INTERFACE_DIAL_MODE = 1u32; +pub const MPRDM_DialAsNeeded: MPR_INTERFACE_DIAL_MODE = 2u32; +pub const MPRDM_DialFirst: MPR_INTERFACE_DIAL_MODE = 0u32; +pub const MPRDT_Atm: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ATM"); +pub const MPRDT_FrameRelay: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FRAMERELAY"); +pub const MPRDT_Generic: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GENERIC"); +pub const MPRDT_Irda: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IRDA"); +pub const MPRDT_Isdn: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("isdn"); +pub const MPRDT_Modem: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("modem"); +pub const MPRDT_Pad: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("pad"); +pub const MPRDT_Parallel: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PARALLEL"); +pub const MPRDT_SW56: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SW56"); +pub const MPRDT_Serial: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SERIAL"); +pub const MPRDT_Sonet: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SONET"); +pub const MPRDT_Vpn: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("vpn"); +pub const MPRDT_X25: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("x25"); +pub const MPRET_Direct: u32 = 3u32; +pub const MPRET_Phone: u32 = 1u32; +pub const MPRET_Vpn: u32 = 2u32; +pub const MPRIDS_Disabled: u32 = 4294967295u32; +pub const MPRIDS_UseGlobalValue: u32 = 0u32; +pub const MPRIO_DisableLcpExtensions: u32 = 32u32; +pub const MPRIO_IpHeaderCompression: u32 = 8u32; +pub const MPRIO_IpSecPreSharedKey: u32 = 2147483648u32; +pub const MPRIO_NetworkLogon: u32 = 8192u32; +pub const MPRIO_PromoteAlternates: u32 = 32768u32; +pub const MPRIO_RemoteDefaultGateway: u32 = 16u32; +pub const MPRIO_RequireCHAP: u32 = 134217728u32; +pub const MPRIO_RequireDataEncryption: u32 = 4096u32; +pub const MPRIO_RequireEAP: u32 = 131072u32; +pub const MPRIO_RequireEncryptedPw: u32 = 1024u32; +pub const MPRIO_RequireMachineCertificates: u32 = 16777216u32; +pub const MPRIO_RequireMsCHAP: u32 = 268435456u32; +pub const MPRIO_RequireMsCHAP2: u32 = 536870912u32; +pub const MPRIO_RequireMsEncryptedPw: u32 = 2048u32; +pub const MPRIO_RequirePAP: u32 = 262144u32; +pub const MPRIO_RequireSPAP: u32 = 524288u32; +pub const MPRIO_SecureLocalFiles: u32 = 65536u32; +pub const MPRIO_SharedPhoneNumbers: u32 = 8388608u32; +pub const MPRIO_SpecificIpAddr: u32 = 2u32; +pub const MPRIO_SpecificNameServers: u32 = 4u32; +pub const MPRIO_SwCompression: u32 = 512u32; +pub const MPRIO_UsePreSharedKeyForIkev2Initiator: u32 = 33554432u32; +pub const MPRIO_UsePreSharedKeyForIkev2Responder: u32 = 67108864u32; +pub const MPRNP_Ip: u32 = 4u32; +pub const MPRNP_Ipv6: u32 = 8u32; +pub const MPRNP_Ipx: u32 = 2u32; +pub const MPR_ENABLE_RAS_ON_DEVICE: u32 = 1u32; +pub const MPR_ENABLE_ROUTING_ON_DEVICE: u32 = 2u32; +pub const MPR_ET_None: MPR_ET = 0u32; +pub const MPR_ET_Optional: MPR_ET = 3u32; +pub const MPR_ET_Require: MPR_ET = 1u32; +pub const MPR_ET_RequireMax: MPR_ET = 2u32; +pub const MPR_INTERFACE_ADMIN_DISABLED: u32 = 2u32; +pub const MPR_INTERFACE_CONNECTION_FAILURE: u32 = 4u32; +pub const MPR_INTERFACE_DIALOUT_HOURS_RESTRICTION: u32 = 16u32; +pub const MPR_INTERFACE_NO_DEVICE: u32 = 64u32; +pub const MPR_INTERFACE_NO_MEDIA_SENSE: u32 = 32u32; +pub const MPR_INTERFACE_OUT_OF_RESOURCES: u32 = 1u32; +pub const MPR_INTERFACE_SERVICE_PAUSED: u32 = 8u32; +pub const MPR_MaxAreaCode: u32 = 10u32; +pub const MPR_MaxCallbackNumber: u32 = 128u32; +pub const MPR_MaxDeviceName: u32 = 128u32; +pub const MPR_MaxDeviceType: u32 = 16u32; +pub const MPR_MaxEntryName: u32 = 256u32; +pub const MPR_MaxFacilities: u32 = 200u32; +pub const MPR_MaxIpAddress: u32 = 15u32; +pub const MPR_MaxIpxAddress: u32 = 21u32; +pub const MPR_MaxPadType: u32 = 32u32; +pub const MPR_MaxPhoneNumber: u32 = 128u32; +pub const MPR_MaxUserData: u32 = 200u32; +pub const MPR_MaxX25Address: u32 = 200u32; +pub const MPR_VPN_TS_IPv4_ADDR_RANGE: MPR_VPN_TS_TYPE = 7i32; +pub const MPR_VPN_TS_IPv6_ADDR_RANGE: MPR_VPN_TS_TYPE = 8i32; +pub const MPR_VS_Default: MPR_VS = 0u32; +pub const MPR_VS_Ikev2First: u32 = 8u32; +pub const MPR_VS_Ikev2Only: u32 = 7u32; +pub const MPR_VS_L2tpFirst: MPR_VS = 4u32; +pub const MPR_VS_L2tpOnly: MPR_VS = 3u32; +pub const MPR_VS_PptpFirst: MPR_VS = 2u32; +pub const MPR_VS_PptpOnly: MPR_VS = 1u32; +pub const PENDING: u32 = 600u32; +pub const PID_ATALK: u32 = 41u32; +pub const PID_IP: u32 = 33u32; +pub const PID_IPV6: u32 = 87u32; +pub const PID_IPX: u32 = 43u32; +pub const PID_NBF: u32 = 63u32; +pub const PPP_CCP_COMPRESSION: u32 = 1u32; +pub const PPP_CCP_ENCRYPTION128BIT: u32 = 64u32; +pub const PPP_CCP_ENCRYPTION40BIT: u32 = 32u32; +pub const PPP_CCP_ENCRYPTION40BITOLD: u32 = 16u32; +pub const PPP_CCP_ENCRYPTION56BIT: u32 = 128u32; +pub const PPP_CCP_HISTORYLESS: u32 = 16777216u32; +pub const PPP_IPCP_VJ: u32 = 1u32; +pub const PPP_LCP_3_DES: u32 = 32u32; +pub const PPP_LCP_ACFC: u32 = 4u32; +pub const PPP_LCP_AES_128: u32 = 64u32; +pub const PPP_LCP_AES_192: u32 = 256u32; +pub const PPP_LCP_AES_256: u32 = 128u32; +pub const PPP_LCP_CHAP: PPP_LCP = 49699u32; +pub const PPP_LCP_CHAP_MD5: PPP_LCP_INFO_AUTH_DATA = 5u32; +pub const PPP_LCP_CHAP_MS: PPP_LCP_INFO_AUTH_DATA = 128u32; +pub const PPP_LCP_CHAP_MSV2: PPP_LCP_INFO_AUTH_DATA = 129u32; +pub const PPP_LCP_DES_56: u32 = 16u32; +pub const PPP_LCP_EAP: PPP_LCP = 49703u32; +pub const PPP_LCP_GCM_AES_128: u32 = 512u32; +pub const PPP_LCP_GCM_AES_192: u32 = 1024u32; +pub const PPP_LCP_GCM_AES_256: u32 = 2048u32; +pub const PPP_LCP_MULTILINK_FRAMING: u32 = 1u32; +pub const PPP_LCP_PAP: PPP_LCP = 49187u32; +pub const PPP_LCP_PFC: u32 = 2u32; +pub const PPP_LCP_SPAP: PPP_LCP = 49191u32; +pub const PPP_LCP_SSHF: u32 = 8u32; +pub const PROJECTION_INFO_TYPE_IKEv2: RASPROJECTION_INFO_TYPE = 2i32; +pub const PROJECTION_INFO_TYPE_PPP: RASPROJECTION_INFO_TYPE = 1i32; +pub const RASADFLG_PositionDlg: u32 = 1u32; +pub const RASADP_ConnectionQueryTimeout: u32 = 4u32; +pub const RASADP_DisableConnectionQuery: u32 = 0u32; +pub const RASADP_FailedConnectionTimeout: u32 = 3u32; +pub const RASADP_LoginSessionDisable: u32 = 1u32; +pub const RASADP_SavedAddressesLimit: u32 = 2u32; +pub const RASAPIVERSION_500: RASAPIVERSION = 1i32; +pub const RASAPIVERSION_501: RASAPIVERSION = 2i32; +pub const RASAPIVERSION_600: RASAPIVERSION = 3i32; +pub const RASAPIVERSION_601: RASAPIVERSION = 4i32; +pub const RASBASE: u32 = 600u32; +pub const RASBASEEND: u32 = 877u32; +pub const RASCCPCA_MPPC: u32 = 6u32; +pub const RASCCPCA_STAC: u32 = 5u32; +pub const RASCCPO_Compression: u32 = 1u32; +pub const RASCCPO_Encryption128bit: u32 = 64u32; +pub const RASCCPO_Encryption40bit: u32 = 32u32; +pub const RASCCPO_Encryption56bit: u32 = 16u32; +pub const RASCCPO_HistoryLess: u32 = 2u32; +pub const RASCF_AllUsers: u32 = 1u32; +pub const RASCF_GlobalCreds: u32 = 2u32; +pub const RASCF_OwnerKnown: u32 = 4u32; +pub const RASCF_OwnerMatch: u32 = 8u32; +pub const RASCM_DDMPreSharedKey: u32 = 64u32; +pub const RASCM_DefaultCreds: u32 = 8u32; +pub const RASCM_Domain: u32 = 4u32; +pub const RASCM_Password: u32 = 2u32; +pub const RASCM_PreSharedKey: u32 = 16u32; +pub const RASCM_ServerPreSharedKey: u32 = 32u32; +pub const RASCM_UserName: u32 = 1u32; +pub const RASCN_BandwidthAdded: u32 = 4u32; +pub const RASCN_BandwidthRemoved: u32 = 8u32; +pub const RASCN_Connection: u32 = 1u32; +pub const RASCN_Disconnection: u32 = 2u32; +pub const RASCN_Dormant: u32 = 16u32; +pub const RASCN_EPDGPacketArrival: u32 = 64u32; +pub const RASCN_ReConnection: u32 = 32u32; +pub const RASCSS_DONE: u32 = 8192u32; +pub const RASCSS_Dormant: RASCONNSUBSTATE = 1i32; +pub const RASCSS_None: RASCONNSUBSTATE = 0i32; +pub const RASCSS_Reconnected: RASCONNSUBSTATE = 8192i32; +pub const RASCSS_Reconnecting: RASCONNSUBSTATE = 2i32; +pub const RASCS_AllDevicesConnected: RASCONNSTATE = 4i32; +pub const RASCS_ApplySettings: RASCONNSTATE = 24i32; +pub const RASCS_AuthAck: RASCONNSTATE = 12i32; +pub const RASCS_AuthCallback: RASCONNSTATE = 8i32; +pub const RASCS_AuthChangePassword: RASCONNSTATE = 9i32; +pub const RASCS_AuthLinkSpeed: RASCONNSTATE = 11i32; +pub const RASCS_AuthNotify: RASCONNSTATE = 6i32; +pub const RASCS_AuthProject: RASCONNSTATE = 10i32; +pub const RASCS_AuthRetry: RASCONNSTATE = 7i32; +pub const RASCS_Authenticate: RASCONNSTATE = 5i32; +pub const RASCS_Authenticated: RASCONNSTATE = 14i32; +pub const RASCS_CallbackComplete: RASCONNSTATE = 20i32; +pub const RASCS_CallbackSetByCaller: RASCONNSTATE = 4098i32; +pub const RASCS_ConnectDevice: RASCONNSTATE = 2i32; +pub const RASCS_Connected: RASCONNSTATE = 8192i32; +pub const RASCS_DONE: u32 = 8192u32; +pub const RASCS_DeviceConnected: RASCONNSTATE = 3i32; +pub const RASCS_Disconnected: RASCONNSTATE = 8193i32; +pub const RASCS_Interactive: RASCONNSTATE = 4096i32; +pub const RASCS_InvokeEapUI: RASCONNSTATE = 4100i32; +pub const RASCS_LogonNetwork: RASCONNSTATE = 21i32; +pub const RASCS_OpenPort: RASCONNSTATE = 0i32; +pub const RASCS_PAUSED: u32 = 4096u32; +pub const RASCS_PasswordExpired: RASCONNSTATE = 4099i32; +pub const RASCS_PortOpened: RASCONNSTATE = 1i32; +pub const RASCS_PrepareForCallback: RASCONNSTATE = 15i32; +pub const RASCS_Projected: RASCONNSTATE = 18i32; +pub const RASCS_ReAuthenticate: RASCONNSTATE = 13i32; +pub const RASCS_RetryAuthentication: RASCONNSTATE = 4097i32; +pub const RASCS_StartAuthentication: RASCONNSTATE = 19i32; +pub const RASCS_SubEntryConnected: RASCONNSTATE = 22i32; +pub const RASCS_SubEntryDisconnected: RASCONNSTATE = 23i32; +pub const RASCS_WaitForCallback: RASCONNSTATE = 17i32; +pub const RASCS_WaitForModemReset: RASCONNSTATE = 16i32; +pub const RASDDFLAG_AoacRedial: u32 = 4u32; +pub const RASDDFLAG_LinkFailure: u32 = 2147483648u32; +pub const RASDDFLAG_NoPrompt: u32 = 2u32; +pub const RASDDFLAG_PositionDlg: u32 = 1u32; +pub const RASDIALEVENT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("RasDialEvent"); +pub const RASDT_Atm: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ATM"); +pub const RASDT_FrameRelay: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FRAMERELAY"); +pub const RASDT_Generic: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GENERIC"); +pub const RASDT_Irda: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IRDA"); +pub const RASDT_Isdn: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("isdn"); +pub const RASDT_Modem: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("modem"); +pub const RASDT_PPPoE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PPPoE"); +pub const RASDT_Pad: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("pad"); +pub const RASDT_Parallel: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PARALLEL"); +pub const RASDT_SW56: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SW56"); +pub const RASDT_Serial: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SERIAL"); +pub const RASDT_Sonet: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SONET"); +pub const RASDT_Vpn: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("vpn"); +pub const RASDT_X25: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("x25"); +pub const RASEAPF_Logon: u32 = 4u32; +pub const RASEAPF_NonInteractive: u32 = 2u32; +pub const RASEAPF_Preview: u32 = 8u32; +pub const RASEDFLAG_CloneEntry: u32 = 4u32; +pub const RASEDFLAG_IncomingConnection: u32 = 1024u32; +pub const RASEDFLAG_InternetEntry: u32 = 256u32; +pub const RASEDFLAG_NAT: u32 = 512u32; +pub const RASEDFLAG_NewBroadbandEntry: u32 = 128u32; +pub const RASEDFLAG_NewDirectEntry: u32 = 64u32; +pub const RASEDFLAG_NewEntry: u32 = 2u32; +pub const RASEDFLAG_NewPhoneEntry: u32 = 16u32; +pub const RASEDFLAG_NewTunnelEntry: u32 = 32u32; +pub const RASEDFLAG_NoRename: u32 = 8u32; +pub const RASEDFLAG_PositionDlg: u32 = 1u32; +pub const RASEDFLAG_ShellOwned: u32 = 1073741824u32; +pub const RASEDM_DialAll: RASENTRY_DIAL_MODE = 1u32; +pub const RASEDM_DialAsNeeded: RASENTRY_DIAL_MODE = 2u32; +pub const RASEO2_AuthTypeIsOtp: u32 = 268435456u32; +pub const RASEO2_AutoTriggerCapable: u32 = 67108864u32; +pub const RASEO2_CacheCredentials: u32 = 33554432u32; +pub const RASEO2_DisableClassBasedStaticRoute: u32 = 524288u32; +pub const RASEO2_DisableIKENameEkuCheck: u32 = 262144u32; +pub const RASEO2_DisableMobility: u32 = 2097152u32; +pub const RASEO2_DisableNbtOverIP: u32 = 64u32; +pub const RASEO2_DontNegotiateMultilink: u32 = 4u32; +pub const RASEO2_DontUseRasCredentials: u32 = 8u32; +pub const RASEO2_IPv4ExplicitMetric: u32 = 65536u32; +pub const RASEO2_IPv6ExplicitMetric: u32 = 131072u32; +pub const RASEO2_IPv6RemoteDefaultGateway: u32 = 8192u32; +pub const RASEO2_IPv6SpecificNameServers: u32 = 4096u32; +pub const RASEO2_Internet: u32 = 32u32; +pub const RASEO2_IsAlwaysOn: u32 = 536870912u32; +pub const RASEO2_IsPrivateNetwork: u32 = 1073741824u32; +pub const RASEO2_IsThirdPartyProfile: u32 = 134217728u32; +pub const RASEO2_PlumbIKEv2TSAsRoutes: u32 = 2147483648u32; +pub const RASEO2_ReconnectIfDropped: u32 = 256u32; +pub const RASEO2_RegisterIpWithDNS: u32 = 16384u32; +pub const RASEO2_RequireMachineCertificates: u32 = 4194304u32; +pub const RASEO2_SecureClientForMSNet: u32 = 2u32; +pub const RASEO2_SecureFileAndPrint: u32 = 1u32; +pub const RASEO2_SecureRoutingCompartment: u32 = 1024u32; +pub const RASEO2_SharePhoneNumbers: u32 = 512u32; +pub const RASEO2_SpecificIPv6Addr: u32 = 1048576u32; +pub const RASEO2_UseDNSSuffixForRegistration: u32 = 32768u32; +pub const RASEO2_UseGlobalDeviceSettings: u32 = 128u32; +pub const RASEO2_UsePreSharedKey: u32 = 16u32; +pub const RASEO2_UsePreSharedKeyForIkev2Initiator: u32 = 8388608u32; +pub const RASEO2_UsePreSharedKeyForIkev2Responder: u32 = 16777216u32; +pub const RASEO2_UseTypicalSettings: u32 = 2048u32; +pub const RASEO_Custom: u32 = 1048576u32; +pub const RASEO_CustomScript: u32 = 2147483648u32; +pub const RASEO_DisableLcpExtensions: u32 = 32u32; +pub const RASEO_IpHeaderCompression: u32 = 8u32; +pub const RASEO_ModemLights: u32 = 256u32; +pub const RASEO_NetworkLogon: u32 = 8192u32; +pub const RASEO_PreviewDomain: u32 = 33554432u32; +pub const RASEO_PreviewPhoneNumber: u32 = 2097152u32; +pub const RASEO_PreviewUserPw: u32 = 16777216u32; +pub const RASEO_PromoteAlternates: u32 = 32768u32; +pub const RASEO_RemoteDefaultGateway: u32 = 16u32; +pub const RASEO_RequireCHAP: u32 = 134217728u32; +pub const RASEO_RequireDataEncryption: u32 = 4096u32; +pub const RASEO_RequireEAP: u32 = 131072u32; +pub const RASEO_RequireEncryptedPw: u32 = 1024u32; +pub const RASEO_RequireMsCHAP: u32 = 268435456u32; +pub const RASEO_RequireMsCHAP2: u32 = 536870912u32; +pub const RASEO_RequireMsEncryptedPw: u32 = 2048u32; +pub const RASEO_RequirePAP: u32 = 262144u32; +pub const RASEO_RequireSPAP: u32 = 524288u32; +pub const RASEO_RequireW95MSCHAP: u32 = 1073741824u32; +pub const RASEO_SecureLocalFiles: u32 = 65536u32; +pub const RASEO_SharedPhoneNumbers: u32 = 8388608u32; +pub const RASEO_ShowDialingProgress: u32 = 67108864u32; +pub const RASEO_SpecificIpAddr: u32 = 2u32; +pub const RASEO_SpecificNameServers: u32 = 4u32; +pub const RASEO_SwCompression: u32 = 512u32; +pub const RASEO_TerminalAfterDial: u32 = 128u32; +pub const RASEO_TerminalBeforeDial: u32 = 64u32; +pub const RASEO_UseCountryAndAreaCodes: u32 = 1u32; +pub const RASEO_UseLogonCredentials: u32 = 16384u32; +pub const RASET_Broadband: u32 = 5u32; +pub const RASET_Direct: u32 = 3u32; +pub const RASET_Internet: u32 = 4u32; +pub const RASET_Phone: u32 = 1u32; +pub const RASET_Vpn: u32 = 2u32; +pub const RASFP_Ppp: u32 = 1u32; +pub const RASFP_Ras: u32 = 4u32; +pub const RASFP_Slip: u32 = 2u32; +pub const RASIDS_Disabled: u32 = 4294967295u32; +pub const RASIDS_UseGlobalValue: u32 = 0u32; +pub const RASIKEv2_AUTH_EAP: u32 = 2u32; +pub const RASIKEv2_AUTH_MACHINECERTIFICATES: u32 = 1u32; +pub const RASIKEv2_AUTH_PSK: u32 = 3u32; +pub const RASIKEv2_FLAGS_BEHIND_NAT: RASIKEV_PROJECTION_INFO_FLAGS = 2u32; +pub const RASIKEv2_FLAGS_MOBIKESUPPORTED: RASIKEV_PROJECTION_INFO_FLAGS = 1u32; +pub const RASIKEv2_FLAGS_SERVERBEHIND_NAT: RASIKEV_PROJECTION_INFO_FLAGS = 4u32; +pub const RASIPO_VJ: u32 = 1u32; +pub const RASLCPAD_CHAP_MD5: RASPPP_PROJECTION_INFO_SERVER_AUTH_DATA = 5u32; +pub const RASLCPAD_CHAP_MS: RASPPP_PROJECTION_INFO_SERVER_AUTH_DATA = 128u32; +pub const RASLCPAD_CHAP_MSV2: RASPPP_PROJECTION_INFO_SERVER_AUTH_DATA = 129u32; +pub const RASLCPAP_CHAP: RASPPP_PROJECTION_INFO_SERVER_AUTH_PROTOCOL = 49699u32; +pub const RASLCPAP_EAP: RASPPP_PROJECTION_INFO_SERVER_AUTH_PROTOCOL = 49703u32; +pub const RASLCPAP_PAP: RASPPP_PROJECTION_INFO_SERVER_AUTH_PROTOCOL = 49187u32; +pub const RASLCPAP_SPAP: RASPPP_PROJECTION_INFO_SERVER_AUTH_PROTOCOL = 49191u32; +pub const RASLCPO_3_DES: u32 = 16u32; +pub const RASLCPO_ACFC: u32 = 2u32; +pub const RASLCPO_AES_128: u32 = 32u32; +pub const RASLCPO_AES_192: u32 = 128u32; +pub const RASLCPO_AES_256: u32 = 64u32; +pub const RASLCPO_DES_56: u32 = 8u32; +pub const RASLCPO_GCM_AES_128: u32 = 256u32; +pub const RASLCPO_GCM_AES_192: u32 = 512u32; +pub const RASLCPO_GCM_AES_256: u32 = 1024u32; +pub const RASLCPO_PFC: u32 = 1u32; +pub const RASLCPO_SSHF: u32 = 4u32; +pub const RASNAP_ProbationTime: u32 = 1u32; +pub const RASNOUSER_SmartCard: u32 = 1u32; +pub const RASNP_Ip: u32 = 4u32; +pub const RASNP_Ipv6: u32 = 8u32; +pub const RASNP_Ipx: u32 = 2u32; +pub const RASNP_NetBEUI: u32 = 1u32; +pub const RASPBDEVENT_AddEntry: u32 = 1u32; +pub const RASPBDEVENT_DialEntry: u32 = 4u32; +pub const RASPBDEVENT_EditEntry: u32 = 2u32; +pub const RASPBDEVENT_EditGlobals: u32 = 5u32; +pub const RASPBDEVENT_NoUser: u32 = 6u32; +pub const RASPBDEVENT_NoUserEdit: u32 = 7u32; +pub const RASPBDEVENT_RemoveEntry: u32 = 3u32; +pub const RASPBDFLAG_ForceCloseOnDial: u32 = 2u32; +pub const RASPBDFLAG_NoUser: u32 = 16u32; +pub const RASPBDFLAG_PositionDlg: u32 = 1u32; +pub const RASPBDFLAG_UpdateDefaults: u32 = 2147483648u32; +pub const RASPRIV2_DialinPolicy: u32 = 1u32; +pub const RASPRIV_AdminSetCallback: u32 = 2u32; +pub const RASPRIV_CallerSetCallback: u32 = 4u32; +pub const RASPRIV_DialinPrivilege: u32 = 8u32; +pub const RASPRIV_NoCallback: u32 = 1u32; +pub const RASP_Amb: RASPROJECTION = 65536i32; +pub const RASP_PppCcp: RASPROJECTION = 33021i32; +pub const RASP_PppIp: RASPROJECTION = 32801i32; +pub const RASP_PppIpv6: RASPROJECTION = 32855i32; +pub const RASP_PppIpx: RASPROJECTION = 32811i32; +pub const RASP_PppLcp: RASPROJECTION = 49185i32; +pub const RASP_PppNbf: RASPROJECTION = 32831i32; +pub const RASTUNNELENDPOINT_IPv4: u32 = 1u32; +pub const RASTUNNELENDPOINT_IPv6: u32 = 2u32; +pub const RASTUNNELENDPOINT_UNKNOWN: u32 = 0u32; +pub const RAS_FLAGS_ARAP_CONNECTION: RAS_FLAGS = 16u32; +pub const RAS_FLAGS_DORMANT: RAS_FLAGS = 32u32; +pub const RAS_FLAGS_IKEV2_CONNECTION: RAS_FLAGS = 16u32; +pub const RAS_FLAGS_MESSENGER_PRESENT: RAS_FLAGS = 2u32; +pub const RAS_FLAGS_PPP_CONNECTION: RAS_FLAGS = 1u32; +pub const RAS_FLAGS_QUARANTINE_PRESENT: RAS_FLAGS = 8u32; +pub const RAS_FLAGS_RAS_CONNECTION: u32 = 4u32; +pub const RAS_HARDWARE_FAILURE: RAS_HARDWARE_CONDITION = 1i32; +pub const RAS_HARDWARE_OPERATIONAL: RAS_HARDWARE_CONDITION = 0i32; +pub const RAS_MaxAreaCode: u32 = 10u32; +pub const RAS_MaxCallbackNumber: u32 = 128u32; +pub const RAS_MaxDeviceName: u32 = 128u32; +pub const RAS_MaxDeviceType: u32 = 16u32; +pub const RAS_MaxDnsSuffix: u32 = 256u32; +pub const RAS_MaxEntryName: u32 = 256u32; +pub const RAS_MaxFacilities: u32 = 200u32; +pub const RAS_MaxIDSize: u32 = 256u32; +pub const RAS_MaxIpAddress: u32 = 15u32; +pub const RAS_MaxIpxAddress: u32 = 21u32; +pub const RAS_MaxPadType: u32 = 32u32; +pub const RAS_MaxPhoneNumber: u32 = 128u32; +pub const RAS_MaxReplyMessage: u32 = 1024u32; +pub const RAS_MaxUserData: u32 = 200u32; +pub const RAS_MaxX25Address: u32 = 200u32; +pub const RAS_PORT_AUTHENTICATED: RAS_PORT_CONDITION = 5i32; +pub const RAS_PORT_AUTHENTICATING: RAS_PORT_CONDITION = 4i32; +pub const RAS_PORT_CALLING_BACK: RAS_PORT_CONDITION = 2i32; +pub const RAS_PORT_DISCONNECTED: RAS_PORT_CONDITION = 1i32; +pub const RAS_PORT_INITIALIZING: RAS_PORT_CONDITION = 6i32; +pub const RAS_PORT_LISTENING: RAS_PORT_CONDITION = 3i32; +pub const RAS_PORT_NON_OPERATIONAL: RAS_PORT_CONDITION = 0i32; +pub const RAS_QUAR_STATE_NORMAL: RAS_QUARANTINE_STATE = 0i32; +pub const RAS_QUAR_STATE_NOT_CAPABLE: RAS_QUARANTINE_STATE = 3i32; +pub const RAS_QUAR_STATE_PROBATION: RAS_QUARANTINE_STATE = 2i32; +pub const RAS_QUAR_STATE_QUARANTINE: RAS_QUARANTINE_STATE = 1i32; +pub const RCD_AllUsers: u32 = 1u32; +pub const RCD_Eap: u32 = 2u32; +pub const RCD_Logon: u32 = 4u32; +pub const RCD_SingleUser: u32 = 0u32; +pub const RDEOPT_CustomDial: u32 = 4096u32; +pub const RDEOPT_DisableConnectedUI: u32 = 64u32; +pub const RDEOPT_DisableReconnect: u32 = 256u32; +pub const RDEOPT_DisableReconnectUI: u32 = 128u32; +pub const RDEOPT_EapInfoCryptInCapable: u32 = 32768u32; +pub const RDEOPT_IgnoreModemSpeaker: u32 = 4u32; +pub const RDEOPT_IgnoreSoftwareCompression: u32 = 16u32; +pub const RDEOPT_InvokeAutoTriggerCredentialUI: u32 = 16384u32; +pub const RDEOPT_NoUser: u32 = 512u32; +pub const RDEOPT_PauseOnScript: u32 = 1024u32; +pub const RDEOPT_PausedStates: u32 = 2u32; +pub const RDEOPT_Router: u32 = 2048u32; +pub const RDEOPT_SetModemSpeaker: u32 = 8u32; +pub const RDEOPT_SetSoftwareCompression: u32 = 32u32; +pub const RDEOPT_UseCustomScripting: u32 = 8192u32; +pub const RDEOPT_UsePrefixSuffix: u32 = 1u32; +pub const REN_AllUsers: u32 = 1u32; +pub const REN_User: u32 = 0u32; +pub const ROUTER_IF_STATE_CONNECTED: ROUTER_CONNECTION_STATE = 3i32; +pub const ROUTER_IF_STATE_CONNECTING: ROUTER_CONNECTION_STATE = 2i32; +pub const ROUTER_IF_STATE_DISCONNECTED: ROUTER_CONNECTION_STATE = 1i32; +pub const ROUTER_IF_STATE_UNREACHABLE: ROUTER_CONNECTION_STATE = 0i32; +pub const ROUTER_IF_TYPE_CLIENT: ROUTER_INTERFACE_TYPE = 0i32; +pub const ROUTER_IF_TYPE_DEDICATED: ROUTER_INTERFACE_TYPE = 3i32; +pub const ROUTER_IF_TYPE_DIALOUT: ROUTER_INTERFACE_TYPE = 7i32; +pub const ROUTER_IF_TYPE_FULL_ROUTER: ROUTER_INTERFACE_TYPE = 2i32; +pub const ROUTER_IF_TYPE_HOME_ROUTER: ROUTER_INTERFACE_TYPE = 1i32; +pub const ROUTER_IF_TYPE_INTERNAL: ROUTER_INTERFACE_TYPE = 4i32; +pub const ROUTER_IF_TYPE_LOOPBACK: ROUTER_INTERFACE_TYPE = 5i32; +pub const ROUTER_IF_TYPE_MAX: ROUTER_INTERFACE_TYPE = 8i32; +pub const ROUTER_IF_TYPE_TUNNEL1: ROUTER_INTERFACE_TYPE = 6i32; +pub const RRAS_SERVICE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RemoteAccess"); +pub const RTM_BLOCK_METHODS: u32 = 1u32; +pub const RTM_CHANGE_NOTIFICATION: RTM_EVENT_TYPE = 3i32; +pub const RTM_CHANGE_TYPE_ALL: u32 = 1u32; +pub const RTM_CHANGE_TYPE_BEST: u32 = 2u32; +pub const RTM_CHANGE_TYPE_FORWARDING: u32 = 4u32; +pub const RTM_DEST_FLAG_DONT_FORWARD: u32 = 4u32; +pub const RTM_DEST_FLAG_FWD_ENGIN_ADD: u32 = 2u32; +pub const RTM_DEST_FLAG_NATURAL_NET: u32 = 1u32; +pub const RTM_ENTITY_DEREGISTERED: RTM_EVENT_TYPE = 1i32; +pub const RTM_ENTITY_REGISTERED: RTM_EVENT_TYPE = 0i32; +pub const RTM_ENUM_ALL_DESTS: u32 = 0u32; +pub const RTM_ENUM_ALL_ROUTES: u32 = 0u32; +pub const RTM_ENUM_NEXT: u32 = 1u32; +pub const RTM_ENUM_OWN_DESTS: u32 = 16777216u32; +pub const RTM_ENUM_OWN_ROUTES: u32 = 65536u32; +pub const RTM_ENUM_RANGE: u32 = 2u32; +pub const RTM_ENUM_START: u32 = 0u32; +pub const RTM_MATCH_FULL: u32 = 65535u32; +pub const RTM_MATCH_INTERFACE: u32 = 16u32; +pub const RTM_MATCH_NEIGHBOUR: u32 = 2u32; +pub const RTM_MATCH_NEXTHOP: u32 = 8u32; +pub const RTM_MATCH_NONE: u32 = 0u32; +pub const RTM_MATCH_OWNER: u32 = 1u32; +pub const RTM_MATCH_PREF: u32 = 4u32; +pub const RTM_MAX_ADDRESS_SIZE: u32 = 16u32; +pub const RTM_MAX_VIEWS: u32 = 32u32; +pub const RTM_NEXTHOP_CHANGE_NEW: u32 = 1u32; +pub const RTM_NEXTHOP_FLAGS_DOWN: u32 = 2u32; +pub const RTM_NEXTHOP_FLAGS_REMOTE: u32 = 1u32; +pub const RTM_NEXTHOP_STATE_CREATED: u32 = 0u32; +pub const RTM_NEXTHOP_STATE_DELETED: u32 = 1u32; +pub const RTM_NOTIFY_ONLY_MARKED_DESTS: u32 = 65536u32; +pub const RTM_NUM_CHANGE_TYPES: u32 = 3u32; +pub const RTM_RESUME_METHODS: u32 = 0u32; +pub const RTM_ROUTE_CHANGE_BEST: u32 = 65536u32; +pub const RTM_ROUTE_CHANGE_FIRST: u32 = 1u32; +pub const RTM_ROUTE_CHANGE_NEW: u32 = 2u32; +pub const RTM_ROUTE_EXPIRED: RTM_EVENT_TYPE = 2i32; +pub const RTM_ROUTE_FLAGS_BLACKHOLE: u32 = 2u32; +pub const RTM_ROUTE_FLAGS_DISCARD: u32 = 4u32; +pub const RTM_ROUTE_FLAGS_INACTIVE: u32 = 8u32; +pub const RTM_ROUTE_FLAGS_LIMITED_BC: u32 = 1024u32; +pub const RTM_ROUTE_FLAGS_LOCAL: u32 = 16u32; +pub const RTM_ROUTE_FLAGS_LOCAL_MCAST: u32 = 512u32; +pub const RTM_ROUTE_FLAGS_LOOPBACK: u32 = 128u32; +pub const RTM_ROUTE_FLAGS_MARTIAN: u32 = 1u32; +pub const RTM_ROUTE_FLAGS_MCAST: u32 = 256u32; +pub const RTM_ROUTE_FLAGS_MYSELF: u32 = 64u32; +pub const RTM_ROUTE_FLAGS_ONES_NETBC: u32 = 16384u32; +pub const RTM_ROUTE_FLAGS_ONES_SUBNETBC: u32 = 32768u32; +pub const RTM_ROUTE_FLAGS_REMOTE: u32 = 32u32; +pub const RTM_ROUTE_FLAGS_ZEROS_NETBC: u32 = 4096u32; +pub const RTM_ROUTE_FLAGS_ZEROS_SUBNETBC: u32 = 8192u32; +pub const RTM_ROUTE_STATE_CREATED: u32 = 0u32; +pub const RTM_ROUTE_STATE_DELETED: u32 = 2u32; +pub const RTM_ROUTE_STATE_DELETING: u32 = 1u32; +pub const RTM_VIEW_ID_MCAST: u32 = 1u32; +pub const RTM_VIEW_ID_UCAST: u32 = 0u32; +pub const RTM_VIEW_MASK_ALL: u32 = 4294967295u32; +pub const RTM_VIEW_MASK_ANY: u32 = 0u32; +pub const RTM_VIEW_MASK_MCAST: u32 = 2u32; +pub const RTM_VIEW_MASK_NONE: u32 = 0u32; +pub const RTM_VIEW_MASK_SIZE: u32 = 32u32; +pub const RTM_VIEW_MASK_UCAST: u32 = 1u32; +pub const SECURITYMSG_ERROR: SECURITY_MESSAGE_MSG_ID = 3u32; +pub const SECURITYMSG_FAILURE: SECURITY_MESSAGE_MSG_ID = 2u32; +pub const SECURITYMSG_SUCCESS: SECURITY_MESSAGE_MSG_ID = 1u32; +pub const VS_Default: u32 = 0u32; +pub const VS_GREOnly: u32 = 9u32; +pub const VS_Ikev2First: u32 = 8u32; +pub const VS_Ikev2Only: u32 = 7u32; +pub const VS_Ikev2Sstp: u32 = 14u32; +pub const VS_L2tpFirst: u32 = 4u32; +pub const VS_L2tpOnly: u32 = 3u32; +pub const VS_L2tpSstp: u32 = 13u32; +pub const VS_PptpFirst: u32 = 2u32; +pub const VS_PptpOnly: u32 = 1u32; +pub const VS_PptpSstp: u32 = 12u32; +pub const VS_ProtocolList: u32 = 15u32; +pub const VS_SstpFirst: u32 = 6u32; +pub const VS_SstpOnly: u32 = 5u32; +pub const WARNING_MSG_ALIAS_NOT_ADDED: u32 = 644u32; +pub const WM_RASDIALEVENT: u32 = 52429u32; +pub type IKEV2_ID_PAYLOAD_TYPE = i32; +pub type MGM_ENUM_TYPES = i32; +pub type MPRAPI_OBJECT_TYPE = i32; +pub type MPR_ET = u32; +pub type MPR_INTERFACE_DIAL_MODE = u32; +pub type MPR_VPN_TS_TYPE = i32; +pub type MPR_VS = u32; +pub type PPP_LCP = u32; +pub type PPP_LCP_INFO_AUTH_DATA = u32; +pub type RASAPIVERSION = i32; +pub type RASCONNSTATE = i32; +pub type RASCONNSUBSTATE = i32; +pub type RASENTRY_DIAL_MODE = u32; +pub type RASIKEV_PROJECTION_INFO_FLAGS = u32; +pub type RASPPP_PROJECTION_INFO_SERVER_AUTH_DATA = u32; +pub type RASPPP_PROJECTION_INFO_SERVER_AUTH_PROTOCOL = u32; +pub type RASPROJECTION = i32; +pub type RASPROJECTION_INFO_TYPE = i32; +pub type RAS_FLAGS = u32; +pub type RAS_HARDWARE_CONDITION = i32; +pub type RAS_PORT_CONDITION = i32; +pub type RAS_QUARANTINE_STATE = i32; +pub type ROUTER_CONNECTION_STATE = i32; +pub type ROUTER_INTERFACE_TYPE = i32; +pub type RTM_EVENT_TYPE = i32; +pub type SECURITY_MESSAGE_MSG_ID = u32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AUTH_VALIDATION_EX { + pub Header: MPRAPI_OBJECT_HEADER, + pub hRasConnection: super::super::Foundation::HANDLE, + pub wszUserName: [u16; 257], + pub wszLogonDomain: [u16; 16], + pub AuthInfoSize: u32, + pub AuthInfo: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AUTH_VALIDATION_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AUTH_VALIDATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GRE_CONFIG_PARAMS0 { + pub dwNumPorts: u32, + pub dwPortFlags: u32, +} +impl ::core::marker::Copy for GRE_CONFIG_PARAMS0 {} +impl ::core::clone::Clone for GRE_CONFIG_PARAMS0 { + fn clone(&self) -> Self { + *self + } +} +pub type HRASCONN = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct IKEV2_CONFIG_PARAMS { + pub dwNumPorts: u32, + pub dwPortFlags: u32, + pub dwTunnelConfigParamFlags: u32, + pub TunnelConfigParams: IKEV2_TUNNEL_CONFIG_PARAMS4, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for IKEV2_CONFIG_PARAMS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for IKEV2_CONFIG_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEV2_PROJECTION_INFO { + pub dwIPv4NegotiationError: u32, + pub wszAddress: [u16; 16], + pub wszRemoteAddress: [u16; 16], + pub IPv4SubInterfaceIndex: u64, + pub dwIPv6NegotiationError: u32, + pub bInterfaceIdentifier: [u8; 8], + pub bRemoteInterfaceIdentifier: [u8; 8], + pub bPrefix: [u8; 8], + pub dwPrefixLength: u32, + pub IPv6SubInterfaceIndex: u64, + pub dwOptions: u32, + pub dwAuthenticationProtocol: u32, + pub dwEapTypeId: u32, + pub dwCompressionAlgorithm: u32, + pub dwEncryptionMethod: u32, +} +impl ::core::marker::Copy for IKEV2_PROJECTION_INFO {} +impl ::core::clone::Clone for IKEV2_PROJECTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEV2_PROJECTION_INFO2 { + pub dwIPv4NegotiationError: u32, + pub wszAddress: [u16; 16], + pub wszRemoteAddress: [u16; 16], + pub IPv4SubInterfaceIndex: u64, + pub dwIPv6NegotiationError: u32, + pub bInterfaceIdentifier: [u8; 8], + pub bRemoteInterfaceIdentifier: [u8; 8], + pub bPrefix: [u8; 8], + pub dwPrefixLength: u32, + pub IPv6SubInterfaceIndex: u64, + pub dwOptions: u32, + pub dwAuthenticationProtocol: u32, + pub dwEapTypeId: u32, + pub dwEmbeddedEAPTypeId: u32, + pub dwCompressionAlgorithm: u32, + pub dwEncryptionMethod: u32, +} +impl ::core::marker::Copy for IKEV2_PROJECTION_INFO2 {} +impl ::core::clone::Clone for IKEV2_PROJECTION_INFO2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct IKEV2_TUNNEL_CONFIG_PARAMS2 { + pub dwIdleTimeout: u32, + pub dwNetworkBlackoutTime: u32, + pub dwSaLifeTime: u32, + pub dwSaDataSizeForRenegotiation: u32, + pub dwConfigOptions: u32, + pub dwTotalCertificates: u32, + pub certificateNames: *mut super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, + pub machineCertificateName: super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, + pub dwEncryptionType: u32, + pub customPolicy: *mut ROUTER_CUSTOM_IKEv2_POLICY0, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for IKEV2_TUNNEL_CONFIG_PARAMS2 {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for IKEV2_TUNNEL_CONFIG_PARAMS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct IKEV2_TUNNEL_CONFIG_PARAMS3 { + pub dwIdleTimeout: u32, + pub dwNetworkBlackoutTime: u32, + pub dwSaLifeTime: u32, + pub dwSaDataSizeForRenegotiation: u32, + pub dwConfigOptions: u32, + pub dwTotalCertificates: u32, + pub certificateNames: *mut super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, + pub machineCertificateName: super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, + pub dwEncryptionType: u32, + pub customPolicy: *mut ROUTER_CUSTOM_IKEv2_POLICY0, + pub dwTotalEkus: u32, + pub certificateEKUs: *mut MPR_CERT_EKU, + pub machineCertificateHash: super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for IKEV2_TUNNEL_CONFIG_PARAMS3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for IKEV2_TUNNEL_CONFIG_PARAMS3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct IKEV2_TUNNEL_CONFIG_PARAMS4 { + pub dwIdleTimeout: u32, + pub dwNetworkBlackoutTime: u32, + pub dwSaLifeTime: u32, + pub dwSaDataSizeForRenegotiation: u32, + pub dwConfigOptions: u32, + pub dwTotalCertificates: u32, + pub certificateNames: *mut super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, + pub machineCertificateName: super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, + pub dwEncryptionType: u32, + pub customPolicy: *mut ROUTER_CUSTOM_IKEv2_POLICY0, + pub dwTotalEkus: u32, + pub certificateEKUs: *mut MPR_CERT_EKU, + pub machineCertificateHash: super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, + pub dwMmSaLifeTime: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for IKEV2_TUNNEL_CONFIG_PARAMS4 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for IKEV2_TUNNEL_CONFIG_PARAMS4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct L2TP_CONFIG_PARAMS0 { + pub dwNumPorts: u32, + pub dwPortFlags: u32, +} +impl ::core::marker::Copy for L2TP_CONFIG_PARAMS0 {} +impl ::core::clone::Clone for L2TP_CONFIG_PARAMS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct L2TP_CONFIG_PARAMS1 { + pub dwNumPorts: u32, + pub dwPortFlags: u32, + pub dwTunnelConfigParamFlags: u32, + pub TunnelConfigParams: L2TP_TUNNEL_CONFIG_PARAMS2, +} +impl ::core::marker::Copy for L2TP_CONFIG_PARAMS1 {} +impl ::core::clone::Clone for L2TP_CONFIG_PARAMS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct L2TP_TUNNEL_CONFIG_PARAMS1 { + pub dwIdleTimeout: u32, + pub dwEncryptionType: u32, + pub dwSaLifeTime: u32, + pub dwSaDataSizeForRenegotiation: u32, + pub customPolicy: *mut ROUTER_CUSTOM_IKEv2_POLICY0, +} +impl ::core::marker::Copy for L2TP_TUNNEL_CONFIG_PARAMS1 {} +impl ::core::clone::Clone for L2TP_TUNNEL_CONFIG_PARAMS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct L2TP_TUNNEL_CONFIG_PARAMS2 { + pub dwIdleTimeout: u32, + pub dwEncryptionType: u32, + pub dwSaLifeTime: u32, + pub dwSaDataSizeForRenegotiation: u32, + pub customPolicy: *mut ROUTER_CUSTOM_IKEv2_POLICY0, + pub dwMmSaLifeTime: u32, +} +impl ::core::marker::Copy for L2TP_TUNNEL_CONFIG_PARAMS2 {} +impl ::core::clone::Clone for L2TP_TUNNEL_CONFIG_PARAMS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MGM_IF_ENTRY { + pub dwIfIndex: u32, + pub dwIfNextHopAddr: u32, + pub bIGMP: super::super::Foundation::BOOL, + pub bIsEnabled: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MGM_IF_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MGM_IF_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct MPRAPI_ADMIN_DLL_CALLBACKS { + pub revision: u8, + pub lpfnMprAdminGetIpAddressForUser: PMPRADMINGETIPADDRESSFORUSER, + pub lpfnMprAdminReleaseIpAddress: PMPRADMINRELEASEIPADRESS, + pub lpfnMprAdminGetIpv6AddressForUser: PMPRADMINGETIPV6ADDRESSFORUSER, + pub lpfnMprAdminReleaseIpV6AddressForUser: PMPRADMINRELEASEIPV6ADDRESSFORUSER, + pub lpfnRasAdminAcceptNewLink: PMPRADMINACCEPTNEWLINK, + pub lpfnRasAdminLinkHangupNotification: PMPRADMINLINKHANGUPNOTIFICATION, + pub lpfnRasAdminTerminateDll: PMPRADMINTERMINATEDLL, + pub lpfnRasAdminAcceptNewConnectionEx: PMPRADMINACCEPTNEWCONNECTIONEX, + pub lpfnRasAdminAcceptEndpointChangeEx: PMPRADMINACCEPTTUNNELENDPOINTCHANGEEX, + pub lpfnRasAdminAcceptReauthenticationEx: PMPRADMINACCEPTREAUTHENTICATIONEX, + pub lpfnRasAdminConnectionHangupNotificationEx: PMPRADMINCONNECTIONHANGUPNOTIFICATIONEX, + pub lpfnRASValidatePreAuthenticatedConnectionEx: PMPRADMINRASVALIDATEPREAUTHENTICATEDCONNECTIONEX, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MPRAPI_ADMIN_DLL_CALLBACKS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MPRAPI_ADMIN_DLL_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MPRAPI_OBJECT_HEADER { + pub revision: u8, + pub r#type: u8, + pub size: u16, +} +impl ::core::marker::Copy for MPRAPI_OBJECT_HEADER {} +impl ::core::clone::Clone for MPRAPI_OBJECT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct MPRAPI_TUNNEL_CONFIG_PARAMS0 { + pub IkeConfigParams: IKEV2_CONFIG_PARAMS, + pub PptpConfigParams: PPTP_CONFIG_PARAMS, + pub L2tpConfigParams: L2TP_CONFIG_PARAMS1, + pub SstpConfigParams: SSTP_CONFIG_PARAMS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for MPRAPI_TUNNEL_CONFIG_PARAMS0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for MPRAPI_TUNNEL_CONFIG_PARAMS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct MPRAPI_TUNNEL_CONFIG_PARAMS1 { + pub IkeConfigParams: IKEV2_CONFIG_PARAMS, + pub PptpConfigParams: PPTP_CONFIG_PARAMS, + pub L2tpConfigParams: L2TP_CONFIG_PARAMS1, + pub SstpConfigParams: SSTP_CONFIG_PARAMS, + pub GREConfigParams: GRE_CONFIG_PARAMS0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for MPRAPI_TUNNEL_CONFIG_PARAMS1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for MPRAPI_TUNNEL_CONFIG_PARAMS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MPR_CERT_EKU { + pub dwSize: u32, + pub IsEKUOID: super::super::Foundation::BOOL, + pub pwszEKU: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MPR_CERT_EKU {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MPR_CERT_EKU { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MPR_CREDENTIALSEX_0 { + pub dwSize: u32, + pub lpbCredentialsInfo: *mut u8, +} +impl ::core::marker::Copy for MPR_CREDENTIALSEX_0 {} +impl ::core::clone::Clone for MPR_CREDENTIALSEX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MPR_CREDENTIALSEX_1 { + pub dwSize: u32, + pub lpbCredentialsInfo: *mut u8, +} +impl ::core::marker::Copy for MPR_CREDENTIALSEX_1 {} +impl ::core::clone::Clone for MPR_CREDENTIALSEX_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MPR_DEVICE_0 { + pub szDeviceType: [u16; 17], + pub szDeviceName: [u16; 129], +} +impl ::core::marker::Copy for MPR_DEVICE_0 {} +impl ::core::clone::Clone for MPR_DEVICE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MPR_DEVICE_1 { + pub szDeviceType: [u16; 17], + pub szDeviceName: [u16; 129], + pub szLocalPhoneNumber: [u16; 129], + pub szAlternates: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for MPR_DEVICE_1 {} +impl ::core::clone::Clone for MPR_DEVICE_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MPR_FILTER_0 { + pub fEnable: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MPR_FILTER_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MPR_FILTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MPR_IFTRANSPORT_0 { + pub dwTransportId: u32, + pub hIfTransport: super::super::Foundation::HANDLE, + pub wszIfTransportName: [u16; 41], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MPR_IFTRANSPORT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MPR_IFTRANSPORT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct MPR_IF_CUSTOMINFOEX0 { + pub Header: MPRAPI_OBJECT_HEADER, + pub dwFlags: u32, + pub customIkev2Config: ROUTER_IKEv2_IF_CUSTOM_CONFIG0, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for MPR_IF_CUSTOMINFOEX0 {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for MPR_IF_CUSTOMINFOEX0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct MPR_IF_CUSTOMINFOEX1 { + pub Header: MPRAPI_OBJECT_HEADER, + pub dwFlags: u32, + pub customIkev2Config: ROUTER_IKEv2_IF_CUSTOM_CONFIG1, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for MPR_IF_CUSTOMINFOEX1 {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for MPR_IF_CUSTOMINFOEX1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Networking_WinSock", feature = "Win32_Security_Cryptography"))] +pub struct MPR_IF_CUSTOMINFOEX2 { + pub Header: MPRAPI_OBJECT_HEADER, + pub dwFlags: u32, + pub customIkev2Config: ROUTER_IKEv2_IF_CUSTOM_CONFIG2, +} +#[cfg(all(feature = "Win32_Networking_WinSock", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for MPR_IF_CUSTOMINFOEX2 {} +#[cfg(all(feature = "Win32_Networking_WinSock", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for MPR_IF_CUSTOMINFOEX2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MPR_INTERFACE_0 { + pub wszInterfaceName: [u16; 257], + pub hInterface: super::super::Foundation::HANDLE, + pub fEnabled: super::super::Foundation::BOOL, + pub dwIfType: ROUTER_INTERFACE_TYPE, + pub dwConnectionState: ROUTER_CONNECTION_STATE, + pub fUnReachabilityReasons: u32, + pub dwLastError: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MPR_INTERFACE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MPR_INTERFACE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MPR_INTERFACE_1 { + pub wszInterfaceName: [u16; 257], + pub hInterface: super::super::Foundation::HANDLE, + pub fEnabled: super::super::Foundation::BOOL, + pub dwIfType: ROUTER_INTERFACE_TYPE, + pub dwConnectionState: ROUTER_CONNECTION_STATE, + pub fUnReachabilityReasons: u32, + pub dwLastError: u32, + pub lpwsDialoutHoursRestriction: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MPR_INTERFACE_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MPR_INTERFACE_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MPR_INTERFACE_2 { + pub wszInterfaceName: [u16; 257], + pub hInterface: super::super::Foundation::HANDLE, + pub fEnabled: super::super::Foundation::BOOL, + pub dwIfType: ROUTER_INTERFACE_TYPE, + pub dwConnectionState: ROUTER_CONNECTION_STATE, + pub fUnReachabilityReasons: u32, + pub dwLastError: u32, + pub dwfOptions: u32, + pub szLocalPhoneNumber: [u16; 129], + pub szAlternates: ::windows_sys::core::PWSTR, + pub ipaddr: u32, + pub ipaddrDns: u32, + pub ipaddrDnsAlt: u32, + pub ipaddrWins: u32, + pub ipaddrWinsAlt: u32, + pub dwfNetProtocols: u32, + pub szDeviceType: [u16; 17], + pub szDeviceName: [u16; 129], + pub szX25PadType: [u16; 33], + pub szX25Address: [u16; 201], + pub szX25Facilities: [u16; 201], + pub szX25UserData: [u16; 201], + pub dwChannels: u32, + pub dwSubEntries: u32, + pub dwDialMode: MPR_INTERFACE_DIAL_MODE, + pub dwDialExtraPercent: u32, + pub dwDialExtraSampleSeconds: u32, + pub dwHangUpExtraPercent: u32, + pub dwHangUpExtraSampleSeconds: u32, + pub dwIdleDisconnectSeconds: u32, + pub dwType: u32, + pub dwEncryptionType: MPR_ET, + pub dwCustomAuthKey: u32, + pub dwCustomAuthDataSize: u32, + pub lpbCustomAuthData: *mut u8, + pub guidId: ::windows_sys::core::GUID, + pub dwVpnStrategy: MPR_VS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MPR_INTERFACE_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MPR_INTERFACE_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct MPR_INTERFACE_3 { + pub wszInterfaceName: [u16; 257], + pub hInterface: super::super::Foundation::HANDLE, + pub fEnabled: super::super::Foundation::BOOL, + pub dwIfType: ROUTER_INTERFACE_TYPE, + pub dwConnectionState: ROUTER_CONNECTION_STATE, + pub fUnReachabilityReasons: u32, + pub dwLastError: u32, + pub dwfOptions: u32, + pub szLocalPhoneNumber: [u16; 129], + pub szAlternates: ::windows_sys::core::PWSTR, + pub ipaddr: u32, + pub ipaddrDns: u32, + pub ipaddrDnsAlt: u32, + pub ipaddrWins: u32, + pub ipaddrWinsAlt: u32, + pub dwfNetProtocols: u32, + pub szDeviceType: [u16; 17], + pub szDeviceName: [u16; 129], + pub szX25PadType: [u16; 33], + pub szX25Address: [u16; 201], + pub szX25Facilities: [u16; 201], + pub szX25UserData: [u16; 201], + pub dwChannels: u32, + pub dwSubEntries: u32, + pub dwDialMode: MPR_INTERFACE_DIAL_MODE, + pub dwDialExtraPercent: u32, + pub dwDialExtraSampleSeconds: u32, + pub dwHangUpExtraPercent: u32, + pub dwHangUpExtraSampleSeconds: u32, + pub dwIdleDisconnectSeconds: u32, + pub dwType: u32, + pub dwEncryptionType: MPR_ET, + pub dwCustomAuthKey: u32, + pub dwCustomAuthDataSize: u32, + pub lpbCustomAuthData: *mut u8, + pub guidId: ::windows_sys::core::GUID, + pub dwVpnStrategy: MPR_VS, + pub AddressCount: u32, + pub ipv6addrDns: super::super::Networking::WinSock::IN6_ADDR, + pub ipv6addrDnsAlt: super::super::Networking::WinSock::IN6_ADDR, + pub ipv6addr: *mut super::super::Networking::WinSock::IN6_ADDR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for MPR_INTERFACE_3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for MPR_INTERFACE_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MPR_IPINIP_INTERFACE_0 { + pub wszFriendlyName: [u16; 257], + pub Guid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for MPR_IPINIP_INTERFACE_0 {} +impl ::core::clone::Clone for MPR_IPINIP_INTERFACE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MPR_SERVER_0 { + pub fLanOnlyMode: super::super::Foundation::BOOL, + pub dwUpTime: u32, + pub dwTotalPorts: u32, + pub dwPortsInUse: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MPR_SERVER_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MPR_SERVER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MPR_SERVER_1 { + pub dwNumPptpPorts: u32, + pub dwPptpPortFlags: u32, + pub dwNumL2tpPorts: u32, + pub dwL2tpPortFlags: u32, +} +impl ::core::marker::Copy for MPR_SERVER_1 {} +impl ::core::clone::Clone for MPR_SERVER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MPR_SERVER_2 { + pub dwNumPptpPorts: u32, + pub dwPptpPortFlags: u32, + pub dwNumL2tpPorts: u32, + pub dwL2tpPortFlags: u32, + pub dwNumSstpPorts: u32, + pub dwSstpPortFlags: u32, +} +impl ::core::marker::Copy for MPR_SERVER_2 {} +impl ::core::clone::Clone for MPR_SERVER_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct MPR_SERVER_EX0 { + pub Header: MPRAPI_OBJECT_HEADER, + pub fLanOnlyMode: u32, + pub dwUpTime: u32, + pub dwTotalPorts: u32, + pub dwPortsInUse: u32, + pub Reserved: u32, + pub ConfigParams: MPRAPI_TUNNEL_CONFIG_PARAMS0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for MPR_SERVER_EX0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for MPR_SERVER_EX0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct MPR_SERVER_EX1 { + pub Header: MPRAPI_OBJECT_HEADER, + pub fLanOnlyMode: u32, + pub dwUpTime: u32, + pub dwTotalPorts: u32, + pub dwPortsInUse: u32, + pub Reserved: u32, + pub ConfigParams: MPRAPI_TUNNEL_CONFIG_PARAMS1, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for MPR_SERVER_EX1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for MPR_SERVER_EX1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct MPR_SERVER_SET_CONFIG_EX0 { + pub Header: MPRAPI_OBJECT_HEADER, + pub setConfigForProtocols: u32, + pub ConfigParams: MPRAPI_TUNNEL_CONFIG_PARAMS0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for MPR_SERVER_SET_CONFIG_EX0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for MPR_SERVER_SET_CONFIG_EX0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct MPR_SERVER_SET_CONFIG_EX1 { + pub Header: MPRAPI_OBJECT_HEADER, + pub setConfigForProtocols: u32, + pub ConfigParams: MPRAPI_TUNNEL_CONFIG_PARAMS1, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for MPR_SERVER_SET_CONFIG_EX1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for MPR_SERVER_SET_CONFIG_EX1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MPR_TRANSPORT_0 { + pub dwTransportId: u32, + pub hTransport: super::super::Foundation::HANDLE, + pub wszTransportName: [u16; 41], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MPR_TRANSPORT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MPR_TRANSPORT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct MPR_VPN_TRAFFIC_SELECTOR { + pub r#type: MPR_VPN_TS_TYPE, + pub protocolId: u8, + pub portStart: u16, + pub portEnd: u16, + pub tsPayloadId: u16, + pub addrStart: VPN_TS_IP_ADDRESS, + pub addrEnd: VPN_TS_IP_ADDRESS, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MPR_VPN_TRAFFIC_SELECTOR {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MPR_VPN_TRAFFIC_SELECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct MPR_VPN_TRAFFIC_SELECTORS { + pub numTsi: u32, + pub numTsr: u32, + pub tsI: *mut MPR_VPN_TRAFFIC_SELECTOR, + pub tsR: *mut MPR_VPN_TRAFFIC_SELECTOR, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for MPR_VPN_TRAFFIC_SELECTORS {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for MPR_VPN_TRAFFIC_SELECTORS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_ATCP_INFO { + pub dwError: u32, + pub wszAddress: [u16; 33], +} +impl ::core::marker::Copy for PPP_ATCP_INFO {} +impl ::core::clone::Clone for PPP_ATCP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_CCP_INFO { + pub dwError: u32, + pub dwCompressionAlgorithm: u32, + pub dwOptions: u32, + pub dwRemoteCompressionAlgorithm: u32, + pub dwRemoteOptions: u32, +} +impl ::core::marker::Copy for PPP_CCP_INFO {} +impl ::core::clone::Clone for PPP_CCP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_INFO { + pub nbf: PPP_NBFCP_INFO, + pub ip: PPP_IPCP_INFO, + pub ipx: PPP_IPXCP_INFO, + pub at: PPP_ATCP_INFO, +} +impl ::core::marker::Copy for PPP_INFO {} +impl ::core::clone::Clone for PPP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_INFO_2 { + pub nbf: PPP_NBFCP_INFO, + pub ip: PPP_IPCP_INFO2, + pub ipx: PPP_IPXCP_INFO, + pub at: PPP_ATCP_INFO, + pub ccp: PPP_CCP_INFO, + pub lcp: PPP_LCP_INFO, +} +impl ::core::marker::Copy for PPP_INFO_2 {} +impl ::core::clone::Clone for PPP_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_INFO_3 { + pub nbf: PPP_NBFCP_INFO, + pub ip: PPP_IPCP_INFO2, + pub ipv6: PPP_IPV6_CP_INFO, + pub ccp: PPP_CCP_INFO, + pub lcp: PPP_LCP_INFO, +} +impl ::core::marker::Copy for PPP_INFO_3 {} +impl ::core::clone::Clone for PPP_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_IPCP_INFO { + pub dwError: u32, + pub wszAddress: [u16; 16], + pub wszRemoteAddress: [u16; 16], +} +impl ::core::marker::Copy for PPP_IPCP_INFO {} +impl ::core::clone::Clone for PPP_IPCP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_IPCP_INFO2 { + pub dwError: u32, + pub wszAddress: [u16; 16], + pub wszRemoteAddress: [u16; 16], + pub dwOptions: u32, + pub dwRemoteOptions: u32, +} +impl ::core::marker::Copy for PPP_IPCP_INFO2 {} +impl ::core::clone::Clone for PPP_IPCP_INFO2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_IPV6_CP_INFO { + pub dwVersion: u32, + pub dwSize: u32, + pub dwError: u32, + pub bInterfaceIdentifier: [u8; 8], + pub bRemoteInterfaceIdentifier: [u8; 8], + pub dwOptions: u32, + pub dwRemoteOptions: u32, + pub bPrefix: [u8; 8], + pub dwPrefixLength: u32, +} +impl ::core::marker::Copy for PPP_IPV6_CP_INFO {} +impl ::core::clone::Clone for PPP_IPV6_CP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_IPXCP_INFO { + pub dwError: u32, + pub wszAddress: [u16; 23], +} +impl ::core::marker::Copy for PPP_IPXCP_INFO {} +impl ::core::clone::Clone for PPP_IPXCP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_LCP_INFO { + pub dwError: u32, + pub dwAuthenticationProtocol: PPP_LCP, + pub dwAuthenticationData: PPP_LCP_INFO_AUTH_DATA, + pub dwRemoteAuthenticationProtocol: u32, + pub dwRemoteAuthenticationData: u32, + pub dwTerminateReason: u32, + pub dwRemoteTerminateReason: u32, + pub dwOptions: u32, + pub dwRemoteOptions: u32, + pub dwEapTypeId: u32, + pub dwRemoteEapTypeId: u32, +} +impl ::core::marker::Copy for PPP_LCP_INFO {} +impl ::core::clone::Clone for PPP_LCP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_NBFCP_INFO { + pub dwError: u32, + pub wszWksta: [u16; 17], +} +impl ::core::marker::Copy for PPP_NBFCP_INFO {} +impl ::core::clone::Clone for PPP_NBFCP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_PROJECTION_INFO { + pub dwIPv4NegotiationError: u32, + pub wszAddress: [u16; 16], + pub wszRemoteAddress: [u16; 16], + pub dwIPv4Options: u32, + pub dwIPv4RemoteOptions: u32, + pub IPv4SubInterfaceIndex: u64, + pub dwIPv6NegotiationError: u32, + pub bInterfaceIdentifier: [u8; 8], + pub bRemoteInterfaceIdentifier: [u8; 8], + pub bPrefix: [u8; 8], + pub dwPrefixLength: u32, + pub IPv6SubInterfaceIndex: u64, + pub dwLcpError: u32, + pub dwAuthenticationProtocol: PPP_LCP, + pub dwAuthenticationData: PPP_LCP_INFO_AUTH_DATA, + pub dwRemoteAuthenticationProtocol: PPP_LCP, + pub dwRemoteAuthenticationData: PPP_LCP_INFO_AUTH_DATA, + pub dwLcpTerminateReason: u32, + pub dwLcpRemoteTerminateReason: u32, + pub dwLcpOptions: u32, + pub dwLcpRemoteOptions: u32, + pub dwEapTypeId: u32, + pub dwRemoteEapTypeId: u32, + pub dwCcpError: u32, + pub dwCompressionAlgorithm: u32, + pub dwCcpOptions: u32, + pub dwRemoteCompressionAlgorithm: u32, + pub dwCcpRemoteOptions: u32, +} +impl ::core::marker::Copy for PPP_PROJECTION_INFO {} +impl ::core::clone::Clone for PPP_PROJECTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_PROJECTION_INFO2 { + pub dwIPv4NegotiationError: u32, + pub wszAddress: [u16; 16], + pub wszRemoteAddress: [u16; 16], + pub dwIPv4Options: u32, + pub dwIPv4RemoteOptions: u32, + pub IPv4SubInterfaceIndex: u64, + pub dwIPv6NegotiationError: u32, + pub bInterfaceIdentifier: [u8; 8], + pub bRemoteInterfaceIdentifier: [u8; 8], + pub bPrefix: [u8; 8], + pub dwPrefixLength: u32, + pub IPv6SubInterfaceIndex: u64, + pub dwLcpError: u32, + pub dwAuthenticationProtocol: PPP_LCP, + pub dwAuthenticationData: PPP_LCP_INFO_AUTH_DATA, + pub dwRemoteAuthenticationProtocol: PPP_LCP, + pub dwRemoteAuthenticationData: PPP_LCP_INFO_AUTH_DATA, + pub dwLcpTerminateReason: u32, + pub dwLcpRemoteTerminateReason: u32, + pub dwLcpOptions: u32, + pub dwLcpRemoteOptions: u32, + pub dwEapTypeId: u32, + pub dwEmbeddedEAPTypeId: u32, + pub dwRemoteEapTypeId: u32, + pub dwCcpError: u32, + pub dwCompressionAlgorithm: u32, + pub dwCcpOptions: u32, + pub dwRemoteCompressionAlgorithm: u32, + pub dwCcpRemoteOptions: u32, +} +impl ::core::marker::Copy for PPP_PROJECTION_INFO2 {} +impl ::core::clone::Clone for PPP_PROJECTION_INFO2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPTP_CONFIG_PARAMS { + pub dwNumPorts: u32, + pub dwPortFlags: u32, +} +impl ::core::marker::Copy for PPTP_CONFIG_PARAMS {} +impl ::core::clone::Clone for PPTP_CONFIG_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROJECTION_INFO { + pub projectionInfoType: u8, + pub Anonymous: PROJECTION_INFO_0, +} +impl ::core::marker::Copy for PROJECTION_INFO {} +impl ::core::clone::Clone for PROJECTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROJECTION_INFO_0 { + pub PppProjectionInfo: PPP_PROJECTION_INFO, + pub Ikev2ProjectionInfo: IKEV2_PROJECTION_INFO, +} +impl ::core::marker::Copy for PROJECTION_INFO_0 {} +impl ::core::clone::Clone for PROJECTION_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROJECTION_INFO2 { + pub projectionInfoType: u8, + pub Anonymous: PROJECTION_INFO2_0, +} +impl ::core::marker::Copy for PROJECTION_INFO2 {} +impl ::core::clone::Clone for PROJECTION_INFO2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROJECTION_INFO2_0 { + pub PppProjectionInfo: PPP_PROJECTION_INFO2, + pub Ikev2ProjectionInfo: IKEV2_PROJECTION_INFO2, +} +impl ::core::marker::Copy for PROJECTION_INFO2_0 {} +impl ::core::clone::Clone for PROJECTION_INFO2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RASADPARAMS { + pub dwSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub dwFlags: u32, + pub xDlg: i32, + pub yDlg: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASADPARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASADPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASAMBA { + pub dwSize: u32, + pub dwError: u32, + pub szNetBiosError: [u8; 17], + pub bLana: u8, +} +impl ::core::marker::Copy for RASAMBA {} +impl ::core::clone::Clone for RASAMBA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASAMBW { + pub dwSize: u32, + pub dwError: u32, + pub szNetBiosError: [u16; 17], + pub bLana: u8, +} +impl ::core::marker::Copy for RASAMBW {} +impl ::core::clone::Clone for RASAMBW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASAUTODIALENTRYA { + pub dwSize: u32, + pub dwFlags: u32, + pub dwDialingLocation: u32, + pub szEntry: [u8; 257], +} +impl ::core::marker::Copy for RASAUTODIALENTRYA {} +impl ::core::clone::Clone for RASAUTODIALENTRYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASAUTODIALENTRYW { + pub dwSize: u32, + pub dwFlags: u32, + pub dwDialingLocation: u32, + pub szEntry: [u16; 257], +} +impl ::core::marker::Copy for RASAUTODIALENTRYW {} +impl ::core::clone::Clone for RASAUTODIALENTRYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASCOMMSETTINGS { + pub dwSize: u32, + pub bParity: u8, + pub bStop: u8, + pub bByteSize: u8, + pub bAlign: u8, +} +impl ::core::marker::Copy for RASCOMMSETTINGS {} +impl ::core::clone::Clone for RASCOMMSETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct RASCONNA { + pub dwSize: u32, + pub hrasconn: HRASCONN, + pub szEntryName: [u8; 257], + pub szDeviceType: [u8; 17], + pub szDeviceName: [u8; 129], + pub szPhonebook: [u8; 260], + pub dwSubEntry: u32, + pub guidEntry: ::windows_sys::core::GUID, + pub dwFlags: u32, + pub luid: super::super::Foundation::LUID, + pub guidCorrelationId: ::windows_sys::core::GUID, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASCONNA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASCONNA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct RASCONNA { + pub dwSize: u32, + pub hrasconn: HRASCONN, + pub szEntryName: [u8; 257], + pub szDeviceType: [u8; 17], + pub szDeviceName: [u8; 129], + pub szPhonebook: [u8; 260], + pub dwSubEntry: u32, + pub guidEntry: ::windows_sys::core::GUID, + pub dwFlags: u32, + pub luid: super::super::Foundation::LUID, + pub guidCorrelationId: ::windows_sys::core::GUID, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASCONNA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASCONNA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct RASCONNSTATUSA { + pub dwSize: u32, + pub rasconnstate: RASCONNSTATE, + pub dwError: u32, + pub szDeviceType: [u8; 17], + pub szDeviceName: [u8; 129], + pub szPhoneNumber: [u8; 129], + pub localEndPoint: RASTUNNELENDPOINT, + pub remoteEndPoint: RASTUNNELENDPOINT, + pub rasconnsubstate: RASCONNSUBSTATE, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RASCONNSTATUSA {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RASCONNSTATUSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct RASCONNSTATUSW { + pub dwSize: u32, + pub rasconnstate: RASCONNSTATE, + pub dwError: u32, + pub szDeviceType: [u16; 17], + pub szDeviceName: [u16; 129], + pub szPhoneNumber: [u16; 129], + pub localEndPoint: RASTUNNELENDPOINT, + pub remoteEndPoint: RASTUNNELENDPOINT, + pub rasconnsubstate: RASCONNSUBSTATE, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RASCONNSTATUSW {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RASCONNSTATUSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct RASCONNW { + pub dwSize: u32, + pub hrasconn: HRASCONN, + pub szEntryName: [u16; 257], + pub szDeviceType: [u16; 17], + pub szDeviceName: [u16; 129], + pub szPhonebook: [u16; 260], + pub dwSubEntry: u32, + pub guidEntry: ::windows_sys::core::GUID, + pub dwFlags: u32, + pub luid: super::super::Foundation::LUID, + pub guidCorrelationId: ::windows_sys::core::GUID, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASCONNW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASCONNW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct RASCONNW { + pub dwSize: u32, + pub hrasconn: HRASCONN, + pub szEntryName: [u16; 257], + pub szDeviceType: [u16; 17], + pub szDeviceName: [u16; 129], + pub szPhonebook: [u16; 260], + pub dwSubEntry: u32, + pub guidEntry: ::windows_sys::core::GUID, + pub dwFlags: u32, + pub luid: super::super::Foundation::LUID, + pub guidCorrelationId: ::windows_sys::core::GUID, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASCONNW {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASCONNW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASCREDENTIALSA { + pub dwSize: u32, + pub dwMask: u32, + pub szUserName: [u8; 257], + pub szPassword: [u8; 257], + pub szDomain: [u8; 16], +} +impl ::core::marker::Copy for RASCREDENTIALSA {} +impl ::core::clone::Clone for RASCREDENTIALSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASCREDENTIALSW { + pub dwSize: u32, + pub dwMask: u32, + pub szUserName: [u16; 257], + pub szPassword: [u16; 257], + pub szDomain: [u16; 16], +} +impl ::core::marker::Copy for RASCREDENTIALSW {} +impl ::core::clone::Clone for RASCREDENTIALSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASCTRYINFO { + pub dwSize: u32, + pub dwCountryID: u32, + pub dwNextCountryID: u32, + pub dwCountryCode: u32, + pub dwCountryNameOffset: u32, +} +impl ::core::marker::Copy for RASCTRYINFO {} +impl ::core::clone::Clone for RASCTRYINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RASCUSTOMSCRIPTEXTENSIONS { + pub dwSize: u32, + pub pfnRasSetCommSettings: PFNRASSETCOMMSETTINGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASCUSTOMSCRIPTEXTENSIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASCUSTOMSCRIPTEXTENSIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASDEVINFOA { + pub dwSize: u32, + pub szDeviceType: [u8; 17], + pub szDeviceName: [u8; 129], +} +impl ::core::marker::Copy for RASDEVINFOA {} +impl ::core::clone::Clone for RASDEVINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASDEVINFOW { + pub dwSize: u32, + pub szDeviceType: [u16; 17], + pub szDeviceName: [u16; 129], +} +impl ::core::marker::Copy for RASDEVINFOW {} +impl ::core::clone::Clone for RASDEVINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct RASDEVSPECIFICINFO { + pub dwSize: u32, + pub pbDevSpecificInfo: *mut u8, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for RASDEVSPECIFICINFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for RASDEVSPECIFICINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct RASDEVSPECIFICINFO { + pub dwSize: u32, + pub pbDevSpecificInfo: *mut u8, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for RASDEVSPECIFICINFO {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for RASDEVSPECIFICINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RASDIALDLG { + pub dwSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub dwFlags: u32, + pub xDlg: i32, + pub yDlg: i32, + pub dwSubEntry: u32, + pub dwError: u32, + pub reserved: usize, + pub reserved2: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASDIALDLG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASDIALDLG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RASDIALEXTENSIONS { + pub dwSize: u32, + pub dwfOptions: u32, + pub hwndParent: super::super::Foundation::HWND, + pub reserved: usize, + pub reserved1: usize, + pub RasEapInfo: RASEAPINFO, + pub fSkipPppAuth: super::super::Foundation::BOOL, + pub RasDevSpecificInfo: RASDEVSPECIFICINFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASDIALEXTENSIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASDIALEXTENSIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct RASDIALPARAMSA { + pub dwSize: u32, + pub szEntryName: [u8; 257], + pub szPhoneNumber: [u8; 129], + pub szCallbackNumber: [u8; 129], + pub szUserName: [u8; 257], + pub szPassword: [u8; 257], + pub szDomain: [u8; 16], + pub dwSubEntry: u32, + pub dwCallbackId: usize, + pub dwIfIndex: u32, + pub szEncPassword: ::windows_sys::core::PSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for RASDIALPARAMSA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for RASDIALPARAMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct RASDIALPARAMSA { + pub dwSize: u32, + pub szEntryName: [u8; 257], + pub szPhoneNumber: [u8; 129], + pub szCallbackNumber: [u8; 129], + pub szUserName: [u8; 257], + pub szPassword: [u8; 257], + pub szDomain: [u8; 16], + pub dwSubEntry: u32, + pub dwCallbackId: usize, + pub dwIfIndex: u32, + pub szEncPassword: ::windows_sys::core::PSTR, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for RASDIALPARAMSA {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for RASDIALPARAMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct RASDIALPARAMSW { + pub dwSize: u32, + pub szEntryName: [u16; 257], + pub szPhoneNumber: [u16; 129], + pub szCallbackNumber: [u16; 129], + pub szUserName: [u16; 257], + pub szPassword: [u16; 257], + pub szDomain: [u16; 16], + pub dwSubEntry: u32, + pub dwCallbackId: usize, + pub dwIfIndex: u32, + pub szEncPassword: ::windows_sys::core::PWSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for RASDIALPARAMSW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for RASDIALPARAMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct RASDIALPARAMSW { + pub dwSize: u32, + pub szEntryName: [u16; 257], + pub szPhoneNumber: [u16; 129], + pub szCallbackNumber: [u16; 129], + pub szUserName: [u16; 257], + pub szPassword: [u16; 257], + pub szDomain: [u16; 16], + pub dwSubEntry: u32, + pub dwCallbackId: usize, + pub dwIfIndex: u32, + pub szEncPassword: ::windows_sys::core::PWSTR, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for RASDIALPARAMSW {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for RASDIALPARAMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct RASEAPINFO { + pub dwSizeofEapInfo: u32, + pub pbEapInfo: *mut u8, +} +impl ::core::marker::Copy for RASEAPINFO {} +impl ::core::clone::Clone for RASEAPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASEAPUSERIDENTITYA { + pub szUserName: [u8; 257], + pub dwSizeofEapInfo: u32, + pub pbEapInfo: [u8; 1], +} +impl ::core::marker::Copy for RASEAPUSERIDENTITYA {} +impl ::core::clone::Clone for RASEAPUSERIDENTITYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASEAPUSERIDENTITYW { + pub szUserName: [u16; 257], + pub dwSizeofEapInfo: u32, + pub pbEapInfo: [u8; 1], +} +impl ::core::marker::Copy for RASEAPUSERIDENTITYW {} +impl ::core::clone::Clone for RASEAPUSERIDENTITYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct RASENTRYA { + pub dwSize: u32, + pub dwfOptions: u32, + pub dwCountryID: u32, + pub dwCountryCode: u32, + pub szAreaCode: [u8; 11], + pub szLocalPhoneNumber: [u8; 129], + pub dwAlternateOffset: u32, + pub ipaddr: RASIPADDR, + pub ipaddrDns: RASIPADDR, + pub ipaddrDnsAlt: RASIPADDR, + pub ipaddrWins: RASIPADDR, + pub ipaddrWinsAlt: RASIPADDR, + pub dwFrameSize: u32, + pub dwfNetProtocols: u32, + pub dwFramingProtocol: u32, + pub szScript: [u8; 260], + pub szAutodialDll: [u8; 260], + pub szAutodialFunc: [u8; 260], + pub szDeviceType: [u8; 17], + pub szDeviceName: [u8; 129], + pub szX25PadType: [u8; 33], + pub szX25Address: [u8; 201], + pub szX25Facilities: [u8; 201], + pub szX25UserData: [u8; 201], + pub dwChannels: u32, + pub dwReserved1: u32, + pub dwReserved2: u32, + pub dwSubEntries: u32, + pub dwDialMode: RASENTRY_DIAL_MODE, + pub dwDialExtraPercent: u32, + pub dwDialExtraSampleSeconds: u32, + pub dwHangUpExtraPercent: u32, + pub dwHangUpExtraSampleSeconds: u32, + pub dwIdleDisconnectSeconds: u32, + pub dwType: u32, + pub dwEncryptionType: u32, + pub dwCustomAuthKey: u32, + pub guidId: ::windows_sys::core::GUID, + pub szCustomDialDll: [u8; 260], + pub dwVpnStrategy: u32, + pub dwfOptions2: u32, + pub dwfOptions3: u32, + pub szDnsSuffix: [u8; 256], + pub dwTcpWindowSize: u32, + pub szPrerequisitePbk: [u8; 260], + pub szPrerequisiteEntry: [u8; 257], + pub dwRedialCount: u32, + pub dwRedialPause: u32, + pub ipv6addrDns: super::super::Networking::WinSock::IN6_ADDR, + pub ipv6addrDnsAlt: super::super::Networking::WinSock::IN6_ADDR, + pub dwIPv4InterfaceMetric: u32, + pub dwIPv6InterfaceMetric: u32, + pub ipv6addr: super::super::Networking::WinSock::IN6_ADDR, + pub dwIPv6PrefixLength: u32, + pub dwNetworkOutageTime: u32, + pub szIDi: [u8; 257], + pub szIDr: [u8; 257], + pub fIsImsConfig: super::super::Foundation::BOOL, + pub IdiType: IKEV2_ID_PAYLOAD_TYPE, + pub IdrType: IKEV2_ID_PAYLOAD_TYPE, + pub fDisableIKEv2Fragmentation: super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for RASENTRYA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for RASENTRYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct RASENTRYDLGA { + pub dwSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub dwFlags: u32, + pub xDlg: i32, + pub yDlg: i32, + pub szEntry: [u8; 257], + pub dwError: u32, + pub reserved: usize, + pub reserved2: usize, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASENTRYDLGA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASENTRYDLGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct RASENTRYDLGA { + pub dwSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub dwFlags: u32, + pub xDlg: i32, + pub yDlg: i32, + pub szEntry: [u8; 257], + pub dwError: u32, + pub reserved: usize, + pub reserved2: usize, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASENTRYDLGA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASENTRYDLGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct RASENTRYDLGW { + pub dwSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub dwFlags: u32, + pub xDlg: i32, + pub yDlg: i32, + pub szEntry: [u16; 257], + pub dwError: u32, + pub reserved: usize, + pub reserved2: usize, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASENTRYDLGW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASENTRYDLGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct RASENTRYDLGW { + pub dwSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub dwFlags: u32, + pub xDlg: i32, + pub yDlg: i32, + pub szEntry: [u16; 257], + pub dwError: u32, + pub reserved: usize, + pub reserved2: usize, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASENTRYDLGW {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASENTRYDLGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASENTRYNAMEA { + pub dwSize: u32, + pub szEntryName: [u8; 257], + pub dwFlags: u32, + pub szPhonebookPath: [u8; 261], +} +impl ::core::marker::Copy for RASENTRYNAMEA {} +impl ::core::clone::Clone for RASENTRYNAMEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASENTRYNAMEW { + pub dwSize: u32, + pub szEntryName: [u16; 257], + pub dwFlags: u32, + pub szPhonebookPath: [u16; 261], +} +impl ::core::marker::Copy for RASENTRYNAMEW {} +impl ::core::clone::Clone for RASENTRYNAMEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct RASENTRYW { + pub dwSize: u32, + pub dwfOptions: u32, + pub dwCountryID: u32, + pub dwCountryCode: u32, + pub szAreaCode: [u16; 11], + pub szLocalPhoneNumber: [u16; 129], + pub dwAlternateOffset: u32, + pub ipaddr: RASIPADDR, + pub ipaddrDns: RASIPADDR, + pub ipaddrDnsAlt: RASIPADDR, + pub ipaddrWins: RASIPADDR, + pub ipaddrWinsAlt: RASIPADDR, + pub dwFrameSize: u32, + pub dwfNetProtocols: u32, + pub dwFramingProtocol: u32, + pub szScript: [u16; 260], + pub szAutodialDll: [u16; 260], + pub szAutodialFunc: [u16; 260], + pub szDeviceType: [u16; 17], + pub szDeviceName: [u16; 129], + pub szX25PadType: [u16; 33], + pub szX25Address: [u16; 201], + pub szX25Facilities: [u16; 201], + pub szX25UserData: [u16; 201], + pub dwChannels: u32, + pub dwReserved1: u32, + pub dwReserved2: u32, + pub dwSubEntries: u32, + pub dwDialMode: RASENTRY_DIAL_MODE, + pub dwDialExtraPercent: u32, + pub dwDialExtraSampleSeconds: u32, + pub dwHangUpExtraPercent: u32, + pub dwHangUpExtraSampleSeconds: u32, + pub dwIdleDisconnectSeconds: u32, + pub dwType: u32, + pub dwEncryptionType: u32, + pub dwCustomAuthKey: u32, + pub guidId: ::windows_sys::core::GUID, + pub szCustomDialDll: [u16; 260], + pub dwVpnStrategy: u32, + pub dwfOptions2: u32, + pub dwfOptions3: u32, + pub szDnsSuffix: [u16; 256], + pub dwTcpWindowSize: u32, + pub szPrerequisitePbk: [u16; 260], + pub szPrerequisiteEntry: [u16; 257], + pub dwRedialCount: u32, + pub dwRedialPause: u32, + pub ipv6addrDns: super::super::Networking::WinSock::IN6_ADDR, + pub ipv6addrDnsAlt: super::super::Networking::WinSock::IN6_ADDR, + pub dwIPv4InterfaceMetric: u32, + pub dwIPv6InterfaceMetric: u32, + pub ipv6addr: super::super::Networking::WinSock::IN6_ADDR, + pub dwIPv6PrefixLength: u32, + pub dwNetworkOutageTime: u32, + pub szIDi: [u16; 257], + pub szIDr: [u16; 257], + pub fIsImsConfig: super::super::Foundation::BOOL, + pub IdiType: IKEV2_ID_PAYLOAD_TYPE, + pub IdrType: IKEV2_ID_PAYLOAD_TYPE, + pub fDisableIKEv2Fragmentation: super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for RASENTRYW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for RASENTRYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct RASIKEV2_PROJECTION_INFO { + pub dwIPv4NegotiationError: u32, + pub ipv4Address: super::super::Networking::WinSock::IN_ADDR, + pub ipv4ServerAddress: super::super::Networking::WinSock::IN_ADDR, + pub dwIPv6NegotiationError: u32, + pub ipv6Address: super::super::Networking::WinSock::IN6_ADDR, + pub ipv6ServerAddress: super::super::Networking::WinSock::IN6_ADDR, + pub dwPrefixLength: u32, + pub dwAuthenticationProtocol: u32, + pub dwEapTypeId: u32, + pub dwFlags: RASIKEV_PROJECTION_INFO_FLAGS, + pub dwEncryptionMethod: u32, + pub numIPv4ServerAddresses: u32, + pub ipv4ServerAddresses: *mut super::super::Networking::WinSock::IN_ADDR, + pub numIPv6ServerAddresses: u32, + pub ipv6ServerAddresses: *mut super::super::Networking::WinSock::IN6_ADDR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RASIKEV2_PROJECTION_INFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RASIKEV2_PROJECTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct RASIKEV2_PROJECTION_INFO { + pub dwIPv4NegotiationError: u32, + pub ipv4Address: super::super::Networking::WinSock::IN_ADDR, + pub ipv4ServerAddress: super::super::Networking::WinSock::IN_ADDR, + pub dwIPv6NegotiationError: u32, + pub ipv6Address: super::super::Networking::WinSock::IN6_ADDR, + pub ipv6ServerAddress: super::super::Networking::WinSock::IN6_ADDR, + pub dwPrefixLength: u32, + pub dwAuthenticationProtocol: u32, + pub dwEapTypeId: u32, + pub dwFlags: RASIKEV_PROJECTION_INFO_FLAGS, + pub dwEncryptionMethod: u32, + pub numIPv4ServerAddresses: u32, + pub ipv4ServerAddresses: *mut super::super::Networking::WinSock::IN_ADDR, + pub numIPv6ServerAddresses: u32, + pub ipv6ServerAddresses: *mut super::super::Networking::WinSock::IN6_ADDR, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RASIKEV2_PROJECTION_INFO {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RASIKEV2_PROJECTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASIPADDR { + pub a: u8, + pub b: u8, + pub c: u8, + pub d: u8, +} +impl ::core::marker::Copy for RASIPADDR {} +impl ::core::clone::Clone for RASIPADDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASIPXW { + pub dwSize: u32, + pub dwError: u32, + pub szIpxAddress: [u16; 22], +} +impl ::core::marker::Copy for RASIPXW {} +impl ::core::clone::Clone for RASIPXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASNOUSERA { + pub dwSize: u32, + pub dwFlags: u32, + pub dwTimeoutMs: u32, + pub szUserName: [u8; 257], + pub szPassword: [u8; 257], + pub szDomain: [u8; 16], +} +impl ::core::marker::Copy for RASNOUSERA {} +impl ::core::clone::Clone for RASNOUSERA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASNOUSERW { + pub dwSize: u32, + pub dwFlags: u32, + pub dwTimeoutMs: u32, + pub szUserName: [u16; 257], + pub szPassword: [u16; 257], + pub szDomain: [u16; 16], +} +impl ::core::marker::Copy for RASNOUSERW {} +impl ::core::clone::Clone for RASNOUSERW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct RASPBDLGA { + pub dwSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub dwFlags: u32, + pub xDlg: i32, + pub yDlg: i32, + pub dwCallbackId: usize, + pub pCallback: RASPBDLGFUNCA, + pub dwError: u32, + pub reserved: usize, + pub reserved2: usize, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASPBDLGA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASPBDLGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct RASPBDLGA { + pub dwSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub dwFlags: u32, + pub xDlg: i32, + pub yDlg: i32, + pub dwCallbackId: usize, + pub pCallback: RASPBDLGFUNCA, + pub dwError: u32, + pub reserved: usize, + pub reserved2: usize, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASPBDLGA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASPBDLGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct RASPBDLGW { + pub dwSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub dwFlags: u32, + pub xDlg: i32, + pub yDlg: i32, + pub dwCallbackId: usize, + pub pCallback: RASPBDLGFUNCW, + pub dwError: u32, + pub reserved: usize, + pub reserved2: usize, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASPBDLGW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASPBDLGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct RASPBDLGW { + pub dwSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub dwFlags: u32, + pub xDlg: i32, + pub yDlg: i32, + pub dwCallbackId: usize, + pub pCallback: RASPBDLGFUNCW, + pub dwError: u32, + pub reserved: usize, + pub reserved2: usize, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASPBDLGW {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASPBDLGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASPPPCCP { + pub dwSize: u32, + pub dwError: u32, + pub dwCompressionAlgorithm: u32, + pub dwOptions: u32, + pub dwServerCompressionAlgorithm: u32, + pub dwServerOptions: u32, +} +impl ::core::marker::Copy for RASPPPCCP {} +impl ::core::clone::Clone for RASPPPCCP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASPPPIPA { + pub dwSize: u32, + pub dwError: u32, + pub szIpAddress: [u8; 16], + pub szServerIpAddress: [u8; 16], + pub dwOptions: u32, + pub dwServerOptions: u32, +} +impl ::core::marker::Copy for RASPPPIPA {} +impl ::core::clone::Clone for RASPPPIPA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASPPPIPV6 { + pub dwSize: u32, + pub dwError: u32, + pub bLocalInterfaceIdentifier: [u8; 8], + pub bPeerInterfaceIdentifier: [u8; 8], + pub bLocalCompressionProtocol: [u8; 2], + pub bPeerCompressionProtocol: [u8; 2], +} +impl ::core::marker::Copy for RASPPPIPV6 {} +impl ::core::clone::Clone for RASPPPIPV6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASPPPIPW { + pub dwSize: u32, + pub dwError: u32, + pub szIpAddress: [u16; 16], + pub szServerIpAddress: [u16; 16], + pub dwOptions: u32, + pub dwServerOptions: u32, +} +impl ::core::marker::Copy for RASPPPIPW {} +impl ::core::clone::Clone for RASPPPIPW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASPPPIPXA { + pub dwSize: u32, + pub dwError: u32, + pub szIpxAddress: [u8; 22], +} +impl ::core::marker::Copy for RASPPPIPXA {} +impl ::core::clone::Clone for RASPPPIPXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RASPPPLCPA { + pub dwSize: u32, + pub fBundled: super::super::Foundation::BOOL, + pub dwError: u32, + pub dwAuthenticationProtocol: u32, + pub dwAuthenticationData: u32, + pub dwEapTypeId: u32, + pub dwServerAuthenticationProtocol: u32, + pub dwServerAuthenticationData: u32, + pub dwServerEapTypeId: u32, + pub fMultilink: super::super::Foundation::BOOL, + pub dwTerminateReason: u32, + pub dwServerTerminateReason: u32, + pub szReplyMessage: [u8; 1024], + pub dwOptions: u32, + pub dwServerOptions: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASPPPLCPA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASPPPLCPA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RASPPPLCPW { + pub dwSize: u32, + pub fBundled: super::super::Foundation::BOOL, + pub dwError: u32, + pub dwAuthenticationProtocol: u32, + pub dwAuthenticationData: u32, + pub dwEapTypeId: u32, + pub dwServerAuthenticationProtocol: u32, + pub dwServerAuthenticationData: u32, + pub dwServerEapTypeId: u32, + pub fMultilink: super::super::Foundation::BOOL, + pub dwTerminateReason: u32, + pub dwServerTerminateReason: u32, + pub szReplyMessage: [u16; 1024], + pub dwOptions: u32, + pub dwServerOptions: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RASPPPLCPW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RASPPPLCPW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASPPPNBFA { + pub dwSize: u32, + pub dwError: u32, + pub dwNetBiosError: u32, + pub szNetBiosError: [u8; 17], + pub szWorkstationName: [u8; 17], + pub bLana: u8, +} +impl ::core::marker::Copy for RASPPPNBFA {} +impl ::core::clone::Clone for RASPPPNBFA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASPPPNBFW { + pub dwSize: u32, + pub dwError: u32, + pub dwNetBiosError: u32, + pub szNetBiosError: [u16; 17], + pub szWorkstationName: [u16; 17], + pub bLana: u8, +} +impl ::core::marker::Copy for RASPPPNBFW {} +impl ::core::clone::Clone for RASPPPNBFW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct RASPPP_PROJECTION_INFO { + pub dwIPv4NegotiationError: u32, + pub ipv4Address: super::super::Networking::WinSock::IN_ADDR, + pub ipv4ServerAddress: super::super::Networking::WinSock::IN_ADDR, + pub dwIPv4Options: u32, + pub dwIPv4ServerOptions: u32, + pub dwIPv6NegotiationError: u32, + pub bInterfaceIdentifier: [u8; 8], + pub bServerInterfaceIdentifier: [u8; 8], + pub fBundled: super::super::Foundation::BOOL, + pub fMultilink: super::super::Foundation::BOOL, + pub dwAuthenticationProtocol: RASPPP_PROJECTION_INFO_SERVER_AUTH_PROTOCOL, + pub dwAuthenticationData: RASPPP_PROJECTION_INFO_SERVER_AUTH_DATA, + pub dwServerAuthenticationProtocol: RASPPP_PROJECTION_INFO_SERVER_AUTH_PROTOCOL, + pub dwServerAuthenticationData: RASPPP_PROJECTION_INFO_SERVER_AUTH_DATA, + pub dwEapTypeId: u32, + pub dwServerEapTypeId: u32, + pub dwLcpOptions: u32, + pub dwLcpServerOptions: u32, + pub dwCcpError: u32, + pub dwCcpCompressionAlgorithm: u32, + pub dwCcpServerCompressionAlgorithm: u32, + pub dwCcpOptions: u32, + pub dwCcpServerOptions: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for RASPPP_PROJECTION_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for RASPPP_PROJECTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASSUBENTRYA { + pub dwSize: u32, + pub dwfFlags: u32, + pub szDeviceType: [u8; 17], + pub szDeviceName: [u8; 129], + pub szLocalPhoneNumber: [u8; 129], + pub dwAlternateOffset: u32, +} +impl ::core::marker::Copy for RASSUBENTRYA {} +impl ::core::clone::Clone for RASSUBENTRYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RASSUBENTRYW { + pub dwSize: u32, + pub dwfFlags: u32, + pub szDeviceType: [u16; 17], + pub szDeviceName: [u16; 129], + pub szLocalPhoneNumber: [u16; 129], + pub dwAlternateOffset: u32, +} +impl ::core::marker::Copy for RASSUBENTRYW {} +impl ::core::clone::Clone for RASSUBENTRYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct RASTUNNELENDPOINT { + pub dwType: u32, + pub Anonymous: RASTUNNELENDPOINT_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RASTUNNELENDPOINT {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RASTUNNELENDPOINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union RASTUNNELENDPOINT_0 { + pub ipv4: super::super::Networking::WinSock::IN_ADDR, + pub ipv6: super::super::Networking::WinSock::IN6_ADDR, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RASTUNNELENDPOINT_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RASTUNNELENDPOINT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct RASUPDATECONN { + pub version: RASAPIVERSION, + pub dwSize: u32, + pub dwFlags: u32, + pub dwIfIndex: u32, + pub localEndPoint: RASTUNNELENDPOINT, + pub remoteEndPoint: RASTUNNELENDPOINT, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for RASUPDATECONN {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for RASUPDATECONN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAS_CONNECTION_0 { + pub hConnection: super::super::Foundation::HANDLE, + pub hInterface: super::super::Foundation::HANDLE, + pub dwConnectDuration: u32, + pub dwInterfaceType: ROUTER_INTERFACE_TYPE, + pub dwConnectionFlags: RAS_FLAGS, + pub wszInterfaceName: [u16; 257], + pub wszUserName: [u16; 257], + pub wszLogonDomain: [u16; 16], + pub wszRemoteComputer: [u16; 17], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAS_CONNECTION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAS_CONNECTION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAS_CONNECTION_1 { + pub hConnection: super::super::Foundation::HANDLE, + pub hInterface: super::super::Foundation::HANDLE, + pub PppInfo: PPP_INFO, + pub dwBytesXmited: u32, + pub dwBytesRcved: u32, + pub dwFramesXmited: u32, + pub dwFramesRcved: u32, + pub dwCrcErr: u32, + pub dwTimeoutErr: u32, + pub dwAlignmentErr: u32, + pub dwHardwareOverrunErr: u32, + pub dwFramingErr: u32, + pub dwBufferOverrunErr: u32, + pub dwCompressionRatioIn: u32, + pub dwCompressionRatioOut: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAS_CONNECTION_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAS_CONNECTION_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAS_CONNECTION_2 { + pub hConnection: super::super::Foundation::HANDLE, + pub wszUserName: [u16; 257], + pub dwInterfaceType: ROUTER_INTERFACE_TYPE, + pub guid: ::windows_sys::core::GUID, + pub PppInfo2: PPP_INFO_2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAS_CONNECTION_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAS_CONNECTION_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAS_CONNECTION_3 { + pub dwVersion: u32, + pub dwSize: u32, + pub hConnection: super::super::Foundation::HANDLE, + pub wszUserName: [u16; 257], + pub dwInterfaceType: ROUTER_INTERFACE_TYPE, + pub guid: ::windows_sys::core::GUID, + pub PppInfo3: PPP_INFO_3, + pub rasQuarState: RAS_QUARANTINE_STATE, + pub timer: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAS_CONNECTION_3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAS_CONNECTION_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAS_CONNECTION_4 { + pub dwConnectDuration: u32, + pub dwInterfaceType: ROUTER_INTERFACE_TYPE, + pub dwConnectionFlags: RAS_FLAGS, + pub wszInterfaceName: [u16; 257], + pub wszUserName: [u16; 257], + pub wszLogonDomain: [u16; 16], + pub wszRemoteComputer: [u16; 17], + pub guid: ::windows_sys::core::GUID, + pub rasQuarState: RAS_QUARANTINE_STATE, + pub probationTime: super::super::Foundation::FILETIME, + pub connectionStartTime: super::super::Foundation::FILETIME, + pub ullBytesXmited: u64, + pub ullBytesRcved: u64, + pub dwFramesXmited: u32, + pub dwFramesRcved: u32, + pub dwCrcErr: u32, + pub dwTimeoutErr: u32, + pub dwAlignmentErr: u32, + pub dwHardwareOverrunErr: u32, + pub dwFramingErr: u32, + pub dwBufferOverrunErr: u32, + pub dwCompressionRatioIn: u32, + pub dwCompressionRatioOut: u32, + pub dwNumSwitchOvers: u32, + pub wszRemoteEndpointAddress: [u16; 65], + pub wszLocalEndpointAddress: [u16; 65], + pub ProjectionInfo: PROJECTION_INFO2, + pub hConnection: super::super::Foundation::HANDLE, + pub hInterface: super::super::Foundation::HANDLE, + pub dwDeviceType: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAS_CONNECTION_4 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAS_CONNECTION_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAS_CONNECTION_EX { + pub Header: MPRAPI_OBJECT_HEADER, + pub dwConnectDuration: u32, + pub dwInterfaceType: ROUTER_INTERFACE_TYPE, + pub dwConnectionFlags: RAS_FLAGS, + pub wszInterfaceName: [u16; 257], + pub wszUserName: [u16; 257], + pub wszLogonDomain: [u16; 16], + pub wszRemoteComputer: [u16; 17], + pub guid: ::windows_sys::core::GUID, + pub rasQuarState: RAS_QUARANTINE_STATE, + pub probationTime: super::super::Foundation::FILETIME, + pub dwBytesXmited: u32, + pub dwBytesRcved: u32, + pub dwFramesXmited: u32, + pub dwFramesRcved: u32, + pub dwCrcErr: u32, + pub dwTimeoutErr: u32, + pub dwAlignmentErr: u32, + pub dwHardwareOverrunErr: u32, + pub dwFramingErr: u32, + pub dwBufferOverrunErr: u32, + pub dwCompressionRatioIn: u32, + pub dwCompressionRatioOut: u32, + pub dwNumSwitchOvers: u32, + pub wszRemoteEndpointAddress: [u16; 65], + pub wszLocalEndpointAddress: [u16; 65], + pub ProjectionInfo: PROJECTION_INFO, + pub hConnection: super::super::Foundation::HANDLE, + pub hInterface: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAS_CONNECTION_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAS_CONNECTION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAS_PORT_0 { + pub hPort: super::super::Foundation::HANDLE, + pub hConnection: super::super::Foundation::HANDLE, + pub dwPortCondition: RAS_PORT_CONDITION, + pub dwTotalNumberOfCalls: u32, + pub dwConnectDuration: u32, + pub wszPortName: [u16; 17], + pub wszMediaName: [u16; 17], + pub wszDeviceName: [u16; 129], + pub wszDeviceType: [u16; 17], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAS_PORT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAS_PORT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAS_PORT_1 { + pub hPort: super::super::Foundation::HANDLE, + pub hConnection: super::super::Foundation::HANDLE, + pub dwHardwareCondition: RAS_HARDWARE_CONDITION, + pub dwLineSpeed: u32, + pub dwBytesXmited: u32, + pub dwBytesRcved: u32, + pub dwFramesXmited: u32, + pub dwFramesRcved: u32, + pub dwCrcErr: u32, + pub dwTimeoutErr: u32, + pub dwAlignmentErr: u32, + pub dwHardwareOverrunErr: u32, + pub dwFramingErr: u32, + pub dwBufferOverrunErr: u32, + pub dwCompressionRatioIn: u32, + pub dwCompressionRatioOut: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAS_PORT_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAS_PORT_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAS_PORT_2 { + pub hPort: super::super::Foundation::HANDLE, + pub hConnection: super::super::Foundation::HANDLE, + pub dwConn_State: u32, + pub wszPortName: [u16; 17], + pub wszMediaName: [u16; 17], + pub wszDeviceName: [u16; 129], + pub wszDeviceType: [u16; 17], + pub dwHardwareCondition: RAS_HARDWARE_CONDITION, + pub dwLineSpeed: u32, + pub dwCrcErr: u32, + pub dwSerialOverRunErrs: u32, + pub dwTimeoutErr: u32, + pub dwAlignmentErr: u32, + pub dwHardwareOverrunErr: u32, + pub dwFramingErr: u32, + pub dwBufferOverrunErr: u32, + pub dwCompressionRatioIn: u32, + pub dwCompressionRatioOut: u32, + pub dwTotalErrors: u32, + pub ullBytesXmited: u64, + pub ullBytesRcved: u64, + pub ullFramesXmited: u64, + pub ullFramesRcved: u64, + pub ullBytesTxUncompressed: u64, + pub ullBytesTxCompressed: u64, + pub ullBytesRcvUncompressed: u64, + pub ullBytesRcvCompressed: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAS_PORT_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAS_PORT_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct RAS_PROJECTION_INFO { + pub version: RASAPIVERSION, + pub r#type: RASPROJECTION_INFO_TYPE, + pub Anonymous: RAS_PROJECTION_INFO_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for RAS_PROJECTION_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for RAS_PROJECTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub union RAS_PROJECTION_INFO_0 { + pub ppp: RASPPP_PROJECTION_INFO, + pub ikev2: RASIKEV2_PROJECTION_INFO, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for RAS_PROJECTION_INFO_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for RAS_PROJECTION_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RAS_SECURITY_INFO { + pub LastError: u32, + pub BytesReceived: u32, + pub DeviceName: [u8; 129], +} +impl ::core::marker::Copy for RAS_SECURITY_INFO {} +impl ::core::clone::Clone for RAS_SECURITY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RAS_STATS { + pub dwSize: u32, + pub dwBytesXmited: u32, + pub dwBytesRcved: u32, + pub dwFramesXmited: u32, + pub dwFramesRcved: u32, + pub dwCrcErr: u32, + pub dwTimeoutErr: u32, + pub dwAlignmentErr: u32, + pub dwHardwareOverrunErr: u32, + pub dwFramingErr: u32, + pub dwBufferOverrunErr: u32, + pub dwCompressionRatioIn: u32, + pub dwCompressionRatioOut: u32, + pub dwBps: u32, + pub dwConnectDuration: u32, +} +impl ::core::marker::Copy for RAS_STATS {} +impl ::core::clone::Clone for RAS_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RAS_UPDATE_CONNECTION { + pub Header: MPRAPI_OBJECT_HEADER, + pub dwIfIndex: u32, + pub wszLocalEndpointAddress: [u16; 65], + pub wszRemoteEndpointAddress: [u16; 65], +} +impl ::core::marker::Copy for RAS_UPDATE_CONNECTION {} +impl ::core::clone::Clone for RAS_UPDATE_CONNECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RAS_USER_0 { + pub bfPrivilege: u8, + pub wszPhoneNumber: [u16; 129], +} +impl ::core::marker::Copy for RAS_USER_0 {} +impl ::core::clone::Clone for RAS_USER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RAS_USER_1 { + pub bfPrivilege: u8, + pub wszPhoneNumber: [u16; 129], + pub bfPrivilege2: u8, +} +impl ::core::marker::Copy for RAS_USER_1 {} +impl ::core::clone::Clone for RAS_USER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ROUTER_CUSTOM_IKEv2_POLICY0 { + pub dwIntegrityMethod: u32, + pub dwEncryptionMethod: u32, + pub dwCipherTransformConstant: u32, + pub dwAuthTransformConstant: u32, + pub dwPfsGroup: u32, + pub dwDhGroup: u32, +} +impl ::core::marker::Copy for ROUTER_CUSTOM_IKEv2_POLICY0 {} +impl ::core::clone::Clone for ROUTER_CUSTOM_IKEv2_POLICY0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct ROUTER_IKEv2_IF_CUSTOM_CONFIG0 { + pub dwSaLifeTime: u32, + pub dwSaDataSize: u32, + pub certificateName: super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, + pub customPolicy: *mut ROUTER_CUSTOM_IKEv2_POLICY0, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for ROUTER_IKEv2_IF_CUSTOM_CONFIG0 {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for ROUTER_IKEv2_IF_CUSTOM_CONFIG0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct ROUTER_IKEv2_IF_CUSTOM_CONFIG1 { + pub dwSaLifeTime: u32, + pub dwSaDataSize: u32, + pub certificateName: super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, + pub customPolicy: *mut ROUTER_CUSTOM_IKEv2_POLICY0, + pub certificateHash: super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for ROUTER_IKEv2_IF_CUSTOM_CONFIG1 {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for ROUTER_IKEv2_IF_CUSTOM_CONFIG1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Networking_WinSock", feature = "Win32_Security_Cryptography"))] +pub struct ROUTER_IKEv2_IF_CUSTOM_CONFIG2 { + pub dwSaLifeTime: u32, + pub dwSaDataSize: u32, + pub certificateName: super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, + pub customPolicy: *mut ROUTER_CUSTOM_IKEv2_POLICY0, + pub certificateHash: super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, + pub dwMmSaLifeTime: u32, + pub vpnTrafficSelectors: MPR_VPN_TRAFFIC_SELECTORS, +} +#[cfg(all(feature = "Win32_Networking_WinSock", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for ROUTER_IKEv2_IF_CUSTOM_CONFIG2 {} +#[cfg(all(feature = "Win32_Networking_WinSock", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for ROUTER_IKEv2_IF_CUSTOM_CONFIG2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ROUTING_PROTOCOL_CONFIG { + pub dwCallbackFlags: u32, + pub pfnRpfCallback: PMGM_RPF_CALLBACK, + pub pfnCreationAlertCallback: PMGM_CREATION_ALERT_CALLBACK, + pub pfnPruneAlertCallback: PMGM_PRUNE_ALERT_CALLBACK, + pub pfnJoinAlertCallback: PMGM_JOIN_ALERT_CALLBACK, + pub pfnWrongIfCallback: PMGM_WRONG_IF_CALLBACK, + pub pfnLocalJoinCallback: PMGM_LOCAL_JOIN_CALLBACK, + pub pfnLocalLeaveCallback: PMGM_LOCAL_LEAVE_CALLBACK, + pub pfnDisableIgmpCallback: PMGM_DISABLE_IGMP_CALLBACK, + pub pfnEnableIgmpCallback: PMGM_ENABLE_IGMP_CALLBACK, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ROUTING_PROTOCOL_CONFIG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ROUTING_PROTOCOL_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RTM_DEST_INFO { + pub DestHandle: isize, + pub DestAddress: RTM_NET_ADDRESS, + pub LastChanged: super::super::Foundation::FILETIME, + pub BelongsToViews: u32, + pub NumberOfViews: u32, + pub ViewInfo: [RTM_DEST_INFO_0; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RTM_DEST_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RTM_DEST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RTM_DEST_INFO_0 { + pub ViewId: i32, + pub NumRoutes: u32, + pub Route: isize, + pub Owner: isize, + pub DestFlags: u32, + pub HoldRoute: isize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RTM_DEST_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RTM_DEST_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTM_ENTITY_EXPORT_METHODS { + pub NumMethods: u32, + pub Methods: [RTM_ENTITY_EXPORT_METHOD; 1], +} +impl ::core::marker::Copy for RTM_ENTITY_EXPORT_METHODS {} +impl ::core::clone::Clone for RTM_ENTITY_EXPORT_METHODS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTM_ENTITY_ID { + pub Anonymous: RTM_ENTITY_ID_0, +} +impl ::core::marker::Copy for RTM_ENTITY_ID {} +impl ::core::clone::Clone for RTM_ENTITY_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union RTM_ENTITY_ID_0 { + pub Anonymous: RTM_ENTITY_ID_0_0, + pub EntityId: u64, +} +impl ::core::marker::Copy for RTM_ENTITY_ID_0 {} +impl ::core::clone::Clone for RTM_ENTITY_ID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTM_ENTITY_ID_0_0 { + pub EntityProtocolId: u32, + pub EntityInstanceId: u32, +} +impl ::core::marker::Copy for RTM_ENTITY_ID_0_0 {} +impl ::core::clone::Clone for RTM_ENTITY_ID_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTM_ENTITY_INFO { + pub RtmInstanceId: u16, + pub AddressFamily: u16, + pub EntityId: RTM_ENTITY_ID, +} +impl ::core::marker::Copy for RTM_ENTITY_INFO {} +impl ::core::clone::Clone for RTM_ENTITY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTM_ENTITY_METHOD_INPUT { + pub MethodType: u32, + pub InputSize: u32, + pub InputData: [u8; 1], +} +impl ::core::marker::Copy for RTM_ENTITY_METHOD_INPUT {} +impl ::core::clone::Clone for RTM_ENTITY_METHOD_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTM_ENTITY_METHOD_OUTPUT { + pub MethodType: u32, + pub MethodStatus: u32, + pub OutputSize: u32, + pub OutputData: [u8; 1], +} +impl ::core::marker::Copy for RTM_ENTITY_METHOD_OUTPUT {} +impl ::core::clone::Clone for RTM_ENTITY_METHOD_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTM_NET_ADDRESS { + pub AddressFamily: u16, + pub NumBits: u16, + pub AddrBits: [u8; 16], +} +impl ::core::marker::Copy for RTM_NET_ADDRESS {} +impl ::core::clone::Clone for RTM_NET_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTM_NEXTHOP_INFO { + pub NextHopAddress: RTM_NET_ADDRESS, + pub NextHopOwner: isize, + pub InterfaceIndex: u32, + pub State: u16, + pub Flags: u16, + pub EntitySpecificInfo: *mut ::core::ffi::c_void, + pub RemoteNextHop: isize, +} +impl ::core::marker::Copy for RTM_NEXTHOP_INFO {} +impl ::core::clone::Clone for RTM_NEXTHOP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTM_NEXTHOP_LIST { + pub NumNextHops: u16, + pub NextHops: [isize; 1], +} +impl ::core::marker::Copy for RTM_NEXTHOP_LIST {} +impl ::core::clone::Clone for RTM_NEXTHOP_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTM_PREF_INFO { + pub Metric: u32, + pub Preference: u32, +} +impl ::core::marker::Copy for RTM_PREF_INFO {} +impl ::core::clone::Clone for RTM_PREF_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTM_REGN_PROFILE { + pub MaxNextHopsInRoute: u32, + pub MaxHandlesInEnum: u32, + pub ViewsSupported: u32, + pub NumberOfViews: u32, +} +impl ::core::marker::Copy for RTM_REGN_PROFILE {} +impl ::core::clone::Clone for RTM_REGN_PROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTM_ROUTE_INFO { + pub DestHandle: isize, + pub RouteOwner: isize, + pub Neighbour: isize, + pub State: u8, + pub Flags1: u8, + pub Flags: u16, + pub PrefInfo: RTM_PREF_INFO, + pub BelongsToViews: u32, + pub EntitySpecificInfo: *mut ::core::ffi::c_void, + pub NextHopsList: RTM_NEXTHOP_LIST, +} +impl ::core::marker::Copy for RTM_ROUTE_INFO {} +impl ::core::clone::Clone for RTM_ROUTE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECURITY_MESSAGE { + pub dwMsgId: SECURITY_MESSAGE_MSG_ID, + pub hPort: isize, + pub dwError: u32, + pub UserName: [u8; 257], + pub Domain: [u8; 16], +} +impl ::core::marker::Copy for SECURITY_MESSAGE {} +impl ::core::clone::Clone for SECURITY_MESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOURCE_GROUP_ENTRY { + pub dwSourceAddr: u32, + pub dwSourceMask: u32, + pub dwGroupAddr: u32, + pub dwGroupMask: u32, +} +impl ::core::marker::Copy for SOURCE_GROUP_ENTRY {} +impl ::core::clone::Clone for SOURCE_GROUP_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct SSTP_CERT_INFO { + pub isDefault: super::super::Foundation::BOOL, + pub certBlob: super::super::Security::Cryptography::CRYPT_INTEGER_BLOB, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for SSTP_CERT_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for SSTP_CERT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct SSTP_CONFIG_PARAMS { + pub dwNumPorts: u32, + pub dwPortFlags: u32, + pub isUseHttps: super::super::Foundation::BOOL, + pub certAlgorithm: u32, + pub sstpCertDetails: SSTP_CERT_INFO, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for SSTP_CONFIG_PARAMS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for SSTP_CONFIG_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct VPN_TS_IP_ADDRESS { + pub Type: u16, + pub Anonymous: VPN_TS_IP_ADDRESS_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for VPN_TS_IP_ADDRESS {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for VPN_TS_IP_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union VPN_TS_IP_ADDRESS_0 { + pub v4: super::super::Networking::WinSock::IN_ADDR, + pub v6: super::super::Networking::WinSock::IN6_ADDR, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for VPN_TS_IP_ADDRESS_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for VPN_TS_IP_ADDRESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ORASADFUNC = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFNRASFREEBUFFER = ::core::option::Option u32>; +pub type PFNRASGETBUFFER = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNRASRECEIVEBUFFER = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNRASRETRIEVEBUFFER = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNRASSENDBUFFER = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNRASSETCOMMSETTINGS = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMGM_CREATION_ALERT_CALLBACK = ::core::option::Option u32>; +pub type PMGM_DISABLE_IGMP_CALLBACK = ::core::option::Option u32>; +pub type PMGM_ENABLE_IGMP_CALLBACK = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMGM_JOIN_ALERT_CALLBACK = ::core::option::Option u32>; +pub type PMGM_LOCAL_JOIN_CALLBACK = ::core::option::Option u32>; +pub type PMGM_LOCAL_LEAVE_CALLBACK = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMGM_PRUNE_ALERT_CALLBACK = ::core::option::Option u32>; +pub type PMGM_RPF_CALLBACK = ::core::option::Option u32>; +pub type PMGM_WRONG_IF_CALLBACK = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINACCEPTNEWCONNECTION = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINACCEPTNEWCONNECTION2 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINACCEPTNEWCONNECTION3 = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINACCEPTNEWCONNECTIONEX = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINACCEPTNEWLINK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINACCEPTREAUTHENTICATION = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINACCEPTREAUTHENTICATIONEX = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINACCEPTTUNNELENDPOINTCHANGEEX = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINCONNECTIONHANGUPNOTIFICATION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINCONNECTIONHANGUPNOTIFICATION2 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINCONNECTIONHANGUPNOTIFICATION3 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINCONNECTIONHANGUPNOTIFICATIONEX = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINGETIPADDRESSFORUSER = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub type PMPRADMINGETIPV6ADDRESSFORUSER = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINLINKHANGUPNOTIFICATION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PMPRADMINRASVALIDATEPREAUTHENTICATEDCONNECTIONEX = ::core::option::Option u32>; +pub type PMPRADMINRELEASEIPADRESS = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub type PMPRADMINRELEASEIPV6ADDRESSFORUSER = ::core::option::Option ()>; +pub type PMPRADMINTERMINATEDLL = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type RASADFUNCA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type RASADFUNCW = ::core::option::Option super::super::Foundation::BOOL>; +pub type RASDIALFUNC = ::core::option::Option ()>; +pub type RASDIALFUNC1 = ::core::option::Option ()>; +pub type RASDIALFUNC2 = ::core::option::Option u32>; +pub type RASPBDLGFUNCA = ::core::option::Option ()>; +pub type RASPBDLGFUNCW = ::core::option::Option ()>; +pub type RASSECURITYPROC = ::core::option::Option u32>; +pub type RTM_ENTITY_EXPORT_METHOD = ::core::option::Option ()>; +pub type RTM_EVENT_CALLBACK = ::core::option::Option u32>; +pub type RasCustomDeleteEntryNotifyFn = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type RasCustomDialDlgFn = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type RasCustomDialFn = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type RasCustomEntryDlgFn = ::core::option::Option super::super::Foundation::BOOL>; +pub type RasCustomHangUpFn = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type RasCustomScriptExecuteFn = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Snmp/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Snmp/mod.rs new file mode 100644 index 000000000..de2d77d17 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/Snmp/mod.rs @@ -0,0 +1,531 @@ +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpCancelMsg(session : isize, reqid : i32) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpCleanup() -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpCleanupEx() -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpClose(session : isize) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpContextToStr(context : isize, string : *mut smiOCTETS) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpCountVbl(vbl : isize) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpCreatePdu(session : isize, pdu_type : SNMP_PDU_TYPE, request_id : i32, error_status : i32, error_index : i32, varbindlist : isize) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsnmp32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpCreateSession(hwnd : super::super::Foundation:: HWND, wmsg : u32, fcallback : SNMPAPI_CALLBACK, lpclientdata : *mut ::core::ffi::c_void) -> isize); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpCreateVbl(session : isize, name : *mut smiOID, value : *mut smiVALUE) -> isize); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpDecodeMsg(session : isize, srcentity : *mut isize, dstentity : *mut isize, context : *mut isize, pdu : *mut isize, msgbufdesc : *mut smiOCTETS) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpDeleteVb(vbl : isize, index : u32) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpDuplicatePdu(session : isize, pdu : isize) -> isize); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpDuplicateVbl(session : isize, vbl : isize) -> isize); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpEncodeMsg(session : isize, srcentity : isize, dstentity : isize, context : isize, pdu : isize, msgbufdesc : *mut smiOCTETS) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpEntityToStr(entity : isize, size : u32, string : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpFreeContext(context : isize) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpFreeDescriptor(syntax : u32, descriptor : *mut smiOCTETS) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpFreeEntity(entity : isize) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpFreePdu(pdu : isize) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpFreeVbl(vbl : isize) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpGetLastError(session : isize) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpGetPduData(pdu : isize, pdu_type : *mut SNMP_PDU_TYPE, request_id : *mut i32, error_status : *mut SNMP_ERROR, error_index : *mut i32, varbindlist : *mut isize) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpGetRetransmitMode(nretransmitmode : *mut SNMP_STATUS) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpGetRetry(hentity : isize, npolicyretry : *mut u32, nactualretry : *mut u32) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpGetTimeout(hentity : isize, npolicytimeout : *mut u32, nactualtimeout : *mut u32) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpGetTranslateMode(ntranslatemode : *mut SNMP_API_TRANSLATE_MODE) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpGetVb(vbl : isize, index : u32, name : *mut smiOID, value : *mut smiVALUE) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpGetVendorInfo(vendorinfo : *mut smiVENDORINFO) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpListen(hentity : isize, lstatus : SNMP_STATUS) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpListenEx(hentity : isize, lstatus : u32, nuseentityaddr : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mgmtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpMgrClose(session : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mgmtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpMgrCtl(session : *mut ::core::ffi::c_void, dwctlcode : u32, lpvinbuffer : *mut ::core::ffi::c_void, cbinbuffer : u32, lpvoutbuffer : *mut ::core::ffi::c_void, cboutbuffer : u32, lpcbbytesreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mgmtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpMgrGetTrap(enterprise : *mut AsnObjectIdentifier, ipaddress : *mut AsnOctetString, generictrap : *mut SNMP_GENERICTRAP, specifictrap : *mut i32, timestamp : *mut u32, variablebindings : *mut SnmpVarBindList) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mgmtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpMgrGetTrapEx(enterprise : *mut AsnObjectIdentifier, agentaddress : *mut AsnOctetString, sourceaddress : *mut AsnOctetString, generictrap : *mut SNMP_GENERICTRAP, specifictrap : *mut i32, community : *mut AsnOctetString, timestamp : *mut u32, variablebindings : *mut SnmpVarBindList) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mgmtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpMgrOidToStr(oid : *mut AsnObjectIdentifier, string : *mut ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("mgmtapi.dll" "system" fn SnmpMgrOpen(lpagentaddress : ::windows_sys::core::PCSTR, lpagentcommunity : ::windows_sys::core::PCSTR, ntimeout : i32, nretries : i32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mgmtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpMgrRequest(session : *mut ::core::ffi::c_void, requesttype : u8, variablebindings : *mut SnmpVarBindList, errorstatus : *mut SNMP_ERROR_STATUS, errorindex : *mut i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mgmtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpMgrStrToOid(string : ::windows_sys::core::PCSTR, oid : *mut AsnObjectIdentifier) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mgmtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpMgrTrapListen(phtrapavailable : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpOidCompare(xoid : *mut smiOID, yoid : *mut smiOID, maxlen : u32, result : *mut i32) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpOidCopy(srcoid : *mut smiOID, dstoid : *mut smiOID) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpOidToStr(srcoid : *const smiOID, size : u32, string : ::windows_sys::core::PSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsnmp32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpOpen(hwnd : super::super::Foundation:: HWND, wmsg : u32) -> isize); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpRecvMsg(session : isize, srcentity : *mut isize, dstentity : *mut isize, context : *mut isize, pdu : *mut isize) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpRegister(session : isize, srcentity : isize, dstentity : isize, context : isize, notification : *mut smiOID, state : SNMP_STATUS) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpSendMsg(session : isize, srcentity : isize, dstentity : isize, context : isize, pdu : isize) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpSetPduData(pdu : isize, pdu_type : *const i32, request_id : *const i32, non_repeaters : *const i32, max_repetitions : *const i32, varbindlist : *const isize) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpSetPort(hentity : isize, nport : u32) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpSetRetransmitMode(nretransmitmode : SNMP_STATUS) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpSetRetry(hentity : isize, npolicyretry : u32) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpSetTimeout(hentity : isize, npolicytimeout : u32) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpSetTranslateMode(ntranslatemode : SNMP_API_TRANSLATE_MODE) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpSetVb(vbl : isize, index : u32, name : *mut smiOID, value : *mut smiVALUE) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpStartup(nmajorversion : *mut u32, nminorversion : *mut u32, nlevel : *mut u32, ntranslatemode : *mut SNMP_API_TRANSLATE_MODE, nretransmitmode : *mut SNMP_STATUS) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpStartupEx(nmajorversion : *mut u32, nminorversion : *mut u32, nlevel : *mut u32, ntranslatemode : *mut SNMP_API_TRANSLATE_MODE, nretransmitmode : *mut SNMP_STATUS) -> u32); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpStrToContext(session : isize, string : *mut smiOCTETS) -> isize); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpStrToEntity(session : isize, string : ::windows_sys::core::PCSTR) -> isize); +::windows_targets::link!("wsnmp32.dll" "system" fn SnmpStrToOid(string : ::windows_sys::core::PCSTR, dstoid : *mut smiOID) -> u32); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpSvcGetUptime() -> u32); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpSvcSetLogLevel(nloglevel : SNMP_LOG) -> ()); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpSvcSetLogType(nlogtype : i32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("snmpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpUtilAsnAnyCpy(panydst : *mut AsnAny, panysrc : *mut AsnAny) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("snmpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpUtilAsnAnyFree(pany : *mut AsnAny) -> ()); +::windows_targets::link!("snmpapi.dll" "cdecl" fn SnmpUtilDbgPrint(nloglevel : SNMP_LOG, szformat : ::windows_sys::core::PCSTR, ...) -> ()); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpUtilIdsToA(ids : *mut u32, idlength : u32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpUtilMemAlloc(nbytes : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpUtilMemFree(pmem : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpUtilMemReAlloc(pmem : *mut ::core::ffi::c_void, nbytes : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("snmpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpUtilOctetsCmp(poctets1 : *mut AsnOctetString, poctets2 : *mut AsnOctetString) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("snmpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpUtilOctetsCpy(poctetsdst : *mut AsnOctetString, poctetssrc : *mut AsnOctetString) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("snmpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpUtilOctetsFree(poctets : *mut AsnOctetString) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("snmpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpUtilOctetsNCmp(poctets1 : *mut AsnOctetString, poctets2 : *mut AsnOctetString, nchars : u32) -> i32); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpUtilOidAppend(poiddst : *mut AsnObjectIdentifier, poidsrc : *mut AsnObjectIdentifier) -> i32); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpUtilOidCmp(poid1 : *mut AsnObjectIdentifier, poid2 : *mut AsnObjectIdentifier) -> i32); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpUtilOidCpy(poiddst : *mut AsnObjectIdentifier, poidsrc : *mut AsnObjectIdentifier) -> i32); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpUtilOidFree(poid : *mut AsnObjectIdentifier) -> ()); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpUtilOidNCmp(poid1 : *mut AsnObjectIdentifier, poid2 : *mut AsnObjectIdentifier, nsubids : u32) -> i32); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpUtilOidToA(oid : *mut AsnObjectIdentifier) -> ::windows_sys::core::PSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("snmpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpUtilPrintAsnAny(pany : *mut AsnAny) -> ()); +::windows_targets::link!("snmpapi.dll" "system" fn SnmpUtilPrintOid(oid : *mut AsnObjectIdentifier) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("snmpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpUtilVarBindCpy(pvbdst : *mut SnmpVarBind, pvbsrc : *mut SnmpVarBind) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("snmpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpUtilVarBindFree(pvb : *mut SnmpVarBind) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("snmpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpUtilVarBindListCpy(pvbldst : *mut SnmpVarBindList, pvblsrc : *mut SnmpVarBindList) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("snmpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SnmpUtilVarBindListFree(pvbl : *mut SnmpVarBindList) -> ()); +pub const ASN_APPLICATION: u32 = 64u32; +pub const ASN_CONSTRUCTOR: u32 = 32u32; +pub const ASN_CONTEXT: u32 = 128u32; +pub const ASN_CONTEXTSPECIFIC: u32 = 128u32; +pub const ASN_PRIMATIVE: u32 = 0u32; +pub const ASN_PRIMITIVE: u32 = 0u32; +pub const ASN_PRIVATE: u32 = 192u32; +pub const ASN_UNIVERSAL: u32 = 0u32; +pub const DEFAULT_SNMPTRAP_PORT_IPX: u32 = 36880u32; +pub const DEFAULT_SNMPTRAP_PORT_UDP: u32 = 162u32; +pub const DEFAULT_SNMP_PORT_IPX: u32 = 36879u32; +pub const DEFAULT_SNMP_PORT_UDP: u32 = 161u32; +pub const MAXOBJIDSIZE: u32 = 128u32; +pub const MAXOBJIDSTRSIZE: u32 = 1408u32; +pub const MAXVENDORINFO: u32 = 32u32; +pub const MGMCTL_SETAGENTPORT: u32 = 1u32; +pub const SNMPAPI_ALLOC_ERROR: u32 = 2u32; +pub const SNMPAPI_CONTEXT_INVALID: u32 = 3u32; +pub const SNMPAPI_CONTEXT_UNKNOWN: u32 = 4u32; +pub const SNMPAPI_ENTITY_INVALID: u32 = 5u32; +pub const SNMPAPI_ENTITY_UNKNOWN: u32 = 6u32; +pub const SNMPAPI_ERROR: u32 = 0u32; +pub const SNMPAPI_FAILURE: u32 = 0u32; +pub const SNMPAPI_HWND_INVALID: u32 = 20u32; +pub const SNMPAPI_INDEX_INVALID: u32 = 7u32; +pub const SNMPAPI_M2M_SUPPORT: u32 = 3u32; +pub const SNMPAPI_MESSAGE_INVALID: u32 = 19u32; +pub const SNMPAPI_MODE_INVALID: u32 = 16u32; +pub const SNMPAPI_NOERROR: u32 = 1u32; +pub const SNMPAPI_NOOP: u32 = 8u32; +pub const SNMPAPI_NOT_INITIALIZED: u32 = 18u32; +pub const SNMPAPI_NO_SUPPORT: u32 = 0u32; +pub const SNMPAPI_OFF: SNMP_STATUS = 0u32; +pub const SNMPAPI_OID_INVALID: u32 = 9u32; +pub const SNMPAPI_ON: SNMP_STATUS = 1u32; +pub const SNMPAPI_OPERATION_INVALID: u32 = 10u32; +pub const SNMPAPI_OTHER_ERROR: u32 = 99u32; +pub const SNMPAPI_OUTPUT_TRUNCATED: u32 = 11u32; +pub const SNMPAPI_PDU_INVALID: u32 = 12u32; +pub const SNMPAPI_SESSION_INVALID: u32 = 13u32; +pub const SNMPAPI_SIZE_INVALID: u32 = 17u32; +pub const SNMPAPI_SUCCESS: u32 = 1u32; +pub const SNMPAPI_SYNTAX_INVALID: u32 = 14u32; +pub const SNMPAPI_TL_INVALID_PARAM: u32 = 106u32; +pub const SNMPAPI_TL_IN_USE: u32 = 107u32; +pub const SNMPAPI_TL_NOT_AVAILABLE: u32 = 102u32; +pub const SNMPAPI_TL_NOT_INITIALIZED: u32 = 100u32; +pub const SNMPAPI_TL_NOT_SUPPORTED: u32 = 101u32; +pub const SNMPAPI_TL_OTHER: u32 = 199u32; +pub const SNMPAPI_TL_PDU_TOO_BIG: u32 = 109u32; +pub const SNMPAPI_TL_RESOURCE_ERROR: u32 = 103u32; +pub const SNMPAPI_TL_SRC_INVALID: u32 = 105u32; +pub const SNMPAPI_TL_TIMEOUT: u32 = 108u32; +pub const SNMPAPI_TL_UNDELIVERABLE: u32 = 104u32; +pub const SNMPAPI_TRANSLATED: SNMP_API_TRANSLATE_MODE = 0u32; +pub const SNMPAPI_UNTRANSLATED_V1: SNMP_API_TRANSLATE_MODE = 1u32; +pub const SNMPAPI_UNTRANSLATED_V2: SNMP_API_TRANSLATE_MODE = 2u32; +pub const SNMPAPI_V1_SUPPORT: u32 = 1u32; +pub const SNMPAPI_V2_SUPPORT: u32 = 2u32; +pub const SNMPAPI_VBL_INVALID: u32 = 15u32; +pub const SNMPLISTEN_ALL_ADDR: u32 = 1u32; +pub const SNMPLISTEN_USEENTITY_ADDR: u32 = 0u32; +pub const SNMP_ACCESS_NONE: u32 = 0u32; +pub const SNMP_ACCESS_NOTIFY: u32 = 1u32; +pub const SNMP_ACCESS_READ_CREATE: u32 = 4u32; +pub const SNMP_ACCESS_READ_ONLY: u32 = 2u32; +pub const SNMP_ACCESS_READ_WRITE: u32 = 3u32; +pub const SNMP_AUTHAPI_INVALID_MSG_TYPE: u32 = 31u32; +pub const SNMP_AUTHAPI_INVALID_VERSION: u32 = 30u32; +pub const SNMP_AUTHAPI_TRIV_AUTH_FAILED: u32 = 32u32; +pub const SNMP_BERAPI_INVALID_LENGTH: u32 = 10u32; +pub const SNMP_BERAPI_INVALID_OBJELEM: u32 = 14u32; +pub const SNMP_BERAPI_INVALID_TAG: u32 = 11u32; +pub const SNMP_BERAPI_OVERFLOW: u32 = 12u32; +pub const SNMP_BERAPI_SHORT_BUFFER: u32 = 13u32; +pub const SNMP_ERRORSTATUS_AUTHORIZATIONERROR: SNMP_ERROR_STATUS = 16u32; +pub const SNMP_ERRORSTATUS_BADVALUE: SNMP_ERROR_STATUS = 3u32; +pub const SNMP_ERRORSTATUS_COMMITFAILED: SNMP_ERROR_STATUS = 14u32; +pub const SNMP_ERRORSTATUS_GENERR: SNMP_ERROR_STATUS = 5u32; +pub const SNMP_ERRORSTATUS_INCONSISTENTNAME: SNMP_ERROR_STATUS = 18u32; +pub const SNMP_ERRORSTATUS_INCONSISTENTVALUE: SNMP_ERROR_STATUS = 12u32; +pub const SNMP_ERRORSTATUS_NOACCESS: SNMP_ERROR_STATUS = 6u32; +pub const SNMP_ERRORSTATUS_NOCREATION: SNMP_ERROR_STATUS = 11u32; +pub const SNMP_ERRORSTATUS_NOERROR: SNMP_ERROR_STATUS = 0u32; +pub const SNMP_ERRORSTATUS_NOSUCHNAME: SNMP_ERROR_STATUS = 2u32; +pub const SNMP_ERRORSTATUS_NOTWRITABLE: SNMP_ERROR_STATUS = 17u32; +pub const SNMP_ERRORSTATUS_READONLY: SNMP_ERROR_STATUS = 4u32; +pub const SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE: SNMP_ERROR_STATUS = 13u32; +pub const SNMP_ERRORSTATUS_TOOBIG: SNMP_ERROR_STATUS = 1u32; +pub const SNMP_ERRORSTATUS_UNDOFAILED: SNMP_ERROR_STATUS = 15u32; +pub const SNMP_ERRORSTATUS_WRONGENCODING: SNMP_ERROR_STATUS = 9u32; +pub const SNMP_ERRORSTATUS_WRONGLENGTH: SNMP_ERROR_STATUS = 8u32; +pub const SNMP_ERRORSTATUS_WRONGTYPE: SNMP_ERROR_STATUS = 7u32; +pub const SNMP_ERRORSTATUS_WRONGVALUE: SNMP_ERROR_STATUS = 10u32; +pub const SNMP_ERROR_AUTHORIZATIONERROR: SNMP_ERROR = 16u32; +pub const SNMP_ERROR_BADVALUE: SNMP_ERROR = 3u32; +pub const SNMP_ERROR_COMMITFAILED: SNMP_ERROR = 14u32; +pub const SNMP_ERROR_GENERR: SNMP_ERROR = 5u32; +pub const SNMP_ERROR_INCONSISTENTNAME: SNMP_ERROR = 18u32; +pub const SNMP_ERROR_INCONSISTENTVALUE: SNMP_ERROR = 12u32; +pub const SNMP_ERROR_NOACCESS: SNMP_ERROR = 6u32; +pub const SNMP_ERROR_NOCREATION: SNMP_ERROR = 11u32; +pub const SNMP_ERROR_NOERROR: SNMP_ERROR = 0u32; +pub const SNMP_ERROR_NOSUCHNAME: SNMP_ERROR = 2u32; +pub const SNMP_ERROR_NOTWRITABLE: SNMP_ERROR = 17u32; +pub const SNMP_ERROR_READONLY: SNMP_ERROR = 4u32; +pub const SNMP_ERROR_RESOURCEUNAVAILABLE: SNMP_ERROR = 13u32; +pub const SNMP_ERROR_TOOBIG: SNMP_ERROR = 1u32; +pub const SNMP_ERROR_UNDOFAILED: SNMP_ERROR = 15u32; +pub const SNMP_ERROR_WRONGENCODING: SNMP_ERROR = 9u32; +pub const SNMP_ERROR_WRONGLENGTH: SNMP_ERROR = 8u32; +pub const SNMP_ERROR_WRONGTYPE: SNMP_ERROR = 7u32; +pub const SNMP_ERROR_WRONGVALUE: SNMP_ERROR = 10u32; +pub const SNMP_EXTENSION_GET: SNMP_EXTENSION_REQUEST_TYPE = 160u32; +pub const SNMP_EXTENSION_GET_NEXT: SNMP_EXTENSION_REQUEST_TYPE = 161u32; +pub const SNMP_EXTENSION_SET_CLEANUP: SNMP_EXTENSION_REQUEST_TYPE = 226u32; +pub const SNMP_EXTENSION_SET_COMMIT: SNMP_EXTENSION_REQUEST_TYPE = 163u32; +pub const SNMP_EXTENSION_SET_TEST: SNMP_EXTENSION_REQUEST_TYPE = 224u32; +pub const SNMP_EXTENSION_SET_UNDO: SNMP_EXTENSION_REQUEST_TYPE = 225u32; +pub const SNMP_GENERICTRAP_AUTHFAILURE: SNMP_GENERICTRAP = 4u32; +pub const SNMP_GENERICTRAP_COLDSTART: SNMP_GENERICTRAP = 0u32; +pub const SNMP_GENERICTRAP_EGPNEIGHLOSS: SNMP_GENERICTRAP = 5u32; +pub const SNMP_GENERICTRAP_ENTERSPECIFIC: SNMP_GENERICTRAP = 6u32; +pub const SNMP_GENERICTRAP_LINKDOWN: SNMP_GENERICTRAP = 2u32; +pub const SNMP_GENERICTRAP_LINKUP: SNMP_GENERICTRAP = 3u32; +pub const SNMP_GENERICTRAP_WARMSTART: SNMP_GENERICTRAP = 1u32; +pub const SNMP_LOG_ERROR: SNMP_LOG = 2i32; +pub const SNMP_LOG_FATAL: SNMP_LOG = 1i32; +pub const SNMP_LOG_SILENT: SNMP_LOG = 0i32; +pub const SNMP_LOG_TRACE: SNMP_LOG = 4i32; +pub const SNMP_LOG_VERBOSE: SNMP_LOG = 5i32; +pub const SNMP_LOG_WARNING: SNMP_LOG = 3i32; +pub const SNMP_MAX_OID_LEN: u32 = 128u32; +pub const SNMP_MEM_ALLOC_ERROR: u32 = 1u32; +pub const SNMP_MGMTAPI_AGAIN: u32 = 45u32; +pub const SNMP_MGMTAPI_INVALID_BUFFER: u32 = 48u32; +pub const SNMP_MGMTAPI_INVALID_CTL: u32 = 46u32; +pub const SNMP_MGMTAPI_INVALID_SESSION: u32 = 47u32; +pub const SNMP_MGMTAPI_NOTRAPS: u32 = 44u32; +pub const SNMP_MGMTAPI_SELECT_FDERRORS: u32 = 41u32; +pub const SNMP_MGMTAPI_TIMEOUT: u32 = 40u32; +pub const SNMP_MGMTAPI_TRAP_DUPINIT: u32 = 43u32; +pub const SNMP_MGMTAPI_TRAP_ERRORS: u32 = 42u32; +pub const SNMP_OUTPUT_TO_CONSOLE: SNMP_OUTPUT_LOG_TYPE = 1u32; +pub const SNMP_OUTPUT_TO_DEBUGGER: SNMP_OUTPUT_LOG_TYPE = 8u32; +pub const SNMP_OUTPUT_TO_EVENTLOG: u32 = 4u32; +pub const SNMP_OUTPUT_TO_LOGFILE: SNMP_OUTPUT_LOG_TYPE = 2u32; +pub const SNMP_PDUAPI_INVALID_ES: u32 = 21u32; +pub const SNMP_PDUAPI_INVALID_GT: u32 = 22u32; +pub const SNMP_PDUAPI_UNRECOGNIZED_PDU: u32 = 20u32; +pub const SNMP_PDU_GET: SNMP_PDU_TYPE = 160u32; +pub const SNMP_PDU_GETBULK: SNMP_PDU_TYPE = 165u32; +pub const SNMP_PDU_GETNEXT: SNMP_PDU_TYPE = 161u32; +pub const SNMP_PDU_RESPONSE: SNMP_PDU_TYPE = 162u32; +pub const SNMP_PDU_SET: SNMP_PDU_TYPE = 163u32; +pub const SNMP_PDU_TRAP: SNMP_PDU_TYPE = 167u32; +pub const SNMP_TRAP_AUTHFAIL: u32 = 4u32; +pub const SNMP_TRAP_COLDSTART: u32 = 0u32; +pub const SNMP_TRAP_EGPNEIGHBORLOSS: u32 = 5u32; +pub const SNMP_TRAP_ENTERPRISESPECIFIC: u32 = 6u32; +pub const SNMP_TRAP_LINKDOWN: u32 = 2u32; +pub const SNMP_TRAP_LINKUP: u32 = 3u32; +pub const SNMP_TRAP_WARMSTART: u32 = 1u32; +pub type SNMP_API_TRANSLATE_MODE = u32; +pub type SNMP_ERROR = u32; +pub type SNMP_ERROR_STATUS = u32; +pub type SNMP_EXTENSION_REQUEST_TYPE = u32; +pub type SNMP_GENERICTRAP = u32; +pub type SNMP_LOG = i32; +pub type SNMP_OUTPUT_LOG_TYPE = u32; +pub type SNMP_PDU_TYPE = u32; +pub type SNMP_STATUS = u32; +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AsnAny { + pub asnType: u8, + pub asnValue: AsnAny_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AsnAny {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AsnAny { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union AsnAny_0 { + pub number: i32, + pub unsigned32: u32, + pub counter64: u64, + pub string: AsnOctetString, + pub bits: AsnOctetString, + pub object: AsnObjectIdentifier, + pub sequence: AsnOctetString, + pub address: AsnOctetString, + pub counter: u32, + pub gauge: u32, + pub ticks: u32, + pub arbitrary: AsnOctetString, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AsnAny_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AsnAny_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct AsnObjectIdentifier { + pub idLength: u32, + pub ids: *mut u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for AsnObjectIdentifier {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for AsnObjectIdentifier { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct AsnObjectIdentifier { + pub idLength: u32, + pub ids: *mut u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for AsnObjectIdentifier {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for AsnObjectIdentifier { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct AsnOctetString { + pub stream: *mut u8, + pub length: u32, + pub dynamic: super::super::Foundation::BOOL, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AsnOctetString {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AsnOctetString { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct AsnOctetString { + pub stream: *mut u8, + pub length: u32, + pub dynamic: super::super::Foundation::BOOL, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AsnOctetString {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AsnOctetString { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SnmpVarBind { + pub name: AsnObjectIdentifier, + pub value: AsnAny, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SnmpVarBind {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SnmpVarBind { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct SnmpVarBindList { + pub list: *mut SnmpVarBind, + pub len: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SnmpVarBindList {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SnmpVarBindList { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct SnmpVarBindList { + pub list: *mut SnmpVarBind, + pub len: u32, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SnmpVarBindList {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SnmpVarBindList { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct smiCNTR64 { + pub hipart: u32, + pub lopart: u32, +} +impl ::core::marker::Copy for smiCNTR64 {} +impl ::core::clone::Clone for smiCNTR64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct smiOCTETS { + pub len: u32, + pub ptr: *mut u8, +} +impl ::core::marker::Copy for smiOCTETS {} +impl ::core::clone::Clone for smiOCTETS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct smiOID { + pub len: u32, + pub ptr: *mut u32, +} +impl ::core::marker::Copy for smiOID {} +impl ::core::clone::Clone for smiOID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct smiVALUE { + pub syntax: u32, + pub value: smiVALUE_0, +} +impl ::core::marker::Copy for smiVALUE {} +impl ::core::clone::Clone for smiVALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union smiVALUE_0 { + pub sNumber: i32, + pub uNumber: u32, + pub hNumber: smiCNTR64, + pub string: smiOCTETS, + pub oid: smiOID, + pub empty: u8, +} +impl ::core::marker::Copy for smiVALUE_0 {} +impl ::core::clone::Clone for smiVALUE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct smiVENDORINFO { + pub vendorName: [u8; 64], + pub vendorContact: [u8; 64], + pub vendorVersionId: [u8; 32], + pub vendorVersionDate: [u8; 32], + pub vendorEnterprise: u32, +} +impl ::core::marker::Copy for smiVENDORINFO {} +impl ::core::clone::Clone for smiVENDORINFO { + fn clone(&self) -> Self { + *self + } +} +pub type PFNSNMPCLEANUPEX = ::core::option::Option u32>; +pub type PFNSNMPEXTENSIONCLOSE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNSNMPEXTENSIONINIT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNSNMPEXTENSIONINITEX = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNSNMPEXTENSIONMONITOR = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNSNMPEXTENSIONQUERY = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNSNMPEXTENSIONQUERYEX = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNSNMPEXTENSIONTRAP = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFNSNMPSTARTUPEX = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SNMPAPI_CALLBACK = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WNet/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WNet/mod.rs new file mode 100644 index 000000000..3747b781b --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WNet/mod.rs @@ -0,0 +1,550 @@ +::windows_targets::link!("mpr.dll" "system" fn MultinetGetConnectionPerformanceA(lpnetresource : *const NETRESOURCEA, lpnetconnectinfostruct : *mut NETCONNECTINFOSTRUCT) -> u32); +::windows_targets::link!("mpr.dll" "system" fn MultinetGetConnectionPerformanceW(lpnetresource : *const NETRESOURCEW, lpnetconnectinfostruct : *mut NETCONNECTINFOSTRUCT) -> u32); +::windows_targets::link!("davclnt.dll" "system" fn NPAddConnection(lpnetresource : *const NETRESOURCEW, lppassword : ::windows_sys::core::PCWSTR, lpusername : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("davclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NPAddConnection3(hwndowner : super::super::Foundation:: HWND, lpnetresource : *const NETRESOURCEW, lppassword : ::windows_sys::core::PCWSTR, lpusername : ::windows_sys::core::PCWSTR, dwflags : NET_USE_CONNECT_FLAGS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntlanman.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NPAddConnection4(hwndowner : super::super::Foundation:: HWND, lpnetresource : *const NETRESOURCEW, lpauthbuffer : *const ::core::ffi::c_void, cbauthbuffer : u32, dwflags : u32, lpuseoptions : *const u8, cbuseoptions : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("davclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NPCancelConnection(lpname : ::windows_sys::core::PCWSTR, fforce : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntlanman.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NPCancelConnection2(lpname : ::windows_sys::core::PCWSTR, fforce : super::super::Foundation:: BOOL, dwflags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("davclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NPCloseEnum(henum : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("davclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NPEnumResource(henum : super::super::Foundation:: HANDLE, lpccount : *mut u32, lpbuffer : *mut ::core::ffi::c_void, lpbuffersize : *mut u32) -> u32); +::windows_targets::link!("davclnt.dll" "system" fn NPFormatNetworkName(lpremotename : ::windows_sys::core::PCWSTR, lpformattedname : ::windows_sys::core::PWSTR, lpnlength : *mut u32, dwflags : NETWORK_NAME_FORMAT_FLAGS, dwavecharperline : u32) -> u32); +::windows_targets::link!("davclnt.dll" "system" fn NPGetCaps(ndex : u32) -> u32); +::windows_targets::link!("davclnt.dll" "system" fn NPGetConnection(lplocalname : ::windows_sys::core::PCWSTR, lpremotename : ::windows_sys::core::PWSTR, lpnbufferlen : *mut u32) -> u32); +::windows_targets::link!("ntlanman.dll" "system" fn NPGetConnection3(lplocalname : ::windows_sys::core::PCWSTR, dwlevel : u32, lpbuffer : *mut ::core::ffi::c_void, lpbuffersize : *mut u32) -> u32); +::windows_targets::link!("ntlanman.dll" "system" fn NPGetConnectionPerformance(lpremotename : ::windows_sys::core::PCWSTR, lpnetconnectinfo : *mut NETCONNECTINFOSTRUCT) -> u32); +::windows_targets::link!("ntlanman.dll" "system" fn NPGetPersistentUseOptionsForConnection(lpremotepath : ::windows_sys::core::PCWSTR, lpreaduseoptions : *const u8, cbreaduseoptions : u32, lpwriteuseoptions : *mut u8, lpsizewriteuseoptions : *mut u32) -> u32); +::windows_targets::link!("davclnt.dll" "system" fn NPGetResourceInformation(lpnetresource : *const NETRESOURCEW, lpbuffer : *mut ::core::ffi::c_void, lpbuffersize : *mut u32, lplpsystem : *mut ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("davclnt.dll" "system" fn NPGetResourceParent(lpnetresource : *const NETRESOURCEW, lpbuffer : *mut ::core::ffi::c_void, lpbuffersize : *mut u32) -> u32); +::windows_targets::link!("davclnt.dll" "system" fn NPGetUniversalName(lplocalpath : ::windows_sys::core::PCWSTR, dwinfolevel : UNC_INFO_LEVEL, lpbuffer : *mut ::core::ffi::c_void, lpbuffersize : *mut u32) -> u32); +::windows_targets::link!("davclnt.dll" "system" fn NPGetUser(lpname : ::windows_sys::core::PCWSTR, lpusername : ::windows_sys::core::PWSTR, lpnbufferlen : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("davclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NPOpenEnum(dwscope : u32, dwtype : u32, dwusage : u32, lpnetresource : *const NETRESOURCEW, lphenum : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetAddConnection2A(lpnetresource : *const NETRESOURCEA, lppassword : ::windows_sys::core::PCSTR, lpusername : ::windows_sys::core::PCSTR, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetAddConnection2W(lpnetresource : *const NETRESOURCEW, lppassword : ::windows_sys::core::PCWSTR, lpusername : ::windows_sys::core::PCWSTR, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetAddConnection3A(hwndowner : super::super::Foundation:: HWND, lpnetresource : *const NETRESOURCEA, lppassword : ::windows_sys::core::PCSTR, lpusername : ::windows_sys::core::PCSTR, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetAddConnection3W(hwndowner : super::super::Foundation:: HWND, lpnetresource : *const NETRESOURCEW, lppassword : ::windows_sys::core::PCWSTR, lpusername : ::windows_sys::core::PCWSTR, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetAddConnection4A(hwndowner : super::super::Foundation:: HWND, lpnetresource : *const NETRESOURCEA, pauthbuffer : *const ::core::ffi::c_void, cbauthbuffer : u32, dwflags : u32, lpuseoptions : *const u8, cbuseoptions : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetAddConnection4W(hwndowner : super::super::Foundation:: HWND, lpnetresource : *const NETRESOURCEW, pauthbuffer : *const ::core::ffi::c_void, cbauthbuffer : u32, dwflags : u32, lpuseoptions : *const u8, cbuseoptions : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetAddConnectionA(lpremotename : ::windows_sys::core::PCSTR, lppassword : ::windows_sys::core::PCSTR, lplocalname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetAddConnectionW(lpremotename : ::windows_sys::core::PCWSTR, lppassword : ::windows_sys::core::PCWSTR, lplocalname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetCancelConnection2A(lpname : ::windows_sys::core::PCSTR, dwflags : u32, fforce : super::super::Foundation:: BOOL) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetCancelConnection2W(lpname : ::windows_sys::core::PCWSTR, dwflags : u32, fforce : super::super::Foundation:: BOOL) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetCancelConnectionA(lpname : ::windows_sys::core::PCSTR, fforce : super::super::Foundation:: BOOL) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetCancelConnectionW(lpname : ::windows_sys::core::PCWSTR, fforce : super::super::Foundation:: BOOL) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetCloseEnum(henum : super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetConnectionDialog(hwnd : super::super::Foundation:: HWND, dwtype : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetConnectionDialog1A(lpconndlgstruct : *mut CONNECTDLGSTRUCTA) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetConnectionDialog1W(lpconndlgstruct : *mut CONNECTDLGSTRUCTW) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetDisconnectDialog(hwnd : super::super::Foundation:: HWND, dwtype : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetDisconnectDialog1A(lpconndlgstruct : *const DISCDLGSTRUCTA) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetDisconnectDialog1W(lpconndlgstruct : *const DISCDLGSTRUCTW) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetEnumResourceA(henum : super::super::Foundation:: HANDLE, lpccount : *mut u32, lpbuffer : *mut ::core::ffi::c_void, lpbuffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetEnumResourceW(henum : super::super::Foundation:: HANDLE, lpccount : *mut u32, lpbuffer : *mut ::core::ffi::c_void, lpbuffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetConnectionA(lplocalname : ::windows_sys::core::PCSTR, lpremotename : ::windows_sys::core::PSTR, lpnlength : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetConnectionW(lplocalname : ::windows_sys::core::PCWSTR, lpremotename : ::windows_sys::core::PWSTR, lpnlength : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetLastErrorA(lperror : *mut u32, lperrorbuf : ::windows_sys::core::PSTR, nerrorbufsize : u32, lpnamebuf : ::windows_sys::core::PSTR, nnamebufsize : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetLastErrorW(lperror : *mut u32, lperrorbuf : ::windows_sys::core::PWSTR, nerrorbufsize : u32, lpnamebuf : ::windows_sys::core::PWSTR, nnamebufsize : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetNetworkInformationA(lpprovider : ::windows_sys::core::PCSTR, lpnetinfostruct : *mut NETINFOSTRUCT) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetNetworkInformationW(lpprovider : ::windows_sys::core::PCWSTR, lpnetinfostruct : *mut NETINFOSTRUCT) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetProviderNameA(dwnettype : u32, lpprovidername : ::windows_sys::core::PSTR, lpbuffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetProviderNameW(dwnettype : u32, lpprovidername : ::windows_sys::core::PWSTR, lpbuffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetResourceInformationA(lpnetresource : *const NETRESOURCEA, lpbuffer : *mut ::core::ffi::c_void, lpcbbuffer : *mut u32, lplpsystem : *mut ::windows_sys::core::PSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetResourceInformationW(lpnetresource : *const NETRESOURCEW, lpbuffer : *mut ::core::ffi::c_void, lpcbbuffer : *mut u32, lplpsystem : *mut ::windows_sys::core::PWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetResourceParentA(lpnetresource : *const NETRESOURCEA, lpbuffer : *mut ::core::ffi::c_void, lpcbbuffer : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetResourceParentW(lpnetresource : *const NETRESOURCEW, lpbuffer : *mut ::core::ffi::c_void, lpcbbuffer : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetUniversalNameA(lplocalpath : ::windows_sys::core::PCSTR, dwinfolevel : UNC_INFO_LEVEL, lpbuffer : *mut ::core::ffi::c_void, lpbuffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetUniversalNameW(lplocalpath : ::windows_sys::core::PCWSTR, dwinfolevel : UNC_INFO_LEVEL, lpbuffer : *mut ::core::ffi::c_void, lpbuffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetUserA(lpname : ::windows_sys::core::PCSTR, lpusername : ::windows_sys::core::PSTR, lpnlength : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetGetUserW(lpname : ::windows_sys::core::PCWSTR, lpusername : ::windows_sys::core::PWSTR, lpnlength : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetOpenEnumA(dwscope : NET_RESOURCE_SCOPE, dwtype : NET_RESOURCE_TYPE, dwusage : WNET_OPEN_ENUM_USAGE, lpnetresource : *const NETRESOURCEA, lphenum : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetOpenEnumW(dwscope : NET_RESOURCE_SCOPE, dwtype : NET_RESOURCE_TYPE, dwusage : WNET_OPEN_ENUM_USAGE, lpnetresource : *const NETRESOURCEW, lphenum : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("mpr.dll" "system" fn WNetSetLastErrorA(err : u32, lperror : ::windows_sys::core::PCSTR, lpproviders : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("mpr.dll" "system" fn WNetSetLastErrorW(err : u32, lperror : ::windows_sys::core::PCWSTR, lpproviders : ::windows_sys::core::PCWSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetUseConnection4A(hwndowner : super::super::Foundation:: HWND, lpnetresource : *const NETRESOURCEA, pauthbuffer : *const ::core::ffi::c_void, cbauthbuffer : u32, dwflags : u32, lpuseoptions : *const u8, cbuseoptions : u32, lpaccessname : ::windows_sys::core::PSTR, lpbuffersize : *mut u32, lpresult : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetUseConnection4W(hwndowner : super::super::Foundation:: HWND, lpnetresource : *const NETRESOURCEW, pauthbuffer : *const ::core::ffi::c_void, cbauthbuffer : u32, dwflags : u32, lpuseoptions : *const u8, cbuseoptions : u32, lpaccessname : ::windows_sys::core::PWSTR, lpbuffersize : *mut u32, lpresult : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetUseConnectionA(hwndowner : super::super::Foundation:: HWND, lpnetresource : *const NETRESOURCEA, lppassword : ::windows_sys::core::PCSTR, lpuserid : ::windows_sys::core::PCSTR, dwflags : NET_USE_CONNECT_FLAGS, lpaccessname : ::windows_sys::core::PSTR, lpbuffersize : *mut u32, lpresult : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mpr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WNetUseConnectionW(hwndowner : super::super::Foundation:: HWND, lpnetresource : *const NETRESOURCEW, lppassword : ::windows_sys::core::PCWSTR, lpuserid : ::windows_sys::core::PCWSTR, dwflags : NET_USE_CONNECT_FLAGS, lpaccessname : ::windows_sys::core::PWSTR, lpbuffersize : *mut u32, lpresult : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +pub const CONNDLG_CONN_POINT: CONNECTDLGSTRUCT_FLAGS = 2u32; +pub const CONNDLG_HIDE_BOX: CONNECTDLGSTRUCT_FLAGS = 8u32; +pub const CONNDLG_NOT_PERSIST: CONNECTDLGSTRUCT_FLAGS = 32u32; +pub const CONNDLG_PERSIST: CONNECTDLGSTRUCT_FLAGS = 16u32; +pub const CONNDLG_RO_PATH: CONNECTDLGSTRUCT_FLAGS = 1u32; +pub const CONNDLG_USE_MRU: CONNECTDLGSTRUCT_FLAGS = 4u32; +pub const CONNECT_CMD_SAVECRED: NET_USE_CONNECT_FLAGS = 4096u32; +pub const CONNECT_COMMANDLINE: NET_USE_CONNECT_FLAGS = 2048u32; +pub const CONNECT_CRED_RESET: u32 = 8192u32; +pub const CONNECT_CURRENT_MEDIA: u32 = 512u32; +pub const CONNECT_DEFERRED: NET_USE_CONNECT_FLAGS = 1024u32; +pub const CONNECT_GLOBAL_MAPPING: u32 = 262144u32; +pub const CONNECT_INTERACTIVE: NET_USE_CONNECT_FLAGS = 8u32; +pub const CONNECT_LOCALDRIVE: u32 = 256u32; +pub const CONNECT_NEED_DRIVE: u32 = 32u32; +pub const CONNECT_PROMPT: NET_USE_CONNECT_FLAGS = 16u32; +pub const CONNECT_REDIRECT: NET_USE_CONNECT_FLAGS = 128u32; +pub const CONNECT_REFCOUNT: u32 = 64u32; +pub const CONNECT_REQUIRE_INTEGRITY: u32 = 16384u32; +pub const CONNECT_REQUIRE_PRIVACY: u32 = 32768u32; +pub const CONNECT_RESERVED: u32 = 4278190080u32; +pub const CONNECT_TEMPORARY: NET_USE_CONNECT_FLAGS = 4u32; +pub const CONNECT_UPDATE_PROFILE: NET_USE_CONNECT_FLAGS = 1u32; +pub const CONNECT_UPDATE_RECENT: NET_USE_CONNECT_FLAGS = 2u32; +pub const CONNECT_WRITE_THROUGH_SEMANTICS: u32 = 65536u32; +pub const DISC_NO_FORCE: DISCDLGSTRUCT_FLAGS = 64u32; +pub const DISC_UPDATE_PROFILE: DISCDLGSTRUCT_FLAGS = 1u32; +pub const NETINFO_DISKRED: NETINFOSTRUCT_CHARACTERISTICS = 4u32; +pub const NETINFO_DLL16: NETINFOSTRUCT_CHARACTERISTICS = 1u32; +pub const NETINFO_PRINTERRED: NETINFOSTRUCT_CHARACTERISTICS = 8u32; +pub const NETPROPERTY_PERSISTENT: u32 = 1u32; +pub const NOTIFY_POST: u32 = 2u32; +pub const NOTIFY_PRE: u32 = 1u32; +pub const REMOTE_NAME_INFO_LEVEL: UNC_INFO_LEVEL = 2u32; +pub const RESOURCEDISPLAYTYPE_DIRECTORY: u32 = 9u32; +pub const RESOURCEDISPLAYTYPE_NDSCONTAINER: u32 = 11u32; +pub const RESOURCEDISPLAYTYPE_NETWORK: u32 = 6u32; +pub const RESOURCEDISPLAYTYPE_ROOT: u32 = 7u32; +pub const RESOURCEDISPLAYTYPE_SHAREADMIN: u32 = 8u32; +pub const RESOURCETYPE_ANY: NET_RESOURCE_TYPE = 0u32; +pub const RESOURCETYPE_DISK: NET_RESOURCE_TYPE = 1u32; +pub const RESOURCETYPE_PRINT: NET_RESOURCE_TYPE = 2u32; +pub const RESOURCETYPE_RESERVED: u32 = 8u32; +pub const RESOURCETYPE_UNKNOWN: u32 = 4294967295u32; +pub const RESOURCEUSAGE_ALL: WNET_OPEN_ENUM_USAGE = 19u32; +pub const RESOURCEUSAGE_ATTACHED: WNET_OPEN_ENUM_USAGE = 16u32; +pub const RESOURCEUSAGE_CONNECTABLE: WNET_OPEN_ENUM_USAGE = 1u32; +pub const RESOURCEUSAGE_CONTAINER: WNET_OPEN_ENUM_USAGE = 2u32; +pub const RESOURCEUSAGE_NOLOCALDEVICE: u32 = 4u32; +pub const RESOURCEUSAGE_NONE: WNET_OPEN_ENUM_USAGE = 0u32; +pub const RESOURCEUSAGE_RESERVED: u32 = 2147483648u32; +pub const RESOURCEUSAGE_SIBLING: u32 = 8u32; +pub const RESOURCE_CONNECTED: NET_RESOURCE_SCOPE = 1u32; +pub const RESOURCE_CONTEXT: NET_RESOURCE_SCOPE = 5u32; +pub const RESOURCE_GLOBALNET: NET_RESOURCE_SCOPE = 2u32; +pub const RESOURCE_RECENT: u32 = 4u32; +pub const RESOURCE_REMEMBERED: NET_RESOURCE_SCOPE = 3u32; +pub const UNIVERSAL_NAME_INFO_LEVEL: UNC_INFO_LEVEL = 1u32; +pub const WNCON_DYNAMIC: u32 = 8u32; +pub const WNCON_FORNETCARD: u32 = 1u32; +pub const WNCON_NOTROUTED: u32 = 2u32; +pub const WNCON_SLOWLINK: u32 = 4u32; +pub const WNDN_MKDIR: NPDIRECTORY_NOTIFY_OPERATION = 1u32; +pub const WNDN_MVDIR: NPDIRECTORY_NOTIFY_OPERATION = 3u32; +pub const WNDN_RMDIR: NPDIRECTORY_NOTIFY_OPERATION = 2u32; +pub const WNDT_NETWORK: u32 = 1u32; +pub const WNDT_NORMAL: u32 = 0u32; +pub const WNFMT_ABBREVIATED: NETWORK_NAME_FORMAT_FLAGS = 2u32; +pub const WNFMT_CONNECTION: u32 = 32u32; +pub const WNFMT_INENUM: u32 = 16u32; +pub const WNFMT_MULTILINE: NETWORK_NAME_FORMAT_FLAGS = 1u32; +pub const WNGETCON_CONNECTED: u32 = 0u32; +pub const WNGETCON_DISCONNECTED: u32 = 1u32; +pub const WNNC_ADMIN: u32 = 9u32; +pub const WNNC_ADM_DIRECTORYNOTIFY: u32 = 2u32; +pub const WNNC_ADM_GETDIRECTORYTYPE: u32 = 1u32; +pub const WNNC_CONNECTION: u32 = 6u32; +pub const WNNC_CONNECTION_FLAGS: u32 = 13u32; +pub const WNNC_CON_ADDCONNECTION: u32 = 1u32; +pub const WNNC_CON_ADDCONNECTION3: u32 = 8u32; +pub const WNNC_CON_ADDCONNECTION4: u32 = 16u32; +pub const WNNC_CON_CANCELCONNECTION: u32 = 2u32; +pub const WNNC_CON_CANCELCONNECTION2: u32 = 32u32; +pub const WNNC_CON_DEFER: u32 = 128u32; +pub const WNNC_CON_GETCONNECTIONS: u32 = 4u32; +pub const WNNC_CON_GETPERFORMANCE: u32 = 64u32; +pub const WNNC_DIALOG: u32 = 8u32; +pub const WNNC_DLG_DEVICEMODE: u32 = 1u32; +pub const WNNC_DLG_FORMATNETWORKNAME: u32 = 128u32; +pub const WNNC_DLG_GETRESOURCEINFORMATION: u32 = 2048u32; +pub const WNNC_DLG_GETRESOURCEPARENT: u32 = 512u32; +pub const WNNC_DLG_PERMISSIONEDITOR: u32 = 256u32; +pub const WNNC_DLG_PROPERTYDIALOG: u32 = 32u32; +pub const WNNC_DLG_SEARCHDIALOG: u32 = 64u32; +pub const WNNC_DRIVER_VERSION: u32 = 3u32; +pub const WNNC_ENUMERATION: u32 = 11u32; +pub const WNNC_ENUM_CONTEXT: u32 = 4u32; +pub const WNNC_ENUM_GLOBAL: u32 = 1u32; +pub const WNNC_ENUM_LOCAL: u32 = 2u32; +pub const WNNC_ENUM_SHAREABLE: u32 = 8u32; +pub const WNNC_NET_NONE: u32 = 0u32; +pub const WNNC_NET_TYPE: u32 = 2u32; +pub const WNNC_SPEC_VERSION: u32 = 1u32; +pub const WNNC_SPEC_VERSION51: u32 = 327681u32; +pub const WNNC_START: u32 = 12u32; +pub const WNNC_USER: u32 = 4u32; +pub const WNNC_USR_GETUSER: u32 = 1u32; +pub const WNNC_WAIT_FOR_START: u32 = 1u32; +pub const WNPERMC_AUDIT: u32 = 2u32; +pub const WNPERMC_OWNER: u32 = 4u32; +pub const WNPERMC_PERM: u32 = 1u32; +pub const WNPERM_DLG_AUDIT: WNPERM_DLG = 1u32; +pub const WNPERM_DLG_OWNER: WNPERM_DLG = 2u32; +pub const WNPERM_DLG_PERM: WNPERM_DLG = 0u32; +pub const WNPS_DIR: NP_PROPERTY_DIALOG_SELECTION = 1u32; +pub const WNPS_FILE: NP_PROPERTY_DIALOG_SELECTION = 0u32; +pub const WNPS_MULT: NP_PROPERTY_DIALOG_SELECTION = 2u32; +pub const WNSRCH_REFRESH_FIRST_LEVEL: u32 = 1u32; +pub const WNTYPE_COMM: u32 = 4u32; +pub const WNTYPE_DRIVE: u32 = 1u32; +pub const WNTYPE_FILE: u32 = 2u32; +pub const WNTYPE_PRINTER: u32 = 3u32; +pub const WN_CREDENTIAL_CLASS: u32 = 2u32; +pub const WN_NETWORK_CLASS: u32 = 1u32; +pub const WN_NT_PASSWORD_CHANGED: u32 = 2u32; +pub const WN_PRIMARY_AUTHENT_CLASS: u32 = 4u32; +pub const WN_SERVICE_CLASS: u32 = 8u32; +pub const WN_VALID_LOGON_ACCOUNT: u32 = 1u32; +pub type CONNECTDLGSTRUCT_FLAGS = u32; +pub type DISCDLGSTRUCT_FLAGS = u32; +pub type NETINFOSTRUCT_CHARACTERISTICS = u32; +pub type NETWORK_NAME_FORMAT_FLAGS = u32; +pub type NET_RESOURCE_SCOPE = u32; +pub type NET_RESOURCE_TYPE = u32; +pub type NET_USE_CONNECT_FLAGS = u32; +pub type NPDIRECTORY_NOTIFY_OPERATION = u32; +pub type NP_PROPERTY_DIALOG_SELECTION = u32; +pub type UNC_INFO_LEVEL = u32; +pub type WNET_OPEN_ENUM_USAGE = u32; +pub type WNPERM_DLG = u32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CONNECTDLGSTRUCTA { + pub cbStructure: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub lpConnRes: *mut NETRESOURCEA, + pub dwFlags: CONNECTDLGSTRUCT_FLAGS, + pub dwDevNum: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CONNECTDLGSTRUCTA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CONNECTDLGSTRUCTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CONNECTDLGSTRUCTW { + pub cbStructure: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub lpConnRes: *mut NETRESOURCEW, + pub dwFlags: CONNECTDLGSTRUCT_FLAGS, + pub dwDevNum: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CONNECTDLGSTRUCTW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CONNECTDLGSTRUCTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISCDLGSTRUCTA { + pub cbStructure: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub lpLocalName: ::windows_sys::core::PSTR, + pub lpRemoteName: ::windows_sys::core::PSTR, + pub dwFlags: DISCDLGSTRUCT_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISCDLGSTRUCTA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISCDLGSTRUCTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISCDLGSTRUCTW { + pub cbStructure: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub lpLocalName: ::windows_sys::core::PWSTR, + pub lpRemoteName: ::windows_sys::core::PWSTR, + pub dwFlags: DISCDLGSTRUCT_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISCDLGSTRUCTW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISCDLGSTRUCTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETCONNECTINFOSTRUCT { + pub cbStructure: u32, + pub dwFlags: u32, + pub dwSpeed: u32, + pub dwDelay: u32, + pub dwOptDataSize: u32, +} +impl ::core::marker::Copy for NETCONNECTINFOSTRUCT {} +impl ::core::clone::Clone for NETCONNECTINFOSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NETINFOSTRUCT { + pub cbStructure: u32, + pub dwProviderVersion: u32, + pub dwStatus: super::super::Foundation::WIN32_ERROR, + pub dwCharacteristics: NETINFOSTRUCT_CHARACTERISTICS, + pub dwHandle: usize, + pub wNetType: u16, + pub dwPrinters: u32, + pub dwDrives: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NETINFOSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NETINFOSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETRESOURCEA { + pub dwScope: NET_RESOURCE_SCOPE, + pub dwType: NET_RESOURCE_TYPE, + pub dwDisplayType: u32, + pub dwUsage: u32, + pub lpLocalName: ::windows_sys::core::PSTR, + pub lpRemoteName: ::windows_sys::core::PSTR, + pub lpComment: ::windows_sys::core::PSTR, + pub lpProvider: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for NETRESOURCEA {} +impl ::core::clone::Clone for NETRESOURCEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETRESOURCEW { + pub dwScope: NET_RESOURCE_SCOPE, + pub dwType: NET_RESOURCE_TYPE, + pub dwDisplayType: u32, + pub dwUsage: u32, + pub lpLocalName: ::windows_sys::core::PWSTR, + pub lpRemoteName: ::windows_sys::core::PWSTR, + pub lpComment: ::windows_sys::core::PWSTR, + pub lpProvider: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for NETRESOURCEW {} +impl ::core::clone::Clone for NETRESOURCEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NOTIFYADD { + pub hwndOwner: super::super::Foundation::HWND, + pub NetResource: NETRESOURCEA, + pub dwAddFlags: NET_USE_CONNECT_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NOTIFYADD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NOTIFYADD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NOTIFYCANCEL { + pub lpName: ::windows_sys::core::PWSTR, + pub lpProvider: ::windows_sys::core::PWSTR, + pub dwFlags: u32, + pub fForce: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NOTIFYCANCEL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NOTIFYCANCEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NOTIFYINFO { + pub dwNotifyStatus: u32, + pub dwOperationStatus: u32, + pub lpContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NOTIFYINFO {} +impl ::core::clone::Clone for NOTIFYINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REMOTE_NAME_INFOA { + pub lpUniversalName: ::windows_sys::core::PSTR, + pub lpConnectionName: ::windows_sys::core::PSTR, + pub lpRemainingPath: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for REMOTE_NAME_INFOA {} +impl ::core::clone::Clone for REMOTE_NAME_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REMOTE_NAME_INFOW { + pub lpUniversalName: ::windows_sys::core::PWSTR, + pub lpConnectionName: ::windows_sys::core::PWSTR, + pub lpRemainingPath: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for REMOTE_NAME_INFOW {} +impl ::core::clone::Clone for REMOTE_NAME_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UNIVERSAL_NAME_INFOA { + pub lpUniversalName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for UNIVERSAL_NAME_INFOA {} +impl ::core::clone::Clone for UNIVERSAL_NAME_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UNIVERSAL_NAME_INFOW { + pub lpUniversalName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for UNIVERSAL_NAME_INFOW {} +impl ::core::clone::Clone for UNIVERSAL_NAME_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_AddConnectNotify = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_CancelConnectNotify = ::core::option::Option u32>; +pub type PF_NPAddConnection = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPAddConnection3 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPAddConnection4 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPCancelConnection = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPCancelConnection2 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPCloseEnum = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPDeviceMode = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPDirectoryNotify = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPEnumResource = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPFMXEditPerm = ::core::option::Option u32>; +pub type PF_NPFMXGetPermCaps = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPFMXGetPermHelp = ::core::option::Option u32>; +pub type PF_NPFormatNetworkName = ::core::option::Option u32>; +pub type PF_NPGetCaps = ::core::option::Option u32>; +pub type PF_NPGetConnection = ::core::option::Option u32>; +pub type PF_NPGetConnection3 = ::core::option::Option u32>; +pub type PF_NPGetConnectionPerformance = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPGetDirectoryType = ::core::option::Option u32>; +pub type PF_NPGetPersistentUseOptionsForConnection = ::core::option::Option u32>; +pub type PF_NPGetPropertyText = ::core::option::Option u32>; +pub type PF_NPGetResourceInformation = ::core::option::Option u32>; +pub type PF_NPGetResourceParent = ::core::option::Option u32>; +pub type PF_NPGetUniversalName = ::core::option::Option u32>; +pub type PF_NPGetUser = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPLogonNotify = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPOpenEnum = ::core::option::Option u32>; +pub type PF_NPPasswordChangeNotify = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPPropertyDialog = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PF_NPSearchDialog = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WebDav/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WebDav/mod.rs new file mode 100644 index 000000000..d2b9ad7b2 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WebDav/mod.rs @@ -0,0 +1,74 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DavAddConnection(connectionhandle : *mut super::super::Foundation:: HANDLE, remotename : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, password : ::windows_sys::core::PCWSTR, clientcert : *const u8, certsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("davclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DavCancelConnectionsToServer(lpname : ::windows_sys::core::PCWSTR, fforce : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DavDeleteConnection(connectionhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DavFlushFile(hfile : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DavGetExtendedError(hfile : super::super::Foundation:: HANDLE, exterror : *mut u32, exterrorstring : ::windows_sys::core::PWSTR, cchsize : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn DavGetHTTPFromUNCPath(uncpath : ::windows_sys::core::PCWSTR, url : ::windows_sys::core::PWSTR, lpsize : *mut u32) -> u32); +::windows_targets::link!("davclnt.dll" "system" fn DavGetTheLockOwnerOfTheFile(filename : ::windows_sys::core::PCWSTR, lockownername : ::windows_sys::core::PWSTR, lockownernamelengthinbytes : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn DavGetUNCFromHTTPPath(url : ::windows_sys::core::PCWSTR, uncpath : ::windows_sys::core::PWSTR, lpsize : *mut u32) -> u32); +::windows_targets::link!("davclnt.dll" "system" fn DavInvalidateCache(urlname : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("davclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DavRegisterAuthCallback(callback : PFNDAVAUTHCALLBACK, version : u32) -> u32); +::windows_targets::link!("davclnt.dll" "system" fn DavUnregisterAuthCallback(hcallback : u32) -> ()); +pub const CancelRequest: AUTHNEXTSTEP = 2i32; +pub const DAV_AUTHN_SCHEME_BASIC: u32 = 1u32; +pub const DAV_AUTHN_SCHEME_CERT: u32 = 65536u32; +pub const DAV_AUTHN_SCHEME_DIGEST: u32 = 8u32; +pub const DAV_AUTHN_SCHEME_FBA: u32 = 1048576u32; +pub const DAV_AUTHN_SCHEME_NEGOTIATE: u32 = 16u32; +pub const DAV_AUTHN_SCHEME_NTLM: u32 = 2u32; +pub const DAV_AUTHN_SCHEME_PASSPORT: u32 = 4u32; +pub const DefaultBehavior: AUTHNEXTSTEP = 0i32; +pub const RetryRequest: AUTHNEXTSTEP = 1i32; +pub type AUTHNEXTSTEP = i32; +#[repr(C)] +pub struct DAV_CALLBACK_AUTH_BLOB { + pub pBuffer: *mut ::core::ffi::c_void, + pub ulSize: u32, + pub ulType: u32, +} +impl ::core::marker::Copy for DAV_CALLBACK_AUTH_BLOB {} +impl ::core::clone::Clone for DAV_CALLBACK_AUTH_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DAV_CALLBACK_AUTH_UNP { + pub pszUserName: ::windows_sys::core::PWSTR, + pub ulUserNameLength: u32, + pub pszPassword: ::windows_sys::core::PWSTR, + pub ulPasswordLength: u32, +} +impl ::core::marker::Copy for DAV_CALLBACK_AUTH_UNP {} +impl ::core::clone::Clone for DAV_CALLBACK_AUTH_UNP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DAV_CALLBACK_CRED { + pub AuthBlob: DAV_CALLBACK_AUTH_BLOB, + pub UNPBlob: DAV_CALLBACK_AUTH_UNP, + pub bAuthBlobValid: super::super::Foundation::BOOL, + pub bSave: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DAV_CALLBACK_CRED {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DAV_CALLBACK_CRED { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNDAVAUTHCALLBACK = ::core::option::Option u32>; +pub type PFNDAVAUTHCALLBACK_FREECRED = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WiFi/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WiFi/mod.rs new file mode 100644 index 000000000..2031c081e --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WiFi/mod.rs @@ -0,0 +1,6327 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WFDCancelOpenSession(hsessionhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WFDCloseHandle(hclienthandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WFDCloseSession(hsessionhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WFDOpenHandle(dwclientversion : u32, pdwnegotiatedversion : *mut u32, phclienthandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WFDOpenLegacySession(hclienthandle : super::super::Foundation:: HANDLE, plegacymacaddress : *const *const u8, phsessionhandle : *mut super::super::Foundation:: HANDLE, pguidsessioninterface : *mut ::windows_sys::core::GUID) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WFDStartOpenSession(hclienthandle : super::super::Foundation:: HANDLE, pdeviceaddress : *const *const u8, pvcontext : *const ::core::ffi::c_void, pfncallback : WFD_OPEN_SESSION_COMPLETE_CALLBACK, phsessionhandle : *mut super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("wlanapi.dll" "system" fn WFDUpdateDeviceVisibility(pdeviceaddress : *const *const u8) -> u32); +::windows_targets::link!("wlanapi.dll" "system" fn WlanAllocateMemory(dwmemorysize : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanCloseHandle(hclienthandle : super::super::Foundation:: HANDLE, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn WlanConnect(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, pconnectionparameters : *const WLAN_CONNECTION_PARAMETERS, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] fn WlanConnect2(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, pconnectionparameters : *const WLAN_CONNECTION_PARAMETERS_V2, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanDeleteProfile(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, strprofilename : ::windows_sys::core::PCWSTR, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanDeviceServiceCommand(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, pdeviceserviceguid : *const ::windows_sys::core::GUID, dwopcode : u32, dwinbuffersize : u32, pinbuffer : *const ::core::ffi::c_void, dwoutbuffersize : u32, poutbuffer : *mut ::core::ffi::c_void, pdwbytesreturned : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanDisconnect(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanEnumInterfaces(hclienthandle : super::super::Foundation:: HANDLE, preserved : *const ::core::ffi::c_void, ppinterfacelist : *mut *mut WLAN_INTERFACE_INFO_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanExtractPsdIEDataList(hclienthandle : super::super::Foundation:: HANDLE, dwiedatasize : u32, prawiedata : *const u8, strformat : ::windows_sys::core::PCWSTR, preserved : *const ::core::ffi::c_void, pppsdiedatalist : *mut *mut WLAN_RAW_DATA_LIST) -> u32); +::windows_targets::link!("wlanapi.dll" "system" fn WlanFreeMemory(pmemory : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanGetAvailableNetworkList(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, dwflags : u32, preserved : *const ::core::ffi::c_void, ppavailablenetworklist : *mut *mut WLAN_AVAILABLE_NETWORK_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanGetAvailableNetworkList2(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, dwflags : u32, preserved : *const ::core::ffi::c_void, ppavailablenetworklist : *mut *mut WLAN_AVAILABLE_NETWORK_LIST_V2) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanGetFilterList(hclienthandle : super::super::Foundation:: HANDLE, wlanfilterlisttype : WLAN_FILTER_LIST_TYPE, preserved : *const ::core::ffi::c_void, ppnetworklist : *mut *mut DOT11_NETWORK_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanGetInterfaceCapability(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, preserved : *const ::core::ffi::c_void, ppcapability : *mut *mut WLAN_INTERFACE_CAPABILITY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanGetNetworkBssList(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, pdot11ssid : *const DOT11_SSID, dot11bsstype : DOT11_BSS_TYPE, bsecurityenabled : super::super::Foundation:: BOOL, preserved : *const ::core::ffi::c_void, ppwlanbsslist : *mut *mut WLAN_BSS_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanGetProfile(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, strprofilename : ::windows_sys::core::PCWSTR, preserved : *const ::core::ffi::c_void, pstrprofilexml : *mut ::windows_sys::core::PWSTR, pdwflags : *mut u32, pdwgrantedaccess : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanGetProfileCustomUserData(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, strprofilename : ::windows_sys::core::PCWSTR, preserved : *const ::core::ffi::c_void, pdwdatasize : *mut u32, ppdata : *mut *mut u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanGetProfileList(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, preserved : *const ::core::ffi::c_void, ppprofilelist : *mut *mut WLAN_PROFILE_INFO_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanGetSecuritySettings(hclienthandle : super::super::Foundation:: HANDLE, securableobject : WLAN_SECURABLE_OBJECT, pvaluetype : *mut WLAN_OPCODE_VALUE_TYPE, pstrcurrentsddl : *mut ::windows_sys::core::PWSTR, pdwgrantedaccess : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanGetSupportedDeviceServices(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, ppdevsvcguidlist : *mut *mut WLAN_DEVICE_SERVICE_GUID_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanHostedNetworkForceStart(hclienthandle : super::super::Foundation:: HANDLE, pfailreason : *mut WLAN_HOSTED_NETWORK_REASON, pvreserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanHostedNetworkForceStop(hclienthandle : super::super::Foundation:: HANDLE, pfailreason : *mut WLAN_HOSTED_NETWORK_REASON, pvreserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanHostedNetworkInitSettings(hclienthandle : super::super::Foundation:: HANDLE, pfailreason : *mut WLAN_HOSTED_NETWORK_REASON, pvreserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanHostedNetworkQueryProperty(hclienthandle : super::super::Foundation:: HANDLE, opcode : WLAN_HOSTED_NETWORK_OPCODE, pdwdatasize : *mut u32, ppvdata : *mut *mut ::core::ffi::c_void, pwlanopcodevaluetype : *mut WLAN_OPCODE_VALUE_TYPE, pvreserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanHostedNetworkQuerySecondaryKey(hclienthandle : super::super::Foundation:: HANDLE, pdwkeylength : *mut u32, ppuckeydata : *mut *mut u8, pbispassphrase : *mut super::super::Foundation:: BOOL, pbpersistent : *mut super::super::Foundation:: BOOL, pfailreason : *mut WLAN_HOSTED_NETWORK_REASON, pvreserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanHostedNetworkQueryStatus(hclienthandle : super::super::Foundation:: HANDLE, ppwlanhostednetworkstatus : *mut *mut WLAN_HOSTED_NETWORK_STATUS, pvreserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanHostedNetworkRefreshSecuritySettings(hclienthandle : super::super::Foundation:: HANDLE, pfailreason : *mut WLAN_HOSTED_NETWORK_REASON, pvreserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanHostedNetworkSetProperty(hclienthandle : super::super::Foundation:: HANDLE, opcode : WLAN_HOSTED_NETWORK_OPCODE, dwdatasize : u32, pvdata : *const ::core::ffi::c_void, pfailreason : *mut WLAN_HOSTED_NETWORK_REASON, pvreserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanHostedNetworkSetSecondaryKey(hclienthandle : super::super::Foundation:: HANDLE, dwkeylength : u32, puckeydata : *const u8, bispassphrase : super::super::Foundation:: BOOL, bpersistent : super::super::Foundation:: BOOL, pfailreason : *mut WLAN_HOSTED_NETWORK_REASON, pvreserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanHostedNetworkStartUsing(hclienthandle : super::super::Foundation:: HANDLE, pfailreason : *mut WLAN_HOSTED_NETWORK_REASON, pvreserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanHostedNetworkStopUsing(hclienthandle : super::super::Foundation:: HANDLE, pfailreason : *mut WLAN_HOSTED_NETWORK_REASON, pvreserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanIhvControl(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, r#type : WLAN_IHV_CONTROL_TYPE, dwinbuffersize : u32, pinbuffer : *const ::core::ffi::c_void, dwoutbuffersize : u32, poutbuffer : *mut ::core::ffi::c_void, pdwbytesreturned : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanOpenHandle(dwclientversion : u32, preserved : *const ::core::ffi::c_void, pdwnegotiatedversion : *mut u32, phclienthandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanQueryAutoConfigParameter(hclienthandle : super::super::Foundation:: HANDLE, opcode : WLAN_AUTOCONF_OPCODE, preserved : *const ::core::ffi::c_void, pdwdatasize : *mut u32, ppdata : *mut *mut ::core::ffi::c_void, pwlanopcodevaluetype : *mut WLAN_OPCODE_VALUE_TYPE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanQueryInterface(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, opcode : WLAN_INTF_OPCODE, preserved : *const ::core::ffi::c_void, pdwdatasize : *mut u32, ppdata : *mut *mut ::core::ffi::c_void, pwlanopcodevaluetype : *mut WLAN_OPCODE_VALUE_TYPE) -> u32); +::windows_targets::link!("wlanapi.dll" "system" fn WlanReasonCodeToString(dwreasoncode : u32, dwbuffersize : u32, pstringbuffer : ::windows_sys::core::PCWSTR, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanRegisterDeviceServiceNotification(hclienthandle : super::super::Foundation:: HANDLE, pdevsvcguidlist : *const WLAN_DEVICE_SERVICE_GUID_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanRegisterNotification(hclienthandle : super::super::Foundation:: HANDLE, dwnotifsource : WLAN_NOTIFICATION_SOURCES, bignoreduplicate : super::super::Foundation:: BOOL, funccallback : WLAN_NOTIFICATION_CALLBACK, pcallbackcontext : *const ::core::ffi::c_void, preserved : *const ::core::ffi::c_void, pdwprevnotifsource : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanRegisterVirtualStationNotification(hclienthandle : super::super::Foundation:: HANDLE, bregister : super::super::Foundation:: BOOL, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanRenameProfile(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, stroldprofilename : ::windows_sys::core::PCWSTR, strnewprofilename : ::windows_sys::core::PCWSTR, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanSaveTemporaryProfile(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, strprofilename : ::windows_sys::core::PCWSTR, stralluserprofilesecurity : ::windows_sys::core::PCWSTR, dwflags : u32, boverwrite : super::super::Foundation:: BOOL, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanScan(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, pdot11ssid : *const DOT11_SSID, piedata : *const WLAN_RAW_DATA, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanSetAutoConfigParameter(hclienthandle : super::super::Foundation:: HANDLE, opcode : WLAN_AUTOCONF_OPCODE, dwdatasize : u32, pdata : *const ::core::ffi::c_void, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanSetFilterList(hclienthandle : super::super::Foundation:: HANDLE, wlanfilterlisttype : WLAN_FILTER_LIST_TYPE, pnetworklist : *const DOT11_NETWORK_LIST, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanSetInterface(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, opcode : WLAN_INTF_OPCODE, dwdatasize : u32, pdata : *const ::core::ffi::c_void, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanSetProfile(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, dwflags : u32, strprofilexml : ::windows_sys::core::PCWSTR, stralluserprofilesecurity : ::windows_sys::core::PCWSTR, boverwrite : super::super::Foundation:: BOOL, preserved : *const ::core::ffi::c_void, pdwreasoncode : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanSetProfileCustomUserData(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, strprofilename : ::windows_sys::core::PCWSTR, dwdatasize : u32, pdata : *const u8, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] fn WlanSetProfileEapUserData(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, strprofilename : ::windows_sys::core::PCWSTR, eaptype : super::super::Security::ExtensibleAuthenticationProtocol:: EAP_METHOD_TYPE, dwflags : WLAN_SET_EAPHOST_FLAGS, dweapuserdatasize : u32, pbeapuserdata : *const u8, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanSetProfileEapXmlUserData(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, strprofilename : ::windows_sys::core::PCWSTR, dwflags : WLAN_SET_EAPHOST_FLAGS, streapxmluserdata : ::windows_sys::core::PCWSTR, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanSetProfileList(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, dwitems : u32, strprofilenames : *const ::windows_sys::core::PCWSTR, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanSetProfilePosition(hclienthandle : super::super::Foundation:: HANDLE, pinterfaceguid : *const ::windows_sys::core::GUID, strprofilename : ::windows_sys::core::PCWSTR, dwposition : u32, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanSetPsdIEDataList(hclienthandle : super::super::Foundation:: HANDLE, strformat : ::windows_sys::core::PCWSTR, ppsdiedatalist : *const WLAN_RAW_DATA_LIST, preserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanSetSecuritySettings(hclienthandle : super::super::Foundation:: HANDLE, securableobject : WLAN_SECURABLE_OBJECT, strmodifiedsddl : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wlanui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WlanUIEditProfile(dwclientversion : u32, wstrprofilename : ::windows_sys::core::PCWSTR, pinterfaceguid : *const ::windows_sys::core::GUID, hwnd : super::super::Foundation:: HWND, wlstartpage : WL_DISPLAY_PAGES, preserved : *const ::core::ffi::c_void, pwlanreasoncode : *mut u32) -> u32); +pub type IDot11AdHocInterface = *mut ::core::ffi::c_void; +pub type IDot11AdHocInterfaceNotificationSink = *mut ::core::ffi::c_void; +pub type IDot11AdHocManager = *mut ::core::ffi::c_void; +pub type IDot11AdHocManagerNotificationSink = *mut ::core::ffi::c_void; +pub type IDot11AdHocNetwork = *mut ::core::ffi::c_void; +pub type IDot11AdHocNetworkNotificationSink = *mut ::core::ffi::c_void; +pub type IDot11AdHocSecuritySettings = *mut ::core::ffi::c_void; +pub type IEnumDot11AdHocInterfaces = *mut ::core::ffi::c_void; +pub type IEnumDot11AdHocNetworks = *mut ::core::ffi::c_void; +pub type IEnumDot11AdHocSecuritySettings = *mut ::core::ffi::c_void; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_InfraCast_AccessPointBssid: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 19 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_InfraCast_ChallengeAep: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 21 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_InfraCast_DevnodeAep: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 23 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_InfraCast_HostName_ResolutionMode: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 25 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_InfraCast_PinSupported: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 29 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_InfraCast_RtspTcpConnectionParametersSupported: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 30 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_InfraCast_SinkHostName: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 20 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_InfraCast_SinkIpAddress: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 26 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_InfraCast_StreamSecuritySupported: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 18 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_InfraCast_Supported: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 17 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_ASPMSupport: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 8 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_ClockPowerManagementSupport: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 9 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_CurrentSpeedAndMode: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 2 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_DeviceIDMessagingCapable: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 4 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_ExtendedConfigAvailable: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 6 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_ExtendedPCIConfigOpRegionSupport: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 7 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_MSISupport: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 11 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_NativePciExpressControl: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 17 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_PCIExpressAERControl: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 15 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_PCIExpressCapabilityControl: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 16 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_PCIExpressNativeHotPlugControl: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 12 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_PCIExpressNativePMEControl: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 14 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_PCISegmentGroupsSupport: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 10 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_SHPCNativeHotPlugControl: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 13 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_SecondaryBusWidth: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 5 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_SecondaryInterface: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 1 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_SupportedSpeedsAndModes: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 3 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_PciRootBus_SystemMsiSupport: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xd817fc28_793e_4b9e_9970_469d8be63073), pid: 18 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirectServices_AdvertisementId: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x31b37743_7c5e_4005_93e6_e953f92b82e9), pid: 5 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirectServices_RequestServiceInformation: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x31b37743_7c5e_4005_93e6_e953f92b82e9), pid: 7 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirectServices_ServiceAddress: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x31b37743_7c5e_4005_93e6_e953f92b82e9), pid: 2 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirectServices_ServiceConfigMethods: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x31b37743_7c5e_4005_93e6_e953f92b82e9), pid: 6 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirectServices_ServiceInformation: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x31b37743_7c5e_4005_93e6_e953f92b82e9), pid: 4 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirectServices_ServiceName: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x31b37743_7c5e_4005_93e6_e953f92b82e9), pid: 3 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_DeviceAddress: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 1 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_DeviceAddressCopy: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 13 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_FoundWsbService: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 24 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_GroupId: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 4 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_InformationElements: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 12 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_InterfaceAddress: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 2 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_InterfaceGuid: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 3 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_IsConnected: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 5 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_IsDMGCapable: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 22 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_IsLegacyDevice: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 7 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_IsMiracastLCPSupported: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 9 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_IsRecentlyAssociated: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 14 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_IsVisible: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 6 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_LinkQuality: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 28 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_MiracastVersion: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 8 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_Miracast_SessionMgmtControlPort: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 31 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_NoMiracastAutoProject: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 16 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_RtspTcpConnectionParametersSupported: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 32 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_Service_Aeps: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 15 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_Services: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 10 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_SupportedChannelList: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 11 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFiDirect_TransientAssociation: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x1506935d_e3e7_450f_8637_82233ebe5f6e), pid: 27 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_WiFi_InterfaceGuid: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0xef1167eb_cbfc_4341_a568_a7c91a68982c), pid: 2 }; +pub const DISCOVERY_FILTER_BITMASK_ANY: u32 = 15u32; +pub const DISCOVERY_FILTER_BITMASK_DEVICE: u32 = 1u32; +pub const DISCOVERY_FILTER_BITMASK_GO: u32 = 2u32; +pub const DOT11EXT_PSK_MAX_LENGTH: u32 = 64u32; +pub const DOT11_ADDITIONAL_IE_REVISION_1: u32 = 1u32; +pub const DOT11_ADHOC_AUTH_ALGO_80211_OPEN: DOT11_ADHOC_AUTH_ALGORITHM = 1i32; +pub const DOT11_ADHOC_AUTH_ALGO_INVALID: DOT11_ADHOC_AUTH_ALGORITHM = -1i32; +pub const DOT11_ADHOC_AUTH_ALGO_RSNA_PSK: DOT11_ADHOC_AUTH_ALGORITHM = 7i32; +pub const DOT11_ADHOC_CIPHER_ALGO_CCMP: DOT11_ADHOC_CIPHER_ALGORITHM = 4i32; +pub const DOT11_ADHOC_CIPHER_ALGO_INVALID: DOT11_ADHOC_CIPHER_ALGORITHM = -1i32; +pub const DOT11_ADHOC_CIPHER_ALGO_NONE: DOT11_ADHOC_CIPHER_ALGORITHM = 0i32; +pub const DOT11_ADHOC_CIPHER_ALGO_WEP: DOT11_ADHOC_CIPHER_ALGORITHM = 257i32; +pub const DOT11_ADHOC_CONNECT_FAIL_DOMAIN_MISMATCH: DOT11_ADHOC_CONNECT_FAIL_REASON = 0i32; +pub const DOT11_ADHOC_CONNECT_FAIL_OTHER: DOT11_ADHOC_CONNECT_FAIL_REASON = 2i32; +pub const DOT11_ADHOC_CONNECT_FAIL_PASSPHRASE_MISMATCH: DOT11_ADHOC_CONNECT_FAIL_REASON = 1i32; +pub const DOT11_ADHOC_NETWORK_CONNECTION_STATUS_CONNECTED: DOT11_ADHOC_NETWORK_CONNECTION_STATUS = 13i32; +pub const DOT11_ADHOC_NETWORK_CONNECTION_STATUS_CONNECTING: DOT11_ADHOC_NETWORK_CONNECTION_STATUS = 12i32; +pub const DOT11_ADHOC_NETWORK_CONNECTION_STATUS_DISCONNECTED: DOT11_ADHOC_NETWORK_CONNECTION_STATUS = 11i32; +pub const DOT11_ADHOC_NETWORK_CONNECTION_STATUS_FORMED: DOT11_ADHOC_NETWORK_CONNECTION_STATUS = 14i32; +pub const DOT11_ADHOC_NETWORK_CONNECTION_STATUS_INVALID: DOT11_ADHOC_NETWORK_CONNECTION_STATUS = 0i32; +pub const DOT11_ANQP_QUERY_COMPLETE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_ASSOCIATION_COMPLETION_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_ASSOCIATION_COMPLETION_PARAMETERS_REVISION_2: u32 = 2u32; +pub const DOT11_ASSOCIATION_INFO_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_ASSOCIATION_PARAMS_REVISION_1: u32 = 1u32; +pub const DOT11_ASSOCIATION_START_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_ASSOC_ERROR_SOURCE_OS: u32 = 0u32; +pub const DOT11_ASSOC_ERROR_SOURCE_OTHER: u32 = 255u32; +pub const DOT11_ASSOC_ERROR_SOURCE_REMOTE: u32 = 1u32; +pub const DOT11_ASSOC_STATUS_SUCCESS: u32 = 0u32; +pub const DOT11_AUTH_ALGORITHM_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_AUTH_ALGO_80211_OPEN: DOT11_AUTH_ALGORITHM = 1i32; +pub const DOT11_AUTH_ALGO_80211_SHARED_KEY: DOT11_AUTH_ALGORITHM = 2i32; +pub const DOT11_AUTH_ALGO_IHV_END: DOT11_AUTH_ALGORITHM = -1i32; +pub const DOT11_AUTH_ALGO_IHV_START: DOT11_AUTH_ALGORITHM = -2147483648i32; +pub const DOT11_AUTH_ALGO_MICHAEL: u32 = 1u32; +pub const DOT11_AUTH_ALGO_OWE: DOT11_AUTH_ALGORITHM = 10i32; +pub const DOT11_AUTH_ALGO_RSNA: DOT11_AUTH_ALGORITHM = 6i32; +pub const DOT11_AUTH_ALGO_RSNA_PSK: DOT11_AUTH_ALGORITHM = 7i32; +pub const DOT11_AUTH_ALGO_WPA: DOT11_AUTH_ALGORITHM = 3i32; +pub const DOT11_AUTH_ALGO_WPA3: DOT11_AUTH_ALGORITHM = 8i32; +pub const DOT11_AUTH_ALGO_WPA3_ENT: DOT11_AUTH_ALGORITHM = 11i32; +pub const DOT11_AUTH_ALGO_WPA3_ENT_192: DOT11_AUTH_ALGORITHM = 8i32; +pub const DOT11_AUTH_ALGO_WPA3_SAE: DOT11_AUTH_ALGORITHM = 9i32; +pub const DOT11_AUTH_ALGO_WPA_NONE: DOT11_AUTH_ALGORITHM = 5i32; +pub const DOT11_AUTH_ALGO_WPA_PSK: DOT11_AUTH_ALGORITHM = 4i32; +pub const DOT11_AUTH_CIPHER_PAIR_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_AVAILABLE_CHANNEL_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_AVAILABLE_FREQUENCY_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_BSSID_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_BSS_ENTRY_BYTE_ARRAY_REVISION_1: u32 = 1u32; +pub const DOT11_CAN_SUSTAIN_AP_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_CAN_SUSTAIN_AP_REASON_IHV_END: u32 = 4294967295u32; +pub const DOT11_CAN_SUSTAIN_AP_REASON_IHV_START: u32 = 4278190080u32; +pub const DOT11_CAPABILITY_CHANNEL_AGILITY: u32 = 128u32; +pub const DOT11_CAPABILITY_DSSSOFDM: u32 = 8192u32; +pub const DOT11_CAPABILITY_INFO_CF_POLLABLE: u32 = 4u32; +pub const DOT11_CAPABILITY_INFO_CF_POLL_REQ: u32 = 8u32; +pub const DOT11_CAPABILITY_INFO_ESS: u32 = 1u32; +pub const DOT11_CAPABILITY_INFO_IBSS: u32 = 2u32; +pub const DOT11_CAPABILITY_INFO_PRIVACY: u32 = 16u32; +pub const DOT11_CAPABILITY_PBCC: u32 = 64u32; +pub const DOT11_CAPABILITY_SHORT_PREAMBLE: u32 = 32u32; +pub const DOT11_CAPABILITY_SHORT_SLOT_TIME: u32 = 1024u32; +pub const DOT11_CCA_MODE_CS_ONLY: u32 = 2u32; +pub const DOT11_CCA_MODE_CS_WITH_TIMER: u32 = 8u32; +pub const DOT11_CCA_MODE_ED_ONLY: u32 = 1u32; +pub const DOT11_CCA_MODE_ED_and_CS: u32 = 4u32; +pub const DOT11_CCA_MODE_HRCS_AND_ED: u32 = 16u32; +pub const DOT11_CIPHER_ALGORITHM_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_CIPHER_ALGO_BIP: DOT11_CIPHER_ALGORITHM = 6i32; +pub const DOT11_CIPHER_ALGO_BIP_CMAC_256: DOT11_CIPHER_ALGORITHM = 13i32; +pub const DOT11_CIPHER_ALGO_BIP_GMAC_128: DOT11_CIPHER_ALGORITHM = 11i32; +pub const DOT11_CIPHER_ALGO_BIP_GMAC_256: DOT11_CIPHER_ALGORITHM = 12i32; +pub const DOT11_CIPHER_ALGO_CCMP: DOT11_CIPHER_ALGORITHM = 4i32; +pub const DOT11_CIPHER_ALGO_CCMP_256: DOT11_CIPHER_ALGORITHM = 10i32; +pub const DOT11_CIPHER_ALGO_GCMP: DOT11_CIPHER_ALGORITHM = 8i32; +pub const DOT11_CIPHER_ALGO_GCMP_256: DOT11_CIPHER_ALGORITHM = 9i32; +pub const DOT11_CIPHER_ALGO_IHV_END: DOT11_CIPHER_ALGORITHM = -1i32; +pub const DOT11_CIPHER_ALGO_IHV_START: DOT11_CIPHER_ALGORITHM = -2147483648i32; +pub const DOT11_CIPHER_ALGO_NONE: DOT11_CIPHER_ALGORITHM = 0i32; +pub const DOT11_CIPHER_ALGO_RSN_USE_GROUP: DOT11_CIPHER_ALGORITHM = 256i32; +pub const DOT11_CIPHER_ALGO_TKIP: DOT11_CIPHER_ALGORITHM = 2i32; +pub const DOT11_CIPHER_ALGO_WEP: DOT11_CIPHER_ALGORITHM = 257i32; +pub const DOT11_CIPHER_ALGO_WEP104: DOT11_CIPHER_ALGORITHM = 5i32; +pub const DOT11_CIPHER_ALGO_WEP40: DOT11_CIPHER_ALGORITHM = 1i32; +pub const DOT11_CIPHER_ALGO_WPA_USE_GROUP: DOT11_CIPHER_ALGORITHM = 256i32; +pub const DOT11_CIPHER_DEFAULT_KEY_VALUE_REVISION_1: u32 = 1u32; +pub const DOT11_CIPHER_KEY_MAPPING_KEY_VALUE_BYTE_ARRAY_REVISION_1: u32 = 1u32; +pub const DOT11_CONF_ALGO_TKIP: u32 = 2u32; +pub const DOT11_CONF_ALGO_WEP_RC4: u32 = 1u32; +pub const DOT11_CONNECTION_COMPLETION_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_CONNECTION_START_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_CONNECTION_STATUS_SUCCESS: u32 = 0u32; +pub const DOT11_COUNTRY_OR_REGION_STRING_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_DATA_RATE_MAPPING_TABLE_REVISION_1: u32 = 1u32; +pub const DOT11_DEVICE_ENTRY_BYTE_ARRAY_REVISION_1: u32 = 1u32; +pub const DOT11_DIR_BOTH: DOT11_DIRECTION = 3i32; +pub const DOT11_DIR_INBOUND: DOT11_DIRECTION = 1i32; +pub const DOT11_DIR_OUTBOUND: DOT11_DIRECTION = 2i32; +pub const DOT11_DISASSOCIATE_PEER_REQUEST_REVISION_1: u32 = 1u32; +pub const DOT11_DISASSOCIATION_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_DS_CHANGED: DOT11_DS_INFO = 0i32; +pub const DOT11_DS_UNCHANGED: DOT11_DS_INFO = 1i32; +pub const DOT11_DS_UNKNOWN: DOT11_DS_INFO = 2i32; +pub const DOT11_ENCAP_802_1H: u32 = 2u32; +pub const DOT11_ENCAP_RFC_1042: u32 = 1u32; +pub const DOT11_EXEMPT_ALWAYS: u32 = 1u32; +pub const DOT11_EXEMPT_BOTH: u32 = 3u32; +pub const DOT11_EXEMPT_MULTICAST: u32 = 2u32; +pub const DOT11_EXEMPT_NO_EXEMPTION: u32 = 0u32; +pub const DOT11_EXEMPT_ON_KEY_MAPPING_KEY_UNAVAILABLE: u32 = 2u32; +pub const DOT11_EXEMPT_UNICAST: u32 = 1u32; +pub const DOT11_EXTAP_ATTRIBUTES_REVISION_1: u32 = 1u32; +pub const DOT11_EXTAP_RECV_CONTEXT_REVISION_1: u32 = 1u32; +pub const DOT11_EXTAP_SEND_CONTEXT_REVISION_1: u32 = 1u32; +pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_1: u32 = 1u32; +pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_2: u32 = 2u32; +pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_3: u32 = 3u32; +pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_4: u32 = 4u32; +pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_CERTIFIED: u32 = 2u32; +pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_OID_SUPPORTED: u32 = 1u32; +pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_RESERVED: u32 = 12u32; +pub const DOT11_EXTSTA_CAPABILITY_REVISION_1: u32 = 1u32; +pub const DOT11_EXTSTA_RECV_CONTEXT_REVISION_1: u32 = 1u32; +pub const DOT11_EXTSTA_SEND_CONTEXT_REVISION_1: u32 = 1u32; +pub const DOT11_FLAGS_80211B_CHANNEL_AGILITY: u32 = 4u32; +pub const DOT11_FLAGS_80211B_PBCC: u32 = 2u32; +pub const DOT11_FLAGS_80211B_SHORT_PREAMBLE: u32 = 1u32; +pub const DOT11_FLAGS_80211G_BARKER_PREAMBLE_MODE: u32 = 128u32; +pub const DOT11_FLAGS_80211G_DSSS_OFDM: u32 = 16u32; +pub const DOT11_FLAGS_80211G_NON_ERP_PRESENT: u32 = 64u32; +pub const DOT11_FLAGS_80211G_USE_PROTECTION: u32 = 32u32; +pub const DOT11_FLAGS_PS_ON: u32 = 8u32; +pub const DOT11_FREQUENCY_BANDS_LOWER: u32 = 1u32; +pub const DOT11_FREQUENCY_BANDS_MIDDLE: u32 = 2u32; +pub const DOT11_FREQUENCY_BANDS_UPPER: u32 = 4u32; +pub const DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_HESSID_LENGTH: u32 = 6u32; +pub const DOT11_HR_CCA_MODE_CS_AND_ED: u32 = 4u32; +pub const DOT11_HR_CCA_MODE_CS_ONLY: u32 = 2u32; +pub const DOT11_HR_CCA_MODE_CS_WITH_TIMER: u32 = 8u32; +pub const DOT11_HR_CCA_MODE_ED_ONLY: u32 = 1u32; +pub const DOT11_HR_CCA_MODE_HRCS_AND_ED: u32 = 16u32; +pub const DOT11_HW_DEFRAGMENTATION_SUPPORTED: u32 = 8u32; +pub const DOT11_HW_FRAGMENTATION_SUPPORTED: u32 = 4u32; +pub const DOT11_HW_MSDU_AUTH_SUPPORTED_RX: u32 = 32u32; +pub const DOT11_HW_MSDU_AUTH_SUPPORTED_TX: u32 = 16u32; +pub const DOT11_HW_WEP_SUPPORTED_RX: u32 = 2u32; +pub const DOT11_HW_WEP_SUPPORTED_TX: u32 = 1u32; +pub const DOT11_IBSS_PARAMS_REVISION_1: u32 = 1u32; +pub const DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_INCOMING_ASSOC_DECISION_REVISION_1: u32 = 1u32; +pub const DOT11_INCOMING_ASSOC_DECISION_REVISION_2: u32 = 2u32; +pub const DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_INCOMING_ASSOC_STARTED_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_INVALID_CHANNEL_NUMBER: u32 = 0u32; +pub const DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_LINK_QUALITY_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_MAC_ADDRESS_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_MAC_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_MANUFACTURING_CALLBACK_REVISION_1: u32 = 1u32; +pub const DOT11_MANUFACTURING_SELF_TEST_TYPE_BT_COEXISTENCE: DOT11_MANUFACTURING_SELF_TEST_TYPE = 3i32; +pub const DOT11_MANUFACTURING_SELF_TEST_TYPE_INTERFACE: DOT11_MANUFACTURING_SELF_TEST_TYPE = 1i32; +pub const DOT11_MANUFACTURING_SELF_TEST_TYPE_RF_INTERFACE: DOT11_MANUFACTURING_SELF_TEST_TYPE = 2i32; +pub const DOT11_MANUFACTURING_TEST_REVISION_1: u32 = 1u32; +pub const DOT11_MAX_CHANNEL_HINTS: u32 = 4u32; +pub const DOT11_MAX_NUM_DEFAULT_KEY: u32 = 4u32; +pub const DOT11_MAX_NUM_DEFAULT_KEY_MFP: u32 = 6u32; +pub const DOT11_MAX_NUM_OF_FRAGMENTS: u32 = 16u32; +pub const DOT11_MAX_PDU_SIZE: u32 = 2346u32; +pub const DOT11_MAX_REQUESTED_SERVICE_INFORMATION_LENGTH: u32 = 255u32; +pub const DOT11_MIN_PDU_SIZE: u32 = 256u32; +pub const DOT11_MPDU_MAX_LENGTH_INDICATION_REVISION_1: u32 = 1u32; +pub const DOT11_MSONEX_FAILURE: DOT11_MSONEX_RESULT = 1i32; +pub const DOT11_MSONEX_IN_PROGRESS: DOT11_MSONEX_RESULT = 2i32; +pub const DOT11_MSONEX_SUCCESS: DOT11_MSONEX_RESULT = 0i32; +pub const DOT11_NLO_FLAG_SCAN_AT_SYSTEM_RESUME: u32 = 4u32; +pub const DOT11_NLO_FLAG_SCAN_ON_AOAC_PLATFORM: u32 = 2u32; +pub const DOT11_NLO_FLAG_STOP_NLO_INDICATION: u32 = 1u32; +pub const DOT11_OFFLOAD_NETWORK_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_OI_MAX_LENGTH: u32 = 5u32; +pub const DOT11_OI_MIN_LENGTH: u32 = 3u32; +pub const DOT11_OPERATION_MODE_AP: u32 = 2u32; +pub const DOT11_OPERATION_MODE_EXTENSIBLE_AP: u32 = 8u32; +pub const DOT11_OPERATION_MODE_EXTENSIBLE_STATION: u32 = 4u32; +pub const DOT11_OPERATION_MODE_MANUFACTURING: u32 = 1073741824u32; +pub const DOT11_OPERATION_MODE_NETWORK_MONITOR: u32 = 2147483648u32; +pub const DOT11_OPERATION_MODE_STATION: u32 = 1u32; +pub const DOT11_OPERATION_MODE_UNKNOWN: u32 = 0u32; +pub const DOT11_OPERATION_MODE_WFD_CLIENT: u32 = 64u32; +pub const DOT11_OPERATION_MODE_WFD_DEVICE: u32 = 16u32; +pub const DOT11_OPERATION_MODE_WFD_GROUP_OWNER: u32 = 32u32; +pub const DOT11_PACKET_TYPE_ALL_MULTICAST_CTRL: u32 = 4096u32; +pub const DOT11_PACKET_TYPE_ALL_MULTICAST_DATA: u32 = 16384u32; +pub const DOT11_PACKET_TYPE_ALL_MULTICAST_MGMT: u32 = 8192u32; +pub const DOT11_PACKET_TYPE_BROADCAST_CTRL: u32 = 64u32; +pub const DOT11_PACKET_TYPE_BROADCAST_DATA: u32 = 256u32; +pub const DOT11_PACKET_TYPE_BROADCAST_MGMT: u32 = 128u32; +pub const DOT11_PACKET_TYPE_DIRECTED_CTRL: u32 = 1u32; +pub const DOT11_PACKET_TYPE_DIRECTED_DATA: u32 = 4u32; +pub const DOT11_PACKET_TYPE_DIRECTED_MGMT: u32 = 2u32; +pub const DOT11_PACKET_TYPE_MULTICAST_CTRL: u32 = 8u32; +pub const DOT11_PACKET_TYPE_MULTICAST_DATA: u32 = 32u32; +pub const DOT11_PACKET_TYPE_MULTICAST_MGMT: u32 = 16u32; +pub const DOT11_PACKET_TYPE_PROMISCUOUS_CTRL: u32 = 512u32; +pub const DOT11_PACKET_TYPE_PROMISCUOUS_DATA: u32 = 2048u32; +pub const DOT11_PACKET_TYPE_PROMISCUOUS_MGMT: u32 = 1024u32; +pub const DOT11_PEER_INFO_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_PHY_ATTRIBUTES_REVISION_1: u32 = 1u32; +pub const DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_PHY_ID_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_PHY_STATE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_PHY_TYPE_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_PMKID_CANDIDATE_LIST_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_PMKID_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_PORT_STATE_NOTIFICATION_REVISION_1: u32 = 1u32; +pub const DOT11_POWER_MGMT_AUTO_MODE_ENABLED_REVISION_1: u32 = 1u32; +pub const DOT11_POWER_MGMT_MODE_STATUS_INFO_REVISION_1: u32 = 1u32; +pub const DOT11_POWER_SAVE_LEVEL_FAST_PSP: u32 = 2u32; +pub const DOT11_POWER_SAVE_LEVEL_MAX_PSP: u32 = 1u32; +pub const DOT11_POWER_SAVING_FAST_PSP: u32 = 8u32; +pub const DOT11_POWER_SAVING_MAXIMUM_LEVEL: u32 = 24u32; +pub const DOT11_POWER_SAVING_MAX_PSP: u32 = 16u32; +pub const DOT11_POWER_SAVING_NO_POWER_SAVING: u32 = 0u32; +pub const DOT11_PRIORITY_CONTENTION: u32 = 0u32; +pub const DOT11_PRIORITY_CONTENTION_FREE: u32 = 1u32; +pub const DOT11_PRIVACY_EXEMPTION_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_PSD_IE_MAX_DATA_SIZE: u32 = 240u32; +pub const DOT11_PSD_IE_MAX_ENTRY_NUMBER: u32 = 5u32; +pub const DOT11_QOS_PARAMS_REVISION_1: u32 = 1u32; +pub const DOT11_RATE_SET_MAX_LENGTH: u32 = 126u32; +pub const DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_RECV_CONTEXT_REVISION_1: u32 = 1u32; +pub const DOT11_REG_DOMAIN_DOC: u32 = 32u32; +pub const DOT11_REG_DOMAIN_ETSI: u32 = 48u32; +pub const DOT11_REG_DOMAIN_FCC: u32 = 16u32; +pub const DOT11_REG_DOMAIN_FRANCE: u32 = 50u32; +pub const DOT11_REG_DOMAIN_MKK: u32 = 64u32; +pub const DOT11_REG_DOMAIN_OTHER: u32 = 0u32; +pub const DOT11_REG_DOMAIN_SPAIN: u32 = 49u32; +pub const DOT11_ROAMING_COMPLETION_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_ROAMING_START_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_SEND_CONTEXT_REVISION_1: u32 = 1u32; +pub const DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_SEND_INVITATION_REQUEST_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_SEND_INVITATION_RESPONSE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_SERVICE_CLASS_REORDERABLE_MULTICAST: u32 = 0u32; +pub const DOT11_SERVICE_CLASS_STRICTLY_ORDERED: u32 = 1u32; +pub const DOT11_SSID_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_SSID_MAX_LENGTH: u32 = 32u32; +pub const DOT11_STATISTICS_REVISION_1: u32 = 1u32; +pub const DOT11_STATUS_AP_JOIN_CONFIRM: u32 = 5u32; +pub const DOT11_STATUS_AUTH_FAILED: u32 = 131072u32; +pub const DOT11_STATUS_AUTH_NOT_VERIFIED: u32 = 32768u32; +pub const DOT11_STATUS_AUTH_VERIFIED: u32 = 65536u32; +pub const DOT11_STATUS_ENCRYPTION_FAILED: u32 = 512u32; +pub const DOT11_STATUS_EXCESSIVE_DATA_LENGTH: u32 = 256u32; +pub const DOT11_STATUS_GENERATE_AUTH_FAILED: u32 = 16384u32; +pub const DOT11_STATUS_ICV_VERIFIED: u32 = 2048u32; +pub const DOT11_STATUS_JOIN_CONFIRM: u32 = 2u32; +pub const DOT11_STATUS_MPDU_MAX_LENGTH_CHANGED: u32 = 6u32; +pub const DOT11_STATUS_PACKET_NOT_REASSEMBLED: u32 = 8192u32; +pub const DOT11_STATUS_PACKET_REASSEMBLED: u32 = 4096u32; +pub const DOT11_STATUS_PS_LIFETIME_EXPIRED: u32 = 262144u32; +pub const DOT11_STATUS_RESET_CONFIRM: u32 = 4u32; +pub const DOT11_STATUS_RETRY_LIMIT_EXCEEDED: u32 = 2u32; +pub const DOT11_STATUS_SCAN_CONFIRM: u32 = 1u32; +pub const DOT11_STATUS_START_CONFIRM: u32 = 3u32; +pub const DOT11_STATUS_SUCCESS: u32 = 1u32; +pub const DOT11_STATUS_UNAVAILABLE_BSS: u32 = 128u32; +pub const DOT11_STATUS_UNAVAILABLE_PRIORITY: u32 = 16u32; +pub const DOT11_STATUS_UNAVAILABLE_SERVICE_CLASS: u32 = 32u32; +pub const DOT11_STATUS_UNSUPPORTED_PRIORITY: u32 = 4u32; +pub const DOT11_STATUS_UNSUPPORTED_SERVICE_CLASS: u32 = 8u32; +pub const DOT11_STATUS_WEP_KEY_UNAVAILABLE: u32 = 1024u32; +pub const DOT11_STATUS_XMIT_MSDU_TIMER_EXPIRED: u32 = 64u32; +pub const DOT11_STOP_AP_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_STOP_AP_REASON_AP_ACTIVE: u32 = 3u32; +pub const DOT11_STOP_AP_REASON_CHANNEL_NOT_AVAILABLE: u32 = 2u32; +pub const DOT11_STOP_AP_REASON_FREQUENCY_NOT_AVAILABLE: u32 = 1u32; +pub const DOT11_STOP_AP_REASON_IHV_END: u32 = 4294967295u32; +pub const DOT11_STOP_AP_REASON_IHV_START: u32 = 4278190080u32; +pub const DOT11_TKIPMIC_FAILURE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_VWIFI_ATTRIBUTES_REVISION_1: u32 = 1u32; +pub const DOT11_VWIFI_COMBINATION_REVISION_1: u32 = 1u32; +pub const DOT11_VWIFI_COMBINATION_REVISION_2: u32 = 2u32; +pub const DOT11_VWIFI_COMBINATION_REVISION_3: u32 = 3u32; +pub const DOT11_WFD_ADDITIONAL_IE_REVISION_1: u32 = 1u32; +pub const DOT11_WFD_APS2_SERVICE_TYPE_MAX_LENGTH: u32 = 21u32; +pub const DOT11_WFD_ASP2_INSTANCE_NAME_MAX_LENGTH: u32 = 63u32; +pub const DOT11_WFD_ATTRIBUTES_REVISION_1: u32 = 1u32; +pub const DOT11_WFD_DEVICE_AUTO_AVAILABILITY: u32 = 16u32; +pub const DOT11_WFD_DEVICE_CAPABILITY_CONCURRENT_OPERATION: u32 = 4u32; +pub const DOT11_WFD_DEVICE_CAPABILITY_CONFIG_REVISION_1: u32 = 1u32; +pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_CLIENT_DISCOVERABILITY: u32 = 2u32; +pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_DEVICE_LIMIT: u32 = 16u32; +pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_INFRASTRUCTURE_MANAGED: u32 = 8u32; +pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_INVITATION_PROCEDURE: u32 = 32u32; +pub const DOT11_WFD_DEVICE_CAPABILITY_RESERVED_6: u32 = 64u32; +pub const DOT11_WFD_DEVICE_CAPABILITY_RESERVED_7: u32 = 128u32; +pub const DOT11_WFD_DEVICE_CAPABILITY_SERVICE_DISCOVERY: u32 = 1u32; +pub const DOT11_WFD_DEVICE_HIGH_AVAILABILITY: u32 = 24u32; +pub const DOT11_WFD_DEVICE_INFO_REVISION_1: u32 = 1u32; +pub const DOT11_WFD_DEVICE_LISTEN_CHANNEL_REVISION_1: u32 = 1u32; +pub const DOT11_WFD_DEVICE_NOT_DISCOVERABLE: u32 = 0u32; +pub const DOT11_WFD_DISCOVER_COMPLETE_MAX_LIST_SIZE: u32 = 128u32; +pub const DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_WFD_DISCOVER_REQUEST_REVISION_1: u32 = 1u32; +pub const DOT11_WFD_GROUP_CAPABILITY_CROSS_CONNECTION_SUPPORTED: u32 = 16u32; +pub const DOT11_WFD_GROUP_CAPABILITY_EAPOL_KEY_IP_ADDRESS_ALLOCATION_SUPPORTED: u32 = 128u32; +pub const DOT11_WFD_GROUP_CAPABILITY_GROUP_LIMIT_REACHED: u32 = 4u32; +pub const DOT11_WFD_GROUP_CAPABILITY_GROUP_OWNER: u32 = 1u32; +pub const DOT11_WFD_GROUP_CAPABILITY_INTRABSS_DISTRIBUTION_SUPPORTED: u32 = 8u32; +pub const DOT11_WFD_GROUP_CAPABILITY_IN_GROUP_FORMATION: u32 = 64u32; +pub const DOT11_WFD_GROUP_CAPABILITY_NONE: u32 = 0u32; +pub const DOT11_WFD_GROUP_CAPABILITY_PERSISTENT_GROUP: u32 = 2u32; +pub const DOT11_WFD_GROUP_CAPABILITY_PERSISTENT_RECONNECT_SUPPORTED: u32 = 32u32; +pub const DOT11_WFD_GROUP_CAPABILITY_RESERVED_7: u32 = 128u32; +pub const DOT11_WFD_GROUP_JOIN_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_REVISION_1: u32 = 1u32; +pub const DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_REVISION_2: u32 = 2u32; +pub const DOT11_WFD_GROUP_START_PARAMETERS_REVISION_1: u32 = 1u32; +pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_FROM_WLAN_CROSS_CONNECTION_POLICY: u32 = 1u32; +pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_INFRASTRUCTURE_MANAGED_POLICY: u32 = 4u32; +pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_NOT_MANAGED_INFRASTRUCTURE_CAPABLE: u32 = 2u32; +pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_WFD_COEXISTENCE_POLICY: u32 = 3u32; +pub const DOT11_WFD_MINOR_REASON_SUCCESS: u32 = 0u32; +pub const DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST_REVISION_1: u32 = 1u32; +pub const DOT11_WFD_SERVICE_INFORMATION_MAX_LENGTH: u32 = 65535u32; +pub const DOT11_WFD_SERVICE_NAME_MAX_LENGTH: u32 = 255u32; +pub const DOT11_WFD_SESSION_INFO_MAX_LENGTH: u32 = 144u32; +pub const DOT11_WFD_STATUS_FAILED_INCOMPATIBLE_PARAMETERS: u32 = 2u32; +pub const DOT11_WFD_STATUS_FAILED_INCOMPATIBLE_PROVISIONING_METHOD: u32 = 10u32; +pub const DOT11_WFD_STATUS_FAILED_INFORMATION_IS_UNAVAILABLE: u32 = 1u32; +pub const DOT11_WFD_STATUS_FAILED_INVALID_PARAMETERS: u32 = 4u32; +pub const DOT11_WFD_STATUS_FAILED_LIMIT_REACHED: u32 = 3u32; +pub const DOT11_WFD_STATUS_FAILED_MATCHING_MAX_INTENT: u32 = 9u32; +pub const DOT11_WFD_STATUS_FAILED_NO_COMMON_CHANNELS: u32 = 7u32; +pub const DOT11_WFD_STATUS_FAILED_PREVIOUS_PROTOCOL_ERROR: u32 = 6u32; +pub const DOT11_WFD_STATUS_FAILED_REJECTED_BY_USER: u32 = 11u32; +pub const DOT11_WFD_STATUS_FAILED_UNABLE_TO_ACCOMODATE_REQUEST: u32 = 5u32; +pub const DOT11_WFD_STATUS_FAILED_UNKNOWN_WFD_GROUP: u32 = 8u32; +pub const DOT11_WFD_STATUS_SUCCESS: u32 = 0u32; +pub const DOT11_WFD_STATUS_SUCCESS_ACCEPTED_BY_USER: u32 = 12u32; +pub const DOT11_WME_PACKET: u32 = 256u32; +pub const DOT11_WPS_CONFIG_METHOD_DISPLAY: DOT11_WPS_CONFIG_METHOD = 8i32; +pub const DOT11_WPS_CONFIG_METHOD_KEYPAD: DOT11_WPS_CONFIG_METHOD = 256i32; +pub const DOT11_WPS_CONFIG_METHOD_NFC_INTERFACE: DOT11_WPS_CONFIG_METHOD = 64i32; +pub const DOT11_WPS_CONFIG_METHOD_NFC_TAG: DOT11_WPS_CONFIG_METHOD = 32i32; +pub const DOT11_WPS_CONFIG_METHOD_NULL: DOT11_WPS_CONFIG_METHOD = 0i32; +pub const DOT11_WPS_CONFIG_METHOD_PUSHBUTTON: DOT11_WPS_CONFIG_METHOD = 128i32; +pub const DOT11_WPS_CONFIG_METHOD_WFDS_DEFAULT: DOT11_WPS_CONFIG_METHOD = 4096i32; +pub const DOT11_WPS_DEVICE_NAME_MAX_LENGTH: u32 = 32u32; +pub const DOT11_WPS_MAX_MODEL_NAME_LENGTH: u32 = 32u32; +pub const DOT11_WPS_MAX_MODEL_NUMBER_LENGTH: u32 = 32u32; +pub const DOT11_WPS_MAX_PASSKEY_LENGTH: u32 = 8u32; +pub const DOT11_WPS_PASSWORD_ID_DEFAULT: DOT11_WPS_DEVICE_PASSWORD_ID = 0i32; +pub const DOT11_WPS_PASSWORD_ID_MACHINE_SPECIFIED: DOT11_WPS_DEVICE_PASSWORD_ID = 2i32; +pub const DOT11_WPS_PASSWORD_ID_NFC_CONNECTION_HANDOVER: DOT11_WPS_DEVICE_PASSWORD_ID = 7i32; +pub const DOT11_WPS_PASSWORD_ID_OOB_RANGE_MAX: DOT11_WPS_DEVICE_PASSWORD_ID = 65535i32; +pub const DOT11_WPS_PASSWORD_ID_OOB_RANGE_MIN: DOT11_WPS_DEVICE_PASSWORD_ID = 16i32; +pub const DOT11_WPS_PASSWORD_ID_PUSHBUTTON: DOT11_WPS_DEVICE_PASSWORD_ID = 4i32; +pub const DOT11_WPS_PASSWORD_ID_REGISTRAR_SPECIFIED: DOT11_WPS_DEVICE_PASSWORD_ID = 5i32; +pub const DOT11_WPS_PASSWORD_ID_REKEY: DOT11_WPS_DEVICE_PASSWORD_ID = 3i32; +pub const DOT11_WPS_PASSWORD_ID_USER_SPECIFIED: DOT11_WPS_DEVICE_PASSWORD_ID = 1i32; +pub const DOT11_WPS_PASSWORD_ID_WFD_SERVICES: DOT11_WPS_DEVICE_PASSWORD_ID = 8i32; +pub const DOT11_WPS_VERSION_1_0: u32 = 1u32; +pub const DOT11_WPS_VERSION_2_0: u32 = 2u32; +pub const DevProp_PciDevice_AcsCompatibleUpHierarchy_Enhanced: DEVPROP_PCIDEVICE_ACSCOMPATIBLEUPHIERARCHY = 4u32; +pub const DevProp_PciDevice_AcsCompatibleUpHierarchy_NoP2PSupported: DEVPROP_PCIDEVICE_ACSCOMPATIBLEUPHIERARCHY = 2u32; +pub const DevProp_PciDevice_AcsCompatibleUpHierarchy_NotSupported: DEVPROP_PCIDEVICE_ACSCOMPATIBLEUPHIERARCHY = 0u32; +pub const DevProp_PciDevice_AcsCompatibleUpHierarchy_SingleFunctionSupported: DEVPROP_PCIDEVICE_ACSCOMPATIBLEUPHIERARCHY = 1u32; +pub const DevProp_PciDevice_AcsCompatibleUpHierarchy_Supported: DEVPROP_PCIDEVICE_ACSCOMPATIBLEUPHIERARCHY = 3u32; +pub const DevProp_PciDevice_AcsSupport_Missing: DEVPROP_PCIDEVICE_ACSSUPPORT = 2u32; +pub const DevProp_PciDevice_AcsSupport_NotNeeded: DEVPROP_PCIDEVICE_ACSSUPPORT = 1u32; +pub const DevProp_PciDevice_AcsSupport_Present: DEVPROP_PCIDEVICE_ACSSUPPORT = 0u32; +pub const DevProp_PciDevice_BridgeType_PciConventional: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 6u32; +pub const DevProp_PciDevice_BridgeType_PciExpressDownstreamSwitchPort: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 10u32; +pub const DevProp_PciDevice_BridgeType_PciExpressEventCollector: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 14u32; +pub const DevProp_PciDevice_BridgeType_PciExpressRootPort: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 8u32; +pub const DevProp_PciDevice_BridgeType_PciExpressToPciXBridge: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 11u32; +pub const DevProp_PciDevice_BridgeType_PciExpressTreatedAsPci: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 13u32; +pub const DevProp_PciDevice_BridgeType_PciExpressUpstreamSwitchPort: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 9u32; +pub const DevProp_PciDevice_BridgeType_PciX: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 7u32; +pub const DevProp_PciDevice_BridgeType_PciXToExpressBridge: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 12u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode1_100Mhz: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 2u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode1_133MHZ: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 3u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode1_66Mhz: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 1u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode1_ECC_100Mhz: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 6u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode1_ECC_133Mhz: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 7u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode1_ECC_66Mhz: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 5u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode2_266_100MHz: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 10u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode2_266_133MHz: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 11u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode2_266_66MHz: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 9u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode2_533_100MHz: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 14u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode2_533_133MHz: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 15u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode2_533_66MHz: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 13u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_PciX_Mode_Conventional_Pci: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 0u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_Pci_Conventional_33MHz: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 0u32; +pub const DevProp_PciDevice_CurrentSpeedAndMode_Pci_Conventional_66MHz: DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = 1u32; +pub const DevProp_PciDevice_DeviceType_PciConventional: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 0u32; +pub const DevProp_PciDevice_DeviceType_PciExpressEndpoint: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 2u32; +pub const DevProp_PciDevice_DeviceType_PciExpressLegacyEndpoint: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 3u32; +pub const DevProp_PciDevice_DeviceType_PciExpressRootComplexIntegratedEndpoint: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 4u32; +pub const DevProp_PciDevice_DeviceType_PciExpressTreatedAsPci: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 5u32; +pub const DevProp_PciDevice_DeviceType_PciX: DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = 1u32; +pub const DevProp_PciDevice_InterruptType_LineBased: DEVPROP_PCIDEVICE_INTERRUPTTYPE = 1u32; +pub const DevProp_PciDevice_InterruptType_Msi: DEVPROP_PCIDEVICE_INTERRUPTTYPE = 2u32; +pub const DevProp_PciDevice_InterruptType_MsiX: DEVPROP_PCIDEVICE_INTERRUPTTYPE = 4u32; +pub const DevProp_PciDevice_SriovSupport_DidntGetVfBarSpace: DEVPROP_PCIDEVICE_SRIOVSUPPORT = 4u32; +pub const DevProp_PciDevice_SriovSupport_MissingAcs: DEVPROP_PCIDEVICE_SRIOVSUPPORT = 1u32; +pub const DevProp_PciDevice_SriovSupport_MissingPfDriver: DEVPROP_PCIDEVICE_SRIOVSUPPORT = 2u32; +pub const DevProp_PciDevice_SriovSupport_NoBusResource: DEVPROP_PCIDEVICE_SRIOVSUPPORT = 3u32; +pub const DevProp_PciDevice_SriovSupport_Ok: DEVPROP_PCIDEVICE_SRIOVSUPPORT = 0u32; +pub const DevProp_PciExpressDevice_LinkSpeed_Five_Gbps: DEVPROP_PCIEXPRESSDEVICE_LINKSPEED = 2u32; +pub const DevProp_PciExpressDevice_LinkSpeed_TwoAndHalf_Gbps: DEVPROP_PCIEXPRESSDEVICE_LINKSPEED = 1u32; +pub const DevProp_PciExpressDevice_LinkWidth_By_1: DEVPROP_PCIEXPRESSDEVICE_LINKWIDTH = 1u32; +pub const DevProp_PciExpressDevice_LinkWidth_By_12: DEVPROP_PCIEXPRESSDEVICE_LINKWIDTH = 12u32; +pub const DevProp_PciExpressDevice_LinkWidth_By_16: DEVPROP_PCIEXPRESSDEVICE_LINKWIDTH = 16u32; +pub const DevProp_PciExpressDevice_LinkWidth_By_2: DEVPROP_PCIEXPRESSDEVICE_LINKWIDTH = 2u32; +pub const DevProp_PciExpressDevice_LinkWidth_By_32: DEVPROP_PCIEXPRESSDEVICE_LINKWIDTH = 32u32; +pub const DevProp_PciExpressDevice_LinkWidth_By_4: DEVPROP_PCIEXPRESSDEVICE_LINKWIDTH = 4u32; +pub const DevProp_PciExpressDevice_LinkWidth_By_8: DEVPROP_PCIEXPRESSDEVICE_LINKWIDTH = 8u32; +pub const DevProp_PciExpressDevice_PayloadOrRequestSize_1024Bytes: DEVPROP_PCIEXPRESSDEVICE_PAYLOADORREQUESTSIZE = 3u32; +pub const DevProp_PciExpressDevice_PayloadOrRequestSize_128Bytes: DEVPROP_PCIEXPRESSDEVICE_PAYLOADORREQUESTSIZE = 0u32; +pub const DevProp_PciExpressDevice_PayloadOrRequestSize_2048Bytes: DEVPROP_PCIEXPRESSDEVICE_PAYLOADORREQUESTSIZE = 4u32; +pub const DevProp_PciExpressDevice_PayloadOrRequestSize_256Bytes: DEVPROP_PCIEXPRESSDEVICE_PAYLOADORREQUESTSIZE = 1u32; +pub const DevProp_PciExpressDevice_PayloadOrRequestSize_4096Bytes: DEVPROP_PCIEXPRESSDEVICE_PAYLOADORREQUESTSIZE = 5u32; +pub const DevProp_PciExpressDevice_PayloadOrRequestSize_512Bytes: DEVPROP_PCIEXPRESSDEVICE_PAYLOADORREQUESTSIZE = 2u32; +pub const DevProp_PciExpressDevice_Spec_Version_10: DEVPROP_PCIEXPRESSDEVICE_SPEC_VERSION = 1u32; +pub const DevProp_PciExpressDevice_Spec_Version_11: DEVPROP_PCIEXPRESSDEVICE_SPEC_VERSION = 2u32; +pub const DevProp_PciRootBus_BusWidth_32Bits: DEVPROP_PCIROOTBUS_BUSWIDTH = 0u32; +pub const DevProp_PciRootBus_BusWidth_64Bits: DEVPROP_PCIROOTBUS_BUSWIDTH = 1u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_Conventional_33Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 0u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_Conventional_66Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 1u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_266_Mode2_100Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 9u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_266_Mode2_133Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 10u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_266_Mode2_66Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 8u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_533_Mode2_100Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 12u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_533_Mode2_133Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 13u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_533_Mode2_66Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 11u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_Mode1_100Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 3u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_Mode1_133Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 4u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_Mode1_66Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 2u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_Mode1_ECC_100Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 6u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_Mode1_ECC_133Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 7u32; +pub const DevProp_PciRootBus_CurrentSpeedAndMode_Pci_X_Mode1_ECC_66Mhz: DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = 5u32; +pub const DevProp_PciRootBus_SecondaryInterface_PciConventional: DEVPROP_PCIROOTBUS_SECONDARYINTERFACE = 0u32; +pub const DevProp_PciRootBus_SecondaryInterface_PciExpress: DEVPROP_PCIROOTBUS_SECONDARYINTERFACE = 3u32; +pub const DevProp_PciRootBus_SecondaryInterface_PciXMode1: DEVPROP_PCIROOTBUS_SECONDARYINTERFACE = 1u32; +pub const DevProp_PciRootBus_SecondaryInterface_PciXMode2: DEVPROP_PCIROOTBUS_SECONDARYINTERFACE = 2u32; +pub const DevProp_PciRootBus_SupportedSpeedsAndModes_Pci_Conventional_33Mhz: DEVPROP_PCIROOTBUS_SUPPORTEDSPEEDSANDMODES = 1u32; +pub const DevProp_PciRootBus_SupportedSpeedsAndModes_Pci_Conventional_66Mhz: DEVPROP_PCIROOTBUS_SUPPORTEDSPEEDSANDMODES = 2u32; +pub const DevProp_PciRootBus_SupportedSpeedsAndModes_Pci_X_133Mhz: DEVPROP_PCIROOTBUS_SUPPORTEDSPEEDSANDMODES = 8u32; +pub const DevProp_PciRootBus_SupportedSpeedsAndModes_Pci_X_266Mhz: DEVPROP_PCIROOTBUS_SUPPORTEDSPEEDSANDMODES = 16u32; +pub const DevProp_PciRootBus_SupportedSpeedsAndModes_Pci_X_533Mhz: DEVPROP_PCIROOTBUS_SUPPORTEDSPEEDSANDMODES = 32u32; +pub const DevProp_PciRootBus_SupportedSpeedsAndModes_Pci_X_66Mhz: DEVPROP_PCIROOTBUS_SUPPORTEDSPEEDSANDMODES = 4u32; +pub const Dot11AdHocManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdd06a84f_83bd_4d01_8ab9_2389fea0869e); +pub const GUID_AEPSERVICE_WIFIDIRECT_DEVICE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcc29827c_9caf_4928_99a9_18f7c2381389); +pub const GUID_DEVINTERFACE_ASP_INFRA_DEVICE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xff823995_7a72_4c80_8757_c67ee13d1a49); +pub const GUID_DEVINTERFACE_WIFIDIRECT_DEVICE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x439b20af_8955_405b_99f0_a62af0c68d43); +pub const IHV_INIT_FUNCTION_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Dot11ExtIhvInitService"); +pub const IHV_INIT_VS_FUNCTION_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Dot11ExtIhvInitVirtualStation"); +pub const IHV_VERSION_FUNCTION_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Dot11ExtIhvGetVersionInfo"); +pub const IndicationTypeLinkQuality: DOT11EXT_IHV_INDICATION_TYPE = 4i32; +pub const IndicationTypeNicSpecificNotification: DOT11EXT_IHV_INDICATION_TYPE = 0i32; +pub const IndicationTypePhyStateChange: DOT11EXT_IHV_INDICATION_TYPE = 3i32; +pub const IndicationTypePmkidCandidateList: DOT11EXT_IHV_INDICATION_TYPE = 1i32; +pub const IndicationTypeTkipMicFailure: DOT11EXT_IHV_INDICATION_TYPE = 2i32; +pub const L2_NOTIFICATION_CODE_GROUP_SIZE: u32 = 4096u32; +pub const L2_NOTIFICATION_CODE_PUBLIC_BEGIN: u32 = 0u32; +pub const L2_NOTIFICATION_SOURCE_ALL: u32 = 65535u32; +pub const L2_NOTIFICATION_SOURCE_DOT3_AUTO_CONFIG: u32 = 1u32; +pub const L2_NOTIFICATION_SOURCE_NONE: u32 = 0u32; +pub const L2_NOTIFICATION_SOURCE_ONEX: u32 = 4u32; +pub const L2_NOTIFICATION_SOURCE_SECURITY: u32 = 2u32; +pub const L2_NOTIFICATION_SOURCE_WCM: u32 = 256u32; +pub const L2_NOTIFICATION_SOURCE_WCM_CSP: u32 = 512u32; +pub const L2_NOTIFICATION_SOURCE_WFD: u32 = 1024u32; +pub const L2_NOTIFICATION_SOURCE_WLAN_ACM: u32 = 8u32; +pub const L2_NOTIFICATION_SOURCE_WLAN_DEVICE_SERVICE: u32 = 2048u32; +pub const L2_NOTIFICATION_SOURCE_WLAN_HNWK: u32 = 128u32; +pub const L2_NOTIFICATION_SOURCE_WLAN_IHV: u32 = 64u32; +pub const L2_NOTIFICATION_SOURCE_WLAN_MSM: u32 = 16u32; +pub const L2_NOTIFICATION_SOURCE_WLAN_SECURITY: u32 = 32u32; +pub const L2_PROFILE_MAX_NAME_LENGTH: u32 = 256u32; +pub const L2_REASON_CODE_DOT11_AC_BASE: u32 = 131072u32; +pub const L2_REASON_CODE_DOT11_MSM_BASE: u32 = 196608u32; +pub const L2_REASON_CODE_DOT11_SECURITY_BASE: u32 = 262144u32; +pub const L2_REASON_CODE_DOT3_AC_BASE: u32 = 393216u32; +pub const L2_REASON_CODE_DOT3_MSM_BASE: u32 = 458752u32; +pub const L2_REASON_CODE_GEN_BASE: u32 = 65536u32; +pub const L2_REASON_CODE_GROUP_SIZE: u32 = 65536u32; +pub const L2_REASON_CODE_IHV_BASE: u32 = 589824u32; +pub const L2_REASON_CODE_ONEX_BASE: u32 = 327680u32; +pub const L2_REASON_CODE_PROFILE_BASE: u32 = 524288u32; +pub const L2_REASON_CODE_PROFILE_MISSING: u32 = 1u32; +pub const L2_REASON_CODE_RESERVED_BASE: u32 = 720896u32; +pub const L2_REASON_CODE_SUCCESS: u32 = 0u32; +pub const L2_REASON_CODE_UNKNOWN: u32 = 65537u32; +pub const L2_REASON_CODE_WIMAX_BASE: u32 = 655360u32; +pub const MAX_NUM_SUPPORTED_RATES: u32 = 8u32; +pub const MAX_NUM_SUPPORTED_RATES_V2: u32 = 255u32; +pub const MS_MAX_PROFILE_NAME_LENGTH: u32 = 256u32; +pub const MS_PROFILE_GROUP_POLICY: u32 = 1u32; +pub const MS_PROFILE_USER: u32 = 2u32; +pub const NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_DATA: u32 = 4u32; +pub const NDIS_PACKET_TYPE_802_11_BROADCAST_DATA: u32 = 8u32; +pub const NDIS_PACKET_TYPE_802_11_DIRECTED_DATA: u32 = 1u32; +pub const NDIS_PACKET_TYPE_802_11_MULTICAST_DATA: u32 = 2u32; +pub const NDIS_PACKET_TYPE_802_11_PROMISCUOUS_DATA: u32 = 32u32; +pub const OID_DOT11_AP_JOIN_REQUEST: u32 = 218170205u32; +pub const OID_DOT11_ATIM_WINDOW: u32 = 218170122u32; +pub const OID_DOT11_BEACON_PERIOD: u32 = 218170139u32; +pub const OID_DOT11_CCA_MODE_SUPPORTED: u32 = 218170166u32; +pub const OID_DOT11_CCA_WATCHDOG_COUNT_MAX: u32 = 218170170u32; +pub const OID_DOT11_CCA_WATCHDOG_COUNT_MIN: u32 = 218170172u32; +pub const OID_DOT11_CCA_WATCHDOG_TIMER_MAX: u32 = 218170169u32; +pub const OID_DOT11_CCA_WATCHDOG_TIMER_MIN: u32 = 218170171u32; +pub const OID_DOT11_CFP_MAX_DURATION: u32 = 218170136u32; +pub const OID_DOT11_CFP_PERIOD: u32 = 218170135u32; +pub const OID_DOT11_CF_POLLABLE: u32 = 218170134u32; +pub const OID_DOT11_CHANNEL_AGILITY_ENABLED: u32 = 218170184u32; +pub const OID_DOT11_CHANNEL_AGILITY_PRESENT: u32 = 218170183u32; +pub const OID_DOT11_COUNTERS_ENTRY: u32 = 218170149u32; +pub const OID_DOT11_COUNTRY_STRING: u32 = 218170188u32; +pub const OID_DOT11_CURRENT_ADDRESS: u32 = 218171138u32; +pub const OID_DOT11_CURRENT_CCA_MODE: u32 = 218170167u32; +pub const OID_DOT11_CURRENT_CHANNEL: u32 = 218170165u32; +pub const OID_DOT11_CURRENT_CHANNEL_NUMBER: u32 = 218170159u32; +pub const OID_DOT11_CURRENT_DWELL_TIME: u32 = 218170161u32; +pub const OID_DOT11_CURRENT_FREQUENCY: u32 = 218170178u32; +pub const OID_DOT11_CURRENT_INDEX: u32 = 218170164u32; +pub const OID_DOT11_CURRENT_OFFLOAD_CAPABILITY: u32 = 218170113u32; +pub const OID_DOT11_CURRENT_OPERATION_MODE: u32 = 218170120u32; +pub const OID_DOT11_CURRENT_OPTIONAL_CAPABILITY: u32 = 218170131u32; +pub const OID_DOT11_CURRENT_PACKET_FILTER: u32 = 218170121u32; +pub const OID_DOT11_CURRENT_PATTERN: u32 = 218170163u32; +pub const OID_DOT11_CURRENT_PHY_TYPE: u32 = 218170124u32; +pub const OID_DOT11_CURRENT_REG_DOMAIN: u32 = 218170151u32; +pub const OID_DOT11_CURRENT_RX_ANTENNA: u32 = 218170155u32; +pub const OID_DOT11_CURRENT_SET: u32 = 218170162u32; +pub const OID_DOT11_CURRENT_TX_ANTENNA: u32 = 218170153u32; +pub const OID_DOT11_CURRENT_TX_POWER_LEVEL: u32 = 218170157u32; +pub const OID_DOT11_DEFAULT_WEP_OFFLOAD: u32 = 218170116u32; +pub const OID_DOT11_DEFAULT_WEP_UPLOAD: u32 = 218170117u32; +pub const OID_DOT11_DIVERSITY_SELECTION_RX: u32 = 218170176u32; +pub const OID_DOT11_DIVERSITY_SUPPORT: u32 = 218170154u32; +pub const OID_DOT11_DSSS_OFDM_OPTION_ENABLED: u32 = 218170209u32; +pub const OID_DOT11_DSSS_OFDM_OPTION_IMPLEMENTED: u32 = 218170208u32; +pub const OID_DOT11_DTIM_PERIOD: u32 = 218170140u32; +pub const OID_DOT11_ED_THRESHOLD: u32 = 218170168u32; +pub const OID_DOT11_EHCC_CAPABILITY_ENABLED: u32 = 218170193u32; +pub const OID_DOT11_EHCC_CAPABILITY_IMPLEMENTED: u32 = 218170192u32; +pub const OID_DOT11_EHCC_NUMBER_OF_CHANNELS_FAMILY_INDEX: u32 = 218170191u32; +pub const OID_DOT11_EHCC_PRIME_RADIX: u32 = 218170190u32; +pub const OID_DOT11_ERP_PBCC_OPTION_ENABLED: u32 = 218170207u32; +pub const OID_DOT11_ERP_PBCC_OPTION_IMPLEMENTED: u32 = 218170206u32; +pub const OID_DOT11_FRAGMENTATION_THRESHOLD: u32 = 218170146u32; +pub const OID_DOT11_FREQUENCY_BANDS_SUPPORTED: u32 = 218170180u32; +pub const OID_DOT11_HOPPING_PATTERN: u32 = 218170199u32; +pub const OID_DOT11_HOP_ALGORITHM_ADOPTED: u32 = 218170194u32; +pub const OID_DOT11_HOP_MODULUS: u32 = 218170197u32; +pub const OID_DOT11_HOP_OFFSET: u32 = 218170198u32; +pub const OID_DOT11_HOP_TIME: u32 = 218170158u32; +pub const OID_DOT11_HR_CCA_MODE_SUPPORTED: u32 = 218170185u32; +pub const OID_DOT11_JOIN_REQUEST: u32 = 218170125u32; +pub const OID_DOT11_LONG_RETRY_LIMIT: u32 = 218170145u32; +pub const OID_DOT11_MAC_ADDRESS: u32 = 218170142u32; +pub const OID_DOT11_MAXIMUM_LIST_SIZE: u32 = 218171141u32; +pub const OID_DOT11_MAX_DWELL_TIME: u32 = 218170160u32; +pub const OID_DOT11_MAX_MAC_ADDRESS_STATES: u32 = 218170212u32; +pub const OID_DOT11_MAX_RECEIVE_LIFETIME: u32 = 218170148u32; +pub const OID_DOT11_MAX_TRANSMIT_MSDU_LIFETIME: u32 = 218170147u32; +pub const OID_DOT11_MEDIUM_OCCUPANCY_LIMIT: u32 = 218170133u32; +pub const OID_DOT11_MPDU_MAX_LENGTH: u32 = 218170118u32; +pub const OID_DOT11_MULTICAST_LIST: u32 = 218171140u32; +pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY: u32 = 218170189u32; +pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY_ENABLED: u32 = 218170187u32; +pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY_IMPLEMENTED: u32 = 218170186u32; +pub const OID_DOT11_NDIS_START: u32 = 218170112u32; +pub const OID_DOT11_NIC_POWER_STATE: u32 = 218170129u32; +pub const OID_DOT11_NIC_SPECIFIC_EXTENSION: u32 = 218170204u32; +pub const OID_DOT11_NUMBER_OF_HOPPING_SETS: u32 = 218170196u32; +pub const OID_DOT11_OFFLOAD_CAPABILITY: u32 = 218170112u32; +pub const OID_DOT11_OPERATIONAL_RATE_SET: u32 = 218170138u32; +pub const OID_DOT11_OPERATION_MODE_CAPABILITY: u32 = 218170119u32; +pub const OID_DOT11_OPTIONAL_CAPABILITY: u32 = 218170130u32; +pub const OID_DOT11_PBCC_OPTION_IMPLEMENTED: u32 = 218170182u32; +pub const OID_DOT11_PERMANENT_ADDRESS: u32 = 218171139u32; +pub const OID_DOT11_POWER_MGMT_MODE: u32 = 218170137u32; +pub const OID_DOT11_PRIVATE_OIDS_START: u32 = 218171136u32; +pub const OID_DOT11_QOS_TX_DURATION: u32 = 218170219u32; +pub const OID_DOT11_QOS_TX_MEDIUM_TIME: u32 = 218170220u32; +pub const OID_DOT11_QOS_TX_QUEUES_SUPPORTED: u32 = 218170218u32; +pub const OID_DOT11_RANDOM_TABLE_FIELD_NUMBER: u32 = 218170200u32; +pub const OID_DOT11_RANDOM_TABLE_FLAG: u32 = 218170195u32; +pub const OID_DOT11_RECV_SENSITIVITY_LIST: u32 = 218170213u32; +pub const OID_DOT11_REG_DOMAINS_SUPPORT_VALUE: u32 = 218170173u32; +pub const OID_DOT11_RESET_REQUEST: u32 = 218170128u32; +pub const OID_DOT11_RF_USAGE: u32 = 218170203u32; +pub const OID_DOT11_RSSI_RANGE: u32 = 218170202u32; +pub const OID_DOT11_RTS_THRESHOLD: u32 = 218170143u32; +pub const OID_DOT11_SCAN_REQUEST: u32 = 218170123u32; +pub const OID_DOT11_SHORT_PREAMBLE_OPTION_IMPLEMENTED: u32 = 218170181u32; +pub const OID_DOT11_SHORT_RETRY_LIMIT: u32 = 218170144u32; +pub const OID_DOT11_SHORT_SLOT_TIME_OPTION_ENABLED: u32 = 218170211u32; +pub const OID_DOT11_SHORT_SLOT_TIME_OPTION_IMPLEMENTED: u32 = 218170210u32; +pub const OID_DOT11_START_REQUEST: u32 = 218170126u32; +pub const OID_DOT11_STATION_ID: u32 = 218170132u32; +pub const OID_DOT11_SUPPORTED_DATA_RATES_VALUE: u32 = 218170177u32; +pub const OID_DOT11_SUPPORTED_DSSS_CHANNEL_LIST: u32 = 218170222u32; +pub const OID_DOT11_SUPPORTED_OFDM_FREQUENCY_LIST: u32 = 218170221u32; +pub const OID_DOT11_SUPPORTED_PHY_TYPES: u32 = 218170150u32; +pub const OID_DOT11_SUPPORTED_POWER_LEVELS: u32 = 218170156u32; +pub const OID_DOT11_SUPPORTED_RX_ANTENNA: u32 = 218170175u32; +pub const OID_DOT11_SUPPORTED_TX_ANTENNA: u32 = 218170174u32; +pub const OID_DOT11_TEMP_TYPE: u32 = 218170152u32; +pub const OID_DOT11_TI_THRESHOLD: u32 = 218170179u32; +pub const OID_DOT11_UPDATE_IE: u32 = 218170127u32; +pub const OID_DOT11_WEP_ICV_ERROR_COUNT: u32 = 218170141u32; +pub const OID_DOT11_WEP_OFFLOAD: u32 = 218170114u32; +pub const OID_DOT11_WEP_UPLOAD: u32 = 218170115u32; +pub const OID_DOT11_WME_AC_PARAMETERS: u32 = 218170216u32; +pub const OID_DOT11_WME_ENABLED: u32 = 218170215u32; +pub const OID_DOT11_WME_IMPLEMENTED: u32 = 218170214u32; +pub const OID_DOT11_WME_UPDATE_IE: u32 = 218170217u32; +pub const OID_DOT11_WPA_TSC: u32 = 218170201u32; +pub const ONEX_AUTHENTICATOR_NO_LONGER_PRESENT: ONEX_REASON_CODE = 327686i32; +pub const ONEX_EAP_FAILURE_RECEIVED: ONEX_REASON_CODE = 327685i32; +pub const ONEX_IDENTITY_NOT_FOUND: ONEX_REASON_CODE = 327682i32; +pub const ONEX_NO_RESPONSE_TO_IDENTITY: ONEX_REASON_CODE = 327687i32; +pub const ONEX_PROFILE_DISALLOWED_EAP_TYPE: ONEX_REASON_CODE = 327690i32; +pub const ONEX_PROFILE_EXPIRED_EXPLICIT_CREDENTIALS: ONEX_REASON_CODE = 327699i32; +pub const ONEX_PROFILE_INVALID_AUTH_MODE: ONEX_REASON_CODE = 327695i32; +pub const ONEX_PROFILE_INVALID_EAP_CONNECTION_PROPERTIES: ONEX_REASON_CODE = 327696i32; +pub const ONEX_PROFILE_INVALID_EAP_TYPE_OR_FLAG: ONEX_REASON_CODE = 327691i32; +pub const ONEX_PROFILE_INVALID_EXPLICIT_CREDENTIALS: ONEX_REASON_CODE = 327698i32; +pub const ONEX_PROFILE_INVALID_LENGTH: ONEX_REASON_CODE = 327689i32; +pub const ONEX_PROFILE_INVALID_ONEX_FLAGS: ONEX_REASON_CODE = 327692i32; +pub const ONEX_PROFILE_INVALID_SUPPLICANT_MODE: ONEX_REASON_CODE = 327694i32; +pub const ONEX_PROFILE_INVALID_TIMER_VALUE: ONEX_REASON_CODE = 327693i32; +pub const ONEX_PROFILE_VERSION_NOT_SUPPORTED: ONEX_REASON_CODE = 327688i32; +pub const ONEX_REASON_CODE_SUCCESS: ONEX_REASON_CODE = 0i32; +pub const ONEX_REASON_START: ONEX_REASON_CODE = 327680i32; +pub const ONEX_UI_CANCELLED: ONEX_REASON_CODE = 327697i32; +pub const ONEX_UI_DISABLED: ONEX_REASON_CODE = 327683i32; +pub const ONEX_UI_FAILURE: ONEX_REASON_CODE = 327684i32; +pub const ONEX_UI_NOT_PERMITTED: ONEX_REASON_CODE = 327700i32; +pub const ONEX_UNABLE_TO_IDENTIFY_USER: ONEX_REASON_CODE = 327681i32; +pub const OneXAuthFailure: ONEX_AUTH_STATUS = 4i32; +pub const OneXAuthIdentityExplicitUser: ONEX_AUTH_IDENTITY = 3i32; +pub const OneXAuthIdentityGuest: ONEX_AUTH_IDENTITY = 4i32; +pub const OneXAuthIdentityInvalid: ONEX_AUTH_IDENTITY = 5i32; +pub const OneXAuthIdentityMachine: ONEX_AUTH_IDENTITY = 1i32; +pub const OneXAuthIdentityNone: ONEX_AUTH_IDENTITY = 0i32; +pub const OneXAuthIdentityUser: ONEX_AUTH_IDENTITY = 2i32; +pub const OneXAuthInProgress: ONEX_AUTH_STATUS = 1i32; +pub const OneXAuthInvalid: ONEX_AUTH_STATUS = 5i32; +pub const OneXAuthNoAuthenticatorFound: ONEX_AUTH_STATUS = 2i32; +pub const OneXAuthNotStarted: ONEX_AUTH_STATUS = 0i32; +pub const OneXAuthSuccess: ONEX_AUTH_STATUS = 3i32; +pub const OneXEapMethodBackendSupportUnknown: ONEX_EAP_METHOD_BACKEND_SUPPORT = 0i32; +pub const OneXEapMethodBackendSupported: ONEX_EAP_METHOD_BACKEND_SUPPORT = 1i32; +pub const OneXEapMethodBackendUnsupported: ONEX_EAP_METHOD_BACKEND_SUPPORT = 2i32; +pub const OneXNotificationTypeAuthRestarted: ONEX_NOTIFICATION_TYPE = 2i32; +pub const OneXNotificationTypeEventInvalid: ONEX_NOTIFICATION_TYPE = 3i32; +pub const OneXNotificationTypeResultUpdate: ONEX_NOTIFICATION_TYPE = 1i32; +pub const OneXNumNotifications: ONEX_NOTIFICATION_TYPE = 3i32; +pub const OneXPublicNotificationBase: ONEX_NOTIFICATION_TYPE = 0i32; +pub const OneXRestartReasonAltCredsTrial: ONEX_AUTH_RESTART_REASON = 7i32; +pub const OneXRestartReasonInvalid: ONEX_AUTH_RESTART_REASON = 8i32; +pub const OneXRestartReasonMsmInitiated: ONEX_AUTH_RESTART_REASON = 1i32; +pub const OneXRestartReasonOneXAuthTimeout: ONEX_AUTH_RESTART_REASON = 3i32; +pub const OneXRestartReasonOneXConfigurationChanged: ONEX_AUTH_RESTART_REASON = 4i32; +pub const OneXRestartReasonOneXHeldStateTimeout: ONEX_AUTH_RESTART_REASON = 2i32; +pub const OneXRestartReasonOneXUserChanged: ONEX_AUTH_RESTART_REASON = 5i32; +pub const OneXRestartReasonPeerInitiated: ONEX_AUTH_RESTART_REASON = 0i32; +pub const OneXRestartReasonQuarantineStateChanged: ONEX_AUTH_RESTART_REASON = 6i32; +pub const WDIAG_IHV_WLAN_ID_FLAG_SECURITY_ENABLED: u32 = 1u32; +pub const WFDSVC_CONNECTION_CAPABILITY_CLIENT: u32 = 2u32; +pub const WFDSVC_CONNECTION_CAPABILITY_GO: u32 = 4u32; +pub const WFDSVC_CONNECTION_CAPABILITY_NEW: u32 = 1u32; +pub const WFD_API_VERSION: u32 = 1u32; +pub const WFD_API_VERSION_1_0: u32 = 1u32; +pub const WFD_ROLE_TYPE_CLIENT: WFD_ROLE_TYPE = 4i32; +pub const WFD_ROLE_TYPE_DEVICE: WFD_ROLE_TYPE = 1i32; +pub const WFD_ROLE_TYPE_GROUP_OWNER: WFD_ROLE_TYPE = 2i32; +pub const WFD_ROLE_TYPE_MAX: WFD_ROLE_TYPE = 5i32; +pub const WFD_ROLE_TYPE_NONE: WFD_ROLE_TYPE = 0i32; +pub const WLAN_API_VERSION: u32 = 2u32; +pub const WLAN_API_VERSION_1_0: u32 = 1u32; +pub const WLAN_API_VERSION_2_0: u32 = 2u32; +pub const WLAN_AVAILABLE_NETWORK_ANQP_SUPPORTED: u32 = 32u32; +pub const WLAN_AVAILABLE_NETWORK_AUTO_CONNECT_FAILED: u32 = 256u32; +pub const WLAN_AVAILABLE_NETWORK_CONNECTED: u32 = 1u32; +pub const WLAN_AVAILABLE_NETWORK_CONSOLE_USER_PROFILE: u32 = 4u32; +pub const WLAN_AVAILABLE_NETWORK_HAS_PROFILE: u32 = 2u32; +pub const WLAN_AVAILABLE_NETWORK_HOTSPOT2_DOMAIN: u32 = 64u32; +pub const WLAN_AVAILABLE_NETWORK_HOTSPOT2_ENABLED: u32 = 16u32; +pub const WLAN_AVAILABLE_NETWORK_HOTSPOT2_ROAMING: u32 = 128u32; +pub const WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_ADHOC_PROFILES: u32 = 1u32; +pub const WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_MANUAL_HIDDEN_PROFILES: u32 = 2u32; +pub const WLAN_AVAILABLE_NETWORK_INTERWORKING_SUPPORTED: u32 = 8u32; +pub const WLAN_CONNECTION_ADHOC_JOIN_ONLY: u32 = 2u32; +pub const WLAN_CONNECTION_EAPOL_PASSTHROUGH: u32 = 8u32; +pub const WLAN_CONNECTION_HIDDEN_NETWORK: u32 = 1u32; +pub const WLAN_CONNECTION_IGNORE_PRIVACY_BIT: u32 = 4u32; +pub const WLAN_CONNECTION_NOTIFICATION_ADHOC_NETWORK_FORMED: WLAN_CONNECTION_NOTIFICATION_FLAGS = 1u32; +pub const WLAN_CONNECTION_NOTIFICATION_CONSOLE_USER_PROFILE: WLAN_CONNECTION_NOTIFICATION_FLAGS = 4u32; +pub const WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE: u32 = 16u32; +pub const WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE_CONNECTION_MODE_AUTO: u32 = 32u32; +pub const WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE_OVERWRITE_EXISTING: u32 = 64u32; +pub const WLAN_MAX_NAME_LENGTH: u32 = 256u32; +pub const WLAN_MAX_PHY_INDEX: u32 = 64u32; +pub const WLAN_MAX_PHY_TYPE_NUMBER: u32 = 8u32; +pub const WLAN_NOTIFICATION_SOURCE_ACM: WLAN_NOTIFICATION_SOURCES = 8u32; +pub const WLAN_NOTIFICATION_SOURCE_ALL: WLAN_NOTIFICATION_SOURCES = 65535u32; +pub const WLAN_NOTIFICATION_SOURCE_DEVICE_SERVICE: WLAN_NOTIFICATION_SOURCES = 2048u32; +pub const WLAN_NOTIFICATION_SOURCE_HNWK: WLAN_NOTIFICATION_SOURCES = 128u32; +pub const WLAN_NOTIFICATION_SOURCE_IHV: WLAN_NOTIFICATION_SOURCES = 64u32; +pub const WLAN_NOTIFICATION_SOURCE_MSM: WLAN_NOTIFICATION_SOURCES = 16u32; +pub const WLAN_NOTIFICATION_SOURCE_NONE: WLAN_NOTIFICATION_SOURCES = 0u32; +pub const WLAN_NOTIFICATION_SOURCE_ONEX: WLAN_NOTIFICATION_SOURCES = 4u32; +pub const WLAN_NOTIFICATION_SOURCE_SECURITY: WLAN_NOTIFICATION_SOURCES = 32u32; +pub const WLAN_PROFILE_CONNECTION_MODE_AUTO: u32 = 131072u32; +pub const WLAN_PROFILE_CONNECTION_MODE_SET_BY_CLIENT: u32 = 65536u32; +pub const WLAN_PROFILE_GET_PLAINTEXT_KEY: u32 = 4u32; +pub const WLAN_PROFILE_GROUP_POLICY: u32 = 1u32; +pub const WLAN_PROFILE_USER: u32 = 2u32; +pub const WLAN_REASON_CODE_AC_BASE: u32 = 131072u32; +pub const WLAN_REASON_CODE_AC_CONNECT_BASE: u32 = 163840u32; +pub const WLAN_REASON_CODE_AC_END: u32 = 196607u32; +pub const WLAN_REASON_CODE_ADHOC_SECURITY_FAILURE: u32 = 229386u32; +pub const WLAN_REASON_CODE_AP_PROFILE_NOT_ALLOWED: u32 = 163856u32; +pub const WLAN_REASON_CODE_AP_PROFILE_NOT_ALLOWED_FOR_CLIENT: u32 = 163855u32; +pub const WLAN_REASON_CODE_AP_STARTING_FAILURE: u32 = 229395u32; +pub const WLAN_REASON_CODE_ASSOCIATION_FAILURE: u32 = 229378u32; +pub const WLAN_REASON_CODE_ASSOCIATION_TIMEOUT: u32 = 229379u32; +pub const WLAN_REASON_CODE_AUTO_AP_PROFILE_NOT_ALLOWED: u32 = 524313u32; +pub const WLAN_REASON_CODE_AUTO_CONNECTION_NOT_ALLOWED: u32 = 524314u32; +pub const WLAN_REASON_CODE_AUTO_SWITCH_SET_FOR_ADHOC: u32 = 524304u32; +pub const WLAN_REASON_CODE_AUTO_SWITCH_SET_FOR_MANUAL_CONNECTION: u32 = 524305u32; +pub const WLAN_REASON_CODE_BAD_MAX_NUMBER_OF_CLIENTS_FOR_AP: u32 = 524310u32; +pub const WLAN_REASON_CODE_BASE: u32 = 131072u32; +pub const WLAN_REASON_CODE_BSS_TYPE_NOT_ALLOWED: u32 = 163845u32; +pub const WLAN_REASON_CODE_BSS_TYPE_UNMATCH: u32 = 196611u32; +pub const WLAN_REASON_CODE_CONFLICT_SECURITY: u32 = 524299u32; +pub const WLAN_REASON_CODE_CONNECT_CALL_FAIL: u32 = 163849u32; +pub const WLAN_REASON_CODE_DATARATE_UNMATCH: u32 = 196613u32; +pub const WLAN_REASON_CODE_DISCONNECT_TIMEOUT: u32 = 229391u32; +pub const WLAN_REASON_CODE_DRIVER_DISCONNECTED: u32 = 229387u32; +pub const WLAN_REASON_CODE_DRIVER_OPERATION_FAILURE: u32 = 229388u32; +pub const WLAN_REASON_CODE_GP_DENIED: u32 = 163843u32; +pub const WLAN_REASON_CODE_HOTSPOT2_PROFILE_DENIED: u32 = 163857u32; +pub const WLAN_REASON_CODE_HOTSPOT2_PROFILE_NOT_ALLOWED: u32 = 524315u32; +pub const WLAN_REASON_CODE_IHV_CONNECTIVITY_NOT_SUPPORTED: u32 = 524309u32; +pub const WLAN_REASON_CODE_IHV_NOT_AVAILABLE: u32 = 229389u32; +pub const WLAN_REASON_CODE_IHV_NOT_RESPONDING: u32 = 229390u32; +pub const WLAN_REASON_CODE_IHV_OUI_MISMATCH: u32 = 524296u32; +pub const WLAN_REASON_CODE_IHV_OUI_MISSING: u32 = 524297u32; +pub const WLAN_REASON_CODE_IHV_SECURITY_NOT_SUPPORTED: u32 = 524295u32; +pub const WLAN_REASON_CODE_IHV_SECURITY_ONEX_MISSING: u32 = 524306u32; +pub const WLAN_REASON_CODE_IHV_SETTINGS_MISSING: u32 = 524298u32; +pub const WLAN_REASON_CODE_INTERNAL_FAILURE: u32 = 229392u32; +pub const WLAN_REASON_CODE_INVALID_ADHOC_CONNECTION_MODE: u32 = 524302u32; +pub const WLAN_REASON_CODE_INVALID_BSS_TYPE: u32 = 524301u32; +pub const WLAN_REASON_CODE_INVALID_CHANNEL: u32 = 524311u32; +pub const WLAN_REASON_CODE_INVALID_PHY_TYPE: u32 = 524293u32; +pub const WLAN_REASON_CODE_INVALID_PROFILE_NAME: u32 = 524291u32; +pub const WLAN_REASON_CODE_INVALID_PROFILE_SCHEMA: u32 = 524289u32; +pub const WLAN_REASON_CODE_INVALID_PROFILE_TYPE: u32 = 524292u32; +pub const WLAN_REASON_CODE_IN_BLOCKED_LIST: u32 = 163847u32; +pub const WLAN_REASON_CODE_IN_FAILED_LIST: u32 = 163846u32; +pub const WLAN_REASON_CODE_KEY_MISMATCH: u32 = 163853u32; +pub const WLAN_REASON_CODE_MSMSEC_AUTH_START_TIMEOUT: u32 = 294914u32; +pub const WLAN_REASON_CODE_MSMSEC_AUTH_SUCCESS_TIMEOUT: u32 = 294915u32; +pub const WLAN_REASON_CODE_MSMSEC_AUTH_WCN_COMPLETED: u32 = 294937u32; +pub const WLAN_REASON_CODE_MSMSEC_BASE: u32 = 262144u32; +pub const WLAN_REASON_CODE_MSMSEC_CANCELLED: u32 = 294929u32; +pub const WLAN_REASON_CODE_MSMSEC_CAPABILITY_DISCOVERY: u32 = 262165u32; +pub const WLAN_REASON_CODE_MSMSEC_CAPABILITY_MFP_NW_NIC: u32 = 262181u32; +pub const WLAN_REASON_CODE_MSMSEC_CAPABILITY_NETWORK: u32 = 262162u32; +pub const WLAN_REASON_CODE_MSMSEC_CAPABILITY_NIC: u32 = 262163u32; +pub const WLAN_REASON_CODE_MSMSEC_CAPABILITY_PROFILE: u32 = 262164u32; +pub const WLAN_REASON_CODE_MSMSEC_CAPABILITY_PROFILE_AUTH: u32 = 262174u32; +pub const WLAN_REASON_CODE_MSMSEC_CAPABILITY_PROFILE_CIPHER: u32 = 262175u32; +pub const WLAN_REASON_CODE_MSMSEC_CAPABILITY_PROFILE_SAFE_MODE_NIC: u32 = 262177u32; +pub const WLAN_REASON_CODE_MSMSEC_CAPABILITY_PROFILE_SAFE_MODE_NW: u32 = 262178u32; +pub const WLAN_REASON_CODE_MSMSEC_CONNECT_BASE: u32 = 294912u32; +pub const WLAN_REASON_CODE_MSMSEC_DOWNGRADE_DETECTED: u32 = 294931u32; +pub const WLAN_REASON_CODE_MSMSEC_END: u32 = 327679u32; +pub const WLAN_REASON_CODE_MSMSEC_FORCED_FAILURE: u32 = 294933u32; +pub const WLAN_REASON_CODE_MSMSEC_G1_MISSING_GRP_KEY: u32 = 294925u32; +pub const WLAN_REASON_CODE_MSMSEC_G1_MISSING_KEY_DATA: u32 = 294924u32; +pub const WLAN_REASON_CODE_MSMSEC_G1_MISSING_MGMT_GRP_KEY: u32 = 294939u32; +pub const WLAN_REASON_CODE_MSMSEC_KEY_FORMAT: u32 = 294930u32; +pub const WLAN_REASON_CODE_MSMSEC_KEY_START_TIMEOUT: u32 = 294916u32; +pub const WLAN_REASON_CODE_MSMSEC_KEY_SUCCESS_TIMEOUT: u32 = 294917u32; +pub const WLAN_REASON_CODE_MSMSEC_M2_MISSING_IE: u32 = 294936u32; +pub const WLAN_REASON_CODE_MSMSEC_M2_MISSING_KEY_DATA: u32 = 294935u32; +pub const WLAN_REASON_CODE_MSMSEC_M3_MISSING_GRP_KEY: u32 = 294920u32; +pub const WLAN_REASON_CODE_MSMSEC_M3_MISSING_IE: u32 = 294919u32; +pub const WLAN_REASON_CODE_MSMSEC_M3_MISSING_KEY_DATA: u32 = 294918u32; +pub const WLAN_REASON_CODE_MSMSEC_M3_MISSING_MGMT_GRP_KEY: u32 = 294938u32; +pub const WLAN_REASON_CODE_MSMSEC_M3_TOO_MANY_RSNIE: u32 = 294934u32; +pub const WLAN_REASON_CODE_MSMSEC_MAX: u32 = 327679u32; +pub const WLAN_REASON_CODE_MSMSEC_MIN: u32 = 262144u32; +pub const WLAN_REASON_CODE_MSMSEC_MIXED_CELL: u32 = 262169u32; +pub const WLAN_REASON_CODE_MSMSEC_NIC_FAILURE: u32 = 294928u32; +pub const WLAN_REASON_CODE_MSMSEC_NO_AUTHENTICATOR: u32 = 294927u32; +pub const WLAN_REASON_CODE_MSMSEC_NO_PAIRWISE_KEY: u32 = 294923u32; +pub const WLAN_REASON_CODE_MSMSEC_PEER_INDICATED_INSECURE: u32 = 294926u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_AUTH_TIMERS_INVALID: u32 = 262170u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_DUPLICATE_AUTH_CIPHER: u32 = 262151u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_AUTH_CIPHER: u32 = 262153u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_GKEY_INTV: u32 = 262171u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_KEY_INDEX: u32 = 262145u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PMKCACHE_MODE: u32 = 262156u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PMKCACHE_SIZE: u32 = 262157u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PMKCACHE_TTL: u32 = 262158u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PREAUTH_MODE: u32 = 262159u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PREAUTH_THROTTLE: u32 = 262160u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_KEYMATERIAL_CHAR: u32 = 262167u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_KEY_LENGTH: u32 = 262147u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_KEY_UNMAPPED_CHAR: u32 = 262173u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_NO_AUTH_CIPHER_SPECIFIED: u32 = 262149u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_ONEX_DISABLED: u32 = 262154u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_ONEX_ENABLED: u32 = 262155u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_PASSPHRASE_CHAR: u32 = 262166u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_PREAUTH_ONLY_ENABLED: u32 = 262161u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_PSK_LENGTH: u32 = 262148u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_PSK_PRESENT: u32 = 262146u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_RAWDATA_INVALID: u32 = 262152u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_SAFE_MODE: u32 = 262176u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_TOO_MANY_AUTH_CIPHER_SPECIFIED: u32 = 262150u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_UNSUPPORTED_AUTH: u32 = 262179u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_UNSUPPORTED_CIPHER: u32 = 262180u32; +pub const WLAN_REASON_CODE_MSMSEC_PROFILE_WRONG_KEYTYPE: u32 = 262168u32; +pub const WLAN_REASON_CODE_MSMSEC_PR_IE_MATCHING: u32 = 294921u32; +pub const WLAN_REASON_CODE_MSMSEC_PSK_MISMATCH_SUSPECTED: u32 = 294932u32; +pub const WLAN_REASON_CODE_MSMSEC_SEC_IE_MATCHING: u32 = 294922u32; +pub const WLAN_REASON_CODE_MSMSEC_TRANSITION_NETWORK: u32 = 262172u32; +pub const WLAN_REASON_CODE_MSMSEC_UI_REQUEST_FAILURE: u32 = 294913u32; +pub const WLAN_REASON_CODE_MSM_BASE: u32 = 196608u32; +pub const WLAN_REASON_CODE_MSM_CONNECT_BASE: u32 = 229376u32; +pub const WLAN_REASON_CODE_MSM_END: u32 = 262143u32; +pub const WLAN_REASON_CODE_MSM_SECURITY_MISSING: u32 = 524294u32; +pub const WLAN_REASON_CODE_NETWORK_NOT_AVAILABLE: u32 = 163851u32; +pub const WLAN_REASON_CODE_NETWORK_NOT_COMPATIBLE: u32 = 131073u32; +pub const WLAN_REASON_CODE_NON_BROADCAST_SET_FOR_ADHOC: u32 = 524303u32; +pub const WLAN_REASON_CODE_NOT_VISIBLE: u32 = 163842u32; +pub const WLAN_REASON_CODE_NO_AUTO_CONNECTION: u32 = 163841u32; +pub const WLAN_REASON_CODE_NO_VISIBLE_AP: u32 = 229396u32; +pub const WLAN_REASON_CODE_OPERATION_MODE_NOT_SUPPORTED: u32 = 524312u32; +pub const WLAN_REASON_CODE_PHY_TYPE_UNMATCH: u32 = 196612u32; +pub const WLAN_REASON_CODE_PRE_SECURITY_FAILURE: u32 = 229380u32; +pub const WLAN_REASON_CODE_PROFILE_BASE: u32 = 524288u32; +pub const WLAN_REASON_CODE_PROFILE_CHANGED_OR_DELETED: u32 = 163852u32; +pub const WLAN_REASON_CODE_PROFILE_CONNECT_BASE: u32 = 557056u32; +pub const WLAN_REASON_CODE_PROFILE_END: u32 = 589823u32; +pub const WLAN_REASON_CODE_PROFILE_MISSING: u32 = 524290u32; +pub const WLAN_REASON_CODE_PROFILE_NOT_COMPATIBLE: u32 = 131074u32; +pub const WLAN_REASON_CODE_PROFILE_SSID_INVALID: u32 = 524307u32; +pub const WLAN_REASON_CODE_RANGE_SIZE: u32 = 65536u32; +pub const WLAN_REASON_CODE_RESERVED_BASE: u32 = 720896u32; +pub const WLAN_REASON_CODE_RESERVED_END: u32 = 786431u32; +pub const WLAN_REASON_CODE_ROAMING_FAILURE: u32 = 229384u32; +pub const WLAN_REASON_CODE_ROAMING_SECURITY_FAILURE: u32 = 229385u32; +pub const WLAN_REASON_CODE_SCAN_CALL_FAIL: u32 = 163850u32; +pub const WLAN_REASON_CODE_SECURITY_FAILURE: u32 = 229382u32; +pub const WLAN_REASON_CODE_SECURITY_MISSING: u32 = 524300u32; +pub const WLAN_REASON_CODE_SECURITY_TIMEOUT: u32 = 229383u32; +pub const WLAN_REASON_CODE_SSID_LIST_TOO_LONG: u32 = 163848u32; +pub const WLAN_REASON_CODE_START_SECURITY_FAILURE: u32 = 229381u32; +pub const WLAN_REASON_CODE_SUCCESS: u32 = 0u32; +pub const WLAN_REASON_CODE_TOO_MANY_SECURITY_ATTEMPTS: u32 = 229394u32; +pub const WLAN_REASON_CODE_TOO_MANY_SSID: u32 = 524308u32; +pub const WLAN_REASON_CODE_UI_REQUEST_TIMEOUT: u32 = 229393u32; +pub const WLAN_REASON_CODE_UNKNOWN: u32 = 65537u32; +pub const WLAN_REASON_CODE_UNSUPPORTED_SECURITY_SET: u32 = 196610u32; +pub const WLAN_REASON_CODE_UNSUPPORTED_SECURITY_SET_BY_OS: u32 = 196609u32; +pub const WLAN_REASON_CODE_USER_CANCELLED: u32 = 229377u32; +pub const WLAN_REASON_CODE_USER_DENIED: u32 = 163844u32; +pub const WLAN_REASON_CODE_USER_NOT_RESPOND: u32 = 163854u32; +pub const WLAN_SECURABLE_OBJECT_COUNT: WLAN_SECURABLE_OBJECT = 17i32; +pub const WLAN_SET_EAPHOST_DATA_ALL_USERS: WLAN_SET_EAPHOST_FLAGS = 1u32; +pub const WLAN_UI_API_INITIAL_VERSION: u32 = 1u32; +pub const WLAN_UI_API_VERSION: u32 = 1u32; +pub const WLAdvPage: WL_DISPLAY_PAGES = 2i32; +pub const WLConnectionPage: WL_DISPLAY_PAGES = 0i32; +pub const WLSecurityPage: WL_DISPLAY_PAGES = 1i32; +pub const ch_description_type_center_frequency: CH_DESCRIPTION_TYPE = 2i32; +pub const ch_description_type_logical: CH_DESCRIPTION_TYPE = 1i32; +pub const ch_description_type_phy_specific: CH_DESCRIPTION_TYPE = 3i32; +pub const connection_phase_any: DOT11EXT_IHV_CONNECTION_PHASE = 0i32; +pub const connection_phase_initial_connection: DOT11EXT_IHV_CONNECTION_PHASE = 1i32; +pub const connection_phase_post_l3_connection: DOT11EXT_IHV_CONNECTION_PHASE = 2i32; +pub const dot11_AC_param_BE: DOT11_AC_PARAM = 0i32; +pub const dot11_AC_param_BK: DOT11_AC_PARAM = 1i32; +pub const dot11_AC_param_VI: DOT11_AC_PARAM = 2i32; +pub const dot11_AC_param_VO: DOT11_AC_PARAM = 3i32; +pub const dot11_AC_param_max: DOT11_AC_PARAM = 4i32; +pub const dot11_ANQP_query_result_access_issues: DOT11_ANQP_QUERY_RESULT = 7i32; +pub const dot11_ANQP_query_result_advertisement_protocol_not_supported_on_remote: DOT11_ANQP_QUERY_RESULT = 4i32; +pub const dot11_ANQP_query_result_advertisement_server_not_responding: DOT11_ANQP_QUERY_RESULT = 6i32; +pub const dot11_ANQP_query_result_failure: DOT11_ANQP_QUERY_RESULT = 1i32; +pub const dot11_ANQP_query_result_gas_protocol_failure: DOT11_ANQP_QUERY_RESULT = 5i32; +pub const dot11_ANQP_query_result_resources: DOT11_ANQP_QUERY_RESULT = 3i32; +pub const dot11_ANQP_query_result_success: DOT11_ANQP_QUERY_RESULT = 0i32; +pub const dot11_ANQP_query_result_timed_out: DOT11_ANQP_QUERY_RESULT = 2i32; +pub const dot11_BSS_type_any: DOT11_BSS_TYPE = 3i32; +pub const dot11_BSS_type_independent: DOT11_BSS_TYPE = 2i32; +pub const dot11_BSS_type_infrastructure: DOT11_BSS_TYPE = 1i32; +pub const dot11_assoc_state_auth_assoc: DOT11_ASSOCIATION_STATE = 3i32; +pub const dot11_assoc_state_auth_unassoc: DOT11_ASSOCIATION_STATE = 2i32; +pub const dot11_assoc_state_unauth_unassoc: DOT11_ASSOCIATION_STATE = 1i32; +pub const dot11_assoc_state_zero: DOT11_ASSOCIATION_STATE = 0i32; +pub const dot11_band_2p4g: DOT11_BAND = 1i32; +pub const dot11_band_4p9g: DOT11_BAND = 2i32; +pub const dot11_band_5g: DOT11_BAND = 3i32; +pub const dot11_diversity_support_dynamic: DOT11_DIVERSITY_SUPPORT = 3i32; +pub const dot11_diversity_support_fixedlist: DOT11_DIVERSITY_SUPPORT = 1i32; +pub const dot11_diversity_support_notsupported: DOT11_DIVERSITY_SUPPORT = 2i32; +pub const dot11_diversity_support_unknown: DOT11_DIVERSITY_SUPPORT = 0i32; +pub const dot11_hop_algo_current: DOT11_HOP_ALGO_ADOPTED = 0i32; +pub const dot11_hop_algo_hcc: DOT11_HOP_ALGO_ADOPTED = 2i32; +pub const dot11_hop_algo_hop_index: DOT11_HOP_ALGO_ADOPTED = 1i32; +pub const dot11_key_direction_both: DOT11_KEY_DIRECTION = 1i32; +pub const dot11_key_direction_inbound: DOT11_KEY_DIRECTION = 2i32; +pub const dot11_key_direction_outbound: DOT11_KEY_DIRECTION = 3i32; +pub const dot11_manufacturing_callback_IHV_end: DOT11_MANUFACTURING_CALLBACK_TYPE = -1i32; +pub const dot11_manufacturing_callback_IHV_start: DOT11_MANUFACTURING_CALLBACK_TYPE = -2147483648i32; +pub const dot11_manufacturing_callback_self_test_complete: DOT11_MANUFACTURING_CALLBACK_TYPE = 1i32; +pub const dot11_manufacturing_callback_sleep_complete: DOT11_MANUFACTURING_CALLBACK_TYPE = 2i32; +pub const dot11_manufacturing_callback_unknown: DOT11_MANUFACTURING_CALLBACK_TYPE = 0i32; +pub const dot11_manufacturing_test_IHV_end: DOT11_MANUFACTURING_TEST_TYPE = -1i32; +pub const dot11_manufacturing_test_IHV_start: DOT11_MANUFACTURING_TEST_TYPE = -2147483648i32; +pub const dot11_manufacturing_test_awake: DOT11_MANUFACTURING_TEST_TYPE = 9i32; +pub const dot11_manufacturing_test_query_adc: DOT11_MANUFACTURING_TEST_TYPE = 5i32; +pub const dot11_manufacturing_test_query_data: DOT11_MANUFACTURING_TEST_TYPE = 7i32; +pub const dot11_manufacturing_test_rx: DOT11_MANUFACTURING_TEST_TYPE = 3i32; +pub const dot11_manufacturing_test_self_query_result: DOT11_MANUFACTURING_TEST_TYPE = 2i32; +pub const dot11_manufacturing_test_self_start: DOT11_MANUFACTURING_TEST_TYPE = 1i32; +pub const dot11_manufacturing_test_set_data: DOT11_MANUFACTURING_TEST_TYPE = 6i32; +pub const dot11_manufacturing_test_sleep: DOT11_MANUFACTURING_TEST_TYPE = 8i32; +pub const dot11_manufacturing_test_tx: DOT11_MANUFACTURING_TEST_TYPE = 4i32; +pub const dot11_manufacturing_test_unknown: DOT11_MANUFACTURING_TEST_TYPE = 0i32; +pub const dot11_offload_type_auth: DOT11_OFFLOAD_TYPE = 2i32; +pub const dot11_offload_type_wep: DOT11_OFFLOAD_TYPE = 1i32; +pub const dot11_phy_type_IHV_end: DOT11_PHY_TYPE = -1i32; +pub const dot11_phy_type_IHV_start: DOT11_PHY_TYPE = -2147483648i32; +pub const dot11_phy_type_any: DOT11_PHY_TYPE = 0i32; +pub const dot11_phy_type_dmg: DOT11_PHY_TYPE = 9i32; +pub const dot11_phy_type_dsss: DOT11_PHY_TYPE = 2i32; +pub const dot11_phy_type_eht: DOT11_PHY_TYPE = 11i32; +pub const dot11_phy_type_erp: DOT11_PHY_TYPE = 6i32; +pub const dot11_phy_type_fhss: DOT11_PHY_TYPE = 1i32; +pub const dot11_phy_type_he: DOT11_PHY_TYPE = 10i32; +pub const dot11_phy_type_hrdsss: DOT11_PHY_TYPE = 5i32; +pub const dot11_phy_type_ht: DOT11_PHY_TYPE = 7i32; +pub const dot11_phy_type_irbaseband: DOT11_PHY_TYPE = 3i32; +pub const dot11_phy_type_ofdm: DOT11_PHY_TYPE = 4i32; +pub const dot11_phy_type_unknown: DOT11_PHY_TYPE = 0i32; +pub const dot11_phy_type_vht: DOT11_PHY_TYPE = 8i32; +pub const dot11_power_mode_active: DOT11_POWER_MODE = 1i32; +pub const dot11_power_mode_powersave: DOT11_POWER_MODE = 2i32; +pub const dot11_power_mode_reason_compliant_AP: DOT11_POWER_MODE_REASON = 3i32; +pub const dot11_power_mode_reason_compliant_WFD_device: DOT11_POWER_MODE_REASON = 4i32; +pub const dot11_power_mode_reason_legacy_WFD_device: DOT11_POWER_MODE_REASON = 2i32; +pub const dot11_power_mode_reason_no_change: DOT11_POWER_MODE_REASON = 0i32; +pub const dot11_power_mode_reason_noncompliant_AP: DOT11_POWER_MODE_REASON = 1i32; +pub const dot11_power_mode_reason_others: DOT11_POWER_MODE_REASON = 5i32; +pub const dot11_power_mode_unknown: DOT11_POWER_MODE = 0i32; +pub const dot11_radio_state_off: DOT11_RADIO_STATE = 2i32; +pub const dot11_radio_state_on: DOT11_RADIO_STATE = 1i32; +pub const dot11_radio_state_unknown: DOT11_RADIO_STATE = 0i32; +pub const dot11_reset_type_mac: DOT11_RESET_TYPE = 2i32; +pub const dot11_reset_type_phy: DOT11_RESET_TYPE = 1i32; +pub const dot11_reset_type_phy_and_mac: DOT11_RESET_TYPE = 3i32; +pub const dot11_scan_type_active: DOT11_SCAN_TYPE = 1i32; +pub const dot11_scan_type_auto: DOT11_SCAN_TYPE = 3i32; +pub const dot11_scan_type_forced: DOT11_SCAN_TYPE = -2147483648i32; +pub const dot11_scan_type_passive: DOT11_SCAN_TYPE = 2i32; +pub const dot11_temp_type_1: DOT11_TEMP_TYPE = 1i32; +pub const dot11_temp_type_2: DOT11_TEMP_TYPE = 2i32; +pub const dot11_temp_type_unknown: DOT11_TEMP_TYPE = 0i32; +pub const dot11_update_ie_op_create_replace: DOT11_UPDATE_IE_OP = 1i32; +pub const dot11_update_ie_op_delete: DOT11_UPDATE_IE_OP = 2i32; +pub const dot11_wfd_discover_type_auto: DOT11_WFD_DISCOVER_TYPE = 3i32; +pub const dot11_wfd_discover_type_find_only: DOT11_WFD_DISCOVER_TYPE = 2i32; +pub const dot11_wfd_discover_type_forced: DOT11_WFD_DISCOVER_TYPE = -2147483648i32; +pub const dot11_wfd_discover_type_scan_only: DOT11_WFD_DISCOVER_TYPE = 1i32; +pub const dot11_wfd_discover_type_scan_social_channels: DOT11_WFD_DISCOVER_TYPE = 4i32; +pub const dot11_wfd_scan_type_active: DOT11_WFD_SCAN_TYPE = 1i32; +pub const dot11_wfd_scan_type_auto: DOT11_WFD_SCAN_TYPE = 3i32; +pub const dot11_wfd_scan_type_passive: DOT11_WFD_SCAN_TYPE = 2i32; +pub const wlan_adhoc_network_state_connected: WLAN_ADHOC_NETWORK_STATE = 1i32; +pub const wlan_adhoc_network_state_formed: WLAN_ADHOC_NETWORK_STATE = 0i32; +pub const wlan_autoconf_opcode_allow_explicit_creds: WLAN_AUTOCONF_OPCODE = 4i32; +pub const wlan_autoconf_opcode_allow_virtual_station_extensibility: WLAN_AUTOCONF_OPCODE = 6i32; +pub const wlan_autoconf_opcode_block_period: WLAN_AUTOCONF_OPCODE = 5i32; +pub const wlan_autoconf_opcode_end: WLAN_AUTOCONF_OPCODE = 7i32; +pub const wlan_autoconf_opcode_only_use_gp_profiles_for_allowed_networks: WLAN_AUTOCONF_OPCODE = 3i32; +pub const wlan_autoconf_opcode_power_setting: WLAN_AUTOCONF_OPCODE = 2i32; +pub const wlan_autoconf_opcode_show_denied_networks: WLAN_AUTOCONF_OPCODE = 1i32; +pub const wlan_autoconf_opcode_start: WLAN_AUTOCONF_OPCODE = 0i32; +pub const wlan_connection_mode_auto: WLAN_CONNECTION_MODE = 4i32; +pub const wlan_connection_mode_discovery_secure: WLAN_CONNECTION_MODE = 2i32; +pub const wlan_connection_mode_discovery_unsecure: WLAN_CONNECTION_MODE = 3i32; +pub const wlan_connection_mode_invalid: WLAN_CONNECTION_MODE = 5i32; +pub const wlan_connection_mode_profile: WLAN_CONNECTION_MODE = 0i32; +pub const wlan_connection_mode_temporary_profile: WLAN_CONNECTION_MODE = 1i32; +pub const wlan_filter_list_type_gp_deny: WLAN_FILTER_LIST_TYPE = 1i32; +pub const wlan_filter_list_type_gp_permit: WLAN_FILTER_LIST_TYPE = 0i32; +pub const wlan_filter_list_type_user_deny: WLAN_FILTER_LIST_TYPE = 3i32; +pub const wlan_filter_list_type_user_permit: WLAN_FILTER_LIST_TYPE = 2i32; +pub const wlan_hosted_network_active: WLAN_HOSTED_NETWORK_STATE = 2i32; +pub const wlan_hosted_network_idle: WLAN_HOSTED_NETWORK_STATE = 1i32; +pub const wlan_hosted_network_opcode_connection_settings: WLAN_HOSTED_NETWORK_OPCODE = 0i32; +pub const wlan_hosted_network_opcode_enable: WLAN_HOSTED_NETWORK_OPCODE = 3i32; +pub const wlan_hosted_network_opcode_security_settings: WLAN_HOSTED_NETWORK_OPCODE = 1i32; +pub const wlan_hosted_network_opcode_station_profile: WLAN_HOSTED_NETWORK_OPCODE = 2i32; +pub const wlan_hosted_network_peer_state_authenticated: WLAN_HOSTED_NETWORK_PEER_AUTH_STATE = 1i32; +pub const wlan_hosted_network_peer_state_change: WLAN_HOSTED_NETWORK_NOTIFICATION_CODE = 4097i32; +pub const wlan_hosted_network_peer_state_invalid: WLAN_HOSTED_NETWORK_PEER_AUTH_STATE = 0i32; +pub const wlan_hosted_network_radio_state_change: WLAN_HOSTED_NETWORK_NOTIFICATION_CODE = 4098i32; +pub const wlan_hosted_network_reason_ap_start_failed: WLAN_HOSTED_NETWORK_REASON = 19i32; +pub const wlan_hosted_network_reason_bad_parameters: WLAN_HOSTED_NETWORK_REASON = 2i32; +pub const wlan_hosted_network_reason_client_abort: WLAN_HOSTED_NETWORK_REASON = 18i32; +pub const wlan_hosted_network_reason_crypt_error: WLAN_HOSTED_NETWORK_REASON = 8i32; +pub const wlan_hosted_network_reason_device_change: WLAN_HOSTED_NETWORK_REASON = 25i32; +pub const wlan_hosted_network_reason_elevation_required: WLAN_HOSTED_NETWORK_REASON = 5i32; +pub const wlan_hosted_network_reason_gp_denied: WLAN_HOSTED_NETWORK_REASON = 23i32; +pub const wlan_hosted_network_reason_impersonation: WLAN_HOSTED_NETWORK_REASON = 9i32; +pub const wlan_hosted_network_reason_incompatible_connection_started: WLAN_HOSTED_NETWORK_REASON = 15i32; +pub const wlan_hosted_network_reason_incompatible_connection_stopped: WLAN_HOSTED_NETWORK_REASON = 16i32; +pub const wlan_hosted_network_reason_insufficient_resources: WLAN_HOSTED_NETWORK_REASON = 4i32; +pub const wlan_hosted_network_reason_interface_available: WLAN_HOSTED_NETWORK_REASON = 11i32; +pub const wlan_hosted_network_reason_interface_unavailable: WLAN_HOSTED_NETWORK_REASON = 12i32; +pub const wlan_hosted_network_reason_miniport_started: WLAN_HOSTED_NETWORK_REASON = 14i32; +pub const wlan_hosted_network_reason_miniport_stopped: WLAN_HOSTED_NETWORK_REASON = 13i32; +pub const wlan_hosted_network_reason_peer_arrived: WLAN_HOSTED_NETWORK_REASON = 20i32; +pub const wlan_hosted_network_reason_peer_departed: WLAN_HOSTED_NETWORK_REASON = 21i32; +pub const wlan_hosted_network_reason_peer_timeout: WLAN_HOSTED_NETWORK_REASON = 22i32; +pub const wlan_hosted_network_reason_persistence_failed: WLAN_HOSTED_NETWORK_REASON = 7i32; +pub const wlan_hosted_network_reason_properties_change: WLAN_HOSTED_NETWORK_REASON = 26i32; +pub const wlan_hosted_network_reason_read_only: WLAN_HOSTED_NETWORK_REASON = 6i32; +pub const wlan_hosted_network_reason_service_available_on_virtual_station: WLAN_HOSTED_NETWORK_REASON = 28i32; +pub const wlan_hosted_network_reason_service_shutting_down: WLAN_HOSTED_NETWORK_REASON = 3i32; +pub const wlan_hosted_network_reason_service_unavailable: WLAN_HOSTED_NETWORK_REASON = 24i32; +pub const wlan_hosted_network_reason_stop_before_start: WLAN_HOSTED_NETWORK_REASON = 10i32; +pub const wlan_hosted_network_reason_success: WLAN_HOSTED_NETWORK_REASON = 0i32; +pub const wlan_hosted_network_reason_unspecified: WLAN_HOSTED_NETWORK_REASON = 1i32; +pub const wlan_hosted_network_reason_user_action: WLAN_HOSTED_NETWORK_REASON = 17i32; +pub const wlan_hosted_network_reason_virtual_station_blocking_use: WLAN_HOSTED_NETWORK_REASON = 27i32; +pub const wlan_hosted_network_state_change: WLAN_HOSTED_NETWORK_NOTIFICATION_CODE = 4096i32; +pub const wlan_hosted_network_unavailable: WLAN_HOSTED_NETWORK_STATE = 0i32; +pub const wlan_ihv_control_type_driver: WLAN_IHV_CONTROL_TYPE = 1i32; +pub const wlan_ihv_control_type_service: WLAN_IHV_CONTROL_TYPE = 0i32; +pub const wlan_interface_state_ad_hoc_network_formed: WLAN_INTERFACE_STATE = 2i32; +pub const wlan_interface_state_associating: WLAN_INTERFACE_STATE = 5i32; +pub const wlan_interface_state_authenticating: WLAN_INTERFACE_STATE = 7i32; +pub const wlan_interface_state_connected: WLAN_INTERFACE_STATE = 1i32; +pub const wlan_interface_state_disconnected: WLAN_INTERFACE_STATE = 4i32; +pub const wlan_interface_state_disconnecting: WLAN_INTERFACE_STATE = 3i32; +pub const wlan_interface_state_discovering: WLAN_INTERFACE_STATE = 6i32; +pub const wlan_interface_state_not_ready: WLAN_INTERFACE_STATE = 0i32; +pub const wlan_interface_type_emulated_802_11: WLAN_INTERFACE_TYPE = 0i32; +pub const wlan_interface_type_invalid: WLAN_INTERFACE_TYPE = 2i32; +pub const wlan_interface_type_native_802_11: WLAN_INTERFACE_TYPE = 1i32; +pub const wlan_intf_opcode_autoconf_enabled: WLAN_INTF_OPCODE = 1i32; +pub const wlan_intf_opcode_autoconf_end: WLAN_INTF_OPCODE = 268435455i32; +pub const wlan_intf_opcode_autoconf_start: WLAN_INTF_OPCODE = 0i32; +pub const wlan_intf_opcode_background_scan_enabled: WLAN_INTF_OPCODE = 2i32; +pub const wlan_intf_opcode_bss_type: WLAN_INTF_OPCODE = 5i32; +pub const wlan_intf_opcode_certified_safe_mode: WLAN_INTF_OPCODE = 14i32; +pub const wlan_intf_opcode_channel_number: WLAN_INTF_OPCODE = 8i32; +pub const wlan_intf_opcode_current_connection: WLAN_INTF_OPCODE = 7i32; +pub const wlan_intf_opcode_current_operation_mode: WLAN_INTF_OPCODE = 12i32; +pub const wlan_intf_opcode_hosted_network_capable: WLAN_INTF_OPCODE = 15i32; +pub const wlan_intf_opcode_ihv_end: WLAN_INTF_OPCODE = 1073741823i32; +pub const wlan_intf_opcode_ihv_start: WLAN_INTF_OPCODE = 805306368i32; +pub const wlan_intf_opcode_interface_state: WLAN_INTF_OPCODE = 6i32; +pub const wlan_intf_opcode_management_frame_protection_capable: WLAN_INTF_OPCODE = 16i32; +pub const wlan_intf_opcode_media_streaming_mode: WLAN_INTF_OPCODE = 3i32; +pub const wlan_intf_opcode_msm_end: WLAN_INTF_OPCODE = 536870911i32; +pub const wlan_intf_opcode_msm_start: WLAN_INTF_OPCODE = 268435712i32; +pub const wlan_intf_opcode_radio_state: WLAN_INTF_OPCODE = 4i32; +pub const wlan_intf_opcode_rssi: WLAN_INTF_OPCODE = 268435714i32; +pub const wlan_intf_opcode_secondary_sta_interfaces: WLAN_INTF_OPCODE = 17i32; +pub const wlan_intf_opcode_secondary_sta_synchronized_connections: WLAN_INTF_OPCODE = 18i32; +pub const wlan_intf_opcode_security_end: WLAN_INTF_OPCODE = 805306367i32; +pub const wlan_intf_opcode_security_start: WLAN_INTF_OPCODE = 536936448i32; +pub const wlan_intf_opcode_statistics: WLAN_INTF_OPCODE = 268435713i32; +pub const wlan_intf_opcode_supported_adhoc_auth_cipher_pairs: WLAN_INTF_OPCODE = 10i32; +pub const wlan_intf_opcode_supported_country_or_region_string_list: WLAN_INTF_OPCODE = 11i32; +pub const wlan_intf_opcode_supported_infrastructure_auth_cipher_pairs: WLAN_INTF_OPCODE = 9i32; +pub const wlan_intf_opcode_supported_safe_mode: WLAN_INTF_OPCODE = 13i32; +pub const wlan_notification_acm_adhoc_network_state_change: WLAN_NOTIFICATION_ACM = 22i32; +pub const wlan_notification_acm_autoconf_disabled: WLAN_NOTIFICATION_ACM = 2i32; +pub const wlan_notification_acm_autoconf_enabled: WLAN_NOTIFICATION_ACM = 1i32; +pub const wlan_notification_acm_background_scan_disabled: WLAN_NOTIFICATION_ACM = 4i32; +pub const wlan_notification_acm_background_scan_enabled: WLAN_NOTIFICATION_ACM = 3i32; +pub const wlan_notification_acm_bss_type_change: WLAN_NOTIFICATION_ACM = 5i32; +pub const wlan_notification_acm_connection_attempt_fail: WLAN_NOTIFICATION_ACM = 11i32; +pub const wlan_notification_acm_connection_complete: WLAN_NOTIFICATION_ACM = 10i32; +pub const wlan_notification_acm_connection_start: WLAN_NOTIFICATION_ACM = 9i32; +pub const wlan_notification_acm_disconnected: WLAN_NOTIFICATION_ACM = 21i32; +pub const wlan_notification_acm_disconnecting: WLAN_NOTIFICATION_ACM = 20i32; +pub const wlan_notification_acm_end: WLAN_NOTIFICATION_ACM = 28i32; +pub const wlan_notification_acm_filter_list_change: WLAN_NOTIFICATION_ACM = 12i32; +pub const wlan_notification_acm_interface_arrival: WLAN_NOTIFICATION_ACM = 13i32; +pub const wlan_notification_acm_interface_removal: WLAN_NOTIFICATION_ACM = 14i32; +pub const wlan_notification_acm_network_available: WLAN_NOTIFICATION_ACM = 19i32; +pub const wlan_notification_acm_network_not_available: WLAN_NOTIFICATION_ACM = 18i32; +pub const wlan_notification_acm_operational_state_change: WLAN_NOTIFICATION_ACM = 27i32; +pub const wlan_notification_acm_power_setting_change: WLAN_NOTIFICATION_ACM = 6i32; +pub const wlan_notification_acm_profile_blocked: WLAN_NOTIFICATION_ACM = 25i32; +pub const wlan_notification_acm_profile_change: WLAN_NOTIFICATION_ACM = 15i32; +pub const wlan_notification_acm_profile_name_change: WLAN_NOTIFICATION_ACM = 16i32; +pub const wlan_notification_acm_profile_unblocked: WLAN_NOTIFICATION_ACM = 23i32; +pub const wlan_notification_acm_profiles_exhausted: WLAN_NOTIFICATION_ACM = 17i32; +pub const wlan_notification_acm_scan_complete: WLAN_NOTIFICATION_ACM = 7i32; +pub const wlan_notification_acm_scan_fail: WLAN_NOTIFICATION_ACM = 8i32; +pub const wlan_notification_acm_scan_list_refresh: WLAN_NOTIFICATION_ACM = 26i32; +pub const wlan_notification_acm_screen_power_change: WLAN_NOTIFICATION_ACM = 24i32; +pub const wlan_notification_acm_start: WLAN_NOTIFICATION_ACM = 0i32; +pub const wlan_notification_msm_adapter_operation_mode_change: WLAN_NOTIFICATION_MSM = 14i32; +pub const wlan_notification_msm_adapter_removal: WLAN_NOTIFICATION_MSM = 13i32; +pub const wlan_notification_msm_associated: WLAN_NOTIFICATION_MSM = 2i32; +pub const wlan_notification_msm_associating: WLAN_NOTIFICATION_MSM = 1i32; +pub const wlan_notification_msm_authenticating: WLAN_NOTIFICATION_MSM = 3i32; +pub const wlan_notification_msm_connected: WLAN_NOTIFICATION_MSM = 4i32; +pub const wlan_notification_msm_disassociating: WLAN_NOTIFICATION_MSM = 9i32; +pub const wlan_notification_msm_disconnected: WLAN_NOTIFICATION_MSM = 10i32; +pub const wlan_notification_msm_end: WLAN_NOTIFICATION_MSM = 17i32; +pub const wlan_notification_msm_link_degraded: WLAN_NOTIFICATION_MSM = 15i32; +pub const wlan_notification_msm_link_improved: WLAN_NOTIFICATION_MSM = 16i32; +pub const wlan_notification_msm_peer_join: WLAN_NOTIFICATION_MSM = 11i32; +pub const wlan_notification_msm_peer_leave: WLAN_NOTIFICATION_MSM = 12i32; +pub const wlan_notification_msm_radio_state_change: WLAN_NOTIFICATION_MSM = 7i32; +pub const wlan_notification_msm_roaming_end: WLAN_NOTIFICATION_MSM = 6i32; +pub const wlan_notification_msm_roaming_start: WLAN_NOTIFICATION_MSM = 5i32; +pub const wlan_notification_msm_signal_quality_change: WLAN_NOTIFICATION_MSM = 8i32; +pub const wlan_notification_msm_start: WLAN_NOTIFICATION_MSM = 0i32; +pub const wlan_notification_security_end: WLAN_NOTIFICATION_SECURITY = 1i32; +pub const wlan_notification_security_start: WLAN_NOTIFICATION_SECURITY = 0i32; +pub const wlan_opcode_value_type_invalid: WLAN_OPCODE_VALUE_TYPE = 3i32; +pub const wlan_opcode_value_type_query_only: WLAN_OPCODE_VALUE_TYPE = 0i32; +pub const wlan_opcode_value_type_set_by_group_policy: WLAN_OPCODE_VALUE_TYPE = 1i32; +pub const wlan_opcode_value_type_set_by_user: WLAN_OPCODE_VALUE_TYPE = 2i32; +pub const wlan_operational_state_going_off: WLAN_OPERATIONAL_STATE = 3i32; +pub const wlan_operational_state_going_on: WLAN_OPERATIONAL_STATE = 4i32; +pub const wlan_operational_state_off: WLAN_OPERATIONAL_STATE = 1i32; +pub const wlan_operational_state_on: WLAN_OPERATIONAL_STATE = 2i32; +pub const wlan_operational_state_unknown: WLAN_OPERATIONAL_STATE = 0i32; +pub const wlan_power_setting_invalid: WLAN_POWER_SETTING = 4i32; +pub const wlan_power_setting_low_saving: WLAN_POWER_SETTING = 1i32; +pub const wlan_power_setting_maximum_saving: WLAN_POWER_SETTING = 3i32; +pub const wlan_power_setting_medium_saving: WLAN_POWER_SETTING = 2i32; +pub const wlan_power_setting_no_saving: WLAN_POWER_SETTING = 0i32; +pub const wlan_secure_ac_enabled: WLAN_SECURABLE_OBJECT = 2i32; +pub const wlan_secure_add_new_all_user_profiles: WLAN_SECURABLE_OBJECT = 9i32; +pub const wlan_secure_add_new_per_user_profiles: WLAN_SECURABLE_OBJECT = 10i32; +pub const wlan_secure_all_user_profiles_order: WLAN_SECURABLE_OBJECT = 8i32; +pub const wlan_secure_bc_scan_enabled: WLAN_SECURABLE_OBJECT = 3i32; +pub const wlan_secure_bss_type: WLAN_SECURABLE_OBJECT = 4i32; +pub const wlan_secure_current_operation_mode: WLAN_SECURABLE_OBJECT = 12i32; +pub const wlan_secure_deny_list: WLAN_SECURABLE_OBJECT = 1i32; +pub const wlan_secure_get_plaintext_key: WLAN_SECURABLE_OBJECT = 13i32; +pub const wlan_secure_hosted_network_elevated_access: WLAN_SECURABLE_OBJECT = 14i32; +pub const wlan_secure_ihv_control: WLAN_SECURABLE_OBJECT = 7i32; +pub const wlan_secure_interface_properties: WLAN_SECURABLE_OBJECT = 6i32; +pub const wlan_secure_media_streaming_mode_enabled: WLAN_SECURABLE_OBJECT = 11i32; +pub const wlan_secure_permit_list: WLAN_SECURABLE_OBJECT = 0i32; +pub const wlan_secure_show_denied: WLAN_SECURABLE_OBJECT = 5i32; +pub const wlan_secure_virtual_station_extensibility: WLAN_SECURABLE_OBJECT = 15i32; +pub const wlan_secure_wfd_elevated_access: WLAN_SECURABLE_OBJECT = 16i32; +pub type CH_DESCRIPTION_TYPE = i32; +pub type DEVPROP_PCIDEVICE_ACSCOMPATIBLEUPHIERARCHY = u32; +pub type DEVPROP_PCIDEVICE_ACSSUPPORT = u32; +pub type DEVPROP_PCIDEVICE_CURRENTSPEEDANDMODE = u32; +pub type DEVPROP_PCIDEVICE_DEVICEBRIDGETYPE = u32; +pub type DEVPROP_PCIDEVICE_INTERRUPTTYPE = u32; +pub type DEVPROP_PCIDEVICE_SRIOVSUPPORT = u32; +pub type DEVPROP_PCIEXPRESSDEVICE_LINKSPEED = u32; +pub type DEVPROP_PCIEXPRESSDEVICE_LINKWIDTH = u32; +pub type DEVPROP_PCIEXPRESSDEVICE_PAYLOADORREQUESTSIZE = u32; +pub type DEVPROP_PCIEXPRESSDEVICE_SPEC_VERSION = u32; +pub type DEVPROP_PCIROOTBUS_BUSWIDTH = u32; +pub type DEVPROP_PCIROOTBUS_CURRENTSPEEDANDMODE = u32; +pub type DEVPROP_PCIROOTBUS_SECONDARYINTERFACE = u32; +pub type DEVPROP_PCIROOTBUS_SUPPORTEDSPEEDSANDMODES = u32; +pub type DOT11EXT_IHV_CONNECTION_PHASE = i32; +pub type DOT11EXT_IHV_INDICATION_TYPE = i32; +pub type DOT11_AC_PARAM = i32; +pub type DOT11_ADHOC_AUTH_ALGORITHM = i32; +pub type DOT11_ADHOC_CIPHER_ALGORITHM = i32; +pub type DOT11_ADHOC_CONNECT_FAIL_REASON = i32; +pub type DOT11_ADHOC_NETWORK_CONNECTION_STATUS = i32; +pub type DOT11_ANQP_QUERY_RESULT = i32; +pub type DOT11_ASSOCIATION_STATE = i32; +pub type DOT11_AUTH_ALGORITHM = i32; +pub type DOT11_BAND = i32; +pub type DOT11_BSS_TYPE = i32; +pub type DOT11_CIPHER_ALGORITHM = i32; +pub type DOT11_DIRECTION = i32; +pub type DOT11_DIVERSITY_SUPPORT = i32; +pub type DOT11_DS_INFO = i32; +pub type DOT11_HOP_ALGO_ADOPTED = i32; +pub type DOT11_KEY_DIRECTION = i32; +pub type DOT11_MANUFACTURING_CALLBACK_TYPE = i32; +pub type DOT11_MANUFACTURING_SELF_TEST_TYPE = i32; +pub type DOT11_MANUFACTURING_TEST_TYPE = i32; +pub type DOT11_MSONEX_RESULT = i32; +pub type DOT11_OFFLOAD_TYPE = i32; +pub type DOT11_PHY_TYPE = i32; +pub type DOT11_POWER_MODE = i32; +pub type DOT11_POWER_MODE_REASON = i32; +pub type DOT11_RADIO_STATE = i32; +pub type DOT11_RESET_TYPE = i32; +pub type DOT11_SCAN_TYPE = i32; +pub type DOT11_TEMP_TYPE = i32; +pub type DOT11_UPDATE_IE_OP = i32; +pub type DOT11_WFD_DISCOVER_TYPE = i32; +pub type DOT11_WFD_SCAN_TYPE = i32; +pub type DOT11_WPS_CONFIG_METHOD = i32; +pub type DOT11_WPS_DEVICE_PASSWORD_ID = i32; +pub type ONEX_AUTH_IDENTITY = i32; +pub type ONEX_AUTH_RESTART_REASON = i32; +pub type ONEX_AUTH_STATUS = i32; +pub type ONEX_EAP_METHOD_BACKEND_SUPPORT = i32; +pub type ONEX_NOTIFICATION_TYPE = i32; +pub type ONEX_REASON_CODE = i32; +pub type WFD_ROLE_TYPE = i32; +pub type WLAN_ADHOC_NETWORK_STATE = i32; +pub type WLAN_AUTOCONF_OPCODE = i32; +pub type WLAN_CONNECTION_MODE = i32; +pub type WLAN_CONNECTION_NOTIFICATION_FLAGS = u32; +pub type WLAN_FILTER_LIST_TYPE = i32; +pub type WLAN_HOSTED_NETWORK_NOTIFICATION_CODE = i32; +pub type WLAN_HOSTED_NETWORK_OPCODE = i32; +pub type WLAN_HOSTED_NETWORK_PEER_AUTH_STATE = i32; +pub type WLAN_HOSTED_NETWORK_REASON = i32; +pub type WLAN_HOSTED_NETWORK_STATE = i32; +pub type WLAN_IHV_CONTROL_TYPE = i32; +pub type WLAN_INTERFACE_STATE = i32; +pub type WLAN_INTERFACE_TYPE = i32; +pub type WLAN_INTF_OPCODE = i32; +pub type WLAN_NOTIFICATION_ACM = i32; +pub type WLAN_NOTIFICATION_MSM = i32; +pub type WLAN_NOTIFICATION_SECURITY = i32; +pub type WLAN_NOTIFICATION_SOURCES = u32; +pub type WLAN_OPCODE_VALUE_TYPE = i32; +pub type WLAN_OPERATIONAL_STATE = i32; +pub type WLAN_POWER_SETTING = i32; +pub type WLAN_SECURABLE_OBJECT = i32; +pub type WLAN_SET_EAPHOST_FLAGS = u32; +pub type WL_DISPLAY_PAGES = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +pub struct DOT11EXT_APIS { + pub Dot11ExtAllocateBuffer: DOT11EXT_ALLOCATE_BUFFER, + pub Dot11ExtFreeBuffer: DOT11EXT_FREE_BUFFER, + pub Dot11ExtSetProfileCustomUserData: DOT11EXT_SET_PROFILE_CUSTOM_USER_DATA, + pub Dot11ExtGetProfileCustomUserData: DOT11EXT_GET_PROFILE_CUSTOM_USER_DATA, + pub Dot11ExtSetCurrentProfile: DOT11EXT_SET_CURRENT_PROFILE, + pub Dot11ExtSendUIRequest: DOT11EXT_SEND_UI_REQUEST, + pub Dot11ExtPreAssociateCompletion: DOT11EXT_PRE_ASSOCIATE_COMPLETION, + pub Dot11ExtPostAssociateCompletion: DOT11EXT_POST_ASSOCIATE_COMPLETION, + pub Dot11ExtSendNotification: DOT11EXT_SEND_NOTIFICATION, + pub Dot11ExtSendPacket: DOT11EXT_SEND_PACKET, + pub Dot11ExtSetEtherTypeHandling: DOT11EXT_SET_ETHERTYPE_HANDLING, + pub Dot11ExtSetAuthAlgorithm: DOT11EXT_SET_AUTH_ALGORITHM, + pub Dot11ExtSetUnicastCipherAlgorithm: DOT11EXT_SET_UNICAST_CIPHER_ALGORITHM, + pub Dot11ExtSetMulticastCipherAlgorithm: DOT11EXT_SET_MULTICAST_CIPHER_ALGORITHM, + pub Dot11ExtSetDefaultKey: DOT11EXT_SET_DEFAULT_KEY, + pub Dot11ExtSetKeyMappingKey: DOT11EXT_SET_KEY_MAPPING_KEY, + pub Dot11ExtSetDefaultKeyId: DOT11EXT_SET_DEFAULT_KEY_ID, + pub Dot11ExtNicSpecificExtension: DOT11EXT_NIC_SPECIFIC_EXTENSION, + pub Dot11ExtSetExcludeUnencrypted: DOT11EXT_SET_EXCLUDE_UNENCRYPTED, + pub Dot11ExtStartOneX: DOT11EXT_ONEX_START, + pub Dot11ExtStopOneX: DOT11EXT_ONEX_STOP, + pub Dot11ExtProcessSecurityPacket: DOT11EXT_PROCESS_ONEX_PACKET, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +impl ::core::marker::Copy for DOT11EXT_APIS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +impl ::core::clone::Clone for DOT11EXT_APIS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11EXT_IHV_CONNECTIVITY_PROFILE { + pub pszXmlFragmentIhvConnectivity: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DOT11EXT_IHV_CONNECTIVITY_PROFILE {} +impl ::core::clone::Clone for DOT11EXT_IHV_CONNECTIVITY_PROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11EXT_IHV_DISCOVERY_PROFILE { + pub IhvConnectivityProfile: DOT11EXT_IHV_CONNECTIVITY_PROFILE, + pub IhvSecurityProfile: DOT11EXT_IHV_SECURITY_PROFILE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11EXT_IHV_DISCOVERY_PROFILE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11EXT_IHV_DISCOVERY_PROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11EXT_IHV_DISCOVERY_PROFILE_LIST { + pub dwCount: u32, + pub pIhvDiscoveryProfiles: *mut DOT11EXT_IHV_DISCOVERY_PROFILE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11EXT_IHV_DISCOVERY_PROFILE_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11EXT_IHV_DISCOVERY_PROFILE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`, `\"Win32_System_RemoteDesktop\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Security_ExtensibleAuthenticationProtocol", feature = "Win32_System_RemoteDesktop"))] +pub struct DOT11EXT_IHV_HANDLERS { + pub Dot11ExtIhvDeinitService: DOT11EXTIHV_DEINIT_SERVICE, + pub Dot11ExtIhvInitAdapter: DOT11EXTIHV_INIT_ADAPTER, + pub Dot11ExtIhvDeinitAdapter: DOT11EXTIHV_DEINIT_ADAPTER, + pub Dot11ExtIhvPerformPreAssociate: DOT11EXTIHV_PERFORM_PRE_ASSOCIATE, + pub Dot11ExtIhvAdapterReset: DOT11EXTIHV_ADAPTER_RESET, + pub Dot11ExtIhvPerformPostAssociate: DOT11EXTIHV_PERFORM_POST_ASSOCIATE, + pub Dot11ExtIhvStopPostAssociate: DOT11EXTIHV_STOP_POST_ASSOCIATE, + pub Dot11ExtIhvValidateProfile: DOT11EXTIHV_VALIDATE_PROFILE, + pub Dot11ExtIhvPerformCapabilityMatch: DOT11EXTIHV_PERFORM_CAPABILITY_MATCH, + pub Dot11ExtIhvCreateDiscoveryProfiles: DOT11EXTIHV_CREATE_DISCOVERY_PROFILES, + pub Dot11ExtIhvProcessSessionChange: DOT11EXTIHV_PROCESS_SESSION_CHANGE, + pub Dot11ExtIhvReceiveIndication: DOT11EXTIHV_RECEIVE_INDICATION, + pub Dot11ExtIhvReceivePacket: DOT11EXTIHV_RECEIVE_PACKET, + pub Dot11ExtIhvSendPacketCompletion: DOT11EXTIHV_SEND_PACKET_COMPLETION, + pub Dot11ExtIhvIsUIRequestPending: DOT11EXTIHV_IS_UI_REQUEST_PENDING, + pub Dot11ExtIhvProcessUIResponse: DOT11EXTIHV_PROCESS_UI_RESPONSE, + pub Dot11ExtIhvQueryUIRequest: DOT11EXTIHV_QUERY_UI_REQUEST, + pub Dot11ExtIhvOnexIndicateResult: DOT11EXTIHV_ONEX_INDICATE_RESULT, + pub Dot11ExtIhvControl: DOT11EXTIHV_CONTROL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Security_ExtensibleAuthenticationProtocol", feature = "Win32_System_RemoteDesktop"))] +impl ::core::marker::Copy for DOT11EXT_IHV_HANDLERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Security_ExtensibleAuthenticationProtocol", feature = "Win32_System_RemoteDesktop"))] +impl ::core::clone::Clone for DOT11EXT_IHV_HANDLERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +pub struct DOT11EXT_IHV_PARAMS { + pub dot11ExtIhvProfileParams: DOT11EXT_IHV_PROFILE_PARAMS, + pub wstrProfileName: [u16; 256], + pub dwProfileTypeFlags: u32, + pub interfaceGuid: ::windows_sys::core::GUID, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +impl ::core::marker::Copy for DOT11EXT_IHV_PARAMS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +impl ::core::clone::Clone for DOT11EXT_IHV_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +pub struct DOT11EXT_IHV_PROFILE_PARAMS { + pub pSsidList: *mut DOT11EXT_IHV_SSID_LIST, + pub BssType: DOT11_BSS_TYPE, + pub pMSSecuritySettings: *mut DOT11_MSSECURITY_SETTINGS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +impl ::core::marker::Copy for DOT11EXT_IHV_PROFILE_PARAMS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +impl ::core::clone::Clone for DOT11EXT_IHV_PROFILE_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11EXT_IHV_SECURITY_PROFILE { + pub pszXmlFragmentIhvSecurity: ::windows_sys::core::PWSTR, + pub bUseMSOnex: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11EXT_IHV_SECURITY_PROFILE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11EXT_IHV_SECURITY_PROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11EXT_IHV_SSID_LIST { + pub ulCount: u32, + pub SSIDs: [DOT11_SSID; 1], +} +impl ::core::marker::Copy for DOT11EXT_IHV_SSID_LIST {} +impl ::core::clone::Clone for DOT11EXT_IHV_SSID_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11EXT_IHV_UI_REQUEST { + pub dwSessionId: u32, + pub guidUIRequest: ::windows_sys::core::GUID, + pub UIPageClsid: ::windows_sys::core::GUID, + pub dwByteCount: u32, + pub pvUIRequest: *mut u8, +} +impl ::core::marker::Copy for DOT11EXT_IHV_UI_REQUEST {} +impl ::core::clone::Clone for DOT11EXT_IHV_UI_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11EXT_VIRTUAL_STATION_APIS { + pub Dot11ExtRequestVirtualStation: DOT11EXT_REQUEST_VIRTUAL_STATION, + pub Dot11ExtReleaseVirtualStation: DOT11EXT_RELEASE_VIRTUAL_STATION, + pub Dot11ExtQueryVirtualStationProperties: DOT11EXT_QUERY_VIRTUAL_STATION_PROPERTIES, + pub Dot11ExtSetVirtualStationAPProperties: DOT11EXT_SET_VIRTUAL_STATION_AP_PROPERTIES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11EXT_VIRTUAL_STATION_APIS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11EXT_VIRTUAL_STATION_APIS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11EXT_VIRTUAL_STATION_AP_PROPERTY { + pub dot11SSID: DOT11_SSID, + pub dot11AuthAlgo: DOT11_AUTH_ALGORITHM, + pub dot11CipherAlgo: DOT11_CIPHER_ALGORITHM, + pub bIsPassPhrase: super::super::Foundation::BOOL, + pub dwKeyLength: u32, + pub ucKeyData: [u8; 64], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11EXT_VIRTUAL_STATION_AP_PROPERTY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11EXT_VIRTUAL_STATION_AP_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_ACCESSNETWORKOPTIONS { + pub AccessNetworkType: u8, + pub Internet: u8, + pub ASRA: u8, + pub ESR: u8, + pub UESA: u8, +} +impl ::core::marker::Copy for DOT11_ACCESSNETWORKOPTIONS {} +impl ::core::clone::Clone for DOT11_ACCESSNETWORKOPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_ADAPTER { + pub gAdapterId: ::windows_sys::core::GUID, + pub pszDescription: ::windows_sys::core::PWSTR, + pub Dot11CurrentOpMode: DOT11_CURRENT_OPERATION_MODE, +} +impl ::core::marker::Copy for DOT11_ADAPTER {} +impl ::core::clone::Clone for DOT11_ADAPTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_ADDITIONAL_IE { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uBeaconIEsOffset: u32, + pub uBeaconIEsLength: u32, + pub uResponseIEsOffset: u32, + pub uResponseIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_ADDITIONAL_IE {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_ADDITIONAL_IE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_ANQP_QUERY_COMPLETE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub Status: DOT11_ANQP_QUERY_RESULT, + pub hContext: super::super::Foundation::HANDLE, + pub uResponseLength: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_ANQP_QUERY_COMPLETE_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_ANQP_QUERY_COMPLETE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_AP_JOIN_REQUEST { + pub uJoinFailureTimeout: u32, + pub OperationalRateSet: DOT11_RATE_SET, + pub uChCenterFrequency: u32, + pub dot11BSSDescription: DOT11_BSS_DESCRIPTION, +} +impl ::core::marker::Copy for DOT11_AP_JOIN_REQUEST {} +impl ::core::clone::Clone for DOT11_AP_JOIN_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_ASSOCIATION_COMPLETION_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub MacAddr: [u8; 6], + pub uStatus: u32, + pub bReAssocReq: super::super::Foundation::BOOLEAN, + pub bReAssocResp: super::super::Foundation::BOOLEAN, + pub uAssocReqOffset: u32, + pub uAssocReqSize: u32, + pub uAssocRespOffset: u32, + pub uAssocRespSize: u32, + pub uBeaconOffset: u32, + pub uBeaconSize: u32, + pub uIHVDataOffset: u32, + pub uIHVDataSize: u32, + pub AuthAlgo: DOT11_AUTH_ALGORITHM, + pub UnicastCipher: DOT11_CIPHER_ALGORITHM, + pub MulticastCipher: DOT11_CIPHER_ALGORITHM, + pub uActivePhyListOffset: u32, + pub uActivePhyListSize: u32, + pub bFourAddressSupported: super::super::Foundation::BOOLEAN, + pub bPortAuthorized: super::super::Foundation::BOOLEAN, + pub ucActiveQoSProtocol: u8, + pub DSInfo: DOT11_DS_INFO, + pub uEncapTableOffset: u32, + pub uEncapTableSize: u32, + pub MulticastMgmtCipher: DOT11_CIPHER_ALGORITHM, + pub uAssocComebackTime: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_ASSOCIATION_COMPLETION_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_ASSOCIATION_COMPLETION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_ASSOCIATION_INFO_EX { + pub PeerMacAddress: [u8; 6], + pub BSSID: [u8; 6], + pub usCapabilityInformation: u16, + pub usListenInterval: u16, + pub ucPeerSupportedRates: [u8; 255], + pub usAssociationID: u16, + pub dot11AssociationState: DOT11_ASSOCIATION_STATE, + pub dot11PowerMode: DOT11_POWER_MODE, + pub liAssociationUpTime: i64, + pub ullNumOfTxPacketSuccesses: u64, + pub ullNumOfTxPacketFailures: u64, + pub ullNumOfRxPacketSuccesses: u64, + pub ullNumOfRxPacketFailures: u64, +} +impl ::core::marker::Copy for DOT11_ASSOCIATION_INFO_EX {} +impl ::core::clone::Clone for DOT11_ASSOCIATION_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_ASSOCIATION_INFO_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub dot11AssocInfo: [DOT11_ASSOCIATION_INFO_EX; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_ASSOCIATION_INFO_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_ASSOCIATION_INFO_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_ASSOCIATION_PARAMS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub BSSID: [u8; 6], + pub uAssocRequestIEsOffset: u32, + pub uAssocRequestIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_ASSOCIATION_PARAMS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_ASSOCIATION_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_ASSOCIATION_START_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub MacAddr: [u8; 6], + pub SSID: DOT11_SSID, + pub uIHVDataOffset: u32, + pub uIHVDataSize: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_ASSOCIATION_START_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_ASSOCIATION_START_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_AUTH_ALGORITHM_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub AlgorithmIds: [DOT11_AUTH_ALGORITHM; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_AUTH_ALGORITHM_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_AUTH_ALGORITHM_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_AUTH_CIPHER_PAIR { + pub AuthAlgoId: DOT11_AUTH_ALGORITHM, + pub CipherAlgoId: DOT11_CIPHER_ALGORITHM, +} +impl ::core::marker::Copy for DOT11_AUTH_CIPHER_PAIR {} +impl ::core::clone::Clone for DOT11_AUTH_CIPHER_PAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_AUTH_CIPHER_PAIR_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub AuthCipherPairs: [DOT11_AUTH_CIPHER_PAIR; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_AUTH_CIPHER_PAIR_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_AUTH_CIPHER_PAIR_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_AVAILABLE_CHANNEL_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub uChannelNumber: [u32; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_AVAILABLE_CHANNEL_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_AVAILABLE_CHANNEL_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_AVAILABLE_FREQUENCY_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub uFrequencyValue: [u32; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_AVAILABLE_FREQUENCY_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_AVAILABLE_FREQUENCY_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_BSSID_CANDIDATE { + pub BSSID: [u8; 6], + pub uFlags: u32, +} +impl ::core::marker::Copy for DOT11_BSSID_CANDIDATE {} +impl ::core::clone::Clone for DOT11_BSSID_CANDIDATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_BSSID_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub BSSIDs: [u8; 6], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_BSSID_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_BSSID_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_BSS_DESCRIPTION { + pub uReserved: u32, + pub dot11BSSID: [u8; 6], + pub dot11BSSType: DOT11_BSS_TYPE, + pub usBeaconPeriod: u16, + pub ullTimestamp: u64, + pub usCapabilityInformation: u16, + pub uBufferLength: u32, + pub ucBuffer: [u8; 1], +} +impl ::core::marker::Copy for DOT11_BSS_DESCRIPTION {} +impl ::core::clone::Clone for DOT11_BSS_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_BSS_ENTRY { + pub uPhyId: u32, + pub PhySpecificInfo: DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO, + pub dot11BSSID: [u8; 6], + pub dot11BSSType: DOT11_BSS_TYPE, + pub lRSSI: i32, + pub uLinkQuality: u32, + pub bInRegDomain: super::super::Foundation::BOOLEAN, + pub usBeaconPeriod: u16, + pub ullTimestamp: u64, + pub ullHostTimestamp: u64, + pub usCapabilityInformation: u16, + pub uBufferLength: u32, + pub ucBuffer: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_BSS_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_BSS_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO { + pub uChCenterFrequency: u32, + pub FHSS: DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO_0, +} +impl ::core::marker::Copy for DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO {} +impl ::core::clone::Clone for DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO_0 { + pub uHopPattern: u32, + pub uHopSet: u32, + pub uDwellTime: u32, +} +impl ::core::marker::Copy for DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO_0 {} +impl ::core::clone::Clone for DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_BSS_LIST { + pub uNumOfBytes: u32, + pub pucBuffer: *mut u8, +} +impl ::core::marker::Copy for DOT11_BSS_LIST {} +impl ::core::clone::Clone for DOT11_BSS_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_BYTE_ARRAY { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfBytes: u32, + pub uTotalNumOfBytes: u32, + pub ucBuffer: [u8; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_BYTE_ARRAY {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_BYTE_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_CAN_SUSTAIN_AP_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub ulReason: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_CAN_SUSTAIN_AP_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_CAN_SUSTAIN_AP_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_CHANNEL_HINT { + pub Dot11PhyType: DOT11_PHY_TYPE, + pub uChannelNumber: u32, +} +impl ::core::marker::Copy for DOT11_CHANNEL_HINT {} +impl ::core::clone::Clone for DOT11_CHANNEL_HINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_CIPHER_ALGORITHM_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub AlgorithmIds: [DOT11_CIPHER_ALGORITHM; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_CIPHER_ALGORITHM_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_CIPHER_ALGORITHM_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_CIPHER_DEFAULT_KEY_VALUE { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uKeyIndex: u32, + pub AlgorithmId: DOT11_CIPHER_ALGORITHM, + pub MacAddr: [u8; 6], + pub bDelete: super::super::Foundation::BOOLEAN, + pub bStatic: super::super::Foundation::BOOLEAN, + pub usKeyLength: u16, + pub ucKey: [u8; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_CIPHER_DEFAULT_KEY_VALUE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_CIPHER_DEFAULT_KEY_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_CIPHER_KEY_MAPPING_KEY_VALUE { + pub PeerMacAddr: [u8; 6], + pub AlgorithmId: DOT11_CIPHER_ALGORITHM, + pub Direction: DOT11_DIRECTION, + pub bDelete: super::super::Foundation::BOOLEAN, + pub bStatic: super::super::Foundation::BOOLEAN, + pub usKeyLength: u16, + pub ucKey: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_CIPHER_KEY_MAPPING_KEY_VALUE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_CIPHER_KEY_MAPPING_KEY_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_CONNECTION_COMPLETION_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uStatus: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_CONNECTION_COMPLETION_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_CONNECTION_COMPLETION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_CONNECTION_START_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub BSSType: DOT11_BSS_TYPE, + pub AdhocBSSID: [u8; 6], + pub AdhocSSID: DOT11_SSID, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_CONNECTION_START_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_CONNECTION_START_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_COUNTERS_ENTRY { + pub uTransmittedFragmentCount: u32, + pub uMulticastTransmittedFrameCount: u32, + pub uFailedCount: u32, + pub uRetryCount: u32, + pub uMultipleRetryCount: u32, + pub uFrameDuplicateCount: u32, + pub uRTSSuccessCount: u32, + pub uRTSFailureCount: u32, + pub uACKFailureCount: u32, + pub uReceivedFragmentCount: u32, + pub uMulticastReceivedFrameCount: u32, + pub uFCSErrorCount: u32, + pub uTransmittedFrameCount: u32, +} +impl ::core::marker::Copy for DOT11_COUNTERS_ENTRY {} +impl ::core::clone::Clone for DOT11_COUNTERS_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_COUNTRY_OR_REGION_STRING_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub CountryOrRegionStrings: [u8; 3], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_COUNTRY_OR_REGION_STRING_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_COUNTRY_OR_REGION_STRING_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_CURRENT_OFFLOAD_CAPABILITY { + pub uReserved: u32, + pub uFlags: u32, +} +impl ::core::marker::Copy for DOT11_CURRENT_OFFLOAD_CAPABILITY {} +impl ::core::clone::Clone for DOT11_CURRENT_OFFLOAD_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_CURRENT_OPERATION_MODE { + pub uReserved: u32, + pub uCurrentOpMode: u32, +} +impl ::core::marker::Copy for DOT11_CURRENT_OPERATION_MODE {} +impl ::core::clone::Clone for DOT11_CURRENT_OPERATION_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_CURRENT_OPTIONAL_CAPABILITY { + pub uReserved: u32, + pub bDot11CFPollable: super::super::Foundation::BOOLEAN, + pub bDot11PCF: super::super::Foundation::BOOLEAN, + pub bDot11PCFMPDUTransferToPC: super::super::Foundation::BOOLEAN, + pub bStrictlyOrderedServiceClass: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_CURRENT_OPTIONAL_CAPABILITY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_CURRENT_OPTIONAL_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_DATA_RATE_MAPPING_ENTRY { + pub ucDataRateIndex: u8, + pub ucDataRateFlag: u8, + pub usDataRateValue: u16, +} +impl ::core::marker::Copy for DOT11_DATA_RATE_MAPPING_ENTRY {} +impl ::core::clone::Clone for DOT11_DATA_RATE_MAPPING_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_DATA_RATE_MAPPING_TABLE { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uDataRateMappingLength: u32, + pub DataRateMappingEntries: [DOT11_DATA_RATE_MAPPING_ENTRY; 126], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_DATA_RATE_MAPPING_TABLE {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_DATA_RATE_MAPPING_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_DEFAULT_WEP_OFFLOAD { + pub uReserved: u32, + pub hOffloadContext: super::super::Foundation::HANDLE, + pub hOffload: super::super::Foundation::HANDLE, + pub dwIndex: u32, + pub dot11OffloadType: DOT11_OFFLOAD_TYPE, + pub dwAlgorithm: u32, + pub uFlags: u32, + pub dot11KeyDirection: DOT11_KEY_DIRECTION, + pub ucMacAddress: [u8; 6], + pub uNumOfRWsOnMe: u32, + pub dot11IV48Counters: [DOT11_IV48_COUNTER; 16], + pub usDot11RWBitMaps: [u16; 16], + pub usKeyLength: u16, + pub ucKey: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_DEFAULT_WEP_OFFLOAD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_DEFAULT_WEP_OFFLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_DEFAULT_WEP_UPLOAD { + pub uReserved: u32, + pub dot11OffloadType: DOT11_OFFLOAD_TYPE, + pub hOffload: super::super::Foundation::HANDLE, + pub uNumOfRWsUsed: u32, + pub dot11IV48Counters: [DOT11_IV48_COUNTER; 16], + pub usDot11RWBitMaps: [u16; 16], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_DEFAULT_WEP_UPLOAD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_DEFAULT_WEP_UPLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_DISASSOCIATE_PEER_REQUEST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerMacAddr: [u8; 6], + pub usReason: u16, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_DISASSOCIATE_PEER_REQUEST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_DISASSOCIATE_PEER_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_DISASSOCIATION_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub MacAddr: [u8; 6], + pub uReason: u32, + pub uIHVDataOffset: u32, + pub uIHVDataSize: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_DISASSOCIATION_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_DISASSOCIATION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_DIVERSITY_SELECTION_RX { + pub uAntennaListIndex: u32, + pub bDiversitySelectionRX: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_DIVERSITY_SELECTION_RX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_DIVERSITY_SELECTION_RX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_DIVERSITY_SELECTION_RX_LIST { + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub dot11DiversitySelectionRx: [DOT11_DIVERSITY_SELECTION_RX; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_DIVERSITY_SELECTION_RX_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_DIVERSITY_SELECTION_RX_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +#[cfg(feature = "Win32_Security_ExtensibleAuthenticationProtocol")] +pub struct DOT11_EAP_RESULT { + pub dwFailureReasonCode: u32, + pub pAttribArray: *mut super::super::Security::ExtensibleAuthenticationProtocol::EAP_ATTRIBUTES, +} +#[cfg(feature = "Win32_Security_ExtensibleAuthenticationProtocol")] +impl ::core::marker::Copy for DOT11_EAP_RESULT {} +#[cfg(feature = "Win32_Security_ExtensibleAuthenticationProtocol")] +impl ::core::clone::Clone for DOT11_EAP_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_ENCAP_ENTRY { + pub usEtherType: u16, + pub usEncapType: u16, +} +impl ::core::marker::Copy for DOT11_ENCAP_ENTRY {} +impl ::core::clone::Clone for DOT11_ENCAP_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_ERP_PHY_ATTRIBUTES { + pub HRDSSSAttributes: DOT11_HRDSSS_PHY_ATTRIBUTES, + pub bERPPBCCOptionImplemented: super::super::Foundation::BOOLEAN, + pub bDSSSOFDMOptionImplemented: super::super::Foundation::BOOLEAN, + pub bShortSlotTimeOptionImplemented: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_ERP_PHY_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_ERP_PHY_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_EXTAP_ATTRIBUTES { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uScanSSIDListSize: u32, + pub uDesiredSSIDListSize: u32, + pub uPrivacyExemptionListSize: u32, + pub uAssociationTableSize: u32, + pub uDefaultKeyTableSize: u32, + pub uWEPKeyValueMaxLength: u32, + pub bStrictlyOrderedServiceClassImplemented: super::super::Foundation::BOOLEAN, + pub uNumSupportedCountryOrRegionStrings: u32, + pub pSupportedCountryOrRegionStrings: *mut u8, + pub uInfraNumSupportedUcastAlgoPairs: u32, + pub pInfraSupportedUcastAlgoPairs: *mut DOT11_AUTH_CIPHER_PAIR, + pub uInfraNumSupportedMcastAlgoPairs: u32, + pub pInfraSupportedMcastAlgoPairs: *mut DOT11_AUTH_CIPHER_PAIR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_EXTAP_ATTRIBUTES {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_EXTAP_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_EXTSTA_ATTRIBUTES { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uScanSSIDListSize: u32, + pub uDesiredBSSIDListSize: u32, + pub uDesiredSSIDListSize: u32, + pub uExcludedMacAddressListSize: u32, + pub uPrivacyExemptionListSize: u32, + pub uKeyMappingTableSize: u32, + pub uDefaultKeyTableSize: u32, + pub uWEPKeyValueMaxLength: u32, + pub uPMKIDCacheSize: u32, + pub uMaxNumPerSTADefaultKeyTables: u32, + pub bStrictlyOrderedServiceClassImplemented: super::super::Foundation::BOOLEAN, + pub ucSupportedQoSProtocolFlags: u8, + pub bSafeModeImplemented: super::super::Foundation::BOOLEAN, + pub uNumSupportedCountryOrRegionStrings: u32, + pub pSupportedCountryOrRegionStrings: *mut u8, + pub uInfraNumSupportedUcastAlgoPairs: u32, + pub pInfraSupportedUcastAlgoPairs: *mut DOT11_AUTH_CIPHER_PAIR, + pub uInfraNumSupportedMcastAlgoPairs: u32, + pub pInfraSupportedMcastAlgoPairs: *mut DOT11_AUTH_CIPHER_PAIR, + pub uAdhocNumSupportedUcastAlgoPairs: u32, + pub pAdhocSupportedUcastAlgoPairs: *mut DOT11_AUTH_CIPHER_PAIR, + pub uAdhocNumSupportedMcastAlgoPairs: u32, + pub pAdhocSupportedMcastAlgoPairs: *mut DOT11_AUTH_CIPHER_PAIR, + pub bAutoPowerSaveMode: super::super::Foundation::BOOLEAN, + pub uMaxNetworkOffloadListSize: u32, + pub bMFPCapable: super::super::Foundation::BOOLEAN, + pub uInfraNumSupportedMcastMgmtAlgoPairs: u32, + pub pInfraSupportedMcastMgmtAlgoPairs: *mut DOT11_AUTH_CIPHER_PAIR, + pub bNeighborReportSupported: super::super::Foundation::BOOLEAN, + pub bAPChannelReportSupported: super::super::Foundation::BOOLEAN, + pub bActionFramesSupported: super::super::Foundation::BOOLEAN, + pub bANQPQueryOffloadSupported: super::super::Foundation::BOOLEAN, + pub bHESSIDConnectionSupported: super::super::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_EXTSTA_ATTRIBUTES {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_EXTSTA_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_EXTSTA_CAPABILITY { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uScanSSIDListSize: u32, + pub uDesiredBSSIDListSize: u32, + pub uDesiredSSIDListSize: u32, + pub uExcludedMacAddressListSize: u32, + pub uPrivacyExemptionListSize: u32, + pub uKeyMappingTableSize: u32, + pub uDefaultKeyTableSize: u32, + pub uWEPKeyValueMaxLength: u32, + pub uPMKIDCacheSize: u32, + pub uMaxNumPerSTADefaultKeyTables: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_EXTSTA_CAPABILITY {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_EXTSTA_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_EXTSTA_RECV_CONTEXT { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uReceiveFlags: u32, + pub uPhyId: u32, + pub uChCenterFrequency: u32, + pub usNumberOfMPDUsReceived: u16, + pub lRSSI: i32, + pub ucDataRate: u8, + pub uSizeMediaSpecificInfo: u32, + pub pvMediaSpecificInfo: *mut ::core::ffi::c_void, + pub ullTimestamp: u64, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_EXTSTA_RECV_CONTEXT {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_EXTSTA_RECV_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_EXTSTA_SEND_CONTEXT { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub usExemptionActionType: u16, + pub uPhyId: u32, + pub uDelayedSleepValue: u32, + pub pvMediaSpecificInfo: *mut ::core::ffi::c_void, + pub uSendFlags: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_EXTSTA_SEND_CONTEXT {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_EXTSTA_SEND_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_FRAGMENT_DESCRIPTOR { + pub uOffset: u32, + pub uLength: u32, +} +impl ::core::marker::Copy for DOT11_FRAGMENT_DESCRIPTOR {} +impl ::core::clone::Clone for DOT11_FRAGMENT_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerDeviceAddress: [u8; 6], + pub DialogToken: u8, + pub Status: i32, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerDeviceAddress: [u8; 6], + pub DialogToken: u8, + pub Status: i32, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerDeviceAddress: [u8; 6], + pub DialogToken: u8, + pub Status: i32, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_HOPPING_PATTERN_ENTRY { + pub uHoppingPatternIndex: u32, + pub uRandomTableFieldNumber: u32, +} +impl ::core::marker::Copy for DOT11_HOPPING_PATTERN_ENTRY {} +impl ::core::clone::Clone for DOT11_HOPPING_PATTERN_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_HOPPING_PATTERN_ENTRY_LIST { + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub dot11HoppingPatternEntry: [DOT11_HOPPING_PATTERN_ENTRY; 1], +} +impl ::core::marker::Copy for DOT11_HOPPING_PATTERN_ENTRY_LIST {} +impl ::core::clone::Clone for DOT11_HOPPING_PATTERN_ENTRY_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_HRDSSS_PHY_ATTRIBUTES { + pub bShortPreambleOptionImplemented: super::super::Foundation::BOOLEAN, + pub bPBCCOptionImplemented: super::super::Foundation::BOOLEAN, + pub bChannelAgilityPresent: super::super::Foundation::BOOLEAN, + pub uHRCCAModeSupported: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_HRDSSS_PHY_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_HRDSSS_PHY_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_IBSS_PARAMS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub bJoinOnly: super::super::Foundation::BOOLEAN, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_IBSS_PARAMS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_IBSS_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_IHV_VERSION_INFO { + pub dwVerMin: u32, + pub dwVerMax: u32, +} +impl ::core::marker::Copy for DOT11_IHV_VERSION_INFO {} +impl ::core::clone::Clone for DOT11_IHV_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerMacAddr: [u8; 6], + pub uStatus: u32, + pub ucErrorSource: u8, + pub bReAssocReq: super::super::Foundation::BOOLEAN, + pub bReAssocResp: super::super::Foundation::BOOLEAN, + pub uAssocReqOffset: u32, + pub uAssocReqSize: u32, + pub uAssocRespOffset: u32, + pub uAssocRespSize: u32, + pub AuthAlgo: DOT11_AUTH_ALGORITHM, + pub UnicastCipher: DOT11_CIPHER_ALGORITHM, + pub MulticastCipher: DOT11_CIPHER_ALGORITHM, + pub uActivePhyListOffset: u32, + pub uActivePhyListSize: u32, + pub uBeaconOffset: u32, + pub uBeaconSize: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_INCOMING_ASSOC_DECISION { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerMacAddr: [u8; 6], + pub bAccept: super::super::Foundation::BOOLEAN, + pub usReasonCode: u16, + pub uAssocResponseIEsOffset: u32, + pub uAssocResponseIEsLength: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_INCOMING_ASSOC_DECISION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_INCOMING_ASSOC_DECISION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_INCOMING_ASSOC_DECISION_V2 { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerMacAddr: [u8; 6], + pub bAccept: super::super::Foundation::BOOLEAN, + pub usReasonCode: u16, + pub uAssocResponseIEsOffset: u32, + pub uAssocResponseIEsLength: u32, + pub WFDStatus: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_INCOMING_ASSOC_DECISION_V2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_INCOMING_ASSOC_DECISION_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerMacAddr: [u8; 6], + pub bReAssocReq: super::super::Foundation::BOOLEAN, + pub uAssocReqOffset: u32, + pub uAssocReqSize: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_INCOMING_ASSOC_STARTED_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerMacAddr: [u8; 6], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_INCOMING_ASSOC_STARTED_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_INCOMING_ASSOC_STARTED_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerDeviceAddress: [u8; 6], + pub ReceiverAddress: [u8; 6], + pub DialogToken: u8, + pub Status: i32, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub ReceiverDeviceAddress: [u8; 6], + pub DialogToken: u8, + pub Status: i32, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_IV48_COUNTER { + pub uIV32Counter: u32, + pub usIV16Counter: u16, +} +impl ::core::marker::Copy for DOT11_IV48_COUNTER {} +impl ::core::clone::Clone for DOT11_IV48_COUNTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_JOIN_REQUEST { + pub uJoinFailureTimeout: u32, + pub OperationalRateSet: DOT11_RATE_SET, + pub uChCenterFrequency: u32, + pub dot11BSSDescription: DOT11_BSS_DESCRIPTION, +} +impl ::core::marker::Copy for DOT11_JOIN_REQUEST {} +impl ::core::clone::Clone for DOT11_JOIN_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_KEY_ALGO_BIP { + pub ucIPN: [u8; 6], + pub ulBIPKeyLength: u32, + pub ucBIPKey: [u8; 1], +} +impl ::core::marker::Copy for DOT11_KEY_ALGO_BIP {} +impl ::core::clone::Clone for DOT11_KEY_ALGO_BIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_KEY_ALGO_BIP_GMAC_256 { + pub ucIPN: [u8; 6], + pub ulBIPGmac256KeyLength: u32, + pub ucBIPGmac256Key: [u8; 1], +} +impl ::core::marker::Copy for DOT11_KEY_ALGO_BIP_GMAC_256 {} +impl ::core::clone::Clone for DOT11_KEY_ALGO_BIP_GMAC_256 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_KEY_ALGO_CCMP { + pub ucIV48Counter: [u8; 6], + pub ulCCMPKeyLength: u32, + pub ucCCMPKey: [u8; 1], +} +impl ::core::marker::Copy for DOT11_KEY_ALGO_CCMP {} +impl ::core::clone::Clone for DOT11_KEY_ALGO_CCMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_KEY_ALGO_GCMP { + pub ucIV48Counter: [u8; 6], + pub ulGCMPKeyLength: u32, + pub ucGCMPKey: [u8; 1], +} +impl ::core::marker::Copy for DOT11_KEY_ALGO_GCMP {} +impl ::core::clone::Clone for DOT11_KEY_ALGO_GCMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_KEY_ALGO_GCMP_256 { + pub ucIV48Counter: [u8; 6], + pub ulGCMP256KeyLength: u32, + pub ucGCMP256Key: [u8; 1], +} +impl ::core::marker::Copy for DOT11_KEY_ALGO_GCMP_256 {} +impl ::core::clone::Clone for DOT11_KEY_ALGO_GCMP_256 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_KEY_ALGO_TKIP_MIC { + pub ucIV48Counter: [u8; 6], + pub ulTKIPKeyLength: u32, + pub ulMICKeyLength: u32, + pub ucTKIPMICKeys: [u8; 1], +} +impl ::core::marker::Copy for DOT11_KEY_ALGO_TKIP_MIC {} +impl ::core::clone::Clone for DOT11_KEY_ALGO_TKIP_MIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_LINK_QUALITY_ENTRY { + pub PeerMacAddr: [u8; 6], + pub ucLinkQuality: u8, +} +impl ::core::marker::Copy for DOT11_LINK_QUALITY_ENTRY {} +impl ::core::clone::Clone for DOT11_LINK_QUALITY_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_LINK_QUALITY_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uLinkQualityListSize: u32, + pub uLinkQualityListOffset: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_LINK_QUALITY_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_LINK_QUALITY_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_MAC_ADDRESS_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub MacAddrs: [u8; 6], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_MAC_ADDRESS_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_MAC_ADDRESS_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_MAC_FRAME_STATISTICS { + pub ullTransmittedFrameCount: u64, + pub ullReceivedFrameCount: u64, + pub ullTransmittedFailureFrameCount: u64, + pub ullReceivedFailureFrameCount: u64, + pub ullWEPExcludedCount: u64, + pub ullTKIPLocalMICFailures: u64, + pub ullTKIPReplays: u64, + pub ullTKIPICVErrorCount: u64, + pub ullCCMPReplays: u64, + pub ullCCMPDecryptErrors: u64, + pub ullWEPUndecryptableCount: u64, + pub ullWEPICVErrorCount: u64, + pub ullDecryptSuccessCount: u64, + pub ullDecryptFailureCount: u64, +} +impl ::core::marker::Copy for DOT11_MAC_FRAME_STATISTICS {} +impl ::core::clone::Clone for DOT11_MAC_FRAME_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_MAC_INFO { + pub uReserved: u32, + pub uNdisPortNumber: u32, + pub MacAddr: [u8; 6], +} +impl ::core::marker::Copy for DOT11_MAC_INFO {} +impl ::core::clone::Clone for DOT11_MAC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_MAC_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uOpmodeMask: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_MAC_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_MAC_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_MANUFACTURING_CALLBACK_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub dot11ManufacturingCallbackType: DOT11_MANUFACTURING_CALLBACK_TYPE, + pub uStatus: u32, + pub pvContext: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_MANUFACTURING_CALLBACK_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_MANUFACTURING_CALLBACK_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC { + pub Dot11Band: DOT11_BAND, + pub uChannel: u32, + pub ADCPowerLevel: i32, +} +impl ::core::marker::Copy for DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC {} +impl ::core::clone::Clone for DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX { + pub bEnabled: super::super::Foundation::BOOLEAN, + pub Dot11Band: DOT11_BAND, + pub uChannel: u32, + pub PowerLevel: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_MANUFACTURING_FUNCTIONAL_TEST_TX { + pub bEnable: super::super::Foundation::BOOLEAN, + pub bOpenLoop: super::super::Foundation::BOOLEAN, + pub Dot11Band: DOT11_BAND, + pub uChannel: u32, + pub uSetPowerLevel: u32, + pub ADCPowerLevel: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_MANUFACTURING_FUNCTIONAL_TEST_TX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_MANUFACTURING_FUNCTIONAL_TEST_TX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS { + pub SelfTestType: DOT11_MANUFACTURING_SELF_TEST_TYPE, + pub uTestID: u32, + pub bResult: super::super::Foundation::BOOLEAN, + pub uPinFailedBitMask: u32, + pub pvContext: *mut ::core::ffi::c_void, + pub uBytesWrittenOut: u32, + pub ucBufferOut: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_MANUFACTURING_SELF_TEST_SET_PARAMS { + pub SelfTestType: DOT11_MANUFACTURING_SELF_TEST_TYPE, + pub uTestID: u32, + pub uPinBitMask: u32, + pub pvContext: *mut ::core::ffi::c_void, + pub uBufferLength: u32, + pub ucBufferIn: [u8; 1], +} +impl ::core::marker::Copy for DOT11_MANUFACTURING_SELF_TEST_SET_PARAMS {} +impl ::core::clone::Clone for DOT11_MANUFACTURING_SELF_TEST_SET_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_MANUFACTURING_TEST { + pub dot11ManufacturingTestType: DOT11_MANUFACTURING_TEST_TYPE, + pub uBufferLength: u32, + pub ucBuffer: [u8; 1], +} +impl ::core::marker::Copy for DOT11_MANUFACTURING_TEST {} +impl ::core::clone::Clone for DOT11_MANUFACTURING_TEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_MANUFACTURING_TEST_QUERY_DATA { + pub uKey: u32, + pub uOffset: u32, + pub uBufferLength: u32, + pub uBytesRead: u32, + pub ucBufferOut: [u8; 1], +} +impl ::core::marker::Copy for DOT11_MANUFACTURING_TEST_QUERY_DATA {} +impl ::core::clone::Clone for DOT11_MANUFACTURING_TEST_QUERY_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_MANUFACTURING_TEST_SET_DATA { + pub uKey: u32, + pub uOffset: u32, + pub uBufferLength: u32, + pub ucBufferIn: [u8; 1], +} +impl ::core::marker::Copy for DOT11_MANUFACTURING_TEST_SET_DATA {} +impl ::core::clone::Clone for DOT11_MANUFACTURING_TEST_SET_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_MANUFACTURING_TEST_SLEEP { + pub uSleepTime: u32, + pub pvContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for DOT11_MANUFACTURING_TEST_SLEEP {} +impl ::core::clone::Clone for DOT11_MANUFACTURING_TEST_SLEEP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_MD_CAPABILITY_ENTRY_LIST { + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub dot11MDCapabilityEntry: [DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY; 1], +} +impl ::core::marker::Copy for DOT11_MD_CAPABILITY_ENTRY_LIST {} +impl ::core::clone::Clone for DOT11_MD_CAPABILITY_ENTRY_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_MPDU_MAX_LENGTH_INDICATION { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uPhyId: u32, + pub uMPDUMaxLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_MPDU_MAX_LENGTH_INDICATION {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_MPDU_MAX_LENGTH_INDICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +#[cfg(feature = "Win32_Security_ExtensibleAuthenticationProtocol")] +pub struct DOT11_MSONEX_RESULT_PARAMS { + pub Dot11OnexAuthStatus: ONEX_AUTH_STATUS, + pub Dot11OneXReasonCode: ONEX_REASON_CODE, + pub pbMPPESendKey: *mut u8, + pub dwMPPESendKeyLen: u32, + pub pbMPPERecvKey: *mut u8, + pub dwMPPERecvKeyLen: u32, + pub pDot11EapResult: *mut DOT11_EAP_RESULT, +} +#[cfg(feature = "Win32_Security_ExtensibleAuthenticationProtocol")] +impl ::core::marker::Copy for DOT11_MSONEX_RESULT_PARAMS {} +#[cfg(feature = "Win32_Security_ExtensibleAuthenticationProtocol")] +impl ::core::clone::Clone for DOT11_MSONEX_RESULT_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +pub struct DOT11_MSSECURITY_SETTINGS { + pub dot11AuthAlgorithm: DOT11_AUTH_ALGORITHM, + pub dot11CipherAlgorithm: DOT11_CIPHER_ALGORITHM, + pub fOneXEnabled: super::super::Foundation::BOOL, + pub eapMethodType: super::super::Security::ExtensibleAuthenticationProtocol::EAP_METHOD_TYPE, + pub dwEapConnectionDataLen: u32, + pub pEapConnectionData: *mut u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +impl ::core::marker::Copy for DOT11_MSSECURITY_SETTINGS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +impl ::core::clone::Clone for DOT11_MSSECURITY_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY { + pub uMultiDomainCapabilityIndex: u32, + pub uFirstChannelNumber: u32, + pub uNumberOfChannels: u32, + pub lMaximumTransmitPowerLevel: i32, +} +impl ::core::marker::Copy for DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY {} +impl ::core::clone::Clone for DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_NETWORK { + pub dot11Ssid: DOT11_SSID, + pub dot11BssType: DOT11_BSS_TYPE, +} +impl ::core::marker::Copy for DOT11_NETWORK {} +impl ::core::clone::Clone for DOT11_NETWORK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_NETWORK_LIST { + pub dwNumberOfItems: u32, + pub dwIndex: u32, + pub Network: [DOT11_NETWORK; 1], +} +impl ::core::marker::Copy for DOT11_NETWORK_LIST {} +impl ::core::clone::Clone for DOT11_NETWORK_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_NIC_SPECIFIC_EXTENSION { + pub uBufferLength: u32, + pub uTotalBufferLength: u32, + pub ucBuffer: [u8; 1], +} +impl ::core::marker::Copy for DOT11_NIC_SPECIFIC_EXTENSION {} +impl ::core::clone::Clone for DOT11_NIC_SPECIFIC_EXTENSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_OFDM_PHY_ATTRIBUTES { + pub uFrequencyBandsSupported: u32, +} +impl ::core::marker::Copy for DOT11_OFDM_PHY_ATTRIBUTES {} +impl ::core::clone::Clone for DOT11_OFDM_PHY_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_OFFLOAD_CAPABILITY { + pub uReserved: u32, + pub uFlags: u32, + pub uSupportedWEPAlgorithms: u32, + pub uNumOfReplayWindows: u32, + pub uMaxWEPKeyMappingLength: u32, + pub uSupportedAuthAlgorithms: u32, + pub uMaxAuthKeyMappingLength: u32, +} +impl ::core::marker::Copy for DOT11_OFFLOAD_CAPABILITY {} +impl ::core::clone::Clone for DOT11_OFFLOAD_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_OFFLOAD_NETWORK { + pub Ssid: DOT11_SSID, + pub UnicastCipher: DOT11_CIPHER_ALGORITHM, + pub AuthAlgo: DOT11_AUTH_ALGORITHM, + pub Dot11ChannelHints: [DOT11_CHANNEL_HINT; 4], +} +impl ::core::marker::Copy for DOT11_OFFLOAD_NETWORK {} +impl ::core::clone::Clone for DOT11_OFFLOAD_NETWORK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_OFFLOAD_NETWORK_LIST_INFO { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub ulFlags: u32, + pub FastScanPeriod: u32, + pub FastScanIterations: u32, + pub SlowScanPeriod: u32, + pub uNumOfEntries: u32, + pub offloadNetworkList: [DOT11_OFFLOAD_NETWORK; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_OFFLOAD_NETWORK_LIST_INFO {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_OFFLOAD_NETWORK_LIST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub Status: i32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_OI { + pub OILength: u16, + pub OI: [u8; 5], +} +impl ::core::marker::Copy for DOT11_OI {} +impl ::core::clone::Clone for DOT11_OI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_OPERATION_MODE_CAPABILITY { + pub uReserved: u32, + pub uMajorVersion: u32, + pub uMinorVersion: u32, + pub uNumOfTXBuffers: u32, + pub uNumOfRXBuffers: u32, + pub uOpModeCapability: u32, +} +impl ::core::marker::Copy for DOT11_OPERATION_MODE_CAPABILITY {} +impl ::core::clone::Clone for DOT11_OPERATION_MODE_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_OPTIONAL_CAPABILITY { + pub uReserved: u32, + pub bDot11PCF: super::super::Foundation::BOOLEAN, + pub bDot11PCFMPDUTransferToPC: super::super::Foundation::BOOLEAN, + pub bStrictlyOrderedServiceClass: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_OPTIONAL_CAPABILITY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_OPTIONAL_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_PEER_INFO { + pub MacAddress: [u8; 6], + pub usCapabilityInformation: u16, + pub AuthAlgo: DOT11_AUTH_ALGORITHM, + pub UnicastCipherAlgo: DOT11_CIPHER_ALGORITHM, + pub MulticastCipherAlgo: DOT11_CIPHER_ALGORITHM, + pub bWpsEnabled: super::super::Foundation::BOOLEAN, + pub usListenInterval: u16, + pub ucSupportedRates: [u8; 255], + pub usAssociationID: u16, + pub AssociationState: DOT11_ASSOCIATION_STATE, + pub PowerMode: DOT11_POWER_MODE, + pub liAssociationUpTime: i64, + pub Statistics: DOT11_PEER_STATISTICS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_PEER_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_PEER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_PEER_INFO_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub PeerInfo: [DOT11_PEER_INFO; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_PEER_INFO_LIST {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_PEER_INFO_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_PEER_STATISTICS { + pub ullDecryptSuccessCount: u64, + pub ullDecryptFailureCount: u64, + pub ullTxPacketSuccessCount: u64, + pub ullTxPacketFailureCount: u64, + pub ullRxPacketSuccessCount: u64, + pub ullRxPacketFailureCount: u64, +} +impl ::core::marker::Copy for DOT11_PEER_STATISTICS {} +impl ::core::clone::Clone for DOT11_PEER_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_PER_MSDU_COUNTERS { + pub uTransmittedFragmentCount: u32, + pub uRetryCount: u32, + pub uRTSSuccessCount: u32, + pub uRTSFailureCount: u32, + pub uACKFailureCount: u32, +} +impl ::core::marker::Copy for DOT11_PER_MSDU_COUNTERS {} +impl ::core::clone::Clone for DOT11_PER_MSDU_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_PHY_ATTRIBUTES { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PhyType: DOT11_PHY_TYPE, + pub bHardwarePhyState: super::super::Foundation::BOOLEAN, + pub bSoftwarePhyState: super::super::Foundation::BOOLEAN, + pub bCFPollable: super::super::Foundation::BOOLEAN, + pub uMPDUMaxLength: u32, + pub TempType: DOT11_TEMP_TYPE, + pub DiversitySupport: DOT11_DIVERSITY_SUPPORT, + pub PhySpecificAttributes: DOT11_PHY_ATTRIBUTES_0, + pub uNumberSupportedPowerLevels: u32, + pub TxPowerLevels: [u32; 8], + pub uNumDataRateMappingEntries: u32, + pub DataRateMappingEntries: [DOT11_DATA_RATE_MAPPING_ENTRY; 126], + pub SupportedDataRatesValue: DOT11_SUPPORTED_DATA_RATES_VALUE_V2, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_PHY_ATTRIBUTES {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_PHY_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub union DOT11_PHY_ATTRIBUTES_0 { + pub HRDSSSAttributes: DOT11_HRDSSS_PHY_ATTRIBUTES, + pub OFDMAttributes: DOT11_OFDM_PHY_ATTRIBUTES, + pub ERPAttributes: DOT11_ERP_PHY_ATTRIBUTES, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_PHY_ATTRIBUTES_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_PHY_ATTRIBUTES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_PHY_FRAME_STATISTICS { + pub ullTransmittedFrameCount: u64, + pub ullMulticastTransmittedFrameCount: u64, + pub ullFailedCount: u64, + pub ullRetryCount: u64, + pub ullMultipleRetryCount: u64, + pub ullMaxTXLifetimeExceededCount: u64, + pub ullTransmittedFragmentCount: u64, + pub ullRTSSuccessCount: u64, + pub ullRTSFailureCount: u64, + pub ullACKFailureCount: u64, + pub ullReceivedFrameCount: u64, + pub ullMulticastReceivedFrameCount: u64, + pub ullPromiscuousReceivedFrameCount: u64, + pub ullMaxRXLifetimeExceededCount: u64, + pub ullFrameDuplicateCount: u64, + pub ullReceivedFragmentCount: u64, + pub ullPromiscuousReceivedFragmentCount: u64, + pub ullFCSErrorCount: u64, +} +impl ::core::marker::Copy for DOT11_PHY_FRAME_STATISTICS {} +impl ::core::clone::Clone for DOT11_PHY_FRAME_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub ulPhyId: u32, + pub Anonymous: DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_0, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub union DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_0 { + pub ulChannel: u32, + pub ulFrequency: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_0 {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_PHY_ID_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub dot11PhyId: [u32; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_PHY_ID_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_PHY_ID_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_PHY_STATE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uPhyId: u32, + pub bHardwarePhyState: super::super::Foundation::BOOLEAN, + pub bSoftwarePhyState: super::super::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_PHY_STATE_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_PHY_STATE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_PHY_TYPE_INFO { + pub dot11PhyType: DOT11_PHY_TYPE, + pub bUseParameters: super::super::Foundation::BOOLEAN, + pub uProbeDelay: u32, + pub uMinChannelTime: u32, + pub uMaxChannelTime: u32, + pub ChDescriptionType: CH_DESCRIPTION_TYPE, + pub uChannelListSize: u32, + pub ucChannelListBuffer: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_PHY_TYPE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_PHY_TYPE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_PHY_TYPE_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub dot11PhyType: [DOT11_PHY_TYPE; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_PHY_TYPE_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_PHY_TYPE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_PMKID_CANDIDATE_LIST_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uCandidateListSize: u32, + pub uCandidateListOffset: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_PMKID_CANDIDATE_LIST_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_PMKID_CANDIDATE_LIST_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_PMKID_ENTRY { + pub BSSID: [u8; 6], + pub PMKID: [u8; 16], + pub uFlags: u32, +} +impl ::core::marker::Copy for DOT11_PMKID_ENTRY {} +impl ::core::clone::Clone for DOT11_PMKID_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_PMKID_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub PMKIDs: [DOT11_PMKID_ENTRY; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_PMKID_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_PMKID_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_PORT_STATE { + pub PeerMacAddress: [u8; 6], + pub uSessionId: u32, + pub bPortControlled: super::super::Foundation::BOOL, + pub bPortAuthorized: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_PORT_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_PORT_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_PORT_STATE_NOTIFICATION { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerMac: [u8; 6], + pub bOpen: super::super::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_PORT_STATE_NOTIFICATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_PORT_STATE_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub bEnabled: super::super::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_POWER_MGMT_MODE { + pub dot11PowerMode: DOT11_POWER_MODE, + pub uPowerSaveLevel: u32, + pub usListenInterval: u16, + pub usAID: u16, + pub bReceiveDTIMs: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_POWER_MGMT_MODE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_POWER_MGMT_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_POWER_MGMT_MODE_STATUS_INFO { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PowerSaveMode: DOT11_POWER_MODE, + pub uPowerSaveLevel: u32, + pub Reason: DOT11_POWER_MODE_REASON, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_POWER_MGMT_MODE_STATUS_INFO {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_POWER_MGMT_MODE_STATUS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_PRIVACY_EXEMPTION { + pub usEtherType: u16, + pub usExemptionActionType: u16, + pub usExemptionPacketType: u16, +} +impl ::core::marker::Copy for DOT11_PRIVACY_EXEMPTION {} +impl ::core::clone::Clone for DOT11_PRIVACY_EXEMPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_PRIVACY_EXEMPTION_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub PrivacyExemptionEntries: [DOT11_PRIVACY_EXEMPTION; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_PRIVACY_EXEMPTION_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_PRIVACY_EXEMPTION_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerDeviceAddress: [u8; 6], + pub ReceiverAddress: [u8; 6], + pub DialogToken: u8, + pub Status: i32, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub ReceiverDeviceAddress: [u8; 6], + pub DialogToken: u8, + pub Status: i32, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_QOS_PARAMS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub ucEnabledQoSProtocolFlags: u8, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_QOS_PARAMS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_QOS_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_QOS_TX_DURATION { + pub uNominalMSDUSize: u32, + pub uMinPHYRate: u32, + pub uDuration: u32, +} +impl ::core::marker::Copy for DOT11_QOS_TX_DURATION {} +impl ::core::clone::Clone for DOT11_QOS_TX_DURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_QOS_TX_MEDIUM_TIME { + pub dot11PeerAddress: [u8; 6], + pub ucQoSPriority: u8, + pub uMediumTimeAdmited: u32, +} +impl ::core::marker::Copy for DOT11_QOS_TX_MEDIUM_TIME {} +impl ::core::clone::Clone for DOT11_QOS_TX_MEDIUM_TIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_RATE_SET { + pub uRateSetLength: u32, + pub ucRateSet: [u8; 126], +} +impl ::core::marker::Copy for DOT11_RATE_SET {} +impl ::core::clone::Clone for DOT11_RATE_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerDeviceAddress: [u8; 6], + pub DialogToken: u8, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerDeviceAddress: [u8; 6], + pub DialogToken: u8, + pub RequestContext: *mut ::core::ffi::c_void, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerDeviceAddress: [u8; 6], + pub DialogToken: u8, + pub ResponseContext: *mut ::core::ffi::c_void, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub TransmitterDeviceAddress: [u8; 6], + pub BSSID: [u8; 6], + pub DialogToken: u8, + pub RequestContext: *mut ::core::ffi::c_void, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub TransmitterDeviceAddress: [u8; 6], + pub BSSID: [u8; 6], + pub DialogToken: u8, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub TransmitterDeviceAddress: [u8; 6], + pub BSSID: [u8; 6], + pub DialogToken: u8, + pub RequestContext: *mut ::core::ffi::c_void, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub TransmitterDeviceAddress: [u8; 6], + pub BSSID: [u8; 6], + pub DialogToken: u8, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_RECV_EXTENSION_INFO { + pub uVersion: u32, + pub pvReserved: *mut ::core::ffi::c_void, + pub dot11PhyType: DOT11_PHY_TYPE, + pub uChCenterFrequency: u32, + pub lRSSI: i32, + pub lRSSIMin: i32, + pub lRSSIMax: i32, + pub uRSSI: u32, + pub ucPriority: u8, + pub ucDataRate: u8, + pub ucPeerMacAddress: [u8; 6], + pub dwExtendedStatus: u32, + pub hWEPOffloadContext: super::super::Foundation::HANDLE, + pub hAuthOffloadContext: super::super::Foundation::HANDLE, + pub usWEPAppliedMask: u16, + pub usWPAMSDUPriority: u16, + pub dot11LowestIV48Counter: DOT11_IV48_COUNTER, + pub usDot11LeftRWBitMap: u16, + pub dot11HighestIV48Counter: DOT11_IV48_COUNTER, + pub usDot11RightRWBitMap: u16, + pub usNumberOfMPDUsReceived: u16, + pub usNumberOfFragments: u16, + pub pNdisPackets: [*mut ::core::ffi::c_void; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_RECV_EXTENSION_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_RECV_EXTENSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_RECV_EXTENSION_INFO_V2 { + pub uVersion: u32, + pub pvReserved: *mut ::core::ffi::c_void, + pub dot11PhyType: DOT11_PHY_TYPE, + pub uChCenterFrequency: u32, + pub lRSSI: i32, + pub uRSSI: u32, + pub ucPriority: u8, + pub ucDataRate: u8, + pub ucPeerMacAddress: [u8; 6], + pub dwExtendedStatus: u32, + pub hWEPOffloadContext: super::super::Foundation::HANDLE, + pub hAuthOffloadContext: super::super::Foundation::HANDLE, + pub usWEPAppliedMask: u16, + pub usWPAMSDUPriority: u16, + pub dot11LowestIV48Counter: DOT11_IV48_COUNTER, + pub usDot11LeftRWBitMap: u16, + pub dot11HighestIV48Counter: DOT11_IV48_COUNTER, + pub usDot11RightRWBitMap: u16, + pub usNumberOfMPDUsReceived: u16, + pub usNumberOfFragments: u16, + pub pNdisPackets: [*mut ::core::ffi::c_void; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_RECV_EXTENSION_INFO_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_RECV_EXTENSION_INFO_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_RECV_SENSITIVITY { + pub ucDataRate: u8, + pub lRSSIMin: i32, + pub lRSSIMax: i32, +} +impl ::core::marker::Copy for DOT11_RECV_SENSITIVITY {} +impl ::core::clone::Clone for DOT11_RECV_SENSITIVITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_RECV_SENSITIVITY_LIST { + pub Anonymous: DOT11_RECV_SENSITIVITY_LIST_0, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub dot11RecvSensitivity: [DOT11_RECV_SENSITIVITY; 1], +} +impl ::core::marker::Copy for DOT11_RECV_SENSITIVITY_LIST {} +impl ::core::clone::Clone for DOT11_RECV_SENSITIVITY_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DOT11_RECV_SENSITIVITY_LIST_0 { + pub dot11PhyType: DOT11_PHY_TYPE, + pub uPhyId: u32, +} +impl ::core::marker::Copy for DOT11_RECV_SENSITIVITY_LIST_0 {} +impl ::core::clone::Clone for DOT11_RECV_SENSITIVITY_LIST_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_REG_DOMAINS_SUPPORT_VALUE { + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub dot11RegDomainValue: [DOT11_REG_DOMAIN_VALUE; 1], +} +impl ::core::marker::Copy for DOT11_REG_DOMAINS_SUPPORT_VALUE {} +impl ::core::clone::Clone for DOT11_REG_DOMAINS_SUPPORT_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_REG_DOMAIN_VALUE { + pub uRegDomainsSupportIndex: u32, + pub uRegDomainsSupportValue: u32, +} +impl ::core::marker::Copy for DOT11_REG_DOMAIN_VALUE {} +impl ::core::clone::Clone for DOT11_REG_DOMAIN_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_RESET_REQUEST { + pub dot11ResetType: DOT11_RESET_TYPE, + pub dot11MacAddress: [u8; 6], + pub bSetDefaultMIB: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_RESET_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_RESET_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_ROAMING_COMPLETION_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uStatus: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_ROAMING_COMPLETION_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_ROAMING_COMPLETION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_ROAMING_START_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub AdhocBSSID: [u8; 6], + pub AdhocSSID: DOT11_SSID, + pub uRoamingReason: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_ROAMING_START_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_ROAMING_START_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_RSSI_RANGE { + pub dot11PhyType: DOT11_PHY_TYPE, + pub uRSSIMin: u32, + pub uRSSIMax: u32, +} +impl ::core::marker::Copy for DOT11_RSSI_RANGE {} +impl ::core::clone::Clone for DOT11_RSSI_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_SCAN_REQUEST { + pub dot11BSSType: DOT11_BSS_TYPE, + pub dot11BSSID: [u8; 6], + pub dot11SSID: DOT11_SSID, + pub dot11ScanType: DOT11_SCAN_TYPE, + pub bRestrictedScan: super::super::Foundation::BOOLEAN, + pub bUseRequestIE: super::super::Foundation::BOOLEAN, + pub uRequestIDsOffset: u32, + pub uNumOfRequestIDs: u32, + pub uPhyTypesOffset: u32, + pub uNumOfPhyTypes: u32, + pub uIEsOffset: u32, + pub uIEsLength: u32, + pub ucBuffer: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_SCAN_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_SCAN_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_SCAN_REQUEST_V2 { + pub dot11BSSType: DOT11_BSS_TYPE, + pub dot11BSSID: [u8; 6], + pub dot11ScanType: DOT11_SCAN_TYPE, + pub bRestrictedScan: super::super::Foundation::BOOLEAN, + pub udot11SSIDsOffset: u32, + pub uNumOfdot11SSIDs: u32, + pub bUseRequestIE: super::super::Foundation::BOOLEAN, + pub uRequestIDsOffset: u32, + pub uNumOfRequestIDs: u32, + pub uPhyTypeInfosOffset: u32, + pub uNumOfPhyTypeInfos: u32, + pub uIEsOffset: u32, + pub uIEsLength: u32, + pub ucBuffer: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_SCAN_REQUEST_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_SCAN_REQUEST_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DOT11_SECURITY_PACKET_HEADER { + pub PeerMac: [u8; 6], + pub usEtherType: u16, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for DOT11_SECURITY_PACKET_HEADER {} +impl ::core::clone::Clone for DOT11_SECURITY_PACKET_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerDeviceAddress: [u8; 6], + pub DialogToken: u8, + pub ResponseContext: *mut ::core::ffi::c_void, + pub uSendTimeout: u32, + pub Status: u8, + pub GroupCapability: u8, + pub GroupID: DOT11_WFD_GROUP_ID, + pub bUseGroupID: super::super::Foundation::BOOLEAN, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerDeviceAddress: [u8; 6], + pub DialogToken: u8, + pub uSendTimeout: u32, + pub GroupOwnerIntent: DOT11_WFD_GO_INTENT, + pub MinimumConfigTimeout: DOT11_WFD_CONFIGURATION_TIMEOUT, + pub IntendedInterfaceAddress: [u8; 6], + pub GroupCapability: u8, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub PeerDeviceAddress: [u8; 6], + pub DialogToken: u8, + pub RequestContext: *mut ::core::ffi::c_void, + pub uSendTimeout: u32, + pub Status: u8, + pub GroupOwnerIntent: DOT11_WFD_GO_INTENT, + pub MinimumConfigTimeout: DOT11_WFD_CONFIGURATION_TIMEOUT, + pub IntendedInterfaceAddress: [u8; 6], + pub GroupCapability: u8, + pub GroupID: DOT11_WFD_GROUP_ID, + pub bUseGroupID: super::super::Foundation::BOOLEAN, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_SEND_INVITATION_REQUEST_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub DialogToken: u8, + pub PeerDeviceAddress: [u8; 6], + pub uSendTimeout: u32, + pub MinimumConfigTimeout: DOT11_WFD_CONFIGURATION_TIMEOUT, + pub InvitationFlags: DOT11_WFD_INVITATION_FLAGS, + pub GroupBSSID: [u8; 6], + pub bUseGroupBSSID: super::super::Foundation::BOOLEAN, + pub OperatingChannel: DOT11_WFD_CHANNEL, + pub bUseSpecifiedOperatingChannel: super::super::Foundation::BOOLEAN, + pub GroupID: DOT11_WFD_GROUP_ID, + pub bLocalGO: super::super::Foundation::BOOLEAN, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_SEND_INVITATION_REQUEST_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_SEND_INVITATION_REQUEST_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_SEND_INVITATION_RESPONSE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub ReceiverDeviceAddress: [u8; 6], + pub DialogToken: u8, + pub RequestContext: *mut ::core::ffi::c_void, + pub uSendTimeout: u32, + pub Status: u8, + pub MinimumConfigTimeout: DOT11_WFD_CONFIGURATION_TIMEOUT, + pub GroupBSSID: [u8; 6], + pub bUseGroupBSSID: super::super::Foundation::BOOLEAN, + pub OperatingChannel: DOT11_WFD_CHANNEL, + pub bUseSpecifiedOperatingChannel: super::super::Foundation::BOOLEAN, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_SEND_INVITATION_RESPONSE_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_SEND_INVITATION_RESPONSE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub DialogToken: u8, + pub PeerDeviceAddress: [u8; 6], + pub uSendTimeout: u32, + pub GroupCapability: u8, + pub GroupID: DOT11_WFD_GROUP_ID, + pub bUseGroupID: super::super::Foundation::BOOLEAN, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub ReceiverDeviceAddress: [u8; 6], + pub DialogToken: u8, + pub RequestContext: *mut ::core::ffi::c_void, + pub uSendTimeout: u32, + pub uIEsOffset: u32, + pub uIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_SSID { + pub uSSIDLength: u32, + pub ucSSID: [u8; 32], +} +impl ::core::marker::Copy for DOT11_SSID {} +impl ::core::clone::Clone for DOT11_SSID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_SSID_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub SSIDs: [DOT11_SSID; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_SSID_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_SSID_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_START_REQUEST { + pub uStartFailureTimeout: u32, + pub OperationalRateSet: DOT11_RATE_SET, + pub uChCenterFrequency: u32, + pub dot11BSSDescription: DOT11_BSS_DESCRIPTION, +} +impl ::core::marker::Copy for DOT11_START_REQUEST {} +impl ::core::clone::Clone for DOT11_START_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_STATISTICS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub ullFourWayHandshakeFailures: u64, + pub ullTKIPCounterMeasuresInvoked: u64, + pub ullReserved: u64, + pub MacUcastCounters: DOT11_MAC_FRAME_STATISTICS, + pub MacMcastCounters: DOT11_MAC_FRAME_STATISTICS, + pub PhyCounters: [DOT11_PHY_FRAME_STATISTICS; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_STATISTICS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_STATUS_INDICATION { + pub uStatusType: u32, + pub ndisStatus: i32, +} +impl ::core::marker::Copy for DOT11_STATUS_INDICATION {} +impl ::core::clone::Clone for DOT11_STATUS_INDICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_STOP_AP_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub ulReason: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_STOP_AP_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_STOP_AP_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_SUPPORTED_ANTENNA { + pub uAntennaListIndex: u32, + pub bSupportedAntenna: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_SUPPORTED_ANTENNA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_SUPPORTED_ANTENNA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_SUPPORTED_ANTENNA_LIST { + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub dot11SupportedAntenna: [DOT11_SUPPORTED_ANTENNA; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_SUPPORTED_ANTENNA_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_SUPPORTED_ANTENNA_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_SUPPORTED_DATA_RATES_VALUE { + pub ucSupportedTxDataRatesValue: [u8; 8], + pub ucSupportedRxDataRatesValue: [u8; 8], +} +impl ::core::marker::Copy for DOT11_SUPPORTED_DATA_RATES_VALUE {} +impl ::core::clone::Clone for DOT11_SUPPORTED_DATA_RATES_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_SUPPORTED_DATA_RATES_VALUE_V2 { + pub ucSupportedTxDataRatesValue: [u8; 255], + pub ucSupportedRxDataRatesValue: [u8; 255], +} +impl ::core::marker::Copy for DOT11_SUPPORTED_DATA_RATES_VALUE_V2 {} +impl ::core::clone::Clone for DOT11_SUPPORTED_DATA_RATES_VALUE_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_SUPPORTED_DSSS_CHANNEL { + pub uChannel: u32, +} +impl ::core::marker::Copy for DOT11_SUPPORTED_DSSS_CHANNEL {} +impl ::core::clone::Clone for DOT11_SUPPORTED_DSSS_CHANNEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_SUPPORTED_DSSS_CHANNEL_LIST { + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub dot11SupportedDSSSChannel: [DOT11_SUPPORTED_DSSS_CHANNEL; 1], +} +impl ::core::marker::Copy for DOT11_SUPPORTED_DSSS_CHANNEL_LIST {} +impl ::core::clone::Clone for DOT11_SUPPORTED_DSSS_CHANNEL_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_SUPPORTED_OFDM_FREQUENCY { + pub uCenterFrequency: u32, +} +impl ::core::marker::Copy for DOT11_SUPPORTED_OFDM_FREQUENCY {} +impl ::core::clone::Clone for DOT11_SUPPORTED_OFDM_FREQUENCY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_SUPPORTED_OFDM_FREQUENCY_LIST { + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub dot11SupportedOFDMFrequency: [DOT11_SUPPORTED_OFDM_FREQUENCY; 1], +} +impl ::core::marker::Copy for DOT11_SUPPORTED_OFDM_FREQUENCY_LIST {} +impl ::core::clone::Clone for DOT11_SUPPORTED_OFDM_FREQUENCY_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_SUPPORTED_PHY_TYPES { + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub dot11PHYType: [DOT11_PHY_TYPE; 1], +} +impl ::core::marker::Copy for DOT11_SUPPORTED_PHY_TYPES {} +impl ::core::clone::Clone for DOT11_SUPPORTED_PHY_TYPES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_SUPPORTED_POWER_LEVELS { + pub uNumOfSupportedPowerLevels: u32, + pub uTxPowerLevelValues: [u32; 8], +} +impl ::core::marker::Copy for DOT11_SUPPORTED_POWER_LEVELS {} +impl ::core::clone::Clone for DOT11_SUPPORTED_POWER_LEVELS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_TKIPMIC_FAILURE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub bDefaultKeyFailure: super::super::Foundation::BOOLEAN, + pub uKeyIndex: u32, + pub PeerMac: [u8; 6], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_TKIPMIC_FAILURE_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_TKIPMIC_FAILURE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_UPDATE_IE { + pub dot11UpdateIEOp: DOT11_UPDATE_IE_OP, + pub uBufferLength: u32, + pub ucBuffer: [u8; 1], +} +impl ::core::marker::Copy for DOT11_UPDATE_IE {} +impl ::core::clone::Clone for DOT11_UPDATE_IE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_VENUEINFO { + pub VenueGroup: u8, + pub VenueType: u8, +} +impl ::core::marker::Copy for DOT11_VENUEINFO {} +impl ::core::clone::Clone for DOT11_VENUEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_VWIFI_ATTRIBUTES { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uTotalNumOfEntries: u32, + pub Combinations: [DOT11_VWIFI_COMBINATION; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_VWIFI_ATTRIBUTES {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_VWIFI_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_VWIFI_COMBINATION { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumInfrastructure: u32, + pub uNumAdhoc: u32, + pub uNumSoftAP: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_VWIFI_COMBINATION {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_VWIFI_COMBINATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_VWIFI_COMBINATION_V2 { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumInfrastructure: u32, + pub uNumAdhoc: u32, + pub uNumSoftAP: u32, + pub uNumVirtualStation: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_VWIFI_COMBINATION_V2 {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_VWIFI_COMBINATION_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_VWIFI_COMBINATION_V3 { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumInfrastructure: u32, + pub uNumAdhoc: u32, + pub uNumSoftAP: u32, + pub uNumVirtualStation: u32, + pub uNumWFDGroup: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_VWIFI_COMBINATION_V3 {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_VWIFI_COMBINATION_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_WEP_OFFLOAD { + pub uReserved: u32, + pub hOffloadContext: super::super::Foundation::HANDLE, + pub hOffload: super::super::Foundation::HANDLE, + pub dot11OffloadType: DOT11_OFFLOAD_TYPE, + pub dwAlgorithm: u32, + pub bRowIsOutbound: super::super::Foundation::BOOLEAN, + pub bUseDefault: super::super::Foundation::BOOLEAN, + pub uFlags: u32, + pub ucMacAddress: [u8; 6], + pub uNumOfRWsOnPeer: u32, + pub uNumOfRWsOnMe: u32, + pub dot11IV48Counters: [DOT11_IV48_COUNTER; 16], + pub usDot11RWBitMaps: [u16; 16], + pub usKeyLength: u16, + pub ucKey: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_WEP_OFFLOAD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_WEP_OFFLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_WEP_UPLOAD { + pub uReserved: u32, + pub dot11OffloadType: DOT11_OFFLOAD_TYPE, + pub hOffload: super::super::Foundation::HANDLE, + pub uNumOfRWsUsed: u32, + pub dot11IV48Counters: [DOT11_IV48_COUNTER; 16], + pub usDot11RWBitMaps: [u16; 16], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_WEP_UPLOAD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_WEP_UPLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_WFD_ADDITIONAL_IE { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uBeaconIEsOffset: u32, + pub uBeaconIEsLength: u32, + pub uProbeResponseIEsOffset: u32, + pub uProbeResponseIEsLength: u32, + pub uDefaultRequestIEsOffset: u32, + pub uDefaultRequestIEsLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_WFD_ADDITIONAL_IE {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_WFD_ADDITIONAL_IE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR { + pub AdvertisementID: u32, + pub ConfigMethods: u16, + pub ServiceNameLength: u8, + pub ServiceName: [u8; 255], +} +impl ::core::marker::Copy for DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR {} +impl ::core::clone::Clone for DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_ADVERTISED_SERVICE_LIST { + pub ServiceCount: u16, + pub AdvertisedService: [DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR; 1], +} +impl ::core::marker::Copy for DOT11_WFD_ADVERTISED_SERVICE_LIST {} +impl ::core::clone::Clone for DOT11_WFD_ADVERTISED_SERVICE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_ADVERTISEMENT_ID { + pub AdvertisementID: u32, + pub ServiceAddress: [u8; 6], +} +impl ::core::marker::Copy for DOT11_WFD_ADVERTISEMENT_ID {} +impl ::core::clone::Clone for DOT11_WFD_ADVERTISEMENT_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_WFD_ATTRIBUTES { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumConcurrentGORole: u32, + pub uNumConcurrentClientRole: u32, + pub WPSVersionsSupported: u32, + pub bServiceDiscoverySupported: super::super::Foundation::BOOLEAN, + pub bClientDiscoverabilitySupported: super::super::Foundation::BOOLEAN, + pub bInfrastructureManagementSupported: super::super::Foundation::BOOLEAN, + pub uMaxSecondaryDeviceTypeListSize: u32, + pub DeviceAddress: [u8; 6], + pub uInterfaceAddressListCount: u32, + pub pInterfaceAddressList: *mut u8, + pub uNumSupportedCountryOrRegionStrings: u32, + pub pSupportedCountryOrRegionStrings: *mut u8, + pub uDiscoveryFilterListSize: u32, + pub uGORoleClientTableSize: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_WFD_ATTRIBUTES {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_WFD_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_CHANNEL { + pub CountryRegionString: [u8; 3], + pub OperatingClass: u8, + pub ChannelNumber: u8, +} +impl ::core::marker::Copy for DOT11_WFD_CHANNEL {} +impl ::core::clone::Clone for DOT11_WFD_CHANNEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_CONFIGURATION_TIMEOUT { + pub GOTimeout: u8, + pub ClientTimeout: u8, +} +impl ::core::marker::Copy for DOT11_WFD_CONFIGURATION_TIMEOUT {} +impl ::core::clone::Clone for DOT11_WFD_CONFIGURATION_TIMEOUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_WFD_DEVICE_CAPABILITY_CONFIG { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub bServiceDiscoveryEnabled: super::super::Foundation::BOOLEAN, + pub bClientDiscoverabilityEnabled: super::super::Foundation::BOOLEAN, + pub bConcurrentOperationSupported: super::super::Foundation::BOOLEAN, + pub bInfrastructureManagementEnabled: super::super::Foundation::BOOLEAN, + pub bDeviceLimitReached: super::super::Foundation::BOOLEAN, + pub bInvitationProcedureEnabled: super::super::Foundation::BOOLEAN, + pub WPSVersionsEnabled: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_WFD_DEVICE_CAPABILITY_CONFIG {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_WFD_DEVICE_CAPABILITY_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_DEVICE_ENTRY { + pub uPhyId: u32, + pub PhySpecificInfo: DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO, + pub dot11BSSID: [u8; 6], + pub dot11BSSType: DOT11_BSS_TYPE, + pub TransmitterAddress: [u8; 6], + pub lRSSI: i32, + pub uLinkQuality: u32, + pub usBeaconPeriod: u16, + pub ullTimestamp: u64, + pub ullBeaconHostTimestamp: u64, + pub ullProbeResponseHostTimestamp: u64, + pub usCapabilityInformation: u16, + pub uBeaconIEsOffset: u32, + pub uBeaconIEsLength: u32, + pub uProbeResponseIEsOffset: u32, + pub uProbeResponseIEsLength: u32, +} +impl ::core::marker::Copy for DOT11_WFD_DEVICE_ENTRY {} +impl ::core::clone::Clone for DOT11_WFD_DEVICE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_WFD_DEVICE_INFO { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub DeviceAddress: [u8; 6], + pub ConfigMethods: u16, + pub PrimaryDeviceType: DOT11_WFD_DEVICE_TYPE, + pub DeviceName: DOT11_WPS_DEVICE_NAME, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_WFD_DEVICE_INFO {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_WFD_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_WFD_DEVICE_LISTEN_CHANNEL { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub ChannelNumber: u8, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_WFD_DEVICE_LISTEN_CHANNEL {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_WFD_DEVICE_LISTEN_CHANNEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_DEVICE_TYPE { + pub CategoryID: u16, + pub SubCategoryID: u16, + pub OUI: [u8; 4], +} +impl ::core::marker::Copy for DOT11_WFD_DEVICE_TYPE {} +impl ::core::clone::Clone for DOT11_WFD_DEVICE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub Status: i32, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub uListOffset: u32, + pub uListLength: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_DISCOVER_DEVICE_FILTER { + pub DeviceID: [u8; 6], + pub ucBitmask: u8, + pub GroupSSID: DOT11_SSID, +} +impl ::core::marker::Copy for DOT11_WFD_DISCOVER_DEVICE_FILTER {} +impl ::core::clone::Clone for DOT11_WFD_DISCOVER_DEVICE_FILTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_WFD_DISCOVER_REQUEST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub DiscoverType: DOT11_WFD_DISCOVER_TYPE, + pub ScanType: DOT11_WFD_SCAN_TYPE, + pub uDiscoverTimeout: u32, + pub uDeviceFilterListOffset: u32, + pub uNumDeviceFilters: u32, + pub uIEsOffset: u32, + pub uIEsLength: u32, + pub bForceScanLegacyNetworks: super::super::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_WFD_DISCOVER_REQUEST {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_WFD_DISCOVER_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_GO_INTENT { + pub _bitfield: u8, +} +impl ::core::marker::Copy for DOT11_WFD_GO_INTENT {} +impl ::core::clone::Clone for DOT11_WFD_GO_INTENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_GROUP_ID { + pub DeviceAddress: [u8; 6], + pub SSID: DOT11_SSID, +} +impl ::core::marker::Copy for DOT11_WFD_GROUP_ID {} +impl ::core::clone::Clone for DOT11_WFD_GROUP_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_WFD_GROUP_JOIN_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub GOOperatingChannel: DOT11_WFD_CHANNEL, + pub GOConfigTime: u32, + pub bInGroupFormation: super::super::Foundation::BOOLEAN, + pub bWaitForWPSReady: super::super::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_WFD_GROUP_JOIN_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_WFD_GROUP_JOIN_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub bPersistentGroupEnabled: super::super::Foundation::BOOLEAN, + pub bIntraBSSDistributionSupported: super::super::Foundation::BOOLEAN, + pub bCrossConnectionSupported: super::super::Foundation::BOOLEAN, + pub bPersistentReconnectSupported: super::super::Foundation::BOOLEAN, + pub bGroupFormationEnabled: super::super::Foundation::BOOLEAN, + pub uMaximumGroupLimit: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub struct DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2 { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub bPersistentGroupEnabled: super::super::Foundation::BOOLEAN, + pub bIntraBSSDistributionSupported: super::super::Foundation::BOOLEAN, + pub bCrossConnectionSupported: super::super::Foundation::BOOLEAN, + pub bPersistentReconnectSupported: super::super::Foundation::BOOLEAN, + pub bGroupFormationEnabled: super::super::Foundation::BOOLEAN, + pub uMaximumGroupLimit: u32, + pub bEapolKeyIpAddressAllocationSupported: super::super::Foundation::BOOLEAN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::marker::Copy for DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +impl ::core::clone::Clone for DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_WFD_GROUP_START_PARAMETERS { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub AdvertisedOperatingChannel: DOT11_WFD_CHANNEL, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_WFD_GROUP_START_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_WFD_GROUP_START_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_INVITATION_FLAGS { + pub _bitfield: u8, +} +impl ::core::marker::Copy for DOT11_WFD_INVITATION_FLAGS {} +impl ::core::clone::Clone for DOT11_WFD_INVITATION_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST { + pub Header: super::Ndis::NDIS_OBJECT_HEADER, + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub SecondaryDeviceTypes: [DOT11_WFD_DEVICE_TYPE; 1], +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_SERVICE_HASH_LIST { + pub ServiceHashCount: u16, + pub ServiceHash: [u8; 6], +} +impl ::core::marker::Copy for DOT11_WFD_SERVICE_HASH_LIST {} +impl ::core::clone::Clone for DOT11_WFD_SERVICE_HASH_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_SESSION_ID { + pub SessionID: u32, + pub SessionAddress: [u8; 6], +} +impl ::core::marker::Copy for DOT11_WFD_SESSION_ID {} +impl ::core::clone::Clone for DOT11_WFD_SESSION_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WFD_SESSION_INFO { + pub uSessionInfoLength: u16, + pub ucSessionInfo: [u8; 144], +} +impl ::core::marker::Copy for DOT11_WFD_SESSION_INFO {} +impl ::core::clone::Clone for DOT11_WFD_SESSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WME_AC_PARAMETERS { + pub ucAccessCategoryIndex: u8, + pub ucAIFSN: u8, + pub ucECWmin: u8, + pub ucECWmax: u8, + pub usTXOPLimit: u16, +} +impl ::core::marker::Copy for DOT11_WME_AC_PARAMETERS {} +impl ::core::clone::Clone for DOT11_WME_AC_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WME_AC_PARAMETERS_LIST { + pub uNumOfEntries: u32, + pub uTotalNumOfEntries: u32, + pub dot11WMEACParameters: [DOT11_WME_AC_PARAMETERS; 1], +} +impl ::core::marker::Copy for DOT11_WME_AC_PARAMETERS_LIST {} +impl ::core::clone::Clone for DOT11_WME_AC_PARAMETERS_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WME_UPDATE_IE { + pub uParamElemMinBeaconIntervals: u32, + pub uWMEInfoElemOffset: u32, + pub uWMEInfoElemLength: u32, + pub uWMEParamElemOffset: u32, + pub uWMEParamElemLength: u32, + pub ucBuffer: [u8; 1], +} +impl ::core::marker::Copy for DOT11_WME_UPDATE_IE {} +impl ::core::clone::Clone for DOT11_WME_UPDATE_IE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOT11_WPA_TSC { + pub uReserved: u32, + pub dot11OffloadType: DOT11_OFFLOAD_TYPE, + pub hOffload: super::super::Foundation::HANDLE, + pub dot11IV48Counter: DOT11_IV48_COUNTER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOT11_WPA_TSC {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOT11_WPA_TSC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOT11_WPS_DEVICE_NAME { + pub uDeviceNameLength: u32, + pub ucDeviceName: [u8; 32], +} +impl ::core::marker::Copy for DOT11_WPS_DEVICE_NAME {} +impl ::core::clone::Clone for DOT11_WPS_DEVICE_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct L2_NOTIFICATION_DATA { + pub NotificationSource: WLAN_NOTIFICATION_SOURCES, + pub NotificationCode: u32, + pub InterfaceGuid: ::windows_sys::core::GUID, + pub dwDataSize: u32, + pub pData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for L2_NOTIFICATION_DATA {} +impl ::core::clone::Clone for L2_NOTIFICATION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ONEX_AUTH_PARAMS { + pub fUpdatePending: super::super::Foundation::BOOL, + pub oneXConnProfile: ONEX_VARIABLE_BLOB, + pub authIdentity: ONEX_AUTH_IDENTITY, + pub dwQuarantineState: u32, + pub _bitfield: u32, + pub dwSessionId: u32, + pub hUserToken: super::super::Foundation::HANDLE, + pub OneXUserProfile: ONEX_VARIABLE_BLOB, + pub Identity: ONEX_VARIABLE_BLOB, + pub UserName: ONEX_VARIABLE_BLOB, + pub Domain: ONEX_VARIABLE_BLOB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ONEX_AUTH_PARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ONEX_AUTH_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +#[cfg(feature = "Win32_Security_ExtensibleAuthenticationProtocol")] +pub struct ONEX_EAP_ERROR { + pub dwWinError: u32, + pub r#type: super::super::Security::ExtensibleAuthenticationProtocol::EAP_METHOD_TYPE, + pub dwReasonCode: u32, + pub rootCauseGuid: ::windows_sys::core::GUID, + pub repairGuid: ::windows_sys::core::GUID, + pub helpLinkGuid: ::windows_sys::core::GUID, + pub _bitfield: u32, + pub RootCauseString: ONEX_VARIABLE_BLOB, + pub RepairString: ONEX_VARIABLE_BLOB, +} +#[cfg(feature = "Win32_Security_ExtensibleAuthenticationProtocol")] +impl ::core::marker::Copy for ONEX_EAP_ERROR {} +#[cfg(feature = "Win32_Security_ExtensibleAuthenticationProtocol")] +impl ::core::clone::Clone for ONEX_EAP_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ONEX_RESULT_UPDATE_DATA { + pub oneXStatus: ONEX_STATUS, + pub BackendSupport: ONEX_EAP_METHOD_BACKEND_SUPPORT, + pub fBackendEngaged: super::super::Foundation::BOOL, + pub _bitfield: u32, + pub authParams: ONEX_VARIABLE_BLOB, + pub eapError: ONEX_VARIABLE_BLOB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ONEX_RESULT_UPDATE_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ONEX_RESULT_UPDATE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ONEX_STATUS { + pub authStatus: ONEX_AUTH_STATUS, + pub dwReason: u32, + pub dwError: u32, +} +impl ::core::marker::Copy for ONEX_STATUS {} +impl ::core::clone::Clone for ONEX_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ONEX_USER_INFO { + pub authIdentity: ONEX_AUTH_IDENTITY, + pub _bitfield: u32, + pub UserName: ONEX_VARIABLE_BLOB, + pub DomainName: ONEX_VARIABLE_BLOB, +} +impl ::core::marker::Copy for ONEX_USER_INFO {} +impl ::core::clone::Clone for ONEX_USER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ONEX_VARIABLE_BLOB { + pub dwSize: u32, + pub dwOffset: u32, +} +impl ::core::marker::Copy for ONEX_VARIABLE_BLOB {} +impl ::core::clone::Clone for ONEX_VARIABLE_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WDIAG_IHV_WLAN_ID { + pub strProfileName: [u16; 256], + pub Ssid: DOT11_SSID, + pub BssType: DOT11_BSS_TYPE, + pub dwFlags: u32, + pub dwReasonCode: u32, +} +impl ::core::marker::Copy for WDIAG_IHV_WLAN_ID {} +impl ::core::clone::Clone for WDIAG_IHV_WLAN_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WFDSVC_CONNECTION_CAPABILITY { + pub bNew: super::super::Foundation::BOOLEAN, + pub bClient: super::super::Foundation::BOOLEAN, + pub bGO: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WFDSVC_CONNECTION_CAPABILITY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WFDSVC_CONNECTION_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WFD_GROUP_ID { + pub DeviceAddress: [u8; 6], + pub GroupSSID: DOT11_SSID, +} +impl ::core::marker::Copy for WFD_GROUP_ID {} +impl ::core::clone::Clone for WFD_GROUP_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_ASSOCIATION_ATTRIBUTES { + pub dot11Ssid: DOT11_SSID, + pub dot11BssType: DOT11_BSS_TYPE, + pub dot11Bssid: [u8; 6], + pub dot11PhyType: DOT11_PHY_TYPE, + pub uDot11PhyIndex: u32, + pub wlanSignalQuality: u32, + pub ulRxRate: u32, + pub ulTxRate: u32, +} +impl ::core::marker::Copy for WLAN_ASSOCIATION_ATTRIBUTES {} +impl ::core::clone::Clone for WLAN_ASSOCIATION_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_AUTH_CIPHER_PAIR_LIST { + pub dwNumberOfItems: u32, + pub pAuthCipherPairList: [DOT11_AUTH_CIPHER_PAIR; 1], +} +impl ::core::marker::Copy for WLAN_AUTH_CIPHER_PAIR_LIST {} +impl ::core::clone::Clone for WLAN_AUTH_CIPHER_PAIR_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLAN_AVAILABLE_NETWORK { + pub strProfileName: [u16; 256], + pub dot11Ssid: DOT11_SSID, + pub dot11BssType: DOT11_BSS_TYPE, + pub uNumberOfBssids: u32, + pub bNetworkConnectable: super::super::Foundation::BOOL, + pub wlanNotConnectableReason: u32, + pub uNumberOfPhyTypes: u32, + pub dot11PhyTypes: [DOT11_PHY_TYPE; 8], + pub bMorePhyTypes: super::super::Foundation::BOOL, + pub wlanSignalQuality: u32, + pub bSecurityEnabled: super::super::Foundation::BOOL, + pub dot11DefaultAuthAlgorithm: DOT11_AUTH_ALGORITHM, + pub dot11DefaultCipherAlgorithm: DOT11_CIPHER_ALGORITHM, + pub dwFlags: u32, + pub dwReserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLAN_AVAILABLE_NETWORK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLAN_AVAILABLE_NETWORK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLAN_AVAILABLE_NETWORK_LIST { + pub dwNumberOfItems: u32, + pub dwIndex: u32, + pub Network: [WLAN_AVAILABLE_NETWORK; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLAN_AVAILABLE_NETWORK_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLAN_AVAILABLE_NETWORK_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLAN_AVAILABLE_NETWORK_LIST_V2 { + pub dwNumberOfItems: u32, + pub dwIndex: u32, + pub Network: [WLAN_AVAILABLE_NETWORK_V2; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLAN_AVAILABLE_NETWORK_LIST_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLAN_AVAILABLE_NETWORK_LIST_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLAN_AVAILABLE_NETWORK_V2 { + pub strProfileName: [u16; 256], + pub dot11Ssid: DOT11_SSID, + pub dot11BssType: DOT11_BSS_TYPE, + pub uNumberOfBssids: u32, + pub bNetworkConnectable: super::super::Foundation::BOOL, + pub wlanNotConnectableReason: u32, + pub uNumberOfPhyTypes: u32, + pub dot11PhyTypes: [DOT11_PHY_TYPE; 8], + pub bMorePhyTypes: super::super::Foundation::BOOL, + pub wlanSignalQuality: u32, + pub bSecurityEnabled: super::super::Foundation::BOOL, + pub dot11DefaultAuthAlgorithm: DOT11_AUTH_ALGORITHM, + pub dot11DefaultCipherAlgorithm: DOT11_CIPHER_ALGORITHM, + pub dwFlags: u32, + pub AccessNetworkOptions: DOT11_ACCESSNETWORKOPTIONS, + pub dot11HESSID: [u8; 6], + pub VenueInfo: DOT11_VENUEINFO, + pub dwReserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLAN_AVAILABLE_NETWORK_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLAN_AVAILABLE_NETWORK_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLAN_BSS_ENTRY { + pub dot11Ssid: DOT11_SSID, + pub uPhyId: u32, + pub dot11Bssid: [u8; 6], + pub dot11BssType: DOT11_BSS_TYPE, + pub dot11BssPhyType: DOT11_PHY_TYPE, + pub lRssi: i32, + pub uLinkQuality: u32, + pub bInRegDomain: super::super::Foundation::BOOLEAN, + pub usBeaconPeriod: u16, + pub ullTimestamp: u64, + pub ullHostTimestamp: u64, + pub usCapabilityInformation: u16, + pub ulChCenterFrequency: u32, + pub wlanRateSet: WLAN_RATE_SET, + pub ulIeOffset: u32, + pub ulIeSize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLAN_BSS_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLAN_BSS_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLAN_BSS_LIST { + pub dwTotalSize: u32, + pub dwNumberOfItems: u32, + pub wlanBssEntries: [WLAN_BSS_ENTRY; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLAN_BSS_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLAN_BSS_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLAN_CONNECTION_ATTRIBUTES { + pub isState: WLAN_INTERFACE_STATE, + pub wlanConnectionMode: WLAN_CONNECTION_MODE, + pub strProfileName: [u16; 256], + pub wlanAssociationAttributes: WLAN_ASSOCIATION_ATTRIBUTES, + pub wlanSecurityAttributes: WLAN_SECURITY_ATTRIBUTES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLAN_CONNECTION_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLAN_CONNECTION_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLAN_CONNECTION_NOTIFICATION_DATA { + pub wlanConnectionMode: WLAN_CONNECTION_MODE, + pub strProfileName: [u16; 256], + pub dot11Ssid: DOT11_SSID, + pub dot11BssType: DOT11_BSS_TYPE, + pub bSecurityEnabled: super::super::Foundation::BOOL, + pub wlanReasonCode: u32, + pub dwFlags: WLAN_CONNECTION_NOTIFICATION_FLAGS, + pub strProfileXml: [u16; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLAN_CONNECTION_NOTIFICATION_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLAN_CONNECTION_NOTIFICATION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct WLAN_CONNECTION_PARAMETERS { + pub wlanConnectionMode: WLAN_CONNECTION_MODE, + pub strProfile: ::windows_sys::core::PCWSTR, + pub pDot11Ssid: *mut DOT11_SSID, + pub pDesiredBssidList: *mut DOT11_BSSID_LIST, + pub dot11BssType: DOT11_BSS_TYPE, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for WLAN_CONNECTION_PARAMETERS {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for WLAN_CONNECTION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +pub struct WLAN_CONNECTION_PARAMETERS_V2 { + pub wlanConnectionMode: WLAN_CONNECTION_MODE, + pub strProfile: ::windows_sys::core::PCWSTR, + pub pDot11Ssid: *mut DOT11_SSID, + pub pDot11Hessid: *mut u8, + pub pDesiredBssidList: *mut DOT11_BSSID_LIST, + pub dot11BssType: DOT11_BSS_TYPE, + pub dwFlags: u32, + pub pDot11AccessNetworkOptions: *mut DOT11_ACCESSNETWORKOPTIONS, +} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::marker::Copy for WLAN_CONNECTION_PARAMETERS_V2 {} +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +impl ::core::clone::Clone for WLAN_CONNECTION_PARAMETERS_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_COUNTRY_OR_REGION_STRING_LIST { + pub dwNumberOfItems: u32, + pub pCountryOrRegionStringList: [u8; 3], +} +impl ::core::marker::Copy for WLAN_COUNTRY_OR_REGION_STRING_LIST {} +impl ::core::clone::Clone for WLAN_COUNTRY_OR_REGION_STRING_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_DEVICE_SERVICE_GUID_LIST { + pub dwNumberOfItems: u32, + pub dwIndex: u32, + pub DeviceService: [::windows_sys::core::GUID; 1], +} +impl ::core::marker::Copy for WLAN_DEVICE_SERVICE_GUID_LIST {} +impl ::core::clone::Clone for WLAN_DEVICE_SERVICE_GUID_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_DEVICE_SERVICE_NOTIFICATION_DATA { + pub DeviceService: ::windows_sys::core::GUID, + pub dwOpCode: u32, + pub dwDataSize: u32, + pub DataBlob: [u8; 1], +} +impl ::core::marker::Copy for WLAN_DEVICE_SERVICE_NOTIFICATION_DATA {} +impl ::core::clone::Clone for WLAN_DEVICE_SERVICE_NOTIFICATION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_HOSTED_NETWORK_CONNECTION_SETTINGS { + pub hostedNetworkSSID: DOT11_SSID, + pub dwMaxNumberOfPeers: u32, +} +impl ::core::marker::Copy for WLAN_HOSTED_NETWORK_CONNECTION_SETTINGS {} +impl ::core::clone::Clone for WLAN_HOSTED_NETWORK_CONNECTION_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_HOSTED_NETWORK_DATA_PEER_STATE_CHANGE { + pub OldState: WLAN_HOSTED_NETWORK_PEER_STATE, + pub NewState: WLAN_HOSTED_NETWORK_PEER_STATE, + pub PeerStateChangeReason: WLAN_HOSTED_NETWORK_REASON, +} +impl ::core::marker::Copy for WLAN_HOSTED_NETWORK_DATA_PEER_STATE_CHANGE {} +impl ::core::clone::Clone for WLAN_HOSTED_NETWORK_DATA_PEER_STATE_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_HOSTED_NETWORK_PEER_STATE { + pub PeerMacAddress: [u8; 6], + pub PeerAuthState: WLAN_HOSTED_NETWORK_PEER_AUTH_STATE, +} +impl ::core::marker::Copy for WLAN_HOSTED_NETWORK_PEER_STATE {} +impl ::core::clone::Clone for WLAN_HOSTED_NETWORK_PEER_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_HOSTED_NETWORK_RADIO_STATE { + pub dot11SoftwareRadioState: DOT11_RADIO_STATE, + pub dot11HardwareRadioState: DOT11_RADIO_STATE, +} +impl ::core::marker::Copy for WLAN_HOSTED_NETWORK_RADIO_STATE {} +impl ::core::clone::Clone for WLAN_HOSTED_NETWORK_RADIO_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_HOSTED_NETWORK_SECURITY_SETTINGS { + pub dot11AuthAlgo: DOT11_AUTH_ALGORITHM, + pub dot11CipherAlgo: DOT11_CIPHER_ALGORITHM, +} +impl ::core::marker::Copy for WLAN_HOSTED_NETWORK_SECURITY_SETTINGS {} +impl ::core::clone::Clone for WLAN_HOSTED_NETWORK_SECURITY_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_HOSTED_NETWORK_STATE_CHANGE { + pub OldState: WLAN_HOSTED_NETWORK_STATE, + pub NewState: WLAN_HOSTED_NETWORK_STATE, + pub StateChangeReason: WLAN_HOSTED_NETWORK_REASON, +} +impl ::core::marker::Copy for WLAN_HOSTED_NETWORK_STATE_CHANGE {} +impl ::core::clone::Clone for WLAN_HOSTED_NETWORK_STATE_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_HOSTED_NETWORK_STATUS { + pub HostedNetworkState: WLAN_HOSTED_NETWORK_STATE, + pub IPDeviceID: ::windows_sys::core::GUID, + pub wlanHostedNetworkBSSID: [u8; 6], + pub dot11PhyType: DOT11_PHY_TYPE, + pub ulChannelFrequency: u32, + pub dwNumberOfPeers: u32, + pub PeerList: [WLAN_HOSTED_NETWORK_PEER_STATE; 1], +} +impl ::core::marker::Copy for WLAN_HOSTED_NETWORK_STATUS {} +impl ::core::clone::Clone for WLAN_HOSTED_NETWORK_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLAN_INTERFACE_CAPABILITY { + pub interfaceType: WLAN_INTERFACE_TYPE, + pub bDot11DSupported: super::super::Foundation::BOOL, + pub dwMaxDesiredSsidListSize: u32, + pub dwMaxDesiredBssidListSize: u32, + pub dwNumberOfSupportedPhys: u32, + pub dot11PhyTypes: [DOT11_PHY_TYPE; 64], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLAN_INTERFACE_CAPABILITY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLAN_INTERFACE_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_INTERFACE_INFO { + pub InterfaceGuid: ::windows_sys::core::GUID, + pub strInterfaceDescription: [u16; 256], + pub isState: WLAN_INTERFACE_STATE, +} +impl ::core::marker::Copy for WLAN_INTERFACE_INFO {} +impl ::core::clone::Clone for WLAN_INTERFACE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_INTERFACE_INFO_LIST { + pub dwNumberOfItems: u32, + pub dwIndex: u32, + pub InterfaceInfo: [WLAN_INTERFACE_INFO; 1], +} +impl ::core::marker::Copy for WLAN_INTERFACE_INFO_LIST {} +impl ::core::clone::Clone for WLAN_INTERFACE_INFO_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_MAC_FRAME_STATISTICS { + pub ullTransmittedFrameCount: u64, + pub ullReceivedFrameCount: u64, + pub ullWEPExcludedCount: u64, + pub ullTKIPLocalMICFailures: u64, + pub ullTKIPReplays: u64, + pub ullTKIPICVErrorCount: u64, + pub ullCCMPReplays: u64, + pub ullCCMPDecryptErrors: u64, + pub ullWEPUndecryptableCount: u64, + pub ullWEPICVErrorCount: u64, + pub ullDecryptSuccessCount: u64, + pub ullDecryptFailureCount: u64, +} +impl ::core::marker::Copy for WLAN_MAC_FRAME_STATISTICS {} +impl ::core::clone::Clone for WLAN_MAC_FRAME_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLAN_MSM_NOTIFICATION_DATA { + pub wlanConnectionMode: WLAN_CONNECTION_MODE, + pub strProfileName: [u16; 256], + pub dot11Ssid: DOT11_SSID, + pub dot11BssType: DOT11_BSS_TYPE, + pub dot11MacAddr: [u8; 6], + pub bSecurityEnabled: super::super::Foundation::BOOL, + pub bFirstPeer: super::super::Foundation::BOOL, + pub bLastPeer: super::super::Foundation::BOOL, + pub wlanReasonCode: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLAN_MSM_NOTIFICATION_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLAN_MSM_NOTIFICATION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_PHY_FRAME_STATISTICS { + pub ullTransmittedFrameCount: u64, + pub ullMulticastTransmittedFrameCount: u64, + pub ullFailedCount: u64, + pub ullRetryCount: u64, + pub ullMultipleRetryCount: u64, + pub ullMaxTXLifetimeExceededCount: u64, + pub ullTransmittedFragmentCount: u64, + pub ullRTSSuccessCount: u64, + pub ullRTSFailureCount: u64, + pub ullACKFailureCount: u64, + pub ullReceivedFrameCount: u64, + pub ullMulticastReceivedFrameCount: u64, + pub ullPromiscuousReceivedFrameCount: u64, + pub ullMaxRXLifetimeExceededCount: u64, + pub ullFrameDuplicateCount: u64, + pub ullReceivedFragmentCount: u64, + pub ullPromiscuousReceivedFragmentCount: u64, + pub ullFCSErrorCount: u64, +} +impl ::core::marker::Copy for WLAN_PHY_FRAME_STATISTICS {} +impl ::core::clone::Clone for WLAN_PHY_FRAME_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_PHY_RADIO_STATE { + pub dwPhyIndex: u32, + pub dot11SoftwareRadioState: DOT11_RADIO_STATE, + pub dot11HardwareRadioState: DOT11_RADIO_STATE, +} +impl ::core::marker::Copy for WLAN_PHY_RADIO_STATE {} +impl ::core::clone::Clone for WLAN_PHY_RADIO_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_PROFILE_INFO { + pub strProfileName: [u16; 256], + pub dwFlags: u32, +} +impl ::core::marker::Copy for WLAN_PROFILE_INFO {} +impl ::core::clone::Clone for WLAN_PROFILE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_PROFILE_INFO_LIST { + pub dwNumberOfItems: u32, + pub dwIndex: u32, + pub ProfileInfo: [WLAN_PROFILE_INFO; 1], +} +impl ::core::marker::Copy for WLAN_PROFILE_INFO_LIST {} +impl ::core::clone::Clone for WLAN_PROFILE_INFO_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_RADIO_STATE { + pub dwNumberOfPhys: u32, + pub PhyRadioState: [WLAN_PHY_RADIO_STATE; 64], +} +impl ::core::marker::Copy for WLAN_RADIO_STATE {} +impl ::core::clone::Clone for WLAN_RADIO_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_RATE_SET { + pub uRateSetLength: u32, + pub usRateSet: [u16; 126], +} +impl ::core::marker::Copy for WLAN_RATE_SET {} +impl ::core::clone::Clone for WLAN_RATE_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_RAW_DATA { + pub dwDataSize: u32, + pub DataBlob: [u8; 1], +} +impl ::core::marker::Copy for WLAN_RAW_DATA {} +impl ::core::clone::Clone for WLAN_RAW_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_RAW_DATA_LIST { + pub dwTotalSize: u32, + pub dwNumberOfItems: u32, + pub DataList: [WLAN_RAW_DATA_LIST_0; 1], +} +impl ::core::marker::Copy for WLAN_RAW_DATA_LIST {} +impl ::core::clone::Clone for WLAN_RAW_DATA_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_RAW_DATA_LIST_0 { + pub dwDataOffset: u32, + pub dwDataSize: u32, +} +impl ::core::marker::Copy for WLAN_RAW_DATA_LIST_0 {} +impl ::core::clone::Clone for WLAN_RAW_DATA_LIST_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLAN_SECURITY_ATTRIBUTES { + pub bSecurityEnabled: super::super::Foundation::BOOL, + pub bOneXEnabled: super::super::Foundation::BOOL, + pub dot11AuthAlgorithm: DOT11_AUTH_ALGORITHM, + pub dot11CipherAlgorithm: DOT11_CIPHER_ALGORITHM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLAN_SECURITY_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLAN_SECURITY_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLAN_STATISTICS { + pub ullFourWayHandshakeFailures: u64, + pub ullTKIPCounterMeasuresInvoked: u64, + pub ullReserved: u64, + pub MacUcastCounters: WLAN_MAC_FRAME_STATISTICS, + pub MacMcastCounters: WLAN_MAC_FRAME_STATISTICS, + pub dwNumberOfPhys: u32, + pub PhyCounters: [WLAN_PHY_FRAME_STATISTICS; 1], +} +impl ::core::marker::Copy for WLAN_STATISTICS {} +impl ::core::clone::Clone for WLAN_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXTIHV_ADAPTER_RESET = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXTIHV_CONTROL = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +pub type DOT11EXTIHV_CREATE_DISCOVERY_PROFILES = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXTIHV_DEINIT_ADAPTER = ::core::option::Option ()>; +pub type DOT11EXTIHV_DEINIT_SERVICE = ::core::option::Option ()>; +pub type DOT11EXTIHV_GET_VERSION_INFO = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXTIHV_INIT_ADAPTER = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`, `\"Win32_System_RemoteDesktop\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Security_ExtensibleAuthenticationProtocol", feature = "Win32_System_RemoteDesktop"))] +pub type DOT11EXTIHV_INIT_SERVICE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXTIHV_INIT_VIRTUAL_STATION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXTIHV_IS_UI_REQUEST_PENDING = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +pub type DOT11EXTIHV_ONEX_INDICATE_RESULT = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +pub type DOT11EXTIHV_PERFORM_CAPABILITY_MATCH = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub type DOT11EXTIHV_PERFORM_POST_ASSOCIATE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +pub type DOT11EXTIHV_PERFORM_PRE_ASSOCIATE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_RemoteDesktop\"`"] +#[cfg(feature = "Win32_System_RemoteDesktop")] +pub type DOT11EXTIHV_PROCESS_SESSION_CHANGE = ::core::option::Option u32>; +pub type DOT11EXTIHV_PROCESS_UI_RESPONSE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXTIHV_QUERY_UI_REQUEST = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXTIHV_RECEIVE_INDICATION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXTIHV_RECEIVE_PACKET = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXTIHV_SEND_PACKET_COMPLETION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXTIHV_STOP_POST_ASSOCIATE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +pub type DOT11EXTIHV_VALIDATE_PROFILE = ::core::option::Option u32>; +pub type DOT11EXT_ALLOCATE_BUFFER = ::core::option::Option u32>; +pub type DOT11EXT_FREE_BUFFER = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_GET_PROFILE_CUSTOM_USER_DATA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_NIC_SPECIFIC_EXTENSION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] +pub type DOT11EXT_ONEX_START = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_ONEX_STOP = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_POST_ASSOCIATE_COMPLETION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_PRE_ASSOCIATE_COMPLETION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_PROCESS_ONEX_PACKET = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_QUERY_VIRTUAL_STATION_PROPERTIES = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_RELEASE_VIRTUAL_STATION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_REQUEST_VIRTUAL_STATION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_SEND_NOTIFICATION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_SEND_PACKET = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_SEND_UI_REQUEST = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_SET_AUTH_ALGORITHM = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_SET_CURRENT_PROFILE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] +pub type DOT11EXT_SET_DEFAULT_KEY = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_SET_DEFAULT_KEY_ID = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_SET_ETHERTYPE_HANDLING = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_SET_EXCLUDE_UNENCRYPTED = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_SET_KEY_MAPPING_KEY = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_SET_MULTICAST_CIPHER_ALGORITHM = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_SET_PROFILE_CUSTOM_USER_DATA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_SET_UNICAST_CIPHER_ALGORITHM = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DOT11EXT_SET_VIRTUAL_STATION_AP_PROPERTIES = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WFD_OPEN_SESSION_COMPLETE_CALLBACK = ::core::option::Option ()>; +pub type WLAN_NOTIFICATION_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsConnectionManager/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsConnectionManager/mod.rs new file mode 100644 index 000000000..55175f435 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsConnectionManager/mod.rs @@ -0,0 +1,194 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ondemandconnroutehelper.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeInterfaceContextTable(interfacecontexttable : *const NET_INTERFACE_CONTEXT_TABLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ondemandconnroutehelper.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetInterfaceContextTableForHostName(hostname : ::windows_sys::core::PCWSTR, proxyname : ::windows_sys::core::PCWSTR, flags : u32, connectionprofilefilterrawdata : *const u8, connectionprofilefilterrawdatasize : u32, interfacecontexttable : *mut *mut NET_INTERFACE_CONTEXT_TABLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ondemandconnroutehelper.dll" "system" fn OnDemandGetRoutingHint(destinationhostname : ::windows_sys::core::PCWSTR, interfaceindex : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ondemandconnroutehelper.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OnDemandRegisterNotification(callback : ONDEMAND_NOTIFICATION_CALLBACK, callbackcontext : *const ::core::ffi::c_void, registrationhandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ondemandconnroutehelper.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OnDemandUnRegisterNotification(registrationhandle : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wcmapi.dll" "system" fn WcmFreeMemory(pmemory : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("wcmapi.dll" "system" fn WcmGetProfileList(preserved : *const ::core::ffi::c_void, ppprofilelist : *mut *mut WCM_PROFILE_INFO_LIST) -> u32); +::windows_targets::link!("wcmapi.dll" "system" fn WcmQueryProperty(pinterface : *const ::windows_sys::core::GUID, strprofilename : ::windows_sys::core::PCWSTR, property : WCM_PROPERTY, preserved : *const ::core::ffi::c_void, pdwdatasize : *mut u32, ppdata : *mut *mut u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wcmapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcmSetProfileList(pprofilelist : *const WCM_PROFILE_INFO_LIST, dwposition : u32, fignoreunknownprofiles : super::super::Foundation:: BOOL, preserved : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("wcmapi.dll" "system" fn WcmSetProperty(pinterface : *const ::windows_sys::core::GUID, strprofilename : ::windows_sys::core::PCWSTR, property : WCM_PROPERTY, preserved : *const ::core::ffi::c_void, dwdatasize : u32, pbdata : *const u8) -> u32); +pub const NET_INTERFACE_FLAG_CONNECT_IF_NEEDED: u32 = 1u32; +pub const NET_INTERFACE_FLAG_NONE: u32 = 0u32; +pub const WCM_API_VERSION: u32 = 1u32; +pub const WCM_API_VERSION_1_0: u32 = 1u32; +pub const WCM_CONNECTION_COST_APPROACHINGDATALIMIT: WCM_CONNECTION_COST = 524288i32; +pub const WCM_CONNECTION_COST_CONGESTED: WCM_CONNECTION_COST = 131072i32; +pub const WCM_CONNECTION_COST_FIXED: WCM_CONNECTION_COST = 2i32; +pub const WCM_CONNECTION_COST_OVERDATALIMIT: WCM_CONNECTION_COST = 65536i32; +pub const WCM_CONNECTION_COST_ROAMING: WCM_CONNECTION_COST = 262144i32; +pub const WCM_CONNECTION_COST_SOURCE_DEFAULT: WCM_CONNECTION_COST_SOURCE = 0i32; +pub const WCM_CONNECTION_COST_SOURCE_GP: WCM_CONNECTION_COST_SOURCE = 1i32; +pub const WCM_CONNECTION_COST_SOURCE_OPERATOR: WCM_CONNECTION_COST_SOURCE = 3i32; +pub const WCM_CONNECTION_COST_SOURCE_USER: WCM_CONNECTION_COST_SOURCE = 2i32; +pub const WCM_CONNECTION_COST_UNKNOWN: WCM_CONNECTION_COST = 0i32; +pub const WCM_CONNECTION_COST_UNRESTRICTED: WCM_CONNECTION_COST = 1i32; +pub const WCM_CONNECTION_COST_VARIABLE: WCM_CONNECTION_COST = 4i32; +pub const WCM_MAX_PROFILE_NAME: u32 = 256u32; +pub const WCM_UNKNOWN_DATAPLAN_STATUS: u32 = 4294967295u32; +pub const wcm_global_property_domain_policy: WCM_PROPERTY = 0i32; +pub const wcm_global_property_minimize_policy: WCM_PROPERTY = 1i32; +pub const wcm_global_property_powermanagement_policy: WCM_PROPERTY = 3i32; +pub const wcm_global_property_roaming_policy: WCM_PROPERTY = 2i32; +pub const wcm_intf_property_connection_cost: WCM_PROPERTY = 4i32; +pub const wcm_intf_property_dataplan_status: WCM_PROPERTY = 5i32; +pub const wcm_intf_property_hotspot_profile: WCM_PROPERTY = 6i32; +pub const wcm_media_ethernet: WCM_MEDIA_TYPE = 1i32; +pub const wcm_media_invalid: WCM_MEDIA_TYPE = 4i32; +pub const wcm_media_max: WCM_MEDIA_TYPE = 5i32; +pub const wcm_media_mbn: WCM_MEDIA_TYPE = 3i32; +pub const wcm_media_unknown: WCM_MEDIA_TYPE = 0i32; +pub const wcm_media_wlan: WCM_MEDIA_TYPE = 2i32; +pub type WCM_CONNECTION_COST = i32; +pub type WCM_CONNECTION_COST_SOURCE = i32; +pub type WCM_MEDIA_TYPE = i32; +pub type WCM_PROPERTY = i32; +#[repr(C)] +pub struct NET_INTERFACE_CONTEXT { + pub InterfaceIndex: u32, + pub ConfigurationName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for NET_INTERFACE_CONTEXT {} +impl ::core::clone::Clone for NET_INTERFACE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NET_INTERFACE_CONTEXT_TABLE { + pub InterfaceContextHandle: super::super::Foundation::HANDLE, + pub NumberOfEntries: u32, + pub InterfaceContextArray: *mut NET_INTERFACE_CONTEXT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NET_INTERFACE_CONTEXT_TABLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NET_INTERFACE_CONTEXT_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WCM_BILLING_CYCLE_INFO { + pub StartDate: super::super::Foundation::FILETIME, + pub Duration: WCM_TIME_INTERVAL, + pub Reset: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WCM_BILLING_CYCLE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WCM_BILLING_CYCLE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WCM_CONNECTION_COST_DATA { + pub ConnectionCost: u32, + pub CostSource: WCM_CONNECTION_COST_SOURCE, +} +impl ::core::marker::Copy for WCM_CONNECTION_COST_DATA {} +impl ::core::clone::Clone for WCM_CONNECTION_COST_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WCM_DATAPLAN_STATUS { + pub UsageData: WCM_USAGE_DATA, + pub DataLimitInMegabytes: u32, + pub InboundBandwidthInKbps: u32, + pub OutboundBandwidthInKbps: u32, + pub BillingCycle: WCM_BILLING_CYCLE_INFO, + pub MaxTransferSizeInMegabytes: u32, + pub Reserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WCM_DATAPLAN_STATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WCM_DATAPLAN_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WCM_POLICY_VALUE { + pub fValue: super::super::Foundation::BOOL, + pub fIsGroupPolicy: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WCM_POLICY_VALUE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WCM_POLICY_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WCM_PROFILE_INFO { + pub strProfileName: [u16; 256], + pub AdapterGUID: ::windows_sys::core::GUID, + pub Media: WCM_MEDIA_TYPE, +} +impl ::core::marker::Copy for WCM_PROFILE_INFO {} +impl ::core::clone::Clone for WCM_PROFILE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WCM_PROFILE_INFO_LIST { + pub dwNumberOfItems: u32, + pub ProfileInfo: [WCM_PROFILE_INFO; 1], +} +impl ::core::marker::Copy for WCM_PROFILE_INFO_LIST {} +impl ::core::clone::Clone for WCM_PROFILE_INFO_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WCM_TIME_INTERVAL { + pub wYear: u16, + pub wMonth: u16, + pub wDay: u16, + pub wHour: u16, + pub wMinute: u16, + pub wSecond: u16, + pub wMilliseconds: u16, +} +impl ::core::marker::Copy for WCM_TIME_INTERVAL {} +impl ::core::clone::Clone for WCM_TIME_INTERVAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WCM_USAGE_DATA { + pub UsageInMegabytes: u32, + pub LastSyncTime: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WCM_USAGE_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WCM_USAGE_DATA { + fn clone(&self) -> Self { + *self + } +} +pub type ONDEMAND_NOTIFICATION_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsFilteringPlatform/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsFilteringPlatform/mod.rs new file mode 100644 index 000000000..9b13e5952 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsFilteringPlatform/mod.rs @@ -0,0 +1,5625 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmCalloutAdd0(enginehandle : super::super::Foundation:: HANDLE, callout : *const FWPM_CALLOUT0, sd : super::super::Security:: PSECURITY_DESCRIPTOR, id : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmCalloutCreateEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumtemplate : *const FWPM_CALLOUT_ENUM_TEMPLATE0, enumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmCalloutDeleteById0(enginehandle : super::super::Foundation:: HANDLE, id : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmCalloutDeleteByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmCalloutDestroyEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmCalloutEnum0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_CALLOUT0, numentriesreturned : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmCalloutGetById0(enginehandle : super::super::Foundation:: HANDLE, id : u32, callout : *mut *mut FWPM_CALLOUT0) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmCalloutGetByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, callout : *mut *mut FWPM_CALLOUT0) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmCalloutGetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmCalloutSetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmCalloutSubscribeChanges0(enginehandle : super::super::Foundation:: HANDLE, subscription : *const FWPM_CALLOUT_SUBSCRIPTION0, callback : FWPM_CALLOUT_CHANGE_CALLBACK0, context : *const ::core::ffi::c_void, changehandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmCalloutSubscriptionsGet0(enginehandle : super::super::Foundation:: HANDLE, entries : *mut *mut *mut FWPM_CALLOUT_SUBSCRIPTION0, numentries : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmCalloutUnsubscribeChanges0(enginehandle : super::super::Foundation:: HANDLE, changehandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmConnectionCreateEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumtemplate : *const FWPM_CONNECTION_ENUM_TEMPLATE0, enumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmConnectionDestroyEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmConnectionEnum0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_CONNECTION0, numentriesreturned : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmConnectionGetById0(enginehandle : super::super::Foundation:: HANDLE, id : u64, connection : *mut *mut FWPM_CONNECTION0) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmConnectionGetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmConnectionSetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmConnectionSubscribe0(enginehandle : super::super::Foundation:: HANDLE, subscription : *const FWPM_CONNECTION_SUBSCRIPTION0, callback : FWPM_CONNECTION_CALLBACK0, context : *const ::core::ffi::c_void, eventshandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmConnectionUnsubscribe0(enginehandle : super::super::Foundation:: HANDLE, eventshandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmDynamicKeywordSubscribe0(flags : u32, callback : FWPM_DYNAMIC_KEYWORD_CALLBACK0, context : *const ::core::ffi::c_void, subscriptionhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmDynamicKeywordUnsubscribe0(subscriptionhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmEngineClose0(enginehandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmEngineGetOption0(enginehandle : super::super::Foundation:: HANDLE, option : FWPM_ENGINE_OPTION, value : *mut *mut FWP_VALUE0) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmEngineGetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Rpc"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_Rpc\"`"] fn FwpmEngineOpen0(servername : ::windows_sys::core::PCWSTR, authnservice : u32, authidentity : *const super::super::System::Rpc:: SEC_WINNT_AUTH_IDENTITY_W, session : *const FWPM_SESSION0, enginehandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmEngineSetOption0(enginehandle : super::super::Foundation:: HANDLE, option : FWPM_ENGINE_OPTION, newvalue : *const FWP_VALUE0) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmEngineSetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmFilterAdd0(enginehandle : super::super::Foundation:: HANDLE, filter : *const FWPM_FILTER0, sd : super::super::Security:: PSECURITY_DESCRIPTOR, id : *mut u64) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmFilterCreateEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumtemplate : *const FWPM_FILTER_ENUM_TEMPLATE0, enumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmFilterDeleteById0(enginehandle : super::super::Foundation:: HANDLE, id : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmFilterDeleteByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmFilterDestroyEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmFilterEnum0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_FILTER0, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmFilterGetById0(enginehandle : super::super::Foundation:: HANDLE, id : u64, filter : *mut *mut FWPM_FILTER0) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmFilterGetByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, filter : *mut *mut FWPM_FILTER0) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmFilterGetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmFilterSetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmFilterSubscribeChanges0(enginehandle : super::super::Foundation:: HANDLE, subscription : *const FWPM_FILTER_SUBSCRIPTION0, callback : FWPM_FILTER_CHANGE_CALLBACK0, context : *const ::core::ffi::c_void, changehandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmFilterSubscriptionsGet0(enginehandle : super::super::Foundation:: HANDLE, entries : *mut *mut *mut FWPM_FILTER_SUBSCRIPTION0, numentries : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmFilterUnsubscribeChanges0(enginehandle : super::super::Foundation:: HANDLE, changehandle : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("fwpuclnt.dll" "system" fn FwpmFreeMemory0(p : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("fwpuclnt.dll" "system" fn FwpmGetAppIdFromFileName0(filename : ::windows_sys::core::PCWSTR, appid : *mut *mut FWP_BYTE_BLOB) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmIPsecTunnelAdd0(enginehandle : super::super::Foundation:: HANDLE, flags : u32, mainmodepolicy : *const FWPM_PROVIDER_CONTEXT0, tunnelpolicy : *const FWPM_PROVIDER_CONTEXT0, numfilterconditions : u32, filterconditions : *const FWPM_FILTER_CONDITION0, sd : super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmIPsecTunnelAdd1(enginehandle : super::super::Foundation:: HANDLE, flags : u32, mainmodepolicy : *const FWPM_PROVIDER_CONTEXT1, tunnelpolicy : *const FWPM_PROVIDER_CONTEXT1, numfilterconditions : u32, filterconditions : *const FWPM_FILTER_CONDITION0, keymodkey : *const ::windows_sys::core::GUID, sd : super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmIPsecTunnelAdd2(enginehandle : super::super::Foundation:: HANDLE, flags : u32, mainmodepolicy : *const FWPM_PROVIDER_CONTEXT2, tunnelpolicy : *const FWPM_PROVIDER_CONTEXT2, numfilterconditions : u32, filterconditions : *const FWPM_FILTER_CONDITION0, keymodkey : *const ::windows_sys::core::GUID, sd : super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmIPsecTunnelAdd3(enginehandle : super::super::Foundation:: HANDLE, flags : u32, mainmodepolicy : *const FWPM_PROVIDER_CONTEXT3, tunnelpolicy : *const FWPM_PROVIDER_CONTEXT3, numfilterconditions : u32, filterconditions : *const FWPM_FILTER_CONDITION0, keymodkey : *const ::windows_sys::core::GUID, sd : super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmIPsecTunnelDeleteByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmLayerCreateEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumtemplate : *const FWPM_LAYER_ENUM_TEMPLATE0, enumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmLayerDestroyEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmLayerEnum0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_LAYER0, numentriesreturned : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmLayerGetById0(enginehandle : super::super::Foundation:: HANDLE, id : u16, layer : *mut *mut FWPM_LAYER0) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmLayerGetByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, layer : *mut *mut FWPM_LAYER0) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmLayerGetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmLayerSetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventCreateEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumtemplate : *const FWPM_NET_EVENT_ENUM_TEMPLATE0, enumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmNetEventDestroyEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventEnum0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_NET_EVENT0, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventEnum1(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_NET_EVENT1, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventEnum2(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_NET_EVENT2, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventEnum3(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_NET_EVENT3, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventEnum4(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_NET_EVENT4, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventEnum5(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_NET_EVENT5, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventSubscribe0(enginehandle : super::super::Foundation:: HANDLE, subscription : *const FWPM_NET_EVENT_SUBSCRIPTION0, callback : FWPM_NET_EVENT_CALLBACK0, context : *const ::core::ffi::c_void, eventshandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventSubscribe1(enginehandle : super::super::Foundation:: HANDLE, subscription : *const FWPM_NET_EVENT_SUBSCRIPTION0, callback : FWPM_NET_EVENT_CALLBACK1, context : *const ::core::ffi::c_void, eventshandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventSubscribe2(enginehandle : super::super::Foundation:: HANDLE, subscription : *const FWPM_NET_EVENT_SUBSCRIPTION0, callback : FWPM_NET_EVENT_CALLBACK2, context : *const ::core::ffi::c_void, eventshandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventSubscribe3(enginehandle : super::super::Foundation:: HANDLE, subscription : *const FWPM_NET_EVENT_SUBSCRIPTION0, callback : FWPM_NET_EVENT_CALLBACK3, context : *const ::core::ffi::c_void, eventshandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventSubscribe4(enginehandle : super::super::Foundation:: HANDLE, subscription : *const FWPM_NET_EVENT_SUBSCRIPTION0, callback : FWPM_NET_EVENT_CALLBACK4, context : *const ::core::ffi::c_void, eventshandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventSubscriptionsGet0(enginehandle : super::super::Foundation:: HANDLE, entries : *mut *mut *mut FWPM_NET_EVENT_SUBSCRIPTION0, numentries : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmNetEventUnsubscribe0(enginehandle : super::super::Foundation:: HANDLE, eventshandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventsGetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmNetEventsSetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderAdd0(enginehandle : super::super::Foundation:: HANDLE, provider : *const FWPM_PROVIDER0, sd : super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextAdd0(enginehandle : super::super::Foundation:: HANDLE, providercontext : *const FWPM_PROVIDER_CONTEXT0, sd : super::super::Security:: PSECURITY_DESCRIPTOR, id : *mut u64) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextAdd1(enginehandle : super::super::Foundation:: HANDLE, providercontext : *const FWPM_PROVIDER_CONTEXT1, sd : super::super::Security:: PSECURITY_DESCRIPTOR, id : *mut u64) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextAdd2(enginehandle : super::super::Foundation:: HANDLE, providercontext : *const FWPM_PROVIDER_CONTEXT2, sd : super::super::Security:: PSECURITY_DESCRIPTOR, id : *mut u64) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextAdd3(enginehandle : super::super::Foundation:: HANDLE, providercontext : *const FWPM_PROVIDER_CONTEXT3, sd : super::super::Security:: PSECURITY_DESCRIPTOR, id : *mut u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderContextCreateEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumtemplate : *const FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0, enumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderContextDeleteById0(enginehandle : super::super::Foundation:: HANDLE, id : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderContextDeleteByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderContextDestroyEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextEnum0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_PROVIDER_CONTEXT0, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextEnum1(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_PROVIDER_CONTEXT1, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextEnum2(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_PROVIDER_CONTEXT2, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextEnum3(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_PROVIDER_CONTEXT3, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextGetById0(enginehandle : super::super::Foundation:: HANDLE, id : u64, providercontext : *mut *mut FWPM_PROVIDER_CONTEXT0) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextGetById1(enginehandle : super::super::Foundation:: HANDLE, id : u64, providercontext : *mut *mut FWPM_PROVIDER_CONTEXT1) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextGetById2(enginehandle : super::super::Foundation:: HANDLE, id : u64, providercontext : *mut *mut FWPM_PROVIDER_CONTEXT2) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextGetById3(enginehandle : super::super::Foundation:: HANDLE, id : u64, providercontext : *mut *mut FWPM_PROVIDER_CONTEXT3) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextGetByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, providercontext : *mut *mut FWPM_PROVIDER_CONTEXT0) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextGetByKey1(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, providercontext : *mut *mut FWPM_PROVIDER_CONTEXT1) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextGetByKey2(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, providercontext : *mut *mut FWPM_PROVIDER_CONTEXT2) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextGetByKey3(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, providercontext : *mut *mut FWPM_PROVIDER_CONTEXT3) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextGetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderContextSetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderContextSubscribeChanges0(enginehandle : super::super::Foundation:: HANDLE, subscription : *const FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0, callback : FWPM_PROVIDER_CONTEXT_CHANGE_CALLBACK0, context : *const ::core::ffi::c_void, changehandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderContextSubscriptionsGet0(enginehandle : super::super::Foundation:: HANDLE, entries : *mut *mut *mut FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0, numentries : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderContextUnsubscribeChanges0(enginehandle : super::super::Foundation:: HANDLE, changehandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderCreateEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumtemplate : *const FWPM_PROVIDER_ENUM_TEMPLATE0, enumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderDeleteByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderDestroyEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderEnum0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_PROVIDER0, numentriesreturned : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderGetByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, provider : *mut *mut FWPM_PROVIDER0) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderGetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmProviderSetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderSubscribeChanges0(enginehandle : super::super::Foundation:: HANDLE, subscription : *const FWPM_PROVIDER_SUBSCRIPTION0, callback : FWPM_PROVIDER_CHANGE_CALLBACK0, context : *const ::core::ffi::c_void, changehandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderSubscriptionsGet0(enginehandle : super::super::Foundation:: HANDLE, entries : *mut *mut *mut FWPM_PROVIDER_SUBSCRIPTION0, numentries : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmProviderUnsubscribeChanges0(enginehandle : super::super::Foundation:: HANDLE, changehandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmSessionCreateEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumtemplate : *const FWPM_SESSION_ENUM_TEMPLATE0, enumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmSessionDestroyEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmSessionEnum0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_SESSION0, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmSubLayerAdd0(enginehandle : super::super::Foundation:: HANDLE, sublayer : *const FWPM_SUBLAYER0, sd : super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmSubLayerCreateEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumtemplate : *const FWPM_SUBLAYER_ENUM_TEMPLATE0, enumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmSubLayerDeleteByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmSubLayerDestroyEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmSubLayerEnum0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut FWPM_SUBLAYER0, numentriesreturned : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmSubLayerGetByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, sublayer : *mut *mut FWPM_SUBLAYER0) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmSubLayerGetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmSubLayerSetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, key : *const ::windows_sys::core::GUID, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmSubLayerSubscribeChanges0(enginehandle : super::super::Foundation:: HANDLE, subscription : *const FWPM_SUBLAYER_SUBSCRIPTION0, callback : FWPM_SUBLAYER_CHANGE_CALLBACK0, context : *const ::core::ffi::c_void, changehandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmSubLayerSubscriptionsGet0(enginehandle : super::super::Foundation:: HANDLE, entries : *mut *mut *mut FWPM_SUBLAYER_SUBSCRIPTION0, numentries : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmSubLayerUnsubscribeChanges0(enginehandle : super::super::Foundation:: HANDLE, changehandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmSystemPortsGet0(enginehandle : super::super::Foundation:: HANDLE, sysports : *mut *mut FWPM_SYSTEM_PORTS0) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmSystemPortsSubscribe0(enginehandle : super::super::Foundation:: HANDLE, reserved : *const ::core::ffi::c_void, callback : FWPM_SYSTEM_PORTS_CALLBACK0, context : *const ::core::ffi::c_void, sysportshandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmSystemPortsUnsubscribe0(enginehandle : super::super::Foundation:: HANDLE, sysportshandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmTransactionAbort0(enginehandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmTransactionBegin0(enginehandle : super::super::Foundation:: HANDLE, flags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmTransactionCommit0(enginehandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmvSwitchEventSubscribe0(enginehandle : super::super::Foundation:: HANDLE, subscription : *const FWPM_VSWITCH_EVENT_SUBSCRIPTION0, callback : FWPM_VSWITCH_EVENT_CALLBACK0, context : *const ::core::ffi::c_void, subscriptionhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FwpmvSwitchEventUnsubscribe0(enginehandle : super::super::Foundation:: HANDLE, subscriptionhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmvSwitchEventsGetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FwpmvSwitchEventsSetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecDospGetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecDospGetStatistics0(enginehandle : super::super::Foundation:: HANDLE, idpstatistics : *mut IPSEC_DOSP_STATISTICS0) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecDospSetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecDospStateCreateEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumtemplate : *const IPSEC_DOSP_STATE_ENUM_TEMPLATE0, enumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecDospStateDestroyEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecDospStateEnum0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut IPSEC_DOSP_STATE0, numentries : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecGetStatistics0(enginehandle : super::super::Foundation:: HANDLE, ipsecstatistics : *mut IPSEC_STATISTICS0) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecGetStatistics1(enginehandle : super::super::Foundation:: HANDLE, ipsecstatistics : *mut IPSEC_STATISTICS1) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecKeyManagerAddAndRegister0(enginehandle : super::super::Foundation:: HANDLE, keymanager : *const IPSEC_KEY_MANAGER0, keymanagercallbacks : *const IPSEC_KEY_MANAGER_CALLBACKS0, keymgmthandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecKeyManagerGetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, reserved : *const ::core::ffi::c_void, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecKeyManagerSetSecurityInfoByKey0(enginehandle : super::super::Foundation:: HANDLE, reserved : *const ::core::ffi::c_void, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecKeyManagerUnregisterAndDelete0(enginehandle : super::super::Foundation:: HANDLE, keymgmthandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecKeyManagersGet0(enginehandle : super::super::Foundation:: HANDLE, entries : *mut *mut *mut IPSEC_KEY_MANAGER0, numentries : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaContextAddInbound0(enginehandle : super::super::Foundation:: HANDLE, id : u64, inboundbundle : *const IPSEC_SA_BUNDLE0) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaContextAddInbound1(enginehandle : super::super::Foundation:: HANDLE, id : u64, inboundbundle : *const IPSEC_SA_BUNDLE1) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaContextAddOutbound0(enginehandle : super::super::Foundation:: HANDLE, id : u64, outboundbundle : *const IPSEC_SA_BUNDLE0) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaContextAddOutbound1(enginehandle : super::super::Foundation:: HANDLE, id : u64, outboundbundle : *const IPSEC_SA_BUNDLE1) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaContextCreate0(enginehandle : super::super::Foundation:: HANDLE, outboundtraffic : *const IPSEC_TRAFFIC0, inboundfilterid : *mut u64, id : *mut u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaContextCreate1(enginehandle : super::super::Foundation:: HANDLE, outboundtraffic : *const IPSEC_TRAFFIC1, virtualiftunnelinfo : *const IPSEC_VIRTUAL_IF_TUNNEL_INFO0, inboundfilterid : *mut u64, id : *mut u64) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecSaContextCreateEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumtemplate : *const IPSEC_SA_CONTEXT_ENUM_TEMPLATE0, enumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaContextDeleteById0(enginehandle : super::super::Foundation:: HANDLE, id : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaContextDestroyEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecSaContextEnum0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut IPSEC_SA_CONTEXT0, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecSaContextEnum1(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut IPSEC_SA_CONTEXT1, numentriesreturned : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaContextExpire0(enginehandle : super::super::Foundation:: HANDLE, id : u64) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecSaContextGetById0(enginehandle : super::super::Foundation:: HANDLE, id : u64, sacontext : *mut *mut IPSEC_SA_CONTEXT0) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecSaContextGetById1(enginehandle : super::super::Foundation:: HANDLE, id : u64, sacontext : *mut *mut IPSEC_SA_CONTEXT1) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaContextGetSpi0(enginehandle : super::super::Foundation:: HANDLE, id : u64, getspi : *const IPSEC_GETSPI0, inboundspi : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaContextGetSpi1(enginehandle : super::super::Foundation:: HANDLE, id : u64, getspi : *const IPSEC_GETSPI1, inboundspi : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaContextSetSpi0(enginehandle : super::super::Foundation:: HANDLE, id : u64, getspi : *const IPSEC_GETSPI1, inboundspi : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecSaContextSubscribe0(enginehandle : super::super::Foundation:: HANDLE, subscription : *const IPSEC_SA_CONTEXT_SUBSCRIPTION0, callback : IPSEC_SA_CONTEXT_CALLBACK0, context : *const ::core::ffi::c_void, eventshandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecSaContextSubscriptionsGet0(enginehandle : super::super::Foundation:: HANDLE, entries : *mut *mut *mut IPSEC_SA_CONTEXT_SUBSCRIPTION0, numentries : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaContextUnsubscribe0(enginehandle : super::super::Foundation:: HANDLE, eventshandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecSaContextUpdate0(enginehandle : super::super::Foundation:: HANDLE, flags : u64, newvalues : *const IPSEC_SA_CONTEXT1) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaCreateEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumtemplate : *const IPSEC_SA_ENUM_TEMPLATE0, enumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecSaDbGetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecSaDbSetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IPsecSaDestroyEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecSaEnum0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut IPSEC_SA_DETAILS0, numentriesreturned : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IPsecSaEnum1(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut IPSEC_SA_DETAILS1, numentriesreturned : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IkeextGetStatistics0(enginehandle : super::super::Foundation:: HANDLE, ikeextstatistics : *mut IKEEXT_STATISTICS0) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IkeextGetStatistics1(enginehandle : super::super::Foundation:: HANDLE, ikeextstatistics : *mut IKEEXT_STATISTICS1) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IkeextSaCreateEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumtemplate : *const IKEEXT_SA_ENUM_TEMPLATE0, enumhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IkeextSaDbGetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *mut super::super::Foundation:: PSID, sidgroup : *mut super::super::Foundation:: PSID, dacl : *mut *mut super::super::Security:: ACL, sacl : *mut *mut super::super::Security:: ACL, securitydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IkeextSaDbSetSecurityInfo0(enginehandle : super::super::Foundation:: HANDLE, securityinfo : u32, sidowner : *const super::super::Security:: SID, sidgroup : *const super::super::Security:: SID, dacl : *const super::super::Security:: ACL, sacl : *const super::super::Security:: ACL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IkeextSaDeleteById0(enginehandle : super::super::Foundation:: HANDLE, id : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IkeextSaDestroyEnumHandle0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IkeextSaEnum0(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut IKEEXT_SA_DETAILS0, numentriesreturned : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IkeextSaEnum1(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut IKEEXT_SA_DETAILS1, numentriesreturned : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IkeextSaEnum2(enginehandle : super::super::Foundation:: HANDLE, enumhandle : super::super::Foundation:: HANDLE, numentriesrequested : u32, entries : *mut *mut *mut IKEEXT_SA_DETAILS2, numentriesreturned : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IkeextSaGetById0(enginehandle : super::super::Foundation:: HANDLE, id : u64, sa : *mut *mut IKEEXT_SA_DETAILS0) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IkeextSaGetById1(enginehandle : super::super::Foundation:: HANDLE, id : u64, salookupcontext : *const ::windows_sys::core::GUID, sa : *mut *mut IKEEXT_SA_DETAILS1) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IkeextSaGetById2(enginehandle : super::super::Foundation:: HANDLE, id : u64, salookupcontext : *const ::windows_sys::core::GUID, sa : *mut *mut IKEEXT_SA_DETAILS2) -> u32); +pub const DlBroadcast: DL_ADDRESS_TYPE = 2i32; +pub const DlMulticast: DL_ADDRESS_TYPE = 1i32; +pub const DlUnicast: DL_ADDRESS_TYPE = 0i32; +pub const FWPM_ACTRL_ADD: u32 = 1u32; +pub const FWPM_ACTRL_ADD_LINK: u32 = 2u32; +pub const FWPM_ACTRL_BEGIN_READ_TXN: u32 = 4u32; +pub const FWPM_ACTRL_BEGIN_WRITE_TXN: u32 = 8u32; +pub const FWPM_ACTRL_CLASSIFY: u32 = 16u32; +pub const FWPM_ACTRL_ENUM: u32 = 32u32; +pub const FWPM_ACTRL_OPEN: u32 = 64u32; +pub const FWPM_ACTRL_READ: u32 = 128u32; +pub const FWPM_ACTRL_READ_STATS: u32 = 256u32; +pub const FWPM_ACTRL_SUBSCRIBE: u32 = 512u32; +pub const FWPM_ACTRL_WRITE: u32 = 1024u32; +pub const FWPM_APPC_NETWORK_CAPABILITY_INTERNET_CLIENT: FWPM_APPC_NETWORK_CAPABILITY_TYPE = 0i32; +pub const FWPM_APPC_NETWORK_CAPABILITY_INTERNET_CLIENT_SERVER: FWPM_APPC_NETWORK_CAPABILITY_TYPE = 1i32; +pub const FWPM_APPC_NETWORK_CAPABILITY_INTERNET_PRIVATE_NETWORK: FWPM_APPC_NETWORK_CAPABILITY_TYPE = 2i32; +pub const FWPM_AUTO_WEIGHT_BITS: u32 = 60u32; +pub const FWPM_CALLOUT_BUILT_IN_RESERVED_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x779719a4_e695_47b6_a199_7999fec9163b); +pub const FWPM_CALLOUT_BUILT_IN_RESERVED_2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xef9661b6_7c5e_48fd_a130_96678ceacc41); +pub const FWPM_CALLOUT_BUILT_IN_RESERVED_3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x18729c7a_2f62_4be0_966f_974b21b86df1); +pub const FWPM_CALLOUT_BUILT_IN_RESERVED_4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6c3fb801_daff_40e9_91e6_f7ff7e52f7d9); +pub const FWPM_CALLOUT_EDGE_TRAVERSAL_ALE_LISTEN_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33486ab5_6d5e_4e65_a00b_a7afed0ba9a1); +pub const FWPM_CALLOUT_EDGE_TRAVERSAL_ALE_RESOURCE_ASSIGNMENT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x079b1010_f1c5_4fcd_ae05_da41107abd0b); +pub const FWPM_CALLOUT_FLAG_PERSISTENT: u32 = 65536u32; +pub const FWPM_CALLOUT_FLAG_REGISTERED: u32 = 262144u32; +pub const FWPM_CALLOUT_FLAG_USES_PROVIDER_CONTEXT: u32 = 131072u32; +pub const FWPM_CALLOUT_HTTP_TEMPLATE_SSL_HANDSHAKE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb3423249_8d09_4858_9210_95c7fda8e30f); +pub const FWPM_CALLOUT_IPSEC_ALE_CONNECT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6ac141fc_f75d_4203_b9c8_48e6149c2712); +pub const FWPM_CALLOUT_IPSEC_ALE_CONNECT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4c0dda05_e31f_4666_90b0_b3dfad34129a); +pub const FWPM_CALLOUT_IPSEC_DOSP_FORWARD_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2fcb56ec_cd37_4b4f_b108_62c2b1850a0c); +pub const FWPM_CALLOUT_IPSEC_DOSP_FORWARD_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6d08a342_db9e_4fbe_9ed2_57374ce89f79); +pub const FWPM_CALLOUT_IPSEC_FORWARD_INBOUND_TUNNEL_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x28829633_c4f0_4e66_873f_844db2a899c7); +pub const FWPM_CALLOUT_IPSEC_FORWARD_INBOUND_TUNNEL_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaf50bec2_c686_429a_884d_b74443e7b0b4); +pub const FWPM_CALLOUT_IPSEC_FORWARD_OUTBOUND_TUNNEL_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb532136_15cb_440b_937c_1717ca320c40); +pub const FWPM_CALLOUT_IPSEC_FORWARD_OUTBOUND_TUNNEL_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdae640cc_e021_4bee_9eb6_a48b275c8c1d); +pub const FWPM_CALLOUT_IPSEC_INBOUND_INITIATE_SECURE_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7dff309b_ba7d_4aba_91aa_ae5c6640c944); +pub const FWPM_CALLOUT_IPSEC_INBOUND_INITIATE_SECURE_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa9a0d6d9_c58c_474e_8aeb_3cfe99d6d53d); +pub const FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5132900d_5e84_4b5f_80e4_01741e81ff10); +pub const FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49d3ac92_2a6c_4dcf_955f_1c3be009dd99); +pub const FWPM_CALLOUT_IPSEC_INBOUND_TUNNEL_ALE_ACCEPT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3df6e7de_fd20_48f2_9f26_f854444cba79); +pub const FWPM_CALLOUT_IPSEC_INBOUND_TUNNEL_ALE_ACCEPT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa1e392d3_72ac_47bb_87a7_0122c69434ab); +pub const FWPM_CALLOUT_IPSEC_INBOUND_TUNNEL_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x191a8a46_0bf8_46cf_b045_4b45dfa6a324); +pub const FWPM_CALLOUT_IPSEC_INBOUND_TUNNEL_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x80c342e3_1e53_4d6f_9b44_03df5aeee154); +pub const FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4b46bf0a_4523_4e57_aa38_a87987c910d9); +pub const FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38d87722_ad83_4f11_a91f_df0fb077225b); +pub const FWPM_CALLOUT_IPSEC_OUTBOUND_TUNNEL_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x70a4196c_835b_4fb0_98e8_075f4d977d46); +pub const FWPM_CALLOUT_IPSEC_OUTBOUND_TUNNEL_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf1835363_a6a5_4e62_b180_23db789d8da6); +pub const FWPM_CALLOUT_OUTBOUND_NETWORK_CONNECTION_POLICY_LAYER_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x103090d4_8e28_4fd6_9894_d1d67d6b10c9); +pub const FWPM_CALLOUT_OUTBOUND_NETWORK_CONNECTION_POLICY_LAYER_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4ed3446d_8dc7_459b_b09f_c1cb7a8f8689); +pub const FWPM_CALLOUT_POLICY_SILENT_MODE_AUTH_CONNECT_LAYER_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5fbfc31d_a51c_44dc_acb6_0624a030a700); +pub const FWPM_CALLOUT_POLICY_SILENT_MODE_AUTH_CONNECT_LAYER_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5fbfc31d_a51c_44dc_acb6_0624a030a701); +pub const FWPM_CALLOUT_POLICY_SILENT_MODE_AUTH_RECV_ACCEPT_LAYER_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5fbfc31d_a51c_44dc_acb6_0624a030a702); +pub const FWPM_CALLOUT_POLICY_SILENT_MODE_AUTH_RECV_ACCEPT_LAYER_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5fbfc31d_a51c_44dc_acb6_0624a030a703); +pub const FWPM_CALLOUT_RESERVED_AUTH_CONNECT_LAYER_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x288b524d_0566_4e19_b612_8f441a2e5949); +pub const FWPM_CALLOUT_RESERVED_AUTH_CONNECT_LAYER_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00b84b92_2b5e_4b71_ab0e_aaca43e387e6); +pub const FWPM_CALLOUT_SET_OPTIONS_AUTH_CONNECT_LAYER_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbc582280_1677_41e9_94ab_c2fcb15c2eeb); +pub const FWPM_CALLOUT_SET_OPTIONS_AUTH_CONNECT_LAYER_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x98e5373c_b884_490f_b65f_2f6a4a575195); +pub const FWPM_CALLOUT_SET_OPTIONS_AUTH_RECV_ACCEPT_LAYER_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2d55f008_0c01_4f92_b26e_a08a94569b8d); +pub const FWPM_CALLOUT_SET_OPTIONS_AUTH_RECV_ACCEPT_LAYER_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x63018537_f281_4dc4_83d3_8dec18b7ade2); +pub const FWPM_CALLOUT_TCP_CHIMNEY_ACCEPT_LAYER_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe183ecb2_3a7f_4b54_8ad9_76050ed880ca); +pub const FWPM_CALLOUT_TCP_CHIMNEY_ACCEPT_LAYER_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0378cf41_bf98_4603_81f2_7f12586079f6); +pub const FWPM_CALLOUT_TCP_CHIMNEY_CONNECT_LAYER_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf3e10ab3_2c25_4279_ac36_c30fc181bec4); +pub const FWPM_CALLOUT_TCP_CHIMNEY_CONNECT_LAYER_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x39e22085_a341_42fc_a279_aec94e689c56); +pub const FWPM_CALLOUT_TCP_TEMPLATES_ACCEPT_LAYER_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2f23f5d0_40c4_4c41_a254_46d8dba8957c); +pub const FWPM_CALLOUT_TCP_TEMPLATES_ACCEPT_LAYER_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb25152f0_991c_4f53_bbe7_d24b45fe632c); +pub const FWPM_CALLOUT_TCP_TEMPLATES_CONNECT_LAYER_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x215a0b39_4b7e_4eda_8ce4_179679df6224); +pub const FWPM_CALLOUT_TCP_TEMPLATES_CONNECT_LAYER_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x838b37a1_5c12_4d34_8b38_078728b2d25c); +pub const FWPM_CALLOUT_TEREDO_ALE_LISTEN_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x81a434e7_f60c_4378_bab8_c625a30f0197); +pub const FWPM_CALLOUT_TEREDO_ALE_RESOURCE_ASSIGNMENT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x31b95392_066e_42a2_b7db_92f8acdd56f9); +pub const FWPM_CALLOUT_WFP_TRANSPORT_LAYER_V4_SILENT_DROP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeda08606_2494_4d78_89bc_67837c03b969); +pub const FWPM_CALLOUT_WFP_TRANSPORT_LAYER_V6_SILENT_DROP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8693cc74_a075_4156_b476_9286eece814e); +pub const FWPM_CHANGE_ADD: FWPM_CHANGE_TYPE = 1i32; +pub const FWPM_CHANGE_DELETE: FWPM_CHANGE_TYPE = 2i32; +pub const FWPM_CHANGE_TYPE_MAX: FWPM_CHANGE_TYPE = 3i32; +pub const FWPM_CLASSIFY_OPTIONS_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 7i32; +pub const FWPM_CONDITION_ALE_APP_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd78e1e87_8644_4ea5_9437_d809ecefc971); +pub const FWPM_CONDITION_ALE_EFFECTIVE_NAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb1277b9a_b781_40fc_9671_e5f1b989f34e); +pub const FWPM_CONDITION_ALE_NAP_CONTEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x46275a9d_c03f_4d77_b784_1c57f4d02753); +pub const FWPM_CONDITION_ALE_ORIGINAL_APP_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e6cd086_e1fb_4212_842f_8a9f993fb3f6); +pub const FWPM_CONDITION_ALE_PACKAGE_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x71bc78fa_f17c_4997_a602_6abb261f351c); +pub const FWPM_CONDITION_ALE_PROMISCUOUS_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1c974776_7182_46e9_afd3_b02910e30334); +pub const FWPM_CONDITION_ALE_REAUTH_REASON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb482d227_1979_4a98_8044_18bbe6237542); +pub const FWPM_CONDITION_ALE_REMOTE_MACHINE_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1aa47f51_7f93_4508_a271_81abb00c9cab); +pub const FWPM_CONDITION_ALE_REMOTE_USER_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf63073b7_0189_4ab0_95a4_6123cbfab862); +pub const FWPM_CONDITION_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x37a57699_5883_4963_92b8_3e704688b0ad); +pub const FWPM_CONDITION_ALE_SIO_FIREWALL_SYSTEM_PORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9f4e088_cb98_4efb_a2c7_ad07332643db); +pub const FWPM_CONDITION_ALE_USER_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaf043a0a_b34d_4f86_979c_c90371af6e66); +pub const FWPM_CONDITION_ARRIVAL_INTERFACE_INDEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcc088db3_1792_4a71_b0f9_037d21cd828b); +pub const FWPM_CONDITION_ARRIVAL_INTERFACE_PROFILE_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcdfe6aab_c083_4142_8679_c08f95329c61); +pub const FWPM_CONDITION_ARRIVAL_INTERFACE_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x89f990de_e798_4e6d_ab76_7c9558292e6f); +pub const FWPM_CONDITION_ARRIVAL_TUNNEL_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x511166dc_7a8c_4aa7_b533_95ab59fb0340); +pub const FWPM_CONDITION_AUTHENTICATION_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeb458cd5_da7b_4ef9_8d43_7b0a840332f2); +pub const FWPM_CONDITION_CLIENT_CERT_KEY_LENGTH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa3ec00c7_05f4_4df7_91f2_5f60d91ff443); +pub const FWPM_CONDITION_CLIENT_CERT_OID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc491ad5e_f882_4283_b916_436b103ff4ad); +pub const FWPM_CONDITION_CLIENT_TOKEN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc228fc1e_403a_4478_be05_c9baa4c05ace); +pub const FWPM_CONDITION_COMPARTMENT_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x35a791ab_04ac_4ff2_a6bb_da6cfac71806); +pub const FWPM_CONDITION_CURRENT_PROFILE_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xab3033c9_c0e3_4759_937d_5758c65d4ae3); +pub const FWPM_CONDITION_DCOM_APP_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xff2e7b4d_3112_4770_b636_4d24ae3a6af2); +pub const FWPM_CONDITION_DESTINATION_INTERFACE_INDEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x35cf6522_4139_45ee_a0d5_67b80949d879); +pub const FWPM_CONDITION_DESTINATION_SUB_INTERFACE_INDEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2b7d4399_d4c7_4738_a2f5_e994b43da388); +pub const FWPM_CONDITION_DIRECTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8784c146_ca97_44d6_9fd1_19fb1840cbf7); +pub const FWPM_CONDITION_EMBEDDED_LOCAL_ADDRESS_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4672a468_8a0a_4202_abb4_849e92e66809); +pub const FWPM_CONDITION_EMBEDDED_LOCAL_PORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbfca394d_acdb_484e_b8e6_2aff79757345); +pub const FWPM_CONDITION_EMBEDDED_PROTOCOL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x07784107_a29e_4c7b_9ec7_29c44afafdbc); +pub const FWPM_CONDITION_EMBEDDED_REMOTE_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x77ee4b39_3273_4671_b63b_ab6feb66eeb6); +pub const FWPM_CONDITION_EMBEDDED_REMOTE_PORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcae4d6a1_2968_40ed_a4ce_547160dda88d); +pub const FWPM_CONDITION_ETHER_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfd08948d_a219_4d52_bb98_1a5540ee7b4e); +pub const FWPM_CONDITION_FLAGS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x632ce23b_5167_435c_86d7_e903684aa80c); +pub const FWPM_CONDITION_IMAGE_NAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd024de4d_deaa_4317_9c85_e40ef6e140c3); +pub const FWPM_CONDITION_INTERFACE_INDEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x667fd755_d695_434a_8af5_d3835a1259bc); +pub const FWPM_CONDITION_INTERFACE_MAC_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf6e63dce_1f4b_4c6b_b6ef_1165e71f8ee7); +pub const FWPM_CONDITION_INTERFACE_QUARANTINE_EPOCH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcce68d5e_053b_43a8_9a6f_33384c28e4f6); +pub const FWPM_CONDITION_INTERFACE_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdaf8cd14_e09e_4c93_a5ae_c5c13b73ffca); +pub const FWPM_CONDITION_IPSEC_POLICY_KEY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xad37dee3_722f_45cc_a4e3_068048124452); +pub const FWPM_CONDITION_IPSEC_SECURITY_REALM_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x37a57700_5884_4964_92b8_3e704688b0ad); +pub const FWPM_CONDITION_IP_ARRIVAL_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x618a9b6d_386b_4136_ad6e_b51587cfb1cd); +pub const FWPM_CONDITION_IP_DESTINATION_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2d79133b_b390_45c6_8699_acaceaafed33); +pub const FWPM_CONDITION_IP_DESTINATION_ADDRESS_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ec1b7c9_4eea_4f5e_b9ef_76beaaaf17ee); +pub const FWPM_CONDITION_IP_DESTINATION_PORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xce6def45_60fb_4a7b_a304_af30a117000e); +pub const FWPM_CONDITION_IP_FORWARD_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1076b8a5_6323_4c5e_9810_e8d3fc9e6136); +pub const FWPM_CONDITION_IP_LOCAL_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd9ee00de_c1ef_4617_bfe3_ffd8f5a08957); +pub const FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6ec7f6c4_376b_45d7_9e9c_d337cedcd237); +pub const FWPM_CONDITION_IP_LOCAL_ADDRESS_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03a629cb_6e52_49f8_9c41_5709633c09cf); +pub const FWPM_CONDITION_IP_LOCAL_ADDRESS_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2381be84_7524_45b3_a05b_1e637d9c7a6a); +pub const FWPM_CONDITION_IP_LOCAL_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4cd62a49_59c3_4969_b7f3_bda5d32890a4); +pub const FWPM_CONDITION_IP_LOCAL_PORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0c1ba1af_5765_453f_af22_a8f791ac775b); +pub const FWPM_CONDITION_IP_NEXTHOP_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeabe448a_a711_4d64_85b7_3f76b65299c7); +pub const FWPM_CONDITION_IP_NEXTHOP_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x93ae8f5b_7f6f_4719_98c8_14e97429ef04); +pub const FWPM_CONDITION_IP_PHYSICAL_ARRIVAL_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xda50d5c8_fa0d_4c89_b032_6e62136d1e96); +pub const FWPM_CONDITION_IP_PHYSICAL_NEXTHOP_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf09bd5ce_5150_48be_b098_c25152fb1f92); +pub const FWPM_CONDITION_IP_PROTOCOL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3971ef2b_623e_4f9a_8cb1_6e79b806b9a7); +pub const FWPM_CONDITION_IP_REMOTE_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb235ae9a_1d64_49b8_a44c_5ff3d9095045); +pub const FWPM_CONDITION_IP_REMOTE_ADDRESS_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1febb610_3bcc_45e1_bc36_2e067e2cb186); +pub const FWPM_CONDITION_IP_REMOTE_ADDRESS_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x246e1d8c_8bee_4018_9b98_31d4582f3361); +pub const FWPM_CONDITION_IP_REMOTE_PORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc35a604d_d22b_4e1a_91b4_68f674ee674b); +pub const FWPM_CONDITION_IP_SOURCE_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae96897e_2e94_4bc9_b313_b27ee80e574d); +pub const FWPM_CONDITION_IP_SOURCE_PORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa6afef91_3df4_4730_a214_f5426aebf821); +pub const FWPM_CONDITION_KM_AUTH_NAP_CONTEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x35d0ea0e_15ca_492b_900e_97fd46352cce); +pub const FWPM_CONDITION_KM_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfeef4582_ef8f_4f7b_858b_9077d122de47); +pub const FWPM_CONDITION_KM_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xff0f5f49_0ceb_481b_8638_1479791f3f2c); +pub const FWPM_CONDITION_L2_FLAGS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7bc43cbf_37ba_45f1_b74a_82ff518eeb10); +pub const FWPM_CONDITION_LOCAL_INTERFACE_PROFILE_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4ebf7562_9f18_4d06_9941_a7a625744d71); +pub const FWPM_CONDITION_MAC_DESTINATION_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04ea2a93_858c_4027_b613_b43180c7859e); +pub const FWPM_CONDITION_MAC_DESTINATION_ADDRESS_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae052932_ef42_4e99_b129_f3b3139e34f7); +pub const FWPM_CONDITION_MAC_LOCAL_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd999e981_7948_4c83_b742_c84e3b678f8f); +pub const FWPM_CONDITION_MAC_LOCAL_ADDRESS_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcc31355c_3073_4ffb_a14f_79415cb1ead1); +pub const FWPM_CONDITION_MAC_REMOTE_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x408f2ed4_3a70_4b4d_92a6_415ac20e2f12); +pub const FWPM_CONDITION_MAC_REMOTE_ADDRESS_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x027fedb4_f1c1_4030_b564_ee777fd867ea); +pub const FWPM_CONDITION_MAC_SOURCE_ADDRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b795451_f1f6_4d05_b7cb_21779d802336); +pub const FWPM_CONDITION_MAC_SOURCE_ADDRESS_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c1b72e4_299e_4437_a298_bc3f014b3dc2); +pub const FWPM_CONDITION_NDIS_MEDIA_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb31cef1_791d_473b_89d1_61c5984304a0); +pub const FWPM_CONDITION_NDIS_PHYSICAL_MEDIA_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x34c79823_c229_44f2_b83c_74020882ae77); +pub const FWPM_CONDITION_NDIS_PORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdb7bb42b_2dac_4cd4_a59a_e0bdce1e6834); +pub const FWPM_CONDITION_NET_EVENT_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x206e9996_490e_40cf_b831_b38641eb6fcb); +pub const FWPM_CONDITION_NEXTHOP_INTERFACE_INDEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x138e6888_7ab8_4d65_9ee8_0591bcf6a494); +pub const FWPM_CONDITION_NEXTHOP_INTERFACE_PROFILE_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7ff9a56_cdaa_472b_84db_d23963c1d1bf); +pub const FWPM_CONDITION_NEXTHOP_INTERFACE_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x97537c6c_d9a3_4767_a381_e942675cd920); +pub const FWPM_CONDITION_NEXTHOP_SUB_INTERFACE_INDEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xef8a6122_0577_45a7_9aaf_825fbeb4fb95); +pub const FWPM_CONDITION_NEXTHOP_TUNNEL_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x72b1a111_987b_4720_99dd_c7c576fa2d4c); +pub const FWPM_CONDITION_ORIGINAL_ICMP_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x076dfdbe_c56c_4f72_ae8a_2cfe7e5c8286); +pub const FWPM_CONDITION_ORIGINAL_PROFILE_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x46ea1551_2255_492b_8019_aabeee349f40); +pub const FWPM_CONDITION_PEER_NAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b539082_eb90_4186_a6cc_de5b63235016); +pub const FWPM_CONDITION_PIPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1bd0741d_e3df_4e24_8634_762046eef6eb); +pub const FWPM_CONDITION_PROCESS_WITH_RPC_IF_UUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe31180a8_bbbd_4d14_a65e_7157b06233bb); +pub const FWPM_CONDITION_QM_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf64fc6d1_f9cb_43d2_8a5f_e13bc894f265); +pub const FWPM_CONDITION_REAUTHORIZE_REASON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x11205e8c_11ae_457a_8a44_477026dd764a); +pub const FWPM_CONDITION_REMOTE_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf68166fd_0682_4c89_b8f5_86436c7ef9b7); +pub const FWPM_CONDITION_REMOTE_USER_TOKEN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9bf0ee66_06c9_41b9_84da_288cb43af51f); +pub const FWPM_CONDITION_RESERVED0: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x678f4deb_45af_4882_93fe_19d4729d9834); +pub const FWPM_CONDITION_RESERVED1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd818f827_5c69_48eb_bf80_d86b17755f97); +pub const FWPM_CONDITION_RESERVED10: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb979e282_d621_4c8c_b184_b105a61c36ce); +pub const FWPM_CONDITION_RESERVED11: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2d62ee4d_023d_411f_9582_43acbb795975); +pub const FWPM_CONDITION_RESERVED12: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa3677c32_7e35_4ddc_93da_e8c33fc923c7); +pub const FWPM_CONDITION_RESERVED13: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x335a3e90_84aa_42f5_9e6f_59309536a44c); +pub const FWPM_CONDITION_RESERVED14: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30e44da2_2f1a_4116_a559_f907de83604a); +pub const FWPM_CONDITION_RESERVED15: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbab8340f_afe0_43d1_80d8_5ca456962de3); +pub const FWPM_CONDITION_RESERVED2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53d4123d_e15b_4e84_b7a8_dce16f7b62d9); +pub const FWPM_CONDITION_RESERVED3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f6e8ca3_6606_4932_97c7_e1f20710af3b); +pub const FWPM_CONDITION_RESERVED4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5f58e642_b937_495e_a94b_f6b051a49250); +pub const FWPM_CONDITION_RESERVED5: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9ba8f6cd_f77c_43e6_8847_11939dc5db5a); +pub const FWPM_CONDITION_RESERVED6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf13d84bd_59d5_44c4_8817_5ecdae1805bd); +pub const FWPM_CONDITION_RESERVED7: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65a0f930_45dd_4983_aa33_efc7b611af08); +pub const FWPM_CONDITION_RESERVED8: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4f424974_0c12_4816_9b47_9a547db39a32); +pub const FWPM_CONDITION_RESERVED9: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xce78e10f_13ff_4c70_8643_36ad1879afa3); +pub const FWPM_CONDITION_RPC_AUTH_LEVEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe5a0aed5_59ac_46ea_be05_a5f05ecf446e); +pub const FWPM_CONDITION_RPC_AUTH_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdaba74ab_0d67_43e7_986e_75b84f82f594); +pub const FWPM_CONDITION_RPC_EP_FLAGS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x218b814a_0a39_49b8_8e71_c20c39c7dd2e); +pub const FWPM_CONDITION_RPC_EP_VALUE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdccea0b9_0886_4360_9c6a_ab043a24fba9); +pub const FWPM_CONDITION_RPC_IF_FLAG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x238a8a32_3199_467d_871c_272621ab3896); +pub const FWPM_CONDITION_RPC_IF_UUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7c9c7d9f_0075_4d35_a0d1_8311c4cf6af1); +pub const FWPM_CONDITION_RPC_IF_VERSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeabfd9b7_1262_4a2e_adaa_5f96f6fe326d); +pub const FWPM_CONDITION_RPC_PROTOCOL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2717bc74_3a35_4ce7_b7ef_c838fabdec45); +pub const FWPM_CONDITION_RPC_PROXY_AUTH_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x40953fe2_8565_4759_8488_1771b4b4b5db); +pub const FWPM_CONDITION_RPC_SERVER_NAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb605a225_c3b3_48c7_9833_7aefa9527546); +pub const FWPM_CONDITION_RPC_SERVER_PORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8090f645_9ad5_4e3b_9f9f_8023ca097909); +pub const FWPM_CONDITION_SEC_ENCRYPT_ALGORITHM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0d306ef0_e974_4f74_b5c7_591b0da7d562); +pub const FWPM_CONDITION_SEC_KEY_SIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4772183b_ccf8_4aeb_bce1_c6c6161c8fe4); +pub const FWPM_CONDITION_SOURCE_INTERFACE_INDEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2311334d_c92d_45bf_9496_edf447820e2d); +pub const FWPM_CONDITION_SOURCE_SUB_INTERFACE_INDEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x055edd9d_acd2_4361_8dab_f9525d97662f); +pub const FWPM_CONDITION_SUB_INTERFACE_INDEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cd42473_d621_4be3_ae8c_72a348d283e1); +pub const FWPM_CONDITION_TUNNEL_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x77a40437_8779_4868_a261_f5a902f1c0cd); +pub const FWPM_CONDITION_VLAN_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x938eab21_3618_4e64_9ca5_2141ebda1ca2); +pub const FWPM_CONDITION_VSWITCH_DESTINATION_INTERFACE_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8ed48be4_c926_49f6_a4f6_ef3030e3fc16); +pub const FWPM_CONDITION_VSWITCH_DESTINATION_INTERFACE_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfa9b3f06_2f1a_4c57_9e68_a7098b28dbfe); +pub const FWPM_CONDITION_VSWITCH_DESTINATION_VM_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6106aace_4de1_4c84_9671_3637f8bcf731); +pub const FWPM_CONDITION_VSWITCH_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc4a414ba_437b_4de6_9946_d99c1b95b312); +pub const FWPM_CONDITION_VSWITCH_NETWORK_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x11d48b4b_e77a_40b4_9155_392c906c2608); +pub const FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f4ef24b_b2c1_4938_ba33_a1ecbed512ba); +pub const FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe6b040a2_edaf_4c36_908b_f2f58ae43807); +pub const FWPM_CONDITION_VSWITCH_SOURCE_VM_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9c2a9ec2_9fc6_42bc_bdd8_406d4da0be64); +pub const FWPM_CONDITION_VSWITCH_TENANT_NETWORK_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdc04843c_79e6_4e44_a025_65b9bb0f9f94); +pub const FWPM_CONNECTION_ENUM_FLAG_QUERY_BYTES_TRANSFERRED: u32 = 1u32; +pub const FWPM_CONNECTION_EVENT_ADD: FWPM_CONNECTION_EVENT_TYPE = 0i32; +pub const FWPM_CONNECTION_EVENT_DELETE: FWPM_CONNECTION_EVENT_TYPE = 1i32; +pub const FWPM_CONNECTION_EVENT_MAX: FWPM_CONNECTION_EVENT_TYPE = 2i32; +pub const FWPM_ENGINE_COLLECT_NET_EVENTS: FWPM_ENGINE_OPTION = 0i32; +pub const FWPM_ENGINE_MONITOR_IPSEC_CONNECTIONS: FWPM_ENGINE_OPTION = 3i32; +pub const FWPM_ENGINE_NAME_CACHE: FWPM_ENGINE_OPTION = 2i32; +pub const FWPM_ENGINE_NET_EVENT_MATCH_ANY_KEYWORDS: FWPM_ENGINE_OPTION = 1i32; +pub const FWPM_ENGINE_OPTION_MAX: FWPM_ENGINE_OPTION = 6i32; +pub const FWPM_ENGINE_OPTION_PACKET_BATCH_INBOUND: u32 = 4u32; +pub const FWPM_ENGINE_OPTION_PACKET_QUEUE_FORWARD: u32 = 2u32; +pub const FWPM_ENGINE_OPTION_PACKET_QUEUE_INBOUND: u32 = 1u32; +pub const FWPM_ENGINE_OPTION_PACKET_QUEUE_NONE: u32 = 0u32; +pub const FWPM_ENGINE_PACKET_QUEUING: FWPM_ENGINE_OPTION = 4i32; +pub const FWPM_ENGINE_TXN_WATCHDOG_TIMEOUT_IN_MSEC: FWPM_ENGINE_OPTION = 5i32; +pub const FWPM_FIELD_FLAGS: FWPM_FIELD_TYPE = 2i32; +pub const FWPM_FIELD_IP_ADDRESS: FWPM_FIELD_TYPE = 1i32; +pub const FWPM_FIELD_RAW_DATA: FWPM_FIELD_TYPE = 0i32; +pub const FWPM_FIELD_TYPE_MAX: FWPM_FIELD_TYPE = 3i32; +pub const FWPM_FILTER_FLAG_BOOTTIME: FWPM_FILTER_FLAGS = 2u32; +pub const FWPM_FILTER_FLAG_CLEAR_ACTION_RIGHT: FWPM_FILTER_FLAGS = 8u32; +pub const FWPM_FILTER_FLAG_DISABLED: FWPM_FILTER_FLAGS = 32u32; +pub const FWPM_FILTER_FLAG_GAMEOS_ONLY: u32 = 512u32; +pub const FWPM_FILTER_FLAG_HAS_PROVIDER_CONTEXT: FWPM_FILTER_FLAGS = 4u32; +pub const FWPM_FILTER_FLAG_HAS_SECURITY_REALM_PROVIDER_CONTEXT: u32 = 128u32; +pub const FWPM_FILTER_FLAG_INDEXED: FWPM_FILTER_FLAGS = 64u32; +pub const FWPM_FILTER_FLAG_IPSEC_NO_ACQUIRE_INITIATE: u32 = 2048u32; +pub const FWPM_FILTER_FLAG_NONE: FWPM_FILTER_FLAGS = 0u32; +pub const FWPM_FILTER_FLAG_PERMIT_IF_CALLOUT_UNREGISTERED: FWPM_FILTER_FLAGS = 16u32; +pub const FWPM_FILTER_FLAG_PERSISTENT: FWPM_FILTER_FLAGS = 1u32; +pub const FWPM_FILTER_FLAG_RESERVED0: u32 = 4096u32; +pub const FWPM_FILTER_FLAG_RESERVED1: u32 = 8192u32; +pub const FWPM_FILTER_FLAG_SILENT_MODE: u32 = 1024u32; +pub const FWPM_FILTER_FLAG_SYSTEMOS_ONLY: u32 = 256u32; +pub const FWPM_GENERAL_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 8i32; +pub const FWPM_IPSEC_AUTHIP_MM_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 6i32; +pub const FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 3i32; +pub const FWPM_IPSEC_AUTHIP_QM_TUNNEL_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 4i32; +pub const FWPM_IPSEC_DOSP_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 11i32; +pub const FWPM_IPSEC_IKEV2_MM_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 10i32; +pub const FWPM_IPSEC_IKEV2_QM_TRANSPORT_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 12i32; +pub const FWPM_IPSEC_IKEV2_QM_TUNNEL_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 9i32; +pub const FWPM_IPSEC_IKE_MM_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 5i32; +pub const FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 1i32; +pub const FWPM_IPSEC_IKE_QM_TUNNEL_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 2i32; +pub const FWPM_IPSEC_KEYING_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 0i32; +pub const FWPM_KEYING_MODULE_AUTHIP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x11e3dae0_dd26_4590_857d_ab4b28d1a095); +pub const FWPM_KEYING_MODULE_IKE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa9bbf787_82a8_45bb_a400_5d7e5952c7a9); +pub const FWPM_KEYING_MODULE_IKEV2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x041792cc_8f07_419d_a394_716968cb1647); +pub const FWPM_LAYER_ALE_AUTH_CONNECT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc38d57d1_05a7_4c33_904f_7fbceee60e82); +pub const FWPM_LAYER_ALE_AUTH_CONNECT_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd632a801_f5ba_4ad6_96e3_607017d9836a); +pub const FWPM_LAYER_ALE_AUTH_CONNECT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4a72393b_319f_44bc_84c3_ba54dcb3b6b4); +pub const FWPM_LAYER_ALE_AUTH_CONNECT_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc97bc3b8_c9a3_4e33_8695_8e17aad4de09); +pub const FWPM_LAYER_ALE_AUTH_LISTEN_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x88bb5dad_76d7_4227_9c71_df0a3ed7be7e); +pub const FWPM_LAYER_ALE_AUTH_LISTEN_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x371dfada_9f26_45fd_b4eb_c29eb212893f); +pub const FWPM_LAYER_ALE_AUTH_LISTEN_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7ac9de24_17dd_4814_b4bd_a9fbc95a321b); +pub const FWPM_LAYER_ALE_AUTH_LISTEN_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x60703b07_63c8_48e9_ada3_12b1af40a617); +pub const FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe1cd9fe7_f4b5_4273_96c0_592e487b8650); +pub const FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9eeaa99b_bd22_4227_919f_0073c63357b1); +pub const FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa3b42c97_9f04_4672_b87e_cee9c483257f); +pub const FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x89455b97_dbe1_453f_a224_13da895af396); +pub const FWPM_LAYER_ALE_BIND_REDIRECT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66978cad_c704_42ac_86ac_7c1a231bd253); +pub const FWPM_LAYER_ALE_BIND_REDIRECT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbef02c9c_606b_4536_8c26_1c2fc7b631d4); +pub const FWPM_LAYER_ALE_CONNECT_REDIRECT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6e63c8c_b784_4562_aa7d_0a67cfcaf9a3); +pub const FWPM_LAYER_ALE_CONNECT_REDIRECT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x587e54a7_8046_42ba_a0aa_b716250fc7fd); +pub const FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb4766427_e2a2_467a_bd7e_dbcd1bd85a09); +pub const FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbb536ccd_4755_4ba9_9ff7_f9edf8699c7b); +pub const FWPM_LAYER_ALE_FLOW_ESTABLISHED_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaf80470a_5596_4c13_9992_539e6fe57967); +pub const FWPM_LAYER_ALE_FLOW_ESTABLISHED_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x146ae4a9_a1d2_4d43_a31a_4c42682b8e4f); +pub const FWPM_LAYER_ALE_FLOW_ESTABLISHED_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7021d2b3_dfa4_406e_afeb_6afaf7e70efd); +pub const FWPM_LAYER_ALE_FLOW_ESTABLISHED_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x46928636_bbca_4b76_941d_0fa7f5d7d372); +pub const FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1247d66d_0b60_4a15_8d44_7155d0f53a0c); +pub const FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0b5812a2_c3ff_4eca_b88d_c79e20ac6322); +pub const FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x55a650e1_5f0a_4eca_a653_88f53b26aa8c); +pub const FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcbc998bb_c51f_4c1a_bb4f_9775fcacab2f); +pub const FWPM_LAYER_ALE_RESOURCE_RELEASE_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x74365cce_ccb0_401a_bfc1_b89934ad7e15); +pub const FWPM_LAYER_ALE_RESOURCE_RELEASE_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf4e5ce80_edcc_4e13_8a2f_b91454bb057b); +pub const FWPM_LAYER_DATAGRAM_DATA_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d08bf4e_45f6_4930_a922_417098e20027); +pub const FWPM_LAYER_DATAGRAM_DATA_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x18e330c6_7248_4e52_aaab_472ed67704fd); +pub const FWPM_LAYER_DATAGRAM_DATA_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfa45fe2f_3cba_4427_87fc_57b9a4b10d00); +pub const FWPM_LAYER_DATAGRAM_DATA_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x09d1dfe1_9b86_4a42_be9d_8c315b92a5d0); +pub const FWPM_LAYER_EGRESS_VSWITCH_ETHERNET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x86c872b0_76fa_4b79_93a4_0750530ae292); +pub const FWPM_LAYER_EGRESS_VSWITCH_TRANSPORT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb92350b6_91f0_46b6_bdc4_871dfd4a7c98); +pub const FWPM_LAYER_EGRESS_VSWITCH_TRANSPORT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1b2def23_1881_40bd_82f4_4254e63141cb); +pub const FWPM_LAYER_FLAG_BUFFERED: u32 = 8u32; +pub const FWPM_LAYER_FLAG_BUILTIN: u32 = 2u32; +pub const FWPM_LAYER_FLAG_CLASSIFY_MOSTLY: u32 = 4u32; +pub const FWPM_LAYER_FLAG_KERNEL: u32 = 1u32; +pub const FWPM_LAYER_IKEEXT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb14b7bdb_dbbd_473e_bed4_8b4708d4f270); +pub const FWPM_LAYER_IKEEXT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb64786b3_f687_4eb9_89d2_8ef32acdabe2); +pub const FWPM_LAYER_INBOUND_ICMP_ERROR_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x61499990_3cb6_4e84_b950_53b94b6964f3); +pub const FWPM_LAYER_INBOUND_ICMP_ERROR_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa6b17075_ebaf_4053_a4e7_213c8121ede5); +pub const FWPM_LAYER_INBOUND_ICMP_ERROR_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65f9bdff_3b2d_4e5d_b8c6_c720651fe898); +pub const FWPM_LAYER_INBOUND_ICMP_ERROR_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa6e7ccc0_08fb_468d_a472_9771d5595e09); +pub const FWPM_LAYER_INBOUND_IPPACKET_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc86fd1bf_21cd_497e_a0bb_17425c885c58); +pub const FWPM_LAYER_INBOUND_IPPACKET_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb5a230d0_a8c0_44f2_916e_991b53ded1f7); +pub const FWPM_LAYER_INBOUND_IPPACKET_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf52032cb_991c_46e7_971d_2601459a91ca); +pub const FWPM_LAYER_INBOUND_IPPACKET_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbb24c279_93b4_47a2_83ad_ae1698b50885); +pub const FWPM_LAYER_INBOUND_MAC_FRAME_ETHERNET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeffb7edb_0055_4f9a_a231_4ff8131ad191); +pub const FWPM_LAYER_INBOUND_MAC_FRAME_NATIVE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd4220bd3_62ce_4f08_ae88_b56e8526df50); +pub const FWPM_LAYER_INBOUND_MAC_FRAME_NATIVE_FAST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x853aaa8e_2b78_4d24_a804_36db08b29711); +pub const FWPM_LAYER_INBOUND_RESERVED2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf4fb8d55_c076_46d8_a2c7_6a4c722ca4ed); +pub const FWPM_LAYER_INBOUND_TRANSPORT_FAST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe41d2719_05c7_40f0_8983_ea8d17bbc2f6); +pub const FWPM_LAYER_INBOUND_TRANSPORT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5926dfc8_e3cf_4426_a283_dc393f5d0f9d); +pub const FWPM_LAYER_INBOUND_TRANSPORT_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xac4a9833_f69d_4648_b261_6dc84835ef39); +pub const FWPM_LAYER_INBOUND_TRANSPORT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x634a869f_fc23_4b90_b0c1_bf620a36ae6f); +pub const FWPM_LAYER_INBOUND_TRANSPORT_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2a6ff955_3b2b_49d2_9848_ad9d72dcaab7); +pub const FWPM_LAYER_INGRESS_VSWITCH_ETHERNET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7d98577a_9a87_41ec_9718_7cf589c9f32d); +pub const FWPM_LAYER_INGRESS_VSWITCH_TRANSPORT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb2696ff6_774f_4554_9f7d_3da3945f8e85); +pub const FWPM_LAYER_INGRESS_VSWITCH_TRANSPORT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ee314fc_7d8a_47f4_b7e3_291a36da4e12); +pub const FWPM_LAYER_IPFORWARD_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa82acc24_4ee1_4ee1_b465_fd1d25cb10a4); +pub const FWPM_LAYER_IPFORWARD_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9e9ea773_2fae_4210_8f17_34129ef369eb); +pub const FWPM_LAYER_IPFORWARD_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b964818_19c7_493a_b71f_832c3684d28c); +pub const FWPM_LAYER_IPFORWARD_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x31524a5d_1dfe_472f_bb93_518ee945d8a2); +pub const FWPM_LAYER_IPSEC_KM_DEMUX_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf02b1526_a459_4a51_b9e3_759de52b9d2c); +pub const FWPM_LAYER_IPSEC_KM_DEMUX_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2f755cf6_2fd4_4e88_b3e4_a91bca495235); +pub const FWPM_LAYER_IPSEC_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeda65c74_610d_4bc5_948f_3c4f89556867); +pub const FWPM_LAYER_IPSEC_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13c48442_8d87_4261_9a29_59d2abc348b4); +pub const FWPM_LAYER_KM_AUTHORIZATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4aa226e9_9020_45fb_956a_c0249d841195); +pub const FWPM_LAYER_NAME_RESOLUTION_CACHE_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0c2aa681_905b_4ccd_a467_4dd811d07b7b); +pub const FWPM_LAYER_NAME_RESOLUTION_CACHE_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x92d592fa_6b01_434a_9dea_d1e96ea97da9); +pub const FWPM_LAYER_OUTBOUND_ICMP_ERROR_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x41390100_564c_4b32_bc1d_718048354d7c); +pub const FWPM_LAYER_OUTBOUND_ICMP_ERROR_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb3598d36_0561_4588_a6bf_e955e3f6264b); +pub const FWPM_LAYER_OUTBOUND_ICMP_ERROR_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7fb03b60_7b8d_4dfa_badd_980176fc4e12); +pub const FWPM_LAYER_OUTBOUND_ICMP_ERROR_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65f2e647_8d0c_4f47_b19b_33a4d3f1357c); +pub const FWPM_LAYER_OUTBOUND_IPPACKET_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1e5c9fae_8a84_4135_a331_950b54229ecd); +pub const FWPM_LAYER_OUTBOUND_IPPACKET_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x08e4bcb5_b647_48f3_953c_e5ddbd03937e); +pub const FWPM_LAYER_OUTBOUND_IPPACKET_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa3b3ab6b_3564_488c_9117_f34e82142763); +pub const FWPM_LAYER_OUTBOUND_IPPACKET_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9513d7c4_a934_49dc_91a7_6ccb80cc02e3); +pub const FWPM_LAYER_OUTBOUND_MAC_FRAME_ETHERNET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x694673bc_d6db_4870_adee_0acdbdb7f4b2); +pub const FWPM_LAYER_OUTBOUND_MAC_FRAME_NATIVE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x94c44912_9d6f_4ebf_b995_05ab8a088d1b); +pub const FWPM_LAYER_OUTBOUND_MAC_FRAME_NATIVE_FAST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x470df946_c962_486f_9446_8293cbc75eb8); +pub const FWPM_LAYER_OUTBOUND_NETWORK_CONNECTION_POLICY_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x037f317a_d696_494a_bba5_bffc265e6052); +pub const FWPM_LAYER_OUTBOUND_NETWORK_CONNECTION_POLICY_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x22a4fdb1_6d7e_48ae_ae77_3742525c3119); +pub const FWPM_LAYER_OUTBOUND_TRANSPORT_FAST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13ed4388_a070_4815_9935_7a9be6408b78); +pub const FWPM_LAYER_OUTBOUND_TRANSPORT_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x09e61aea_d214_46e2_9b21_b26b0b2f28c8); +pub const FWPM_LAYER_OUTBOUND_TRANSPORT_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc5f10551_bdb0_43d7_a313_50e211f4d68a); +pub const FWPM_LAYER_OUTBOUND_TRANSPORT_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe1735bde_013f_4655_b351_a49e15762df0); +pub const FWPM_LAYER_OUTBOUND_TRANSPORT_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf433df69_ccbd_482e_b9b2_57165658c3b3); +pub const FWPM_LAYER_RPC_EPMAP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9247bc61_eb07_47ee_872c_bfd78bfd1616); +pub const FWPM_LAYER_RPC_EP_ADD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x618dffc7_c450_4943_95db_99b4c16a55d4); +pub const FWPM_LAYER_RPC_PROXY_CONN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x94a4b50b_ba5c_4f27_907a_229fac0c2a7a); +pub const FWPM_LAYER_RPC_PROXY_IF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf8a38615_e12c_41ac_98df_121ad981aade); +pub const FWPM_LAYER_RPC_UM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x75a89dda_95e4_40f3_adc7_7688a9c847e1); +pub const FWPM_LAYER_STREAM_PACKET_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaf52d8ec_cb2d_44e5_ad92_f8dc38d2eb29); +pub const FWPM_LAYER_STREAM_PACKET_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x779a8ca3_f099_468f_b5d4_83535c461c02); +pub const FWPM_LAYER_STREAM_V4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3b89653c_c170_49e4_b1cd_e0eeeee19a3e); +pub const FWPM_LAYER_STREAM_V4_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25c4c2c2_25ff_4352_82f9_c54a4a4726dc); +pub const FWPM_LAYER_STREAM_V6: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x47c9137a_7ec4_46b3_b6e4_48e926b1eda4); +pub const FWPM_LAYER_STREAM_V6_DISCARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x10a59fc7_b628_4c41_9eb8_cf37d55103cf); +pub const FWPM_NETWORK_CONNECTION_POLICY_CONTEXT: FWPM_PROVIDER_CONTEXT_TYPE = 13i32; +pub const FWPM_NET_EVENT_FLAG_APP_ID_SET: u32 = 32u32; +pub const FWPM_NET_EVENT_FLAG_EFFECTIVE_NAME_SET: u32 = 8192u32; +pub const FWPM_NET_EVENT_FLAG_ENTERPRISE_ID_SET: u32 = 2048u32; +pub const FWPM_NET_EVENT_FLAG_IP_PROTOCOL_SET: u32 = 1u32; +pub const FWPM_NET_EVENT_FLAG_IP_VERSION_SET: u32 = 256u32; +pub const FWPM_NET_EVENT_FLAG_LOCAL_ADDR_SET: u32 = 2u32; +pub const FWPM_NET_EVENT_FLAG_LOCAL_PORT_SET: u32 = 8u32; +pub const FWPM_NET_EVENT_FLAG_PACKAGE_ID_SET: u32 = 1024u32; +pub const FWPM_NET_EVENT_FLAG_POLICY_FLAGS_SET: u32 = 4096u32; +pub const FWPM_NET_EVENT_FLAG_REAUTH_REASON_SET: u32 = 512u32; +pub const FWPM_NET_EVENT_FLAG_REMOTE_ADDR_SET: u32 = 4u32; +pub const FWPM_NET_EVENT_FLAG_REMOTE_PORT_SET: u32 = 16u32; +pub const FWPM_NET_EVENT_FLAG_SCOPE_ID_SET: u32 = 128u32; +pub const FWPM_NET_EVENT_FLAG_USER_ID_SET: u32 = 64u32; +pub const FWPM_NET_EVENT_IKEEXT_EM_FAILURE_FLAG_BENIGN: u32 = 2u32; +pub const FWPM_NET_EVENT_IKEEXT_EM_FAILURE_FLAG_MULTIPLE: u32 = 1u32; +pub const FWPM_NET_EVENT_IKEEXT_MM_FAILURE_FLAG_BENIGN: u32 = 1u32; +pub const FWPM_NET_EVENT_IKEEXT_MM_FAILURE_FLAG_MULTIPLE: u32 = 2u32; +pub const FWPM_NET_EVENT_KEYWORD_CAPABILITY_ALLOW: u32 = 8u32; +pub const FWPM_NET_EVENT_KEYWORD_CAPABILITY_DROP: u32 = 4u32; +pub const FWPM_NET_EVENT_KEYWORD_CLASSIFY_ALLOW: u32 = 16u32; +pub const FWPM_NET_EVENT_KEYWORD_INBOUND_BCAST: u32 = 2u32; +pub const FWPM_NET_EVENT_KEYWORD_INBOUND_MCAST: u32 = 1u32; +pub const FWPM_NET_EVENT_KEYWORD_PORT_SCANNING_DROP: u32 = 32u32; +pub const FWPM_NET_EVENT_TYPE_CAPABILITY_ALLOW: FWPM_NET_EVENT_TYPE = 8i32; +pub const FWPM_NET_EVENT_TYPE_CAPABILITY_DROP: FWPM_NET_EVENT_TYPE = 7i32; +pub const FWPM_NET_EVENT_TYPE_CLASSIFY_ALLOW: FWPM_NET_EVENT_TYPE = 6i32; +pub const FWPM_NET_EVENT_TYPE_CLASSIFY_DROP: FWPM_NET_EVENT_TYPE = 3i32; +pub const FWPM_NET_EVENT_TYPE_CLASSIFY_DROP_MAC: FWPM_NET_EVENT_TYPE = 9i32; +pub const FWPM_NET_EVENT_TYPE_IKEEXT_EM_FAILURE: FWPM_NET_EVENT_TYPE = 2i32; +pub const FWPM_NET_EVENT_TYPE_IKEEXT_MM_FAILURE: FWPM_NET_EVENT_TYPE = 0i32; +pub const FWPM_NET_EVENT_TYPE_IKEEXT_QM_FAILURE: FWPM_NET_EVENT_TYPE = 1i32; +pub const FWPM_NET_EVENT_TYPE_IPSEC_DOSP_DROP: FWPM_NET_EVENT_TYPE = 5i32; +pub const FWPM_NET_EVENT_TYPE_IPSEC_KERNEL_DROP: FWPM_NET_EVENT_TYPE = 4i32; +pub const FWPM_NET_EVENT_TYPE_LPM_PACKET_ARRIVAL: FWPM_NET_EVENT_TYPE = 10i32; +pub const FWPM_NET_EVENT_TYPE_MAX: FWPM_NET_EVENT_TYPE = 11i32; +pub const FWPM_PROVIDER_CONTEXT_FLAG_DOWNLEVEL: u32 = 2u32; +pub const FWPM_PROVIDER_CONTEXT_FLAG_PERSISTENT: u32 = 1u32; +pub const FWPM_PROVIDER_CONTEXT_SECURE_SOCKET_AUTHIP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb25ea800_0d02_46ed_92bd_7fa84bb73e9d); +pub const FWPM_PROVIDER_CONTEXT_SECURE_SOCKET_IPSEC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8c2d4144_f8e0_42c0_94ce_7ccfc63b2f9b); +pub const FWPM_PROVIDER_CONTEXT_TYPE_MAX: FWPM_PROVIDER_CONTEXT_TYPE = 14i32; +pub const FWPM_PROVIDER_FLAG_DISABLED: u32 = 16u32; +pub const FWPM_PROVIDER_FLAG_PERSISTENT: u32 = 1u32; +pub const FWPM_PROVIDER_IKEEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x10ad9216_ccde_456c_8b16_e9f04e60a90b); +pub const FWPM_PROVIDER_IPSEC_DOSP_CONFIG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3c6c05a9_c05c_4bb9_8338_2327814ce8bf); +pub const FWPM_PROVIDER_MPSSVC_APP_ISOLATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3cc2631f_2d5d_43a0_b174_614837d863a1); +pub const FWPM_PROVIDER_MPSSVC_EDP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa90296f7_46b8_4457_8f84_b05e05d3c622); +pub const FWPM_PROVIDER_MPSSVC_TENANT_RESTRICTIONS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd0718ff9_44da_4f50_9dc2_c963a4247613); +pub const FWPM_PROVIDER_MPSSVC_WF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdecc16ca_3f33_4346_be1e_8fb4ae0f3d62); +pub const FWPM_PROVIDER_MPSSVC_WSH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4b153735_1049_4480_aab4_d1b9bdc03710); +pub const FWPM_PROVIDER_TCP_CHIMNEY_OFFLOAD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x896aa19e_9a34_4bcb_ae79_beb9127c84b9); +pub const FWPM_PROVIDER_TCP_TEMPLATES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x76cfcd30_3394_432d_bed3_441ae50e63c3); +pub const FWPM_SERVICE_RUNNING: FWPM_SERVICE_STATE = 3i32; +pub const FWPM_SERVICE_START_PENDING: FWPM_SERVICE_STATE = 1i32; +pub const FWPM_SERVICE_STATE_MAX: FWPM_SERVICE_STATE = 4i32; +pub const FWPM_SERVICE_STOPPED: FWPM_SERVICE_STATE = 0i32; +pub const FWPM_SERVICE_STOP_PENDING: FWPM_SERVICE_STATE = 2i32; +pub const FWPM_SESSION_FLAG_DYNAMIC: u32 = 1u32; +pub const FWPM_SESSION_FLAG_RESERVED: u32 = 268435456u32; +pub const FWPM_SUBLAYER_FLAG_PERSISTENT: u32 = 1u32; +pub const FWPM_SUBLAYER_INSPECTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x877519e1_e6a9_41a5_81b4_8c4f118e4a60); +pub const FWPM_SUBLAYER_IPSEC_DOSP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe076d572_5d3d_48ef_802b_909eddb098bd); +pub const FWPM_SUBLAYER_IPSEC_FORWARD_OUTBOUND_TUNNEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa5082e73_8f71_4559_8a9a_101cea04ef87); +pub const FWPM_SUBLAYER_IPSEC_SECURITY_REALM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x37a57701_5884_4964_92b8_3e704688b0ad); +pub const FWPM_SUBLAYER_IPSEC_TUNNEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x83f299ed_9ff4_4967_aff4_c309f4dab827); +pub const FWPM_SUBLAYER_LIPS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1b75c0ce_ff60_4711_a70f_b4958cc3b2d0); +pub const FWPM_SUBLAYER_MPSSVC_APP_ISOLATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xffe221c3_92a8_4564_a59f_dafb70756020); +pub const FWPM_SUBLAYER_MPSSVC_EDP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x09a47e38_fa97_471b_b123_18bcd7e65071); +pub const FWPM_SUBLAYER_MPSSVC_QUARANTINE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb3cdd441_af90_41ba_a745_7c6008ff2302); +pub const FWPM_SUBLAYER_MPSSVC_TENANT_RESTRICTIONS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ec6c7e1_fdd9_478a_b55f_ff8ba1d2c17d); +pub const FWPM_SUBLAYER_MPSSVC_WF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb3cdd441_af90_41ba_a745_7c6008ff2301); +pub const FWPM_SUBLAYER_MPSSVC_WSH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb3cdd441_af90_41ba_a745_7c6008ff2300); +pub const FWPM_SUBLAYER_RPC_AUDIT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x758c84f4_fb48_4de9_9aeb_3ed9551ab1fd); +pub const FWPM_SUBLAYER_SECURE_SOCKET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x15a66e17_3f3c_4f7b_aa6c_812aa613dd82); +pub const FWPM_SUBLAYER_TCP_CHIMNEY_OFFLOAD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x337608b9_b7d5_4d5f_82f9_3618618bc058); +pub const FWPM_SUBLAYER_TCP_TEMPLATES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x24421dcf_0ac5_4caa_9e14_50f6e3636af0); +pub const FWPM_SUBLAYER_TEREDO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba69dc66_5176_4979_9c89_26a7b46a8327); +pub const FWPM_SUBLAYER_UNIVERSAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeebecc03_ced4_4380_819a_2734397b2b74); +pub const FWPM_SUBSCRIPTION_FLAG_NOTIFY_ON_ADD: FWPM_SUBSCRIPTION_FLAGS = 1u32; +pub const FWPM_SUBSCRIPTION_FLAG_NOTIFY_ON_DELETE: FWPM_SUBSCRIPTION_FLAGS = 2u32; +pub const FWPM_SYSTEM_PORT_IPHTTPS_IN: FWPM_SYSTEM_PORT_TYPE = 2i32; +pub const FWPM_SYSTEM_PORT_IPHTTPS_OUT: FWPM_SYSTEM_PORT_TYPE = 3i32; +pub const FWPM_SYSTEM_PORT_RPC_EPMAP: FWPM_SYSTEM_PORT_TYPE = 0i32; +pub const FWPM_SYSTEM_PORT_TEREDO: FWPM_SYSTEM_PORT_TYPE = 1i32; +pub const FWPM_SYSTEM_PORT_TYPE_MAX: FWPM_SYSTEM_PORT_TYPE = 4i32; +pub const FWPM_TUNNEL_FLAG_ENABLE_VIRTUAL_IF_TUNNELING: u32 = 2u32; +pub const FWPM_TUNNEL_FLAG_POINT_TO_POINT: u32 = 1u32; +pub const FWPM_TUNNEL_FLAG_RESERVED0: u32 = 4u32; +pub const FWPM_TXN_READ_ONLY: u32 = 1u32; +pub const FWPM_VSWITCH_EVENT_DISABLED_FOR_INSPECTION: FWPM_VSWITCH_EVENT_TYPE = 3i32; +pub const FWPM_VSWITCH_EVENT_ENABLED_FOR_INSPECTION: FWPM_VSWITCH_EVENT_TYPE = 2i32; +pub const FWPM_VSWITCH_EVENT_FILTER_ADD_TO_INCOMPLETE_LAYER: FWPM_VSWITCH_EVENT_TYPE = 0i32; +pub const FWPM_VSWITCH_EVENT_FILTER_ENGINE_NOT_IN_REQUIRED_POSITION: FWPM_VSWITCH_EVENT_TYPE = 1i32; +pub const FWPM_VSWITCH_EVENT_FILTER_ENGINE_REORDER: FWPM_VSWITCH_EVENT_TYPE = 4i32; +pub const FWPM_VSWITCH_EVENT_MAX: FWPM_VSWITCH_EVENT_TYPE = 5i32; +pub const FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS: u32 = 12u32; +pub const FWPM_WEIGHT_RANGE_IPSEC: u32 = 0u32; +pub const FWPS_ALE_ENDPOINT_FLAG_IPSEC_SECURED: u32 = 1u32; +pub const FWPS_CLASSIFY_OUT_FLAG_ABSORB: u32 = 1u32; +pub const FWPS_CLASSIFY_OUT_FLAG_ALE_FAST_CACHE_CHECK: u32 = 8u32; +pub const FWPS_CLASSIFY_OUT_FLAG_ALE_FAST_CACHE_POSSIBLE: u32 = 16u32; +pub const FWPS_CLASSIFY_OUT_FLAG_BUFFER_LIMIT_REACHED: u32 = 2u32; +pub const FWPS_CLASSIFY_OUT_FLAG_NO_MORE_DATA: u32 = 4u32; +pub const FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT: u32 = 1u32; +pub const FWPS_FILTER_FLAG_HAS_SECURITY_REALM_PROVIDER_CONTEXT: u32 = 8u32; +pub const FWPS_FILTER_FLAG_IPSEC_NO_ACQUIRE_INITIATE: u32 = 32u32; +pub const FWPS_FILTER_FLAG_OR_CONDITIONS: u32 = 4u32; +pub const FWPS_FILTER_FLAG_PERMIT_IF_CALLOUT_UNREGISTERED: u32 = 2u32; +pub const FWPS_FILTER_FLAG_RESERVED0: u32 = 64u32; +pub const FWPS_FILTER_FLAG_RESERVED1: u32 = 128u32; +pub const FWPS_FILTER_FLAG_SILENT_MODE: u32 = 16u32; +pub const FWPS_INCOMING_FLAG_ABSORB: u32 = 4u32; +pub const FWPS_INCOMING_FLAG_CACHE_SAFE: u32 = 1u32; +pub const FWPS_INCOMING_FLAG_CONNECTION_FAILING_INDICATION: u32 = 8u32; +pub const FWPS_INCOMING_FLAG_ENFORCE_QUERY: u32 = 2u32; +pub const FWPS_INCOMING_FLAG_IS_LOCAL_ONLY_FLOW: u32 = 128u32; +pub const FWPS_INCOMING_FLAG_IS_LOOSE_SOURCE_FLOW: u32 = 64u32; +pub const FWPS_INCOMING_FLAG_MID_STREAM_INSPECTION: u32 = 16u32; +pub const FWPS_INCOMING_FLAG_RECLASSIFY: u32 = 32u32; +pub const FWPS_INCOMING_FLAG_RESERVED0: u32 = 256u32; +pub const FWPS_L2_INCOMING_FLAG_IS_RAW_IPV4_FRAMING: u32 = 1u32; +pub const FWPS_L2_INCOMING_FLAG_IS_RAW_IPV6_FRAMING: u32 = 2u32; +pub const FWPS_L2_INCOMING_FLAG_RECLASSIFY_MULTI_DESTINATION: u32 = 8u32; +pub const FWPS_L2_METADATA_FIELD_ETHERNET_MAC_HEADER_SIZE: u32 = 1u32; +pub const FWPS_L2_METADATA_FIELD_RESERVED: u32 = 2147483648u32; +pub const FWPS_L2_METADATA_FIELD_VSWITCH_DESTINATION_PORT_ID: u32 = 32u32; +pub const FWPS_L2_METADATA_FIELD_VSWITCH_PACKET_CONTEXT: u32 = 16u32; +pub const FWPS_L2_METADATA_FIELD_VSWITCH_SOURCE_NIC_INDEX: u32 = 8u32; +pub const FWPS_L2_METADATA_FIELD_VSWITCH_SOURCE_PORT_ID: u32 = 4u32; +pub const FWPS_L2_METADATA_FIELD_WIFI_OPERATION_MODE: u32 = 2u32; +pub const FWPS_METADATA_FIELD_ALE_CLASSIFY_REQUIRED: u32 = 4194304u32; +pub const FWPS_METADATA_FIELD_COMPARTMENT_ID: u32 = 2048u32; +pub const FWPS_METADATA_FIELD_COMPLETION_HANDLE: u32 = 16384u32; +pub const FWPS_METADATA_FIELD_DESTINATION_INTERFACE_INDEX: u32 = 512u32; +pub const FWPS_METADATA_FIELD_DESTINATION_PREFIX: u32 = 16777216u32; +pub const FWPS_METADATA_FIELD_DISCARD_REASON: u32 = 1u32; +pub const FWPS_METADATA_FIELD_ETHER_FRAME_LENGTH: u32 = 33554432u32; +pub const FWPS_METADATA_FIELD_FLOW_HANDLE: u32 = 2u32; +pub const FWPS_METADATA_FIELD_FORWARD_LAYER_INBOUND_PASS_THRU: u32 = 2097152u32; +pub const FWPS_METADATA_FIELD_FORWARD_LAYER_OUTBOUND_PASS_THRU: u32 = 1048576u32; +pub const FWPS_METADATA_FIELD_FRAGMENT_DATA: u32 = 4096u32; +pub const FWPS_METADATA_FIELD_ICMP_ID_AND_SEQUENCE: u32 = 134217728u32; +pub const FWPS_METADATA_FIELD_IP_HEADER_SIZE: u32 = 4u32; +pub const FWPS_METADATA_FIELD_LOCAL_REDIRECT_TARGET_PID: u32 = 268435456u32; +pub const FWPS_METADATA_FIELD_ORIGINAL_DESTINATION: u32 = 536870912u32; +pub const FWPS_METADATA_FIELD_PACKET_DIRECTION: u32 = 262144u32; +pub const FWPS_METADATA_FIELD_PACKET_SYSTEM_CRITICAL: u32 = 524288u32; +pub const FWPS_METADATA_FIELD_PARENT_ENDPOINT_HANDLE: u32 = 67108864u32; +pub const FWPS_METADATA_FIELD_PATH_MTU: u32 = 8192u32; +pub const FWPS_METADATA_FIELD_PROCESS_ID: u32 = 32u32; +pub const FWPS_METADATA_FIELD_PROCESS_PATH: u32 = 8u32; +pub const FWPS_METADATA_FIELD_REDIRECT_RECORD_HANDLE: u32 = 1073741824u32; +pub const FWPS_METADATA_FIELD_REMOTE_SCOPE_ID: u32 = 131072u32; +pub const FWPS_METADATA_FIELD_RESERVED: u32 = 128u32; +pub const FWPS_METADATA_FIELD_SOURCE_INTERFACE_INDEX: u32 = 256u32; +pub const FWPS_METADATA_FIELD_SUB_PROCESS_TAG: u32 = 2147483648u32; +pub const FWPS_METADATA_FIELD_SYSTEM_FLAGS: u32 = 64u32; +pub const FWPS_METADATA_FIELD_TOKEN: u32 = 16u32; +pub const FWPS_METADATA_FIELD_TRANSPORT_CONTROL_DATA: u32 = 65536u32; +pub const FWPS_METADATA_FIELD_TRANSPORT_ENDPOINT_HANDLE: u32 = 32768u32; +pub const FWPS_METADATA_FIELD_TRANSPORT_HEADER_INCLUDE_HEADER: u32 = 8388608u32; +pub const FWPS_METADATA_FIELD_TRANSPORT_HEADER_SIZE: u32 = 1024u32; +pub const FWPS_RIGHT_ACTION_WRITE: u32 = 1u32; +pub const FWP_ACTION_BLOCK: FWP_ACTION_TYPE = 4097u32; +pub const FWP_ACTION_CALLOUT_INSPECTION: FWP_ACTION_TYPE = 24580u32; +pub const FWP_ACTION_CALLOUT_TERMINATING: FWP_ACTION_TYPE = 20483u32; +pub const FWP_ACTION_CALLOUT_UNKNOWN: FWP_ACTION_TYPE = 16389u32; +pub const FWP_ACTION_CONTINUE: FWP_ACTION_TYPE = 8198u32; +pub const FWP_ACTION_FLAG_CALLOUT: u32 = 16384u32; +pub const FWP_ACTION_FLAG_NON_TERMINATING: u32 = 8192u32; +pub const FWP_ACTION_FLAG_TERMINATING: u32 = 4096u32; +pub const FWP_ACTION_NONE: FWP_ACTION_TYPE = 7u32; +pub const FWP_ACTION_NONE_NO_MATCH: FWP_ACTION_TYPE = 8u32; +pub const FWP_ACTION_PERMIT: FWP_ACTION_TYPE = 4098u32; +pub const FWP_ACTRL_MATCH_FILTER: u32 = 1u32; +pub const FWP_AF_ETHER: FWP_AF = 2i32; +pub const FWP_AF_INET: FWP_AF = 0i32; +pub const FWP_AF_INET6: FWP_AF = 1i32; +pub const FWP_AF_NONE: FWP_AF = 3i32; +pub const FWP_BYTEMAP_ARRAY64_SIZE: u32 = 8u32; +pub const FWP_BYTE_ARRAY16_TYPE: FWP_DATA_TYPE = 11i32; +pub const FWP_BYTE_ARRAY6_SIZE: u32 = 6u32; +pub const FWP_BYTE_ARRAY6_TYPE: FWP_DATA_TYPE = 18i32; +pub const FWP_BYTE_BLOB_TYPE: FWP_DATA_TYPE = 12i32; +pub const FWP_CALLOUT_FLAG_ALLOW_L2_BATCH_CLASSIFY: u32 = 128u32; +pub const FWP_CALLOUT_FLAG_ALLOW_MID_STREAM_INSPECTION: u32 = 8u32; +pub const FWP_CALLOUT_FLAG_ALLOW_OFFLOAD: u32 = 2u32; +pub const FWP_CALLOUT_FLAG_ALLOW_RECLASSIFY: u32 = 16u32; +pub const FWP_CALLOUT_FLAG_ALLOW_RSC: u32 = 64u32; +pub const FWP_CALLOUT_FLAG_ALLOW_URO: u32 = 512u32; +pub const FWP_CALLOUT_FLAG_ALLOW_USO: u32 = 256u32; +pub const FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW: u32 = 1u32; +pub const FWP_CALLOUT_FLAG_ENABLE_COMMIT_ADD_NOTIFY: u32 = 4u32; +pub const FWP_CALLOUT_FLAG_RESERVED1: u32 = 32u32; +pub const FWP_CALLOUT_FLAG_RESERVED2: u32 = 1024u32; +pub const FWP_CLASSIFY_OPTION_LOCAL_ONLY_MAPPING: FWP_CLASSIFY_OPTION_TYPE = 7i32; +pub const FWP_CLASSIFY_OPTION_LOOSE_SOURCE_MAPPING: FWP_CLASSIFY_OPTION_TYPE = 1i32; +pub const FWP_CLASSIFY_OPTION_MAX: FWP_CLASSIFY_OPTION_TYPE = 8i32; +pub const FWP_CLASSIFY_OPTION_MCAST_BCAST_LIFETIME: FWP_CLASSIFY_OPTION_TYPE = 3i32; +pub const FWP_CLASSIFY_OPTION_MULTICAST_STATE: FWP_CLASSIFY_OPTION_TYPE = 0i32; +pub const FWP_CLASSIFY_OPTION_SECURE_SOCKET_AUTHIP_MM_POLICY_KEY: FWP_CLASSIFY_OPTION_TYPE = 5i32; +pub const FWP_CLASSIFY_OPTION_SECURE_SOCKET_AUTHIP_QM_POLICY_KEY: FWP_CLASSIFY_OPTION_TYPE = 6i32; +pub const FWP_CLASSIFY_OPTION_SECURE_SOCKET_SECURITY_FLAGS: FWP_CLASSIFY_OPTION_TYPE = 4i32; +pub const FWP_CLASSIFY_OPTION_UNICAST_LIFETIME: FWP_CLASSIFY_OPTION_TYPE = 2i32; +pub const FWP_CONDITION_FLAG_IS_APPCONTAINER_LOOPBACK: u32 = 4194304u32; +pub const FWP_CONDITION_FLAG_IS_AUTH_FW: u32 = 65536u32; +pub const FWP_CONDITION_FLAG_IS_CONNECTION_REDIRECTED: u32 = 1048576u32; +pub const FWP_CONDITION_FLAG_IS_FRAGMENT: u32 = 32u32; +pub const FWP_CONDITION_FLAG_IS_FRAGMENT_GROUP: u32 = 64u32; +pub const FWP_CONDITION_FLAG_IS_HONORING_POLICY_AUTHORIZE: u32 = 33554432u32; +pub const FWP_CONDITION_FLAG_IS_IMPLICIT_BIND: u32 = 512u32; +pub const FWP_CONDITION_FLAG_IS_INBOUND_PASS_THRU: u32 = 524288u32; +pub const FWP_CONDITION_FLAG_IS_IPSEC_NATT_RECLASSIFY: u32 = 128u32; +pub const FWP_CONDITION_FLAG_IS_IPSEC_SECURED: u32 = 2u32; +pub const FWP_CONDITION_FLAG_IS_LOOPBACK: u32 = 1u32; +pub const FWP_CONDITION_FLAG_IS_NAME_APP_SPECIFIED: u32 = 16384u32; +pub const FWP_CONDITION_FLAG_IS_NON_APPCONTAINER_LOOPBACK: u32 = 8388608u32; +pub const FWP_CONDITION_FLAG_IS_OUTBOUND_PASS_THRU: u32 = 262144u32; +pub const FWP_CONDITION_FLAG_IS_PROMISCUOUS: u32 = 32768u32; +pub const FWP_CONDITION_FLAG_IS_PROXY_CONNECTION: u32 = 2097152u32; +pub const FWP_CONDITION_FLAG_IS_RAW_ENDPOINT: u32 = 16u32; +pub const FWP_CONDITION_FLAG_IS_REASSEMBLED: u32 = 1024u32; +pub const FWP_CONDITION_FLAG_IS_REAUTHORIZE: u32 = 4u32; +pub const FWP_CONDITION_FLAG_IS_RECLASSIFY: u32 = 131072u32; +pub const FWP_CONDITION_FLAG_IS_RESERVED: u32 = 16777216u32; +pub const FWP_CONDITION_FLAG_IS_WILDCARD_BIND: u32 = 8u32; +pub const FWP_CONDITION_FLAG_REQUIRES_ALE_CLASSIFY: u32 = 256u32; +pub const FWP_CONDITION_L2_IF_CONNECTOR_PRESENT: u32 = 128u32; +pub const FWP_CONDITION_L2_IS_IP_FRAGMENT_GROUP: u32 = 64u32; +pub const FWP_CONDITION_L2_IS_MALFORMED_PACKET: u32 = 32u32; +pub const FWP_CONDITION_L2_IS_MOBILE_BROADBAND: u32 = 4u32; +pub const FWP_CONDITION_L2_IS_NATIVE_ETHERNET: u32 = 1u32; +pub const FWP_CONDITION_L2_IS_VM2VM: u32 = 16u32; +pub const FWP_CONDITION_L2_IS_WIFI: u32 = 2u32; +pub const FWP_CONDITION_L2_IS_WIFI_DIRECT_DATA: u32 = 8u32; +pub const FWP_CONDITION_REAUTHORIZE_REASON_CHECK_OFFLOAD: u32 = 65536u32; +pub const FWP_CONDITION_REAUTHORIZE_REASON_CLASSIFY_COMPLETION: u32 = 16u32; +pub const FWP_CONDITION_REAUTHORIZE_REASON_EDP_POLICY_CHANGED: u32 = 512u32; +pub const FWP_CONDITION_REAUTHORIZE_REASON_IPSEC_PROPERTIES_CHANGED: u32 = 32u32; +pub const FWP_CONDITION_REAUTHORIZE_REASON_MID_STREAM_INSPECTION: u32 = 64u32; +pub const FWP_CONDITION_REAUTHORIZE_REASON_NEW_ARRIVAL_INTERFACE: u32 = 2u32; +pub const FWP_CONDITION_REAUTHORIZE_REASON_NEW_INBOUND_MCAST_BCAST_PACKET: u32 = 256u32; +pub const FWP_CONDITION_REAUTHORIZE_REASON_NEW_NEXTHOP_INTERFACE: u32 = 4u32; +pub const FWP_CONDITION_REAUTHORIZE_REASON_POLICY_CHANGE: u32 = 1u32; +pub const FWP_CONDITION_REAUTHORIZE_REASON_PROFILE_CROSSING: u32 = 8u32; +pub const FWP_CONDITION_REAUTHORIZE_REASON_PROXY_HANDLE_CHANGED: u32 = 16384u32; +pub const FWP_CONDITION_REAUTHORIZE_REASON_SOCKET_PROPERTY_CHANGED: u32 = 128u32; +pub const FWP_CONDITION_SOCKET_PROPERTY_FLAG_ALLOW_EDGE_TRAFFIC: u32 = 2u32; +pub const FWP_CONDITION_SOCKET_PROPERTY_FLAG_DENY_EDGE_TRAFFIC: u32 = 4u32; +pub const FWP_CONDITION_SOCKET_PROPERTY_FLAG_IS_SYSTEM_PORT_RPC: u32 = 1u32; +pub const FWP_DATA_TYPE_MAX: FWP_DATA_TYPE = 259i32; +pub const FWP_DIRECTION_INBOUND: FWP_DIRECTION = 1i32; +pub const FWP_DIRECTION_MAX: FWP_DIRECTION = 2i32; +pub const FWP_DIRECTION_OUTBOUND: FWP_DIRECTION = 0i32; +pub const FWP_DOUBLE: FWP_DATA_TYPE = 10i32; +pub const FWP_EMPTY: FWP_DATA_TYPE = 0i32; +pub const FWP_ETHER_ENCAP_METHOD_ETHER_V2: FWP_ETHER_ENCAP_METHOD = 0i32; +pub const FWP_ETHER_ENCAP_METHOD_SNAP: FWP_ETHER_ENCAP_METHOD = 1i32; +pub const FWP_ETHER_ENCAP_METHOD_SNAP_W_OUI_ZERO: FWP_ETHER_ENCAP_METHOD = 3i32; +pub const FWP_FILTER_ENUM_FLAG_BEST_TERMINATING_MATCH: u32 = 1u32; +pub const FWP_FILTER_ENUM_FLAG_BOOTTIME_ONLY: u32 = 4u32; +pub const FWP_FILTER_ENUM_FLAG_INCLUDE_BOOTTIME: u32 = 8u32; +pub const FWP_FILTER_ENUM_FLAG_INCLUDE_DISABLED: u32 = 16u32; +pub const FWP_FILTER_ENUM_FLAG_RESERVED1: u32 = 32u32; +pub const FWP_FILTER_ENUM_FLAG_SORTED: u32 = 2u32; +pub const FWP_FILTER_ENUM_FULLY_CONTAINED: FWP_FILTER_ENUM_TYPE = 0i32; +pub const FWP_FILTER_ENUM_OVERLAPPING: FWP_FILTER_ENUM_TYPE = 1i32; +pub const FWP_FILTER_ENUM_TYPE_MAX: FWP_FILTER_ENUM_TYPE = 2i32; +pub const FWP_FLOAT: FWP_DATA_TYPE = 9i32; +pub const FWP_INT16: FWP_DATA_TYPE = 6i32; +pub const FWP_INT32: FWP_DATA_TYPE = 7i32; +pub const FWP_INT64: FWP_DATA_TYPE = 8i32; +pub const FWP_INT8: FWP_DATA_TYPE = 5i32; +pub const FWP_IP_VERSION_MAX: FWP_IP_VERSION = 3i32; +pub const FWP_IP_VERSION_NONE: FWP_IP_VERSION = 2i32; +pub const FWP_IP_VERSION_V4: FWP_IP_VERSION = 0i32; +pub const FWP_IP_VERSION_V6: FWP_IP_VERSION = 1i32; +pub const FWP_MATCH_EQUAL: FWP_MATCH_TYPE = 0i32; +pub const FWP_MATCH_EQUAL_CASE_INSENSITIVE: FWP_MATCH_TYPE = 9i32; +pub const FWP_MATCH_FLAGS_ALL_SET: FWP_MATCH_TYPE = 6i32; +pub const FWP_MATCH_FLAGS_ANY_SET: FWP_MATCH_TYPE = 7i32; +pub const FWP_MATCH_FLAGS_NONE_SET: FWP_MATCH_TYPE = 8i32; +pub const FWP_MATCH_GREATER: FWP_MATCH_TYPE = 1i32; +pub const FWP_MATCH_GREATER_OR_EQUAL: FWP_MATCH_TYPE = 3i32; +pub const FWP_MATCH_LESS: FWP_MATCH_TYPE = 2i32; +pub const FWP_MATCH_LESS_OR_EQUAL: FWP_MATCH_TYPE = 4i32; +pub const FWP_MATCH_NOT_EQUAL: FWP_MATCH_TYPE = 10i32; +pub const FWP_MATCH_NOT_PREFIX: FWP_MATCH_TYPE = 12i32; +pub const FWP_MATCH_PREFIX: FWP_MATCH_TYPE = 11i32; +pub const FWP_MATCH_RANGE: FWP_MATCH_TYPE = 5i32; +pub const FWP_MATCH_TYPE_MAX: FWP_MATCH_TYPE = 13i32; +pub const FWP_NETWORK_CONNECTION_POLICY_MAX: FWP_NETWORK_CONNECTION_POLICY_SETTING_TYPE = 3i32; +pub const FWP_NETWORK_CONNECTION_POLICY_NEXT_HOP: FWP_NETWORK_CONNECTION_POLICY_SETTING_TYPE = 2i32; +pub const FWP_NETWORK_CONNECTION_POLICY_NEXT_HOP_INTERFACE: FWP_NETWORK_CONNECTION_POLICY_SETTING_TYPE = 1i32; +pub const FWP_NETWORK_CONNECTION_POLICY_SOURCE_ADDRESS: FWP_NETWORK_CONNECTION_POLICY_SETTING_TYPE = 0i32; +pub const FWP_OPTION_VALUE_ALLOW_GLOBAL_MULTICAST_STATE: u32 = 2u32; +pub const FWP_OPTION_VALUE_ALLOW_MULTICAST_STATE: u32 = 0u32; +pub const FWP_OPTION_VALUE_DENY_MULTICAST_STATE: u32 = 1u32; +pub const FWP_OPTION_VALUE_DISABLE_LOCAL_ONLY_MAPPING: u32 = 0u32; +pub const FWP_OPTION_VALUE_DISABLE_LOOSE_SOURCE: u32 = 0u32; +pub const FWP_OPTION_VALUE_ENABLE_LOCAL_ONLY_MAPPING: u32 = 1u32; +pub const FWP_OPTION_VALUE_ENABLE_LOOSE_SOURCE: u32 = 1u32; +pub const FWP_RANGE_TYPE: FWP_DATA_TYPE = 258i32; +pub const FWP_SECURITY_DESCRIPTOR_TYPE: FWP_DATA_TYPE = 14i32; +pub const FWP_SID: FWP_DATA_TYPE = 13i32; +pub const FWP_SINGLE_DATA_TYPE_MAX: FWP_DATA_TYPE = 255i32; +pub const FWP_TOKEN_ACCESS_INFORMATION_TYPE: FWP_DATA_TYPE = 16i32; +pub const FWP_TOKEN_INFORMATION_TYPE: FWP_DATA_TYPE = 15i32; +pub const FWP_UINT16: FWP_DATA_TYPE = 2i32; +pub const FWP_UINT32: FWP_DATA_TYPE = 3i32; +pub const FWP_UINT64: FWP_DATA_TYPE = 4i32; +pub const FWP_UINT8: FWP_DATA_TYPE = 1i32; +pub const FWP_UNICODE_STRING_TYPE: FWP_DATA_TYPE = 17i32; +pub const FWP_V4_ADDR_MASK: FWP_DATA_TYPE = 256i32; +pub const FWP_V6_ADDR_MASK: FWP_DATA_TYPE = 257i32; +pub const FWP_V6_ADDR_SIZE: u32 = 16u32; +pub const FWP_VSWITCH_NETWORK_TYPE_EXTERNAL: FWP_VSWITCH_NETWORK_TYPE = 3i32; +pub const FWP_VSWITCH_NETWORK_TYPE_INTERNAL: FWP_VSWITCH_NETWORK_TYPE = 2i32; +pub const FWP_VSWITCH_NETWORK_TYPE_PRIVATE: FWP_VSWITCH_NETWORK_TYPE = 1i32; +pub const FWP_VSWITCH_NETWORK_TYPE_UNKNOWN: FWP_VSWITCH_NETWORK_TYPE = 0i32; +pub const IKEEXT_ANONYMOUS: IKEEXT_AUTHENTICATION_METHOD_TYPE = 3i32; +pub const IKEEXT_AUTHENTICATION_METHOD_TYPE_MAX: IKEEXT_AUTHENTICATION_METHOD_TYPE = 13i32; +pub const IKEEXT_CERTIFICATE: IKEEXT_AUTHENTICATION_METHOD_TYPE = 1i32; +pub const IKEEXT_CERTIFICATE_ECDSA_P256: IKEEXT_AUTHENTICATION_METHOD_TYPE = 7i32; +pub const IKEEXT_CERTIFICATE_ECDSA_P384: IKEEXT_AUTHENTICATION_METHOD_TYPE = 8i32; +pub const IKEEXT_CERT_AUTH_ALLOW_HTTP_CERT_LOOKUP: IKEEXT_CERT_AUTH = 16u32; +pub const IKEEXT_CERT_AUTH_DISABLE_SSL_CERT_VALIDATION: IKEEXT_CERT_AUTH = 8u32; +pub const IKEEXT_CERT_AUTH_ENABLE_CRL_CHECK_STRONG: IKEEXT_CERT_AUTH = 4u32; +pub const IKEEXT_CERT_AUTH_FLAG_DISABLE_CRL_CHECK: u32 = 2u32; +pub const IKEEXT_CERT_AUTH_FLAG_DISABLE_REQUEST_PAYLOAD: u32 = 64u32; +pub const IKEEXT_CERT_AUTH_FLAG_SSL_ONE_WAY: IKEEXT_CERT_AUTH = 1u32; +pub const IKEEXT_CERT_AUTH_URL_CONTAINS_BUNDLE: IKEEXT_CERT_AUTH = 32u32; +pub const IKEEXT_CERT_CONFIG_ENTERPRISE_STORE: IKEEXT_CERT_CONFIG_TYPE = 1i32; +pub const IKEEXT_CERT_CONFIG_EXPLICIT_TRUST_LIST: IKEEXT_CERT_CONFIG_TYPE = 0i32; +pub const IKEEXT_CERT_CONFIG_TRUSTED_ROOT_STORE: IKEEXT_CERT_CONFIG_TYPE = 2i32; +pub const IKEEXT_CERT_CONFIG_TYPE_MAX: IKEEXT_CERT_CONFIG_TYPE = 4i32; +pub const IKEEXT_CERT_CONFIG_UNSPECIFIED: IKEEXT_CERT_CONFIG_TYPE = 3i32; +pub const IKEEXT_CERT_CREDENTIAL_FLAG_NAP_CERT: u32 = 1u32; +pub const IKEEXT_CERT_CRITERIA_CN: IKEEXT_CERT_CRITERIA_NAME_TYPE = 3i32; +pub const IKEEXT_CERT_CRITERIA_DC: IKEEXT_CERT_CRITERIA_NAME_TYPE = 6i32; +pub const IKEEXT_CERT_CRITERIA_DNS: IKEEXT_CERT_CRITERIA_NAME_TYPE = 0i32; +pub const IKEEXT_CERT_CRITERIA_NAME_TYPE_MAX: IKEEXT_CERT_CRITERIA_NAME_TYPE = 7i32; +pub const IKEEXT_CERT_CRITERIA_O: IKEEXT_CERT_CRITERIA_NAME_TYPE = 5i32; +pub const IKEEXT_CERT_CRITERIA_OU: IKEEXT_CERT_CRITERIA_NAME_TYPE = 4i32; +pub const IKEEXT_CERT_CRITERIA_RFC822: IKEEXT_CERT_CRITERIA_NAME_TYPE = 2i32; +pub const IKEEXT_CERT_CRITERIA_UPN: IKEEXT_CERT_CRITERIA_NAME_TYPE = 1i32; +pub const IKEEXT_CERT_FLAG_DISABLE_REQUEST_PAYLOAD: IKEEXT_CERT_FLAGS = 2u32; +pub const IKEEXT_CERT_FLAG_ENABLE_ACCOUNT_MAPPING: IKEEXT_CERT_FLAGS = 1u32; +pub const IKEEXT_CERT_FLAG_FOLLOW_RENEWAL_CERTIFICATE: IKEEXT_CERT_FLAGS = 256u32; +pub const IKEEXT_CERT_FLAG_IGNORE_INIT_CERT_MAP_FAILURE: IKEEXT_CERT_FLAGS = 16u32; +pub const IKEEXT_CERT_FLAG_INTERMEDIATE_CA: IKEEXT_CERT_FLAGS = 8u32; +pub const IKEEXT_CERT_FLAG_PREFER_NAP_CERTIFICATE_OUTBOUND: IKEEXT_CERT_FLAGS = 32u32; +pub const IKEEXT_CERT_FLAG_SELECT_NAP_CERTIFICATE: IKEEXT_CERT_FLAGS = 64u32; +pub const IKEEXT_CERT_FLAG_USE_NAP_CERTIFICATE: IKEEXT_CERT_FLAGS = 4u32; +pub const IKEEXT_CERT_FLAG_VERIFY_NAP_CERTIFICATE: IKEEXT_CERT_FLAGS = 128u32; +pub const IKEEXT_CERT_HASH_LEN: u32 = 20u32; +pub const IKEEXT_CIPHER_3DES: IKEEXT_CIPHER_TYPE = 1i32; +pub const IKEEXT_CIPHER_AES_128: IKEEXT_CIPHER_TYPE = 2i32; +pub const IKEEXT_CIPHER_AES_192: IKEEXT_CIPHER_TYPE = 3i32; +pub const IKEEXT_CIPHER_AES_256: IKEEXT_CIPHER_TYPE = 4i32; +pub const IKEEXT_CIPHER_AES_GCM_128_16ICV: IKEEXT_CIPHER_TYPE = 5i32; +pub const IKEEXT_CIPHER_AES_GCM_256_16ICV: IKEEXT_CIPHER_TYPE = 6i32; +pub const IKEEXT_CIPHER_DES: IKEEXT_CIPHER_TYPE = 0i32; +pub const IKEEXT_CIPHER_TYPE_MAX: IKEEXT_CIPHER_TYPE = 7i32; +pub const IKEEXT_DH_ECP_256: IKEEXT_DH_GROUP = 4i32; +pub const IKEEXT_DH_ECP_384: IKEEXT_DH_GROUP = 5i32; +pub const IKEEXT_DH_GROUP_1: IKEEXT_DH_GROUP = 1i32; +pub const IKEEXT_DH_GROUP_14: IKEEXT_DH_GROUP = 3i32; +pub const IKEEXT_DH_GROUP_2: IKEEXT_DH_GROUP = 2i32; +pub const IKEEXT_DH_GROUP_2048: IKEEXT_DH_GROUP = 3i32; +pub const IKEEXT_DH_GROUP_24: IKEEXT_DH_GROUP = 6i32; +pub const IKEEXT_DH_GROUP_MAX: IKEEXT_DH_GROUP = 7i32; +pub const IKEEXT_DH_GROUP_NONE: IKEEXT_DH_GROUP = 0i32; +pub const IKEEXT_EAP: IKEEXT_AUTHENTICATION_METHOD_TYPE = 11i32; +pub const IKEEXT_EAP_FLAG_LOCAL_AUTH_ONLY: IKEEXT_EAP_AUTHENTICATION_FLAGS = 1u32; +pub const IKEEXT_EAP_FLAG_REMOTE_AUTH_ONLY: IKEEXT_EAP_AUTHENTICATION_FLAGS = 2u32; +pub const IKEEXT_EM_SA_STATE_AUTH_COMPLETE: IKEEXT_EM_SA_STATE = 3i32; +pub const IKEEXT_EM_SA_STATE_COMPLETE: IKEEXT_EM_SA_STATE = 5i32; +pub const IKEEXT_EM_SA_STATE_FINAL: IKEEXT_EM_SA_STATE = 4i32; +pub const IKEEXT_EM_SA_STATE_MAX: IKEEXT_EM_SA_STATE = 6i32; +pub const IKEEXT_EM_SA_STATE_NONE: IKEEXT_EM_SA_STATE = 0i32; +pub const IKEEXT_EM_SA_STATE_SENT_ATTS: IKEEXT_EM_SA_STATE = 1i32; +pub const IKEEXT_EM_SA_STATE_SSPI_SENT: IKEEXT_EM_SA_STATE = 2i32; +pub const IKEEXT_IMPERSONATION_MAX: IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE = 2i32; +pub const IKEEXT_IMPERSONATION_NONE: IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE = 0i32; +pub const IKEEXT_IMPERSONATION_SOCKET_PRINCIPAL: IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE = 1i32; +pub const IKEEXT_INTEGRITY_MD5: IKEEXT_INTEGRITY_TYPE = 0i32; +pub const IKEEXT_INTEGRITY_SHA1: IKEEXT_INTEGRITY_TYPE = 1i32; +pub const IKEEXT_INTEGRITY_SHA_256: IKEEXT_INTEGRITY_TYPE = 2i32; +pub const IKEEXT_INTEGRITY_SHA_384: IKEEXT_INTEGRITY_TYPE = 3i32; +pub const IKEEXT_INTEGRITY_TYPE_MAX: IKEEXT_INTEGRITY_TYPE = 4i32; +pub const IKEEXT_IPV6_CGA: IKEEXT_AUTHENTICATION_METHOD_TYPE = 6i32; +pub const IKEEXT_KERBEROS: IKEEXT_AUTHENTICATION_METHOD_TYPE = 2i32; +pub const IKEEXT_KERB_AUTH_DISABLE_INITIATOR_TOKEN_GENERATION: IKEEXT_KERBEROS_AUTHENTICATION_FLAGS = 1u32; +pub const IKEEXT_KERB_AUTH_DONT_ACCEPT_EXPLICIT_CREDENTIALS: IKEEXT_KERBEROS_AUTHENTICATION_FLAGS = 2u32; +pub const IKEEXT_KERB_AUTH_FORCE_PROXY_ON_INITIATOR: u32 = 4u32; +pub const IKEEXT_KEY_MODULE_AUTHIP: IKEEXT_KEY_MODULE_TYPE = 1i32; +pub const IKEEXT_KEY_MODULE_IKE: IKEEXT_KEY_MODULE_TYPE = 0i32; +pub const IKEEXT_KEY_MODULE_IKEV2: IKEEXT_KEY_MODULE_TYPE = 2i32; +pub const IKEEXT_KEY_MODULE_MAX: IKEEXT_KEY_MODULE_TYPE = 3i32; +pub const IKEEXT_MM_SA_STATE_COMPLETE: IKEEXT_MM_SA_STATE = 5i32; +pub const IKEEXT_MM_SA_STATE_FINAL: IKEEXT_MM_SA_STATE = 3i32; +pub const IKEEXT_MM_SA_STATE_FINAL_SENT: IKEEXT_MM_SA_STATE = 4i32; +pub const IKEEXT_MM_SA_STATE_MAX: IKEEXT_MM_SA_STATE = 6i32; +pub const IKEEXT_MM_SA_STATE_NONE: IKEEXT_MM_SA_STATE = 0i32; +pub const IKEEXT_MM_SA_STATE_SA_SENT: IKEEXT_MM_SA_STATE = 1i32; +pub const IKEEXT_MM_SA_STATE_SSPI_SENT: IKEEXT_MM_SA_STATE = 2i32; +pub const IKEEXT_NTLM_V2: IKEEXT_AUTHENTICATION_METHOD_TYPE = 5i32; +pub const IKEEXT_NTLM_V2_AUTH_DONT_ACCEPT_EXPLICIT_CREDENTIALS: u32 = 1u32; +pub const IKEEXT_POLICY_ENABLE_IKEV2_FRAGMENTATION: u32 = 128u32; +pub const IKEEXT_POLICY_FLAG_DISABLE_DIAGNOSTICS: IKEEXT_POLICY_FLAG = 1u32; +pub const IKEEXT_POLICY_FLAG_ENABLE_OPTIONAL_DH: IKEEXT_POLICY_FLAG = 8u32; +pub const IKEEXT_POLICY_FLAG_IMS_VPN: u32 = 64u32; +pub const IKEEXT_POLICY_FLAG_MOBIKE_NOT_SUPPORTED: u32 = 16u32; +pub const IKEEXT_POLICY_FLAG_NO_IMPERSONATION_LUID_VERIFY: IKEEXT_POLICY_FLAG = 4u32; +pub const IKEEXT_POLICY_FLAG_NO_MACHINE_LUID_VERIFY: IKEEXT_POLICY_FLAG = 2u32; +pub const IKEEXT_POLICY_FLAG_SITE_TO_SITE: u32 = 32u32; +pub const IKEEXT_POLICY_SUPPORT_LOW_POWER_MODE: u32 = 256u32; +pub const IKEEXT_PRESHARED_KEY: IKEEXT_AUTHENTICATION_METHOD_TYPE = 0i32; +pub const IKEEXT_PSK_FLAG_LOCAL_AUTH_ONLY: IKEEXT_PRESHARED_KEY_AUTHENTICATION_FLAGS = 1u32; +pub const IKEEXT_PSK_FLAG_REMOTE_AUTH_ONLY: IKEEXT_PRESHARED_KEY_AUTHENTICATION_FLAGS = 2u32; +pub const IKEEXT_QM_SA_STATE_COMPLETE: IKEEXT_QM_SA_STATE = 3i32; +pub const IKEEXT_QM_SA_STATE_FINAL: IKEEXT_QM_SA_STATE = 2i32; +pub const IKEEXT_QM_SA_STATE_INITIAL: IKEEXT_QM_SA_STATE = 1i32; +pub const IKEEXT_QM_SA_STATE_MAX: IKEEXT_QM_SA_STATE = 4i32; +pub const IKEEXT_QM_SA_STATE_NONE: IKEEXT_QM_SA_STATE = 0i32; +pub const IKEEXT_RESERVED: IKEEXT_AUTHENTICATION_METHOD_TYPE = 12i32; +pub const IKEEXT_RESERVED_AUTH_DISABLE_INITIATOR_TOKEN_GENERATION: IKEEXT_RESERVED_AUTHENTICATION_FLAGS = 1u32; +pub const IKEEXT_SA_ROLE_INITIATOR: IKEEXT_SA_ROLE = 0i32; +pub const IKEEXT_SA_ROLE_MAX: IKEEXT_SA_ROLE = 2i32; +pub const IKEEXT_SA_ROLE_RESPONDER: IKEEXT_SA_ROLE = 1i32; +pub const IKEEXT_SSL: IKEEXT_AUTHENTICATION_METHOD_TYPE = 4i32; +pub const IKEEXT_SSL_ECDSA_P256: IKEEXT_AUTHENTICATION_METHOD_TYPE = 9i32; +pub const IKEEXT_SSL_ECDSA_P384: IKEEXT_AUTHENTICATION_METHOD_TYPE = 10i32; +pub const IPSEC_AUTH_AES_128: IPSEC_AUTH_TYPE = 3i32; +pub const IPSEC_AUTH_AES_192: IPSEC_AUTH_TYPE = 4i32; +pub const IPSEC_AUTH_AES_256: IPSEC_AUTH_TYPE = 5i32; +pub const IPSEC_AUTH_CONFIG_GCM_AES_128: u32 = 3u32; +pub const IPSEC_AUTH_CONFIG_GCM_AES_192: u32 = 4u32; +pub const IPSEC_AUTH_CONFIG_GCM_AES_256: u32 = 5u32; +pub const IPSEC_AUTH_CONFIG_HMAC_MD5_96: u32 = 0u32; +pub const IPSEC_AUTH_CONFIG_HMAC_SHA_1_96: u32 = 1u32; +pub const IPSEC_AUTH_CONFIG_HMAC_SHA_256_128: u32 = 2u32; +pub const IPSEC_AUTH_CONFIG_MAX: u32 = 6u32; +pub const IPSEC_AUTH_MAX: IPSEC_AUTH_TYPE = 6i32; +pub const IPSEC_AUTH_MD5: IPSEC_AUTH_TYPE = 0i32; +pub const IPSEC_AUTH_SHA_1: IPSEC_AUTH_TYPE = 1i32; +pub const IPSEC_AUTH_SHA_256: IPSEC_AUTH_TYPE = 2i32; +pub const IPSEC_CIPHER_CONFIG_CBC_3DES: u32 = 2u32; +pub const IPSEC_CIPHER_CONFIG_CBC_AES_128: u32 = 3u32; +pub const IPSEC_CIPHER_CONFIG_CBC_AES_192: u32 = 4u32; +pub const IPSEC_CIPHER_CONFIG_CBC_AES_256: u32 = 5u32; +pub const IPSEC_CIPHER_CONFIG_CBC_DES: u32 = 1u32; +pub const IPSEC_CIPHER_CONFIG_GCM_AES_128: u32 = 6u32; +pub const IPSEC_CIPHER_CONFIG_GCM_AES_192: u32 = 7u32; +pub const IPSEC_CIPHER_CONFIG_GCM_AES_256: u32 = 8u32; +pub const IPSEC_CIPHER_CONFIG_MAX: u32 = 9u32; +pub const IPSEC_CIPHER_TYPE_3DES: IPSEC_CIPHER_TYPE = 2i32; +pub const IPSEC_CIPHER_TYPE_AES_128: IPSEC_CIPHER_TYPE = 3i32; +pub const IPSEC_CIPHER_TYPE_AES_192: IPSEC_CIPHER_TYPE = 4i32; +pub const IPSEC_CIPHER_TYPE_AES_256: IPSEC_CIPHER_TYPE = 5i32; +pub const IPSEC_CIPHER_TYPE_DES: IPSEC_CIPHER_TYPE = 1i32; +pub const IPSEC_CIPHER_TYPE_MAX: IPSEC_CIPHER_TYPE = 6i32; +pub const IPSEC_DOSP_DSCP_DISABLE_VALUE: u32 = 255u32; +pub const IPSEC_DOSP_FLAG_DISABLE_AUTHIP: IPSEC_DOSP_FLAGS = 4u32; +pub const IPSEC_DOSP_FLAG_DISABLE_DEFAULT_BLOCK: IPSEC_DOSP_FLAGS = 8u32; +pub const IPSEC_DOSP_FLAG_ENABLE_IKEV1: IPSEC_DOSP_FLAGS = 1u32; +pub const IPSEC_DOSP_FLAG_ENABLE_IKEV2: IPSEC_DOSP_FLAGS = 2u32; +pub const IPSEC_DOSP_FLAG_FILTER_BLOCK: IPSEC_DOSP_FLAGS = 16u32; +pub const IPSEC_DOSP_FLAG_FILTER_EXEMPT: IPSEC_DOSP_FLAGS = 32u32; +pub const IPSEC_DOSP_RATE_LIMIT_DISABLE_VALUE: u32 = 0u32; +pub const IPSEC_FAILURE_ME: IPSEC_FAILURE_POINT = 1i32; +pub const IPSEC_FAILURE_NONE: IPSEC_FAILURE_POINT = 0i32; +pub const IPSEC_FAILURE_PEER: IPSEC_FAILURE_POINT = 2i32; +pub const IPSEC_FAILURE_POINT_MAX: IPSEC_FAILURE_POINT = 3i32; +pub const IPSEC_KEYING_POLICY_FLAG_TERMINATING_MATCH: u32 = 1u32; +pub const IPSEC_KEY_MANAGER_FLAG_DICTATE_KEY: u32 = 1u32; +pub const IPSEC_PFS_1: IPSEC_PFS_GROUP = 1i32; +pub const IPSEC_PFS_14: IPSEC_PFS_GROUP = 3i32; +pub const IPSEC_PFS_2: IPSEC_PFS_GROUP = 2i32; +pub const IPSEC_PFS_2048: IPSEC_PFS_GROUP = 3i32; +pub const IPSEC_PFS_24: IPSEC_PFS_GROUP = 7i32; +pub const IPSEC_PFS_ECP_256: IPSEC_PFS_GROUP = 4i32; +pub const IPSEC_PFS_ECP_384: IPSEC_PFS_GROUP = 5i32; +pub const IPSEC_PFS_MAX: IPSEC_PFS_GROUP = 8i32; +pub const IPSEC_PFS_MM: IPSEC_PFS_GROUP = 6i32; +pub const IPSEC_PFS_NONE: IPSEC_PFS_GROUP = 0i32; +pub const IPSEC_POLICY_FLAG_BANDWIDTH1: u32 = 268435456u32; +pub const IPSEC_POLICY_FLAG_BANDWIDTH2: u32 = 536870912u32; +pub const IPSEC_POLICY_FLAG_BANDWIDTH3: u32 = 1073741824u32; +pub const IPSEC_POLICY_FLAG_BANDWIDTH4: u32 = 2147483648u32; +pub const IPSEC_POLICY_FLAG_CLEAR_DF_ON_TUNNEL: IPSEC_POLICY_FLAG = 8u32; +pub const IPSEC_POLICY_FLAG_DONT_NEGOTIATE_BYTE_LIFETIME: IPSEC_POLICY_FLAG = 128u32; +pub const IPSEC_POLICY_FLAG_DONT_NEGOTIATE_SECOND_LIFETIME: IPSEC_POLICY_FLAG = 64u32; +pub const IPSEC_POLICY_FLAG_ENABLE_SERVER_ADDR_ASSIGNMENT: IPSEC_POLICY_FLAG = 512u32; +pub const IPSEC_POLICY_FLAG_ENABLE_V6_IN_V4_TUNNELING: IPSEC_POLICY_FLAG = 256u32; +pub const IPSEC_POLICY_FLAG_KEY_MANAGER_ALLOW_DICTATE_KEY: IPSEC_POLICY_FLAG = 8192u32; +pub const IPSEC_POLICY_FLAG_KEY_MANAGER_ALLOW_NOTIFY_KEY: u32 = 16384u32; +pub const IPSEC_POLICY_FLAG_NAT_ENCAP_ALLOW_GENERAL_NAT_TRAVERSAL: IPSEC_POLICY_FLAG = 32u32; +pub const IPSEC_POLICY_FLAG_NAT_ENCAP_ALLOW_PEER_BEHIND_NAT: IPSEC_POLICY_FLAG = 16u32; +pub const IPSEC_POLICY_FLAG_ND_BOUNDARY: IPSEC_POLICY_FLAG = 4u32; +pub const IPSEC_POLICY_FLAG_ND_SECURE: IPSEC_POLICY_FLAG = 2u32; +pub const IPSEC_POLICY_FLAG_RESERVED1: u32 = 32768u32; +pub const IPSEC_POLICY_FLAG_SITE_TO_SITE_TUNNEL: u32 = 65536u32; +pub const IPSEC_POLICY_FLAG_TUNNEL_ALLOW_OUTBOUND_CLEAR_CONNECTION: IPSEC_POLICY_FLAG = 1024u32; +pub const IPSEC_POLICY_FLAG_TUNNEL_BYPASS_ALREADY_SECURE_CONNECTION: IPSEC_POLICY_FLAG = 2048u32; +pub const IPSEC_POLICY_FLAG_TUNNEL_BYPASS_ICMPV6: IPSEC_POLICY_FLAG = 4096u32; +pub const IPSEC_SA_BUNDLE_FLAG_ALLOW_NULL_TARGET_NAME_MATCH: IPSEC_SA_BUNDLE_FLAGS = 512u32; +pub const IPSEC_SA_BUNDLE_FLAG_ASSUME_UDP_CONTEXT_OUTBOUND: IPSEC_SA_BUNDLE_FLAGS = 2048u32; +pub const IPSEC_SA_BUNDLE_FLAG_CLEAR_DF_ON_TUNNEL: IPSEC_SA_BUNDLE_FLAGS = 1024u32; +pub const IPSEC_SA_BUNDLE_FLAG_ENABLE_OPTIONAL_ASYMMETRIC_IDLE: u32 = 262144u32; +pub const IPSEC_SA_BUNDLE_FLAG_FORCE_INBOUND_CONNECTIONS: u32 = 32768u32; +pub const IPSEC_SA_BUNDLE_FLAG_FORCE_OUTBOUND_CONNECTIONS: u32 = 65536u32; +pub const IPSEC_SA_BUNDLE_FLAG_FORWARD_PATH_INITIATOR: u32 = 131072u32; +pub const IPSEC_SA_BUNDLE_FLAG_GUARANTEE_ENCRYPTION: IPSEC_SA_BUNDLE_FLAGS = 8u32; +pub const IPSEC_SA_BUNDLE_FLAG_IP_IN_IP_PKT: u32 = 4194304u32; +pub const IPSEC_SA_BUNDLE_FLAG_LOCALLY_DICTATED_KEYS: u32 = 1048576u32; +pub const IPSEC_SA_BUNDLE_FLAG_LOW_POWER_MODE_SUPPORT: u32 = 8388608u32; +pub const IPSEC_SA_BUNDLE_FLAG_ND_BOUNDARY: IPSEC_SA_BUNDLE_FLAGS = 2u32; +pub const IPSEC_SA_BUNDLE_FLAG_ND_PEER_BOUNDARY: IPSEC_SA_BUNDLE_FLAGS = 4096u32; +pub const IPSEC_SA_BUNDLE_FLAG_ND_PEER_NAT_BOUNDARY: IPSEC_SA_BUNDLE_FLAGS = 4u32; +pub const IPSEC_SA_BUNDLE_FLAG_ND_SECURE: IPSEC_SA_BUNDLE_FLAGS = 1u32; +pub const IPSEC_SA_BUNDLE_FLAG_NLB: u32 = 16u32; +pub const IPSEC_SA_BUNDLE_FLAG_NO_EXPLICIT_CRED_MATCH: u32 = 128u32; +pub const IPSEC_SA_BUNDLE_FLAG_NO_IMPERSONATION_LUID_VERIFY: u32 = 64u32; +pub const IPSEC_SA_BUNDLE_FLAG_NO_MACHINE_LUID_VERIFY: u32 = 32u32; +pub const IPSEC_SA_BUNDLE_FLAG_PEER_SUPPORTS_GUARANTEE_ENCRYPTION: IPSEC_SA_BUNDLE_FLAGS = 16384u32; +pub const IPSEC_SA_BUNDLE_FLAG_SA_OFFLOADED: u32 = 2097152u32; +pub const IPSEC_SA_BUNDLE_FLAG_SUPPRESS_DUPLICATE_DELETION: IPSEC_SA_BUNDLE_FLAGS = 8192u32; +pub const IPSEC_SA_BUNDLE_FLAG_TUNNEL_BANDWIDTH1: u32 = 268435456u32; +pub const IPSEC_SA_BUNDLE_FLAG_TUNNEL_BANDWIDTH2: u32 = 536870912u32; +pub const IPSEC_SA_BUNDLE_FLAG_TUNNEL_BANDWIDTH3: u32 = 1073741824u32; +pub const IPSEC_SA_BUNDLE_FLAG_TUNNEL_BANDWIDTH4: u32 = 2147483648u32; +pub const IPSEC_SA_BUNDLE_FLAG_USING_DICTATED_KEYS: u32 = 524288u32; +pub const IPSEC_SA_CONTEXT_EVENT_ADD: IPSEC_SA_CONTEXT_EVENT_TYPE0 = 1i32; +pub const IPSEC_SA_CONTEXT_EVENT_DELETE: IPSEC_SA_CONTEXT_EVENT_TYPE0 = 2i32; +pub const IPSEC_SA_CONTEXT_EVENT_MAX: IPSEC_SA_CONTEXT_EVENT_TYPE0 = 3i32; +pub const IPSEC_TOKEN_MODE_EXTENDED: IPSEC_TOKEN_MODE = 1i32; +pub const IPSEC_TOKEN_MODE_MAIN: IPSEC_TOKEN_MODE = 0i32; +pub const IPSEC_TOKEN_MODE_MAX: IPSEC_TOKEN_MODE = 2i32; +pub const IPSEC_TOKEN_PRINCIPAL_LOCAL: IPSEC_TOKEN_PRINCIPAL = 0i32; +pub const IPSEC_TOKEN_PRINCIPAL_MAX: IPSEC_TOKEN_PRINCIPAL = 2i32; +pub const IPSEC_TOKEN_PRINCIPAL_PEER: IPSEC_TOKEN_PRINCIPAL = 1i32; +pub const IPSEC_TOKEN_TYPE_IMPERSONATION: IPSEC_TOKEN_TYPE = 1i32; +pub const IPSEC_TOKEN_TYPE_MACHINE: IPSEC_TOKEN_TYPE = 0i32; +pub const IPSEC_TOKEN_TYPE_MAX: IPSEC_TOKEN_TYPE = 2i32; +pub const IPSEC_TRAFFIC_TYPE_MAX: IPSEC_TRAFFIC_TYPE = 2i32; +pub const IPSEC_TRAFFIC_TYPE_TRANSPORT: IPSEC_TRAFFIC_TYPE = 0i32; +pub const IPSEC_TRAFFIC_TYPE_TUNNEL: IPSEC_TRAFFIC_TYPE = 1i32; +pub const IPSEC_TRANSFORM_AH: IPSEC_TRANSFORM_TYPE = 1i32; +pub const IPSEC_TRANSFORM_ESP_AUTH: IPSEC_TRANSFORM_TYPE = 2i32; +pub const IPSEC_TRANSFORM_ESP_AUTH_AND_CIPHER: IPSEC_TRANSFORM_TYPE = 4i32; +pub const IPSEC_TRANSFORM_ESP_AUTH_FW: IPSEC_TRANSFORM_TYPE = 5i32; +pub const IPSEC_TRANSFORM_ESP_CIPHER: IPSEC_TRANSFORM_TYPE = 3i32; +pub const IPSEC_TRANSFORM_TYPE_MAX: IPSEC_TRANSFORM_TYPE = 6i32; +pub type DL_ADDRESS_TYPE = i32; +pub type FWPM_APPC_NETWORK_CAPABILITY_TYPE = i32; +pub type FWPM_CHANGE_TYPE = i32; +pub type FWPM_CONNECTION_EVENT_TYPE = i32; +pub type FWPM_ENGINE_OPTION = i32; +pub type FWPM_FIELD_TYPE = i32; +pub type FWPM_FILTER_FLAGS = u32; +pub type FWPM_NET_EVENT_TYPE = i32; +pub type FWPM_PROVIDER_CONTEXT_TYPE = i32; +pub type FWPM_SERVICE_STATE = i32; +pub type FWPM_SUBSCRIPTION_FLAGS = u32; +pub type FWPM_SYSTEM_PORT_TYPE = i32; +pub type FWPM_VSWITCH_EVENT_TYPE = i32; +pub type FWP_ACTION_TYPE = u32; +pub type FWP_AF = i32; +pub type FWP_CLASSIFY_OPTION_TYPE = i32; +pub type FWP_DATA_TYPE = i32; +pub type FWP_DIRECTION = i32; +pub type FWP_ETHER_ENCAP_METHOD = i32; +pub type FWP_FILTER_ENUM_TYPE = i32; +pub type FWP_IP_VERSION = i32; +pub type FWP_MATCH_TYPE = i32; +pub type FWP_NETWORK_CONNECTION_POLICY_SETTING_TYPE = i32; +pub type FWP_VSWITCH_NETWORK_TYPE = i32; +pub type IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE = i32; +pub type IKEEXT_AUTHENTICATION_METHOD_TYPE = i32; +pub type IKEEXT_CERT_AUTH = u32; +pub type IKEEXT_CERT_CONFIG_TYPE = i32; +pub type IKEEXT_CERT_CRITERIA_NAME_TYPE = i32; +pub type IKEEXT_CERT_FLAGS = u32; +pub type IKEEXT_CIPHER_TYPE = i32; +pub type IKEEXT_DH_GROUP = i32; +pub type IKEEXT_EAP_AUTHENTICATION_FLAGS = u32; +pub type IKEEXT_EM_SA_STATE = i32; +pub type IKEEXT_INTEGRITY_TYPE = i32; +pub type IKEEXT_KERBEROS_AUTHENTICATION_FLAGS = u32; +pub type IKEEXT_KEY_MODULE_TYPE = i32; +pub type IKEEXT_MM_SA_STATE = i32; +pub type IKEEXT_POLICY_FLAG = u32; +pub type IKEEXT_PRESHARED_KEY_AUTHENTICATION_FLAGS = u32; +pub type IKEEXT_QM_SA_STATE = i32; +pub type IKEEXT_RESERVED_AUTHENTICATION_FLAGS = u32; +pub type IKEEXT_SA_ROLE = i32; +pub type IPSEC_AUTH_TYPE = i32; +pub type IPSEC_CIPHER_TYPE = i32; +pub type IPSEC_DOSP_FLAGS = u32; +pub type IPSEC_FAILURE_POINT = i32; +pub type IPSEC_PFS_GROUP = i32; +pub type IPSEC_POLICY_FLAG = u32; +pub type IPSEC_SA_BUNDLE_FLAGS = u32; +pub type IPSEC_SA_CONTEXT_EVENT_TYPE0 = i32; +pub type IPSEC_TOKEN_MODE = i32; +pub type IPSEC_TOKEN_PRINCIPAL = i32; +pub type IPSEC_TOKEN_TYPE = i32; +pub type IPSEC_TRAFFIC_TYPE = i32; +pub type IPSEC_TRANSFORM_TYPE = i32; +#[repr(C)] +pub struct FWPM_ACTION0 { + pub r#type: FWP_ACTION_TYPE, + pub Anonymous: FWPM_ACTION0_0, +} +impl ::core::marker::Copy for FWPM_ACTION0 {} +impl ::core::clone::Clone for FWPM_ACTION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FWPM_ACTION0_0 { + pub filterType: ::windows_sys::core::GUID, + pub calloutKey: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for FWPM_ACTION0_0 {} +impl ::core::clone::Clone for FWPM_ACTION0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_CALLOUT0 { + pub calloutKey: ::windows_sys::core::GUID, + pub displayData: FWPM_DISPLAY_DATA0, + pub flags: u32, + pub providerKey: *mut ::windows_sys::core::GUID, + pub providerData: FWP_BYTE_BLOB, + pub applicableLayer: ::windows_sys::core::GUID, + pub calloutId: u32, +} +impl ::core::marker::Copy for FWPM_CALLOUT0 {} +impl ::core::clone::Clone for FWPM_CALLOUT0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_CALLOUT_CHANGE0 { + pub changeType: FWPM_CHANGE_TYPE, + pub calloutKey: ::windows_sys::core::GUID, + pub calloutId: u32, +} +impl ::core::marker::Copy for FWPM_CALLOUT_CHANGE0 {} +impl ::core::clone::Clone for FWPM_CALLOUT_CHANGE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_CALLOUT_ENUM_TEMPLATE0 { + pub providerKey: *mut ::windows_sys::core::GUID, + pub layerKey: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for FWPM_CALLOUT_ENUM_TEMPLATE0 {} +impl ::core::clone::Clone for FWPM_CALLOUT_ENUM_TEMPLATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_CALLOUT_SUBSCRIPTION0 { + pub enumTemplate: *mut FWPM_CALLOUT_ENUM_TEMPLATE0, + pub flags: u32, + pub sessionKey: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for FWPM_CALLOUT_SUBSCRIPTION0 {} +impl ::core::clone::Clone for FWPM_CALLOUT_SUBSCRIPTION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_CLASSIFY_OPTION0 { + pub r#type: FWP_CLASSIFY_OPTION_TYPE, + pub value: FWP_VALUE0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_CLASSIFY_OPTION0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_CLASSIFY_OPTION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_CLASSIFY_OPTIONS0 { + pub numOptions: u32, + pub options: *mut FWPM_CLASSIFY_OPTION0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_CLASSIFY_OPTIONS0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_CLASSIFY_OPTIONS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FWPM_CONNECTION0 { + pub connectionId: u64, + pub ipVersion: FWP_IP_VERSION, + pub Anonymous1: FWPM_CONNECTION0_0, + pub Anonymous2: FWPM_CONNECTION0_1, + pub providerKey: *mut ::windows_sys::core::GUID, + pub ipsecTrafficModeType: IPSEC_TRAFFIC_TYPE, + pub keyModuleType: IKEEXT_KEY_MODULE_TYPE, + pub mmCrypto: IKEEXT_PROPOSAL0, + pub mmPeer: IKEEXT_CREDENTIAL2, + pub emPeer: IKEEXT_CREDENTIAL2, + pub bytesTransferredIn: u64, + pub bytesTransferredOut: u64, + pub bytesTransferredTotal: u64, + pub startSysTime: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FWPM_CONNECTION0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FWPM_CONNECTION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union FWPM_CONNECTION0_0 { + pub localV4Address: u32, + pub localV6Address: [u8; 16], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FWPM_CONNECTION0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FWPM_CONNECTION0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union FWPM_CONNECTION0_1 { + pub remoteV4Address: u32, + pub remoteV6Address: [u8; 16], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FWPM_CONNECTION0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FWPM_CONNECTION0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_CONNECTION_ENUM_TEMPLATE0 { + pub connectionId: u64, + pub flags: u32, +} +impl ::core::marker::Copy for FWPM_CONNECTION_ENUM_TEMPLATE0 {} +impl ::core::clone::Clone for FWPM_CONNECTION_ENUM_TEMPLATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_CONNECTION_SUBSCRIPTION0 { + pub enumTemplate: *mut FWPM_CONNECTION_ENUM_TEMPLATE0, + pub flags: u32, + pub sessionKey: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for FWPM_CONNECTION_SUBSCRIPTION0 {} +impl ::core::clone::Clone for FWPM_CONNECTION_SUBSCRIPTION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_DISPLAY_DATA0 { + pub name: ::windows_sys::core::PWSTR, + pub description: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for FWPM_DISPLAY_DATA0 {} +impl ::core::clone::Clone for FWPM_DISPLAY_DATA0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_FIELD0 { + pub fieldKey: *mut ::windows_sys::core::GUID, + pub r#type: FWPM_FIELD_TYPE, + pub dataType: FWP_DATA_TYPE, +} +impl ::core::marker::Copy for FWPM_FIELD0 {} +impl ::core::clone::Clone for FWPM_FIELD0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_FILTER0 { + pub filterKey: ::windows_sys::core::GUID, + pub displayData: FWPM_DISPLAY_DATA0, + pub flags: FWPM_FILTER_FLAGS, + pub providerKey: *mut ::windows_sys::core::GUID, + pub providerData: FWP_BYTE_BLOB, + pub layerKey: ::windows_sys::core::GUID, + pub subLayerKey: ::windows_sys::core::GUID, + pub weight: FWP_VALUE0, + pub numFilterConditions: u32, + pub filterCondition: *mut FWPM_FILTER_CONDITION0, + pub action: FWPM_ACTION0, + pub Anonymous: FWPM_FILTER0_0, + pub reserved: *mut ::windows_sys::core::GUID, + pub filterId: u64, + pub effectiveWeight: FWP_VALUE0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_FILTER0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_FILTER0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_FILTER0_0 { + pub rawContext: u64, + pub providerContextKey: ::windows_sys::core::GUID, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_FILTER0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_FILTER0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_FILTER_CHANGE0 { + pub changeType: FWPM_CHANGE_TYPE, + pub filterKey: ::windows_sys::core::GUID, + pub filterId: u64, +} +impl ::core::marker::Copy for FWPM_FILTER_CHANGE0 {} +impl ::core::clone::Clone for FWPM_FILTER_CHANGE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_FILTER_CONDITION0 { + pub fieldKey: ::windows_sys::core::GUID, + pub matchType: FWP_MATCH_TYPE, + pub conditionValue: FWP_CONDITION_VALUE0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_FILTER_CONDITION0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_FILTER_CONDITION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_FILTER_ENUM_TEMPLATE0 { + pub providerKey: *mut ::windows_sys::core::GUID, + pub layerKey: ::windows_sys::core::GUID, + pub enumType: FWP_FILTER_ENUM_TYPE, + pub flags: u32, + pub providerContextTemplate: *mut FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0, + pub numFilterConditions: u32, + pub filterCondition: *mut FWPM_FILTER_CONDITION0, + pub actionMask: u32, + pub calloutKey: *mut ::windows_sys::core::GUID, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_FILTER_ENUM_TEMPLATE0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_FILTER_ENUM_TEMPLATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_FILTER_SUBSCRIPTION0 { + pub enumTemplate: *mut FWPM_FILTER_ENUM_TEMPLATE0, + pub flags: u32, + pub sessionKey: ::windows_sys::core::GUID, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_FILTER_SUBSCRIPTION0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_FILTER_SUBSCRIPTION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_LAYER0 { + pub layerKey: ::windows_sys::core::GUID, + pub displayData: FWPM_DISPLAY_DATA0, + pub flags: u32, + pub numFields: u32, + pub field: *mut FWPM_FIELD0, + pub defaultSubLayerKey: ::windows_sys::core::GUID, + pub layerId: u16, +} +impl ::core::marker::Copy for FWPM_LAYER0 {} +impl ::core::clone::Clone for FWPM_LAYER0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_LAYER_ENUM_TEMPLATE0 { + pub reserved: u64, +} +impl ::core::marker::Copy for FWPM_LAYER_ENUM_TEMPLATE0 {} +impl ::core::clone::Clone for FWPM_LAYER_ENUM_TEMPLATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_LAYER_STATISTICS0 { + pub layerId: ::windows_sys::core::GUID, + pub classifyPermitCount: u32, + pub classifyBlockCount: u32, + pub classifyVetoCount: u32, + pub numCacheEntries: u32, +} +impl ::core::marker::Copy for FWPM_LAYER_STATISTICS0 {} +impl ::core::clone::Clone for FWPM_LAYER_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NETWORK_CONNECTION_POLICY_SETTING0 { + pub r#type: FWP_NETWORK_CONNECTION_POLICY_SETTING_TYPE, + pub value: FWP_VALUE0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NETWORK_CONNECTION_POLICY_SETTING0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NETWORK_CONNECTION_POLICY_SETTING0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NETWORK_CONNECTION_POLICY_SETTINGS0 { + pub numSettings: u32, + pub settings: *mut FWPM_NETWORK_CONNECTION_POLICY_SETTING0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NETWORK_CONNECTION_POLICY_SETTINGS0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NETWORK_CONNECTION_POLICY_SETTINGS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT0 { + pub header: FWPM_NET_EVENT_HEADER0, + pub r#type: FWPM_NET_EVENT_TYPE, + pub Anonymous: FWPM_NET_EVENT0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT0_0 { + pub ikeMmFailure: *mut FWPM_NET_EVENT_IKEEXT_MM_FAILURE0, + pub ikeQmFailure: *mut FWPM_NET_EVENT_IKEEXT_QM_FAILURE0, + pub ikeEmFailure: *mut FWPM_NET_EVENT_IKEEXT_EM_FAILURE0, + pub classifyDrop: *mut FWPM_NET_EVENT_CLASSIFY_DROP0, + pub ipsecDrop: *mut FWPM_NET_EVENT_IPSEC_KERNEL_DROP0, + pub idpDrop: *mut FWPM_NET_EVENT_IPSEC_DOSP_DROP0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT1 { + pub header: FWPM_NET_EVENT_HEADER1, + pub r#type: FWPM_NET_EVENT_TYPE, + pub Anonymous: FWPM_NET_EVENT1_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT1_0 { + pub ikeMmFailure: *mut FWPM_NET_EVENT_IKEEXT_MM_FAILURE1, + pub ikeQmFailure: *mut FWPM_NET_EVENT_IKEEXT_QM_FAILURE0, + pub ikeEmFailure: *mut FWPM_NET_EVENT_IKEEXT_EM_FAILURE1, + pub classifyDrop: *mut FWPM_NET_EVENT_CLASSIFY_DROP1, + pub ipsecDrop: *mut FWPM_NET_EVENT_IPSEC_KERNEL_DROP0, + pub idpDrop: *mut FWPM_NET_EVENT_IPSEC_DOSP_DROP0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT2 { + pub header: FWPM_NET_EVENT_HEADER2, + pub r#type: FWPM_NET_EVENT_TYPE, + pub Anonymous: FWPM_NET_EVENT2_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT2_0 { + pub ikeMmFailure: *mut FWPM_NET_EVENT_IKEEXT_MM_FAILURE1, + pub ikeQmFailure: *mut FWPM_NET_EVENT_IKEEXT_QM_FAILURE0, + pub ikeEmFailure: *mut FWPM_NET_EVENT_IKEEXT_EM_FAILURE1, + pub classifyDrop: *mut FWPM_NET_EVENT_CLASSIFY_DROP2, + pub ipsecDrop: *mut FWPM_NET_EVENT_IPSEC_KERNEL_DROP0, + pub idpDrop: *mut FWPM_NET_EVENT_IPSEC_DOSP_DROP0, + pub classifyAllow: *mut FWPM_NET_EVENT_CLASSIFY_ALLOW0, + pub capabilityDrop: *mut FWPM_NET_EVENT_CAPABILITY_DROP0, + pub capabilityAllow: *mut FWPM_NET_EVENT_CAPABILITY_ALLOW0, + pub classifyDropMac: *mut FWPM_NET_EVENT_CLASSIFY_DROP_MAC0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT2_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT3 { + pub header: FWPM_NET_EVENT_HEADER3, + pub r#type: FWPM_NET_EVENT_TYPE, + pub Anonymous: FWPM_NET_EVENT3_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT3_0 { + pub ikeMmFailure: *mut FWPM_NET_EVENT_IKEEXT_MM_FAILURE1, + pub ikeQmFailure: *mut FWPM_NET_EVENT_IKEEXT_QM_FAILURE0, + pub ikeEmFailure: *mut FWPM_NET_EVENT_IKEEXT_EM_FAILURE1, + pub classifyDrop: *mut FWPM_NET_EVENT_CLASSIFY_DROP2, + pub ipsecDrop: *mut FWPM_NET_EVENT_IPSEC_KERNEL_DROP0, + pub idpDrop: *mut FWPM_NET_EVENT_IPSEC_DOSP_DROP0, + pub classifyAllow: *mut FWPM_NET_EVENT_CLASSIFY_ALLOW0, + pub capabilityDrop: *mut FWPM_NET_EVENT_CAPABILITY_DROP0, + pub capabilityAllow: *mut FWPM_NET_EVENT_CAPABILITY_ALLOW0, + pub classifyDropMac: *mut FWPM_NET_EVENT_CLASSIFY_DROP_MAC0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT3_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT4 { + pub header: FWPM_NET_EVENT_HEADER3, + pub r#type: FWPM_NET_EVENT_TYPE, + pub Anonymous: FWPM_NET_EVENT4_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT4 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT4_0 { + pub ikeMmFailure: *mut FWPM_NET_EVENT_IKEEXT_MM_FAILURE2, + pub ikeQmFailure: *mut FWPM_NET_EVENT_IKEEXT_QM_FAILURE1, + pub ikeEmFailure: *mut FWPM_NET_EVENT_IKEEXT_EM_FAILURE1, + pub classifyDrop: *mut FWPM_NET_EVENT_CLASSIFY_DROP2, + pub ipsecDrop: *mut FWPM_NET_EVENT_IPSEC_KERNEL_DROP0, + pub idpDrop: *mut FWPM_NET_EVENT_IPSEC_DOSP_DROP0, + pub classifyAllow: *mut FWPM_NET_EVENT_CLASSIFY_ALLOW0, + pub capabilityDrop: *mut FWPM_NET_EVENT_CAPABILITY_DROP0, + pub capabilityAllow: *mut FWPM_NET_EVENT_CAPABILITY_ALLOW0, + pub classifyDropMac: *mut FWPM_NET_EVENT_CLASSIFY_DROP_MAC0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT4_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT4_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT5 { + pub header: FWPM_NET_EVENT_HEADER3, + pub r#type: FWPM_NET_EVENT_TYPE, + pub Anonymous: FWPM_NET_EVENT5_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT5 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT5_0 { + pub ikeMmFailure: *mut FWPM_NET_EVENT_IKEEXT_MM_FAILURE2, + pub ikeQmFailure: *mut FWPM_NET_EVENT_IKEEXT_QM_FAILURE1, + pub ikeEmFailure: *mut FWPM_NET_EVENT_IKEEXT_EM_FAILURE1, + pub classifyDrop: *mut FWPM_NET_EVENT_CLASSIFY_DROP2, + pub ipsecDrop: *mut FWPM_NET_EVENT_IPSEC_KERNEL_DROP0, + pub idpDrop: *mut FWPM_NET_EVENT_IPSEC_DOSP_DROP0, + pub classifyAllow: *mut FWPM_NET_EVENT_CLASSIFY_ALLOW0, + pub capabilityDrop: *mut FWPM_NET_EVENT_CAPABILITY_DROP0, + pub capabilityAllow: *mut FWPM_NET_EVENT_CAPABILITY_ALLOW0, + pub classifyDropMac: *mut FWPM_NET_EVENT_CLASSIFY_DROP_MAC0, + pub lpmPacketArrival: *mut FWPM_NET_EVENT_LPM_PACKET_ARRIVAL0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT5_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT5_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FWPM_NET_EVENT_CAPABILITY_ALLOW0 { + pub networkCapabilityId: FWPM_APPC_NETWORK_CAPABILITY_TYPE, + pub filterId: u64, + pub isLoopback: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FWPM_NET_EVENT_CAPABILITY_ALLOW0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FWPM_NET_EVENT_CAPABILITY_ALLOW0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FWPM_NET_EVENT_CAPABILITY_DROP0 { + pub networkCapabilityId: FWPM_APPC_NETWORK_CAPABILITY_TYPE, + pub filterId: u64, + pub isLoopback: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FWPM_NET_EVENT_CAPABILITY_DROP0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FWPM_NET_EVENT_CAPABILITY_DROP0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FWPM_NET_EVENT_CLASSIFY_ALLOW0 { + pub filterId: u64, + pub layerId: u16, + pub reauthReason: u32, + pub originalProfile: u32, + pub currentProfile: u32, + pub msFwpDirection: u32, + pub isLoopback: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FWPM_NET_EVENT_CLASSIFY_ALLOW0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FWPM_NET_EVENT_CLASSIFY_ALLOW0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_NET_EVENT_CLASSIFY_DROP0 { + pub filterId: u64, + pub layerId: u16, +} +impl ::core::marker::Copy for FWPM_NET_EVENT_CLASSIFY_DROP0 {} +impl ::core::clone::Clone for FWPM_NET_EVENT_CLASSIFY_DROP0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FWPM_NET_EVENT_CLASSIFY_DROP1 { + pub filterId: u64, + pub layerId: u16, + pub reauthReason: u32, + pub originalProfile: u32, + pub currentProfile: u32, + pub msFwpDirection: u32, + pub isLoopback: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FWPM_NET_EVENT_CLASSIFY_DROP1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FWPM_NET_EVENT_CLASSIFY_DROP1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FWPM_NET_EVENT_CLASSIFY_DROP2 { + pub filterId: u64, + pub layerId: u16, + pub reauthReason: u32, + pub originalProfile: u32, + pub currentProfile: u32, + pub msFwpDirection: u32, + pub isLoopback: super::super::Foundation::BOOL, + pub vSwitchId: FWP_BYTE_BLOB, + pub vSwitchSourcePort: u32, + pub vSwitchDestinationPort: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FWPM_NET_EVENT_CLASSIFY_DROP2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FWPM_NET_EVENT_CLASSIFY_DROP2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FWPM_NET_EVENT_CLASSIFY_DROP_MAC0 { + pub localMacAddr: FWP_BYTE_ARRAY6, + pub remoteMacAddr: FWP_BYTE_ARRAY6, + pub mediaType: u32, + pub ifType: u32, + pub etherType: u16, + pub ndisPortNumber: u32, + pub reserved: u32, + pub vlanTag: u16, + pub ifLuid: u64, + pub filterId: u64, + pub layerId: u16, + pub reauthReason: u32, + pub originalProfile: u32, + pub currentProfile: u32, + pub msFwpDirection: u32, + pub isLoopback: super::super::Foundation::BOOL, + pub vSwitchId: FWP_BYTE_BLOB, + pub vSwitchSourcePort: u32, + pub vSwitchDestinationPort: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FWPM_NET_EVENT_CLASSIFY_DROP_MAC0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FWPM_NET_EVENT_CLASSIFY_DROP_MAC0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT_ENUM_TEMPLATE0 { + pub startTime: super::super::Foundation::FILETIME, + pub endTime: super::super::Foundation::FILETIME, + pub numFilterConditions: u32, + pub filterCondition: *mut FWPM_FILTER_CONDITION0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_ENUM_TEMPLATE0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_ENUM_TEMPLATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT_HEADER0 { + pub timeStamp: super::super::Foundation::FILETIME, + pub flags: u32, + pub ipVersion: FWP_IP_VERSION, + pub ipProtocol: u8, + pub Anonymous1: FWPM_NET_EVENT_HEADER0_0, + pub Anonymous2: FWPM_NET_EVENT_HEADER0_1, + pub localPort: u16, + pub remotePort: u16, + pub scopeId: u32, + pub appId: FWP_BYTE_BLOB, + pub userId: *mut super::super::Security::SID, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_HEADER0_0 { + pub localAddrV4: u32, + pub localAddrV6: FWP_BYTE_ARRAY16, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_HEADER0_1 { + pub remoteAddrV4: u32, + pub remoteAddrV6: FWP_BYTE_ARRAY16, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER0_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT_HEADER1 { + pub timeStamp: super::super::Foundation::FILETIME, + pub flags: u32, + pub ipVersion: FWP_IP_VERSION, + pub ipProtocol: u8, + pub Anonymous1: FWPM_NET_EVENT_HEADER1_0, + pub Anonymous2: FWPM_NET_EVENT_HEADER1_1, + pub localPort: u16, + pub remotePort: u16, + pub scopeId: u32, + pub appId: FWP_BYTE_BLOB, + pub userId: *mut super::super::Security::SID, + pub Anonymous3: FWPM_NET_EVENT_HEADER1_2, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_HEADER1_0 { + pub localAddrV4: u32, + pub localAddrV6: FWP_BYTE_ARRAY16, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_HEADER1_1 { + pub remoteAddrV4: u32, + pub remoteAddrV6: FWP_BYTE_ARRAY16, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER1_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_HEADER1_2 { + pub Anonymous: FWPM_NET_EVENT_HEADER1_2_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER1_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER1_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT_HEADER1_2_0 { + pub reserved1: FWP_AF, + pub Anonymous: FWPM_NET_EVENT_HEADER1_2_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER1_2_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER1_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_HEADER1_2_0_0 { + pub Anonymous: FWPM_NET_EVENT_HEADER1_2_0_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER1_2_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER1_2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT_HEADER1_2_0_0_0 { + pub reserved2: FWP_BYTE_ARRAY6, + pub reserved3: FWP_BYTE_ARRAY6, + pub reserved4: u32, + pub reserved5: u32, + pub reserved6: u16, + pub reserved7: u32, + pub reserved8: u32, + pub reserved9: u16, + pub reserved10: u64, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER1_2_0_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER1_2_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT_HEADER2 { + pub timeStamp: super::super::Foundation::FILETIME, + pub flags: u32, + pub ipVersion: FWP_IP_VERSION, + pub ipProtocol: u8, + pub Anonymous1: FWPM_NET_EVENT_HEADER2_0, + pub Anonymous2: FWPM_NET_EVENT_HEADER2_1, + pub localPort: u16, + pub remotePort: u16, + pub scopeId: u32, + pub appId: FWP_BYTE_BLOB, + pub userId: *mut super::super::Security::SID, + pub addressFamily: FWP_AF, + pub packageSid: *mut super::super::Security::SID, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_HEADER2_0 { + pub localAddrV4: u32, + pub localAddrV6: FWP_BYTE_ARRAY16, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER2_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_HEADER2_1 { + pub remoteAddrV4: u32, + pub remoteAddrV6: FWP_BYTE_ARRAY16, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER2_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT_HEADER3 { + pub timeStamp: super::super::Foundation::FILETIME, + pub flags: u32, + pub ipVersion: FWP_IP_VERSION, + pub ipProtocol: u8, + pub Anonymous1: FWPM_NET_EVENT_HEADER3_0, + pub Anonymous2: FWPM_NET_EVENT_HEADER3_1, + pub localPort: u16, + pub remotePort: u16, + pub scopeId: u32, + pub appId: FWP_BYTE_BLOB, + pub userId: *mut super::super::Security::SID, + pub addressFamily: FWP_AF, + pub packageSid: *mut super::super::Security::SID, + pub enterpriseId: ::windows_sys::core::PWSTR, + pub policyFlags: u64, + pub effectiveName: FWP_BYTE_BLOB, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_HEADER3_0 { + pub localAddrV4: u32, + pub localAddrV6: FWP_BYTE_ARRAY16, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER3_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_HEADER3_1 { + pub remoteAddrV4: u32, + pub remoteAddrV6: FWP_BYTE_ARRAY16, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_HEADER3_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_HEADER3_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_NET_EVENT_IKEEXT_EM_FAILURE0 { + pub failureErrorCode: u32, + pub failurePoint: IPSEC_FAILURE_POINT, + pub flags: u32, + pub emState: IKEEXT_EM_SA_STATE, + pub saRole: IKEEXT_SA_ROLE, + pub emAuthMethod: IKEEXT_AUTHENTICATION_METHOD_TYPE, + pub endCertHash: [u8; 20], + pub mmId: u64, + pub qmFilterId: u64, +} +impl ::core::marker::Copy for FWPM_NET_EVENT_IKEEXT_EM_FAILURE0 {} +impl ::core::clone::Clone for FWPM_NET_EVENT_IKEEXT_EM_FAILURE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_NET_EVENT_IKEEXT_EM_FAILURE1 { + pub failureErrorCode: u32, + pub failurePoint: IPSEC_FAILURE_POINT, + pub flags: u32, + pub emState: IKEEXT_EM_SA_STATE, + pub saRole: IKEEXT_SA_ROLE, + pub emAuthMethod: IKEEXT_AUTHENTICATION_METHOD_TYPE, + pub endCertHash: [u8; 20], + pub mmId: u64, + pub qmFilterId: u64, + pub localPrincipalNameForAuth: ::windows_sys::core::PWSTR, + pub remotePrincipalNameForAuth: ::windows_sys::core::PWSTR, + pub numLocalPrincipalGroupSids: u32, + pub localPrincipalGroupSids: *mut ::windows_sys::core::PWSTR, + pub numRemotePrincipalGroupSids: u32, + pub remotePrincipalGroupSids: *mut ::windows_sys::core::PWSTR, + pub saTrafficType: IPSEC_TRAFFIC_TYPE, +} +impl ::core::marker::Copy for FWPM_NET_EVENT_IKEEXT_EM_FAILURE1 {} +impl ::core::clone::Clone for FWPM_NET_EVENT_IKEEXT_EM_FAILURE1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_NET_EVENT_IKEEXT_MM_FAILURE0 { + pub failureErrorCode: u32, + pub failurePoint: IPSEC_FAILURE_POINT, + pub flags: u32, + pub keyingModuleType: IKEEXT_KEY_MODULE_TYPE, + pub mmState: IKEEXT_MM_SA_STATE, + pub saRole: IKEEXT_SA_ROLE, + pub mmAuthMethod: IKEEXT_AUTHENTICATION_METHOD_TYPE, + pub endCertHash: [u8; 20], + pub mmId: u64, + pub mmFilterId: u64, +} +impl ::core::marker::Copy for FWPM_NET_EVENT_IKEEXT_MM_FAILURE0 {} +impl ::core::clone::Clone for FWPM_NET_EVENT_IKEEXT_MM_FAILURE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_NET_EVENT_IKEEXT_MM_FAILURE1 { + pub failureErrorCode: u32, + pub failurePoint: IPSEC_FAILURE_POINT, + pub flags: u32, + pub keyingModuleType: IKEEXT_KEY_MODULE_TYPE, + pub mmState: IKEEXT_MM_SA_STATE, + pub saRole: IKEEXT_SA_ROLE, + pub mmAuthMethod: IKEEXT_AUTHENTICATION_METHOD_TYPE, + pub endCertHash: [u8; 20], + pub mmId: u64, + pub mmFilterId: u64, + pub localPrincipalNameForAuth: ::windows_sys::core::PWSTR, + pub remotePrincipalNameForAuth: ::windows_sys::core::PWSTR, + pub numLocalPrincipalGroupSids: u32, + pub localPrincipalGroupSids: *mut ::windows_sys::core::PWSTR, + pub numRemotePrincipalGroupSids: u32, + pub remotePrincipalGroupSids: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for FWPM_NET_EVENT_IKEEXT_MM_FAILURE1 {} +impl ::core::clone::Clone for FWPM_NET_EVENT_IKEEXT_MM_FAILURE1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_NET_EVENT_IKEEXT_MM_FAILURE2 { + pub failureErrorCode: u32, + pub failurePoint: IPSEC_FAILURE_POINT, + pub flags: u32, + pub keyingModuleType: IKEEXT_KEY_MODULE_TYPE, + pub mmState: IKEEXT_MM_SA_STATE, + pub saRole: IKEEXT_SA_ROLE, + pub mmAuthMethod: IKEEXT_AUTHENTICATION_METHOD_TYPE, + pub endCertHash: [u8; 20], + pub mmId: u64, + pub mmFilterId: u64, + pub localPrincipalNameForAuth: ::windows_sys::core::PWSTR, + pub remotePrincipalNameForAuth: ::windows_sys::core::PWSTR, + pub numLocalPrincipalGroupSids: u32, + pub localPrincipalGroupSids: *mut ::windows_sys::core::PWSTR, + pub numRemotePrincipalGroupSids: u32, + pub remotePrincipalGroupSids: *mut ::windows_sys::core::PWSTR, + pub providerContextKey: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for FWPM_NET_EVENT_IKEEXT_MM_FAILURE2 {} +impl ::core::clone::Clone for FWPM_NET_EVENT_IKEEXT_MM_FAILURE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT_IKEEXT_QM_FAILURE0 { + pub failureErrorCode: u32, + pub failurePoint: IPSEC_FAILURE_POINT, + pub keyingModuleType: IKEEXT_KEY_MODULE_TYPE, + pub qmState: IKEEXT_QM_SA_STATE, + pub saRole: IKEEXT_SA_ROLE, + pub saTrafficType: IPSEC_TRAFFIC_TYPE, + pub Anonymous1: FWPM_NET_EVENT_IKEEXT_QM_FAILURE0_0, + pub Anonymous2: FWPM_NET_EVENT_IKEEXT_QM_FAILURE0_1, + pub qmFilterId: u64, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_IKEEXT_QM_FAILURE0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_IKEEXT_QM_FAILURE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_IKEEXT_QM_FAILURE0_0 { + pub localSubNet: FWP_CONDITION_VALUE0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_IKEEXT_QM_FAILURE0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_IKEEXT_QM_FAILURE0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_IKEEXT_QM_FAILURE0_1 { + pub remoteSubNet: FWP_CONDITION_VALUE0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_IKEEXT_QM_FAILURE0_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_IKEEXT_QM_FAILURE0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT_IKEEXT_QM_FAILURE1 { + pub failureErrorCode: u32, + pub failurePoint: IPSEC_FAILURE_POINT, + pub keyingModuleType: IKEEXT_KEY_MODULE_TYPE, + pub qmState: IKEEXT_QM_SA_STATE, + pub saRole: IKEEXT_SA_ROLE, + pub saTrafficType: IPSEC_TRAFFIC_TYPE, + pub Anonymous1: FWPM_NET_EVENT_IKEEXT_QM_FAILURE1_0, + pub Anonymous2: FWPM_NET_EVENT_IKEEXT_QM_FAILURE1_1, + pub qmFilterId: u64, + pub mmSaLuid: u64, + pub mmProviderContextKey: ::windows_sys::core::GUID, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_IKEEXT_QM_FAILURE1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_IKEEXT_QM_FAILURE1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_IKEEXT_QM_FAILURE1_0 { + pub localSubNet: FWP_CONDITION_VALUE0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_IKEEXT_QM_FAILURE1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_IKEEXT_QM_FAILURE1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_NET_EVENT_IKEEXT_QM_FAILURE1_1 { + pub remoteSubNet: FWP_CONDITION_VALUE0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_IKEEXT_QM_FAILURE1_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_IKEEXT_QM_FAILURE1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_NET_EVENT_IPSEC_DOSP_DROP0 { + pub ipVersion: FWP_IP_VERSION, + pub Anonymous1: FWPM_NET_EVENT_IPSEC_DOSP_DROP0_0, + pub Anonymous2: FWPM_NET_EVENT_IPSEC_DOSP_DROP0_1, + pub failureStatus: i32, + pub direction: FWP_DIRECTION, +} +impl ::core::marker::Copy for FWPM_NET_EVENT_IPSEC_DOSP_DROP0 {} +impl ::core::clone::Clone for FWPM_NET_EVENT_IPSEC_DOSP_DROP0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FWPM_NET_EVENT_IPSEC_DOSP_DROP0_0 { + pub publicHostV4Addr: u32, + pub publicHostV6Addr: [u8; 16], +} +impl ::core::marker::Copy for FWPM_NET_EVENT_IPSEC_DOSP_DROP0_0 {} +impl ::core::clone::Clone for FWPM_NET_EVENT_IPSEC_DOSP_DROP0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FWPM_NET_EVENT_IPSEC_DOSP_DROP0_1 { + pub internalHostV4Addr: u32, + pub internalHostV6Addr: [u8; 16], +} +impl ::core::marker::Copy for FWPM_NET_EVENT_IPSEC_DOSP_DROP0_1 {} +impl ::core::clone::Clone for FWPM_NET_EVENT_IPSEC_DOSP_DROP0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_NET_EVENT_IPSEC_KERNEL_DROP0 { + pub failureStatus: i32, + pub direction: FWP_DIRECTION, + pub spi: u32, + pub filterId: u64, + pub layerId: u16, +} +impl ::core::marker::Copy for FWPM_NET_EVENT_IPSEC_KERNEL_DROP0 {} +impl ::core::clone::Clone for FWPM_NET_EVENT_IPSEC_KERNEL_DROP0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_NET_EVENT_LPM_PACKET_ARRIVAL0 { + pub spi: u32, +} +impl ::core::marker::Copy for FWPM_NET_EVENT_LPM_PACKET_ARRIVAL0 {} +impl ::core::clone::Clone for FWPM_NET_EVENT_LPM_PACKET_ARRIVAL0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_NET_EVENT_SUBSCRIPTION0 { + pub enumTemplate: *mut FWPM_NET_EVENT_ENUM_TEMPLATE0, + pub flags: u32, + pub sessionKey: ::windows_sys::core::GUID, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_NET_EVENT_SUBSCRIPTION0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_NET_EVENT_SUBSCRIPTION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_PROVIDER0 { + pub providerKey: ::windows_sys::core::GUID, + pub displayData: FWPM_DISPLAY_DATA0, + pub flags: u32, + pub providerData: FWP_BYTE_BLOB, + pub serviceName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for FWPM_PROVIDER0 {} +impl ::core::clone::Clone for FWPM_PROVIDER0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_PROVIDER_CHANGE0 { + pub changeType: FWPM_CHANGE_TYPE, + pub providerKey: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for FWPM_PROVIDER_CHANGE0 {} +impl ::core::clone::Clone for FWPM_PROVIDER_CHANGE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_PROVIDER_CONTEXT0 { + pub providerContextKey: ::windows_sys::core::GUID, + pub displayData: FWPM_DISPLAY_DATA0, + pub flags: u32, + pub providerKey: *mut ::windows_sys::core::GUID, + pub providerData: FWP_BYTE_BLOB, + pub r#type: FWPM_PROVIDER_CONTEXT_TYPE, + pub Anonymous: FWPM_PROVIDER_CONTEXT0_0, + pub providerContextId: u64, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_PROVIDER_CONTEXT0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_PROVIDER_CONTEXT0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_PROVIDER_CONTEXT0_0 { + pub keyingPolicy: *mut IPSEC_KEYING_POLICY0, + pub ikeQmTransportPolicy: *mut IPSEC_TRANSPORT_POLICY0, + pub ikeQmTunnelPolicy: *mut IPSEC_TUNNEL_POLICY0, + pub authipQmTransportPolicy: *mut IPSEC_TRANSPORT_POLICY0, + pub authipQmTunnelPolicy: *mut IPSEC_TUNNEL_POLICY0, + pub ikeMmPolicy: *mut IKEEXT_POLICY0, + pub authIpMmPolicy: *mut IKEEXT_POLICY0, + pub dataBuffer: *mut FWP_BYTE_BLOB, + pub classifyOptions: *mut FWPM_CLASSIFY_OPTIONS0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_PROVIDER_CONTEXT0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_PROVIDER_CONTEXT0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_PROVIDER_CONTEXT1 { + pub providerContextKey: ::windows_sys::core::GUID, + pub displayData: FWPM_DISPLAY_DATA0, + pub flags: u32, + pub providerKey: *mut ::windows_sys::core::GUID, + pub providerData: FWP_BYTE_BLOB, + pub r#type: FWPM_PROVIDER_CONTEXT_TYPE, + pub Anonymous: FWPM_PROVIDER_CONTEXT1_0, + pub providerContextId: u64, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_PROVIDER_CONTEXT1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_PROVIDER_CONTEXT1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_PROVIDER_CONTEXT1_0 { + pub keyingPolicy: *mut IPSEC_KEYING_POLICY0, + pub ikeQmTransportPolicy: *mut IPSEC_TRANSPORT_POLICY1, + pub ikeQmTunnelPolicy: *mut IPSEC_TUNNEL_POLICY1, + pub authipQmTransportPolicy: *mut IPSEC_TRANSPORT_POLICY1, + pub authipQmTunnelPolicy: *mut IPSEC_TUNNEL_POLICY1, + pub ikeMmPolicy: *mut IKEEXT_POLICY1, + pub authIpMmPolicy: *mut IKEEXT_POLICY1, + pub dataBuffer: *mut FWP_BYTE_BLOB, + pub classifyOptions: *mut FWPM_CLASSIFY_OPTIONS0, + pub ikeV2QmTunnelPolicy: *mut IPSEC_TUNNEL_POLICY1, + pub ikeV2MmPolicy: *mut IKEEXT_POLICY1, + pub idpOptions: *mut IPSEC_DOSP_OPTIONS0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_PROVIDER_CONTEXT1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_PROVIDER_CONTEXT1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_PROVIDER_CONTEXT2 { + pub providerContextKey: ::windows_sys::core::GUID, + pub displayData: FWPM_DISPLAY_DATA0, + pub flags: u32, + pub providerKey: *mut ::windows_sys::core::GUID, + pub providerData: FWP_BYTE_BLOB, + pub r#type: FWPM_PROVIDER_CONTEXT_TYPE, + pub Anonymous: FWPM_PROVIDER_CONTEXT2_0, + pub providerContextId: u64, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_PROVIDER_CONTEXT2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_PROVIDER_CONTEXT2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_PROVIDER_CONTEXT2_0 { + pub keyingPolicy: *mut IPSEC_KEYING_POLICY1, + pub ikeQmTransportPolicy: *mut IPSEC_TRANSPORT_POLICY2, + pub ikeQmTunnelPolicy: *mut IPSEC_TUNNEL_POLICY2, + pub authipQmTransportPolicy: *mut IPSEC_TRANSPORT_POLICY2, + pub authipQmTunnelPolicy: *mut IPSEC_TUNNEL_POLICY2, + pub ikeMmPolicy: *mut IKEEXT_POLICY2, + pub authIpMmPolicy: *mut IKEEXT_POLICY2, + pub dataBuffer: *mut FWP_BYTE_BLOB, + pub classifyOptions: *mut FWPM_CLASSIFY_OPTIONS0, + pub ikeV2QmTunnelPolicy: *mut IPSEC_TUNNEL_POLICY2, + pub ikeV2QmTransportPolicy: *mut IPSEC_TRANSPORT_POLICY2, + pub ikeV2MmPolicy: *mut IKEEXT_POLICY2, + pub idpOptions: *mut IPSEC_DOSP_OPTIONS0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_PROVIDER_CONTEXT2_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_PROVIDER_CONTEXT2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_PROVIDER_CONTEXT3 { + pub providerContextKey: ::windows_sys::core::GUID, + pub displayData: FWPM_DISPLAY_DATA0, + pub flags: u32, + pub providerKey: *mut ::windows_sys::core::GUID, + pub providerData: FWP_BYTE_BLOB, + pub r#type: FWPM_PROVIDER_CONTEXT_TYPE, + pub Anonymous: FWPM_PROVIDER_CONTEXT3_0, + pub providerContextId: u64, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_PROVIDER_CONTEXT3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_PROVIDER_CONTEXT3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWPM_PROVIDER_CONTEXT3_0 { + pub keyingPolicy: *mut IPSEC_KEYING_POLICY1, + pub ikeQmTransportPolicy: *mut IPSEC_TRANSPORT_POLICY2, + pub ikeQmTunnelPolicy: *mut IPSEC_TUNNEL_POLICY3, + pub authipQmTransportPolicy: *mut IPSEC_TRANSPORT_POLICY2, + pub authipQmTunnelPolicy: *mut IPSEC_TUNNEL_POLICY3, + pub ikeMmPolicy: *mut IKEEXT_POLICY2, + pub authIpMmPolicy: *mut IKEEXT_POLICY2, + pub dataBuffer: *mut FWP_BYTE_BLOB, + pub classifyOptions: *mut FWPM_CLASSIFY_OPTIONS0, + pub ikeV2QmTunnelPolicy: *mut IPSEC_TUNNEL_POLICY3, + pub ikeV2QmTransportPolicy: *mut IPSEC_TRANSPORT_POLICY2, + pub ikeV2MmPolicy: *mut IKEEXT_POLICY2, + pub idpOptions: *mut IPSEC_DOSP_OPTIONS0, + pub networkConnectionPolicy: *mut FWPM_NETWORK_CONNECTION_POLICY_SETTINGS0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_PROVIDER_CONTEXT3_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_PROVIDER_CONTEXT3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_PROVIDER_CONTEXT_CHANGE0 { + pub changeType: FWPM_CHANGE_TYPE, + pub providerContextKey: ::windows_sys::core::GUID, + pub providerContextId: u64, +} +impl ::core::marker::Copy for FWPM_PROVIDER_CONTEXT_CHANGE0 {} +impl ::core::clone::Clone for FWPM_PROVIDER_CONTEXT_CHANGE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0 { + pub providerKey: *mut ::windows_sys::core::GUID, + pub providerContextType: FWPM_PROVIDER_CONTEXT_TYPE, +} +impl ::core::marker::Copy for FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0 {} +impl ::core::clone::Clone for FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0 { + pub enumTemplate: *mut FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0, + pub flags: FWPM_SUBSCRIPTION_FLAGS, + pub sessionKey: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0 {} +impl ::core::clone::Clone for FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_PROVIDER_ENUM_TEMPLATE0 { + pub reserved: u64, +} +impl ::core::marker::Copy for FWPM_PROVIDER_ENUM_TEMPLATE0 {} +impl ::core::clone::Clone for FWPM_PROVIDER_ENUM_TEMPLATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_PROVIDER_SUBSCRIPTION0 { + pub enumTemplate: *mut FWPM_PROVIDER_ENUM_TEMPLATE0, + pub flags: u32, + pub sessionKey: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for FWPM_PROVIDER_SUBSCRIPTION0 {} +impl ::core::clone::Clone for FWPM_PROVIDER_SUBSCRIPTION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWPM_SESSION0 { + pub sessionKey: ::windows_sys::core::GUID, + pub displayData: FWPM_DISPLAY_DATA0, + pub flags: u32, + pub txnWaitTimeoutInMSec: u32, + pub processId: u32, + pub sid: *mut super::super::Security::SID, + pub username: ::windows_sys::core::PWSTR, + pub kernelMode: super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWPM_SESSION0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWPM_SESSION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_SESSION_ENUM_TEMPLATE0 { + pub reserved: u64, +} +impl ::core::marker::Copy for FWPM_SESSION_ENUM_TEMPLATE0 {} +impl ::core::clone::Clone for FWPM_SESSION_ENUM_TEMPLATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_STATISTICS0 { + pub numLayerStatistics: u32, + pub layerStatistics: *mut FWPM_LAYER_STATISTICS0, + pub inboundAllowedConnectionsV4: u32, + pub inboundBlockedConnectionsV4: u32, + pub outboundAllowedConnectionsV4: u32, + pub outboundBlockedConnectionsV4: u32, + pub inboundAllowedConnectionsV6: u32, + pub inboundBlockedConnectionsV6: u32, + pub outboundAllowedConnectionsV6: u32, + pub outboundBlockedConnectionsV6: u32, + pub inboundActiveConnectionsV4: u32, + pub outboundActiveConnectionsV4: u32, + pub inboundActiveConnectionsV6: u32, + pub outboundActiveConnectionsV6: u32, + pub reauthDirInbound: u64, + pub reauthDirOutbound: u64, + pub reauthFamilyV4: u64, + pub reauthFamilyV6: u64, + pub reauthProtoOther: u64, + pub reauthProtoIPv4: u64, + pub reauthProtoIPv6: u64, + pub reauthProtoICMP: u64, + pub reauthProtoICMP6: u64, + pub reauthProtoUDP: u64, + pub reauthProtoTCP: u64, + pub reauthReasonPolicyChange: u64, + pub reauthReasonNewArrivalInterface: u64, + pub reauthReasonNewNextHopInterface: u64, + pub reauthReasonProfileCrossing: u64, + pub reauthReasonClassifyCompletion: u64, + pub reauthReasonIPSecPropertiesChanged: u64, + pub reauthReasonMidStreamInspection: u64, + pub reauthReasonSocketPropertyChanged: u64, + pub reauthReasonNewInboundMCastBCastPacket: u64, + pub reauthReasonEDPPolicyChanged: u64, + pub reauthReasonProxyHandleChanged: u64, +} +impl ::core::marker::Copy for FWPM_STATISTICS0 {} +impl ::core::clone::Clone for FWPM_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_SUBLAYER0 { + pub subLayerKey: ::windows_sys::core::GUID, + pub displayData: FWPM_DISPLAY_DATA0, + pub flags: u32, + pub providerKey: *mut ::windows_sys::core::GUID, + pub providerData: FWP_BYTE_BLOB, + pub weight: u16, +} +impl ::core::marker::Copy for FWPM_SUBLAYER0 {} +impl ::core::clone::Clone for FWPM_SUBLAYER0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_SUBLAYER_CHANGE0 { + pub changeType: FWPM_CHANGE_TYPE, + pub subLayerKey: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for FWPM_SUBLAYER_CHANGE0 {} +impl ::core::clone::Clone for FWPM_SUBLAYER_CHANGE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_SUBLAYER_ENUM_TEMPLATE0 { + pub providerKey: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for FWPM_SUBLAYER_ENUM_TEMPLATE0 {} +impl ::core::clone::Clone for FWPM_SUBLAYER_ENUM_TEMPLATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_SUBLAYER_SUBSCRIPTION0 { + pub enumTemplate: *mut FWPM_SUBLAYER_ENUM_TEMPLATE0, + pub flags: FWPM_SUBSCRIPTION_FLAGS, + pub sessionKey: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for FWPM_SUBLAYER_SUBSCRIPTION0 {} +impl ::core::clone::Clone for FWPM_SUBLAYER_SUBSCRIPTION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_SYSTEM_PORTS0 { + pub numTypes: u32, + pub types: *mut FWPM_SYSTEM_PORTS_BY_TYPE0, +} +impl ::core::marker::Copy for FWPM_SYSTEM_PORTS0 {} +impl ::core::clone::Clone for FWPM_SYSTEM_PORTS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_SYSTEM_PORTS_BY_TYPE0 { + pub r#type: FWPM_SYSTEM_PORT_TYPE, + pub numPorts: u32, + pub ports: *mut u16, +} +impl ::core::marker::Copy for FWPM_SYSTEM_PORTS_BY_TYPE0 {} +impl ::core::clone::Clone for FWPM_SYSTEM_PORTS_BY_TYPE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FWPM_VSWITCH_EVENT0 { + pub eventType: FWPM_VSWITCH_EVENT_TYPE, + pub vSwitchId: ::windows_sys::core::PWSTR, + pub Anonymous: FWPM_VSWITCH_EVENT0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FWPM_VSWITCH_EVENT0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FWPM_VSWITCH_EVENT0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union FWPM_VSWITCH_EVENT0_0 { + pub positionInfo: FWPM_VSWITCH_EVENT0_0_0, + pub reorderInfo: FWPM_VSWITCH_EVENT0_0_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FWPM_VSWITCH_EVENT0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FWPM_VSWITCH_EVENT0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FWPM_VSWITCH_EVENT0_0_0 { + pub numvSwitchFilterExtensions: u32, + pub vSwitchFilterExtensions: *mut ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FWPM_VSWITCH_EVENT0_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FWPM_VSWITCH_EVENT0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FWPM_VSWITCH_EVENT0_0_1 { + pub inRequiredPosition: super::super::Foundation::BOOL, + pub numvSwitchFilterExtensions: u32, + pub vSwitchFilterExtensions: *mut ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FWPM_VSWITCH_EVENT0_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FWPM_VSWITCH_EVENT0_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWPM_VSWITCH_EVENT_SUBSCRIPTION0 { + pub flags: u32, + pub sessionKey: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for FWPM_VSWITCH_EVENT_SUBSCRIPTION0 {} +impl ::core::clone::Clone for FWPM_VSWITCH_EVENT_SUBSCRIPTION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWP_BYTE_ARRAY16 { + pub byteArray16: [u8; 16], +} +impl ::core::marker::Copy for FWP_BYTE_ARRAY16 {} +impl ::core::clone::Clone for FWP_BYTE_ARRAY16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWP_BYTE_ARRAY6 { + pub byteArray6: [u8; 6], +} +impl ::core::marker::Copy for FWP_BYTE_ARRAY6 {} +impl ::core::clone::Clone for FWP_BYTE_ARRAY6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWP_BYTE_BLOB { + pub size: u32, + pub data: *mut u8, +} +impl ::core::marker::Copy for FWP_BYTE_BLOB {} +impl ::core::clone::Clone for FWP_BYTE_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWP_CONDITION_VALUE0 { + pub r#type: FWP_DATA_TYPE, + pub Anonymous: FWP_CONDITION_VALUE0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWP_CONDITION_VALUE0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWP_CONDITION_VALUE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWP_CONDITION_VALUE0_0 { + pub uint8: u8, + pub uint16: u16, + pub uint32: u32, + pub uint64: *mut u64, + pub int8: i8, + pub int16: i16, + pub int32: i32, + pub int64: *mut i64, + pub float32: f32, + pub double64: *mut f64, + pub byteArray16: *mut FWP_BYTE_ARRAY16, + pub byteBlob: *mut FWP_BYTE_BLOB, + pub sid: *mut super::super::Security::SID, + pub sd: *mut FWP_BYTE_BLOB, + pub tokenInformation: *mut FWP_TOKEN_INFORMATION, + pub tokenAccessInformation: *mut FWP_BYTE_BLOB, + pub unicodeString: ::windows_sys::core::PWSTR, + pub byteArray6: *mut FWP_BYTE_ARRAY6, + pub v4AddrMask: *mut FWP_V4_ADDR_AND_MASK, + pub v6AddrMask: *mut FWP_V6_ADDR_AND_MASK, + pub rangeValue: *mut FWP_RANGE0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWP_CONDITION_VALUE0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWP_CONDITION_VALUE0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWP_RANGE0 { + pub valueLow: FWP_VALUE0, + pub valueHigh: FWP_VALUE0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWP_RANGE0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWP_RANGE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWP_TOKEN_INFORMATION { + pub sidCount: u32, + pub sids: *mut super::super::Security::SID_AND_ATTRIBUTES, + pub restrictedSidCount: u32, + pub restrictedSids: *mut super::super::Security::SID_AND_ATTRIBUTES, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWP_TOKEN_INFORMATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWP_TOKEN_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWP_V4_ADDR_AND_MASK { + pub addr: u32, + pub mask: u32, +} +impl ::core::marker::Copy for FWP_V4_ADDR_AND_MASK {} +impl ::core::clone::Clone for FWP_V4_ADDR_AND_MASK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FWP_V6_ADDR_AND_MASK { + pub addr: [u8; 16], + pub prefixLength: u8, +} +impl ::core::marker::Copy for FWP_V6_ADDR_AND_MASK {} +impl ::core::clone::Clone for FWP_V6_ADDR_AND_MASK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct FWP_VALUE0 { + pub r#type: FWP_DATA_TYPE, + pub Anonymous: FWP_VALUE0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWP_VALUE0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWP_VALUE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union FWP_VALUE0_0 { + pub uint8: u8, + pub uint16: u16, + pub uint32: u32, + pub uint64: *mut u64, + pub int8: i8, + pub int16: i16, + pub int32: i32, + pub int64: *mut i64, + pub float32: f32, + pub double64: *mut f64, + pub byteArray16: *mut FWP_BYTE_ARRAY16, + pub byteBlob: *mut FWP_BYTE_BLOB, + pub sid: *mut super::super::Security::SID, + pub sd: *mut FWP_BYTE_BLOB, + pub tokenInformation: *mut FWP_TOKEN_INFORMATION, + pub tokenAccessInformation: *mut FWP_BYTE_BLOB, + pub unicodeString: ::windows_sys::core::PWSTR, + pub byteArray6: *mut FWP_BYTE_ARRAY6, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for FWP_VALUE0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for FWP_VALUE0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_AUTHENTICATION_METHOD0 { + pub authenticationMethodType: IKEEXT_AUTHENTICATION_METHOD_TYPE, + pub Anonymous: IKEEXT_AUTHENTICATION_METHOD0_0, +} +impl ::core::marker::Copy for IKEEXT_AUTHENTICATION_METHOD0 {} +impl ::core::clone::Clone for IKEEXT_AUTHENTICATION_METHOD0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_AUTHENTICATION_METHOD0_0 { + pub presharedKeyAuthentication: IKEEXT_PRESHARED_KEY_AUTHENTICATION0, + pub certificateAuthentication: IKEEXT_CERTIFICATE_AUTHENTICATION0, + pub kerberosAuthentication: IKEEXT_KERBEROS_AUTHENTICATION0, + pub ntlmV2Authentication: IKEEXT_NTLM_V2_AUTHENTICATION0, + pub sslAuthentication: IKEEXT_CERTIFICATE_AUTHENTICATION0, + pub cgaAuthentication: IKEEXT_IPV6_CGA_AUTHENTICATION0, +} +impl ::core::marker::Copy for IKEEXT_AUTHENTICATION_METHOD0_0 {} +impl ::core::clone::Clone for IKEEXT_AUTHENTICATION_METHOD0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_AUTHENTICATION_METHOD1 { + pub authenticationMethodType: IKEEXT_AUTHENTICATION_METHOD_TYPE, + pub Anonymous: IKEEXT_AUTHENTICATION_METHOD1_0, +} +impl ::core::marker::Copy for IKEEXT_AUTHENTICATION_METHOD1 {} +impl ::core::clone::Clone for IKEEXT_AUTHENTICATION_METHOD1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_AUTHENTICATION_METHOD1_0 { + pub presharedKeyAuthentication: IKEEXT_PRESHARED_KEY_AUTHENTICATION1, + pub certificateAuthentication: IKEEXT_CERTIFICATE_AUTHENTICATION1, + pub kerberosAuthentication: IKEEXT_KERBEROS_AUTHENTICATION0, + pub ntlmV2Authentication: IKEEXT_NTLM_V2_AUTHENTICATION0, + pub sslAuthentication: IKEEXT_CERTIFICATE_AUTHENTICATION1, + pub cgaAuthentication: IKEEXT_IPV6_CGA_AUTHENTICATION0, + pub eapAuthentication: IKEEXT_EAP_AUTHENTICATION0, +} +impl ::core::marker::Copy for IKEEXT_AUTHENTICATION_METHOD1_0 {} +impl ::core::clone::Clone for IKEEXT_AUTHENTICATION_METHOD1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_AUTHENTICATION_METHOD2 { + pub authenticationMethodType: IKEEXT_AUTHENTICATION_METHOD_TYPE, + pub Anonymous: IKEEXT_AUTHENTICATION_METHOD2_0, +} +impl ::core::marker::Copy for IKEEXT_AUTHENTICATION_METHOD2 {} +impl ::core::clone::Clone for IKEEXT_AUTHENTICATION_METHOD2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_AUTHENTICATION_METHOD2_0 { + pub presharedKeyAuthentication: IKEEXT_PRESHARED_KEY_AUTHENTICATION1, + pub certificateAuthentication: IKEEXT_CERTIFICATE_AUTHENTICATION2, + pub kerberosAuthentication: IKEEXT_KERBEROS_AUTHENTICATION1, + pub reservedAuthentication: IKEEXT_RESERVED_AUTHENTICATION0, + pub ntlmV2Authentication: IKEEXT_NTLM_V2_AUTHENTICATION0, + pub sslAuthentication: IKEEXT_CERTIFICATE_AUTHENTICATION2, + pub cgaAuthentication: IKEEXT_IPV6_CGA_AUTHENTICATION0, + pub eapAuthentication: IKEEXT_EAP_AUTHENTICATION0, +} +impl ::core::marker::Copy for IKEEXT_AUTHENTICATION_METHOD2_0 {} +impl ::core::clone::Clone for IKEEXT_AUTHENTICATION_METHOD2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_AUTHENTICATION0 { + pub inboundConfigType: IKEEXT_CERT_CONFIG_TYPE, + pub Anonymous1: IKEEXT_CERTIFICATE_AUTHENTICATION0_0, + pub outboundConfigType: IKEEXT_CERT_CONFIG_TYPE, + pub Anonymous2: IKEEXT_CERTIFICATE_AUTHENTICATION0_1, + pub flags: IKEEXT_CERT_AUTH, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION0 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_CERTIFICATE_AUTHENTICATION0_0 { + pub Anonymous: IKEEXT_CERTIFICATE_AUTHENTICATION0_0_0, + pub inboundEnterpriseStoreConfig: *mut IKEEXT_CERT_ROOT_CONFIG0, + pub inboundTrustedRootStoreConfig: *mut IKEEXT_CERT_ROOT_CONFIG0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION0_0 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_AUTHENTICATION0_0_0 { + pub inboundRootArraySize: u32, + pub inboundRootArray: *mut IKEEXT_CERT_ROOT_CONFIG0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION0_0_0 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_CERTIFICATE_AUTHENTICATION0_1 { + pub Anonymous: IKEEXT_CERTIFICATE_AUTHENTICATION0_1_0, + pub outboundEnterpriseStoreConfig: *mut IKEEXT_CERT_ROOT_CONFIG0, + pub outboundTrustedRootStoreConfig: *mut IKEEXT_CERT_ROOT_CONFIG0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION0_1 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_AUTHENTICATION0_1_0 { + pub outboundRootArraySize: u32, + pub outboundRootArray: *mut IKEEXT_CERT_ROOT_CONFIG0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION0_1_0 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION0_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_AUTHENTICATION1 { + pub inboundConfigType: IKEEXT_CERT_CONFIG_TYPE, + pub Anonymous1: IKEEXT_CERTIFICATE_AUTHENTICATION1_0, + pub outboundConfigType: IKEEXT_CERT_CONFIG_TYPE, + pub Anonymous2: IKEEXT_CERTIFICATE_AUTHENTICATION1_1, + pub flags: IKEEXT_CERT_AUTH, + pub localCertLocationUrl: FWP_BYTE_BLOB, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION1 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_CERTIFICATE_AUTHENTICATION1_0 { + pub Anonymous: IKEEXT_CERTIFICATE_AUTHENTICATION1_0_0, + pub inboundEnterpriseStoreConfig: *mut IKEEXT_CERT_ROOT_CONFIG0, + pub inboundTrustedRootStoreConfig: *mut IKEEXT_CERT_ROOT_CONFIG0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION1_0 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_AUTHENTICATION1_0_0 { + pub inboundRootArraySize: u32, + pub inboundRootArray: *mut IKEEXT_CERT_ROOT_CONFIG0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION1_0_0 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION1_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_CERTIFICATE_AUTHENTICATION1_1 { + pub Anonymous: IKEEXT_CERTIFICATE_AUTHENTICATION1_1_0, + pub outboundEnterpriseStoreConfig: *mut IKEEXT_CERT_ROOT_CONFIG0, + pub outboundTrustedRootStoreConfig: *mut IKEEXT_CERT_ROOT_CONFIG0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION1_1 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_AUTHENTICATION1_1_0 { + pub outboundRootArraySize: u32, + pub outboundRootArray: *mut IKEEXT_CERT_ROOT_CONFIG0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION1_1_0 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION1_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_AUTHENTICATION2 { + pub inboundConfigType: IKEEXT_CERT_CONFIG_TYPE, + pub Anonymous1: IKEEXT_CERTIFICATE_AUTHENTICATION2_0, + pub outboundConfigType: IKEEXT_CERT_CONFIG_TYPE, + pub Anonymous2: IKEEXT_CERTIFICATE_AUTHENTICATION2_1, + pub flags: IKEEXT_CERT_AUTH, + pub localCertLocationUrl: FWP_BYTE_BLOB, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION2 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_CERTIFICATE_AUTHENTICATION2_0 { + pub Anonymous1: IKEEXT_CERTIFICATE_AUTHENTICATION2_0_0, + pub Anonymous2: IKEEXT_CERTIFICATE_AUTHENTICATION2_0_1, + pub Anonymous3: IKEEXT_CERTIFICATE_AUTHENTICATION2_0_2, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION2_0 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_AUTHENTICATION2_0_0 { + pub inboundRootArraySize: u32, + pub inboundRootCriteria: *mut IKEEXT_CERTIFICATE_CRITERIA0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION2_0_0 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_AUTHENTICATION2_0_1 { + pub inboundEnterpriseStoreArraySize: u32, + pub inboundEnterpriseStoreCriteria: *mut IKEEXT_CERTIFICATE_CRITERIA0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION2_0_1 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION2_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_AUTHENTICATION2_0_2 { + pub inboundRootStoreArraySize: u32, + pub inboundTrustedRootStoreCriteria: *mut IKEEXT_CERTIFICATE_CRITERIA0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION2_0_2 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION2_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_CERTIFICATE_AUTHENTICATION2_1 { + pub Anonymous1: IKEEXT_CERTIFICATE_AUTHENTICATION2_1_0, + pub Anonymous2: IKEEXT_CERTIFICATE_AUTHENTICATION2_1_1, + pub Anonymous3: IKEEXT_CERTIFICATE_AUTHENTICATION2_1_2, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION2_1 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_AUTHENTICATION2_1_0 { + pub outboundRootArraySize: u32, + pub outboundRootCriteria: *mut IKEEXT_CERTIFICATE_CRITERIA0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION2_1_0 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION2_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_AUTHENTICATION2_1_1 { + pub outboundEnterpriseStoreArraySize: u32, + pub outboundEnterpriseStoreCriteria: *mut IKEEXT_CERTIFICATE_CRITERIA0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION2_1_1 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION2_1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_AUTHENTICATION2_1_2 { + pub outboundRootStoreArraySize: u32, + pub outboundTrustedRootStoreCriteria: *mut IKEEXT_CERTIFICATE_CRITERIA0, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_AUTHENTICATION2_1_2 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_AUTHENTICATION2_1_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_CREDENTIAL0 { + pub subjectName: FWP_BYTE_BLOB, + pub certHash: FWP_BYTE_BLOB, + pub flags: u32, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_CREDENTIAL0 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_CREDENTIAL0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_CREDENTIAL1 { + pub subjectName: FWP_BYTE_BLOB, + pub certHash: FWP_BYTE_BLOB, + pub flags: u32, + pub certificate: FWP_BYTE_BLOB, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_CREDENTIAL1 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_CREDENTIAL1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERTIFICATE_CRITERIA0 { + pub certData: FWP_BYTE_BLOB, + pub certHash: FWP_BYTE_BLOB, + pub eku: *mut IKEEXT_CERT_EKUS0, + pub name: *mut IKEEXT_CERT_NAME0, + pub flags: u32, +} +impl ::core::marker::Copy for IKEEXT_CERTIFICATE_CRITERIA0 {} +impl ::core::clone::Clone for IKEEXT_CERTIFICATE_CRITERIA0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERT_EKUS0 { + pub numEku: u32, + pub eku: *mut ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for IKEEXT_CERT_EKUS0 {} +impl ::core::clone::Clone for IKEEXT_CERT_EKUS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERT_NAME0 { + pub nameType: IKEEXT_CERT_CRITERIA_NAME_TYPE, + pub certName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for IKEEXT_CERT_NAME0 {} +impl ::core::clone::Clone for IKEEXT_CERT_NAME0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CERT_ROOT_CONFIG0 { + pub certData: FWP_BYTE_BLOB, + pub flags: IKEEXT_CERT_FLAGS, +} +impl ::core::marker::Copy for IKEEXT_CERT_ROOT_CONFIG0 {} +impl ::core::clone::Clone for IKEEXT_CERT_ROOT_CONFIG0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CIPHER_ALGORITHM0 { + pub algoIdentifier: IKEEXT_CIPHER_TYPE, + pub keyLen: u32, + pub rounds: u32, +} +impl ::core::marker::Copy for IKEEXT_CIPHER_ALGORITHM0 {} +impl ::core::clone::Clone for IKEEXT_CIPHER_ALGORITHM0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_COMMON_STATISTICS0 { + pub v4Statistics: IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0, + pub v6Statistics: IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0, + pub totalPacketsReceived: u32, + pub totalInvalidPacketsReceived: u32, + pub currentQueuedWorkitems: u32, +} +impl ::core::marker::Copy for IKEEXT_COMMON_STATISTICS0 {} +impl ::core::clone::Clone for IKEEXT_COMMON_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_COMMON_STATISTICS1 { + pub v4Statistics: IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1, + pub v6Statistics: IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1, + pub totalPacketsReceived: u32, + pub totalInvalidPacketsReceived: u32, + pub currentQueuedWorkitems: u32, +} +impl ::core::marker::Copy for IKEEXT_COMMON_STATISTICS1 {} +impl ::core::clone::Clone for IKEEXT_COMMON_STATISTICS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_COOKIE_PAIR0 { + pub initiator: u64, + pub responder: u64, +} +impl ::core::marker::Copy for IKEEXT_COOKIE_PAIR0 {} +impl ::core::clone::Clone for IKEEXT_COOKIE_PAIR0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CREDENTIAL0 { + pub authenticationMethodType: IKEEXT_AUTHENTICATION_METHOD_TYPE, + pub impersonationType: IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE, + pub Anonymous: IKEEXT_CREDENTIAL0_0, +} +impl ::core::marker::Copy for IKEEXT_CREDENTIAL0 {} +impl ::core::clone::Clone for IKEEXT_CREDENTIAL0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_CREDENTIAL0_0 { + pub presharedKey: *mut IKEEXT_PRESHARED_KEY_AUTHENTICATION0, + pub certificate: *mut IKEEXT_CERTIFICATE_CREDENTIAL0, + pub name: *mut IKEEXT_NAME_CREDENTIAL0, +} +impl ::core::marker::Copy for IKEEXT_CREDENTIAL0_0 {} +impl ::core::clone::Clone for IKEEXT_CREDENTIAL0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CREDENTIAL1 { + pub authenticationMethodType: IKEEXT_AUTHENTICATION_METHOD_TYPE, + pub impersonationType: IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE, + pub Anonymous: IKEEXT_CREDENTIAL1_0, +} +impl ::core::marker::Copy for IKEEXT_CREDENTIAL1 {} +impl ::core::clone::Clone for IKEEXT_CREDENTIAL1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_CREDENTIAL1_0 { + pub presharedKey: *mut IKEEXT_PRESHARED_KEY_AUTHENTICATION1, + pub certificate: *mut IKEEXT_CERTIFICATE_CREDENTIAL1, + pub name: *mut IKEEXT_NAME_CREDENTIAL0, +} +impl ::core::marker::Copy for IKEEXT_CREDENTIAL1_0 {} +impl ::core::clone::Clone for IKEEXT_CREDENTIAL1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CREDENTIAL2 { + pub authenticationMethodType: IKEEXT_AUTHENTICATION_METHOD_TYPE, + pub impersonationType: IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE, + pub Anonymous: IKEEXT_CREDENTIAL2_0, +} +impl ::core::marker::Copy for IKEEXT_CREDENTIAL2 {} +impl ::core::clone::Clone for IKEEXT_CREDENTIAL2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_CREDENTIAL2_0 { + pub presharedKey: *mut IKEEXT_PRESHARED_KEY_AUTHENTICATION1, + pub certificate: *mut IKEEXT_CERTIFICATE_CREDENTIAL1, + pub name: *mut IKEEXT_NAME_CREDENTIAL0, +} +impl ::core::marker::Copy for IKEEXT_CREDENTIAL2_0 {} +impl ::core::clone::Clone for IKEEXT_CREDENTIAL2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CREDENTIALS0 { + pub numCredentials: u32, + pub credentials: *mut IKEEXT_CREDENTIAL_PAIR0, +} +impl ::core::marker::Copy for IKEEXT_CREDENTIALS0 {} +impl ::core::clone::Clone for IKEEXT_CREDENTIALS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CREDENTIALS1 { + pub numCredentials: u32, + pub credentials: *mut IKEEXT_CREDENTIAL_PAIR1, +} +impl ::core::marker::Copy for IKEEXT_CREDENTIALS1 {} +impl ::core::clone::Clone for IKEEXT_CREDENTIALS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CREDENTIALS2 { + pub numCredentials: u32, + pub credentials: *mut IKEEXT_CREDENTIAL_PAIR2, +} +impl ::core::marker::Copy for IKEEXT_CREDENTIALS2 {} +impl ::core::clone::Clone for IKEEXT_CREDENTIALS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CREDENTIAL_PAIR0 { + pub localCredentials: IKEEXT_CREDENTIAL0, + pub peerCredentials: IKEEXT_CREDENTIAL0, +} +impl ::core::marker::Copy for IKEEXT_CREDENTIAL_PAIR0 {} +impl ::core::clone::Clone for IKEEXT_CREDENTIAL_PAIR0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CREDENTIAL_PAIR1 { + pub localCredentials: IKEEXT_CREDENTIAL1, + pub peerCredentials: IKEEXT_CREDENTIAL1, +} +impl ::core::marker::Copy for IKEEXT_CREDENTIAL_PAIR1 {} +impl ::core::clone::Clone for IKEEXT_CREDENTIAL_PAIR1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_CREDENTIAL_PAIR2 { + pub localCredentials: IKEEXT_CREDENTIAL2, + pub peerCredentials: IKEEXT_CREDENTIAL2, +} +impl ::core::marker::Copy for IKEEXT_CREDENTIAL_PAIR2 {} +impl ::core::clone::Clone for IKEEXT_CREDENTIAL_PAIR2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_EAP_AUTHENTICATION0 { + pub flags: IKEEXT_EAP_AUTHENTICATION_FLAGS, +} +impl ::core::marker::Copy for IKEEXT_EAP_AUTHENTICATION0 {} +impl ::core::clone::Clone for IKEEXT_EAP_AUTHENTICATION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_EM_POLICY0 { + pub numAuthenticationMethods: u32, + pub authenticationMethods: *mut IKEEXT_AUTHENTICATION_METHOD0, + pub initiatorImpersonationType: IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE, +} +impl ::core::marker::Copy for IKEEXT_EM_POLICY0 {} +impl ::core::clone::Clone for IKEEXT_EM_POLICY0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_EM_POLICY1 { + pub numAuthenticationMethods: u32, + pub authenticationMethods: *mut IKEEXT_AUTHENTICATION_METHOD1, + pub initiatorImpersonationType: IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE, +} +impl ::core::marker::Copy for IKEEXT_EM_POLICY1 {} +impl ::core::clone::Clone for IKEEXT_EM_POLICY1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_EM_POLICY2 { + pub numAuthenticationMethods: u32, + pub authenticationMethods: *mut IKEEXT_AUTHENTICATION_METHOD2, + pub initiatorImpersonationType: IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE, +} +impl ::core::marker::Copy for IKEEXT_EM_POLICY2 {} +impl ::core::clone::Clone for IKEEXT_EM_POLICY2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_INTEGRITY_ALGORITHM0 { + pub algoIdentifier: IKEEXT_INTEGRITY_TYPE, +} +impl ::core::marker::Copy for IKEEXT_INTEGRITY_ALGORITHM0 {} +impl ::core::clone::Clone for IKEEXT_INTEGRITY_ALGORITHM0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_IPV6_CGA_AUTHENTICATION0 { + pub keyContainerName: ::windows_sys::core::PWSTR, + pub cspName: ::windows_sys::core::PWSTR, + pub cspType: u32, + pub cgaModifier: FWP_BYTE_ARRAY16, + pub cgaCollisionCount: u8, +} +impl ::core::marker::Copy for IKEEXT_IPV6_CGA_AUTHENTICATION0 {} +impl ::core::clone::Clone for IKEEXT_IPV6_CGA_AUTHENTICATION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 { + pub totalSocketReceiveFailures: u32, + pub totalSocketSendFailures: u32, +} +impl ::core::marker::Copy for IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 {} +impl ::core::clone::Clone for IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1 { + pub totalSocketReceiveFailures: u32, + pub totalSocketSendFailures: u32, +} +impl ::core::marker::Copy for IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1 {} +impl ::core::clone::Clone for IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 { + pub currentActiveMainModes: u32, + pub totalMainModesStarted: u32, + pub totalSuccessfulMainModes: u32, + pub totalFailedMainModes: u32, + pub totalResponderMainModes: u32, + pub currentNewResponderMainModes: u32, + pub currentActiveQuickModes: u32, + pub totalQuickModesStarted: u32, + pub totalSuccessfulQuickModes: u32, + pub totalFailedQuickModes: u32, + pub totalAcquires: u32, + pub totalReinitAcquires: u32, + pub currentActiveExtendedModes: u32, + pub totalExtendedModesStarted: u32, + pub totalSuccessfulExtendedModes: u32, + pub totalFailedExtendedModes: u32, + pub totalImpersonationExtendedModes: u32, + pub totalImpersonationMainModes: u32, +} +impl ::core::marker::Copy for IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 {} +impl ::core::clone::Clone for IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1 { + pub currentActiveMainModes: u32, + pub totalMainModesStarted: u32, + pub totalSuccessfulMainModes: u32, + pub totalFailedMainModes: u32, + pub totalResponderMainModes: u32, + pub currentNewResponderMainModes: u32, + pub currentActiveQuickModes: u32, + pub totalQuickModesStarted: u32, + pub totalSuccessfulQuickModes: u32, + pub totalFailedQuickModes: u32, + pub totalAcquires: u32, + pub totalReinitAcquires: u32, + pub currentActiveExtendedModes: u32, + pub totalExtendedModesStarted: u32, + pub totalSuccessfulExtendedModes: u32, + pub totalFailedExtendedModes: u32, + pub totalImpersonationExtendedModes: u32, + pub totalImpersonationMainModes: u32, +} +impl ::core::marker::Copy for IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1 {} +impl ::core::clone::Clone for IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_KERBEROS_AUTHENTICATION0 { + pub flags: IKEEXT_KERBEROS_AUTHENTICATION_FLAGS, +} +impl ::core::marker::Copy for IKEEXT_KERBEROS_AUTHENTICATION0 {} +impl ::core::clone::Clone for IKEEXT_KERBEROS_AUTHENTICATION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_KERBEROS_AUTHENTICATION1 { + pub flags: IKEEXT_KERBEROS_AUTHENTICATION_FLAGS, + pub proxyServer: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for IKEEXT_KERBEROS_AUTHENTICATION1 {} +impl ::core::clone::Clone for IKEEXT_KERBEROS_AUTHENTICATION1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_KEYMODULE_STATISTICS0 { + pub v4Statistics: IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0, + pub v6Statistics: IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0, + pub errorFrequencyTable: [u32; 97], + pub mainModeNegotiationTime: u32, + pub quickModeNegotiationTime: u32, + pub extendedModeNegotiationTime: u32, +} +impl ::core::marker::Copy for IKEEXT_KEYMODULE_STATISTICS0 {} +impl ::core::clone::Clone for IKEEXT_KEYMODULE_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_KEYMODULE_STATISTICS1 { + pub v4Statistics: IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1, + pub v6Statistics: IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS1, + pub errorFrequencyTable: [u32; 97], + pub mainModeNegotiationTime: u32, + pub quickModeNegotiationTime: u32, + pub extendedModeNegotiationTime: u32, +} +impl ::core::marker::Copy for IKEEXT_KEYMODULE_STATISTICS1 {} +impl ::core::clone::Clone for IKEEXT_KEYMODULE_STATISTICS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_NAME_CREDENTIAL0 { + pub principalName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for IKEEXT_NAME_CREDENTIAL0 {} +impl ::core::clone::Clone for IKEEXT_NAME_CREDENTIAL0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_NTLM_V2_AUTHENTICATION0 { + pub flags: u32, +} +impl ::core::marker::Copy for IKEEXT_NTLM_V2_AUTHENTICATION0 {} +impl ::core::clone::Clone for IKEEXT_NTLM_V2_AUTHENTICATION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_POLICY0 { + pub softExpirationTime: u32, + pub numAuthenticationMethods: u32, + pub authenticationMethods: *mut IKEEXT_AUTHENTICATION_METHOD0, + pub initiatorImpersonationType: IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE, + pub numIkeProposals: u32, + pub ikeProposals: *mut IKEEXT_PROPOSAL0, + pub flags: IKEEXT_POLICY_FLAG, + pub maxDynamicFilters: u32, +} +impl ::core::marker::Copy for IKEEXT_POLICY0 {} +impl ::core::clone::Clone for IKEEXT_POLICY0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_POLICY1 { + pub softExpirationTime: u32, + pub numAuthenticationMethods: u32, + pub authenticationMethods: *mut IKEEXT_AUTHENTICATION_METHOD1, + pub initiatorImpersonationType: IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE, + pub numIkeProposals: u32, + pub ikeProposals: *mut IKEEXT_PROPOSAL0, + pub flags: IKEEXT_POLICY_FLAG, + pub maxDynamicFilters: u32, + pub retransmitDurationSecs: u32, +} +impl ::core::marker::Copy for IKEEXT_POLICY1 {} +impl ::core::clone::Clone for IKEEXT_POLICY1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_POLICY2 { + pub softExpirationTime: u32, + pub numAuthenticationMethods: u32, + pub authenticationMethods: *mut IKEEXT_AUTHENTICATION_METHOD2, + pub initiatorImpersonationType: IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE, + pub numIkeProposals: u32, + pub ikeProposals: *mut IKEEXT_PROPOSAL0, + pub flags: IKEEXT_POLICY_FLAG, + pub maxDynamicFilters: u32, + pub retransmitDurationSecs: u32, +} +impl ::core::marker::Copy for IKEEXT_POLICY2 {} +impl ::core::clone::Clone for IKEEXT_POLICY2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_PRESHARED_KEY_AUTHENTICATION0 { + pub presharedKey: FWP_BYTE_BLOB, +} +impl ::core::marker::Copy for IKEEXT_PRESHARED_KEY_AUTHENTICATION0 {} +impl ::core::clone::Clone for IKEEXT_PRESHARED_KEY_AUTHENTICATION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_PRESHARED_KEY_AUTHENTICATION1 { + pub presharedKey: FWP_BYTE_BLOB, + pub flags: IKEEXT_PRESHARED_KEY_AUTHENTICATION_FLAGS, +} +impl ::core::marker::Copy for IKEEXT_PRESHARED_KEY_AUTHENTICATION1 {} +impl ::core::clone::Clone for IKEEXT_PRESHARED_KEY_AUTHENTICATION1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_PROPOSAL0 { + pub cipherAlgorithm: IKEEXT_CIPHER_ALGORITHM0, + pub integrityAlgorithm: IKEEXT_INTEGRITY_ALGORITHM0, + pub maxLifetimeSeconds: u32, + pub dhGroup: IKEEXT_DH_GROUP, + pub quickModeLimit: u32, +} +impl ::core::marker::Copy for IKEEXT_PROPOSAL0 {} +impl ::core::clone::Clone for IKEEXT_PROPOSAL0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_RESERVED_AUTHENTICATION0 { + pub flags: IKEEXT_RESERVED_AUTHENTICATION_FLAGS, +} +impl ::core::marker::Copy for IKEEXT_RESERVED_AUTHENTICATION0 {} +impl ::core::clone::Clone for IKEEXT_RESERVED_AUTHENTICATION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_SA_DETAILS0 { + pub saId: u64, + pub keyModuleType: IKEEXT_KEY_MODULE_TYPE, + pub ipVersion: FWP_IP_VERSION, + pub Anonymous: IKEEXT_SA_DETAILS0_0, + pub ikeTraffic: IKEEXT_TRAFFIC0, + pub ikeProposal: IKEEXT_PROPOSAL0, + pub cookiePair: IKEEXT_COOKIE_PAIR0, + pub ikeCredentials: IKEEXT_CREDENTIALS0, + pub ikePolicyKey: ::windows_sys::core::GUID, + pub virtualIfTunnelId: u64, +} +impl ::core::marker::Copy for IKEEXT_SA_DETAILS0 {} +impl ::core::clone::Clone for IKEEXT_SA_DETAILS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_SA_DETAILS0_0 { + pub v4UdpEncapsulation: *mut IPSEC_V4_UDP_ENCAPSULATION0, +} +impl ::core::marker::Copy for IKEEXT_SA_DETAILS0_0 {} +impl ::core::clone::Clone for IKEEXT_SA_DETAILS0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_SA_DETAILS1 { + pub saId: u64, + pub keyModuleType: IKEEXT_KEY_MODULE_TYPE, + pub ipVersion: FWP_IP_VERSION, + pub Anonymous: IKEEXT_SA_DETAILS1_0, + pub ikeTraffic: IKEEXT_TRAFFIC0, + pub ikeProposal: IKEEXT_PROPOSAL0, + pub cookiePair: IKEEXT_COOKIE_PAIR0, + pub ikeCredentials: IKEEXT_CREDENTIALS1, + pub ikePolicyKey: ::windows_sys::core::GUID, + pub virtualIfTunnelId: u64, + pub correlationKey: FWP_BYTE_BLOB, +} +impl ::core::marker::Copy for IKEEXT_SA_DETAILS1 {} +impl ::core::clone::Clone for IKEEXT_SA_DETAILS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_SA_DETAILS1_0 { + pub v4UdpEncapsulation: *mut IPSEC_V4_UDP_ENCAPSULATION0, +} +impl ::core::marker::Copy for IKEEXT_SA_DETAILS1_0 {} +impl ::core::clone::Clone for IKEEXT_SA_DETAILS1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_SA_DETAILS2 { + pub saId: u64, + pub keyModuleType: IKEEXT_KEY_MODULE_TYPE, + pub ipVersion: FWP_IP_VERSION, + pub Anonymous: IKEEXT_SA_DETAILS2_0, + pub ikeTraffic: IKEEXT_TRAFFIC0, + pub ikeProposal: IKEEXT_PROPOSAL0, + pub cookiePair: IKEEXT_COOKIE_PAIR0, + pub ikeCredentials: IKEEXT_CREDENTIALS2, + pub ikePolicyKey: ::windows_sys::core::GUID, + pub virtualIfTunnelId: u64, + pub correlationKey: FWP_BYTE_BLOB, +} +impl ::core::marker::Copy for IKEEXT_SA_DETAILS2 {} +impl ::core::clone::Clone for IKEEXT_SA_DETAILS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_SA_DETAILS2_0 { + pub v4UdpEncapsulation: *mut IPSEC_V4_UDP_ENCAPSULATION0, +} +impl ::core::marker::Copy for IKEEXT_SA_DETAILS2_0 {} +impl ::core::clone::Clone for IKEEXT_SA_DETAILS2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct IKEEXT_SA_ENUM_TEMPLATE0 { + pub localSubNet: FWP_CONDITION_VALUE0, + pub remoteSubNet: FWP_CONDITION_VALUE0, + pub localMainModeCertHash: FWP_BYTE_BLOB, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for IKEEXT_SA_ENUM_TEMPLATE0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for IKEEXT_SA_ENUM_TEMPLATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_STATISTICS0 { + pub ikeStatistics: IKEEXT_KEYMODULE_STATISTICS0, + pub authipStatistics: IKEEXT_KEYMODULE_STATISTICS0, + pub commonStatistics: IKEEXT_COMMON_STATISTICS0, +} +impl ::core::marker::Copy for IKEEXT_STATISTICS0 {} +impl ::core::clone::Clone for IKEEXT_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_STATISTICS1 { + pub ikeStatistics: IKEEXT_KEYMODULE_STATISTICS1, + pub authipStatistics: IKEEXT_KEYMODULE_STATISTICS1, + pub ikeV2Statistics: IKEEXT_KEYMODULE_STATISTICS1, + pub commonStatistics: IKEEXT_COMMON_STATISTICS1, +} +impl ::core::marker::Copy for IKEEXT_STATISTICS1 {} +impl ::core::clone::Clone for IKEEXT_STATISTICS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKEEXT_TRAFFIC0 { + pub ipVersion: FWP_IP_VERSION, + pub Anonymous1: IKEEXT_TRAFFIC0_0, + pub Anonymous2: IKEEXT_TRAFFIC0_1, + pub authIpFilterId: u64, +} +impl ::core::marker::Copy for IKEEXT_TRAFFIC0 {} +impl ::core::clone::Clone for IKEEXT_TRAFFIC0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_TRAFFIC0_0 { + pub localV4Address: u32, + pub localV6Address: [u8; 16], +} +impl ::core::marker::Copy for IKEEXT_TRAFFIC0_0 {} +impl ::core::clone::Clone for IKEEXT_TRAFFIC0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKEEXT_TRAFFIC0_1 { + pub remoteV4Address: u32, + pub remoteV6Address: [u8; 16], +} +impl ::core::marker::Copy for IKEEXT_TRAFFIC0_1 {} +impl ::core::clone::Clone for IKEEXT_TRAFFIC0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_ADDRESS_INFO0 { + pub numV4Addresses: u32, + pub v4Addresses: *mut u32, + pub numV6Addresses: u32, + pub v6Addresses: *mut FWP_BYTE_ARRAY16, +} +impl ::core::marker::Copy for IPSEC_ADDRESS_INFO0 {} +impl ::core::clone::Clone for IPSEC_ADDRESS_INFO0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_AGGREGATE_DROP_PACKET_STATISTICS0 { + pub invalidSpisOnInbound: u32, + pub decryptionFailuresOnInbound: u32, + pub authenticationFailuresOnInbound: u32, + pub udpEspValidationFailuresOnInbound: u32, + pub replayCheckFailuresOnInbound: u32, + pub invalidClearTextInbound: u32, + pub saNotInitializedOnInbound: u32, + pub receiveOverIncorrectSaInbound: u32, + pub secureReceivesNotMatchingFilters: u32, +} +impl ::core::marker::Copy for IPSEC_AGGREGATE_DROP_PACKET_STATISTICS0 {} +impl ::core::clone::Clone for IPSEC_AGGREGATE_DROP_PACKET_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_AGGREGATE_DROP_PACKET_STATISTICS1 { + pub invalidSpisOnInbound: u32, + pub decryptionFailuresOnInbound: u32, + pub authenticationFailuresOnInbound: u32, + pub udpEspValidationFailuresOnInbound: u32, + pub replayCheckFailuresOnInbound: u32, + pub invalidClearTextInbound: u32, + pub saNotInitializedOnInbound: u32, + pub receiveOverIncorrectSaInbound: u32, + pub secureReceivesNotMatchingFilters: u32, + pub totalDropPacketsInbound: u32, +} +impl ::core::marker::Copy for IPSEC_AGGREGATE_DROP_PACKET_STATISTICS1 {} +impl ::core::clone::Clone for IPSEC_AGGREGATE_DROP_PACKET_STATISTICS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_AGGREGATE_SA_STATISTICS0 { + pub activeSas: u32, + pub pendingSaNegotiations: u32, + pub totalSasAdded: u32, + pub totalSasDeleted: u32, + pub successfulRekeys: u32, + pub activeTunnels: u32, + pub offloadedSas: u32, +} +impl ::core::marker::Copy for IPSEC_AGGREGATE_SA_STATISTICS0 {} +impl ::core::clone::Clone for IPSEC_AGGREGATE_SA_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_AH_DROP_PACKET_STATISTICS0 { + pub invalidSpisOnInbound: u32, + pub authenticationFailuresOnInbound: u32, + pub replayCheckFailuresOnInbound: u32, + pub saNotInitializedOnInbound: u32, +} +impl ::core::marker::Copy for IPSEC_AH_DROP_PACKET_STATISTICS0 {} +impl ::core::clone::Clone for IPSEC_AH_DROP_PACKET_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_AUTH_AND_CIPHER_TRANSFORM0 { + pub authTransform: IPSEC_AUTH_TRANSFORM0, + pub cipherTransform: IPSEC_CIPHER_TRANSFORM0, +} +impl ::core::marker::Copy for IPSEC_AUTH_AND_CIPHER_TRANSFORM0 {} +impl ::core::clone::Clone for IPSEC_AUTH_AND_CIPHER_TRANSFORM0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_AUTH_TRANSFORM0 { + pub authTransformId: IPSEC_AUTH_TRANSFORM_ID0, + pub cryptoModuleId: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for IPSEC_AUTH_TRANSFORM0 {} +impl ::core::clone::Clone for IPSEC_AUTH_TRANSFORM0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_AUTH_TRANSFORM_ID0 { + pub authType: IPSEC_AUTH_TYPE, + pub authConfig: u8, +} +impl ::core::marker::Copy for IPSEC_AUTH_TRANSFORM_ID0 {} +impl ::core::clone::Clone for IPSEC_AUTH_TRANSFORM_ID0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_CIPHER_TRANSFORM0 { + pub cipherTransformId: IPSEC_CIPHER_TRANSFORM_ID0, + pub cryptoModuleId: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for IPSEC_CIPHER_TRANSFORM0 {} +impl ::core::clone::Clone for IPSEC_CIPHER_TRANSFORM0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_CIPHER_TRANSFORM_ID0 { + pub cipherType: IPSEC_CIPHER_TYPE, + pub cipherConfig: u8, +} +impl ::core::marker::Copy for IPSEC_CIPHER_TRANSFORM_ID0 {} +impl ::core::clone::Clone for IPSEC_CIPHER_TRANSFORM_ID0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_DOSP_OPTIONS0 { + pub stateIdleTimeoutSeconds: u32, + pub perIPRateLimitQueueIdleTimeoutSeconds: u32, + pub ipV6IPsecUnauthDscp: u8, + pub ipV6IPsecUnauthRateLimitBytesPerSec: u32, + pub ipV6IPsecUnauthPerIPRateLimitBytesPerSec: u32, + pub ipV6IPsecAuthDscp: u8, + pub ipV6IPsecAuthRateLimitBytesPerSec: u32, + pub icmpV6Dscp: u8, + pub icmpV6RateLimitBytesPerSec: u32, + pub ipV6FilterExemptDscp: u8, + pub ipV6FilterExemptRateLimitBytesPerSec: u32, + pub defBlockExemptDscp: u8, + pub defBlockExemptRateLimitBytesPerSec: u32, + pub maxStateEntries: u32, + pub maxPerIPRateLimitQueues: u32, + pub flags: IPSEC_DOSP_FLAGS, + pub numPublicIFLuids: u32, + pub publicIFLuids: *mut u64, + pub numInternalIFLuids: u32, + pub internalIFLuids: *mut u64, + pub publicV6AddrMask: FWP_V6_ADDR_AND_MASK, + pub internalV6AddrMask: FWP_V6_ADDR_AND_MASK, +} +impl ::core::marker::Copy for IPSEC_DOSP_OPTIONS0 {} +impl ::core::clone::Clone for IPSEC_DOSP_OPTIONS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_DOSP_STATE0 { + pub publicHostV6Addr: [u8; 16], + pub internalHostV6Addr: [u8; 16], + pub totalInboundIPv6IPsecAuthPackets: u64, + pub totalOutboundIPv6IPsecAuthPackets: u64, + pub durationSecs: u32, +} +impl ::core::marker::Copy for IPSEC_DOSP_STATE0 {} +impl ::core::clone::Clone for IPSEC_DOSP_STATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_DOSP_STATE_ENUM_TEMPLATE0 { + pub publicV6AddrMask: FWP_V6_ADDR_AND_MASK, + pub internalV6AddrMask: FWP_V6_ADDR_AND_MASK, +} +impl ::core::marker::Copy for IPSEC_DOSP_STATE_ENUM_TEMPLATE0 {} +impl ::core::clone::Clone for IPSEC_DOSP_STATE_ENUM_TEMPLATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_DOSP_STATISTICS0 { + pub totalStateEntriesCreated: u64, + pub currentStateEntries: u64, + pub totalInboundAllowedIPv6IPsecUnauthPkts: u64, + pub totalInboundRatelimitDiscardedIPv6IPsecUnauthPkts: u64, + pub totalInboundPerIPRatelimitDiscardedIPv6IPsecUnauthPkts: u64, + pub totalInboundOtherDiscardedIPv6IPsecUnauthPkts: u64, + pub totalInboundAllowedIPv6IPsecAuthPkts: u64, + pub totalInboundRatelimitDiscardedIPv6IPsecAuthPkts: u64, + pub totalInboundOtherDiscardedIPv6IPsecAuthPkts: u64, + pub totalInboundAllowedICMPv6Pkts: u64, + pub totalInboundRatelimitDiscardedICMPv6Pkts: u64, + pub totalInboundAllowedIPv6FilterExemptPkts: u64, + pub totalInboundRatelimitDiscardedIPv6FilterExemptPkts: u64, + pub totalInboundDiscardedIPv6FilterBlockPkts: u64, + pub totalInboundAllowedDefBlockExemptPkts: u64, + pub totalInboundRatelimitDiscardedDefBlockExemptPkts: u64, + pub totalInboundDiscardedDefBlockPkts: u64, + pub currentInboundIPv6IPsecUnauthPerIPRateLimitQueues: u64, +} +impl ::core::marker::Copy for IPSEC_DOSP_STATISTICS0 {} +impl ::core::clone::Clone for IPSEC_DOSP_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_ESP_DROP_PACKET_STATISTICS0 { + pub invalidSpisOnInbound: u32, + pub decryptionFailuresOnInbound: u32, + pub authenticationFailuresOnInbound: u32, + pub replayCheckFailuresOnInbound: u32, + pub saNotInitializedOnInbound: u32, +} +impl ::core::marker::Copy for IPSEC_ESP_DROP_PACKET_STATISTICS0 {} +impl ::core::clone::Clone for IPSEC_ESP_DROP_PACKET_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_GETSPI0 { + pub inboundIpsecTraffic: IPSEC_TRAFFIC0, + pub ipVersion: FWP_IP_VERSION, + pub Anonymous: IPSEC_GETSPI0_0, + pub rngCryptoModuleID: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for IPSEC_GETSPI0 {} +impl ::core::clone::Clone for IPSEC_GETSPI0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_GETSPI0_0 { + pub inboundUdpEncapsulation: *mut IPSEC_V4_UDP_ENCAPSULATION0, +} +impl ::core::marker::Copy for IPSEC_GETSPI0_0 {} +impl ::core::clone::Clone for IPSEC_GETSPI0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_GETSPI1 { + pub inboundIpsecTraffic: IPSEC_TRAFFIC1, + pub ipVersion: FWP_IP_VERSION, + pub Anonymous: IPSEC_GETSPI1_0, + pub rngCryptoModuleID: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for IPSEC_GETSPI1 {} +impl ::core::clone::Clone for IPSEC_GETSPI1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_GETSPI1_0 { + pub inboundUdpEncapsulation: *mut IPSEC_V4_UDP_ENCAPSULATION0, +} +impl ::core::marker::Copy for IPSEC_GETSPI1_0 {} +impl ::core::clone::Clone for IPSEC_GETSPI1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_ID0 { + pub mmTargetName: ::windows_sys::core::PWSTR, + pub emTargetName: ::windows_sys::core::PWSTR, + pub numTokens: u32, + pub tokens: *mut IPSEC_TOKEN0, + pub explicitCredentials: u64, + pub logonId: u64, +} +impl ::core::marker::Copy for IPSEC_ID0 {} +impl ::core::clone::Clone for IPSEC_ID0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_KEYING_POLICY0 { + pub numKeyMods: u32, + pub keyModKeys: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for IPSEC_KEYING_POLICY0 {} +impl ::core::clone::Clone for IPSEC_KEYING_POLICY0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_KEYING_POLICY1 { + pub numKeyMods: u32, + pub keyModKeys: *mut ::windows_sys::core::GUID, + pub flags: u32, +} +impl ::core::marker::Copy for IPSEC_KEYING_POLICY1 {} +impl ::core::clone::Clone for IPSEC_KEYING_POLICY1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_KEYMODULE_STATE0 { + pub keyModuleKey: ::windows_sys::core::GUID, + pub stateBlob: FWP_BYTE_BLOB, +} +impl ::core::marker::Copy for IPSEC_KEYMODULE_STATE0 {} +impl ::core::clone::Clone for IPSEC_KEYMODULE_STATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_KEY_MANAGER0 { + pub keyManagerKey: ::windows_sys::core::GUID, + pub displayData: FWPM_DISPLAY_DATA0, + pub flags: u32, + pub keyDictationTimeoutHint: u8, +} +impl ::core::marker::Copy for IPSEC_KEY_MANAGER0 {} +impl ::core::clone::Clone for IPSEC_KEY_MANAGER0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct IPSEC_KEY_MANAGER_CALLBACKS0 { + pub reserved: ::windows_sys::core::GUID, + pub flags: u32, + pub keyDictationCheck: IPSEC_KEY_MANAGER_KEY_DICTATION_CHECK0, + pub keyDictation: IPSEC_KEY_MANAGER_DICTATE_KEY0, + pub keyNotify: IPSEC_KEY_MANAGER_NOTIFY_KEY0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for IPSEC_KEY_MANAGER_CALLBACKS0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for IPSEC_KEY_MANAGER_CALLBACKS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_PROPOSAL0 { + pub lifetime: IPSEC_SA_LIFETIME0, + pub numSaTransforms: u32, + pub saTransforms: *mut IPSEC_SA_TRANSFORM0, + pub pfsGroup: IPSEC_PFS_GROUP, +} +impl ::core::marker::Copy for IPSEC_PROPOSAL0 {} +impl ::core::clone::Clone for IPSEC_PROPOSAL0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_SA0 { + pub spi: u32, + pub saTransformType: IPSEC_TRANSFORM_TYPE, + pub Anonymous: IPSEC_SA0_0, +} +impl ::core::marker::Copy for IPSEC_SA0 {} +impl ::core::clone::Clone for IPSEC_SA0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_SA0_0 { + pub ahInformation: *mut IPSEC_SA_AUTH_INFORMATION0, + pub espAuthInformation: *mut IPSEC_SA_AUTH_INFORMATION0, + pub espCipherInformation: *mut IPSEC_SA_CIPHER_INFORMATION0, + pub espAuthAndCipherInformation: *mut IPSEC_SA_AUTH_AND_CIPHER_INFORMATION0, + pub espAuthFwInformation: *mut IPSEC_SA_AUTH_INFORMATION0, +} +impl ::core::marker::Copy for IPSEC_SA0_0 {} +impl ::core::clone::Clone for IPSEC_SA0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_SA_AUTH_AND_CIPHER_INFORMATION0 { + pub saCipherInformation: IPSEC_SA_CIPHER_INFORMATION0, + pub saAuthInformation: IPSEC_SA_AUTH_INFORMATION0, +} +impl ::core::marker::Copy for IPSEC_SA_AUTH_AND_CIPHER_INFORMATION0 {} +impl ::core::clone::Clone for IPSEC_SA_AUTH_AND_CIPHER_INFORMATION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_SA_AUTH_INFORMATION0 { + pub authTransform: IPSEC_AUTH_TRANSFORM0, + pub authKey: FWP_BYTE_BLOB, +} +impl ::core::marker::Copy for IPSEC_SA_AUTH_INFORMATION0 {} +impl ::core::clone::Clone for IPSEC_SA_AUTH_INFORMATION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_SA_BUNDLE0 { + pub flags: IPSEC_SA_BUNDLE_FLAGS, + pub lifetime: IPSEC_SA_LIFETIME0, + pub idleTimeoutSeconds: u32, + pub ndAllowClearTimeoutSeconds: u32, + pub ipsecId: *mut IPSEC_ID0, + pub napContext: u32, + pub qmSaId: u32, + pub numSAs: u32, + pub saList: *mut IPSEC_SA0, + pub keyModuleState: *mut IPSEC_KEYMODULE_STATE0, + pub ipVersion: FWP_IP_VERSION, + pub Anonymous: IPSEC_SA_BUNDLE0_0, + pub mmSaId: u64, + pub pfsGroup: IPSEC_PFS_GROUP, +} +impl ::core::marker::Copy for IPSEC_SA_BUNDLE0 {} +impl ::core::clone::Clone for IPSEC_SA_BUNDLE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_SA_BUNDLE0_0 { + pub peerV4PrivateAddress: u32, +} +impl ::core::marker::Copy for IPSEC_SA_BUNDLE0_0 {} +impl ::core::clone::Clone for IPSEC_SA_BUNDLE0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_SA_BUNDLE1 { + pub flags: IPSEC_SA_BUNDLE_FLAGS, + pub lifetime: IPSEC_SA_LIFETIME0, + pub idleTimeoutSeconds: u32, + pub ndAllowClearTimeoutSeconds: u32, + pub ipsecId: *mut IPSEC_ID0, + pub napContext: u32, + pub qmSaId: u32, + pub numSAs: u32, + pub saList: *mut IPSEC_SA0, + pub keyModuleState: *mut IPSEC_KEYMODULE_STATE0, + pub ipVersion: FWP_IP_VERSION, + pub Anonymous: IPSEC_SA_BUNDLE1_0, + pub mmSaId: u64, + pub pfsGroup: IPSEC_PFS_GROUP, + pub saLookupContext: ::windows_sys::core::GUID, + pub qmFilterId: u64, +} +impl ::core::marker::Copy for IPSEC_SA_BUNDLE1 {} +impl ::core::clone::Clone for IPSEC_SA_BUNDLE1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_SA_BUNDLE1_0 { + pub peerV4PrivateAddress: u32, +} +impl ::core::marker::Copy for IPSEC_SA_BUNDLE1_0 {} +impl ::core::clone::Clone for IPSEC_SA_BUNDLE1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_SA_CIPHER_INFORMATION0 { + pub cipherTransform: IPSEC_CIPHER_TRANSFORM0, + pub cipherKey: FWP_BYTE_BLOB, +} +impl ::core::marker::Copy for IPSEC_SA_CIPHER_INFORMATION0 {} +impl ::core::clone::Clone for IPSEC_SA_CIPHER_INFORMATION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct IPSEC_SA_CONTEXT0 { + pub saContextId: u64, + pub inboundSa: *mut IPSEC_SA_DETAILS0, + pub outboundSa: *mut IPSEC_SA_DETAILS0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for IPSEC_SA_CONTEXT0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for IPSEC_SA_CONTEXT0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct IPSEC_SA_CONTEXT1 { + pub saContextId: u64, + pub inboundSa: *mut IPSEC_SA_DETAILS1, + pub outboundSa: *mut IPSEC_SA_DETAILS1, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for IPSEC_SA_CONTEXT1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for IPSEC_SA_CONTEXT1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_SA_CONTEXT_CHANGE0 { + pub changeType: IPSEC_SA_CONTEXT_EVENT_TYPE0, + pub saContextId: u64, +} +impl ::core::marker::Copy for IPSEC_SA_CONTEXT_CHANGE0 {} +impl ::core::clone::Clone for IPSEC_SA_CONTEXT_CHANGE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct IPSEC_SA_CONTEXT_ENUM_TEMPLATE0 { + pub localSubNet: FWP_CONDITION_VALUE0, + pub remoteSubNet: FWP_CONDITION_VALUE0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for IPSEC_SA_CONTEXT_ENUM_TEMPLATE0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for IPSEC_SA_CONTEXT_ENUM_TEMPLATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct IPSEC_SA_CONTEXT_SUBSCRIPTION0 { + pub enumTemplate: *mut IPSEC_SA_CONTEXT_ENUM_TEMPLATE0, + pub flags: u32, + pub sessionKey: ::windows_sys::core::GUID, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for IPSEC_SA_CONTEXT_SUBSCRIPTION0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for IPSEC_SA_CONTEXT_SUBSCRIPTION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct IPSEC_SA_DETAILS0 { + pub ipVersion: FWP_IP_VERSION, + pub saDirection: FWP_DIRECTION, + pub traffic: IPSEC_TRAFFIC0, + pub saBundle: IPSEC_SA_BUNDLE0, + pub Anonymous: IPSEC_SA_DETAILS0_0, + pub transportFilter: *mut FWPM_FILTER0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for IPSEC_SA_DETAILS0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for IPSEC_SA_DETAILS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union IPSEC_SA_DETAILS0_0 { + pub udpEncapsulation: *mut IPSEC_V4_UDP_ENCAPSULATION0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for IPSEC_SA_DETAILS0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for IPSEC_SA_DETAILS0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct IPSEC_SA_DETAILS1 { + pub ipVersion: FWP_IP_VERSION, + pub saDirection: FWP_DIRECTION, + pub traffic: IPSEC_TRAFFIC1, + pub saBundle: IPSEC_SA_BUNDLE1, + pub Anonymous: IPSEC_SA_DETAILS1_0, + pub transportFilter: *mut FWPM_FILTER0, + pub virtualIfTunnelInfo: IPSEC_VIRTUAL_IF_TUNNEL_INFO0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for IPSEC_SA_DETAILS1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for IPSEC_SA_DETAILS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union IPSEC_SA_DETAILS1_0 { + pub udpEncapsulation: *mut IPSEC_V4_UDP_ENCAPSULATION0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for IPSEC_SA_DETAILS1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for IPSEC_SA_DETAILS1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_SA_ENUM_TEMPLATE0 { + pub saDirection: FWP_DIRECTION, +} +impl ::core::marker::Copy for IPSEC_SA_ENUM_TEMPLATE0 {} +impl ::core::clone::Clone for IPSEC_SA_ENUM_TEMPLATE0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_SA_IDLE_TIMEOUT0 { + pub idleTimeoutSeconds: u32, + pub idleTimeoutSecondsFailOver: u32, +} +impl ::core::marker::Copy for IPSEC_SA_IDLE_TIMEOUT0 {} +impl ::core::clone::Clone for IPSEC_SA_IDLE_TIMEOUT0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_SA_LIFETIME0 { + pub lifetimeSeconds: u32, + pub lifetimeKilobytes: u32, + pub lifetimePackets: u32, +} +impl ::core::marker::Copy for IPSEC_SA_LIFETIME0 {} +impl ::core::clone::Clone for IPSEC_SA_LIFETIME0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_SA_TRANSFORM0 { + pub ipsecTransformType: IPSEC_TRANSFORM_TYPE, + pub Anonymous: IPSEC_SA_TRANSFORM0_0, +} +impl ::core::marker::Copy for IPSEC_SA_TRANSFORM0 {} +impl ::core::clone::Clone for IPSEC_SA_TRANSFORM0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_SA_TRANSFORM0_0 { + pub ahTransform: *mut IPSEC_AUTH_TRANSFORM0, + pub espAuthTransform: *mut IPSEC_AUTH_TRANSFORM0, + pub espCipherTransform: *mut IPSEC_CIPHER_TRANSFORM0, + pub espAuthAndCipherTransform: *mut IPSEC_AUTH_AND_CIPHER_TRANSFORM0, + pub espAuthFwTransform: *mut IPSEC_AUTH_TRANSFORM0, +} +impl ::core::marker::Copy for IPSEC_SA_TRANSFORM0_0 {} +impl ::core::clone::Clone for IPSEC_SA_TRANSFORM0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_STATISTICS0 { + pub aggregateSaStatistics: IPSEC_AGGREGATE_SA_STATISTICS0, + pub espDropPacketStatistics: IPSEC_ESP_DROP_PACKET_STATISTICS0, + pub ahDropPacketStatistics: IPSEC_AH_DROP_PACKET_STATISTICS0, + pub aggregateDropPacketStatistics: IPSEC_AGGREGATE_DROP_PACKET_STATISTICS0, + pub inboundTrafficStatistics: IPSEC_TRAFFIC_STATISTICS0, + pub outboundTrafficStatistics: IPSEC_TRAFFIC_STATISTICS0, +} +impl ::core::marker::Copy for IPSEC_STATISTICS0 {} +impl ::core::clone::Clone for IPSEC_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_STATISTICS1 { + pub aggregateSaStatistics: IPSEC_AGGREGATE_SA_STATISTICS0, + pub espDropPacketStatistics: IPSEC_ESP_DROP_PACKET_STATISTICS0, + pub ahDropPacketStatistics: IPSEC_AH_DROP_PACKET_STATISTICS0, + pub aggregateDropPacketStatistics: IPSEC_AGGREGATE_DROP_PACKET_STATISTICS1, + pub inboundTrafficStatistics: IPSEC_TRAFFIC_STATISTICS1, + pub outboundTrafficStatistics: IPSEC_TRAFFIC_STATISTICS1, +} +impl ::core::marker::Copy for IPSEC_STATISTICS1 {} +impl ::core::clone::Clone for IPSEC_STATISTICS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TOKEN0 { + pub r#type: IPSEC_TOKEN_TYPE, + pub principal: IPSEC_TOKEN_PRINCIPAL, + pub mode: IPSEC_TOKEN_MODE, + pub token: u64, +} +impl ::core::marker::Copy for IPSEC_TOKEN0 {} +impl ::core::clone::Clone for IPSEC_TOKEN0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TRAFFIC0 { + pub ipVersion: FWP_IP_VERSION, + pub Anonymous1: IPSEC_TRAFFIC0_0, + pub Anonymous2: IPSEC_TRAFFIC0_1, + pub trafficType: IPSEC_TRAFFIC_TYPE, + pub Anonymous3: IPSEC_TRAFFIC0_2, + pub remotePort: u16, +} +impl ::core::marker::Copy for IPSEC_TRAFFIC0 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TRAFFIC0_0 { + pub localV4Address: u32, + pub localV6Address: [u8; 16], +} +impl ::core::marker::Copy for IPSEC_TRAFFIC0_0 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TRAFFIC0_1 { + pub remoteV4Address: u32, + pub remoteV6Address: [u8; 16], +} +impl ::core::marker::Copy for IPSEC_TRAFFIC0_1 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TRAFFIC0_2 { + pub ipsecFilterId: u64, + pub tunnelPolicyId: u64, +} +impl ::core::marker::Copy for IPSEC_TRAFFIC0_2 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TRAFFIC1 { + pub ipVersion: FWP_IP_VERSION, + pub Anonymous1: IPSEC_TRAFFIC1_0, + pub Anonymous2: IPSEC_TRAFFIC1_1, + pub trafficType: IPSEC_TRAFFIC_TYPE, + pub Anonymous3: IPSEC_TRAFFIC1_2, + pub remotePort: u16, + pub localPort: u16, + pub ipProtocol: u8, + pub localIfLuid: u64, + pub realIfProfileId: u32, +} +impl ::core::marker::Copy for IPSEC_TRAFFIC1 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TRAFFIC1_0 { + pub localV4Address: u32, + pub localV6Address: [u8; 16], +} +impl ::core::marker::Copy for IPSEC_TRAFFIC1_0 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TRAFFIC1_1 { + pub remoteV4Address: u32, + pub remoteV6Address: [u8; 16], +} +impl ::core::marker::Copy for IPSEC_TRAFFIC1_1 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TRAFFIC1_2 { + pub ipsecFilterId: u64, + pub tunnelPolicyId: u64, +} +impl ::core::marker::Copy for IPSEC_TRAFFIC1_2 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC1_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TRAFFIC_SELECTOR0 { + pub protocolId: u8, + pub portStart: u16, + pub portEnd: u16, + pub ipVersion: FWP_IP_VERSION, + pub Anonymous1: IPSEC_TRAFFIC_SELECTOR0_0, + pub Anonymous2: IPSEC_TRAFFIC_SELECTOR0_1, +} +impl ::core::marker::Copy for IPSEC_TRAFFIC_SELECTOR0 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC_SELECTOR0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TRAFFIC_SELECTOR0_0 { + pub startV4Address: u32, + pub startV6Address: [u8; 16], +} +impl ::core::marker::Copy for IPSEC_TRAFFIC_SELECTOR0_0 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC_SELECTOR0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TRAFFIC_SELECTOR0_1 { + pub endV4Address: u32, + pub endV6Address: [u8; 16], +} +impl ::core::marker::Copy for IPSEC_TRAFFIC_SELECTOR0_1 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC_SELECTOR0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TRAFFIC_SELECTOR_POLICY0 { + pub flags: u32, + pub numLocalTrafficSelectors: u32, + pub localTrafficSelectors: *mut IPSEC_TRAFFIC_SELECTOR0, + pub numRemoteTrafficSelectors: u32, + pub remoteTrafficSelectors: *mut IPSEC_TRAFFIC_SELECTOR0, +} +impl ::core::marker::Copy for IPSEC_TRAFFIC_SELECTOR_POLICY0 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC_SELECTOR_POLICY0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TRAFFIC_STATISTICS0 { + pub encryptedByteCount: u64, + pub authenticatedAHByteCount: u64, + pub authenticatedESPByteCount: u64, + pub transportByteCount: u64, + pub tunnelByteCount: u64, + pub offloadByteCount: u64, +} +impl ::core::marker::Copy for IPSEC_TRAFFIC_STATISTICS0 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC_STATISTICS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TRAFFIC_STATISTICS1 { + pub encryptedByteCount: u64, + pub authenticatedAHByteCount: u64, + pub authenticatedESPByteCount: u64, + pub transportByteCount: u64, + pub tunnelByteCount: u64, + pub offloadByteCount: u64, + pub totalSuccessfulPackets: u64, +} +impl ::core::marker::Copy for IPSEC_TRAFFIC_STATISTICS1 {} +impl ::core::clone::Clone for IPSEC_TRAFFIC_STATISTICS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TRANSPORT_POLICY0 { + pub numIpsecProposals: u32, + pub ipsecProposals: *mut IPSEC_PROPOSAL0, + pub flags: IPSEC_POLICY_FLAG, + pub ndAllowClearTimeoutSeconds: u32, + pub saIdleTimeout: IPSEC_SA_IDLE_TIMEOUT0, + pub emPolicy: *mut IKEEXT_EM_POLICY0, +} +impl ::core::marker::Copy for IPSEC_TRANSPORT_POLICY0 {} +impl ::core::clone::Clone for IPSEC_TRANSPORT_POLICY0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TRANSPORT_POLICY1 { + pub numIpsecProposals: u32, + pub ipsecProposals: *mut IPSEC_PROPOSAL0, + pub flags: IPSEC_POLICY_FLAG, + pub ndAllowClearTimeoutSeconds: u32, + pub saIdleTimeout: IPSEC_SA_IDLE_TIMEOUT0, + pub emPolicy: *mut IKEEXT_EM_POLICY1, +} +impl ::core::marker::Copy for IPSEC_TRANSPORT_POLICY1 {} +impl ::core::clone::Clone for IPSEC_TRANSPORT_POLICY1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TRANSPORT_POLICY2 { + pub numIpsecProposals: u32, + pub ipsecProposals: *mut IPSEC_PROPOSAL0, + pub flags: IPSEC_POLICY_FLAG, + pub ndAllowClearTimeoutSeconds: u32, + pub saIdleTimeout: IPSEC_SA_IDLE_TIMEOUT0, + pub emPolicy: *mut IKEEXT_EM_POLICY2, +} +impl ::core::marker::Copy for IPSEC_TRANSPORT_POLICY2 {} +impl ::core::clone::Clone for IPSEC_TRANSPORT_POLICY2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TUNNEL_ENDPOINT0 { + pub ipVersion: FWP_IP_VERSION, + pub Anonymous: IPSEC_TUNNEL_ENDPOINT0_0, +} +impl ::core::marker::Copy for IPSEC_TUNNEL_ENDPOINT0 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_ENDPOINT0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TUNNEL_ENDPOINT0_0 { + pub v4Address: u32, + pub v6Address: [u8; 16], +} +impl ::core::marker::Copy for IPSEC_TUNNEL_ENDPOINT0_0 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_ENDPOINT0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TUNNEL_ENDPOINTS0 { + pub ipVersion: FWP_IP_VERSION, + pub Anonymous1: IPSEC_TUNNEL_ENDPOINTS0_0, + pub Anonymous2: IPSEC_TUNNEL_ENDPOINTS0_1, +} +impl ::core::marker::Copy for IPSEC_TUNNEL_ENDPOINTS0 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_ENDPOINTS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TUNNEL_ENDPOINTS0_0 { + pub localV4Address: u32, + pub localV6Address: [u8; 16], +} +impl ::core::marker::Copy for IPSEC_TUNNEL_ENDPOINTS0_0 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_ENDPOINTS0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TUNNEL_ENDPOINTS0_1 { + pub remoteV4Address: u32, + pub remoteV6Address: [u8; 16], +} +impl ::core::marker::Copy for IPSEC_TUNNEL_ENDPOINTS0_1 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_ENDPOINTS0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TUNNEL_ENDPOINTS1 { + pub ipVersion: FWP_IP_VERSION, + pub Anonymous1: IPSEC_TUNNEL_ENDPOINTS1_0, + pub Anonymous2: IPSEC_TUNNEL_ENDPOINTS1_1, + pub localIfLuid: u64, +} +impl ::core::marker::Copy for IPSEC_TUNNEL_ENDPOINTS1 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_ENDPOINTS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TUNNEL_ENDPOINTS1_0 { + pub localV4Address: u32, + pub localV6Address: [u8; 16], +} +impl ::core::marker::Copy for IPSEC_TUNNEL_ENDPOINTS1_0 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_ENDPOINTS1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TUNNEL_ENDPOINTS1_1 { + pub remoteV4Address: u32, + pub remoteV6Address: [u8; 16], +} +impl ::core::marker::Copy for IPSEC_TUNNEL_ENDPOINTS1_1 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_ENDPOINTS1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TUNNEL_ENDPOINTS2 { + pub ipVersion: FWP_IP_VERSION, + pub Anonymous1: IPSEC_TUNNEL_ENDPOINTS2_0, + pub Anonymous2: IPSEC_TUNNEL_ENDPOINTS2_1, + pub localIfLuid: u64, + pub remoteFqdn: ::windows_sys::core::PWSTR, + pub numAddresses: u32, + pub remoteAddresses: *mut IPSEC_TUNNEL_ENDPOINT0, +} +impl ::core::marker::Copy for IPSEC_TUNNEL_ENDPOINTS2 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_ENDPOINTS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TUNNEL_ENDPOINTS2_0 { + pub localV4Address: u32, + pub localV6Address: [u8; 16], +} +impl ::core::marker::Copy for IPSEC_TUNNEL_ENDPOINTS2_0 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_ENDPOINTS2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPSEC_TUNNEL_ENDPOINTS2_1 { + pub remoteV4Address: u32, + pub remoteV6Address: [u8; 16], +} +impl ::core::marker::Copy for IPSEC_TUNNEL_ENDPOINTS2_1 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_ENDPOINTS2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TUNNEL_POLICY0 { + pub flags: IPSEC_POLICY_FLAG, + pub numIpsecProposals: u32, + pub ipsecProposals: *mut IPSEC_PROPOSAL0, + pub tunnelEndpoints: IPSEC_TUNNEL_ENDPOINTS0, + pub saIdleTimeout: IPSEC_SA_IDLE_TIMEOUT0, + pub emPolicy: *mut IKEEXT_EM_POLICY0, +} +impl ::core::marker::Copy for IPSEC_TUNNEL_POLICY0 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_POLICY0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TUNNEL_POLICY1 { + pub flags: IPSEC_POLICY_FLAG, + pub numIpsecProposals: u32, + pub ipsecProposals: *mut IPSEC_PROPOSAL0, + pub tunnelEndpoints: IPSEC_TUNNEL_ENDPOINTS1, + pub saIdleTimeout: IPSEC_SA_IDLE_TIMEOUT0, + pub emPolicy: *mut IKEEXT_EM_POLICY1, +} +impl ::core::marker::Copy for IPSEC_TUNNEL_POLICY1 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_POLICY1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TUNNEL_POLICY2 { + pub flags: IPSEC_POLICY_FLAG, + pub numIpsecProposals: u32, + pub ipsecProposals: *mut IPSEC_PROPOSAL0, + pub tunnelEndpoints: IPSEC_TUNNEL_ENDPOINTS2, + pub saIdleTimeout: IPSEC_SA_IDLE_TIMEOUT0, + pub emPolicy: *mut IKEEXT_EM_POLICY2, + pub fwdPathSaLifetime: u32, +} +impl ::core::marker::Copy for IPSEC_TUNNEL_POLICY2 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_POLICY2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_TUNNEL_POLICY3 { + pub flags: u32, + pub numIpsecProposals: u32, + pub ipsecProposals: *mut IPSEC_PROPOSAL0, + pub tunnelEndpoints: IPSEC_TUNNEL_ENDPOINTS2, + pub saIdleTimeout: IPSEC_SA_IDLE_TIMEOUT0, + pub emPolicy: *mut IKEEXT_EM_POLICY2, + pub fwdPathSaLifetime: u32, + pub compartmentId: u32, + pub numTrafficSelectorPolicy: u32, + pub trafficSelectorPolicies: *mut IPSEC_TRAFFIC_SELECTOR_POLICY0, +} +impl ::core::marker::Copy for IPSEC_TUNNEL_POLICY3 {} +impl ::core::clone::Clone for IPSEC_TUNNEL_POLICY3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_V4_UDP_ENCAPSULATION0 { + pub localUdpEncapPort: u16, + pub remoteUdpEncapPort: u16, +} +impl ::core::marker::Copy for IPSEC_V4_UDP_ENCAPSULATION0 {} +impl ::core::clone::Clone for IPSEC_V4_UDP_ENCAPSULATION0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPSEC_VIRTUAL_IF_TUNNEL_INFO0 { + pub virtualIfTunnelId: u64, + pub trafficSelectorId: u64, +} +impl ::core::marker::Copy for IPSEC_VIRTUAL_IF_TUNNEL_INFO0 {} +impl ::core::clone::Clone for IPSEC_VIRTUAL_IF_TUNNEL_INFO0 { + fn clone(&self) -> Self { + *self + } +} +pub type FWPM_CALLOUT_CHANGE_CALLBACK0 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FWPM_CONNECTION_CALLBACK0 = ::core::option::Option ()>; +pub type FWPM_DYNAMIC_KEYWORD_CALLBACK0 = ::core::option::Option ()>; +pub type FWPM_FILTER_CHANGE_CALLBACK0 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub type FWPM_NET_EVENT_CALLBACK0 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub type FWPM_NET_EVENT_CALLBACK1 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub type FWPM_NET_EVENT_CALLBACK2 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub type FWPM_NET_EVENT_CALLBACK3 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub type FWPM_NET_EVENT_CALLBACK4 = ::core::option::Option ()>; +pub type FWPM_PROVIDER_CHANGE_CALLBACK0 = ::core::option::Option ()>; +pub type FWPM_PROVIDER_CONTEXT_CHANGE_CALLBACK0 = ::core::option::Option ()>; +pub type FWPM_SUBLAYER_CHANGE_CALLBACK0 = ::core::option::Option ()>; +pub type FWPM_SYSTEM_PORTS_CALLBACK0 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FWPM_VSWITCH_EVENT_CALLBACK0 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub type IPSEC_KEY_MANAGER_DICTATE_KEY0 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type IPSEC_KEY_MANAGER_KEY_DICTATION_CHECK0 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub type IPSEC_KEY_MANAGER_NOTIFY_KEY0 = ::core::option::Option ()>; +pub type IPSEC_SA_CONTEXT_CALLBACK0 = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsFirewall/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsFirewall/mod.rs new file mode 100644 index 000000000..ea9bcbcd8 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsFirewall/mod.rs @@ -0,0 +1,385 @@ +::windows_targets::link!("netshell.dll" "system" fn NcFreeNetconProperties(pprops : *mut NETCON_PROPERTIES) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netshell.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NcIsValidConnectionName(pszwname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-net-isolation-l1-1-0.dll" "system" fn NetworkIsolationDiagnoseConnectFailureAndGetInfo(wszservername : ::windows_sys::core::PCWSTR, netisoerror : *mut NETISO_ERROR_TYPE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("api-ms-win-net-isolation-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NetworkIsolationEnumAppContainers(flags : u32, pdwnumpublicappcs : *mut u32, pppublicappcs : *mut *mut INET_FIREWALL_APP_CONTAINER) -> u32); +#[cfg(feature = "Win32_System_Ole")] +::windows_targets::link!("firewallapi.dll" "system" #[doc = "Required features: `\"Win32_System_Ole\"`"] fn NetworkIsolationEnumerateAppContainerRules(newenum : *mut super::super::System::Ole:: IEnumVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("api-ms-win-net-isolation-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NetworkIsolationFreeAppContainers(ppublicappcs : *const INET_FIREWALL_APP_CONTAINER) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("api-ms-win-net-isolation-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NetworkIsolationGetAppContainerConfig(pdwnumpublicappcs : *mut u32, appcontainersids : *mut *mut super::super::Security:: SID_AND_ATTRIBUTES) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("firewallapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NetworkIsolationGetEnterpriseIdAsync(wszservername : ::windows_sys::core::PCWSTR, dwflags : u32, context : *const ::core::ffi::c_void, callback : PNETISO_EDP_ID_CALLBACK_FN, hoperation : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("firewallapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NetworkIsolationGetEnterpriseIdClose(hoperation : super::super::Foundation:: HANDLE, bwaitforoperation : super::super::Foundation:: BOOL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("api-ms-win-net-isolation-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NetworkIsolationRegisterForAppContainerChanges(flags : u32, callback : PAC_CHANGES_CALLBACK_FN, context : *const ::core::ffi::c_void, registrationobject : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("api-ms-win-net-isolation-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn NetworkIsolationSetAppContainerConfig(dwnumpublicappcs : u32, appcontainersids : *const super::super::Security:: SID_AND_ATTRIBUTES) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-net-isolation-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NetworkIsolationSetupAppContainerBinaries(applicationcontainersid : super::super::Foundation:: PSID, packagefullname : ::windows_sys::core::PCWSTR, packagefolder : ::windows_sys::core::PCWSTR, displayname : ::windows_sys::core::PCWSTR, bbinariesfullycomputed : super::super::Foundation:: BOOL, binaries : *const ::windows_sys::core::PCWSTR, binariescount : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-net-isolation-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NetworkIsolationUnregisterForAppContainerChanges(registrationobject : super::super::Foundation:: HANDLE) -> u32); +pub type IDynamicPortMapping = *mut ::core::ffi::c_void; +pub type IDynamicPortMappingCollection = *mut ::core::ffi::c_void; +pub type IEnumNetConnection = *mut ::core::ffi::c_void; +pub type IEnumNetSharingEveryConnection = *mut ::core::ffi::c_void; +pub type IEnumNetSharingPortMapping = *mut ::core::ffi::c_void; +pub type IEnumNetSharingPrivateConnection = *mut ::core::ffi::c_void; +pub type IEnumNetSharingPublicConnection = *mut ::core::ffi::c_void; +pub type INATEventManager = *mut ::core::ffi::c_void; +pub type INATExternalIPAddressCallback = *mut ::core::ffi::c_void; +pub type INATNumberOfEntriesCallback = *mut ::core::ffi::c_void; +pub type INetConnection = *mut ::core::ffi::c_void; +pub type INetConnectionConnectUi = *mut ::core::ffi::c_void; +pub type INetConnectionManager = *mut ::core::ffi::c_void; +pub type INetConnectionProps = *mut ::core::ffi::c_void; +pub type INetFwAuthorizedApplication = *mut ::core::ffi::c_void; +pub type INetFwAuthorizedApplications = *mut ::core::ffi::c_void; +pub type INetFwIcmpSettings = *mut ::core::ffi::c_void; +pub type INetFwMgr = *mut ::core::ffi::c_void; +pub type INetFwOpenPort = *mut ::core::ffi::c_void; +pub type INetFwOpenPorts = *mut ::core::ffi::c_void; +pub type INetFwPolicy = *mut ::core::ffi::c_void; +pub type INetFwPolicy2 = *mut ::core::ffi::c_void; +pub type INetFwProduct = *mut ::core::ffi::c_void; +pub type INetFwProducts = *mut ::core::ffi::c_void; +pub type INetFwProfile = *mut ::core::ffi::c_void; +pub type INetFwRemoteAdminSettings = *mut ::core::ffi::c_void; +pub type INetFwRule = *mut ::core::ffi::c_void; +pub type INetFwRule2 = *mut ::core::ffi::c_void; +pub type INetFwRule3 = *mut ::core::ffi::c_void; +pub type INetFwRules = *mut ::core::ffi::c_void; +pub type INetFwService = *mut ::core::ffi::c_void; +pub type INetFwServiceRestriction = *mut ::core::ffi::c_void; +pub type INetFwServices = *mut ::core::ffi::c_void; +pub type INetSharingConfiguration = *mut ::core::ffi::c_void; +pub type INetSharingEveryConnectionCollection = *mut ::core::ffi::c_void; +pub type INetSharingManager = *mut ::core::ffi::c_void; +pub type INetSharingPortMapping = *mut ::core::ffi::c_void; +pub type INetSharingPortMappingCollection = *mut ::core::ffi::c_void; +pub type INetSharingPortMappingProps = *mut ::core::ffi::c_void; +pub type INetSharingPrivateConnectionCollection = *mut ::core::ffi::c_void; +pub type INetSharingPublicConnectionCollection = *mut ::core::ffi::c_void; +pub type IStaticPortMapping = *mut ::core::ffi::c_void; +pub type IStaticPortMappingCollection = *mut ::core::ffi::c_void; +pub type IUPnPNAT = *mut ::core::ffi::c_void; +pub const FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS_ALL: FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS = 3i32; +pub const FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS_AUTO_RESOLVE: FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS = 1i32; +pub const FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS_NON_AUTO_RESOLVE: FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS = 2i32; +pub const FW_DYNAMIC_KEYWORD_ADDRESS_FLAGS_AUTO_RESOLVE: FW_DYNAMIC_KEYWORD_ADDRESS_FLAGS = 1i32; +pub const FW_DYNAMIC_KEYWORD_ORIGIN_INVALID: FW_DYNAMIC_KEYWORD_ORIGIN_TYPE = 0i32; +pub const FW_DYNAMIC_KEYWORD_ORIGIN_LOCAL: FW_DYNAMIC_KEYWORD_ORIGIN_TYPE = 1i32; +pub const FW_DYNAMIC_KEYWORD_ORIGIN_MDM: FW_DYNAMIC_KEYWORD_ORIGIN_TYPE = 2i32; +pub const ICSSC_DEFAULT: SHARINGCONNECTION_ENUM_FLAGS = 0i32; +pub const ICSSC_ENABLED: SHARINGCONNECTION_ENUM_FLAGS = 1i32; +pub const ICSSHARINGTYPE_PRIVATE: SHARINGCONNECTIONTYPE = 1i32; +pub const ICSSHARINGTYPE_PUBLIC: SHARINGCONNECTIONTYPE = 0i32; +pub const ICSTT_IPADDRESS: ICS_TARGETTYPE = 1i32; +pub const ICSTT_NAME: ICS_TARGETTYPE = 0i32; +pub const INET_FIREWALL_AC_BINARY: INET_FIREWALL_AC_CREATION_TYPE = 2i32; +pub const INET_FIREWALL_AC_CHANGE_CREATE: INET_FIREWALL_AC_CHANGE_TYPE = 1i32; +pub const INET_FIREWALL_AC_CHANGE_DELETE: INET_FIREWALL_AC_CHANGE_TYPE = 2i32; +pub const INET_FIREWALL_AC_CHANGE_INVALID: INET_FIREWALL_AC_CHANGE_TYPE = 0i32; +pub const INET_FIREWALL_AC_CHANGE_MAX: INET_FIREWALL_AC_CHANGE_TYPE = 3i32; +pub const INET_FIREWALL_AC_MAX: INET_FIREWALL_AC_CREATION_TYPE = 4i32; +pub const INET_FIREWALL_AC_NONE: INET_FIREWALL_AC_CREATION_TYPE = 0i32; +pub const INET_FIREWALL_AC_PACKAGE_ID_ONLY: INET_FIREWALL_AC_CREATION_TYPE = 1i32; +pub const NCCF_ALLOW_DUPLICATION: NETCON_CHARACTERISTIC_FLAGS = 2i32; +pub const NCCF_ALLOW_REMOVAL: NETCON_CHARACTERISTIC_FLAGS = 4i32; +pub const NCCF_ALLOW_RENAME: NETCON_CHARACTERISTIC_FLAGS = 8i32; +pub const NCCF_ALL_USERS: NETCON_CHARACTERISTIC_FLAGS = 1i32; +pub const NCCF_BLUETOOTH_MASK: NETCON_CHARACTERISTIC_FLAGS = 983040i32; +pub const NCCF_BRANDED: NETCON_CHARACTERISTIC_FLAGS = 128i32; +pub const NCCF_BRIDGED: NETCON_CHARACTERISTIC_FLAGS = 512i32; +pub const NCCF_DEFAULT: NETCON_CHARACTERISTIC_FLAGS = 2048i32; +pub const NCCF_FIREWALLED: NETCON_CHARACTERISTIC_FLAGS = 1024i32; +pub const NCCF_HOMENET_CAPABLE: NETCON_CHARACTERISTIC_FLAGS = 4096i32; +pub const NCCF_HOSTED_NETWORK: NETCON_CHARACTERISTIC_FLAGS = 65536i32; +pub const NCCF_INCOMING_ONLY: NETCON_CHARACTERISTIC_FLAGS = 32i32; +pub const NCCF_LAN_MASK: NETCON_CHARACTERISTIC_FLAGS = 15728640i32; +pub const NCCF_NONE: NETCON_CHARACTERISTIC_FLAGS = 0i32; +pub const NCCF_OUTGOING_ONLY: NETCON_CHARACTERISTIC_FLAGS = 64i32; +pub const NCCF_QUARANTINED: NETCON_CHARACTERISTIC_FLAGS = 16384i32; +pub const NCCF_RESERVED: NETCON_CHARACTERISTIC_FLAGS = 32768i32; +pub const NCCF_SHARED: NETCON_CHARACTERISTIC_FLAGS = 256i32; +pub const NCCF_SHARED_PRIVATE: NETCON_CHARACTERISTIC_FLAGS = 8192i32; +pub const NCCF_VIRTUAL_STATION: NETCON_CHARACTERISTIC_FLAGS = 131072i32; +pub const NCCF_WIFI_DIRECT: NETCON_CHARACTERISTIC_FLAGS = 262144i32; +pub const NCME_DEFAULT: NETCONMGR_ENUM_FLAGS = 0i32; +pub const NCME_HIDDEN: NETCONMGR_ENUM_FLAGS = 1i32; +pub const NCM_BRIDGE: NETCON_MEDIATYPE = 7i32; +pub const NCM_DIRECT: NETCON_MEDIATYPE = 1i32; +pub const NCM_ISDN: NETCON_MEDIATYPE = 2i32; +pub const NCM_LAN: NETCON_MEDIATYPE = 3i32; +pub const NCM_NONE: NETCON_MEDIATYPE = 0i32; +pub const NCM_PHONE: NETCON_MEDIATYPE = 4i32; +pub const NCM_PPPOE: NETCON_MEDIATYPE = 6i32; +pub const NCM_SHAREDACCESSHOST_LAN: NETCON_MEDIATYPE = 8i32; +pub const NCM_SHAREDACCESSHOST_RAS: NETCON_MEDIATYPE = 9i32; +pub const NCM_TUNNEL: NETCON_MEDIATYPE = 5i32; +pub const NCS_ACTION_REQUIRED: NETCON_STATUS = 13i32; +pub const NCS_ACTION_REQUIRED_RETRY: NETCON_STATUS = 14i32; +pub const NCS_AUTHENTICATING: NETCON_STATUS = 8i32; +pub const NCS_AUTHENTICATION_FAILED: NETCON_STATUS = 10i32; +pub const NCS_AUTHENTICATION_SUCCEEDED: NETCON_STATUS = 9i32; +pub const NCS_CONNECTED: NETCON_STATUS = 2i32; +pub const NCS_CONNECTING: NETCON_STATUS = 1i32; +pub const NCS_CONNECT_FAILED: NETCON_STATUS = 15i32; +pub const NCS_CREDENTIALS_REQUIRED: NETCON_STATUS = 12i32; +pub const NCS_DISCONNECTED: NETCON_STATUS = 0i32; +pub const NCS_DISCONNECTING: NETCON_STATUS = 3i32; +pub const NCS_HARDWARE_DISABLED: NETCON_STATUS = 5i32; +pub const NCS_HARDWARE_MALFUNCTION: NETCON_STATUS = 6i32; +pub const NCS_HARDWARE_NOT_PRESENT: NETCON_STATUS = 4i32; +pub const NCS_INVALID_ADDRESS: NETCON_STATUS = 11i32; +pub const NCS_MEDIA_DISCONNECTED: NETCON_STATUS = 7i32; +pub const NCT_BRIDGE: NETCON_TYPE = 6i32; +pub const NCT_DIRECT_CONNECT: NETCON_TYPE = 0i32; +pub const NCT_INBOUND: NETCON_TYPE = 1i32; +pub const NCT_INTERNET: NETCON_TYPE = 2i32; +pub const NCT_LAN: NETCON_TYPE = 3i32; +pub const NCT_PHONE: NETCON_TYPE = 4i32; +pub const NCT_TUNNEL: NETCON_TYPE = 5i32; +pub const NCUC_DEFAULT: NETCONUI_CONNECT_FLAGS = 0i32; +pub const NCUC_ENABLE_DISABLE: NETCONUI_CONNECT_FLAGS = 2i32; +pub const NCUC_NO_UI: NETCONUI_CONNECT_FLAGS = 1i32; +pub const NETCON_MAX_NAME_LEN: u32 = 256u32; +pub const NETISO_ERROR_TYPE_INTERNET_CLIENT: NETISO_ERROR_TYPE = 2i32; +pub const NETISO_ERROR_TYPE_INTERNET_CLIENT_SERVER: NETISO_ERROR_TYPE = 3i32; +pub const NETISO_ERROR_TYPE_MAX: NETISO_ERROR_TYPE = 4i32; +pub const NETISO_ERROR_TYPE_NONE: NETISO_ERROR_TYPE = 0i32; +pub const NETISO_ERROR_TYPE_PRIVATE_NETWORK: NETISO_ERROR_TYPE = 1i32; +pub const NETISO_FLAG_FORCE_COMPUTE_BINARIES: NETISO_FLAG = 1i32; +pub const NETISO_FLAG_MAX: NETISO_FLAG = 2i32; +pub const NETISO_GEID_FOR_NEUTRAL_AWARE: u32 = 2u32; +pub const NETISO_GEID_FOR_WDAG: u32 = 1u32; +pub const NET_FW_ACTION_ALLOW: NET_FW_ACTION = 1i32; +pub const NET_FW_ACTION_BLOCK: NET_FW_ACTION = 0i32; +pub const NET_FW_ACTION_MAX: NET_FW_ACTION = 2i32; +pub const NET_FW_AUTHENTICATE_AND_ENCRYPT: NET_FW_AUTHENTICATE_TYPE = 4i32; +pub const NET_FW_AUTHENTICATE_AND_NEGOTIATE_ENCRYPTION: NET_FW_AUTHENTICATE_TYPE = 3i32; +pub const NET_FW_AUTHENTICATE_NONE: NET_FW_AUTHENTICATE_TYPE = 0i32; +pub const NET_FW_AUTHENTICATE_NO_ENCAPSULATION: NET_FW_AUTHENTICATE_TYPE = 1i32; +pub const NET_FW_AUTHENTICATE_WITH_INTEGRITY: NET_FW_AUTHENTICATE_TYPE = 2i32; +pub const NET_FW_EDGE_TRAVERSAL_TYPE_ALLOW: NET_FW_EDGE_TRAVERSAL_TYPE = 1i32; +pub const NET_FW_EDGE_TRAVERSAL_TYPE_DEFER_TO_APP: NET_FW_EDGE_TRAVERSAL_TYPE = 2i32; +pub const NET_FW_EDGE_TRAVERSAL_TYPE_DEFER_TO_USER: NET_FW_EDGE_TRAVERSAL_TYPE = 3i32; +pub const NET_FW_EDGE_TRAVERSAL_TYPE_DENY: NET_FW_EDGE_TRAVERSAL_TYPE = 0i32; +pub const NET_FW_IP_PROTOCOL_ANY: NET_FW_IP_PROTOCOL = 256i32; +pub const NET_FW_IP_PROTOCOL_TCP: NET_FW_IP_PROTOCOL = 6i32; +pub const NET_FW_IP_PROTOCOL_UDP: NET_FW_IP_PROTOCOL = 17i32; +pub const NET_FW_IP_VERSION_ANY: NET_FW_IP_VERSION = 2i32; +pub const NET_FW_IP_VERSION_MAX: NET_FW_IP_VERSION = 3i32; +pub const NET_FW_IP_VERSION_V4: NET_FW_IP_VERSION = 0i32; +pub const NET_FW_IP_VERSION_V6: NET_FW_IP_VERSION = 1i32; +pub const NET_FW_MODIFY_STATE_GP_OVERRIDE: NET_FW_MODIFY_STATE = 1i32; +pub const NET_FW_MODIFY_STATE_INBOUND_BLOCKED: NET_FW_MODIFY_STATE = 2i32; +pub const NET_FW_MODIFY_STATE_OK: NET_FW_MODIFY_STATE = 0i32; +pub const NET_FW_POLICY_EFFECTIVE: NET_FW_POLICY_TYPE = 2i32; +pub const NET_FW_POLICY_GROUP: NET_FW_POLICY_TYPE = 0i32; +pub const NET_FW_POLICY_LOCAL: NET_FW_POLICY_TYPE = 1i32; +pub const NET_FW_POLICY_TYPE_MAX: NET_FW_POLICY_TYPE = 3i32; +pub const NET_FW_PROFILE2_ALL: NET_FW_PROFILE_TYPE2 = 2147483647i32; +pub const NET_FW_PROFILE2_DOMAIN: NET_FW_PROFILE_TYPE2 = 1i32; +pub const NET_FW_PROFILE2_PRIVATE: NET_FW_PROFILE_TYPE2 = 2i32; +pub const NET_FW_PROFILE2_PUBLIC: NET_FW_PROFILE_TYPE2 = 4i32; +pub const NET_FW_PROFILE_CURRENT: NET_FW_PROFILE_TYPE = 2i32; +pub const NET_FW_PROFILE_DOMAIN: NET_FW_PROFILE_TYPE = 0i32; +pub const NET_FW_PROFILE_STANDARD: NET_FW_PROFILE_TYPE = 1i32; +pub const NET_FW_PROFILE_TYPE_MAX: NET_FW_PROFILE_TYPE = 3i32; +pub const NET_FW_RULE_CATEGORY_BOOT: NET_FW_RULE_CATEGORY = 0i32; +pub const NET_FW_RULE_CATEGORY_CONSEC: NET_FW_RULE_CATEGORY = 3i32; +pub const NET_FW_RULE_CATEGORY_FIREWALL: NET_FW_RULE_CATEGORY = 2i32; +pub const NET_FW_RULE_CATEGORY_MAX: NET_FW_RULE_CATEGORY = 4i32; +pub const NET_FW_RULE_CATEGORY_STEALTH: NET_FW_RULE_CATEGORY = 1i32; +pub const NET_FW_RULE_DIR_IN: NET_FW_RULE_DIRECTION = 1i32; +pub const NET_FW_RULE_DIR_MAX: NET_FW_RULE_DIRECTION = 3i32; +pub const NET_FW_RULE_DIR_OUT: NET_FW_RULE_DIRECTION = 2i32; +pub const NET_FW_SCOPE_ALL: NET_FW_SCOPE = 0i32; +pub const NET_FW_SCOPE_CUSTOM: NET_FW_SCOPE = 2i32; +pub const NET_FW_SCOPE_LOCAL_SUBNET: NET_FW_SCOPE = 1i32; +pub const NET_FW_SCOPE_MAX: NET_FW_SCOPE = 3i32; +pub const NET_FW_SERVICE_FILE_AND_PRINT: NET_FW_SERVICE_TYPE = 0i32; +pub const NET_FW_SERVICE_NONE: NET_FW_SERVICE_TYPE = 3i32; +pub const NET_FW_SERVICE_REMOTE_DESKTOP: NET_FW_SERVICE_TYPE = 2i32; +pub const NET_FW_SERVICE_TYPE_MAX: NET_FW_SERVICE_TYPE = 4i32; +pub const NET_FW_SERVICE_UPNP: NET_FW_SERVICE_TYPE = 1i32; +pub const NetFwAuthorizedApplication: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xec9846b3_2762_4a6b_a214_6acb603462d2); +pub const NetFwMgr: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x304ce942_6e39_40d8_943a_b913c40c9cd4); +pub const NetFwOpenPort: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0ca545c6_37ad_4a6c_bf92_9f7610067ef5); +pub const NetFwPolicy2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe2b3c97f_6ae1_41ac_817a_f6f92166d7dd); +pub const NetFwProduct: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9d745ed8_c514_4d1d_bf42_751fed2d5ac7); +pub const NetFwProducts: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcc19079b_8272_4d73_bb70_cdb533527b61); +pub const NetFwRule: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c5bc43e_3369_4c33_ab0c_be9469677af4); +pub const NetSharingManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c63c1ad_3956_4ff8_8486_40034758315b); +pub const S_OBJECT_NO_LONGER_VALID: ::windows_sys::core::HRESULT = 2i32; +pub const UPnPNAT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae1e00aa_3fd5_403c_8a27_2bbdc30cd0e1); +pub type FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS = i32; +pub type FW_DYNAMIC_KEYWORD_ADDRESS_FLAGS = i32; +pub type FW_DYNAMIC_KEYWORD_ORIGIN_TYPE = i32; +pub type ICS_TARGETTYPE = i32; +pub type INET_FIREWALL_AC_CHANGE_TYPE = i32; +pub type INET_FIREWALL_AC_CREATION_TYPE = i32; +pub type NETCONMGR_ENUM_FLAGS = i32; +pub type NETCONUI_CONNECT_FLAGS = i32; +pub type NETCON_CHARACTERISTIC_FLAGS = i32; +pub type NETCON_MEDIATYPE = i32; +pub type NETCON_STATUS = i32; +pub type NETCON_TYPE = i32; +pub type NETISO_ERROR_TYPE = i32; +pub type NETISO_FLAG = i32; +pub type NET_FW_ACTION = i32; +pub type NET_FW_AUTHENTICATE_TYPE = i32; +pub type NET_FW_EDGE_TRAVERSAL_TYPE = i32; +pub type NET_FW_IP_PROTOCOL = i32; +pub type NET_FW_IP_VERSION = i32; +pub type NET_FW_MODIFY_STATE = i32; +pub type NET_FW_POLICY_TYPE = i32; +pub type NET_FW_PROFILE_TYPE = i32; +pub type NET_FW_PROFILE_TYPE2 = i32; +pub type NET_FW_RULE_CATEGORY = i32; +pub type NET_FW_RULE_DIRECTION = i32; +pub type NET_FW_SCOPE = i32; +pub type NET_FW_SERVICE_TYPE = i32; +pub type SHARINGCONNECTIONTYPE = i32; +pub type SHARINGCONNECTION_ENUM_FLAGS = i32; +#[repr(C)] +pub struct FW_DYNAMIC_KEYWORD_ADDRESS0 { + pub id: ::windows_sys::core::GUID, + pub keyword: ::windows_sys::core::PCWSTR, + pub flags: u32, + pub addresses: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for FW_DYNAMIC_KEYWORD_ADDRESS0 {} +impl ::core::clone::Clone for FW_DYNAMIC_KEYWORD_ADDRESS0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FW_DYNAMIC_KEYWORD_ADDRESS_DATA0 { + pub dynamicKeywordAddress: FW_DYNAMIC_KEYWORD_ADDRESS0, + pub next: *mut FW_DYNAMIC_KEYWORD_ADDRESS_DATA0, + pub schemaVersion: u16, + pub originType: FW_DYNAMIC_KEYWORD_ORIGIN_TYPE, +} +impl ::core::marker::Copy for FW_DYNAMIC_KEYWORD_ADDRESS_DATA0 {} +impl ::core::clone::Clone for FW_DYNAMIC_KEYWORD_ADDRESS_DATA0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INET_FIREWALL_AC_BINARIES { + pub count: u32, + pub binaries: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for INET_FIREWALL_AC_BINARIES {} +impl ::core::clone::Clone for INET_FIREWALL_AC_BINARIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct INET_FIREWALL_AC_CAPABILITIES { + pub count: u32, + pub capabilities: *mut super::super::Security::SID_AND_ATTRIBUTES, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for INET_FIREWALL_AC_CAPABILITIES {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for INET_FIREWALL_AC_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct INET_FIREWALL_AC_CHANGE { + pub changeType: INET_FIREWALL_AC_CHANGE_TYPE, + pub createType: INET_FIREWALL_AC_CREATION_TYPE, + pub appContainerSid: *mut super::super::Security::SID, + pub userSid: *mut super::super::Security::SID, + pub displayName: ::windows_sys::core::PWSTR, + pub Anonymous: INET_FIREWALL_AC_CHANGE_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for INET_FIREWALL_AC_CHANGE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for INET_FIREWALL_AC_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union INET_FIREWALL_AC_CHANGE_0 { + pub capabilities: INET_FIREWALL_AC_CAPABILITIES, + pub binaries: INET_FIREWALL_AC_BINARIES, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for INET_FIREWALL_AC_CHANGE_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for INET_FIREWALL_AC_CHANGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct INET_FIREWALL_APP_CONTAINER { + pub appContainerSid: *mut super::super::Security::SID, + pub userSid: *mut super::super::Security::SID, + pub appContainerName: ::windows_sys::core::PWSTR, + pub displayName: ::windows_sys::core::PWSTR, + pub description: ::windows_sys::core::PWSTR, + pub capabilities: INET_FIREWALL_AC_CAPABILITIES, + pub binaries: INET_FIREWALL_AC_BINARIES, + pub workingDirectory: ::windows_sys::core::PWSTR, + pub packageFullName: ::windows_sys::core::PWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for INET_FIREWALL_APP_CONTAINER {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for INET_FIREWALL_APP_CONTAINER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETCON_PROPERTIES { + pub guidId: ::windows_sys::core::GUID, + pub pszwName: ::windows_sys::core::PWSTR, + pub pszwDeviceName: ::windows_sys::core::PWSTR, + pub Status: NETCON_STATUS, + pub MediaType: NETCON_MEDIATYPE, + pub dwCharacter: u32, + pub clsidThisObject: ::windows_sys::core::GUID, + pub clsidUiObject: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NETCON_PROPERTIES {} +impl ::core::clone::Clone for NETCON_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub type PAC_CHANGES_CALLBACK_FN = ::core::option::Option ()>; +pub type PFN_FWADDDYNAMICKEYWORDADDRESS0 = ::core::option::Option u32>; +pub type PFN_FWDELETEDYNAMICKEYWORDADDRESS0 = ::core::option::Option u32>; +pub type PFN_FWENUMDYNAMICKEYWORDADDRESSBYID0 = ::core::option::Option u32>; +pub type PFN_FWENUMDYNAMICKEYWORDADDRESSESBYTYPE0 = ::core::option::Option u32>; +pub type PFN_FWFREEDYNAMICKEYWORDADDRESSDATA0 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_FWUPDATEDYNAMICKEYWORDADDRESS0 = ::core::option::Option u32>; +pub type PNETISO_EDP_ID_CALLBACK_FN = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsNetworkVirtualization/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsNetworkVirtualization/mod.rs new file mode 100644 index 000000000..5c765322a --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsNetworkVirtualization/mod.rs @@ -0,0 +1,179 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wnvapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WnvOpen() -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("wnvapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WnvRequestNotification(wnvhandle : super::super::Foundation:: HANDLE, notificationparam : *mut WNV_NOTIFICATION_PARAM, overlapped : *mut super::super::System::IO:: OVERLAPPED, bytestransferred : *mut u32) -> u32); +pub const WNV_API_MAJOR_VERSION_1: u32 = 1u32; +pub const WNV_API_MINOR_VERSION_0: u32 = 0u32; +pub const WnvCustomerAddressAdded: WNV_CA_NOTIFICATION_TYPE = 0i32; +pub const WnvCustomerAddressDeleted: WNV_CA_NOTIFICATION_TYPE = 1i32; +pub const WnvCustomerAddressMax: WNV_CA_NOTIFICATION_TYPE = 3i32; +pub const WnvCustomerAddressMoved: WNV_CA_NOTIFICATION_TYPE = 2i32; +pub const WnvCustomerAddressType: WNV_OBJECT_TYPE = 1i32; +pub const WnvNotificationTypeMax: WNV_NOTIFICATION_TYPE = 3i32; +pub const WnvObjectChangeType: WNV_NOTIFICATION_TYPE = 2i32; +pub const WnvObjectTypeMax: WNV_OBJECT_TYPE = 2i32; +pub const WnvPolicyMismatchType: WNV_NOTIFICATION_TYPE = 0i32; +pub const WnvProviderAddressType: WNV_OBJECT_TYPE = 0i32; +pub const WnvRedirectType: WNV_NOTIFICATION_TYPE = 1i32; +pub type WNV_CA_NOTIFICATION_TYPE = i32; +pub type WNV_NOTIFICATION_TYPE = i32; +pub type WNV_OBJECT_TYPE = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct WNV_CUSTOMER_ADDRESS_CHANGE_PARAM { + pub MACAddress: super::super::Networking::WinSock::DL_EUI48, + pub CAFamily: super::super::Networking::WinSock::ADDRESS_FAMILY, + pub CA: WNV_IP_ADDRESS, + pub VirtualSubnetId: u32, + pub PAFamily: super::super::Networking::WinSock::ADDRESS_FAMILY, + pub PA: WNV_IP_ADDRESS, + pub NotificationReason: WNV_CA_NOTIFICATION_TYPE, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for WNV_CUSTOMER_ADDRESS_CHANGE_PARAM {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for WNV_CUSTOMER_ADDRESS_CHANGE_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct WNV_IP_ADDRESS { + pub IP: WNV_IP_ADDRESS_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for WNV_IP_ADDRESS {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for WNV_IP_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union WNV_IP_ADDRESS_0 { + pub v4: super::super::Networking::WinSock::IN_ADDR, + pub v6: super::super::Networking::WinSock::IN6_ADDR, + pub Addr: [u8; 16], +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for WNV_IP_ADDRESS_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for WNV_IP_ADDRESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WNV_NOTIFICATION_PARAM { + pub Header: WNV_OBJECT_HEADER, + pub NotificationType: WNV_NOTIFICATION_TYPE, + pub PendingNotifications: u32, + pub Buffer: *mut u8, +} +impl ::core::marker::Copy for WNV_NOTIFICATION_PARAM {} +impl ::core::clone::Clone for WNV_NOTIFICATION_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct WNV_OBJECT_CHANGE_PARAM { + pub ObjectType: WNV_OBJECT_TYPE, + pub ObjectParam: WNV_OBJECT_CHANGE_PARAM_0, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for WNV_OBJECT_CHANGE_PARAM {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for WNV_OBJECT_CHANGE_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub union WNV_OBJECT_CHANGE_PARAM_0 { + pub ProviderAddressChange: WNV_PROVIDER_ADDRESS_CHANGE_PARAM, + pub CustomerAddressChange: WNV_CUSTOMER_ADDRESS_CHANGE_PARAM, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for WNV_OBJECT_CHANGE_PARAM_0 {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for WNV_OBJECT_CHANGE_PARAM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WNV_OBJECT_HEADER { + pub MajorVersion: u8, + pub MinorVersion: u8, + pub Size: u32, +} +impl ::core::marker::Copy for WNV_OBJECT_HEADER {} +impl ::core::clone::Clone for WNV_OBJECT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct WNV_POLICY_MISMATCH_PARAM { + pub CAFamily: super::super::Networking::WinSock::ADDRESS_FAMILY, + pub PAFamily: super::super::Networking::WinSock::ADDRESS_FAMILY, + pub VirtualSubnetId: u32, + pub CA: WNV_IP_ADDRESS, + pub PA: WNV_IP_ADDRESS, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for WNV_POLICY_MISMATCH_PARAM {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for WNV_POLICY_MISMATCH_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct WNV_PROVIDER_ADDRESS_CHANGE_PARAM { + pub PAFamily: super::super::Networking::WinSock::ADDRESS_FAMILY, + pub PA: WNV_IP_ADDRESS, + pub AddressState: super::super::Networking::WinSock::NL_DAD_STATE, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for WNV_PROVIDER_ADDRESS_CHANGE_PARAM {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for WNV_PROVIDER_ADDRESS_CHANGE_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct WNV_REDIRECT_PARAM { + pub CAFamily: super::super::Networking::WinSock::ADDRESS_FAMILY, + pub PAFamily: super::super::Networking::WinSock::ADDRESS_FAMILY, + pub NewPAFamily: super::super::Networking::WinSock::ADDRESS_FAMILY, + pub VirtualSubnetId: u32, + pub CA: WNV_IP_ADDRESS, + pub PA: WNV_IP_ADDRESS, + pub NewPA: WNV_IP_ADDRESS, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for WNV_REDIRECT_PARAM {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for WNV_REDIRECT_PARAM { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/mod.rs new file mode 100644 index 000000000..77d042eef --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/NetworkManagement/mod.rs @@ -0,0 +1,63 @@ +#[cfg(feature = "Win32_NetworkManagement_Dhcp")] +#[doc = "Required features: `\"Win32_NetworkManagement_Dhcp\"`"] +pub mod Dhcp; +#[cfg(feature = "Win32_NetworkManagement_Dns")] +#[doc = "Required features: `\"Win32_NetworkManagement_Dns\"`"] +pub mod Dns; +#[cfg(feature = "Win32_NetworkManagement_InternetConnectionWizard")] +#[doc = "Required features: `\"Win32_NetworkManagement_InternetConnectionWizard\"`"] +pub mod InternetConnectionWizard; +#[cfg(feature = "Win32_NetworkManagement_IpHelper")] +#[doc = "Required features: `\"Win32_NetworkManagement_IpHelper\"`"] +pub mod IpHelper; +#[cfg(feature = "Win32_NetworkManagement_Multicast")] +#[doc = "Required features: `\"Win32_NetworkManagement_Multicast\"`"] +pub mod Multicast; +#[cfg(feature = "Win32_NetworkManagement_Ndis")] +#[doc = "Required features: `\"Win32_NetworkManagement_Ndis\"`"] +pub mod Ndis; +#[cfg(feature = "Win32_NetworkManagement_NetBios")] +#[doc = "Required features: `\"Win32_NetworkManagement_NetBios\"`"] +pub mod NetBios; +#[cfg(feature = "Win32_NetworkManagement_NetManagement")] +#[doc = "Required features: `\"Win32_NetworkManagement_NetManagement\"`"] +pub mod NetManagement; +#[cfg(feature = "Win32_NetworkManagement_NetShell")] +#[doc = "Required features: `\"Win32_NetworkManagement_NetShell\"`"] +pub mod NetShell; +#[cfg(feature = "Win32_NetworkManagement_NetworkDiagnosticsFramework")] +#[doc = "Required features: `\"Win32_NetworkManagement_NetworkDiagnosticsFramework\"`"] +pub mod NetworkDiagnosticsFramework; +#[cfg(feature = "Win32_NetworkManagement_P2P")] +#[doc = "Required features: `\"Win32_NetworkManagement_P2P\"`"] +pub mod P2P; +#[cfg(feature = "Win32_NetworkManagement_QoS")] +#[doc = "Required features: `\"Win32_NetworkManagement_QoS\"`"] +pub mod QoS; +#[cfg(feature = "Win32_NetworkManagement_Rras")] +#[doc = "Required features: `\"Win32_NetworkManagement_Rras\"`"] +pub mod Rras; +#[cfg(feature = "Win32_NetworkManagement_Snmp")] +#[doc = "Required features: `\"Win32_NetworkManagement_Snmp\"`"] +pub mod Snmp; +#[cfg(feature = "Win32_NetworkManagement_WNet")] +#[doc = "Required features: `\"Win32_NetworkManagement_WNet\"`"] +pub mod WNet; +#[cfg(feature = "Win32_NetworkManagement_WebDav")] +#[doc = "Required features: `\"Win32_NetworkManagement_WebDav\"`"] +pub mod WebDav; +#[cfg(feature = "Win32_NetworkManagement_WiFi")] +#[doc = "Required features: `\"Win32_NetworkManagement_WiFi\"`"] +pub mod WiFi; +#[cfg(feature = "Win32_NetworkManagement_WindowsConnectionManager")] +#[doc = "Required features: `\"Win32_NetworkManagement_WindowsConnectionManager\"`"] +pub mod WindowsConnectionManager; +#[cfg(feature = "Win32_NetworkManagement_WindowsFilteringPlatform")] +#[doc = "Required features: `\"Win32_NetworkManagement_WindowsFilteringPlatform\"`"] +pub mod WindowsFilteringPlatform; +#[cfg(feature = "Win32_NetworkManagement_WindowsFirewall")] +#[doc = "Required features: `\"Win32_NetworkManagement_WindowsFirewall\"`"] +pub mod WindowsFirewall; +#[cfg(feature = "Win32_NetworkManagement_WindowsNetworkVirtualization")] +#[doc = "Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`"] +pub mod WindowsNetworkVirtualization; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/ActiveDirectory/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/ActiveDirectory/mod.rs new file mode 100644 index 000000000..6ee40fe15 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/ActiveDirectory/mod.rs @@ -0,0 +1,3338 @@ +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("activeds.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn ADsBuildEnumerator(padscontainer : IADsContainer, ppenumvariant : *mut super::super::System::Ole:: IEnumVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("activeds.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn ADsBuildVarArrayInt(lpdwobjecttypes : *mut u32, dwobjecttypes : u32, pvar : *mut super::super::System::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("activeds.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn ADsBuildVarArrayStr(lpppathnames : *const ::windows_sys::core::PCWSTR, dwpathnames : u32, pvar : *mut super::super::System::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("activeds.dll" "system" fn ADsDecodeBinaryData(szsrcdata : ::windows_sys::core::PCWSTR, ppbdestdata : *mut *mut u8, pdwdestlen : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("activeds.dll" "system" fn ADsEncodeBinaryData(pbsrcdata : *mut u8, dwsrclen : u32, ppszdestdata : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("activeds.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn ADsEnumerateNext(penumvariant : super::super::System::Ole:: IEnumVARIANT, celements : u32, pvar : *mut super::super::System::Variant:: VARIANT, pcelementsfetched : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Ole")] +::windows_targets::link!("activeds.dll" "system" #[doc = "Required features: `\"Win32_System_Ole\"`"] fn ADsFreeEnumerator(penumvariant : super::super::System::Ole:: IEnumVARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("activeds.dll" "system" fn ADsGetLastError(lperror : *mut u32, lperrorbuf : ::windows_sys::core::PWSTR, dwerrorbuflen : u32, lpnamebuf : ::windows_sys::core::PWSTR, dwnamebuflen : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("activeds.dll" "system" fn ADsGetObject(lpszpathname : ::windows_sys::core::PCWSTR, riid : *const ::windows_sys::core::GUID, ppobject : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("activeds.dll" "system" fn ADsOpenObject(lpszpathname : ::windows_sys::core::PCWSTR, lpszusername : ::windows_sys::core::PCWSTR, lpszpassword : ::windows_sys::core::PCWSTR, dwreserved : ADS_AUTHENTICATION_ENUM, riid : *const ::windows_sys::core::GUID, ppobject : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dsprop.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ADsPropCheckIfWritable(pwzattr : ::windows_sys::core::PCWSTR, pwritableattrs : *const ADS_ATTR_INFO) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("dsprop.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn ADsPropCreateNotifyObj(pappthddataobj : super::super::System::Com:: IDataObject, pwzadsobjname : ::windows_sys::core::PCWSTR, phnotifyobj : *mut super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dsprop.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ADsPropGetInitInfo(hnotifyobj : super::super::Foundation:: HWND, pinitparams : *mut ADSPROPINITPARAMS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dsprop.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ADsPropSendErrorMessage(hnotifyobj : super::super::Foundation:: HWND, perror : *mut ADSPROPERROR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dsprop.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ADsPropSetHwnd(hnotifyobj : super::super::Foundation:: HWND, hpage : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dsprop.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ADsPropSetHwndWithTitle(hnotifyobj : super::super::Foundation:: HWND, hpage : super::super::Foundation:: HWND, ptztitle : *const i8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dsprop.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ADsPropShowErrorDialog(hnotifyobj : super::super::Foundation:: HWND, hpage : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +::windows_targets::link!("activeds.dll" "system" fn ADsSetLastError(dwerr : u32, pszerror : ::windows_sys::core::PCWSTR, pszprovider : ::windows_sys::core::PCWSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("activeds.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AdsFreeAdsValues(padsvalues : *mut ADSVALUE, dwnumvalues : u32) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("activeds.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn AdsTypeToPropVariant(padsvalues : *mut ADSVALUE, dwnumvalues : u32, pvariant : *mut super::super::System::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("activeds.dll" "system" fn AllocADsMem(cb : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("activeds.dll" "system" fn AllocADsStr(pstr : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("activeds.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn BinarySDToSecurityDescriptor(psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR, pvarsec : *mut super::super::System::Variant:: VARIANT, pszservername : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, password : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsAddSidHistoryA(hds : super::super::Foundation:: HANDLE, flags : u32, srcdomain : ::windows_sys::core::PCSTR, srcprincipal : ::windows_sys::core::PCSTR, srcdomaincontroller : ::windows_sys::core::PCSTR, srcdomaincreds : *const ::core::ffi::c_void, dstdomain : ::windows_sys::core::PCSTR, dstprincipal : ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsAddSidHistoryW(hds : super::super::Foundation:: HANDLE, flags : u32, srcdomain : ::windows_sys::core::PCWSTR, srcprincipal : ::windows_sys::core::PCWSTR, srcdomaincontroller : ::windows_sys::core::PCWSTR, srcdomaincreds : *const ::core::ffi::c_void, dstdomain : ::windows_sys::core::PCWSTR, dstprincipal : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn DsAddressToSiteNamesA(computername : ::windows_sys::core::PCSTR, entrycount : u32, socketaddresses : *const super::WinSock:: SOCKET_ADDRESS, sitenames : *mut *mut ::windows_sys::core::PSTR) -> u32); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn DsAddressToSiteNamesExA(computername : ::windows_sys::core::PCSTR, entrycount : u32, socketaddresses : *const super::WinSock:: SOCKET_ADDRESS, sitenames : *mut *mut ::windows_sys::core::PSTR, subnetnames : *mut *mut ::windows_sys::core::PSTR) -> u32); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn DsAddressToSiteNamesExW(computername : ::windows_sys::core::PCWSTR, entrycount : u32, socketaddresses : *const super::WinSock:: SOCKET_ADDRESS, sitenames : *mut *mut ::windows_sys::core::PWSTR, subnetnames : *mut *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn DsAddressToSiteNamesW(computername : ::windows_sys::core::PCWSTR, entrycount : u32, socketaddresses : *const super::WinSock:: SOCKET_ADDRESS, sitenames : *mut *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsBindA(domaincontrollername : ::windows_sys::core::PCSTR, dnsdomainname : ::windows_sys::core::PCSTR, phds : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsBindByInstanceA(servername : ::windows_sys::core::PCSTR, annotation : ::windows_sys::core::PCSTR, instanceguid : *const ::windows_sys::core::GUID, dnsdomainname : ::windows_sys::core::PCSTR, authidentity : *const ::core::ffi::c_void, serviceprincipalname : ::windows_sys::core::PCSTR, bindflags : u32, phds : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsBindByInstanceW(servername : ::windows_sys::core::PCWSTR, annotation : ::windows_sys::core::PCWSTR, instanceguid : *const ::windows_sys::core::GUID, dnsdomainname : ::windows_sys::core::PCWSTR, authidentity : *const ::core::ffi::c_void, serviceprincipalname : ::windows_sys::core::PCWSTR, bindflags : u32, phds : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsBindToISTGA(sitename : ::windows_sys::core::PCSTR, phds : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsBindToISTGW(sitename : ::windows_sys::core::PCWSTR, phds : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsBindW(domaincontrollername : ::windows_sys::core::PCWSTR, dnsdomainname : ::windows_sys::core::PCWSTR, phds : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsBindWithCredA(domaincontrollername : ::windows_sys::core::PCSTR, dnsdomainname : ::windows_sys::core::PCSTR, authidentity : *const ::core::ffi::c_void, phds : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsBindWithCredW(domaincontrollername : ::windows_sys::core::PCWSTR, dnsdomainname : ::windows_sys::core::PCWSTR, authidentity : *const ::core::ffi::c_void, phds : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsBindWithSpnA(domaincontrollername : ::windows_sys::core::PCSTR, dnsdomainname : ::windows_sys::core::PCSTR, authidentity : *const ::core::ffi::c_void, serviceprincipalname : ::windows_sys::core::PCSTR, phds : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsBindWithSpnExA(domaincontrollername : ::windows_sys::core::PCSTR, dnsdomainname : ::windows_sys::core::PCSTR, authidentity : *const ::core::ffi::c_void, serviceprincipalname : ::windows_sys::core::PCSTR, bindflags : u32, phds : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsBindWithSpnExW(domaincontrollername : ::windows_sys::core::PCWSTR, dnsdomainname : ::windows_sys::core::PCWSTR, authidentity : *const ::core::ffi::c_void, serviceprincipalname : ::windows_sys::core::PCWSTR, bindflags : u32, phds : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsBindWithSpnW(domaincontrollername : ::windows_sys::core::PCWSTR, dnsdomainname : ::windows_sys::core::PCWSTR, authidentity : *const ::core::ffi::c_void, serviceprincipalname : ::windows_sys::core::PCWSTR, phds : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsBindingSetTimeout(hds : super::super::Foundation:: HANDLE, ctimeoutsecs : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +::windows_targets::link!("dsuiext.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell\"`"] fn DsBrowseForContainerA(pinfo : *mut DSBROWSEINFOA) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +::windows_targets::link!("dsuiext.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell\"`"] fn DsBrowseForContainerW(pinfo : *mut DSBROWSEINFOW) -> i32); +::windows_targets::link!("ntdsapi.dll" "system" fn DsClientMakeSpnForTargetServerA(serviceclass : ::windows_sys::core::PCSTR, servicename : ::windows_sys::core::PCSTR, pcspnlength : *mut u32, pszspn : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("ntdsapi.dll" "system" fn DsClientMakeSpnForTargetServerW(serviceclass : ::windows_sys::core::PCWSTR, servicename : ::windows_sys::core::PCWSTR, pcspnlength : *mut u32, pszspn : ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsCrackNamesA(hds : super::super::Foundation:: HANDLE, flags : DS_NAME_FLAGS, formatoffered : DS_NAME_FORMAT, formatdesired : DS_NAME_FORMAT, cnames : u32, rpnames : *const ::windows_sys::core::PCSTR, ppresult : *mut *mut DS_NAME_RESULTA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsCrackNamesW(hds : super::super::Foundation:: HANDLE, flags : DS_NAME_FLAGS, formatoffered : DS_NAME_FORMAT, formatdesired : DS_NAME_FORMAT, cnames : u32, rpnames : *const ::windows_sys::core::PCWSTR, ppresult : *mut *mut DS_NAME_RESULTW) -> u32); +::windows_targets::link!("dsparse.dll" "system" fn DsCrackSpn2A(pszspn : ::windows_sys::core::PCSTR, cspn : u32, pcserviceclass : *mut u32, serviceclass : ::windows_sys::core::PSTR, pcservicename : *mut u32, servicename : ::windows_sys::core::PSTR, pcinstancename : *mut u32, instancename : ::windows_sys::core::PSTR, pinstanceport : *mut u16) -> u32); +::windows_targets::link!("dsparse.dll" "system" fn DsCrackSpn2W(pszspn : ::windows_sys::core::PCWSTR, cspn : u32, pcserviceclass : *mut u32, serviceclass : ::windows_sys::core::PWSTR, pcservicename : *mut u32, servicename : ::windows_sys::core::PWSTR, pcinstancename : *mut u32, instancename : ::windows_sys::core::PWSTR, pinstanceport : *mut u16) -> u32); +::windows_targets::link!("dsparse.dll" "system" fn DsCrackSpn3W(pszspn : ::windows_sys::core::PCWSTR, cspn : u32, pchostname : *mut u32, hostname : ::windows_sys::core::PWSTR, pcinstancename : *mut u32, instancename : ::windows_sys::core::PWSTR, pportnumber : *mut u16, pcdomainname : *mut u32, domainname : ::windows_sys::core::PWSTR, pcrealmname : *mut u32, realmname : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("dsparse.dll" "system" fn DsCrackSpn4W(pszspn : ::windows_sys::core::PCWSTR, cspn : u32, pchostname : *mut u32, hostname : ::windows_sys::core::PWSTR, pcinstancename : *mut u32, instancename : ::windows_sys::core::PWSTR, pcportname : *mut u32, portname : ::windows_sys::core::PWSTR, pcdomainname : *mut u32, domainname : ::windows_sys::core::PWSTR, pcrealmname : *mut u32, realmname : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("dsparse.dll" "system" fn DsCrackSpnA(pszspn : ::windows_sys::core::PCSTR, pcserviceclass : *mut u32, serviceclass : ::windows_sys::core::PSTR, pcservicename : *mut u32, servicename : ::windows_sys::core::PSTR, pcinstancename : *mut u32, instancename : ::windows_sys::core::PSTR, pinstanceport : *mut u16) -> u32); +::windows_targets::link!("dsparse.dll" "system" fn DsCrackSpnW(pszspn : ::windows_sys::core::PCWSTR, pcserviceclass : *mut u32, serviceclass : ::windows_sys::core::PWSTR, pcservicename : *mut u32, servicename : ::windows_sys::core::PWSTR, pcinstancename : *mut u32, instancename : ::windows_sys::core::PWSTR, pinstanceport : *mut u16) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dsparse.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsCrackUnquotedMangledRdnA(pszrdn : ::windows_sys::core::PCSTR, cchrdn : u32, pguid : *mut ::windows_sys::core::GUID, pedsmanglefor : *mut DS_MANGLE_FOR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dsparse.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsCrackUnquotedMangledRdnW(pszrdn : ::windows_sys::core::PCWSTR, cchrdn : u32, pguid : *mut ::windows_sys::core::GUID, pedsmanglefor : *mut DS_MANGLE_FOR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("netapi32.dll" "system" fn DsDeregisterDnsHostRecordsA(servername : ::windows_sys::core::PCSTR, dnsdomainname : ::windows_sys::core::PCSTR, domainguid : *const ::windows_sys::core::GUID, dsaguid : *const ::windows_sys::core::GUID, dnshostname : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn DsDeregisterDnsHostRecordsW(servername : ::windows_sys::core::PCWSTR, dnsdomainname : ::windows_sys::core::PCWSTR, domainguid : *const ::windows_sys::core::GUID, dsaguid : *const ::windows_sys::core::GUID, dnshostname : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsEnumerateDomainTrustsA(servername : ::windows_sys::core::PCSTR, flags : u32, domains : *mut *mut DS_DOMAIN_TRUSTSA, domaincount : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsEnumerateDomainTrustsW(servername : ::windows_sys::core::PCWSTR, flags : u32, domains : *mut *mut DS_DOMAIN_TRUSTSW, domaincount : *mut u32) -> u32); +::windows_targets::link!("ntdsapi.dll" "system" fn DsFreeDomainControllerInfoA(infolevel : u32, cinfo : u32, pinfo : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntdsapi.dll" "system" fn DsFreeDomainControllerInfoW(infolevel : u32, cinfo : u32, pinfo : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntdsapi.dll" "system" fn DsFreeNameResultA(presult : *const DS_NAME_RESULTA) -> ()); +::windows_targets::link!("ntdsapi.dll" "system" fn DsFreeNameResultW(presult : *const DS_NAME_RESULTW) -> ()); +::windows_targets::link!("ntdsapi.dll" "system" fn DsFreePasswordCredentials(authidentity : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ntdsapi.dll" "system" fn DsFreeSchemaGuidMapA(pguidmap : *const DS_SCHEMA_GUID_MAPA) -> ()); +::windows_targets::link!("ntdsapi.dll" "system" fn DsFreeSchemaGuidMapW(pguidmap : *const DS_SCHEMA_GUID_MAPW) -> ()); +::windows_targets::link!("ntdsapi.dll" "system" fn DsFreeSpnArrayA(cspn : u32, rpszspn : *mut ::windows_sys::core::PSTR) -> ()); +::windows_targets::link!("ntdsapi.dll" "system" fn DsFreeSpnArrayW(cspn : u32, rpszspn : *mut ::windows_sys::core::PWSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsGetDcCloseW(getdccontexthandle : super::super::Foundation:: HANDLE) -> ()); +::windows_targets::link!("netapi32.dll" "system" fn DsGetDcNameA(computername : ::windows_sys::core::PCSTR, domainname : ::windows_sys::core::PCSTR, domainguid : *const ::windows_sys::core::GUID, sitename : ::windows_sys::core::PCSTR, flags : u32, domaincontrollerinfo : *mut *mut DOMAIN_CONTROLLER_INFOA) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn DsGetDcNameW(computername : ::windows_sys::core::PCWSTR, domainname : ::windows_sys::core::PCWSTR, domainguid : *const ::windows_sys::core::GUID, sitename : ::windows_sys::core::PCWSTR, flags : u32, domaincontrollerinfo : *mut *mut DOMAIN_CONTROLLER_INFOW) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn DsGetDcNextA(getdccontexthandle : super::super::Foundation:: HANDLE, sockaddresscount : *mut u32, sockaddresses : *mut *mut super::WinSock:: SOCKET_ADDRESS, dnshostname : *mut ::windows_sys::core::PSTR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] fn DsGetDcNextW(getdccontexthandle : super::super::Foundation:: HANDLE, sockaddresscount : *mut u32, sockaddresses : *mut *mut super::WinSock:: SOCKET_ADDRESS, dnshostname : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsGetDcOpenA(dnsname : ::windows_sys::core::PCSTR, optionflags : u32, sitename : ::windows_sys::core::PCSTR, domainguid : *const ::windows_sys::core::GUID, dnsforestname : ::windows_sys::core::PCSTR, dcflags : u32, retgetdccontext : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsGetDcOpenW(dnsname : ::windows_sys::core::PCWSTR, optionflags : u32, sitename : ::windows_sys::core::PCWSTR, domainguid : *const ::windows_sys::core::GUID, dnsforestname : ::windows_sys::core::PCWSTR, dcflags : u32, retgetdccontext : *mut super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn DsGetDcSiteCoverageA(servername : ::windows_sys::core::PCSTR, entrycount : *mut u32, sitenames : *mut *mut ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn DsGetDcSiteCoverageW(servername : ::windows_sys::core::PCWSTR, entrycount : *mut u32, sitenames : *mut *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsGetDomainControllerInfoA(hds : super::super::Foundation:: HANDLE, domainname : ::windows_sys::core::PCSTR, infolevel : u32, pcout : *mut u32, ppinfo : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsGetDomainControllerInfoW(hds : super::super::Foundation:: HANDLE, domainname : ::windows_sys::core::PCWSTR, infolevel : u32, pcout : *mut u32, ppinfo : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] fn DsGetForestTrustInformationW(servername : ::windows_sys::core::PCWSTR, trusteddomainname : ::windows_sys::core::PCWSTR, flags : u32, foresttrustinfo : *mut *mut super::super::Security::Authentication::Identity:: LSA_FOREST_TRUST_INFORMATION) -> u32); +::windows_targets::link!("dsuiext.dll" "system" fn DsGetFriendlyClassName(pszobjectclass : ::windows_sys::core::PCWSTR, pszbuffer : ::windows_sys::core::PWSTR, cchbuffer : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("dsuiext.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn DsGetIcon(dwflags : u32, pszobjectclass : ::windows_sys::core::PCWSTR, cximage : i32, cyimage : i32) -> super::super::UI::WindowsAndMessaging:: HICON); +::windows_targets::link!("dsparse.dll" "system" fn DsGetRdnW(ppdn : *mut ::windows_sys::core::PWSTR, pcdn : *mut u32, ppkey : *mut ::windows_sys::core::PWSTR, pckey : *mut u32, ppval : *mut ::windows_sys::core::PWSTR, pcval : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn DsGetSiteNameA(computername : ::windows_sys::core::PCSTR, sitename : *mut ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn DsGetSiteNameW(computername : ::windows_sys::core::PCWSTR, sitename : *mut ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("ntdsapi.dll" "system" fn DsGetSpnA(servicetype : DS_SPN_NAME_TYPE, serviceclass : ::windows_sys::core::PCSTR, servicename : ::windows_sys::core::PCSTR, instanceport : u16, cinstancenames : u16, pinstancenames : *const ::windows_sys::core::PCSTR, pinstanceports : *const u16, pcspn : *mut u32, prpszspn : *mut *mut ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("ntdsapi.dll" "system" fn DsGetSpnW(servicetype : DS_SPN_NAME_TYPE, serviceclass : ::windows_sys::core::PCWSTR, servicename : ::windows_sys::core::PCWSTR, instanceport : u16, cinstancenames : u16, pinstancenames : *const ::windows_sys::core::PCWSTR, pinstanceports : *const u16, pcspn : *mut u32, prpszspn : *mut *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsInheritSecurityIdentityA(hds : super::super::Foundation:: HANDLE, flags : u32, srcprincipal : ::windows_sys::core::PCSTR, dstprincipal : ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsInheritSecurityIdentityW(hds : super::super::Foundation:: HANDLE, flags : u32, srcprincipal : ::windows_sys::core::PCWSTR, dstprincipal : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dsparse.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsIsMangledDnA(pszdn : ::windows_sys::core::PCSTR, edsmanglefor : DS_MANGLE_FOR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dsparse.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsIsMangledDnW(pszdn : ::windows_sys::core::PCWSTR, edsmanglefor : DS_MANGLE_FOR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dsparse.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsIsMangledRdnValueA(pszrdn : ::windows_sys::core::PCSTR, crdn : u32, edsmanglefordesired : DS_MANGLE_FOR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dsparse.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsIsMangledRdnValueW(pszrdn : ::windows_sys::core::PCWSTR, crdn : u32, edsmanglefordesired : DS_MANGLE_FOR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsListDomainsInSiteA(hds : super::super::Foundation:: HANDLE, site : ::windows_sys::core::PCSTR, ppdomains : *mut *mut DS_NAME_RESULTA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsListDomainsInSiteW(hds : super::super::Foundation:: HANDLE, site : ::windows_sys::core::PCWSTR, ppdomains : *mut *mut DS_NAME_RESULTW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsListInfoForServerA(hds : super::super::Foundation:: HANDLE, server : ::windows_sys::core::PCSTR, ppinfo : *mut *mut DS_NAME_RESULTA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsListInfoForServerW(hds : super::super::Foundation:: HANDLE, server : ::windows_sys::core::PCWSTR, ppinfo : *mut *mut DS_NAME_RESULTW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsListRolesA(hds : super::super::Foundation:: HANDLE, pproles : *mut *mut DS_NAME_RESULTA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsListRolesW(hds : super::super::Foundation:: HANDLE, pproles : *mut *mut DS_NAME_RESULTW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsListServersForDomainInSiteA(hds : super::super::Foundation:: HANDLE, domain : ::windows_sys::core::PCSTR, site : ::windows_sys::core::PCSTR, ppservers : *mut *mut DS_NAME_RESULTA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsListServersForDomainInSiteW(hds : super::super::Foundation:: HANDLE, domain : ::windows_sys::core::PCWSTR, site : ::windows_sys::core::PCWSTR, ppservers : *mut *mut DS_NAME_RESULTW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsListServersInSiteA(hds : super::super::Foundation:: HANDLE, site : ::windows_sys::core::PCSTR, ppservers : *mut *mut DS_NAME_RESULTA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsListServersInSiteW(hds : super::super::Foundation:: HANDLE, site : ::windows_sys::core::PCWSTR, ppservers : *mut *mut DS_NAME_RESULTW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsListSitesA(hds : super::super::Foundation:: HANDLE, ppsites : *mut *mut DS_NAME_RESULTA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsListSitesW(hds : super::super::Foundation:: HANDLE, ppsites : *mut *mut DS_NAME_RESULTW) -> u32); +::windows_targets::link!("ntdsapi.dll" "system" fn DsMakePasswordCredentialsA(user : ::windows_sys::core::PCSTR, domain : ::windows_sys::core::PCSTR, password : ::windows_sys::core::PCSTR, pauthidentity : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("ntdsapi.dll" "system" fn DsMakePasswordCredentialsW(user : ::windows_sys::core::PCWSTR, domain : ::windows_sys::core::PCWSTR, password : ::windows_sys::core::PCWSTR, pauthidentity : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("dsparse.dll" "system" fn DsMakeSpnA(serviceclass : ::windows_sys::core::PCSTR, servicename : ::windows_sys::core::PCSTR, instancename : ::windows_sys::core::PCSTR, instanceport : u16, referrer : ::windows_sys::core::PCSTR, pcspnlength : *mut u32, pszspn : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("dsparse.dll" "system" fn DsMakeSpnW(serviceclass : ::windows_sys::core::PCWSTR, servicename : ::windows_sys::core::PCWSTR, instancename : ::windows_sys::core::PCWSTR, instanceport : u16, referrer : ::windows_sys::core::PCWSTR, pcspnlength : *mut u32, pszspn : ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsMapSchemaGuidsA(hds : super::super::Foundation:: HANDLE, cguids : u32, rguids : *const ::windows_sys::core::GUID, ppguidmap : *mut *mut DS_SCHEMA_GUID_MAPA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsMapSchemaGuidsW(hds : super::super::Foundation:: HANDLE, cguids : u32, rguids : *const ::windows_sys::core::GUID, ppguidmap : *mut *mut DS_SCHEMA_GUID_MAPW) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] fn DsMergeForestTrustInformationW(domainname : ::windows_sys::core::PCWSTR, newforesttrustinfo : *const super::super::Security::Authentication::Identity:: LSA_FOREST_TRUST_INFORMATION, oldforesttrustinfo : *const super::super::Security::Authentication::Identity:: LSA_FOREST_TRUST_INFORMATION, mergedforesttrustinfo : *mut *mut super::super::Security::Authentication::Identity:: LSA_FOREST_TRUST_INFORMATION) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsQuerySitesByCostA(hds : super::super::Foundation:: HANDLE, pszfromsite : ::windows_sys::core::PCSTR, rgsztosites : *const ::windows_sys::core::PCSTR, ctosites : u32, dwflags : u32, prgsiteinfo : *mut *mut DS_SITE_COST_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsQuerySitesByCostW(hds : super::super::Foundation:: HANDLE, pwszfromsite : ::windows_sys::core::PCWSTR, rgwsztosites : *const ::windows_sys::core::PCWSTR, ctosites : u32, dwflags : u32, prgsiteinfo : *mut *mut DS_SITE_COST_INFO) -> u32); +::windows_targets::link!("ntdsapi.dll" "system" fn DsQuerySitesFree(rgsiteinfo : *const DS_SITE_COST_INFO) -> ()); +::windows_targets::link!("dsparse.dll" "system" fn DsQuoteRdnValueA(cunquotedrdnvaluelength : u32, psunquotedrdnvalue : ::windows_sys::core::PCSTR, pcquotedrdnvaluelength : *mut u32, psquotedrdnvalue : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("dsparse.dll" "system" fn DsQuoteRdnValueW(cunquotedrdnvaluelength : u32, psunquotedrdnvalue : ::windows_sys::core::PCWSTR, pcquotedrdnvaluelength : *mut u32, psquotedrdnvalue : ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsRemoveDsDomainA(hds : super::super::Foundation:: HANDLE, domaindn : ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsRemoveDsDomainW(hds : super::super::Foundation:: HANDLE, domaindn : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsRemoveDsServerA(hds : super::super::Foundation:: HANDLE, serverdn : ::windows_sys::core::PCSTR, domaindn : ::windows_sys::core::PCSTR, flastdcindomain : *mut super::super::Foundation:: BOOL, fcommit : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsRemoveDsServerW(hds : super::super::Foundation:: HANDLE, serverdn : ::windows_sys::core::PCWSTR, domaindn : ::windows_sys::core::PCWSTR, flastdcindomain : *mut super::super::Foundation:: BOOL, fcommit : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaAddA(hds : super::super::Foundation:: HANDLE, namecontext : ::windows_sys::core::PCSTR, sourcedsadn : ::windows_sys::core::PCSTR, transportdn : ::windows_sys::core::PCSTR, sourcedsaaddress : ::windows_sys::core::PCSTR, pschedule : *const SCHEDULE, options : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaAddW(hds : super::super::Foundation:: HANDLE, namecontext : ::windows_sys::core::PCWSTR, sourcedsadn : ::windows_sys::core::PCWSTR, transportdn : ::windows_sys::core::PCWSTR, sourcedsaaddress : ::windows_sys::core::PCWSTR, pschedule : *const SCHEDULE, options : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaConsistencyCheck(hds : super::super::Foundation:: HANDLE, taskid : DS_KCC_TASKID, dwflags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaDelA(hds : super::super::Foundation:: HANDLE, namecontext : ::windows_sys::core::PCSTR, dsasrc : ::windows_sys::core::PCSTR, options : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaDelW(hds : super::super::Foundation:: HANDLE, namecontext : ::windows_sys::core::PCWSTR, dsasrc : ::windows_sys::core::PCWSTR, options : u32) -> u32); +::windows_targets::link!("ntdsapi.dll" "system" fn DsReplicaFreeInfo(infotype : DS_REPL_INFO_TYPE, pinfo : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaGetInfo2W(hds : super::super::Foundation:: HANDLE, infotype : DS_REPL_INFO_TYPE, pszobject : ::windows_sys::core::PCWSTR, puuidforsourcedsaobjguid : *const ::windows_sys::core::GUID, pszattributename : ::windows_sys::core::PCWSTR, pszvalue : ::windows_sys::core::PCWSTR, dwflags : u32, dwenumerationcontext : u32, ppinfo : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaGetInfoW(hds : super::super::Foundation:: HANDLE, infotype : DS_REPL_INFO_TYPE, pszobject : ::windows_sys::core::PCWSTR, puuidforsourcedsaobjguid : *const ::windows_sys::core::GUID, ppinfo : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaModifyA(hds : super::super::Foundation:: HANDLE, namecontext : ::windows_sys::core::PCSTR, puuidsourcedsa : *const ::windows_sys::core::GUID, transportdn : ::windows_sys::core::PCSTR, sourcedsaaddress : ::windows_sys::core::PCSTR, pschedule : *const SCHEDULE, replicaflags : u32, modifyfields : u32, options : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaModifyW(hds : super::super::Foundation:: HANDLE, namecontext : ::windows_sys::core::PCWSTR, puuidsourcedsa : *const ::windows_sys::core::GUID, transportdn : ::windows_sys::core::PCWSTR, sourcedsaaddress : ::windows_sys::core::PCWSTR, pschedule : *const SCHEDULE, replicaflags : u32, modifyfields : u32, options : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaSyncA(hds : super::super::Foundation:: HANDLE, namecontext : ::windows_sys::core::PCSTR, puuiddsasrc : *const ::windows_sys::core::GUID, options : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaSyncAllA(hds : super::super::Foundation:: HANDLE, psznamecontext : ::windows_sys::core::PCSTR, ulflags : u32, pfncallback : isize, pcallbackdata : *const ::core::ffi::c_void, perrors : *mut *mut *mut DS_REPSYNCALL_ERRINFOA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaSyncAllW(hds : super::super::Foundation:: HANDLE, psznamecontext : ::windows_sys::core::PCWSTR, ulflags : u32, pfncallback : isize, pcallbackdata : *const ::core::ffi::c_void, perrors : *mut *mut *mut DS_REPSYNCALL_ERRINFOW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaSyncW(hds : super::super::Foundation:: HANDLE, namecontext : ::windows_sys::core::PCWSTR, puuiddsasrc : *const ::windows_sys::core::GUID, options : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaUpdateRefsA(hds : super::super::Foundation:: HANDLE, namecontext : ::windows_sys::core::PCSTR, dsadest : ::windows_sys::core::PCSTR, puuiddsadest : *const ::windows_sys::core::GUID, options : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaUpdateRefsW(hds : super::super::Foundation:: HANDLE, namecontext : ::windows_sys::core::PCWSTR, dsadest : ::windows_sys::core::PCWSTR, puuiddsadest : *const ::windows_sys::core::GUID, options : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaVerifyObjectsA(hds : super::super::Foundation:: HANDLE, namecontext : ::windows_sys::core::PCSTR, puuiddsasrc : *const ::windows_sys::core::GUID, uloptions : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsReplicaVerifyObjectsW(hds : super::super::Foundation:: HANDLE, namecontext : ::windows_sys::core::PCWSTR, puuiddsasrc : *const ::windows_sys::core::GUID, uloptions : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn DsRoleFreeMemory(buffer : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("netapi32.dll" "system" fn DsRoleGetPrimaryDomainInformation(lpserver : ::windows_sys::core::PCWSTR, infolevel : DSROLE_PRIMARY_DOMAIN_INFO_LEVEL, buffer : *mut *mut u8) -> u32); +::windows_targets::link!("ntdsapi.dll" "system" fn DsServerRegisterSpnA(operation : DS_SPN_WRITE_OP, serviceclass : ::windows_sys::core::PCSTR, userobjectdn : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("ntdsapi.dll" "system" fn DsServerRegisterSpnW(operation : DS_SPN_WRITE_OP, serviceclass : ::windows_sys::core::PCWSTR, userobjectdn : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsUnBindA(phds : *const super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsUnBindW(phds : *const super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("dsparse.dll" "system" fn DsUnquoteRdnValueA(cquotedrdnvaluelength : u32, psquotedrdnvalue : ::windows_sys::core::PCSTR, pcunquotedrdnvaluelength : *mut u32, psunquotedrdnvalue : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("dsparse.dll" "system" fn DsUnquoteRdnValueW(cquotedrdnvaluelength : u32, psquotedrdnvalue : ::windows_sys::core::PCWSTR, pcunquotedrdnvaluelength : *mut u32, psunquotedrdnvalue : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn DsValidateSubnetNameA(subnetname : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn DsValidateSubnetNameW(subnetname : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsWriteAccountSpnA(hds : super::super::Foundation:: HANDLE, operation : DS_SPN_WRITE_OP, pszaccount : ::windows_sys::core::PCSTR, cspn : u32, rpszspn : *const ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdsapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DsWriteAccountSpnW(hds : super::super::Foundation:: HANDLE, operation : DS_SPN_WRITE_OP, pszaccount : ::windows_sys::core::PCWSTR, cspn : u32, rpszspn : *const ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("activeds.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeADsMem(pmem : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("activeds.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeADsStr(pstr : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("activeds.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn PropVariantToAdsType(pvariant : *mut super::super::System::Variant:: VARIANT, dwnumvariant : u32, ppadsvalues : *mut *mut ADSVALUE, pdwnumvalues : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("activeds.dll" "system" fn ReallocADsMem(poldmem : *mut ::core::ffi::c_void, cbold : u32, cbnew : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("activeds.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReallocADsStr(ppstr : *mut ::windows_sys::core::PWSTR, pstr : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("activeds.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn SecurityDescriptorToBinarySD(vvarsecdes : super::super::System::Variant:: VARIANT, ppsecuritydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR, pdwsdlength : *mut u32, pszservername : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, password : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +pub type IADs = *mut ::core::ffi::c_void; +pub type IADsADSystemInfo = *mut ::core::ffi::c_void; +pub type IADsAccessControlEntry = *mut ::core::ffi::c_void; +pub type IADsAccessControlList = *mut ::core::ffi::c_void; +pub type IADsAcl = *mut ::core::ffi::c_void; +pub type IADsAggregatee = *mut ::core::ffi::c_void; +pub type IADsAggregator = *mut ::core::ffi::c_void; +pub type IADsBackLink = *mut ::core::ffi::c_void; +pub type IADsCaseIgnoreList = *mut ::core::ffi::c_void; +pub type IADsClass = *mut ::core::ffi::c_void; +pub type IADsCollection = *mut ::core::ffi::c_void; +pub type IADsComputer = *mut ::core::ffi::c_void; +pub type IADsComputerOperations = *mut ::core::ffi::c_void; +pub type IADsContainer = *mut ::core::ffi::c_void; +pub type IADsDNWithBinary = *mut ::core::ffi::c_void; +pub type IADsDNWithString = *mut ::core::ffi::c_void; +pub type IADsDeleteOps = *mut ::core::ffi::c_void; +pub type IADsDomain = *mut ::core::ffi::c_void; +pub type IADsEmail = *mut ::core::ffi::c_void; +pub type IADsExtension = *mut ::core::ffi::c_void; +pub type IADsFaxNumber = *mut ::core::ffi::c_void; +pub type IADsFileService = *mut ::core::ffi::c_void; +pub type IADsFileServiceOperations = *mut ::core::ffi::c_void; +pub type IADsFileShare = *mut ::core::ffi::c_void; +pub type IADsGroup = *mut ::core::ffi::c_void; +pub type IADsHold = *mut ::core::ffi::c_void; +pub type IADsLargeInteger = *mut ::core::ffi::c_void; +pub type IADsLocality = *mut ::core::ffi::c_void; +pub type IADsMembers = *mut ::core::ffi::c_void; +pub type IADsNameTranslate = *mut ::core::ffi::c_void; +pub type IADsNamespaces = *mut ::core::ffi::c_void; +pub type IADsNetAddress = *mut ::core::ffi::c_void; +pub type IADsO = *mut ::core::ffi::c_void; +pub type IADsOU = *mut ::core::ffi::c_void; +pub type IADsObjectOptions = *mut ::core::ffi::c_void; +pub type IADsOctetList = *mut ::core::ffi::c_void; +pub type IADsOpenDSObject = *mut ::core::ffi::c_void; +pub type IADsPath = *mut ::core::ffi::c_void; +pub type IADsPathname = *mut ::core::ffi::c_void; +pub type IADsPostalAddress = *mut ::core::ffi::c_void; +pub type IADsPrintJob = *mut ::core::ffi::c_void; +pub type IADsPrintJobOperations = *mut ::core::ffi::c_void; +pub type IADsPrintQueue = *mut ::core::ffi::c_void; +pub type IADsPrintQueueOperations = *mut ::core::ffi::c_void; +pub type IADsProperty = *mut ::core::ffi::c_void; +pub type IADsPropertyEntry = *mut ::core::ffi::c_void; +pub type IADsPropertyList = *mut ::core::ffi::c_void; +pub type IADsPropertyValue = *mut ::core::ffi::c_void; +pub type IADsPropertyValue2 = *mut ::core::ffi::c_void; +pub type IADsReplicaPointer = *mut ::core::ffi::c_void; +pub type IADsResource = *mut ::core::ffi::c_void; +pub type IADsSecurityDescriptor = *mut ::core::ffi::c_void; +pub type IADsSecurityUtility = *mut ::core::ffi::c_void; +pub type IADsService = *mut ::core::ffi::c_void; +pub type IADsServiceOperations = *mut ::core::ffi::c_void; +pub type IADsSession = *mut ::core::ffi::c_void; +pub type IADsSyntax = *mut ::core::ffi::c_void; +pub type IADsTimestamp = *mut ::core::ffi::c_void; +pub type IADsTypedName = *mut ::core::ffi::c_void; +pub type IADsUser = *mut ::core::ffi::c_void; +pub type IADsWinNTSystemInfo = *mut ::core::ffi::c_void; +pub type ICommonQuery = *mut ::core::ffi::c_void; +pub type IDirectoryObject = *mut ::core::ffi::c_void; +pub type IDirectorySchemaMgmt = *mut ::core::ffi::c_void; +pub type IDirectorySearch = *mut ::core::ffi::c_void; +pub type IDsAdminCreateObj = *mut ::core::ffi::c_void; +pub type IDsAdminNewObj = *mut ::core::ffi::c_void; +pub type IDsAdminNewObjExt = *mut ::core::ffi::c_void; +pub type IDsAdminNewObjPrimarySite = *mut ::core::ffi::c_void; +pub type IDsAdminNotifyHandler = *mut ::core::ffi::c_void; +pub type IDsBrowseDomainTree = *mut ::core::ffi::c_void; +pub type IDsDisplaySpecifier = *mut ::core::ffi::c_void; +pub type IDsObjectPicker = *mut ::core::ffi::c_void; +pub type IDsObjectPickerCredentials = *mut ::core::ffi::c_void; +pub type IPersistQuery = *mut ::core::ffi::c_void; +pub type IPrivateDispatch = *mut ::core::ffi::c_void; +pub type IPrivateUnknown = *mut ::core::ffi::c_void; +pub type IQueryForm = *mut ::core::ffi::c_void; +pub const ACTRL_DS_CONTROL_ACCESS: u32 = 256u32; +pub const ACTRL_DS_CREATE_CHILD: u32 = 1u32; +pub const ACTRL_DS_DELETE_CHILD: u32 = 2u32; +pub const ACTRL_DS_DELETE_TREE: u32 = 64u32; +pub const ACTRL_DS_LIST: u32 = 4u32; +pub const ACTRL_DS_LIST_OBJECT: u32 = 128u32; +pub const ACTRL_DS_OPEN: u32 = 0u32; +pub const ACTRL_DS_READ_PROP: u32 = 16u32; +pub const ACTRL_DS_SELF: u32 = 8u32; +pub const ACTRL_DS_WRITE_PROP: u32 = 32u32; +pub const ADAM_REPL_AUTHENTICATION_MODE_MUTUAL_AUTH_REQUIRED: u32 = 2u32; +pub const ADAM_REPL_AUTHENTICATION_MODE_NEGOTIATE: u32 = 1u32; +pub const ADAM_REPL_AUTHENTICATION_MODE_NEGOTIATE_PASS_THROUGH: u32 = 0u32; +pub const ADAM_SCP_FSMO_NAMING_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("naming"); +pub const ADAM_SCP_FSMO_NAMING_STRING_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("naming"); +pub const ADAM_SCP_FSMO_SCHEMA_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("schema"); +pub const ADAM_SCP_FSMO_SCHEMA_STRING_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("schema"); +pub const ADAM_SCP_FSMO_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("fsmo:"); +pub const ADAM_SCP_FSMO_STRING_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("fsmo:"); +pub const ADAM_SCP_INSTANCE_NAME_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("instance:"); +pub const ADAM_SCP_INSTANCE_NAME_STRING_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("instance:"); +pub const ADAM_SCP_PARTITION_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("partition:"); +pub const ADAM_SCP_PARTITION_STRING_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("partition:"); +pub const ADAM_SCP_SITE_NAME_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("site:"); +pub const ADAM_SCP_SITE_NAME_STRING_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("site:"); +pub const ADSIPROP_ADSIFLAG: ADS_PREFERENCES_ENUM = 12i32; +pub const ADSIPROP_ASYNCHRONOUS: ADS_PREFERENCES_ENUM = 0i32; +pub const ADSIPROP_ATTRIBTYPES_ONLY: ADS_PREFERENCES_ENUM = 4i32; +pub const ADSIPROP_CACHE_RESULTS: ADS_PREFERENCES_ENUM = 11i32; +pub const ADSIPROP_CHASE_REFERRALS: ADS_PREFERENCES_ENUM = 9i32; +pub const ADSIPROP_DEREF_ALIASES: ADS_PREFERENCES_ENUM = 1i32; +pub const ADSIPROP_PAGED_TIME_LIMIT: ADS_PREFERENCES_ENUM = 8i32; +pub const ADSIPROP_PAGESIZE: ADS_PREFERENCES_ENUM = 7i32; +pub const ADSIPROP_SEARCH_SCOPE: ADS_PREFERENCES_ENUM = 5i32; +pub const ADSIPROP_SIZE_LIMIT: ADS_PREFERENCES_ENUM = 2i32; +pub const ADSIPROP_SORT_ON: ADS_PREFERENCES_ENUM = 10i32; +pub const ADSIPROP_TIMEOUT: ADS_PREFERENCES_ENUM = 6i32; +pub const ADSIPROP_TIME_LIMIT: ADS_PREFERENCES_ENUM = 3i32; +pub const ADSI_DIALECT_LDAP: ADSI_DIALECT_ENUM = 0i32; +pub const ADSI_DIALECT_SQL: ADSI_DIALECT_ENUM = 1i32; +pub const ADSTYPE_BACKLINK: ADSTYPE = 18i32; +pub const ADSTYPE_BOOLEAN: ADSTYPE = 6i32; +pub const ADSTYPE_CASEIGNORE_LIST: ADSTYPE = 13i32; +pub const ADSTYPE_CASE_EXACT_STRING: ADSTYPE = 2i32; +pub const ADSTYPE_CASE_IGNORE_STRING: ADSTYPE = 3i32; +pub const ADSTYPE_DN_STRING: ADSTYPE = 1i32; +pub const ADSTYPE_DN_WITH_BINARY: ADSTYPE = 27i32; +pub const ADSTYPE_DN_WITH_STRING: ADSTYPE = 28i32; +pub const ADSTYPE_EMAIL: ADSTYPE = 24i32; +pub const ADSTYPE_FAXNUMBER: ADSTYPE = 23i32; +pub const ADSTYPE_HOLD: ADSTYPE = 20i32; +pub const ADSTYPE_INTEGER: ADSTYPE = 7i32; +pub const ADSTYPE_INVALID: ADSTYPE = 0i32; +pub const ADSTYPE_LARGE_INTEGER: ADSTYPE = 10i32; +pub const ADSTYPE_NETADDRESS: ADSTYPE = 21i32; +pub const ADSTYPE_NT_SECURITY_DESCRIPTOR: ADSTYPE = 25i32; +pub const ADSTYPE_NUMERIC_STRING: ADSTYPE = 5i32; +pub const ADSTYPE_OBJECT_CLASS: ADSTYPE = 12i32; +pub const ADSTYPE_OCTET_LIST: ADSTYPE = 14i32; +pub const ADSTYPE_OCTET_STRING: ADSTYPE = 8i32; +pub const ADSTYPE_PATH: ADSTYPE = 15i32; +pub const ADSTYPE_POSTALADDRESS: ADSTYPE = 16i32; +pub const ADSTYPE_PRINTABLE_STRING: ADSTYPE = 4i32; +pub const ADSTYPE_PROV_SPECIFIC: ADSTYPE = 11i32; +pub const ADSTYPE_REPLICAPOINTER: ADSTYPE = 22i32; +pub const ADSTYPE_TIMESTAMP: ADSTYPE = 17i32; +pub const ADSTYPE_TYPEDNAME: ADSTYPE = 19i32; +pub const ADSTYPE_UNKNOWN: ADSTYPE = 26i32; +pub const ADSTYPE_UTC_TIME: ADSTYPE = 9i32; +pub const ADS_ACEFLAG_FAILED_ACCESS: ADS_ACEFLAG_ENUM = 128i32; +pub const ADS_ACEFLAG_INHERITED_ACE: ADS_ACEFLAG_ENUM = 16i32; +pub const ADS_ACEFLAG_INHERIT_ACE: ADS_ACEFLAG_ENUM = 2i32; +pub const ADS_ACEFLAG_INHERIT_ONLY_ACE: ADS_ACEFLAG_ENUM = 8i32; +pub const ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE: ADS_ACEFLAG_ENUM = 4i32; +pub const ADS_ACEFLAG_SUCCESSFUL_ACCESS: ADS_ACEFLAG_ENUM = 64i32; +pub const ADS_ACEFLAG_VALID_INHERIT_FLAGS: ADS_ACEFLAG_ENUM = 31i32; +pub const ADS_ACETYPE_ACCESS_ALLOWED: ADS_ACETYPE_ENUM = 0i32; +pub const ADS_ACETYPE_ACCESS_ALLOWED_CALLBACK: ADS_ACETYPE_ENUM = 9i32; +pub const ADS_ACETYPE_ACCESS_ALLOWED_CALLBACK_OBJECT: ADS_ACETYPE_ENUM = 11i32; +pub const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT: ADS_ACETYPE_ENUM = 5i32; +pub const ADS_ACETYPE_ACCESS_DENIED: ADS_ACETYPE_ENUM = 1i32; +pub const ADS_ACETYPE_ACCESS_DENIED_CALLBACK: ADS_ACETYPE_ENUM = 10i32; +pub const ADS_ACETYPE_ACCESS_DENIED_CALLBACK_OBJECT: ADS_ACETYPE_ENUM = 12i32; +pub const ADS_ACETYPE_ACCESS_DENIED_OBJECT: ADS_ACETYPE_ENUM = 6i32; +pub const ADS_ACETYPE_SYSTEM_ALARM_CALLBACK: ADS_ACETYPE_ENUM = 14i32; +pub const ADS_ACETYPE_SYSTEM_ALARM_CALLBACK_OBJECT: ADS_ACETYPE_ENUM = 16i32; +pub const ADS_ACETYPE_SYSTEM_ALARM_OBJECT: ADS_ACETYPE_ENUM = 8i32; +pub const ADS_ACETYPE_SYSTEM_AUDIT: ADS_ACETYPE_ENUM = 2i32; +pub const ADS_ACETYPE_SYSTEM_AUDIT_CALLBACK: ADS_ACETYPE_ENUM = 13i32; +pub const ADS_ACETYPE_SYSTEM_AUDIT_CALLBACK_OBJECT: ADS_ACETYPE_ENUM = 15i32; +pub const ADS_ACETYPE_SYSTEM_AUDIT_OBJECT: ADS_ACETYPE_ENUM = 7i32; +pub const ADS_ATTR_APPEND: u32 = 3u32; +pub const ADS_ATTR_CLEAR: u32 = 1u32; +pub const ADS_ATTR_DELETE: u32 = 4u32; +pub const ADS_ATTR_UPDATE: u32 = 2u32; +pub const ADS_AUTH_RESERVED: ADS_AUTHENTICATION_ENUM = 2147483648u32; +pub const ADS_CHASE_REFERRALS_ALWAYS: ADS_CHASE_REFERRALS_ENUM = 96i32; +pub const ADS_CHASE_REFERRALS_EXTERNAL: ADS_CHASE_REFERRALS_ENUM = 64i32; +pub const ADS_CHASE_REFERRALS_NEVER: ADS_CHASE_REFERRALS_ENUM = 0i32; +pub const ADS_CHASE_REFERRALS_SUBORDINATE: ADS_CHASE_REFERRALS_ENUM = 32i32; +pub const ADS_DEREF_ALWAYS: ADS_DEREFENUM = 3i32; +pub const ADS_DEREF_FINDING: ADS_DEREFENUM = 2i32; +pub const ADS_DEREF_NEVER: ADS_DEREFENUM = 0i32; +pub const ADS_DEREF_SEARCHING: ADS_DEREFENUM = 1i32; +pub const ADS_DISPLAY_FULL: ADS_DISPLAY_ENUM = 1i32; +pub const ADS_DISPLAY_VALUE_ONLY: ADS_DISPLAY_ENUM = 2i32; +pub const ADS_ESCAPEDMODE_DEFAULT: ADS_ESCAPE_MODE_ENUM = 1i32; +pub const ADS_ESCAPEDMODE_OFF: ADS_ESCAPE_MODE_ENUM = 3i32; +pub const ADS_ESCAPEDMODE_OFF_EX: ADS_ESCAPE_MODE_ENUM = 4i32; +pub const ADS_ESCAPEDMODE_ON: ADS_ESCAPE_MODE_ENUM = 2i32; +pub const ADS_EXT_INITCREDENTIALS: u32 = 1u32; +pub const ADS_EXT_INITIALIZE_COMPLETE: u32 = 2u32; +pub const ADS_EXT_MAXEXTDISPID: u32 = 16777215u32; +pub const ADS_EXT_MINEXTDISPID: u32 = 1u32; +pub const ADS_FAST_BIND: ADS_AUTHENTICATION_ENUM = 32u32; +pub const ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT: ADS_FLAGTYPE_ENUM = 2i32; +pub const ADS_FLAG_OBJECT_TYPE_PRESENT: ADS_FLAGTYPE_ENUM = 1i32; +pub const ADS_FORMAT_LEAF: ADS_FORMAT_ENUM = 11i32; +pub const ADS_FORMAT_PROVIDER: ADS_FORMAT_ENUM = 10i32; +pub const ADS_FORMAT_SERVER: ADS_FORMAT_ENUM = 9i32; +pub const ADS_FORMAT_WINDOWS: ADS_FORMAT_ENUM = 1i32; +pub const ADS_FORMAT_WINDOWS_DN: ADS_FORMAT_ENUM = 3i32; +pub const ADS_FORMAT_WINDOWS_NO_SERVER: ADS_FORMAT_ENUM = 2i32; +pub const ADS_FORMAT_WINDOWS_PARENT: ADS_FORMAT_ENUM = 4i32; +pub const ADS_FORMAT_X500: ADS_FORMAT_ENUM = 5i32; +pub const ADS_FORMAT_X500_DN: ADS_FORMAT_ENUM = 7i32; +pub const ADS_FORMAT_X500_NO_SERVER: ADS_FORMAT_ENUM = 6i32; +pub const ADS_FORMAT_X500_PARENT: ADS_FORMAT_ENUM = 8i32; +pub const ADS_GROUP_TYPE_DOMAIN_LOCAL_GROUP: ADS_GROUP_TYPE_ENUM = 4i32; +pub const ADS_GROUP_TYPE_GLOBAL_GROUP: ADS_GROUP_TYPE_ENUM = 2i32; +pub const ADS_GROUP_TYPE_LOCAL_GROUP: ADS_GROUP_TYPE_ENUM = 4i32; +pub const ADS_GROUP_TYPE_SECURITY_ENABLED: ADS_GROUP_TYPE_ENUM = -2147483648i32; +pub const ADS_GROUP_TYPE_UNIVERSAL_GROUP: ADS_GROUP_TYPE_ENUM = 8i32; +pub const ADS_NAME_INITTYPE_DOMAIN: ADS_NAME_INITTYPE_ENUM = 1i32; +pub const ADS_NAME_INITTYPE_GC: ADS_NAME_INITTYPE_ENUM = 3i32; +pub const ADS_NAME_INITTYPE_SERVER: ADS_NAME_INITTYPE_ENUM = 2i32; +pub const ADS_NAME_TYPE_1779: ADS_NAME_TYPE_ENUM = 1i32; +pub const ADS_NAME_TYPE_CANONICAL: ADS_NAME_TYPE_ENUM = 2i32; +pub const ADS_NAME_TYPE_CANONICAL_EX: ADS_NAME_TYPE_ENUM = 10i32; +pub const ADS_NAME_TYPE_DISPLAY: ADS_NAME_TYPE_ENUM = 4i32; +pub const ADS_NAME_TYPE_DOMAIN_SIMPLE: ADS_NAME_TYPE_ENUM = 5i32; +pub const ADS_NAME_TYPE_ENTERPRISE_SIMPLE: ADS_NAME_TYPE_ENUM = 6i32; +pub const ADS_NAME_TYPE_GUID: ADS_NAME_TYPE_ENUM = 7i32; +pub const ADS_NAME_TYPE_NT4: ADS_NAME_TYPE_ENUM = 3i32; +pub const ADS_NAME_TYPE_SERVICE_PRINCIPAL_NAME: ADS_NAME_TYPE_ENUM = 11i32; +pub const ADS_NAME_TYPE_SID_OR_SID_HISTORY_NAME: ADS_NAME_TYPE_ENUM = 12i32; +pub const ADS_NAME_TYPE_UNKNOWN: ADS_NAME_TYPE_ENUM = 8i32; +pub const ADS_NAME_TYPE_USER_PRINCIPAL_NAME: ADS_NAME_TYPE_ENUM = 9i32; +pub const ADS_NO_AUTHENTICATION: ADS_AUTHENTICATION_ENUM = 16u32; +pub const ADS_NO_REFERRAL_CHASING: ADS_AUTHENTICATION_ENUM = 1024u32; +pub const ADS_OPTION_ACCUMULATIVE_MODIFICATION: ADS_OPTION_ENUM = 8i32; +pub const ADS_OPTION_MUTUAL_AUTH_STATUS: ADS_OPTION_ENUM = 4i32; +pub const ADS_OPTION_PAGE_SIZE: ADS_OPTION_ENUM = 2i32; +pub const ADS_OPTION_PASSWORD_METHOD: ADS_OPTION_ENUM = 7i32; +pub const ADS_OPTION_PASSWORD_PORTNUMBER: ADS_OPTION_ENUM = 6i32; +pub const ADS_OPTION_QUOTA: ADS_OPTION_ENUM = 5i32; +pub const ADS_OPTION_REFERRALS: ADS_OPTION_ENUM = 1i32; +pub const ADS_OPTION_SECURITY_MASK: ADS_OPTION_ENUM = 3i32; +pub const ADS_OPTION_SERVERNAME: ADS_OPTION_ENUM = 0i32; +pub const ADS_OPTION_SKIP_SID_LOOKUP: ADS_OPTION_ENUM = 9i32; +pub const ADS_PASSWORD_ENCODE_CLEAR: ADS_PASSWORD_ENCODING_ENUM = 1i32; +pub const ADS_PASSWORD_ENCODE_REQUIRE_SSL: ADS_PASSWORD_ENCODING_ENUM = 0i32; +pub const ADS_PATH_FILE: ADS_PATHTYPE_ENUM = 1i32; +pub const ADS_PATH_FILESHARE: ADS_PATHTYPE_ENUM = 2i32; +pub const ADS_PATH_REGISTRY: ADS_PATHTYPE_ENUM = 3i32; +pub const ADS_PROMPT_CREDENTIALS: ADS_AUTHENTICATION_ENUM = 8u32; +pub const ADS_PROPERTY_APPEND: ADS_PROPERTY_OPERATION_ENUM = 3i32; +pub const ADS_PROPERTY_CLEAR: ADS_PROPERTY_OPERATION_ENUM = 1i32; +pub const ADS_PROPERTY_DELETE: ADS_PROPERTY_OPERATION_ENUM = 4i32; +pub const ADS_PROPERTY_UPDATE: ADS_PROPERTY_OPERATION_ENUM = 2i32; +pub const ADS_READONLY_SERVER: ADS_AUTHENTICATION_ENUM = 4u32; +pub const ADS_RIGHT_ACCESS_SYSTEM_SECURITY: ADS_RIGHTS_ENUM = 16777216i32; +pub const ADS_RIGHT_ACTRL_DS_LIST: ADS_RIGHTS_ENUM = 4i32; +pub const ADS_RIGHT_DELETE: ADS_RIGHTS_ENUM = 65536i32; +pub const ADS_RIGHT_DS_CONTROL_ACCESS: ADS_RIGHTS_ENUM = 256i32; +pub const ADS_RIGHT_DS_CREATE_CHILD: ADS_RIGHTS_ENUM = 1i32; +pub const ADS_RIGHT_DS_DELETE_CHILD: ADS_RIGHTS_ENUM = 2i32; +pub const ADS_RIGHT_DS_DELETE_TREE: ADS_RIGHTS_ENUM = 64i32; +pub const ADS_RIGHT_DS_LIST_OBJECT: ADS_RIGHTS_ENUM = 128i32; +pub const ADS_RIGHT_DS_READ_PROP: ADS_RIGHTS_ENUM = 16i32; +pub const ADS_RIGHT_DS_SELF: ADS_RIGHTS_ENUM = 8i32; +pub const ADS_RIGHT_DS_WRITE_PROP: ADS_RIGHTS_ENUM = 32i32; +pub const ADS_RIGHT_GENERIC_ALL: ADS_RIGHTS_ENUM = 268435456i32; +pub const ADS_RIGHT_GENERIC_EXECUTE: ADS_RIGHTS_ENUM = 536870912i32; +pub const ADS_RIGHT_GENERIC_READ: ADS_RIGHTS_ENUM = -2147483648i32; +pub const ADS_RIGHT_GENERIC_WRITE: ADS_RIGHTS_ENUM = 1073741824i32; +pub const ADS_RIGHT_READ_CONTROL: ADS_RIGHTS_ENUM = 131072i32; +pub const ADS_RIGHT_SYNCHRONIZE: ADS_RIGHTS_ENUM = 1048576i32; +pub const ADS_RIGHT_WRITE_DAC: ADS_RIGHTS_ENUM = 262144i32; +pub const ADS_RIGHT_WRITE_OWNER: ADS_RIGHTS_ENUM = 524288i32; +pub const ADS_SCOPE_BASE: ADS_SCOPEENUM = 0i32; +pub const ADS_SCOPE_ONELEVEL: ADS_SCOPEENUM = 1i32; +pub const ADS_SCOPE_SUBTREE: ADS_SCOPEENUM = 2i32; +pub const ADS_SD_CONTROL_SE_DACL_AUTO_INHERITED: ADS_SD_CONTROL_ENUM = 1024i32; +pub const ADS_SD_CONTROL_SE_DACL_AUTO_INHERIT_REQ: ADS_SD_CONTROL_ENUM = 256i32; +pub const ADS_SD_CONTROL_SE_DACL_DEFAULTED: ADS_SD_CONTROL_ENUM = 8i32; +pub const ADS_SD_CONTROL_SE_DACL_PRESENT: ADS_SD_CONTROL_ENUM = 4i32; +pub const ADS_SD_CONTROL_SE_DACL_PROTECTED: ADS_SD_CONTROL_ENUM = 4096i32; +pub const ADS_SD_CONTROL_SE_GROUP_DEFAULTED: ADS_SD_CONTROL_ENUM = 2i32; +pub const ADS_SD_CONTROL_SE_OWNER_DEFAULTED: ADS_SD_CONTROL_ENUM = 1i32; +pub const ADS_SD_CONTROL_SE_SACL_AUTO_INHERITED: ADS_SD_CONTROL_ENUM = 2048i32; +pub const ADS_SD_CONTROL_SE_SACL_AUTO_INHERIT_REQ: ADS_SD_CONTROL_ENUM = 512i32; +pub const ADS_SD_CONTROL_SE_SACL_DEFAULTED: ADS_SD_CONTROL_ENUM = 32i32; +pub const ADS_SD_CONTROL_SE_SACL_PRESENT: ADS_SD_CONTROL_ENUM = 16i32; +pub const ADS_SD_CONTROL_SE_SACL_PROTECTED: ADS_SD_CONTROL_ENUM = 8192i32; +pub const ADS_SD_CONTROL_SE_SELF_RELATIVE: ADS_SD_CONTROL_ENUM = 32768i32; +pub const ADS_SD_FORMAT_HEXSTRING: ADS_SD_FORMAT_ENUM = 3i32; +pub const ADS_SD_FORMAT_IID: ADS_SD_FORMAT_ENUM = 1i32; +pub const ADS_SD_FORMAT_RAW: ADS_SD_FORMAT_ENUM = 2i32; +pub const ADS_SD_REVISION_DS: ADS_SD_REVISION_ENUM = 4i32; +pub const ADS_SEARCHPREF_ASYNCHRONOUS: ADS_SEARCHPREF_ENUM = 0i32; +pub const ADS_SEARCHPREF_ATTRIBTYPES_ONLY: ADS_SEARCHPREF_ENUM = 4i32; +pub const ADS_SEARCHPREF_ATTRIBUTE_QUERY: ADS_SEARCHPREF_ENUM = 15i32; +pub const ADS_SEARCHPREF_CACHE_RESULTS: ADS_SEARCHPREF_ENUM = 11i32; +pub const ADS_SEARCHPREF_CHASE_REFERRALS: ADS_SEARCHPREF_ENUM = 9i32; +pub const ADS_SEARCHPREF_DEREF_ALIASES: ADS_SEARCHPREF_ENUM = 1i32; +pub const ADS_SEARCHPREF_DIRSYNC: ADS_SEARCHPREF_ENUM = 12i32; +pub const ADS_SEARCHPREF_DIRSYNC_FLAG: ADS_SEARCHPREF_ENUM = 17i32; +pub const ADS_SEARCHPREF_EXTENDED_DN: ADS_SEARCHPREF_ENUM = 18i32; +pub const ADS_SEARCHPREF_PAGED_TIME_LIMIT: ADS_SEARCHPREF_ENUM = 8i32; +pub const ADS_SEARCHPREF_PAGESIZE: ADS_SEARCHPREF_ENUM = 7i32; +pub const ADS_SEARCHPREF_SEARCH_SCOPE: ADS_SEARCHPREF_ENUM = 5i32; +pub const ADS_SEARCHPREF_SECURITY_MASK: ADS_SEARCHPREF_ENUM = 16i32; +pub const ADS_SEARCHPREF_SIZE_LIMIT: ADS_SEARCHPREF_ENUM = 2i32; +pub const ADS_SEARCHPREF_SORT_ON: ADS_SEARCHPREF_ENUM = 10i32; +pub const ADS_SEARCHPREF_TIMEOUT: ADS_SEARCHPREF_ENUM = 6i32; +pub const ADS_SEARCHPREF_TIME_LIMIT: ADS_SEARCHPREF_ENUM = 3i32; +pub const ADS_SEARCHPREF_TOMBSTONE: ADS_SEARCHPREF_ENUM = 13i32; +pub const ADS_SEARCHPREF_VLV: ADS_SEARCHPREF_ENUM = 14i32; +pub const ADS_SECURE_AUTHENTICATION: ADS_AUTHENTICATION_ENUM = 1u32; +pub const ADS_SECURITY_INFO_DACL: ADS_SECURITY_INFO_ENUM = 4i32; +pub const ADS_SECURITY_INFO_GROUP: ADS_SECURITY_INFO_ENUM = 2i32; +pub const ADS_SECURITY_INFO_OWNER: ADS_SECURITY_INFO_ENUM = 1i32; +pub const ADS_SECURITY_INFO_SACL: ADS_SECURITY_INFO_ENUM = 8i32; +pub const ADS_SERVER_BIND: ADS_AUTHENTICATION_ENUM = 512u32; +pub const ADS_SETTYPE_DN: ADS_SETTYPE_ENUM = 4i32; +pub const ADS_SETTYPE_FULL: ADS_SETTYPE_ENUM = 1i32; +pub const ADS_SETTYPE_PROVIDER: ADS_SETTYPE_ENUM = 2i32; +pub const ADS_SETTYPE_SERVER: ADS_SETTYPE_ENUM = 3i32; +pub const ADS_STATUS_INVALID_SEARCHPREF: ADS_STATUSENUM = 1i32; +pub const ADS_STATUS_INVALID_SEARCHPREFVALUE: ADS_STATUSENUM = 2i32; +pub const ADS_STATUS_S_OK: ADS_STATUSENUM = 0i32; +pub const ADS_SYSTEMFLAG_ATTR_IS_CONSTRUCTED: ADS_SYSTEMFLAG_ENUM = 4i32; +pub const ADS_SYSTEMFLAG_ATTR_NOT_REPLICATED: ADS_SYSTEMFLAG_ENUM = 1i32; +pub const ADS_SYSTEMFLAG_CONFIG_ALLOW_LIMITED_MOVE: ADS_SYSTEMFLAG_ENUM = 268435456i32; +pub const ADS_SYSTEMFLAG_CONFIG_ALLOW_MOVE: ADS_SYSTEMFLAG_ENUM = 536870912i32; +pub const ADS_SYSTEMFLAG_CONFIG_ALLOW_RENAME: ADS_SYSTEMFLAG_ENUM = 1073741824i32; +pub const ADS_SYSTEMFLAG_CR_NTDS_DOMAIN: ADS_SYSTEMFLAG_ENUM = 2i32; +pub const ADS_SYSTEMFLAG_CR_NTDS_NC: ADS_SYSTEMFLAG_ENUM = 1i32; +pub const ADS_SYSTEMFLAG_DISALLOW_DELETE: ADS_SYSTEMFLAG_ENUM = -2147483648i32; +pub const ADS_SYSTEMFLAG_DOMAIN_DISALLOW_MOVE: ADS_SYSTEMFLAG_ENUM = 67108864i32; +pub const ADS_SYSTEMFLAG_DOMAIN_DISALLOW_RENAME: ADS_SYSTEMFLAG_ENUM = 134217728i32; +pub const ADS_UF_ACCOUNTDISABLE: ADS_USER_FLAG_ENUM = 2i32; +pub const ADS_UF_DONT_EXPIRE_PASSWD: ADS_USER_FLAG_ENUM = 65536i32; +pub const ADS_UF_DONT_REQUIRE_PREAUTH: ADS_USER_FLAG_ENUM = 4194304i32; +pub const ADS_UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED: ADS_USER_FLAG_ENUM = 128i32; +pub const ADS_UF_HOMEDIR_REQUIRED: ADS_USER_FLAG_ENUM = 8i32; +pub const ADS_UF_INTERDOMAIN_TRUST_ACCOUNT: ADS_USER_FLAG_ENUM = 2048i32; +pub const ADS_UF_LOCKOUT: ADS_USER_FLAG_ENUM = 16i32; +pub const ADS_UF_MNS_LOGON_ACCOUNT: ADS_USER_FLAG_ENUM = 131072i32; +pub const ADS_UF_NORMAL_ACCOUNT: ADS_USER_FLAG_ENUM = 512i32; +pub const ADS_UF_NOT_DELEGATED: ADS_USER_FLAG_ENUM = 1048576i32; +pub const ADS_UF_PASSWD_CANT_CHANGE: ADS_USER_FLAG_ENUM = 64i32; +pub const ADS_UF_PASSWD_NOTREQD: ADS_USER_FLAG_ENUM = 32i32; +pub const ADS_UF_PASSWORD_EXPIRED: ADS_USER_FLAG_ENUM = 8388608i32; +pub const ADS_UF_SCRIPT: ADS_USER_FLAG_ENUM = 1i32; +pub const ADS_UF_SERVER_TRUST_ACCOUNT: ADS_USER_FLAG_ENUM = 8192i32; +pub const ADS_UF_SMARTCARD_REQUIRED: ADS_USER_FLAG_ENUM = 262144i32; +pub const ADS_UF_TEMP_DUPLICATE_ACCOUNT: ADS_USER_FLAG_ENUM = 256i32; +pub const ADS_UF_TRUSTED_FOR_DELEGATION: ADS_USER_FLAG_ENUM = 524288i32; +pub const ADS_UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION: ADS_USER_FLAG_ENUM = 16777216i32; +pub const ADS_UF_USE_DES_KEY_ONLY: ADS_USER_FLAG_ENUM = 2097152i32; +pub const ADS_UF_WORKSTATION_TRUST_ACCOUNT: ADS_USER_FLAG_ENUM = 4096i32; +pub const ADS_USE_DELEGATION: ADS_AUTHENTICATION_ENUM = 256u32; +pub const ADS_USE_ENCRYPTION: ADS_AUTHENTICATION_ENUM = 2u32; +pub const ADS_USE_SEALING: ADS_AUTHENTICATION_ENUM = 128u32; +pub const ADS_USE_SIGNING: ADS_AUTHENTICATION_ENUM = 64u32; +pub const ADS_USE_SSL: ADS_AUTHENTICATION_ENUM = 2u32; +pub const ADSystemInfo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x50b6327f_afd1_11d2_9cb9_0000f87a369e); +pub const ADsSecurityUtility: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf270c64a_ffb8_4ae4_85fe_3a75e5347966); +pub const AccessControlEntry: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb75ac000_9bdd_11d0_852c_00c04fd8d503); +pub const AccessControlList: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb85ea052_9bdd_11d0_852c_00c04fd8d503); +pub const BackLink: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfcbf906f_4080_11d1_a3ac_00c04fb950dc); +pub const CFSTR_DSDISPLAYSPECOPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsDisplaySpecOptions"); +pub const CFSTR_DSOBJECTNAMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsObjectNames"); +pub const CFSTR_DSOP_DS_SELECTION_LIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CFSTR_DSOP_DS_SELECTION_LIST"); +pub const CFSTR_DSPROPERTYPAGEINFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsPropPageInfo"); +pub const CFSTR_DSQUERYPARAMS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsQueryParameters"); +pub const CFSTR_DSQUERYSCOPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsQueryScope"); +pub const CFSTR_DS_DISPLAY_SPEC_OPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsDisplaySpecOptions"); +pub const CLSID_CommonQuery: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x83bc5ec0_6f2a_11d0_a1c4_00aa00c16e65); +pub const CLSID_DsAdminCreateObj: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe301a009_f901_11d2_82b9_00c04f68928b); +pub const CLSID_DsDisplaySpecifier: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ab4a8c0_6a0b_11d2_ad49_00c04fa31a86); +pub const CLSID_DsDomainTreeBrowser: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1698790a_e2b4_11d0_b0b1_00c04fd8dca6); +pub const CLSID_DsFindAdvanced: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x83ee3fe3_57d9_11d0_b932_00a024ab2dbb); +pub const CLSID_DsFindComputer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x16006700_87ad_11d0_9140_00aa00c16e65); +pub const CLSID_DsFindContainer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc1b3cbf2_886a_11d0_9140_00aa00c16e65); +pub const CLSID_DsFindDomainController: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x538c7b7e_d25e_11d0_9742_00a0c906af45); +pub const CLSID_DsFindFrsMembers: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x94ce4b18_b3d3_11d1_b9b4_00c04fd8d5b0); +pub const CLSID_DsFindObjects: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x83ee3fe1_57d9_11d0_b932_00a024ab2dbb); +pub const CLSID_DsFindPeople: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x83ee3fe2_57d9_11d0_b932_00a024ab2dbb); +pub const CLSID_DsFindPrinter: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb577f070_7ee2_11d0_913f_00aa00c16e65); +pub const CLSID_DsFindVolume: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc1b3cbf1_886a_11d0_9140_00aa00c16e65); +pub const CLSID_DsFindWriteableDomainController: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7cbef079_aa84_444b_bc70_68e41283eabc); +pub const CLSID_DsFolderProperties: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9e51e0d0_6e0f_11d2_9601_00c04fa31a86); +pub const CLSID_DsObjectPicker: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x17d6ccd8_3b7b_11d2_b9e0_00c04fd8dbf7); +pub const CLSID_DsPropertyPages: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0d45d530_764b_11d0_a1ca_00aa00c16e65); +pub const CLSID_DsQuery: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8a23e65e_31c2_11d0_891c_00a024ab2dbb); +pub const CLSID_MicrosoftDS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfe1290f0_cfbd_11cf_a330_00aa00c16e65); +pub const CQFF_ISOPTIONAL: u32 = 2u32; +pub const CQFF_NOGLOBALPAGES: u32 = 1u32; +pub const CQPM_CLEARFORM: u32 = 6u32; +pub const CQPM_ENABLE: u32 = 3u32; +pub const CQPM_GETPARAMETERS: u32 = 5u32; +pub const CQPM_HANDLERSPECIFIC: u32 = 268435456u32; +pub const CQPM_HELP: u32 = 8u32; +pub const CQPM_INITIALIZE: u32 = 1u32; +pub const CQPM_PERSIST: u32 = 7u32; +pub const CQPM_RELEASE: u32 = 2u32; +pub const CQPM_SETDEFAULTPARAMETERS: u32 = 9u32; +pub const CaseIgnoreList: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x15f88a55_4680_11d1_a3b4_00c04fb950dc); +pub const DBDTF_RETURNEXTERNAL: u32 = 4u32; +pub const DBDTF_RETURNFQDN: u32 = 1u32; +pub const DBDTF_RETURNINBOUND: u32 = 8u32; +pub const DBDTF_RETURNINOUTBOUND: u32 = 16u32; +pub const DBDTF_RETURNMIXEDDOMAINS: u32 = 2u32; +pub const DNWithBinary: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7e99c0a3_f935_11d2_ba96_00c04fb6d0d1); +pub const DNWithString: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x334857cc_f934_11d2_ba96_00c04fb6d0d1); +pub const DSA_NEWOBJ_CTX_CLEANUP: u32 = 4u32; +pub const DSA_NEWOBJ_CTX_COMMIT: u32 = 2u32; +pub const DSA_NEWOBJ_CTX_POSTCOMMIT: u32 = 3u32; +pub const DSA_NEWOBJ_CTX_PRECOMMIT: u32 = 1u32; +pub const DSA_NOTIFY_DEL: u32 = 1u32; +pub const DSA_NOTIFY_FLAG_ADDITIONAL_DATA: u32 = 2u32; +pub const DSA_NOTIFY_FLAG_FORCE_ADDITIONAL_DATA: u32 = 1u32; +pub const DSA_NOTIFY_MOV: u32 = 4u32; +pub const DSA_NOTIFY_PROP: u32 = 8u32; +pub const DSA_NOTIFY_REN: u32 = 2u32; +pub const DSBF_DISPLAYNAME: u32 = 4u32; +pub const DSBF_ICONLOCATION: u32 = 2u32; +pub const DSBF_STATE: u32 = 1u32; +pub const DSBID_BANNER: u32 = 256u32; +pub const DSBID_CONTAINERLIST: u32 = 257u32; +pub const DSBI_CHECKBOXES: u32 = 256u32; +pub const DSBI_DONTSIGNSEAL: u32 = 33554432u32; +pub const DSBI_ENTIREDIRECTORY: u32 = 589824u32; +pub const DSBI_EXPANDONOPEN: u32 = 262144u32; +pub const DSBI_HASCREDENTIALS: u32 = 2097152u32; +pub const DSBI_IGNORETREATASLEAF: u32 = 4194304u32; +pub const DSBI_INCLUDEHIDDEN: u32 = 131072u32; +pub const DSBI_NOBUTTONS: u32 = 1u32; +pub const DSBI_NOLINES: u32 = 2u32; +pub const DSBI_NOLINESATROOT: u32 = 4u32; +pub const DSBI_NOROOT: u32 = 65536u32; +pub const DSBI_RETURNOBJECTCLASS: u32 = 16777216u32; +pub const DSBI_RETURN_FORMAT: u32 = 1048576u32; +pub const DSBI_SIMPLEAUTHENTICATE: u32 = 8388608u32; +pub const DSBM_CHANGEIMAGESTATE: u32 = 102u32; +pub const DSBM_CONTEXTMENU: u32 = 104u32; +pub const DSBM_HELP: u32 = 103u32; +pub const DSBM_QUERYINSERT: u32 = 100u32; +pub const DSBM_QUERYINSERTA: u32 = 101u32; +pub const DSBM_QUERYINSERTW: u32 = 100u32; +pub const DSBS_CHECKED: u32 = 1u32; +pub const DSBS_HIDDEN: u32 = 2u32; +pub const DSBS_ROOT: u32 = 4u32; +pub const DSB_MAX_DISPLAYNAME_CHARS: u32 = 64u32; +pub const DSCCIF_HASWIZARDDIALOG: u32 = 1u32; +pub const DSCCIF_HASWIZARDPRIMARYPAGE: u32 = 2u32; +pub const DSDSOF_DONTSIGNSEAL: u32 = 4u32; +pub const DSDSOF_DSAVAILABLE: u32 = 1073741824u32; +pub const DSDSOF_HASUSERANDSERVERINFO: u32 = 1u32; +pub const DSDSOF_SIMPLEAUTHENTICATE: u32 = 2u32; +pub const DSECAF_NOTLISTED: u32 = 1u32; +pub const DSGIF_DEFAULTISCONTAINER: u32 = 32u32; +pub const DSGIF_GETDEFAULTICON: u32 = 16u32; +pub const DSGIF_ISDISABLED: u32 = 2u32; +pub const DSGIF_ISMASK: u32 = 15u32; +pub const DSGIF_ISNORMAL: u32 = 0u32; +pub const DSGIF_ISOPEN: u32 = 1u32; +pub const DSICCF_IGNORETREATASLEAF: u32 = 1u32; +pub const DSOBJECT_ISCONTAINER: u32 = 1u32; +pub const DSOBJECT_READONLYPAGES: u32 = 2147483648u32; +pub const DSOP_DOWNLEVEL_FILTER_ALL_APP_PACKAGES: u32 = 2281701376u32; +pub const DSOP_DOWNLEVEL_FILTER_ALL_WELLKNOWN_SIDS: u32 = 2147614720u32; +pub const DSOP_DOWNLEVEL_FILTER_ANONYMOUS: u32 = 2147483712u32; +pub const DSOP_DOWNLEVEL_FILTER_AUTHENTICATED_USER: u32 = 2147483680u32; +pub const DSOP_DOWNLEVEL_FILTER_BATCH: u32 = 2147483776u32; +pub const DSOP_DOWNLEVEL_FILTER_COMPUTERS: u32 = 2147483656u32; +pub const DSOP_DOWNLEVEL_FILTER_CREATOR_GROUP: u32 = 2147484160u32; +pub const DSOP_DOWNLEVEL_FILTER_CREATOR_OWNER: u32 = 2147483904u32; +pub const DSOP_DOWNLEVEL_FILTER_DIALUP: u32 = 2147484672u32; +pub const DSOP_DOWNLEVEL_FILTER_EXCLUDE_BUILTIN_GROUPS: u32 = 2147516416u32; +pub const DSOP_DOWNLEVEL_FILTER_GLOBAL_GROUPS: u32 = 2147483652u32; +pub const DSOP_DOWNLEVEL_FILTER_IIS_APP_POOL: u32 = 2214592512u32; +pub const DSOP_DOWNLEVEL_FILTER_INTERACTIVE: u32 = 2147485696u32; +pub const DSOP_DOWNLEVEL_FILTER_INTERNET_USER: u32 = 2149580800u32; +pub const DSOP_DOWNLEVEL_FILTER_LOCAL_ACCOUNTS: u32 = 2415919104u32; +pub const DSOP_DOWNLEVEL_FILTER_LOCAL_GROUPS: u32 = 2147483650u32; +pub const DSOP_DOWNLEVEL_FILTER_LOCAL_LOGON: u32 = 2164260864u32; +pub const DSOP_DOWNLEVEL_FILTER_LOCAL_SERVICE: u32 = 2147745792u32; +pub const DSOP_DOWNLEVEL_FILTER_NETWORK: u32 = 2147487744u32; +pub const DSOP_DOWNLEVEL_FILTER_NETWORK_SERVICE: u32 = 2148007936u32; +pub const DSOP_DOWNLEVEL_FILTER_OWNER_RIGHTS: u32 = 2151677952u32; +pub const DSOP_DOWNLEVEL_FILTER_REMOTE_LOGON: u32 = 2148532224u32; +pub const DSOP_DOWNLEVEL_FILTER_SERVICE: u32 = 2147491840u32; +pub const DSOP_DOWNLEVEL_FILTER_SERVICES: u32 = 2155872256u32; +pub const DSOP_DOWNLEVEL_FILTER_SYSTEM: u32 = 2147500032u32; +pub const DSOP_DOWNLEVEL_FILTER_TERMINAL_SERVER: u32 = 2147549184u32; +pub const DSOP_DOWNLEVEL_FILTER_THIS_ORG_CERT: u32 = 2181038080u32; +pub const DSOP_DOWNLEVEL_FILTER_USERS: u32 = 2147483649u32; +pub const DSOP_DOWNLEVEL_FILTER_WORLD: u32 = 2147483664u32; +pub const DSOP_FILTER_BUILTIN_GROUPS: u32 = 4u32; +pub const DSOP_FILTER_COMPUTERS: u32 = 2048u32; +pub const DSOP_FILTER_CONTACTS: u32 = 1024u32; +pub const DSOP_FILTER_DOMAIN_LOCAL_GROUPS_DL: u32 = 256u32; +pub const DSOP_FILTER_DOMAIN_LOCAL_GROUPS_SE: u32 = 512u32; +pub const DSOP_FILTER_GLOBAL_GROUPS_DL: u32 = 64u32; +pub const DSOP_FILTER_GLOBAL_GROUPS_SE: u32 = 128u32; +pub const DSOP_FILTER_INCLUDE_ADVANCED_VIEW: u32 = 1u32; +pub const DSOP_FILTER_PASSWORDSETTINGS_OBJECTS: u32 = 8192u32; +pub const DSOP_FILTER_SERVICE_ACCOUNTS: u32 = 4096u32; +pub const DSOP_FILTER_UNIVERSAL_GROUPS_DL: u32 = 16u32; +pub const DSOP_FILTER_UNIVERSAL_GROUPS_SE: u32 = 32u32; +pub const DSOP_FILTER_USERS: u32 = 2u32; +pub const DSOP_FILTER_WELL_KNOWN_PRINCIPALS: u32 = 8u32; +pub const DSOP_FLAG_MULTISELECT: u32 = 1u32; +pub const DSOP_FLAG_SKIP_TARGET_COMPUTER_DC_CHECK: u32 = 2u32; +pub const DSOP_SCOPE_FLAG_DEFAULT_FILTER_COMPUTERS: u32 = 256u32; +pub const DSOP_SCOPE_FLAG_DEFAULT_FILTER_CONTACTS: u32 = 512u32; +pub const DSOP_SCOPE_FLAG_DEFAULT_FILTER_GROUPS: u32 = 128u32; +pub const DSOP_SCOPE_FLAG_DEFAULT_FILTER_PASSWORDSETTINGS_OBJECTS: u32 = 2048u32; +pub const DSOP_SCOPE_FLAG_DEFAULT_FILTER_SERVICE_ACCOUNTS: u32 = 1024u32; +pub const DSOP_SCOPE_FLAG_DEFAULT_FILTER_USERS: u32 = 64u32; +pub const DSOP_SCOPE_FLAG_STARTING_SCOPE: u32 = 1u32; +pub const DSOP_SCOPE_FLAG_WANT_DOWNLEVEL_BUILTIN_PATH: u32 = 32u32; +pub const DSOP_SCOPE_FLAG_WANT_PROVIDER_GC: u32 = 8u32; +pub const DSOP_SCOPE_FLAG_WANT_PROVIDER_LDAP: u32 = 4u32; +pub const DSOP_SCOPE_FLAG_WANT_PROVIDER_WINNT: u32 = 2u32; +pub const DSOP_SCOPE_FLAG_WANT_SID_PATH: u32 = 16u32; +pub const DSOP_SCOPE_TYPE_DOWNLEVEL_JOINED_DOMAIN: u32 = 4u32; +pub const DSOP_SCOPE_TYPE_ENTERPRISE_DOMAIN: u32 = 8u32; +pub const DSOP_SCOPE_TYPE_EXTERNAL_DOWNLEVEL_DOMAIN: u32 = 64u32; +pub const DSOP_SCOPE_TYPE_EXTERNAL_UPLEVEL_DOMAIN: u32 = 32u32; +pub const DSOP_SCOPE_TYPE_GLOBAL_CATALOG: u32 = 16u32; +pub const DSOP_SCOPE_TYPE_TARGET_COMPUTER: u32 = 1u32; +pub const DSOP_SCOPE_TYPE_UPLEVEL_JOINED_DOMAIN: u32 = 2u32; +pub const DSOP_SCOPE_TYPE_USER_ENTERED_DOWNLEVEL_SCOPE: u32 = 512u32; +pub const DSOP_SCOPE_TYPE_USER_ENTERED_UPLEVEL_SCOPE: u32 = 256u32; +pub const DSOP_SCOPE_TYPE_WORKGROUP: u32 = 128u32; +pub const DSPROP_ATTRCHANGED_MSG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DsPropAttrChanged"); +pub const DSPROVIDER_ADVANCED: u32 = 16u32; +pub const DSPROVIDER_AD_LDS: u32 = 32u32; +pub const DSPROVIDER_UNUSED_0: u32 = 1u32; +pub const DSPROVIDER_UNUSED_1: u32 = 2u32; +pub const DSPROVIDER_UNUSED_2: u32 = 4u32; +pub const DSPROVIDER_UNUSED_3: u32 = 8u32; +pub const DSQPF_ENABLEADMINFEATURES: u32 = 8u32; +pub const DSQPF_ENABLEADVANCEDFEATURES: u32 = 16u32; +pub const DSQPF_HASCREDENTIALS: u32 = 32u32; +pub const DSQPF_NOCHOOSECOLUMNS: u32 = 64u32; +pub const DSQPF_NOSAVE: u32 = 1u32; +pub const DSQPF_SAVELOCATION: u32 = 2u32; +pub const DSQPF_SHOWHIDDENOBJECTS: u32 = 4u32; +pub const DSQPM_GETCLASSLIST: u32 = 268435456u32; +pub const DSQPM_HELPTOPICS: u32 = 268435457u32; +pub const DSROLE_PRIMARY_DOMAIN_GUID_PRESENT: u32 = 16777216u32; +pub const DSROLE_PRIMARY_DS_MIXED_MODE: u32 = 2u32; +pub const DSROLE_PRIMARY_DS_READONLY: u32 = 8u32; +pub const DSROLE_PRIMARY_DS_RUNNING: u32 = 1u32; +pub const DSROLE_UPGRADE_IN_PROGRESS: u32 = 4u32; +pub const DSSSF_DONTSIGNSEAL: u32 = 2u32; +pub const DSSSF_DSAVAILABLE: u32 = 2147483648u32; +pub const DSSSF_SIMPLEAUTHENTICATE: u32 = 1u32; +pub const DS_AVOID_SELF: u32 = 16384u32; +pub const DS_BACKGROUND_ONLY: u32 = 256u32; +pub const DS_BEHAVIOR_LONGHORN: u32 = 3u32; +pub const DS_BEHAVIOR_WIN2000: u32 = 0u32; +pub const DS_BEHAVIOR_WIN2003: u32 = 2u32; +pub const DS_BEHAVIOR_WIN2003_WITH_MIXED_DOMAINS: u32 = 1u32; +pub const DS_BEHAVIOR_WIN2008: u32 = 3u32; +pub const DS_BEHAVIOR_WIN2008R2: u32 = 4u32; +pub const DS_BEHAVIOR_WIN2012: u32 = 5u32; +pub const DS_BEHAVIOR_WIN2012R2: u32 = 6u32; +pub const DS_BEHAVIOR_WIN2016: u32 = 7u32; +pub const DS_BEHAVIOR_WIN7: u32 = 4u32; +pub const DS_BEHAVIOR_WIN8: u32 = 5u32; +pub const DS_BEHAVIOR_WINBLUE: u32 = 6u32; +pub const DS_BEHAVIOR_WINTHRESHOLD: u32 = 7u32; +pub const DS_CANONICAL_NAME: DS_NAME_FORMAT = 7i32; +pub const DS_CANONICAL_NAME_EX: DS_NAME_FORMAT = 9i32; +pub const DS_CLOSEST_FLAG: u32 = 128u32; +pub const DS_DIRECTORY_SERVICE_10_REQUIRED: u32 = 8388608u32; +pub const DS_DIRECTORY_SERVICE_6_REQUIRED: u32 = 524288u32; +pub const DS_DIRECTORY_SERVICE_8_REQUIRED: u32 = 2097152u32; +pub const DS_DIRECTORY_SERVICE_9_REQUIRED: u32 = 4194304u32; +pub const DS_DIRECTORY_SERVICE_PREFERRED: u32 = 32u32; +pub const DS_DIRECTORY_SERVICE_REQUIRED: u32 = 16u32; +pub const DS_DISPLAY_NAME: DS_NAME_FORMAT = 3i32; +pub const DS_DNS_CONTROLLER_FLAG: u32 = 536870912u32; +pub const DS_DNS_DOMAIN_FLAG: u32 = 1073741824u32; +pub const DS_DNS_DOMAIN_NAME: DS_NAME_FORMAT = 12i32; +pub const DS_DNS_FOREST_FLAG: u32 = 2147483648u32; +pub const DS_DOMAIN_DIRECT_INBOUND: u32 = 32u32; +pub const DS_DOMAIN_DIRECT_OUTBOUND: u32 = 2u32; +pub const DS_DOMAIN_IN_FOREST: u32 = 1u32; +pub const DS_DOMAIN_NATIVE_MODE: u32 = 16u32; +pub const DS_DOMAIN_PRIMARY: u32 = 8u32; +pub const DS_DOMAIN_TREE_ROOT: u32 = 4u32; +pub const DS_DS_10_FLAG: u32 = 65536u32; +pub const DS_DS_8_FLAG: u32 = 16384u32; +pub const DS_DS_9_FLAG: u32 = 32768u32; +pub const DS_DS_FLAG: u32 = 16u32; +pub const DS_EXIST_ADVISORY_MODE: u32 = 1u32; +pub const DS_FORCE_REDISCOVERY: u32 = 1u32; +pub const DS_FQDN_1779_NAME: DS_NAME_FORMAT = 1i32; +pub const DS_FULL_SECRET_DOMAIN_6_FLAG: u32 = 4096u32; +pub const DS_GC_FLAG: u32 = 4u32; +pub const DS_GC_SERVER_REQUIRED: u32 = 64u32; +pub const DS_GFTI_UPDATE_TDO: u32 = 1u32; +pub const DS_GFTI_VALID_FLAGS: u32 = 1u32; +pub const DS_GOOD_TIMESERV_FLAG: u32 = 512u32; +pub const DS_GOOD_TIMESERV_PREFERRED: u32 = 8192u32; +pub const DS_INSTANCETYPE_IS_NC_HEAD: u32 = 1u32; +pub const DS_INSTANCETYPE_NC_COMING: u32 = 16u32; +pub const DS_INSTANCETYPE_NC_GOING: u32 = 32u32; +pub const DS_INSTANCETYPE_NC_IS_WRITEABLE: u32 = 4u32; +pub const DS_IP_REQUIRED: u32 = 512u32; +pub const DS_IS_DNS_NAME: u32 = 131072u32; +pub const DS_IS_FLAT_NAME: u32 = 65536u32; +pub const DS_KCC_FLAG_ASYNC_OP: u32 = 1u32; +pub const DS_KCC_FLAG_DAMPED: u32 = 2u32; +pub const DS_KCC_TASKID_UPDATE_TOPOLOGY: DS_KCC_TASKID = 0i32; +pub const DS_KDC_FLAG: u32 = 32u32; +pub const DS_KDC_REQUIRED: u32 = 1024u32; +pub const DS_KEY_LIST_FLAG: u32 = 131072u32; +pub const DS_KEY_LIST_SUPPORT_REQUIRED: u32 = 16777216u32; +pub const DS_LDAP_FLAG: u32 = 8u32; +pub const DS_LIST_ACCOUNT_OBJECT_FOR_SERVER: u32 = 2u32; +pub const DS_LIST_DNS_HOST_NAME_FOR_SERVER: u32 = 1u32; +pub const DS_LIST_DSA_OBJECT_FOR_SERVER: u32 = 0u32; +pub const DS_MANGLE_OBJECT_RDN_FOR_DELETION: DS_MANGLE_FOR = 1i32; +pub const DS_MANGLE_OBJECT_RDN_FOR_NAME_CONFLICT: DS_MANGLE_FOR = 2i32; +pub const DS_MANGLE_UNKNOWN: DS_MANGLE_FOR = 0i32; +pub const DS_NAME_ERROR_DOMAIN_ONLY: DS_NAME_ERROR = 5i32; +pub const DS_NAME_ERROR_NOT_FOUND: DS_NAME_ERROR = 2i32; +pub const DS_NAME_ERROR_NOT_UNIQUE: DS_NAME_ERROR = 3i32; +pub const DS_NAME_ERROR_NO_MAPPING: DS_NAME_ERROR = 4i32; +pub const DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING: DS_NAME_ERROR = 6i32; +pub const DS_NAME_ERROR_RESOLVING: DS_NAME_ERROR = 1i32; +pub const DS_NAME_ERROR_TRUST_REFERRAL: DS_NAME_ERROR = 7i32; +pub const DS_NAME_FLAG_EVAL_AT_DC: DS_NAME_FLAGS = 2i32; +pub const DS_NAME_FLAG_GCVERIFY: DS_NAME_FLAGS = 4i32; +pub const DS_NAME_FLAG_SYNTACTICAL_ONLY: DS_NAME_FLAGS = 1i32; +pub const DS_NAME_FLAG_TRUST_REFERRAL: DS_NAME_FLAGS = 8i32; +pub const DS_NAME_NO_ERROR: DS_NAME_ERROR = 0i32; +pub const DS_NAME_NO_FLAGS: DS_NAME_FLAGS = 0i32; +pub const DS_NDNC_FLAG: u32 = 1024u32; +pub const DS_NOTIFY_AFTER_SITE_RECORDS: u32 = 2u32; +pub const DS_NT4_ACCOUNT_NAME: DS_NAME_FORMAT = 2i32; +pub const DS_ONLY_DO_SITE_NAME: u32 = 1u32; +pub const DS_ONLY_LDAP_NEEDED: u32 = 32768u32; +pub const DS_PDC_FLAG: u32 = 1u32; +pub const DS_PDC_REQUIRED: u32 = 128u32; +pub const DS_PING_FLAGS: u32 = 1048575u32; +pub const DS_PROP_ADMIN_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("admin"); +pub const DS_PROP_SHELL_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("shell"); +pub const DS_REPADD_ASYNCHRONOUS_OPERATION: u32 = 1u32; +pub const DS_REPADD_ASYNCHRONOUS_REPLICA: u32 = 32u32; +pub const DS_REPADD_CRITICAL: u32 = 2048u32; +pub const DS_REPADD_DISABLE_NOTIFICATION: u32 = 64u32; +pub const DS_REPADD_DISABLE_PERIODIC: u32 = 128u32; +pub const DS_REPADD_INITIAL: u32 = 4u32; +pub const DS_REPADD_INTERSITE_MESSAGING: u32 = 16u32; +pub const DS_REPADD_NEVER_NOTIFY: u32 = 512u32; +pub const DS_REPADD_NONGC_RO_REPLICA: u32 = 16777216u32; +pub const DS_REPADD_PERIODIC: u32 = 8u32; +pub const DS_REPADD_SELECT_SECRETS: u32 = 4096u32; +pub const DS_REPADD_TWO_WAY: u32 = 1024u32; +pub const DS_REPADD_USE_COMPRESSION: u32 = 256u32; +pub const DS_REPADD_WRITEABLE: u32 = 2u32; +pub const DS_REPDEL_ASYNCHRONOUS_OPERATION: u32 = 1u32; +pub const DS_REPDEL_IGNORE_ERRORS: u32 = 8u32; +pub const DS_REPDEL_INTERSITE_MESSAGING: u32 = 4u32; +pub const DS_REPDEL_LOCAL_ONLY: u32 = 16u32; +pub const DS_REPDEL_NO_SOURCE: u32 = 32u32; +pub const DS_REPDEL_REF_OK: u32 = 64u32; +pub const DS_REPDEL_WRITEABLE: u32 = 2u32; +pub const DS_REPL_INFO_CURSORS_2_FOR_NC: DS_REPL_INFO_TYPE = 7i32; +pub const DS_REPL_INFO_CURSORS_3_FOR_NC: DS_REPL_INFO_TYPE = 8i32; +pub const DS_REPL_INFO_CURSORS_FOR_NC: DS_REPL_INFO_TYPE = 1i32; +pub const DS_REPL_INFO_FLAG_IMPROVE_LINKED_ATTRS: u32 = 1u32; +pub const DS_REPL_INFO_KCC_DSA_CONNECT_FAILURES: DS_REPL_INFO_TYPE = 3i32; +pub const DS_REPL_INFO_KCC_DSA_LINK_FAILURES: DS_REPL_INFO_TYPE = 4i32; +pub const DS_REPL_INFO_METADATA_2_FOR_ATTR_VALUE: DS_REPL_INFO_TYPE = 10i32; +pub const DS_REPL_INFO_METADATA_2_FOR_OBJ: DS_REPL_INFO_TYPE = 9i32; +pub const DS_REPL_INFO_METADATA_EXT_FOR_ATTR_VALUE: DS_REPL_INFO_TYPE = 11i32; +pub const DS_REPL_INFO_METADATA_FOR_ATTR_VALUE: DS_REPL_INFO_TYPE = 6i32; +pub const DS_REPL_INFO_METADATA_FOR_OBJ: DS_REPL_INFO_TYPE = 2i32; +pub const DS_REPL_INFO_NEIGHBORS: DS_REPL_INFO_TYPE = 0i32; +pub const DS_REPL_INFO_PENDING_OPS: DS_REPL_INFO_TYPE = 5i32; +pub const DS_REPL_INFO_TYPE_MAX: DS_REPL_INFO_TYPE = 12i32; +pub const DS_REPL_NBR_COMPRESS_CHANGES: u32 = 268435456u32; +pub const DS_REPL_NBR_DISABLE_SCHEDULED_SYNC: u32 = 134217728u32; +pub const DS_REPL_NBR_DO_SCHEDULED_SYNCS: u32 = 64u32; +pub const DS_REPL_NBR_FULL_SYNC_IN_PROGRESS: u32 = 65536u32; +pub const DS_REPL_NBR_FULL_SYNC_NEXT_PACKET: u32 = 131072u32; +pub const DS_REPL_NBR_GCSPN: u32 = 1048576u32; +pub const DS_REPL_NBR_IGNORE_CHANGE_NOTIFICATIONS: u32 = 67108864u32; +pub const DS_REPL_NBR_NEVER_SYNCED: u32 = 2097152u32; +pub const DS_REPL_NBR_NONGC_RO_REPLICA: u32 = 1024u32; +pub const DS_REPL_NBR_NO_CHANGE_NOTIFICATIONS: u32 = 536870912u32; +pub const DS_REPL_NBR_PARTIAL_ATTRIBUTE_SET: u32 = 1073741824u32; +pub const DS_REPL_NBR_PREEMPTED: u32 = 16777216u32; +pub const DS_REPL_NBR_RETURN_OBJECT_PARENTS: u32 = 2048u32; +pub const DS_REPL_NBR_SELECT_SECRETS: u32 = 4096u32; +pub const DS_REPL_NBR_SYNC_ON_STARTUP: u32 = 32u32; +pub const DS_REPL_NBR_TWO_WAY_SYNC: u32 = 512u32; +pub const DS_REPL_NBR_USE_ASYNC_INTERSITE_TRANSPORT: u32 = 128u32; +pub const DS_REPL_NBR_WRITEABLE: u32 = 16u32; +pub const DS_REPL_OP_TYPE_ADD: DS_REPL_OP_TYPE = 1i32; +pub const DS_REPL_OP_TYPE_DELETE: DS_REPL_OP_TYPE = 2i32; +pub const DS_REPL_OP_TYPE_MODIFY: DS_REPL_OP_TYPE = 3i32; +pub const DS_REPL_OP_TYPE_SYNC: DS_REPL_OP_TYPE = 0i32; +pub const DS_REPL_OP_TYPE_UPDATE_REFS: DS_REPL_OP_TYPE = 4i32; +pub const DS_REPMOD_ASYNCHRONOUS_OPERATION: u32 = 1u32; +pub const DS_REPMOD_UPDATE_ADDRESS: u32 = 2u32; +pub const DS_REPMOD_UPDATE_FLAGS: u32 = 1u32; +pub const DS_REPMOD_UPDATE_INSTANCE: u32 = 2u32; +pub const DS_REPMOD_UPDATE_RESULT: u32 = 8u32; +pub const DS_REPMOD_UPDATE_SCHEDULE: u32 = 4u32; +pub const DS_REPMOD_UPDATE_TRANSPORT: u32 = 16u32; +pub const DS_REPMOD_WRITEABLE: u32 = 2u32; +pub const DS_REPSYNCALL_ABORT_IF_SERVER_UNAVAILABLE: u32 = 1u32; +pub const DS_REPSYNCALL_CROSS_SITE_BOUNDARIES: u32 = 64u32; +pub const DS_REPSYNCALL_DO_NOT_SYNC: u32 = 8u32; +pub const DS_REPSYNCALL_EVENT_ERROR: DS_REPSYNCALL_EVENT = 0i32; +pub const DS_REPSYNCALL_EVENT_FINISHED: DS_REPSYNCALL_EVENT = 3i32; +pub const DS_REPSYNCALL_EVENT_SYNC_COMPLETED: DS_REPSYNCALL_EVENT = 2i32; +pub const DS_REPSYNCALL_EVENT_SYNC_STARTED: DS_REPSYNCALL_EVENT = 1i32; +pub const DS_REPSYNCALL_ID_SERVERS_BY_DN: u32 = 4u32; +pub const DS_REPSYNCALL_NO_OPTIONS: u32 = 0u32; +pub const DS_REPSYNCALL_PUSH_CHANGES_OUTWARD: u32 = 32u32; +pub const DS_REPSYNCALL_SERVER_UNREACHABLE: DS_REPSYNCALL_ERROR = 2i32; +pub const DS_REPSYNCALL_SKIP_INITIAL_CHECK: u32 = 16u32; +pub const DS_REPSYNCALL_SYNC_ADJACENT_SERVERS_ONLY: u32 = 2u32; +pub const DS_REPSYNCALL_WIN32_ERROR_CONTACTING_SERVER: DS_REPSYNCALL_ERROR = 0i32; +pub const DS_REPSYNCALL_WIN32_ERROR_REPLICATING: DS_REPSYNCALL_ERROR = 1i32; +pub const DS_REPSYNC_ABANDONED: u32 = 32768u32; +pub const DS_REPSYNC_ADD_REFERENCE: u32 = 512u32; +pub const DS_REPSYNC_ASYNCHRONOUS_OPERATION: u32 = 1u32; +pub const DS_REPSYNC_ASYNCHRONOUS_REPLICA: u32 = 1048576u32; +pub const DS_REPSYNC_CRITICAL: u32 = 2097152u32; +pub const DS_REPSYNC_FORCE: u32 = 256u32; +pub const DS_REPSYNC_FULL: u32 = 32u32; +pub const DS_REPSYNC_FULL_IN_PROGRESS: u32 = 4194304u32; +pub const DS_REPSYNC_INITIAL: u32 = 8192u32; +pub const DS_REPSYNC_INITIAL_IN_PROGRESS: u32 = 65536u32; +pub const DS_REPSYNC_INTERSITE_MESSAGING: u32 = 8u32; +pub const DS_REPSYNC_NEVER_COMPLETED: u32 = 1024u32; +pub const DS_REPSYNC_NEVER_NOTIFY: u32 = 4096u32; +pub const DS_REPSYNC_NONGC_RO_REPLICA: u32 = 16777216u32; +pub const DS_REPSYNC_NOTIFICATION: u32 = 524288u32; +pub const DS_REPSYNC_NO_DISCARD: u32 = 128u32; +pub const DS_REPSYNC_PARTIAL_ATTRIBUTE_SET: u32 = 131072u32; +pub const DS_REPSYNC_PERIODIC: u32 = 4u32; +pub const DS_REPSYNC_PREEMPTED: u32 = 8388608u32; +pub const DS_REPSYNC_REQUEUE: u32 = 262144u32; +pub const DS_REPSYNC_SELECT_SECRETS: u32 = 32768u32; +pub const DS_REPSYNC_TWO_WAY: u32 = 2048u32; +pub const DS_REPSYNC_URGENT: u32 = 64u32; +pub const DS_REPSYNC_USE_COMPRESSION: u32 = 16384u32; +pub const DS_REPSYNC_WRITEABLE: u32 = 2u32; +pub const DS_REPUPD_ADD_REFERENCE: u32 = 4u32; +pub const DS_REPUPD_ASYNCHRONOUS_OPERATION: u32 = 1u32; +pub const DS_REPUPD_DELETE_REFERENCE: u32 = 8u32; +pub const DS_REPUPD_REFERENCE_GCSPN: u32 = 16u32; +pub const DS_REPUPD_WRITEABLE: u32 = 2u32; +pub const DS_RETURN_DNS_NAME: u32 = 1073741824u32; +pub const DS_RETURN_FLAT_NAME: u32 = 2147483648u32; +pub const DS_ROLE_DOMAIN_OWNER: u32 = 1u32; +pub const DS_ROLE_INFRASTRUCTURE_OWNER: u32 = 4u32; +pub const DS_ROLE_PDC_OWNER: u32 = 2u32; +pub const DS_ROLE_RID_OWNER: u32 = 3u32; +pub const DS_ROLE_SCHEMA_OWNER: u32 = 0u32; +pub const DS_SCHEMA_GUID_ATTR: u32 = 1u32; +pub const DS_SCHEMA_GUID_ATTR_SET: u32 = 2u32; +pub const DS_SCHEMA_GUID_CLASS: u32 = 3u32; +pub const DS_SCHEMA_GUID_CONTROL_RIGHT: u32 = 4u32; +pub const DS_SCHEMA_GUID_NOT_FOUND: u32 = 0u32; +pub const DS_SELECT_SECRET_DOMAIN_6_FLAG: u32 = 2048u32; +pub const DS_SERVICE_PRINCIPAL_NAME: DS_NAME_FORMAT = 10i32; +pub const DS_SID_OR_SID_HISTORY_NAME: DS_NAME_FORMAT = 11i32; +pub const DS_SPN_ADD_SPN_OP: DS_SPN_WRITE_OP = 0i32; +pub const DS_SPN_DELETE_SPN_OP: DS_SPN_WRITE_OP = 2i32; +pub const DS_SPN_DNS_HOST: DS_SPN_NAME_TYPE = 0i32; +pub const DS_SPN_DN_HOST: DS_SPN_NAME_TYPE = 1i32; +pub const DS_SPN_DOMAIN: DS_SPN_NAME_TYPE = 3i32; +pub const DS_SPN_NB_DOMAIN: DS_SPN_NAME_TYPE = 4i32; +pub const DS_SPN_NB_HOST: DS_SPN_NAME_TYPE = 2i32; +pub const DS_SPN_REPLACE_SPN_OP: DS_SPN_WRITE_OP = 1i32; +pub const DS_SPN_SERVICE: DS_SPN_NAME_TYPE = 5i32; +pub const DS_SYNCED_EVENT_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("NTDSInitialSyncsCompleted"); +pub const DS_SYNCED_EVENT_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NTDSInitialSyncsCompleted"); +pub const DS_TIMESERV_FLAG: u32 = 64u32; +pub const DS_TIMESERV_REQUIRED: u32 = 2048u32; +pub const DS_TRY_NEXTCLOSEST_SITE: u32 = 262144u32; +pub const DS_UNIQUE_ID_NAME: DS_NAME_FORMAT = 6i32; +pub const DS_UNKNOWN_NAME: DS_NAME_FORMAT = 0i32; +pub const DS_USER_PRINCIPAL_NAME: DS_NAME_FORMAT = 8i32; +pub const DS_WEB_SERVICE_REQUIRED: u32 = 1048576u32; +pub const DS_WRITABLE_FLAG: u32 = 256u32; +pub const DS_WRITABLE_REQUIRED: u32 = 4096u32; +pub const DS_WS_FLAG: u32 = 8192u32; +pub const DsRoleOperationActive: DSROLE_OPERATION_STATE = 1i32; +pub const DsRoleOperationIdle: DSROLE_OPERATION_STATE = 0i32; +pub const DsRoleOperationNeedReboot: DSROLE_OPERATION_STATE = 2i32; +pub const DsRoleOperationState: DSROLE_PRIMARY_DOMAIN_INFO_LEVEL = 3i32; +pub const DsRolePrimaryDomainInfoBasic: DSROLE_PRIMARY_DOMAIN_INFO_LEVEL = 1i32; +pub const DsRoleServerBackup: DSROLE_SERVER_STATE = 2i32; +pub const DsRoleServerPrimary: DSROLE_SERVER_STATE = 1i32; +pub const DsRoleServerUnknown: DSROLE_SERVER_STATE = 0i32; +pub const DsRoleUpgradeStatus: DSROLE_PRIMARY_DOMAIN_INFO_LEVEL = 2i32; +pub const DsRole_RoleBackupDomainController: DSROLE_MACHINE_ROLE = 4i32; +pub const DsRole_RoleMemberServer: DSROLE_MACHINE_ROLE = 3i32; +pub const DsRole_RoleMemberWorkstation: DSROLE_MACHINE_ROLE = 1i32; +pub const DsRole_RolePrimaryDomainController: DSROLE_MACHINE_ROLE = 5i32; +pub const DsRole_RoleStandaloneServer: DSROLE_MACHINE_ROLE = 2i32; +pub const DsRole_RoleStandaloneWorkstation: DSROLE_MACHINE_ROLE = 0i32; +pub const Email: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8f92a857_478e_11d1_a3b4_00c04fb950dc); +pub const FACILITY_BACKUP: u32 = 2047u32; +pub const FACILITY_NTDSB: u32 = 2048u32; +pub const FACILITY_SYSTEM: u32 = 0u32; +pub const FLAG_DISABLABLE_OPTIONAL_FEATURE: u32 = 4u32; +pub const FLAG_DOMAIN_OPTIONAL_FEATURE: u32 = 2u32; +pub const FLAG_FOREST_OPTIONAL_FEATURE: u32 = 1u32; +pub const FLAG_SERVER_OPTIONAL_FEATURE: u32 = 8u32; +pub const FRSCONN_MAX_PRIORITY: u32 = 8u32; +pub const FRSCONN_PRIORITY_MASK: u32 = 1879048192u32; +pub const FaxNumber: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa5062215_4681_11d1_a3b4_00c04fb950dc); +pub const GUID_COMPUTRS_CONTAINER_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("aa312825768811d1aded00c04fd8d5cd"); +pub const GUID_COMPUTRS_CONTAINER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("aa312825768811d1aded00c04fd8d5cd"); +pub const GUID_DELETED_OBJECTS_CONTAINER_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("18e2ea80684f11d2b9aa00c04f79f805"); +pub const GUID_DELETED_OBJECTS_CONTAINER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("18e2ea80684f11d2b9aa00c04f79f805"); +pub const GUID_DOMAIN_CONTROLLERS_CONTAINER_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("a361b2ffffd211d1aa4b00c04fd7d83a"); +pub const GUID_DOMAIN_CONTROLLERS_CONTAINER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("a361b2ffffd211d1aa4b00c04fd7d83a"); +pub const GUID_FOREIGNSECURITYPRINCIPALS_CONTAINER_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("22b70c67d56e4efb91e9300fca3dc1aa"); +pub const GUID_FOREIGNSECURITYPRINCIPALS_CONTAINER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("22b70c67d56e4efb91e9300fca3dc1aa"); +pub const GUID_INFRASTRUCTURE_CONTAINER_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2fbac1870ade11d297c400c04fd8d5cd"); +pub const GUID_INFRASTRUCTURE_CONTAINER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("2fbac1870ade11d297c400c04fd8d5cd"); +pub const GUID_KEYS_CONTAINER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("683A24E2E8164BD3AF86AC3C2CF3F981"); +pub const GUID_LOSTANDFOUND_CONTAINER_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ab8153b7768811d1aded00c04fd8d5cd"); +pub const GUID_LOSTANDFOUND_CONTAINER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ab8153b7768811d1aded00c04fd8d5cd"); +pub const GUID_MANAGED_SERVICE_ACCOUNTS_CONTAINER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1EB93889E40C45DF9F0C64D23BBB6237"); +pub const GUID_MICROSOFT_PROGRAM_DATA_CONTAINER_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("f4be92a4c777485e878e9421d53087db"); +pub const GUID_MICROSOFT_PROGRAM_DATA_CONTAINER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("f4be92a4c777485e878e9421d53087db"); +pub const GUID_NTDS_QUOTAS_CONTAINER_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("6227f0af1fc2410d8e3bb10615bb5b0f"); +pub const GUID_NTDS_QUOTAS_CONTAINER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("6227f0af1fc2410d8e3bb10615bb5b0f"); +pub const GUID_PRIVILEGED_ACCESS_MANAGEMENT_OPTIONAL_FEATURE_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("73e843ece8cc4046b4ab07ffe4ab5bcd"); +pub const GUID_PRIVILEGED_ACCESS_MANAGEMENT_OPTIONAL_FEATURE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("73e843ece8cc4046b4ab07ffe4ab5bcd"); +pub const GUID_PROGRAM_DATA_CONTAINER_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("09460c08ae1e4a4ea0f64aee7daa1e5a"); +pub const GUID_PROGRAM_DATA_CONTAINER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("09460c08ae1e4a4ea0f64aee7daa1e5a"); +pub const GUID_RECYCLE_BIN_OPTIONAL_FEATURE_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("d8dc6d76d0ac5e44f3b9a7f9b6744f2a"); +pub const GUID_RECYCLE_BIN_OPTIONAL_FEATURE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("d8dc6d76d0ac5e44f3b9a7f9b6744f2a"); +pub const GUID_SYSTEMS_CONTAINER_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ab1d30f3768811d1aded00c04fd8d5cd"); +pub const GUID_SYSTEMS_CONTAINER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ab1d30f3768811d1aded00c04fd8d5cd"); +pub const GUID_USERS_CONTAINER_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("a9d1ca15768811d1aded00c04fd8d5cd"); +pub const GUID_USERS_CONTAINER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("a9d1ca15768811d1aded00c04fd8d5cd"); +pub const Hold: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb3ad3e13_4080_11d1_a3ac_00c04fb950dc); +pub const LargeInteger: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x927971f5_0939_11d1_8be1_00c04fd8d503); +pub const NTDSAPI_BIND_ALLOW_DELEGATION: u32 = 1u32; +pub const NTDSAPI_BIND_FIND_BINDING: u32 = 2u32; +pub const NTDSAPI_BIND_FORCE_KERBEROS: u32 = 4u32; +pub const NTDSCONN_KCC_GC_TOPOLOGY: u32 = 1u32; +pub const NTDSCONN_KCC_INTERSITE_GC_TOPOLOGY: u32 = 32u32; +pub const NTDSCONN_KCC_INTERSITE_TOPOLOGY: u32 = 64u32; +pub const NTDSCONN_KCC_MINIMIZE_HOPS_TOPOLOGY: u32 = 4u32; +pub const NTDSCONN_KCC_NO_REASON: u32 = 0u32; +pub const NTDSCONN_KCC_OSCILLATING_CONNECTION_TOPOLOGY: u32 = 16u32; +pub const NTDSCONN_KCC_REDUNDANT_SERVER_TOPOLOGY: u32 = 512u32; +pub const NTDSCONN_KCC_RING_TOPOLOGY: u32 = 2u32; +pub const NTDSCONN_KCC_SERVER_FAILOVER_TOPOLOGY: u32 = 128u32; +pub const NTDSCONN_KCC_SITE_FAILOVER_TOPOLOGY: u32 = 256u32; +pub const NTDSCONN_KCC_STALE_SERVERS_TOPOLOGY: u32 = 8u32; +pub const NTDSCONN_OPT_DISABLE_INTERSITE_COMPRESSION: u32 = 16u32; +pub const NTDSCONN_OPT_IGNORE_SCHEDULE_MASK: u32 = 2147483648u32; +pub const NTDSCONN_OPT_IS_GENERATED: u32 = 1u32; +pub const NTDSCONN_OPT_OVERRIDE_NOTIFY_DEFAULT: u32 = 4u32; +pub const NTDSCONN_OPT_RODC_TOPOLOGY: u32 = 64u32; +pub const NTDSCONN_OPT_TWOWAY_SYNC: u32 = 2u32; +pub const NTDSCONN_OPT_USER_OWNED_SCHEDULE: u32 = 32u32; +pub const NTDSCONN_OPT_USE_NOTIFY: u32 = 8u32; +pub const NTDSDSA_OPT_BLOCK_RPC: u32 = 64u32; +pub const NTDSDSA_OPT_DISABLE_INBOUND_REPL: u32 = 2u32; +pub const NTDSDSA_OPT_DISABLE_NTDSCONN_XLATE: u32 = 8u32; +pub const NTDSDSA_OPT_DISABLE_OUTBOUND_REPL: u32 = 4u32; +pub const NTDSDSA_OPT_DISABLE_SPN_REGISTRATION: u32 = 16u32; +pub const NTDSDSA_OPT_GENERATE_OWN_TOPO: u32 = 32u32; +pub const NTDSDSA_OPT_IS_GC: u32 = 1u32; +pub const NTDSSETTINGS_DEFAULT_SERVER_REDUNDANCY: u32 = 2u32; +pub const NTDSSETTINGS_OPT_FORCE_KCC_W2K_ELECTION: u32 = 128u32; +pub const NTDSSETTINGS_OPT_FORCE_KCC_WHISTLER_BEHAVIOR: u32 = 64u32; +pub const NTDSSETTINGS_OPT_IS_AUTO_TOPOLOGY_DISABLED: u32 = 1u32; +pub const NTDSSETTINGS_OPT_IS_GROUP_CACHING_ENABLED: u32 = 32u32; +pub const NTDSSETTINGS_OPT_IS_INTER_SITE_AUTO_TOPOLOGY_DISABLED: u32 = 16u32; +pub const NTDSSETTINGS_OPT_IS_RAND_BH_SELECTION_DISABLED: u32 = 256u32; +pub const NTDSSETTINGS_OPT_IS_REDUNDANT_SERVER_TOPOLOGY_ENABLED: u32 = 1024u32; +pub const NTDSSETTINGS_OPT_IS_SCHEDULE_HASHING_ENABLED: u32 = 512u32; +pub const NTDSSETTINGS_OPT_IS_TOPL_CLEANUP_DISABLED: u32 = 2u32; +pub const NTDSSETTINGS_OPT_IS_TOPL_DETECT_STALE_DISABLED: u32 = 8u32; +pub const NTDSSETTINGS_OPT_IS_TOPL_MIN_HOPS_DISABLED: u32 = 4u32; +pub const NTDSSETTINGS_OPT_W2K3_BRIDGES_REQUIRED: u32 = 4096u32; +pub const NTDSSETTINGS_OPT_W2K3_IGNORE_SCHEDULES: u32 = 2048u32; +pub const NTDSSITECONN_OPT_DISABLE_COMPRESSION: u32 = 4u32; +pub const NTDSSITECONN_OPT_TWOWAY_SYNC: u32 = 2u32; +pub const NTDSSITECONN_OPT_USE_NOTIFY: u32 = 1u32; +pub const NTDSSITELINK_OPT_DISABLE_COMPRESSION: u32 = 4u32; +pub const NTDSSITELINK_OPT_TWOWAY_SYNC: u32 = 2u32; +pub const NTDSSITELINK_OPT_USE_NOTIFY: u32 = 1u32; +pub const NTDSTRANSPORT_OPT_BRIDGES_REQUIRED: u32 = 2u32; +pub const NTDSTRANSPORT_OPT_IGNORE_SCHEDULES: u32 = 1u32; +pub const NameTranslate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x274fae1f_3626_11d1_a3a4_00c04fb950dc); +pub const NetAddress: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb0b71247_4080_11d1_a3ac_00c04fb950dc); +pub const OQWF_DEFAULTFORM: u32 = 2u32; +pub const OQWF_HIDEMENUS: u32 = 1024u32; +pub const OQWF_HIDESEARCHUI: u32 = 2048u32; +pub const OQWF_ISSUEONOPEN: u32 = 64u32; +pub const OQWF_LOADQUERY: u32 = 8u32; +pub const OQWF_OKCANCEL: u32 = 1u32; +pub const OQWF_PARAMISPROPERTYBAG: u32 = 2147483648u32; +pub const OQWF_REMOVEFORMS: u32 = 32u32; +pub const OQWF_REMOVESCOPES: u32 = 16u32; +pub const OQWF_SAVEQUERYONOK: u32 = 512u32; +pub const OQWF_SHOWOPTIONAL: u32 = 128u32; +pub const OQWF_SINGLESELECT: u32 = 4u32; +pub const OctetList: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1241400f_4680_11d1_a3b4_00c04fb950dc); +pub const Path: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb2538919_4080_11d1_a3ac_00c04fb950dc); +pub const Pathname: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x080d0d78_f421_11d0_a36e_00c04fb950dc); +pub const PostalAddress: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0a75afcd_4680_11d1_a3b4_00c04fb950dc); +pub const PropertyEntry: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x72d3edc2_a4c4_11d0_8533_00c04fd8d503); +pub const PropertyValue: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b9e38b0_a97c_11d0_8534_00c04fd8d503); +pub const QUERYFORM_CHANGESFORMLIST: u64 = 1u64; +pub const QUERYFORM_CHANGESOPTFORMLIST: u64 = 2u64; +pub const ReplicaPointer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf5d1badf_4080_11d1_a3ac_00c04fb950dc); +pub const SCHEDULE_BANDWIDTH: u32 = 1u32; +pub const SCHEDULE_INTERVAL: u32 = 0u32; +pub const SCHEDULE_PRIORITY: u32 = 2u32; +pub const SecurityDescriptor: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb958f73c_9bdd_11d0_852c_00c04fd8d503); +pub const Timestamp: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb2bed2eb_4080_11d1_a3ac_00c04fb950dc); +pub const TypedName: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb33143cb_4080_11d1_a3ac_00c04fb950dc); +pub const WM_ADSPROP_NOTIFY_APPLY: u32 = 2128u32; +pub const WM_ADSPROP_NOTIFY_CHANGE: u32 = 2127u32; +pub const WM_ADSPROP_NOTIFY_ERROR: u32 = 2134u32; +pub const WM_ADSPROP_NOTIFY_EXIT: u32 = 2131u32; +pub const WM_ADSPROP_NOTIFY_FOREGROUND: u32 = 2130u32; +pub const WM_ADSPROP_NOTIFY_PAGEHWND: u32 = 2126u32; +pub const WM_ADSPROP_NOTIFY_PAGEINIT: u32 = 2125u32; +pub const WM_ADSPROP_NOTIFY_SETFOCUS: u32 = 2129u32; +pub const WinNTSystemInfo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66182ec4_afd1_11d2_9cb9_0000f87a369e); +pub const hrAccessDenied: ::windows_sys::core::HRESULT = -939522189i32; +pub const hrAfterInitialization: ::windows_sys::core::HRESULT = -939522246i32; +pub const hrAlreadyInitialized: ::windows_sys::core::HRESULT = -939523066i32; +pub const hrAlreadyOpen: ::windows_sys::core::HRESULT = -939589627i32; +pub const hrAlreadyPrepared: ::windows_sys::core::HRESULT = -939522489i32; +pub const hrBFInUse: ::windows_sys::core::HRESULT = -939523894i32; +pub const hrBFNotSynchronous: ::windows_sys::core::HRESULT = -2013265720i32; +pub const hrBFPageNotFound: ::windows_sys::core::HRESULT = -2013265719i32; +pub const hrBackupDirectoryNotEmpty: ::windows_sys::core::HRESULT = -939523592i32; +pub const hrBackupInProgress: ::windows_sys::core::HRESULT = -939523591i32; +pub const hrBackupNotAllowedYet: ::windows_sys::core::HRESULT = -939523573i32; +pub const hrBadBackupDatabaseSize: ::windows_sys::core::HRESULT = -939523535i32; +pub const hrBadCheckpointSignature: ::windows_sys::core::HRESULT = -939523564i32; +pub const hrBadColumnId: ::windows_sys::core::HRESULT = -939522579i32; +pub const hrBadDbSignature: ::windows_sys::core::HRESULT = -939523565i32; +pub const hrBadItagSequence: ::windows_sys::core::HRESULT = -939522578i32; +pub const hrBadLogSignature: ::windows_sys::core::HRESULT = -939523566i32; +pub const hrBadLogVersion: ::windows_sys::core::HRESULT = -939523582i32; +pub const hrBufferTooSmall: ::windows_sys::core::HRESULT = -939523058i32; +pub const hrBufferTruncated: ::windows_sys::core::HRESULT = -2013264914i32; +pub const hrCannotBeTagged: ::windows_sys::core::HRESULT = -939522575i32; +pub const hrCannotRename: ::windows_sys::core::HRESULT = -939522790i32; +pub const hrCheckpointCorrupt: ::windows_sys::core::HRESULT = -939523563i32; +pub const hrCircularLogging: ::windows_sys::core::HRESULT = -939589621i32; +pub const hrColumn2ndSysMaint: ::windows_sys::core::HRESULT = -939522586i32; +pub const hrColumnCannotIndex: ::windows_sys::core::HRESULT = -939522583i32; +pub const hrColumnDoesNotFit: ::windows_sys::core::HRESULT = -939522593i32; +pub const hrColumnDuplicate: ::windows_sys::core::HRESULT = -939522588i32; +pub const hrColumnInUse: ::windows_sys::core::HRESULT = -939523050i32; +pub const hrColumnIndexed: ::windows_sys::core::HRESULT = -939522591i32; +pub const hrColumnLong: ::windows_sys::core::HRESULT = -939522595i32; +pub const hrColumnMaxTruncated: ::windows_sys::core::HRESULT = -2013264408i32; +pub const hrColumnNotFound: ::windows_sys::core::HRESULT = -939522589i32; +pub const hrColumnNotUpdatable: ::windows_sys::core::HRESULT = -939523048i32; +pub const hrColumnNull: ::windows_sys::core::HRESULT = -2013264916i32; +pub const hrColumnSetNull: ::windows_sys::core::HRESULT = -2013264852i32; +pub const hrColumnTooBig: ::windows_sys::core::HRESULT = -939522590i32; +pub const hrCommunicationError: ::windows_sys::core::HRESULT = -939589619i32; +pub const hrConsistentTimeMismatch: ::windows_sys::core::HRESULT = -939523545i32; +pub const hrContainerNotEmpty: ::windows_sys::core::HRESULT = -939523053i32; +pub const hrContentsExpired: ::windows_sys::core::HRESULT = -939589615i32; +pub const hrCouldNotConnect: ::windows_sys::core::HRESULT = -939589625i32; +pub const hrCreateIndexFailed: ::windows_sys::core::HRESULT = -2013264511i32; +pub const hrCurrencyStackOutOfMemory: ::windows_sys::core::HRESULT = -939523026i32; +pub const hrDatabaseAttached: ::windows_sys::core::HRESULT = -2013264913i32; +pub const hrDatabaseCorrupted: ::windows_sys::core::HRESULT = -939522890i32; +pub const hrDatabaseDuplicate: ::windows_sys::core::HRESULT = -939522895i32; +pub const hrDatabaseInUse: ::windows_sys::core::HRESULT = -939522894i32; +pub const hrDatabaseInconsistent: ::windows_sys::core::HRESULT = -939523546i32; +pub const hrDatabaseInvalidName: ::windows_sys::core::HRESULT = -939522892i32; +pub const hrDatabaseInvalidPages: ::windows_sys::core::HRESULT = -939522891i32; +pub const hrDatabaseLocked: ::windows_sys::core::HRESULT = -939522889i32; +pub const hrDatabaseNotFound: ::windows_sys::core::HRESULT = -939522893i32; +pub const hrDeleteBackupFileFail: ::windows_sys::core::HRESULT = -939523572i32; +pub const hrDensityInvalid: ::windows_sys::core::HRESULT = -939522789i32; +pub const hrDiskFull: ::windows_sys::core::HRESULT = -939522288i32; +pub const hrDiskIO: ::windows_sys::core::HRESULT = -939523074i32; +pub const hrError: ::windows_sys::core::HRESULT = -939589630i32; +pub const hrExistingLogFileHasBadSignature: ::windows_sys::core::HRESULT = -2013265362i32; +pub const hrExistingLogFileIsNotContiguous: ::windows_sys::core::HRESULT = -2013265361i32; +pub const hrFLDKeyTooBig: ::windows_sys::core::HRESULT = -2013265520i32; +pub const hrFLDNullKey: ::windows_sys::core::HRESULT = -2013265518i32; +pub const hrFLDTooManySegments: ::windows_sys::core::HRESULT = -939523695i32; +pub const hrFeatureNotAvailable: ::windows_sys::core::HRESULT = -939523095i32; +pub const hrFileAccessDenied: ::windows_sys::core::HRESULT = -939523064i32; +pub const hrFileClose: ::windows_sys::core::HRESULT = -939523994i32; +pub const hrFileNotFound: ::windows_sys::core::HRESULT = -939522285i32; +pub const hrFileOpenReadOnly: ::windows_sys::core::HRESULT = -2013264107i32; +pub const hrFullBackupNotTaken: ::windows_sys::core::HRESULT = -939589618i32; +pub const hrGivenLogFileHasBadSignature: ::windows_sys::core::HRESULT = -939523541i32; +pub const hrGivenLogFileIsNotContiguous: ::windows_sys::core::HRESULT = -939523540i32; +pub const hrIllegalOperation: ::windows_sys::core::HRESULT = -939522784i32; +pub const hrInTransaction: ::windows_sys::core::HRESULT = -939522988i32; +pub const hrIncrementalBackupDisabled: ::windows_sys::core::HRESULT = -939589623i32; +pub const hrIndexCantBuild: ::windows_sys::core::HRESULT = -939522695i32; +pub const hrIndexDuplicate: ::windows_sys::core::HRESULT = -939522693i32; +pub const hrIndexHasClustered: ::windows_sys::core::HRESULT = -939522688i32; +pub const hrIndexHasPrimary: ::windows_sys::core::HRESULT = -939522694i32; +pub const hrIndexInUse: ::windows_sys::core::HRESULT = -939523045i32; +pub const hrIndexInvalidDef: ::windows_sys::core::HRESULT = -939522690i32; +pub const hrIndexMustStay: ::windows_sys::core::HRESULT = -939522691i32; +pub const hrIndexNotFound: ::windows_sys::core::HRESULT = -939522692i32; +pub const hrInvalidBackup: ::windows_sys::core::HRESULT = -939523570i32; +pub const hrInvalidBackupSequence: ::windows_sys::core::HRESULT = -939523575i32; +pub const hrInvalidBookmark: ::windows_sys::core::HRESULT = -939523051i32; +pub const hrInvalidBufferSize: ::windows_sys::core::HRESULT = -939523049i32; +pub const hrInvalidCodePage: ::windows_sys::core::HRESULT = -939523033i32; +pub const hrInvalidColumnType: ::windows_sys::core::HRESULT = -939522585i32; +pub const hrInvalidCountry: ::windows_sys::core::HRESULT = -939523035i32; +pub const hrInvalidDatabase: ::windows_sys::core::HRESULT = -939523068i32; +pub const hrInvalidDatabaseId: ::windows_sys::core::HRESULT = -939523086i32; +pub const hrInvalidFilename: ::windows_sys::core::HRESULT = -939523052i32; +pub const hrInvalidHandle: ::windows_sys::core::HRESULT = -939589629i32; +pub const hrInvalidLanguageId: ::windows_sys::core::HRESULT = -939523034i32; +pub const hrInvalidLogSequence: ::windows_sys::core::HRESULT = -939523581i32; +pub const hrInvalidName: ::windows_sys::core::HRESULT = -939523094i32; +pub const hrInvalidObject: ::windows_sys::core::HRESULT = -939522780i32; +pub const hrInvalidOnSort: ::windows_sys::core::HRESULT = -939522394i32; +pub const hrInvalidOperation: ::windows_sys::core::HRESULT = -939522190i32; +pub const hrInvalidParam: ::windows_sys::core::HRESULT = -939589631i32; +pub const hrInvalidParameter: ::windows_sys::core::HRESULT = -939523093i32; +pub const hrInvalidPath: ::windows_sys::core::HRESULT = -939523073i32; +pub const hrInvalidRecips: ::windows_sys::core::HRESULT = -939589626i32; +pub const hrInvalidSesid: ::windows_sys::core::HRESULT = -939522992i32; +pub const hrInvalidTableId: ::windows_sys::core::HRESULT = -939522786i32; +pub const hrKeyChanged: ::windows_sys::core::HRESULT = -2013264302i32; +pub const hrKeyDuplicate: ::windows_sys::core::HRESULT = -939522491i32; +pub const hrKeyIsMade: ::windows_sys::core::HRESULT = -939522580i32; +pub const hrKeyNotMade: ::windows_sys::core::HRESULT = -939522488i32; +pub const hrLogBufferTooSmall: ::windows_sys::core::HRESULT = -939523579i32; +pub const hrLogCorrupted: ::windows_sys::core::HRESULT = -939522244i32; +pub const hrLogDiskFull: ::windows_sys::core::HRESULT = -939523567i32; +pub const hrLogFileCorrupt: ::windows_sys::core::HRESULT = -939523595i32; +pub const hrLogFileNotFound: ::windows_sys::core::HRESULT = -939589622i32; +pub const hrLogSequenceEnd: ::windows_sys::core::HRESULT = -939523577i32; +pub const hrLogWriteFail: ::windows_sys::core::HRESULT = -939523586i32; +pub const hrLoggingDisabled: ::windows_sys::core::HRESULT = -939523580i32; +pub const hrMakeBackupDirectoryFail: ::windows_sys::core::HRESULT = -939523571i32; +pub const hrMissingExpiryToken: ::windows_sys::core::HRESULT = -939589617i32; +pub const hrMissingFullBackup: ::windows_sys::core::HRESULT = -939523536i32; +pub const hrMissingLogFile: ::windows_sys::core::HRESULT = -939523568i32; +pub const hrMissingPreviousLogFile: ::windows_sys::core::HRESULT = -939523587i32; +pub const hrMissingRestoreLogFiles: ::windows_sys::core::HRESULT = -939523539i32; +pub const hrNoBackup: ::windows_sys::core::HRESULT = -939523576i32; +pub const hrNoBackupDirectory: ::windows_sys::core::HRESULT = -939523593i32; +pub const hrNoCurrentIndex: ::windows_sys::core::HRESULT = -939522581i32; +pub const hrNoCurrentRecord: ::windows_sys::core::HRESULT = -939522493i32; +pub const hrNoFullRestore: ::windows_sys::core::HRESULT = -939589620i32; +pub const hrNoIdleActivity: ::windows_sys::core::HRESULT = -2013264862i32; +pub const hrNoWriteLock: ::windows_sys::core::HRESULT = -2013264853i32; +pub const hrNone: ::windows_sys::core::HRESULT = 0i32; +pub const hrNotInTransaction: ::windows_sys::core::HRESULT = -939523042i32; +pub const hrNotInitialized: ::windows_sys::core::HRESULT = -939523067i32; +pub const hrNullInvalid: ::windows_sys::core::HRESULT = -939522592i32; +pub const hrNullKeyDisallowed: ::windows_sys::core::HRESULT = -939523043i32; +pub const hrNyi: ::windows_sys::core::HRESULT = -1073741823i32; +pub const hrObjectDuplicate: ::windows_sys::core::HRESULT = -939522782i32; +pub const hrObjectNotFound: ::windows_sys::core::HRESULT = -939522791i32; +pub const hrOutOfBuffers: ::windows_sys::core::HRESULT = -939523082i32; +pub const hrOutOfCursors: ::windows_sys::core::HRESULT = -939523083i32; +pub const hrOutOfDatabaseSpace: ::windows_sys::core::HRESULT = -939523084i32; +pub const hrOutOfFileHandles: ::windows_sys::core::HRESULT = -939523076i32; +pub const hrOutOfMemory: ::windows_sys::core::HRESULT = -939523085i32; +pub const hrOutOfSessions: ::windows_sys::core::HRESULT = -939522995i32; +pub const hrOutOfThreads: ::windows_sys::core::HRESULT = -939523993i32; +pub const hrPMRecDeleted: ::windows_sys::core::HRESULT = -939523794i32; +pub const hrPatchFileMismatch: ::windows_sys::core::HRESULT = -939523544i32; +pub const hrPermissionDenied: ::windows_sys::core::HRESULT = -939522287i32; +pub const hrReadVerifyFailure: ::windows_sys::core::HRESULT = -939523078i32; +pub const hrRecordClusteredChanged: ::windows_sys::core::HRESULT = -939522492i32; +pub const hrRecordDeleted: ::windows_sys::core::HRESULT = -939523079i32; +pub const hrRecordNotFound: ::windows_sys::core::HRESULT = -939522495i32; +pub const hrRecordTooBig: ::windows_sys::core::HRESULT = -939523070i32; +pub const hrRecoveredWithErrors: ::windows_sys::core::HRESULT = -939523569i32; +pub const hrRemainingVersions: ::windows_sys::core::HRESULT = -2013265599i32; +pub const hrRestoreInProgress: ::windows_sys::core::HRESULT = -939589628i32; +pub const hrRestoreLogTooHigh: ::windows_sys::core::HRESULT = -939523542i32; +pub const hrRestoreLogTooLow: ::windows_sys::core::HRESULT = -939523543i32; +pub const hrRestoreMapExists: ::windows_sys::core::HRESULT = -939589624i32; +pub const hrSeekNotEqual: ::windows_sys::core::HRESULT = -2013264881i32; +pub const hrSessionWriteConflict: ::windows_sys::core::HRESULT = -939522989i32; +pub const hrTableDuplicate: ::windows_sys::core::HRESULT = -939522793i32; +pub const hrTableEmpty: ::windows_sys::core::HRESULT = -2013264619i32; +pub const hrTableInUse: ::windows_sys::core::HRESULT = -939522792i32; +pub const hrTableLocked: ::windows_sys::core::HRESULT = -939522794i32; +pub const hrTableNotEmpty: ::windows_sys::core::HRESULT = -939522788i32; +pub const hrTaggedNotNULL: ::windows_sys::core::HRESULT = -939522582i32; +pub const hrTempFileOpenError: ::windows_sys::core::HRESULT = -939522293i32; +pub const hrTermInProgress: ::windows_sys::core::HRESULT = -939523096i32; +pub const hrTooManyActiveUsers: ::windows_sys::core::HRESULT = -939523037i32; +pub const hrTooManyAttachedDatabases: ::windows_sys::core::HRESULT = -939522291i32; +pub const hrTooManyColumns: ::windows_sys::core::HRESULT = -939523056i32; +pub const hrTooManyIO: ::windows_sys::core::HRESULT = -939523991i32; +pub const hrTooManyIndexes: ::windows_sys::core::HRESULT = -939523081i32; +pub const hrTooManyKeys: ::windows_sys::core::HRESULT = -939523080i32; +pub const hrTooManyOpenDatabases: ::windows_sys::core::HRESULT = -939523069i32; +pub const hrTooManyOpenIndexes: ::windows_sys::core::HRESULT = -939522686i32; +pub const hrTooManyOpenTables: ::windows_sys::core::HRESULT = -939522785i32; +pub const hrTooManySorts: ::windows_sys::core::HRESULT = -939522395i32; +pub const hrTransTooDeep: ::windows_sys::core::HRESULT = -939522993i32; +pub const hrUnknownExpiryTokenFormat: ::windows_sys::core::HRESULT = -939589616i32; +pub const hrUpdateNotPrepared: ::windows_sys::core::HRESULT = -939522487i32; +pub const hrVersionStoreOutOfMemory: ::windows_sys::core::HRESULT = -939523027i32; +pub const hrWriteConflict: ::windows_sys::core::HRESULT = -939522994i32; +pub const hrerrDataHasChanged: ::windows_sys::core::HRESULT = -939522485i32; +pub const hrwrnDataHasChanged: ::windows_sys::core::HRESULT = -2013264310i32; +pub type ADSI_DIALECT_ENUM = i32; +pub type ADSTYPE = i32; +pub type ADS_ACEFLAG_ENUM = i32; +pub type ADS_ACETYPE_ENUM = i32; +pub type ADS_AUTHENTICATION_ENUM = u32; +pub type ADS_CHASE_REFERRALS_ENUM = i32; +pub type ADS_DEREFENUM = i32; +pub type ADS_DISPLAY_ENUM = i32; +pub type ADS_ESCAPE_MODE_ENUM = i32; +pub type ADS_FLAGTYPE_ENUM = i32; +pub type ADS_FORMAT_ENUM = i32; +pub type ADS_GROUP_TYPE_ENUM = i32; +pub type ADS_NAME_INITTYPE_ENUM = i32; +pub type ADS_NAME_TYPE_ENUM = i32; +pub type ADS_OPTION_ENUM = i32; +pub type ADS_PASSWORD_ENCODING_ENUM = i32; +pub type ADS_PATHTYPE_ENUM = i32; +pub type ADS_PREFERENCES_ENUM = i32; +pub type ADS_PROPERTY_OPERATION_ENUM = i32; +pub type ADS_RIGHTS_ENUM = i32; +pub type ADS_SCOPEENUM = i32; +pub type ADS_SD_CONTROL_ENUM = i32; +pub type ADS_SD_FORMAT_ENUM = i32; +pub type ADS_SD_REVISION_ENUM = i32; +pub type ADS_SEARCHPREF_ENUM = i32; +pub type ADS_SECURITY_INFO_ENUM = i32; +pub type ADS_SETTYPE_ENUM = i32; +pub type ADS_STATUSENUM = i32; +pub type ADS_SYSTEMFLAG_ENUM = i32; +pub type ADS_USER_FLAG_ENUM = i32; +pub type DSROLE_MACHINE_ROLE = i32; +pub type DSROLE_OPERATION_STATE = i32; +pub type DSROLE_PRIMARY_DOMAIN_INFO_LEVEL = i32; +pub type DSROLE_SERVER_STATE = i32; +pub type DS_KCC_TASKID = i32; +pub type DS_MANGLE_FOR = i32; +pub type DS_NAME_ERROR = i32; +pub type DS_NAME_FLAGS = i32; +pub type DS_NAME_FORMAT = i32; +pub type DS_REPL_INFO_TYPE = i32; +pub type DS_REPL_OP_TYPE = i32; +pub type DS_REPSYNCALL_ERROR = i32; +pub type DS_REPSYNCALL_EVENT = i32; +pub type DS_SPN_NAME_TYPE = i32; +pub type DS_SPN_WRITE_OP = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ADSPROPERROR { + pub hwndPage: super::super::Foundation::HWND, + pub pszPageTitle: ::windows_sys::core::PWSTR, + pub pszObjPath: ::windows_sys::core::PWSTR, + pub pszObjClass: ::windows_sys::core::PWSTR, + pub hr: ::windows_sys::core::HRESULT, + pub pszError: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ADSPROPERROR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ADSPROPERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ADSPROPINITPARAMS { + pub dwSize: u32, + pub dwFlags: u32, + pub hr: ::windows_sys::core::HRESULT, + pub pDsObj: IDirectoryObject, + pub pwzCN: ::windows_sys::core::PWSTR, + pub pWritableAttrs: *mut ADS_ATTR_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ADSPROPINITPARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ADSPROPINITPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ADSVALUE { + pub dwType: ADSTYPE, + pub Anonymous: ADSVALUE_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ADSVALUE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ADSVALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union ADSVALUE_0 { + pub DNString: *mut u16, + pub CaseExactString: *mut u16, + pub CaseIgnoreString: *mut u16, + pub PrintableString: *mut u16, + pub NumericString: *mut u16, + pub Boolean: u32, + pub Integer: u32, + pub OctetString: ADS_OCTET_STRING, + pub UTCTime: super::super::Foundation::SYSTEMTIME, + pub LargeInteger: i64, + pub ClassName: *mut u16, + pub ProviderSpecific: ADS_PROV_SPECIFIC, + pub pCaseIgnoreList: *mut ADS_CASEIGNORE_LIST, + pub pOctetList: *mut ADS_OCTET_LIST, + pub pPath: *mut ADS_PATH, + pub pPostalAddress: *mut ADS_POSTALADDRESS, + pub Timestamp: ADS_TIMESTAMP, + pub BackLink: ADS_BACKLINK, + pub pTypedName: *mut ADS_TYPEDNAME, + pub Hold: ADS_HOLD, + pub pNetAddress: *mut ADS_NETADDRESS, + pub pReplicaPointer: *mut ADS_REPLICAPOINTER, + pub pFaxNumber: *mut ADS_FAXNUMBER, + pub Email: ADS_EMAIL, + pub SecurityDescriptor: ADS_NT_SECURITY_DESCRIPTOR, + pub pDNWithBinary: *mut ADS_DN_WITH_BINARY, + pub pDNWithString: *mut ADS_DN_WITH_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ADSVALUE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ADSVALUE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ADS_ATTR_DEF { + pub pszAttrName: ::windows_sys::core::PWSTR, + pub dwADsType: ADSTYPE, + pub dwMinRange: u32, + pub dwMaxRange: u32, + pub fMultiValued: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ADS_ATTR_DEF {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ADS_ATTR_DEF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ADS_ATTR_INFO { + pub pszAttrName: ::windows_sys::core::PWSTR, + pub dwControlCode: u32, + pub dwADsType: ADSTYPE, + pub pADsValues: *mut ADSVALUE, + pub dwNumValues: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ADS_ATTR_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ADS_ATTR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_BACKLINK { + pub RemoteID: u32, + pub ObjectName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ADS_BACKLINK {} +impl ::core::clone::Clone for ADS_BACKLINK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_CASEIGNORE_LIST { + pub Next: *mut ADS_CASEIGNORE_LIST, + pub String: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ADS_CASEIGNORE_LIST {} +impl ::core::clone::Clone for ADS_CASEIGNORE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ADS_CLASS_DEF { + pub pszClassName: ::windows_sys::core::PWSTR, + pub dwMandatoryAttrs: u32, + pub ppszMandatoryAttrs: *mut ::windows_sys::core::PWSTR, + pub optionalAttrs: u32, + pub ppszOptionalAttrs: *mut *mut ::windows_sys::core::PWSTR, + pub dwNamingAttrs: u32, + pub ppszNamingAttrs: *mut *mut ::windows_sys::core::PWSTR, + pub dwSuperClasses: u32, + pub ppszSuperClasses: *mut *mut ::windows_sys::core::PWSTR, + pub fIsContainer: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ADS_CLASS_DEF {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ADS_CLASS_DEF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_DN_WITH_BINARY { + pub dwLength: u32, + pub lpBinaryValue: *mut u8, + pub pszDNString: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ADS_DN_WITH_BINARY {} +impl ::core::clone::Clone for ADS_DN_WITH_BINARY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_DN_WITH_STRING { + pub pszStringValue: ::windows_sys::core::PWSTR, + pub pszDNString: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ADS_DN_WITH_STRING {} +impl ::core::clone::Clone for ADS_DN_WITH_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_EMAIL { + pub Address: ::windows_sys::core::PWSTR, + pub Type: u32, +} +impl ::core::marker::Copy for ADS_EMAIL {} +impl ::core::clone::Clone for ADS_EMAIL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_FAXNUMBER { + pub TelephoneNumber: ::windows_sys::core::PWSTR, + pub NumberOfBits: u32, + pub Parameters: *mut u8, +} +impl ::core::marker::Copy for ADS_FAXNUMBER {} +impl ::core::clone::Clone for ADS_FAXNUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_HOLD { + pub ObjectName: ::windows_sys::core::PWSTR, + pub Amount: u32, +} +impl ::core::marker::Copy for ADS_HOLD {} +impl ::core::clone::Clone for ADS_HOLD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_NETADDRESS { + pub AddressType: u32, + pub AddressLength: u32, + pub Address: *mut u8, +} +impl ::core::marker::Copy for ADS_NETADDRESS {} +impl ::core::clone::Clone for ADS_NETADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_NT_SECURITY_DESCRIPTOR { + pub dwLength: u32, + pub lpValue: *mut u8, +} +impl ::core::marker::Copy for ADS_NT_SECURITY_DESCRIPTOR {} +impl ::core::clone::Clone for ADS_NT_SECURITY_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_OBJECT_INFO { + pub pszRDN: ::windows_sys::core::PWSTR, + pub pszObjectDN: ::windows_sys::core::PWSTR, + pub pszParentDN: ::windows_sys::core::PWSTR, + pub pszSchemaDN: ::windows_sys::core::PWSTR, + pub pszClassName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ADS_OBJECT_INFO {} +impl ::core::clone::Clone for ADS_OBJECT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_OCTET_LIST { + pub Next: *mut ADS_OCTET_LIST, + pub Length: u32, + pub Data: *mut u8, +} +impl ::core::marker::Copy for ADS_OCTET_LIST {} +impl ::core::clone::Clone for ADS_OCTET_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_OCTET_STRING { + pub dwLength: u32, + pub lpValue: *mut u8, +} +impl ::core::marker::Copy for ADS_OCTET_STRING {} +impl ::core::clone::Clone for ADS_OCTET_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_PATH { + pub Type: u32, + pub VolumeName: ::windows_sys::core::PWSTR, + pub Path: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ADS_PATH {} +impl ::core::clone::Clone for ADS_PATH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_POSTALADDRESS { + pub PostalAddress: [::windows_sys::core::PWSTR; 6], +} +impl ::core::marker::Copy for ADS_POSTALADDRESS {} +impl ::core::clone::Clone for ADS_POSTALADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_PROV_SPECIFIC { + pub dwLength: u32, + pub lpValue: *mut u8, +} +impl ::core::marker::Copy for ADS_PROV_SPECIFIC {} +impl ::core::clone::Clone for ADS_PROV_SPECIFIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_REPLICAPOINTER { + pub ServerName: ::windows_sys::core::PWSTR, + pub ReplicaType: u32, + pub ReplicaNumber: u32, + pub Count: u32, + pub ReplicaAddressHints: *mut ADS_NETADDRESS, +} +impl ::core::marker::Copy for ADS_REPLICAPOINTER {} +impl ::core::clone::Clone for ADS_REPLICAPOINTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ADS_SEARCHPREF_INFO { + pub dwSearchPref: ADS_SEARCHPREF_ENUM, + pub vValue: ADSVALUE, + pub dwStatus: ADS_STATUSENUM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ADS_SEARCHPREF_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ADS_SEARCHPREF_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ADS_SEARCH_COLUMN { + pub pszAttrName: ::windows_sys::core::PWSTR, + pub dwADsType: ADSTYPE, + pub pADsValues: *mut ADSVALUE, + pub dwNumValues: u32, + pub hReserved: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ADS_SEARCH_COLUMN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ADS_SEARCH_COLUMN { + fn clone(&self) -> Self { + *self + } +} +pub type ADS_SEARCH_HANDLE = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ADS_SORTKEY { + pub pszAttrType: ::windows_sys::core::PWSTR, + pub pszReserved: ::windows_sys::core::PWSTR, + pub fReverseorder: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ADS_SORTKEY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ADS_SORTKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_TIMESTAMP { + pub WholeSeconds: u32, + pub EventID: u32, +} +impl ::core::marker::Copy for ADS_TIMESTAMP {} +impl ::core::clone::Clone for ADS_TIMESTAMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_TYPEDNAME { + pub ObjectName: ::windows_sys::core::PWSTR, + pub Level: u32, + pub Interval: u32, +} +impl ::core::marker::Copy for ADS_TYPEDNAME {} +impl ::core::clone::Clone for ADS_TYPEDNAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADS_VLV { + pub dwBeforeCount: u32, + pub dwAfterCount: u32, + pub dwOffset: u32, + pub dwContentCount: u32, + pub pszTarget: ::windows_sys::core::PWSTR, + pub dwContextIDLength: u32, + pub lpContextID: *mut u8, +} +impl ::core::marker::Copy for ADS_VLV {} +impl ::core::clone::Clone for ADS_VLV { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct CQFORM { + pub cbStruct: u32, + pub dwFlags: u32, + pub clsid: ::windows_sys::core::GUID, + pub hIcon: super::super::UI::WindowsAndMessaging::HICON, + pub pszTitle: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for CQFORM {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for CQFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct CQPAGE { + pub cbStruct: u32, + pub dwFlags: u32, + pub pPageProc: LPCQPAGEPROC, + pub hInstance: super::super::Foundation::HINSTANCE, + pub idPageName: i32, + pub idPageTemplate: i32, + pub pDlgProc: super::super::UI::WindowsAndMessaging::DLGPROC, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for CQPAGE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for CQPAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOMAINDESC { + pub pszName: ::windows_sys::core::PWSTR, + pub pszPath: ::windows_sys::core::PWSTR, + pub pszNCName: ::windows_sys::core::PWSTR, + pub pszTrustParent: ::windows_sys::core::PWSTR, + pub pszObjectClass: ::windows_sys::core::PWSTR, + pub ulFlags: u32, + pub fDownLevel: super::super::Foundation::BOOL, + pub pdChildList: *mut DOMAINDESC, + pub pdNextSibling: *mut DOMAINDESC, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOMAINDESC {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOMAINDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOMAIN_CONTROLLER_INFOA { + pub DomainControllerName: ::windows_sys::core::PSTR, + pub DomainControllerAddress: ::windows_sys::core::PSTR, + pub DomainControllerAddressType: u32, + pub DomainGuid: ::windows_sys::core::GUID, + pub DomainName: ::windows_sys::core::PSTR, + pub DnsForestName: ::windows_sys::core::PSTR, + pub Flags: u32, + pub DcSiteName: ::windows_sys::core::PSTR, + pub ClientSiteName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DOMAIN_CONTROLLER_INFOA {} +impl ::core::clone::Clone for DOMAIN_CONTROLLER_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOMAIN_CONTROLLER_INFOW { + pub DomainControllerName: ::windows_sys::core::PWSTR, + pub DomainControllerAddress: ::windows_sys::core::PWSTR, + pub DomainControllerAddressType: u32, + pub DomainGuid: ::windows_sys::core::GUID, + pub DomainName: ::windows_sys::core::PWSTR, + pub DnsForestName: ::windows_sys::core::PWSTR, + pub Flags: u32, + pub DcSiteName: ::windows_sys::core::PWSTR, + pub ClientSiteName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DOMAIN_CONTROLLER_INFOW {} +impl ::core::clone::Clone for DOMAIN_CONTROLLER_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DOMAIN_TREE { + pub dsSize: u32, + pub dwCount: u32, + pub aDomains: [DOMAINDESC; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DOMAIN_TREE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DOMAIN_TREE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct DSA_NEWOBJ_DISPINFO { + pub dwSize: u32, + pub hObjClassIcon: super::super::UI::WindowsAndMessaging::HICON, + pub lpszWizTitle: ::windows_sys::core::PWSTR, + pub lpszContDisplayName: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for DSA_NEWOBJ_DISPINFO {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for DSA_NEWOBJ_DISPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSBITEMA { + pub cbStruct: u32, + pub pszADsPath: ::windows_sys::core::PCWSTR, + pub pszClass: ::windows_sys::core::PCWSTR, + pub dwMask: u32, + pub dwState: u32, + pub dwStateMask: u32, + pub szDisplayName: [u8; 64], + pub szIconLocation: [u8; 260], + pub iIconResID: i32, +} +impl ::core::marker::Copy for DSBITEMA {} +impl ::core::clone::Clone for DSBITEMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSBITEMW { + pub cbStruct: u32, + pub pszADsPath: ::windows_sys::core::PCWSTR, + pub pszClass: ::windows_sys::core::PCWSTR, + pub dwMask: u32, + pub dwState: u32, + pub dwStateMask: u32, + pub szDisplayName: [u16; 64], + pub szIconLocation: [u16; 260], + pub iIconResID: i32, +} +impl ::core::marker::Copy for DSBITEMW {} +impl ::core::clone::Clone for DSBITEMW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +pub struct DSBROWSEINFOA { + pub cbStruct: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub pszCaption: ::windows_sys::core::PCSTR, + pub pszTitle: ::windows_sys::core::PCSTR, + pub pszRoot: ::windows_sys::core::PCWSTR, + pub pszPath: ::windows_sys::core::PWSTR, + pub cchPath: u32, + pub dwFlags: u32, + pub pfnCallback: super::super::UI::Shell::BFFCALLBACK, + pub lParam: super::super::Foundation::LPARAM, + pub dwReturnFormat: u32, + pub pUserName: ::windows_sys::core::PCWSTR, + pub pPassword: ::windows_sys::core::PCWSTR, + pub pszObjectClass: ::windows_sys::core::PWSTR, + pub cchObjectClass: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +impl ::core::marker::Copy for DSBROWSEINFOA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +impl ::core::clone::Clone for DSBROWSEINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +pub struct DSBROWSEINFOW { + pub cbStruct: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub pszCaption: ::windows_sys::core::PCWSTR, + pub pszTitle: ::windows_sys::core::PCWSTR, + pub pszRoot: ::windows_sys::core::PCWSTR, + pub pszPath: ::windows_sys::core::PWSTR, + pub cchPath: u32, + pub dwFlags: u32, + pub pfnCallback: super::super::UI::Shell::BFFCALLBACK, + pub lParam: super::super::Foundation::LPARAM, + pub dwReturnFormat: u32, + pub pUserName: ::windows_sys::core::PCWSTR, + pub pPassword: ::windows_sys::core::PCWSTR, + pub pszObjectClass: ::windows_sys::core::PWSTR, + pub cchObjectClass: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +impl ::core::marker::Copy for DSBROWSEINFOW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +impl ::core::clone::Clone for DSBROWSEINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSCLASSCREATIONINFO { + pub dwFlags: u32, + pub clsidWizardDialog: ::windows_sys::core::GUID, + pub clsidWizardPrimaryPage: ::windows_sys::core::GUID, + pub cWizardExtensions: u32, + pub aWizardExtensions: [::windows_sys::core::GUID; 1], +} +impl ::core::marker::Copy for DSCLASSCREATIONINFO {} +impl ::core::clone::Clone for DSCLASSCREATIONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSCOLUMN { + pub dwFlags: u32, + pub fmt: i32, + pub cx: i32, + pub idsName: i32, + pub offsetProperty: i32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for DSCOLUMN {} +impl ::core::clone::Clone for DSCOLUMN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSDISPLAYSPECOPTIONS { + pub dwSize: u32, + pub dwFlags: u32, + pub offsetAttribPrefix: u32, + pub offsetUserName: u32, + pub offsetPassword: u32, + pub offsetServer: u32, + pub offsetServerConfigPath: u32, +} +impl ::core::marker::Copy for DSDISPLAYSPECOPTIONS {} +impl ::core::clone::Clone for DSDISPLAYSPECOPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSOBJECT { + pub dwFlags: u32, + pub dwProviderFlags: u32, + pub offsetName: u32, + pub offsetClass: u32, +} +impl ::core::marker::Copy for DSOBJECT {} +impl ::core::clone::Clone for DSOBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSOBJECTNAMES { + pub clsidNamespace: ::windows_sys::core::GUID, + pub cItems: u32, + pub aObjects: [DSOBJECT; 1], +} +impl ::core::marker::Copy for DSOBJECTNAMES {} +impl ::core::clone::Clone for DSOBJECTNAMES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSOP_FILTER_FLAGS { + pub Uplevel: DSOP_UPLEVEL_FILTER_FLAGS, + pub flDownlevel: u32, +} +impl ::core::marker::Copy for DSOP_FILTER_FLAGS {} +impl ::core::clone::Clone for DSOP_FILTER_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSOP_INIT_INFO { + pub cbSize: u32, + pub pwzTargetComputer: ::windows_sys::core::PCWSTR, + pub cDsScopeInfos: u32, + pub aDsScopeInfos: *mut DSOP_SCOPE_INIT_INFO, + pub flOptions: u32, + pub cAttributesToFetch: u32, + pub apwzAttributeNames: *const ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for DSOP_INIT_INFO {} +impl ::core::clone::Clone for DSOP_INIT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSOP_SCOPE_INIT_INFO { + pub cbSize: u32, + pub flType: u32, + pub flScope: u32, + pub FilterFlags: DSOP_FILTER_FLAGS, + pub pwzDcName: ::windows_sys::core::PCWSTR, + pub pwzADsPath: ::windows_sys::core::PCWSTR, + pub hr: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for DSOP_SCOPE_INIT_INFO {} +impl ::core::clone::Clone for DSOP_SCOPE_INIT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSOP_UPLEVEL_FILTER_FLAGS { + pub flBothModes: u32, + pub flMixedModeOnly: u32, + pub flNativeModeOnly: u32, +} +impl ::core::marker::Copy for DSOP_UPLEVEL_FILTER_FLAGS {} +impl ::core::clone::Clone for DSOP_UPLEVEL_FILTER_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSPROPERTYPAGEINFO { + pub offsetString: u32, +} +impl ::core::marker::Copy for DSPROPERTYPAGEINFO {} +impl ::core::clone::Clone for DSPROPERTYPAGEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSQUERYCLASSLIST { + pub cbStruct: u32, + pub cClasses: i32, + pub offsetClass: [u32; 1], +} +impl ::core::marker::Copy for DSQUERYCLASSLIST {} +impl ::core::clone::Clone for DSQUERYCLASSLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSQUERYINITPARAMS { + pub cbStruct: u32, + pub dwFlags: u32, + pub pDefaultScope: ::windows_sys::core::PWSTR, + pub pDefaultSaveLocation: ::windows_sys::core::PWSTR, + pub pUserName: ::windows_sys::core::PWSTR, + pub pPassword: ::windows_sys::core::PWSTR, + pub pServer: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DSQUERYINITPARAMS {} +impl ::core::clone::Clone for DSQUERYINITPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DSQUERYPARAMS { + pub cbStruct: u32, + pub dwFlags: u32, + pub hInstance: super::super::Foundation::HINSTANCE, + pub offsetQuery: i32, + pub iColumns: i32, + pub dwReserved: u32, + pub aColumns: [DSCOLUMN; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DSQUERYPARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DSQUERYPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSROLE_OPERATION_STATE_INFO { + pub OperationState: DSROLE_OPERATION_STATE, +} +impl ::core::marker::Copy for DSROLE_OPERATION_STATE_INFO {} +impl ::core::clone::Clone for DSROLE_OPERATION_STATE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSROLE_PRIMARY_DOMAIN_INFO_BASIC { + pub MachineRole: DSROLE_MACHINE_ROLE, + pub Flags: u32, + pub DomainNameFlat: ::windows_sys::core::PWSTR, + pub DomainNameDns: ::windows_sys::core::PWSTR, + pub DomainForestName: ::windows_sys::core::PWSTR, + pub DomainGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for DSROLE_PRIMARY_DOMAIN_INFO_BASIC {} +impl ::core::clone::Clone for DSROLE_PRIMARY_DOMAIN_INFO_BASIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSROLE_UPGRADE_STATUS_INFO { + pub OperationState: u32, + pub PreviousServerState: DSROLE_SERVER_STATE, +} +impl ::core::marker::Copy for DSROLE_UPGRADE_STATUS_INFO {} +impl ::core::clone::Clone for DSROLE_UPGRADE_STATUS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_DOMAIN_CONTROLLER_INFO_1A { + pub NetbiosName: ::windows_sys::core::PSTR, + pub DnsHostName: ::windows_sys::core::PSTR, + pub SiteName: ::windows_sys::core::PSTR, + pub ComputerObjectName: ::windows_sys::core::PSTR, + pub ServerObjectName: ::windows_sys::core::PSTR, + pub fIsPdc: super::super::Foundation::BOOL, + pub fDsEnabled: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_DOMAIN_CONTROLLER_INFO_1A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_DOMAIN_CONTROLLER_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_DOMAIN_CONTROLLER_INFO_1W { + pub NetbiosName: ::windows_sys::core::PWSTR, + pub DnsHostName: ::windows_sys::core::PWSTR, + pub SiteName: ::windows_sys::core::PWSTR, + pub ComputerObjectName: ::windows_sys::core::PWSTR, + pub ServerObjectName: ::windows_sys::core::PWSTR, + pub fIsPdc: super::super::Foundation::BOOL, + pub fDsEnabled: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_DOMAIN_CONTROLLER_INFO_1W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_DOMAIN_CONTROLLER_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_DOMAIN_CONTROLLER_INFO_2A { + pub NetbiosName: ::windows_sys::core::PSTR, + pub DnsHostName: ::windows_sys::core::PSTR, + pub SiteName: ::windows_sys::core::PSTR, + pub SiteObjectName: ::windows_sys::core::PSTR, + pub ComputerObjectName: ::windows_sys::core::PSTR, + pub ServerObjectName: ::windows_sys::core::PSTR, + pub NtdsDsaObjectName: ::windows_sys::core::PSTR, + pub fIsPdc: super::super::Foundation::BOOL, + pub fDsEnabled: super::super::Foundation::BOOL, + pub fIsGc: super::super::Foundation::BOOL, + pub SiteObjectGuid: ::windows_sys::core::GUID, + pub ComputerObjectGuid: ::windows_sys::core::GUID, + pub ServerObjectGuid: ::windows_sys::core::GUID, + pub NtdsDsaObjectGuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_DOMAIN_CONTROLLER_INFO_2A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_DOMAIN_CONTROLLER_INFO_2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_DOMAIN_CONTROLLER_INFO_2W { + pub NetbiosName: ::windows_sys::core::PWSTR, + pub DnsHostName: ::windows_sys::core::PWSTR, + pub SiteName: ::windows_sys::core::PWSTR, + pub SiteObjectName: ::windows_sys::core::PWSTR, + pub ComputerObjectName: ::windows_sys::core::PWSTR, + pub ServerObjectName: ::windows_sys::core::PWSTR, + pub NtdsDsaObjectName: ::windows_sys::core::PWSTR, + pub fIsPdc: super::super::Foundation::BOOL, + pub fDsEnabled: super::super::Foundation::BOOL, + pub fIsGc: super::super::Foundation::BOOL, + pub SiteObjectGuid: ::windows_sys::core::GUID, + pub ComputerObjectGuid: ::windows_sys::core::GUID, + pub ServerObjectGuid: ::windows_sys::core::GUID, + pub NtdsDsaObjectGuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_DOMAIN_CONTROLLER_INFO_2W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_DOMAIN_CONTROLLER_INFO_2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_DOMAIN_CONTROLLER_INFO_3A { + pub NetbiosName: ::windows_sys::core::PSTR, + pub DnsHostName: ::windows_sys::core::PSTR, + pub SiteName: ::windows_sys::core::PSTR, + pub SiteObjectName: ::windows_sys::core::PSTR, + pub ComputerObjectName: ::windows_sys::core::PSTR, + pub ServerObjectName: ::windows_sys::core::PSTR, + pub NtdsDsaObjectName: ::windows_sys::core::PSTR, + pub fIsPdc: super::super::Foundation::BOOL, + pub fDsEnabled: super::super::Foundation::BOOL, + pub fIsGc: super::super::Foundation::BOOL, + pub fIsRodc: super::super::Foundation::BOOL, + pub SiteObjectGuid: ::windows_sys::core::GUID, + pub ComputerObjectGuid: ::windows_sys::core::GUID, + pub ServerObjectGuid: ::windows_sys::core::GUID, + pub NtdsDsaObjectGuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_DOMAIN_CONTROLLER_INFO_3A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_DOMAIN_CONTROLLER_INFO_3A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_DOMAIN_CONTROLLER_INFO_3W { + pub NetbiosName: ::windows_sys::core::PWSTR, + pub DnsHostName: ::windows_sys::core::PWSTR, + pub SiteName: ::windows_sys::core::PWSTR, + pub SiteObjectName: ::windows_sys::core::PWSTR, + pub ComputerObjectName: ::windows_sys::core::PWSTR, + pub ServerObjectName: ::windows_sys::core::PWSTR, + pub NtdsDsaObjectName: ::windows_sys::core::PWSTR, + pub fIsPdc: super::super::Foundation::BOOL, + pub fDsEnabled: super::super::Foundation::BOOL, + pub fIsGc: super::super::Foundation::BOOL, + pub fIsRodc: super::super::Foundation::BOOL, + pub SiteObjectGuid: ::windows_sys::core::GUID, + pub ComputerObjectGuid: ::windows_sys::core::GUID, + pub ServerObjectGuid: ::windows_sys::core::GUID, + pub NtdsDsaObjectGuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_DOMAIN_CONTROLLER_INFO_3W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_DOMAIN_CONTROLLER_INFO_3W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_DOMAIN_TRUSTSA { + pub NetbiosDomainName: ::windows_sys::core::PSTR, + pub DnsDomainName: ::windows_sys::core::PSTR, + pub Flags: u32, + pub ParentIndex: u32, + pub TrustType: u32, + pub TrustAttributes: u32, + pub DomainSid: super::super::Foundation::PSID, + pub DomainGuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_DOMAIN_TRUSTSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_DOMAIN_TRUSTSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_DOMAIN_TRUSTSW { + pub NetbiosDomainName: ::windows_sys::core::PWSTR, + pub DnsDomainName: ::windows_sys::core::PWSTR, + pub Flags: u32, + pub ParentIndex: u32, + pub TrustType: u32, + pub TrustAttributes: u32, + pub DomainSid: super::super::Foundation::PSID, + pub DomainGuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_DOMAIN_TRUSTSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_DOMAIN_TRUSTSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_NAME_RESULTA { + pub cItems: u32, + pub rItems: *mut DS_NAME_RESULT_ITEMA, +} +impl ::core::marker::Copy for DS_NAME_RESULTA {} +impl ::core::clone::Clone for DS_NAME_RESULTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_NAME_RESULTW { + pub cItems: u32, + pub rItems: *mut DS_NAME_RESULT_ITEMW, +} +impl ::core::marker::Copy for DS_NAME_RESULTW {} +impl ::core::clone::Clone for DS_NAME_RESULTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_NAME_RESULT_ITEMA { + pub status: u32, + pub pDomain: ::windows_sys::core::PSTR, + pub pName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DS_NAME_RESULT_ITEMA {} +impl ::core::clone::Clone for DS_NAME_RESULT_ITEMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_NAME_RESULT_ITEMW { + pub status: u32, + pub pDomain: ::windows_sys::core::PWSTR, + pub pName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DS_NAME_RESULT_ITEMW {} +impl ::core::clone::Clone for DS_NAME_RESULT_ITEMW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_ATTR_META_DATA { + pub pszAttributeName: ::windows_sys::core::PWSTR, + pub dwVersion: u32, + pub ftimeLastOriginatingChange: super::super::Foundation::FILETIME, + pub uuidLastOriginatingDsaInvocationID: ::windows_sys::core::GUID, + pub usnOriginatingChange: i64, + pub usnLocalChange: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_ATTR_META_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_ATTR_META_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_ATTR_META_DATA_2 { + pub pszAttributeName: ::windows_sys::core::PWSTR, + pub dwVersion: u32, + pub ftimeLastOriginatingChange: super::super::Foundation::FILETIME, + pub uuidLastOriginatingDsaInvocationID: ::windows_sys::core::GUID, + pub usnOriginatingChange: i64, + pub usnLocalChange: i64, + pub pszLastOriginatingDsaDN: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_ATTR_META_DATA_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_ATTR_META_DATA_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_ATTR_META_DATA_BLOB { + pub oszAttributeName: u32, + pub dwVersion: u32, + pub ftimeLastOriginatingChange: super::super::Foundation::FILETIME, + pub uuidLastOriginatingDsaInvocationID: ::windows_sys::core::GUID, + pub usnOriginatingChange: i64, + pub usnLocalChange: i64, + pub oszLastOriginatingDsaDN: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_ATTR_META_DATA_BLOB {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_ATTR_META_DATA_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_ATTR_VALUE_META_DATA { + pub cNumEntries: u32, + pub dwEnumerationContext: u32, + pub rgMetaData: [DS_REPL_VALUE_META_DATA; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_ATTR_VALUE_META_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_ATTR_VALUE_META_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_ATTR_VALUE_META_DATA_2 { + pub cNumEntries: u32, + pub dwEnumerationContext: u32, + pub rgMetaData: [DS_REPL_VALUE_META_DATA_2; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_ATTR_VALUE_META_DATA_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_ATTR_VALUE_META_DATA_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_ATTR_VALUE_META_DATA_EXT { + pub cNumEntries: u32, + pub dwEnumerationContext: u32, + pub rgMetaData: [DS_REPL_VALUE_META_DATA_EXT; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_ATTR_VALUE_META_DATA_EXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_ATTR_VALUE_META_DATA_EXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_REPL_CURSOR { + pub uuidSourceDsaInvocationID: ::windows_sys::core::GUID, + pub usnAttributeFilter: i64, +} +impl ::core::marker::Copy for DS_REPL_CURSOR {} +impl ::core::clone::Clone for DS_REPL_CURSOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_REPL_CURSORS { + pub cNumCursors: u32, + pub dwReserved: u32, + pub rgCursor: [DS_REPL_CURSOR; 1], +} +impl ::core::marker::Copy for DS_REPL_CURSORS {} +impl ::core::clone::Clone for DS_REPL_CURSORS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_CURSORS_2 { + pub cNumCursors: u32, + pub dwEnumerationContext: u32, + pub rgCursor: [DS_REPL_CURSOR_2; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_CURSORS_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_CURSORS_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_CURSORS_3W { + pub cNumCursors: u32, + pub dwEnumerationContext: u32, + pub rgCursor: [DS_REPL_CURSOR_3W; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_CURSORS_3W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_CURSORS_3W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_CURSOR_2 { + pub uuidSourceDsaInvocationID: ::windows_sys::core::GUID, + pub usnAttributeFilter: i64, + pub ftimeLastSyncSuccess: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_CURSOR_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_CURSOR_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_CURSOR_3W { + pub uuidSourceDsaInvocationID: ::windows_sys::core::GUID, + pub usnAttributeFilter: i64, + pub ftimeLastSyncSuccess: super::super::Foundation::FILETIME, + pub pszSourceDsaDN: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_CURSOR_3W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_CURSOR_3W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_CURSOR_BLOB { + pub uuidSourceDsaInvocationID: ::windows_sys::core::GUID, + pub usnAttributeFilter: i64, + pub ftimeLastSyncSuccess: super::super::Foundation::FILETIME, + pub oszSourceDsaDN: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_CURSOR_BLOB {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_CURSOR_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_KCC_DSA_FAILURESW { + pub cNumEntries: u32, + pub dwReserved: u32, + pub rgDsaFailure: [DS_REPL_KCC_DSA_FAILUREW; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_KCC_DSA_FAILURESW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_KCC_DSA_FAILURESW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_KCC_DSA_FAILUREW { + pub pszDsaDN: ::windows_sys::core::PWSTR, + pub uuidDsaObjGuid: ::windows_sys::core::GUID, + pub ftimeFirstFailure: super::super::Foundation::FILETIME, + pub cNumFailures: u32, + pub dwLastResult: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_KCC_DSA_FAILUREW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_KCC_DSA_FAILUREW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_KCC_DSA_FAILUREW_BLOB { + pub oszDsaDN: u32, + pub uuidDsaObjGuid: ::windows_sys::core::GUID, + pub ftimeFirstFailure: super::super::Foundation::FILETIME, + pub cNumFailures: u32, + pub dwLastResult: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_KCC_DSA_FAILUREW_BLOB {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_KCC_DSA_FAILUREW_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_NEIGHBORSW { + pub cNumNeighbors: u32, + pub dwReserved: u32, + pub rgNeighbor: [DS_REPL_NEIGHBORW; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_NEIGHBORSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_NEIGHBORSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_NEIGHBORW { + pub pszNamingContext: ::windows_sys::core::PWSTR, + pub pszSourceDsaDN: ::windows_sys::core::PWSTR, + pub pszSourceDsaAddress: ::windows_sys::core::PWSTR, + pub pszAsyncIntersiteTransportDN: ::windows_sys::core::PWSTR, + pub dwReplicaFlags: u32, + pub dwReserved: u32, + pub uuidNamingContextObjGuid: ::windows_sys::core::GUID, + pub uuidSourceDsaObjGuid: ::windows_sys::core::GUID, + pub uuidSourceDsaInvocationID: ::windows_sys::core::GUID, + pub uuidAsyncIntersiteTransportObjGuid: ::windows_sys::core::GUID, + pub usnLastObjChangeSynced: i64, + pub usnAttributeFilter: i64, + pub ftimeLastSyncSuccess: super::super::Foundation::FILETIME, + pub ftimeLastSyncAttempt: super::super::Foundation::FILETIME, + pub dwLastSyncResult: u32, + pub cNumConsecutiveSyncFailures: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_NEIGHBORW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_NEIGHBORW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_NEIGHBORW_BLOB { + pub oszNamingContext: u32, + pub oszSourceDsaDN: u32, + pub oszSourceDsaAddress: u32, + pub oszAsyncIntersiteTransportDN: u32, + pub dwReplicaFlags: u32, + pub dwReserved: u32, + pub uuidNamingContextObjGuid: ::windows_sys::core::GUID, + pub uuidSourceDsaObjGuid: ::windows_sys::core::GUID, + pub uuidSourceDsaInvocationID: ::windows_sys::core::GUID, + pub uuidAsyncIntersiteTransportObjGuid: ::windows_sys::core::GUID, + pub usnLastObjChangeSynced: i64, + pub usnAttributeFilter: i64, + pub ftimeLastSyncSuccess: super::super::Foundation::FILETIME, + pub ftimeLastSyncAttempt: super::super::Foundation::FILETIME, + pub dwLastSyncResult: u32, + pub cNumConsecutiveSyncFailures: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_NEIGHBORW_BLOB {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_NEIGHBORW_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_OBJ_META_DATA { + pub cNumEntries: u32, + pub dwReserved: u32, + pub rgMetaData: [DS_REPL_ATTR_META_DATA; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_OBJ_META_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_OBJ_META_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_OBJ_META_DATA_2 { + pub cNumEntries: u32, + pub dwReserved: u32, + pub rgMetaData: [DS_REPL_ATTR_META_DATA_2; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_OBJ_META_DATA_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_OBJ_META_DATA_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_OPW { + pub ftimeEnqueued: super::super::Foundation::FILETIME, + pub ulSerialNumber: u32, + pub ulPriority: u32, + pub OpType: DS_REPL_OP_TYPE, + pub ulOptions: u32, + pub pszNamingContext: ::windows_sys::core::PWSTR, + pub pszDsaDN: ::windows_sys::core::PWSTR, + pub pszDsaAddress: ::windows_sys::core::PWSTR, + pub uuidNamingContextObjGuid: ::windows_sys::core::GUID, + pub uuidDsaObjGuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_OPW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_OPW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_OPW_BLOB { + pub ftimeEnqueued: super::super::Foundation::FILETIME, + pub ulSerialNumber: u32, + pub ulPriority: u32, + pub OpType: DS_REPL_OP_TYPE, + pub ulOptions: u32, + pub oszNamingContext: u32, + pub oszDsaDN: u32, + pub oszDsaAddress: u32, + pub uuidNamingContextObjGuid: ::windows_sys::core::GUID, + pub uuidDsaObjGuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_OPW_BLOB {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_OPW_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_PENDING_OPSW { + pub ftimeCurrentOpStarted: super::super::Foundation::FILETIME, + pub cNumPendingOps: u32, + pub rgPendingOp: [DS_REPL_OPW; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_PENDING_OPSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_PENDING_OPSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_QUEUE_STATISTICSW { + pub ftimeCurrentOpStarted: super::super::Foundation::FILETIME, + pub cNumPendingOps: u32, + pub ftimeOldestSync: super::super::Foundation::FILETIME, + pub ftimeOldestAdd: super::super::Foundation::FILETIME, + pub ftimeOldestMod: super::super::Foundation::FILETIME, + pub ftimeOldestDel: super::super::Foundation::FILETIME, + pub ftimeOldestUpdRefs: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_QUEUE_STATISTICSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_QUEUE_STATISTICSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_VALUE_META_DATA { + pub pszAttributeName: ::windows_sys::core::PWSTR, + pub pszObjectDn: ::windows_sys::core::PWSTR, + pub cbData: u32, + pub pbData: *mut u8, + pub ftimeDeleted: super::super::Foundation::FILETIME, + pub ftimeCreated: super::super::Foundation::FILETIME, + pub dwVersion: u32, + pub ftimeLastOriginatingChange: super::super::Foundation::FILETIME, + pub uuidLastOriginatingDsaInvocationID: ::windows_sys::core::GUID, + pub usnOriginatingChange: i64, + pub usnLocalChange: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_VALUE_META_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_VALUE_META_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_VALUE_META_DATA_2 { + pub pszAttributeName: ::windows_sys::core::PWSTR, + pub pszObjectDn: ::windows_sys::core::PWSTR, + pub cbData: u32, + pub pbData: *mut u8, + pub ftimeDeleted: super::super::Foundation::FILETIME, + pub ftimeCreated: super::super::Foundation::FILETIME, + pub dwVersion: u32, + pub ftimeLastOriginatingChange: super::super::Foundation::FILETIME, + pub uuidLastOriginatingDsaInvocationID: ::windows_sys::core::GUID, + pub usnOriginatingChange: i64, + pub usnLocalChange: i64, + pub pszLastOriginatingDsaDN: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_VALUE_META_DATA_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_VALUE_META_DATA_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_VALUE_META_DATA_BLOB { + pub oszAttributeName: u32, + pub oszObjectDn: u32, + pub cbData: u32, + pub obData: u32, + pub ftimeDeleted: super::super::Foundation::FILETIME, + pub ftimeCreated: super::super::Foundation::FILETIME, + pub dwVersion: u32, + pub ftimeLastOriginatingChange: super::super::Foundation::FILETIME, + pub uuidLastOriginatingDsaInvocationID: ::windows_sys::core::GUID, + pub usnOriginatingChange: i64, + pub usnLocalChange: i64, + pub oszLastOriginatingDsaDN: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_VALUE_META_DATA_BLOB {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_VALUE_META_DATA_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_VALUE_META_DATA_BLOB_EXT { + pub oszAttributeName: u32, + pub oszObjectDn: u32, + pub cbData: u32, + pub obData: u32, + pub ftimeDeleted: super::super::Foundation::FILETIME, + pub ftimeCreated: super::super::Foundation::FILETIME, + pub dwVersion: u32, + pub ftimeLastOriginatingChange: super::super::Foundation::FILETIME, + pub uuidLastOriginatingDsaInvocationID: ::windows_sys::core::GUID, + pub usnOriginatingChange: i64, + pub usnLocalChange: i64, + pub oszLastOriginatingDsaDN: u32, + pub dwUserIdentifier: u32, + pub dwPriorLinkState: u32, + pub dwCurrentLinkState: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_VALUE_META_DATA_BLOB_EXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_VALUE_META_DATA_BLOB_EXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DS_REPL_VALUE_META_DATA_EXT { + pub pszAttributeName: ::windows_sys::core::PWSTR, + pub pszObjectDn: ::windows_sys::core::PWSTR, + pub cbData: u32, + pub pbData: *mut u8, + pub ftimeDeleted: super::super::Foundation::FILETIME, + pub ftimeCreated: super::super::Foundation::FILETIME, + pub dwVersion: u32, + pub ftimeLastOriginatingChange: super::super::Foundation::FILETIME, + pub uuidLastOriginatingDsaInvocationID: ::windows_sys::core::GUID, + pub usnOriginatingChange: i64, + pub usnLocalChange: i64, + pub pszLastOriginatingDsaDN: ::windows_sys::core::PWSTR, + pub dwUserIdentifier: u32, + pub dwPriorLinkState: u32, + pub dwCurrentLinkState: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DS_REPL_VALUE_META_DATA_EXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DS_REPL_VALUE_META_DATA_EXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_REPSYNCALL_ERRINFOA { + pub pszSvrId: ::windows_sys::core::PSTR, + pub error: DS_REPSYNCALL_ERROR, + pub dwWin32Err: u32, + pub pszSrcId: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DS_REPSYNCALL_ERRINFOA {} +impl ::core::clone::Clone for DS_REPSYNCALL_ERRINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_REPSYNCALL_ERRINFOW { + pub pszSvrId: ::windows_sys::core::PWSTR, + pub error: DS_REPSYNCALL_ERROR, + pub dwWin32Err: u32, + pub pszSrcId: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DS_REPSYNCALL_ERRINFOW {} +impl ::core::clone::Clone for DS_REPSYNCALL_ERRINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_REPSYNCALL_SYNCA { + pub pszSrcId: ::windows_sys::core::PSTR, + pub pszDstId: ::windows_sys::core::PSTR, + pub pszNC: ::windows_sys::core::PSTR, + pub pguidSrc: *mut ::windows_sys::core::GUID, + pub pguidDst: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for DS_REPSYNCALL_SYNCA {} +impl ::core::clone::Clone for DS_REPSYNCALL_SYNCA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_REPSYNCALL_SYNCW { + pub pszSrcId: ::windows_sys::core::PWSTR, + pub pszDstId: ::windows_sys::core::PWSTR, + pub pszNC: ::windows_sys::core::PWSTR, + pub pguidSrc: *mut ::windows_sys::core::GUID, + pub pguidDst: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for DS_REPSYNCALL_SYNCW {} +impl ::core::clone::Clone for DS_REPSYNCALL_SYNCW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_REPSYNCALL_UPDATEA { + pub event: DS_REPSYNCALL_EVENT, + pub pErrInfo: *mut DS_REPSYNCALL_ERRINFOA, + pub pSync: *mut DS_REPSYNCALL_SYNCA, +} +impl ::core::marker::Copy for DS_REPSYNCALL_UPDATEA {} +impl ::core::clone::Clone for DS_REPSYNCALL_UPDATEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_REPSYNCALL_UPDATEW { + pub event: DS_REPSYNCALL_EVENT, + pub pErrInfo: *mut DS_REPSYNCALL_ERRINFOW, + pub pSync: *mut DS_REPSYNCALL_SYNCW, +} +impl ::core::marker::Copy for DS_REPSYNCALL_UPDATEW {} +impl ::core::clone::Clone for DS_REPSYNCALL_UPDATEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_SCHEMA_GUID_MAPA { + pub guid: ::windows_sys::core::GUID, + pub guidType: u32, + pub pName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DS_SCHEMA_GUID_MAPA {} +impl ::core::clone::Clone for DS_SCHEMA_GUID_MAPA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_SCHEMA_GUID_MAPW { + pub guid: ::windows_sys::core::GUID, + pub guidType: u32, + pub pName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DS_SCHEMA_GUID_MAPW {} +impl ::core::clone::Clone for DS_SCHEMA_GUID_MAPW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DS_SELECTION { + pub pwzName: ::windows_sys::core::PWSTR, + pub pwzADsPath: ::windows_sys::core::PWSTR, + pub pwzClass: ::windows_sys::core::PWSTR, + pub pwzUPN: ::windows_sys::core::PWSTR, + pub pvarFetchedAttributes: *mut super::super::System::Variant::VARIANT, + pub flScopeType: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DS_SELECTION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DS_SELECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DS_SELECTION_LIST { + pub cItems: u32, + pub cFetchedAttributes: u32, + pub aDsSelection: [DS_SELECTION; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DS_SELECTION_LIST {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DS_SELECTION_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DS_SITE_COST_INFO { + pub errorCode: u32, + pub cost: u32, +} +impl ::core::marker::Copy for DS_SITE_COST_INFO {} +impl ::core::clone::Clone for DS_SITE_COST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +pub struct OPENQUERYWINDOW { + pub cbStruct: u32, + pub dwFlags: u32, + pub clsidHandler: ::windows_sys::core::GUID, + pub pHandlerParameters: *mut ::core::ffi::c_void, + pub clsidDefaultForm: ::windows_sys::core::GUID, + pub pPersistQuery: IPersistQuery, + pub Anonymous: OPENQUERYWINDOW_0, +} +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +impl ::core::marker::Copy for OPENQUERYWINDOW {} +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +impl ::core::clone::Clone for OPENQUERYWINDOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +pub union OPENQUERYWINDOW_0 { + pub pFormParameters: *mut ::core::ffi::c_void, + pub ppbFormParameters: super::super::System::Com::StructuredStorage::IPropertyBag, +} +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +impl ::core::marker::Copy for OPENQUERYWINDOW_0 {} +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +impl ::core::clone::Clone for OPENQUERYWINDOW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCHEDULE { + pub Size: u32, + pub Bandwidth: u32, + pub NumberOfSchedules: u32, + pub Schedules: [SCHEDULE_HEADER; 1], +} +impl ::core::marker::Copy for SCHEDULE {} +impl ::core::clone::Clone for SCHEDULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCHEDULE_HEADER { + pub Type: u32, + pub Offset: u32, +} +impl ::core::marker::Copy for SCHEDULE_HEADER {} +impl ::core::clone::Clone for SCHEDULE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub type LPCQADDFORMSPROC = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub type LPCQADDPAGESPROC = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub type LPCQPAGEPROC = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDSENUMATTRIBUTES = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/Clustering/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/Clustering/mod.rs new file mode 100644 index 000000000..08b74027d --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/Clustering/mod.rs @@ -0,0 +1,5031 @@ +::windows_targets::link!("clusapi.dll" "system" fn AddClusterGroupDependency(hdependentgroup : HGROUP, hprovidergroup : HGROUP) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn AddClusterGroupDependencyEx(hdependentgroup : HGROUP, hprovidergroup : HGROUP, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn AddClusterGroupSetDependency(hdependentgroupset : HGROUPSET, hprovidergroupset : HGROUPSET) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn AddClusterGroupSetDependencyEx(hdependentgroupset : HGROUPSET, hprovidergroupset : HGROUPSET, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn AddClusterGroupToGroupSetDependency(hdependentgroup : HGROUP, hprovidergroupset : HGROUPSET) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn AddClusterGroupToGroupSetDependencyEx(hdependentgroup : HGROUP, hprovidergroupset : HGROUPSET, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddClusterNode(hcluster : HCLUSTER, lpsznodename : ::windows_sys::core::PCWSTR, pfnprogresscallback : PCLUSTER_SETUP_PROGRESS_CALLBACK, pvcallbackarg : *const ::core::ffi::c_void) -> HNODE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddClusterNodeEx(hcluster : HCLUSTER, lpsznodename : ::windows_sys::core::PCWSTR, dwflags : u32, pfnprogresscallback : PCLUSTER_SETUP_PROGRESS_CALLBACK, pvcallbackarg : *const ::core::ffi::c_void) -> HNODE); +::windows_targets::link!("clusapi.dll" "system" fn AddClusterResourceDependency(hresource : HRESOURCE, hdependson : HRESOURCE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn AddClusterResourceDependencyEx(hresource : HRESOURCE, hdependson : HRESOURCE, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn AddClusterResourceNode(hresource : HRESOURCE, hnode : HNODE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn AddClusterResourceNodeEx(hresource : HRESOURCE, hnode : HNODE, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddClusterStorageNode(hcluster : HCLUSTER, lpsznodename : ::windows_sys::core::PCWSTR, pfnprogresscallback : PCLUSTER_SETUP_PROGRESS_CALLBACK, pvcallbackarg : *const ::core::ffi::c_void, lpszclusterstoragenodedescription : ::windows_sys::core::PCWSTR, lpszclusterstoragenodelocation : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn AddCrossClusterGroupSetDependency(hdependentgroupset : HGROUPSET, lpremoteclustername : ::windows_sys::core::PCWSTR, lpremotegroupsetname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn AddResourceToClusterSharedVolumes(hresource : HRESOURCE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn BackupClusterDatabase(hcluster : HCLUSTER, lpszpathname : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CanResourceBeDependent(hresource : HRESOURCE, hresourcedependent : HRESOURCE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("clusapi.dll" "system" fn CancelClusterGroupOperation(hgroup : HGROUP, dwcancelflags_reserved : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ChangeClusterResourceGroup(hresource : HRESOURCE, hgroup : HGROUP) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ChangeClusterResourceGroupEx(hresource : HRESOURCE, hgroup : HGROUP, flags : u64) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ChangeClusterResourceGroupEx2(hresource : HRESOURCE, hgroup : HGROUP, flags : u64, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseCluster(hcluster : HCLUSTER) -> super::super::Foundation:: BOOL); +::windows_targets::link!("resutils.dll" "system" fn CloseClusterCryptProvider(hcluscryptprovider : HCLUSCRYPTPROVIDER) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseClusterGroup(hgroup : HGROUP) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseClusterGroupSet(hgroupset : HGROUPSET) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseClusterNetInterface(hnetinterface : HNETINTERFACE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseClusterNetwork(hnetwork : HNETWORK) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseClusterNode(hnode : HNODE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseClusterNotifyPort(hchange : HCHANGE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseClusterResource(hresource : HRESOURCE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("resutils.dll" "system" fn ClusAddClusterHealthFault(hcluster : HCLUSTER, failure : *const CLUSTER_HEALTH_FAULT, param2 : u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ClusGetClusterHealthFaults(hcluster : HCLUSTER, objects : *mut CLUSTER_HEALTH_FAULT_ARRAY, flags : u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ClusRemoveClusterHealthFault(hcluster : HCLUSTER, id : ::windows_sys::core::PCWSTR, flags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClusWorkerCheckTerminate(lpworker : *mut CLUS_WORKER) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClusWorkerCreate(lpworker : *mut CLUS_WORKER, lpstartaddress : PWORKER_START_ROUTINE, lpparameter : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClusWorkerTerminate(lpworker : *const CLUS_WORKER) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClusWorkerTerminateEx(clusworker : *mut CLUS_WORKER, timeoutinmilliseconds : u32, waitonly : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClusWorkersTerminate(clusworkers : *mut *mut CLUS_WORKER, clusworkerscount : usize, timeoutinmilliseconds : u32, waitonly : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClusapiSetReasonHandler(lphandler : *const CLUSAPI_REASON_HANDLER) -> *mut CLUSAPI_REASON_HANDLER); +::windows_targets::link!("clusapi.dll" "system" fn ClusterAddGroupToAffinityRule(hcluster : HCLUSTER, rulename : ::windows_sys::core::PCWSTR, hgroup : HGROUP) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterAddGroupToGroupSet(hgroupset : HGROUPSET, hgroup : HGROUP) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterAddGroupToGroupSetWithDomains(hgroupset : HGROUPSET, hgroup : HGROUP, faultdomain : u32, updatedomain : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterAddGroupToGroupSetWithDomainsEx(hgroupset : HGROUPSET, hgroup : HGROUP, faultdomain : u32, updatedomain : u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterAffinityRuleControl(hcluster : HCLUSTER, affinityrulename : ::windows_sys::core::PCWSTR, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, cbinbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, cboutbuffersize : u32, lpbytesreturned : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ClusterClearBackupStateForSharedVolume(lpszvolumepathname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterCloseEnum(henum : HCLUSENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterCloseEnumEx(hclusterenum : HCLUSENUMEX) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterControl(hcluster : HCLUSTER, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterControlEx(hcluster : HCLUSTER, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterCreateAffinityRule(hcluster : HCLUSTER, rulename : ::windows_sys::core::PCWSTR, ruletype : CLUS_AFFINITY_RULE_TYPE) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ClusterDecrypt(hcluscryptprovider : HCLUSCRYPTPROVIDER, pcryptinput : *const u8, cbcryptinput : u32, ppcryptoutput : *mut *mut u8, pcbcryptoutput : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ClusterEncrypt(hcluscryptprovider : HCLUSCRYPTPROVIDER, pdata : *const u8, cbdata : u32, ppdata : *mut *mut u8, pcbdata : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterEnum(henum : HCLUSENUM, dwindex : u32, lpdwtype : *mut u32, lpszname : ::windows_sys::core::PWSTR, lpcchname : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterEnumEx(hclusterenum : HCLUSENUMEX, dwindex : u32, pitem : *mut CLUSTER_ENUM_ITEM, cbitem : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGetEnumCount(henum : HCLUSENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGetEnumCountEx(hclusterenum : HCLUSENUMEX) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClusterGetVolumeNameForVolumeMountPoint(lpszvolumemountpoint : ::windows_sys::core::PCWSTR, lpszvolumename : ::windows_sys::core::PWSTR, cchbufferlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClusterGetVolumePathName(lpszfilename : ::windows_sys::core::PCWSTR, lpszvolumepathname : ::windows_sys::core::PWSTR, cchbufferlength : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupCloseEnum(hgroupenum : HGROUPENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupCloseEnumEx(hgroupenumex : HGROUPENUMEX) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupControl(hgroup : HGROUP, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupControlEx(hgroup : HGROUP, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupEnum(hgroupenum : HGROUPENUM, dwindex : u32, lpdwtype : *mut u32, lpszresourcename : ::windows_sys::core::PWSTR, lpcchname : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupEnumEx(hgroupenumex : HGROUPENUMEX, dwindex : u32, pitem : *mut CLUSTER_GROUP_ENUM_ITEM, cbitem : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupGetEnumCount(hgroupenum : HGROUPENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupGetEnumCountEx(hgroupenumex : HGROUPENUMEX) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupOpenEnum(hgroup : HGROUP, dwtype : u32) -> HGROUPENUM); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupOpenEnumEx(hcluster : HCLUSTER, lpszproperties : ::windows_sys::core::PCWSTR, cbproperties : u32, lpszroproperties : ::windows_sys::core::PCWSTR, cbroproperties : u32, dwflags : u32) -> HGROUPENUMEX); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupSetCloseEnum(hgroupsetenum : HGROUPSETENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupSetControl(hgroupset : HGROUPSET, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, cbinbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, cboutbuffersize : u32, lpbytesreturned : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupSetControlEx(hgroupset : HGROUPSET, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, cbinbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, cboutbuffersize : u32, lpbytesreturned : *mut u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupSetEnum(hgroupsetenum : HGROUPSETENUM, dwindex : u32, lpszname : ::windows_sys::core::PWSTR, lpcchname : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupSetGetEnumCount(hgroupsetenum : HGROUPSETENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterGroupSetOpenEnum(hcluster : HCLUSTER) -> HGROUPSETENUM); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClusterIsPathOnSharedVolume(lpszpathname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNetInterfaceCloseEnum(hnetinterfaceenum : HNETINTERFACEENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNetInterfaceControl(hnetinterface : HNETINTERFACE, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNetInterfaceControlEx(hnetinterface : HNETINTERFACE, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNetInterfaceEnum(hnetinterfaceenum : HNETINTERFACEENUM, dwindex : u32, lpszname : ::windows_sys::core::PWSTR, lpcchname : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNetInterfaceOpenEnum(hcluster : HCLUSTER, lpsznodename : ::windows_sys::core::PCWSTR, lpsznetworkname : ::windows_sys::core::PCWSTR) -> HNETINTERFACEENUM); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNetworkCloseEnum(hnetworkenum : HNETWORKENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNetworkControl(hnetwork : HNETWORK, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNetworkControlEx(hnetwork : HNETWORK, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNetworkEnum(hnetworkenum : HNETWORKENUM, dwindex : u32, lpdwtype : *mut u32, lpszname : ::windows_sys::core::PWSTR, lpcchname : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNetworkGetEnumCount(hnetworkenum : HNETWORKENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNetworkOpenEnum(hnetwork : HNETWORK, dwtype : u32) -> HNETWORKENUM); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNodeCloseEnum(hnodeenum : HNODEENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNodeCloseEnumEx(hnodeenum : HNODEENUMEX) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNodeControl(hnode : HNODE, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNodeControlEx(hnode : HNODE, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNodeEnum(hnodeenum : HNODEENUM, dwindex : u32, lpdwtype : *mut u32, lpszname : ::windows_sys::core::PWSTR, lpcchname : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNodeEnumEx(hnodeenum : HNODEENUMEX, dwindex : u32, pitem : *mut CLUSTER_ENUM_ITEM, cbitem : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNodeGetEnumCount(hnodeenum : HNODEENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNodeGetEnumCountEx(hnodeenum : HNODEENUMEX) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNodeOpenEnum(hnode : HNODE, dwtype : u32) -> HNODEENUM); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNodeOpenEnumEx(hnode : HNODE, dwtype : u32, poptions : *const ::core::ffi::c_void) -> HNODEENUMEX); +::windows_targets::link!("clusapi.dll" "system" fn ClusterNodeReplacement(hcluster : HCLUSTER, lpsznodenamecurrent : ::windows_sys::core::PCWSTR, lpsznodenamenew : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterOpenEnum(hcluster : HCLUSTER, dwtype : u32) -> HCLUSENUM); +::windows_targets::link!("clusapi.dll" "system" fn ClusterOpenEnumEx(hcluster : HCLUSTER, dwtype : u32, poptions : *const ::core::ffi::c_void) -> HCLUSENUMEX); +::windows_targets::link!("resutils.dll" "system" fn ClusterPrepareSharedVolumeForBackup(lpszfilename : ::windows_sys::core::PCWSTR, lpszvolumepathname : ::windows_sys::core::PWSTR, lpcchvolumepathname : *mut u32, lpszvolumename : ::windows_sys::core::PWSTR, lpcchvolumename : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRegBatchAddCommand(hregbatch : HREGBATCH, dwcommand : CLUSTER_REG_COMMAND, wzname : ::windows_sys::core::PCWSTR, dwoptions : u32, lpdata : *const ::core::ffi::c_void, cbdata : u32) -> i32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRegBatchCloseNotification(hbatchnotification : HREGBATCHNOTIFICATION) -> i32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRegBatchReadCommand(hbatchnotification : HREGBATCHNOTIFICATION, pbatchcommand : *mut CLUSTER_BATCH_COMMAND) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClusterRegCloseBatch(hregbatch : HREGBATCH, bcommit : super::super::Foundation:: BOOL, failedcommandnumber : *mut i32) -> i32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRegCloseBatchEx(hregbatch : HREGBATCH, flags : u32, failedcommandnumber : *mut i32) -> i32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRegCloseBatchNotifyPort(hbatchnotifyport : HREGBATCHPORT) -> i32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ClusterRegCloseKey(hkey : super::super::System::Registry:: HKEY) -> i32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRegCloseReadBatch(hregreadbatch : HREGREADBATCH, phregreadbatchreply : *mut HREGREADBATCHREPLY) -> i32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRegCloseReadBatchEx(hregreadbatch : HREGREADBATCH, flags : u32, phregreadbatchreply : *mut HREGREADBATCHREPLY) -> i32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRegCloseReadBatchReply(hregreadbatchreply : HREGREADBATCHREPLY) -> i32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ClusterRegCreateBatch(hkey : super::super::System::Registry:: HKEY, phregbatch : *mut HREGBATCH) -> i32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ClusterRegCreateBatchNotifyPort(hkey : super::super::System::Registry:: HKEY, phbatchnotifyport : *mut HREGBATCHPORT) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Registry"))] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_Registry\"`"] fn ClusterRegCreateKey(hkey : super::super::System::Registry:: HKEY, lpszsubkey : ::windows_sys::core::PCWSTR, dwoptions : u32, samdesired : u32, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, phkresult : *mut super::super::System::Registry:: HKEY, lpdwdisposition : *mut u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Registry"))] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_Registry\"`"] fn ClusterRegCreateKeyEx(hkey : super::super::System::Registry:: HKEY, lpsubkey : ::windows_sys::core::PCWSTR, dwoptions : u32, samdesired : u32, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, phkresult : *mut super::super::System::Registry:: HKEY, lpdwdisposition : *mut u32, lpszreason : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ClusterRegCreateReadBatch(hkey : super::super::System::Registry:: HKEY, phregreadbatch : *mut HREGREADBATCH) -> i32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ClusterRegDeleteKey(hkey : super::super::System::Registry:: HKEY, lpszsubkey : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ClusterRegDeleteKeyEx(hkey : super::super::System::Registry:: HKEY, lpsubkey : ::windows_sys::core::PCWSTR, lpszreason : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ClusterRegDeleteValue(hkey : super::super::System::Registry:: HKEY, lpszvaluename : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ClusterRegDeleteValueEx(hkey : super::super::System::Registry:: HKEY, lpszvaluename : ::windows_sys::core::PCWSTR, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ClusterRegEnumKey(hkey : super::super::System::Registry:: HKEY, dwindex : u32, lpszname : ::windows_sys::core::PWSTR, lpcchname : *mut u32, lpftlastwritetime : *mut super::super::Foundation:: FILETIME) -> i32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ClusterRegEnumValue(hkey : super::super::System::Registry:: HKEY, dwindex : u32, lpszvaluename : ::windows_sys::core::PWSTR, lpcchvaluename : *mut u32, lpdwtype : *mut u32, lpdata : *mut u8, lpcbdata : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRegGetBatchNotification(hbatchnotify : HREGBATCHPORT, phbatchnotification : *mut HREGBATCHNOTIFICATION) -> i32); +#[cfg(all(feature = "Win32_Security", feature = "Win32_System_Registry"))] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Security\"`, `\"Win32_System_Registry\"`"] fn ClusterRegGetKeySecurity(hkey : super::super::System::Registry:: HKEY, requestedinformation : u32, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR, lpcbsecuritydescriptor : *mut u32) -> i32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ClusterRegOpenKey(hkey : super::super::System::Registry:: HKEY, lpszsubkey : ::windows_sys::core::PCWSTR, samdesired : u32, phkresult : *mut super::super::System::Registry:: HKEY) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ClusterRegQueryInfoKey(hkey : super::super::System::Registry:: HKEY, lpcsubkeys : *const u32, lpcchmaxsubkeylen : *const u32, lpcvalues : *const u32, lpcchmaxvaluenamelen : *const u32, lpcbmaxvaluelen : *const u32, lpcbsecuritydescriptor : *const u32, lpftlastwritetime : *const super::super::Foundation:: FILETIME) -> i32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ClusterRegQueryValue(hkey : super::super::System::Registry:: HKEY, lpszvaluename : ::windows_sys::core::PCWSTR, lpdwvaluetype : *mut u32, lpdata : *mut u8, lpcbdata : *mut u32) -> i32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRegReadBatchAddCommand(hregreadbatch : HREGREADBATCH, wzsubkeyname : ::windows_sys::core::PCWSTR, wzvaluename : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRegReadBatchReplyNextCommand(hregreadbatchreply : HREGREADBATCHREPLY, pbatchcommand : *mut CLUSTER_READ_BATCH_COMMAND) -> i32); +#[cfg(all(feature = "Win32_Security", feature = "Win32_System_Registry"))] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Security\"`, `\"Win32_System_Registry\"`"] fn ClusterRegSetKeySecurity(hkey : super::super::System::Registry:: HKEY, securityinformation : u32, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR) -> i32); +#[cfg(all(feature = "Win32_Security", feature = "Win32_System_Registry"))] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Security\"`, `\"Win32_System_Registry\"`"] fn ClusterRegSetKeySecurityEx(hkey : super::super::System::Registry:: HKEY, securityinformation : super::super::Security:: OBJECT_SECURITY_INFORMATION, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR, lpszreason : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ClusterRegSetValue(hkey : super::super::System::Registry:: HKEY, lpszvaluename : ::windows_sys::core::PCWSTR, dwtype : u32, lpdata : *const u8, cbdata : u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ClusterRegSetValueEx(hkey : super::super::System::Registry:: HKEY, lpszvaluename : ::windows_sys::core::PCWSTR, dwtype : u32, lpdata : *const u8, cbdata : u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRegSyncDatabase(hcluster : HCLUSTER, flags : u32) -> i32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRemoveAffinityRule(hcluster : HCLUSTER, rulename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRemoveGroupFromAffinityRule(hcluster : HCLUSTER, rulename : ::windows_sys::core::PCWSTR, hgroup : HGROUP) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRemoveGroupFromGroupSet(hgroup : HGROUP) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterRemoveGroupFromGroupSetEx(hgroup : HGROUP, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceCloseEnum(hresenum : HRESENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceCloseEnumEx(hresourceenumex : HRESENUMEX) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceControl(hresource : HRESOURCE, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, cbinbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, cboutbuffersize : u32, lpbytesreturned : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceControlAsUser(hresource : HRESOURCE, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, cbinbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, cboutbuffersize : u32, lpbytesreturned : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceControlAsUserEx(hresource : HRESOURCE, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, cbinbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, cboutbuffersize : u32, lpbytesreturned : *mut u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceControlEx(hresource : HRESOURCE, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, cbinbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, cboutbuffersize : u32, lpbytesreturned : *mut u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceEnum(hresenum : HRESENUM, dwindex : u32, lpdwtype : *mut u32, lpszname : ::windows_sys::core::PWSTR, lpcchname : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceEnumEx(hresourceenumex : HRESENUMEX, dwindex : u32, pitem : *mut CLUSTER_RESOURCE_ENUM_ITEM, cbitem : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceGetEnumCount(hresenum : HRESENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceGetEnumCountEx(hresourceenumex : HRESENUMEX) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceOpenEnum(hresource : HRESOURCE, dwtype : u32) -> HRESENUM); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceOpenEnumEx(hcluster : HCLUSTER, lpszproperties : ::windows_sys::core::PCWSTR, cbproperties : u32, lpszroproperties : ::windows_sys::core::PCWSTR, cbroproperties : u32, dwflags : u32) -> HRESENUMEX); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceTypeCloseEnum(hrestypeenum : HRESTYPEENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceTypeControl(hcluster : HCLUSTER, lpszresourcetypename : ::windows_sys::core::PCWSTR, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceTypeControlAsUser(hcluster : HCLUSTER, lpszresourcetypename : ::windows_sys::core::PCWSTR, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceTypeControlAsUserEx(hcluster : HCLUSTER, lpszresourcetypename : ::windows_sys::core::PCWSTR, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceTypeControlEx(hcluster : HCLUSTER, lpszresourcetypename : ::windows_sys::core::PCWSTR, hhostnode : HNODE, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceTypeEnum(hrestypeenum : HRESTYPEENUM, dwindex : u32, lpdwtype : *mut u32, lpszname : ::windows_sys::core::PWSTR, lpcchname : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceTypeGetEnumCount(hrestypeenum : HRESTYPEENUM) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterResourceTypeOpenEnum(hcluster : HCLUSTER, lpszresourcetypename : ::windows_sys::core::PCWSTR, dwtype : u32) -> HRESTYPEENUM); +::windows_targets::link!("clusapi.dll" "system" fn ClusterSetAccountAccess(hcluster : HCLUSTER, szaccountsid : ::windows_sys::core::PCWSTR, dwaccess : u32, dwcontroltype : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ClusterSharedVolumeSetSnapshotState(guidsnapshotset : ::windows_sys::core::GUID, lpszvolumename : ::windows_sys::core::PCWSTR, state : CLUSTER_SHARED_VOLUME_SNAPSHOT_STATE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClusterUpgradeFunctionalLevel(hcluster : HCLUSTER, perform : super::super::Foundation:: BOOL, pfnprogresscallback : PCLUSTER_UPGRADE_PROGRESS_CALLBACK, pvcallbackarg : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateCluster(pconfig : *const CREATE_CLUSTER_CONFIG, pfnprogresscallback : PCLUSTER_SETUP_PROGRESS_CALLBACK, pvcallbackarg : *const ::core::ffi::c_void) -> HCLUSTER); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateClusterAvailabilitySet(hcluster : HCLUSTER, lpavailabilitysetname : ::windows_sys::core::PCWSTR, pavailabilitysetconfig : *const CLUSTER_AVAILABILITY_SET_CONFIG) -> HGROUPSET); +::windows_targets::link!("clusapi.dll" "system" fn CreateClusterGroup(hcluster : HCLUSTER, lpszgroupname : ::windows_sys::core::PCWSTR) -> HGROUP); +::windows_targets::link!("clusapi.dll" "system" fn CreateClusterGroupEx(hcluster : HCLUSTER, lpszgroupname : ::windows_sys::core::PCWSTR, pgroupinfo : *const CLUSTER_CREATE_GROUP_INFO) -> HGROUP); +::windows_targets::link!("clusapi.dll" "system" fn CreateClusterGroupSet(hcluster : HCLUSTER, groupsetname : ::windows_sys::core::PCWSTR) -> HGROUPSET); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateClusterNameAccount(hcluster : HCLUSTER, pconfig : *const CREATE_CLUSTER_NAME_ACCOUNT, pfnprogresscallback : PCLUSTER_SETUP_PROGRESS_CALLBACK, pvcallbackarg : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn CreateClusterNotifyPort(hchange : HCHANGE, hcluster : HCLUSTER, dwfilter : u32, dwnotifykey : usize) -> HCHANGE); +::windows_targets::link!("clusapi.dll" "system" fn CreateClusterNotifyPortV2(hchange : HCHANGE, hcluster : HCLUSTER, filters : *const NOTIFY_FILTER_AND_TYPE, dwfiltercount : u32, dwnotifykey : usize) -> HCHANGE); +::windows_targets::link!("clusapi.dll" "system" fn CreateClusterResource(hgroup : HGROUP, lpszresourcename : ::windows_sys::core::PCWSTR, lpszresourcetype : ::windows_sys::core::PCWSTR, dwflags : u32) -> HRESOURCE); +::windows_targets::link!("clusapi.dll" "system" fn CreateClusterResourceEx(hgroup : HGROUP, lpszresourcename : ::windows_sys::core::PCWSTR, lpszresourcetype : ::windows_sys::core::PCWSTR, dwflags : u32, lpszreason : ::windows_sys::core::PCWSTR) -> HRESOURCE); +::windows_targets::link!("clusapi.dll" "system" fn CreateClusterResourceType(hcluster : HCLUSTER, lpszresourcetypename : ::windows_sys::core::PCWSTR, lpszdisplayname : ::windows_sys::core::PCWSTR, lpszresourcetypedll : ::windows_sys::core::PCWSTR, dwlooksalivepollinterval : u32, dwisalivepollinterval : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn CreateClusterResourceTypeEx(hcluster : HCLUSTER, lpszresourcetypename : ::windows_sys::core::PCWSTR, lpszdisplayname : ::windows_sys::core::PCWSTR, lpszresourcetypedll : ::windows_sys::core::PCWSTR, dwlooksalivepollinterval : u32, dwisalivepollinterval : u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DeleteClusterGroup(hgroup : HGROUP) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DeleteClusterGroupEx(hgroup : HGROUP, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DeleteClusterGroupSet(hgroupset : HGROUPSET) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DeleteClusterGroupSetEx(hgroupset : HGROUPSET, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DeleteClusterResource(hresource : HRESOURCE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DeleteClusterResourceEx(hresource : HRESOURCE, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DeleteClusterResourceType(hcluster : HCLUSTER, lpszresourcetypename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DeleteClusterResourceTypeEx(hcluster : HCLUSTER, lpsztypename : ::windows_sys::core::PCWSTR, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DestroyCluster(hcluster : HCLUSTER, pfnprogresscallback : PCLUSTER_SETUP_PROGRESS_CALLBACK, pvcallbackarg : *const ::core::ffi::c_void, fdeletevirtualcomputerobjects : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DestroyClusterGroup(hgroup : HGROUP) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DestroyClusterGroupEx(hgroup : HGROUP, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DetermineCNOResTypeFromCluster(hcluster : HCLUSTER, pcnorestype : *mut CLUSTER_MGMT_POINT_RESTYPE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DetermineCNOResTypeFromNodelist(cnodes : u32, ppsznodenames : *const ::windows_sys::core::PCWSTR, pcnorestype : *mut CLUSTER_MGMT_POINT_RESTYPE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DetermineClusterCloudTypeFromCluster(hcluster : HCLUSTER, pcloudtype : *mut CLUSTER_CLOUD_TYPE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn DetermineClusterCloudTypeFromNodelist(cnodes : u32, ppsznodenames : *const ::windows_sys::core::PCWSTR, pcloudtype : *mut CLUSTER_CLOUD_TYPE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn EvictClusterNode(hnode : HNODE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn EvictClusterNodeEx(hnode : HNODE, dwtimeout : u32, phrcleanupstatus : *mut ::windows_sys::core::HRESULT) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn EvictClusterNodeEx2(hnode : HNODE, dwtimeout : u32, phrcleanupstatus : *mut ::windows_sys::core::HRESULT, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn FailClusterResource(hresource : HRESOURCE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn FailClusterResourceEx(hresource : HRESOURCE, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("resutils.dll" "system" fn FreeClusterCrypt(pcryptinfo : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("resutils.dll" "system" fn FreeClusterHealthFault(clusterhealthfault : *mut CLUSTER_HEALTH_FAULT) -> u32); +::windows_targets::link!("resutils.dll" "system" fn FreeClusterHealthFaultArray(clusterhealthfaultarray : *mut CLUSTER_HEALTH_FAULT_ARRAY) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterFromGroup(hgroup : HGROUP) -> HCLUSTER); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterFromNetInterface(hnetinterface : HNETINTERFACE) -> HCLUSTER); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterFromNetwork(hnetwork : HNETWORK) -> HCLUSTER); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterFromNode(hnode : HNODE) -> HCLUSTER); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterFromResource(hresource : HRESOURCE) -> HCLUSTER); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn GetClusterGroupKey(hgroup : HGROUP, samdesired : u32) -> super::super::System::Registry:: HKEY); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterGroupState(hgroup : HGROUP, lpsznodename : ::windows_sys::core::PWSTR, lpcchnodename : *mut u32) -> CLUSTER_GROUP_STATE); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterInformation(hcluster : HCLUSTER, lpszclustername : ::windows_sys::core::PWSTR, lpcchclustername : *mut u32, lpclusterinfo : *mut CLUSTERVERSIONINFO) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn GetClusterKey(hcluster : HCLUSTER, samdesired : u32) -> super::super::System::Registry:: HKEY); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterNetInterface(hcluster : HCLUSTER, lpsznodename : ::windows_sys::core::PCWSTR, lpsznetworkname : ::windows_sys::core::PCWSTR, lpszinterfacename : ::windows_sys::core::PWSTR, lpcchinterfacename : *mut u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn GetClusterNetInterfaceKey(hnetinterface : HNETINTERFACE, samdesired : u32) -> super::super::System::Registry:: HKEY); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterNetInterfaceState(hnetinterface : HNETINTERFACE) -> CLUSTER_NETINTERFACE_STATE); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterNetworkId(hnetwork : HNETWORK, lpsznetworkid : ::windows_sys::core::PWSTR, lpcchname : *mut u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn GetClusterNetworkKey(hnetwork : HNETWORK, samdesired : u32) -> super::super::System::Registry:: HKEY); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterNetworkState(hnetwork : HNETWORK) -> CLUSTER_NETWORK_STATE); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterNodeId(hnode : HNODE, lpsznodeid : ::windows_sys::core::PWSTR, lpcchname : *mut u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn GetClusterNodeKey(hnode : HNODE, samdesired : u32) -> super::super::System::Registry:: HKEY); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterNodeState(hnode : HNODE) -> CLUSTER_NODE_STATE); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterNotify(hchange : HCHANGE, lpdwnotifykey : *mut usize, lpdwfiltertype : *mut u32, lpszname : ::windows_sys::core::PWSTR, lpcchname : *mut u32, dwmilliseconds : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterNotifyV2(hchange : HCHANGE, lpdwnotifykey : *mut usize, pfilterandtype : *mut NOTIFY_FILTER_AND_TYPE, buffer : *mut u8, lpbbuffersize : *mut u32, lpszobjectid : ::windows_sys::core::PWSTR, lpcchobjectid : *mut u32, lpszparentid : ::windows_sys::core::PWSTR, lpcchparentid : *mut u32, lpszname : ::windows_sys::core::PWSTR, lpcchname : *mut u32, lpsztype : ::windows_sys::core::PWSTR, lpcchtype : *mut u32, dwmilliseconds : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterQuorumResource(hcluster : HCLUSTER, lpszresourcename : ::windows_sys::core::PWSTR, lpcchresourcename : *mut u32, lpszdevicename : ::windows_sys::core::PWSTR, lpcchdevicename : *mut u32, lpdwmaxquorumlogsize : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterResourceDependencyExpression(hresource : HRESOURCE, lpszdependencyexpression : ::windows_sys::core::PWSTR, lpcchdependencyexpression : *mut u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn GetClusterResourceKey(hresource : HRESOURCE, samdesired : u32) -> super::super::System::Registry:: HKEY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClusterResourceNetworkName(hresource : HRESOURCE, lpbuffer : ::windows_sys::core::PWSTR, nsize : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("clusapi.dll" "system" fn GetClusterResourceState(hresource : HRESOURCE, lpsznodename : ::windows_sys::core::PWSTR, lpcchnodename : *mut u32, lpszgroupname : ::windows_sys::core::PWSTR, lpcchgroupname : *mut u32) -> CLUSTER_RESOURCE_STATE); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn GetClusterResourceTypeKey(hcluster : HCLUSTER, lpsztypename : ::windows_sys::core::PCWSTR, samdesired : u32) -> super::super::System::Registry:: HKEY); +::windows_targets::link!("clusapi.dll" "system" fn GetNodeCloudTypeDW(ppsznodename : ::windows_sys::core::PCWSTR, nodecloudtype : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn GetNodeClusterState(lpsznodename : ::windows_sys::core::PCWSTR, pdwclusterstate : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNotifyEventHandle(hchange : HCHANGE, lphtargetevent : *mut super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("resutils.dll" "system" fn InitializeClusterHealthFault(clusterhealthfault : *mut CLUSTER_HEALTH_FAULT) -> u32); +::windows_targets::link!("resutils.dll" "system" fn InitializeClusterHealthFaultArray(clusterhealthfaultarray : *mut CLUSTER_HEALTH_FAULT_ARRAY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsFileOnClusterSharedVolume(lpszpathname : ::windows_sys::core::PCWSTR, pbfileisonsharedvolume : *mut super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn MoveClusterGroup(hgroup : HGROUP, hdestinationnode : HNODE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn MoveClusterGroupEx(hgroup : HGROUP, hdestinationnode : HNODE, dwmoveflags : u32, lpinbuffer : *const u8, cbinbuffersize : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn MoveClusterGroupEx2(hgroup : HGROUP, hdestinationnode : HNODE, dwmoveflags : u32, lpinbuffer : *const u8, cbinbuffersize : u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn OfflineClusterGroup(hgroup : HGROUP) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn OfflineClusterGroupEx(hgroup : HGROUP, dwofflineflags : u32, lpinbuffer : *const u8, cbinbuffersize : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn OfflineClusterGroupEx2(hgroup : HGROUP, dwofflineflags : u32, lpinbuffer : *const u8, cbinbuffersize : u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn OfflineClusterResource(hresource : HRESOURCE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn OfflineClusterResourceEx(hresource : HRESOURCE, dwofflineflags : u32, lpinbuffer : *const u8, cbinbuffersize : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn OfflineClusterResourceEx2(hresource : HRESOURCE, dwofflineflags : u32, lpinbuffer : *const u8, cbinbuffersize : u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn OnlineClusterGroup(hgroup : HGROUP, hdestinationnode : HNODE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn OnlineClusterGroupEx(hgroup : HGROUP, hdestinationnode : HNODE, dwonlineflags : u32, lpinbuffer : *const u8, cbinbuffersize : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn OnlineClusterGroupEx2(hgroup : HGROUP, hdestinationnode : HNODE, dwonlineflags : u32, lpinbuffer : *const u8, cbinbuffersize : u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn OnlineClusterResource(hresource : HRESOURCE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn OnlineClusterResourceEx(hresource : HRESOURCE, dwonlineflags : u32, lpinbuffer : *const u8, cbinbuffersize : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn OnlineClusterResourceEx2(hresource : HRESOURCE, dwonlineflags : u32, lpinbuffer : *const u8, cbinbuffersize : u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn OpenCluster(lpszclustername : ::windows_sys::core::PCWSTR) -> HCLUSTER); +::windows_targets::link!("resutils.dll" "system" fn OpenClusterCryptProvider(lpszresource : ::windows_sys::core::PCWSTR, lpszprovider : *const i8, dwtype : u32, dwflags : u32) -> HCLUSCRYPTPROVIDER); +::windows_targets::link!("resutils.dll" "system" fn OpenClusterCryptProviderEx(lpszresource : ::windows_sys::core::PCWSTR, lpszkeyname : ::windows_sys::core::PCWSTR, lpszprovider : *const i8, dwtype : u32, dwflags : u32) -> HCLUSCRYPTPROVIDER); +::windows_targets::link!("clusapi.dll" "system" fn OpenClusterEx(lpszclustername : ::windows_sys::core::PCWSTR, desiredaccess : u32, grantedaccess : *mut u32) -> HCLUSTER); +::windows_targets::link!("clusapi.dll" "system" fn OpenClusterGroup(hcluster : HCLUSTER, lpszgroupname : ::windows_sys::core::PCWSTR) -> HGROUP); +::windows_targets::link!("clusapi.dll" "system" fn OpenClusterGroupEx(hcluster : HCLUSTER, lpszgroupname : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32, lpdwgrantedaccess : *mut u32) -> HGROUP); +::windows_targets::link!("clusapi.dll" "system" fn OpenClusterGroupSet(hcluster : HCLUSTER, lpszgroupsetname : ::windows_sys::core::PCWSTR) -> HGROUPSET); +::windows_targets::link!("clusapi.dll" "system" fn OpenClusterNetInterface(hcluster : HCLUSTER, lpszinterfacename : ::windows_sys::core::PCWSTR) -> HNETINTERFACE); +::windows_targets::link!("clusapi.dll" "system" fn OpenClusterNetInterfaceEx(hcluster : HCLUSTER, lpszinterfacename : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32, lpdwgrantedaccess : *mut u32) -> HNETINTERFACE); +::windows_targets::link!("clusapi.dll" "system" fn OpenClusterNetwork(hcluster : HCLUSTER, lpsznetworkname : ::windows_sys::core::PCWSTR) -> HNETWORK); +::windows_targets::link!("clusapi.dll" "system" fn OpenClusterNetworkEx(hcluster : HCLUSTER, lpsznetworkname : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32, lpdwgrantedaccess : *mut u32) -> HNETWORK); +::windows_targets::link!("clusapi.dll" "system" fn OpenClusterNode(hcluster : HCLUSTER, lpsznodename : ::windows_sys::core::PCWSTR) -> HNODE); +::windows_targets::link!("clusapi.dll" "system" fn OpenClusterNodeById(hcluster : HCLUSTER, nodeid : u32) -> HNODE); +::windows_targets::link!("clusapi.dll" "system" fn OpenClusterNodeEx(hcluster : HCLUSTER, lpsznodename : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32, lpdwgrantedaccess : *mut u32) -> HNODE); +::windows_targets::link!("clusapi.dll" "system" fn OpenClusterResource(hcluster : HCLUSTER, lpszresourcename : ::windows_sys::core::PCWSTR) -> HRESOURCE); +::windows_targets::link!("clusapi.dll" "system" fn OpenClusterResourceEx(hcluster : HCLUSTER, lpszresourcename : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32, lpdwgrantedaccess : *mut u32) -> HRESOURCE); +::windows_targets::link!("clusapi.dll" "system" fn PauseClusterNode(hnode : HNODE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PauseClusterNodeEx(hnode : HNODE, bdrainnode : super::super::Foundation:: BOOL, dwpauseflags : u32, hnodedraintarget : HNODE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PauseClusterNodeEx2(hnode : HNODE, bdrainnode : super::super::Foundation:: BOOL, dwpauseflags : u32, hnodedraintarget : HNODE, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntlanman.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryAppInstanceVersion(appinstanceid : *const ::windows_sys::core::GUID, instanceversionhigh : *mut u64, instanceversionlow : *mut u64, versionstatus : *mut super::super::Foundation:: NTSTATUS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntlanman.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterAppInstance(processhandle : super::super::Foundation:: HANDLE, appinstanceid : *const ::windows_sys::core::GUID, childreninheritappinstance : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("ntlanman.dll" "system" fn RegisterAppInstanceVersion(appinstanceid : *const ::windows_sys::core::GUID, instanceversionhigh : u64, instanceversionlow : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterClusterNotify(hchange : HCHANGE, dwfiltertype : u32, hobject : super::super::Foundation:: HANDLE, dwnotifykey : usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterClusterNotifyV2(hchange : HCHANGE, filter : NOTIFY_FILTER_AND_TYPE, hobject : super::super::Foundation:: HANDLE, dwnotifykey : usize) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RegisterClusterResourceTypeNotifyV2(hchange : HCHANGE, hcluster : HCLUSTER, flags : i64, restypename : ::windows_sys::core::PCWSTR, dwnotifykey : usize) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RemoveClusterGroupDependency(hgroup : HGROUP, hdependson : HGROUP) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RemoveClusterGroupDependencyEx(hgroup : HGROUP, hdependson : HGROUP, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RemoveClusterGroupSetDependency(hgroupset : HGROUPSET, hdependson : HGROUPSET) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RemoveClusterGroupSetDependencyEx(hgroupset : HGROUPSET, hdependson : HGROUPSET, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RemoveClusterGroupToGroupSetDependency(hgroup : HGROUP, hdependson : HGROUPSET) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RemoveClusterGroupToGroupSetDependencyEx(hgroup : HGROUP, hdependson : HGROUPSET, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveClusterNameAccount(hcluster : HCLUSTER, bdeletecomputerobjects : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RemoveClusterResourceDependency(hresource : HRESOURCE, hdependson : HRESOURCE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RemoveClusterResourceDependencyEx(hresource : HRESOURCE, hdependson : HRESOURCE, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RemoveClusterResourceNode(hresource : HRESOURCE, hnode : HNODE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RemoveClusterResourceNodeEx(hresource : HRESOURCE, hnode : HNODE, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RemoveClusterStorageNode(hcluster : HCLUSTER, lpszclusterstorageenclosurename : ::windows_sys::core::PCWSTR, dwtimeout : u32, dwflags : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RemoveCrossClusterGroupSetDependency(hdependentgroupset : HGROUPSET, lpremoteclustername : ::windows_sys::core::PCWSTR, lpremotegroupsetname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RemoveResourceFromClusterSharedVolumes(hresource : HRESOURCE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ResUtilAddUnknownProperties(hkeyclusterkey : super::super::System::Registry:: HKEY, ppropertytable : *const RESUTIL_PROPERTY_ITEM, poutpropertylist : *mut ::core::ffi::c_void, pcboutpropertylistsize : u32, pcbbytesreturned : *mut u32, pcbrequired : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilCreateDirectoryTree(pszpath : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilDupGroup(group : HGROUP, copy : *mut HGROUP) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilDupParameterBlock(poutparams : *mut u8, pinparams : *const u8, ppropertytable : *const RESUTIL_PROPERTY_ITEM) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilDupResource(group : HRESOURCE, copy : *mut HRESOURCE) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilDupString(pszinstring : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("resutils.dll" "system" fn ResUtilEnumGroups(hcluster : HCLUSTER, hself : HGROUP, prescallback : LPGROUP_CALLBACK_EX, pparameter : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilEnumGroupsEx(hcluster : HCLUSTER, hself : HGROUP, grouptype : CLUSGROUP_TYPE, prescallback : LPGROUP_CALLBACK_EX, pparameter : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilEnumPrivateProperties(hkeyclusterkey : super::super::System::Registry:: HKEY, pszoutproperties : ::windows_sys::core::PWSTR, cboutpropertiessize : u32, pcbbytesreturned : *mut u32, pcbrequired : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilEnumProperties(ppropertytable : *const RESUTIL_PROPERTY_ITEM, pszoutproperties : ::windows_sys::core::PWSTR, cboutpropertiessize : u32, pcbbytesreturned : *mut u32, pcbrequired : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilEnumResources(hself : HRESOURCE, lpszrestypename : ::windows_sys::core::PCWSTR, prescallback : LPRESOURCE_CALLBACK, pparameter : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilEnumResourcesEx(hcluster : HCLUSTER, hself : HRESOURCE, lpszrestypename : ::windows_sys::core::PCWSTR, prescallback : LPRESOURCE_CALLBACK_EX, pparameter : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilEnumResourcesEx2(hcluster : HCLUSTER, hself : HRESOURCE, lpszrestypename : ::windows_sys::core::PCWSTR, prescallback : LPRESOURCE_CALLBACK_EX, pparameter : *mut ::core::ffi::c_void, dwdesiredaccess : u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilExpandEnvironmentStrings(pszsrc : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("resutils.dll" "system" fn ResUtilFindBinaryProperty(ppropertylist : *const ::core::ffi::c_void, cbpropertylistsize : u32, pszpropertyname : ::windows_sys::core::PCWSTR, pbpropertyvalue : *mut *mut u8, pcbpropertyvaluesize : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilFindDependentDiskResourceDriveLetter(hcluster : HCLUSTER, hresource : HRESOURCE, pszdriveletter : ::windows_sys::core::PWSTR, pcchdriveletter : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilFindDwordProperty(ppropertylist : *const ::core::ffi::c_void, cbpropertylistsize : u32, pszpropertyname : ::windows_sys::core::PCWSTR, pdwpropertyvalue : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilFindExpandSzProperty(ppropertylist : *const ::core::ffi::c_void, cbpropertylistsize : u32, pszpropertyname : ::windows_sys::core::PCWSTR, pszpropertyvalue : *mut ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilFindExpandedSzProperty(ppropertylist : *const ::core::ffi::c_void, cbpropertylistsize : u32, pszpropertyname : ::windows_sys::core::PCWSTR, pszpropertyvalue : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilFindFileTimeProperty(ppropertylist : *const ::core::ffi::c_void, cbpropertylistsize : u32, pszpropertyname : ::windows_sys::core::PCWSTR, pftpropertyvalue : *mut super::super::Foundation:: FILETIME) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilFindLongProperty(ppropertylist : *const ::core::ffi::c_void, cbpropertylistsize : u32, pszpropertyname : ::windows_sys::core::PCWSTR, plpropertyvalue : *mut i32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilFindMultiSzProperty(ppropertylist : *const ::core::ffi::c_void, cbpropertylistsize : u32, pszpropertyname : ::windows_sys::core::PCWSTR, pszpropertyvalue : *mut ::windows_sys::core::PWSTR, pcbpropertyvaluesize : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilFindSzProperty(ppropertylist : *const ::core::ffi::c_void, cbpropertylistsize : u32, pszpropertyname : ::windows_sys::core::PCWSTR, pszpropertyvalue : *mut ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilFindULargeIntegerProperty(ppropertylist : *const ::core::ffi::c_void, cbpropertylistsize : u32, pszpropertyname : ::windows_sys::core::PCWSTR, plpropertyvalue : *mut u64) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilFreeEnvironment(lpenvironment : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilFreeParameterBlock(poutparams : *mut u8, pinparams : *const u8, ppropertytable : *const RESUTIL_PROPERTY_ITEM) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ResUtilGetAllProperties(hkeyclusterkey : super::super::System::Registry:: HKEY, ppropertytable : *const RESUTIL_PROPERTY_ITEM, poutpropertylist : *mut ::core::ffi::c_void, cboutpropertylistsize : u32, pcbbytesreturned : *mut u32, pcbrequired : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetBinaryProperty(ppboutvalue : *mut *mut u8, pcboutvaluesize : *mut u32, pvaluestruct : *const CLUSPROP_BINARY, pboldvalue : *const u8, cboldvaluesize : u32, pppropertylist : *mut *mut u8, pcbpropertylistsize : *mut u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilGetBinaryValue(hkeyclusterkey : super::super::System::Registry:: HKEY, pszvaluename : ::windows_sys::core::PCWSTR, ppboutvalue : *mut *mut u8, pcboutvaluesize : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetClusterGroupType(hgroup : HGROUP, grouptype : *mut CLUSGROUP_TYPE) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetClusterId(hcluster : HCLUSTER, guid : *mut ::windows_sys::core::GUID) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetClusterRoleState(hcluster : HCLUSTER, eclusterrole : CLUSTER_ROLE) -> CLUSTER_ROLE_STATE); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetCoreClusterResources(hcluster : HCLUSTER, phclusternameresource : *mut HRESOURCE, phclusteripaddressresource : *mut HRESOURCE, phclusterquorumresource : *mut HRESOURCE) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetCoreClusterResourcesEx(hclusterin : HCLUSTER, phclusternameresourceout : *mut HRESOURCE, phclusterquorumresourceout : *mut HRESOURCE, dwdesiredaccess : u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetCoreGroup(hcluster : HCLUSTER) -> HGROUP); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetDwordProperty(pdwoutvalue : *mut u32, pvaluestruct : *const CLUSPROP_DWORD, dwoldvalue : u32, dwminimum : u32, dwmaximum : u32, pppropertylist : *mut *mut u8, pcbpropertylistsize : *mut u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilGetDwordValue(hkeyclusterkey : super::super::System::Registry:: HKEY, pszvaluename : ::windows_sys::core::PCWSTR, pdwoutvalue : *mut u32, dwdefaultvalue : u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetEnvironmentWithNetName(hresource : HRESOURCE) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilGetFileTimeProperty(pftoutvalue : *mut super::super::Foundation:: FILETIME, pvaluestruct : *const CLUSPROP_FILETIME, ftoldvalue : super::super::Foundation:: FILETIME, ftminimum : super::super::Foundation:: FILETIME, ftmaximum : super::super::Foundation:: FILETIME, pppropertylist : *mut *mut u8, pcbpropertylistsize : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetLongProperty(ploutvalue : *mut i32, pvaluestruct : *const CLUSPROP_LONG, loldvalue : i32, lminimum : i32, lmaximum : i32, pppropertylist : *mut *mut u8, pcbpropertylistsize : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetMultiSzProperty(ppszoutvalue : *mut ::windows_sys::core::PWSTR, pcboutvaluesize : *mut u32, pvaluestruct : *const CLUSPROP_SZ, pszoldvalue : ::windows_sys::core::PCWSTR, cboldvaluesize : u32, pppropertylist : *mut *mut u8, pcbpropertylistsize : *mut u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilGetPrivateProperties(hkeyclusterkey : super::super::System::Registry:: HKEY, poutpropertylist : *mut ::core::ffi::c_void, cboutpropertylistsize : u32, pcbbytesreturned : *mut u32, pcbrequired : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ResUtilGetProperties(hkeyclusterkey : super::super::System::Registry:: HKEY, ppropertytable : *const RESUTIL_PROPERTY_ITEM, poutpropertylist : *mut ::core::ffi::c_void, cboutpropertylistsize : u32, pcbbytesreturned : *mut u32, pcbrequired : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ResUtilGetPropertiesToParameterBlock(hkeyclusterkey : super::super::System::Registry:: HKEY, ppropertytable : *const RESUTIL_PROPERTY_ITEM, poutparams : *mut u8, bcheckforrequiredproperties : super::super::Foundation:: BOOL, psznameofpropinerror : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ResUtilGetProperty(hkeyclusterkey : super::super::System::Registry:: HKEY, ppropertytableitem : *const RESUTIL_PROPERTY_ITEM, poutpropertyitem : *mut *mut ::core::ffi::c_void, pcboutpropertyitemsize : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilGetPropertyFormats(ppropertytable : *const RESUTIL_PROPERTY_ITEM, poutpropertyformatlist : *mut ::core::ffi::c_void, cbpropertyformatlistsize : u32, pcbbytesreturned : *mut u32, pcbrequired : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ResUtilGetPropertySize(hkeyclusterkey : super::super::System::Registry:: HKEY, ppropertytableitem : *const RESUTIL_PROPERTY_ITEM, pcboutpropertylistsize : *mut u32, pnpropertycount : *mut u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilGetQwordValue(hkeyclusterkey : super::super::System::Registry:: HKEY, pszvaluename : ::windows_sys::core::PCWSTR, pqwoutvalue : *mut u64, qwdefaultvalue : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilGetResourceDependency(hself : super::super::Foundation:: HANDLE, lpszresourcetype : ::windows_sys::core::PCWSTR) -> HRESOURCE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilGetResourceDependencyByClass(hcluster : HCLUSTER, hself : super::super::Foundation:: HANDLE, prci : *mut CLUS_RESOURCE_CLASS_INFO, brecurse : super::super::Foundation:: BOOL) -> HRESOURCE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilGetResourceDependencyByClassEx(hcluster : HCLUSTER, hself : super::super::Foundation:: HANDLE, prci : *mut CLUS_RESOURCE_CLASS_INFO, brecurse : super::super::Foundation:: BOOL, dwdesiredaccess : u32) -> HRESOURCE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilGetResourceDependencyByName(hcluster : HCLUSTER, hself : super::super::Foundation:: HANDLE, lpszresourcetype : ::windows_sys::core::PCWSTR, brecurse : super::super::Foundation:: BOOL) -> HRESOURCE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilGetResourceDependencyByNameEx(hcluster : HCLUSTER, hself : super::super::Foundation:: HANDLE, lpszresourcetype : ::windows_sys::core::PCWSTR, brecurse : super::super::Foundation:: BOOL, dwdesiredaccess : u32) -> HRESOURCE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilGetResourceDependencyEx(hself : super::super::Foundation:: HANDLE, lpszresourcetype : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32) -> HRESOURCE); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetResourceDependentIPAddressProps(hresource : HRESOURCE, pszaddress : ::windows_sys::core::PWSTR, pcchaddress : *mut u32, pszsubnetmask : ::windows_sys::core::PWSTR, pcchsubnetmask : *mut u32, psznetwork : ::windows_sys::core::PWSTR, pcchnetwork : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetResourceName(hresource : HRESOURCE, pszresourcename : ::windows_sys::core::PWSTR, pcchresourcenameinout : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetResourceNameDependency(lpszresourcename : ::windows_sys::core::PCWSTR, lpszresourcetype : ::windows_sys::core::PCWSTR) -> HRESOURCE); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetResourceNameDependencyEx(lpszresourcename : ::windows_sys::core::PCWSTR, lpszresourcetype : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32) -> HRESOURCE); +::windows_targets::link!("resutils.dll" "system" fn ResUtilGetSzProperty(ppszoutvalue : *mut ::windows_sys::core::PWSTR, pvaluestruct : *const CLUSPROP_SZ, pszoldvalue : ::windows_sys::core::PCWSTR, pppropertylist : *mut *mut u8, pcbpropertylistsize : *mut u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilGetSzValue(hkeyclusterkey : super::super::System::Registry:: HKEY, pszvaluename : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilGroupsEqual(hself : HGROUP, hgroup : HGROUP, pequal : *mut super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilIsPathValid(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilIsResourceClassEqual(prci : *mut CLUS_RESOURCE_CLASS_INFO, hresource : HRESOURCE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilLeftPaxosIsLessThanRight(left : *const PaxosTagCStruct, right : *const PaxosTagCStruct) -> super::super::Foundation:: BOOL); +::windows_targets::link!("resutils.dll" "system" fn ResUtilNodeEnum(hcluster : HCLUSTER, pnodecallback : LPNODE_CALLBACK, pparameter : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilPaxosComparer(left : *const PaxosTagCStruct, right : *const PaxosTagCStruct) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilPropertyListFromParameterBlock(ppropertytable : *const RESUTIL_PROPERTY_ITEM, poutpropertylist : *mut ::core::ffi::c_void, pcboutpropertylistsize : *mut u32, pinparams : *const u8, pcbbytesreturned : *mut u32, pcbrequired : *mut u32) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilRemoveResourceServiceEnvironment(pszservicename : ::windows_sys::core::PCWSTR, pfnlogevent : PLOG_EVENT_ROUTINE, hresourcehandle : isize) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilResourceDepEnum(hself : HRESOURCE, enumtype : u32, prescallback : LPRESOURCE_CALLBACK_EX, pparameter : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilResourceTypesEqual(lpszresourcetypename : ::windows_sys::core::PCWSTR, hresource : HRESOURCE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilResourcesEqual(hself : HRESOURCE, hresource : HRESOURCE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilSetBinaryValue(hkeyclusterkey : super::super::System::Registry:: HKEY, pszvaluename : ::windows_sys::core::PCWSTR, pbnewvalue : *const u8, cbnewvaluesize : u32, ppboutvalue : *mut *mut u8, pcboutvaluesize : *mut u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilSetDwordValue(hkeyclusterkey : super::super::System::Registry:: HKEY, pszvaluename : ::windows_sys::core::PCWSTR, dwnewvalue : u32, pdwoutvalue : *mut u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilSetExpandSzValue(hkeyclusterkey : super::super::System::Registry:: HKEY, pszvaluename : ::windows_sys::core::PCWSTR, psznewvalue : ::windows_sys::core::PCWSTR, ppszoutstring : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilSetMultiSzValue(hkeyclusterkey : super::super::System::Registry:: HKEY, pszvaluename : ::windows_sys::core::PCWSTR, psznewvalue : ::windows_sys::core::PCWSTR, cbnewvaluesize : u32, ppszoutvalue : *mut ::windows_sys::core::PWSTR, pcboutvaluesize : *mut u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilSetPrivatePropertyList(hkeyclusterkey : super::super::System::Registry:: HKEY, pinpropertylist : *const ::core::ffi::c_void, cbinpropertylistsize : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ResUtilSetPropertyParameterBlock(hkeyclusterkey : super::super::System::Registry:: HKEY, ppropertytable : *const RESUTIL_PROPERTY_ITEM, reserved : *mut ::core::ffi::c_void, pinparams : *const u8, pinpropertylist : *const ::core::ffi::c_void, cbinpropertylistsize : u32, poutparams : *mut u8) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ResUtilSetPropertyParameterBlockEx(hkeyclusterkey : super::super::System::Registry:: HKEY, ppropertytable : *const RESUTIL_PROPERTY_ITEM, reserved : *mut ::core::ffi::c_void, pinparams : *const u8, pinpropertylist : *const ::core::ffi::c_void, cbinpropertylistsize : u32, bforcewrite : super::super::Foundation:: BOOL, poutparams : *mut u8) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ResUtilSetPropertyTable(hkeyclusterkey : super::super::System::Registry:: HKEY, ppropertytable : *const RESUTIL_PROPERTY_ITEM, reserved : *const ::core::ffi::c_void, ballowunknownproperties : super::super::Foundation:: BOOL, pinpropertylist : *const ::core::ffi::c_void, cbinpropertylistsize : u32, poutparams : *mut u8) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ResUtilSetPropertyTableEx(hkeyclusterkey : super::super::System::Registry:: HKEY, ppropertytable : *const RESUTIL_PROPERTY_ITEM, reserved : *mut ::core::ffi::c_void, ballowunknownproperties : super::super::Foundation:: BOOL, pinpropertylist : *const ::core::ffi::c_void, cbinpropertylistsize : u32, bforcewrite : super::super::Foundation:: BOOL, poutparams : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilSetQwordValue(hkeyclusterkey : super::super::System::Registry:: HKEY, pszvaluename : ::windows_sys::core::PCWSTR, qwnewvalue : u64, pqwoutvalue : *mut u64) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilSetResourceServiceEnvironment(pszservicename : ::windows_sys::core::PCWSTR, hresource : HRESOURCE, pfnlogevent : PLOG_EVENT_ROUTINE, hresourcehandle : isize) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn ResUtilSetResourceServiceStartParameters(pszservicename : ::windows_sys::core::PCWSTR, schscmhandle : super::super::Security:: SC_HANDLE, phservice : *mut super::super::Security:: SC_HANDLE, pfnlogevent : PLOG_EVENT_ROUTINE, hresourcehandle : isize) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn ResUtilSetResourceServiceStartParametersEx(pszservicename : ::windows_sys::core::PCWSTR, schscmhandle : super::super::Security:: SC_HANDLE, phservice : *mut super::super::Security:: SC_HANDLE, dwdesiredaccess : u32, pfnlogevent : PLOG_EVENT_ROUTINE, hresourcehandle : isize) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilSetSzValue(hkeyclusterkey : super::super::System::Registry:: HKEY, pszvaluename : ::windows_sys::core::PCWSTR, psznewvalue : ::windows_sys::core::PCWSTR, ppszoutstring : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ResUtilSetUnknownProperties(hkeyclusterkey : super::super::System::Registry:: HKEY, ppropertytable : *const RESUTIL_PROPERTY_ITEM, pinpropertylist : *const ::core::ffi::c_void, cbinpropertylistsize : u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn ResUtilSetValueEx(hkeyclusterkey : super::super::System::Registry:: HKEY, valuename : ::windows_sys::core::PCWSTR, valuetype : u32, valuedata : *const u8, valuesize : u32, flags : u32) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn ResUtilStartResourceService(pszservicename : ::windows_sys::core::PCWSTR, phservicehandle : *mut super::super::Security:: SC_HANDLE) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilStopResourceService(pszservicename : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn ResUtilStopService(hservicehandle : super::super::Security:: SC_HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilTerminateServiceProcessFromResDll(dwservicepid : u32, boffline : super::super::Foundation:: BOOL, pdwresourcestate : *mut u32, pfnlogevent : PLOG_EVENT_ROUTINE, hresourcehandle : isize) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilVerifyPrivatePropertyList(pinpropertylist : *const ::core::ffi::c_void, cbinpropertylistsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResUtilVerifyPropertyTable(ppropertytable : *const RESUTIL_PROPERTY_ITEM, reserved : *const ::core::ffi::c_void, ballowunknownproperties : super::super::Foundation:: BOOL, pinpropertylist : *const ::core::ffi::c_void, cbinpropertylistsize : u32, poutparams : *mut u8) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilVerifyResourceService(pszservicename : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn ResUtilVerifyService(hservicehandle : super::super::Security:: SC_HANDLE) -> u32); +::windows_targets::link!("resutils.dll" "system" fn ResUtilVerifyShutdownSafe(flags : u32, reason : u32, presult : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("resutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ResUtilsDeleteKeyTree(key : super::super::System::Registry:: HKEY, keyname : ::windows_sys::core::PCWSTR, treatnokeyaserror : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("ntlanman.dll" "system" fn ResetAllAppInstanceVersions() -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RestartClusterResource(hresource : HRESOURCE, dwflags : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn RestartClusterResourceEx(hresource : HRESOURCE, dwflags : u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RestoreClusterDatabase(lpszpathname : ::windows_sys::core::PCWSTR, bforce : super::super::Foundation:: BOOL, lpszquorumdriveletter : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ResumeClusterNode(hnode : HNODE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ResumeClusterNodeEx(hnode : HNODE, eresumefailbacktype : CLUSTER_NODE_RESUME_FAILBACK_TYPE, dwresumeflagsreserved : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn ResumeClusterNodeEx2(hnode : HNODE, eresumefailbacktype : CLUSTER_NODE_RESUME_FAILBACK_TYPE, dwresumeflagsreserved : u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntlanman.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetAppInstanceCsvFlags(processhandle : super::super::Foundation:: HANDLE, mask : u32, flags : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterGroupName(hgroup : HGROUP, lpszgroupname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterGroupNameEx(hgroup : HGROUP, lpszgroupname : ::windows_sys::core::PCWSTR, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterGroupNodeList(hgroup : HGROUP, nodecount : u32, nodelist : *const HNODE) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterGroupNodeListEx(hgroup : HGROUP, nodecount : u32, nodelist : *const HNODE, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterGroupSetDependencyExpression(hgroupset : HGROUPSET, lpszdependencyexprssion : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterGroupSetDependencyExpressionEx(hgroupset : HGROUPSET, lpszdependencyexpression : ::windows_sys::core::PCWSTR, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterName(hcluster : HCLUSTER, lpsznewclustername : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterNameEx(hcluster : HCLUSTER, lpsznewclustername : ::windows_sys::core::PCWSTR, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterNetworkName(hnetwork : HNETWORK, lpszname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterNetworkNameEx(hnetwork : HNETWORK, lpszname : ::windows_sys::core::PCWSTR, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterNetworkPriorityOrder(hcluster : HCLUSTER, networkcount : u32, networklist : *const HNETWORK) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterQuorumResource(hresource : HRESOURCE, lpszdevicename : ::windows_sys::core::PCWSTR, dwmaxquologsize : u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterQuorumResourceEx(hresource : HRESOURCE, lpszdevicename : ::windows_sys::core::PCWSTR, dwmaxquorumlogsize : u32, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterResourceDependencyExpression(hresource : HRESOURCE, lpszdependencyexpression : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterResourceName(hresource : HRESOURCE, lpszresourcename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetClusterResourceNameEx(hresource : HRESOURCE, lpszresourcename : ::windows_sys::core::PCWSTR, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clusapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetClusterServiceAccountPassword(lpszclustername : ::windows_sys::core::PCWSTR, lpsznewpassword : ::windows_sys::core::PCWSTR, dwflags : u32, lpreturnstatusbuffer : *mut CLUSTER_SET_PASSWORD_STATUS, lpcbreturnstatusbuffersize : *mut u32) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetGroupDependencyExpression(hgroup : HGROUP, lpszdependencyexpression : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("clusapi.dll" "system" fn SetGroupDependencyExpressionEx(hgroup : HGROUP, lpszdependencyexpression : ::windows_sys::core::PCWSTR, lpszreason : ::windows_sys::core::PCWSTR) -> u32); +pub type IGetClusterDataInfo = *mut ::core::ffi::c_void; +pub type IGetClusterGroupInfo = *mut ::core::ffi::c_void; +pub type IGetClusterNetInterfaceInfo = *mut ::core::ffi::c_void; +pub type IGetClusterNetworkInfo = *mut ::core::ffi::c_void; +pub type IGetClusterNodeInfo = *mut ::core::ffi::c_void; +pub type IGetClusterObjectInfo = *mut ::core::ffi::c_void; +pub type IGetClusterResourceInfo = *mut ::core::ffi::c_void; +pub type IGetClusterUIInfo = *mut ::core::ffi::c_void; +pub type ISClusApplication = *mut ::core::ffi::c_void; +pub type ISClusCryptoKeys = *mut ::core::ffi::c_void; +pub type ISClusDisk = *mut ::core::ffi::c_void; +pub type ISClusDisks = *mut ::core::ffi::c_void; +pub type ISClusNetInterface = *mut ::core::ffi::c_void; +pub type ISClusNetInterfaces = *mut ::core::ffi::c_void; +pub type ISClusNetwork = *mut ::core::ffi::c_void; +pub type ISClusNetworkNetInterfaces = *mut ::core::ffi::c_void; +pub type ISClusNetworks = *mut ::core::ffi::c_void; +pub type ISClusNode = *mut ::core::ffi::c_void; +pub type ISClusNodeNetInterfaces = *mut ::core::ffi::c_void; +pub type ISClusNodes = *mut ::core::ffi::c_void; +pub type ISClusPartition = *mut ::core::ffi::c_void; +pub type ISClusPartitionEx = *mut ::core::ffi::c_void; +pub type ISClusPartitions = *mut ::core::ffi::c_void; +pub type ISClusProperties = *mut ::core::ffi::c_void; +pub type ISClusProperty = *mut ::core::ffi::c_void; +pub type ISClusPropertyValue = *mut ::core::ffi::c_void; +pub type ISClusPropertyValueData = *mut ::core::ffi::c_void; +pub type ISClusPropertyValues = *mut ::core::ffi::c_void; +pub type ISClusRefObject = *mut ::core::ffi::c_void; +pub type ISClusRegistryKeys = *mut ::core::ffi::c_void; +pub type ISClusResDependencies = *mut ::core::ffi::c_void; +pub type ISClusResDependents = *mut ::core::ffi::c_void; +pub type ISClusResGroup = *mut ::core::ffi::c_void; +pub type ISClusResGroupPreferredOwnerNodes = *mut ::core::ffi::c_void; +pub type ISClusResGroupResources = *mut ::core::ffi::c_void; +pub type ISClusResGroups = *mut ::core::ffi::c_void; +pub type ISClusResPossibleOwnerNodes = *mut ::core::ffi::c_void; +pub type ISClusResType = *mut ::core::ffi::c_void; +pub type ISClusResTypePossibleOwnerNodes = *mut ::core::ffi::c_void; +pub type ISClusResTypeResources = *mut ::core::ffi::c_void; +pub type ISClusResTypes = *mut ::core::ffi::c_void; +pub type ISClusResource = *mut ::core::ffi::c_void; +pub type ISClusResources = *mut ::core::ffi::c_void; +pub type ISClusScsiAddress = *mut ::core::ffi::c_void; +pub type ISClusVersion = *mut ::core::ffi::c_void; +pub type ISCluster = *mut ::core::ffi::c_void; +pub type ISClusterNames = *mut ::core::ffi::c_void; +pub type ISDomainNames = *mut ::core::ffi::c_void; +pub type IWCContextMenuCallback = *mut ::core::ffi::c_void; +pub type IWCPropertySheetCallback = *mut ::core::ffi::c_void; +pub type IWCWizard97Callback = *mut ::core::ffi::c_void; +pub type IWCWizardCallback = *mut ::core::ffi::c_void; +pub type IWEExtendContextMenu = *mut ::core::ffi::c_void; +pub type IWEExtendPropertySheet = *mut ::core::ffi::c_void; +pub type IWEExtendWizard = *mut ::core::ffi::c_void; +pub type IWEExtendWizard97 = *mut ::core::ffi::c_void; +pub type IWEInvokeCommand = *mut ::core::ffi::c_void; +pub const BitLockerDecrypted: i32 = 4i32; +pub const BitLockerDecrypting: i32 = 16i32; +pub const BitLockerEnabled: i32 = 1i32; +pub const BitLockerPaused: i32 = 64i32; +pub const BitLockerStopped: i32 = 128i32; +pub const BitlockerEncrypted: i32 = 8i32; +pub const BitlockerEncrypting: i32 = 32i32; +pub const CA_UPGRADE_VERSION: u32 = 1u32; +pub const CLCTL_ADD_CRYPTO_CHECKPOINT: CLCTL_CODES = 4194478i32; +pub const CLCTL_ADD_CRYPTO_CHECKPOINT_EX: CLCTL_CODES = 4195030i32; +pub const CLCTL_ADD_DEPENDENCY: CLCTL_CODES = 5242898i32; +pub const CLCTL_ADD_OWNER: CLCTL_CODES = 5242906i32; +pub const CLCTL_ADD_REGISTRY_CHECKPOINT: CLCTL_CODES = 4194466i32; +pub const CLCTL_ADD_REGISTRY_CHECKPOINT_32BIT: CLCTL_CODES = 4194498i32; +pub const CLCTL_ADD_REGISTRY_CHECKPOINT_64BIT: CLCTL_CODES = 4194494i32; +pub const CLCTL_BATCH_BLOCK_KEY: CLCTL_CODES = 574i32; +pub const CLCTL_BATCH_UNBLOCK_KEY: CLCTL_CODES = 577i32; +pub const CLCTL_BLOCK_GEM_SEND_RECV: CLCTL_CODES = 717i32; +pub const CLCTL_CHECK_DRAIN_VETO: CLCTL_CODES = 1057069i32; +pub const CLCTL_CHECK_VOTER_DOWN: CLCTL_CODES = 73i32; +pub const CLCTL_CHECK_VOTER_DOWN_WITNESS: CLCTL_CODES = 113i32; +pub const CLCTL_CHECK_VOTER_EVICT: CLCTL_CODES = 69i32; +pub const CLCTL_CHECK_VOTER_EVICT_WITNESS: CLCTL_CODES = 109i32; +pub const CLCTL_CLEAR_NODE_CONNECTION_INFO: CLCTL_CODES = 4195078i32; +pub const CLCTL_CLOUD_WITNESS_RESOURCE_TYPE_VALIDATE_CREDENTIALS: CLCTL_CODES = 8417i32; +pub const CLCTL_CLOUD_WITNESS_RESOURCE_TYPE_VALIDATE_CREDENTIALS_WITH_KEY: CLCTL_CODES = 8433i32; +pub const CLCTL_CLOUD_WITNESS_RESOURCE_UPDATE_KEY: CLCTL_CODES = 4202742i32; +pub const CLCTL_CLOUD_WITNESS_RESOURCE_UPDATE_TOKEN: CLCTL_CODES = 4202726i32; +pub const CLCTL_CLUSTER_BASE: u32 = 0u32; +pub const CLCTL_CLUSTER_NAME_CHANGED: CLCTL_CODES = 5242922i32; +pub const CLCTL_CLUSTER_VERSION_CHANGED: CLCTL_CODES = 5242926i32; +pub const CLCTL_DELETE: CLCTL_CODES = 5242886i32; +pub const CLCTL_DELETE_CRYPTO_CHECKPOINT: CLCTL_CODES = 4194482i32; +pub const CLCTL_DELETE_REGISTRY_CHECKPOINT: CLCTL_CODES = 4194470i32; +pub const CLCTL_DISABLE_SHARED_VOLUME_DIRECTIO: CLCTL_CODES = 4194958i32; +pub const CLCTL_ENABLE_SHARED_VOLUME_DIRECTIO: CLCTL_CODES = 4194954i32; +pub const CLCTL_ENUM_AFFINITY_RULE_NAMES: CLCTL_CODES = 11741i32; +pub const CLCTL_ENUM_COMMON_PROPERTIES: CLCTL_CODES = 81i32; +pub const CLCTL_ENUM_PRIVATE_PROPERTIES: CLCTL_CODES = 121i32; +pub const CLCTL_EVICT_NODE: CLCTL_CODES = 5242894i32; +pub const CLCTL_FILESERVER_SHARE_ADD: CLCTL_CODES = 4194886i32; +pub const CLCTL_FILESERVER_SHARE_DEL: CLCTL_CODES = 4194890i32; +pub const CLCTL_FILESERVER_SHARE_MODIFY: CLCTL_CODES = 4194894i32; +pub const CLCTL_FILESERVER_SHARE_REPORT: CLCTL_CODES = 593i32; +pub const CLCTL_FIXUP_ON_UPGRADE: CLCTL_CODES = 5242930i32; +pub const CLCTL_FORCE_DB_FLUSH: CLCTL_CODES = 4206054i32; +pub const CLCTL_FORCE_QUORUM: CLCTL_CODES = 5242950i32; +pub const CLCTL_FSWITNESS_GET_EPOCH_INFO: CLCTL_CODES = 1048669i32; +pub const CLCTL_FSWITNESS_RELEASE_LOCK: CLCTL_CODES = 5242982i32; +pub const CLCTL_FSWITNESS_SET_EPOCH_INFO: CLCTL_CODES = 5242978i32; +pub const CLCTL_GET_ARB_TIMEOUT: CLCTL_CODES = 21i32; +pub const CLCTL_GET_CHARACTERISTICS: CLCTL_CODES = 5i32; +pub const CLCTL_GET_CLASS_INFO: CLCTL_CODES = 13i32; +pub const CLCTL_GET_CLUSDB_TIMESTAMP: CLCTL_CODES = 681i32; +pub const CLCTL_GET_CLUSTER_SERVICE_ACCOUNT_NAME: CLCTL_CODES = 65i32; +pub const CLCTL_GET_COMMON_PROPERTIES: CLCTL_CODES = 89i32; +pub const CLCTL_GET_COMMON_PROPERTY_FMTS: CLCTL_CODES = 101i32; +pub const CLCTL_GET_COMMON_RESOURCE_PROPERTY_FMTS: CLCTL_CODES = 105i32; +pub const CLCTL_GET_CRYPTO_CHECKPOINTS: CLCTL_CODES = 181i32; +pub const CLCTL_GET_DNS_NAME: CLCTL_CODES = 373i32; +pub const CLCTL_GET_FAILURE_INFO: CLCTL_CODES = 25i32; +pub const CLCTL_GET_FLAGS: CLCTL_CODES = 9i32; +pub const CLCTL_GET_FQDN: CLCTL_CODES = 61i32; +pub const CLCTL_GET_GEMID_VECTOR: CLCTL_CODES = 721i32; +pub const CLCTL_GET_GUM_LOCK_OWNER: CLCTL_CODES = 697i32; +pub const CLCTL_GET_ID: CLCTL_CODES = 57i32; +pub const CLCTL_GET_INFRASTRUCTURE_SOFS_BUFFER: CLCTL_CODES = 11657i32; +pub const CLCTL_GET_LOADBAL_PROCESS_LIST: CLCTL_CODES = 201i32; +pub const CLCTL_GET_NAME: CLCTL_CODES = 41i32; +pub const CLCTL_GET_NETWORK: CLCTL_CODES = 53i32; +pub const CLCTL_GET_NETWORK_NAME: CLCTL_CODES = 361i32; +pub const CLCTL_GET_NODE: CLCTL_CODES = 49i32; +pub const CLCTL_GET_NODES_IN_FD: CLCTL_CODES = 11745i32; +pub const CLCTL_GET_OPERATION_CONTEXT: CLCTL_CODES = 1057001i32; +pub const CLCTL_GET_PRIVATE_PROPERTIES: CLCTL_CODES = 129i32; +pub const CLCTL_GET_PRIVATE_PROPERTY_FMTS: CLCTL_CODES = 141i32; +pub const CLCTL_GET_PRIVATE_RESOURCE_PROPERTY_FMTS: CLCTL_CODES = 145i32; +pub const CLCTL_GET_REGISTRY_CHECKPOINTS: CLCTL_CODES = 169i32; +pub const CLCTL_GET_REQUIRED_DEPENDENCIES: CLCTL_CODES = 17i32; +pub const CLCTL_GET_RESOURCE_TYPE: CLCTL_CODES = 45i32; +pub const CLCTL_GET_RO_COMMON_PROPERTIES: CLCTL_CODES = 85i32; +pub const CLCTL_GET_RO_PRIVATE_PROPERTIES: CLCTL_CODES = 125i32; +pub const CLCTL_GET_SHARED_VOLUME_ID: CLCTL_CODES = 657i32; +pub const CLCTL_GET_STATE_CHANGE_TIME: CLCTL_CODES = 11613i32; +pub const CLCTL_GET_STORAGE_CONFIGURATION: CLCTL_CODES = 741i32; +pub const CLCTL_GET_STORAGE_CONFIG_ATTRIBUTES: CLCTL_CODES = 745i32; +pub const CLCTL_GET_STUCK_NODES: CLCTL_CODES = 701i32; +pub const CLCTL_GLOBAL_SHIFT: u32 = 23u32; +pub const CLCTL_GROUPSET_GET_GROUPS: CLCTL_CODES = 11633i32; +pub const CLCTL_GROUPSET_GET_PROVIDER_GROUPS: CLCTL_CODES = 11637i32; +pub const CLCTL_GROUPSET_GET_PROVIDER_GROUPSETS: CLCTL_CODES = 11641i32; +pub const CLCTL_GROUP_GET_LAST_MOVE_TIME: CLCTL_CODES = 729i32; +pub const CLCTL_GROUP_GET_PROVIDER_GROUPS: CLCTL_CODES = 11645i32; +pub const CLCTL_GROUP_GET_PROVIDER_GROUPSETS: CLCTL_CODES = 11649i32; +pub const CLCTL_GROUP_SET_CCF_FROM_MASTER: CLCTL_CODES = 4205958i32; +pub const CLCTL_HOLD_IO: CLCTL_CODES = 5242942i32; +pub const CLCTL_INITIALIZE: CLCTL_CODES = 5242954i32; +pub const CLCTL_INJECT_GEM_FAULT: CLCTL_CODES = 705i32; +pub const CLCTL_INSTALL_NODE: CLCTL_CODES = 5242890i32; +pub const CLCTL_INTERNAL_SHIFT: u32 = 20u32; +pub const CLCTL_INTRODUCE_GEM_REPAIR_DELAY: CLCTL_CODES = 709i32; +pub const CLCTL_IPADDRESS_RELEASE_LEASE: CLCTL_CODES = 4194754i32; +pub const CLCTL_IPADDRESS_RENEW_LEASE: CLCTL_CODES = 4194750i32; +pub const CLCTL_IS_FEATURE_INSTALLED: CLCTL_CODES = 753i32; +pub const CLCTL_IS_QUORUM_BLOCKED: CLCTL_CODES = 689i32; +pub const CLCTL_IS_S2D_FEATURE_SUPPORTED: CLCTL_CODES = 757i32; +pub const CLCTL_JOINING_GROUP: CLCTL_CODES = 5242970i32; +pub const CLCTL_LEAVING_GROUP: CLCTL_CODES = 5242966i32; +pub const CLCTL_MODIFY_SHIFT: u32 = 22u32; +pub const CLCTL_NETNAME_CREDS_NOTIFYCAM: CLCTL_CODES = 5242986i32; +pub const CLCTL_NETNAME_DELETE_CO: CLCTL_CODES = 382i32; +pub const CLCTL_NETNAME_GET_OU_FOR_VCO: CLCTL_CODES = 4194926i32; +pub const CLCTL_NETNAME_GET_VIRTUAL_SERVER_TOKEN: CLCTL_CODES = 365i32; +pub const CLCTL_NETNAME_REGISTER_DNS_RECORDS: CLCTL_CODES = 370i32; +pub const CLCTL_NETNAME_REPAIR_VCO: CLCTL_CODES = 397i32; +pub const CLCTL_NETNAME_RESET_VCO: CLCTL_CODES = 389i32; +pub const CLCTL_NETNAME_SET_PWD_INFO: CLCTL_CODES = 378i32; +pub const CLCTL_NETNAME_SET_PWD_INFOEX: CLCTL_CODES = 794i32; +pub const CLCTL_NETNAME_VALIDATE_VCO: CLCTL_CODES = 385i32; +pub const CLCTL_NOTIFY_DRAIN_COMPLETE: CLCTL_CODES = 1057073i32; +pub const CLCTL_NOTIFY_INFRASTRUCTURE_SOFS_CHANGED: CLCTL_CODES = 4205970i32; +pub const CLCTL_NOTIFY_MONITOR_SHUTTING_DOWN: CLCTL_CODES = 1048705i32; +pub const CLCTL_NOTIFY_OWNER_CHANGE: CLCTL_CODES = 5251362i32; +pub const CLCTL_NOTIFY_QUORUM_STATUS: CLCTL_CODES = 5243006i32; +pub const CLCTL_POOL_GET_DRIVE_INFO: CLCTL_CODES = 693i32; +pub const CLCTL_PROVIDER_STATE_CHANGE: CLCTL_CODES = 5242962i32; +pub const CLCTL_QUERY_DELETE: CLCTL_CODES = 441i32; +pub const CLCTL_QUERY_MAINTENANCE_MODE: CLCTL_CODES = 481i32; +pub const CLCTL_RELOAD_AUTOLOGGER_CONFIG: CLCTL_CODES = 11730i32; +pub const CLCTL_REMOVE_DEPENDENCY: CLCTL_CODES = 5242902i32; +pub const CLCTL_REMOVE_NODE: CLCTL_CODES = 4195054i32; +pub const CLCTL_REMOVE_OWNER: CLCTL_CODES = 5242910i32; +pub const CLCTL_REPLICATION_ADD_REPLICATION_GROUP: CLCTL_CODES = 8514i32; +pub const CLCTL_REPLICATION_GET_ELIGIBLE_LOGDISKS: CLCTL_CODES = 8521i32; +pub const CLCTL_REPLICATION_GET_ELIGIBLE_SOURCE_DATADISKS: CLCTL_CODES = 8529i32; +pub const CLCTL_REPLICATION_GET_ELIGIBLE_TARGET_DATADISKS: CLCTL_CODES = 8525i32; +pub const CLCTL_REPLICATION_GET_LOG_INFO: CLCTL_CODES = 8517i32; +pub const CLCTL_REPLICATION_GET_LOG_VOLUME: CLCTL_CODES = 8541i32; +pub const CLCTL_REPLICATION_GET_REPLICATED_DISKS: CLCTL_CODES = 8533i32; +pub const CLCTL_REPLICATION_GET_REPLICATED_PARTITION_INFO: CLCTL_CODES = 8549i32; +pub const CLCTL_REPLICATION_GET_REPLICA_VOLUMES: CLCTL_CODES = 8537i32; +pub const CLCTL_REPLICATION_GET_RESOURCE_GROUP: CLCTL_CODES = 8545i32; +pub const CLCTL_RESOURCE_PREPARE_UPGRADE: CLCTL_CODES = 4202730i32; +pub const CLCTL_RESOURCE_UPGRADE_COMPLETED: CLCTL_CODES = 4202734i32; +pub const CLCTL_RESOURCE_UPGRADE_DLL: CLCTL_CODES = 4194490i32; +pub const CLCTL_RESUME_IO: CLCTL_CODES = 5242946i32; +pub const CLCTL_RW_MODIFY_NOOP: CLCTL_CODES = 4194990i32; +pub const CLCTL_SCALEOUT_COMMAND: CLCTL_CODES = 4205974i32; +pub const CLCTL_SCALEOUT_CONTROL: CLCTL_CODES = 4205978i32; +pub const CLCTL_SCALEOUT_GET_CLUSTERS: CLCTL_CODES = 4205981i32; +pub const CLCTL_SEND_DUMMY_GEM_MESSAGES: CLCTL_CODES = 713i32; +pub const CLCTL_SET_ACCOUNT_ACCESS: CLCTL_CODES = 4194546i32; +pub const CLCTL_SET_CLUSTER_S2D_CACHE_METADATA_RESERVE_BYTES: CLCTL_CODES = 4205934i32; +pub const CLCTL_SET_CLUSTER_S2D_ENABLED: CLCTL_CODES = 4205922i32; +pub const CLCTL_SET_COMMON_PROPERTIES: CLCTL_CODES = 4194398i32; +pub const CLCTL_SET_CSV_MAINTENANCE_MODE: CLCTL_CODES = 4194966i32; +pub const CLCTL_SET_DNS_DOMAIN: CLCTL_CODES = 4195082i32; +pub const CLCTL_SET_INFRASTRUCTURE_SOFS_BUFFER: CLCTL_CODES = 4205966i32; +pub const CLCTL_SET_MAINTENANCE_MODE: CLCTL_CODES = 4194790i32; +pub const CLCTL_SET_NAME: CLCTL_CODES = 5242918i32; +pub const CLCTL_SET_PRIVATE_PROPERTIES: CLCTL_CODES = 4194438i32; +pub const CLCTL_SET_SHARED_VOLUME_BACKUP_MODE: CLCTL_CODES = 4194970i32; +pub const CLCTL_SET_STORAGE_CONFIGURATION: CLCTL_CODES = 4195042i32; +pub const CLCTL_SHUTDOWN: CLCTL_CODES = 77i32; +pub const CLCTL_STARTING_PHASE1: CLCTL_CODES = 5242934i32; +pub const CLCTL_STARTING_PHASE2: CLCTL_CODES = 5242938i32; +pub const CLCTL_STATE_CHANGE_REASON: CLCTL_CODES = 5242958i32; +pub const CLCTL_STORAGE_GET_AVAILABLE_DISKS: CLCTL_CODES = 405i32; +pub const CLCTL_STORAGE_GET_AVAILABLE_DISKS_EX: CLCTL_CODES = 501i32; +pub const CLCTL_STORAGE_GET_AVAILABLE_DISKS_EX2_INT: CLCTL_CODES = 8161i32; +pub const CLCTL_STORAGE_GET_CLUSBFLT_PATHINFO: CLCTL_CODES = 769i32; +pub const CLCTL_STORAGE_GET_CLUSBFLT_PATHS: CLCTL_CODES = 765i32; +pub const CLCTL_STORAGE_GET_CLUSPORT_DISK_COUNT: CLCTL_CODES = 509i32; +pub const CLCTL_STORAGE_GET_DIRTY: CLCTL_CODES = 537i32; +pub const CLCTL_STORAGE_GET_DISKID: CLCTL_CODES = 517i32; +pub const CLCTL_STORAGE_GET_DISK_INFO: CLCTL_CODES = 401i32; +pub const CLCTL_STORAGE_GET_DISK_INFO_EX: CLCTL_CODES = 497i32; +pub const CLCTL_STORAGE_GET_DISK_INFO_EX2: CLCTL_CODES = 505i32; +pub const CLCTL_STORAGE_GET_DISK_NUMBER_INFO: CLCTL_CODES = 417i32; +pub const CLCTL_STORAGE_GET_DRIVELETTERS: CLCTL_CODES = 493i32; +pub const CLCTL_STORAGE_GET_MOUNTPOINTS: CLCTL_CODES = 529i32; +pub const CLCTL_STORAGE_GET_PHYSICAL_DISK_INFO: CLCTL_CODES = 761i32; +pub const CLCTL_STORAGE_GET_RESOURCEID: CLCTL_CODES = 557i32; +pub const CLCTL_STORAGE_GET_SHARED_VOLUME_INFO: CLCTL_CODES = 549i32; +pub const CLCTL_STORAGE_GET_SHARED_VOLUME_PARTITION_NAMES: CLCTL_CODES = 669i32; +pub const CLCTL_STORAGE_GET_SHARED_VOLUME_STATES: CLCTL_CODES = 4194978i32; +pub const CLCTL_STORAGE_IS_CLUSTERABLE: CLCTL_CODES = 521i32; +pub const CLCTL_STORAGE_IS_CSV_FILE: CLCTL_CODES = 553i32; +pub const CLCTL_STORAGE_IS_PATH_VALID: CLCTL_CODES = 409i32; +pub const CLCTL_STORAGE_IS_SHARED_VOLUME: CLCTL_CODES = 677i32; +pub const CLCTL_STORAGE_REMAP_DRIVELETTER: CLCTL_CODES = 513i32; +pub const CLCTL_STORAGE_REMOVE_VM_OWNERSHIP: CLCTL_CODES = 4194830i32; +pub const CLCTL_STORAGE_RENAME_SHARED_VOLUME: CLCTL_CODES = 11734i32; +pub const CLCTL_STORAGE_RENAME_SHARED_VOLUME_GUID: CLCTL_CODES = 11738i32; +pub const CLCTL_STORAGE_SET_DRIVELETTER: CLCTL_CODES = 4194794i32; +pub const CLCTL_STORAGE_SYNC_CLUSDISK_DB: CLCTL_CODES = 4194718i32; +pub const CLCTL_UNDELETE: CLCTL_CODES = 5243014i32; +pub const CLCTL_UNKNOWN: CLCTL_CODES = 0i32; +pub const CLCTL_USER_SHIFT: u32 = 21u32; +pub const CLCTL_VALIDATE_CHANGE_GROUP: CLCTL_CODES = 1057061i32; +pub const CLCTL_VALIDATE_COMMON_PROPERTIES: CLCTL_CODES = 97i32; +pub const CLCTL_VALIDATE_DIRECTORY: CLCTL_CODES = 569i32; +pub const CLCTL_VALIDATE_NETNAME: CLCTL_CODES = 565i32; +pub const CLCTL_VALIDATE_PATH: CLCTL_CODES = 561i32; +pub const CLCTL_VALIDATE_PRIVATE_PROPERTIES: CLCTL_CODES = 137i32; +pub const CLOUD_WITNESS_CONTAINER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msft-cloud-witness"); +pub const CLRES_VERSION_V1_00: u32 = 256u32; +pub const CLRES_VERSION_V2_00: u32 = 512u32; +pub const CLRES_VERSION_V3_00: u32 = 768u32; +pub const CLRES_VERSION_V4_00: u32 = 1024u32; +pub const CLUADMEX_OT_CLUSTER: CLUADMEX_OBJECT_TYPE = 1i32; +pub const CLUADMEX_OT_GROUP: CLUADMEX_OBJECT_TYPE = 3i32; +pub const CLUADMEX_OT_NETINTERFACE: CLUADMEX_OBJECT_TYPE = 7i32; +pub const CLUADMEX_OT_NETWORK: CLUADMEX_OBJECT_TYPE = 6i32; +pub const CLUADMEX_OT_NODE: CLUADMEX_OBJECT_TYPE = 2i32; +pub const CLUADMEX_OT_NONE: CLUADMEX_OBJECT_TYPE = 0i32; +pub const CLUADMEX_OT_RESOURCE: CLUADMEX_OBJECT_TYPE = 4i32; +pub const CLUADMEX_OT_RESOURCETYPE: CLUADMEX_OBJECT_TYPE = 5i32; +pub const CLUSAPI_CHANGE_ACCESS: i32 = 2i32; +pub const CLUSAPI_CHANGE_RESOURCE_GROUP_FORCE_MOVE_TO_CSV: u64 = 1u64; +pub const CLUSAPI_GROUP_MOVE_FAILBACK: u32 = 16u32; +pub const CLUSAPI_GROUP_MOVE_HIGH_PRIORITY_START: u32 = 8u32; +pub const CLUSAPI_GROUP_MOVE_IGNORE_AFFINITY_RULE: u32 = 32u32; +pub const CLUSAPI_GROUP_MOVE_IGNORE_RESOURCE_STATUS: u32 = 1u32; +pub const CLUSAPI_GROUP_MOVE_QUEUE_ENABLED: u32 = 4u32; +pub const CLUSAPI_GROUP_MOVE_RETURN_TO_SOURCE_NODE_ON_ERROR: u32 = 2u32; +pub const CLUSAPI_GROUP_OFFLINE_IGNORE_RESOURCE_STATUS: u32 = 1u32; +pub const CLUSAPI_GROUP_ONLINE_BEST_POSSIBLE_NODE: u32 = 4u32; +pub const CLUSAPI_GROUP_ONLINE_IGNORE_AFFINITY_RULE: u32 = 8u32; +pub const CLUSAPI_GROUP_ONLINE_IGNORE_RESOURCE_STATUS: u32 = 1u32; +pub const CLUSAPI_GROUP_ONLINE_SYNCHRONOUS: u32 = 2u32; +pub const CLUSAPI_NODE_AVOID_PLACEMENT: u32 = 2u32; +pub const CLUSAPI_NODE_PAUSE_REMAIN_ON_PAUSED_NODE_ON_MOVE_ERROR: u32 = 1u32; +pub const CLUSAPI_NODE_PAUSE_RETRY_DRAIN_ON_FAILURE: u32 = 4u32; +pub const CLUSAPI_NODE_RESUME_FAILBACK_PINNED_VMS_ONLY: u32 = 4u32; +pub const CLUSAPI_NODE_RESUME_FAILBACK_STORAGE: u32 = 1u32; +pub const CLUSAPI_NODE_RESUME_FAILBACK_VMS: u32 = 2u32; +pub const CLUSAPI_NO_ACCESS: i32 = 4i32; +pub const CLUSAPI_READ_ACCESS: i32 = 1i32; +pub const CLUSAPI_RESOURCE_OFFLINE_DO_NOT_UPDATE_PERSISTENT_STATE: u32 = 4u32; +pub const CLUSAPI_RESOURCE_OFFLINE_FORCE_WITH_TERMINATION: u32 = 2u32; +pub const CLUSAPI_RESOURCE_OFFLINE_IGNORE_RESOURCE_STATUS: u32 = 1u32; +pub const CLUSAPI_RESOURCE_OFFLINE_REASON_BEING_DELETED: u32 = 8u32; +pub const CLUSAPI_RESOURCE_OFFLINE_REASON_BEING_RESTARTED: u32 = 16u32; +pub const CLUSAPI_RESOURCE_OFFLINE_REASON_MOVING: u32 = 2u32; +pub const CLUSAPI_RESOURCE_OFFLINE_REASON_NONE: u32 = 0u32; +pub const CLUSAPI_RESOURCE_OFFLINE_REASON_PREEMPTED: u32 = 32u32; +pub const CLUSAPI_RESOURCE_OFFLINE_REASON_SHUTTING_DOWN: u32 = 64u32; +pub const CLUSAPI_RESOURCE_OFFLINE_REASON_UNKNOWN: u32 = 1u32; +pub const CLUSAPI_RESOURCE_OFFLINE_REASON_USER_REQUESTED: u32 = 4u32; +pub const CLUSAPI_RESOURCE_ONLINE_BEST_POSSIBLE_NODE: u32 = 8u32; +pub const CLUSAPI_RESOURCE_ONLINE_DO_NOT_UPDATE_PERSISTENT_STATE: u32 = 2u32; +pub const CLUSAPI_RESOURCE_ONLINE_IGNORE_AFFINITY_RULE: u32 = 32u32; +pub const CLUSAPI_RESOURCE_ONLINE_IGNORE_RESOURCE_STATUS: u32 = 1u32; +pub const CLUSAPI_RESOURCE_ONLINE_NECESSARY_FOR_QUORUM: u32 = 4u32; +pub const CLUSAPI_VALID_CHANGE_RESOURCE_GROUP_FLAGS: u64 = 1u64; +pub const CLUSAPI_VERSION: u32 = 2572u32; +pub const CLUSAPI_VERSION_NI: u32 = 2572u32; +pub const CLUSAPI_VERSION_RS3: u32 = 2560u32; +pub const CLUSAPI_VERSION_SERVER2008: u32 = 1536u32; +pub const CLUSAPI_VERSION_SERVER2008R2: u32 = 1792u32; +pub const CLUSAPI_VERSION_WINDOWS8: u32 = 1793u32; +pub const CLUSAPI_VERSION_WINDOWSBLUE: u32 = 1794u32; +pub const CLUSAPI_VERSION_WINTHRESHOLD: u32 = 1795u32; +pub const CLUSCTL_ACCESS_MODE_MASK: u32 = 3u32; +pub const CLUSCTL_ACCESS_SHIFT: u32 = 0u32; +pub const CLUSCTL_AFFINITYRULE_GET_COMMON_PROPERTIES: CLUSCTL_AFFINITYRULE_CODES = 150995033i32; +pub const CLUSCTL_AFFINITYRULE_GET_GROUPNAMES: CLUSCTL_AFFINITYRULE_CODES = 151006577i32; +pub const CLUSCTL_AFFINITYRULE_GET_ID: CLUSCTL_AFFINITYRULE_CODES = 150995001i32; +pub const CLUSCTL_AFFINITYRULE_GET_RO_COMMON_PROPERTIES: CLUSCTL_AFFINITYRULE_CODES = 150995029i32; +pub const CLUSCTL_AFFINITYRULE_SET_COMMON_PROPERTIES: CLUSCTL_AFFINITYRULE_CODES = 155189342i32; +pub const CLUSCTL_CLOUD_WITNESS_RESOURCE_TYPE_VALIDATE_CREDENTIALS: CLUSCTL_RESOURCE_TYPE_CODES = 33562849i32; +pub const CLUSCTL_CLOUD_WITNESS_RESOURCE_TYPE_VALIDATE_CREDENTIALS_WITH_KEY: CLUSCTL_RESOURCE_TYPE_CODES = 33562865i32; +pub const CLUSCTL_CLOUD_WITNESS_RESOURCE_UPDATE_KEY: CLUSCTL_RESOURCE_CODES = 20979958i32; +pub const CLUSCTL_CLOUD_WITNESS_RESOURCE_UPDATE_TOKEN: CLUSCTL_RESOURCE_CODES = 20979942i32; +pub const CLUSCTL_CLUSTER_BATCH_BLOCK_KEY: CLUSCTL_CLUSTER_CODES = 117441086i32; +pub const CLUSCTL_CLUSTER_BATCH_UNBLOCK_KEY: CLUSCTL_CLUSTER_CODES = 117441089i32; +pub const CLUSCTL_CLUSTER_CHECK_VOTER_DOWN: CLUSCTL_CLUSTER_CODES = 117440585i32; +pub const CLUSCTL_CLUSTER_CHECK_VOTER_DOWN_WITNESS: CLUSCTL_CLUSTER_CODES = 117440625i32; +pub const CLUSCTL_CLUSTER_CHECK_VOTER_EVICT: CLUSCTL_CLUSTER_CODES = 117440581i32; +pub const CLUSCTL_CLUSTER_CHECK_VOTER_EVICT_WITNESS: CLUSCTL_CLUSTER_CODES = 117440621i32; +pub const CLUSCTL_CLUSTER_CLEAR_NODE_CONNECTION_INFO: CLUSCTL_CLUSTER_CODES = 121635590i32; +pub const CLUSCTL_CLUSTER_ENUM_AFFINITY_RULE_NAMES: CLUSCTL_CLUSTER_CODES = 117452253i32; +pub const CLUSCTL_CLUSTER_ENUM_COMMON_PROPERTIES: CLUSCTL_CLUSTER_CODES = 117440593i32; +pub const CLUSCTL_CLUSTER_ENUM_PRIVATE_PROPERTIES: CLUSCTL_CLUSTER_CODES = 117440633i32; +pub const CLUSCTL_CLUSTER_FORCE_FLUSH_DB: CLUSCTL_CLUSTER_CODES = 121646566i32; +pub const CLUSCTL_CLUSTER_GET_CLMUSR_TOKEN: CLUSCTL_CLUSTER_CODES = 117440877i32; +pub const CLUSCTL_CLUSTER_GET_CLUSDB_TIMESTAMP: CLUSCTL_CLUSTER_CODES = 117441193i32; +pub const CLUSCTL_CLUSTER_GET_COMMON_PROPERTIES: CLUSCTL_CLUSTER_CODES = 117440601i32; +pub const CLUSCTL_CLUSTER_GET_COMMON_PROPERTY_FMTS: CLUSCTL_CLUSTER_CODES = 117440613i32; +pub const CLUSCTL_CLUSTER_GET_FQDN: CLUSCTL_CLUSTER_CODES = 117440573i32; +pub const CLUSCTL_CLUSTER_GET_GUM_LOCK_OWNER: CLUSCTL_CLUSTER_CODES = 117441209i32; +pub const CLUSCTL_CLUSTER_GET_NODES_IN_FD: CLUSCTL_CLUSTER_CODES = 117452257i32; +pub const CLUSCTL_CLUSTER_GET_PRIVATE_PROPERTIES: CLUSCTL_CLUSTER_CODES = 117440641i32; +pub const CLUSCTL_CLUSTER_GET_PRIVATE_PROPERTY_FMTS: CLUSCTL_CLUSTER_CODES = 117440653i32; +pub const CLUSCTL_CLUSTER_GET_RO_COMMON_PROPERTIES: CLUSCTL_CLUSTER_CODES = 117440597i32; +pub const CLUSCTL_CLUSTER_GET_RO_PRIVATE_PROPERTIES: CLUSCTL_CLUSTER_CODES = 117440637i32; +pub const CLUSCTL_CLUSTER_GET_SHARED_VOLUME_ID: CLUSCTL_CLUSTER_CODES = 117441169i32; +pub const CLUSCTL_CLUSTER_GET_STORAGE_CONFIGURATION: CLUSCTL_CLUSTER_CODES = 117441253i32; +pub const CLUSCTL_CLUSTER_GET_STORAGE_CONFIG_ATTRIBUTES: CLUSCTL_CLUSTER_CODES = 117441257i32; +pub const CLUSCTL_CLUSTER_RELOAD_AUTOLOGGER_CONFIG: CLUSCTL_CLUSTER_CODES = 117452242i32; +pub const CLUSCTL_CLUSTER_REMOVE_NODE: CLUSCTL_CLUSTER_CODES = 121635566i32; +pub const CLUSCTL_CLUSTER_SET_ACCOUNT_ACCESS: CLUSCTL_CLUSTER_CODES = 121635058i32; +pub const CLUSCTL_CLUSTER_SET_CLUSTER_S2D_CACHE_METADATA_RESERVE_BYTES: CLUSCTL_CLUSTER_CODES = 121646446i32; +pub const CLUSCTL_CLUSTER_SET_CLUSTER_S2D_ENABLED: CLUSCTL_CLUSTER_CODES = 121646434i32; +pub const CLUSCTL_CLUSTER_SET_COMMON_PROPERTIES: CLUSCTL_CLUSTER_CODES = 121634910i32; +pub const CLUSCTL_CLUSTER_SET_DNS_DOMAIN: CLUSCTL_CLUSTER_CODES = 121635594i32; +pub const CLUSCTL_CLUSTER_SET_PRIVATE_PROPERTIES: CLUSCTL_CLUSTER_CODES = 121634950i32; +pub const CLUSCTL_CLUSTER_SET_STORAGE_CONFIGURATION: CLUSCTL_CLUSTER_CODES = 121635554i32; +pub const CLUSCTL_CLUSTER_SHUTDOWN: CLUSCTL_CLUSTER_CODES = 117440589i32; +pub const CLUSCTL_CLUSTER_STORAGE_RENAME_SHARED_VOLUME: CLUSCTL_CLUSTER_CODES = 117452246i32; +pub const CLUSCTL_CLUSTER_STORAGE_RENAME_SHARED_VOLUME_GUID: CLUSCTL_CLUSTER_CODES = 117452250i32; +pub const CLUSCTL_CLUSTER_UNKNOWN: CLUSCTL_CLUSTER_CODES = 117440512i32; +pub const CLUSCTL_CLUSTER_VALIDATE_COMMON_PROPERTIES: CLUSCTL_CLUSTER_CODES = 117440609i32; +pub const CLUSCTL_CLUSTER_VALIDATE_PRIVATE_PROPERTIES: CLUSCTL_CLUSTER_CODES = 117440649i32; +pub const CLUSCTL_CONTROL_CODE_MASK: u32 = 4194303u32; +pub const CLUSCTL_FUNCTION_SHIFT: u32 = 2u32; +pub const CLUSCTL_GET_OPERATION_CONTEXT_PARAMS_VERSION_1: u32 = 1u32; +pub const CLUSCTL_GROUPSET_GET_COMMON_PROPERTIES: CLUSCTL_GROUPSET_CODES = 134217817i32; +pub const CLUSCTL_GROUPSET_GET_GROUPS: CLUSCTL_GROUPSET_CODES = 134229361i32; +pub const CLUSCTL_GROUPSET_GET_ID: CLUSCTL_GROUPSET_CODES = 134217785i32; +pub const CLUSCTL_GROUPSET_GET_PROVIDER_GROUPS: CLUSCTL_GROUPSET_CODES = 134229365i32; +pub const CLUSCTL_GROUPSET_GET_PROVIDER_GROUPSETS: CLUSCTL_GROUPSET_CODES = 134229369i32; +pub const CLUSCTL_GROUPSET_GET_RO_COMMON_PROPERTIES: CLUSCTL_GROUPSET_CODES = 134217813i32; +pub const CLUSCTL_GROUPSET_SET_COMMON_PROPERTIES: CLUSCTL_GROUPSET_CODES = 138412126i32; +pub const CLUSCTL_GROUP_ENUM_COMMON_PROPERTIES: CLUSCTL_GROUP_CODES = 50331729i32; +pub const CLUSCTL_GROUP_ENUM_PRIVATE_PROPERTIES: CLUSCTL_GROUP_CODES = 50331769i32; +pub const CLUSCTL_GROUP_GET_CHARACTERISTICS: CLUSCTL_GROUP_CODES = 50331653i32; +pub const CLUSCTL_GROUP_GET_COMMON_PROPERTIES: CLUSCTL_GROUP_CODES = 50331737i32; +pub const CLUSCTL_GROUP_GET_COMMON_PROPERTY_FMTS: CLUSCTL_GROUP_CODES = 50331749i32; +pub const CLUSCTL_GROUP_GET_FAILURE_INFO: CLUSCTL_GROUP_CODES = 50331673i32; +pub const CLUSCTL_GROUP_GET_FLAGS: CLUSCTL_GROUP_CODES = 50331657i32; +pub const CLUSCTL_GROUP_GET_ID: CLUSCTL_GROUP_CODES = 50331705i32; +pub const CLUSCTL_GROUP_GET_LAST_MOVE_TIME: CLUSCTL_GROUP_CODES = 50332377i32; +pub const CLUSCTL_GROUP_GET_NAME: CLUSCTL_GROUP_CODES = 50331689i32; +pub const CLUSCTL_GROUP_GET_PRIVATE_PROPERTIES: CLUSCTL_GROUP_CODES = 50331777i32; +pub const CLUSCTL_GROUP_GET_PRIVATE_PROPERTY_FMTS: CLUSCTL_GROUP_CODES = 50331789i32; +pub const CLUSCTL_GROUP_GET_PROVIDER_GROUPS: CLUSCTL_GROUPSET_CODES = 134229373i32; +pub const CLUSCTL_GROUP_GET_PROVIDER_GROUPSETS: CLUSCTL_GROUPSET_CODES = 134229377i32; +pub const CLUSCTL_GROUP_GET_RO_COMMON_PROPERTIES: CLUSCTL_GROUP_CODES = 50331733i32; +pub const CLUSCTL_GROUP_GET_RO_PRIVATE_PROPERTIES: CLUSCTL_GROUP_CODES = 50331773i32; +pub const CLUSCTL_GROUP_QUERY_DELETE: CLUSCTL_GROUP_CODES = 50332089i32; +pub const CLUSCTL_GROUP_SET_CCF_FROM_MASTER: CLUSCTL_GROUP_CODES = 54537606i32; +pub const CLUSCTL_GROUP_SET_COMMON_PROPERTIES: CLUSCTL_GROUP_CODES = 54526046i32; +pub const CLUSCTL_GROUP_SET_PRIVATE_PROPERTIES: CLUSCTL_GROUP_CODES = 54526086i32; +pub const CLUSCTL_GROUP_UNKNOWN: CLUSCTL_GROUP_CODES = 50331648i32; +pub const CLUSCTL_GROUP_VALIDATE_COMMON_PROPERTIES: CLUSCTL_GROUP_CODES = 50331745i32; +pub const CLUSCTL_GROUP_VALIDATE_PRIVATE_PROPERTIES: CLUSCTL_GROUP_CODES = 50331785i32; +pub const CLUSCTL_NETINTERFACE_ENUM_COMMON_PROPERTIES: CLUSCTL_NETINTERFACE_CODES = 100663377i32; +pub const CLUSCTL_NETINTERFACE_ENUM_PRIVATE_PROPERTIES: CLUSCTL_NETINTERFACE_CODES = 100663417i32; +pub const CLUSCTL_NETINTERFACE_GET_CHARACTERISTICS: CLUSCTL_NETINTERFACE_CODES = 100663301i32; +pub const CLUSCTL_NETINTERFACE_GET_COMMON_PROPERTIES: CLUSCTL_NETINTERFACE_CODES = 100663385i32; +pub const CLUSCTL_NETINTERFACE_GET_COMMON_PROPERTY_FMTS: CLUSCTL_NETINTERFACE_CODES = 100663397i32; +pub const CLUSCTL_NETINTERFACE_GET_FLAGS: CLUSCTL_NETINTERFACE_CODES = 100663305i32; +pub const CLUSCTL_NETINTERFACE_GET_ID: CLUSCTL_NETINTERFACE_CODES = 100663353i32; +pub const CLUSCTL_NETINTERFACE_GET_NAME: CLUSCTL_NETINTERFACE_CODES = 100663337i32; +pub const CLUSCTL_NETINTERFACE_GET_NETWORK: CLUSCTL_NETINTERFACE_CODES = 100663349i32; +pub const CLUSCTL_NETINTERFACE_GET_NODE: CLUSCTL_NETINTERFACE_CODES = 100663345i32; +pub const CLUSCTL_NETINTERFACE_GET_PRIVATE_PROPERTIES: CLUSCTL_NETINTERFACE_CODES = 100663425i32; +pub const CLUSCTL_NETINTERFACE_GET_PRIVATE_PROPERTY_FMTS: CLUSCTL_NETINTERFACE_CODES = 100663437i32; +pub const CLUSCTL_NETINTERFACE_GET_RO_COMMON_PROPERTIES: CLUSCTL_NETINTERFACE_CODES = 100663381i32; +pub const CLUSCTL_NETINTERFACE_GET_RO_PRIVATE_PROPERTIES: CLUSCTL_NETINTERFACE_CODES = 100663421i32; +pub const CLUSCTL_NETINTERFACE_SET_COMMON_PROPERTIES: CLUSCTL_NETINTERFACE_CODES = 104857694i32; +pub const CLUSCTL_NETINTERFACE_SET_PRIVATE_PROPERTIES: CLUSCTL_NETINTERFACE_CODES = 104857734i32; +pub const CLUSCTL_NETINTERFACE_UNKNOWN: CLUSCTL_NETINTERFACE_CODES = 100663296i32; +pub const CLUSCTL_NETINTERFACE_VALIDATE_COMMON_PROPERTIES: CLUSCTL_NETINTERFACE_CODES = 100663393i32; +pub const CLUSCTL_NETINTERFACE_VALIDATE_PRIVATE_PROPERTIES: CLUSCTL_NETINTERFACE_CODES = 100663433i32; +pub const CLUSCTL_NETWORK_ENUM_COMMON_PROPERTIES: CLUSCTL_NETWORK_CODES = 83886161i32; +pub const CLUSCTL_NETWORK_ENUM_PRIVATE_PROPERTIES: CLUSCTL_NETWORK_CODES = 83886201i32; +pub const CLUSCTL_NETWORK_GET_CHARACTERISTICS: CLUSCTL_NETWORK_CODES = 83886085i32; +pub const CLUSCTL_NETWORK_GET_COMMON_PROPERTIES: CLUSCTL_NETWORK_CODES = 83886169i32; +pub const CLUSCTL_NETWORK_GET_COMMON_PROPERTY_FMTS: CLUSCTL_NETWORK_CODES = 83886181i32; +pub const CLUSCTL_NETWORK_GET_FLAGS: CLUSCTL_NETWORK_CODES = 83886089i32; +pub const CLUSCTL_NETWORK_GET_ID: CLUSCTL_NETWORK_CODES = 83886137i32; +pub const CLUSCTL_NETWORK_GET_NAME: CLUSCTL_NETWORK_CODES = 83886121i32; +pub const CLUSCTL_NETWORK_GET_PRIVATE_PROPERTIES: CLUSCTL_NETWORK_CODES = 83886209i32; +pub const CLUSCTL_NETWORK_GET_PRIVATE_PROPERTY_FMTS: CLUSCTL_NETWORK_CODES = 83886221i32; +pub const CLUSCTL_NETWORK_GET_RO_COMMON_PROPERTIES: CLUSCTL_NETWORK_CODES = 83886165i32; +pub const CLUSCTL_NETWORK_GET_RO_PRIVATE_PROPERTIES: CLUSCTL_NETWORK_CODES = 83886205i32; +pub const CLUSCTL_NETWORK_SET_COMMON_PROPERTIES: CLUSCTL_NETWORK_CODES = 88080478i32; +pub const CLUSCTL_NETWORK_SET_PRIVATE_PROPERTIES: CLUSCTL_NETWORK_CODES = 88080518i32; +pub const CLUSCTL_NETWORK_UNKNOWN: CLUSCTL_NETWORK_CODES = 83886080i32; +pub const CLUSCTL_NETWORK_VALIDATE_COMMON_PROPERTIES: CLUSCTL_NETWORK_CODES = 83886177i32; +pub const CLUSCTL_NETWORK_VALIDATE_PRIVATE_PROPERTIES: CLUSCTL_NETWORK_CODES = 83886217i32; +pub const CLUSCTL_NODE_BLOCK_GEM_SEND_RECV: CLUSCTL_NODE_CODES = 67109581i32; +pub const CLUSCTL_NODE_ENUM_COMMON_PROPERTIES: CLUSCTL_NODE_CODES = 67108945i32; +pub const CLUSCTL_NODE_ENUM_PRIVATE_PROPERTIES: CLUSCTL_NODE_CODES = 67108985i32; +pub const CLUSCTL_NODE_GET_CHARACTERISTICS: CLUSCTL_NODE_CODES = 67108869i32; +pub const CLUSCTL_NODE_GET_CLUSTER_SERVICE_ACCOUNT_NAME: CLUSCTL_NODE_CODES = 67108929i32; +pub const CLUSCTL_NODE_GET_COMMON_PROPERTIES: CLUSCTL_NODE_CODES = 67108953i32; +pub const CLUSCTL_NODE_GET_COMMON_PROPERTY_FMTS: CLUSCTL_NODE_CODES = 67108965i32; +pub const CLUSCTL_NODE_GET_FLAGS: CLUSCTL_NODE_CODES = 67108873i32; +pub const CLUSCTL_NODE_GET_GEMID_VECTOR: CLUSCTL_NODE_CODES = 67109585i32; +pub const CLUSCTL_NODE_GET_ID: CLUSCTL_NODE_CODES = 67108921i32; +pub const CLUSCTL_NODE_GET_NAME: CLUSCTL_NODE_CODES = 67108905i32; +pub const CLUSCTL_NODE_GET_PRIVATE_PROPERTIES: CLUSCTL_NODE_CODES = 67108993i32; +pub const CLUSCTL_NODE_GET_PRIVATE_PROPERTY_FMTS: CLUSCTL_NODE_CODES = 67109005i32; +pub const CLUSCTL_NODE_GET_RO_COMMON_PROPERTIES: CLUSCTL_NODE_CODES = 67108949i32; +pub const CLUSCTL_NODE_GET_RO_PRIVATE_PROPERTIES: CLUSCTL_NODE_CODES = 67108989i32; +pub const CLUSCTL_NODE_GET_STUCK_NODES: CLUSCTL_NODE_CODES = 67109565i32; +pub const CLUSCTL_NODE_INJECT_GEM_FAULT: CLUSCTL_NODE_CODES = 67109569i32; +pub const CLUSCTL_NODE_INTRODUCE_GEM_REPAIR_DELAY: CLUSCTL_NODE_CODES = 67109573i32; +pub const CLUSCTL_NODE_SEND_DUMMY_GEM_MESSAGES: CLUSCTL_NODE_CODES = 67109577i32; +pub const CLUSCTL_NODE_SET_COMMON_PROPERTIES: CLUSCTL_NODE_CODES = 71303262i32; +pub const CLUSCTL_NODE_SET_PRIVATE_PROPERTIES: CLUSCTL_NODE_CODES = 71303302i32; +pub const CLUSCTL_NODE_UNKNOWN: CLUSCTL_NODE_CODES = 67108864i32; +pub const CLUSCTL_NODE_VALIDATE_COMMON_PROPERTIES: CLUSCTL_NODE_CODES = 67108961i32; +pub const CLUSCTL_NODE_VALIDATE_PRIVATE_PROPERTIES: CLUSCTL_NODE_CODES = 67109001i32; +pub const CLUSCTL_OBJECT_MASK: u32 = 255u32; +pub const CLUSCTL_OBJECT_SHIFT: u32 = 24u32; +pub const CLUSCTL_RESOURCE_ADD_CRYPTO_CHECKPOINT: CLUSCTL_RESOURCE_CODES = 20971694i32; +pub const CLUSCTL_RESOURCE_ADD_CRYPTO_CHECKPOINT_EX: CLUSCTL_RESOURCE_CODES = 20972246i32; +pub const CLUSCTL_RESOURCE_ADD_DEPENDENCY: CLUSCTL_RESOURCE_CODES = 22020114i32; +pub const CLUSCTL_RESOURCE_ADD_OWNER: CLUSCTL_RESOURCE_CODES = 22020122i32; +pub const CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT: CLUSCTL_RESOURCE_CODES = 20971682i32; +pub const CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_32BIT: CLUSCTL_RESOURCE_CODES = 20971714i32; +pub const CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_64BIT: CLUSCTL_RESOURCE_CODES = 20971710i32; +pub const CLUSCTL_RESOURCE_CHECK_DRAIN_VETO: CLUSCTL_RESOURCE_CODES = 17834285i32; +pub const CLUSCTL_RESOURCE_CLUSTER_NAME_CHANGED: CLUSCTL_RESOURCE_CODES = 22020138i32; +pub const CLUSCTL_RESOURCE_CLUSTER_VERSION_CHANGED: CLUSCTL_RESOURCE_CODES = 22020142i32; +pub const CLUSCTL_RESOURCE_DELETE: CLUSCTL_RESOURCE_CODES = 22020102i32; +pub const CLUSCTL_RESOURCE_DELETE_CRYPTO_CHECKPOINT: CLUSCTL_RESOURCE_CODES = 20971698i32; +pub const CLUSCTL_RESOURCE_DELETE_REGISTRY_CHECKPOINT: CLUSCTL_RESOURCE_CODES = 20971686i32; +pub const CLUSCTL_RESOURCE_DISABLE_SHARED_VOLUME_DIRECTIO: CLUSCTL_RESOURCE_CODES = 20972174i32; +pub const CLUSCTL_RESOURCE_ENABLE_SHARED_VOLUME_DIRECTIO: CLUSCTL_RESOURCE_CODES = 20972170i32; +pub const CLUSCTL_RESOURCE_ENUM_COMMON_PROPERTIES: CLUSCTL_RESOURCE_CODES = 16777297i32; +pub const CLUSCTL_RESOURCE_ENUM_PRIVATE_PROPERTIES: CLUSCTL_RESOURCE_CODES = 16777337i32; +pub const CLUSCTL_RESOURCE_EVICT_NODE: CLUSCTL_RESOURCE_CODES = 22020110i32; +pub const CLUSCTL_RESOURCE_FORCE_QUORUM: CLUSCTL_RESOURCE_CODES = 22020166i32; +pub const CLUSCTL_RESOURCE_FSWITNESS_GET_EPOCH_INFO: CLUSCTL_RESOURCE_CODES = 17825885i32; +pub const CLUSCTL_RESOURCE_FSWITNESS_RELEASE_LOCK: CLUSCTL_RESOURCE_CODES = 22020198i32; +pub const CLUSCTL_RESOURCE_FSWITNESS_SET_EPOCH_INFO: CLUSCTL_RESOURCE_CODES = 22020194i32; +pub const CLUSCTL_RESOURCE_GET_CHARACTERISTICS: CLUSCTL_RESOURCE_CODES = 16777221i32; +pub const CLUSCTL_RESOURCE_GET_CLASS_INFO: CLUSCTL_RESOURCE_CODES = 16777229i32; +pub const CLUSCTL_RESOURCE_GET_COMMON_PROPERTIES: CLUSCTL_RESOURCE_CODES = 16777305i32; +pub const CLUSCTL_RESOURCE_GET_COMMON_PROPERTY_FMTS: CLUSCTL_RESOURCE_CODES = 16777317i32; +pub const CLUSCTL_RESOURCE_GET_CRYPTO_CHECKPOINTS: CLUSCTL_RESOURCE_CODES = 16777397i32; +pub const CLUSCTL_RESOURCE_GET_DNS_NAME: CLUSCTL_RESOURCE_CODES = 16777589i32; +pub const CLUSCTL_RESOURCE_GET_FAILURE_INFO: CLUSCTL_RESOURCE_CODES = 16777241i32; +pub const CLUSCTL_RESOURCE_GET_FLAGS: CLUSCTL_RESOURCE_CODES = 16777225i32; +pub const CLUSCTL_RESOURCE_GET_ID: CLUSCTL_RESOURCE_CODES = 16777273i32; +pub const CLUSCTL_RESOURCE_GET_INFRASTRUCTURE_SOFS_BUFFER: CLUSCTL_RESOURCE_CODES = 16788873i32; +pub const CLUSCTL_RESOURCE_GET_LOADBAL_PROCESS_LIST: CLUSCTL_RESOURCE_CODES = 16777417i32; +pub const CLUSCTL_RESOURCE_GET_NAME: CLUSCTL_RESOURCE_CODES = 16777257i32; +pub const CLUSCTL_RESOURCE_GET_NETWORK_NAME: CLUSCTL_RESOURCE_CODES = 16777577i32; +pub const CLUSCTL_RESOURCE_GET_NODES_IN_FD: CLUSCTL_RESOURCE_CODES = 16788961i32; +pub const CLUSCTL_RESOURCE_GET_OPERATION_CONTEXT: CLUSCTL_RESOURCE_CODES = 17834217i32; +pub const CLUSCTL_RESOURCE_GET_PRIVATE_PROPERTIES: CLUSCTL_RESOURCE_CODES = 16777345i32; +pub const CLUSCTL_RESOURCE_GET_PRIVATE_PROPERTY_FMTS: CLUSCTL_RESOURCE_CODES = 16777357i32; +pub const CLUSCTL_RESOURCE_GET_REGISTRY_CHECKPOINTS: CLUSCTL_RESOURCE_CODES = 16777385i32; +pub const CLUSCTL_RESOURCE_GET_REQUIRED_DEPENDENCIES: CLUSCTL_RESOURCE_CODES = 16777233i32; +pub const CLUSCTL_RESOURCE_GET_RESOURCE_TYPE: CLUSCTL_RESOURCE_CODES = 16777261i32; +pub const CLUSCTL_RESOURCE_GET_RO_COMMON_PROPERTIES: CLUSCTL_RESOURCE_CODES = 16777301i32; +pub const CLUSCTL_RESOURCE_GET_RO_PRIVATE_PROPERTIES: CLUSCTL_RESOURCE_CODES = 16777341i32; +pub const CLUSCTL_RESOURCE_GET_STATE_CHANGE_TIME: CLUSCTL_RESOURCE_CODES = 16788829i32; +pub const CLUSCTL_RESOURCE_INITIALIZE: CLUSCTL_RESOURCE_CODES = 22020170i32; +pub const CLUSCTL_RESOURCE_INSTALL_NODE: CLUSCTL_RESOURCE_CODES = 22020106i32; +pub const CLUSCTL_RESOURCE_IPADDRESS_RELEASE_LEASE: CLUSCTL_RESOURCE_CODES = 20971970i32; +pub const CLUSCTL_RESOURCE_IPADDRESS_RENEW_LEASE: CLUSCTL_RESOURCE_CODES = 20971966i32; +pub const CLUSCTL_RESOURCE_IS_QUORUM_BLOCKED: CLUSCTL_RESOURCE_CODES = 16777905i32; +pub const CLUSCTL_RESOURCE_JOINING_GROUP: CLUSCTL_RESOURCE_CODES = 22020186i32; +pub const CLUSCTL_RESOURCE_LEAVING_GROUP: CLUSCTL_RESOURCE_CODES = 22020182i32; +pub const CLUSCTL_RESOURCE_NETNAME_CREDS_NOTIFYCAM: CLUSCTL_RESOURCE_CODES = 22020202i32; +pub const CLUSCTL_RESOURCE_NETNAME_DELETE_CO: CLUSCTL_RESOURCE_CODES = 16777598i32; +pub const CLUSCTL_RESOURCE_NETNAME_GET_VIRTUAL_SERVER_TOKEN: CLUSCTL_RESOURCE_CODES = 16777581i32; +pub const CLUSCTL_RESOURCE_NETNAME_REGISTER_DNS_RECORDS: CLUSCTL_RESOURCE_CODES = 16777586i32; +pub const CLUSCTL_RESOURCE_NETNAME_REPAIR_VCO: CLUSCTL_RESOURCE_CODES = 16777613i32; +pub const CLUSCTL_RESOURCE_NETNAME_RESET_VCO: CLUSCTL_RESOURCE_CODES = 16777605i32; +pub const CLUSCTL_RESOURCE_NETNAME_SET_PWD_INFO: CLUSCTL_RESOURCE_CODES = 16777594i32; +pub const CLUSCTL_RESOURCE_NETNAME_SET_PWD_INFOEX: CLUSCTL_RESOURCE_CODES = 16778010i32; +pub const CLUSCTL_RESOURCE_NETNAME_VALIDATE_VCO: CLUSCTL_RESOURCE_CODES = 16777601i32; +pub const CLUSCTL_RESOURCE_NOTIFY_DRAIN_COMPLETE: CLUSCTL_RESOURCE_CODES = 17834289i32; +pub const CLUSCTL_RESOURCE_NOTIFY_OWNER_CHANGE: CLUSCTL_RESOURCE_CODES = 22028578i32; +pub const CLUSCTL_RESOURCE_NOTIFY_QUORUM_STATUS: CLUSCTL_RESOURCE_CODES = 22020222i32; +pub const CLUSCTL_RESOURCE_POOL_GET_DRIVE_INFO: CLUSCTL_RESOURCE_CODES = 16777909i32; +pub const CLUSCTL_RESOURCE_PREPARE_UPGRADE: CLUSCTL_RESOURCE_CODES = 20979946i32; +pub const CLUSCTL_RESOURCE_PROVIDER_STATE_CHANGE: CLUSCTL_RESOURCE_CODES = 22020178i32; +pub const CLUSCTL_RESOURCE_QUERY_DELETE: CLUSCTL_RESOURCE_CODES = 16777657i32; +pub const CLUSCTL_RESOURCE_QUERY_MAINTENANCE_MODE: CLUSCTL_RESOURCE_CODES = 16777697i32; +pub const CLUSCTL_RESOURCE_REMOVE_DEPENDENCY: CLUSCTL_RESOURCE_CODES = 22020118i32; +pub const CLUSCTL_RESOURCE_REMOVE_OWNER: CLUSCTL_RESOURCE_CODES = 22020126i32; +pub const CLUSCTL_RESOURCE_RLUA_GET_VIRTUAL_SERVER_TOKEN: CLUSCTL_RESOURCE_CODES = 16777581i32; +pub const CLUSCTL_RESOURCE_RLUA_SET_PWD_INFO: CLUSCTL_RESOURCE_CODES = 16777594i32; +pub const CLUSCTL_RESOURCE_RLUA_SET_PWD_INFOEX: CLUSCTL_RESOURCE_CODES = 16778010i32; +pub const CLUSCTL_RESOURCE_RW_MODIFY_NOOP: CLUSCTL_RESOURCE_CODES = 20972206i32; +pub const CLUSCTL_RESOURCE_SCALEOUT_COMMAND: CLUSCTL_RESOURCE_CODES = 20983190i32; +pub const CLUSCTL_RESOURCE_SCALEOUT_CONTROL: CLUSCTL_RESOURCE_CODES = 20983194i32; +pub const CLUSCTL_RESOURCE_SCALEOUT_GET_CLUSTERS: CLUSCTL_RESOURCE_CODES = 20983197i32; +pub const CLUSCTL_RESOURCE_SET_COMMON_PROPERTIES: CLUSCTL_RESOURCE_CODES = 20971614i32; +pub const CLUSCTL_RESOURCE_SET_CSV_MAINTENANCE_MODE: CLUSCTL_RESOURCE_CODES = 20972182i32; +pub const CLUSCTL_RESOURCE_SET_INFRASTRUCTURE_SOFS_BUFFER: CLUSCTL_RESOURCE_CODES = 20983182i32; +pub const CLUSCTL_RESOURCE_SET_MAINTENANCE_MODE: CLUSCTL_RESOURCE_CODES = 20972006i32; +pub const CLUSCTL_RESOURCE_SET_NAME: CLUSCTL_RESOURCE_CODES = 22020134i32; +pub const CLUSCTL_RESOURCE_SET_PRIVATE_PROPERTIES: CLUSCTL_RESOURCE_CODES = 20971654i32; +pub const CLUSCTL_RESOURCE_SET_SHARED_VOLUME_BACKUP_MODE: CLUSCTL_RESOURCE_CODES = 20972186i32; +pub const CLUSCTL_RESOURCE_STATE_CHANGE_REASON: CLUSCTL_RESOURCE_CODES = 22020174i32; +pub const CLUSCTL_RESOURCE_STATE_CHANGE_REASON_VERSION_1: u32 = 1u32; +pub const CLUSCTL_RESOURCE_STORAGE_GET_DIRTY: CLUSCTL_RESOURCE_CODES = 16777753i32; +pub const CLUSCTL_RESOURCE_STORAGE_GET_DISKID: CLUSCTL_RESOURCE_CODES = 16777733i32; +pub const CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO: CLUSCTL_RESOURCE_CODES = 16777617i32; +pub const CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO_EX: CLUSCTL_RESOURCE_CODES = 16777713i32; +pub const CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO_EX2: CLUSCTL_RESOURCE_CODES = 16777721i32; +pub const CLUSCTL_RESOURCE_STORAGE_GET_DISK_NUMBER_INFO: CLUSCTL_RESOURCE_CODES = 16777633i32; +pub const CLUSCTL_RESOURCE_STORAGE_GET_MOUNTPOINTS: CLUSCTL_RESOURCE_CODES = 16777745i32; +pub const CLUSCTL_RESOURCE_STORAGE_GET_SHARED_VOLUME_INFO: CLUSCTL_RESOURCE_CODES = 16777765i32; +pub const CLUSCTL_RESOURCE_STORAGE_GET_SHARED_VOLUME_PARTITION_NAMES: CLUSCTL_RESOURCE_CODES = 16777885i32; +pub const CLUSCTL_RESOURCE_STORAGE_GET_SHARED_VOLUME_STATES: CLUSCTL_RESOURCE_CODES = 20972194i32; +pub const CLUSCTL_RESOURCE_STORAGE_IS_PATH_VALID: CLUSCTL_RESOURCE_CODES = 16777625i32; +pub const CLUSCTL_RESOURCE_STORAGE_IS_SHARED_VOLUME: CLUSCTL_RESOURCE_CODES = 16777893i32; +pub const CLUSCTL_RESOURCE_STORAGE_RENAME_SHARED_VOLUME: CLUSCTL_RESOURCE_CODES = 16788950i32; +pub const CLUSCTL_RESOURCE_STORAGE_RENAME_SHARED_VOLUME_GUID: CLUSCTL_RESOURCE_CODES = 16788954i32; +pub const CLUSCTL_RESOURCE_STORAGE_SET_DRIVELETTER: CLUSCTL_RESOURCE_CODES = 20972010i32; +pub const CLUSCTL_RESOURCE_TYPE_CHECK_DRAIN_VETO: CLUSCTL_RESOURCE_TYPE_CODES = 34611501i32; +pub const CLUSCTL_RESOURCE_TYPE_CLUSTER_VERSION_CHANGED: CLUSCTL_RESOURCE_TYPE_CODES = 38797358i32; +pub const CLUSCTL_RESOURCE_TYPE_ENUM_COMMON_PROPERTIES: CLUSCTL_RESOURCE_TYPE_CODES = 33554513i32; +pub const CLUSCTL_RESOURCE_TYPE_ENUM_PRIVATE_PROPERTIES: CLUSCTL_RESOURCE_TYPE_CODES = 33554553i32; +pub const CLUSCTL_RESOURCE_TYPE_EVICT_NODE: CLUSCTL_RESOURCE_TYPE_CODES = 38797326i32; +pub const CLUSCTL_RESOURCE_TYPE_FIXUP_ON_UPGRADE: CLUSCTL_RESOURCE_TYPE_CODES = 38797362i32; +pub const CLUSCTL_RESOURCE_TYPE_GEN_APP_VALIDATE_DIRECTORY: CLUSCTL_RESOURCE_TYPE_CODES = 33555001i32; +pub const CLUSCTL_RESOURCE_TYPE_GEN_APP_VALIDATE_PATH: CLUSCTL_RESOURCE_TYPE_CODES = 33554993i32; +pub const CLUSCTL_RESOURCE_TYPE_GEN_SCRIPT_VALIDATE_PATH: CLUSCTL_RESOURCE_TYPE_CODES = 33554993i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_ARB_TIMEOUT: CLUSCTL_RESOURCE_TYPE_CODES = 33554453i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_CHARACTERISTICS: CLUSCTL_RESOURCE_TYPE_CODES = 33554437i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_CLASS_INFO: CLUSCTL_RESOURCE_TYPE_CODES = 33554445i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_COMMON_PROPERTIES: CLUSCTL_RESOURCE_TYPE_CODES = 33554521i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_COMMON_PROPERTY_FMTS: CLUSCTL_RESOURCE_TYPE_CODES = 33554533i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_COMMON_RESOURCE_PROPERTY_FMTS: CLUSCTL_RESOURCE_TYPE_CODES = 33554537i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_CRYPTO_CHECKPOINTS: CLUSCTL_RESOURCE_TYPE_CODES = 33554613i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_FLAGS: CLUSCTL_RESOURCE_TYPE_CODES = 33554441i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_PROPERTIES: CLUSCTL_RESOURCE_TYPE_CODES = 33554561i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_PROPERTY_FMTS: CLUSCTL_RESOURCE_TYPE_CODES = 33554573i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_RESOURCE_PROPERTY_FMTS: CLUSCTL_RESOURCE_TYPE_CODES = 33554577i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_REGISTRY_CHECKPOINTS: CLUSCTL_RESOURCE_TYPE_CODES = 33554601i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_REQUIRED_DEPENDENCIES: CLUSCTL_RESOURCE_TYPE_CODES = 33554449i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_RO_COMMON_PROPERTIES: CLUSCTL_RESOURCE_TYPE_CODES = 33554517i32; +pub const CLUSCTL_RESOURCE_TYPE_GET_RO_PRIVATE_PROPERTIES: CLUSCTL_RESOURCE_TYPE_CODES = 33554557i32; +pub const CLUSCTL_RESOURCE_TYPE_HOLD_IO: CLUSCTL_RESOURCE_TYPE_CODES = 38797374i32; +pub const CLUSCTL_RESOURCE_TYPE_INSTALL_NODE: CLUSCTL_RESOURCE_TYPE_CODES = 38797322i32; +pub const CLUSCTL_RESOURCE_TYPE_NETNAME_GET_OU_FOR_VCO: CLUSCTL_RESOURCE_TYPE_CODES = 37749358i32; +pub const CLUSCTL_RESOURCE_TYPE_NETNAME_VALIDATE_NETNAME: CLUSCTL_RESOURCE_TYPE_CODES = 33554997i32; +pub const CLUSCTL_RESOURCE_TYPE_NOTIFY_DRAIN_COMPLETE: CLUSCTL_RESOURCE_TYPE_CODES = 34611505i32; +pub const CLUSCTL_RESOURCE_TYPE_NOTIFY_MONITOR_SHUTTING_DOWN: CLUSCTL_RESOURCE_TYPE_CODES = 34603137i32; +pub const CLUSCTL_RESOURCE_TYPE_PREPARE_UPGRADE: CLUSCTL_RESOURCE_TYPE_CODES = 37757162i32; +pub const CLUSCTL_RESOURCE_TYPE_QUERY_DELETE: CLUSCTL_RESOURCE_TYPE_CODES = 33554873i32; +pub const CLUSCTL_RESOURCE_TYPE_REPLICATION_ADD_REPLICATION_GROUP: CLUSCTL_RESOURCE_TYPE_CODES = 33562946i32; +pub const CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_ELIGIBLE_LOGDISKS: CLUSCTL_RESOURCE_TYPE_CODES = 33562953i32; +pub const CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_ELIGIBLE_SOURCE_DATADISKS: CLUSCTL_RESOURCE_TYPE_CODES = 33562961i32; +pub const CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_ELIGIBLE_TARGET_DATADISKS: CLUSCTL_RESOURCE_TYPE_CODES = 33562957i32; +pub const CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_LOG_INFO: CLUSCTL_RESOURCE_TYPE_CODES = 33562949i32; +pub const CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_LOG_VOLUME: CLUSCTL_RESOURCE_TYPE_CODES = 33562973i32; +pub const CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_REPLICATED_DISKS: CLUSCTL_RESOURCE_TYPE_CODES = 33562965i32; +pub const CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_REPLICATED_PARTITION_INFO: CLUSCTL_RESOURCE_TYPE_CODES = 33562981i32; +pub const CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_REPLICA_VOLUMES: CLUSCTL_RESOURCE_TYPE_CODES = 33562969i32; +pub const CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_RESOURCE_GROUP: CLUSCTL_RESOURCE_TYPE_CODES = 33562977i32; +pub const CLUSCTL_RESOURCE_TYPE_RESUME_IO: CLUSCTL_RESOURCE_TYPE_CODES = 38797378i32; +pub const CLUSCTL_RESOURCE_TYPE_SET_COMMON_PROPERTIES: CLUSCTL_RESOURCE_TYPE_CODES = 37748830i32; +pub const CLUSCTL_RESOURCE_TYPE_SET_PRIVATE_PROPERTIES: CLUSCTL_RESOURCE_TYPE_CODES = 37748870i32; +pub const CLUSCTL_RESOURCE_TYPE_STARTING_PHASE1: CLUSCTL_RESOURCE_TYPE_CODES = 38797366i32; +pub const CLUSCTL_RESOURCE_TYPE_STARTING_PHASE2: CLUSCTL_RESOURCE_TYPE_CODES = 38797370i32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS: CLUSCTL_RESOURCE_TYPE_CODES = 33554837i32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS_EX: CLUSCTL_RESOURCE_TYPE_CODES = 33554933i32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS_EX2_FLAG_ADD_VOLUME_INFO: u32 = 1u32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS_EX2_FLAG_FILTER_BY_POOL: u32 = 2u32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS_EX2_FLAG_INCLUDE_NON_SHARED_DISKS: u32 = 4u32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS_EX2_INT: CLUSCTL_RESOURCE_TYPE_CODES = 33562593i32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_GET_DISKID: CLUSCTL_RESOURCE_TYPE_CODES = 33554949i32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_GET_DRIVELETTERS: CLUSCTL_RESOURCE_TYPE_CODES = 33554925i32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_GET_RESOURCEID: CLUSCTL_RESOURCE_TYPE_CODES = 33554989i32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_IS_CLUSTERABLE: CLUSCTL_RESOURCE_TYPE_CODES = 33554953i32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_IS_CSV_FILE: CLUSCTL_RESOURCE_TYPE_CODES = 16777769i32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_REMAP_DRIVELETTER: CLUSCTL_RESOURCE_TYPE_CODES = 33554945i32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_REMOVE_VM_OWNERSHIP: CLUSCTL_RESOURCE_TYPE_CODES = 37749262i32; +pub const CLUSCTL_RESOURCE_TYPE_STORAGE_SYNC_CLUSDISK_DB: CLUSCTL_RESOURCE_TYPE_CODES = 37749150i32; +pub const CLUSCTL_RESOURCE_TYPE_UNKNOWN: CLUSCTL_RESOURCE_TYPE_CODES = 33554432i32; +pub const CLUSCTL_RESOURCE_TYPE_UPGRADE_COMPLETED: CLUSCTL_RESOURCE_TYPE_CODES = 37757166i32; +pub const CLUSCTL_RESOURCE_TYPE_VALIDATE_COMMON_PROPERTIES: CLUSCTL_RESOURCE_TYPE_CODES = 33554529i32; +pub const CLUSCTL_RESOURCE_TYPE_VALIDATE_PRIVATE_PROPERTIES: CLUSCTL_RESOURCE_TYPE_CODES = 33554569i32; +pub const CLUSCTL_RESOURCE_TYPE_WITNESS_VALIDATE_PATH: CLUSCTL_RESOURCE_TYPE_CODES = 33554993i32; +pub const CLUSCTL_RESOURCE_UNDELETE: CLUSCTL_RESOURCE_CODES = 22020230i32; +pub const CLUSCTL_RESOURCE_UNKNOWN: CLUSCTL_RESOURCE_CODES = 16777216i32; +pub const CLUSCTL_RESOURCE_UPGRADE_COMPLETED: CLUSCTL_RESOURCE_CODES = 20979950i32; +pub const CLUSCTL_RESOURCE_UPGRADE_DLL: CLUSCTL_RESOURCE_CODES = 20971706i32; +pub const CLUSCTL_RESOURCE_VALIDATE_CHANGE_GROUP: CLUSCTL_RESOURCE_CODES = 17834277i32; +pub const CLUSCTL_RESOURCE_VALIDATE_COMMON_PROPERTIES: CLUSCTL_RESOURCE_CODES = 16777313i32; +pub const CLUSCTL_RESOURCE_VALIDATE_PRIVATE_PROPERTIES: CLUSCTL_RESOURCE_CODES = 16777353i32; +pub const CLUSGROUPSET_STATUS_APPLICATION_READY: u64 = 8u64; +pub const CLUSGROUPSET_STATUS_GROUPS_ONLINE: u64 = 2u64; +pub const CLUSGROUPSET_STATUS_GROUPS_PENDING: u64 = 1u64; +pub const CLUSGROUPSET_STATUS_OS_HEARTBEAT: u64 = 4u64; +pub const CLUSGRP_STATUS_APPLICATION_READY: u64 = 1024u64; +pub const CLUSGRP_STATUS_EMBEDDED_FAILURE: u64 = 32u64; +pub const CLUSGRP_STATUS_LOCKED_MODE: u64 = 1u64; +pub const CLUSGRP_STATUS_NETWORK_FAILURE: u64 = 128u64; +pub const CLUSGRP_STATUS_OFFLINE_DUE_TO_ANTIAFFINITY_CONFLICT: u64 = 64u64; +pub const CLUSGRP_STATUS_OFFLINE_NOT_LOCAL_DISK_OWNER: u64 = 2048u64; +pub const CLUSGRP_STATUS_OS_HEARTBEAT: u64 = 512u64; +pub const CLUSGRP_STATUS_PHYSICAL_RESOURCES_LACKING: u64 = 8u64; +pub const CLUSGRP_STATUS_PREEMPTED: u64 = 2u64; +pub const CLUSGRP_STATUS_UNMONITORED: u64 = 256u64; +pub const CLUSGRP_STATUS_WAITING_FOR_DEPENDENCIES: u64 = 4096u64; +pub const CLUSGRP_STATUS_WAITING_IN_QUEUE_FOR_MOVE: u64 = 4u64; +pub const CLUSGRP_STATUS_WAITING_TO_START: u64 = 16u64; +pub const CLUSPROP_FORMAT_BINARY: CLUSTER_PROPERTY_FORMAT = 1i32; +pub const CLUSPROP_FORMAT_DWORD: CLUSTER_PROPERTY_FORMAT = 2i32; +pub const CLUSPROP_FORMAT_EXPANDED_SZ: CLUSTER_PROPERTY_FORMAT = 8i32; +pub const CLUSPROP_FORMAT_EXPAND_SZ: CLUSTER_PROPERTY_FORMAT = 4i32; +pub const CLUSPROP_FORMAT_FILETIME: CLUSTER_PROPERTY_FORMAT = 12i32; +pub const CLUSPROP_FORMAT_LARGE_INTEGER: CLUSTER_PROPERTY_FORMAT = 10i32; +pub const CLUSPROP_FORMAT_LONG: CLUSTER_PROPERTY_FORMAT = 7i32; +pub const CLUSPROP_FORMAT_MULTI_SZ: CLUSTER_PROPERTY_FORMAT = 5i32; +pub const CLUSPROP_FORMAT_PROPERTY_LIST: CLUSTER_PROPERTY_FORMAT = 14i32; +pub const CLUSPROP_FORMAT_SECURITY_DESCRIPTOR: CLUSTER_PROPERTY_FORMAT = 9i32; +pub const CLUSPROP_FORMAT_SZ: CLUSTER_PROPERTY_FORMAT = 3i32; +pub const CLUSPROP_FORMAT_ULARGE_INTEGER: CLUSTER_PROPERTY_FORMAT = 6i32; +pub const CLUSPROP_FORMAT_UNKNOWN: CLUSTER_PROPERTY_FORMAT = 0i32; +pub const CLUSPROP_FORMAT_USER: CLUSTER_PROPERTY_FORMAT = 32768i32; +pub const CLUSPROP_FORMAT_VALUE_LIST: CLUSTER_PROPERTY_FORMAT = 13i32; +pub const CLUSPROP_FORMAT_WORD: CLUSTER_PROPERTY_FORMAT = 11i32; +pub const CLUSPROP_IPADDR_ENABLENETBIOS_DISABLED: CLUSPROP_IPADDR_ENABLENETBIOS = 0i32; +pub const CLUSPROP_IPADDR_ENABLENETBIOS_ENABLED: CLUSPROP_IPADDR_ENABLENETBIOS = 1i32; +pub const CLUSPROP_IPADDR_ENABLENETBIOS_TRACK_NIC: CLUSPROP_IPADDR_ENABLENETBIOS = 2i32; +pub const CLUSPROP_PIFLAG_DEFAULT_QUORUM: CLUSPROP_PIFLAGS = 8i32; +pub const CLUSPROP_PIFLAG_ENCRYPTION_ENABLED: CLUSPROP_PIFLAGS = 32i32; +pub const CLUSPROP_PIFLAG_RAW: CLUSPROP_PIFLAGS = 64i32; +pub const CLUSPROP_PIFLAG_REMOVABLE: CLUSPROP_PIFLAGS = 2i32; +pub const CLUSPROP_PIFLAG_STICKY: CLUSPROP_PIFLAGS = 1i32; +pub const CLUSPROP_PIFLAG_UNKNOWN: CLUSPROP_PIFLAGS = -2147483648i32; +pub const CLUSPROP_PIFLAG_USABLE: CLUSPROP_PIFLAGS = 4i32; +pub const CLUSPROP_PIFLAG_USABLE_FOR_CSV: CLUSPROP_PIFLAGS = 16i32; +pub const CLUSPROP_SYNTAX_DISK_GUID: CLUSTER_PROPERTY_SYNTAX = 720899u32; +pub const CLUSPROP_SYNTAX_DISK_NUMBER: CLUSTER_PROPERTY_SYNTAX = 458754u32; +pub const CLUSPROP_SYNTAX_DISK_SERIALNUMBER: CLUSTER_PROPERTY_SYNTAX = 655363u32; +pub const CLUSPROP_SYNTAX_DISK_SIGNATURE: CLUSTER_PROPERTY_SYNTAX = 327682u32; +pub const CLUSPROP_SYNTAX_DISK_SIZE: CLUSTER_PROPERTY_SYNTAX = 786438u32; +pub const CLUSPROP_SYNTAX_ENDMARK: CLUSTER_PROPERTY_SYNTAX = 0u32; +pub const CLUSPROP_SYNTAX_FTSET_INFO: CLUSTER_PROPERTY_SYNTAX = 589825u32; +pub const CLUSPROP_SYNTAX_LIST_VALUE_BINARY: CLUSTER_PROPERTY_SYNTAX = 65537u32; +pub const CLUSPROP_SYNTAX_LIST_VALUE_DWORD: CLUSTER_PROPERTY_SYNTAX = 65538u32; +pub const CLUSPROP_SYNTAX_LIST_VALUE_EXPANDED_SZ: CLUSTER_PROPERTY_SYNTAX = 65544u32; +pub const CLUSPROP_SYNTAX_LIST_VALUE_EXPAND_SZ: CLUSTER_PROPERTY_SYNTAX = 65540u32; +pub const CLUSPROP_SYNTAX_LIST_VALUE_FILETIME: CLUSTER_PROPERTY_SYNTAX = 65548u32; +pub const CLUSPROP_SYNTAX_LIST_VALUE_LARGE_INTEGER: CLUSTER_PROPERTY_SYNTAX = 65546u32; +pub const CLUSPROP_SYNTAX_LIST_VALUE_LONG: CLUSTER_PROPERTY_SYNTAX = 65543u32; +pub const CLUSPROP_SYNTAX_LIST_VALUE_MULTI_SZ: CLUSTER_PROPERTY_SYNTAX = 65541u32; +pub const CLUSPROP_SYNTAX_LIST_VALUE_PROPERTY_LIST: CLUSTER_PROPERTY_SYNTAX = 65550u32; +pub const CLUSPROP_SYNTAX_LIST_VALUE_SECURITY_DESCRIPTOR: CLUSTER_PROPERTY_SYNTAX = 65545u32; +pub const CLUSPROP_SYNTAX_LIST_VALUE_SZ: CLUSTER_PROPERTY_SYNTAX = 65539u32; +pub const CLUSPROP_SYNTAX_LIST_VALUE_ULARGE_INTEGER: CLUSTER_PROPERTY_SYNTAX = 65542u32; +pub const CLUSPROP_SYNTAX_LIST_VALUE_WORD: CLUSTER_PROPERTY_SYNTAX = 65547u32; +pub const CLUSPROP_SYNTAX_NAME: CLUSTER_PROPERTY_SYNTAX = 262147u32; +pub const CLUSPROP_SYNTAX_PARTITION_INFO: CLUSTER_PROPERTY_SYNTAX = 524289u32; +pub const CLUSPROP_SYNTAX_PARTITION_INFO_EX: CLUSTER_PROPERTY_SYNTAX = 851969u32; +pub const CLUSPROP_SYNTAX_PARTITION_INFO_EX2: CLUSTER_PROPERTY_SYNTAX = 917505u32; +pub const CLUSPROP_SYNTAX_RESCLASS: CLUSTER_PROPERTY_SYNTAX = 131074u32; +pub const CLUSPROP_SYNTAX_SCSI_ADDRESS: CLUSTER_PROPERTY_SYNTAX = 393218u32; +pub const CLUSPROP_SYNTAX_STORAGE_DEVICE_ID_DESCRIPTOR: CLUSTER_PROPERTY_SYNTAX = 983041u32; +pub const CLUSPROP_TYPE_DISK_GUID: CLUSTER_PROPERTY_TYPE = 11i32; +pub const CLUSPROP_TYPE_DISK_NUMBER: CLUSTER_PROPERTY_TYPE = 7i32; +pub const CLUSPROP_TYPE_DISK_SERIALNUMBER: CLUSTER_PROPERTY_TYPE = 10i32; +pub const CLUSPROP_TYPE_DISK_SIZE: CLUSTER_PROPERTY_TYPE = 12i32; +pub const CLUSPROP_TYPE_ENDMARK: CLUSTER_PROPERTY_TYPE = 0i32; +pub const CLUSPROP_TYPE_FTSET_INFO: CLUSTER_PROPERTY_TYPE = 9i32; +pub const CLUSPROP_TYPE_LIST_VALUE: CLUSTER_PROPERTY_TYPE = 1i32; +pub const CLUSPROP_TYPE_NAME: CLUSTER_PROPERTY_TYPE = 4i32; +pub const CLUSPROP_TYPE_PARTITION_INFO: CLUSTER_PROPERTY_TYPE = 8i32; +pub const CLUSPROP_TYPE_PARTITION_INFO_EX: CLUSTER_PROPERTY_TYPE = 13i32; +pub const CLUSPROP_TYPE_PARTITION_INFO_EX2: CLUSTER_PROPERTY_TYPE = 14i32; +pub const CLUSPROP_TYPE_RESCLASS: CLUSTER_PROPERTY_TYPE = 2i32; +pub const CLUSPROP_TYPE_RESERVED1: CLUSTER_PROPERTY_TYPE = 3i32; +pub const CLUSPROP_TYPE_SCSI_ADDRESS: CLUSTER_PROPERTY_TYPE = 6i32; +pub const CLUSPROP_TYPE_SIGNATURE: CLUSTER_PROPERTY_TYPE = 5i32; +pub const CLUSPROP_TYPE_STORAGE_DEVICE_ID_DESCRIPTOR: CLUSTER_PROPERTY_TYPE = 15i32; +pub const CLUSPROP_TYPE_UNKNOWN: CLUSTER_PROPERTY_TYPE = -1i32; +pub const CLUSPROP_TYPE_USER: CLUSTER_PROPERTY_TYPE = 32768i32; +pub const CLUSREG_COMMAND_NONE: CLUSTER_REG_COMMAND = 0i32; +pub const CLUSREG_CONDITION_EXISTS: CLUSTER_REG_COMMAND = 11i32; +pub const CLUSREG_CONDITION_IS_EQUAL: CLUSTER_REG_COMMAND = 13i32; +pub const CLUSREG_CONDITION_IS_GREATER_THAN: CLUSTER_REG_COMMAND = 15i32; +pub const CLUSREG_CONDITION_IS_LESS_THAN: CLUSTER_REG_COMMAND = 16i32; +pub const CLUSREG_CONDITION_IS_NOT_EQUAL: CLUSTER_REG_COMMAND = 14i32; +pub const CLUSREG_CONDITION_KEY_EXISTS: CLUSTER_REG_COMMAND = 17i32; +pub const CLUSREG_CONDITION_KEY_NOT_EXISTS: CLUSTER_REG_COMMAND = 18i32; +pub const CLUSREG_CONDITION_NOT_EXISTS: CLUSTER_REG_COMMAND = 12i32; +pub const CLUSREG_CONTROL_COMMAND: CLUSTER_REG_COMMAND = 10i32; +pub const CLUSREG_CREATE_KEY: CLUSTER_REG_COMMAND = 2i32; +pub const CLUSREG_DATABASE_ISOLATE_READ: u32 = 2u32; +pub const CLUSREG_DATABASE_SYNC_WRITE_TO_ALL_NODES: u32 = 1u32; +pub const CLUSREG_DELETE_KEY: CLUSTER_REG_COMMAND = 3i32; +pub const CLUSREG_DELETE_VALUE: CLUSTER_REG_COMMAND = 4i32; +pub const CLUSREG_KEYNAME_OBJECTGUIDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ObjectGUIDs"); +pub const CLUSREG_LAST_COMMAND: CLUSTER_REG_COMMAND = 19i32; +pub const CLUSREG_NAME_AFFINITYRULE_ENABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Enabled"); +pub const CLUSREG_NAME_AFFINITYRULE_GROUPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Groups"); +pub const CLUSREG_NAME_AFFINITYRULE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const CLUSREG_NAME_AFFINITYRULE_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RuleType"); +pub const CLUSREG_NAME_CLOUDWITNESS_ACCOUNT_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AccountName"); +pub const CLUSREG_NAME_CLOUDWITNESS_CONTAINER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ContainerName"); +pub const CLUSREG_NAME_CLOUDWITNESS_ENDPOINT_INFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EndpointInfo"); +pub const CLUSREG_NAME_CLOUDWITNESS_PRIMARY_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrimaryKey"); +pub const CLUSREG_NAME_CLOUDWITNESS_PRIMARY_TOKEN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrimaryToken"); +pub const CLUSREG_NAME_CLUS_DEFAULT_NETWORK_ROLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultNetworkRole"); +pub const CLUSREG_NAME_CLUS_DESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const CLUSREG_NAME_CLUS_SD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Security Descriptor"); +pub const CLUSREG_NAME_CROSS_SITE_DELAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CrossSiteDelay"); +pub const CLUSREG_NAME_CROSS_SITE_THRESHOLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CrossSiteThreshold"); +pub const CLUSREG_NAME_CROSS_SUBNET_DELAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CrossSubnetDelay"); +pub const CLUSREG_NAME_CROSS_SUBNET_THRESHOLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CrossSubnetThreshold"); +pub const CLUSREG_NAME_CSV_BLOCK_CACHE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BlockCacheSize"); +pub const CLUSREG_NAME_CSV_MDS_SD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SharedVolumeSecurityDescriptor"); +pub const CLUSREG_NAME_DATABASE_READ_WRITE_MODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DatabaseReadWriteMode"); +pub const CLUSREG_NAME_DDA_DEVICE_ALLOCATIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DdaDeviceAllocations"); +pub const CLUSREG_NAME_DHCP_BACKUP_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BackupPath"); +pub const CLUSREG_NAME_DHCP_DATABASE_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DatabasePath"); +pub const CLUSREG_NAME_DRAIN_ON_SHUTDOWN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DrainOnShutdown"); +pub const CLUSREG_NAME_ENABLED_EVENT_LOGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnabledEventLogs"); +pub const CLUSREG_NAME_FAILOVER_MOVE_MIGRATION_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FailoverMoveMigrationType"); +pub const CLUSREG_NAME_FILESHR_CA_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CATimeout"); +pub const CLUSREG_NAME_FILESHR_HIDE_SUBDIR_SHARES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HideSubDirShares"); +pub const CLUSREG_NAME_FILESHR_IS_DFS_ROOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsDfsRoot"); +pub const CLUSREG_NAME_FILESHR_MAX_USERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxUsers"); +pub const CLUSREG_NAME_FILESHR_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Path"); +pub const CLUSREG_NAME_FILESHR_QOS_FLOWSCOPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("QosFlowScope"); +pub const CLUSREG_NAME_FILESHR_QOS_POLICYID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("QosPolicyId"); +pub const CLUSREG_NAME_FILESHR_REMARK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Remark"); +pub const CLUSREG_NAME_FILESHR_SD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Security Descriptor"); +pub const CLUSREG_NAME_FILESHR_SERVER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServerName"); +pub const CLUSREG_NAME_FILESHR_SHARE_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShareFlags"); +pub const CLUSREG_NAME_FILESHR_SHARE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShareName"); +pub const CLUSREG_NAME_FILESHR_SHARE_SUBDIRS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShareSubDirs"); +pub const CLUSREG_NAME_FIXQUORUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FixQuorum"); +pub const CLUSREG_NAME_FSWITNESS_ARB_DELAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ArbitrationDelay"); +pub const CLUSREG_NAME_FSWITNESS_IMPERSONATE_CNO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ImpersonateCNO"); +pub const CLUSREG_NAME_FSWITNESS_SHARE_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SharePath"); +pub const CLUSREG_NAME_FUNCTIONAL_LEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClusterFunctionalLevel"); +pub const CLUSREG_NAME_GENAPP_COMMAND_LINE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CommandLine"); +pub const CLUSREG_NAME_GENAPP_CURRENT_DIRECTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentDirectory"); +pub const CLUSREG_NAME_GENAPP_USE_NETWORK_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UseNetworkName"); +pub const CLUSREG_NAME_GENSCRIPT_SCRIPT_FILEPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScriptFilepath"); +pub const CLUSREG_NAME_GENSVC_SERVICE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServiceName"); +pub const CLUSREG_NAME_GENSVC_STARTUP_PARAMS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StartupParameters"); +pub const CLUSREG_NAME_GENSVC_USE_NETWORK_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UseNetworkName"); +pub const CLUSREG_NAME_GPUP_DEVICE_ALLOCATIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GpupDeviceAllocations"); +pub const CLUSREG_NAME_GROUPSET_AVAILABILITY_SET_INDEX_TO_NODE_MAPPING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NodeDomainInfo"); +pub const CLUSREG_NAME_GROUPSET_FAULT_DOMAINS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FaultDomains"); +pub const CLUSREG_NAME_GROUPSET_IS_AVAILABILITY_SET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsAvailabilitySet"); +pub const CLUSREG_NAME_GROUPSET_IS_GLOBAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsGlobal"); +pub const CLUSREG_NAME_GROUPSET_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const CLUSREG_NAME_GROUPSET_RESERVE_NODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReserveSpareNode"); +pub const CLUSREG_NAME_GROUPSET_STARTUP_COUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StartupCount"); +pub const CLUSREG_NAME_GROUPSET_STARTUP_DELAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StartupDelay"); +pub const CLUSREG_NAME_GROUPSET_STARTUP_SETTING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StartupSetting"); +pub const CLUSREG_NAME_GROUPSET_STATUS_INFORMATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StatusInformation"); +pub const CLUSREG_NAME_GROUPSET_UPDATE_DOMAINS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UpdateDomains"); +pub const CLUSREG_NAME_GROUP_DEPENDENCY_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GroupDependencyTimeout"); +pub const CLUSREG_NAME_GRP_ANTI_AFFINITY_CLASS_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AntiAffinityClassNames"); +pub const CLUSREG_NAME_GRP_CCF_EPOCH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CCFEpoch"); +pub const CLUSREG_NAME_GRP_CCF_EPOCH_HIGH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CCFEpochHigh"); +pub const CLUSREG_NAME_GRP_COLD_START_SETTING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ColdStartSetting"); +pub const CLUSREG_NAME_GRP_DEFAULT_OWNER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultOwner"); +pub const CLUSREG_NAME_GRP_DESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const CLUSREG_NAME_GRP_FAILBACK_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoFailbackType"); +pub const CLUSREG_NAME_GRP_FAILBACK_WIN_END: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FailbackWindowEnd"); +pub const CLUSREG_NAME_GRP_FAILBACK_WIN_START: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FailbackWindowStart"); +pub const CLUSREG_NAME_GRP_FAILOVER_PERIOD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FailoverPeriod"); +pub const CLUSREG_NAME_GRP_FAILOVER_THRESHOLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FailoverThreshold"); +pub const CLUSREG_NAME_GRP_FAULT_DOMAIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FaultDomain"); +pub const CLUSREG_NAME_GRP_LOCK_MOVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LockedFromMoving"); +pub const CLUSREG_NAME_GRP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const CLUSREG_NAME_GRP_PERSISTENT_STATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersistentState"); +pub const CLUSREG_NAME_GRP_PLACEMENT_OPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PlacementOptions"); +pub const CLUSREG_NAME_GRP_PREFERRED_SITE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PreferredSite"); +pub const CLUSREG_NAME_GRP_PRIORITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Priority"); +pub const CLUSREG_NAME_GRP_RESILIENCY_PERIOD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResiliencyPeriod"); +pub const CLUSREG_NAME_GRP_START_DELAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GroupStartDelay"); +pub const CLUSREG_NAME_GRP_STATUS_INFORMATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StatusInformation"); +pub const CLUSREG_NAME_GRP_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GroupType"); +pub const CLUSREG_NAME_GRP_UPDATE_DOMAIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UpdateDomain"); +pub const CLUSREG_NAME_IGNORE_PERSISTENT_STATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IgnorePersistentStateOnStartup"); +pub const CLUSREG_NAME_IPADDR_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Address"); +pub const CLUSREG_NAME_IPADDR_DHCP_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DhcpAddress"); +pub const CLUSREG_NAME_IPADDR_DHCP_SERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DhcpServer"); +pub const CLUSREG_NAME_IPADDR_DHCP_SUBNET_MASK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DhcpSubnetMask"); +pub const CLUSREG_NAME_IPADDR_ENABLE_DHCP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableDhcp"); +pub const CLUSREG_NAME_IPADDR_ENABLE_NETBIOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableNetBIOS"); +pub const CLUSREG_NAME_IPADDR_LEASE_OBTAINED_TIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LeaseObtainedTime"); +pub const CLUSREG_NAME_IPADDR_LEASE_TERMINATES_TIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LeaseExpiresTime"); +pub const CLUSREG_NAME_IPADDR_NETWORK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Network"); +pub const CLUSREG_NAME_IPADDR_OVERRIDE_ADDRMATCH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OverrideAddressMatch"); +pub const CLUSREG_NAME_IPADDR_PROBE_FAILURE_THRESHOLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProbeFailureThreshold"); +pub const CLUSREG_NAME_IPADDR_PROBE_PORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProbePort"); +pub const CLUSREG_NAME_IPADDR_SHARED_NETNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SharedNetname"); +pub const CLUSREG_NAME_IPADDR_SUBNET_MASK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SubnetMask"); +pub const CLUSREG_NAME_IPADDR_T1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("T1"); +pub const CLUSREG_NAME_IPADDR_T2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("T2"); +pub const CLUSREG_NAME_IPV6_NATIVE_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Address"); +pub const CLUSREG_NAME_IPV6_NATIVE_NETWORK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Network"); +pub const CLUSREG_NAME_IPV6_NATIVE_PREFIX_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrefixLength"); +pub const CLUSREG_NAME_IPV6_TUNNEL_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Address"); +pub const CLUSREG_NAME_IPV6_TUNNEL_TUNNELTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TunnelType"); +pub const CLUSREG_NAME_LAST_RECENT_EVENTS_RESET_TIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RecentEventsResetTime"); +pub const CLUSREG_NAME_LOG_FILE_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogFilePath"); +pub const CLUSREG_NAME_MESSAGE_BUFFER_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MessageBufferLength"); +pub const CLUSREG_NAME_MIXED_MODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MixedMode"); +pub const CLUSREG_NAME_NETFT_IPSEC_ENABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NetftIPSecEnabled"); +pub const CLUSREG_NAME_NETIFACE_ADAPTER_ID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AdapterId"); +pub const CLUSREG_NAME_NETIFACE_ADAPTER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Adapter"); +pub const CLUSREG_NAME_NETIFACE_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Address"); +pub const CLUSREG_NAME_NETIFACE_DESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const CLUSREG_NAME_NETIFACE_DHCP_ENABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DhcpEnabled"); +pub const CLUSREG_NAME_NETIFACE_IPV4_ADDRESSES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IPv4Addresses"); +pub const CLUSREG_NAME_NETIFACE_IPV6_ADDRESSES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IPv6Addresses"); +pub const CLUSREG_NAME_NETIFACE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const CLUSREG_NAME_NETIFACE_NETWORK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Network"); +pub const CLUSREG_NAME_NETIFACE_NODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Node"); +pub const CLUSREG_NAME_NETNAME_AD_AWARE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ADAware"); +pub const CLUSREG_NAME_NETNAME_ALIASES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Aliases"); +pub const CLUSREG_NAME_NETNAME_CONTAINERGUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptoContainerGUID"); +pub const CLUSREG_NAME_NETNAME_CREATING_DC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CreatingDC"); +pub const CLUSREG_NAME_NETNAME_DNN_DISABLE_CLONES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableClones"); +pub const CLUSREG_NAME_NETNAME_DNS_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DnsName"); +pub const CLUSREG_NAME_NETNAME_DNS_SUFFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DnsSuffix"); +pub const CLUSREG_NAME_NETNAME_EXCLUDE_NETWORKS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExcludeNetworks"); +pub const CLUSREG_NAME_NETNAME_HOST_TTL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HostRecordTTL"); +pub const CLUSREG_NAME_NETNAME_IN_USE_NETWORKS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InUseNetworks"); +pub const CLUSREG_NAME_NETNAME_LAST_DNS_UPDATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastDNSUpdateTime"); +pub const CLUSREG_NAME_NETNAME_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const CLUSREG_NAME_NETNAME_OBJECT_ID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ObjectGUID"); +pub const CLUSREG_NAME_NETNAME_PUBLISH_PTR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PublishPTRRecords"); +pub const CLUSREG_NAME_NETNAME_REGISTER_ALL_IP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RegisterAllProvidersIP"); +pub const CLUSREG_NAME_NETNAME_REMAP_PIPE_NAMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RemapPipeNames"); +pub const CLUSREG_NAME_NETNAME_REMOVEVCO_ONDELETE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeleteVcoOnResCleanup"); +pub const CLUSREG_NAME_NETNAME_RESOURCE_DATA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResourceData"); +pub const CLUSREG_NAME_NETNAME_STATUS_DNS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StatusDNS"); +pub const CLUSREG_NAME_NETNAME_STATUS_KERBEROS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StatusKerberos"); +pub const CLUSREG_NAME_NETNAME_STATUS_NETBIOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StatusNetBIOS"); +pub const CLUSREG_NAME_NETNAME_VCO_CONTAINER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VcoContainer"); +pub const CLUSREG_NAME_NET_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Address"); +pub const CLUSREG_NAME_NET_ADDRESS_MASK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddressMask"); +pub const CLUSREG_NAME_NET_AUTOMETRIC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoMetric"); +pub const CLUSREG_NAME_NET_DESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const CLUSREG_NAME_NET_IPV4_ADDRESSES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IPv4Addresses"); +pub const CLUSREG_NAME_NET_IPV4_PREFIXLENGTHS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IPv4PrefixLengths"); +pub const CLUSREG_NAME_NET_IPV6_ADDRESSES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IPv6Addresses"); +pub const CLUSREG_NAME_NET_IPV6_PREFIXLENGTHS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IPv6PrefixLengths"); +pub const CLUSREG_NAME_NET_METRIC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Metric"); +pub const CLUSREG_NAME_NET_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const CLUSREG_NAME_NET_RDMA_CAPABLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RdmaCapable"); +pub const CLUSREG_NAME_NET_ROLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Role"); +pub const CLUSREG_NAME_NET_RSS_CAPABLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RssCapable"); +pub const CLUSREG_NAME_NET_SPEED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LinkSpeed"); +pub const CLUSREG_NAME_NODE_BUILD_NUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BuildNumber"); +pub const CLUSREG_NAME_NODE_CSDVERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CSDVersion"); +pub const CLUSREG_NAME_NODE_DESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const CLUSREG_NAME_NODE_DRAIN_STATUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NodeDrainStatus"); +pub const CLUSREG_NAME_NODE_DRAIN_TARGET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NodeDrainTarget"); +pub const CLUSREG_NAME_NODE_DYNAMIC_WEIGHT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DynamicWeight"); +pub const CLUSREG_NAME_NODE_FAULT_DOMAIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FaultDomain"); +pub const CLUSREG_NAME_NODE_FDID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FaultDomainId"); +pub const CLUSREG_NAME_NODE_HIGHEST_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NodeHighestVersion"); +pub const CLUSREG_NAME_NODE_IS_PRIMARY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsPrimary"); +pub const CLUSREG_NAME_NODE_LOWEST_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NodeLowestVersion"); +pub const CLUSREG_NAME_NODE_MAJOR_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MajorVersion"); +pub const CLUSREG_NAME_NODE_MANUFACTURER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Manufacturer"); +pub const CLUSREG_NAME_NODE_MINOR_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MinorVersion"); +pub const CLUSREG_NAME_NODE_MODEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Model"); +pub const CLUSREG_NAME_NODE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NodeName"); +pub const CLUSREG_NAME_NODE_NEEDS_PQ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NeedsPreventQuorum"); +pub const CLUSREG_NAME_NODE_SERIALNUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SerialNumber"); +pub const CLUSREG_NAME_NODE_STATUS_INFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StatusInformation"); +pub const CLUSREG_NAME_NODE_UNIQUEID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UniqueID"); +pub const CLUSREG_NAME_NODE_WEIGHT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NodeWeight"); +pub const CLUSREG_NAME_PHYSDISK_CSVBLOCKCACHE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableBlockCache"); +pub const CLUSREG_NAME_PHYSDISK_CSVSNAPSHOTAGELIMIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SnapshotAgeLimit"); +pub const CLUSREG_NAME_PHYSDISK_CSVSNAPSHOTDIFFAREASIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SnapshotDiffSize"); +pub const CLUSREG_NAME_PHYSDISK_CSVWRITETHROUGH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CsvEnforceWriteThrough"); +pub const CLUSREG_NAME_PHYSDISK_DISKARBINTERVAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskArbInterval"); +pub const CLUSREG_NAME_PHYSDISK_DISKARBTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskArbType"); +pub const CLUSREG_NAME_PHYSDISK_DISKGUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskGuid"); +pub const CLUSREG_NAME_PHYSDISK_DISKIDGUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskIdGuid"); +pub const CLUSREG_NAME_PHYSDISK_DISKIDTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskIdType"); +pub const CLUSREG_NAME_PHYSDISK_DISKIODELAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxIoLatency"); +pub const CLUSREG_NAME_PHYSDISK_DISKPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskPath"); +pub const CLUSREG_NAME_PHYSDISK_DISKRECOVERYACTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskRecoveryAction"); +pub const CLUSREG_NAME_PHYSDISK_DISKRELOAD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskReload"); +pub const CLUSREG_NAME_PHYSDISK_DISKRUNCHKDSK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskRunChkDsk"); +pub const CLUSREG_NAME_PHYSDISK_DISKSIGNATURE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskSignature"); +pub const CLUSREG_NAME_PHYSDISK_DISKUNIQUEIDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskUniqueIds"); +pub const CLUSREG_NAME_PHYSDISK_DISKVOLUMEINFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskVolumeInfo"); +pub const CLUSREG_NAME_PHYSDISK_FASTONLINEARBITRATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FastOnlineArbitrate"); +pub const CLUSREG_NAME_PHYSDISK_MAINTMODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaintenanceMode"); +pub const CLUSREG_NAME_PHYSDISK_MIGRATEFIXUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MigrateDriveLetters"); +pub const CLUSREG_NAME_PHYSDISK_SPACEIDGUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VirtualDiskId"); +pub const CLUSREG_NAME_PHYSDISK_VOLSNAPACTIVATETIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VolsnapActivateTimeout"); +pub const CLUSREG_NAME_PLACEMENT_OPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PlacementOptions"); +pub const CLUSREG_NAME_PLUMB_ALL_CROSS_SUBNET_ROUTES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PlumbAllCrossSubnetRoutes"); +pub const CLUSREG_NAME_PREVENTQUORUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PreventQuorum"); +pub const CLUSREG_NAME_PRTSPOOL_DEFAULT_SPOOL_DIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultSpoolDirectory"); +pub const CLUSREG_NAME_PRTSPOOL_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("JobCompletionTimeout"); +pub const CLUSREG_NAME_QUARANTINE_DURATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("QuarantineDuration"); +pub const CLUSREG_NAME_QUARANTINE_THRESHOLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("QuarantineThreshold"); +pub const CLUSREG_NAME_QUORUM_ARBITRATION_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("QuorumArbitrationTimeMax"); +pub const CLUSREG_NAME_RESILIENCY_DEFAULT_SECONDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResiliencyDefaultPeriod"); +pub const CLUSREG_NAME_RESILIENCY_LEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResiliencyLevel"); +pub const CLUSREG_NAME_RESTYPE_ADMIN_EXTENSIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AdminExtensions"); +pub const CLUSREG_NAME_RESTYPE_DEADLOCK_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeadlockTimeout"); +pub const CLUSREG_NAME_RESTYPE_DESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const CLUSREG_NAME_RESTYPE_DLL_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DllName"); +pub const CLUSREG_NAME_RESTYPE_DUMP_LOG_QUERY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DumpLogQuery"); +pub const CLUSREG_NAME_RESTYPE_DUMP_POLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DumpPolicy"); +pub const CLUSREG_NAME_RESTYPE_DUMP_SERVICES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DumpServices"); +pub const CLUSREG_NAME_RESTYPE_ENABLED_EVENT_LOGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnabledEventLogs"); +pub const CLUSREG_NAME_RESTYPE_IS_ALIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsAlivePollInterval"); +pub const CLUSREG_NAME_RESTYPE_LOOKS_ALIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LooksAlivePollInterval"); +pub const CLUSREG_NAME_RESTYPE_MAX_MONITORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaximumMonitors"); +pub const CLUSREG_NAME_RESTYPE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const CLUSREG_NAME_RESTYPE_PENDING_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PendingTimeout"); +pub const CLUSREG_NAME_RESTYPE_WPR_PROFILES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WprProfiles"); +pub const CLUSREG_NAME_RESTYPE_WPR_START_AFTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WprStartAfter"); +pub const CLUSREG_NAME_RES_DATA1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResourceSpecificData1"); +pub const CLUSREG_NAME_RES_DATA2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResourceSpecificData2"); +pub const CLUSREG_NAME_RES_DEADLOCK_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeadlockTimeout"); +pub const CLUSREG_NAME_RES_DESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const CLUSREG_NAME_RES_EMBEDDED_FAILURE_ACTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EmbeddedFailureAction"); +pub const CLUSREG_NAME_RES_IS_ALIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsAlivePollInterval"); +pub const CLUSREG_NAME_RES_LAST_OPERATION_STATUS_CODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastOperationStatusCode"); +pub const CLUSREG_NAME_RES_LOOKS_ALIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LooksAlivePollInterval"); +pub const CLUSREG_NAME_RES_MONITOR_PID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MonitorProcessId"); +pub const CLUSREG_NAME_RES_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const CLUSREG_NAME_RES_PENDING_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PendingTimeout"); +pub const CLUSREG_NAME_RES_PERSISTENT_STATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersistentState"); +pub const CLUSREG_NAME_RES_RESTART_ACTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestartAction"); +pub const CLUSREG_NAME_RES_RESTART_DELAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestartDelay"); +pub const CLUSREG_NAME_RES_RESTART_PERIOD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestartPeriod"); +pub const CLUSREG_NAME_RES_RESTART_THRESHOLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestartThreshold"); +pub const CLUSREG_NAME_RES_RETRY_PERIOD_ON_FAILURE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RetryPeriodOnFailure"); +pub const CLUSREG_NAME_RES_SEPARATE_MONITOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeparateMonitor"); +pub const CLUSREG_NAME_RES_STATUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResourceSpecificStatus"); +pub const CLUSREG_NAME_RES_STATUS_INFORMATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StatusInformation"); +pub const CLUSREG_NAME_RES_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Type"); +pub const CLUSREG_NAME_ROUTE_HISTORY_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RouteHistoryLength"); +pub const CLUSREG_NAME_SAME_SUBNET_DELAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SameSubnetDelay"); +pub const CLUSREG_NAME_SAME_SUBNET_THRESHOLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SameSubnetThreshold"); +pub const CLUSREG_NAME_SHUTDOWN_TIMEOUT_MINUTES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShutdownTimeoutInMinutes"); +pub const CLUSREG_NAME_SOFS_SMBASYMMETRYMODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmbAsymmetryMode"); +pub const CLUSREG_NAME_START_MEMORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StartMemory"); +pub const CLUSREG_NAME_STORAGESPACE_DESCRIPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VirtualDiskDescription"); +pub const CLUSREG_NAME_STORAGESPACE_HEALTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VirtualDiskHealth"); +pub const CLUSREG_NAME_STORAGESPACE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VirtualDiskName"); +pub const CLUSREG_NAME_STORAGESPACE_POOLARBITRATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Arbitrate"); +pub const CLUSREG_NAME_STORAGESPACE_POOLCONSUMEDCAPACITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConsumedCapacity"); +pub const CLUSREG_NAME_STORAGESPACE_POOLDESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const CLUSREG_NAME_STORAGESPACE_POOLDRIVEIDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriveIds"); +pub const CLUSREG_NAME_STORAGESPACE_POOLHEALTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Health"); +pub const CLUSREG_NAME_STORAGESPACE_POOLIDGUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PoolId"); +pub const CLUSREG_NAME_STORAGESPACE_POOLNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const CLUSREG_NAME_STORAGESPACE_POOLQUORUMSHARE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PoolQuorumShare"); +pub const CLUSREG_NAME_STORAGESPACE_POOLQUORUMUSERACCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PoolQuorumUserAccount"); +pub const CLUSREG_NAME_STORAGESPACE_POOLREEVALTIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReEvaluatePlacementTimeout"); +pub const CLUSREG_NAME_STORAGESPACE_POOLSTATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("State"); +pub const CLUSREG_NAME_STORAGESPACE_POOLTOTALCAPACITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TotalCapacity"); +pub const CLUSREG_NAME_STORAGESPACE_PROVISIONING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VirtualDiskProvisioning"); +pub const CLUSREG_NAME_STORAGESPACE_RESILIENCYCOLUMNS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VirtualDiskResiliencyColumns"); +pub const CLUSREG_NAME_STORAGESPACE_RESILIENCYINTERLEAVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VirtualDiskResiliencyInterleave"); +pub const CLUSREG_NAME_STORAGESPACE_RESILIENCYTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VirtualDiskResiliencyType"); +pub const CLUSREG_NAME_STORAGESPACE_STATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VirtualDiskState"); +pub const CLUSREG_NAME_UPGRADE_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClusterUpgradeVersion"); +pub const CLUSREG_NAME_VIP_ADAPTER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AdapterName"); +pub const CLUSREG_NAME_VIP_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Address"); +pub const CLUSREG_NAME_VIP_PREFIX_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrefixLength"); +pub const CLUSREG_NAME_VIP_RDID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RDID"); +pub const CLUSREG_NAME_VIP_VSID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VSID"); +pub const CLUSREG_NAME_VIRTUAL_NUMA_COUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VirtualNumaCount"); +pub const CLUSREG_NAME_VSSTASK_APPNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ApplicationName"); +pub const CLUSREG_NAME_VSSTASK_APPPARAMS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ApplicationParams"); +pub const CLUSREG_NAME_VSSTASK_CURRENTDIRECTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentDirectory"); +pub const CLUSREG_NAME_VSSTASK_TRIGGERARRAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TriggerArray"); +pub const CLUSREG_NAME_WINS_BACKUP_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BackupPath"); +pub const CLUSREG_NAME_WINS_DATABASE_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DatabasePath"); +pub const CLUSREG_NAME_WITNESS_DYNAMIC_WEIGHT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WitnessDynamicWeight"); +pub const CLUSREG_READ_ERROR: CLUSTER_REG_COMMAND = 9i32; +pub const CLUSREG_READ_KEY: CLUSTER_REG_COMMAND = 7i32; +pub const CLUSREG_READ_VALUE: CLUSTER_REG_COMMAND = 8i32; +pub const CLUSREG_SET_KEY_SECURITY: CLUSTER_REG_COMMAND = 5i32; +pub const CLUSREG_SET_VALUE: CLUSTER_REG_COMMAND = 1i32; +pub const CLUSREG_VALUE_DELETED: CLUSTER_REG_COMMAND = 6i32; +pub const CLUSRESDLL_STATUS_DO_NOT_COLLECT_WER_REPORT: u32 = 1073741824u32; +pub const CLUSRESDLL_STATUS_DUMP_NOW: u32 = 2147483648u32; +pub const CLUSRESDLL_STATUS_INSUFFICIENT_MEMORY: u32 = 16u32; +pub const CLUSRESDLL_STATUS_INSUFFICIENT_OTHER_RESOURCES: u32 = 64u32; +pub const CLUSRESDLL_STATUS_INSUFFICIENT_PROCESSOR: u32 = 32u32; +pub const CLUSRESDLL_STATUS_INVALID_PARAMETERS: u32 = 128u32; +pub const CLUSRESDLL_STATUS_NETWORK_NOT_AVAILABLE: u32 = 256u32; +pub const CLUSRESDLL_STATUS_OFFLINE_BUSY: u32 = 1u32; +pub const CLUSRESDLL_STATUS_OFFLINE_DESTINATION_REJECTED: u32 = 8u32; +pub const CLUSRESDLL_STATUS_OFFLINE_DESTINATION_THROTTLED: u32 = 4u32; +pub const CLUSRESDLL_STATUS_OFFLINE_SOURCE_THROTTLED: u32 = 2u32; +pub const CLUSRES_DISABLE_WPR_WATCHDOG_FOR_OFFLINE_CALLS: u32 = 2u32; +pub const CLUSRES_DISABLE_WPR_WATCHDOG_FOR_ONLINE_CALLS: u32 = 1u32; +pub const CLUSRES_NAME_GET_OPERATION_CONTEXT_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Flags"); +pub const CLUSRES_STATUS_APPLICATION_READY: u64 = 256u64; +pub const CLUSRES_STATUS_EMBEDDED_FAILURE: u64 = 2u64; +pub const CLUSRES_STATUS_FAILED_DUE_TO_INSUFFICIENT_CPU: u64 = 4u64; +pub const CLUSRES_STATUS_FAILED_DUE_TO_INSUFFICIENT_GENERIC_RESOURCES: u64 = 16u64; +pub const CLUSRES_STATUS_FAILED_DUE_TO_INSUFFICIENT_MEMORY: u64 = 8u64; +pub const CLUSRES_STATUS_LOCKED_MODE: u64 = 1u64; +pub const CLUSRES_STATUS_NETWORK_FAILURE: u64 = 32u64; +pub const CLUSRES_STATUS_OFFLINE_NOT_LOCAL_DISK_OWNER: u64 = 512u64; +pub const CLUSRES_STATUS_OS_HEARTBEAT: u64 = 128u64; +pub const CLUSRES_STATUS_UNMONITORED: u64 = 64u64; +pub const CLUSTERSET_OBJECT_TYPE_DATABASE: CLUSTERSET_OBJECT_TYPE = 3i32; +pub const CLUSTERSET_OBJECT_TYPE_MEMBER: CLUSTERSET_OBJECT_TYPE = 1i32; +pub const CLUSTERSET_OBJECT_TYPE_NONE: CLUSTERSET_OBJECT_TYPE = 0i32; +pub const CLUSTERSET_OBJECT_TYPE_WORKLOAD: CLUSTERSET_OBJECT_TYPE = 2i32; +pub const CLUSTER_ADD_EVICT_DELAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AddEvictDelay"); +pub const CLUSTER_AVAILABILITY_SET_CONFIG_V1: u32 = 1u32; +pub const CLUSTER_CHANGE_ALL: CLUSTER_CHANGE = -1i32; +pub const CLUSTER_CHANGE_CLUSTER_ALL_V2: CLUSTER_CHANGE_CLUSTER_V2 = 8191i32; +pub const CLUSTER_CHANGE_CLUSTER_COMMON_PROPERTY_V2: CLUSTER_CHANGE_CLUSTER_V2 = 128i32; +pub const CLUSTER_CHANGE_CLUSTER_GROUP_ADDED_V2: CLUSTER_CHANGE_CLUSTER_V2 = 4i32; +pub const CLUSTER_CHANGE_CLUSTER_HANDLE_CLOSE_V2: CLUSTER_CHANGE_CLUSTER_V2 = 8i32; +pub const CLUSTER_CHANGE_CLUSTER_LOST_NOTIFICATIONS_V2: CLUSTER_CHANGE_CLUSTER_V2 = 512i32; +pub const CLUSTER_CHANGE_CLUSTER_MEMBERSHIP_V2: CLUSTER_CHANGE_CLUSTER_V2 = 2048i32; +pub const CLUSTER_CHANGE_CLUSTER_NETWORK_ADDED_V2: CLUSTER_CHANGE_CLUSTER_V2 = 16i32; +pub const CLUSTER_CHANGE_CLUSTER_NODE_ADDED_V2: CLUSTER_CHANGE_CLUSTER_V2 = 32i32; +pub const CLUSTER_CHANGE_CLUSTER_PRIVATE_PROPERTY_V2: CLUSTER_CHANGE_CLUSTER_V2 = 256i32; +pub const CLUSTER_CHANGE_CLUSTER_PROPERTY: CLUSTER_CHANGE = 1073741824i32; +pub const CLUSTER_CHANGE_CLUSTER_RECONNECT: CLUSTER_CHANGE = 524288i32; +pub const CLUSTER_CHANGE_CLUSTER_RECONNECT_V2: CLUSTER_CHANGE_CLUSTER_V2 = 1i32; +pub const CLUSTER_CHANGE_CLUSTER_RENAME_V2: CLUSTER_CHANGE_CLUSTER_V2 = 1024i32; +pub const CLUSTER_CHANGE_CLUSTER_RESOURCE_TYPE_ADDED_V2: CLUSTER_CHANGE_CLUSTER_V2 = 64i32; +pub const CLUSTER_CHANGE_CLUSTER_STATE: CLUSTER_CHANGE = 536870912i32; +pub const CLUSTER_CHANGE_CLUSTER_STATE_V2: CLUSTER_CHANGE_CLUSTER_V2 = 2i32; +pub const CLUSTER_CHANGE_CLUSTER_UPGRADED_V2: CLUSTER_CHANGE_CLUSTER_V2 = 4096i32; +pub const CLUSTER_CHANGE_GROUPSET_ALL_V2: CLUSTER_CHANGE_GROUPSET_V2 = 511i32; +pub const CLUSTER_CHANGE_GROUPSET_COMMON_PROPERTY_V2: CLUSTER_CHANGE_GROUPSET_V2 = 2i32; +pub const CLUSTER_CHANGE_GROUPSET_DELETED_v2: CLUSTER_CHANGE_GROUPSET_V2 = 1i32; +pub const CLUSTER_CHANGE_GROUPSET_DEPENDENCIES_V2: CLUSTER_CHANGE_GROUPSET_V2 = 64i32; +pub const CLUSTER_CHANGE_GROUPSET_DEPENDENTS_V2: CLUSTER_CHANGE_GROUPSET_V2 = 128i32; +pub const CLUSTER_CHANGE_GROUPSET_GROUP_ADDED: CLUSTER_CHANGE_GROUPSET_V2 = 16i32; +pub const CLUSTER_CHANGE_GROUPSET_GROUP_REMOVED: CLUSTER_CHANGE_GROUPSET_V2 = 32i32; +pub const CLUSTER_CHANGE_GROUPSET_HANDLE_CLOSE_v2: CLUSTER_CHANGE_GROUPSET_V2 = 256i32; +pub const CLUSTER_CHANGE_GROUPSET_PRIVATE_PROPERTY_V2: CLUSTER_CHANGE_GROUPSET_V2 = 4i32; +pub const CLUSTER_CHANGE_GROUPSET_STATE_V2: CLUSTER_CHANGE_GROUPSET_V2 = 8i32; +pub const CLUSTER_CHANGE_GROUP_ADDED: CLUSTER_CHANGE = 16384i32; +pub const CLUSTER_CHANGE_GROUP_ALL_V2: CLUSTER_CHANGE_GROUP_V2 = 1023i32; +pub const CLUSTER_CHANGE_GROUP_COMMON_PROPERTY_V2: CLUSTER_CHANGE_GROUP_V2 = 2i32; +pub const CLUSTER_CHANGE_GROUP_DELETED: CLUSTER_CHANGE = 8192i32; +pub const CLUSTER_CHANGE_GROUP_DELETED_V2: CLUSTER_CHANGE_GROUP_V2 = 1i32; +pub const CLUSTER_CHANGE_GROUP_HANDLE_CLOSE_V2: CLUSTER_CHANGE_GROUP_V2 = 512i32; +pub const CLUSTER_CHANGE_GROUP_OWNER_NODE_V2: CLUSTER_CHANGE_GROUP_V2 = 16i32; +pub const CLUSTER_CHANGE_GROUP_PREFERRED_OWNERS_V2: CLUSTER_CHANGE_GROUP_V2 = 32i32; +pub const CLUSTER_CHANGE_GROUP_PRIVATE_PROPERTY_V2: CLUSTER_CHANGE_GROUP_V2 = 4i32; +pub const CLUSTER_CHANGE_GROUP_PROPERTY: CLUSTER_CHANGE = 32768i32; +pub const CLUSTER_CHANGE_GROUP_RESOURCE_ADDED_V2: CLUSTER_CHANGE_GROUP_V2 = 64i32; +pub const CLUSTER_CHANGE_GROUP_RESOURCE_GAINED_V2: CLUSTER_CHANGE_GROUP_V2 = 128i32; +pub const CLUSTER_CHANGE_GROUP_RESOURCE_LOST_V2: CLUSTER_CHANGE_GROUP_V2 = 256i32; +pub const CLUSTER_CHANGE_GROUP_STATE: CLUSTER_CHANGE = 4096i32; +pub const CLUSTER_CHANGE_GROUP_STATE_V2: CLUSTER_CHANGE_GROUP_V2 = 8i32; +pub const CLUSTER_CHANGE_HANDLE_CLOSE: CLUSTER_CHANGE = -2147483648i32; +pub const CLUSTER_CHANGE_NETINTERFACE_ADDED: CLUSTER_CHANGE = 67108864i32; +pub const CLUSTER_CHANGE_NETINTERFACE_ALL_V2: CLUSTER_CHANGE_NETINTERFACE_V2 = 31i32; +pub const CLUSTER_CHANGE_NETINTERFACE_COMMON_PROPERTY_V2: CLUSTER_CHANGE_NETINTERFACE_V2 = 2i32; +pub const CLUSTER_CHANGE_NETINTERFACE_DELETED: CLUSTER_CHANGE = 33554432i32; +pub const CLUSTER_CHANGE_NETINTERFACE_DELETED_V2: CLUSTER_CHANGE_NETINTERFACE_V2 = 1i32; +pub const CLUSTER_CHANGE_NETINTERFACE_HANDLE_CLOSE_V2: CLUSTER_CHANGE_NETINTERFACE_V2 = 16i32; +pub const CLUSTER_CHANGE_NETINTERFACE_PRIVATE_PROPERTY_V2: CLUSTER_CHANGE_NETINTERFACE_V2 = 4i32; +pub const CLUSTER_CHANGE_NETINTERFACE_PROPERTY: CLUSTER_CHANGE = 134217728i32; +pub const CLUSTER_CHANGE_NETINTERFACE_STATE: CLUSTER_CHANGE = 16777216i32; +pub const CLUSTER_CHANGE_NETINTERFACE_STATE_V2: CLUSTER_CHANGE_NETINTERFACE_V2 = 8i32; +pub const CLUSTER_CHANGE_NETWORK_ADDED: CLUSTER_CHANGE = 4194304i32; +pub const CLUSTER_CHANGE_NETWORK_ALL_V2: CLUSTER_CHANGE_NETWORK_V2 = 31i32; +pub const CLUSTER_CHANGE_NETWORK_COMMON_PROPERTY_V2: CLUSTER_CHANGE_NETWORK_V2 = 2i32; +pub const CLUSTER_CHANGE_NETWORK_DELETED: CLUSTER_CHANGE = 2097152i32; +pub const CLUSTER_CHANGE_NETWORK_DELETED_V2: CLUSTER_CHANGE_NETWORK_V2 = 1i32; +pub const CLUSTER_CHANGE_NETWORK_HANDLE_CLOSE_V2: CLUSTER_CHANGE_NETWORK_V2 = 16i32; +pub const CLUSTER_CHANGE_NETWORK_PRIVATE_PROPERTY_V2: CLUSTER_CHANGE_NETWORK_V2 = 4i32; +pub const CLUSTER_CHANGE_NETWORK_PROPERTY: CLUSTER_CHANGE = 8388608i32; +pub const CLUSTER_CHANGE_NETWORK_STATE: CLUSTER_CHANGE = 1048576i32; +pub const CLUSTER_CHANGE_NETWORK_STATE_V2: CLUSTER_CHANGE_NETWORK_V2 = 8i32; +pub const CLUSTER_CHANGE_NODE_ADDED: CLUSTER_CHANGE = 4i32; +pub const CLUSTER_CHANGE_NODE_ALL_V2: CLUSTER_CHANGE_NODE_V2 = 255i32; +pub const CLUSTER_CHANGE_NODE_COMMON_PROPERTY_V2: CLUSTER_CHANGE_NODE_V2 = 4i32; +pub const CLUSTER_CHANGE_NODE_DELETED: CLUSTER_CHANGE = 2i32; +pub const CLUSTER_CHANGE_NODE_DELETED_V2: CLUSTER_CHANGE_NODE_V2 = 2i32; +pub const CLUSTER_CHANGE_NODE_GROUP_GAINED_V2: CLUSTER_CHANGE_NODE_V2 = 32i32; +pub const CLUSTER_CHANGE_NODE_GROUP_LOST_V2: CLUSTER_CHANGE_NODE_V2 = 64i32; +pub const CLUSTER_CHANGE_NODE_HANDLE_CLOSE_V2: CLUSTER_CHANGE_NODE_V2 = 128i32; +pub const CLUSTER_CHANGE_NODE_NETINTERFACE_ADDED_V2: CLUSTER_CHANGE_NODE_V2 = 1i32; +pub const CLUSTER_CHANGE_NODE_PRIVATE_PROPERTY_V2: CLUSTER_CHANGE_NODE_V2 = 8i32; +pub const CLUSTER_CHANGE_NODE_PROPERTY: CLUSTER_CHANGE = 8i32; +pub const CLUSTER_CHANGE_NODE_STATE: CLUSTER_CHANGE = 1i32; +pub const CLUSTER_CHANGE_NODE_STATE_V2: CLUSTER_CHANGE_NODE_V2 = 16i32; +pub const CLUSTER_CHANGE_QUORUM_ALL_V2: CLUSTER_CHANGE_QUORUM_V2 = 1i32; +pub const CLUSTER_CHANGE_QUORUM_STATE: CLUSTER_CHANGE = 268435456i32; +pub const CLUSTER_CHANGE_QUORUM_STATE_V2: CLUSTER_CHANGE_QUORUM_V2 = 1i32; +pub const CLUSTER_CHANGE_REGISTRY_ALL_V2: CLUSTER_CHANGE_REGISTRY_V2 = 31i32; +pub const CLUSTER_CHANGE_REGISTRY_ATTRIBUTES: CLUSTER_CHANGE = 32i32; +pub const CLUSTER_CHANGE_REGISTRY_ATTRIBUTES_V2: CLUSTER_CHANGE_REGISTRY_V2 = 1i32; +pub const CLUSTER_CHANGE_REGISTRY_HANDLE_CLOSE_V2: CLUSTER_CHANGE_REGISTRY_V2 = 16i32; +pub const CLUSTER_CHANGE_REGISTRY_NAME: CLUSTER_CHANGE = 16i32; +pub const CLUSTER_CHANGE_REGISTRY_NAME_V2: CLUSTER_CHANGE_REGISTRY_V2 = 2i32; +pub const CLUSTER_CHANGE_REGISTRY_SUBTREE: CLUSTER_CHANGE = 128i32; +pub const CLUSTER_CHANGE_REGISTRY_SUBTREE_V2: CLUSTER_CHANGE_REGISTRY_V2 = 4i32; +pub const CLUSTER_CHANGE_REGISTRY_VALUE: CLUSTER_CHANGE = 64i32; +pub const CLUSTER_CHANGE_REGISTRY_VALUE_V2: CLUSTER_CHANGE_REGISTRY_V2 = 8i32; +pub const CLUSTER_CHANGE_RESOURCE_ADDED: CLUSTER_CHANGE = 1024i32; +pub const CLUSTER_CHANGE_RESOURCE_ALL_V2: CLUSTER_CHANGE_RESOURCE_V2 = 2047i32; +pub const CLUSTER_CHANGE_RESOURCE_COMMON_PROPERTY_V2: CLUSTER_CHANGE_RESOURCE_V2 = 1i32; +pub const CLUSTER_CHANGE_RESOURCE_DELETED: CLUSTER_CHANGE = 512i32; +pub const CLUSTER_CHANGE_RESOURCE_DELETED_V2: CLUSTER_CHANGE_RESOURCE_V2 = 128i32; +pub const CLUSTER_CHANGE_RESOURCE_DEPENDENCIES_V2: CLUSTER_CHANGE_RESOURCE_V2 = 16i32; +pub const CLUSTER_CHANGE_RESOURCE_DEPENDENTS_V2: CLUSTER_CHANGE_RESOURCE_V2 = 32i32; +pub const CLUSTER_CHANGE_RESOURCE_DLL_UPGRADED_V2: CLUSTER_CHANGE_RESOURCE_V2 = 256i32; +pub const CLUSTER_CHANGE_RESOURCE_HANDLE_CLOSE_V2: CLUSTER_CHANGE_RESOURCE_V2 = 512i32; +pub const CLUSTER_CHANGE_RESOURCE_OWNER_GROUP_V2: CLUSTER_CHANGE_RESOURCE_V2 = 8i32; +pub const CLUSTER_CHANGE_RESOURCE_POSSIBLE_OWNERS_V2: CLUSTER_CHANGE_RESOURCE_V2 = 64i32; +pub const CLUSTER_CHANGE_RESOURCE_PRIVATE_PROPERTY_V2: CLUSTER_CHANGE_RESOURCE_V2 = 2i32; +pub const CLUSTER_CHANGE_RESOURCE_PROPERTY: CLUSTER_CHANGE = 2048i32; +pub const CLUSTER_CHANGE_RESOURCE_STATE: CLUSTER_CHANGE = 256i32; +pub const CLUSTER_CHANGE_RESOURCE_STATE_V2: CLUSTER_CHANGE_RESOURCE_V2 = 4i32; +pub const CLUSTER_CHANGE_RESOURCE_TERMINAL_STATE_V2: CLUSTER_CHANGE_RESOURCE_V2 = 1024i32; +pub const CLUSTER_CHANGE_RESOURCE_TYPE_ADDED: CLUSTER_CHANGE = 131072i32; +pub const CLUSTER_CHANGE_RESOURCE_TYPE_ALL_V2: CLUSTER_CHANGE_RESOURCE_TYPE_V2 = 63i32; +pub const CLUSTER_CHANGE_RESOURCE_TYPE_COMMON_PROPERTY_V2: CLUSTER_CHANGE_RESOURCE_TYPE_V2 = 2i32; +pub const CLUSTER_CHANGE_RESOURCE_TYPE_DELETED: CLUSTER_CHANGE = 65536i32; +pub const CLUSTER_CHANGE_RESOURCE_TYPE_DELETED_V2: CLUSTER_CHANGE_RESOURCE_TYPE_V2 = 1i32; +pub const CLUSTER_CHANGE_RESOURCE_TYPE_DLL_UPGRADED_V2: CLUSTER_CHANGE_RESOURCE_TYPE_V2 = 16i32; +pub const CLUSTER_CHANGE_RESOURCE_TYPE_POSSIBLE_OWNERS_V2: CLUSTER_CHANGE_RESOURCE_TYPE_V2 = 8i32; +pub const CLUSTER_CHANGE_RESOURCE_TYPE_PRIVATE_PROPERTY_V2: CLUSTER_CHANGE_RESOURCE_TYPE_V2 = 4i32; +pub const CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY: CLUSTER_CHANGE = 262144i32; +pub const CLUSTER_CHANGE_SHARED_VOLUME_ADDED_V2: CLUSTER_CHANGE_SHARED_VOLUME_V2 = 2i32; +pub const CLUSTER_CHANGE_SHARED_VOLUME_ALL_V2: CLUSTER_CHANGE_SHARED_VOLUME_V2 = 7i32; +pub const CLUSTER_CHANGE_SHARED_VOLUME_REMOVED_V2: CLUSTER_CHANGE_SHARED_VOLUME_V2 = 4i32; +pub const CLUSTER_CHANGE_SHARED_VOLUME_STATE_V2: CLUSTER_CHANGE_SHARED_VOLUME_V2 = 1i32; +pub const CLUSTER_CHANGE_SPACEPORT_CUSTOM_PNP_V2: CLUSTER_CHANGE_SPACEPORT_V2 = 1i32; +pub const CLUSTER_CHANGE_UPGRADE_ALL: CLUSTER_CHANGE_NODE_UPGRADE_PHASE_V2 = 7i32; +pub const CLUSTER_CHANGE_UPGRADE_NODE_COMMIT: CLUSTER_CHANGE_NODE_UPGRADE_PHASE_V2 = 2i32; +pub const CLUSTER_CHANGE_UPGRADE_NODE_POSTCOMMIT: CLUSTER_CHANGE_NODE_UPGRADE_PHASE_V2 = 4i32; +pub const CLUSTER_CHANGE_UPGRADE_NODE_PREPARE: CLUSTER_CHANGE_NODE_UPGRADE_PHASE_V2 = 1i32; +pub const CLUSTER_CLOUD_TYPE_AZURE: CLUSTER_CLOUD_TYPE = 1i32; +pub const CLUSTER_CLOUD_TYPE_MIXED: CLUSTER_CLOUD_TYPE = 128i32; +pub const CLUSTER_CLOUD_TYPE_NONE: CLUSTER_CLOUD_TYPE = 0i32; +pub const CLUSTER_CLOUD_TYPE_UNKNOWN: CLUSTER_CLOUD_TYPE = -1i32; +pub const CLUSTER_CONFIGURED: u32 = 2u32; +pub const CLUSTER_CREATE_GROUP_INFO_VERSION: u32 = 1u32; +pub const CLUSTER_CREATE_GROUP_INFO_VERSION_1: u32 = 1u32; +pub const CLUSTER_CSA_VSS_STATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BackupInProgress"); +pub const CLUSTER_CSV_COMPATIBLE_FILTERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SharedVolumeCompatibleFilters"); +pub const CLUSTER_CSV_INCOMPATIBLE_FILTERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SharedVolumeIncompatibleFilters"); +pub const CLUSTER_DELETE_ACCESS_CONTROL_ENTRY: u32 = 2u32; +pub const CLUSTER_ENFORCED_ANTIAFFINITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClusterEnforcedAntiaffinity"); +pub const CLUSTER_ENUM_ALL: CLUSTER_ENUM = 63i32; +pub const CLUSTER_ENUM_GROUP: CLUSTER_ENUM = 8i32; +pub const CLUSTER_ENUM_INTERNAL_NETWORK: CLUSTER_ENUM = -2147483648i32; +pub const CLUSTER_ENUM_ITEM_VERSION: u32 = 1u32; +pub const CLUSTER_ENUM_ITEM_VERSION_1: u32 = 1u32; +pub const CLUSTER_ENUM_NETINTERFACE: CLUSTER_ENUM = 32i32; +pub const CLUSTER_ENUM_NETWORK: CLUSTER_ENUM = 16i32; +pub const CLUSTER_ENUM_NODE: CLUSTER_ENUM = 1i32; +pub const CLUSTER_ENUM_RESOURCE: CLUSTER_ENUM = 4i32; +pub const CLUSTER_ENUM_RESTYPE: CLUSTER_ENUM = 2i32; +pub const CLUSTER_ENUM_SHARED_VOLUME_GROUP: CLUSTER_ENUM = 536870912i32; +pub const CLUSTER_ENUM_SHARED_VOLUME_RESOURCE: CLUSTER_ENUM = 1073741824i32; +pub const CLUSTER_GROUP_ENUM_ALL: CLUSTER_GROUP_ENUM = 3i32; +pub const CLUSTER_GROUP_ENUM_CONTAINS: CLUSTER_GROUP_ENUM = 1i32; +pub const CLUSTER_GROUP_ENUM_ITEM_VERSION: u32 = 1u32; +pub const CLUSTER_GROUP_ENUM_ITEM_VERSION_1: u32 = 1u32; +pub const CLUSTER_GROUP_ENUM_NODES: CLUSTER_GROUP_ENUM = 2i32; +pub const CLUSTER_GROUP_WAIT_DELAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClusterGroupWaitDelay"); +pub const CLUSTER_HANG_RECOVERY_ACTION_KEYNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HangRecoveryAction"); +pub const CLUSTER_HANG_TIMEOUT_KEYNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClusSvcHangTimeout"); +pub const CLUSTER_HEALTH_FAULT_ARGS: u32 = 7u32; +pub const CLUSTER_HEALTH_FAULT_DESCRIPTION: u32 = 3u32; +pub const CLUSTER_HEALTH_FAULT_DESCRIPTION_LABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const CLUSTER_HEALTH_FAULT_ERRORCODE: u32 = 2u32; +pub const CLUSTER_HEALTH_FAULT_ERRORCODE_LABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ErrorCode"); +pub const CLUSTER_HEALTH_FAULT_ERRORTYPE: u32 = 1u32; +pub const CLUSTER_HEALTH_FAULT_ERRORTYPE_LABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ErrorType"); +pub const CLUSTER_HEALTH_FAULT_FLAGS: u32 = 5u32; +pub const CLUSTER_HEALTH_FAULT_FLAGS_LABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Flags"); +pub const CLUSTER_HEALTH_FAULT_ID: u32 = 0u32; +pub const CLUSTER_HEALTH_FAULT_ID_LABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Id"); +pub const CLUSTER_HEALTH_FAULT_PROPERTY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClusterHealth"); +pub const CLUSTER_HEALTH_FAULT_PROVIDER: u32 = 4u32; +pub const CLUSTER_HEALTH_FAULT_PROVIDER_LABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Provider"); +pub const CLUSTER_HEALTH_FAULT_RESERVED: u32 = 6u32; +pub const CLUSTER_HEALTH_FAULT_RESERVED_LABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Reserved"); +pub const CLUSTER_INSTALLED: u32 = 1u32; +pub const CLUSTER_MGMT_POINT_RESTYPE_AUTO: CLUSTER_MGMT_POINT_RESTYPE = 0i32; +pub const CLUSTER_MGMT_POINT_RESTYPE_DNN: CLUSTER_MGMT_POINT_RESTYPE = 2i32; +pub const CLUSTER_MGMT_POINT_RESTYPE_SNN: CLUSTER_MGMT_POINT_RESTYPE = 1i32; +pub const CLUSTER_MGMT_POINT_TYPE_CNO: CLUSTER_MGMT_POINT_TYPE = 1i32; +pub const CLUSTER_MGMT_POINT_TYPE_CNO_ONLY: CLUSTER_MGMT_POINT_TYPE = 3i32; +pub const CLUSTER_MGMT_POINT_TYPE_DNS_ONLY: CLUSTER_MGMT_POINT_TYPE = 2i32; +pub const CLUSTER_MGMT_POINT_TYPE_NONE: CLUSTER_MGMT_POINT_TYPE = 0i32; +pub const CLUSTER_NAME_AUTO_BALANCER_LEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoBalancerLevel"); +pub const CLUSTER_NAME_AUTO_BALANCER_MODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoBalancerMode"); +pub const CLUSTER_NAME_PREFERRED_SITE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PreferredSite"); +pub const CLUSTER_NETWORK_ENUM_ALL: CLUSTER_NETWORK_ENUM = 1i32; +pub const CLUSTER_NETWORK_ENUM_NETINTERFACES: CLUSTER_NETWORK_ENUM = 1i32; +pub const CLUSTER_NODE_ENUM_ALL: CLUSTER_NODE_ENUM = 3i32; +pub const CLUSTER_NODE_ENUM_GROUPS: CLUSTER_NODE_ENUM = 2i32; +pub const CLUSTER_NODE_ENUM_NETINTERFACES: CLUSTER_NODE_ENUM = 1i32; +pub const CLUSTER_NODE_ENUM_PREFERRED_GROUPS: CLUSTER_NODE_ENUM = 4i32; +pub const CLUSTER_NOTIFICATIONS_V1: CLUSTER_NOTIFICATIONS_VERSION = 1i32; +pub const CLUSTER_NOTIFICATIONS_V2: CLUSTER_NOTIFICATIONS_VERSION = 2i32; +pub const CLUSTER_OBJECT_TYPE_AFFINITYRULE: CLUSTER_OBJECT_TYPE = 16i32; +pub const CLUSTER_OBJECT_TYPE_CLUSTER: CLUSTER_OBJECT_TYPE = 1i32; +pub const CLUSTER_OBJECT_TYPE_FAULTDOMAIN: CLUSTER_OBJECT_TYPE = 17i32; +pub const CLUSTER_OBJECT_TYPE_GROUP: CLUSTER_OBJECT_TYPE = 2i32; +pub const CLUSTER_OBJECT_TYPE_GROUPSET: CLUSTER_OBJECT_TYPE = 13i32; +pub const CLUSTER_OBJECT_TYPE_NETWORK: CLUSTER_OBJECT_TYPE = 6i32; +pub const CLUSTER_OBJECT_TYPE_NETWORK_INTERFACE: CLUSTER_OBJECT_TYPE = 5i32; +pub const CLUSTER_OBJECT_TYPE_NODE: CLUSTER_OBJECT_TYPE = 7i32; +pub const CLUSTER_OBJECT_TYPE_NONE: CLUSTER_OBJECT_TYPE = 0i32; +pub const CLUSTER_OBJECT_TYPE_QUORUM: CLUSTER_OBJECT_TYPE = 9i32; +pub const CLUSTER_OBJECT_TYPE_REGISTRY: CLUSTER_OBJECT_TYPE = 8i32; +pub const CLUSTER_OBJECT_TYPE_RESOURCE: CLUSTER_OBJECT_TYPE = 3i32; +pub const CLUSTER_OBJECT_TYPE_RESOURCE_TYPE: CLUSTER_OBJECT_TYPE = 4i32; +pub const CLUSTER_OBJECT_TYPE_SHARED_VOLUME: CLUSTER_OBJECT_TYPE = 10i32; +pub const CLUSTER_QUORUM_LOST: CLUSTER_QUORUM_VALUE = 1i32; +pub const CLUSTER_QUORUM_MAINTAINED: CLUSTER_QUORUM_VALUE = 0i32; +pub const CLUSTER_REQUEST_REPLY_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestReplyTimeout"); +pub const CLUSTER_RESOURCE_DEFAULT_MONITOR: CLUSTER_RESOURCE_CREATE_FLAGS = 0i32; +pub const CLUSTER_RESOURCE_ENUM_ALL: CLUSTER_RESOURCE_ENUM = 7i32; +pub const CLUSTER_RESOURCE_ENUM_DEPENDS: CLUSTER_RESOURCE_ENUM = 1i32; +pub const CLUSTER_RESOURCE_ENUM_ITEM_VERSION: u32 = 1u32; +pub const CLUSTER_RESOURCE_ENUM_ITEM_VERSION_1: u32 = 1u32; +pub const CLUSTER_RESOURCE_ENUM_NODES: CLUSTER_RESOURCE_ENUM = 4i32; +pub const CLUSTER_RESOURCE_ENUM_PROVIDES: CLUSTER_RESOURCE_ENUM = 2i32; +pub const CLUSTER_RESOURCE_SEPARATE_MONITOR: CLUSTER_RESOURCE_CREATE_FLAGS = 1i32; +pub const CLUSTER_RESOURCE_TYPE_ENUM_ALL: CLUSTER_RESOURCE_TYPE_ENUM = 3i32; +pub const CLUSTER_RESOURCE_TYPE_ENUM_NODES: CLUSTER_RESOURCE_TYPE_ENUM = 1i32; +pub const CLUSTER_RESOURCE_TYPE_ENUM_RESOURCES: CLUSTER_RESOURCE_TYPE_ENUM = 2i32; +pub const CLUSTER_RESOURCE_TYPE_SPECIFIC_V2: CLUSTER_CHANGE_RESOURCE_TYPE_V2 = 32i32; +pub const CLUSTER_RESOURCE_VALID_FLAGS: CLUSTER_RESOURCE_CREATE_FLAGS = 1i32; +pub const CLUSTER_RUNNING: u32 = 16u32; +pub const CLUSTER_S2D_BUS_TYPES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("S2DBusTypes"); +pub const CLUSTER_S2D_CACHE_BEHAVIOR_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("S2DCacheBehavior"); +pub const CLUSTER_S2D_CACHE_DESIRED_STATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("S2DCacheDesiredState"); +pub const CLUSTER_S2D_CACHE_FLASH_RESERVE_PERCENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("S2DCacheFlashReservePercent"); +pub const CLUSTER_S2D_CACHE_METADATA_RESERVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("S2DCacheMetadataReserveBytes"); +pub const CLUSTER_S2D_CACHE_PAGE_SIZE_KBYTES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("S2DCachePageSizeKBytes"); +pub const CLUSTER_S2D_ENABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("S2DEnabled"); +pub const CLUSTER_S2D_IO_LATENCY_THRESHOLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("S2DIOLatencyThreshold"); +pub const CLUSTER_S2D_OPTIMIZATIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("S2DOptimizations"); +pub const CLUSTER_SET_ACCESS_TYPE_ALLOWED: u32 = 0u32; +pub const CLUSTER_SET_ACCESS_TYPE_DENIED: u32 = 1u32; +pub const CLUSTER_SHARED_VOLUMES_ROOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SharedVolumesRoot"); +pub const CLUSTER_SHARED_VOLUME_VSS_WRITER_OPERATION_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SharedVolumeVssWriterOperationTimeout"); +pub const CLUSTER_VERSION_FLAG_MIXED_MODE: u32 = 1u32; +pub const CLUSTER_VERSION_UNKNOWN: u32 = 4294967295u32; +pub const CLUSTER_WITNESS_DATABASE_WRITE_TIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WitnessDatabaseWriteTimeout"); +pub const CLUSTER_WITNESS_FAILED_RESTART_INTERVAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WitnessRestartInterval"); +pub const CLUS_ACCESS_ANY: u32 = 0u32; +pub const CLUS_ACCESS_READ: u32 = 1u32; +pub const CLUS_ACCESS_WRITE: u32 = 2u32; +pub const CLUS_AFFINITY_RULE_DIFFERENT_FAULT_DOMAIN: CLUS_AFFINITY_RULE_TYPE = 3i32; +pub const CLUS_AFFINITY_RULE_DIFFERENT_NODE: CLUS_AFFINITY_RULE_TYPE = 4i32; +pub const CLUS_AFFINITY_RULE_MAX: CLUS_AFFINITY_RULE_TYPE = 4i32; +pub const CLUS_AFFINITY_RULE_MIN: CLUS_AFFINITY_RULE_TYPE = 0i32; +pub const CLUS_AFFINITY_RULE_NONE: CLUS_AFFINITY_RULE_TYPE = 0i32; +pub const CLUS_AFFINITY_RULE_SAME_FAULT_DOMAIN: CLUS_AFFINITY_RULE_TYPE = 1i32; +pub const CLUS_AFFINITY_RULE_SAME_NODE: CLUS_AFFINITY_RULE_TYPE = 2i32; +pub const CLUS_CHAR_BROADCAST_DELETE: CLUS_CHARACTERISTICS = 32i32; +pub const CLUS_CHAR_CLONES: CLUS_CHARACTERISTICS = 8192i32; +pub const CLUS_CHAR_COEXIST_IN_SHARED_VOLUME_GROUP: CLUS_CHARACTERISTICS = 256i32; +pub const CLUS_CHAR_DELETE_REQUIRES_ALL_NODES: CLUS_CHARACTERISTICS = 2i32; +pub const CLUS_CHAR_DRAIN_LOCAL_OFFLINE: CLUS_CHARACTERISTICS = 524288i32; +pub const CLUS_CHAR_INFRASTRUCTURE: CLUS_CHARACTERISTICS = 131072i32; +pub const CLUS_CHAR_LOCAL_QUORUM: CLUS_CHARACTERISTICS = 4i32; +pub const CLUS_CHAR_LOCAL_QUORUM_DEBUG: CLUS_CHARACTERISTICS = 8i32; +pub const CLUS_CHAR_MONITOR_DETACH: CLUS_CHARACTERISTICS = 1024i32; +pub const CLUS_CHAR_MONITOR_REATTACH: CLUS_CHARACTERISTICS = 2048i32; +pub const CLUS_CHAR_NOTIFY_NEW_OWNER: CLUS_CHARACTERISTICS = 32768i32; +pub const CLUS_CHAR_NOT_PREEMPTABLE: CLUS_CHARACTERISTICS = 16384i32; +pub const CLUS_CHAR_OPERATION_CONTEXT: CLUS_CHARACTERISTICS = 4096i32; +pub const CLUS_CHAR_PLACEMENT_DATA: CLUS_CHARACTERISTICS = 512i32; +pub const CLUS_CHAR_QUORUM: CLUS_CHARACTERISTICS = 1i32; +pub const CLUS_CHAR_REQUIRES_STATE_CHANGE_REASON: CLUS_CHARACTERISTICS = 16i32; +pub const CLUS_CHAR_SINGLE_CLUSTER_INSTANCE: CLUS_CHARACTERISTICS = 64i32; +pub const CLUS_CHAR_SINGLE_GROUP_INSTANCE: CLUS_CHARACTERISTICS = 128i32; +pub const CLUS_CHAR_SUPPORTS_UNMONITORED_STATE: CLUS_CHARACTERISTICS = 65536i32; +pub const CLUS_CHAR_UNKNOWN: CLUS_CHARACTERISTICS = 0i32; +pub const CLUS_CHAR_VETO_DRAIN: CLUS_CHARACTERISTICS = 262144i32; +pub const CLUS_CREATE_CRYPT_CONTAINER_NOT_FOUND: u32 = 1u32; +pub const CLUS_FLAG_CORE: CLUS_FLAGS = 1i32; +pub const CLUS_GLOBAL: u32 = 1u32; +pub const CLUS_GROUP_DO_NOT_START: CLUS_GROUP_START_SETTING = 1i32; +pub const CLUS_GROUP_START_ALLOWED: CLUS_GROUP_START_SETTING = 2i32; +pub const CLUS_GROUP_START_ALWAYS: CLUS_GROUP_START_SETTING = 0i32; +pub const CLUS_GRP_MOVE_ALLOWED: u32 = 0u32; +pub const CLUS_GRP_MOVE_LOCKED: u32 = 1u32; +pub const CLUS_HYBRID_QUORUM: u32 = 1024u32; +pub const CLUS_MODIFY: u32 = 1u32; +pub const CLUS_NAME_RES_TYPE_CLUSTER_GROUPID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClusterGroupId"); +pub const CLUS_NAME_RES_TYPE_DATA_RESID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DataResourceId"); +pub const CLUS_NAME_RES_TYPE_LOG_MULTIPLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogSizeMultiple"); +pub const CLUS_NAME_RES_TYPE_LOG_RESID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogResourceId"); +pub const CLUS_NAME_RES_TYPE_LOG_VOLUME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogVolume"); +pub const CLUS_NAME_RES_TYPE_MINIMUM_LOG_SIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MinimumLogSizeInBytes"); +pub const CLUS_NAME_RES_TYPE_REPLICATION_GROUPID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReplicationGroupId"); +pub const CLUS_NAME_RES_TYPE_REPLICATION_GROUP_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReplicationClusterGroupType"); +pub const CLUS_NAME_RES_TYPE_SOURCE_RESID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SourceResourceId"); +pub const CLUS_NAME_RES_TYPE_SOURCE_VOLUMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SourceVolumes"); +pub const CLUS_NAME_RES_TYPE_TARGET_RESID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TargetResourceId"); +pub const CLUS_NAME_RES_TYPE_TARGET_VOLUMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TargetVolumes"); +pub const CLUS_NAME_RES_TYPE_UNIT_LOG_SIZE_CHANGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UnitOfLogSizeChangeInBytes"); +pub const CLUS_NODE_MAJORITY_QUORUM: u32 = 0u32; +pub const CLUS_NOT_GLOBAL: u32 = 0u32; +pub const CLUS_NO_MODIFY: u32 = 0u32; +pub const CLUS_OBJECT_AFFINITYRULE: CLUSTER_CONTROL_OBJECT = 9i32; +pub const CLUS_OBJECT_CLUSTER: CLUSTER_CONTROL_OBJECT = 7i32; +pub const CLUS_OBJECT_GROUP: CLUSTER_CONTROL_OBJECT = 3i32; +pub const CLUS_OBJECT_GROUPSET: CLUSTER_CONTROL_OBJECT = 8i32; +pub const CLUS_OBJECT_INVALID: CLUSTER_CONTROL_OBJECT = 0i32; +pub const CLUS_OBJECT_NETINTERFACE: CLUSTER_CONTROL_OBJECT = 6i32; +pub const CLUS_OBJECT_NETWORK: CLUSTER_CONTROL_OBJECT = 5i32; +pub const CLUS_OBJECT_NODE: CLUSTER_CONTROL_OBJECT = 4i32; +pub const CLUS_OBJECT_RESOURCE: CLUSTER_CONTROL_OBJECT = 1i32; +pub const CLUS_OBJECT_RESOURCE_TYPE: CLUSTER_CONTROL_OBJECT = 2i32; +pub const CLUS_OBJECT_USER: CLUSTER_CONTROL_OBJECT = 128i32; +pub const CLUS_RESCLASS_NETWORK: CLUSTER_RESOURCE_CLASS = 2i32; +pub const CLUS_RESCLASS_STORAGE: CLUSTER_RESOURCE_CLASS = 1i32; +pub const CLUS_RESCLASS_UNKNOWN: CLUSTER_RESOURCE_CLASS = 0i32; +pub const CLUS_RESCLASS_USER: CLUSTER_RESOURCE_CLASS = 32768i32; +pub const CLUS_RESDLL_OFFLINE_DO_NOT_UPDATE_PERSISTENT_STATE: u32 = 64u32; +pub const CLUS_RESDLL_OFFLINE_DUE_TO_EMBEDDED_FAILURE: u32 = 16u32; +pub const CLUS_RESDLL_OFFLINE_IGNORE_NETWORK_CONNECTIVITY: u32 = 32u32; +pub const CLUS_RESDLL_OFFLINE_IGNORE_RESOURCE_STATUS: u32 = 1u32; +pub const CLUS_RESDLL_OFFLINE_QUEUE_ENABLED: u32 = 4u32; +pub const CLUS_RESDLL_OFFLINE_RETURNING_TO_SOURCE_NODE_BECAUSE_OF_ERROR: u32 = 8u32; +pub const CLUS_RESDLL_OFFLINE_RETURN_TO_SOURCE_NODE_ON_ERROR: u32 = 2u32; +pub const CLUS_RESDLL_ONLINE_IGNORE_NETWORK_CONNECTIVITY: u32 = 16u32; +pub const CLUS_RESDLL_ONLINE_IGNORE_RESOURCE_STATUS: u32 = 2u32; +pub const CLUS_RESDLL_ONLINE_RECOVER_MONITOR_STATE: u32 = 1u32; +pub const CLUS_RESDLL_ONLINE_RESTORE_ONLINE_STATE: u32 = 8u32; +pub const CLUS_RESDLL_ONLINE_RETURN_TO_SOURCE_NODE_ON_ERROR: u32 = 4u32; +pub const CLUS_RESDLL_OPEN_DONT_DELETE_TEMP_DISK: u32 = 2u32; +pub const CLUS_RESDLL_OPEN_RECOVER_MONITOR_STATE: u32 = 1u32; +pub const CLUS_RESSUBCLASS_NETWORK_INTERNET_PROTOCOL: CLUS_RESSUBCLASS_NETWORK = -2147483648i32; +pub const CLUS_RESSUBCLASS_SHARED: CLUS_RESSUBCLASS = -2147483648i32; +pub const CLUS_RESSUBCLASS_STORAGE_DISK: CLUS_RESSUBCLASS_STORAGE = 1073741824i32; +pub const CLUS_RESSUBCLASS_STORAGE_REPLICATION: CLUS_RESSUBCLASS_STORAGE = 268435456i32; +pub const CLUS_RESSUBCLASS_STORAGE_SHARED_BUS: CLUS_RESSUBCLASS_STORAGE = -2147483648i32; +pub const CLUS_RESTYPE_NAME_CAU: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClusterAwareUpdatingResource"); +pub const CLUS_RESTYPE_NAME_CLOUD_WITNESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Cloud Witness"); +pub const CLUS_RESTYPE_NAME_CONTAINER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Container"); +pub const CLUS_RESTYPE_NAME_CROSS_CLUSTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Cross Cluster Dependency Orchestrator"); +pub const CLUS_RESTYPE_NAME_DFS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Distributed File System"); +pub const CLUS_RESTYPE_NAME_DFSR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DFS Replicated Folder"); +pub const CLUS_RESTYPE_NAME_DHCP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DHCP Service"); +pub const CLUS_RESTYPE_NAME_DNN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Distributed Network Name"); +pub const CLUS_RESTYPE_NAME_FILESERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("File Server"); +pub const CLUS_RESTYPE_NAME_FILESHR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("File Share"); +pub const CLUS_RESTYPE_NAME_FSWITNESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("File Share Witness"); +pub const CLUS_RESTYPE_NAME_GENAPP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Generic Application"); +pub const CLUS_RESTYPE_NAME_GENSCRIPT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Generic Script"); +pub const CLUS_RESTYPE_NAME_GENSVC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Generic Service"); +pub const CLUS_RESTYPE_NAME_HARDDISK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Physical Disk"); +pub const CLUS_RESTYPE_NAME_HCSVM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HCS Virtual Machine"); +pub const CLUS_RESTYPE_NAME_HEALTH_SERVICE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Health Service"); +pub const CLUS_RESTYPE_NAME_IPADDR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IP Address"); +pub const CLUS_RESTYPE_NAME_IPV6_NATIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IPv6 Address"); +pub const CLUS_RESTYPE_NAME_IPV6_TUNNEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IPv6 Tunnel Address"); +pub const CLUS_RESTYPE_NAME_ISCSITARGET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("iSCSI Target Server"); +pub const CLUS_RESTYPE_NAME_ISNS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft iSNS"); +pub const CLUS_RESTYPE_NAME_MSDTC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Distributed Transaction Coordinator"); +pub const CLUS_RESTYPE_NAME_MSMQ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Message Queue Server"); +pub const CLUS_RESTYPE_NAME_MSMQ_TRIGGER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSMQTriggers"); +pub const CLUS_RESTYPE_NAME_NAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Nat"); +pub const CLUS_RESTYPE_NAME_NETNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Network Name"); +pub const CLUS_RESTYPE_NAME_NETWORK_FILE_SYSTEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Network File System"); +pub const CLUS_RESTYPE_NAME_NEW_MSMQ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSMQ"); +pub const CLUS_RESTYPE_NAME_NFS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NFS Share"); +pub const CLUS_RESTYPE_NAME_NFS_MSNS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NFS Multi Server Namespace"); +pub const CLUS_RESTYPE_NAME_NFS_V2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Network File System"); +pub const CLUS_RESTYPE_NAME_NV_PROVIDER_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Provider Address"); +pub const CLUS_RESTYPE_NAME_PHYS_DISK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Physical Disk"); +pub const CLUS_RESTYPE_NAME_PRTSPLR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Print Spooler"); +pub const CLUS_RESTYPE_NAME_SCALEOUT_MASTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Scaleout Master"); +pub const CLUS_RESTYPE_NAME_SCALEOUT_WORKER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Scaleout Worker"); +pub const CLUS_RESTYPE_NAME_SDDC_MANAGEMENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SDDC Management"); +pub const CLUS_RESTYPE_NAME_SODAFILESERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Scale Out File Server"); +pub const CLUS_RESTYPE_NAME_STORAGE_POLICIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Storage Policies"); +pub const CLUS_RESTYPE_NAME_STORAGE_POOL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Storage Pool"); +pub const CLUS_RESTYPE_NAME_STORAGE_REPLICA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Storage Replica"); +pub const CLUS_RESTYPE_NAME_STORQOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Storage QoS Policy Manager"); +pub const CLUS_RESTYPE_NAME_TASKSCHEDULER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Task Scheduler"); +pub const CLUS_RESTYPE_NAME_VIRTUAL_IPV4: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Disjoint IPv4 Address"); +pub const CLUS_RESTYPE_NAME_VIRTUAL_IPV6: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Disjoint IPv6 Address"); +pub const CLUS_RESTYPE_NAME_VM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Virtual Machine"); +pub const CLUS_RESTYPE_NAME_VMREPLICA_BROKER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Virtual Machine Replication Broker"); +pub const CLUS_RESTYPE_NAME_VMREPLICA_COORDINATOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Virtual Machine Replication Coordinator"); +pub const CLUS_RESTYPE_NAME_VM_CONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Virtual Machine Configuration"); +pub const CLUS_RESTYPE_NAME_VM_WMI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Virtual Machine Cluster WMI"); +pub const CLUS_RESTYPE_NAME_VSSTASK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Volume Shadow Copy Service Task"); +pub const CLUS_RESTYPE_NAME_WINS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WINS Service"); +pub const CLUS_RES_NAME_SCALEOUT_MASTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Scaleout Master"); +pub const CLUS_RES_NAME_SCALEOUT_WORKER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Scaleout Worker"); +pub const CREATEDC_PRESENT: u32 = 2u32; +pub const CREATE_CLUSTER_MAJOR_VERSION_MASK: u32 = 4294967040u32; +pub const CREATE_CLUSTER_VERSION: u32 = 1536u32; +pub const CTCTL_GET_FAULT_DOMAIN_STATE: CLCTL_CODES = 789i32; +pub const CTCTL_GET_ROUTESTATUS_BASIC: CLCTL_CODES = 781i32; +pub const CTCTL_GET_ROUTESTATUS_EXTENDED: CLCTL_CODES = 785i32; +pub const ClusApplication: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606e5_2631_11d1_89f1_00a0c90d061e); +pub const ClusCryptoKeys: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e6072b_2631_11d1_89f1_00a0c90d061e); +pub const ClusDisk: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60723_2631_11d1_89f1_00a0c90d061e); +pub const ClusDisks: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60725_2631_11d1_89f1_00a0c90d061e); +pub const ClusGroupTypeAvailableStorage: CLUSGROUP_TYPE = 2i32; +pub const ClusGroupTypeClusterUpdateAgent: CLUSGROUP_TYPE = 117i32; +pub const ClusGroupTypeCoreCluster: CLUSGROUP_TYPE = 1i32; +pub const ClusGroupTypeCoreSddc: CLUSGROUP_TYPE = 123i32; +pub const ClusGroupTypeCrossClusterOrchestrator: CLUSGROUP_TYPE = 121i32; +pub const ClusGroupTypeDhcpServer: CLUSGROUP_TYPE = 102i32; +pub const ClusGroupTypeDtc: CLUSGROUP_TYPE = 103i32; +pub const ClusGroupTypeFileServer: CLUSGROUP_TYPE = 100i32; +pub const ClusGroupTypeGenericApplication: CLUSGROUP_TYPE = 107i32; +pub const ClusGroupTypeGenericScript: CLUSGROUP_TYPE = 109i32; +pub const ClusGroupTypeGenericService: CLUSGROUP_TYPE = 108i32; +pub const ClusGroupTypeIScsiNameService: CLUSGROUP_TYPE = 110i32; +pub const ClusGroupTypeIScsiTarget: CLUSGROUP_TYPE = 113i32; +pub const ClusGroupTypeInfrastructureFileServer: CLUSGROUP_TYPE = 122i32; +pub const ClusGroupTypeMsmq: CLUSGROUP_TYPE = 104i32; +pub const ClusGroupTypePrintServer: CLUSGROUP_TYPE = 101i32; +pub const ClusGroupTypeScaleoutCluster: CLUSGROUP_TYPE = 118i32; +pub const ClusGroupTypeScaleoutFileServer: CLUSGROUP_TYPE = 114i32; +pub const ClusGroupTypeSharedVolume: CLUSGROUP_TYPE = 4i32; +pub const ClusGroupTypeStandAloneDfs: CLUSGROUP_TYPE = 106i32; +pub const ClusGroupTypeStoragePool: CLUSGROUP_TYPE = 5i32; +pub const ClusGroupTypeStorageReplica: CLUSGROUP_TYPE = 119i32; +pub const ClusGroupTypeTaskScheduler: CLUSGROUP_TYPE = 116i32; +pub const ClusGroupTypeTemporary: CLUSGROUP_TYPE = 3i32; +pub const ClusGroupTypeTsSessionBroker: CLUSGROUP_TYPE = 112i32; +pub const ClusGroupTypeUnknown: CLUSGROUP_TYPE = 9999i32; +pub const ClusGroupTypeVMReplicaBroker: CLUSGROUP_TYPE = 115i32; +pub const ClusGroupTypeVMReplicaCoordinator: CLUSGROUP_TYPE = 120i32; +pub const ClusGroupTypeVirtualMachine: CLUSGROUP_TYPE = 111i32; +pub const ClusGroupTypeWins: CLUSGROUP_TYPE = 105i32; +pub const ClusNetInterface: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606ed_2631_11d1_89f1_00a0c90d061e); +pub const ClusNetInterfaces: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606ef_2631_11d1_89f1_00a0c90d061e); +pub const ClusNetwork: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606f1_2631_11d1_89f1_00a0c90d061e); +pub const ClusNetworkNetInterfaces: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606f5_2631_11d1_89f1_00a0c90d061e); +pub const ClusNetworks: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606f3_2631_11d1_89f1_00a0c90d061e); +pub const ClusNode: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606f7_2631_11d1_89f1_00a0c90d061e); +pub const ClusNodeNetInterfaces: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606fb_2631_11d1_89f1_00a0c90d061e); +pub const ClusNodes: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606f9_2631_11d1_89f1_00a0c90d061e); +pub const ClusPartition: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e6071f_2631_11d1_89f1_00a0c90d061e); +pub const ClusPartitionEx: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53d51d26_b51b_4a79_b2c3_5048d93a98fc); +pub const ClusPartitions: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60721_2631_11d1_89f1_00a0c90d061e); +pub const ClusProperties: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606ff_2631_11d1_89f1_00a0c90d061e); +pub const ClusProperty: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606fd_2631_11d1_89f1_00a0c90d061e); +pub const ClusPropertyValue: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60719_2631_11d1_89f1_00a0c90d061e); +pub const ClusPropertyValueData: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e6071d_2631_11d1_89f1_00a0c90d061e); +pub const ClusPropertyValues: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e6071b_2631_11d1_89f1_00a0c90d061e); +pub const ClusRefObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60701_2631_11d1_89f1_00a0c90d061e); +pub const ClusRegistryKeys: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60729_2631_11d1_89f1_00a0c90d061e); +pub const ClusResDependencies: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60703_2631_11d1_89f1_00a0c90d061e); +pub const ClusResDependents: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e6072d_2631_11d1_89f1_00a0c90d061e); +pub const ClusResGroup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60705_2631_11d1_89f1_00a0c90d061e); +pub const ClusResGroupPreferredOwnerNodes: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606e7_2631_11d1_89f1_00a0c90d061e); +pub const ClusResGroupResources: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606e9_2631_11d1_89f1_00a0c90d061e); +pub const ClusResGroups: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60707_2631_11d1_89f1_00a0c90d061e); +pub const ClusResPossibleOwnerNodes: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e6070d_2631_11d1_89f1_00a0c90d061e); +pub const ClusResType: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e6070f_2631_11d1_89f1_00a0c90d061e); +pub const ClusResTypePossibleOwnerNodes: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60717_2631_11d1_89f1_00a0c90d061e); +pub const ClusResTypeResources: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60713_2631_11d1_89f1_00a0c90d061e); +pub const ClusResTypes: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60711_2631_11d1_89f1_00a0c90d061e); +pub const ClusResource: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60709_2631_11d1_89f1_00a0c90d061e); +pub const ClusResources: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e6070b_2631_11d1_89f1_00a0c90d061e); +pub const ClusScsiAddress: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60727_2631_11d1_89f1_00a0c90d061e); +pub const ClusVersion: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e60715_2631_11d1_89f1_00a0c90d061e); +pub const Cluster: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606e3_2631_11d1_89f1_00a0c90d061e); +pub const ClusterGroupAllowFailback: CLUSTER_GROUP_AUTOFAILBACK_TYPE = 1i32; +pub const ClusterGroupFailbackTypeCount: CLUSTER_GROUP_AUTOFAILBACK_TYPE = 2i32; +pub const ClusterGroupFailed: CLUSTER_GROUP_STATE = 2i32; +pub const ClusterGroupOffline: CLUSTER_GROUP_STATE = 1i32; +pub const ClusterGroupOnline: CLUSTER_GROUP_STATE = 0i32; +pub const ClusterGroupPartialOnline: CLUSTER_GROUP_STATE = 3i32; +pub const ClusterGroupPending: CLUSTER_GROUP_STATE = 4i32; +pub const ClusterGroupPreventFailback: CLUSTER_GROUP_AUTOFAILBACK_TYPE = 0i32; +pub const ClusterGroupStateUnknown: CLUSTER_GROUP_STATE = -1i32; +pub const ClusterNames: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606eb_2631_11d1_89f1_00a0c90d061e); +pub const ClusterNetInterfaceFailed: CLUSTER_NETINTERFACE_STATE = 1i32; +pub const ClusterNetInterfaceStateUnknown: CLUSTER_NETINTERFACE_STATE = -1i32; +pub const ClusterNetInterfaceUnavailable: CLUSTER_NETINTERFACE_STATE = 0i32; +pub const ClusterNetInterfaceUnreachable: CLUSTER_NETINTERFACE_STATE = 2i32; +pub const ClusterNetInterfaceUp: CLUSTER_NETINTERFACE_STATE = 3i32; +pub const ClusterNetworkDown: CLUSTER_NETWORK_STATE = 1i32; +pub const ClusterNetworkPartitioned: CLUSTER_NETWORK_STATE = 2i32; +pub const ClusterNetworkRoleClientAccess: CLUSTER_NETWORK_ROLE = 2i32; +pub const ClusterNetworkRoleInternalAndClient: CLUSTER_NETWORK_ROLE = 3i32; +pub const ClusterNetworkRoleInternalUse: CLUSTER_NETWORK_ROLE = 1i32; +pub const ClusterNetworkRoleNone: CLUSTER_NETWORK_ROLE = 0i32; +pub const ClusterNetworkStateUnknown: CLUSTER_NETWORK_STATE = -1i32; +pub const ClusterNetworkUnavailable: CLUSTER_NETWORK_STATE = 0i32; +pub const ClusterNetworkUp: CLUSTER_NETWORK_STATE = 3i32; +pub const ClusterNodeDown: CLUSTER_NODE_STATE = 1i32; +pub const ClusterNodeDrainStatusCount: CLUSTER_NODE_DRAIN_STATUS = 4i32; +pub const ClusterNodeJoining: CLUSTER_NODE_STATE = 3i32; +pub const ClusterNodePaused: CLUSTER_NODE_STATE = 2i32; +pub const ClusterNodeResumeFailbackTypeCount: CLUSTER_NODE_RESUME_FAILBACK_TYPE = 3i32; +pub const ClusterNodeStateUnknown: CLUSTER_NODE_STATE = -1i32; +pub const ClusterNodeUp: CLUSTER_NODE_STATE = 0i32; +pub const ClusterResourceApplicationOSHeartBeat: CLUSTER_RESOURCE_APPLICATION_STATE = 2i32; +pub const ClusterResourceApplicationReady: CLUSTER_RESOURCE_APPLICATION_STATE = 3i32; +pub const ClusterResourceApplicationStateUnknown: CLUSTER_RESOURCE_APPLICATION_STATE = 1i32; +pub const ClusterResourceDontRestart: CLUSTER_RESOURCE_RESTART_ACTION = 0i32; +pub const ClusterResourceEmbeddedFailureActionLogOnly: CLUSTER_RESOURCE_EMBEDDED_FAILURE_ACTION = 1i32; +pub const ClusterResourceEmbeddedFailureActionNone: CLUSTER_RESOURCE_EMBEDDED_FAILURE_ACTION = 0i32; +pub const ClusterResourceEmbeddedFailureActionRecover: CLUSTER_RESOURCE_EMBEDDED_FAILURE_ACTION = 2i32; +pub const ClusterResourceFailed: CLUSTER_RESOURCE_STATE = 4i32; +pub const ClusterResourceInherited: CLUSTER_RESOURCE_STATE = 0i32; +pub const ClusterResourceInitializing: CLUSTER_RESOURCE_STATE = 1i32; +pub const ClusterResourceOffline: CLUSTER_RESOURCE_STATE = 3i32; +pub const ClusterResourceOfflinePending: CLUSTER_RESOURCE_STATE = 130i32; +pub const ClusterResourceOnline: CLUSTER_RESOURCE_STATE = 2i32; +pub const ClusterResourceOnlinePending: CLUSTER_RESOURCE_STATE = 129i32; +pub const ClusterResourcePending: CLUSTER_RESOURCE_STATE = 128i32; +pub const ClusterResourceRestartActionCount: CLUSTER_RESOURCE_RESTART_ACTION = 3i32; +pub const ClusterResourceRestartNoNotify: CLUSTER_RESOURCE_RESTART_ACTION = 1i32; +pub const ClusterResourceRestartNotify: CLUSTER_RESOURCE_RESTART_ACTION = 2i32; +pub const ClusterResourceStateUnknown: CLUSTER_RESOURCE_STATE = -1i32; +pub const ClusterRoleClustered: CLUSTER_ROLE_STATE = 0i32; +pub const ClusterRoleDFSReplicatedFolder: CLUSTER_ROLE = 15i32; +pub const ClusterRoleDHCP: CLUSTER_ROLE = 0i32; +pub const ClusterRoleDTC: CLUSTER_ROLE = 1i32; +pub const ClusterRoleDistributedFileSystem: CLUSTER_ROLE = 16i32; +pub const ClusterRoleDistributedNetworkName: CLUSTER_ROLE = 17i32; +pub const ClusterRoleFileServer: CLUSTER_ROLE = 2i32; +pub const ClusterRoleFileShare: CLUSTER_ROLE = 18i32; +pub const ClusterRoleFileShareWitness: CLUSTER_ROLE = 19i32; +pub const ClusterRoleGenericApplication: CLUSTER_ROLE = 3i32; +pub const ClusterRoleGenericScript: CLUSTER_ROLE = 4i32; +pub const ClusterRoleGenericService: CLUSTER_ROLE = 5i32; +pub const ClusterRoleHardDisk: CLUSTER_ROLE = 20i32; +pub const ClusterRoleIPAddress: CLUSTER_ROLE = 21i32; +pub const ClusterRoleIPV6Address: CLUSTER_ROLE = 22i32; +pub const ClusterRoleIPV6TunnelAddress: CLUSTER_ROLE = 23i32; +pub const ClusterRoleISCSINameServer: CLUSTER_ROLE = 6i32; +pub const ClusterRoleISCSITargetServer: CLUSTER_ROLE = 24i32; +pub const ClusterRoleMSMQ: CLUSTER_ROLE = 7i32; +pub const ClusterRoleNFS: CLUSTER_ROLE = 8i32; +pub const ClusterRoleNetworkFileSystem: CLUSTER_ROLE = 14i32; +pub const ClusterRoleNetworkName: CLUSTER_ROLE = 25i32; +pub const ClusterRolePhysicalDisk: CLUSTER_ROLE = 26i32; +pub const ClusterRolePrintServer: CLUSTER_ROLE = 9i32; +pub const ClusterRoleSODAFileServer: CLUSTER_ROLE = 27i32; +pub const ClusterRoleStandAloneNamespaceServer: CLUSTER_ROLE = 10i32; +pub const ClusterRoleStoragePool: CLUSTER_ROLE = 28i32; +pub const ClusterRoleTaskScheduler: CLUSTER_ROLE = 13i32; +pub const ClusterRoleUnclustered: CLUSTER_ROLE_STATE = 1i32; +pub const ClusterRoleUnknown: CLUSTER_ROLE_STATE = -1i32; +pub const ClusterRoleVirtualMachine: CLUSTER_ROLE = 29i32; +pub const ClusterRoleVirtualMachineConfiguration: CLUSTER_ROLE = 30i32; +pub const ClusterRoleVirtualMachineReplicaBroker: CLUSTER_ROLE = 31i32; +pub const ClusterRoleVolumeShadowCopyServiceTask: CLUSTER_ROLE = 11i32; +pub const ClusterRoleWINS: CLUSTER_ROLE = 12i32; +pub const ClusterSetupPhaseAddClusterProperties: CLUSTER_SETUP_PHASE = 201i32; +pub const ClusterSetupPhaseAddNodeToCluster: CLUSTER_SETUP_PHASE = 301i32; +pub const ClusterSetupPhaseCleanupCOs: CLUSTER_SETUP_PHASE = 402i32; +pub const ClusterSetupPhaseCleanupNode: CLUSTER_SETUP_PHASE = 405i32; +pub const ClusterSetupPhaseClusterGroupOnline: CLUSTER_SETUP_PHASE = 206i32; +pub const ClusterSetupPhaseConfigureClusSvc: CLUSTER_SETUP_PHASE = 104i32; +pub const ClusterSetupPhaseConfigureClusterAccount: CLUSTER_SETUP_PHASE = 109i32; +pub const ClusterSetupPhaseContinue: CLUSTER_SETUP_PHASE_TYPE = 2i32; +pub const ClusterSetupPhaseCoreGroupCleanup: CLUSTER_SETUP_PHASE = 406i32; +pub const ClusterSetupPhaseCreateClusterAccount: CLUSTER_SETUP_PHASE = 108i32; +pub const ClusterSetupPhaseCreateGroups: CLUSTER_SETUP_PHASE = 203i32; +pub const ClusterSetupPhaseCreateIPAddressResources: CLUSTER_SETUP_PHASE = 204i32; +pub const ClusterSetupPhaseCreateNetworkName: CLUSTER_SETUP_PHASE = 205i32; +pub const ClusterSetupPhaseCreateResourceTypes: CLUSTER_SETUP_PHASE = 202i32; +pub const ClusterSetupPhaseDeleteGroup: CLUSTER_SETUP_PHASE = 401i32; +pub const ClusterSetupPhaseEnd: CLUSTER_SETUP_PHASE_TYPE = 3i32; +pub const ClusterSetupPhaseEvictNode: CLUSTER_SETUP_PHASE = 404i32; +pub const ClusterSetupPhaseFailureCleanup: CLUSTER_SETUP_PHASE = 999i32; +pub const ClusterSetupPhaseFatal: CLUSTER_SETUP_PHASE_SEVERITY = 3i32; +pub const ClusterSetupPhaseFormingCluster: CLUSTER_SETUP_PHASE = 200i32; +pub const ClusterSetupPhaseGettingCurrentMembership: CLUSTER_SETUP_PHASE = 300i32; +pub const ClusterSetupPhaseInformational: CLUSTER_SETUP_PHASE_SEVERITY = 1i32; +pub const ClusterSetupPhaseInitialize: CLUSTER_SETUP_PHASE = 1i32; +pub const ClusterSetupPhaseMoveGroup: CLUSTER_SETUP_PHASE = 400i32; +pub const ClusterSetupPhaseNodeUp: CLUSTER_SETUP_PHASE = 302i32; +pub const ClusterSetupPhaseOfflineGroup: CLUSTER_SETUP_PHASE = 403i32; +pub const ClusterSetupPhaseQueryClusterNameAccount: CLUSTER_SETUP_PHASE = 106i32; +pub const ClusterSetupPhaseReport: CLUSTER_SETUP_PHASE_TYPE = 4i32; +pub const ClusterSetupPhaseStart: CLUSTER_SETUP_PHASE_TYPE = 1i32; +pub const ClusterSetupPhaseStartingClusSvc: CLUSTER_SETUP_PHASE = 105i32; +pub const ClusterSetupPhaseValidateClusDisk: CLUSTER_SETUP_PHASE = 103i32; +pub const ClusterSetupPhaseValidateClusterNameAccount: CLUSTER_SETUP_PHASE = 107i32; +pub const ClusterSetupPhaseValidateNetft: CLUSTER_SETUP_PHASE = 102i32; +pub const ClusterSetupPhaseValidateNodeState: CLUSTER_SETUP_PHASE = 100i32; +pub const ClusterSetupPhaseWarning: CLUSTER_SETUP_PHASE_SEVERITY = 2i32; +pub const ClusterSharedVolumeHWSnapshotCompleted: CLUSTER_SHARED_VOLUME_SNAPSHOT_STATE = 2i32; +pub const ClusterSharedVolumePrepareForFreeze: CLUSTER_SHARED_VOLUME_SNAPSHOT_STATE = 3i32; +pub const ClusterSharedVolumePrepareForHWSnapshot: CLUSTER_SHARED_VOLUME_SNAPSHOT_STATE = 1i32; +pub const ClusterSharedVolumeRenameInputTypeNone: CLUSTER_SHARED_VOLUME_RENAME_INPUT_TYPE = 0i32; +pub const ClusterSharedVolumeRenameInputTypeVolumeGuid: CLUSTER_SHARED_VOLUME_RENAME_INPUT_TYPE = 4i32; +pub const ClusterSharedVolumeRenameInputTypeVolumeId: CLUSTER_SHARED_VOLUME_RENAME_INPUT_TYPE = 2i32; +pub const ClusterSharedVolumeRenameInputTypeVolumeName: CLUSTER_SHARED_VOLUME_RENAME_INPUT_TYPE = 3i32; +pub const ClusterSharedVolumeRenameInputTypeVolumeOffset: CLUSTER_SHARED_VOLUME_RENAME_INPUT_TYPE = 1i32; +pub const ClusterSharedVolumeSnapshotStateUnknown: CLUSTER_SHARED_VOLUME_SNAPSHOT_STATE = 0i32; +pub const ClusterStateNotConfigured: NODE_CLUSTER_STATE = 1i32; +pub const ClusterStateNotInstalled: NODE_CLUSTER_STATE = 0i32; +pub const ClusterStateNotRunning: NODE_CLUSTER_STATE = 3i32; +pub const ClusterStateRunning: NODE_CLUSTER_STATE = 19i32; +pub const ClusterStorageNodeDown: CLUSTER_STORAGENODE_STATE = 2i32; +pub const ClusterStorageNodePaused: CLUSTER_STORAGENODE_STATE = 3i32; +pub const ClusterStorageNodeStarting: CLUSTER_STORAGENODE_STATE = 4i32; +pub const ClusterStorageNodeStateUnknown: CLUSTER_STORAGENODE_STATE = 0i32; +pub const ClusterStorageNodeStopping: CLUSTER_STORAGENODE_STATE = 5i32; +pub const ClusterStorageNodeUp: CLUSTER_STORAGENODE_STATE = 1i32; +pub const ClusterUpgradePhaseInitialize: CLUSTER_UPGRADE_PHASE = 1i32; +pub const ClusterUpgradePhaseInstallingNewComponents: CLUSTER_UPGRADE_PHASE = 4i32; +pub const ClusterUpgradePhaseUpgradeComplete: CLUSTER_UPGRADE_PHASE = 5i32; +pub const ClusterUpgradePhaseUpgradingComponents: CLUSTER_UPGRADE_PHASE = 3i32; +pub const ClusterUpgradePhaseValidatingUpgrade: CLUSTER_UPGRADE_PHASE = 2i32; +pub const DNS_LENGTH: u32 = 64u32; +pub const DoNotFailbackGroups: CLUSTER_NODE_RESUME_FAILBACK_TYPE = 0i32; +pub const DomainNames: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2e606e1_2631_11d1_89f1_00a0c90d061e); +pub const ENABLE_CLUSTER_SHARED_VOLUMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableSharedVolumes"); +pub const FAILURE_TYPE_EMBEDDED: FAILURE_TYPE = 1i32; +pub const FAILURE_TYPE_GENERAL: FAILURE_TYPE = 0i32; +pub const FAILURE_TYPE_NETWORK_LOSS: FAILURE_TYPE = 2i32; +pub const FE_UPGRADE_VERSION: u32 = 4u32; +pub const FILESHARE_CHANGE_ADD: FILESHARE_CHANGE_ENUM = 1i32; +pub const FILESHARE_CHANGE_DEL: FILESHARE_CHANGE_ENUM = 2i32; +pub const FILESHARE_CHANGE_MODIFY: FILESHARE_CHANGE_ENUM = 3i32; +pub const FILESHARE_CHANGE_NONE: FILESHARE_CHANGE_ENUM = 0i32; +pub const FailbackGroupsImmediately: CLUSTER_NODE_RESUME_FAILBACK_TYPE = 1i32; +pub const FailbackGroupsPerPolicy: CLUSTER_NODE_RESUME_FAILBACK_TYPE = 2i32; +pub const GROUPSET_READY_SETTING_APPLICATION_READY: u32 = 4u32; +pub const GROUPSET_READY_SETTING_DELAY: u32 = 1u32; +pub const GROUPSET_READY_SETTING_ONLINE: u32 = 2u32; +pub const GROUPSET_READY_SETTING_OS_HEARTBEAT: u32 = 3u32; +pub const GROUP_FAILURE_INFO_VERSION_1: u32 = 1u32; +pub const GRP_PLACEMENT_OPTIONS_ALL: GRP_PLACEMENT_OPTIONS = 1i32; +pub const GRP_PLACEMENT_OPTIONS_DEFAULT: GRP_PLACEMENT_OPTIONS = 0i32; +pub const GRP_PLACEMENT_OPTIONS_DISABLE_AUTOBALANCING: GRP_PLACEMENT_OPTIONS = 1i32; +pub const GRP_PLACEMENT_OPTIONS_MIN_VALUE: GRP_PLACEMENT_OPTIONS = 0i32; +pub const GUID_PRESENT: u32 = 1u32; +pub const HCI_UPGRADE_BIT: u32 = 32768u32; +pub const LOCKED_MODE_FLAGS_DONT_REMOVE_FROM_MOVE_QUEUE: u32 = 1u32; +pub const LOG_ERROR: LOG_LEVEL = 2i32; +pub const LOG_INFORMATION: LOG_LEVEL = 0i32; +pub const LOG_SEVERE: LOG_LEVEL = 3i32; +pub const LOG_WARNING: LOG_LEVEL = 1i32; +pub const MAINTENANCE_MODE_V2_SIG: u32 = 2881155087u32; +pub const MAX_CLUSTERNAME_LENGTH: u32 = 63u32; +pub const MAX_CO_PASSWORD_LENGTH: u32 = 16u32; +pub const MAX_CO_PASSWORD_LENGTHEX: u32 = 127u32; +pub const MAX_CO_PASSWORD_STORAGEEX: u32 = 128u32; +pub const MAX_CREATINGDC_LENGTH: u32 = 256u32; +pub const MAX_OBJECTID: u32 = 64u32; +pub const MINIMUM_NEVER_PREEMPT_PRIORITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MinimumNeverPreemptPriority"); +pub const MINIMUM_PREEMPTOR_PRIORITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MinimumPreemptorPriority"); +pub const MN_UPGRADE_VERSION: u32 = 3u32; +pub const MaintenanceModeTypeDisableIsAliveCheck: MAINTENANCE_MODE_TYPE_ENUM = 1i32; +pub const MaintenanceModeTypeOfflineResource: MAINTENANCE_MODE_TYPE_ENUM = 2i32; +pub const MaintenanceModeTypeUnclusterResource: MAINTENANCE_MODE_TYPE_ENUM = 3i32; +pub const ModifyQuorum: CLUSTER_QUORUM_TYPE = 1i32; +pub const NINETEEN_H1_UPGRADE_VERSION: u32 = 1u32; +pub const NINETEEN_H2_UPGRADE_VERSION: u32 = 2u32; +pub const NI_UPGRADE_VERSION: u32 = 2u32; +pub const NNLEN: u32 = 80u32; +pub const NT10_MAJOR_VERSION: u32 = 9u32; +pub const NT11_MAJOR_VERSION: u32 = 10u32; +pub const NT12_MAJOR_VERSION: u32 = 11u32; +pub const NT13_MAJOR_VERSION: u32 = 12u32; +pub const NT4SP4_MAJOR_VERSION: u32 = 2u32; +pub const NT4_MAJOR_VERSION: u32 = 1u32; +pub const NT51_MAJOR_VERSION: u32 = 4u32; +pub const NT5_MAJOR_VERSION: u32 = 3u32; +pub const NT6_MAJOR_VERSION: u32 = 5u32; +pub const NT7_MAJOR_VERSION: u32 = 6u32; +pub const NT8_MAJOR_VERSION: u32 = 7u32; +pub const NT9_MAJOR_VERSION: u32 = 8u32; +pub const NodeDrainStatusCompleted: CLUSTER_NODE_DRAIN_STATUS = 2i32; +pub const NodeDrainStatusFailed: CLUSTER_NODE_DRAIN_STATUS = 3i32; +pub const NodeDrainStatusInProgress: CLUSTER_NODE_DRAIN_STATUS = 1i32; +pub const NodeDrainStatusNotInitiated: CLUSTER_NODE_DRAIN_STATUS = 0i32; +pub const NodeStatusAvoidPlacement: CLUSTER_NODE_STATUS = 32i32; +pub const NodeStatusDrainCompleted: CLUSTER_NODE_STATUS = 8i32; +pub const NodeStatusDrainFailed: CLUSTER_NODE_STATUS = 16i32; +pub const NodeStatusDrainInProgress: CLUSTER_NODE_STATUS = 4i32; +pub const NodeStatusIsolated: CLUSTER_NODE_STATUS = 1i32; +pub const NodeStatusMax: CLUSTER_NODE_STATUS = 51i32; +pub const NodeStatusNormal: CLUSTER_NODE_STATUS = 0i32; +pub const NodeStatusQuarantined: CLUSTER_NODE_STATUS = 2i32; +pub const OperationalQuorum: CLUSTER_QUORUM_TYPE = 0i32; +pub const PLACEMENT_OPTIONS_ALL: PLACEMENT_OPTIONS = 1023i32; +pub const PLACEMENT_OPTIONS_AVAILABILITY_SET_DOMAIN_AFFINITY: PLACEMENT_OPTIONS = 512i32; +pub const PLACEMENT_OPTIONS_CONSIDER_OFFLINE_VMS: PLACEMENT_OPTIONS = 2i32; +pub const PLACEMENT_OPTIONS_DEFAULT_PLACEMENT_OPTIONS: PLACEMENT_OPTIONS = 0i32; +pub const PLACEMENT_OPTIONS_DISABLE_CSV_VM_DEPENDENCY: PLACEMENT_OPTIONS = 1i32; +pub const PLACEMENT_OPTIONS_DONT_RESUME_AVAILABILTY_SET_VMS_WITH_EXISTING_TEMP_DISK: PLACEMENT_OPTIONS = 128i32; +pub const PLACEMENT_OPTIONS_DONT_RESUME_VMS_WITH_EXISTING_TEMP_DISK: PLACEMENT_OPTIONS = 32i32; +pub const PLACEMENT_OPTIONS_DONT_USE_CPU: PLACEMENT_OPTIONS = 8i32; +pub const PLACEMENT_OPTIONS_DONT_USE_LOCAL_TEMP_DISK: PLACEMENT_OPTIONS = 16i32; +pub const PLACEMENT_OPTIONS_DONT_USE_MEMORY: PLACEMENT_OPTIONS = 4i32; +pub const PLACEMENT_OPTIONS_MIN_VALUE: PLACEMENT_OPTIONS = 0i32; +pub const PLACEMENT_OPTIONS_SAVE_AVAILABILTY_SET_VMS_WITH_LOCAL_DISK_ON_DRAIN_OVERWRITE: PLACEMENT_OPTIONS = 256i32; +pub const PLACEMENT_OPTIONS_SAVE_VMS_WITH_LOCAL_DISK_ON_DRAIN_OVERWRITE: PLACEMENT_OPTIONS = 64i32; +pub const PriorityDisabled: CLUSTER_GROUP_PRIORITY = 0i32; +pub const PriorityHigh: CLUSTER_GROUP_PRIORITY = 3000i32; +pub const PriorityLow: CLUSTER_GROUP_PRIORITY = 1000i32; +pub const PriorityMedium: CLUSTER_GROUP_PRIORITY = 2000i32; +pub const RESOURCE_FAILURE_INFO_VERSION_1: u32 = 1u32; +pub const RESTYPE_MONITOR_SHUTTING_DOWN_CLUSSVC_CRASH: u32 = 2u32; +pub const RESTYPE_MONITOR_SHUTTING_DOWN_NODE_STOP: u32 = 1u32; +pub const RESUTIL_PROPITEM_IN_MEMORY: u32 = 8u32; +pub const RESUTIL_PROPITEM_READ_ONLY: u32 = 1u32; +pub const RESUTIL_PROPITEM_REQUIRED: u32 = 2u32; +pub const RESUTIL_PROPITEM_SIGNED: u32 = 4u32; +pub const RS3_UPGRADE_VERSION: u32 = 1u32; +pub const RS4_UPGRADE_VERSION: u32 = 2u32; +pub const RS5_UPGRADE_VERSION: u32 = 3u32; +pub const RedirectedIOReasonBitLockerInitializing: u64 = 16u64; +pub const RedirectedIOReasonFileSystemTiering: u64 = 8u64; +pub const RedirectedIOReasonMax: u64 = 9223372036854775808u64; +pub const RedirectedIOReasonReFs: u64 = 32u64; +pub const RedirectedIOReasonUnsafeFileSystemFilter: u64 = 2u64; +pub const RedirectedIOReasonUnsafeVolumeFilter: u64 = 4u64; +pub const RedirectedIOReasonUserRequest: u64 = 1u64; +pub const ResdllContextOperationTypeDrain: RESDLL_CONTEXT_OPERATION_TYPE = 1i32; +pub const ResdllContextOperationTypeDrainFailure: RESDLL_CONTEXT_OPERATION_TYPE = 2i32; +pub const ResdllContextOperationTypeEmbeddedFailure: RESDLL_CONTEXT_OPERATION_TYPE = 3i32; +pub const ResdllContextOperationTypeFailback: RESDLL_CONTEXT_OPERATION_TYPE = 0i32; +pub const ResdllContextOperationTypeNetworkDisconnect: RESDLL_CONTEXT_OPERATION_TYPE = 5i32; +pub const ResdllContextOperationTypeNetworkDisconnectMoveRetry: RESDLL_CONTEXT_OPERATION_TYPE = 6i32; +pub const ResdllContextOperationTypePreemption: RESDLL_CONTEXT_OPERATION_TYPE = 4i32; +pub const ResourceExitStateContinue: RESOURCE_EXIT_STATE = 0i32; +pub const ResourceExitStateMax: RESOURCE_EXIT_STATE = 2i32; +pub const ResourceExitStateTerminate: RESOURCE_EXIT_STATE = 1i32; +pub const RmonArbitrateResource: RESOURCE_MONITOR_STATE = 10i32; +pub const RmonDeadlocked: RESOURCE_MONITOR_STATE = 15i32; +pub const RmonDeletingResource: RESOURCE_MONITOR_STATE = 7i32; +pub const RmonIdle: RESOURCE_MONITOR_STATE = 1i32; +pub const RmonInitializing: RESOURCE_MONITOR_STATE = 0i32; +pub const RmonInitializingResource: RESOURCE_MONITOR_STATE = 3i32; +pub const RmonIsAlivePoll: RESOURCE_MONITOR_STATE = 8i32; +pub const RmonLooksAlivePoll: RESOURCE_MONITOR_STATE = 9i32; +pub const RmonOfflineResource: RESOURCE_MONITOR_STATE = 5i32; +pub const RmonOnlineResource: RESOURCE_MONITOR_STATE = 4i32; +pub const RmonReleaseResource: RESOURCE_MONITOR_STATE = 11i32; +pub const RmonResourceControl: RESOURCE_MONITOR_STATE = 12i32; +pub const RmonResourceTypeControl: RESOURCE_MONITOR_STATE = 13i32; +pub const RmonShutdownResource: RESOURCE_MONITOR_STATE = 6i32; +pub const RmonStartingResource: RESOURCE_MONITOR_STATE = 2i32; +pub const RmonTerminateResource: RESOURCE_MONITOR_STATE = 14i32; +pub const SET_APPINSTANCE_CSV_FLAGS_VALID_ONLY_IF_CSV_COORDINATOR: u32 = 1u32; +pub const SR_REPLICATED_PARTITION_DISALLOW_MULTINODE_IO: u32 = 1u32; +pub const STARTUP_EX_ROUTINE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("StartupEx"); +pub const STARTUP_ROUTINE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Startup"); +pub const SharedVolumeStateActive: CLUSTER_SHARED_VOLUME_STATE = 2i32; +pub const SharedVolumeStateActiveRedirected: CLUSTER_SHARED_VOLUME_STATE = 3i32; +pub const SharedVolumeStateActiveVolumeRedirected: CLUSTER_SHARED_VOLUME_STATE = 4i32; +pub const SharedVolumeStatePaused: CLUSTER_SHARED_VOLUME_STATE = 1i32; +pub const SharedVolumeStateUnavailable: CLUSTER_SHARED_VOLUME_STATE = 0i32; +pub const SrDiskReplicationEligibleAlreadyInReplication: SR_DISK_REPLICATION_ELIGIBLE = 9i32; +pub const SrDiskReplicationEligibleFileSystemNotSupported: SR_DISK_REPLICATION_ELIGIBLE = 8i32; +pub const SrDiskReplicationEligibleInSameSite: SR_DISK_REPLICATION_ELIGIBLE = 7i32; +pub const SrDiskReplicationEligibleInsufficientFreeSpace: SR_DISK_REPLICATION_ELIGIBLE = 5i32; +pub const SrDiskReplicationEligibleNone: SR_DISK_REPLICATION_ELIGIBLE = 0i32; +pub const SrDiskReplicationEligibleNotGpt: SR_DISK_REPLICATION_ELIGIBLE = 3i32; +pub const SrDiskReplicationEligibleNotInSameSite: SR_DISK_REPLICATION_ELIGIBLE = 6i32; +pub const SrDiskReplicationEligibleOffline: SR_DISK_REPLICATION_ELIGIBLE = 2i32; +pub const SrDiskReplicationEligibleOther: SR_DISK_REPLICATION_ELIGIBLE = 9999i32; +pub const SrDiskReplicationEligiblePartitionLayoutMismatch: SR_DISK_REPLICATION_ELIGIBLE = 4i32; +pub const SrDiskReplicationEligibleSameAsSpecifiedDisk: SR_DISK_REPLICATION_ELIGIBLE = 10i32; +pub const SrDiskReplicationEligibleYes: SR_DISK_REPLICATION_ELIGIBLE = 1i32; +pub const SrReplicatedDiskTypeDestination: SR_REPLICATED_DISK_TYPE = 3i32; +pub const SrReplicatedDiskTypeLogDestination: SR_REPLICATED_DISK_TYPE = 4i32; +pub const SrReplicatedDiskTypeLogNotInParthership: SR_REPLICATED_DISK_TYPE = 6i32; +pub const SrReplicatedDiskTypeLogSource: SR_REPLICATED_DISK_TYPE = 2i32; +pub const SrReplicatedDiskTypeNone: SR_REPLICATED_DISK_TYPE = 0i32; +pub const SrReplicatedDiskTypeNotInParthership: SR_REPLICATED_DISK_TYPE = 5i32; +pub const SrReplicatedDiskTypeOther: SR_REPLICATED_DISK_TYPE = 7i32; +pub const SrReplicatedDiskTypeSource: SR_REPLICATED_DISK_TYPE = 1i32; +pub const USE_CLIENT_ACCESS_NETWORKS_FOR_CSV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UseClientAccessNetworksForSharedVolumes"); +pub const VmResdllContextLiveMigration: VM_RESDLL_CONTEXT = 4i32; +pub const VmResdllContextSave: VM_RESDLL_CONTEXT = 1i32; +pub const VmResdllContextShutdown: VM_RESDLL_CONTEXT = 2i32; +pub const VmResdllContextShutdownForce: VM_RESDLL_CONTEXT = 3i32; +pub const VmResdllContextTurnOff: VM_RESDLL_CONTEXT = 0i32; +pub const VolumeBackupInProgress: CLUSTER_SHARED_VOLUME_BACKUP_STATE = 1i32; +pub const VolumeBackupNone: CLUSTER_SHARED_VOLUME_BACKUP_STATE = 0i32; +pub const VolumeRedirectedIOReasonMax: u64 = 9223372036854775808u64; +pub const VolumeRedirectedIOReasonNoDiskConnectivity: u64 = 1u64; +pub const VolumeRedirectedIOReasonStorageSpaceNotAttached: u64 = 2u64; +pub const VolumeRedirectedIOReasonVolumeReplicationEnabled: u64 = 4u64; +pub const VolumeStateDismounted: CLUSTER_CSV_VOLUME_FAULT_STATE = 8i32; +pub const VolumeStateInMaintenance: CLUSTER_CSV_VOLUME_FAULT_STATE = 4i32; +pub const VolumeStateNoAccess: CLUSTER_CSV_VOLUME_FAULT_STATE = 2i32; +pub const VolumeStateNoDirectIO: CLUSTER_CSV_VOLUME_FAULT_STATE = 1i32; +pub const VolumeStateNoFaults: CLUSTER_CSV_VOLUME_FAULT_STATE = 0i32; +pub const WS2016_RTM_UPGRADE_VERSION: u32 = 8u32; +pub const WS2016_TP4_UPGRADE_VERSION: u32 = 6u32; +pub const WS2016_TP5_UPGRADE_VERSION: u32 = 7u32; +pub const eResourceStateChangeReasonFailedMove: CLUSTER_RESOURCE_STATE_CHANGE_REASON = 3i32; +pub const eResourceStateChangeReasonFailover: CLUSTER_RESOURCE_STATE_CHANGE_REASON = 2i32; +pub const eResourceStateChangeReasonMove: CLUSTER_RESOURCE_STATE_CHANGE_REASON = 1i32; +pub const eResourceStateChangeReasonRundown: CLUSTER_RESOURCE_STATE_CHANGE_REASON = 5i32; +pub const eResourceStateChangeReasonShutdown: CLUSTER_RESOURCE_STATE_CHANGE_REASON = 4i32; +pub const eResourceStateChangeReasonUnknown: CLUSTER_RESOURCE_STATE_CHANGE_REASON = 0i32; +pub type CLCTL_CODES = i32; +pub type CLUADMEX_OBJECT_TYPE = i32; +pub type CLUSCTL_AFFINITYRULE_CODES = i32; +pub type CLUSCTL_CLUSTER_CODES = i32; +pub type CLUSCTL_GROUPSET_CODES = i32; +pub type CLUSCTL_GROUP_CODES = i32; +pub type CLUSCTL_NETINTERFACE_CODES = i32; +pub type CLUSCTL_NETWORK_CODES = i32; +pub type CLUSCTL_NODE_CODES = i32; +pub type CLUSCTL_RESOURCE_CODES = i32; +pub type CLUSCTL_RESOURCE_TYPE_CODES = i32; +pub type CLUSGROUP_TYPE = i32; +pub type CLUSPROP_IPADDR_ENABLENETBIOS = i32; +pub type CLUSPROP_PIFLAGS = i32; +pub type CLUSTERSET_OBJECT_TYPE = i32; +pub type CLUSTER_CHANGE = i32; +pub type CLUSTER_CHANGE_CLUSTER_V2 = i32; +pub type CLUSTER_CHANGE_GROUPSET_V2 = i32; +pub type CLUSTER_CHANGE_GROUP_V2 = i32; +pub type CLUSTER_CHANGE_NETINTERFACE_V2 = i32; +pub type CLUSTER_CHANGE_NETWORK_V2 = i32; +pub type CLUSTER_CHANGE_NODE_UPGRADE_PHASE_V2 = i32; +pub type CLUSTER_CHANGE_NODE_V2 = i32; +pub type CLUSTER_CHANGE_QUORUM_V2 = i32; +pub type CLUSTER_CHANGE_REGISTRY_V2 = i32; +pub type CLUSTER_CHANGE_RESOURCE_TYPE_V2 = i32; +pub type CLUSTER_CHANGE_RESOURCE_V2 = i32; +pub type CLUSTER_CHANGE_SHARED_VOLUME_V2 = i32; +pub type CLUSTER_CHANGE_SPACEPORT_V2 = i32; +pub type CLUSTER_CLOUD_TYPE = i32; +pub type CLUSTER_CONTROL_OBJECT = i32; +pub type CLUSTER_CSV_VOLUME_FAULT_STATE = i32; +pub type CLUSTER_ENUM = i32; +pub type CLUSTER_GROUP_AUTOFAILBACK_TYPE = i32; +pub type CLUSTER_GROUP_ENUM = i32; +pub type CLUSTER_GROUP_PRIORITY = i32; +pub type CLUSTER_GROUP_STATE = i32; +pub type CLUSTER_MGMT_POINT_RESTYPE = i32; +pub type CLUSTER_MGMT_POINT_TYPE = i32; +pub type CLUSTER_NETINTERFACE_STATE = i32; +pub type CLUSTER_NETWORK_ENUM = i32; +pub type CLUSTER_NETWORK_ROLE = i32; +pub type CLUSTER_NETWORK_STATE = i32; +pub type CLUSTER_NODE_DRAIN_STATUS = i32; +pub type CLUSTER_NODE_ENUM = i32; +pub type CLUSTER_NODE_RESUME_FAILBACK_TYPE = i32; +pub type CLUSTER_NODE_STATE = i32; +pub type CLUSTER_NODE_STATUS = i32; +pub type CLUSTER_NOTIFICATIONS_VERSION = i32; +pub type CLUSTER_OBJECT_TYPE = i32; +pub type CLUSTER_PROPERTY_FORMAT = i32; +pub type CLUSTER_PROPERTY_SYNTAX = u32; +pub type CLUSTER_PROPERTY_TYPE = i32; +pub type CLUSTER_QUORUM_TYPE = i32; +pub type CLUSTER_QUORUM_VALUE = i32; +pub type CLUSTER_REG_COMMAND = i32; +pub type CLUSTER_RESOURCE_APPLICATION_STATE = i32; +pub type CLUSTER_RESOURCE_CLASS = i32; +pub type CLUSTER_RESOURCE_CREATE_FLAGS = i32; +pub type CLUSTER_RESOURCE_EMBEDDED_FAILURE_ACTION = i32; +pub type CLUSTER_RESOURCE_ENUM = i32; +pub type CLUSTER_RESOURCE_RESTART_ACTION = i32; +pub type CLUSTER_RESOURCE_STATE = i32; +pub type CLUSTER_RESOURCE_STATE_CHANGE_REASON = i32; +pub type CLUSTER_RESOURCE_TYPE_ENUM = i32; +pub type CLUSTER_ROLE = i32; +pub type CLUSTER_ROLE_STATE = i32; +pub type CLUSTER_SETUP_PHASE = i32; +pub type CLUSTER_SETUP_PHASE_SEVERITY = i32; +pub type CLUSTER_SETUP_PHASE_TYPE = i32; +pub type CLUSTER_SHARED_VOLUME_BACKUP_STATE = i32; +pub type CLUSTER_SHARED_VOLUME_RENAME_INPUT_TYPE = i32; +pub type CLUSTER_SHARED_VOLUME_SNAPSHOT_STATE = i32; +pub type CLUSTER_SHARED_VOLUME_STATE = i32; +pub type CLUSTER_STORAGENODE_STATE = i32; +pub type CLUSTER_UPGRADE_PHASE = i32; +pub type CLUS_AFFINITY_RULE_TYPE = i32; +pub type CLUS_CHARACTERISTICS = i32; +pub type CLUS_FLAGS = i32; +pub type CLUS_GROUP_START_SETTING = i32; +pub type CLUS_RESSUBCLASS = i32; +pub type CLUS_RESSUBCLASS_NETWORK = i32; +pub type CLUS_RESSUBCLASS_STORAGE = i32; +pub type FAILURE_TYPE = i32; +pub type FILESHARE_CHANGE_ENUM = i32; +pub type GRP_PLACEMENT_OPTIONS = i32; +pub type LOG_LEVEL = i32; +pub type MAINTENANCE_MODE_TYPE_ENUM = i32; +pub type NODE_CLUSTER_STATE = i32; +pub type PLACEMENT_OPTIONS = i32; +pub type RESDLL_CONTEXT_OPERATION_TYPE = i32; +pub type RESOURCE_EXIT_STATE = i32; +pub type RESOURCE_MONITOR_STATE = i32; +pub type SR_DISK_REPLICATION_ELIGIBLE = i32; +pub type SR_REPLICATED_DISK_TYPE = i32; +pub type VM_RESDLL_CONTEXT = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLRES_CALLBACK_FUNCTION_TABLE { + pub LogEvent: PLOG_EVENT_ROUTINE, + pub SetResourceStatusEx: PSET_RESOURCE_STATUS_ROUTINE_EX, + pub SetResourceLockedMode: PSET_RESOURCE_LOCKED_MODE_ROUTINE, + pub SignalFailure: PSIGNAL_FAILURE_ROUTINE, + pub SetResourceInMemoryNodeLocalProperties: PSET_RESOURCE_INMEMORY_NODELOCAL_PROPERTIES_ROUTINE, + pub EndControlCall: PEND_CONTROL_CALL, + pub EndTypeControlCall: PEND_TYPE_CONTROL_CALL, + pub ExtendControlCall: PEXTEND_RES_CONTROL_CALL, + pub ExtendTypeControlCall: PEXTEND_RES_TYPE_CONTROL_CALL, + pub RaiseResTypeNotification: PRAISE_RES_TYPE_NOTIFICATION, + pub ChangeResourceProcessForDumps: PCHANGE_RESOURCE_PROCESS_FOR_DUMPS, + pub ChangeResTypeProcessForDumps: PCHANGE_RES_TYPE_PROCESS_FOR_DUMPS, + pub SetInternalState: PSET_INTERNAL_STATE, + pub SetResourceLockedModeEx: PSET_RESOURCE_LOCKED_MODE_EX_ROUTINE, + pub RequestDump: PREQUEST_DUMP_ROUTINE, + pub SetResourceWprPolicy: PSET_RESOURCE_WPR_POLICY_ROUTINE, + pub ArmWprWatchdogForCurrentResourceCall: PARM_WPR_WATCHDOG_FOR_CURRENT_RESOURCE_CALL_ROUTINE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLRES_CALLBACK_FUNCTION_TABLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLRES_CALLBACK_FUNCTION_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub struct CLRES_FUNCTION_TABLE { + pub TableSize: u32, + pub Version: u32, + pub Anonymous: CLRES_FUNCTION_TABLE_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for CLRES_FUNCTION_TABLE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for CLRES_FUNCTION_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub union CLRES_FUNCTION_TABLE_0 { + pub V1Functions: CLRES_V1_FUNCTIONS, + pub V2Functions: CLRES_V2_FUNCTIONS, + pub V3Functions: CLRES_V3_FUNCTIONS, + pub V4Functions: CLRES_V4_FUNCTIONS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for CLRES_FUNCTION_TABLE_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for CLRES_FUNCTION_TABLE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub struct CLRES_V1_FUNCTIONS { + pub Open: POPEN_ROUTINE, + pub Close: PCLOSE_ROUTINE, + pub Online: PONLINE_ROUTINE, + pub Offline: POFFLINE_ROUTINE, + pub Terminate: PTERMINATE_ROUTINE, + pub LooksAlive: PLOOKS_ALIVE_ROUTINE, + pub IsAlive: PIS_ALIVE_ROUTINE, + pub Arbitrate: PARBITRATE_ROUTINE, + pub Release: PRELEASE_ROUTINE, + pub ResourceControl: PRESOURCE_CONTROL_ROUTINE, + pub ResourceTypeControl: PRESOURCE_TYPE_CONTROL_ROUTINE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for CLRES_V1_FUNCTIONS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for CLRES_V1_FUNCTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub struct CLRES_V2_FUNCTIONS { + pub Open: POPEN_V2_ROUTINE, + pub Close: PCLOSE_ROUTINE, + pub Online: PONLINE_V2_ROUTINE, + pub Offline: POFFLINE_V2_ROUTINE, + pub Terminate: PTERMINATE_ROUTINE, + pub LooksAlive: PLOOKS_ALIVE_ROUTINE, + pub IsAlive: PIS_ALIVE_ROUTINE, + pub Arbitrate: PARBITRATE_ROUTINE, + pub Release: PRELEASE_ROUTINE, + pub ResourceControl: PRESOURCE_CONTROL_ROUTINE, + pub ResourceTypeControl: PRESOURCE_TYPE_CONTROL_ROUTINE, + pub Cancel: PCANCEL_ROUTINE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for CLRES_V2_FUNCTIONS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for CLRES_V2_FUNCTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub struct CLRES_V3_FUNCTIONS { + pub Open: POPEN_V2_ROUTINE, + pub Close: PCLOSE_ROUTINE, + pub Online: PONLINE_V2_ROUTINE, + pub Offline: POFFLINE_V2_ROUTINE, + pub Terminate: PTERMINATE_ROUTINE, + pub LooksAlive: PLOOKS_ALIVE_ROUTINE, + pub IsAlive: PIS_ALIVE_ROUTINE, + pub Arbitrate: PARBITRATE_ROUTINE, + pub Release: PRELEASE_ROUTINE, + pub BeginResourceControl: PBEGIN_RESCALL_ROUTINE, + pub BeginResourceTypeControl: PBEGIN_RESTYPECALL_ROUTINE, + pub Cancel: PCANCEL_ROUTINE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for CLRES_V3_FUNCTIONS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for CLRES_V3_FUNCTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub struct CLRES_V4_FUNCTIONS { + pub Open: POPEN_V2_ROUTINE, + pub Close: PCLOSE_ROUTINE, + pub Online: PONLINE_V2_ROUTINE, + pub Offline: POFFLINE_V2_ROUTINE, + pub Terminate: PTERMINATE_ROUTINE, + pub LooksAlive: PLOOKS_ALIVE_ROUTINE, + pub IsAlive: PIS_ALIVE_ROUTINE, + pub Arbitrate: PARBITRATE_ROUTINE, + pub Release: PRELEASE_ROUTINE, + pub BeginResourceControl: PBEGIN_RESCALL_ROUTINE, + pub BeginResourceTypeControl: PBEGIN_RESTYPECALL_ROUTINE, + pub Cancel: PCANCEL_ROUTINE, + pub BeginResourceControlAsUser: PBEGIN_RESCALL_AS_USER_ROUTINE, + pub BeginResourceTypeControlAsUser: PBEGIN_RESTYPECALL_AS_USER_ROUTINE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for CLRES_V4_FUNCTIONS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for CLRES_V4_FUNCTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUSAPI_REASON_HANDLER { + pub lpParameter: *mut ::core::ffi::c_void, + pub pfnHandler: PCLUSAPI_PFN_REASON_HANDLER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUSAPI_REASON_HANDLER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUSAPI_REASON_HANDLER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUSCTL_GROUP_GET_LAST_MOVE_TIME_OUTPUT { + pub GetTickCount64: u64, + pub GetSystemTime: super::super::Foundation::SYSTEMTIME, + pub NodeId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUSCTL_GROUP_GET_LAST_MOVE_TIME_OUTPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUSCTL_GROUP_GET_LAST_MOVE_TIME_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSCTL_RESOURCE_STATE_CHANGE_REASON_STRUCT { + pub dwSize: u32, + pub dwVersion: u32, + pub eReason: CLUSTER_RESOURCE_STATE_CHANGE_REASON, +} +impl ::core::marker::Copy for CLUSCTL_RESOURCE_STATE_CHANGE_REASON_STRUCT {} +impl ::core::clone::Clone for CLUSCTL_RESOURCE_STATE_CHANGE_REASON_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS_EX2_INPUT { + pub dwFlags: u32, + pub guidPoolFilter: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS_EX2_INPUT {} +impl ::core::clone::Clone for CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS_EX2_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_BINARY { + pub Base: CLUSPROP_VALUE, + pub rgb: [u8; 1], +} +impl ::core::marker::Copy for CLUSPROP_BINARY {} +impl ::core::clone::Clone for CLUSPROP_BINARY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union CLUSPROP_BUFFER_HELPER { + pub pb: *mut u8, + pub pw: *mut u16, + pub pdw: *mut u32, + pub pl: *mut i32, + pub psz: ::windows_sys::core::PWSTR, + pub pList: *mut CLUSPROP_LIST, + pub pSyntax: *mut CLUSPROP_SYNTAX, + pub pName: *mut CLUSPROP_SZ, + pub pValue: *mut CLUSPROP_VALUE, + pub pBinaryValue: *mut CLUSPROP_BINARY, + pub pWordValue: *mut CLUSPROP_WORD, + pub pDwordValue: *mut CLUSPROP_DWORD, + pub pLongValue: *mut CLUSPROP_LONG, + pub pULargeIntegerValue: *mut CLUSPROP_ULARGE_INTEGER, + pub pLargeIntegerValue: *mut CLUSPROP_LARGE_INTEGER, + pub pStringValue: *mut CLUSPROP_SZ, + pub pMultiSzValue: *mut CLUSPROP_SZ, + pub pSecurityDescriptor: *mut CLUSPROP_SECURITY_DESCRIPTOR, + pub pResourceClassValue: *mut CLUSPROP_RESOURCE_CLASS, + pub pResourceClassInfoValue: *mut CLUSPROP_RESOURCE_CLASS_INFO, + pub pDiskSignatureValue: *mut CLUSPROP_DWORD, + pub pScsiAddressValue: *mut CLUSPROP_SCSI_ADDRESS, + pub pDiskNumberValue: *mut CLUSPROP_DWORD, + pub pPartitionInfoValue: *mut CLUSPROP_PARTITION_INFO, + pub pRequiredDependencyValue: *mut CLUSPROP_REQUIRED_DEPENDENCY, + pub pPartitionInfoValueEx: *mut CLUSPROP_PARTITION_INFO_EX, + pub pPartitionInfoValueEx2: *mut CLUSPROP_PARTITION_INFO_EX2, + pub pFileTimeValue: *mut CLUSPROP_FILETIME, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for CLUSPROP_BUFFER_HELPER {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for CLUSPROP_BUFFER_HELPER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_DWORD { + pub Base: CLUSPROP_VALUE, + pub dw: u32, +} +impl ::core::marker::Copy for CLUSPROP_DWORD {} +impl ::core::clone::Clone for CLUSPROP_DWORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUSPROP_FILETIME { + pub Base: CLUSPROP_VALUE, + pub ft: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUSPROP_FILETIME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUSPROP_FILETIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_FTSET_INFO { + pub Base: CLUSPROP_VALUE, + pub Base2: CLUS_FTSET_INFO, +} +impl ::core::marker::Copy for CLUSPROP_FTSET_INFO {} +impl ::core::clone::Clone for CLUSPROP_FTSET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_LARGE_INTEGER { + pub Base: CLUSPROP_VALUE, + pub li: i64, +} +impl ::core::marker::Copy for CLUSPROP_LARGE_INTEGER {} +impl ::core::clone::Clone for CLUSPROP_LARGE_INTEGER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_LIST { + pub nPropertyCount: u32, + pub PropertyName: CLUSPROP_SZ, +} +impl ::core::marker::Copy for CLUSPROP_LIST {} +impl ::core::clone::Clone for CLUSPROP_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_LONG { + pub Base: CLUSPROP_VALUE, + pub l: i32, +} +impl ::core::marker::Copy for CLUSPROP_LONG {} +impl ::core::clone::Clone for CLUSPROP_LONG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_PARTITION_INFO { + pub Base: CLUSPROP_VALUE, + pub Base2: CLUS_PARTITION_INFO, +} +impl ::core::marker::Copy for CLUSPROP_PARTITION_INFO {} +impl ::core::clone::Clone for CLUSPROP_PARTITION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_PARTITION_INFO_EX { + pub Base: CLUSPROP_VALUE, + pub Base2: CLUS_PARTITION_INFO_EX, +} +impl ::core::marker::Copy for CLUSPROP_PARTITION_INFO_EX {} +impl ::core::clone::Clone for CLUSPROP_PARTITION_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_PARTITION_INFO_EX2 { + pub Base: CLUSPROP_PARTITION_INFO_EX, + pub Base2: CLUS_PARTITION_INFO_EX2, +} +impl ::core::marker::Copy for CLUSPROP_PARTITION_INFO_EX2 {} +impl ::core::clone::Clone for CLUSPROP_PARTITION_INFO_EX2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CLUSPROP_REQUIRED_DEPENDENCY { + pub Value: CLUSPROP_VALUE, + pub ResClass: CLUSPROP_RESOURCE_CLASS, + pub ResTypeName: CLUSPROP_SZ, +} +impl ::core::marker::Copy for CLUSPROP_REQUIRED_DEPENDENCY {} +impl ::core::clone::Clone for CLUSPROP_REQUIRED_DEPENDENCY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_RESOURCE_CLASS { + pub Base: CLUSPROP_VALUE, + pub rc: CLUSTER_RESOURCE_CLASS, +} +impl ::core::marker::Copy for CLUSPROP_RESOURCE_CLASS {} +impl ::core::clone::Clone for CLUSPROP_RESOURCE_CLASS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_RESOURCE_CLASS_INFO { + pub Base: CLUSPROP_VALUE, + pub Base2: CLUS_RESOURCE_CLASS_INFO, +} +impl ::core::marker::Copy for CLUSPROP_RESOURCE_CLASS_INFO {} +impl ::core::clone::Clone for CLUSPROP_RESOURCE_CLASS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_SCSI_ADDRESS { + pub Base: CLUSPROP_VALUE, + pub Base2: CLUS_SCSI_ADDRESS, +} +impl ::core::marker::Copy for CLUSPROP_SCSI_ADDRESS {} +impl ::core::clone::Clone for CLUSPROP_SCSI_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct CLUSPROP_SECURITY_DESCRIPTOR { + pub Base: CLUSPROP_VALUE, + pub Anonymous: CLUSPROP_SECURITY_DESCRIPTOR_0, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for CLUSPROP_SECURITY_DESCRIPTOR {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for CLUSPROP_SECURITY_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub union CLUSPROP_SECURITY_DESCRIPTOR_0 { + pub sd: super::super::Security::SECURITY_DESCRIPTOR_RELATIVE, + pub rgbSecurityDescriptor: [u8; 1], +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for CLUSPROP_SECURITY_DESCRIPTOR_0 {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for CLUSPROP_SECURITY_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CLUSPROP_SYNTAX { + pub dw: u32, + pub Anonymous: CLUSPROP_SYNTAX_0, +} +impl ::core::marker::Copy for CLUSPROP_SYNTAX {} +impl ::core::clone::Clone for CLUSPROP_SYNTAX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_SYNTAX_0 { + pub wFormat: u16, + pub wType: u16, +} +impl ::core::marker::Copy for CLUSPROP_SYNTAX_0 {} +impl ::core::clone::Clone for CLUSPROP_SYNTAX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_SZ { + pub Base: CLUSPROP_VALUE, + pub sz: [u16; 1], +} +impl ::core::marker::Copy for CLUSPROP_SZ {} +impl ::core::clone::Clone for CLUSPROP_SZ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_ULARGE_INTEGER { + pub Base: CLUSPROP_VALUE, + pub li: u64, +} +impl ::core::marker::Copy for CLUSPROP_ULARGE_INTEGER {} +impl ::core::clone::Clone for CLUSPROP_ULARGE_INTEGER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_VALUE { + pub Syntax: CLUSPROP_SYNTAX, + pub cbLength: u32, +} +impl ::core::marker::Copy for CLUSPROP_VALUE {} +impl ::core::clone::Clone for CLUSPROP_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSPROP_WORD { + pub Base: CLUSPROP_VALUE, + pub w: u16, +} +impl ::core::marker::Copy for CLUSPROP_WORD {} +impl ::core::clone::Clone for CLUSPROP_WORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTERVERSIONINFO { + pub dwVersionInfoSize: u32, + pub MajorVersion: u16, + pub MinorVersion: u16, + pub BuildNumber: u16, + pub szVendorId: [u16; 64], + pub szCSDVersion: [u16; 64], + pub dwClusterHighestVersion: u32, + pub dwClusterLowestVersion: u32, + pub dwFlags: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for CLUSTERVERSIONINFO {} +impl ::core::clone::Clone for CLUSTERVERSIONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTERVERSIONINFO_NT4 { + pub dwVersionInfoSize: u32, + pub MajorVersion: u16, + pub MinorVersion: u16, + pub BuildNumber: u16, + pub szVendorId: [u16; 64], + pub szCSDVersion: [u16; 64], +} +impl ::core::marker::Copy for CLUSTERVERSIONINFO_NT4 {} +impl ::core::clone::Clone for CLUSTERVERSIONINFO_NT4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUSTER_AVAILABILITY_SET_CONFIG { + pub dwVersion: u32, + pub dwUpdateDomains: u32, + pub dwFaultDomains: u32, + pub bReserveSpareNode: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUSTER_AVAILABILITY_SET_CONFIG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUSTER_AVAILABILITY_SET_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_BATCH_COMMAND { + pub Command: CLUSTER_REG_COMMAND, + pub dwOptions: u32, + pub wzName: ::windows_sys::core::PCWSTR, + pub lpData: *const u8, + pub cbData: u32, +} +impl ::core::marker::Copy for CLUSTER_BATCH_COMMAND {} +impl ::core::clone::Clone for CLUSTER_BATCH_COMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_CREATE_GROUP_INFO { + pub dwVersion: u32, + pub groupType: CLUSGROUP_TYPE, +} +impl ::core::marker::Copy for CLUSTER_CREATE_GROUP_INFO {} +impl ::core::clone::Clone for CLUSTER_CREATE_GROUP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_ENUM_ITEM { + pub dwVersion: u32, + pub dwType: u32, + pub cbId: u32, + pub lpszId: ::windows_sys::core::PWSTR, + pub cbName: u32, + pub lpszName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CLUSTER_ENUM_ITEM {} +impl ::core::clone::Clone for CLUSTER_ENUM_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_GROUP_ENUM_ITEM { + pub dwVersion: u32, + pub cbId: u32, + pub lpszId: ::windows_sys::core::PWSTR, + pub cbName: u32, + pub lpszName: ::windows_sys::core::PWSTR, + pub state: CLUSTER_GROUP_STATE, + pub cbOwnerNode: u32, + pub lpszOwnerNode: ::windows_sys::core::PWSTR, + pub dwFlags: u32, + pub cbProperties: u32, + pub pProperties: *mut ::core::ffi::c_void, + pub cbRoProperties: u32, + pub pRoProperties: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CLUSTER_GROUP_ENUM_ITEM {} +impl ::core::clone::Clone for CLUSTER_GROUP_ENUM_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_HEALTH_FAULT { + pub Id: ::windows_sys::core::PWSTR, + pub ErrorType: u32, + pub ErrorCode: u32, + pub Description: ::windows_sys::core::PWSTR, + pub Provider: ::windows_sys::core::PWSTR, + pub Flags: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for CLUSTER_HEALTH_FAULT {} +impl ::core::clone::Clone for CLUSTER_HEALTH_FAULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_HEALTH_FAULT_ARRAY { + pub numFaults: u32, + pub faults: *mut CLUSTER_HEALTH_FAULT, +} +impl ::core::marker::Copy for CLUSTER_HEALTH_FAULT_ARRAY {} +impl ::core::clone::Clone for CLUSTER_HEALTH_FAULT_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_IP_ENTRY { + pub lpszIpAddress: ::windows_sys::core::PCWSTR, + pub dwPrefixLength: u32, +} +impl ::core::marker::Copy for CLUSTER_IP_ENTRY {} +impl ::core::clone::Clone for CLUSTER_IP_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUSTER_MEMBERSHIP_INFO { + pub HasQuorum: super::super::Foundation::BOOL, + pub UpnodesSize: u32, + pub Upnodes: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUSTER_MEMBERSHIP_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUSTER_MEMBERSHIP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_READ_BATCH_COMMAND { + pub Command: CLUSTER_REG_COMMAND, + pub dwOptions: u32, + pub wzSubkeyName: ::windows_sys::core::PCWSTR, + pub wzValueName: ::windows_sys::core::PCWSTR, + pub lpData: *const u8, + pub cbData: u32, +} +impl ::core::marker::Copy for CLUSTER_READ_BATCH_COMMAND {} +impl ::core::clone::Clone for CLUSTER_READ_BATCH_COMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_RESOURCE_ENUM_ITEM { + pub dwVersion: u32, + pub cbId: u32, + pub lpszId: ::windows_sys::core::PWSTR, + pub cbName: u32, + pub lpszName: ::windows_sys::core::PWSTR, + pub cbOwnerGroupName: u32, + pub lpszOwnerGroupName: ::windows_sys::core::PWSTR, + pub cbOwnerGroupId: u32, + pub lpszOwnerGroupId: ::windows_sys::core::PWSTR, + pub cbProperties: u32, + pub pProperties: *mut ::core::ffi::c_void, + pub cbRoProperties: u32, + pub pRoProperties: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CLUSTER_RESOURCE_ENUM_ITEM {} +impl ::core::clone::Clone for CLUSTER_RESOURCE_ENUM_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUSTER_SET_PASSWORD_STATUS { + pub NodeId: u32, + pub SetAttempted: super::super::Foundation::BOOLEAN, + pub ReturnStatus: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUSTER_SET_PASSWORD_STATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUSTER_SET_PASSWORD_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_SHARED_VOLUME_RENAME_GUID_INPUT { + pub Base: CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME, + pub Base2: CLUSTER_SHARED_VOLUME_RENAME_INPUT_GUID_NAME, +} +impl ::core::marker::Copy for CLUSTER_SHARED_VOLUME_RENAME_GUID_INPUT {} +impl ::core::clone::Clone for CLUSTER_SHARED_VOLUME_RENAME_GUID_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_SHARED_VOLUME_RENAME_INPUT { + pub Base: CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME, + pub Base2: CLUSTER_SHARED_VOLUME_RENAME_INPUT_NAME, +} +impl ::core::marker::Copy for CLUSTER_SHARED_VOLUME_RENAME_INPUT {} +impl ::core::clone::Clone for CLUSTER_SHARED_VOLUME_RENAME_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_SHARED_VOLUME_RENAME_INPUT_GUID_NAME { + pub NewVolumeName: [u16; 260], + pub NewVolumeGuid: [u16; 50], +} +impl ::core::marker::Copy for CLUSTER_SHARED_VOLUME_RENAME_INPUT_GUID_NAME {} +impl ::core::clone::Clone for CLUSTER_SHARED_VOLUME_RENAME_INPUT_GUID_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_SHARED_VOLUME_RENAME_INPUT_NAME { + pub NewVolumeName: [u16; 260], +} +impl ::core::marker::Copy for CLUSTER_SHARED_VOLUME_RENAME_INPUT_NAME {} +impl ::core::clone::Clone for CLUSTER_SHARED_VOLUME_RENAME_INPUT_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME { + pub InputType: CLUSTER_SHARED_VOLUME_RENAME_INPUT_TYPE, + pub Anonymous: CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME_0, +} +impl ::core::marker::Copy for CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME {} +impl ::core::clone::Clone for CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME_0 { + pub VolumeOffset: u64, + pub VolumeId: [u16; 260], + pub VolumeName: [u16; 260], + pub VolumeGuid: [u16; 50], +} +impl ::core::marker::Copy for CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME_0 {} +impl ::core::clone::Clone for CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_SHARED_VOLUME_STATE_INFO { + pub szVolumeName: [u16; 260], + pub szNodeName: [u16; 260], + pub VolumeState: CLUSTER_SHARED_VOLUME_STATE, +} +impl ::core::marker::Copy for CLUSTER_SHARED_VOLUME_STATE_INFO {} +impl ::core::clone::Clone for CLUSTER_SHARED_VOLUME_STATE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_SHARED_VOLUME_STATE_INFO_EX { + pub szVolumeName: [u16; 260], + pub szNodeName: [u16; 260], + pub VolumeState: CLUSTER_SHARED_VOLUME_STATE, + pub szVolumeFriendlyName: [u16; 260], + pub RedirectedIOReason: u64, + pub VolumeRedirectedIOReason: u64, +} +impl ::core::marker::Copy for CLUSTER_SHARED_VOLUME_STATE_INFO_EX {} +impl ::core::clone::Clone for CLUSTER_SHARED_VOLUME_STATE_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_VALIDATE_CSV_FILENAME { + pub szFileName: [u16; 1], +} +impl ::core::marker::Copy for CLUSTER_VALIDATE_CSV_FILENAME {} +impl ::core::clone::Clone for CLUSTER_VALIDATE_CSV_FILENAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_VALIDATE_DIRECTORY { + pub szPath: [u16; 1], +} +impl ::core::marker::Copy for CLUSTER_VALIDATE_DIRECTORY {} +impl ::core::clone::Clone for CLUSTER_VALIDATE_DIRECTORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_VALIDATE_NETNAME { + pub szNetworkName: [u16; 1], +} +impl ::core::marker::Copy for CLUSTER_VALIDATE_NETNAME {} +impl ::core::clone::Clone for CLUSTER_VALIDATE_NETNAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_VALIDATE_PATH { + pub szPath: [u16; 1], +} +impl ::core::marker::Copy for CLUSTER_VALIDATE_PATH {} +impl ::core::clone::Clone for CLUSTER_VALIDATE_PATH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_CHKDSK_INFO { + pub PartitionNumber: u32, + pub ChkdskState: u32, + pub FileIdCount: u32, + pub FileIdList: [u64; 1], +} +impl ::core::marker::Copy for CLUS_CHKDSK_INFO {} +impl ::core::clone::Clone for CLUS_CHKDSK_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_CREATE_INFRASTRUCTURE_FILESERVER_INPUT { + pub FileServerName: [u16; 16], +} +impl ::core::marker::Copy for CLUS_CREATE_INFRASTRUCTURE_FILESERVER_INPUT {} +impl ::core::clone::Clone for CLUS_CREATE_INFRASTRUCTURE_FILESERVER_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_CREATE_INFRASTRUCTURE_FILESERVER_OUTPUT { + pub FileServerName: [u16; 260], +} +impl ::core::marker::Copy for CLUS_CREATE_INFRASTRUCTURE_FILESERVER_OUTPUT {} +impl ::core::clone::Clone for CLUS_CREATE_INFRASTRUCTURE_FILESERVER_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUS_CSV_MAINTENANCE_MODE_INFO { + pub InMaintenance: super::super::Foundation::BOOL, + pub VolumeName: [u16; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUS_CSV_MAINTENANCE_MODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUS_CSV_MAINTENANCE_MODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_CSV_VOLUME_INFO { + pub VolumeOffset: u64, + pub PartitionNumber: u32, + pub FaultState: CLUSTER_CSV_VOLUME_FAULT_STATE, + pub BackupState: CLUSTER_SHARED_VOLUME_BACKUP_STATE, + pub szVolumeFriendlyName: [u16; 260], + pub szVolumeName: [u16; 50], +} +impl ::core::marker::Copy for CLUS_CSV_VOLUME_INFO {} +impl ::core::clone::Clone for CLUS_CSV_VOLUME_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_CSV_VOLUME_NAME { + pub VolumeOffset: i64, + pub szVolumeName: [u16; 260], + pub szRootPath: [u16; 263], +} +impl ::core::marker::Copy for CLUS_CSV_VOLUME_NAME {} +impl ::core::clone::Clone for CLUS_CSV_VOLUME_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_DISK_NUMBER_INFO { + pub DiskNumber: u32, + pub BytesPerSector: u32, +} +impl ::core::marker::Copy for CLUS_DISK_NUMBER_INFO {} +impl ::core::clone::Clone for CLUS_DISK_NUMBER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUS_DNN_LEADER_STATUS { + pub IsOnline: super::super::Foundation::BOOL, + pub IsFileServerPresent: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUS_DNN_LEADER_STATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUS_DNN_LEADER_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_DNN_SODAFS_CLONE_STATUS { + pub NodeId: u32, + pub Status: CLUSTER_RESOURCE_STATE, +} +impl ::core::marker::Copy for CLUS_DNN_SODAFS_CLONE_STATUS {} +impl ::core::clone::Clone for CLUS_DNN_SODAFS_CLONE_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_FORCE_QUORUM_INFO { + pub dwSize: u32, + pub dwNodeBitMask: u32, + pub dwMaxNumberofNodes: u32, + pub multiszNodeList: [u16; 1], +} +impl ::core::marker::Copy for CLUS_FORCE_QUORUM_INFO {} +impl ::core::clone::Clone for CLUS_FORCE_QUORUM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_FTSET_INFO { + pub dwRootSignature: u32, + pub dwFtType: u32, +} +impl ::core::marker::Copy for CLUS_FTSET_INFO {} +impl ::core::clone::Clone for CLUS_FTSET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUS_MAINTENANCE_MODE_INFO { + pub InMaintenance: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUS_MAINTENANCE_MODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUS_MAINTENANCE_MODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUS_MAINTENANCE_MODE_INFOEX { + pub InMaintenance: super::super::Foundation::BOOL, + pub MaintainenceModeType: MAINTENANCE_MODE_TYPE_ENUM, + pub InternalState: CLUSTER_RESOURCE_STATE, + pub Signature: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUS_MAINTENANCE_MODE_INFOEX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUS_MAINTENANCE_MODE_INFOEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_NETNAME_IP_INFO_ENTRY { + pub NodeId: u32, + pub AddressSize: u32, + pub Address: [u8; 1], +} +impl ::core::marker::Copy for CLUS_NETNAME_IP_INFO_ENTRY {} +impl ::core::clone::Clone for CLUS_NETNAME_IP_INFO_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_NETNAME_IP_INFO_FOR_MULTICHANNEL { + pub szName: [u16; 64], + pub NumEntries: u32, + pub IpInfo: [CLUS_NETNAME_IP_INFO_ENTRY; 1], +} +impl ::core::marker::Copy for CLUS_NETNAME_IP_INFO_FOR_MULTICHANNEL {} +impl ::core::clone::Clone for CLUS_NETNAME_IP_INFO_FOR_MULTICHANNEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_NETNAME_PWD_INFO { + pub Flags: u32, + pub Password: [u16; 16], + pub CreatingDC: [u16; 258], + pub ObjectGuid: [u16; 64], +} +impl ::core::marker::Copy for CLUS_NETNAME_PWD_INFO {} +impl ::core::clone::Clone for CLUS_NETNAME_PWD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_NETNAME_PWD_INFOEX { + pub Flags: u32, + pub Password: [u16; 128], + pub CreatingDC: [u16; 258], + pub ObjectGuid: [u16; 64], +} +impl ::core::marker::Copy for CLUS_NETNAME_PWD_INFOEX {} +impl ::core::clone::Clone for CLUS_NETNAME_PWD_INFOEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUS_NETNAME_VS_TOKEN_INFO { + pub ProcessID: u32, + pub DesiredAccess: u32, + pub InheritHandle: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUS_NETNAME_VS_TOKEN_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUS_NETNAME_VS_TOKEN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_PARTITION_INFO { + pub dwFlags: u32, + pub szDeviceName: [u16; 260], + pub szVolumeLabel: [u16; 260], + pub dwSerialNumber: u32, + pub rgdwMaximumComponentLength: u32, + pub dwFileSystemFlags: u32, + pub szFileSystem: [u16; 32], +} +impl ::core::marker::Copy for CLUS_PARTITION_INFO {} +impl ::core::clone::Clone for CLUS_PARTITION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_PARTITION_INFO_EX { + pub dwFlags: u32, + pub szDeviceName: [u16; 260], + pub szVolumeLabel: [u16; 260], + pub dwSerialNumber: u32, + pub rgdwMaximumComponentLength: u32, + pub dwFileSystemFlags: u32, + pub szFileSystem: [u16; 32], + pub TotalSizeInBytes: u64, + pub FreeSizeInBytes: u64, + pub DeviceNumber: u32, + pub PartitionNumber: u32, + pub VolumeGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for CLUS_PARTITION_INFO_EX {} +impl ::core::clone::Clone for CLUS_PARTITION_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_PARTITION_INFO_EX2 { + pub GptPartitionId: ::windows_sys::core::GUID, + pub szPartitionName: [u16; 260], + pub EncryptionFlags: u32, +} +impl ::core::marker::Copy for CLUS_PARTITION_INFO_EX2 {} +impl ::core::clone::Clone for CLUS_PARTITION_INFO_EX2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_PROVIDER_STATE_CHANGE_INFO { + pub dwSize: u32, + pub resourceState: CLUSTER_RESOURCE_STATE, + pub szProviderId: [u16; 1], +} +impl ::core::marker::Copy for CLUS_PROVIDER_STATE_CHANGE_INFO {} +impl ::core::clone::Clone for CLUS_PROVIDER_STATE_CHANGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_RESOURCE_CLASS_INFO { + pub Anonymous: CLUS_RESOURCE_CLASS_INFO_0, +} +impl ::core::marker::Copy for CLUS_RESOURCE_CLASS_INFO {} +impl ::core::clone::Clone for CLUS_RESOURCE_CLASS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CLUS_RESOURCE_CLASS_INFO_0 { + pub Anonymous: CLUS_RESOURCE_CLASS_INFO_0_0, + pub li: u64, +} +impl ::core::marker::Copy for CLUS_RESOURCE_CLASS_INFO_0 {} +impl ::core::clone::Clone for CLUS_RESOURCE_CLASS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_RESOURCE_CLASS_INFO_0_0 { + pub Anonymous: CLUS_RESOURCE_CLASS_INFO_0_0_0, + pub SubClass: u32, +} +impl ::core::marker::Copy for CLUS_RESOURCE_CLASS_INFO_0_0 {} +impl ::core::clone::Clone for CLUS_RESOURCE_CLASS_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CLUS_RESOURCE_CLASS_INFO_0_0_0 { + pub dw: u32, + pub rc: CLUSTER_RESOURCE_CLASS, +} +impl ::core::marker::Copy for CLUS_RESOURCE_CLASS_INFO_0_0_0 {} +impl ::core::clone::Clone for CLUS_RESOURCE_CLASS_INFO_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_SCSI_ADDRESS { + pub Anonymous: CLUS_SCSI_ADDRESS_0, +} +impl ::core::marker::Copy for CLUS_SCSI_ADDRESS {} +impl ::core::clone::Clone for CLUS_SCSI_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CLUS_SCSI_ADDRESS_0 { + pub Anonymous: CLUS_SCSI_ADDRESS_0_0, + pub dw: u32, +} +impl ::core::marker::Copy for CLUS_SCSI_ADDRESS_0 {} +impl ::core::clone::Clone for CLUS_SCSI_ADDRESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_SCSI_ADDRESS_0_0 { + pub PortNumber: u8, + pub PathId: u8, + pub TargetId: u8, + pub Lun: u8, +} +impl ::core::marker::Copy for CLUS_SCSI_ADDRESS_0_0 {} +impl ::core::clone::Clone for CLUS_SCSI_ADDRESS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUS_SET_MAINTENANCE_MODE_INPUT { + pub InMaintenance: super::super::Foundation::BOOL, + pub ExtraParameterSize: u32, + pub ExtraParameter: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUS_SET_MAINTENANCE_MODE_INPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUS_SET_MAINTENANCE_MODE_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_SHARED_VOLUME_BACKUP_MODE { + pub BackupState: CLUSTER_SHARED_VOLUME_BACKUP_STATE, + pub DelayTimerInSecs: u32, + pub VolumeName: [u16; 260], +} +impl ::core::marker::Copy for CLUS_SHARED_VOLUME_BACKUP_MODE {} +impl ::core::clone::Clone for CLUS_SHARED_VOLUME_BACKUP_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUS_STARTING_PARAMS { + pub dwSize: u32, + pub bForm: super::super::Foundation::BOOL, + pub bFirst: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUS_STARTING_PARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUS_STARTING_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_STORAGE_GET_AVAILABLE_DRIVELETTERS { + pub AvailDrivelettersMask: u32, +} +impl ::core::marker::Copy for CLUS_STORAGE_GET_AVAILABLE_DRIVELETTERS {} +impl ::core::clone::Clone for CLUS_STORAGE_GET_AVAILABLE_DRIVELETTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_STORAGE_REMAP_DRIVELETTER { + pub CurrentDriveLetterMask: u32, + pub TargetDriveLetterMask: u32, +} +impl ::core::marker::Copy for CLUS_STORAGE_REMAP_DRIVELETTER {} +impl ::core::clone::Clone for CLUS_STORAGE_REMAP_DRIVELETTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUS_STORAGE_SET_DRIVELETTER { + pub PartitionNumber: u32, + pub DriveLetterMask: u32, +} +impl ::core::marker::Copy for CLUS_STORAGE_SET_DRIVELETTER {} +impl ::core::clone::Clone for CLUS_STORAGE_SET_DRIVELETTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLUS_WORKER { + pub hThread: super::super::Foundation::HANDLE, + pub Terminate: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLUS_WORKER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLUS_WORKER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CREATE_CLUSTER_CONFIG { + pub dwVersion: u32, + pub lpszClusterName: ::windows_sys::core::PCWSTR, + pub cNodes: u32, + pub ppszNodeNames: *const ::windows_sys::core::PCWSTR, + pub cIpEntries: u32, + pub pIpEntries: *mut CLUSTER_IP_ENTRY, + pub fEmptyCluster: super::super::Foundation::BOOLEAN, + pub managementPointType: CLUSTER_MGMT_POINT_TYPE, + pub managementPointResType: CLUSTER_MGMT_POINT_RESTYPE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CREATE_CLUSTER_CONFIG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CREATE_CLUSTER_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CREATE_CLUSTER_NAME_ACCOUNT { + pub dwVersion: u32, + pub lpszClusterName: ::windows_sys::core::PCWSTR, + pub dwFlags: u32, + pub pszUserName: ::windows_sys::core::PCWSTR, + pub pszPassword: ::windows_sys::core::PCWSTR, + pub pszDomain: ::windows_sys::core::PCWSTR, + pub managementPointType: CLUSTER_MGMT_POINT_TYPE, + pub managementPointResType: CLUSTER_MGMT_POINT_RESTYPE, + pub bUpgradeVCOs: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CREATE_CLUSTER_NAME_ACCOUNT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CREATE_CLUSTER_NAME_ACCOUNT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILESHARE_CHANGE { + pub Change: FILESHARE_CHANGE_ENUM, + pub ShareName: [u16; 84], +} +impl ::core::marker::Copy for FILESHARE_CHANGE {} +impl ::core::clone::Clone for FILESHARE_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILESHARE_CHANGE_LIST { + pub NumEntries: u32, + pub ChangeEntry: [FILESHARE_CHANGE; 1], +} +impl ::core::marker::Copy for FILESHARE_CHANGE_LIST {} +impl ::core::clone::Clone for FILESHARE_CHANGE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_OPERATION_CONTEXT_PARAMS { + pub Size: u32, + pub Version: u32, + pub Type: RESDLL_CONTEXT_OPERATION_TYPE, + pub Priority: u32, +} +impl ::core::marker::Copy for GET_OPERATION_CONTEXT_PARAMS {} +impl ::core::clone::Clone for GET_OPERATION_CONTEXT_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_FAILURE_INFO { + pub dwFailoverAttemptsRemaining: u32, + pub dwFailoverPeriodRemaining: u32, +} +impl ::core::marker::Copy for GROUP_FAILURE_INFO {} +impl ::core::clone::Clone for GROUP_FAILURE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_FAILURE_INFO_BUFFER { + pub dwVersion: u32, + pub Info: GROUP_FAILURE_INFO, +} +impl ::core::marker::Copy for GROUP_FAILURE_INFO_BUFFER {} +impl ::core::clone::Clone for GROUP_FAILURE_INFO_BUFFER { + fn clone(&self) -> Self { + *self + } +} +pub type HCHANGE = isize; +pub type HCLUSCRYPTPROVIDER = isize; +pub type HCLUSENUM = isize; +pub type HCLUSENUMEX = isize; +pub type HCLUSTER = isize; +pub type HGROUP = isize; +pub type HGROUPENUM = isize; +pub type HGROUPENUMEX = isize; +pub type HGROUPSET = isize; +pub type HGROUPSETENUM = isize; +pub type HNETINTERFACE = isize; +pub type HNETINTERFACEENUM = isize; +pub type HNETWORK = isize; +pub type HNETWORKENUM = isize; +pub type HNODE = isize; +pub type HNODEENUM = isize; +pub type HNODEENUMEX = isize; +pub type HREGBATCH = isize; +pub type HREGBATCHNOTIFICATION = isize; +pub type HREGBATCHPORT = isize; +pub type HREGREADBATCH = isize; +pub type HREGREADBATCHREPLY = isize; +pub type HRESENUM = isize; +pub type HRESENUMEX = isize; +pub type HRESOURCE = isize; +pub type HRESTYPEENUM = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MONITOR_STATE { + pub LastUpdate: i64, + pub State: RESOURCE_MONITOR_STATE, + pub ActiveResource: super::super::Foundation::HANDLE, + pub ResmonStop: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MONITOR_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MONITOR_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NOTIFY_FILTER_AND_TYPE { + pub dwObjectType: u32, + pub FilterFlags: i64, +} +impl ::core::marker::Copy for NOTIFY_FILTER_AND_TYPE {} +impl ::core::clone::Clone for NOTIFY_FILTER_AND_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NodeUtilizationInfoElement { + pub Id: u64, + pub AvailableMemory: u64, + pub AvailableMemoryAfterReclamation: u64, +} +impl ::core::marker::Copy for NodeUtilizationInfoElement {} +impl ::core::clone::Clone for NodeUtilizationInfoElement { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POST_UPGRADE_VERSION_INFO { + pub newMajorVersion: u32, + pub newUpgradeVersion: u32, + pub oldMajorVersion: u32, + pub oldUpgradeVersion: u32, + pub reserved: u32, +} +impl ::core::marker::Copy for POST_UPGRADE_VERSION_INFO {} +impl ::core::clone::Clone for POST_UPGRADE_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PaxosTagCStruct { + pub __padding__PaxosTagVtable: u64, + pub __padding__NextEpochVtable: u64, + pub __padding__NextEpoch_DateTimeVtable: u64, + pub NextEpoch_DateTime_ticks: u64, + pub NextEpoch_Value: i32, + pub __padding__BoundryNextEpoch: u32, + pub __padding__EpochVtable: u64, + pub __padding__Epoch_DateTimeVtable: u64, + pub Epoch_DateTime_ticks: u64, + pub Epoch_Value: i32, + pub __padding__BoundryEpoch: u32, + pub Sequence: i32, + pub __padding__BoundrySequence: u32, +} +impl ::core::marker::Copy for PaxosTagCStruct {} +impl ::core::clone::Clone for PaxosTagCStruct { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RESOURCE_FAILURE_INFO { + pub dwRestartAttemptsRemaining: u32, + pub dwRestartPeriodRemaining: u32, +} +impl ::core::marker::Copy for RESOURCE_FAILURE_INFO {} +impl ::core::clone::Clone for RESOURCE_FAILURE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RESOURCE_FAILURE_INFO_BUFFER { + pub dwVersion: u32, + pub Info: RESOURCE_FAILURE_INFO, +} +impl ::core::marker::Copy for RESOURCE_FAILURE_INFO_BUFFER {} +impl ::core::clone::Clone for RESOURCE_FAILURE_INFO_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RESOURCE_STATUS { + pub ResourceState: CLUSTER_RESOURCE_STATE, + pub CheckPoint: u32, + pub WaitHint: u32, + pub EventHandle: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RESOURCE_STATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RESOURCE_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RESOURCE_STATUS_EX { + pub ResourceState: CLUSTER_RESOURCE_STATE, + pub CheckPoint: u32, + pub EventHandle: super::super::Foundation::HANDLE, + pub ApplicationSpecificErrorCode: u32, + pub Flags: u32, + pub WaitHint: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RESOURCE_STATUS_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RESOURCE_STATUS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RESOURCE_TERMINAL_FAILURE_INFO_BUFFER { + pub isTerminalFailure: super::super::Foundation::BOOL, + pub restartPeriodRemaining: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RESOURCE_TERMINAL_FAILURE_INFO_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RESOURCE_TERMINAL_FAILURE_INFO_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RESUTIL_FILETIME_DATA { + pub Default: super::super::Foundation::FILETIME, + pub Minimum: super::super::Foundation::FILETIME, + pub Maximum: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RESUTIL_FILETIME_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RESUTIL_FILETIME_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RESUTIL_LARGEINT_DATA { + pub Default: i64, + pub Minimum: i64, + pub Maximum: i64, +} +impl ::core::marker::Copy for RESUTIL_LARGEINT_DATA {} +impl ::core::clone::Clone for RESUTIL_LARGEINT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RESUTIL_PROPERTY_ITEM { + pub Name: ::windows_sys::core::PWSTR, + pub KeyName: ::windows_sys::core::PWSTR, + pub Format: u32, + pub Anonymous: RESUTIL_PROPERTY_ITEM_0, + pub Minimum: u32, + pub Maximum: u32, + pub Flags: u32, + pub Offset: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RESUTIL_PROPERTY_ITEM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RESUTIL_PROPERTY_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union RESUTIL_PROPERTY_ITEM_0 { + pub DefaultPtr: usize, + pub Default: u32, + pub lpDefault: *mut ::core::ffi::c_void, + pub LargeIntData: *mut RESUTIL_LARGEINT_DATA, + pub ULargeIntData: *mut RESUTIL_ULARGEINT_DATA, + pub FileTimeData: *mut RESUTIL_FILETIME_DATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RESUTIL_PROPERTY_ITEM_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RESUTIL_PROPERTY_ITEM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RESUTIL_ULARGEINT_DATA { + pub Default: u64, + pub Minimum: u64, + pub Maximum: u64, +} +impl ::core::marker::Copy for RESUTIL_ULARGEINT_DATA {} +impl ::core::clone::Clone for RESUTIL_ULARGEINT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ResourceUtilizationInfoElement { + pub PhysicalNumaId: u64, + pub CurrentMemory: u64, +} +impl ::core::marker::Copy for ResourceUtilizationInfoElement {} +impl ::core::clone::Clone for ResourceUtilizationInfoElement { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SR_RESOURCE_TYPE_ADD_REPLICATION_GROUP { + pub ReplicationGroupName: [u16; 260], + pub Description: [u16; 260], + pub LogPath: [u16; 260], + pub MaxLogSizeInBytes: u64, + pub LogType: u16, + pub ReplicationMode: u32, + pub MinimumPartnersInSync: u32, + pub EnableWriteConsistency: super::super::Foundation::BOOLEAN, + pub EnableEncryption: super::super::Foundation::BOOLEAN, + pub EnableCompression: super::super::Foundation::BOOLEAN, + pub CertificateThumbprint: [u16; 260], + pub VolumeNameCount: u32, + pub VolumeNames: [u16; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SR_RESOURCE_TYPE_ADD_REPLICATION_GROUP {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SR_RESOURCE_TYPE_ADD_REPLICATION_GROUP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SR_RESOURCE_TYPE_ADD_REPLICATION_GROUP_RESULT { + pub Result: u32, + pub ErrorString: [u16; 260], +} +impl ::core::marker::Copy for SR_RESOURCE_TYPE_ADD_REPLICATION_GROUP_RESULT {} +impl ::core::clone::Clone for SR_RESOURCE_TYPE_ADD_REPLICATION_GROUP_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SR_RESOURCE_TYPE_DISK_INFO { + pub Reason: SR_DISK_REPLICATION_ELIGIBLE, + pub DiskGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for SR_RESOURCE_TYPE_DISK_INFO {} +impl ::core::clone::Clone for SR_RESOURCE_TYPE_DISK_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SR_RESOURCE_TYPE_ELIGIBLE_DISKS_RESULT { + pub Count: u16, + pub DiskInfo: [SR_RESOURCE_TYPE_DISK_INFO; 1], +} +impl ::core::marker::Copy for SR_RESOURCE_TYPE_ELIGIBLE_DISKS_RESULT {} +impl ::core::clone::Clone for SR_RESOURCE_TYPE_ELIGIBLE_DISKS_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SR_RESOURCE_TYPE_QUERY_ELIGIBLE_LOGDISKS { + pub DataDiskGuid: ::windows_sys::core::GUID, + pub IncludeOfflineDisks: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SR_RESOURCE_TYPE_QUERY_ELIGIBLE_LOGDISKS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SR_RESOURCE_TYPE_QUERY_ELIGIBLE_LOGDISKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SR_RESOURCE_TYPE_QUERY_ELIGIBLE_SOURCE_DATADISKS { + pub DataDiskGuid: ::windows_sys::core::GUID, + pub IncludeAvailableStoargeDisks: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SR_RESOURCE_TYPE_QUERY_ELIGIBLE_SOURCE_DATADISKS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SR_RESOURCE_TYPE_QUERY_ELIGIBLE_SOURCE_DATADISKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SR_RESOURCE_TYPE_QUERY_ELIGIBLE_TARGET_DATADISKS { + pub SourceDataDiskGuid: ::windows_sys::core::GUID, + pub TargetReplicationGroupGuid: ::windows_sys::core::GUID, + pub SkipConnectivityCheck: super::super::Foundation::BOOLEAN, + pub IncludeOfflineDisks: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SR_RESOURCE_TYPE_QUERY_ELIGIBLE_TARGET_DATADISKS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SR_RESOURCE_TYPE_QUERY_ELIGIBLE_TARGET_DATADISKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SR_RESOURCE_TYPE_REPLICATED_DISK { + pub Type: SR_REPLICATED_DISK_TYPE, + pub ClusterDiskResourceGuid: ::windows_sys::core::GUID, + pub ReplicationGroupId: ::windows_sys::core::GUID, + pub ReplicationGroupName: [u16; 260], +} +impl ::core::marker::Copy for SR_RESOURCE_TYPE_REPLICATED_DISK {} +impl ::core::clone::Clone for SR_RESOURCE_TYPE_REPLICATED_DISK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SR_RESOURCE_TYPE_REPLICATED_DISKS_RESULT { + pub Count: u16, + pub ReplicatedDisks: [SR_RESOURCE_TYPE_REPLICATED_DISK; 1], +} +impl ::core::marker::Copy for SR_RESOURCE_TYPE_REPLICATED_DISKS_RESULT {} +impl ::core::clone::Clone for SR_RESOURCE_TYPE_REPLICATED_DISKS_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SR_RESOURCE_TYPE_REPLICATED_PARTITION_ARRAY { + pub Count: u32, + pub PartitionArray: [SR_RESOURCE_TYPE_REPLICATED_PARTITION_INFO; 1], +} +impl ::core::marker::Copy for SR_RESOURCE_TYPE_REPLICATED_PARTITION_ARRAY {} +impl ::core::clone::Clone for SR_RESOURCE_TYPE_REPLICATED_PARTITION_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SR_RESOURCE_TYPE_REPLICATED_PARTITION_INFO { + pub PartitionOffset: u64, + pub Capabilities: u32, +} +impl ::core::marker::Copy for SR_RESOURCE_TYPE_REPLICATED_PARTITION_INFO {} +impl ::core::clone::Clone for SR_RESOURCE_TYPE_REPLICATED_PARTITION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WitnessTagHelper { + pub Version: i32, + pub paxosToValidate: PaxosTagCStruct, +} +impl ::core::marker::Copy for WitnessTagHelper {} +impl ::core::clone::Clone for WitnessTagHelper { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WitnessTagUpdateHelper { + pub Version: i32, + pub paxosToSet: PaxosTagCStruct, + pub paxosToValidate: PaxosTagCStruct, +} +impl ::core::marker::Copy for WitnessTagUpdateHelper {} +impl ::core::clone::Clone for WitnessTagUpdateHelper { + fn clone(&self) -> Self { + *self + } +} +pub type LPGROUP_CALLBACK_EX = ::core::option::Option u32>; +pub type LPNODE_CALLBACK = ::core::option::Option u32>; +pub type LPRESOURCE_CALLBACK = ::core::option::Option u32>; +pub type LPRESOURCE_CALLBACK_EX = ::core::option::Option u32>; +pub type PARBITRATE_ROUTINE = ::core::option::Option u32>; +pub type PARM_WPR_WATCHDOG_FOR_CURRENT_RESOURCE_CALL_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PBEGIN_RESCALL_AS_USER_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PBEGIN_RESCALL_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PBEGIN_RESTYPECALL_AS_USER_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PBEGIN_RESTYPECALL_ROUTINE = ::core::option::Option u32>; +pub type PCANCEL_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCHANGE_RESOURCE_PROCESS_FOR_DUMPS = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCHANGE_RES_TYPE_PROCESS_FOR_DUMPS = ::core::option::Option u32>; +pub type PCLOSE_CLUSTER_CRYPT_PROVIDER = ::core::option::Option u32>; +pub type PCLOSE_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPIClusWorkerCheckTerminate = ::core::option::Option super::super::Foundation::BOOL>; +pub type PCLUSAPI_ADD_CLUSTER_GROUP_DEPENDENCY = ::core::option::Option u32>; +pub type PCLUSAPI_ADD_CLUSTER_GROUP_DEPENDENCY_EX = ::core::option::Option u32>; +pub type PCLUSAPI_ADD_CLUSTER_GROUP_GROUPSET_DEPENDENCY = ::core::option::Option u32>; +pub type PCLUSAPI_ADD_CLUSTER_GROUP_GROUPSET_DEPENDENCY_EX = ::core::option::Option u32>; +pub type PCLUSAPI_ADD_CLUSTER_GROUP_TO_GROUP_GROUPSET_DEPENDENCY = ::core::option::Option u32>; +pub type PCLUSAPI_ADD_CLUSTER_GROUP_TO_GROUP_GROUPSET_DEPENDENCY_EX = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_ADD_CLUSTER_NODE = ::core::option::Option HNODE>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_ADD_CLUSTER_NODE_EX = ::core::option::Option HNODE>; +pub type PCLUSAPI_ADD_CLUSTER_RESOURCE_DEPENDENCY = ::core::option::Option u32>; +pub type PCLUSAPI_ADD_CLUSTER_RESOURCE_DEPENDENCY_EX = ::core::option::Option u32>; +pub type PCLUSAPI_ADD_CLUSTER_RESOURCE_NODE = ::core::option::Option u32>; +pub type PCLUSAPI_ADD_CLUSTER_RESOURCE_NODE_EX = ::core::option::Option u32>; +pub type PCLUSAPI_ADD_CROSS_CLUSTER_GROUPSET_DEPENDENCY = ::core::option::Option u32>; +pub type PCLUSAPI_ADD_RESOURCE_TO_CLUSTER_SHARED_VOLUMES = ::core::option::Option u32>; +pub type PCLUSAPI_BACKUP_CLUSTER_DATABASE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CAN_RESOURCE_BE_DEPENDENT = ::core::option::Option super::super::Foundation::BOOL>; +pub type PCLUSAPI_CHANGE_CLUSTER_RESOURCE_GROUP = ::core::option::Option u32>; +pub type PCLUSAPI_CHANGE_CLUSTER_RESOURCE_GROUP_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CHANGE_CLUSTER_RESOURCE_GROUP_EX2 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CLOSE_CLUSTER = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CLOSE_CLUSTER_GROUP = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CLOSE_CLUSTER_GROUP_GROUPSET = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CLOSE_CLUSTER_NETWORK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CLOSE_CLUSTER_NET_INTERFACE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CLOSE_CLUSTER_NODE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CLOSE_CLUSTER_NOTIFY_PORT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CLOSE_CLUSTER_RESOURCE = ::core::option::Option super::super::Foundation::BOOL>; +pub type PCLUSAPI_CLUSTER_ADD_GROUP_TO_AFFINITY_RULE = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_ADD_GROUP_TO_GROUPSET_WITH_DOMAINS_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_ADD_GROUP_TO_GROUP_GROUPSET = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_AFFINITY_RULE_CONTROL = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_CLOSE_ENUM = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_CLOSE_ENUM_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_CONTROL = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_CONTROL_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_CREATE_AFFINITY_RULE = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_ENUM = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_ENUM_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_GET_ENUM_COUNT = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_GET_ENUM_COUNT_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_GROUP_CLOSE_ENUM = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_GROUP_CLOSE_ENUM_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_GROUP_CONTROL = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_GROUP_CONTROL_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_GROUP_ENUM = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_GROUP_ENUM_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_GROUP_GET_ENUM_COUNT = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_GROUP_GET_ENUM_COUNT_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_GROUP_GROUPSET_CONTROL = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_GROUP_GROUPSET_CONTROL_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_GROUP_OPEN_ENUM = ::core::option::Option HGROUPENUM>; +pub type PCLUSAPI_CLUSTER_GROUP_OPEN_ENUM_EX = ::core::option::Option HGROUPENUMEX>; +pub type PCLUSAPI_CLUSTER_NETWORK_CLOSE_ENUM = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NETWORK_CONTROL = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NETWORK_CONTROL_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NETWORK_ENUM = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NETWORK_GET_ENUM_COUNT = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NETWORK_OPEN_ENUM = ::core::option::Option HNETWORKENUM>; +pub type PCLUSAPI_CLUSTER_NET_INTERFACE_CONTROL = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NET_INTERFACE_CONTROL_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NODE_CLOSE_ENUM = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NODE_CLOSE_ENUM_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NODE_CONTROL = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NODE_CONTROL_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NODE_ENUM = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NODE_ENUM_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NODE_GET_ENUM_COUNT = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NODE_GET_ENUM_COUNT_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_NODE_OPEN_ENUM = ::core::option::Option HNODEENUM>; +pub type PCLUSAPI_CLUSTER_NODE_OPEN_ENUM_EX = ::core::option::Option HNODEENUMEX>; +pub type PCLUSAPI_CLUSTER_OPEN_ENUM = ::core::option::Option HCLUSENUM>; +pub type PCLUSAPI_CLUSTER_OPEN_ENUM_EX = ::core::option::Option HCLUSENUMEX>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_CLUSTER_REG_CLOSE_KEY = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_CLUSTER_REG_CREATE_BATCH = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Registry"))] +pub type PCLUSAPI_CLUSTER_REG_CREATE_KEY = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Registry"))] +pub type PCLUSAPI_CLUSTER_REG_CREATE_KEY_EX = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_CLUSTER_REG_DELETE_KEY = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_CLUSTER_REG_DELETE_KEY_EX = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_CLUSTER_REG_DELETE_VALUE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_CLUSTER_REG_DELETE_VALUE_EX = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PCLUSAPI_CLUSTER_REG_ENUM_KEY = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_CLUSTER_REG_ENUM_VALUE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Security\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Security", feature = "Win32_System_Registry"))] +pub type PCLUSAPI_CLUSTER_REG_GET_KEY_SECURITY = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_CLUSTER_REG_OPEN_KEY = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PCLUSAPI_CLUSTER_REG_QUERY_INFO_KEY = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_CLUSTER_REG_QUERY_VALUE = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Security\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Security", feature = "Win32_System_Registry"))] +pub type PCLUSAPI_CLUSTER_REG_SET_KEY_SECURITY = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Security\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Security", feature = "Win32_System_Registry"))] +pub type PCLUSAPI_CLUSTER_REG_SET_KEY_SECURITY_EX = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_CLUSTER_REG_SET_VALUE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_CLUSTER_REG_SET_VALUE_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_REG_SYNC_DATABASE = ::core::option::Option i32>; +pub type PCLUSAPI_CLUSTER_REMOVE_AFFINITY_RULE = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_REMOVE_GROUP_FROM_AFFINITY_RULE = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_REMOVE_GROUP_FROM_GROUPSET = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_REMOVE_GROUP_FROM_GROUPSET_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_CLOSE_ENUM = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_CLOSE_ENUM_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_CONTROL = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_CONTROL_AS_USER_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_CONTROL_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_ENUM = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_ENUM_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_GET_ENUM_COUNT = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_GET_ENUM_COUNT_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_OPEN_ENUM = ::core::option::Option HRESENUM>; +pub type PCLUSAPI_CLUSTER_RESOURCE_OPEN_ENUM_EX = ::core::option::Option HRESENUMEX>; +pub type PCLUSAPI_CLUSTER_RESOURCE_TYPE_CLOSE_ENUM = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_TYPE_CONTROL = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_TYPE_CONTROL_AS_USER_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_TYPE_CONTROL_EX = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_TYPE_ENUM = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_TYPE_GET_ENUM_COUNT = ::core::option::Option u32>; +pub type PCLUSAPI_CLUSTER_RESOURCE_TYPE_OPEN_ENUM = ::core::option::Option HRESTYPEENUM>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CLUSTER_UPGRADE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CLUS_WORKER_CREATE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CLUS_WORKER_TERMINATE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CREATE_CLUSTER = ::core::option::Option HCLUSTER>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CREATE_CLUSTER_AVAILABILITY_SET = ::core::option::Option HGROUPSET>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CREATE_CLUSTER_CNOLESS = ::core::option::Option HCLUSTER>; +pub type PCLUSAPI_CREATE_CLUSTER_GROUP = ::core::option::Option HGROUP>; +pub type PCLUSAPI_CREATE_CLUSTER_GROUPEX = ::core::option::Option HGROUP>; +pub type PCLUSAPI_CREATE_CLUSTER_GROUP_GROUPSET = ::core::option::Option HGROUPSET>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_CREATE_CLUSTER_NAME_ACCOUNT = ::core::option::Option u32>; +pub type PCLUSAPI_CREATE_CLUSTER_NOTIFY_PORT = ::core::option::Option HCHANGE>; +pub type PCLUSAPI_CREATE_CLUSTER_NOTIFY_PORT_V2 = ::core::option::Option HCHANGE>; +pub type PCLUSAPI_CREATE_CLUSTER_RESOURCE = ::core::option::Option HRESOURCE>; +pub type PCLUSAPI_CREATE_CLUSTER_RESOURCE_EX = ::core::option::Option HRESOURCE>; +pub type PCLUSAPI_CREATE_CLUSTER_RESOURCE_TYPE = ::core::option::Option u32>; +pub type PCLUSAPI_CREATE_CLUSTER_RESOURCE_TYPE_EX = ::core::option::Option u32>; +pub type PCLUSAPI_DELETE_CLUSTER_GROUP = ::core::option::Option u32>; +pub type PCLUSAPI_DELETE_CLUSTER_GROUP_EX = ::core::option::Option u32>; +pub type PCLUSAPI_DELETE_CLUSTER_GROUP_GROUPSET = ::core::option::Option u32>; +pub type PCLUSAPI_DELETE_CLUSTER_GROUP_GROUPSET_EX = ::core::option::Option u32>; +pub type PCLUSAPI_DELETE_CLUSTER_RESOURCE = ::core::option::Option u32>; +pub type PCLUSAPI_DELETE_CLUSTER_RESOURCE_EX = ::core::option::Option u32>; +pub type PCLUSAPI_DELETE_CLUSTER_RESOURCE_TYPE = ::core::option::Option u32>; +pub type PCLUSAPI_DELETE_CLUSTER_RESOURCE_TYPE_EX = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_DESTROY_CLUSTER = ::core::option::Option u32>; +pub type PCLUSAPI_DESTROY_CLUSTER_GROUP = ::core::option::Option u32>; +pub type PCLUSAPI_DESTROY_CLUSTER_GROUP_EX = ::core::option::Option u32>; +pub type PCLUSAPI_EVICT_CLUSTER_NODE = ::core::option::Option u32>; +pub type PCLUSAPI_EVICT_CLUSTER_NODE_EX = ::core::option::Option u32>; +pub type PCLUSAPI_EVICT_CLUSTER_NODE_EX2 = ::core::option::Option u32>; +pub type PCLUSAPI_FAIL_CLUSTER_RESOURCE = ::core::option::Option u32>; +pub type PCLUSAPI_FAIL_CLUSTER_RESOURCE_EX = ::core::option::Option u32>; +pub type PCLUSAPI_GET_CLUSTER_FROM_GROUP = ::core::option::Option HCLUSTER>; +pub type PCLUSAPI_GET_CLUSTER_FROM_GROUP_GROUPSET = ::core::option::Option HCLUSTER>; +pub type PCLUSAPI_GET_CLUSTER_FROM_NETWORK = ::core::option::Option HCLUSTER>; +pub type PCLUSAPI_GET_CLUSTER_FROM_NET_INTERFACE = ::core::option::Option HCLUSTER>; +pub type PCLUSAPI_GET_CLUSTER_FROM_NODE = ::core::option::Option HCLUSTER>; +pub type PCLUSAPI_GET_CLUSTER_FROM_RESOURCE = ::core::option::Option HCLUSTER>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_GET_CLUSTER_GROUP_KEY = ::core::option::Option super::super::System::Registry::HKEY>; +pub type PCLUSAPI_GET_CLUSTER_GROUP_STATE = ::core::option::Option CLUSTER_GROUP_STATE>; +pub type PCLUSAPI_GET_CLUSTER_INFORMATION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_GET_CLUSTER_KEY = ::core::option::Option super::super::System::Registry::HKEY>; +pub type PCLUSAPI_GET_CLUSTER_NETWORK_ID = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_GET_CLUSTER_NETWORK_KEY = ::core::option::Option super::super::System::Registry::HKEY>; +pub type PCLUSAPI_GET_CLUSTER_NETWORK_STATE = ::core::option::Option CLUSTER_NETWORK_STATE>; +pub type PCLUSAPI_GET_CLUSTER_NET_INTERFACE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_GET_CLUSTER_NET_INTERFACE_KEY = ::core::option::Option super::super::System::Registry::HKEY>; +pub type PCLUSAPI_GET_CLUSTER_NET_INTERFACE_STATE = ::core::option::Option CLUSTER_NETINTERFACE_STATE>; +pub type PCLUSAPI_GET_CLUSTER_NODE_ID = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_GET_CLUSTER_NODE_KEY = ::core::option::Option super::super::System::Registry::HKEY>; +pub type PCLUSAPI_GET_CLUSTER_NODE_STATE = ::core::option::Option CLUSTER_NODE_STATE>; +pub type PCLUSAPI_GET_CLUSTER_NOTIFY = ::core::option::Option u32>; +pub type PCLUSAPI_GET_CLUSTER_NOTIFY_V2 = ::core::option::Option u32>; +pub type PCLUSAPI_GET_CLUSTER_QUORUM_RESOURCE = ::core::option::Option u32>; +pub type PCLUSAPI_GET_CLUSTER_RESOURCE_DEPENDENCY_EXPRESSION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_GET_CLUSTER_RESOURCE_KEY = ::core::option::Option super::super::System::Registry::HKEY>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_GET_CLUSTER_RESOURCE_NETWORK_NAME = ::core::option::Option super::super::Foundation::BOOL>; +pub type PCLUSAPI_GET_CLUSTER_RESOURCE_STATE = ::core::option::Option CLUSTER_RESOURCE_STATE>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSAPI_GET_CLUSTER_RESOURCE_TYPE_KEY = ::core::option::Option super::super::System::Registry::HKEY>; +pub type PCLUSAPI_GET_NODE_CLUSTER_STATE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_GET_NOTIFY_EVENT_HANDLE_V2 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_IS_FILE_ON_CLUSTER_SHARED_VOLUME = ::core::option::Option u32>; +pub type PCLUSAPI_MOVE_CLUSTER_GROUP = ::core::option::Option u32>; +pub type PCLUSAPI_OFFLINE_CLUSTER_GROUP = ::core::option::Option u32>; +pub type PCLUSAPI_OFFLINE_CLUSTER_RESOURCE = ::core::option::Option u32>; +pub type PCLUSAPI_ONLINE_CLUSTER_GROUP = ::core::option::Option u32>; +pub type PCLUSAPI_ONLINE_CLUSTER_RESOURCE = ::core::option::Option u32>; +pub type PCLUSAPI_OPEN_CLUSTER = ::core::option::Option HCLUSTER>; +pub type PCLUSAPI_OPEN_CLUSTER_EX = ::core::option::Option HCLUSTER>; +pub type PCLUSAPI_OPEN_CLUSTER_GROUP = ::core::option::Option HGROUP>; +pub type PCLUSAPI_OPEN_CLUSTER_GROUP_EX = ::core::option::Option HGROUP>; +pub type PCLUSAPI_OPEN_CLUSTER_GROUP_GROUPSET = ::core::option::Option HGROUPSET>; +pub type PCLUSAPI_OPEN_CLUSTER_NETINTERFACE_EX = ::core::option::Option HNETINTERFACE>; +pub type PCLUSAPI_OPEN_CLUSTER_NETWORK = ::core::option::Option HNETWORK>; +pub type PCLUSAPI_OPEN_CLUSTER_NETWORK_EX = ::core::option::Option HNETWORK>; +pub type PCLUSAPI_OPEN_CLUSTER_NET_INTERFACE = ::core::option::Option HNETINTERFACE>; +pub type PCLUSAPI_OPEN_CLUSTER_NODE = ::core::option::Option HNODE>; +pub type PCLUSAPI_OPEN_CLUSTER_NODE_EX = ::core::option::Option HNODE>; +pub type PCLUSAPI_OPEN_CLUSTER_RESOURCE = ::core::option::Option HRESOURCE>; +pub type PCLUSAPI_OPEN_CLUSTER_RESOURCE_EX = ::core::option::Option HRESOURCE>; +pub type PCLUSAPI_OPEN_NODE_BY_ID = ::core::option::Option HNODE>; +pub type PCLUSAPI_PAUSE_CLUSTER_NODE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_PAUSE_CLUSTER_NODE_EX = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_PAUSE_CLUSTER_NODE_EX2 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_PFN_REASON_HANDLER = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_REGISTER_CLUSTER_NOTIFY = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_REGISTER_CLUSTER_NOTIFY_V2 = ::core::option::Option u32>; +pub type PCLUSAPI_REMOVE_CLUSTER_GROUP_DEPENDENCY = ::core::option::Option u32>; +pub type PCLUSAPI_REMOVE_CLUSTER_GROUP_DEPENDENCY_EX = ::core::option::Option u32>; +pub type PCLUSAPI_REMOVE_CLUSTER_GROUP_GROUPSET_DEPENDENCY = ::core::option::Option u32>; +pub type PCLUSAPI_REMOVE_CLUSTER_GROUP_GROUPSET_DEPENDENCY_EX = ::core::option::Option u32>; +pub type PCLUSAPI_REMOVE_CLUSTER_GROUP_TO_GROUP_GROUPSET_DEPENDENCY = ::core::option::Option u32>; +pub type PCLUSAPI_REMOVE_CLUSTER_GROUP_TO_GROUP_GROUPSET_DEPENDENCY_EX = ::core::option::Option u32>; +pub type PCLUSAPI_REMOVE_CLUSTER_NAME_ACCOUNT = ::core::option::Option u32>; +pub type PCLUSAPI_REMOVE_CLUSTER_RESOURCE_DEPENDENCY = ::core::option::Option u32>; +pub type PCLUSAPI_REMOVE_CLUSTER_RESOURCE_DEPENDENCY_EX = ::core::option::Option u32>; +pub type PCLUSAPI_REMOVE_CLUSTER_RESOURCE_NODE = ::core::option::Option u32>; +pub type PCLUSAPI_REMOVE_CLUSTER_RESOURCE_NODE_EX = ::core::option::Option u32>; +pub type PCLUSAPI_REMOVE_CROSS_CLUSTER_GROUPSET_DEPENDENCY = ::core::option::Option u32>; +pub type PCLUSAPI_REMOVE_RESOURCE_FROM_CLUSTER_SHARED_VOLUMES = ::core::option::Option u32>; +pub type PCLUSAPI_RESTART_CLUSTER_RESOURCE = ::core::option::Option u32>; +pub type PCLUSAPI_RESTART_CLUSTER_RESOURCE_EX = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_RESTORE_CLUSTER_DATABASE = ::core::option::Option u32>; +pub type PCLUSAPI_RESUME_CLUSTER_NODE = ::core::option::Option u32>; +pub type PCLUSAPI_RESUME_CLUSTER_NODE_EX = ::core::option::Option u32>; +pub type PCLUSAPI_RESUME_CLUSTER_NODE_EX2 = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_GROUP_GROUPSET_DEPENDENCY_EXPRESSION = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_GROUP_GROUPSET_DEPENDENCY_EXPRESSION_EX = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_GROUP_NAME = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_GROUP_NAME_EX = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_GROUP_NODE_LIST = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_GROUP_NODE_LIST_EX = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_NAME_EX = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_NETWORK_NAME = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_NETWORK_NAME_EX = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_NETWORK_PRIORITY_ORDER = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_QUORUM_RESOURCE = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_QUORUM_RESOURCE_EX = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_RESOURCE_DEPENDENCY_EXPRESSION = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_RESOURCE_NAME = ::core::option::Option u32>; +pub type PCLUSAPI_SET_CLUSTER_RESOURCE_NAME_EX = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_SET_CLUSTER_SERVICE_ACCOUNT_PASSWORD = ::core::option::Option u32>; +pub type PCLUSAPI_SET_GROUP_DEPENDENCY_EXPRESSION = ::core::option::Option u32>; +pub type PCLUSAPI_SET_GROUP_DEPENDENCY_EXPRESSION_EX = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSAPI_SET_REASON_HANDLER = ::core::option::Option *mut CLUSAPI_REASON_HANDLER>; +pub type PCLUSAPI_SHARED_VOLUME_SET_SNAPSHOT_STATE = ::core::option::Option u32>; +pub type PCLUSAPI_SetClusterName = ::core::option::Option u32>; +pub type PCLUSTER_CLEAR_BACKUP_STATE_FOR_SHARED_VOLUME = ::core::option::Option u32>; +pub type PCLUSTER_DECRYPT = ::core::option::Option u32>; +pub type PCLUSTER_ENCRYPT = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSTER_GET_VOLUME_NAME_FOR_VOLUME_MOUNT_POINT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSTER_GET_VOLUME_PATH_NAME = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSTER_IS_PATH_ON_SHARED_VOLUME = ::core::option::Option super::super::Foundation::BOOL>; +pub type PCLUSTER_PREPARE_SHARED_VOLUME_FOR_BACKUP = ::core::option::Option u32>; +pub type PCLUSTER_REG_BATCH_ADD_COMMAND = ::core::option::Option i32>; +pub type PCLUSTER_REG_BATCH_CLOSE_NOTIFICATION = ::core::option::Option i32>; +pub type PCLUSTER_REG_BATCH_READ_COMMAND = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSTER_REG_CLOSE_BATCH = ::core::option::Option i32>; +pub type PCLUSTER_REG_CLOSE_BATCH_NOTIFY_PORT = ::core::option::Option i32>; +pub type PCLUSTER_REG_CLOSE_READ_BATCH = ::core::option::Option i32>; +pub type PCLUSTER_REG_CLOSE_READ_BATCH_EX = ::core::option::Option i32>; +pub type PCLUSTER_REG_CLOSE_READ_BATCH_REPLY = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSTER_REG_CREATE_BATCH_NOTIFY_PORT = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PCLUSTER_REG_CREATE_READ_BATCH = ::core::option::Option i32>; +pub type PCLUSTER_REG_GET_BATCH_NOTIFICATION = ::core::option::Option i32>; +pub type PCLUSTER_REG_READ_BATCH_ADD_COMMAND = ::core::option::Option i32>; +pub type PCLUSTER_REG_READ_BATCH_REPLY_NEXT_COMMAND = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSTER_SETUP_PROGRESS_CALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +pub type PCLUSTER_SET_ACCOUNT_ACCESS = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCLUSTER_UPGRADE_PROGRESS_CALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +pub type PEND_CONTROL_CALL = ::core::option::Option u32>; +pub type PEND_TYPE_CONTROL_CALL = ::core::option::Option u32>; +pub type PEXTEND_RES_CONTROL_CALL = ::core::option::Option u32>; +pub type PEXTEND_RES_TYPE_CONTROL_CALL = ::core::option::Option u32>; +pub type PFREE_CLUSTER_CRYPT = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIS_ALIVE_ROUTINE = ::core::option::Option super::super::Foundation::BOOL>; +pub type PLOG_EVENT_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLOOKS_ALIVE_ROUTINE = ::core::option::Option super::super::Foundation::BOOL>; +pub type POFFLINE_ROUTINE = ::core::option::Option u32>; +pub type POFFLINE_V2_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PONLINE_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PONLINE_V2_ROUTINE = ::core::option::Option u32>; +pub type POPEN_CLUSTER_CRYPT_PROVIDER = ::core::option::Option HCLUSCRYPTPROVIDER>; +pub type POPEN_CLUSTER_CRYPT_PROVIDEREX = ::core::option::Option HCLUSCRYPTPROVIDER>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type POPEN_ROUTINE = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type POPEN_V2_ROUTINE = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PQUERY_APPINSTANCE_VERSION = ::core::option::Option u32>; +pub type PQUORUM_RESOURCE_LOST = ::core::option::Option ()>; +pub type PRAISE_RES_TYPE_NOTIFICATION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREGISTER_APPINSTANCE = ::core::option::Option u32>; +pub type PREGISTER_APPINSTANCE_VERSION = ::core::option::Option u32>; +pub type PRELEASE_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREQUEST_DUMP_ROUTINE = ::core::option::Option u32>; +pub type PRESET_ALL_APPINSTANCE_VERSIONS = ::core::option::Option u32>; +pub type PRESOURCE_CONTROL_ROUTINE = ::core::option::Option u32>; +pub type PRESOURCE_TYPE_CONTROL_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PRESUTIL_ADD_UNKNOWN_PROPERTIES = ::core::option::Option u32>; +pub type PRESUTIL_CREATE_DIRECTORY_TREE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_DUP_PARAMETER_BLOCK = ::core::option::Option u32>; +pub type PRESUTIL_DUP_STRING = ::core::option::Option ::windows_sys::core::PWSTR>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PRESUTIL_ENUM_PRIVATE_PROPERTIES = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_ENUM_PROPERTIES = ::core::option::Option u32>; +pub type PRESUTIL_ENUM_RESOURCES = ::core::option::Option u32>; +pub type PRESUTIL_ENUM_RESOURCES_EX = ::core::option::Option u32>; +pub type PRESUTIL_ENUM_RESOURCES_EX2 = ::core::option::Option u32>; +pub type PRESUTIL_EXPAND_ENVIRONMENT_STRINGS = ::core::option::Option ::windows_sys::core::PWSTR>; +pub type PRESUTIL_FIND_BINARY_PROPERTY = ::core::option::Option u32>; +pub type PRESUTIL_FIND_DEPENDENT_DISK_RESOURCE_DRIVE_LETTER = ::core::option::Option u32>; +pub type PRESUTIL_FIND_DWORD_PROPERTY = ::core::option::Option u32>; +pub type PRESUTIL_FIND_EXPANDED_SZ_PROPERTY = ::core::option::Option u32>; +pub type PRESUTIL_FIND_EXPAND_SZ_PROPERTY = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_FIND_FILETIME_PROPERTY = ::core::option::Option u32>; +pub type PRESUTIL_FIND_LONG_PROPERTY = ::core::option::Option u32>; +pub type PRESUTIL_FIND_MULTI_SZ_PROPERTY = ::core::option::Option u32>; +pub type PRESUTIL_FIND_SZ_PROPERTY = ::core::option::Option u32>; +pub type PRESUTIL_FIND_ULARGEINTEGER_PROPERTY = ::core::option::Option u32>; +pub type PRESUTIL_FREE_ENVIRONMENT = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_FREE_PARAMETER_BLOCK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PRESUTIL_GET_ALL_PROPERTIES = ::core::option::Option u32>; +pub type PRESUTIL_GET_BINARY_PROPERTY = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PRESUTIL_GET_BINARY_VALUE = ::core::option::Option u32>; +pub type PRESUTIL_GET_CORE_CLUSTER_RESOURCES = ::core::option::Option u32>; +pub type PRESUTIL_GET_CORE_CLUSTER_RESOURCES_EX = ::core::option::Option u32>; +pub type PRESUTIL_GET_DWORD_PROPERTY = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PRESUTIL_GET_DWORD_VALUE = ::core::option::Option u32>; +pub type PRESUTIL_GET_ENVIRONMENT_WITH_NET_NAME = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PRESUTIL_GET_EXPAND_SZ_VALUE = ::core::option::Option ::windows_sys::core::PWSTR>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_GET_FILETIME_PROPERTY = ::core::option::Option u32>; +pub type PRESUTIL_GET_LONG_PROPERTY = ::core::option::Option u32>; +pub type PRESUTIL_GET_MULTI_SZ_PROPERTY = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PRESUTIL_GET_PRIVATE_PROPERTIES = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PRESUTIL_GET_PROPERTIES = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PRESUTIL_GET_PROPERTIES_TO_PARAMETER_BLOCK = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PRESUTIL_GET_PROPERTY = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_GET_PROPERTY_FORMATS = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PRESUTIL_GET_PROPERTY_SIZE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PRESUTIL_GET_QWORD_VALUE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_GET_RESOURCE_DEPENDENCY = ::core::option::Option HRESOURCE>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_GET_RESOURCE_DEPENDENCY_BY_CLASS = ::core::option::Option HRESOURCE>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_GET_RESOURCE_DEPENDENCY_BY_CLASS_EX = ::core::option::Option HRESOURCE>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_GET_RESOURCE_DEPENDENCY_BY_NAME = ::core::option::Option HRESOURCE>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_GET_RESOURCE_DEPENDENCY_BY_NAME_EX = ::core::option::Option HRESOURCE>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_GET_RESOURCE_DEPENDENCY_EX = ::core::option::Option HRESOURCE>; +pub type PRESUTIL_GET_RESOURCE_DEPENDENTIP_ADDRESS_PROPS = ::core::option::Option u32>; +pub type PRESUTIL_GET_RESOURCE_NAME = ::core::option::Option u32>; +pub type PRESUTIL_GET_RESOURCE_NAME_DEPENDENCY = ::core::option::Option HRESOURCE>; +pub type PRESUTIL_GET_RESOURCE_NAME_DEPENDENCY_EX = ::core::option::Option HRESOURCE>; +pub type PRESUTIL_GET_SZ_PROPERTY = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PRESUTIL_GET_SZ_VALUE = ::core::option::Option ::windows_sys::core::PWSTR>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_IS_PATH_VALID = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_IS_RESOURCE_CLASS_EQUAL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_PROPERTY_LIST_FROM_PARAMETER_BLOCK = ::core::option::Option u32>; +pub type PRESUTIL_REMOVE_RESOURCE_SERVICE_ENVIRONMENT = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_RESOURCES_EQUAL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_RESOURCE_TYPES_EQUAL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PRESUTIL_SET_BINARY_VALUE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PRESUTIL_SET_DWORD_VALUE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PRESUTIL_SET_EXPAND_SZ_VALUE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PRESUTIL_SET_MULTI_SZ_VALUE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PRESUTIL_SET_PRIVATE_PROPERTY_LIST = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PRESUTIL_SET_PROPERTY_PARAMETER_BLOCK = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PRESUTIL_SET_PROPERTY_PARAMETER_BLOCK_EX = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PRESUTIL_SET_PROPERTY_TABLE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PRESUTIL_SET_PROPERTY_TABLE_EX = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PRESUTIL_SET_QWORD_VALUE = ::core::option::Option u32>; +pub type PRESUTIL_SET_RESOURCE_SERVICE_ENVIRONMENT = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub type PRESUTIL_SET_RESOURCE_SERVICE_START_PARAMETERS = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub type PRESUTIL_SET_RESOURCE_SERVICE_START_PARAMETERS_EX = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub type PRESUTIL_SET_SZ_VALUE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PRESUTIL_SET_UNKNOWN_PROPERTIES = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub type PRESUTIL_START_RESOURCE_SERVICE = ::core::option::Option u32>; +pub type PRESUTIL_STOP_RESOURCE_SERVICE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub type PRESUTIL_STOP_SERVICE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_TERMINATE_SERVICE_PROCESS_FROM_RES_DLL = ::core::option::Option u32>; +pub type PRESUTIL_VERIFY_PRIVATE_PROPERTY_LIST = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRESUTIL_VERIFY_PROPERTY_TABLE = ::core::option::Option u32>; +pub type PRESUTIL_VERIFY_RESOURCE_SERVICE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub type PRESUTIL_VERIFY_SERVICE = ::core::option::Option u32>; +pub type PRES_UTIL_VERIFY_SHUTDOWN_SAFE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSET_INTERNAL_STATE = ::core::option::Option u32>; +pub type PSET_RESOURCE_INMEMORY_NODELOCAL_PROPERTIES_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSET_RESOURCE_LOCKED_MODE_EX_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSET_RESOURCE_LOCKED_MODE_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSET_RESOURCE_STATUS_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSET_RESOURCE_STATUS_ROUTINE_EX = ::core::option::Option u32>; +pub type PSET_RESOURCE_WPR_POLICY_ROUTINE = ::core::option::Option u32>; +pub type PSIGNAL_FAILURE_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PSTARTUP_EX_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PSTARTUP_ROUTINE = ::core::option::Option u32>; +pub type PTERMINATE_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWORKER_START_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SET_APP_INSTANCE_CSV_FLAGS = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/HttpServer/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/HttpServer/mod.rs new file mode 100644 index 000000000..28d1ed84d --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/HttpServer/mod.rs @@ -0,0 +1,1861 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpAddFragmentToCache(requestqueuehandle : super::super::Foundation:: HANDLE, urlprefix : ::windows_sys::core::PCWSTR, datachunk : *const HTTP_DATA_CHUNK, cachepolicy : *const HTTP_CACHE_POLICY, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpAddUrl(requestqueuehandle : super::super::Foundation:: HANDLE, fullyqualifiedurl : ::windows_sys::core::PCWSTR, reserved : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("httpapi.dll" "system" fn HttpAddUrlToUrlGroup(urlgroupid : u64, pfullyqualifiedurl : ::windows_sys::core::PCWSTR, urlcontext : u64, reserved : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpCancelHttpRequest(requestqueuehandle : super::super::Foundation:: HANDLE, requestid : u64, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpCloseRequestQueue(requestqueuehandle : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("httpapi.dll" "system" fn HttpCloseServerSession(serversessionid : u64) -> u32); +::windows_targets::link!("httpapi.dll" "system" fn HttpCloseUrlGroup(urlgroupid : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpCreateHttpHandle(requestqueuehandle : *mut super::super::Foundation:: HANDLE, reserved : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn HttpCreateRequestQueue(version : HTTPAPI_VERSION, name : ::windows_sys::core::PCWSTR, securityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, flags : u32, requestqueuehandle : *mut super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("httpapi.dll" "system" fn HttpCreateServerSession(version : HTTPAPI_VERSION, serversessionid : *mut u64, reserved : u32) -> u32); +::windows_targets::link!("httpapi.dll" "system" fn HttpCreateUrlGroup(serversessionid : u64, purlgroupid : *mut u64, reserved : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpDeclarePush(requestqueuehandle : super::super::Foundation:: HANDLE, requestid : u64, verb : HTTP_VERB, path : ::windows_sys::core::PCWSTR, query : ::windows_sys::core::PCSTR, headers : *const HTTP_REQUEST_HEADERS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpDelegateRequestEx(requestqueuehandle : super::super::Foundation:: HANDLE, delegatequeuehandle : super::super::Foundation:: HANDLE, requestid : u64, delegateurlgroupid : u64, propertyinfosetsize : u32, propertyinfoset : *const HTTP_DELEGATE_REQUEST_PROPERTY_INFO) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpDeleteServiceConfiguration(servicehandle : super::super::Foundation:: HANDLE, configid : HTTP_SERVICE_CONFIG_ID, pconfiginformation : *const ::core::ffi::c_void, configinformationlength : u32, poverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpFindUrlGroupId(fullyqualifiedurl : ::windows_sys::core::PCWSTR, requestqueuehandle : super::super::Foundation:: HANDLE, urlgroupid : *mut u64) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpFlushResponseCache(requestqueuehandle : super::super::Foundation:: HANDLE, urlprefix : ::windows_sys::core::PCWSTR, flags : u32, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +::windows_targets::link!("httpapi.dll" "system" fn HttpGetExtension(version : HTTPAPI_VERSION, extension : u32, buffer : *mut ::core::ffi::c_void, buffersize : u32) -> u32); +::windows_targets::link!("httpapi.dll" "system" fn HttpInitialize(version : HTTPAPI_VERSION, flags : HTTP_INITIALIZE, preserved : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpIsFeatureSupported(featureid : HTTP_FEATURE_ID) -> super::super::Foundation:: BOOL); +::windows_targets::link!("httpapi.dll" "system" fn HttpPrepareUrl(reserved : *const ::core::ffi::c_void, flags : u32, url : ::windows_sys::core::PCWSTR, preparedurl : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpQueryRequestQueueProperty(requestqueuehandle : super::super::Foundation:: HANDLE, property : HTTP_SERVER_PROPERTY, propertyinformation : *mut ::core::ffi::c_void, propertyinformationlength : u32, reserved1 : u32, returnlength : *mut u32, reserved2 : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("httpapi.dll" "system" fn HttpQueryServerSessionProperty(serversessionid : u64, property : HTTP_SERVER_PROPERTY, propertyinformation : *mut ::core::ffi::c_void, propertyinformationlength : u32, returnlength : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpQueryServiceConfiguration(servicehandle : super::super::Foundation:: HANDLE, configid : HTTP_SERVICE_CONFIG_ID, pinput : *const ::core::ffi::c_void, inputlength : u32, poutput : *mut ::core::ffi::c_void, outputlength : u32, preturnlength : *mut u32, poverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +::windows_targets::link!("httpapi.dll" "system" fn HttpQueryUrlGroupProperty(urlgroupid : u64, property : HTTP_SERVER_PROPERTY, propertyinformation : *mut ::core::ffi::c_void, propertyinformationlength : u32, returnlength : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpReadFragmentFromCache(requestqueuehandle : super::super::Foundation:: HANDLE, urlprefix : ::windows_sys::core::PCWSTR, byterange : *const HTTP_BYTE_RANGE, buffer : *mut ::core::ffi::c_void, bufferlength : u32, bytesread : *mut u32, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpReceiveClientCertificate(requestqueuehandle : super::super::Foundation:: HANDLE, connectionid : u64, flags : u32, sslclientcertinfo : *mut HTTP_SSL_CLIENT_CERT_INFO, sslclientcertinfosize : u32, bytesreceived : *mut u32, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`, `\"Win32_System_IO\"`"] fn HttpReceiveHttpRequest(requestqueuehandle : super::super::Foundation:: HANDLE, requestid : u64, flags : HTTP_RECEIVE_HTTP_REQUEST_FLAGS, requestbuffer : *mut HTTP_REQUEST_V2, requestbufferlength : u32, bytesreturned : *mut u32, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpReceiveRequestEntityBody(requestqueuehandle : super::super::Foundation:: HANDLE, requestid : u64, flags : u32, entitybuffer : *mut ::core::ffi::c_void, entitybufferlength : u32, bytesreturned : *mut u32, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpRemoveUrl(requestqueuehandle : super::super::Foundation:: HANDLE, fullyqualifiedurl : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("httpapi.dll" "system" fn HttpRemoveUrlFromUrlGroup(urlgroupid : u64, pfullyqualifiedurl : ::windows_sys::core::PCWSTR, flags : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpSendHttpResponse(requestqueuehandle : super::super::Foundation:: HANDLE, requestid : u64, flags : u32, httpresponse : *const HTTP_RESPONSE_V2, cachepolicy : *const HTTP_CACHE_POLICY, bytessent : *mut u32, reserved1 : *const ::core::ffi::c_void, reserved2 : u32, overlapped : *const super::super::System::IO:: OVERLAPPED, logdata : *const HTTP_LOG_DATA) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpSendResponseEntityBody(requestqueuehandle : super::super::Foundation:: HANDLE, requestid : u64, flags : u32, entitychunkcount : u16, entitychunks : *const HTTP_DATA_CHUNK, bytessent : *mut u32, reserved1 : *const ::core::ffi::c_void, reserved2 : u32, overlapped : *const super::super::System::IO:: OVERLAPPED, logdata : *const HTTP_LOG_DATA) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpSetRequestProperty(requestqueuehandle : super::super::Foundation:: HANDLE, id : u64, propertyid : HTTP_REQUEST_PROPERTY, input : *const ::core::ffi::c_void, inputpropertysize : u32, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpSetRequestQueueProperty(requestqueuehandle : super::super::Foundation:: HANDLE, property : HTTP_SERVER_PROPERTY, propertyinformation : *const ::core::ffi::c_void, propertyinformationlength : u32, reserved1 : u32, reserved2 : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("httpapi.dll" "system" fn HttpSetServerSessionProperty(serversessionid : u64, property : HTTP_SERVER_PROPERTY, propertyinformation : *const ::core::ffi::c_void, propertyinformationlength : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpSetServiceConfiguration(servicehandle : super::super::Foundation:: HANDLE, configid : HTTP_SERVICE_CONFIG_ID, pconfiginformation : *const ::core::ffi::c_void, configinformationlength : u32, poverlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +::windows_targets::link!("httpapi.dll" "system" fn HttpSetUrlGroupProperty(urlgroupid : u64, property : HTTP_SERVER_PROPERTY, propertyinformation : *const ::core::ffi::c_void, propertyinformationlength : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpShutdownRequestQueue(requestqueuehandle : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("httpapi.dll" "system" fn HttpTerminate(flags : HTTP_INITIALIZE, preserved : *mut ::core::ffi::c_void) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpUpdateServiceConfiguration(handle : super::super::Foundation:: HANDLE, configid : HTTP_SERVICE_CONFIG_ID, configinfo : *const ::core::ffi::c_void, configinfolength : u32, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpWaitForDemandStart(requestqueuehandle : super::super::Foundation:: HANDLE, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpWaitForDisconnect(requestqueuehandle : super::super::Foundation:: HANDLE, connectionid : u64, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("httpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn HttpWaitForDisconnectEx(requestqueuehandle : super::super::Foundation:: HANDLE, connectionid : u64, reserved : u32, overlapped : *const super::super::System::IO:: OVERLAPPED) -> u32); +pub const CacheRangeChunkSize: HTTP_SERVICE_CONFIG_CACHE_KEY = 1i32; +pub const CreateRequestQueueExternalIdProperty: HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID = 1i32; +pub const CreateRequestQueueMax: HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID = 2i32; +pub const DelegateRequestDelegateUrlProperty: HTTP_DELEGATE_REQUEST_PROPERTY_ID = 1i32; +pub const DelegateRequestReservedProperty: HTTP_DELEGATE_REQUEST_PROPERTY_ID = 0i32; +pub const ExParamTypeErrorHeaders: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE = 4i32; +pub const ExParamTypeHttp2SettingsLimits: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE = 1i32; +pub const ExParamTypeHttp2Window: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE = 0i32; +pub const ExParamTypeHttpPerformance: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE = 2i32; +pub const ExParamTypeMax: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE = 6i32; +pub const ExParamTypeTlsRestrictions: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE = 3i32; +pub const ExParamTypeTlsSessionTicketKeys: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE = 5i32; +pub const HTTP_AUTH_ENABLE_BASIC: u32 = 1u32; +pub const HTTP_AUTH_ENABLE_DIGEST: u32 = 2u32; +pub const HTTP_AUTH_ENABLE_KERBEROS: u32 = 16u32; +pub const HTTP_AUTH_ENABLE_NEGOTIATE: u32 = 8u32; +pub const HTTP_AUTH_ENABLE_NTLM: u32 = 4u32; +pub const HTTP_AUTH_EX_FLAG_CAPTURE_CREDENTIAL: u32 = 2u32; +pub const HTTP_AUTH_EX_FLAG_ENABLE_KERBEROS_CREDENTIAL_CACHING: u32 = 1u32; +pub const HTTP_CHANNEL_BIND_CLIENT_SERVICE: u32 = 16u32; +pub const HTTP_CHANNEL_BIND_DOTLESS_SERVICE: u32 = 4u32; +pub const HTTP_CHANNEL_BIND_NO_SERVICE_NAME_CHECK: u32 = 2u32; +pub const HTTP_CHANNEL_BIND_PROXY: u32 = 1u32; +pub const HTTP_CHANNEL_BIND_PROXY_COHOSTING: u32 = 32u32; +pub const HTTP_CHANNEL_BIND_SECURE_CHANNEL_TOKEN: u32 = 8u32; +pub const HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER: u32 = 2u32; +pub const HTTP_CREATE_REQUEST_QUEUE_FLAG_DELEGATION: u32 = 8u32; +pub const HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING: u32 = 1u32; +pub const HTTP_DEMAND_CBT: u32 = 4u32; +pub const HTTP_FLUSH_RESPONSE_FLAG_RECURSIVE: u32 = 1u32; +pub const HTTP_INITIALIZE_CONFIG: HTTP_INITIALIZE = 2u32; +pub const HTTP_INITIALIZE_SERVER: HTTP_INITIALIZE = 1u32; +pub const HTTP_LOGGING_FLAG_LOCAL_TIME_ROLLOVER: u32 = 1u32; +pub const HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY: u32 = 4u32; +pub const HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY: u32 = 8u32; +pub const HTTP_LOGGING_FLAG_USE_UTF8_CONVERSION: u32 = 2u32; +pub const HTTP_LOG_FIELD_BYTES_RECV: u32 = 8192u32; +pub const HTTP_LOG_FIELD_BYTES_SENT: u32 = 4096u32; +pub const HTTP_LOG_FIELD_CLIENT_IP: u32 = 4u32; +pub const HTTP_LOG_FIELD_CLIENT_PORT: u32 = 4194304u32; +pub const HTTP_LOG_FIELD_COMPUTER_NAME: u32 = 32u32; +pub const HTTP_LOG_FIELD_COOKIE: u32 = 131072u32; +pub const HTTP_LOG_FIELD_CORRELATION_ID: u32 = 1073741824u32; +pub const HTTP_LOG_FIELD_DATE: u32 = 1u32; +pub const HTTP_LOG_FIELD_FAULT_CODE: u32 = 2147483648u32; +pub const HTTP_LOG_FIELD_HOST: u32 = 1048576u32; +pub const HTTP_LOG_FIELD_METHOD: u32 = 128u32; +pub const HTTP_LOG_FIELD_QUEUE_NAME: u32 = 67108864u32; +pub const HTTP_LOG_FIELD_REASON: u32 = 33554432u32; +pub const HTTP_LOG_FIELD_REFERER: u32 = 262144u32; +pub const HTTP_LOG_FIELD_SERVER_IP: u32 = 64u32; +pub const HTTP_LOG_FIELD_SERVER_PORT: u32 = 32768u32; +pub const HTTP_LOG_FIELD_SITE_ID: u32 = 16777216u32; +pub const HTTP_LOG_FIELD_SITE_NAME: u32 = 16u32; +pub const HTTP_LOG_FIELD_STATUS: u32 = 1024u32; +pub const HTTP_LOG_FIELD_STREAM_ID: u32 = 134217728u32; +pub const HTTP_LOG_FIELD_STREAM_ID_EX: u32 = 268435456u32; +pub const HTTP_LOG_FIELD_SUB_STATUS: u32 = 2097152u32; +pub const HTTP_LOG_FIELD_TIME: u32 = 2u32; +pub const HTTP_LOG_FIELD_TIME_TAKEN: u32 = 16384u32; +pub const HTTP_LOG_FIELD_TRANSPORT_TYPE: u32 = 536870912u32; +pub const HTTP_LOG_FIELD_URI: u32 = 8388608u32; +pub const HTTP_LOG_FIELD_URI_QUERY: u32 = 512u32; +pub const HTTP_LOG_FIELD_URI_STEM: u32 = 256u32; +pub const HTTP_LOG_FIELD_USER_AGENT: u32 = 65536u32; +pub const HTTP_LOG_FIELD_USER_NAME: u32 = 8u32; +pub const HTTP_LOG_FIELD_VERSION: u32 = 524288u32; +pub const HTTP_LOG_FIELD_WIN32_STATUS: u32 = 2048u32; +pub const HTTP_MAX_SERVER_QUEUE_LENGTH: u32 = 2147483647u32; +pub const HTTP_MIN_SERVER_QUEUE_LENGTH: u32 = 1u32; +pub const HTTP_RECEIVE_FULL_CHAIN: u32 = 2u32; +pub const HTTP_RECEIVE_REQUEST_ENTITY_BODY_FLAG_FILL_BUFFER: u32 = 1u32; +pub const HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY: HTTP_RECEIVE_HTTP_REQUEST_FLAGS = 1u32; +pub const HTTP_RECEIVE_REQUEST_FLAG_FLUSH_BODY: HTTP_RECEIVE_HTTP_REQUEST_FLAGS = 2u32; +pub const HTTP_RECEIVE_SECURE_CHANNEL_TOKEN: u32 = 1u32; +pub const HTTP_REQUEST_AUTH_FLAG_TOKEN_FOR_CACHED_CRED: u32 = 1u32; +pub const HTTP_REQUEST_FLAG_HTTP2: u32 = 4u32; +pub const HTTP_REQUEST_FLAG_HTTP3: u32 = 8u32; +pub const HTTP_REQUEST_FLAG_IP_ROUTED: u32 = 2u32; +pub const HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS: u32 = 1u32; +pub const HTTP_REQUEST_PROPERTY_SNI_FLAG_NO_SNI: u32 = 2u32; +pub const HTTP_REQUEST_PROPERTY_SNI_FLAG_SNI_USED: u32 = 1u32; +pub const HTTP_REQUEST_PROPERTY_SNI_HOST_MAX_LENGTH: u32 = 255u32; +pub const HTTP_REQUEST_SIZING_INFO_FLAG_FIRST_REQUEST: u32 = 8u32; +pub const HTTP_REQUEST_SIZING_INFO_FLAG_TCP_FAST_OPEN: u32 = 1u32; +pub const HTTP_REQUEST_SIZING_INFO_FLAG_TLS_FALSE_START: u32 = 4u32; +pub const HTTP_REQUEST_SIZING_INFO_FLAG_TLS_SESSION_RESUMPTION: u32 = 2u32; +pub const HTTP_RESPONSE_FLAG_MORE_ENTITY_BODY_EXISTS: u32 = 2u32; +pub const HTTP_RESPONSE_FLAG_MULTIPLE_ENCODINGS_AVAILABLE: u32 = 1u32; +pub const HTTP_RESPONSE_INFO_FLAGS_PRESERVE_ORDER: u32 = 1u32; +pub const HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA: u32 = 4u32; +pub const HTTP_SEND_RESPONSE_FLAG_DISCONNECT: u32 = 1u32; +pub const HTTP_SEND_RESPONSE_FLAG_ENABLE_NAGLING: u32 = 8u32; +pub const HTTP_SEND_RESPONSE_FLAG_GOAWAY: u32 = 256u32; +pub const HTTP_SEND_RESPONSE_FLAG_MORE_DATA: u32 = 2u32; +pub const HTTP_SEND_RESPONSE_FLAG_OPAQUE: u32 = 64u32; +pub const HTTP_SEND_RESPONSE_FLAG_PROCESS_RANGES: u32 = 32u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_HTTP2: u32 = 16u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_LEGACY_TLS: u32 = 1024u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_OCSP_STAPLING: u32 = 128u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_QUIC: u32 = 32u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_SESSION_ID: u32 = 16384u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_TLS12: u32 = 4096u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_TLS13: u32 = 64u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_CLIENT_CORRELATION: u32 = 8192u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_SESSION_TICKET: u32 = 2048u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_TOKEN_BINDING: u32 = 256u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_LOG_EXTENDED_EVENTS: u32 = 512u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_NEGOTIATE_CLIENT_CERT: u32 = 2u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_NO_RAW_FILTER: u32 = 4u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_REJECT: u32 = 8u32; +pub const HTTP_SERVICE_CONFIG_SSL_FLAG_USE_DS_MAPPER: u32 = 1u32; +pub const HTTP_URL_FLAG_REMOVE_ALL: u32 = 1u32; +pub const HTTP_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HTTP/1.0"); +pub const HeaderWaitTimeout: HTTP_SERVICE_CONFIG_TIMEOUT_KEY = 1i32; +pub const Http503ResponseVerbosityBasic: HTTP_503_RESPONSE_VERBOSITY = 0i32; +pub const Http503ResponseVerbosityFull: HTTP_503_RESPONSE_VERBOSITY = 2i32; +pub const Http503ResponseVerbosityLimited: HTTP_503_RESPONSE_VERBOSITY = 1i32; +pub const HttpAuthStatusFailure: HTTP_AUTH_STATUS = 2i32; +pub const HttpAuthStatusNotAuthenticated: HTTP_AUTH_STATUS = 1i32; +pub const HttpAuthStatusSuccess: HTTP_AUTH_STATUS = 0i32; +pub const HttpAuthenticationHardeningLegacy: HTTP_AUTHENTICATION_HARDENING_LEVELS = 0i32; +pub const HttpAuthenticationHardeningMedium: HTTP_AUTHENTICATION_HARDENING_LEVELS = 1i32; +pub const HttpAuthenticationHardeningStrict: HTTP_AUTHENTICATION_HARDENING_LEVELS = 2i32; +pub const HttpCachePolicyMaximum: HTTP_CACHE_POLICY_TYPE = 3i32; +pub const HttpCachePolicyNocache: HTTP_CACHE_POLICY_TYPE = 0i32; +pub const HttpCachePolicyTimeToLive: HTTP_CACHE_POLICY_TYPE = 2i32; +pub const HttpCachePolicyUserInvalidates: HTTP_CACHE_POLICY_TYPE = 1i32; +pub const HttpDataChunkFromFileHandle: HTTP_DATA_CHUNK_TYPE = 1i32; +pub const HttpDataChunkFromFragmentCache: HTTP_DATA_CHUNK_TYPE = 2i32; +pub const HttpDataChunkFromFragmentCacheEx: HTTP_DATA_CHUNK_TYPE = 3i32; +pub const HttpDataChunkFromMemory: HTTP_DATA_CHUNK_TYPE = 0i32; +pub const HttpDataChunkMaximum: HTTP_DATA_CHUNK_TYPE = 5i32; +pub const HttpDataChunkTrailers: HTTP_DATA_CHUNK_TYPE = 4i32; +pub const HttpEnabledStateActive: HTTP_ENABLED_STATE = 0i32; +pub const HttpEnabledStateInactive: HTTP_ENABLED_STATE = 1i32; +pub const HttpFeatureApiTimings: HTTP_FEATURE_ID = 2i32; +pub const HttpFeatureDelegateEx: HTTP_FEATURE_ID = 3i32; +pub const HttpFeatureHttp3: HTTP_FEATURE_ID = 4i32; +pub const HttpFeatureLast: HTTP_FEATURE_ID = 5i32; +pub const HttpFeatureResponseTrailers: HTTP_FEATURE_ID = 1i32; +pub const HttpFeatureUnknown: HTTP_FEATURE_ID = 0i32; +pub const HttpFeaturemax: HTTP_FEATURE_ID = -1i32; +pub const HttpHeaderAccept: HTTP_HEADER_ID = 20i32; +pub const HttpHeaderAcceptCharset: HTTP_HEADER_ID = 21i32; +pub const HttpHeaderAcceptEncoding: HTTP_HEADER_ID = 22i32; +pub const HttpHeaderAcceptLanguage: HTTP_HEADER_ID = 23i32; +pub const HttpHeaderAcceptRanges: HTTP_HEADER_ID = 20i32; +pub const HttpHeaderAge: HTTP_HEADER_ID = 21i32; +pub const HttpHeaderAllow: HTTP_HEADER_ID = 10i32; +pub const HttpHeaderAuthorization: HTTP_HEADER_ID = 24i32; +pub const HttpHeaderCacheControl: HTTP_HEADER_ID = 0i32; +pub const HttpHeaderConnection: HTTP_HEADER_ID = 1i32; +pub const HttpHeaderContentEncoding: HTTP_HEADER_ID = 13i32; +pub const HttpHeaderContentLanguage: HTTP_HEADER_ID = 14i32; +pub const HttpHeaderContentLength: HTTP_HEADER_ID = 11i32; +pub const HttpHeaderContentLocation: HTTP_HEADER_ID = 15i32; +pub const HttpHeaderContentMd5: HTTP_HEADER_ID = 16i32; +pub const HttpHeaderContentRange: HTTP_HEADER_ID = 17i32; +pub const HttpHeaderContentType: HTTP_HEADER_ID = 12i32; +pub const HttpHeaderCookie: HTTP_HEADER_ID = 25i32; +pub const HttpHeaderDate: HTTP_HEADER_ID = 2i32; +pub const HttpHeaderEtag: HTTP_HEADER_ID = 22i32; +pub const HttpHeaderExpect: HTTP_HEADER_ID = 26i32; +pub const HttpHeaderExpires: HTTP_HEADER_ID = 18i32; +pub const HttpHeaderFrom: HTTP_HEADER_ID = 27i32; +pub const HttpHeaderHost: HTTP_HEADER_ID = 28i32; +pub const HttpHeaderIfMatch: HTTP_HEADER_ID = 29i32; +pub const HttpHeaderIfModifiedSince: HTTP_HEADER_ID = 30i32; +pub const HttpHeaderIfNoneMatch: HTTP_HEADER_ID = 31i32; +pub const HttpHeaderIfRange: HTTP_HEADER_ID = 32i32; +pub const HttpHeaderIfUnmodifiedSince: HTTP_HEADER_ID = 33i32; +pub const HttpHeaderKeepAlive: HTTP_HEADER_ID = 3i32; +pub const HttpHeaderLastModified: HTTP_HEADER_ID = 19i32; +pub const HttpHeaderLocation: HTTP_HEADER_ID = 23i32; +pub const HttpHeaderMaxForwards: HTTP_HEADER_ID = 34i32; +pub const HttpHeaderMaximum: HTTP_HEADER_ID = 41i32; +pub const HttpHeaderPragma: HTTP_HEADER_ID = 4i32; +pub const HttpHeaderProxyAuthenticate: HTTP_HEADER_ID = 24i32; +pub const HttpHeaderProxyAuthorization: HTTP_HEADER_ID = 35i32; +pub const HttpHeaderRange: HTTP_HEADER_ID = 37i32; +pub const HttpHeaderReferer: HTTP_HEADER_ID = 36i32; +pub const HttpHeaderRequestMaximum: HTTP_HEADER_ID = 41i32; +pub const HttpHeaderResponseMaximum: HTTP_HEADER_ID = 30i32; +pub const HttpHeaderRetryAfter: HTTP_HEADER_ID = 25i32; +pub const HttpHeaderServer: HTTP_HEADER_ID = 26i32; +pub const HttpHeaderSetCookie: HTTP_HEADER_ID = 27i32; +pub const HttpHeaderTe: HTTP_HEADER_ID = 38i32; +pub const HttpHeaderTrailer: HTTP_HEADER_ID = 5i32; +pub const HttpHeaderTransferEncoding: HTTP_HEADER_ID = 6i32; +pub const HttpHeaderTranslate: HTTP_HEADER_ID = 39i32; +pub const HttpHeaderUpgrade: HTTP_HEADER_ID = 7i32; +pub const HttpHeaderUserAgent: HTTP_HEADER_ID = 40i32; +pub const HttpHeaderVary: HTTP_HEADER_ID = 28i32; +pub const HttpHeaderVia: HTTP_HEADER_ID = 8i32; +pub const HttpHeaderWarning: HTTP_HEADER_ID = 9i32; +pub const HttpHeaderWwwAuthenticate: HTTP_HEADER_ID = 29i32; +pub const HttpLogDataTypeFields: HTTP_LOG_DATA_TYPE = 0i32; +pub const HttpLoggingRolloverDaily: HTTP_LOGGING_ROLLOVER_TYPE = 1i32; +pub const HttpLoggingRolloverHourly: HTTP_LOGGING_ROLLOVER_TYPE = 4i32; +pub const HttpLoggingRolloverMonthly: HTTP_LOGGING_ROLLOVER_TYPE = 3i32; +pub const HttpLoggingRolloverSize: HTTP_LOGGING_ROLLOVER_TYPE = 0i32; +pub const HttpLoggingRolloverWeekly: HTTP_LOGGING_ROLLOVER_TYPE = 2i32; +pub const HttpLoggingTypeIIS: HTTP_LOGGING_TYPE = 1i32; +pub const HttpLoggingTypeNCSA: HTTP_LOGGING_TYPE = 2i32; +pub const HttpLoggingTypeRaw: HTTP_LOGGING_TYPE = 3i32; +pub const HttpLoggingTypeW3C: HTTP_LOGGING_TYPE = 0i32; +pub const HttpNone: HTTP_SERVICE_CONFIG_SETTING_KEY = 0i32; +pub const HttpProtectionLevelEdgeRestricted: HTTP_PROTECTION_LEVEL_TYPE = 1i32; +pub const HttpProtectionLevelRestricted: HTTP_PROTECTION_LEVEL_TYPE = 2i32; +pub const HttpProtectionLevelUnrestricted: HTTP_PROTECTION_LEVEL_TYPE = 0i32; +pub const HttpQosSettingTypeBandwidth: HTTP_QOS_SETTING_TYPE = 0i32; +pub const HttpQosSettingTypeConnectionLimit: HTTP_QOS_SETTING_TYPE = 1i32; +pub const HttpQosSettingTypeFlowRate: HTTP_QOS_SETTING_TYPE = 2i32; +pub const HttpRequestAuthTypeBasic: HTTP_REQUEST_AUTH_TYPE = 1i32; +pub const HttpRequestAuthTypeDigest: HTTP_REQUEST_AUTH_TYPE = 2i32; +pub const HttpRequestAuthTypeKerberos: HTTP_REQUEST_AUTH_TYPE = 5i32; +pub const HttpRequestAuthTypeNTLM: HTTP_REQUEST_AUTH_TYPE = 3i32; +pub const HttpRequestAuthTypeNegotiate: HTTP_REQUEST_AUTH_TYPE = 4i32; +pub const HttpRequestAuthTypeNone: HTTP_REQUEST_AUTH_TYPE = 0i32; +pub const HttpRequestInfoTypeAuth: HTTP_REQUEST_INFO_TYPE = 0i32; +pub const HttpRequestInfoTypeChannelBind: HTTP_REQUEST_INFO_TYPE = 1i32; +pub const HttpRequestInfoTypeQuicStats: HTTP_REQUEST_INFO_TYPE = 8i32; +pub const HttpRequestInfoTypeRequestSizing: HTTP_REQUEST_INFO_TYPE = 7i32; +pub const HttpRequestInfoTypeRequestTiming: HTTP_REQUEST_INFO_TYPE = 5i32; +pub const HttpRequestInfoTypeSslProtocol: HTTP_REQUEST_INFO_TYPE = 2i32; +pub const HttpRequestInfoTypeSslTokenBinding: HTTP_REQUEST_INFO_TYPE = 4i32; +pub const HttpRequestInfoTypeSslTokenBindingDraft: HTTP_REQUEST_INFO_TYPE = 3i32; +pub const HttpRequestInfoTypeTcpInfoV0: HTTP_REQUEST_INFO_TYPE = 6i32; +pub const HttpRequestInfoTypeTcpInfoV1: HTTP_REQUEST_INFO_TYPE = 9i32; +pub const HttpRequestPropertyIsb: HTTP_REQUEST_PROPERTY = 0i32; +pub const HttpRequestPropertyQuicApiTimings: HTTP_REQUEST_PROPERTY = 7i32; +pub const HttpRequestPropertyQuicStats: HTTP_REQUEST_PROPERTY = 2i32; +pub const HttpRequestPropertySni: HTTP_REQUEST_PROPERTY = 4i32; +pub const HttpRequestPropertyStreamError: HTTP_REQUEST_PROPERTY = 5i32; +pub const HttpRequestPropertyTcpInfoV0: HTTP_REQUEST_PROPERTY = 1i32; +pub const HttpRequestPropertyTcpInfoV1: HTTP_REQUEST_PROPERTY = 3i32; +pub const HttpRequestPropertyWskApiTimings: HTTP_REQUEST_PROPERTY = 6i32; +pub const HttpRequestSizingTypeHeaders: HTTP_REQUEST_SIZING_TYPE = 4i32; +pub const HttpRequestSizingTypeMax: HTTP_REQUEST_SIZING_TYPE = 5i32; +pub const HttpRequestSizingTypeTlsHandshakeLeg1ClientData: HTTP_REQUEST_SIZING_TYPE = 0i32; +pub const HttpRequestSizingTypeTlsHandshakeLeg1ServerData: HTTP_REQUEST_SIZING_TYPE = 1i32; +pub const HttpRequestSizingTypeTlsHandshakeLeg2ClientData: HTTP_REQUEST_SIZING_TYPE = 2i32; +pub const HttpRequestSizingTypeTlsHandshakeLeg2ServerData: HTTP_REQUEST_SIZING_TYPE = 3i32; +pub const HttpRequestTimingTypeConnectionStart: HTTP_REQUEST_TIMING_TYPE = 0i32; +pub const HttpRequestTimingTypeDataStart: HTTP_REQUEST_TIMING_TYPE = 1i32; +pub const HttpRequestTimingTypeHttp2HeaderDecodeEnd: HTTP_REQUEST_TIMING_TYPE = 14i32; +pub const HttpRequestTimingTypeHttp2HeaderDecodeStart: HTTP_REQUEST_TIMING_TYPE = 13i32; +pub const HttpRequestTimingTypeHttp2StreamStart: HTTP_REQUEST_TIMING_TYPE = 12i32; +pub const HttpRequestTimingTypeHttp3HeaderDecodeEnd: HTTP_REQUEST_TIMING_TYPE = 29i32; +pub const HttpRequestTimingTypeHttp3HeaderDecodeStart: HTTP_REQUEST_TIMING_TYPE = 28i32; +pub const HttpRequestTimingTypeHttp3StreamStart: HTTP_REQUEST_TIMING_TYPE = 27i32; +pub const HttpRequestTimingTypeMax: HTTP_REQUEST_TIMING_TYPE = 30i32; +pub const HttpRequestTimingTypeRequestDeliveredForDelegation: HTTP_REQUEST_TIMING_TYPE = 23i32; +pub const HttpRequestTimingTypeRequestDeliveredForIO: HTTP_REQUEST_TIMING_TYPE = 26i32; +pub const HttpRequestTimingTypeRequestDeliveredForInspection: HTTP_REQUEST_TIMING_TYPE = 20i32; +pub const HttpRequestTimingTypeRequestHeaderParseEnd: HTTP_REQUEST_TIMING_TYPE = 16i32; +pub const HttpRequestTimingTypeRequestHeaderParseStart: HTTP_REQUEST_TIMING_TYPE = 15i32; +pub const HttpRequestTimingTypeRequestQueuedForDelegation: HTTP_REQUEST_TIMING_TYPE = 22i32; +pub const HttpRequestTimingTypeRequestQueuedForIO: HTTP_REQUEST_TIMING_TYPE = 25i32; +pub const HttpRequestTimingTypeRequestQueuedForInspection: HTTP_REQUEST_TIMING_TYPE = 19i32; +pub const HttpRequestTimingTypeRequestReturnedAfterDelegation: HTTP_REQUEST_TIMING_TYPE = 24i32; +pub const HttpRequestTimingTypeRequestReturnedAfterInspection: HTTP_REQUEST_TIMING_TYPE = 21i32; +pub const HttpRequestTimingTypeRequestRoutingEnd: HTTP_REQUEST_TIMING_TYPE = 18i32; +pub const HttpRequestTimingTypeRequestRoutingStart: HTTP_REQUEST_TIMING_TYPE = 17i32; +pub const HttpRequestTimingTypeTlsAttributesQueryEnd: HTTP_REQUEST_TIMING_TYPE = 9i32; +pub const HttpRequestTimingTypeTlsAttributesQueryStart: HTTP_REQUEST_TIMING_TYPE = 8i32; +pub const HttpRequestTimingTypeTlsCertificateLoadEnd: HTTP_REQUEST_TIMING_TYPE = 3i32; +pub const HttpRequestTimingTypeTlsCertificateLoadStart: HTTP_REQUEST_TIMING_TYPE = 2i32; +pub const HttpRequestTimingTypeTlsClientCertQueryEnd: HTTP_REQUEST_TIMING_TYPE = 11i32; +pub const HttpRequestTimingTypeTlsClientCertQueryStart: HTTP_REQUEST_TIMING_TYPE = 10i32; +pub const HttpRequestTimingTypeTlsHandshakeLeg1End: HTTP_REQUEST_TIMING_TYPE = 5i32; +pub const HttpRequestTimingTypeTlsHandshakeLeg1Start: HTTP_REQUEST_TIMING_TYPE = 4i32; +pub const HttpRequestTimingTypeTlsHandshakeLeg2End: HTTP_REQUEST_TIMING_TYPE = 7i32; +pub const HttpRequestTimingTypeTlsHandshakeLeg2Start: HTTP_REQUEST_TIMING_TYPE = 6i32; +pub const HttpResponseInfoTypeAuthenticationProperty: HTTP_RESPONSE_INFO_TYPE = 1i32; +pub const HttpResponseInfoTypeChannelBind: HTTP_RESPONSE_INFO_TYPE = 3i32; +pub const HttpResponseInfoTypeMultipleKnownHeaders: HTTP_RESPONSE_INFO_TYPE = 0i32; +pub const HttpResponseInfoTypeQoSProperty: HTTP_RESPONSE_INFO_TYPE = 2i32; +pub const HttpSchemeHttp: HTTP_SCHEME = 0i32; +pub const HttpSchemeHttps: HTTP_SCHEME = 1i32; +pub const HttpSchemeMaximum: HTTP_SCHEME = 2i32; +pub const HttpServer503VerbosityProperty: HTTP_SERVER_PROPERTY = 6i32; +pub const HttpServerAuthenticationProperty: HTTP_SERVER_PROPERTY = 0i32; +pub const HttpServerBindingProperty: HTTP_SERVER_PROPERTY = 7i32; +pub const HttpServerChannelBindProperty: HTTP_SERVER_PROPERTY = 10i32; +pub const HttpServerDelegationProperty: HTTP_SERVER_PROPERTY = 16i32; +pub const HttpServerExtendedAuthenticationProperty: HTTP_SERVER_PROPERTY = 8i32; +pub const HttpServerListenEndpointProperty: HTTP_SERVER_PROPERTY = 9i32; +pub const HttpServerLoggingProperty: HTTP_SERVER_PROPERTY = 1i32; +pub const HttpServerProtectionLevelProperty: HTTP_SERVER_PROPERTY = 11i32; +pub const HttpServerQosProperty: HTTP_SERVER_PROPERTY = 2i32; +pub const HttpServerQueueLengthProperty: HTTP_SERVER_PROPERTY = 4i32; +pub const HttpServerStateProperty: HTTP_SERVER_PROPERTY = 5i32; +pub const HttpServerTimeoutsProperty: HTTP_SERVER_PROPERTY = 3i32; +pub const HttpServiceBindingTypeA: HTTP_SERVICE_BINDING_TYPE = 2i32; +pub const HttpServiceBindingTypeNone: HTTP_SERVICE_BINDING_TYPE = 0i32; +pub const HttpServiceBindingTypeW: HTTP_SERVICE_BINDING_TYPE = 1i32; +pub const HttpServiceConfigCache: HTTP_SERVICE_CONFIG_ID = 4i32; +pub const HttpServiceConfigIPListenList: HTTP_SERVICE_CONFIG_ID = 0i32; +pub const HttpServiceConfigMax: HTTP_SERVICE_CONFIG_ID = 13i32; +pub const HttpServiceConfigQueryExact: HTTP_SERVICE_CONFIG_QUERY_TYPE = 0i32; +pub const HttpServiceConfigQueryMax: HTTP_SERVICE_CONFIG_QUERY_TYPE = 2i32; +pub const HttpServiceConfigQueryNext: HTTP_SERVICE_CONFIG_QUERY_TYPE = 1i32; +pub const HttpServiceConfigSSLCertInfo: HTTP_SERVICE_CONFIG_ID = 1i32; +pub const HttpServiceConfigSetting: HTTP_SERVICE_CONFIG_ID = 7i32; +pub const HttpServiceConfigSslCcsCertInfo: HTTP_SERVICE_CONFIG_ID = 6i32; +pub const HttpServiceConfigSslCcsCertInfoEx: HTTP_SERVICE_CONFIG_ID = 10i32; +pub const HttpServiceConfigSslCertInfoEx: HTTP_SERVICE_CONFIG_ID = 8i32; +pub const HttpServiceConfigSslScopedCcsCertInfo: HTTP_SERVICE_CONFIG_ID = 11i32; +pub const HttpServiceConfigSslScopedCcsCertInfoEx: HTTP_SERVICE_CONFIG_ID = 12i32; +pub const HttpServiceConfigSslSniCertInfo: HTTP_SERVICE_CONFIG_ID = 5i32; +pub const HttpServiceConfigSslSniCertInfoEx: HTTP_SERVICE_CONFIG_ID = 9i32; +pub const HttpServiceConfigTimeout: HTTP_SERVICE_CONFIG_ID = 3i32; +pub const HttpServiceConfigUrlAclInfo: HTTP_SERVICE_CONFIG_ID = 2i32; +pub const HttpTlsThrottle: HTTP_SERVICE_CONFIG_SETTING_KEY = 1i32; +pub const HttpVerbCONNECT: HTTP_VERB = 10i32; +pub const HttpVerbCOPY: HTTP_VERB = 13i32; +pub const HttpVerbDELETE: HTTP_VERB = 8i32; +pub const HttpVerbGET: HTTP_VERB = 4i32; +pub const HttpVerbHEAD: HTTP_VERB = 5i32; +pub const HttpVerbInvalid: HTTP_VERB = 2i32; +pub const HttpVerbLOCK: HTTP_VERB = 17i32; +pub const HttpVerbMKCOL: HTTP_VERB = 16i32; +pub const HttpVerbMOVE: HTTP_VERB = 12i32; +pub const HttpVerbMaximum: HTTP_VERB = 20i32; +pub const HttpVerbOPTIONS: HTTP_VERB = 3i32; +pub const HttpVerbPOST: HTTP_VERB = 6i32; +pub const HttpVerbPROPFIND: HTTP_VERB = 14i32; +pub const HttpVerbPROPPATCH: HTTP_VERB = 15i32; +pub const HttpVerbPUT: HTTP_VERB = 7i32; +pub const HttpVerbSEARCH: HTTP_VERB = 19i32; +pub const HttpVerbTRACE: HTTP_VERB = 9i32; +pub const HttpVerbTRACK: HTTP_VERB = 11i32; +pub const HttpVerbUNLOCK: HTTP_VERB = 18i32; +pub const HttpVerbUnknown: HTTP_VERB = 1i32; +pub const HttpVerbUnparsed: HTTP_VERB = 0i32; +pub const IdleConnectionTimeout: HTTP_SERVICE_CONFIG_TIMEOUT_KEY = 0i32; +pub const MaxCacheResponseSize: HTTP_SERVICE_CONFIG_CACHE_KEY = 0i32; +pub const PerformanceParamAggressiveICW: HTTP_PERFORMANCE_PARAM_TYPE = 1i32; +pub const PerformanceParamDecryptOnSspiThread: HTTP_PERFORMANCE_PARAM_TYPE = 5i32; +pub const PerformanceParamMax: HTTP_PERFORMANCE_PARAM_TYPE = 6i32; +pub const PerformanceParamMaxConcurrentClientStreams: HTTP_PERFORMANCE_PARAM_TYPE = 3i32; +pub const PerformanceParamMaxReceiveBufferSize: HTTP_PERFORMANCE_PARAM_TYPE = 4i32; +pub const PerformanceParamMaxSendBufferSize: HTTP_PERFORMANCE_PARAM_TYPE = 2i32; +pub const PerformanceParamSendBufferingFlags: HTTP_PERFORMANCE_PARAM_TYPE = 0i32; +pub type HTTP_503_RESPONSE_VERBOSITY = i32; +pub type HTTP_AUTHENTICATION_HARDENING_LEVELS = i32; +pub type HTTP_AUTH_STATUS = i32; +pub type HTTP_CACHE_POLICY_TYPE = i32; +pub type HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID = i32; +pub type HTTP_DATA_CHUNK_TYPE = i32; +pub type HTTP_DELEGATE_REQUEST_PROPERTY_ID = i32; +pub type HTTP_ENABLED_STATE = i32; +pub type HTTP_FEATURE_ID = i32; +pub type HTTP_HEADER_ID = i32; +pub type HTTP_INITIALIZE = u32; +pub type HTTP_LOGGING_ROLLOVER_TYPE = i32; +pub type HTTP_LOGGING_TYPE = i32; +pub type HTTP_LOG_DATA_TYPE = i32; +pub type HTTP_PERFORMANCE_PARAM_TYPE = i32; +pub type HTTP_PROTECTION_LEVEL_TYPE = i32; +pub type HTTP_QOS_SETTING_TYPE = i32; +pub type HTTP_RECEIVE_HTTP_REQUEST_FLAGS = u32; +pub type HTTP_REQUEST_AUTH_TYPE = i32; +pub type HTTP_REQUEST_INFO_TYPE = i32; +pub type HTTP_REQUEST_PROPERTY = i32; +pub type HTTP_REQUEST_SIZING_TYPE = i32; +pub type HTTP_REQUEST_TIMING_TYPE = i32; +pub type HTTP_RESPONSE_INFO_TYPE = i32; +pub type HTTP_SCHEME = i32; +pub type HTTP_SERVER_PROPERTY = i32; +pub type HTTP_SERVICE_BINDING_TYPE = i32; +pub type HTTP_SERVICE_CONFIG_CACHE_KEY = i32; +pub type HTTP_SERVICE_CONFIG_ID = i32; +pub type HTTP_SERVICE_CONFIG_QUERY_TYPE = i32; +pub type HTTP_SERVICE_CONFIG_SETTING_KEY = i32; +pub type HTTP_SERVICE_CONFIG_TIMEOUT_KEY = i32; +pub type HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE = i32; +pub type HTTP_VERB = i32; +#[repr(C)] +pub struct HTTP2_SETTINGS_LIMITS_PARAM { + pub Http2MaxSettingsPerFrame: u32, + pub Http2MaxSettingsPerMinute: u32, +} +impl ::core::marker::Copy for HTTP2_SETTINGS_LIMITS_PARAM {} +impl ::core::clone::Clone for HTTP2_SETTINGS_LIMITS_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP2_WINDOW_SIZE_PARAM { + pub Http2ReceiveWindowSize: u32, +} +impl ::core::marker::Copy for HTTP2_WINDOW_SIZE_PARAM {} +impl ::core::clone::Clone for HTTP2_WINDOW_SIZE_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTPAPI_VERSION { + pub HttpApiMajorVersion: u16, + pub HttpApiMinorVersion: u16, +} +impl ::core::marker::Copy for HTTPAPI_VERSION {} +impl ::core::clone::Clone for HTTPAPI_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_BANDWIDTH_LIMIT_INFO { + pub Flags: HTTP_PROPERTY_FLAGS, + pub MaxBandwidth: u32, +} +impl ::core::marker::Copy for HTTP_BANDWIDTH_LIMIT_INFO {} +impl ::core::clone::Clone for HTTP_BANDWIDTH_LIMIT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_BINDING_INFO { + pub Flags: HTTP_PROPERTY_FLAGS, + pub RequestQueueHandle: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_BINDING_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_BINDING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_BYTE_RANGE { + pub StartingOffset: u64, + pub Length: u64, +} +impl ::core::marker::Copy for HTTP_BYTE_RANGE {} +impl ::core::clone::Clone for HTTP_BYTE_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_CACHE_POLICY { + pub Policy: HTTP_CACHE_POLICY_TYPE, + pub SecondsToLive: u32, +} +impl ::core::marker::Copy for HTTP_CACHE_POLICY {} +impl ::core::clone::Clone for HTTP_CACHE_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_CHANNEL_BIND_INFO { + pub Hardening: HTTP_AUTHENTICATION_HARDENING_LEVELS, + pub Flags: u32, + pub ServiceNames: *mut *mut HTTP_SERVICE_BINDING_BASE, + pub NumberOfServiceNames: u32, +} +impl ::core::marker::Copy for HTTP_CHANNEL_BIND_INFO {} +impl ::core::clone::Clone for HTTP_CHANNEL_BIND_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_CONNECTION_LIMIT_INFO { + pub Flags: HTTP_PROPERTY_FLAGS, + pub MaxConnections: u32, +} +impl ::core::marker::Copy for HTTP_CONNECTION_LIMIT_INFO {} +impl ::core::clone::Clone for HTTP_CONNECTION_LIMIT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_COOKED_URL { + pub FullUrlLength: u16, + pub HostLength: u16, + pub AbsPathLength: u16, + pub QueryStringLength: u16, + pub pFullUrl: ::windows_sys::core::PCWSTR, + pub pHost: ::windows_sys::core::PCWSTR, + pub pAbsPath: ::windows_sys::core::PCWSTR, + pub pQueryString: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for HTTP_COOKED_URL {} +impl ::core::clone::Clone for HTTP_COOKED_URL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_CREATE_REQUEST_QUEUE_PROPERTY_INFO { + pub PropertyId: HTTP_CREATE_REQUEST_QUEUE_PROPERTY_ID, + pub PropertyInfoLength: u32, + pub PropertyInfo: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for HTTP_CREATE_REQUEST_QUEUE_PROPERTY_INFO {} +impl ::core::clone::Clone for HTTP_CREATE_REQUEST_QUEUE_PROPERTY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_DATA_CHUNK { + pub DataChunkType: HTTP_DATA_CHUNK_TYPE, + pub Anonymous: HTTP_DATA_CHUNK_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_DATA_CHUNK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_DATA_CHUNK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union HTTP_DATA_CHUNK_0 { + pub FromMemory: HTTP_DATA_CHUNK_0_3, + pub FromFileHandle: HTTP_DATA_CHUNK_0_0, + pub FromFragmentCache: HTTP_DATA_CHUNK_0_2, + pub FromFragmentCacheEx: HTTP_DATA_CHUNK_0_1, + pub Trailers: HTTP_DATA_CHUNK_0_4, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_DATA_CHUNK_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_DATA_CHUNK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_DATA_CHUNK_0_0 { + pub ByteRange: HTTP_BYTE_RANGE, + pub FileHandle: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_DATA_CHUNK_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_DATA_CHUNK_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_DATA_CHUNK_0_1 { + pub ByteRange: HTTP_BYTE_RANGE, + pub pFragmentName: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_DATA_CHUNK_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_DATA_CHUNK_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_DATA_CHUNK_0_2 { + pub FragmentNameLength: u16, + pub pFragmentName: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_DATA_CHUNK_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_DATA_CHUNK_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_DATA_CHUNK_0_3 { + pub pBuffer: *mut ::core::ffi::c_void, + pub BufferLength: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_DATA_CHUNK_0_3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_DATA_CHUNK_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_DATA_CHUNK_0_4 { + pub TrailerCount: u16, + pub pTrailers: *mut HTTP_UNKNOWN_HEADER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_DATA_CHUNK_0_4 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_DATA_CHUNK_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_DELEGATE_REQUEST_PROPERTY_INFO { + pub PropertyId: HTTP_DELEGATE_REQUEST_PROPERTY_ID, + pub PropertyInfoLength: u32, + pub PropertyInfo: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for HTTP_DELEGATE_REQUEST_PROPERTY_INFO {} +impl ::core::clone::Clone for HTTP_DELEGATE_REQUEST_PROPERTY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_ERROR_HEADERS_PARAM { + pub StatusCode: u16, + pub HeaderCount: u16, + pub Headers: *mut HTTP_UNKNOWN_HEADER, +} +impl ::core::marker::Copy for HTTP_ERROR_HEADERS_PARAM {} +impl ::core::clone::Clone for HTTP_ERROR_HEADERS_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_FLOWRATE_INFO { + pub Flags: HTTP_PROPERTY_FLAGS, + pub MaxBandwidth: u32, + pub MaxPeakBandwidth: u32, + pub BurstSize: u32, +} +impl ::core::marker::Copy for HTTP_FLOWRATE_INFO {} +impl ::core::clone::Clone for HTTP_FLOWRATE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_KNOWN_HEADER { + pub RawValueLength: u16, + pub pRawValue: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for HTTP_KNOWN_HEADER {} +impl ::core::clone::Clone for HTTP_KNOWN_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_LISTEN_ENDPOINT_INFO { + pub Flags: HTTP_PROPERTY_FLAGS, + pub EnableSharing: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_LISTEN_ENDPOINT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_LISTEN_ENDPOINT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct HTTP_LOGGING_INFO { + pub Flags: HTTP_PROPERTY_FLAGS, + pub LoggingFlags: u32, + pub SoftwareName: ::windows_sys::core::PCWSTR, + pub SoftwareNameLength: u16, + pub DirectoryNameLength: u16, + pub DirectoryName: ::windows_sys::core::PCWSTR, + pub Format: HTTP_LOGGING_TYPE, + pub Fields: u32, + pub pExtFields: *mut ::core::ffi::c_void, + pub NumOfExtFields: u16, + pub MaxRecordSize: u16, + pub RolloverType: HTTP_LOGGING_ROLLOVER_TYPE, + pub RolloverSize: u32, + pub pSecurityDescriptor: super::super::Security::PSECURITY_DESCRIPTOR, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for HTTP_LOGGING_INFO {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for HTTP_LOGGING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_LOG_DATA { + pub Type: HTTP_LOG_DATA_TYPE, +} +impl ::core::marker::Copy for HTTP_LOG_DATA {} +impl ::core::clone::Clone for HTTP_LOG_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_LOG_FIELDS_DATA { + pub Base: HTTP_LOG_DATA, + pub UserNameLength: u16, + pub UriStemLength: u16, + pub ClientIpLength: u16, + pub ServerNameLength: u16, + pub ServiceNameLength: u16, + pub ServerIpLength: u16, + pub MethodLength: u16, + pub UriQueryLength: u16, + pub HostLength: u16, + pub UserAgentLength: u16, + pub CookieLength: u16, + pub ReferrerLength: u16, + pub UserName: ::windows_sys::core::PWSTR, + pub UriStem: ::windows_sys::core::PWSTR, + pub ClientIp: ::windows_sys::core::PSTR, + pub ServerName: ::windows_sys::core::PSTR, + pub ServiceName: ::windows_sys::core::PSTR, + pub ServerIp: ::windows_sys::core::PSTR, + pub Method: ::windows_sys::core::PSTR, + pub UriQuery: ::windows_sys::core::PSTR, + pub Host: ::windows_sys::core::PSTR, + pub UserAgent: ::windows_sys::core::PSTR, + pub Cookie: ::windows_sys::core::PSTR, + pub Referrer: ::windows_sys::core::PSTR, + pub ServerPort: u16, + pub ProtocolStatus: u16, + pub Win32Status: u32, + pub MethodNum: HTTP_VERB, + pub SubStatus: u16, +} +impl ::core::marker::Copy for HTTP_LOG_FIELDS_DATA {} +impl ::core::clone::Clone for HTTP_LOG_FIELDS_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_MULTIPLE_KNOWN_HEADERS { + pub HeaderId: HTTP_HEADER_ID, + pub Flags: u32, + pub KnownHeaderCount: u16, + pub KnownHeaders: *mut HTTP_KNOWN_HEADER, +} +impl ::core::marker::Copy for HTTP_MULTIPLE_KNOWN_HEADERS {} +impl ::core::clone::Clone for HTTP_MULTIPLE_KNOWN_HEADERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_PERFORMANCE_PARAM { + pub Type: HTTP_PERFORMANCE_PARAM_TYPE, + pub BufferSize: u32, + pub Buffer: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for HTTP_PERFORMANCE_PARAM {} +impl ::core::clone::Clone for HTTP_PERFORMANCE_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_PROPERTY_FLAGS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for HTTP_PROPERTY_FLAGS {} +impl ::core::clone::Clone for HTTP_PROPERTY_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_PROTECTION_LEVEL_INFO { + pub Flags: HTTP_PROPERTY_FLAGS, + pub Level: HTTP_PROTECTION_LEVEL_TYPE, +} +impl ::core::marker::Copy for HTTP_PROTECTION_LEVEL_INFO {} +impl ::core::clone::Clone for HTTP_PROTECTION_LEVEL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_QOS_SETTING_INFO { + pub QosType: HTTP_QOS_SETTING_TYPE, + pub QosSetting: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for HTTP_QOS_SETTING_INFO {} +impl ::core::clone::Clone for HTTP_QOS_SETTING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_QUERY_REQUEST_QUALIFIER_QUIC { + pub Freshness: u64, +} +impl ::core::marker::Copy for HTTP_QUERY_REQUEST_QUALIFIER_QUIC {} +impl ::core::clone::Clone for HTTP_QUERY_REQUEST_QUALIFIER_QUIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_QUERY_REQUEST_QUALIFIER_TCP { + pub Freshness: u64, +} +impl ::core::marker::Copy for HTTP_QUERY_REQUEST_QUALIFIER_TCP {} +impl ::core::clone::Clone for HTTP_QUERY_REQUEST_QUALIFIER_TCP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_QUIC_API_TIMINGS { + pub ConnectionTimings: HTTP_QUIC_CONNECTION_API_TIMINGS, + pub StreamTimings: HTTP_QUIC_STREAM_API_TIMINGS, +} +impl ::core::marker::Copy for HTTP_QUIC_API_TIMINGS {} +impl ::core::clone::Clone for HTTP_QUIC_API_TIMINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_QUIC_CONNECTION_API_TIMINGS { + pub OpenTime: u64, + pub CloseTime: u64, + pub StartTime: u64, + pub ShutdownTime: u64, + pub SecConfigCreateTime: u64, + pub SecConfigDeleteTime: u64, + pub GetParamCount: u64, + pub GetParamSum: u64, + pub SetParamCount: u64, + pub SetParamSum: u64, + pub SetCallbackHandlerCount: u64, + pub SetCallbackHandlerSum: u64, + pub ControlStreamTimings: HTTP_QUIC_STREAM_API_TIMINGS, +} +impl ::core::marker::Copy for HTTP_QUIC_CONNECTION_API_TIMINGS {} +impl ::core::clone::Clone for HTTP_QUIC_CONNECTION_API_TIMINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_QUIC_STREAM_API_TIMINGS { + pub OpenCount: u64, + pub OpenSum: u64, + pub CloseCount: u64, + pub CloseSum: u64, + pub StartCount: u64, + pub StartSum: u64, + pub ShutdownCount: u64, + pub ShutdownSum: u64, + pub SendCount: u64, + pub SendSum: u64, + pub ReceiveSetEnabledCount: u64, + pub ReceiveSetEnabledSum: u64, + pub GetParamCount: u64, + pub GetParamSum: u64, + pub SetParamCount: u64, + pub SetParamSum: u64, + pub SetCallbackHandlerCount: u64, + pub SetCallbackHandlerSum: u64, +} +impl ::core::marker::Copy for HTTP_QUIC_STREAM_API_TIMINGS {} +impl ::core::clone::Clone for HTTP_QUIC_STREAM_API_TIMINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_QUIC_STREAM_REQUEST_STATS { + pub StreamWaitStart: u64, + pub StreamWaitEnd: u64, + pub RequestHeadersCompressionStart: u64, + pub RequestHeadersCompressionEnd: u64, + pub ResponseHeadersDecompressionStart: u64, + pub ResponseHeadersDecompressionEnd: u64, + pub RequestHeadersCompressedSize: u64, + pub ResponseHeadersCompressedSize: u64, +} +impl ::core::marker::Copy for HTTP_QUIC_STREAM_REQUEST_STATS {} +impl ::core::clone::Clone for HTTP_QUIC_STREAM_REQUEST_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_REQUEST_AUTH_INFO { + pub AuthStatus: HTTP_AUTH_STATUS, + pub SecStatus: ::windows_sys::core::HRESULT, + pub Flags: u32, + pub AuthType: HTTP_REQUEST_AUTH_TYPE, + pub AccessToken: super::super::Foundation::HANDLE, + pub ContextAttributes: u32, + pub PackedContextLength: u32, + pub PackedContextType: u32, + pub PackedContext: *mut ::core::ffi::c_void, + pub MutualAuthDataLength: u32, + pub pMutualAuthData: ::windows_sys::core::PSTR, + pub PackageNameLength: u16, + pub pPackageName: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_REQUEST_AUTH_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_REQUEST_AUTH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_REQUEST_CHANNEL_BIND_STATUS { + pub ServiceName: *mut HTTP_SERVICE_BINDING_BASE, + pub ChannelToken: *mut u8, + pub ChannelTokenSize: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for HTTP_REQUEST_CHANNEL_BIND_STATUS {} +impl ::core::clone::Clone for HTTP_REQUEST_CHANNEL_BIND_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_REQUEST_HEADERS { + pub UnknownHeaderCount: u16, + pub pUnknownHeaders: *mut HTTP_UNKNOWN_HEADER, + pub TrailerCount: u16, + pub pTrailers: *mut HTTP_UNKNOWN_HEADER, + pub KnownHeaders: [HTTP_KNOWN_HEADER; 41], +} +impl ::core::marker::Copy for HTTP_REQUEST_HEADERS {} +impl ::core::clone::Clone for HTTP_REQUEST_HEADERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_REQUEST_INFO { + pub InfoType: HTTP_REQUEST_INFO_TYPE, + pub InfoLength: u32, + pub pInfo: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for HTTP_REQUEST_INFO {} +impl ::core::clone::Clone for HTTP_REQUEST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_REQUEST_PROPERTY_SNI { + pub Hostname: [u16; 256], + pub Flags: u32, +} +impl ::core::marker::Copy for HTTP_REQUEST_PROPERTY_SNI {} +impl ::core::clone::Clone for HTTP_REQUEST_PROPERTY_SNI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_REQUEST_PROPERTY_STREAM_ERROR { + pub ErrorCode: u32, +} +impl ::core::marker::Copy for HTTP_REQUEST_PROPERTY_STREAM_ERROR {} +impl ::core::clone::Clone for HTTP_REQUEST_PROPERTY_STREAM_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_REQUEST_SIZING_INFO { + pub Flags: u64, + pub RequestIndex: u32, + pub RequestSizingCount: u32, + pub RequestSizing: [u64; 5], +} +impl ::core::marker::Copy for HTTP_REQUEST_SIZING_INFO {} +impl ::core::clone::Clone for HTTP_REQUEST_SIZING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_REQUEST_TIMING_INFO { + pub RequestTimingCount: u32, + pub RequestTiming: [u64; 30], +} +impl ::core::marker::Copy for HTTP_REQUEST_TIMING_INFO {} +impl ::core::clone::Clone for HTTP_REQUEST_TIMING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_REQUEST_TOKEN_BINDING_INFO { + pub TokenBinding: *mut u8, + pub TokenBindingSize: u32, + pub EKM: *mut u8, + pub EKMSize: u32, + pub KeyType: u8, +} +impl ::core::marker::Copy for HTTP_REQUEST_TOKEN_BINDING_INFO {} +impl ::core::clone::Clone for HTTP_REQUEST_TOKEN_BINDING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct HTTP_REQUEST_V1 { + pub Flags: u32, + pub ConnectionId: u64, + pub RequestId: u64, + pub UrlContext: u64, + pub Version: HTTP_VERSION, + pub Verb: HTTP_VERB, + pub UnknownVerbLength: u16, + pub RawUrlLength: u16, + pub pUnknownVerb: ::windows_sys::core::PCSTR, + pub pRawUrl: ::windows_sys::core::PCSTR, + pub CookedUrl: HTTP_COOKED_URL, + pub Address: HTTP_TRANSPORT_ADDRESS, + pub Headers: HTTP_REQUEST_HEADERS, + pub BytesReceived: u64, + pub EntityChunkCount: u16, + pub pEntityChunks: *mut HTTP_DATA_CHUNK, + pub RawConnectionId: u64, + pub pSslInfo: *mut HTTP_SSL_INFO, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for HTTP_REQUEST_V1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for HTTP_REQUEST_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +pub struct HTTP_REQUEST_V2 { + pub Base: HTTP_REQUEST_V1, + pub RequestInfoCount: u16, + pub pRequestInfo: *mut HTTP_REQUEST_INFO, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for HTTP_REQUEST_V2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for HTTP_REQUEST_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_RESPONSE_HEADERS { + pub UnknownHeaderCount: u16, + pub pUnknownHeaders: *mut HTTP_UNKNOWN_HEADER, + pub TrailerCount: u16, + pub pTrailers: *mut HTTP_UNKNOWN_HEADER, + pub KnownHeaders: [HTTP_KNOWN_HEADER; 30], +} +impl ::core::marker::Copy for HTTP_RESPONSE_HEADERS {} +impl ::core::clone::Clone for HTTP_RESPONSE_HEADERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_RESPONSE_INFO { + pub Type: HTTP_RESPONSE_INFO_TYPE, + pub Length: u32, + pub pInfo: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for HTTP_RESPONSE_INFO {} +impl ::core::clone::Clone for HTTP_RESPONSE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_RESPONSE_V1 { + pub Flags: u32, + pub Version: HTTP_VERSION, + pub StatusCode: u16, + pub ReasonLength: u16, + pub pReason: ::windows_sys::core::PCSTR, + pub Headers: HTTP_RESPONSE_HEADERS, + pub EntityChunkCount: u16, + pub pEntityChunks: *mut HTTP_DATA_CHUNK, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_RESPONSE_V1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_RESPONSE_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_RESPONSE_V2 { + pub Base: HTTP_RESPONSE_V1, + pub ResponseInfoCount: u16, + pub pResponseInfo: *mut HTTP_RESPONSE_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_RESPONSE_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_RESPONSE_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS { + pub RealmLength: u16, + pub Realm: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS {} +impl ::core::clone::Clone for HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS { + pub DomainNameLength: u16, + pub DomainName: ::windows_sys::core::PWSTR, + pub RealmLength: u16, + pub Realm: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS {} +impl ::core::clone::Clone for HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_SERVER_AUTHENTICATION_INFO { + pub Flags: HTTP_PROPERTY_FLAGS, + pub AuthSchemes: u32, + pub ReceiveMutualAuth: super::super::Foundation::BOOLEAN, + pub ReceiveContextHandle: super::super::Foundation::BOOLEAN, + pub DisableNTLMCredentialCaching: super::super::Foundation::BOOLEAN, + pub ExFlags: u8, + pub DigestParams: HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS, + pub BasicParams: HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_SERVER_AUTHENTICATION_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_SERVER_AUTHENTICATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVICE_BINDING_A { + pub Base: HTTP_SERVICE_BINDING_BASE, + pub Buffer: ::windows_sys::core::PSTR, + pub BufferSize: u32, +} +impl ::core::marker::Copy for HTTP_SERVICE_BINDING_A {} +impl ::core::clone::Clone for HTTP_SERVICE_BINDING_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVICE_BINDING_BASE { + pub Type: HTTP_SERVICE_BINDING_TYPE, +} +impl ::core::marker::Copy for HTTP_SERVICE_BINDING_BASE {} +impl ::core::clone::Clone for HTTP_SERVICE_BINDING_BASE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVICE_BINDING_W { + pub Base: HTTP_SERVICE_BINDING_BASE, + pub Buffer: ::windows_sys::core::PWSTR, + pub BufferSize: u32, +} +impl ::core::marker::Copy for HTTP_SERVICE_BINDING_W {} +impl ::core::clone::Clone for HTTP_SERVICE_BINDING_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVICE_CONFIG_CACHE_SET { + pub KeyDesc: HTTP_SERVICE_CONFIG_CACHE_KEY, + pub ParamDesc: u32, +} +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_CACHE_SET {} +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_CACHE_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM { + pub AddrLength: u16, + pub pAddress: *mut super::WinSock::SOCKADDR, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY { + pub AddrCount: u32, + pub AddrList: [super::WinSock::SOCKADDR_STORAGE; 1], +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVICE_CONFIG_SETTING_SET { + pub KeyDesc: HTTP_SERVICE_CONFIG_SETTING_KEY, + pub ParamDesc: u32, +} +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SETTING_SET {} +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SETTING_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_CCS_KEY { + pub LocalAddress: super::WinSock::SOCKADDR_STORAGE, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_CCS_KEY {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_CCS_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_CCS_QUERY { + pub QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE, + pub KeyDesc: HTTP_SERVICE_CONFIG_SSL_CCS_KEY, + pub dwToken: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_CCS_QUERY {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_CCS_QUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_CCS_QUERY_EX { + pub QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE, + pub KeyDesc: HTTP_SERVICE_CONFIG_SSL_CCS_KEY, + pub dwToken: u32, + pub ParamType: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_CCS_QUERY_EX {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_CCS_QUERY_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_CCS_SET { + pub KeyDesc: HTTP_SERVICE_CONFIG_SSL_CCS_KEY, + pub ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_CCS_SET {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_CCS_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_CCS_SET_EX { + pub KeyDesc: HTTP_SERVICE_CONFIG_SSL_CCS_KEY, + pub ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM_EX, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_CCS_SET_EX {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_CCS_SET_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_KEY { + pub pIpPort: *mut super::WinSock::SOCKADDR, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_KEY {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_KEY_EX { + pub IpPort: super::WinSock::SOCKADDR_STORAGE, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_KEY_EX {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_KEY_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVICE_CONFIG_SSL_PARAM { + pub SslHashLength: u32, + pub pSslHash: *mut ::core::ffi::c_void, + pub AppId: ::windows_sys::core::GUID, + pub pSslCertStoreName: ::windows_sys::core::PWSTR, + pub DefaultCertCheckMode: u32, + pub DefaultRevocationFreshnessTime: u32, + pub DefaultRevocationUrlRetrievalTimeout: u32, + pub pDefaultSslCtlIdentifier: ::windows_sys::core::PWSTR, + pub pDefaultSslCtlStoreName: ::windows_sys::core::PWSTR, + pub DefaultFlags: u32, +} +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_PARAM {} +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVICE_CONFIG_SSL_PARAM_EX { + pub ParamType: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE, + pub Flags: u64, + pub Anonymous: HTTP_SERVICE_CONFIG_SSL_PARAM_EX_0, +} +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_PARAM_EX {} +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_PARAM_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union HTTP_SERVICE_CONFIG_SSL_PARAM_EX_0 { + pub Http2WindowSizeParam: HTTP2_WINDOW_SIZE_PARAM, + pub Http2SettingsLimitsParam: HTTP2_SETTINGS_LIMITS_PARAM, + pub HttpPerformanceParam: HTTP_PERFORMANCE_PARAM, + pub HttpTlsRestrictionsParam: HTTP_TLS_RESTRICTIONS_PARAM, + pub HttpErrorHeadersParam: HTTP_ERROR_HEADERS_PARAM, + pub HttpTlsSessionTicketKeysParam: HTTP_TLS_SESSION_TICKET_KEYS_PARAM, +} +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_PARAM_EX_0 {} +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_PARAM_EX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_QUERY { + pub QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE, + pub KeyDesc: HTTP_SERVICE_CONFIG_SSL_KEY, + pub dwToken: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_QUERY {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_QUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_QUERY_EX { + pub QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE, + pub KeyDesc: HTTP_SERVICE_CONFIG_SSL_KEY_EX, + pub dwToken: u32, + pub ParamType: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_QUERY_EX {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_QUERY_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_SET { + pub KeyDesc: HTTP_SERVICE_CONFIG_SSL_KEY, + pub ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_SET {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_SET_EX { + pub KeyDesc: HTTP_SERVICE_CONFIG_SSL_KEY_EX, + pub ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM_EX, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_SET_EX {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_SET_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_SNI_KEY { + pub IpPort: super::WinSock::SOCKADDR_STORAGE, + pub Host: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_SNI_KEY {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_SNI_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_SNI_QUERY { + pub QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE, + pub KeyDesc: HTTP_SERVICE_CONFIG_SSL_SNI_KEY, + pub dwToken: u32, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_SNI_QUERY {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_SNI_QUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_SNI_QUERY_EX { + pub QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE, + pub KeyDesc: HTTP_SERVICE_CONFIG_SSL_SNI_KEY, + pub dwToken: u32, + pub ParamType: HTTP_SSL_SERVICE_CONFIG_EX_PARAM_TYPE, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_SNI_QUERY_EX {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_SNI_QUERY_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_SNI_SET { + pub KeyDesc: HTTP_SERVICE_CONFIG_SSL_SNI_KEY, + pub ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_SNI_SET {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_SNI_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_SERVICE_CONFIG_SSL_SNI_SET_EX { + pub KeyDesc: HTTP_SERVICE_CONFIG_SSL_SNI_KEY, + pub ParamDesc: HTTP_SERVICE_CONFIG_SSL_PARAM_EX, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_SSL_SNI_SET_EX {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_SSL_SNI_SET_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVICE_CONFIG_TIMEOUT_SET { + pub KeyDesc: HTTP_SERVICE_CONFIG_TIMEOUT_KEY, + pub ParamDesc: u16, +} +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_TIMEOUT_SET {} +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_TIMEOUT_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVICE_CONFIG_URLACL_KEY { + pub pUrlPrefix: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_URLACL_KEY {} +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_URLACL_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVICE_CONFIG_URLACL_PARAM { + pub pStringSecurityDescriptor: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_URLACL_PARAM {} +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_URLACL_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVICE_CONFIG_URLACL_QUERY { + pub QueryDesc: HTTP_SERVICE_CONFIG_QUERY_TYPE, + pub KeyDesc: HTTP_SERVICE_CONFIG_URLACL_KEY, + pub dwToken: u32, +} +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_URLACL_QUERY {} +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_URLACL_QUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SERVICE_CONFIG_URLACL_SET { + pub KeyDesc: HTTP_SERVICE_CONFIG_URLACL_KEY, + pub ParamDesc: HTTP_SERVICE_CONFIG_URLACL_PARAM, +} +impl ::core::marker::Copy for HTTP_SERVICE_CONFIG_URLACL_SET {} +impl ::core::clone::Clone for HTTP_SERVICE_CONFIG_URLACL_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_SSL_CLIENT_CERT_INFO { + pub CertFlags: u32, + pub CertEncodedSize: u32, + pub pCertEncoded: *mut u8, + pub Token: super::super::Foundation::HANDLE, + pub CertDeniedByMapper: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_SSL_CLIENT_CERT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_SSL_CLIENT_CERT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_SSL_INFO { + pub ServerCertKeySize: u16, + pub ConnectionKeySize: u16, + pub ServerCertIssuerSize: u32, + pub ServerCertSubjectSize: u32, + pub pServerCertIssuer: ::windows_sys::core::PCSTR, + pub pServerCertSubject: ::windows_sys::core::PCSTR, + pub pClientCertInfo: *mut HTTP_SSL_CLIENT_CERT_INFO, + pub SslClientCertNegotiated: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_SSL_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_SSL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_SSL_PROTOCOL_INFO { + pub Protocol: u32, + pub CipherType: u32, + pub CipherStrength: u32, + pub HashType: u32, + pub HashStrength: u32, + pub KeyExchangeType: u32, + pub KeyExchangeStrength: u32, +} +impl ::core::marker::Copy for HTTP_SSL_PROTOCOL_INFO {} +impl ::core::clone::Clone for HTTP_SSL_PROTOCOL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_STATE_INFO { + pub Flags: HTTP_PROPERTY_FLAGS, + pub State: HTTP_ENABLED_STATE, +} +impl ::core::marker::Copy for HTTP_STATE_INFO {} +impl ::core::clone::Clone for HTTP_STATE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_TIMEOUT_LIMIT_INFO { + pub Flags: HTTP_PROPERTY_FLAGS, + pub EntityBody: u16, + pub DrainEntityBody: u16, + pub RequestQueue: u16, + pub IdleConnection: u16, + pub HeaderWait: u16, + pub MinSendRate: u32, +} +impl ::core::marker::Copy for HTTP_TIMEOUT_LIMIT_INFO {} +impl ::core::clone::Clone for HTTP_TIMEOUT_LIMIT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_TLS_RESTRICTIONS_PARAM { + pub RestrictionCount: u32, + pub TlsRestrictions: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for HTTP_TLS_RESTRICTIONS_PARAM {} +impl ::core::clone::Clone for HTTP_TLS_RESTRICTIONS_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_TLS_SESSION_TICKET_KEYS_PARAM { + pub SessionTicketKeyCount: u32, + pub SessionTicketKeys: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for HTTP_TLS_SESSION_TICKET_KEYS_PARAM {} +impl ::core::clone::Clone for HTTP_TLS_SESSION_TICKET_KEYS_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct HTTP_TRANSPORT_ADDRESS { + pub pRemoteAddress: *mut super::WinSock::SOCKADDR, + pub pLocalAddress: *mut super::WinSock::SOCKADDR, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for HTTP_TRANSPORT_ADDRESS {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for HTTP_TRANSPORT_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_UNKNOWN_HEADER { + pub NameLength: u16, + pub RawValueLength: u16, + pub pName: ::windows_sys::core::PCSTR, + pub pRawValue: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for HTTP_UNKNOWN_HEADER {} +impl ::core::clone::Clone for HTTP_UNKNOWN_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_VERSION { + pub MajorVersion: u16, + pub MinorVersion: u16, +} +impl ::core::marker::Copy for HTTP_VERSION {} +impl ::core::clone::Clone for HTTP_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_WSK_API_TIMINGS { + pub ConnectCount: u64, + pub ConnectSum: u64, + pub DisconnectCount: u64, + pub DisconnectSum: u64, + pub SendCount: u64, + pub SendSum: u64, + pub ReceiveCount: u64, + pub ReceiveSum: u64, + pub ReleaseCount: u64, + pub ReleaseSum: u64, + pub ControlSocketCount: u64, + pub ControlSocketSum: u64, +} +impl ::core::marker::Copy for HTTP_WSK_API_TIMINGS {} +impl ::core::clone::Clone for HTTP_WSK_API_TIMINGS { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/Ldap/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/Ldap/mod.rs new file mode 100644 index 000000000..66f0f0640 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/Ldap/mod.rs @@ -0,0 +1,1070 @@ +::windows_targets::link!("wldap32.dll" "cdecl" fn LdapGetLastError() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LdapMapErrorToWin32(ldaperror : u32) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("wldap32.dll" "cdecl" fn LdapUTF8ToUnicode(lpsrcstr : ::windows_sys::core::PCSTR, cchsrc : i32, lpdeststr : ::windows_sys::core::PWSTR, cchdest : i32) -> i32); +::windows_targets::link!("wldap32.dll" "cdecl" fn LdapUnicodeToUTF8(lpsrcstr : ::windows_sys::core::PCWSTR, cchsrc : i32, lpdeststr : ::windows_sys::core::PSTR, cchdest : i32) -> i32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ber_alloc_t(options : i32) -> *mut BerElement); +::windows_targets::link!("wldap32.dll" "cdecl" fn ber_bvdup(pberval : *mut LDAP_BERVAL) -> *mut LDAP_BERVAL); +::windows_targets::link!("wldap32.dll" "cdecl" fn ber_bvecfree(pberval : *mut *mut LDAP_BERVAL) -> ()); +::windows_targets::link!("wldap32.dll" "cdecl" fn ber_bvfree(bv : *mut LDAP_BERVAL) -> ()); +::windows_targets::link!("wldap32.dll" "cdecl" fn ber_first_element(pberelement : *mut BerElement, plen : *mut u32, ppopaque : *mut *mut u8) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ber_flatten(pberelement : *mut BerElement, pberval : *mut *mut LDAP_BERVAL) -> i32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ber_free(pberelement : *mut BerElement, fbuf : i32) -> ()); +::windows_targets::link!("wldap32.dll" "cdecl" fn ber_init(pberval : *mut LDAP_BERVAL) -> *mut BerElement); +::windows_targets::link!("wldap32.dll" "cdecl" fn ber_next_element(pberelement : *mut BerElement, plen : *mut u32, opaque : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ber_peek_tag(pberelement : *mut BerElement, plen : *mut u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ber_printf(pberelement : *mut BerElement, fmt : ::windows_sys::core::PCSTR, ...) -> i32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ber_scanf(pberelement : *mut BerElement, fmt : ::windows_sys::core::PCSTR, ...) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ber_skip_tag(pberelement : *mut BerElement, plen : *mut u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn cldap_open(hostname : ::windows_sys::core::PCSTR, portnumber : u32) -> *mut LDAP); +::windows_targets::link!("wldap32.dll" "cdecl" fn cldap_openA(hostname : ::windows_sys::core::PCSTR, portnumber : u32) -> *mut LDAP); +::windows_targets::link!("wldap32.dll" "cdecl" fn cldap_openW(hostname : ::windows_sys::core::PCWSTR, portnumber : u32) -> *mut LDAP); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_abandon(ld : *mut LDAP, msgid : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_add(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attrs : *mut *mut LDAPModA) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_addA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attrs : *mut *mut LDAPModA) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_addW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, attrs : *mut *mut LDAPModW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_add_ext(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attrs : *mut *mut LDAPModA, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_add_extA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attrs : *mut *mut LDAPModA, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_add_extW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, attrs : *mut *mut LDAPModW, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_add_ext_s(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attrs : *mut *mut LDAPModA, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_add_ext_sA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attrs : *mut *mut LDAPModA, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_add_ext_sW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, attrs : *mut *mut LDAPModW, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_add_s(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attrs : *mut *mut LDAPModA) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_add_sA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attrs : *mut *mut LDAPModA) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_add_sW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, attrs : *mut *mut LDAPModW) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_bind(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, cred : ::windows_sys::core::PCSTR, method : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_bindA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, cred : ::windows_sys::core::PCSTR, method : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_bindW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, cred : ::windows_sys::core::PCWSTR, method : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_bind_s(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, cred : ::windows_sys::core::PCSTR, method : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_bind_sA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, cred : ::windows_sys::core::PCSTR, method : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_bind_sW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, cred : ::windows_sys::core::PCWSTR, method : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_check_filterA(ld : *mut LDAP, searchfilter : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_check_filterW(ld : *mut LDAP, searchfilter : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_cleanup(hinstance : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_close_extended_op(ld : *mut LDAP, messagenumber : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_compare(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attr : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_compareA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attr : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_compareW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, attr : ::windows_sys::core::PCWSTR, value : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_compare_ext(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attr : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR, data : *mut LDAP_BERVAL, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_compare_extA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attr : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR, data : *const LDAP_BERVAL, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_compare_extW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, attr : ::windows_sys::core::PCWSTR, value : ::windows_sys::core::PCWSTR, data : *const LDAP_BERVAL, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_compare_ext_s(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attr : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR, data : *mut LDAP_BERVAL, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_compare_ext_sA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attr : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR, data : *const LDAP_BERVAL, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_compare_ext_sW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, attr : ::windows_sys::core::PCWSTR, value : ::windows_sys::core::PCWSTR, data : *const LDAP_BERVAL, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_compare_s(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attr : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_compare_sA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, attr : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_compare_sW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, attr : ::windows_sys::core::PCWSTR, value : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_conn_from_msg(primaryconn : *mut LDAP, res : *mut LDAPMessage) -> *mut LDAP); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_connect(ld : *mut LDAP, timeout : *mut LDAP_TIMEVAL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_control_free(control : *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_control_freeA(controls : *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_control_freeW(control : *mut LDAPControlW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_controls_free(controls : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_controls_freeA(controls : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_controls_freeW(control : *mut *mut LDAPControlW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_count_entries(ld : *mut LDAP, res : *mut LDAPMessage) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_count_references(ld : *mut LDAP, res : *mut LDAPMessage) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_count_values(vals : *const ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_count_valuesA(vals : *const ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_count_valuesW(vals : *const ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_count_values_len(vals : *mut *mut LDAP_BERVAL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_create_page_control(externalhandle : *mut LDAP, pagesize : u32, cookie : *mut LDAP_BERVAL, iscritical : u8, control : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_create_page_controlA(externalhandle : *mut LDAP, pagesize : u32, cookie : *mut LDAP_BERVAL, iscritical : u8, control : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_create_page_controlW(externalhandle : *mut LDAP, pagesize : u32, cookie : *mut LDAP_BERVAL, iscritical : u8, control : *mut *mut LDAPControlW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_create_sort_control(externalhandle : *mut LDAP, sortkeys : *mut *mut LDAPSortKeyA, iscritical : u8, control : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_create_sort_controlA(externalhandle : *mut LDAP, sortkeys : *mut *mut LDAPSortKeyA, iscritical : u8, control : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_create_sort_controlW(externalhandle : *mut LDAP, sortkeys : *mut *mut LDAPSortKeyW, iscritical : u8, control : *mut *mut LDAPControlW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_create_vlv_controlA(externalhandle : *mut LDAP, vlvinfo : *mut LDAPVLVInfo, iscritical : u8, control : *mut *mut LDAPControlA) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_create_vlv_controlW(externalhandle : *mut LDAP, vlvinfo : *mut LDAPVLVInfo, iscritical : u8, control : *mut *mut LDAPControlW) -> i32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_delete(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_deleteA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_deleteW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_delete_ext(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_delete_extA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_delete_extW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_delete_ext_s(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_delete_ext_sA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_delete_ext_sW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_delete_s(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_delete_sA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_delete_sW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_dn2ufn(dn : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_dn2ufnA(dn : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_dn2ufnW(dn : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_encode_sort_controlA(externalhandle : *mut LDAP, sortkeys : *mut *mut LDAPSortKeyA, control : *mut LDAPControlA, criticality : super::super::Foundation:: BOOLEAN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_encode_sort_controlW(externalhandle : *mut LDAP, sortkeys : *mut *mut LDAPSortKeyW, control : *mut LDAPControlW, criticality : super::super::Foundation:: BOOLEAN) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_err2string(err : u32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_err2stringA(err : u32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_err2stringW(err : u32) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_escape_filter_element(sourcefilterelement : ::windows_sys::core::PCSTR, sourcelength : u32, destfilterelement : ::windows_sys::core::PSTR, destlength : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_escape_filter_elementA(sourcefilterelement : ::windows_sys::core::PCSTR, sourcelength : u32, destfilterelement : ::windows_sys::core::PSTR, destlength : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_escape_filter_elementW(sourcefilterelement : ::windows_sys::core::PCSTR, sourcelength : u32, destfilterelement : ::windows_sys::core::PWSTR, destlength : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_explode_dn(dn : ::windows_sys::core::PCSTR, notypes : u32) -> *mut ::windows_sys::core::PSTR); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_explode_dnA(dn : ::windows_sys::core::PCSTR, notypes : u32) -> *mut ::windows_sys::core::PSTR); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_explode_dnW(dn : ::windows_sys::core::PCWSTR, notypes : u32) -> *mut ::windows_sys::core::PWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_extended_operation(ld : *mut LDAP, oid : ::windows_sys::core::PCSTR, data : *mut LDAP_BERVAL, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_extended_operationA(ld : *mut LDAP, oid : ::windows_sys::core::PCSTR, data : *mut LDAP_BERVAL, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_extended_operationW(ld : *mut LDAP, oid : ::windows_sys::core::PCWSTR, data : *mut LDAP_BERVAL, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_extended_operation_sA(externalhandle : *mut LDAP, oid : ::windows_sys::core::PCSTR, data : *mut LDAP_BERVAL, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, returnedoid : *mut ::windows_sys::core::PSTR, returneddata : *mut *mut LDAP_BERVAL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_extended_operation_sW(externalhandle : *mut LDAP, oid : ::windows_sys::core::PCWSTR, data : *mut LDAP_BERVAL, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW, returnedoid : *mut ::windows_sys::core::PWSTR, returneddata : *mut *mut LDAP_BERVAL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_first_attribute(ld : *mut LDAP, entry : *mut LDAPMessage, ptr : *mut *mut BerElement) -> ::windows_sys::core::PSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_first_attributeA(ld : *mut LDAP, entry : *mut LDAPMessage, ptr : *mut *mut BerElement) -> ::windows_sys::core::PSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_first_attributeW(ld : *mut LDAP, entry : *mut LDAPMessage, ptr : *mut *mut BerElement) -> ::windows_sys::core::PWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_first_entry(ld : *mut LDAP, res : *mut LDAPMessage) -> *mut LDAPMessage); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_first_reference(ld : *mut LDAP, res : *mut LDAPMessage) -> *mut LDAPMessage); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_free_controls(controls : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_free_controlsA(controls : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_free_controlsW(controls : *mut *mut LDAPControlW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_get_dn(ld : *mut LDAP, entry : *mut LDAPMessage) -> ::windows_sys::core::PSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_get_dnA(ld : *mut LDAP, entry : *mut LDAPMessage) -> ::windows_sys::core::PSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_get_dnW(ld : *mut LDAP, entry : *mut LDAPMessage) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_get_next_page(externalhandle : *mut LDAP, searchhandle : PLDAPSearch, pagesize : u32, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_get_next_page_s(externalhandle : *mut LDAP, searchhandle : PLDAPSearch, timeout : *mut LDAP_TIMEVAL, pagesize : u32, totalcount : *mut u32, results : *mut *mut LDAPMessage) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_get_option(ld : *mut LDAP, option : i32, outvalue : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_get_optionW(ld : *mut LDAP, option : i32, outvalue : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_get_paged_count(externalhandle : *mut LDAP, searchblock : PLDAPSearch, totalcount : *mut u32, results : *mut LDAPMessage) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_get_values(ld : *mut LDAP, entry : *mut LDAPMessage, attr : ::windows_sys::core::PCSTR) -> *mut ::windows_sys::core::PSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_get_valuesA(ld : *mut LDAP, entry : *mut LDAPMessage, attr : ::windows_sys::core::PCSTR) -> *mut ::windows_sys::core::PSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_get_valuesW(ld : *mut LDAP, entry : *mut LDAPMessage, attr : ::windows_sys::core::PCWSTR) -> *mut ::windows_sys::core::PWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_get_values_len(externalhandle : *mut LDAP, message : *mut LDAPMessage, attr : ::windows_sys::core::PCSTR) -> *mut *mut LDAP_BERVAL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_get_values_lenA(externalhandle : *mut LDAP, message : *mut LDAPMessage, attr : ::windows_sys::core::PCSTR) -> *mut *mut LDAP_BERVAL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_get_values_lenW(externalhandle : *mut LDAP, message : *mut LDAPMessage, attr : ::windows_sys::core::PCWSTR) -> *mut *mut LDAP_BERVAL); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_init(hostname : ::windows_sys::core::PCSTR, portnumber : u32) -> *mut LDAP); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_initA(hostname : ::windows_sys::core::PCSTR, portnumber : u32) -> *mut LDAP); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_initW(hostname : ::windows_sys::core::PCWSTR, portnumber : u32) -> *mut LDAP); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_memfree(block : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_memfreeA(block : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_memfreeW(block : ::windows_sys::core::PCWSTR) -> ()); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modify(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, mods : *mut *mut LDAPModA) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modifyA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, mods : *mut *mut LDAPModA) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modifyW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, mods : *mut *mut LDAPModW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_modify_ext(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, mods : *mut *mut LDAPModA, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_modify_extA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, mods : *mut *mut LDAPModA, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_modify_extW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, mods : *mut *mut LDAPModW, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_modify_ext_s(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, mods : *mut *mut LDAPModA, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_modify_ext_sA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, mods : *mut *mut LDAPModA, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_modify_ext_sW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, mods : *mut *mut LDAPModW, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modify_s(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, mods : *mut *mut LDAPModA) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modify_sA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, mods : *mut *mut LDAPModA) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modify_sW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, mods : *mut *mut LDAPModW) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modrdn(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCSTR, newdistinguishedname : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modrdn2(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCSTR, newdistinguishedname : ::windows_sys::core::PCSTR, deleteoldrdn : i32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modrdn2A(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCSTR, newdistinguishedname : ::windows_sys::core::PCSTR, deleteoldrdn : i32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modrdn2W(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCWSTR, newdistinguishedname : ::windows_sys::core::PCWSTR, deleteoldrdn : i32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modrdn2_s(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCSTR, newdistinguishedname : ::windows_sys::core::PCSTR, deleteoldrdn : i32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modrdn2_sA(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCSTR, newdistinguishedname : ::windows_sys::core::PCSTR, deleteoldrdn : i32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modrdn2_sW(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCWSTR, newdistinguishedname : ::windows_sys::core::PCWSTR, deleteoldrdn : i32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modrdnA(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCSTR, newdistinguishedname : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modrdnW(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCWSTR, newdistinguishedname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modrdn_s(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCSTR, newdistinguishedname : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modrdn_sA(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCSTR, newdistinguishedname : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_modrdn_sW(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCWSTR, newdistinguishedname : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_msgfree(res : *mut LDAPMessage) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_next_attribute(ld : *mut LDAP, entry : *mut LDAPMessage, ptr : *mut BerElement) -> ::windows_sys::core::PSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_next_attributeA(ld : *mut LDAP, entry : *mut LDAPMessage, ptr : *mut BerElement) -> ::windows_sys::core::PSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_next_attributeW(ld : *mut LDAP, entry : *mut LDAPMessage, ptr : *mut BerElement) -> ::windows_sys::core::PWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_next_entry(ld : *mut LDAP, entry : *mut LDAPMessage) -> *mut LDAPMessage); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_next_reference(ld : *mut LDAP, entry : *mut LDAPMessage) -> *mut LDAPMessage); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_open(hostname : ::windows_sys::core::PCSTR, portnumber : u32) -> *mut LDAP); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_openA(hostname : ::windows_sys::core::PCSTR, portnumber : u32) -> *mut LDAP); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_openW(hostname : ::windows_sys::core::PCWSTR, portnumber : u32) -> *mut LDAP); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_extended_resultA(connection : *mut LDAP, resultmessage : *mut LDAPMessage, resultoid : *mut ::windows_sys::core::PSTR, resultdata : *mut *mut LDAP_BERVAL, freeit : super::super::Foundation:: BOOLEAN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_extended_resultW(connection : *mut LDAP, resultmessage : *mut LDAPMessage, resultoid : *mut ::windows_sys::core::PWSTR, resultdata : *mut *mut LDAP_BERVAL, freeit : super::super::Foundation:: BOOLEAN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_page_control(externalhandle : *mut LDAP, servercontrols : *mut *mut LDAPControlA, totalcount : *mut u32, cookie : *mut *mut LDAP_BERVAL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_page_controlA(externalhandle : *mut LDAP, servercontrols : *mut *mut LDAPControlA, totalcount : *mut u32, cookie : *mut *mut LDAP_BERVAL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_page_controlW(externalhandle : *mut LDAP, servercontrols : *mut *mut LDAPControlW, totalcount : *mut u32, cookie : *mut *mut LDAP_BERVAL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_reference(connection : *mut LDAP, resultmessage : *mut LDAPMessage, referrals : *mut *mut ::windows_sys::core::PSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_referenceA(connection : *mut LDAP, resultmessage : *mut LDAPMessage, referrals : *mut *mut ::windows_sys::core::PSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_referenceW(connection : *mut LDAP, resultmessage : *mut LDAPMessage, referrals : *mut *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_result(connection : *mut LDAP, resultmessage : *mut LDAPMessage, returncode : *mut u32, matcheddns : *mut ::windows_sys::core::PSTR, errormessage : *mut ::windows_sys::core::PSTR, referrals : *mut *mut ::windows_sys::core::PSTR, servercontrols : *mut *mut *mut LDAPControlA, freeit : super::super::Foundation:: BOOLEAN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_resultA(connection : *mut LDAP, resultmessage : *mut LDAPMessage, returncode : *mut u32, matcheddns : *mut ::windows_sys::core::PSTR, errormessage : *mut ::windows_sys::core::PSTR, referrals : *mut *mut *mut i8, servercontrols : *mut *mut *mut LDAPControlA, freeit : super::super::Foundation:: BOOLEAN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_resultW(connection : *mut LDAP, resultmessage : *mut LDAPMessage, returncode : *mut u32, matcheddns : *mut ::windows_sys::core::PWSTR, errormessage : *mut ::windows_sys::core::PWSTR, referrals : *mut *mut *mut u16, servercontrols : *mut *mut *mut LDAPControlW, freeit : super::super::Foundation:: BOOLEAN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_sort_control(externalhandle : *mut LDAP, control : *mut *mut LDAPControlA, result : *mut u32, attribute : *mut ::windows_sys::core::PSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_sort_controlA(externalhandle : *mut LDAP, control : *mut *mut LDAPControlA, result : *mut u32, attribute : *mut ::windows_sys::core::PSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_sort_controlW(externalhandle : *mut LDAP, control : *mut *mut LDAPControlW, result : *mut u32, attribute : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_vlv_controlA(externalhandle : *mut LDAP, control : *mut *mut LDAPControlA, targetpos : *mut u32, listcount : *mut u32, context : *mut *mut LDAP_BERVAL, errcode : *mut i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_parse_vlv_controlW(externalhandle : *mut LDAP, control : *mut *mut LDAPControlW, targetpos : *mut u32, listcount : *mut u32, context : *mut *mut LDAP_BERVAL, errcode : *mut i32) -> i32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_perror(ld : *mut LDAP, msg : ::windows_sys::core::PCSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_rename_ext(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, newrdn : ::windows_sys::core::PCSTR, newparent : ::windows_sys::core::PCSTR, deleteoldrdn : i32, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_rename_extA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, newrdn : ::windows_sys::core::PCSTR, newparent : ::windows_sys::core::PCSTR, deleteoldrdn : i32, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_rename_extW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, newrdn : ::windows_sys::core::PCWSTR, newparent : ::windows_sys::core::PCWSTR, deleteoldrdn : i32, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_rename_ext_s(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, newrdn : ::windows_sys::core::PCSTR, newparent : ::windows_sys::core::PCSTR, deleteoldrdn : i32, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_rename_ext_sA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, newrdn : ::windows_sys::core::PCSTR, newparent : ::windows_sys::core::PCSTR, deleteoldrdn : i32, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_rename_ext_sW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, newrdn : ::windows_sys::core::PCWSTR, newparent : ::windows_sys::core::PCWSTR, deleteoldrdn : i32, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_result(ld : *mut LDAP, msgid : u32, all : u32, timeout : *const LDAP_TIMEVAL, res : *mut *mut LDAPMessage) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_result2error(ld : *mut LDAP, res : *mut LDAPMessage, freeit : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_sasl_bindA(externalhandle : *mut LDAP, distname : ::windows_sys::core::PCSTR, authmechanism : ::windows_sys::core::PCSTR, cred : *const LDAP_BERVAL, serverctrls : *mut *mut LDAPControlA, clientctrls : *mut *mut LDAPControlA, messagenumber : *mut i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_sasl_bindW(externalhandle : *mut LDAP, distname : ::windows_sys::core::PCWSTR, authmechanism : ::windows_sys::core::PCWSTR, cred : *const LDAP_BERVAL, serverctrls : *mut *mut LDAPControlW, clientctrls : *mut *mut LDAPControlW, messagenumber : *mut i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_sasl_bind_sA(externalhandle : *mut LDAP, distname : ::windows_sys::core::PCSTR, authmechanism : ::windows_sys::core::PCSTR, cred : *const LDAP_BERVAL, serverctrls : *mut *mut LDAPControlA, clientctrls : *mut *mut LDAPControlA, serverdata : *mut *mut LDAP_BERVAL) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_sasl_bind_sW(externalhandle : *mut LDAP, distname : ::windows_sys::core::PCWSTR, authmechanism : ::windows_sys::core::PCWSTR, cred : *const LDAP_BERVAL, serverctrls : *mut *mut LDAPControlW, clientctrls : *mut *mut LDAPControlW, serverdata : *mut *mut LDAP_BERVAL) -> i32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_search(ld : *mut LDAP, base : ::windows_sys::core::PCSTR, scope : u32, filter : ::windows_sys::core::PCSTR, attrs : *const *const i8, attrsonly : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_searchA(ld : *mut LDAP, base : ::windows_sys::core::PCSTR, scope : u32, filter : ::windows_sys::core::PCSTR, attrs : *const *const i8, attrsonly : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_searchW(ld : *mut LDAP, base : ::windows_sys::core::PCWSTR, scope : u32, filter : ::windows_sys::core::PCWSTR, attrs : *const *const u16, attrsonly : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_search_abandon_page(externalhandle : *mut LDAP, searchblock : PLDAPSearch) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_ext(ld : *mut LDAP, base : ::windows_sys::core::PCSTR, scope : u32, filter : ::windows_sys::core::PCSTR, attrs : *const *const i8, attrsonly : u32, servercontrols : *const *const LDAPControlA, clientcontrols : *const *const LDAPControlA, timelimit : u32, sizelimit : u32, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_extA(ld : *mut LDAP, base : ::windows_sys::core::PCSTR, scope : u32, filter : ::windows_sys::core::PCSTR, attrs : *const *const i8, attrsonly : u32, servercontrols : *const *const LDAPControlA, clientcontrols : *const *const LDAPControlA, timelimit : u32, sizelimit : u32, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_extW(ld : *mut LDAP, base : ::windows_sys::core::PCWSTR, scope : u32, filter : ::windows_sys::core::PCWSTR, attrs : *const *const u16, attrsonly : u32, servercontrols : *const *const LDAPControlW, clientcontrols : *const *const LDAPControlW, timelimit : u32, sizelimit : u32, messagenumber : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_ext_s(ld : *mut LDAP, base : ::windows_sys::core::PCSTR, scope : u32, filter : ::windows_sys::core::PCSTR, attrs : *const *const i8, attrsonly : u32, servercontrols : *const *const LDAPControlA, clientcontrols : *const *const LDAPControlA, timeout : *mut LDAP_TIMEVAL, sizelimit : u32, res : *mut *mut LDAPMessage) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_ext_sA(ld : *mut LDAP, base : ::windows_sys::core::PCSTR, scope : u32, filter : ::windows_sys::core::PCSTR, attrs : *const *const i8, attrsonly : u32, servercontrols : *const *const LDAPControlA, clientcontrols : *const *const LDAPControlA, timeout : *mut LDAP_TIMEVAL, sizelimit : u32, res : *mut *mut LDAPMessage) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_ext_sW(ld : *mut LDAP, base : ::windows_sys::core::PCWSTR, scope : u32, filter : ::windows_sys::core::PCWSTR, attrs : *const *const u16, attrsonly : u32, servercontrols : *const *const LDAPControlW, clientcontrols : *const *const LDAPControlW, timeout : *mut LDAP_TIMEVAL, sizelimit : u32, res : *mut *mut LDAPMessage) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_init_page(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCSTR, scopeofsearch : u32, searchfilter : ::windows_sys::core::PCSTR, attributelist : *mut *mut i8, attributesonly : u32, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, pagetimelimit : u32, totalsizelimit : u32, sortkeys : *mut *mut LDAPSortKeyA) -> PLDAPSearch); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_init_pageA(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCSTR, scopeofsearch : u32, searchfilter : ::windows_sys::core::PCSTR, attributelist : *const *const i8, attributesonly : u32, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA, pagetimelimit : u32, totalsizelimit : u32, sortkeys : *mut *mut LDAPSortKeyA) -> PLDAPSearch); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_init_pageW(externalhandle : *mut LDAP, distinguishedname : ::windows_sys::core::PCWSTR, scopeofsearch : u32, searchfilter : ::windows_sys::core::PCWSTR, attributelist : *const *const u16, attributesonly : u32, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW, pagetimelimit : u32, totalsizelimit : u32, sortkeys : *mut *mut LDAPSortKeyW) -> PLDAPSearch); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_s(ld : *mut LDAP, base : ::windows_sys::core::PCSTR, scope : u32, filter : ::windows_sys::core::PCSTR, attrs : *const *const i8, attrsonly : u32, res : *mut *mut LDAPMessage) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_sA(ld : *mut LDAP, base : ::windows_sys::core::PCSTR, scope : u32, filter : ::windows_sys::core::PCSTR, attrs : *const *const i8, attrsonly : u32, res : *mut *mut LDAPMessage) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_sW(ld : *mut LDAP, base : ::windows_sys::core::PCWSTR, scope : u32, filter : ::windows_sys::core::PCWSTR, attrs : *const *const u16, attrsonly : u32, res : *mut *mut LDAPMessage) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_st(ld : *mut LDAP, base : ::windows_sys::core::PCSTR, scope : u32, filter : ::windows_sys::core::PCSTR, attrs : *const *const i8, attrsonly : u32, timeout : *mut LDAP_TIMEVAL, res : *mut *mut LDAPMessage) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_stA(ld : *mut LDAP, base : ::windows_sys::core::PCSTR, scope : u32, filter : ::windows_sys::core::PCSTR, attrs : *const *const i8, attrsonly : u32, timeout : *mut LDAP_TIMEVAL, res : *mut *mut LDAPMessage) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_search_stW(ld : *mut LDAP, base : ::windows_sys::core::PCWSTR, scope : u32, filter : ::windows_sys::core::PCWSTR, attrs : *const *const u16, attrsonly : u32, timeout : *mut LDAP_TIMEVAL, res : *mut *mut LDAPMessage) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_set_dbg_flags(newflags : u32) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_set_dbg_routine(debugprintroutine : DBGPRINT) -> ()); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_set_option(ld : *mut LDAP, option : i32, invalue : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_set_optionW(ld : *mut LDAP, option : i32, invalue : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_simple_bind(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, passwd : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_simple_bindA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, passwd : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_simple_bindW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, passwd : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_simple_bind_s(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, passwd : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_simple_bind_sA(ld : *mut LDAP, dn : ::windows_sys::core::PCSTR, passwd : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_simple_bind_sW(ld : *mut LDAP, dn : ::windows_sys::core::PCWSTR, passwd : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_sslinit(hostname : ::windows_sys::core::PCSTR, portnumber : u32, secure : i32) -> *mut LDAP); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_sslinitA(hostname : ::windows_sys::core::PCSTR, portnumber : u32, secure : i32) -> *mut LDAP); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_sslinitW(hostname : ::windows_sys::core::PCWSTR, portnumber : u32, secure : i32) -> *mut LDAP); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_start_tls_sA(externalhandle : *mut LDAP, serverreturnvalue : *mut u32, result : *mut *mut LDAPMessage, servercontrols : *mut *mut LDAPControlA, clientcontrols : *mut *mut LDAPControlA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_start_tls_sW(externalhandle : *mut LDAP, serverreturnvalue : *mut u32, result : *mut *mut LDAPMessage, servercontrols : *mut *mut LDAPControlW, clientcontrols : *mut *mut LDAPControlW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_startup(version : *mut LDAP_VERSION_INFO, instance : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldap32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ldap_stop_tls_s(externalhandle : *mut LDAP) -> super::super::Foundation:: BOOLEAN); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_ufn2dn(ufn : ::windows_sys::core::PCSTR, pdn : *mut ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_ufn2dnA(ufn : ::windows_sys::core::PCSTR, pdn : *mut ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_ufn2dnW(ufn : ::windows_sys::core::PCWSTR, pdn : *mut ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_unbind(ld : *mut LDAP) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_unbind_s(ld : *mut LDAP) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_value_free(vals : *const ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_value_freeA(vals : *const ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_value_freeW(vals : *const ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("wldap32.dll" "cdecl" fn ldap_value_free_len(vals : *mut *mut LDAP_BERVAL) -> u32); +pub const LAPI_MAJOR_VER1: u32 = 1u32; +pub const LAPI_MINOR_VER1: u32 = 1u32; +pub const LBER_DEFAULT: i32 = -1i32; +pub const LBER_ERROR: i32 = -1i32; +pub const LBER_TRANSLATE_STRINGS: u32 = 4u32; +pub const LBER_USE_DER: u32 = 1u32; +pub const LBER_USE_INDEFINITE_LEN: u32 = 2u32; +pub const LDAP_ABANDON_CMD: i32 = 80i32; +pub const LDAP_ADD_CMD: i32 = 104i32; +pub const LDAP_ADMIN_LIMIT_EXCEEDED: LDAP_RETCODE = 11i32; +pub const LDAP_AFFECTS_MULTIPLE_DSAS: LDAP_RETCODE = 71i32; +pub const LDAP_ALIAS_DEREF_PROBLEM: LDAP_RETCODE = 36i32; +pub const LDAP_ALIAS_PROBLEM: LDAP_RETCODE = 33i32; +pub const LDAP_ALREADY_EXISTS: LDAP_RETCODE = 68i32; +pub const LDAP_API_FEATURE_VIRTUAL_LIST_VIEW: u32 = 1001u32; +pub const LDAP_API_INFO_VERSION: u32 = 1u32; +pub const LDAP_API_VERSION: u32 = 2004u32; +pub const LDAP_ATTRIBUTE_OR_VALUE_EXISTS: LDAP_RETCODE = 20i32; +pub const LDAP_AUTH_METHOD_NOT_SUPPORTED: LDAP_RETCODE = 7i32; +pub const LDAP_AUTH_OTHERKIND: i32 = 134i32; +pub const LDAP_AUTH_SASL: i32 = 131i32; +pub const LDAP_AUTH_SIMPLE: i32 = 128i32; +pub const LDAP_AUTH_UNKNOWN: LDAP_RETCODE = 86i32; +pub const LDAP_BIND_CMD: i32 = 96i32; +pub const LDAP_BUSY: LDAP_RETCODE = 51i32; +pub const LDAP_CAP_ACTIVE_DIRECTORY_ADAM_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1851"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_ADAM_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1851"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_LDAP_INTEG_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1791"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_LDAP_INTEG_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1791"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.800"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.800"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_PARTIAL_SECRETS_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1920"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_PARTIAL_SECRETS_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1920"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_V51_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1670"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_V51_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1670"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_V60_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1935"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_V60_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1935"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_V61_OID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1935"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_V61_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1935"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_V61_R2_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2080"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_V61_R2_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2080"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_W8_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2237"); +pub const LDAP_CAP_ACTIVE_DIRECTORY_W8_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2237"); +pub const LDAP_CHASE_EXTERNAL_REFERRALS: u32 = 64u32; +pub const LDAP_CHASE_SUBORDINATE_REFERRALS: u32 = 32u32; +pub const LDAP_CLIENT_LOOP: LDAP_RETCODE = 96i32; +pub const LDAP_COMPARE_CMD: i32 = 110i32; +pub const LDAP_COMPARE_FALSE: LDAP_RETCODE = 5i32; +pub const LDAP_COMPARE_TRUE: LDAP_RETCODE = 6i32; +pub const LDAP_CONFIDENTIALITY_REQUIRED: LDAP_RETCODE = 13i32; +pub const LDAP_CONNECT_ERROR: LDAP_RETCODE = 91i32; +pub const LDAP_CONSTRAINT_VIOLATION: LDAP_RETCODE = 19i32; +pub const LDAP_CONTROL_NOT_FOUND: LDAP_RETCODE = 93i32; +pub const LDAP_CONTROL_REFERRALS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.616"); +pub const LDAP_CONTROL_REFERRALS_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.616"); +pub const LDAP_CONTROL_VLVREQUEST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.3.4.9"); +pub const LDAP_CONTROL_VLVREQUEST_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("2.16.840.1.113730.3.4.9"); +pub const LDAP_CONTROL_VLVRESPONSE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.3.4.10"); +pub const LDAP_CONTROL_VLVRESPONSE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("2.16.840.1.113730.3.4.10"); +pub const LDAP_DECODING_ERROR: LDAP_RETCODE = 84i32; +pub const LDAP_DELETE_CMD: i32 = 74i32; +pub const LDAP_DEREF_ALWAYS: u32 = 3u32; +pub const LDAP_DEREF_FINDING: u32 = 2u32; +pub const LDAP_DEREF_NEVER: u32 = 0u32; +pub const LDAP_DEREF_SEARCHING: u32 = 1u32; +pub const LDAP_DIRSYNC_ANCESTORS_FIRST_ORDER: u32 = 2048u32; +pub const LDAP_DIRSYNC_INCREMENTAL_VALUES: u32 = 2147483648u32; +pub const LDAP_DIRSYNC_OBJECT_SECURITY: u32 = 1u32; +pub const LDAP_DIRSYNC_PUBLIC_DATA_ONLY: u32 = 8192u32; +pub const LDAP_DIRSYNC_ROPAS_DATA_ONLY: u32 = 1073741824u32; +pub const LDAP_ENCODING_ERROR: LDAP_RETCODE = 83i32; +pub const LDAP_EXTENDED_CMD: i32 = 119i32; +pub const LDAP_FEATURE_INFO_VERSION: u32 = 1u32; +pub const LDAP_FILTER_AND: u32 = 160u32; +pub const LDAP_FILTER_APPROX: u32 = 168u32; +pub const LDAP_FILTER_EQUALITY: u32 = 163u32; +pub const LDAP_FILTER_ERROR: LDAP_RETCODE = 87i32; +pub const LDAP_FILTER_EXTENSIBLE: u32 = 169u32; +pub const LDAP_FILTER_GE: u32 = 165u32; +pub const LDAP_FILTER_LE: u32 = 166u32; +pub const LDAP_FILTER_NOT: u32 = 162u32; +pub const LDAP_FILTER_OR: u32 = 161u32; +pub const LDAP_FILTER_PRESENT: u32 = 135u32; +pub const LDAP_FILTER_SUBSTRINGS: u32 = 164u32; +pub const LDAP_GC_PORT: u32 = 3268u32; +pub const LDAP_INAPPROPRIATE_AUTH: LDAP_RETCODE = 48i32; +pub const LDAP_INAPPROPRIATE_MATCHING: LDAP_RETCODE = 18i32; +pub const LDAP_INSUFFICIENT_RIGHTS: LDAP_RETCODE = 50i32; +pub const LDAP_INVALID_CMD: u32 = 255u32; +pub const LDAP_INVALID_CREDENTIALS: LDAP_RETCODE = 49i32; +pub const LDAP_INVALID_DN_SYNTAX: LDAP_RETCODE = 34i32; +pub const LDAP_INVALID_RES: u32 = 255u32; +pub const LDAP_INVALID_SYNTAX: LDAP_RETCODE = 21i32; +pub const LDAP_IS_LEAF: LDAP_RETCODE = 35i32; +pub const LDAP_LOCAL_ERROR: LDAP_RETCODE = 82i32; +pub const LDAP_LOOP_DETECT: LDAP_RETCODE = 54i32; +pub const LDAP_MATCHING_RULE_BIT_AND: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.803"); +pub const LDAP_MATCHING_RULE_BIT_AND_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.803"); +pub const LDAP_MATCHING_RULE_BIT_OR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.804"); +pub const LDAP_MATCHING_RULE_BIT_OR_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.804"); +pub const LDAP_MATCHING_RULE_DN_BINARY_COMPLEX: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2253"); +pub const LDAP_MATCHING_RULE_DN_BINARY_COMPLEX_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2253"); +pub const LDAP_MATCHING_RULE_TRANSITIVE_EVALUATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1941"); +pub const LDAP_MATCHING_RULE_TRANSITIVE_EVALUATION_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1941"); +pub const LDAP_MODIFY_CMD: i32 = 102i32; +pub const LDAP_MODRDN_CMD: i32 = 108i32; +pub const LDAP_MOD_ADD: u32 = 0u32; +pub const LDAP_MOD_BVALUES: u32 = 128u32; +pub const LDAP_MOD_DELETE: u32 = 1u32; +pub const LDAP_MOD_REPLACE: u32 = 2u32; +pub const LDAP_MORE_RESULTS_TO_RETURN: LDAP_RETCODE = 95i32; +pub const LDAP_MSG_ALL: u32 = 1u32; +pub const LDAP_MSG_ONE: u32 = 0u32; +pub const LDAP_MSG_RECEIVED: u32 = 2u32; +pub const LDAP_NAMING_VIOLATION: LDAP_RETCODE = 64i32; +pub const LDAP_NOT_ALLOWED_ON_NONLEAF: LDAP_RETCODE = 66i32; +pub const LDAP_NOT_ALLOWED_ON_RDN: LDAP_RETCODE = 67i32; +pub const LDAP_NOT_SUPPORTED: LDAP_RETCODE = 92i32; +pub const LDAP_NO_LIMIT: u32 = 0u32; +pub const LDAP_NO_MEMORY: LDAP_RETCODE = 90i32; +pub const LDAP_NO_OBJECT_CLASS_MODS: LDAP_RETCODE = 69i32; +pub const LDAP_NO_RESULTS_RETURNED: LDAP_RETCODE = 94i32; +pub const LDAP_NO_SUCH_ATTRIBUTE: LDAP_RETCODE = 16i32; +pub const LDAP_NO_SUCH_OBJECT: LDAP_RETCODE = 32i32; +pub const LDAP_OBJECT_CLASS_VIOLATION: LDAP_RETCODE = 65i32; +pub const LDAP_OFFSET_RANGE_ERROR: LDAP_RETCODE = 61i32; +pub const LDAP_OPATT_ABANDON_REPL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("abandonReplication"); +pub const LDAP_OPATT_ABANDON_REPL_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("abandonReplication"); +pub const LDAP_OPATT_BECOME_DOM_MASTER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("becomeDomainMaster"); +pub const LDAP_OPATT_BECOME_DOM_MASTER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("becomeDomainMaster"); +pub const LDAP_OPATT_BECOME_PDC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("becomePdc"); +pub const LDAP_OPATT_BECOME_PDC_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("becomePdc"); +pub const LDAP_OPATT_BECOME_RID_MASTER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("becomeRidMaster"); +pub const LDAP_OPATT_BECOME_RID_MASTER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("becomeRidMaster"); +pub const LDAP_OPATT_BECOME_SCHEMA_MASTER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("becomeSchemaMaster"); +pub const LDAP_OPATT_BECOME_SCHEMA_MASTER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("becomeSchemaMaster"); +pub const LDAP_OPATT_CONFIG_NAMING_CONTEXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("configurationNamingContext"); +pub const LDAP_OPATT_CONFIG_NAMING_CONTEXT_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("configurationNamingContext"); +pub const LDAP_OPATT_CURRENT_TIME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("currentTime"); +pub const LDAP_OPATT_CURRENT_TIME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("currentTime"); +pub const LDAP_OPATT_DEFAULT_NAMING_CONTEXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("defaultNamingContext"); +pub const LDAP_OPATT_DEFAULT_NAMING_CONTEXT_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("defaultNamingContext"); +pub const LDAP_OPATT_DNS_HOST_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("dnsHostName"); +pub const LDAP_OPATT_DNS_HOST_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("dnsHostName"); +pub const LDAP_OPATT_DO_GARBAGE_COLLECTION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("doGarbageCollection"); +pub const LDAP_OPATT_DO_GARBAGE_COLLECTION_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("doGarbageCollection"); +pub const LDAP_OPATT_DS_SERVICE_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("dsServiceName"); +pub const LDAP_OPATT_DS_SERVICE_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("dsServiceName"); +pub const LDAP_OPATT_FIXUP_INHERITANCE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("fixupInheritance"); +pub const LDAP_OPATT_FIXUP_INHERITANCE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("fixupInheritance"); +pub const LDAP_OPATT_HIGHEST_COMMITTED_USN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("highestCommitedUSN"); +pub const LDAP_OPATT_HIGHEST_COMMITTED_USN_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("highestCommitedUSN"); +pub const LDAP_OPATT_INVALIDATE_RID_POOL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("invalidateRidPool"); +pub const LDAP_OPATT_INVALIDATE_RID_POOL_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("invalidateRidPool"); +pub const LDAP_OPATT_LDAP_SERVICE_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ldapServiceName"); +pub const LDAP_OPATT_LDAP_SERVICE_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ldapServiceName"); +pub const LDAP_OPATT_NAMING_CONTEXTS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("namingContexts"); +pub const LDAP_OPATT_NAMING_CONTEXTS_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("namingContexts"); +pub const LDAP_OPATT_RECALC_HIERARCHY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("recalcHierarchy"); +pub const LDAP_OPATT_RECALC_HIERARCHY_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("recalcHierarchy"); +pub const LDAP_OPATT_ROOT_DOMAIN_NAMING_CONTEXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("rootDomainNamingContext"); +pub const LDAP_OPATT_ROOT_DOMAIN_NAMING_CONTEXT_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("rootDomainNamingContext"); +pub const LDAP_OPATT_SCHEMA_NAMING_CONTEXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("schemaNamingContext"); +pub const LDAP_OPATT_SCHEMA_NAMING_CONTEXT_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("schemaNamingContext"); +pub const LDAP_OPATT_SCHEMA_UPDATE_NOW: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("schemaUpdateNow"); +pub const LDAP_OPATT_SCHEMA_UPDATE_NOW_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("schemaUpdateNow"); +pub const LDAP_OPATT_SERVER_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("serverName"); +pub const LDAP_OPATT_SERVER_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("serverName"); +pub const LDAP_OPATT_SUBSCHEMA_SUBENTRY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("subschemaSubentry"); +pub const LDAP_OPATT_SUBSCHEMA_SUBENTRY_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("subschemaSubentry"); +pub const LDAP_OPATT_SUPPORTED_CAPABILITIES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("supportedCapabilities"); +pub const LDAP_OPATT_SUPPORTED_CAPABILITIES_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("supportedCapabilities"); +pub const LDAP_OPATT_SUPPORTED_CONTROL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("supportedControl"); +pub const LDAP_OPATT_SUPPORTED_CONTROL_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("supportedControl"); +pub const LDAP_OPATT_SUPPORTED_LDAP_POLICIES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("supportedLDAPPolicies"); +pub const LDAP_OPATT_SUPPORTED_LDAP_POLICIES_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("supportedLDAPPolicies"); +pub const LDAP_OPATT_SUPPORTED_LDAP_VERSION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("supportedLDAPVersion"); +pub const LDAP_OPATT_SUPPORTED_LDAP_VERSION_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("supportedLDAPVersion"); +pub const LDAP_OPATT_SUPPORTED_SASL_MECHANISM: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("supportedSASLMechanisms"); +pub const LDAP_OPATT_SUPPORTED_SASL_MECHANISM_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("supportedSASLMechanisms"); +pub const LDAP_OPERATIONS_ERROR: LDAP_RETCODE = 1i32; +pub const LDAP_OPT_API_FEATURE_INFO: u32 = 21u32; +pub const LDAP_OPT_API_INFO: u32 = 0u32; +pub const LDAP_OPT_AREC_EXCLUSIVE: u32 = 152u32; +pub const LDAP_OPT_AUTO_RECONNECT: u32 = 145u32; +pub const LDAP_OPT_CACHE_ENABLE: u32 = 15u32; +pub const LDAP_OPT_CACHE_FN_PTRS: u32 = 13u32; +pub const LDAP_OPT_CACHE_STRATEGY: u32 = 14u32; +pub const LDAP_OPT_CHASE_REFERRALS: u32 = 2u32; +pub const LDAP_OPT_CLIENT_CERTIFICATE: u32 = 128u32; +pub const LDAP_OPT_DEREF: u32 = 2u32; +pub const LDAP_OPT_DESC: u32 = 1u32; +pub const LDAP_OPT_DNS: u32 = 1u32; +pub const LDAP_OPT_DNSDOMAIN_NAME: u32 = 59u32; +pub const LDAP_OPT_ENCRYPT: u32 = 150u32; +pub const LDAP_OPT_ERROR_NUMBER: u32 = 49u32; +pub const LDAP_OPT_ERROR_STRING: u32 = 50u32; +pub const LDAP_OPT_FAST_CONCURRENT_BIND: u32 = 65u32; +pub const LDAP_OPT_GETDSNAME_FLAGS: u32 = 61u32; +pub const LDAP_OPT_HOST_NAME: u32 = 48u32; +pub const LDAP_OPT_HOST_REACHABLE: u32 = 62u32; +pub const LDAP_OPT_IO_FN_PTRS: u32 = 11u32; +pub const LDAP_OPT_PING_KEEP_ALIVE: u32 = 54u32; +pub const LDAP_OPT_PING_LIMIT: u32 = 56u32; +pub const LDAP_OPT_PING_WAIT_TIME: u32 = 55u32; +pub const LDAP_OPT_PROMPT_CREDENTIALS: u32 = 63u32; +pub const LDAP_OPT_PROTOCOL_VERSION: u32 = 17u32; +pub const LDAP_OPT_REBIND_ARG: u32 = 7u32; +pub const LDAP_OPT_REBIND_FN: u32 = 6u32; +pub const LDAP_OPT_REFERRALS: u32 = 8u32; +pub const LDAP_OPT_REFERRAL_CALLBACK: u32 = 112u32; +pub const LDAP_OPT_REFERRAL_HOP_LIMIT: u32 = 16u32; +pub const LDAP_OPT_REF_DEREF_CONN_PER_MSG: u32 = 148u32; +pub const LDAP_OPT_RESTART: u32 = 9u32; +pub const LDAP_OPT_RETURN_REFS: u32 = 4u32; +pub const LDAP_OPT_ROOTDSE_CACHE: u32 = 154u32; +pub const LDAP_OPT_SASL_METHOD: u32 = 151u32; +pub const LDAP_OPT_SCH_FLAGS: u32 = 67u32; +pub const LDAP_OPT_SECURITY_CONTEXT: u32 = 153u32; +pub const LDAP_OPT_SEND_TIMEOUT: u32 = 66u32; +pub const LDAP_OPT_SERVER_CERTIFICATE: u32 = 129u32; +pub const LDAP_OPT_SERVER_ERROR: u32 = 51u32; +pub const LDAP_OPT_SERVER_EXT_ERROR: u32 = 52u32; +pub const LDAP_OPT_SIGN: u32 = 149u32; +pub const LDAP_OPT_SIZELIMIT: u32 = 3u32; +pub const LDAP_OPT_SOCKET_BIND_ADDRESSES: u32 = 68u32; +pub const LDAP_OPT_SSL: u32 = 10u32; +pub const LDAP_OPT_SSL_INFO: u32 = 147u32; +pub const LDAP_OPT_SSPI_FLAGS: u32 = 146u32; +pub const LDAP_OPT_TCP_KEEPALIVE: u32 = 64u32; +pub const LDAP_OPT_THREAD_FN_PTRS: u32 = 5u32; +pub const LDAP_OPT_TIMELIMIT: u32 = 4u32; +pub const LDAP_OPT_TLS: u32 = 10u32; +pub const LDAP_OPT_TLS_INFO: u32 = 147u32; +pub const LDAP_OPT_VERSION: u32 = 17u32; +pub const LDAP_OTHER: LDAP_RETCODE = 80i32; +pub const LDAP_PAGED_RESULT_OID_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.319"); +pub const LDAP_PAGED_RESULT_OID_STRING_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.319"); +pub const LDAP_PARAM_ERROR: LDAP_RETCODE = 89i32; +pub const LDAP_PARTIAL_RESULTS: LDAP_RETCODE = 9i32; +pub const LDAP_POLICYHINT_APPLY_FULLPWDPOLICY: u32 = 1u32; +pub const LDAP_PORT: u32 = 389u32; +pub const LDAP_PROTOCOL_ERROR: LDAP_RETCODE = 2i32; +pub const LDAP_REFERRAL: LDAP_RETCODE = 10i32; +pub const LDAP_REFERRAL_LIMIT_EXCEEDED: LDAP_RETCODE = 97i32; +pub const LDAP_REFERRAL_V2: LDAP_RETCODE = 9i32; +pub const LDAP_RESULTS_TOO_LARGE: LDAP_RETCODE = 70i32; +pub const LDAP_RES_ADD: i32 = 105i32; +pub const LDAP_RES_ANY: i32 = -1i32; +pub const LDAP_RES_BIND: i32 = 97i32; +pub const LDAP_RES_COMPARE: i32 = 111i32; +pub const LDAP_RES_DELETE: i32 = 107i32; +pub const LDAP_RES_EXTENDED: i32 = 120i32; +pub const LDAP_RES_MODIFY: i32 = 103i32; +pub const LDAP_RES_MODRDN: i32 = 109i32; +pub const LDAP_RES_REFERRAL: i32 = 115i32; +pub const LDAP_RES_SEARCH_ENTRY: i32 = 100i32; +pub const LDAP_RES_SEARCH_RESULT: i32 = 101i32; +pub const LDAP_RES_SESSION: i32 = 114i32; +pub const LDAP_SASL_BIND_IN_PROGRESS: LDAP_RETCODE = 14i32; +pub const LDAP_SCOPE_BASE: u32 = 0u32; +pub const LDAP_SCOPE_ONELEVEL: u32 = 1u32; +pub const LDAP_SCOPE_SUBTREE: u32 = 2u32; +pub const LDAP_SEARCH_CMD: i32 = 99i32; +pub const LDAP_SEARCH_HINT_INDEX_ONLY_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2207"); +pub const LDAP_SEARCH_HINT_INDEX_ONLY_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2207"); +pub const LDAP_SEARCH_HINT_REQUIRED_INDEX_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2306"); +pub const LDAP_SEARCH_HINT_REQUIRED_INDEX_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2306"); +pub const LDAP_SEARCH_HINT_SOFT_SIZE_LIMIT_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2210"); +pub const LDAP_SEARCH_HINT_SOFT_SIZE_LIMIT_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2210"); +pub const LDAP_SERVER_ASQ_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1504"); +pub const LDAP_SERVER_ASQ_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1504"); +pub const LDAP_SERVER_BATCH_REQUEST_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2212"); +pub const LDAP_SERVER_BATCH_REQUEST_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2212"); +pub const LDAP_SERVER_BYPASS_QUOTA_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2256"); +pub const LDAP_SERVER_BYPASS_QUOTA_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2256"); +pub const LDAP_SERVER_CROSSDOM_MOVE_TARGET_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.521"); +pub const LDAP_SERVER_CROSSDOM_MOVE_TARGET_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.521"); +pub const LDAP_SERVER_DIRSYNC_EX_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2090"); +pub const LDAP_SERVER_DIRSYNC_EX_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2090"); +pub const LDAP_SERVER_DIRSYNC_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.841"); +pub const LDAP_SERVER_DIRSYNC_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.841"); +pub const LDAP_SERVER_DN_INPUT_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2026"); +pub const LDAP_SERVER_DN_INPUT_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2026"); +pub const LDAP_SERVER_DOMAIN_SCOPE_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1339"); +pub const LDAP_SERVER_DOMAIN_SCOPE_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1339"); +pub const LDAP_SERVER_DOWN: LDAP_RETCODE = 81i32; +pub const LDAP_SERVER_EXPECTED_ENTRY_COUNT_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2211"); +pub const LDAP_SERVER_EXPECTED_ENTRY_COUNT_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2211"); +pub const LDAP_SERVER_EXTENDED_DN_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.529"); +pub const LDAP_SERVER_EXTENDED_DN_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.529"); +pub const LDAP_SERVER_FAST_BIND_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1781"); +pub const LDAP_SERVER_FAST_BIND_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1781"); +pub const LDAP_SERVER_FORCE_UPDATE_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1974"); +pub const LDAP_SERVER_FORCE_UPDATE_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1974"); +pub const LDAP_SERVER_GET_STATS_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.970"); +pub const LDAP_SERVER_GET_STATS_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.970"); +pub const LDAP_SERVER_LAZY_COMMIT_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.619"); +pub const LDAP_SERVER_LAZY_COMMIT_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.619"); +pub const LDAP_SERVER_LINK_TTL_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2309"); +pub const LDAP_SERVER_LINK_TTL_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2309"); +pub const LDAP_SERVER_NOTIFICATION_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.528"); +pub const LDAP_SERVER_NOTIFICATION_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.528"); +pub const LDAP_SERVER_PERMISSIVE_MODIFY_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1413"); +pub const LDAP_SERVER_PERMISSIVE_MODIFY_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1413"); +pub const LDAP_SERVER_POLICY_HINTS_DEPRECATED_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2066"); +pub const LDAP_SERVER_POLICY_HINTS_DEPRECATED_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2066"); +pub const LDAP_SERVER_POLICY_HINTS_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2239"); +pub const LDAP_SERVER_POLICY_HINTS_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2239"); +pub const LDAP_SERVER_QUOTA_CONTROL_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1852"); +pub const LDAP_SERVER_QUOTA_CONTROL_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1852"); +pub const LDAP_SERVER_RANGE_OPTION_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.802"); +pub const LDAP_SERVER_RANGE_OPTION_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.802"); +pub const LDAP_SERVER_RANGE_RETRIEVAL_NOERR_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1948"); +pub const LDAP_SERVER_RANGE_RETRIEVAL_NOERR_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1948"); +pub const LDAP_SERVER_RESP_SORT_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.474"); +pub const LDAP_SERVER_RESP_SORT_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.474"); +pub const LDAP_SERVER_SD_FLAGS_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.801"); +pub const LDAP_SERVER_SD_FLAGS_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.801"); +pub const LDAP_SERVER_SEARCH_HINTS_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2206"); +pub const LDAP_SERVER_SEARCH_HINTS_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2206"); +pub const LDAP_SERVER_SEARCH_OPTIONS_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1340"); +pub const LDAP_SERVER_SEARCH_OPTIONS_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1340"); +pub const LDAP_SERVER_SET_OWNER_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2255"); +pub const LDAP_SERVER_SET_OWNER_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2255"); +pub const LDAP_SERVER_SHOW_DEACTIVATED_LINK_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2065"); +pub const LDAP_SERVER_SHOW_DEACTIVATED_LINK_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2065"); +pub const LDAP_SERVER_SHOW_DELETED_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.417"); +pub const LDAP_SERVER_SHOW_DELETED_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.417"); +pub const LDAP_SERVER_SHOW_RECYCLED_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2064"); +pub const LDAP_SERVER_SHOW_RECYCLED_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2064"); +pub const LDAP_SERVER_SHUTDOWN_NOTIFY_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1907"); +pub const LDAP_SERVER_SHUTDOWN_NOTIFY_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1907"); +pub const LDAP_SERVER_SORT_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.473"); +pub const LDAP_SERVER_SORT_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.473"); +pub const LDAP_SERVER_TREE_DELETE_EX_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2204"); +pub const LDAP_SERVER_TREE_DELETE_EX_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2204"); +pub const LDAP_SERVER_TREE_DELETE_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.805"); +pub const LDAP_SERVER_TREE_DELETE_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.805"); +pub const LDAP_SERVER_UPDATE_STATS_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2205"); +pub const LDAP_SERVER_UPDATE_STATS_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2205"); +pub const LDAP_SERVER_VERIFY_NAME_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.1338"); +pub const LDAP_SERVER_VERIFY_NAME_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.1338"); +pub const LDAP_SERVER_WHO_AM_I_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.4203.1.11.3"); +pub const LDAP_SERVER_WHO_AM_I_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.3.6.1.4.1.4203.1.11.3"); +pub const LDAP_SESSION_CMD: i32 = 113i32; +pub const LDAP_SIZELIMIT_EXCEEDED: LDAP_RETCODE = 4i32; +pub const LDAP_SORT_CONTROL_MISSING: LDAP_RETCODE = 60i32; +pub const LDAP_SSL_GC_PORT: u32 = 3269u32; +pub const LDAP_SSL_PORT: u32 = 636u32; +pub const LDAP_START_TLS_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.1466.20037"); +pub const LDAP_START_TLS_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.3.6.1.4.1.1466.20037"); +pub const LDAP_STRONG_AUTH_REQUIRED: LDAP_RETCODE = 8i32; +pub const LDAP_SUBSTRING_ANY: i32 = 129i32; +pub const LDAP_SUBSTRING_FINAL: i32 = 130i32; +pub const LDAP_SUBSTRING_INITIAL: i32 = 128i32; +pub const LDAP_SUCCESS: LDAP_RETCODE = 0i32; +pub const LDAP_TIMELIMIT_EXCEEDED: LDAP_RETCODE = 3i32; +pub const LDAP_TIMEOUT: LDAP_RETCODE = 85i32; +pub const LDAP_TTL_EXTENDED_OP_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.1466.101.119.1"); +pub const LDAP_TTL_EXTENDED_OP_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.3.6.1.4.1.1466.101.119.1"); +pub const LDAP_UNAVAILABLE: LDAP_RETCODE = 52i32; +pub const LDAP_UNAVAILABLE_CRIT_EXTENSION: LDAP_RETCODE = 12i32; +pub const LDAP_UNBIND_CMD: i32 = 66i32; +pub const LDAP_UNDEFINED_TYPE: LDAP_RETCODE = 17i32; +pub const LDAP_UNICODE: u32 = 1u32; +pub const LDAP_UNWILLING_TO_PERFORM: LDAP_RETCODE = 53i32; +pub const LDAP_UPDATE_STATS_INVOCATIONID_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2209"); +pub const LDAP_UPDATE_STATS_INVOCATIONID_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2209"); +pub const LDAP_UPDATE_STATS_USN_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113556.1.4.2208"); +pub const LDAP_UPDATE_STATS_USN_OID_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113556.1.4.2208"); +pub const LDAP_USER_CANCELLED: LDAP_RETCODE = 88i32; +pub const LDAP_VENDOR_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft Corporation."); +pub const LDAP_VENDOR_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Corporation."); +pub const LDAP_VENDOR_VERSION: u32 = 510u32; +pub const LDAP_VERSION: u32 = 2u32; +pub const LDAP_VERSION1: u32 = 1u32; +pub const LDAP_VERSION2: u32 = 2u32; +pub const LDAP_VERSION3: u32 = 3u32; +pub const LDAP_VERSION_MAX: u32 = 3u32; +pub const LDAP_VERSION_MIN: u32 = 2u32; +pub const LDAP_VIRTUAL_LIST_VIEW_ERROR: LDAP_RETCODE = 76i32; +pub const LDAP_VLVINFO_VERSION: u32 = 1u32; +pub const SERVER_SEARCH_FLAG_DOMAIN_SCOPE: u32 = 1u32; +pub const SERVER_SEARCH_FLAG_PHANTOM_ROOT: u32 = 2u32; +pub type LDAP_RETCODE = i32; +#[repr(C)] +pub struct BerElement { + pub opaque: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for BerElement {} +impl ::core::clone::Clone for BerElement { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDAP { + pub ld_sb: LDAP_0, + pub ld_host: ::windows_sys::core::PSTR, + pub ld_version: u32, + pub ld_lberoptions: u8, + pub ld_deref: u32, + pub ld_timelimit: u32, + pub ld_sizelimit: u32, + pub ld_errno: u32, + pub ld_matched: ::windows_sys::core::PSTR, + pub ld_error: ::windows_sys::core::PSTR, + pub ld_msgid: u32, + pub Reserved3: [u8; 25], + pub ld_cldaptries: u32, + pub ld_cldaptimeout: u32, + pub ld_refhoplimit: u32, + pub ld_options: u32, +} +impl ::core::marker::Copy for LDAP {} +impl ::core::clone::Clone for LDAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDAP_0 { + pub sb_sd: usize, + pub Reserved1: [u8; 41], + pub sb_naddr: usize, + pub Reserved2: [u8; 24], +} +impl ::core::marker::Copy for LDAP_0 {} +impl ::core::clone::Clone for LDAP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDAPAPIFeatureInfoA { + pub ldapaif_info_version: i32, + pub ldapaif_name: ::windows_sys::core::PSTR, + pub ldapaif_version: i32, +} +impl ::core::marker::Copy for LDAPAPIFeatureInfoA {} +impl ::core::clone::Clone for LDAPAPIFeatureInfoA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDAPAPIFeatureInfoW { + pub ldapaif_info_version: i32, + pub ldapaif_name: ::windows_sys::core::PWSTR, + pub ldapaif_version: i32, +} +impl ::core::marker::Copy for LDAPAPIFeatureInfoW {} +impl ::core::clone::Clone for LDAPAPIFeatureInfoW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDAPAPIInfoA { + pub ldapai_info_version: i32, + pub ldapai_api_version: i32, + pub ldapai_protocol_version: i32, + pub ldapai_extensions: *mut *mut i8, + pub ldapai_vendor_name: ::windows_sys::core::PSTR, + pub ldapai_vendor_version: i32, +} +impl ::core::marker::Copy for LDAPAPIInfoA {} +impl ::core::clone::Clone for LDAPAPIInfoA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDAPAPIInfoW { + pub ldapai_info_version: i32, + pub ldapai_api_version: i32, + pub ldapai_protocol_version: i32, + pub ldapai_extensions: *mut ::windows_sys::core::PWSTR, + pub ldapai_vendor_name: ::windows_sys::core::PWSTR, + pub ldapai_vendor_version: i32, +} +impl ::core::marker::Copy for LDAPAPIInfoW {} +impl ::core::clone::Clone for LDAPAPIInfoW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LDAPControlA { + pub ldctl_oid: ::windows_sys::core::PSTR, + pub ldctl_value: LDAP_BERVAL, + pub ldctl_iscritical: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LDAPControlA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LDAPControlA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LDAPControlW { + pub ldctl_oid: ::windows_sys::core::PWSTR, + pub ldctl_value: LDAP_BERVAL, + pub ldctl_iscritical: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LDAPControlW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LDAPControlW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LDAPMessage { + pub lm_msgid: u32, + pub lm_msgtype: u32, + pub lm_ber: *mut ::core::ffi::c_void, + pub lm_chain: *mut LDAPMessage, + pub lm_next: *mut LDAPMessage, + pub lm_time: u32, + pub Connection: *mut LDAP, + pub Request: *mut ::core::ffi::c_void, + pub lm_returncode: u32, + pub lm_referral: u16, + pub lm_chased: super::super::Foundation::BOOLEAN, + pub lm_eom: super::super::Foundation::BOOLEAN, + pub ConnectionReferenced: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LDAPMessage {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LDAPMessage { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDAPModA { + pub mod_op: u32, + pub mod_type: ::windows_sys::core::PSTR, + pub mod_vals: LDAPModA_0, +} +impl ::core::marker::Copy for LDAPModA {} +impl ::core::clone::Clone for LDAPModA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union LDAPModA_0 { + pub modv_strvals: *mut ::windows_sys::core::PSTR, + pub modv_bvals: *mut *mut LDAP_BERVAL, +} +impl ::core::marker::Copy for LDAPModA_0 {} +impl ::core::clone::Clone for LDAPModA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDAPModW { + pub mod_op: u32, + pub mod_type: ::windows_sys::core::PWSTR, + pub mod_vals: LDAPModW_0, +} +impl ::core::marker::Copy for LDAPModW {} +impl ::core::clone::Clone for LDAPModW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union LDAPModW_0 { + pub modv_strvals: *mut ::windows_sys::core::PWSTR, + pub modv_bvals: *mut *mut LDAP_BERVAL, +} +impl ::core::marker::Copy for LDAPModW_0 {} +impl ::core::clone::Clone for LDAPModW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LDAPSortKeyA { + pub sk_attrtype: ::windows_sys::core::PSTR, + pub sk_matchruleoid: ::windows_sys::core::PSTR, + pub sk_reverseorder: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LDAPSortKeyA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LDAPSortKeyA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LDAPSortKeyW { + pub sk_attrtype: ::windows_sys::core::PWSTR, + pub sk_matchruleoid: ::windows_sys::core::PWSTR, + pub sk_reverseorder: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LDAPSortKeyW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LDAPSortKeyW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDAPVLVInfo { + pub ldvlv_version: i32, + pub ldvlv_before_count: u32, + pub ldvlv_after_count: u32, + pub ldvlv_offset: u32, + pub ldvlv_count: u32, + pub ldvlv_attrvalue: *mut LDAP_BERVAL, + pub ldvlv_context: *mut LDAP_BERVAL, + pub ldvlv_extradata: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for LDAPVLVInfo {} +impl ::core::clone::Clone for LDAPVLVInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDAP_BERVAL { + pub bv_len: u32, + pub bv_val: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for LDAP_BERVAL {} +impl ::core::clone::Clone for LDAP_BERVAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LDAP_REFERRAL_CALLBACK { + pub SizeOfCallbacks: u32, + pub QueryForConnection: QUERYFORCONNECTION, + pub NotifyRoutine: NOTIFYOFNEWCONNECTION, + pub DereferenceRoutine: DEREFERENCECONNECTION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LDAP_REFERRAL_CALLBACK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LDAP_REFERRAL_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDAP_TIMEVAL { + pub tv_sec: i32, + pub tv_usec: i32, +} +impl ::core::marker::Copy for LDAP_TIMEVAL {} +impl ::core::clone::Clone for LDAP_TIMEVAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDAP_VERSION_INFO { + pub lv_size: u32, + pub lv_major: u32, + pub lv_minor: u32, +} +impl ::core::marker::Copy for LDAP_VERSION_INFO {} +impl ::core::clone::Clone for LDAP_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +pub type PLDAPSearch = isize; +pub type DBGPRINT = ::core::option::Option u32>; +pub type DEREFERENCECONNECTION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type NOTIFYOFNEWCONNECTION = ::core::option::Option super::super::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_Security_Cryptography"))] +pub type QUERYCLIENTCERT = ::core::option::Option super::super::Foundation::BOOLEAN>; +pub type QUERYFORCONNECTION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub type VERIFYSERVERCERT = ::core::option::Option super::super::Foundation::BOOLEAN>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WebSocket/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WebSocket/mod.rs new file mode 100644 index 000000000..bec432711 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WebSocket/mod.rs @@ -0,0 +1,113 @@ +::windows_targets::link!("websocket.dll" "system" fn WebSocketAbortHandle(hwebsocket : WEB_SOCKET_HANDLE) -> ()); +::windows_targets::link!("websocket.dll" "system" fn WebSocketBeginClientHandshake(hwebsocket : WEB_SOCKET_HANDLE, pszsubprotocols : *const ::windows_sys::core::PCSTR, ulsubprotocolcount : u32, pszextensions : *const ::windows_sys::core::PCSTR, ulextensioncount : u32, pinitialheaders : *const WEB_SOCKET_HTTP_HEADER, ulinitialheadercount : u32, padditionalheaders : *mut *mut WEB_SOCKET_HTTP_HEADER, puladditionalheadercount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("websocket.dll" "system" fn WebSocketBeginServerHandshake(hwebsocket : WEB_SOCKET_HANDLE, pszsubprotocolselected : ::windows_sys::core::PCSTR, pszextensionselected : *const ::windows_sys::core::PCSTR, ulextensionselectedcount : u32, prequestheaders : *const WEB_SOCKET_HTTP_HEADER, ulrequestheadercount : u32, presponseheaders : *mut *mut WEB_SOCKET_HTTP_HEADER, pulresponseheadercount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("websocket.dll" "system" fn WebSocketCompleteAction(hwebsocket : WEB_SOCKET_HANDLE, pvactioncontext : *const ::core::ffi::c_void, ulbytestransferred : u32) -> ()); +::windows_targets::link!("websocket.dll" "system" fn WebSocketCreateClientHandle(pproperties : *const WEB_SOCKET_PROPERTY, ulpropertycount : u32, phwebsocket : *mut WEB_SOCKET_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("websocket.dll" "system" fn WebSocketCreateServerHandle(pproperties : *const WEB_SOCKET_PROPERTY, ulpropertycount : u32, phwebsocket : *mut WEB_SOCKET_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("websocket.dll" "system" fn WebSocketDeleteHandle(hwebsocket : WEB_SOCKET_HANDLE) -> ()); +::windows_targets::link!("websocket.dll" "system" fn WebSocketEndClientHandshake(hwebsocket : WEB_SOCKET_HANDLE, presponseheaders : *const WEB_SOCKET_HTTP_HEADER, ulreponseheadercount : u32, pulselectedextensions : *mut u32, pulselectedextensioncount : *mut u32, pulselectedsubprotocol : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("websocket.dll" "system" fn WebSocketEndServerHandshake(hwebsocket : WEB_SOCKET_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("websocket.dll" "system" fn WebSocketGetAction(hwebsocket : WEB_SOCKET_HANDLE, eactionqueue : WEB_SOCKET_ACTION_QUEUE, pdatabuffers : *mut WEB_SOCKET_BUFFER, puldatabuffercount : *mut u32, paction : *mut WEB_SOCKET_ACTION, pbuffertype : *mut WEB_SOCKET_BUFFER_TYPE, pvapplicationcontext : *mut *mut ::core::ffi::c_void, pvactioncontext : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("websocket.dll" "system" fn WebSocketGetGlobalProperty(etype : WEB_SOCKET_PROPERTY_TYPE, pvvalue : *mut ::core::ffi::c_void, ulsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("websocket.dll" "system" fn WebSocketReceive(hwebsocket : WEB_SOCKET_HANDLE, pbuffer : *const WEB_SOCKET_BUFFER, pvcontext : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("websocket.dll" "system" fn WebSocketSend(hwebsocket : WEB_SOCKET_HANDLE, buffertype : WEB_SOCKET_BUFFER_TYPE, pbuffer : *const WEB_SOCKET_BUFFER, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +pub const WEB_SOCKET_ABORTED_CLOSE_STATUS: WEB_SOCKET_CLOSE_STATUS = 1006i32; +pub const WEB_SOCKET_ALLOCATED_BUFFER_PROPERTY_TYPE: WEB_SOCKET_PROPERTY_TYPE = 3i32; +pub const WEB_SOCKET_ALL_ACTION_QUEUE: WEB_SOCKET_ACTION_QUEUE = 3i32; +pub const WEB_SOCKET_BINARY_FRAGMENT_BUFFER_TYPE: WEB_SOCKET_BUFFER_TYPE = -2147483645i32; +pub const WEB_SOCKET_BINARY_MESSAGE_BUFFER_TYPE: WEB_SOCKET_BUFFER_TYPE = -2147483646i32; +pub const WEB_SOCKET_CLOSE_BUFFER_TYPE: WEB_SOCKET_BUFFER_TYPE = -2147483644i32; +pub const WEB_SOCKET_DISABLE_MASKING_PROPERTY_TYPE: WEB_SOCKET_PROPERTY_TYPE = 2i32; +pub const WEB_SOCKET_DISABLE_UTF8_VERIFICATION_PROPERTY_TYPE: WEB_SOCKET_PROPERTY_TYPE = 4i32; +pub const WEB_SOCKET_EMPTY_CLOSE_STATUS: WEB_SOCKET_CLOSE_STATUS = 1005i32; +pub const WEB_SOCKET_ENDPOINT_UNAVAILABLE_CLOSE_STATUS: WEB_SOCKET_CLOSE_STATUS = 1001i32; +pub const WEB_SOCKET_INDICATE_RECEIVE_COMPLETE_ACTION: WEB_SOCKET_ACTION = 4i32; +pub const WEB_SOCKET_INDICATE_SEND_COMPLETE_ACTION: WEB_SOCKET_ACTION = 2i32; +pub const WEB_SOCKET_INVALID_DATA_TYPE_CLOSE_STATUS: WEB_SOCKET_CLOSE_STATUS = 1003i32; +pub const WEB_SOCKET_INVALID_PAYLOAD_CLOSE_STATUS: WEB_SOCKET_CLOSE_STATUS = 1007i32; +pub const WEB_SOCKET_KEEPALIVE_INTERVAL_PROPERTY_TYPE: WEB_SOCKET_PROPERTY_TYPE = 5i32; +pub const WEB_SOCKET_MAX_CLOSE_REASON_LENGTH: u32 = 123u32; +pub const WEB_SOCKET_MESSAGE_TOO_BIG_CLOSE_STATUS: WEB_SOCKET_CLOSE_STATUS = 1009i32; +pub const WEB_SOCKET_NO_ACTION: WEB_SOCKET_ACTION = 0i32; +pub const WEB_SOCKET_PING_PONG_BUFFER_TYPE: WEB_SOCKET_BUFFER_TYPE = -2147483643i32; +pub const WEB_SOCKET_POLICY_VIOLATION_CLOSE_STATUS: WEB_SOCKET_CLOSE_STATUS = 1008i32; +pub const WEB_SOCKET_PROTOCOL_ERROR_CLOSE_STATUS: WEB_SOCKET_CLOSE_STATUS = 1002i32; +pub const WEB_SOCKET_RECEIVE_ACTION_QUEUE: WEB_SOCKET_ACTION_QUEUE = 2i32; +pub const WEB_SOCKET_RECEIVE_BUFFER_SIZE_PROPERTY_TYPE: WEB_SOCKET_PROPERTY_TYPE = 0i32; +pub const WEB_SOCKET_RECEIVE_FROM_NETWORK_ACTION: WEB_SOCKET_ACTION = 3i32; +pub const WEB_SOCKET_SECURE_HANDSHAKE_ERROR_CLOSE_STATUS: WEB_SOCKET_CLOSE_STATUS = 1015i32; +pub const WEB_SOCKET_SEND_ACTION_QUEUE: WEB_SOCKET_ACTION_QUEUE = 1i32; +pub const WEB_SOCKET_SEND_BUFFER_SIZE_PROPERTY_TYPE: WEB_SOCKET_PROPERTY_TYPE = 1i32; +pub const WEB_SOCKET_SEND_TO_NETWORK_ACTION: WEB_SOCKET_ACTION = 1i32; +pub const WEB_SOCKET_SERVER_ERROR_CLOSE_STATUS: WEB_SOCKET_CLOSE_STATUS = 1011i32; +pub const WEB_SOCKET_SUCCESS_CLOSE_STATUS: WEB_SOCKET_CLOSE_STATUS = 1000i32; +pub const WEB_SOCKET_SUPPORTED_VERSIONS_PROPERTY_TYPE: WEB_SOCKET_PROPERTY_TYPE = 6i32; +pub const WEB_SOCKET_UNSOLICITED_PONG_BUFFER_TYPE: WEB_SOCKET_BUFFER_TYPE = -2147483642i32; +pub const WEB_SOCKET_UNSUPPORTED_EXTENSIONS_CLOSE_STATUS: WEB_SOCKET_CLOSE_STATUS = 1010i32; +pub const WEB_SOCKET_UTF8_FRAGMENT_BUFFER_TYPE: WEB_SOCKET_BUFFER_TYPE = -2147483647i32; +pub const WEB_SOCKET_UTF8_MESSAGE_BUFFER_TYPE: WEB_SOCKET_BUFFER_TYPE = -2147483648i32; +pub type WEB_SOCKET_ACTION = i32; +pub type WEB_SOCKET_ACTION_QUEUE = i32; +pub type WEB_SOCKET_BUFFER_TYPE = i32; +pub type WEB_SOCKET_CLOSE_STATUS = i32; +pub type WEB_SOCKET_PROPERTY_TYPE = i32; +#[repr(C)] +pub union WEB_SOCKET_BUFFER { + pub Data: WEB_SOCKET_BUFFER_1, + pub CloseStatus: WEB_SOCKET_BUFFER_0, +} +impl ::core::marker::Copy for WEB_SOCKET_BUFFER {} +impl ::core::clone::Clone for WEB_SOCKET_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEB_SOCKET_BUFFER_0 { + pub pbReason: *mut u8, + pub ulReasonLength: u32, + pub usStatus: u16, +} +impl ::core::marker::Copy for WEB_SOCKET_BUFFER_0 {} +impl ::core::clone::Clone for WEB_SOCKET_BUFFER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEB_SOCKET_BUFFER_1 { + pub pbBuffer: *mut u8, + pub ulBufferLength: u32, +} +impl ::core::marker::Copy for WEB_SOCKET_BUFFER_1 {} +impl ::core::clone::Clone for WEB_SOCKET_BUFFER_1 { + fn clone(&self) -> Self { + *self + } +} +pub type WEB_SOCKET_HANDLE = isize; +#[repr(C)] +pub struct WEB_SOCKET_HTTP_HEADER { + pub pcName: ::windows_sys::core::PSTR, + pub ulNameLength: u32, + pub pcValue: ::windows_sys::core::PSTR, + pub ulValueLength: u32, +} +impl ::core::marker::Copy for WEB_SOCKET_HTTP_HEADER {} +impl ::core::clone::Clone for WEB_SOCKET_HTTP_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEB_SOCKET_PROPERTY { + pub Type: WEB_SOCKET_PROPERTY_TYPE, + pub pvValue: *mut ::core::ffi::c_void, + pub ulValueSize: u32, +} +impl ::core::marker::Copy for WEB_SOCKET_PROPERTY {} +impl ::core::clone::Clone for WEB_SOCKET_PROPERTY { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WinHttp/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WinHttp/mod.rs new file mode 100644 index 000000000..66c845a2f --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WinHttp/mod.rs @@ -0,0 +1,1401 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpAddRequestHeaders(hrequest : *mut ::core::ffi::c_void, lpszheaders : ::windows_sys::core::PCWSTR, dwheaderslength : u32, dwmodifiers : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpAddRequestHeadersEx(hrequest : *mut ::core::ffi::c_void, dwmodifiers : u32, ullflags : u64, ullextra : u64, cheaders : u32, pheaders : *const WINHTTP_EXTENDED_HEADER) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpCheckPlatform() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpCloseHandle(hinternet : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpConnect(hsession : *mut ::core::ffi::c_void, pswzservername : ::windows_sys::core::PCWSTR, nserverport : u16, dwreserved : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpCrackUrl(pwszurl : ::windows_sys::core::PCWSTR, dwurllength : u32, dwflags : u32, lpurlcomponents : *mut URL_COMPONENTS) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpCreateProxyResolver(hsession : *const ::core::ffi::c_void, phresolver : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpCreateUrl(lpurlcomponents : *const URL_COMPONENTS, dwflags : WIN_HTTP_CREATE_URL_FLAGS, pwszurl : ::windows_sys::core::PWSTR, pdwurllength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpDetectAutoProxyConfigUrl(dwautodetectflags : u32, ppwstrautoconfigurl : *mut ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpFreeProxyResult(pproxyresult : *mut WINHTTP_PROXY_RESULT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpFreeProxyResultEx(pproxyresultex : *mut WINHTTP_PROXY_RESULT_EX) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpFreeProxySettings(pwinhttpproxysettings : *const WINHTTP_PROXY_SETTINGS) -> ()); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpFreeProxySettingsEx(proxysettingstype : WINHTTP_PROXY_SETTINGS_TYPE, pproxysettingsex : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpFreeQueryConnectionGroupResult(presult : *mut WINHTTP_QUERY_CONNECTION_GROUP_RESULT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpGetDefaultProxyConfiguration(pproxyinfo : *mut WINHTTP_PROXY_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpGetIEProxyConfigForCurrentUser(pproxyconfig : *mut WINHTTP_CURRENT_USER_IE_PROXY_CONFIG) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpGetProxyForUrl(hsession : *mut ::core::ffi::c_void, lpcwszurl : ::windows_sys::core::PCWSTR, pautoproxyoptions : *mut WINHTTP_AUTOPROXY_OPTIONS, pproxyinfo : *mut WINHTTP_PROXY_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpGetProxyForUrlEx(hresolver : *const ::core::ffi::c_void, pcwszurl : ::windows_sys::core::PCWSTR, pautoproxyoptions : *const WINHTTP_AUTOPROXY_OPTIONS, pcontext : usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpGetProxyForUrlEx2(hresolver : *const ::core::ffi::c_void, pcwszurl : ::windows_sys::core::PCWSTR, pautoproxyoptions : *const WINHTTP_AUTOPROXY_OPTIONS, cbinterfaceselectioncontext : u32, pinterfaceselectioncontext : *const u8, pcontext : usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpGetProxyResult(hresolver : *const ::core::ffi::c_void, pproxyresult : *mut WINHTTP_PROXY_RESULT) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpGetProxyResultEx(hresolver : *const ::core::ffi::c_void, pproxyresultex : *mut WINHTTP_PROXY_RESULT_EX) -> u32); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpGetProxySettingsEx(hresolver : *const ::core::ffi::c_void, proxysettingstype : WINHTTP_PROXY_SETTINGS_TYPE, pproxysettingsparam : *const WINHTTP_PROXY_SETTINGS_PARAM, pcontext : usize) -> u32); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpGetProxySettingsResultEx(hresolver : *const ::core::ffi::c_void, pproxysettingsex : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpGetProxySettingsVersion(hsession : *const ::core::ffi::c_void, pdwproxysettingsversion : *mut u32) -> u32); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpOpen(pszagentw : ::windows_sys::core::PCWSTR, dwaccesstype : WINHTTP_ACCESS_TYPE, pszproxyw : ::windows_sys::core::PCWSTR, pszproxybypassw : ::windows_sys::core::PCWSTR, dwflags : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpOpenRequest(hconnect : *mut ::core::ffi::c_void, pwszverb : ::windows_sys::core::PCWSTR, pwszobjectname : ::windows_sys::core::PCWSTR, pwszversion : ::windows_sys::core::PCWSTR, pwszreferrer : ::windows_sys::core::PCWSTR, ppwszaccepttypes : *const ::windows_sys::core::PCWSTR, dwflags : WINHTTP_OPEN_REQUEST_FLAGS) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpQueryAuthSchemes(hrequest : *mut ::core::ffi::c_void, lpdwsupportedschemes : *mut u32, lpdwfirstscheme : *mut u32, pdwauthtarget : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpQueryConnectionGroup(hinternet : *const ::core::ffi::c_void, pguidconnection : *const ::windows_sys::core::GUID, ullflags : u64, ppresult : *mut *mut WINHTTP_QUERY_CONNECTION_GROUP_RESULT) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpQueryDataAvailable(hrequest : *mut ::core::ffi::c_void, lpdwnumberofbytesavailable : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpQueryHeaders(hrequest : *mut ::core::ffi::c_void, dwinfolevel : u32, pwszname : ::windows_sys::core::PCWSTR, lpbuffer : *mut ::core::ffi::c_void, lpdwbufferlength : *mut u32, lpdwindex : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpQueryHeadersEx(hrequest : *const ::core::ffi::c_void, dwinfolevel : u32, ullflags : u64, uicodepage : u32, pdwindex : *mut u32, pheadername : *const WINHTTP_HEADER_NAME, pbuffer : *mut ::core::ffi::c_void, pdwbufferlength : *mut u32, ppheaders : *mut *mut WINHTTP_EXTENDED_HEADER, pdwheaderscount : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpQueryOption(hinternet : *mut ::core::ffi::c_void, dwoption : u32, lpbuffer : *mut ::core::ffi::c_void, lpdwbufferlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpReadData(hrequest : *mut ::core::ffi::c_void, lpbuffer : *mut ::core::ffi::c_void, dwnumberofbytestoread : u32, lpdwnumberofbytesread : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpReadDataEx(hrequest : *mut ::core::ffi::c_void, lpbuffer : *mut ::core::ffi::c_void, dwnumberofbytestoread : u32, lpdwnumberofbytesread : *mut u32, ullflags : u64, cbproperty : u32, pvproperty : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpReadProxySettings(hsession : *const ::core::ffi::c_void, pcwszconnectionname : ::windows_sys::core::PCWSTR, ffallbacktodefaultsettings : super::super::Foundation:: BOOL, fsetautodiscoverfordefaultsettings : super::super::Foundation:: BOOL, pdwsettingsversion : *mut u32, pfdefaultsettingsarereturned : *mut super::super::Foundation:: BOOL, pwinhttpproxysettings : *mut WINHTTP_PROXY_SETTINGS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpReceiveResponse(hrequest : *mut ::core::ffi::c_void, lpreserved : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpRegisterProxyChangeNotification(ullflags : u64, pfncallback : WINHTTP_PROXY_CHANGE_CALLBACK, pvcontext : *const ::core::ffi::c_void, hregistration : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpResetAutoProxy(hsession : *const ::core::ffi::c_void, dwflags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpSendRequest(hrequest : *mut ::core::ffi::c_void, lpszheaders : ::windows_sys::core::PCWSTR, dwheaderslength : u32, lpoptional : *const ::core::ffi::c_void, dwoptionallength : u32, dwtotallength : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpSetCredentials(hrequest : *mut ::core::ffi::c_void, authtargets : u32, authscheme : u32, pwszusername : ::windows_sys::core::PCWSTR, pwszpassword : ::windows_sys::core::PCWSTR, pauthparams : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpSetDefaultProxyConfiguration(pproxyinfo : *mut WINHTTP_PROXY_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpSetOption(hinternet : *const ::core::ffi::c_void, dwoption : u32, lpbuffer : *const ::core::ffi::c_void, dwbufferlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpSetProxySettingsPerUser(fproxysettingsperuser : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpSetStatusCallback(hinternet : *mut ::core::ffi::c_void, lpfninternetcallback : WINHTTP_STATUS_CALLBACK, dwnotificationflags : u32, dwreserved : usize) -> WINHTTP_STATUS_CALLBACK); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpSetTimeouts(hinternet : *mut ::core::ffi::c_void, nresolvetimeout : i32, nconnecttimeout : i32, nsendtimeout : i32, nreceivetimeout : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpTimeFromSystemTime(pst : *const super::super::Foundation:: SYSTEMTIME, pwsztime : ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpTimeToSystemTime(pwsztime : ::windows_sys::core::PCWSTR, pst : *mut super::super::Foundation:: SYSTEMTIME) -> super::super::Foundation:: BOOL); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpUnregisterProxyChangeNotification(hregistration : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpWebSocketClose(hwebsocket : *const ::core::ffi::c_void, usstatus : u16, pvreason : *const ::core::ffi::c_void, dwreasonlength : u32) -> u32); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpWebSocketCompleteUpgrade(hrequest : *const ::core::ffi::c_void, pcontext : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpWebSocketQueryCloseStatus(hwebsocket : *const ::core::ffi::c_void, pusstatus : *mut u16, pvreason : *mut ::core::ffi::c_void, dwreasonlength : u32, pdwreasonlengthconsumed : *mut u32) -> u32); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpWebSocketReceive(hwebsocket : *const ::core::ffi::c_void, pvbuffer : *mut ::core::ffi::c_void, dwbufferlength : u32, pdwbytesread : *mut u32, pebuffertype : *mut WINHTTP_WEB_SOCKET_BUFFER_TYPE) -> u32); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpWebSocketSend(hwebsocket : *const ::core::ffi::c_void, ebuffertype : WINHTTP_WEB_SOCKET_BUFFER_TYPE, pvbuffer : *const ::core::ffi::c_void, dwbufferlength : u32) -> u32); +::windows_targets::link!("winhttp.dll" "system" fn WinHttpWebSocketShutdown(hwebsocket : *const ::core::ffi::c_void, usstatus : u16, pvreason : *const ::core::ffi::c_void, dwreasonlength : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpWriteData(hrequest : *mut ::core::ffi::c_void, lpbuffer : *const ::core::ffi::c_void, dwnumberofbytestowrite : u32, lpdwnumberofbyteswritten : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhttp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHttpWriteProxySettings(hsession : *const ::core::ffi::c_void, fforceupdate : super::super::Foundation:: BOOL, pwinhttpproxysettings : *const WINHTTP_PROXY_SETTINGS) -> u32); +pub type IWinHttpRequest = *mut ::core::ffi::c_void; +pub type IWinHttpRequestEvents = *mut ::core::ffi::c_void; +pub const API_GET_PROXY_FOR_URL: u32 = 6u32; +pub const API_GET_PROXY_SETTINGS: u32 = 7u32; +pub const API_QUERY_DATA_AVAILABLE: u32 = 2u32; +pub const API_READ_DATA: u32 = 3u32; +pub const API_RECEIVE_RESPONSE: u32 = 1u32; +pub const API_SEND_REQUEST: u32 = 5u32; +pub const API_WRITE_DATA: u32 = 4u32; +pub const AutoLogonPolicy_Always: WinHttpRequestAutoLogonPolicy = 0i32; +pub const AutoLogonPolicy_Never: WinHttpRequestAutoLogonPolicy = 2i32; +pub const AutoLogonPolicy_OnlyIfBypassProxy: WinHttpRequestAutoLogonPolicy = 1i32; +pub const ERROR_WINHTTP_AUTODETECTION_FAILED: u32 = 12180u32; +pub const ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR: u32 = 12178u32; +pub const ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT: u32 = 12166u32; +pub const ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN: u32 = 12103u32; +pub const ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND: u32 = 12102u32; +pub const ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN: u32 = 12100u32; +pub const ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND: u32 = 12101u32; +pub const ERROR_WINHTTP_CANNOT_CONNECT: u32 = 12029u32; +pub const ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW: u32 = 12183u32; +pub const ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED: u32 = 12044u32; +pub const ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED_PROXY: u32 = 12187u32; +pub const ERROR_WINHTTP_CLIENT_CERT_NO_ACCESS_PRIVATE_KEY: u32 = 12186u32; +pub const ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY: u32 = 12185u32; +pub const ERROR_WINHTTP_CONNECTION_ERROR: u32 = 12030u32; +pub const ERROR_WINHTTP_FEATURE_DISABLED: u32 = 12192u32; +pub const ERROR_WINHTTP_GLOBAL_CALLBACK_FAILED: u32 = 12191u32; +pub const ERROR_WINHTTP_HEADER_ALREADY_EXISTS: u32 = 12155u32; +pub const ERROR_WINHTTP_HEADER_COUNT_EXCEEDED: u32 = 12181u32; +pub const ERROR_WINHTTP_HEADER_NOT_FOUND: u32 = 12150u32; +pub const ERROR_WINHTTP_HEADER_SIZE_OVERFLOW: u32 = 12182u32; +pub const ERROR_WINHTTP_HTTP_PROTOCOL_MISMATCH: u32 = 12190u32; +pub const ERROR_WINHTTP_INCORRECT_HANDLE_STATE: u32 = 12019u32; +pub const ERROR_WINHTTP_INCORRECT_HANDLE_TYPE: u32 = 12018u32; +pub const ERROR_WINHTTP_INTERNAL_ERROR: u32 = 12004u32; +pub const ERROR_WINHTTP_INVALID_HEADER: u32 = 12153u32; +pub const ERROR_WINHTTP_INVALID_OPTION: u32 = 12009u32; +pub const ERROR_WINHTTP_INVALID_QUERY_REQUEST: u32 = 12154u32; +pub const ERROR_WINHTTP_INVALID_SERVER_RESPONSE: u32 = 12152u32; +pub const ERROR_WINHTTP_INVALID_URL: u32 = 12005u32; +pub const ERROR_WINHTTP_LOGIN_FAILURE: u32 = 12015u32; +pub const ERROR_WINHTTP_NAME_NOT_RESOLVED: u32 = 12007u32; +pub const ERROR_WINHTTP_NOT_INITIALIZED: u32 = 12172u32; +pub const ERROR_WINHTTP_OPERATION_CANCELLED: u32 = 12017u32; +pub const ERROR_WINHTTP_OPTION_NOT_SETTABLE: u32 = 12011u32; +pub const ERROR_WINHTTP_OUT_OF_HANDLES: u32 = 12001u32; +pub const ERROR_WINHTTP_REDIRECT_FAILED: u32 = 12156u32; +pub const ERROR_WINHTTP_RESEND_REQUEST: u32 = 12032u32; +pub const ERROR_WINHTTP_RESERVED_189: u32 = 12189u32; +pub const ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW: u32 = 12184u32; +pub const ERROR_WINHTTP_SCRIPT_EXECUTION_ERROR: u32 = 12177u32; +pub const ERROR_WINHTTP_SECURE_CERT_CN_INVALID: u32 = 12038u32; +pub const ERROR_WINHTTP_SECURE_CERT_DATE_INVALID: u32 = 12037u32; +pub const ERROR_WINHTTP_SECURE_CERT_REVOKED: u32 = 12170u32; +pub const ERROR_WINHTTP_SECURE_CERT_REV_FAILED: u32 = 12057u32; +pub const ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE: u32 = 12179u32; +pub const ERROR_WINHTTP_SECURE_CHANNEL_ERROR: u32 = 12157u32; +pub const ERROR_WINHTTP_SECURE_FAILURE: u32 = 12175u32; +pub const ERROR_WINHTTP_SECURE_FAILURE_PROXY: u32 = 12188u32; +pub const ERROR_WINHTTP_SECURE_INVALID_CA: u32 = 12045u32; +pub const ERROR_WINHTTP_SECURE_INVALID_CERT: u32 = 12169u32; +pub const ERROR_WINHTTP_SHUTDOWN: u32 = 12012u32; +pub const ERROR_WINHTTP_TIMEOUT: u32 = 12002u32; +pub const ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT: u32 = 12167u32; +pub const ERROR_WINHTTP_UNHANDLED_SCRIPT_TYPE: u32 = 12176u32; +pub const ERROR_WINHTTP_UNRECOGNIZED_SCHEME: u32 = 12006u32; +pub const HTTPREQUEST_PROXYSETTING_DEFAULT: u32 = 0u32; +pub const HTTPREQUEST_PROXYSETTING_DIRECT: u32 = 1u32; +pub const HTTPREQUEST_PROXYSETTING_PRECONFIG: u32 = 0u32; +pub const HTTPREQUEST_PROXYSETTING_PROXY: u32 = 2u32; +pub const HTTPREQUEST_SETCREDENTIALS_FOR_PROXY: u32 = 1u32; +pub const HTTPREQUEST_SETCREDENTIALS_FOR_SERVER: u32 = 0u32; +pub const HTTP_STATUS_ACCEPTED: u32 = 202u32; +pub const HTTP_STATUS_AMBIGUOUS: u32 = 300u32; +pub const HTTP_STATUS_BAD_GATEWAY: u32 = 502u32; +pub const HTTP_STATUS_BAD_METHOD: u32 = 405u32; +pub const HTTP_STATUS_BAD_REQUEST: u32 = 400u32; +pub const HTTP_STATUS_CONFLICT: u32 = 409u32; +pub const HTTP_STATUS_CONTINUE: u32 = 100u32; +pub const HTTP_STATUS_CREATED: u32 = 201u32; +pub const HTTP_STATUS_DENIED: u32 = 401u32; +pub const HTTP_STATUS_FIRST: u32 = 100u32; +pub const HTTP_STATUS_FORBIDDEN: u32 = 403u32; +pub const HTTP_STATUS_GATEWAY_TIMEOUT: u32 = 504u32; +pub const HTTP_STATUS_GONE: u32 = 410u32; +pub const HTTP_STATUS_LAST: u32 = 505u32; +pub const HTTP_STATUS_LENGTH_REQUIRED: u32 = 411u32; +pub const HTTP_STATUS_MOVED: u32 = 301u32; +pub const HTTP_STATUS_NONE_ACCEPTABLE: u32 = 406u32; +pub const HTTP_STATUS_NOT_FOUND: u32 = 404u32; +pub const HTTP_STATUS_NOT_MODIFIED: u32 = 304u32; +pub const HTTP_STATUS_NOT_SUPPORTED: u32 = 501u32; +pub const HTTP_STATUS_NO_CONTENT: u32 = 204u32; +pub const HTTP_STATUS_OK: u32 = 200u32; +pub const HTTP_STATUS_PARTIAL: u32 = 203u32; +pub const HTTP_STATUS_PARTIAL_CONTENT: u32 = 206u32; +pub const HTTP_STATUS_PAYMENT_REQ: u32 = 402u32; +pub const HTTP_STATUS_PERMANENT_REDIRECT: u32 = 308u32; +pub const HTTP_STATUS_PRECOND_FAILED: u32 = 412u32; +pub const HTTP_STATUS_PROXY_AUTH_REQ: u32 = 407u32; +pub const HTTP_STATUS_REDIRECT: u32 = 302u32; +pub const HTTP_STATUS_REDIRECT_KEEP_VERB: u32 = 307u32; +pub const HTTP_STATUS_REDIRECT_METHOD: u32 = 303u32; +pub const HTTP_STATUS_REQUEST_TIMEOUT: u32 = 408u32; +pub const HTTP_STATUS_REQUEST_TOO_LARGE: u32 = 413u32; +pub const HTTP_STATUS_RESET_CONTENT: u32 = 205u32; +pub const HTTP_STATUS_RETRY_WITH: u32 = 449u32; +pub const HTTP_STATUS_SERVER_ERROR: u32 = 500u32; +pub const HTTP_STATUS_SERVICE_UNAVAIL: u32 = 503u32; +pub const HTTP_STATUS_SWITCH_PROTOCOLS: u32 = 101u32; +pub const HTTP_STATUS_UNSUPPORTED_MEDIA: u32 = 415u32; +pub const HTTP_STATUS_URI_TOO_LONG: u32 = 414u32; +pub const HTTP_STATUS_USE_PROXY: u32 = 305u32; +pub const HTTP_STATUS_VERSION_NOT_SUP: u32 = 505u32; +pub const HTTP_STATUS_WEBDAV_MULTI_STATUS: u32 = 207u32; +pub const ICU_BROWSER_MODE: u32 = 33554432u32; +pub const ICU_DECODE: WIN_HTTP_CREATE_URL_FLAGS = 268435456u32; +pub const ICU_ENCODE_PERCENT: u32 = 4096u32; +pub const ICU_ENCODE_SPACES_ONLY: u32 = 67108864u32; +pub const ICU_ESCAPE: WIN_HTTP_CREATE_URL_FLAGS = 2147483648u32; +pub const ICU_ESCAPE_AUTHORITY: u32 = 8192u32; +pub const ICU_NO_ENCODE: u32 = 536870912u32; +pub const ICU_NO_META: u32 = 134217728u32; +pub const ICU_REJECT_USERPWD: WIN_HTTP_CREATE_URL_FLAGS = 16384u32; +pub const INTERNET_DEFAULT_HTTPS_PORT: u16 = 443u16; +pub const INTERNET_DEFAULT_HTTP_PORT: u16 = 80u16; +pub const INTERNET_DEFAULT_PORT: u16 = 0u16; +pub const NETWORKING_KEY_BUFSIZE: u32 = 128u32; +pub const SECURITY_FLAG_IGNORE_CERT_CN_INVALID: u32 = 4096u32; +pub const SECURITY_FLAG_IGNORE_CERT_DATE_INVALID: u32 = 8192u32; +pub const SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE: u32 = 512u32; +pub const SECURITY_FLAG_IGNORE_UNKNOWN_CA: u32 = 256u32; +pub const SECURITY_FLAG_SECURE: u32 = 1u32; +pub const SECURITY_FLAG_STRENGTH_MEDIUM: u32 = 1073741824u32; +pub const SECURITY_FLAG_STRENGTH_STRONG: u32 = 536870912u32; +pub const SECURITY_FLAG_STRENGTH_WEAK: u32 = 268435456u32; +pub const SecureProtocol_ALL: WinHttpRequestSecureProtocols = 168i32; +pub const SecureProtocol_SSL2: WinHttpRequestSecureProtocols = 8i32; +pub const SecureProtocol_SSL3: WinHttpRequestSecureProtocols = 32i32; +pub const SecureProtocol_TLS1: WinHttpRequestSecureProtocols = 128i32; +pub const SecureProtocol_TLS1_1: WinHttpRequestSecureProtocols = 512i32; +pub const SecureProtocol_TLS1_2: WinHttpRequestSecureProtocols = 2048i32; +pub const SslErrorFlag_CertCNInvalid: WinHttpRequestSslErrorFlags = 4096i32; +pub const SslErrorFlag_CertDateInvalid: WinHttpRequestSslErrorFlags = 8192i32; +pub const SslErrorFlag_CertWrongUsage: WinHttpRequestSslErrorFlags = 512i32; +pub const SslErrorFlag_Ignore_All: WinHttpRequestSslErrorFlags = 13056i32; +pub const SslErrorFlag_UnknownCA: WinHttpRequestSslErrorFlags = 256i32; +pub const WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY: WINHTTP_ACCESS_TYPE = 4u32; +pub const WINHTTP_ACCESS_TYPE_DEFAULT_PROXY: WINHTTP_ACCESS_TYPE = 0u32; +pub const WINHTTP_ACCESS_TYPE_NAMED_PROXY: WINHTTP_ACCESS_TYPE = 3u32; +pub const WINHTTP_ACCESS_TYPE_NO_PROXY: WINHTTP_ACCESS_TYPE = 1u32; +pub const WINHTTP_ADDREQ_FLAGS_MASK: u32 = 4294901760u32; +pub const WINHTTP_ADDREQ_FLAG_ADD: u32 = 536870912u32; +pub const WINHTTP_ADDREQ_FLAG_ADD_IF_NEW: u32 = 268435456u32; +pub const WINHTTP_ADDREQ_FLAG_COALESCE: u32 = 1073741824u32; +pub const WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA: u32 = 1073741824u32; +pub const WINHTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON: u32 = 16777216u32; +pub const WINHTTP_ADDREQ_FLAG_REPLACE: u32 = 2147483648u32; +pub const WINHTTP_ADDREQ_INDEX_MASK: u32 = 65535u32; +pub const WINHTTP_AUTH_SCHEME_BASIC: WINHTTP_CREDS_AUTHSCHEME = 1u32; +pub const WINHTTP_AUTH_SCHEME_DIGEST: u32 = 8u32; +pub const WINHTTP_AUTH_SCHEME_NEGOTIATE: WINHTTP_CREDS_AUTHSCHEME = 16u32; +pub const WINHTTP_AUTH_SCHEME_NTLM: WINHTTP_CREDS_AUTHSCHEME = 2u32; +pub const WINHTTP_AUTH_SCHEME_PASSPORT: u32 = 4u32; +pub const WINHTTP_AUTH_TARGET_PROXY: u32 = 1u32; +pub const WINHTTP_AUTH_TARGET_SERVER: u32 = 0u32; +pub const WINHTTP_AUTOLOGON_SECURITY_LEVEL_DEFAULT: u32 = 0u32; +pub const WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH: u32 = 2u32; +pub const WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW: u32 = 1u32; +pub const WINHTTP_AUTOLOGON_SECURITY_LEVEL_MAX: u32 = 3u32; +pub const WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM: u32 = 0u32; +pub const WINHTTP_AUTOLOGON_SECURITY_LEVEL_PROXY_ONLY: u32 = 3u32; +pub const WINHTTP_AUTOPROXY_ALLOW_AUTOCONFIG: u32 = 256u32; +pub const WINHTTP_AUTOPROXY_ALLOW_CM: u32 = 1024u32; +pub const WINHTTP_AUTOPROXY_ALLOW_STATIC: u32 = 512u32; +pub const WINHTTP_AUTOPROXY_AUTO_DETECT: u32 = 1u32; +pub const WINHTTP_AUTOPROXY_CONFIG_URL: u32 = 2u32; +pub const WINHTTP_AUTOPROXY_HOST_KEEPCASE: u32 = 4u32; +pub const WINHTTP_AUTOPROXY_HOST_LOWERCASE: u32 = 8u32; +pub const WINHTTP_AUTOPROXY_NO_CACHE_CLIENT: u32 = 524288u32; +pub const WINHTTP_AUTOPROXY_NO_CACHE_SVC: u32 = 1048576u32; +pub const WINHTTP_AUTOPROXY_NO_DIRECTACCESS: u32 = 262144u32; +pub const WINHTTP_AUTOPROXY_RUN_INPROCESS: u32 = 65536u32; +pub const WINHTTP_AUTOPROXY_RUN_OUTPROCESS_ONLY: u32 = 131072u32; +pub const WINHTTP_AUTOPROXY_SORT_RESULTS: u32 = 4194304u32; +pub const WINHTTP_AUTOPROXY_USE_INTERFACE_CONFIG: u32 = 2048u32; +pub const WINHTTP_AUTO_DETECT_TYPE_DHCP: u32 = 1u32; +pub const WINHTTP_AUTO_DETECT_TYPE_DNS_A: u32 = 2u32; +pub const WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS: u32 = 4294967295u32; +pub const WINHTTP_CALLBACK_FLAG_DATA_AVAILABLE: u32 = 262144u32; +pub const WINHTTP_CALLBACK_FLAG_DETECTING_PROXY: u32 = 4096u32; +pub const WINHTTP_CALLBACK_FLAG_GETPROXYFORURL_COMPLETE: u32 = 16777216u32; +pub const WINHTTP_CALLBACK_FLAG_GETPROXYSETTINGS_COMPLETE: u32 = 134217728u32; +pub const WINHTTP_CALLBACK_FLAG_HEADERS_AVAILABLE: u32 = 131072u32; +pub const WINHTTP_CALLBACK_FLAG_INTERMEDIATE_RESPONSE: u32 = 32768u32; +pub const WINHTTP_CALLBACK_FLAG_READ_COMPLETE: u32 = 524288u32; +pub const WINHTTP_CALLBACK_FLAG_REDIRECT: u32 = 16384u32; +pub const WINHTTP_CALLBACK_FLAG_REQUEST_ERROR: u32 = 2097152u32; +pub const WINHTTP_CALLBACK_FLAG_SECURE_FAILURE: u32 = 65536u32; +pub const WINHTTP_CALLBACK_FLAG_SENDREQUEST_COMPLETE: u32 = 4194304u32; +pub const WINHTTP_CALLBACK_FLAG_WRITE_COMPLETE: u32 = 1048576u32; +pub const WINHTTP_CALLBACK_STATUS_CLOSE_COMPLETE: u32 = 33554432u32; +pub const WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION: u32 = 256u32; +pub const WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER: u32 = 8u32; +pub const WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER: u32 = 4u32; +pub const WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED: u32 = 512u32; +pub const WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE: u32 = 262144u32; +pub const WINHTTP_CALLBACK_STATUS_DETECTING_PROXY: u32 = 4096u32; +pub const WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID: u32 = 16u32; +pub const WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID: u32 = 32u32; +pub const WINHTTP_CALLBACK_STATUS_FLAG_CERT_REVOKED: u32 = 4u32; +pub const WINHTTP_CALLBACK_STATUS_FLAG_CERT_REV_FAILED: u32 = 1u32; +pub const WINHTTP_CALLBACK_STATUS_FLAG_CERT_WRONG_USAGE: u32 = 64u32; +pub const WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA: u32 = 8u32; +pub const WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CERT: u32 = 2u32; +pub const WINHTTP_CALLBACK_STATUS_FLAG_SECURITY_CHANNEL_ERROR: u32 = 2147483648u32; +pub const WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE: u32 = 16777216u32; +pub const WINHTTP_CALLBACK_STATUS_GETPROXYSETTINGS_COMPLETE: u32 = 134217728u32; +pub const WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING: u32 = 2048u32; +pub const WINHTTP_CALLBACK_STATUS_HANDLE_CREATED: u32 = 1024u32; +pub const WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE: u32 = 131072u32; +pub const WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE: u32 = 32768u32; +pub const WINHTTP_CALLBACK_STATUS_NAME_RESOLVED: u32 = 2u32; +pub const WINHTTP_CALLBACK_STATUS_READ_COMPLETE: u32 = 524288u32; +pub const WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE: u32 = 64u32; +pub const WINHTTP_CALLBACK_STATUS_REDIRECT: u32 = 16384u32; +pub const WINHTTP_CALLBACK_STATUS_REQUEST_ERROR: u32 = 2097152u32; +pub const WINHTTP_CALLBACK_STATUS_REQUEST_SENT: u32 = 32u32; +pub const WINHTTP_CALLBACK_STATUS_RESOLVING_NAME: u32 = 1u32; +pub const WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED: u32 = 128u32; +pub const WINHTTP_CALLBACK_STATUS_SECURE_FAILURE: u32 = 65536u32; +pub const WINHTTP_CALLBACK_STATUS_SENDING_REQUEST: u32 = 16u32; +pub const WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE: u32 = 4194304u32; +pub const WINHTTP_CALLBACK_STATUS_SETTINGS_READ_COMPLETE: u32 = 536870912u32; +pub const WINHTTP_CALLBACK_STATUS_SETTINGS_WRITE_COMPLETE: u32 = 268435456u32; +pub const WINHTTP_CALLBACK_STATUS_SHUTDOWN_COMPLETE: u32 = 67108864u32; +pub const WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE: u32 = 1048576u32; +pub const WINHTTP_CONNECTION_RETRY_CONDITION_408: u32 = 1u32; +pub const WINHTTP_CONNECTION_RETRY_CONDITION_SSL_HANDSHAKE: u32 = 2u32; +pub const WINHTTP_CONNECTION_RETRY_CONDITION_STALE_CONNECTION: u32 = 4u32; +pub const WINHTTP_CONNS_PER_SERVER_UNLIMITED: u32 = 4294967295u32; +pub const WINHTTP_DECOMPRESSION_FLAG_DEFLATE: u32 = 2u32; +pub const WINHTTP_DECOMPRESSION_FLAG_GZIP: u32 = 1u32; +pub const WINHTTP_DISABLE_AUTHENTICATION: u32 = 4u32; +pub const WINHTTP_DISABLE_COOKIES: u32 = 1u32; +pub const WINHTTP_DISABLE_KEEP_ALIVE: u32 = 8u32; +pub const WINHTTP_DISABLE_PASSPORT_AUTH: u32 = 0u32; +pub const WINHTTP_DISABLE_PASSPORT_KEYRING: u32 = 536870912u32; +pub const WINHTTP_DISABLE_REDIRECTS: u32 = 2u32; +pub const WINHTTP_DISABLE_SPN_SERVER_PORT: u32 = 0u32; +pub const WINHTTP_ENABLE_PASSPORT_AUTH: u32 = 268435456u32; +pub const WINHTTP_ENABLE_PASSPORT_KEYRING: u32 = 1073741824u32; +pub const WINHTTP_ENABLE_SPN_SERVER_PORT: u32 = 1u32; +pub const WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION: u32 = 2u32; +pub const WINHTTP_ENABLE_SSL_REVOCATION: u32 = 1u32; +pub const WINHTTP_ERROR_BASE: u32 = 12000u32; +pub const WINHTTP_ERROR_LAST: u32 = 12192u32; +pub const WINHTTP_EXTENDED_HEADER_FLAG_UNICODE: u32 = 1u32; +pub const WINHTTP_FEATURE_ADD_REQUEST_HEADERS_EX: u32 = 46u32; +pub const WINHTTP_FEATURE_BACKGROUND_CONNECTIONS: u32 = 34u32; +pub const WINHTTP_FEATURE_CONNECTION_GUID: u32 = 38u32; +pub const WINHTTP_FEATURE_CONNECTION_STATS_V0: u32 = 3u32; +pub const WINHTTP_FEATURE_CONNECTION_STATS_V1: u32 = 12u32; +pub const WINHTTP_FEATURE_DISABLE_CERT_CHAIN_BUILDING: u32 = 33u32; +pub const WINHTTP_FEATURE_DISABLE_PROXY_AUTH_SCHEMES: u32 = 74u32; +pub const WINHTTP_FEATURE_DISABLE_SECURE_PROTOCOL_FALLBACK: u32 = 6u32; +pub const WINHTTP_FEATURE_DISABLE_STREAM_QUEUE: u32 = 1u32; +pub const WINHTTP_FEATURE_ENABLE_HTTP2_PLUS_CLIENT_CERT: u32 = 23u32; +pub const WINHTTP_FEATURE_EXPIRE_CONNECTION: u32 = 5u32; +pub const WINHTTP_FEATURE_EXTENDED_HEADER_FLAG_UNICODE: u32 = 54u32; +pub const WINHTTP_FEATURE_FAILED_CONNECTION_RETRIES: u32 = 24u32; +pub const WINHTTP_FEATURE_FIRST_AVAILABLE_CONNECTION: u32 = 35u32; +pub const WINHTTP_FEATURE_FLAG_AUTOMATIC_CHUNKING: u32 = 59u32; +pub const WINHTTP_FEATURE_FLAG_SECURE_DEFAULTS: u32 = 53u32; +pub const WINHTTP_FEATURE_FREE_QUERY_CONNECTION_GROUP_RESULT: u32 = 51u32; +pub const WINHTTP_FEATURE_HTTP2_KEEPALIVE: u32 = 26u32; +pub const WINHTTP_FEATURE_HTTP2_PLUS_TRANSFER_ENCODING: u32 = 31u32; +pub const WINHTTP_FEATURE_HTTP2_RECEIVE_WINDOW: u32 = 43u32; +pub const WINHTTP_FEATURE_HTTP3_HANDSHAKE_TIMEOUT: u32 = 70u32; +pub const WINHTTP_FEATURE_HTTP3_INITIAL_RTT: u32 = 71u32; +pub const WINHTTP_FEATURE_HTTP3_KEEPALIVE: u32 = 69u32; +pub const WINHTTP_FEATURE_HTTP3_STREAM_ERROR_CODE: u32 = 72u32; +pub const WINHTTP_FEATURE_HTTP_PROTOCOL_REQUIRED: u32 = 7u32; +pub const WINHTTP_FEATURE_IGNORE_CERT_REVOCATION_OFFLINE: u32 = 17u32; +pub const WINHTTP_FEATURE_IPV6_FAST_FALLBACK: u32 = 2u32; +pub const WINHTTP_FEATURE_IS_FEATURE_SUPPORTED: u32 = 44u32; +pub const WINHTTP_FEATURE_MATCH_CONNECTION_GUID: u32 = 39u32; +pub const WINHTTP_FEATURE_MATCH_CONNECTION_GUID_FLAG_REQUIRE_MARKED_CONNECTION: u32 = 61u32; +pub const WINHTTP_FEATURE_QUERY_CONNECTION_GROUP: u32 = 50u32; +pub const WINHTTP_FEATURE_QUERY_CONNECTION_GROUP_FLAG_INSECURE: u32 = 60u32; +pub const WINHTTP_FEATURE_QUERY_EX_ALL_HEADERS: u32 = 62u32; +pub const WINHTTP_FEATURE_QUERY_FLAG_TRAILERS: u32 = 55u32; +pub const WINHTTP_FEATURE_QUERY_FLAG_WIRE_ENCODING: u32 = 56u32; +pub const WINHTTP_FEATURE_QUERY_HEADERS_EX: u32 = 49u32; +pub const WINHTTP_FEATURE_QUIC_STATS: u32 = 66u32; +pub const WINHTTP_FEATURE_READ_DATA_EX: u32 = 48u32; +pub const WINHTTP_FEATURE_READ_DATA_EX_FLAG_FILL_BUFFER: u32 = 63u32; +pub const WINHTTP_FEATURE_REFERER_TOKEN_BINDING_HOSTNAME: u32 = 30u32; +pub const WINHTTP_FEATURE_REQUEST_ANNOTATION: u32 = 73u32; +pub const WINHTTP_FEATURE_REQUEST_STATS: u32 = 8u32; +pub const WINHTTP_FEATURE_REQUEST_TIMES: u32 = 4u32; +pub const WINHTTP_FEATURE_REQUIRE_STREAM_END: u32 = 22u32; +pub const WINHTTP_FEATURE_RESOLUTION_HOSTNAME: u32 = 27u32; +pub const WINHTTP_FEATURE_RESOLVER_CACHE_CONFIG: u32 = 32u32; +pub const WINHTTP_FEATURE_RESOLVER_CACHE_CONFIG_FLAG_BYPASS_CACHE: u32 = 58u32; +pub const WINHTTP_FEATURE_RESOLVER_CACHE_CONFIG_FLAG_CONN_USE_TTL: u32 = 65u32; +pub const WINHTTP_FEATURE_RESOLVER_CACHE_CONFIG_FLAG_SOFT_LIMIT: u32 = 57u32; +pub const WINHTTP_FEATURE_RESOLVER_CACHE_CONFIG_FLAG_USE_DNS_TTL: u32 = 64u32; +pub const WINHTTP_FEATURE_REVERT_IMPERSONATION_SERVER_CERT: u32 = 75u32; +pub const WINHTTP_FEATURE_SECURITY_FLAG_IGNORE_ALL_CERT_ERRORS: u32 = 52u32; +pub const WINHTTP_FEATURE_SECURITY_INFO: u32 = 13u32; +pub const WINHTTP_FEATURE_SERVER_CERT_CHAIN_CONTEXT: u32 = 9u32; +pub const WINHTTP_FEATURE_SET_PROXY_SETINGS_PER_USER: u32 = 47u32; +pub const WINHTTP_FEATURE_SET_TOKEN_BINDING: u32 = 28u32; +pub const WINHTTP_FEATURE_STREAM_ERROR_CODE: u32 = 21u32; +pub const WINHTTP_FEATURE_TCP_FAST_OPEN: u32 = 15u32; +pub const WINHTTP_FEATURE_TCP_KEEPALIVE: u32 = 14u32; +pub const WINHTTP_FEATURE_TCP_PRIORITY_STATUS: u32 = 37u32; +pub const WINHTTP_FEATURE_TLS_FALSE_START: u32 = 16u32; +pub const WINHTTP_FEATURE_TLS_PROTOCOL_INSECURE_FALLBACK: u32 = 20u32; +pub const WINHTTP_FEATURE_TOKEN_BINDING_PUBLIC_KEY: u32 = 29u32; +pub const WINHTTP_FLAG_ASYNC: u32 = 268435456u32; +pub const WINHTTP_FLAG_AUTOMATIC_CHUNKING: u32 = 512u32; +pub const WINHTTP_FLAG_BYPASS_PROXY_CACHE: WINHTTP_OPEN_REQUEST_FLAGS = 256u32; +pub const WINHTTP_FLAG_ESCAPE_DISABLE: WINHTTP_OPEN_REQUEST_FLAGS = 64u32; +pub const WINHTTP_FLAG_ESCAPE_DISABLE_QUERY: WINHTTP_OPEN_REQUEST_FLAGS = 128u32; +pub const WINHTTP_FLAG_ESCAPE_PERCENT: WINHTTP_OPEN_REQUEST_FLAGS = 4u32; +pub const WINHTTP_FLAG_NULL_CODEPAGE: WINHTTP_OPEN_REQUEST_FLAGS = 8u32; +pub const WINHTTP_FLAG_REFRESH: WINHTTP_OPEN_REQUEST_FLAGS = 256u32; +pub const WINHTTP_FLAG_SECURE: WINHTTP_OPEN_REQUEST_FLAGS = 8388608u32; +pub const WINHTTP_FLAG_SECURE_DEFAULTS: u32 = 805306368u32; +pub const WINHTTP_FLAG_SECURE_PROTOCOL_SSL2: u32 = 8u32; +pub const WINHTTP_FLAG_SECURE_PROTOCOL_SSL3: u32 = 32u32; +pub const WINHTTP_FLAG_SECURE_PROTOCOL_TLS1: u32 = 128u32; +pub const WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1: u32 = 512u32; +pub const WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2: u32 = 2048u32; +pub const WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3: u32 = 8192u32; +pub const WINHTTP_HANDLE_TYPE_CONNECT: u32 = 2u32; +pub const WINHTTP_HANDLE_TYPE_PROXY_RESOLVER: u32 = 4u32; +pub const WINHTTP_HANDLE_TYPE_REQUEST: u32 = 3u32; +pub const WINHTTP_HANDLE_TYPE_SESSION: u32 = 1u32; +pub const WINHTTP_HANDLE_TYPE_WEBSOCKET: u32 = 5u32; +pub const WINHTTP_IGNORE_REQUEST_TOTAL_LENGTH: u32 = 0u32; +pub const WINHTTP_INTERNET_SCHEME_FTP: WINHTTP_INTERNET_SCHEME = 3i32; +pub const WINHTTP_INTERNET_SCHEME_HTTP: WINHTTP_INTERNET_SCHEME = 1i32; +pub const WINHTTP_INTERNET_SCHEME_HTTPS: WINHTTP_INTERNET_SCHEME = 2i32; +pub const WINHTTP_INTERNET_SCHEME_SOCKS: WINHTTP_INTERNET_SCHEME = 4i32; +pub const WINHTTP_LAST_OPTION: u32 = 196u32; +pub const WINHTTP_MATCH_CONNECTION_GUID_FLAGS_MASK: u32 = 1u32; +pub const WINHTTP_MATCH_CONNECTION_GUID_FLAG_REQUIRE_MARKED_CONNECTION: u32 = 1u32; +pub const WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS: u32 = 111u32; +pub const WINHTTP_OPTION_AUTOLOGON_POLICY: u32 = 77u32; +pub const WINHTTP_OPTION_BACKGROUND_CONNECTIONS: u32 = 172u32; +pub const WINHTTP_OPTION_CALLBACK: u32 = 1u32; +pub const WINHTTP_OPTION_CLIENT_CERT_CONTEXT: u32 = 47u32; +pub const WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST: u32 = 94u32; +pub const WINHTTP_OPTION_CODEPAGE: u32 = 68u32; +pub const WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH: u32 = 83u32; +pub const WINHTTP_OPTION_CONNECTION_FILTER: u32 = 131u32; +pub const WINHTTP_OPTION_CONNECTION_GUID: u32 = 178u32; +pub const WINHTTP_OPTION_CONNECTION_INFO: u32 = 93u32; +pub const WINHTTP_OPTION_CONNECTION_STATS_V0: u32 = 141u32; +pub const WINHTTP_OPTION_CONNECTION_STATS_V1: u32 = 150u32; +pub const WINHTTP_OPTION_CONNECT_RETRIES: u32 = 4u32; +pub const WINHTTP_OPTION_CONNECT_TIMEOUT: u32 = 3u32; +pub const WINHTTP_OPTION_CONTEXT_VALUE: u32 = 45u32; +pub const WINHTTP_OPTION_DECOMPRESSION: u32 = 118u32; +pub const WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING: u32 = 171u32; +pub const WINHTTP_OPTION_DISABLE_FEATURE: u32 = 63u32; +pub const WINHTTP_OPTION_DISABLE_GLOBAL_POOLING: u32 = 195u32; +pub const WINHTTP_OPTION_DISABLE_PROXY_AUTH_SCHEMES: u32 = 193u32; +pub const WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK: u32 = 144u32; +pub const WINHTTP_OPTION_DISABLE_STREAM_QUEUE: u32 = 139u32; +pub const WINHTTP_OPTION_ENABLETRACING: u32 = 85u32; +pub const WINHTTP_OPTION_ENABLE_FEATURE: u32 = 79u32; +pub const WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT: u32 = 161u32; +pub const WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL: u32 = 133u32; +pub const WINHTTP_OPTION_ENCODE_EXTRA: u32 = 138u32; +pub const WINHTTP_OPTION_EXPIRE_CONNECTION: u32 = 143u32; +pub const WINHTTP_OPTION_EXTENDED_ERROR: u32 = 24u32; +pub const WINHTTP_OPTION_FAILED_CONNECTION_RETRIES: u32 = 162u32; +pub const WINHTTP_OPTION_FEATURE_SUPPORTED: u32 = 184u32; +pub const WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION: u32 = 173u32; +pub const WINHTTP_OPTION_GLOBAL_PROXY_CREDS: u32 = 97u32; +pub const WINHTTP_OPTION_GLOBAL_SERVER_CREDS: u32 = 98u32; +pub const WINHTTP_OPTION_HANDLE_TYPE: u32 = 9u32; +pub const WINHTTP_OPTION_HTTP2_KEEPALIVE: u32 = 164u32; +pub const WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING: u32 = 169u32; +pub const WINHTTP_OPTION_HTTP2_RECEIVE_WINDOW: u32 = 183u32; +pub const WINHTTP_OPTION_HTTP3_HANDSHAKE_TIMEOUT: u32 = 189u32; +pub const WINHTTP_OPTION_HTTP3_INITIAL_RTT: u32 = 190u32; +pub const WINHTTP_OPTION_HTTP3_KEEPALIVE: u32 = 188u32; +pub const WINHTTP_OPTION_HTTP3_STREAM_ERROR_CODE: u32 = 191u32; +pub const WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED: u32 = 145u32; +pub const WINHTTP_OPTION_HTTP_PROTOCOL_USED: u32 = 134u32; +pub const WINHTTP_OPTION_HTTP_VERSION: u32 = 59u32; +pub const WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE: u32 = 155u32; +pub const WINHTTP_OPTION_IPV6_FAST_FALLBACK: u32 = 140u32; +pub const WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE: u32 = 104u32; +pub const WINHTTP_OPTION_KDC_PROXY_SETTINGS: u32 = 136u32; +pub const WINHTTP_OPTION_MATCH_CONNECTION_GUID: u32 = 179u32; +pub const WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER: u32 = 74u32; +pub const WINHTTP_OPTION_MAX_CONNS_PER_SERVER: u32 = 73u32; +pub const WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS: u32 = 89u32; +pub const WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE: u32 = 90u32; +pub const WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE: u32 = 92u32; +pub const WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE: u32 = 91u32; +pub const WINHTTP_OPTION_NETWORK_INTERFACE_AFFINITY: u32 = 105u32; +pub const WINHTTP_OPTION_PARENT_HANDLE: u32 = 21u32; +pub const WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT: u32 = 81u32; +pub const WINHTTP_OPTION_PASSPORT_COBRANDING_URL: u32 = 82u32; +pub const WINHTTP_OPTION_PASSPORT_RETURN_URL: u32 = 87u32; +pub const WINHTTP_OPTION_PASSPORT_SIGN_OUT: u32 = 86u32; +pub const WINHTTP_OPTION_PASSWORD: u32 = 4097u32; +pub const WINHTTP_OPTION_PROXY: u32 = 38u32; +pub const WINHTTP_OPTION_PROXY_DISABLE_SERVICE_CALLS: u32 = 137u32; +pub const WINHTTP_OPTION_PROXY_PASSWORD: u32 = 4099u32; +pub const WINHTTP_OPTION_PROXY_RESULT_ENTRY: u32 = 39u32; +pub const WINHTTP_OPTION_PROXY_SPN_USED: u32 = 107u32; +pub const WINHTTP_OPTION_PROXY_USERNAME: u32 = 4098u32; +pub const WINHTTP_OPTION_QUIC_STATS: u32 = 185u32; +pub const WINHTTP_OPTION_READ_BUFFER_SIZE: u32 = 12u32; +pub const WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE: u32 = 103u32; +pub const WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT: u32 = 7u32; +pub const WINHTTP_OPTION_RECEIVE_TIMEOUT: u32 = 6u32; +pub const WINHTTP_OPTION_REDIRECT_POLICY: u32 = 88u32; +pub const WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS: u32 = 2u32; +pub const WINHTTP_OPTION_REDIRECT_POLICY_DEFAULT: u32 = 1u32; +pub const WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP: u32 = 1u32; +pub const WINHTTP_OPTION_REDIRECT_POLICY_LAST: u32 = 2u32; +pub const WINHTTP_OPTION_REDIRECT_POLICY_NEVER: u32 = 0u32; +pub const WINHTTP_OPTION_REFERER_TOKEN_BINDING_HOSTNAME: u32 = 168u32; +pub const WINHTTP_OPTION_REJECT_USERPWD_IN_URL: u32 = 100u32; +pub const WINHTTP_OPTION_REQUEST_ANNOTATION: u32 = 192u32; +pub const WINHTTP_OPTION_REQUEST_ANNOTATION_MAX_LENGTH: u32 = 64000u32; +pub const WINHTTP_OPTION_REQUEST_PRIORITY: u32 = 58u32; +pub const WINHTTP_OPTION_REQUEST_STATS: u32 = 146u32; +pub const WINHTTP_OPTION_REQUEST_TIMES: u32 = 142u32; +pub const WINHTTP_OPTION_REQUIRE_STREAM_END: u32 = 160u32; +pub const WINHTTP_OPTION_RESOLUTION_HOSTNAME: u32 = 165u32; +pub const WINHTTP_OPTION_RESOLVER_CACHE_CONFIG: u32 = 170u32; +pub const WINHTTP_OPTION_RESOLVE_TIMEOUT: u32 = 2u32; +pub const WINHTTP_OPTION_REVERT_IMPERSONATION_SERVER_CERT: u32 = 194u32; +pub const WINHTTP_OPTION_SECURE_PROTOCOLS: u32 = 84u32; +pub const WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT: u32 = 32u32; +pub const WINHTTP_OPTION_SECURITY_FLAGS: u32 = 31u32; +pub const WINHTTP_OPTION_SECURITY_INFO: u32 = 151u32; +pub const WINHTTP_OPTION_SECURITY_KEY_BITNESS: u32 = 36u32; +pub const WINHTTP_OPTION_SEND_TIMEOUT: u32 = 5u32; +pub const WINHTTP_OPTION_SERVER_CBT: u32 = 108u32; +pub const WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT: u32 = 147u32; +pub const WINHTTP_OPTION_SERVER_CERT_CONTEXT: u32 = 78u32; +pub const WINHTTP_OPTION_SERVER_SPN_USED: u32 = 106u32; +pub const WINHTTP_OPTION_SET_TOKEN_BINDING: u32 = 166u32; +pub const WINHTTP_OPTION_SPN: u32 = 96u32; +pub const WINHTTP_OPTION_SPN_MASK: u32 = 1u32; +pub const WINHTTP_OPTION_STREAM_ERROR_CODE: u32 = 159u32; +pub const WINHTTP_OPTION_TCP_FAST_OPEN: u32 = 153u32; +pub const WINHTTP_OPTION_TCP_KEEPALIVE: u32 = 152u32; +pub const WINHTTP_OPTION_TCP_PRIORITY_HINT: u32 = 128u32; +pub const WINHTTP_OPTION_TCP_PRIORITY_STATUS: u32 = 177u32; +pub const WINHTTP_OPTION_TLS_FALSE_START: u32 = 154u32; +pub const WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK: u32 = 158u32; +pub const WINHTTP_OPTION_TOKEN_BINDING_PUBLIC_KEY: u32 = 167u32; +pub const WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT: u32 = 99u32; +pub const WINHTTP_OPTION_UNSAFE_HEADER_PARSING: u32 = 110u32; +pub const WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET: u32 = 114u32; +pub const WINHTTP_OPTION_URL: u32 = 34u32; +pub const WINHTTP_OPTION_USERNAME: u32 = 4096u32; +pub const WINHTTP_OPTION_USER_AGENT: u32 = 41u32; +pub const WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS: u32 = 101u32; +pub const WINHTTP_OPTION_USE_SESSION_SCH_CRED: u32 = 196u32; +pub const WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT: u32 = 115u32; +pub const WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL: u32 = 116u32; +pub const WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE: u32 = 122u32; +pub const WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE: u32 = 123u32; +pub const WINHTTP_OPTION_WORKER_THREAD_COUNT: u32 = 80u32; +pub const WINHTTP_OPTION_WRITE_BUFFER_SIZE: u32 = 13u32; +pub const WINHTTP_PROTOCOL_FLAG_HTTP2: u32 = 1u32; +pub const WINHTTP_PROTOCOL_FLAG_HTTP3: u32 = 2u32; +pub const WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE: u32 = 256u32; +pub const WINHTTP_PROXY_DISABLE_SCHEME_BASIC: u32 = 1u32; +pub const WINHTTP_PROXY_DISABLE_SCHEME_DIGEST: u32 = 2u32; +pub const WINHTTP_PROXY_DISABLE_SCHEME_KERBEROS: u32 = 8u32; +pub const WINHTTP_PROXY_DISABLE_SCHEME_NEGOTIATE: u32 = 16u32; +pub const WINHTTP_PROXY_DISABLE_SCHEME_NTLM: u32 = 4u32; +pub const WINHTTP_PROXY_NOTIFY_CHANGE: u32 = 1u32; +pub const WINHTTP_PROXY_TYPE_AUTO_DETECT: u32 = 8u32; +pub const WINHTTP_PROXY_TYPE_AUTO_PROXY_URL: u32 = 4u32; +pub const WINHTTP_PROXY_TYPE_DIRECT: u32 = 1u32; +pub const WINHTTP_PROXY_TYPE_PROXY: u32 = 2u32; +pub const WINHTTP_QUERY_ACCEPT: u32 = 24u32; +pub const WINHTTP_QUERY_ACCEPT_CHARSET: u32 = 25u32; +pub const WINHTTP_QUERY_ACCEPT_ENCODING: u32 = 26u32; +pub const WINHTTP_QUERY_ACCEPT_LANGUAGE: u32 = 27u32; +pub const WINHTTP_QUERY_ACCEPT_RANGES: u32 = 42u32; +pub const WINHTTP_QUERY_AGE: u32 = 48u32; +pub const WINHTTP_QUERY_ALLOW: u32 = 7u32; +pub const WINHTTP_QUERY_AUTHENTICATION_INFO: u32 = 76u32; +pub const WINHTTP_QUERY_AUTHORIZATION: u32 = 28u32; +pub const WINHTTP_QUERY_CACHE_CONTROL: u32 = 49u32; +pub const WINHTTP_QUERY_CONNECTION: u32 = 23u32; +pub const WINHTTP_QUERY_CONTENT_BASE: u32 = 50u32; +pub const WINHTTP_QUERY_CONTENT_DESCRIPTION: u32 = 4u32; +pub const WINHTTP_QUERY_CONTENT_DISPOSITION: u32 = 47u32; +pub const WINHTTP_QUERY_CONTENT_ENCODING: u32 = 29u32; +pub const WINHTTP_QUERY_CONTENT_ID: u32 = 3u32; +pub const WINHTTP_QUERY_CONTENT_LANGUAGE: u32 = 6u32; +pub const WINHTTP_QUERY_CONTENT_LENGTH: u32 = 5u32; +pub const WINHTTP_QUERY_CONTENT_LOCATION: u32 = 51u32; +pub const WINHTTP_QUERY_CONTENT_MD5: u32 = 52u32; +pub const WINHTTP_QUERY_CONTENT_RANGE: u32 = 53u32; +pub const WINHTTP_QUERY_CONTENT_TRANSFER_ENCODING: u32 = 2u32; +pub const WINHTTP_QUERY_CONTENT_TYPE: u32 = 1u32; +pub const WINHTTP_QUERY_COOKIE: u32 = 44u32; +pub const WINHTTP_QUERY_COST: u32 = 15u32; +pub const WINHTTP_QUERY_CUSTOM: u32 = 65535u32; +pub const WINHTTP_QUERY_DATE: u32 = 9u32; +pub const WINHTTP_QUERY_DERIVED_FROM: u32 = 14u32; +pub const WINHTTP_QUERY_ETAG: u32 = 54u32; +pub const WINHTTP_QUERY_EXPECT: u32 = 68u32; +pub const WINHTTP_QUERY_EXPIRES: u32 = 10u32; +pub const WINHTTP_QUERY_EX_ALL_HEADERS: u32 = 21u32; +pub const WINHTTP_QUERY_FLAG_NUMBER: u32 = 536870912u32; +pub const WINHTTP_QUERY_FLAG_NUMBER64: u32 = 134217728u32; +pub const WINHTTP_QUERY_FLAG_REQUEST_HEADERS: u32 = 2147483648u32; +pub const WINHTTP_QUERY_FLAG_SYSTEMTIME: u32 = 1073741824u32; +pub const WINHTTP_QUERY_FLAG_TRAILERS: u32 = 33554432u32; +pub const WINHTTP_QUERY_FLAG_WIRE_ENCODING: u32 = 16777216u32; +pub const WINHTTP_QUERY_FORWARDED: u32 = 30u32; +pub const WINHTTP_QUERY_FROM: u32 = 31u32; +pub const WINHTTP_QUERY_HOST: u32 = 55u32; +pub const WINHTTP_QUERY_IF_MATCH: u32 = 56u32; +pub const WINHTTP_QUERY_IF_MODIFIED_SINCE: u32 = 32u32; +pub const WINHTTP_QUERY_IF_NONE_MATCH: u32 = 57u32; +pub const WINHTTP_QUERY_IF_RANGE: u32 = 58u32; +pub const WINHTTP_QUERY_IF_UNMODIFIED_SINCE: u32 = 59u32; +pub const WINHTTP_QUERY_LAST_MODIFIED: u32 = 11u32; +pub const WINHTTP_QUERY_LINK: u32 = 16u32; +pub const WINHTTP_QUERY_LOCATION: u32 = 33u32; +pub const WINHTTP_QUERY_MAX: u32 = 78u32; +pub const WINHTTP_QUERY_MAX_FORWARDS: u32 = 60u32; +pub const WINHTTP_QUERY_MESSAGE_ID: u32 = 12u32; +pub const WINHTTP_QUERY_MIME_VERSION: u32 = 0u32; +pub const WINHTTP_QUERY_ORIG_URI: u32 = 34u32; +pub const WINHTTP_QUERY_PASSPORT_CONFIG: u32 = 78u32; +pub const WINHTTP_QUERY_PASSPORT_URLS: u32 = 77u32; +pub const WINHTTP_QUERY_PRAGMA: u32 = 17u32; +pub const WINHTTP_QUERY_PROXY_AUTHENTICATE: u32 = 41u32; +pub const WINHTTP_QUERY_PROXY_AUTHORIZATION: u32 = 61u32; +pub const WINHTTP_QUERY_PROXY_CONNECTION: u32 = 69u32; +pub const WINHTTP_QUERY_PROXY_SUPPORT: u32 = 75u32; +pub const WINHTTP_QUERY_PUBLIC: u32 = 8u32; +pub const WINHTTP_QUERY_RANGE: u32 = 62u32; +pub const WINHTTP_QUERY_RAW_HEADERS: u32 = 21u32; +pub const WINHTTP_QUERY_RAW_HEADERS_CRLF: u32 = 22u32; +pub const WINHTTP_QUERY_REFERER: u32 = 35u32; +pub const WINHTTP_QUERY_REFRESH: u32 = 46u32; +pub const WINHTTP_QUERY_REQUEST_METHOD: u32 = 45u32; +pub const WINHTTP_QUERY_RETRY_AFTER: u32 = 36u32; +pub const WINHTTP_QUERY_SERVER: u32 = 37u32; +pub const WINHTTP_QUERY_SET_COOKIE: u32 = 43u32; +pub const WINHTTP_QUERY_STATUS_CODE: u32 = 19u32; +pub const WINHTTP_QUERY_STATUS_TEXT: u32 = 20u32; +pub const WINHTTP_QUERY_TITLE: u32 = 38u32; +pub const WINHTTP_QUERY_TRANSFER_ENCODING: u32 = 63u32; +pub const WINHTTP_QUERY_UNLESS_MODIFIED_SINCE: u32 = 70u32; +pub const WINHTTP_QUERY_UPGRADE: u32 = 64u32; +pub const WINHTTP_QUERY_URI: u32 = 13u32; +pub const WINHTTP_QUERY_USER_AGENT: u32 = 39u32; +pub const WINHTTP_QUERY_VARY: u32 = 65u32; +pub const WINHTTP_QUERY_VERSION: u32 = 18u32; +pub const WINHTTP_QUERY_VIA: u32 = 66u32; +pub const WINHTTP_QUERY_WARNING: u32 = 67u32; +pub const WINHTTP_QUERY_WWW_AUTHENTICATE: u32 = 40u32; +pub const WINHTTP_REQUEST_STAT_FLAG_FIRST_REQUEST: u32 = 32u32; +pub const WINHTTP_REQUEST_STAT_FLAG_PROXY_TLS_FALSE_START: u32 = 16u32; +pub const WINHTTP_REQUEST_STAT_FLAG_PROXY_TLS_SESSION_RESUMPTION: u32 = 8u32; +pub const WINHTTP_REQUEST_STAT_FLAG_TCP_FAST_OPEN: u32 = 1u32; +pub const WINHTTP_REQUEST_STAT_FLAG_TLS_FALSE_START: u32 = 4u32; +pub const WINHTTP_REQUEST_STAT_FLAG_TLS_SESSION_RESUMPTION: u32 = 2u32; +pub const WINHTTP_RESET_ALL: u32 = 65535u32; +pub const WINHTTP_RESET_DISCARD_RESOLVERS: u32 = 262144u32; +pub const WINHTTP_RESET_NOTIFY_NETWORK_CHANGED: u32 = 65536u32; +pub const WINHTTP_RESET_OUT_OF_PROC: u32 = 131072u32; +pub const WINHTTP_RESET_SCRIPT_CACHE: u32 = 8u32; +pub const WINHTTP_RESET_STATE: u32 = 1u32; +pub const WINHTTP_RESET_SWPAD_ALL: u32 = 4u32; +pub const WINHTTP_RESET_SWPAD_CURRENT_NETWORK: u32 = 2u32; +pub const WINHTTP_RESOLVER_CACHE_CONFIG_FLAG_BYPASS_CACHE: u32 = 2u32; +pub const WINHTTP_RESOLVER_CACHE_CONFIG_FLAG_CONN_USE_TTL: u32 = 8u32; +pub const WINHTTP_RESOLVER_CACHE_CONFIG_FLAG_SOFT_LIMIT: u32 = 1u32; +pub const WINHTTP_RESOLVER_CACHE_CONFIG_FLAG_USE_DNS_TTL: u32 = 4u32; +pub const WINHTTP_TIME_FORMAT_BUFSIZE: u32 = 62u32; +pub const WINHTTP_WEB_SOCKET_ABORTED_CLOSE_STATUS: WINHTTP_WEB_SOCKET_CLOSE_STATUS = 1006i32; +pub const WINHTTP_WEB_SOCKET_BINARY_FRAGMENT_BUFFER_TYPE: WINHTTP_WEB_SOCKET_BUFFER_TYPE = 1i32; +pub const WINHTTP_WEB_SOCKET_BINARY_MESSAGE_BUFFER_TYPE: WINHTTP_WEB_SOCKET_BUFFER_TYPE = 0i32; +pub const WINHTTP_WEB_SOCKET_CLOSE_BUFFER_TYPE: WINHTTP_WEB_SOCKET_BUFFER_TYPE = 4i32; +pub const WINHTTP_WEB_SOCKET_CLOSE_OPERATION: WINHTTP_WEB_SOCKET_OPERATION = 2i32; +pub const WINHTTP_WEB_SOCKET_EMPTY_CLOSE_STATUS: WINHTTP_WEB_SOCKET_CLOSE_STATUS = 1005i32; +pub const WINHTTP_WEB_SOCKET_ENDPOINT_TERMINATED_CLOSE_STATUS: WINHTTP_WEB_SOCKET_CLOSE_STATUS = 1001i32; +pub const WINHTTP_WEB_SOCKET_INVALID_DATA_TYPE_CLOSE_STATUS: WINHTTP_WEB_SOCKET_CLOSE_STATUS = 1003i32; +pub const WINHTTP_WEB_SOCKET_INVALID_PAYLOAD_CLOSE_STATUS: WINHTTP_WEB_SOCKET_CLOSE_STATUS = 1007i32; +pub const WINHTTP_WEB_SOCKET_MAX_CLOSE_REASON_LENGTH: u32 = 123u32; +pub const WINHTTP_WEB_SOCKET_MESSAGE_TOO_BIG_CLOSE_STATUS: WINHTTP_WEB_SOCKET_CLOSE_STATUS = 1009i32; +pub const WINHTTP_WEB_SOCKET_MIN_KEEPALIVE_VALUE: u32 = 15000u32; +pub const WINHTTP_WEB_SOCKET_POLICY_VIOLATION_CLOSE_STATUS: WINHTTP_WEB_SOCKET_CLOSE_STATUS = 1008i32; +pub const WINHTTP_WEB_SOCKET_PROTOCOL_ERROR_CLOSE_STATUS: WINHTTP_WEB_SOCKET_CLOSE_STATUS = 1002i32; +pub const WINHTTP_WEB_SOCKET_RECEIVE_OPERATION: WINHTTP_WEB_SOCKET_OPERATION = 1i32; +pub const WINHTTP_WEB_SOCKET_SECURE_HANDSHAKE_ERROR_CLOSE_STATUS: WINHTTP_WEB_SOCKET_CLOSE_STATUS = 1015i32; +pub const WINHTTP_WEB_SOCKET_SEND_OPERATION: WINHTTP_WEB_SOCKET_OPERATION = 0i32; +pub const WINHTTP_WEB_SOCKET_SERVER_ERROR_CLOSE_STATUS: WINHTTP_WEB_SOCKET_CLOSE_STATUS = 1011i32; +pub const WINHTTP_WEB_SOCKET_SHUTDOWN_OPERATION: WINHTTP_WEB_SOCKET_OPERATION = 3i32; +pub const WINHTTP_WEB_SOCKET_SUCCESS_CLOSE_STATUS: WINHTTP_WEB_SOCKET_CLOSE_STATUS = 1000i32; +pub const WINHTTP_WEB_SOCKET_UNSUPPORTED_EXTENSIONS_CLOSE_STATUS: WINHTTP_WEB_SOCKET_CLOSE_STATUS = 1010i32; +pub const WINHTTP_WEB_SOCKET_UTF8_FRAGMENT_BUFFER_TYPE: WINHTTP_WEB_SOCKET_BUFFER_TYPE = 3i32; +pub const WINHTTP_WEB_SOCKET_UTF8_MESSAGE_BUFFER_TYPE: WINHTTP_WEB_SOCKET_BUFFER_TYPE = 2i32; +pub const WinHttpConnectFailureCount: WINHTTP_REQUEST_STAT_ENTRY = 0i32; +pub const WinHttpConnectionAcquireEnd: WINHTTP_REQUEST_TIME_ENTRY = 4i32; +pub const WinHttpConnectionAcquireStart: WINHTTP_REQUEST_TIME_ENTRY = 2i32; +pub const WinHttpConnectionAcquireWaitEnd: WINHTTP_REQUEST_TIME_ENTRY = 3i32; +pub const WinHttpConnectionEstablishmentEnd: WINHTTP_REQUEST_TIME_ENTRY = 8i32; +pub const WinHttpConnectionEstablishmentStart: WINHTTP_REQUEST_TIME_ENTRY = 7i32; +pub const WinHttpNameResolutionEnd: WINHTTP_REQUEST_TIME_ENTRY = 6i32; +pub const WinHttpNameResolutionStart: WINHTTP_REQUEST_TIME_ENTRY = 5i32; +pub const WinHttpProxyDetectionEnd: WINHTTP_REQUEST_TIME_ENTRY = 1i32; +pub const WinHttpProxyDetectionStart: WINHTTP_REQUEST_TIME_ENTRY = 0i32; +pub const WinHttpProxyFailureCount: WINHTTP_REQUEST_STAT_ENTRY = 1i32; +pub const WinHttpProxySettingsTypeUnknown: WINHTTP_PROXY_SETTINGS_TYPE = 0i32; +pub const WinHttpProxySettingsTypeWsa: WINHTTP_PROXY_SETTINGS_TYPE = 2i32; +pub const WinHttpProxySettingsTypeWsl: WINHTTP_PROXY_SETTINGS_TYPE = 1i32; +pub const WinHttpProxyTlsHandshakeClientLeg1End: WINHTTP_REQUEST_TIME_ENTRY = 31i32; +pub const WinHttpProxyTlsHandshakeClientLeg1Size: WINHTTP_REQUEST_STAT_ENTRY = 12i32; +pub const WinHttpProxyTlsHandshakeClientLeg1Start: WINHTTP_REQUEST_TIME_ENTRY = 30i32; +pub const WinHttpProxyTlsHandshakeClientLeg2End: WINHTTP_REQUEST_TIME_ENTRY = 33i32; +pub const WinHttpProxyTlsHandshakeClientLeg2Size: WINHTTP_REQUEST_STAT_ENTRY = 14i32; +pub const WinHttpProxyTlsHandshakeClientLeg2Start: WINHTTP_REQUEST_TIME_ENTRY = 32i32; +pub const WinHttpProxyTlsHandshakeClientLeg3End: WINHTTP_REQUEST_TIME_ENTRY = 35i32; +pub const WinHttpProxyTlsHandshakeClientLeg3Start: WINHTTP_REQUEST_TIME_ENTRY = 34i32; +pub const WinHttpProxyTlsHandshakeServerLeg1Size: WINHTTP_REQUEST_STAT_ENTRY = 13i32; +pub const WinHttpProxyTlsHandshakeServerLeg2Size: WINHTTP_REQUEST_STAT_ENTRY = 15i32; +pub const WinHttpProxyTunnelEnd: WINHTTP_REQUEST_TIME_ENTRY = 29i32; +pub const WinHttpProxyTunnelStart: WINHTTP_REQUEST_TIME_ENTRY = 28i32; +pub const WinHttpReceiveResponseBodyDecompressionDelta: WINHTTP_REQUEST_TIME_ENTRY = 26i32; +pub const WinHttpReceiveResponseEnd: WINHTTP_REQUEST_TIME_ENTRY = 27i32; +pub const WinHttpReceiveResponseHeadersDecompressionEnd: WINHTTP_REQUEST_TIME_ENTRY = 24i32; +pub const WinHttpReceiveResponseHeadersDecompressionStart: WINHTTP_REQUEST_TIME_ENTRY = 23i32; +pub const WinHttpReceiveResponseHeadersEnd: WINHTTP_REQUEST_TIME_ENTRY = 25i32; +pub const WinHttpReceiveResponseStart: WINHTTP_REQUEST_TIME_ENTRY = 22i32; +pub const WinHttpRequest: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2087c2f4_2cef_4953_a8ab_66779b670495); +pub const WinHttpRequestHeadersCompressedSize: WINHTTP_REQUEST_STAT_ENTRY = 7i32; +pub const WinHttpRequestHeadersSize: WINHTTP_REQUEST_STAT_ENTRY = 6i32; +pub const WinHttpRequestOption_EnableCertificateRevocationCheck: WinHttpRequestOption = 18i32; +pub const WinHttpRequestOption_EnableHttp1_1: WinHttpRequestOption = 17i32; +pub const WinHttpRequestOption_EnableHttpsToHttpRedirects: WinHttpRequestOption = 12i32; +pub const WinHttpRequestOption_EnablePassportAuthentication: WinHttpRequestOption = 13i32; +pub const WinHttpRequestOption_EnableRedirects: WinHttpRequestOption = 6i32; +pub const WinHttpRequestOption_EnableTracing: WinHttpRequestOption = 10i32; +pub const WinHttpRequestOption_EscapePercentInURL: WinHttpRequestOption = 3i32; +pub const WinHttpRequestOption_MaxAutomaticRedirects: WinHttpRequestOption = 14i32; +pub const WinHttpRequestOption_MaxResponseDrainSize: WinHttpRequestOption = 16i32; +pub const WinHttpRequestOption_MaxResponseHeaderSize: WinHttpRequestOption = 15i32; +pub const WinHttpRequestOption_RejectUserpwd: WinHttpRequestOption = 19i32; +pub const WinHttpRequestOption_RevertImpersonationOverSsl: WinHttpRequestOption = 11i32; +pub const WinHttpRequestOption_SecureProtocols: WinHttpRequestOption = 9i32; +pub const WinHttpRequestOption_SelectCertificate: WinHttpRequestOption = 5i32; +pub const WinHttpRequestOption_SslErrorIgnoreFlags: WinHttpRequestOption = 4i32; +pub const WinHttpRequestOption_URL: WinHttpRequestOption = 1i32; +pub const WinHttpRequestOption_URLCodePage: WinHttpRequestOption = 2i32; +pub const WinHttpRequestOption_UrlEscapeDisable: WinHttpRequestOption = 7i32; +pub const WinHttpRequestOption_UrlEscapeDisableQuery: WinHttpRequestOption = 8i32; +pub const WinHttpRequestOption_UserAgentString: WinHttpRequestOption = 0i32; +pub const WinHttpRequestStatLast: WINHTTP_REQUEST_STAT_ENTRY = 16i32; +pub const WinHttpRequestStatMax: WINHTTP_REQUEST_STAT_ENTRY = 32i32; +pub const WinHttpRequestTimeLast: WINHTTP_REQUEST_TIME_ENTRY = 36i32; +pub const WinHttpRequestTimeMax: WINHTTP_REQUEST_TIME_ENTRY = 64i32; +pub const WinHttpResponseBodyCompressedSize: WINHTTP_REQUEST_STAT_ENTRY = 11i32; +pub const WinHttpResponseBodySize: WINHTTP_REQUEST_STAT_ENTRY = 10i32; +pub const WinHttpResponseHeadersCompressedSize: WINHTTP_REQUEST_STAT_ENTRY = 9i32; +pub const WinHttpResponseHeadersSize: WINHTTP_REQUEST_STAT_ENTRY = 8i32; +pub const WinHttpSecureDnsSettingDefault: WINHTTP_SECURE_DNS_SETTING = 0i32; +pub const WinHttpSecureDnsSettingForcePlaintext: WINHTTP_SECURE_DNS_SETTING = 1i32; +pub const WinHttpSecureDnsSettingMax: WINHTTP_SECURE_DNS_SETTING = 4i32; +pub const WinHttpSecureDnsSettingRequireEncryption: WINHTTP_SECURE_DNS_SETTING = 2i32; +pub const WinHttpSecureDnsSettingTryEncryptionWithFallback: WINHTTP_SECURE_DNS_SETTING = 3i32; +pub const WinHttpSendRequestEnd: WINHTTP_REQUEST_TIME_ENTRY = 21i32; +pub const WinHttpSendRequestHeadersCompressionEnd: WINHTTP_REQUEST_TIME_ENTRY = 19i32; +pub const WinHttpSendRequestHeadersCompressionStart: WINHTTP_REQUEST_TIME_ENTRY = 18i32; +pub const WinHttpSendRequestHeadersEnd: WINHTTP_REQUEST_TIME_ENTRY = 20i32; +pub const WinHttpSendRequestStart: WINHTTP_REQUEST_TIME_ENTRY = 17i32; +pub const WinHttpStreamWaitEnd: WINHTTP_REQUEST_TIME_ENTRY = 16i32; +pub const WinHttpStreamWaitStart: WINHTTP_REQUEST_TIME_ENTRY = 15i32; +pub const WinHttpTlsHandshakeClientLeg1End: WINHTTP_REQUEST_TIME_ENTRY = 10i32; +pub const WinHttpTlsHandshakeClientLeg1Size: WINHTTP_REQUEST_STAT_ENTRY = 2i32; +pub const WinHttpTlsHandshakeClientLeg1Start: WINHTTP_REQUEST_TIME_ENTRY = 9i32; +pub const WinHttpTlsHandshakeClientLeg2End: WINHTTP_REQUEST_TIME_ENTRY = 12i32; +pub const WinHttpTlsHandshakeClientLeg2Size: WINHTTP_REQUEST_STAT_ENTRY = 4i32; +pub const WinHttpTlsHandshakeClientLeg2Start: WINHTTP_REQUEST_TIME_ENTRY = 11i32; +pub const WinHttpTlsHandshakeClientLeg3End: WINHTTP_REQUEST_TIME_ENTRY = 14i32; +pub const WinHttpTlsHandshakeClientLeg3Start: WINHTTP_REQUEST_TIME_ENTRY = 13i32; +pub const WinHttpTlsHandshakeServerLeg1Size: WINHTTP_REQUEST_STAT_ENTRY = 3i32; +pub const WinHttpTlsHandshakeServerLeg2Size: WINHTTP_REQUEST_STAT_ENTRY = 5i32; +pub type WINHTTP_ACCESS_TYPE = u32; +pub type WINHTTP_CREDS_AUTHSCHEME = u32; +pub type WINHTTP_INTERNET_SCHEME = i32; +pub type WINHTTP_OPEN_REQUEST_FLAGS = u32; +pub type WINHTTP_PROXY_SETTINGS_TYPE = i32; +pub type WINHTTP_REQUEST_STAT_ENTRY = i32; +pub type WINHTTP_REQUEST_TIME_ENTRY = i32; +pub type WINHTTP_SECURE_DNS_SETTING = i32; +pub type WINHTTP_WEB_SOCKET_BUFFER_TYPE = i32; +pub type WINHTTP_WEB_SOCKET_CLOSE_STATUS = i32; +pub type WINHTTP_WEB_SOCKET_OPERATION = i32; +pub type WIN_HTTP_CREATE_URL_FLAGS = u32; +pub type WinHttpRequestAutoLogonPolicy = i32; +pub type WinHttpRequestOption = i32; +pub type WinHttpRequestSecureProtocols = i32; +pub type WinHttpRequestSslErrorFlags = i32; +#[repr(C)] +pub struct HTTP_VERSION_INFO { + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, +} +impl ::core::marker::Copy for HTTP_VERSION_INFO {} +impl ::core::clone::Clone for HTTP_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct URL_COMPONENTS { + pub dwStructSize: u32, + pub lpszScheme: ::windows_sys::core::PWSTR, + pub dwSchemeLength: u32, + pub nScheme: WINHTTP_INTERNET_SCHEME, + pub lpszHostName: ::windows_sys::core::PWSTR, + pub dwHostNameLength: u32, + pub nPort: u16, + pub lpszUserName: ::windows_sys::core::PWSTR, + pub dwUserNameLength: u32, + pub lpszPassword: ::windows_sys::core::PWSTR, + pub dwPasswordLength: u32, + pub lpszUrlPath: ::windows_sys::core::PWSTR, + pub dwUrlPathLength: u32, + pub lpszExtraInfo: ::windows_sys::core::PWSTR, + pub dwExtraInfoLength: u32, +} +impl ::core::marker::Copy for URL_COMPONENTS {} +impl ::core::clone::Clone for URL_COMPONENTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINHTTP_ASYNC_RESULT { + pub dwResult: usize, + pub dwError: u32, +} +impl ::core::marker::Copy for WINHTTP_ASYNC_RESULT {} +impl ::core::clone::Clone for WINHTTP_ASYNC_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINHTTP_AUTOPROXY_OPTIONS { + pub dwFlags: u32, + pub dwAutoDetectFlags: u32, + pub lpszAutoConfigUrl: ::windows_sys::core::PCWSTR, + pub lpvReserved: *mut ::core::ffi::c_void, + pub dwReserved: u32, + pub fAutoLogonIfChallenged: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINHTTP_AUTOPROXY_OPTIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINHTTP_AUTOPROXY_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINHTTP_CERTIFICATE_INFO { + pub ftExpiry: super::super::Foundation::FILETIME, + pub ftStart: super::super::Foundation::FILETIME, + pub lpszSubjectInfo: ::windows_sys::core::PWSTR, + pub lpszIssuerInfo: ::windows_sys::core::PWSTR, + pub lpszProtocolName: ::windows_sys::core::PWSTR, + pub lpszSignatureAlgName: ::windows_sys::core::PWSTR, + pub lpszEncryptionAlgName: ::windows_sys::core::PWSTR, + pub dwKeySize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINHTTP_CERTIFICATE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINHTTP_CERTIFICATE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINHTTP_CONNECTION_GROUP { + pub cConnections: u32, + pub guidGroup: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for WINHTTP_CONNECTION_GROUP {} +impl ::core::clone::Clone for WINHTTP_CONNECTION_GROUP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct WINHTTP_CONNECTION_INFO { + pub cbSize: u32, + pub LocalAddress: super::WinSock::SOCKADDR_STORAGE, + pub RemoteAddress: super::WinSock::SOCKADDR_STORAGE, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for WINHTTP_CONNECTION_INFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for WINHTTP_CONNECTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct WINHTTP_CONNECTION_INFO { + pub cbSize: u32, + pub LocalAddress: super::WinSock::SOCKADDR_STORAGE, + pub RemoteAddress: super::WinSock::SOCKADDR_STORAGE, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for WINHTTP_CONNECTION_INFO {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for WINHTTP_CONNECTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINHTTP_CREDS { + pub lpszUserName: ::windows_sys::core::PSTR, + pub lpszPassword: ::windows_sys::core::PSTR, + pub lpszRealm: ::windows_sys::core::PSTR, + pub dwAuthScheme: WINHTTP_CREDS_AUTHSCHEME, + pub lpszHostName: ::windows_sys::core::PSTR, + pub dwPort: u32, +} +impl ::core::marker::Copy for WINHTTP_CREDS {} +impl ::core::clone::Clone for WINHTTP_CREDS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINHTTP_CREDS_EX { + pub lpszUserName: ::windows_sys::core::PSTR, + pub lpszPassword: ::windows_sys::core::PSTR, + pub lpszRealm: ::windows_sys::core::PSTR, + pub dwAuthScheme: WINHTTP_CREDS_AUTHSCHEME, + pub lpszHostName: ::windows_sys::core::PSTR, + pub dwPort: u32, + pub lpszUrl: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for WINHTTP_CREDS_EX {} +impl ::core::clone::Clone for WINHTTP_CREDS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINHTTP_CURRENT_USER_IE_PROXY_CONFIG { + pub fAutoDetect: super::super::Foundation::BOOL, + pub lpszAutoConfigUrl: ::windows_sys::core::PWSTR, + pub lpszProxy: ::windows_sys::core::PWSTR, + pub lpszProxyBypass: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINHTTP_CURRENT_USER_IE_PROXY_CONFIG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINHTTP_CURRENT_USER_IE_PROXY_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINHTTP_EXTENDED_HEADER { + pub Anonymous1: WINHTTP_EXTENDED_HEADER_0, + pub Anonymous2: WINHTTP_EXTENDED_HEADER_1, +} +impl ::core::marker::Copy for WINHTTP_EXTENDED_HEADER {} +impl ::core::clone::Clone for WINHTTP_EXTENDED_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WINHTTP_EXTENDED_HEADER_0 { + pub pwszName: ::windows_sys::core::PCWSTR, + pub pszName: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for WINHTTP_EXTENDED_HEADER_0 {} +impl ::core::clone::Clone for WINHTTP_EXTENDED_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WINHTTP_EXTENDED_HEADER_1 { + pub pwszValue: ::windows_sys::core::PCWSTR, + pub pszValue: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for WINHTTP_EXTENDED_HEADER_1 {} +impl ::core::clone::Clone for WINHTTP_EXTENDED_HEADER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINHTTP_FAILED_CONNECTION_RETRIES { + pub dwMaxRetries: u32, + pub dwAllowedRetryConditions: u32, +} +impl ::core::marker::Copy for WINHTTP_FAILED_CONNECTION_RETRIES {} +impl ::core::clone::Clone for WINHTTP_FAILED_CONNECTION_RETRIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WINHTTP_HEADER_NAME { + pub pwszName: ::windows_sys::core::PCWSTR, + pub pszName: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for WINHTTP_HEADER_NAME {} +impl ::core::clone::Clone for WINHTTP_HEADER_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINHTTP_HOST_CONNECTION_GROUP { + pub pwszHost: ::windows_sys::core::PCWSTR, + pub cConnectionGroups: u32, + pub pConnectionGroups: *mut WINHTTP_CONNECTION_GROUP, +} +impl ::core::marker::Copy for WINHTTP_HOST_CONNECTION_GROUP {} +impl ::core::clone::Clone for WINHTTP_HOST_CONNECTION_GROUP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINHTTP_HTTP2_RECEIVE_WINDOW { + pub ulStreamWindow: u32, + pub ulStreamWindowUpdateDelta: u32, +} +impl ::core::marker::Copy for WINHTTP_HTTP2_RECEIVE_WINDOW {} +impl ::core::clone::Clone for WINHTTP_HTTP2_RECEIVE_WINDOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct WINHTTP_MATCH_CONNECTION_GUID { + pub ConnectionGuid: ::windows_sys::core::GUID, + pub ullFlags: u64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for WINHTTP_MATCH_CONNECTION_GUID {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for WINHTTP_MATCH_CONNECTION_GUID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(target_arch = "x86")] +pub struct WINHTTP_MATCH_CONNECTION_GUID { + pub ConnectionGuid: ::windows_sys::core::GUID, + pub ullFlags: u64, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for WINHTTP_MATCH_CONNECTION_GUID {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for WINHTTP_MATCH_CONNECTION_GUID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINHTTP_PROXY_INFO { + pub dwAccessType: WINHTTP_ACCESS_TYPE, + pub lpszProxy: ::windows_sys::core::PWSTR, + pub lpszProxyBypass: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WINHTTP_PROXY_INFO {} +impl ::core::clone::Clone for WINHTTP_PROXY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINHTTP_PROXY_NETWORKING_KEY { + pub pbBuffer: [u8; 128], +} +impl ::core::marker::Copy for WINHTTP_PROXY_NETWORKING_KEY {} +impl ::core::clone::Clone for WINHTTP_PROXY_NETWORKING_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINHTTP_PROXY_RESULT { + pub cEntries: u32, + pub pEntries: *mut WINHTTP_PROXY_RESULT_ENTRY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINHTTP_PROXY_RESULT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINHTTP_PROXY_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINHTTP_PROXY_RESULT_ENTRY { + pub fProxy: super::super::Foundation::BOOL, + pub fBypass: super::super::Foundation::BOOL, + pub ProxyScheme: WINHTTP_INTERNET_SCHEME, + pub pwszProxy: ::windows_sys::core::PWSTR, + pub ProxyPort: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINHTTP_PROXY_RESULT_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINHTTP_PROXY_RESULT_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINHTTP_PROXY_RESULT_EX { + pub cEntries: u32, + pub pEntries: *mut WINHTTP_PROXY_RESULT_ENTRY, + pub hProxyDetectionHandle: super::super::Foundation::HANDLE, + pub dwProxyInterfaceAffinity: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINHTTP_PROXY_RESULT_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINHTTP_PROXY_RESULT_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINHTTP_PROXY_SETTINGS { + pub dwStructSize: u32, + pub dwFlags: u32, + pub dwCurrentSettingsVersion: u32, + pub pwszConnectionName: ::windows_sys::core::PWSTR, + pub pwszProxy: ::windows_sys::core::PWSTR, + pub pwszProxyBypass: ::windows_sys::core::PWSTR, + pub pwszAutoconfigUrl: ::windows_sys::core::PWSTR, + pub pwszAutoconfigSecondaryUrl: ::windows_sys::core::PWSTR, + pub dwAutoDiscoveryFlags: u32, + pub pwszLastKnownGoodAutoConfigUrl: ::windows_sys::core::PWSTR, + pub dwAutoconfigReloadDelayMins: u32, + pub ftLastKnownDetectTime: super::super::Foundation::FILETIME, + pub dwDetectedInterfaceIpCount: u32, + pub pdwDetectedInterfaceIp: *mut u32, + pub cNetworkKeys: u32, + pub pNetworkKeys: *mut WINHTTP_PROXY_NETWORKING_KEY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINHTTP_PROXY_SETTINGS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINHTTP_PROXY_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct WINHTTP_PROXY_SETTINGS_EX { + pub ullGenerationId: u64, + pub ullFlags: u64, + pub pcwszAutoconfigUrl: ::windows_sys::core::PCWSTR, + pub pcwszProxy: ::windows_sys::core::PCWSTR, + pub pcwszSecureProxy: ::windows_sys::core::PCWSTR, + pub cProxyBypasses: u32, + pub rgpcwszProxyBypasses: *const ::windows_sys::core::PCWSTR, + pub dwInterfaceIndex: u32, + pub pcwszConnectionName: ::windows_sys::core::PCWSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for WINHTTP_PROXY_SETTINGS_EX {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for WINHTTP_PROXY_SETTINGS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(target_arch = "x86")] +pub struct WINHTTP_PROXY_SETTINGS_EX { + pub ullGenerationId: u64, + pub ullFlags: u64, + pub pcwszAutoconfigUrl: ::windows_sys::core::PCWSTR, + pub pcwszProxy: ::windows_sys::core::PCWSTR, + pub pcwszSecureProxy: ::windows_sys::core::PCWSTR, + pub cProxyBypasses: u32, + pub rgpcwszProxyBypasses: *const ::windows_sys::core::PCWSTR, + pub dwInterfaceIndex: u32, + pub pcwszConnectionName: ::windows_sys::core::PCWSTR, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for WINHTTP_PROXY_SETTINGS_EX {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for WINHTTP_PROXY_SETTINGS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct WINHTTP_PROXY_SETTINGS_PARAM { + pub ullFlags: u64, + pub pcwszConnectionName: ::windows_sys::core::PCWSTR, + pub pcwszProbeHost: ::windows_sys::core::PCWSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for WINHTTP_PROXY_SETTINGS_PARAM {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for WINHTTP_PROXY_SETTINGS_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(target_arch = "x86")] +pub struct WINHTTP_PROXY_SETTINGS_PARAM { + pub ullFlags: u64, + pub pcwszConnectionName: ::windows_sys::core::PCWSTR, + pub pcwszProbeHost: ::windows_sys::core::PCWSTR, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for WINHTTP_PROXY_SETTINGS_PARAM {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for WINHTTP_PROXY_SETTINGS_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINHTTP_QUERY_CONNECTION_GROUP_RESULT { + pub cHosts: u32, + pub pHostConnectionGroups: *mut WINHTTP_HOST_CONNECTION_GROUP, +} +impl ::core::marker::Copy for WINHTTP_QUERY_CONNECTION_GROUP_RESULT {} +impl ::core::clone::Clone for WINHTTP_QUERY_CONNECTION_GROUP_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct WINHTTP_REQUEST_STATS { + pub ullFlags: u64, + pub ulIndex: u32, + pub cStats: u32, + pub rgullStats: [u64; 32], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for WINHTTP_REQUEST_STATS {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for WINHTTP_REQUEST_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(target_arch = "x86")] +pub struct WINHTTP_REQUEST_STATS { + pub ullFlags: u64, + pub ulIndex: u32, + pub cStats: u32, + pub rgullStats: [u64; 32], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for WINHTTP_REQUEST_STATS {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for WINHTTP_REQUEST_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct WINHTTP_REQUEST_TIMES { + pub cTimes: u32, + pub rgullTimes: [u64; 64], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for WINHTTP_REQUEST_TIMES {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for WINHTTP_REQUEST_TIMES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(target_arch = "x86")] +pub struct WINHTTP_REQUEST_TIMES { + pub cTimes: u32, + pub rgullTimes: [u64; 64], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for WINHTTP_REQUEST_TIMES {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for WINHTTP_REQUEST_TIMES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct WINHTTP_RESOLVER_CACHE_CONFIG { + pub ulMaxResolverCacheEntries: u32, + pub ulMaxCacheEntryAge: u32, + pub ulMinCacheEntryTtl: u32, + pub SecureDnsSetting: WINHTTP_SECURE_DNS_SETTING, + pub ullConnResolutionWaitTime: u64, + pub ullFlags: u64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for WINHTTP_RESOLVER_CACHE_CONFIG {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for WINHTTP_RESOLVER_CACHE_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(target_arch = "x86")] +pub struct WINHTTP_RESOLVER_CACHE_CONFIG { + pub ulMaxResolverCacheEntries: u32, + pub ulMaxCacheEntryAge: u32, + pub ulMinCacheEntryTtl: u32, + pub SecureDnsSetting: WINHTTP_SECURE_DNS_SETTING, + pub ullConnResolutionWaitTime: u64, + pub ullFlags: u64, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for WINHTTP_RESOLVER_CACHE_CONFIG {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for WINHTTP_RESOLVER_CACHE_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINHTTP_WEB_SOCKET_ASYNC_RESULT { + pub AsyncResult: WINHTTP_ASYNC_RESULT, + pub Operation: WINHTTP_WEB_SOCKET_OPERATION, +} +impl ::core::marker::Copy for WINHTTP_WEB_SOCKET_ASYNC_RESULT {} +impl ::core::clone::Clone for WINHTTP_WEB_SOCKET_ASYNC_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINHTTP_WEB_SOCKET_STATUS { + pub dwBytesTransferred: u32, + pub eBufferType: WINHTTP_WEB_SOCKET_BUFFER_TYPE, +} +impl ::core::marker::Copy for WINHTTP_WEB_SOCKET_STATUS {} +impl ::core::clone::Clone for WINHTTP_WEB_SOCKET_STATUS { + fn clone(&self) -> Self { + *self + } +} +pub type WINHTTP_PROXY_CHANGE_CALLBACK = ::core::option::Option ()>; +pub type WINHTTP_STATUS_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WinInet/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WinInet/mod.rs new file mode 100644 index 000000000..74b32e94b --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WinInet/mod.rs @@ -0,0 +1,3018 @@ +::windows_targets::link!("wininet.dll" "system" fn AppCacheCheckManifest(pwszmasterurl : ::windows_sys::core::PCWSTR, pwszmanifesturl : ::windows_sys::core::PCWSTR, pbmanifestdata : *const u8, dwmanifestdatasize : u32, pbmanifestresponseheaders : *const u8, dwmanifestresponseheaderssize : u32, pestate : *mut APP_CACHE_STATE, phnewappcache : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("wininet.dll" "system" fn AppCacheCloseHandle(happcache : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("wininet.dll" "system" fn AppCacheCreateAndCommitFile(happcache : *const ::core::ffi::c_void, pwszsourcefilepath : ::windows_sys::core::PCWSTR, pwszurl : ::windows_sys::core::PCWSTR, pbresponseheaders : *const u8, dwresponseheaderssize : u32) -> u32); +::windows_targets::link!("wininet.dll" "system" fn AppCacheDeleteGroup(pwszmanifesturl : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("wininet.dll" "system" fn AppCacheDeleteIEGroup(pwszmanifesturl : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("wininet.dll" "system" fn AppCacheDuplicateHandle(happcache : *const ::core::ffi::c_void, phduplicatedappcache : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("wininet.dll" "system" fn AppCacheFinalize(happcache : *const ::core::ffi::c_void, pbmanifestdata : *const u8, dwmanifestdatasize : u32, pestate : *mut APP_CACHE_FINALIZE_STATE) -> u32); +::windows_targets::link!("wininet.dll" "system" fn AppCacheFreeDownloadList(pdownloadlist : *mut APP_CACHE_DOWNLOAD_LIST) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppCacheFreeGroupList(pappcachegrouplist : *mut APP_CACHE_GROUP_LIST) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppCacheFreeIESpace(ftcutoff : super::super::Foundation:: FILETIME) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppCacheFreeSpace(ftcutoff : super::super::Foundation:: FILETIME) -> u32); +::windows_targets::link!("wininet.dll" "system" fn AppCacheGetDownloadList(happcache : *const ::core::ffi::c_void, pdownloadlist : *mut APP_CACHE_DOWNLOAD_LIST) -> u32); +::windows_targets::link!("wininet.dll" "system" fn AppCacheGetFallbackUrl(happcache : *const ::core::ffi::c_void, pwszurl : ::windows_sys::core::PCWSTR, ppwszfallbackurl : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppCacheGetGroupList(pappcachegrouplist : *mut APP_CACHE_GROUP_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppCacheGetIEGroupList(pappcachegrouplist : *mut APP_CACHE_GROUP_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppCacheGetInfo(happcache : *const ::core::ffi::c_void, pappcacheinfo : *mut APP_CACHE_GROUP_INFO) -> u32); +::windows_targets::link!("wininet.dll" "system" fn AppCacheGetManifestUrl(happcache : *const ::core::ffi::c_void, ppwszmanifesturl : *mut ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("wininet.dll" "system" fn AppCacheLookup(pwszurl : ::windows_sys::core::PCWSTR, dwflags : u32, phappcache : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CommitUrlCacheEntryA(lpszurlname : ::windows_sys::core::PCSTR, lpszlocalfilename : ::windows_sys::core::PCSTR, expiretime : super::super::Foundation:: FILETIME, lastmodifiedtime : super::super::Foundation:: FILETIME, cacheentrytype : u32, lpheaderinfo : *const u8, cchheaderinfo : u32, lpszfileextension : ::windows_sys::core::PCSTR, lpszoriginalurl : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CommitUrlCacheEntryBinaryBlob(pwszurlname : ::windows_sys::core::PCWSTR, dwtype : u32, ftexpiretime : super::super::Foundation:: FILETIME, ftmodifiedtime : super::super::Foundation:: FILETIME, pbblob : *const u8, cbblob : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CommitUrlCacheEntryW(lpszurlname : ::windows_sys::core::PCWSTR, lpszlocalfilename : ::windows_sys::core::PCWSTR, expiretime : super::super::Foundation:: FILETIME, lastmodifiedtime : super::super::Foundation:: FILETIME, cacheentrytype : u32, lpszheaderinfo : ::windows_sys::core::PCWSTR, cchheaderinfo : u32, lpszfileextension : ::windows_sys::core::PCWSTR, lpszoriginalurl : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateMD5SSOHash(pszchallengeinfo : ::windows_sys::core::PCWSTR, pwszrealm : ::windows_sys::core::PCWSTR, pwsztarget : ::windows_sys::core::PCWSTR, pbhexhash : *mut u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateUrlCacheContainerA(name : ::windows_sys::core::PCSTR, lpcacheprefix : ::windows_sys::core::PCSTR, lpszcachepath : ::windows_sys::core::PCSTR, kbcachelimit : u32, dwcontainertype : u32, dwoptions : u32, pvbuffer : *const ::core::ffi::c_void, cbbuffer : *const u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateUrlCacheContainerW(name : ::windows_sys::core::PCWSTR, lpcacheprefix : ::windows_sys::core::PCWSTR, lpszcachepath : ::windows_sys::core::PCWSTR, kbcachelimit : u32, dwcontainertype : u32, dwoptions : u32, pvbuffer : *const ::core::ffi::c_void, cbbuffer : *const u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateUrlCacheEntryA(lpszurlname : ::windows_sys::core::PCSTR, dwexpectedfilesize : u32, lpszfileextension : ::windows_sys::core::PCSTR, lpszfilename : ::windows_sys::core::PSTR, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateUrlCacheEntryExW(lpszurlname : ::windows_sys::core::PCWSTR, dwexpectedfilesize : u32, lpszfileextension : ::windows_sys::core::PCWSTR, lpszfilename : ::windows_sys::core::PWSTR, dwreserved : u32, fpreserveincomingfilename : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateUrlCacheEntryW(lpszurlname : ::windows_sys::core::PCWSTR, dwexpectedfilesize : u32, lpszfileextension : ::windows_sys::core::PCWSTR, lpszfilename : ::windows_sys::core::PWSTR, dwreserved : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn CreateUrlCacheGroup(dwflags : u32, lpreserved : *const ::core::ffi::c_void) -> i64); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteIE3Cache(hwnd : super::super::Foundation:: HWND, hinst : super::super::Foundation:: HINSTANCE, lpszcmd : ::windows_sys::core::PCSTR, ncmdshow : i32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteUrlCacheContainerA(name : ::windows_sys::core::PCSTR, dwoptions : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteUrlCacheContainerW(name : ::windows_sys::core::PCWSTR, dwoptions : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteUrlCacheEntry(lpszurlname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteUrlCacheEntryA(lpszurlname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteUrlCacheEntryW(lpszurlname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteUrlCacheGroup(groupid : i64, dwflags : u32, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteWpadCacheForNetworks(param0 : WPAD_CACHE_DELETE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DetectAutoProxyUrl(pszautoproxyurl : ::windows_sys::core::PSTR, cchautoproxyurl : u32, dwdetectflags : PROXY_AUTO_DETECT_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DoConnectoidsExist() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExportCookieFileA(szfilename : ::windows_sys::core::PCSTR, fappend : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExportCookieFileW(szfilename : ::windows_sys::core::PCWSTR, fappend : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindCloseUrlCache(henumhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstUrlCacheContainerA(pdwmodified : *mut u32, lpcontainerinfo : *mut INTERNET_CACHE_CONTAINER_INFOA, lpcbcontainerinfo : *mut u32, dwoptions : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstUrlCacheContainerW(pdwmodified : *mut u32, lpcontainerinfo : *mut INTERNET_CACHE_CONTAINER_INFOW, lpcbcontainerinfo : *mut u32, dwoptions : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstUrlCacheEntryA(lpszurlsearchpattern : ::windows_sys::core::PCSTR, lpfirstcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo : *mut u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstUrlCacheEntryExA(lpszurlsearchpattern : ::windows_sys::core::PCSTR, dwflags : u32, dwfilter : u32, groupid : i64, lpfirstcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo : *mut u32, lpgroupattributes : *const ::core::ffi::c_void, lpcbgroupattributes : *const u32, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstUrlCacheEntryExW(lpszurlsearchpattern : ::windows_sys::core::PCWSTR, dwflags : u32, dwfilter : u32, groupid : i64, lpfirstcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo : *mut u32, lpgroupattributes : *const ::core::ffi::c_void, lpcbgroupattributes : *const u32, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstUrlCacheEntryW(lpszurlsearchpattern : ::windows_sys::core::PCWSTR, lpfirstcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo : *mut u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstUrlCacheGroup(dwflags : u32, dwfilter : u32, lpsearchcondition : *const ::core::ffi::c_void, dwsearchcondition : u32, lpgroupid : *mut i64, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextUrlCacheContainerA(henumhandle : super::super::Foundation:: HANDLE, lpcontainerinfo : *mut INTERNET_CACHE_CONTAINER_INFOA, lpcbcontainerinfo : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextUrlCacheContainerW(henumhandle : super::super::Foundation:: HANDLE, lpcontainerinfo : *mut INTERNET_CACHE_CONTAINER_INFOW, lpcbcontainerinfo : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextUrlCacheEntryA(henumhandle : super::super::Foundation:: HANDLE, lpnextcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextUrlCacheEntryExA(henumhandle : super::super::Foundation:: HANDLE, lpnextcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo : *mut u32, lpgroupattributes : *const ::core::ffi::c_void, lpcbgroupattributes : *const u32, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextUrlCacheEntryExW(henumhandle : super::super::Foundation:: HANDLE, lpnextcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo : *mut u32, lpgroupattributes : *const ::core::ffi::c_void, lpcbgroupattributes : *const u32, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextUrlCacheEntryW(henumhandle : super::super::Foundation:: HANDLE, lpnextcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextUrlCacheGroup(hfind : super::super::Foundation:: HANDLE, lpgroupid : *mut i64, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn FindP3PPolicySymbol(pszsymbol : ::windows_sys::core::PCSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeUrlCacheSpaceA(lpszcachepath : ::windows_sys::core::PCSTR, dwsize : u32, dwfilter : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeUrlCacheSpaceW(lpszcachepath : ::windows_sys::core::PCWSTR, dwsize : u32, dwfilter : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpCommandA(hconnect : *const ::core::ffi::c_void, fexpectresponse : super::super::Foundation:: BOOL, dwflags : FTP_FLAGS, lpszcommand : ::windows_sys::core::PCSTR, dwcontext : usize, phftpcommand : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpCommandW(hconnect : *const ::core::ffi::c_void, fexpectresponse : super::super::Foundation:: BOOL, dwflags : FTP_FLAGS, lpszcommand : ::windows_sys::core::PCWSTR, dwcontext : usize, phftpcommand : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpCreateDirectoryA(hconnect : *const ::core::ffi::c_void, lpszdirectory : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpCreateDirectoryW(hconnect : *const ::core::ffi::c_void, lpszdirectory : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpDeleteFileA(hconnect : *const ::core::ffi::c_void, lpszfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpDeleteFileW(hconnect : *const ::core::ffi::c_void, lpszfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn FtpFindFirstFileA(hconnect : *const ::core::ffi::c_void, lpszsearchfile : ::windows_sys::core::PCSTR, lpfindfiledata : *mut super::super::Storage::FileSystem:: WIN32_FIND_DATAA, dwflags : u32, dwcontext : usize) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn FtpFindFirstFileW(hconnect : *const ::core::ffi::c_void, lpszsearchfile : ::windows_sys::core::PCWSTR, lpfindfiledata : *mut super::super::Storage::FileSystem:: WIN32_FIND_DATAW, dwflags : u32, dwcontext : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpGetCurrentDirectoryA(hconnect : *const ::core::ffi::c_void, lpszcurrentdirectory : ::windows_sys::core::PSTR, lpdwcurrentdirectory : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpGetCurrentDirectoryW(hconnect : *const ::core::ffi::c_void, lpszcurrentdirectory : ::windows_sys::core::PWSTR, lpdwcurrentdirectory : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpGetFileA(hconnect : *const ::core::ffi::c_void, lpszremotefile : ::windows_sys::core::PCSTR, lpsznewfile : ::windows_sys::core::PCSTR, ffailifexists : super::super::Foundation:: BOOL, dwflagsandattributes : u32, dwflags : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpGetFileEx(hftpsession : *const ::core::ffi::c_void, lpszremotefile : ::windows_sys::core::PCSTR, lpsznewfile : ::windows_sys::core::PCWSTR, ffailifexists : super::super::Foundation:: BOOL, dwflagsandattributes : u32, dwflags : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn FtpGetFileSize(hfile : *const ::core::ffi::c_void, lpdwfilesizehigh : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpGetFileW(hconnect : *const ::core::ffi::c_void, lpszremotefile : ::windows_sys::core::PCWSTR, lpsznewfile : ::windows_sys::core::PCWSTR, ffailifexists : super::super::Foundation:: BOOL, dwflagsandattributes : u32, dwflags : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn FtpOpenFileA(hconnect : *const ::core::ffi::c_void, lpszfilename : ::windows_sys::core::PCSTR, dwaccess : u32, dwflags : FTP_FLAGS, dwcontext : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("wininet.dll" "system" fn FtpOpenFileW(hconnect : *const ::core::ffi::c_void, lpszfilename : ::windows_sys::core::PCWSTR, dwaccess : u32, dwflags : FTP_FLAGS, dwcontext : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpPutFileA(hconnect : *const ::core::ffi::c_void, lpszlocalfile : ::windows_sys::core::PCSTR, lpsznewremotefile : ::windows_sys::core::PCSTR, dwflags : FTP_FLAGS, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpPutFileEx(hftpsession : *const ::core::ffi::c_void, lpszlocalfile : ::windows_sys::core::PCWSTR, lpsznewremotefile : ::windows_sys::core::PCSTR, dwflags : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpPutFileW(hconnect : *const ::core::ffi::c_void, lpszlocalfile : ::windows_sys::core::PCWSTR, lpsznewremotefile : ::windows_sys::core::PCWSTR, dwflags : FTP_FLAGS, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpRemoveDirectoryA(hconnect : *const ::core::ffi::c_void, lpszdirectory : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpRemoveDirectoryW(hconnect : *const ::core::ffi::c_void, lpszdirectory : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpRenameFileA(hconnect : *const ::core::ffi::c_void, lpszexisting : ::windows_sys::core::PCSTR, lpsznew : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpRenameFileW(hconnect : *const ::core::ffi::c_void, lpszexisting : ::windows_sys::core::PCWSTR, lpsznew : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpSetCurrentDirectoryA(hconnect : *const ::core::ffi::c_void, lpszdirectory : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtpSetCurrentDirectoryW(hconnect : *const ::core::ffi::c_void, lpszdirectory : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDiskInfoA(pszpath : ::windows_sys::core::PCSTR, pdwclustersize : *mut u32, pdlavail : *mut u64, pdltotal : *mut u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUrlCacheConfigInfoA(lpcacheconfiginfo : *mut INTERNET_CACHE_CONFIG_INFOA, lpcbcacheconfiginfo : *const u32, dwfieldcontrol : CACHE_CONFIG) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUrlCacheConfigInfoW(lpcacheconfiginfo : *mut INTERNET_CACHE_CONFIG_INFOW, lpcbcacheconfiginfo : *const u32, dwfieldcontrol : CACHE_CONFIG) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUrlCacheEntryBinaryBlob(pwszurlname : ::windows_sys::core::PCWSTR, dwtype : *mut u32, pftexpiretime : *mut super::super::Foundation:: FILETIME, pftaccesstime : *mut super::super::Foundation:: FILETIME, pftmodifiedtime : *mut super::super::Foundation:: FILETIME, ppbblob : *mut *mut u8, pcbblob : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUrlCacheEntryInfoA(lpszurlname : ::windows_sys::core::PCSTR, lpcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUrlCacheEntryInfoExA(lpszurl : ::windows_sys::core::PCSTR, lpcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo : *mut u32, lpszredirecturl : ::windows_sys::core::PCSTR, lpcbredirecturl : *const u32, lpreserved : *const ::core::ffi::c_void, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUrlCacheEntryInfoExW(lpszurl : ::windows_sys::core::PCWSTR, lpcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo : *mut u32, lpszredirecturl : ::windows_sys::core::PCWSTR, lpcbredirecturl : *const u32, lpreserved : *const ::core::ffi::c_void, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUrlCacheEntryInfoW(lpszurlname : ::windows_sys::core::PCWSTR, lpcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUrlCacheGroupAttributeA(gid : i64, dwflags : u32, dwattributes : u32, lpgroupinfo : *mut INTERNET_CACHE_GROUP_INFOA, lpcbgroupinfo : *mut u32, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUrlCacheGroupAttributeW(gid : i64, dwflags : u32, dwattributes : u32, lpgroupinfo : *mut INTERNET_CACHE_GROUP_INFOW, lpcbgroupinfo : *mut u32, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUrlCacheHeaderData(nidx : u32, lpdwdata : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GopherCreateLocatorA(lpszhost : ::windows_sys::core::PCSTR, nserverport : u16, lpszdisplaystring : ::windows_sys::core::PCSTR, lpszselectorstring : ::windows_sys::core::PCSTR, dwgophertype : u32, lpszlocator : ::windows_sys::core::PSTR, lpdwbufferlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GopherCreateLocatorW(lpszhost : ::windows_sys::core::PCWSTR, nserverport : u16, lpszdisplaystring : ::windows_sys::core::PCWSTR, lpszselectorstring : ::windows_sys::core::PCWSTR, dwgophertype : u32, lpszlocator : ::windows_sys::core::PWSTR, lpdwbufferlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GopherFindFirstFileA(hconnect : *const ::core::ffi::c_void, lpszlocator : ::windows_sys::core::PCSTR, lpszsearchstring : ::windows_sys::core::PCSTR, lpfinddata : *mut GOPHER_FIND_DATAA, dwflags : u32, dwcontext : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GopherFindFirstFileW(hconnect : *const ::core::ffi::c_void, lpszlocator : ::windows_sys::core::PCWSTR, lpszsearchstring : ::windows_sys::core::PCWSTR, lpfinddata : *mut GOPHER_FIND_DATAW, dwflags : u32, dwcontext : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GopherGetAttributeA(hconnect : *const ::core::ffi::c_void, lpszlocator : ::windows_sys::core::PCSTR, lpszattributename : ::windows_sys::core::PCSTR, lpbuffer : *mut u8, dwbufferlength : u32, lpdwcharactersreturned : *mut u32, lpfnenumerator : GOPHER_ATTRIBUTE_ENUMERATOR, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GopherGetAttributeW(hconnect : *const ::core::ffi::c_void, lpszlocator : ::windows_sys::core::PCWSTR, lpszattributename : ::windows_sys::core::PCWSTR, lpbuffer : *mut u8, dwbufferlength : u32, lpdwcharactersreturned : *mut u32, lpfnenumerator : GOPHER_ATTRIBUTE_ENUMERATOR, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GopherGetLocatorTypeA(lpszlocator : ::windows_sys::core::PCSTR, lpdwgophertype : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GopherGetLocatorTypeW(lpszlocator : ::windows_sys::core::PCWSTR, lpdwgophertype : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn GopherOpenFileA(hconnect : *const ::core::ffi::c_void, lpszlocator : ::windows_sys::core::PCSTR, lpszview : ::windows_sys::core::PCSTR, dwflags : u32, dwcontext : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("wininet.dll" "system" fn GopherOpenFileW(hconnect : *const ::core::ffi::c_void, lpszlocator : ::windows_sys::core::PCWSTR, lpszview : ::windows_sys::core::PCWSTR, dwflags : u32, dwcontext : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpAddRequestHeadersA(hrequest : *const ::core::ffi::c_void, lpszheaders : ::windows_sys::core::PCSTR, dwheaderslength : u32, dwmodifiers : HTTP_ADDREQ_FLAG) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpAddRequestHeadersW(hrequest : *const ::core::ffi::c_void, lpszheaders : ::windows_sys::core::PCWSTR, dwheaderslength : u32, dwmodifiers : HTTP_ADDREQ_FLAG) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpCheckDavComplianceA(lpszurl : ::windows_sys::core::PCSTR, lpszcompliancetoken : ::windows_sys::core::PCSTR, lpffound : *mut super::super::Foundation:: BOOL, hwnd : super::super::Foundation:: HWND, lpvreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpCheckDavComplianceW(lpszurl : ::windows_sys::core::PCWSTR, lpszcompliancetoken : ::windows_sys::core::PCWSTR, lpffound : *mut super::super::Foundation:: BOOL, hwnd : super::super::Foundation:: HWND, lpvreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn HttpCloseDependencyHandle(hdependencyhandle : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("wininet.dll" "system" fn HttpDuplicateDependencyHandle(hdependencyhandle : *const ::core::ffi::c_void, phduplicateddependencyhandle : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpEndRequestA(hrequest : *const ::core::ffi::c_void, lpbuffersout : *mut INTERNET_BUFFERSA, dwflags : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpEndRequestW(hrequest : *const ::core::ffi::c_void, lpbuffersout : *mut INTERNET_BUFFERSW, dwflags : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn HttpGetServerCredentials(pwszurl : ::windows_sys::core::PCWSTR, ppwszusername : *mut ::windows_sys::core::PWSTR, ppwszpassword : *mut ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("wininet.dll" "system" fn HttpIndicatePageLoadComplete(hdependencyhandle : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpIsHostHstsEnabled(pcwszurl : ::windows_sys::core::PCWSTR, pfishsts : *mut super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpOpenDependencyHandle(hrequesthandle : *const ::core::ffi::c_void, fbackground : super::super::Foundation:: BOOL, phdependencyhandle : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("wininet.dll" "system" fn HttpOpenRequestA(hconnect : *const ::core::ffi::c_void, lpszverb : ::windows_sys::core::PCSTR, lpszobjectname : ::windows_sys::core::PCSTR, lpszversion : ::windows_sys::core::PCSTR, lpszreferrer : ::windows_sys::core::PCSTR, lplpszaccepttypes : *const ::windows_sys::core::PCSTR, dwflags : u32, dwcontext : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("wininet.dll" "system" fn HttpOpenRequestW(hconnect : *const ::core::ffi::c_void, lpszverb : ::windows_sys::core::PCWSTR, lpszobjectname : ::windows_sys::core::PCWSTR, lpszversion : ::windows_sys::core::PCWSTR, lpszreferrer : ::windows_sys::core::PCWSTR, lplpszaccepttypes : *const ::windows_sys::core::PCWSTR, dwflags : u32, dwcontext : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("wininet.dll" "system" fn HttpPushClose(hwait : HTTP_PUSH_WAIT_HANDLE) -> ()); +::windows_targets::link!("wininet.dll" "system" fn HttpPushEnable(hrequest : *const ::core::ffi::c_void, ptransportsetting : *const HTTP_PUSH_TRANSPORT_SETTING, phwait : *mut HTTP_PUSH_WAIT_HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpPushWait(hwait : HTTP_PUSH_WAIT_HANDLE, etype : HTTP_PUSH_WAIT_TYPE, pnotificationstatus : *mut HTTP_PUSH_NOTIFICATION_STATUS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpQueryInfoA(hrequest : *const ::core::ffi::c_void, dwinfolevel : u32, lpbuffer : *mut ::core::ffi::c_void, lpdwbufferlength : *mut u32, lpdwindex : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpQueryInfoW(hrequest : *const ::core::ffi::c_void, dwinfolevel : u32, lpbuffer : *mut ::core::ffi::c_void, lpdwbufferlength : *mut u32, lpdwindex : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpSendRequestA(hrequest : *const ::core::ffi::c_void, lpszheaders : ::windows_sys::core::PCSTR, dwheaderslength : u32, lpoptional : *const ::core::ffi::c_void, dwoptionallength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpSendRequestExA(hrequest : *const ::core::ffi::c_void, lpbuffersin : *const INTERNET_BUFFERSA, lpbuffersout : *mut INTERNET_BUFFERSA, dwflags : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpSendRequestExW(hrequest : *const ::core::ffi::c_void, lpbuffersin : *const INTERNET_BUFFERSW, lpbuffersout : *mut INTERNET_BUFFERSW, dwflags : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpSendRequestW(hrequest : *const ::core::ffi::c_void, lpszheaders : ::windows_sys::core::PCWSTR, dwheaderslength : u32, lpoptional : *const ::core::ffi::c_void, dwoptionallength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpWebSocketClose(hwebsocket : *const ::core::ffi::c_void, usstatus : u16, pvreason : *const ::core::ffi::c_void, dwreasonlength : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn HttpWebSocketCompleteUpgrade(hrequest : *const ::core::ffi::c_void, dwcontext : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpWebSocketQueryCloseStatus(hwebsocket : *const ::core::ffi::c_void, pusstatus : *mut u16, pvreason : *mut ::core::ffi::c_void, dwreasonlength : u32, pdwreasonlengthconsumed : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpWebSocketReceive(hwebsocket : *const ::core::ffi::c_void, pvbuffer : *mut ::core::ffi::c_void, dwbufferlength : u32, pdwbytesread : *mut u32, pbuffertype : *mut HTTP_WEB_SOCKET_BUFFER_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpWebSocketSend(hwebsocket : *const ::core::ffi::c_void, buffertype : HTTP_WEB_SOCKET_BUFFER_TYPE, pvbuffer : *const ::core::ffi::c_void, dwbufferlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpWebSocketShutdown(hwebsocket : *const ::core::ffi::c_void, usstatus : u16, pvreason : *const ::core::ffi::c_void, dwreasonlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImportCookieFileA(szfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImportCookieFileW(szfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IncrementUrlCacheHeaderData(nidx : u32, lpdwdata : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn InternalInternetGetCookie(lpszurl : ::windows_sys::core::PCSTR, lpszcookiedata : ::windows_sys::core::PSTR, lpdwdatasize : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn InternetAlgIdToStringA(ai : super::super::Security::Cryptography:: ALG_ID, lpstr : ::windows_sys::core::PSTR, lpdwstrlength : *mut u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn InternetAlgIdToStringW(ai : super::super::Security::Cryptography:: ALG_ID, lpstr : ::windows_sys::core::PWSTR, lpdwstrlength : *mut u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn InternetAttemptConnect(dwreserved : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetAutodial(dwflags : INTERNET_AUTODIAL, hwndparent : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetAutodialHangup(dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetCanonicalizeUrlA(lpszurl : ::windows_sys::core::PCSTR, lpszbuffer : ::windows_sys::core::PSTR, lpdwbufferlength : *mut u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetCanonicalizeUrlW(lpszurl : ::windows_sys::core::PCWSTR, lpszbuffer : ::windows_sys::core::PWSTR, lpdwbufferlength : *mut u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetCheckConnectionA(lpszurl : ::windows_sys::core::PCSTR, dwflags : u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetCheckConnectionW(lpszurl : ::windows_sys::core::PCWSTR, dwflags : u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetClearAllPerSiteCookieDecisions() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetCloseHandle(hinternet : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetCombineUrlA(lpszbaseurl : ::windows_sys::core::PCSTR, lpszrelativeurl : ::windows_sys::core::PCSTR, lpszbuffer : ::windows_sys::core::PSTR, lpdwbufferlength : *mut u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetCombineUrlW(lpszbaseurl : ::windows_sys::core::PCWSTR, lpszrelativeurl : ::windows_sys::core::PCWSTR, lpszbuffer : ::windows_sys::core::PWSTR, lpdwbufferlength : *mut u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetConfirmZoneCrossing(hwnd : super::super::Foundation:: HWND, szurlprev : ::windows_sys::core::PCSTR, szurlnew : ::windows_sys::core::PCSTR, bpost : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetConfirmZoneCrossingA(hwnd : super::super::Foundation:: HWND, szurlprev : ::windows_sys::core::PCSTR, szurlnew : ::windows_sys::core::PCSTR, bpost : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetConfirmZoneCrossingW(hwnd : super::super::Foundation:: HWND, szurlprev : ::windows_sys::core::PCWSTR, szurlnew : ::windows_sys::core::PCWSTR, bpost : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("wininet.dll" "system" fn InternetConnectA(hinternet : *const ::core::ffi::c_void, lpszservername : ::windows_sys::core::PCSTR, nserverport : u16, lpszusername : ::windows_sys::core::PCSTR, lpszpassword : ::windows_sys::core::PCSTR, dwservice : u32, dwflags : u32, dwcontext : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("wininet.dll" "system" fn InternetConnectW(hinternet : *const ::core::ffi::c_void, lpszservername : ::windows_sys::core::PCWSTR, nserverport : u16, lpszusername : ::windows_sys::core::PCWSTR, lpszpassword : ::windows_sys::core::PCWSTR, dwservice : u32, dwflags : u32, dwcontext : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetConvertUrlFromWireToWideChar(pcszurl : ::windows_sys::core::PCSTR, cchurl : u32, pcwszbaseurl : ::windows_sys::core::PCWSTR, dwcodepagehost : u32, dwcodepagepath : u32, fencodepathextra : super::super::Foundation:: BOOL, dwcodepageextra : u32, ppwszconvertedurl : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinHttp"))] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinHttp\"`"] fn InternetCrackUrlA(lpszurl : ::windows_sys::core::PCSTR, dwurllength : u32, dwflags : super::WinHttp:: WIN_HTTP_CREATE_URL_FLAGS, lpurlcomponents : *mut URL_COMPONENTSA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinHttp"))] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Networking_WinHttp\"`"] fn InternetCrackUrlW(lpszurl : ::windows_sys::core::PCWSTR, dwurllength : u32, dwflags : super::WinHttp:: WIN_HTTP_CREATE_URL_FLAGS, lpurlcomponents : *mut URL_COMPONENTSW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetCreateUrlA(lpurlcomponents : *const URL_COMPONENTSA, dwflags : u32, lpszurl : ::windows_sys::core::PSTR, lpdwurllength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetCreateUrlW(lpurlcomponents : *const URL_COMPONENTSW, dwflags : u32, lpszurl : ::windows_sys::core::PWSTR, lpdwurllength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetDial(hwndparent : super::super::Foundation:: HWND, lpszconnectoid : ::windows_sys::core::PCSTR, dwflags : u32, lpdwconnection : *mut u32, dwreserved : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetDialA(hwndparent : super::super::Foundation:: HWND, lpszconnectoid : ::windows_sys::core::PCSTR, dwflags : u32, lpdwconnection : *mut usize, dwreserved : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetDialW(hwndparent : super::super::Foundation:: HWND, lpszconnectoid : ::windows_sys::core::PCWSTR, dwflags : u32, lpdwconnection : *mut usize, dwreserved : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetEnumPerSiteCookieDecisionA(pszsitename : ::windows_sys::core::PSTR, pcsitenamesize : *mut u32, pdwdecision : *mut u32, dwindex : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetEnumPerSiteCookieDecisionW(pszsitename : ::windows_sys::core::PWSTR, pcsitenamesize : *mut u32, pdwdecision : *mut u32, dwindex : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetErrorDlg(hwnd : super::super::Foundation:: HWND, hrequest : *mut ::core::ffi::c_void, dwerror : u32, dwflags : u32, lppvdata : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetFindNextFileA(hfind : *const ::core::ffi::c_void, lpvfinddata : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetFindNextFileW(hfind : *const ::core::ffi::c_void, lpvfinddata : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetFortezzaCommand(dwcommand : u32, hwnd : super::super::Foundation:: HWND, dwreserved : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetFreeCookies(pcookies : *mut INTERNET_COOKIE2, dwcookiecount : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetFreeProxyInfoList(pproxyinfolist : *mut WININET_PROXY_INFO_LIST) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetConnectedState(lpdwflags : *mut INTERNET_CONNECTION, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetConnectedStateEx(lpdwflags : *mut INTERNET_CONNECTION, lpszconnectionname : ::windows_sys::core::PSTR, dwnamelen : u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetConnectedStateExA(lpdwflags : *mut INTERNET_CONNECTION, lpszconnectionname : ::windows_sys::core::PSTR, cchnamelen : u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetConnectedStateExW(lpdwflags : *mut INTERNET_CONNECTION, lpszconnectionname : ::windows_sys::core::PWSTR, cchnamelen : u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetCookieA(lpszurl : ::windows_sys::core::PCSTR, lpszcookiename : ::windows_sys::core::PCSTR, lpszcookiedata : ::windows_sys::core::PSTR, lpdwsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetCookieEx2(pcwszurl : ::windows_sys::core::PCWSTR, pcwszcookiename : ::windows_sys::core::PCWSTR, dwflags : u32, ppcookies : *mut *mut INTERNET_COOKIE2, pdwcookiecount : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetCookieExA(lpszurl : ::windows_sys::core::PCSTR, lpszcookiename : ::windows_sys::core::PCSTR, lpszcookiedata : ::windows_sys::core::PCSTR, lpdwsize : *mut u32, dwflags : INTERNET_COOKIE_FLAGS, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetCookieExW(lpszurl : ::windows_sys::core::PCWSTR, lpszcookiename : ::windows_sys::core::PCWSTR, lpszcookiedata : ::windows_sys::core::PCWSTR, lpdwsize : *mut u32, dwflags : INTERNET_COOKIE_FLAGS, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetCookieW(lpszurl : ::windows_sys::core::PCWSTR, lpszcookiename : ::windows_sys::core::PCWSTR, lpszcookiedata : ::windows_sys::core::PWSTR, lpdwsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetLastResponseInfoA(lpdwerror : *mut u32, lpszbuffer : ::windows_sys::core::PSTR, lpdwbufferlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetLastResponseInfoW(lpdwerror : *mut u32, lpszbuffer : ::windows_sys::core::PWSTR, lpdwbufferlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetPerSiteCookieDecisionA(pchhostname : ::windows_sys::core::PCSTR, presult : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetPerSiteCookieDecisionW(pchhostname : ::windows_sys::core::PCWSTR, presult : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGetProxyForUrl(hinternet : *const ::core::ffi::c_void, pcwszurl : ::windows_sys::core::PCWSTR, pproxyinfolist : *mut WININET_PROXY_INFO_LIST) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn InternetGetSecurityInfoByURL(lpszurl : ::windows_sys::core::PCSTR, ppcertchain : *mut *mut super::super::Security::Cryptography:: CERT_CHAIN_CONTEXT, pdwsecureflags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn InternetGetSecurityInfoByURLA(lpszurl : ::windows_sys::core::PCSTR, ppcertchain : *mut *mut super::super::Security::Cryptography:: CERT_CHAIN_CONTEXT, pdwsecureflags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn InternetGetSecurityInfoByURLW(lpszurl : ::windows_sys::core::PCWSTR, ppcertchain : *mut *mut super::super::Security::Cryptography:: CERT_CHAIN_CONTEXT, pdwsecureflags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGoOnline(lpszurl : ::windows_sys::core::PCSTR, hwndparent : super::super::Foundation:: HWND, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGoOnlineA(lpszurl : ::windows_sys::core::PCSTR, hwndparent : super::super::Foundation:: HWND, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetGoOnlineW(lpszurl : ::windows_sys::core::PCWSTR, hwndparent : super::super::Foundation:: HWND, dwflags : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn InternetHangUp(dwconnection : usize, dwreserved : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetInitializeAutoProxyDll(dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetLockRequestFile(hinternet : *const ::core::ffi::c_void, lphlockrequestinfo : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn InternetOpenA(lpszagent : ::windows_sys::core::PCSTR, dwaccesstype : u32, lpszproxy : ::windows_sys::core::PCSTR, lpszproxybypass : ::windows_sys::core::PCSTR, dwflags : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("wininet.dll" "system" fn InternetOpenUrlA(hinternet : *const ::core::ffi::c_void, lpszurl : ::windows_sys::core::PCSTR, lpszheaders : ::windows_sys::core::PCSTR, dwheaderslength : u32, dwflags : u32, dwcontext : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("wininet.dll" "system" fn InternetOpenUrlW(hinternet : *const ::core::ffi::c_void, lpszurl : ::windows_sys::core::PCWSTR, lpszheaders : ::windows_sys::core::PCWSTR, dwheaderslength : u32, dwflags : u32, dwcontext : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("wininet.dll" "system" fn InternetOpenW(lpszagent : ::windows_sys::core::PCWSTR, dwaccesstype : u32, lpszproxy : ::windows_sys::core::PCWSTR, lpszproxybypass : ::windows_sys::core::PCWSTR, dwflags : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetQueryDataAvailable(hfile : *const ::core::ffi::c_void, lpdwnumberofbytesavailable : *mut u32, dwflags : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetQueryFortezzaStatus(pdwstatus : *mut u32, dwreserved : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetQueryOptionA(hinternet : *const ::core::ffi::c_void, dwoption : u32, lpbuffer : *mut ::core::ffi::c_void, lpdwbufferlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetQueryOptionW(hinternet : *const ::core::ffi::c_void, dwoption : u32, lpbuffer : *mut ::core::ffi::c_void, lpdwbufferlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetReadFile(hfile : *const ::core::ffi::c_void, lpbuffer : *mut ::core::ffi::c_void, dwnumberofbytestoread : u32, lpdwnumberofbytesread : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetReadFileExA(hfile : *const ::core::ffi::c_void, lpbuffersout : *mut INTERNET_BUFFERSA, dwflags : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetReadFileExW(hfile : *const ::core::ffi::c_void, lpbuffersout : *mut INTERNET_BUFFERSW, dwflags : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSecurityProtocolToStringA(dwprotocol : u32, lpstr : ::windows_sys::core::PSTR, lpdwstrlength : *mut u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSecurityProtocolToStringW(dwprotocol : u32, lpstr : ::windows_sys::core::PWSTR, lpdwstrlength : *mut u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSetCookieA(lpszurl : ::windows_sys::core::PCSTR, lpszcookiename : ::windows_sys::core::PCSTR, lpszcookiedata : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSetCookieEx2(pcwszurl : ::windows_sys::core::PCWSTR, pcookie : *const INTERNET_COOKIE2, pcwszp3ppolicy : ::windows_sys::core::PCWSTR, dwflags : u32, pdwcookiestate : *mut u32) -> u32); +::windows_targets::link!("wininet.dll" "system" fn InternetSetCookieExA(lpszurl : ::windows_sys::core::PCSTR, lpszcookiename : ::windows_sys::core::PCSTR, lpszcookiedata : ::windows_sys::core::PCSTR, dwflags : u32, dwreserved : usize) -> u32); +::windows_targets::link!("wininet.dll" "system" fn InternetSetCookieExW(lpszurl : ::windows_sys::core::PCWSTR, lpszcookiename : ::windows_sys::core::PCWSTR, lpszcookiedata : ::windows_sys::core::PCWSTR, dwflags : u32, dwreserved : usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSetCookieW(lpszurl : ::windows_sys::core::PCWSTR, lpszcookiename : ::windows_sys::core::PCWSTR, lpszcookiedata : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSetDialState(lpszconnectoid : ::windows_sys::core::PCSTR, dwstate : u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSetDialStateA(lpszconnectoid : ::windows_sys::core::PCSTR, dwstate : u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSetDialStateW(lpszconnectoid : ::windows_sys::core::PCWSTR, dwstate : u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn InternetSetFilePointer(hfile : *const ::core::ffi::c_void, ldistancetomove : i32, lpdistancetomovehigh : *mut i32, dwmovemethod : u32, dwcontext : usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSetOptionA(hinternet : *const ::core::ffi::c_void, dwoption : u32, lpbuffer : *const ::core::ffi::c_void, dwbufferlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSetOptionExA(hinternet : *const ::core::ffi::c_void, dwoption : u32, lpbuffer : *const ::core::ffi::c_void, dwbufferlength : u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSetOptionExW(hinternet : *const ::core::ffi::c_void, dwoption : u32, lpbuffer : *const ::core::ffi::c_void, dwbufferlength : u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSetOptionW(hinternet : *const ::core::ffi::c_void, dwoption : u32, lpbuffer : *const ::core::ffi::c_void, dwbufferlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSetPerSiteCookieDecisionA(pchhostname : ::windows_sys::core::PCSTR, dwdecision : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetSetPerSiteCookieDecisionW(pchhostname : ::windows_sys::core::PCWSTR, dwdecision : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn InternetSetStatusCallback(hinternet : *const ::core::ffi::c_void, lpfninternetcallback : LPINTERNET_STATUS_CALLBACK) -> LPINTERNET_STATUS_CALLBACK); +::windows_targets::link!("wininet.dll" "system" fn InternetSetStatusCallbackA(hinternet : *const ::core::ffi::c_void, lpfninternetcallback : LPINTERNET_STATUS_CALLBACK) -> LPINTERNET_STATUS_CALLBACK); +::windows_targets::link!("wininet.dll" "system" fn InternetSetStatusCallbackW(hinternet : *const ::core::ffi::c_void, lpfninternetcallback : LPINTERNET_STATUS_CALLBACK) -> LPINTERNET_STATUS_CALLBACK); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetShowSecurityInfoByURL(lpszurl : ::windows_sys::core::PCSTR, hwndparent : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetShowSecurityInfoByURLA(lpszurl : ::windows_sys::core::PCSTR, hwndparent : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetShowSecurityInfoByURLW(lpszurl : ::windows_sys::core::PCWSTR, hwndparent : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetTimeFromSystemTime(pst : *const super::super::Foundation:: SYSTEMTIME, dwrfc : u32, lpsztime : ::windows_sys::core::PSTR, cbtime : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetTimeFromSystemTimeA(pst : *const super::super::Foundation:: SYSTEMTIME, dwrfc : u32, lpsztime : ::windows_sys::core::PSTR, cbtime : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetTimeFromSystemTimeW(pst : *const super::super::Foundation:: SYSTEMTIME, dwrfc : u32, lpsztime : ::windows_sys::core::PWSTR, cbtime : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetTimeToSystemTime(lpsztime : ::windows_sys::core::PCSTR, pst : *mut super::super::Foundation:: SYSTEMTIME, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetTimeToSystemTimeA(lpsztime : ::windows_sys::core::PCSTR, pst : *mut super::super::Foundation:: SYSTEMTIME, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetTimeToSystemTimeW(lpsztime : ::windows_sys::core::PCWSTR, pst : *mut super::super::Foundation:: SYSTEMTIME, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetUnlockRequestFile(hlockrequestinfo : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetWriteFile(hfile : *const ::core::ffi::c_void, lpbuffer : *const ::core::ffi::c_void, dwnumberofbytestowrite : u32, lpdwnumberofbyteswritten : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetWriteFileExA(hfile : *const ::core::ffi::c_void, lpbuffersin : *const INTERNET_BUFFERSA, dwflags : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternetWriteFileExW(hfile : *const ::core::ffi::c_void, lpbuffersin : *const INTERNET_BUFFERSW, dwflags : u32, dwcontext : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsDomainLegalCookieDomainA(pchdomain : ::windows_sys::core::PCSTR, pchfulldomain : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsDomainLegalCookieDomainW(pchdomain : ::windows_sys::core::PCWSTR, pchfulldomain : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsHostInProxyBypassList(tscheme : INTERNET_SCHEME, lpszhost : ::windows_sys::core::PCSTR, cchhost : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsProfilesEnabled() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsUrlCacheEntryExpiredA(lpszurlname : ::windows_sys::core::PCSTR, dwflags : u32, pftlastmodified : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsUrlCacheEntryExpiredW(lpszurlname : ::windows_sys::core::PCWSTR, dwflags : u32, pftlastmodified : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadUrlCacheContent() -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn ParseX509EncodedCertificateForListBoxEntry(lpcert : *const u8, cbcert : u32, lpszlistboxentry : ::windows_sys::core::PSTR, lpdwlistboxentry : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerformOperationOverUrlCacheA(pszurlsearchpattern : ::windows_sys::core::PCSTR, dwflags : u32, dwfilter : u32, groupid : i64, preserved1 : *const ::core::ffi::c_void, pdwreserved2 : *const u32, preserved3 : *const ::core::ffi::c_void, op : CACHE_OPERATOR, poperatordata : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wininet.dll" "system" fn PrivacyGetZonePreferenceW(dwzone : u32, dwtype : u32, pdwtemplate : *mut u32, pszbuffer : ::windows_sys::core::PWSTR, pdwbufferlength : *mut u32) -> u32); +::windows_targets::link!("wininet.dll" "system" fn PrivacySetZonePreferenceW(dwzone : u32, dwtype : u32, dwtemplate : u32, pszpreference : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadGuidsForConnectedNetworks(pcnetworks : *mut u32, pppwsznetworkguids : *mut *mut ::windows_sys::core::PWSTR, pppbstrnetworknames : *mut *mut ::windows_sys::core::BSTR, pppwszgwmacs : *mut *mut ::windows_sys::core::PWSTR, pcgatewaymacs : *mut u32, pdwflags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadUrlCacheEntryStream(hurlcachestream : super::super::Foundation:: HANDLE, dwlocation : u32, lpbuffer : *mut ::core::ffi::c_void, lpdwlen : *mut u32, reserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadUrlCacheEntryStreamEx(hurlcachestream : super::super::Foundation:: HANDLE, qwlocation : u64, lpbuffer : *mut ::core::ffi::c_void, lpdwlen : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterUrlCacheNotification(hwnd : super::super::Foundation:: HWND, umsg : u32, gid : i64, dwopsfilter : u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResumeSuspendedDownload(hrequest : *const ::core::ffi::c_void, dwresultcode : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RetrieveUrlCacheEntryFileA(lpszurlname : ::windows_sys::core::PCSTR, lpcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo : *mut u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RetrieveUrlCacheEntryFileW(lpszurlname : ::windows_sys::core::PCWSTR, lpcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo : *mut u32, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RetrieveUrlCacheEntryStreamA(lpszurlname : ::windows_sys::core::PCSTR, lpcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo : *mut u32, frandomread : super::super::Foundation:: BOOL, dwreserved : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RetrieveUrlCacheEntryStreamW(lpszurlname : ::windows_sys::core::PCWSTR, lpcacheentryinfo : *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo : *mut u32, frandomread : super::super::Foundation:: BOOL, dwreserved : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RunOnceUrlCache(hwnd : super::super::Foundation:: HWND, hinst : super::super::Foundation:: HINSTANCE, lpszcmd : ::windows_sys::core::PCSTR, ncmdshow : i32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUrlCacheConfigInfoA(lpcacheconfiginfo : *const INTERNET_CACHE_CONFIG_INFOA, dwfieldcontrol : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUrlCacheConfigInfoW(lpcacheconfiginfo : *const INTERNET_CACHE_CONFIG_INFOW, dwfieldcontrol : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUrlCacheEntryGroup(lpszurlname : ::windows_sys::core::PCSTR, dwflags : u32, groupid : i64, pbgroupattributes : *const u8, cbgroupattributes : u32, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUrlCacheEntryGroupA(lpszurlname : ::windows_sys::core::PCSTR, dwflags : u32, groupid : i64, pbgroupattributes : *const u8, cbgroupattributes : u32, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUrlCacheEntryGroupW(lpszurlname : ::windows_sys::core::PCWSTR, dwflags : u32, groupid : i64, pbgroupattributes : *const u8, cbgroupattributes : u32, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUrlCacheEntryInfoA(lpszurlname : ::windows_sys::core::PCSTR, lpcacheentryinfo : *const INTERNET_CACHE_ENTRY_INFOA, dwfieldcontrol : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUrlCacheEntryInfoW(lpszurlname : ::windows_sys::core::PCWSTR, lpcacheentryinfo : *const INTERNET_CACHE_ENTRY_INFOW, dwfieldcontrol : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUrlCacheGroupAttributeA(gid : i64, dwflags : u32, dwattributes : u32, lpgroupinfo : *const INTERNET_CACHE_GROUP_INFOA, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUrlCacheGroupAttributeW(gid : i64, dwflags : u32, dwattributes : u32, lpgroupinfo : *const INTERNET_CACHE_GROUP_INFOW, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUrlCacheHeaderData(nidx : u32, dwdata : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ShowClientAuthCerts(hwndparent : super::super::Foundation:: HWND) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Cryptography\"`"] fn ShowSecurityInfo(hwndparent : super::super::Foundation:: HWND, psecurityinfo : *const INTERNET_SECURITY_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ShowX509EncodedCertificate(hwndparent : super::super::Foundation:: HWND, lpcert : *const u8, cbcert : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnlockUrlCacheEntryFile(lpszurlname : ::windows_sys::core::PCSTR, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnlockUrlCacheEntryFileA(lpszurlname : ::windows_sys::core::PCSTR, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnlockUrlCacheEntryFileW(lpszurlname : ::windows_sys::core::PCWSTR, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnlockUrlCacheEntryStream(hurlcachestream : super::super::Foundation:: HANDLE, reserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdateUrlCacheContentPath(sznewpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlCacheCheckEntriesExist(rgpwszurls : *const ::windows_sys::core::PCWSTR, centries : u32, rgfexist : *mut super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("wininet.dll" "system" fn UrlCacheCloseEntryHandle(hentryfile : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("wininet.dll" "system" fn UrlCacheContainerSetEntryMaximumAge(pwszprefix : ::windows_sys::core::PCWSTR, dwentrymaxage : u32) -> u32); +::windows_targets::link!("wininet.dll" "system" fn UrlCacheCreateContainer(pwszname : ::windows_sys::core::PCWSTR, pwszprefix : ::windows_sys::core::PCWSTR, pwszdirectory : ::windows_sys::core::PCWSTR, ulllimit : u64, dwoptions : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlCacheFindFirstEntry(pwszprefix : ::windows_sys::core::PCWSTR, dwflags : u32, dwfilter : u32, groupid : i64, pcacheentryinfo : *mut URLCACHE_ENTRY_INFO, phfind : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlCacheFindNextEntry(hfind : super::super::Foundation:: HANDLE, pcacheentryinfo : *mut URLCACHE_ENTRY_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlCacheFreeEntryInfo(pcacheentryinfo : *mut URLCACHE_ENTRY_INFO) -> ()); +::windows_targets::link!("wininet.dll" "system" fn UrlCacheFreeGlobalSpace(ulltargetsize : u64, dwfilter : u32) -> u32); +::windows_targets::link!("wininet.dll" "system" fn UrlCacheGetContentPaths(pppwszdirectories : *mut *mut ::windows_sys::core::PWSTR, pcdirectories : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlCacheGetEntryInfo(happcache : *const ::core::ffi::c_void, pcwszurl : ::windows_sys::core::PCWSTR, pcacheentryinfo : *mut URLCACHE_ENTRY_INFO) -> u32); +::windows_targets::link!("wininet.dll" "system" fn UrlCacheGetGlobalCacheSize(dwfilter : u32, pullsize : *mut u64, pulllimit : *mut u64) -> u32); +::windows_targets::link!("wininet.dll" "system" fn UrlCacheGetGlobalLimit(limittype : URL_CACHE_LIMIT_TYPE, pulllimit : *mut u64) -> u32); +::windows_targets::link!("wininet.dll" "system" fn UrlCacheReadEntryStream(hurlcachestream : *const ::core::ffi::c_void, ulllocation : u64, pbuffer : *mut ::core::ffi::c_void, dwbufferlen : u32, pdwbufferlen : *mut u32) -> u32); +::windows_targets::link!("wininet.dll" "system" fn UrlCacheReloadSettings() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlCacheRetrieveEntryFile(happcache : *const ::core::ffi::c_void, pcwszurl : ::windows_sys::core::PCWSTR, pcacheentryinfo : *mut URLCACHE_ENTRY_INFO, phentryfile : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wininet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlCacheRetrieveEntryStream(happcache : *const ::core::ffi::c_void, pcwszurl : ::windows_sys::core::PCWSTR, frandomread : super::super::Foundation:: BOOL, pcacheentryinfo : *mut URLCACHE_ENTRY_INFO, phentrystream : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("wininet.dll" "system" fn UrlCacheServer() -> u32); +::windows_targets::link!("wininet.dll" "system" fn UrlCacheSetGlobalLimit(limittype : URL_CACHE_LIMIT_TYPE, ulllimit : u64) -> u32); +::windows_targets::link!("wininet.dll" "system" fn UrlCacheUpdateEntryExtraData(happcache : *const ::core::ffi::c_void, pcwszurl : ::windows_sys::core::PCWSTR, pbextradata : *const u8, cbextradata : u32) -> u32); +pub type IDialBranding = *mut ::core::ffi::c_void; +pub type IDialEngine = *mut ::core::ffi::c_void; +pub type IDialEventSink = *mut ::core::ffi::c_void; +pub type IProofOfPossessionCookieInfoManager = *mut ::core::ffi::c_void; +pub type IProofOfPossessionCookieInfoManager2 = *mut ::core::ffi::c_void; +pub const ANY_CACHE_ENTRY: u32 = 4294967295u32; +pub const APP_CACHE_ENTRY_TYPE_EXPLICIT: u32 = 2u32; +pub const APP_CACHE_ENTRY_TYPE_FALLBACK: u32 = 4u32; +pub const APP_CACHE_ENTRY_TYPE_FOREIGN: u32 = 8u32; +pub const APP_CACHE_ENTRY_TYPE_MANIFEST: u32 = 16u32; +pub const APP_CACHE_ENTRY_TYPE_MASTER: u32 = 1u32; +pub const APP_CACHE_LOOKUP_NO_MASTER_ONLY: u32 = 1u32; +pub const AUTH_FLAG_DISABLE_BASIC_CLEARCHANNEL: u32 = 4u32; +pub const AUTH_FLAG_DISABLE_NEGOTIATE: u32 = 1u32; +pub const AUTH_FLAG_DISABLE_SERVER_AUTH: u32 = 8u32; +pub const AUTH_FLAG_ENABLE_NEGOTIATE: u32 = 2u32; +pub const AUTH_FLAG_RESET: u32 = 0u32; +pub const AUTODIAL_MODE_ALWAYS: u32 = 2u32; +pub const AUTODIAL_MODE_NEVER: u32 = 1u32; +pub const AUTODIAL_MODE_NO_NETWORK_PRESENT: u32 = 4u32; +pub const AUTO_PROXY_FLAG_ALWAYS_DETECT: u32 = 2u32; +pub const AUTO_PROXY_FLAG_CACHE_INIT_RUN: u32 = 32u32; +pub const AUTO_PROXY_FLAG_DETECTION_RUN: u32 = 4u32; +pub const AUTO_PROXY_FLAG_DETECTION_SUSPECT: u32 = 64u32; +pub const AUTO_PROXY_FLAG_DONT_CACHE_PROXY_RESULT: u32 = 16u32; +pub const AUTO_PROXY_FLAG_MIGRATED: u32 = 8u32; +pub const AUTO_PROXY_FLAG_USER_SET: u32 = 1u32; +pub const AppCacheFinalizeStateComplete: APP_CACHE_FINALIZE_STATE = 2i32; +pub const AppCacheFinalizeStateIncomplete: APP_CACHE_FINALIZE_STATE = 0i32; +pub const AppCacheFinalizeStateManifestChange: APP_CACHE_FINALIZE_STATE = 1i32; +pub const AppCacheStateNoUpdateNeeded: APP_CACHE_STATE = 0i32; +pub const AppCacheStateUpdateNeeded: APP_CACHE_STATE = 1i32; +pub const AppCacheStateUpdateNeededMasterOnly: APP_CACHE_STATE = 3i32; +pub const AppCacheStateUpdateNeededNew: APP_CACHE_STATE = 2i32; +pub const CACHEGROUP_ATTRIBUTE_BASIC: u32 = 1u32; +pub const CACHEGROUP_ATTRIBUTE_FLAG: u32 = 2u32; +pub const CACHEGROUP_ATTRIBUTE_GET_ALL: u32 = 4294967295u32; +pub const CACHEGROUP_ATTRIBUTE_GROUPNAME: u32 = 16u32; +pub const CACHEGROUP_ATTRIBUTE_QUOTA: u32 = 8u32; +pub const CACHEGROUP_ATTRIBUTE_STORAGE: u32 = 32u32; +pub const CACHEGROUP_ATTRIBUTE_TYPE: u32 = 4u32; +pub const CACHEGROUP_FLAG_FLUSHURL_ONDELETE: u32 = 2u32; +pub const CACHEGROUP_FLAG_GIDONLY: u32 = 4u32; +pub const CACHEGROUP_FLAG_NONPURGEABLE: u32 = 1u32; +pub const CACHEGROUP_FLAG_VALID: u32 = 7u32; +pub const CACHEGROUP_ID_BUILTIN_STICKY: u64 = 1152921504606846983u64; +pub const CACHEGROUP_SEARCH_ALL: u32 = 0u32; +pub const CACHEGROUP_SEARCH_BYURL: u32 = 1u32; +pub const CACHEGROUP_TYPE_INVALID: u32 = 1u32; +pub const CACHE_CONFIG_APPCONTAINER_CONTENT_QUOTA_FC: u32 = 131072u32; +pub const CACHE_CONFIG_APPCONTAINER_TOTAL_CONTENT_QUOTA_FC: u32 = 262144u32; +pub const CACHE_CONFIG_CONTENT_PATHS_FC: CACHE_CONFIG = 256u32; +pub const CACHE_CONFIG_CONTENT_QUOTA_FC: u32 = 32768u32; +pub const CACHE_CONFIG_CONTENT_USAGE_FC: CACHE_CONFIG = 8192u32; +pub const CACHE_CONFIG_COOKIES_PATHS_FC: CACHE_CONFIG = 512u32; +pub const CACHE_CONFIG_DISK_CACHE_PATHS_FC: CACHE_CONFIG = 64u32; +pub const CACHE_CONFIG_FORCE_CLEANUP_FC: CACHE_CONFIG = 32u32; +pub const CACHE_CONFIG_HISTORY_PATHS_FC: CACHE_CONFIG = 1024u32; +pub const CACHE_CONFIG_QUOTA_FC: CACHE_CONFIG = 2048u32; +pub const CACHE_CONFIG_STICKY_CONTENT_USAGE_FC: CACHE_CONFIG = 16384u32; +pub const CACHE_CONFIG_SYNC_MODE_FC: CACHE_CONFIG = 128u32; +pub const CACHE_CONFIG_TOTAL_CONTENT_QUOTA_FC: u32 = 65536u32; +pub const CACHE_CONFIG_USER_MODE_FC: CACHE_CONFIG = 4096u32; +pub const CACHE_ENTRY_ACCTIME_FC: u32 = 256u32; +pub const CACHE_ENTRY_ATTRIBUTE_FC: u32 = 4u32; +pub const CACHE_ENTRY_EXEMPT_DELTA_FC: u32 = 2048u32; +pub const CACHE_ENTRY_EXPTIME_FC: u32 = 128u32; +pub const CACHE_ENTRY_HEADERINFO_FC: u32 = 1024u32; +pub const CACHE_ENTRY_HITRATE_FC: u32 = 16u32; +pub const CACHE_ENTRY_MODIFY_DATA_FC: u32 = 2147483648u32; +pub const CACHE_ENTRY_MODTIME_FC: u32 = 64u32; +pub const CACHE_ENTRY_SYNCTIME_FC: u32 = 512u32; +pub const CACHE_ENTRY_TYPE_FC: u32 = 4096u32; +pub const CACHE_FIND_CONTAINER_RETURN_NOCHANGE: u32 = 1u32; +pub const CACHE_HEADER_DATA_CACHE_READ_COUNT_SINCE_LAST_SCAVENGE: u32 = 9u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_12: u32 = 12u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_13: u32 = 13u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_15: u32 = 15u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_16: u32 = 16u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_17: u32 = 17u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_18: u32 = 18u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_19: u32 = 19u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_20: u32 = 20u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_23: u32 = 23u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_24: u32 = 24u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_25: u32 = 25u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_26: u32 = 26u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_28: u32 = 28u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_29: u32 = 29u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_30: u32 = 30u32; +pub const CACHE_HEADER_DATA_CACHE_RESERVED_31: u32 = 31u32; +pub const CACHE_HEADER_DATA_CACHE_WRITE_COUNT_SINCE_LAST_SCAVENGE: u32 = 10u32; +pub const CACHE_HEADER_DATA_CONLIST_CHANGE_COUNT: u32 = 1u32; +pub const CACHE_HEADER_DATA_COOKIE_CHANGE_COUNT: u32 = 2u32; +pub const CACHE_HEADER_DATA_CURRENT_SETTINGS_VERSION: u32 = 0u32; +pub const CACHE_HEADER_DATA_DOWNLOAD_PARTIAL: u32 = 14u32; +pub const CACHE_HEADER_DATA_GID_HIGH: u32 = 7u32; +pub const CACHE_HEADER_DATA_GID_LOW: u32 = 6u32; +pub const CACHE_HEADER_DATA_HSTS_CHANGE_COUNT: u32 = 11u32; +pub const CACHE_HEADER_DATA_LAST: u32 = 31u32; +pub const CACHE_HEADER_DATA_LAST_SCAVENGE_TIMESTAMP: u32 = 8u32; +pub const CACHE_HEADER_DATA_NOTIFICATION_FILTER: u32 = 21u32; +pub const CACHE_HEADER_DATA_NOTIFICATION_HWND: u32 = 3u32; +pub const CACHE_HEADER_DATA_NOTIFICATION_MESG: u32 = 4u32; +pub const CACHE_HEADER_DATA_ROOTGROUP_OFFSET: u32 = 5u32; +pub const CACHE_HEADER_DATA_ROOT_GROUPLIST_OFFSET: u32 = 27u32; +pub const CACHE_HEADER_DATA_ROOT_LEAK_OFFSET: u32 = 22u32; +pub const CACHE_HEADER_DATA_SSL_STATE_COUNT: u32 = 14u32; +pub const CACHE_NOTIFY_ADD_URL: u32 = 1u32; +pub const CACHE_NOTIFY_DELETE_ALL: u32 = 8u32; +pub const CACHE_NOTIFY_DELETE_URL: u32 = 2u32; +pub const CACHE_NOTIFY_FILTER_CHANGED: u32 = 268435456u32; +pub const CACHE_NOTIFY_SET_OFFLINE: u32 = 512u32; +pub const CACHE_NOTIFY_SET_ONLINE: u32 = 256u32; +pub const CACHE_NOTIFY_UPDATE_URL: u32 = 4u32; +pub const CACHE_NOTIFY_URL_SET_STICKY: u32 = 16u32; +pub const CACHE_NOTIFY_URL_UNSET_STICKY: u32 = 32u32; +pub const COOKIE_ACCEPTED_CACHE_ENTRY: u32 = 4096u32; +pub const COOKIE_ALLOW: u32 = 2u32; +pub const COOKIE_ALLOW_ALL: u32 = 4u32; +pub const COOKIE_CACHE_ENTRY: u32 = 1048576u32; +pub const COOKIE_DONT_ALLOW: u32 = 1u32; +pub const COOKIE_DONT_ALLOW_ALL: u32 = 8u32; +pub const COOKIE_DOWNGRADED_CACHE_ENTRY: u32 = 16384u32; +pub const COOKIE_LEASHED_CACHE_ENTRY: u32 = 8192u32; +pub const COOKIE_OP_3RD_PARTY: u32 = 32u32; +pub const COOKIE_OP_GET: u32 = 4u32; +pub const COOKIE_OP_MODIFY: u32 = 2u32; +pub const COOKIE_OP_PERSISTENT: u32 = 16u32; +pub const COOKIE_OP_SESSION: u32 = 8u32; +pub const COOKIE_OP_SET: u32 = 1u32; +pub const COOKIE_REJECTED_CACHE_ENTRY: u32 = 32768u32; +pub const COOKIE_STATE_ACCEPT: InternetCookieState = 1i32; +pub const COOKIE_STATE_DOWNGRADE: InternetCookieState = 4i32; +pub const COOKIE_STATE_LB: u32 = 0u32; +pub const COOKIE_STATE_LEASH: InternetCookieState = 3i32; +pub const COOKIE_STATE_MAX: InternetCookieState = 5i32; +pub const COOKIE_STATE_PROMPT: InternetCookieState = 2i32; +pub const COOKIE_STATE_REJECT: InternetCookieState = 5i32; +pub const COOKIE_STATE_UB: u32 = 5u32; +pub const COOKIE_STATE_UNKNOWN: InternetCookieState = 0i32; +pub const ConnectionEstablishmentEnd: REQUEST_TIMES = 3i32; +pub const ConnectionEstablishmentStart: REQUEST_TIMES = 2i32; +pub const DIALENG_OperationComplete: u32 = 65536u32; +pub const DIALENG_RedialAttempt: u32 = 65537u32; +pub const DIALENG_RedialWait: u32 = 65538u32; +pub const DIALPROP_DOMAIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Domain"); +pub const DIALPROP_LASTERROR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastError"); +pub const DIALPROP_PASSWORD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Password"); +pub const DIALPROP_PHONENUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PhoneNumber"); +pub const DIALPROP_REDIALCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RedialCount"); +pub const DIALPROP_REDIALINTERVAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RedialInterval"); +pub const DIALPROP_RESOLVEDPHONE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResolvedPhone"); +pub const DIALPROP_SAVEPASSWORD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SavePassword"); +pub const DIALPROP_USERNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UserName"); +pub const DLG_FLAGS_INSECURE_FALLBACK: u32 = 4194304u32; +pub const DLG_FLAGS_INVALID_CA: u32 = 16777216u32; +pub const DLG_FLAGS_SEC_CERT_CN_INVALID: u32 = 33554432u32; +pub const DLG_FLAGS_SEC_CERT_DATE_INVALID: u32 = 67108864u32; +pub const DLG_FLAGS_SEC_CERT_REV_FAILED: u32 = 8388608u32; +pub const DLG_FLAGS_WEAK_SIGNATURE: u32 = 2097152u32; +pub const DOWNLOAD_CACHE_ENTRY: u32 = 1024u32; +pub const DUO_PROTOCOL_FLAG_SPDY3: u32 = 1u32; +pub const DUO_PROTOCOL_MASK: u32 = 1u32; +pub const EDITED_CACHE_ENTRY: u32 = 8u32; +pub const ERROR_FTP_DROPPED: u32 = 12111u32; +pub const ERROR_FTP_NO_PASSIVE_MODE: u32 = 12112u32; +pub const ERROR_FTP_TRANSFER_IN_PROGRESS: u32 = 12110u32; +pub const ERROR_GOPHER_ATTRIBUTE_NOT_FOUND: u32 = 12137u32; +pub const ERROR_GOPHER_DATA_ERROR: u32 = 12132u32; +pub const ERROR_GOPHER_END_OF_DATA: u32 = 12133u32; +pub const ERROR_GOPHER_INCORRECT_LOCATOR_TYPE: u32 = 12135u32; +pub const ERROR_GOPHER_INVALID_LOCATOR: u32 = 12134u32; +pub const ERROR_GOPHER_NOT_FILE: u32 = 12131u32; +pub const ERROR_GOPHER_NOT_GOPHER_PLUS: u32 = 12136u32; +pub const ERROR_GOPHER_PROTOCOL_ERROR: u32 = 12130u32; +pub const ERROR_GOPHER_UNKNOWN_LOCATOR: u32 = 12138u32; +pub const ERROR_HTTP_COOKIE_DECLINED: u32 = 12162u32; +pub const ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION: u32 = 12161u32; +pub const ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION_EX: u32 = 12907u32; +pub const ERROR_HTTP_DOWNLEVEL_SERVER: u32 = 12151u32; +pub const ERROR_HTTP_HEADER_ALREADY_EXISTS: u32 = 12155u32; +pub const ERROR_HTTP_HEADER_NOT_FOUND: u32 = 12150u32; +pub const ERROR_HTTP_HSTS_REDIRECT_REQUIRED: u32 = 12060u32; +pub const ERROR_HTTP_INVALID_HEADER: u32 = 12153u32; +pub const ERROR_HTTP_INVALID_QUERY_REQUEST: u32 = 12154u32; +pub const ERROR_HTTP_INVALID_SERVER_RESPONSE: u32 = 12152u32; +pub const ERROR_HTTP_NOT_REDIRECTED: u32 = 12160u32; +pub const ERROR_HTTP_PUSH_ENABLE_FAILED: u32 = 12149u32; +pub const ERROR_HTTP_PUSH_RETRY_NOT_SUPPORTED: u32 = 12148u32; +pub const ERROR_HTTP_PUSH_STATUS_CODE_NOT_SUPPORTED: u32 = 12147u32; +pub const ERROR_HTTP_REDIRECT_FAILED: u32 = 12156u32; +pub const ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION: u32 = 12168u32; +pub const ERROR_INTERNET_ASYNC_THREAD_FAILED: u32 = 12047u32; +pub const ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT: u32 = 12166u32; +pub const ERROR_INTERNET_BAD_OPTION_LENGTH: u32 = 12010u32; +pub const ERROR_INTERNET_BAD_REGISTRY_PARAMETER: u32 = 12022u32; +pub const ERROR_INTERNET_CACHE_SUCCESS: u32 = 12906u32; +pub const ERROR_INTERNET_CANNOT_CONNECT: u32 = 12029u32; +pub const ERROR_INTERNET_CHG_POST_IS_NON_SECURE: u32 = 12042u32; +pub const ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED: u32 = 12044u32; +pub const ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED_PROXY: u32 = 12187u32; +pub const ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP: u32 = 12046u32; +pub const ERROR_INTERNET_CONNECTION_ABORTED: u32 = 12030u32; +pub const ERROR_INTERNET_CONNECTION_AVAILABLE: u32 = 12902u32; +pub const ERROR_INTERNET_CONNECTION_RESET: u32 = 12031u32; +pub const ERROR_INTERNET_DECODING_FAILED: u32 = 12175u32; +pub const ERROR_INTERNET_DIALOG_PENDING: u32 = 12049u32; +pub const ERROR_INTERNET_DISALLOW_INPRIVATE: u32 = 12189u32; +pub const ERROR_INTERNET_DISCONNECTED: u32 = 12163u32; +pub const ERROR_INTERNET_EXTENDED_ERROR: u32 = 12003u32; +pub const ERROR_INTERNET_FAILED_DUETOSECURITYCHECK: u32 = 12171u32; +pub const ERROR_INTERNET_FEATURE_DISABLED: u32 = 12192u32; +pub const ERROR_INTERNET_FORCE_RETRY: u32 = 12032u32; +pub const ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED: u32 = 12054u32; +pub const ERROR_INTERNET_GLOBAL_CALLBACK_FAILED: u32 = 12191u32; +pub const ERROR_INTERNET_HANDLE_EXISTS: u32 = 12036u32; +pub const ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR: u32 = 12052u32; +pub const ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR: u32 = 12040u32; +pub const ERROR_INTERNET_HTTP_PROTOCOL_MISMATCH: u32 = 12190u32; +pub const ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR: u32 = 12039u32; +pub const ERROR_INTERNET_INCORRECT_FORMAT: u32 = 12027u32; +pub const ERROR_INTERNET_INCORRECT_HANDLE_STATE: u32 = 12019u32; +pub const ERROR_INTERNET_INCORRECT_HANDLE_TYPE: u32 = 12018u32; +pub const ERROR_INTERNET_INCORRECT_PASSWORD: u32 = 12014u32; +pub const ERROR_INTERNET_INCORRECT_USER_NAME: u32 = 12013u32; +pub const ERROR_INTERNET_INSECURE_FALLBACK_REQUIRED: u32 = 12059u32; +pub const ERROR_INTERNET_INSERT_CDROM: u32 = 12053u32; +pub const ERROR_INTERNET_INTERNAL_ERROR: u32 = 12004u32; +pub const ERROR_INTERNET_INTERNAL_SOCKET_ERROR: u32 = 12901u32; +pub const ERROR_INTERNET_INVALID_CA: u32 = 12045u32; +pub const ERROR_INTERNET_INVALID_OPERATION: u32 = 12016u32; +pub const ERROR_INTERNET_INVALID_OPTION: u32 = 12009u32; +pub const ERROR_INTERNET_INVALID_PROXY_REQUEST: u32 = 12033u32; +pub const ERROR_INTERNET_INVALID_URL: u32 = 12005u32; +pub const ERROR_INTERNET_ITEM_NOT_FOUND: u32 = 12028u32; +pub const ERROR_INTERNET_LOGIN_FAILURE: u32 = 12015u32; +pub const ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY: u32 = 12174u32; +pub const ERROR_INTERNET_MIXED_SECURITY: u32 = 12041u32; +pub const ERROR_INTERNET_NAME_NOT_RESOLVED: u32 = 12007u32; +pub const ERROR_INTERNET_NEED_MSN_SSPI_PKG: u32 = 12173u32; +pub const ERROR_INTERNET_NEED_UI: u32 = 12034u32; +pub const ERROR_INTERNET_NOT_INITIALIZED: u32 = 12172u32; +pub const ERROR_INTERNET_NOT_PROXY_REQUEST: u32 = 12020u32; +pub const ERROR_INTERNET_NO_CALLBACK: u32 = 12025u32; +pub const ERROR_INTERNET_NO_CM_CONNECTION: u32 = 12080u32; +pub const ERROR_INTERNET_NO_CONTEXT: u32 = 12024u32; +pub const ERROR_INTERNET_NO_DIRECT_ACCESS: u32 = 12023u32; +pub const ERROR_INTERNET_NO_KNOWN_SERVERS: u32 = 12903u32; +pub const ERROR_INTERNET_NO_NEW_CONTAINERS: u32 = 12051u32; +pub const ERROR_INTERNET_NO_PING_SUPPORT: u32 = 12905u32; +pub const ERROR_INTERNET_OFFLINE: u32 = 12163u32; +pub const ERROR_INTERNET_OPERATION_CANCELLED: u32 = 12017u32; +pub const ERROR_INTERNET_OPTION_NOT_SETTABLE: u32 = 12011u32; +pub const ERROR_INTERNET_OUT_OF_HANDLES: u32 = 12001u32; +pub const ERROR_INTERNET_PING_FAILED: u32 = 12904u32; +pub const ERROR_INTERNET_POST_IS_NON_SECURE: u32 = 12043u32; +pub const ERROR_INTERNET_PROTOCOL_NOT_FOUND: u32 = 12008u32; +pub const ERROR_INTERNET_PROXY_ALERT: u32 = 12061u32; +pub const ERROR_INTERNET_PROXY_SERVER_UNREACHABLE: u32 = 12165u32; +pub const ERROR_INTERNET_REDIRECT_SCHEME_CHANGE: u32 = 12048u32; +pub const ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND: u32 = 12021u32; +pub const ERROR_INTERNET_REQUEST_PENDING: u32 = 12026u32; +pub const ERROR_INTERNET_RETRY_DIALOG: u32 = 12050u32; +pub const ERROR_INTERNET_SECURE_FAILURE_PROXY: u32 = 12188u32; +pub const ERROR_INTERNET_SECURITY_CHANNEL_ERROR: u32 = 12157u32; +pub const ERROR_INTERNET_SEC_CERT_CN_INVALID: u32 = 12038u32; +pub const ERROR_INTERNET_SEC_CERT_DATE_INVALID: u32 = 12037u32; +pub const ERROR_INTERNET_SEC_CERT_ERRORS: u32 = 12055u32; +pub const ERROR_INTERNET_SEC_CERT_NO_REV: u32 = 12056u32; +pub const ERROR_INTERNET_SEC_CERT_REVOKED: u32 = 12170u32; +pub const ERROR_INTERNET_SEC_CERT_REV_FAILED: u32 = 12057u32; +pub const ERROR_INTERNET_SEC_CERT_WEAK_SIGNATURE: u32 = 12062u32; +pub const ERROR_INTERNET_SEC_INVALID_CERT: u32 = 12169u32; +pub const ERROR_INTERNET_SERVER_UNREACHABLE: u32 = 12164u32; +pub const ERROR_INTERNET_SHUTDOWN: u32 = 12012u32; +pub const ERROR_INTERNET_SOURCE_PORT_IN_USE: u32 = 12058u32; +pub const ERROR_INTERNET_TCPIP_NOT_INSTALLED: u32 = 12159u32; +pub const ERROR_INTERNET_TIMEOUT: u32 = 12002u32; +pub const ERROR_INTERNET_UNABLE_TO_CACHE_FILE: u32 = 12158u32; +pub const ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT: u32 = 12167u32; +pub const ERROR_INTERNET_UNRECOGNIZED_SCHEME: u32 = 12006u32; +pub const FLAGS_ERROR_UI_FILTER_FOR_ERRORS: u32 = 1u32; +pub const FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS: u32 = 2u32; +pub const FLAGS_ERROR_UI_FLAGS_GENERATE_DATA: u32 = 4u32; +pub const FLAGS_ERROR_UI_FLAGS_NO_UI: u32 = 8u32; +pub const FLAGS_ERROR_UI_SERIALIZE_DIALOGS: u32 = 16u32; +pub const FLAGS_ERROR_UI_SHOW_IDN_HOSTNAME: u32 = 32u32; +pub const FLAG_ICC_FORCE_CONNECTION: u32 = 1u32; +pub const FORTCMD_CHG_PERSONALITY: FORTCMD = 3i32; +pub const FORTCMD_LOGOFF: FORTCMD = 2i32; +pub const FORTCMD_LOGON: FORTCMD = 1i32; +pub const FORTSTAT_INSTALLED: FORTSTAT = 1i32; +pub const FORTSTAT_LOGGEDON: FORTSTAT = 2i32; +pub const FTP_TRANSFER_TYPE_ASCII: FTP_FLAGS = 1u32; +pub const FTP_TRANSFER_TYPE_BINARY: FTP_FLAGS = 2u32; +pub const FTP_TRANSFER_TYPE_UNKNOWN: FTP_FLAGS = 0u32; +pub const GOPHER_ABSTRACT_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Abstract"); +pub const GOPHER_ABSTRACT_CATEGORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("+ABSTRACT"); +pub const GOPHER_ADMIN_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Admin"); +pub const GOPHER_ADMIN_CATEGORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("+ADMIN"); +pub const GOPHER_ATTRIBUTE_ID_ABSTRACT: u32 = 2882325526u32; +pub const GOPHER_ATTRIBUTE_ID_ADMIN: u32 = 2882325514u32; +pub const GOPHER_ATTRIBUTE_ID_ALL: u32 = 2882325513u32; +pub const GOPHER_ATTRIBUTE_ID_BASE: u32 = 2882325504u32; +pub const GOPHER_ATTRIBUTE_ID_GEOG: u32 = 2882325522u32; +pub const GOPHER_ATTRIBUTE_ID_LOCATION: u32 = 2882325521u32; +pub const GOPHER_ATTRIBUTE_ID_MOD_DATE: u32 = 2882325515u32; +pub const GOPHER_ATTRIBUTE_ID_ORG: u32 = 2882325520u32; +pub const GOPHER_ATTRIBUTE_ID_PROVIDER: u32 = 2882325524u32; +pub const GOPHER_ATTRIBUTE_ID_RANGE: u32 = 2882325518u32; +pub const GOPHER_ATTRIBUTE_ID_SCORE: u32 = 2882325517u32; +pub const GOPHER_ATTRIBUTE_ID_SITE: u32 = 2882325519u32; +pub const GOPHER_ATTRIBUTE_ID_TIMEZONE: u32 = 2882325523u32; +pub const GOPHER_ATTRIBUTE_ID_TREEWALK: u32 = 2882325528u32; +pub const GOPHER_ATTRIBUTE_ID_TTL: u32 = 2882325516u32; +pub const GOPHER_ATTRIBUTE_ID_UNKNOWN: u32 = 2882325529u32; +pub const GOPHER_ATTRIBUTE_ID_VERSION: u32 = 2882325525u32; +pub const GOPHER_ATTRIBUTE_ID_VIEW: u32 = 2882325527u32; +pub const GOPHER_CATEGORY_ID_ABSTRACT: u32 = 2882325509u32; +pub const GOPHER_CATEGORY_ID_ADMIN: u32 = 2882325507u32; +pub const GOPHER_CATEGORY_ID_ALL: u32 = 2882325505u32; +pub const GOPHER_CATEGORY_ID_ASK: u32 = 2882325511u32; +pub const GOPHER_CATEGORY_ID_INFO: u32 = 2882325506u32; +pub const GOPHER_CATEGORY_ID_UNKNOWN: u32 = 2882325512u32; +pub const GOPHER_CATEGORY_ID_VERONICA: u32 = 2882325510u32; +pub const GOPHER_CATEGORY_ID_VIEWS: u32 = 2882325508u32; +pub const GOPHER_GEOG_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Geog"); +pub const GOPHER_INFO_CATEGORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("+INFO"); +pub const GOPHER_LOCATION_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Loc"); +pub const GOPHER_MOD_DATE_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Mod-Date"); +pub const GOPHER_ORG_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Org"); +pub const GOPHER_PROVIDER_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Provider"); +pub const GOPHER_RANGE_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Score-range"); +pub const GOPHER_SCORE_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Score"); +pub const GOPHER_SITE_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Site"); +pub const GOPHER_TIMEZONE_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TZ"); +pub const GOPHER_TREEWALK_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("treewalk"); +pub const GOPHER_TTL_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TTL"); +pub const GOPHER_TYPE_ASK: GOPHER_TYPE = 1073741824u32; +pub const GOPHER_TYPE_BINARY: GOPHER_TYPE = 512u32; +pub const GOPHER_TYPE_BITMAP: GOPHER_TYPE = 16384u32; +pub const GOPHER_TYPE_CALENDAR: GOPHER_TYPE = 524288u32; +pub const GOPHER_TYPE_CSO: GOPHER_TYPE = 4u32; +pub const GOPHER_TYPE_DIRECTORY: GOPHER_TYPE = 2u32; +pub const GOPHER_TYPE_DOS_ARCHIVE: GOPHER_TYPE = 32u32; +pub const GOPHER_TYPE_ERROR: GOPHER_TYPE = 8u32; +pub const GOPHER_TYPE_GIF: GOPHER_TYPE = 4096u32; +pub const GOPHER_TYPE_GOPHER_PLUS: GOPHER_TYPE = 2147483648u32; +pub const GOPHER_TYPE_HTML: GOPHER_TYPE = 131072u32; +pub const GOPHER_TYPE_IMAGE: GOPHER_TYPE = 8192u32; +pub const GOPHER_TYPE_INDEX_SERVER: GOPHER_TYPE = 128u32; +pub const GOPHER_TYPE_INLINE: GOPHER_TYPE = 1048576u32; +pub const GOPHER_TYPE_MAC_BINHEX: GOPHER_TYPE = 16u32; +pub const GOPHER_TYPE_MOVIE: GOPHER_TYPE = 32768u32; +pub const GOPHER_TYPE_PDF: GOPHER_TYPE = 262144u32; +pub const GOPHER_TYPE_REDUNDANT: GOPHER_TYPE = 1024u32; +pub const GOPHER_TYPE_SOUND: GOPHER_TYPE = 65536u32; +pub const GOPHER_TYPE_TELNET: GOPHER_TYPE = 256u32; +pub const GOPHER_TYPE_TEXT_FILE: GOPHER_TYPE = 1u32; +pub const GOPHER_TYPE_TN3270: GOPHER_TYPE = 2048u32; +pub const GOPHER_TYPE_UNIX_UUENCODED: GOPHER_TYPE = 64u32; +pub const GOPHER_TYPE_UNKNOWN: GOPHER_TYPE = 536870912u32; +pub const GOPHER_VERONICA_CATEGORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("+VERONICA"); +pub const GOPHER_VERSION_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Version"); +pub const GOPHER_VIEWS_CATEGORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("+VIEWS"); +pub const GOPHER_VIEW_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("View"); +pub const GROUPNAME_MAX_LENGTH: u32 = 120u32; +pub const GROUP_OWNER_STORAGE_SIZE: u32 = 4u32; +pub const HSR_ASYNC: u32 = 1u32; +pub const HSR_CHUNKED: u32 = 32u32; +pub const HSR_DOWNLOAD: u32 = 16u32; +pub const HSR_INITIATE: u32 = 8u32; +pub const HSR_SYNC: u32 = 4u32; +pub const HSR_USE_CONTEXT: u32 = 8u32; +pub const HTTP_1_1_CACHE_ENTRY: u32 = 64u32; +pub const HTTP_ADDREQ_FLAGS_MASK: u32 = 4294901760u32; +pub const HTTP_ADDREQ_FLAG_ADD: HTTP_ADDREQ_FLAG = 536870912u32; +pub const HTTP_ADDREQ_FLAG_ADD_IF_NEW: HTTP_ADDREQ_FLAG = 268435456u32; +pub const HTTP_ADDREQ_FLAG_ALLOW_EMPTY_VALUES: u32 = 67108864u32; +pub const HTTP_ADDREQ_FLAG_COALESCE: HTTP_ADDREQ_FLAG = 1073741824u32; +pub const HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA: HTTP_ADDREQ_FLAG = 1073741824u32; +pub const HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON: HTTP_ADDREQ_FLAG = 16777216u32; +pub const HTTP_ADDREQ_FLAG_REPLACE: HTTP_ADDREQ_FLAG = 2147483648u32; +pub const HTTP_ADDREQ_FLAG_RESPONSE_HEADERS: u32 = 33554432u32; +pub const HTTP_ADDREQ_INDEX_MASK: u32 = 65535u32; +pub const HTTP_COOKIES_SAME_SITE_LEVEL_CROSS_SITE: u32 = 3u32; +pub const HTTP_COOKIES_SAME_SITE_LEVEL_CROSS_SITE_LAX: u32 = 2u32; +pub const HTTP_COOKIES_SAME_SITE_LEVEL_MAX: u32 = 3u32; +pub const HTTP_COOKIES_SAME_SITE_LEVEL_SAME_SITE: u32 = 1u32; +pub const HTTP_COOKIES_SAME_SITE_LEVEL_UNKNOWN: u32 = 0u32; +pub const HTTP_MAJOR_VERSION: u32 = 1u32; +pub const HTTP_MINOR_VERSION: u32 = 0u32; +pub const HTTP_PROTOCOL_FLAG_HTTP2: u32 = 2u32; +pub const HTTP_PROTOCOL_MASK: u32 = 2u32; +pub const HTTP_QUERY_ACCEPT: u32 = 24u32; +pub const HTTP_QUERY_ACCEPT_CHARSET: u32 = 25u32; +pub const HTTP_QUERY_ACCEPT_ENCODING: u32 = 26u32; +pub const HTTP_QUERY_ACCEPT_LANGUAGE: u32 = 27u32; +pub const HTTP_QUERY_ACCEPT_RANGES: u32 = 42u32; +pub const HTTP_QUERY_AGE: u32 = 48u32; +pub const HTTP_QUERY_ALLOW: u32 = 7u32; +pub const HTTP_QUERY_AUTHENTICATION_INFO: u32 = 76u32; +pub const HTTP_QUERY_AUTHORIZATION: u32 = 28u32; +pub const HTTP_QUERY_CACHE_CONTROL: u32 = 49u32; +pub const HTTP_QUERY_CONNECTION: u32 = 23u32; +pub const HTTP_QUERY_CONTENT_BASE: u32 = 50u32; +pub const HTTP_QUERY_CONTENT_DESCRIPTION: u32 = 4u32; +pub const HTTP_QUERY_CONTENT_DISPOSITION: u32 = 47u32; +pub const HTTP_QUERY_CONTENT_ENCODING: u32 = 29u32; +pub const HTTP_QUERY_CONTENT_ID: u32 = 3u32; +pub const HTTP_QUERY_CONTENT_LANGUAGE: u32 = 6u32; +pub const HTTP_QUERY_CONTENT_LENGTH: u32 = 5u32; +pub const HTTP_QUERY_CONTENT_LOCATION: u32 = 51u32; +pub const HTTP_QUERY_CONTENT_MD5: u32 = 52u32; +pub const HTTP_QUERY_CONTENT_RANGE: u32 = 53u32; +pub const HTTP_QUERY_CONTENT_TRANSFER_ENCODING: u32 = 2u32; +pub const HTTP_QUERY_CONTENT_TYPE: u32 = 1u32; +pub const HTTP_QUERY_COOKIE: u32 = 44u32; +pub const HTTP_QUERY_COST: u32 = 15u32; +pub const HTTP_QUERY_CUSTOM: u32 = 65535u32; +pub const HTTP_QUERY_DATE: u32 = 9u32; +pub const HTTP_QUERY_DEFAULT_STYLE: u32 = 84u32; +pub const HTTP_QUERY_DERIVED_FROM: u32 = 14u32; +pub const HTTP_QUERY_DO_NOT_TRACK: u32 = 88u32; +pub const HTTP_QUERY_ECHO_HEADERS: u32 = 73u32; +pub const HTTP_QUERY_ECHO_HEADERS_CRLF: u32 = 74u32; +pub const HTTP_QUERY_ECHO_REPLY: u32 = 72u32; +pub const HTTP_QUERY_ECHO_REQUEST: u32 = 71u32; +pub const HTTP_QUERY_ETAG: u32 = 54u32; +pub const HTTP_QUERY_EXPECT: u32 = 68u32; +pub const HTTP_QUERY_EXPIRES: u32 = 10u32; +pub const HTTP_QUERY_FLAG_COALESCE: u32 = 268435456u32; +pub const HTTP_QUERY_FLAG_COALESCE_WITH_COMMA: u32 = 67108864u32; +pub const HTTP_QUERY_FLAG_NUMBER: u32 = 536870912u32; +pub const HTTP_QUERY_FLAG_NUMBER64: u32 = 134217728u32; +pub const HTTP_QUERY_FLAG_REQUEST_HEADERS: u32 = 2147483648u32; +pub const HTTP_QUERY_FLAG_SYSTEMTIME: u32 = 1073741824u32; +pub const HTTP_QUERY_FORWARDED: u32 = 30u32; +pub const HTTP_QUERY_FROM: u32 = 31u32; +pub const HTTP_QUERY_HOST: u32 = 55u32; +pub const HTTP_QUERY_HTTP2_SETTINGS: u32 = 90u32; +pub const HTTP_QUERY_IF_MATCH: u32 = 56u32; +pub const HTTP_QUERY_IF_MODIFIED_SINCE: u32 = 32u32; +pub const HTTP_QUERY_IF_NONE_MATCH: u32 = 57u32; +pub const HTTP_QUERY_IF_RANGE: u32 = 58u32; +pub const HTTP_QUERY_IF_UNMODIFIED_SINCE: u32 = 59u32; +pub const HTTP_QUERY_INCLUDE_REFERER_TOKEN_BINDING_ID: u32 = 93u32; +pub const HTTP_QUERY_INCLUDE_REFERRED_TOKEN_BINDING_ID: u32 = 93u32; +pub const HTTP_QUERY_KEEP_ALIVE: u32 = 89u32; +pub const HTTP_QUERY_LAST_MODIFIED: u32 = 11u32; +pub const HTTP_QUERY_LINK: u32 = 16u32; +pub const HTTP_QUERY_LOCATION: u32 = 33u32; +pub const HTTP_QUERY_MAX: u32 = 95u32; +pub const HTTP_QUERY_MAX_FORWARDS: u32 = 60u32; +pub const HTTP_QUERY_MESSAGE_ID: u32 = 12u32; +pub const HTTP_QUERY_MIME_VERSION: u32 = 0u32; +pub const HTTP_QUERY_ORIG_URI: u32 = 34u32; +pub const HTTP_QUERY_P3P: u32 = 80u32; +pub const HTTP_QUERY_PASSPORT_CONFIG: u32 = 78u32; +pub const HTTP_QUERY_PASSPORT_URLS: u32 = 77u32; +pub const HTTP_QUERY_PRAGMA: u32 = 17u32; +pub const HTTP_QUERY_PROXY_AUTHENTICATE: u32 = 41u32; +pub const HTTP_QUERY_PROXY_AUTHORIZATION: u32 = 61u32; +pub const HTTP_QUERY_PROXY_CONNECTION: u32 = 69u32; +pub const HTTP_QUERY_PROXY_SUPPORT: u32 = 75u32; +pub const HTTP_QUERY_PUBLIC: u32 = 8u32; +pub const HTTP_QUERY_PUBLIC_KEY_PINS: u32 = 94u32; +pub const HTTP_QUERY_PUBLIC_KEY_PINS_REPORT_ONLY: u32 = 95u32; +pub const HTTP_QUERY_RANGE: u32 = 62u32; +pub const HTTP_QUERY_RAW_HEADERS: u32 = 21u32; +pub const HTTP_QUERY_RAW_HEADERS_CRLF: u32 = 22u32; +pub const HTTP_QUERY_REFERER: u32 = 35u32; +pub const HTTP_QUERY_REFRESH: u32 = 46u32; +pub const HTTP_QUERY_REQUEST_METHOD: u32 = 45u32; +pub const HTTP_QUERY_RETRY_AFTER: u32 = 36u32; +pub const HTTP_QUERY_SERVER: u32 = 37u32; +pub const HTTP_QUERY_SET_COOKIE: u32 = 43u32; +pub const HTTP_QUERY_SET_COOKIE2: u32 = 87u32; +pub const HTTP_QUERY_STATUS_CODE: u32 = 19u32; +pub const HTTP_QUERY_STATUS_TEXT: u32 = 20u32; +pub const HTTP_QUERY_STRICT_TRANSPORT_SECURITY: u32 = 91u32; +pub const HTTP_QUERY_TITLE: u32 = 38u32; +pub const HTTP_QUERY_TOKEN_BINDING: u32 = 92u32; +pub const HTTP_QUERY_TRANSFER_ENCODING: u32 = 63u32; +pub const HTTP_QUERY_TRANSLATE: u32 = 82u32; +pub const HTTP_QUERY_UNLESS_MODIFIED_SINCE: u32 = 70u32; +pub const HTTP_QUERY_UPGRADE: u32 = 64u32; +pub const HTTP_QUERY_URI: u32 = 13u32; +pub const HTTP_QUERY_USER_AGENT: u32 = 39u32; +pub const HTTP_QUERY_VARY: u32 = 65u32; +pub const HTTP_QUERY_VERSION: u32 = 18u32; +pub const HTTP_QUERY_VIA: u32 = 66u32; +pub const HTTP_QUERY_WARNING: u32 = 67u32; +pub const HTTP_QUERY_WWW_AUTHENTICATE: u32 = 40u32; +pub const HTTP_QUERY_X_CONTENT_TYPE_OPTIONS: u32 = 79u32; +pub const HTTP_QUERY_X_FRAME_OPTIONS: u32 = 85u32; +pub const HTTP_QUERY_X_P2P_PEERDIST: u32 = 81u32; +pub const HTTP_QUERY_X_UA_COMPATIBLE: u32 = 83u32; +pub const HTTP_QUERY_X_XSS_PROTECTION: u32 = 86u32; +pub const HTTP_STATUS_MISDIRECTED_REQUEST: u32 = 421u32; +pub const HTTP_VERSIONA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("HTTP/1.0"); +pub const HTTP_VERSIONW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HTTP/1.0"); +pub const HTTP_WEB_SOCKET_ABORTED_CLOSE_STATUS: HTTP_WEB_SOCKET_CLOSE_STATUS = 1006i32; +pub const HTTP_WEB_SOCKET_BINARY_FRAGMENT_TYPE: HTTP_WEB_SOCKET_BUFFER_TYPE = 1i32; +pub const HTTP_WEB_SOCKET_BINARY_MESSAGE_TYPE: HTTP_WEB_SOCKET_BUFFER_TYPE = 0i32; +pub const HTTP_WEB_SOCKET_CLOSE_OPERATION: HTTP_WEB_SOCKET_OPERATION = 2i32; +pub const HTTP_WEB_SOCKET_CLOSE_TYPE: HTTP_WEB_SOCKET_BUFFER_TYPE = 4i32; +pub const HTTP_WEB_SOCKET_EMPTY_CLOSE_STATUS: HTTP_WEB_SOCKET_CLOSE_STATUS = 1005i32; +pub const HTTP_WEB_SOCKET_ENDPOINT_TERMINATED_CLOSE_STATUS: HTTP_WEB_SOCKET_CLOSE_STATUS = 1001i32; +pub const HTTP_WEB_SOCKET_INVALID_DATA_TYPE_CLOSE_STATUS: HTTP_WEB_SOCKET_CLOSE_STATUS = 1003i32; +pub const HTTP_WEB_SOCKET_INVALID_PAYLOAD_CLOSE_STATUS: HTTP_WEB_SOCKET_CLOSE_STATUS = 1007i32; +pub const HTTP_WEB_SOCKET_MAX_CLOSE_REASON_LENGTH: u32 = 123u32; +pub const HTTP_WEB_SOCKET_MESSAGE_TOO_BIG_CLOSE_STATUS: HTTP_WEB_SOCKET_CLOSE_STATUS = 1009i32; +pub const HTTP_WEB_SOCKET_MIN_KEEPALIVE_VALUE: u32 = 10000u32; +pub const HTTP_WEB_SOCKET_PING_TYPE: HTTP_WEB_SOCKET_BUFFER_TYPE = 5i32; +pub const HTTP_WEB_SOCKET_POLICY_VIOLATION_CLOSE_STATUS: HTTP_WEB_SOCKET_CLOSE_STATUS = 1008i32; +pub const HTTP_WEB_SOCKET_PROTOCOL_ERROR_CLOSE_STATUS: HTTP_WEB_SOCKET_CLOSE_STATUS = 1002i32; +pub const HTTP_WEB_SOCKET_RECEIVE_OPERATION: HTTP_WEB_SOCKET_OPERATION = 1i32; +pub const HTTP_WEB_SOCKET_SECURE_HANDSHAKE_ERROR_CLOSE_STATUS: HTTP_WEB_SOCKET_CLOSE_STATUS = 1015i32; +pub const HTTP_WEB_SOCKET_SEND_OPERATION: HTTP_WEB_SOCKET_OPERATION = 0i32; +pub const HTTP_WEB_SOCKET_SERVER_ERROR_CLOSE_STATUS: HTTP_WEB_SOCKET_CLOSE_STATUS = 1011i32; +pub const HTTP_WEB_SOCKET_SHUTDOWN_OPERATION: HTTP_WEB_SOCKET_OPERATION = 3i32; +pub const HTTP_WEB_SOCKET_SUCCESS_CLOSE_STATUS: HTTP_WEB_SOCKET_CLOSE_STATUS = 1000i32; +pub const HTTP_WEB_SOCKET_UNSUPPORTED_EXTENSIONS_CLOSE_STATUS: HTTP_WEB_SOCKET_CLOSE_STATUS = 1010i32; +pub const HTTP_WEB_SOCKET_UTF8_FRAGMENT_TYPE: HTTP_WEB_SOCKET_BUFFER_TYPE = 3i32; +pub const HTTP_WEB_SOCKET_UTF8_MESSAGE_TYPE: HTTP_WEB_SOCKET_BUFFER_TYPE = 2i32; +pub const HttpPushWaitEnableComplete: HTTP_PUSH_WAIT_TYPE = 0i32; +pub const HttpPushWaitReceiveComplete: HTTP_PUSH_WAIT_TYPE = 1i32; +pub const HttpPushWaitSendComplete: HTTP_PUSH_WAIT_TYPE = 2i32; +pub const HttpRequestTimeMax: REQUEST_TIMES = 32i32; +pub const ICU_USERNAME: u32 = 1073741824u32; +pub const IDENTITY_CACHE_ENTRY: u32 = 2147483648u32; +pub const IDSI_FLAG_KEEP_ALIVE: u32 = 1u32; +pub const IDSI_FLAG_PROXY: u32 = 4u32; +pub const IDSI_FLAG_SECURE: u32 = 2u32; +pub const IDSI_FLAG_TUNNEL: u32 = 8u32; +pub const IMMUTABLE_CACHE_ENTRY: u32 = 524288u32; +pub const INSTALLED_CACHE_ENTRY: u32 = 268435456u32; +pub const INTERENT_GOONLINE_MASK: u32 = 3u32; +pub const INTERENT_GOONLINE_NOPROMPT: u32 = 2u32; +pub const INTERENT_GOONLINE_REFRESH: u32 = 1u32; +pub const INTERNET_AUTH_SCHEME_BASIC: u32 = 0u32; +pub const INTERNET_AUTH_SCHEME_DIGEST: u32 = 1u32; +pub const INTERNET_AUTH_SCHEME_KERBEROS: u32 = 3u32; +pub const INTERNET_AUTH_SCHEME_NEGOTIATE: u32 = 4u32; +pub const INTERNET_AUTH_SCHEME_NTLM: u32 = 2u32; +pub const INTERNET_AUTH_SCHEME_PASSPORT: u32 = 5u32; +pub const INTERNET_AUTH_SCHEME_UNKNOWN: u32 = 6u32; +pub const INTERNET_AUTODIAL_FAILIFSECURITYCHECK: INTERNET_AUTODIAL = 4u32; +pub const INTERNET_AUTODIAL_FORCE_ONLINE: INTERNET_AUTODIAL = 1u32; +pub const INTERNET_AUTODIAL_FORCE_UNATTENDED: INTERNET_AUTODIAL = 2u32; +pub const INTERNET_AUTODIAL_OVERRIDE_NET_PRESENT: INTERNET_AUTODIAL = 8u32; +pub const INTERNET_AUTOPROXY_INIT_DEFAULT: u32 = 1u32; +pub const INTERNET_AUTOPROXY_INIT_DOWNLOADSYNC: u32 = 2u32; +pub const INTERNET_AUTOPROXY_INIT_ONLYQUERY: u32 = 8u32; +pub const INTERNET_AUTOPROXY_INIT_QUERYSTATE: u32 = 4u32; +pub const INTERNET_CACHE_CONTAINER_AUTODELETE: u32 = 2u32; +pub const INTERNET_CACHE_CONTAINER_BLOOM_FILTER: u32 = 32u32; +pub const INTERNET_CACHE_CONTAINER_MAP_ENABLED: u32 = 16u32; +pub const INTERNET_CACHE_CONTAINER_NODESKTOPINIT: u32 = 8u32; +pub const INTERNET_CACHE_CONTAINER_NOSUBDIRS: u32 = 1u32; +pub const INTERNET_CACHE_CONTAINER_RESERVED1: u32 = 4u32; +pub const INTERNET_CACHE_CONTAINER_SHARE_READ: u32 = 256u32; +pub const INTERNET_CACHE_CONTAINER_SHARE_READ_WRITE: u32 = 768u32; +pub const INTERNET_CACHE_FLAG_ADD_FILENAME_ONLY: u32 = 2048u32; +pub const INTERNET_CACHE_FLAG_ALLOW_COLLISIONS: u32 = 256u32; +pub const INTERNET_CACHE_FLAG_ENTRY_OR_MAPPING: u32 = 1024u32; +pub const INTERNET_CACHE_FLAG_GET_STRUCT_ONLY: u32 = 4096u32; +pub const INTERNET_CACHE_FLAG_INSTALLED_ENTRY: u32 = 512u32; +pub const INTERNET_CACHE_GROUP_ADD: u32 = 0u32; +pub const INTERNET_CACHE_GROUP_REMOVE: u32 = 1u32; +pub const INTERNET_CONNECTION_CONFIGURED: INTERNET_CONNECTION = 64u32; +pub const INTERNET_CONNECTION_LAN: INTERNET_CONNECTION = 2u32; +pub const INTERNET_CONNECTION_MODEM: INTERNET_CONNECTION = 1u32; +pub const INTERNET_CONNECTION_MODEM_BUSY: INTERNET_CONNECTION = 8u32; +pub const INTERNET_CONNECTION_OFFLINE: INTERNET_CONNECTION = 32u32; +pub const INTERNET_CONNECTION_PROXY: INTERNET_CONNECTION = 4u32; +pub const INTERNET_COOKIE_ALL_COOKIES: u32 = 536870912u32; +pub const INTERNET_COOKIE_APPLY_HOST_ONLY: u32 = 32768u32; +pub const INTERNET_COOKIE_APPLY_P3P: u32 = 128u32; +pub const INTERNET_COOKIE_ECTX_3RDPARTY: u32 = 2147483648u32; +pub const INTERNET_COOKIE_EDGE_COOKIES: u32 = 262144u32; +pub const INTERNET_COOKIE_EVALUATE_P3P: u32 = 64u32; +pub const INTERNET_COOKIE_HOST_ONLY: u32 = 16384u32; +pub const INTERNET_COOKIE_HOST_ONLY_APPLIED: u32 = 524288u32; +pub const INTERNET_COOKIE_HTTPONLY: INTERNET_COOKIE_FLAGS = 8192u32; +pub const INTERNET_COOKIE_IE6: u32 = 1024u32; +pub const INTERNET_COOKIE_IS_LEGACY: u32 = 2048u32; +pub const INTERNET_COOKIE_IS_RESTRICTED: u32 = 512u32; +pub const INTERNET_COOKIE_IS_SECURE: u32 = 1u32; +pub const INTERNET_COOKIE_IS_SESSION: u32 = 2u32; +pub const INTERNET_COOKIE_NON_SCRIPT: u32 = 4096u32; +pub const INTERNET_COOKIE_NO_CALLBACK: u32 = 1073741824u32; +pub const INTERNET_COOKIE_P3P_ENABLED: u32 = 256u32; +pub const INTERNET_COOKIE_PERSISTENT_HOST_ONLY: u32 = 65536u32; +pub const INTERNET_COOKIE_PROMPT_REQUIRED: u32 = 32u32; +pub const INTERNET_COOKIE_RESTRICTED_ZONE: u32 = 131072u32; +pub const INTERNET_COOKIE_SAME_SITE_LAX: u32 = 2097152u32; +pub const INTERNET_COOKIE_SAME_SITE_LEVEL_CROSS_SITE: u32 = 4194304u32; +pub const INTERNET_COOKIE_SAME_SITE_STRICT: u32 = 1048576u32; +pub const INTERNET_COOKIE_THIRD_PARTY: INTERNET_COOKIE_FLAGS = 16u32; +pub const INTERNET_CUSTOMDIAL_CAN_HANGUP: u32 = 4u32; +pub const INTERNET_CUSTOMDIAL_CONNECT: u32 = 0u32; +pub const INTERNET_CUSTOMDIAL_DISCONNECT: u32 = 2u32; +pub const INTERNET_CUSTOMDIAL_SAFE_FOR_UNATTENDED: u32 = 1u32; +pub const INTERNET_CUSTOMDIAL_SHOWOFFLINE: u32 = 4u32; +pub const INTERNET_CUSTOMDIAL_UNATTENDED: u32 = 1u32; +pub const INTERNET_CUSTOMDIAL_WILL_SUPPLY_STATE: u32 = 2u32; +pub const INTERNET_DEFAULT_FTP_PORT: u16 = 21u16; +pub const INTERNET_DEFAULT_GOPHER_PORT: u16 = 70u16; +pub const INTERNET_DEFAULT_SOCKS_PORT: u16 = 1080u16; +pub const INTERNET_DIALSTATE_DISCONNECTED: u32 = 1u32; +pub const INTERNET_DIAL_FORCE_PROMPT: u32 = 8192u32; +pub const INTERNET_DIAL_SHOW_OFFLINE: u32 = 16384u32; +pub const INTERNET_DIAL_UNATTENDED: u32 = 32768u32; +pub const INTERNET_ERROR_BASE: u32 = 12000u32; +pub const INTERNET_ERROR_LAST: u32 = 12192u32; +pub const INTERNET_ERROR_MASK_COMBINED_SEC_CERT: u32 = 2u32; +pub const INTERNET_ERROR_MASK_INSERT_CDROM: u32 = 1u32; +pub const INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY: u32 = 8u32; +pub const INTERNET_ERROR_MASK_NEED_MSN_SSPI_PKG: u32 = 4u32; +pub const INTERNET_FIRST_OPTION: u32 = 1u32; +pub const INTERNET_FLAG_ASYNC: u32 = 268435456u32; +pub const INTERNET_FLAG_BGUPDATE: u32 = 8u32; +pub const INTERNET_FLAG_CACHE_ASYNC: u32 = 128u32; +pub const INTERNET_FLAG_CACHE_IF_NET_FAIL: u32 = 65536u32; +pub const INTERNET_FLAG_DONT_CACHE: u32 = 67108864u32; +pub const INTERNET_FLAG_EXISTING_CONNECT: u32 = 536870912u32; +pub const INTERNET_FLAG_FORMS_SUBMIT: u32 = 64u32; +pub const INTERNET_FLAG_FROM_CACHE: u32 = 16777216u32; +pub const INTERNET_FLAG_FTP_FOLDER_VIEW: u32 = 4u32; +pub const INTERNET_FLAG_FWD_BACK: u32 = 32u32; +pub const INTERNET_FLAG_HYPERLINK: u32 = 1024u32; +pub const INTERNET_FLAG_IDN_DIRECT: u32 = 1u32; +pub const INTERNET_FLAG_IDN_PROXY: u32 = 2u32; +pub const INTERNET_FLAG_IGNORE_CERT_CN_INVALID: u32 = 4096u32; +pub const INTERNET_FLAG_IGNORE_CERT_DATE_INVALID: u32 = 8192u32; +pub const INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP: u32 = 32768u32; +pub const INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS: u32 = 16384u32; +pub const INTERNET_FLAG_KEEP_CONNECTION: u32 = 4194304u32; +pub const INTERNET_FLAG_MAKE_PERSISTENT: u32 = 33554432u32; +pub const INTERNET_FLAG_MUST_CACHE_REQUEST: u32 = 16u32; +pub const INTERNET_FLAG_NEED_FILE: u32 = 16u32; +pub const INTERNET_FLAG_NO_AUTH: u32 = 262144u32; +pub const INTERNET_FLAG_NO_AUTO_REDIRECT: u32 = 2097152u32; +pub const INTERNET_FLAG_NO_CACHE_WRITE: u32 = 67108864u32; +pub const INTERNET_FLAG_NO_COOKIES: u32 = 524288u32; +pub const INTERNET_FLAG_NO_UI: u32 = 512u32; +pub const INTERNET_FLAG_OFFLINE: u32 = 16777216u32; +pub const INTERNET_FLAG_PASSIVE: u32 = 134217728u32; +pub const INTERNET_FLAG_PRAGMA_NOCACHE: u32 = 256u32; +pub const INTERNET_FLAG_RAW_DATA: u32 = 1073741824u32; +pub const INTERNET_FLAG_READ_PREFETCH: u32 = 1048576u32; +pub const INTERNET_FLAG_RELOAD: u32 = 2147483648u32; +pub const INTERNET_FLAG_RESTRICTED_ZONE: INTERNET_COOKIE_FLAGS = 131072u32; +pub const INTERNET_FLAG_RESYNCHRONIZE: u32 = 2048u32; +pub const INTERNET_FLAG_SECURE: u32 = 8388608u32; +pub const INTERNET_FLAG_TRANSFER_ASCII: FTP_FLAGS = 1u32; +pub const INTERNET_FLAG_TRANSFER_BINARY: FTP_FLAGS = 2u32; +pub const INTERNET_GLOBAL_CALLBACK_DETECTING_PROXY: u32 = 2u32; +pub const INTERNET_GLOBAL_CALLBACK_SENDING_HTTP_HEADERS: u32 = 1u32; +pub const INTERNET_HANDLE_TYPE_CONNECT_FTP: u32 = 2u32; +pub const INTERNET_HANDLE_TYPE_CONNECT_GOPHER: u32 = 3u32; +pub const INTERNET_HANDLE_TYPE_CONNECT_HTTP: u32 = 4u32; +pub const INTERNET_HANDLE_TYPE_FILE_REQUEST: u32 = 14u32; +pub const INTERNET_HANDLE_TYPE_FTP_FILE: u32 = 7u32; +pub const INTERNET_HANDLE_TYPE_FTP_FILE_HTML: u32 = 8u32; +pub const INTERNET_HANDLE_TYPE_FTP_FIND: u32 = 5u32; +pub const INTERNET_HANDLE_TYPE_FTP_FIND_HTML: u32 = 6u32; +pub const INTERNET_HANDLE_TYPE_GOPHER_FILE: u32 = 11u32; +pub const INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML: u32 = 12u32; +pub const INTERNET_HANDLE_TYPE_GOPHER_FIND: u32 = 9u32; +pub const INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML: u32 = 10u32; +pub const INTERNET_HANDLE_TYPE_HTTP_REQUEST: u32 = 13u32; +pub const INTERNET_HANDLE_TYPE_INTERNET: u32 = 1u32; +pub const INTERNET_IDENTITY_FLAG_CLEAR_CONTENT: u32 = 32u32; +pub const INTERNET_IDENTITY_FLAG_CLEAR_COOKIES: u32 = 8u32; +pub const INTERNET_IDENTITY_FLAG_CLEAR_DATA: u32 = 4u32; +pub const INTERNET_IDENTITY_FLAG_CLEAR_HISTORY: u32 = 16u32; +pub const INTERNET_IDENTITY_FLAG_PRIVATE_CACHE: u32 = 1u32; +pub const INTERNET_IDENTITY_FLAG_SHARED_CACHE: u32 = 2u32; +pub const INTERNET_INTERNAL_ERROR_BASE: u32 = 12900u32; +pub const INTERNET_INVALID_PORT_NUMBER: u32 = 0u32; +pub const INTERNET_KEEP_ALIVE_DISABLED: u32 = 0u32; +pub const INTERNET_KEEP_ALIVE_ENABLED: u32 = 1u32; +pub const INTERNET_KEEP_ALIVE_UNKNOWN: u32 = 4294967295u32; +pub const INTERNET_LAST_OPTION: u32 = 193u32; +pub const INTERNET_LAST_OPTION_INTERNAL: u32 = 193u32; +pub const INTERNET_MAX_HOST_NAME_LENGTH: u32 = 256u32; +pub const INTERNET_MAX_PASSWORD_LENGTH: u32 = 128u32; +pub const INTERNET_MAX_PORT_NUMBER_LENGTH: u32 = 5u32; +pub const INTERNET_MAX_PORT_NUMBER_VALUE: u32 = 65535u32; +pub const INTERNET_MAX_USER_NAME_LENGTH: u32 = 128u32; +pub const INTERNET_NO_CALLBACK: u32 = 0u32; +pub const INTERNET_OPEN_TYPE_DIRECT: INTERNET_ACCESS_TYPE = 1u32; +pub const INTERNET_OPEN_TYPE_PRECONFIG: INTERNET_ACCESS_TYPE = 0u32; +pub const INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY: u32 = 4u32; +pub const INTERNET_OPEN_TYPE_PROXY: INTERNET_ACCESS_TYPE = 3u32; +pub const INTERNET_OPTION_ACTIVATE_WORKER_THREADS: u32 = 92u32; +pub const INTERNET_OPTION_ACTIVITY_ID: u32 = 185u32; +pub const INTERNET_OPTION_ALLOW_FAILED_CONNECT_CONTENT: u32 = 110u32; +pub const INTERNET_OPTION_ALLOW_INSECURE_FALLBACK: u32 = 161u32; +pub const INTERNET_OPTION_ALTER_IDENTITY: u32 = 80u32; +pub const INTERNET_OPTION_APP_CACHE: u32 = 130u32; +pub const INTERNET_OPTION_ASYNC: u32 = 30u32; +pub const INTERNET_OPTION_ASYNC_ID: u32 = 15u32; +pub const INTERNET_OPTION_ASYNC_PRIORITY: u32 = 16u32; +pub const INTERNET_OPTION_AUTH_FLAGS: u32 = 85u32; +pub const INTERNET_OPTION_AUTH_SCHEME_SELECTED: u32 = 183u32; +pub const INTERNET_OPTION_AUTODIAL_CONNECTION: u32 = 83u32; +pub const INTERNET_OPTION_AUTODIAL_HWND: u32 = 112u32; +pub const INTERNET_OPTION_AUTODIAL_MODE: u32 = 82u32; +pub const INTERNET_OPTION_BACKGROUND_CONNECTIONS: u32 = 121u32; +pub const INTERNET_OPTION_BYPASS_EDITED_ENTRY: u32 = 64u32; +pub const INTERNET_OPTION_CACHE_ENTRY_EXTRA_DATA: u32 = 139u32; +pub const INTERNET_OPTION_CACHE_PARTITION: u32 = 111u32; +pub const INTERNET_OPTION_CACHE_STREAM_HANDLE: u32 = 27u32; +pub const INTERNET_OPTION_CACHE_TIMESTAMPS: u32 = 69u32; +pub const INTERNET_OPTION_CALLBACK: u32 = 1u32; +pub const INTERNET_OPTION_CALLBACK_FILTER: u32 = 54u32; +pub const INTERNET_OPTION_CALLER_MODULE: u32 = 192u32; +pub const INTERNET_OPTION_CANCEL_CACHE_WRITE: u32 = 182u32; +pub const INTERNET_OPTION_CERT_ERROR_FLAGS: u32 = 98u32; +pub const INTERNET_OPTION_CHUNK_ENCODE_REQUEST: u32 = 150u32; +pub const INTERNET_OPTION_CLIENT_CERT_CONTEXT: u32 = 84u32; +pub const INTERNET_OPTION_CLIENT_CERT_ISSUER_LIST: u32 = 153u32; +pub const INTERNET_OPTION_CM_HANDLE_COPY_REF: u32 = 118u32; +pub const INTERNET_OPTION_CODEPAGE: u32 = 68u32; +pub const INTERNET_OPTION_CODEPAGE_EXTRA: u32 = 101u32; +pub const INTERNET_OPTION_CODEPAGE_PATH: u32 = 100u32; +pub const INTERNET_OPTION_COMPRESSED_CONTENT_LENGTH: u32 = 147u32; +pub const INTERNET_OPTION_CONNECTED_STATE: u32 = 50u32; +pub const INTERNET_OPTION_CONNECTION_FILTER: u32 = 162u32; +pub const INTERNET_OPTION_CONNECTION_INFO: u32 = 120u32; +pub const INTERNET_OPTION_CONNECT_BACKOFF: u32 = 4u32; +pub const INTERNET_OPTION_CONNECT_LIMIT: u32 = 46u32; +pub const INTERNET_OPTION_CONNECT_RETRIES: u32 = 3u32; +pub const INTERNET_OPTION_CONNECT_TIME: u32 = 55u32; +pub const INTERNET_OPTION_CONNECT_TIMEOUT: u32 = 2u32; +pub const INTERNET_OPTION_CONTEXT_VALUE: u32 = 45u32; +pub const INTERNET_OPTION_CONTEXT_VALUE_OLD: u32 = 10u32; +pub const INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT: u32 = 6u32; +pub const INTERNET_OPTION_CONTROL_SEND_TIMEOUT: u32 = 5u32; +pub const INTERNET_OPTION_COOKIES_3RD_PARTY: u32 = 86u32; +pub const INTERNET_OPTION_COOKIES_APPLY_HOST_ONLY: u32 = 179u32; +pub const INTERNET_OPTION_COOKIES_SAME_SITE_LEVEL: u32 = 187u32; +pub const INTERNET_OPTION_DATAFILE_EXT: u32 = 96u32; +pub const INTERNET_OPTION_DATAFILE_NAME: u32 = 33u32; +pub const INTERNET_OPTION_DATA_RECEIVE_TIMEOUT: u32 = 8u32; +pub const INTERNET_OPTION_DATA_SEND_TIMEOUT: u32 = 7u32; +pub const INTERNET_OPTION_DEPENDENCY_HANDLE: u32 = 131u32; +pub const INTERNET_OPTION_DETECT_POST_SEND: u32 = 71u32; +pub const INTERNET_OPTION_DIAGNOSTIC_SOCKET_INFO: u32 = 67u32; +pub const INTERNET_OPTION_DIGEST_AUTH_UNLOAD: u32 = 76u32; +pub const INTERNET_OPTION_DISABLE_AUTODIAL: u32 = 70u32; +pub const INTERNET_OPTION_DISABLE_INSECURE_FALLBACK: u32 = 160u32; +pub const INTERNET_OPTION_DISABLE_NTLM_PREAUTH: u32 = 72u32; +pub const INTERNET_OPTION_DISABLE_PASSPORT_AUTH: u32 = 87u32; +pub const INTERNET_OPTION_DISABLE_PROXY_LINK_LOCAL_NAME_RESOLUTION: u32 = 190u32; +pub const INTERNET_OPTION_DISALLOW_PREMATURE_EOF: u32 = 137u32; +pub const INTERNET_OPTION_DISCONNECTED_TIMEOUT: u32 = 49u32; +pub const INTERNET_OPTION_DOWNLOAD_MODE: u32 = 116u32; +pub const INTERNET_OPTION_DOWNLOAD_MODE_HANDLE: u32 = 165u32; +pub const INTERNET_OPTION_DO_NOT_TRACK: u32 = 123u32; +pub const INTERNET_OPTION_DUO_USED: u32 = 149u32; +pub const INTERNET_OPTION_EDGE_COOKIES: u32 = 166u32; +pub const INTERNET_OPTION_EDGE_COOKIES_TEMP: u32 = 175u32; +pub const INTERNET_OPTION_EDGE_MODE: u32 = 180u32; +pub const INTERNET_OPTION_ENABLE_DUO: u32 = 148u32; +pub const INTERNET_OPTION_ENABLE_HEADER_CALLBACKS: u32 = 168u32; +pub const INTERNET_OPTION_ENABLE_HTTP_PROTOCOL: u32 = 148u32; +pub const INTERNET_OPTION_ENABLE_PASSPORT_AUTH: u32 = 90u32; +pub const INTERNET_OPTION_ENABLE_REDIRECT_CACHE_READ: u32 = 122u32; +pub const INTERNET_OPTION_ENABLE_TEST_SIGNING: u32 = 189u32; +pub const INTERNET_OPTION_ENABLE_WBOEXT: u32 = 158u32; +pub const INTERNET_OPTION_ENABLE_ZLIB_DEFLATE: u32 = 173u32; +pub const INTERNET_OPTION_ENCODE_EXTRA: u32 = 155u32; +pub const INTERNET_OPTION_ENCODE_FALLBACK_FOR_REDIRECT_URI: u32 = 174u32; +pub const INTERNET_OPTION_END_BROWSER_SESSION: u32 = 42u32; +pub const INTERNET_OPTION_ENTERPRISE_CONTEXT: u32 = 159u32; +pub const INTERNET_OPTION_ERROR_MASK: u32 = 62u32; +pub const INTERNET_OPTION_EXEMPT_CONNECTION_LIMIT: u32 = 89u32; +pub const INTERNET_OPTION_EXTENDED_CALLBACKS: u32 = 108u32; +pub const INTERNET_OPTION_EXTENDED_ERROR: u32 = 24u32; +pub const INTERNET_OPTION_FAIL_ON_CACHE_WRITE_ERROR: u32 = 115u32; +pub const INTERNET_OPTION_FALSE_START: u32 = 141u32; +pub const INTERNET_OPTION_FLUSH_STATE: u32 = 135u32; +pub const INTERNET_OPTION_FORCE_DECODE: u32 = 178u32; +pub const INTERNET_OPTION_FROM_CACHE_TIMEOUT: u32 = 63u32; +pub const INTERNET_OPTION_GLOBAL_CALLBACK: u32 = 188u32; +pub const INTERNET_OPTION_HANDLE_TYPE: u32 = 9u32; +pub const INTERNET_OPTION_HIBERNATE_INACTIVE_WORKER_THREADS: u32 = 91u32; +pub const INTERNET_OPTION_HSTS: u32 = 157u32; +pub const INTERNET_OPTION_HTTP_09: u32 = 191u32; +pub const INTERNET_OPTION_HTTP_DECODING: u32 = 65u32; +pub const INTERNET_OPTION_HTTP_PROTOCOL_USED: u32 = 149u32; +pub const INTERNET_OPTION_HTTP_VERSION: u32 = 59u32; +pub const INTERNET_OPTION_IDENTITY: u32 = 78u32; +pub const INTERNET_OPTION_IDLE_STATE: u32 = 51u32; +pub const INTERNET_OPTION_IDN: u32 = 102u32; +pub const INTERNET_OPTION_IGNORE_CERT_ERROR_FLAGS: u32 = 99u32; +pub const INTERNET_OPTION_IGNORE_OFFLINE: u32 = 77u32; +pub const INTERNET_OPTION_KEEP_CONNECTION: u32 = 22u32; +pub const INTERNET_OPTION_LINE_STATE: u32 = 50u32; +pub const INTERNET_OPTION_LISTEN_TIMEOUT: u32 = 11u32; +pub const INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER: u32 = 74u32; +pub const INTERNET_OPTION_MAX_CONNS_PER_PROXY: u32 = 103u32; +pub const INTERNET_OPTION_MAX_CONNS_PER_SERVER: u32 = 73u32; +pub const INTERNET_OPTION_MAX_QUERY_BUFFER_SIZE: u32 = 140u32; +pub const INTERNET_OPTION_NET_SPEED: u32 = 61u32; +pub const INTERNET_OPTION_NOCACHE_WRITE_IN_PRIVATE: u32 = 184u32; +pub const INTERNET_OPTION_NOTIFY_SENDING_COOKIE: u32 = 152u32; +pub const INTERNET_OPTION_NO_HTTP_SERVER_AUTH: u32 = 167u32; +pub const INTERNET_OPTION_OFFLINE_MODE: u32 = 26u32; +pub const INTERNET_OPTION_OFFLINE_SEMANTICS: u32 = 52u32; +pub const INTERNET_OPTION_OFFLINE_TIMEOUT: u32 = 49u32; +pub const INTERNET_OPTION_OPT_IN_WEAK_SIGNATURE: u32 = 176u32; +pub const INTERNET_OPTION_ORIGINAL_CONNECT_FLAGS: u32 = 97u32; +pub const INTERNET_OPTION_PARENT_HANDLE: u32 = 21u32; +pub const INTERNET_OPTION_PARSE_LINE_FOLDING: u32 = 177u32; +pub const INTERNET_OPTION_PASSWORD: u32 = 29u32; +pub const INTERNET_OPTION_PER_CONNECTION_OPTION: u32 = 75u32; +pub const INTERNET_OPTION_POLICY: u32 = 48u32; +pub const INTERNET_OPTION_PRESERVE_REFERER_ON_HTTPS_TO_HTTP_REDIRECT: u32 = 170u32; +pub const INTERNET_OPTION_PRESERVE_REQUEST_SERVER_CREDENTIALS_ON_REDIRECT: u32 = 169u32; +pub const INTERNET_OPTION_PROXY: u32 = 38u32; +pub const INTERNET_OPTION_PROXY_AUTH_SCHEME: u32 = 144u32; +pub const INTERNET_OPTION_PROXY_CREDENTIALS: u32 = 107u32; +pub const INTERNET_OPTION_PROXY_FROM_REQUEST: u32 = 109u32; +pub const INTERNET_OPTION_PROXY_PASSWORD: u32 = 44u32; +pub const INTERNET_OPTION_PROXY_SETTINGS_CHANGED: u32 = 95u32; +pub const INTERNET_OPTION_PROXY_USERNAME: u32 = 43u32; +pub const INTERNET_OPTION_READ_BUFFER_SIZE: u32 = 12u32; +pub const INTERNET_OPTION_RECEIVE_THROUGHPUT: u32 = 57u32; +pub const INTERNET_OPTION_RECEIVE_TIMEOUT: u32 = 6u32; +pub const INTERNET_OPTION_REFERER_TOKEN_BINDING_HOSTNAME: u32 = 163u32; +pub const INTERNET_OPTION_REFRESH: u32 = 37u32; +pub const INTERNET_OPTION_REMOVE_IDENTITY: u32 = 79u32; +pub const INTERNET_OPTION_REQUEST_ANNOTATION: u32 = 193u32; +pub const INTERNET_OPTION_REQUEST_ANNOTATION_MAX_LENGTH: u32 = 64000u32; +pub const INTERNET_OPTION_REQUEST_FLAGS: u32 = 23u32; +pub const INTERNET_OPTION_REQUEST_PRIORITY: u32 = 58u32; +pub const INTERNET_OPTION_REQUEST_TIMES: u32 = 186u32; +pub const INTERNET_OPTION_RESET: u32 = 154u32; +pub const INTERNET_OPTION_RESET_URLCACHE_SESSION: u32 = 60u32; +pub const INTERNET_OPTION_RESPONSE_RESUMABLE: u32 = 117u32; +pub const INTERNET_OPTION_RESTORE_WORKER_THREAD_DEFAULTS: u32 = 93u32; +pub const INTERNET_OPTION_SECONDARY_CACHE_KEY: u32 = 53u32; +pub const INTERNET_OPTION_SECURE_FAILURE: u32 = 151u32; +pub const INTERNET_OPTION_SECURITY_CERTIFICATE: u32 = 35u32; +pub const INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT: u32 = 32u32; +pub const INTERNET_OPTION_SECURITY_CONNECTION_INFO: u32 = 66u32; +pub const INTERNET_OPTION_SECURITY_FLAGS: u32 = 31u32; +pub const INTERNET_OPTION_SECURITY_KEY_BITNESS: u32 = 36u32; +pub const INTERNET_OPTION_SECURITY_SELECT_CLIENT_CERT: u32 = 47u32; +pub const INTERNET_OPTION_SEND_THROUGHPUT: u32 = 56u32; +pub const INTERNET_OPTION_SEND_TIMEOUT: u32 = 5u32; +pub const INTERNET_OPTION_SEND_UTF8_SERVERNAME_TO_PROXY: u32 = 88u32; +pub const INTERNET_OPTION_SERVER_ADDRESS_INFO: u32 = 156u32; +pub const INTERNET_OPTION_SERVER_AUTH_SCHEME: u32 = 143u32; +pub const INTERNET_OPTION_SERVER_CERT_CHAIN_CONTEXT: u32 = 105u32; +pub const INTERNET_OPTION_SERVER_CREDENTIALS: u32 = 113u32; +pub const INTERNET_OPTION_SESSION_START_TIME: u32 = 106u32; +pub const INTERNET_OPTION_SETTINGS_CHANGED: u32 = 39u32; +pub const INTERNET_OPTION_SET_IN_PRIVATE: u32 = 164u32; +pub const INTERNET_OPTION_SOCKET_NODELAY: u32 = 129u32; +pub const INTERNET_OPTION_SOCKET_NOTIFICATION_IOCTL: u32 = 138u32; +pub const INTERNET_OPTION_SOCKET_SEND_BUFFER_LENGTH: u32 = 94u32; +pub const INTERNET_OPTION_SOURCE_PORT: u32 = 146u32; +pub const INTERNET_OPTION_SUPPRESS_BEHAVIOR: u32 = 81u32; +pub const INTERNET_OPTION_SUPPRESS_SERVER_AUTH: u32 = 104u32; +pub const INTERNET_OPTION_SYNC_MODE_AUTOMATIC_SESSION_DISABLED: u32 = 172u32; +pub const INTERNET_OPTION_TCP_FAST_OPEN: u32 = 171u32; +pub const INTERNET_OPTION_TIMED_CONNECTION_LIMIT_BYPASS: u32 = 133u32; +pub const INTERNET_OPTION_TOKEN_BINDING_PUBLIC_KEY: u32 = 181u32; +pub const INTERNET_OPTION_TUNNEL_ONLY: u32 = 145u32; +pub const INTERNET_OPTION_UNLOAD_NOTIFY_EVENT: u32 = 128u32; +pub const INTERNET_OPTION_UPGRADE_TO_WEB_SOCKET: u32 = 126u32; +pub const INTERNET_OPTION_URL: u32 = 34u32; +pub const INTERNET_OPTION_USERNAME: u32 = 28u32; +pub const INTERNET_OPTION_USER_AGENT: u32 = 41u32; +pub const INTERNET_OPTION_USER_PASS_SERVER_ONLY: u32 = 142u32; +pub const INTERNET_OPTION_USE_FIRST_AVAILABLE_CONNECTION: u32 = 132u32; +pub const INTERNET_OPTION_USE_MODIFIED_HEADER_FILTER: u32 = 124u32; +pub const INTERNET_OPTION_VERSION: u32 = 40u32; +pub const INTERNET_OPTION_WEB_SOCKET_CLOSE_TIMEOUT: u32 = 134u32; +pub const INTERNET_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL: u32 = 127u32; +pub const INTERNET_OPTION_WPAD_SLEEP: u32 = 114u32; +pub const INTERNET_OPTION_WRITE_BUFFER_SIZE: u32 = 13u32; +pub const INTERNET_OPTION_WWA_MODE: u32 = 125u32; +pub const INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_TIME: INTERNET_PER_CONN = 8u32; +pub const INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_URL: INTERNET_PER_CONN = 9u32; +pub const INTERNET_PER_CONN_AUTOCONFIG_RELOAD_DELAY_MINS: INTERNET_PER_CONN = 7u32; +pub const INTERNET_PER_CONN_AUTOCONFIG_SECONDARY_URL: INTERNET_PER_CONN = 6u32; +pub const INTERNET_PER_CONN_AUTOCONFIG_URL: INTERNET_PER_CONN = 4u32; +pub const INTERNET_PER_CONN_AUTODISCOVERY_FLAGS: INTERNET_PER_CONN = 5u32; +pub const INTERNET_PER_CONN_FLAGS: INTERNET_PER_CONN = 1u32; +pub const INTERNET_PER_CONN_FLAGS_UI: u32 = 10u32; +pub const INTERNET_PER_CONN_PROXY_BYPASS: INTERNET_PER_CONN = 3u32; +pub const INTERNET_PER_CONN_PROXY_SERVER: INTERNET_PER_CONN = 2u32; +pub const INTERNET_PREFETCH_ABORTED: u32 = 2u32; +pub const INTERNET_PREFETCH_COMPLETE: u32 = 1u32; +pub const INTERNET_PREFETCH_PROGRESS: u32 = 0u32; +pub const INTERNET_PRIORITY_FOREGROUND: u32 = 1000u32; +pub const INTERNET_RAS_INSTALLED: INTERNET_CONNECTION = 16u32; +pub const INTERNET_REQFLAG_ASYNC: u32 = 2u32; +pub const INTERNET_REQFLAG_CACHE_WRITE_DISABLED: u32 = 64u32; +pub const INTERNET_REQFLAG_FROM_APP_CACHE: u32 = 256u32; +pub const INTERNET_REQFLAG_FROM_CACHE: u32 = 1u32; +pub const INTERNET_REQFLAG_NET_TIMEOUT: u32 = 128u32; +pub const INTERNET_REQFLAG_NO_HEADERS: u32 = 8u32; +pub const INTERNET_REQFLAG_PASSIVE: u32 = 16u32; +pub const INTERNET_REQFLAG_VIA_PROXY: u32 = 4u32; +pub const INTERNET_RFC1123_BUFSIZE: u32 = 30u32; +pub const INTERNET_RFC1123_FORMAT: u32 = 0u32; +pub const INTERNET_SCHEME_DEFAULT: INTERNET_SCHEME = 0i32; +pub const INTERNET_SCHEME_FILE: INTERNET_SCHEME = 5i32; +pub const INTERNET_SCHEME_FIRST: INTERNET_SCHEME = 1i32; +pub const INTERNET_SCHEME_FTP: INTERNET_SCHEME = 1i32; +pub const INTERNET_SCHEME_GOPHER: INTERNET_SCHEME = 2i32; +pub const INTERNET_SCHEME_HTTP: INTERNET_SCHEME = 3i32; +pub const INTERNET_SCHEME_HTTPS: INTERNET_SCHEME = 4i32; +pub const INTERNET_SCHEME_JAVASCRIPT: INTERNET_SCHEME = 9i32; +pub const INTERNET_SCHEME_LAST: INTERNET_SCHEME = 11i32; +pub const INTERNET_SCHEME_MAILTO: INTERNET_SCHEME = 7i32; +pub const INTERNET_SCHEME_NEWS: INTERNET_SCHEME = 6i32; +pub const INTERNET_SCHEME_PARTIAL: INTERNET_SCHEME = -2i32; +pub const INTERNET_SCHEME_RES: INTERNET_SCHEME = 11i32; +pub const INTERNET_SCHEME_SOCKS: INTERNET_SCHEME = 8i32; +pub const INTERNET_SCHEME_UNKNOWN: INTERNET_SCHEME = -1i32; +pub const INTERNET_SCHEME_VBSCRIPT: INTERNET_SCHEME = 10i32; +pub const INTERNET_SERVICE_FTP: u32 = 1u32; +pub const INTERNET_SERVICE_GOPHER: u32 = 2u32; +pub const INTERNET_SERVICE_HTTP: u32 = 3u32; +pub const INTERNET_SERVICE_URL: u32 = 0u32; +pub const INTERNET_STATE_BUSY: INTERNET_STATE = 512u32; +pub const INTERNET_STATE_CONNECTED: INTERNET_STATE = 1u32; +pub const INTERNET_STATE_DISCONNECTED: INTERNET_STATE = 2u32; +pub const INTERNET_STATE_DISCONNECTED_BY_USER: INTERNET_STATE = 16u32; +pub const INTERNET_STATE_IDLE: INTERNET_STATE = 256u32; +pub const INTERNET_STATUS_CLOSING_CONNECTION: u32 = 50u32; +pub const INTERNET_STATUS_CONNECTED_TO_SERVER: u32 = 21u32; +pub const INTERNET_STATUS_CONNECTING_TO_SERVER: u32 = 20u32; +pub const INTERNET_STATUS_CONNECTION_CLOSED: u32 = 51u32; +pub const INTERNET_STATUS_COOKIE: u32 = 430u32; +pub const INTERNET_STATUS_COOKIE_HISTORY: u32 = 327u32; +pub const INTERNET_STATUS_COOKIE_RECEIVED: u32 = 321u32; +pub const INTERNET_STATUS_COOKIE_SENT: u32 = 320u32; +pub const INTERNET_STATUS_CTL_RESPONSE_RECEIVED: u32 = 42u32; +pub const INTERNET_STATUS_DETECTING_PROXY: u32 = 80u32; +pub const INTERNET_STATUS_END_BROWSER_SESSION: u32 = 420u32; +pub const INTERNET_STATUS_FILTER_CLOSED: u32 = 512u32; +pub const INTERNET_STATUS_FILTER_CLOSING: u32 = 256u32; +pub const INTERNET_STATUS_FILTER_CONNECTED: u32 = 8u32; +pub const INTERNET_STATUS_FILTER_CONNECTING: u32 = 4u32; +pub const INTERNET_STATUS_FILTER_HANDLE_CLOSING: u32 = 2048u32; +pub const INTERNET_STATUS_FILTER_HANDLE_CREATED: u32 = 1024u32; +pub const INTERNET_STATUS_FILTER_PREFETCH: u32 = 4096u32; +pub const INTERNET_STATUS_FILTER_RECEIVED: u32 = 128u32; +pub const INTERNET_STATUS_FILTER_RECEIVING: u32 = 64u32; +pub const INTERNET_STATUS_FILTER_REDIRECT: u32 = 8192u32; +pub const INTERNET_STATUS_FILTER_RESOLVED: u32 = 2u32; +pub const INTERNET_STATUS_FILTER_RESOLVING: u32 = 1u32; +pub const INTERNET_STATUS_FILTER_SENDING: u32 = 16u32; +pub const INTERNET_STATUS_FILTER_SENT: u32 = 32u32; +pub const INTERNET_STATUS_FILTER_STATE_CHANGE: u32 = 16384u32; +pub const INTERNET_STATUS_HANDLE_CLOSING: u32 = 70u32; +pub const INTERNET_STATUS_HANDLE_CREATED: u32 = 60u32; +pub const INTERNET_STATUS_INTERMEDIATE_RESPONSE: u32 = 120u32; +pub const INTERNET_STATUS_NAME_RESOLVED: u32 = 11u32; +pub const INTERNET_STATUS_P3P_HEADER: u32 = 325u32; +pub const INTERNET_STATUS_P3P_POLICYREF: u32 = 326u32; +pub const INTERNET_STATUS_PREFETCH: u32 = 43u32; +pub const INTERNET_STATUS_PRIVACY_IMPACTED: u32 = 324u32; +pub const INTERNET_STATUS_PROXY_CREDENTIALS: u32 = 400u32; +pub const INTERNET_STATUS_RECEIVING_RESPONSE: u32 = 40u32; +pub const INTERNET_STATUS_REDIRECT: u32 = 110u32; +pub const INTERNET_STATUS_REQUEST_COMPLETE: u32 = 100u32; +pub const INTERNET_STATUS_REQUEST_HEADERS_SET: u32 = 329u32; +pub const INTERNET_STATUS_REQUEST_SENT: u32 = 31u32; +pub const INTERNET_STATUS_RESOLVING_NAME: u32 = 10u32; +pub const INTERNET_STATUS_RESPONSE_HEADERS_SET: u32 = 330u32; +pub const INTERNET_STATUS_RESPONSE_RECEIVED: u32 = 41u32; +pub const INTERNET_STATUS_SENDING_COOKIE: u32 = 328u32; +pub const INTERNET_STATUS_SENDING_REQUEST: u32 = 30u32; +pub const INTERNET_STATUS_SERVER_CONNECTION_STATE: u32 = 410u32; +pub const INTERNET_STATUS_SERVER_CREDENTIALS: u32 = 401u32; +pub const INTERNET_STATUS_STATE_CHANGE: u32 = 200u32; +pub const INTERNET_STATUS_USER_INPUT_REQUIRED: u32 = 140u32; +pub const INTERNET_SUPPRESS_COOKIE_PERSIST: u32 = 3u32; +pub const INTERNET_SUPPRESS_COOKIE_PERSIST_RESET: u32 = 4u32; +pub const INTERNET_SUPPRESS_COOKIE_POLICY: u32 = 1u32; +pub const INTERNET_SUPPRESS_COOKIE_POLICY_RESET: u32 = 2u32; +pub const INTERNET_SUPPRESS_RESET_ALL: u32 = 0u32; +pub const IRF_ASYNC: u32 = 1u32; +pub const IRF_NO_WAIT: u32 = 8u32; +pub const IRF_SYNC: u32 = 4u32; +pub const IRF_USE_CONTEXT: u32 = 8u32; +pub const ISO_FORCE_DISCONNECTED: u32 = 1u32; +pub const ISO_FORCE_OFFLINE: u32 = 1u32; +pub const ISO_GLOBAL: u32 = 1u32; +pub const ISO_REGISTRY: u32 = 2u32; +pub const LOCAL_NAMESPACE_PREFIX: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Local\\"); +pub const LOCAL_NAMESPACE_PREFIX_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Local\\"); +pub const MAX_CACHE_ENTRY_INFO_SIZE: u32 = 4096u32; +pub const MAX_GOPHER_ATTRIBUTE_NAME: u32 = 128u32; +pub const MAX_GOPHER_CATEGORY_NAME: u32 = 128u32; +pub const MAX_GOPHER_DISPLAY_TEXT: u32 = 128u32; +pub const MAX_GOPHER_HOST_NAME: u32 = 256u32; +pub const MAX_GOPHER_SELECTOR_TEXT: u32 = 256u32; +pub const MIN_GOPHER_ATTRIBUTE_LENGTH: u32 = 256u32; +pub const MUST_REVALIDATE_CACHE_ENTRY: u32 = 256u32; +pub const MaxPrivacySettings: u32 = 16384u32; +pub const NORMAL_CACHE_ENTRY: u32 = 1u32; +pub const NameResolutionEnd: REQUEST_TIMES = 1i32; +pub const NameResolutionStart: REQUEST_TIMES = 0i32; +pub const OTHER_USER_CACHE_ENTRY: u32 = 8388608u32; +pub const PENDING_DELETE_CACHE_ENTRY: u32 = 4194304u32; +pub const POLICY_EXTENSION_TYPE_NONE: HTTP_POLICY_EXTENSION_TYPE = 0i32; +pub const POLICY_EXTENSION_TYPE_WINHTTP: HTTP_POLICY_EXTENSION_TYPE = 1i32; +pub const POLICY_EXTENSION_TYPE_WININET: HTTP_POLICY_EXTENSION_TYPE = 2i32; +pub const POLICY_EXTENSION_VERSION1: HTTP_POLICY_EXTENSION_VERSION = 1i32; +pub const POST_CHECK_CACHE_ENTRY: u32 = 536870912u32; +pub const POST_RESPONSE_CACHE_ENTRY: u32 = 67108864u32; +pub const PRIVACY_IMPACTED_CACHE_ENTRY: u32 = 33554432u32; +pub const PRIVACY_MODE_CACHE_ENTRY: u32 = 131072u32; +pub const PRIVACY_TEMPLATE_ADVANCED: u32 = 101u32; +pub const PRIVACY_TEMPLATE_CUSTOM: u32 = 100u32; +pub const PRIVACY_TEMPLATE_HIGH: u32 = 1u32; +pub const PRIVACY_TEMPLATE_LOW: u32 = 5u32; +pub const PRIVACY_TEMPLATE_MAX: u32 = 5u32; +pub const PRIVACY_TEMPLATE_MEDIUM: u32 = 3u32; +pub const PRIVACY_TEMPLATE_MEDIUM_HIGH: u32 = 2u32; +pub const PRIVACY_TEMPLATE_MEDIUM_LOW: u32 = 4u32; +pub const PRIVACY_TEMPLATE_NO_COOKIES: u32 = 0u32; +pub const PRIVACY_TYPE_FIRST_PARTY: u32 = 0u32; +pub const PRIVACY_TYPE_THIRD_PARTY: u32 = 1u32; +pub const PROXY_AUTO_DETECT_TYPE_DHCP: PROXY_AUTO_DETECT_TYPE = 1u32; +pub const PROXY_AUTO_DETECT_TYPE_DNS_A: PROXY_AUTO_DETECT_TYPE = 2u32; +pub const PROXY_TYPE_AUTO_DETECT: u32 = 8u32; +pub const PROXY_TYPE_AUTO_PROXY_URL: u32 = 4u32; +pub const PROXY_TYPE_DIRECT: u32 = 1u32; +pub const PROXY_TYPE_PROXY: u32 = 2u32; +pub const ProofOfPossessionCookieInfoManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa9927f85_a304_4390_8b23_a75f1c668600); +pub const REDIRECT_CACHE_ENTRY: u32 = 2048u32; +pub const REGSTR_DIAL_AUTOCONNECT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("AutoConnect"); +pub const REGSTR_LEASH_LEGACY_COOKIES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("LeashLegacyCookies"); +pub const SECURITY_FLAG_128BIT: u32 = 536870912u32; +pub const SECURITY_FLAG_40BIT: u32 = 268435456u32; +pub const SECURITY_FLAG_56BIT: u32 = 1073741824u32; +pub const SECURITY_FLAG_FORTEZZA: u32 = 134217728u32; +pub const SECURITY_FLAG_IETFSSL4: u32 = 32u32; +pub const SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP: u32 = 32768u32; +pub const SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS: u32 = 16384u32; +pub const SECURITY_FLAG_IGNORE_REVOCATION: u32 = 128u32; +pub const SECURITY_FLAG_IGNORE_WEAK_SIGNATURE: u32 = 65536u32; +pub const SECURITY_FLAG_IGNORE_WRONG_USAGE: u32 = 512u32; +pub const SECURITY_FLAG_NORMALBITNESS: u32 = 268435456u32; +pub const SECURITY_FLAG_OPT_IN_WEAK_SIGNATURE: u32 = 131072u32; +pub const SECURITY_FLAG_PCT: u32 = 8u32; +pub const SECURITY_FLAG_PCT4: u32 = 16u32; +pub const SECURITY_FLAG_SSL: u32 = 2u32; +pub const SECURITY_FLAG_SSL3: u32 = 4u32; +pub const SECURITY_FLAG_UNKNOWNBIT: u32 = 2147483648u32; +pub const SHORTPATH_CACHE_ENTRY: u32 = 512u32; +pub const SPARSE_CACHE_ENTRY: u32 = 65536u32; +pub const STATIC_CACHE_ENTRY: u32 = 128u32; +pub const STICKY_CACHE_ENTRY: u32 = 4u32; +pub const TLSHandshakeEnd: REQUEST_TIMES = 5i32; +pub const TLSHandshakeStart: REQUEST_TIMES = 4i32; +pub const TRACK_OFFLINE_CACHE_ENTRY: u32 = 16u32; +pub const TRACK_ONLINE_CACHE_ENTRY: u32 = 32u32; +pub const URLHISTORY_CACHE_ENTRY: u32 = 2097152u32; +pub const UrlCacheLimitTypeAppContainer: URL_CACHE_LIMIT_TYPE = 2i32; +pub const UrlCacheLimitTypeAppContainerTotal: URL_CACHE_LIMIT_TYPE = 3i32; +pub const UrlCacheLimitTypeIE: URL_CACHE_LIMIT_TYPE = 0i32; +pub const UrlCacheLimitTypeIETotal: URL_CACHE_LIMIT_TYPE = 1i32; +pub const UrlCacheLimitTypeNum: URL_CACHE_LIMIT_TYPE = 4i32; +pub const WININET_API_FLAG_ASYNC: u32 = 1u32; +pub const WININET_API_FLAG_SYNC: u32 = 4u32; +pub const WININET_API_FLAG_USE_CONTEXT: u32 = 8u32; +pub const WININET_SYNC_MODE_ALWAYS: WININET_SYNC_MODE = 3i32; +pub const WININET_SYNC_MODE_AUTOMATIC: WININET_SYNC_MODE = 4i32; +pub const WININET_SYNC_MODE_DEFAULT: WININET_SYNC_MODE = 4i32; +pub const WININET_SYNC_MODE_NEVER: WININET_SYNC_MODE = 0i32; +pub const WININET_SYNC_MODE_ONCE_PER_SESSION: WININET_SYNC_MODE = 2i32; +pub const WININET_SYNC_MODE_ON_EXPIRY: WININET_SYNC_MODE = 1i32; +pub const WPAD_CACHE_DELETE_ALL: WPAD_CACHE_DELETE = 1i32; +pub const WPAD_CACHE_DELETE_CURRENT: WPAD_CACHE_DELETE = 0i32; +pub const XDR_CACHE_ENTRY: u32 = 262144u32; +pub type APP_CACHE_FINALIZE_STATE = i32; +pub type APP_CACHE_STATE = i32; +pub type CACHE_CONFIG = u32; +pub type FORTCMD = i32; +pub type FORTSTAT = i32; +pub type FTP_FLAGS = u32; +pub type GOPHER_TYPE = u32; +pub type HTTP_ADDREQ_FLAG = u32; +pub type HTTP_POLICY_EXTENSION_TYPE = i32; +pub type HTTP_POLICY_EXTENSION_VERSION = i32; +pub type HTTP_PUSH_WAIT_TYPE = i32; +pub type HTTP_WEB_SOCKET_BUFFER_TYPE = i32; +pub type HTTP_WEB_SOCKET_CLOSE_STATUS = i32; +pub type HTTP_WEB_SOCKET_OPERATION = i32; +pub type INTERNET_ACCESS_TYPE = u32; +pub type INTERNET_AUTODIAL = u32; +pub type INTERNET_CONNECTION = u32; +pub type INTERNET_COOKIE_FLAGS = u32; +pub type INTERNET_PER_CONN = u32; +pub type INTERNET_SCHEME = i32; +pub type INTERNET_STATE = u32; +pub type InternetCookieState = i32; +pub type PROXY_AUTO_DETECT_TYPE = u32; +pub type REQUEST_TIMES = i32; +pub type URL_CACHE_LIMIT_TYPE = i32; +pub type WININET_SYNC_MODE = i32; +pub type WPAD_CACHE_DELETE = i32; +#[repr(C)] +pub struct APP_CACHE_DOWNLOAD_ENTRY { + pub pwszUrl: ::windows_sys::core::PWSTR, + pub dwEntryType: u32, +} +impl ::core::marker::Copy for APP_CACHE_DOWNLOAD_ENTRY {} +impl ::core::clone::Clone for APP_CACHE_DOWNLOAD_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct APP_CACHE_DOWNLOAD_LIST { + pub dwEntryCount: u32, + pub pEntries: *mut APP_CACHE_DOWNLOAD_ENTRY, +} +impl ::core::marker::Copy for APP_CACHE_DOWNLOAD_LIST {} +impl ::core::clone::Clone for APP_CACHE_DOWNLOAD_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct APP_CACHE_GROUP_INFO { + pub pwszManifestUrl: ::windows_sys::core::PWSTR, + pub ftLastAccessTime: super::super::Foundation::FILETIME, + pub ullSize: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for APP_CACHE_GROUP_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for APP_CACHE_GROUP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct APP_CACHE_GROUP_LIST { + pub dwAppCacheGroupCount: u32, + pub pAppCacheGroups: *mut APP_CACHE_GROUP_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for APP_CACHE_GROUP_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for APP_CACHE_GROUP_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUTO_PROXY_SCRIPT_BUFFER { + pub dwStructSize: u32, + pub lpszScriptBuffer: ::windows_sys::core::PSTR, + pub dwScriptBufferSize: u32, +} +impl ::core::marker::Copy for AUTO_PROXY_SCRIPT_BUFFER {} +impl ::core::clone::Clone for AUTO_PROXY_SCRIPT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AutoProxyHelperFunctions { + pub lpVtbl: *const AutoProxyHelperVtbl, +} +impl ::core::marker::Copy for AutoProxyHelperFunctions {} +impl ::core::clone::Clone for AutoProxyHelperFunctions { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AutoProxyHelperVtbl { + pub IsResolvable: isize, + pub GetIPAddress: isize, + pub ResolveHostName: isize, + pub IsInNet: isize, + pub IsResolvableEx: isize, + pub GetIPAddressEx: isize, + pub ResolveHostNameEx: isize, + pub IsInNetEx: isize, + pub SortIpList: isize, +} +impl ::core::marker::Copy for AutoProxyHelperVtbl {} +impl ::core::clone::Clone for AutoProxyHelperVtbl { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COOKIE_DLG_INFO { + pub pszServer: ::windows_sys::core::PWSTR, + pub pic: *mut INTERNET_COOKIE, + pub dwStopWarning: u32, + pub cx: i32, + pub cy: i32, + pub pszHeader: ::windows_sys::core::PWSTR, + pub dwOperation: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COOKIE_DLG_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COOKIE_DLG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CookieDecision { + pub dwCookieState: u32, + pub fAllowSession: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CookieDecision {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CookieDecision { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_ABSTRACT_ATTRIBUTE_TYPE { + pub ShortAbstract: *mut i8, + pub AbstractFile: *mut i8, +} +impl ::core::marker::Copy for GOPHER_ABSTRACT_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_ABSTRACT_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_ADMIN_ATTRIBUTE_TYPE { + pub Comment: *mut i8, + pub EmailAddress: *mut i8, +} +impl ::core::marker::Copy for GOPHER_ADMIN_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_ADMIN_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_ASK_ATTRIBUTE_TYPE { + pub QuestionType: *mut i8, + pub QuestionText: *mut i8, +} +impl ::core::marker::Copy for GOPHER_ASK_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_ASK_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GOPHER_ATTRIBUTE_TYPE { + pub CategoryId: u32, + pub AttributeId: u32, + pub AttributeType: GOPHER_ATTRIBUTE_TYPE_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GOPHER_ATTRIBUTE_TYPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GOPHER_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union GOPHER_ATTRIBUTE_TYPE_0 { + pub Admin: GOPHER_ADMIN_ATTRIBUTE_TYPE, + pub ModDate: GOPHER_MOD_DATE_ATTRIBUTE_TYPE, + pub Ttl: GOPHER_TTL_ATTRIBUTE_TYPE, + pub Score: GOPHER_SCORE_ATTRIBUTE_TYPE, + pub ScoreRange: GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE, + pub Site: GOPHER_SITE_ATTRIBUTE_TYPE, + pub Organization: GOPHER_ORGANIZATION_ATTRIBUTE_TYPE, + pub Location: GOPHER_LOCATION_ATTRIBUTE_TYPE, + pub GeographicalLocation: GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE, + pub TimeZone: GOPHER_TIMEZONE_ATTRIBUTE_TYPE, + pub Provider: GOPHER_PROVIDER_ATTRIBUTE_TYPE, + pub Version: GOPHER_VERSION_ATTRIBUTE_TYPE, + pub Abstract: GOPHER_ABSTRACT_ATTRIBUTE_TYPE, + pub View: GOPHER_VIEW_ATTRIBUTE_TYPE, + pub Veronica: GOPHER_VERONICA_ATTRIBUTE_TYPE, + pub Ask: GOPHER_ASK_ATTRIBUTE_TYPE, + pub Unknown: GOPHER_UNKNOWN_ATTRIBUTE_TYPE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GOPHER_ATTRIBUTE_TYPE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GOPHER_ATTRIBUTE_TYPE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GOPHER_FIND_DATAA { + pub DisplayString: [u8; 129], + pub GopherType: GOPHER_TYPE, + pub SizeLow: u32, + pub SizeHigh: u32, + pub LastModificationTime: super::super::Foundation::FILETIME, + pub Locator: [u8; 654], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GOPHER_FIND_DATAA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GOPHER_FIND_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GOPHER_FIND_DATAW { + pub DisplayString: [u16; 129], + pub GopherType: GOPHER_TYPE, + pub SizeLow: u32, + pub SizeHigh: u32, + pub LastModificationTime: super::super::Foundation::FILETIME, + pub Locator: [u16; 654], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GOPHER_FIND_DATAW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GOPHER_FIND_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE { + pub DegreesNorth: i32, + pub MinutesNorth: i32, + pub SecondsNorth: i32, + pub DegreesEast: i32, + pub MinutesEast: i32, + pub SecondsEast: i32, +} +impl ::core::marker::Copy for GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_LOCATION_ATTRIBUTE_TYPE { + pub Location: *mut i8, +} +impl ::core::marker::Copy for GOPHER_LOCATION_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_LOCATION_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GOPHER_MOD_DATE_ATTRIBUTE_TYPE { + pub DateAndTime: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GOPHER_MOD_DATE_ATTRIBUTE_TYPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GOPHER_MOD_DATE_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_ORGANIZATION_ATTRIBUTE_TYPE { + pub Organization: *mut i8, +} +impl ::core::marker::Copy for GOPHER_ORGANIZATION_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_ORGANIZATION_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_PROVIDER_ATTRIBUTE_TYPE { + pub Provider: *mut i8, +} +impl ::core::marker::Copy for GOPHER_PROVIDER_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_PROVIDER_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_SCORE_ATTRIBUTE_TYPE { + pub Score: i32, +} +impl ::core::marker::Copy for GOPHER_SCORE_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_SCORE_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE { + pub LowerBound: i32, + pub UpperBound: i32, +} +impl ::core::marker::Copy for GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_SITE_ATTRIBUTE_TYPE { + pub Site: *mut i8, +} +impl ::core::marker::Copy for GOPHER_SITE_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_SITE_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_TIMEZONE_ATTRIBUTE_TYPE { + pub Zone: i32, +} +impl ::core::marker::Copy for GOPHER_TIMEZONE_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_TIMEZONE_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_TTL_ATTRIBUTE_TYPE { + pub Ttl: u32, +} +impl ::core::marker::Copy for GOPHER_TTL_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_TTL_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_UNKNOWN_ATTRIBUTE_TYPE { + pub Text: *mut i8, +} +impl ::core::marker::Copy for GOPHER_UNKNOWN_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_UNKNOWN_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GOPHER_VERONICA_ATTRIBUTE_TYPE { + pub TreeWalk: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GOPHER_VERONICA_ATTRIBUTE_TYPE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GOPHER_VERONICA_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_VERSION_ATTRIBUTE_TYPE { + pub Version: *mut i8, +} +impl ::core::marker::Copy for GOPHER_VERSION_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_VERSION_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GOPHER_VIEW_ATTRIBUTE_TYPE { + pub ContentType: *mut i8, + pub Language: *mut i8, + pub Size: u32, +} +impl ::core::marker::Copy for GOPHER_VIEW_ATTRIBUTE_TYPE {} +impl ::core::clone::Clone for GOPHER_VIEW_ATTRIBUTE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_PUSH_NOTIFICATION_STATUS { + pub ChannelStatusValid: super::super::Foundation::BOOL, + pub ChannelStatus: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_PUSH_NOTIFICATION_STATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_PUSH_NOTIFICATION_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_PUSH_TRANSPORT_SETTING { + pub TransportSettingId: ::windows_sys::core::GUID, + pub BrokerEventId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for HTTP_PUSH_TRANSPORT_SETTING {} +impl ::core::clone::Clone for HTTP_PUSH_TRANSPORT_SETTING { + fn clone(&self) -> Self { + *self + } +} +pub type HTTP_PUSH_WAIT_HANDLE = isize; +#[repr(C)] +pub struct HTTP_REQUEST_TIMES { + pub cTimes: u32, + pub rgTimes: [u64; 32], +} +impl ::core::marker::Copy for HTTP_REQUEST_TIMES {} +impl ::core::clone::Clone for HTTP_REQUEST_TIMES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_WEB_SOCKET_ASYNC_RESULT { + pub AsyncResult: INTERNET_ASYNC_RESULT, + pub Operation: HTTP_WEB_SOCKET_OPERATION, + pub BufferType: HTTP_WEB_SOCKET_BUFFER_TYPE, + pub dwBytesTransferred: u32, +} +impl ::core::marker::Copy for HTTP_WEB_SOCKET_ASYNC_RESULT {} +impl ::core::clone::Clone for HTTP_WEB_SOCKET_ASYNC_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_ASYNC_RESULT { + pub dwResult: usize, + pub dwError: u32, +} +impl ::core::marker::Copy for INTERNET_ASYNC_RESULT {} +impl ::core::clone::Clone for INTERNET_ASYNC_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_AUTH_NOTIFY_DATA { + pub cbStruct: u32, + pub dwOptions: u32, + pub pfnNotify: PFN_AUTH_NOTIFY, + pub dwContext: usize, +} +impl ::core::marker::Copy for INTERNET_AUTH_NOTIFY_DATA {} +impl ::core::clone::Clone for INTERNET_AUTH_NOTIFY_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_BUFFERSA { + pub dwStructSize: u32, + pub Next: *mut INTERNET_BUFFERSA, + pub lpcszHeader: ::windows_sys::core::PCSTR, + pub dwHeadersLength: u32, + pub dwHeadersTotal: u32, + pub lpvBuffer: *mut ::core::ffi::c_void, + pub dwBufferLength: u32, + pub dwBufferTotal: u32, + pub dwOffsetLow: u32, + pub dwOffsetHigh: u32, +} +impl ::core::marker::Copy for INTERNET_BUFFERSA {} +impl ::core::clone::Clone for INTERNET_BUFFERSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_BUFFERSW { + pub dwStructSize: u32, + pub Next: *mut INTERNET_BUFFERSW, + pub lpcszHeader: ::windows_sys::core::PCWSTR, + pub dwHeadersLength: u32, + pub dwHeadersTotal: u32, + pub lpvBuffer: *mut ::core::ffi::c_void, + pub dwBufferLength: u32, + pub dwBufferTotal: u32, + pub dwOffsetLow: u32, + pub dwOffsetHigh: u32, +} +impl ::core::marker::Copy for INTERNET_BUFFERSW {} +impl ::core::clone::Clone for INTERNET_BUFFERSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_CACHE_CONFIG_INFOA { + pub dwStructSize: u32, + pub dwContainer: u32, + pub dwQuota: u32, + pub dwReserved4: u32, + pub fPerUser: super::super::Foundation::BOOL, + pub dwSyncMode: u32, + pub dwNumCachePaths: u32, + pub Anonymous: INTERNET_CACHE_CONFIG_INFOA_0, + pub dwNormalUsage: u32, + pub dwExemptUsage: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CACHE_CONFIG_INFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CACHE_CONFIG_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union INTERNET_CACHE_CONFIG_INFOA_0 { + pub Anonymous: INTERNET_CACHE_CONFIG_INFOA_0_0, + pub CachePaths: [INTERNET_CACHE_CONFIG_PATH_ENTRYA; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CACHE_CONFIG_INFOA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CACHE_CONFIG_INFOA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_CACHE_CONFIG_INFOA_0_0 { + pub CachePath: [u8; 260], + pub dwCacheSize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CACHE_CONFIG_INFOA_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CACHE_CONFIG_INFOA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_CACHE_CONFIG_INFOW { + pub dwStructSize: u32, + pub dwContainer: u32, + pub dwQuota: u32, + pub dwReserved4: u32, + pub fPerUser: super::super::Foundation::BOOL, + pub dwSyncMode: u32, + pub dwNumCachePaths: u32, + pub Anonymous: INTERNET_CACHE_CONFIG_INFOW_0, + pub dwNormalUsage: u32, + pub dwExemptUsage: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CACHE_CONFIG_INFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CACHE_CONFIG_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union INTERNET_CACHE_CONFIG_INFOW_0 { + pub Anonymous: INTERNET_CACHE_CONFIG_INFOW_0_0, + pub CachePaths: [INTERNET_CACHE_CONFIG_PATH_ENTRYW; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CACHE_CONFIG_INFOW_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CACHE_CONFIG_INFOW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_CACHE_CONFIG_INFOW_0_0 { + pub CachePath: [u16; 260], + pub dwCacheSize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CACHE_CONFIG_INFOW_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CACHE_CONFIG_INFOW_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_CACHE_CONFIG_PATH_ENTRYA { + pub CachePath: [u8; 260], + pub dwCacheSize: u32, +} +impl ::core::marker::Copy for INTERNET_CACHE_CONFIG_PATH_ENTRYA {} +impl ::core::clone::Clone for INTERNET_CACHE_CONFIG_PATH_ENTRYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_CACHE_CONFIG_PATH_ENTRYW { + pub CachePath: [u16; 260], + pub dwCacheSize: u32, +} +impl ::core::marker::Copy for INTERNET_CACHE_CONFIG_PATH_ENTRYW {} +impl ::core::clone::Clone for INTERNET_CACHE_CONFIG_PATH_ENTRYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_CACHE_CONTAINER_INFOA { + pub dwCacheVersion: u32, + pub lpszName: ::windows_sys::core::PSTR, + pub lpszCachePrefix: ::windows_sys::core::PSTR, + pub lpszVolumeLabel: ::windows_sys::core::PSTR, + pub lpszVolumeTitle: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for INTERNET_CACHE_CONTAINER_INFOA {} +impl ::core::clone::Clone for INTERNET_CACHE_CONTAINER_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_CACHE_CONTAINER_INFOW { + pub dwCacheVersion: u32, + pub lpszName: ::windows_sys::core::PWSTR, + pub lpszCachePrefix: ::windows_sys::core::PWSTR, + pub lpszVolumeLabel: ::windows_sys::core::PWSTR, + pub lpszVolumeTitle: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for INTERNET_CACHE_CONTAINER_INFOW {} +impl ::core::clone::Clone for INTERNET_CACHE_CONTAINER_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_CACHE_ENTRY_INFOA { + pub dwStructSize: u32, + pub lpszSourceUrlName: ::windows_sys::core::PSTR, + pub lpszLocalFileName: ::windows_sys::core::PSTR, + pub CacheEntryType: u32, + pub dwUseCount: u32, + pub dwHitRate: u32, + pub dwSizeLow: u32, + pub dwSizeHigh: u32, + pub LastModifiedTime: super::super::Foundation::FILETIME, + pub ExpireTime: super::super::Foundation::FILETIME, + pub LastAccessTime: super::super::Foundation::FILETIME, + pub LastSyncTime: super::super::Foundation::FILETIME, + pub lpHeaderInfo: ::windows_sys::core::PSTR, + pub dwHeaderInfoSize: u32, + pub lpszFileExtension: ::windows_sys::core::PSTR, + pub Anonymous: INTERNET_CACHE_ENTRY_INFOA_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CACHE_ENTRY_INFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CACHE_ENTRY_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union INTERNET_CACHE_ENTRY_INFOA_0 { + pub dwReserved: u32, + pub dwExemptDelta: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CACHE_ENTRY_INFOA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CACHE_ENTRY_INFOA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_CACHE_ENTRY_INFOW { + pub dwStructSize: u32, + pub lpszSourceUrlName: ::windows_sys::core::PWSTR, + pub lpszLocalFileName: ::windows_sys::core::PWSTR, + pub CacheEntryType: u32, + pub dwUseCount: u32, + pub dwHitRate: u32, + pub dwSizeLow: u32, + pub dwSizeHigh: u32, + pub LastModifiedTime: super::super::Foundation::FILETIME, + pub ExpireTime: super::super::Foundation::FILETIME, + pub LastAccessTime: super::super::Foundation::FILETIME, + pub LastSyncTime: super::super::Foundation::FILETIME, + pub lpHeaderInfo: ::windows_sys::core::PWSTR, + pub dwHeaderInfoSize: u32, + pub lpszFileExtension: ::windows_sys::core::PWSTR, + pub Anonymous: INTERNET_CACHE_ENTRY_INFOW_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CACHE_ENTRY_INFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CACHE_ENTRY_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union INTERNET_CACHE_ENTRY_INFOW_0 { + pub dwReserved: u32, + pub dwExemptDelta: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CACHE_ENTRY_INFOW_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CACHE_ENTRY_INFOW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_CACHE_GROUP_INFOA { + pub dwGroupSize: u32, + pub dwGroupFlags: u32, + pub dwGroupType: u32, + pub dwDiskUsage: u32, + pub dwDiskQuota: u32, + pub dwOwnerStorage: [u32; 4], + pub szGroupName: [u8; 120], +} +impl ::core::marker::Copy for INTERNET_CACHE_GROUP_INFOA {} +impl ::core::clone::Clone for INTERNET_CACHE_GROUP_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_CACHE_GROUP_INFOW { + pub dwGroupSize: u32, + pub dwGroupFlags: u32, + pub dwGroupType: u32, + pub dwDiskUsage: u32, + pub dwDiskQuota: u32, + pub dwOwnerStorage: [u32; 4], + pub szGroupName: [u16; 120], +} +impl ::core::marker::Copy for INTERNET_CACHE_GROUP_INFOW {} +impl ::core::clone::Clone for INTERNET_CACHE_GROUP_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_CACHE_TIMESTAMPS { + pub ftExpires: super::super::Foundation::FILETIME, + pub ftLastModified: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CACHE_TIMESTAMPS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CACHE_TIMESTAMPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_CALLBACK_COOKIE { + pub pcwszName: ::windows_sys::core::PCWSTR, + pub pcwszValue: ::windows_sys::core::PCWSTR, + pub pcwszDomain: ::windows_sys::core::PCWSTR, + pub pcwszPath: ::windows_sys::core::PCWSTR, + pub ftExpires: super::super::Foundation::FILETIME, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CALLBACK_COOKIE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CALLBACK_COOKIE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_CERTIFICATE_INFO { + pub ftExpiry: super::super::Foundation::FILETIME, + pub ftStart: super::super::Foundation::FILETIME, + pub lpszSubjectInfo: *mut i8, + pub lpszIssuerInfo: *mut i8, + pub lpszProtocolName: *mut i8, + pub lpszSignatureAlgName: *mut i8, + pub lpszEncryptionAlgName: *mut i8, + pub dwKeySize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CERTIFICATE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CERTIFICATE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_CONNECTED_INFO { + pub dwConnectedState: INTERNET_STATE, + pub dwFlags: u32, +} +impl ::core::marker::Copy for INTERNET_CONNECTED_INFO {} +impl ::core::clone::Clone for INTERNET_CONNECTED_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_COOKIE { + pub cbSize: u32, + pub pszName: ::windows_sys::core::PSTR, + pub pszData: ::windows_sys::core::PSTR, + pub pszDomain: ::windows_sys::core::PSTR, + pub pszPath: ::windows_sys::core::PSTR, + pub pftExpires: *mut super::super::Foundation::FILETIME, + pub dwFlags: u32, + pub pszUrl: ::windows_sys::core::PSTR, + pub pszP3PPolicy: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_COOKIE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_COOKIE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_COOKIE2 { + pub pwszName: ::windows_sys::core::PWSTR, + pub pwszValue: ::windows_sys::core::PWSTR, + pub pwszDomain: ::windows_sys::core::PWSTR, + pub pwszPath: ::windows_sys::core::PWSTR, + pub dwFlags: u32, + pub ftExpires: super::super::Foundation::FILETIME, + pub fExpiresSet: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_COOKIE2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_COOKIE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_CREDENTIALS { + pub lpcwszHostName: ::windows_sys::core::PCWSTR, + pub dwPort: u32, + pub dwScheme: u32, + pub lpcwszUrl: ::windows_sys::core::PCWSTR, + pub lpcwszRealm: ::windows_sys::core::PCWSTR, + pub fAuthIdentity: super::super::Foundation::BOOL, + pub Anonymous: INTERNET_CREDENTIALS_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CREDENTIALS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CREDENTIALS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union INTERNET_CREDENTIALS_0 { + pub Anonymous: INTERNET_CREDENTIALS_0_0, + pub pAuthIdentityOpaque: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CREDENTIALS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CREDENTIALS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_CREDENTIALS_0_0 { + pub lpcwszUserName: ::windows_sys::core::PCWSTR, + pub lpcwszPassword: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_CREDENTIALS_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_CREDENTIALS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_DIAGNOSTIC_SOCKET_INFO { + pub Socket: usize, + pub SourcePort: u32, + pub DestPort: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for INTERNET_DIAGNOSTIC_SOCKET_INFO {} +impl ::core::clone::Clone for INTERNET_DIAGNOSTIC_SOCKET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_DOWNLOAD_MODE_HANDLE { + pub pcwszFileName: ::windows_sys::core::PCWSTR, + pub phFile: *mut super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_DOWNLOAD_MODE_HANDLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_DOWNLOAD_MODE_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_END_BROWSER_SESSION_DATA { + pub lpBuffer: *mut ::core::ffi::c_void, + pub dwBufferLength: u32, +} +impl ::core::marker::Copy for INTERNET_END_BROWSER_SESSION_DATA {} +impl ::core::clone::Clone for INTERNET_END_BROWSER_SESSION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_PER_CONN_OPTIONA { + pub dwOption: INTERNET_PER_CONN, + pub Value: INTERNET_PER_CONN_OPTIONA_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_PER_CONN_OPTIONA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_PER_CONN_OPTIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union INTERNET_PER_CONN_OPTIONA_0 { + pub dwValue: u32, + pub pszValue: ::windows_sys::core::PSTR, + pub ftValue: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_PER_CONN_OPTIONA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_PER_CONN_OPTIONA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_PER_CONN_OPTIONW { + pub dwOption: INTERNET_PER_CONN, + pub Value: INTERNET_PER_CONN_OPTIONW_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_PER_CONN_OPTIONW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_PER_CONN_OPTIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union INTERNET_PER_CONN_OPTIONW_0 { + pub dwValue: u32, + pub pszValue: ::windows_sys::core::PWSTR, + pub ftValue: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_PER_CONN_OPTIONW_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_PER_CONN_OPTIONW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_PER_CONN_OPTION_LISTA { + pub dwSize: u32, + pub pszConnection: ::windows_sys::core::PSTR, + pub dwOptionCount: u32, + pub dwOptionError: u32, + pub pOptions: *mut INTERNET_PER_CONN_OPTIONA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_PER_CONN_OPTION_LISTA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_PER_CONN_OPTION_LISTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_PER_CONN_OPTION_LISTW { + pub dwSize: u32, + pub pszConnection: ::windows_sys::core::PWSTR, + pub dwOptionCount: u32, + pub dwOptionError: u32, + pub pOptions: *mut INTERNET_PER_CONN_OPTIONW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_PER_CONN_OPTION_LISTW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_PER_CONN_OPTION_LISTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_PREFETCH_STATUS { + pub dwStatus: u32, + pub dwSize: u32, +} +impl ::core::marker::Copy for INTERNET_PREFETCH_STATUS {} +impl ::core::clone::Clone for INTERNET_PREFETCH_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_PROXY_INFO { + pub dwAccessType: INTERNET_ACCESS_TYPE, + pub lpszProxy: *mut i8, + pub lpszProxyBypass: *mut i8, +} +impl ::core::marker::Copy for INTERNET_PROXY_INFO {} +impl ::core::clone::Clone for INTERNET_PROXY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_Security_Cryptography"))] +pub struct INTERNET_SECURITY_CONNECTION_INFO { + pub dwSize: u32, + pub fSecure: super::super::Foundation::BOOL, + pub connectionInfo: super::super::Security::Authentication::Identity::SecPkgContext_ConnectionInfo, + pub cipherInfo: super::super::Security::Authentication::Identity::SecPkgContext_CipherInfo, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for INTERNET_SECURITY_CONNECTION_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for INTERNET_SECURITY_CONNECTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_Security_Cryptography"))] +pub struct INTERNET_SECURITY_INFO { + pub dwSize: u32, + pub pCertificate: *const super::super::Security::Cryptography::CERT_CONTEXT, + pub pcCertChain: *mut super::super::Security::Cryptography::CERT_CHAIN_CONTEXT, + pub connectionInfo: super::super::Security::Authentication::Identity::SecPkgContext_ConnectionInfo, + pub cipherInfo: super::super::Security::Authentication::Identity::SecPkgContext_CipherInfo, + pub pcUnverifiedCertChain: *mut super::super::Security::Cryptography::CERT_CHAIN_CONTEXT, + pub channelBindingToken: super::super::Security::Authentication::Identity::SecPkgContext_Bindings, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for INTERNET_SECURITY_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for INTERNET_SECURITY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTERNET_SERVER_CONNECTION_STATE { + pub lpcwszHostName: ::windows_sys::core::PCWSTR, + pub fProxy: super::super::Foundation::BOOL, + pub dwCounter: u32, + pub dwConnectionLimit: u32, + pub dwAvailableCreates: u32, + pub dwAvailableKeepAlives: u32, + pub dwActiveConnections: u32, + pub dwWaiters: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTERNET_SERVER_CONNECTION_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTERNET_SERVER_CONNECTION_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERNET_VERSION_INFO { + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, +} +impl ::core::marker::Copy for INTERNET_VERSION_INFO {} +impl ::core::clone::Clone for INTERNET_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IncomingCookieState { + pub cSession: i32, + pub cPersistent: i32, + pub cAccepted: i32, + pub cLeashed: i32, + pub cDowngraded: i32, + pub cBlocked: i32, + pub pszLocation: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for IncomingCookieState {} +impl ::core::clone::Clone for IncomingCookieState { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct InternetCookieHistory { + pub fAccepted: super::super::Foundation::BOOL, + pub fLeashed: super::super::Foundation::BOOL, + pub fDowngraded: super::super::Foundation::BOOL, + pub fRejected: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for InternetCookieHistory {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for InternetCookieHistory { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OutgoingCookieState { + pub cSent: i32, + pub cSuppressed: i32, + pub pszLocation: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for OutgoingCookieState {} +impl ::core::clone::Clone for OutgoingCookieState { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ProofOfPossessionCookieInfo { + pub name: ::windows_sys::core::PWSTR, + pub data: ::windows_sys::core::PWSTR, + pub flags: u32, + pub p3pHeader: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ProofOfPossessionCookieInfo {} +impl ::core::clone::Clone for ProofOfPossessionCookieInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct URLCACHE_ENTRY_INFO { + pub pwszSourceUrlName: ::windows_sys::core::PWSTR, + pub pwszLocalFileName: ::windows_sys::core::PWSTR, + pub dwCacheEntryType: u32, + pub dwUseCount: u32, + pub dwHitRate: u32, + pub dwSizeLow: u32, + pub dwSizeHigh: u32, + pub ftLastModifiedTime: super::super::Foundation::FILETIME, + pub ftExpireTime: super::super::Foundation::FILETIME, + pub ftLastAccessTime: super::super::Foundation::FILETIME, + pub ftLastSyncTime: super::super::Foundation::FILETIME, + pub pbHeaderInfo: *mut u8, + pub cbHeaderInfoSize: u32, + pub pbExtraData: *mut u8, + pub cbExtraDataSize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for URLCACHE_ENTRY_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for URLCACHE_ENTRY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct URL_COMPONENTSA { + pub dwStructSize: u32, + pub lpszScheme: ::windows_sys::core::PSTR, + pub dwSchemeLength: u32, + pub nScheme: INTERNET_SCHEME, + pub lpszHostName: ::windows_sys::core::PSTR, + pub dwHostNameLength: u32, + pub nPort: u16, + pub lpszUserName: ::windows_sys::core::PSTR, + pub dwUserNameLength: u32, + pub lpszPassword: ::windows_sys::core::PSTR, + pub dwPasswordLength: u32, + pub lpszUrlPath: ::windows_sys::core::PSTR, + pub dwUrlPathLength: u32, + pub lpszExtraInfo: ::windows_sys::core::PSTR, + pub dwExtraInfoLength: u32, +} +impl ::core::marker::Copy for URL_COMPONENTSA {} +impl ::core::clone::Clone for URL_COMPONENTSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct URL_COMPONENTSW { + pub dwStructSize: u32, + pub lpszScheme: ::windows_sys::core::PWSTR, + pub dwSchemeLength: u32, + pub nScheme: INTERNET_SCHEME, + pub lpszHostName: ::windows_sys::core::PWSTR, + pub dwHostNameLength: u32, + pub nPort: u16, + pub lpszUserName: ::windows_sys::core::PWSTR, + pub dwUserNameLength: u32, + pub lpszPassword: ::windows_sys::core::PWSTR, + pub dwPasswordLength: u32, + pub lpszUrlPath: ::windows_sys::core::PWSTR, + pub dwUrlPathLength: u32, + pub lpszExtraInfo: ::windows_sys::core::PWSTR, + pub dwExtraInfoLength: u32, +} +impl ::core::marker::Copy for URL_COMPONENTSW {} +impl ::core::clone::Clone for URL_COMPONENTSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WININET_PROXY_INFO { + pub fProxy: super::super::Foundation::BOOL, + pub fBypass: super::super::Foundation::BOOL, + pub ProxyScheme: INTERNET_SCHEME, + pub pwszProxy: ::windows_sys::core::PWSTR, + pub ProxyPort: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WININET_PROXY_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WININET_PROXY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WININET_PROXY_INFO_LIST { + pub dwProxyInfoCount: u32, + pub pProxyInfo: *mut WININET_PROXY_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WININET_PROXY_INFO_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WININET_PROXY_INFO_LIST { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CACHE_OPERATOR = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type GOPHER_ATTRIBUTE_ENUMERATOR = ::core::option::Option super::super::Foundation::BOOL>; +pub type HTTP_POLICY_EXTENSION_INIT = ::core::option::Option u32>; +pub type HTTP_POLICY_EXTENSION_SHUTDOWN = ::core::option::Option u32>; +pub type LPINTERNET_STATUS_CALLBACK = ::core::option::Option ()>; +pub type PFN_AUTH_NOTIFY = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_DIAL_HANDLER = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pfnInternetDeInitializeAutoProxyDll = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pfnInternetGetProxyInfo = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pfnInternetInitializeAutoProxyDll = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WinSock/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WinSock/mod.rs new file mode 100644 index 000000000..ab63e57b8 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WinSock/mod.rs @@ -0,0 +1,6724 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("mswsock.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn AcceptEx(slistensocket : SOCKET, sacceptsocket : SOCKET, lpoutputbuffer : *mut ::core::ffi::c_void, dwreceivedatalength : u32, dwlocaladdresslength : u32, dwremoteaddresslength : u32, lpdwbytesreceived : *mut u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +::windows_targets::link!("mswsock.dll" "system" fn EnumProtocolsA(lpiprotocols : *const i32, lpprotocolbuffer : *mut ::core::ffi::c_void, lpdwbufferlength : *mut u32) -> i32); +::windows_targets::link!("mswsock.dll" "system" fn EnumProtocolsW(lpiprotocols : *const i32, lpprotocolbuffer : *mut ::core::ffi::c_void, lpdwbufferlength : *mut u32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn FreeAddrInfoEx(paddrinfoex : *const ADDRINFOEXA) -> ()); +::windows_targets::link!("ws2_32.dll" "system" fn FreeAddrInfoExW(paddrinfoex : *const ADDRINFOEXW) -> ()); +::windows_targets::link!("ws2_32.dll" "system" fn FreeAddrInfoW(paddrinfo : *const ADDRINFOW) -> ()); +::windows_targets::link!("mswsock.dll" "system" fn GetAcceptExSockaddrs(lpoutputbuffer : *const ::core::ffi::c_void, dwreceivedatalength : u32, dwlocaladdresslength : u32, dwremoteaddresslength : u32, localsockaddr : *mut *mut SOCKADDR, localsockaddrlength : *mut i32, remotesockaddr : *mut *mut SOCKADDR, remotesockaddrlength : *mut i32) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn GetAddrInfoExA(pname : ::windows_sys::core::PCSTR, pservicename : ::windows_sys::core::PCSTR, dwnamespace : u32, lpnspid : *const ::windows_sys::core::GUID, hints : *const ADDRINFOEXA, ppresult : *mut *mut ADDRINFOEXA, timeout : *const TIMEVAL, lpoverlapped : *const super::super::System::IO:: OVERLAPPED, lpcompletionroutine : LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpnamehandle : *mut super::super::Foundation:: HANDLE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAddrInfoExCancel(lphandle : *const super::super::Foundation:: HANDLE) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn GetAddrInfoExOverlappedResult(lpoverlapped : *const super::super::System::IO:: OVERLAPPED) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn GetAddrInfoExW(pname : ::windows_sys::core::PCWSTR, pservicename : ::windows_sys::core::PCWSTR, dwnamespace : u32, lpnspid : *const ::windows_sys::core::GUID, hints : *const ADDRINFOEXW, ppresult : *mut *mut ADDRINFOEXW, timeout : *const TIMEVAL, lpoverlapped : *const super::super::System::IO:: OVERLAPPED, lpcompletionroutine : LPLOOKUPSERVICE_COMPLETION_ROUTINE, lphandle : *mut super::super::Foundation:: HANDLE) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn GetAddrInfoW(pnodename : ::windows_sys::core::PCWSTR, pservicename : ::windows_sys::core::PCWSTR, phints : *const ADDRINFOW, ppresult : *mut *mut ADDRINFOW) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mswsock.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAddressByNameA(dwnamespace : u32, lpservicetype : *const ::windows_sys::core::GUID, lpservicename : ::windows_sys::core::PCSTR, lpiprotocols : *const i32, dwresolution : u32, lpserviceasyncinfo : *const SERVICE_ASYNC_INFO, lpcsaddrbuffer : *mut ::core::ffi::c_void, lpdwbufferlength : *mut u32, lpaliasbuffer : ::windows_sys::core::PSTR, lpdwaliasbufferlength : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mswsock.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAddressByNameW(dwnamespace : u32, lpservicetype : *const ::windows_sys::core::GUID, lpservicename : ::windows_sys::core::PCWSTR, lpiprotocols : *const i32, dwresolution : u32, lpserviceasyncinfo : *const SERVICE_ASYNC_INFO, lpcsaddrbuffer : *mut ::core::ffi::c_void, lpdwbufferlength : *mut u32, lpaliasbuffer : ::windows_sys::core::PWSTR, lpdwaliasbufferlength : *mut u32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn GetHostNameW(name : ::windows_sys::core::PWSTR, namelen : i32) -> i32); +::windows_targets::link!("mswsock.dll" "system" fn GetNameByTypeA(lpservicetype : *const ::windows_sys::core::GUID, lpservicename : ::windows_sys::core::PSTR, dwnamelength : u32) -> i32); +::windows_targets::link!("mswsock.dll" "system" fn GetNameByTypeW(lpservicetype : *const ::windows_sys::core::GUID, lpservicename : ::windows_sys::core::PWSTR, dwnamelength : u32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn GetNameInfoW(psockaddr : *const SOCKADDR, sockaddrlength : socklen_t, pnodebuffer : ::windows_sys::core::PWSTR, nodebuffersize : u32, pservicebuffer : ::windows_sys::core::PWSTR, servicebuffersize : u32, flags : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mswsock.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetServiceA(dwnamespace : u32, lpguid : *const ::windows_sys::core::GUID, lpservicename : ::windows_sys::core::PCSTR, dwproperties : u32, lpbuffer : *mut ::core::ffi::c_void, lpdwbuffersize : *mut u32, lpserviceasyncinfo : *const SERVICE_ASYNC_INFO) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mswsock.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetServiceW(dwnamespace : u32, lpguid : *const ::windows_sys::core::GUID, lpservicename : ::windows_sys::core::PCWSTR, dwproperties : u32, lpbuffer : *mut ::core::ffi::c_void, lpdwbuffersize : *mut u32, lpserviceasyncinfo : *const SERVICE_ASYNC_INFO) -> i32); +::windows_targets::link!("mswsock.dll" "system" fn GetTypeByNameA(lpservicename : ::windows_sys::core::PCSTR, lpservicetype : *mut ::windows_sys::core::GUID) -> i32); +::windows_targets::link!("mswsock.dll" "system" fn GetTypeByNameW(lpservicename : ::windows_sys::core::PCWSTR, lpservicetype : *mut ::windows_sys::core::GUID) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn InetNtopW(family : i32, paddr : *const ::core::ffi::c_void, pstringbuf : ::windows_sys::core::PWSTR, stringbufsize : usize) -> ::windows_sys::core::PCWSTR); +::windows_targets::link!("ws2_32.dll" "system" fn InetPtonW(family : i32, pszaddrstring : ::windows_sys::core::PCWSTR, paddrbuf : *mut ::core::ffi::c_void) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ProcessSocketNotifications(completionport : super::super::Foundation:: HANDLE, registrationcount : u32, registrationinfos : *mut SOCK_NOTIFY_REGISTRATION, timeoutms : u32, completioncount : u32, completionportentries : *mut super::super::System::IO:: OVERLAPPED_ENTRY, receivedentrycount : *mut u32) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlEthernetAddressToStringA(addr : *const DL_EUI48, s : ::windows_sys::core::PSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("ntdll.dll" "system" fn RtlEthernetAddressToStringW(addr : *const DL_EUI48, s : ::windows_sys::core::PWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("ntdll.dll" "system" fn RtlEthernetStringToAddressA(s : ::windows_sys::core::PCSTR, terminator : *mut ::windows_sys::core::PCSTR, addr : *mut DL_EUI48) -> i32); +::windows_targets::link!("ntdll.dll" "system" fn RtlEthernetStringToAddressW(s : ::windows_sys::core::PCWSTR, terminator : *mut ::windows_sys::core::PCWSTR, addr : *mut DL_EUI48) -> i32); +::windows_targets::link!("ntdll.dll" "system" fn RtlIpv4AddressToStringA(addr : *const IN_ADDR, s : ::windows_sys::core::PSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("ntdll.dll" "system" fn RtlIpv4AddressToStringExA(address : *const IN_ADDR, port : u16, addressstring : ::windows_sys::core::PSTR, addressstringlength : *mut u32) -> i32); +::windows_targets::link!("ntdll.dll" "system" fn RtlIpv4AddressToStringExW(address : *const IN_ADDR, port : u16, addressstring : ::windows_sys::core::PWSTR, addressstringlength : *mut u32) -> i32); +::windows_targets::link!("ntdll.dll" "system" fn RtlIpv4AddressToStringW(addr : *const IN_ADDR, s : ::windows_sys::core::PWSTR) -> ::windows_sys::core::PWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIpv4StringToAddressA(s : ::windows_sys::core::PCSTR, strict : super::super::Foundation:: BOOLEAN, terminator : *mut ::windows_sys::core::PCSTR, addr : *mut IN_ADDR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIpv4StringToAddressExA(addressstring : ::windows_sys::core::PCSTR, strict : super::super::Foundation:: BOOLEAN, address : *mut IN_ADDR, port : *mut u16) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIpv4StringToAddressExW(addressstring : ::windows_sys::core::PCWSTR, strict : super::super::Foundation:: BOOLEAN, address : *mut IN_ADDR, port : *mut u16) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIpv4StringToAddressW(s : ::windows_sys::core::PCWSTR, strict : super::super::Foundation:: BOOLEAN, terminator : *mut ::windows_sys::core::PCWSTR, addr : *mut IN_ADDR) -> i32); +::windows_targets::link!("ntdll.dll" "system" fn RtlIpv6AddressToStringA(addr : *const IN6_ADDR, s : ::windows_sys::core::PSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("ntdll.dll" "system" fn RtlIpv6AddressToStringExA(address : *const IN6_ADDR, scopeid : u32, port : u16, addressstring : ::windows_sys::core::PSTR, addressstringlength : *mut u32) -> i32); +::windows_targets::link!("ntdll.dll" "system" fn RtlIpv6AddressToStringExW(address : *const IN6_ADDR, scopeid : u32, port : u16, addressstring : ::windows_sys::core::PWSTR, addressstringlength : *mut u32) -> i32); +::windows_targets::link!("ntdll.dll" "system" fn RtlIpv6AddressToStringW(addr : *const IN6_ADDR, s : ::windows_sys::core::PWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("ntdll.dll" "system" fn RtlIpv6StringToAddressA(s : ::windows_sys::core::PCSTR, terminator : *mut ::windows_sys::core::PCSTR, addr : *mut IN6_ADDR) -> i32); +::windows_targets::link!("ntdll.dll" "system" fn RtlIpv6StringToAddressExA(addressstring : ::windows_sys::core::PCSTR, address : *mut IN6_ADDR, scopeid : *mut u32, port : *mut u16) -> i32); +::windows_targets::link!("ntdll.dll" "system" fn RtlIpv6StringToAddressExW(addressstring : ::windows_sys::core::PCWSTR, address : *mut IN6_ADDR, scopeid : *mut u32, port : *mut u16) -> i32); +::windows_targets::link!("ntdll.dll" "system" fn RtlIpv6StringToAddressW(s : ::windows_sys::core::PCWSTR, terminator : *mut ::windows_sys::core::PCWSTR, addr : *mut IN6_ADDR) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_IO\"`"] fn SetAddrInfoExA(pname : ::windows_sys::core::PCSTR, pservicename : ::windows_sys::core::PCSTR, paddresses : *const SOCKET_ADDRESS, dwaddresscount : u32, lpblob : *const super::super::System::Com:: BLOB, dwflags : u32, dwnamespace : u32, lpnspid : *const ::windows_sys::core::GUID, timeout : *const TIMEVAL, lpoverlapped : *const super::super::System::IO:: OVERLAPPED, lpcompletionroutine : LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpnamehandle : *mut super::super::Foundation:: HANDLE) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_IO\"`"] fn SetAddrInfoExW(pname : ::windows_sys::core::PCWSTR, pservicename : ::windows_sys::core::PCWSTR, paddresses : *const SOCKET_ADDRESS, dwaddresscount : u32, lpblob : *const super::super::System::Com:: BLOB, dwflags : u32, dwnamespace : u32, lpnspid : *const ::windows_sys::core::GUID, timeout : *const TIMEVAL, lpoverlapped : *const super::super::System::IO:: OVERLAPPED, lpcompletionroutine : LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpnamehandle : *mut super::super::Foundation:: HANDLE) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mswsock.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn SetServiceA(dwnamespace : u32, dwoperation : SET_SERVICE_OPERATION, dwflags : u32, lpserviceinfo : *const SERVICE_INFOA, lpserviceasyncinfo : *const SERVICE_ASYNC_INFO, lpdwstatusflags : *mut u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mswsock.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn SetServiceW(dwnamespace : u32, dwoperation : SET_SERVICE_OPERATION, dwflags : u32, lpserviceinfo : *const SERVICE_INFOW, lpserviceasyncinfo : *const SERVICE_ASYNC_INFO, lpdwstatusflags : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("windows.networking.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSocketMediaStreamingMode(value : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("mswsock.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn TransmitFile(hsocket : SOCKET, hfile : super::super::Foundation:: HANDLE, nnumberofbytestowrite : u32, nnumberofbytespersend : u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED, lptransmitbuffers : *const TRANSMIT_FILE_BUFFERS, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WPUCompleteOverlappedRequest(s : SOCKET, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED, dwerror : u32, cbtransferred : u32, lperrno : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAAccept(s : SOCKET, addr : *mut SOCKADDR, addrlen : *mut i32, lpfncondition : LPCONDITIONPROC, dwcallbackdata : usize) -> SOCKET); +::windows_targets::link!("ws2_32.dll" "system" fn WSAAddressToStringA(lpsaaddress : *const SOCKADDR, dwaddresslength : u32, lpprotocolinfo : *const WSAPROTOCOL_INFOA, lpszaddressstring : ::windows_sys::core::PSTR, lpdwaddressstringlength : *mut u32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAAddressToStringW(lpsaaddress : *const SOCKADDR, dwaddresslength : u32, lpprotocolinfo : *const WSAPROTOCOL_INFOW, lpszaddressstring : ::windows_sys::core::PWSTR, lpdwaddressstringlength : *mut u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn WSAAdvertiseProvider(puuidproviderid : *const ::windows_sys::core::GUID, pnspv2routine : *const NSPV2_ROUTINE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAAsyncGetHostByAddr(hwnd : super::super::Foundation:: HWND, wmsg : u32, addr : ::windows_sys::core::PCSTR, len : i32, r#type : i32, buf : ::windows_sys::core::PSTR, buflen : i32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAAsyncGetHostByName(hwnd : super::super::Foundation:: HWND, wmsg : u32, name : ::windows_sys::core::PCSTR, buf : ::windows_sys::core::PSTR, buflen : i32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAAsyncGetProtoByName(hwnd : super::super::Foundation:: HWND, wmsg : u32, name : ::windows_sys::core::PCSTR, buf : ::windows_sys::core::PSTR, buflen : i32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAAsyncGetProtoByNumber(hwnd : super::super::Foundation:: HWND, wmsg : u32, number : i32, buf : ::windows_sys::core::PSTR, buflen : i32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAAsyncGetServByName(hwnd : super::super::Foundation:: HWND, wmsg : u32, name : ::windows_sys::core::PCSTR, proto : ::windows_sys::core::PCSTR, buf : ::windows_sys::core::PSTR, buflen : i32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAAsyncGetServByPort(hwnd : super::super::Foundation:: HWND, wmsg : u32, port : i32, proto : ::windows_sys::core::PCSTR, buf : ::windows_sys::core::PSTR, buflen : i32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAAsyncSelect(s : SOCKET, hwnd : super::super::Foundation:: HWND, wmsg : u32, levent : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSACancelAsyncRequest(hasynctaskhandle : super::super::Foundation:: HANDLE) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSACancelBlockingCall() -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSACleanup() -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSACloseEvent(hevent : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("ws2_32.dll" "system" fn WSAConnect(s : SOCKET, name : *const SOCKADDR, namelen : i32, lpcallerdata : *const WSABUF, lpcalleedata : *mut WSABUF, lpsqos : *const QOS, lpgqos : *const QOS) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSAConnectByList(s : SOCKET, socketaddress : *const SOCKET_ADDRESS_LIST, localaddresslength : *mut u32, localaddress : *mut SOCKADDR, remoteaddresslength : *mut u32, remoteaddress : *mut SOCKADDR, timeout : *const TIMEVAL, reserved : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSAConnectByNameA(s : SOCKET, nodename : ::windows_sys::core::PCSTR, servicename : ::windows_sys::core::PCSTR, localaddresslength : *mut u32, localaddress : *mut SOCKADDR, remoteaddresslength : *mut u32, remoteaddress : *mut SOCKADDR, timeout : *const TIMEVAL, reserved : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSAConnectByNameW(s : SOCKET, nodename : ::windows_sys::core::PCWSTR, servicename : ::windows_sys::core::PCWSTR, localaddresslength : *mut u32, localaddress : *mut SOCKADDR, remoteaddresslength : *mut u32, remoteaddress : *mut SOCKADDR, timeout : *const TIMEVAL, reserved : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSACreateEvent() -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSADeleteSocketPeerTargetName(socket : SOCKET, peeraddr : *const SOCKADDR, peeraddrlen : u32, overlapped : *const super::super::System::IO:: OVERLAPPED, completionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSADuplicateSocketA(s : SOCKET, dwprocessid : u32, lpprotocolinfo : *mut WSAPROTOCOL_INFOA) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSADuplicateSocketW(s : SOCKET, dwprocessid : u32, lpprotocolinfo : *mut WSAPROTOCOL_INFOW) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAEnumNameSpaceProvidersA(lpdwbufferlength : *mut u32, lpnspbuffer : *mut WSANAMESPACE_INFOA) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn WSAEnumNameSpaceProvidersExA(lpdwbufferlength : *mut u32, lpnspbuffer : *mut WSANAMESPACE_INFOEXA) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn WSAEnumNameSpaceProvidersExW(lpdwbufferlength : *mut u32, lpnspbuffer : *mut WSANAMESPACE_INFOEXW) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAEnumNameSpaceProvidersW(lpdwbufferlength : *mut u32, lpnspbuffer : *mut WSANAMESPACE_INFOW) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAEnumNetworkEvents(s : SOCKET, heventobject : super::super::Foundation:: HANDLE, lpnetworkevents : *mut WSANETWORKEVENTS) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAEnumProtocolsA(lpiprotocols : *const i32, lpprotocolbuffer : *mut WSAPROTOCOL_INFOA, lpdwbufferlength : *mut u32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAEnumProtocolsW(lpiprotocols : *const i32, lpprotocolbuffer : *mut WSAPROTOCOL_INFOW, lpdwbufferlength : *mut u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAEventSelect(s : SOCKET, heventobject : super::super::Foundation:: HANDLE, lnetworkevents : i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAGetLastError() -> WSA_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSAGetOverlappedResult(s : SOCKET, lpoverlapped : *const super::super::System::IO:: OVERLAPPED, lpcbtransfer : *mut u32, fwait : super::super::Foundation:: BOOL, lpdwflags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAGetQOSByName(s : SOCKET, lpqosname : *const WSABUF, lpqos : *mut QOS) -> super::super::Foundation:: BOOL); +::windows_targets::link!("ws2_32.dll" "system" fn WSAGetServiceClassInfoA(lpproviderid : *const ::windows_sys::core::GUID, lpserviceclassid : *const ::windows_sys::core::GUID, lpdwbufsize : *mut u32, lpserviceclassinfo : *mut WSASERVICECLASSINFOA) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAGetServiceClassInfoW(lpproviderid : *const ::windows_sys::core::GUID, lpserviceclassid : *const ::windows_sys::core::GUID, lpdwbufsize : *mut u32, lpserviceclassinfo : *mut WSASERVICECLASSINFOW) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAGetServiceClassNameByClassIdA(lpserviceclassid : *const ::windows_sys::core::GUID, lpszserviceclassname : ::windows_sys::core::PSTR, lpdwbufferlength : *mut u32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAGetServiceClassNameByClassIdW(lpserviceclassid : *const ::windows_sys::core::GUID, lpszserviceclassname : ::windows_sys::core::PWSTR, lpdwbufferlength : *mut u32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAHtonl(s : SOCKET, hostlong : u32, lpnetlong : *mut u32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAHtons(s : SOCKET, hostshort : u16, lpnetshort : *mut u16) -> i32); +::windows_targets::link!("fwpuclnt.dll" "system" fn WSAImpersonateSocketPeer(socket : SOCKET, peeraddr : *const SOCKADDR, peeraddrlen : u32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAInstallServiceClassA(lpserviceclassinfo : *const WSASERVICECLASSINFOA) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAInstallServiceClassW(lpserviceclassinfo : *const WSASERVICECLASSINFOW) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSAIoctl(s : SOCKET, dwiocontrolcode : u32, lpvinbuffer : *const ::core::ffi::c_void, cbinbuffer : u32, lpvoutbuffer : *mut ::core::ffi::c_void, cboutbuffer : u32, lpcbbytesreturned : *mut u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAIsBlocking() -> super::super::Foundation:: BOOL); +::windows_targets::link!("ws2_32.dll" "system" fn WSAJoinLeaf(s : SOCKET, name : *const SOCKADDR, namelen : i32, lpcallerdata : *const WSABUF, lpcalleedata : *mut WSABUF, lpsqos : *const QOS, lpgqos : *const QOS, dwflags : u32) -> SOCKET); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn WSALookupServiceBeginA(lpqsrestrictions : *const WSAQUERYSETA, dwcontrolflags : u32, lphlookup : *mut super::super::Foundation:: HANDLE) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn WSALookupServiceBeginW(lpqsrestrictions : *const WSAQUERYSETW, dwcontrolflags : u32, lphlookup : *mut super::super::Foundation:: HANDLE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSALookupServiceEnd(hlookup : super::super::Foundation:: HANDLE) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn WSALookupServiceNextA(hlookup : super::super::Foundation:: HANDLE, dwcontrolflags : u32, lpdwbufferlength : *mut u32, lpqsresults : *mut WSAQUERYSETA) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn WSALookupServiceNextW(hlookup : super::super::Foundation:: HANDLE, dwcontrolflags : u32, lpdwbufferlength : *mut u32, lpqsresults : *mut WSAQUERYSETW) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSANSPIoctl(hlookup : super::super::Foundation:: HANDLE, dwcontrolcode : u32, lpvinbuffer : *const ::core::ffi::c_void, cbinbuffer : u32, lpvoutbuffer : *mut ::core::ffi::c_void, cboutbuffer : u32, lpcbbytesreturned : *mut u32, lpcompletion : *const WSACOMPLETION) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSANtohl(s : SOCKET, netlong : u32, lphostlong : *mut u32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSANtohs(s : SOCKET, netshort : u16, lphostshort : *mut u16) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAPoll(fdarray : *mut WSAPOLLFD, fds : u32, timeout : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAProviderCompleteAsyncCall(hasynccall : super::super::Foundation:: HANDLE, iretcode : i32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSAProviderConfigChange(lpnotificationhandle : *mut super::super::Foundation:: HANDLE, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSAQuerySocketSecurity(socket : SOCKET, securityquerytemplate : *const SOCKET_SECURITY_QUERY_TEMPLATE, securityquerytemplatelen : u32, securityqueryinfo : *mut SOCKET_SECURITY_QUERY_INFO, securityqueryinfolen : *mut u32, overlapped : *const super::super::System::IO:: OVERLAPPED, completionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSARecv(s : SOCKET, lpbuffers : *const WSABUF, dwbuffercount : u32, lpnumberofbytesrecvd : *mut u32, lpflags : *mut u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSARecvDisconnect(s : SOCKET, lpinbounddisconnectdata : *const WSABUF) -> i32); +::windows_targets::link!("mswsock.dll" "system" fn WSARecvEx(s : SOCKET, buf : ::windows_sys::core::PSTR, len : i32, flags : *mut i32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSARecvFrom(s : SOCKET, lpbuffers : *const WSABUF, dwbuffercount : u32, lpnumberofbytesrecvd : *mut u32, lpflags : *mut u32, lpfrom : *mut SOCKADDR, lpfromlen : *mut i32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSARemoveServiceClass(lpserviceclassid : *const ::windows_sys::core::GUID) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAResetEvent(hevent : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("fwpuclnt.dll" "system" fn WSARevertImpersonation() -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSASend(s : SOCKET, lpbuffers : *const WSABUF, dwbuffercount : u32, lpnumberofbytessent : *mut u32, dwflags : u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSASendDisconnect(s : SOCKET, lpoutbounddisconnectdata : *const WSABUF) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSASendMsg(handle : SOCKET, lpmsg : *const WSAMSG, dwflags : u32, lpnumberofbytessent : *mut u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSASendTo(s : SOCKET, lpbuffers : *const WSABUF, dwbuffercount : u32, lpnumberofbytessent : *mut u32, dwflags : u32, lpto : *const SOCKADDR, itolen : i32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSASetBlockingHook(lpblockfunc : super::super::Foundation:: FARPROC) -> super::super::Foundation:: FARPROC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSASetEvent(hevent : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("ws2_32.dll" "system" fn WSASetLastError(ierror : i32) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn WSASetServiceA(lpqsreginfo : *const WSAQUERYSETA, essoperation : WSAESETSERVICEOP, dwcontrolflags : u32) -> i32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn WSASetServiceW(lpqsreginfo : *const WSAQUERYSETW, essoperation : WSAESETSERVICEOP, dwcontrolflags : u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSASetSocketPeerTargetName(socket : SOCKET, peertargetname : *const SOCKET_PEER_TARGET_NAME, peertargetnamelen : u32, overlapped : *const super::super::System::IO:: OVERLAPPED, completionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("fwpuclnt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WSASetSocketSecurity(socket : SOCKET, securitysettings : *const SOCKET_SECURITY_SETTINGS, securitysettingslen : u32, overlapped : *const super::super::System::IO:: OVERLAPPED, completionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSASocketA(af : i32, r#type : i32, protocol : i32, lpprotocolinfo : *const WSAPROTOCOL_INFOA, g : u32, dwflags : u32) -> SOCKET); +::windows_targets::link!("ws2_32.dll" "system" fn WSASocketW(af : i32, r#type : i32, protocol : i32, lpprotocolinfo : *const WSAPROTOCOL_INFOW, g : u32, dwflags : u32) -> SOCKET); +::windows_targets::link!("ws2_32.dll" "system" fn WSAStartup(wversionrequested : u16, lpwsadata : *mut WSADATA) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAStringToAddressA(addressstring : ::windows_sys::core::PCSTR, addressfamily : i32, lpprotocolinfo : *const WSAPROTOCOL_INFOA, lpaddress : *mut SOCKADDR, lpaddresslength : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAStringToAddressW(addressstring : ::windows_sys::core::PCWSTR, addressfamily : i32, lpprotocolinfo : *const WSAPROTOCOL_INFOW, lpaddress : *mut SOCKADDR, lpaddresslength : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAUnadvertiseProvider(puuidproviderid : *const ::windows_sys::core::GUID) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSAUnhookBlockingHook() -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSAWaitForMultipleEvents(cevents : u32, lphevents : *const super::super::Foundation:: HANDLE, fwaitall : super::super::Foundation:: BOOL, dwtimeout : u32, falertable : super::super::Foundation:: BOOL) -> super::super::Foundation:: WAIT_EVENT); +::windows_targets::link!("ws2_32.dll" "system" fn WSCDeinstallProvider(lpproviderid : *const ::windows_sys::core::GUID, lperrno : *mut i32) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ws2_32.dll" "system" fn WSCDeinstallProvider32(lpproviderid : *const ::windows_sys::core::GUID, lperrno : *mut i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSCEnableNSProvider(lpproviderid : *const ::windows_sys::core::GUID, fenable : super::super::Foundation:: BOOL) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSCEnableNSProvider32(lpproviderid : *const ::windows_sys::core::GUID, fenable : super::super::Foundation:: BOOL) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSCEnumNameSpaceProviders32(lpdwbufferlength : *mut u32, lpnspbuffer : *mut WSANAMESPACE_INFOW) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn WSCEnumNameSpaceProvidersEx32(lpdwbufferlength : *mut u32, lpnspbuffer : *mut WSANAMESPACE_INFOEXW) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSCEnumProtocols(lpiprotocols : *const i32, lpprotocolbuffer : *mut WSAPROTOCOL_INFOW, lpdwbufferlength : *mut u32, lperrno : *mut i32) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ws2_32.dll" "system" fn WSCEnumProtocols32(lpiprotocols : *const i32, lpprotocolbuffer : *mut WSAPROTOCOL_INFOW, lpdwbufferlength : *mut u32, lperrno : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSCGetApplicationCategory(path : ::windows_sys::core::PCWSTR, pathlength : u32, extra : ::windows_sys::core::PCWSTR, extralength : u32, ppermittedlspcategories : *mut u32, lperrno : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSCGetProviderInfo(lpproviderid : *const ::windows_sys::core::GUID, infotype : WSC_PROVIDER_INFO_TYPE, info : *mut u8, infosize : *mut usize, flags : u32, lperrno : *mut i32) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ws2_32.dll" "system" fn WSCGetProviderInfo32(lpproviderid : *const ::windows_sys::core::GUID, infotype : WSC_PROVIDER_INFO_TYPE, info : *mut u8, infosize : *mut usize, flags : u32, lperrno : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSCGetProviderPath(lpproviderid : *const ::windows_sys::core::GUID, lpszproviderdllpath : ::windows_sys::core::PWSTR, lpproviderdllpathlen : *mut i32, lperrno : *mut i32) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ws2_32.dll" "system" fn WSCGetProviderPath32(lpproviderid : *const ::windows_sys::core::GUID, lpszproviderdllpath : ::windows_sys::core::PWSTR, lpproviderdllpathlen : *mut i32, lperrno : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSCInstallNameSpace(lpszidentifier : ::windows_sys::core::PCWSTR, lpszpathname : ::windows_sys::core::PCWSTR, dwnamespace : u32, dwversion : u32, lpproviderid : *const ::windows_sys::core::GUID) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ws2_32.dll" "system" fn WSCInstallNameSpace32(lpszidentifier : ::windows_sys::core::PCWSTR, lpszpathname : ::windows_sys::core::PCWSTR, dwnamespace : u32, dwversion : u32, lpproviderid : *const ::windows_sys::core::GUID) -> i32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn WSCInstallNameSpaceEx(lpszidentifier : ::windows_sys::core::PCWSTR, lpszpathname : ::windows_sys::core::PCWSTR, dwnamespace : u32, dwversion : u32, lpproviderid : *const ::windows_sys::core::GUID, lpproviderspecific : *const super::super::System::Com:: BLOB) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ws2_32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn WSCInstallNameSpaceEx32(lpszidentifier : ::windows_sys::core::PCWSTR, lpszpathname : ::windows_sys::core::PCWSTR, dwnamespace : u32, dwversion : u32, lpproviderid : *const ::windows_sys::core::GUID, lpproviderspecific : *const super::super::System::Com:: BLOB) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSCInstallProvider(lpproviderid : *const ::windows_sys::core::GUID, lpszproviderdllpath : ::windows_sys::core::PCWSTR, lpprotocolinfolist : *const WSAPROTOCOL_INFOW, dwnumberofentries : u32, lperrno : *mut i32) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ws2_32.dll" "system" fn WSCInstallProvider64_32(lpproviderid : *const ::windows_sys::core::GUID, lpszproviderdllpath : ::windows_sys::core::PCWSTR, lpprotocolinfolist : *const WSAPROTOCOL_INFOW, dwnumberofentries : u32, lperrno : *mut i32) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ws2_32.dll" "system" fn WSCInstallProviderAndChains64_32(lpproviderid : *const ::windows_sys::core::GUID, lpszproviderdllpath : ::windows_sys::core::PCWSTR, lpszproviderdllpath32 : ::windows_sys::core::PCWSTR, lpszlspname : ::windows_sys::core::PCWSTR, dwserviceflags : u32, lpprotocolinfolist : *mut WSAPROTOCOL_INFOW, dwnumberofentries : u32, lpdwcatalogentryid : *mut u32, lperrno : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSCSetApplicationCategory(path : ::windows_sys::core::PCWSTR, pathlength : u32, extra : ::windows_sys::core::PCWSTR, extralength : u32, permittedlspcategories : u32, pprevpermlspcat : *mut u32, lperrno : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSCSetProviderInfo(lpproviderid : *const ::windows_sys::core::GUID, infotype : WSC_PROVIDER_INFO_TYPE, info : *const u8, infosize : usize, flags : u32, lperrno : *mut i32) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ws2_32.dll" "system" fn WSCSetProviderInfo32(lpproviderid : *const ::windows_sys::core::GUID, infotype : WSC_PROVIDER_INFO_TYPE, info : *const u8, infosize : usize, flags : u32, lperrno : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSCUnInstallNameSpace(lpproviderid : *const ::windows_sys::core::GUID) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ws2_32.dll" "system" fn WSCUnInstallNameSpace32(lpproviderid : *const ::windows_sys::core::GUID) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSCUpdateProvider(lpproviderid : *const ::windows_sys::core::GUID, lpszproviderdllpath : ::windows_sys::core::PCWSTR, lpprotocolinfolist : *const WSAPROTOCOL_INFOW, dwnumberofentries : u32, lperrno : *mut i32) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ws2_32.dll" "system" fn WSCUpdateProvider32(lpproviderid : *const ::windows_sys::core::GUID, lpszproviderdllpath : ::windows_sys::core::PCWSTR, lpprotocolinfolist : *const WSAPROTOCOL_INFOW, dwnumberofentries : u32, lperrno : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSCWriteNameSpaceOrder(lpproviderid : *mut ::windows_sys::core::GUID, dwnumberofentries : u32) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ws2_32.dll" "system" fn WSCWriteNameSpaceOrder32(lpproviderid : *mut ::windows_sys::core::GUID, dwnumberofentries : u32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn WSCWriteProviderOrder(lpwdcatalogentryid : *mut u32, dwnumberofentries : u32) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ws2_32.dll" "system" fn WSCWriteProviderOrder32(lpwdcatalogentryid : *mut u32, dwnumberofentries : u32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn __WSAFDIsSet(fd : SOCKET, param1 : *mut FD_SET) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn accept(s : SOCKET, addr : *mut SOCKADDR, addrlen : *mut i32) -> SOCKET); +::windows_targets::link!("ws2_32.dll" "system" fn bind(s : SOCKET, name : *const SOCKADDR, namelen : i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn closesocket(s : SOCKET) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn connect(s : SOCKET, name : *const SOCKADDR, namelen : i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn freeaddrinfo(paddrinfo : *const ADDRINFOA) -> ()); +::windows_targets::link!("ws2_32.dll" "system" fn getaddrinfo(pnodename : ::windows_sys::core::PCSTR, pservicename : ::windows_sys::core::PCSTR, phints : *const ADDRINFOA, ppresult : *mut *mut ADDRINFOA) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn gethostbyaddr(addr : ::windows_sys::core::PCSTR, len : i32, r#type : i32) -> *mut HOSTENT); +::windows_targets::link!("ws2_32.dll" "system" fn gethostbyname(name : ::windows_sys::core::PCSTR) -> *mut HOSTENT); +::windows_targets::link!("ws2_32.dll" "system" fn gethostname(name : ::windows_sys::core::PSTR, namelen : i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn getnameinfo(psockaddr : *const SOCKADDR, sockaddrlength : socklen_t, pnodebuffer : ::windows_sys::core::PSTR, nodebuffersize : u32, pservicebuffer : ::windows_sys::core::PSTR, servicebuffersize : u32, flags : i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn getpeername(s : SOCKET, name : *mut SOCKADDR, namelen : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn getprotobyname(name : ::windows_sys::core::PCSTR) -> *mut PROTOENT); +::windows_targets::link!("ws2_32.dll" "system" fn getprotobynumber(number : i32) -> *mut PROTOENT); +::windows_targets::link!("ws2_32.dll" "system" fn getservbyname(name : ::windows_sys::core::PCSTR, proto : ::windows_sys::core::PCSTR) -> *mut SERVENT); +::windows_targets::link!("ws2_32.dll" "system" fn getservbyport(port : i32, proto : ::windows_sys::core::PCSTR) -> *mut SERVENT); +::windows_targets::link!("ws2_32.dll" "system" fn getsockname(s : SOCKET, name : *mut SOCKADDR, namelen : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn getsockopt(s : SOCKET, level : i32, optname : i32, optval : ::windows_sys::core::PSTR, optlen : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn htonl(hostlong : u32) -> u32); +::windows_targets::link!("ws2_32.dll" "system" fn htons(hostshort : u16) -> u16); +::windows_targets::link!("ws2_32.dll" "system" fn inet_addr(cp : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("ws2_32.dll" "system" fn inet_ntoa(r#in : IN_ADDR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("ws2_32.dll" "system" fn inet_ntop(family : i32, paddr : *const ::core::ffi::c_void, pstringbuf : ::windows_sys::core::PSTR, stringbufsize : usize) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("ws2_32.dll" "system" fn inet_pton(family : i32, pszaddrstring : ::windows_sys::core::PCSTR, paddrbuf : *mut ::core::ffi::c_void) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn ioctlsocket(s : SOCKET, cmd : i32, argp : *mut u32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn listen(s : SOCKET, backlog : i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn ntohl(netlong : u32) -> u32); +::windows_targets::link!("ws2_32.dll" "system" fn ntohs(netshort : u16) -> u16); +::windows_targets::link!("ws2_32.dll" "system" fn recv(s : SOCKET, buf : ::windows_sys::core::PSTR, len : i32, flags : SEND_RECV_FLAGS) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn recvfrom(s : SOCKET, buf : ::windows_sys::core::PSTR, len : i32, flags : i32, from : *mut SOCKADDR, fromlen : *mut i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn select(nfds : i32, readfds : *mut FD_SET, writefds : *mut FD_SET, exceptfds : *mut FD_SET, timeout : *const TIMEVAL) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn send(s : SOCKET, buf : ::windows_sys::core::PCSTR, len : i32, flags : SEND_RECV_FLAGS) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn sendto(s : SOCKET, buf : ::windows_sys::core::PCSTR, len : i32, flags : i32, to : *const SOCKADDR, tolen : i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn setsockopt(s : SOCKET, level : i32, optname : i32, optval : ::windows_sys::core::PCSTR, optlen : i32) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn shutdown(s : SOCKET, how : WINSOCK_SHUTDOWN_HOW) -> i32); +::windows_targets::link!("ws2_32.dll" "system" fn socket(af : i32, r#type : WINSOCK_SOCKET_TYPE, protocol : i32) -> SOCKET); +pub const AAL5_MODE_MESSAGE: u32 = 1u32; +pub const AAL5_MODE_STREAMING: u32 = 2u32; +pub const AAL5_SSCS_FRAME_RELAY: u32 = 4u32; +pub const AAL5_SSCS_NULL: u32 = 0u32; +pub const AAL5_SSCS_SSCOP_ASSURED: u32 = 1u32; +pub const AAL5_SSCS_SSCOP_NON_ASSURED: u32 = 2u32; +pub const AALTYPE_5: AAL_TYPE = 5i32; +pub const AALTYPE_USER: AAL_TYPE = 16i32; +pub const ADDRINFOEX_VERSION_2: u32 = 2u32; +pub const ADDRINFOEX_VERSION_3: u32 = 3u32; +pub const ADDRINFOEX_VERSION_4: u32 = 4u32; +pub const ADDRINFOEX_VERSION_5: u32 = 5u32; +pub const ADDRINFOEX_VERSION_6: u32 = 6u32; +pub const AF_12844: u16 = 25u16; +pub const AF_APPLETALK: u16 = 16u16; +pub const AF_ATM: u16 = 22u16; +pub const AF_BAN: u16 = 21u16; +pub const AF_CCITT: u16 = 10u16; +pub const AF_CHAOS: u16 = 5u16; +pub const AF_CLUSTER: u16 = 24u16; +pub const AF_DATAKIT: u16 = 9u16; +pub const AF_DECnet: u16 = 12u16; +pub const AF_DLI: u16 = 13u16; +pub const AF_ECMA: u16 = 8u16; +pub const AF_FIREFOX: u16 = 19u16; +pub const AF_HYLINK: u16 = 15u16; +pub const AF_HYPERV: u16 = 34u16; +pub const AF_ICLFXBM: u16 = 31u16; +pub const AF_IMPLINK: u16 = 3u16; +pub const AF_INET: ADDRESS_FAMILY = 2u16; +pub const AF_INET6: ADDRESS_FAMILY = 23u16; +pub const AF_IPX: u16 = 6u16; +pub const AF_IRDA: u16 = 26u16; +pub const AF_ISO: u16 = 7u16; +pub const AF_LAT: u16 = 14u16; +pub const AF_LINK: u16 = 33u16; +pub const AF_MAX: u16 = 29u16; +pub const AF_NETBIOS: u16 = 17u16; +pub const AF_NETDES: u16 = 28u16; +pub const AF_NS: u16 = 6u16; +pub const AF_OSI: u16 = 7u16; +pub const AF_PUP: u16 = 4u16; +pub const AF_SNA: u16 = 11u16; +pub const AF_TCNMESSAGE: u16 = 30u16; +pub const AF_TCNPROCESS: u16 = 29u16; +pub const AF_UNIX: u16 = 1u16; +pub const AF_UNKNOWN1: u16 = 20u16; +pub const AF_UNSPEC: ADDRESS_FAMILY = 0u16; +pub const AF_VOICEVIEW: u16 = 18u16; +pub const AI_ADDRCONFIG: u32 = 1024u32; +pub const AI_ALL: u32 = 256u32; +pub const AI_BYPASS_DNS_CACHE: u32 = 64u32; +pub const AI_CANONNAME: u32 = 2u32; +pub const AI_DISABLE_IDN_ENCODING: u32 = 524288u32; +pub const AI_DNS_ONLY: u32 = 16u32; +pub const AI_DNS_RESPONSE_HOSTFILE: u32 = 2u32; +pub const AI_DNS_RESPONSE_SECURE: u32 = 1u32; +pub const AI_DNS_SERVER_TYPE_DOH: u32 = 2u32; +pub const AI_DNS_SERVER_TYPE_UDP: u32 = 1u32; +pub const AI_DNS_SERVER_UDP_FALLBACK: u32 = 1u32; +pub const AI_EXCLUSIVE_CUSTOM_SERVERS: u32 = 2097152u32; +pub const AI_EXTENDED: u32 = 2147483648u32; +pub const AI_FILESERVER: u32 = 262144u32; +pub const AI_FORCE_CLEAR_TEXT: u32 = 32u32; +pub const AI_FQDN: u32 = 131072u32; +pub const AI_NON_AUTHORITATIVE: u32 = 16384u32; +pub const AI_NUMERICHOST: u32 = 4u32; +pub const AI_NUMERICSERV: u32 = 8u32; +pub const AI_PASSIVE: u32 = 1u32; +pub const AI_REQUIRE_SECURE: u32 = 536870912u32; +pub const AI_RESOLUTION_HANDLE: u32 = 1073741824u32; +pub const AI_RETURN_PREFERRED_NAMES: u32 = 65536u32; +pub const AI_RETURN_RESPONSE_FLAGS: u32 = 268435456u32; +pub const AI_RETURN_TTL: u32 = 128u32; +pub const AI_SECURE: u32 = 32768u32; +pub const AI_SECURE_WITH_FALLBACK: u32 = 1048576u32; +pub const AI_V4MAPPED: u32 = 2048u32; +pub const ARP_HW_802: ARP_HARDWARE_TYPE = 6i32; +pub const ARP_HW_ENET: ARP_HARDWARE_TYPE = 1i32; +pub const ARP_REQUEST: ARP_OPCODE = 1i32; +pub const ARP_RESPONSE: ARP_OPCODE = 2i32; +pub const ASSOCIATE_NAMERES_CONTEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x59a38b67_d4fe_46e1_ba3c_87ea74ca3049); +pub const ATMPROTO_AAL1: u32 = 1u32; +pub const ATMPROTO_AAL2: u32 = 2u32; +pub const ATMPROTO_AAL34: u32 = 3u32; +pub const ATMPROTO_AAL5: u32 = 5u32; +pub const ATMPROTO_AALUSER: u32 = 0u32; +pub const ATM_ADDR_SIZE: u32 = 20u32; +pub const ATM_AESA: u32 = 2u32; +pub const ATM_E164: u32 = 1u32; +pub const ATM_NSAP: u32 = 2u32; +pub const BASE_PROTOCOL: u32 = 1u32; +pub const BCOB_A: u32 = 1u32; +pub const BCOB_C: u32 = 3u32; +pub const BCOB_X: u32 = 16u32; +pub const BHLI_HighLayerProfile: u32 = 2u32; +pub const BHLI_ISO: u32 = 0u32; +pub const BHLI_UserSpecific: u32 = 1u32; +pub const BHLI_VendorSpecificAppId: u32 = 3u32; +pub const BIGENDIAN: u32 = 0u32; +pub const BITS_PER_BYTE: u32 = 8u32; +pub const BLLI_L2_ELAPB: u32 = 8u32; +pub const BLLI_L2_HDLC_ABM: u32 = 11u32; +pub const BLLI_L2_HDLC_ARM: u32 = 9u32; +pub const BLLI_L2_HDLC_NRM: u32 = 10u32; +pub const BLLI_L2_ISO_1745: u32 = 1u32; +pub const BLLI_L2_ISO_7776: u32 = 17u32; +pub const BLLI_L2_LLC: u32 = 12u32; +pub const BLLI_L2_MODE_EXT: u32 = 128u32; +pub const BLLI_L2_MODE_NORMAL: u32 = 64u32; +pub const BLLI_L2_Q921: u32 = 2u32; +pub const BLLI_L2_Q922: u32 = 14u32; +pub const BLLI_L2_USER_SPECIFIED: u32 = 16u32; +pub const BLLI_L2_X25L: u32 = 6u32; +pub const BLLI_L2_X25M: u32 = 7u32; +pub const BLLI_L2_X75: u32 = 13u32; +pub const BLLI_L3_IPI_IP: u32 = 204u32; +pub const BLLI_L3_IPI_SNAP: u32 = 128u32; +pub const BLLI_L3_ISO_8208: u32 = 7u32; +pub const BLLI_L3_ISO_TR9577: u32 = 11u32; +pub const BLLI_L3_MODE_EXT: u32 = 128u32; +pub const BLLI_L3_MODE_NORMAL: u32 = 64u32; +pub const BLLI_L3_PACKET_1024: u32 = 10u32; +pub const BLLI_L3_PACKET_128: u32 = 7u32; +pub const BLLI_L3_PACKET_16: u32 = 4u32; +pub const BLLI_L3_PACKET_2048: u32 = 11u32; +pub const BLLI_L3_PACKET_256: u32 = 8u32; +pub const BLLI_L3_PACKET_32: u32 = 5u32; +pub const BLLI_L3_PACKET_4096: u32 = 12u32; +pub const BLLI_L3_PACKET_512: u32 = 9u32; +pub const BLLI_L3_PACKET_64: u32 = 6u32; +pub const BLLI_L3_SIO_8473: u32 = 9u32; +pub const BLLI_L3_T70: u32 = 10u32; +pub const BLLI_L3_USER_SPECIFIED: u32 = 16u32; +pub const BLLI_L3_X223: u32 = 8u32; +pub const BLLI_L3_X25: u32 = 6u32; +pub const BYTE_ORDER: u32 = 1234u32; +pub const CAUSE_AAL_PARAMETERS_UNSUPPORTED: u32 = 93u32; +pub const CAUSE_ACCESS_INFORMAION_DISCARDED: u32 = 43u32; +pub const CAUSE_BEARER_CAPABILITY_UNAUTHORIZED: u32 = 57u32; +pub const CAUSE_BEARER_CAPABILITY_UNAVAILABLE: u32 = 58u32; +pub const CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED: u32 = 65u32; +pub const CAUSE_CALL_REJECTED: u32 = 21u32; +pub const CAUSE_CHANNEL_NONEXISTENT: u32 = 82u32; +pub const CAUSE_COND_PERMANENT: u32 = 1u32; +pub const CAUSE_COND_TRANSIENT: u32 = 2u32; +pub const CAUSE_COND_UNKNOWN: u32 = 0u32; +pub const CAUSE_DESTINATION_OUT_OF_ORDER: u32 = 27u32; +pub const CAUSE_INCOMPATIBLE_DESTINATION: u32 = 88u32; +pub const CAUSE_INCORRECT_MESSAGE_LENGTH: u32 = 104u32; +pub const CAUSE_INVALID_CALL_REFERENCE: u32 = 81u32; +pub const CAUSE_INVALID_ENDPOINT_REFERENCE: u32 = 89u32; +pub const CAUSE_INVALID_IE_CONTENTS: u32 = 100u32; +pub const CAUSE_INVALID_NUMBER_FORMAT: u32 = 28u32; +pub const CAUSE_INVALID_STATE_FOR_MESSAGE: u32 = 101u32; +pub const CAUSE_INVALID_TRANSIT_NETWORK_SELECTION: u32 = 91u32; +pub const CAUSE_LOC_BEYOND_INTERWORKING: u32 = 10u32; +pub const CAUSE_LOC_INTERNATIONAL_NETWORK: u32 = 7u32; +pub const CAUSE_LOC_PRIVATE_LOCAL: u32 = 1u32; +pub const CAUSE_LOC_PRIVATE_REMOTE: u32 = 5u32; +pub const CAUSE_LOC_PUBLIC_LOCAL: u32 = 2u32; +pub const CAUSE_LOC_PUBLIC_REMOTE: u32 = 4u32; +pub const CAUSE_LOC_TRANSIT_NETWORK: u32 = 3u32; +pub const CAUSE_LOC_USER: u32 = 0u32; +pub const CAUSE_MANDATORY_IE_MISSING: u32 = 96u32; +pub const CAUSE_NA_ABNORMAL: u32 = 4u32; +pub const CAUSE_NA_NORMAL: u32 = 0u32; +pub const CAUSE_NETWORK_OUT_OF_ORDER: u32 = 38u32; +pub const CAUSE_NORMAL_CALL_CLEARING: u32 = 16u32; +pub const CAUSE_NORMAL_UNSPECIFIED: u32 = 31u32; +pub const CAUSE_NO_ROUTE_TO_DESTINATION: u32 = 3u32; +pub const CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK: u32 = 2u32; +pub const CAUSE_NO_USER_RESPONDING: u32 = 18u32; +pub const CAUSE_NO_VPI_VCI_AVAILABLE: u32 = 45u32; +pub const CAUSE_NUMBER_CHANGED: u32 = 22u32; +pub const CAUSE_OPTION_UNAVAILABLE: u32 = 63u32; +pub const CAUSE_PROTOCOL_ERROR: u32 = 111u32; +pub const CAUSE_PU_PROVIDER: u32 = 0u32; +pub const CAUSE_PU_USER: u32 = 8u32; +pub const CAUSE_QOS_UNAVAILABLE: u32 = 49u32; +pub const CAUSE_REASON_IE_INSUFFICIENT: u32 = 8u32; +pub const CAUSE_REASON_IE_MISSING: u32 = 4u32; +pub const CAUSE_REASON_USER: u32 = 0u32; +pub const CAUSE_RECOVERY_ON_TIMEOUT: u32 = 102u32; +pub const CAUSE_RESOURCE_UNAVAILABLE: u32 = 47u32; +pub const CAUSE_STATUS_ENQUIRY_RESPONSE: u32 = 30u32; +pub const CAUSE_TEMPORARY_FAILURE: u32 = 41u32; +pub const CAUSE_TOO_MANY_PENDING_ADD_PARTY: u32 = 92u32; +pub const CAUSE_UNALLOCATED_NUMBER: u32 = 1u32; +pub const CAUSE_UNIMPLEMENTED_IE: u32 = 99u32; +pub const CAUSE_UNIMPLEMENTED_MESSAGE_TYPE: u32 = 97u32; +pub const CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS: u32 = 73u32; +pub const CAUSE_USER_BUSY: u32 = 17u32; +pub const CAUSE_USER_CELL_RATE_UNAVAILABLE: u32 = 51u32; +pub const CAUSE_USER_REJECTS_CLIR: u32 = 23u32; +pub const CAUSE_VPI_VCI_UNACCEPTABLE: u32 = 10u32; +pub const CAUSE_VPI_VCI_UNAVAILABLE: u32 = 35u32; +pub const CF_ACCEPT: u32 = 0u32; +pub const CF_DEFER: u32 = 2u32; +pub const CF_REJECT: u32 = 1u32; +pub const CLIP_NOT: u32 = 0u32; +pub const CLIP_SUS: u32 = 32u32; +pub const COMP_EQUAL: WSAECOMPARATOR = 0i32; +pub const COMP_NOTLESS: WSAECOMPARATOR = 1i32; +pub const CONTROL_CHANNEL_TRIGGER_STATUS_HARDWARE_SLOT_ALLOCATED: CONTROL_CHANNEL_TRIGGER_STATUS = 2i32; +pub const CONTROL_CHANNEL_TRIGGER_STATUS_INVALID: CONTROL_CHANNEL_TRIGGER_STATUS = 0i32; +pub const CONTROL_CHANNEL_TRIGGER_STATUS_POLICY_ERROR: CONTROL_CHANNEL_TRIGGER_STATUS = 3i32; +pub const CONTROL_CHANNEL_TRIGGER_STATUS_SERVICE_UNAVAILABLE: CONTROL_CHANNEL_TRIGGER_STATUS = 6i32; +pub const CONTROL_CHANNEL_TRIGGER_STATUS_SOFTWARE_SLOT_ALLOCATED: CONTROL_CHANNEL_TRIGGER_STATUS = 1i32; +pub const CONTROL_CHANNEL_TRIGGER_STATUS_SYSTEM_ERROR: CONTROL_CHANNEL_TRIGGER_STATUS = 4i32; +pub const CONTROL_CHANNEL_TRIGGER_STATUS_TRANSPORT_DISCONNECTED: CONTROL_CHANNEL_TRIGGER_STATUS = 5i32; +pub const DE_REUSE_SOCKET: u32 = 2u32; +pub const DL_ADDRESS_LENGTH_MAXIMUM: u32 = 32u32; +pub const DL_HEADER_LENGTH_MAXIMUM: u32 = 64u32; +pub const ETHERNET_TYPE_802_1AD: u32 = 34984u32; +pub const ETHERNET_TYPE_802_1Q: u32 = 33024u32; +pub const ETHERNET_TYPE_ARP: u32 = 2054u32; +pub const ETHERNET_TYPE_IPV4: u32 = 2048u32; +pub const ETHERNET_TYPE_IPV6: u32 = 34525u32; +pub const ETHERNET_TYPE_MINIMUM: u32 = 1536u32; +pub const ETH_LENGTH_OF_HEADER: u32 = 14u32; +pub const ETH_LENGTH_OF_SNAP_HEADER: u32 = 8u32; +pub const ETH_LENGTH_OF_VLAN_HEADER: u32 = 4u32; +pub const EXT_LEN_UNIT: u32 = 8u32; +pub const E_WINDOW_ADVANCE_BY_TIME: eWINDOW_ADVANCE_METHOD = 1i32; +pub const E_WINDOW_USE_AS_DATA_CACHE: eWINDOW_ADVANCE_METHOD = 2i32; +pub const FD_ACCEPT: u32 = 8u32; +pub const FD_ACCEPT_BIT: u32 = 3u32; +pub const FD_ADDRESS_LIST_CHANGE_BIT: u32 = 9u32; +pub const FD_CLOSE: u32 = 32u32; +pub const FD_CLOSE_BIT: u32 = 5u32; +pub const FD_CONNECT: u32 = 16u32; +pub const FD_CONNECT_BIT: u32 = 4u32; +pub const FD_GROUP_QOS_BIT: u32 = 7u32; +pub const FD_MAX_EVENTS: u32 = 10u32; +pub const FD_OOB: u32 = 4u32; +pub const FD_OOB_BIT: u32 = 2u32; +pub const FD_QOS_BIT: u32 = 6u32; +pub const FD_READ: u32 = 1u32; +pub const FD_READ_BIT: u32 = 0u32; +pub const FD_ROUTING_INTERFACE_CHANGE_BIT: u32 = 8u32; +pub const FD_SETSIZE: u32 = 64u32; +pub const FD_WRITE: u32 = 2u32; +pub const FD_WRITE_BIT: u32 = 1u32; +pub const FIOASYNC: i32 = -2147195267i32; +pub const FIONBIO: i32 = -2147195266i32; +pub const FIONREAD: i32 = 1074030207i32; +pub const FROM_PROTOCOL_INFO: i32 = -1i32; +pub const FallbackIndexMax: FALLBACK_INDEX = 1i32; +pub const FallbackIndexTcpFastopen: FALLBACK_INDEX = 0i32; +pub const GAI_STRERROR_BUFFER_SIZE: u32 = 1024u32; +pub const IAS_ATTRIB_INT: u32 = 1u32; +pub const IAS_ATTRIB_NO_ATTRIB: u32 = 0u32; +pub const IAS_ATTRIB_NO_CLASS: u32 = 16u32; +pub const IAS_ATTRIB_OCTETSEQ: u32 = 2u32; +pub const IAS_ATTRIB_STR: u32 = 3u32; +pub const IAS_MAX_ATTRIBNAME: u32 = 256u32; +pub const IAS_MAX_CLASSNAME: u32 = 64u32; +pub const IAS_MAX_OCTET_STRING: u32 = 1024u32; +pub const IAS_MAX_USER_STRING: u32 = 256u32; +pub const ICMP4_TIME_EXCEED_REASSEMBLY: ICMP4_TIME_EXCEED_CODE = 1i32; +pub const ICMP4_TIME_EXCEED_TRANSIT: ICMP4_TIME_EXCEED_CODE = 0i32; +pub const ICMP4_UNREACH_ADMIN: ICMP4_UNREACH_CODE = 13i32; +pub const ICMP4_UNREACH_FRAG_NEEDED: ICMP4_UNREACH_CODE = 4i32; +pub const ICMP4_UNREACH_HOST: ICMP4_UNREACH_CODE = 1i32; +pub const ICMP4_UNREACH_HOST_ADMIN: ICMP4_UNREACH_CODE = 10i32; +pub const ICMP4_UNREACH_HOST_TOS: ICMP4_UNREACH_CODE = 12i32; +pub const ICMP4_UNREACH_HOST_UNKNOWN: ICMP4_UNREACH_CODE = 7i32; +pub const ICMP4_UNREACH_ISOLATED: ICMP4_UNREACH_CODE = 8i32; +pub const ICMP4_UNREACH_NET: ICMP4_UNREACH_CODE = 0i32; +pub const ICMP4_UNREACH_NET_ADMIN: ICMP4_UNREACH_CODE = 9i32; +pub const ICMP4_UNREACH_NET_TOS: ICMP4_UNREACH_CODE = 11i32; +pub const ICMP4_UNREACH_NET_UNKNOWN: ICMP4_UNREACH_CODE = 6i32; +pub const ICMP4_UNREACH_PORT: ICMP4_UNREACH_CODE = 3i32; +pub const ICMP4_UNREACH_PROTOCOL: ICMP4_UNREACH_CODE = 2i32; +pub const ICMP4_UNREACH_SOURCEROUTE_FAILED: ICMP4_UNREACH_CODE = 5i32; +pub const ICMP6_DST_UNREACH_ADDR: u32 = 3u32; +pub const ICMP6_DST_UNREACH_ADMIN: u32 = 1u32; +pub const ICMP6_DST_UNREACH_BEYONDSCOPE: u32 = 2u32; +pub const ICMP6_DST_UNREACH_NOPORT: u32 = 4u32; +pub const ICMP6_DST_UNREACH_NOROUTE: u32 = 0u32; +pub const ICMP6_PARAMPROB_FIRSTFRAGMENT: u32 = 3u32; +pub const ICMP6_PARAMPROB_HEADER: u32 = 0u32; +pub const ICMP6_PARAMPROB_NEXTHEADER: u32 = 1u32; +pub const ICMP6_PARAMPROB_OPTION: u32 = 2u32; +pub const ICMP6_TIME_EXCEED_REASSEMBLY: u32 = 1u32; +pub const ICMP6_TIME_EXCEED_TRANSIT: u32 = 0u32; +pub const ICMPV4_INVALID_PREFERENCE_LEVEL: u32 = 2147483648u32; +pub const ICMPV6_ECHO_REQUEST_FLAG_REVERSE: u32 = 1u32; +pub const IE_AALParameters: Q2931_IE_TYPE = 0i32; +pub const IE_BHLI: Q2931_IE_TYPE = 3i32; +pub const IE_BLLI: Q2931_IE_TYPE = 4i32; +pub const IE_BroadbandBearerCapability: Q2931_IE_TYPE = 2i32; +pub const IE_CalledPartyNumber: Q2931_IE_TYPE = 5i32; +pub const IE_CalledPartySubaddress: Q2931_IE_TYPE = 6i32; +pub const IE_CallingPartyNumber: Q2931_IE_TYPE = 7i32; +pub const IE_CallingPartySubaddress: Q2931_IE_TYPE = 8i32; +pub const IE_Cause: Q2931_IE_TYPE = 9i32; +pub const IE_QOSClass: Q2931_IE_TYPE = 10i32; +pub const IE_TrafficDescriptor: Q2931_IE_TYPE = 1i32; +pub const IE_TransitNetworkSelection: Q2931_IE_TYPE = 11i32; +pub const IFF_BROADCAST: u32 = 2u32; +pub const IFF_LOOPBACK: u32 = 4u32; +pub const IFF_MULTICAST: u32 = 16u32; +pub const IFF_POINTTOPOINT: u32 = 8u32; +pub const IFF_UP: u32 = 1u32; +pub const IGMP_LEAVE_GROUP_TYPE: u32 = 23u32; +pub const IGMP_MAX_RESP_CODE_TYPE_FLOAT: IGMP_MAX_RESP_CODE_TYPE = 1i32; +pub const IGMP_MAX_RESP_CODE_TYPE_NORMAL: IGMP_MAX_RESP_CODE_TYPE = 0i32; +pub const IGMP_QUERY_TYPE: u32 = 17u32; +pub const IGMP_VERSION1_REPORT_TYPE: u32 = 18u32; +pub const IGMP_VERSION2_REPORT_TYPE: u32 = 22u32; +pub const IGMP_VERSION3_REPORT_TYPE: u32 = 34u32; +pub const IMPLINK_HIGHEXPER: u32 = 158u32; +pub const IMPLINK_IP: u32 = 155u32; +pub const IMPLINK_LOWEXPER: u32 = 156u32; +pub const IN4ADDR_LINKLOCALPREFIX_LENGTH: u32 = 16u32; +pub const IN4ADDR_LOOPBACK: u32 = 16777343u32; +pub const IN4ADDR_LOOPBACKPREFIX_LENGTH: u32 = 8u32; +pub const IN4ADDR_MULTICASTPREFIX_LENGTH: u32 = 4u32; +pub const IN6ADDR_6TO4PREFIX_LENGTH: u32 = 16u32; +pub const IN6ADDR_LINKLOCALPREFIX_LENGTH: u32 = 64u32; +pub const IN6ADDR_MULTICASTPREFIX_LENGTH: u32 = 8u32; +pub const IN6ADDR_SOLICITEDNODEMULTICASTPREFIX_LENGTH: u32 = 104u32; +pub const IN6ADDR_TEREDOPREFIX_LENGTH: u32 = 32u32; +pub const IN6ADDR_V4MAPPEDPREFIX_LENGTH: u32 = 96u32; +pub const IN6_EMBEDDEDV4_BITS_IN_BYTE: u32 = 8u32; +pub const IN6_EMBEDDEDV4_UOCTET_POSITION: u32 = 8u32; +pub const INADDR_LOOPBACK: u32 = 2130706433u32; +pub const INADDR_NONE: u32 = 4294967295u32; +pub const INCL_WINSOCK_API_PROTOTYPES: u32 = 1u32; +pub const INCL_WINSOCK_API_TYPEDEFS: u32 = 0u32; +pub const INET6_ADDRSTRLEN: u32 = 65u32; +pub const INET_ADDRSTRLEN: u32 = 22u32; +pub const INVALID_SOCKET: SOCKET = -1i32 as _; +pub const IN_CLASSA_HOST: u32 = 16777215u32; +pub const IN_CLASSA_MAX: u32 = 128u32; +pub const IN_CLASSA_NET: u32 = 4278190080u32; +pub const IN_CLASSA_NSHIFT: u32 = 24u32; +pub const IN_CLASSB_HOST: u32 = 65535u32; +pub const IN_CLASSB_MAX: u32 = 65536u32; +pub const IN_CLASSB_NET: u32 = 4294901760u32; +pub const IN_CLASSB_NSHIFT: u32 = 16u32; +pub const IN_CLASSC_HOST: u32 = 255u32; +pub const IN_CLASSC_NET: u32 = 4294967040u32; +pub const IN_CLASSC_NSHIFT: u32 = 8u32; +pub const IN_CLASSD_HOST: u32 = 268435455u32; +pub const IN_CLASSD_NET: u32 = 4026531840u32; +pub const IN_CLASSD_NSHIFT: u32 = 28u32; +pub const IOCPARM_MASK: u32 = 127u32; +pub const IOC_IN: u32 = 2147483648u32; +pub const IOC_INOUT: u32 = 3221225472u32; +pub const IOC_OUT: u32 = 1073741824u32; +pub const IOC_PROTOCOL: u32 = 268435456u32; +pub const IOC_UNIX: u32 = 0u32; +pub const IOC_VENDOR: u32 = 402653184u32; +pub const IOC_VOID: u32 = 536870912u32; +pub const IOC_WS2: u32 = 134217728u32; +pub const IP4_OFF_MASK: u32 = 65311u32; +pub const IP6F_MORE_FRAG: u32 = 256u32; +pub const IP6F_OFF_MASK: u32 = 63743u32; +pub const IP6F_RESERVED_MASK: u32 = 1536u32; +pub const IP6OPT_JUMBO: IPV6_OPTION_TYPE = 194i32; +pub const IP6OPT_MUTABLE: u32 = 32u32; +pub const IP6OPT_NSAP_ADDR: IPV6_OPTION_TYPE = 195i32; +pub const IP6OPT_PAD1: IPV6_OPTION_TYPE = 0i32; +pub const IP6OPT_PADN: IPV6_OPTION_TYPE = 1i32; +pub const IP6OPT_ROUTER_ALERT: IPV6_OPTION_TYPE = 5i32; +pub const IP6OPT_TUNNEL_LIMIT: IPV6_OPTION_TYPE = 4i32; +pub const IP6OPT_TYPE_DISCARD: u32 = 64u32; +pub const IP6OPT_TYPE_FORCEICMP: u32 = 128u32; +pub const IP6OPT_TYPE_ICMP: u32 = 192u32; +pub const IP6OPT_TYPE_SKIP: u32 = 0u32; +pub const IP6T_SO_ORIGINAL_DST: u32 = 12303u32; +pub const IPPORT_BIFFUDP: u32 = 512u32; +pub const IPPORT_CHARGEN: u32 = 19u32; +pub const IPPORT_CMDSERVER: u32 = 514u32; +pub const IPPORT_DAYTIME: u32 = 13u32; +pub const IPPORT_DISCARD: u32 = 9u32; +pub const IPPORT_DYNAMIC_MAX: u32 = 65535u32; +pub const IPPORT_DYNAMIC_MIN: u32 = 49152u32; +pub const IPPORT_ECHO: u32 = 7u32; +pub const IPPORT_EFSSERVER: u32 = 520u32; +pub const IPPORT_EPMAP: u32 = 135u32; +pub const IPPORT_EXECSERVER: u32 = 512u32; +pub const IPPORT_FINGER: u32 = 79u32; +pub const IPPORT_FTP: u32 = 21u32; +pub const IPPORT_FTP_DATA: u32 = 20u32; +pub const IPPORT_HTTPS: u32 = 443u32; +pub const IPPORT_IMAP: u32 = 143u32; +pub const IPPORT_IMAP3: u32 = 220u32; +pub const IPPORT_LDAP: u32 = 389u32; +pub const IPPORT_LOGINSERVER: u32 = 513u32; +pub const IPPORT_MICROSOFT_DS: u32 = 445u32; +pub const IPPORT_MSP: u32 = 18u32; +pub const IPPORT_MTP: u32 = 57u32; +pub const IPPORT_NAMESERVER: u32 = 42u32; +pub const IPPORT_NETBIOS_DGM: u32 = 138u32; +pub const IPPORT_NETBIOS_NS: u32 = 137u32; +pub const IPPORT_NETBIOS_SSN: u32 = 139u32; +pub const IPPORT_NETSTAT: u32 = 15u32; +pub const IPPORT_NTP: u32 = 123u32; +pub const IPPORT_POP3: u32 = 110u32; +pub const IPPORT_QOTD: u32 = 17u32; +pub const IPPORT_REGISTERED_MAX: u32 = 49151u32; +pub const IPPORT_REGISTERED_MIN: u32 = 1024u32; +pub const IPPORT_RESERVED: u32 = 1024u32; +pub const IPPORT_RJE: u32 = 77u32; +pub const IPPORT_ROUTESERVER: u32 = 520u32; +pub const IPPORT_SMTP: u32 = 25u32; +pub const IPPORT_SNMP: u32 = 161u32; +pub const IPPORT_SNMP_TRAP: u32 = 162u32; +pub const IPPORT_SUPDUP: u32 = 95u32; +pub const IPPORT_SYSTAT: u32 = 11u32; +pub const IPPORT_TCPMUX: u32 = 1u32; +pub const IPPORT_TELNET: u32 = 23u32; +pub const IPPORT_TFTP: u32 = 69u32; +pub const IPPORT_TIMESERVER: u32 = 37u32; +pub const IPPORT_TTYLINK: u32 = 87u32; +pub const IPPORT_WHOIS: u32 = 43u32; +pub const IPPORT_WHOSERVER: u32 = 513u32; +pub const IPPROTO_AH: IPPROTO = 51i32; +pub const IPPROTO_CBT: IPPROTO = 7i32; +pub const IPPROTO_DSTOPTS: IPPROTO = 60i32; +pub const IPPROTO_EGP: IPPROTO = 8i32; +pub const IPPROTO_ESP: IPPROTO = 50i32; +pub const IPPROTO_FRAGMENT: IPPROTO = 44i32; +pub const IPPROTO_GGP: IPPROTO = 3i32; +pub const IPPROTO_HOPOPTS: IPPROTO = 0i32; +pub const IPPROTO_ICLFXBM: IPPROTO = 78i32; +pub const IPPROTO_ICMP: IPPROTO = 1i32; +pub const IPPROTO_ICMPV6: IPPROTO = 58i32; +pub const IPPROTO_IDP: IPPROTO = 22i32; +pub const IPPROTO_IGMP: IPPROTO = 2i32; +pub const IPPROTO_IGP: IPPROTO = 9i32; +pub const IPPROTO_IP: IPPROTO = 0i32; +pub const IPPROTO_IPV4: IPPROTO = 4i32; +pub const IPPROTO_IPV6: IPPROTO = 41i32; +pub const IPPROTO_L2TP: IPPROTO = 115i32; +pub const IPPROTO_MAX: IPPROTO = 256i32; +pub const IPPROTO_ND: IPPROTO = 77i32; +pub const IPPROTO_NONE: IPPROTO = 59i32; +pub const IPPROTO_PGM: IPPROTO = 113i32; +pub const IPPROTO_PIM: IPPROTO = 103i32; +pub const IPPROTO_PUP: IPPROTO = 12i32; +pub const IPPROTO_RAW: IPPROTO = 255i32; +pub const IPPROTO_RDP: IPPROTO = 27i32; +pub const IPPROTO_RESERVED_IPSEC: IPPROTO = 258i32; +pub const IPPROTO_RESERVED_IPSECOFFLOAD: IPPROTO = 259i32; +pub const IPPROTO_RESERVED_MAX: IPPROTO = 261i32; +pub const IPPROTO_RESERVED_RAW: IPPROTO = 257i32; +pub const IPPROTO_RESERVED_WNV: IPPROTO = 260i32; +pub const IPPROTO_RM: IPPROTO = 113i32; +pub const IPPROTO_ROUTING: IPPROTO = 43i32; +pub const IPPROTO_SCTP: IPPROTO = 132i32; +pub const IPPROTO_ST: IPPROTO = 5i32; +pub const IPPROTO_TCP: IPPROTO = 6i32; +pub const IPPROTO_UDP: IPPROTO = 17i32; +pub const IPV4_MAX_MINIMUM_MTU: u32 = 576u32; +pub const IPV4_MINIMUM_MTU: u32 = 576u32; +pub const IPV4_MIN_MINIMUM_MTU: u32 = 352u32; +pub const IPV4_VERSION: u32 = 4u32; +pub const IPV6_ADD_IFLIST: i32 = 29i32; +pub const IPV6_ADD_MEMBERSHIP: i32 = 12i32; +pub const IPV6_CHECKSUM: i32 = 26i32; +pub const IPV6_DEL_IFLIST: i32 = 30i32; +pub const IPV6_DONTFRAG: i32 = 14i32; +pub const IPV6_DROP_MEMBERSHIP: i32 = 13i32; +pub const IPV6_ECN: i32 = 50i32; +pub const IPV6_ECN_MASK: u32 = 12288u32; +pub const IPV6_ECN_SHIFT: u32 = 12u32; +pub const IPV6_FLOW_LABEL_MASK: u32 = 4294905600u32; +pub const IPV6_FULL_TRAFFIC_CLASS_MASK: u32 = 61455u32; +pub const IPV6_GET_IFLIST: i32 = 33i32; +pub const IPV6_HDRINCL: i32 = 2i32; +pub const IPV6_HOPLIMIT: i32 = 21i32; +pub const IPV6_HOPOPTS: i32 = 1i32; +pub const IPV6_IFLIST: i32 = 28i32; +pub const IPV6_JOIN_GROUP: i32 = 12i32; +pub const IPV6_LEAVE_GROUP: i32 = 13i32; +pub const IPV6_MINIMUM_MTU: u32 = 1280u32; +pub const IPV6_MTU: i32 = 72i32; +pub const IPV6_MTU_DISCOVER: i32 = 71i32; +pub const IPV6_MULTICAST_HOPS: i32 = 10i32; +pub const IPV6_MULTICAST_IF: i32 = 9i32; +pub const IPV6_MULTICAST_LOOP: i32 = 11i32; +pub const IPV6_NRT_INTERFACE: i32 = 74i32; +pub const IPV6_PKTINFO: i32 = 19i32; +pub const IPV6_PKTINFO_EX: i32 = 51i32; +pub const IPV6_PROTECTION_LEVEL: i32 = 23i32; +pub const IPV6_RECVDSTADDR: i32 = 25i32; +pub const IPV6_RECVECN: i32 = 50i32; +pub const IPV6_RECVERR: i32 = 75i32; +pub const IPV6_RECVIF: i32 = 24i32; +pub const IPV6_RECVRTHDR: i32 = 38i32; +pub const IPV6_RECVTCLASS: i32 = 40i32; +pub const IPV6_RTHDR: i32 = 32i32; +pub const IPV6_TCLASS: i32 = 39i32; +pub const IPV6_TRAFFIC_CLASS_MASK: u32 = 49167u32; +pub const IPV6_UNICAST_HOPS: i32 = 4i32; +pub const IPV6_UNICAST_IF: i32 = 31i32; +pub const IPV6_USER_MTU: i32 = 76i32; +pub const IPV6_V6ONLY: i32 = 27i32; +pub const IPV6_VERSION: u32 = 96u32; +pub const IPV6_WFP_REDIRECT_CONTEXT: i32 = 70i32; +pub const IPV6_WFP_REDIRECT_RECORDS: i32 = 60i32; +pub const IPX_ADDRESS: i32 = 16391i32; +pub const IPX_ADDRESS_NOTIFY: i32 = 16396i32; +pub const IPX_DSTYPE: i32 = 16386i32; +pub const IPX_EXTENDED_ADDRESS: i32 = 16388i32; +pub const IPX_FILTERPTYPE: i32 = 16385i32; +pub const IPX_GETNETINFO: i32 = 16392i32; +pub const IPX_GETNETINFO_NORIP: i32 = 16393i32; +pub const IPX_IMMEDIATESPXACK: i32 = 16400i32; +pub const IPX_MAXSIZE: i32 = 16390i32; +pub const IPX_MAX_ADAPTER_NUM: i32 = 16397i32; +pub const IPX_PTYPE: i32 = 16384i32; +pub const IPX_RECEIVE_BROADCAST: i32 = 16399i32; +pub const IPX_RECVHDR: i32 = 16389i32; +pub const IPX_RERIPNETNUMBER: i32 = 16398i32; +pub const IPX_SPXGETCONNECTIONSTATUS: i32 = 16395i32; +pub const IPX_STOPFILTERPTYPE: i32 = 16387i32; +pub const IP_ADD_IFLIST: i32 = 29i32; +pub const IP_ADD_MEMBERSHIP: i32 = 12i32; +pub const IP_ADD_SOURCE_MEMBERSHIP: i32 = 15i32; +pub const IP_BLOCK_SOURCE: i32 = 17i32; +pub const IP_DEFAULT_MULTICAST_LOOP: u32 = 1u32; +pub const IP_DEFAULT_MULTICAST_TTL: u32 = 1u32; +pub const IP_DEL_IFLIST: i32 = 30i32; +pub const IP_DONTFRAGMENT: i32 = 14i32; +pub const IP_DROP_MEMBERSHIP: i32 = 13i32; +pub const IP_DROP_SOURCE_MEMBERSHIP: i32 = 16i32; +pub const IP_ECN: i32 = 50i32; +pub const IP_GET_IFLIST: i32 = 33i32; +pub const IP_HDRINCL: i32 = 2i32; +pub const IP_HOPLIMIT: i32 = 21i32; +pub const IP_IFLIST: i32 = 28i32; +pub const IP_MAX_MEMBERSHIPS: u32 = 20u32; +pub const IP_MTU: i32 = 73i32; +pub const IP_MTU_DISCOVER: i32 = 71i32; +pub const IP_MULTICAST_IF: i32 = 9i32; +pub const IP_MULTICAST_LOOP: i32 = 11i32; +pub const IP_MULTICAST_TTL: i32 = 10i32; +pub const IP_NRT_INTERFACE: i32 = 74i32; +pub const IP_OPTIONS: i32 = 1i32; +pub const IP_OPTION_TIMESTAMP_ADDRESS: IP_OPTION_TIMESTAMP_FLAGS = 1i32; +pub const IP_OPTION_TIMESTAMP_ONLY: IP_OPTION_TIMESTAMP_FLAGS = 0i32; +pub const IP_OPTION_TIMESTAMP_SPECIFIC_ADDRESS: IP_OPTION_TIMESTAMP_FLAGS = 3i32; +pub const IP_OPT_EOL: IPV4_OPTION_TYPE = 0i32; +pub const IP_OPT_LSRR: IPV4_OPTION_TYPE = 131i32; +pub const IP_OPT_MULTIDEST: IPV4_OPTION_TYPE = 149i32; +pub const IP_OPT_NOP: IPV4_OPTION_TYPE = 1i32; +pub const IP_OPT_ROUTER_ALERT: IPV4_OPTION_TYPE = 148i32; +pub const IP_OPT_RR: IPV4_OPTION_TYPE = 7i32; +pub const IP_OPT_SECURITY: IPV4_OPTION_TYPE = 130i32; +pub const IP_OPT_SID: IPV4_OPTION_TYPE = 136i32; +pub const IP_OPT_SSRR: IPV4_OPTION_TYPE = 137i32; +pub const IP_OPT_TS: IPV4_OPTION_TYPE = 68i32; +pub const IP_ORIGINAL_ARRIVAL_IF: i32 = 47i32; +pub const IP_PKTINFO: i32 = 19i32; +pub const IP_PKTINFO_EX: i32 = 51i32; +pub const IP_PMTUDISC_DO: PMTUD_STATE = 1i32; +pub const IP_PMTUDISC_DONT: PMTUD_STATE = 2i32; +pub const IP_PMTUDISC_MAX: PMTUD_STATE = 4i32; +pub const IP_PMTUDISC_NOT_SET: PMTUD_STATE = 0i32; +pub const IP_PMTUDISC_PROBE: PMTUD_STATE = 3i32; +pub const IP_PROTECTION_LEVEL: i32 = 23i32; +pub const IP_RECEIVE_BROADCAST: i32 = 22i32; +pub const IP_RECVDSTADDR: i32 = 25i32; +pub const IP_RECVECN: i32 = 50i32; +pub const IP_RECVERR: i32 = 75i32; +pub const IP_RECVIF: i32 = 24i32; +pub const IP_RECVRTHDR: i32 = 38i32; +pub const IP_RECVTCLASS: i32 = 40i32; +pub const IP_RECVTOS: i32 = 40i32; +pub const IP_RECVTTL: i32 = 21i32; +pub const IP_RTHDR: i32 = 32i32; +pub const IP_TCLASS: i32 = 39i32; +pub const IP_TOS: i32 = 3i32; +pub const IP_TTL: i32 = 4i32; +pub const IP_UNBLOCK_SOURCE: i32 = 18i32; +pub const IP_UNICAST_IF: i32 = 31i32; +pub const IP_UNSPECIFIED_HOP_LIMIT: i32 = -1i32; +pub const IP_UNSPECIFIED_TYPE_OF_SERVICE: i32 = -1i32; +pub const IP_UNSPECIFIED_USER_MTU: u32 = 4294967295u32; +pub const IP_USER_MTU: i32 = 76i32; +pub const IP_VER_MASK: u32 = 240u32; +pub const IP_WFP_REDIRECT_CONTEXT: i32 = 70i32; +pub const IP_WFP_REDIRECT_RECORDS: i32 = 60i32; +pub const IRDA_PROTO_SOCK_STREAM: u32 = 1u32; +pub const IRLMP_9WIRE_MODE: i32 = 22i32; +pub const IRLMP_DISCOVERY_MODE: i32 = 25i32; +pub const IRLMP_ENUMDEVICES: i32 = 16i32; +pub const IRLMP_EXCLUSIVE_MODE: i32 = 20i32; +pub const IRLMP_IAS_QUERY: i32 = 18i32; +pub const IRLMP_IAS_SET: i32 = 17i32; +pub const IRLMP_IRLPT_MODE: i32 = 21i32; +pub const IRLMP_PARAMETERS: i32 = 24i32; +pub const IRLMP_SEND_PDU_LEN: i32 = 19i32; +pub const IRLMP_SHARP_MODE: i32 = 32i32; +pub const IRLMP_TINYTP_MODE: i32 = 23i32; +pub const ISOPROTO_CLNP: u32 = 31u32; +pub const ISOPROTO_CLTP: u32 = 30u32; +pub const ISOPROTO_ESIS: u32 = 34u32; +pub const ISOPROTO_INACT_NL: u32 = 33u32; +pub const ISOPROTO_INTRAISIS: u32 = 35u32; +pub const ISOPROTO_TP: u32 = 29u32; +pub const ISOPROTO_TP0: u32 = 25u32; +pub const ISOPROTO_TP1: u32 = 26u32; +pub const ISOPROTO_TP2: u32 = 27u32; +pub const ISOPROTO_TP3: u32 = 28u32; +pub const ISOPROTO_TP4: u32 = 29u32; +pub const ISOPROTO_X25: u32 = 32u32; +pub const ISO_EXP_DATA_NUSE: u32 = 1u32; +pub const ISO_EXP_DATA_USE: u32 = 0u32; +pub const ISO_HIERARCHICAL: u32 = 0u32; +pub const ISO_MAX_ADDR_LENGTH: u32 = 64u32; +pub const ISO_NON_HIERARCHICAL: u32 = 1u32; +pub const IpDadStateDeprecated: NL_DAD_STATE = 3i32; +pub const IpDadStateDuplicate: NL_DAD_STATE = 2i32; +pub const IpDadStateInvalid: NL_DAD_STATE = 0i32; +pub const IpDadStatePreferred: NL_DAD_STATE = 4i32; +pub const IpDadStateTentative: NL_DAD_STATE = 1i32; +pub const IpPrefixOriginDhcp: NL_PREFIX_ORIGIN = 3i32; +pub const IpPrefixOriginManual: NL_PREFIX_ORIGIN = 1i32; +pub const IpPrefixOriginOther: NL_PREFIX_ORIGIN = 0i32; +pub const IpPrefixOriginRouterAdvertisement: NL_PREFIX_ORIGIN = 4i32; +pub const IpPrefixOriginUnchanged: NL_PREFIX_ORIGIN = 16i32; +pub const IpPrefixOriginWellKnown: NL_PREFIX_ORIGIN = 2i32; +pub const IpSuffixOriginDhcp: NL_SUFFIX_ORIGIN = 3i32; +pub const IpSuffixOriginLinkLayerAddress: NL_SUFFIX_ORIGIN = 4i32; +pub const IpSuffixOriginManual: NL_SUFFIX_ORIGIN = 1i32; +pub const IpSuffixOriginOther: NL_SUFFIX_ORIGIN = 0i32; +pub const IpSuffixOriginRandom: NL_SUFFIX_ORIGIN = 5i32; +pub const IpSuffixOriginUnchanged: NL_SUFFIX_ORIGIN = 16i32; +pub const IpSuffixOriginWellKnown: NL_SUFFIX_ORIGIN = 2i32; +pub const JL_BOTH: u32 = 4u32; +pub const JL_RECEIVER_ONLY: u32 = 2u32; +pub const JL_SENDER_ONLY: u32 = 1u32; +pub const LAYERED_PROTOCOL: u32 = 0u32; +pub const LITTLEENDIAN: u32 = 1u32; +pub const LM_BAUD_115200: u32 = 115200u32; +pub const LM_BAUD_1152K: u32 = 1152000u32; +pub const LM_BAUD_1200: u32 = 1200u32; +pub const LM_BAUD_16M: u32 = 16000000u32; +pub const LM_BAUD_19200: u32 = 19200u32; +pub const LM_BAUD_2400: u32 = 2400u32; +pub const LM_BAUD_38400: u32 = 38400u32; +pub const LM_BAUD_4M: u32 = 4000000u32; +pub const LM_BAUD_57600: u32 = 57600u32; +pub const LM_BAUD_576K: u32 = 576000u32; +pub const LM_BAUD_9600: u32 = 9600u32; +pub const LM_HB1_Computer: i32 = 4i32; +pub const LM_HB1_Fax: i32 = 32i32; +pub const LM_HB1_LANAccess: i32 = 64i32; +pub const LM_HB1_Modem: i32 = 16i32; +pub const LM_HB1_PDA_Palmtop: i32 = 2i32; +pub const LM_HB1_PnP: i32 = 1i32; +pub const LM_HB1_Printer: i32 = 8i32; +pub const LM_HB2_FileServer: i32 = 2i32; +pub const LM_HB2_Telephony: i32 = 1i32; +pub const LM_HB_Extension: i32 = 128i32; +pub const LOG2_BITS_PER_BYTE: u32 = 3u32; +pub const LSP_CRYPTO_COMPRESS: u32 = 64u32; +pub const LSP_FIREWALL: u32 = 8u32; +pub const LSP_INBOUND_MODIFY: u32 = 16u32; +pub const LSP_INSPECTOR: u32 = 1u32; +pub const LSP_LOCAL_CACHE: u32 = 128u32; +pub const LSP_OUTBOUND_MODIFY: u32 = 32u32; +pub const LSP_PROXY: u32 = 4u32; +pub const LSP_REDIRECTOR: u32 = 2u32; +pub const LSP_SYSTEM: u32 = 2147483648u32; +pub const LUP_ADDRCONFIG: u32 = 1048576u32; +pub const LUP_API_ANSI: u32 = 16777216u32; +pub const LUP_CONTAINERS: u32 = 2u32; +pub const LUP_DEEP: u32 = 1u32; +pub const LUP_DISABLE_IDN_ENCODING: u32 = 8388608u32; +pub const LUP_DNS_ONLY: u32 = 131072u32; +pub const LUP_DUAL_ADDR: u32 = 2097152u32; +pub const LUP_EXCLUSIVE_CUSTOM_SERVERS: u32 = 134217728u32; +pub const LUP_EXTENDED_QUERYSET: u32 = 33554432u32; +pub const LUP_FILESERVER: u32 = 4194304u32; +pub const LUP_FLUSHCACHE: u32 = 4096u32; +pub const LUP_FLUSHPREVIOUS: u32 = 8192u32; +pub const LUP_FORCE_CLEAR_TEXT: u32 = 1073741824u32; +pub const LUP_NEAREST: u32 = 8u32; +pub const LUP_NOCONTAINERS: u32 = 4u32; +pub const LUP_NON_AUTHORITATIVE: u32 = 16384u32; +pub const LUP_REQUIRE_SECURE: u32 = 268435456u32; +pub const LUP_RESOLUTION_HANDLE: u32 = 2147483648u32; +pub const LUP_RES_SERVICE: u32 = 32768u32; +pub const LUP_RETURN_ADDR: u32 = 256u32; +pub const LUP_RETURN_ALIASES: u32 = 1024u32; +pub const LUP_RETURN_ALL: u32 = 4080u32; +pub const LUP_RETURN_BLOB: u32 = 512u32; +pub const LUP_RETURN_COMMENT: u32 = 128u32; +pub const LUP_RETURN_NAME: u32 = 16u32; +pub const LUP_RETURN_PREFERRED_NAMES: u32 = 65536u32; +pub const LUP_RETURN_QUERY_STRING: u32 = 2048u32; +pub const LUP_RETURN_RESPONSE_FLAGS: u32 = 262144u32; +pub const LUP_RETURN_TTL: u32 = 536870912u32; +pub const LUP_RETURN_TYPE: u32 = 32u32; +pub const LUP_RETURN_VERSION: u32 = 64u32; +pub const LUP_SECURE: u32 = 32768u32; +pub const LUP_SECURE_WITH_FALLBACK: u32 = 67108864u32; +pub const LinkLocalAlwaysOff: NL_LINK_LOCAL_ADDRESS_BEHAVIOR = 0i32; +pub const LinkLocalAlwaysOn: NL_LINK_LOCAL_ADDRESS_BEHAVIOR = 2i32; +pub const LinkLocalDelayed: NL_LINK_LOCAL_ADDRESS_BEHAVIOR = 1i32; +pub const LinkLocalUnchanged: NL_LINK_LOCAL_ADDRESS_BEHAVIOR = -1i32; +pub const LmCharSetASCII: u32 = 0u32; +pub const LmCharSetISO_8859_1: u32 = 1u32; +pub const LmCharSetISO_8859_2: u32 = 2u32; +pub const LmCharSetISO_8859_3: u32 = 3u32; +pub const LmCharSetISO_8859_4: u32 = 4u32; +pub const LmCharSetISO_8859_5: u32 = 5u32; +pub const LmCharSetISO_8859_6: u32 = 6u32; +pub const LmCharSetISO_8859_7: u32 = 7u32; +pub const LmCharSetISO_8859_8: u32 = 8u32; +pub const LmCharSetISO_8859_9: u32 = 9u32; +pub const LmCharSetUNICODE: u32 = 255u32; +pub const MAXGETHOSTSTRUCT: u32 = 1024u32; +pub const MAX_IPV4_HLEN: u32 = 60u32; +pub const MAX_IPV4_PACKET: u32 = 65535u32; +pub const MAX_IPV6_PAYLOAD: u32 = 65535u32; +pub const MAX_MCAST_TTL: u32 = 255u32; +pub const MAX_PROTOCOL_CHAIN: u32 = 7u32; +pub const MAX_WINDOW_INCREMENT_PERCENTAGE: u32 = 25u32; +pub const MCAST_BLOCK_SOURCE: u32 = 43u32; +pub const MCAST_EXCLUDE: MULTICAST_MODE_TYPE = 1i32; +pub const MCAST_INCLUDE: MULTICAST_MODE_TYPE = 0i32; +pub const MCAST_JOIN_GROUP: u32 = 41u32; +pub const MCAST_JOIN_SOURCE_GROUP: u32 = 45u32; +pub const MCAST_LEAVE_GROUP: u32 = 42u32; +pub const MCAST_LEAVE_SOURCE_GROUP: u32 = 46u32; +pub const MCAST_UNBLOCK_SOURCE: u32 = 44u32; +pub const MIB_IPPROTO_BBN: NL_ROUTE_PROTOCOL = 12i32; +pub const MIB_IPPROTO_BGP: NL_ROUTE_PROTOCOL = 14i32; +pub const MIB_IPPROTO_CISCO: NL_ROUTE_PROTOCOL = 11i32; +pub const MIB_IPPROTO_DHCP: NL_ROUTE_PROTOCOL = 19i32; +pub const MIB_IPPROTO_DVMRP: NL_ROUTE_PROTOCOL = 17i32; +pub const MIB_IPPROTO_EGP: NL_ROUTE_PROTOCOL = 5i32; +pub const MIB_IPPROTO_EIGRP: NL_ROUTE_PROTOCOL = 16i32; +pub const MIB_IPPROTO_ES_IS: NL_ROUTE_PROTOCOL = 10i32; +pub const MIB_IPPROTO_GGP: NL_ROUTE_PROTOCOL = 6i32; +pub const MIB_IPPROTO_HELLO: NL_ROUTE_PROTOCOL = 7i32; +pub const MIB_IPPROTO_ICMP: NL_ROUTE_PROTOCOL = 4i32; +pub const MIB_IPPROTO_IDPR: NL_ROUTE_PROTOCOL = 15i32; +pub const MIB_IPPROTO_IS_IS: NL_ROUTE_PROTOCOL = 9i32; +pub const MIB_IPPROTO_LOCAL: NL_ROUTE_PROTOCOL = 2i32; +pub const MIB_IPPROTO_NETMGMT: NL_ROUTE_PROTOCOL = 3i32; +pub const MIB_IPPROTO_NT_AUTOSTATIC: NL_ROUTE_PROTOCOL = 10002i32; +pub const MIB_IPPROTO_NT_STATIC: NL_ROUTE_PROTOCOL = 10006i32; +pub const MIB_IPPROTO_NT_STATIC_NON_DOD: NL_ROUTE_PROTOCOL = 10007i32; +pub const MIB_IPPROTO_OSPF: NL_ROUTE_PROTOCOL = 13i32; +pub const MIB_IPPROTO_OTHER: NL_ROUTE_PROTOCOL = 1i32; +pub const MIB_IPPROTO_RIP: NL_ROUTE_PROTOCOL = 8i32; +pub const MIB_IPPROTO_RPL: NL_ROUTE_PROTOCOL = 18i32; +pub const MIT_GUID: NPI_MODULEID_TYPE = 1i32; +pub const MIT_IF_LUID: NPI_MODULEID_TYPE = 2i32; +pub const MLD_MAX_RESP_CODE_TYPE_FLOAT: MLD_MAX_RESP_CODE_TYPE = 1i32; +pub const MLD_MAX_RESP_CODE_TYPE_NORMAL: MLD_MAX_RESP_CODE_TYPE = 0i32; +pub const MSG_BCAST: u32 = 1024u32; +pub const MSG_CTRUNC: u32 = 512u32; +pub const MSG_DONTROUTE: SEND_RECV_FLAGS = 4i32; +pub const MSG_ERRQUEUE: u32 = 4096u32; +pub const MSG_INTERRUPT: u32 = 16u32; +pub const MSG_MAXIOVLEN: u32 = 16u32; +pub const MSG_MCAST: u32 = 2048u32; +pub const MSG_OOB: SEND_RECV_FLAGS = 1i32; +pub const MSG_PARTIAL: u32 = 32768u32; +pub const MSG_PEEK: SEND_RECV_FLAGS = 2i32; +pub const MSG_PUSH_IMMEDIATE: SEND_RECV_FLAGS = 32i32; +pub const MSG_TRUNC: u32 = 256u32; +pub const MSG_WAITALL: SEND_RECV_FLAGS = 8i32; +pub const ND_NA_FLAG_OVERRIDE: u32 = 536870912u32; +pub const ND_NA_FLAG_ROUTER: u32 = 2147483648u32; +pub const ND_NA_FLAG_SOLICITED: u32 = 1073741824u32; +pub const ND_OPT_ADVERTISEMENT_INTERVAL: ND_OPTION_TYPE = 7i32; +pub const ND_OPT_DNSSL: ND_OPTION_TYPE = 31i32; +pub const ND_OPT_DNSSL_MIN_LEN: u32 = 16u32; +pub const ND_OPT_HOME_AGENT_INFORMATION: ND_OPTION_TYPE = 8i32; +pub const ND_OPT_MTU: ND_OPTION_TYPE = 5i32; +pub const ND_OPT_NBMA_SHORTCUT_LIMIT: ND_OPTION_TYPE = 6i32; +pub const ND_OPT_PI_FLAG_AUTO: u32 = 64u32; +pub const ND_OPT_PI_FLAG_ONLINK: u32 = 128u32; +pub const ND_OPT_PI_FLAG_ROUTE: u32 = 1u32; +pub const ND_OPT_PI_FLAG_ROUTER_ADDR: u32 = 32u32; +pub const ND_OPT_PI_FLAG_SITE_PREFIX: u32 = 16u32; +pub const ND_OPT_PREFIX_INFORMATION: ND_OPTION_TYPE = 3i32; +pub const ND_OPT_RDNSS: ND_OPTION_TYPE = 25i32; +pub const ND_OPT_RDNSS_MIN_LEN: u32 = 24u32; +pub const ND_OPT_REDIRECTED_HEADER: ND_OPTION_TYPE = 4i32; +pub const ND_OPT_RI_FLAG_PREFERENCE: u32 = 24u32; +pub const ND_OPT_ROUTE_INFO: ND_OPTION_TYPE = 24i32; +pub const ND_OPT_SOURCE_ADDR_LIST: ND_OPTION_TYPE = 9i32; +pub const ND_OPT_SOURCE_LINKADDR: ND_OPTION_TYPE = 1i32; +pub const ND_OPT_TARGET_ADDR_LIST: ND_OPTION_TYPE = 10i32; +pub const ND_OPT_TARGET_LINKADDR: ND_OPTION_TYPE = 2i32; +pub const ND_RA_FLAG_HOME_AGENT: u32 = 32u32; +pub const ND_RA_FLAG_MANAGED: u32 = 128u32; +pub const ND_RA_FLAG_OTHER: u32 = 64u32; +pub const ND_RA_FLAG_PREFERENCE: u32 = 24u32; +pub const NETBIOS_GROUP_NAME: u32 = 1u32; +pub const NETBIOS_NAME_LENGTH: u32 = 16u32; +pub const NETBIOS_TYPE_QUICK_GROUP: u32 = 3u32; +pub const NETBIOS_TYPE_QUICK_UNIQUE: u32 = 2u32; +pub const NETBIOS_UNIQUE_NAME: u32 = 0u32; +pub const NI_DGRAM: u32 = 16u32; +pub const NI_MAXHOST: u32 = 1025u32; +pub const NI_MAXSERV: u32 = 32u32; +pub const NI_NAMEREQD: u32 = 4u32; +pub const NI_NOFQDN: u32 = 1u32; +pub const NI_NUMERICHOST: u32 = 2u32; +pub const NI_NUMERICSERV: u32 = 8u32; +pub const NLA_802_1X_LOCATION: NLA_BLOB_DATA_TYPE = 2i32; +pub const NLA_ALLUSERS_NETWORK: u32 = 1u32; +pub const NLA_CONNECTIVITY: NLA_BLOB_DATA_TYPE = 3i32; +pub const NLA_FRIENDLY_NAME: u32 = 2u32; +pub const NLA_ICS: NLA_BLOB_DATA_TYPE = 4i32; +pub const NLA_INTERFACE: NLA_BLOB_DATA_TYPE = 1i32; +pub const NLA_INTERNET_NO: NLA_INTERNET = 1i32; +pub const NLA_INTERNET_UNKNOWN: NLA_INTERNET = 0i32; +pub const NLA_INTERNET_YES: NLA_INTERNET = 2i32; +pub const NLA_NAMESPACE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6642243a_3ba8_4aa6_baa5_2e0bd71fdd83); +pub const NLA_NETWORK_AD_HOC: NLA_CONNECTIVITY_TYPE = 0i32; +pub const NLA_NETWORK_MANAGED: NLA_CONNECTIVITY_TYPE = 1i32; +pub const NLA_NETWORK_UNKNOWN: NLA_CONNECTIVITY_TYPE = 3i32; +pub const NLA_NETWORK_UNMANAGED: NLA_CONNECTIVITY_TYPE = 2i32; +pub const NLA_RAW_DATA: NLA_BLOB_DATA_TYPE = 0i32; +pub const NLA_SERVICE_CLASS_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0037e515_b5c9_4a43_bada_8b48a87ad239); +pub const NSPROTO_IPX: u32 = 1000u32; +pub const NSPROTO_SPX: u32 = 1256u32; +pub const NSPROTO_SPXII: u32 = 1257u32; +pub const NSP_NOTIFY_APC: WSACOMPLETIONTYPE = 4i32; +pub const NSP_NOTIFY_EVENT: WSACOMPLETIONTYPE = 2i32; +pub const NSP_NOTIFY_HWND: WSACOMPLETIONTYPE = 1i32; +pub const NSP_NOTIFY_IMMEDIATELY: WSACOMPLETIONTYPE = 0i32; +pub const NSP_NOTIFY_PORT: WSACOMPLETIONTYPE = 3i32; +pub const NSTYPE_DYNAMIC: u32 = 2u32; +pub const NSTYPE_ENUMERABLE: u32 = 4u32; +pub const NSTYPE_HIERARCHICAL: u32 = 1u32; +pub const NSTYPE_WORKGROUP: u32 = 8u32; +pub const NS_ALL: u32 = 0u32; +pub const NS_DEFAULT: u32 = 0u32; +pub const NS_DHCP: u32 = 6u32; +pub const NS_DNS: u32 = 12u32; +pub const NS_EMAIL: u32 = 37u32; +pub const NS_LOCALNAME: u32 = 19u32; +pub const NS_MS: u32 = 30u32; +pub const NS_NBP: u32 = 20u32; +pub const NS_NDS: u32 = 2u32; +pub const NS_NETBT: u32 = 13u32; +pub const NS_NETDES: u32 = 60u32; +pub const NS_NIS: u32 = 41u32; +pub const NS_NISPLUS: u32 = 42u32; +pub const NS_NLA: u32 = 15u32; +pub const NS_NTDS: u32 = 32u32; +pub const NS_PEER_BROWSE: u32 = 3u32; +pub const NS_SAP: u32 = 1u32; +pub const NS_SLP: u32 = 5u32; +pub const NS_STDA: u32 = 31u32; +pub const NS_TCPIP_HOSTS: u32 = 11u32; +pub const NS_TCPIP_LOCAL: u32 = 10u32; +pub const NS_VNS: u32 = 50u32; +pub const NS_WINS: u32 = 14u32; +pub const NS_WRQ: u32 = 50u32; +pub const NS_X500: u32 = 40u32; +pub const NetworkCategoryDomainAuthenticated: NL_NETWORK_CATEGORY = 2i32; +pub const NetworkCategoryPrivate: NL_NETWORK_CATEGORY = 1i32; +pub const NetworkCategoryPublic: NL_NETWORK_CATEGORY = 0i32; +pub const NetworkCategoryUnchanged: NL_NETWORK_CATEGORY = -1i32; +pub const NetworkCategoryUnknown: NL_NETWORK_CATEGORY = -1i32; +pub const NetworkConnectivityCostHintFixed: NL_NETWORK_CONNECTIVITY_COST_HINT = 2i32; +pub const NetworkConnectivityCostHintUnknown: NL_NETWORK_CONNECTIVITY_COST_HINT = 0i32; +pub const NetworkConnectivityCostHintUnrestricted: NL_NETWORK_CONNECTIVITY_COST_HINT = 1i32; +pub const NetworkConnectivityCostHintVariable: NL_NETWORK_CONNECTIVITY_COST_HINT = 3i32; +pub const NetworkConnectivityLevelHintConstrainedInternetAccess: NL_NETWORK_CONNECTIVITY_LEVEL_HINT = 4i32; +pub const NetworkConnectivityLevelHintHidden: NL_NETWORK_CONNECTIVITY_LEVEL_HINT = 5i32; +pub const NetworkConnectivityLevelHintInternetAccess: NL_NETWORK_CONNECTIVITY_LEVEL_HINT = 3i32; +pub const NetworkConnectivityLevelHintLocalAccess: NL_NETWORK_CONNECTIVITY_LEVEL_HINT = 2i32; +pub const NetworkConnectivityLevelHintNone: NL_NETWORK_CONNECTIVITY_LEVEL_HINT = 1i32; +pub const NetworkConnectivityLevelHintUnknown: NL_NETWORK_CONNECTIVITY_LEVEL_HINT = 0i32; +pub const NlatAnycast: NL_ADDRESS_TYPE = 2i32; +pub const NlatBroadcast: NL_ADDRESS_TYPE = 4i32; +pub const NlatInvalid: NL_ADDRESS_TYPE = 5i32; +pub const NlatMulticast: NL_ADDRESS_TYPE = 3i32; +pub const NlatUnicast: NL_ADDRESS_TYPE = 1i32; +pub const NlatUnspecified: NL_ADDRESS_TYPE = 0i32; +pub const NlbwDisabled: NL_BANDWIDTH_FLAG = 0i32; +pub const NlbwEnabled: NL_BANDWIDTH_FLAG = 1i32; +pub const NlbwUnchanged: NL_BANDWIDTH_FLAG = -1i32; +pub const NldsDeprecated: NL_DAD_STATE = 3i32; +pub const NldsDuplicate: NL_DAD_STATE = 2i32; +pub const NldsInvalid: NL_DAD_STATE = 0i32; +pub const NldsPreferred: NL_DAD_STATE = 4i32; +pub const NldsTentative: NL_DAD_STATE = 1i32; +pub const NlincCategoryStateMax: NL_INTERFACE_NETWORK_CATEGORY_STATE = 4i32; +pub const NlincCategoryUnknown: NL_INTERFACE_NETWORK_CATEGORY_STATE = 0i32; +pub const NlincDomainAuthenticated: NL_INTERFACE_NETWORK_CATEGORY_STATE = 3i32; +pub const NlincPrivate: NL_INTERFACE_NETWORK_CATEGORY_STATE = 2i32; +pub const NlincPublic: NL_INTERFACE_NETWORK_CATEGORY_STATE = 1i32; +pub const NlnsDelay: NL_NEIGHBOR_STATE = 3i32; +pub const NlnsIncomplete: NL_NEIGHBOR_STATE = 1i32; +pub const NlnsMaximum: NL_NEIGHBOR_STATE = 7i32; +pub const NlnsPermanent: NL_NEIGHBOR_STATE = 6i32; +pub const NlnsProbe: NL_NEIGHBOR_STATE = 2i32; +pub const NlnsReachable: NL_NEIGHBOR_STATE = 5i32; +pub const NlnsStale: NL_NEIGHBOR_STATE = 4i32; +pub const NlnsUnreachable: NL_NEIGHBOR_STATE = 0i32; +pub const Nlro6to4: NL_ROUTE_ORIGIN = 4i32; +pub const NlroDHCP: NL_ROUTE_ORIGIN = 2i32; +pub const NlroManual: NL_ROUTE_ORIGIN = 0i32; +pub const NlroRouterAdvertisement: NL_ROUTE_ORIGIN = 3i32; +pub const NlroWellKnown: NL_ROUTE_ORIGIN = 1i32; +pub const NlsoDhcp: NL_SUFFIX_ORIGIN = 3i32; +pub const NlsoLinkLayerAddress: NL_SUFFIX_ORIGIN = 4i32; +pub const NlsoManual: NL_SUFFIX_ORIGIN = 1i32; +pub const NlsoOther: NL_SUFFIX_ORIGIN = 0i32; +pub const NlsoRandom: NL_SUFFIX_ORIGIN = 5i32; +pub const NlsoWellKnown: NL_SUFFIX_ORIGIN = 2i32; +pub const PFL_HIDDEN: u32 = 4u32; +pub const PFL_MATCHES_PROTOCOL_ZERO: u32 = 8u32; +pub const PFL_MULTIPLE_PROTO_ENTRIES: u32 = 1u32; +pub const PFL_NETWORKDIRECT_PROVIDER: u32 = 16u32; +pub const PFL_RECOMMENDED_PROTO_ENTRY: u32 = 2u32; +pub const PF_APPLETALK: u16 = 16u16; +pub const PF_ATM: u16 = 22u16; +pub const PF_BAN: u16 = 21u16; +pub const PF_CCITT: u16 = 10u16; +pub const PF_CHAOS: u16 = 5u16; +pub const PF_DATAKIT: u16 = 9u16; +pub const PF_DECnet: u16 = 12u16; +pub const PF_DLI: u16 = 13u16; +pub const PF_ECMA: u16 = 8u16; +pub const PF_FIREFOX: u16 = 19u16; +pub const PF_HYLINK: u16 = 15u16; +pub const PF_IMPLINK: u16 = 3u16; +pub const PF_IPX: u16 = 6u16; +pub const PF_IRDA: u16 = 26u16; +pub const PF_ISO: u16 = 7u16; +pub const PF_LAT: u16 = 14u16; +pub const PF_MAX: u16 = 29u16; +pub const PF_NS: u16 = 6u16; +pub const PF_OSI: u16 = 7u16; +pub const PF_PUP: u16 = 4u16; +pub const PF_SNA: u16 = 11u16; +pub const PF_UNIX: u16 = 1u16; +pub const PF_UNKNOWN1: u16 = 20u16; +pub const PF_VOICEVIEW: u16 = 18u16; +pub const PI_ALLOWED: u32 = 0u32; +pub const PI_NUMBER_NOT_AVAILABLE: u32 = 128u32; +pub const PI_RESTRICTED: u32 = 64u32; +pub const POLLERR: WSAPOLL_EVENT_FLAGS = 1i16; +pub const POLLHUP: WSAPOLL_EVENT_FLAGS = 2i16; +pub const POLLIN: WSAPOLL_EVENT_FLAGS = 768i16; +pub const POLLNVAL: WSAPOLL_EVENT_FLAGS = 4i16; +pub const POLLOUT: WSAPOLL_EVENT_FLAGS = 16i16; +pub const POLLPRI: WSAPOLL_EVENT_FLAGS = 1024i16; +pub const POLLRDBAND: WSAPOLL_EVENT_FLAGS = 512i16; +pub const POLLRDNORM: WSAPOLL_EVENT_FLAGS = 256i16; +pub const POLLWRBAND: WSAPOLL_EVENT_FLAGS = 32i16; +pub const POLLWRNORM: WSAPOLL_EVENT_FLAGS = 16i16; +pub const PROP_ADDRESSES: u32 = 256u32; +pub const PROP_ALL: u32 = 2147483648u32; +pub const PROP_COMMENT: u32 = 1u32; +pub const PROP_DISPLAY_HINT: u32 = 4u32; +pub const PROP_LOCALE: u32 = 2u32; +pub const PROP_MACHINE: u32 = 32u32; +pub const PROP_SD: u32 = 512u32; +pub const PROP_START_TIME: u32 = 16u32; +pub const PROP_VERSION: u32 = 8u32; +pub const PROTECTION_LEVEL_DEFAULT: u32 = 20u32; +pub const PROTECTION_LEVEL_EDGERESTRICTED: u32 = 20u32; +pub const PROTECTION_LEVEL_RESTRICTED: u32 = 30u32; +pub const PROTECTION_LEVEL_UNRESTRICTED: u32 = 10u32; +pub const PROTO_IP_BBN: NL_ROUTE_PROTOCOL = 12i32; +pub const PROTO_IP_BGP: NL_ROUTE_PROTOCOL = 14i32; +pub const PROTO_IP_CISCO: NL_ROUTE_PROTOCOL = 11i32; +pub const PROTO_IP_DHCP: NL_ROUTE_PROTOCOL = 19i32; +pub const PROTO_IP_DVMRP: NL_ROUTE_PROTOCOL = 17i32; +pub const PROTO_IP_EGP: NL_ROUTE_PROTOCOL = 5i32; +pub const PROTO_IP_EIGRP: NL_ROUTE_PROTOCOL = 16i32; +pub const PROTO_IP_ES_IS: NL_ROUTE_PROTOCOL = 10i32; +pub const PROTO_IP_GGP: NL_ROUTE_PROTOCOL = 6i32; +pub const PROTO_IP_HELLO: NL_ROUTE_PROTOCOL = 7i32; +pub const PROTO_IP_ICMP: NL_ROUTE_PROTOCOL = 4i32; +pub const PROTO_IP_IDPR: NL_ROUTE_PROTOCOL = 15i32; +pub const PROTO_IP_IS_IS: NL_ROUTE_PROTOCOL = 9i32; +pub const PROTO_IP_LOCAL: NL_ROUTE_PROTOCOL = 2i32; +pub const PROTO_IP_NETMGMT: NL_ROUTE_PROTOCOL = 3i32; +pub const PROTO_IP_NT_AUTOSTATIC: NL_ROUTE_PROTOCOL = 10002i32; +pub const PROTO_IP_NT_STATIC: NL_ROUTE_PROTOCOL = 10006i32; +pub const PROTO_IP_NT_STATIC_NON_DOD: NL_ROUTE_PROTOCOL = 10007i32; +pub const PROTO_IP_OSPF: NL_ROUTE_PROTOCOL = 13i32; +pub const PROTO_IP_OTHER: NL_ROUTE_PROTOCOL = 1i32; +pub const PROTO_IP_RIP: NL_ROUTE_PROTOCOL = 8i32; +pub const PROTO_IP_RPL: NL_ROUTE_PROTOCOL = 18i32; +pub const PVD_CONFIG: i32 = 12289i32; +pub const ProviderInfoAudit: WSC_PROVIDER_INFO_TYPE = 1i32; +pub const ProviderInfoLspCategories: WSC_PROVIDER_INFO_TYPE = 0i32; +pub const ProviderLevel_None: NAPI_PROVIDER_LEVEL = 0i32; +pub const ProviderLevel_Primary: NAPI_PROVIDER_LEVEL = 2i32; +pub const ProviderLevel_Secondary: NAPI_PROVIDER_LEVEL = 1i32; +pub const ProviderType_Application: NAPI_PROVIDER_TYPE = 1i32; +pub const ProviderType_Service: NAPI_PROVIDER_TYPE = 2i32; +pub const QOS_CLASS0: u32 = 0u32; +pub const QOS_CLASS1: u32 = 1u32; +pub const QOS_CLASS2: u32 = 2u32; +pub const QOS_CLASS3: u32 = 3u32; +pub const QOS_CLASS4: u32 = 4u32; +pub const RCVALL_IPLEVEL: RCVALL_VALUE = 3i32; +pub const RCVALL_OFF: RCVALL_VALUE = 0i32; +pub const RCVALL_ON: RCVALL_VALUE = 1i32; +pub const RCVALL_SOCKETLEVELONLY: RCVALL_VALUE = 2i32; +pub const REAL_TIME_NOTIFICATION_CAPABILITY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6b59819a_5cae_492d_a901_2a3c2c50164f); +pub const REAL_TIME_NOTIFICATION_CAPABILITY_EX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6843da03_154a_4616_a508_44371295f96b); +pub const RESOURCEDISPLAYTYPE_DOMAIN: RESOURCE_DISPLAY_TYPE = 1u32; +pub const RESOURCEDISPLAYTYPE_FILE: RESOURCE_DISPLAY_TYPE = 4u32; +pub const RESOURCEDISPLAYTYPE_GENERIC: RESOURCE_DISPLAY_TYPE = 0u32; +pub const RESOURCEDISPLAYTYPE_GROUP: RESOURCE_DISPLAY_TYPE = 5u32; +pub const RESOURCEDISPLAYTYPE_SERVER: RESOURCE_DISPLAY_TYPE = 2u32; +pub const RESOURCEDISPLAYTYPE_SHARE: RESOURCE_DISPLAY_TYPE = 3u32; +pub const RESOURCEDISPLAYTYPE_TREE: RESOURCE_DISPLAY_TYPE = 10u32; +pub const RESULT_IS_ADDED: u32 = 16u32; +pub const RESULT_IS_ALIAS: u32 = 1u32; +pub const RESULT_IS_CHANGED: u32 = 32u32; +pub const RESULT_IS_DELETED: u32 = 64u32; +pub const RES_FIND_MULTIPLE: u32 = 2u32; +pub const RES_FLUSH_CACHE: u32 = 2u32; +pub const RES_SERVICE: u32 = 4u32; +pub const RES_SOFT_SEARCH: u32 = 1u32; +pub const RES_UNUSED_1: u32 = 1u32; +pub const RIO_CORRUPT_CQ: u32 = 4294967295u32; +pub const RIO_EVENT_COMPLETION: RIO_NOTIFICATION_COMPLETION_TYPE = 1i32; +pub const RIO_IOCP_COMPLETION: RIO_NOTIFICATION_COMPLETION_TYPE = 2i32; +pub const RIO_MAX_CQ_SIZE: u32 = 134217728u32; +pub const RIO_MSG_COMMIT_ONLY: u32 = 8u32; +pub const RIO_MSG_DEFER: u32 = 2u32; +pub const RIO_MSG_DONT_NOTIFY: u32 = 1u32; +pub const RIO_MSG_WAITALL: u32 = 4u32; +pub const RM_ADD_RECEIVE_IF: i32 = 1008i32; +pub const RM_DEL_RECEIVE_IF: i32 = 1009i32; +pub const RM_FLUSHCACHE: i32 = 1003i32; +pub const RM_HIGH_SPEED_INTRANET_OPT: i32 = 1014i32; +pub const RM_LATEJOIN: i32 = 1006i32; +pub const RM_OPTIONSBASE: i32 = 1000i32; +pub const RM_RATE_WINDOW_SIZE: i32 = 1001i32; +pub const RM_RECEIVER_STATISTICS: i32 = 1013i32; +pub const RM_SENDER_STATISTICS: i32 = 1005i32; +pub const RM_SENDER_WINDOW_ADVANCE_METHOD: i32 = 1004i32; +pub const RM_SEND_WINDOW_ADV_RATE: i32 = 1010i32; +pub const RM_SET_MCAST_TTL: i32 = 1012i32; +pub const RM_SET_MESSAGE_BOUNDARY: i32 = 1002i32; +pub const RM_SET_SEND_IF: i32 = 1007i32; +pub const RM_USE_FEC: i32 = 1011i32; +pub const RNRSERVICE_DELETE: WSAESETSERVICEOP = 2i32; +pub const RNRSERVICE_DEREGISTER: WSAESETSERVICEOP = 1i32; +pub const RNRSERVICE_REGISTER: WSAESETSERVICEOP = 0i32; +pub const RouteProtocolBbn: NL_ROUTE_PROTOCOL = 12i32; +pub const RouteProtocolBgp: NL_ROUTE_PROTOCOL = 14i32; +pub const RouteProtocolCisco: NL_ROUTE_PROTOCOL = 11i32; +pub const RouteProtocolDhcp: NL_ROUTE_PROTOCOL = 19i32; +pub const RouteProtocolDvmrp: NL_ROUTE_PROTOCOL = 17i32; +pub const RouteProtocolEgp: NL_ROUTE_PROTOCOL = 5i32; +pub const RouteProtocolEigrp: NL_ROUTE_PROTOCOL = 16i32; +pub const RouteProtocolEsIs: NL_ROUTE_PROTOCOL = 10i32; +pub const RouteProtocolGgp: NL_ROUTE_PROTOCOL = 6i32; +pub const RouteProtocolHello: NL_ROUTE_PROTOCOL = 7i32; +pub const RouteProtocolIcmp: NL_ROUTE_PROTOCOL = 4i32; +pub const RouteProtocolIdpr: NL_ROUTE_PROTOCOL = 15i32; +pub const RouteProtocolIsIs: NL_ROUTE_PROTOCOL = 9i32; +pub const RouteProtocolLocal: NL_ROUTE_PROTOCOL = 2i32; +pub const RouteProtocolNetMgmt: NL_ROUTE_PROTOCOL = 3i32; +pub const RouteProtocolOspf: NL_ROUTE_PROTOCOL = 13i32; +pub const RouteProtocolOther: NL_ROUTE_PROTOCOL = 1i32; +pub const RouteProtocolRip: NL_ROUTE_PROTOCOL = 8i32; +pub const RouteProtocolRpl: NL_ROUTE_PROTOCOL = 18i32; +pub const RouterDiscoveryDhcp: NL_ROUTER_DISCOVERY_BEHAVIOR = 2i32; +pub const RouterDiscoveryDisabled: NL_ROUTER_DISCOVERY_BEHAVIOR = 0i32; +pub const RouterDiscoveryEnabled: NL_ROUTER_DISCOVERY_BEHAVIOR = 1i32; +pub const RouterDiscoveryUnchanged: NL_ROUTER_DISCOVERY_BEHAVIOR = -1i32; +pub const SAP_FIELD_ABSENT: u32 = 4294967294u32; +pub const SAP_FIELD_ANY: u32 = 4294967295u32; +pub const SAP_FIELD_ANY_AESA_REST: u32 = 4294967291u32; +pub const SAP_FIELD_ANY_AESA_SEL: u32 = 4294967290u32; +pub const SD_BOTH: WINSOCK_SHUTDOWN_HOW = 2i32; +pub const SD_RECEIVE: WINSOCK_SHUTDOWN_HOW = 0i32; +pub const SD_SEND: WINSOCK_SHUTDOWN_HOW = 1i32; +pub const SECURITY_PROTOCOL_NONE: u32 = 0u32; +pub const SENDER_DEFAULT_LATE_JOINER_PERCENTAGE: u32 = 0u32; +pub const SENDER_DEFAULT_RATE_KBITS_PER_SEC: u32 = 56u32; +pub const SENDER_DEFAULT_WINDOW_ADV_PERCENTAGE: u32 = 15u32; +pub const SENDER_MAX_LATE_JOINER_PERCENTAGE: u32 = 75u32; +pub const SERVICE_ADDRESS_FLAG_RPC_CN: u32 = 1u32; +pub const SERVICE_ADDRESS_FLAG_RPC_DG: u32 = 2u32; +pub const SERVICE_ADDRESS_FLAG_RPC_NB: u32 = 4u32; +pub const SERVICE_ADD_TYPE: SET_SERVICE_OPERATION = 4u32; +pub const SERVICE_DELETE_TYPE: SET_SERVICE_OPERATION = 5u32; +pub const SERVICE_DEREGISTER: SET_SERVICE_OPERATION = 2u32; +pub const SERVICE_FLAG_DEFER: u32 = 1u32; +pub const SERVICE_FLAG_HARD: u32 = 2u32; +pub const SERVICE_FLUSH: SET_SERVICE_OPERATION = 3u32; +pub const SERVICE_LOCAL: u32 = 4u32; +pub const SERVICE_MULTIPLE: u32 = 1u32; +pub const SERVICE_REGISTER: SET_SERVICE_OPERATION = 1u32; +pub const SERVICE_RESOURCE: u32 = 1u32; +pub const SERVICE_SERVICE: u32 = 2u32; +pub const SERVICE_TYPE_VALUE_CONN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConnectionOriented"); +pub const SERVICE_TYPE_VALUE_CONNA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ConnectionOriented"); +pub const SERVICE_TYPE_VALUE_CONNW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConnectionOriented"); +pub const SERVICE_TYPE_VALUE_IPXPORTA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IpxSocket"); +pub const SERVICE_TYPE_VALUE_IPXPORTW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IpxSocket"); +pub const SERVICE_TYPE_VALUE_OBJECTID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ObjectId"); +pub const SERVICE_TYPE_VALUE_OBJECTIDA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ObjectId"); +pub const SERVICE_TYPE_VALUE_OBJECTIDW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ObjectId"); +pub const SERVICE_TYPE_VALUE_SAPID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SapId"); +pub const SERVICE_TYPE_VALUE_SAPIDA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SapId"); +pub const SERVICE_TYPE_VALUE_SAPIDW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SapId"); +pub const SERVICE_TYPE_VALUE_TCPPORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TcpPort"); +pub const SERVICE_TYPE_VALUE_TCPPORTA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("TcpPort"); +pub const SERVICE_TYPE_VALUE_TCPPORTW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TcpPort"); +pub const SERVICE_TYPE_VALUE_UDPPORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UdpPort"); +pub const SERVICE_TYPE_VALUE_UDPPORTA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("UdpPort"); +pub const SERVICE_TYPE_VALUE_UDPPORTW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UdpPort"); +pub const SET_SERVICE_PARTIAL_SUCCESS: u32 = 1u32; +pub const SG_CONSTRAINED_GROUP: u32 = 2u32; +pub const SG_UNCONSTRAINED_GROUP: u32 = 1u32; +pub const SIOCATMARK: i32 = 1074033415i32; +pub const SIOCGHIWAT: i32 = 1074033409i32; +pub const SIOCGLOWAT: i32 = 1074033411i32; +pub const SIOCSHIWAT: i32 = -2147192064i32; +pub const SIOCSLOWAT: i32 = -2147192062i32; +pub const SIO_ABSORB_RTRALERT: u32 = 2550136837u32; +pub const SIO_ACQUIRE_PORT_RESERVATION: u32 = 2550136932u32; +pub const SIO_ADDRESS_LIST_CHANGE: u32 = 671088663u32; +pub const SIO_ADDRESS_LIST_QUERY: u32 = 1207959574u32; +pub const SIO_ADDRESS_LIST_SORT: u32 = 3355443225u32; +pub const SIO_AF_UNIX_GETPEERPID: u32 = 1476395264u32; +pub const SIO_AF_UNIX_SETBINDPARENTPATH: u32 = 2550137089u32; +pub const SIO_AF_UNIX_SETCONNPARENTPATH: u32 = 2550137090u32; +pub const SIO_APPLY_TRANSPORT_SETTING: u32 = 2550136851u32; +pub const SIO_ASSOCIATE_HANDLE: u32 = 2281701377u32; +pub const SIO_ASSOCIATE_PORT_RESERVATION: u32 = 2550136934u32; +pub const SIO_ASSOCIATE_PVC: u32 = 2417360899u32; +pub const SIO_BASE_HANDLE: u32 = 1207959586u32; +pub const SIO_BSP_HANDLE: u32 = 1207959579u32; +pub const SIO_BSP_HANDLE_POLL: u32 = 1207959581u32; +pub const SIO_BSP_HANDLE_SELECT: u32 = 1207959580u32; +pub const SIO_CPU_AFFINITY: u32 = 2550136853u32; +pub const SIO_DELETE_PEER_TARGET_NAME: u32 = 2550137035u32; +pub const SIO_ENABLE_CIRCULAR_QUEUEING: u32 = 671088642u32; +pub const SIO_EXT_POLL: u32 = 3355443231u32; +pub const SIO_EXT_SELECT: u32 = 3355443230u32; +pub const SIO_EXT_SENDMSG: u32 = 3355443232u32; +pub const SIO_FIND_ROUTE: u32 = 1207959555u32; +pub const SIO_FLUSH: u32 = 671088644u32; +pub const SIO_GET_ATM_ADDRESS: u32 = 3491102722u32; +pub const SIO_GET_ATM_CONNECTION_ID: u32 = 1343619076u32; +pub const SIO_GET_BROADCAST_ADDRESS: u32 = 1207959557u32; +pub const SIO_GET_EXTENSION_FUNCTION_POINTER: u32 = 3355443206u32; +pub const SIO_GET_GROUP_QOS: u32 = 3355443208u32; +pub const SIO_GET_MULTIPLE_EXTENSION_FUNCTION_POINTER: u32 = 3355443236u32; +pub const SIO_GET_NUMBER_OF_ATM_DEVICES: u32 = 1343619073u32; +pub const SIO_GET_QOS: u32 = 3355443207u32; +pub const SIO_GET_TX_TIMESTAMP: u32 = 2550137066u32; +pub const SIO_INDEX_ADD_MCAST: u32 = 2550136842u32; +pub const SIO_INDEX_BIND: u32 = 2550136840u32; +pub const SIO_INDEX_DEL_MCAST: u32 = 2550136843u32; +pub const SIO_INDEX_MCASTIF: u32 = 2550136841u32; +pub const SIO_KEEPALIVE_VALS: u32 = 2550136836u32; +pub const SIO_LIMIT_BROADCASTS: u32 = 2550136839u32; +pub const SIO_LOOPBACK_FAST_PATH: u32 = 2550136848u32; +pub const SIO_MULTICAST_SCOPE: u32 = 2281701386u32; +pub const SIO_MULTIPOINT_LOOPBACK: u32 = 2281701385u32; +pub const SIO_NSP_NOTIFY_CHANGE: u32 = 2281701401u32; +pub const SIO_PRIORITY_HINT: u32 = 2550136856u32; +pub const SIO_QUERY_RSS_PROCESSOR_INFO: u32 = 1207959589u32; +pub const SIO_QUERY_RSS_SCALABILITY_INFO: u32 = 1476395218u32; +pub const SIO_QUERY_SECURITY: u32 = 3623878857u32; +pub const SIO_QUERY_TARGET_PNP_HANDLE: u32 = 1207959576u32; +pub const SIO_QUERY_TRANSPORT_SETTING: u32 = 2550136852u32; +pub const SIO_QUERY_WFP_ALE_ENDPOINT_HANDLE: u32 = 1476395213u32; +pub const SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT: u32 = 2550137053u32; +pub const SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS: u32 = 2550137052u32; +pub const SIO_RCVALL: u32 = 2550136833u32; +pub const SIO_RCVALL_IF: u32 = 2550136846u32; +pub const SIO_RCVALL_IGMPMCAST: u32 = 2550136835u32; +pub const SIO_RCVALL_MCAST: u32 = 2550136834u32; +pub const SIO_RCVALL_MCAST_IF: u32 = 2550136845u32; +pub const SIO_RELEASE_PORT_RESERVATION: u32 = 2550136933u32; +pub const SIO_RESERVED_1: u32 = 2281701402u32; +pub const SIO_RESERVED_2: u32 = 2281701409u32; +pub const SIO_ROUTING_INTERFACE_CHANGE: u32 = 2281701397u32; +pub const SIO_ROUTING_INTERFACE_QUERY: u32 = 3355443220u32; +pub const SIO_SET_COMPATIBILITY_MODE: u32 = 2550137132u32; +pub const SIO_SET_GROUP_QOS: u32 = 2281701388u32; +pub const SIO_SET_PEER_TARGET_NAME: u32 = 2550137034u32; +pub const SIO_SET_PRIORITY_HINT: u32 = 2550136856u32; +pub const SIO_SET_QOS: u32 = 2281701387u32; +pub const SIO_SET_SECURITY: u32 = 2550137032u32; +pub const SIO_SET_WFP_CONNECTION_REDIRECT_RECORDS: u32 = 2550137054u32; +pub const SIO_SOCKET_CLOSE_NOTIFY: u32 = 2550136845u32; +pub const SIO_SOCKET_USAGE_NOTIFICATION: u32 = 2550137036u32; +pub const SIO_TCP_INFO: u32 = 3623878695u32; +pub const SIO_TCP_INITIAL_RTO: u32 = 2550136849u32; +pub const SIO_TCP_SET_ACK_FREQUENCY: u32 = 2550136855u32; +pub const SIO_TCP_SET_ICW: u32 = 2550136854u32; +pub const SIO_TIMESTAMPING: u32 = 2550137067u32; +pub const SIO_TRANSLATE_HANDLE: u32 = 3355443213u32; +pub const SIO_UCAST_IF: u32 = 2550136838u32; +pub const SIO_UDP_CONNRESET: u32 = 2550136844u32; +pub const SIO_UDP_NETRESET: u32 = 2550136847u32; +pub const SIZEOF_IP_OPT_ROUTERALERT: u32 = 4u32; +pub const SIZEOF_IP_OPT_ROUTING_HEADER: u32 = 3u32; +pub const SIZEOF_IP_OPT_SECURITY: u32 = 11u32; +pub const SIZEOF_IP_OPT_STREAMIDENTIFIER: u32 = 4u32; +pub const SIZEOF_IP_OPT_TIMESTAMP_HEADER: u32 = 4u32; +pub const SI_NETWORK: u32 = 3u32; +pub const SI_USER_FAILED: u32 = 2u32; +pub const SI_USER_NOT_SCREENED: u32 = 0u32; +pub const SI_USER_PASSED: u32 = 1u32; +pub const SNAP_CONTROL: u32 = 3u32; +pub const SNAP_DSAP: u32 = 170u32; +pub const SNAP_OUI: u32 = 0u32; +pub const SNAP_SSAP: u32 = 170u32; +pub const SOCKET_DEFAULT2_QM_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaec2ef9c_3a4d_4d3e_8842_239942e39a47); +pub const SOCKET_ERROR: i32 = -1i32; +pub const SOCKET_INFO_CONNECTION_ENCRYPTED: u32 = 2u32; +pub const SOCKET_INFO_CONNECTION_IMPERSONATED: u32 = 4u32; +pub const SOCKET_INFO_CONNECTION_SECURED: u32 = 1u32; +pub const SOCKET_QUERY_IPSEC2_ABORT_CONNECTION_ON_FIELD_CHANGE: u32 = 1u32; +pub const SOCKET_QUERY_IPSEC2_FIELD_MASK_MM_SA_ID: u32 = 1u32; +pub const SOCKET_QUERY_IPSEC2_FIELD_MASK_QM_SA_ID: u32 = 2u32; +pub const SOCKET_SECURITY_PROTOCOL_DEFAULT: SOCKET_SECURITY_PROTOCOL = 0i32; +pub const SOCKET_SECURITY_PROTOCOL_INVALID: SOCKET_SECURITY_PROTOCOL = 3i32; +pub const SOCKET_SECURITY_PROTOCOL_IPSEC: SOCKET_SECURITY_PROTOCOL = 1i32; +pub const SOCKET_SECURITY_PROTOCOL_IPSEC2: SOCKET_SECURITY_PROTOCOL = 2i32; +pub const SOCKET_SETTINGS_ALLOW_INSECURE: u32 = 2u32; +pub const SOCKET_SETTINGS_GUARANTEE_ENCRYPTION: u32 = 1u32; +pub const SOCKET_SETTINGS_IPSEC_ALLOW_FIRST_INBOUND_PKT_UNENCRYPTED: u32 = 4u32; +pub const SOCKET_SETTINGS_IPSEC_OPTIONAL_PEER_NAME_VERIFICATION: u32 = 2u32; +pub const SOCKET_SETTINGS_IPSEC_PEER_NAME_IS_RAW_FORMAT: u32 = 8u32; +pub const SOCKET_SETTINGS_IPSEC_SKIP_FILTER_INSTANTIATION: u32 = 1u32; +pub const SOCK_DGRAM: WINSOCK_SOCKET_TYPE = 2i32; +pub const SOCK_NOTIFY_EVENT_ERR: u32 = 64u32; +pub const SOCK_NOTIFY_EVENT_HANGUP: u32 = 4u32; +pub const SOCK_NOTIFY_EVENT_IN: u32 = 1u32; +pub const SOCK_NOTIFY_EVENT_OUT: u32 = 2u32; +pub const SOCK_NOTIFY_EVENT_REMOVE: u32 = 128u32; +pub const SOCK_NOTIFY_OP_DISABLE: u32 = 2u32; +pub const SOCK_NOTIFY_OP_ENABLE: u32 = 1u32; +pub const SOCK_NOTIFY_OP_NONE: u32 = 0u32; +pub const SOCK_NOTIFY_OP_REMOVE: u32 = 4u32; +pub const SOCK_NOTIFY_REGISTER_EVENT_HANGUP: u32 = 4u32; +pub const SOCK_NOTIFY_REGISTER_EVENT_IN: u32 = 1u32; +pub const SOCK_NOTIFY_REGISTER_EVENT_NONE: u32 = 0u32; +pub const SOCK_NOTIFY_REGISTER_EVENT_OUT: u32 = 2u32; +pub const SOCK_NOTIFY_TRIGGER_EDGE: u32 = 8u32; +pub const SOCK_NOTIFY_TRIGGER_LEVEL: u32 = 4u32; +pub const SOCK_NOTIFY_TRIGGER_ONESHOT: u32 = 1u32; +pub const SOCK_NOTIFY_TRIGGER_PERSISTENT: u32 = 2u32; +pub const SOCK_RAW: WINSOCK_SOCKET_TYPE = 3i32; +pub const SOCK_RDM: WINSOCK_SOCKET_TYPE = 4i32; +pub const SOCK_SEQPACKET: WINSOCK_SOCKET_TYPE = 5i32; +pub const SOCK_STREAM: WINSOCK_SOCKET_TYPE = 1i32; +pub const SOL_IP: u32 = 65531u32; +pub const SOL_IPV6: u32 = 65530u32; +pub const SOL_IRLMP: i32 = 255i32; +pub const SOL_SOCKET: i32 = 65535i32; +pub const SOMAXCONN: u32 = 5u32; +pub const SO_ACCEPTCONN: i32 = 2i32; +pub const SO_BROADCAST: i32 = 32i32; +pub const SO_BSP_STATE: i32 = 4105i32; +pub const SO_COMPARTMENT_ID: u32 = 12292u32; +pub const SO_CONDITIONAL_ACCEPT: i32 = 12290i32; +pub const SO_CONNDATA: i32 = 28672i32; +pub const SO_CONNDATALEN: i32 = 28676i32; +pub const SO_CONNECT_TIME: i32 = 28684i32; +pub const SO_CONNOPT: i32 = 28673i32; +pub const SO_CONNOPTLEN: i32 = 28677i32; +pub const SO_DEBUG: i32 = 1i32; +pub const SO_DISCDATA: i32 = 28674i32; +pub const SO_DISCDATALEN: i32 = 28678i32; +pub const SO_DISCOPT: i32 = 28675i32; +pub const SO_DISCOPTLEN: i32 = 28679i32; +pub const SO_DONTROUTE: i32 = 16i32; +pub const SO_ERROR: i32 = 4103i32; +pub const SO_GROUP_ID: i32 = 8193i32; +pub const SO_GROUP_PRIORITY: i32 = 8194i32; +pub const SO_KEEPALIVE: i32 = 8i32; +pub const SO_LINGER: i32 = 128i32; +pub const SO_MAXDG: i32 = 28681i32; +pub const SO_MAXPATHDG: i32 = 28682i32; +pub const SO_MAX_MSG_SIZE: i32 = 8195i32; +pub const SO_OOBINLINE: i32 = 256i32; +pub const SO_OPENTYPE: i32 = 28680i32; +pub const SO_ORIGINAL_DST: u32 = 12303u32; +pub const SO_PAUSE_ACCEPT: u32 = 12291u32; +pub const SO_PORT_SCALABILITY: i32 = 12294i32; +pub const SO_PROTOCOL_INFO: i32 = 8197i32; +pub const SO_PROTOCOL_INFOA: i32 = 8196i32; +pub const SO_PROTOCOL_INFOW: i32 = 8197i32; +pub const SO_RANDOMIZE_PORT: i32 = 12293i32; +pub const SO_RCVBUF: i32 = 4098i32; +pub const SO_RCVLOWAT: i32 = 4100i32; +pub const SO_RCVTIMEO: i32 = 4102i32; +pub const SO_REUSEADDR: i32 = 4i32; +pub const SO_REUSE_MULTICASTPORT: i32 = 12296i32; +pub const SO_REUSE_UNICASTPORT: i32 = 12295i32; +pub const SO_SNDBUF: i32 = 4097i32; +pub const SO_SNDLOWAT: i32 = 4099i32; +pub const SO_SNDTIMEO: i32 = 4101i32; +pub const SO_SYNCHRONOUS_ALERT: u32 = 16u32; +pub const SO_SYNCHRONOUS_NONALERT: u32 = 32u32; +pub const SO_TIMESTAMP: u32 = 12298u32; +pub const SO_TIMESTAMP_ID: u32 = 12299u32; +pub const SO_TYPE: i32 = 4104i32; +pub const SO_UPDATE_ACCEPT_CONTEXT: i32 = 28683i32; +pub const SO_UPDATE_CONNECT_CONTEXT: i32 = 28688i32; +pub const SO_USELOOPBACK: i32 = 64i32; +pub const SYSTEM_CRITICAL_SOCKET: SOCKET_USAGE_TYPE = 1i32; +pub const ScopeLevelAdmin: SCOPE_LEVEL = 4i32; +pub const ScopeLevelCount: SCOPE_LEVEL = 16i32; +pub const ScopeLevelGlobal: SCOPE_LEVEL = 14i32; +pub const ScopeLevelInterface: SCOPE_LEVEL = 1i32; +pub const ScopeLevelLink: SCOPE_LEVEL = 2i32; +pub const ScopeLevelOrganization: SCOPE_LEVEL = 8i32; +pub const ScopeLevelSite: SCOPE_LEVEL = 5i32; +pub const ScopeLevelSubnet: SCOPE_LEVEL = 3i32; +pub const SocketMaximumPriorityHintType: SOCKET_PRIORITY_HINT = 3i32; +pub const SocketPriorityHintLow: SOCKET_PRIORITY_HINT = 1i32; +pub const SocketPriorityHintNormal: SOCKET_PRIORITY_HINT = 2i32; +pub const SocketPriorityHintVeryLow: SOCKET_PRIORITY_HINT = 0i32; +pub const TCPSTATE_CLOSED: TCPSTATE = 0i32; +pub const TCPSTATE_CLOSE_WAIT: TCPSTATE = 7i32; +pub const TCPSTATE_CLOSING: TCPSTATE = 8i32; +pub const TCPSTATE_ESTABLISHED: TCPSTATE = 4i32; +pub const TCPSTATE_FIN_WAIT_1: TCPSTATE = 5i32; +pub const TCPSTATE_FIN_WAIT_2: TCPSTATE = 6i32; +pub const TCPSTATE_LAST_ACK: TCPSTATE = 9i32; +pub const TCPSTATE_LISTEN: TCPSTATE = 1i32; +pub const TCPSTATE_MAX: TCPSTATE = 11i32; +pub const TCPSTATE_SYN_RCVD: TCPSTATE = 3i32; +pub const TCPSTATE_SYN_SENT: TCPSTATE = 2i32; +pub const TCPSTATE_TIME_WAIT: TCPSTATE = 10i32; +pub const TCP_ATMARK: i32 = 8i32; +pub const TCP_BSDURGENT: i32 = 28672i32; +pub const TCP_CONGESTION_ALGORITHM: i32 = 12i32; +pub const TCP_DELAY_FIN_ACK: i32 = 13i32; +pub const TCP_EXPEDITED_1122: i32 = 2i32; +pub const TCP_FAIL_CONNECT_ON_ICMP_ERROR: i32 = 18i32; +pub const TCP_FASTOPEN: i32 = 15i32; +pub const TCP_ICMP_ERROR_INFO: i32 = 19i32; +pub const TCP_ICW_LEVEL_AGGRESSIVE: TCP_ICW_LEVEL = 3i32; +pub const TCP_ICW_LEVEL_COMPAT: TCP_ICW_LEVEL = 254i32; +pub const TCP_ICW_LEVEL_DEFAULT: TCP_ICW_LEVEL = 0i32; +pub const TCP_ICW_LEVEL_EXPERIMENTAL: TCP_ICW_LEVEL = 4i32; +pub const TCP_ICW_LEVEL_HIGH: TCP_ICW_LEVEL = 1i32; +pub const TCP_ICW_LEVEL_MAX: TCP_ICW_LEVEL = 255i32; +pub const TCP_ICW_LEVEL_VERY_HIGH: TCP_ICW_LEVEL = 2i32; +pub const TCP_INITIAL_RTO_DEFAULT_MAX_SYN_RETRANSMISSIONS: u32 = 0u32; +pub const TCP_INITIAL_RTO_DEFAULT_RTT: u32 = 0u32; +pub const TCP_INITIAL_RTO_NO_SYN_RETRANSMISSIONS: u16 = 65534u16; +pub const TCP_INITIAL_RTO_UNSPECIFIED_MAX_SYN_RETRANSMISSIONS: u16 = 65535u16; +pub const TCP_KEEPALIVE: i32 = 3i32; +pub const TCP_KEEPCNT: i32 = 16i32; +pub const TCP_KEEPIDLE: i32 = 3i32; +pub const TCP_KEEPINTVL: i32 = 17i32; +pub const TCP_MAXRT: i32 = 5i32; +pub const TCP_MAXRTMS: i32 = 14i32; +pub const TCP_MAXSEG: i32 = 4i32; +pub const TCP_NODELAY: i32 = 1i32; +pub const TCP_NOSYNRETRIES: i32 = 9i32; +pub const TCP_NOURG: i32 = 7i32; +pub const TCP_OFFLOAD_NOT_PREFERRED: i32 = 1i32; +pub const TCP_OFFLOAD_NO_PREFERENCE: i32 = 0i32; +pub const TCP_OFFLOAD_PREFERENCE: i32 = 11i32; +pub const TCP_OFFLOAD_PREFERRED: i32 = 2i32; +pub const TCP_STDURG: i32 = 6i32; +pub const TCP_TIMESTAMPS: i32 = 10i32; +pub const TF_DISCONNECT: u32 = 1u32; +pub const TF_REUSE_SOCKET: u32 = 2u32; +pub const TF_USE_DEFAULT_WORKER: u32 = 0u32; +pub const TF_USE_KERNEL_APC: u32 = 32u32; +pub const TF_USE_SYSTEM_THREAD: u32 = 16u32; +pub const TF_WRITE_BEHIND: u32 = 4u32; +pub const TH_ACK: u32 = 16u32; +pub const TH_CWR: u32 = 128u32; +pub const TH_ECE: u32 = 64u32; +pub const TH_FIN: u32 = 1u32; +pub const TH_NETDEV: u32 = 1u32; +pub const TH_OPT_EOL: u32 = 0u32; +pub const TH_OPT_FASTOPEN: u32 = 34u32; +pub const TH_OPT_MSS: u32 = 2u32; +pub const TH_OPT_NOP: u32 = 1u32; +pub const TH_OPT_SACK: u32 = 5u32; +pub const TH_OPT_SACK_PERMITTED: u32 = 4u32; +pub const TH_OPT_TS: u32 = 8u32; +pub const TH_OPT_WS: u32 = 3u32; +pub const TH_PSH: u32 = 8u32; +pub const TH_RST: u32 = 4u32; +pub const TH_SYN: u32 = 2u32; +pub const TH_TAPI: u32 = 2u32; +pub const TH_URG: u32 = 32u32; +pub const TIMESTAMPING_FLAG_RX: u32 = 1u32; +pub const TIMESTAMPING_FLAG_TX: u32 = 2u32; +pub const TNS_PLAN_CARRIER_ID_CODE: u32 = 1u32; +pub const TNS_TYPE_NATIONAL: u32 = 64u32; +pub const TP_DISCONNECT: u32 = 1u32; +pub const TP_ELEMENT_EOP: u32 = 4u32; +pub const TP_ELEMENT_FILE: u32 = 2u32; +pub const TP_ELEMENT_MEMORY: u32 = 1u32; +pub const TP_REUSE_SOCKET: u32 = 2u32; +pub const TP_USE_DEFAULT_WORKER: u32 = 0u32; +pub const TP_USE_KERNEL_APC: u32 = 32u32; +pub const TP_USE_SYSTEM_THREAD: u32 = 16u32; +pub const TR_END_TO_END: u32 = 1u32; +pub const TR_NOIND: u32 = 0u32; +pub const TR_NO_END_TO_END: u32 = 2u32; +pub const TT_CBR: u32 = 4u32; +pub const TT_NOIND: u32 = 0u32; +pub const TT_VBR: u32 = 8u32; +pub const TUNNEL_SUB_TYPE_CP: TUNNEL_SUB_TYPE = 1i32; +pub const TUNNEL_SUB_TYPE_HA: TUNNEL_SUB_TYPE = 3i32; +pub const TUNNEL_SUB_TYPE_IPTLS: TUNNEL_SUB_TYPE = 2i32; +pub const TUNNEL_SUB_TYPE_NONE: TUNNEL_SUB_TYPE = 0i32; +pub const UDP_CHECKSUM_COVERAGE: i32 = 20i32; +pub const UDP_COALESCED_INFO: u32 = 3u32; +pub const UDP_NOCHECKSUM: i32 = 1i32; +pub const UDP_RECV_MAX_COALESCED_SIZE: i32 = 3i32; +pub const UDP_SEND_MSG_SIZE: i32 = 2i32; +pub const UNIX_PATH_MAX: u32 = 108u32; +pub const UP_P2MP: u32 = 1u32; +pub const UP_P2P: u32 = 0u32; +pub const VNSPROTO_IPC: u32 = 1u32; +pub const VNSPROTO_RELIABLE_IPC: u32 = 2u32; +pub const VNSPROTO_SPP: u32 = 3u32; +pub const WCE_AF_IRDA: u32 = 22u32; +pub const WCE_PF_IRDA: u32 = 22u32; +pub const WINDOWS_AF_IRDA: u32 = 26u32; +pub const WINDOWS_PF_IRDA: u32 = 26u32; +pub const WSABASEERR: WSA_ERROR = 10000i32; +pub const WSADESCRIPTION_LEN: u32 = 256u32; +pub const WSAEACCES: WSA_ERROR = 10013i32; +pub const WSAEADDRINUSE: WSA_ERROR = 10048i32; +pub const WSAEADDRNOTAVAIL: WSA_ERROR = 10049i32; +pub const WSAEAFNOSUPPORT: WSA_ERROR = 10047i32; +pub const WSAEALREADY: WSA_ERROR = 10037i32; +pub const WSAEBADF: WSA_ERROR = 10009i32; +pub const WSAECANCELLED: WSA_ERROR = 10103i32; +pub const WSAECONNABORTED: WSA_ERROR = 10053i32; +pub const WSAECONNREFUSED: WSA_ERROR = 10061i32; +pub const WSAECONNRESET: WSA_ERROR = 10054i32; +pub const WSAEDESTADDRREQ: WSA_ERROR = 10039i32; +pub const WSAEDISCON: WSA_ERROR = 10101i32; +pub const WSAEDQUOT: WSA_ERROR = 10069i32; +pub const WSAEFAULT: WSA_ERROR = 10014i32; +pub const WSAEHOSTDOWN: WSA_ERROR = 10064i32; +pub const WSAEHOSTUNREACH: WSA_ERROR = 10065i32; +pub const WSAEINPROGRESS: WSA_ERROR = 10036i32; +pub const WSAEINTR: WSA_ERROR = 10004i32; +pub const WSAEINVAL: WSA_ERROR = 10022i32; +pub const WSAEINVALIDPROCTABLE: WSA_ERROR = 10104i32; +pub const WSAEINVALIDPROVIDER: WSA_ERROR = 10105i32; +pub const WSAEISCONN: WSA_ERROR = 10056i32; +pub const WSAELOOP: WSA_ERROR = 10062i32; +pub const WSAEMFILE: WSA_ERROR = 10024i32; +pub const WSAEMSGSIZE: WSA_ERROR = 10040i32; +pub const WSAENAMETOOLONG: WSA_ERROR = 10063i32; +pub const WSAENETDOWN: WSA_ERROR = 10050i32; +pub const WSAENETRESET: WSA_ERROR = 10052i32; +pub const WSAENETUNREACH: WSA_ERROR = 10051i32; +pub const WSAENOBUFS: WSA_ERROR = 10055i32; +pub const WSAENOMORE: WSA_ERROR = 10102i32; +pub const WSAENOPROTOOPT: WSA_ERROR = 10042i32; +pub const WSAENOTCONN: WSA_ERROR = 10057i32; +pub const WSAENOTEMPTY: WSA_ERROR = 10066i32; +pub const WSAENOTSOCK: WSA_ERROR = 10038i32; +pub const WSAEOPNOTSUPP: WSA_ERROR = 10045i32; +pub const WSAEPFNOSUPPORT: WSA_ERROR = 10046i32; +pub const WSAEPROCLIM: WSA_ERROR = 10067i32; +pub const WSAEPROTONOSUPPORT: WSA_ERROR = 10043i32; +pub const WSAEPROTOTYPE: WSA_ERROR = 10041i32; +pub const WSAEPROVIDERFAILEDINIT: WSA_ERROR = 10106i32; +pub const WSAEREFUSED: WSA_ERROR = 10112i32; +pub const WSAEREMOTE: WSA_ERROR = 10071i32; +pub const WSAESHUTDOWN: WSA_ERROR = 10058i32; +pub const WSAESOCKTNOSUPPORT: WSA_ERROR = 10044i32; +pub const WSAESTALE: WSA_ERROR = 10070i32; +pub const WSAETIMEDOUT: WSA_ERROR = 10060i32; +pub const WSAETOOMANYREFS: WSA_ERROR = 10059i32; +pub const WSAEUSERS: WSA_ERROR = 10068i32; +pub const WSAEWOULDBLOCK: WSA_ERROR = 10035i32; +pub const WSAHOST_NOT_FOUND: WSA_ERROR = 11001i32; +pub const WSAID_ACCEPTEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb5367df1_cbac_11cf_95ca_00805f48a192); +pub const WSAID_CONNECTEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25a207b9_ddf3_4660_8ee9_76e58c74063e); +pub const WSAID_DISCONNECTEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7fda2e11_8630_436f_a031_f536a6eec157); +pub const WSAID_GETACCEPTEXSOCKADDRS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb5367df2_cbac_11cf_95ca_00805f48a192); +pub const WSAID_TRANSMITFILE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb5367df0_cbac_11cf_95ca_00805f48a192); +pub const WSAID_TRANSMITPACKETS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd9689da0_1f90_11d3_9971_00c04f68c876); +pub const WSAID_WSAPOLL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x18c76f85_dc66_4964_972e_23c27238312b); +pub const WSAID_WSARECVMSG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf689d7c8_6f1f_436b_8a53_e54fe351c322); +pub const WSANOTINITIALISED: WSA_ERROR = 10093i32; +pub const WSANO_DATA: WSA_ERROR = 11004i32; +pub const WSANO_RECOVERY: WSA_ERROR = 11003i32; +pub const WSAPROTOCOL_LEN: u32 = 255u32; +pub const WSASERVICE_NOT_FOUND: WSA_ERROR = 10108i32; +pub const WSASYSCALLFAILURE: WSA_ERROR = 10107i32; +pub const WSASYSNOTREADY: WSA_ERROR = 10091i32; +pub const WSASYS_STATUS_LEN: u32 = 128u32; +pub const WSATRY_AGAIN: WSA_ERROR = 11002i32; +pub const WSATYPE_NOT_FOUND: WSA_ERROR = 10109i32; +pub const WSAVERNOTSUPPORTED: WSA_ERROR = 10092i32; +pub const WSA_E_CANCELLED: WSA_ERROR = 10111i32; +pub const WSA_E_NO_MORE: WSA_ERROR = 10110i32; +pub const WSA_FLAG_ACCESS_SYSTEM_SECURITY: u32 = 64u32; +pub const WSA_FLAG_MULTIPOINT_C_LEAF: u32 = 4u32; +pub const WSA_FLAG_MULTIPOINT_C_ROOT: u32 = 2u32; +pub const WSA_FLAG_MULTIPOINT_D_LEAF: u32 = 16u32; +pub const WSA_FLAG_MULTIPOINT_D_ROOT: u32 = 8u32; +pub const WSA_FLAG_NO_HANDLE_INHERIT: u32 = 128u32; +pub const WSA_FLAG_OVERLAPPED: u32 = 1u32; +pub const WSA_FLAG_REGISTERED_IO: u32 = 256u32; +pub const WSA_INFINITE: u32 = 4294967295u32; +pub const WSA_INVALID_HANDLE: WSA_ERROR = 6i32; +pub const WSA_INVALID_PARAMETER: WSA_ERROR = 87i32; +pub const WSA_IO_INCOMPLETE: WSA_ERROR = 996i32; +pub const WSA_IO_PENDING: WSA_ERROR = 997i32; +pub const WSA_IPSEC_NAME_POLICY_ERROR: WSA_ERROR = 11033i32; +pub const WSA_MAXIMUM_WAIT_EVENTS: u32 = 64u32; +pub const WSA_NOT_ENOUGH_MEMORY: WSA_ERROR = 8i32; +pub const WSA_OPERATION_ABORTED: WSA_ERROR = 995i32; +pub const WSA_QOS_ADMISSION_FAILURE: WSA_ERROR = 11010i32; +pub const WSA_QOS_BAD_OBJECT: WSA_ERROR = 11013i32; +pub const WSA_QOS_BAD_STYLE: WSA_ERROR = 11012i32; +pub const WSA_QOS_EFILTERCOUNT: WSA_ERROR = 11021i32; +pub const WSA_QOS_EFILTERSTYLE: WSA_ERROR = 11019i32; +pub const WSA_QOS_EFILTERTYPE: WSA_ERROR = 11020i32; +pub const WSA_QOS_EFLOWCOUNT: WSA_ERROR = 11023i32; +pub const WSA_QOS_EFLOWDESC: WSA_ERROR = 11026i32; +pub const WSA_QOS_EFLOWSPEC: WSA_ERROR = 11017i32; +pub const WSA_QOS_EOBJLENGTH: WSA_ERROR = 11022i32; +pub const WSA_QOS_EPOLICYOBJ: WSA_ERROR = 11025i32; +pub const WSA_QOS_EPROVSPECBUF: WSA_ERROR = 11018i32; +pub const WSA_QOS_EPSFILTERSPEC: WSA_ERROR = 11028i32; +pub const WSA_QOS_EPSFLOWSPEC: WSA_ERROR = 11027i32; +pub const WSA_QOS_ESDMODEOBJ: WSA_ERROR = 11029i32; +pub const WSA_QOS_ESERVICETYPE: WSA_ERROR = 11016i32; +pub const WSA_QOS_ESHAPERATEOBJ: WSA_ERROR = 11030i32; +pub const WSA_QOS_EUNKOWNPSOBJ: WSA_ERROR = 11024i32; +pub const WSA_QOS_GENERIC_ERROR: WSA_ERROR = 11015i32; +pub const WSA_QOS_NO_RECEIVERS: WSA_ERROR = 11008i32; +pub const WSA_QOS_NO_SENDERS: WSA_ERROR = 11007i32; +pub const WSA_QOS_POLICY_FAILURE: WSA_ERROR = 11011i32; +pub const WSA_QOS_RECEIVERS: WSA_ERROR = 11005i32; +pub const WSA_QOS_REQUEST_CONFIRMED: WSA_ERROR = 11009i32; +pub const WSA_QOS_RESERVED_PETYPE: WSA_ERROR = 11031i32; +pub const WSA_QOS_SENDERS: WSA_ERROR = 11006i32; +pub const WSA_QOS_TRAFFIC_CTRL_ERROR: WSA_ERROR = 11014i32; +pub const WSA_SECURE_HOST_NOT_FOUND: WSA_ERROR = 11032i32; +pub const WSA_WAIT_EVENT_0: WSA_ERROR = 0i32; +pub const WSA_WAIT_FAILED: u32 = 4294967295u32; +pub const WSA_WAIT_IO_COMPLETION: WSA_ERROR = 192i32; +pub const WSA_WAIT_TIMEOUT: u32 = 258u32; +pub const WSK_SO_BASE: u32 = 16384u32; +pub const WSPDESCRIPTION_LEN: u32 = 255u32; +pub const WSS_OPERATION_IN_PROGRESS: i32 = 259i32; +pub const WsaBehaviorAll: WSA_COMPATIBILITY_BEHAVIOR_ID = 0i32; +pub const WsaBehaviorAutoTuning: WSA_COMPATIBILITY_BEHAVIOR_ID = 2i32; +pub const WsaBehaviorReceiveBuffering: WSA_COMPATIBILITY_BEHAVIOR_ID = 1i32; +pub const XP1_CONNECTIONLESS: u32 = 1u32; +pub const XP1_CONNECT_DATA: u32 = 128u32; +pub const XP1_DISCONNECT_DATA: u32 = 256u32; +pub const XP1_EXPEDITED_DATA: u32 = 64u32; +pub const XP1_GRACEFUL_CLOSE: u32 = 32u32; +pub const XP1_GUARANTEED_DELIVERY: u32 = 2u32; +pub const XP1_GUARANTEED_ORDER: u32 = 4u32; +pub const XP1_IFS_HANDLES: u32 = 131072u32; +pub const XP1_INTERRUPT: u32 = 16384u32; +pub const XP1_MESSAGE_ORIENTED: u32 = 8u32; +pub const XP1_MULTIPOINT_CONTROL_PLANE: u32 = 2048u32; +pub const XP1_MULTIPOINT_DATA_PLANE: u32 = 4096u32; +pub const XP1_PARTIAL_MESSAGE: u32 = 262144u32; +pub const XP1_PSEUDO_STREAM: u32 = 16u32; +pub const XP1_QOS_SUPPORTED: u32 = 8192u32; +pub const XP1_SAN_SUPPORT_SDP: u32 = 524288u32; +pub const XP1_SUPPORT_BROADCAST: u32 = 512u32; +pub const XP1_SUPPORT_MULTIPOINT: u32 = 1024u32; +pub const XP1_UNI_RECV: u32 = 65536u32; +pub const XP1_UNI_SEND: u32 = 32768u32; +pub const XP_BANDWIDTH_ALLOCATION: u32 = 2048u32; +pub const XP_CONNECTIONLESS: u32 = 1u32; +pub const XP_CONNECT_DATA: u32 = 128u32; +pub const XP_DISCONNECT_DATA: u32 = 256u32; +pub const XP_ENCRYPTS: u32 = 8192u32; +pub const XP_EXPEDITED_DATA: u32 = 64u32; +pub const XP_FRAGMENTATION: u32 = 4096u32; +pub const XP_GRACEFUL_CLOSE: u32 = 32u32; +pub const XP_GUARANTEED_DELIVERY: u32 = 2u32; +pub const XP_GUARANTEED_ORDER: u32 = 4u32; +pub const XP_MESSAGE_ORIENTED: u32 = 8u32; +pub const XP_PSEUDO_STREAM: u32 = 16u32; +pub const XP_SUPPORTS_BROADCAST: u32 = 512u32; +pub const XP_SUPPORTS_MULTICAST: u32 = 1024u32; +pub const _BIG_ENDIAN: u32 = 4321u32; +pub const _LITTLE_ENDIAN: u32 = 1234u32; +pub const _PDP_ENDIAN: u32 = 3412u32; +pub const _SS_MAXSIZE: u32 = 128u32; +pub type AAL_TYPE = i32; +pub type ADDRESS_FAMILY = u16; +pub type ARP_HARDWARE_TYPE = i32; +pub type ARP_OPCODE = i32; +pub type CONTROL_CHANNEL_TRIGGER_STATUS = i32; +pub type FALLBACK_INDEX = i32; +pub type ICMP4_TIME_EXCEED_CODE = i32; +pub type ICMP4_UNREACH_CODE = i32; +pub type IGMP_MAX_RESP_CODE_TYPE = i32; +pub type IPPROTO = i32; +pub type IPV4_OPTION_TYPE = i32; +pub type IPV6_OPTION_TYPE = i32; +pub type IP_OPTION_TIMESTAMP_FLAGS = i32; +pub type MLD_MAX_RESP_CODE_TYPE = i32; +pub type MULTICAST_MODE_TYPE = i32; +pub type NAPI_PROVIDER_LEVEL = i32; +pub type NAPI_PROVIDER_TYPE = i32; +pub type ND_OPTION_TYPE = i32; +pub type NLA_BLOB_DATA_TYPE = i32; +pub type NLA_CONNECTIVITY_TYPE = i32; +pub type NLA_INTERNET = i32; +pub type NL_ADDRESS_TYPE = i32; +pub type NL_BANDWIDTH_FLAG = i32; +pub type NL_DAD_STATE = i32; +pub type NL_INTERFACE_NETWORK_CATEGORY_STATE = i32; +pub type NL_LINK_LOCAL_ADDRESS_BEHAVIOR = i32; +pub type NL_NEIGHBOR_STATE = i32; +pub type NL_NETWORK_CATEGORY = i32; +pub type NL_NETWORK_CONNECTIVITY_COST_HINT = i32; +pub type NL_NETWORK_CONNECTIVITY_LEVEL_HINT = i32; +pub type NL_PREFIX_ORIGIN = i32; +pub type NL_ROUTER_DISCOVERY_BEHAVIOR = i32; +pub type NL_ROUTE_ORIGIN = i32; +pub type NL_ROUTE_PROTOCOL = i32; +pub type NL_SUFFIX_ORIGIN = i32; +pub type NPI_MODULEID_TYPE = i32; +pub type PMTUD_STATE = i32; +pub type Q2931_IE_TYPE = i32; +pub type RCVALL_VALUE = i32; +pub type RESOURCE_DISPLAY_TYPE = u32; +pub type RIO_NOTIFICATION_COMPLETION_TYPE = i32; +pub type SCOPE_LEVEL = i32; +pub type SEND_RECV_FLAGS = i32; +pub type SET_SERVICE_OPERATION = u32; +pub type SOCKET_PRIORITY_HINT = i32; +pub type SOCKET_SECURITY_PROTOCOL = i32; +pub type SOCKET_USAGE_TYPE = i32; +pub type TCPSTATE = i32; +pub type TCP_ICW_LEVEL = i32; +pub type TUNNEL_SUB_TYPE = i32; +pub type WINSOCK_SHUTDOWN_HOW = i32; +pub type WINSOCK_SOCKET_TYPE = i32; +pub type WSACOMPLETIONTYPE = i32; +pub type WSAECOMPARATOR = i32; +pub type WSAESETSERVICEOP = i32; +pub type WSAPOLL_EVENT_FLAGS = i16; +pub type WSA_COMPATIBILITY_BEHAVIOR_ID = i32; +pub type WSA_ERROR = i32; +pub type WSC_PROVIDER_INFO_TYPE = i32; +pub type eWINDOW_ADVANCE_METHOD = i32; +#[repr(C)] +pub struct AAL5_PARAMETERS { + pub ForwardMaxCPCSSDUSize: u32, + pub BackwardMaxCPCSSDUSize: u32, + pub Mode: u8, + pub SSCSType: u8, +} +impl ::core::marker::Copy for AAL5_PARAMETERS {} +impl ::core::clone::Clone for AAL5_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AALUSER_PARAMETERS { + pub UserDefined: u32, +} +impl ::core::marker::Copy for AALUSER_PARAMETERS {} +impl ::core::clone::Clone for AALUSER_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AAL_PARAMETERS_IE { + pub AALType: AAL_TYPE, + pub AALSpecificParameters: AAL_PARAMETERS_IE_0, +} +impl ::core::marker::Copy for AAL_PARAMETERS_IE {} +impl ::core::clone::Clone for AAL_PARAMETERS_IE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union AAL_PARAMETERS_IE_0 { + pub AAL5Parameters: AAL5_PARAMETERS, + pub AALUserParameters: AALUSER_PARAMETERS, +} +impl ::core::marker::Copy for AAL_PARAMETERS_IE_0 {} +impl ::core::clone::Clone for AAL_PARAMETERS_IE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADDRINFOA { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: usize, + pub ai_canonname: ::windows_sys::core::PSTR, + pub ai_addr: *mut SOCKADDR, + pub ai_next: *mut ADDRINFOA, +} +impl ::core::marker::Copy for ADDRINFOA {} +impl ::core::clone::Clone for ADDRINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADDRINFOEX2A { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: usize, + pub ai_canonname: ::windows_sys::core::PSTR, + pub ai_addr: *mut SOCKADDR, + pub ai_blob: *mut ::core::ffi::c_void, + pub ai_bloblen: usize, + pub ai_provider: *mut ::windows_sys::core::GUID, + pub ai_next: *mut ADDRINFOEX2A, + pub ai_version: i32, + pub ai_fqdn: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for ADDRINFOEX2A {} +impl ::core::clone::Clone for ADDRINFOEX2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADDRINFOEX2W { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: usize, + pub ai_canonname: ::windows_sys::core::PWSTR, + pub ai_addr: *mut SOCKADDR, + pub ai_blob: *mut ::core::ffi::c_void, + pub ai_bloblen: usize, + pub ai_provider: *mut ::windows_sys::core::GUID, + pub ai_next: *mut ADDRINFOEX2W, + pub ai_version: i32, + pub ai_fqdn: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ADDRINFOEX2W {} +impl ::core::clone::Clone for ADDRINFOEX2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADDRINFOEX3 { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: usize, + pub ai_canonname: ::windows_sys::core::PWSTR, + pub ai_addr: *mut SOCKADDR, + pub ai_blob: *mut ::core::ffi::c_void, + pub ai_bloblen: usize, + pub ai_provider: *mut ::windows_sys::core::GUID, + pub ai_next: *mut ADDRINFOEX3, + pub ai_version: i32, + pub ai_fqdn: ::windows_sys::core::PWSTR, + pub ai_interfaceindex: i32, +} +impl ::core::marker::Copy for ADDRINFOEX3 {} +impl ::core::clone::Clone for ADDRINFOEX3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ADDRINFOEX4 { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: usize, + pub ai_canonname: ::windows_sys::core::PWSTR, + pub ai_addr: *mut SOCKADDR, + pub ai_blob: *mut ::core::ffi::c_void, + pub ai_bloblen: usize, + pub ai_provider: *mut ::windows_sys::core::GUID, + pub ai_next: *mut ADDRINFOEX4, + pub ai_version: i32, + pub ai_fqdn: ::windows_sys::core::PWSTR, + pub ai_interfaceindex: i32, + pub ai_resolutionhandle: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ADDRINFOEX4 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ADDRINFOEX4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ADDRINFOEX5 { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: usize, + pub ai_canonname: ::windows_sys::core::PWSTR, + pub ai_addr: *mut SOCKADDR, + pub ai_blob: *mut ::core::ffi::c_void, + pub ai_bloblen: usize, + pub ai_provider: *mut ::windows_sys::core::GUID, + pub ai_next: *mut ADDRINFOEX5, + pub ai_version: i32, + pub ai_fqdn: ::windows_sys::core::PWSTR, + pub ai_interfaceindex: i32, + pub ai_resolutionhandle: super::super::Foundation::HANDLE, + pub ai_ttl: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ADDRINFOEX5 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ADDRINFOEX5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ADDRINFOEX6 { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: usize, + pub ai_canonname: ::windows_sys::core::PWSTR, + pub ai_addr: *mut SOCKADDR, + pub ai_blob: *mut ::core::ffi::c_void, + pub ai_bloblen: usize, + pub ai_provider: *mut ::windows_sys::core::GUID, + pub ai_next: *mut ADDRINFOEX5, + pub ai_version: i32, + pub ai_fqdn: ::windows_sys::core::PWSTR, + pub ai_interfaceindex: i32, + pub ai_resolutionhandle: super::super::Foundation::HANDLE, + pub ai_ttl: u32, + pub ai_numservers: u32, + pub ai_servers: *mut ADDRINFO_DNS_SERVER, + pub ai_responseflags: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ADDRINFOEX6 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ADDRINFOEX6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADDRINFOEXA { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: usize, + pub ai_canonname: ::windows_sys::core::PSTR, + pub ai_addr: *mut SOCKADDR, + pub ai_blob: *mut ::core::ffi::c_void, + pub ai_bloblen: usize, + pub ai_provider: *mut ::windows_sys::core::GUID, + pub ai_next: *mut ADDRINFOEXA, +} +impl ::core::marker::Copy for ADDRINFOEXA {} +impl ::core::clone::Clone for ADDRINFOEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADDRINFOEXW { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: usize, + pub ai_canonname: ::windows_sys::core::PWSTR, + pub ai_addr: *mut SOCKADDR, + pub ai_blob: *mut ::core::ffi::c_void, + pub ai_bloblen: usize, + pub ai_provider: *mut ::windows_sys::core::GUID, + pub ai_next: *mut ADDRINFOEXW, +} +impl ::core::marker::Copy for ADDRINFOEXW {} +impl ::core::clone::Clone for ADDRINFOEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADDRINFOW { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: usize, + pub ai_canonname: ::windows_sys::core::PWSTR, + pub ai_addr: *mut SOCKADDR, + pub ai_next: *mut ADDRINFOW, +} +impl ::core::marker::Copy for ADDRINFOW {} +impl ::core::clone::Clone for ADDRINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADDRINFO_DNS_SERVER { + pub ai_servertype: u32, + pub ai_flags: u64, + pub ai_addrlen: u32, + pub ai_addr: *mut SOCKADDR, + pub Anonymous: ADDRINFO_DNS_SERVER_0, +} +impl ::core::marker::Copy for ADDRINFO_DNS_SERVER {} +impl ::core::clone::Clone for ADDRINFO_DNS_SERVER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union ADDRINFO_DNS_SERVER_0 { + pub ai_template: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ADDRINFO_DNS_SERVER_0 {} +impl ::core::clone::Clone for ADDRINFO_DNS_SERVER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AFPROTOCOLS { + pub iAddressFamily: i32, + pub iProtocol: i32, +} +impl ::core::marker::Copy for AFPROTOCOLS {} +impl ::core::clone::Clone for AFPROTOCOLS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ARP_HEADER { + pub HardwareAddressSpace: u16, + pub ProtocolAddressSpace: u16, + pub HardwareAddressLength: u8, + pub ProtocolAddressLength: u8, + pub Opcode: u16, + pub SenderHardwareAddress: [u8; 1], +} +impl ::core::marker::Copy for ARP_HEADER {} +impl ::core::clone::Clone for ARP_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ASSOCIATE_NAMERES_CONTEXT_INPUT { + pub TransportSettingId: TRANSPORT_SETTING_ID, + pub Handle: u64, +} +impl ::core::marker::Copy for ASSOCIATE_NAMERES_CONTEXT_INPUT {} +impl ::core::clone::Clone for ASSOCIATE_NAMERES_CONTEXT_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATM_ADDRESS { + pub AddressType: u32, + pub NumofDigits: u32, + pub Addr: [u8; 20], +} +impl ::core::marker::Copy for ATM_ADDRESS {} +impl ::core::clone::Clone for ATM_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATM_BHLI { + pub HighLayerInfoType: u32, + pub HighLayerInfoLength: u32, + pub HighLayerInfo: [u8; 8], +} +impl ::core::marker::Copy for ATM_BHLI {} +impl ::core::clone::Clone for ATM_BHLI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATM_BLLI { + pub Layer2Protocol: u32, + pub Layer2UserSpecifiedProtocol: u32, + pub Layer3Protocol: u32, + pub Layer3UserSpecifiedProtocol: u32, + pub Layer3IPI: u32, + pub SnapID: [u8; 5], +} +impl ::core::marker::Copy for ATM_BLLI {} +impl ::core::clone::Clone for ATM_BLLI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATM_BLLI_IE { + pub Layer2Protocol: u32, + pub Layer2Mode: u8, + pub Layer2WindowSize: u8, + pub Layer2UserSpecifiedProtocol: u32, + pub Layer3Protocol: u32, + pub Layer3Mode: u8, + pub Layer3DefaultPacketSize: u8, + pub Layer3PacketWindowSize: u8, + pub Layer3UserSpecifiedProtocol: u32, + pub Layer3IPI: u32, + pub SnapID: [u8; 5], +} +impl ::core::marker::Copy for ATM_BLLI_IE {} +impl ::core::clone::Clone for ATM_BLLI_IE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATM_BROADBAND_BEARER_CAPABILITY_IE { + pub BearerClass: u8, + pub TrafficType: u8, + pub TimingRequirements: u8, + pub ClippingSusceptability: u8, + pub UserPlaneConnectionConfig: u8, +} +impl ::core::marker::Copy for ATM_BROADBAND_BEARER_CAPABILITY_IE {} +impl ::core::clone::Clone for ATM_BROADBAND_BEARER_CAPABILITY_IE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATM_CALLING_PARTY_NUMBER_IE { + pub ATM_Number: ATM_ADDRESS, + pub Presentation_Indication: u8, + pub Screening_Indicator: u8, +} +impl ::core::marker::Copy for ATM_CALLING_PARTY_NUMBER_IE {} +impl ::core::clone::Clone for ATM_CALLING_PARTY_NUMBER_IE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATM_CAUSE_IE { + pub Location: u8, + pub Cause: u8, + pub DiagnosticsLength: u8, + pub Diagnostics: [u8; 4], +} +impl ::core::marker::Copy for ATM_CAUSE_IE {} +impl ::core::clone::Clone for ATM_CAUSE_IE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATM_CONNECTION_ID { + pub DeviceNumber: u32, + pub VPI: u32, + pub VCI: u32, +} +impl ::core::marker::Copy for ATM_CONNECTION_ID {} +impl ::core::clone::Clone for ATM_CONNECTION_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct ATM_PVC_PARAMS { + pub PvcConnectionId: ATM_CONNECTION_ID, + pub PvcQos: QOS, +} +impl ::core::marker::Copy for ATM_PVC_PARAMS {} +impl ::core::clone::Clone for ATM_PVC_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATM_QOS_CLASS_IE { + pub QOSClassForward: u8, + pub QOSClassBackward: u8, +} +impl ::core::marker::Copy for ATM_QOS_CLASS_IE {} +impl ::core::clone::Clone for ATM_QOS_CLASS_IE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ATM_TD { + pub PeakCellRate_CLP0: u32, + pub PeakCellRate_CLP01: u32, + pub SustainableCellRate_CLP0: u32, + pub SustainableCellRate_CLP01: u32, + pub MaxBurstSize_CLP0: u32, + pub MaxBurstSize_CLP01: u32, + pub Tagging: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ATM_TD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ATM_TD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ATM_TRAFFIC_DESCRIPTOR_IE { + pub Forward: ATM_TD, + pub Backward: ATM_TD, + pub BestEffort: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ATM_TRAFFIC_DESCRIPTOR_IE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ATM_TRAFFIC_DESCRIPTOR_IE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATM_TRANSIT_NETWORK_SELECTION_IE { + pub TypeOfNetworkId: u8, + pub NetworkIdPlan: u8, + pub NetworkIdLength: u8, + pub NetworkId: [u8; 1], +} +impl ::core::marker::Copy for ATM_TRANSIT_NETWORK_SELECTION_IE {} +impl ::core::clone::Clone for ATM_TRANSIT_NETWORK_SELECTION_IE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSGHDR { + pub cmsg_len: usize, + pub cmsg_level: i32, + pub cmsg_type: i32, +} +impl ::core::marker::Copy for CMSGHDR {} +impl ::core::clone::Clone for CMSGHDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CSADDR_INFO { + pub LocalAddr: SOCKET_ADDRESS, + pub RemoteAddr: SOCKET_ADDRESS, + pub iSocketType: i32, + pub iProtocol: i32, +} +impl ::core::marker::Copy for CSADDR_INFO {} +impl ::core::clone::Clone for CSADDR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DL_EI48 { + pub Byte: [u8; 3], +} +impl ::core::marker::Copy for DL_EI48 {} +impl ::core::clone::Clone for DL_EI48 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DL_EI64 { + pub Byte: [u8; 5], +} +impl ::core::marker::Copy for DL_EI64 {} +impl ::core::clone::Clone for DL_EI64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DL_EUI48 { + pub Byte: [u8; 6], + pub Anonymous: DL_EUI48_0, +} +impl ::core::marker::Copy for DL_EUI48 {} +impl ::core::clone::Clone for DL_EUI48 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DL_EUI48_0 { + pub Oui: DL_OUI, + pub Ei48: DL_EI48, +} +impl ::core::marker::Copy for DL_EUI48_0 {} +impl ::core::clone::Clone for DL_EUI48_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DL_EUI64 { + pub Byte: [u8; 8], + pub Value: u64, + pub Anonymous: DL_EUI64_0, +} +impl ::core::marker::Copy for DL_EUI64 {} +impl ::core::clone::Clone for DL_EUI64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DL_EUI64_0 { + pub Oui: DL_OUI, + pub Anonymous: DL_EUI64_0_0, +} +impl ::core::marker::Copy for DL_EUI64_0 {} +impl ::core::clone::Clone for DL_EUI64_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DL_EUI64_0_0 { + pub Ei64: DL_EI64, + pub Anonymous: DL_EUI64_0_0_0, +} +impl ::core::marker::Copy for DL_EUI64_0_0 {} +impl ::core::clone::Clone for DL_EUI64_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DL_EUI64_0_0_0 { + pub Type: u8, + pub Tse: u8, + pub Ei48: DL_EI48, +} +impl ::core::marker::Copy for DL_EUI64_0_0_0 {} +impl ::core::clone::Clone for DL_EUI64_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DL_OUI { + pub Byte: [u8; 3], + pub Anonymous: DL_OUI_0, +} +impl ::core::marker::Copy for DL_OUI {} +impl ::core::clone::Clone for DL_OUI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DL_OUI_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for DL_OUI_0 {} +impl ::core::clone::Clone for DL_OUI_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DL_TEREDO_ADDRESS { + pub Reserved: [u8; 6], + pub Anonymous: DL_TEREDO_ADDRESS_0, +} +impl ::core::marker::Copy for DL_TEREDO_ADDRESS {} +impl ::core::clone::Clone for DL_TEREDO_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union DL_TEREDO_ADDRESS_0 { + pub Eui64: DL_EUI64, + pub Anonymous: DL_TEREDO_ADDRESS_0_0, +} +impl ::core::marker::Copy for DL_TEREDO_ADDRESS_0 {} +impl ::core::clone::Clone for DL_TEREDO_ADDRESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DL_TEREDO_ADDRESS_0_0 { + pub Flags: u16, + pub MappedPort: u16, + pub MappedAddress: IN_ADDR, +} +impl ::core::marker::Copy for DL_TEREDO_ADDRESS_0_0 {} +impl ::core::clone::Clone for DL_TEREDO_ADDRESS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DL_TEREDO_ADDRESS_PRV { + pub Reserved: [u8; 6], + pub Anonymous: DL_TEREDO_ADDRESS_PRV_0, +} +impl ::core::marker::Copy for DL_TEREDO_ADDRESS_PRV {} +impl ::core::clone::Clone for DL_TEREDO_ADDRESS_PRV { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union DL_TEREDO_ADDRESS_PRV_0 { + pub Eui64: DL_EUI64, + pub Anonymous: DL_TEREDO_ADDRESS_PRV_0_0, +} +impl ::core::marker::Copy for DL_TEREDO_ADDRESS_PRV_0 {} +impl ::core::clone::Clone for DL_TEREDO_ADDRESS_PRV_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DL_TEREDO_ADDRESS_PRV_0_0 { + pub Flags: u16, + pub MappedPort: u16, + pub MappedAddress: IN_ADDR, + pub LocalAddress: IN_ADDR, + pub InterfaceIndex: u32, + pub LocalPort: u16, + pub DlDestination: DL_EUI48, +} +impl ::core::marker::Copy for DL_TEREDO_ADDRESS_PRV_0_0 {} +impl ::core::clone::Clone for DL_TEREDO_ADDRESS_PRV_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct DL_TUNNEL_ADDRESS { + pub CompartmentId: super::super::System::Kernel::COMPARTMENT_ID, + pub ScopeId: SCOPE_ID, + pub IpAddress: [u8; 1], +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for DL_TUNNEL_ADDRESS {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for DL_TUNNEL_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ETHERNET_HEADER { + pub Destination: DL_EUI48, + pub Source: DL_EUI48, + pub Anonymous: ETHERNET_HEADER_0, +} +impl ::core::marker::Copy for ETHERNET_HEADER {} +impl ::core::clone::Clone for ETHERNET_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union ETHERNET_HEADER_0 { + pub Type: u16, + pub Length: u16, +} +impl ::core::marker::Copy for ETHERNET_HEADER_0 {} +impl ::core::clone::Clone for ETHERNET_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FD_SET { + pub fd_count: u32, + pub fd_array: [SOCKET; 64], +} +impl ::core::marker::Copy for FD_SET {} +impl ::core::clone::Clone for FD_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLOWSPEC { + pub TokenRate: u32, + pub TokenBucketSize: u32, + pub PeakBandwidth: u32, + pub Latency: u32, + pub DelayVariation: u32, + pub ServiceType: u32, + pub MaxSduSize: u32, + pub MinimumPolicedSize: u32, +} +impl ::core::marker::Copy for FLOWSPEC {} +impl ::core::clone::Clone for FLOWSPEC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_FILTER { + pub gf_interface: u32, + pub gf_group: SOCKADDR_STORAGE, + pub gf_fmode: MULTICAST_MODE_TYPE, + pub gf_numsrc: u32, + pub gf_slist: [SOCKADDR_STORAGE; 1], +} +impl ::core::marker::Copy for GROUP_FILTER {} +impl ::core::clone::Clone for GROUP_FILTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_REQ { + pub gr_interface: u32, + pub gr_group: SOCKADDR_STORAGE, +} +impl ::core::marker::Copy for GROUP_REQ {} +impl ::core::clone::Clone for GROUP_REQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_SOURCE_REQ { + pub gsr_interface: u32, + pub gsr_group: SOCKADDR_STORAGE, + pub gsr_source: SOCKADDR_STORAGE, +} +impl ::core::marker::Copy for GROUP_SOURCE_REQ {} +impl ::core::clone::Clone for GROUP_SOURCE_REQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HOSTENT { + pub h_name: ::windows_sys::core::PSTR, + pub h_aliases: *mut *mut i8, + pub h_addrtype: i16, + pub h_length: i16, + pub h_addr_list: *mut *mut i8, +} +impl ::core::marker::Copy for HOSTENT {} +impl ::core::clone::Clone for HOSTENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ICMPV4_ADDRESS_MASK_MESSAGE { + pub Header: ICMP_MESSAGE, + pub AddressMask: u32, +} +impl ::core::marker::Copy for ICMPV4_ADDRESS_MASK_MESSAGE {} +impl ::core::clone::Clone for ICMPV4_ADDRESS_MASK_MESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ICMPV4_ROUTER_ADVERT_ENTRY { + pub RouterAdvertAddr: IN_ADDR, + pub PreferenceLevel: i32, +} +impl ::core::marker::Copy for ICMPV4_ROUTER_ADVERT_ENTRY {} +impl ::core::clone::Clone for ICMPV4_ROUTER_ADVERT_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ICMPV4_ROUTER_ADVERT_HEADER { + pub RaHeader: ICMP_MESSAGE, +} +impl ::core::marker::Copy for ICMPV4_ROUTER_ADVERT_HEADER {} +impl ::core::clone::Clone for ICMPV4_ROUTER_ADVERT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ICMPV4_ROUTER_SOLICIT { + pub RsHeader: ICMP_MESSAGE, +} +impl ::core::marker::Copy for ICMPV4_ROUTER_SOLICIT {} +impl ::core::clone::Clone for ICMPV4_ROUTER_SOLICIT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ICMPV4_TIMESTAMP_MESSAGE { + pub Header: ICMP_MESSAGE, + pub OriginateTimestamp: u32, + pub ReceiveTimestamp: u32, + pub TransmitTimestamp: u32, +} +impl ::core::marker::Copy for ICMPV4_TIMESTAMP_MESSAGE {} +impl ::core::clone::Clone for ICMPV4_TIMESTAMP_MESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ICMP_ERROR_INFO { + pub srcaddress: SOCKADDR_INET, + pub protocol: IPPROTO, + pub r#type: u8, + pub code: u8, +} +impl ::core::marker::Copy for ICMP_ERROR_INFO {} +impl ::core::clone::Clone for ICMP_ERROR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ICMP_HEADER { + pub Type: u8, + pub Code: u8, + pub Checksum: u16, +} +impl ::core::marker::Copy for ICMP_HEADER {} +impl ::core::clone::Clone for ICMP_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ICMP_MESSAGE { + pub Header: ICMP_HEADER, + pub Data: ICMP_MESSAGE_0, +} +impl ::core::marker::Copy for ICMP_MESSAGE {} +impl ::core::clone::Clone for ICMP_MESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union ICMP_MESSAGE_0 { + pub Data32: [u32; 1], + pub Data16: [u16; 2], + pub Data8: [u8; 4], +} +impl ::core::marker::Copy for ICMP_MESSAGE_0 {} +impl ::core::clone::Clone for ICMP_MESSAGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IGMPV3_QUERY_HEADER { + pub Type: u8, + pub Anonymous1: IGMPV3_QUERY_HEADER_0, + pub Checksum: u16, + pub MulticastAddress: IN_ADDR, + pub _bitfield: u8, + pub Anonymous2: IGMPV3_QUERY_HEADER_1, + pub SourceCount: u16, +} +impl ::core::marker::Copy for IGMPV3_QUERY_HEADER {} +impl ::core::clone::Clone for IGMPV3_QUERY_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IGMPV3_QUERY_HEADER_0 { + pub MaxRespCode: u8, + pub Anonymous: IGMPV3_QUERY_HEADER_0_0, +} +impl ::core::marker::Copy for IGMPV3_QUERY_HEADER_0 {} +impl ::core::clone::Clone for IGMPV3_QUERY_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IGMPV3_QUERY_HEADER_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for IGMPV3_QUERY_HEADER_0_0 {} +impl ::core::clone::Clone for IGMPV3_QUERY_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IGMPV3_QUERY_HEADER_1 { + pub QueriersQueryInterfaceCode: u8, + pub Anonymous: IGMPV3_QUERY_HEADER_1_0, +} +impl ::core::marker::Copy for IGMPV3_QUERY_HEADER_1 {} +impl ::core::clone::Clone for IGMPV3_QUERY_HEADER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IGMPV3_QUERY_HEADER_1_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for IGMPV3_QUERY_HEADER_1_0 {} +impl ::core::clone::Clone for IGMPV3_QUERY_HEADER_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IGMPV3_REPORT_HEADER { + pub Type: u8, + pub Reserved: u8, + pub Checksum: u16, + pub Reserved2: u16, + pub RecordCount: u16, +} +impl ::core::marker::Copy for IGMPV3_REPORT_HEADER {} +impl ::core::clone::Clone for IGMPV3_REPORT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IGMPV3_REPORT_RECORD_HEADER { + pub Type: u8, + pub AuxillaryDataLength: u8, + pub SourceCount: u16, + pub MulticastAddress: IN_ADDR, +} +impl ::core::marker::Copy for IGMPV3_REPORT_RECORD_HEADER {} +impl ::core::clone::Clone for IGMPV3_REPORT_RECORD_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IGMP_HEADER { + pub Anonymous1: IGMP_HEADER_0, + pub Anonymous2: IGMP_HEADER_1, + pub Checksum: u16, + pub MulticastAddress: IN_ADDR, +} +impl ::core::marker::Copy for IGMP_HEADER {} +impl ::core::clone::Clone for IGMP_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IGMP_HEADER_0 { + pub Anonymous: IGMP_HEADER_0_0, + pub VersionType: u8, +} +impl ::core::marker::Copy for IGMP_HEADER_0 {} +impl ::core::clone::Clone for IGMP_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IGMP_HEADER_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for IGMP_HEADER_0_0 {} +impl ::core::clone::Clone for IGMP_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IGMP_HEADER_1 { + pub Reserved: u8, + pub MaxRespTime: u8, + pub Code: u8, +} +impl ::core::marker::Copy for IGMP_HEADER_1 {} +impl ::core::clone::Clone for IGMP_HEADER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IN6_ADDR { + pub u: IN6_ADDR_0, +} +impl ::core::marker::Copy for IN6_ADDR {} +impl ::core::clone::Clone for IN6_ADDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IN6_ADDR_0 { + pub Byte: [u8; 16], + pub Word: [u16; 8], +} +impl ::core::marker::Copy for IN6_ADDR_0 {} +impl ::core::clone::Clone for IN6_ADDR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IN6_PKTINFO { + pub ipi6_addr: IN6_ADDR, + pub ipi6_ifindex: u32, +} +impl ::core::marker::Copy for IN6_PKTINFO {} +impl ::core::clone::Clone for IN6_PKTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IN6_PKTINFO_EX { + pub pkt_info: IN6_PKTINFO, + pub scope_id: SCOPE_ID, +} +impl ::core::marker::Copy for IN6_PKTINFO_EX {} +impl ::core::clone::Clone for IN6_PKTINFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INET_PORT_RANGE { + pub StartPort: u16, + pub NumberOfPorts: u16, +} +impl ::core::marker::Copy for INET_PORT_RANGE {} +impl ::core::clone::Clone for INET_PORT_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INET_PORT_RESERVATION_INFORMATION { + pub OwningPid: u32, +} +impl ::core::marker::Copy for INET_PORT_RESERVATION_INFORMATION {} +impl ::core::clone::Clone for INET_PORT_RESERVATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INET_PORT_RESERVATION_INSTANCE { + pub Reservation: INET_PORT_RANGE, + pub Token: INET_PORT_RESERVATION_TOKEN, +} +impl ::core::marker::Copy for INET_PORT_RESERVATION_INSTANCE {} +impl ::core::clone::Clone for INET_PORT_RESERVATION_INSTANCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INET_PORT_RESERVATION_TOKEN { + pub Token: u64, +} +impl ::core::marker::Copy for INET_PORT_RESERVATION_TOKEN {} +impl ::core::clone::Clone for INET_PORT_RESERVATION_TOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERFACE_INFO { + pub iiFlags: u32, + pub iiAddress: sockaddr_gen, + pub iiBroadcastAddress: sockaddr_gen, + pub iiNetmask: sockaddr_gen, +} +impl ::core::marker::Copy for INTERFACE_INFO {} +impl ::core::clone::Clone for INTERFACE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERFACE_INFO_EX { + pub iiFlags: u32, + pub iiAddress: SOCKET_ADDRESS, + pub iiBroadcastAddress: SOCKET_ADDRESS, + pub iiNetmask: SOCKET_ADDRESS, +} +impl ::core::marker::Copy for INTERFACE_INFO_EX {} +impl ::core::clone::Clone for INTERFACE_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IN_ADDR { + pub S_un: IN_ADDR_0, +} +impl ::core::marker::Copy for IN_ADDR {} +impl ::core::clone::Clone for IN_ADDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IN_ADDR_0 { + pub S_un_b: IN_ADDR_0_0, + pub S_un_w: IN_ADDR_0_1, + pub S_addr: u32, +} +impl ::core::marker::Copy for IN_ADDR_0 {} +impl ::core::clone::Clone for IN_ADDR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IN_ADDR_0_0 { + pub s_b1: u8, + pub s_b2: u8, + pub s_b3: u8, + pub s_b4: u8, +} +impl ::core::marker::Copy for IN_ADDR_0_0 {} +impl ::core::clone::Clone for IN_ADDR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IN_ADDR_0_1 { + pub s_w1: u16, + pub s_w2: u16, +} +impl ::core::marker::Copy for IN_ADDR_0_1 {} +impl ::core::clone::Clone for IN_ADDR_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IN_PKTINFO { + pub ipi_addr: IN_ADDR, + pub ipi_ifindex: u32, +} +impl ::core::marker::Copy for IN_PKTINFO {} +impl ::core::clone::Clone for IN_PKTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IN_PKTINFO_EX { + pub pkt_info: IN_PKTINFO, + pub scope_id: SCOPE_ID, +} +impl ::core::marker::Copy for IN_PKTINFO_EX {} +impl ::core::clone::Clone for IN_PKTINFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IN_RECVERR { + pub protocol: IPPROTO, + pub info: u32, + pub r#type: u8, + pub code: u8, +} +impl ::core::marker::Copy for IN_RECVERR {} +impl ::core::clone::Clone for IN_RECVERR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IPTLS_METADATA { + pub SequenceNumber: u64, +} +impl ::core::marker::Copy for IPTLS_METADATA {} +impl ::core::clone::Clone for IPTLS_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV4_HEADER { + pub Anonymous1: IPV4_HEADER_0, + pub Anonymous2: IPV4_HEADER_1, + pub TotalLength: u16, + pub Identification: u16, + pub Anonymous3: IPV4_HEADER_2, + pub TimeToLive: u8, + pub Protocol: u8, + pub HeaderChecksum: u16, + pub SourceAddress: IN_ADDR, + pub DestinationAddress: IN_ADDR, +} +impl ::core::marker::Copy for IPV4_HEADER {} +impl ::core::clone::Clone for IPV4_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPV4_HEADER_0 { + pub VersionAndHeaderLength: u8, + pub Anonymous: IPV4_HEADER_0_0, +} +impl ::core::marker::Copy for IPV4_HEADER_0 {} +impl ::core::clone::Clone for IPV4_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV4_HEADER_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for IPV4_HEADER_0_0 {} +impl ::core::clone::Clone for IPV4_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPV4_HEADER_1 { + pub TypeOfServiceAndEcnField: u8, + pub Anonymous: IPV4_HEADER_1_0, +} +impl ::core::marker::Copy for IPV4_HEADER_1 {} +impl ::core::clone::Clone for IPV4_HEADER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV4_HEADER_1_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for IPV4_HEADER_1_0 {} +impl ::core::clone::Clone for IPV4_HEADER_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPV4_HEADER_2 { + pub FlagsAndOffset: u16, + pub Anonymous: IPV4_HEADER_2_0, +} +impl ::core::marker::Copy for IPV4_HEADER_2 {} +impl ::core::clone::Clone for IPV4_HEADER_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV4_HEADER_2_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for IPV4_HEADER_2_0 {} +impl ::core::clone::Clone for IPV4_HEADER_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV4_OPTION_HEADER { + pub Anonymous: IPV4_OPTION_HEADER_0, + pub OptionLength: u8, +} +impl ::core::marker::Copy for IPV4_OPTION_HEADER {} +impl ::core::clone::Clone for IPV4_OPTION_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPV4_OPTION_HEADER_0 { + pub OptionType: u8, + pub Anonymous: IPV4_OPTION_HEADER_0_0, +} +impl ::core::marker::Copy for IPV4_OPTION_HEADER_0 {} +impl ::core::clone::Clone for IPV4_OPTION_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV4_OPTION_HEADER_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for IPV4_OPTION_HEADER_0_0 {} +impl ::core::clone::Clone for IPV4_OPTION_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV4_ROUTING_HEADER { + pub OptionHeader: IPV4_OPTION_HEADER, + pub Pointer: u8, +} +impl ::core::marker::Copy for IPV4_ROUTING_HEADER {} +impl ::core::clone::Clone for IPV4_ROUTING_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV4_TIMESTAMP_OPTION { + pub OptionHeader: IPV4_OPTION_HEADER, + pub Pointer: u8, + pub Anonymous: IPV4_TIMESTAMP_OPTION_0, +} +impl ::core::marker::Copy for IPV4_TIMESTAMP_OPTION {} +impl ::core::clone::Clone for IPV4_TIMESTAMP_OPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPV4_TIMESTAMP_OPTION_0 { + pub FlagsOverflow: u8, + pub Anonymous: IPV4_TIMESTAMP_OPTION_0_0, +} +impl ::core::marker::Copy for IPV4_TIMESTAMP_OPTION_0 {} +impl ::core::clone::Clone for IPV4_TIMESTAMP_OPTION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV4_TIMESTAMP_OPTION_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for IPV4_TIMESTAMP_OPTION_0_0 {} +impl ::core::clone::Clone for IPV4_TIMESTAMP_OPTION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV6_EXTENSION_HEADER { + pub NextHeader: u8, + pub Length: u8, +} +impl ::core::marker::Copy for IPV6_EXTENSION_HEADER {} +impl ::core::clone::Clone for IPV6_EXTENSION_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV6_FRAGMENT_HEADER { + pub NextHeader: u8, + pub Reserved: u8, + pub Anonymous: IPV6_FRAGMENT_HEADER_0, + pub Id: u32, +} +impl ::core::marker::Copy for IPV6_FRAGMENT_HEADER {} +impl ::core::clone::Clone for IPV6_FRAGMENT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPV6_FRAGMENT_HEADER_0 { + pub Anonymous: IPV6_FRAGMENT_HEADER_0_0, + pub OffsetAndFlags: u16, +} +impl ::core::marker::Copy for IPV6_FRAGMENT_HEADER_0 {} +impl ::core::clone::Clone for IPV6_FRAGMENT_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV6_FRAGMENT_HEADER_0_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for IPV6_FRAGMENT_HEADER_0_0 {} +impl ::core::clone::Clone for IPV6_FRAGMENT_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV6_HEADER { + pub Anonymous: IPV6_HEADER_0, + pub PayloadLength: u16, + pub NextHeader: u8, + pub HopLimit: u8, + pub SourceAddress: IN6_ADDR, + pub DestinationAddress: IN6_ADDR, +} +impl ::core::marker::Copy for IPV6_HEADER {} +impl ::core::clone::Clone for IPV6_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPV6_HEADER_0 { + pub VersionClassFlow: u32, + pub Anonymous: IPV6_HEADER_0_0, +} +impl ::core::marker::Copy for IPV6_HEADER_0 {} +impl ::core::clone::Clone for IPV6_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV6_HEADER_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for IPV6_HEADER_0_0 {} +impl ::core::clone::Clone for IPV6_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV6_MREQ { + pub ipv6mr_multiaddr: IN6_ADDR, + pub ipv6mr_interface: u32, +} +impl ::core::marker::Copy for IPV6_MREQ {} +impl ::core::clone::Clone for IPV6_MREQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPV6_NEIGHBOR_ADVERTISEMENT_FLAGS { + pub Anonymous: IPV6_NEIGHBOR_ADVERTISEMENT_FLAGS_0, + pub Value: u32, +} +impl ::core::marker::Copy for IPV6_NEIGHBOR_ADVERTISEMENT_FLAGS {} +impl ::core::clone::Clone for IPV6_NEIGHBOR_ADVERTISEMENT_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV6_NEIGHBOR_ADVERTISEMENT_FLAGS_0 { + pub _bitfield: u8, + pub Reserved2: [u8; 3], +} +impl ::core::marker::Copy for IPV6_NEIGHBOR_ADVERTISEMENT_FLAGS_0 {} +impl ::core::clone::Clone for IPV6_NEIGHBOR_ADVERTISEMENT_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV6_OPTION_HEADER { + pub Type: u8, + pub DataLength: u8, +} +impl ::core::marker::Copy for IPV6_OPTION_HEADER {} +impl ::core::clone::Clone for IPV6_OPTION_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV6_OPTION_JUMBOGRAM { + pub Header: IPV6_OPTION_HEADER, + pub JumbogramLength: [u8; 4], +} +impl ::core::marker::Copy for IPV6_OPTION_JUMBOGRAM {} +impl ::core::clone::Clone for IPV6_OPTION_JUMBOGRAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV6_OPTION_ROUTER_ALERT { + pub Header: IPV6_OPTION_HEADER, + pub Value: [u8; 2], +} +impl ::core::marker::Copy for IPV6_OPTION_ROUTER_ALERT {} +impl ::core::clone::Clone for IPV6_OPTION_ROUTER_ALERT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IPV6_ROUTER_ADVERTISEMENT_FLAGS { + pub Anonymous: IPV6_ROUTER_ADVERTISEMENT_FLAGS_0, + pub Value: u8, +} +impl ::core::marker::Copy for IPV6_ROUTER_ADVERTISEMENT_FLAGS {} +impl ::core::clone::Clone for IPV6_ROUTER_ADVERTISEMENT_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV6_ROUTER_ADVERTISEMENT_FLAGS_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for IPV6_ROUTER_ADVERTISEMENT_FLAGS_0 {} +impl ::core::clone::Clone for IPV6_ROUTER_ADVERTISEMENT_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPV6_ROUTING_HEADER { + pub NextHeader: u8, + pub Length: u8, + pub RoutingType: u8, + pub SegmentsLeft: u8, + pub Reserved: [u8; 4], +} +impl ::core::marker::Copy for IPV6_ROUTING_HEADER {} +impl ::core::clone::Clone for IPV6_ROUTING_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IPX_ADDRESS_DATA { + pub adapternum: i32, + pub netnum: [u8; 4], + pub nodenum: [u8; 6], + pub wan: super::super::Foundation::BOOLEAN, + pub status: super::super::Foundation::BOOLEAN, + pub maxpkt: i32, + pub linkspeed: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IPX_ADDRESS_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IPX_ADDRESS_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPX_NETNUM_DATA { + pub netnum: [u8; 4], + pub hopcount: u16, + pub netdelay: u16, + pub cardnum: i32, + pub router: [u8; 6], +} +impl ::core::marker::Copy for IPX_NETNUM_DATA {} +impl ::core::clone::Clone for IPX_NETNUM_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IPX_SPXCONNSTATUS_DATA { + pub ConnectionState: u8, + pub WatchDogActive: u8, + pub LocalConnectionId: u16, + pub RemoteConnectionId: u16, + pub LocalSequenceNumber: u16, + pub LocalAckNumber: u16, + pub LocalAllocNumber: u16, + pub RemoteAckNumber: u16, + pub RemoteAllocNumber: u16, + pub LocalSocket: u16, + pub ImmediateAddress: [u8; 6], + pub RemoteNetwork: [u8; 4], + pub RemoteNode: [u8; 6], + pub RemoteSocket: u16, + pub RetransmissionCount: u16, + pub EstimatedRoundTripDelay: u16, + pub RetransmittedPackets: u16, + pub SuppressedPacket: u16, +} +impl ::core::marker::Copy for IPX_SPXCONNSTATUS_DATA {} +impl ::core::clone::Clone for IPX_SPXCONNSTATUS_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_MREQ { + pub imr_multiaddr: IN_ADDR, + pub imr_interface: IN_ADDR, +} +impl ::core::marker::Copy for IP_MREQ {} +impl ::core::clone::Clone for IP_MREQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_MREQ_SOURCE { + pub imr_multiaddr: IN_ADDR, + pub imr_sourceaddr: IN_ADDR, + pub imr_interface: IN_ADDR, +} +impl ::core::marker::Copy for IP_MREQ_SOURCE {} +impl ::core::clone::Clone for IP_MREQ_SOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IP_MSFILTER { + pub imsf_multiaddr: IN_ADDR, + pub imsf_interface: IN_ADDR, + pub imsf_fmode: MULTICAST_MODE_TYPE, + pub imsf_numsrc: u32, + pub imsf_slist: [IN_ADDR; 1], +} +impl ::core::marker::Copy for IP_MSFILTER {} +impl ::core::clone::Clone for IP_MSFILTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LINGER { + pub l_onoff: u16, + pub l_linger: u16, +} +impl ::core::marker::Copy for LINGER {} +impl ::core::clone::Clone for LINGER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LM_IRPARMS { + pub nTXDataBytes: u32, + pub nRXDataBytes: u32, + pub nBaudRate: u32, + pub thresholdTime: u32, + pub discTime: u32, + pub nMSLinkTurn: u16, + pub nTXPackets: u8, + pub nRXPackets: u8, +} +impl ::core::marker::Copy for LM_IRPARMS {} +impl ::core::clone::Clone for LM_IRPARMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MLDV2_QUERY_HEADER { + pub IcmpHeader: ICMP_HEADER, + pub Anonymous1: MLDV2_QUERY_HEADER_0, + pub Reserved: u16, + pub MulticastAddress: IN6_ADDR, + pub _bitfield: u8, + pub Anonymous2: MLDV2_QUERY_HEADER_1, + pub SourceCount: u16, +} +impl ::core::marker::Copy for MLDV2_QUERY_HEADER {} +impl ::core::clone::Clone for MLDV2_QUERY_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MLDV2_QUERY_HEADER_0 { + pub MaxRespCode: u16, + pub Anonymous: MLDV2_QUERY_HEADER_0_0, +} +impl ::core::marker::Copy for MLDV2_QUERY_HEADER_0 {} +impl ::core::clone::Clone for MLDV2_QUERY_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MLDV2_QUERY_HEADER_0_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for MLDV2_QUERY_HEADER_0_0 {} +impl ::core::clone::Clone for MLDV2_QUERY_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MLDV2_QUERY_HEADER_1 { + pub QueriersQueryInterfaceCode: u8, + pub Anonymous: MLDV2_QUERY_HEADER_1_0, +} +impl ::core::marker::Copy for MLDV2_QUERY_HEADER_1 {} +impl ::core::clone::Clone for MLDV2_QUERY_HEADER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MLDV2_QUERY_HEADER_1_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for MLDV2_QUERY_HEADER_1_0 {} +impl ::core::clone::Clone for MLDV2_QUERY_HEADER_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MLDV2_REPORT_HEADER { + pub IcmpHeader: ICMP_HEADER, + pub Reserved: u16, + pub RecordCount: u16, +} +impl ::core::marker::Copy for MLDV2_REPORT_HEADER {} +impl ::core::clone::Clone for MLDV2_REPORT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MLDV2_REPORT_RECORD_HEADER { + pub Type: u8, + pub AuxillaryDataLength: u8, + pub SourceCount: u16, + pub MulticastAddress: IN6_ADDR, +} +impl ::core::marker::Copy for MLDV2_REPORT_RECORD_HEADER {} +impl ::core::clone::Clone for MLDV2_REPORT_RECORD_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MLD_HEADER { + pub IcmpHeader: ICMP_HEADER, + pub MaxRespTime: u16, + pub Reserved: u16, + pub MulticastAddress: IN6_ADDR, +} +impl ::core::marker::Copy for MLD_HEADER {} +impl ::core::clone::Clone for MLD_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NAPI_DOMAIN_DESCRIPTION_BLOB { + pub AuthLevel: u32, + pub cchDomainName: u32, + pub OffsetNextDomainDescription: u32, + pub OffsetThisDomainName: u32, +} +impl ::core::marker::Copy for NAPI_DOMAIN_DESCRIPTION_BLOB {} +impl ::core::clone::Clone for NAPI_DOMAIN_DESCRIPTION_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NAPI_PROVIDER_INSTALLATION_BLOB { + pub dwVersion: u32, + pub dwProviderType: u32, + pub fSupportsWildCard: u32, + pub cDomains: u32, + pub OffsetFirstDomain: u32, +} +impl ::core::marker::Copy for NAPI_PROVIDER_INSTALLATION_BLOB {} +impl ::core::clone::Clone for NAPI_PROVIDER_INSTALLATION_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_NEIGHBOR_ADVERT_HEADER { + pub nd_na_hdr: ICMP_MESSAGE, + pub nd_na_target: IN6_ADDR, +} +impl ::core::marker::Copy for ND_NEIGHBOR_ADVERT_HEADER {} +impl ::core::clone::Clone for ND_NEIGHBOR_ADVERT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_NEIGHBOR_SOLICIT_HEADER { + pub nd_ns_hdr: ICMP_MESSAGE, + pub nd_ns_target: IN6_ADDR, +} +impl ::core::marker::Copy for ND_NEIGHBOR_SOLICIT_HEADER {} +impl ::core::clone::Clone for ND_NEIGHBOR_SOLICIT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_OPTION_DNSSL { + pub nd_opt_dnssl_type: u8, + pub nd_opt_dnssl_len: u8, + pub nd_opt_dnssl_reserved: u16, + pub nd_opt_dnssl_lifetime: u32, +} +impl ::core::marker::Copy for ND_OPTION_DNSSL {} +impl ::core::clone::Clone for ND_OPTION_DNSSL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_OPTION_HDR { + pub nd_opt_type: u8, + pub nd_opt_len: u8, +} +impl ::core::marker::Copy for ND_OPTION_HDR {} +impl ::core::clone::Clone for ND_OPTION_HDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_OPTION_MTU { + pub nd_opt_mtu_type: u8, + pub nd_opt_mtu_len: u8, + pub nd_opt_mtu_reserved: u16, + pub nd_opt_mtu_mtu: u32, +} +impl ::core::marker::Copy for ND_OPTION_MTU {} +impl ::core::clone::Clone for ND_OPTION_MTU { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_OPTION_PREFIX_INFO { + pub nd_opt_pi_type: u8, + pub nd_opt_pi_len: u8, + pub nd_opt_pi_prefix_len: u8, + pub Anonymous1: ND_OPTION_PREFIX_INFO_0, + pub nd_opt_pi_valid_time: u32, + pub nd_opt_pi_preferred_time: u32, + pub Anonymous2: ND_OPTION_PREFIX_INFO_1, + pub nd_opt_pi_prefix: IN6_ADDR, +} +impl ::core::marker::Copy for ND_OPTION_PREFIX_INFO {} +impl ::core::clone::Clone for ND_OPTION_PREFIX_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union ND_OPTION_PREFIX_INFO_0 { + pub nd_opt_pi_flags_reserved: u8, + pub Flags: ND_OPTION_PREFIX_INFO_0_0, +} +impl ::core::marker::Copy for ND_OPTION_PREFIX_INFO_0 {} +impl ::core::clone::Clone for ND_OPTION_PREFIX_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_OPTION_PREFIX_INFO_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for ND_OPTION_PREFIX_INFO_0_0 {} +impl ::core::clone::Clone for ND_OPTION_PREFIX_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union ND_OPTION_PREFIX_INFO_1 { + pub nd_opt_pi_reserved2: u32, + pub Anonymous: ND_OPTION_PREFIX_INFO_1_0, +} +impl ::core::marker::Copy for ND_OPTION_PREFIX_INFO_1 {} +impl ::core::clone::Clone for ND_OPTION_PREFIX_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_OPTION_PREFIX_INFO_1_0 { + pub nd_opt_pi_reserved3: [u8; 3], + pub nd_opt_pi_site_prefix_len: u8, +} +impl ::core::marker::Copy for ND_OPTION_PREFIX_INFO_1_0 {} +impl ::core::clone::Clone for ND_OPTION_PREFIX_INFO_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_OPTION_RDNSS { + pub nd_opt_rdnss_type: u8, + pub nd_opt_rdnss_len: u8, + pub nd_opt_rdnss_reserved: u16, + pub nd_opt_rdnss_lifetime: u32, +} +impl ::core::marker::Copy for ND_OPTION_RDNSS {} +impl ::core::clone::Clone for ND_OPTION_RDNSS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_OPTION_RD_HDR { + pub nd_opt_rh_type: u8, + pub nd_opt_rh_len: u8, + pub nd_opt_rh_reserved1: u16, + pub nd_opt_rh_reserved2: u32, +} +impl ::core::marker::Copy for ND_OPTION_RD_HDR {} +impl ::core::clone::Clone for ND_OPTION_RD_HDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_OPTION_ROUTE_INFO { + pub nd_opt_ri_type: u8, + pub nd_opt_ri_len: u8, + pub nd_opt_ri_prefix_len: u8, + pub Anonymous: ND_OPTION_ROUTE_INFO_0, + pub nd_opt_ri_route_lifetime: u32, + pub nd_opt_ri_prefix: IN6_ADDR, +} +impl ::core::marker::Copy for ND_OPTION_ROUTE_INFO {} +impl ::core::clone::Clone for ND_OPTION_ROUTE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union ND_OPTION_ROUTE_INFO_0 { + pub nd_opt_ri_flags_reserved: u8, + pub Flags: ND_OPTION_ROUTE_INFO_0_0, +} +impl ::core::marker::Copy for ND_OPTION_ROUTE_INFO_0 {} +impl ::core::clone::Clone for ND_OPTION_ROUTE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_OPTION_ROUTE_INFO_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for ND_OPTION_ROUTE_INFO_0_0 {} +impl ::core::clone::Clone for ND_OPTION_ROUTE_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_REDIRECT_HEADER { + pub nd_rd_hdr: ICMP_MESSAGE, + pub nd_rd_target: IN6_ADDR, + pub nd_rd_dst: IN6_ADDR, +} +impl ::core::marker::Copy for ND_REDIRECT_HEADER {} +impl ::core::clone::Clone for ND_REDIRECT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_ROUTER_ADVERT_HEADER { + pub nd_ra_hdr: ICMP_MESSAGE, + pub nd_ra_reachable: u32, + pub nd_ra_retransmit: u32, +} +impl ::core::marker::Copy for ND_ROUTER_ADVERT_HEADER {} +impl ::core::clone::Clone for ND_ROUTER_ADVERT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ND_ROUTER_SOLICIT_HEADER { + pub nd_rs_hdr: ICMP_MESSAGE, +} +impl ::core::marker::Copy for ND_ROUTER_SOLICIT_HEADER {} +impl ::core::clone::Clone for ND_ROUTER_SOLICIT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETRESOURCE2A { + pub dwScope: u32, + pub dwType: u32, + pub dwUsage: u32, + pub dwDisplayType: u32, + pub lpLocalName: ::windows_sys::core::PSTR, + pub lpRemoteName: ::windows_sys::core::PSTR, + pub lpComment: ::windows_sys::core::PSTR, + pub ns_info: NS_INFOA, + pub ServiceType: ::windows_sys::core::GUID, + pub dwProtocols: u32, + pub lpiProtocols: *mut i32, +} +impl ::core::marker::Copy for NETRESOURCE2A {} +impl ::core::clone::Clone for NETRESOURCE2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETRESOURCE2W { + pub dwScope: u32, + pub dwType: u32, + pub dwUsage: u32, + pub dwDisplayType: u32, + pub lpLocalName: ::windows_sys::core::PWSTR, + pub lpRemoteName: ::windows_sys::core::PWSTR, + pub lpComment: ::windows_sys::core::PWSTR, + pub ns_info: NS_INFOA, + pub ServiceType: ::windows_sys::core::GUID, + pub dwProtocols: u32, + pub lpiProtocols: *mut i32, +} +impl ::core::marker::Copy for NETRESOURCE2W {} +impl ::core::clone::Clone for NETRESOURCE2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NLA_BLOB { + pub header: NLA_BLOB_1, + pub data: NLA_BLOB_0, +} +impl ::core::marker::Copy for NLA_BLOB {} +impl ::core::clone::Clone for NLA_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NLA_BLOB_0 { + pub rawData: [u8; 1], + pub interfaceData: NLA_BLOB_0_2, + pub locationData: NLA_BLOB_0_3, + pub connectivity: NLA_BLOB_0_1, + pub ICS: NLA_BLOB_0_0, +} +impl ::core::marker::Copy for NLA_BLOB_0 {} +impl ::core::clone::Clone for NLA_BLOB_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NLA_BLOB_0_0 { + pub remote: NLA_BLOB_0_0_0, +} +impl ::core::marker::Copy for NLA_BLOB_0_0 {} +impl ::core::clone::Clone for NLA_BLOB_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NLA_BLOB_0_0_0 { + pub speed: u32, + pub r#type: u32, + pub state: u32, + pub machineName: [u16; 256], + pub sharedAdapterName: [u16; 256], +} +impl ::core::marker::Copy for NLA_BLOB_0_0_0 {} +impl ::core::clone::Clone for NLA_BLOB_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NLA_BLOB_0_1 { + pub r#type: NLA_CONNECTIVITY_TYPE, + pub internet: NLA_INTERNET, +} +impl ::core::marker::Copy for NLA_BLOB_0_1 {} +impl ::core::clone::Clone for NLA_BLOB_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NLA_BLOB_0_2 { + pub dwType: u32, + pub dwSpeed: u32, + pub adapterName: [u8; 1], +} +impl ::core::marker::Copy for NLA_BLOB_0_2 {} +impl ::core::clone::Clone for NLA_BLOB_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NLA_BLOB_0_3 { + pub information: [u8; 1], +} +impl ::core::marker::Copy for NLA_BLOB_0_3 {} +impl ::core::clone::Clone for NLA_BLOB_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NLA_BLOB_1 { + pub r#type: NLA_BLOB_DATA_TYPE, + pub dwSize: u32, + pub nextOffset: u32, +} +impl ::core::marker::Copy for NLA_BLOB_1 {} +impl ::core::clone::Clone for NLA_BLOB_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NL_BANDWIDTH_INFORMATION { + pub Bandwidth: u64, + pub Instability: u64, + pub BandwidthPeaked: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NL_BANDWIDTH_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NL_BANDWIDTH_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NL_INTERFACE_OFFLOAD_ROD { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NL_INTERFACE_OFFLOAD_ROD {} +impl ::core::clone::Clone for NL_INTERFACE_OFFLOAD_ROD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NL_NETWORK_CONNECTIVITY_HINT { + pub ConnectivityLevel: NL_NETWORK_CONNECTIVITY_LEVEL_HINT, + pub ConnectivityCost: NL_NETWORK_CONNECTIVITY_COST_HINT, + pub ApproachingDataLimit: super::super::Foundation::BOOLEAN, + pub OverDataLimit: super::super::Foundation::BOOLEAN, + pub Roaming: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NL_NETWORK_CONNECTIVITY_HINT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NL_NETWORK_CONNECTIVITY_HINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NL_PATH_BANDWIDTH_ROD { + pub Bandwidth: u64, + pub Instability: u64, + pub BandwidthPeaked: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NL_PATH_BANDWIDTH_ROD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NL_PATH_BANDWIDTH_ROD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NPI_MODULEID { + pub Length: u16, + pub Type: NPI_MODULEID_TYPE, + pub Anonymous: NPI_MODULEID_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NPI_MODULEID {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NPI_MODULEID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union NPI_MODULEID_0 { + pub Guid: ::windows_sys::core::GUID, + pub IfLuid: super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NPI_MODULEID_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NPI_MODULEID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct NSPV2_ROUTINE { + pub cbSize: u32, + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, + pub NSPv2Startup: LPNSPV2STARTUP, + pub NSPv2Cleanup: LPNSPV2CLEANUP, + pub NSPv2LookupServiceBegin: LPNSPV2LOOKUPSERVICEBEGIN, + pub NSPv2LookupServiceNextEx: LPNSPV2LOOKUPSERVICENEXTEX, + pub NSPv2LookupServiceEnd: LPNSPV2LOOKUPSERVICEEND, + pub NSPv2SetServiceEx: LPNSPV2SETSERVICEEX, + pub NSPv2ClientSessionRundown: LPNSPV2CLIENTSESSIONRUNDOWN, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for NSPV2_ROUTINE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for NSPV2_ROUTINE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_IO"))] +pub struct NSP_ROUTINE { + pub cbSize: u32, + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, + pub NSPCleanup: LPNSPCLEANUP, + pub NSPLookupServiceBegin: LPNSPLOOKUPSERVICEBEGIN, + pub NSPLookupServiceNext: LPNSPLOOKUPSERVICENEXT, + pub NSPLookupServiceEnd: LPNSPLOOKUPSERVICEEND, + pub NSPSetService: LPNSPSETSERVICE, + pub NSPInstallServiceClass: LPNSPINSTALLSERVICECLASS, + pub NSPRemoveServiceClass: LPNSPREMOVESERVICECLASS, + pub NSPGetServiceClassInfo: LPNSPGETSERVICECLASSINFO, + pub NSPIoctl: LPNSPIOCTL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for NSP_ROUTINE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for NSP_ROUTINE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NS_INFOA { + pub dwNameSpace: u32, + pub dwNameSpaceFlags: u32, + pub lpNameSpace: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for NS_INFOA {} +impl ::core::clone::Clone for NS_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NS_INFOW { + pub dwNameSpace: u32, + pub dwNameSpaceFlags: u32, + pub lpNameSpace: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for NS_INFOW {} +impl ::core::clone::Clone for NS_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct NS_SERVICE_INFOA { + pub dwNameSpace: u32, + pub ServiceInfo: SERVICE_INFOA, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for NS_SERVICE_INFOA {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for NS_SERVICE_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct NS_SERVICE_INFOW { + pub dwNameSpace: u32, + pub ServiceInfo: SERVICE_INFOW, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for NS_SERVICE_INFOW {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for NS_SERVICE_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRIORITY_STATUS { + pub Sender: SOCKET_PRIORITY_HINT, + pub Receiver: SOCKET_PRIORITY_HINT, +} +impl ::core::marker::Copy for PRIORITY_STATUS {} +impl ::core::clone::Clone for PRIORITY_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROTOCOL_INFOA { + pub dwServiceFlags: u32, + pub iAddressFamily: i32, + pub iMaxSockAddr: i32, + pub iMinSockAddr: i32, + pub iSocketType: i32, + pub iProtocol: i32, + pub dwMessageSize: u32, + pub lpProtocol: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for PROTOCOL_INFOA {} +impl ::core::clone::Clone for PROTOCOL_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROTOCOL_INFOW { + pub dwServiceFlags: u32, + pub iAddressFamily: i32, + pub iMaxSockAddr: i32, + pub iMinSockAddr: i32, + pub iSocketType: i32, + pub iProtocol: i32, + pub dwMessageSize: u32, + pub lpProtocol: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PROTOCOL_INFOW {} +impl ::core::clone::Clone for PROTOCOL_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROTOENT { + pub p_name: ::windows_sys::core::PSTR, + pub p_aliases: *mut *mut i8, + pub p_proto: i16, +} +impl ::core::marker::Copy for PROTOENT {} +impl ::core::clone::Clone for PROTOENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct Q2931_IE { + pub IEType: Q2931_IE_TYPE, + pub IELength: u32, + pub IE: [u8; 1], +} +impl ::core::marker::Copy for Q2931_IE {} +impl ::core::clone::Clone for Q2931_IE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QOS { + pub SendingFlowspec: FLOWSPEC, + pub ReceivingFlowspec: FLOWSPEC, + pub ProviderSpecific: WSABUF, +} +impl ::core::marker::Copy for QOS {} +impl ::core::clone::Clone for QOS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RCVALL_IF { + pub Mode: RCVALL_VALUE, + pub Interface: u32, +} +impl ::core::marker::Copy for RCVALL_IF {} +impl ::core::clone::Clone for RCVALL_IF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REAL_TIME_NOTIFICATION_SETTING_INPUT { + pub TransportSettingId: TRANSPORT_SETTING_ID, + pub BrokerEventGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for REAL_TIME_NOTIFICATION_SETTING_INPUT {} +impl ::core::clone::Clone for REAL_TIME_NOTIFICATION_SETTING_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REAL_TIME_NOTIFICATION_SETTING_INPUT_EX { + pub TransportSettingId: TRANSPORT_SETTING_ID, + pub BrokerEventGuid: ::windows_sys::core::GUID, + pub Unmark: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REAL_TIME_NOTIFICATION_SETTING_INPUT_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REAL_TIME_NOTIFICATION_SETTING_INPUT_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REAL_TIME_NOTIFICATION_SETTING_OUTPUT { + pub ChannelStatus: CONTROL_CHANNEL_TRIGGER_STATUS, +} +impl ::core::marker::Copy for REAL_TIME_NOTIFICATION_SETTING_OUTPUT {} +impl ::core::clone::Clone for REAL_TIME_NOTIFICATION_SETTING_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RIORESULT { + pub Status: i32, + pub BytesTransferred: u32, + pub SocketContext: u64, + pub RequestContext: u64, +} +impl ::core::marker::Copy for RIORESULT {} +impl ::core::clone::Clone for RIORESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RIO_BUF { + pub BufferId: RIO_BUFFERID, + pub Offset: u32, + pub Length: u32, +} +impl ::core::marker::Copy for RIO_BUF {} +impl ::core::clone::Clone for RIO_BUF { + fn clone(&self) -> Self { + *self + } +} +pub type RIO_BUFFERID = isize; +#[repr(C)] +pub struct RIO_CMSG_BUFFER { + pub TotalLength: u32, +} +impl ::core::marker::Copy for RIO_CMSG_BUFFER {} +impl ::core::clone::Clone for RIO_CMSG_BUFFER { + fn clone(&self) -> Self { + *self + } +} +pub type RIO_CQ = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RIO_EXTENSION_FUNCTION_TABLE { + pub cbSize: u32, + pub RIOReceive: LPFN_RIORECEIVE, + pub RIOReceiveEx: LPFN_RIORECEIVEEX, + pub RIOSend: LPFN_RIOSEND, + pub RIOSendEx: LPFN_RIOSENDEX, + pub RIOCloseCompletionQueue: LPFN_RIOCLOSECOMPLETIONQUEUE, + pub RIOCreateCompletionQueue: LPFN_RIOCREATECOMPLETIONQUEUE, + pub RIOCreateRequestQueue: LPFN_RIOCREATEREQUESTQUEUE, + pub RIODequeueCompletion: LPFN_RIODEQUEUECOMPLETION, + pub RIODeregisterBuffer: LPFN_RIODEREGISTERBUFFER, + pub RIONotify: LPFN_RIONOTIFY, + pub RIORegisterBuffer: LPFN_RIOREGISTERBUFFER, + pub RIOResizeCompletionQueue: LPFN_RIORESIZECOMPLETIONQUEUE, + pub RIOResizeRequestQueue: LPFN_RIORESIZEREQUESTQUEUE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RIO_EXTENSION_FUNCTION_TABLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RIO_EXTENSION_FUNCTION_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RIO_NOTIFICATION_COMPLETION { + pub Type: RIO_NOTIFICATION_COMPLETION_TYPE, + pub Anonymous: RIO_NOTIFICATION_COMPLETION_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RIO_NOTIFICATION_COMPLETION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RIO_NOTIFICATION_COMPLETION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union RIO_NOTIFICATION_COMPLETION_0 { + pub Event: RIO_NOTIFICATION_COMPLETION_0_0, + pub Iocp: RIO_NOTIFICATION_COMPLETION_0_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RIO_NOTIFICATION_COMPLETION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RIO_NOTIFICATION_COMPLETION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RIO_NOTIFICATION_COMPLETION_0_0 { + pub EventHandle: super::super::Foundation::HANDLE, + pub NotifyReset: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RIO_NOTIFICATION_COMPLETION_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RIO_NOTIFICATION_COMPLETION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RIO_NOTIFICATION_COMPLETION_0_1 { + pub IocpHandle: super::super::Foundation::HANDLE, + pub CompletionKey: *mut ::core::ffi::c_void, + pub Overlapped: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RIO_NOTIFICATION_COMPLETION_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RIO_NOTIFICATION_COMPLETION_0_1 { + fn clone(&self) -> Self { + *self + } +} +pub type RIO_RQ = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RM_FEC_INFO { + pub FECBlockSize: u16, + pub FECProActivePackets: u16, + pub FECGroupSize: u8, + pub fFECOnDemandParityEnabled: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RM_FEC_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RM_FEC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RM_RECEIVER_STATS { + pub NumODataPacketsReceived: u64, + pub NumRDataPacketsReceived: u64, + pub NumDuplicateDataPackets: u64, + pub DataBytesReceived: u64, + pub TotalBytesReceived: u64, + pub RateKBitsPerSecOverall: u64, + pub RateKBitsPerSecLast: u64, + pub TrailingEdgeSeqId: u64, + pub LeadingEdgeSeqId: u64, + pub AverageSequencesInWindow: u64, + pub MinSequencesInWindow: u64, + pub MaxSequencesInWindow: u64, + pub FirstNakSequenceNumber: u64, + pub NumPendingNaks: u64, + pub NumOutstandingNaks: u64, + pub NumDataPacketsBuffered: u64, + pub TotalSelectiveNaksSent: u64, + pub TotalParityNaksSent: u64, +} +impl ::core::marker::Copy for RM_RECEIVER_STATS {} +impl ::core::clone::Clone for RM_RECEIVER_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RM_SENDER_STATS { + pub DataBytesSent: u64, + pub TotalBytesSent: u64, + pub NaksReceived: u64, + pub NaksReceivedTooLate: u64, + pub NumOutstandingNaks: u64, + pub NumNaksAfterRData: u64, + pub RepairPacketsSent: u64, + pub BufferSpaceAvailable: u64, + pub TrailingEdgeSeqId: u64, + pub LeadingEdgeSeqId: u64, + pub RateKBitsPerSecOverall: u64, + pub RateKBitsPerSecLast: u64, + pub TotalODataPacketsSent: u64, +} +impl ::core::marker::Copy for RM_SENDER_STATS {} +impl ::core::clone::Clone for RM_SENDER_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RM_SEND_WINDOW { + pub RateKbitsPerSec: u32, + pub WindowSizeInMSecs: u32, + pub WindowSizeInBytes: u32, +} +impl ::core::marker::Copy for RM_SEND_WINDOW {} +impl ::core::clone::Clone for RM_SEND_WINDOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RSS_SCALABILITY_INFO { + pub RssEnabled: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RSS_SCALABILITY_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RSS_SCALABILITY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCOPE_ID { + pub Anonymous: SCOPE_ID_0, +} +impl ::core::marker::Copy for SCOPE_ID {} +impl ::core::clone::Clone for SCOPE_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SCOPE_ID_0 { + pub Anonymous: SCOPE_ID_0_0, + pub Value: u32, +} +impl ::core::marker::Copy for SCOPE_ID_0 {} +impl ::core::clone::Clone for SCOPE_ID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCOPE_ID_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for SCOPE_ID_0_0 {} +impl ::core::clone::Clone for SCOPE_ID_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SERVENT { + pub s_name: ::windows_sys::core::PSTR, + pub s_aliases: *mut *mut i8, + pub s_proto: ::windows_sys::core::PSTR, + pub s_port: i16, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SERVENT {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SERVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct SERVENT { + pub s_name: ::windows_sys::core::PSTR, + pub s_aliases: *mut *mut i8, + pub s_port: i16, + pub s_proto: ::windows_sys::core::PSTR, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SERVENT {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SERVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_ADDRESS { + pub dwAddressType: u32, + pub dwAddressFlags: u32, + pub dwAddressLength: u32, + pub dwPrincipalLength: u32, + pub lpAddress: *mut u8, + pub lpPrincipal: *mut u8, +} +impl ::core::marker::Copy for SERVICE_ADDRESS {} +impl ::core::clone::Clone for SERVICE_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_ADDRESSES { + pub dwAddressCount: u32, + pub Addresses: [SERVICE_ADDRESS; 1], +} +impl ::core::marker::Copy for SERVICE_ADDRESSES {} +impl ::core::clone::Clone for SERVICE_ADDRESSES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVICE_ASYNC_INFO { + pub lpServiceCallbackProc: LPSERVICE_CALLBACK_PROC, + pub lParam: super::super::Foundation::LPARAM, + pub hAsyncTaskHandle: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVICE_ASYNC_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVICE_ASYNC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct SERVICE_INFOA { + pub lpServiceType: *mut ::windows_sys::core::GUID, + pub lpServiceName: ::windows_sys::core::PSTR, + pub lpComment: ::windows_sys::core::PSTR, + pub lpLocale: ::windows_sys::core::PSTR, + pub dwDisplayHint: RESOURCE_DISPLAY_TYPE, + pub dwVersion: u32, + pub dwTime: u32, + pub lpMachineName: ::windows_sys::core::PSTR, + pub lpServiceAddress: *mut SERVICE_ADDRESSES, + pub ServiceSpecificInfo: super::super::System::Com::BLOB, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for SERVICE_INFOA {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for SERVICE_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct SERVICE_INFOW { + pub lpServiceType: *mut ::windows_sys::core::GUID, + pub lpServiceName: ::windows_sys::core::PWSTR, + pub lpComment: ::windows_sys::core::PWSTR, + pub lpLocale: ::windows_sys::core::PWSTR, + pub dwDisplayHint: RESOURCE_DISPLAY_TYPE, + pub dwVersion: u32, + pub dwTime: u32, + pub lpMachineName: ::windows_sys::core::PWSTR, + pub lpServiceAddress: *mut SERVICE_ADDRESSES, + pub ServiceSpecificInfo: super::super::System::Com::BLOB, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for SERVICE_INFOW {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for SERVICE_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_TYPE_INFO { + pub dwTypeNameOffset: u32, + pub dwValueCount: u32, + pub Values: [SERVICE_TYPE_VALUE; 1], +} +impl ::core::marker::Copy for SERVICE_TYPE_INFO {} +impl ::core::clone::Clone for SERVICE_TYPE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_TYPE_INFO_ABSA { + pub lpTypeName: ::windows_sys::core::PSTR, + pub dwValueCount: u32, + pub Values: [SERVICE_TYPE_VALUE_ABSA; 1], +} +impl ::core::marker::Copy for SERVICE_TYPE_INFO_ABSA {} +impl ::core::clone::Clone for SERVICE_TYPE_INFO_ABSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_TYPE_INFO_ABSW { + pub lpTypeName: ::windows_sys::core::PWSTR, + pub dwValueCount: u32, + pub Values: [SERVICE_TYPE_VALUE_ABSW; 1], +} +impl ::core::marker::Copy for SERVICE_TYPE_INFO_ABSW {} +impl ::core::clone::Clone for SERVICE_TYPE_INFO_ABSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_TYPE_VALUE { + pub dwNameSpace: u32, + pub dwValueType: u32, + pub dwValueSize: u32, + pub dwValueNameOffset: u32, + pub dwValueOffset: u32, +} +impl ::core::marker::Copy for SERVICE_TYPE_VALUE {} +impl ::core::clone::Clone for SERVICE_TYPE_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_TYPE_VALUE_ABSA { + pub dwNameSpace: u32, + pub dwValueType: u32, + pub dwValueSize: u32, + pub lpValueName: ::windows_sys::core::PSTR, + pub lpValue: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SERVICE_TYPE_VALUE_ABSA {} +impl ::core::clone::Clone for SERVICE_TYPE_VALUE_ABSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_TYPE_VALUE_ABSW { + pub dwNameSpace: u32, + pub dwValueType: u32, + pub dwValueSize: u32, + pub lpValueName: ::windows_sys::core::PWSTR, + pub lpValue: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SERVICE_TYPE_VALUE_ABSW {} +impl ::core::clone::Clone for SERVICE_TYPE_VALUE_ABSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SNAP_HEADER { + pub Dsap: u8, + pub Ssap: u8, + pub Control: u8, + pub Oui: [u8; 3], + pub Type: u16, +} +impl ::core::marker::Copy for SNAP_HEADER {} +impl ::core::clone::Clone for SNAP_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR { + pub sa_family: ADDRESS_FAMILY, + pub sa_data: [u8; 14], +} +impl ::core::marker::Copy for SOCKADDR {} +impl ::core::clone::Clone for SOCKADDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_ATM { + pub satm_family: u16, + pub satm_number: ATM_ADDRESS, + pub satm_blli: ATM_BLLI, + pub satm_bhli: ATM_BHLI, +} +impl ::core::marker::Copy for SOCKADDR_ATM {} +impl ::core::clone::Clone for SOCKADDR_ATM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_DL { + pub sdl_family: ADDRESS_FAMILY, + pub sdl_data: [u8; 8], + pub sdl_zero: [u8; 4], +} +impl ::core::marker::Copy for SOCKADDR_DL {} +impl ::core::clone::Clone for SOCKADDR_DL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_IN { + pub sin_family: ADDRESS_FAMILY, + pub sin_port: u16, + pub sin_addr: IN_ADDR, + pub sin_zero: [u8; 8], +} +impl ::core::marker::Copy for SOCKADDR_IN {} +impl ::core::clone::Clone for SOCKADDR_IN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_IN6 { + pub sin6_family: ADDRESS_FAMILY, + pub sin6_port: u16, + pub sin6_flowinfo: u32, + pub sin6_addr: IN6_ADDR, + pub Anonymous: SOCKADDR_IN6_0, +} +impl ::core::marker::Copy for SOCKADDR_IN6 {} +impl ::core::clone::Clone for SOCKADDR_IN6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SOCKADDR_IN6_0 { + pub sin6_scope_id: u32, + pub sin6_scope_struct: SCOPE_ID, +} +impl ::core::marker::Copy for SOCKADDR_IN6_0 {} +impl ::core::clone::Clone for SOCKADDR_IN6_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_IN6_PAIR { + pub SourceAddress: *mut SOCKADDR_IN6, + pub DestinationAddress: *mut SOCKADDR_IN6, +} +impl ::core::marker::Copy for SOCKADDR_IN6_PAIR {} +impl ::core::clone::Clone for SOCKADDR_IN6_PAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_IN6_W2KSP1 { + pub sin6_family: i16, + pub sin6_port: u16, + pub sin6_flowinfo: u32, + pub sin6_addr: IN6_ADDR, + pub sin6_scope_id: u32, +} +impl ::core::marker::Copy for SOCKADDR_IN6_W2KSP1 {} +impl ::core::clone::Clone for SOCKADDR_IN6_W2KSP1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SOCKADDR_INET { + pub Ipv4: SOCKADDR_IN, + pub Ipv6: SOCKADDR_IN6, + pub si_family: ADDRESS_FAMILY, +} +impl ::core::marker::Copy for SOCKADDR_INET {} +impl ::core::clone::Clone for SOCKADDR_INET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_IPX { + pub sa_family: i16, + pub sa_netnum: [u8; 4], + pub sa_nodenum: [u8; 6], + pub sa_socket: u16, +} +impl ::core::marker::Copy for SOCKADDR_IPX {} +impl ::core::clone::Clone for SOCKADDR_IPX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_IRDA { + pub irdaAddressFamily: u16, + pub irdaDeviceID: [u8; 4], + pub irdaServiceName: [u8; 25], +} +impl ::core::marker::Copy for SOCKADDR_IRDA {} +impl ::core::clone::Clone for SOCKADDR_IRDA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_NB { + pub snb_family: i16, + pub snb_type: u16, + pub snb_name: [u8; 16], +} +impl ::core::marker::Copy for SOCKADDR_NB {} +impl ::core::clone::Clone for SOCKADDR_NB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_STORAGE { + pub ss_family: ADDRESS_FAMILY, + pub __ss_pad1: [u8; 6], + pub __ss_align: i64, + pub __ss_pad2: [u8; 112], +} +impl ::core::marker::Copy for SOCKADDR_STORAGE {} +impl ::core::clone::Clone for SOCKADDR_STORAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_STORAGE_XP { + pub ss_family: i16, + pub __ss_pad1: [u8; 6], + pub __ss_align: i64, + pub __ss_pad2: [u8; 112], +} +impl ::core::marker::Copy for SOCKADDR_STORAGE_XP {} +impl ::core::clone::Clone for SOCKADDR_STORAGE_XP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_TP { + pub tp_family: u16, + pub tp_addr_type: u16, + pub tp_taddr_len: u16, + pub tp_tsel_len: u16, + pub tp_addr: [u8; 64], +} +impl ::core::marker::Copy for SOCKADDR_TP {} +impl ::core::clone::Clone for SOCKADDR_TP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_UN { + pub sun_family: ADDRESS_FAMILY, + pub sun_path: [u8; 108], +} +impl ::core::marker::Copy for SOCKADDR_UN {} +impl ::core::clone::Clone for SOCKADDR_UN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKADDR_VNS { + pub sin_family: u16, + pub net_address: [u8; 4], + pub subnet_addr: [u8; 2], + pub port: [u8; 2], + pub hops: u8, + pub filler: [u8; 5], +} +impl ::core::marker::Copy for SOCKADDR_VNS {} +impl ::core::clone::Clone for SOCKADDR_VNS { + fn clone(&self) -> Self { + *self + } +} +pub type SOCKET = usize; +#[repr(C)] +pub struct SOCKET_ADDRESS { + pub lpSockaddr: *mut SOCKADDR, + pub iSockaddrLength: i32, +} +impl ::core::marker::Copy for SOCKET_ADDRESS {} +impl ::core::clone::Clone for SOCKET_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKET_ADDRESS_LIST { + pub iAddressCount: i32, + pub Address: [SOCKET_ADDRESS; 1], +} +impl ::core::marker::Copy for SOCKET_ADDRESS_LIST {} +impl ::core::clone::Clone for SOCKET_ADDRESS_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKET_PEER_TARGET_NAME { + pub SecurityProtocol: SOCKET_SECURITY_PROTOCOL, + pub PeerAddress: SOCKADDR_STORAGE, + pub PeerTargetNameStringLen: u32, + pub AllStrings: [u16; 1], +} +impl ::core::marker::Copy for SOCKET_PEER_TARGET_NAME {} +impl ::core::clone::Clone for SOCKET_PEER_TARGET_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct SOCKET_PROCESSOR_AFFINITY { + pub Processor: super::super::System::Kernel::PROCESSOR_NUMBER, + pub NumaNodeId: u16, + pub Reserved: u16, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for SOCKET_PROCESSOR_AFFINITY {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for SOCKET_PROCESSOR_AFFINITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKET_SECURITY_QUERY_INFO { + pub SecurityProtocol: SOCKET_SECURITY_PROTOCOL, + pub Flags: u32, + pub PeerApplicationAccessTokenHandle: u64, + pub PeerMachineAccessTokenHandle: u64, +} +impl ::core::marker::Copy for SOCKET_SECURITY_QUERY_INFO {} +impl ::core::clone::Clone for SOCKET_SECURITY_QUERY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKET_SECURITY_QUERY_INFO_IPSEC2 { + pub SecurityProtocol: SOCKET_SECURITY_PROTOCOL, + pub Flags: u32, + pub PeerApplicationAccessTokenHandle: u64, + pub PeerMachineAccessTokenHandle: u64, + pub MmSaId: u64, + pub QmSaId: u64, + pub NegotiationWinerr: u32, + pub SaLookupContext: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for SOCKET_SECURITY_QUERY_INFO_IPSEC2 {} +impl ::core::clone::Clone for SOCKET_SECURITY_QUERY_INFO_IPSEC2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKET_SECURITY_QUERY_TEMPLATE { + pub SecurityProtocol: SOCKET_SECURITY_PROTOCOL, + pub PeerAddress: SOCKADDR_STORAGE, + pub PeerTokenAccessMask: u32, +} +impl ::core::marker::Copy for SOCKET_SECURITY_QUERY_TEMPLATE {} +impl ::core::clone::Clone for SOCKET_SECURITY_QUERY_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKET_SECURITY_QUERY_TEMPLATE_IPSEC2 { + pub SecurityProtocol: SOCKET_SECURITY_PROTOCOL, + pub PeerAddress: SOCKADDR_STORAGE, + pub PeerTokenAccessMask: u32, + pub Flags: u32, + pub FieldMask: u32, +} +impl ::core::marker::Copy for SOCKET_SECURITY_QUERY_TEMPLATE_IPSEC2 {} +impl ::core::clone::Clone for SOCKET_SECURITY_QUERY_TEMPLATE_IPSEC2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKET_SECURITY_SETTINGS { + pub SecurityProtocol: SOCKET_SECURITY_PROTOCOL, + pub SecurityFlags: u32, +} +impl ::core::marker::Copy for SOCKET_SECURITY_SETTINGS {} +impl ::core::clone::Clone for SOCKET_SECURITY_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCKET_SECURITY_SETTINGS_IPSEC { + pub SecurityProtocol: SOCKET_SECURITY_PROTOCOL, + pub SecurityFlags: u32, + pub IpsecFlags: u32, + pub AuthipMMPolicyKey: ::windows_sys::core::GUID, + pub AuthipQMPolicyKey: ::windows_sys::core::GUID, + pub Reserved: ::windows_sys::core::GUID, + pub Reserved2: u64, + pub UserNameStringLen: u32, + pub DomainNameStringLen: u32, + pub PasswordStringLen: u32, + pub AllStrings: [u16; 1], +} +impl ::core::marker::Copy for SOCKET_SECURITY_SETTINGS_IPSEC {} +impl ::core::clone::Clone for SOCKET_SECURITY_SETTINGS_IPSEC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOCK_NOTIFY_REGISTRATION { + pub socket: SOCKET, + pub completionKey: *mut ::core::ffi::c_void, + pub eventFilter: u16, + pub operation: u8, + pub triggerFlags: u8, + pub registrationResult: u32, +} +impl ::core::marker::Copy for SOCK_NOTIFY_REGISTRATION {} +impl ::core::clone::Clone for SOCK_NOTIFY_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_ACK_FREQUENCY_PARAMETERS { + pub TcpDelayedAckFrequency: u8, +} +impl ::core::marker::Copy for TCP_ACK_FREQUENCY_PARAMETERS {} +impl ::core::clone::Clone for TCP_ACK_FREQUENCY_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCP_HDR { + pub th_sport: u16, + pub th_dport: u16, + pub th_seq: u32, + pub th_ack: u32, + pub _bitfield: u8, + pub th_flags: u8, + pub th_win: u16, + pub th_sum: u16, + pub th_urp: u16, +} +impl ::core::marker::Copy for TCP_HDR {} +impl ::core::clone::Clone for TCP_HDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_ICW_PARAMETERS { + pub Level: TCP_ICW_LEVEL, +} +impl ::core::marker::Copy for TCP_ICW_PARAMETERS {} +impl ::core::clone::Clone for TCP_ICW_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCP_INFO_v0 { + pub State: TCPSTATE, + pub Mss: u32, + pub ConnectionTimeMs: u64, + pub TimestampsEnabled: super::super::Foundation::BOOLEAN, + pub RttUs: u32, + pub MinRttUs: u32, + pub BytesInFlight: u32, + pub Cwnd: u32, + pub SndWnd: u32, + pub RcvWnd: u32, + pub RcvBuf: u32, + pub BytesOut: u64, + pub BytesIn: u64, + pub BytesReordered: u32, + pub BytesRetrans: u32, + pub FastRetrans: u32, + pub DupAcksIn: u32, + pub TimeoutEpisodes: u32, + pub SynRetrans: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCP_INFO_v0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCP_INFO_v0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCP_INFO_v1 { + pub State: TCPSTATE, + pub Mss: u32, + pub ConnectionTimeMs: u64, + pub TimestampsEnabled: super::super::Foundation::BOOLEAN, + pub RttUs: u32, + pub MinRttUs: u32, + pub BytesInFlight: u32, + pub Cwnd: u32, + pub SndWnd: u32, + pub RcvWnd: u32, + pub RcvBuf: u32, + pub BytesOut: u64, + pub BytesIn: u64, + pub BytesReordered: u32, + pub BytesRetrans: u32, + pub FastRetrans: u32, + pub DupAcksIn: u32, + pub TimeoutEpisodes: u32, + pub SynRetrans: u8, + pub SndLimTransRwin: u32, + pub SndLimTimeRwin: u32, + pub SndLimBytesRwin: u64, + pub SndLimTransCwnd: u32, + pub SndLimTimeCwnd: u32, + pub SndLimBytesCwnd: u64, + pub SndLimTransSnd: u32, + pub SndLimTimeSnd: u32, + pub SndLimBytesSnd: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCP_INFO_v1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCP_INFO_v1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_INITIAL_RTO_PARAMETERS { + pub Rtt: u16, + pub MaxSynRetransmissions: u8, +} +impl ::core::marker::Copy for TCP_INITIAL_RTO_PARAMETERS {} +impl ::core::clone::Clone for TCP_INITIAL_RTO_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCP_OPT_FASTOPEN { + pub Kind: u8, + pub Length: u8, + pub Cookie: [u8; 1], +} +impl ::core::marker::Copy for TCP_OPT_FASTOPEN {} +impl ::core::clone::Clone for TCP_OPT_FASTOPEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCP_OPT_MSS { + pub Kind: u8, + pub Length: u8, + pub Mss: u16, +} +impl ::core::marker::Copy for TCP_OPT_MSS {} +impl ::core::clone::Clone for TCP_OPT_MSS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCP_OPT_SACK { + pub Kind: u8, + pub Length: u8, + pub Block: [TCP_OPT_SACK_0; 1], +} +impl ::core::marker::Copy for TCP_OPT_SACK {} +impl ::core::clone::Clone for TCP_OPT_SACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCP_OPT_SACK_0 { + pub Left: u32, + pub Right: u32, +} +impl ::core::marker::Copy for TCP_OPT_SACK_0 {} +impl ::core::clone::Clone for TCP_OPT_SACK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCP_OPT_SACK_PERMITTED { + pub Kind: u8, + pub Length: u8, +} +impl ::core::marker::Copy for TCP_OPT_SACK_PERMITTED {} +impl ::core::clone::Clone for TCP_OPT_SACK_PERMITTED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCP_OPT_TS { + pub Kind: u8, + pub Length: u8, + pub Val: u32, + pub EcR: u32, +} +impl ::core::marker::Copy for TCP_OPT_TS {} +impl ::core::clone::Clone for TCP_OPT_TS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCP_OPT_UNKNOWN { + pub Kind: u8, + pub Length: u8, +} +impl ::core::marker::Copy for TCP_OPT_UNKNOWN {} +impl ::core::clone::Clone for TCP_OPT_UNKNOWN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCP_OPT_WS { + pub Kind: u8, + pub Length: u8, + pub ShiftCnt: u8, +} +impl ::core::marker::Copy for TCP_OPT_WS {} +impl ::core::clone::Clone for TCP_OPT_WS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TIMESTAMPING_CONFIG { + pub Flags: u32, + pub TxTimestampsBuffered: u16, +} +impl ::core::marker::Copy for TIMESTAMPING_CONFIG {} +impl ::core::clone::Clone for TIMESTAMPING_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TIMEVAL { + pub tv_sec: i32, + pub tv_usec: i32, +} +impl ::core::marker::Copy for TIMEVAL {} +impl ::core::clone::Clone for TIMEVAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSMIT_FILE_BUFFERS { + pub Head: *mut ::core::ffi::c_void, + pub HeadLength: u32, + pub Tail: *mut ::core::ffi::c_void, + pub TailLength: u32, +} +impl ::core::marker::Copy for TRANSMIT_FILE_BUFFERS {} +impl ::core::clone::Clone for TRANSMIT_FILE_BUFFERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRANSMIT_PACKETS_ELEMENT { + pub dwElFlags: u32, + pub cLength: u32, + pub Anonymous: TRANSMIT_PACKETS_ELEMENT_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRANSMIT_PACKETS_ELEMENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRANSMIT_PACKETS_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union TRANSMIT_PACKETS_ELEMENT_0 { + pub Anonymous: TRANSMIT_PACKETS_ELEMENT_0_0, + pub pBuffer: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRANSMIT_PACKETS_ELEMENT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRANSMIT_PACKETS_ELEMENT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRANSMIT_PACKETS_ELEMENT_0_0 { + pub nFileOffset: i64, + pub hFile: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRANSMIT_PACKETS_ELEMENT_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRANSMIT_PACKETS_ELEMENT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSPORT_SETTING_ID { + pub Guid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for TRANSPORT_SETTING_ID {} +impl ::core::clone::Clone for TRANSPORT_SETTING_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VLAN_TAG { + pub Anonymous: VLAN_TAG_0, + pub Type: u16, +} +impl ::core::marker::Copy for VLAN_TAG {} +impl ::core::clone::Clone for VLAN_TAG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VLAN_TAG_0 { + pub Tag: u16, + pub Anonymous: VLAN_TAG_0_0, +} +impl ::core::marker::Copy for VLAN_TAG_0 {} +impl ::core::clone::Clone for VLAN_TAG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VLAN_TAG_0_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for VLAN_TAG_0_0 {} +impl ::core::clone::Clone for VLAN_TAG_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WCE_DEVICELIST { + pub numDevice: u32, + pub Device: [WCE_IRDA_DEVICE_INFO; 1], +} +impl ::core::marker::Copy for WCE_DEVICELIST {} +impl ::core::clone::Clone for WCE_DEVICELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WCE_IRDA_DEVICE_INFO { + pub irdaDeviceID: [u8; 4], + pub irdaDeviceName: [u8; 22], + pub Reserved: [u8; 2], +} +impl ::core::marker::Copy for WCE_IRDA_DEVICE_INFO {} +impl ::core::clone::Clone for WCE_IRDA_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINDOWS_DEVICELIST { + pub numDevice: u32, + pub Device: [WINDOWS_IRDA_DEVICE_INFO; 1], +} +impl ::core::marker::Copy for WINDOWS_DEVICELIST {} +impl ::core::clone::Clone for WINDOWS_DEVICELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINDOWS_IAS_QUERY { + pub irdaDeviceID: [u8; 4], + pub irdaClassName: [u8; 64], + pub irdaAttribName: [u8; 256], + pub irdaAttribType: u32, + pub irdaAttribute: WINDOWS_IAS_QUERY_0, +} +impl ::core::marker::Copy for WINDOWS_IAS_QUERY {} +impl ::core::clone::Clone for WINDOWS_IAS_QUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WINDOWS_IAS_QUERY_0 { + pub irdaAttribInt: i32, + pub irdaAttribOctetSeq: WINDOWS_IAS_QUERY_0_0, + pub irdaAttribUsrStr: WINDOWS_IAS_QUERY_0_1, +} +impl ::core::marker::Copy for WINDOWS_IAS_QUERY_0 {} +impl ::core::clone::Clone for WINDOWS_IAS_QUERY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINDOWS_IAS_QUERY_0_0 { + pub Len: u32, + pub OctetSeq: [u8; 1024], +} +impl ::core::marker::Copy for WINDOWS_IAS_QUERY_0_0 {} +impl ::core::clone::Clone for WINDOWS_IAS_QUERY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINDOWS_IAS_QUERY_0_1 { + pub Len: u32, + pub CharSet: u32, + pub UsrStr: [u8; 256], +} +impl ::core::marker::Copy for WINDOWS_IAS_QUERY_0_1 {} +impl ::core::clone::Clone for WINDOWS_IAS_QUERY_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINDOWS_IAS_SET { + pub irdaClassName: [u8; 64], + pub irdaAttribName: [u8; 256], + pub irdaAttribType: u32, + pub irdaAttribute: WINDOWS_IAS_SET_0, +} +impl ::core::marker::Copy for WINDOWS_IAS_SET {} +impl ::core::clone::Clone for WINDOWS_IAS_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WINDOWS_IAS_SET_0 { + pub irdaAttribInt: i32, + pub irdaAttribOctetSeq: WINDOWS_IAS_SET_0_0, + pub irdaAttribUsrStr: WINDOWS_IAS_SET_0_1, +} +impl ::core::marker::Copy for WINDOWS_IAS_SET_0 {} +impl ::core::clone::Clone for WINDOWS_IAS_SET_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINDOWS_IAS_SET_0_0 { + pub Len: u16, + pub OctetSeq: [u8; 1024], +} +impl ::core::marker::Copy for WINDOWS_IAS_SET_0_0 {} +impl ::core::clone::Clone for WINDOWS_IAS_SET_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINDOWS_IAS_SET_0_1 { + pub Len: u8, + pub CharSet: u8, + pub UsrStr: [u8; 256], +} +impl ::core::marker::Copy for WINDOWS_IAS_SET_0_1 {} +impl ::core::clone::Clone for WINDOWS_IAS_SET_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINDOWS_IRDA_DEVICE_INFO { + pub irdaDeviceID: [u8; 4], + pub irdaDeviceName: [u8; 22], + pub irdaDeviceHints1: u8, + pub irdaDeviceHints2: u8, + pub irdaCharSet: u8, +} +impl ::core::marker::Copy for WINDOWS_IRDA_DEVICE_INFO {} +impl ::core::clone::Clone for WINDOWS_IRDA_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSABUF { + pub len: u32, + pub buf: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for WSABUF {} +impl ::core::clone::Clone for WSABUF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct WSACOMPLETION { + pub Type: WSACOMPLETIONTYPE, + pub Parameters: WSACOMPLETION_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for WSACOMPLETION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for WSACOMPLETION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub union WSACOMPLETION_0 { + pub WindowMessage: WSACOMPLETION_0_3, + pub Event: WSACOMPLETION_0_1, + pub Apc: WSACOMPLETION_0_0, + pub Port: WSACOMPLETION_0_2, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for WSACOMPLETION_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for WSACOMPLETION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct WSACOMPLETION_0_0 { + pub lpOverlapped: *mut super::super::System::IO::OVERLAPPED, + pub lpfnCompletionProc: LPWSAOVERLAPPED_COMPLETION_ROUTINE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for WSACOMPLETION_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for WSACOMPLETION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct WSACOMPLETION_0_1 { + pub lpOverlapped: *mut super::super::System::IO::OVERLAPPED, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for WSACOMPLETION_0_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for WSACOMPLETION_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct WSACOMPLETION_0_2 { + pub lpOverlapped: *mut super::super::System::IO::OVERLAPPED, + pub hPort: super::super::Foundation::HANDLE, + pub Key: usize, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for WSACOMPLETION_0_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for WSACOMPLETION_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct WSACOMPLETION_0_3 { + pub hWnd: super::super::Foundation::HWND, + pub uMsg: u32, + pub context: super::super::Foundation::WPARAM, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for WSACOMPLETION_0_3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for WSACOMPLETION_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct WSADATA { + pub wVersion: u16, + pub wHighVersion: u16, + pub iMaxSockets: u16, + pub iMaxUdpDg: u16, + pub lpVendorInfo: ::windows_sys::core::PSTR, + pub szDescription: [u8; 257], + pub szSystemStatus: [u8; 129], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for WSADATA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for WSADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct WSADATA { + pub wVersion: u16, + pub wHighVersion: u16, + pub szDescription: [u8; 257], + pub szSystemStatus: [u8; 129], + pub iMaxSockets: u16, + pub iMaxUdpDg: u16, + pub lpVendorInfo: ::windows_sys::core::PSTR, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for WSADATA {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for WSADATA { + fn clone(&self) -> Self { + *self + } +} +pub type WSAEVENT = isize; +#[repr(C)] +pub struct WSAMSG { + pub name: *mut SOCKADDR, + pub namelen: i32, + pub lpBuffers: *mut WSABUF, + pub dwBufferCount: u32, + pub Control: WSABUF, + pub dwFlags: u32, +} +impl ::core::marker::Copy for WSAMSG {} +impl ::core::clone::Clone for WSAMSG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSANAMESPACE_INFOA { + pub NSProviderId: ::windows_sys::core::GUID, + pub dwNameSpace: u32, + pub fActive: super::super::Foundation::BOOL, + pub dwVersion: u32, + pub lpszIdentifier: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSANAMESPACE_INFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSANAMESPACE_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct WSANAMESPACE_INFOEXA { + pub NSProviderId: ::windows_sys::core::GUID, + pub dwNameSpace: u32, + pub fActive: super::super::Foundation::BOOL, + pub dwVersion: u32, + pub lpszIdentifier: ::windows_sys::core::PSTR, + pub ProviderSpecific: super::super::System::Com::BLOB, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for WSANAMESPACE_INFOEXA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for WSANAMESPACE_INFOEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct WSANAMESPACE_INFOEXW { + pub NSProviderId: ::windows_sys::core::GUID, + pub dwNameSpace: u32, + pub fActive: super::super::Foundation::BOOL, + pub dwVersion: u32, + pub lpszIdentifier: ::windows_sys::core::PWSTR, + pub ProviderSpecific: super::super::System::Com::BLOB, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for WSANAMESPACE_INFOEXW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for WSANAMESPACE_INFOEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSANAMESPACE_INFOW { + pub NSProviderId: ::windows_sys::core::GUID, + pub dwNameSpace: u32, + pub fActive: super::super::Foundation::BOOL, + pub dwVersion: u32, + pub lpszIdentifier: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSANAMESPACE_INFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSANAMESPACE_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSANETWORKEVENTS { + pub lNetworkEvents: i32, + pub iErrorCode: [i32; 10], +} +impl ::core::marker::Copy for WSANETWORKEVENTS {} +impl ::core::clone::Clone for WSANETWORKEVENTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSANSCLASSINFOA { + pub lpszName: ::windows_sys::core::PSTR, + pub dwNameSpace: u32, + pub dwValueType: u32, + pub dwValueSize: u32, + pub lpValue: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WSANSCLASSINFOA {} +impl ::core::clone::Clone for WSANSCLASSINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSANSCLASSINFOW { + pub lpszName: ::windows_sys::core::PWSTR, + pub dwNameSpace: u32, + pub dwValueType: u32, + pub dwValueSize: u32, + pub lpValue: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WSANSCLASSINFOW {} +impl ::core::clone::Clone for WSANSCLASSINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSAPOLLDATA { + pub result: i32, + pub fds: u32, + pub timeout: i32, + pub fdArray: [WSAPOLLFD; 1], +} +impl ::core::marker::Copy for WSAPOLLDATA {} +impl ::core::clone::Clone for WSAPOLLDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSAPOLLFD { + pub fd: SOCKET, + pub events: WSAPOLL_EVENT_FLAGS, + pub revents: WSAPOLL_EVENT_FLAGS, +} +impl ::core::marker::Copy for WSAPOLLFD {} +impl ::core::clone::Clone for WSAPOLLFD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSAPROTOCOLCHAIN { + pub ChainLen: i32, + pub ChainEntries: [u32; 7], +} +impl ::core::marker::Copy for WSAPROTOCOLCHAIN {} +impl ::core::clone::Clone for WSAPROTOCOLCHAIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSAPROTOCOL_INFOA { + pub dwServiceFlags1: u32, + pub dwServiceFlags2: u32, + pub dwServiceFlags3: u32, + pub dwServiceFlags4: u32, + pub dwProviderFlags: u32, + pub ProviderId: ::windows_sys::core::GUID, + pub dwCatalogEntryId: u32, + pub ProtocolChain: WSAPROTOCOLCHAIN, + pub iVersion: i32, + pub iAddressFamily: i32, + pub iMaxSockAddr: i32, + pub iMinSockAddr: i32, + pub iSocketType: i32, + pub iProtocol: i32, + pub iProtocolMaxOffset: i32, + pub iNetworkByteOrder: i32, + pub iSecurityScheme: i32, + pub dwMessageSize: u32, + pub dwProviderReserved: u32, + pub szProtocol: [u8; 256], +} +impl ::core::marker::Copy for WSAPROTOCOL_INFOA {} +impl ::core::clone::Clone for WSAPROTOCOL_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSAPROTOCOL_INFOW { + pub dwServiceFlags1: u32, + pub dwServiceFlags2: u32, + pub dwServiceFlags3: u32, + pub dwServiceFlags4: u32, + pub dwProviderFlags: u32, + pub ProviderId: ::windows_sys::core::GUID, + pub dwCatalogEntryId: u32, + pub ProtocolChain: WSAPROTOCOLCHAIN, + pub iVersion: i32, + pub iAddressFamily: i32, + pub iMaxSockAddr: i32, + pub iMinSockAddr: i32, + pub iSocketType: i32, + pub iProtocol: i32, + pub iProtocolMaxOffset: i32, + pub iNetworkByteOrder: i32, + pub iSecurityScheme: i32, + pub dwMessageSize: u32, + pub dwProviderReserved: u32, + pub szProtocol: [u16; 256], +} +impl ::core::marker::Copy for WSAPROTOCOL_INFOW {} +impl ::core::clone::Clone for WSAPROTOCOL_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct WSAQUERYSET2A { + pub dwSize: u32, + pub lpszServiceInstanceName: ::windows_sys::core::PSTR, + pub lpVersion: *mut WSAVERSION, + pub lpszComment: ::windows_sys::core::PSTR, + pub dwNameSpace: u32, + pub lpNSProviderId: *mut ::windows_sys::core::GUID, + pub lpszContext: ::windows_sys::core::PSTR, + pub dwNumberOfProtocols: u32, + pub lpafpProtocols: *mut AFPROTOCOLS, + pub lpszQueryString: ::windows_sys::core::PSTR, + pub dwNumberOfCsAddrs: u32, + pub lpcsaBuffer: *mut CSADDR_INFO, + pub dwOutputFlags: u32, + pub lpBlob: *mut super::super::System::Com::BLOB, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for WSAQUERYSET2A {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for WSAQUERYSET2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct WSAQUERYSET2W { + pub dwSize: u32, + pub lpszServiceInstanceName: ::windows_sys::core::PWSTR, + pub lpVersion: *mut WSAVERSION, + pub lpszComment: ::windows_sys::core::PWSTR, + pub dwNameSpace: u32, + pub lpNSProviderId: *mut ::windows_sys::core::GUID, + pub lpszContext: ::windows_sys::core::PWSTR, + pub dwNumberOfProtocols: u32, + pub lpafpProtocols: *mut AFPROTOCOLS, + pub lpszQueryString: ::windows_sys::core::PWSTR, + pub dwNumberOfCsAddrs: u32, + pub lpcsaBuffer: *mut CSADDR_INFO, + pub dwOutputFlags: u32, + pub lpBlob: *mut super::super::System::Com::BLOB, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for WSAQUERYSET2W {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for WSAQUERYSET2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct WSAQUERYSETA { + pub dwSize: u32, + pub lpszServiceInstanceName: ::windows_sys::core::PSTR, + pub lpServiceClassId: *mut ::windows_sys::core::GUID, + pub lpVersion: *mut WSAVERSION, + pub lpszComment: ::windows_sys::core::PSTR, + pub dwNameSpace: u32, + pub lpNSProviderId: *mut ::windows_sys::core::GUID, + pub lpszContext: ::windows_sys::core::PSTR, + pub dwNumberOfProtocols: u32, + pub lpafpProtocols: *mut AFPROTOCOLS, + pub lpszQueryString: ::windows_sys::core::PSTR, + pub dwNumberOfCsAddrs: u32, + pub lpcsaBuffer: *mut CSADDR_INFO, + pub dwOutputFlags: u32, + pub lpBlob: *mut super::super::System::Com::BLOB, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for WSAQUERYSETA {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for WSAQUERYSETA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct WSAQUERYSETW { + pub dwSize: u32, + pub lpszServiceInstanceName: ::windows_sys::core::PWSTR, + pub lpServiceClassId: *mut ::windows_sys::core::GUID, + pub lpVersion: *mut WSAVERSION, + pub lpszComment: ::windows_sys::core::PWSTR, + pub dwNameSpace: u32, + pub lpNSProviderId: *mut ::windows_sys::core::GUID, + pub lpszContext: ::windows_sys::core::PWSTR, + pub dwNumberOfProtocols: u32, + pub lpafpProtocols: *mut AFPROTOCOLS, + pub lpszQueryString: ::windows_sys::core::PWSTR, + pub dwNumberOfCsAddrs: u32, + pub lpcsaBuffer: *mut CSADDR_INFO, + pub dwOutputFlags: u32, + pub lpBlob: *mut super::super::System::Com::BLOB, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for WSAQUERYSETW {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for WSAQUERYSETW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct WSASENDMSG { + pub lpMsg: *mut WSAMSG, + pub dwFlags: u32, + pub lpNumberOfBytesSent: *mut u32, + pub lpOverlapped: *mut super::super::System::IO::OVERLAPPED, + pub lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for WSASENDMSG {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for WSASENDMSG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSASERVICECLASSINFOA { + pub lpServiceClassId: *mut ::windows_sys::core::GUID, + pub lpszServiceClassName: ::windows_sys::core::PSTR, + pub dwCount: u32, + pub lpClassInfos: *mut WSANSCLASSINFOA, +} +impl ::core::marker::Copy for WSASERVICECLASSINFOA {} +impl ::core::clone::Clone for WSASERVICECLASSINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSASERVICECLASSINFOW { + pub lpServiceClassId: *mut ::windows_sys::core::GUID, + pub lpszServiceClassName: ::windows_sys::core::PWSTR, + pub dwCount: u32, + pub lpClassInfos: *mut WSANSCLASSINFOW, +} +impl ::core::marker::Copy for WSASERVICECLASSINFOW {} +impl ::core::clone::Clone for WSASERVICECLASSINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSATHREADID { + pub ThreadHandle: super::super::Foundation::HANDLE, + pub Reserved: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSATHREADID {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSATHREADID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSAVERSION { + pub dwVersion: u32, + pub ecHow: WSAECOMPARATOR, +} +impl ::core::marker::Copy for WSAVERSION {} +impl ::core::clone::Clone for WSAVERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSA_COMPATIBILITY_MODE { + pub BehaviorId: WSA_COMPATIBILITY_BEHAVIOR_ID, + pub TargetOsVersion: u32, +} +impl ::core::marker::Copy for WSA_COMPATIBILITY_MODE {} +impl ::core::clone::Clone for WSA_COMPATIBILITY_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSC_PROVIDER_AUDIT_INFO { + pub RecordSize: u32, + pub Reserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WSC_PROVIDER_AUDIT_INFO {} +impl ::core::clone::Clone for WSC_PROVIDER_AUDIT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSPDATA { + pub wVersion: u16, + pub wHighVersion: u16, + pub szDescription: [u16; 256], +} +impl ::core::marker::Copy for WSPDATA {} +impl ::core::clone::Clone for WSPDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct WSPPROC_TABLE { + pub lpWSPAccept: LPWSPACCEPT, + pub lpWSPAddressToString: LPWSPADDRESSTOSTRING, + pub lpWSPAsyncSelect: LPWSPASYNCSELECT, + pub lpWSPBind: LPWSPBIND, + pub lpWSPCancelBlockingCall: LPWSPCANCELBLOCKINGCALL, + pub lpWSPCleanup: LPWSPCLEANUP, + pub lpWSPCloseSocket: LPWSPCLOSESOCKET, + pub lpWSPConnect: LPWSPCONNECT, + pub lpWSPDuplicateSocket: LPWSPDUPLICATESOCKET, + pub lpWSPEnumNetworkEvents: LPWSPENUMNETWORKEVENTS, + pub lpWSPEventSelect: LPWSPEVENTSELECT, + pub lpWSPGetOverlappedResult: LPWSPGETOVERLAPPEDRESULT, + pub lpWSPGetPeerName: LPWSPGETPEERNAME, + pub lpWSPGetSockName: LPWSPGETSOCKNAME, + pub lpWSPGetSockOpt: LPWSPGETSOCKOPT, + pub lpWSPGetQOSByName: LPWSPGETQOSBYNAME, + pub lpWSPIoctl: LPWSPIOCTL, + pub lpWSPJoinLeaf: LPWSPJOINLEAF, + pub lpWSPListen: LPWSPLISTEN, + pub lpWSPRecv: LPWSPRECV, + pub lpWSPRecvDisconnect: LPWSPRECVDISCONNECT, + pub lpWSPRecvFrom: LPWSPRECVFROM, + pub lpWSPSelect: LPWSPSELECT, + pub lpWSPSend: LPWSPSEND, + pub lpWSPSendDisconnect: LPWSPSENDDISCONNECT, + pub lpWSPSendTo: LPWSPSENDTO, + pub lpWSPSetSockOpt: LPWSPSETSOCKOPT, + pub lpWSPShutdown: LPWSPSHUTDOWN, + pub lpWSPSocket: LPWSPSOCKET, + pub lpWSPStringToAddress: LPWSPSTRINGTOADDRESS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for WSPPROC_TABLE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for WSPPROC_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSPUPCALLTABLE { + pub lpWPUCloseEvent: LPWPUCLOSEEVENT, + pub lpWPUCloseSocketHandle: LPWPUCLOSESOCKETHANDLE, + pub lpWPUCreateEvent: LPWPUCREATEEVENT, + pub lpWPUCreateSocketHandle: LPWPUCREATESOCKETHANDLE, + pub lpWPUFDIsSet: LPWPUFDISSET, + pub lpWPUGetProviderPath: LPWPUGETPROVIDERPATH, + pub lpWPUModifyIFSHandle: LPWPUMODIFYIFSHANDLE, + pub lpWPUPostMessage: LPWPUPOSTMESSAGE, + pub lpWPUQueryBlockingCallback: LPWPUQUERYBLOCKINGCALLBACK, + pub lpWPUQuerySocketHandleContext: LPWPUQUERYSOCKETHANDLECONTEXT, + pub lpWPUQueueApc: LPWPUQUEUEAPC, + pub lpWPUResetEvent: LPWPURESETEVENT, + pub lpWPUSetEvent: LPWPUSETEVENT, + pub lpWPUOpenCurrentThread: LPWPUOPENCURRENTTHREAD, + pub lpWPUCloseThread: LPWPUCLOSETHREAD, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSPUPCALLTABLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSPUPCALLTABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct netent { + pub n_name: ::windows_sys::core::PSTR, + pub n_aliases: *mut *mut i8, + pub n_addrtype: i16, + pub n_net: u32, +} +impl ::core::marker::Copy for netent {} +impl ::core::clone::Clone for netent { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union sockaddr_gen { + pub Address: SOCKADDR, + pub AddressIn: SOCKADDR_IN, + pub AddressIn6: sockaddr_in6_old, +} +impl ::core::marker::Copy for sockaddr_gen {} +impl ::core::clone::Clone for sockaddr_gen { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct sockaddr_in6_old { + pub sin6_family: i16, + pub sin6_port: u16, + pub sin6_flowinfo: u32, + pub sin6_addr: IN6_ADDR, +} +impl ::core::marker::Copy for sockaddr_in6_old {} +impl ::core::clone::Clone for sockaddr_in6_old { + fn clone(&self) -> Self { + *self + } +} +pub type socklen_t = i32; +#[repr(C)] +pub struct sockproto { + pub sp_family: u16, + pub sp_protocol: u16, +} +impl ::core::marker::Copy for sockproto {} +impl ::core::clone::Clone for sockproto { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct tcp_keepalive { + pub onoff: u32, + pub keepalivetime: u32, + pub keepaliveinterval: u32, +} +impl ::core::marker::Copy for tcp_keepalive {} +impl ::core::clone::Clone for tcp_keepalive { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPBLOCKINGCALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +pub type LPCONDITIONPROC = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPFN_ACCEPTEX = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPFN_CONNECTEX = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPFN_DISCONNECTEX = ::core::option::Option super::super::Foundation::BOOL>; +pub type LPFN_GETACCEPTEXSOCKADDRS = ::core::option::Option ()>; +pub type LPFN_NSPAPI = ::core::option::Option u32>; +pub type LPFN_RIOCLOSECOMPLETIONQUEUE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFN_RIOCREATECOMPLETIONQUEUE = ::core::option::Option RIO_CQ>; +pub type LPFN_RIOCREATEREQUESTQUEUE = ::core::option::Option RIO_RQ>; +pub type LPFN_RIODEQUEUECOMPLETION = ::core::option::Option u32>; +pub type LPFN_RIODEREGISTERBUFFER = ::core::option::Option ()>; +pub type LPFN_RIONOTIFY = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFN_RIORECEIVE = ::core::option::Option super::super::Foundation::BOOL>; +pub type LPFN_RIORECEIVEEX = ::core::option::Option i32>; +pub type LPFN_RIOREGISTERBUFFER = ::core::option::Option RIO_BUFFERID>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFN_RIORESIZECOMPLETIONQUEUE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFN_RIORESIZEREQUESTQUEUE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFN_RIOSEND = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFN_RIOSENDEX = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPFN_TRANSMITFILE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPFN_TRANSMITPACKETS = ::core::option::Option super::super::Foundation::BOOL>; +pub type LPFN_WSAPOLL = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPFN_WSARECVMSG = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPFN_WSASENDMSG = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPLOOKUPSERVICE_COMPLETION_ROUTINE = ::core::option::Option ()>; +pub type LPNSPCLEANUP = ::core::option::Option i32>; +pub type LPNSPGETSERVICECLASSINFO = ::core::option::Option i32>; +pub type LPNSPINSTALLSERVICECLASS = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPNSPIOCTL = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub type LPNSPLOOKUPSERVICEBEGIN = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPNSPLOOKUPSERVICEEND = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub type LPNSPLOOKUPSERVICENEXT = ::core::option::Option i32>; +pub type LPNSPREMOVESERVICECLASS = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub type LPNSPSETSERVICE = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_IO"))] +pub type LPNSPSTARTUP = ::core::option::Option i32>; +pub type LPNSPV2CLEANUP = ::core::option::Option i32>; +pub type LPNSPV2CLIENTSESSIONRUNDOWN = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub type LPNSPV2LOOKUPSERVICEBEGIN = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPNSPV2LOOKUPSERVICEEND = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub type LPNSPV2LOOKUPSERVICENEXTEX = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub type LPNSPV2SETSERVICEEX = ::core::option::Option ()>; +pub type LPNSPV2STARTUP = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPSERVICE_CALLBACK_PROC = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWPUCLOSEEVENT = ::core::option::Option super::super::Foundation::BOOL>; +pub type LPWPUCLOSESOCKETHANDLE = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWPUCLOSETHREAD = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPWPUCOMPLETEOVERLAPPEDREQUEST = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWPUCREATEEVENT = ::core::option::Option super::super::Foundation::HANDLE>; +pub type LPWPUCREATESOCKETHANDLE = ::core::option::Option SOCKET>; +pub type LPWPUFDISSET = ::core::option::Option i32>; +pub type LPWPUGETPROVIDERPATH = ::core::option::Option i32>; +pub type LPWPUMODIFYIFSHANDLE = ::core::option::Option SOCKET>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWPUOPENCURRENTTHREAD = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWPUPOSTMESSAGE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWPUQUERYBLOCKINGCALLBACK = ::core::option::Option i32>; +pub type LPWPUQUERYSOCKETHANDLECONTEXT = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWPUQUEUEAPC = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWPURESETEVENT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWPUSETEVENT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPWSAOVERLAPPED_COMPLETION_ROUTINE = ::core::option::Option ()>; +pub type LPWSAUSERAPC = ::core::option::Option ()>; +pub type LPWSCDEINSTALLPROVIDER = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWSCENABLENSPROVIDER = ::core::option::Option i32>; +pub type LPWSCENUMPROTOCOLS = ::core::option::Option i32>; +pub type LPWSCGETPROVIDERPATH = ::core::option::Option i32>; +pub type LPWSCINSTALLNAMESPACE = ::core::option::Option i32>; +pub type LPWSCINSTALLPROVIDER = ::core::option::Option i32>; +pub type LPWSCUNINSTALLNAMESPACE = ::core::option::Option i32>; +pub type LPWSCUPDATEPROVIDER = ::core::option::Option i32>; +pub type LPWSCWRITENAMESPACEORDER = ::core::option::Option i32>; +pub type LPWSCWRITEPROVIDERORDER = ::core::option::Option i32>; +pub type LPWSPACCEPT = ::core::option::Option SOCKET>; +pub type LPWSPADDRESSTOSTRING = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWSPASYNCSELECT = ::core::option::Option i32>; +pub type LPWSPBIND = ::core::option::Option i32>; +pub type LPWSPCANCELBLOCKINGCALL = ::core::option::Option i32>; +pub type LPWSPCLEANUP = ::core::option::Option i32>; +pub type LPWSPCLOSESOCKET = ::core::option::Option i32>; +pub type LPWSPCONNECT = ::core::option::Option i32>; +pub type LPWSPDUPLICATESOCKET = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWSPENUMNETWORKEVENTS = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWSPEVENTSELECT = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPWSPGETOVERLAPPEDRESULT = ::core::option::Option super::super::Foundation::BOOL>; +pub type LPWSPGETPEERNAME = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWSPGETQOSBYNAME = ::core::option::Option super::super::Foundation::BOOL>; +pub type LPWSPGETSOCKNAME = ::core::option::Option i32>; +pub type LPWSPGETSOCKOPT = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPWSPIOCTL = ::core::option::Option i32>; +pub type LPWSPJOINLEAF = ::core::option::Option SOCKET>; +pub type LPWSPLISTEN = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPWSPRECV = ::core::option::Option i32>; +pub type LPWSPRECVDISCONNECT = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPWSPRECVFROM = ::core::option::Option i32>; +pub type LPWSPSELECT = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPWSPSEND = ::core::option::Option i32>; +pub type LPWSPSENDDISCONNECT = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPWSPSENDTO = ::core::option::Option i32>; +pub type LPWSPSETSOCKOPT = ::core::option::Option i32>; +pub type LPWSPSHUTDOWN = ::core::option::Option i32>; +pub type LPWSPSOCKET = ::core::option::Option SOCKET>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type LPWSPSTARTUP = ::core::option::Option i32>; +pub type LPWSPSTRINGTOADDRESS = ::core::option::Option i32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WindowsWebServices/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WindowsWebServices/mod.rs new file mode 100644 index 000000000..e86eb7621 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/WindowsWebServices/mod.rs @@ -0,0 +1,5175 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webauthn.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WebAuthNAuthenticatorGetAssertion(hwnd : super::super::Foundation:: HWND, pwszrpid : ::windows_sys::core::PCWSTR, pwebauthnclientdata : *const WEBAUTHN_CLIENT_DATA, pwebauthngetassertionoptions : *const WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS, ppwebauthnassertion : *mut *mut WEBAUTHN_ASSERTION) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webauthn.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WebAuthNAuthenticatorMakeCredential(hwnd : super::super::Foundation:: HWND, prpinformation : *const WEBAUTHN_RP_ENTITY_INFORMATION, puserinformation : *const WEBAUTHN_USER_ENTITY_INFORMATION, ppubkeycredparams : *const WEBAUTHN_COSE_CREDENTIAL_PARAMETERS, pwebauthnclientdata : *const WEBAUTHN_CLIENT_DATA, pwebauthnmakecredentialoptions : *const WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS, ppwebauthncredentialattestation : *mut *mut WEBAUTHN_CREDENTIAL_ATTESTATION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webauthn.dll" "system" fn WebAuthNCancelCurrentOperation(pcancellationid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webauthn.dll" "system" fn WebAuthNDeletePlatformCredential(cbcredentialid : u32, pbcredentialid : *const u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webauthn.dll" "system" fn WebAuthNFreeAssertion(pwebauthnassertion : *const WEBAUTHN_ASSERTION) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webauthn.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WebAuthNFreeCredentialAttestation(pwebauthncredentialattestation : *const WEBAUTHN_CREDENTIAL_ATTESTATION) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webauthn.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WebAuthNFreePlatformCredentialList(pcredentialdetailslist : *const WEBAUTHN_CREDENTIAL_DETAILS_LIST) -> ()); +::windows_targets::link!("webauthn.dll" "system" fn WebAuthNGetApiVersionNumber() -> u32); +::windows_targets::link!("webauthn.dll" "system" fn WebAuthNGetCancellationId(pcancellationid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webauthn.dll" "system" fn WebAuthNGetErrorName(hr : ::windows_sys::core::HRESULT) -> ::windows_sys::core::PCWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webauthn.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WebAuthNGetPlatformCredentialList(pgetcredentialsoptions : *const WEBAUTHN_GET_CREDENTIALS_OPTIONS, ppcredentialdetailslist : *mut *mut WEBAUTHN_CREDENTIAL_DETAILS_LIST) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webauthn.dll" "system" fn WebAuthNGetW3CExceptionDOMError(hr : ::windows_sys::core::HRESULT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webauthn.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WebAuthNIsUserVerifyingPlatformAuthenticatorAvailable(pbisuserverifyingplatformauthenticatoravailable : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsAbandonCall(serviceproxy : *const WS_SERVICE_PROXY, callid : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsAbandonMessage(channel : *const WS_CHANNEL, message : *const WS_MESSAGE, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsAbortChannel(channel : *const WS_CHANNEL, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsAbortListener(listener : *const WS_LISTENER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsAbortServiceHost(servicehost : *const WS_SERVICE_HOST, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsAbortServiceProxy(serviceproxy : *const WS_SERVICE_PROXY, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsAcceptChannel(listener : *const WS_LISTENER, channel : *const WS_CHANNEL, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsAddCustomHeader(message : *const WS_MESSAGE, headerdescription : *const WS_ELEMENT_DESCRIPTION, writeoption : WS_WRITE_OPTION, value : *const ::core::ffi::c_void, valuesize : u32, headerattributes : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsAddErrorString(error : *const WS_ERROR, string : *const WS_STRING) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsAddMappedHeader(message : *const WS_MESSAGE, headername : *const WS_XML_STRING, valuetype : WS_TYPE, writeoption : WS_WRITE_OPTION, value : *const ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsAddressMessage(message : *const WS_MESSAGE, address : *const WS_ENDPOINT_ADDRESS, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsAlloc(heap : *const WS_HEAP, size : usize, ptr : *mut *mut ::core::ffi::c_void, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsAsyncExecute(asyncstate : *const WS_ASYNC_STATE, operation : WS_ASYNC_FUNCTION, callbackmodel : WS_CALLBACK_MODEL, callbackstate : *const ::core::ffi::c_void, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsCall(serviceproxy : *const WS_SERVICE_PROXY, operation : *const WS_OPERATION_DESCRIPTION, arguments : *const *const ::core::ffi::c_void, heap : *const WS_HEAP, callproperties : *const WS_CALL_PROPERTY, callpropertycount : u32, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCheckMustUnderstandHeaders(message : *const WS_MESSAGE, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCloseChannel(channel : *const WS_CHANNEL, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCloseListener(listener : *const WS_LISTENER, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCloseServiceHost(servicehost : *const WS_SERVICE_HOST, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCloseServiceProxy(serviceproxy : *const WS_SERVICE_PROXY, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCombineUrl(baseurl : *const WS_STRING, referenceurl : *const WS_STRING, flags : u32, heap : *const WS_HEAP, resulturl : *mut WS_STRING, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCopyError(source : *const WS_ERROR, destination : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCopyNode(writer : *const WS_XML_WRITER, reader : *const WS_XML_READER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateChannel(channeltype : WS_CHANNEL_TYPE, channelbinding : WS_CHANNEL_BINDING, properties : *const WS_CHANNEL_PROPERTY, propertycount : u32, securitydescription : *const WS_SECURITY_DESCRIPTION, channel : *mut *mut WS_CHANNEL, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateChannelForListener(listener : *const WS_LISTENER, properties : *const WS_CHANNEL_PROPERTY, propertycount : u32, channel : *mut *mut WS_CHANNEL, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateError(properties : *const WS_ERROR_PROPERTY, propertycount : u32, error : *mut *mut WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsCreateFaultFromError(error : *const WS_ERROR, faulterrorcode : ::windows_sys::core::HRESULT, faultdisclosure : WS_FAULT_DISCLOSURE, heap : *const WS_HEAP, fault : *mut WS_FAULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateHeap(maxsize : usize, trimsize : usize, properties : *const WS_HEAP_PROPERTY, propertycount : u32, heap : *mut *mut WS_HEAP, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateListener(channeltype : WS_CHANNEL_TYPE, channelbinding : WS_CHANNEL_BINDING, properties : *const WS_LISTENER_PROPERTY, propertycount : u32, securitydescription : *const WS_SECURITY_DESCRIPTION, listener : *mut *mut WS_LISTENER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateMessage(envelopeversion : WS_ENVELOPE_VERSION, addressingversion : WS_ADDRESSING_VERSION, properties : *const WS_MESSAGE_PROPERTY, propertycount : u32, message : *mut *mut WS_MESSAGE, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateMessageForChannel(channel : *const WS_CHANNEL, properties : *const WS_MESSAGE_PROPERTY, propertycount : u32, message : *mut *mut WS_MESSAGE, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateMetadata(properties : *const WS_METADATA_PROPERTY, propertycount : u32, metadata : *mut *mut WS_METADATA, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateReader(properties : *const WS_XML_READER_PROPERTY, propertycount : u32, reader : *mut *mut WS_XML_READER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsCreateServiceEndpointFromTemplate(channeltype : WS_CHANNEL_TYPE, properties : *const WS_SERVICE_ENDPOINT_PROPERTY, propertycount : u32, addressurl : *const WS_STRING, contract : *const WS_SERVICE_CONTRACT, authorizationcallback : WS_SERVICE_SECURITY_CALLBACK, heap : *const WS_HEAP, templatetype : WS_BINDING_TEMPLATE_TYPE, templatevalue : *const ::core::ffi::c_void, templatesize : u32, templatedescription : *const ::core::ffi::c_void, templatedescriptionsize : u32, serviceendpoint : *mut *mut WS_SERVICE_ENDPOINT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsCreateServiceHost(endpoints : *const *const WS_SERVICE_ENDPOINT, endpointcount : u16, serviceproperties : *const WS_SERVICE_PROPERTY, servicepropertycount : u32, servicehost : *mut *mut WS_SERVICE_HOST, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateServiceProxy(channeltype : WS_CHANNEL_TYPE, channelbinding : WS_CHANNEL_BINDING, securitydescription : *const WS_SECURITY_DESCRIPTION, properties : *const WS_PROXY_PROPERTY, propertycount : u32, channelproperties : *const WS_CHANNEL_PROPERTY, channelpropertycount : u32, serviceproxy : *mut *mut WS_SERVICE_PROXY, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateServiceProxyFromTemplate(channeltype : WS_CHANNEL_TYPE, properties : *const WS_PROXY_PROPERTY, propertycount : u32, templatetype : WS_BINDING_TEMPLATE_TYPE, templatevalue : *const ::core::ffi::c_void, templatesize : u32, templatedescription : *const ::core::ffi::c_void, templatedescriptionsize : u32, serviceproxy : *mut *mut WS_SERVICE_PROXY, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateWriter(properties : *const WS_XML_WRITER_PROPERTY, propertycount : u32, writer : *mut *mut WS_XML_WRITER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateXmlBuffer(heap : *const WS_HEAP, properties : *const WS_XML_BUFFER_PROPERTY, propertycount : u32, buffer : *mut *mut WS_XML_BUFFER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsCreateXmlSecurityToken(tokenxml : *const WS_XML_BUFFER, tokenkey : *const WS_SECURITY_KEY_HANDLE, properties : *const WS_XML_SECURITY_TOKEN_PROPERTY, propertycount : u32, token : *mut *mut WS_SECURITY_TOKEN, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsDateTimeToFileTime(datetime : *const WS_DATETIME, filetime : *mut super::super::Foundation:: FILETIME, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsDecodeUrl(url : *const WS_STRING, flags : u32, heap : *const WS_HEAP, outurl : *mut *mut WS_URL, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsEncodeUrl(url : *const WS_URL, flags : u32, heap : *const WS_HEAP, outurl : *mut WS_STRING, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsEndReaderCanonicalization(reader : *const WS_XML_READER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsEndWriterCanonicalization(writer : *const WS_XML_WRITER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsFileTimeToDateTime(filetime : *const super::super::Foundation:: FILETIME, datetime : *mut WS_DATETIME, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsFillBody(message : *const WS_MESSAGE, minsize : u32, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsFillReader(reader : *const WS_XML_READER, minsize : u32, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsFindAttribute(reader : *const WS_XML_READER, localname : *const WS_XML_STRING, ns : *const WS_XML_STRING, required : super::super::Foundation:: BOOL, attributeindex : *mut u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsFlushBody(message : *const WS_MESSAGE, minsize : u32, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsFlushWriter(writer : *const WS_XML_WRITER, minsize : u32, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsFreeChannel(channel : *const WS_CHANNEL) -> ()); +::windows_targets::link!("webservices.dll" "system" fn WsFreeError(error : *const WS_ERROR) -> ()); +::windows_targets::link!("webservices.dll" "system" fn WsFreeHeap(heap : *const WS_HEAP) -> ()); +::windows_targets::link!("webservices.dll" "system" fn WsFreeListener(listener : *const WS_LISTENER) -> ()); +::windows_targets::link!("webservices.dll" "system" fn WsFreeMessage(message : *const WS_MESSAGE) -> ()); +::windows_targets::link!("webservices.dll" "system" fn WsFreeMetadata(metadata : *const WS_METADATA) -> ()); +::windows_targets::link!("webservices.dll" "system" fn WsFreeReader(reader : *const WS_XML_READER) -> ()); +::windows_targets::link!("webservices.dll" "system" fn WsFreeSecurityToken(token : *const WS_SECURITY_TOKEN) -> ()); +::windows_targets::link!("webservices.dll" "system" fn WsFreeServiceHost(servicehost : *const WS_SERVICE_HOST) -> ()); +::windows_targets::link!("webservices.dll" "system" fn WsFreeServiceProxy(serviceproxy : *const WS_SERVICE_PROXY) -> ()); +::windows_targets::link!("webservices.dll" "system" fn WsFreeWriter(writer : *const WS_XML_WRITER) -> ()); +::windows_targets::link!("webservices.dll" "system" fn WsGetChannelProperty(channel : *const WS_CHANNEL, id : WS_CHANNEL_PROPERTY_ID, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsGetCustomHeader(message : *const WS_MESSAGE, customheaderdescription : *const WS_ELEMENT_DESCRIPTION, repeatingoption : WS_REPEATING_HEADER_OPTION, headerindex : u32, readoption : WS_READ_OPTION, heap : *const WS_HEAP, value : *mut ::core::ffi::c_void, valuesize : u32, headerattributes : *mut u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsGetDictionary(encoding : WS_ENCODING, dictionary : *mut *mut WS_XML_DICTIONARY, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetErrorProperty(error : *const WS_ERROR, id : WS_ERROR_PROPERTY_ID, buffer : *mut ::core::ffi::c_void, buffersize : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetErrorString(error : *const WS_ERROR, index : u32, string : *mut WS_STRING) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsGetFaultErrorDetail(error : *const WS_ERROR, faultdetaildescription : *const WS_FAULT_DETAIL_DESCRIPTION, readoption : WS_READ_OPTION, heap : *const WS_HEAP, value : *mut ::core::ffi::c_void, valuesize : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetFaultErrorProperty(error : *const WS_ERROR, id : WS_FAULT_ERROR_PROPERTY_ID, buffer : *mut ::core::ffi::c_void, buffersize : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetHeader(message : *const WS_MESSAGE, headertype : WS_HEADER_TYPE, valuetype : WS_TYPE, readoption : WS_READ_OPTION, heap : *const WS_HEAP, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetHeaderAttributes(message : *const WS_MESSAGE, reader : *const WS_XML_READER, headerattributes : *mut u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetHeapProperty(heap : *const WS_HEAP, id : WS_HEAP_PROPERTY_ID, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetListenerProperty(listener : *const WS_LISTENER, id : WS_LISTENER_PROPERTY_ID, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsGetMappedHeader(message : *const WS_MESSAGE, headername : *const WS_XML_STRING, repeatingoption : WS_REPEATING_HEADER_OPTION, headerindex : u32, valuetype : WS_TYPE, readoption : WS_READ_OPTION, heap : *const WS_HEAP, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetMessageProperty(message : *const WS_MESSAGE, id : WS_MESSAGE_PROPERTY_ID, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsGetMetadataEndpoints(metadata : *const WS_METADATA, endpoints : *mut WS_METADATA_ENDPOINTS, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetMetadataProperty(metadata : *const WS_METADATA, id : WS_METADATA_PROPERTY_ID, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetMissingMetadataDocumentAddress(metadata : *const WS_METADATA, address : *mut *mut WS_ENDPOINT_ADDRESS, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsGetNamespaceFromPrefix(reader : *const WS_XML_READER, prefix : *const WS_XML_STRING, required : super::super::Foundation:: BOOL, ns : *mut *mut WS_XML_STRING, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetOperationContextProperty(context : *const WS_OPERATION_CONTEXT, id : WS_OPERATION_CONTEXT_PROPERTY_ID, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetPolicyAlternativeCount(policy : *const WS_POLICY, count : *mut u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetPolicyProperty(policy : *const WS_POLICY, id : WS_POLICY_PROPERTY_ID, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsGetPrefixFromNamespace(writer : *const WS_XML_WRITER, ns : *const WS_XML_STRING, required : super::super::Foundation:: BOOL, prefix : *mut *mut WS_XML_STRING, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetReaderNode(xmlreader : *const WS_XML_READER, node : *mut *mut WS_XML_NODE, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetReaderPosition(reader : *const WS_XML_READER, nodeposition : *mut WS_XML_NODE_POSITION, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetReaderProperty(reader : *const WS_XML_READER, id : WS_XML_READER_PROPERTY_ID, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetSecurityContextProperty(securitycontext : *const WS_SECURITY_CONTEXT, id : WS_SECURITY_CONTEXT_PROPERTY_ID, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetSecurityTokenProperty(securitytoken : *const WS_SECURITY_TOKEN, id : WS_SECURITY_TOKEN_PROPERTY_ID, value : *mut ::core::ffi::c_void, valuesize : u32, heap : *const WS_HEAP, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetServiceHostProperty(servicehost : *const WS_SERVICE_HOST, id : WS_SERVICE_PROPERTY_ID, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetServiceProxyProperty(serviceproxy : *const WS_SERVICE_PROXY, id : WS_PROXY_PROPERTY_ID, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetWriterPosition(writer : *const WS_XML_WRITER, nodeposition : *mut WS_XML_NODE_POSITION, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsGetWriterProperty(writer : *const WS_XML_WRITER, id : WS_XML_WRITER_PROPERTY_ID, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsGetXmlAttribute(reader : *const WS_XML_READER, localname : *const WS_XML_STRING, heap : *const WS_HEAP, valuechars : *mut *mut u16, valuecharcount : *mut u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsInitializeMessage(message : *const WS_MESSAGE, initialization : WS_MESSAGE_INITIALIZATION, sourcemessage : *const WS_MESSAGE, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsMarkHeaderAsUnderstood(message : *const WS_MESSAGE, headerposition : *const WS_XML_NODE_POSITION, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsMatchPolicyAlternative(policy : *const WS_POLICY, alternativeindex : u32, policyconstraints : *const WS_POLICY_CONSTRAINTS, matchrequired : super::super::Foundation:: BOOL, heap : *const WS_HEAP, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsMoveReader(reader : *const WS_XML_READER, moveto : WS_MOVE_TO, found : *mut super::super::Foundation:: BOOL, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsMoveWriter(writer : *const WS_XML_WRITER, moveto : WS_MOVE_TO, found : *mut super::super::Foundation:: BOOL, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsOpenChannel(channel : *const WS_CHANNEL, endpointaddress : *const WS_ENDPOINT_ADDRESS, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsOpenListener(listener : *const WS_LISTENER, url : *const WS_STRING, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsOpenServiceHost(servicehost : *const WS_SERVICE_HOST, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsOpenServiceProxy(serviceproxy : *const WS_SERVICE_PROXY, address : *const WS_ENDPOINT_ADDRESS, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsPullBytes(writer : *const WS_XML_WRITER, callback : WS_PULL_BYTES_CALLBACK, callbackstate : *const ::core::ffi::c_void, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsPushBytes(writer : *const WS_XML_WRITER, callback : WS_PUSH_BYTES_CALLBACK, callbackstate : *const ::core::ffi::c_void, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsReadArray(reader : *const WS_XML_READER, localname : *const WS_XML_STRING, ns : *const WS_XML_STRING, valuetype : WS_VALUE_TYPE, array : *mut ::core::ffi::c_void, arraysize : u32, itemoffset : u32, itemcount : u32, actualitemcount : *mut u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsReadAttribute(reader : *const WS_XML_READER, attributedescription : *const WS_ATTRIBUTE_DESCRIPTION, readoption : WS_READ_OPTION, heap : *const WS_HEAP, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsReadBody(message : *const WS_MESSAGE, bodydescription : *const WS_ELEMENT_DESCRIPTION, readoption : WS_READ_OPTION, heap : *const WS_HEAP, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadBytes(reader : *const WS_XML_READER, bytes : *mut ::core::ffi::c_void, maxbytecount : u32, actualbytecount : *mut u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadChars(reader : *const WS_XML_READER, chars : ::windows_sys::core::PWSTR, maxcharcount : u32, actualcharcount : *mut u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadCharsUtf8(reader : *const WS_XML_READER, bytes : *mut u8, maxbytecount : u32, actualbytecount : *mut u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsReadElement(reader : *const WS_XML_READER, elementdescription : *const WS_ELEMENT_DESCRIPTION, readoption : WS_READ_OPTION, heap : *const WS_HEAP, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadEndAttribute(reader : *const WS_XML_READER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadEndElement(reader : *const WS_XML_READER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadEndpointAddressExtension(reader : *const WS_XML_READER, endpointaddress : *const WS_ENDPOINT_ADDRESS, extensiontype : WS_ENDPOINT_ADDRESS_EXTENSION_TYPE, readoption : WS_READ_OPTION, heap : *const WS_HEAP, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadEnvelopeEnd(message : *const WS_MESSAGE, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadEnvelopeStart(message : *const WS_MESSAGE, reader : *const WS_XML_READER, donecallback : WS_MESSAGE_DONE_CALLBACK, donecallbackstate : *const ::core::ffi::c_void, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadMessageEnd(channel : *const WS_CHANNEL, message : *const WS_MESSAGE, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadMessageStart(channel : *const WS_CHANNEL, message : *const WS_MESSAGE, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadMetadata(metadata : *const WS_METADATA, reader : *const WS_XML_READER, url : *const WS_STRING, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadNode(reader : *const WS_XML_READER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsReadQualifiedName(reader : *const WS_XML_READER, heap : *const WS_HEAP, prefix : *mut WS_XML_STRING, localname : *mut WS_XML_STRING, ns : *mut WS_XML_STRING, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadStartAttribute(reader : *const WS_XML_READER, attributeindex : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadStartElement(reader : *const WS_XML_READER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsReadToStartElement(reader : *const WS_XML_READER, localname : *const WS_XML_STRING, ns : *const WS_XML_STRING, found : *mut super::super::Foundation:: BOOL, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadType(reader : *const WS_XML_READER, typemapping : WS_TYPE_MAPPING, r#type : WS_TYPE, typedescription : *const ::core::ffi::c_void, readoption : WS_READ_OPTION, heap : *const WS_HEAP, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadValue(reader : *const WS_XML_READER, valuetype : WS_VALUE_TYPE, value : *mut ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadXmlBuffer(reader : *const WS_XML_READER, heap : *const WS_HEAP, xmlbuffer : *mut *mut WS_XML_BUFFER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsReadXmlBufferFromBytes(reader : *const WS_XML_READER, encoding : *const WS_XML_READER_ENCODING, properties : *const WS_XML_READER_PROPERTY, propertycount : u32, bytes : *const ::core::ffi::c_void, bytecount : u32, heap : *const WS_HEAP, xmlbuffer : *mut *mut WS_XML_BUFFER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsReceiveMessage(channel : *const WS_CHANNEL, message : *const WS_MESSAGE, messagedescriptions : *const *const WS_MESSAGE_DESCRIPTION, messagedescriptioncount : u32, receiveoption : WS_RECEIVE_OPTION, readbodyoption : WS_READ_OPTION, heap : *const WS_HEAP, value : *mut ::core::ffi::c_void, valuesize : u32, index : *mut u32, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsRegisterOperationForCancel(context : *const WS_OPERATION_CONTEXT, cancelcallback : WS_OPERATION_CANCEL_CALLBACK, freestatecallback : WS_OPERATION_FREE_STATE_CALLBACK, userstate : *const ::core::ffi::c_void, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsRemoveCustomHeader(message : *const WS_MESSAGE, headername : *const WS_XML_STRING, headerns : *const WS_XML_STRING, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsRemoveHeader(message : *const WS_MESSAGE, headertype : WS_HEADER_TYPE, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsRemoveMappedHeader(message : *const WS_MESSAGE, headername : *const WS_XML_STRING, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsRemoveNode(nodeposition : *const WS_XML_NODE_POSITION, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsRequestReply(channel : *const WS_CHANNEL, requestmessage : *const WS_MESSAGE, requestmessagedescription : *const WS_MESSAGE_DESCRIPTION, writeoption : WS_WRITE_OPTION, requestbodyvalue : *const ::core::ffi::c_void, requestbodyvaluesize : u32, replymessage : *const WS_MESSAGE, replymessagedescription : *const WS_MESSAGE_DESCRIPTION, readoption : WS_READ_OPTION, heap : *const WS_HEAP, value : *mut ::core::ffi::c_void, valuesize : u32, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsRequestSecurityToken(channel : *const WS_CHANNEL, properties : *const WS_REQUEST_SECURITY_TOKEN_PROPERTY, propertycount : u32, token : *mut *mut WS_SECURITY_TOKEN, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsResetChannel(channel : *const WS_CHANNEL, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsResetError(error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsResetHeap(heap : *const WS_HEAP, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsResetListener(listener : *const WS_LISTENER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsResetMessage(message : *const WS_MESSAGE, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsResetMetadata(metadata : *const WS_METADATA, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsResetServiceHost(servicehost : *const WS_SERVICE_HOST, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsResetServiceProxy(serviceproxy : *const WS_SERVICE_PROXY, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsRevokeSecurityContext(securitycontext : *const WS_SECURITY_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSendFaultMessageForError(channel : *const WS_CHANNEL, replymessage : *const WS_MESSAGE, faulterror : *const WS_ERROR, faulterrorcode : ::windows_sys::core::HRESULT, faultdisclosure : WS_FAULT_DISCLOSURE, requestmessage : *const WS_MESSAGE, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsSendMessage(channel : *const WS_CHANNEL, message : *const WS_MESSAGE, messagedescription : *const WS_MESSAGE_DESCRIPTION, writeoption : WS_WRITE_OPTION, bodyvalue : *const ::core::ffi::c_void, bodyvaluesize : u32, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsSendReplyMessage(channel : *const WS_CHANNEL, replymessage : *const WS_MESSAGE, replymessagedescription : *const WS_MESSAGE_DESCRIPTION, writeoption : WS_WRITE_OPTION, replybodyvalue : *const ::core::ffi::c_void, replybodyvaluesize : u32, requestmessage : *const WS_MESSAGE, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSetChannelProperty(channel : *const WS_CHANNEL, id : WS_CHANNEL_PROPERTY_ID, value : *const ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSetErrorProperty(error : *const WS_ERROR, id : WS_ERROR_PROPERTY_ID, value : *const ::core::ffi::c_void, valuesize : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsSetFaultErrorDetail(error : *const WS_ERROR, faultdetaildescription : *const WS_FAULT_DETAIL_DESCRIPTION, writeoption : WS_WRITE_OPTION, value : *const ::core::ffi::c_void, valuesize : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSetFaultErrorProperty(error : *const WS_ERROR, id : WS_FAULT_ERROR_PROPERTY_ID, value : *const ::core::ffi::c_void, valuesize : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSetHeader(message : *const WS_MESSAGE, headertype : WS_HEADER_TYPE, valuetype : WS_TYPE, writeoption : WS_WRITE_OPTION, value : *const ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSetInput(reader : *const WS_XML_READER, encoding : *const WS_XML_READER_ENCODING, input : *const WS_XML_READER_INPUT, properties : *const WS_XML_READER_PROPERTY, propertycount : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSetInputToBuffer(reader : *const WS_XML_READER, buffer : *const WS_XML_BUFFER, properties : *const WS_XML_READER_PROPERTY, propertycount : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSetListenerProperty(listener : *const WS_LISTENER, id : WS_LISTENER_PROPERTY_ID, value : *const ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSetMessageProperty(message : *const WS_MESSAGE, id : WS_MESSAGE_PROPERTY_ID, value : *const ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSetOutput(writer : *const WS_XML_WRITER, encoding : *const WS_XML_WRITER_ENCODING, output : *const WS_XML_WRITER_OUTPUT, properties : *const WS_XML_WRITER_PROPERTY, propertycount : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSetOutputToBuffer(writer : *const WS_XML_WRITER, buffer : *const WS_XML_BUFFER, properties : *const WS_XML_WRITER_PROPERTY, propertycount : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSetReaderPosition(reader : *const WS_XML_READER, nodeposition : *const WS_XML_NODE_POSITION, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSetWriterPosition(writer : *const WS_XML_WRITER, nodeposition : *const WS_XML_NODE_POSITION, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsShutdownSessionChannel(channel : *const WS_CHANNEL, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsSkipNode(reader : *const WS_XML_READER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsStartReaderCanonicalization(reader : *const WS_XML_READER, writecallback : WS_WRITE_CALLBACK, writecallbackstate : *const ::core::ffi::c_void, properties : *const WS_XML_CANONICALIZATION_PROPERTY, propertycount : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsStartWriterCanonicalization(writer : *const WS_XML_WRITER, writecallback : WS_WRITE_CALLBACK, writecallbackstate : *const ::core::ffi::c_void, properties : *const WS_XML_CANONICALIZATION_PROPERTY, propertycount : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsTrimXmlWhitespace(chars : ::windows_sys::core::PCWSTR, charcount : u32, trimmedchars : *mut *mut u16, trimmedcount : *mut u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsVerifyXmlNCName(ncnamechars : ::windows_sys::core::PCWSTR, ncnamecharcount : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsWriteArray(writer : *const WS_XML_WRITER, localname : *const WS_XML_STRING, ns : *const WS_XML_STRING, valuetype : WS_VALUE_TYPE, array : *const ::core::ffi::c_void, arraysize : u32, itemoffset : u32, itemcount : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsWriteAttribute(writer : *const WS_XML_WRITER, attributedescription : *const WS_ATTRIBUTE_DESCRIPTION, writeoption : WS_WRITE_OPTION, value : *const ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsWriteBody(message : *const WS_MESSAGE, bodydescription : *const WS_ELEMENT_DESCRIPTION, writeoption : WS_WRITE_OPTION, value : *const ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteBytes(writer : *const WS_XML_WRITER, bytes : *const ::core::ffi::c_void, bytecount : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteChars(writer : *const WS_XML_WRITER, chars : ::windows_sys::core::PCWSTR, charcount : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteCharsUtf8(writer : *const WS_XML_WRITER, bytes : *const u8, bytecount : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsWriteElement(writer : *const WS_XML_WRITER, elementdescription : *const WS_ELEMENT_DESCRIPTION, writeoption : WS_WRITE_OPTION, value : *const ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteEndAttribute(writer : *const WS_XML_WRITER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteEndCData(writer : *const WS_XML_WRITER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteEndElement(writer : *const WS_XML_WRITER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteEndStartElement(writer : *const WS_XML_WRITER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteEnvelopeEnd(message : *const WS_MESSAGE, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteEnvelopeStart(message : *const WS_MESSAGE, writer : *const WS_XML_WRITER, donecallback : WS_MESSAGE_DONE_CALLBACK, donecallbackstate : *const ::core::ffi::c_void, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteMessageEnd(channel : *const WS_CHANNEL, message : *const WS_MESSAGE, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteMessageStart(channel : *const WS_CHANNEL, message : *const WS_MESSAGE, asynccontext : *const WS_ASYNC_CONTEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteNode(writer : *const WS_XML_WRITER, node : *const WS_XML_NODE, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsWriteQualifiedName(writer : *const WS_XML_WRITER, prefix : *const WS_XML_STRING, localname : *const WS_XML_STRING, ns : *const WS_XML_STRING, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsWriteStartAttribute(writer : *const WS_XML_WRITER, prefix : *const WS_XML_STRING, localname : *const WS_XML_STRING, ns : *const WS_XML_STRING, singlequote : super::super::Foundation:: BOOL, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteStartCData(writer : *const WS_XML_WRITER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsWriteStartElement(writer : *const WS_XML_WRITER, prefix : *const WS_XML_STRING, localname : *const WS_XML_STRING, ns : *const WS_XML_STRING, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteText(writer : *const WS_XML_WRITER, text : *const WS_XML_TEXT, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteType(writer : *const WS_XML_WRITER, typemapping : WS_TYPE_MAPPING, r#type : WS_TYPE, typedescription : *const ::core::ffi::c_void, writeoption : WS_WRITE_OPTION, value : *const ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteValue(writer : *const WS_XML_WRITER, valuetype : WS_VALUE_TYPE, value : *const ::core::ffi::c_void, valuesize : u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteXmlBuffer(writer : *const WS_XML_WRITER, xmlbuffer : *const WS_XML_BUFFER, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("webservices.dll" "system" fn WsWriteXmlBufferToBytes(writer : *const WS_XML_WRITER, xmlbuffer : *const WS_XML_BUFFER, encoding : *const WS_XML_WRITER_ENCODING, properties : *const WS_XML_WRITER_PROPERTY, propertycount : u32, heap : *const WS_HEAP, bytes : *mut *mut ::core::ffi::c_void, bytecount : *mut u32, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsWriteXmlnsAttribute(writer : *const WS_XML_WRITER, prefix : *const WS_XML_STRING, ns : *const WS_XML_STRING, singlequote : super::super::Foundation:: BOOL, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("webservices.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WsXmlStringEquals(string1 : *const WS_XML_STRING, string2 : *const WS_XML_STRING, error : *const WS_ERROR) -> ::windows_sys::core::HRESULT); +pub type IContentPrefetcherTaskTrigger = *mut ::core::ffi::c_void; +pub const WEBAUTHN_API_CURRENT_VERSION: u32 = 4u32; +pub const WEBAUTHN_API_VERSION_1: u32 = 1u32; +pub const WEBAUTHN_API_VERSION_2: u32 = 2u32; +pub const WEBAUTHN_API_VERSION_3: u32 = 3u32; +pub const WEBAUTHN_API_VERSION_4: u32 = 4u32; +pub const WEBAUTHN_ASSERTION_CURRENT_VERSION: u32 = 3u32; +pub const WEBAUTHN_ASSERTION_VERSION_1: u32 = 1u32; +pub const WEBAUTHN_ASSERTION_VERSION_2: u32 = 2u32; +pub const WEBAUTHN_ASSERTION_VERSION_3: u32 = 3u32; +pub const WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_ANY: u32 = 0u32; +pub const WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_DIRECT: u32 = 3u32; +pub const WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_INDIRECT: u32 = 2u32; +pub const WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_NONE: u32 = 1u32; +pub const WEBAUTHN_ATTESTATION_DECODE_COMMON: u32 = 1u32; +pub const WEBAUTHN_ATTESTATION_DECODE_NONE: u32 = 0u32; +pub const WEBAUTHN_ATTESTATION_TYPE_NONE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("none"); +pub const WEBAUTHN_ATTESTATION_TYPE_PACKED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("packed"); +pub const WEBAUTHN_ATTESTATION_TYPE_TPM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("tpm"); +pub const WEBAUTHN_ATTESTATION_TYPE_U2F: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("fido-u2f"); +pub const WEBAUTHN_ATTESTATION_VER_TPM_2_0: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("2.0"); +pub const WEBAUTHN_AUTHENTICATOR_ATTACHMENT_ANY: u32 = 0u32; +pub const WEBAUTHN_AUTHENTICATOR_ATTACHMENT_CROSS_PLATFORM: u32 = 2u32; +pub const WEBAUTHN_AUTHENTICATOR_ATTACHMENT_CROSS_PLATFORM_U2F_V2: u32 = 3u32; +pub const WEBAUTHN_AUTHENTICATOR_ATTACHMENT_PLATFORM: u32 = 1u32; +pub const WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_CURRENT_VERSION: u32 = 6u32; +pub const WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_1: u32 = 1u32; +pub const WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_2: u32 = 2u32; +pub const WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_3: u32 = 3u32; +pub const WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_4: u32 = 4u32; +pub const WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_5: u32 = 5u32; +pub const WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_6: u32 = 6u32; +pub const WEBAUTHN_AUTHENTICATOR_HMAC_SECRET_VALUES_FLAG: u32 = 1048576u32; +pub const WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_CURRENT_VERSION: u32 = 5u32; +pub const WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_1: u32 = 1u32; +pub const WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_2: u32 = 2u32; +pub const WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_3: u32 = 3u32; +pub const WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_4: u32 = 4u32; +pub const WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_5: u32 = 5u32; +pub const WEBAUTHN_CLIENT_DATA_CURRENT_VERSION: u32 = 1u32; +pub const WEBAUTHN_COMMON_ATTESTATION_CURRENT_VERSION: u32 = 1u32; +pub const WEBAUTHN_COSE_ALGORITHM_ECDSA_P256_WITH_SHA256: i32 = -7i32; +pub const WEBAUTHN_COSE_ALGORITHM_ECDSA_P384_WITH_SHA384: i32 = -35i32; +pub const WEBAUTHN_COSE_ALGORITHM_ECDSA_P521_WITH_SHA512: i32 = -36i32; +pub const WEBAUTHN_COSE_ALGORITHM_RSASSA_PKCS1_V1_5_WITH_SHA256: i32 = -257i32; +pub const WEBAUTHN_COSE_ALGORITHM_RSASSA_PKCS1_V1_5_WITH_SHA384: i32 = -258i32; +pub const WEBAUTHN_COSE_ALGORITHM_RSASSA_PKCS1_V1_5_WITH_SHA512: i32 = -259i32; +pub const WEBAUTHN_COSE_ALGORITHM_RSA_PSS_WITH_SHA256: i32 = -37i32; +pub const WEBAUTHN_COSE_ALGORITHM_RSA_PSS_WITH_SHA384: i32 = -38i32; +pub const WEBAUTHN_COSE_ALGORITHM_RSA_PSS_WITH_SHA512: i32 = -39i32; +pub const WEBAUTHN_COSE_CREDENTIAL_PARAMETER_CURRENT_VERSION: u32 = 1u32; +pub const WEBAUTHN_CREDENTIAL_ATTESTATION_CURRENT_VERSION: u32 = 4u32; +pub const WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_1: u32 = 1u32; +pub const WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_2: u32 = 2u32; +pub const WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_3: u32 = 3u32; +pub const WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_4: u32 = 4u32; +pub const WEBAUTHN_CREDENTIAL_CURRENT_VERSION: u32 = 1u32; +pub const WEBAUTHN_CREDENTIAL_DETAILS_CURRENT_VERSION: u32 = 1u32; +pub const WEBAUTHN_CREDENTIAL_DETAILS_VERSION_1: u32 = 1u32; +pub const WEBAUTHN_CREDENTIAL_EX_CURRENT_VERSION: u32 = 1u32; +pub const WEBAUTHN_CREDENTIAL_TYPE_PUBLIC_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("public-key"); +pub const WEBAUTHN_CRED_LARGE_BLOB_OPERATION_DELETE: u32 = 3u32; +pub const WEBAUTHN_CRED_LARGE_BLOB_OPERATION_GET: u32 = 1u32; +pub const WEBAUTHN_CRED_LARGE_BLOB_OPERATION_NONE: u32 = 0u32; +pub const WEBAUTHN_CRED_LARGE_BLOB_OPERATION_SET: u32 = 2u32; +pub const WEBAUTHN_CRED_LARGE_BLOB_STATUS_AUTHENTICATOR_ERROR: u32 = 9u32; +pub const WEBAUTHN_CRED_LARGE_BLOB_STATUS_INVALID_DATA: u32 = 3u32; +pub const WEBAUTHN_CRED_LARGE_BLOB_STATUS_INVALID_PARAMETER: u32 = 4u32; +pub const WEBAUTHN_CRED_LARGE_BLOB_STATUS_LACK_OF_SPACE: u32 = 7u32; +pub const WEBAUTHN_CRED_LARGE_BLOB_STATUS_MULTIPLE_CREDENTIALS: u32 = 6u32; +pub const WEBAUTHN_CRED_LARGE_BLOB_STATUS_NONE: u32 = 0u32; +pub const WEBAUTHN_CRED_LARGE_BLOB_STATUS_NOT_FOUND: u32 = 5u32; +pub const WEBAUTHN_CRED_LARGE_BLOB_STATUS_NOT_SUPPORTED: u32 = 2u32; +pub const WEBAUTHN_CRED_LARGE_BLOB_STATUS_PLATFORM_ERROR: u32 = 8u32; +pub const WEBAUTHN_CRED_LARGE_BLOB_STATUS_SUCCESS: u32 = 1u32; +pub const WEBAUTHN_CTAP_ONE_HMAC_SECRET_LENGTH: u32 = 32u32; +pub const WEBAUTHN_CTAP_TRANSPORT_BLE: u32 = 4u32; +pub const WEBAUTHN_CTAP_TRANSPORT_FLAGS_MASK: u32 = 31u32; +pub const WEBAUTHN_CTAP_TRANSPORT_INTERNAL: u32 = 16u32; +pub const WEBAUTHN_CTAP_TRANSPORT_NFC: u32 = 2u32; +pub const WEBAUTHN_CTAP_TRANSPORT_TEST: u32 = 8u32; +pub const WEBAUTHN_CTAP_TRANSPORT_USB: u32 = 1u32; +pub const WEBAUTHN_ENTERPRISE_ATTESTATION_NONE: u32 = 0u32; +pub const WEBAUTHN_ENTERPRISE_ATTESTATION_PLATFORM_MANAGED: u32 = 2u32; +pub const WEBAUTHN_ENTERPRISE_ATTESTATION_VENDOR_FACILITATED: u32 = 1u32; +pub const WEBAUTHN_EXTENSIONS_IDENTIFIER_CRED_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("credBlob"); +pub const WEBAUTHN_EXTENSIONS_IDENTIFIER_CRED_PROTECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("credProtect"); +pub const WEBAUTHN_EXTENSIONS_IDENTIFIER_HMAC_SECRET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("hmac-secret"); +pub const WEBAUTHN_EXTENSIONS_IDENTIFIER_MIN_PIN_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("minPinLength"); +pub const WEBAUTHN_GET_CREDENTIALS_OPTIONS_CURRENT_VERSION: u32 = 1u32; +pub const WEBAUTHN_GET_CREDENTIALS_OPTIONS_VERSION_1: u32 = 1u32; +pub const WEBAUTHN_HASH_ALGORITHM_SHA_256: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHA-256"); +pub const WEBAUTHN_HASH_ALGORITHM_SHA_384: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHA-384"); +pub const WEBAUTHN_HASH_ALGORITHM_SHA_512: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHA-512"); +pub const WEBAUTHN_LARGE_BLOB_SUPPORT_NONE: u32 = 0u32; +pub const WEBAUTHN_LARGE_BLOB_SUPPORT_PREFERRED: u32 = 2u32; +pub const WEBAUTHN_LARGE_BLOB_SUPPORT_REQUIRED: u32 = 1u32; +pub const WEBAUTHN_MAX_USER_ID_LENGTH: u32 = 64u32; +pub const WEBAUTHN_RP_ENTITY_INFORMATION_CURRENT_VERSION: u32 = 1u32; +pub const WEBAUTHN_USER_ENTITY_INFORMATION_CURRENT_VERSION: u32 = 1u32; +pub const WEBAUTHN_USER_VERIFICATION_ANY: u32 = 0u32; +pub const WEBAUTHN_USER_VERIFICATION_OPTIONAL: u32 = 1u32; +pub const WEBAUTHN_USER_VERIFICATION_OPTIONAL_WITH_CREDENTIAL_ID_LIST: u32 = 2u32; +pub const WEBAUTHN_USER_VERIFICATION_REQUIRED: u32 = 3u32; +pub const WEBAUTHN_USER_VERIFICATION_REQUIREMENT_ANY: u32 = 0u32; +pub const WEBAUTHN_USER_VERIFICATION_REQUIREMENT_DISCOURAGED: u32 = 3u32; +pub const WEBAUTHN_USER_VERIFICATION_REQUIREMENT_PREFERRED: u32 = 2u32; +pub const WEBAUTHN_USER_VERIFICATION_REQUIREMENT_REQUIRED: u32 = 1u32; +pub const WS_ACTION_HEADER: WS_HEADER_TYPE = 1i32; +pub const WS_ADDRESSING_VERSION_0_9: WS_ADDRESSING_VERSION = 1i32; +pub const WS_ADDRESSING_VERSION_1_0: WS_ADDRESSING_VERSION = 2i32; +pub const WS_ADDRESSING_VERSION_TRANSPORT: WS_ADDRESSING_VERSION = 3i32; +pub const WS_ANY_ATTRIBUTES_FIELD_MAPPING: WS_FIELD_MAPPING = 12i32; +pub const WS_ANY_ATTRIBUTES_TYPE: WS_TYPE = 34i32; +pub const WS_ANY_CONTENT_FIELD_MAPPING: WS_FIELD_MAPPING = 11i32; +pub const WS_ANY_ELEMENT_FIELD_MAPPING: WS_FIELD_MAPPING = 9i32; +pub const WS_ANY_ELEMENT_TYPE_MAPPING: WS_TYPE_MAPPING = 4i32; +pub const WS_ATTRIBUTE_FIELD_MAPPING: WS_FIELD_MAPPING = 1i32; +pub const WS_ATTRIBUTE_TYPE_MAPPING: WS_TYPE_MAPPING = 2i32; +pub const WS_AUTO_COOKIE_MODE: WS_COOKIE_MODE = 2i32; +pub const WS_BLANK_MESSAGE: WS_MESSAGE_INITIALIZATION = 0i32; +pub const WS_BOOL_TYPE: WS_TYPE = 0i32; +pub const WS_BOOL_VALUE_TYPE: WS_VALUE_TYPE = 0i32; +pub const WS_BUFFERED_TRANSFER_MODE: WS_TRANSFER_MODE = 0i32; +pub const WS_BYTES_TYPE: WS_TYPE = 18i32; +pub const WS_BYTE_ARRAY_TYPE: WS_TYPE = 24i32; +pub const WS_CALL_PROPERTY_CALL_ID: WS_CALL_PROPERTY_ID = 3i32; +pub const WS_CALL_PROPERTY_CHECK_MUST_UNDERSTAND: WS_CALL_PROPERTY_ID = 0i32; +pub const WS_CALL_PROPERTY_RECEIVE_MESSAGE_CONTEXT: WS_CALL_PROPERTY_ID = 2i32; +pub const WS_CALL_PROPERTY_SEND_MESSAGE_CONTEXT: WS_CALL_PROPERTY_ID = 1i32; +pub const WS_CAPI_ASYMMETRIC_SECURITY_KEY_HANDLE_TYPE: WS_SECURITY_KEY_HANDLE_TYPE = 3i32; +pub const WS_CERT_ENDPOINT_IDENTITY_TYPE: WS_ENDPOINT_IDENTITY_TYPE = 5i32; +pub const WS_CERT_FAILURE_CN_MISMATCH: i32 = 1i32; +pub const WS_CERT_FAILURE_INVALID_DATE: i32 = 2i32; +pub const WS_CERT_FAILURE_REVOCATION_OFFLINE: i32 = 16i32; +pub const WS_CERT_FAILURE_UNTRUSTED_ROOT: i32 = 4i32; +pub const WS_CERT_FAILURE_WRONG_USAGE: i32 = 8i32; +pub const WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT_TYPE: WS_SECURITY_BINDING_CONSTRAINT_TYPE = 7i32; +pub const WS_CERT_SIGNED_SAML_AUTHENTICATOR_TYPE: WS_SAML_AUTHENTICATOR_TYPE = 1i32; +pub const WS_CHANNEL_PROPERTY_ADDRESSING_VERSION: WS_CHANNEL_PROPERTY_ID = 6i32; +pub const WS_CHANNEL_PROPERTY_ALLOW_UNSECURED_FAULTS: WS_CHANNEL_PROPERTY_ID = 46i32; +pub const WS_CHANNEL_PROPERTY_ASYNC_CALLBACK_MODEL: WS_CHANNEL_PROPERTY_ID = 9i32; +pub const WS_CHANNEL_PROPERTY_CHANNEL_TYPE: WS_CHANNEL_PROPERTY_ID = 34i32; +pub const WS_CHANNEL_PROPERTY_CLOSE_TIMEOUT: WS_CHANNEL_PROPERTY_ID = 16i32; +pub const WS_CHANNEL_PROPERTY_CONNECT_TIMEOUT: WS_CHANNEL_PROPERTY_ID = 12i32; +pub const WS_CHANNEL_PROPERTY_COOKIE_MODE: WS_CHANNEL_PROPERTY_ID = 39i32; +pub const WS_CHANNEL_PROPERTY_CUSTOM_CHANNEL_CALLBACKS: WS_CHANNEL_PROPERTY_ID = 24i32; +pub const WS_CHANNEL_PROPERTY_CUSTOM_CHANNEL_INSTANCE: WS_CHANNEL_PROPERTY_ID = 26i32; +pub const WS_CHANNEL_PROPERTY_CUSTOM_CHANNEL_PARAMETERS: WS_CHANNEL_PROPERTY_ID = 25i32; +pub const WS_CHANNEL_PROPERTY_CUSTOM_HTTP_PROXY: WS_CHANNEL_PROPERTY_ID = 41i32; +pub const WS_CHANNEL_PROPERTY_DECODER: WS_CHANNEL_PROPERTY_ID = 37i32; +pub const WS_CHANNEL_PROPERTY_ENABLE_HTTP_REDIRECT: WS_CHANNEL_PROPERTY_ID = 43i32; +pub const WS_CHANNEL_PROPERTY_ENABLE_TIMEOUTS: WS_CHANNEL_PROPERTY_ID = 17i32; +pub const WS_CHANNEL_PROPERTY_ENCODER: WS_CHANNEL_PROPERTY_ID = 36i32; +pub const WS_CHANNEL_PROPERTY_ENCODING: WS_CHANNEL_PROPERTY_ID = 4i32; +pub const WS_CHANNEL_PROPERTY_ENVELOPE_VERSION: WS_CHANNEL_PROPERTY_ID = 5i32; +pub const WS_CHANNEL_PROPERTY_FAULTS_AS_ERRORS: WS_CHANNEL_PROPERTY_ID = 45i32; +pub const WS_CHANNEL_PROPERTY_HTTP_CONNECTION_ID: WS_CHANNEL_PROPERTY_ID = 23i32; +pub const WS_CHANNEL_PROPERTY_HTTP_MESSAGE_MAPPING: WS_CHANNEL_PROPERTY_ID = 42i32; +pub const WS_CHANNEL_PROPERTY_HTTP_PROXY_SETTING_MODE: WS_CHANNEL_PROPERTY_ID = 40i32; +pub const WS_CHANNEL_PROPERTY_HTTP_PROXY_SPN: WS_CHANNEL_PROPERTY_ID = 48i32; +pub const WS_CHANNEL_PROPERTY_HTTP_REDIRECT_CALLBACK_CONTEXT: WS_CHANNEL_PROPERTY_ID = 44i32; +pub const WS_CHANNEL_PROPERTY_HTTP_SERVER_SPN: WS_CHANNEL_PROPERTY_ID = 47i32; +pub const WS_CHANNEL_PROPERTY_IP_VERSION: WS_CHANNEL_PROPERTY_ID = 10i32; +pub const WS_CHANNEL_PROPERTY_IS_SESSION_SHUT_DOWN: WS_CHANNEL_PROPERTY_ID = 33i32; +pub const WS_CHANNEL_PROPERTY_KEEP_ALIVE_INTERVAL: WS_CHANNEL_PROPERTY_ID = 31i32; +pub const WS_CHANNEL_PROPERTY_KEEP_ALIVE_TIME: WS_CHANNEL_PROPERTY_ID = 30i32; +pub const WS_CHANNEL_PROPERTY_MAX_BUFFERED_MESSAGE_SIZE: WS_CHANNEL_PROPERTY_ID = 0i32; +pub const WS_CHANNEL_PROPERTY_MAX_HTTP_REQUEST_HEADERS_BUFFER_SIZE: WS_CHANNEL_PROPERTY_ID = 49i32; +pub const WS_CHANNEL_PROPERTY_MAX_HTTP_SERVER_CONNECTIONS: WS_CHANNEL_PROPERTY_ID = 32i32; +pub const WS_CHANNEL_PROPERTY_MAX_SESSION_DICTIONARY_SIZE: WS_CHANNEL_PROPERTY_ID = 7i32; +pub const WS_CHANNEL_PROPERTY_MAX_STREAMED_FLUSH_SIZE: WS_CHANNEL_PROPERTY_ID = 3i32; +pub const WS_CHANNEL_PROPERTY_MAX_STREAMED_MESSAGE_SIZE: WS_CHANNEL_PROPERTY_ID = 1i32; +pub const WS_CHANNEL_PROPERTY_MAX_STREAMED_START_SIZE: WS_CHANNEL_PROPERTY_ID = 2i32; +pub const WS_CHANNEL_PROPERTY_MULTICAST_HOPS: WS_CHANNEL_PROPERTY_ID = 20i32; +pub const WS_CHANNEL_PROPERTY_MULTICAST_INTERFACE: WS_CHANNEL_PROPERTY_ID = 19i32; +pub const WS_CHANNEL_PROPERTY_NO_DELAY: WS_CHANNEL_PROPERTY_ID = 28i32; +pub const WS_CHANNEL_PROPERTY_PROTECTION_LEVEL: WS_CHANNEL_PROPERTY_ID = 38i32; +pub const WS_CHANNEL_PROPERTY_RECEIVE_RESPONSE_TIMEOUT: WS_CHANNEL_PROPERTY_ID = 14i32; +pub const WS_CHANNEL_PROPERTY_RECEIVE_TIMEOUT: WS_CHANNEL_PROPERTY_ID = 15i32; +pub const WS_CHANNEL_PROPERTY_REMOTE_ADDRESS: WS_CHANNEL_PROPERTY_ID = 21i32; +pub const WS_CHANNEL_PROPERTY_REMOTE_IP_ADDRESS: WS_CHANNEL_PROPERTY_ID = 22i32; +pub const WS_CHANNEL_PROPERTY_RESOLVE_TIMEOUT: WS_CHANNEL_PROPERTY_ID = 11i32; +pub const WS_CHANNEL_PROPERTY_SEND_KEEP_ALIVES: WS_CHANNEL_PROPERTY_ID = 29i32; +pub const WS_CHANNEL_PROPERTY_SEND_TIMEOUT: WS_CHANNEL_PROPERTY_ID = 13i32; +pub const WS_CHANNEL_PROPERTY_STATE: WS_CHANNEL_PROPERTY_ID = 8i32; +pub const WS_CHANNEL_PROPERTY_TRANSFER_MODE: WS_CHANNEL_PROPERTY_ID = 18i32; +pub const WS_CHANNEL_PROPERTY_TRANSPORT_URL: WS_CHANNEL_PROPERTY_ID = 27i32; +pub const WS_CHANNEL_PROPERTY_TRIM_BUFFERED_MESSAGE_SIZE: WS_CHANNEL_PROPERTY_ID = 35i32; +pub const WS_CHANNEL_STATE_ACCEPTING: WS_CHANNEL_STATE = 2i32; +pub const WS_CHANNEL_STATE_CLOSED: WS_CHANNEL_STATE = 6i32; +pub const WS_CHANNEL_STATE_CLOSING: WS_CHANNEL_STATE = 5i32; +pub const WS_CHANNEL_STATE_CREATED: WS_CHANNEL_STATE = 0i32; +pub const WS_CHANNEL_STATE_FAULTED: WS_CHANNEL_STATE = 4i32; +pub const WS_CHANNEL_STATE_OPEN: WS_CHANNEL_STATE = 3i32; +pub const WS_CHANNEL_STATE_OPENING: WS_CHANNEL_STATE = 1i32; +pub const WS_CHANNEL_TYPE_DUPLEX: WS_CHANNEL_TYPE = 3i32; +pub const WS_CHANNEL_TYPE_DUPLEX_SESSION: WS_CHANNEL_TYPE = 7i32; +pub const WS_CHANNEL_TYPE_INPUT: WS_CHANNEL_TYPE = 1i32; +pub const WS_CHANNEL_TYPE_INPUT_SESSION: WS_CHANNEL_TYPE = 5i32; +pub const WS_CHANNEL_TYPE_OUTPUT: WS_CHANNEL_TYPE = 2i32; +pub const WS_CHANNEL_TYPE_OUTPUT_SESSION: WS_CHANNEL_TYPE = 6i32; +pub const WS_CHANNEL_TYPE_REPLY: WS_CHANNEL_TYPE = 16i32; +pub const WS_CHANNEL_TYPE_REQUEST: WS_CHANNEL_TYPE = 8i32; +pub const WS_CHANNEL_TYPE_SESSION: WS_CHANNEL_TYPE = 4i32; +pub const WS_CHARSET_AUTO: WS_CHARSET = 0i32; +pub const WS_CHARSET_UTF16BE: WS_CHARSET = 3i32; +pub const WS_CHARSET_UTF16LE: WS_CHARSET = 2i32; +pub const WS_CHARSET_UTF8: WS_CHARSET = 1i32; +pub const WS_CHAR_ARRAY_TYPE: WS_TYPE = 22i32; +pub const WS_CUSTOM_CERT_CREDENTIAL_TYPE: WS_CERT_CREDENTIAL_TYPE = 3i32; +pub const WS_CUSTOM_CHANNEL_BINDING: WS_CHANNEL_BINDING = 3i32; +pub const WS_CUSTOM_TYPE: WS_TYPE = 27i32; +pub const WS_DATETIME_FORMAT_LOCAL: WS_DATETIME_FORMAT = 1i32; +pub const WS_DATETIME_FORMAT_NONE: WS_DATETIME_FORMAT = 2i32; +pub const WS_DATETIME_FORMAT_UTC: WS_DATETIME_FORMAT = 0i32; +pub const WS_DATETIME_TYPE: WS_TYPE = 12i32; +pub const WS_DATETIME_VALUE_TYPE: WS_VALUE_TYPE = 12i32; +pub const WS_DECIMAL_TYPE: WS_TYPE = 11i32; +pub const WS_DECIMAL_VALUE_TYPE: WS_VALUE_TYPE = 11i32; +pub const WS_DEFAULT_WINDOWS_INTEGRATED_AUTH_CREDENTIAL_TYPE: WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL_TYPE = 2i32; +pub const WS_DESCRIPTION_TYPE: WS_TYPE = 25i32; +pub const WS_DNS_ENDPOINT_IDENTITY_TYPE: WS_ENDPOINT_IDENTITY_TYPE = 1i32; +pub const WS_DOUBLE_TYPE: WS_TYPE = 10i32; +pub const WS_DOUBLE_VALUE_TYPE: WS_VALUE_TYPE = 10i32; +pub const WS_DUPLICATE_MESSAGE: WS_MESSAGE_INITIALIZATION = 1i32; +pub const WS_DURATION_TYPE: WS_TYPE = 32i32; +pub const WS_DURATION_VALUE_TYPE: WS_VALUE_TYPE = 15i32; +pub const WS_ELEMENT_CHOICE_FIELD_MAPPING: WS_FIELD_MAPPING = 7i32; +pub const WS_ELEMENT_CONTENT_TYPE_MAPPING: WS_TYPE_MAPPING = 3i32; +pub const WS_ELEMENT_FIELD_MAPPING: WS_FIELD_MAPPING = 2i32; +pub const WS_ELEMENT_TYPE_MAPPING: WS_TYPE_MAPPING = 1i32; +pub const WS_ENCODING_RAW: WS_ENCODING = 8i32; +pub const WS_ENCODING_XML_BINARY_1: WS_ENCODING = 0i32; +pub const WS_ENCODING_XML_BINARY_SESSION_1: WS_ENCODING = 1i32; +pub const WS_ENCODING_XML_MTOM_UTF16BE: WS_ENCODING = 3i32; +pub const WS_ENCODING_XML_MTOM_UTF16LE: WS_ENCODING = 4i32; +pub const WS_ENCODING_XML_MTOM_UTF8: WS_ENCODING = 2i32; +pub const WS_ENCODING_XML_UTF16BE: WS_ENCODING = 6i32; +pub const WS_ENCODING_XML_UTF16LE: WS_ENCODING = 7i32; +pub const WS_ENCODING_XML_UTF8: WS_ENCODING = 5i32; +pub const WS_ENDPOINT_ADDRESS_EXTENSION_METADATA_ADDRESS: WS_ENDPOINT_ADDRESS_EXTENSION_TYPE = 1i32; +pub const WS_ENDPOINT_ADDRESS_TYPE: WS_TYPE = 28i32; +pub const WS_ENDPOINT_POLICY_EXTENSION_TYPE: WS_POLICY_EXTENSION_TYPE = 1i32; +pub const WS_ENUM_TYPE: WS_TYPE = 31i32; +pub const WS_ENVELOPE_VERSION_NONE: WS_ENVELOPE_VERSION = 3i32; +pub const WS_ENVELOPE_VERSION_SOAP_1_1: WS_ENVELOPE_VERSION = 1i32; +pub const WS_ENVELOPE_VERSION_SOAP_1_2: WS_ENVELOPE_VERSION = 2i32; +pub const WS_ERROR_PROPERTY_LANGID: WS_ERROR_PROPERTY_ID = 2i32; +pub const WS_ERROR_PROPERTY_ORIGINAL_ERROR_CODE: WS_ERROR_PROPERTY_ID = 1i32; +pub const WS_ERROR_PROPERTY_STRING_COUNT: WS_ERROR_PROPERTY_ID = 0i32; +pub const WS_EXCEPTION_CODE_INTERNAL_FAILURE: WS_EXCEPTION_CODE = -1069744127i32; +pub const WS_EXCEPTION_CODE_USAGE_FAILURE: WS_EXCEPTION_CODE = -1069744128i32; +pub const WS_EXCLUSIVE_WITH_COMMENTS_XML_CANONICALIZATION_ALGORITHM: WS_XML_CANONICALIZATION_ALGORITHM = 1i32; +pub const WS_EXCLUSIVE_XML_CANONICALIZATION_ALGORITHM: WS_XML_CANONICALIZATION_ALGORITHM = 0i32; +pub const WS_EXTENDED_PROTECTION_POLICY_ALWAYS: WS_EXTENDED_PROTECTION_POLICY = 3i32; +pub const WS_EXTENDED_PROTECTION_POLICY_NEVER: WS_EXTENDED_PROTECTION_POLICY = 1i32; +pub const WS_EXTENDED_PROTECTION_POLICY_WHEN_SUPPORTED: WS_EXTENDED_PROTECTION_POLICY = 2i32; +pub const WS_EXTENDED_PROTECTION_SCENARIO_BOUND_SERVER: WS_EXTENDED_PROTECTION_SCENARIO = 1i32; +pub const WS_EXTENDED_PROTECTION_SCENARIO_TERMINATED_SSL: WS_EXTENDED_PROTECTION_SCENARIO = 2i32; +pub const WS_FAULT_ERROR_PROPERTY_ACTION: WS_FAULT_ERROR_PROPERTY_ID = 1i32; +pub const WS_FAULT_ERROR_PROPERTY_FAULT: WS_FAULT_ERROR_PROPERTY_ID = 0i32; +pub const WS_FAULT_ERROR_PROPERTY_HEADER: WS_FAULT_ERROR_PROPERTY_ID = 2i32; +pub const WS_FAULT_MESSAGE: WS_MESSAGE_INITIALIZATION = 4i32; +pub const WS_FAULT_TO_HEADER: WS_HEADER_TYPE = 7i32; +pub const WS_FAULT_TYPE: WS_TYPE = 29i32; +pub const WS_FIELD_NILLABLE: i32 = 4i32; +pub const WS_FIELD_NILLABLE_ITEM: i32 = 8i32; +pub const WS_FIELD_OPTIONAL: i32 = 2i32; +pub const WS_FIELD_OTHER_NAMESPACE: i32 = 16i32; +pub const WS_FIELD_POINTER: i32 = 1i32; +pub const WS_FLOAT_TYPE: WS_TYPE = 9i32; +pub const WS_FLOAT_VALUE_TYPE: WS_VALUE_TYPE = 9i32; +pub const WS_FROM_HEADER: WS_HEADER_TYPE = 5i32; +pub const WS_FULL_FAULT_DISCLOSURE: WS_FAULT_DISCLOSURE = 1i32; +pub const WS_GUID_TYPE: WS_TYPE = 14i32; +pub const WS_GUID_VALUE_TYPE: WS_VALUE_TYPE = 14i32; +pub const WS_HEAP_PROPERTY_ACTUAL_SIZE: WS_HEAP_PROPERTY_ID = 3i32; +pub const WS_HEAP_PROPERTY_MAX_SIZE: WS_HEAP_PROPERTY_ID = 0i32; +pub const WS_HEAP_PROPERTY_REQUESTED_SIZE: WS_HEAP_PROPERTY_ID = 2i32; +pub const WS_HEAP_PROPERTY_TRIM_SIZE: WS_HEAP_PROPERTY_ID = 1i32; +pub const WS_HTTP_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 0i32; +pub const WS_HTTP_CHANNEL_BINDING: WS_CHANNEL_BINDING = 0i32; +pub const WS_HTTP_HEADER_AUTH_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 2i32; +pub const WS_HTTP_HEADER_AUTH_SCHEME_BASIC: i32 = 2i32; +pub const WS_HTTP_HEADER_AUTH_SCHEME_DIGEST: i32 = 4i32; +pub const WS_HTTP_HEADER_AUTH_SCHEME_NEGOTIATE: i32 = 16i32; +pub const WS_HTTP_HEADER_AUTH_SCHEME_NONE: i32 = 1i32; +pub const WS_HTTP_HEADER_AUTH_SCHEME_NTLM: i32 = 8i32; +pub const WS_HTTP_HEADER_AUTH_SCHEME_PASSPORT: i32 = 32i32; +pub const WS_HTTP_HEADER_AUTH_SECURITY_BINDING_CONSTRAINT_TYPE: WS_SECURITY_BINDING_CONSTRAINT_TYPE = 3i32; +pub const WS_HTTP_HEADER_AUTH_SECURITY_BINDING_TYPE: WS_SECURITY_BINDING_TYPE = 3i32; +pub const WS_HTTP_HEADER_AUTH_TARGET_PROXY: WS_HTTP_HEADER_AUTH_TARGET = 2i32; +pub const WS_HTTP_HEADER_AUTH_TARGET_SERVICE: WS_HTTP_HEADER_AUTH_TARGET = 1i32; +pub const WS_HTTP_HEADER_MAPPING_COMMA_SEPARATOR: i32 = 1i32; +pub const WS_HTTP_HEADER_MAPPING_QUOTED_VALUE: i32 = 4i32; +pub const WS_HTTP_HEADER_MAPPING_SEMICOLON_SEPARATOR: i32 = 2i32; +pub const WS_HTTP_PROXY_SETTING_MODE_AUTO: WS_HTTP_PROXY_SETTING_MODE = 1i32; +pub const WS_HTTP_PROXY_SETTING_MODE_CUSTOM: WS_HTTP_PROXY_SETTING_MODE = 3i32; +pub const WS_HTTP_PROXY_SETTING_MODE_NONE: WS_HTTP_PROXY_SETTING_MODE = 2i32; +pub const WS_HTTP_REQUEST_MAPPING_VERB: i32 = 2i32; +pub const WS_HTTP_RESPONSE_MAPPING_STATUS_CODE: i32 = 1i32; +pub const WS_HTTP_RESPONSE_MAPPING_STATUS_TEXT: i32 = 2i32; +pub const WS_HTTP_SSL_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 1i32; +pub const WS_HTTP_SSL_HEADER_AUTH_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 3i32; +pub const WS_HTTP_SSL_KERBEROS_APREQ_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 5i32; +pub const WS_HTTP_SSL_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 11i32; +pub const WS_HTTP_SSL_USERNAME_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 4i32; +pub const WS_HTTP_SSL_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 10i32; +pub const WS_INCLUSIVE_WITH_COMMENTS_XML_CANONICALIZATION_ALGORITHM: WS_XML_CANONICALIZATION_ALGORITHM = 3i32; +pub const WS_INCLUSIVE_XML_CANONICALIZATION_ALGORITHM: WS_XML_CANONICALIZATION_ALGORITHM = 2i32; +pub const WS_INT16_TYPE: WS_TYPE = 2i32; +pub const WS_INT16_VALUE_TYPE: WS_VALUE_TYPE = 2i32; +pub const WS_INT32_TYPE: WS_TYPE = 3i32; +pub const WS_INT32_VALUE_TYPE: WS_VALUE_TYPE = 3i32; +pub const WS_INT64_TYPE: WS_TYPE = 4i32; +pub const WS_INT64_VALUE_TYPE: WS_VALUE_TYPE = 4i32; +pub const WS_INT8_TYPE: WS_TYPE = 1i32; +pub const WS_INT8_VALUE_TYPE: WS_VALUE_TYPE = 1i32; +pub const WS_IP_VERSION_4: WS_IP_VERSION = 1i32; +pub const WS_IP_VERSION_6: WS_IP_VERSION = 2i32; +pub const WS_IP_VERSION_AUTO: WS_IP_VERSION = 3i32; +pub const WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT_TYPE: WS_SECURITY_BINDING_CONSTRAINT_TYPE = 6i32; +pub const WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT_TYPE: WS_SECURITY_BINDING_CONSTRAINT_TYPE = 5i32; +pub const WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_TYPE: WS_SECURITY_BINDING_TYPE = 5i32; +pub const WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL: WS_LISTENER_PROPERTY_ID = 3i32; +pub const WS_LISTENER_PROPERTY_CHANNEL_BINDING: WS_LISTENER_PROPERTY_ID = 5i32; +pub const WS_LISTENER_PROPERTY_CHANNEL_TYPE: WS_LISTENER_PROPERTY_ID = 4i32; +pub const WS_LISTENER_PROPERTY_CLOSE_TIMEOUT: WS_LISTENER_PROPERTY_ID = 10i32; +pub const WS_LISTENER_PROPERTY_CONNECT_TIMEOUT: WS_LISTENER_PROPERTY_ID = 6i32; +pub const WS_LISTENER_PROPERTY_CUSTOM_LISTENER_CALLBACKS: WS_LISTENER_PROPERTY_ID = 13i32; +pub const WS_LISTENER_PROPERTY_CUSTOM_LISTENER_INSTANCE: WS_LISTENER_PROPERTY_ID = 15i32; +pub const WS_LISTENER_PROPERTY_CUSTOM_LISTENER_PARAMETERS: WS_LISTENER_PROPERTY_ID = 14i32; +pub const WS_LISTENER_PROPERTY_DISALLOWED_USER_AGENT: WS_LISTENER_PROPERTY_ID = 16i32; +pub const WS_LISTENER_PROPERTY_IP_VERSION: WS_LISTENER_PROPERTY_ID = 1i32; +pub const WS_LISTENER_PROPERTY_IS_MULTICAST: WS_LISTENER_PROPERTY_ID = 7i32; +pub const WS_LISTENER_PROPERTY_LISTEN_BACKLOG: WS_LISTENER_PROPERTY_ID = 0i32; +pub const WS_LISTENER_PROPERTY_MULTICAST_INTERFACES: WS_LISTENER_PROPERTY_ID = 8i32; +pub const WS_LISTENER_PROPERTY_MULTICAST_LOOPBACK: WS_LISTENER_PROPERTY_ID = 9i32; +pub const WS_LISTENER_PROPERTY_STATE: WS_LISTENER_PROPERTY_ID = 2i32; +pub const WS_LISTENER_PROPERTY_TO_HEADER_MATCHING_OPTIONS: WS_LISTENER_PROPERTY_ID = 11i32; +pub const WS_LISTENER_PROPERTY_TRANSPORT_URL_MATCHING_OPTIONS: WS_LISTENER_PROPERTY_ID = 12i32; +pub const WS_LISTENER_STATE_CLOSED: WS_LISTENER_STATE = 5i32; +pub const WS_LISTENER_STATE_CLOSING: WS_LISTENER_STATE = 4i32; +pub const WS_LISTENER_STATE_CREATED: WS_LISTENER_STATE = 0i32; +pub const WS_LISTENER_STATE_FAULTED: WS_LISTENER_STATE = 3i32; +pub const WS_LISTENER_STATE_OPEN: WS_LISTENER_STATE = 2i32; +pub const WS_LISTENER_STATE_OPENING: WS_LISTENER_STATE = 1i32; +pub const WS_LONG_CALLBACK: WS_CALLBACK_MODEL = 1i32; +pub const WS_MANUAL_COOKIE_MODE: WS_COOKIE_MODE = 1i32; +pub const WS_MATCH_URL_DNS_FULLY_QUALIFIED_HOST: i32 = 2i32; +pub const WS_MATCH_URL_DNS_HOST: i32 = 1i32; +pub const WS_MATCH_URL_EXACT_PATH: i32 = 64i32; +pub const WS_MATCH_URL_HOST_ADDRESSES: i32 = 16i32; +pub const WS_MATCH_URL_LOCAL_HOST: i32 = 8i32; +pub const WS_MATCH_URL_NETBIOS_HOST: i32 = 4i32; +pub const WS_MATCH_URL_NO_QUERY: i32 = 256i32; +pub const WS_MATCH_URL_PORT: i32 = 32i32; +pub const WS_MATCH_URL_PREFIX_PATH: i32 = 128i32; +pub const WS_MATCH_URL_THIS_HOST: i32 = 31i32; +pub const WS_MESSAGE_ID_HEADER: WS_HEADER_TYPE = 3i32; +pub const WS_MESSAGE_PROPERTY_ADDRESSING_VERSION: WS_MESSAGE_PROPERTY_ID = 3i32; +pub const WS_MESSAGE_PROPERTY_BODY_READER: WS_MESSAGE_PROPERTY_ID = 6i32; +pub const WS_MESSAGE_PROPERTY_BODY_WRITER: WS_MESSAGE_PROPERTY_ID = 7i32; +pub const WS_MESSAGE_PROPERTY_ENCODED_CERT: WS_MESSAGE_PROPERTY_ID = 15i32; +pub const WS_MESSAGE_PROPERTY_ENVELOPE_VERSION: WS_MESSAGE_PROPERTY_ID = 2i32; +pub const WS_MESSAGE_PROPERTY_HEADER_BUFFER: WS_MESSAGE_PROPERTY_ID = 4i32; +pub const WS_MESSAGE_PROPERTY_HEADER_POSITION: WS_MESSAGE_PROPERTY_ID = 5i32; +pub const WS_MESSAGE_PROPERTY_HEAP: WS_MESSAGE_PROPERTY_ID = 1i32; +pub const WS_MESSAGE_PROPERTY_HEAP_PROPERTIES: WS_MESSAGE_PROPERTY_ID = 9i32; +pub const WS_MESSAGE_PROPERTY_HTTP_HEADER_AUTH_WINDOWS_TOKEN: WS_MESSAGE_PROPERTY_ID = 17i32; +pub const WS_MESSAGE_PROPERTY_IS_ADDRESSED: WS_MESSAGE_PROPERTY_ID = 8i32; +pub const WS_MESSAGE_PROPERTY_IS_FAULT: WS_MESSAGE_PROPERTY_ID = 12i32; +pub const WS_MESSAGE_PROPERTY_MAX_PROCESSED_HEADERS: WS_MESSAGE_PROPERTY_ID = 13i32; +pub const WS_MESSAGE_PROPERTY_MESSAGE_SECURITY_WINDOWS_TOKEN: WS_MESSAGE_PROPERTY_ID = 18i32; +pub const WS_MESSAGE_PROPERTY_PROTECTION_LEVEL: WS_MESSAGE_PROPERTY_ID = 21i32; +pub const WS_MESSAGE_PROPERTY_SAML_ASSERTION: WS_MESSAGE_PROPERTY_ID = 19i32; +pub const WS_MESSAGE_PROPERTY_SECURITY_CONTEXT: WS_MESSAGE_PROPERTY_ID = 20i32; +pub const WS_MESSAGE_PROPERTY_STATE: WS_MESSAGE_PROPERTY_ID = 0i32; +pub const WS_MESSAGE_PROPERTY_TRANSPORT_SECURITY_WINDOWS_TOKEN: WS_MESSAGE_PROPERTY_ID = 16i32; +pub const WS_MESSAGE_PROPERTY_USERNAME: WS_MESSAGE_PROPERTY_ID = 14i32; +pub const WS_MESSAGE_PROPERTY_XML_READER_PROPERTIES: WS_MESSAGE_PROPERTY_ID = 10i32; +pub const WS_MESSAGE_PROPERTY_XML_WRITER_PROPERTIES: WS_MESSAGE_PROPERTY_ID = 11i32; +pub const WS_MESSAGE_STATE_DONE: WS_MESSAGE_STATE = 5i32; +pub const WS_MESSAGE_STATE_EMPTY: WS_MESSAGE_STATE = 1i32; +pub const WS_MESSAGE_STATE_INITIALIZED: WS_MESSAGE_STATE = 2i32; +pub const WS_MESSAGE_STATE_READING: WS_MESSAGE_STATE = 3i32; +pub const WS_MESSAGE_STATE_WRITING: WS_MESSAGE_STATE = 4i32; +pub const WS_METADATA_EXCHANGE_TYPE_HTTP_GET: WS_METADATA_EXCHANGE_TYPE = 2i32; +pub const WS_METADATA_EXCHANGE_TYPE_MEX: WS_METADATA_EXCHANGE_TYPE = 1i32; +pub const WS_METADATA_EXCHANGE_TYPE_NONE: WS_METADATA_EXCHANGE_TYPE = 0i32; +pub const WS_METADATA_PROPERTY_HEAP_PROPERTIES: WS_METADATA_PROPERTY_ID = 2i32; +pub const WS_METADATA_PROPERTY_HEAP_REQUESTED_SIZE: WS_METADATA_PROPERTY_ID = 4i32; +pub const WS_METADATA_PROPERTY_HOST_NAMES: WS_METADATA_PROPERTY_ID = 6i32; +pub const WS_METADATA_PROPERTY_MAX_DOCUMENTS: WS_METADATA_PROPERTY_ID = 5i32; +pub const WS_METADATA_PROPERTY_POLICY_PROPERTIES: WS_METADATA_PROPERTY_ID = 3i32; +pub const WS_METADATA_PROPERTY_STATE: WS_METADATA_PROPERTY_ID = 1i32; +pub const WS_METADATA_PROPERTY_VERIFY_HOST_NAMES: WS_METADATA_PROPERTY_ID = 7i32; +pub const WS_METADATA_STATE_CREATED: WS_METADATA_STATE = 1i32; +pub const WS_METADATA_STATE_FAULTED: WS_METADATA_STATE = 3i32; +pub const WS_METADATA_STATE_RESOLVED: WS_METADATA_STATE = 2i32; +pub const WS_MINIMAL_FAULT_DISCLOSURE: WS_FAULT_DISCLOSURE = 0i32; +pub const WS_MOVE_TO_BOF: WS_MOVE_TO = 9i32; +pub const WS_MOVE_TO_CHILD_ELEMENT: WS_MOVE_TO = 3i32; +pub const WS_MOVE_TO_CHILD_NODE: WS_MOVE_TO = 11i32; +pub const WS_MOVE_TO_END_ELEMENT: WS_MOVE_TO = 4i32; +pub const WS_MOVE_TO_EOF: WS_MOVE_TO = 10i32; +pub const WS_MOVE_TO_FIRST_NODE: WS_MOVE_TO = 8i32; +pub const WS_MOVE_TO_NEXT_ELEMENT: WS_MOVE_TO = 1i32; +pub const WS_MOVE_TO_NEXT_NODE: WS_MOVE_TO = 6i32; +pub const WS_MOVE_TO_PARENT_ELEMENT: WS_MOVE_TO = 5i32; +pub const WS_MOVE_TO_PREVIOUS_ELEMENT: WS_MOVE_TO = 2i32; +pub const WS_MOVE_TO_PREVIOUS_NODE: WS_MOVE_TO = 7i32; +pub const WS_MOVE_TO_ROOT_ELEMENT: WS_MOVE_TO = 0i32; +pub const WS_MUST_UNDERSTAND_HEADER_ATTRIBUTE: i32 = 1i32; +pub const WS_NAMEDPIPE_CHANNEL_BINDING: WS_CHANNEL_BINDING = 4i32; +pub const WS_NAMEDPIPE_SSPI_TRANSPORT_SECURITY_BINDING_TYPE: WS_SECURITY_BINDING_TYPE = 9i32; +pub const WS_NCRYPT_ASYMMETRIC_SECURITY_KEY_HANDLE_TYPE: WS_SECURITY_KEY_HANDLE_TYPE = 2i32; +pub const WS_NON_RPC_LITERAL_OPERATION: WS_OPERATION_STYLE = 0i32; +pub const WS_NO_FIELD_MAPPING: WS_FIELD_MAPPING = 5i32; +pub const WS_OPAQUE_WINDOWS_INTEGRATED_AUTH_CREDENTIAL_TYPE: WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL_TYPE = 3i32; +pub const WS_OPERATION_CONTEXT_PROPERTY_CHANNEL: WS_OPERATION_CONTEXT_PROPERTY_ID = 0i32; +pub const WS_OPERATION_CONTEXT_PROPERTY_CHANNEL_USER_STATE: WS_OPERATION_CONTEXT_PROPERTY_ID = 3i32; +pub const WS_OPERATION_CONTEXT_PROPERTY_CONTRACT_DESCRIPTION: WS_OPERATION_CONTEXT_PROPERTY_ID = 1i32; +pub const WS_OPERATION_CONTEXT_PROPERTY_ENDPOINT_ADDRESS: WS_OPERATION_CONTEXT_PROPERTY_ID = 8i32; +pub const WS_OPERATION_CONTEXT_PROPERTY_HEAP: WS_OPERATION_CONTEXT_PROPERTY_ID = 6i32; +pub const WS_OPERATION_CONTEXT_PROPERTY_HOST_USER_STATE: WS_OPERATION_CONTEXT_PROPERTY_ID = 2i32; +pub const WS_OPERATION_CONTEXT_PROPERTY_INPUT_MESSAGE: WS_OPERATION_CONTEXT_PROPERTY_ID = 4i32; +pub const WS_OPERATION_CONTEXT_PROPERTY_LISTENER: WS_OPERATION_CONTEXT_PROPERTY_ID = 7i32; +pub const WS_OPERATION_CONTEXT_PROPERTY_OUTPUT_MESSAGE: WS_OPERATION_CONTEXT_PROPERTY_ID = 5i32; +pub const WS_PARAMETER_TYPE_ARRAY: WS_PARAMETER_TYPE = 1i32; +pub const WS_PARAMETER_TYPE_ARRAY_COUNT: WS_PARAMETER_TYPE = 2i32; +pub const WS_PARAMETER_TYPE_MESSAGES: WS_PARAMETER_TYPE = 3i32; +pub const WS_PARAMETER_TYPE_NORMAL: WS_PARAMETER_TYPE = 0i32; +pub const WS_POLICY_PROPERTY_MAX_ALTERNATIVES: WS_POLICY_PROPERTY_ID = 2i32; +pub const WS_POLICY_PROPERTY_MAX_DEPTH: WS_POLICY_PROPERTY_ID = 3i32; +pub const WS_POLICY_PROPERTY_MAX_EXTENSIONS: WS_POLICY_PROPERTY_ID = 4i32; +pub const WS_POLICY_PROPERTY_STATE: WS_POLICY_PROPERTY_ID = 1i32; +pub const WS_POLICY_STATE_CREATED: WS_POLICY_STATE = 1i32; +pub const WS_POLICY_STATE_FAULTED: WS_POLICY_STATE = 2i32; +pub const WS_PROTECTION_LEVEL_NONE: WS_PROTECTION_LEVEL = 1i32; +pub const WS_PROTECTION_LEVEL_SIGN: WS_PROTECTION_LEVEL = 2i32; +pub const WS_PROTECTION_LEVEL_SIGN_AND_ENCRYPT: WS_PROTECTION_LEVEL = 3i32; +pub const WS_PROXY_FAULT_LANG_ID: WS_PROXY_PROPERTY_ID = 6i32; +pub const WS_PROXY_PROPERTY_CALL_TIMEOUT: WS_PROXY_PROPERTY_ID = 0i32; +pub const WS_PROXY_PROPERTY_MAX_CALL_POOL_SIZE: WS_PROXY_PROPERTY_ID = 2i32; +pub const WS_PROXY_PROPERTY_MAX_CLOSE_TIMEOUT: WS_PROXY_PROPERTY_ID = 5i32; +pub const WS_PROXY_PROPERTY_MAX_PENDING_CALLS: WS_PROXY_PROPERTY_ID = 4i32; +pub const WS_PROXY_PROPERTY_MESSAGE_PROPERTIES: WS_PROXY_PROPERTY_ID = 1i32; +pub const WS_PROXY_PROPERTY_STATE: WS_PROXY_PROPERTY_ID = 3i32; +pub const WS_RAW_SYMMETRIC_SECURITY_KEY_HANDLE_TYPE: WS_SECURITY_KEY_HANDLE_TYPE = 1i32; +pub const WS_READ_NILLABLE_POINTER: WS_READ_OPTION = 4i32; +pub const WS_READ_NILLABLE_VALUE: WS_READ_OPTION = 5i32; +pub const WS_READ_OPTIONAL_POINTER: WS_READ_OPTION = 3i32; +pub const WS_READ_REQUIRED_POINTER: WS_READ_OPTION = 2i32; +pub const WS_READ_REQUIRED_VALUE: WS_READ_OPTION = 1i32; +pub const WS_RECEIVE_OPTIONAL_MESSAGE: WS_RECEIVE_OPTION = 2i32; +pub const WS_RECEIVE_REQUIRED_MESSAGE: WS_RECEIVE_OPTION = 1i32; +pub const WS_RELATES_TO_HEADER: WS_HEADER_TYPE = 4i32; +pub const WS_RELAY_HEADER_ATTRIBUTE: i32 = 2i32; +pub const WS_REPEATING_ANY_ELEMENT_FIELD_MAPPING: WS_FIELD_MAPPING = 10i32; +pub const WS_REPEATING_ELEMENT_CHOICE_FIELD_MAPPING: WS_FIELD_MAPPING = 8i32; +pub const WS_REPEATING_ELEMENT_FIELD_MAPPING: WS_FIELD_MAPPING = 3i32; +pub const WS_REPEATING_HEADER: WS_REPEATING_HEADER_OPTION = 1i32; +pub const WS_REPLY_MESSAGE: WS_MESSAGE_INITIALIZATION = 3i32; +pub const WS_REPLY_TO_HEADER: WS_HEADER_TYPE = 6i32; +pub const WS_REQUEST_MESSAGE: WS_MESSAGE_INITIALIZATION = 2i32; +pub const WS_REQUEST_SECURITY_TOKEN_ACTION_ISSUE: WS_REQUEST_SECURITY_TOKEN_ACTION = 1i32; +pub const WS_REQUEST_SECURITY_TOKEN_ACTION_NEW_CONTEXT: WS_REQUEST_SECURITY_TOKEN_ACTION = 2i32; +pub const WS_REQUEST_SECURITY_TOKEN_ACTION_RENEW_CONTEXT: WS_REQUEST_SECURITY_TOKEN_ACTION = 3i32; +pub const WS_REQUEST_SECURITY_TOKEN_PROPERTY_APPLIES_TO: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = 1i32; +pub const WS_REQUEST_SECURITY_TOKEN_PROPERTY_BEARER_KEY_TYPE_VERSION: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = 13i32; +pub const WS_REQUEST_SECURITY_TOKEN_PROPERTY_EXISTING_TOKEN: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = 6i32; +pub const WS_REQUEST_SECURITY_TOKEN_PROPERTY_ISSUED_TOKEN_KEY_ENTROPY: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = 9i32; +pub const WS_REQUEST_SECURITY_TOKEN_PROPERTY_ISSUED_TOKEN_KEY_SIZE: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = 8i32; +pub const WS_REQUEST_SECURITY_TOKEN_PROPERTY_ISSUED_TOKEN_KEY_TYPE: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = 7i32; +pub const WS_REQUEST_SECURITY_TOKEN_PROPERTY_ISSUED_TOKEN_TYPE: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = 4i32; +pub const WS_REQUEST_SECURITY_TOKEN_PROPERTY_LOCAL_REQUEST_PARAMETERS: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = 10i32; +pub const WS_REQUEST_SECURITY_TOKEN_PROPERTY_MESSAGE_PROPERTIES: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = 12i32; +pub const WS_REQUEST_SECURITY_TOKEN_PROPERTY_REQUEST_ACTION: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = 5i32; +pub const WS_REQUEST_SECURITY_TOKEN_PROPERTY_SECURE_CONVERSATION_VERSION: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = 3i32; +pub const WS_REQUEST_SECURITY_TOKEN_PROPERTY_SERVICE_REQUEST_PARAMETERS: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = 11i32; +pub const WS_REQUEST_SECURITY_TOKEN_PROPERTY_TRUST_VERSION: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = 2i32; +pub const WS_RPC_LITERAL_OPERATION: WS_OPERATION_STYLE = 1i32; +pub const WS_RSA_ENDPOINT_IDENTITY_TYPE: WS_ENDPOINT_IDENTITY_TYPE = 4i32; +pub const WS_SAML_MESSAGE_SECURITY_BINDING_TYPE: WS_SECURITY_BINDING_TYPE = 7i32; +pub const WS_SECURE_CONVERSATION_VERSION_1_3: WS_SECURE_CONVERSATION_VERSION = 2i32; +pub const WS_SECURE_CONVERSATION_VERSION_FEBRUARY_2005: WS_SECURE_CONVERSATION_VERSION = 1i32; +pub const WS_SECURE_PROTOCOL_SSL2: WS_SECURE_PROTOCOL = 1i32; +pub const WS_SECURE_PROTOCOL_SSL3: WS_SECURE_PROTOCOL = 2i32; +pub const WS_SECURE_PROTOCOL_TLS1_0: WS_SECURE_PROTOCOL = 4i32; +pub const WS_SECURE_PROTOCOL_TLS1_1: WS_SECURE_PROTOCOL = 8i32; +pub const WS_SECURE_PROTOCOL_TLS1_2: WS_SECURE_PROTOCOL = 16i32; +pub const WS_SECURITY_ALGORITHM_ASYMMETRIC_KEYWRAP_RSA_1_5: WS_SECURITY_ALGORITHM_ID = 16i32; +pub const WS_SECURITY_ALGORITHM_ASYMMETRIC_KEYWRAP_RSA_OAEP: WS_SECURITY_ALGORITHM_ID = 17i32; +pub const WS_SECURITY_ALGORITHM_ASYMMETRIC_SIGNATURE_DSA_SHA1: WS_SECURITY_ALGORITHM_ID = 12i32; +pub const WS_SECURITY_ALGORITHM_ASYMMETRIC_SIGNATURE_RSA_SHA1: WS_SECURITY_ALGORITHM_ID = 11i32; +pub const WS_SECURITY_ALGORITHM_ASYMMETRIC_SIGNATURE_RSA_SHA_256: WS_SECURITY_ALGORITHM_ID = 13i32; +pub const WS_SECURITY_ALGORITHM_ASYMMETRIC_SIGNATURE_RSA_SHA_384: WS_SECURITY_ALGORITHM_ID = 14i32; +pub const WS_SECURITY_ALGORITHM_ASYMMETRIC_SIGNATURE_RSA_SHA_512: WS_SECURITY_ALGORITHM_ID = 15i32; +pub const WS_SECURITY_ALGORITHM_CANONICALIZATION_EXCLUSIVE: WS_SECURITY_ALGORITHM_ID = 1i32; +pub const WS_SECURITY_ALGORITHM_CANONICALIZATION_EXCLUSIVE_WITH_COMMENTS: WS_SECURITY_ALGORITHM_ID = 2i32; +pub const WS_SECURITY_ALGORITHM_DEFAULT: WS_SECURITY_ALGORITHM_ID = 0i32; +pub const WS_SECURITY_ALGORITHM_DIGEST_SHA1: WS_SECURITY_ALGORITHM_ID = 3i32; +pub const WS_SECURITY_ALGORITHM_DIGEST_SHA_256: WS_SECURITY_ALGORITHM_ID = 4i32; +pub const WS_SECURITY_ALGORITHM_DIGEST_SHA_384: WS_SECURITY_ALGORITHM_ID = 5i32; +pub const WS_SECURITY_ALGORITHM_DIGEST_SHA_512: WS_SECURITY_ALGORITHM_ID = 6i32; +pub const WS_SECURITY_ALGORITHM_KEY_DERIVATION_P_SHA1: WS_SECURITY_ALGORITHM_ID = 18i32; +pub const WS_SECURITY_ALGORITHM_SUITE_NAME_BASIC128: WS_SECURITY_ALGORITHM_SUITE_NAME = 3i32; +pub const WS_SECURITY_ALGORITHM_SUITE_NAME_BASIC128_RSA15: WS_SECURITY_ALGORITHM_SUITE_NAME = 6i32; +pub const WS_SECURITY_ALGORITHM_SUITE_NAME_BASIC128_SHA256: WS_SECURITY_ALGORITHM_SUITE_NAME = 9i32; +pub const WS_SECURITY_ALGORITHM_SUITE_NAME_BASIC128_SHA256_RSA15: WS_SECURITY_ALGORITHM_SUITE_NAME = 12i32; +pub const WS_SECURITY_ALGORITHM_SUITE_NAME_BASIC192: WS_SECURITY_ALGORITHM_SUITE_NAME = 2i32; +pub const WS_SECURITY_ALGORITHM_SUITE_NAME_BASIC192_RSA15: WS_SECURITY_ALGORITHM_SUITE_NAME = 5i32; +pub const WS_SECURITY_ALGORITHM_SUITE_NAME_BASIC192_SHA256: WS_SECURITY_ALGORITHM_SUITE_NAME = 8i32; +pub const WS_SECURITY_ALGORITHM_SUITE_NAME_BASIC192_SHA256_RSA15: WS_SECURITY_ALGORITHM_SUITE_NAME = 11i32; +pub const WS_SECURITY_ALGORITHM_SUITE_NAME_BASIC256: WS_SECURITY_ALGORITHM_SUITE_NAME = 1i32; +pub const WS_SECURITY_ALGORITHM_SUITE_NAME_BASIC256_RSA15: WS_SECURITY_ALGORITHM_SUITE_NAME = 4i32; +pub const WS_SECURITY_ALGORITHM_SUITE_NAME_BASIC256_SHA256: WS_SECURITY_ALGORITHM_SUITE_NAME = 7i32; +pub const WS_SECURITY_ALGORITHM_SUITE_NAME_BASIC256_SHA256_RSA15: WS_SECURITY_ALGORITHM_SUITE_NAME = 10i32; +pub const WS_SECURITY_ALGORITHM_SYMMETRIC_SIGNATURE_HMAC_SHA1: WS_SECURITY_ALGORITHM_ID = 7i32; +pub const WS_SECURITY_ALGORITHM_SYMMETRIC_SIGNATURE_HMAC_SHA_256: WS_SECURITY_ALGORITHM_ID = 8i32; +pub const WS_SECURITY_ALGORITHM_SYMMETRIC_SIGNATURE_HMAC_SHA_384: WS_SECURITY_ALGORITHM_ID = 9i32; +pub const WS_SECURITY_ALGORITHM_SYMMETRIC_SIGNATURE_HMAC_SHA_512: WS_SECURITY_ALGORITHM_ID = 10i32; +pub const WS_SECURITY_BEARER_KEY_TYPE_VERSION_1_3_ERRATA_01: WS_SECURITY_BEARER_KEY_TYPE_VERSION = 3i32; +pub const WS_SECURITY_BEARER_KEY_TYPE_VERSION_1_3_ORIGINAL_SCHEMA: WS_SECURITY_BEARER_KEY_TYPE_VERSION = 2i32; +pub const WS_SECURITY_BEARER_KEY_TYPE_VERSION_1_3_ORIGINAL_SPECIFICATION: WS_SECURITY_BEARER_KEY_TYPE_VERSION = 1i32; +pub const WS_SECURITY_BINDING_PROPERTY_ALLOWED_IMPERSONATION_LEVEL: WS_SECURITY_BINDING_PROPERTY_ID = 5i32; +pub const WS_SECURITY_BINDING_PROPERTY_ALLOW_ANONYMOUS_CLIENTS: WS_SECURITY_BINDING_PROPERTY_ID = 4i32; +pub const WS_SECURITY_BINDING_PROPERTY_CERTIFICATE_VALIDATION_CALLBACK_CONTEXT: WS_SECURITY_BINDING_PROPERTY_ID = 23i32; +pub const WS_SECURITY_BINDING_PROPERTY_CERT_FAILURES_TO_IGNORE: WS_SECURITY_BINDING_PROPERTY_ID = 20i32; +pub const WS_SECURITY_BINDING_PROPERTY_DISABLE_CERT_REVOCATION_CHECK: WS_SECURITY_BINDING_PROPERTY_ID = 21i32; +pub const WS_SECURITY_BINDING_PROPERTY_DISALLOWED_SECURE_PROTOCOLS: WS_SECURITY_BINDING_PROPERTY_ID = 22i32; +pub const WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_BASIC_REALM: WS_SECURITY_BINDING_PROPERTY_ID = 8i32; +pub const WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_DIGEST_DOMAIN: WS_SECURITY_BINDING_PROPERTY_ID = 10i32; +pub const WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_DIGEST_REALM: WS_SECURITY_BINDING_PROPERTY_ID = 9i32; +pub const WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_SCHEME: WS_SECURITY_BINDING_PROPERTY_ID = 6i32; +pub const WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_TARGET: WS_SECURITY_BINDING_PROPERTY_ID = 7i32; +pub const WS_SECURITY_BINDING_PROPERTY_MESSAGE_PROPERTIES: WS_SECURITY_BINDING_PROPERTY_ID = 13i32; +pub const WS_SECURITY_BINDING_PROPERTY_REQUIRE_SERVER_AUTH: WS_SECURITY_BINDING_PROPERTY_ID = 3i32; +pub const WS_SECURITY_BINDING_PROPERTY_REQUIRE_SSL_CLIENT_CERT: WS_SECURITY_BINDING_PROPERTY_ID = 1i32; +pub const WS_SECURITY_BINDING_PROPERTY_SECURE_CONVERSATION_VERSION: WS_SECURITY_BINDING_PROPERTY_ID = 16i32; +pub const WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_KEY_ENTROPY_MODE: WS_SECURITY_BINDING_PROPERTY_ID = 12i32; +pub const WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_KEY_SIZE: WS_SECURITY_BINDING_PROPERTY_ID = 11i32; +pub const WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_MAX_ACTIVE_CONTEXTS: WS_SECURITY_BINDING_PROPERTY_ID = 15i32; +pub const WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_MAX_PENDING_CONTEXTS: WS_SECURITY_BINDING_PROPERTY_ID = 14i32; +pub const WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_RENEWAL_INTERVAL: WS_SECURITY_BINDING_PROPERTY_ID = 18i32; +pub const WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_ROLLOVER_INTERVAL: WS_SECURITY_BINDING_PROPERTY_ID = 19i32; +pub const WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_SUPPORT_RENEW: WS_SECURITY_BINDING_PROPERTY_ID = 17i32; +pub const WS_SECURITY_BINDING_PROPERTY_WINDOWS_INTEGRATED_AUTH_PACKAGE: WS_SECURITY_BINDING_PROPERTY_ID = 2i32; +pub const WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT_TYPE: WS_SECURITY_BINDING_CONSTRAINT_TYPE = 8i32; +pub const WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_TYPE: WS_SECURITY_BINDING_TYPE = 8i32; +pub const WS_SECURITY_CONTEXT_PROPERTY_IDENTIFIER: WS_SECURITY_CONTEXT_PROPERTY_ID = 1i32; +pub const WS_SECURITY_CONTEXT_PROPERTY_MESSAGE_SECURITY_WINDOWS_TOKEN: WS_SECURITY_CONTEXT_PROPERTY_ID = 3i32; +pub const WS_SECURITY_CONTEXT_PROPERTY_SAML_ASSERTION: WS_SECURITY_CONTEXT_PROPERTY_ID = 4i32; +pub const WS_SECURITY_CONTEXT_PROPERTY_USERNAME: WS_SECURITY_CONTEXT_PROPERTY_ID = 2i32; +pub const WS_SECURITY_HEADER_LAYOUT_LAX: WS_SECURITY_HEADER_LAYOUT = 2i32; +pub const WS_SECURITY_HEADER_LAYOUT_LAX_WITH_TIMESTAMP_FIRST: WS_SECURITY_HEADER_LAYOUT = 3i32; +pub const WS_SECURITY_HEADER_LAYOUT_LAX_WITH_TIMESTAMP_LAST: WS_SECURITY_HEADER_LAYOUT = 4i32; +pub const WS_SECURITY_HEADER_LAYOUT_STRICT: WS_SECURITY_HEADER_LAYOUT = 1i32; +pub const WS_SECURITY_HEADER_VERSION_1_0: WS_SECURITY_HEADER_VERSION = 1i32; +pub const WS_SECURITY_HEADER_VERSION_1_1: WS_SECURITY_HEADER_VERSION = 2i32; +pub const WS_SECURITY_KEY_ENTROPY_MODE_CLIENT_ONLY: WS_SECURITY_KEY_ENTROPY_MODE = 1i32; +pub const WS_SECURITY_KEY_ENTROPY_MODE_COMBINED: WS_SECURITY_KEY_ENTROPY_MODE = 3i32; +pub const WS_SECURITY_KEY_ENTROPY_MODE_SERVER_ONLY: WS_SECURITY_KEY_ENTROPY_MODE = 2i32; +pub const WS_SECURITY_KEY_TYPE_ASYMMETRIC: WS_SECURITY_KEY_TYPE = 3i32; +pub const WS_SECURITY_KEY_TYPE_NONE: WS_SECURITY_KEY_TYPE = 1i32; +pub const WS_SECURITY_KEY_TYPE_SYMMETRIC: WS_SECURITY_KEY_TYPE = 2i32; +pub const WS_SECURITY_PROPERTY_ALGORITHM_SUITE: WS_SECURITY_PROPERTY_ID = 2i32; +pub const WS_SECURITY_PROPERTY_ALGORITHM_SUITE_NAME: WS_SECURITY_PROPERTY_ID = 3i32; +pub const WS_SECURITY_PROPERTY_EXTENDED_PROTECTION_POLICY: WS_SECURITY_PROPERTY_ID = 10i32; +pub const WS_SECURITY_PROPERTY_EXTENDED_PROTECTION_SCENARIO: WS_SECURITY_PROPERTY_ID = 11i32; +pub const WS_SECURITY_PROPERTY_MAX_ALLOWED_CLOCK_SKEW: WS_SECURITY_PROPERTY_ID = 6i32; +pub const WS_SECURITY_PROPERTY_MAX_ALLOWED_LATENCY: WS_SECURITY_PROPERTY_ID = 4i32; +pub const WS_SECURITY_PROPERTY_SECURITY_HEADER_LAYOUT: WS_SECURITY_PROPERTY_ID = 8i32; +pub const WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION: WS_SECURITY_PROPERTY_ID = 9i32; +pub const WS_SECURITY_PROPERTY_SERVICE_IDENTITIES: WS_SECURITY_PROPERTY_ID = 12i32; +pub const WS_SECURITY_PROPERTY_TIMESTAMP_USAGE: WS_SECURITY_PROPERTY_ID = 7i32; +pub const WS_SECURITY_PROPERTY_TIMESTAMP_VALIDITY_DURATION: WS_SECURITY_PROPERTY_ID = 5i32; +pub const WS_SECURITY_PROPERTY_TRANSPORT_PROTECTION_LEVEL: WS_SECURITY_PROPERTY_ID = 1i32; +pub const WS_SECURITY_TIMESTAMP_USAGE_ALWAYS: WS_SECURITY_TIMESTAMP_USAGE = 1i32; +pub const WS_SECURITY_TIMESTAMP_USAGE_NEVER: WS_SECURITY_TIMESTAMP_USAGE = 2i32; +pub const WS_SECURITY_TIMESTAMP_USAGE_REQUESTS_ONLY: WS_SECURITY_TIMESTAMP_USAGE = 3i32; +pub const WS_SECURITY_TOKEN_PROPERTY_ATTACHED_REFERENCE_XML: WS_SECURITY_TOKEN_PROPERTY_ID = 5i32; +pub const WS_SECURITY_TOKEN_PROPERTY_KEY_TYPE: WS_SECURITY_TOKEN_PROPERTY_ID = 1i32; +pub const WS_SECURITY_TOKEN_PROPERTY_SERIALIZED_XML: WS_SECURITY_TOKEN_PROPERTY_ID = 4i32; +pub const WS_SECURITY_TOKEN_PROPERTY_SYMMETRIC_KEY: WS_SECURITY_TOKEN_PROPERTY_ID = 7i32; +pub const WS_SECURITY_TOKEN_PROPERTY_UNATTACHED_REFERENCE_XML: WS_SECURITY_TOKEN_PROPERTY_ID = 6i32; +pub const WS_SECURITY_TOKEN_PROPERTY_VALID_FROM_TIME: WS_SECURITY_TOKEN_PROPERTY_ID = 2i32; +pub const WS_SECURITY_TOKEN_PROPERTY_VALID_TILL_TIME: WS_SECURITY_TOKEN_PROPERTY_ID = 3i32; +pub const WS_SECURITY_TOKEN_REFERENCE_MODE_CERT_THUMBPRINT: WS_SECURITY_TOKEN_REFERENCE_MODE = 3i32; +pub const WS_SECURITY_TOKEN_REFERENCE_MODE_LOCAL_ID: WS_SECURITY_TOKEN_REFERENCE_MODE = 1i32; +pub const WS_SECURITY_TOKEN_REFERENCE_MODE_SAML_ASSERTION_ID: WS_SECURITY_TOKEN_REFERENCE_MODE = 5i32; +pub const WS_SECURITY_TOKEN_REFERENCE_MODE_SECURITY_CONTEXT_ID: WS_SECURITY_TOKEN_REFERENCE_MODE = 4i32; +pub const WS_SECURITY_TOKEN_REFERENCE_MODE_XML_BUFFER: WS_SECURITY_TOKEN_REFERENCE_MODE = 2i32; +pub const WS_SERVICE_CHANNEL_FAULTED: WS_SERVICE_CANCEL_REASON = 1i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_ACCEPT_CHANNEL_CALLBACK: WS_SERVICE_ENDPOINT_PROPERTY_ID = 0i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_BODY_HEAP_MAX_SIZE: WS_SERVICE_ENDPOINT_PROPERTY_ID = 4i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_BODY_HEAP_TRIM_SIZE: WS_SERVICE_ENDPOINT_PROPERTY_ID = 5i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_CHECK_MUST_UNDERSTAND: WS_SERVICE_ENDPOINT_PROPERTY_ID = 10i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_CLOSE_CHANNEL_CALLBACK: WS_SERVICE_ENDPOINT_PROPERTY_ID = 1i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_LISTENER_PROPERTIES: WS_SERVICE_ENDPOINT_PROPERTY_ID = 9i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_MAX_ACCEPTING_CHANNELS: WS_SERVICE_ENDPOINT_PROPERTY_ID = 2i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_MAX_CALL_POOL_SIZE: WS_SERVICE_ENDPOINT_PROPERTY_ID = 7i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_MAX_CHANNELS: WS_SERVICE_ENDPOINT_PROPERTY_ID = 14i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_MAX_CHANNEL_POOL_SIZE: WS_SERVICE_ENDPOINT_PROPERTY_ID = 8i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_MAX_CONCURRENCY: WS_SERVICE_ENDPOINT_PROPERTY_ID = 3i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_MESSAGE_PROPERTIES: WS_SERVICE_ENDPOINT_PROPERTY_ID = 6i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_METADATA: WS_SERVICE_ENDPOINT_PROPERTY_ID = 12i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_METADATA_EXCHANGE_TYPE: WS_SERVICE_ENDPOINT_PROPERTY_ID = 11i32; +pub const WS_SERVICE_ENDPOINT_PROPERTY_METADATA_EXCHANGE_URL_SUFFIX: WS_SERVICE_ENDPOINT_PROPERTY_ID = 13i32; +pub const WS_SERVICE_HOST_ABORT: WS_SERVICE_CANCEL_REASON = 0i32; +pub const WS_SERVICE_HOST_STATE_CLOSED: WS_SERVICE_HOST_STATE = 4i32; +pub const WS_SERVICE_HOST_STATE_CLOSING: WS_SERVICE_HOST_STATE = 3i32; +pub const WS_SERVICE_HOST_STATE_CREATED: WS_SERVICE_HOST_STATE = 0i32; +pub const WS_SERVICE_HOST_STATE_FAULTED: WS_SERVICE_HOST_STATE = 5i32; +pub const WS_SERVICE_HOST_STATE_OPEN: WS_SERVICE_HOST_STATE = 2i32; +pub const WS_SERVICE_HOST_STATE_OPENING: WS_SERVICE_HOST_STATE = 1i32; +pub const WS_SERVICE_OPERATION_MESSAGE_NILLABLE_ELEMENT: i32 = 1i32; +pub const WS_SERVICE_PROPERTY_CLOSE_TIMEOUT: WS_SERVICE_PROPERTY_ID = 5i32; +pub const WS_SERVICE_PROPERTY_FAULT_DISCLOSURE: WS_SERVICE_PROPERTY_ID = 1i32; +pub const WS_SERVICE_PROPERTY_FAULT_LANGID: WS_SERVICE_PROPERTY_ID = 2i32; +pub const WS_SERVICE_PROPERTY_HOST_STATE: WS_SERVICE_PROPERTY_ID = 3i32; +pub const WS_SERVICE_PROPERTY_HOST_USER_STATE: WS_SERVICE_PROPERTY_ID = 0i32; +pub const WS_SERVICE_PROPERTY_METADATA: WS_SERVICE_PROPERTY_ID = 4i32; +pub const WS_SERVICE_PROXY_STATE_CLOSED: WS_SERVICE_PROXY_STATE = 4i32; +pub const WS_SERVICE_PROXY_STATE_CLOSING: WS_SERVICE_PROXY_STATE = 3i32; +pub const WS_SERVICE_PROXY_STATE_CREATED: WS_SERVICE_PROXY_STATE = 0i32; +pub const WS_SERVICE_PROXY_STATE_FAULTED: WS_SERVICE_PROXY_STATE = 5i32; +pub const WS_SERVICE_PROXY_STATE_OPEN: WS_SERVICE_PROXY_STATE = 2i32; +pub const WS_SERVICE_PROXY_STATE_OPENING: WS_SERVICE_PROXY_STATE = 1i32; +pub const WS_SHORT_CALLBACK: WS_CALLBACK_MODEL = 0i32; +pub const WS_SINGLETON_HEADER: WS_REPEATING_HEADER_OPTION = 2i32; +pub const WS_SPN_ENDPOINT_IDENTITY_TYPE: WS_ENDPOINT_IDENTITY_TYPE = 3i32; +pub const WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT_TYPE: WS_SECURITY_BINDING_CONSTRAINT_TYPE = 1i32; +pub const WS_SSL_TRANSPORT_SECURITY_BINDING_TYPE: WS_SECURITY_BINDING_TYPE = 1i32; +pub const WS_STREAMED_INPUT_TRANSFER_MODE: WS_TRANSFER_MODE = 1i32; +pub const WS_STREAMED_OUTPUT_TRANSFER_MODE: WS_TRANSFER_MODE = 2i32; +pub const WS_STREAMED_TRANSFER_MODE: WS_TRANSFER_MODE = 3i32; +pub const WS_STRING_TYPE: WS_TYPE = 16i32; +pub const WS_STRING_USERNAME_CREDENTIAL_TYPE: WS_USERNAME_CREDENTIAL_TYPE = 1i32; +pub const WS_STRING_WINDOWS_INTEGRATED_AUTH_CREDENTIAL_TYPE: WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL_TYPE = 1i32; +pub const WS_STRUCT_ABSTRACT: i32 = 1i32; +pub const WS_STRUCT_IGNORE_TRAILING_ELEMENT_CONTENT: i32 = 2i32; +pub const WS_STRUCT_IGNORE_UNHANDLED_ATTRIBUTES: i32 = 4i32; +pub const WS_STRUCT_TYPE: WS_TYPE = 26i32; +pub const WS_SUBJECT_NAME_CERT_CREDENTIAL_TYPE: WS_CERT_CREDENTIAL_TYPE = 1i32; +pub const WS_SUPPORTING_MESSAGE_SECURITY_USAGE: WS_MESSAGE_SECURITY_USAGE = 1i32; +pub const WS_TCP_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 6i32; +pub const WS_TCP_CHANNEL_BINDING: WS_CHANNEL_BINDING = 1i32; +pub const WS_TCP_SSPI_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 7i32; +pub const WS_TCP_SSPI_KERBEROS_APREQ_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 9i32; +pub const WS_TCP_SSPI_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 13i32; +pub const WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT_TYPE: WS_SECURITY_BINDING_CONSTRAINT_TYPE = 2i32; +pub const WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_TYPE: WS_SECURITY_BINDING_TYPE = 2i32; +pub const WS_TCP_SSPI_USERNAME_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 8i32; +pub const WS_TCP_SSPI_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE: WS_BINDING_TEMPLATE_TYPE = 12i32; +pub const WS_TEXT_FIELD_MAPPING: WS_FIELD_MAPPING = 4i32; +pub const WS_THUMBPRINT_CERT_CREDENTIAL_TYPE: WS_CERT_CREDENTIAL_TYPE = 2i32; +pub const WS_TIMESPAN_TYPE: WS_TYPE = 13i32; +pub const WS_TIMESPAN_VALUE_TYPE: WS_VALUE_TYPE = 13i32; +pub const WS_TO_HEADER: WS_HEADER_TYPE = 2i32; +pub const WS_TRACE_API_ABANDON_MESSAGE: WS_TRACE_API = 86i32; +pub const WS_TRACE_API_ABORT_CALL: WS_TRACE_API = 174i32; +pub const WS_TRACE_API_ABORT_CHANNEL: WS_TRACE_API = 83i32; +pub const WS_TRACE_API_ABORT_LISTENER: WS_TRACE_API = 113i32; +pub const WS_TRACE_API_ABORT_SERVICE_HOST: WS_TRACE_API = 164i32; +pub const WS_TRACE_API_ABORT_SERVICE_PROXY: WS_TRACE_API = 171i32; +pub const WS_TRACE_API_ACCEPT_CHANNEL: WS_TRACE_API = 111i32; +pub const WS_TRACE_API_ADDRESS_MESSAGE: WS_TRACE_API = 142i32; +pub const WS_TRACE_API_ADD_CUSTOM_HEADER: WS_TRACE_API = 130i32; +pub const WS_TRACE_API_ADD_ERROR_STRING: WS_TRACE_API = 92i32; +pub const WS_TRACE_API_ADD_MAPPED_HEADER: WS_TRACE_API = 131i32; +pub const WS_TRACE_API_ALLOC: WS_TRACE_API = 105i32; +pub const WS_TRACE_API_ASYNC_EXECUTE: WS_TRACE_API = 68i32; +pub const WS_TRACE_API_CALL: WS_TRACE_API = 175i32; +pub const WS_TRACE_API_CHECK_MUST_UNDERSTAND_HEADERS: WS_TRACE_API = 143i32; +pub const WS_TRACE_API_CLOSE_CHANNEL: WS_TRACE_API = 82i32; +pub const WS_TRACE_API_CLOSE_LISTENER: WS_TRACE_API = 112i32; +pub const WS_TRACE_API_CLOSE_SERVICE_HOST: WS_TRACE_API = 163i32; +pub const WS_TRACE_API_CLOSE_SERVICE_PROXY: WS_TRACE_API = 170i32; +pub const WS_TRACE_API_COMBINE_URL: WS_TRACE_API = 178i32; +pub const WS_TRACE_API_COPY_ERROR: WS_TRACE_API = 94i32; +pub const WS_TRACE_API_COPY_NODE: WS_TRACE_API = 67i32; +pub const WS_TRACE_API_CREATE_CHANNEL: WS_TRACE_API = 69i32; +pub const WS_TRACE_API_CREATE_CHANNEL_FOR_LISTENER: WS_TRACE_API = 118i32; +pub const WS_TRACE_API_CREATE_ERROR: WS_TRACE_API = 91i32; +pub const WS_TRACE_API_CREATE_FAULT_FROM_ERROR: WS_TRACE_API = 101i32; +pub const WS_TRACE_API_CREATE_HEAP: WS_TRACE_API = 104i32; +pub const WS_TRACE_API_CREATE_LISTENER: WS_TRACE_API = 109i32; +pub const WS_TRACE_API_CREATE_MESSAGE: WS_TRACE_API = 119i32; +pub const WS_TRACE_API_CREATE_MESSAGE_FOR_CHANNEL: WS_TRACE_API = 120i32; +pub const WS_TRACE_API_CREATE_METADATA: WS_TRACE_API = 183i32; +pub const WS_TRACE_API_CREATE_READER: WS_TRACE_API = 6i32; +pub const WS_TRACE_API_CREATE_SERVICE_HOST: WS_TRACE_API = 161i32; +pub const WS_TRACE_API_CREATE_SERVICE_PROXY: WS_TRACE_API = 168i32; +pub const WS_TRACE_API_CREATE_WRITER: WS_TRACE_API = 29i32; +pub const WS_TRACE_API_CREATE_XML_BUFFER: WS_TRACE_API = 4i32; +pub const WS_TRACE_API_CREATE_XML_SECURITY_TOKEN: WS_TRACE_API = 149i32; +pub const WS_TRACE_API_DATETIME_TO_FILETIME: WS_TRACE_API = 179i32; +pub const WS_TRACE_API_DECODE_URL: WS_TRACE_API = 176i32; +pub const WS_TRACE_API_DUMP_MEMORY: WS_TRACE_API = 181i32; +pub const WS_TRACE_API_ENCODE_URL: WS_TRACE_API = 177i32; +pub const WS_TRACE_API_END_READER_CANONICALIZATION: WS_TRACE_API = 1i32; +pub const WS_TRACE_API_END_WRITER_CANONICALIZATION: WS_TRACE_API = 3i32; +pub const WS_TRACE_API_FILETIME_TO_DATETIME: WS_TRACE_API = 180i32; +pub const WS_TRACE_API_FILL_BODY: WS_TRACE_API = 145i32; +pub const WS_TRACE_API_FILL_READER: WS_TRACE_API = 12i32; +pub const WS_TRACE_API_FIND_ATTRIBUTE: WS_TRACE_API = 20i32; +pub const WS_TRACE_API_FLUSH_BODY: WS_TRACE_API = 146i32; +pub const WS_TRACE_API_FLUSH_WRITER: WS_TRACE_API = 34i32; +pub const WS_TRACE_API_FREE_CHANNEL: WS_TRACE_API = 84i32; +pub const WS_TRACE_API_FREE_ERROR: WS_TRACE_API = 98i32; +pub const WS_TRACE_API_FREE_HEAP: WS_TRACE_API = 108i32; +pub const WS_TRACE_API_FREE_LISTENER: WS_TRACE_API = 115i32; +pub const WS_TRACE_API_FREE_MESSAGE: WS_TRACE_API = 123i32; +pub const WS_TRACE_API_FREE_METADATA: WS_TRACE_API = 185i32; +pub const WS_TRACE_API_FREE_SECURITY_TOKEN: WS_TRACE_API = 150i32; +pub const WS_TRACE_API_FREE_SERVICE_HOST: WS_TRACE_API = 165i32; +pub const WS_TRACE_API_FREE_SERVICE_PROXY: WS_TRACE_API = 172i32; +pub const WS_TRACE_API_FREE_XML_READER: WS_TRACE_API = 9i32; +pub const WS_TRACE_API_FREE_XML_WRITER: WS_TRACE_API = 30i32; +pub const WS_TRACE_API_GET_CHANNEL_PROPERTY: WS_TRACE_API = 76i32; +pub const WS_TRACE_API_GET_CONTEXT_PROPERTY: WS_TRACE_API = 88i32; +pub const WS_TRACE_API_GET_CUSTOM_HEADER: WS_TRACE_API = 126i32; +pub const WS_TRACE_API_GET_DICTIONARY: WS_TRACE_API = 89i32; +pub const WS_TRACE_API_GET_ERROR_PROPERTY: WS_TRACE_API = 95i32; +pub const WS_TRACE_API_GET_ERROR_STRING: WS_TRACE_API = 93i32; +pub const WS_TRACE_API_GET_FAULT_ERROR_DETAIL: WS_TRACE_API = 103i32; +pub const WS_TRACE_API_GET_FAULT_ERROR_PROPERTY: WS_TRACE_API = 99i32; +pub const WS_TRACE_API_GET_HEADER: WS_TRACE_API = 125i32; +pub const WS_TRACE_API_GET_HEADER_ATTRIBUTES: WS_TRACE_API = 124i32; +pub const WS_TRACE_API_GET_HEAP_PROPERTY: WS_TRACE_API = 106i32; +pub const WS_TRACE_API_GET_LISTENER_PROPERTY: WS_TRACE_API = 116i32; +pub const WS_TRACE_API_GET_MAPPED_HEADER: WS_TRACE_API = 133i32; +pub const WS_TRACE_API_GET_MESSAGE_PROPERTY: WS_TRACE_API = 140i32; +pub const WS_TRACE_API_GET_METADATA_ENDPOINTS: WS_TRACE_API = 189i32; +pub const WS_TRACE_API_GET_METADATA_PROPERTY: WS_TRACE_API = 187i32; +pub const WS_TRACE_API_GET_MISSING_METADATA_DOCUMENT_ADDRESS: WS_TRACE_API = 188i32; +pub const WS_TRACE_API_GET_POLICY_ALTERNATIVE_COUNT: WS_TRACE_API = 192i32; +pub const WS_TRACE_API_GET_POLICY_PROPERTY: WS_TRACE_API = 191i32; +pub const WS_TRACE_API_GET_READER_NODE: WS_TRACE_API = 11i32; +pub const WS_TRACE_API_GET_READER_POSITION: WS_TRACE_API = 26i32; +pub const WS_TRACE_API_GET_READER_PROPERTY: WS_TRACE_API = 10i32; +pub const WS_TRACE_API_GET_SECURITY_CONTEXT_PROPERTY: WS_TRACE_API = 152i32; +pub const WS_TRACE_API_GET_SECURITY_TOKEN_PROPERTY: WS_TRACE_API = 148i32; +pub const WS_TRACE_API_GET_SERVICE_HOST_PROPERTY: WS_TRACE_API = 160i32; +pub const WS_TRACE_API_GET_SERVICE_PROXY_PROPERTY: WS_TRACE_API = 167i32; +pub const WS_TRACE_API_GET_WRITER_POSITION: WS_TRACE_API = 58i32; +pub const WS_TRACE_API_GET_WRITER_PROPERTY: WS_TRACE_API = 33i32; +pub const WS_TRACE_API_GET_XML_ATTRIBUTE: WS_TRACE_API = 66i32; +pub const WS_TRACE_API_INITIALIZE_MESSAGE: WS_TRACE_API = 121i32; +pub const WS_TRACE_API_MARK_HEADER_AS_UNDERSTOOD: WS_TRACE_API = 144i32; +pub const WS_TRACE_API_MATCH_POLICY_ALTERNATIVE: WS_TRACE_API = 190i32; +pub const WS_TRACE_API_MOVE_READER: WS_TRACE_API = 28i32; +pub const WS_TRACE_API_MOVE_WRITER: WS_TRACE_API = 60i32; +pub const WS_TRACE_API_NAMESPACE_FROM_PREFIX: WS_TRACE_API = 64i32; +pub const WS_TRACE_API_NONE: WS_TRACE_API = -1i32; +pub const WS_TRACE_API_OPEN_CHANNEL: WS_TRACE_API = 70i32; +pub const WS_TRACE_API_OPEN_LISTENER: WS_TRACE_API = 110i32; +pub const WS_TRACE_API_OPEN_SERVICE_HOST: WS_TRACE_API = 162i32; +pub const WS_TRACE_API_OPEN_SERVICE_PROXY: WS_TRACE_API = 169i32; +pub const WS_TRACE_API_PREFIX_FROM_NAMESPACE: WS_TRACE_API = 57i32; +pub const WS_TRACE_API_PULL_BYTES: WS_TRACE_API = 51i32; +pub const WS_TRACE_API_PUSH_BYTES: WS_TRACE_API = 50i32; +pub const WS_TRACE_API_READ_ARRAY: WS_TRACE_API = 25i32; +pub const WS_TRACE_API_READ_ATTRIBUTE_TYPE: WS_TRACE_API = 154i32; +pub const WS_TRACE_API_READ_BODY: WS_TRACE_API = 135i32; +pub const WS_TRACE_API_READ_BYTES: WS_TRACE_API = 24i32; +pub const WS_TRACE_API_READ_CHARS: WS_TRACE_API = 22i32; +pub const WS_TRACE_API_READ_CHARS_UTF8: WS_TRACE_API = 23i32; +pub const WS_TRACE_API_READ_ELEMENT_TYPE: WS_TRACE_API = 153i32; +pub const WS_TRACE_API_READ_ELEMENT_VALUE: WS_TRACE_API = 21i32; +pub const WS_TRACE_API_READ_ENDPOINT_ADDRESS_EXTENSION: WS_TRACE_API = 90i32; +pub const WS_TRACE_API_READ_END_ATTRIBUTE: WS_TRACE_API = 16i32; +pub const WS_TRACE_API_READ_END_ELEMENT: WS_TRACE_API = 19i32; +pub const WS_TRACE_API_READ_ENVELOPE_END: WS_TRACE_API = 139i32; +pub const WS_TRACE_API_READ_ENVELOPE_START: WS_TRACE_API = 138i32; +pub const WS_TRACE_API_READ_MESSAGE_END: WS_TRACE_API = 81i32; +pub const WS_TRACE_API_READ_MESSAGE_START: WS_TRACE_API = 80i32; +pub const WS_TRACE_API_READ_METADATA: WS_TRACE_API = 184i32; +pub const WS_TRACE_API_READ_NODE: WS_TRACE_API = 17i32; +pub const WS_TRACE_API_READ_QUALIFIED_NAME: WS_TRACE_API = 65i32; +pub const WS_TRACE_API_READ_START_ATTRIBUTE: WS_TRACE_API = 15i32; +pub const WS_TRACE_API_READ_START_ELEMENT: WS_TRACE_API = 13i32; +pub const WS_TRACE_API_READ_TO_START_ELEMENT: WS_TRACE_API = 14i32; +pub const WS_TRACE_API_READ_TYPE: WS_TRACE_API = 155i32; +pub const WS_TRACE_API_READ_XML_BUFFER: WS_TRACE_API = 42i32; +pub const WS_TRACE_API_READ_XML_BUFFER_FROM_BYTES: WS_TRACE_API = 44i32; +pub const WS_TRACE_API_RECEIVE_MESSAGE: WS_TRACE_API = 72i32; +pub const WS_TRACE_API_REMOVE_CUSTOM_HEADER: WS_TRACE_API = 129i32; +pub const WS_TRACE_API_REMOVE_HEADER: WS_TRACE_API = 127i32; +pub const WS_TRACE_API_REMOVE_MAPPED_HEADER: WS_TRACE_API = 132i32; +pub const WS_TRACE_API_REMOVE_NODE: WS_TRACE_API = 5i32; +pub const WS_TRACE_API_REQUEST_REPLY: WS_TRACE_API = 73i32; +pub const WS_TRACE_API_REQUEST_SECURITY_TOKEN: WS_TRACE_API = 147i32; +pub const WS_TRACE_API_RESET_CHANNEL: WS_TRACE_API = 85i32; +pub const WS_TRACE_API_RESET_ERROR: WS_TRACE_API = 97i32; +pub const WS_TRACE_API_RESET_HEAP: WS_TRACE_API = 107i32; +pub const WS_TRACE_API_RESET_LISTENER: WS_TRACE_API = 114i32; +pub const WS_TRACE_API_RESET_MESSAGE: WS_TRACE_API = 122i32; +pub const WS_TRACE_API_RESET_METADATA: WS_TRACE_API = 186i32; +pub const WS_TRACE_API_RESET_SERVICE_HOST: WS_TRACE_API = 166i32; +pub const WS_TRACE_API_RESET_SERVICE_PROXY: WS_TRACE_API = 173i32; +pub const WS_TRACE_API_REVOKE_SECURITY_CONTEXT: WS_TRACE_API = 151i32; +pub const WS_TRACE_API_SEND_FAULT_MESSAGE_FOR_ERROR: WS_TRACE_API = 75i32; +pub const WS_TRACE_API_SEND_MESSAGE: WS_TRACE_API = 71i32; +pub const WS_TRACE_API_SEND_REPLY_MESSAGE: WS_TRACE_API = 74i32; +pub const WS_TRACE_API_SERVICE_REGISTER_FOR_CANCEL: WS_TRACE_API = 159i32; +pub const WS_TRACE_API_SET_AUTOFAIL: WS_TRACE_API = 182i32; +pub const WS_TRACE_API_SET_CHANNEL_PROPERTY: WS_TRACE_API = 77i32; +pub const WS_TRACE_API_SET_ERROR_PROPERTY: WS_TRACE_API = 96i32; +pub const WS_TRACE_API_SET_FAULT_ERROR_DETAIL: WS_TRACE_API = 102i32; +pub const WS_TRACE_API_SET_FAULT_ERROR_PROPERTY: WS_TRACE_API = 100i32; +pub const WS_TRACE_API_SET_HEADER: WS_TRACE_API = 128i32; +pub const WS_TRACE_API_SET_INPUT: WS_TRACE_API = 7i32; +pub const WS_TRACE_API_SET_INPUT_TO_BUFFER: WS_TRACE_API = 8i32; +pub const WS_TRACE_API_SET_LISTENER_PROPERTY: WS_TRACE_API = 117i32; +pub const WS_TRACE_API_SET_MESSAGE_PROPERTY: WS_TRACE_API = 141i32; +pub const WS_TRACE_API_SET_OUTPUT: WS_TRACE_API = 31i32; +pub const WS_TRACE_API_SET_OUTPUT_TO_BUFFER: WS_TRACE_API = 32i32; +pub const WS_TRACE_API_SET_READER_POSITION: WS_TRACE_API = 27i32; +pub const WS_TRACE_API_SET_WRITER_POSITION: WS_TRACE_API = 59i32; +pub const WS_TRACE_API_SHUTDOWN_SESSION_CHANNEL: WS_TRACE_API = 87i32; +pub const WS_TRACE_API_SKIP_NODE: WS_TRACE_API = 18i32; +pub const WS_TRACE_API_START_READER_CANONICALIZATION: WS_TRACE_API = 0i32; +pub const WS_TRACE_API_START_WRITER_CANONICALIZATION: WS_TRACE_API = 2i32; +pub const WS_TRACE_API_TRIM_XML_WHITESPACE: WS_TRACE_API = 61i32; +pub const WS_TRACE_API_VERIFY_XML_NCNAME: WS_TRACE_API = 62i32; +pub const WS_TRACE_API_WRITE_ARRAY: WS_TRACE_API = 45i32; +pub const WS_TRACE_API_WRITE_ATTRIBUTE_TYPE: WS_TRACE_API = 157i32; +pub const WS_TRACE_API_WRITE_BODY: WS_TRACE_API = 134i32; +pub const WS_TRACE_API_WRITE_BYTES: WS_TRACE_API = 49i32; +pub const WS_TRACE_API_WRITE_CHARS: WS_TRACE_API = 47i32; +pub const WS_TRACE_API_WRITE_CHARS_UTF8: WS_TRACE_API = 48i32; +pub const WS_TRACE_API_WRITE_ELEMENT_TYPE: WS_TRACE_API = 156i32; +pub const WS_TRACE_API_WRITE_END_ATTRIBUTE: WS_TRACE_API = 39i32; +pub const WS_TRACE_API_WRITE_END_CDATA: WS_TRACE_API = 55i32; +pub const WS_TRACE_API_WRITE_END_ELEMENT: WS_TRACE_API = 52i32; +pub const WS_TRACE_API_WRITE_END_START_ELEMENT: WS_TRACE_API = 36i32; +pub const WS_TRACE_API_WRITE_ENVELOPE_END: WS_TRACE_API = 137i32; +pub const WS_TRACE_API_WRITE_ENVELOPE_START: WS_TRACE_API = 136i32; +pub const WS_TRACE_API_WRITE_MESSAGE_END: WS_TRACE_API = 79i32; +pub const WS_TRACE_API_WRITE_MESSAGE_START: WS_TRACE_API = 78i32; +pub const WS_TRACE_API_WRITE_NODE: WS_TRACE_API = 56i32; +pub const WS_TRACE_API_WRITE_QUALIFIED_NAME: WS_TRACE_API = 46i32; +pub const WS_TRACE_API_WRITE_START_ATTRIBUTE: WS_TRACE_API = 38i32; +pub const WS_TRACE_API_WRITE_START_CDATA: WS_TRACE_API = 54i32; +pub const WS_TRACE_API_WRITE_START_ELEMENT: WS_TRACE_API = 35i32; +pub const WS_TRACE_API_WRITE_TEXT: WS_TRACE_API = 53i32; +pub const WS_TRACE_API_WRITE_TYPE: WS_TRACE_API = 158i32; +pub const WS_TRACE_API_WRITE_VALUE: WS_TRACE_API = 40i32; +pub const WS_TRACE_API_WRITE_XMLNS_ATTRIBUTE: WS_TRACE_API = 37i32; +pub const WS_TRACE_API_WRITE_XML_BUFFER: WS_TRACE_API = 41i32; +pub const WS_TRACE_API_WRITE_XML_BUFFER_TO_BYTES: WS_TRACE_API = 43i32; +pub const WS_TRACE_API_WS_CREATE_SERVICE_HOST_FROM_TEMPLATE: WS_TRACE_API = 194i32; +pub const WS_TRACE_API_WS_CREATE_SERVICE_PROXY_FROM_TEMPLATE: WS_TRACE_API = 193i32; +pub const WS_TRACE_API_XML_STRING_EQUALS: WS_TRACE_API = 63i32; +pub const WS_TRUST_VERSION_1_3: WS_TRUST_VERSION = 2i32; +pub const WS_TRUST_VERSION_FEBRUARY_2005: WS_TRUST_VERSION = 1i32; +pub const WS_TYPE_ATTRIBUTE_FIELD_MAPPING: WS_FIELD_MAPPING = 0i32; +pub const WS_UDP_CHANNEL_BINDING: WS_CHANNEL_BINDING = 2i32; +pub const WS_UINT16_TYPE: WS_TYPE = 6i32; +pub const WS_UINT16_VALUE_TYPE: WS_VALUE_TYPE = 6i32; +pub const WS_UINT32_TYPE: WS_TYPE = 7i32; +pub const WS_UINT32_VALUE_TYPE: WS_VALUE_TYPE = 7i32; +pub const WS_UINT64_TYPE: WS_TYPE = 8i32; +pub const WS_UINT64_VALUE_TYPE: WS_VALUE_TYPE = 8i32; +pub const WS_UINT8_TYPE: WS_TYPE = 5i32; +pub const WS_UINT8_VALUE_TYPE: WS_VALUE_TYPE = 5i32; +pub const WS_UNION_TYPE: WS_TYPE = 33i32; +pub const WS_UNIQUE_ID_TYPE: WS_TYPE = 15i32; +pub const WS_UNKNOWN_ENDPOINT_IDENTITY_TYPE: WS_ENDPOINT_IDENTITY_TYPE = 6i32; +pub const WS_UPN_ENDPOINT_IDENTITY_TYPE: WS_ENDPOINT_IDENTITY_TYPE = 2i32; +pub const WS_URL_FLAGS_ALLOW_HOST_WILDCARDS: i32 = 1i32; +pub const WS_URL_FLAGS_NO_PATH_COLLAPSE: i32 = 2i32; +pub const WS_URL_FLAGS_ZERO_TERMINATE: i32 = 4i32; +pub const WS_URL_HTTPS_SCHEME_TYPE: WS_URL_SCHEME_TYPE = 1i32; +pub const WS_URL_HTTP_SCHEME_TYPE: WS_URL_SCHEME_TYPE = 0i32; +pub const WS_URL_NETPIPE_SCHEME_TYPE: WS_URL_SCHEME_TYPE = 4i32; +pub const WS_URL_NETTCP_SCHEME_TYPE: WS_URL_SCHEME_TYPE = 2i32; +pub const WS_URL_SOAPUDP_SCHEME_TYPE: WS_URL_SCHEME_TYPE = 3i32; +pub const WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT_TYPE: WS_SECURITY_BINDING_CONSTRAINT_TYPE = 4i32; +pub const WS_USERNAME_MESSAGE_SECURITY_BINDING_TYPE: WS_SECURITY_BINDING_TYPE = 4i32; +pub const WS_UTF8_ARRAY_TYPE: WS_TYPE = 23i32; +pub const WS_VOID_TYPE: WS_TYPE = 30i32; +pub const WS_WINDOWS_INTEGRATED_AUTH_PACKAGE_KERBEROS: WS_WINDOWS_INTEGRATED_AUTH_PACKAGE = 1i32; +pub const WS_WINDOWS_INTEGRATED_AUTH_PACKAGE_NTLM: WS_WINDOWS_INTEGRATED_AUTH_PACKAGE = 2i32; +pub const WS_WINDOWS_INTEGRATED_AUTH_PACKAGE_SPNEGO: WS_WINDOWS_INTEGRATED_AUTH_PACKAGE = 3i32; +pub const WS_WRITE_NILLABLE_POINTER: WS_WRITE_OPTION = 4i32; +pub const WS_WRITE_NILLABLE_VALUE: WS_WRITE_OPTION = 3i32; +pub const WS_WRITE_REQUIRED_POINTER: WS_WRITE_OPTION = 2i32; +pub const WS_WRITE_REQUIRED_VALUE: WS_WRITE_OPTION = 1i32; +pub const WS_WSZ_TYPE: WS_TYPE = 17i32; +pub const WS_XML_ATTRIBUTE_FIELD_MAPPING: WS_FIELD_MAPPING = 6i32; +pub const WS_XML_BUFFER_TYPE: WS_TYPE = 21i32; +pub const WS_XML_CANONICALIZATION_PROPERTY_ALGORITHM: WS_XML_CANONICALIZATION_PROPERTY_ID = 0i32; +pub const WS_XML_CANONICALIZATION_PROPERTY_INCLUSIVE_PREFIXES: WS_XML_CANONICALIZATION_PROPERTY_ID = 1i32; +pub const WS_XML_CANONICALIZATION_PROPERTY_OMITTED_ELEMENT: WS_XML_CANONICALIZATION_PROPERTY_ID = 2i32; +pub const WS_XML_CANONICALIZATION_PROPERTY_OUTPUT_BUFFER_SIZE: WS_XML_CANONICALIZATION_PROPERTY_ID = 3i32; +pub const WS_XML_NODE_TYPE_BOF: WS_XML_NODE_TYPE = 9i32; +pub const WS_XML_NODE_TYPE_CDATA: WS_XML_NODE_TYPE = 6i32; +pub const WS_XML_NODE_TYPE_COMMENT: WS_XML_NODE_TYPE = 4i32; +pub const WS_XML_NODE_TYPE_ELEMENT: WS_XML_NODE_TYPE = 1i32; +pub const WS_XML_NODE_TYPE_END_CDATA: WS_XML_NODE_TYPE = 7i32; +pub const WS_XML_NODE_TYPE_END_ELEMENT: WS_XML_NODE_TYPE = 3i32; +pub const WS_XML_NODE_TYPE_EOF: WS_XML_NODE_TYPE = 8i32; +pub const WS_XML_NODE_TYPE_TEXT: WS_XML_NODE_TYPE = 2i32; +pub const WS_XML_QNAME_TYPE: WS_TYPE = 20i32; +pub const WS_XML_READER_ENCODING_TYPE_BINARY: WS_XML_READER_ENCODING_TYPE = 2i32; +pub const WS_XML_READER_ENCODING_TYPE_MTOM: WS_XML_READER_ENCODING_TYPE = 3i32; +pub const WS_XML_READER_ENCODING_TYPE_RAW: WS_XML_READER_ENCODING_TYPE = 4i32; +pub const WS_XML_READER_ENCODING_TYPE_TEXT: WS_XML_READER_ENCODING_TYPE = 1i32; +pub const WS_XML_READER_INPUT_TYPE_BUFFER: WS_XML_READER_INPUT_TYPE = 1i32; +pub const WS_XML_READER_INPUT_TYPE_STREAM: WS_XML_READER_INPUT_TYPE = 2i32; +pub const WS_XML_READER_PROPERTY_ALLOW_FRAGMENT: WS_XML_READER_PROPERTY_ID = 1i32; +pub const WS_XML_READER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES: WS_XML_READER_PROPERTY_ID = 13i32; +pub const WS_XML_READER_PROPERTY_CHARSET: WS_XML_READER_PROPERTY_ID = 4i32; +pub const WS_XML_READER_PROPERTY_COLUMN: WS_XML_READER_PROPERTY_ID = 6i32; +pub const WS_XML_READER_PROPERTY_IN_ATTRIBUTE: WS_XML_READER_PROPERTY_ID = 9i32; +pub const WS_XML_READER_PROPERTY_MAX_ATTRIBUTES: WS_XML_READER_PROPERTY_ID = 2i32; +pub const WS_XML_READER_PROPERTY_MAX_DEPTH: WS_XML_READER_PROPERTY_ID = 0i32; +pub const WS_XML_READER_PROPERTY_MAX_MIME_PARTS: WS_XML_READER_PROPERTY_ID = 12i32; +pub const WS_XML_READER_PROPERTY_MAX_NAMESPACES: WS_XML_READER_PROPERTY_ID = 14i32; +pub const WS_XML_READER_PROPERTY_READ_DECLARATION: WS_XML_READER_PROPERTY_ID = 3i32; +pub const WS_XML_READER_PROPERTY_ROW: WS_XML_READER_PROPERTY_ID = 5i32; +pub const WS_XML_READER_PROPERTY_STREAM_BUFFER_SIZE: WS_XML_READER_PROPERTY_ID = 8i32; +pub const WS_XML_READER_PROPERTY_STREAM_MAX_MIME_HEADERS_SIZE: WS_XML_READER_PROPERTY_ID = 11i32; +pub const WS_XML_READER_PROPERTY_STREAM_MAX_ROOT_MIME_PART_SIZE: WS_XML_READER_PROPERTY_ID = 10i32; +pub const WS_XML_READER_PROPERTY_UTF8_TRIM_SIZE: WS_XML_READER_PROPERTY_ID = 7i32; +pub const WS_XML_SECURITY_TOKEN_PROPERTY_ATTACHED_REFERENCE: WS_XML_SECURITY_TOKEN_PROPERTY_ID = 1i32; +pub const WS_XML_SECURITY_TOKEN_PROPERTY_UNATTACHED_REFERENCE: WS_XML_SECURITY_TOKEN_PROPERTY_ID = 2i32; +pub const WS_XML_SECURITY_TOKEN_PROPERTY_VALID_FROM_TIME: WS_XML_SECURITY_TOKEN_PROPERTY_ID = 3i32; +pub const WS_XML_SECURITY_TOKEN_PROPERTY_VALID_TILL_TIME: WS_XML_SECURITY_TOKEN_PROPERTY_ID = 4i32; +pub const WS_XML_STRING_TYPE: WS_TYPE = 19i32; +pub const WS_XML_TEXT_TYPE_BASE64: WS_XML_TEXT_TYPE = 3i32; +pub const WS_XML_TEXT_TYPE_BOOL: WS_XML_TEXT_TYPE = 4i32; +pub const WS_XML_TEXT_TYPE_DATETIME: WS_XML_TEXT_TYPE = 13i32; +pub const WS_XML_TEXT_TYPE_DECIMAL: WS_XML_TEXT_TYPE = 10i32; +pub const WS_XML_TEXT_TYPE_DOUBLE: WS_XML_TEXT_TYPE = 9i32; +pub const WS_XML_TEXT_TYPE_FLOAT: WS_XML_TEXT_TYPE = 8i32; +pub const WS_XML_TEXT_TYPE_GUID: WS_XML_TEXT_TYPE = 11i32; +pub const WS_XML_TEXT_TYPE_INT32: WS_XML_TEXT_TYPE = 5i32; +pub const WS_XML_TEXT_TYPE_INT64: WS_XML_TEXT_TYPE = 6i32; +pub const WS_XML_TEXT_TYPE_LIST: WS_XML_TEXT_TYPE = 16i32; +pub const WS_XML_TEXT_TYPE_QNAME: WS_XML_TEXT_TYPE = 15i32; +pub const WS_XML_TEXT_TYPE_TIMESPAN: WS_XML_TEXT_TYPE = 14i32; +pub const WS_XML_TEXT_TYPE_UINT64: WS_XML_TEXT_TYPE = 7i32; +pub const WS_XML_TEXT_TYPE_UNIQUE_ID: WS_XML_TEXT_TYPE = 12i32; +pub const WS_XML_TEXT_TYPE_UTF16: WS_XML_TEXT_TYPE = 2i32; +pub const WS_XML_TEXT_TYPE_UTF8: WS_XML_TEXT_TYPE = 1i32; +pub const WS_XML_TOKEN_MESSAGE_SECURITY_BINDING_TYPE: WS_SECURITY_BINDING_TYPE = 6i32; +pub const WS_XML_WRITER_ENCODING_TYPE_BINARY: WS_XML_WRITER_ENCODING_TYPE = 2i32; +pub const WS_XML_WRITER_ENCODING_TYPE_MTOM: WS_XML_WRITER_ENCODING_TYPE = 3i32; +pub const WS_XML_WRITER_ENCODING_TYPE_RAW: WS_XML_WRITER_ENCODING_TYPE = 4i32; +pub const WS_XML_WRITER_ENCODING_TYPE_TEXT: WS_XML_WRITER_ENCODING_TYPE = 1i32; +pub const WS_XML_WRITER_OUTPUT_TYPE_BUFFER: WS_XML_WRITER_OUTPUT_TYPE = 1i32; +pub const WS_XML_WRITER_OUTPUT_TYPE_STREAM: WS_XML_WRITER_OUTPUT_TYPE = 2i32; +pub const WS_XML_WRITER_PROPERTY_ALLOW_FRAGMENT: WS_XML_WRITER_PROPERTY_ID = 1i32; +pub const WS_XML_WRITER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES: WS_XML_WRITER_PROPERTY_ID = 13i32; +pub const WS_XML_WRITER_PROPERTY_BUFFERS: WS_XML_WRITER_PROPERTY_ID = 7i32; +pub const WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE: WS_XML_WRITER_PROPERTY_ID = 8i32; +pub const WS_XML_WRITER_PROPERTY_BUFFER_TRIM_SIZE: WS_XML_WRITER_PROPERTY_ID = 5i32; +pub const WS_XML_WRITER_PROPERTY_BYTES: WS_XML_WRITER_PROPERTY_ID = 9i32; +pub const WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE: WS_XML_WRITER_PROPERTY_ID = 16i32; +pub const WS_XML_WRITER_PROPERTY_BYTES_WRITTEN: WS_XML_WRITER_PROPERTY_ID = 15i32; +pub const WS_XML_WRITER_PROPERTY_CHARSET: WS_XML_WRITER_PROPERTY_ID = 6i32; +pub const WS_XML_WRITER_PROPERTY_COMPRESS_EMPTY_ELEMENTS: WS_XML_WRITER_PROPERTY_ID = 17i32; +pub const WS_XML_WRITER_PROPERTY_EMIT_UNCOMPRESSED_EMPTY_ELEMENTS: WS_XML_WRITER_PROPERTY_ID = 18i32; +pub const WS_XML_WRITER_PROPERTY_INDENT: WS_XML_WRITER_PROPERTY_ID = 4i32; +pub const WS_XML_WRITER_PROPERTY_INITIAL_BUFFER: WS_XML_WRITER_PROPERTY_ID = 12i32; +pub const WS_XML_WRITER_PROPERTY_IN_ATTRIBUTE: WS_XML_WRITER_PROPERTY_ID = 10i32; +pub const WS_XML_WRITER_PROPERTY_MAX_ATTRIBUTES: WS_XML_WRITER_PROPERTY_ID = 2i32; +pub const WS_XML_WRITER_PROPERTY_MAX_DEPTH: WS_XML_WRITER_PROPERTY_ID = 0i32; +pub const WS_XML_WRITER_PROPERTY_MAX_MIME_PARTS_BUFFER_SIZE: WS_XML_WRITER_PROPERTY_ID = 11i32; +pub const WS_XML_WRITER_PROPERTY_MAX_NAMESPACES: WS_XML_WRITER_PROPERTY_ID = 14i32; +pub const WS_XML_WRITER_PROPERTY_WRITE_DECLARATION: WS_XML_WRITER_PROPERTY_ID = 3i32; +pub type WS_ADDRESSING_VERSION = i32; +pub type WS_BINDING_TEMPLATE_TYPE = i32; +pub type WS_CALLBACK_MODEL = i32; +pub type WS_CALL_PROPERTY_ID = i32; +pub type WS_CERT_CREDENTIAL_TYPE = i32; +pub type WS_CHANNEL_BINDING = i32; +pub type WS_CHANNEL_PROPERTY_ID = i32; +pub type WS_CHANNEL_STATE = i32; +pub type WS_CHANNEL_TYPE = i32; +pub type WS_CHARSET = i32; +pub type WS_COOKIE_MODE = i32; +pub type WS_DATETIME_FORMAT = i32; +pub type WS_ENCODING = i32; +pub type WS_ENDPOINT_ADDRESS_EXTENSION_TYPE = i32; +pub type WS_ENDPOINT_IDENTITY_TYPE = i32; +pub type WS_ENVELOPE_VERSION = i32; +pub type WS_ERROR_PROPERTY_ID = i32; +pub type WS_EXCEPTION_CODE = i32; +pub type WS_EXTENDED_PROTECTION_POLICY = i32; +pub type WS_EXTENDED_PROTECTION_SCENARIO = i32; +pub type WS_FAULT_DISCLOSURE = i32; +pub type WS_FAULT_ERROR_PROPERTY_ID = i32; +pub type WS_FIELD_MAPPING = i32; +pub type WS_HEADER_TYPE = i32; +pub type WS_HEAP_PROPERTY_ID = i32; +pub type WS_HTTP_HEADER_AUTH_TARGET = i32; +pub type WS_HTTP_PROXY_SETTING_MODE = i32; +pub type WS_IP_VERSION = i32; +pub type WS_LISTENER_PROPERTY_ID = i32; +pub type WS_LISTENER_STATE = i32; +pub type WS_MESSAGE_INITIALIZATION = i32; +pub type WS_MESSAGE_PROPERTY_ID = i32; +pub type WS_MESSAGE_SECURITY_USAGE = i32; +pub type WS_MESSAGE_STATE = i32; +pub type WS_METADATA_EXCHANGE_TYPE = i32; +pub type WS_METADATA_PROPERTY_ID = i32; +pub type WS_METADATA_STATE = i32; +pub type WS_MOVE_TO = i32; +pub type WS_OPERATION_CONTEXT_PROPERTY_ID = i32; +pub type WS_OPERATION_STYLE = i32; +pub type WS_PARAMETER_TYPE = i32; +pub type WS_POLICY_EXTENSION_TYPE = i32; +pub type WS_POLICY_PROPERTY_ID = i32; +pub type WS_POLICY_STATE = i32; +pub type WS_PROTECTION_LEVEL = i32; +pub type WS_PROXY_PROPERTY_ID = i32; +pub type WS_READ_OPTION = i32; +pub type WS_RECEIVE_OPTION = i32; +pub type WS_REPEATING_HEADER_OPTION = i32; +pub type WS_REQUEST_SECURITY_TOKEN_ACTION = i32; +pub type WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID = i32; +pub type WS_SAML_AUTHENTICATOR_TYPE = i32; +pub type WS_SECURE_CONVERSATION_VERSION = i32; +pub type WS_SECURE_PROTOCOL = i32; +pub type WS_SECURITY_ALGORITHM_ID = i32; +pub type WS_SECURITY_ALGORITHM_PROPERTY_ID = i32; +pub type WS_SECURITY_ALGORITHM_SUITE_NAME = i32; +pub type WS_SECURITY_BEARER_KEY_TYPE_VERSION = i32; +pub type WS_SECURITY_BINDING_CONSTRAINT_TYPE = i32; +pub type WS_SECURITY_BINDING_PROPERTY_ID = i32; +pub type WS_SECURITY_BINDING_TYPE = i32; +pub type WS_SECURITY_CONTEXT_PROPERTY_ID = i32; +pub type WS_SECURITY_HEADER_LAYOUT = i32; +pub type WS_SECURITY_HEADER_VERSION = i32; +pub type WS_SECURITY_KEY_ENTROPY_MODE = i32; +pub type WS_SECURITY_KEY_HANDLE_TYPE = i32; +pub type WS_SECURITY_KEY_TYPE = i32; +pub type WS_SECURITY_PROPERTY_ID = i32; +pub type WS_SECURITY_TIMESTAMP_USAGE = i32; +pub type WS_SECURITY_TOKEN_PROPERTY_ID = i32; +pub type WS_SECURITY_TOKEN_REFERENCE_MODE = i32; +pub type WS_SERVICE_CANCEL_REASON = i32; +pub type WS_SERVICE_ENDPOINT_PROPERTY_ID = i32; +pub type WS_SERVICE_HOST_STATE = i32; +pub type WS_SERVICE_PROPERTY_ID = i32; +pub type WS_SERVICE_PROXY_STATE = i32; +pub type WS_TRACE_API = i32; +pub type WS_TRANSFER_MODE = i32; +pub type WS_TRUST_VERSION = i32; +pub type WS_TYPE = i32; +pub type WS_TYPE_MAPPING = i32; +pub type WS_URL_SCHEME_TYPE = i32; +pub type WS_USERNAME_CREDENTIAL_TYPE = i32; +pub type WS_VALUE_TYPE = i32; +pub type WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL_TYPE = i32; +pub type WS_WINDOWS_INTEGRATED_AUTH_PACKAGE = i32; +pub type WS_WRITE_OPTION = i32; +pub type WS_XML_BUFFER_PROPERTY_ID = i32; +pub type WS_XML_CANONICALIZATION_ALGORITHM = i32; +pub type WS_XML_CANONICALIZATION_PROPERTY_ID = i32; +pub type WS_XML_NODE_TYPE = i32; +pub type WS_XML_READER_ENCODING_TYPE = i32; +pub type WS_XML_READER_INPUT_TYPE = i32; +pub type WS_XML_READER_PROPERTY_ID = i32; +pub type WS_XML_SECURITY_TOKEN_PROPERTY_ID = i32; +pub type WS_XML_TEXT_TYPE = i32; +pub type WS_XML_WRITER_ENCODING_TYPE = i32; +pub type WS_XML_WRITER_OUTPUT_TYPE = i32; +pub type WS_XML_WRITER_PROPERTY_ID = i32; +#[repr(C)] +pub struct WEBAUTHN_ASSERTION { + pub dwVersion: u32, + pub cbAuthenticatorData: u32, + pub pbAuthenticatorData: *mut u8, + pub cbSignature: u32, + pub pbSignature: *mut u8, + pub Credential: WEBAUTHN_CREDENTIAL, + pub cbUserId: u32, + pub pbUserId: *mut u8, + pub Extensions: WEBAUTHN_EXTENSIONS, + pub cbCredLargeBlob: u32, + pub pbCredLargeBlob: *mut u8, + pub dwCredLargeBlobStatus: u32, + pub pHmacSecret: *mut WEBAUTHN_HMAC_SECRET_SALT, +} +impl ::core::marker::Copy for WEBAUTHN_ASSERTION {} +impl ::core::clone::Clone for WEBAUTHN_ASSERTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS { + pub dwVersion: u32, + pub dwTimeoutMilliseconds: u32, + pub CredentialList: WEBAUTHN_CREDENTIALS, + pub Extensions: WEBAUTHN_EXTENSIONS, + pub dwAuthenticatorAttachment: u32, + pub dwUserVerificationRequirement: u32, + pub dwFlags: u32, + pub pwszU2fAppId: ::windows_sys::core::PCWSTR, + pub pbU2fAppId: *mut super::super::Foundation::BOOL, + pub pCancellationId: *mut ::windows_sys::core::GUID, + pub pAllowCredentialList: *mut WEBAUTHN_CREDENTIAL_LIST, + pub dwCredLargeBlobOperation: u32, + pub cbCredLargeBlob: u32, + pub pbCredLargeBlob: *mut u8, + pub pHmacSecretSaltValues: *mut WEBAUTHN_HMAC_SECRET_SALT_VALUES, + pub bBrowserInPrivateMode: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS { + pub dwVersion: u32, + pub dwTimeoutMilliseconds: u32, + pub CredentialList: WEBAUTHN_CREDENTIALS, + pub Extensions: WEBAUTHN_EXTENSIONS, + pub dwAuthenticatorAttachment: u32, + pub bRequireResidentKey: super::super::Foundation::BOOL, + pub dwUserVerificationRequirement: u32, + pub dwAttestationConveyancePreference: u32, + pub dwFlags: u32, + pub pCancellationId: *mut ::windows_sys::core::GUID, + pub pExcludeCredentialList: *mut WEBAUTHN_CREDENTIAL_LIST, + pub dwEnterpriseAttestation: u32, + pub dwLargeBlobSupport: u32, + pub bPreferResidentKey: super::super::Foundation::BOOL, + pub bBrowserInPrivateMode: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_CLIENT_DATA { + pub dwVersion: u32, + pub cbClientDataJSON: u32, + pub pbClientDataJSON: *mut u8, + pub pwszHashAlgId: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WEBAUTHN_CLIENT_DATA {} +impl ::core::clone::Clone for WEBAUTHN_CLIENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_COMMON_ATTESTATION { + pub dwVersion: u32, + pub pwszAlg: ::windows_sys::core::PCWSTR, + pub lAlg: i32, + pub cbSignature: u32, + pub pbSignature: *mut u8, + pub cX5c: u32, + pub pX5c: *mut WEBAUTHN_X5C, + pub pwszVer: ::windows_sys::core::PCWSTR, + pub cbCertInfo: u32, + pub pbCertInfo: *mut u8, + pub cbPubArea: u32, + pub pbPubArea: *mut u8, +} +impl ::core::marker::Copy for WEBAUTHN_COMMON_ATTESTATION {} +impl ::core::clone::Clone for WEBAUTHN_COMMON_ATTESTATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_COSE_CREDENTIAL_PARAMETER { + pub dwVersion: u32, + pub pwszCredentialType: ::windows_sys::core::PCWSTR, + pub lAlg: i32, +} +impl ::core::marker::Copy for WEBAUTHN_COSE_CREDENTIAL_PARAMETER {} +impl ::core::clone::Clone for WEBAUTHN_COSE_CREDENTIAL_PARAMETER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_COSE_CREDENTIAL_PARAMETERS { + pub cCredentialParameters: u32, + pub pCredentialParameters: *mut WEBAUTHN_COSE_CREDENTIAL_PARAMETER, +} +impl ::core::marker::Copy for WEBAUTHN_COSE_CREDENTIAL_PARAMETERS {} +impl ::core::clone::Clone for WEBAUTHN_COSE_CREDENTIAL_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_CREDENTIAL { + pub dwVersion: u32, + pub cbId: u32, + pub pbId: *mut u8, + pub pwszCredentialType: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WEBAUTHN_CREDENTIAL {} +impl ::core::clone::Clone for WEBAUTHN_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_CREDENTIALS { + pub cCredentials: u32, + pub pCredentials: *mut WEBAUTHN_CREDENTIAL, +} +impl ::core::marker::Copy for WEBAUTHN_CREDENTIALS {} +impl ::core::clone::Clone for WEBAUTHN_CREDENTIALS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WEBAUTHN_CREDENTIAL_ATTESTATION { + pub dwVersion: u32, + pub pwszFormatType: ::windows_sys::core::PCWSTR, + pub cbAuthenticatorData: u32, + pub pbAuthenticatorData: *mut u8, + pub cbAttestation: u32, + pub pbAttestation: *mut u8, + pub dwAttestationDecodeType: u32, + pub pvAttestationDecode: *mut ::core::ffi::c_void, + pub cbAttestationObject: u32, + pub pbAttestationObject: *mut u8, + pub cbCredentialId: u32, + pub pbCredentialId: *mut u8, + pub Extensions: WEBAUTHN_EXTENSIONS, + pub dwUsedTransport: u32, + pub bEpAtt: super::super::Foundation::BOOL, + pub bLargeBlobSupported: super::super::Foundation::BOOL, + pub bResidentKey: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WEBAUTHN_CREDENTIAL_ATTESTATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WEBAUTHN_CREDENTIAL_ATTESTATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WEBAUTHN_CREDENTIAL_DETAILS { + pub dwVersion: u32, + pub cbCredentialID: u32, + pub pbCredentialID: *mut u8, + pub pRpInformation: *mut WEBAUTHN_RP_ENTITY_INFORMATION, + pub pUserInformation: *mut WEBAUTHN_USER_ENTITY_INFORMATION, + pub bRemovable: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WEBAUTHN_CREDENTIAL_DETAILS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WEBAUTHN_CREDENTIAL_DETAILS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WEBAUTHN_CREDENTIAL_DETAILS_LIST { + pub cCredentialDetails: u32, + pub ppCredentialDetails: *mut *mut WEBAUTHN_CREDENTIAL_DETAILS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WEBAUTHN_CREDENTIAL_DETAILS_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WEBAUTHN_CREDENTIAL_DETAILS_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_CREDENTIAL_EX { + pub dwVersion: u32, + pub cbId: u32, + pub pbId: *mut u8, + pub pwszCredentialType: ::windows_sys::core::PCWSTR, + pub dwTransports: u32, +} +impl ::core::marker::Copy for WEBAUTHN_CREDENTIAL_EX {} +impl ::core::clone::Clone for WEBAUTHN_CREDENTIAL_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_CREDENTIAL_LIST { + pub cCredentials: u32, + pub ppCredentials: *mut *mut WEBAUTHN_CREDENTIAL_EX, +} +impl ::core::marker::Copy for WEBAUTHN_CREDENTIAL_LIST {} +impl ::core::clone::Clone for WEBAUTHN_CREDENTIAL_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_CRED_BLOB_EXTENSION { + pub cbCredBlob: u32, + pub pbCredBlob: *mut u8, +} +impl ::core::marker::Copy for WEBAUTHN_CRED_BLOB_EXTENSION {} +impl ::core::clone::Clone for WEBAUTHN_CRED_BLOB_EXTENSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WEBAUTHN_CRED_PROTECT_EXTENSION_IN { + pub dwCredProtect: u32, + pub bRequireCredProtect: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WEBAUTHN_CRED_PROTECT_EXTENSION_IN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WEBAUTHN_CRED_PROTECT_EXTENSION_IN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_CRED_WITH_HMAC_SECRET_SALT { + pub cbCredID: u32, + pub pbCredID: *mut u8, + pub pHmacSecretSalt: *mut WEBAUTHN_HMAC_SECRET_SALT, +} +impl ::core::marker::Copy for WEBAUTHN_CRED_WITH_HMAC_SECRET_SALT {} +impl ::core::clone::Clone for WEBAUTHN_CRED_WITH_HMAC_SECRET_SALT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_EXTENSION { + pub pwszExtensionIdentifier: ::windows_sys::core::PCWSTR, + pub cbExtension: u32, + pub pvExtension: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WEBAUTHN_EXTENSION {} +impl ::core::clone::Clone for WEBAUTHN_EXTENSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_EXTENSIONS { + pub cExtensions: u32, + pub pExtensions: *mut WEBAUTHN_EXTENSION, +} +impl ::core::marker::Copy for WEBAUTHN_EXTENSIONS {} +impl ::core::clone::Clone for WEBAUTHN_EXTENSIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WEBAUTHN_GET_CREDENTIALS_OPTIONS { + pub dwVersion: u32, + pub pwszRpId: ::windows_sys::core::PCWSTR, + pub bBrowserInPrivateMode: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WEBAUTHN_GET_CREDENTIALS_OPTIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WEBAUTHN_GET_CREDENTIALS_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_HMAC_SECRET_SALT { + pub cbFirst: u32, + pub pbFirst: *mut u8, + pub cbSecond: u32, + pub pbSecond: *mut u8, +} +impl ::core::marker::Copy for WEBAUTHN_HMAC_SECRET_SALT {} +impl ::core::clone::Clone for WEBAUTHN_HMAC_SECRET_SALT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_HMAC_SECRET_SALT_VALUES { + pub pGlobalHmacSalt: *mut WEBAUTHN_HMAC_SECRET_SALT, + pub cCredWithHmacSecretSaltList: u32, + pub pCredWithHmacSecretSaltList: *mut WEBAUTHN_CRED_WITH_HMAC_SECRET_SALT, +} +impl ::core::marker::Copy for WEBAUTHN_HMAC_SECRET_SALT_VALUES {} +impl ::core::clone::Clone for WEBAUTHN_HMAC_SECRET_SALT_VALUES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_RP_ENTITY_INFORMATION { + pub dwVersion: u32, + pub pwszId: ::windows_sys::core::PCWSTR, + pub pwszName: ::windows_sys::core::PCWSTR, + pub pwszIcon: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WEBAUTHN_RP_ENTITY_INFORMATION {} +impl ::core::clone::Clone for WEBAUTHN_RP_ENTITY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_USER_ENTITY_INFORMATION { + pub dwVersion: u32, + pub cbId: u32, + pub pbId: *mut u8, + pub pwszName: ::windows_sys::core::PCWSTR, + pub pwszIcon: ::windows_sys::core::PCWSTR, + pub pwszDisplayName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WEBAUTHN_USER_ENTITY_INFORMATION {} +impl ::core::clone::Clone for WEBAUTHN_USER_ENTITY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WEBAUTHN_X5C { + pub cbData: u32, + pub pbData: *mut u8, +} +impl ::core::marker::Copy for WEBAUTHN_X5C {} +impl ::core::clone::Clone for WEBAUTHN_X5C { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_ANY_ATTRIBUTE { + pub localName: WS_XML_STRING, + pub ns: WS_XML_STRING, + pub value: *mut WS_XML_TEXT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_ANY_ATTRIBUTE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_ANY_ATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_ANY_ATTRIBUTES { + pub attributes: *mut WS_ANY_ATTRIBUTE, + pub attributeCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_ANY_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_ANY_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_ASYNC_CONTEXT { + pub callback: WS_ASYNC_CALLBACK, + pub callbackState: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WS_ASYNC_CONTEXT {} +impl ::core::clone::Clone for WS_ASYNC_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_ASYNC_OPERATION { + pub function: WS_ASYNC_FUNCTION, +} +impl ::core::marker::Copy for WS_ASYNC_OPERATION {} +impl ::core::clone::Clone for WS_ASYNC_OPERATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_ASYNC_STATE { + pub internal0: *mut ::core::ffi::c_void, + pub internal1: *mut ::core::ffi::c_void, + pub internal2: *mut ::core::ffi::c_void, + pub internal3: *mut ::core::ffi::c_void, + pub internal4: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WS_ASYNC_STATE {} +impl ::core::clone::Clone for WS_ASYNC_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_ATTRIBUTE_DESCRIPTION { + pub attributeLocalName: *mut WS_XML_STRING, + pub attributeNs: *mut WS_XML_STRING, + pub r#type: WS_TYPE, + pub typeDescription: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_ATTRIBUTE_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_ATTRIBUTE_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_BOOL_DESCRIPTION { + pub value: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_BOOL_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_BOOL_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_BUFFERS { + pub bufferCount: u32, + pub buffers: *mut WS_BYTES, +} +impl ::core::marker::Copy for WS_BUFFERS {} +impl ::core::clone::Clone for WS_BUFFERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_BYTES { + pub length: u32, + pub bytes: *mut u8, +} +impl ::core::marker::Copy for WS_BYTES {} +impl ::core::clone::Clone for WS_BYTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_BYTES_DESCRIPTION { + pub minByteCount: u32, + pub maxByteCount: u32, +} +impl ::core::marker::Copy for WS_BYTES_DESCRIPTION {} +impl ::core::clone::Clone for WS_BYTES_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_BYTE_ARRAY_DESCRIPTION { + pub minByteCount: u32, + pub maxByteCount: u32, +} +impl ::core::marker::Copy for WS_BYTE_ARRAY_DESCRIPTION {} +impl ::core::clone::Clone for WS_BYTE_ARRAY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CALL_PROPERTY { + pub id: WS_CALL_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_CALL_PROPERTY {} +impl ::core::clone::Clone for WS_CALL_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CAPI_ASYMMETRIC_SECURITY_KEY_HANDLE { + pub keyHandle: WS_SECURITY_KEY_HANDLE, + pub provider: usize, + pub keySpec: u32, +} +impl ::core::marker::Copy for WS_CAPI_ASYMMETRIC_SECURITY_KEY_HANDLE {} +impl ::core::clone::Clone for WS_CAPI_ASYMMETRIC_SECURITY_KEY_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct WS_CERTIFICATE_VALIDATION_CALLBACK_CONTEXT { + pub callback: WS_CERTIFICATE_VALIDATION_CALLBACK, + pub state: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for WS_CERTIFICATE_VALIDATION_CALLBACK_CONTEXT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for WS_CERTIFICATE_VALIDATION_CALLBACK_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CERT_CREDENTIAL { + pub credentialType: WS_CERT_CREDENTIAL_TYPE, +} +impl ::core::marker::Copy for WS_CERT_CREDENTIAL {} +impl ::core::clone::Clone for WS_CERT_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CERT_ENDPOINT_IDENTITY { + pub identity: WS_ENDPOINT_IDENTITY, + pub rawCertificateData: WS_BYTES, +} +impl ::core::marker::Copy for WS_CERT_ENDPOINT_IDENTITY {} +impl ::core::clone::Clone for WS_CERT_ENDPOINT_IDENTITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT { + pub bindingConstraint: WS_SECURITY_BINDING_CONSTRAINT, + pub bindingUsage: WS_MESSAGE_SECURITY_USAGE, +} +impl ::core::marker::Copy for WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT {} +impl ::core::clone::Clone for WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct WS_CERT_SIGNED_SAML_AUTHENTICATOR { + pub authenticator: WS_SAML_AUTHENTICATOR, + pub trustedIssuerCerts: *const *const super::super::Security::Cryptography::CERT_CONTEXT, + pub trustedIssuerCertCount: u32, + pub decryptionCert: *const super::super::Security::Cryptography::CERT_CONTEXT, + pub samlValidator: WS_VALIDATE_SAML_CALLBACK, + pub samlValidatorCallbackState: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for WS_CERT_SIGNED_SAML_AUTHENTICATOR {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for WS_CERT_SIGNED_SAML_AUTHENTICATOR { + fn clone(&self) -> Self { + *self + } +} +pub type WS_CHANNEL = isize; +#[repr(C)] +pub struct WS_CHANNEL_DECODER { + pub createContext: *mut ::core::ffi::c_void, + pub createDecoderCallback: WS_CREATE_DECODER_CALLBACK, + pub decoderGetContentTypeCallback: WS_DECODER_GET_CONTENT_TYPE_CALLBACK, + pub decoderStartCallback: WS_DECODER_START_CALLBACK, + pub decoderDecodeCallback: WS_DECODER_DECODE_CALLBACK, + pub decoderEndCallback: WS_DECODER_END_CALLBACK, + pub freeDecoderCallback: WS_FREE_DECODER_CALLBACK, +} +impl ::core::marker::Copy for WS_CHANNEL_DECODER {} +impl ::core::clone::Clone for WS_CHANNEL_DECODER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CHANNEL_ENCODER { + pub createContext: *mut ::core::ffi::c_void, + pub createEncoderCallback: WS_CREATE_ENCODER_CALLBACK, + pub encoderGetContentTypeCallback: WS_ENCODER_GET_CONTENT_TYPE_CALLBACK, + pub encoderStartCallback: WS_ENCODER_START_CALLBACK, + pub encoderEncodeCallback: WS_ENCODER_ENCODE_CALLBACK, + pub encoderEndCallback: WS_ENCODER_END_CALLBACK, + pub freeEncoderCallback: WS_FREE_ENCODER_CALLBACK, +} +impl ::core::marker::Copy for WS_CHANNEL_ENCODER {} +impl ::core::clone::Clone for WS_CHANNEL_ENCODER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CHANNEL_PROPERTIES { + pub properties: *mut WS_CHANNEL_PROPERTY, + pub propertyCount: u32, +} +impl ::core::marker::Copy for WS_CHANNEL_PROPERTIES {} +impl ::core::clone::Clone for WS_CHANNEL_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CHANNEL_PROPERTY { + pub id: WS_CHANNEL_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_CHANNEL_PROPERTY {} +impl ::core::clone::Clone for WS_CHANNEL_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CHANNEL_PROPERTY_CONSTRAINT { + pub id: WS_CHANNEL_PROPERTY_ID, + pub allowedValues: *mut ::core::ffi::c_void, + pub allowedValuesSize: u32, + pub out: WS_CHANNEL_PROPERTY_CONSTRAINT_0, +} +impl ::core::marker::Copy for WS_CHANNEL_PROPERTY_CONSTRAINT {} +impl ::core::clone::Clone for WS_CHANNEL_PROPERTY_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CHANNEL_PROPERTY_CONSTRAINT_0 { + pub channelProperty: WS_CHANNEL_PROPERTY, +} +impl ::core::marker::Copy for WS_CHANNEL_PROPERTY_CONSTRAINT_0 {} +impl ::core::clone::Clone for WS_CHANNEL_PROPERTY_CONSTRAINT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CHAR_ARRAY_DESCRIPTION { + pub minCharCount: u32, + pub maxCharCount: u32, +} +impl ::core::marker::Copy for WS_CHAR_ARRAY_DESCRIPTION {} +impl ::core::clone::Clone for WS_CHAR_ARRAY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_CONTRACT_DESCRIPTION { + pub operationCount: u32, + pub operations: *mut *mut WS_OPERATION_DESCRIPTION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_CONTRACT_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_CONTRACT_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_Security_Cryptography"))] +pub struct WS_CUSTOM_CERT_CREDENTIAL { + pub credential: WS_CERT_CREDENTIAL, + pub getCertCallback: WS_GET_CERT_CALLBACK, + pub getCertCallbackState: *mut ::core::ffi::c_void, + pub certIssuerListNotificationCallback: WS_CERT_ISSUER_LIST_NOTIFICATION_CALLBACK, + pub certIssuerListNotificationCallbackState: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for WS_CUSTOM_CERT_CREDENTIAL {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for WS_CUSTOM_CERT_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CUSTOM_CHANNEL_CALLBACKS { + pub createChannelCallback: WS_CREATE_CHANNEL_CALLBACK, + pub freeChannelCallback: WS_FREE_CHANNEL_CALLBACK, + pub resetChannelCallback: WS_RESET_CHANNEL_CALLBACK, + pub openChannelCallback: WS_OPEN_CHANNEL_CALLBACK, + pub closeChannelCallback: WS_CLOSE_CHANNEL_CALLBACK, + pub abortChannelCallback: WS_ABORT_CHANNEL_CALLBACK, + pub getChannelPropertyCallback: WS_GET_CHANNEL_PROPERTY_CALLBACK, + pub setChannelPropertyCallback: WS_SET_CHANNEL_PROPERTY_CALLBACK, + pub writeMessageStartCallback: WS_WRITE_MESSAGE_START_CALLBACK, + pub writeMessageEndCallback: WS_WRITE_MESSAGE_END_CALLBACK, + pub readMessageStartCallback: WS_READ_MESSAGE_START_CALLBACK, + pub readMessageEndCallback: WS_READ_MESSAGE_END_CALLBACK, + pub abandonMessageCallback: WS_ABANDON_MESSAGE_CALLBACK, + pub shutdownSessionChannelCallback: WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK, +} +impl ::core::marker::Copy for WS_CUSTOM_CHANNEL_CALLBACKS {} +impl ::core::clone::Clone for WS_CUSTOM_CHANNEL_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CUSTOM_HTTP_PROXY { + pub servers: WS_STRING, + pub bypass: WS_STRING, +} +impl ::core::marker::Copy for WS_CUSTOM_HTTP_PROXY {} +impl ::core::clone::Clone for WS_CUSTOM_HTTP_PROXY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_CUSTOM_LISTENER_CALLBACKS { + pub createListenerCallback: WS_CREATE_LISTENER_CALLBACK, + pub freeListenerCallback: WS_FREE_LISTENER_CALLBACK, + pub resetListenerCallback: WS_RESET_LISTENER_CALLBACK, + pub openListenerCallback: WS_OPEN_LISTENER_CALLBACK, + pub closeListenerCallback: WS_CLOSE_LISTENER_CALLBACK, + pub abortListenerCallback: WS_ABORT_LISTENER_CALLBACK, + pub getListenerPropertyCallback: WS_GET_LISTENER_PROPERTY_CALLBACK, + pub setListenerPropertyCallback: WS_SET_LISTENER_PROPERTY_CALLBACK, + pub createChannelForListenerCallback: WS_CREATE_CHANNEL_FOR_LISTENER_CALLBACK, + pub acceptChannelCallback: WS_ACCEPT_CHANNEL_CALLBACK, +} +impl ::core::marker::Copy for WS_CUSTOM_LISTENER_CALLBACKS {} +impl ::core::clone::Clone for WS_CUSTOM_LISTENER_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_CUSTOM_TYPE_DESCRIPTION { + pub size: u32, + pub alignment: u32, + pub readCallback: WS_READ_TYPE_CALLBACK, + pub writeCallback: WS_WRITE_TYPE_CALLBACK, + pub descriptionData: *mut ::core::ffi::c_void, + pub isDefaultValueCallback: WS_IS_DEFAULT_VALUE_CALLBACK, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_CUSTOM_TYPE_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_CUSTOM_TYPE_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_DATETIME { + pub ticks: u64, + pub format: WS_DATETIME_FORMAT, +} +impl ::core::marker::Copy for WS_DATETIME {} +impl ::core::clone::Clone for WS_DATETIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_DATETIME_DESCRIPTION { + pub minValue: WS_DATETIME, + pub maxValue: WS_DATETIME, +} +impl ::core::marker::Copy for WS_DATETIME_DESCRIPTION {} +impl ::core::clone::Clone for WS_DATETIME_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_DECIMAL_DESCRIPTION { + pub minValue: super::super::Foundation::DECIMAL, + pub maxValue: super::super::Foundation::DECIMAL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_DECIMAL_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_DECIMAL_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_DEFAULT_VALUE { + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_DEFAULT_VALUE {} +impl ::core::clone::Clone for WS_DEFAULT_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_DEFAULT_WINDOWS_INTEGRATED_AUTH_CREDENTIAL { + pub credential: WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL, +} +impl ::core::marker::Copy for WS_DEFAULT_WINDOWS_INTEGRATED_AUTH_CREDENTIAL {} +impl ::core::clone::Clone for WS_DEFAULT_WINDOWS_INTEGRATED_AUTH_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_DISALLOWED_USER_AGENT_SUBSTRINGS { + pub subStringCount: u32, + pub subStrings: *mut *mut WS_STRING, +} +impl ::core::marker::Copy for WS_DISALLOWED_USER_AGENT_SUBSTRINGS {} +impl ::core::clone::Clone for WS_DISALLOWED_USER_AGENT_SUBSTRINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_DNS_ENDPOINT_IDENTITY { + pub identity: WS_ENDPOINT_IDENTITY, + pub dns: WS_STRING, +} +impl ::core::marker::Copy for WS_DNS_ENDPOINT_IDENTITY {} +impl ::core::clone::Clone for WS_DNS_ENDPOINT_IDENTITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_DOUBLE_DESCRIPTION { + pub minValue: f64, + pub maxValue: f64, +} +impl ::core::marker::Copy for WS_DOUBLE_DESCRIPTION {} +impl ::core::clone::Clone for WS_DOUBLE_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_DURATION { + pub negative: super::super::Foundation::BOOL, + pub years: u32, + pub months: u32, + pub days: u32, + pub hours: u32, + pub minutes: u32, + pub seconds: u32, + pub milliseconds: u32, + pub ticks: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_DURATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_DURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_DURATION_DESCRIPTION { + pub minValue: WS_DURATION, + pub maxValue: WS_DURATION, + pub comparer: WS_DURATION_COMPARISON_CALLBACK, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_DURATION_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_DURATION_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_ELEMENT_DESCRIPTION { + pub elementLocalName: *mut WS_XML_STRING, + pub elementNs: *mut WS_XML_STRING, + pub r#type: WS_TYPE, + pub typeDescription: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_ELEMENT_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_ELEMENT_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_ENDPOINT_ADDRESS { + pub url: WS_STRING, + pub headers: *mut WS_XML_BUFFER, + pub extensions: *mut WS_XML_BUFFER, + pub identity: *mut WS_ENDPOINT_IDENTITY, +} +impl ::core::marker::Copy for WS_ENDPOINT_ADDRESS {} +impl ::core::clone::Clone for WS_ENDPOINT_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_ENDPOINT_ADDRESS_DESCRIPTION { + pub addressingVersion: WS_ADDRESSING_VERSION, +} +impl ::core::marker::Copy for WS_ENDPOINT_ADDRESS_DESCRIPTION {} +impl ::core::clone::Clone for WS_ENDPOINT_ADDRESS_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_ENDPOINT_IDENTITY { + pub identityType: WS_ENDPOINT_IDENTITY_TYPE, +} +impl ::core::marker::Copy for WS_ENDPOINT_IDENTITY {} +impl ::core::clone::Clone for WS_ENDPOINT_IDENTITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_ENDPOINT_POLICY_EXTENSION { + pub policyExtension: WS_POLICY_EXTENSION, + pub assertionName: *mut WS_XML_STRING, + pub assertionNs: *mut WS_XML_STRING, + pub out: WS_ENDPOINT_POLICY_EXTENSION_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_ENDPOINT_POLICY_EXTENSION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_ENDPOINT_POLICY_EXTENSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_ENDPOINT_POLICY_EXTENSION_0 { + pub assertionValue: *mut WS_XML_BUFFER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_ENDPOINT_POLICY_EXTENSION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_ENDPOINT_POLICY_EXTENSION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_ENUM_DESCRIPTION { + pub values: *mut WS_ENUM_VALUE, + pub valueCount: u32, + pub maxByteCount: u32, + pub nameIndices: *mut u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_ENUM_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_ENUM_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_ENUM_VALUE { + pub value: i32, + pub name: *mut WS_XML_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_ENUM_VALUE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_ENUM_VALUE { + fn clone(&self) -> Self { + *self + } +} +pub type WS_ERROR = isize; +#[repr(C)] +pub struct WS_ERROR_PROPERTY { + pub id: WS_ERROR_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_ERROR_PROPERTY {} +impl ::core::clone::Clone for WS_ERROR_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_FAULT { + pub code: *mut WS_FAULT_CODE, + pub reasons: *mut WS_FAULT_REASON, + pub reasonCount: u32, + pub actor: WS_STRING, + pub node: WS_STRING, + pub detail: *mut WS_XML_BUFFER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_FAULT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_FAULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_FAULT_CODE { + pub value: WS_XML_QNAME, + pub subCode: *mut WS_FAULT_CODE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_FAULT_CODE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_FAULT_CODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_FAULT_DESCRIPTION { + pub envelopeVersion: WS_ENVELOPE_VERSION, +} +impl ::core::marker::Copy for WS_FAULT_DESCRIPTION {} +impl ::core::clone::Clone for WS_FAULT_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_FAULT_DETAIL_DESCRIPTION { + pub action: *mut WS_XML_STRING, + pub detailElementDescription: *mut WS_ELEMENT_DESCRIPTION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_FAULT_DETAIL_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_FAULT_DETAIL_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_FAULT_REASON { + pub text: WS_STRING, + pub lang: WS_STRING, +} +impl ::core::marker::Copy for WS_FAULT_REASON {} +impl ::core::clone::Clone for WS_FAULT_REASON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_FIELD_DESCRIPTION { + pub mapping: WS_FIELD_MAPPING, + pub localName: *mut WS_XML_STRING, + pub ns: *mut WS_XML_STRING, + pub r#type: WS_TYPE, + pub typeDescription: *mut ::core::ffi::c_void, + pub offset: u32, + pub options: u32, + pub defaultValue: *mut WS_DEFAULT_VALUE, + pub countOffset: u32, + pub itemLocalName: *mut WS_XML_STRING, + pub itemNs: *mut WS_XML_STRING, + pub itemRange: *mut WS_ITEM_RANGE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_FIELD_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_FIELD_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_FLOAT_DESCRIPTION { + pub minValue: f32, + pub maxValue: f32, +} +impl ::core::marker::Copy for WS_FLOAT_DESCRIPTION {} +impl ::core::clone::Clone for WS_FLOAT_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_GUID_DESCRIPTION { + pub value: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for WS_GUID_DESCRIPTION {} +impl ::core::clone::Clone for WS_GUID_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +pub type WS_HEAP = isize; +#[repr(C)] +pub struct WS_HEAP_PROPERTIES { + pub properties: *mut WS_HEAP_PROPERTY, + pub propertyCount: u32, +} +impl ::core::marker::Copy for WS_HEAP_PROPERTIES {} +impl ::core::clone::Clone for WS_HEAP_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HEAP_PROPERTY { + pub id: WS_HEAP_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_HEAP_PROPERTY {} +impl ::core::clone::Clone for WS_HEAP_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HOST_NAMES { + pub hostNames: *mut WS_STRING, + pub hostNameCount: u32, +} +impl ::core::marker::Copy for WS_HOST_NAMES {} +impl ::core::clone::Clone for WS_HOST_NAMES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTPS_URL { + pub url: WS_URL, + pub host: WS_STRING, + pub port: u16, + pub portAsString: WS_STRING, + pub path: WS_STRING, + pub query: WS_STRING, + pub fragment: WS_STRING, +} +impl ::core::marker::Copy for WS_HTTPS_URL {} +impl ::core::clone::Clone for WS_HTTPS_URL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, +} +impl ::core::marker::Copy for WS_HTTP_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_HTTP_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_HEADER_AUTH_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub httpHeaderAuthSecurityBinding: WS_HTTP_HEADER_AUTH_SECURITY_BINDING_TEMPLATE, +} +impl ::core::marker::Copy for WS_HTTP_HEADER_AUTH_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_HTTP_HEADER_AUTH_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_HEADER_AUTH_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub httpHeaderAuthSecurityBinding: WS_HTTP_HEADER_AUTH_SECURITY_BINDING_POLICY_DESCRIPTION, +} +impl ::core::marker::Copy for WS_HTTP_HEADER_AUTH_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_HTTP_HEADER_AUTH_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_HEADER_AUTH_SECURITY_BINDING { + pub binding: WS_SECURITY_BINDING, + pub clientCredential: *mut WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL, +} +impl ::core::marker::Copy for WS_HTTP_HEADER_AUTH_SECURITY_BINDING {} +impl ::core::clone::Clone for WS_HTTP_HEADER_AUTH_SECURITY_BINDING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_HEADER_AUTH_SECURITY_BINDING_CONSTRAINT { + pub bindingConstraint: WS_SECURITY_BINDING_CONSTRAINT, +} +impl ::core::marker::Copy for WS_HTTP_HEADER_AUTH_SECURITY_BINDING_CONSTRAINT {} +impl ::core::clone::Clone for WS_HTTP_HEADER_AUTH_SECURITY_BINDING_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_HEADER_AUTH_SECURITY_BINDING_POLICY_DESCRIPTION { + pub securityBindingProperties: WS_SECURITY_BINDING_PROPERTIES, +} +impl ::core::marker::Copy for WS_HTTP_HEADER_AUTH_SECURITY_BINDING_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_HTTP_HEADER_AUTH_SECURITY_BINDING_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_HEADER_AUTH_SECURITY_BINDING_TEMPLATE { + pub securityBindingProperties: WS_SECURITY_BINDING_PROPERTIES, + pub clientCredential: *mut WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL, +} +impl ::core::marker::Copy for WS_HTTP_HEADER_AUTH_SECURITY_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_HTTP_HEADER_AUTH_SECURITY_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_HTTP_HEADER_MAPPING { + pub headerName: WS_XML_STRING, + pub headerMappingOptions: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_HTTP_HEADER_MAPPING {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_HTTP_HEADER_MAPPING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_HTTP_MESSAGE_MAPPING { + pub requestMappingOptions: u32, + pub responseMappingOptions: u32, + pub requestHeaderMappings: *mut *mut WS_HTTP_HEADER_MAPPING, + pub requestHeaderMappingCount: u32, + pub responseHeaderMappings: *mut *mut WS_HTTP_HEADER_MAPPING, + pub responseHeaderMappingCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_HTTP_MESSAGE_MAPPING {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_HTTP_MESSAGE_MAPPING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, +} +impl ::core::marker::Copy for WS_HTTP_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_HTTP_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_REDIRECT_CALLBACK_CONTEXT { + pub callback: WS_HTTP_REDIRECT_CALLBACK, + pub state: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WS_HTTP_REDIRECT_CALLBACK_CONTEXT {} +impl ::core::clone::Clone for WS_HTTP_REDIRECT_CALLBACK_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_SSL_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sslTransportSecurityBinding: WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE, +} +impl ::core::marker::Copy for WS_HTTP_SSL_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_HTTP_SSL_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_SSL_HEADER_AUTH_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sslTransportSecurityBinding: WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE, + pub httpHeaderAuthSecurityBinding: WS_HTTP_HEADER_AUTH_SECURITY_BINDING_TEMPLATE, +} +impl ::core::marker::Copy for WS_HTTP_SSL_HEADER_AUTH_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_HTTP_SSL_HEADER_AUTH_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_SSL_HEADER_AUTH_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sslTransportSecurityBinding: WS_SSL_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION, + pub httpHeaderAuthSecurityBinding: WS_HTTP_HEADER_AUTH_SECURITY_BINDING_POLICY_DESCRIPTION, +} +impl ::core::marker::Copy for WS_HTTP_SSL_HEADER_AUTH_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_HTTP_SSL_HEADER_AUTH_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_SSL_KERBEROS_APREQ_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sslTransportSecurityBinding: WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE, + pub kerberosApreqMessageSecurityBinding: WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_TEMPLATE, +} +impl ::core::marker::Copy for WS_HTTP_SSL_KERBEROS_APREQ_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_HTTP_SSL_KERBEROS_APREQ_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_SSL_KERBEROS_APREQ_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sslTransportSecurityBinding: WS_SSL_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION, + pub kerberosApreqMessageSecurityBinding: WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION, +} +impl ::core::marker::Copy for WS_HTTP_SSL_KERBEROS_APREQ_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_HTTP_SSL_KERBEROS_APREQ_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_SSL_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sslTransportSecurityBinding: WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE, + pub kerberosApreqMessageSecurityBinding: WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_TEMPLATE, + pub securityContextSecurityBinding: WS_SECURITY_CONTEXT_SECURITY_BINDING_TEMPLATE, +} +impl ::core::marker::Copy for WS_HTTP_SSL_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_HTTP_SSL_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_SSL_KERBEROS_APREQ_SECURITY_CONTEXT_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sslTransportSecurityBinding: WS_SSL_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION, + pub kerberosApreqMessageSecurityBinding: WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION, + pub securityContextSecurityBinding: WS_SECURITY_CONTEXT_SECURITY_BINDING_POLICY_DESCRIPTION, +} +impl ::core::marker::Copy for WS_HTTP_SSL_KERBEROS_APREQ_SECURITY_CONTEXT_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_HTTP_SSL_KERBEROS_APREQ_SECURITY_CONTEXT_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_SSL_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sslTransportSecurityBinding: WS_SSL_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION, +} +impl ::core::marker::Copy for WS_HTTP_SSL_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_HTTP_SSL_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_SSL_USERNAME_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sslTransportSecurityBinding: WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE, + pub usernameMessageSecurityBinding: WS_USERNAME_MESSAGE_SECURITY_BINDING_TEMPLATE, +} +impl ::core::marker::Copy for WS_HTTP_SSL_USERNAME_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_HTTP_SSL_USERNAME_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_SSL_USERNAME_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sslTransportSecurityBinding: WS_SSL_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION, + pub usernameMessageSecurityBinding: WS_USERNAME_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION, +} +impl ::core::marker::Copy for WS_HTTP_SSL_USERNAME_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_HTTP_SSL_USERNAME_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_SSL_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sslTransportSecurityBinding: WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE, + pub usernameMessageSecurityBinding: WS_USERNAME_MESSAGE_SECURITY_BINDING_TEMPLATE, + pub securityContextSecurityBinding: WS_SECURITY_CONTEXT_SECURITY_BINDING_TEMPLATE, +} +impl ::core::marker::Copy for WS_HTTP_SSL_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_HTTP_SSL_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_SSL_USERNAME_SECURITY_CONTEXT_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sslTransportSecurityBinding: WS_SSL_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION, + pub usernameMessageSecurityBinding: WS_USERNAME_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION, + pub securityContextSecurityBinding: WS_SECURITY_CONTEXT_SECURITY_BINDING_POLICY_DESCRIPTION, +} +impl ::core::marker::Copy for WS_HTTP_SSL_USERNAME_SECURITY_CONTEXT_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_HTTP_SSL_USERNAME_SECURITY_CONTEXT_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_HTTP_URL { + pub url: WS_URL, + pub host: WS_STRING, + pub port: u16, + pub portAsString: WS_STRING, + pub path: WS_STRING, + pub query: WS_STRING, + pub fragment: WS_STRING, +} +impl ::core::marker::Copy for WS_HTTP_URL {} +impl ::core::clone::Clone for WS_HTTP_URL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_INT16_DESCRIPTION { + pub minValue: i16, + pub maxValue: i16, +} +impl ::core::marker::Copy for WS_INT16_DESCRIPTION {} +impl ::core::clone::Clone for WS_INT16_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_INT32_DESCRIPTION { + pub minValue: i32, + pub maxValue: i32, +} +impl ::core::marker::Copy for WS_INT32_DESCRIPTION {} +impl ::core::clone::Clone for WS_INT32_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_INT64_DESCRIPTION { + pub minValue: i64, + pub maxValue: i64, +} +impl ::core::marker::Copy for WS_INT64_DESCRIPTION {} +impl ::core::clone::Clone for WS_INT64_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_INT8_DESCRIPTION { + pub minValue: u8, + pub maxValue: u8, +} +impl ::core::marker::Copy for WS_INT8_DESCRIPTION {} +impl ::core::clone::Clone for WS_INT8_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT { + pub bindingConstraint: WS_SECURITY_BINDING_CONSTRAINT, + pub bindingUsage: WS_MESSAGE_SECURITY_USAGE, + pub claimConstraints: *mut WS_XML_STRING, + pub claimConstraintCount: u32, + pub requestSecurityTokenPropertyConstraints: *mut WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT, + pub requestSecurityTokenPropertyConstraintCount: u32, + pub out: WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT_0 { + pub issuerAddress: *mut WS_ENDPOINT_ADDRESS, + pub requestSecurityTokenTemplate: *mut WS_XML_BUFFER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_ITEM_RANGE { + pub minItemCount: u32, + pub maxItemCount: u32, +} +impl ::core::marker::Copy for WS_ITEM_RANGE {} +impl ::core::clone::Clone for WS_ITEM_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING { + pub binding: WS_SECURITY_BINDING, + pub bindingUsage: WS_MESSAGE_SECURITY_USAGE, + pub clientCredential: *mut WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL, +} +impl ::core::marker::Copy for WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING {} +impl ::core::clone::Clone for WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT { + pub bindingConstraint: WS_SECURITY_BINDING_CONSTRAINT, + pub bindingUsage: WS_MESSAGE_SECURITY_USAGE, +} +impl ::core::marker::Copy for WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT {} +impl ::core::clone::Clone for WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION { + pub securityBindingProperties: WS_SECURITY_BINDING_PROPERTIES, + pub bindingUsage: WS_MESSAGE_SECURITY_USAGE, +} +impl ::core::marker::Copy for WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_TEMPLATE { + pub securityBindingProperties: WS_SECURITY_BINDING_PROPERTIES, + pub clientCredential: *mut WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL, +} +impl ::core::marker::Copy for WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +pub type WS_LISTENER = isize; +#[repr(C)] +pub struct WS_LISTENER_PROPERTIES { + pub properties: *mut WS_LISTENER_PROPERTY, + pub propertyCount: u32, +} +impl ::core::marker::Copy for WS_LISTENER_PROPERTIES {} +impl ::core::clone::Clone for WS_LISTENER_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_LISTENER_PROPERTY { + pub id: WS_LISTENER_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_LISTENER_PROPERTY {} +impl ::core::clone::Clone for WS_LISTENER_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +pub type WS_MESSAGE = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_MESSAGE_DESCRIPTION { + pub action: *mut WS_XML_STRING, + pub bodyElementDescription: *mut WS_ELEMENT_DESCRIPTION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_MESSAGE_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_MESSAGE_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_MESSAGE_PROPERTIES { + pub properties: *mut WS_MESSAGE_PROPERTY, + pub propertyCount: u32, +} +impl ::core::marker::Copy for WS_MESSAGE_PROPERTIES {} +impl ::core::clone::Clone for WS_MESSAGE_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_MESSAGE_PROPERTY { + pub id: WS_MESSAGE_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_MESSAGE_PROPERTY {} +impl ::core::clone::Clone for WS_MESSAGE_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +pub type WS_METADATA = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_METADATA_ENDPOINT { + pub endpointAddress: WS_ENDPOINT_ADDRESS, + pub endpointPolicy: *mut WS_POLICY, + pub portName: *mut WS_XML_STRING, + pub serviceName: *mut WS_XML_STRING, + pub serviceNs: *mut WS_XML_STRING, + pub bindingName: *mut WS_XML_STRING, + pub bindingNs: *mut WS_XML_STRING, + pub portTypeName: *mut WS_XML_STRING, + pub portTypeNs: *mut WS_XML_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_METADATA_ENDPOINT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_METADATA_ENDPOINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_METADATA_ENDPOINTS { + pub endpoints: *mut WS_METADATA_ENDPOINT, + pub endpointCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_METADATA_ENDPOINTS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_METADATA_ENDPOINTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_METADATA_PROPERTY { + pub id: WS_METADATA_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_METADATA_PROPERTY {} +impl ::core::clone::Clone for WS_METADATA_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_NAMEDPIPE_SSPI_TRANSPORT_SECURITY_BINDING { + pub binding: WS_SECURITY_BINDING, + pub clientCredential: *mut WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL, +} +impl ::core::marker::Copy for WS_NAMEDPIPE_SSPI_TRANSPORT_SECURITY_BINDING {} +impl ::core::clone::Clone for WS_NAMEDPIPE_SSPI_TRANSPORT_SECURITY_BINDING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct WS_NCRYPT_ASYMMETRIC_SECURITY_KEY_HANDLE { + pub keyHandle: WS_SECURITY_KEY_HANDLE, + pub asymmetricKey: super::super::Security::Cryptography::NCRYPT_KEY_HANDLE, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for WS_NCRYPT_ASYMMETRIC_SECURITY_KEY_HANDLE {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for WS_NCRYPT_ASYMMETRIC_SECURITY_KEY_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_NETPIPE_URL { + pub url: WS_URL, + pub host: WS_STRING, + pub port: u16, + pub portAsString: WS_STRING, + pub path: WS_STRING, + pub query: WS_STRING, + pub fragment: WS_STRING, +} +impl ::core::marker::Copy for WS_NETPIPE_URL {} +impl ::core::clone::Clone for WS_NETPIPE_URL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_NETTCP_URL { + pub url: WS_URL, + pub host: WS_STRING, + pub port: u16, + pub portAsString: WS_STRING, + pub path: WS_STRING, + pub query: WS_STRING, + pub fragment: WS_STRING, +} +impl ::core::marker::Copy for WS_NETTCP_URL {} +impl ::core::clone::Clone for WS_NETTCP_URL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_OPAQUE_WINDOWS_INTEGRATED_AUTH_CREDENTIAL { + pub credential: WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL, + pub opaqueAuthIdentity: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WS_OPAQUE_WINDOWS_INTEGRATED_AUTH_CREDENTIAL {} +impl ::core::clone::Clone for WS_OPAQUE_WINDOWS_INTEGRATED_AUTH_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +pub type WS_OPERATION_CONTEXT = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_OPERATION_DESCRIPTION { + pub versionInfo: u32, + pub inputMessageDescription: *mut WS_MESSAGE_DESCRIPTION, + pub outputMessageDescription: *mut WS_MESSAGE_DESCRIPTION, + pub inputMessageOptions: u32, + pub outputMessageOptions: u32, + pub parameterCount: u16, + pub parameterDescription: *mut WS_PARAMETER_DESCRIPTION, + pub stubCallback: WS_SERVICE_STUB_CALLBACK, + pub style: WS_OPERATION_STYLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_OPERATION_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_OPERATION_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_PARAMETER_DESCRIPTION { + pub parameterType: WS_PARAMETER_TYPE, + pub inputMessageIndex: u16, + pub outputMessageIndex: u16, +} +impl ::core::marker::Copy for WS_PARAMETER_DESCRIPTION {} +impl ::core::clone::Clone for WS_PARAMETER_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +pub type WS_POLICY = isize; +#[repr(C)] +pub struct WS_POLICY_CONSTRAINTS { + pub channelBinding: WS_CHANNEL_BINDING, + pub channelPropertyConstraints: *mut WS_CHANNEL_PROPERTY_CONSTRAINT, + pub channelPropertyConstraintCount: u32, + pub securityConstraints: *mut WS_SECURITY_CONSTRAINTS, + pub policyExtensions: *mut *mut WS_POLICY_EXTENSION, + pub policyExtensionCount: u32, +} +impl ::core::marker::Copy for WS_POLICY_CONSTRAINTS {} +impl ::core::clone::Clone for WS_POLICY_CONSTRAINTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_POLICY_EXTENSION { + pub r#type: WS_POLICY_EXTENSION_TYPE, +} +impl ::core::marker::Copy for WS_POLICY_EXTENSION {} +impl ::core::clone::Clone for WS_POLICY_EXTENSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_POLICY_PROPERTIES { + pub properties: *mut WS_POLICY_PROPERTY, + pub propertyCount: u32, +} +impl ::core::marker::Copy for WS_POLICY_PROPERTIES {} +impl ::core::clone::Clone for WS_POLICY_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_POLICY_PROPERTY { + pub id: WS_POLICY_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_POLICY_PROPERTY {} +impl ::core::clone::Clone for WS_POLICY_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_PROXY_MESSAGE_CALLBACK_CONTEXT { + pub callback: WS_PROXY_MESSAGE_CALLBACK, + pub state: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WS_PROXY_MESSAGE_CALLBACK_CONTEXT {} +impl ::core::clone::Clone for WS_PROXY_MESSAGE_CALLBACK_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_PROXY_PROPERTY { + pub id: WS_PROXY_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_PROXY_PROPERTY {} +impl ::core::clone::Clone for WS_PROXY_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_RAW_SYMMETRIC_SECURITY_KEY_HANDLE { + pub keyHandle: WS_SECURITY_KEY_HANDLE, + pub rawKeyBytes: WS_BYTES, +} +impl ::core::marker::Copy for WS_RAW_SYMMETRIC_SECURITY_KEY_HANDLE {} +impl ::core::clone::Clone for WS_RAW_SYMMETRIC_SECURITY_KEY_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_REQUEST_SECURITY_TOKEN_PROPERTY { + pub id: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_REQUEST_SECURITY_TOKEN_PROPERTY {} +impl ::core::clone::Clone for WS_REQUEST_SECURITY_TOKEN_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT { + pub id: WS_REQUEST_SECURITY_TOKEN_PROPERTY_ID, + pub allowedValues: *mut ::core::ffi::c_void, + pub allowedValuesSize: u32, + pub out: WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT_0, +} +impl ::core::marker::Copy for WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT {} +impl ::core::clone::Clone for WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT_0 { + pub requestSecurityTokenProperty: WS_REQUEST_SECURITY_TOKEN_PROPERTY, +} +impl ::core::marker::Copy for WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT_0 {} +impl ::core::clone::Clone for WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_RSA_ENDPOINT_IDENTITY { + pub identity: WS_ENDPOINT_IDENTITY, + pub modulus: WS_BYTES, + pub exponent: WS_BYTES, +} +impl ::core::marker::Copy for WS_RSA_ENDPOINT_IDENTITY {} +impl ::core::clone::Clone for WS_RSA_ENDPOINT_IDENTITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SAML_AUTHENTICATOR { + pub authenticatorType: WS_SAML_AUTHENTICATOR_TYPE, +} +impl ::core::marker::Copy for WS_SAML_AUTHENTICATOR {} +impl ::core::clone::Clone for WS_SAML_AUTHENTICATOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SAML_MESSAGE_SECURITY_BINDING { + pub binding: WS_SECURITY_BINDING, + pub bindingUsage: WS_MESSAGE_SECURITY_USAGE, + pub authenticator: *mut WS_SAML_AUTHENTICATOR, +} +impl ::core::marker::Copy for WS_SAML_MESSAGE_SECURITY_BINDING {} +impl ::core::clone::Clone for WS_SAML_MESSAGE_SECURITY_BINDING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_ALGORITHM_PROPERTY { + pub id: WS_SECURITY_ALGORITHM_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_SECURITY_ALGORITHM_PROPERTY {} +impl ::core::clone::Clone for WS_SECURITY_ALGORITHM_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_ALGORITHM_SUITE { + pub canonicalizationAlgorithm: WS_SECURITY_ALGORITHM_ID, + pub digestAlgorithm: WS_SECURITY_ALGORITHM_ID, + pub symmetricSignatureAlgorithm: WS_SECURITY_ALGORITHM_ID, + pub asymmetricSignatureAlgorithm: WS_SECURITY_ALGORITHM_ID, + pub encryptionAlgorithm: WS_SECURITY_ALGORITHM_ID, + pub keyDerivationAlgorithm: WS_SECURITY_ALGORITHM_ID, + pub symmetricKeyWrapAlgorithm: WS_SECURITY_ALGORITHM_ID, + pub asymmetricKeyWrapAlgorithm: WS_SECURITY_ALGORITHM_ID, + pub minSymmetricKeyLength: u32, + pub maxSymmetricKeyLength: u32, + pub minAsymmetricKeyLength: u32, + pub maxAsymmetricKeyLength: u32, + pub properties: *mut WS_SECURITY_ALGORITHM_PROPERTY, + pub propertyCount: u32, +} +impl ::core::marker::Copy for WS_SECURITY_ALGORITHM_SUITE {} +impl ::core::clone::Clone for WS_SECURITY_ALGORITHM_SUITE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_BINDING { + pub bindingType: WS_SECURITY_BINDING_TYPE, + pub properties: *mut WS_SECURITY_BINDING_PROPERTY, + pub propertyCount: u32, +} +impl ::core::marker::Copy for WS_SECURITY_BINDING {} +impl ::core::clone::Clone for WS_SECURITY_BINDING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_BINDING_CONSTRAINT { + pub r#type: WS_SECURITY_BINDING_CONSTRAINT_TYPE, + pub propertyConstraints: *mut WS_SECURITY_BINDING_PROPERTY_CONSTRAINT, + pub propertyConstraintCount: u32, +} +impl ::core::marker::Copy for WS_SECURITY_BINDING_CONSTRAINT {} +impl ::core::clone::Clone for WS_SECURITY_BINDING_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_BINDING_PROPERTIES { + pub properties: *mut WS_SECURITY_BINDING_PROPERTY, + pub propertyCount: u32, +} +impl ::core::marker::Copy for WS_SECURITY_BINDING_PROPERTIES {} +impl ::core::clone::Clone for WS_SECURITY_BINDING_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_BINDING_PROPERTY { + pub id: WS_SECURITY_BINDING_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_SECURITY_BINDING_PROPERTY {} +impl ::core::clone::Clone for WS_SECURITY_BINDING_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_BINDING_PROPERTY_CONSTRAINT { + pub id: WS_SECURITY_BINDING_PROPERTY_ID, + pub allowedValues: *mut ::core::ffi::c_void, + pub allowedValuesSize: u32, + pub out: WS_SECURITY_BINDING_PROPERTY_CONSTRAINT_0, +} +impl ::core::marker::Copy for WS_SECURITY_BINDING_PROPERTY_CONSTRAINT {} +impl ::core::clone::Clone for WS_SECURITY_BINDING_PROPERTY_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_BINDING_PROPERTY_CONSTRAINT_0 { + pub securityBindingProperty: WS_SECURITY_BINDING_PROPERTY, +} +impl ::core::marker::Copy for WS_SECURITY_BINDING_PROPERTY_CONSTRAINT_0 {} +impl ::core::clone::Clone for WS_SECURITY_BINDING_PROPERTY_CONSTRAINT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_CONSTRAINTS { + pub securityPropertyConstraints: *mut WS_SECURITY_PROPERTY_CONSTRAINT, + pub securityPropertyConstraintCount: u32, + pub securityBindingConstraints: *mut *mut WS_SECURITY_BINDING_CONSTRAINT, + pub securityBindingConstraintCount: u32, +} +impl ::core::marker::Copy for WS_SECURITY_CONSTRAINTS {} +impl ::core::clone::Clone for WS_SECURITY_CONSTRAINTS { + fn clone(&self) -> Self { + *self + } +} +pub type WS_SECURITY_CONTEXT = isize; +#[repr(C)] +pub struct WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING { + pub binding: WS_SECURITY_BINDING, + pub bindingUsage: WS_MESSAGE_SECURITY_USAGE, + pub bootstrapSecurityDescription: *mut WS_SECURITY_DESCRIPTION, +} +impl ::core::marker::Copy for WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING {} +impl ::core::clone::Clone for WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT { + pub bindingConstraint: WS_SECURITY_BINDING_CONSTRAINT, + pub bindingUsage: WS_MESSAGE_SECURITY_USAGE, + pub bootstrapSecurityConstraint: *mut WS_SECURITY_CONSTRAINTS, +} +impl ::core::marker::Copy for WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT {} +impl ::core::clone::Clone for WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION { + pub securityBindingProperties: WS_SECURITY_BINDING_PROPERTIES, + pub bindingUsage: WS_MESSAGE_SECURITY_USAGE, +} +impl ::core::marker::Copy for WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_TEMPLATE { + pub securityBindingProperties: WS_SECURITY_BINDING_PROPERTIES, +} +impl ::core::marker::Copy for WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_CONTEXT_PROPERTY { + pub id: WS_SECURITY_CONTEXT_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_SECURITY_CONTEXT_PROPERTY {} +impl ::core::clone::Clone for WS_SECURITY_CONTEXT_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_CONTEXT_SECURITY_BINDING_POLICY_DESCRIPTION { + pub securityContextMessageSecurityBinding: WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION, + pub securityProperties: WS_SECURITY_PROPERTIES, +} +impl ::core::marker::Copy for WS_SECURITY_CONTEXT_SECURITY_BINDING_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_SECURITY_CONTEXT_SECURITY_BINDING_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_CONTEXT_SECURITY_BINDING_TEMPLATE { + pub securityContextMessageSecurityBinding: WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_TEMPLATE, + pub securityProperties: WS_SECURITY_PROPERTIES, +} +impl ::core::marker::Copy for WS_SECURITY_CONTEXT_SECURITY_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_SECURITY_CONTEXT_SECURITY_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_DESCRIPTION { + pub securityBindings: *mut *mut WS_SECURITY_BINDING, + pub securityBindingCount: u32, + pub properties: *mut WS_SECURITY_PROPERTY, + pub propertyCount: u32, +} +impl ::core::marker::Copy for WS_SECURITY_DESCRIPTION {} +impl ::core::clone::Clone for WS_SECURITY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_KEY_HANDLE { + pub keyHandleType: WS_SECURITY_KEY_HANDLE_TYPE, +} +impl ::core::marker::Copy for WS_SECURITY_KEY_HANDLE {} +impl ::core::clone::Clone for WS_SECURITY_KEY_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_PROPERTIES { + pub properties: *mut WS_SECURITY_PROPERTY, + pub propertyCount: u32, +} +impl ::core::marker::Copy for WS_SECURITY_PROPERTIES {} +impl ::core::clone::Clone for WS_SECURITY_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_PROPERTY { + pub id: WS_SECURITY_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_SECURITY_PROPERTY {} +impl ::core::clone::Clone for WS_SECURITY_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_PROPERTY_CONSTRAINT { + pub id: WS_SECURITY_PROPERTY_ID, + pub allowedValues: *mut ::core::ffi::c_void, + pub allowedValuesSize: u32, + pub out: WS_SECURITY_PROPERTY_CONSTRAINT_0, +} +impl ::core::marker::Copy for WS_SECURITY_PROPERTY_CONSTRAINT {} +impl ::core::clone::Clone for WS_SECURITY_PROPERTY_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SECURITY_PROPERTY_CONSTRAINT_0 { + pub securityProperty: WS_SECURITY_PROPERTY, +} +impl ::core::marker::Copy for WS_SECURITY_PROPERTY_CONSTRAINT_0 {} +impl ::core::clone::Clone for WS_SECURITY_PROPERTY_CONSTRAINT_0 { + fn clone(&self) -> Self { + *self + } +} +pub type WS_SECURITY_TOKEN = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_SERVICE_CONTRACT { + pub contractDescription: *const WS_CONTRACT_DESCRIPTION, + pub defaultMessageHandlerCallback: WS_SERVICE_MESSAGE_RECEIVE_CALLBACK, + pub methodTable: *const ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_SERVICE_CONTRACT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_SERVICE_CONTRACT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_SERVICE_ENDPOINT { + pub address: WS_ENDPOINT_ADDRESS, + pub channelBinding: WS_CHANNEL_BINDING, + pub channelType: WS_CHANNEL_TYPE, + pub securityDescription: *const WS_SECURITY_DESCRIPTION, + pub contract: *const WS_SERVICE_CONTRACT, + pub authorizationCallback: WS_SERVICE_SECURITY_CALLBACK, + pub properties: *const WS_SERVICE_ENDPOINT_PROPERTY, + pub propertyCount: u32, + pub channelProperties: WS_CHANNEL_PROPERTIES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_SERVICE_ENDPOINT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_SERVICE_ENDPOINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_SERVICE_ENDPOINT_METADATA { + pub portName: *mut WS_XML_STRING, + pub bindingName: *mut WS_XML_STRING, + pub bindingNs: *mut WS_XML_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_SERVICE_ENDPOINT_METADATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_SERVICE_ENDPOINT_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SERVICE_ENDPOINT_PROPERTY { + pub id: WS_SERVICE_ENDPOINT_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_SERVICE_ENDPOINT_PROPERTY {} +impl ::core::clone::Clone for WS_SERVICE_ENDPOINT_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +pub type WS_SERVICE_HOST = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_SERVICE_METADATA { + pub documentCount: u32, + pub documents: *mut *mut WS_SERVICE_METADATA_DOCUMENT, + pub serviceName: *mut WS_XML_STRING, + pub serviceNs: *mut WS_XML_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_SERVICE_METADATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_SERVICE_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_SERVICE_METADATA_DOCUMENT { + pub content: *mut WS_XML_STRING, + pub name: *mut WS_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_SERVICE_METADATA_DOCUMENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_SERVICE_METADATA_DOCUMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SERVICE_PROPERTY { + pub id: WS_SERVICE_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_SERVICE_PROPERTY {} +impl ::core::clone::Clone for WS_SERVICE_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SERVICE_PROPERTY_ACCEPT_CALLBACK { + pub callback: WS_SERVICE_ACCEPT_CHANNEL_CALLBACK, +} +impl ::core::marker::Copy for WS_SERVICE_PROPERTY_ACCEPT_CALLBACK {} +impl ::core::clone::Clone for WS_SERVICE_PROPERTY_ACCEPT_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SERVICE_PROPERTY_CLOSE_CALLBACK { + pub callback: WS_SERVICE_CLOSE_CHANNEL_CALLBACK, +} +impl ::core::marker::Copy for WS_SERVICE_PROPERTY_CLOSE_CALLBACK {} +impl ::core::clone::Clone for WS_SERVICE_PROPERTY_CLOSE_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +pub type WS_SERVICE_PROXY = isize; +#[repr(C)] +pub struct WS_SERVICE_SECURITY_IDENTITIES { + pub serviceIdentities: *mut WS_STRING, + pub serviceIdentityCount: u32, +} +impl ::core::marker::Copy for WS_SERVICE_SECURITY_IDENTITIES {} +impl ::core::clone::Clone for WS_SERVICE_SECURITY_IDENTITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SOAPUDP_URL { + pub url: WS_URL, + pub host: WS_STRING, + pub port: u16, + pub portAsString: WS_STRING, + pub path: WS_STRING, + pub query: WS_STRING, + pub fragment: WS_STRING, +} +impl ::core::marker::Copy for WS_SOAPUDP_URL {} +impl ::core::clone::Clone for WS_SOAPUDP_URL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SPN_ENDPOINT_IDENTITY { + pub identity: WS_ENDPOINT_IDENTITY, + pub spn: WS_STRING, +} +impl ::core::marker::Copy for WS_SPN_ENDPOINT_IDENTITY {} +impl ::core::clone::Clone for WS_SPN_ENDPOINT_IDENTITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SSL_TRANSPORT_SECURITY_BINDING { + pub binding: WS_SECURITY_BINDING, + pub localCertCredential: *mut WS_CERT_CREDENTIAL, +} +impl ::core::marker::Copy for WS_SSL_TRANSPORT_SECURITY_BINDING {} +impl ::core::clone::Clone for WS_SSL_TRANSPORT_SECURITY_BINDING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT { + pub bindingConstraint: WS_SECURITY_BINDING_CONSTRAINT, + pub out: WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT_0 { + pub clientCertCredentialRequired: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SSL_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION { + pub securityBindingProperties: WS_SECURITY_BINDING_PROPERTIES, +} +impl ::core::marker::Copy for WS_SSL_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_SSL_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE { + pub securityBindingProperties: WS_SECURITY_BINDING_PROPERTIES, + pub localCertCredential: *mut WS_CERT_CREDENTIAL, +} +impl ::core::marker::Copy for WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SSPI_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION { + pub securityBindingProperties: WS_SECURITY_BINDING_PROPERTIES, +} +impl ::core::marker::Copy for WS_SSPI_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_SSPI_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_STRING { + pub length: u32, + pub chars: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WS_STRING {} +impl ::core::clone::Clone for WS_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_STRING_DESCRIPTION { + pub minCharCount: u32, + pub maxCharCount: u32, +} +impl ::core::marker::Copy for WS_STRING_DESCRIPTION {} +impl ::core::clone::Clone for WS_STRING_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_STRING_USERNAME_CREDENTIAL { + pub credential: WS_USERNAME_CREDENTIAL, + pub username: WS_STRING, + pub password: WS_STRING, +} +impl ::core::marker::Copy for WS_STRING_USERNAME_CREDENTIAL {} +impl ::core::clone::Clone for WS_STRING_USERNAME_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_STRING_WINDOWS_INTEGRATED_AUTH_CREDENTIAL { + pub credential: WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL, + pub username: WS_STRING, + pub password: WS_STRING, + pub domain: WS_STRING, +} +impl ::core::marker::Copy for WS_STRING_WINDOWS_INTEGRATED_AUTH_CREDENTIAL {} +impl ::core::clone::Clone for WS_STRING_WINDOWS_INTEGRATED_AUTH_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_STRUCT_DESCRIPTION { + pub size: u32, + pub alignment: u32, + pub fields: *mut *mut WS_FIELD_DESCRIPTION, + pub fieldCount: u32, + pub typeLocalName: *mut WS_XML_STRING, + pub typeNs: *mut WS_XML_STRING, + pub parentType: *mut WS_STRUCT_DESCRIPTION, + pub subTypes: *mut *mut WS_STRUCT_DESCRIPTION, + pub subTypeCount: u32, + pub structOptions: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_STRUCT_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_STRUCT_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_SUBJECT_NAME_CERT_CREDENTIAL { + pub credential: WS_CERT_CREDENTIAL, + pub storeLocation: u32, + pub storeName: WS_STRING, + pub subjectName: WS_STRING, +} +impl ::core::marker::Copy for WS_SUBJECT_NAME_CERT_CREDENTIAL {} +impl ::core::clone::Clone for WS_SUBJECT_NAME_CERT_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, +} +impl ::core::marker::Copy for WS_TCP_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_TCP_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, +} +impl ::core::marker::Copy for WS_TCP_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_TCP_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_SSPI_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sspiTransportSecurityBinding: WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_TEMPLATE, +} +impl ::core::marker::Copy for WS_TCP_SSPI_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_TCP_SSPI_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_SSPI_KERBEROS_APREQ_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sspiTransportSecurityBinding: WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_TEMPLATE, + pub kerberosApreqMessageSecurityBinding: WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_TEMPLATE, +} +impl ::core::marker::Copy for WS_TCP_SSPI_KERBEROS_APREQ_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_TCP_SSPI_KERBEROS_APREQ_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_SSPI_KERBEROS_APREQ_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sspiTransportSecurityBinding: WS_SSPI_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION, + pub kerberosApreqMessageSecurityBinding: WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION, +} +impl ::core::marker::Copy for WS_TCP_SSPI_KERBEROS_APREQ_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_TCP_SSPI_KERBEROS_APREQ_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_SSPI_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sspiTransportSecurityBinding: WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_TEMPLATE, + pub kerberosApreqMessageSecurityBinding: WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_TEMPLATE, + pub securityContextSecurityBinding: WS_SECURITY_CONTEXT_SECURITY_BINDING_TEMPLATE, +} +impl ::core::marker::Copy for WS_TCP_SSPI_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_TCP_SSPI_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_SSPI_KERBEROS_APREQ_SECURITY_CONTEXT_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sspiTransportSecurityBinding: WS_SSPI_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION, + pub kerberosApreqMessageSecurityBinding: WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION, + pub securityContextSecurityBinding: WS_SECURITY_CONTEXT_SECURITY_BINDING_POLICY_DESCRIPTION, +} +impl ::core::marker::Copy for WS_TCP_SSPI_KERBEROS_APREQ_SECURITY_CONTEXT_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_TCP_SSPI_KERBEROS_APREQ_SECURITY_CONTEXT_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_SSPI_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sspiTransportSecurityBinding: WS_SSPI_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION, +} +impl ::core::marker::Copy for WS_TCP_SSPI_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_TCP_SSPI_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING { + pub binding: WS_SECURITY_BINDING, + pub clientCredential: *mut WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL, +} +impl ::core::marker::Copy for WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING {} +impl ::core::clone::Clone for WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT { + pub bindingConstraint: WS_SECURITY_BINDING_CONSTRAINT, +} +impl ::core::marker::Copy for WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT {} +impl ::core::clone::Clone for WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_TEMPLATE { + pub securityBindingProperties: WS_SECURITY_BINDING_PROPERTIES, + pub clientCredential: *mut WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL, +} +impl ::core::marker::Copy for WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_SSPI_USERNAME_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sspiTransportSecurityBinding: WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_TEMPLATE, + pub usernameMessageSecurityBinding: WS_USERNAME_MESSAGE_SECURITY_BINDING_TEMPLATE, +} +impl ::core::marker::Copy for WS_TCP_SSPI_USERNAME_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_TCP_SSPI_USERNAME_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_SSPI_USERNAME_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sspiTransportSecurityBinding: WS_SSPI_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION, + pub usernameMessageSecurityBinding: WS_USERNAME_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION, +} +impl ::core::marker::Copy for WS_TCP_SSPI_USERNAME_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_TCP_SSPI_USERNAME_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_SSPI_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sspiTransportSecurityBinding: WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_TEMPLATE, + pub usernameMessageSecurityBinding: WS_USERNAME_MESSAGE_SECURITY_BINDING_TEMPLATE, + pub securityContextSecurityBinding: WS_SECURITY_CONTEXT_SECURITY_BINDING_TEMPLATE, +} +impl ::core::marker::Copy for WS_TCP_SSPI_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_TCP_SSPI_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TCP_SSPI_USERNAME_SECURITY_CONTEXT_POLICY_DESCRIPTION { + pub channelProperties: WS_CHANNEL_PROPERTIES, + pub securityProperties: WS_SECURITY_PROPERTIES, + pub sspiTransportSecurityBinding: WS_SSPI_TRANSPORT_SECURITY_BINDING_POLICY_DESCRIPTION, + pub usernameMessageSecurityBinding: WS_USERNAME_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION, + pub securityContextSecurityBinding: WS_SECURITY_CONTEXT_SECURITY_BINDING_POLICY_DESCRIPTION, +} +impl ::core::marker::Copy for WS_TCP_SSPI_USERNAME_SECURITY_CONTEXT_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_TCP_SSPI_USERNAME_SECURITY_CONTEXT_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_THUMBPRINT_CERT_CREDENTIAL { + pub credential: WS_CERT_CREDENTIAL, + pub storeLocation: u32, + pub storeName: WS_STRING, + pub thumbprint: WS_STRING, +} +impl ::core::marker::Copy for WS_THUMBPRINT_CERT_CREDENTIAL {} +impl ::core::clone::Clone for WS_THUMBPRINT_CERT_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TIMESPAN { + pub ticks: i64, +} +impl ::core::marker::Copy for WS_TIMESPAN {} +impl ::core::clone::Clone for WS_TIMESPAN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_TIMESPAN_DESCRIPTION { + pub minValue: WS_TIMESPAN, + pub maxValue: WS_TIMESPAN, +} +impl ::core::marker::Copy for WS_TIMESPAN_DESCRIPTION {} +impl ::core::clone::Clone for WS_TIMESPAN_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_UINT16_DESCRIPTION { + pub minValue: u16, + pub maxValue: u16, +} +impl ::core::marker::Copy for WS_UINT16_DESCRIPTION {} +impl ::core::clone::Clone for WS_UINT16_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_UINT32_DESCRIPTION { + pub minValue: u32, + pub maxValue: u32, +} +impl ::core::marker::Copy for WS_UINT32_DESCRIPTION {} +impl ::core::clone::Clone for WS_UINT32_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_UINT64_DESCRIPTION { + pub minValue: u64, + pub maxValue: u64, +} +impl ::core::marker::Copy for WS_UINT64_DESCRIPTION {} +impl ::core::clone::Clone for WS_UINT64_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_UINT8_DESCRIPTION { + pub minValue: u8, + pub maxValue: u8, +} +impl ::core::marker::Copy for WS_UINT8_DESCRIPTION {} +impl ::core::clone::Clone for WS_UINT8_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_UNION_DESCRIPTION { + pub size: u32, + pub alignment: u32, + pub fields: *mut *mut WS_UNION_FIELD_DESCRIPTION, + pub fieldCount: u32, + pub enumOffset: u32, + pub noneEnumValue: i32, + pub valueIndices: *mut u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_UNION_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_UNION_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_UNION_FIELD_DESCRIPTION { + pub value: i32, + pub field: WS_FIELD_DESCRIPTION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_UNION_FIELD_DESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_UNION_FIELD_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_UNIQUE_ID { + pub uri: WS_STRING, + pub guid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for WS_UNIQUE_ID {} +impl ::core::clone::Clone for WS_UNIQUE_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_UNIQUE_ID_DESCRIPTION { + pub minCharCount: u32, + pub maxCharCount: u32, +} +impl ::core::marker::Copy for WS_UNIQUE_ID_DESCRIPTION {} +impl ::core::clone::Clone for WS_UNIQUE_ID_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_UNKNOWN_ENDPOINT_IDENTITY { + pub identity: WS_ENDPOINT_IDENTITY, + pub element: *mut WS_XML_BUFFER, +} +impl ::core::marker::Copy for WS_UNKNOWN_ENDPOINT_IDENTITY {} +impl ::core::clone::Clone for WS_UNKNOWN_ENDPOINT_IDENTITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_UPN_ENDPOINT_IDENTITY { + pub identity: WS_ENDPOINT_IDENTITY, + pub upn: WS_STRING, +} +impl ::core::marker::Copy for WS_UPN_ENDPOINT_IDENTITY {} +impl ::core::clone::Clone for WS_UPN_ENDPOINT_IDENTITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_URL { + pub scheme: WS_URL_SCHEME_TYPE, +} +impl ::core::marker::Copy for WS_URL {} +impl ::core::clone::Clone for WS_URL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_USERNAME_CREDENTIAL { + pub credentialType: WS_USERNAME_CREDENTIAL_TYPE, +} +impl ::core::marker::Copy for WS_USERNAME_CREDENTIAL {} +impl ::core::clone::Clone for WS_USERNAME_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_USERNAME_MESSAGE_SECURITY_BINDING { + pub binding: WS_SECURITY_BINDING, + pub bindingUsage: WS_MESSAGE_SECURITY_USAGE, + pub clientCredential: *mut WS_USERNAME_CREDENTIAL, + pub passwordValidator: WS_VALIDATE_PASSWORD_CALLBACK, + pub passwordValidatorCallbackState: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WS_USERNAME_MESSAGE_SECURITY_BINDING {} +impl ::core::clone::Clone for WS_USERNAME_MESSAGE_SECURITY_BINDING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT { + pub bindingConstraint: WS_SECURITY_BINDING_CONSTRAINT, + pub bindingUsage: WS_MESSAGE_SECURITY_USAGE, +} +impl ::core::marker::Copy for WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT {} +impl ::core::clone::Clone for WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_USERNAME_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION { + pub securityBindingProperties: WS_SECURITY_BINDING_PROPERTIES, + pub bindingUsage: WS_MESSAGE_SECURITY_USAGE, +} +impl ::core::marker::Copy for WS_USERNAME_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION {} +impl ::core::clone::Clone for WS_USERNAME_MESSAGE_SECURITY_BINDING_POLICY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_USERNAME_MESSAGE_SECURITY_BINDING_TEMPLATE { + pub securityBindingProperties: WS_SECURITY_BINDING_PROPERTIES, + pub clientCredential: *mut WS_USERNAME_CREDENTIAL, + pub passwordValidator: WS_VALIDATE_PASSWORD_CALLBACK, + pub passwordValidatorCallbackState: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WS_USERNAME_MESSAGE_SECURITY_BINDING_TEMPLATE {} +impl ::core::clone::Clone for WS_USERNAME_MESSAGE_SECURITY_BINDING_TEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_UTF8_ARRAY_DESCRIPTION { + pub minByteCount: u32, + pub maxByteCount: u32, +} +impl ::core::marker::Copy for WS_UTF8_ARRAY_DESCRIPTION {} +impl ::core::clone::Clone for WS_UTF8_ARRAY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_VOID_DESCRIPTION { + pub size: u32, +} +impl ::core::marker::Copy for WS_VOID_DESCRIPTION {} +impl ::core::clone::Clone for WS_VOID_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL { + pub credentialType: WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL_TYPE, +} +impl ::core::marker::Copy for WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL {} +impl ::core::clone::Clone for WS_WINDOWS_INTEGRATED_AUTH_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_WSZ_DESCRIPTION { + pub minCharCount: u32, + pub maxCharCount: u32, +} +impl ::core::marker::Copy for WS_WSZ_DESCRIPTION {} +impl ::core::clone::Clone for WS_WSZ_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_ATTRIBUTE { + pub singleQuote: u8, + pub isXmlNs: u8, + pub prefix: *mut WS_XML_STRING, + pub localName: *mut WS_XML_STRING, + pub ns: *mut WS_XML_STRING, + pub value: *mut WS_XML_TEXT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_ATTRIBUTE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_ATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_BASE64_TEXT { + pub text: WS_XML_TEXT, + pub bytes: *mut u8, + pub length: u32, +} +impl ::core::marker::Copy for WS_XML_BASE64_TEXT {} +impl ::core::clone::Clone for WS_XML_BASE64_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_BOOL_TEXT { + pub text: WS_XML_TEXT, + pub value: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_BOOL_TEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_BOOL_TEXT { + fn clone(&self) -> Self { + *self + } +} +pub type WS_XML_BUFFER = isize; +#[repr(C)] +pub struct WS_XML_BUFFER_PROPERTY { + pub id: WS_XML_BUFFER_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_XML_BUFFER_PROPERTY {} +impl ::core::clone::Clone for WS_XML_BUFFER_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_CANONICALIZATION_INCLUSIVE_PREFIXES { + pub prefixCount: u32, + pub prefixes: *mut WS_XML_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_CANONICALIZATION_INCLUSIVE_PREFIXES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_CANONICALIZATION_INCLUSIVE_PREFIXES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_CANONICALIZATION_PROPERTY { + pub id: WS_XML_CANONICALIZATION_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_XML_CANONICALIZATION_PROPERTY {} +impl ::core::clone::Clone for WS_XML_CANONICALIZATION_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_COMMENT_NODE { + pub node: WS_XML_NODE, + pub value: WS_XML_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_COMMENT_NODE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_COMMENT_NODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_DATETIME_TEXT { + pub text: WS_XML_TEXT, + pub value: WS_DATETIME, +} +impl ::core::marker::Copy for WS_XML_DATETIME_TEXT {} +impl ::core::clone::Clone for WS_XML_DATETIME_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_DECIMAL_TEXT { + pub text: WS_XML_TEXT, + pub value: super::super::Foundation::DECIMAL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_DECIMAL_TEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_DECIMAL_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_DICTIONARY { + pub guid: ::windows_sys::core::GUID, + pub strings: *mut WS_XML_STRING, + pub stringCount: u32, + pub isConst: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_DICTIONARY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_DICTIONARY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_DOUBLE_TEXT { + pub text: WS_XML_TEXT, + pub value: f64, +} +impl ::core::marker::Copy for WS_XML_DOUBLE_TEXT {} +impl ::core::clone::Clone for WS_XML_DOUBLE_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_ELEMENT_NODE { + pub node: WS_XML_NODE, + pub prefix: *mut WS_XML_STRING, + pub localName: *mut WS_XML_STRING, + pub ns: *mut WS_XML_STRING, + pub attributeCount: u32, + pub attributes: *mut *mut WS_XML_ATTRIBUTE, + pub isEmpty: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_ELEMENT_NODE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_ELEMENT_NODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_FLOAT_TEXT { + pub text: WS_XML_TEXT, + pub value: f32, +} +impl ::core::marker::Copy for WS_XML_FLOAT_TEXT {} +impl ::core::clone::Clone for WS_XML_FLOAT_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_GUID_TEXT { + pub text: WS_XML_TEXT, + pub value: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for WS_XML_GUID_TEXT {} +impl ::core::clone::Clone for WS_XML_GUID_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_INT32_TEXT { + pub text: WS_XML_TEXT, + pub value: i32, +} +impl ::core::marker::Copy for WS_XML_INT32_TEXT {} +impl ::core::clone::Clone for WS_XML_INT32_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_INT64_TEXT { + pub text: WS_XML_TEXT, + pub value: i64, +} +impl ::core::marker::Copy for WS_XML_INT64_TEXT {} +impl ::core::clone::Clone for WS_XML_INT64_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_LIST_TEXT { + pub text: WS_XML_TEXT, + pub itemCount: u32, + pub items: *mut *mut WS_XML_TEXT, +} +impl ::core::marker::Copy for WS_XML_LIST_TEXT {} +impl ::core::clone::Clone for WS_XML_LIST_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_NODE { + pub nodeType: WS_XML_NODE_TYPE, +} +impl ::core::marker::Copy for WS_XML_NODE {} +impl ::core::clone::Clone for WS_XML_NODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_NODE_POSITION { + pub buffer: *mut WS_XML_BUFFER, + pub node: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WS_XML_NODE_POSITION {} +impl ::core::clone::Clone for WS_XML_NODE_POSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_QNAME { + pub localName: WS_XML_STRING, + pub ns: WS_XML_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_QNAME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_QNAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_QNAME_DESCRIPTION { + pub minLocalNameByteCount: u32, + pub maxLocalNameByteCount: u32, + pub minNsByteCount: u32, + pub maxNsByteCount: u32, +} +impl ::core::marker::Copy for WS_XML_QNAME_DESCRIPTION {} +impl ::core::clone::Clone for WS_XML_QNAME_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_QNAME_TEXT { + pub text: WS_XML_TEXT, + pub prefix: *mut WS_XML_STRING, + pub localName: *mut WS_XML_STRING, + pub ns: *mut WS_XML_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_QNAME_TEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_QNAME_TEXT { + fn clone(&self) -> Self { + *self + } +} +pub type WS_XML_READER = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_READER_BINARY_ENCODING { + pub encoding: WS_XML_READER_ENCODING, + pub staticDictionary: *mut WS_XML_DICTIONARY, + pub dynamicDictionary: *mut WS_XML_DICTIONARY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_READER_BINARY_ENCODING {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_READER_BINARY_ENCODING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_READER_BUFFER_INPUT { + pub input: WS_XML_READER_INPUT, + pub encodedData: *mut ::core::ffi::c_void, + pub encodedDataSize: u32, +} +impl ::core::marker::Copy for WS_XML_READER_BUFFER_INPUT {} +impl ::core::clone::Clone for WS_XML_READER_BUFFER_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_READER_ENCODING { + pub encodingType: WS_XML_READER_ENCODING_TYPE, +} +impl ::core::marker::Copy for WS_XML_READER_ENCODING {} +impl ::core::clone::Clone for WS_XML_READER_ENCODING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_READER_INPUT { + pub inputType: WS_XML_READER_INPUT_TYPE, +} +impl ::core::marker::Copy for WS_XML_READER_INPUT {} +impl ::core::clone::Clone for WS_XML_READER_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_READER_MTOM_ENCODING { + pub encoding: WS_XML_READER_ENCODING, + pub textEncoding: *mut WS_XML_READER_ENCODING, + pub readMimeHeader: super::super::Foundation::BOOL, + pub startInfo: WS_STRING, + pub boundary: WS_STRING, + pub startUri: WS_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_READER_MTOM_ENCODING {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_READER_MTOM_ENCODING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_READER_PROPERTIES { + pub properties: *mut WS_XML_READER_PROPERTY, + pub propertyCount: u32, +} +impl ::core::marker::Copy for WS_XML_READER_PROPERTIES {} +impl ::core::clone::Clone for WS_XML_READER_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_READER_PROPERTY { + pub id: WS_XML_READER_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_XML_READER_PROPERTY {} +impl ::core::clone::Clone for WS_XML_READER_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_READER_RAW_ENCODING { + pub encoding: WS_XML_READER_ENCODING, +} +impl ::core::marker::Copy for WS_XML_READER_RAW_ENCODING {} +impl ::core::clone::Clone for WS_XML_READER_RAW_ENCODING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_READER_STREAM_INPUT { + pub input: WS_XML_READER_INPUT, + pub readCallback: WS_READ_CALLBACK, + pub readCallbackState: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WS_XML_READER_STREAM_INPUT {} +impl ::core::clone::Clone for WS_XML_READER_STREAM_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_READER_TEXT_ENCODING { + pub encoding: WS_XML_READER_ENCODING, + pub charSet: WS_CHARSET, +} +impl ::core::marker::Copy for WS_XML_READER_TEXT_ENCODING {} +impl ::core::clone::Clone for WS_XML_READER_TEXT_ENCODING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_SECURITY_TOKEN_PROPERTY { + pub id: WS_XML_SECURITY_TOKEN_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_XML_SECURITY_TOKEN_PROPERTY {} +impl ::core::clone::Clone for WS_XML_SECURITY_TOKEN_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_STRING { + pub length: u32, + pub bytes: *mut u8, + pub dictionary: *mut WS_XML_DICTIONARY, + pub id: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_STRING {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_STRING_DESCRIPTION { + pub minByteCount: u32, + pub maxByteCount: u32, +} +impl ::core::marker::Copy for WS_XML_STRING_DESCRIPTION {} +impl ::core::clone::Clone for WS_XML_STRING_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_TEXT { + pub textType: WS_XML_TEXT_TYPE, +} +impl ::core::marker::Copy for WS_XML_TEXT {} +impl ::core::clone::Clone for WS_XML_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_TEXT_NODE { + pub node: WS_XML_NODE, + pub text: *mut WS_XML_TEXT, +} +impl ::core::marker::Copy for WS_XML_TEXT_NODE {} +impl ::core::clone::Clone for WS_XML_TEXT_NODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_TIMESPAN_TEXT { + pub text: WS_XML_TEXT, + pub value: WS_TIMESPAN, +} +impl ::core::marker::Copy for WS_XML_TIMESPAN_TEXT {} +impl ::core::clone::Clone for WS_XML_TIMESPAN_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_TOKEN_MESSAGE_SECURITY_BINDING { + pub binding: WS_SECURITY_BINDING, + pub bindingUsage: WS_MESSAGE_SECURITY_USAGE, + pub xmlToken: *mut WS_SECURITY_TOKEN, +} +impl ::core::marker::Copy for WS_XML_TOKEN_MESSAGE_SECURITY_BINDING {} +impl ::core::clone::Clone for WS_XML_TOKEN_MESSAGE_SECURITY_BINDING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_UINT64_TEXT { + pub text: WS_XML_TEXT, + pub value: u64, +} +impl ::core::marker::Copy for WS_XML_UINT64_TEXT {} +impl ::core::clone::Clone for WS_XML_UINT64_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_UNIQUE_ID_TEXT { + pub text: WS_XML_TEXT, + pub value: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for WS_XML_UNIQUE_ID_TEXT {} +impl ::core::clone::Clone for WS_XML_UNIQUE_ID_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_UTF16_TEXT { + pub text: WS_XML_TEXT, + pub bytes: *mut u8, + pub byteCount: u32, +} +impl ::core::marker::Copy for WS_XML_UTF16_TEXT {} +impl ::core::clone::Clone for WS_XML_UTF16_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_UTF8_TEXT { + pub text: WS_XML_TEXT, + pub value: WS_XML_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_UTF8_TEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_UTF8_TEXT { + fn clone(&self) -> Self { + *self + } +} +pub type WS_XML_WRITER = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_WRITER_BINARY_ENCODING { + pub encoding: WS_XML_WRITER_ENCODING, + pub staticDictionary: *mut WS_XML_DICTIONARY, + pub dynamicStringCallback: WS_DYNAMIC_STRING_CALLBACK, + pub dynamicStringCallbackState: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_WRITER_BINARY_ENCODING {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_WRITER_BINARY_ENCODING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_WRITER_BUFFER_OUTPUT { + pub output: WS_XML_WRITER_OUTPUT, +} +impl ::core::marker::Copy for WS_XML_WRITER_BUFFER_OUTPUT {} +impl ::core::clone::Clone for WS_XML_WRITER_BUFFER_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_WRITER_ENCODING { + pub encodingType: WS_XML_WRITER_ENCODING_TYPE, +} +impl ::core::marker::Copy for WS_XML_WRITER_ENCODING {} +impl ::core::clone::Clone for WS_XML_WRITER_ENCODING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WS_XML_WRITER_MTOM_ENCODING { + pub encoding: WS_XML_WRITER_ENCODING, + pub textEncoding: *mut WS_XML_WRITER_ENCODING, + pub writeMimeHeader: super::super::Foundation::BOOL, + pub boundary: WS_STRING, + pub startInfo: WS_STRING, + pub startUri: WS_STRING, + pub maxInlineByteCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WS_XML_WRITER_MTOM_ENCODING {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WS_XML_WRITER_MTOM_ENCODING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_WRITER_OUTPUT { + pub outputType: WS_XML_WRITER_OUTPUT_TYPE, +} +impl ::core::marker::Copy for WS_XML_WRITER_OUTPUT {} +impl ::core::clone::Clone for WS_XML_WRITER_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_WRITER_PROPERTIES { + pub properties: *mut WS_XML_WRITER_PROPERTY, + pub propertyCount: u32, +} +impl ::core::marker::Copy for WS_XML_WRITER_PROPERTIES {} +impl ::core::clone::Clone for WS_XML_WRITER_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_WRITER_PROPERTY { + pub id: WS_XML_WRITER_PROPERTY_ID, + pub value: *mut ::core::ffi::c_void, + pub valueSize: u32, +} +impl ::core::marker::Copy for WS_XML_WRITER_PROPERTY {} +impl ::core::clone::Clone for WS_XML_WRITER_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_WRITER_RAW_ENCODING { + pub encoding: WS_XML_WRITER_ENCODING, +} +impl ::core::marker::Copy for WS_XML_WRITER_RAW_ENCODING {} +impl ::core::clone::Clone for WS_XML_WRITER_RAW_ENCODING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_WRITER_STREAM_OUTPUT { + pub output: WS_XML_WRITER_OUTPUT, + pub writeCallback: WS_WRITE_CALLBACK, + pub writeCallbackState: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WS_XML_WRITER_STREAM_OUTPUT {} +impl ::core::clone::Clone for WS_XML_WRITER_STREAM_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WS_XML_WRITER_TEXT_ENCODING { + pub encoding: WS_XML_WRITER_ENCODING, + pub charSet: WS_CHARSET, +} +impl ::core::marker::Copy for WS_XML_WRITER_TEXT_ENCODING {} +impl ::core::clone::Clone for WS_XML_WRITER_TEXT_ENCODING { + fn clone(&self) -> Self { + *self + } +} +pub type WS_ABANDON_MESSAGE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_ABORT_CHANNEL_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_ABORT_LISTENER_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_ACCEPT_CHANNEL_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_ASYNC_CALLBACK = ::core::option::Option ()>; +pub type WS_ASYNC_FUNCTION = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub type WS_CERTIFICATE_VALIDATION_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Security_Authentication_Identity", feature = "Win32_Security_Cryptography"))] +pub type WS_CERT_ISSUER_LIST_NOTIFICATION_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_CLOSE_CHANNEL_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_CLOSE_LISTENER_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_CREATE_CHANNEL_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_CREATE_CHANNEL_FOR_LISTENER_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_CREATE_DECODER_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_CREATE_ENCODER_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_CREATE_LISTENER_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_DECODER_DECODE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_DECODER_END_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_DECODER_GET_CONTENT_TYPE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_DECODER_START_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WS_DURATION_COMPARISON_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WS_DYNAMIC_STRING_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_ENCODER_ENCODE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_ENCODER_END_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_ENCODER_GET_CONTENT_TYPE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_ENCODER_START_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_FREE_CHANNEL_CALLBACK = ::core::option::Option ()>; +pub type WS_FREE_DECODER_CALLBACK = ::core::option::Option ()>; +pub type WS_FREE_ENCODER_CALLBACK = ::core::option::Option ()>; +pub type WS_FREE_LISTENER_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub type WS_GET_CERT_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_GET_CHANNEL_PROPERTY_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_GET_LISTENER_PROPERTY_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_HTTP_REDIRECT_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WS_IS_DEFAULT_VALUE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_MESSAGE_DONE_CALLBACK = ::core::option::Option ()>; +pub type WS_OPEN_CHANNEL_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_OPEN_LISTENER_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_OPERATION_CANCEL_CALLBACK = ::core::option::Option ()>; +pub type WS_OPERATION_FREE_STATE_CALLBACK = ::core::option::Option ()>; +pub type WS_PROXY_MESSAGE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_PULL_BYTES_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_PUSH_BYTES_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_READ_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_READ_MESSAGE_END_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_READ_MESSAGE_START_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_READ_TYPE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_RESET_CHANNEL_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_RESET_LISTENER_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_SERVICE_ACCEPT_CHANNEL_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_SERVICE_CLOSE_CHANNEL_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_SERVICE_MESSAGE_RECEIVE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WS_SERVICE_SECURITY_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_SERVICE_STUB_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_SET_CHANNEL_PROPERTY_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_SET_LISTENER_PROPERTY_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_VALIDATE_PASSWORD_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_VALIDATE_SAML_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_WRITE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_WRITE_MESSAGE_END_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_WRITE_MESSAGE_START_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WS_WRITE_TYPE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/mod.rs new file mode 100644 index 000000000..156aa44ca --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Networking/mod.rs @@ -0,0 +1,27 @@ +#[cfg(feature = "Win32_Networking_ActiveDirectory")] +#[doc = "Required features: `\"Win32_Networking_ActiveDirectory\"`"] +pub mod ActiveDirectory; +#[cfg(feature = "Win32_Networking_Clustering")] +#[doc = "Required features: `\"Win32_Networking_Clustering\"`"] +pub mod Clustering; +#[cfg(feature = "Win32_Networking_HttpServer")] +#[doc = "Required features: `\"Win32_Networking_HttpServer\"`"] +pub mod HttpServer; +#[cfg(feature = "Win32_Networking_Ldap")] +#[doc = "Required features: `\"Win32_Networking_Ldap\"`"] +pub mod Ldap; +#[cfg(feature = "Win32_Networking_WebSocket")] +#[doc = "Required features: `\"Win32_Networking_WebSocket\"`"] +pub mod WebSocket; +#[cfg(feature = "Win32_Networking_WinHttp")] +#[doc = "Required features: `\"Win32_Networking_WinHttp\"`"] +pub mod WinHttp; +#[cfg(feature = "Win32_Networking_WinInet")] +#[doc = "Required features: `\"Win32_Networking_WinInet\"`"] +pub mod WinInet; +#[cfg(feature = "Win32_Networking_WinSock")] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +pub mod WinSock; +#[cfg(feature = "Win32_Networking_WindowsWebServices")] +#[doc = "Required features: `\"Win32_Networking_WindowsWebServices\"`"] +pub mod WindowsWebServices; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/AppLocker/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/AppLocker/mod.rs new file mode 100644 index 000000000..74fd684ed --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/AppLocker/mod.rs @@ -0,0 +1,240 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SaferCloseLevel(hlevelhandle : super:: SAFER_LEVEL_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SaferComputeTokenFromLevel(levelhandle : super:: SAFER_LEVEL_HANDLE, inaccesstoken : super::super::Foundation:: HANDLE, outaccesstoken : *mut super::super::Foundation:: HANDLE, dwflags : SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS, lpreserved : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SaferCreateLevel(dwscopeid : u32, dwlevelid : u32, openflags : u32, plevelhandle : *mut super:: SAFER_LEVEL_HANDLE, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SaferGetLevelInformation(levelhandle : super:: SAFER_LEVEL_HANDLE, dwinfotype : SAFER_OBJECT_INFO_CLASS, lpquerybuffer : *mut ::core::ffi::c_void, dwinbuffersize : u32, lpdwoutbuffersize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SaferGetPolicyInformation(dwscopeid : u32, saferpolicyinfoclass : SAFER_POLICY_INFO_CLASS, infobuffersize : u32, infobuffer : *mut ::core::ffi::c_void, infobufferretsize : *mut u32, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn SaferIdentifyLevel(dwnumproperties : u32, pcodeproperties : *const SAFER_CODE_PROPERTIES_V2, plevelhandle : *mut super:: SAFER_LEVEL_HANDLE, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SaferRecordEventLogEntry(hlevel : super:: SAFER_LEVEL_HANDLE, sztargetpath : ::windows_sys::core::PCWSTR, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SaferSetLevelInformation(levelhandle : super:: SAFER_LEVEL_HANDLE, dwinfotype : SAFER_OBJECT_INFO_CLASS, lpquerybuffer : *const ::core::ffi::c_void, dwinbuffersize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SaferSetPolicyInformation(dwscopeid : u32, saferpolicyinfoclass : SAFER_POLICY_INFO_CLASS, infobuffersize : u32, infobuffer : *const ::core::ffi::c_void, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SaferiIsExecutableFileType(szfullpathname : ::windows_sys::core::PCWSTR, bfromshellexecute : super::super::Foundation:: BOOLEAN) -> super::super::Foundation:: BOOL); +pub const SAFER_CRITERIA_APPX_PACKAGE: u32 = 32u32; +pub const SAFER_CRITERIA_AUTHENTICODE: u32 = 8u32; +pub const SAFER_CRITERIA_IMAGEHASH: u32 = 4u32; +pub const SAFER_CRITERIA_IMAGEPATH: u32 = 1u32; +pub const SAFER_CRITERIA_IMAGEPATH_NT: u32 = 4096u32; +pub const SAFER_CRITERIA_NOSIGNEDHASH: u32 = 2u32; +pub const SAFER_CRITERIA_URLZONE: u32 = 16u32; +pub const SAFER_LEVELID_CONSTRAINED: u32 = 65536u32; +pub const SAFER_LEVELID_DISALLOWED: u32 = 0u32; +pub const SAFER_LEVELID_FULLYTRUSTED: u32 = 262144u32; +pub const SAFER_LEVELID_NORMALUSER: u32 = 131072u32; +pub const SAFER_LEVELID_UNTRUSTED: u32 = 4096u32; +pub const SAFER_LEVEL_OPEN: u32 = 1u32; +pub const SAFER_MAX_DESCRIPTION_SIZE: u32 = 256u32; +pub const SAFER_MAX_FRIENDLYNAME_SIZE: u32 = 256u32; +pub const SAFER_MAX_HASH_SIZE: u32 = 64u32; +pub const SAFER_POLICY_BLOCK_CLIENT_UI: u32 = 8192u32; +pub const SAFER_POLICY_HASH_DUPLICATE: u32 = 262144u32; +pub const SAFER_POLICY_JOBID_CONSTRAINED: u32 = 67108864u32; +pub const SAFER_POLICY_JOBID_MASK: u32 = 4278190080u32; +pub const SAFER_POLICY_JOBID_UNTRUSTED: u32 = 50331648u32; +pub const SAFER_POLICY_ONLY_AUDIT: u32 = 4096u32; +pub const SAFER_POLICY_ONLY_EXES: u32 = 65536u32; +pub const SAFER_POLICY_SANDBOX_INERT: u32 = 131072u32; +pub const SAFER_POLICY_UIFLAGS_HIDDEN: u32 = 4u32; +pub const SAFER_POLICY_UIFLAGS_INFORMATION_PROMPT: u32 = 1u32; +pub const SAFER_POLICY_UIFLAGS_MASK: u32 = 255u32; +pub const SAFER_POLICY_UIFLAGS_OPTION_PROMPT: u32 = 2u32; +pub const SAFER_SCOPEID_MACHINE: u32 = 1u32; +pub const SAFER_SCOPEID_USER: u32 = 2u32; +pub const SAFER_TOKEN_COMPARE_ONLY: SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS = 2u32; +pub const SAFER_TOKEN_MAKE_INERT: SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS = 4u32; +pub const SAFER_TOKEN_NULL_IF_EQUAL: SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS = 1u32; +pub const SAFER_TOKEN_WANT_FLAGS: SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS = 8u32; +pub const SRP_POLICY_APPX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("APPX"); +pub const SRP_POLICY_DLL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DLL"); +pub const SRP_POLICY_EXE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EXE"); +pub const SRP_POLICY_MANAGEDINSTALLER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MANAGEDINSTALLER"); +pub const SRP_POLICY_MSI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSI"); +pub const SRP_POLICY_NOV2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IGNORESRPV2"); +pub const SRP_POLICY_SCRIPT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCRIPT"); +pub const SRP_POLICY_SHELL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHELL"); +pub const SRP_POLICY_WLDPCONFIGCI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WLDPCONFIGCI"); +pub const SRP_POLICY_WLDPMSI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WLDPMSI"); +pub const SRP_POLICY_WLDPSCRIPT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WLDPSCRIPT"); +pub const SaferIdentityDefault: SAFER_IDENTIFICATION_TYPES = 0i32; +pub const SaferIdentityTypeCertificate: SAFER_IDENTIFICATION_TYPES = 4i32; +pub const SaferIdentityTypeImageHash: SAFER_IDENTIFICATION_TYPES = 2i32; +pub const SaferIdentityTypeImageName: SAFER_IDENTIFICATION_TYPES = 1i32; +pub const SaferIdentityTypeUrlZone: SAFER_IDENTIFICATION_TYPES = 3i32; +pub const SaferObjectAllIdentificationGuids: SAFER_OBJECT_INFO_CLASS = 14i32; +pub const SaferObjectBuiltin: SAFER_OBJECT_INFO_CLASS = 5i32; +pub const SaferObjectDefaultOwner: SAFER_OBJECT_INFO_CLASS = 10i32; +pub const SaferObjectDeletedPrivileges: SAFER_OBJECT_INFO_CLASS = 9i32; +pub const SaferObjectDescription: SAFER_OBJECT_INFO_CLASS = 4i32; +pub const SaferObjectDisableMaxPrivilege: SAFER_OBJECT_INFO_CLASS = 7i32; +pub const SaferObjectDisallowed: SAFER_OBJECT_INFO_CLASS = 6i32; +pub const SaferObjectExtendedError: SAFER_OBJECT_INFO_CLASS = 16i32; +pub const SaferObjectFriendlyName: SAFER_OBJECT_INFO_CLASS = 3i32; +pub const SaferObjectInvertDeletedPrivileges: SAFER_OBJECT_INFO_CLASS = 8i32; +pub const SaferObjectLevelId: SAFER_OBJECT_INFO_CLASS = 1i32; +pub const SaferObjectRestrictedSidsAdded: SAFER_OBJECT_INFO_CLASS = 13i32; +pub const SaferObjectRestrictedSidsInverted: SAFER_OBJECT_INFO_CLASS = 12i32; +pub const SaferObjectScopeId: SAFER_OBJECT_INFO_CLASS = 2i32; +pub const SaferObjectSidsToDisable: SAFER_OBJECT_INFO_CLASS = 11i32; +pub const SaferObjectSingleIdentification: SAFER_OBJECT_INFO_CLASS = 15i32; +pub const SaferPolicyAuthenticodeEnabled: SAFER_POLICY_INFO_CLASS = 7i32; +pub const SaferPolicyDefaultLevel: SAFER_POLICY_INFO_CLASS = 3i32; +pub const SaferPolicyDefaultLevelFlags: SAFER_POLICY_INFO_CLASS = 6i32; +pub const SaferPolicyEnableTransparentEnforcement: SAFER_POLICY_INFO_CLASS = 2i32; +pub const SaferPolicyEvaluateUserScope: SAFER_POLICY_INFO_CLASS = 4i32; +pub const SaferPolicyLevelList: SAFER_POLICY_INFO_CLASS = 1i32; +pub const SaferPolicyScopeFlags: SAFER_POLICY_INFO_CLASS = 5i32; +pub type SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS = u32; +pub type SAFER_IDENTIFICATION_TYPES = i32; +pub type SAFER_OBJECT_INFO_CLASS = i32; +pub type SAFER_POLICY_INFO_CLASS = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct SAFER_CODE_PROPERTIES_V1 { + pub cbSize: u32, + pub dwCheckFlags: u32, + pub ImagePath: ::windows_sys::core::PCWSTR, + pub hImageFileHandle: super::super::Foundation::HANDLE, + pub UrlZoneId: u32, + pub ImageHash: [u8; 64], + pub dwImageHashSize: u32, + pub ImageSize: i64, + pub HashAlgorithm: super::Cryptography::ALG_ID, + pub pByteBlock: *mut u8, + pub hWndParent: super::super::Foundation::HWND, + pub dwWVTUIChoice: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for SAFER_CODE_PROPERTIES_V1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for SAFER_CODE_PROPERTIES_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct SAFER_CODE_PROPERTIES_V2 { + pub cbSize: u32, + pub dwCheckFlags: u32, + pub ImagePath: ::windows_sys::core::PCWSTR, + pub hImageFileHandle: super::super::Foundation::HANDLE, + pub UrlZoneId: u32, + pub ImageHash: [u8; 64], + pub dwImageHashSize: u32, + pub ImageSize: i64, + pub HashAlgorithm: super::Cryptography::ALG_ID, + pub pByteBlock: *mut u8, + pub hWndParent: super::super::Foundation::HWND, + pub dwWVTUIChoice: u32, + pub PackageMoniker: ::windows_sys::core::PCWSTR, + pub PackagePublisher: ::windows_sys::core::PCWSTR, + pub PackageName: ::windows_sys::core::PCWSTR, + pub PackageVersion: u64, + pub PackageIsFramework: super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for SAFER_CODE_PROPERTIES_V2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for SAFER_CODE_PROPERTIES_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct SAFER_HASH_IDENTIFICATION { + pub header: SAFER_IDENTIFICATION_HEADER, + pub Description: [u16; 256], + pub FriendlyName: [u16; 256], + pub HashSize: u32, + pub ImageHash: [u8; 64], + pub HashAlgorithm: super::Cryptography::ALG_ID, + pub ImageSize: i64, + pub dwSaferFlags: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for SAFER_HASH_IDENTIFICATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for SAFER_HASH_IDENTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct SAFER_HASH_IDENTIFICATION2 { + pub hashIdentification: SAFER_HASH_IDENTIFICATION, + pub HashSize: u32, + pub ImageHash: [u8; 64], + pub HashAlgorithm: super::Cryptography::ALG_ID, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for SAFER_HASH_IDENTIFICATION2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for SAFER_HASH_IDENTIFICATION2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SAFER_IDENTIFICATION_HEADER { + pub dwIdentificationType: SAFER_IDENTIFICATION_TYPES, + pub cbStructSize: u32, + pub IdentificationGuid: ::windows_sys::core::GUID, + pub lastModified: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SAFER_IDENTIFICATION_HEADER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SAFER_IDENTIFICATION_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SAFER_PATHNAME_IDENTIFICATION { + pub header: SAFER_IDENTIFICATION_HEADER, + pub Description: [u16; 256], + pub ImageName: ::windows_sys::core::PWSTR, + pub dwSaferFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SAFER_PATHNAME_IDENTIFICATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SAFER_PATHNAME_IDENTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SAFER_URLZONE_IDENTIFICATION { + pub header: SAFER_IDENTIFICATION_HEADER, + pub UrlZoneId: u32, + pub dwSaferFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SAFER_URLZONE_IDENTIFICATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SAFER_URLZONE_IDENTIFICATION { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Authentication/Identity/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Authentication/Identity/mod.rs new file mode 100644 index 000000000..4c1ae2b5a --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Authentication/Identity/mod.rs @@ -0,0 +1,8213 @@ +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn AcceptSecurityContext(phcredential : *const super::super::Credentials:: SecHandle, phcontext : *const super::super::Credentials:: SecHandle, pinput : *const SecBufferDesc, fcontextreq : ASC_REQ_FLAGS, targetdatarep : u32, phnewcontext : *mut super::super::Credentials:: SecHandle, poutput : *mut SecBufferDesc, pfcontextattr : *mut u32, ptsexpiry : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn AcquireCredentialsHandleA(pszprincipal : ::windows_sys::core::PCSTR, pszpackage : ::windows_sys::core::PCSTR, fcredentialuse : SECPKG_CRED, pvlogonid : *const ::core::ffi::c_void, pauthdata : *const ::core::ffi::c_void, pgetkeyfn : SEC_GET_KEY_FN, pvgetkeyargument : *const ::core::ffi::c_void, phcredential : *mut super::super::Credentials:: SecHandle, ptsexpiry : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn AcquireCredentialsHandleW(pszprincipal : ::windows_sys::core::PCWSTR, pszpackage : ::windows_sys::core::PCWSTR, fcredentialuse : SECPKG_CRED, pvlogonid : *const ::core::ffi::c_void, pauthdata : *const ::core::ffi::c_void, pgetkeyfn : SEC_GET_KEY_FN, pvgetkeyargument : *const ::core::ffi::c_void, phcredential : *mut super::super::Credentials:: SecHandle, ptsexpiry : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn AddCredentialsA(hcredentials : *const super::super::Credentials:: SecHandle, pszprincipal : ::windows_sys::core::PCSTR, pszpackage : ::windows_sys::core::PCSTR, fcredentialuse : u32, pauthdata : *const ::core::ffi::c_void, pgetkeyfn : SEC_GET_KEY_FN, pvgetkeyargument : *const ::core::ffi::c_void, ptsexpiry : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn AddCredentialsW(hcredentials : *const super::super::Credentials:: SecHandle, pszprincipal : ::windows_sys::core::PCWSTR, pszpackage : ::windows_sys::core::PCWSTR, fcredentialuse : u32, pauthdata : *const ::core::ffi::c_void, pgetkeyfn : SEC_GET_KEY_FN, pvgetkeyargument : *const ::core::ffi::c_void, ptsexpiry : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn AddSecurityPackageA(pszpackagename : ::windows_sys::core::PCSTR, poptions : *const SECURITY_PACKAGE_OPTIONS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn AddSecurityPackageW(pszpackagename : ::windows_sys::core::PCWSTR, poptions : *const SECURITY_PACKAGE_OPTIONS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn ApplyControlToken(phcontext : *const super::super::Credentials:: SecHandle, pinput : *const SecBufferDesc) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditComputeEffectivePolicyBySid(psid : super::super::super::Foundation:: PSID, psubcategoryguids : *const ::windows_sys::core::GUID, dwpolicycount : u32, ppauditpolicy : *mut *mut AUDIT_POLICY_INFORMATION) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditComputeEffectivePolicyByToken(htokenhandle : super::super::super::Foundation:: HANDLE, psubcategoryguids : *const ::windows_sys::core::GUID, dwpolicycount : u32, ppauditpolicy : *mut *mut AUDIT_POLICY_INFORMATION) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditEnumerateCategories(ppauditcategoriesarray : *mut *mut ::windows_sys::core::GUID, pdwcountreturned : *mut u32) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditEnumeratePerUserPolicy(ppauditsidarray : *mut *mut POLICY_AUDIT_SID_ARRAY) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditEnumerateSubCategories(pauditcategoryguid : *const ::windows_sys::core::GUID, bretrieveallsubcategories : super::super::super::Foundation:: BOOLEAN, ppauditsubcategoriesarray : *mut *mut ::windows_sys::core::GUID, pdwcountreturned : *mut u32) -> super::super::super::Foundation:: BOOLEAN); +::windows_targets::link!("advapi32.dll" "system" fn AuditFree(buffer : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditLookupCategoryGuidFromCategoryId(auditcategoryid : POLICY_AUDIT_EVENT_TYPE, pauditcategoryguid : *mut ::windows_sys::core::GUID) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditLookupCategoryIdFromCategoryGuid(pauditcategoryguid : *const ::windows_sys::core::GUID, pauditcategoryid : *mut POLICY_AUDIT_EVENT_TYPE) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditLookupCategoryNameA(pauditcategoryguid : *const ::windows_sys::core::GUID, ppszcategoryname : *mut ::windows_sys::core::PSTR) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditLookupCategoryNameW(pauditcategoryguid : *const ::windows_sys::core::GUID, ppszcategoryname : *mut ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditLookupSubCategoryNameA(pauditsubcategoryguid : *const ::windows_sys::core::GUID, ppszsubcategoryname : *mut ::windows_sys::core::PSTR) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditLookupSubCategoryNameW(pauditsubcategoryguid : *const ::windows_sys::core::GUID, ppszsubcategoryname : *mut ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditQueryGlobalSaclA(objecttypename : ::windows_sys::core::PCSTR, acl : *mut *mut super::super:: ACL) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditQueryGlobalSaclW(objecttypename : ::windows_sys::core::PCWSTR, acl : *mut *mut super::super:: ACL) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditQueryPerUserPolicy(psid : super::super::super::Foundation:: PSID, psubcategoryguids : *const ::windows_sys::core::GUID, dwpolicycount : u32, ppauditpolicy : *mut *mut AUDIT_POLICY_INFORMATION) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditQuerySecurity(securityinformation : super::super:: OBJECT_SECURITY_INFORMATION, ppsecuritydescriptor : *mut super::super:: PSECURITY_DESCRIPTOR) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditQuerySystemPolicy(psubcategoryguids : *const ::windows_sys::core::GUID, dwpolicycount : u32, ppauditpolicy : *mut *mut AUDIT_POLICY_INFORMATION) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditSetGlobalSaclA(objecttypename : ::windows_sys::core::PCSTR, acl : *const super::super:: ACL) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditSetGlobalSaclW(objecttypename : ::windows_sys::core::PCWSTR, acl : *const super::super:: ACL) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditSetPerUserPolicy(psid : super::super::super::Foundation:: PSID, pauditpolicy : *const AUDIT_POLICY_INFORMATION, dwpolicycount : u32) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditSetSecurity(securityinformation : super::super:: OBJECT_SECURITY_INFORMATION, psecuritydescriptor : super::super:: PSECURITY_DESCRIPTOR) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuditSetSystemPolicy(pauditpolicy : *const AUDIT_POLICY_INFORMATION, dwpolicycount : u32) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChangeAccountPasswordA(pszpackagename : *const i8, pszdomainname : *const i8, pszaccountname : *const i8, pszoldpassword : *const i8, psznewpassword : *const i8, bimpersonating : super::super::super::Foundation:: BOOLEAN, dwreserved : u32, poutput : *mut SecBufferDesc) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChangeAccountPasswordW(pszpackagename : *const u16, pszdomainname : *const u16, pszaccountname : *const u16, pszoldpassword : *const u16, psznewpassword : *const u16, bimpersonating : super::super::super::Foundation:: BOOLEAN, dwreserved : u32, poutput : *mut SecBufferDesc) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn CompleteAuthToken(phcontext : *const super::super::Credentials:: SecHandle, ptoken : *const SecBufferDesc) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] fn CredMarshalTargetInfo(intargetinfo : *const super::super::Credentials:: CREDENTIAL_TARGET_INFORMATIONW, buffer : *mut *mut u16, buffersize : *mut u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] fn CredUnmarshalTargetInfo(buffer : *const u16, buffersize : u32, rettargetinfo : *mut *mut super::super::Credentials:: CREDENTIAL_TARGET_INFORMATIONW, retactualsize : *mut u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn DecryptMessage(phcontext : *const super::super::Credentials:: SecHandle, pmessage : *const SecBufferDesc, messageseqno : u32, pfqop : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn DeleteSecurityContext(phcontext : *const super::super::Credentials:: SecHandle) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn DeleteSecurityPackageA(pszpackagename : ::windows_sys::core::PCSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn DeleteSecurityPackageW(pszpackagename : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn EncryptMessage(phcontext : *const super::super::Credentials:: SecHandle, fqop : u32, pmessage : *const SecBufferDesc, messageseqno : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn EnumerateSecurityPackagesA(pcpackages : *mut u32, pppackageinfo : *mut *mut SecPkgInfoA) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn EnumerateSecurityPackagesW(pcpackages : *mut u32, pppackageinfo : *mut *mut SecPkgInfoW) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn ExportSecurityContext(phcontext : *const super::super::Credentials:: SecHandle, fflags : EXPORT_SECURITY_CONTEXT_FLAGS, ppackedcontext : *mut SecBuffer, ptoken : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn FreeContextBuffer(pvcontextbuffer : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn FreeCredentialsHandle(phcredential : *const super::super::Credentials:: SecHandle) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetComputerObjectNameA(nameformat : EXTENDED_NAME_FORMAT, lpnamebuffer : ::windows_sys::core::PSTR, nsize : *mut u32) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetComputerObjectNameW(nameformat : EXTENDED_NAME_FORMAT, lpnamebuffer : ::windows_sys::core::PWSTR, nsize : *mut u32) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUserNameExA(nameformat : EXTENDED_NAME_FORMAT, lpnamebuffer : ::windows_sys::core::PSTR, nsize : *mut u32) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUserNameExW(nameformat : EXTENDED_NAME_FORMAT, lpnamebuffer : ::windows_sys::core::PWSTR, nsize : *mut u32) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn ImpersonateSecurityContext(phcontext : *const super::super::Credentials:: SecHandle) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn ImportSecurityContextA(pszpackage : ::windows_sys::core::PCSTR, ppackedcontext : *const SecBuffer, token : *const ::core::ffi::c_void, phcontext : *mut super::super::Credentials:: SecHandle) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn ImportSecurityContextW(pszpackage : ::windows_sys::core::PCWSTR, ppackedcontext : *const SecBuffer, token : *const ::core::ffi::c_void, phcontext : *mut super::super::Credentials:: SecHandle) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] fn InitSecurityInterfaceA() -> *mut SecurityFunctionTableA); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] fn InitSecurityInterfaceW() -> *mut SecurityFunctionTableW); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn InitializeSecurityContextA(phcredential : *const super::super::Credentials:: SecHandle, phcontext : *const super::super::Credentials:: SecHandle, psztargetname : *const i8, fcontextreq : ISC_REQ_FLAGS, reserved1 : u32, targetdatarep : u32, pinput : *const SecBufferDesc, reserved2 : u32, phnewcontext : *mut super::super::Credentials:: SecHandle, poutput : *mut SecBufferDesc, pfcontextattr : *mut u32, ptsexpiry : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn InitializeSecurityContextW(phcredential : *const super::super::Credentials:: SecHandle, phcontext : *const super::super::Credentials:: SecHandle, psztargetname : *const u16, fcontextreq : ISC_REQ_FLAGS, reserved1 : u32, targetdatarep : u32, pinput : *const SecBufferDesc, reserved2 : u32, phnewcontext : *mut super::super::Credentials:: SecHandle, poutput : *mut SecBufferDesc, pfcontextattr : *mut u32, ptsexpiry : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaAddAccountRights(policyhandle : LSA_HANDLE, accountsid : super::super::super::Foundation:: PSID, userrights : *const LSA_UNICODE_STRING, countofrights : u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaCallAuthenticationPackage(lsahandle : super::super::super::Foundation:: HANDLE, authenticationpackage : u32, protocolsubmitbuffer : *const ::core::ffi::c_void, submitbufferlength : u32, protocolreturnbuffer : *mut *mut ::core::ffi::c_void, returnbufferlength : *mut u32, protocolstatus : *mut i32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaClose(objecthandle : LSA_HANDLE) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaConnectUntrusted(lsahandle : *mut super::super::super::Foundation:: HANDLE) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaCreateTrustedDomainEx(policyhandle : LSA_HANDLE, trusteddomaininformation : *const TRUSTED_DOMAIN_INFORMATION_EX, authenticationinformation : *const TRUSTED_DOMAIN_AUTH_INFORMATION, desiredaccess : u32, trusteddomainhandle : *mut LSA_HANDLE) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaDeleteTrustedDomain(policyhandle : LSA_HANDLE, trusteddomainsid : super::super::super::Foundation:: PSID) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaDeregisterLogonProcess(lsahandle : super::super::super::Foundation:: HANDLE) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaEnumerateAccountRights(policyhandle : LSA_HANDLE, accountsid : super::super::super::Foundation:: PSID, userrights : *mut *mut LSA_UNICODE_STRING, countofrights : *mut u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaEnumerateAccountsWithUserRight(policyhandle : LSA_HANDLE, userright : *const LSA_UNICODE_STRING, buffer : *mut *mut ::core::ffi::c_void, countreturned : *mut u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaEnumerateLogonSessions(logonsessioncount : *mut u32, logonsessionlist : *mut *mut super::super::super::Foundation:: LUID) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaEnumerateTrustedDomains(policyhandle : LSA_HANDLE, enumerationcontext : *mut u32, buffer : *mut *mut ::core::ffi::c_void, preferedmaximumlength : u32, countreturned : *mut u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaEnumerateTrustedDomainsEx(policyhandle : LSA_HANDLE, enumerationcontext : *mut u32, buffer : *mut *mut ::core::ffi::c_void, preferedmaximumlength : u32, countreturned : *mut u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaFreeMemory(buffer : *const ::core::ffi::c_void) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaFreeReturnBuffer(buffer : *const ::core::ffi::c_void) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaGetAppliedCAPIDs(systemname : *const LSA_UNICODE_STRING, capids : *mut *mut super::super::super::Foundation:: PSID, capidcount : *mut u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaGetLogonSessionData(logonid : *const super::super::super::Foundation:: LUID, pplogonsessiondata : *mut *mut SECURITY_LOGON_SESSION_DATA) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaLogonUser(lsahandle : super::super::super::Foundation:: HANDLE, originname : *const LSA_STRING, logontype : SECURITY_LOGON_TYPE, authenticationpackage : u32, authenticationinformation : *const ::core::ffi::c_void, authenticationinformationlength : u32, localgroups : *const super::super:: TOKEN_GROUPS, sourcecontext : *const super::super:: TOKEN_SOURCE, profilebuffer : *mut *mut ::core::ffi::c_void, profilebufferlength : *mut u32, logonid : *mut super::super::super::Foundation:: LUID, token : *mut super::super::super::Foundation:: HANDLE, quotas : *mut super::super:: QUOTA_LIMITS, substatus : *mut i32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaLookupAuthenticationPackage(lsahandle : super::super::super::Foundation:: HANDLE, packagename : *const LSA_STRING, authenticationpackage : *mut u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaLookupNames(policyhandle : LSA_HANDLE, count : u32, names : *const LSA_UNICODE_STRING, referenceddomains : *mut *mut LSA_REFERENCED_DOMAIN_LIST, sids : *mut *mut LSA_TRANSLATED_SID) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaLookupNames2(policyhandle : LSA_HANDLE, flags : u32, count : u32, names : *const LSA_UNICODE_STRING, referenceddomains : *mut *mut LSA_REFERENCED_DOMAIN_LIST, sids : *mut *mut LSA_TRANSLATED_SID2) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaLookupSids(policyhandle : LSA_HANDLE, count : u32, sids : *const super::super::super::Foundation:: PSID, referenceddomains : *mut *mut LSA_REFERENCED_DOMAIN_LIST, names : *mut *mut LSA_TRANSLATED_NAME) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaLookupSids2(policyhandle : LSA_HANDLE, lookupoptions : u32, count : u32, sids : *const super::super::super::Foundation:: PSID, referenceddomains : *mut *mut LSA_REFERENCED_DOMAIN_LIST, names : *mut *mut LSA_TRANSLATED_NAME) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaNtStatusToWinError(status : super::super::super::Foundation:: NTSTATUS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaOpenPolicy(systemname : *const LSA_UNICODE_STRING, objectattributes : *const LSA_OBJECT_ATTRIBUTES, desiredaccess : u32, policyhandle : *mut LSA_HANDLE) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaOpenTrustedDomainByName(policyhandle : LSA_HANDLE, trusteddomainname : *const LSA_UNICODE_STRING, desiredaccess : u32, trusteddomainhandle : *mut LSA_HANDLE) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaQueryCAPs(capids : *const super::super::super::Foundation:: PSID, capidcount : u32, caps : *mut *mut CENTRAL_ACCESS_POLICY, capcount : *mut u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaQueryDomainInformationPolicy(policyhandle : LSA_HANDLE, informationclass : POLICY_DOMAIN_INFORMATION_CLASS, buffer : *mut *mut ::core::ffi::c_void) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaQueryForestTrustInformation(policyhandle : LSA_HANDLE, trusteddomainname : *const LSA_UNICODE_STRING, foresttrustinfo : *mut *mut LSA_FOREST_TRUST_INFORMATION) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaQueryForestTrustInformation2(policyhandle : LSA_HANDLE, trusteddomainname : *const LSA_UNICODE_STRING, highestrecordtype : LSA_FOREST_TRUST_RECORD_TYPE, foresttrustinfo : *mut *mut LSA_FOREST_TRUST_INFORMATION2) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaQueryInformationPolicy(policyhandle : LSA_HANDLE, informationclass : POLICY_INFORMATION_CLASS, buffer : *mut *mut ::core::ffi::c_void) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaQueryTrustedDomainInfo(policyhandle : LSA_HANDLE, trusteddomainsid : super::super::super::Foundation:: PSID, informationclass : TRUSTED_INFORMATION_CLASS, buffer : *mut *mut ::core::ffi::c_void) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaQueryTrustedDomainInfoByName(policyhandle : LSA_HANDLE, trusteddomainname : *const LSA_UNICODE_STRING, informationclass : TRUSTED_INFORMATION_CLASS, buffer : *mut *mut ::core::ffi::c_void) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaRegisterLogonProcess(logonprocessname : *const LSA_STRING, lsahandle : *mut super::super::super::Foundation:: HANDLE, securitymode : *mut u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaRegisterPolicyChangeNotification(informationclass : POLICY_NOTIFICATION_INFORMATION_CLASS, notificationeventhandle : super::super::super::Foundation:: HANDLE) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaRemoveAccountRights(policyhandle : LSA_HANDLE, accountsid : super::super::super::Foundation:: PSID, allrights : super::super::super::Foundation:: BOOLEAN, userrights : *const LSA_UNICODE_STRING, countofrights : u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaRetrievePrivateData(policyhandle : LSA_HANDLE, keyname : *const LSA_UNICODE_STRING, privatedata : *mut *mut LSA_UNICODE_STRING) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaSetCAPs(capdns : *const LSA_UNICODE_STRING, capdncount : u32, flags : u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaSetDomainInformationPolicy(policyhandle : LSA_HANDLE, informationclass : POLICY_DOMAIN_INFORMATION_CLASS, buffer : *const ::core::ffi::c_void) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaSetForestTrustInformation(policyhandle : LSA_HANDLE, trusteddomainname : *const LSA_UNICODE_STRING, foresttrustinfo : *const LSA_FOREST_TRUST_INFORMATION, checkonly : super::super::super::Foundation:: BOOLEAN, collisioninfo : *mut *mut LSA_FOREST_TRUST_COLLISION_INFORMATION) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaSetForestTrustInformation2(policyhandle : LSA_HANDLE, trusteddomainname : *const LSA_UNICODE_STRING, highestrecordtype : LSA_FOREST_TRUST_RECORD_TYPE, foresttrustinfo : *const LSA_FOREST_TRUST_INFORMATION2, checkonly : super::super::super::Foundation:: BOOLEAN, collisioninfo : *mut *mut LSA_FOREST_TRUST_COLLISION_INFORMATION) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaSetInformationPolicy(policyhandle : LSA_HANDLE, informationclass : POLICY_INFORMATION_CLASS, buffer : *const ::core::ffi::c_void) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaSetTrustedDomainInfoByName(policyhandle : LSA_HANDLE, trusteddomainname : *const LSA_UNICODE_STRING, informationclass : TRUSTED_INFORMATION_CLASS, buffer : *const ::core::ffi::c_void) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaSetTrustedDomainInformation(policyhandle : LSA_HANDLE, trusteddomainsid : super::super::super::Foundation:: PSID, informationclass : TRUSTED_INFORMATION_CLASS, buffer : *const ::core::ffi::c_void) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaStorePrivateData(policyhandle : LSA_HANDLE, keyname : *const LSA_UNICODE_STRING, privatedata : *const LSA_UNICODE_STRING) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsaUnregisterPolicyChangeNotification(informationclass : POLICY_NOTIFICATION_INFORMATION_CLASS, notificationeventhandle : super::super::super::Foundation:: HANDLE) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn MakeSignature(phcontext : *const super::super::Credentials:: SecHandle, fqop : u32, pmessage : *const SecBufferDesc, messageseqno : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn QueryContextAttributesA(phcontext : *const super::super::Credentials:: SecHandle, ulattribute : SECPKG_ATTR, pbuffer : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("sspicli.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn QueryContextAttributesExA(phcontext : *const super::super::Credentials:: SecHandle, ulattribute : SECPKG_ATTR, pbuffer : *mut ::core::ffi::c_void, cbbuffer : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("sspicli.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn QueryContextAttributesExW(phcontext : *const super::super::Credentials:: SecHandle, ulattribute : SECPKG_ATTR, pbuffer : *mut ::core::ffi::c_void, cbbuffer : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn QueryContextAttributesW(phcontext : *const super::super::Credentials:: SecHandle, ulattribute : SECPKG_ATTR, pbuffer : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn QueryCredentialsAttributesA(phcredential : *const super::super::Credentials:: SecHandle, ulattribute : u32, pbuffer : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("sspicli.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn QueryCredentialsAttributesExA(phcredential : *const super::super::Credentials:: SecHandle, ulattribute : u32, pbuffer : *mut ::core::ffi::c_void, cbbuffer : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("sspicli.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn QueryCredentialsAttributesExW(phcredential : *const super::super::Credentials:: SecHandle, ulattribute : u32, pbuffer : *mut ::core::ffi::c_void, cbbuffer : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn QueryCredentialsAttributesW(phcredential : *const super::super::Credentials:: SecHandle, ulattribute : u32, pbuffer : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn QuerySecurityContextToken(phcontext : *const super::super::Credentials:: SecHandle, token : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn QuerySecurityPackageInfoA(pszpackagename : ::windows_sys::core::PCSTR, pppackageinfo : *mut *mut SecPkgInfoA) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn QuerySecurityPackageInfoW(pszpackagename : ::windows_sys::core::PCWSTR, pppackageinfo : *mut *mut SecPkgInfoW) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn RevertSecurityContext(phcontext : *const super::super::Credentials:: SecHandle) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" "SystemFunction041" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDecryptMemory(memory : *mut ::core::ffi::c_void, memorysize : u32, optionflags : u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" "SystemFunction040" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlEncryptMemory(memory : *mut ::core::ffi::c_void, memorysize : u32, optionflags : u32) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" "SystemFunction036" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlGenRandom(randombuffer : *mut ::core::ffi::c_void, randombufferlength : u32) -> super::super::super::Foundation:: BOOLEAN); +::windows_targets::link!("slcext.dll" "system" fn SLAcquireGenuineTicket(ppticketblob : *mut *mut ::core::ffi::c_void, pcbticketblob : *mut u32, pwsztemplateid : ::windows_sys::core::PCWSTR, pwszserverurl : ::windows_sys::core::PCWSTR, pwszclienttoken : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slcext.dll" "system" fn SLActivateProduct(hslc : *const ::core::ffi::c_void, pproductskuid : *const ::windows_sys::core::GUID, cbappspecificdata : u32, pvappspecificdata : *const ::core::ffi::c_void, pactivationinfo : *const SL_ACTIVATION_INFO_HEADER, pwszproxyserver : ::windows_sys::core::PCWSTR, wproxyport : u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLClose(hslc : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLConsumeRight(hslc : *const ::core::ffi::c_void, pappid : *const ::windows_sys::core::GUID, pproductskuid : *const ::windows_sys::core::GUID, pwszrightname : ::windows_sys::core::PCWSTR, pvreserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLDepositOfflineConfirmationId(hslc : *const ::core::ffi::c_void, pproductskuid : *const ::windows_sys::core::GUID, pwszinstallationid : ::windows_sys::core::PCWSTR, pwszconfirmationid : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLDepositOfflineConfirmationIdEx(hslc : *const ::core::ffi::c_void, pproductskuid : *const ::windows_sys::core::GUID, pactivationinfo : *const SL_ACTIVATION_INFO_HEADER, pwszinstallationid : ::windows_sys::core::PCWSTR, pwszconfirmationid : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLFireEvent(hslc : *const ::core::ffi::c_void, pwszeventid : ::windows_sys::core::PCWSTR, papplicationid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGenerateOfflineInstallationId(hslc : *const ::core::ffi::c_void, pproductskuid : *const ::windows_sys::core::GUID, ppwszinstallationid : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGenerateOfflineInstallationIdEx(hslc : *const ::core::ffi::c_void, pproductskuid : *const ::windows_sys::core::GUID, pactivationinfo : *const SL_ACTIVATION_INFO_HEADER, ppwszinstallationid : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetApplicationInformation(hslc : *const ::core::ffi::c_void, papplicationid : *const ::windows_sys::core::GUID, pwszvaluename : ::windows_sys::core::PCWSTR, pedatatype : *mut SLDATATYPE, pcbvalue : *mut u32, ppbvalue : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetGenuineInformation(pqueryid : *const ::windows_sys::core::GUID, pwszvaluename : ::windows_sys::core::PCWSTR, pedatatype : *mut SLDATATYPE, pcbvalue : *mut u32, ppbvalue : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetInstalledProductKeyIds(hslc : *const ::core::ffi::c_void, pproductskuid : *const ::windows_sys::core::GUID, pnproductkeyids : *mut u32, ppproductkeyids : *mut *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetLicense(hslc : *const ::core::ffi::c_void, plicensefileid : *const ::windows_sys::core::GUID, pcblicensefile : *mut u32, ppblicensefile : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetLicenseFileId(hslc : *const ::core::ffi::c_void, cblicenseblob : u32, pblicenseblob : *const u8, plicensefileid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetLicenseInformation(hslc : *const ::core::ffi::c_void, psllicenseid : *const ::windows_sys::core::GUID, pwszvaluename : ::windows_sys::core::PCWSTR, pedatatype : *mut SLDATATYPE, pcbvalue : *mut u32, ppbvalue : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetLicensingStatusInformation(hslc : *const ::core::ffi::c_void, pappid : *const ::windows_sys::core::GUID, pproductskuid : *const ::windows_sys::core::GUID, pwszrightname : ::windows_sys::core::PCWSTR, pnstatuscount : *mut u32, pplicensingstatus : *mut *mut SL_LICENSING_STATUS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetPKeyId(hslc : *const ::core::ffi::c_void, pwszpkeyalgorithm : ::windows_sys::core::PCWSTR, pwszpkeystring : ::windows_sys::core::PCWSTR, cbpkeyspecificdata : u32, pbpkeyspecificdata : *const u8, ppkeyid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetPKeyInformation(hslc : *const ::core::ffi::c_void, ppkeyid : *const ::windows_sys::core::GUID, pwszvaluename : ::windows_sys::core::PCWSTR, pedatatype : *mut SLDATATYPE, pcbvalue : *mut u32, ppbvalue : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetPolicyInformation(hslc : *const ::core::ffi::c_void, pwszvaluename : ::windows_sys::core::PCWSTR, pedatatype : *mut SLDATATYPE, pcbvalue : *mut u32, ppbvalue : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetPolicyInformationDWORD(hslc : *const ::core::ffi::c_void, pwszvaluename : ::windows_sys::core::PCWSTR, pdwvalue : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetProductSkuInformation(hslc : *const ::core::ffi::c_void, pproductskuid : *const ::windows_sys::core::GUID, pwszvaluename : ::windows_sys::core::PCWSTR, pedatatype : *mut SLDATATYPE, pcbvalue : *mut u32, ppbvalue : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slcext.dll" "system" fn SLGetReferralInformation(hslc : *const ::core::ffi::c_void, ereferraltype : SLREFERRALTYPE, pskuorappid : *const ::windows_sys::core::GUID, pwszvaluename : ::windows_sys::core::PCWSTR, ppwszvalue : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetSLIDList(hslc : *const ::core::ffi::c_void, equeryidtype : SLIDTYPE, pqueryid : *const ::windows_sys::core::GUID, ereturnidtype : SLIDTYPE, pnreturnids : *mut u32, ppreturnids : *mut *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slcext.dll" "system" fn SLGetServerStatus(pwszserverurl : ::windows_sys::core::PCWSTR, pwszacquisitiontype : ::windows_sys::core::PCWSTR, pwszproxyserver : ::windows_sys::core::PCWSTR, wproxyport : u16, phrstatus : *mut ::windows_sys::core::HRESULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetServiceInformation(hslc : *const ::core::ffi::c_void, pwszvaluename : ::windows_sys::core::PCWSTR, pedatatype : *mut SLDATATYPE, pcbvalue : *mut u32, ppbvalue : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetWindowsInformation(pwszvaluename : ::windows_sys::core::PCWSTR, pedatatype : *mut SLDATATYPE, pcbvalue : *mut u32, ppbvalue : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLGetWindowsInformationDWORD(pwszvaluename : ::windows_sys::core::PCWSTR, pdwvalue : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLInstallLicense(hslc : *const ::core::ffi::c_void, cblicenseblob : u32, pblicenseblob : *const u8, plicensefileid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLInstallProofOfPurchase(hslc : *const ::core::ffi::c_void, pwszpkeyalgorithm : ::windows_sys::core::PCWSTR, pwszpkeystring : ::windows_sys::core::PCWSTR, cbpkeyspecificdata : u32, pbpkeyspecificdata : *const u8, ppkeyid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slwga.dll" "system" fn SLIsGenuineLocal(pappid : *const ::windows_sys::core::GUID, pgenuinestate : *mut SL_GENUINE_STATE, puioptions : *mut SL_NONGENUINE_UI_OPTIONS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLOpen(phslc : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-slapi-l1-1-0.dll" "system" fn SLQueryLicenseValueFromApp(valuename : ::windows_sys::core::PCWSTR, valuetype : *mut u32, databuffer : *mut ::core::ffi::c_void, datasize : u32, resultdatasize : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("slc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SLRegisterEvent(hslc : *const ::core::ffi::c_void, pwszeventid : ::windows_sys::core::PCWSTR, papplicationid : *const ::windows_sys::core::GUID, hevent : super::super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLSetCurrentProductKey(hslc : *const ::core::ffi::c_void, pproductskuid : *const ::windows_sys::core::GUID, pproductkeyid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLSetGenuineInformation(pqueryid : *const ::windows_sys::core::GUID, pwszvaluename : ::windows_sys::core::PCWSTR, edatatype : SLDATATYPE, cbvalue : u32, pbvalue : *const u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLUninstallLicense(hslc : *const ::core::ffi::c_void, plicensefileid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("slc.dll" "system" fn SLUninstallProofOfPurchase(hslc : *const ::core::ffi::c_void, ppkeyid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("slc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SLUnregisterEvent(hslc : *const ::core::ffi::c_void, pwszeventid : ::windows_sys::core::PCWSTR, papplicationid : *const ::windows_sys::core::GUID, hevent : super::super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn SaslAcceptSecurityContext(phcredential : *const super::super::Credentials:: SecHandle, phcontext : *const super::super::Credentials:: SecHandle, pinput : *const SecBufferDesc, fcontextreq : ASC_REQ_FLAGS, targetdatarep : u32, phnewcontext : *mut super::super::Credentials:: SecHandle, poutput : *mut SecBufferDesc, pfcontextattr : *mut u32, ptsexpiry : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SaslEnumerateProfilesA(profilelist : *mut ::windows_sys::core::PSTR, profilecount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SaslEnumerateProfilesW(profilelist : *mut ::windows_sys::core::PWSTR, profilecount : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn SaslGetContextOption(contexthandle : *const super::super::Credentials:: SecHandle, option : u32, value : *mut ::core::ffi::c_void, size : u32, needed : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SaslGetProfilePackageA(profilename : ::windows_sys::core::PCSTR, packageinfo : *mut *mut SecPkgInfoA) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SaslGetProfilePackageW(profilename : ::windows_sys::core::PCWSTR, packageinfo : *mut *mut SecPkgInfoW) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SaslIdentifyPackageA(pinput : *const SecBufferDesc, packageinfo : *mut *mut SecPkgInfoA) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SaslIdentifyPackageW(pinput : *const SecBufferDesc, packageinfo : *mut *mut SecPkgInfoW) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn SaslInitializeSecurityContextA(phcredential : *const super::super::Credentials:: SecHandle, phcontext : *const super::super::Credentials:: SecHandle, psztargetname : ::windows_sys::core::PCSTR, fcontextreq : ISC_REQ_FLAGS, reserved1 : u32, targetdatarep : u32, pinput : *const SecBufferDesc, reserved2 : u32, phnewcontext : *mut super::super::Credentials:: SecHandle, poutput : *mut SecBufferDesc, pfcontextattr : *mut u32, ptsexpiry : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn SaslInitializeSecurityContextW(phcredential : *const super::super::Credentials:: SecHandle, phcontext : *const super::super::Credentials:: SecHandle, psztargetname : ::windows_sys::core::PCWSTR, fcontextreq : ISC_REQ_FLAGS, reserved1 : u32, targetdatarep : u32, pinput : *const SecBufferDesc, reserved2 : u32, phnewcontext : *mut super::super::Credentials:: SecHandle, poutput : *mut SecBufferDesc, pfcontextattr : *mut u32, ptsexpiry : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn SaslSetContextOption(contexthandle : *const super::super::Credentials:: SecHandle, option : u32, value : *const ::core::ffi::c_void, size : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("sas.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendSAS(asuser : super::super::super::Foundation:: BOOL) -> ()); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn SetContextAttributesA(phcontext : *const super::super::Credentials:: SecHandle, ulattribute : SECPKG_ATTR, pbuffer : *const ::core::ffi::c_void, cbbuffer : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn SetContextAttributesW(phcontext : *const super::super::Credentials:: SecHandle, ulattribute : SECPKG_ATTR, pbuffer : *const ::core::ffi::c_void, cbbuffer : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn SetCredentialsAttributesA(phcredential : *const super::super::Credentials:: SecHandle, ulattribute : u32, pbuffer : *const ::core::ffi::c_void, cbbuffer : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn SetCredentialsAttributesW(phcredential : *const super::super::Credentials:: SecHandle, ulattribute : u32, pbuffer : *const ::core::ffi::c_void, cbbuffer : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("schannel.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn SslCrackCertificate(pbcertificate : *mut u8, cbcertificate : u32, dwflags : u32, ppcertificate : *mut *mut X509Certificate) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("schannel.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn SslDeserializeCertificateStore(serializedcertificatestore : super::super::Cryptography:: CRYPT_INTEGER_BLOB, ppcertcontext : *mut *mut super::super::Cryptography:: CERT_CONTEXT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("schannel.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SslEmptyCacheA(psztargetname : ::windows_sys::core::PCSTR, dwflags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("schannel.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SslEmptyCacheW(psztargetname : ::windows_sys::core::PCWSTR, dwflags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("schannel.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn SslFreeCertificate(pcertificate : *mut X509Certificate) -> ()); +::windows_targets::link!("schannel.dll" "system" fn SslGenerateRandomBits(prandomdata : *mut u8, crandomdata : i32) -> ()); +::windows_targets::link!("schannel.dll" "system" fn SslGetExtensions(clienthello : *const u8, clienthellobytesize : u32, genericextensions : *mut SCH_EXTENSION_DATA, genericextensionscount : u8, bytestoread : *mut u32, flags : SchGetExtensionsOptions) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("schannel.dll" "system" fn SslGetMaximumKeySize(reserved : u32) -> u32); +::windows_targets::link!("schannel.dll" "system" fn SslGetServerIdentity(clienthello : *const u8, clienthellosize : u32, serveridentity : *mut *mut u8, serveridentitysize : *mut u32, flags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SspiCompareAuthIdentities(authidentity1 : *const ::core::ffi::c_void, authidentity2 : *const ::core::ffi::c_void, samesupplieduser : *mut super::super::super::Foundation:: BOOLEAN, samesuppliedidentity : *mut super::super::super::Foundation:: BOOLEAN) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SspiCopyAuthIdentity(authdata : *const ::core::ffi::c_void, authdatacopy : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SspiDecryptAuthIdentity(encryptedauthdata : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("sspicli.dll" "system" fn SspiDecryptAuthIdentityEx(options : u32, encryptedauthdata : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SspiEncodeAuthIdentityAsStrings(pauthidentity : *const ::core::ffi::c_void, ppszusername : *mut ::windows_sys::core::PCWSTR, ppszdomainname : *mut ::windows_sys::core::PCWSTR, ppszpackedcredentialsstring : *mut ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SspiEncodeStringsAsAuthIdentity(pszusername : ::windows_sys::core::PCWSTR, pszdomainname : ::windows_sys::core::PCWSTR, pszpackedcredentialsstring : ::windows_sys::core::PCWSTR, ppauthidentity : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SspiEncryptAuthIdentity(authdata : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("sspicli.dll" "system" fn SspiEncryptAuthIdentityEx(options : u32, authdata : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SspiExcludePackage(authidentity : *const ::core::ffi::c_void, pszpackagename : ::windows_sys::core::PCWSTR, ppnewauthidentity : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SspiFreeAuthIdentity(authdata : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("secur32.dll" "system" fn SspiGetTargetHostName(psztargetname : ::windows_sys::core::PCWSTR, pszhostname : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SspiIsAuthIdentityEncrypted(encryptedauthdata : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SspiIsPromptingNeeded(errororntstatus : u32) -> super::super::super::Foundation:: BOOLEAN); +::windows_targets::link!("secur32.dll" "system" fn SspiLocalFree(databuffer : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("secur32.dll" "system" fn SspiMarshalAuthIdentity(authidentity : *const ::core::ffi::c_void, authidentitylength : *mut u32, authidentitybytearray : *mut *mut i8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SspiPrepareForCredRead(authidentity : *const ::core::ffi::c_void, psztargetname : ::windows_sys::core::PCWSTR, pcredmancredentialtype : *mut u32, ppszcredmantargetname : *mut ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SspiPrepareForCredWrite(authidentity : *const ::core::ffi::c_void, psztargetname : ::windows_sys::core::PCWSTR, pcredmancredentialtype : *mut u32, ppszcredmantargetname : *mut ::windows_sys::core::PCWSTR, ppszcredmanusername : *mut ::windows_sys::core::PCWSTR, ppcredentialblob : *mut *mut u8, pcredentialblobsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("credui.dll" "system" fn SspiPromptForCredentialsA(psztargetname : ::windows_sys::core::PCSTR, puiinfo : *const ::core::ffi::c_void, dwautherror : u32, pszpackage : ::windows_sys::core::PCSTR, pinputauthidentity : *const ::core::ffi::c_void, ppauthidentity : *mut *mut ::core::ffi::c_void, pfsave : *mut i32, dwflags : u32) -> u32); +::windows_targets::link!("credui.dll" "system" fn SspiPromptForCredentialsW(psztargetname : ::windows_sys::core::PCWSTR, puiinfo : *const ::core::ffi::c_void, dwautherror : u32, pszpackage : ::windows_sys::core::PCWSTR, pinputauthidentity : *const ::core::ffi::c_void, ppauthidentity : *mut *mut ::core::ffi::c_void, pfsave : *mut i32, dwflags : u32) -> u32); +::windows_targets::link!("secur32.dll" "system" fn SspiUnmarshalAuthIdentity(authidentitylength : u32, authidentitybytearray : ::windows_sys::core::PCSTR, ppauthidentity : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SspiValidateAuthIdentity(authdata : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("secur32.dll" "system" fn SspiZeroAuthIdentity(authdata : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("tokenbinding.dll" "system" fn TokenBindingDeleteAllBindings() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("tokenbinding.dll" "system" fn TokenBindingDeleteBinding(targeturl : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("tokenbinding.dll" "system" fn TokenBindingGenerateBinding(keytype : TOKENBINDING_KEY_PARAMETERS_TYPE, targeturl : ::windows_sys::core::PCWSTR, bindingtype : TOKENBINDING_TYPE, tlsekm : *const ::core::ffi::c_void, tlsekmsize : u32, extensionformat : TOKENBINDING_EXTENSION_FORMAT, extensiondata : *const ::core::ffi::c_void, tokenbinding : *mut *mut ::core::ffi::c_void, tokenbindingsize : *mut u32, resultdata : *mut *mut TOKENBINDING_RESULT_DATA) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("tokenbinding.dll" "system" fn TokenBindingGenerateID(keytype : TOKENBINDING_KEY_PARAMETERS_TYPE, publickey : *const ::core::ffi::c_void, publickeysize : u32, resultdata : *mut *mut TOKENBINDING_RESULT_DATA) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("tokenbinding.dll" "system" fn TokenBindingGenerateIDForUri(keytype : TOKENBINDING_KEY_PARAMETERS_TYPE, targeturi : ::windows_sys::core::PCWSTR, resultdata : *mut *mut TOKENBINDING_RESULT_DATA) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("tokenbinding.dll" "system" fn TokenBindingGenerateMessage(tokenbindings : *const *const ::core::ffi::c_void, tokenbindingssize : *const u32, tokenbindingscount : u32, tokenbindingmessage : *mut *mut ::core::ffi::c_void, tokenbindingmessagesize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("tokenbinding.dll" "system" fn TokenBindingGetHighestSupportedVersion(majorversion : *mut u8, minorversion : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("tokenbinding.dll" "system" fn TokenBindingGetKeyTypesClient(keytypes : *mut *mut TOKENBINDING_KEY_TYPES) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("tokenbinding.dll" "system" fn TokenBindingGetKeyTypesServer(keytypes : *mut *mut TOKENBINDING_KEY_TYPES) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("tokenbinding.dll" "system" fn TokenBindingVerifyMessage(tokenbindingmessage : *const ::core::ffi::c_void, tokenbindingmessagesize : u32, keytype : TOKENBINDING_KEY_PARAMETERS_TYPE, tlsekm : *const ::core::ffi::c_void, tlsekmsize : u32, resultlist : *mut *mut TOKENBINDING_RESULT_LIST) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TranslateNameA(lpaccountname : ::windows_sys::core::PCSTR, accountnameformat : EXTENDED_NAME_FORMAT, desirednameformat : EXTENDED_NAME_FORMAT, lptranslatedname : ::windows_sys::core::PSTR, nsize : *mut u32) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TranslateNameW(lpaccountname : ::windows_sys::core::PCWSTR, accountnameformat : EXTENDED_NAME_FORMAT, desirednameformat : EXTENDED_NAME_FORMAT, lptranslatedname : ::windows_sys::core::PWSTR, nsize : *mut u32) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Security_Credentials")] +::windows_targets::link!("secur32.dll" "system" #[doc = "Required features: `\"Win32_Security_Credentials\"`"] fn VerifySignature(phcontext : *const super::super::Credentials:: SecHandle, pmessage : *const SecBufferDesc, messageseqno : u32, pfqop : *mut u32) -> ::windows_sys::core::HRESULT); +pub type ICcgDomainAuthCredentials = *mut ::core::ffi::c_void; +pub const ACCOUNT_ADJUST_PRIVILEGES: i32 = 2i32; +pub const ACCOUNT_ADJUST_QUOTAS: i32 = 4i32; +pub const ACCOUNT_ADJUST_SYSTEM_ACCESS: i32 = 8i32; +pub const ACCOUNT_VIEW: i32 = 1i32; +pub const ASC_REQ_ALLOCATE_MEMORY: ASC_REQ_FLAGS = 256u32; +pub const ASC_REQ_ALLOW_CONTEXT_REPLAY: ASC_REQ_FLAGS = 4194304u32; +pub const ASC_REQ_ALLOW_MISSING_BINDINGS: ASC_REQ_FLAGS = 268435456u32; +pub const ASC_REQ_ALLOW_NON_USER_LOGONS: ASC_REQ_FLAGS = 2097152u32; +pub const ASC_REQ_ALLOW_NULL_SESSION: ASC_REQ_FLAGS = 1048576u32; +pub const ASC_REQ_CALL_LEVEL: ASC_REQ_FLAGS = 4096u32; +pub const ASC_REQ_CONFIDENTIALITY: ASC_REQ_FLAGS = 16u32; +pub const ASC_REQ_CONNECTION: ASC_REQ_FLAGS = 2048u32; +pub const ASC_REQ_DATAGRAM: ASC_REQ_FLAGS = 1024u32; +pub const ASC_REQ_DELEGATE: ASC_REQ_FLAGS = 1u32; +pub const ASC_REQ_EXTENDED_ERROR: ASC_REQ_FLAGS = 32768u32; +pub const ASC_REQ_FRAGMENT_SUPPLIED: ASC_REQ_FLAGS = 8192u32; +pub const ASC_REQ_FRAGMENT_TO_FIT: ASC_REQ_FLAGS = 8388608u32; +pub const ASC_REQ_IDENTIFY: ASC_REQ_FLAGS = 524288u32; +pub const ASC_REQ_INTEGRITY: ASC_REQ_FLAGS = 131072u32; +pub const ASC_REQ_LICENSING: ASC_REQ_FLAGS = 262144u32; +pub const ASC_REQ_MESSAGES: ASC_REQ_HIGH_FLAGS = 4294967296u64; +pub const ASC_REQ_MUTUAL_AUTH: ASC_REQ_FLAGS = 2u32; +pub const ASC_REQ_NO_TOKEN: ASC_REQ_FLAGS = 16777216u32; +pub const ASC_REQ_PROXY_BINDINGS: ASC_REQ_FLAGS = 67108864u32; +pub const ASC_REQ_REPLAY_DETECT: ASC_REQ_FLAGS = 4u32; +pub const ASC_REQ_SEQUENCE_DETECT: ASC_REQ_FLAGS = 8u32; +pub const ASC_REQ_SESSION_TICKET: ASC_REQ_FLAGS = 64u32; +pub const ASC_REQ_STREAM: ASC_REQ_FLAGS = 65536u32; +pub const ASC_REQ_USE_DCE_STYLE: ASC_REQ_FLAGS = 512u32; +pub const ASC_REQ_USE_SESSION_KEY: ASC_REQ_FLAGS = 32u32; +pub const ASC_RET_ALLOCATED_MEMORY: u32 = 256u32; +pub const ASC_RET_ALLOW_CONTEXT_REPLAY: u32 = 4194304u32; +pub const ASC_RET_ALLOW_NON_USER_LOGONS: u32 = 2097152u32; +pub const ASC_RET_CALL_LEVEL: u32 = 8192u32; +pub const ASC_RET_CONFIDENTIALITY: u32 = 16u32; +pub const ASC_RET_CONNECTION: u32 = 2048u32; +pub const ASC_RET_DATAGRAM: u32 = 1024u32; +pub const ASC_RET_DELEGATE: u32 = 1u32; +pub const ASC_RET_EXTENDED_ERROR: u32 = 32768u32; +pub const ASC_RET_FRAGMENT_ONLY: u32 = 8388608u32; +pub const ASC_RET_IDENTIFY: u32 = 524288u32; +pub const ASC_RET_INTEGRITY: u32 = 131072u32; +pub const ASC_RET_LICENSING: u32 = 262144u32; +pub const ASC_RET_MESSAGES: u64 = 4294967296u64; +pub const ASC_RET_MUTUAL_AUTH: u32 = 2u32; +pub const ASC_RET_NO_ADDITIONAL_TOKEN: u32 = 33554432u32; +pub const ASC_RET_NO_TOKEN: u32 = 16777216u32; +pub const ASC_RET_NULL_SESSION: u32 = 1048576u32; +pub const ASC_RET_REPLAY_DETECT: u32 = 4u32; +pub const ASC_RET_SEQUENCE_DETECT: u32 = 8u32; +pub const ASC_RET_SESSION_TICKET: u32 = 64u32; +pub const ASC_RET_STREAM: u32 = 65536u32; +pub const ASC_RET_THIRD_LEG_FAILED: u32 = 16384u32; +pub const ASC_RET_USED_DCE_STYLE: u32 = 512u32; +pub const ASC_RET_USE_SESSION_KEY: u32 = 32u32; +pub const AUDIT_ENUMERATE_USERS: u32 = 16u32; +pub const AUDIT_QUERY_MISC_POLICY: u32 = 64u32; +pub const AUDIT_QUERY_SYSTEM_POLICY: u32 = 2u32; +pub const AUDIT_QUERY_USER_POLICY: u32 = 8u32; +pub const AUDIT_SET_MISC_POLICY: u32 = 32u32; +pub const AUDIT_SET_SYSTEM_POLICY: u32 = 1u32; +pub const AUDIT_SET_USER_POLICY: u32 = 4u32; +pub const AUTH_REQ_ALLOW_ENC_TKT_IN_SKEY: u32 = 32u32; +pub const AUTH_REQ_ALLOW_FORWARDABLE: u32 = 1u32; +pub const AUTH_REQ_ALLOW_NOADDRESS: u32 = 16u32; +pub const AUTH_REQ_ALLOW_POSTDATE: u32 = 4u32; +pub const AUTH_REQ_ALLOW_PROXIABLE: u32 = 2u32; +pub const AUTH_REQ_ALLOW_RENEWABLE: u32 = 8u32; +pub const AUTH_REQ_ALLOW_S4U_DELEGATE: u32 = 2048u32; +pub const AUTH_REQ_ALLOW_VALIDATE: u32 = 64u32; +pub const AUTH_REQ_OK_AS_DELEGATE: u32 = 256u32; +pub const AUTH_REQ_PREAUTH_REQUIRED: u32 = 512u32; +pub const AUTH_REQ_TRANSITIVE_TRUST: u32 = 1024u32; +pub const AUTH_REQ_VALIDATE_CLIENT: u32 = 128u32; +pub const AccountDomainInformation: LSA_LOOKUP_DOMAIN_INFO_CLASS = 5i32; +pub const AuditCategoryAccountLogon: POLICY_AUDIT_EVENT_TYPE = 8i32; +pub const AuditCategoryAccountManagement: POLICY_AUDIT_EVENT_TYPE = 6i32; +pub const AuditCategoryDetailedTracking: POLICY_AUDIT_EVENT_TYPE = 4i32; +pub const AuditCategoryDirectoryServiceAccess: POLICY_AUDIT_EVENT_TYPE = 7i32; +pub const AuditCategoryLogon: POLICY_AUDIT_EVENT_TYPE = 1i32; +pub const AuditCategoryObjectAccess: POLICY_AUDIT_EVENT_TYPE = 2i32; +pub const AuditCategoryPolicyChange: POLICY_AUDIT_EVENT_TYPE = 5i32; +pub const AuditCategoryPrivilegeUse: POLICY_AUDIT_EVENT_TYPE = 3i32; +pub const AuditCategorySystem: POLICY_AUDIT_EVENT_TYPE = 0i32; +pub const Audit_AccountLogon: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x69979850_797a_11d9_bed3_505054503030); +pub const Audit_AccountLogon_CredentialValidation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce923f_69ae_11d9_bed3_505054503030); +pub const Audit_AccountLogon_KerbCredentialValidation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9242_69ae_11d9_bed3_505054503030); +pub const Audit_AccountLogon_Kerberos: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9240_69ae_11d9_bed3_505054503030); +pub const Audit_AccountLogon_Others: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9241_69ae_11d9_bed3_505054503030); +pub const Audit_AccountManagement: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6997984e_797a_11d9_bed3_505054503030); +pub const Audit_AccountManagement_ApplicationGroup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9239_69ae_11d9_bed3_505054503030); +pub const Audit_AccountManagement_ComputerAccount: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9236_69ae_11d9_bed3_505054503030); +pub const Audit_AccountManagement_DistributionGroup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9238_69ae_11d9_bed3_505054503030); +pub const Audit_AccountManagement_Others: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce923a_69ae_11d9_bed3_505054503030); +pub const Audit_AccountManagement_SecurityGroup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9237_69ae_11d9_bed3_505054503030); +pub const Audit_AccountManagement_UserAccount: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9235_69ae_11d9_bed3_505054503030); +pub const Audit_DSAccess_DSAccess: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce923b_69ae_11d9_bed3_505054503030); +pub const Audit_DetailedTracking: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6997984c_797a_11d9_bed3_505054503030); +pub const Audit_DetailedTracking_DpapiActivity: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce922d_69ae_11d9_bed3_505054503030); +pub const Audit_DetailedTracking_PnpActivity: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9248_69ae_11d9_bed3_505054503030); +pub const Audit_DetailedTracking_ProcessCreation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce922b_69ae_11d9_bed3_505054503030); +pub const Audit_DetailedTracking_ProcessTermination: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce922c_69ae_11d9_bed3_505054503030); +pub const Audit_DetailedTracking_RpcCall: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce922e_69ae_11d9_bed3_505054503030); +pub const Audit_DetailedTracking_TokenRightAdjusted: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce924a_69ae_11d9_bed3_505054503030); +pub const Audit_DirectoryServiceAccess: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6997984f_797a_11d9_bed3_505054503030); +pub const Audit_DsAccess_AdAuditChanges: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce923c_69ae_11d9_bed3_505054503030); +pub const Audit_Ds_DetailedReplication: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce923e_69ae_11d9_bed3_505054503030); +pub const Audit_Ds_Replication: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce923d_69ae_11d9_bed3_505054503030); +pub const Audit_Logon: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x69979849_797a_11d9_bed3_505054503030); +pub const Audit_Logon_AccountLockout: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9217_69ae_11d9_bed3_505054503030); +pub const Audit_Logon_Claims: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9247_69ae_11d9_bed3_505054503030); +pub const Audit_Logon_Groups: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9249_69ae_11d9_bed3_505054503030); +pub const Audit_Logon_IPSecMainMode: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9218_69ae_11d9_bed3_505054503030); +pub const Audit_Logon_IPSecQuickMode: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9219_69ae_11d9_bed3_505054503030); +pub const Audit_Logon_IPSecUserMode: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce921a_69ae_11d9_bed3_505054503030); +pub const Audit_Logon_Logoff: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9216_69ae_11d9_bed3_505054503030); +pub const Audit_Logon_Logon: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9215_69ae_11d9_bed3_505054503030); +pub const Audit_Logon_NPS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9243_69ae_11d9_bed3_505054503030); +pub const Audit_Logon_Others: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce921c_69ae_11d9_bed3_505054503030); +pub const Audit_Logon_SpecialLogon: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce921b_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6997984a_797a_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_ApplicationGenerated: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9222_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_CbacStaging: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9246_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_CertificationServices: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9221_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_DetailedFileShare: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9244_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_FileSystem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce921d_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_FirewallConnection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9226_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_FirewallPacketDrops: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9225_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_Handle: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9223_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_Kernel: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce921f_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_Other: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9227_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_Registry: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce921e_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_RemovableStorage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9245_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_Sam: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9220_69ae_11d9_bed3_505054503030); +pub const Audit_ObjectAccess_Share: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9224_69ae_11d9_bed3_505054503030); +pub const Audit_PolicyChange: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6997984d_797a_11d9_bed3_505054503030); +pub const Audit_PolicyChange_AuditPolicy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce922f_69ae_11d9_bed3_505054503030); +pub const Audit_PolicyChange_AuthenticationPolicy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9230_69ae_11d9_bed3_505054503030); +pub const Audit_PolicyChange_AuthorizationPolicy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9231_69ae_11d9_bed3_505054503030); +pub const Audit_PolicyChange_MpsscvRulePolicy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9232_69ae_11d9_bed3_505054503030); +pub const Audit_PolicyChange_Others: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9234_69ae_11d9_bed3_505054503030); +pub const Audit_PolicyChange_WfpIPSecPolicy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9233_69ae_11d9_bed3_505054503030); +pub const Audit_PrivilegeUse: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6997984b_797a_11d9_bed3_505054503030); +pub const Audit_PrivilegeUse_NonSensitive: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9229_69ae_11d9_bed3_505054503030); +pub const Audit_PrivilegeUse_Others: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce922a_69ae_11d9_bed3_505054503030); +pub const Audit_PrivilegeUse_Sensitive: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9228_69ae_11d9_bed3_505054503030); +pub const Audit_System: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x69979848_797a_11d9_bed3_505054503030); +pub const Audit_System_IPSecDriverEvents: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9213_69ae_11d9_bed3_505054503030); +pub const Audit_System_Integrity: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9212_69ae_11d9_bed3_505054503030); +pub const Audit_System_Others: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9214_69ae_11d9_bed3_505054503030); +pub const Audit_System_SecurityStateChange: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9210_69ae_11d9_bed3_505054503030); +pub const Audit_System_SecuritySubsystemExtension: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cce9211_69ae_11d9_bed3_505054503030); +pub const CENTRAL_ACCESS_POLICY_OWNER_RIGHTS_PRESENT_FLAG: u32 = 1u32; +pub const CENTRAL_ACCESS_POLICY_STAGED_FLAG: u32 = 65536u32; +pub const CENTRAL_ACCESS_POLICY_STAGED_OWNER_RIGHTS_PRESENT_FLAG: u32 = 256u32; +pub const CLEAR_BLOCK_LENGTH: u32 = 8u32; +pub const CLOUDAP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CloudAP"); +pub const CLOUDAP_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CloudAP"); +pub const CREDP_FLAGS_CLEAR_PASSWORD: u32 = 8u32; +pub const CREDP_FLAGS_DONT_CACHE_TI: u32 = 4u32; +pub const CREDP_FLAGS_IN_PROCESS: u32 = 1u32; +pub const CREDP_FLAGS_TRUSTED_CALLER: u32 = 32u32; +pub const CREDP_FLAGS_USER_ENCRYPTED_PASSWORD: u32 = 16u32; +pub const CREDP_FLAGS_USE_MIDL_HEAP: u32 = 2u32; +pub const CREDP_FLAGS_VALIDATE_PROXY_TARGET: u32 = 64u32; +pub const CRED_MARSHALED_TI_SIZE_SIZE: u32 = 12u32; +pub const CYPHER_BLOCK_LENGTH: u32 = 8u32; +pub const CertHashInfo: KERB_CERTIFICATE_INFO_TYPE = 1i32; +pub const ClOUDAP_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CloudAP"); +pub const CollisionOther: LSA_FOREST_TRUST_COLLISION_RECORD_TYPE = 2i32; +pub const CollisionTdo: LSA_FOREST_TRUST_COLLISION_RECORD_TYPE = 0i32; +pub const CollisionXref: LSA_FOREST_TRUST_COLLISION_RECORD_TYPE = 1i32; +pub const CredFetchDPAPI: CRED_FETCH = 1i32; +pub const CredFetchDefault: CRED_FETCH = 0i32; +pub const CredFetchForced: CRED_FETCH = 2i32; +pub const DEFAULT_TLS_SSP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Default TLS SSP"); +pub const DEFAULT_TLS_SSP_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Default TLS SSP"); +pub const DEFAULT_TLS_SSP_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Default TLS SSP"); +pub const DOMAIN_LOCKOUT_ADMINS: DOMAIN_PASSWORD_PROPERTIES = 8u32; +pub const DOMAIN_NO_LM_OWF_CHANGE: i32 = 64i32; +pub const DOMAIN_PASSWORD_COMPLEX: DOMAIN_PASSWORD_PROPERTIES = 1u32; +pub const DOMAIN_PASSWORD_NO_ANON_CHANGE: DOMAIN_PASSWORD_PROPERTIES = 2u32; +pub const DOMAIN_PASSWORD_NO_CLEAR_CHANGE: DOMAIN_PASSWORD_PROPERTIES = 4u32; +pub const DOMAIN_PASSWORD_STORE_CLEARTEXT: DOMAIN_PASSWORD_PROPERTIES = 16u32; +pub const DOMAIN_REFUSE_PASSWORD_CHANGE: DOMAIN_PASSWORD_PROPERTIES = 32u32; +pub const DS_INET_ADDRESS: KERB_ADDRESS_TYPE = 1u32; +pub const DS_NETBIOS_ADDRESS: KERB_ADDRESS_TYPE = 2u32; +pub const DS_UNKNOWN_ADDRESS_TYPE: u32 = 0u32; +pub const DeprecatedIUMCredKey: MSV1_0_CREDENTIAL_KEY_TYPE = 1i32; +pub const DnsDomainInformation: LSA_LOOKUP_DOMAIN_INFO_CLASS = 12i32; +pub const DomainUserCredKey: MSV1_0_CREDENTIAL_KEY_TYPE = 2i32; +pub const ENABLE_TLS_CLIENT_EARLY_START: u32 = 1u32; +pub const E_RM_UNKNOWN_ERROR: ::windows_sys::core::HRESULT = -1073415165i32; +pub const ExternallySuppliedCredKey: MSV1_0_CREDENTIAL_KEY_TYPE = 4i32; +pub const FACILITY_SL_ITF: u32 = 4u32; +pub const ForestTrustBinaryInfo: LSA_FOREST_TRUST_RECORD_TYPE = 3i32; +pub const ForestTrustDomainInfo: LSA_FOREST_TRUST_RECORD_TYPE = 2i32; +pub const ForestTrustRecordTypeLast: LSA_FOREST_TRUST_RECORD_TYPE = 4i32; +pub const ForestTrustScannerInfo: LSA_FOREST_TRUST_RECORD_TYPE = 4i32; +pub const ForestTrustTopLevelName: LSA_FOREST_TRUST_RECORD_TYPE = 0i32; +pub const ForestTrustTopLevelNameEx: LSA_FOREST_TRUST_RECORD_TYPE = 1i32; +pub const ID_CAP_SLAPI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("slapiQueryLicenseValue"); +pub const ISC_REQ_ALLOCATE_MEMORY: ISC_REQ_FLAGS = 256u32; +pub const ISC_REQ_CALL_LEVEL: ISC_REQ_FLAGS = 4096u32; +pub const ISC_REQ_CONFIDENTIALITY: ISC_REQ_FLAGS = 16u32; +pub const ISC_REQ_CONFIDENTIALITY_ONLY: ISC_REQ_FLAGS = 1073741824u32; +pub const ISC_REQ_CONNECTION: ISC_REQ_FLAGS = 2048u32; +pub const ISC_REQ_DATAGRAM: ISC_REQ_FLAGS = 1024u32; +pub const ISC_REQ_DEFERRED_CRED_VALIDATION: ISC_REQ_HIGH_FLAGS = 8589934592u64; +pub const ISC_REQ_DELEGATE: ISC_REQ_FLAGS = 1u32; +pub const ISC_REQ_EXTENDED_ERROR: ISC_REQ_FLAGS = 16384u32; +pub const ISC_REQ_FORWARD_CREDENTIALS: ISC_REQ_FLAGS = 4194304u32; +pub const ISC_REQ_FRAGMENT_SUPPLIED: ISC_REQ_FLAGS = 8192u32; +pub const ISC_REQ_FRAGMENT_TO_FIT: ISC_REQ_FLAGS = 2097152u32; +pub const ISC_REQ_IDENTIFY: ISC_REQ_FLAGS = 131072u32; +pub const ISC_REQ_INTEGRITY: ISC_REQ_FLAGS = 65536u32; +pub const ISC_REQ_MANUAL_CRED_VALIDATION: ISC_REQ_FLAGS = 524288u32; +pub const ISC_REQ_MESSAGES: ISC_REQ_HIGH_FLAGS = 4294967296u64; +pub const ISC_REQ_MUTUAL_AUTH: ISC_REQ_FLAGS = 2u32; +pub const ISC_REQ_NO_INTEGRITY: ISC_REQ_FLAGS = 8388608u32; +pub const ISC_REQ_NO_POST_HANDSHAKE_AUTH: ISC_REQ_HIGH_FLAGS = 17179869184u64; +pub const ISC_REQ_NULL_SESSION: ISC_REQ_FLAGS = 262144u32; +pub const ISC_REQ_PROMPT_FOR_CREDS: ISC_REQ_FLAGS = 64u32; +pub const ISC_REQ_REPLAY_DETECT: ISC_REQ_FLAGS = 4u32; +pub const ISC_REQ_RESERVED1: ISC_REQ_FLAGS = 1048576u32; +pub const ISC_REQ_SEQUENCE_DETECT: ISC_REQ_FLAGS = 8u32; +pub const ISC_REQ_STREAM: ISC_REQ_FLAGS = 32768u32; +pub const ISC_REQ_UNVERIFIED_TARGET_NAME: ISC_REQ_FLAGS = 536870912u32; +pub const ISC_REQ_USE_DCE_STYLE: ISC_REQ_FLAGS = 512u32; +pub const ISC_REQ_USE_HTTP_STYLE: ISC_REQ_FLAGS = 16777216u32; +pub const ISC_REQ_USE_SESSION_KEY: ISC_REQ_FLAGS = 32u32; +pub const ISC_REQ_USE_SUPPLIED_CREDS: ISC_REQ_FLAGS = 128u32; +pub const ISC_RET_ALLOCATED_MEMORY: u32 = 256u32; +pub const ISC_RET_CALL_LEVEL: u32 = 8192u32; +pub const ISC_RET_CONFIDENTIALITY: u32 = 16u32; +pub const ISC_RET_CONFIDENTIALITY_ONLY: u32 = 1073741824u32; +pub const ISC_RET_CONNECTION: u32 = 2048u32; +pub const ISC_RET_DATAGRAM: u32 = 1024u32; +pub const ISC_RET_DEFERRED_CRED_VALIDATION: u64 = 8589934592u64; +pub const ISC_RET_DELEGATE: u32 = 1u32; +pub const ISC_RET_EXTENDED_ERROR: u32 = 16384u32; +pub const ISC_RET_FORWARD_CREDENTIALS: u32 = 4194304u32; +pub const ISC_RET_FRAGMENT_ONLY: u32 = 2097152u32; +pub const ISC_RET_IDENTIFY: u32 = 131072u32; +pub const ISC_RET_INTEGRITY: u32 = 65536u32; +pub const ISC_RET_INTERMEDIATE_RETURN: u32 = 4096u32; +pub const ISC_RET_MANUAL_CRED_VALIDATION: u32 = 524288u32; +pub const ISC_RET_MESSAGES: u64 = 4294967296u64; +pub const ISC_RET_MUTUAL_AUTH: u32 = 2u32; +pub const ISC_RET_NO_ADDITIONAL_TOKEN: u32 = 33554432u32; +pub const ISC_RET_NO_POST_HANDSHAKE_AUTH: u64 = 17179869184u64; +pub const ISC_RET_NULL_SESSION: u32 = 262144u32; +pub const ISC_RET_REAUTHENTICATION: u32 = 134217728u32; +pub const ISC_RET_REPLAY_DETECT: u32 = 4u32; +pub const ISC_RET_RESERVED1: u32 = 1048576u32; +pub const ISC_RET_SEQUENCE_DETECT: u32 = 8u32; +pub const ISC_RET_STREAM: u32 = 32768u32; +pub const ISC_RET_USED_COLLECTED_CREDS: u32 = 64u32; +pub const ISC_RET_USED_DCE_STYLE: u32 = 512u32; +pub const ISC_RET_USED_HTTP_STYLE: u32 = 16777216u32; +pub const ISC_RET_USED_SUPPLIED_CREDS: u32 = 128u32; +pub const ISC_RET_USE_SESSION_KEY: u32 = 32u32; +pub const ISSP_LEVEL: u32 = 32u32; +pub const ISSP_MODE: u32 = 1u32; +pub const InvalidCredKey: MSV1_0_CREDENTIAL_KEY_TYPE = 0i32; +pub const KDC_PROXY_SETTINGS_FLAGS_FORCEPROXY: u32 = 1u32; +pub const KDC_PROXY_SETTINGS_V1: u32 = 1u32; +pub const KERBEROS_REVISION: u32 = 6u32; +pub const KERBEROS_VERSION: u32 = 5u32; +pub const KERB_CERTIFICATE_LOGON_FLAG_CHECK_DUPLICATES: u32 = 1u32; +pub const KERB_CERTIFICATE_LOGON_FLAG_USE_CERTIFICATE_INFO: u32 = 2u32; +pub const KERB_CERTIFICATE_S4U_LOGON_FLAG_CHECK_DUPLICATES: u32 = 1u32; +pub const KERB_CERTIFICATE_S4U_LOGON_FLAG_CHECK_LOGONHOURS: u32 = 2u32; +pub const KERB_CERTIFICATE_S4U_LOGON_FLAG_FAIL_IF_NT_AUTH_POLICY_REQUIRED: u32 = 4u32; +pub const KERB_CERTIFICATE_S4U_LOGON_FLAG_IDENTIFY: u32 = 8u32; +pub const KERB_CHECKSUM_CRC32: u32 = 1u32; +pub const KERB_CHECKSUM_DES_MAC: i32 = -133i32; +pub const KERB_CHECKSUM_DES_MAC_MD5: i32 = -134i32; +pub const KERB_CHECKSUM_HMAC_MD5: i32 = -138i32; +pub const KERB_CHECKSUM_HMAC_SHA1_96_AES128: u32 = 15u32; +pub const KERB_CHECKSUM_HMAC_SHA1_96_AES128_Ki: i32 = -150i32; +pub const KERB_CHECKSUM_HMAC_SHA1_96_AES256: u32 = 16u32; +pub const KERB_CHECKSUM_HMAC_SHA1_96_AES256_Ki: i32 = -151i32; +pub const KERB_CHECKSUM_KRB_DES_MAC: u32 = 4u32; +pub const KERB_CHECKSUM_KRB_DES_MAC_K: u32 = 5u32; +pub const KERB_CHECKSUM_LM: i32 = -130i32; +pub const KERB_CHECKSUM_MD25: i32 = -135i32; +pub const KERB_CHECKSUM_MD4: u32 = 2u32; +pub const KERB_CHECKSUM_MD5: u32 = 7u32; +pub const KERB_CHECKSUM_MD5_DES: u32 = 8u32; +pub const KERB_CHECKSUM_MD5_HMAC: i32 = -137i32; +pub const KERB_CHECKSUM_NONE: u32 = 0u32; +pub const KERB_CHECKSUM_RC4_MD5: i32 = -136i32; +pub const KERB_CHECKSUM_REAL_CRC32: i32 = -132i32; +pub const KERB_CHECKSUM_SHA1: i32 = -131i32; +pub const KERB_CHECKSUM_SHA1_NEW: u32 = 14u32; +pub const KERB_CHECKSUM_SHA256: i32 = -139i32; +pub const KERB_CHECKSUM_SHA384: i32 = -140i32; +pub const KERB_CHECKSUM_SHA512: i32 = -141i32; +pub const KERB_CLOUD_KERBEROS_DEBUG_DATA_VERSION: u32 = 1u32; +pub const KERB_DECRYPT_FLAG_DEFAULT_KEY: u32 = 1u32; +pub const KERB_ETYPE_AES128_CTS_HMAC_SHA1_96: u32 = 17u32; +pub const KERB_ETYPE_AES128_CTS_HMAC_SHA1_96_PLAIN: i32 = -148i32; +pub const KERB_ETYPE_AES256_CTS_HMAC_SHA1_96: u32 = 18u32; +pub const KERB_ETYPE_AES256_CTS_HMAC_SHA1_96_PLAIN: i32 = -149i32; +pub const KERB_ETYPE_DEFAULT: u32 = 0u32; +pub const KERB_ETYPE_DES3_CBC_MD5: u32 = 5u32; +pub const KERB_ETYPE_DES3_CBC_SHA1: u32 = 7u32; +pub const KERB_ETYPE_DES3_CBC_SHA1_KD: u32 = 16u32; +pub const KERB_ETYPE_DES_CBC_CRC: KERB_CRYPTO_KEY_TYPE = 1i32; +pub const KERB_ETYPE_DES_CBC_MD4: KERB_CRYPTO_KEY_TYPE = 2i32; +pub const KERB_ETYPE_DES_CBC_MD5: KERB_CRYPTO_KEY_TYPE = 3i32; +pub const KERB_ETYPE_DES_CBC_MD5_NT: u32 = 20u32; +pub const KERB_ETYPE_DES_EDE3_CBC_ENV: u32 = 15u32; +pub const KERB_ETYPE_DES_PLAIN: i32 = -132i32; +pub const KERB_ETYPE_DSA_SHA1_CMS: u32 = 9u32; +pub const KERB_ETYPE_DSA_SIGN: u32 = 8u32; +pub const KERB_ETYPE_NULL: KERB_CRYPTO_KEY_TYPE = 0i32; +pub const KERB_ETYPE_PKCS7_PUB: u32 = 13u32; +pub const KERB_ETYPE_RC2_CBC_ENV: u32 = 12u32; +pub const KERB_ETYPE_RC4_HMAC_NT: KERB_CRYPTO_KEY_TYPE = 23i32; +pub const KERB_ETYPE_RC4_HMAC_NT_EXP: u32 = 24u32; +pub const KERB_ETYPE_RC4_HMAC_OLD: i32 = -133i32; +pub const KERB_ETYPE_RC4_HMAC_OLD_EXP: i32 = -135i32; +pub const KERB_ETYPE_RC4_LM: i32 = -130i32; +pub const KERB_ETYPE_RC4_MD4: KERB_CRYPTO_KEY_TYPE = -128i32; +pub const KERB_ETYPE_RC4_PLAIN: i32 = -140i32; +pub const KERB_ETYPE_RC4_PLAIN2: i32 = -129i32; +pub const KERB_ETYPE_RC4_PLAIN_EXP: i32 = -141i32; +pub const KERB_ETYPE_RC4_PLAIN_OLD: i32 = -134i32; +pub const KERB_ETYPE_RC4_PLAIN_OLD_EXP: i32 = -136i32; +pub const KERB_ETYPE_RC4_SHA: i32 = -131i32; +pub const KERB_ETYPE_RSA_ENV: u32 = 13u32; +pub const KERB_ETYPE_RSA_ES_OEAP_ENV: u32 = 14u32; +pub const KERB_ETYPE_RSA_MD5_CMS: u32 = 10u32; +pub const KERB_ETYPE_RSA_PRIV: u32 = 9u32; +pub const KERB_ETYPE_RSA_PUB: u32 = 10u32; +pub const KERB_ETYPE_RSA_PUB_MD5: u32 = 11u32; +pub const KERB_ETYPE_RSA_PUB_SHA1: u32 = 12u32; +pub const KERB_ETYPE_RSA_SHA1_CMS: u32 = 11u32; +pub const KERB_LOGON_FLAG_ALLOW_EXPIRED_TICKET: u32 = 1u32; +pub const KERB_LOGON_FLAG_REDIRECTED: u32 = 2u32; +pub const KERB_PURGE_ALL_TICKETS: u32 = 1u32; +pub const KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE_FLAG_DAC_DISABLED: u32 = 1u32; +pub const KERB_REFRESH_POLICY_KDC: u32 = 2u32; +pub const KERB_REFRESH_POLICY_KERBEROS: u32 = 1u32; +pub const KERB_REFRESH_SCCRED_GETTGT: u32 = 1u32; +pub const KERB_REFRESH_SCCRED_RELEASE: u32 = 0u32; +pub const KERB_REQUEST_ADD_CREDENTIAL: KERB_REQUEST_FLAGS = 1u32; +pub const KERB_REQUEST_REMOVE_CREDENTIAL: KERB_REQUEST_FLAGS = 4u32; +pub const KERB_REQUEST_REPLACE_CREDENTIAL: KERB_REQUEST_FLAGS = 2u32; +pub const KERB_RETRIEVE_TICKET_AS_KERB_CRED: u32 = 8u32; +pub const KERB_RETRIEVE_TICKET_CACHE_TICKET: u32 = 32u32; +pub const KERB_RETRIEVE_TICKET_DEFAULT: u32 = 0u32; +pub const KERB_RETRIEVE_TICKET_DONT_USE_CACHE: u32 = 1u32; +pub const KERB_RETRIEVE_TICKET_MAX_LIFETIME: u32 = 64u32; +pub const KERB_RETRIEVE_TICKET_USE_CACHE_ONLY: u32 = 2u32; +pub const KERB_RETRIEVE_TICKET_USE_CREDHANDLE: u32 = 4u32; +pub const KERB_RETRIEVE_TICKET_WITH_SEC_CRED: u32 = 16u32; +pub const KERB_S4U2PROXY_CACHE_ENTRY_INFO_FLAG_NEGATIVE: u32 = 1u32; +pub const KERB_S4U2PROXY_CRED_FLAG_NEGATIVE: u32 = 1u32; +pub const KERB_S4U_LOGON_FLAG_CHECK_LOGONHOURS: u32 = 2u32; +pub const KERB_S4U_LOGON_FLAG_IDENTIFY: u32 = 8u32; +pub const KERB_SETPASS_USE_CREDHANDLE: u32 = 2u32; +pub const KERB_SETPASS_USE_LOGONID: u32 = 1u32; +pub const KERB_TICKET_FLAGS_cname_in_pa_data: u32 = 262144u32; +pub const KERB_TICKET_FLAGS_enc_pa_rep: u32 = 65536u32; +pub const KERB_TICKET_FLAGS_forwardable: KERB_TICKET_FLAGS = 1073741824u32; +pub const KERB_TICKET_FLAGS_forwarded: KERB_TICKET_FLAGS = 536870912u32; +pub const KERB_TICKET_FLAGS_hw_authent: KERB_TICKET_FLAGS = 1048576u32; +pub const KERB_TICKET_FLAGS_initial: KERB_TICKET_FLAGS = 4194304u32; +pub const KERB_TICKET_FLAGS_invalid: KERB_TICKET_FLAGS = 16777216u32; +pub const KERB_TICKET_FLAGS_may_postdate: KERB_TICKET_FLAGS = 67108864u32; +pub const KERB_TICKET_FLAGS_name_canonicalize: u32 = 65536u32; +pub const KERB_TICKET_FLAGS_ok_as_delegate: KERB_TICKET_FLAGS = 262144u32; +pub const KERB_TICKET_FLAGS_postdated: KERB_TICKET_FLAGS = 33554432u32; +pub const KERB_TICKET_FLAGS_pre_authent: KERB_TICKET_FLAGS = 2097152u32; +pub const KERB_TICKET_FLAGS_proxiable: KERB_TICKET_FLAGS = 268435456u32; +pub const KERB_TICKET_FLAGS_proxy: KERB_TICKET_FLAGS = 134217728u32; +pub const KERB_TICKET_FLAGS_renewable: KERB_TICKET_FLAGS = 8388608u32; +pub const KERB_TICKET_FLAGS_reserved: KERB_TICKET_FLAGS = 2147483648u32; +pub const KERB_TICKET_FLAGS_reserved1: KERB_TICKET_FLAGS = 1u32; +pub const KERB_TRANSFER_CRED_CLEANUP_CREDENTIALS: u32 = 2u32; +pub const KERB_TRANSFER_CRED_WITH_TICKETS: u32 = 1u32; +pub const KERB_USE_DEFAULT_TICKET_FLAGS: u32 = 0u32; +pub const KERB_WRAP_NO_ENCRYPT: u32 = 2147483649u32; +pub const KERN_CONTEXT_CERT_INFO_V1: u32 = 0u32; +pub const KRB_ANONYMOUS_STRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ANONYMOUS"); +pub const KRB_NT_ENTERPRISE_PRINCIPAL: u32 = 10u32; +pub const KRB_NT_ENT_PRINCIPAL_AND_ID: i32 = -130i32; +pub const KRB_NT_MS_BRANCH_ID: i32 = -133i32; +pub const KRB_NT_MS_PRINCIPAL: i32 = -128i32; +pub const KRB_NT_MS_PRINCIPAL_AND_ID: i32 = -129i32; +pub const KRB_NT_PRINCIPAL: u32 = 1u32; +pub const KRB_NT_PRINCIPAL_AND_ID: i32 = -131i32; +pub const KRB_NT_SRV_HST: u32 = 3u32; +pub const KRB_NT_SRV_INST: u32 = 2u32; +pub const KRB_NT_SRV_INST_AND_ID: i32 = -132i32; +pub const KRB_NT_SRV_XHST: u32 = 4u32; +pub const KRB_NT_UID: u32 = 5u32; +pub const KRB_NT_UNKNOWN: u32 = 0u32; +pub const KRB_NT_WELLKNOWN: u32 = 11u32; +pub const KRB_NT_X500_PRINCIPAL: u32 = 6u32; +pub const KRB_WELLKNOWN_STRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WELLKNOWN"); +pub const KSecNonPaged: KSEC_CONTEXT_TYPE = 1i32; +pub const KSecPaged: KSEC_CONTEXT_TYPE = 0i32; +pub const KerbAddBindingCacheEntryExMessage: KERB_PROTOCOL_MESSAGE_TYPE = 27i32; +pub const KerbAddBindingCacheEntryMessage: KERB_PROTOCOL_MESSAGE_TYPE = 10i32; +pub const KerbAddExtraCredentialsExMessage: KERB_PROTOCOL_MESSAGE_TYPE = 22i32; +pub const KerbAddExtraCredentialsMessage: KERB_PROTOCOL_MESSAGE_TYPE = 17i32; +pub const KerbCertificateLogon: KERB_LOGON_SUBMIT_TYPE = 13i32; +pub const KerbCertificateS4ULogon: KERB_LOGON_SUBMIT_TYPE = 14i32; +pub const KerbCertificateUnlockLogon: KERB_LOGON_SUBMIT_TYPE = 15i32; +pub const KerbChangeMachinePasswordMessage: KERB_PROTOCOL_MESSAGE_TYPE = 2i32; +pub const KerbChangePasswordMessage: KERB_PROTOCOL_MESSAGE_TYPE = 7i32; +pub const KerbCleanupMachinePkinitCredsMessage: KERB_PROTOCOL_MESSAGE_TYPE = 26i32; +pub const KerbDebugRequestMessage: KERB_PROTOCOL_MESSAGE_TYPE = 0i32; +pub const KerbDecryptDataMessage: KERB_PROTOCOL_MESSAGE_TYPE = 9i32; +pub const KerbInteractiveLogon: KERB_LOGON_SUBMIT_TYPE = 2i32; +pub const KerbInteractiveProfile: KERB_PROFILE_BUFFER_TYPE = 2i32; +pub const KerbLuidLogon: KERB_LOGON_SUBMIT_TYPE = 84i32; +pub const KerbNoElevationLogon: KERB_LOGON_SUBMIT_TYPE = 83i32; +pub const KerbPinKdcMessage: KERB_PROTOCOL_MESSAGE_TYPE = 30i32; +pub const KerbPrintCloudKerberosDebugMessage: KERB_PROTOCOL_MESSAGE_TYPE = 36i32; +pub const KerbProxyLogon: KERB_LOGON_SUBMIT_TYPE = 9i32; +pub const KerbPurgeBindingCacheMessage: KERB_PROTOCOL_MESSAGE_TYPE = 29i32; +pub const KerbPurgeKdcProxyCacheMessage: KERB_PROTOCOL_MESSAGE_TYPE = 24i32; +pub const KerbPurgeTicketCacheExMessage: KERB_PROTOCOL_MESSAGE_TYPE = 15i32; +pub const KerbPurgeTicketCacheMessage: KERB_PROTOCOL_MESSAGE_TYPE = 6i32; +pub const KerbQueryBindingCacheMessage: KERB_PROTOCOL_MESSAGE_TYPE = 28i32; +pub const KerbQueryDomainExtendedPoliciesMessage: KERB_PROTOCOL_MESSAGE_TYPE = 32i32; +pub const KerbQueryKdcProxyCacheMessage: KERB_PROTOCOL_MESSAGE_TYPE = 23i32; +pub const KerbQueryS4U2ProxyCacheMessage: KERB_PROTOCOL_MESSAGE_TYPE = 33i32; +pub const KerbQuerySupplementalCredentialsMessage: KERB_PROTOCOL_MESSAGE_TYPE = 18i32; +pub const KerbQueryTicketCacheEx2Message: KERB_PROTOCOL_MESSAGE_TYPE = 20i32; +pub const KerbQueryTicketCacheEx3Message: KERB_PROTOCOL_MESSAGE_TYPE = 25i32; +pub const KerbQueryTicketCacheExMessage: KERB_PROTOCOL_MESSAGE_TYPE = 14i32; +pub const KerbQueryTicketCacheMessage: KERB_PROTOCOL_MESSAGE_TYPE = 1i32; +pub const KerbRefreshPolicyMessage: KERB_PROTOCOL_MESSAGE_TYPE = 35i32; +pub const KerbRefreshSmartcardCredentialsMessage: KERB_PROTOCOL_MESSAGE_TYPE = 16i32; +pub const KerbRetrieveEncodedTicketMessage: KERB_PROTOCOL_MESSAGE_TYPE = 8i32; +pub const KerbRetrieveKeyTabMessage: KERB_PROTOCOL_MESSAGE_TYPE = 34i32; +pub const KerbRetrieveTicketMessage: KERB_PROTOCOL_MESSAGE_TYPE = 4i32; +pub const KerbS4ULogon: KERB_LOGON_SUBMIT_TYPE = 12i32; +pub const KerbSetPasswordExMessage: KERB_PROTOCOL_MESSAGE_TYPE = 12i32; +pub const KerbSetPasswordMessage: KERB_PROTOCOL_MESSAGE_TYPE = 11i32; +pub const KerbSmartCardLogon: KERB_LOGON_SUBMIT_TYPE = 6i32; +pub const KerbSmartCardProfile: KERB_PROFILE_BUFFER_TYPE = 4i32; +pub const KerbSmartCardUnlockLogon: KERB_LOGON_SUBMIT_TYPE = 8i32; +pub const KerbSubmitTicketMessage: KERB_PROTOCOL_MESSAGE_TYPE = 21i32; +pub const KerbTicketLogon: KERB_LOGON_SUBMIT_TYPE = 10i32; +pub const KerbTicketProfile: KERB_PROFILE_BUFFER_TYPE = 6i32; +pub const KerbTicketUnlockLogon: KERB_LOGON_SUBMIT_TYPE = 11i32; +pub const KerbTransferCredentialsMessage: KERB_PROTOCOL_MESSAGE_TYPE = 19i32; +pub const KerbUnpinAllKdcsMessage: KERB_PROTOCOL_MESSAGE_TYPE = 31i32; +pub const KerbUpdateAddressesMessage: KERB_PROTOCOL_MESSAGE_TYPE = 5i32; +pub const KerbVerifyCredentialsMessage: KERB_PROTOCOL_MESSAGE_TYPE = 13i32; +pub const KerbVerifyPacMessage: KERB_PROTOCOL_MESSAGE_TYPE = 3i32; +pub const KerbWorkstationUnlockLogon: KERB_LOGON_SUBMIT_TYPE = 7i32; +pub const LCRED_CRED_EXISTS: u32 = 1u32; +pub const LCRED_STATUS_NOCRED: u32 = 0u32; +pub const LCRED_STATUS_UNKNOWN_ISSUER: u32 = 2u32; +pub const LOGON_CACHED_ACCOUNT: MSV_SUB_AUTHENTICATION_FILTER = 4u32; +pub const LOGON_EXTRA_SIDS: MSV_SUB_AUTHENTICATION_FILTER = 32u32; +pub const LOGON_GRACE_LOGON: u32 = 16777216u32; +pub const LOGON_GUEST: MSV_SUB_AUTHENTICATION_FILTER = 1u32; +pub const LOGON_LM_V2: u32 = 4096u32; +pub const LOGON_MANAGED_SERVICE: u32 = 524288u32; +pub const LOGON_NOENCRYPTION: MSV_SUB_AUTHENTICATION_FILTER = 2u32; +pub const LOGON_NO_ELEVATION: u32 = 262144u32; +pub const LOGON_NO_OPTIMIZED: u32 = 131072u32; +pub const LOGON_NTLMV2_ENABLED: u32 = 256u32; +pub const LOGON_NTLM_V2: u32 = 8192u32; +pub const LOGON_NT_V2: u32 = 2048u32; +pub const LOGON_OPTIMIZED: u32 = 16384u32; +pub const LOGON_PKINIT: u32 = 65536u32; +pub const LOGON_PROFILE_PATH_RETURNED: MSV_SUB_AUTHENTICATION_FILTER = 1024u32; +pub const LOGON_RESOURCE_GROUPS: MSV_SUB_AUTHENTICATION_FILTER = 512u32; +pub const LOGON_SERVER_TRUST_ACCOUNT: MSV_SUB_AUTHENTICATION_FILTER = 128u32; +pub const LOGON_SUBAUTH_SESSION_KEY: MSV_SUB_AUTHENTICATION_FILTER = 64u32; +pub const LOGON_USED_LM_PASSWORD: MSV_SUB_AUTHENTICATION_FILTER = 8u32; +pub const LOGON_WINLOGON: u32 = 32768u32; +pub const LOOKUP_TRANSLATE_NAMES: u32 = 2048u32; +pub const LOOKUP_VIEW_LOCAL_INFORMATION: u32 = 1u32; +pub const LSAD_AES_BLOCK_SIZE: u32 = 16u32; +pub const LSAD_AES_CRYPT_SHA512_HASH_SIZE: u32 = 64u32; +pub const LSAD_AES_KEY_SIZE: u32 = 16u32; +pub const LSAD_AES_SALT_SIZE: u32 = 16u32; +pub const LSASETCAPS_RELOAD_FLAG: u32 = 1u32; +pub const LSASETCAPS_VALID_FLAG_MASK: u32 = 1u32; +pub const LSA_ADT_LEGACY_SECURITY_SOURCE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Security"); +pub const LSA_ADT_SECURITY_SOURCE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft-Windows-Security-Auditing"); +pub const LSA_AP_NAME_CALL_PACKAGE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("LsaApCallPackage\u{0}"); +pub const LSA_AP_NAME_CALL_PACKAGE_PASSTHROUGH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("LsaApCallPackagePassthrough\u{0}"); +pub const LSA_AP_NAME_CALL_PACKAGE_UNTRUSTED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("LsaApCallPackageUntrusted\u{0}"); +pub const LSA_AP_NAME_INITIALIZE_PACKAGE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("LsaApInitializePackage\u{0}"); +pub const LSA_AP_NAME_LOGON_TERMINATED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("LsaApLogonTerminated\u{0}"); +pub const LSA_AP_NAME_LOGON_USER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("LsaApLogonUser\u{0}"); +pub const LSA_AP_NAME_LOGON_USER_EX: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("LsaApLogonUserEx\u{0}"); +pub const LSA_AP_NAME_LOGON_USER_EX2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("LsaApLogonUserEx2\u{0}"); +pub const LSA_CALL_LICENSE_SERVER: u32 = 2147483648u32; +pub const LSA_FOREST_TRUST_RECORD_TYPE_UNRECOGNIZED: u32 = 2147483648u32; +pub const LSA_FTRECORD_DISABLED_REASONS: i32 = 65535i32; +pub const LSA_GLOBAL_SECRET_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("G$"); +pub const LSA_GLOBAL_SECRET_PREFIX_LENGTH: u32 = 2u32; +pub const LSA_LOCAL_SECRET_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("L$"); +pub const LSA_LOCAL_SECRET_PREFIX_LENGTH: u32 = 2u32; +pub const LSA_LOOKUP_DISALLOW_CONNECTED_ACCOUNT_INTERNET_SID: u32 = 2147483648u32; +pub const LSA_LOOKUP_ISOLATED_AS_LOCAL: u32 = 2147483648u32; +pub const LSA_LOOKUP_PREFER_INTERNET_NAMES: u32 = 1073741824u32; +pub const LSA_MACHINE_SECRET_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("M$"); +pub const LSA_MAXIMUM_ENUMERATION_LENGTH: u32 = 32000u32; +pub const LSA_MAXIMUM_SID_COUNT: i32 = 256i32; +pub const LSA_MODE_INDIVIDUAL_ACCOUNTS: i32 = 2i32; +pub const LSA_MODE_LOG_FULL: i32 = 8i32; +pub const LSA_MODE_MANDATORY_ACCESS: i32 = 4i32; +pub const LSA_MODE_PASSWORD_PROTECTED: i32 = 1i32; +pub const LSA_NB_DISABLED_ADMIN: i32 = 4i32; +pub const LSA_NB_DISABLED_CONFLICT: i32 = 8i32; +pub const LSA_QUERY_CLIENT_PRELOGON_SESSION_ID: u32 = 1u32; +pub const LSA_SCANNER_INFO_ADMIN_ALL_FLAGS: i32 = 1i32; +pub const LSA_SCANNER_INFO_DISABLE_AUTH_TARGET_VALIDATION: i32 = 1i32; +pub const LSA_SECRET_MAXIMUM_COUNT: i32 = 4096i32; +pub const LSA_SECRET_MAXIMUM_LENGTH: i32 = 512i32; +pub const LSA_SID_DISABLED_ADMIN: i32 = 1i32; +pub const LSA_SID_DISABLED_CONFLICT: i32 = 2i32; +pub const LSA_TLN_DISABLED_ADMIN: i32 = 2i32; +pub const LSA_TLN_DISABLED_CONFLICT: i32 = 4i32; +pub const LSA_TLN_DISABLED_NEW: i32 = 1i32; +pub const LocalUserCredKey: MSV1_0_CREDENTIAL_KEY_TYPE = 3i32; +pub const LsaTokenInformationNull: LSA_TOKEN_INFORMATION_TYPE = 0i32; +pub const LsaTokenInformationV1: LSA_TOKEN_INFORMATION_TYPE = 1i32; +pub const LsaTokenInformationV2: LSA_TOKEN_INFORMATION_TYPE = 2i32; +pub const LsaTokenInformationV3: LSA_TOKEN_INFORMATION_TYPE = 3i32; +pub const MAXIMUM_CAPES_PER_CAP: u32 = 127u32; +pub const MAX_CRED_SIZE: u32 = 1024u32; +pub const MAX_PROTOCOL_ID_SIZE: u32 = 255u32; +pub const MAX_RECORDS_IN_FOREST_TRUST_INFO: u32 = 4000u32; +pub const MAX_USER_RECORDS: u32 = 1000u32; +pub const MICROSOFT_KERBEROS_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Kerberos"); +pub const MICROSOFT_KERBEROS_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Kerberos"); +pub const MICROSOFT_KERBEROS_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Kerberos"); +pub const MSV1_0_ALLOW_FORCE_GUEST: u32 = 8192u32; +pub const MSV1_0_ALLOW_MSVCHAPV2: u32 = 65536u32; +pub const MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT: MSV_SUBAUTH_LOGON_PARAMETER_CONTROL = 32u32; +pub const MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT: MSV_SUBAUTH_LOGON_PARAMETER_CONTROL = 2048u32; +pub const MSV1_0_AV_FLAG_FORCE_GUEST: u32 = 1u32; +pub const MSV1_0_AV_FLAG_MIC_HANDSHAKE_MESSAGES: u32 = 2u32; +pub const MSV1_0_AV_FLAG_UNVERIFIED_TARGET: u32 = 4u32; +pub const MSV1_0_CHALLENGE_LENGTH: u32 = 8u32; +pub const MSV1_0_CHECK_LOGONHOURS_FOR_S4U: u32 = 262144u32; +pub const MSV1_0_CLEARTEXT_PASSWORD_ALLOWED: MSV_SUBAUTH_LOGON_PARAMETER_CONTROL = 2u32; +pub const MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED: u32 = 16384u32; +pub const MSV1_0_CREDENTIAL_KEY_LENGTH: u32 = 20u32; +pub const MSV1_0_CRED_CREDKEY_PRESENT: u32 = 8u32; +pub const MSV1_0_CRED_LM_PRESENT: MSV_SUPPLEMENTAL_CREDENTIAL_FLAGS = 1u32; +pub const MSV1_0_CRED_NT_PRESENT: MSV_SUPPLEMENTAL_CREDENTIAL_FLAGS = 2u32; +pub const MSV1_0_CRED_REMOVED: u32 = 4u32; +pub const MSV1_0_CRED_SHA_PRESENT: u32 = 16u32; +pub const MSV1_0_CRED_VERSION: MSV_SUPPLEMENTAL_CREDENTIAL_FLAGS = 0u32; +pub const MSV1_0_CRED_VERSION_ARSO: u32 = 4294901763u32; +pub const MSV1_0_CRED_VERSION_INVALID: u32 = 4294967295u32; +pub const MSV1_0_CRED_VERSION_IUM: u32 = 4294901761u32; +pub const MSV1_0_CRED_VERSION_REMOTE: u32 = 4294901762u32; +pub const MSV1_0_CRED_VERSION_RESERVED_1: u32 = 4294967294u32; +pub const MSV1_0_CRED_VERSION_V2: u32 = 2u32; +pub const MSV1_0_CRED_VERSION_V3: u32 = 4u32; +pub const MSV1_0_DISABLE_PERSONAL_FALLBACK: u32 = 4096u32; +pub const MSV1_0_DONT_TRY_GUEST_ACCOUNT: MSV_SUBAUTH_LOGON_PARAMETER_CONTROL = 16u32; +pub const MSV1_0_GUEST_LOGON: MSV1_0 = 2u32; +pub const MSV1_0_INTERNET_DOMAIN: u32 = 524288u32; +pub const MSV1_0_LANMAN_SESSION_KEY_LENGTH: u32 = 8u32; +pub const MSV1_0_MAX_AVL_SIZE: u32 = 64000u32; +pub const MSV1_0_MAX_NTLM3_LIFE: u32 = 1800u32; +pub const MSV1_0_MNS_LOGON: u32 = 16777216u32; +pub const MSV1_0_NTLM3_OWF_LENGTH: u32 = 16u32; +pub const MSV1_0_NTLM3_RESPONSE_LENGTH: u32 = 16u32; +pub const MSV1_0_OWF_PASSWORD_LENGTH: u32 = 16u32; +pub const MSV1_0_PACKAGE_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"); +pub const MSV1_0_PACKAGE_NAMEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"); +pub const MSV1_0_PASSTHRU: MSV1_0 = 1u32; +pub const MSV1_0_RETURN_PASSWORD_EXPIRY: MSV_SUBAUTH_LOGON_PARAMETER_CONTROL = 64u32; +pub const MSV1_0_RETURN_PROFILE_PATH: MSV_SUBAUTH_LOGON_PARAMETER_CONTROL = 512u32; +pub const MSV1_0_RETURN_USER_PARAMETERS: MSV_SUBAUTH_LOGON_PARAMETER_CONTROL = 8u32; +pub const MSV1_0_S4U2SELF: u32 = 131072u32; +pub const MSV1_0_S4U_LOGON_FLAG_CHECK_LOGONHOURS: u32 = 2u32; +pub const MSV1_0_SHA_PASSWORD_LENGTH: u32 = 20u32; +pub const MSV1_0_SUBAUTHENTICATION_DLL: u32 = 4278190080u32; +pub const MSV1_0_SUBAUTHENTICATION_DLL_EX: u32 = 1048576u32; +pub const MSV1_0_SUBAUTHENTICATION_DLL_IIS: u32 = 132u32; +pub const MSV1_0_SUBAUTHENTICATION_DLL_RAS: u32 = 2u32; +pub const MSV1_0_SUBAUTHENTICATION_DLL_SHIFT: u32 = 24u32; +pub const MSV1_0_SUBAUTHENTICATION_FLAGS: u32 = 4278190080u32; +pub const MSV1_0_SUBAUTHENTICATION_KEY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SYSTEM\\CurrentControlSet\\Control\\Lsa\\MSV1_0"); +pub const MSV1_0_SUBAUTHENTICATION_VALUE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Auth"); +pub const MSV1_0_SUBAUTH_ACCOUNT_DISABLED: u32 = 1u32; +pub const MSV1_0_SUBAUTH_ACCOUNT_EXPIRY: u32 = 16u32; +pub const MSV1_0_SUBAUTH_ACCOUNT_TYPE: u32 = 64u32; +pub const MSV1_0_SUBAUTH_LOCKOUT: u32 = 128u32; +pub const MSV1_0_SUBAUTH_LOGON_HOURS: u32 = 8u32; +pub const MSV1_0_SUBAUTH_PASSWORD: u32 = 2u32; +pub const MSV1_0_SUBAUTH_PASSWORD_EXPIRY: u32 = 32u32; +pub const MSV1_0_SUBAUTH_WORKSTATIONS: u32 = 4u32; +pub const MSV1_0_TRY_GUEST_ACCOUNT_ONLY: MSV_SUBAUTH_LOGON_PARAMETER_CONTROL = 256u32; +pub const MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY: MSV_SUBAUTH_LOGON_PARAMETER_CONTROL = 1024u32; +pub const MSV1_0_UPDATE_LOGON_STATISTICS: MSV_SUBAUTH_LOGON_PARAMETER_CONTROL = 4u32; +pub const MSV1_0_USER_SESSION_KEY_LENGTH: u32 = 16u32; +pub const MSV1_0_USE_CLIENT_CHALLENGE: u32 = 128u32; +pub const MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY: u32 = 32768u32; +pub const MSV1_0_VALIDATION_KICKOFF_TIME: u32 = 2u32; +pub const MSV1_0_VALIDATION_LOGOFF_TIME: u32 = 1u32; +pub const MSV1_0_VALIDATION_LOGON_DOMAIN: u32 = 8u32; +pub const MSV1_0_VALIDATION_LOGON_SERVER: u32 = 4u32; +pub const MSV1_0_VALIDATION_SESSION_KEY: u32 = 16u32; +pub const MSV1_0_VALIDATION_USER_FLAGS: u32 = 32u32; +pub const MSV1_0_VALIDATION_USER_ID: u32 = 64u32; +pub const MsV1_0CacheLogon: MSV1_0_PROTOCOL_MESSAGE_TYPE = 8i32; +pub const MsV1_0CacheLookup: MSV1_0_PROTOCOL_MESSAGE_TYPE = 11i32; +pub const MsV1_0CacheLookupEx: MSV1_0_PROTOCOL_MESSAGE_TYPE = 17i32; +pub const MsV1_0ChangeCachedPassword: MSV1_0_PROTOCOL_MESSAGE_TYPE = 6i32; +pub const MsV1_0ChangePassword: MSV1_0_PROTOCOL_MESSAGE_TYPE = 5i32; +pub const MsV1_0ClearCachedCredentials: MSV1_0_PROTOCOL_MESSAGE_TYPE = 14i32; +pub const MsV1_0ConfigLocalAliases: MSV1_0_PROTOCOL_MESSAGE_TYPE = 13i32; +pub const MsV1_0DecryptDpapiMasterKey: MSV1_0_PROTOCOL_MESSAGE_TYPE = 20i32; +pub const MsV1_0DeleteTbalSecrets: MSV1_0_PROTOCOL_MESSAGE_TYPE = 24i32; +pub const MsV1_0DeriveCredential: MSV1_0_PROTOCOL_MESSAGE_TYPE = 10i32; +pub const MsV1_0EnumerateUsers: MSV1_0_PROTOCOL_MESSAGE_TYPE = 2i32; +pub const MsV1_0GenericPassthrough: MSV1_0_PROTOCOL_MESSAGE_TYPE = 7i32; +pub const MsV1_0GetCredentialKey: MSV1_0_PROTOCOL_MESSAGE_TYPE = 18i32; +pub const MsV1_0GetStrongCredentialKey: MSV1_0_PROTOCOL_MESSAGE_TYPE = 21i32; +pub const MsV1_0GetUserInfo: MSV1_0_PROTOCOL_MESSAGE_TYPE = 3i32; +pub const MsV1_0InteractiveLogon: MSV1_0_LOGON_SUBMIT_TYPE = 2i32; +pub const MsV1_0InteractiveProfile: MSV1_0_PROFILE_BUFFER_TYPE = 2i32; +pub const MsV1_0Lm20ChallengeRequest: MSV1_0_PROTOCOL_MESSAGE_TYPE = 0i32; +pub const MsV1_0Lm20GetChallengeResponse: MSV1_0_PROTOCOL_MESSAGE_TYPE = 1i32; +pub const MsV1_0Lm20Logon: MSV1_0_LOGON_SUBMIT_TYPE = 3i32; +pub const MsV1_0Lm20LogonProfile: MSV1_0_PROFILE_BUFFER_TYPE = 3i32; +pub const MsV1_0LookupToken: MSV1_0_PROTOCOL_MESSAGE_TYPE = 15i32; +pub const MsV1_0LuidLogon: MSV1_0_LOGON_SUBMIT_TYPE = 84i32; +pub const MsV1_0NetworkLogon: MSV1_0_LOGON_SUBMIT_TYPE = 4i32; +pub const MsV1_0NoElevationLogon: MSV1_0_LOGON_SUBMIT_TYPE = 83i32; +pub const MsV1_0ProvisionTbal: MSV1_0_PROTOCOL_MESSAGE_TYPE = 23i32; +pub const MsV1_0ReLogonUsers: MSV1_0_PROTOCOL_MESSAGE_TYPE = 4i32; +pub const MsV1_0S4ULogon: MSV1_0_LOGON_SUBMIT_TYPE = 12i32; +pub const MsV1_0SetProcessOption: MSV1_0_PROTOCOL_MESSAGE_TYPE = 12i32; +pub const MsV1_0SetThreadOption: MSV1_0_PROTOCOL_MESSAGE_TYPE = 19i32; +pub const MsV1_0SmartCardProfile: MSV1_0_PROFILE_BUFFER_TYPE = 4i32; +pub const MsV1_0SubAuth: MSV1_0_PROTOCOL_MESSAGE_TYPE = 9i32; +pub const MsV1_0SubAuthLogon: MSV1_0_LOGON_SUBMIT_TYPE = 5i32; +pub const MsV1_0TransferCred: MSV1_0_PROTOCOL_MESSAGE_TYPE = 22i32; +pub const MsV1_0ValidateAuth: MSV1_0_PROTOCOL_MESSAGE_TYPE = 16i32; +pub const MsV1_0VirtualLogon: MSV1_0_LOGON_SUBMIT_TYPE = 82i32; +pub const MsV1_0WorkstationUnlockLogon: MSV1_0_LOGON_SUBMIT_TYPE = 7i32; +pub const MsvAvChannelBindings: MSV1_0_AVID = 10i32; +pub const MsvAvDnsComputerName: MSV1_0_AVID = 3i32; +pub const MsvAvDnsDomainName: MSV1_0_AVID = 4i32; +pub const MsvAvDnsTreeName: MSV1_0_AVID = 5i32; +pub const MsvAvEOL: MSV1_0_AVID = 0i32; +pub const MsvAvFlags: MSV1_0_AVID = 6i32; +pub const MsvAvNbComputerName: MSV1_0_AVID = 1i32; +pub const MsvAvNbDomainName: MSV1_0_AVID = 2i32; +pub const MsvAvRestrictions: MSV1_0_AVID = 8i32; +pub const MsvAvTargetName: MSV1_0_AVID = 9i32; +pub const MsvAvTimestamp: MSV1_0_AVID = 7i32; +pub const NEGOSSP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Negotiate"); +pub const NEGOSSP_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Negotiate"); +pub const NEGOSSP_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Negotiate"); +pub const NEGOTIATE_ALLOW_NTLM: u32 = 268435456u32; +pub const NEGOTIATE_MAX_PREFIX: u32 = 32u32; +pub const NEGOTIATE_NEG_NTLM: u32 = 536870912u32; +pub const NGC_DATA_FLAG_IS_CLOUD_TRUST_CRED: u32 = 8u32; +pub const NGC_DATA_FLAG_IS_SMARTCARD_DATA: u32 = 4u32; +pub const NGC_DATA_FLAG_KERB_CERTIFICATE_LOGON_FLAG_CHECK_DUPLICATES: u32 = 1u32; +pub const NGC_DATA_FLAG_KERB_CERTIFICATE_LOGON_FLAG_USE_CERTIFICATE_INFO: u32 = 2u32; +pub const NOTIFIER_FLAG_NEW_THREAD: u32 = 1u32; +pub const NOTIFIER_FLAG_ONE_SHOT: u32 = 2u32; +pub const NOTIFIER_FLAG_SECONDS: u32 = 2147483648u32; +pub const NOTIFIER_TYPE_HANDLE_WAIT: u32 = 2u32; +pub const NOTIFIER_TYPE_IMMEDIATE: u32 = 16u32; +pub const NOTIFIER_TYPE_INTERVAL: u32 = 1u32; +pub const NOTIFIER_TYPE_NOTIFY_EVENT: u32 = 4u32; +pub const NOTIFIER_TYPE_STATE_CHANGE: u32 = 3u32; +pub const NOTIFY_CLASS_DOMAIN_CHANGE: u32 = 3u32; +pub const NOTIFY_CLASS_PACKAGE_CHANGE: u32 = 1u32; +pub const NOTIFY_CLASS_REGISTRY_CHANGE: u32 = 4u32; +pub const NOTIFY_CLASS_ROLE_CHANGE: u32 = 2u32; +pub const NO_LONG_NAMES: u32 = 2u32; +pub const NTLMSP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NTLM"); +pub const NTLMSP_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("NTLM"); +pub const NameCanonical: EXTENDED_NAME_FORMAT = 7i32; +pub const NameCanonicalEx: EXTENDED_NAME_FORMAT = 9i32; +pub const NameDisplay: EXTENDED_NAME_FORMAT = 3i32; +pub const NameDnsDomain: EXTENDED_NAME_FORMAT = 12i32; +pub const NameFullyQualifiedDN: EXTENDED_NAME_FORMAT = 1i32; +pub const NameGivenName: EXTENDED_NAME_FORMAT = 13i32; +pub const NameSamCompatible: EXTENDED_NAME_FORMAT = 2i32; +pub const NameServicePrincipal: EXTENDED_NAME_FORMAT = 10i32; +pub const NameSurname: EXTENDED_NAME_FORMAT = 14i32; +pub const NameUniqueId: EXTENDED_NAME_FORMAT = 6i32; +pub const NameUnknown: EXTENDED_NAME_FORMAT = 0i32; +pub const NameUserPrincipal: EXTENDED_NAME_FORMAT = 8i32; +pub const NegCallPackageMax: NEGOTIATE_MESSAGES = 4i32; +pub const NegEnumPackagePrefixes: NEGOTIATE_MESSAGES = 0i32; +pub const NegGetCallerName: NEGOTIATE_MESSAGES = 1i32; +pub const NegMsgReserved1: NEGOTIATE_MESSAGES = 3i32; +pub const NegTransferCredentials: NEGOTIATE_MESSAGES = 2i32; +pub const NetlogonGenericInformation: NETLOGON_LOGON_INFO_CLASS = 4i32; +pub const NetlogonInteractiveInformation: NETLOGON_LOGON_INFO_CLASS = 1i32; +pub const NetlogonInteractiveTransitiveInformation: NETLOGON_LOGON_INFO_CLASS = 5i32; +pub const NetlogonNetworkInformation: NETLOGON_LOGON_INFO_CLASS = 2i32; +pub const NetlogonNetworkTransitiveInformation: NETLOGON_LOGON_INFO_CLASS = 6i32; +pub const NetlogonServiceInformation: NETLOGON_LOGON_INFO_CLASS = 3i32; +pub const NetlogonServiceTransitiveInformation: NETLOGON_LOGON_INFO_CLASS = 7i32; +pub const PCT1SP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft PCT 1.0"); +pub const PCT1SP_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft PCT 1.0"); +pub const PCT1SP_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft PCT 1.0"); +pub const PER_USER_AUDIT_FAILURE_EXCLUDE: u32 = 8u32; +pub const PER_USER_AUDIT_FAILURE_INCLUDE: u32 = 4u32; +pub const PER_USER_AUDIT_NONE: u32 = 16u32; +pub const PER_USER_AUDIT_SUCCESS_EXCLUDE: u32 = 2u32; +pub const PER_USER_AUDIT_SUCCESS_INCLUDE: u32 = 1u32; +pub const PER_USER_POLICY_UNCHANGED: u32 = 0u32; +pub const PKU2U_PACKAGE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("pku2u"); +pub const PKU2U_PACKAGE_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("pku2u"); +pub const PKU2U_PACKAGE_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("pku2u"); +pub const POLICY_AUDIT_EVENT_FAILURE: i32 = 2i32; +pub const POLICY_AUDIT_EVENT_NONE: i32 = 4i32; +pub const POLICY_AUDIT_EVENT_SUCCESS: i32 = 1i32; +pub const POLICY_AUDIT_EVENT_UNCHANGED: i32 = 0i32; +pub const POLICY_AUDIT_LOG_ADMIN: i32 = 512i32; +pub const POLICY_CREATE_ACCOUNT: i32 = 16i32; +pub const POLICY_CREATE_PRIVILEGE: i32 = 64i32; +pub const POLICY_CREATE_SECRET: i32 = 32i32; +pub const POLICY_GET_PRIVATE_INFORMATION: i32 = 4i32; +pub const POLICY_KERBEROS_VALIDATE_CLIENT: u32 = 128u32; +pub const POLICY_LOOKUP_NAMES: i32 = 2048i32; +pub const POLICY_NOTIFICATION: i32 = 4096i32; +pub const POLICY_QOS_ALLOW_LOCAL_ROOT_CERT_STORE: u32 = 32u32; +pub const POLICY_QOS_DHCP_SERVER_ALLOWED: u32 = 128u32; +pub const POLICY_QOS_INBOUND_CONFIDENTIALITY: u32 = 16u32; +pub const POLICY_QOS_INBOUND_INTEGRITY: u32 = 8u32; +pub const POLICY_QOS_OUTBOUND_CONFIDENTIALITY: u32 = 4u32; +pub const POLICY_QOS_OUTBOUND_INTEGRITY: u32 = 2u32; +pub const POLICY_QOS_RAS_SERVER_ALLOWED: u32 = 64u32; +pub const POLICY_QOS_SCHANNEL_REQUIRED: u32 = 1u32; +pub const POLICY_SERVER_ADMIN: i32 = 1024i32; +pub const POLICY_SET_AUDIT_REQUIREMENTS: i32 = 256i32; +pub const POLICY_SET_DEFAULT_QUOTA_LIMITS: i32 = 128i32; +pub const POLICY_TRUST_ADMIN: i32 = 8i32; +pub const POLICY_VIEW_AUDIT_INFORMATION: i32 = 2i32; +pub const POLICY_VIEW_LOCAL_INFORMATION: i32 = 1i32; +pub const PRIMARY_CRED_ARSO_LOGON: u32 = 2097152u32; +pub const PRIMARY_CRED_AUTH_ID: u32 = 512u32; +pub const PRIMARY_CRED_CACHED_INTERACTIVE_LOGON: u32 = 262144u32; +pub const PRIMARY_CRED_CACHED_LOGON: u32 = 8u32; +pub const PRIMARY_CRED_CLEAR_PASSWORD: u32 = 1u32; +pub const PRIMARY_CRED_DO_NOT_SPLIT: u32 = 1024u32; +pub const PRIMARY_CRED_ENCRYPTED_CREDGUARD_PASSWORD: u32 = 131072u32; +pub const PRIMARY_CRED_ENTERPRISE_INTERNET_USER: u32 = 65536u32; +pub const PRIMARY_CRED_EX: u32 = 4096u32; +pub const PRIMARY_CRED_INTERACTIVE_FIDO_LOGON: u32 = 1048576u32; +pub const PRIMARY_CRED_INTERACTIVE_NGC_LOGON: u32 = 524288u32; +pub const PRIMARY_CRED_INTERACTIVE_SMARTCARD_LOGON: u32 = 64u32; +pub const PRIMARY_CRED_INTERNET_USER: u32 = 256u32; +pub const PRIMARY_CRED_LOGON_LUA: u32 = 32u32; +pub const PRIMARY_CRED_LOGON_NO_TCB: u32 = 16u32; +pub const PRIMARY_CRED_LOGON_PACKAGE_SHIFT: u32 = 24u32; +pub const PRIMARY_CRED_OWF_PASSWORD: u32 = 2u32; +pub const PRIMARY_CRED_PACKAGE_MASK: u32 = 4278190080u32; +pub const PRIMARY_CRED_PACKED_CREDS: u32 = 32768u32; +pub const PRIMARY_CRED_PROTECTED_USER: u32 = 2048u32; +pub const PRIMARY_CRED_REFRESH_NEEDED: u32 = 128u32; +pub const PRIMARY_CRED_RESTRICTED_TS: u32 = 16384u32; +pub const PRIMARY_CRED_SUPPLEMENTAL: u32 = 4194304u32; +pub const PRIMARY_CRED_TRANSFER: u32 = 8192u32; +pub const PRIMARY_CRED_UPDATE: u32 = 4u32; +pub const Pku2uCertificateS4ULogon: PKU2U_LOGON_SUBMIT_TYPE = 14i32; +pub const PolicyAccountDomainInformation: POLICY_INFORMATION_CLASS = 5i32; +pub const PolicyAuditEventsInformation: POLICY_INFORMATION_CLASS = 2i32; +pub const PolicyAuditFullQueryInformation: POLICY_INFORMATION_CLASS = 11i32; +pub const PolicyAuditFullSetInformation: POLICY_INFORMATION_CLASS = 10i32; +pub const PolicyAuditLogInformation: POLICY_INFORMATION_CLASS = 1i32; +pub const PolicyDefaultQuotaInformation: POLICY_INFORMATION_CLASS = 8i32; +pub const PolicyDnsDomainInformation: POLICY_INFORMATION_CLASS = 12i32; +pub const PolicyDnsDomainInformationInt: POLICY_INFORMATION_CLASS = 13i32; +pub const PolicyDomainEfsInformation: POLICY_DOMAIN_INFORMATION_CLASS = 2i32; +pub const PolicyDomainKerberosTicketInformation: POLICY_DOMAIN_INFORMATION_CLASS = 3i32; +pub const PolicyLastEntry: POLICY_INFORMATION_CLASS = 16i32; +pub const PolicyLocalAccountDomainInformation: POLICY_INFORMATION_CLASS = 14i32; +pub const PolicyLsaServerRoleInformation: POLICY_INFORMATION_CLASS = 6i32; +pub const PolicyMachineAccountInformation: POLICY_INFORMATION_CLASS = 15i32; +pub const PolicyModificationInformation: POLICY_INFORMATION_CLASS = 9i32; +pub const PolicyNotifyAccountDomainInformation: POLICY_NOTIFICATION_INFORMATION_CLASS = 2i32; +pub const PolicyNotifyAuditEventsInformation: POLICY_NOTIFICATION_INFORMATION_CLASS = 1i32; +pub const PolicyNotifyDnsDomainInformation: POLICY_NOTIFICATION_INFORMATION_CLASS = 4i32; +pub const PolicyNotifyDomainEfsInformation: POLICY_NOTIFICATION_INFORMATION_CLASS = 5i32; +pub const PolicyNotifyDomainKerberosTicketInformation: POLICY_NOTIFICATION_INFORMATION_CLASS = 6i32; +pub const PolicyNotifyGlobalSaclInformation: POLICY_NOTIFICATION_INFORMATION_CLASS = 8i32; +pub const PolicyNotifyMachineAccountPasswordInformation: POLICY_NOTIFICATION_INFORMATION_CLASS = 7i32; +pub const PolicyNotifyMax: POLICY_NOTIFICATION_INFORMATION_CLASS = 9i32; +pub const PolicyNotifyServerRoleInformation: POLICY_NOTIFICATION_INFORMATION_CLASS = 3i32; +pub const PolicyPdAccountInformation: POLICY_INFORMATION_CLASS = 4i32; +pub const PolicyPrimaryDomainInformation: POLICY_INFORMATION_CLASS = 3i32; +pub const PolicyReplicaSourceInformation: POLICY_INFORMATION_CLASS = 7i32; +pub const PolicyServerRoleBackup: POLICY_LSA_SERVER_ROLE = 2i32; +pub const PolicyServerRolePrimary: POLICY_LSA_SERVER_ROLE = 3i32; +pub const RCRED_CRED_EXISTS: u32 = 1u32; +pub const RCRED_STATUS_NOCRED: u32 = 0u32; +pub const RCRED_STATUS_UNKNOWN_ISSUER: u32 = 2u32; +pub const RTL_ENCRYPT_MEMORY_SIZE: u32 = 8u32; +pub const RTL_ENCRYPT_OPTION_CROSS_PROCESS: u32 = 1u32; +pub const RTL_ENCRYPT_OPTION_FOR_SYSTEM: u32 = 4u32; +pub const RTL_ENCRYPT_OPTION_SAME_LOGON: u32 = 2u32; +pub const SAM_CREDENTIAL_UPDATE_FREE_ROUTINE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CredentialUpdateFree"); +pub const SAM_CREDENTIAL_UPDATE_NOTIFY_ROUTINE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CredentialUpdateNotify"); +pub const SAM_CREDENTIAL_UPDATE_REGISTER_MAPPED_ENTRYPOINTS_ROUTINE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("RegisterMappedEntrypoints"); +pub const SAM_CREDENTIAL_UPDATE_REGISTER_ROUTINE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CredentialUpdateRegister"); +pub const SAM_DAYS_PER_WEEK: u32 = 7u32; +pub const SAM_INIT_NOTIFICATION_ROUTINE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("InitializeChangeNotify"); +pub const SAM_PASSWORD_CHANGE_NOTIFY_ROUTINE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("PasswordChangeNotify"); +pub const SAM_PASSWORD_FILTER_ROUTINE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("PasswordFilter"); +pub const SASL_OPTION_AUTHZ_PROCESSING: u32 = 4u32; +pub const SASL_OPTION_AUTHZ_STRING: u32 = 3u32; +pub const SASL_OPTION_RECV_SIZE: u32 = 2u32; +pub const SASL_OPTION_SEND_SIZE: u32 = 1u32; +pub const SCHANNEL_ALERT: u32 = 2u32; +pub const SCHANNEL_CRED_VERSION: u32 = 4u32; +pub const SCHANNEL_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Schannel"); +pub const SCHANNEL_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Schannel"); +pub const SCHANNEL_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Schannel"); +pub const SCHANNEL_RENEGOTIATE: u32 = 0u32; +pub const SCHANNEL_SECRET_PRIVKEY: u32 = 2u32; +pub const SCHANNEL_SECRET_TYPE_CAPI: u32 = 1u32; +pub const SCHANNEL_SESSION: u32 = 3u32; +pub const SCHANNEL_SHUTDOWN: u32 = 1u32; +pub const SCH_ALLOW_NULL_ENCRYPTION: u32 = 33554432u32; +pub const SCH_CREDENTIALS_VERSION: u32 = 5u32; +pub const SCH_CRED_AUTO_CRED_VALIDATION: SCHANNEL_CRED_FLAGS = 32u32; +pub const SCH_CRED_CACHE_ONLY_URL_RETRIEVAL: u32 = 32768u32; +pub const SCH_CRED_CACHE_ONLY_URL_RETRIEVAL_ON_CREATE: SCHANNEL_CRED_FLAGS = 131072u32; +pub const SCH_CRED_CERT_CONTEXT: u32 = 3u32; +pub const SCH_CRED_DEFERRED_CRED_VALIDATION: u32 = 67108864u32; +pub const SCH_CRED_DISABLE_RECONNECTS: u32 = 128u32; +pub const SCH_CRED_FORMAT_CERT_CONTEXT: u32 = 0u32; +pub const SCH_CRED_FORMAT_CERT_HASH: u32 = 1u32; +pub const SCH_CRED_FORMAT_CERT_HASH_STORE: u32 = 2u32; +pub const SCH_CRED_IGNORE_NO_REVOCATION_CHECK: SCHANNEL_CRED_FLAGS = 2048u32; +pub const SCH_CRED_IGNORE_REVOCATION_OFFLINE: SCHANNEL_CRED_FLAGS = 4096u32; +pub const SCH_CRED_MANUAL_CRED_VALIDATION: SCHANNEL_CRED_FLAGS = 8u32; +pub const SCH_CRED_MAX_STORE_NAME_SIZE: u32 = 128u32; +pub const SCH_CRED_MAX_SUPPORTED_ALGS: u32 = 256u32; +pub const SCH_CRED_MAX_SUPPORTED_ALPN_IDS: u32 = 16u32; +pub const SCH_CRED_MAX_SUPPORTED_CERTS: u32 = 100u32; +pub const SCH_CRED_MAX_SUPPORTED_CHAINING_MODES: u32 = 16u32; +pub const SCH_CRED_MAX_SUPPORTED_CRYPTO_SETTINGS: u32 = 16u32; +pub const SCH_CRED_MAX_SUPPORTED_PARAMETERS: u32 = 16u32; +pub const SCH_CRED_MEMORY_STORE_CERT: u32 = 65536u32; +pub const SCH_CRED_NO_DEFAULT_CREDS: SCHANNEL_CRED_FLAGS = 16u32; +pub const SCH_CRED_NO_SERVERNAME_CHECK: SCHANNEL_CRED_FLAGS = 4u32; +pub const SCH_CRED_NO_SYSTEM_MAPPER: SCHANNEL_CRED_FLAGS = 2u32; +pub const SCH_CRED_RESTRICTED_ROOTS: u32 = 8192u32; +pub const SCH_CRED_REVOCATION_CHECK_CACHE_ONLY: u32 = 16384u32; +pub const SCH_CRED_REVOCATION_CHECK_CHAIN: SCHANNEL_CRED_FLAGS = 512u32; +pub const SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT: SCHANNEL_CRED_FLAGS = 1024u32; +pub const SCH_CRED_REVOCATION_CHECK_END_CERT: SCHANNEL_CRED_FLAGS = 256u32; +pub const SCH_CRED_SNI_CREDENTIAL: u32 = 524288u32; +pub const SCH_CRED_SNI_ENABLE_OCSP: u32 = 1048576u32; +pub const SCH_CRED_USE_DEFAULT_CREDS: SCHANNEL_CRED_FLAGS = 64u32; +pub const SCH_CRED_V1: u32 = 1u32; +pub const SCH_CRED_V2: u32 = 2u32; +pub const SCH_CRED_V3: u32 = 3u32; +pub const SCH_CRED_VERSION: u32 = 2u32; +pub const SCH_CRED_X509_CAPI: u32 = 2u32; +pub const SCH_CRED_X509_CERTCHAIN: u32 = 1u32; +pub const SCH_DISABLE_RECONNECTS: SCHANNEL_CRED_FLAGS = 128u32; +pub const SCH_EXTENSIONS_OPTIONS_NONE: SchGetExtensionsOptions = 0i32; +pub const SCH_MACHINE_CERT_HASH: u32 = 1u32; +pub const SCH_MAX_EXT_SUBSCRIPTIONS: u32 = 2u32; +pub const SCH_NO_RECORD_HEADER: SchGetExtensionsOptions = 1i32; +pub const SCH_SEND_AUX_RECORD: SCHANNEL_CRED_FLAGS = 2097152u32; +pub const SCH_SEND_ROOT_CERT: SCHANNEL_CRED_FLAGS = 262144u32; +pub const SCH_USE_DTLS_ONLY: u32 = 16777216u32; +pub const SCH_USE_PRESHAREDKEY_ONLY: SCHANNEL_CRED_FLAGS = 8388608u32; +pub const SCH_USE_STRONG_CRYPTO: SCHANNEL_CRED_FLAGS = 4194304u32; +pub const SECBUFFER_ALERT: u32 = 17u32; +pub const SECBUFFER_APPLICATION_PROTOCOLS: u32 = 18u32; +pub const SECBUFFER_ATTRMASK: u32 = 4026531840u32; +pub const SECBUFFER_CERTIFICATE_REQUEST_CONTEXT: u32 = 29u32; +pub const SECBUFFER_CHANGE_PASS_RESPONSE: u32 = 15u32; +pub const SECBUFFER_CHANNEL_BINDINGS: u32 = 14u32; +pub const SECBUFFER_DATA: u32 = 1u32; +pub const SECBUFFER_DTLS_MTU: u32 = 24u32; +pub const SECBUFFER_EMPTY: u32 = 0u32; +pub const SECBUFFER_EXTRA: u32 = 5u32; +pub const SECBUFFER_FLAGS: u32 = 27u32; +pub const SECBUFFER_KERNEL_MAP: u32 = 536870912u32; +pub const SECBUFFER_MECHLIST: u32 = 11u32; +pub const SECBUFFER_MECHLIST_SIGNATURE: u32 = 12u32; +pub const SECBUFFER_MISSING: u32 = 4u32; +pub const SECBUFFER_NEGOTIATION_INFO: u32 = 8u32; +pub const SECBUFFER_PADDING: u32 = 9u32; +pub const SECBUFFER_PKG_PARAMS: u32 = 3u32; +pub const SECBUFFER_PRESHARED_KEY: u32 = 22u32; +pub const SECBUFFER_PRESHARED_KEY_IDENTITY: u32 = 23u32; +pub const SECBUFFER_READONLY: u32 = 2147483648u32; +pub const SECBUFFER_READONLY_WITH_CHECKSUM: u32 = 268435456u32; +pub const SECBUFFER_RESERVED: u32 = 1610612736u32; +pub const SECBUFFER_SEND_GENERIC_TLS_EXTENSION: u32 = 25u32; +pub const SECBUFFER_SRTP_MASTER_KEY_IDENTIFIER: u32 = 20u32; +pub const SECBUFFER_SRTP_PROTECTION_PROFILES: u32 = 19u32; +pub const SECBUFFER_STREAM: u32 = 10u32; +pub const SECBUFFER_STREAM_HEADER: u32 = 7u32; +pub const SECBUFFER_STREAM_TRAILER: u32 = 6u32; +pub const SECBUFFER_SUBSCRIBE_GENERIC_TLS_EXTENSION: u32 = 26u32; +pub const SECBUFFER_TARGET: u32 = 13u32; +pub const SECBUFFER_TARGET_HOST: u32 = 16u32; +pub const SECBUFFER_TOKEN: u32 = 2u32; +pub const SECBUFFER_TOKEN_BINDING: u32 = 21u32; +pub const SECBUFFER_TRAFFIC_SECRETS: u32 = 28u32; +pub const SECBUFFER_UNMAPPED: u32 = 1073741824u32; +pub const SECBUFFER_VERSION: u32 = 0u32; +pub const SECPKGCONTEXT_CIPHERINFO_V1: u32 = 1u32; +pub const SECPKGCONTEXT_CONNECTION_INFO_EX_V1: u32 = 1u32; +pub const SECPKG_ANSI_ATTRIBUTE: u32 = 0u32; +pub const SECPKG_ATTR_ACCESS_TOKEN: SECPKG_ATTR = 18u32; +pub const SECPKG_ATTR_APPLICATION_PROTOCOL: u32 = 35u32; +pub const SECPKG_ATTR_APP_DATA: SECPKG_ATTR = 94u32; +pub const SECPKG_ATTR_AUTHENTICATION_ID: u32 = 20u32; +pub const SECPKG_ATTR_AUTHORITY: SECPKG_ATTR = 6u32; +pub const SECPKG_ATTR_CC_POLICY_RESULT: u32 = 97u32; +pub const SECPKG_ATTR_CERT_CHECK_RESULT: u32 = 113u32; +pub const SECPKG_ATTR_CERT_CHECK_RESULT_INPROC: u32 = 114u32; +pub const SECPKG_ATTR_CERT_TRUST_STATUS: SECPKG_ATTR = 2147483780u32; +pub const SECPKG_ATTR_CIPHER_INFO: u32 = 100u32; +pub const SECPKG_ATTR_CIPHER_STRENGTHS: u32 = 87u32; +pub const SECPKG_ATTR_CLIENT_CERT_POLICY: u32 = 96u32; +pub const SECPKG_ATTR_CLIENT_SPECIFIED_TARGET: SECPKG_ATTR = 27u32; +pub const SECPKG_ATTR_CONNECTION_INFO: SECPKG_ATTR = 90u32; +pub const SECPKG_ATTR_CONNECTION_INFO_EX: u32 = 110u32; +pub const SECPKG_ATTR_CONTEXT_DELETED: u32 = 33u32; +pub const SECPKG_ATTR_CREDENTIAL_NAME: u32 = 16u32; +pub const SECPKG_ATTR_CREDS: SECPKG_ATTR = 2147483776u32; +pub const SECPKG_ATTR_CREDS_2: SECPKG_ATTR = 2147483782u32; +pub const SECPKG_ATTR_C_ACCESS_TOKEN: SECPKG_ATTR = 2147483666u32; +pub const SECPKG_ATTR_C_FULL_ACCESS_TOKEN: SECPKG_ATTR = 2147483778u32; +pub const SECPKG_ATTR_DCE_INFO: SECPKG_ATTR = 3u32; +pub const SECPKG_ATTR_DTLS_MTU: SECPKG_ATTR = 34u32; +pub const SECPKG_ATTR_EAP_KEY_BLOCK: SECPKG_ATTR = 91u32; +pub const SECPKG_ATTR_EAP_PRF_INFO: SECPKG_ATTR = 101u32; +pub const SECPKG_ATTR_EARLY_START: SECPKG_ATTR = 105u32; +pub const SECPKG_ATTR_ENDPOINT_BINDINGS: SECPKG_ATTR = 26u32; +pub const SECPKG_ATTR_FLAGS: SECPKG_ATTR = 14u32; +pub const SECPKG_ATTR_ISSUER_LIST: u32 = 80u32; +pub const SECPKG_ATTR_ISSUER_LIST_EX: SECPKG_ATTR = 89u32; +pub const SECPKG_ATTR_IS_LOOPBACK: u32 = 37u32; +pub const SECPKG_ATTR_KEYING_MATERIAL: u32 = 107u32; +pub const SECPKG_ATTR_KEYING_MATERIAL_INFO: SECPKG_ATTR = 106u32; +pub const SECPKG_ATTR_KEYING_MATERIAL_INPROC: u32 = 112u32; +pub const SECPKG_ATTR_KEYING_MATERIAL_TOKEN_BINDING: u32 = 111u32; +pub const SECPKG_ATTR_KEY_INFO: SECPKG_ATTR = 5u32; +pub const SECPKG_ATTR_LAST_CLIENT_TOKEN_STATUS: SECPKG_ATTR = 30u32; +pub const SECPKG_ATTR_LIFESPAN: SECPKG_ATTR = 2u32; +pub const SECPKG_ATTR_LOCAL_CERT_CONTEXT: SECPKG_ATTR = 84u32; +pub const SECPKG_ATTR_LOCAL_CERT_INFO: u32 = 99u32; +pub const SECPKG_ATTR_LOCAL_CRED: SECPKG_ATTR = 82u32; +pub const SECPKG_ATTR_LOGOFF_TIME: u32 = 21u32; +pub const SECPKG_ATTR_MAPPED_CRED_ATTR: u32 = 92u32; +pub const SECPKG_ATTR_NAMES: SECPKG_ATTR = 1u32; +pub const SECPKG_ATTR_NATIVE_NAMES: SECPKG_ATTR = 13u32; +pub const SECPKG_ATTR_NEGOTIATED_TLS_EXTENSIONS: u32 = 36u32; +pub const SECPKG_ATTR_NEGOTIATION_INFO: SECPKG_ATTR = 12u32; +pub const SECPKG_ATTR_NEGOTIATION_PACKAGE: SECPKG_ATTR = 2147483777u32; +pub const SECPKG_ATTR_NEGO_INFO_FLAG_NO_KERBEROS: u32 = 1u32; +pub const SECPKG_ATTR_NEGO_INFO_FLAG_NO_NTLM: u32 = 2u32; +pub const SECPKG_ATTR_NEGO_KEYS: u32 = 22u32; +pub const SECPKG_ATTR_NEGO_PKG_INFO: u32 = 31u32; +pub const SECPKG_ATTR_NEGO_STATUS: u32 = 32u32; +pub const SECPKG_ATTR_PACKAGE_INFO: SECPKG_ATTR = 10u32; +pub const SECPKG_ATTR_PASSWORD_EXPIRY: SECPKG_ATTR = 8u32; +pub const SECPKG_ATTR_PROMPTING_NEEDED: u32 = 24u32; +pub const SECPKG_ATTR_PROTO_INFO: u32 = 7u32; +pub const SECPKG_ATTR_REMOTE_CERTIFICATES: u32 = 95u32; +pub const SECPKG_ATTR_REMOTE_CERT_CHAIN: u32 = 103u32; +pub const SECPKG_ATTR_REMOTE_CERT_CONTEXT: SECPKG_ATTR = 83u32; +pub const SECPKG_ATTR_REMOTE_CRED: u32 = 81u32; +pub const SECPKG_ATTR_ROOT_STORE: SECPKG_ATTR = 85u32; +pub const SECPKG_ATTR_SASL_CONTEXT: u32 = 65536u32; +pub const SECPKG_ATTR_SERIALIZED_REMOTE_CERT_CONTEXT: u32 = 117u32; +pub const SECPKG_ATTR_SERIALIZED_REMOTE_CERT_CONTEXT_INPROC: u32 = 116u32; +pub const SECPKG_ATTR_SERVER_AUTH_FLAGS: SECPKG_ATTR = 2147483779u32; +pub const SECPKG_ATTR_SESSION_INFO: SECPKG_ATTR = 93u32; +pub const SECPKG_ATTR_SESSION_KEY: SECPKG_ATTR = 9u32; +pub const SECPKG_ATTR_SESSION_TICKET_KEYS: u32 = 115u32; +pub const SECPKG_ATTR_SIZES: SECPKG_ATTR = 0u32; +pub const SECPKG_ATTR_SRTP_PARAMETERS: u32 = 108u32; +pub const SECPKG_ATTR_STREAM_SIZES: SECPKG_ATTR = 4u32; +pub const SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES: SECPKG_ATTR = 124u32; +pub const SECPKG_ATTR_SUPPORTED_ALGS: u32 = 86u32; +pub const SECPKG_ATTR_SUPPORTED_PROTOCOLS: u32 = 88u32; +pub const SECPKG_ATTR_SUPPORTED_SIGNATURES: SECPKG_ATTR = 102u32; +pub const SECPKG_ATTR_TARGET: u32 = 19u32; +pub const SECPKG_ATTR_TARGET_INFORMATION: SECPKG_ATTR = 17u32; +pub const SECPKG_ATTR_THUNK_ALL: u32 = 65536u32; +pub const SECPKG_ATTR_TOKEN_BINDING: u32 = 109u32; +pub const SECPKG_ATTR_UI_INFO: u32 = 104u32; +pub const SECPKG_ATTR_UNIQUE_BINDINGS: SECPKG_ATTR = 25u32; +pub const SECPKG_ATTR_USER_FLAGS: u32 = 11u32; +pub const SECPKG_ATTR_USE_NCRYPT: u32 = 98u32; +pub const SECPKG_ATTR_USE_VALIDATED: u32 = 15u32; +pub const SECPKG_CALLFLAGS_APPCONTAINER: u32 = 1u32; +pub const SECPKG_CALLFLAGS_APPCONTAINER_AUTHCAPABLE: u32 = 2u32; +pub const SECPKG_CALLFLAGS_APPCONTAINER_UPNCAPABLE: u32 = 8u32; +pub const SECPKG_CALLFLAGS_FORCE_SUPPLIED: u32 = 4u32; +pub const SECPKG_CALL_ANSI: u32 = 2u32; +pub const SECPKG_CALL_ASYNC_UPDATE: u32 = 4096u32; +pub const SECPKG_CALL_BUFFER_MARSHAL: u32 = 65536u32; +pub const SECPKG_CALL_CLEANUP: u32 = 32u32; +pub const SECPKG_CALL_CLOUDAP_CONNECT: u32 = 262144u32; +pub const SECPKG_CALL_IN_PROC: u32 = 16u32; +pub const SECPKG_CALL_IS_TCB: u32 = 512u32; +pub const SECPKG_CALL_KERNEL_MODE: u32 = 1u32; +pub const SECPKG_CALL_NEGO: u32 = 16384u32; +pub const SECPKG_CALL_NEGO_EXTENDER: u32 = 32768u32; +pub const SECPKG_CALL_NETWORK_ONLY: u32 = 1024u32; +pub const SECPKG_CALL_PACKAGE_TRANSFER_CRED_REQUEST_FLAG_CLEANUP_CREDENTIALS: u32 = 2u32; +pub const SECPKG_CALL_PACKAGE_TRANSFER_CRED_REQUEST_FLAG_OPTIMISTIC_LOGON: u32 = 1u32; +pub const SECPKG_CALL_PACKAGE_TRANSFER_CRED_REQUEST_FLAG_TO_SSO_SESSION: u32 = 4u32; +pub const SECPKG_CALL_PROCESS_TERM: u32 = 256u32; +pub const SECPKG_CALL_RECURSIVE: u32 = 8u32; +pub const SECPKG_CALL_SYSTEM_PROC: u32 = 8192u32; +pub const SECPKG_CALL_THREAD_TERM: u32 = 128u32; +pub const SECPKG_CALL_UNLOCK: u32 = 131072u32; +pub const SECPKG_CALL_URGENT: u32 = 4u32; +pub const SECPKG_CALL_WINLOGON: u32 = 2048u32; +pub const SECPKG_CALL_WOWA32: u32 = 262144u32; +pub const SECPKG_CALL_WOWCLIENT: u32 = 64u32; +pub const SECPKG_CALL_WOWX86: u32 = 64u32; +pub const SECPKG_CLIENT_PROCESS_TERMINATED: u32 = 1u32; +pub const SECPKG_CLIENT_THREAD_TERMINATED: u32 = 2u32; +pub const SECPKG_CONTEXT_EXPORT_DELETE_OLD: EXPORT_SECURITY_CONTEXT_FLAGS = 2u32; +pub const SECPKG_CONTEXT_EXPORT_RESET_NEW: EXPORT_SECURITY_CONTEXT_FLAGS = 1u32; +pub const SECPKG_CONTEXT_EXPORT_TO_KERNEL: EXPORT_SECURITY_CONTEXT_FLAGS = 4u32; +pub const SECPKG_CREDENTIAL_ATTRIBUTE: u32 = 0u32; +pub const SECPKG_CREDENTIAL_FLAGS_CALLER_HAS_TCB: u32 = 1u32; +pub const SECPKG_CREDENTIAL_FLAGS_CREDMAN_CRED: u32 = 2u32; +pub const SECPKG_CREDENTIAL_VERSION: u32 = 201u32; +pub const SECPKG_CRED_ATTR_CERT: u32 = 4u32; +pub const SECPKG_CRED_ATTR_KDC_PROXY_SETTINGS: u32 = 3u32; +pub const SECPKG_CRED_ATTR_NAMES: u32 = 1u32; +pub const SECPKG_CRED_ATTR_PAC_BYPASS: u32 = 5u32; +pub const SECPKG_CRED_ATTR_SSI_PROVIDER: u32 = 2u32; +pub const SECPKG_CRED_AUTOLOGON_RESTRICTED: u32 = 16u32; +pub const SECPKG_CRED_BOTH: u32 = 3u32; +pub const SECPKG_CRED_DEFAULT: u32 = 4u32; +pub const SECPKG_CRED_INBOUND: SECPKG_CRED = 1u32; +pub const SECPKG_CRED_OUTBOUND: SECPKG_CRED = 2u32; +pub const SECPKG_CRED_PROCESS_POLICY_ONLY: u32 = 32u32; +pub const SECPKG_CRED_RESERVED: u32 = 4026531840u32; +pub const SECPKG_FLAG_ACCEPT_WIN32_NAME: u32 = 512u32; +pub const SECPKG_FLAG_APPCONTAINER_CHECKS: u32 = 8388608u32; +pub const SECPKG_FLAG_APPCONTAINER_PASSTHROUGH: u32 = 4194304u32; +pub const SECPKG_FLAG_APPLY_LOOPBACK: u32 = 33554432u32; +pub const SECPKG_FLAG_ASCII_BUFFERS: u32 = 16384u32; +pub const SECPKG_FLAG_CLIENT_ONLY: u32 = 64u32; +pub const SECPKG_FLAG_CONNECTION: u32 = 16u32; +pub const SECPKG_FLAG_CREDENTIAL_ISOLATION_ENABLED: u32 = 16777216u32; +pub const SECPKG_FLAG_DATAGRAM: u32 = 8u32; +pub const SECPKG_FLAG_DELEGATION: u32 = 131072u32; +pub const SECPKG_FLAG_EXTENDED_ERROR: u32 = 128u32; +pub const SECPKG_FLAG_FRAGMENT: u32 = 32768u32; +pub const SECPKG_FLAG_GSS_COMPATIBLE: u32 = 4096u32; +pub const SECPKG_FLAG_IMPERSONATION: u32 = 256u32; +pub const SECPKG_FLAG_INTEGRITY: u32 = 1u32; +pub const SECPKG_FLAG_LOGON: u32 = 8192u32; +pub const SECPKG_FLAG_MULTI_REQUIRED: u32 = 32u32; +pub const SECPKG_FLAG_MUTUAL_AUTH: u32 = 65536u32; +pub const SECPKG_FLAG_NEGOTIABLE: u32 = 2048u32; +pub const SECPKG_FLAG_NEGOTIABLE2: u32 = 2097152u32; +pub const SECPKG_FLAG_NEGO_EXTENDER: u32 = 1048576u32; +pub const SECPKG_FLAG_PRIVACY: u32 = 2u32; +pub const SECPKG_FLAG_READONLY_WITH_CHECKSUM: u32 = 262144u32; +pub const SECPKG_FLAG_RESTRICTED_TOKENS: u32 = 524288u32; +pub const SECPKG_FLAG_STREAM: u32 = 1024u32; +pub const SECPKG_FLAG_TOKEN_ONLY: u32 = 4u32; +pub const SECPKG_ID_NONE: u32 = 65535u32; +pub const SECPKG_INTERFACE_VERSION: u32 = 65536u32; +pub const SECPKG_INTERFACE_VERSION_10: u32 = 33554432u32; +pub const SECPKG_INTERFACE_VERSION_11: u32 = 67108864u32; +pub const SECPKG_INTERFACE_VERSION_2: u32 = 131072u32; +pub const SECPKG_INTERFACE_VERSION_3: u32 = 262144u32; +pub const SECPKG_INTERFACE_VERSION_4: u32 = 524288u32; +pub const SECPKG_INTERFACE_VERSION_5: u32 = 1048576u32; +pub const SECPKG_INTERFACE_VERSION_6: u32 = 2097152u32; +pub const SECPKG_INTERFACE_VERSION_7: u32 = 4194304u32; +pub const SECPKG_INTERFACE_VERSION_8: u32 = 8388608u32; +pub const SECPKG_INTERFACE_VERSION_9: u32 = 16777216u32; +pub const SECPKG_LSAMODEINIT_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SpLsaModeInitialize"); +pub const SECPKG_MAX_OID_LENGTH: u32 = 32u32; +pub const SECPKG_MSVAV_FLAGS_VALID: u32 = 1u32; +pub const SECPKG_MSVAV_TIMESTAMP_VALID: u32 = 2u32; +pub const SECPKG_NEGOTIATION_COMPLETE: u32 = 0u32; +pub const SECPKG_NEGOTIATION_DIRECT: u32 = 3u32; +pub const SECPKG_NEGOTIATION_IN_PROGRESS: u32 = 2u32; +pub const SECPKG_NEGOTIATION_OPTIMISTIC: u32 = 1u32; +pub const SECPKG_NEGOTIATION_TRY_MULTICRED: u32 = 4u32; +pub const SECPKG_OPTIONS_PERMANENT: u32 = 1u32; +pub const SECPKG_OPTIONS_TYPE_LSA: SECURITY_PACKAGE_OPTIONS_TYPE = 1u32; +pub const SECPKG_OPTIONS_TYPE_SSPI: SECURITY_PACKAGE_OPTIONS_TYPE = 2u32; +pub const SECPKG_OPTIONS_TYPE_UNKNOWN: SECURITY_PACKAGE_OPTIONS_TYPE = 0u32; +pub const SECPKG_PACKAGE_CHANGE_LOAD: SECPKG_PACKAGE_CHANGE_TYPE = 0u32; +pub const SECPKG_PACKAGE_CHANGE_SELECT: SECPKG_PACKAGE_CHANGE_TYPE = 2u32; +pub const SECPKG_PACKAGE_CHANGE_UNLOAD: SECPKG_PACKAGE_CHANGE_TYPE = 1u32; +pub const SECPKG_PRIMARY_CRED_EX_FLAGS_EX_DELEGATION_TOKEN: u32 = 1u32; +pub const SECPKG_REDIRECTED_LOGON_GUID_INITIALIZER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc2be5457_82eb_483e_ae4e_7468ef14d509); +pub const SECPKG_STATE_CRED_ISOLATION_ENABLED: u32 = 32u32; +pub const SECPKG_STATE_DOMAIN_CONTROLLER: u32 = 4u32; +pub const SECPKG_STATE_ENCRYPTION_PERMITTED: u32 = 1u32; +pub const SECPKG_STATE_RESERVED_1: u32 = 2147483648u32; +pub const SECPKG_STATE_STANDALONE: u32 = 16u32; +pub const SECPKG_STATE_STRONG_ENCRYPTION_PERMITTED: u32 = 2u32; +pub const SECPKG_STATE_WORKSTATION: u32 = 8u32; +pub const SECPKG_SURROGATE_LOGON_VERSION_1: u32 = 1u32; +pub const SECPKG_UNICODE_ATTRIBUTE: u32 = 2147483648u32; +pub const SECPKG_USERMODEINIT_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SpUserModeInitialize"); +pub const SECQOP_WRAP_NO_ENCRYPT: u32 = 2147483649u32; +pub const SECQOP_WRAP_OOB_DATA: u32 = 1073741824u32; +pub const SECRET_QUERY_VALUE: i32 = 2i32; +pub const SECRET_SET_VALUE: i32 = 1i32; +pub const SECURITY_ENTRYPOINT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("INITSECURITYINTERFACEA"); +pub const SECURITY_ENTRYPOINT16: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("INITSECURITYINTERFACEA"); +pub const SECURITY_ENTRYPOINT_ANSI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InitSecurityInterfaceW"); +pub const SECURITY_ENTRYPOINT_ANSIA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("InitSecurityInterfaceA"); +pub const SECURITY_ENTRYPOINT_ANSIW: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("InitSecurityInterfaceW"); +pub const SECURITY_NATIVE_DREP: u32 = 16u32; +pub const SECURITY_NETWORK_DREP: u32 = 0u32; +pub const SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION: u32 = 1u32; +pub const SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2: u32 = 2u32; +pub const SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_3: u32 = 3u32; +pub const SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_4: u32 = 4u32; +pub const SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_5: u32 = 5u32; +pub const SEC_WINNT_AUTH_IDENTITY_ENCRYPT_FOR_SYSTEM: u32 = 4u32; +pub const SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON: u32 = 1u32; +pub const SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_PROCESS: u32 = 2u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER: u32 = 524288u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_NULL_DOMAIN: u32 = 262144u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_NULL_USER: u32 = 131072u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_PROCESS_ENCRYPTED: u32 = 16u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_RESERVED: u32 = 65536u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_CREDPROV_DO_NOT_LOAD: u32 = 268435456u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_CREDPROV_DO_NOT_SAVE: u32 = 2147483648u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_NO_CHECKBOX: u32 = 536870912u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_SAVE_CRED_BY_CALLER: u32 = 2147483648u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_SAVE_CRED_CHECKED: u32 = 1073741824u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_USE_MASK: u32 = 4278190080u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_SYSTEM_ENCRYPTED: u32 = 128u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_SYSTEM_PROTECTED: u32 = 32u32; +pub const SEC_WINNT_AUTH_IDENTITY_FLAGS_USER_PROTECTED: u32 = 64u32; +pub const SEC_WINNT_AUTH_IDENTITY_MARSHALLED: u32 = 4u32; +pub const SEC_WINNT_AUTH_IDENTITY_ONLY: u32 = 8u32; +pub const SEC_WINNT_AUTH_IDENTITY_VERSION: u32 = 512u32; +pub const SEC_WINNT_AUTH_IDENTITY_VERSION_2: u32 = 513u32; +pub const SESSION_TICKET_INFO_V0: u32 = 0u32; +pub const SESSION_TICKET_INFO_VERSION: u32 = 0u32; +pub const SE_ADT_OBJECT_ONLY: u32 = 1u32; +pub const SE_ADT_PARAMETERS_SELF_RELATIVE: u32 = 1u32; +pub const SE_ADT_PARAMETERS_SEND_TO_LSA: u32 = 2u32; +pub const SE_ADT_PARAMETER_EXTENSIBLE_AUDIT: u32 = 4u32; +pub const SE_ADT_PARAMETER_GENERIC_AUDIT: u32 = 8u32; +pub const SE_ADT_PARAMETER_WRITE_SYNCHRONOUS: u32 = 16u32; +pub const SE_ADT_POLICY_AUDIT_EVENT_TYPE_EX_BEGIN: u32 = 100u32; +pub const SE_BATCH_LOGON_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeBatchLogonRight"); +pub const SE_DENY_BATCH_LOGON_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeDenyBatchLogonRight"); +pub const SE_DENY_INTERACTIVE_LOGON_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeDenyInteractiveLogonRight"); +pub const SE_DENY_NETWORK_LOGON_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeDenyNetworkLogonRight"); +pub const SE_DENY_REMOTE_INTERACTIVE_LOGON_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeDenyRemoteInteractiveLogonRight"); +pub const SE_DENY_SERVICE_LOGON_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeDenyServiceLogonRight"); +pub const SE_INTERACTIVE_LOGON_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeInteractiveLogonRight"); +pub const SE_MAX_AUDIT_PARAMETERS: u32 = 32u32; +pub const SE_MAX_GENERIC_AUDIT_PARAMETERS: u32 = 28u32; +pub const SE_NETWORK_LOGON_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeNetworkLogonRight"); +pub const SE_REMOTE_INTERACTIVE_LOGON_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeRemoteInteractiveLogonRight"); +pub const SE_SERVICE_LOGON_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeServiceLogonRight"); +pub const SL_ACTIVATION_TYPE_ACTIVE_DIRECTORY: SL_ACTIVATION_TYPE = 1i32; +pub const SL_ACTIVATION_TYPE_DEFAULT: SL_ACTIVATION_TYPE = 0i32; +pub const SL_CLIENTAPI_ZONE: u32 = 61440u32; +pub const SL_DATA_BINARY: SLDATATYPE = 3u32; +pub const SL_DATA_DWORD: SLDATATYPE = 4u32; +pub const SL_DATA_MULTI_SZ: SLDATATYPE = 7u32; +pub const SL_DATA_NONE: SLDATATYPE = 0u32; +pub const SL_DATA_SUM: SLDATATYPE = 100u32; +pub const SL_DATA_SZ: SLDATATYPE = 1u32; +pub const SL_DEFAULT_MIGRATION_ENCRYPTOR_URI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msft:spp/migrationencryptor/tokenact/1.0"); +pub const SL_EVENT_LICENSING_STATE_CHANGED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msft:rm/event/licensingstatechanged"); +pub const SL_EVENT_POLICY_CHANGED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msft:rm/event/policychanged"); +pub const SL_EVENT_USER_NOTIFICATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msft:rm/event/usernotification"); +pub const SL_E_ACTIVATION_IN_PROGRESS: ::windows_sys::core::HRESULT = -1073422296i32; +pub const SL_E_APPLICATION_POLICIES_MISSING: ::windows_sys::core::HRESULT = -1073418126i32; +pub const SL_E_APPLICATION_POLICIES_NOT_LOADED: ::windows_sys::core::HRESULT = -1073418125i32; +pub const SL_E_AUTHN_CANT_VERIFY: ::windows_sys::core::HRESULT = -1073418118i32; +pub const SL_E_AUTHN_CHALLENGE_NOT_SET: ::windows_sys::core::HRESULT = -1073418119i32; +pub const SL_E_AUTHN_MISMATCHED_KEY: ::windows_sys::core::HRESULT = -1073418120i32; +pub const SL_E_AUTHN_WRONG_VERSION: ::windows_sys::core::HRESULT = -1073418121i32; +pub const SL_E_BASE_SKU_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1073418155i32; +pub const SL_E_BIOS_KEY: ::windows_sys::core::HRESULT = -1073417707i32; +pub const SL_E_BLOCKED_PRODUCT_KEY: ::windows_sys::core::HRESULT = -1073418159i32; +pub const SL_E_CHPA_ACTCONFIG_ID_NOT_FOUND: ::windows_sys::core::HRESULT = -1073430519i32; +pub const SL_E_CHPA_BINDING_MAPPING_NOT_FOUND: ::windows_sys::core::HRESULT = -1073430522i32; +pub const SL_E_CHPA_BINDING_NOT_FOUND: ::windows_sys::core::HRESULT = -1073430523i32; +pub const SL_E_CHPA_BUSINESS_RULE_INPUT_NOT_FOUND: ::windows_sys::core::HRESULT = -1073428736i32; +pub const SL_E_CHPA_DATABASE_ERROR: ::windows_sys::core::HRESULT = -1073430509i32; +pub const SL_E_CHPA_DIGITALMARKER_BINDING_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -1073430446i32; +pub const SL_E_CHPA_DIGITALMARKER_INVALID_BINDING: ::windows_sys::core::HRESULT = -1073430447i32; +pub const SL_E_CHPA_DMAK_EXTENSION_LIMIT_EXCEEDED: ::windows_sys::core::HRESULT = -1073430495i32; +pub const SL_E_CHPA_DMAK_LIMIT_EXCEEDED: ::windows_sys::core::HRESULT = -1073430496i32; +pub const SL_E_CHPA_DYNAMICALLY_BLOCKED_PRODUCT_KEY: ::windows_sys::core::HRESULT = -1073430432i32; +pub const SL_E_CHPA_FAILED_TO_DELETE_PRODUCTKEY_BINDING: ::windows_sys::core::HRESULT = -1073428649i32; +pub const SL_E_CHPA_FAILED_TO_DELETE_PRODUCT_KEY_PROPERTY: ::windows_sys::core::HRESULT = -1073428644i32; +pub const SL_E_CHPA_FAILED_TO_INSERT_PRODUCTKEY_BINDING: ::windows_sys::core::HRESULT = -1073428650i32; +pub const SL_E_CHPA_FAILED_TO_INSERT_PRODUCT_KEY_PROPERTY: ::windows_sys::core::HRESULT = -1073428646i32; +pub const SL_E_CHPA_FAILED_TO_INSERT_PRODUCT_KEY_RECORD: ::windows_sys::core::HRESULT = -1073428608i32; +pub const SL_E_CHPA_FAILED_TO_PROCESS_PRODUCT_KEY_BINDINGS_XML: ::windows_sys::core::HRESULT = -1073428648i32; +pub const SL_E_CHPA_FAILED_TO_UPDATE_PRODUCTKEY_BINDING: ::windows_sys::core::HRESULT = -1073428651i32; +pub const SL_E_CHPA_FAILED_TO_UPDATE_PRODUCT_KEY_PROPERTY: ::windows_sys::core::HRESULT = -1073428645i32; +pub const SL_E_CHPA_FAILED_TO_UPDATE_PRODUCT_KEY_RECORD: ::windows_sys::core::HRESULT = -1073428607i32; +pub const SL_E_CHPA_GENERAL_ERROR: ::windows_sys::core::HRESULT = -1073430448i32; +pub const SL_E_CHPA_INVALID_ACTCONFIG_ID: ::windows_sys::core::HRESULT = -1073430515i32; +pub const SL_E_CHPA_INVALID_ARGUMENT: ::windows_sys::core::HRESULT = -1073430508i32; +pub const SL_E_CHPA_INVALID_BINDING: ::windows_sys::core::HRESULT = -1073430526i32; +pub const SL_E_CHPA_INVALID_BINDING_URI: ::windows_sys::core::HRESULT = -1073430511i32; +pub const SL_E_CHPA_INVALID_PRODUCT_DATA: ::windows_sys::core::HRESULT = -1073430517i32; +pub const SL_E_CHPA_INVALID_PRODUCT_DATA_ID: ::windows_sys::core::HRESULT = -1073430518i32; +pub const SL_E_CHPA_INVALID_PRODUCT_KEY: ::windows_sys::core::HRESULT = -1073430524i32; +pub const SL_E_CHPA_INVALID_PRODUCT_KEY_CHAR: ::windows_sys::core::HRESULT = -1073430512i32; +pub const SL_E_CHPA_INVALID_PRODUCT_KEY_FORMAT: ::windows_sys::core::HRESULT = -1073430513i32; +pub const SL_E_CHPA_INVALID_PRODUCT_KEY_LENGTH: ::windows_sys::core::HRESULT = -1073430514i32; +pub const SL_E_CHPA_MAXIMUM_UNLOCK_EXCEEDED: ::windows_sys::core::HRESULT = -1073430520i32; +pub const SL_E_CHPA_MSCH_RESPONSE_NOT_AVAILABLE_VGA: ::windows_sys::core::HRESULT = -1073429505i32; +pub const SL_E_CHPA_NETWORK_ERROR: ::windows_sys::core::HRESULT = -1073430510i32; +pub const SL_E_CHPA_NO_RULES_TO_ACTIVATE: ::windows_sys::core::HRESULT = -1073430449i32; +pub const SL_E_CHPA_NULL_VALUE_FOR_PROPERTY_NAME_OR_ID: ::windows_sys::core::HRESULT = -1073428656i32; +pub const SL_E_CHPA_OEM_SLP_COA0: ::windows_sys::core::HRESULT = -1073430506i32; +pub const SL_E_CHPA_OVERRIDE_REQUEST_NOT_FOUND: ::windows_sys::core::HRESULT = -1073430493i32; +pub const SL_E_CHPA_PRODUCT_KEY_BEING_USED: ::windows_sys::core::HRESULT = -1073428624i32; +pub const SL_E_CHPA_PRODUCT_KEY_BLOCKED: ::windows_sys::core::HRESULT = -1073430525i32; +pub const SL_E_CHPA_PRODUCT_KEY_BLOCKED_IPLOCATION: ::windows_sys::core::HRESULT = -1073430505i32; +pub const SL_E_CHPA_PRODUCT_KEY_OUT_OF_RANGE: ::windows_sys::core::HRESULT = -1073430527i32; +pub const SL_E_CHPA_REISSUANCE_LIMIT_NOT_FOUND: ::windows_sys::core::HRESULT = -1073430494i32; +pub const SL_E_CHPA_RESPONSE_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1073430507i32; +pub const SL_E_CHPA_SYSTEM_ERROR: ::windows_sys::core::HRESULT = -1073430516i32; +pub const SL_E_CHPA_TIMEBASED_ACTIVATION_AFTER_END_DATE: ::windows_sys::core::HRESULT = -1073430479i32; +pub const SL_E_CHPA_TIMEBASED_ACTIVATION_BEFORE_START_DATE: ::windows_sys::core::HRESULT = -1073430480i32; +pub const SL_E_CHPA_TIMEBASED_ACTIVATION_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1073430478i32; +pub const SL_E_CHPA_TIMEBASED_PRODUCT_KEY_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -1073430477i32; +pub const SL_E_CHPA_UNKNOWN_PRODUCT_KEY_TYPE: ::windows_sys::core::HRESULT = -1073428636i32; +pub const SL_E_CHPA_UNKNOWN_PROPERTY_ID: ::windows_sys::core::HRESULT = -1073428654i32; +pub const SL_E_CHPA_UNKNOWN_PROPERTY_NAME: ::windows_sys::core::HRESULT = -1073428655i32; +pub const SL_E_CHPA_UNSUPPORTED_PRODUCT_KEY: ::windows_sys::core::HRESULT = -1073430521i32; +pub const SL_E_CIDIID_INVALID_CHECK_DIGITS: ::windows_sys::core::HRESULT = -1073418163i32; +pub const SL_E_CIDIID_INVALID_DATA: ::windows_sys::core::HRESULT = -1073418196i32; +pub const SL_E_CIDIID_INVALID_DATA_LENGTH: ::windows_sys::core::HRESULT = -1073418193i32; +pub const SL_E_CIDIID_INVALID_VERSION: ::windows_sys::core::HRESULT = -1073418195i32; +pub const SL_E_CIDIID_MISMATCHED: ::windows_sys::core::HRESULT = -1073418191i32; +pub const SL_E_CIDIID_MISMATCHED_PKEY: ::windows_sys::core::HRESULT = -1073418114i32; +pub const SL_E_CIDIID_NOT_BOUND: ::windows_sys::core::HRESULT = -1073418113i32; +pub const SL_E_CIDIID_NOT_DEPOSITED: ::windows_sys::core::HRESULT = -1073418192i32; +pub const SL_E_CIDIID_VERSION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1073418194i32; +pub const SL_E_DATATYPE_MISMATCHED: ::windows_sys::core::HRESULT = -1073418210i32; +pub const SL_E_DECRYPTION_LICENSES_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1073418212i32; +pub const SL_E_DEPENDENT_PROPERTY_NOT_SET: ::windows_sys::core::HRESULT = -1073418138i32; +pub const SL_E_DOWNLEVEL_SETUP_KEY: ::windows_sys::core::HRESULT = -1073417708i32; +pub const SL_E_DUPLICATE_POLICY: ::windows_sys::core::HRESULT = -1073418158i32; +pub const SL_E_EDITION_MISMATCHED: ::windows_sys::core::HRESULT = -1073417712i32; +pub const SL_E_ENGINE_DETECTED_EXPLOIT: ::windows_sys::core::HRESULT = -1073429327i32; +pub const SL_E_EUL_CONSUMPTION_FAILED: ::windows_sys::core::HRESULT = -1073422315i32; +pub const SL_E_EUL_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1073418188i32; +pub const SL_E_EVALUATION_FAILED: ::windows_sys::core::HRESULT = -1073422333i32; +pub const SL_E_EVENT_ALREADY_REGISTERED: ::windows_sys::core::HRESULT = -1073418213i32; +pub const SL_E_EVENT_NOT_REGISTERED: ::windows_sys::core::HRESULT = -1073418214i32; +pub const SL_E_EXTERNAL_SIGNATURE_NOT_FOUND: ::windows_sys::core::HRESULT = -1073418234i32; +pub const SL_E_GRACE_TIME_EXPIRED: ::windows_sys::core::HRESULT = -1073418231i32; +pub const SL_E_HEALTH_CHECK_FAILED_MUI_FILES: ::windows_sys::core::HRESULT = -1073429330i32; +pub const SL_E_HEALTH_CHECK_FAILED_NEUTRAL_FILES: ::windows_sys::core::HRESULT = -1073429331i32; +pub const SL_E_HWID_CHANGED: ::windows_sys::core::HRESULT = -1073417711i32; +pub const SL_E_HWID_ERROR: ::windows_sys::core::HRESULT = -1073422309i32; +pub const SL_E_IA_ID_MISMATCH: ::windows_sys::core::HRESULT = -1073414909i32; +pub const SL_E_IA_INVALID_VIRTUALIZATION_PLATFORM: ::windows_sys::core::HRESULT = -1073414911i32; +pub const SL_E_IA_MACHINE_NOT_BOUND: ::windows_sys::core::HRESULT = -1073414908i32; +pub const SL_E_IA_PARENT_PARTITION_NOT_ACTIVATED: ::windows_sys::core::HRESULT = -1073414910i32; +pub const SL_E_IA_THROTTLE_LIMIT_EXCEEDED: ::windows_sys::core::HRESULT = -1073414912i32; +pub const SL_E_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -1073418239i32; +pub const SL_E_INVALID_AD_DATA: ::windows_sys::core::HRESULT = -1073429329i32; +pub const SL_E_INVALID_BINDING_BLOB: ::windows_sys::core::HRESULT = -1073418190i32; +pub const SL_E_INVALID_CLIENT_TOKEN: ::windows_sys::core::HRESULT = -1073429720i32; +pub const SL_E_INVALID_CONTEXT: ::windows_sys::core::HRESULT = -1073422335i32; +pub const SL_E_INVALID_CONTEXT_DATA: ::windows_sys::core::HRESULT = -1073422300i32; +pub const SL_E_INVALID_EVENT_ID: ::windows_sys::core::HRESULT = -1073418215i32; +pub const SL_E_INVALID_FILE_HASH: ::windows_sys::core::HRESULT = -1073429343i32; +pub const SL_E_INVALID_GUID: ::windows_sys::core::HRESULT = -1073422330i32; +pub const SL_E_INVALID_HASH: ::windows_sys::core::HRESULT = -1073422299i32; +pub const SL_E_INVALID_LICENSE: ::windows_sys::core::HRESULT = -1073418209i32; +pub const SL_E_INVALID_LICENSE_STATE: ::windows_sys::core::HRESULT = -1073429336i32; +pub const SL_E_INVALID_LICENSE_STATE_BREACH_GRACE: ::windows_sys::core::HRESULT = -1073429871i32; +pub const SL_E_INVALID_LICENSE_STATE_BREACH_GRACE_EXPIRED: ::windows_sys::core::HRESULT = -1073429870i32; +pub const SL_E_INVALID_OEM_OR_VOLUME_BINDING_DATA: ::windows_sys::core::HRESULT = -1073429337i32; +pub const SL_E_INVALID_OFFLINE_BLOB: ::windows_sys::core::HRESULT = -1073429719i32; +pub const SL_E_INVALID_OSVERSION_TEMPLATEID: ::windows_sys::core::HRESULT = -1073429717i32; +pub const SL_E_INVALID_OS_FOR_PRODUCT_KEY: ::windows_sys::core::HRESULT = -1073429503i32; +pub const SL_E_INVALID_PACKAGE: ::windows_sys::core::HRESULT = -1073418208i32; +pub const SL_E_INVALID_PACKAGE_VERSION: ::windows_sys::core::HRESULT = -1073418144i32; +pub const SL_E_INVALID_PKEY: ::windows_sys::core::HRESULT = -1073418224i32; +pub const SL_E_INVALID_PRODUCT_KEY: ::windows_sys::core::HRESULT = -1073418160i32; +pub const SL_E_INVALID_PRODUCT_KEY_TYPE: ::windows_sys::core::HRESULT = -1073418115i32; +pub const SL_E_INVALID_RSDP_COUNT: ::windows_sys::core::HRESULT = -1073429328i32; +pub const SL_E_INVALID_RULESET_RULE: ::windows_sys::core::HRESULT = -1073422301i32; +pub const SL_E_INVALID_RUNNING_MODE: ::windows_sys::core::HRESULT = -1073418199i32; +pub const SL_E_INVALID_TEMPLATE_ID: ::windows_sys::core::HRESULT = -1073429770i32; +pub const SL_E_INVALID_TOKEN_DATA: ::windows_sys::core::HRESULT = -1073429332i32; +pub const SL_E_INVALID_USE_OF_ADD_ON_PKEY: ::windows_sys::core::HRESULT = -2147164122i32; +pub const SL_E_INVALID_XML_BLOB: ::windows_sys::core::HRESULT = -1073429766i32; +pub const SL_E_IP_LOCATION_FALIED: ::windows_sys::core::HRESULT = -1073429335i32; +pub const SL_E_ISSUANCE_LICENSE_NOT_INSTALLED: ::windows_sys::core::HRESULT = -1073418142i32; +pub const SL_E_LICENSE_AUTHORIZATION_FAILED: ::windows_sys::core::HRESULT = -1073418206i32; +pub const SL_E_LICENSE_DECRYPTION_FAILED: ::windows_sys::core::HRESULT = -1073418205i32; +pub const SL_E_LICENSE_FILE_NOT_INSTALLED: ::windows_sys::core::HRESULT = -1073418223i32; +pub const SL_E_LICENSE_INVALID_ADDON_INFO: ::windows_sys::core::HRESULT = -1073422310i32; +pub const SL_E_LICENSE_MANAGEMENT_DATA_DUPLICATED: ::windows_sys::core::HRESULT = -1073418156i32; +pub const SL_E_LICENSE_MANAGEMENT_DATA_NOT_FOUND: ::windows_sys::core::HRESULT = -1073418161i32; +pub const SL_E_LICENSE_NOT_BOUND: ::windows_sys::core::HRESULT = -1073418112i32; +pub const SL_E_LICENSE_SERVER_URL_NOT_FOUND: ::windows_sys::core::HRESULT = -1073418216i32; +pub const SL_E_LICENSE_SIGNATURE_VERIFICATION_FAILED: ::windows_sys::core::HRESULT = -1073418211i32; +pub const SL_E_LUA_ACCESSDENIED: ::windows_sys::core::HRESULT = -1073418203i32; +pub const SL_E_MISMATCHED_APPID: ::windows_sys::core::HRESULT = -1073418230i32; +pub const SL_E_MISMATCHED_KEY_TYPES: ::windows_sys::core::HRESULT = -1073429340i32; +pub const SL_E_MISMATCHED_PID: ::windows_sys::core::HRESULT = -1073418235i32; +pub const SL_E_MISMATCHED_PKEY_RANGE: ::windows_sys::core::HRESULT = -1073418236i32; +pub const SL_E_MISMATCHED_PRODUCT_SKU: ::windows_sys::core::HRESULT = -1073418135i32; +pub const SL_E_MISMATCHED_SECURITY_PROCESSOR: ::windows_sys::core::HRESULT = -1073418226i32; +pub const SL_E_MISSING_OVERRIDE_ONLY_ATTRIBUTE: ::windows_sys::core::HRESULT = -1073418157i32; +pub const SL_E_NONGENUINE_GRACE_TIME_EXPIRED: ::windows_sys::core::HRESULT = -1073418140i32; +pub const SL_E_NONGENUINE_GRACE_TIME_EXPIRED_2: ::windows_sys::core::HRESULT = -1073418137i32; +pub const SL_E_NON_GENUINE_STATUS_LAST: ::windows_sys::core::HRESULT = -1073428992i32; +pub const SL_E_NOTIFICATION_BREACH_DETECTED: ::windows_sys::core::HRESULT = -1073429199i32; +pub const SL_E_NOTIFICATION_GRACE_EXPIRED: ::windows_sys::core::HRESULT = -1073429198i32; +pub const SL_E_NOTIFICATION_OTHER_REASONS: ::windows_sys::core::HRESULT = -1073429197i32; +pub const SL_E_NOT_ACTIVATED: ::windows_sys::core::HRESULT = -1073422331i32; +pub const SL_E_NOT_EVALUATED: ::windows_sys::core::HRESULT = -1073422332i32; +pub const SL_E_NOT_GENUINE: ::windows_sys::core::HRESULT = -1073417728i32; +pub const SL_E_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1073418218i32; +pub const SL_E_NO_PID_CONFIG_DATA: ::windows_sys::core::HRESULT = -1073418229i32; +pub const SL_E_NO_PRODUCT_KEY_FOUND: ::windows_sys::core::HRESULT = -1073417709i32; +pub const SL_E_OEM_KEY_EDITION_MISMATCH: ::windows_sys::core::HRESULT = -1073417710i32; +pub const SL_E_OFFLINE_GENUINE_BLOB_NOT_FOUND: ::windows_sys::core::HRESULT = -1073429715i32; +pub const SL_E_OFFLINE_GENUINE_BLOB_REVOKED: ::windows_sys::core::HRESULT = -1073429716i32; +pub const SL_E_OFFLINE_VALIDATION_BLOB_PARAM_NOT_FOUND: ::windows_sys::core::HRESULT = -1073429718i32; +pub const SL_E_OPERATION_NOT_ALLOWED: ::windows_sys::core::HRESULT = -1073418134i32; +pub const SL_E_OUT_OF_TOLERANCE: ::windows_sys::core::HRESULT = -1073418225i32; +pub const SL_E_PKEY_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -1073422311i32; +pub const SL_E_PKEY_INVALID_ALGORITHM: ::windows_sys::core::HRESULT = -1073422312i32; +pub const SL_E_PKEY_INVALID_CONFIG: ::windows_sys::core::HRESULT = -1073422314i32; +pub const SL_E_PKEY_INVALID_KEYCHANGE1: ::windows_sys::core::HRESULT = -1073422308i32; +pub const SL_E_PKEY_INVALID_KEYCHANGE2: ::windows_sys::core::HRESULT = -1073422307i32; +pub const SL_E_PKEY_INVALID_KEYCHANGE3: ::windows_sys::core::HRESULT = -1073422306i32; +pub const SL_E_PKEY_INVALID_UNIQUEID: ::windows_sys::core::HRESULT = -1073422313i32; +pub const SL_E_PKEY_INVALID_UPGRADE: ::windows_sys::core::HRESULT = -1073418143i32; +pub const SL_E_PKEY_NOT_INSTALLED: ::windows_sys::core::HRESULT = -1073418220i32; +pub const SL_E_PLUGIN_INVALID_MANIFEST: ::windows_sys::core::HRESULT = -1073418127i32; +pub const SL_E_PLUGIN_NOT_REGISTERED: ::windows_sys::core::HRESULT = -1073418122i32; +pub const SL_E_POLICY_CACHE_INVALID: ::windows_sys::core::HRESULT = -1073418200i32; +pub const SL_E_POLICY_OTHERINFO_MISMATCH: ::windows_sys::core::HRESULT = -1073422304i32; +pub const SL_E_PRODUCT_KEY_INSTALLATION_NOT_ALLOWED: ::windows_sys::core::HRESULT = -1073418189i32; +pub const SL_E_PRODUCT_SKU_NOT_INSTALLED: ::windows_sys::core::HRESULT = -1073418219i32; +pub const SL_E_PRODUCT_UNIQUENESS_GROUP_ID_INVALID: ::windows_sys::core::HRESULT = -1073422303i32; +pub const SL_E_PROXY_KEY_NOT_FOUND: ::windows_sys::core::HRESULT = -1073418202i32; +pub const SL_E_PROXY_POLICY_NOT_UPDATED: ::windows_sys::core::HRESULT = -1073418169i32; +pub const SL_E_PUBLISHING_LICENSE_NOT_INSTALLED: ::windows_sys::core::HRESULT = -1073418217i32; +pub const SL_E_RAC_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1073418233i32; +pub const SL_E_RIGHT_NOT_CONSUMED: ::windows_sys::core::HRESULT = -1073418238i32; +pub const SL_E_RIGHT_NOT_GRANTED: ::windows_sys::core::HRESULT = -1073418221i32; +pub const SL_E_SECURE_STORE_ID_MISMATCH: ::windows_sys::core::HRESULT = -1073422302i32; +pub const SL_E_SERVICE_RUNNING: ::windows_sys::core::HRESULT = -1073418117i32; +pub const SL_E_SERVICE_STOPPING: ::windows_sys::core::HRESULT = -1073418123i32; +pub const SL_E_SFS_BAD_TOKEN_EXT: ::windows_sys::core::HRESULT = -2147163899i32; +pub const SL_E_SFS_BAD_TOKEN_NAME: ::windows_sys::core::HRESULT = -2147163900i32; +pub const SL_E_SFS_DUPLICATE_TOKEN_NAME: ::windows_sys::core::HRESULT = -2147163898i32; +pub const SL_E_SFS_FILE_READ_ERROR: ::windows_sys::core::HRESULT = -2147163895i32; +pub const SL_E_SFS_FILE_WRITE_ERROR: ::windows_sys::core::HRESULT = -2147163894i32; +pub const SL_E_SFS_INVALID_FD_TABLE: ::windows_sys::core::HRESULT = -2147163902i32; +pub const SL_E_SFS_INVALID_FILE_POSITION: ::windows_sys::core::HRESULT = -2147163893i32; +pub const SL_E_SFS_INVALID_FS_HEADER: ::windows_sys::core::HRESULT = -2147163891i32; +pub const SL_E_SFS_INVALID_FS_VERSION: ::windows_sys::core::HRESULT = -2147163903i32; +pub const SL_E_SFS_INVALID_SYNC: ::windows_sys::core::HRESULT = -2147163901i32; +pub const SL_E_SFS_INVALID_TOKEN_DATA_HASH: ::windows_sys::core::HRESULT = -2147163896i32; +pub const SL_E_SFS_INVALID_TOKEN_DESCRIPTOR: ::windows_sys::core::HRESULT = -2147163890i32; +pub const SL_E_SFS_NO_ACTIVE_TRANSACTION: ::windows_sys::core::HRESULT = -2147163892i32; +pub const SL_E_SFS_TOKEN_SIZE_MISMATCH: ::windows_sys::core::HRESULT = -2147163897i32; +pub const SL_E_SLP_BAD_FORMAT: ::windows_sys::core::HRESULT = -1073418151i32; +pub const SL_E_SLP_INVALID_MARKER_VERSION: ::windows_sys::core::HRESULT = -1073418116i32; +pub const SL_E_SLP_MISSING_ACPI_SLIC: ::windows_sys::core::HRESULT = -1073418153i32; +pub const SL_E_SLP_MISSING_SLP_MARKER: ::windows_sys::core::HRESULT = -1073418152i32; +pub const SL_E_SLP_NOT_SIGNED: ::windows_sys::core::HRESULT = -1073418198i32; +pub const SL_E_SLP_OEM_CERT_MISSING: ::windows_sys::core::HRESULT = -1073418141i32; +pub const SL_E_SOFTMOD_EXPLOIT_DETECTED: ::windows_sys::core::HRESULT = -1073429333i32; +pub const SL_E_SPC_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1073418232i32; +pub const SL_E_SRV_AUTHORIZATION_FAILED: ::windows_sys::core::HRESULT = -1073434619i32; +pub const SL_E_SRV_BUSINESS_TOKEN_ENTRY_NOT_FOUND: ::windows_sys::core::HRESULT = -1073434608i32; +pub const SL_E_SRV_CLIENT_CLOCK_OUT_OF_SYNC: ::windows_sys::core::HRESULT = -1073434607i32; +pub const SL_E_SRV_GENERAL_ERROR: ::windows_sys::core::HRESULT = -1073434368i32; +pub const SL_E_SRV_INVALID_BINDING: ::windows_sys::core::HRESULT = -1073434618i32; +pub const SL_E_SRV_INVALID_LICENSE_STRUCTURE: ::windows_sys::core::HRESULT = -1073434620i32; +pub const SL_E_SRV_INVALID_PAYLOAD: ::windows_sys::core::HRESULT = -1073434616i32; +pub const SL_E_SRV_INVALID_PRODUCT_KEY_LICENSE: ::windows_sys::core::HRESULT = -1073434622i32; +pub const SL_E_SRV_INVALID_PUBLISH_LICENSE: ::windows_sys::core::HRESULT = -1073434623i32; +pub const SL_E_SRV_INVALID_RIGHTS_ACCOUNT_LICENSE: ::windows_sys::core::HRESULT = -1073434621i32; +pub const SL_E_SRV_INVALID_SECURITY_PROCESSOR_LICENSE: ::windows_sys::core::HRESULT = -1073434615i32; +pub const SL_E_SRV_SERVER_PONG: ::windows_sys::core::HRESULT = -1073434617i32; +pub const SL_E_STORE_UPGRADE_TOKEN_NOT_AUTHORIZED: ::windows_sys::core::HRESULT = -1073422290i32; +pub const SL_E_STORE_UPGRADE_TOKEN_NOT_PRS_SIGNED: ::windows_sys::core::HRESULT = -1073422292i32; +pub const SL_E_STORE_UPGRADE_TOKEN_REQUIRED: ::windows_sys::core::HRESULT = -1073422295i32; +pub const SL_E_STORE_UPGRADE_TOKEN_WRONG_EDITION: ::windows_sys::core::HRESULT = -1073422294i32; +pub const SL_E_STORE_UPGRADE_TOKEN_WRONG_PID: ::windows_sys::core::HRESULT = -1073422293i32; +pub const SL_E_STORE_UPGRADE_TOKEN_WRONG_VERSION: ::windows_sys::core::HRESULT = -1073422291i32; +pub const SL_E_TAMPER_DETECTED: ::windows_sys::core::HRESULT = -1073418201i32; +pub const SL_E_TAMPER_RECOVERY_REQUIRES_ACTIVATION: ::windows_sys::core::HRESULT = -1073414656i32; +pub const SL_E_TKA_CERT_CNG_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1073417453i32; +pub const SL_E_TKA_CERT_NOT_FOUND: ::windows_sys::core::HRESULT = -1073417467i32; +pub const SL_E_TKA_CHALLENGE_EXPIRED: ::windows_sys::core::HRESULT = -1073417471i32; +pub const SL_E_TKA_CHALLENGE_MISMATCH: ::windows_sys::core::HRESULT = -1073417463i32; +pub const SL_E_TKA_CRITERIA_MISMATCH: ::windows_sys::core::HRESULT = -1073417457i32; +pub const SL_E_TKA_FAILED_GRANT_PARSING: ::windows_sys::core::HRESULT = -1073417460i32; +pub const SL_E_TKA_GRANT_NOT_FOUND: ::windows_sys::core::HRESULT = -1073417468i32; +pub const SL_E_TKA_INVALID_BLOB: ::windows_sys::core::HRESULT = -1073417465i32; +pub const SL_E_TKA_INVALID_CERTIFICATE: ::windows_sys::core::HRESULT = -1073417462i32; +pub const SL_E_TKA_INVALID_CERT_CHAIN: ::windows_sys::core::HRESULT = -1073417469i32; +pub const SL_E_TKA_INVALID_SKU_ID: ::windows_sys::core::HRESULT = -1073417466i32; +pub const SL_E_TKA_INVALID_SMARTCARD: ::windows_sys::core::HRESULT = -1073417461i32; +pub const SL_E_TKA_INVALID_THUMBPRINT: ::windows_sys::core::HRESULT = -1073417459i32; +pub const SL_E_TKA_SILENT_ACTIVATION_FAILURE: ::windows_sys::core::HRESULT = -1073417470i32; +pub const SL_E_TKA_SOFT_CERT_DISALLOWED: ::windows_sys::core::HRESULT = -1073417455i32; +pub const SL_E_TKA_SOFT_CERT_INVALID: ::windows_sys::core::HRESULT = -1073417454i32; +pub const SL_E_TKA_TAMPERED_CERT_CHAIN: ::windows_sys::core::HRESULT = -1073417464i32; +pub const SL_E_TKA_THUMBPRINT_CERT_NOT_FOUND: ::windows_sys::core::HRESULT = -1073417458i32; +pub const SL_E_TKA_TPID_MISMATCH: ::windows_sys::core::HRESULT = -1073417456i32; +pub const SL_E_TOKEN_STORE_INVALID_STATE: ::windows_sys::core::HRESULT = -1073422334i32; +pub const SL_E_TOKSTO_ALREADY_INITIALIZED: ::windows_sys::core::HRESULT = -1073422326i32; +pub const SL_E_TOKSTO_CANT_ACQUIRE_MUTEX: ::windows_sys::core::HRESULT = -1073422317i32; +pub const SL_E_TOKSTO_CANT_CREATE_FILE: ::windows_sys::core::HRESULT = -1073422324i32; +pub const SL_E_TOKSTO_CANT_CREATE_MUTEX: ::windows_sys::core::HRESULT = -1073422318i32; +pub const SL_E_TOKSTO_CANT_PARSE_PROPERTIES: ::windows_sys::core::HRESULT = -1073422321i32; +pub const SL_E_TOKSTO_CANT_READ_FILE: ::windows_sys::core::HRESULT = -1073422322i32; +pub const SL_E_TOKSTO_CANT_WRITE_TO_FILE: ::windows_sys::core::HRESULT = -1073422323i32; +pub const SL_E_TOKSTO_INVALID_FILE: ::windows_sys::core::HRESULT = -1073422319i32; +pub const SL_E_TOKSTO_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -1073422327i32; +pub const SL_E_TOKSTO_NO_ID_SET: ::windows_sys::core::HRESULT = -1073422325i32; +pub const SL_E_TOKSTO_NO_PROPERTIES: ::windows_sys::core::HRESULT = -1073422328i32; +pub const SL_E_TOKSTO_NO_TOKEN_DATA: ::windows_sys::core::HRESULT = -1073422316i32; +pub const SL_E_TOKSTO_PROPERTY_NOT_FOUND: ::windows_sys::core::HRESULT = -1073422320i32; +pub const SL_E_TOKSTO_TOKEN_NOT_FOUND: ::windows_sys::core::HRESULT = -1073422329i32; +pub const SL_E_USE_LICENSE_NOT_INSTALLED: ::windows_sys::core::HRESULT = -1073418237i32; +pub const SL_E_VALIDATION_BLOB_PARAM_NOT_FOUND: ::windows_sys::core::HRESULT = -1073429721i32; +pub const SL_E_VALIDATION_BLOCKED_PRODUCT_KEY: ::windows_sys::core::HRESULT = -1073429342i32; +pub const SL_E_VALIDATION_INVALID_PRODUCT_KEY: ::windows_sys::core::HRESULT = -1073429339i32; +pub const SL_E_VALIDITY_PERIOD_EXPIRED: ::windows_sys::core::HRESULT = -1073415161i32; +pub const SL_E_VALIDITY_TIME_EXPIRED: ::windows_sys::core::HRESULT = -1073418207i32; +pub const SL_E_VALUE_NOT_FOUND: ::windows_sys::core::HRESULT = -1073418222i32; +pub const SL_E_VL_AD_AO_NAME_TOO_LONG: ::windows_sys::core::HRESULT = -1073418110i32; +pub const SL_E_VL_AD_AO_NOT_FOUND: ::windows_sys::core::HRESULT = -1073418111i32; +pub const SL_E_VL_AD_SCHEMA_VERSION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1073418109i32; +pub const SL_E_VL_BINDING_SERVICE_NOT_ENABLED: ::windows_sys::core::HRESULT = -1073418183i32; +pub const SL_E_VL_BINDING_SERVICE_UNAVAILABLE: ::windows_sys::core::HRESULT = -1073418124i32; +pub const SL_E_VL_INFO_PRODUCT_USER_RIGHT: ::windows_sys::core::HRESULT = 1074065472i32; +pub const SL_E_VL_INVALID_TIMESTAMP: ::windows_sys::core::HRESULT = -1073418132i32; +pub const SL_E_VL_KEY_MANAGEMENT_SERVICE_ID_MISMATCH: ::windows_sys::core::HRESULT = -1073418174i32; +pub const SL_E_VL_KEY_MANAGEMENT_SERVICE_NOT_ACTIVATED: ::windows_sys::core::HRESULT = -1073418175i32; +pub const SL_E_VL_KEY_MANAGEMENT_SERVICE_VM_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1073418133i32; +pub const SL_E_VL_MACHINE_NOT_BOUND: ::windows_sys::core::HRESULT = -1073418154i32; +pub const SL_E_VL_NOT_ENOUGH_COUNT: ::windows_sys::core::HRESULT = -1073418184i32; +pub const SL_E_VL_NOT_WINDOWS_SLP: ::windows_sys::core::HRESULT = -1073418187i32; +pub const SL_E_WINDOWS_INVALID_LICENSE_STATE: ::windows_sys::core::HRESULT = -1073418204i32; +pub const SL_E_WINDOWS_VERSION_MISMATCH: ::windows_sys::core::HRESULT = -1073422297i32; +pub const SL_GEN_STATE_INVALID_LICENSE: SL_GENUINE_STATE = 1i32; +pub const SL_GEN_STATE_IS_GENUINE: SL_GENUINE_STATE = 0i32; +pub const SL_GEN_STATE_LAST: SL_GENUINE_STATE = 4i32; +pub const SL_GEN_STATE_OFFLINE: SL_GENUINE_STATE = 3i32; +pub const SL_GEN_STATE_TAMPERED: SL_GENUINE_STATE = 2i32; +pub const SL_ID_ALL_LICENSES: SLIDTYPE = 5i32; +pub const SL_ID_ALL_LICENSE_FILES: SLIDTYPE = 6i32; +pub const SL_ID_APPLICATION: SLIDTYPE = 0i32; +pub const SL_ID_LAST: SLIDTYPE = 8i32; +pub const SL_ID_LICENSE: SLIDTYPE = 3i32; +pub const SL_ID_LICENSE_FILE: SLIDTYPE = 2i32; +pub const SL_ID_PKEY: SLIDTYPE = 4i32; +pub const SL_ID_PRODUCT_SKU: SLIDTYPE = 1i32; +pub const SL_ID_STORE_TOKEN: SLIDTYPE = 7i32; +pub const SL_INFO_KEY_ACTIVE_PLUGINS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ActivePlugins"); +pub const SL_INFO_KEY_AUTHOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Author"); +pub const SL_INFO_KEY_BIOS_OA2_MINOR_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BiosOA2MinorVersion"); +pub const SL_INFO_KEY_BIOS_PKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BiosProductKey"); +pub const SL_INFO_KEY_BIOS_PKEY_DESCRIPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BiosProductKeyDescription"); +pub const SL_INFO_KEY_BIOS_PKEY_PKPN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BiosProductKeyPkPn"); +pub const SL_INFO_KEY_BIOS_SLIC_STATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BiosSlicState"); +pub const SL_INFO_KEY_CHANNEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Channel"); +pub const SL_INFO_KEY_DESCRIPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const SL_INFO_KEY_DIGITAL_PID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DigitalPID"); +pub const SL_INFO_KEY_DIGITAL_PID2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DigitalPID2"); +pub const SL_INFO_KEY_IS_KMS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsKeyManagementService"); +pub const SL_INFO_KEY_IS_PRS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsPRS"); +pub const SL_INFO_KEY_KMS_CURRENT_COUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyManagementServiceCurrentCount"); +pub const SL_INFO_KEY_KMS_FAILED_REQUESTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyManagementServiceFailedRequests"); +pub const SL_INFO_KEY_KMS_LICENSED_REQUESTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyManagementServiceLicensedRequests"); +pub const SL_INFO_KEY_KMS_NON_GENUINE_GRACE_REQUESTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyManagementServiceNonGenuineGraceRequests"); +pub const SL_INFO_KEY_KMS_NOTIFICATION_REQUESTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyManagementServiceNotificationRequests"); +pub const SL_INFO_KEY_KMS_OOB_GRACE_REQUESTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyManagementServiceOOBGraceRequests"); +pub const SL_INFO_KEY_KMS_OOT_GRACE_REQUESTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyManagementServiceOOTGraceRequests"); +pub const SL_INFO_KEY_KMS_REQUIRED_CLIENT_COUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyManagementServiceRequiredClientCount"); +pub const SL_INFO_KEY_KMS_TOTAL_REQUESTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyManagementServiceTotalRequests"); +pub const SL_INFO_KEY_KMS_UNLICENSED_REQUESTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyManagementServiceUnlicensedRequests"); +pub const SL_INFO_KEY_LICENSE_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LicenseType"); +pub const SL_INFO_KEY_LICENSOR_URL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LicensorUrl"); +pub const SL_INFO_KEY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const SL_INFO_KEY_PARTIAL_PRODUCT_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PartialProductKey"); +pub const SL_INFO_KEY_PRODUCT_KEY_ACTIVATION_URL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PKCURL"); +pub const SL_INFO_KEY_PRODUCT_SKU_ID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProductSkuId"); +pub const SL_INFO_KEY_RIGHT_ACCOUNT_ACTIVATION_URL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RACURL"); +pub const SL_INFO_KEY_SECURE_PROCESSOR_ACTIVATION_URL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SPCURL"); +pub const SL_INFO_KEY_SECURE_STORE_ID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SecureStoreId"); +pub const SL_INFO_KEY_SYSTEM_STATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SystemState"); +pub const SL_INFO_KEY_USE_LICENSE_ACTIVATION_URL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EULURL"); +pub const SL_INFO_KEY_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Version"); +pub const SL_INTERNAL_ZONE: u32 = 57344u32; +pub const SL_I_NONGENUINE_GRACE_PERIOD: ::windows_sys::core::HRESULT = 1074065509i32; +pub const SL_I_NONGENUINE_GRACE_PERIOD_2: ::windows_sys::core::HRESULT = 1074065512i32; +pub const SL_I_OOB_GRACE_PERIOD: ::windows_sys::core::HRESULT = 1074065420i32; +pub const SL_I_OOT_GRACE_PERIOD: ::windows_sys::core::HRESULT = 1074065421i32; +pub const SL_I_PERPETUAL_OOB_GRACE_PERIOD: ::windows_sys::core::HRESULT = 1074068485i32; +pub const SL_I_STORE_BASED_ACTIVATION: ::windows_sys::core::HRESULT = 1074066433i32; +pub const SL_I_TIMEBASED_EXTENDED_GRACE_PERIOD: ::windows_sys::core::HRESULT = 1074068486i32; +pub const SL_I_TIMEBASED_VALIDITY_PERIOD: ::windows_sys::core::HRESULT = 1074068484i32; +pub const SL_LICENSING_STATUS_IN_GRACE_PERIOD: SLLICENSINGSTATUS = 2i32; +pub const SL_LICENSING_STATUS_LAST: SLLICENSINGSTATUS = 4i32; +pub const SL_LICENSING_STATUS_LICENSED: SLLICENSINGSTATUS = 1i32; +pub const SL_LICENSING_STATUS_NOTIFICATION: SLLICENSINGSTATUS = 3i32; +pub const SL_LICENSING_STATUS_UNLICENSED: SLLICENSINGSTATUS = 0i32; +pub const SL_MDOLLAR_ZONE: u32 = 40960u32; +pub const SL_MSCH_ZONE: u32 = 49152u32; +pub const SL_PKEY_DETECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msft:rm/algorithm/pkey/detect"); +pub const SL_PKEY_MS2005: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msft:rm/algorithm/pkey/2005"); +pub const SL_PKEY_MS2009: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msft:rm/algorithm/pkey/2009"); +pub const SL_POLICY_EVALUATION_MODE_ENABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Security-SPP-EvaluationModeEnabled"); +pub const SL_PROP_ACTIVATION_VALIDATION_IN_PROGRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SL_ACTIVATION_VALIDATION_IN_PROGRESS"); +pub const SL_PROP_BRT_COMMIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SL_BRT_COMMIT"); +pub const SL_PROP_BRT_DATA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SL_BRT_DATA"); +pub const SL_PROP_GENUINE_RESULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SL_GENUINE_RESULT"); +pub const SL_PROP_GET_GENUINE_AUTHZ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SL_GET_GENUINE_AUTHZ"); +pub const SL_PROP_GET_GENUINE_SERVER_AUTHZ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SL_GET_GENUINE_SERVER_AUTHZ"); +pub const SL_PROP_LAST_ACT_ATTEMPT_HRESULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SL_LAST_ACT_ATTEMPT_HRESULT"); +pub const SL_PROP_LAST_ACT_ATTEMPT_SERVER_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SL_LAST_ACT_ATTEMPT_SERVER_FLAGS"); +pub const SL_PROP_LAST_ACT_ATTEMPT_TIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SL_LAST_ACT_ATTEMPT_TIME"); +pub const SL_PROP_NONGENUINE_GRACE_FLAG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SL_NONGENUINE_GRACE_FLAG"); +pub const SL_REARM_REBOOT_REQUIRED: u32 = 1u32; +pub const SL_REFERRALTYPE_APPID: SLREFERRALTYPE = 1i32; +pub const SL_REFERRALTYPE_BEST_MATCH: SLREFERRALTYPE = 4i32; +pub const SL_REFERRALTYPE_OVERRIDE_APPID: SLREFERRALTYPE = 3i32; +pub const SL_REFERRALTYPE_OVERRIDE_SKUID: SLREFERRALTYPE = 2i32; +pub const SL_REFERRALTYPE_SKUID: SLREFERRALTYPE = 0i32; +pub const SL_REMAPPING_MDOLLAR_CIDIID_INVALID_CHECK_DIGITS: ::windows_sys::core::HRESULT = -2143313776i32; +pub const SL_REMAPPING_MDOLLAR_CIDIID_INVALID_DATA: ::windows_sys::core::HRESULT = -2143313778i32; +pub const SL_REMAPPING_MDOLLAR_CIDIID_INVALID_DATA_LENGTH: ::windows_sys::core::HRESULT = -2143313777i32; +pub const SL_REMAPPING_MDOLLAR_CIDIID_INVALID_VERSION: ::windows_sys::core::HRESULT = -2143313779i32; +pub const SL_REMAPPING_MDOLLAR_DIGITALMARKER_BINDING_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -2143313708i32; +pub const SL_REMAPPING_MDOLLAR_DIGITALMARKER_INVALID_BINDING: ::windows_sys::core::HRESULT = -2143313709i32; +pub const SL_REMAPPING_MDOLLAR_DMAK_EXTENSION_LIMIT_EXCEEDED: ::windows_sys::core::HRESULT = -2143313792i32; +pub const SL_REMAPPING_MDOLLAR_DMAK_LIMIT_EXCEEDED: ::windows_sys::core::HRESULT = -2143313793i32; +pub const SL_REMAPPING_MDOLLAR_DMAK_OVERRIDE_LIMIT_REACHED: ::windows_sys::core::HRESULT = -2143313706i32; +pub const SL_REMAPPING_MDOLLAR_FREE_OFFER_EXPIRED: ::windows_sys::core::HRESULT = -2143312896i32; +pub const SL_REMAPPING_MDOLLAR_INVALID_ACTCONFIG_ID: ::windows_sys::core::HRESULT = -2143313802i32; +pub const SL_REMAPPING_MDOLLAR_INVALID_ARGUMENT: ::windows_sys::core::HRESULT = -2143313795i32; +pub const SL_REMAPPING_MDOLLAR_INVALID_BINDING: ::windows_sys::core::HRESULT = -2143313818i32; +pub const SL_REMAPPING_MDOLLAR_INVALID_BINDING_URI: ::windows_sys::core::HRESULT = -2143313798i32; +pub const SL_REMAPPING_MDOLLAR_INVALID_PRODUCT_DATA: ::windows_sys::core::HRESULT = -2143313804i32; +pub const SL_REMAPPING_MDOLLAR_INVALID_PRODUCT_DATA_ID: ::windows_sys::core::HRESULT = -2143313805i32; +pub const SL_REMAPPING_MDOLLAR_INVALID_PRODUCT_KEY: ::windows_sys::core::HRESULT = -2143313816i32; +pub const SL_REMAPPING_MDOLLAR_INVALID_PRODUCT_KEY_FORMAT: ::windows_sys::core::HRESULT = -2143313800i32; +pub const SL_REMAPPING_MDOLLAR_INVALID_PRODUCT_KEY_LENGTH: ::windows_sys::core::HRESULT = -2143313801i32; +pub const SL_REMAPPING_MDOLLAR_MAXIMUM_UNLOCK_EXCEEDED: ::windows_sys::core::HRESULT = -2143313807i32; +pub const SL_REMAPPING_MDOLLAR_NO_RULES_TO_ACTIVATE: ::windows_sys::core::HRESULT = -2143313720i32; +pub const SL_REMAPPING_MDOLLAR_OEM_SLP_COA0: ::windows_sys::core::HRESULT = -2143313789i32; +pub const SL_REMAPPING_MDOLLAR_OSR_DEVICE_BLOCKED: ::windows_sys::core::HRESULT = -2143310909i32; +pub const SL_REMAPPING_MDOLLAR_OSR_DEVICE_THROTTLED: ::windows_sys::core::HRESULT = -2143310914i32; +pub const SL_REMAPPING_MDOLLAR_OSR_DONOR_HWID_NO_ENTITLEMENT: ::windows_sys::core::HRESULT = -2143310920i32; +pub const SL_REMAPPING_MDOLLAR_OSR_GENERIC_ERROR: ::windows_sys::core::HRESULT = -2143310919i32; +pub const SL_REMAPPING_MDOLLAR_OSR_GP_DISABLED: ::windows_sys::core::HRESULT = -2143310913i32; +pub const SL_REMAPPING_MDOLLAR_OSR_HARDWARE_BLOCKED: ::windows_sys::core::HRESULT = -2143310912i32; +pub const SL_REMAPPING_MDOLLAR_OSR_LICENSE_BLOCKED: ::windows_sys::core::HRESULT = -2143310910i32; +pub const SL_REMAPPING_MDOLLAR_OSR_LICENSE_THROTTLED: ::windows_sys::core::HRESULT = -2143310915i32; +pub const SL_REMAPPING_MDOLLAR_OSR_NOT_ADMIN: ::windows_sys::core::HRESULT = -2143310917i32; +pub const SL_REMAPPING_MDOLLAR_OSR_NO_ASSOCIATION: ::windows_sys::core::HRESULT = -2143310918i32; +pub const SL_REMAPPING_MDOLLAR_OSR_USER_BLOCKED: ::windows_sys::core::HRESULT = -2143310911i32; +pub const SL_REMAPPING_MDOLLAR_OSR_USER_THROTTLED: ::windows_sys::core::HRESULT = -2143310916i32; +pub const SL_REMAPPING_MDOLLAR_PRODUCT_KEY_BLOCKED: ::windows_sys::core::HRESULT = -2143313817i32; +pub const SL_REMAPPING_MDOLLAR_PRODUCT_KEY_BLOCKED_IPLOCATION: ::windows_sys::core::HRESULT = -2143313717i32; +pub const SL_REMAPPING_MDOLLAR_PRODUCT_KEY_OUT_OF_RANGE: ::windows_sys::core::HRESULT = -2143313819i32; +pub const SL_REMAPPING_MDOLLAR_ROT_OVERRIDE_LIMIT_REACHED: ::windows_sys::core::HRESULT = -2143313707i32; +pub const SL_REMAPPING_MDOLLAR_TIMEBASED_ACTIVATION_AFTER_END_DATE: ::windows_sys::core::HRESULT = -2143313768i32; +pub const SL_REMAPPING_MDOLLAR_TIMEBASED_ACTIVATION_BEFORE_START_DATE: ::windows_sys::core::HRESULT = -2143313769i32; +pub const SL_REMAPPING_MDOLLAR_TIMEBASED_ACTIVATION_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2143313767i32; +pub const SL_REMAPPING_MDOLLAR_TIMEBASED_PRODUCT_KEY_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -2143313766i32; +pub const SL_REMAPPING_MDOLLAR_UNSUPPORTED_PRODUCT_KEY: ::windows_sys::core::HRESULT = -2143313812i32; +pub const SL_REMAPPING_SP_PUB_API_BAD_GET_INFO_QUERY: ::windows_sys::core::HRESULT = -1073426414i32; +pub const SL_REMAPPING_SP_PUB_API_HANDLE_NOT_COMMITED: ::windows_sys::core::HRESULT = -1073426303i32; +pub const SL_REMAPPING_SP_PUB_API_INVALID_ALGORITHM_TYPE: ::windows_sys::core::HRESULT = -1073426423i32; +pub const SL_REMAPPING_SP_PUB_API_INVALID_HANDLE: ::windows_sys::core::HRESULT = -1073426388i32; +pub const SL_REMAPPING_SP_PUB_API_INVALID_KEY_LENGTH: ::windows_sys::core::HRESULT = -1073426347i32; +pub const SL_REMAPPING_SP_PUB_API_INVALID_LICENSE: ::windows_sys::core::HRESULT = -1073426432i32; +pub const SL_REMAPPING_SP_PUB_API_NO_AES_PROVIDER: ::windows_sys::core::HRESULT = -1073426317i32; +pub const SL_REMAPPING_SP_PUB_API_TOO_MANY_LOADED_ENVIRONMENTS: ::windows_sys::core::HRESULT = -1073426420i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_HASH_FINALIZED: ::windows_sys::core::HRESULT = -1073425911i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_INVALID_BLOCK: ::windows_sys::core::HRESULT = -1073425905i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_INVALID_BLOCKLENGTH: ::windows_sys::core::HRESULT = -1073425918i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_INVALID_CIPHER: ::windows_sys::core::HRESULT = -1073425917i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_INVALID_CIPHERMODE: ::windows_sys::core::HRESULT = -1073425916i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_INVALID_FORMAT: ::windows_sys::core::HRESULT = -1073425904i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_INVALID_KEYLENGTH: ::windows_sys::core::HRESULT = -1073425919i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_INVALID_PADDING: ::windows_sys::core::HRESULT = -1073425903i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_INVALID_SIGNATURE: ::windows_sys::core::HRESULT = -1073425906i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_INVALID_SIGNATURELENGTH: ::windows_sys::core::HRESULT = -1073425907i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_KEY_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1073425910i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_KEY_NOT_FOUND: ::windows_sys::core::HRESULT = -1073425909i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_NOT_BLOCK_ALIGNED: ::windows_sys::core::HRESULT = -1073425908i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_UNKNOWN_ATTRIBUTEID: ::windows_sys::core::HRESULT = -1073425912i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_UNKNOWN_HASHID: ::windows_sys::core::HRESULT = -1073425913i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_UNKNOWN_KEYID: ::windows_sys::core::HRESULT = -1073425914i32; +pub const SL_REMAPPING_SP_PUB_CRYPTO_UNKNOWN_PROVIDERID: ::windows_sys::core::HRESULT = -1073425915i32; +pub const SL_REMAPPING_SP_PUB_GENERAL_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -1073426175i32; +pub const SL_REMAPPING_SP_PUB_KM_CACHE_IDENTICAL: ::windows_sys::core::HRESULT = 1074058753i32; +pub const SL_REMAPPING_SP_PUB_KM_CACHE_POLICY_CHANGED: ::windows_sys::core::HRESULT = 1074058754i32; +pub const SL_REMAPPING_SP_PUB_KM_CACHE_TAMPER: ::windows_sys::core::HRESULT = -1073425151i32; +pub const SL_REMAPPING_SP_PUB_KM_CACHE_TAMPER_RESTORE_FAILED: ::windows_sys::core::HRESULT = -1073425150i32; +pub const SL_REMAPPING_SP_PUB_PROXY_SOFT_TAMPER: ::windows_sys::core::HRESULT = -1073424638i32; +pub const SL_REMAPPING_SP_PUB_TAMPER_MODULE_AUTHENTICATION: ::windows_sys::core::HRESULT = -1073425407i32; +pub const SL_REMAPPING_SP_PUB_TAMPER_SECURITY_PROCESSOR_PATCHED: ::windows_sys::core::HRESULT = -1073425406i32; +pub const SL_REMAPPING_SP_PUB_TIMER_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -1073425654i32; +pub const SL_REMAPPING_SP_PUB_TIMER_EXPIRED: ::windows_sys::core::HRESULT = -1073425652i32; +pub const SL_REMAPPING_SP_PUB_TIMER_NAME_SIZE_TOO_BIG: ::windows_sys::core::HRESULT = -1073425651i32; +pub const SL_REMAPPING_SP_PUB_TIMER_NOT_FOUND: ::windows_sys::core::HRESULT = -1073425653i32; +pub const SL_REMAPPING_SP_PUB_TIMER_READ_ONLY: ::windows_sys::core::HRESULT = -1073425647i32; +pub const SL_REMAPPING_SP_PUB_TRUSTED_TIME_OK: ::windows_sys::core::HRESULT = 1074057999i32; +pub const SL_REMAPPING_SP_PUB_TS_ACCESS_DENIED: ::windows_sys::core::HRESULT = -1073425644i32; +pub const SL_REMAPPING_SP_PUB_TS_ATTRIBUTE_NOT_FOUND: ::windows_sys::core::HRESULT = -1073425645i32; +pub const SL_REMAPPING_SP_PUB_TS_ATTRIBUTE_READ_ONLY: ::windows_sys::core::HRESULT = -1073425646i32; +pub const SL_REMAPPING_SP_PUB_TS_DATA_SIZE_TOO_BIG: ::windows_sys::core::HRESULT = -1073425656i32; +pub const SL_REMAPPING_SP_PUB_TS_ENTRY_KEY_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -1073425659i32; +pub const SL_REMAPPING_SP_PUB_TS_ENTRY_KEY_NOT_FOUND: ::windows_sys::core::HRESULT = -1073425660i32; +pub const SL_REMAPPING_SP_PUB_TS_ENTRY_KEY_SIZE_TOO_BIG: ::windows_sys::core::HRESULT = -1073425658i32; +pub const SL_REMAPPING_SP_PUB_TS_ENTRY_READ_ONLY: ::windows_sys::core::HRESULT = -1073425648i32; +pub const SL_REMAPPING_SP_PUB_TS_FULL: ::windows_sys::core::HRESULT = -1073425650i32; +pub const SL_REMAPPING_SP_PUB_TS_INVALID_HW_BINDING: ::windows_sys::core::HRESULT = -1073425655i32; +pub const SL_REMAPPING_SP_PUB_TS_MAX_REARM_REACHED: ::windows_sys::core::HRESULT = -1073425657i32; +pub const SL_REMAPPING_SP_PUB_TS_NAMESPACE_IN_USE: ::windows_sys::core::HRESULT = -1073425642i32; +pub const SL_REMAPPING_SP_PUB_TS_NAMESPACE_NOT_FOUND: ::windows_sys::core::HRESULT = -1073425643i32; +pub const SL_REMAPPING_SP_PUB_TS_REARMED: ::windows_sys::core::HRESULT = -1073425662i32; +pub const SL_REMAPPING_SP_PUB_TS_RECREATED: ::windows_sys::core::HRESULT = -1073425661i32; +pub const SL_REMAPPING_SP_PUB_TS_TAMPERED: ::windows_sys::core::HRESULT = -1073425663i32; +pub const SL_REMAPPING_SP_PUB_TS_TAMPERED_BREADCRUMB_GENERATION: ::windows_sys::core::HRESULT = -1073425640i32; +pub const SL_REMAPPING_SP_PUB_TS_TAMPERED_BREADCRUMB_LOAD_INVALID: ::windows_sys::core::HRESULT = -1073425641i32; +pub const SL_REMAPPING_SP_PUB_TS_TAMPERED_DATA_BREADCRUMB_MISMATCH: ::windows_sys::core::HRESULT = -1073425637i32; +pub const SL_REMAPPING_SP_PUB_TS_TAMPERED_DATA_VERSION_MISMATCH: ::windows_sys::core::HRESULT = -1073425636i32; +pub const SL_REMAPPING_SP_PUB_TS_TAMPERED_INVALID_DATA: ::windows_sys::core::HRESULT = -1073425639i32; +pub const SL_REMAPPING_SP_PUB_TS_TAMPERED_NO_DATA: ::windows_sys::core::HRESULT = -1073425638i32; +pub const SL_REMAPPING_SP_STATUS_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -1073426171i32; +pub const SL_REMAPPING_SP_STATUS_DEBUGGER_DETECTED: ::windows_sys::core::HRESULT = -2147167989i32; +pub const SL_REMAPPING_SP_STATUS_GENERIC_FAILURE: ::windows_sys::core::HRESULT = -1073426173i32; +pub const SL_REMAPPING_SP_STATUS_INSUFFICIENT_BUFFER: ::windows_sys::core::HRESULT = -1073426169i32; +pub const SL_REMAPPING_SP_STATUS_INVALIDARG: ::windows_sys::core::HRESULT = -1073426172i32; +pub const SL_REMAPPING_SP_STATUS_INVALIDDATA: ::windows_sys::core::HRESULT = -1073426168i32; +pub const SL_REMAPPING_SP_STATUS_INVALID_SPAPI_CALL: ::windows_sys::core::HRESULT = -1073426167i32; +pub const SL_REMAPPING_SP_STATUS_INVALID_SPAPI_VERSION: ::windows_sys::core::HRESULT = -1073426166i32; +pub const SL_REMAPPING_SP_STATUS_NO_MORE_DATA: ::windows_sys::core::HRESULT = -1073426164i32; +pub const SL_REMAPPING_SP_STATUS_PUSHKEY_CONFLICT: ::windows_sys::core::HRESULT = -1073424639i32; +pub const SL_REMAPPING_SP_STATUS_SYSTEM_TIME_SKEWED: ::windows_sys::core::HRESULT = -2147167998i32; +pub const SL_SERVER_ZONE: u32 = 45056u32; +pub const SL_SYSTEM_STATE_REBOOT_POLICY_FOUND: u32 = 1u32; +pub const SL_SYSTEM_STATE_TAMPERED: u32 = 2u32; +pub const SPP_MIGRATION_GATHER_ACTIVATED_WINDOWS_STATE: u32 = 2u32; +pub const SPP_MIGRATION_GATHER_ALL: u32 = 4294967295u32; +pub const SPP_MIGRATION_GATHER_MIGRATABLE_APPS: u32 = 1u32; +pub const SP_ACCEPT_CREDENTIALS_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SpAcceptCredentials\u{0}"); +pub const SP_PROT_ALL: u32 = 4294967295u32; +pub const SP_PROT_DTLS1_0_CLIENT: u32 = 131072u32; +pub const SP_PROT_DTLS1_0_SERVER: u32 = 65536u32; +pub const SP_PROT_DTLS1_2_CLIENT: u32 = 524288u32; +pub const SP_PROT_DTLS1_2_SERVER: u32 = 262144u32; +pub const SP_PROT_DTLS_CLIENT: u32 = 131072u32; +pub const SP_PROT_DTLS_SERVER: u32 = 65536u32; +pub const SP_PROT_NONE: u32 = 0u32; +pub const SP_PROT_PCT1_CLIENT: u32 = 2u32; +pub const SP_PROT_PCT1_SERVER: u32 = 1u32; +pub const SP_PROT_SSL2_CLIENT: u32 = 8u32; +pub const SP_PROT_SSL2_SERVER: u32 = 4u32; +pub const SP_PROT_SSL3_CLIENT: u32 = 32u32; +pub const SP_PROT_SSL3_SERVER: u32 = 16u32; +pub const SP_PROT_TLS1_0_CLIENT: u32 = 128u32; +pub const SP_PROT_TLS1_0_SERVER: u32 = 64u32; +pub const SP_PROT_TLS1_1_CLIENT: u32 = 512u32; +pub const SP_PROT_TLS1_1_SERVER: u32 = 256u32; +pub const SP_PROT_TLS1_2_CLIENT: u32 = 2048u32; +pub const SP_PROT_TLS1_2_SERVER: u32 = 1024u32; +pub const SP_PROT_TLS1_3PLUS_CLIENT: u32 = 8192u32; +pub const SP_PROT_TLS1_3PLUS_SERVER: u32 = 4096u32; +pub const SP_PROT_TLS1_3_CLIENT: u32 = 8192u32; +pub const SP_PROT_TLS1_3_SERVER: u32 = 4096u32; +pub const SP_PROT_TLS1_CLIENT: u32 = 128u32; +pub const SP_PROT_TLS1_SERVER: u32 = 64u32; +pub const SP_PROT_UNI_CLIENT: u32 = 2147483648u32; +pub const SP_PROT_UNI_SERVER: u32 = 1073741824u32; +pub const SSL2SP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft SSL 2.0"); +pub const SSL2SP_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft SSL 2.0"); +pub const SSL2SP_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft SSL 2.0"); +pub const SSL3SP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft SSL 3.0"); +pub const SSL3SP_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft SSL 3.0"); +pub const SSL3SP_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft SSL 3.0"); +pub const SSL_CRACK_CERTIFICATE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SslCrackCertificate"); +pub const SSL_FREE_CERTIFICATE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SslFreeCertificate"); +pub const SSL_SESSION_DISABLE_RECONNECTS: SCHANNEL_SESSION_TOKEN_FLAGS = 2u32; +pub const SSL_SESSION_ENABLE_RECONNECTS: SCHANNEL_SESSION_TOKEN_FLAGS = 1u32; +pub const SSL_SESSION_RECONNECT: u32 = 1u32; +pub const SSPIPFC_CREDPROV_DO_NOT_LOAD: u32 = 4u32; +pub const SSPIPFC_CREDPROV_DO_NOT_SAVE: u32 = 1u32; +pub const SSPIPFC_NO_CHECKBOX: u32 = 2u32; +pub const SSPIPFC_SAVE_CRED_BY_CALLER: u32 = 1u32; +pub const SSPIPFC_USE_CREDUIBROKER: u32 = 8u32; +pub const SZ_ALG_MAX_SIZE: u32 = 64u32; +pub const Sasl_AuthZIDForbidden: SASL_AUTHZID_STATE = 0i32; +pub const Sasl_AuthZIDProcessed: SASL_AUTHZID_STATE = 1i32; +pub const SeAdtParmTypeAccessMask: SE_ADT_PARAMETER_TYPE = 7i32; +pub const SeAdtParmTypeAccessReason: SE_ADT_PARAMETER_TYPE = 29i32; +pub const SeAdtParmTypeClaims: SE_ADT_PARAMETER_TYPE = 32i32; +pub const SeAdtParmTypeDateTime: SE_ADT_PARAMETER_TYPE = 22i32; +pub const SeAdtParmTypeDuration: SE_ADT_PARAMETER_TYPE = 18i32; +pub const SeAdtParmTypeFileSpec: SE_ADT_PARAMETER_TYPE = 2i32; +pub const SeAdtParmTypeGuid: SE_ADT_PARAMETER_TYPE = 13i32; +pub const SeAdtParmTypeHexInt64: SE_ADT_PARAMETER_TYPE = 15i32; +pub const SeAdtParmTypeHexUlong: SE_ADT_PARAMETER_TYPE = 10i32; +pub const SeAdtParmTypeLogonHours: SE_ADT_PARAMETER_TYPE = 25i32; +pub const SeAdtParmTypeLogonId: SE_ADT_PARAMETER_TYPE = 5i32; +pub const SeAdtParmTypeLogonIdAsSid: SE_ADT_PARAMETER_TYPE = 33i32; +pub const SeAdtParmTypeLogonIdEx: SE_ADT_PARAMETER_TYPE = 35i32; +pub const SeAdtParmTypeLogonIdNoSid: SE_ADT_PARAMETER_TYPE = 26i32; +pub const SeAdtParmTypeLuid: SE_ADT_PARAMETER_TYPE = 14i32; +pub const SeAdtParmTypeMessage: SE_ADT_PARAMETER_TYPE = 21i32; +pub const SeAdtParmTypeMultiSzString: SE_ADT_PARAMETER_TYPE = 34i32; +pub const SeAdtParmTypeNoLogonId: SE_ADT_PARAMETER_TYPE = 6i32; +pub const SeAdtParmTypeNoUac: SE_ADT_PARAMETER_TYPE = 20i32; +pub const SeAdtParmTypeNone: SE_ADT_PARAMETER_TYPE = 0i32; +pub const SeAdtParmTypeObjectTypes: SE_ADT_PARAMETER_TYPE = 9i32; +pub const SeAdtParmTypePrivs: SE_ADT_PARAMETER_TYPE = 8i32; +pub const SeAdtParmTypePtr: SE_ADT_PARAMETER_TYPE = 11i32; +pub const SeAdtParmTypeResourceAttribute: SE_ADT_PARAMETER_TYPE = 31i32; +pub const SeAdtParmTypeSD: SE_ADT_PARAMETER_TYPE = 24i32; +pub const SeAdtParmTypeSid: SE_ADT_PARAMETER_TYPE = 4i32; +pub const SeAdtParmTypeSidList: SE_ADT_PARAMETER_TYPE = 17i32; +pub const SeAdtParmTypeSockAddr: SE_ADT_PARAMETER_TYPE = 23i32; +pub const SeAdtParmTypeSockAddrNoPort: SE_ADT_PARAMETER_TYPE = 28i32; +pub const SeAdtParmTypeStagingReason: SE_ADT_PARAMETER_TYPE = 30i32; +pub const SeAdtParmTypeString: SE_ADT_PARAMETER_TYPE = 1i32; +pub const SeAdtParmTypeStringList: SE_ADT_PARAMETER_TYPE = 16i32; +pub const SeAdtParmTypeTime: SE_ADT_PARAMETER_TYPE = 12i32; +pub const SeAdtParmTypeUlong: SE_ADT_PARAMETER_TYPE = 3i32; +pub const SeAdtParmTypeUlongNoConv: SE_ADT_PARAMETER_TYPE = 27i32; +pub const SeAdtParmTypeUserAccountControl: SE_ADT_PARAMETER_TYPE = 19i32; +pub const SecApplicationProtocolNegotiationExt_ALPN: SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT = 2i32; +pub const SecApplicationProtocolNegotiationExt_NPN: SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT = 1i32; +pub const SecApplicationProtocolNegotiationExt_None: SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT = 0i32; +pub const SecApplicationProtocolNegotiationStatus_None: SEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS = 0i32; +pub const SecApplicationProtocolNegotiationStatus_SelectedClientOnly: SEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS = 2i32; +pub const SecApplicationProtocolNegotiationStatus_Success: SEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS = 1i32; +pub const SecDirectory: SecDelegationType = 3i32; +pub const SecFull: SecDelegationType = 0i32; +pub const SecNameAlternateId: SECPKG_NAME_TYPE = 1i32; +pub const SecNameDN: SECPKG_NAME_TYPE = 3i32; +pub const SecNameFlat: SECPKG_NAME_TYPE = 2i32; +pub const SecNameSPN: SECPKG_NAME_TYPE = 4i32; +pub const SecNameSamCompatible: SECPKG_NAME_TYPE = 0i32; +pub const SecObject: SecDelegationType = 4i32; +pub const SecPkgAttrLastClientTokenMaybe: SECPKG_ATTR_LCT_STATUS = 2i32; +pub const SecPkgAttrLastClientTokenNo: SECPKG_ATTR_LCT_STATUS = 1i32; +pub const SecPkgAttrLastClientTokenYes: SECPKG_ATTR_LCT_STATUS = 0i32; +pub const SecPkgCallPackageMaxMessage: SECPKG_CALL_PACKAGE_MESSAGE_TYPE = 1026i32; +pub const SecPkgCallPackageMinMessage: SECPKG_CALL_PACKAGE_MESSAGE_TYPE = 1024i32; +pub const SecPkgCallPackagePinDcMessage: SECPKG_CALL_PACKAGE_MESSAGE_TYPE = 1024i32; +pub const SecPkgCallPackageTransferCredMessage: SECPKG_CALL_PACKAGE_MESSAGE_TYPE = 1026i32; +pub const SecPkgCallPackageUnpinAllDcsMessage: SECPKG_CALL_PACKAGE_MESSAGE_TYPE = 1025i32; +pub const SecPkgCredClass_Ephemeral: SECPKG_CRED_CLASS = 10i32; +pub const SecPkgCredClass_Explicit: SECPKG_CRED_CLASS = 40i32; +pub const SecPkgCredClass_None: SECPKG_CRED_CLASS = 0i32; +pub const SecPkgCredClass_PersistedGeneric: SECPKG_CRED_CLASS = 20i32; +pub const SecPkgCredClass_PersistedSpecific: SECPKG_CRED_CLASS = 30i32; +pub const SecService: SecDelegationType = 1i32; +pub const SecSessionPrimaryCred: SECPKG_SESSIONINFO_TYPE = 0i32; +pub const SecTrafficSecret_Client: SEC_TRAFFIC_SECRET_TYPE = 1i32; +pub const SecTrafficSecret_None: SEC_TRAFFIC_SECRET_TYPE = 0i32; +pub const SecTrafficSecret_Server: SEC_TRAFFIC_SECRET_TYPE = 2i32; +pub const SecTree: SecDelegationType = 2i32; +pub const SecpkgContextThunks: SECPKG_EXTENDED_INFORMATION_CLASS = 2i32; +pub const SecpkgExtraOids: SECPKG_EXTENDED_INFORMATION_CLASS = 5i32; +pub const SecpkgGssInfo: SECPKG_EXTENDED_INFORMATION_CLASS = 1i32; +pub const SecpkgMaxInfo: SECPKG_EXTENDED_INFORMATION_CLASS = 6i32; +pub const SecpkgMutualAuthLevel: SECPKG_EXTENDED_INFORMATION_CLASS = 3i32; +pub const SecpkgNego2Info: SECPKG_EXTENDED_INFORMATION_CLASS = 7i32; +pub const SecpkgWowClientDll: SECPKG_EXTENDED_INFORMATION_CLASS = 4i32; +pub const TLS1SP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft TLS 1.0"); +pub const TLS1SP_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft TLS 1.0"); +pub const TLS1SP_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft TLS 1.0"); +pub const TLS1_ALERT_ACCESS_DENIED: u32 = 49u32; +pub const TLS1_ALERT_BAD_CERTIFICATE: u32 = 42u32; +pub const TLS1_ALERT_BAD_RECORD_MAC: u32 = 20u32; +pub const TLS1_ALERT_CERTIFICATE_EXPIRED: u32 = 45u32; +pub const TLS1_ALERT_CERTIFICATE_REVOKED: u32 = 44u32; +pub const TLS1_ALERT_CERTIFICATE_UNKNOWN: u32 = 46u32; +pub const TLS1_ALERT_CLOSE_NOTIFY: u32 = 0u32; +pub const TLS1_ALERT_DECODE_ERROR: u32 = 50u32; +pub const TLS1_ALERT_DECOMPRESSION_FAIL: u32 = 30u32; +pub const TLS1_ALERT_DECRYPTION_FAILED: u32 = 21u32; +pub const TLS1_ALERT_DECRYPT_ERROR: u32 = 51u32; +pub const TLS1_ALERT_EXPORT_RESTRICTION: u32 = 60u32; +pub const TLS1_ALERT_FATAL: SCHANNEL_ALERT_TOKEN_ALERT_TYPE = 2u32; +pub const TLS1_ALERT_HANDSHAKE_FAILURE: u32 = 40u32; +pub const TLS1_ALERT_ILLEGAL_PARAMETER: u32 = 47u32; +pub const TLS1_ALERT_INSUFFIENT_SECURITY: u32 = 71u32; +pub const TLS1_ALERT_INTERNAL_ERROR: u32 = 80u32; +pub const TLS1_ALERT_NO_APP_PROTOCOL: u32 = 120u32; +pub const TLS1_ALERT_NO_RENEGOTIATION: u32 = 100u32; +pub const TLS1_ALERT_PROTOCOL_VERSION: u32 = 70u32; +pub const TLS1_ALERT_RECORD_OVERFLOW: u32 = 22u32; +pub const TLS1_ALERT_UNEXPECTED_MESSAGE: u32 = 10u32; +pub const TLS1_ALERT_UNKNOWN_CA: u32 = 48u32; +pub const TLS1_ALERT_UNKNOWN_PSK_IDENTITY: u32 = 115u32; +pub const TLS1_ALERT_UNSUPPORTED_CERT: u32 = 43u32; +pub const TLS1_ALERT_UNSUPPORTED_EXT: u32 = 110u32; +pub const TLS1_ALERT_USER_CANCELED: u32 = 90u32; +pub const TLS1_ALERT_WARNING: SCHANNEL_ALERT_TOKEN_ALERT_TYPE = 1u32; +pub const TLS_PARAMS_OPTIONAL: u32 = 1u32; +pub const TOKENBINDING_EXTENSION_FORMAT_UNDEFINED: TOKENBINDING_EXTENSION_FORMAT = 0i32; +pub const TOKENBINDING_KEY_PARAMETERS_TYPE_ANYEXISTING: TOKENBINDING_KEY_PARAMETERS_TYPE = 255i32; +pub const TOKENBINDING_KEY_PARAMETERS_TYPE_ECDSAP256: TOKENBINDING_KEY_PARAMETERS_TYPE = 2i32; +pub const TOKENBINDING_KEY_PARAMETERS_TYPE_RSA2048_PKCS: TOKENBINDING_KEY_PARAMETERS_TYPE = 0i32; +pub const TOKENBINDING_KEY_PARAMETERS_TYPE_RSA2048_PSS: TOKENBINDING_KEY_PARAMETERS_TYPE = 1i32; +pub const TOKENBINDING_TYPE_PROVIDED: TOKENBINDING_TYPE = 0i32; +pub const TOKENBINDING_TYPE_REFERRED: TOKENBINDING_TYPE = 1i32; +pub const TRUSTED_QUERY_AUTH: i32 = 64i32; +pub const TRUSTED_QUERY_CONTROLLERS: i32 = 2i32; +pub const TRUSTED_QUERY_DOMAIN_NAME: i32 = 1i32; +pub const TRUSTED_QUERY_POSIX: i32 = 8i32; +pub const TRUSTED_SET_AUTH: i32 = 32i32; +pub const TRUSTED_SET_CONTROLLERS: i32 = 4i32; +pub const TRUSTED_SET_POSIX: i32 = 16i32; +pub const TRUST_ATTRIBUTES_USER: u32 = 4278190080u32; +pub const TRUST_ATTRIBUTES_VALID: u32 = 4278386687u32; +pub const TRUST_ATTRIBUTE_CROSS_ORGANIZATION: TRUSTED_DOMAIN_TRUST_ATTRIBUTES = 16u32; +pub const TRUST_ATTRIBUTE_CROSS_ORGANIZATION_ENABLE_TGT_DELEGATION: u32 = 2048u32; +pub const TRUST_ATTRIBUTE_CROSS_ORGANIZATION_NO_TGT_DELEGATION: u32 = 512u32; +pub const TRUST_ATTRIBUTE_DISABLE_AUTH_TARGET_VALIDATION: u32 = 4096u32; +pub const TRUST_ATTRIBUTE_FILTER_SIDS: TRUSTED_DOMAIN_TRUST_ATTRIBUTES = 4u32; +pub const TRUST_ATTRIBUTE_FOREST_TRANSITIVE: TRUSTED_DOMAIN_TRUST_ATTRIBUTES = 8u32; +pub const TRUST_ATTRIBUTE_NON_TRANSITIVE: TRUSTED_DOMAIN_TRUST_ATTRIBUTES = 1u32; +pub const TRUST_ATTRIBUTE_PIM_TRUST: u32 = 1024u32; +pub const TRUST_ATTRIBUTE_QUARANTINED_DOMAIN: u32 = 4u32; +pub const TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL: TRUSTED_DOMAIN_TRUST_ATTRIBUTES = 64u32; +pub const TRUST_ATTRIBUTE_TREE_PARENT: u32 = 4194304u32; +pub const TRUST_ATTRIBUTE_TREE_ROOT: u32 = 8388608u32; +pub const TRUST_ATTRIBUTE_TRUST_USES_AES_KEYS: u32 = 256u32; +pub const TRUST_ATTRIBUTE_TRUST_USES_RC4_ENCRYPTION: u32 = 128u32; +pub const TRUST_ATTRIBUTE_UPLEVEL_ONLY: TRUSTED_DOMAIN_TRUST_ATTRIBUTES = 2u32; +pub const TRUST_ATTRIBUTE_WITHIN_FOREST: TRUSTED_DOMAIN_TRUST_ATTRIBUTES = 32u32; +pub const TRUST_AUTH_TYPE_CLEAR: LSA_AUTH_INFORMATION_AUTH_TYPE = 2u32; +pub const TRUST_AUTH_TYPE_NONE: LSA_AUTH_INFORMATION_AUTH_TYPE = 0u32; +pub const TRUST_AUTH_TYPE_NT4OWF: LSA_AUTH_INFORMATION_AUTH_TYPE = 1u32; +pub const TRUST_AUTH_TYPE_VERSION: LSA_AUTH_INFORMATION_AUTH_TYPE = 3u32; +pub const TRUST_DIRECTION_BIDIRECTIONAL: TRUSTED_DOMAIN_TRUST_DIRECTION = 3u32; +pub const TRUST_DIRECTION_DISABLED: TRUSTED_DOMAIN_TRUST_DIRECTION = 0u32; +pub const TRUST_DIRECTION_INBOUND: TRUSTED_DOMAIN_TRUST_DIRECTION = 1u32; +pub const TRUST_DIRECTION_OUTBOUND: TRUSTED_DOMAIN_TRUST_DIRECTION = 2u32; +pub const TRUST_TYPE_DCE: TRUSTED_DOMAIN_TRUST_TYPE = 4u32; +pub const TRUST_TYPE_DOWNLEVEL: TRUSTED_DOMAIN_TRUST_TYPE = 1u32; +pub const TRUST_TYPE_MIT: TRUSTED_DOMAIN_TRUST_TYPE = 3u32; +pub const TRUST_TYPE_UPLEVEL: TRUSTED_DOMAIN_TRUST_TYPE = 2u32; +pub const TlsHashAlgorithm_Md5: eTlsHashAlgorithm = 1i32; +pub const TlsHashAlgorithm_None: eTlsHashAlgorithm = 0i32; +pub const TlsHashAlgorithm_Sha1: eTlsHashAlgorithm = 2i32; +pub const TlsHashAlgorithm_Sha224: eTlsHashAlgorithm = 3i32; +pub const TlsHashAlgorithm_Sha256: eTlsHashAlgorithm = 4i32; +pub const TlsHashAlgorithm_Sha384: eTlsHashAlgorithm = 5i32; +pub const TlsHashAlgorithm_Sha512: eTlsHashAlgorithm = 6i32; +pub const TlsParametersCngAlgUsageCertSig: eTlsAlgorithmUsage = 4i32; +pub const TlsParametersCngAlgUsageCipher: eTlsAlgorithmUsage = 2i32; +pub const TlsParametersCngAlgUsageDigest: eTlsAlgorithmUsage = 3i32; +pub const TlsParametersCngAlgUsageKeyExchange: eTlsAlgorithmUsage = 0i32; +pub const TlsParametersCngAlgUsageSignature: eTlsAlgorithmUsage = 1i32; +pub const TlsSignatureAlgorithm_Anonymous: eTlsSignatureAlgorithm = 0i32; +pub const TlsSignatureAlgorithm_Dsa: eTlsSignatureAlgorithm = 2i32; +pub const TlsSignatureAlgorithm_Ecdsa: eTlsSignatureAlgorithm = 3i32; +pub const TlsSignatureAlgorithm_Rsa: eTlsSignatureAlgorithm = 1i32; +pub const TrustedControllersInformation: TRUSTED_INFORMATION_CLASS = 2i32; +pub const TrustedDomainAuthInformation: TRUSTED_INFORMATION_CLASS = 7i32; +pub const TrustedDomainAuthInformationInternal: TRUSTED_INFORMATION_CLASS = 9i32; +pub const TrustedDomainAuthInformationInternalAes: TRUSTED_INFORMATION_CLASS = 14i32; +pub const TrustedDomainFullInformation: TRUSTED_INFORMATION_CLASS = 8i32; +pub const TrustedDomainFullInformation2Internal: TRUSTED_INFORMATION_CLASS = 12i32; +pub const TrustedDomainFullInformationInternal: TRUSTED_INFORMATION_CLASS = 10i32; +pub const TrustedDomainFullInformationInternalAes: TRUSTED_INFORMATION_CLASS = 15i32; +pub const TrustedDomainInformationBasic: TRUSTED_INFORMATION_CLASS = 5i32; +pub const TrustedDomainInformationEx: TRUSTED_INFORMATION_CLASS = 6i32; +pub const TrustedDomainInformationEx2Internal: TRUSTED_INFORMATION_CLASS = 11i32; +pub const TrustedDomainNameInformation: TRUSTED_INFORMATION_CLASS = 1i32; +pub const TrustedDomainSupportedEncryptionTypes: TRUSTED_INFORMATION_CLASS = 13i32; +pub const TrustedPasswordInformation: TRUSTED_INFORMATION_CLASS = 4i32; +pub const TrustedPosixOffsetInformation: TRUSTED_INFORMATION_CLASS = 3i32; +pub const UNDERSTANDS_LONG_NAMES: u32 = 1u32; +pub const UNISP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Unified Security Protocol Provider"); +pub const UNISP_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft Unified Security Protocol Provider"); +pub const UNISP_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Unified Security Protocol Provider"); +pub const UNISP_RPC_ID: u32 = 14u32; +pub const USER_ACCOUNT_AUTO_LOCKED: u32 = 1024u32; +pub const USER_ACCOUNT_DISABLED: u32 = 1u32; +pub const USER_ALL_PARAMETERS: u32 = 2097152u32; +pub const USER_DONT_EXPIRE_PASSWORD: u32 = 512u32; +pub const USER_DONT_REQUIRE_PREAUTH: u32 = 65536u32; +pub const USER_ENCRYPTED_TEXT_PASSWORD_ALLOWED: u32 = 2048u32; +pub const USER_HOME_DIRECTORY_REQUIRED: u32 = 2u32; +pub const USER_INTERDOMAIN_TRUST_ACCOUNT: u32 = 64u32; +pub const USER_MNS_LOGON_ACCOUNT: u32 = 32u32; +pub const USER_NORMAL_ACCOUNT: u32 = 16u32; +pub const USER_NOT_DELEGATED: u32 = 16384u32; +pub const USER_NO_AUTH_DATA_REQUIRED: u32 = 524288u32; +pub const USER_PARTIAL_SECRETS_ACCOUNT: u32 = 1048576u32; +pub const USER_PASSWORD_EXPIRED: u32 = 131072u32; +pub const USER_PASSWORD_NOT_REQUIRED: u32 = 4u32; +pub const USER_SERVER_TRUST_ACCOUNT: u32 = 256u32; +pub const USER_SMARTCARD_REQUIRED: u32 = 4096u32; +pub const USER_TEMP_DUPLICATE_ACCOUNT: u32 = 8u32; +pub const USER_TRUSTED_FOR_DELEGATION: u32 = 8192u32; +pub const USER_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION: u32 = 262144u32; +pub const USER_USE_AES_KEYS: u32 = 2097152u32; +pub const USER_USE_DES_KEY_ONLY: u32 = 32768u32; +pub const USER_WORKSTATION_TRUST_ACCOUNT: u32 = 128u32; +pub const WDIGEST_SP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WDigest"); +pub const WDIGEST_SP_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WDigest"); +pub const WDIGEST_SP_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WDigest"); +pub const WINDOWS_SLID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x55c92734_d682_4d71_983e_d6ec3f16059f); +pub const _FACILITY_WINDOWS_STORE: u32 = 63u32; +pub type ASC_REQ_FLAGS = u32; +pub type ASC_REQ_HIGH_FLAGS = u64; +pub type CRED_FETCH = i32; +pub type DOMAIN_PASSWORD_PROPERTIES = u32; +pub type EXPORT_SECURITY_CONTEXT_FLAGS = u32; +pub type EXTENDED_NAME_FORMAT = i32; +pub type ISC_REQ_FLAGS = u32; +pub type ISC_REQ_HIGH_FLAGS = u64; +pub type KERB_ADDRESS_TYPE = u32; +pub type KERB_CERTIFICATE_INFO_TYPE = i32; +pub type KERB_CRYPTO_KEY_TYPE = i32; +pub type KERB_LOGON_SUBMIT_TYPE = i32; +pub type KERB_PROFILE_BUFFER_TYPE = i32; +pub type KERB_PROTOCOL_MESSAGE_TYPE = i32; +pub type KERB_REQUEST_FLAGS = u32; +pub type KERB_TICKET_FLAGS = u32; +pub type KSEC_CONTEXT_TYPE = i32; +pub type LSA_AUTH_INFORMATION_AUTH_TYPE = u32; +pub type LSA_FOREST_TRUST_COLLISION_RECORD_TYPE = i32; +pub type LSA_FOREST_TRUST_RECORD_TYPE = i32; +pub type LSA_LOOKUP_DOMAIN_INFO_CLASS = i32; +pub type LSA_TOKEN_INFORMATION_TYPE = i32; +pub type MSV1_0 = u32; +pub type MSV1_0_AVID = i32; +pub type MSV1_0_CREDENTIAL_KEY_TYPE = i32; +pub type MSV1_0_LOGON_SUBMIT_TYPE = i32; +pub type MSV1_0_PROFILE_BUFFER_TYPE = i32; +pub type MSV1_0_PROTOCOL_MESSAGE_TYPE = i32; +pub type MSV_SUBAUTH_LOGON_PARAMETER_CONTROL = u32; +pub type MSV_SUB_AUTHENTICATION_FILTER = u32; +pub type MSV_SUPPLEMENTAL_CREDENTIAL_FLAGS = u32; +pub type NEGOTIATE_MESSAGES = i32; +pub type NETLOGON_LOGON_INFO_CLASS = i32; +pub type PKU2U_LOGON_SUBMIT_TYPE = i32; +pub type POLICY_AUDIT_EVENT_TYPE = i32; +pub type POLICY_DOMAIN_INFORMATION_CLASS = i32; +pub type POLICY_INFORMATION_CLASS = i32; +pub type POLICY_LSA_SERVER_ROLE = i32; +pub type POLICY_NOTIFICATION_INFORMATION_CLASS = i32; +pub type SASL_AUTHZID_STATE = i32; +pub type SCHANNEL_ALERT_TOKEN_ALERT_TYPE = u32; +pub type SCHANNEL_CRED_FLAGS = u32; +pub type SCHANNEL_SESSION_TOKEN_FLAGS = u32; +pub type SECPKG_ATTR = u32; +pub type SECPKG_ATTR_LCT_STATUS = i32; +pub type SECPKG_CALL_PACKAGE_MESSAGE_TYPE = i32; +pub type SECPKG_CRED = u32; +pub type SECPKG_CRED_CLASS = i32; +pub type SECPKG_EXTENDED_INFORMATION_CLASS = i32; +pub type SECPKG_NAME_TYPE = i32; +pub type SECPKG_PACKAGE_CHANGE_TYPE = u32; +pub type SECPKG_SESSIONINFO_TYPE = i32; +#[repr(transparent)] +pub struct SECURITY_LOGON_TYPE(pub i32); +impl SECURITY_LOGON_TYPE { + pub const UndefinedLogonType: Self = Self(0i32); + pub const Interactive: Self = Self(2i32); + pub const Network: Self = Self(3i32); + pub const Batch: Self = Self(4i32); + pub const Service: Self = Self(5i32); + pub const Proxy: Self = Self(6i32); + pub const Unlock: Self = Self(7i32); + pub const NetworkCleartext: Self = Self(8i32); + pub const NewCredentials: Self = Self(9i32); + pub const RemoteInteractive: Self = Self(10i32); + pub const CachedInteractive: Self = Self(11i32); + pub const CachedRemoteInteractive: Self = Self(12i32); + pub const CachedUnlock: Self = Self(13i32); +} +impl ::core::marker::Copy for SECURITY_LOGON_TYPE {} +impl ::core::clone::Clone for SECURITY_LOGON_TYPE { + fn clone(&self) -> Self { + *self + } +} +pub type SECURITY_PACKAGE_OPTIONS_TYPE = u32; +pub type SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT = i32; +pub type SEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS = i32; +pub type SEC_TRAFFIC_SECRET_TYPE = i32; +pub type SE_ADT_PARAMETER_TYPE = i32; +pub type SLDATATYPE = u32; +pub type SLIDTYPE = i32; +pub type SLLICENSINGSTATUS = i32; +pub type SLREFERRALTYPE = i32; +pub type SL_ACTIVATION_TYPE = i32; +pub type SL_GENUINE_STATE = i32; +pub type SchGetExtensionsOptions = i32; +pub type SecDelegationType = i32; +pub type TOKENBINDING_EXTENSION_FORMAT = i32; +pub type TOKENBINDING_KEY_PARAMETERS_TYPE = i32; +pub type TOKENBINDING_TYPE = i32; +pub type TRUSTED_DOMAIN_TRUST_ATTRIBUTES = u32; +pub type TRUSTED_DOMAIN_TRUST_DIRECTION = u32; +pub type TRUSTED_DOMAIN_TRUST_TYPE = u32; +pub type TRUSTED_INFORMATION_CLASS = i32; +pub type eTlsAlgorithmUsage = i32; +pub type eTlsHashAlgorithm = i32; +pub type eTlsSignatureAlgorithm = i32; +#[repr(C)] +pub struct AUDIT_POLICY_INFORMATION { + pub AuditSubCategoryGuid: ::windows_sys::core::GUID, + pub AuditingInformation: u32, + pub AuditCategoryGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for AUDIT_POLICY_INFORMATION {} +impl ::core::clone::Clone for AUDIT_POLICY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CENTRAL_ACCESS_POLICY { + pub CAPID: super::super::super::Foundation::PSID, + pub Name: LSA_UNICODE_STRING, + pub Description: LSA_UNICODE_STRING, + pub ChangeId: LSA_UNICODE_STRING, + pub Flags: u32, + pub CAPECount: u32, + pub CAPEs: *mut *mut CENTRAL_ACCESS_POLICY_ENTRY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CENTRAL_ACCESS_POLICY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CENTRAL_ACCESS_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CENTRAL_ACCESS_POLICY_ENTRY { + pub Name: LSA_UNICODE_STRING, + pub Description: LSA_UNICODE_STRING, + pub ChangeId: LSA_UNICODE_STRING, + pub LengthAppliesTo: u32, + pub AppliesTo: *mut u8, + pub LengthSD: u32, + pub SD: super::super::PSECURITY_DESCRIPTOR, + pub LengthStagedSD: u32, + pub StagedSD: super::super::PSECURITY_DESCRIPTOR, + pub Flags: u32, +} +impl ::core::marker::Copy for CENTRAL_ACCESS_POLICY_ENTRY {} +impl ::core::clone::Clone for CENTRAL_ACCESS_POLICY_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLEAR_BLOCK { + pub data: [u8; 8], +} +impl ::core::marker::Copy for CLEAR_BLOCK {} +impl ::core::clone::Clone for CLEAR_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPTO_SETTINGS { + pub eAlgorithmUsage: eTlsAlgorithmUsage, + pub strCngAlgId: LSA_UNICODE_STRING, + pub cChainingModes: u32, + pub rgstrChainingModes: *mut LSA_UNICODE_STRING, + pub dwMinBitLength: u32, + pub dwMaxBitLength: u32, +} +impl ::core::marker::Copy for CRYPTO_SETTINGS {} +impl ::core::clone::Clone for CRYPTO_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOMAIN_PASSWORD_INFORMATION { + pub MinPasswordLength: u16, + pub PasswordHistoryLength: u16, + pub PasswordProperties: DOMAIN_PASSWORD_PROPERTIES, + pub MaxPasswordAge: i64, + pub MinPasswordAge: i64, +} +impl ::core::marker::Copy for DOMAIN_PASSWORD_INFORMATION {} +impl ::core::clone::Clone for DOMAIN_PASSWORD_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +pub struct ENCRYPTED_CREDENTIALW { + pub Cred: super::super::Credentials::CREDENTIALW, + pub ClearCredentialBlobSize: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +impl ::core::marker::Copy for ENCRYPTED_CREDENTIALW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +impl ::core::clone::Clone for ENCRYPTED_CREDENTIALW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KDC_PROXY_CACHE_ENTRY_DATA { + pub SinceLastUsed: u64, + pub DomainName: LSA_UNICODE_STRING, + pub ProxyServerName: LSA_UNICODE_STRING, + pub ProxyServerVdir: LSA_UNICODE_STRING, + pub ProxyServerPort: u16, + pub LogonId: super::super::super::Foundation::LUID, + pub CredUserName: LSA_UNICODE_STRING, + pub CredDomainName: LSA_UNICODE_STRING, + pub GlobalCache: super::super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KDC_PROXY_CACHE_ENTRY_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KDC_PROXY_CACHE_ENTRY_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub RealmName: LSA_UNICODE_STRING, + pub KdcAddress: LSA_UNICODE_STRING, + pub AddressType: KERB_ADDRESS_TYPE, + pub DcFlags: u32, +} +impl ::core::marker::Copy for KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST {} +impl ::core::clone::Clone for KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_ADD_BINDING_CACHE_ENTRY_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub RealmName: LSA_UNICODE_STRING, + pub KdcAddress: LSA_UNICODE_STRING, + pub AddressType: KERB_ADDRESS_TYPE, +} +impl ::core::marker::Copy for KERB_ADD_BINDING_CACHE_ENTRY_REQUEST {} +impl ::core::clone::Clone for KERB_ADD_BINDING_CACHE_ENTRY_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_ADD_CREDENTIALS_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub UserName: LSA_UNICODE_STRING, + pub DomainName: LSA_UNICODE_STRING, + pub Password: LSA_UNICODE_STRING, + pub LogonId: super::super::super::Foundation::LUID, + pub Flags: KERB_REQUEST_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_ADD_CREDENTIALS_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_ADD_CREDENTIALS_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_ADD_CREDENTIALS_REQUEST_EX { + pub Credentials: KERB_ADD_CREDENTIALS_REQUEST, + pub PrincipalNameCount: u32, + pub PrincipalNames: [LSA_UNICODE_STRING; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_ADD_CREDENTIALS_REQUEST_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_ADD_CREDENTIALS_REQUEST_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_AUTH_DATA { + pub Type: u32, + pub Length: u32, + pub Data: *mut u8, +} +impl ::core::marker::Copy for KERB_AUTH_DATA {} +impl ::core::clone::Clone for KERB_AUTH_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_BINDING_CACHE_ENTRY_DATA { + pub DiscoveryTime: u64, + pub RealmName: LSA_UNICODE_STRING, + pub KdcAddress: LSA_UNICODE_STRING, + pub AddressType: KERB_ADDRESS_TYPE, + pub Flags: u32, + pub DcFlags: u32, + pub CacheFlags: u32, + pub KdcName: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for KERB_BINDING_CACHE_ENTRY_DATA {} +impl ::core::clone::Clone for KERB_BINDING_CACHE_ENTRY_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_CERTIFICATE_HASHINFO { + pub StoreNameLength: u16, + pub HashLength: u16, +} +impl ::core::marker::Copy for KERB_CERTIFICATE_HASHINFO {} +impl ::core::clone::Clone for KERB_CERTIFICATE_HASHINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_CERTIFICATE_INFO { + pub CertInfoSize: u32, + pub InfoType: u32, +} +impl ::core::marker::Copy for KERB_CERTIFICATE_INFO {} +impl ::core::clone::Clone for KERB_CERTIFICATE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_CERTIFICATE_LOGON { + pub MessageType: KERB_LOGON_SUBMIT_TYPE, + pub DomainName: LSA_UNICODE_STRING, + pub UserName: LSA_UNICODE_STRING, + pub Pin: LSA_UNICODE_STRING, + pub Flags: u32, + pub CspDataLength: u32, + pub CspData: *mut u8, +} +impl ::core::marker::Copy for KERB_CERTIFICATE_LOGON {} +impl ::core::clone::Clone for KERB_CERTIFICATE_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_CERTIFICATE_S4U_LOGON { + pub MessageType: KERB_LOGON_SUBMIT_TYPE, + pub Flags: u32, + pub UserPrincipalName: LSA_UNICODE_STRING, + pub DomainName: LSA_UNICODE_STRING, + pub CertificateLength: u32, + pub Certificate: *mut u8, +} +impl ::core::marker::Copy for KERB_CERTIFICATE_S4U_LOGON {} +impl ::core::clone::Clone for KERB_CERTIFICATE_S4U_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_CERTIFICATE_UNLOCK_LOGON { + pub Logon: KERB_CERTIFICATE_LOGON, + pub LogonId: super::super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_CERTIFICATE_UNLOCK_LOGON {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_CERTIFICATE_UNLOCK_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_CHANGEPASSWORD_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub DomainName: LSA_UNICODE_STRING, + pub AccountName: LSA_UNICODE_STRING, + pub OldPassword: LSA_UNICODE_STRING, + pub NewPassword: LSA_UNICODE_STRING, + pub Impersonating: super::super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_CHANGEPASSWORD_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_CHANGEPASSWORD_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_CLEANUP_MACHINE_PKINIT_CREDS_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub LogonId: super::super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_CLEANUP_MACHINE_PKINIT_CREDS_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_CLEANUP_MACHINE_PKINIT_CREDS_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_CLOUD_KERBEROS_DEBUG_DATA { + pub _bitfield: u32, +} +impl ::core::marker::Copy for KERB_CLOUD_KERBEROS_DEBUG_DATA {} +impl ::core::clone::Clone for KERB_CLOUD_KERBEROS_DEBUG_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_CLOUD_KERBEROS_DEBUG_DATA_V0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for KERB_CLOUD_KERBEROS_DEBUG_DATA_V0 {} +impl ::core::clone::Clone for KERB_CLOUD_KERBEROS_DEBUG_DATA_V0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_CLOUD_KERBEROS_DEBUG_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub LogonId: super::super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_CLOUD_KERBEROS_DEBUG_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_CLOUD_KERBEROS_DEBUG_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_CLOUD_KERBEROS_DEBUG_RESPONSE { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub Version: u32, + pub Length: u32, + pub Data: [u32; 1], +} +impl ::core::marker::Copy for KERB_CLOUD_KERBEROS_DEBUG_RESPONSE {} +impl ::core::clone::Clone for KERB_CLOUD_KERBEROS_DEBUG_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_CRYPTO_KEY { + pub KeyType: KERB_CRYPTO_KEY_TYPE, + pub Length: u32, + pub Value: *mut u8, +} +impl ::core::marker::Copy for KERB_CRYPTO_KEY {} +impl ::core::clone::Clone for KERB_CRYPTO_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_CRYPTO_KEY32 { + pub KeyType: i32, + pub Length: u32, + pub Offset: u32, +} +impl ::core::marker::Copy for KERB_CRYPTO_KEY32 {} +impl ::core::clone::Clone for KERB_CRYPTO_KEY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_DECRYPT_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub LogonId: super::super::super::Foundation::LUID, + pub Flags: u32, + pub CryptoType: i32, + pub KeyUsage: i32, + pub Key: KERB_CRYPTO_KEY, + pub EncryptedDataSize: u32, + pub InitialVectorSize: u32, + pub InitialVector: *mut u8, + pub EncryptedData: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_DECRYPT_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_DECRYPT_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_DECRYPT_RESPONSE { + pub DecryptedData: [u8; 1], +} +impl ::core::marker::Copy for KERB_DECRYPT_RESPONSE {} +impl ::core::clone::Clone for KERB_DECRYPT_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_EXTERNAL_NAME { + pub NameType: i16, + pub NameCount: u16, + pub Names: [LSA_UNICODE_STRING; 1], +} +impl ::core::marker::Copy for KERB_EXTERNAL_NAME {} +impl ::core::clone::Clone for KERB_EXTERNAL_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_EXTERNAL_TICKET { + pub ServiceName: *mut KERB_EXTERNAL_NAME, + pub TargetName: *mut KERB_EXTERNAL_NAME, + pub ClientName: *mut KERB_EXTERNAL_NAME, + pub DomainName: LSA_UNICODE_STRING, + pub TargetDomainName: LSA_UNICODE_STRING, + pub AltTargetDomainName: LSA_UNICODE_STRING, + pub SessionKey: KERB_CRYPTO_KEY, + pub TicketFlags: KERB_TICKET_FLAGS, + pub Flags: u32, + pub KeyExpirationTime: i64, + pub StartTime: i64, + pub EndTime: i64, + pub RenewUntil: i64, + pub TimeSkew: i64, + pub EncodedTicketSize: u32, + pub EncodedTicket: *mut u8, +} +impl ::core::marker::Copy for KERB_EXTERNAL_TICKET {} +impl ::core::clone::Clone for KERB_EXTERNAL_TICKET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_INTERACTIVE_LOGON { + pub MessageType: KERB_LOGON_SUBMIT_TYPE, + pub LogonDomainName: LSA_UNICODE_STRING, + pub UserName: LSA_UNICODE_STRING, + pub Password: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for KERB_INTERACTIVE_LOGON {} +impl ::core::clone::Clone for KERB_INTERACTIVE_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_INTERACTIVE_PROFILE { + pub MessageType: KERB_PROFILE_BUFFER_TYPE, + pub LogonCount: u16, + pub BadPasswordCount: u16, + pub LogonTime: i64, + pub LogoffTime: i64, + pub KickOffTime: i64, + pub PasswordLastSet: i64, + pub PasswordCanChange: i64, + pub PasswordMustChange: i64, + pub LogonScript: LSA_UNICODE_STRING, + pub HomeDirectory: LSA_UNICODE_STRING, + pub FullName: LSA_UNICODE_STRING, + pub ProfilePath: LSA_UNICODE_STRING, + pub HomeDirectoryDrive: LSA_UNICODE_STRING, + pub LogonServer: LSA_UNICODE_STRING, + pub UserFlags: u32, +} +impl ::core::marker::Copy for KERB_INTERACTIVE_PROFILE {} +impl ::core::clone::Clone for KERB_INTERACTIVE_PROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_INTERACTIVE_UNLOCK_LOGON { + pub Logon: KERB_INTERACTIVE_LOGON, + pub LogonId: super::super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_INTERACTIVE_UNLOCK_LOGON {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_INTERACTIVE_UNLOCK_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_NET_ADDRESS { + pub Family: u32, + pub Length: u32, + pub Address: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for KERB_NET_ADDRESS {} +impl ::core::clone::Clone for KERB_NET_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_NET_ADDRESSES { + pub Number: u32, + pub Addresses: [KERB_NET_ADDRESS; 1], +} +impl ::core::marker::Copy for KERB_NET_ADDRESSES {} +impl ::core::clone::Clone for KERB_NET_ADDRESSES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_PURGE_BINDING_CACHE_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, +} +impl ::core::marker::Copy for KERB_PURGE_BINDING_CACHE_REQUEST {} +impl ::core::clone::Clone for KERB_PURGE_BINDING_CACHE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_PURGE_KDC_PROXY_CACHE_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub Flags: u32, + pub LogonId: super::super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_PURGE_KDC_PROXY_CACHE_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_PURGE_KDC_PROXY_CACHE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_PURGE_KDC_PROXY_CACHE_RESPONSE { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub CountOfPurged: u32, +} +impl ::core::marker::Copy for KERB_PURGE_KDC_PROXY_CACHE_RESPONSE {} +impl ::core::clone::Clone for KERB_PURGE_KDC_PROXY_CACHE_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_PURGE_TKT_CACHE_EX_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub LogonId: super::super::super::Foundation::LUID, + pub Flags: u32, + pub TicketTemplate: KERB_TICKET_CACHE_INFO_EX, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_PURGE_TKT_CACHE_EX_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_PURGE_TKT_CACHE_EX_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_PURGE_TKT_CACHE_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub LogonId: super::super::super::Foundation::LUID, + pub ServerName: LSA_UNICODE_STRING, + pub RealmName: LSA_UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_PURGE_TKT_CACHE_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_PURGE_TKT_CACHE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_QUERY_BINDING_CACHE_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, +} +impl ::core::marker::Copy for KERB_QUERY_BINDING_CACHE_REQUEST {} +impl ::core::clone::Clone for KERB_QUERY_BINDING_CACHE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_QUERY_BINDING_CACHE_RESPONSE { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub CountOfEntries: u32, + pub Entries: *mut KERB_BINDING_CACHE_ENTRY_DATA, +} +impl ::core::marker::Copy for KERB_QUERY_BINDING_CACHE_RESPONSE {} +impl ::core::clone::Clone for KERB_QUERY_BINDING_CACHE_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_QUERY_DOMAIN_EXTENDED_POLICIES_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub Flags: u32, + pub DomainName: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for KERB_QUERY_DOMAIN_EXTENDED_POLICIES_REQUEST {} +impl ::core::clone::Clone for KERB_QUERY_DOMAIN_EXTENDED_POLICIES_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub Flags: u32, + pub ExtendedPolicies: u32, + pub DsFlags: u32, +} +impl ::core::marker::Copy for KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE {} +impl ::core::clone::Clone for KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_QUERY_KDC_PROXY_CACHE_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub Flags: u32, + pub LogonId: super::super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_QUERY_KDC_PROXY_CACHE_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_QUERY_KDC_PROXY_CACHE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_QUERY_KDC_PROXY_CACHE_RESPONSE { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub CountOfEntries: u32, + pub Entries: *mut KDC_PROXY_CACHE_ENTRY_DATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_QUERY_KDC_PROXY_CACHE_RESPONSE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_QUERY_KDC_PROXY_CACHE_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_QUERY_S4U2PROXY_CACHE_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub Flags: u32, + pub LogonId: super::super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_QUERY_S4U2PROXY_CACHE_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_QUERY_S4U2PROXY_CACHE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_QUERY_S4U2PROXY_CACHE_RESPONSE { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub CountOfCreds: u32, + pub Creds: *mut KERB_S4U2PROXY_CRED, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_QUERY_S4U2PROXY_CACHE_RESPONSE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_QUERY_S4U2PROXY_CACHE_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_QUERY_TKT_CACHE_EX2_RESPONSE { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub CountOfTickets: u32, + pub Tickets: [KERB_TICKET_CACHE_INFO_EX2; 1], +} +impl ::core::marker::Copy for KERB_QUERY_TKT_CACHE_EX2_RESPONSE {} +impl ::core::clone::Clone for KERB_QUERY_TKT_CACHE_EX2_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_QUERY_TKT_CACHE_EX3_RESPONSE { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub CountOfTickets: u32, + pub Tickets: [KERB_TICKET_CACHE_INFO_EX3; 1], +} +impl ::core::marker::Copy for KERB_QUERY_TKT_CACHE_EX3_RESPONSE {} +impl ::core::clone::Clone for KERB_QUERY_TKT_CACHE_EX3_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_QUERY_TKT_CACHE_EX_RESPONSE { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub CountOfTickets: u32, + pub Tickets: [KERB_TICKET_CACHE_INFO_EX; 1], +} +impl ::core::marker::Copy for KERB_QUERY_TKT_CACHE_EX_RESPONSE {} +impl ::core::clone::Clone for KERB_QUERY_TKT_CACHE_EX_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_QUERY_TKT_CACHE_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub LogonId: super::super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_QUERY_TKT_CACHE_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_QUERY_TKT_CACHE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_QUERY_TKT_CACHE_RESPONSE { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub CountOfTickets: u32, + pub Tickets: [KERB_TICKET_CACHE_INFO; 1], +} +impl ::core::marker::Copy for KERB_QUERY_TKT_CACHE_RESPONSE {} +impl ::core::clone::Clone for KERB_QUERY_TKT_CACHE_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_REFRESH_POLICY_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub Flags: u32, +} +impl ::core::marker::Copy for KERB_REFRESH_POLICY_REQUEST {} +impl ::core::clone::Clone for KERB_REFRESH_POLICY_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_REFRESH_POLICY_RESPONSE { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub Flags: u32, +} +impl ::core::marker::Copy for KERB_REFRESH_POLICY_RESPONSE {} +impl ::core::clone::Clone for KERB_REFRESH_POLICY_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_REFRESH_SCCRED_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub CredentialBlob: LSA_UNICODE_STRING, + pub LogonId: super::super::super::Foundation::LUID, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_REFRESH_SCCRED_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_REFRESH_SCCRED_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_RETRIEVE_KEY_TAB_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub Flags: u32, + pub UserName: LSA_UNICODE_STRING, + pub DomainName: LSA_UNICODE_STRING, + pub Password: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for KERB_RETRIEVE_KEY_TAB_REQUEST {} +impl ::core::clone::Clone for KERB_RETRIEVE_KEY_TAB_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_RETRIEVE_KEY_TAB_RESPONSE { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub KeyTabLength: u32, + pub KeyTab: *mut u8, +} +impl ::core::marker::Copy for KERB_RETRIEVE_KEY_TAB_RESPONSE {} +impl ::core::clone::Clone for KERB_RETRIEVE_KEY_TAB_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +pub struct KERB_RETRIEVE_TKT_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub LogonId: super::super::super::Foundation::LUID, + pub TargetName: LSA_UNICODE_STRING, + pub TicketFlags: u32, + pub CacheOptions: u32, + pub EncryptionType: KERB_CRYPTO_KEY_TYPE, + pub CredentialsHandle: super::super::Credentials::SecHandle, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +impl ::core::marker::Copy for KERB_RETRIEVE_TKT_REQUEST {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +impl ::core::clone::Clone for KERB_RETRIEVE_TKT_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_RETRIEVE_TKT_RESPONSE { + pub Ticket: KERB_EXTERNAL_TICKET, +} +impl ::core::marker::Copy for KERB_RETRIEVE_TKT_RESPONSE {} +impl ::core::clone::Clone for KERB_RETRIEVE_TKT_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_S4U2PROXY_CACHE_ENTRY_INFO { + pub ServerName: LSA_UNICODE_STRING, + pub Flags: u32, + pub LastStatus: super::super::super::Foundation::NTSTATUS, + pub Expiry: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_S4U2PROXY_CACHE_ENTRY_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_S4U2PROXY_CACHE_ENTRY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_S4U2PROXY_CRED { + pub UserName: LSA_UNICODE_STRING, + pub DomainName: LSA_UNICODE_STRING, + pub Flags: u32, + pub LastStatus: super::super::super::Foundation::NTSTATUS, + pub Expiry: i64, + pub CountOfEntries: u32, + pub Entries: *mut KERB_S4U2PROXY_CACHE_ENTRY_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_S4U2PROXY_CRED {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_S4U2PROXY_CRED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_S4U_LOGON { + pub MessageType: KERB_LOGON_SUBMIT_TYPE, + pub Flags: u32, + pub ClientUpn: LSA_UNICODE_STRING, + pub ClientRealm: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for KERB_S4U_LOGON {} +impl ::core::clone::Clone for KERB_S4U_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +pub struct KERB_SETPASSWORD_EX_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub LogonId: super::super::super::Foundation::LUID, + pub CredentialsHandle: super::super::Credentials::SecHandle, + pub Flags: u32, + pub AccountRealm: LSA_UNICODE_STRING, + pub AccountName: LSA_UNICODE_STRING, + pub Password: LSA_UNICODE_STRING, + pub ClientRealm: LSA_UNICODE_STRING, + pub ClientName: LSA_UNICODE_STRING, + pub Impersonating: super::super::super::Foundation::BOOLEAN, + pub KdcAddress: LSA_UNICODE_STRING, + pub KdcAddressType: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +impl ::core::marker::Copy for KERB_SETPASSWORD_EX_REQUEST {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +impl ::core::clone::Clone for KERB_SETPASSWORD_EX_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +pub struct KERB_SETPASSWORD_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub LogonId: super::super::super::Foundation::LUID, + pub CredentialsHandle: super::super::Credentials::SecHandle, + pub Flags: u32, + pub DomainName: LSA_UNICODE_STRING, + pub AccountName: LSA_UNICODE_STRING, + pub Password: LSA_UNICODE_STRING, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +impl ::core::marker::Copy for KERB_SETPASSWORD_REQUEST {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +impl ::core::clone::Clone for KERB_SETPASSWORD_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_SMART_CARD_LOGON { + pub MessageType: KERB_LOGON_SUBMIT_TYPE, + pub Pin: LSA_UNICODE_STRING, + pub CspDataLength: u32, + pub CspData: *mut u8, +} +impl ::core::marker::Copy for KERB_SMART_CARD_LOGON {} +impl ::core::clone::Clone for KERB_SMART_CARD_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_SMART_CARD_PROFILE { + pub Profile: KERB_INTERACTIVE_PROFILE, + pub CertificateSize: u32, + pub CertificateData: *mut u8, +} +impl ::core::marker::Copy for KERB_SMART_CARD_PROFILE {} +impl ::core::clone::Clone for KERB_SMART_CARD_PROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_SMART_CARD_UNLOCK_LOGON { + pub Logon: KERB_SMART_CARD_LOGON, + pub LogonId: super::super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_SMART_CARD_UNLOCK_LOGON {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_SMART_CARD_UNLOCK_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_SUBMIT_TKT_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub LogonId: super::super::super::Foundation::LUID, + pub Flags: u32, + pub Key: KERB_CRYPTO_KEY32, + pub KerbCredSize: u32, + pub KerbCredOffset: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_SUBMIT_TKT_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_SUBMIT_TKT_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_TICKET_CACHE_INFO { + pub ServerName: LSA_UNICODE_STRING, + pub RealmName: LSA_UNICODE_STRING, + pub StartTime: i64, + pub EndTime: i64, + pub RenewTime: i64, + pub EncryptionType: i32, + pub TicketFlags: KERB_TICKET_FLAGS, +} +impl ::core::marker::Copy for KERB_TICKET_CACHE_INFO {} +impl ::core::clone::Clone for KERB_TICKET_CACHE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_TICKET_CACHE_INFO_EX { + pub ClientName: LSA_UNICODE_STRING, + pub ClientRealm: LSA_UNICODE_STRING, + pub ServerName: LSA_UNICODE_STRING, + pub ServerRealm: LSA_UNICODE_STRING, + pub StartTime: i64, + pub EndTime: i64, + pub RenewTime: i64, + pub EncryptionType: i32, + pub TicketFlags: u32, +} +impl ::core::marker::Copy for KERB_TICKET_CACHE_INFO_EX {} +impl ::core::clone::Clone for KERB_TICKET_CACHE_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_TICKET_CACHE_INFO_EX2 { + pub ClientName: LSA_UNICODE_STRING, + pub ClientRealm: LSA_UNICODE_STRING, + pub ServerName: LSA_UNICODE_STRING, + pub ServerRealm: LSA_UNICODE_STRING, + pub StartTime: i64, + pub EndTime: i64, + pub RenewTime: i64, + pub EncryptionType: i32, + pub TicketFlags: u32, + pub SessionKeyType: u32, + pub BranchId: u32, +} +impl ::core::marker::Copy for KERB_TICKET_CACHE_INFO_EX2 {} +impl ::core::clone::Clone for KERB_TICKET_CACHE_INFO_EX2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_TICKET_CACHE_INFO_EX3 { + pub ClientName: LSA_UNICODE_STRING, + pub ClientRealm: LSA_UNICODE_STRING, + pub ServerName: LSA_UNICODE_STRING, + pub ServerRealm: LSA_UNICODE_STRING, + pub StartTime: i64, + pub EndTime: i64, + pub RenewTime: i64, + pub EncryptionType: i32, + pub TicketFlags: u32, + pub SessionKeyType: u32, + pub BranchId: u32, + pub CacheFlags: u32, + pub KdcCalled: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for KERB_TICKET_CACHE_INFO_EX3 {} +impl ::core::clone::Clone for KERB_TICKET_CACHE_INFO_EX3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_TICKET_LOGON { + pub MessageType: KERB_LOGON_SUBMIT_TYPE, + pub Flags: u32, + pub ServiceTicketLength: u32, + pub TicketGrantingTicketLength: u32, + pub ServiceTicket: *mut u8, + pub TicketGrantingTicket: *mut u8, +} +impl ::core::marker::Copy for KERB_TICKET_LOGON {} +impl ::core::clone::Clone for KERB_TICKET_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERB_TICKET_PROFILE { + pub Profile: KERB_INTERACTIVE_PROFILE, + pub SessionKey: KERB_CRYPTO_KEY, +} +impl ::core::marker::Copy for KERB_TICKET_PROFILE {} +impl ::core::clone::Clone for KERB_TICKET_PROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_TICKET_UNLOCK_LOGON { + pub Logon: KERB_TICKET_LOGON, + pub LogonId: super::super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_TICKET_UNLOCK_LOGON {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_TICKET_UNLOCK_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KERB_TRANSFER_CRED_REQUEST { + pub MessageType: KERB_PROTOCOL_MESSAGE_TYPE, + pub OriginLogonId: super::super::super::Foundation::LUID, + pub DestinationLogonId: super::super::super::Foundation::LUID, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KERB_TRANSFER_CRED_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KERB_TRANSFER_CRED_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct KSEC_LIST_ENTRY { + pub List: super::super::super::System::Kernel::LIST_ENTRY, + pub RefCount: i32, + pub Signature: u32, + pub OwningList: *mut ::core::ffi::c_void, + pub Reserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for KSEC_LIST_ENTRY {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for KSEC_LIST_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOGON_HOURS { + pub UnitsPerWeek: u16, + pub LogonHours: *mut u8, +} +impl ::core::marker::Copy for LOGON_HOURS {} +impl ::core::clone::Clone for LOGON_HOURS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LSA_AUTH_INFORMATION { + pub LastUpdateTime: i64, + pub AuthType: LSA_AUTH_INFORMATION_AUTH_TYPE, + pub AuthInfoLength: u32, + pub AuthInfo: *mut u8, +} +impl ::core::marker::Copy for LSA_AUTH_INFORMATION {} +impl ::core::clone::Clone for LSA_AUTH_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_DISPATCH_TABLE { + pub CreateLogonSession: PLSA_CREATE_LOGON_SESSION, + pub DeleteLogonSession: PLSA_DELETE_LOGON_SESSION, + pub AddCredential: PLSA_ADD_CREDENTIAL, + pub GetCredentials: PLSA_GET_CREDENTIALS, + pub DeleteCredential: PLSA_DELETE_CREDENTIAL, + pub AllocateLsaHeap: PLSA_ALLOCATE_LSA_HEAP, + pub FreeLsaHeap: PLSA_FREE_LSA_HEAP, + pub AllocateClientBuffer: PLSA_ALLOCATE_CLIENT_BUFFER, + pub FreeClientBuffer: PLSA_FREE_CLIENT_BUFFER, + pub CopyToClientBuffer: PLSA_COPY_TO_CLIENT_BUFFER, + pub CopyFromClientBuffer: PLSA_COPY_FROM_CLIENT_BUFFER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_DISPATCH_TABLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_DISPATCH_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_ENUMERATION_INFORMATION { + pub Sid: super::super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_ENUMERATION_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_ENUMERATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LSA_FOREST_TRUST_BINARY_DATA { + pub Length: u32, + pub Buffer: *mut u8, +} +impl ::core::marker::Copy for LSA_FOREST_TRUST_BINARY_DATA {} +impl ::core::clone::Clone for LSA_FOREST_TRUST_BINARY_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LSA_FOREST_TRUST_COLLISION_INFORMATION { + pub RecordCount: u32, + pub Entries: *mut *mut LSA_FOREST_TRUST_COLLISION_RECORD, +} +impl ::core::marker::Copy for LSA_FOREST_TRUST_COLLISION_INFORMATION {} +impl ::core::clone::Clone for LSA_FOREST_TRUST_COLLISION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LSA_FOREST_TRUST_COLLISION_RECORD { + pub Index: u32, + pub Type: LSA_FOREST_TRUST_COLLISION_RECORD_TYPE, + pub Flags: u32, + pub Name: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for LSA_FOREST_TRUST_COLLISION_RECORD {} +impl ::core::clone::Clone for LSA_FOREST_TRUST_COLLISION_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_FOREST_TRUST_DOMAIN_INFO { + pub Sid: super::super::super::Foundation::PSID, + pub DnsName: LSA_UNICODE_STRING, + pub NetbiosName: LSA_UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_FOREST_TRUST_DOMAIN_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_FOREST_TRUST_DOMAIN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_FOREST_TRUST_INFORMATION { + pub RecordCount: u32, + pub Entries: *mut *mut LSA_FOREST_TRUST_RECORD, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_FOREST_TRUST_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_FOREST_TRUST_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_FOREST_TRUST_INFORMATION2 { + pub RecordCount: u32, + pub Entries: *mut *mut LSA_FOREST_TRUST_RECORD2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_FOREST_TRUST_INFORMATION2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_FOREST_TRUST_INFORMATION2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_FOREST_TRUST_RECORD { + pub Flags: u32, + pub ForestTrustType: LSA_FOREST_TRUST_RECORD_TYPE, + pub Time: i64, + pub ForestTrustData: LSA_FOREST_TRUST_RECORD_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_FOREST_TRUST_RECORD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_FOREST_TRUST_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union LSA_FOREST_TRUST_RECORD_0 { + pub TopLevelName: LSA_UNICODE_STRING, + pub DomainInfo: LSA_FOREST_TRUST_DOMAIN_INFO, + pub Data: LSA_FOREST_TRUST_BINARY_DATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_FOREST_TRUST_RECORD_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_FOREST_TRUST_RECORD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_FOREST_TRUST_RECORD2 { + pub Flags: u32, + pub ForestTrustType: LSA_FOREST_TRUST_RECORD_TYPE, + pub Time: i64, + pub ForestTrustData: LSA_FOREST_TRUST_RECORD2_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_FOREST_TRUST_RECORD2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_FOREST_TRUST_RECORD2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union LSA_FOREST_TRUST_RECORD2_0 { + pub TopLevelName: LSA_UNICODE_STRING, + pub DomainInfo: LSA_FOREST_TRUST_DOMAIN_INFO, + pub BinaryData: LSA_FOREST_TRUST_BINARY_DATA, + pub ScannerInfo: LSA_FOREST_TRUST_SCANNER_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_FOREST_TRUST_RECORD2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_FOREST_TRUST_RECORD2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_FOREST_TRUST_SCANNER_INFO { + pub DomainSid: super::super::super::Foundation::PSID, + pub DnsName: LSA_UNICODE_STRING, + pub NetbiosName: LSA_UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_FOREST_TRUST_SCANNER_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_FOREST_TRUST_SCANNER_INFO { + fn clone(&self) -> Self { + *self + } +} +pub type LSA_HANDLE = isize; +#[repr(C)] +pub struct LSA_LAST_INTER_LOGON_INFO { + pub LastSuccessfulLogon: i64, + pub LastFailedLogon: i64, + pub FailedAttemptCountSinceLastSuccessfulLogon: u32, +} +impl ::core::marker::Copy for LSA_LAST_INTER_LOGON_INFO {} +impl ::core::clone::Clone for LSA_LAST_INTER_LOGON_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_OBJECT_ATTRIBUTES { + pub Length: u32, + pub RootDirectory: super::super::super::Foundation::HANDLE, + pub ObjectName: *mut LSA_UNICODE_STRING, + pub Attributes: u32, + pub SecurityDescriptor: *mut ::core::ffi::c_void, + pub SecurityQualityOfService: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_OBJECT_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_OBJECT_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_REFERENCED_DOMAIN_LIST { + pub Entries: u32, + pub Domains: *mut LSA_TRUST_INFORMATION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_REFERENCED_DOMAIN_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_REFERENCED_DOMAIN_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials", feature = "Win32_System_Threading"))] +pub struct LSA_SECPKG_FUNCTION_TABLE { + pub CreateLogonSession: PLSA_CREATE_LOGON_SESSION, + pub DeleteLogonSession: PLSA_DELETE_LOGON_SESSION, + pub AddCredential: PLSA_ADD_CREDENTIAL, + pub GetCredentials: PLSA_GET_CREDENTIALS, + pub DeleteCredential: PLSA_DELETE_CREDENTIAL, + pub AllocateLsaHeap: PLSA_ALLOCATE_LSA_HEAP, + pub FreeLsaHeap: PLSA_FREE_LSA_HEAP, + pub AllocateClientBuffer: PLSA_ALLOCATE_CLIENT_BUFFER, + pub FreeClientBuffer: PLSA_FREE_CLIENT_BUFFER, + pub CopyToClientBuffer: PLSA_COPY_TO_CLIENT_BUFFER, + pub CopyFromClientBuffer: PLSA_COPY_FROM_CLIENT_BUFFER, + pub ImpersonateClient: PLSA_IMPERSONATE_CLIENT, + pub UnloadPackage: PLSA_UNLOAD_PACKAGE, + pub DuplicateHandle: PLSA_DUPLICATE_HANDLE, + pub SaveSupplementalCredentials: PLSA_SAVE_SUPPLEMENTAL_CREDENTIALS, + pub CreateThread: PLSA_CREATE_THREAD, + pub GetClientInfo: PLSA_GET_CLIENT_INFO, + pub RegisterNotification: PLSA_REGISTER_NOTIFICATION, + pub CancelNotification: PLSA_CANCEL_NOTIFICATION, + pub MapBuffer: PLSA_MAP_BUFFER, + pub CreateToken: PLSA_CREATE_TOKEN, + pub AuditLogon: PLSA_AUDIT_LOGON, + pub CallPackage: PLSA_CALL_PACKAGE, + pub FreeReturnBuffer: PLSA_FREE_LSA_HEAP, + pub GetCallInfo: PLSA_GET_CALL_INFO, + pub CallPackageEx: PLSA_CALL_PACKAGEEX, + pub CreateSharedMemory: PLSA_CREATE_SHARED_MEMORY, + pub AllocateSharedMemory: PLSA_ALLOCATE_SHARED_MEMORY, + pub FreeSharedMemory: PLSA_FREE_SHARED_MEMORY, + pub DeleteSharedMemory: PLSA_DELETE_SHARED_MEMORY, + pub OpenSamUser: PLSA_OPEN_SAM_USER, + pub GetUserCredentials: PLSA_GET_USER_CREDENTIALS, + pub GetUserAuthData: PLSA_GET_USER_AUTH_DATA, + pub CloseSamUser: PLSA_CLOSE_SAM_USER, + pub ConvertAuthDataToToken: PLSA_CONVERT_AUTH_DATA_TO_TOKEN, + pub ClientCallback: PLSA_CLIENT_CALLBACK, + pub UpdateCredentials: PLSA_UPDATE_PRIMARY_CREDENTIALS, + pub GetAuthDataForUser: PLSA_GET_AUTH_DATA_FOR_USER, + pub CrackSingleName: PLSA_CRACK_SINGLE_NAME, + pub AuditAccountLogon: PLSA_AUDIT_ACCOUNT_LOGON, + pub CallPackagePassthrough: PLSA_CALL_PACKAGE_PASSTHROUGH, + pub CrediRead: CredReadFn, + pub CrediReadDomainCredentials: CredReadDomainCredentialsFn, + pub CrediFreeCredentials: CredFreeCredentialsFn, + pub LsaProtectMemory: PLSA_PROTECT_MEMORY, + pub LsaUnprotectMemory: PLSA_PROTECT_MEMORY, + pub OpenTokenByLogonId: PLSA_OPEN_TOKEN_BY_LOGON_ID, + pub ExpandAuthDataForDomain: PLSA_EXPAND_AUTH_DATA_FOR_DOMAIN, + pub AllocatePrivateHeap: PLSA_ALLOCATE_PRIVATE_HEAP, + pub FreePrivateHeap: PLSA_FREE_PRIVATE_HEAP, + pub CreateTokenEx: PLSA_CREATE_TOKEN_EX, + pub CrediWrite: CredWriteFn, + pub CrediUnmarshalandDecodeString: CrediUnmarshalandDecodeStringFn, + pub DummyFunction6: PLSA_PROTECT_MEMORY, + pub GetExtendedCallFlags: PLSA_GET_EXTENDED_CALL_FLAGS, + pub DuplicateTokenHandle: PLSA_DUPLICATE_HANDLE, + pub GetServiceAccountPassword: PLSA_GET_SERVICE_ACCOUNT_PASSWORD, + pub DummyFunction7: PLSA_PROTECT_MEMORY, + pub AuditLogonEx: PLSA_AUDIT_LOGON_EX, + pub CheckProtectedUserByToken: PLSA_CHECK_PROTECTED_USER_BY_TOKEN, + pub QueryClientRequest: PLSA_QUERY_CLIENT_REQUEST, + pub GetAppModeInfo: PLSA_GET_APP_MODE_INFO, + pub SetAppModeInfo: PLSA_SET_APP_MODE_INFO, + pub GetClientInfoEx: PLSA_GET_CLIENT_INFO_EX, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials", feature = "Win32_System_Threading"))] +impl ::core::marker::Copy for LSA_SECPKG_FUNCTION_TABLE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials", feature = "Win32_System_Threading"))] +impl ::core::clone::Clone for LSA_SECPKG_FUNCTION_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LSA_STRING { + pub Length: u16, + pub MaximumLength: u16, + pub Buffer: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for LSA_STRING {} +impl ::core::clone::Clone for LSA_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_TOKEN_INFORMATION_NULL { + pub ExpirationTime: i64, + pub Groups: *mut super::super::TOKEN_GROUPS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_TOKEN_INFORMATION_NULL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_TOKEN_INFORMATION_NULL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_TOKEN_INFORMATION_V1 { + pub ExpirationTime: i64, + pub User: super::super::TOKEN_USER, + pub Groups: *mut super::super::TOKEN_GROUPS, + pub PrimaryGroup: super::super::TOKEN_PRIMARY_GROUP, + pub Privileges: *mut super::super::TOKEN_PRIVILEGES, + pub Owner: super::super::TOKEN_OWNER, + pub DefaultDacl: super::super::TOKEN_DEFAULT_DACL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_TOKEN_INFORMATION_V1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_TOKEN_INFORMATION_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_TOKEN_INFORMATION_V3 { + pub ExpirationTime: i64, + pub User: super::super::TOKEN_USER, + pub Groups: *mut super::super::TOKEN_GROUPS, + pub PrimaryGroup: super::super::TOKEN_PRIMARY_GROUP, + pub Privileges: *mut super::super::TOKEN_PRIVILEGES, + pub Owner: super::super::TOKEN_OWNER, + pub DefaultDacl: super::super::TOKEN_DEFAULT_DACL, + pub UserClaims: super::super::TOKEN_USER_CLAIMS, + pub DeviceClaims: super::super::TOKEN_DEVICE_CLAIMS, + pub DeviceGroups: *mut super::super::TOKEN_GROUPS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_TOKEN_INFORMATION_V3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_TOKEN_INFORMATION_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LSA_TRANSLATED_NAME { + pub Use: super::super::SID_NAME_USE, + pub Name: LSA_UNICODE_STRING, + pub DomainIndex: i32, +} +impl ::core::marker::Copy for LSA_TRANSLATED_NAME {} +impl ::core::clone::Clone for LSA_TRANSLATED_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LSA_TRANSLATED_SID { + pub Use: super::super::SID_NAME_USE, + pub RelativeId: u32, + pub DomainIndex: i32, +} +impl ::core::marker::Copy for LSA_TRANSLATED_SID {} +impl ::core::clone::Clone for LSA_TRANSLATED_SID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_TRANSLATED_SID2 { + pub Use: super::super::SID_NAME_USE, + pub Sid: super::super::super::Foundation::PSID, + pub DomainIndex: i32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_TRANSLATED_SID2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_TRANSLATED_SID2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LSA_TRUST_INFORMATION { + pub Name: LSA_UNICODE_STRING, + pub Sid: super::super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LSA_TRUST_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LSA_TRUST_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LSA_UNICODE_STRING { + pub Length: u16, + pub MaximumLength: u16, + pub Buffer: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for LSA_UNICODE_STRING {} +impl ::core::clone::Clone for LSA_UNICODE_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_AV_PAIR { + pub AvId: u16, + pub AvLen: u16, +} +impl ::core::marker::Copy for MSV1_0_AV_PAIR {} +impl ::core::clone::Clone for MSV1_0_AV_PAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MSV1_0_CHANGEPASSWORD_REQUEST { + pub MessageType: MSV1_0_PROTOCOL_MESSAGE_TYPE, + pub DomainName: LSA_UNICODE_STRING, + pub AccountName: LSA_UNICODE_STRING, + pub OldPassword: LSA_UNICODE_STRING, + pub NewPassword: LSA_UNICODE_STRING, + pub Impersonating: super::super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MSV1_0_CHANGEPASSWORD_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MSV1_0_CHANGEPASSWORD_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MSV1_0_CHANGEPASSWORD_RESPONSE { + pub MessageType: MSV1_0_PROTOCOL_MESSAGE_TYPE, + pub PasswordInfoValid: super::super::super::Foundation::BOOLEAN, + pub DomainPasswordInfo: DOMAIN_PASSWORD_INFORMATION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MSV1_0_CHANGEPASSWORD_RESPONSE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MSV1_0_CHANGEPASSWORD_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_CREDENTIAL_KEY { + pub Data: [u8; 20], +} +impl ::core::marker::Copy for MSV1_0_CREDENTIAL_KEY {} +impl ::core::clone::Clone for MSV1_0_CREDENTIAL_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_INTERACTIVE_LOGON { + pub MessageType: MSV1_0_LOGON_SUBMIT_TYPE, + pub LogonDomainName: LSA_UNICODE_STRING, + pub UserName: LSA_UNICODE_STRING, + pub Password: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for MSV1_0_INTERACTIVE_LOGON {} +impl ::core::clone::Clone for MSV1_0_INTERACTIVE_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_INTERACTIVE_PROFILE { + pub MessageType: MSV1_0_PROFILE_BUFFER_TYPE, + pub LogonCount: u16, + pub BadPasswordCount: u16, + pub LogonTime: i64, + pub LogoffTime: i64, + pub KickOffTime: i64, + pub PasswordLastSet: i64, + pub PasswordCanChange: i64, + pub PasswordMustChange: i64, + pub LogonScript: LSA_UNICODE_STRING, + pub HomeDirectory: LSA_UNICODE_STRING, + pub FullName: LSA_UNICODE_STRING, + pub ProfilePath: LSA_UNICODE_STRING, + pub HomeDirectoryDrive: LSA_UNICODE_STRING, + pub LogonServer: LSA_UNICODE_STRING, + pub UserFlags: u32, +} +impl ::core::marker::Copy for MSV1_0_INTERACTIVE_PROFILE {} +impl ::core::clone::Clone for MSV1_0_INTERACTIVE_PROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_IUM_SUPPLEMENTAL_CREDENTIAL { + pub Version: u32, + pub EncryptedCredsSize: u32, + pub EncryptedCreds: [u8; 1], +} +impl ::core::marker::Copy for MSV1_0_IUM_SUPPLEMENTAL_CREDENTIAL {} +impl ::core::clone::Clone for MSV1_0_IUM_SUPPLEMENTAL_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_LM20_LOGON { + pub MessageType: MSV1_0_LOGON_SUBMIT_TYPE, + pub LogonDomainName: LSA_UNICODE_STRING, + pub UserName: LSA_UNICODE_STRING, + pub Workstation: LSA_UNICODE_STRING, + pub ChallengeToClient: [u8; 8], + pub CaseSensitiveChallengeResponse: LSA_STRING, + pub CaseInsensitiveChallengeResponse: LSA_STRING, + pub ParameterControl: u32, +} +impl ::core::marker::Copy for MSV1_0_LM20_LOGON {} +impl ::core::clone::Clone for MSV1_0_LM20_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_LM20_LOGON_PROFILE { + pub MessageType: MSV1_0_PROFILE_BUFFER_TYPE, + pub KickOffTime: i64, + pub LogoffTime: i64, + pub UserFlags: MSV_SUB_AUTHENTICATION_FILTER, + pub UserSessionKey: [u8; 16], + pub LogonDomainName: LSA_UNICODE_STRING, + pub LanmanSessionKey: [u8; 8], + pub LogonServer: LSA_UNICODE_STRING, + pub UserParameters: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for MSV1_0_LM20_LOGON_PROFILE {} +impl ::core::clone::Clone for MSV1_0_LM20_LOGON_PROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_NTLM3_RESPONSE { + pub Response: [u8; 16], + pub RespType: u8, + pub HiRespType: u8, + pub Flags: u16, + pub MsgWord: u32, + pub TimeStamp: u64, + pub ChallengeFromClient: [u8; 8], + pub AvPairsOff: u32, + pub Buffer: [u8; 1], +} +impl ::core::marker::Copy for MSV1_0_NTLM3_RESPONSE {} +impl ::core::clone::Clone for MSV1_0_NTLM3_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_PASSTHROUGH_REQUEST { + pub MessageType: MSV1_0_PROTOCOL_MESSAGE_TYPE, + pub DomainName: LSA_UNICODE_STRING, + pub PackageName: LSA_UNICODE_STRING, + pub DataLength: u32, + pub LogonData: *mut u8, + pub Pad: u32, +} +impl ::core::marker::Copy for MSV1_0_PASSTHROUGH_REQUEST {} +impl ::core::clone::Clone for MSV1_0_PASSTHROUGH_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_PASSTHROUGH_RESPONSE { + pub MessageType: MSV1_0_PROTOCOL_MESSAGE_TYPE, + pub Pad: u32, + pub DataLength: u32, + pub ValidationData: *mut u8, +} +impl ::core::marker::Copy for MSV1_0_PASSTHROUGH_RESPONSE {} +impl ::core::clone::Clone for MSV1_0_PASSTHROUGH_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MSV1_0_REMOTE_SUPPLEMENTAL_CREDENTIAL { + pub Version: u32, + pub Flags: u32, + pub CredentialKey: MSV1_0_CREDENTIAL_KEY, + pub CredentialKeyType: MSV1_0_CREDENTIAL_KEY_TYPE, + pub EncryptedCredsSize: u32, + pub EncryptedCreds: [u8; 1], +} +impl ::core::marker::Copy for MSV1_0_REMOTE_SUPPLEMENTAL_CREDENTIAL {} +impl ::core::clone::Clone for MSV1_0_REMOTE_SUPPLEMENTAL_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_S4U_LOGON { + pub MessageType: MSV1_0_LOGON_SUBMIT_TYPE, + pub Flags: u32, + pub UserPrincipalName: LSA_UNICODE_STRING, + pub DomainName: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for MSV1_0_S4U_LOGON {} +impl ::core::clone::Clone for MSV1_0_S4U_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_SUBAUTH_LOGON { + pub MessageType: MSV1_0_LOGON_SUBMIT_TYPE, + pub LogonDomainName: LSA_UNICODE_STRING, + pub UserName: LSA_UNICODE_STRING, + pub Workstation: LSA_UNICODE_STRING, + pub ChallengeToClient: [u8; 8], + pub AuthenticationInfo1: LSA_STRING, + pub AuthenticationInfo2: LSA_STRING, + pub ParameterControl: MSV_SUBAUTH_LOGON_PARAMETER_CONTROL, + pub SubAuthPackageId: u32, +} +impl ::core::marker::Copy for MSV1_0_SUBAUTH_LOGON {} +impl ::core::clone::Clone for MSV1_0_SUBAUTH_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_SUBAUTH_REQUEST { + pub MessageType: MSV1_0_PROTOCOL_MESSAGE_TYPE, + pub SubAuthPackageId: u32, + pub SubAuthInfoLength: u32, + pub SubAuthSubmitBuffer: *mut u8, +} +impl ::core::marker::Copy for MSV1_0_SUBAUTH_REQUEST {} +impl ::core::clone::Clone for MSV1_0_SUBAUTH_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_SUBAUTH_RESPONSE { + pub MessageType: MSV1_0_PROTOCOL_MESSAGE_TYPE, + pub SubAuthInfoLength: u32, + pub SubAuthReturnBuffer: *mut u8, +} +impl ::core::marker::Copy for MSV1_0_SUBAUTH_RESPONSE {} +impl ::core::clone::Clone for MSV1_0_SUBAUTH_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_SUPPLEMENTAL_CREDENTIAL { + pub Version: u32, + pub Flags: MSV_SUPPLEMENTAL_CREDENTIAL_FLAGS, + pub LmPassword: [u8; 16], + pub NtPassword: [u8; 16], +} +impl ::core::marker::Copy for MSV1_0_SUPPLEMENTAL_CREDENTIAL {} +impl ::core::clone::Clone for MSV1_0_SUPPLEMENTAL_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_SUPPLEMENTAL_CREDENTIAL_V2 { + pub Version: u32, + pub Flags: u32, + pub NtPassword: [u8; 16], + pub CredentialKey: MSV1_0_CREDENTIAL_KEY, +} +impl ::core::marker::Copy for MSV1_0_SUPPLEMENTAL_CREDENTIAL_V2 {} +impl ::core::clone::Clone for MSV1_0_SUPPLEMENTAL_CREDENTIAL_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSV1_0_SUPPLEMENTAL_CREDENTIAL_V3 { + pub Version: u32, + pub Flags: u32, + pub CredentialKeyType: MSV1_0_CREDENTIAL_KEY_TYPE, + pub NtPassword: [u8; 16], + pub CredentialKey: MSV1_0_CREDENTIAL_KEY, + pub ShaPassword: [u8; 20], +} +impl ::core::marker::Copy for MSV1_0_SUPPLEMENTAL_CREDENTIAL_V3 {} +impl ::core::clone::Clone for MSV1_0_SUPPLEMENTAL_CREDENTIAL_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_PasswordManagement\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_PasswordManagement"))] +pub struct MSV1_0_VALIDATION_INFO { + pub LogoffTime: i64, + pub KickoffTime: i64, + pub LogonServer: LSA_UNICODE_STRING, + pub LogonDomainName: LSA_UNICODE_STRING, + pub SessionKey: USER_SESSION_KEY, + pub Authoritative: super::super::super::Foundation::BOOLEAN, + pub UserFlags: u32, + pub WhichFields: u32, + pub UserId: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_PasswordManagement"))] +impl ::core::marker::Copy for MSV1_0_VALIDATION_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_PasswordManagement"))] +impl ::core::clone::Clone for MSV1_0_VALIDATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NEGOTIATE_CALLER_NAME_REQUEST { + pub MessageType: u32, + pub LogonId: super::super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NEGOTIATE_CALLER_NAME_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NEGOTIATE_CALLER_NAME_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NEGOTIATE_CALLER_NAME_RESPONSE { + pub MessageType: u32, + pub CallerName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for NEGOTIATE_CALLER_NAME_RESPONSE {} +impl ::core::clone::Clone for NEGOTIATE_CALLER_NAME_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NEGOTIATE_PACKAGE_PREFIX { + pub PackageId: usize, + pub PackageDataA: *mut ::core::ffi::c_void, + pub PackageDataW: *mut ::core::ffi::c_void, + pub PrefixLen: usize, + pub Prefix: [u8; 32], +} +impl ::core::marker::Copy for NEGOTIATE_PACKAGE_PREFIX {} +impl ::core::clone::Clone for NEGOTIATE_PACKAGE_PREFIX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NEGOTIATE_PACKAGE_PREFIXES { + pub MessageType: u32, + pub PrefixCount: u32, + pub Offset: u32, + pub Pad: u32, +} +impl ::core::marker::Copy for NEGOTIATE_PACKAGE_PREFIXES {} +impl ::core::clone::Clone for NEGOTIATE_PACKAGE_PREFIXES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETLOGON_GENERIC_INFO { + pub Identity: NETLOGON_LOGON_IDENTITY_INFO, + pub PackageName: LSA_UNICODE_STRING, + pub DataLength: u32, + pub LogonData: *mut u8, +} +impl ::core::marker::Copy for NETLOGON_GENERIC_INFO {} +impl ::core::clone::Clone for NETLOGON_GENERIC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_PasswordManagement\"`"] +#[cfg(feature = "Win32_System_PasswordManagement")] +pub struct NETLOGON_INTERACTIVE_INFO { + pub Identity: NETLOGON_LOGON_IDENTITY_INFO, + pub LmOwfPassword: super::super::super::System::PasswordManagement::LM_OWF_PASSWORD, + pub NtOwfPassword: super::super::super::System::PasswordManagement::LM_OWF_PASSWORD, +} +#[cfg(feature = "Win32_System_PasswordManagement")] +impl ::core::marker::Copy for NETLOGON_INTERACTIVE_INFO {} +#[cfg(feature = "Win32_System_PasswordManagement")] +impl ::core::clone::Clone for NETLOGON_INTERACTIVE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETLOGON_LOGON_IDENTITY_INFO { + pub LogonDomainName: LSA_UNICODE_STRING, + pub ParameterControl: u32, + pub LogonId: i64, + pub UserName: LSA_UNICODE_STRING, + pub Workstation: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for NETLOGON_LOGON_IDENTITY_INFO {} +impl ::core::clone::Clone for NETLOGON_LOGON_IDENTITY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETLOGON_NETWORK_INFO { + pub Identity: NETLOGON_LOGON_IDENTITY_INFO, + pub LmChallenge: CLEAR_BLOCK, + pub NtChallengeResponse: LSA_STRING, + pub LmChallengeResponse: LSA_STRING, +} +impl ::core::marker::Copy for NETLOGON_NETWORK_INFO {} +impl ::core::clone::Clone for NETLOGON_NETWORK_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_PasswordManagement\"`"] +#[cfg(feature = "Win32_System_PasswordManagement")] +pub struct NETLOGON_SERVICE_INFO { + pub Identity: NETLOGON_LOGON_IDENTITY_INFO, + pub LmOwfPassword: super::super::super::System::PasswordManagement::LM_OWF_PASSWORD, + pub NtOwfPassword: super::super::super::System::PasswordManagement::LM_OWF_PASSWORD, +} +#[cfg(feature = "Win32_System_PasswordManagement")] +impl ::core::marker::Copy for NETLOGON_SERVICE_INFO {} +#[cfg(feature = "Win32_System_PasswordManagement")] +impl ::core::clone::Clone for NETLOGON_SERVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PKU2U_CERTIFICATE_S4U_LOGON { + pub MessageType: PKU2U_LOGON_SUBMIT_TYPE, + pub Flags: u32, + pub UserPrincipalName: LSA_UNICODE_STRING, + pub DomainName: LSA_UNICODE_STRING, + pub CertificateLength: u32, + pub Certificate: *mut u8, +} +impl ::core::marker::Copy for PKU2U_CERTIFICATE_S4U_LOGON {} +impl ::core::clone::Clone for PKU2U_CERTIFICATE_S4U_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PKU2U_CERT_BLOB { + pub CertOffset: u32, + pub CertLength: u16, +} +impl ::core::marker::Copy for PKU2U_CERT_BLOB {} +impl ::core::clone::Clone for PKU2U_CERT_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PKU2U_CREDUI_CONTEXT { + pub Version: u64, + pub cbHeaderLength: u16, + pub cbStructureLength: u32, + pub CertArrayCount: u16, + pub CertArrayOffset: u32, +} +impl ::core::marker::Copy for PKU2U_CREDUI_CONTEXT {} +impl ::core::clone::Clone for PKU2U_CREDUI_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POLICY_ACCOUNT_DOMAIN_INFO { + pub DomainName: LSA_UNICODE_STRING, + pub DomainSid: super::super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POLICY_ACCOUNT_DOMAIN_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POLICY_ACCOUNT_DOMAIN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POLICY_AUDIT_CATEGORIES_INFO { + pub MaximumCategoryCount: u32, + pub SubCategoriesInfo: *mut POLICY_AUDIT_SUBCATEGORIES_INFO, +} +impl ::core::marker::Copy for POLICY_AUDIT_CATEGORIES_INFO {} +impl ::core::clone::Clone for POLICY_AUDIT_CATEGORIES_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POLICY_AUDIT_EVENTS_INFO { + pub AuditingMode: super::super::super::Foundation::BOOLEAN, + pub EventAuditingOptions: *mut u32, + pub MaximumAuditEventCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POLICY_AUDIT_EVENTS_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POLICY_AUDIT_EVENTS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POLICY_AUDIT_FULL_QUERY_INFO { + pub ShutDownOnFull: super::super::super::Foundation::BOOLEAN, + pub LogIsFull: super::super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POLICY_AUDIT_FULL_QUERY_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POLICY_AUDIT_FULL_QUERY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POLICY_AUDIT_FULL_SET_INFO { + pub ShutDownOnFull: super::super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POLICY_AUDIT_FULL_SET_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POLICY_AUDIT_FULL_SET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POLICY_AUDIT_LOG_INFO { + pub AuditLogPercentFull: u32, + pub MaximumLogSize: u32, + pub AuditRetentionPeriod: i64, + pub AuditLogFullShutdownInProgress: super::super::super::Foundation::BOOLEAN, + pub TimeToShutdown: i64, + pub NextAuditRecordId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POLICY_AUDIT_LOG_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POLICY_AUDIT_LOG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POLICY_AUDIT_SID_ARRAY { + pub UsersCount: u32, + pub UserSidArray: *mut super::super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POLICY_AUDIT_SID_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POLICY_AUDIT_SID_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POLICY_AUDIT_SUBCATEGORIES_INFO { + pub MaximumSubCategoryCount: u32, + pub EventAuditingOptions: *mut u32, +} +impl ::core::marker::Copy for POLICY_AUDIT_SUBCATEGORIES_INFO {} +impl ::core::clone::Clone for POLICY_AUDIT_SUBCATEGORIES_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POLICY_DEFAULT_QUOTA_INFO { + pub QuotaLimits: super::super::QUOTA_LIMITS, +} +impl ::core::marker::Copy for POLICY_DEFAULT_QUOTA_INFO {} +impl ::core::clone::Clone for POLICY_DEFAULT_QUOTA_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POLICY_DNS_DOMAIN_INFO { + pub Name: LSA_UNICODE_STRING, + pub DnsDomainName: LSA_UNICODE_STRING, + pub DnsForestName: LSA_UNICODE_STRING, + pub DomainGuid: ::windows_sys::core::GUID, + pub Sid: super::super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POLICY_DNS_DOMAIN_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POLICY_DNS_DOMAIN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POLICY_DOMAIN_EFS_INFO { + pub InfoLength: u32, + pub EfsBlob: *mut u8, +} +impl ::core::marker::Copy for POLICY_DOMAIN_EFS_INFO {} +impl ::core::clone::Clone for POLICY_DOMAIN_EFS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POLICY_DOMAIN_KERBEROS_TICKET_INFO { + pub AuthenticationOptions: u32, + pub MaxServiceTicketAge: i64, + pub MaxTicketAge: i64, + pub MaxRenewAge: i64, + pub MaxClockSkew: i64, + pub Reserved: i64, +} +impl ::core::marker::Copy for POLICY_DOMAIN_KERBEROS_TICKET_INFO {} +impl ::core::clone::Clone for POLICY_DOMAIN_KERBEROS_TICKET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POLICY_LSA_SERVER_ROLE_INFO { + pub LsaServerRole: POLICY_LSA_SERVER_ROLE, +} +impl ::core::marker::Copy for POLICY_LSA_SERVER_ROLE_INFO {} +impl ::core::clone::Clone for POLICY_LSA_SERVER_ROLE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POLICY_MACHINE_ACCT_INFO { + pub Rid: u32, + pub Sid: super::super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POLICY_MACHINE_ACCT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POLICY_MACHINE_ACCT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POLICY_MODIFICATION_INFO { + pub ModifiedId: i64, + pub DatabaseCreationTime: i64, +} +impl ::core::marker::Copy for POLICY_MODIFICATION_INFO {} +impl ::core::clone::Clone for POLICY_MODIFICATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POLICY_PD_ACCOUNT_INFO { + pub Name: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for POLICY_PD_ACCOUNT_INFO {} +impl ::core::clone::Clone for POLICY_PD_ACCOUNT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POLICY_PRIMARY_DOMAIN_INFO { + pub Name: LSA_UNICODE_STRING, + pub Sid: super::super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POLICY_PRIMARY_DOMAIN_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POLICY_PRIMARY_DOMAIN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POLICY_REPLICA_SOURCE_INFO { + pub ReplicaSource: LSA_UNICODE_STRING, + pub ReplicaAccountName: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for POLICY_REPLICA_SOURCE_INFO {} +impl ::core::clone::Clone for POLICY_REPLICA_SOURCE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PctPublicKey { + pub Type: u32, + pub cbKey: u32, + pub pKey: [u8; 1], +} +impl ::core::marker::Copy for PctPublicKey {} +impl ::core::clone::Clone for PctPublicKey { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SAM_REGISTER_MAPPING_ELEMENT { + pub Original: ::windows_sys::core::PSTR, + pub Mapped: ::windows_sys::core::PSTR, + pub Continuable: super::super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SAM_REGISTER_MAPPING_ELEMENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SAM_REGISTER_MAPPING_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SAM_REGISTER_MAPPING_LIST { + pub Count: u32, + pub Elements: *mut SAM_REGISTER_MAPPING_ELEMENT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SAM_REGISTER_MAPPING_LIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SAM_REGISTER_MAPPING_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SAM_REGISTER_MAPPING_TABLE { + pub Count: u32, + pub Lists: *mut SAM_REGISTER_MAPPING_LIST, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SAM_REGISTER_MAPPING_TABLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SAM_REGISTER_MAPPING_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCHANNEL_ALERT_TOKEN { + pub dwTokenType: u32, + pub dwAlertType: SCHANNEL_ALERT_TOKEN_ALERT_TYPE, + pub dwAlertNumber: u32, +} +impl ::core::marker::Copy for SCHANNEL_ALERT_TOKEN {} +impl ::core::clone::Clone for SCHANNEL_ALERT_TOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCHANNEL_CERT_HASH { + pub dwLength: u32, + pub dwFlags: u32, + pub hProv: usize, + pub ShaHash: [u8; 20], +} +impl ::core::marker::Copy for SCHANNEL_CERT_HASH {} +impl ::core::clone::Clone for SCHANNEL_CERT_HASH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCHANNEL_CERT_HASH_STORE { + pub dwLength: u32, + pub dwFlags: u32, + pub hProv: usize, + pub ShaHash: [u8; 20], + pub pwszStoreName: [u16; 128], +} +impl ::core::marker::Copy for SCHANNEL_CERT_HASH_STORE {} +impl ::core::clone::Clone for SCHANNEL_CERT_HASH_STORE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct SCHANNEL_CLIENT_SIGNATURE { + pub cbLength: u32, + pub aiHash: super::super::Cryptography::ALG_ID, + pub cbHash: u32, + pub HashValue: [u8; 36], + pub CertThumbprint: [u8; 20], +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SCHANNEL_CLIENT_SIGNATURE {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SCHANNEL_CLIENT_SIGNATURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct SCHANNEL_CRED { + pub dwVersion: u32, + pub cCreds: u32, + pub paCred: *mut *mut super::super::Cryptography::CERT_CONTEXT, + pub hRootStore: super::super::Cryptography::HCERTSTORE, + pub cMappers: u32, + pub aphMappers: *mut *mut _HMAPPER, + pub cSupportedAlgs: u32, + pub palgSupportedAlgs: *mut super::super::Cryptography::ALG_ID, + pub grbitEnabledProtocols: u32, + pub dwMinimumCipherStrength: u32, + pub dwMaximumCipherStrength: u32, + pub dwSessionLifespan: u32, + pub dwFlags: SCHANNEL_CRED_FLAGS, + pub dwCredFormat: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for SCHANNEL_CRED {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for SCHANNEL_CRED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCHANNEL_SESSION_TOKEN { + pub dwTokenType: u32, + pub dwFlags: SCHANNEL_SESSION_TOKEN_FLAGS, +} +impl ::core::marker::Copy for SCHANNEL_SESSION_TOKEN {} +impl ::core::clone::Clone for SCHANNEL_SESSION_TOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCH_CRED { + pub dwVersion: u32, + pub cCreds: u32, + pub paSecret: *mut *mut ::core::ffi::c_void, + pub paPublic: *mut *mut ::core::ffi::c_void, + pub cMappers: u32, + pub aphMappers: *mut *mut _HMAPPER, +} +impl ::core::marker::Copy for SCH_CRED {} +impl ::core::clone::Clone for SCH_CRED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct SCH_CREDENTIALS { + pub dwVersion: u32, + pub dwCredFormat: u32, + pub cCreds: u32, + pub paCred: *mut *mut super::super::Cryptography::CERT_CONTEXT, + pub hRootStore: super::super::Cryptography::HCERTSTORE, + pub cMappers: u32, + pub aphMappers: *mut *mut _HMAPPER, + pub dwSessionLifespan: u32, + pub dwFlags: u32, + pub cTlsParameters: u32, + pub pTlsParameters: *mut TLS_PARAMETERS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for SCH_CREDENTIALS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for SCH_CREDENTIALS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCH_CRED_PUBLIC_CERTCHAIN { + pub dwType: u32, + pub cbCertChain: u32, + pub pCertChain: *mut u8, +} +impl ::core::marker::Copy for SCH_CRED_PUBLIC_CERTCHAIN {} +impl ::core::clone::Clone for SCH_CRED_PUBLIC_CERTCHAIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCH_CRED_SECRET_CAPI { + pub dwType: u32, + pub hProv: usize, +} +impl ::core::marker::Copy for SCH_CRED_SECRET_CAPI {} +impl ::core::clone::Clone for SCH_CRED_SECRET_CAPI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCH_CRED_SECRET_PRIVKEY { + pub dwType: u32, + pub pPrivateKey: *mut u8, + pub cbPrivateKey: u32, + pub pszPassword: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for SCH_CRED_SECRET_PRIVKEY {} +impl ::core::clone::Clone for SCH_CRED_SECRET_PRIVKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCH_EXTENSION_DATA { + pub ExtensionType: u16, + pub pExtData: *const u8, + pub cbExtData: u32, +} +impl ::core::marker::Copy for SCH_EXTENSION_DATA {} +impl ::core::clone::Clone for SCH_EXTENSION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_APP_MODE_INFO { + pub UserFunction: u32, + pub Argument1: usize, + pub Argument2: usize, + pub UserData: SecBuffer, + pub ReturnToLsa: super::super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_APP_MODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_APP_MODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_BYTE_VECTOR { + pub ByteArrayOffset: u32, + pub ByteArrayLength: u16, +} +impl ::core::marker::Copy for SECPKG_BYTE_VECTOR {} +impl ::core::clone::Clone for SECPKG_BYTE_VECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_CALL_INFO { + pub ProcessId: u32, + pub ThreadId: u32, + pub Attributes: u32, + pub CallCount: u32, + pub MechOid: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SECPKG_CALL_INFO {} +impl ::core::clone::Clone for SECPKG_CALL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_CALL_PACKAGE_PIN_DC_REQUEST { + pub MessageType: u32, + pub Flags: u32, + pub DomainName: LSA_UNICODE_STRING, + pub DcName: LSA_UNICODE_STRING, + pub DcFlags: u32, +} +impl ::core::marker::Copy for SECPKG_CALL_PACKAGE_PIN_DC_REQUEST {} +impl ::core::clone::Clone for SECPKG_CALL_PACKAGE_PIN_DC_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_CALL_PACKAGE_TRANSFER_CRED_REQUEST { + pub MessageType: u32, + pub OriginLogonId: super::super::super::Foundation::LUID, + pub DestinationLogonId: super::super::super::Foundation::LUID, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_CALL_PACKAGE_TRANSFER_CRED_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_CALL_PACKAGE_TRANSFER_CRED_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_CALL_PACKAGE_UNPIN_ALL_DCS_REQUEST { + pub MessageType: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for SECPKG_CALL_PACKAGE_UNPIN_ALL_DCS_REQUEST {} +impl ::core::clone::Clone for SECPKG_CALL_PACKAGE_UNPIN_ALL_DCS_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_CLIENT_INFO { + pub LogonId: super::super::super::Foundation::LUID, + pub ProcessID: u32, + pub ThreadID: u32, + pub HasTcbPrivilege: super::super::super::Foundation::BOOLEAN, + pub Impersonating: super::super::super::Foundation::BOOLEAN, + pub Restricted: super::super::super::Foundation::BOOLEAN, + pub ClientFlags: u8, + pub ImpersonationLevel: super::super::SECURITY_IMPERSONATION_LEVEL, + pub ClientToken: super::super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_CLIENT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_CLIENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_CLIENT_INFO_EX { + pub LogonId: super::super::super::Foundation::LUID, + pub ProcessID: u32, + pub ThreadID: u32, + pub HasTcbPrivilege: super::super::super::Foundation::BOOLEAN, + pub Impersonating: super::super::super::Foundation::BOOLEAN, + pub Restricted: super::super::super::Foundation::BOOLEAN, + pub ClientFlags: u8, + pub ImpersonationLevel: super::super::SECURITY_IMPERSONATION_LEVEL, + pub ClientToken: super::super::super::Foundation::HANDLE, + pub IdentificationLogonId: super::super::super::Foundation::LUID, + pub IdentificationToken: super::super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_CLIENT_INFO_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_CLIENT_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_CONTEXT_THUNKS { + pub InfoLevelCount: u32, + pub Levels: [u32; 1], +} +impl ::core::marker::Copy for SECPKG_CONTEXT_THUNKS {} +impl ::core::clone::Clone for SECPKG_CONTEXT_THUNKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_CREDENTIAL { + pub Version: u64, + pub cbHeaderLength: u16, + pub cbStructureLength: u32, + pub ClientProcess: u32, + pub ClientThread: u32, + pub LogonId: super::super::super::Foundation::LUID, + pub ClientToken: super::super::super::Foundation::HANDLE, + pub SessionId: u32, + pub ModifiedId: super::super::super::Foundation::LUID, + pub fCredentials: u32, + pub Flags: u32, + pub PrincipalName: SECPKG_BYTE_VECTOR, + pub PackageList: SECPKG_BYTE_VECTOR, + pub MarshaledSuppliedCreds: SECPKG_BYTE_VECTOR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_CREDENTIAL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_DLL_FUNCTIONS { + pub AllocateHeap: PLSA_ALLOCATE_LSA_HEAP, + pub FreeHeap: PLSA_FREE_LSA_HEAP, + pub RegisterCallback: PLSA_REGISTER_CALLBACK, + pub LocatePackageById: PLSA_LOCATE_PKG_BY_ID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_DLL_FUNCTIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_DLL_FUNCTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_EVENT_NOTIFY { + pub EventClass: u32, + pub Reserved: u32, + pub EventDataSize: u32, + pub EventData: *mut ::core::ffi::c_void, + pub PackageParameter: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SECPKG_EVENT_NOTIFY {} +impl ::core::clone::Clone for SECPKG_EVENT_NOTIFY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_EVENT_PACKAGE_CHANGE { + pub ChangeType: SECPKG_PACKAGE_CHANGE_TYPE, + pub PackageId: usize, + pub PackageName: SECURITY_STRING, +} +impl ::core::marker::Copy for SECPKG_EVENT_PACKAGE_CHANGE {} +impl ::core::clone::Clone for SECPKG_EVENT_PACKAGE_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_EVENT_ROLE_CHANGE { + pub PreviousRole: u32, + pub NewRole: u32, +} +impl ::core::marker::Copy for SECPKG_EVENT_ROLE_CHANGE {} +impl ::core::clone::Clone for SECPKG_EVENT_ROLE_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_EXTENDED_INFORMATION { + pub Class: SECPKG_EXTENDED_INFORMATION_CLASS, + pub Info: SECPKG_EXTENDED_INFORMATION_0, +} +impl ::core::marker::Copy for SECPKG_EXTENDED_INFORMATION {} +impl ::core::clone::Clone for SECPKG_EXTENDED_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SECPKG_EXTENDED_INFORMATION_0 { + pub GssInfo: SECPKG_GSS_INFO, + pub ContextThunks: SECPKG_CONTEXT_THUNKS, + pub MutualAuthLevel: SECPKG_MUTUAL_AUTH_LEVEL, + pub WowClientDll: SECPKG_WOW_CLIENT_DLL, + pub ExtraOids: SECPKG_EXTRA_OIDS, + pub Nego2Info: SECPKG_NEGO2_INFO, +} +impl ::core::marker::Copy for SECPKG_EXTENDED_INFORMATION_0 {} +impl ::core::clone::Clone for SECPKG_EXTENDED_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_EXTRA_OIDS { + pub OidCount: u32, + pub Oids: [SECPKG_SERIALIZED_OID; 1], +} +impl ::core::marker::Copy for SECPKG_EXTRA_OIDS {} +impl ::core::clone::Clone for SECPKG_EXTRA_OIDS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials", feature = "Win32_System_Threading"))] +pub struct SECPKG_FUNCTION_TABLE { + pub InitializePackage: PLSA_AP_INITIALIZE_PACKAGE, + pub LogonUserA: PLSA_AP_LOGON_USER, + pub CallPackage: PLSA_AP_CALL_PACKAGE, + pub LogonTerminated: PLSA_AP_LOGON_TERMINATED, + pub CallPackageUntrusted: PLSA_AP_CALL_PACKAGE, + pub CallPackagePassthrough: PLSA_AP_CALL_PACKAGE_PASSTHROUGH, + pub LogonUserExA: PLSA_AP_LOGON_USER_EX, + pub LogonUserEx2: PLSA_AP_LOGON_USER_EX2, + pub Initialize: SpInitializeFn, + pub Shutdown: SpShutdownFn, + pub GetInfo: SpGetInfoFn, + pub AcceptCredentials: SpAcceptCredentialsFn, + pub AcquireCredentialsHandleA: SpAcquireCredentialsHandleFn, + pub QueryCredentialsAttributesA: SpQueryCredentialsAttributesFn, + pub FreeCredentialsHandle: SpFreeCredentialsHandleFn, + pub SaveCredentials: SpSaveCredentialsFn, + pub GetCredentials: SpGetCredentialsFn, + pub DeleteCredentials: SpDeleteCredentialsFn, + pub InitLsaModeContext: SpInitLsaModeContextFn, + pub AcceptLsaModeContext: SpAcceptLsaModeContextFn, + pub DeleteContext: SpDeleteContextFn, + pub ApplyControlToken: SpApplyControlTokenFn, + pub GetUserInfo: SpGetUserInfoFn, + pub GetExtendedInformation: SpGetExtendedInformationFn, + pub QueryContextAttributesA: SpQueryContextAttributesFn, + pub AddCredentialsA: SpAddCredentialsFn, + pub SetExtendedInformation: SpSetExtendedInformationFn, + pub SetContextAttributesA: SpSetContextAttributesFn, + pub SetCredentialsAttributesA: SpSetCredentialsAttributesFn, + pub ChangeAccountPasswordA: SpChangeAccountPasswordFn, + pub QueryMetaData: SpQueryMetaDataFn, + pub ExchangeMetaData: SpExchangeMetaDataFn, + pub GetCredUIContext: SpGetCredUIContextFn, + pub UpdateCredentials: SpUpdateCredentialsFn, + pub ValidateTargetInfo: SpValidateTargetInfoFn, + pub PostLogonUser: LSA_AP_POST_LOGON_USER, + pub GetRemoteCredGuardLogonBuffer: SpGetRemoteCredGuardLogonBufferFn, + pub GetRemoteCredGuardSupplementalCreds: SpGetRemoteCredGuardSupplementalCredsFn, + pub GetTbalSupplementalCreds: SpGetTbalSupplementalCredsFn, + pub LogonUserEx3: PLSA_AP_LOGON_USER_EX3, + pub PreLogonUserSurrogate: PLSA_AP_PRE_LOGON_USER_SURROGATE, + pub PostLogonUserSurrogate: PLSA_AP_POST_LOGON_USER_SURROGATE, + pub ExtractTargetInfo: SpExtractTargetInfoFn, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials", feature = "Win32_System_Threading"))] +impl ::core::marker::Copy for SECPKG_FUNCTION_TABLE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials", feature = "Win32_System_Threading"))] +impl ::core::clone::Clone for SECPKG_FUNCTION_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_GSS_INFO { + pub EncodedIdLength: u32, + pub EncodedId: [u8; 4], +} +impl ::core::marker::Copy for SECPKG_GSS_INFO {} +impl ::core::clone::Clone for SECPKG_GSS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct SECPKG_KERNEL_FUNCTIONS { + pub AllocateHeap: PLSA_ALLOCATE_LSA_HEAP, + pub FreeHeap: PLSA_FREE_LSA_HEAP, + pub CreateContextList: PKSEC_CREATE_CONTEXT_LIST, + pub InsertListEntry: PKSEC_INSERT_LIST_ENTRY, + pub ReferenceListEntry: PKSEC_REFERENCE_LIST_ENTRY, + pub DereferenceListEntry: PKSEC_DEREFERENCE_LIST_ENTRY, + pub SerializeWinntAuthData: PKSEC_SERIALIZE_WINNT_AUTH_DATA, + pub SerializeSchannelAuthData: PKSEC_SERIALIZE_SCHANNEL_AUTH_DATA, + pub LocatePackageById: PKSEC_LOCATE_PKG_BY_ID, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for SECPKG_KERNEL_FUNCTIONS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for SECPKG_KERNEL_FUNCTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct SECPKG_KERNEL_FUNCTION_TABLE { + pub Initialize: KspInitPackageFn, + pub DeleteContext: KspDeleteContextFn, + pub InitContext: KspInitContextFn, + pub MapHandle: KspMapHandleFn, + pub Sign: KspMakeSignatureFn, + pub Verify: KspVerifySignatureFn, + pub Seal: KspSealMessageFn, + pub Unseal: KspUnsealMessageFn, + pub GetToken: KspGetTokenFn, + pub QueryAttributes: KspQueryAttributesFn, + pub CompleteToken: KspCompleteTokenFn, + pub ExportContext: SpExportSecurityContextFn, + pub ImportContext: SpImportSecurityContextFn, + pub SetPackagePagingMode: KspSetPagingModeFn, + pub SerializeAuthData: KspSerializeAuthDataFn, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for SECPKG_KERNEL_FUNCTION_TABLE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for SECPKG_KERNEL_FUNCTION_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_MUTUAL_AUTH_LEVEL { + pub MutualAuthLevel: u32, +} +impl ::core::marker::Copy for SECPKG_MUTUAL_AUTH_LEVEL {} +impl ::core::clone::Clone for SECPKG_MUTUAL_AUTH_LEVEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_NEGO2_INFO { + pub AuthScheme: [u8; 16], + pub PackageFlags: u32, +} +impl ::core::marker::Copy for SECPKG_NEGO2_INFO {} +impl ::core::clone::Clone for SECPKG_NEGO2_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_NTLM_TARGETINFO { + pub Flags: u32, + pub MsvAvNbComputerName: ::windows_sys::core::PWSTR, + pub MsvAvNbDomainName: ::windows_sys::core::PWSTR, + pub MsvAvDnsComputerName: ::windows_sys::core::PWSTR, + pub MsvAvDnsDomainName: ::windows_sys::core::PWSTR, + pub MsvAvDnsTreeName: ::windows_sys::core::PWSTR, + pub MsvAvFlags: u32, + pub MsvAvTimestamp: super::super::super::Foundation::FILETIME, + pub MsvAvTargetName: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_NTLM_TARGETINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_NTLM_TARGETINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_PARAMETERS { + pub Version: u32, + pub MachineState: u32, + pub SetupMode: u32, + pub DomainSid: super::super::super::Foundation::PSID, + pub DomainName: LSA_UNICODE_STRING, + pub DnsDomainName: LSA_UNICODE_STRING, + pub DomainGuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_POST_LOGON_USER_INFO { + pub Flags: u32, + pub LogonId: super::super::super::Foundation::LUID, + pub LinkedLogonId: super::super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_POST_LOGON_USER_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_POST_LOGON_USER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_PRIMARY_CRED { + pub LogonId: super::super::super::Foundation::LUID, + pub DownlevelName: LSA_UNICODE_STRING, + pub DomainName: LSA_UNICODE_STRING, + pub Password: LSA_UNICODE_STRING, + pub OldPassword: LSA_UNICODE_STRING, + pub UserSid: super::super::super::Foundation::PSID, + pub Flags: u32, + pub DnsDomainName: LSA_UNICODE_STRING, + pub Upn: LSA_UNICODE_STRING, + pub LogonServer: LSA_UNICODE_STRING, + pub Spare1: LSA_UNICODE_STRING, + pub Spare2: LSA_UNICODE_STRING, + pub Spare3: LSA_UNICODE_STRING, + pub Spare4: LSA_UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_PRIMARY_CRED {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_PRIMARY_CRED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_PRIMARY_CRED_EX { + pub LogonId: super::super::super::Foundation::LUID, + pub DownlevelName: LSA_UNICODE_STRING, + pub DomainName: LSA_UNICODE_STRING, + pub Password: LSA_UNICODE_STRING, + pub OldPassword: LSA_UNICODE_STRING, + pub UserSid: super::super::super::Foundation::PSID, + pub Flags: u32, + pub DnsDomainName: LSA_UNICODE_STRING, + pub Upn: LSA_UNICODE_STRING, + pub LogonServer: LSA_UNICODE_STRING, + pub Spare1: LSA_UNICODE_STRING, + pub Spare2: LSA_UNICODE_STRING, + pub Spare3: LSA_UNICODE_STRING, + pub Spare4: LSA_UNICODE_STRING, + pub PackageId: usize, + pub PrevLogonId: super::super::super::Foundation::LUID, + pub FlagsEx: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_PRIMARY_CRED_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_PRIMARY_CRED_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_REDIRECTED_LOGON_BUFFER { + pub RedirectedLogonGuid: ::windows_sys::core::GUID, + pub RedirectedLogonHandle: super::super::super::Foundation::HANDLE, + pub Init: PLSA_REDIRECTED_LOGON_INIT, + pub Callback: PLSA_REDIRECTED_LOGON_CALLBACK, + pub CleanupCallback: PLSA_REDIRECTED_LOGON_CLEANUP_CALLBACK, + pub GetLogonCreds: PLSA_REDIRECTED_LOGON_GET_LOGON_CREDS, + pub GetSupplementalCreds: PLSA_REDIRECTED_LOGON_GET_SUPP_CREDS, + pub GetRedirectedLogonSid: PLSA_REDIRECTED_LOGON_GET_SID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_REDIRECTED_LOGON_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_REDIRECTED_LOGON_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_SERIALIZED_OID { + pub OidLength: u32, + pub OidAttributes: u32, + pub OidValue: [u8; 32], +} +impl ::core::marker::Copy for SECPKG_SERIALIZED_OID {} +impl ::core::clone::Clone for SECPKG_SERIALIZED_OID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_SHORT_VECTOR { + pub ShortArrayOffset: u32, + pub ShortArrayCount: u16, +} +impl ::core::marker::Copy for SECPKG_SHORT_VECTOR {} +impl ::core::clone::Clone for SECPKG_SHORT_VECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_SUPPLEMENTAL_CRED { + pub PackageName: LSA_UNICODE_STRING, + pub CredentialSize: u32, + pub Credentials: *mut u8, +} +impl ::core::marker::Copy for SECPKG_SUPPLEMENTAL_CRED {} +impl ::core::clone::Clone for SECPKG_SUPPLEMENTAL_CRED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_SUPPLEMENTAL_CRED_ARRAY { + pub CredentialCount: u32, + pub Credentials: [SECPKG_SUPPLEMENTAL_CRED; 1], +} +impl ::core::marker::Copy for SECPKG_SUPPLEMENTAL_CRED_ARRAY {} +impl ::core::clone::Clone for SECPKG_SUPPLEMENTAL_CRED_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_SUPPLIED_CREDENTIAL { + pub cbHeaderLength: u16, + pub cbStructureLength: u16, + pub UserName: SECPKG_SHORT_VECTOR, + pub DomainName: SECPKG_SHORT_VECTOR, + pub PackedCredentials: SECPKG_BYTE_VECTOR, + pub CredFlags: u32, +} +impl ::core::marker::Copy for SECPKG_SUPPLIED_CREDENTIAL {} +impl ::core::clone::Clone for SECPKG_SUPPLIED_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_SURROGATE_LOGON { + pub Version: u32, + pub SurrogateLogonID: super::super::super::Foundation::LUID, + pub EntryCount: u32, + pub Entries: *mut SECPKG_SURROGATE_LOGON_ENTRY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_SURROGATE_LOGON {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_SURROGATE_LOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_SURROGATE_LOGON_ENTRY { + pub Type: ::windows_sys::core::GUID, + pub Data: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SECPKG_SURROGATE_LOGON_ENTRY {} +impl ::core::clone::Clone for SECPKG_SURROGATE_LOGON_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_TARGETINFO { + pub DomainSid: super::super::super::Foundation::PSID, + pub ComputerName: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_TARGETINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_TARGETINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECPKG_USER_FUNCTION_TABLE { + pub InstanceInit: SpInstanceInitFn, + pub InitUserModeContext: SpInitUserModeContextFn, + pub MakeSignature: SpMakeSignatureFn, + pub VerifySignature: SpVerifySignatureFn, + pub SealMessage: SpSealMessageFn, + pub UnsealMessage: SpUnsealMessageFn, + pub GetContextToken: SpGetContextTokenFn, + pub QueryContextAttributesA: SpQueryContextAttributesFn, + pub CompleteAuthToken: SpCompleteAuthTokenFn, + pub DeleteUserModeContext: SpDeleteContextFn, + pub FormatCredentials: SpFormatCredentialsFn, + pub MarshallSupplementalCreds: SpMarshallSupplementalCredsFn, + pub ExportContext: SpExportSecurityContextFn, + pub ImportContext: SpImportSecurityContextFn, + pub MarshalAttributeData: SpMarshalAttributeDataFn, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECPKG_USER_FUNCTION_TABLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECPKG_USER_FUNCTION_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECPKG_WOW_CLIENT_DLL { + pub WowClientDllPath: SECURITY_STRING, +} +impl ::core::marker::Copy for SECPKG_WOW_CLIENT_DLL {} +impl ::core::clone::Clone for SECPKG_WOW_CLIENT_DLL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECURITY_LOGON_SESSION_DATA { + pub Size: u32, + pub LogonId: super::super::super::Foundation::LUID, + pub UserName: LSA_UNICODE_STRING, + pub LogonDomain: LSA_UNICODE_STRING, + pub AuthenticationPackage: LSA_UNICODE_STRING, + pub LogonType: u32, + pub Session: u32, + pub Sid: super::super::super::Foundation::PSID, + pub LogonTime: i64, + pub LogonServer: LSA_UNICODE_STRING, + pub DnsDomainName: LSA_UNICODE_STRING, + pub Upn: LSA_UNICODE_STRING, + pub UserFlags: u32, + pub LastLogonInfo: LSA_LAST_INTER_LOGON_INFO, + pub LogonScript: LSA_UNICODE_STRING, + pub ProfilePath: LSA_UNICODE_STRING, + pub HomeDirectory: LSA_UNICODE_STRING, + pub HomeDirectoryDrive: LSA_UNICODE_STRING, + pub LogoffTime: i64, + pub KickOffTime: i64, + pub PasswordLastSet: i64, + pub PasswordCanChange: i64, + pub PasswordMustChange: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECURITY_LOGON_SESSION_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECURITY_LOGON_SESSION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECURITY_PACKAGE_OPTIONS { + pub Size: u32, + pub Type: SECURITY_PACKAGE_OPTIONS_TYPE, + pub Flags: u32, + pub SignatureSize: u32, + pub Signature: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SECURITY_PACKAGE_OPTIONS {} +impl ::core::clone::Clone for SECURITY_PACKAGE_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECURITY_STRING { + pub Length: u16, + pub MaximumLength: u16, + pub Buffer: *mut u16, +} +impl ::core::marker::Copy for SECURITY_STRING {} +impl ::core::clone::Clone for SECURITY_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECURITY_USER_DATA { + pub UserName: SECURITY_STRING, + pub LogonDomainName: SECURITY_STRING, + pub LogonServer: SECURITY_STRING, + pub pSid: super::super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECURITY_USER_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECURITY_USER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_APPLICATION_PROTOCOLS { + pub ProtocolListsSize: u32, + pub ProtocolLists: [SEC_APPLICATION_PROTOCOL_LIST; 1], +} +impl ::core::marker::Copy for SEC_APPLICATION_PROTOCOLS {} +impl ::core::clone::Clone for SEC_APPLICATION_PROTOCOLS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_APPLICATION_PROTOCOL_LIST { + pub ProtoNegoExt: SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT, + pub ProtocolListSize: u16, + pub ProtocolList: [u8; 1], +} +impl ::core::marker::Copy for SEC_APPLICATION_PROTOCOL_LIST {} +impl ::core::clone::Clone for SEC_APPLICATION_PROTOCOL_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_CERTIFICATE_REQUEST_CONTEXT { + pub cbCertificateRequestContext: u8, + pub rgCertificateRequestContext: [u8; 1], +} +impl ::core::marker::Copy for SEC_CERTIFICATE_REQUEST_CONTEXT {} +impl ::core::clone::Clone for SEC_CERTIFICATE_REQUEST_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_CHANNEL_BINDINGS { + pub dwInitiatorAddrType: u32, + pub cbInitiatorLength: u32, + pub dwInitiatorOffset: u32, + pub dwAcceptorAddrType: u32, + pub cbAcceptorLength: u32, + pub dwAcceptorOffset: u32, + pub cbApplicationDataLength: u32, + pub dwApplicationDataOffset: u32, +} +impl ::core::marker::Copy for SEC_CHANNEL_BINDINGS {} +impl ::core::clone::Clone for SEC_CHANNEL_BINDINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_DTLS_MTU { + pub PathMTU: u16, +} +impl ::core::marker::Copy for SEC_DTLS_MTU {} +impl ::core::clone::Clone for SEC_DTLS_MTU { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_FLAGS { + pub Flags: u64, +} +impl ::core::marker::Copy for SEC_FLAGS {} +impl ::core::clone::Clone for SEC_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_NEGOTIATION_INFO { + pub Size: u32, + pub NameLength: u32, + pub Name: *mut u16, + pub Reserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SEC_NEGOTIATION_INFO {} +impl ::core::clone::Clone for SEC_NEGOTIATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_PRESHAREDKEY { + pub KeySize: u16, + pub Key: [u8; 1], +} +impl ::core::marker::Copy for SEC_PRESHAREDKEY {} +impl ::core::clone::Clone for SEC_PRESHAREDKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_PRESHAREDKEY_IDENTITY { + pub KeyIdentitySize: u16, + pub KeyIdentity: [u8; 1], +} +impl ::core::marker::Copy for SEC_PRESHAREDKEY_IDENTITY {} +impl ::core::clone::Clone for SEC_PRESHAREDKEY_IDENTITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_SRTP_MASTER_KEY_IDENTIFIER { + pub MasterKeyIdentifierSize: u8, + pub MasterKeyIdentifier: [u8; 1], +} +impl ::core::marker::Copy for SEC_SRTP_MASTER_KEY_IDENTIFIER {} +impl ::core::clone::Clone for SEC_SRTP_MASTER_KEY_IDENTIFIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_SRTP_PROTECTION_PROFILES { + pub ProfilesSize: u16, + pub ProfilesList: [u16; 1], +} +impl ::core::marker::Copy for SEC_SRTP_PROTECTION_PROFILES {} +impl ::core::clone::Clone for SEC_SRTP_PROTECTION_PROFILES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_TOKEN_BINDING { + pub MajorVersion: u8, + pub MinorVersion: u8, + pub KeyParametersSize: u16, + pub KeyParameters: [u8; 1], +} +impl ::core::marker::Copy for SEC_TOKEN_BINDING {} +impl ::core::clone::Clone for SEC_TOKEN_BINDING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_TRAFFIC_SECRETS { + pub SymmetricAlgId: [u16; 64], + pub ChainingMode: [u16; 64], + pub HashAlgId: [u16; 64], + pub KeySize: u16, + pub IvSize: u16, + pub MsgSequenceStart: u16, + pub MsgSequenceEnd: u16, + pub TrafficSecretType: SEC_TRAFFIC_SECRET_TYPE, + pub TrafficSecretSize: u16, + pub TrafficSecret: [u8; 1], +} +impl ::core::marker::Copy for SEC_TRAFFIC_SECRETS {} +impl ::core::clone::Clone for SEC_TRAFFIC_SECRETS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_WINNT_AUTH_IDENTITY32 { + pub User: u32, + pub UserLength: u32, + pub Domain: u32, + pub DomainLength: u32, + pub Password: u32, + pub PasswordLength: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for SEC_WINNT_AUTH_IDENTITY32 {} +impl ::core::clone::Clone for SEC_WINNT_AUTH_IDENTITY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_WINNT_AUTH_IDENTITY_EX2 { + pub Version: u32, + pub cbHeaderLength: u16, + pub cbStructureLength: u32, + pub UserOffset: u32, + pub UserLength: u16, + pub DomainOffset: u32, + pub DomainLength: u16, + pub PackedCredentialsOffset: u32, + pub PackedCredentialsLength: u16, + pub Flags: u32, + pub PackageListOffset: u32, + pub PackageListLength: u16, +} +impl ::core::marker::Copy for SEC_WINNT_AUTH_IDENTITY_EX2 {} +impl ::core::clone::Clone for SEC_WINNT_AUTH_IDENTITY_EX2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_WINNT_AUTH_IDENTITY_EX32 { + pub Version: u32, + pub Length: u32, + pub User: u32, + pub UserLength: u32, + pub Domain: u32, + pub DomainLength: u32, + pub Password: u32, + pub PasswordLength: u32, + pub Flags: u32, + pub PackageList: u32, + pub PackageListLength: u32, +} +impl ::core::marker::Copy for SEC_WINNT_AUTH_IDENTITY_EX32 {} +impl ::core::clone::Clone for SEC_WINNT_AUTH_IDENTITY_EX32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_WINNT_AUTH_IDENTITY_EXA { + pub Version: u32, + pub Length: u32, + pub User: *mut u8, + pub UserLength: u32, + pub Domain: *mut u8, + pub DomainLength: u32, + pub Password: *mut u8, + pub PasswordLength: u32, + pub Flags: u32, + pub PackageList: *mut u8, + pub PackageListLength: u32, +} +impl ::core::marker::Copy for SEC_WINNT_AUTH_IDENTITY_EXA {} +impl ::core::clone::Clone for SEC_WINNT_AUTH_IDENTITY_EXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_WINNT_AUTH_IDENTITY_EXW { + pub Version: u32, + pub Length: u32, + pub User: *mut u16, + pub UserLength: u32, + pub Domain: *mut u16, + pub DomainLength: u32, + pub Password: *mut u16, + pub PasswordLength: u32, + pub Flags: u32, + pub PackageList: *mut u16, + pub PackageListLength: u32, +} +impl ::core::marker::Copy for SEC_WINNT_AUTH_IDENTITY_EXW {} +impl ::core::clone::Clone for SEC_WINNT_AUTH_IDENTITY_EXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Rpc\"`"] +#[cfg(feature = "Win32_System_Rpc")] +pub union SEC_WINNT_AUTH_IDENTITY_INFO { + pub AuthIdExw: SEC_WINNT_AUTH_IDENTITY_EXW, + pub AuthIdExa: SEC_WINNT_AUTH_IDENTITY_EXA, + pub AuthId_a: super::super::super::System::Rpc::SEC_WINNT_AUTH_IDENTITY_A, + pub AuthId_w: super::super::super::System::Rpc::SEC_WINNT_AUTH_IDENTITY_W, + pub AuthIdEx2: SEC_WINNT_AUTH_IDENTITY_EX2, +} +#[cfg(feature = "Win32_System_Rpc")] +impl ::core::marker::Copy for SEC_WINNT_AUTH_IDENTITY_INFO {} +#[cfg(feature = "Win32_System_Rpc")] +impl ::core::clone::Clone for SEC_WINNT_AUTH_IDENTITY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEND_GENERIC_TLS_EXTENSION { + pub ExtensionType: u16, + pub HandshakeType: u16, + pub Flags: u32, + pub BufferSize: u16, + pub Buffer: [u8; 1], +} +impl ::core::marker::Copy for SEND_GENERIC_TLS_EXTENSION {} +impl ::core::clone::Clone for SEND_GENERIC_TLS_EXTENSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SE_ADT_ACCESS_REASON { + pub AccessMask: u32, + pub AccessReasons: [u32; 32], + pub ObjectTypeIndex: u32, + pub AccessGranted: u32, + pub SecurityDescriptor: super::super::PSECURITY_DESCRIPTOR, +} +impl ::core::marker::Copy for SE_ADT_ACCESS_REASON {} +impl ::core::clone::Clone for SE_ADT_ACCESS_REASON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SE_ADT_CLAIMS { + pub Length: u32, + pub Claims: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SE_ADT_CLAIMS {} +impl ::core::clone::Clone for SE_ADT_CLAIMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SE_ADT_OBJECT_TYPE { + pub ObjectType: ::windows_sys::core::GUID, + pub Flags: u16, + pub Level: u16, + pub AccessMask: u32, +} +impl ::core::marker::Copy for SE_ADT_OBJECT_TYPE {} +impl ::core::clone::Clone for SE_ADT_OBJECT_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SE_ADT_PARAMETER_ARRAY { + pub CategoryId: u32, + pub AuditId: u32, + pub ParameterCount: u32, + pub Length: u32, + pub FlatSubCategoryId: u16, + pub Type: u16, + pub Flags: u32, + pub Parameters: [SE_ADT_PARAMETER_ARRAY_ENTRY; 32], +} +impl ::core::marker::Copy for SE_ADT_PARAMETER_ARRAY {} +impl ::core::clone::Clone for SE_ADT_PARAMETER_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SE_ADT_PARAMETER_ARRAY_ENTRY { + pub Type: SE_ADT_PARAMETER_TYPE, + pub Length: u32, + pub Data: [usize; 2], + pub Address: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SE_ADT_PARAMETER_ARRAY_ENTRY {} +impl ::core::clone::Clone for SE_ADT_PARAMETER_ARRAY_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SE_ADT_PARAMETER_ARRAY_EX { + pub CategoryId: u32, + pub AuditId: u32, + pub Version: u32, + pub ParameterCount: u32, + pub Length: u32, + pub FlatSubCategoryId: u16, + pub Type: u16, + pub Flags: u32, + pub Parameters: [SE_ADT_PARAMETER_ARRAY_ENTRY; 32], +} +impl ::core::marker::Copy for SE_ADT_PARAMETER_ARRAY_EX {} +impl ::core::clone::Clone for SE_ADT_PARAMETER_ARRAY_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SL_ACTIVATION_INFO_HEADER { + pub cbSize: u32, + pub r#type: SL_ACTIVATION_TYPE, +} +impl ::core::marker::Copy for SL_ACTIVATION_INFO_HEADER {} +impl ::core::clone::Clone for SL_ACTIVATION_INFO_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SL_AD_ACTIVATION_INFO { + pub header: SL_ACTIVATION_INFO_HEADER, + pub pwszProductKey: ::windows_sys::core::PCWSTR, + pub pwszActivationObjectName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for SL_AD_ACTIVATION_INFO {} +impl ::core::clone::Clone for SL_AD_ACTIVATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SL_LICENSING_STATUS { + pub SkuId: ::windows_sys::core::GUID, + pub eStatus: SLLICENSINGSTATUS, + pub dwGraceTime: u32, + pub dwTotalGraceDays: u32, + pub hrReason: ::windows_sys::core::HRESULT, + pub qwValidityExpiration: u64, +} +impl ::core::marker::Copy for SL_LICENSING_STATUS {} +impl ::core::clone::Clone for SL_LICENSING_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SL_NONGENUINE_UI_OPTIONS { + pub cbSize: u32, + pub pComponentId: *const ::windows_sys::core::GUID, + pub hResultUI: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for SL_NONGENUINE_UI_OPTIONS {} +impl ::core::clone::Clone for SL_NONGENUINE_UI_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SL_SYSTEM_POLICY_INFORMATION { + pub Reserved1: [*mut ::core::ffi::c_void; 2], + pub Reserved2: [u32; 3], +} +impl ::core::marker::Copy for SL_SYSTEM_POLICY_INFORMATION {} +impl ::core::clone::Clone for SL_SYSTEM_POLICY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SR_SECURITY_DESCRIPTOR { + pub Length: u32, + pub SecurityDescriptor: *mut u8, +} +impl ::core::marker::Copy for SR_SECURITY_DESCRIPTOR {} +impl ::core::clone::Clone for SR_SECURITY_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SSL_CREDENTIAL_CERTIFICATE { + pub cbPrivateKey: u32, + pub pPrivateKey: *mut u8, + pub cbCertificate: u32, + pub pCertificate: *mut u8, + pub pszPassword: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for SSL_CREDENTIAL_CERTIFICATE {} +impl ::core::clone::Clone for SSL_CREDENTIAL_CERTIFICATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SUBSCRIBE_GENERIC_TLS_EXTENSION { + pub Flags: u32, + pub SubscriptionsCount: u32, + pub Subscriptions: [TLS_EXTENSION_SUBSCRIPTION; 1], +} +impl ::core::marker::Copy for SUBSCRIBE_GENERIC_TLS_EXTENSION {} +impl ::core::clone::Clone for SUBSCRIBE_GENERIC_TLS_EXTENSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecBuffer { + pub cbBuffer: u32, + pub BufferType: u32, + pub pvBuffer: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SecBuffer {} +impl ::core::clone::Clone for SecBuffer { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecBufferDesc { + pub ulVersion: u32, + pub cBuffers: u32, + pub pBuffers: *mut SecBuffer, +} +impl ::core::marker::Copy for SecBufferDesc {} +impl ::core::clone::Clone for SecBufferDesc { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_AccessToken { + pub AccessToken: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SecPkgContext_AccessToken {} +impl ::core::clone::Clone for SecPkgContext_AccessToken { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_ApplicationProtocol { + pub ProtoNegoStatus: SEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS, + pub ProtoNegoExt: SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT, + pub ProtocolIdSize: u8, + pub ProtocolId: [u8; 255], +} +impl ::core::marker::Copy for SecPkgContext_ApplicationProtocol {} +impl ::core::clone::Clone for SecPkgContext_ApplicationProtocol { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_AuthorityA { + pub sAuthorityName: *mut i8, +} +impl ::core::marker::Copy for SecPkgContext_AuthorityA {} +impl ::core::clone::Clone for SecPkgContext_AuthorityA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_AuthorityW { + pub sAuthorityName: *mut u16, +} +impl ::core::marker::Copy for SecPkgContext_AuthorityW {} +impl ::core::clone::Clone for SecPkgContext_AuthorityW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_AuthzID { + pub AuthzIDLength: u32, + pub AuthzID: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for SecPkgContext_AuthzID {} +impl ::core::clone::Clone for SecPkgContext_AuthzID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_Bindings { + pub BindingsLength: u32, + pub Bindings: *mut SEC_CHANNEL_BINDINGS, +} +impl ::core::marker::Copy for SecPkgContext_Bindings {} +impl ::core::clone::Clone for SecPkgContext_Bindings { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_CertInfo { + pub dwVersion: u32, + pub cbSubjectName: u32, + pub pwszSubjectName: ::windows_sys::core::PWSTR, + pub cbIssuerName: u32, + pub pwszIssuerName: ::windows_sys::core::PWSTR, + pub dwKeySize: u32, +} +impl ::core::marker::Copy for SecPkgContext_CertInfo {} +impl ::core::clone::Clone for SecPkgContext_CertInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_CertificateValidationResult { + pub dwChainErrorStatus: u32, + pub hrVerifyChainStatus: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for SecPkgContext_CertificateValidationResult {} +impl ::core::clone::Clone for SecPkgContext_CertificateValidationResult { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_Certificates { + pub cCertificates: u32, + pub cbCertificateChain: u32, + pub pbCertificateChain: *mut u8, +} +impl ::core::marker::Copy for SecPkgContext_Certificates {} +impl ::core::clone::Clone for SecPkgContext_Certificates { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_CipherInfo { + pub dwVersion: u32, + pub dwProtocol: u32, + pub dwCipherSuite: u32, + pub dwBaseCipherSuite: u32, + pub szCipherSuite: [u16; 64], + pub szCipher: [u16; 64], + pub dwCipherLen: u32, + pub dwCipherBlockLen: u32, + pub szHash: [u16; 64], + pub dwHashLen: u32, + pub szExchange: [u16; 64], + pub dwMinExchangeLen: u32, + pub dwMaxExchangeLen: u32, + pub szCertificate: [u16; 64], + pub dwKeyType: u32, +} +impl ::core::marker::Copy for SecPkgContext_CipherInfo {} +impl ::core::clone::Clone for SecPkgContext_CipherInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_ClientCertPolicyResult { + pub dwPolicyResult: ::windows_sys::core::HRESULT, + pub guidPolicyId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for SecPkgContext_ClientCertPolicyResult {} +impl ::core::clone::Clone for SecPkgContext_ClientCertPolicyResult { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_ClientSpecifiedTarget { + pub sTargetName: *mut u16, +} +impl ::core::marker::Copy for SecPkgContext_ClientSpecifiedTarget {} +impl ::core::clone::Clone for SecPkgContext_ClientSpecifiedTarget { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct SecPkgContext_ConnectionInfo { + pub dwProtocol: u32, + pub aiCipher: super::super::Cryptography::ALG_ID, + pub dwCipherStrength: u32, + pub aiHash: super::super::Cryptography::ALG_ID, + pub dwHashStrength: u32, + pub aiExch: super::super::Cryptography::ALG_ID, + pub dwExchStrength: u32, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SecPkgContext_ConnectionInfo {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SecPkgContext_ConnectionInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_ConnectionInfoEx { + pub dwVersion: u32, + pub dwProtocol: u32, + pub szCipher: [u16; 64], + pub dwCipherStrength: u32, + pub szHash: [u16; 64], + pub dwHashStrength: u32, + pub szExchange: [u16; 64], + pub dwExchStrength: u32, +} +impl ::core::marker::Copy for SecPkgContext_ConnectionInfoEx {} +impl ::core::clone::Clone for SecPkgContext_ConnectionInfoEx { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_CredInfo { + pub CredClass: SECPKG_CRED_CLASS, + pub IsPromptingNeeded: u32, +} +impl ::core::marker::Copy for SecPkgContext_CredInfo {} +impl ::core::clone::Clone for SecPkgContext_CredInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_CredentialNameA { + pub CredentialType: u32, + pub sCredentialName: *mut i8, +} +impl ::core::marker::Copy for SecPkgContext_CredentialNameA {} +impl ::core::clone::Clone for SecPkgContext_CredentialNameA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_CredentialNameW { + pub CredentialType: u32, + pub sCredentialName: *mut u16, +} +impl ::core::marker::Copy for SecPkgContext_CredentialNameW {} +impl ::core::clone::Clone for SecPkgContext_CredentialNameW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_DceInfo { + pub AuthzSvc: u32, + pub pPac: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SecPkgContext_DceInfo {} +impl ::core::clone::Clone for SecPkgContext_DceInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_EapKeyBlock { + pub rgbKeys: [u8; 128], + pub rgbIVs: [u8; 64], +} +impl ::core::marker::Copy for SecPkgContext_EapKeyBlock {} +impl ::core::clone::Clone for SecPkgContext_EapKeyBlock { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_EapPrfInfo { + pub dwVersion: u32, + pub cbPrfData: u32, + pub pbPrfData: *mut u8, +} +impl ::core::marker::Copy for SecPkgContext_EapPrfInfo {} +impl ::core::clone::Clone for SecPkgContext_EapPrfInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_EarlyStart { + pub dwEarlyStartFlags: u32, +} +impl ::core::marker::Copy for SecPkgContext_EarlyStart {} +impl ::core::clone::Clone for SecPkgContext_EarlyStart { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_Flags { + pub Flags: u32, +} +impl ::core::marker::Copy for SecPkgContext_Flags {} +impl ::core::clone::Clone for SecPkgContext_Flags { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct SecPkgContext_IssuerListInfoEx { + pub aIssuers: *mut super::super::Cryptography::CRYPT_INTEGER_BLOB, + pub cIssuers: u32, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SecPkgContext_IssuerListInfoEx {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SecPkgContext_IssuerListInfoEx { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_KeyInfoA { + pub sSignatureAlgorithmName: *mut i8, + pub sEncryptAlgorithmName: *mut i8, + pub KeySize: u32, + pub SignatureAlgorithm: u32, + pub EncryptAlgorithm: u32, +} +impl ::core::marker::Copy for SecPkgContext_KeyInfoA {} +impl ::core::clone::Clone for SecPkgContext_KeyInfoA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_KeyInfoW { + pub sSignatureAlgorithmName: *mut u16, + pub sEncryptAlgorithmName: *mut u16, + pub KeySize: u32, + pub SignatureAlgorithm: u32, + pub EncryptAlgorithm: u32, +} +impl ::core::marker::Copy for SecPkgContext_KeyInfoW {} +impl ::core::clone::Clone for SecPkgContext_KeyInfoW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_KeyingMaterial { + pub cbKeyingMaterial: u32, + pub pbKeyingMaterial: *mut u8, +} +impl ::core::marker::Copy for SecPkgContext_KeyingMaterial {} +impl ::core::clone::Clone for SecPkgContext_KeyingMaterial { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_KeyingMaterialInfo { + pub cbLabel: u16, + pub pszLabel: ::windows_sys::core::PSTR, + pub cbContextValue: u16, + pub pbContextValue: *mut u8, + pub cbKeyingMaterial: u32, +} +impl ::core::marker::Copy for SecPkgContext_KeyingMaterialInfo {} +impl ::core::clone::Clone for SecPkgContext_KeyingMaterialInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_KeyingMaterial_Inproc { + pub cbLabel: u16, + pub pszLabel: ::windows_sys::core::PSTR, + pub cbContextValue: u16, + pub pbContextValue: *mut u8, + pub cbKeyingMaterial: u32, + pub pbKeyingMaterial: *mut u8, +} +impl ::core::marker::Copy for SecPkgContext_KeyingMaterial_Inproc {} +impl ::core::clone::Clone for SecPkgContext_KeyingMaterial_Inproc { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_LastClientTokenStatus { + pub LastClientTokenStatus: SECPKG_ATTR_LCT_STATUS, +} +impl ::core::marker::Copy for SecPkgContext_LastClientTokenStatus {} +impl ::core::clone::Clone for SecPkgContext_LastClientTokenStatus { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_Lifespan { + pub tsStart: i64, + pub tsExpiry: i64, +} +impl ::core::marker::Copy for SecPkgContext_Lifespan {} +impl ::core::clone::Clone for SecPkgContext_Lifespan { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_LocalCredentialInfo { + pub cbCertificateChain: u32, + pub pbCertificateChain: *mut u8, + pub cCertificates: u32, + pub fFlags: u32, + pub dwBits: u32, +} +impl ::core::marker::Copy for SecPkgContext_LocalCredentialInfo {} +impl ::core::clone::Clone for SecPkgContext_LocalCredentialInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_LogoffTime { + pub tsLogoffTime: i64, +} +impl ::core::marker::Copy for SecPkgContext_LogoffTime {} +impl ::core::clone::Clone for SecPkgContext_LogoffTime { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_MappedCredAttr { + pub dwAttribute: u32, + pub pvBuffer: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SecPkgContext_MappedCredAttr {} +impl ::core::clone::Clone for SecPkgContext_MappedCredAttr { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_NamesA { + pub sUserName: *mut i8, +} +impl ::core::marker::Copy for SecPkgContext_NamesA {} +impl ::core::clone::Clone for SecPkgContext_NamesA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_NamesW { + pub sUserName: *mut u16, +} +impl ::core::marker::Copy for SecPkgContext_NamesW {} +impl ::core::clone::Clone for SecPkgContext_NamesW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_NativeNamesA { + pub sClientName: *mut i8, + pub sServerName: *mut i8, +} +impl ::core::marker::Copy for SecPkgContext_NativeNamesA {} +impl ::core::clone::Clone for SecPkgContext_NativeNamesA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_NativeNamesW { + pub sClientName: *mut u16, + pub sServerName: *mut u16, +} +impl ::core::marker::Copy for SecPkgContext_NativeNamesW {} +impl ::core::clone::Clone for SecPkgContext_NativeNamesW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_NegoKeys { + pub KeyType: u32, + pub KeyLength: u16, + pub KeyValue: *mut u8, + pub VerifyKeyType: u32, + pub VerifyKeyLength: u16, + pub VerifyKeyValue: *mut u8, +} +impl ::core::marker::Copy for SecPkgContext_NegoKeys {} +impl ::core::clone::Clone for SecPkgContext_NegoKeys { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_NegoPackageInfo { + pub PackageMask: u32, +} +impl ::core::marker::Copy for SecPkgContext_NegoPackageInfo {} +impl ::core::clone::Clone for SecPkgContext_NegoPackageInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_NegoStatus { + pub LastStatus: u32, +} +impl ::core::marker::Copy for SecPkgContext_NegoStatus {} +impl ::core::clone::Clone for SecPkgContext_NegoStatus { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_NegotiatedTlsExtensions { + pub ExtensionsCount: u32, + pub Extensions: *mut u16, +} +impl ::core::marker::Copy for SecPkgContext_NegotiatedTlsExtensions {} +impl ::core::clone::Clone for SecPkgContext_NegotiatedTlsExtensions { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_NegotiationInfoA { + pub PackageInfo: *mut SecPkgInfoA, + pub NegotiationState: u32, +} +impl ::core::marker::Copy for SecPkgContext_NegotiationInfoA {} +impl ::core::clone::Clone for SecPkgContext_NegotiationInfoA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_NegotiationInfoW { + pub PackageInfo: *mut SecPkgInfoW, + pub NegotiationState: u32, +} +impl ::core::marker::Copy for SecPkgContext_NegotiationInfoW {} +impl ::core::clone::Clone for SecPkgContext_NegotiationInfoW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_PackageInfoA { + pub PackageInfo: *mut SecPkgInfoA, +} +impl ::core::marker::Copy for SecPkgContext_PackageInfoA {} +impl ::core::clone::Clone for SecPkgContext_PackageInfoA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_PackageInfoW { + pub PackageInfo: *mut SecPkgInfoW, +} +impl ::core::marker::Copy for SecPkgContext_PackageInfoW {} +impl ::core::clone::Clone for SecPkgContext_PackageInfoW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_PasswordExpiry { + pub tsPasswordExpires: i64, +} +impl ::core::marker::Copy for SecPkgContext_PasswordExpiry {} +impl ::core::clone::Clone for SecPkgContext_PasswordExpiry { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_ProtoInfoA { + pub sProtocolName: *mut i8, + pub majorVersion: u32, + pub minorVersion: u32, +} +impl ::core::marker::Copy for SecPkgContext_ProtoInfoA {} +impl ::core::clone::Clone for SecPkgContext_ProtoInfoA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_ProtoInfoW { + pub sProtocolName: *mut u16, + pub majorVersion: u32, + pub minorVersion: u32, +} +impl ::core::marker::Copy for SecPkgContext_ProtoInfoW {} +impl ::core::clone::Clone for SecPkgContext_ProtoInfoW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_RemoteCredentialInfo { + pub cbCertificateChain: u32, + pub pbCertificateChain: *mut u8, + pub cCertificates: u32, + pub fFlags: u32, + pub dwBits: u32, +} +impl ::core::marker::Copy for SecPkgContext_RemoteCredentialInfo {} +impl ::core::clone::Clone for SecPkgContext_RemoteCredentialInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_SaslContext { + pub SaslContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SecPkgContext_SaslContext {} +impl ::core::clone::Clone for SecPkgContext_SaslContext { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_SessionAppData { + pub dwFlags: u32, + pub cbAppData: u32, + pub pbAppData: *mut u8, +} +impl ::core::marker::Copy for SecPkgContext_SessionAppData {} +impl ::core::clone::Clone for SecPkgContext_SessionAppData { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_SessionInfo { + pub dwFlags: u32, + pub cbSessionId: u32, + pub rgbSessionId: [u8; 32], +} +impl ::core::marker::Copy for SecPkgContext_SessionInfo {} +impl ::core::clone::Clone for SecPkgContext_SessionInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_SessionKey { + pub SessionKeyLength: u32, + pub SessionKey: *mut u8, +} +impl ::core::marker::Copy for SecPkgContext_SessionKey {} +impl ::core::clone::Clone for SecPkgContext_SessionKey { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_Sizes { + pub cbMaxToken: u32, + pub cbMaxSignature: u32, + pub cbBlockSize: u32, + pub cbSecurityTrailer: u32, +} +impl ::core::marker::Copy for SecPkgContext_Sizes {} +impl ::core::clone::Clone for SecPkgContext_Sizes { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_SrtpParameters { + pub ProtectionProfile: u16, + pub MasterKeyIdentifierSize: u8, + pub MasterKeyIdentifier: *mut u8, +} +impl ::core::marker::Copy for SecPkgContext_SrtpParameters {} +impl ::core::clone::Clone for SecPkgContext_SrtpParameters { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_StreamSizes { + pub cbHeader: u32, + pub cbTrailer: u32, + pub cbMaximumMessage: u32, + pub cBuffers: u32, + pub cbBlockSize: u32, +} +impl ::core::marker::Copy for SecPkgContext_StreamSizes {} +impl ::core::clone::Clone for SecPkgContext_StreamSizes { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_SubjectAttributes { + pub AttributeInfo: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SecPkgContext_SubjectAttributes {} +impl ::core::clone::Clone for SecPkgContext_SubjectAttributes { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_SupportedSignatures { + pub cSignatureAndHashAlgorithms: u16, + pub pSignatureAndHashAlgorithms: *mut u16, +} +impl ::core::marker::Copy for SecPkgContext_SupportedSignatures {} +impl ::core::clone::Clone for SecPkgContext_SupportedSignatures { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_Target { + pub TargetLength: u32, + pub Target: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for SecPkgContext_Target {} +impl ::core::clone::Clone for SecPkgContext_Target { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_TargetInformation { + pub MarshalledTargetInfoLength: u32, + pub MarshalledTargetInfo: *mut u8, +} +impl ::core::marker::Copy for SecPkgContext_TargetInformation {} +impl ::core::clone::Clone for SecPkgContext_TargetInformation { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_TokenBinding { + pub MajorVersion: u8, + pub MinorVersion: u8, + pub KeyParametersSize: u16, + pub KeyParameters: *mut u8, +} +impl ::core::marker::Copy for SecPkgContext_TokenBinding {} +impl ::core::clone::Clone for SecPkgContext_TokenBinding { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SecPkgContext_UiInfo { + pub hParentWindow: super::super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SecPkgContext_UiInfo {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SecPkgContext_UiInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_UserFlags { + pub UserFlags: u32, +} +impl ::core::marker::Copy for SecPkgContext_UserFlags {} +impl ::core::clone::Clone for SecPkgContext_UserFlags { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgCred_CipherStrengths { + pub dwMinimumCipherStrength: u32, + pub dwMaximumCipherStrength: u32, +} +impl ::core::marker::Copy for SecPkgCred_CipherStrengths {} +impl ::core::clone::Clone for SecPkgCred_CipherStrengths { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SecPkgCred_ClientCertPolicy { + pub dwFlags: u32, + pub guidPolicyId: ::windows_sys::core::GUID, + pub dwCertFlags: u32, + pub dwUrlRetrievalTimeout: u32, + pub fCheckRevocationFreshnessTime: super::super::super::Foundation::BOOL, + pub dwRevocationFreshnessTime: u32, + pub fOmitUsageCheck: super::super::super::Foundation::BOOL, + pub pwszSslCtlStoreName: ::windows_sys::core::PWSTR, + pub pwszSslCtlIdentifier: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SecPkgCred_ClientCertPolicy {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SecPkgCred_ClientCertPolicy { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgCred_SessionTicketKey { + pub TicketInfoVersion: u32, + pub KeyId: [u8; 16], + pub KeyingMaterial: [u8; 64], + pub KeyingMaterialSize: u8, +} +impl ::core::marker::Copy for SecPkgCred_SessionTicketKey {} +impl ::core::clone::Clone for SecPkgCred_SessionTicketKey { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgCred_SessionTicketKeys { + pub cSessionTicketKeys: u32, + pub pSessionTicketKeys: *mut SecPkgCred_SessionTicketKey, +} +impl ::core::marker::Copy for SecPkgCred_SessionTicketKeys {} +impl ::core::clone::Clone for SecPkgCred_SessionTicketKeys { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct SecPkgCred_SupportedAlgs { + pub cSupportedAlgs: u32, + pub palgSupportedAlgs: *mut super::super::Cryptography::ALG_ID, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SecPkgCred_SupportedAlgs {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SecPkgCred_SupportedAlgs { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgCred_SupportedProtocols { + pub grbitProtocol: u32, +} +impl ::core::marker::Copy for SecPkgCred_SupportedProtocols {} +impl ::core::clone::Clone for SecPkgCred_SupportedProtocols { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgCredentials_Cert { + pub EncodedCertSize: u32, + pub EncodedCert: *mut u8, +} +impl ::core::marker::Copy for SecPkgCredentials_Cert {} +impl ::core::clone::Clone for SecPkgCredentials_Cert { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgCredentials_KdcProxySettingsW { + pub Version: u32, + pub Flags: u32, + pub ProxyServerOffset: u16, + pub ProxyServerLength: u16, + pub ClientTlsCredOffset: u16, + pub ClientTlsCredLength: u16, +} +impl ::core::marker::Copy for SecPkgCredentials_KdcProxySettingsW {} +impl ::core::clone::Clone for SecPkgCredentials_KdcProxySettingsW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgCredentials_NamesA { + pub sUserName: *mut i8, +} +impl ::core::marker::Copy for SecPkgCredentials_NamesA {} +impl ::core::clone::Clone for SecPkgCredentials_NamesA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgCredentials_NamesW { + pub sUserName: *mut u16, +} +impl ::core::marker::Copy for SecPkgCredentials_NamesW {} +impl ::core::clone::Clone for SecPkgCredentials_NamesW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgCredentials_SSIProviderA { + pub sProviderName: *mut i8, + pub ProviderInfoLength: u32, + pub ProviderInfo: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for SecPkgCredentials_SSIProviderA {} +impl ::core::clone::Clone for SecPkgCredentials_SSIProviderA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgCredentials_SSIProviderW { + pub sProviderName: *mut u16, + pub ProviderInfoLength: u32, + pub ProviderInfo: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for SecPkgCredentials_SSIProviderW {} +impl ::core::clone::Clone for SecPkgCredentials_SSIProviderW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgInfoA { + pub fCapabilities: u32, + pub wVersion: u16, + pub wRPCID: u16, + pub cbMaxToken: u32, + pub Name: *mut i8, + pub Comment: *mut i8, +} +impl ::core::marker::Copy for SecPkgInfoA {} +impl ::core::clone::Clone for SecPkgInfoA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgInfoW { + pub fCapabilities: u32, + pub wVersion: u16, + pub wRPCID: u16, + pub cbMaxToken: u32, + pub Name: *mut u16, + pub Comment: *mut u16, +} +impl ::core::marker::Copy for SecPkgInfoW {} +impl ::core::clone::Clone for SecPkgInfoW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +pub struct SecurityFunctionTableA { + pub dwVersion: u32, + pub EnumerateSecurityPackagesA: ENUMERATE_SECURITY_PACKAGES_FN_A, + pub QueryCredentialsAttributesA: QUERY_CREDENTIALS_ATTRIBUTES_FN_A, + pub AcquireCredentialsHandleA: ACQUIRE_CREDENTIALS_HANDLE_FN_A, + pub FreeCredentialsHandle: FREE_CREDENTIALS_HANDLE_FN, + pub Reserved2: *mut ::core::ffi::c_void, + pub InitializeSecurityContextA: INITIALIZE_SECURITY_CONTEXT_FN_A, + pub AcceptSecurityContext: ACCEPT_SECURITY_CONTEXT_FN, + pub CompleteAuthToken: COMPLETE_AUTH_TOKEN_FN, + pub DeleteSecurityContext: DELETE_SECURITY_CONTEXT_FN, + pub ApplyControlToken: APPLY_CONTROL_TOKEN_FN, + pub QueryContextAttributesA: QUERY_CONTEXT_ATTRIBUTES_FN_A, + pub ImpersonateSecurityContext: IMPERSONATE_SECURITY_CONTEXT_FN, + pub RevertSecurityContext: REVERT_SECURITY_CONTEXT_FN, + pub MakeSignature: MAKE_SIGNATURE_FN, + pub VerifySignature: VERIFY_SIGNATURE_FN, + pub FreeContextBuffer: FREE_CONTEXT_BUFFER_FN, + pub QuerySecurityPackageInfoA: QUERY_SECURITY_PACKAGE_INFO_FN_A, + pub Reserved3: *mut ::core::ffi::c_void, + pub Reserved4: *mut ::core::ffi::c_void, + pub ExportSecurityContext: EXPORT_SECURITY_CONTEXT_FN, + pub ImportSecurityContextA: IMPORT_SECURITY_CONTEXT_FN_A, + pub AddCredentialsA: ADD_CREDENTIALS_FN_A, + pub Reserved8: *mut ::core::ffi::c_void, + pub QuerySecurityContextToken: QUERY_SECURITY_CONTEXT_TOKEN_FN, + pub EncryptMessage: ENCRYPT_MESSAGE_FN, + pub DecryptMessage: DECRYPT_MESSAGE_FN, + pub SetContextAttributesA: SET_CONTEXT_ATTRIBUTES_FN_A, + pub SetCredentialsAttributesA: SET_CREDENTIALS_ATTRIBUTES_FN_A, + pub ChangeAccountPasswordA: CHANGE_PASSWORD_FN_A, + pub QueryContextAttributesExA: QUERY_CONTEXT_ATTRIBUTES_EX_FN_A, + pub QueryCredentialsAttributesExA: QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_A, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +impl ::core::marker::Copy for SecurityFunctionTableA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +impl ::core::clone::Clone for SecurityFunctionTableA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +pub struct SecurityFunctionTableW { + pub dwVersion: u32, + pub EnumerateSecurityPackagesW: ENUMERATE_SECURITY_PACKAGES_FN_W, + pub QueryCredentialsAttributesW: QUERY_CREDENTIALS_ATTRIBUTES_FN_W, + pub AcquireCredentialsHandleW: ACQUIRE_CREDENTIALS_HANDLE_FN_W, + pub FreeCredentialsHandle: FREE_CREDENTIALS_HANDLE_FN, + pub Reserved2: *mut ::core::ffi::c_void, + pub InitializeSecurityContextW: INITIALIZE_SECURITY_CONTEXT_FN_W, + pub AcceptSecurityContext: ACCEPT_SECURITY_CONTEXT_FN, + pub CompleteAuthToken: COMPLETE_AUTH_TOKEN_FN, + pub DeleteSecurityContext: DELETE_SECURITY_CONTEXT_FN, + pub ApplyControlToken: APPLY_CONTROL_TOKEN_FN, + pub QueryContextAttributesW: QUERY_CONTEXT_ATTRIBUTES_FN_W, + pub ImpersonateSecurityContext: IMPERSONATE_SECURITY_CONTEXT_FN, + pub RevertSecurityContext: REVERT_SECURITY_CONTEXT_FN, + pub MakeSignature: MAKE_SIGNATURE_FN, + pub VerifySignature: VERIFY_SIGNATURE_FN, + pub FreeContextBuffer: FREE_CONTEXT_BUFFER_FN, + pub QuerySecurityPackageInfoW: QUERY_SECURITY_PACKAGE_INFO_FN_W, + pub Reserved3: *mut ::core::ffi::c_void, + pub Reserved4: *mut ::core::ffi::c_void, + pub ExportSecurityContext: EXPORT_SECURITY_CONTEXT_FN, + pub ImportSecurityContextW: IMPORT_SECURITY_CONTEXT_FN_W, + pub AddCredentialsW: ADD_CREDENTIALS_FN_W, + pub Reserved8: *mut ::core::ffi::c_void, + pub QuerySecurityContextToken: QUERY_SECURITY_CONTEXT_TOKEN_FN, + pub EncryptMessage: ENCRYPT_MESSAGE_FN, + pub DecryptMessage: DECRYPT_MESSAGE_FN, + pub SetContextAttributesW: SET_CONTEXT_ATTRIBUTES_FN_W, + pub SetCredentialsAttributesW: SET_CREDENTIALS_ATTRIBUTES_FN_W, + pub ChangeAccountPasswordW: CHANGE_PASSWORD_FN_W, + pub QueryContextAttributesExW: QUERY_CONTEXT_ATTRIBUTES_EX_FN_W, + pub QueryCredentialsAttributesExW: QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_W, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +impl ::core::marker::Copy for SecurityFunctionTableW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +impl ::core::clone::Clone for SecurityFunctionTableW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TLS_EXTENSION_SUBSCRIPTION { + pub ExtensionType: u16, + pub HandshakeType: u16, +} +impl ::core::marker::Copy for TLS_EXTENSION_SUBSCRIPTION {} +impl ::core::clone::Clone for TLS_EXTENSION_SUBSCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TLS_PARAMETERS { + pub cAlpnIds: u32, + pub rgstrAlpnIds: *mut LSA_UNICODE_STRING, + pub grbitDisabledProtocols: u32, + pub cDisabledCrypto: u32, + pub pDisabledCrypto: *mut CRYPTO_SETTINGS, + pub dwFlags: u32, +} +impl ::core::marker::Copy for TLS_PARAMETERS {} +impl ::core::clone::Clone for TLS_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TOKENBINDING_IDENTIFIER { + pub keyType: u8, +} +impl ::core::marker::Copy for TOKENBINDING_IDENTIFIER {} +impl ::core::clone::Clone for TOKENBINDING_IDENTIFIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TOKENBINDING_KEY_TYPES { + pub keyCount: u32, + pub keyType: *mut TOKENBINDING_KEY_PARAMETERS_TYPE, +} +impl ::core::marker::Copy for TOKENBINDING_KEY_TYPES {} +impl ::core::clone::Clone for TOKENBINDING_KEY_TYPES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TOKENBINDING_RESULT_DATA { + pub bindingType: TOKENBINDING_TYPE, + pub identifierSize: u32, + pub identifierData: *mut TOKENBINDING_IDENTIFIER, + pub extensionFormat: TOKENBINDING_EXTENSION_FORMAT, + pub extensionSize: u32, + pub extensionData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for TOKENBINDING_RESULT_DATA {} +impl ::core::clone::Clone for TOKENBINDING_RESULT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TOKENBINDING_RESULT_LIST { + pub resultCount: u32, + pub resultData: *mut TOKENBINDING_RESULT_DATA, +} +impl ::core::marker::Copy for TOKENBINDING_RESULT_LIST {} +impl ::core::clone::Clone for TOKENBINDING_RESULT_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRUSTED_CONTROLLERS_INFO { + pub Entries: u32, + pub Names: *mut LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for TRUSTED_CONTROLLERS_INFO {} +impl ::core::clone::Clone for TRUSTED_CONTROLLERS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRUSTED_DOMAIN_AUTH_INFORMATION { + pub IncomingAuthInfos: u32, + pub IncomingAuthenticationInformation: *mut LSA_AUTH_INFORMATION, + pub IncomingPreviousAuthenticationInformation: *mut LSA_AUTH_INFORMATION, + pub OutgoingAuthInfos: u32, + pub OutgoingAuthenticationInformation: *mut LSA_AUTH_INFORMATION, + pub OutgoingPreviousAuthenticationInformation: *mut LSA_AUTH_INFORMATION, +} +impl ::core::marker::Copy for TRUSTED_DOMAIN_AUTH_INFORMATION {} +impl ::core::clone::Clone for TRUSTED_DOMAIN_AUTH_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRUSTED_DOMAIN_FULL_INFORMATION { + pub Information: TRUSTED_DOMAIN_INFORMATION_EX, + pub PosixOffset: TRUSTED_POSIX_OFFSET_INFO, + pub AuthInformation: TRUSTED_DOMAIN_AUTH_INFORMATION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRUSTED_DOMAIN_FULL_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRUSTED_DOMAIN_FULL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRUSTED_DOMAIN_FULL_INFORMATION2 { + pub Information: TRUSTED_DOMAIN_INFORMATION_EX2, + pub PosixOffset: TRUSTED_POSIX_OFFSET_INFO, + pub AuthInformation: TRUSTED_DOMAIN_AUTH_INFORMATION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRUSTED_DOMAIN_FULL_INFORMATION2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRUSTED_DOMAIN_FULL_INFORMATION2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRUSTED_DOMAIN_INFORMATION_EX { + pub Name: LSA_UNICODE_STRING, + pub FlatName: LSA_UNICODE_STRING, + pub Sid: super::super::super::Foundation::PSID, + pub TrustDirection: TRUSTED_DOMAIN_TRUST_DIRECTION, + pub TrustType: TRUSTED_DOMAIN_TRUST_TYPE, + pub TrustAttributes: TRUSTED_DOMAIN_TRUST_ATTRIBUTES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRUSTED_DOMAIN_INFORMATION_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRUSTED_DOMAIN_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRUSTED_DOMAIN_INFORMATION_EX2 { + pub Name: LSA_UNICODE_STRING, + pub FlatName: LSA_UNICODE_STRING, + pub Sid: super::super::super::Foundation::PSID, + pub TrustDirection: u32, + pub TrustType: u32, + pub TrustAttributes: u32, + pub ForestTrustLength: u32, + pub ForestTrustInfo: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRUSTED_DOMAIN_INFORMATION_EX2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRUSTED_DOMAIN_INFORMATION_EX2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRUSTED_DOMAIN_NAME_INFO { + pub Name: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for TRUSTED_DOMAIN_NAME_INFO {} +impl ::core::clone::Clone for TRUSTED_DOMAIN_NAME_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES { + pub SupportedEncryptionTypes: u32, +} +impl ::core::marker::Copy for TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES {} +impl ::core::clone::Clone for TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRUSTED_PASSWORD_INFO { + pub Password: LSA_UNICODE_STRING, + pub OldPassword: LSA_UNICODE_STRING, +} +impl ::core::marker::Copy for TRUSTED_PASSWORD_INFO {} +impl ::core::clone::Clone for TRUSTED_PASSWORD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRUSTED_POSIX_OFFSET_INFO { + pub Offset: u32, +} +impl ::core::marker::Copy for TRUSTED_POSIX_OFFSET_INFO {} +impl ::core::clone::Clone for TRUSTED_POSIX_OFFSET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USER_ALL_INFORMATION { + pub LastLogon: i64, + pub LastLogoff: i64, + pub PasswordLastSet: i64, + pub AccountExpires: i64, + pub PasswordCanChange: i64, + pub PasswordMustChange: i64, + pub UserName: LSA_UNICODE_STRING, + pub FullName: LSA_UNICODE_STRING, + pub HomeDirectory: LSA_UNICODE_STRING, + pub HomeDirectoryDrive: LSA_UNICODE_STRING, + pub ScriptPath: LSA_UNICODE_STRING, + pub ProfilePath: LSA_UNICODE_STRING, + pub AdminComment: LSA_UNICODE_STRING, + pub WorkStations: LSA_UNICODE_STRING, + pub UserComment: LSA_UNICODE_STRING, + pub Parameters: LSA_UNICODE_STRING, + pub LmPassword: LSA_UNICODE_STRING, + pub NtPassword: LSA_UNICODE_STRING, + pub PrivateData: LSA_UNICODE_STRING, + pub SecurityDescriptor: SR_SECURITY_DESCRIPTOR, + pub UserId: u32, + pub PrimaryGroupId: u32, + pub UserAccountControl: u32, + pub WhichFields: u32, + pub LogonHours: LOGON_HOURS, + pub BadPasswordCount: u16, + pub LogonCount: u16, + pub CountryCode: u16, + pub CodePage: u16, + pub LmPasswordPresent: super::super::super::Foundation::BOOLEAN, + pub NtPasswordPresent: super::super::super::Foundation::BOOLEAN, + pub PasswordExpired: super::super::super::Foundation::BOOLEAN, + pub PrivateDataSensitive: super::super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USER_ALL_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USER_ALL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_PasswordManagement\"`"] +#[cfg(feature = "Win32_System_PasswordManagement")] +pub struct USER_SESSION_KEY { + pub data: [super::super::super::System::PasswordManagement::CYPHER_BLOCK; 2], +} +#[cfg(feature = "Win32_System_PasswordManagement")] +impl ::core::marker::Copy for USER_SESSION_KEY {} +#[cfg(feature = "Win32_System_PasswordManagement")] +impl ::core::clone::Clone for USER_SESSION_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct X509Certificate { + pub Version: u32, + pub SerialNumber: [u32; 4], + pub SignatureAlgorithm: super::super::Cryptography::ALG_ID, + pub ValidFrom: super::super::super::Foundation::FILETIME, + pub ValidUntil: super::super::super::Foundation::FILETIME, + pub pszIssuer: ::windows_sys::core::PSTR, + pub pszSubject: ::windows_sys::core::PSTR, + pub pPublicKey: *mut PctPublicKey, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for X509Certificate {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for X509Certificate { + fn clone(&self) -> Self { + *self + } +} +pub type _HMAPPER = isize; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type ACCEPT_SECURITY_CONTEXT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type ACQUIRE_CREDENTIALS_HANDLE_FN_A = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type ACQUIRE_CREDENTIALS_HANDLE_FN_W = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type ADD_CREDENTIALS_FN_A = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type ADD_CREDENTIALS_FN_W = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type APPLY_CONTROL_TOKEN_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CHANGE_PASSWORD_FN_A = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CHANGE_PASSWORD_FN_W = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type COMPLETE_AUTH_TOKEN_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +pub type CredFreeCredentialsFn = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +pub type CredReadDomainCredentialsFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +pub type CredReadFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +pub type CredWriteFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CrediUnmarshalandDecodeStringFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type DECRYPT_MESSAGE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type DELETE_SECURITY_CONTEXT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type ENCRYPT_MESSAGE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type ENUMERATE_SECURITY_PACKAGES_FN_A = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type ENUMERATE_SECURITY_PACKAGES_FN_W = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type EXPORT_SECURITY_CONTEXT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FREE_CONTEXT_BUFFER_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type FREE_CREDENTIALS_HANDLE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type IMPERSONATE_SECURITY_CONTEXT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type IMPORT_SECURITY_CONTEXT_FN_A = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type IMPORT_SECURITY_CONTEXT_FN_W = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type INITIALIZE_SECURITY_CONTEXT_FN_A = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type INITIALIZE_SECURITY_CONTEXT_FN_W = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +pub type INIT_SECURITY_INTERFACE_A = ::core::option::Option *mut SecurityFunctionTableA>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] +pub type INIT_SECURITY_INTERFACE_W = ::core::option::Option *mut SecurityFunctionTableW>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KspCompleteTokenFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KspDeleteContextFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KspGetTokenFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KspInitContextFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub type KspInitPackageFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KspMakeSignatureFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KspMapHandleFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KspQueryAttributesFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KspSealMessageFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KspSerializeAuthDataFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KspSetPagingModeFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KspUnsealMessageFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KspVerifySignatureFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LSA_AP_POST_LOGON_USER = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type MAKE_SIGNATURE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PKSEC_CREATE_CONTEXT_LIST = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub type PKSEC_DEREFERENCE_LIST_ENTRY = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub type PKSEC_INSERT_LIST_ENTRY = ::core::option::Option ()>; +pub type PKSEC_LOCATE_PKG_BY_ID = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub type PKSEC_REFERENCE_LIST_ENTRY = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PKSEC_SERIALIZE_SCHANNEL_AUTH_DATA = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PKSEC_SERIALIZE_WINNT_AUTH_DATA = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_ADD_CREDENTIAL = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_ALLOCATE_CLIENT_BUFFER = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +pub type PLSA_ALLOCATE_LSA_HEAP = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PLSA_ALLOCATE_PRIVATE_HEAP = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PLSA_ALLOCATE_SHARED_MEMORY = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AP_CALL_PACKAGE = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AP_CALL_PACKAGE_PASSTHROUGH = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AP_INITIALIZE_PACKAGE = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AP_LOGON_TERMINATED = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AP_LOGON_USER = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AP_LOGON_USER_EX = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AP_LOGON_USER_EX2 = ::core::option::Option< + unsafe extern "system" fn(clientrequest: *const *const ::core::ffi::c_void, logontype: SECURITY_LOGON_TYPE, protocolsubmitbuffer: *const ::core::ffi::c_void, clientbufferbase: *const ::core::ffi::c_void, submitbuffersize: u32, profilebuffer: *mut *mut ::core::ffi::c_void, profilebuffersize: *mut u32, logonid: *mut super::super::super::Foundation::LUID, substatus: *mut i32, tokeninformationtype: *mut LSA_TOKEN_INFORMATION_TYPE, tokeninformation: *mut *mut ::core::ffi::c_void, accountname: *mut *mut LSA_UNICODE_STRING, authenticatingauthority: *mut *mut LSA_UNICODE_STRING, machinename: *mut *mut LSA_UNICODE_STRING, primarycredentials: *mut SECPKG_PRIMARY_CRED, supplementalcredentials: *mut *mut SECPKG_SUPPLEMENTAL_CRED_ARRAY) -> super::super::super::Foundation::NTSTATUS, +>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AP_LOGON_USER_EX3 = ::core::option::Option< + unsafe extern "system" fn( + clientrequest: *const *const ::core::ffi::c_void, + logontype: SECURITY_LOGON_TYPE, + protocolsubmitbuffer: *const ::core::ffi::c_void, + clientbufferbase: *const ::core::ffi::c_void, + submitbuffersize: u32, + surrogatelogon: *mut SECPKG_SURROGATE_LOGON, + profilebuffer: *mut *mut ::core::ffi::c_void, + profilebuffersize: *mut u32, + logonid: *mut super::super::super::Foundation::LUID, + substatus: *mut i32, + tokeninformationtype: *mut LSA_TOKEN_INFORMATION_TYPE, + tokeninformation: *mut *mut ::core::ffi::c_void, + accountname: *mut *mut LSA_UNICODE_STRING, + authenticatingauthority: *mut *mut LSA_UNICODE_STRING, + machinename: *mut *mut LSA_UNICODE_STRING, + primarycredentials: *mut SECPKG_PRIMARY_CRED, + supplementalcredentials: *mut *mut SECPKG_SUPPLEMENTAL_CRED_ARRAY, + ) -> super::super::super::Foundation::NTSTATUS, +>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AP_POST_LOGON_USER_SURROGATE = ::core::option::Option< + unsafe extern "system" fn( + clientrequest: *const *const ::core::ffi::c_void, + logontype: SECURITY_LOGON_TYPE, + protocolsubmitbuffer: *const ::core::ffi::c_void, + clientbufferbase: *const ::core::ffi::c_void, + submitbuffersize: u32, + surrogatelogon: *const SECPKG_SURROGATE_LOGON, + profilebuffer: *const ::core::ffi::c_void, + profilebuffersize: u32, + logonid: *const super::super::super::Foundation::LUID, + status: super::super::super::Foundation::NTSTATUS, + substatus: super::super::super::Foundation::NTSTATUS, + tokeninformationtype: LSA_TOKEN_INFORMATION_TYPE, + tokeninformation: *const ::core::ffi::c_void, + accountname: *const LSA_UNICODE_STRING, + authenticatingauthority: *const LSA_UNICODE_STRING, + machinename: *const LSA_UNICODE_STRING, + primarycredentials: *const SECPKG_PRIMARY_CRED, + supplementalcredentials: *const SECPKG_SUPPLEMENTAL_CRED_ARRAY, + ) -> super::super::super::Foundation::NTSTATUS, +>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AP_PRE_LOGON_USER_SURROGATE = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AUDIT_ACCOUNT_LOGON = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AUDIT_LOGON = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AUDIT_LOGON_EX = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_CALLBACK_FUNCTION = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_CALL_PACKAGE = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_CALL_PACKAGEEX = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_CALL_PACKAGE_PASSTHROUGH = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_CANCEL_NOTIFICATION = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_CHECK_PROTECTED_USER_BY_TOKEN = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_CLIENT_CALLBACK = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_CLOSE_SAM_USER = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_CONVERT_AUTH_DATA_TO_TOKEN = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_COPY_FROM_CLIENT_BUFFER = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_COPY_TO_CLIENT_BUFFER = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_CRACK_SINGLE_NAME = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_CREATE_LOGON_SESSION = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +pub type PLSA_CREATE_SHARED_MEMORY = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +pub type PLSA_CREATE_THREAD = ::core::option::Option super::super::super::Foundation::HANDLE>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_CREATE_TOKEN = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_CREATE_TOKEN_EX = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_DELETE_CREDENTIAL = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_DELETE_LOGON_SESSION = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_DELETE_SHARED_MEMORY = ::core::option::Option super::super::super::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_DUPLICATE_HANDLE = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_EXPAND_AUTH_DATA_FOR_DOMAIN = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_FREE_CLIENT_BUFFER = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +pub type PLSA_FREE_LSA_HEAP = ::core::option::Option ()>; +pub type PLSA_FREE_PRIVATE_HEAP = ::core::option::Option ()>; +pub type PLSA_FREE_SHARED_MEMORY = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_GET_APP_MODE_INFO = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_GET_AUTH_DATA_FOR_USER = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_GET_CALL_INFO = ::core::option::Option super::super::super::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_GET_CLIENT_INFO = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_GET_CLIENT_INFO_EX = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_GET_CREDENTIALS = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_GET_EXTENDED_CALL_FLAGS = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_GET_SERVICE_ACCOUNT_PASSWORD = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_GET_USER_AUTH_DATA = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_GET_USER_CREDENTIALS = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_IMPERSONATE_CLIENT = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +pub type PLSA_LOCATE_PKG_BY_ID = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_MAP_BUFFER = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_OPEN_SAM_USER = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_OPEN_TOKEN_BY_LOGON_ID = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +pub type PLSA_PROTECT_MEMORY = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_QUERY_CLIENT_REQUEST = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_REDIRECTED_LOGON_CALLBACK = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_REDIRECTED_LOGON_CLEANUP_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_REDIRECTED_LOGON_GET_LOGON_CREDS = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_REDIRECTED_LOGON_GET_SID = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_REDIRECTED_LOGON_GET_SUPP_CREDS = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_REDIRECTED_LOGON_INIT = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_REGISTER_CALLBACK = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +pub type PLSA_REGISTER_NOTIFICATION = ::core::option::Option super::super::super::Foundation::HANDLE>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_SAVE_SUPPLEMENTAL_CREDENTIALS = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_SET_APP_MODE_INFO = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_UNLOAD_PACKAGE = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_UPDATE_PRIMARY_CREDENTIALS = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +pub type PSAM_CREDENTIAL_UPDATE_FREE_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSAM_CREDENTIAL_UPDATE_NOTIFY_ROUTINE = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSAM_CREDENTIAL_UPDATE_REGISTER_MAPPED_ENTRYPOINTS_ROUTINE = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSAM_CREDENTIAL_UPDATE_REGISTER_ROUTINE = ::core::option::Option super::super::super::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSAM_INIT_NOTIFICATION_ROUTINE = ::core::option::Option super::super::super::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSAM_PASSWORD_FILTER_ROUTINE = ::core::option::Option super::super::super::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSAM_PASSWORD_NOTIFICATION_ROUTINE = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type QUERY_CONTEXT_ATTRIBUTES_EX_FN_A = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type QUERY_CONTEXT_ATTRIBUTES_EX_FN_W = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type QUERY_CONTEXT_ATTRIBUTES_FN_A = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type QUERY_CONTEXT_ATTRIBUTES_FN_W = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_A = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_W = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type QUERY_CREDENTIALS_ATTRIBUTES_FN_A = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type QUERY_CREDENTIALS_ATTRIBUTES_FN_W = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type QUERY_SECURITY_CONTEXT_TOKEN_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type QUERY_SECURITY_PACKAGE_INFO_FN_A = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type QUERY_SECURITY_PACKAGE_INFO_FN_W = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type REVERT_SECURITY_CONTEXT_FN = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type SEC_GET_KEY_FN = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type SET_CONTEXT_ATTRIBUTES_FN_A = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type SET_CONTEXT_ATTRIBUTES_FN_W = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type SET_CREDENTIALS_ATTRIBUTES_FN_A = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type SET_CREDENTIALS_ATTRIBUTES_FN_W = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub type SSL_CRACK_CERTIFICATE_FN = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SSL_EMPTY_CACHE_FN_A = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SSL_EMPTY_CACHE_FN_W = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub type SSL_FREE_CERTIFICATE_FN = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpAcceptCredentialsFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpAcceptLsaModeContextFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpAcquireCredentialsHandleFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpAddCredentialsFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpApplyControlTokenFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpChangeAccountPasswordFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpCompleteAuthTokenFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpDeleteContextFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpDeleteCredentialsFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpExchangeMetaDataFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpExportSecurityContextFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpExtractTargetInfoFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpFormatCredentialsFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpFreeCredentialsHandleFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpGetContextTokenFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpGetCredUIContextFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpGetCredentialsFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpGetExtendedInformationFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpGetInfoFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpGetRemoteCredGuardLogonBufferFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpGetRemoteCredGuardSupplementalCredsFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpGetTbalSupplementalCredsFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpGetUserInfoFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpImportSecurityContextFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpInitLsaModeContextFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpInitUserModeContextFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials", feature = "Win32_System_Threading"))] +pub type SpInitializeFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpInstanceInitFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials", feature = "Win32_System_Threading"))] +pub type SpLsaModeInitializeFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpMakeSignatureFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpMarshalAttributeDataFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpMarshallSupplementalCredsFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpQueryContextAttributesFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpQueryCredentialsAttributesFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpQueryMetaDataFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpSaveCredentialsFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpSealMessageFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpSetContextAttributesFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpSetCredentialsAttributesFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpSetExtendedInformationFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpShutdownFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpUnsealMessageFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpUpdateCredentialsFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpUserModeInitializeFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpValidateTargetInfoFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SpVerifySignatureFn = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub type SslDeserializeCertificateStoreFn = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type SslGetExtensionsFn = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type SslGetServerIdentityFn = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +#[cfg(feature = "Win32_Security_Credentials")] +pub type VERIFY_SIGNATURE_FN = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Authentication/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Authentication/mod.rs new file mode 100644 index 000000000..1d34a9931 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Authentication/mod.rs @@ -0,0 +1,3 @@ +#[cfg(feature = "Win32_Security_Authentication_Identity")] +#[doc = "Required features: `\"Win32_Security_Authentication_Identity\"`"] +pub mod Identity; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Authorization/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Authorization/mod.rs new file mode 100644 index 000000000..75767ccc1 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Authorization/mod.rs @@ -0,0 +1,1362 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzAccessCheck(flags : AUTHZ_ACCESS_CHECK_FLAGS, hauthzclientcontext : AUTHZ_CLIENT_CONTEXT_HANDLE, prequest : *const AUTHZ_ACCESS_REQUEST, hauditevent : AUTHZ_AUDIT_EVENT_HANDLE, psecuritydescriptor : super:: PSECURITY_DESCRIPTOR, optionalsecuritydescriptorarray : *const super:: PSECURITY_DESCRIPTOR, optionalsecuritydescriptorcount : u32, preply : *mut AUTHZ_ACCESS_REPLY, phaccesscheckresults : *mut AUTHZ_ACCESS_CHECK_RESULTS_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzAddSidsToContext(hauthzclientcontext : AUTHZ_CLIENT_CONTEXT_HANDLE, sids : *const super:: SID_AND_ATTRIBUTES, sidcount : u32, restrictedsids : *const super:: SID_AND_ATTRIBUTES, restrictedsidcount : u32, phnewauthzclientcontext : *mut AUTHZ_CLIENT_CONTEXT_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzCachedAccessCheck(flags : u32, haccesscheckresults : AUTHZ_ACCESS_CHECK_RESULTS_HANDLE, prequest : *const AUTHZ_ACCESS_REQUEST, hauditevent : AUTHZ_AUDIT_EVENT_HANDLE, preply : *mut AUTHZ_ACCESS_REPLY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzEnumerateSecurityEventSources(dwflags : u32, buffer : *mut AUTHZ_SOURCE_SCHEMA_REGISTRATION, pdwcount : *mut u32, pdwlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzEvaluateSacl(authzclientcontext : AUTHZ_CLIENT_CONTEXT_HANDLE, prequest : *const AUTHZ_ACCESS_REQUEST, sacl : *const super:: ACL, grantedaccess : u32, accessgranted : super::super::Foundation:: BOOL, pbgenerateaudit : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzFreeAuditEvent(hauditevent : AUTHZ_AUDIT_EVENT_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzFreeCentralAccessPolicyCache() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzFreeContext(hauthzclientcontext : AUTHZ_CLIENT_CONTEXT_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzFreeHandle(haccesscheckresults : AUTHZ_ACCESS_CHECK_RESULTS_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzFreeResourceManager(hauthzresourcemanager : AUTHZ_RESOURCE_MANAGER_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzGetInformationFromContext(hauthzclientcontext : AUTHZ_CLIENT_CONTEXT_HANDLE, infoclass : AUTHZ_CONTEXT_INFORMATION_CLASS, buffersize : u32, psizerequired : *mut u32, buffer : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzInitializeCompoundContext(usercontext : AUTHZ_CLIENT_CONTEXT_HANDLE, devicecontext : AUTHZ_CLIENT_CONTEXT_HANDLE, phcompoundcontext : *mut AUTHZ_CLIENT_CONTEXT_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzInitializeContextFromAuthzContext(flags : u32, hauthzclientcontext : AUTHZ_CLIENT_CONTEXT_HANDLE, pexpirationtime : *const i64, identifier : super::super::Foundation:: LUID, dynamicgroupargs : *const ::core::ffi::c_void, phnewauthzclientcontext : *mut AUTHZ_CLIENT_CONTEXT_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzInitializeContextFromSid(flags : u32, usersid : super::super::Foundation:: PSID, hauthzresourcemanager : AUTHZ_RESOURCE_MANAGER_HANDLE, pexpirationtime : *const i64, identifier : super::super::Foundation:: LUID, dynamicgroupargs : *const ::core::ffi::c_void, phauthzclientcontext : *mut AUTHZ_CLIENT_CONTEXT_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzInitializeContextFromToken(flags : u32, tokenhandle : super::super::Foundation:: HANDLE, hauthzresourcemanager : AUTHZ_RESOURCE_MANAGER_HANDLE, pexpirationtime : *const i64, identifier : super::super::Foundation:: LUID, dynamicgroupargs : *const ::core::ffi::c_void, phauthzclientcontext : *mut AUTHZ_CLIENT_CONTEXT_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzInitializeObjectAccessAuditEvent(flags : AUTHZ_INITIALIZE_OBJECT_ACCESS_AUDIT_EVENT_FLAGS, hauditeventtype : AUTHZ_AUDIT_EVENT_TYPE_HANDLE, szoperationtype : ::windows_sys::core::PCWSTR, szobjecttype : ::windows_sys::core::PCWSTR, szobjectname : ::windows_sys::core::PCWSTR, szadditionalinfo : ::windows_sys::core::PCWSTR, phauditevent : *mut AUTHZ_AUDIT_EVENT_HANDLE, dwadditionalparametercount : u32, ...) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzInitializeObjectAccessAuditEvent2(flags : u32, hauditeventtype : AUTHZ_AUDIT_EVENT_TYPE_HANDLE, szoperationtype : ::windows_sys::core::PCWSTR, szobjecttype : ::windows_sys::core::PCWSTR, szobjectname : ::windows_sys::core::PCWSTR, szadditionalinfo : ::windows_sys::core::PCWSTR, szadditionalinfo2 : ::windows_sys::core::PCWSTR, phauditevent : *mut AUTHZ_AUDIT_EVENT_HANDLE, dwadditionalparametercount : u32, ...) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzInitializeRemoteResourceManager(prpcinitinfo : *const AUTHZ_RPC_INIT_INFO_CLIENT, phauthzresourcemanager : *mut AUTHZ_RESOURCE_MANAGER_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzInitializeResourceManager(flags : u32, pfndynamicaccesscheck : PFN_AUTHZ_DYNAMIC_ACCESS_CHECK, pfncomputedynamicgroups : PFN_AUTHZ_COMPUTE_DYNAMIC_GROUPS, pfnfreedynamicgroups : PFN_AUTHZ_FREE_DYNAMIC_GROUPS, szresourcemanagername : ::windows_sys::core::PCWSTR, phauthzresourcemanager : *mut AUTHZ_RESOURCE_MANAGER_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzInitializeResourceManagerEx(flags : AUTHZ_RESOURCE_MANAGER_FLAGS, pauthzinitinfo : *const AUTHZ_INIT_INFO, phauthzresourcemanager : *mut AUTHZ_RESOURCE_MANAGER_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzInstallSecurityEventSource(dwflags : u32, pregistration : *const AUTHZ_SOURCE_SCHEMA_REGISTRATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzModifyClaims(hauthzclientcontext : AUTHZ_CLIENT_CONTEXT_HANDLE, claimclass : AUTHZ_CONTEXT_INFORMATION_CLASS, pclaimoperations : *const AUTHZ_SECURITY_ATTRIBUTE_OPERATION, pclaims : *const AUTHZ_SECURITY_ATTRIBUTES_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzModifySecurityAttributes(hauthzclientcontext : AUTHZ_CLIENT_CONTEXT_HANDLE, poperations : *const AUTHZ_SECURITY_ATTRIBUTE_OPERATION, pattributes : *const AUTHZ_SECURITY_ATTRIBUTES_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzModifySids(hauthzclientcontext : AUTHZ_CLIENT_CONTEXT_HANDLE, sidclass : AUTHZ_CONTEXT_INFORMATION_CLASS, psidoperations : *const AUTHZ_SID_OPERATION, psids : *const super:: TOKEN_GROUPS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzOpenObjectAudit(flags : u32, hauthzclientcontext : AUTHZ_CLIENT_CONTEXT_HANDLE, prequest : *const AUTHZ_ACCESS_REQUEST, hauditevent : AUTHZ_AUDIT_EVENT_HANDLE, psecuritydescriptor : super:: PSECURITY_DESCRIPTOR, optionalsecuritydescriptorarray : *const super:: PSECURITY_DESCRIPTOR, optionalsecuritydescriptorcount : u32, preply : *const AUTHZ_ACCESS_REPLY) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] fn AuthzRegisterCapChangeNotification(phcapchangesubscription : *mut AUTHZ_CAP_CHANGE_SUBSCRIPTION_HANDLE, pfncapchangecallback : super::super::System::Threading:: LPTHREAD_START_ROUTINE, pcallbackcontext : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzRegisterSecurityEventSource(dwflags : u32, szeventsourcename : ::windows_sys::core::PCWSTR, pheventprovider : *mut AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzReportSecurityEvent(dwflags : u32, heventprovider : AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE, dwauditid : u32, pusersid : super::super::Foundation:: PSID, dwcount : u32, ...) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzReportSecurityEventFromParams(dwflags : u32, heventprovider : AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE, dwauditid : u32, pusersid : super::super::Foundation:: PSID, pparams : *const AUDIT_PARAMS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzSetAppContainerInformation(hauthzclientcontext : AUTHZ_CLIENT_CONTEXT_HANDLE, pappcontainersid : super::super::Foundation:: PSID, capabilitycount : u32, pcapabilitysids : *const super:: SID_AND_ATTRIBUTES) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzUninstallSecurityEventSource(dwflags : u32, szeventsourcename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzUnregisterCapChangeNotification(hcapchangesubscription : AUTHZ_CAP_CHANGE_SUBSCRIPTION_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("authz.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AuthzUnregisterSecurityEventSource(dwflags : u32, pheventprovider : *mut AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn BuildExplicitAccessWithNameA(pexplicitaccess : *mut EXPLICIT_ACCESS_A, ptrusteename : ::windows_sys::core::PCSTR, accesspermissions : u32, accessmode : ACCESS_MODE, inheritance : super:: ACE_FLAGS) -> ()); +::windows_targets::link!("advapi32.dll" "system" fn BuildExplicitAccessWithNameW(pexplicitaccess : *mut EXPLICIT_ACCESS_W, ptrusteename : ::windows_sys::core::PCWSTR, accesspermissions : u32, accessmode : ACCESS_MODE, inheritance : super:: ACE_FLAGS) -> ()); +::windows_targets::link!("advapi32.dll" "system" fn BuildImpersonateExplicitAccessWithNameA(pexplicitaccess : *mut EXPLICIT_ACCESS_A, ptrusteename : ::windows_sys::core::PCSTR, ptrustee : *const TRUSTEE_A, accesspermissions : u32, accessmode : ACCESS_MODE, inheritance : u32) -> ()); +::windows_targets::link!("advapi32.dll" "system" fn BuildImpersonateExplicitAccessWithNameW(pexplicitaccess : *mut EXPLICIT_ACCESS_W, ptrusteename : ::windows_sys::core::PCWSTR, ptrustee : *const TRUSTEE_W, accesspermissions : u32, accessmode : ACCESS_MODE, inheritance : u32) -> ()); +::windows_targets::link!("advapi32.dll" "system" fn BuildImpersonateTrusteeA(ptrustee : *mut TRUSTEE_A, pimpersonatetrustee : *const TRUSTEE_A) -> ()); +::windows_targets::link!("advapi32.dll" "system" fn BuildImpersonateTrusteeW(ptrustee : *mut TRUSTEE_W, pimpersonatetrustee : *const TRUSTEE_W) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildSecurityDescriptorA(powner : *const TRUSTEE_A, pgroup : *const TRUSTEE_A, ccountofaccessentries : u32, plistofaccessentries : *const EXPLICIT_ACCESS_A, ccountofauditentries : u32, plistofauditentries : *const EXPLICIT_ACCESS_A, poldsd : super:: PSECURITY_DESCRIPTOR, psizenewsd : *mut u32, pnewsd : *mut super:: PSECURITY_DESCRIPTOR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildSecurityDescriptorW(powner : *const TRUSTEE_W, pgroup : *const TRUSTEE_W, ccountofaccessentries : u32, plistofaccessentries : *const EXPLICIT_ACCESS_W, ccountofauditentries : u32, plistofauditentries : *const EXPLICIT_ACCESS_W, poldsd : super:: PSECURITY_DESCRIPTOR, psizenewsd : *mut u32, pnewsd : *mut super:: PSECURITY_DESCRIPTOR) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("advapi32.dll" "system" fn BuildTrusteeWithNameA(ptrustee : *mut TRUSTEE_A, pname : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("advapi32.dll" "system" fn BuildTrusteeWithNameW(ptrustee : *mut TRUSTEE_W, pname : ::windows_sys::core::PCWSTR) -> ()); +::windows_targets::link!("advapi32.dll" "system" fn BuildTrusteeWithObjectsAndNameA(ptrustee : *mut TRUSTEE_A, pobjname : *const OBJECTS_AND_NAME_A, objecttype : SE_OBJECT_TYPE, objecttypename : ::windows_sys::core::PCSTR, inheritedobjecttypename : ::windows_sys::core::PCSTR, name : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("advapi32.dll" "system" fn BuildTrusteeWithObjectsAndNameW(ptrustee : *mut TRUSTEE_W, pobjname : *const OBJECTS_AND_NAME_W, objecttype : SE_OBJECT_TYPE, objecttypename : ::windows_sys::core::PCWSTR, inheritedobjecttypename : ::windows_sys::core::PCWSTR, name : ::windows_sys::core::PCWSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildTrusteeWithObjectsAndSidA(ptrustee : *mut TRUSTEE_A, pobjsid : *const OBJECTS_AND_SID, pobjectguid : *const ::windows_sys::core::GUID, pinheritedobjectguid : *const ::windows_sys::core::GUID, psid : super::super::Foundation:: PSID) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildTrusteeWithObjectsAndSidW(ptrustee : *mut TRUSTEE_W, pobjsid : *const OBJECTS_AND_SID, pobjectguid : *const ::windows_sys::core::GUID, pinheritedobjectguid : *const ::windows_sys::core::GUID, psid : super::super::Foundation:: PSID) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildTrusteeWithSidA(ptrustee : *mut TRUSTEE_A, psid : super::super::Foundation:: PSID) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildTrusteeWithSidW(ptrustee : *mut TRUSTEE_W, psid : super::super::Foundation:: PSID) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertSecurityDescriptorToStringSecurityDescriptorA(securitydescriptor : super:: PSECURITY_DESCRIPTOR, requestedstringsdrevision : u32, securityinformation : super:: OBJECT_SECURITY_INFORMATION, stringsecuritydescriptor : *mut ::windows_sys::core::PSTR, stringsecuritydescriptorlen : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertSecurityDescriptorToStringSecurityDescriptorW(securitydescriptor : super:: PSECURITY_DESCRIPTOR, requestedstringsdrevision : u32, securityinformation : super:: OBJECT_SECURITY_INFORMATION, stringsecuritydescriptor : *mut ::windows_sys::core::PWSTR, stringsecuritydescriptorlen : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertSidToStringSidA(sid : super::super::Foundation:: PSID, stringsid : *mut ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertSidToStringSidW(sid : super::super::Foundation:: PSID, stringsid : *mut ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertStringSecurityDescriptorToSecurityDescriptorA(stringsecuritydescriptor : ::windows_sys::core::PCSTR, stringsdrevision : u32, securitydescriptor : *mut super:: PSECURITY_DESCRIPTOR, securitydescriptorsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertStringSecurityDescriptorToSecurityDescriptorW(stringsecuritydescriptor : ::windows_sys::core::PCWSTR, stringsdrevision : u32, securitydescriptor : *mut super:: PSECURITY_DESCRIPTOR, securitydescriptorsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertStringSidToSidA(stringsid : ::windows_sys::core::PCSTR, sid : *mut super::super::Foundation:: PSID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertStringSidToSidW(stringsid : ::windows_sys::core::PCWSTR, sid : *mut super::super::Foundation:: PSID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeInheritedFromArray(pinheritarray : *const INHERITED_FROMW, acecnt : u16, pfnarray : *const FN_OBJECT_MGR_FUNCTS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAuditedPermissionsFromAclA(pacl : *const super:: ACL, ptrustee : *const TRUSTEE_A, psuccessfulauditedrights : *mut u32, pfailedauditrights : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAuditedPermissionsFromAclW(pacl : *const super:: ACL, ptrustee : *const TRUSTEE_W, psuccessfulauditedrights : *mut u32, pfailedauditrights : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetEffectiveRightsFromAclA(pacl : *const super:: ACL, ptrustee : *const TRUSTEE_A, paccessrights : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetEffectiveRightsFromAclW(pacl : *const super:: ACL, ptrustee : *const TRUSTEE_W, paccessrights : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetExplicitEntriesFromAclA(pacl : *const super:: ACL, pccountofexplicitentries : *mut u32, plistofexplicitentries : *mut *mut EXPLICIT_ACCESS_A) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetExplicitEntriesFromAclW(pacl : *const super:: ACL, pccountofexplicitentries : *mut u32, plistofexplicitentries : *mut *mut EXPLICIT_ACCESS_W) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetInheritanceSourceA(pobjectname : ::windows_sys::core::PCSTR, objecttype : SE_OBJECT_TYPE, securityinfo : super:: OBJECT_SECURITY_INFORMATION, container : super::super::Foundation:: BOOL, pobjectclassguids : *const *const ::windows_sys::core::GUID, guidcount : u32, pacl : *const super:: ACL, pfnarray : *const FN_OBJECT_MGR_FUNCTS, pgenericmapping : *const super:: GENERIC_MAPPING, pinheritarray : *mut INHERITED_FROMA) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetInheritanceSourceW(pobjectname : ::windows_sys::core::PCWSTR, objecttype : SE_OBJECT_TYPE, securityinfo : super:: OBJECT_SECURITY_INFORMATION, container : super::super::Foundation:: BOOL, pobjectclassguids : *const *const ::windows_sys::core::GUID, guidcount : u32, pacl : *const super:: ACL, pfnarray : *const FN_OBJECT_MGR_FUNCTS, pgenericmapping : *const super:: GENERIC_MAPPING, pinheritarray : *mut INHERITED_FROMW) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("advapi32.dll" "system" fn GetMultipleTrusteeA(ptrustee : *const TRUSTEE_A) -> *mut TRUSTEE_A); +::windows_targets::link!("advapi32.dll" "system" fn GetMultipleTrusteeOperationA(ptrustee : *const TRUSTEE_A) -> MULTIPLE_TRUSTEE_OPERATION); +::windows_targets::link!("advapi32.dll" "system" fn GetMultipleTrusteeOperationW(ptrustee : *const TRUSTEE_W) -> MULTIPLE_TRUSTEE_OPERATION); +::windows_targets::link!("advapi32.dll" "system" fn GetMultipleTrusteeW(ptrustee : *const TRUSTEE_W) -> *mut TRUSTEE_W); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNamedSecurityInfoA(pobjectname : ::windows_sys::core::PCSTR, objecttype : SE_OBJECT_TYPE, securityinfo : super:: OBJECT_SECURITY_INFORMATION, ppsidowner : *mut super::super::Foundation:: PSID, ppsidgroup : *mut super::super::Foundation:: PSID, ppdacl : *mut *mut super:: ACL, ppsacl : *mut *mut super:: ACL, ppsecuritydescriptor : *mut super:: PSECURITY_DESCRIPTOR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNamedSecurityInfoW(pobjectname : ::windows_sys::core::PCWSTR, objecttype : SE_OBJECT_TYPE, securityinfo : super:: OBJECT_SECURITY_INFORMATION, ppsidowner : *mut super::super::Foundation:: PSID, ppsidgroup : *mut super::super::Foundation:: PSID, ppdacl : *mut *mut super:: ACL, ppsacl : *mut *mut super:: ACL, ppsecuritydescriptor : *mut super:: PSECURITY_DESCRIPTOR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSecurityInfo(handle : super::super::Foundation:: HANDLE, objecttype : SE_OBJECT_TYPE, securityinfo : super:: OBJECT_SECURITY_INFORMATION, ppsidowner : *mut super::super::Foundation:: PSID, ppsidgroup : *mut super::super::Foundation:: PSID, ppdacl : *mut *mut super:: ACL, ppsacl : *mut *mut super:: ACL, ppsecuritydescriptor : *mut super:: PSECURITY_DESCRIPTOR) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("advapi32.dll" "system" fn GetTrusteeFormA(ptrustee : *const TRUSTEE_A) -> TRUSTEE_FORM); +::windows_targets::link!("advapi32.dll" "system" fn GetTrusteeFormW(ptrustee : *const TRUSTEE_W) -> TRUSTEE_FORM); +::windows_targets::link!("advapi32.dll" "system" fn GetTrusteeNameA(ptrustee : *const TRUSTEE_A) -> ::windows_sys::core::PSTR); +::windows_targets::link!("advapi32.dll" "system" fn GetTrusteeNameW(ptrustee : *const TRUSTEE_W) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("advapi32.dll" "system" fn GetTrusteeTypeA(ptrustee : *const TRUSTEE_A) -> TRUSTEE_TYPE); +::windows_targets::link!("advapi32.dll" "system" fn GetTrusteeTypeW(ptrustee : *const TRUSTEE_W) -> TRUSTEE_TYPE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupSecurityDescriptorPartsA(ppowner : *mut *mut TRUSTEE_A, ppgroup : *mut *mut TRUSTEE_A, pccountofaccessentries : *mut u32, pplistofaccessentries : *mut *mut EXPLICIT_ACCESS_A, pccountofauditentries : *mut u32, pplistofauditentries : *mut *mut EXPLICIT_ACCESS_A, psd : super:: PSECURITY_DESCRIPTOR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupSecurityDescriptorPartsW(ppowner : *mut *mut TRUSTEE_W, ppgroup : *mut *mut TRUSTEE_W, pccountofaccessentries : *mut u32, pplistofaccessentries : *mut *mut EXPLICIT_ACCESS_W, pccountofauditentries : *mut u32, pplistofauditentries : *mut *mut EXPLICIT_ACCESS_W, psd : super:: PSECURITY_DESCRIPTOR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetEntriesInAclA(ccountofexplicitentries : u32, plistofexplicitentries : *const EXPLICIT_ACCESS_A, oldacl : *const super:: ACL, newacl : *mut *mut super:: ACL) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetEntriesInAclW(ccountofexplicitentries : u32, plistofexplicitentries : *const EXPLICIT_ACCESS_W, oldacl : *const super:: ACL, newacl : *mut *mut super:: ACL) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetNamedSecurityInfoA(pobjectname : ::windows_sys::core::PCSTR, objecttype : SE_OBJECT_TYPE, securityinfo : super:: OBJECT_SECURITY_INFORMATION, psidowner : super::super::Foundation:: PSID, psidgroup : super::super::Foundation:: PSID, pdacl : *const super:: ACL, psacl : *const super:: ACL) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetNamedSecurityInfoW(pobjectname : ::windows_sys::core::PCWSTR, objecttype : SE_OBJECT_TYPE, securityinfo : super:: OBJECT_SECURITY_INFORMATION, psidowner : super::super::Foundation:: PSID, psidgroup : super::super::Foundation:: PSID, pdacl : *const super:: ACL, psacl : *const super:: ACL) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSecurityInfo(handle : super::super::Foundation:: HANDLE, objecttype : SE_OBJECT_TYPE, securityinfo : super:: OBJECT_SECURITY_INFORMATION, psidowner : super::super::Foundation:: PSID, psidgroup : super::super::Foundation:: PSID, pdacl : *const super:: ACL, psacl : *const super:: ACL) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TreeResetNamedSecurityInfoA(pobjectname : ::windows_sys::core::PCSTR, objecttype : SE_OBJECT_TYPE, securityinfo : super:: OBJECT_SECURITY_INFORMATION, powner : super::super::Foundation:: PSID, pgroup : super::super::Foundation:: PSID, pdacl : *const super:: ACL, psacl : *const super:: ACL, keepexplicit : super::super::Foundation:: BOOL, fnprogress : FN_PROGRESS, progressinvokesetting : PROG_INVOKE_SETTING, args : *const ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TreeResetNamedSecurityInfoW(pobjectname : ::windows_sys::core::PCWSTR, objecttype : SE_OBJECT_TYPE, securityinfo : super:: OBJECT_SECURITY_INFORMATION, powner : super::super::Foundation:: PSID, pgroup : super::super::Foundation:: PSID, pdacl : *const super:: ACL, psacl : *const super:: ACL, keepexplicit : super::super::Foundation:: BOOL, fnprogress : FN_PROGRESS, progressinvokesetting : PROG_INVOKE_SETTING, args : *const ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TreeSetNamedSecurityInfoA(pobjectname : ::windows_sys::core::PCSTR, objecttype : SE_OBJECT_TYPE, securityinfo : super:: OBJECT_SECURITY_INFORMATION, powner : super::super::Foundation:: PSID, pgroup : super::super::Foundation:: PSID, pdacl : *const super:: ACL, psacl : *const super:: ACL, dwaction : TREE_SEC_INFO, fnprogress : FN_PROGRESS, progressinvokesetting : PROG_INVOKE_SETTING, args : *const ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TreeSetNamedSecurityInfoW(pobjectname : ::windows_sys::core::PCWSTR, objecttype : SE_OBJECT_TYPE, securityinfo : super:: OBJECT_SECURITY_INFORMATION, powner : super::super::Foundation:: PSID, pgroup : super::super::Foundation:: PSID, pdacl : *const super:: ACL, psacl : *const super:: ACL, dwaction : TREE_SEC_INFO, fnprogress : FN_PROGRESS, progressinvokesetting : PROG_INVOKE_SETTING, args : *const ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +pub type IAzApplication = *mut ::core::ffi::c_void; +pub type IAzApplication2 = *mut ::core::ffi::c_void; +pub type IAzApplication3 = *mut ::core::ffi::c_void; +pub type IAzApplicationGroup = *mut ::core::ffi::c_void; +pub type IAzApplicationGroup2 = *mut ::core::ffi::c_void; +pub type IAzApplicationGroups = *mut ::core::ffi::c_void; +pub type IAzApplications = *mut ::core::ffi::c_void; +pub type IAzAuthorizationStore = *mut ::core::ffi::c_void; +pub type IAzAuthorizationStore2 = *mut ::core::ffi::c_void; +pub type IAzAuthorizationStore3 = *mut ::core::ffi::c_void; +pub type IAzBizRuleContext = *mut ::core::ffi::c_void; +pub type IAzBizRuleInterfaces = *mut ::core::ffi::c_void; +pub type IAzBizRuleParameters = *mut ::core::ffi::c_void; +pub type IAzClientContext = *mut ::core::ffi::c_void; +pub type IAzClientContext2 = *mut ::core::ffi::c_void; +pub type IAzClientContext3 = *mut ::core::ffi::c_void; +pub type IAzNameResolver = *mut ::core::ffi::c_void; +pub type IAzObjectPicker = *mut ::core::ffi::c_void; +pub type IAzOperation = *mut ::core::ffi::c_void; +pub type IAzOperation2 = *mut ::core::ffi::c_void; +pub type IAzOperations = *mut ::core::ffi::c_void; +pub type IAzPrincipalLocator = *mut ::core::ffi::c_void; +pub type IAzRole = *mut ::core::ffi::c_void; +pub type IAzRoleAssignment = *mut ::core::ffi::c_void; +pub type IAzRoleAssignments = *mut ::core::ffi::c_void; +pub type IAzRoleDefinition = *mut ::core::ffi::c_void; +pub type IAzRoleDefinitions = *mut ::core::ffi::c_void; +pub type IAzRoles = *mut ::core::ffi::c_void; +pub type IAzScope = *mut ::core::ffi::c_void; +pub type IAzScope2 = *mut ::core::ffi::c_void; +pub type IAzScopes = *mut ::core::ffi::c_void; +pub type IAzTask = *mut ::core::ffi::c_void; +pub type IAzTask2 = *mut ::core::ffi::c_void; +pub type IAzTasks = *mut ::core::ffi::c_void; +pub const ACCCTRL_DEFAULT_PROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Windows NT Access Provider"); +pub const ACCCTRL_DEFAULT_PROVIDERA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Windows NT Access Provider"); +pub const ACCCTRL_DEFAULT_PROVIDERW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Windows NT Access Provider"); +pub const ACTRL_ACCESS_ALLOWED: ACTRL_ACCESS_ENTRY_ACCESS_FLAGS = 1u32; +pub const ACTRL_ACCESS_DENIED: ACTRL_ACCESS_ENTRY_ACCESS_FLAGS = 2u32; +pub const ACTRL_ACCESS_NO_OPTIONS: u32 = 0u32; +pub const ACTRL_ACCESS_PROTECTED: u32 = 1u32; +pub const ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES: u32 = 1u32; +pub const ACTRL_AUDIT_FAILURE: ACTRL_ACCESS_ENTRY_ACCESS_FLAGS = 8u32; +pub const ACTRL_AUDIT_SUCCESS: ACTRL_ACCESS_ENTRY_ACCESS_FLAGS = 4u32; +pub const ACTRL_CHANGE_ACCESS: u32 = 536870912u32; +pub const ACTRL_CHANGE_OWNER: u32 = 1073741824u32; +pub const ACTRL_DELETE: u32 = 134217728u32; +pub const ACTRL_DIR_CREATE_CHILD: u32 = 4u32; +pub const ACTRL_DIR_CREATE_OBJECT: u32 = 2u32; +pub const ACTRL_DIR_DELETE_CHILD: u32 = 64u32; +pub const ACTRL_DIR_LIST: u32 = 1u32; +pub const ACTRL_DIR_TRAVERSE: u32 = 32u32; +pub const ACTRL_FILE_APPEND: u32 = 4u32; +pub const ACTRL_FILE_CREATE_PIPE: u32 = 512u32; +pub const ACTRL_FILE_EXECUTE: u32 = 32u32; +pub const ACTRL_FILE_READ: u32 = 1u32; +pub const ACTRL_FILE_READ_ATTRIB: u32 = 128u32; +pub const ACTRL_FILE_READ_PROP: u32 = 8u32; +pub const ACTRL_FILE_WRITE: u32 = 2u32; +pub const ACTRL_FILE_WRITE_ATTRIB: u32 = 256u32; +pub const ACTRL_FILE_WRITE_PROP: u32 = 16u32; +pub const ACTRL_KERNEL_ALERT: u32 = 1024u32; +pub const ACTRL_KERNEL_CONTROL: u32 = 512u32; +pub const ACTRL_KERNEL_DIMPERSONATE: u32 = 32768u32; +pub const ACTRL_KERNEL_DUP_HANDLE: u32 = 32u32; +pub const ACTRL_KERNEL_GET_CONTEXT: u32 = 2048u32; +pub const ACTRL_KERNEL_GET_INFO: u32 = 256u32; +pub const ACTRL_KERNEL_IMPERSONATE: u32 = 16384u32; +pub const ACTRL_KERNEL_PROCESS: u32 = 64u32; +pub const ACTRL_KERNEL_SET_CONTEXT: u32 = 4096u32; +pub const ACTRL_KERNEL_SET_INFO: u32 = 128u32; +pub const ACTRL_KERNEL_TERMINATE: u32 = 1u32; +pub const ACTRL_KERNEL_THREAD: u32 = 2u32; +pub const ACTRL_KERNEL_TOKEN: u32 = 8192u32; +pub const ACTRL_KERNEL_VM: u32 = 4u32; +pub const ACTRL_KERNEL_VM_READ: u32 = 8u32; +pub const ACTRL_KERNEL_VM_WRITE: u32 = 16u32; +pub const ACTRL_PERM_1: u32 = 1u32; +pub const ACTRL_PERM_10: u32 = 512u32; +pub const ACTRL_PERM_11: u32 = 1024u32; +pub const ACTRL_PERM_12: u32 = 2048u32; +pub const ACTRL_PERM_13: u32 = 4096u32; +pub const ACTRL_PERM_14: u32 = 8192u32; +pub const ACTRL_PERM_15: u32 = 16384u32; +pub const ACTRL_PERM_16: u32 = 32768u32; +pub const ACTRL_PERM_17: u32 = 65536u32; +pub const ACTRL_PERM_18: u32 = 131072u32; +pub const ACTRL_PERM_19: u32 = 262144u32; +pub const ACTRL_PERM_2: u32 = 2u32; +pub const ACTRL_PERM_20: u32 = 524288u32; +pub const ACTRL_PERM_3: u32 = 4u32; +pub const ACTRL_PERM_4: u32 = 8u32; +pub const ACTRL_PERM_5: u32 = 16u32; +pub const ACTRL_PERM_6: u32 = 32u32; +pub const ACTRL_PERM_7: u32 = 64u32; +pub const ACTRL_PERM_8: u32 = 128u32; +pub const ACTRL_PERM_9: u32 = 256u32; +pub const ACTRL_PRINT_JADMIN: u32 = 16u32; +pub const ACTRL_PRINT_PADMIN: u32 = 4u32; +pub const ACTRL_PRINT_PUSE: u32 = 8u32; +pub const ACTRL_PRINT_SADMIN: u32 = 1u32; +pub const ACTRL_PRINT_SLIST: u32 = 2u32; +pub const ACTRL_READ_CONTROL: u32 = 268435456u32; +pub const ACTRL_REG_CREATE_CHILD: u32 = 4u32; +pub const ACTRL_REG_LINK: u32 = 32u32; +pub const ACTRL_REG_LIST: u32 = 8u32; +pub const ACTRL_REG_NOTIFY: u32 = 16u32; +pub const ACTRL_REG_QUERY: u32 = 1u32; +pub const ACTRL_REG_SET: u32 = 2u32; +pub const ACTRL_RESERVED: u32 = 0u32; +pub const ACTRL_STD_RIGHTS_ALL: u32 = 4160749568u32; +pub const ACTRL_SVC_GET_INFO: u32 = 1u32; +pub const ACTRL_SVC_INTERROGATE: u32 = 128u32; +pub const ACTRL_SVC_LIST: u32 = 8u32; +pub const ACTRL_SVC_PAUSE: u32 = 64u32; +pub const ACTRL_SVC_SET_INFO: u32 = 2u32; +pub const ACTRL_SVC_START: u32 = 16u32; +pub const ACTRL_SVC_STATUS: u32 = 4u32; +pub const ACTRL_SVC_STOP: u32 = 32u32; +pub const ACTRL_SVC_UCONTROL: u32 = 256u32; +pub const ACTRL_SYNCHRONIZE: u32 = 2147483648u32; +pub const ACTRL_SYSTEM_ACCESS: u32 = 67108864u32; +pub const ACTRL_WIN_CLIPBRD: u32 = 1u32; +pub const ACTRL_WIN_CREATE: u32 = 4u32; +pub const ACTRL_WIN_EXIT: u32 = 256u32; +pub const ACTRL_WIN_GLOBAL_ATOMS: u32 = 2u32; +pub const ACTRL_WIN_LIST: u32 = 16u32; +pub const ACTRL_WIN_LIST_DESK: u32 = 8u32; +pub const ACTRL_WIN_READ_ATTRIBS: u32 = 32u32; +pub const ACTRL_WIN_SCREEN: u32 = 128u32; +pub const ACTRL_WIN_WRITE_ATTRIBS: u32 = 64u32; +pub const APF_AuditFailure: u32 = 0u32; +pub const APF_AuditSuccess: u32 = 1u32; +pub const APF_ValidFlags: u32 = 1u32; +pub const APT_Guid: AUDIT_PARAM_TYPE = 9i32; +pub const APT_Int64: AUDIT_PARAM_TYPE = 11i32; +pub const APT_IpAddress: AUDIT_PARAM_TYPE = 12i32; +pub const APT_LogonId: AUDIT_PARAM_TYPE = 6i32; +pub const APT_LogonIdWithSid: AUDIT_PARAM_TYPE = 13i32; +pub const APT_Luid: AUDIT_PARAM_TYPE = 8i32; +pub const APT_None: AUDIT_PARAM_TYPE = 1i32; +pub const APT_ObjectTypeList: AUDIT_PARAM_TYPE = 7i32; +pub const APT_Pointer: AUDIT_PARAM_TYPE = 4i32; +pub const APT_Sid: AUDIT_PARAM_TYPE = 5i32; +pub const APT_String: AUDIT_PARAM_TYPE = 2i32; +pub const APT_Time: AUDIT_PARAM_TYPE = 10i32; +pub const APT_Ulong: AUDIT_PARAM_TYPE = 3i32; +pub const AP_ParamTypeBits: u32 = 8u32; +pub const AP_ParamTypeMask: i32 = 255i32; +pub const AUDIT_TYPE_LEGACY: u32 = 1u32; +pub const AUDIT_TYPE_WMI: u32 = 2u32; +pub const AUTHZP_WPD_EVENT: u32 = 16u32; +pub const AUTHZ_ACCESS_CHECK_NO_DEEP_COPY_SD: AUTHZ_ACCESS_CHECK_FLAGS = 1u32; +pub const AUTHZ_ALLOW_MULTIPLE_SOURCE_INSTANCES: u32 = 1u32; +pub const AUTHZ_AUDIT_INSTANCE_INFORMATION: u32 = 2u32; +pub const AUTHZ_COMPUTE_PRIVILEGES: u32 = 8u32; +pub const AUTHZ_FLAG_ALLOW_MULTIPLE_SOURCE_INSTANCES: u32 = 1u32; +pub const AUTHZ_GENERATE_FAILURE_AUDIT: AUTHZ_GENERATE_RESULTS = 2u32; +pub const AUTHZ_GENERATE_SUCCESS_AUDIT: AUTHZ_GENERATE_RESULTS = 1u32; +pub const AUTHZ_INIT_INFO_VERSION_V1: u32 = 1u32; +pub const AUTHZ_MIGRATED_LEGACY_PUBLISHER: u32 = 2u32; +pub const AUTHZ_NO_ALLOC_STRINGS: AUTHZ_INITIALIZE_OBJECT_ACCESS_AUDIT_EVENT_FLAGS = 4u32; +pub const AUTHZ_NO_FAILURE_AUDIT: AUTHZ_INITIALIZE_OBJECT_ACCESS_AUDIT_EVENT_FLAGS = 2u32; +pub const AUTHZ_NO_SUCCESS_AUDIT: AUTHZ_INITIALIZE_OBJECT_ACCESS_AUDIT_EVENT_FLAGS = 1u32; +pub const AUTHZ_REQUIRE_S4U_LOGON: u32 = 4u32; +pub const AUTHZ_RM_FLAG_INITIALIZE_UNDER_IMPERSONATION: AUTHZ_RESOURCE_MANAGER_FLAGS = 2u32; +pub const AUTHZ_RM_FLAG_NO_AUDIT: AUTHZ_RESOURCE_MANAGER_FLAGS = 1u32; +pub const AUTHZ_RM_FLAG_NO_CENTRAL_ACCESS_POLICIES: AUTHZ_RESOURCE_MANAGER_FLAGS = 4u32; +pub const AUTHZ_RPC_INIT_INFO_CLIENT_VERSION_V1: u32 = 1u32; +pub const AUTHZ_SECURITY_ATTRIBUTES_INFORMATION_VERSION: u32 = 1u32; +pub const AUTHZ_SECURITY_ATTRIBUTES_INFORMATION_VERSION_V1: u32 = 1u32; +pub const AUTHZ_SECURITY_ATTRIBUTE_NON_INHERITABLE: AUTHZ_SECURITY_ATTRIBUTE_FLAGS = 1u32; +pub const AUTHZ_SECURITY_ATTRIBUTE_OPERATION_ADD: AUTHZ_SECURITY_ATTRIBUTE_OPERATION = 2i32; +pub const AUTHZ_SECURITY_ATTRIBUTE_OPERATION_DELETE: AUTHZ_SECURITY_ATTRIBUTE_OPERATION = 3i32; +pub const AUTHZ_SECURITY_ATTRIBUTE_OPERATION_NONE: AUTHZ_SECURITY_ATTRIBUTE_OPERATION = 0i32; +pub const AUTHZ_SECURITY_ATTRIBUTE_OPERATION_REPLACE: AUTHZ_SECURITY_ATTRIBUTE_OPERATION = 4i32; +pub const AUTHZ_SECURITY_ATTRIBUTE_OPERATION_REPLACE_ALL: AUTHZ_SECURITY_ATTRIBUTE_OPERATION = 1i32; +pub const AUTHZ_SECURITY_ATTRIBUTE_TYPE_BOOLEAN: u32 = 6u32; +pub const AUTHZ_SECURITY_ATTRIBUTE_TYPE_FQBN: u32 = 4u32; +pub const AUTHZ_SECURITY_ATTRIBUTE_TYPE_INT64: u32 = 1u32; +pub const AUTHZ_SECURITY_ATTRIBUTE_TYPE_INVALID: u32 = 0u32; +pub const AUTHZ_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING: u32 = 16u32; +pub const AUTHZ_SECURITY_ATTRIBUTE_TYPE_SID: u32 = 5u32; +pub const AUTHZ_SECURITY_ATTRIBUTE_TYPE_STRING: u32 = 3u32; +pub const AUTHZ_SECURITY_ATTRIBUTE_TYPE_UINT64: u32 = 2u32; +pub const AUTHZ_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE: AUTHZ_SECURITY_ATTRIBUTE_FLAGS = 2u32; +pub const AUTHZ_SID_OPERATION_ADD: AUTHZ_SID_OPERATION = 2i32; +pub const AUTHZ_SID_OPERATION_DELETE: AUTHZ_SID_OPERATION = 3i32; +pub const AUTHZ_SID_OPERATION_NONE: AUTHZ_SID_OPERATION = 0i32; +pub const AUTHZ_SID_OPERATION_REPLACE: AUTHZ_SID_OPERATION = 4i32; +pub const AUTHZ_SID_OPERATION_REPLACE_ALL: AUTHZ_SID_OPERATION = 1i32; +pub const AUTHZ_SKIP_TOKEN_GROUPS: u32 = 2u32; +pub const AUTHZ_WPD_CATEGORY_FLAG: u32 = 16u32; +pub const AZ_AZSTORE_DEFAULT_DOMAIN_TIMEOUT: AZ_PROP_CONSTANTS = 15000i32; +pub const AZ_AZSTORE_DEFAULT_MAX_SCRIPT_ENGINES: AZ_PROP_CONSTANTS = 120i32; +pub const AZ_AZSTORE_DEFAULT_SCRIPT_ENGINE_TIMEOUT: AZ_PROP_CONSTANTS = 45000i32; +pub const AZ_AZSTORE_FLAG_AUDIT_IS_CRITICAL: AZ_PROP_CONSTANTS = 8i32; +pub const AZ_AZSTORE_FLAG_BATCH_UPDATE: AZ_PROP_CONSTANTS = 4i32; +pub const AZ_AZSTORE_FLAG_CREATE: AZ_PROP_CONSTANTS = 1i32; +pub const AZ_AZSTORE_FLAG_MANAGE_ONLY_PASSIVE_SUBMIT: AZ_PROP_CONSTANTS = 32768i32; +pub const AZ_AZSTORE_FLAG_MANAGE_STORE_ONLY: AZ_PROP_CONSTANTS = 2i32; +pub const AZ_AZSTORE_FORCE_APPLICATION_CLOSE: AZ_PROP_CONSTANTS = 16i32; +pub const AZ_AZSTORE_MIN_DOMAIN_TIMEOUT: AZ_PROP_CONSTANTS = 500i32; +pub const AZ_AZSTORE_MIN_SCRIPT_ENGINE_TIMEOUT: AZ_PROP_CONSTANTS = 5000i32; +pub const AZ_AZSTORE_NT6_FUNCTION_LEVEL: AZ_PROP_CONSTANTS = 32i32; +pub const AZ_CLIENT_CONTEXT_GET_GROUPS_STORE_LEVEL_ONLY: AZ_PROP_CONSTANTS = 2i32; +pub const AZ_CLIENT_CONTEXT_GET_GROUP_RECURSIVE: AZ_PROP_CONSTANTS = 2i32; +pub const AZ_CLIENT_CONTEXT_SKIP_GROUP: AZ_PROP_CONSTANTS = 1i32; +pub const AZ_CLIENT_CONTEXT_SKIP_LDAP_QUERY: AZ_PROP_CONSTANTS = 1i32; +pub const AZ_GROUPTYPE_BASIC: AZ_PROP_CONSTANTS = 2i32; +pub const AZ_GROUPTYPE_BIZRULE: AZ_PROP_CONSTANTS = 3i32; +pub const AZ_GROUPTYPE_LDAP_QUERY: AZ_PROP_CONSTANTS = 1i32; +pub const AZ_MAX_APPLICATION_DATA_LENGTH: AZ_PROP_CONSTANTS = 4096i32; +pub const AZ_MAX_APPLICATION_NAME_LENGTH: AZ_PROP_CONSTANTS = 512i32; +pub const AZ_MAX_APPLICATION_VERSION_LENGTH: AZ_PROP_CONSTANTS = 512i32; +pub const AZ_MAX_BIZRULE_STRING: AZ_PROP_CONSTANTS = 65536i32; +pub const AZ_MAX_DESCRIPTION_LENGTH: AZ_PROP_CONSTANTS = 1024i32; +pub const AZ_MAX_GROUP_BIZRULE_IMPORTED_PATH_LENGTH: AZ_PROP_CONSTANTS = 512i32; +pub const AZ_MAX_GROUP_BIZRULE_LANGUAGE_LENGTH: AZ_PROP_CONSTANTS = 64i32; +pub const AZ_MAX_GROUP_BIZRULE_LENGTH: AZ_PROP_CONSTANTS = 65536i32; +pub const AZ_MAX_GROUP_LDAP_QUERY_LENGTH: AZ_PROP_CONSTANTS = 4096i32; +pub const AZ_MAX_GROUP_NAME_LENGTH: AZ_PROP_CONSTANTS = 64i32; +pub const AZ_MAX_NAME_LENGTH: AZ_PROP_CONSTANTS = 65536i32; +pub const AZ_MAX_OPERATION_NAME_LENGTH: AZ_PROP_CONSTANTS = 64i32; +pub const AZ_MAX_POLICY_URL_LENGTH: AZ_PROP_CONSTANTS = 65536i32; +pub const AZ_MAX_ROLE_NAME_LENGTH: AZ_PROP_CONSTANTS = 64i32; +pub const AZ_MAX_SCOPE_NAME_LENGTH: AZ_PROP_CONSTANTS = 65536i32; +pub const AZ_MAX_TASK_BIZRULE_IMPORTED_PATH_LENGTH: AZ_PROP_CONSTANTS = 512i32; +pub const AZ_MAX_TASK_BIZRULE_LANGUAGE_LENGTH: AZ_PROP_CONSTANTS = 64i32; +pub const AZ_MAX_TASK_BIZRULE_LENGTH: AZ_PROP_CONSTANTS = 65536i32; +pub const AZ_MAX_TASK_NAME_LENGTH: AZ_PROP_CONSTANTS = 64i32; +pub const AZ_PROP_APPLICATION_AUTHZ_INTERFACE_CLSID: AZ_PROP_CONSTANTS = 800i32; +pub const AZ_PROP_APPLICATION_BIZRULE_ENABLED: AZ_PROP_CONSTANTS = 803i32; +pub const AZ_PROP_APPLICATION_DATA: AZ_PROP_CONSTANTS = 4i32; +pub const AZ_PROP_APPLICATION_NAME: AZ_PROP_CONSTANTS = 802i32; +pub const AZ_PROP_APPLICATION_VERSION: AZ_PROP_CONSTANTS = 801i32; +pub const AZ_PROP_APPLY_STORE_SACL: AZ_PROP_CONSTANTS = 900i32; +pub const AZ_PROP_AZSTORE_DOMAIN_TIMEOUT: AZ_PROP_CONSTANTS = 100i32; +pub const AZ_PROP_AZSTORE_MAJOR_VERSION: AZ_PROP_CONSTANTS = 103i32; +pub const AZ_PROP_AZSTORE_MAX_SCRIPT_ENGINES: AZ_PROP_CONSTANTS = 102i32; +pub const AZ_PROP_AZSTORE_MINOR_VERSION: AZ_PROP_CONSTANTS = 104i32; +pub const AZ_PROP_AZSTORE_SCRIPT_ENGINE_TIMEOUT: AZ_PROP_CONSTANTS = 101i32; +pub const AZ_PROP_AZSTORE_TARGET_MACHINE: AZ_PROP_CONSTANTS = 105i32; +pub const AZ_PROP_AZTORE_IS_ADAM_INSTANCE: AZ_PROP_CONSTANTS = 106i32; +pub const AZ_PROP_CHILD_CREATE: AZ_PROP_CONSTANTS = 5i32; +pub const AZ_PROP_CLIENT_CONTEXT_LDAP_QUERY_DN: AZ_PROP_CONSTANTS = 709i32; +pub const AZ_PROP_CLIENT_CONTEXT_ROLE_FOR_ACCESS_CHECK: AZ_PROP_CONSTANTS = 708i32; +pub const AZ_PROP_CLIENT_CONTEXT_USER_CANONICAL: AZ_PROP_CONSTANTS = 704i32; +pub const AZ_PROP_CLIENT_CONTEXT_USER_DISPLAY: AZ_PROP_CONSTANTS = 702i32; +pub const AZ_PROP_CLIENT_CONTEXT_USER_DN: AZ_PROP_CONSTANTS = 700i32; +pub const AZ_PROP_CLIENT_CONTEXT_USER_DNS_SAM_COMPAT: AZ_PROP_CONSTANTS = 707i32; +pub const AZ_PROP_CLIENT_CONTEXT_USER_GUID: AZ_PROP_CONSTANTS = 703i32; +pub const AZ_PROP_CLIENT_CONTEXT_USER_SAM_COMPAT: AZ_PROP_CONSTANTS = 701i32; +pub const AZ_PROP_CLIENT_CONTEXT_USER_UPN: AZ_PROP_CONSTANTS = 705i32; +pub const AZ_PROP_DELEGATED_POLICY_USERS: AZ_PROP_CONSTANTS = 904i32; +pub const AZ_PROP_DELEGATED_POLICY_USERS_NAME: AZ_PROP_CONSTANTS = 907i32; +pub const AZ_PROP_DESCRIPTION: AZ_PROP_CONSTANTS = 2i32; +pub const AZ_PROP_GENERATE_AUDITS: AZ_PROP_CONSTANTS = 901i32; +pub const AZ_PROP_GROUP_APP_MEMBERS: AZ_PROP_CONSTANTS = 401i32; +pub const AZ_PROP_GROUP_APP_NON_MEMBERS: AZ_PROP_CONSTANTS = 402i32; +pub const AZ_PROP_GROUP_BIZRULE: AZ_PROP_CONSTANTS = 408i32; +pub const AZ_PROP_GROUP_BIZRULE_IMPORTED_PATH: AZ_PROP_CONSTANTS = 410i32; +pub const AZ_PROP_GROUP_BIZRULE_LANGUAGE: AZ_PROP_CONSTANTS = 409i32; +pub const AZ_PROP_GROUP_LDAP_QUERY: AZ_PROP_CONSTANTS = 403i32; +pub const AZ_PROP_GROUP_MEMBERS: AZ_PROP_CONSTANTS = 404i32; +pub const AZ_PROP_GROUP_MEMBERS_NAME: AZ_PROP_CONSTANTS = 406i32; +pub const AZ_PROP_GROUP_NON_MEMBERS: AZ_PROP_CONSTANTS = 405i32; +pub const AZ_PROP_GROUP_NON_MEMBERS_NAME: AZ_PROP_CONSTANTS = 407i32; +pub const AZ_PROP_GROUP_TYPE: AZ_PROP_CONSTANTS = 400i32; +pub const AZ_PROP_NAME: AZ_PROP_CONSTANTS = 1i32; +pub const AZ_PROP_OPERATION_ID: AZ_PROP_CONSTANTS = 200i32; +pub const AZ_PROP_POLICY_ADMINS: AZ_PROP_CONSTANTS = 902i32; +pub const AZ_PROP_POLICY_ADMINS_NAME: AZ_PROP_CONSTANTS = 905i32; +pub const AZ_PROP_POLICY_READERS: AZ_PROP_CONSTANTS = 903i32; +pub const AZ_PROP_POLICY_READERS_NAME: AZ_PROP_CONSTANTS = 906i32; +pub const AZ_PROP_ROLE_APP_MEMBERS: AZ_PROP_CONSTANTS = 500i32; +pub const AZ_PROP_ROLE_MEMBERS: AZ_PROP_CONSTANTS = 501i32; +pub const AZ_PROP_ROLE_MEMBERS_NAME: AZ_PROP_CONSTANTS = 505i32; +pub const AZ_PROP_ROLE_OPERATIONS: AZ_PROP_CONSTANTS = 502i32; +pub const AZ_PROP_ROLE_TASKS: AZ_PROP_CONSTANTS = 504i32; +pub const AZ_PROP_SCOPE_BIZRULES_WRITABLE: AZ_PROP_CONSTANTS = 600i32; +pub const AZ_PROP_SCOPE_CAN_BE_DELEGATED: AZ_PROP_CONSTANTS = 601i32; +pub const AZ_PROP_TASK_BIZRULE: AZ_PROP_CONSTANTS = 301i32; +pub const AZ_PROP_TASK_BIZRULE_IMPORTED_PATH: AZ_PROP_CONSTANTS = 304i32; +pub const AZ_PROP_TASK_BIZRULE_LANGUAGE: AZ_PROP_CONSTANTS = 302i32; +pub const AZ_PROP_TASK_IS_ROLE_DEFINITION: AZ_PROP_CONSTANTS = 305i32; +pub const AZ_PROP_TASK_OPERATIONS: AZ_PROP_CONSTANTS = 300i32; +pub const AZ_PROP_TASK_TASKS: AZ_PROP_CONSTANTS = 303i32; +pub const AZ_PROP_WRITABLE: AZ_PROP_CONSTANTS = 3i32; +pub const AZ_SUBMIT_FLAG_ABORT: AZ_PROP_CONSTANTS = 1i32; +pub const AZ_SUBMIT_FLAG_FLUSH: AZ_PROP_CONSTANTS = 2i32; +pub const AuthzAuditEventInfoAdditionalInfo: AUTHZ_AUDIT_EVENT_INFORMATION_CLASS = 5i32; +pub const AuthzAuditEventInfoFlags: AUTHZ_AUDIT_EVENT_INFORMATION_CLASS = 1i32; +pub const AuthzAuditEventInfoObjectName: AUTHZ_AUDIT_EVENT_INFORMATION_CLASS = 4i32; +pub const AuthzAuditEventInfoObjectType: AUTHZ_AUDIT_EVENT_INFORMATION_CLASS = 3i32; +pub const AuthzAuditEventInfoOperationType: AUTHZ_AUDIT_EVENT_INFORMATION_CLASS = 2i32; +pub const AuthzContextInfoAll: AUTHZ_CONTEXT_INFORMATION_CLASS = 9i32; +pub const AuthzContextInfoAppContainerSid: AUTHZ_CONTEXT_INFORMATION_CLASS = 15i32; +pub const AuthzContextInfoAuthenticationId: AUTHZ_CONTEXT_INFORMATION_CLASS = 10i32; +pub const AuthzContextInfoCapabilitySids: AUTHZ_CONTEXT_INFORMATION_CLASS = 16i32; +pub const AuthzContextInfoDeviceClaims: AUTHZ_CONTEXT_INFORMATION_CLASS = 14i32; +pub const AuthzContextInfoDeviceSids: AUTHZ_CONTEXT_INFORMATION_CLASS = 12i32; +pub const AuthzContextInfoExpirationTime: AUTHZ_CONTEXT_INFORMATION_CLASS = 5i32; +pub const AuthzContextInfoGroupsSids: AUTHZ_CONTEXT_INFORMATION_CLASS = 2i32; +pub const AuthzContextInfoIdentifier: AUTHZ_CONTEXT_INFORMATION_CLASS = 7i32; +pub const AuthzContextInfoPrivileges: AUTHZ_CONTEXT_INFORMATION_CLASS = 4i32; +pub const AuthzContextInfoRestrictedSids: AUTHZ_CONTEXT_INFORMATION_CLASS = 3i32; +pub const AuthzContextInfoSecurityAttributes: AUTHZ_CONTEXT_INFORMATION_CLASS = 11i32; +pub const AuthzContextInfoServerContext: AUTHZ_CONTEXT_INFORMATION_CLASS = 6i32; +pub const AuthzContextInfoSource: AUTHZ_CONTEXT_INFORMATION_CLASS = 8i32; +pub const AuthzContextInfoUserClaims: AUTHZ_CONTEXT_INFORMATION_CLASS = 13i32; +pub const AuthzContextInfoUserSid: AUTHZ_CONTEXT_INFORMATION_CLASS = 1i32; +pub const AzAuthorizationStore: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb2bcff59_a757_4b0b_a1bc_ea69981da69e); +pub const AzBizRuleContext: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c2dc96f_8d51_434b_b33c_379bccae77c3); +pub const AzPrincipalLocator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x483afb5d_70df_4e16_abdc_a1de4d015a3e); +pub const DENY_ACCESS: ACCESS_MODE = 3i32; +pub const GRANT_ACCESS: ACCESS_MODE = 1i32; +pub const INHERITED_ACCESS_ENTRY: u32 = 16u32; +pub const INHERITED_GRANDPARENT: u32 = 536870912u32; +pub const INHERITED_PARENT: u32 = 268435456u32; +pub const NOT_USED_ACCESS: ACCESS_MODE = 0i32; +pub const NO_MULTIPLE_TRUSTEE: MULTIPLE_TRUSTEE_OPERATION = 0i32; +pub const OLESCRIPT_E_SYNTAX: ::windows_sys::core::HRESULT = -2147352319i32; +pub const ProgressCancelOperation: PROG_INVOKE_SETTING = 4i32; +pub const ProgressInvokeEveryObject: PROG_INVOKE_SETTING = 2i32; +pub const ProgressInvokeNever: PROG_INVOKE_SETTING = 1i32; +pub const ProgressInvokeOnError: PROG_INVOKE_SETTING = 3i32; +pub const ProgressInvokePrePostError: PROG_INVOKE_SETTING = 6i32; +pub const ProgressRetryOperation: PROG_INVOKE_SETTING = 5i32; +pub const REVOKE_ACCESS: ACCESS_MODE = 4i32; +pub const SDDL_ACCESS_ALLOWED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("A"); +pub const SDDL_ACCESS_CONTROL_ASSISTANCE_OPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AA"); +pub const SDDL_ACCESS_DENIED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("D"); +pub const SDDL_ACCESS_FILTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FL"); +pub const SDDL_ACCOUNT_OPERATORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AO"); +pub const SDDL_ACE_BEGIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("("); +pub const SDDL_ACE_COND_ATTRIBUTE_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("@"); +pub const SDDL_ACE_COND_BEGIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("("); +pub const SDDL_ACE_COND_BLOB_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("#"); +pub const SDDL_ACE_COND_DEVICE_ATTRIBUTE_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("@DEVICE."); +pub const SDDL_ACE_COND_END: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(")"); +pub const SDDL_ACE_COND_RESOURCE_ATTRIBUTE_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("@RESOURCE."); +pub const SDDL_ACE_COND_SID_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SID"); +pub const SDDL_ACE_COND_TOKEN_ATTRIBUTE_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("@TOKEN."); +pub const SDDL_ACE_COND_USER_ATTRIBUTE_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("@USER."); +pub const SDDL_ACE_END: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(")"); +pub const SDDL_ALARM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AL"); +pub const SDDL_ALIAS_PREW2KCOMPACC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RU"); +pub const SDDL_ALIAS_SIZE: u32 = 2u32; +pub const SDDL_ALL_APP_PACKAGES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AC"); +pub const SDDL_ANONYMOUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AN"); +pub const SDDL_AUDIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AU"); +pub const SDDL_AUDIT_FAILURE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FA"); +pub const SDDL_AUDIT_SUCCESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SA"); +pub const SDDL_AUTHENTICATED_USERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AU"); +pub const SDDL_AUTHORITY_ASSERTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AS"); +pub const SDDL_AUTO_INHERITED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AI"); +pub const SDDL_AUTO_INHERIT_REQ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AR"); +pub const SDDL_BACKUP_OPERATORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BO"); +pub const SDDL_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TX"); +pub const SDDL_BOOLEAN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TB"); +pub const SDDL_BUILTIN_ADMINISTRATORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BA"); +pub const SDDL_BUILTIN_GUESTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BG"); +pub const SDDL_BUILTIN_USERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BU"); +pub const SDDL_CALLBACK_ACCESS_ALLOWED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("XA"); +pub const SDDL_CALLBACK_ACCESS_DENIED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("XD"); +pub const SDDL_CALLBACK_AUDIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("XU"); +pub const SDDL_CALLBACK_OBJECT_ACCESS_ALLOWED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ZA"); +pub const SDDL_CERTSVC_DCOM_ACCESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CD"); +pub const SDDL_CERT_SERV_ADMINISTRATORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CA"); +pub const SDDL_CLONEABLE_CONTROLLERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CN"); +pub const SDDL_CONTAINER_INHERIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CI"); +pub const SDDL_CONTROL_ACCESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CR"); +pub const SDDL_CREATE_CHILD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CC"); +pub const SDDL_CREATOR_GROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CG"); +pub const SDDL_CREATOR_OWNER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CO"); +pub const SDDL_CRITICAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CR"); +pub const SDDL_CRYPTO_OPERATORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CY"); +pub const SDDL_DACL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("D"); +pub const SDDL_DELETE_CHILD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DC"); +pub const SDDL_DELETE_TREE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DT"); +pub const SDDL_DELIMINATOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(":"); +pub const SDDL_DOMAIN_ADMINISTRATORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DA"); +pub const SDDL_DOMAIN_COMPUTERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DC"); +pub const SDDL_DOMAIN_DOMAIN_CONTROLLERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DD"); +pub const SDDL_DOMAIN_GUESTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DG"); +pub const SDDL_DOMAIN_USERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DU"); +pub const SDDL_ENTERPRISE_ADMINS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EA"); +pub const SDDL_ENTERPRISE_DOMAIN_CONTROLLERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ED"); +pub const SDDL_ENTERPRISE_KEY_ADMINS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EK"); +pub const SDDL_ENTERPRISE_RO_DCs: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RO"); +pub const SDDL_EVENT_LOG_READERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ER"); +pub const SDDL_EVERYONE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WD"); +pub const SDDL_FILE_ALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FA"); +pub const SDDL_FILE_EXECUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FX"); +pub const SDDL_FILE_READ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FR"); +pub const SDDL_FILE_WRITE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FW"); +pub const SDDL_GENERIC_ALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GA"); +pub const SDDL_GENERIC_EXECUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GX"); +pub const SDDL_GENERIC_READ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GR"); +pub const SDDL_GENERIC_WRITE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GW"); +pub const SDDL_GROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("G"); +pub const SDDL_GROUP_POLICY_ADMINS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PA"); +pub const SDDL_HYPER_V_ADMINS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HA"); +pub const SDDL_IIS_USERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IS"); +pub const SDDL_INHERITED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ID"); +pub const SDDL_INHERIT_ONLY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IO"); +pub const SDDL_INT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TI"); +pub const SDDL_INTERACTIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IU"); +pub const SDDL_KEY_ADMINS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KA"); +pub const SDDL_KEY_ALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KA"); +pub const SDDL_KEY_EXECUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KX"); +pub const SDDL_KEY_READ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KR"); +pub const SDDL_KEY_WRITE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KW"); +pub const SDDL_LIST_CHILDREN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LC"); +pub const SDDL_LIST_OBJECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LO"); +pub const SDDL_LOCAL_ADMIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LA"); +pub const SDDL_LOCAL_GUEST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LG"); +pub const SDDL_LOCAL_SERVICE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LS"); +pub const SDDL_LOCAL_SYSTEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SY"); +pub const SDDL_MANDATORY_LABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ML"); +pub const SDDL_ML_HIGH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HI"); +pub const SDDL_ML_LOW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LW"); +pub const SDDL_ML_MEDIUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ME"); +pub const SDDL_ML_MEDIUM_PLUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MP"); +pub const SDDL_ML_SYSTEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SI"); +pub const SDDL_NETWORK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NU"); +pub const SDDL_NETWORK_CONFIGURATION_OPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NO"); +pub const SDDL_NETWORK_SERVICE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NS"); +pub const SDDL_NO_EXECUTE_UP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NX"); +pub const SDDL_NO_PROPAGATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NP"); +pub const SDDL_NO_READ_UP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NR"); +pub const SDDL_NO_WRITE_UP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NW"); +pub const SDDL_NULL_ACL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NO_ACCESS_CONTROL"); +pub const SDDL_OBJECT_ACCESS_ALLOWED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OA"); +pub const SDDL_OBJECT_ACCESS_DENIED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OD"); +pub const SDDL_OBJECT_ALARM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OL"); +pub const SDDL_OBJECT_AUDIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OU"); +pub const SDDL_OBJECT_INHERIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OI"); +pub const SDDL_OWNER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("O"); +pub const SDDL_OWNER_RIGHTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OW"); +pub const SDDL_PERFLOG_USERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LU"); +pub const SDDL_PERFMON_USERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MU"); +pub const SDDL_PERSONAL_SELF: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PS"); +pub const SDDL_POWER_USERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PU"); +pub const SDDL_PRINTER_OPERATORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PO"); +pub const SDDL_PROCESS_TRUST_LABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TL"); +pub const SDDL_PROTECTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("P"); +pub const SDDL_PROTECTED_USERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AP"); +pub const SDDL_RAS_SERVERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RS"); +pub const SDDL_RDS_ENDPOINT_SERVERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ES"); +pub const SDDL_RDS_MANAGEMENT_SERVERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MS"); +pub const SDDL_RDS_REMOTE_ACCESS_SERVERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RA"); +pub const SDDL_READ_CONTROL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RC"); +pub const SDDL_READ_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RP"); +pub const SDDL_REMOTE_DESKTOP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RD"); +pub const SDDL_REMOTE_MANAGEMENT_USERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RM"); +pub const SDDL_REPLICATOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RE"); +pub const SDDL_RESOURCE_ATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RA"); +pub const SDDL_RESTRICTED_CODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RC"); +pub const SDDL_REVISION: u32 = 1u32; +pub const SDDL_REVISION_1: u32 = 1u32; +pub const SDDL_SACL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("S"); +pub const SDDL_SCHEMA_ADMINISTRATORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SA"); +pub const SDDL_SCOPED_POLICY_ID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SP"); +pub const SDDL_SELF_WRITE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SW"); +pub const SDDL_SEPERATOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(";"); +pub const SDDL_SERVER_OPERATORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SO"); +pub const SDDL_SERVICE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SU"); +pub const SDDL_SERVICE_ASSERTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SS"); +pub const SDDL_SID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TD"); +pub const SDDL_SPACE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(" "); +pub const SDDL_STANDARD_DELETE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SD"); +pub const SDDL_TRUST_PROTECTED_FILTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TP"); +pub const SDDL_UINT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TU"); +pub const SDDL_USER_MODE_DRIVERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UD"); +pub const SDDL_WRITE_DAC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WD"); +pub const SDDL_WRITE_OWNER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WO"); +pub const SDDL_WRITE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WP"); +pub const SDDL_WRITE_RESTRICTED_CODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WR"); +pub const SDDL_WSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TS"); +pub const SET_ACCESS: ACCESS_MODE = 2i32; +pub const SET_AUDIT_FAILURE: ACCESS_MODE = 6i32; +pub const SET_AUDIT_SUCCESS: ACCESS_MODE = 5i32; +pub const SE_DS_OBJECT: SE_OBJECT_TYPE = 8i32; +pub const SE_DS_OBJECT_ALL: SE_OBJECT_TYPE = 9i32; +pub const SE_FILE_OBJECT: SE_OBJECT_TYPE = 1i32; +pub const SE_KERNEL_OBJECT: SE_OBJECT_TYPE = 6i32; +pub const SE_LMSHARE: SE_OBJECT_TYPE = 5i32; +pub const SE_PRINTER: SE_OBJECT_TYPE = 3i32; +pub const SE_PROVIDER_DEFINED_OBJECT: SE_OBJECT_TYPE = 10i32; +pub const SE_REGISTRY_KEY: SE_OBJECT_TYPE = 4i32; +pub const SE_REGISTRY_WOW64_32KEY: SE_OBJECT_TYPE = 12i32; +pub const SE_REGISTRY_WOW64_64KEY: SE_OBJECT_TYPE = 13i32; +pub const SE_SERVICE: SE_OBJECT_TYPE = 2i32; +pub const SE_UNKNOWN_OBJECT_TYPE: SE_OBJECT_TYPE = 0i32; +pub const SE_WINDOW_OBJECT: SE_OBJECT_TYPE = 7i32; +pub const SE_WMIGUID_OBJECT: SE_OBJECT_TYPE = 11i32; +pub const TREE_SEC_INFO_RESET: TREE_SEC_INFO = 2u32; +pub const TREE_SEC_INFO_RESET_KEEP_EXPLICIT: TREE_SEC_INFO = 3u32; +pub const TREE_SEC_INFO_SET: TREE_SEC_INFO = 1u32; +pub const TRUSTEE_ACCESS_ALL: i32 = -1i32; +pub const TRUSTEE_ACCESS_ALLOWED: i32 = 1i32; +pub const TRUSTEE_ACCESS_EXPLICIT: i32 = 1i32; +pub const TRUSTEE_ACCESS_READ: i32 = 2i32; +pub const TRUSTEE_ACCESS_WRITE: i32 = 4i32; +pub const TRUSTEE_BAD_FORM: TRUSTEE_FORM = 2i32; +pub const TRUSTEE_IS_ALIAS: TRUSTEE_TYPE = 4i32; +pub const TRUSTEE_IS_COMPUTER: TRUSTEE_TYPE = 8i32; +pub const TRUSTEE_IS_DELETED: TRUSTEE_TYPE = 6i32; +pub const TRUSTEE_IS_DOMAIN: TRUSTEE_TYPE = 3i32; +pub const TRUSTEE_IS_GROUP: TRUSTEE_TYPE = 2i32; +pub const TRUSTEE_IS_IMPERSONATE: MULTIPLE_TRUSTEE_OPERATION = 1i32; +pub const TRUSTEE_IS_INVALID: TRUSTEE_TYPE = 7i32; +pub const TRUSTEE_IS_NAME: TRUSTEE_FORM = 1i32; +pub const TRUSTEE_IS_OBJECTS_AND_NAME: TRUSTEE_FORM = 4i32; +pub const TRUSTEE_IS_OBJECTS_AND_SID: TRUSTEE_FORM = 3i32; +pub const TRUSTEE_IS_SID: TRUSTEE_FORM = 0i32; +pub const TRUSTEE_IS_UNKNOWN: TRUSTEE_TYPE = 0i32; +pub const TRUSTEE_IS_USER: TRUSTEE_TYPE = 1i32; +pub const TRUSTEE_IS_WELL_KNOWN_GROUP: TRUSTEE_TYPE = 5i32; +pub const _AUTHZ_SS_MAXSIZE: u32 = 128u32; +pub type ACCESS_MODE = i32; +pub type ACTRL_ACCESS_ENTRY_ACCESS_FLAGS = u32; +pub type AUDIT_PARAM_TYPE = i32; +pub type AUTHZ_ACCESS_CHECK_FLAGS = u32; +pub type AUTHZ_AUDIT_EVENT_INFORMATION_CLASS = i32; +pub type AUTHZ_CONTEXT_INFORMATION_CLASS = i32; +pub type AUTHZ_GENERATE_RESULTS = u32; +pub type AUTHZ_INITIALIZE_OBJECT_ACCESS_AUDIT_EVENT_FLAGS = u32; +pub type AUTHZ_RESOURCE_MANAGER_FLAGS = u32; +pub type AUTHZ_SECURITY_ATTRIBUTE_FLAGS = u32; +pub type AUTHZ_SECURITY_ATTRIBUTE_OPERATION = i32; +pub type AUTHZ_SID_OPERATION = i32; +pub type AZ_PROP_CONSTANTS = i32; +pub type MULTIPLE_TRUSTEE_OPERATION = i32; +pub type PROG_INVOKE_SETTING = i32; +pub type SE_OBJECT_TYPE = i32; +pub type TREE_SEC_INFO = u32; +pub type TRUSTEE_FORM = i32; +pub type TRUSTEE_TYPE = i32; +#[repr(C)] +pub struct ACTRL_ACCESSA { + pub cEntries: u32, + pub pPropertyAccessList: *mut ACTRL_PROPERTY_ENTRYA, +} +impl ::core::marker::Copy for ACTRL_ACCESSA {} +impl ::core::clone::Clone for ACTRL_ACCESSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTRL_ACCESSW { + pub cEntries: u32, + pub pPropertyAccessList: *mut ACTRL_PROPERTY_ENTRYW, +} +impl ::core::marker::Copy for ACTRL_ACCESSW {} +impl ::core::clone::Clone for ACTRL_ACCESSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTRL_ACCESS_ENTRYA { + pub Trustee: TRUSTEE_A, + pub fAccessFlags: ACTRL_ACCESS_ENTRY_ACCESS_FLAGS, + pub Access: u32, + pub ProvSpecificAccess: u32, + pub Inheritance: super::ACE_FLAGS, + pub lpInheritProperty: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for ACTRL_ACCESS_ENTRYA {} +impl ::core::clone::Clone for ACTRL_ACCESS_ENTRYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTRL_ACCESS_ENTRYW { + pub Trustee: TRUSTEE_W, + pub fAccessFlags: ACTRL_ACCESS_ENTRY_ACCESS_FLAGS, + pub Access: u32, + pub ProvSpecificAccess: u32, + pub Inheritance: super::ACE_FLAGS, + pub lpInheritProperty: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ACTRL_ACCESS_ENTRYW {} +impl ::core::clone::Clone for ACTRL_ACCESS_ENTRYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTRL_ACCESS_ENTRY_LISTA { + pub cEntries: u32, + pub pAccessList: *mut ACTRL_ACCESS_ENTRYA, +} +impl ::core::marker::Copy for ACTRL_ACCESS_ENTRY_LISTA {} +impl ::core::clone::Clone for ACTRL_ACCESS_ENTRY_LISTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTRL_ACCESS_ENTRY_LISTW { + pub cEntries: u32, + pub pAccessList: *mut ACTRL_ACCESS_ENTRYW, +} +impl ::core::marker::Copy for ACTRL_ACCESS_ENTRY_LISTW {} +impl ::core::clone::Clone for ACTRL_ACCESS_ENTRY_LISTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTRL_ACCESS_INFOA { + pub fAccessPermission: u32, + pub lpAccessPermissionName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for ACTRL_ACCESS_INFOA {} +impl ::core::clone::Clone for ACTRL_ACCESS_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTRL_ACCESS_INFOW { + pub fAccessPermission: u32, + pub lpAccessPermissionName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ACTRL_ACCESS_INFOW {} +impl ::core::clone::Clone for ACTRL_ACCESS_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTRL_CONTROL_INFOA { + pub lpControlId: ::windows_sys::core::PSTR, + pub lpControlName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for ACTRL_CONTROL_INFOA {} +impl ::core::clone::Clone for ACTRL_CONTROL_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTRL_CONTROL_INFOW { + pub lpControlId: ::windows_sys::core::PWSTR, + pub lpControlName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ACTRL_CONTROL_INFOW {} +impl ::core::clone::Clone for ACTRL_CONTROL_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ACTRL_OVERLAPPED { + pub Anonymous: ACTRL_OVERLAPPED_0, + pub Reserved2: u32, + pub hEvent: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ACTRL_OVERLAPPED {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ACTRL_OVERLAPPED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union ACTRL_OVERLAPPED_0 { + pub Provider: *mut ::core::ffi::c_void, + pub Reserved1: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ACTRL_OVERLAPPED_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ACTRL_OVERLAPPED_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTRL_PROPERTY_ENTRYA { + pub lpProperty: ::windows_sys::core::PSTR, + pub pAccessEntryList: *mut ACTRL_ACCESS_ENTRY_LISTA, + pub fListFlags: u32, +} +impl ::core::marker::Copy for ACTRL_PROPERTY_ENTRYA {} +impl ::core::clone::Clone for ACTRL_PROPERTY_ENTRYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTRL_PROPERTY_ENTRYW { + pub lpProperty: ::windows_sys::core::PWSTR, + pub pAccessEntryList: *mut ACTRL_ACCESS_ENTRY_LISTW, + pub fListFlags: u32, +} +impl ::core::marker::Copy for ACTRL_PROPERTY_ENTRYW {} +impl ::core::clone::Clone for ACTRL_PROPERTY_ENTRYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUDIT_IP_ADDRESS { + pub pIpAddress: [u8; 128], +} +impl ::core::marker::Copy for AUDIT_IP_ADDRESS {} +impl ::core::clone::Clone for AUDIT_IP_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUDIT_OBJECT_TYPE { + pub ObjectType: ::windows_sys::core::GUID, + pub Flags: u16, + pub Level: u16, + pub AccessMask: u32, +} +impl ::core::marker::Copy for AUDIT_OBJECT_TYPE {} +impl ::core::clone::Clone for AUDIT_OBJECT_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUDIT_OBJECT_TYPES { + pub Count: u16, + pub Flags: u16, + pub pObjectTypes: *mut AUDIT_OBJECT_TYPE, +} +impl ::core::marker::Copy for AUDIT_OBJECT_TYPES {} +impl ::core::clone::Clone for AUDIT_OBJECT_TYPES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUDIT_PARAM { + pub Type: AUDIT_PARAM_TYPE, + pub Length: u32, + pub Flags: u32, + pub Anonymous1: AUDIT_PARAM_0, + pub Anonymous2: AUDIT_PARAM_1, +} +impl ::core::marker::Copy for AUDIT_PARAM {} +impl ::core::clone::Clone for AUDIT_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union AUDIT_PARAM_0 { + pub Data0: usize, + pub String: ::windows_sys::core::PWSTR, + pub u: usize, + pub psid: *mut super::SID, + pub pguid: *mut ::windows_sys::core::GUID, + pub LogonId_LowPart: u32, + pub pObjectTypes: *mut AUDIT_OBJECT_TYPES, + pub pIpAddress: *mut AUDIT_IP_ADDRESS, +} +impl ::core::marker::Copy for AUDIT_PARAM_0 {} +impl ::core::clone::Clone for AUDIT_PARAM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union AUDIT_PARAM_1 { + pub Data1: usize, + pub LogonId_HighPart: i32, +} +impl ::core::marker::Copy for AUDIT_PARAM_1 {} +impl ::core::clone::Clone for AUDIT_PARAM_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUDIT_PARAMS { + pub Length: u32, + pub Flags: u32, + pub Count: u16, + pub Parameters: *mut AUDIT_PARAM, +} +impl ::core::marker::Copy for AUDIT_PARAMS {} +impl ::core::clone::Clone for AUDIT_PARAMS { + fn clone(&self) -> Self { + *self + } +} +pub type AUTHZ_ACCESS_CHECK_RESULTS_HANDLE = isize; +#[repr(C)] +pub struct AUTHZ_ACCESS_REPLY { + pub ResultListLength: u32, + pub GrantedAccessMask: *mut u32, + pub SaclEvaluationResults: *mut AUTHZ_GENERATE_RESULTS, + pub Error: *mut u32, +} +impl ::core::marker::Copy for AUTHZ_ACCESS_REPLY {} +impl ::core::clone::Clone for AUTHZ_ACCESS_REPLY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AUTHZ_ACCESS_REQUEST { + pub DesiredAccess: u32, + pub PrincipalSelfSid: super::super::Foundation::PSID, + pub ObjectTypeList: *mut super::OBJECT_TYPE_LIST, + pub ObjectTypeListLength: u32, + pub OptionalArguments: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AUTHZ_ACCESS_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AUTHZ_ACCESS_REQUEST { + fn clone(&self) -> Self { + *self + } +} +pub type AUTHZ_AUDIT_EVENT_HANDLE = isize; +pub type AUTHZ_AUDIT_EVENT_TYPE_HANDLE = isize; +#[repr(C)] +pub struct AUTHZ_AUDIT_EVENT_TYPE_LEGACY { + pub CategoryId: u16, + pub AuditId: u16, + pub ParameterCount: u16, +} +impl ::core::marker::Copy for AUTHZ_AUDIT_EVENT_TYPE_LEGACY {} +impl ::core::clone::Clone for AUTHZ_AUDIT_EVENT_TYPE_LEGACY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AUTHZ_AUDIT_EVENT_TYPE_OLD { + pub Version: u32, + pub dwFlags: u32, + pub RefCount: i32, + pub hAudit: usize, + pub LinkId: super::super::Foundation::LUID, + pub u: AUTHZ_AUDIT_EVENT_TYPE_UNION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AUTHZ_AUDIT_EVENT_TYPE_OLD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AUTHZ_AUDIT_EVENT_TYPE_OLD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union AUTHZ_AUDIT_EVENT_TYPE_UNION { + pub Legacy: AUTHZ_AUDIT_EVENT_TYPE_LEGACY, +} +impl ::core::marker::Copy for AUTHZ_AUDIT_EVENT_TYPE_UNION {} +impl ::core::clone::Clone for AUTHZ_AUDIT_EVENT_TYPE_UNION { + fn clone(&self) -> Self { + *self + } +} +pub type AUTHZ_CAP_CHANGE_SUBSCRIPTION_HANDLE = isize; +pub type AUTHZ_CLIENT_CONTEXT_HANDLE = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AUTHZ_INIT_INFO { + pub version: u16, + pub szResourceManagerName: ::windows_sys::core::PCWSTR, + pub pfnDynamicAccessCheck: PFN_AUTHZ_DYNAMIC_ACCESS_CHECK, + pub pfnComputeDynamicGroups: PFN_AUTHZ_COMPUTE_DYNAMIC_GROUPS, + pub pfnFreeDynamicGroups: PFN_AUTHZ_FREE_DYNAMIC_GROUPS, + pub pfnGetCentralAccessPolicy: PFN_AUTHZ_GET_CENTRAL_ACCESS_POLICY, + pub pfnFreeCentralAccessPolicy: PFN_AUTHZ_FREE_CENTRAL_ACCESS_POLICY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AUTHZ_INIT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AUTHZ_INIT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET { + pub szObjectTypeName: ::windows_sys::core::PWSTR, + pub dwOffset: u32, +} +impl ::core::marker::Copy for AUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET {} +impl ::core::clone::Clone for AUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET { + fn clone(&self) -> Self { + *self + } +} +pub type AUTHZ_RESOURCE_MANAGER_HANDLE = isize; +#[repr(C)] +pub struct AUTHZ_RPC_INIT_INFO_CLIENT { + pub version: u16, + pub ObjectUuid: ::windows_sys::core::PWSTR, + pub ProtSeq: ::windows_sys::core::PWSTR, + pub NetworkAddr: ::windows_sys::core::PWSTR, + pub Endpoint: ::windows_sys::core::PWSTR, + pub Options: ::windows_sys::core::PWSTR, + pub ServerSpn: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for AUTHZ_RPC_INIT_INFO_CLIENT {} +impl ::core::clone::Clone for AUTHZ_RPC_INIT_INFO_CLIENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUTHZ_SECURITY_ATTRIBUTES_INFORMATION { + pub Version: u16, + pub Reserved: u16, + pub AttributeCount: u32, + pub Attribute: AUTHZ_SECURITY_ATTRIBUTES_INFORMATION_0, +} +impl ::core::marker::Copy for AUTHZ_SECURITY_ATTRIBUTES_INFORMATION {} +impl ::core::clone::Clone for AUTHZ_SECURITY_ATTRIBUTES_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union AUTHZ_SECURITY_ATTRIBUTES_INFORMATION_0 { + pub pAttributeV1: *mut AUTHZ_SECURITY_ATTRIBUTE_V1, +} +impl ::core::marker::Copy for AUTHZ_SECURITY_ATTRIBUTES_INFORMATION_0 {} +impl ::core::clone::Clone for AUTHZ_SECURITY_ATTRIBUTES_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUTHZ_SECURITY_ATTRIBUTE_FQBN_VALUE { + pub Version: u64, + pub pName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for AUTHZ_SECURITY_ATTRIBUTE_FQBN_VALUE {} +impl ::core::clone::Clone for AUTHZ_SECURITY_ATTRIBUTE_FQBN_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE { + pub pValue: *mut ::core::ffi::c_void, + pub ValueLength: u32, +} +impl ::core::marker::Copy for AUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE {} +impl ::core::clone::Clone for AUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AUTHZ_SECURITY_ATTRIBUTE_V1 { + pub pName: ::windows_sys::core::PWSTR, + pub ValueType: u16, + pub Reserved: u16, + pub Flags: AUTHZ_SECURITY_ATTRIBUTE_FLAGS, + pub ValueCount: u32, + pub Values: AUTHZ_SECURITY_ATTRIBUTE_V1_0, +} +impl ::core::marker::Copy for AUTHZ_SECURITY_ATTRIBUTE_V1 {} +impl ::core::clone::Clone for AUTHZ_SECURITY_ATTRIBUTE_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union AUTHZ_SECURITY_ATTRIBUTE_V1_0 { + pub pInt64: *mut i64, + pub pUint64: *mut u64, + pub ppString: *mut ::windows_sys::core::PWSTR, + pub pFqbn: *mut AUTHZ_SECURITY_ATTRIBUTE_FQBN_VALUE, + pub pOctetString: *mut AUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE, +} +impl ::core::marker::Copy for AUTHZ_SECURITY_ATTRIBUTE_V1_0 {} +impl ::core::clone::Clone for AUTHZ_SECURITY_ATTRIBUTE_V1_0 { + fn clone(&self) -> Self { + *self + } +} +pub type AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE = isize; +#[repr(C)] +pub struct AUTHZ_SOURCE_SCHEMA_REGISTRATION { + pub dwFlags: u32, + pub szEventSourceName: ::windows_sys::core::PWSTR, + pub szEventMessageFile: ::windows_sys::core::PWSTR, + pub szEventSourceXmlSchemaFile: ::windows_sys::core::PWSTR, + pub szEventAccessStringsFile: ::windows_sys::core::PWSTR, + pub szExecutableImagePath: ::windows_sys::core::PWSTR, + pub Anonymous: AUTHZ_SOURCE_SCHEMA_REGISTRATION_0, + pub dwObjectTypeNameCount: u32, + pub ObjectTypeNames: [AUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET; 1], +} +impl ::core::marker::Copy for AUTHZ_SOURCE_SCHEMA_REGISTRATION {} +impl ::core::clone::Clone for AUTHZ_SOURCE_SCHEMA_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union AUTHZ_SOURCE_SCHEMA_REGISTRATION_0 { + pub pReserved: *mut ::core::ffi::c_void, + pub pProviderGuid: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for AUTHZ_SOURCE_SCHEMA_REGISTRATION_0 {} +impl ::core::clone::Clone for AUTHZ_SOURCE_SCHEMA_REGISTRATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXPLICIT_ACCESS_A { + pub grfAccessPermissions: u32, + pub grfAccessMode: ACCESS_MODE, + pub grfInheritance: super::ACE_FLAGS, + pub Trustee: TRUSTEE_A, +} +impl ::core::marker::Copy for EXPLICIT_ACCESS_A {} +impl ::core::clone::Clone for EXPLICIT_ACCESS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXPLICIT_ACCESS_W { + pub grfAccessPermissions: u32, + pub grfAccessMode: ACCESS_MODE, + pub grfInheritance: super::ACE_FLAGS, + pub Trustee: TRUSTEE_W, +} +impl ::core::marker::Copy for EXPLICIT_ACCESS_W {} +impl ::core::clone::Clone for EXPLICIT_ACCESS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FN_OBJECT_MGR_FUNCTS { + pub Placeholder: u32, +} +impl ::core::marker::Copy for FN_OBJECT_MGR_FUNCTS {} +impl ::core::clone::Clone for FN_OBJECT_MGR_FUNCTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INHERITED_FROMA { + pub GenerationGap: i32, + pub AncestorName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for INHERITED_FROMA {} +impl ::core::clone::Clone for INHERITED_FROMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INHERITED_FROMW { + pub GenerationGap: i32, + pub AncestorName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for INHERITED_FROMW {} +impl ::core::clone::Clone for INHERITED_FROMW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OBJECTS_AND_NAME_A { + pub ObjectsPresent: super::SYSTEM_AUDIT_OBJECT_ACE_FLAGS, + pub ObjectType: SE_OBJECT_TYPE, + pub ObjectTypeName: ::windows_sys::core::PSTR, + pub InheritedObjectTypeName: ::windows_sys::core::PSTR, + pub ptstrName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for OBJECTS_AND_NAME_A {} +impl ::core::clone::Clone for OBJECTS_AND_NAME_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OBJECTS_AND_NAME_W { + pub ObjectsPresent: super::SYSTEM_AUDIT_OBJECT_ACE_FLAGS, + pub ObjectType: SE_OBJECT_TYPE, + pub ObjectTypeName: ::windows_sys::core::PWSTR, + pub InheritedObjectTypeName: ::windows_sys::core::PWSTR, + pub ptstrName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for OBJECTS_AND_NAME_W {} +impl ::core::clone::Clone for OBJECTS_AND_NAME_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OBJECTS_AND_SID { + pub ObjectsPresent: super::SYSTEM_AUDIT_OBJECT_ACE_FLAGS, + pub ObjectTypeGuid: ::windows_sys::core::GUID, + pub InheritedObjectTypeGuid: ::windows_sys::core::GUID, + pub pSid: *mut super::SID, +} +impl ::core::marker::Copy for OBJECTS_AND_SID {} +impl ::core::clone::Clone for OBJECTS_AND_SID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRUSTEE_A { + pub pMultipleTrustee: *mut TRUSTEE_A, + pub MultipleTrusteeOperation: MULTIPLE_TRUSTEE_OPERATION, + pub TrusteeForm: TRUSTEE_FORM, + pub TrusteeType: TRUSTEE_TYPE, + pub ptstrName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for TRUSTEE_A {} +impl ::core::clone::Clone for TRUSTEE_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRUSTEE_ACCESSA { + pub lpProperty: ::windows_sys::core::PSTR, + pub Access: u32, + pub fAccessFlags: u32, + pub fReturnedAccess: u32, +} +impl ::core::marker::Copy for TRUSTEE_ACCESSA {} +impl ::core::clone::Clone for TRUSTEE_ACCESSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRUSTEE_ACCESSW { + pub lpProperty: ::windows_sys::core::PWSTR, + pub Access: u32, + pub fAccessFlags: u32, + pub fReturnedAccess: u32, +} +impl ::core::marker::Copy for TRUSTEE_ACCESSW {} +impl ::core::clone::Clone for TRUSTEE_ACCESSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRUSTEE_W { + pub pMultipleTrustee: *mut TRUSTEE_W, + pub MultipleTrusteeOperation: MULTIPLE_TRUSTEE_OPERATION, + pub TrusteeForm: TRUSTEE_FORM, + pub TrusteeType: TRUSTEE_TYPE, + pub ptstrName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for TRUSTEE_W {} +impl ::core::clone::Clone for TRUSTEE_W { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FN_PROGRESS = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_AUTHZ_COMPUTE_DYNAMIC_GROUPS = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_AUTHZ_DYNAMIC_ACCESS_CHECK = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_AUTHZ_FREE_CENTRAL_ACCESS_POLICY = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_AUTHZ_FREE_DYNAMIC_GROUPS = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_AUTHZ_GET_CENTRAL_ACCESS_POLICY = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Credentials/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Credentials/mod.rs new file mode 100644 index 000000000..29461f39f --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Credentials/mod.rs @@ -0,0 +1,1081 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredDeleteA(targetname : ::windows_sys::core::PCSTR, r#type : CRED_TYPE, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredDeleteW(targetname : ::windows_sys::core::PCWSTR, r#type : CRED_TYPE, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredEnumerateA(filter : ::windows_sys::core::PCSTR, flags : CRED_ENUMERATE_FLAGS, count : *mut u32, credential : *mut *mut *mut CREDENTIALA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredEnumerateW(filter : ::windows_sys::core::PCWSTR, flags : CRED_ENUMERATE_FLAGS, count : *mut u32, credential : *mut *mut *mut CREDENTIALW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredFindBestCredentialA(targetname : ::windows_sys::core::PCSTR, r#type : u32, flags : u32, credential : *mut *mut CREDENTIALA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredFindBestCredentialW(targetname : ::windows_sys::core::PCWSTR, r#type : u32, flags : u32, credential : *mut *mut CREDENTIALW) -> super::super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn CredFree(buffer : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredGetSessionTypes(maximumpersistcount : u32, maximumpersist : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredGetTargetInfoA(targetname : ::windows_sys::core::PCSTR, flags : u32, targetinfo : *mut *mut CREDENTIAL_TARGET_INFORMATIONA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredGetTargetInfoW(targetname : ::windows_sys::core::PCWSTR, flags : u32, targetinfo : *mut *mut CREDENTIAL_TARGET_INFORMATIONW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredIsMarshaledCredentialA(marshaledcredential : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredIsMarshaledCredentialW(marshaledcredential : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredIsProtectedA(pszprotectedcredentials : ::windows_sys::core::PCSTR, pprotectiontype : *mut CRED_PROTECTION_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredIsProtectedW(pszprotectedcredentials : ::windows_sys::core::PCWSTR, pprotectiontype : *mut CRED_PROTECTION_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredMarshalCredentialA(credtype : CRED_MARSHAL_TYPE, credential : *const ::core::ffi::c_void, marshaledcredential : *mut ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredMarshalCredentialW(credtype : CRED_MARSHAL_TYPE, credential : *const ::core::ffi::c_void, marshaledcredential : *mut ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredPackAuthenticationBufferA(dwflags : CRED_PACK_FLAGS, pszusername : ::windows_sys::core::PCSTR, pszpassword : ::windows_sys::core::PCSTR, ppackedcredentials : *mut u8, pcbpackedcredentials : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredPackAuthenticationBufferW(dwflags : CRED_PACK_FLAGS, pszusername : ::windows_sys::core::PCWSTR, pszpassword : ::windows_sys::core::PCWSTR, ppackedcredentials : *mut u8, pcbpackedcredentials : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredProtectA(fasself : super::super::Foundation:: BOOL, pszcredentials : ::windows_sys::core::PCSTR, cchcredentials : u32, pszprotectedcredentials : ::windows_sys::core::PSTR, pcchmaxchars : *mut u32, protectiontype : *mut CRED_PROTECTION_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredProtectW(fasself : super::super::Foundation:: BOOL, pszcredentials : ::windows_sys::core::PCWSTR, cchcredentials : u32, pszprotectedcredentials : ::windows_sys::core::PWSTR, pcchmaxchars : *mut u32, protectiontype : *mut CRED_PROTECTION_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredReadA(targetname : ::windows_sys::core::PCSTR, r#type : CRED_TYPE, flags : u32, credential : *mut *mut CREDENTIALA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredReadDomainCredentialsA(targetinfo : *const CREDENTIAL_TARGET_INFORMATIONA, flags : u32, count : *mut u32, credential : *mut *mut *mut CREDENTIALA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredReadDomainCredentialsW(targetinfo : *const CREDENTIAL_TARGET_INFORMATIONW, flags : u32, count : *mut u32, credential : *mut *mut *mut CREDENTIALW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredReadW(targetname : ::windows_sys::core::PCWSTR, r#type : CRED_TYPE, flags : u32, credential : *mut *mut CREDENTIALW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredRenameA(oldtargetname : ::windows_sys::core::PCSTR, newtargetname : ::windows_sys::core::PCSTR, r#type : CRED_TYPE, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredRenameW(oldtargetname : ::windows_sys::core::PCWSTR, newtargetname : ::windows_sys::core::PCWSTR, r#type : CRED_TYPE, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredUICmdLinePromptForCredentialsA(psztargetname : ::windows_sys::core::PCSTR, pcontext : *const SecHandle, dwautherror : u32, username : ::windows_sys::core::PSTR, uluserbuffersize : u32, pszpassword : ::windows_sys::core::PSTR, ulpasswordbuffersize : u32, pfsave : *mut super::super::Foundation:: BOOL, dwflags : CREDUI_FLAGS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredUICmdLinePromptForCredentialsW(psztargetname : ::windows_sys::core::PCWSTR, pcontext : *const SecHandle, dwautherror : u32, username : ::windows_sys::core::PWSTR, uluserbuffersize : u32, pszpassword : ::windows_sys::core::PWSTR, ulpasswordbuffersize : u32, pfsave : *mut super::super::Foundation:: BOOL, dwflags : CREDUI_FLAGS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredUIConfirmCredentialsA(psztargetname : ::windows_sys::core::PCSTR, bconfirm : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredUIConfirmCredentialsW(psztargetname : ::windows_sys::core::PCWSTR, bconfirm : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("credui.dll" "system" fn CredUIParseUserNameA(username : ::windows_sys::core::PCSTR, user : ::windows_sys::core::PSTR, userbuffersize : u32, domain : ::windows_sys::core::PSTR, domainbuffersize : u32) -> u32); +::windows_targets::link!("credui.dll" "system" fn CredUIParseUserNameW(username : ::windows_sys::core::PCWSTR, user : ::windows_sys::core::PWSTR, userbuffersize : u32, domain : ::windows_sys::core::PWSTR, domainbuffersize : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CredUIPromptForCredentialsA(puiinfo : *const CREDUI_INFOA, psztargetname : ::windows_sys::core::PCSTR, pcontext : *const SecHandle, dwautherror : u32, pszusername : ::windows_sys::core::PSTR, ulusernamebuffersize : u32, pszpassword : ::windows_sys::core::PSTR, ulpasswordbuffersize : u32, save : *mut super::super::Foundation:: BOOL, dwflags : CREDUI_FLAGS) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CredUIPromptForCredentialsW(puiinfo : *const CREDUI_INFOW, psztargetname : ::windows_sys::core::PCWSTR, pcontext : *const SecHandle, dwautherror : u32, pszusername : ::windows_sys::core::PWSTR, ulusernamebuffersize : u32, pszpassword : ::windows_sys::core::PWSTR, ulpasswordbuffersize : u32, save : *mut super::super::Foundation:: BOOL, dwflags : CREDUI_FLAGS) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CredUIPromptForWindowsCredentialsA(puiinfo : *const CREDUI_INFOA, dwautherror : u32, pulauthpackage : *mut u32, pvinauthbuffer : *const ::core::ffi::c_void, ulinauthbuffersize : u32, ppvoutauthbuffer : *mut *mut ::core::ffi::c_void, puloutauthbuffersize : *mut u32, pfsave : *mut super::super::Foundation:: BOOL, dwflags : CREDUIWIN_FLAGS) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CredUIPromptForWindowsCredentialsW(puiinfo : *const CREDUI_INFOW, dwautherror : u32, pulauthpackage : *mut u32, pvinauthbuffer : *const ::core::ffi::c_void, ulinauthbuffersize : u32, ppvoutauthbuffer : *mut *mut ::core::ffi::c_void, puloutauthbuffersize : *mut u32, pfsave : *mut super::super::Foundation:: BOOL, dwflags : CREDUIWIN_FLAGS) -> u32); +::windows_targets::link!("credui.dll" "system" fn CredUIReadSSOCredW(pszrealm : ::windows_sys::core::PCWSTR, ppszusername : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredUIStoreSSOCredW(pszrealm : ::windows_sys::core::PCWSTR, pszusername : ::windows_sys::core::PCWSTR, pszpassword : ::windows_sys::core::PCWSTR, bpersist : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredUnPackAuthenticationBufferA(dwflags : CRED_PACK_FLAGS, pauthbuffer : *const ::core::ffi::c_void, cbauthbuffer : u32, pszusername : ::windows_sys::core::PSTR, pcchlmaxusername : *mut u32, pszdomainname : ::windows_sys::core::PSTR, pcchmaxdomainname : *mut u32, pszpassword : ::windows_sys::core::PSTR, pcchmaxpassword : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("credui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredUnPackAuthenticationBufferW(dwflags : CRED_PACK_FLAGS, pauthbuffer : *const ::core::ffi::c_void, cbauthbuffer : u32, pszusername : ::windows_sys::core::PWSTR, pcchmaxusername : *mut u32, pszdomainname : ::windows_sys::core::PWSTR, pcchmaxdomainname : *mut u32, pszpassword : ::windows_sys::core::PWSTR, pcchmaxpassword : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredUnmarshalCredentialA(marshaledcredential : ::windows_sys::core::PCSTR, credtype : *mut CRED_MARSHAL_TYPE, credential : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredUnmarshalCredentialW(marshaledcredential : ::windows_sys::core::PCWSTR, credtype : *mut CRED_MARSHAL_TYPE, credential : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredUnprotectA(fasself : super::super::Foundation:: BOOL, pszprotectedcredentials : ::windows_sys::core::PCSTR, cchprotectedcredentials : u32, pszcredentials : ::windows_sys::core::PSTR, pcchmaxchars : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredUnprotectW(fasself : super::super::Foundation:: BOOL, pszprotectedcredentials : ::windows_sys::core::PCWSTR, cchprotectedcredentials : u32, pszcredentials : ::windows_sys::core::PWSTR, pcchmaxchars : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredWriteA(credential : *const CREDENTIALA, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredWriteDomainCredentialsA(targetinfo : *const CREDENTIAL_TARGET_INFORMATIONA, credential : *const CREDENTIALA, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredWriteDomainCredentialsW(targetinfo : *const CREDENTIAL_TARGET_INFORMATIONW, credential : *const CREDENTIALW, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CredWriteW(credential : *const CREDENTIALW, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("scarddlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetOpenCardNameA(param0 : *mut OPENCARDNAMEA) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("scarddlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetOpenCardNameW(param0 : *mut OPENCARDNAMEW) -> i32); +::windows_targets::link!("keycredmgr.dll" "system" fn KeyCredentialManagerFreeInformation(keycredentialmanagerinfo : *const KeyCredentialManagerInfo) -> ()); +::windows_targets::link!("keycredmgr.dll" "system" fn KeyCredentialManagerGetInformation(keycredentialmanagerinfo : *mut *mut KeyCredentialManagerInfo) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("keycredmgr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeyCredentialManagerGetOperationErrorStates(keycredentialmanageroperationtype : KeyCredentialManagerOperationType, isready : *mut super::super::Foundation:: BOOL, keycredentialmanageroperationerrorstates : *mut KeyCredentialManagerOperationErrorStates) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("keycredmgr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KeyCredentialManagerShowUIOperation(hwndowner : super::super::Foundation:: HWND, keycredentialmanageroperationtype : KeyCredentialManagerOperationType) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winscard.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SCardAccessStartedEvent() -> super::super::Foundation:: HANDLE); +::windows_targets::link!("winscard.dll" "system" fn SCardAddReaderToGroupA(hcontext : usize, szreadername : ::windows_sys::core::PCSTR, szgroupname : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardAddReaderToGroupW(hcontext : usize, szreadername : ::windows_sys::core::PCWSTR, szgroupname : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardAudit(hcontext : usize, dwevent : u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardBeginTransaction(hcard : usize) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardCancel(hcontext : usize) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardConnectA(hcontext : usize, szreader : ::windows_sys::core::PCSTR, dwsharemode : u32, dwpreferredprotocols : u32, phcard : *mut usize, pdwactiveprotocol : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardConnectW(hcontext : usize, szreader : ::windows_sys::core::PCWSTR, dwsharemode : u32, dwpreferredprotocols : u32, phcard : *mut usize, pdwactiveprotocol : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardControl(hcard : usize, dwcontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, cbinbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, cboutbuffersize : u32, lpbytesreturned : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardDisconnect(hcard : usize, dwdisposition : u32) -> i32); +::windows_targets::link!("scarddlg.dll" "system" fn SCardDlgExtendedError() -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardEndTransaction(hcard : usize, dwdisposition : u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardEstablishContext(dwscope : SCARD_SCOPE, pvreserved1 : *const ::core::ffi::c_void, pvreserved2 : *const ::core::ffi::c_void, phcontext : *mut usize) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardForgetCardTypeA(hcontext : usize, szcardname : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardForgetCardTypeW(hcontext : usize, szcardname : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardForgetReaderA(hcontext : usize, szreadername : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardForgetReaderGroupA(hcontext : usize, szgroupname : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardForgetReaderGroupW(hcontext : usize, szgroupname : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardForgetReaderW(hcontext : usize, szreadername : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardFreeMemory(hcontext : usize, pvmem : *const ::core::ffi::c_void) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetAttrib(hcard : usize, dwattrid : u32, pbattr : *mut u8, pcbattrlen : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetCardTypeProviderNameA(hcontext : usize, szcardname : ::windows_sys::core::PCSTR, dwproviderid : u32, szprovider : ::windows_sys::core::PSTR, pcchprovider : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetCardTypeProviderNameW(hcontext : usize, szcardname : ::windows_sys::core::PCWSTR, dwproviderid : u32, szprovider : ::windows_sys::core::PWSTR, pcchprovider : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetDeviceTypeIdA(hcontext : usize, szreadername : ::windows_sys::core::PCSTR, pdwdevicetypeid : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetDeviceTypeIdW(hcontext : usize, szreadername : ::windows_sys::core::PCWSTR, pdwdevicetypeid : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetProviderIdA(hcontext : usize, szcard : ::windows_sys::core::PCSTR, pguidproviderid : *mut ::windows_sys::core::GUID) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetProviderIdW(hcontext : usize, szcard : ::windows_sys::core::PCWSTR, pguidproviderid : *mut ::windows_sys::core::GUID) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetReaderDeviceInstanceIdA(hcontext : usize, szreadername : ::windows_sys::core::PCSTR, szdeviceinstanceid : ::windows_sys::core::PSTR, pcchdeviceinstanceid : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetReaderDeviceInstanceIdW(hcontext : usize, szreadername : ::windows_sys::core::PCWSTR, szdeviceinstanceid : ::windows_sys::core::PWSTR, pcchdeviceinstanceid : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetReaderIconA(hcontext : usize, szreadername : ::windows_sys::core::PCSTR, pbicon : *mut u8, pcbicon : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetReaderIconW(hcontext : usize, szreadername : ::windows_sys::core::PCWSTR, pbicon : *mut u8, pcbicon : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetStatusChangeA(hcontext : usize, dwtimeout : u32, rgreaderstates : *mut SCARD_READERSTATEA, creaders : u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetStatusChangeW(hcontext : usize, dwtimeout : u32, rgreaderstates : *mut SCARD_READERSTATEW, creaders : u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardGetTransmitCount(hcard : usize, pctransmitcount : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardIntroduceCardTypeA(hcontext : usize, szcardname : ::windows_sys::core::PCSTR, pguidprimaryprovider : *const ::windows_sys::core::GUID, rgguidinterfaces : *const ::windows_sys::core::GUID, dwinterfacecount : u32, pbatr : *const u8, pbatrmask : *const u8, cbatrlen : u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardIntroduceCardTypeW(hcontext : usize, szcardname : ::windows_sys::core::PCWSTR, pguidprimaryprovider : *const ::windows_sys::core::GUID, rgguidinterfaces : *const ::windows_sys::core::GUID, dwinterfacecount : u32, pbatr : *const u8, pbatrmask : *const u8, cbatrlen : u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardIntroduceReaderA(hcontext : usize, szreadername : ::windows_sys::core::PCSTR, szdevicename : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardIntroduceReaderGroupA(hcontext : usize, szgroupname : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardIntroduceReaderGroupW(hcontext : usize, szgroupname : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardIntroduceReaderW(hcontext : usize, szreadername : ::windows_sys::core::PCWSTR, szdevicename : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardIsValidContext(hcontext : usize) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardListCardsA(hcontext : usize, pbatr : *const u8, rgquidinterfaces : *const ::windows_sys::core::GUID, cguidinterfacecount : u32, mszcards : ::windows_sys::core::PSTR, pcchcards : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardListCardsW(hcontext : usize, pbatr : *const u8, rgquidinterfaces : *const ::windows_sys::core::GUID, cguidinterfacecount : u32, mszcards : ::windows_sys::core::PWSTR, pcchcards : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardListInterfacesA(hcontext : usize, szcard : ::windows_sys::core::PCSTR, pguidinterfaces : *mut ::windows_sys::core::GUID, pcguidinterfaces : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardListInterfacesW(hcontext : usize, szcard : ::windows_sys::core::PCWSTR, pguidinterfaces : *mut ::windows_sys::core::GUID, pcguidinterfaces : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardListReaderGroupsA(hcontext : usize, mszgroups : ::windows_sys::core::PSTR, pcchgroups : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardListReaderGroupsW(hcontext : usize, mszgroups : ::windows_sys::core::PWSTR, pcchgroups : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardListReadersA(hcontext : usize, mszgroups : ::windows_sys::core::PCSTR, mszreaders : ::windows_sys::core::PSTR, pcchreaders : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardListReadersW(hcontext : usize, mszgroups : ::windows_sys::core::PCWSTR, mszreaders : ::windows_sys::core::PWSTR, pcchreaders : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardListReadersWithDeviceInstanceIdA(hcontext : usize, szdeviceinstanceid : ::windows_sys::core::PCSTR, mszreaders : ::windows_sys::core::PSTR, pcchreaders : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardListReadersWithDeviceInstanceIdW(hcontext : usize, szdeviceinstanceid : ::windows_sys::core::PCWSTR, mszreaders : ::windows_sys::core::PWSTR, pcchreaders : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardLocateCardsA(hcontext : usize, mszcards : ::windows_sys::core::PCSTR, rgreaderstates : *mut SCARD_READERSTATEA, creaders : u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardLocateCardsByATRA(hcontext : usize, rgatrmasks : *const SCARD_ATRMASK, catrs : u32, rgreaderstates : *mut SCARD_READERSTATEA, creaders : u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardLocateCardsByATRW(hcontext : usize, rgatrmasks : *const SCARD_ATRMASK, catrs : u32, rgreaderstates : *mut SCARD_READERSTATEW, creaders : u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardLocateCardsW(hcontext : usize, mszcards : ::windows_sys::core::PCWSTR, rgreaderstates : *mut SCARD_READERSTATEW, creaders : u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardReadCacheA(hcontext : usize, cardidentifier : *const ::windows_sys::core::GUID, freshnesscounter : u32, lookupname : ::windows_sys::core::PCSTR, data : *mut u8, datalen : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardReadCacheW(hcontext : usize, cardidentifier : *const ::windows_sys::core::GUID, freshnesscounter : u32, lookupname : ::windows_sys::core::PCWSTR, data : *mut u8, datalen : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardReconnect(hcard : usize, dwsharemode : u32, dwpreferredprotocols : u32, dwinitialization : u32, pdwactiveprotocol : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardReleaseContext(hcontext : usize) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardReleaseStartedEvent() -> ()); +::windows_targets::link!("winscard.dll" "system" fn SCardRemoveReaderFromGroupA(hcontext : usize, szreadername : ::windows_sys::core::PCSTR, szgroupname : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardRemoveReaderFromGroupW(hcontext : usize, szreadername : ::windows_sys::core::PCWSTR, szgroupname : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardSetAttrib(hcard : usize, dwattrid : u32, pbattr : *const u8, cbattrlen : u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardSetCardTypeProviderNameA(hcontext : usize, szcardname : ::windows_sys::core::PCSTR, dwproviderid : u32, szprovider : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardSetCardTypeProviderNameW(hcontext : usize, szcardname : ::windows_sys::core::PCWSTR, dwproviderid : u32, szprovider : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardState(hcard : usize, pdwstate : *mut u32, pdwprotocol : *mut u32, pbatr : *mut u8, pcbatrlen : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardStatusA(hcard : usize, mszreadernames : ::windows_sys::core::PSTR, pcchreaderlen : *mut u32, pdwstate : *mut u32, pdwprotocol : *mut u32, pbatr : *mut u8, pcbatrlen : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardStatusW(hcard : usize, mszreadernames : ::windows_sys::core::PWSTR, pcchreaderlen : *mut u32, pdwstate : *mut u32, pdwprotocol : *mut u32, pbatr : *mut u8, pcbatrlen : *mut u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardTransmit(hcard : usize, piosendpci : *const SCARD_IO_REQUEST, pbsendbuffer : *const u8, cbsendlength : u32, piorecvpci : *mut SCARD_IO_REQUEST, pbrecvbuffer : *mut u8, pcbrecvlength : *mut u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("scarddlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SCardUIDlgSelectCardA(param0 : *mut OPENCARDNAME_EXA) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("scarddlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SCardUIDlgSelectCardW(param0 : *mut OPENCARDNAME_EXW) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardWriteCacheA(hcontext : usize, cardidentifier : *const ::windows_sys::core::GUID, freshnesscounter : u32, lookupname : ::windows_sys::core::PCSTR, data : *const u8, datalen : u32) -> i32); +::windows_targets::link!("winscard.dll" "system" fn SCardWriteCacheW(hcontext : usize, cardidentifier : *const ::windows_sys::core::GUID, freshnesscounter : u32, lookupname : ::windows_sys::core::PCWSTR, data : *const u8, datalen : u32) -> i32); +pub const BinaryBlobCredential: CRED_MARSHAL_TYPE = 3i32; +pub const BinaryBlobForSystem: CRED_MARSHAL_TYPE = 5i32; +pub const CERT_HASH_LENGTH: u32 = 20u32; +pub const CREDSSP_CRED_EX_VERSION: u32 = 0u32; +pub const CREDSSP_FLAG_REDIRECT: u32 = 1u32; +pub const CREDSSP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CREDSSP"); +pub const CREDSSP_SERVER_AUTH_CERTIFICATE: u32 = 2u32; +pub const CREDSSP_SERVER_AUTH_LOOPBACK: u32 = 4u32; +pub const CREDSSP_SERVER_AUTH_NEGOTIATE: u32 = 1u32; +pub const CREDUIWIN_AUTHPACKAGE_ONLY: CREDUIWIN_FLAGS = 16u32; +pub const CREDUIWIN_CHECKBOX: CREDUIWIN_FLAGS = 2u32; +pub const CREDUIWIN_DOWNLEVEL_HELLO_AS_SMART_CARD: u32 = 2147483648u32; +pub const CREDUIWIN_ENUMERATE_ADMINS: CREDUIWIN_FLAGS = 256u32; +pub const CREDUIWIN_ENUMERATE_CURRENT_USER: CREDUIWIN_FLAGS = 512u32; +pub const CREDUIWIN_GENERIC: CREDUIWIN_FLAGS = 1u32; +pub const CREDUIWIN_IGNORE_CLOUDAUTHORITY_NAME: u32 = 262144u32; +pub const CREDUIWIN_IN_CRED_ONLY: CREDUIWIN_FLAGS = 32u32; +pub const CREDUIWIN_PACK_32_WOW: CREDUIWIN_FLAGS = 268435456u32; +pub const CREDUIWIN_PREPROMPTING: CREDUIWIN_FLAGS = 8192u32; +pub const CREDUIWIN_SECURE_PROMPT: CREDUIWIN_FLAGS = 4096u32; +pub const CREDUI_FLAGS_ALWAYS_SHOW_UI: CREDUI_FLAGS = 128u32; +pub const CREDUI_FLAGS_COMPLETE_USERNAME: CREDUI_FLAGS = 2048u32; +pub const CREDUI_FLAGS_DO_NOT_PERSIST: CREDUI_FLAGS = 2u32; +pub const CREDUI_FLAGS_EXCLUDE_CERTIFICATES: CREDUI_FLAGS = 8u32; +pub const CREDUI_FLAGS_EXPECT_CONFIRMATION: CREDUI_FLAGS = 131072u32; +pub const CREDUI_FLAGS_GENERIC_CREDENTIALS: CREDUI_FLAGS = 262144u32; +pub const CREDUI_FLAGS_INCORRECT_PASSWORD: CREDUI_FLAGS = 1u32; +pub const CREDUI_FLAGS_KEEP_USERNAME: CREDUI_FLAGS = 1048576u32; +pub const CREDUI_FLAGS_PASSWORD_ONLY_OK: CREDUI_FLAGS = 512u32; +pub const CREDUI_FLAGS_PERSIST: CREDUI_FLAGS = 4096u32; +pub const CREDUI_FLAGS_REQUEST_ADMINISTRATOR: CREDUI_FLAGS = 4u32; +pub const CREDUI_FLAGS_REQUIRE_CERTIFICATE: CREDUI_FLAGS = 16u32; +pub const CREDUI_FLAGS_REQUIRE_SMARTCARD: CREDUI_FLAGS = 256u32; +pub const CREDUI_FLAGS_SERVER_CREDENTIAL: CREDUI_FLAGS = 16384u32; +pub const CREDUI_FLAGS_SHOW_SAVE_CHECK_BOX: CREDUI_FLAGS = 64u32; +pub const CREDUI_FLAGS_USERNAME_TARGET_CREDENTIALS: CREDUI_FLAGS = 524288u32; +pub const CREDUI_FLAGS_VALIDATE_USERNAME: CREDUI_FLAGS = 1024u32; +pub const CREDUI_MAX_CAPTION_LENGTH: u32 = 128u32; +pub const CREDUI_MAX_DOMAIN_TARGET_LENGTH: u32 = 337u32; +pub const CREDUI_MAX_GENERIC_TARGET_LENGTH: u32 = 32767u32; +pub const CREDUI_MAX_MESSAGE_LENGTH: u32 = 1024u32; +pub const CREDUI_MAX_USERNAME_LENGTH: u32 = 513u32; +pub const CRED_ALLOW_NAME_RESOLUTION: u32 = 1u32; +pub const CRED_CACHE_TARGET_INFORMATION: u32 = 1u32; +pub const CRED_ENUMERATE_ALL_CREDENTIALS: CRED_ENUMERATE_FLAGS = 1u32; +pub const CRED_FLAGS_NGC_CERT: CRED_FLAGS = 128u32; +pub const CRED_FLAGS_OWF_CRED_BLOB: CRED_FLAGS = 8u32; +pub const CRED_FLAGS_PASSWORD_FOR_CERT: CRED_FLAGS = 1u32; +pub const CRED_FLAGS_PROMPT_NOW: CRED_FLAGS = 2u32; +pub const CRED_FLAGS_REQUIRE_CONFIRMATION: CRED_FLAGS = 16u32; +pub const CRED_FLAGS_USERNAME_TARGET: CRED_FLAGS = 4u32; +pub const CRED_FLAGS_VALID_FLAGS: CRED_FLAGS = 61695u32; +pub const CRED_FLAGS_VALID_INPUT_FLAGS: CRED_FLAGS = 61599u32; +pub const CRED_FLAGS_VSM_PROTECTED: CRED_FLAGS = 64u32; +pub const CRED_FLAGS_WILDCARD_MATCH: CRED_FLAGS = 32u32; +pub const CRED_LOGON_TYPES_MASK: u32 = 61440u32; +pub const CRED_MAX_ATTRIBUTES: u32 = 64u32; +pub const CRED_MAX_CREDENTIAL_BLOB_SIZE: u32 = 2560u32; +pub const CRED_MAX_DOMAIN_TARGET_NAME_LENGTH: u32 = 337u32; +pub const CRED_MAX_GENERIC_TARGET_NAME_LENGTH: u32 = 32767u32; +pub const CRED_MAX_STRING_LENGTH: u32 = 256u32; +pub const CRED_MAX_TARGETNAME_ATTRIBUTE_LENGTH: u32 = 256u32; +pub const CRED_MAX_TARGETNAME_NAMESPACE_LENGTH: u32 = 256u32; +pub const CRED_MAX_USERNAME_LENGTH: u32 = 513u32; +pub const CRED_MAX_VALUE_SIZE: u32 = 256u32; +pub const CRED_PACK_GENERIC_CREDENTIALS: CRED_PACK_FLAGS = 4u32; +pub const CRED_PACK_ID_PROVIDER_CREDENTIALS: CRED_PACK_FLAGS = 8u32; +pub const CRED_PACK_PROTECTED_CREDENTIALS: CRED_PACK_FLAGS = 1u32; +pub const CRED_PACK_WOW_BUFFER: CRED_PACK_FLAGS = 2u32; +pub const CRED_PERSIST_ENTERPRISE: CRED_PERSIST = 3u32; +pub const CRED_PERSIST_LOCAL_MACHINE: CRED_PERSIST = 2u32; +pub const CRED_PERSIST_NONE: CRED_PERSIST = 0u32; +pub const CRED_PERSIST_SESSION: CRED_PERSIST = 1u32; +pub const CRED_PRESERVE_CREDENTIAL_BLOB: u32 = 1u32; +pub const CRED_PROTECT_AS_SELF: u32 = 1u32; +pub const CRED_PROTECT_TO_SYSTEM: u32 = 2u32; +pub const CRED_SESSION_WILDCARD_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("*Session"); +pub const CRED_SESSION_WILDCARD_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("*Session"); +pub const CRED_SESSION_WILDCARD_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("*Session"); +pub const CRED_TARGETNAME_ATTRIBUTE_BATCH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("batch"); +pub const CRED_TARGETNAME_ATTRIBUTE_BATCH_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("batch"); +pub const CRED_TARGETNAME_ATTRIBUTE_BATCH_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("batch"); +pub const CRED_TARGETNAME_ATTRIBUTE_CACHEDINTERACTIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("cachedinteractive"); +pub const CRED_TARGETNAME_ATTRIBUTE_CACHEDINTERACTIVE_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("cachedinteractive"); +pub const CRED_TARGETNAME_ATTRIBUTE_CACHEDINTERACTIVE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("cachedinteractive"); +pub const CRED_TARGETNAME_ATTRIBUTE_INTERACTIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("interactive"); +pub const CRED_TARGETNAME_ATTRIBUTE_INTERACTIVE_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("interactive"); +pub const CRED_TARGETNAME_ATTRIBUTE_INTERACTIVE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("interactive"); +pub const CRED_TARGETNAME_ATTRIBUTE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("name"); +pub const CRED_TARGETNAME_ATTRIBUTE_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("name"); +pub const CRED_TARGETNAME_ATTRIBUTE_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("name"); +pub const CRED_TARGETNAME_ATTRIBUTE_NETWORK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("network"); +pub const CRED_TARGETNAME_ATTRIBUTE_NETWORKCLEARTEXT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("networkcleartext"); +pub const CRED_TARGETNAME_ATTRIBUTE_NETWORKCLEARTEXT_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("networkcleartext"); +pub const CRED_TARGETNAME_ATTRIBUTE_NETWORKCLEARTEXT_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("networkcleartext"); +pub const CRED_TARGETNAME_ATTRIBUTE_NETWORK_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("network"); +pub const CRED_TARGETNAME_ATTRIBUTE_NETWORK_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("network"); +pub const CRED_TARGETNAME_ATTRIBUTE_REMOTEINTERACTIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("remoteinteractive"); +pub const CRED_TARGETNAME_ATTRIBUTE_REMOTEINTERACTIVE_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("remoteinteractive"); +pub const CRED_TARGETNAME_ATTRIBUTE_REMOTEINTERACTIVE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("remoteinteractive"); +pub const CRED_TARGETNAME_ATTRIBUTE_SERVICE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("service"); +pub const CRED_TARGETNAME_ATTRIBUTE_SERVICE_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("service"); +pub const CRED_TARGETNAME_ATTRIBUTE_SERVICE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("service"); +pub const CRED_TARGETNAME_ATTRIBUTE_TARGET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("target"); +pub const CRED_TARGETNAME_ATTRIBUTE_TARGET_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("target"); +pub const CRED_TARGETNAME_ATTRIBUTE_TARGET_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("target"); +pub const CRED_TARGETNAME_DOMAIN_NAMESPACE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Domain"); +pub const CRED_TARGETNAME_DOMAIN_NAMESPACE_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Domain"); +pub const CRED_TARGETNAME_DOMAIN_NAMESPACE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Domain"); +pub const CRED_TARGETNAME_LEGACYGENERIC_NAMESPACE_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("LegacyGeneric"); +pub const CRED_TARGETNAME_LEGACYGENERIC_NAMESPACE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LegacyGeneric"); +pub const CRED_TI_CREATE_EXPLICIT_CRED: u32 = 16u32; +pub const CRED_TI_DNSTREE_IS_DFS_SERVER: u32 = 64u32; +pub const CRED_TI_DOMAIN_FORMAT_UNKNOWN: u32 = 2u32; +pub const CRED_TI_ONLY_PASSWORD_REQUIRED: u32 = 4u32; +pub const CRED_TI_SERVER_FORMAT_UNKNOWN: u32 = 1u32; +pub const CRED_TI_USERNAME_TARGET: u32 = 8u32; +pub const CRED_TI_VALID_FLAGS: u32 = 61567u32; +pub const CRED_TI_WORKGROUP_MEMBER: u32 = 32u32; +pub const CRED_TYPE_DOMAIN_CERTIFICATE: CRED_TYPE = 3u32; +pub const CRED_TYPE_DOMAIN_EXTENDED: CRED_TYPE = 6u32; +pub const CRED_TYPE_DOMAIN_PASSWORD: CRED_TYPE = 2u32; +pub const CRED_TYPE_DOMAIN_VISIBLE_PASSWORD: CRED_TYPE = 4u32; +pub const CRED_TYPE_GENERIC: CRED_TYPE = 1u32; +pub const CRED_TYPE_GENERIC_CERTIFICATE: CRED_TYPE = 5u32; +pub const CRED_TYPE_MAXIMUM: CRED_TYPE = 7u32; +pub const CRED_TYPE_MAXIMUM_EX: CRED_TYPE = 1007u32; +pub const CRED_UNPROTECT_ALLOW_TO_SYSTEM: u32 = 2u32; +pub const CRED_UNPROTECT_AS_SELF: u32 = 1u32; +pub const CertCredential: CRED_MARSHAL_TYPE = 1i32; +pub const CredForSystemProtection: CRED_PROTECTION_TYPE = 3i32; +pub const CredTrustedProtection: CRED_PROTECTION_TYPE = 2i32; +pub const CredUnprotected: CRED_PROTECTION_TYPE = 0i32; +pub const CredUserProtection: CRED_PROTECTION_TYPE = 1i32; +pub const CredsspCertificateCreds: CREDSPP_SUBMIT_TYPE = 13i32; +pub const CredsspCredEx: CREDSPP_SUBMIT_TYPE = 100i32; +pub const CredsspPasswordCreds: CREDSPP_SUBMIT_TYPE = 2i32; +pub const CredsspSchannelCreds: CREDSPP_SUBMIT_TYPE = 4i32; +pub const CredsspSubmitBufferBoth: CREDSPP_SUBMIT_TYPE = 50i32; +pub const CredsspSubmitBufferBothOld: CREDSPP_SUBMIT_TYPE = 51i32; +pub const FILE_DEVICE_SMARTCARD: u32 = 49u32; +pub const GUID_DEVINTERFACE_SMARTCARD_READER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x50dd5230_ba8a_11d1_bf5d_0000f805f530); +pub const KeyCredentialManagerOperationErrorStateCertificateFailure: KeyCredentialManagerOperationErrorStates = 4i32; +pub const KeyCredentialManagerOperationErrorStateDeviceJoinFailure: KeyCredentialManagerOperationErrorStates = 1i32; +pub const KeyCredentialManagerOperationErrorStateHardwareFailure: KeyCredentialManagerOperationErrorStates = 32i32; +pub const KeyCredentialManagerOperationErrorStateNone: KeyCredentialManagerOperationErrorStates = 0i32; +pub const KeyCredentialManagerOperationErrorStatePinExistsFailure: KeyCredentialManagerOperationErrorStates = 64i32; +pub const KeyCredentialManagerOperationErrorStatePolicyFailure: KeyCredentialManagerOperationErrorStates = 16i32; +pub const KeyCredentialManagerOperationErrorStateRemoteSessionFailure: KeyCredentialManagerOperationErrorStates = 8i32; +pub const KeyCredentialManagerOperationErrorStateTokenFailure: KeyCredentialManagerOperationErrorStates = 2i32; +pub const KeyCredentialManagerPinChange: KeyCredentialManagerOperationType = 1i32; +pub const KeyCredentialManagerPinReset: KeyCredentialManagerOperationType = 2i32; +pub const KeyCredentialManagerProvisioning: KeyCredentialManagerOperationType = 0i32; +pub const MAXIMUM_ATTR_STRING_LENGTH: u32 = 32u32; +pub const MAXIMUM_SMARTCARD_READERS: u32 = 10u32; +pub const RSR_MATCH_TYPE_ALL_CARDS: READER_SEL_REQUEST_MATCH_TYPE = 3i32; +pub const RSR_MATCH_TYPE_READER_AND_CONTAINER: READER_SEL_REQUEST_MATCH_TYPE = 1i32; +pub const RSR_MATCH_TYPE_SERIAL_NUMBER: READER_SEL_REQUEST_MATCH_TYPE = 2i32; +pub const SCARD_ABSENT: u32 = 1u32; +pub const SCARD_ALL_READERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCard$AllReaders\u{0}00"); +pub const SCARD_ATR_LENGTH: u32 = 33u32; +pub const SCARD_AUDIT_CHV_FAILURE: u32 = 0u32; +pub const SCARD_AUDIT_CHV_SUCCESS: u32 = 1u32; +pub const SCARD_CLASS_COMMUNICATIONS: u32 = 2u32; +pub const SCARD_CLASS_ICC_STATE: u32 = 9u32; +pub const SCARD_CLASS_IFD_PROTOCOL: u32 = 8u32; +pub const SCARD_CLASS_MECHANICAL: u32 = 6u32; +pub const SCARD_CLASS_PERF: u32 = 32766u32; +pub const SCARD_CLASS_POWER_MGMT: u32 = 4u32; +pub const SCARD_CLASS_PROTOCOL: u32 = 3u32; +pub const SCARD_CLASS_SECURITY: u32 = 5u32; +pub const SCARD_CLASS_SYSTEM: u32 = 32767u32; +pub const SCARD_CLASS_VENDOR_DEFINED: u32 = 7u32; +pub const SCARD_CLASS_VENDOR_INFO: u32 = 1u32; +pub const SCARD_COLD_RESET: u32 = 1u32; +pub const SCARD_DEFAULT_READERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCard$DefaultReaders\u{0}00"); +pub const SCARD_EJECT_CARD: u32 = 3u32; +pub const SCARD_LEAVE_CARD: u32 = 0u32; +pub const SCARD_LOCAL_READERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCard$LocalReaders\u{0}00"); +pub const SCARD_NEGOTIABLE: u32 = 5u32; +pub const SCARD_POWERED: u32 = 4u32; +pub const SCARD_POWER_DOWN: u32 = 0u32; +pub const SCARD_PRESENT: u32 = 2u32; +pub const SCARD_PROTOCOL_DEFAULT: u32 = 2147483648u32; +pub const SCARD_PROTOCOL_OPTIMAL: u32 = 0u32; +pub const SCARD_PROTOCOL_RAW: u32 = 65536u32; +pub const SCARD_PROTOCOL_T0: u32 = 1u32; +pub const SCARD_PROTOCOL_T1: u32 = 2u32; +pub const SCARD_PROTOCOL_UNDEFINED: u32 = 0u32; +pub const SCARD_PROVIDER_CSP: u32 = 2u32; +pub const SCARD_PROVIDER_KSP: u32 = 3u32; +pub const SCARD_PROVIDER_PRIMARY: u32 = 1u32; +pub const SCARD_READER_CONFISCATES: u32 = 4u32; +pub const SCARD_READER_CONTACTLESS: u32 = 8u32; +pub const SCARD_READER_EJECTS: u32 = 2u32; +pub const SCARD_READER_SWALLOWS: u32 = 1u32; +pub const SCARD_READER_TYPE_EMBEDDEDSE: u32 = 2048u32; +pub const SCARD_READER_TYPE_IDE: u32 = 16u32; +pub const SCARD_READER_TYPE_KEYBOARD: u32 = 4u32; +pub const SCARD_READER_TYPE_NFC: u32 = 256u32; +pub const SCARD_READER_TYPE_NGC: u32 = 1024u32; +pub const SCARD_READER_TYPE_PARALELL: u32 = 2u32; +pub const SCARD_READER_TYPE_PCMCIA: u32 = 64u32; +pub const SCARD_READER_TYPE_SCSI: u32 = 8u32; +pub const SCARD_READER_TYPE_SERIAL: u32 = 1u32; +pub const SCARD_READER_TYPE_TPM: u32 = 128u32; +pub const SCARD_READER_TYPE_UICC: u32 = 512u32; +pub const SCARD_READER_TYPE_USB: u32 = 32u32; +pub const SCARD_READER_TYPE_VENDOR: u32 = 240u32; +pub const SCARD_RESET_CARD: u32 = 1u32; +pub const SCARD_SCOPE_SYSTEM: SCARD_SCOPE = 2u32; +pub const SCARD_SCOPE_TERMINAL: u32 = 1u32; +pub const SCARD_SCOPE_USER: SCARD_SCOPE = 0u32; +pub const SCARD_SHARE_DIRECT: u32 = 3u32; +pub const SCARD_SHARE_EXCLUSIVE: u32 = 1u32; +pub const SCARD_SHARE_SHARED: u32 = 2u32; +pub const SCARD_SPECIFIC: u32 = 6u32; +pub const SCARD_STATE_ATRMATCH: SCARD_STATE = 64u32; +pub const SCARD_STATE_CHANGED: SCARD_STATE = 2u32; +pub const SCARD_STATE_EMPTY: SCARD_STATE = 16u32; +pub const SCARD_STATE_EXCLUSIVE: SCARD_STATE = 128u32; +pub const SCARD_STATE_IGNORE: SCARD_STATE = 1u32; +pub const SCARD_STATE_INUSE: SCARD_STATE = 256u32; +pub const SCARD_STATE_MUTE: SCARD_STATE = 512u32; +pub const SCARD_STATE_PRESENT: SCARD_STATE = 32u32; +pub const SCARD_STATE_UNAVAILABLE: SCARD_STATE = 8u32; +pub const SCARD_STATE_UNAWARE: SCARD_STATE = 0u32; +pub const SCARD_STATE_UNKNOWN: SCARD_STATE = 4u32; +pub const SCARD_STATE_UNPOWERED: u32 = 1024u32; +pub const SCARD_SWALLOWED: u32 = 3u32; +pub const SCARD_SYSTEM_READERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCard$SystemReaders\u{0}00"); +pub const SCARD_T0_CMD_LENGTH: u32 = 5u32; +pub const SCARD_T0_HEADER_LENGTH: u32 = 7u32; +pub const SCARD_T1_EPILOGUE_LENGTH: u32 = 2u32; +pub const SCARD_T1_EPILOGUE_LENGTH_LRC: u32 = 1u32; +pub const SCARD_T1_MAX_IFS: u32 = 254u32; +pub const SCARD_T1_PROLOGUE_LENGTH: u32 = 3u32; +pub const SCARD_UNKNOWN: u32 = 0u32; +pub const SCARD_UNPOWER_CARD: u32 = 2u32; +pub const SCARD_WARM_RESET: u32 = 2u32; +pub const SCERR_NOCARDNAME: u32 = 16384u32; +pub const SCERR_NOGUIDS: u32 = 32768u32; +pub const SC_DLG_FORCE_UI: u32 = 4u32; +pub const SC_DLG_MINIMAL_UI: u32 = 1u32; +pub const SC_DLG_NO_UI: u32 = 2u32; +pub const SECPKG_ALT_ATTR: u32 = 2147483648u32; +pub const SECPKG_ATTR_C_FULL_IDENT_TOKEN: u32 = 2147483781u32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const STATUS_ACCOUNT_DISABLED: super::super::Foundation::NTSTATUS = -1073741710i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const STATUS_ACCOUNT_EXPIRED: super::super::Foundation::NTSTATUS = -1073741421i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const STATUS_ACCOUNT_LOCKED_OUT: super::super::Foundation::NTSTATUS = -1073741260i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const STATUS_ACCOUNT_RESTRICTION: super::super::Foundation::NTSTATUS = -1073741714i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const STATUS_AUTHENTICATION_FIREWALL_FAILED: super::super::Foundation::NTSTATUS = -1073740781i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const STATUS_DOWNGRADE_DETECTED: super::super::Foundation::NTSTATUS = -1073740920i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const STATUS_LOGON_FAILURE: super::super::Foundation::NTSTATUS = -1073741715i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const STATUS_LOGON_TYPE_NOT_GRANTED: super::super::Foundation::NTSTATUS = -1073741477i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const STATUS_NO_SUCH_LOGON_SESSION: super::super::Foundation::NTSTATUS = -1073741729i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const STATUS_NO_SUCH_USER: super::super::Foundation::NTSTATUS = -1073741724i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const STATUS_PASSWORD_EXPIRED: super::super::Foundation::NTSTATUS = -1073741711i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const STATUS_PASSWORD_MUST_CHANGE: super::super::Foundation::NTSTATUS = -1073741276i32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const STATUS_WRONG_PASSWORD: super::super::Foundation::NTSTATUS = -1073741718i32; +pub const TS_SSP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TSSSP"); +pub const TS_SSP_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("TSSSP"); +pub const UsernameForPackedCredentials: CRED_MARSHAL_TYPE = 4i32; +pub const UsernameTargetCredential: CRED_MARSHAL_TYPE = 2i32; +pub const szOID_TS_KP_TS_SERVER_AUTH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.54.1.2"); +pub type CREDSPP_SUBMIT_TYPE = i32; +pub type CREDUIWIN_FLAGS = u32; +pub type CREDUI_FLAGS = u32; +pub type CRED_ENUMERATE_FLAGS = u32; +pub type CRED_FLAGS = u32; +pub type CRED_MARSHAL_TYPE = i32; +pub type CRED_PACK_FLAGS = u32; +pub type CRED_PERSIST = u32; +pub type CRED_PROTECTION_TYPE = i32; +pub type CRED_TYPE = u32; +pub type KeyCredentialManagerOperationErrorStates = i32; +pub type KeyCredentialManagerOperationType = i32; +pub type READER_SEL_REQUEST_MATCH_TYPE = i32; +pub type SCARD_SCOPE = u32; +pub type SCARD_STATE = u32; +#[repr(C)] +pub struct BINARY_BLOB_CREDENTIAL_INFO { + pub cbBlob: u32, + pub pbBlob: *mut u8, +} +impl ::core::marker::Copy for BINARY_BLOB_CREDENTIAL_INFO {} +impl ::core::clone::Clone for BINARY_BLOB_CREDENTIAL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_CREDENTIAL_INFO { + pub cbSize: u32, + pub rgbHashOfCert: [u8; 20], +} +impl ::core::marker::Copy for CERT_CREDENTIAL_INFO {} +impl ::core::clone::Clone for CERT_CREDENTIAL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CREDENTIALA { + pub Flags: CRED_FLAGS, + pub Type: CRED_TYPE, + pub TargetName: ::windows_sys::core::PSTR, + pub Comment: ::windows_sys::core::PSTR, + pub LastWritten: super::super::Foundation::FILETIME, + pub CredentialBlobSize: u32, + pub CredentialBlob: *mut u8, + pub Persist: CRED_PERSIST, + pub AttributeCount: u32, + pub Attributes: *mut CREDENTIAL_ATTRIBUTEA, + pub TargetAlias: ::windows_sys::core::PSTR, + pub UserName: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CREDENTIALA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CREDENTIALA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CREDENTIALW { + pub Flags: CRED_FLAGS, + pub Type: CRED_TYPE, + pub TargetName: ::windows_sys::core::PWSTR, + pub Comment: ::windows_sys::core::PWSTR, + pub LastWritten: super::super::Foundation::FILETIME, + pub CredentialBlobSize: u32, + pub CredentialBlob: *mut u8, + pub Persist: CRED_PERSIST, + pub AttributeCount: u32, + pub Attributes: *mut CREDENTIAL_ATTRIBUTEW, + pub TargetAlias: ::windows_sys::core::PWSTR, + pub UserName: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CREDENTIALW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CREDENTIALW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREDENTIAL_ATTRIBUTEA { + pub Keyword: ::windows_sys::core::PSTR, + pub Flags: u32, + pub ValueSize: u32, + pub Value: *mut u8, +} +impl ::core::marker::Copy for CREDENTIAL_ATTRIBUTEA {} +impl ::core::clone::Clone for CREDENTIAL_ATTRIBUTEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREDENTIAL_ATTRIBUTEW { + pub Keyword: ::windows_sys::core::PWSTR, + pub Flags: u32, + pub ValueSize: u32, + pub Value: *mut u8, +} +impl ::core::marker::Copy for CREDENTIAL_ATTRIBUTEW {} +impl ::core::clone::Clone for CREDENTIAL_ATTRIBUTEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREDENTIAL_TARGET_INFORMATIONA { + pub TargetName: ::windows_sys::core::PSTR, + pub NetbiosServerName: ::windows_sys::core::PSTR, + pub DnsServerName: ::windows_sys::core::PSTR, + pub NetbiosDomainName: ::windows_sys::core::PSTR, + pub DnsDomainName: ::windows_sys::core::PSTR, + pub DnsTreeName: ::windows_sys::core::PSTR, + pub PackageName: ::windows_sys::core::PSTR, + pub Flags: u32, + pub CredTypeCount: u32, + pub CredTypes: *mut u32, +} +impl ::core::marker::Copy for CREDENTIAL_TARGET_INFORMATIONA {} +impl ::core::clone::Clone for CREDENTIAL_TARGET_INFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREDENTIAL_TARGET_INFORMATIONW { + pub TargetName: ::windows_sys::core::PWSTR, + pub NetbiosServerName: ::windows_sys::core::PWSTR, + pub DnsServerName: ::windows_sys::core::PWSTR, + pub NetbiosDomainName: ::windows_sys::core::PWSTR, + pub DnsDomainName: ::windows_sys::core::PWSTR, + pub DnsTreeName: ::windows_sys::core::PWSTR, + pub PackageName: ::windows_sys::core::PWSTR, + pub Flags: u32, + pub CredTypeCount: u32, + pub CredTypes: *mut u32, +} +impl ::core::marker::Copy for CREDENTIAL_TARGET_INFORMATIONW {} +impl ::core::clone::Clone for CREDENTIAL_TARGET_INFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREDSSP_CRED { + pub Type: CREDSPP_SUBMIT_TYPE, + pub pSchannelCred: *mut ::core::ffi::c_void, + pub pSpnegoCred: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CREDSSP_CRED {} +impl ::core::clone::Clone for CREDSSP_CRED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREDSSP_CRED_EX { + pub Type: CREDSPP_SUBMIT_TYPE, + pub Version: u32, + pub Flags: u32, + pub Reserved: u32, + pub Cred: CREDSSP_CRED, +} +impl ::core::marker::Copy for CREDSSP_CRED_EX {} +impl ::core::clone::Clone for CREDSSP_CRED_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct CREDUI_INFOA { + pub cbSize: u32, + pub hwndParent: super::super::Foundation::HWND, + pub pszMessageText: ::windows_sys::core::PCSTR, + pub pszCaptionText: ::windows_sys::core::PCSTR, + pub hbmBanner: super::super::Graphics::Gdi::HBITMAP, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for CREDUI_INFOA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for CREDUI_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct CREDUI_INFOW { + pub cbSize: u32, + pub hwndParent: super::super::Foundation::HWND, + pub pszMessageText: ::windows_sys::core::PCWSTR, + pub pszCaptionText: ::windows_sys::core::PCWSTR, + pub hbmBanner: super::super::Graphics::Gdi::HBITMAP, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for CREDUI_INFOW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for CREDUI_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KeyCredentialManagerInfo { + pub containerId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for KeyCredentialManagerInfo {} +impl ::core::clone::Clone for KeyCredentialManagerInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OPENCARDNAMEA { + pub dwStructSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub hSCardContext: usize, + pub lpstrGroupNames: ::windows_sys::core::PSTR, + pub nMaxGroupNames: u32, + pub lpstrCardNames: ::windows_sys::core::PSTR, + pub nMaxCardNames: u32, + pub rgguidInterfaces: *const ::windows_sys::core::GUID, + pub cguidInterfaces: u32, + pub lpstrRdr: ::windows_sys::core::PSTR, + pub nMaxRdr: u32, + pub lpstrCard: ::windows_sys::core::PSTR, + pub nMaxCard: u32, + pub lpstrTitle: ::windows_sys::core::PCSTR, + pub dwFlags: u32, + pub pvUserData: *mut ::core::ffi::c_void, + pub dwShareMode: u32, + pub dwPreferredProtocols: u32, + pub dwActiveProtocol: u32, + pub lpfnConnect: LPOCNCONNPROCA, + pub lpfnCheck: LPOCNCHKPROC, + pub lpfnDisconnect: LPOCNDSCPROC, + pub hCardHandle: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPENCARDNAMEA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPENCARDNAMEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OPENCARDNAMEW { + pub dwStructSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub hSCardContext: usize, + pub lpstrGroupNames: ::windows_sys::core::PWSTR, + pub nMaxGroupNames: u32, + pub lpstrCardNames: ::windows_sys::core::PWSTR, + pub nMaxCardNames: u32, + pub rgguidInterfaces: *const ::windows_sys::core::GUID, + pub cguidInterfaces: u32, + pub lpstrRdr: ::windows_sys::core::PWSTR, + pub nMaxRdr: u32, + pub lpstrCard: ::windows_sys::core::PWSTR, + pub nMaxCard: u32, + pub lpstrTitle: ::windows_sys::core::PCWSTR, + pub dwFlags: u32, + pub pvUserData: *mut ::core::ffi::c_void, + pub dwShareMode: u32, + pub dwPreferredProtocols: u32, + pub dwActiveProtocol: u32, + pub lpfnConnect: LPOCNCONNPROCW, + pub lpfnCheck: LPOCNCHKPROC, + pub lpfnDisconnect: LPOCNDSCPROC, + pub hCardHandle: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPENCARDNAMEW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPENCARDNAMEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct OPENCARDNAME_EXA { + pub dwStructSize: u32, + pub hSCardContext: usize, + pub hwndOwner: super::super::Foundation::HWND, + pub dwFlags: u32, + pub lpstrTitle: ::windows_sys::core::PCSTR, + pub lpstrSearchDesc: ::windows_sys::core::PCSTR, + pub hIcon: super::super::UI::WindowsAndMessaging::HICON, + pub pOpenCardSearchCriteria: *mut OPENCARD_SEARCH_CRITERIAA, + pub lpfnConnect: LPOCNCONNPROCA, + pub pvUserData: *mut ::core::ffi::c_void, + pub dwShareMode: u32, + pub dwPreferredProtocols: u32, + pub lpstrRdr: ::windows_sys::core::PSTR, + pub nMaxRdr: u32, + pub lpstrCard: ::windows_sys::core::PSTR, + pub nMaxCard: u32, + pub dwActiveProtocol: u32, + pub hCardHandle: usize, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OPENCARDNAME_EXA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OPENCARDNAME_EXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct OPENCARDNAME_EXW { + pub dwStructSize: u32, + pub hSCardContext: usize, + pub hwndOwner: super::super::Foundation::HWND, + pub dwFlags: u32, + pub lpstrTitle: ::windows_sys::core::PCWSTR, + pub lpstrSearchDesc: ::windows_sys::core::PCWSTR, + pub hIcon: super::super::UI::WindowsAndMessaging::HICON, + pub pOpenCardSearchCriteria: *mut OPENCARD_SEARCH_CRITERIAW, + pub lpfnConnect: LPOCNCONNPROCW, + pub pvUserData: *mut ::core::ffi::c_void, + pub dwShareMode: u32, + pub dwPreferredProtocols: u32, + pub lpstrRdr: ::windows_sys::core::PWSTR, + pub nMaxRdr: u32, + pub lpstrCard: ::windows_sys::core::PWSTR, + pub nMaxCard: u32, + pub dwActiveProtocol: u32, + pub hCardHandle: usize, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OPENCARDNAME_EXW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OPENCARDNAME_EXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OPENCARD_SEARCH_CRITERIAA { + pub dwStructSize: u32, + pub lpstrGroupNames: ::windows_sys::core::PSTR, + pub nMaxGroupNames: u32, + pub rgguidInterfaces: *const ::windows_sys::core::GUID, + pub cguidInterfaces: u32, + pub lpstrCardNames: ::windows_sys::core::PSTR, + pub nMaxCardNames: u32, + pub lpfnCheck: LPOCNCHKPROC, + pub lpfnConnect: LPOCNCONNPROCA, + pub lpfnDisconnect: LPOCNDSCPROC, + pub pvUserData: *mut ::core::ffi::c_void, + pub dwShareMode: u32, + pub dwPreferredProtocols: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPENCARD_SEARCH_CRITERIAA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPENCARD_SEARCH_CRITERIAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OPENCARD_SEARCH_CRITERIAW { + pub dwStructSize: u32, + pub lpstrGroupNames: ::windows_sys::core::PWSTR, + pub nMaxGroupNames: u32, + pub rgguidInterfaces: *const ::windows_sys::core::GUID, + pub cguidInterfaces: u32, + pub lpstrCardNames: ::windows_sys::core::PWSTR, + pub nMaxCardNames: u32, + pub lpfnCheck: LPOCNCHKPROC, + pub lpfnConnect: LPOCNCONNPROCW, + pub lpfnDisconnect: LPOCNDSCPROC, + pub pvUserData: *mut ::core::ffi::c_void, + pub dwShareMode: u32, + pub dwPreferredProtocols: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPENCARD_SEARCH_CRITERIAW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPENCARD_SEARCH_CRITERIAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READER_SEL_REQUEST { + pub dwShareMode: u32, + pub dwPreferredProtocols: u32, + pub MatchType: READER_SEL_REQUEST_MATCH_TYPE, + pub Anonymous: READER_SEL_REQUEST_0, +} +impl ::core::marker::Copy for READER_SEL_REQUEST {} +impl ::core::clone::Clone for READER_SEL_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union READER_SEL_REQUEST_0 { + pub ReaderAndContainerParameter: READER_SEL_REQUEST_0_0, + pub SerialNumberParameter: READER_SEL_REQUEST_0_1, +} +impl ::core::marker::Copy for READER_SEL_REQUEST_0 {} +impl ::core::clone::Clone for READER_SEL_REQUEST_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READER_SEL_REQUEST_0_0 { + pub cbReaderNameOffset: u32, + pub cchReaderNameLength: u32, + pub cbContainerNameOffset: u32, + pub cchContainerNameLength: u32, + pub dwDesiredCardModuleVersion: u32, + pub dwCspFlags: u32, +} +impl ::core::marker::Copy for READER_SEL_REQUEST_0_0 {} +impl ::core::clone::Clone for READER_SEL_REQUEST_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READER_SEL_REQUEST_0_1 { + pub cbSerialNumberOffset: u32, + pub cbSerialNumberLength: u32, + pub dwDesiredCardModuleVersion: u32, +} +impl ::core::marker::Copy for READER_SEL_REQUEST_0_1 {} +impl ::core::clone::Clone for READER_SEL_REQUEST_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READER_SEL_RESPONSE { + pub cbReaderNameOffset: u32, + pub cchReaderNameLength: u32, + pub cbCardNameOffset: u32, + pub cchCardNameLength: u32, +} +impl ::core::marker::Copy for READER_SEL_RESPONSE {} +impl ::core::clone::Clone for READER_SEL_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCARD_ATRMASK { + pub cbAtr: u32, + pub rgbAtr: [u8; 36], + pub rgbMask: [u8; 36], +} +impl ::core::marker::Copy for SCARD_ATRMASK {} +impl ::core::clone::Clone for SCARD_ATRMASK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCARD_IO_REQUEST { + pub dwProtocol: u32, + pub cbPciLength: u32, +} +impl ::core::marker::Copy for SCARD_IO_REQUEST {} +impl ::core::clone::Clone for SCARD_IO_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCARD_READERSTATEA { + pub szReader: ::windows_sys::core::PCSTR, + pub pvUserData: *mut ::core::ffi::c_void, + pub dwCurrentState: SCARD_STATE, + pub dwEventState: SCARD_STATE, + pub cbAtr: u32, + pub rgbAtr: [u8; 36], +} +impl ::core::marker::Copy for SCARD_READERSTATEA {} +impl ::core::clone::Clone for SCARD_READERSTATEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCARD_READERSTATEW { + pub szReader: ::windows_sys::core::PCWSTR, + pub pvUserData: *mut ::core::ffi::c_void, + pub dwCurrentState: SCARD_STATE, + pub dwEventState: SCARD_STATE, + pub cbAtr: u32, + pub rgbAtr: [u8; 36], +} +impl ::core::marker::Copy for SCARD_READERSTATEW {} +impl ::core::clone::Clone for SCARD_READERSTATEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCARD_T0_COMMAND { + pub bCla: u8, + pub bIns: u8, + pub bP1: u8, + pub bP2: u8, + pub bP3: u8, +} +impl ::core::marker::Copy for SCARD_T0_COMMAND {} +impl ::core::clone::Clone for SCARD_T0_COMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCARD_T0_REQUEST { + pub ioRequest: SCARD_IO_REQUEST, + pub bSw1: u8, + pub bSw2: u8, + pub Anonymous: SCARD_T0_REQUEST_0, +} +impl ::core::marker::Copy for SCARD_T0_REQUEST {} +impl ::core::clone::Clone for SCARD_T0_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SCARD_T0_REQUEST_0 { + pub CmdBytes: SCARD_T0_COMMAND, + pub rgbHeader: [u8; 5], +} +impl ::core::marker::Copy for SCARD_T0_REQUEST_0 {} +impl ::core::clone::Clone for SCARD_T0_REQUEST_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCARD_T1_REQUEST { + pub ioRequest: SCARD_IO_REQUEST, +} +impl ::core::marker::Copy for SCARD_T1_REQUEST {} +impl ::core::clone::Clone for SCARD_T1_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecHandle { + pub dwLower: usize, + pub dwUpper: usize, +} +impl ::core::marker::Copy for SecHandle {} +impl ::core::clone::Clone for SecHandle { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SecPkgContext_ClientCreds { + pub AuthBufferLen: u32, + pub AuthBuffer: *mut u8, +} +impl ::core::marker::Copy for SecPkgContext_ClientCreds {} +impl ::core::clone::Clone for SecPkgContext_ClientCreds { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USERNAME_TARGET_CREDENTIAL_INFO { + pub UserName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for USERNAME_TARGET_CREDENTIAL_INFO {} +impl ::core::clone::Clone for USERNAME_TARGET_CREDENTIAL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPOCNCHKPROC = ::core::option::Option super::super::Foundation::BOOL>; +pub type LPOCNCONNPROCA = ::core::option::Option usize>; +pub type LPOCNCONNPROCW = ::core::option::Option usize>; +pub type LPOCNDSCPROC = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/Catalog/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/Catalog/mod.rs new file mode 100644 index 000000000..81204071e --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/Catalog/mod.rs @@ -0,0 +1,217 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATAdminAcquireContext(phcatadmin : *mut isize, pgsubsystem : *const ::windows_sys::core::GUID, dwflags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATAdminAcquireContext2(phcatadmin : *mut isize, pgsubsystem : *const ::windows_sys::core::GUID, pwszhashalgorithm : ::windows_sys::core::PCWSTR, pstronghashpolicy : *const super:: CERT_STRONG_SIGN_PARA, dwflags : u32) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("wintrust.dll" "system" fn CryptCATAdminAddCatalog(hcatadmin : isize, pwszcatalogfile : ::windows_sys::core::PCWSTR, pwszselectbasename : ::windows_sys::core::PCWSTR, dwflags : u32) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATAdminCalcHashFromFileHandle(hfile : super::super::super::Foundation:: HANDLE, pcbhash : *mut u32, pbhash : *mut u8, dwflags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATAdminCalcHashFromFileHandle2(hcatadmin : isize, hfile : super::super::super::Foundation:: HANDLE, pcbhash : *mut u32, pbhash : *mut u8, dwflags : u32) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("wintrust.dll" "system" fn CryptCATAdminEnumCatalogFromHash(hcatadmin : isize, pbhash : *const u8, cbhash : u32, dwflags : u32, phprevcatinfo : *mut isize) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATAdminPauseServiceForBackup(dwflags : u32, fresume : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATAdminReleaseCatalogContext(hcatadmin : isize, hcatinfo : isize, dwflags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATAdminReleaseContext(hcatadmin : isize, dwflags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATAdminRemoveCatalog(hcatadmin : isize, pwszcatalogfile : ::windows_sys::core::PCWSTR, dwflags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATAdminResolveCatalogPath(hcatadmin : isize, pwszcatalogfile : ::windows_sys::core::PCWSTR, pscatinfo : *mut CATALOG_INFO, dwflags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn CryptCATAllocSortedMemberInfo(hcatalog : super::super::super::Foundation:: HANDLE, pwszreferencetag : ::windows_sys::core::PCWSTR) -> *mut CRYPTCATMEMBER); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATCDFClose(pcdf : *mut CRYPTCATCDF) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn CryptCATCDFEnumAttributes(pcdf : *mut CRYPTCATCDF, pmember : *mut CRYPTCATMEMBER, pprevattr : *mut CRYPTCATATTRIBUTE, pfnparseerror : PFN_CDF_PARSE_ERROR_CALLBACK) -> *mut CRYPTCATATTRIBUTE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATCDFEnumCatAttributes(pcdf : *mut CRYPTCATCDF, pprevattr : *mut CRYPTCATATTRIBUTE, pfnparseerror : PFN_CDF_PARSE_ERROR_CALLBACK) -> *mut CRYPTCATATTRIBUTE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn CryptCATCDFEnumMembers(pcdf : *mut CRYPTCATCDF, pprevmember : *mut CRYPTCATMEMBER, pfnparseerror : PFN_CDF_PARSE_ERROR_CALLBACK) -> *mut CRYPTCATMEMBER); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATCDFOpen(pwszfilepath : ::windows_sys::core::PCWSTR, pfnparseerror : PFN_CDF_PARSE_ERROR_CALLBACK) -> *mut CRYPTCATCDF); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATCatalogInfoFromContext(hcatinfo : isize, pscatinfo : *mut CATALOG_INFO, dwflags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATClose(hcatalog : super::super::super::Foundation:: HANDLE) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn CryptCATEnumerateAttr(hcatalog : super::super::super::Foundation:: HANDLE, pcatmember : *mut CRYPTCATMEMBER, pprevattr : *mut CRYPTCATATTRIBUTE) -> *mut CRYPTCATATTRIBUTE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATEnumerateCatAttr(hcatalog : super::super::super::Foundation:: HANDLE, pprevattr : *mut CRYPTCATATTRIBUTE) -> *mut CRYPTCATATTRIBUTE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn CryptCATEnumerateMember(hcatalog : super::super::super::Foundation:: HANDLE, pprevmember : *mut CRYPTCATMEMBER) -> *mut CRYPTCATMEMBER); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn CryptCATFreeSortedMemberInfo(hcatalog : super::super::super::Foundation:: HANDLE, pcatmember : *mut CRYPTCATMEMBER) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn CryptCATGetAttrInfo(hcatalog : super::super::super::Foundation:: HANDLE, pcatmember : *mut CRYPTCATMEMBER, pwszreferencetag : ::windows_sys::core::PCWSTR) -> *mut CRYPTCATATTRIBUTE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATGetCatAttrInfo(hcatalog : super::super::super::Foundation:: HANDLE, pwszreferencetag : ::windows_sys::core::PCWSTR) -> *mut CRYPTCATATTRIBUTE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn CryptCATGetMemberInfo(hcatalog : super::super::super::Foundation:: HANDLE, pwszreferencetag : ::windows_sys::core::PCWSTR) -> *mut CRYPTCATMEMBER); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATHandleFromStore(pcatstore : *mut CRYPTCATSTORE) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATOpen(pwszfilename : ::windows_sys::core::PCWSTR, fdwopenflags : CRYPTCAT_OPEN_FLAGS, hprov : usize, dwpublicversion : CRYPTCAT_VERSION, dwencodingtype : u32) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATPersistStore(hcatalog : super::super::super::Foundation:: HANDLE) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn CryptCATPutAttrInfo(hcatalog : super::super::super::Foundation:: HANDLE, pcatmember : *mut CRYPTCATMEMBER, pwszreferencetag : ::windows_sys::core::PCWSTR, dwattrtypeandaction : u32, cbdata : u32, pbdata : *mut u8) -> *mut CRYPTCATATTRIBUTE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATPutCatAttrInfo(hcatalog : super::super::super::Foundation:: HANDLE, pwszreferencetag : ::windows_sys::core::PCWSTR, dwattrtypeandaction : u32, cbdata : u32, pbdata : *mut u8) -> *mut CRYPTCATATTRIBUTE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn CryptCATPutMemberInfo(hcatalog : super::super::super::Foundation:: HANDLE, pwszfilename : ::windows_sys::core::PCWSTR, pwszreferencetag : ::windows_sys::core::PCWSTR, pgsubjecttype : *mut ::windows_sys::core::GUID, dwcertversion : u32, cbsipindirectdata : u32, pbsipindirectdata : *mut u8) -> *mut CRYPTCATMEMBER); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCATStoreFromHandle(hcatalog : super::super::super::Foundation:: HANDLE) -> *mut CRYPTCATSTORE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsCatalogFile(hfile : super::super::super::Foundation:: HANDLE, pwszfilename : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: BOOL); +pub const CRYPTCAT_ADDCATALOG_HARDLINK: u32 = 1u32; +pub const CRYPTCAT_ADDCATALOG_NONE: u32 = 0u32; +pub const CRYPTCAT_ATTR_AUTHENTICATED: u32 = 268435456u32; +pub const CRYPTCAT_ATTR_DATAASCII: u32 = 65536u32; +pub const CRYPTCAT_ATTR_DATABASE64: u32 = 131072u32; +pub const CRYPTCAT_ATTR_DATAREPLACE: u32 = 262144u32; +pub const CRYPTCAT_ATTR_NAMEASCII: u32 = 1u32; +pub const CRYPTCAT_ATTR_NAMEOBJID: u32 = 2u32; +pub const CRYPTCAT_ATTR_NO_AUTO_COMPAT_ENTRY: u32 = 16777216u32; +pub const CRYPTCAT_ATTR_UNAUTHENTICATED: u32 = 536870912u32; +pub const CRYPTCAT_E_AREA_ATTRIBUTE: u32 = 131072u32; +pub const CRYPTCAT_E_AREA_HEADER: u32 = 0u32; +pub const CRYPTCAT_E_AREA_MEMBER: u32 = 65536u32; +pub const CRYPTCAT_E_CDF_ATTR_TOOFEWVALUES: u32 = 131074u32; +pub const CRYPTCAT_E_CDF_ATTR_TYPECOMBO: u32 = 131076u32; +pub const CRYPTCAT_E_CDF_BAD_GUID_CONV: u32 = 131073u32; +pub const CRYPTCAT_E_CDF_DUPLICATE: u32 = 2u32; +pub const CRYPTCAT_E_CDF_MEMBER_FILENOTFOUND: u32 = 65540u32; +pub const CRYPTCAT_E_CDF_MEMBER_FILE_PATH: u32 = 65537u32; +pub const CRYPTCAT_E_CDF_MEMBER_INDIRECTDATA: u32 = 65538u32; +pub const CRYPTCAT_E_CDF_TAGNOTFOUND: u32 = 4u32; +pub const CRYPTCAT_E_CDF_UNSUPPORTED: u32 = 1u32; +pub const CRYPTCAT_FILEEXT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAT"); +pub const CRYPTCAT_MAX_MEMBERTAG: u32 = 64u32; +pub const CRYPTCAT_MEMBER_SORTED: u32 = 1073741824u32; +pub const CRYPTCAT_OPEN_ALWAYS: CRYPTCAT_OPEN_FLAGS = 2u32; +pub const CRYPTCAT_OPEN_CREATENEW: CRYPTCAT_OPEN_FLAGS = 1u32; +pub const CRYPTCAT_OPEN_EXCLUDE_PAGE_HASHES: CRYPTCAT_OPEN_FLAGS = 65536u32; +pub const CRYPTCAT_OPEN_EXISTING: CRYPTCAT_OPEN_FLAGS = 4u32; +pub const CRYPTCAT_OPEN_FLAGS_MASK: CRYPTCAT_OPEN_FLAGS = 4294901760u32; +pub const CRYPTCAT_OPEN_INCLUDE_PAGE_HASHES: CRYPTCAT_OPEN_FLAGS = 131072u32; +pub const CRYPTCAT_OPEN_NO_CONTENT_HCRYPTMSG: CRYPTCAT_OPEN_FLAGS = 536870912u32; +pub const CRYPTCAT_OPEN_SORTED: CRYPTCAT_OPEN_FLAGS = 1073741824u32; +pub const CRYPTCAT_OPEN_VERIFYSIGHASH: CRYPTCAT_OPEN_FLAGS = 268435456u32; +pub const CRYPTCAT_VERSION_1: CRYPTCAT_VERSION = 256u32; +pub const CRYPTCAT_VERSION_2: CRYPTCAT_VERSION = 512u32; +pub const szOID_CATALOG_LIST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.12.1.1"); +pub const szOID_CATALOG_LIST_MEMBER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.12.1.2"); +pub const szOID_CATALOG_LIST_MEMBER2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.12.1.3"); +pub type CRYPTCAT_OPEN_FLAGS = u32; +pub type CRYPTCAT_VERSION = u32; +#[repr(C)] +pub struct CATALOG_INFO { + pub cbStruct: u32, + pub wszCatalogFile: [u16; 260], +} +impl ::core::marker::Copy for CATALOG_INFO {} +impl ::core::clone::Clone for CATALOG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPTCATATTRIBUTE { + pub cbStruct: u32, + pub pwszReferenceTag: ::windows_sys::core::PWSTR, + pub dwAttrTypeAndAction: u32, + pub cbValue: u32, + pub pbValue: *mut u8, + pub dwReserved: u32, +} +impl ::core::marker::Copy for CRYPTCATATTRIBUTE {} +impl ::core::clone::Clone for CRYPTCATATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPTCATCDF { + pub cbStruct: u32, + pub hFile: super::super::super::Foundation::HANDLE, + pub dwCurFilePos: u32, + pub dwLastMemberOffset: u32, + pub fEOF: super::super::super::Foundation::BOOL, + pub pwszResultDir: ::windows_sys::core::PWSTR, + pub hCATStore: super::super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTCATCDF {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTCATCDF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +pub struct CRYPTCATMEMBER { + pub cbStruct: u32, + pub pwszReferenceTag: ::windows_sys::core::PWSTR, + pub pwszFileName: ::windows_sys::core::PWSTR, + pub gSubjectType: ::windows_sys::core::GUID, + pub fdwMemberFlags: u32, + pub pIndirectData: *mut super::Sip::SIP_INDIRECT_DATA, + pub dwCertVersion: u32, + pub dwReserved: u32, + pub hReserved: super::super::super::Foundation::HANDLE, + pub sEncodedIndirectData: super::CRYPT_INTEGER_BLOB, + pub sEncodedMemberInfo: super::CRYPT_INTEGER_BLOB, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::marker::Copy for CRYPTCATMEMBER {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::clone::Clone for CRYPTCATMEMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPTCATSTORE { + pub cbStruct: u32, + pub dwPublicVersion: u32, + pub pwszP7File: ::windows_sys::core::PWSTR, + pub hProv: usize, + pub dwEncodingType: u32, + pub fdwStoreFlags: CRYPTCAT_OPEN_FLAGS, + pub hReserved: super::super::super::Foundation::HANDLE, + pub hAttrs: super::super::super::Foundation::HANDLE, + pub hCryptMsg: *mut ::core::ffi::c_void, + pub hSorted: super::super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTCATSTORE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTCATSTORE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +pub struct MS_ADDINFO_CATALOGMEMBER { + pub cbStruct: u32, + pub pStore: *mut CRYPTCATSTORE, + pub pMember: *mut CRYPTCATMEMBER, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::marker::Copy for MS_ADDINFO_CATALOGMEMBER {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::clone::Clone for MS_ADDINFO_CATALOGMEMBER { + fn clone(&self) -> Self { + *self + } +} +pub type PFN_CDF_PARSE_ERROR_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/Certificates/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/Certificates/mod.rs new file mode 100644 index 000000000..7a6612ad3 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/Certificates/mod.rs @@ -0,0 +1,2494 @@ +::windows_targets::link!("certadm.dll" "system" fn CertSrvBackupClose(hbc : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvBackupEnd(hbc : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvBackupFree(pv : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("certadm.dll" "system" fn CertSrvBackupGetBackupLogsW(hbc : *const ::core::ffi::c_void, ppwszzbackuplogfiles : *mut ::windows_sys::core::PWSTR, pcbsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvBackupGetDatabaseNamesW(hbc : *const ::core::ffi::c_void, ppwszzattachmentinformation : *mut ::windows_sys::core::PWSTR, pcbsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvBackupGetDynamicFileListW(hbc : *const ::core::ffi::c_void, ppwszzfilelist : *mut ::windows_sys::core::PWSTR, pcbsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvBackupOpenFileW(hbc : *mut ::core::ffi::c_void, pwszattachmentname : ::windows_sys::core::PCWSTR, cbreadhintsize : u32, plifilesize : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvBackupPrepareW(pwszservername : ::windows_sys::core::PCWSTR, grbitjet : u32, dwbackupflags : CSBACKUP_TYPE, phbc : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvBackupRead(hbc : *mut ::core::ffi::c_void, pvbuffer : *mut ::core::ffi::c_void, cbbuffer : u32, pcbread : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvBackupTruncateLogs(hbc : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("certadm.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertSrvIsServerOnlineW(pwszservername : ::windows_sys::core::PCWSTR, pfserveronline : *mut super::super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvRestoreEnd(hbc : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvRestoreGetDatabaseLocationsW(hbc : *const ::core::ffi::c_void, ppwszzdatabaselocationlist : *mut ::windows_sys::core::PWSTR, pcbsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvRestorePrepareW(pwszservername : ::windows_sys::core::PCWSTR, dwrestoreflags : u32, phbc : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvRestoreRegisterComplete(hbc : *mut ::core::ffi::c_void, hrrestorestate : ::windows_sys::core::HRESULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvRestoreRegisterThroughFile(hbc : *mut ::core::ffi::c_void, pwszcheckpointfilepath : ::windows_sys::core::PCWSTR, pwszlogpath : ::windows_sys::core::PCWSTR, rgrstmap : *mut CSEDB_RSTMAPW, crstmap : i32, pwszbackuplogpath : ::windows_sys::core::PCWSTR, genlow : u32, genhigh : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvRestoreRegisterW(hbc : *mut ::core::ffi::c_void, pwszcheckpointfilepath : ::windows_sys::core::PCWSTR, pwszlogpath : ::windows_sys::core::PCWSTR, rgrstmap : *mut CSEDB_RSTMAPW, crstmap : i32, pwszbackuplogpath : ::windows_sys::core::PCWSTR, genlow : u32, genhigh : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("certadm.dll" "system" fn CertSrvServerControlW(pwszservername : ::windows_sys::core::PCWSTR, dwcontrolflags : u32, pcbout : *mut u32, ppbout : *mut *mut u8) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("certpoleng.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PstAcquirePrivateKey(pcert : *const super:: CERT_CONTEXT) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +::windows_targets::link!("certpoleng.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] fn PstGetCertificateChain(pcert : *const super:: CERT_CONTEXT, ptrustedissuers : *const super::super::Authentication::Identity:: SecPkgContext_IssuerListInfoEx, ppcertchaincontext : *mut *mut super:: CERT_CHAIN_CONTEXT) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("certpoleng.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PstGetCertificates(ptargetname : *const super::super::super::Foundation:: UNICODE_STRING, ccriteria : u32, rgpcriteria : *const super:: CERT_SELECT_CRITERIA, bisclient : super::super::super::Foundation:: BOOL, pdwcertchaincontextcount : *mut u32, ppcertchaincontexts : *mut *mut *mut super:: CERT_CHAIN_CONTEXT) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +::windows_targets::link!("certpoleng.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] fn PstGetTrustAnchors(ptargetname : *const super::super::super::Foundation:: UNICODE_STRING, ccriteria : u32, rgpcriteria : *const super:: CERT_SELECT_CRITERIA, pptrustedissuers : *mut *mut super::super::Authentication::Identity:: SecPkgContext_IssuerListInfoEx) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +::windows_targets::link!("certpoleng.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] fn PstGetTrustAnchorsEx(ptargetname : *const super::super::super::Foundation:: UNICODE_STRING, ccriteria : u32, rgpcriteria : *const super:: CERT_SELECT_CRITERIA, pcertcontext : *const super:: CERT_CONTEXT, pptrustedissuers : *mut *mut super::super::Authentication::Identity:: SecPkgContext_IssuerListInfoEx) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("certpoleng.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PstGetUserNameForCertificate(pcertcontext : *const super:: CERT_CONTEXT, username : *mut super::super::super::Foundation:: UNICODE_STRING) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] +::windows_targets::link!("certpoleng.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`"] fn PstMapCertificate(pcert : *const super:: CERT_CONTEXT, ptokeninformationtype : *mut super::super::Authentication::Identity:: LSA_TOKEN_INFORMATION_TYPE, pptokeninformation : *mut *mut ::core::ffi::c_void) -> super::super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("certpoleng.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PstValidate(ptargetname : *const super::super::super::Foundation:: UNICODE_STRING, bisclient : super::super::super::Foundation:: BOOL, prequestedissuancepolicy : *const super:: CERT_USAGE_MATCH, phadditionalcertstore : *const super:: HCERTSTORE, pcert : *const super:: CERT_CONTEXT, pprovguid : *mut ::windows_sys::core::GUID) -> super::super::super::Foundation:: NTSTATUS); +pub type IAlternativeName = *mut ::core::ffi::c_void; +pub type IAlternativeNames = *mut ::core::ffi::c_void; +pub type IBinaryConverter = *mut ::core::ffi::c_void; +pub type IBinaryConverter2 = *mut ::core::ffi::c_void; +pub type ICEnroll = *mut ::core::ffi::c_void; +pub type ICEnroll2 = *mut ::core::ffi::c_void; +pub type ICEnroll3 = *mut ::core::ffi::c_void; +pub type ICEnroll4 = *mut ::core::ffi::c_void; +pub type ICertAdmin = *mut ::core::ffi::c_void; +pub type ICertAdmin2 = *mut ::core::ffi::c_void; +pub type ICertConfig = *mut ::core::ffi::c_void; +pub type ICertConfig2 = *mut ::core::ffi::c_void; +pub type ICertEncodeAltName = *mut ::core::ffi::c_void; +pub type ICertEncodeAltName2 = *mut ::core::ffi::c_void; +pub type ICertEncodeBitString = *mut ::core::ffi::c_void; +pub type ICertEncodeBitString2 = *mut ::core::ffi::c_void; +pub type ICertEncodeCRLDistInfo = *mut ::core::ffi::c_void; +pub type ICertEncodeCRLDistInfo2 = *mut ::core::ffi::c_void; +pub type ICertEncodeDateArray = *mut ::core::ffi::c_void; +pub type ICertEncodeDateArray2 = *mut ::core::ffi::c_void; +pub type ICertEncodeLongArray = *mut ::core::ffi::c_void; +pub type ICertEncodeLongArray2 = *mut ::core::ffi::c_void; +pub type ICertEncodeStringArray = *mut ::core::ffi::c_void; +pub type ICertEncodeStringArray2 = *mut ::core::ffi::c_void; +pub type ICertExit = *mut ::core::ffi::c_void; +pub type ICertExit2 = *mut ::core::ffi::c_void; +pub type ICertGetConfig = *mut ::core::ffi::c_void; +pub type ICertManageModule = *mut ::core::ffi::c_void; +pub type ICertPolicy = *mut ::core::ffi::c_void; +pub type ICertPolicy2 = *mut ::core::ffi::c_void; +pub type ICertProperties = *mut ::core::ffi::c_void; +pub type ICertProperty = *mut ::core::ffi::c_void; +pub type ICertPropertyArchived = *mut ::core::ffi::c_void; +pub type ICertPropertyArchivedKeyHash = *mut ::core::ffi::c_void; +pub type ICertPropertyAutoEnroll = *mut ::core::ffi::c_void; +pub type ICertPropertyBackedUp = *mut ::core::ffi::c_void; +pub type ICertPropertyDescription = *mut ::core::ffi::c_void; +pub type ICertPropertyEnrollment = *mut ::core::ffi::c_void; +pub type ICertPropertyEnrollmentPolicyServer = *mut ::core::ffi::c_void; +pub type ICertPropertyFriendlyName = *mut ::core::ffi::c_void; +pub type ICertPropertyKeyProvInfo = *mut ::core::ffi::c_void; +pub type ICertPropertyRenewal = *mut ::core::ffi::c_void; +pub type ICertPropertyRequestOriginator = *mut ::core::ffi::c_void; +pub type ICertPropertySHA1Hash = *mut ::core::ffi::c_void; +pub type ICertRequest = *mut ::core::ffi::c_void; +pub type ICertRequest2 = *mut ::core::ffi::c_void; +pub type ICertRequest3 = *mut ::core::ffi::c_void; +pub type ICertRequestD = *mut ::core::ffi::c_void; +pub type ICertRequestD2 = *mut ::core::ffi::c_void; +pub type ICertServerExit = *mut ::core::ffi::c_void; +pub type ICertServerPolicy = *mut ::core::ffi::c_void; +pub type ICertView = *mut ::core::ffi::c_void; +pub type ICertView2 = *mut ::core::ffi::c_void; +pub type ICertificateAttestationChallenge = *mut ::core::ffi::c_void; +pub type ICertificateAttestationChallenge2 = *mut ::core::ffi::c_void; +pub type ICertificatePolicies = *mut ::core::ffi::c_void; +pub type ICertificatePolicy = *mut ::core::ffi::c_void; +pub type ICertificationAuthorities = *mut ::core::ffi::c_void; +pub type ICertificationAuthority = *mut ::core::ffi::c_void; +pub type ICryptAttribute = *mut ::core::ffi::c_void; +pub type ICryptAttributes = *mut ::core::ffi::c_void; +pub type ICspAlgorithm = *mut ::core::ffi::c_void; +pub type ICspAlgorithms = *mut ::core::ffi::c_void; +pub type ICspInformation = *mut ::core::ffi::c_void; +pub type ICspInformations = *mut ::core::ffi::c_void; +pub type ICspStatus = *mut ::core::ffi::c_void; +pub type ICspStatuses = *mut ::core::ffi::c_void; +pub type IEnroll = *mut ::core::ffi::c_void; +pub type IEnroll2 = *mut ::core::ffi::c_void; +pub type IEnroll4 = *mut ::core::ffi::c_void; +pub type IEnumCERTVIEWATTRIBUTE = *mut ::core::ffi::c_void; +pub type IEnumCERTVIEWCOLUMN = *mut ::core::ffi::c_void; +pub type IEnumCERTVIEWEXTENSION = *mut ::core::ffi::c_void; +pub type IEnumCERTVIEWROW = *mut ::core::ffi::c_void; +pub type INDESPolicy = *mut ::core::ffi::c_void; +pub type IOCSPAdmin = *mut ::core::ffi::c_void; +pub type IOCSPCAConfiguration = *mut ::core::ffi::c_void; +pub type IOCSPCAConfigurationCollection = *mut ::core::ffi::c_void; +pub type IOCSPProperty = *mut ::core::ffi::c_void; +pub type IOCSPPropertyCollection = *mut ::core::ffi::c_void; +pub type IObjectId = *mut ::core::ffi::c_void; +pub type IObjectIds = *mut ::core::ffi::c_void; +pub type IPolicyQualifier = *mut ::core::ffi::c_void; +pub type IPolicyQualifiers = *mut ::core::ffi::c_void; +pub type ISignerCertificate = *mut ::core::ffi::c_void; +pub type ISignerCertificates = *mut ::core::ffi::c_void; +pub type ISmimeCapabilities = *mut ::core::ffi::c_void; +pub type ISmimeCapability = *mut ::core::ffi::c_void; +pub type IX500DistinguishedName = *mut ::core::ffi::c_void; +pub type IX509Attribute = *mut ::core::ffi::c_void; +pub type IX509AttributeArchiveKey = *mut ::core::ffi::c_void; +pub type IX509AttributeArchiveKeyHash = *mut ::core::ffi::c_void; +pub type IX509AttributeClientId = *mut ::core::ffi::c_void; +pub type IX509AttributeCspProvider = *mut ::core::ffi::c_void; +pub type IX509AttributeExtensions = *mut ::core::ffi::c_void; +pub type IX509AttributeOSVersion = *mut ::core::ffi::c_void; +pub type IX509AttributeRenewalCertificate = *mut ::core::ffi::c_void; +pub type IX509Attributes = *mut ::core::ffi::c_void; +pub type IX509CertificateRequest = *mut ::core::ffi::c_void; +pub type IX509CertificateRequestCertificate = *mut ::core::ffi::c_void; +pub type IX509CertificateRequestCertificate2 = *mut ::core::ffi::c_void; +pub type IX509CertificateRequestCmc = *mut ::core::ffi::c_void; +pub type IX509CertificateRequestCmc2 = *mut ::core::ffi::c_void; +pub type IX509CertificateRequestPkcs10 = *mut ::core::ffi::c_void; +pub type IX509CertificateRequestPkcs10V2 = *mut ::core::ffi::c_void; +pub type IX509CertificateRequestPkcs10V3 = *mut ::core::ffi::c_void; +pub type IX509CertificateRequestPkcs10V4 = *mut ::core::ffi::c_void; +pub type IX509CertificateRequestPkcs7 = *mut ::core::ffi::c_void; +pub type IX509CertificateRequestPkcs7V2 = *mut ::core::ffi::c_void; +pub type IX509CertificateRevocationList = *mut ::core::ffi::c_void; +pub type IX509CertificateRevocationListEntries = *mut ::core::ffi::c_void; +pub type IX509CertificateRevocationListEntry = *mut ::core::ffi::c_void; +pub type IX509CertificateTemplate = *mut ::core::ffi::c_void; +pub type IX509CertificateTemplateWritable = *mut ::core::ffi::c_void; +pub type IX509CertificateTemplates = *mut ::core::ffi::c_void; +pub type IX509EndorsementKey = *mut ::core::ffi::c_void; +pub type IX509Enrollment = *mut ::core::ffi::c_void; +pub type IX509Enrollment2 = *mut ::core::ffi::c_void; +pub type IX509EnrollmentHelper = *mut ::core::ffi::c_void; +pub type IX509EnrollmentPolicyServer = *mut ::core::ffi::c_void; +pub type IX509EnrollmentStatus = *mut ::core::ffi::c_void; +pub type IX509EnrollmentWebClassFactory = *mut ::core::ffi::c_void; +pub type IX509Extension = *mut ::core::ffi::c_void; +pub type IX509ExtensionAlternativeNames = *mut ::core::ffi::c_void; +pub type IX509ExtensionAuthorityKeyIdentifier = *mut ::core::ffi::c_void; +pub type IX509ExtensionBasicConstraints = *mut ::core::ffi::c_void; +pub type IX509ExtensionCertificatePolicies = *mut ::core::ffi::c_void; +pub type IX509ExtensionEnhancedKeyUsage = *mut ::core::ffi::c_void; +pub type IX509ExtensionKeyUsage = *mut ::core::ffi::c_void; +pub type IX509ExtensionMSApplicationPolicies = *mut ::core::ffi::c_void; +pub type IX509ExtensionSmimeCapabilities = *mut ::core::ffi::c_void; +pub type IX509ExtensionSubjectKeyIdentifier = *mut ::core::ffi::c_void; +pub type IX509ExtensionTemplate = *mut ::core::ffi::c_void; +pub type IX509ExtensionTemplateName = *mut ::core::ffi::c_void; +pub type IX509Extensions = *mut ::core::ffi::c_void; +pub type IX509MachineEnrollmentFactory = *mut ::core::ffi::c_void; +pub type IX509NameValuePair = *mut ::core::ffi::c_void; +pub type IX509NameValuePairs = *mut ::core::ffi::c_void; +pub type IX509PolicyServerListManager = *mut ::core::ffi::c_void; +pub type IX509PolicyServerUrl = *mut ::core::ffi::c_void; +pub type IX509PrivateKey = *mut ::core::ffi::c_void; +pub type IX509PrivateKey2 = *mut ::core::ffi::c_void; +pub type IX509PublicKey = *mut ::core::ffi::c_void; +pub type IX509SCEPEnrollment = *mut ::core::ffi::c_void; +pub type IX509SCEPEnrollment2 = *mut ::core::ffi::c_void; +pub type IX509SCEPEnrollmentHelper = *mut ::core::ffi::c_void; +pub type IX509SignatureInformation = *mut ::core::ffi::c_void; +pub const AlgorithmFlagsNone: AlgorithmFlags = 0i32; +pub const AlgorithmFlagsWrap: AlgorithmFlags = 1i32; +pub const AllowNoOutstandingRequest: InstallResponseRestrictionFlags = 1i32; +pub const AllowNone: InstallResponseRestrictionFlags = 0i32; +pub const AllowUntrustedCertificate: InstallResponseRestrictionFlags = 2i32; +pub const AllowUntrustedRoot: InstallResponseRestrictionFlags = 4i32; +pub const AllowedKeySignature: Pkcs10AllowedSignatureTypes = 1i32; +pub const AllowedNullSignature: Pkcs10AllowedSignatureTypes = 2i32; +pub const CAIF_DSENTRY: u32 = 1u32; +pub const CAIF_LOCAL: u32 = 8u32; +pub const CAIF_REGISTRY: u32 = 4u32; +pub const CAIF_REGISTRYPARENT: u32 = 16u32; +pub const CAIF_SHAREDFOLDERENTRY: u32 = 2u32; +pub const CAPATHLENGTH_INFINITE: u32 = 4294967295u32; +pub const CAPropCertificate: EnrollmentCAProperty = 7i32; +pub const CAPropCertificateTypes: EnrollmentCAProperty = 6i32; +pub const CAPropCommonName: EnrollmentCAProperty = 1i32; +pub const CAPropDNSName: EnrollmentCAProperty = 5i32; +pub const CAPropDescription: EnrollmentCAProperty = 8i32; +pub const CAPropDistinguishedName: EnrollmentCAProperty = 2i32; +pub const CAPropRenewalOnly: EnrollmentCAProperty = 12i32; +pub const CAPropSanitizedName: EnrollmentCAProperty = 3i32; +pub const CAPropSanitizedShortName: EnrollmentCAProperty = 4i32; +pub const CAPropSecurity: EnrollmentCAProperty = 11i32; +pub const CAPropSiteName: EnrollmentCAProperty = 10i32; +pub const CAPropWebServers: EnrollmentCAProperty = 9i32; +pub const CA_ACCESS_ADMIN: CERTADMIN_GET_ROLES_FLAGS = 1u32; +pub const CA_ACCESS_AUDITOR: CERTADMIN_GET_ROLES_FLAGS = 4u32; +pub const CA_ACCESS_ENROLL: CERTADMIN_GET_ROLES_FLAGS = 512u32; +pub const CA_ACCESS_MASKROLES: u32 = 255u32; +pub const CA_ACCESS_OFFICER: CERTADMIN_GET_ROLES_FLAGS = 2u32; +pub const CA_ACCESS_OPERATOR: CERTADMIN_GET_ROLES_FLAGS = 8u32; +pub const CA_ACCESS_READ: CERTADMIN_GET_ROLES_FLAGS = 256u32; +pub const CA_CRL_BASE: u32 = 1u32; +pub const CA_CRL_DELTA: u32 = 2u32; +pub const CA_CRL_REPUBLISH: u32 = 16u32; +pub const CA_DISP_ERROR: u32 = 1u32; +pub const CA_DISP_INCOMPLETE: u32 = 0u32; +pub const CA_DISP_INVALID: u32 = 4u32; +pub const CA_DISP_REVOKED: u32 = 2u32; +pub const CA_DISP_UNDER_SUBMISSION: u32 = 5u32; +pub const CA_DISP_VALID: u32 = 3u32; +pub const CAlternativeName: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2013_217d_11da_b2a4_000e7bbb2b09); +pub const CAlternativeNames: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2014_217d_11da_b2a4_000e7bbb2b09); +pub const CBinaryConverter: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2002_217d_11da_b2a4_000e7bbb2b09); +pub const CCLOCKSKEWMINUTESDEFAULT: u32 = 10u32; +pub const CC_DEFAULTCONFIG: CERT_GET_CONFIG_FLAGS = 0i32; +pub const CC_FIRSTCONFIG: CERT_GET_CONFIG_FLAGS = 2i32; +pub const CC_LOCALACTIVECONFIG: CERT_GET_CONFIG_FLAGS = 4i32; +pub const CC_LOCALCONFIG: CERT_GET_CONFIG_FLAGS = 3i32; +pub const CC_UIPICKCONFIG: CERT_GET_CONFIG_FLAGS = 1i32; +pub const CC_UIPICKCONFIGSKIPLOCALCA: CERT_GET_CONFIG_FLAGS = 5i32; +pub const CCertAdmin: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x37eabaf0_7fb6_11d0_8817_00a0c903b83c); +pub const CCertConfig: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x372fce38_4324_11d0_8810_00a0c903b83c); +pub const CCertEncodeAltName: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1cfc4cda_1271_11d1_9bd4_00c04fb683fa); +pub const CCertEncodeBitString: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6d6b3cd8_1278_11d1_9bd4_00c04fb683fa); +pub const CCertEncodeCRLDistInfo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x01fa60a0_bbff_11d0_8825_00a0c903b83c); +pub const CCertEncodeDateArray: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x301f77b0_a470_11d0_8821_00a0c903b83c); +pub const CCertEncodeLongArray: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4e0680a0_a0a2_11d0_8821_00a0c903b83c); +pub const CCertEncodeStringArray: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x19a76fe0_7494_11d0_8816_00a0c903b83c); +pub const CCertGetConfig: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6cc49b0_ce17_11d0_8833_00a0c903b83c); +pub const CCertProperties: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e202f_217d_11da_b2a4_000e7bbb2b09); +pub const CCertProperty: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e202e_217d_11da_b2a4_000e7bbb2b09); +pub const CCertPropertyArchived: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2037_217d_11da_b2a4_000e7bbb2b09); +pub const CCertPropertyArchivedKeyHash: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e203b_217d_11da_b2a4_000e7bbb2b09); +pub const CCertPropertyAutoEnroll: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2032_217d_11da_b2a4_000e7bbb2b09); +pub const CCertPropertyBackedUp: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2038_217d_11da_b2a4_000e7bbb2b09); +pub const CCertPropertyDescription: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2031_217d_11da_b2a4_000e7bbb2b09); +pub const CCertPropertyEnrollment: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2039_217d_11da_b2a4_000e7bbb2b09); +pub const CCertPropertyEnrollmentPolicyServer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e204c_217d_11da_b2a4_000e7bbb2b09); +pub const CCertPropertyFriendlyName: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2030_217d_11da_b2a4_000e7bbb2b09); +pub const CCertPropertyKeyProvInfo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2036_217d_11da_b2a4_000e7bbb2b09); +pub const CCertPropertyRenewal: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e203a_217d_11da_b2a4_000e7bbb2b09); +pub const CCertPropertyRequestOriginator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2033_217d_11da_b2a4_000e7bbb2b09); +pub const CCertPropertySHA1Hash: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2034_217d_11da_b2a4_000e7bbb2b09); +pub const CCertRequest: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x98aff3f0_5524_11d0_8812_00a0c903b83c); +pub const CCertServerExit: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4c4a5e40_732c_11d0_8816_00a0c903b83c); +pub const CCertServerPolicy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaa000926_ffbe_11cf_8800_00a0c903b83c); +pub const CCertView: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa12d0f7a_1e84_11d1_9bd6_00c04fb683fa); +pub const CCertificateAttestationChallenge: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1362ada1_eb60_456a_b6e1_118050db741b); +pub const CCertificatePolicies: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e201f_217d_11da_b2a4_000e7bbb2b09); +pub const CCertificatePolicy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e201e_217d_11da_b2a4_000e7bbb2b09); +pub const CCryptAttribute: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e202c_217d_11da_b2a4_000e7bbb2b09); +pub const CCryptAttributes: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e202d_217d_11da_b2a4_000e7bbb2b09); +pub const CCspInformation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2007_217d_11da_b2a4_000e7bbb2b09); +pub const CCspInformations: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2008_217d_11da_b2a4_000e7bbb2b09); +pub const CCspStatus: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2009_217d_11da_b2a4_000e7bbb2b09); +pub const CDR_EXPIRED: CERT_DELETE_ROW_FLAGS = 1i32; +pub const CDR_REQUEST_LAST_CHANGED: CERT_DELETE_ROW_FLAGS = 2i32; +pub const CERTENROLL_INDEX_BASE: u32 = 0u32; +pub const CERT_ALT_NAME_DIRECTORY_NAME: CERT_ALT_NAME = 5i32; +pub const CERT_ALT_NAME_DNS_NAME: CERT_ALT_NAME = 3i32; +pub const CERT_ALT_NAME_IP_ADDRESS: CERT_ALT_NAME = 8i32; +pub const CERT_ALT_NAME_OTHER_NAME: CERT_ALT_NAME = 1i32; +pub const CERT_ALT_NAME_REGISTERED_ID: CERT_ALT_NAME = 9i32; +pub const CERT_ALT_NAME_RFC822_NAME: CERT_ALT_NAME = 2i32; +pub const CERT_ALT_NAME_URL: CERT_ALT_NAME = 7i32; +pub const CEnroll: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43f8f289_7a20_11d0_8f06_00c04fc295e1); +pub const CEnroll2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x127698e4_e730_4e5c_a2b1_21490a70c8a1); +pub const CMM_READONLY: u32 = 2u32; +pub const CMM_REFRESHONLY: u32 = 1u32; +pub const CObjectId: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2000_217d_11da_b2a4_000e7bbb2b09); +pub const CObjectIds: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2001_217d_11da_b2a4_000e7bbb2b09); +pub const CPF_BADURL_ERROR: u32 = 32u32; +pub const CPF_BASE: u32 = 1u32; +pub const CPF_CASTORE_ERROR: u32 = 16u32; +pub const CPF_COMPLETE: u32 = 4u32; +pub const CPF_DELTA: u32 = 2u32; +pub const CPF_FILE_ERROR: u32 = 512u32; +pub const CPF_FTP_ERROR: u32 = 1024u32; +pub const CPF_HTTP_ERROR: u32 = 2048u32; +pub const CPF_LDAP_ERROR: u32 = 256u32; +pub const CPF_MANUAL: u32 = 64u32; +pub const CPF_POSTPONED_BASE_FILE_ERROR: u32 = 8192u32; +pub const CPF_POSTPONED_BASE_LDAP_ERROR: u32 = 4096u32; +pub const CPF_SHADOW: u32 = 8u32; +pub const CPF_SIGNATURE_ERROR: u32 = 128u32; +pub const CPolicyQualifier: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e201c_217d_11da_b2a4_000e7bbb2b09); +pub const CPolicyQualifiers: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e201d_217d_11da_b2a4_000e7bbb2b09); +pub const CRLF_ALLOW_REQUEST_ATTRIBUTE_SUBJECT: u32 = 65536u32; +pub const CRLF_BUILD_ROOTCA_CRLENTRIES_BASEDONKEY: u32 = 2097152u32; +pub const CRLF_CRLNUMBER_CRITICAL: u32 = 4u32; +pub const CRLF_DELETE_EXPIRED_CRLS: u32 = 2u32; +pub const CRLF_DELTA_USE_OLDEST_UNEXPIRED_BASE: u32 = 1u32; +pub const CRLF_DISABLE_CHAIN_VERIFICATION: u32 = 1048576u32; +pub const CRLF_DISABLE_RDN_REORDER: u32 = 2048u32; +pub const CRLF_DISABLE_ROOT_CROSS_CERTS: u32 = 4096u32; +pub const CRLF_ENFORCE_ENROLLMENT_AGENT: u32 = 1024u32; +pub const CRLF_IGNORE_CROSS_CERT_TRUST_ERROR: u32 = 256u32; +pub const CRLF_IGNORE_INVALID_POLICIES: u32 = 16u32; +pub const CRLF_IGNORE_UNKNOWN_CMC_ATTRIBUTES: u32 = 128u32; +pub const CRLF_LOG_FULL_RESPONSE: u32 = 8192u32; +pub const CRLF_PRESERVE_EXPIRED_CA_CERTS: u32 = 262144u32; +pub const CRLF_PRESERVE_REVOKED_CA_CERTS: u32 = 524288u32; +pub const CRLF_PUBLISH_EXPIRED_CERT_CRLS: u32 = 512u32; +pub const CRLF_REBUILD_MODIFIED_SUBJECT_ONLY: u32 = 32u32; +pub const CRLF_REVCHECK_IGNORE_NOREVCHECK: u32 = 131072u32; +pub const CRLF_REVCHECK_IGNORE_OFFLINE: u32 = 8u32; +pub const CRLF_SAVE_FAILED_CERTS: u32 = 64u32; +pub const CRLF_USE_CROSS_CERT_TEMPLATE: u32 = 32768u32; +pub const CRLF_USE_XCHG_CERT_TEMPLATE: u32 = 16384u32; +pub const CRYPT_ENUM_ALL_PROVIDERS: u32 = 1u32; +pub const CR_DISP_DENIED: CR_DISP = 2u32; +pub const CR_DISP_ERROR: CR_DISP = 1u32; +pub const CR_DISP_INCOMPLETE: CR_DISP = 0u32; +pub const CR_DISP_ISSUED: CR_DISP = 3u32; +pub const CR_DISP_ISSUED_OUT_OF_BAND: CR_DISP = 4u32; +pub const CR_DISP_REVOKED: u32 = 6u32; +pub const CR_DISP_UNDER_SUBMISSION: CR_DISP = 5u32; +pub const CR_FLG_CACROSSCERT: u32 = 128u32; +pub const CR_FLG_CAXCHGCERT: u32 = 8u32; +pub const CR_FLG_CHALLENGEPENDING: u32 = 1024u32; +pub const CR_FLG_CHALLENGESATISFIED: u32 = 2048u32; +pub const CR_FLG_DEFINEDCACERT: u32 = 512u32; +pub const CR_FLG_ENFORCEUTF8: u32 = 256u32; +pub const CR_FLG_ENROLLONBEHALFOF: u32 = 16u32; +pub const CR_FLG_FORCETELETEX: u32 = 1u32; +pub const CR_FLG_FORCEUTF8: u32 = 4u32; +pub const CR_FLG_PUBLISHERROR: u32 = 2147483648u32; +pub const CR_FLG_RENEWAL: u32 = 2u32; +pub const CR_FLG_SUBJECTUNMODIFIED: u32 = 32u32; +pub const CR_FLG_TRUSTEKCERT: u32 = 8192u32; +pub const CR_FLG_TRUSTEKKEY: u32 = 16384u32; +pub const CR_FLG_TRUSTONUSE: u32 = 4096u32; +pub const CR_FLG_VALIDENCRYPTEDKEYHASH: u32 = 64u32; +pub const CR_GEMT_DEFAULT: u32 = 0u32; +pub const CR_GEMT_HRESULT_STRING: u32 = 1u32; +pub const CR_GEMT_HTTP_ERROR: u32 = 2u32; +pub const CR_IN_BASE64: CERT_IMPORT_FLAGS = 1i32; +pub const CR_IN_BASE64HEADER: CERT_IMPORT_FLAGS = 0i32; +pub const CR_IN_BINARY: CERT_IMPORT_FLAGS = 2i32; +pub const CR_IN_CERTIFICATETRANSPARENCY: u32 = 67108864u32; +pub const CR_IN_CHALLENGERESPONSE: u32 = 1280u32; +pub const CR_IN_CLIENTIDNONE: u32 = 4194304u32; +pub const CR_IN_CMC: u32 = 1024u32; +pub const CR_IN_CONNECTONLY: u32 = 8388608u32; +pub const CR_IN_CRLS: u32 = 524288u32; +pub const CR_IN_ENCODEANY: u32 = 255u32; +pub const CR_IN_ENCODEMASK: u32 = 255u32; +pub const CR_IN_FORMATANY: u32 = 0u32; +pub const CR_IN_FORMATMASK: u32 = 65280u32; +pub const CR_IN_FULLRESPONSE: u32 = 262144u32; +pub const CR_IN_HTTP: u32 = 196608u32; +pub const CR_IN_KEYGEN: u32 = 512u32; +pub const CR_IN_MACHINE: u32 = 1048576u32; +pub const CR_IN_PKCS10: u32 = 256u32; +pub const CR_IN_PKCS7: u32 = 768u32; +pub const CR_IN_RETURNCHALLENGE: u32 = 16777216u32; +pub const CR_IN_ROBO: u32 = 2097152u32; +pub const CR_IN_RPC: u32 = 131072u32; +pub const CR_IN_SCEP: u32 = 65536u32; +pub const CR_IN_SCEPPOST: u32 = 33554432u32; +pub const CR_IN_SIGNEDCERTIFICATETIMESTAMPLIST: u32 = 1536u32; +pub const CR_OUT_BASE64: CERT_REQUEST_OUT_TYPE = 1i32; +pub const CR_OUT_BASE64HEADER: CERT_REQUEST_OUT_TYPE = 0i32; +pub const CR_OUT_BASE64REQUESTHEADER: u32 = 3u32; +pub const CR_OUT_BASE64X509CRLHEADER: u32 = 9u32; +pub const CR_OUT_BINARY: CERT_REQUEST_OUT_TYPE = 2i32; +pub const CR_OUT_CHAIN: u32 = 256u32; +pub const CR_OUT_CRLS: u32 = 512u32; +pub const CR_OUT_ENCODEMASK: u32 = 255u32; +pub const CR_OUT_HEX: u32 = 4u32; +pub const CR_OUT_HEXADDR: u32 = 10u32; +pub const CR_OUT_HEXASCII: u32 = 5u32; +pub const CR_OUT_HEXASCIIADDR: u32 = 11u32; +pub const CR_OUT_HEXRAW: u32 = 12u32; +pub const CR_OUT_NOCR: u32 = 2147483648u32; +pub const CR_OUT_NOCRLF: u32 = 1073741824u32; +pub const CR_PROP_ADVANCEDSERVER: u32 = 28u32; +pub const CR_PROP_BASECRL: u32 = 17u32; +pub const CR_PROP_BASECRLPUBLISHSTATUS: u32 = 30u32; +pub const CR_PROP_CABACKWARDCROSSCERT: u32 = 36u32; +pub const CR_PROP_CABACKWARDCROSSCERTSTATE: u32 = 38u32; +pub const CR_PROP_CACERTSTATE: u32 = 19u32; +pub const CR_PROP_CACERTSTATUSCODE: u32 = 34u32; +pub const CR_PROP_CACERTVERSION: u32 = 39u32; +pub const CR_PROP_CAFORWARDCROSSCERT: u32 = 35u32; +pub const CR_PROP_CAFORWARDCROSSCERTSTATE: u32 = 37u32; +pub const CR_PROP_CANAME: u32 = 6u32; +pub const CR_PROP_CAPROPIDMAX: u32 = 21u32; +pub const CR_PROP_CASIGCERT: u32 = 12u32; +pub const CR_PROP_CASIGCERTCHAIN: u32 = 13u32; +pub const CR_PROP_CASIGCERTCOUNT: u32 = 11u32; +pub const CR_PROP_CASIGCERTCRLCHAIN: u32 = 32u32; +pub const CR_PROP_CATYPE: u32 = 10u32; +pub const CR_PROP_CAXCHGCERT: u32 = 15u32; +pub const CR_PROP_CAXCHGCERTCHAIN: u32 = 16u32; +pub const CR_PROP_CAXCHGCERTCOUNT: u32 = 14u32; +pub const CR_PROP_CAXCHGCERTCRLCHAIN: u32 = 33u32; +pub const CR_PROP_CERTAIAOCSPURLS: u32 = 43u32; +pub const CR_PROP_CERTAIAURLS: u32 = 42u32; +pub const CR_PROP_CERTCDPURLS: u32 = 41u32; +pub const CR_PROP_CRLSTATE: u32 = 20u32; +pub const CR_PROP_DELTACRL: u32 = 18u32; +pub const CR_PROP_DELTACRLPUBLISHSTATUS: u32 = 31u32; +pub const CR_PROP_DNSNAME: u32 = 22u32; +pub const CR_PROP_EXITCOUNT: u32 = 3u32; +pub const CR_PROP_EXITDESCRIPTION: u32 = 4u32; +pub const CR_PROP_FILEVERSION: u32 = 1u32; +pub const CR_PROP_KRACERT: u32 = 26u32; +pub const CR_PROP_KRACERTCOUNT: u32 = 25u32; +pub const CR_PROP_KRACERTSTATE: u32 = 27u32; +pub const CR_PROP_KRACERTUSEDCOUNT: u32 = 24u32; +pub const CR_PROP_LOCALENAME: u32 = 44u32; +pub const CR_PROP_NONE: u32 = 0u32; +pub const CR_PROP_PARENTCA: u32 = 9u32; +pub const CR_PROP_POLICYDESCRIPTION: u32 = 5u32; +pub const CR_PROP_PRODUCTVERSION: u32 = 2u32; +pub const CR_PROP_ROLESEPARATIONENABLED: u32 = 23u32; +pub const CR_PROP_SANITIZEDCANAME: u32 = 7u32; +pub const CR_PROP_SANITIZEDCASHORTNAME: u32 = 40u32; +pub const CR_PROP_SCEPMAX: u32 = 1002u32; +pub const CR_PROP_SCEPMIN: u32 = 1000u32; +pub const CR_PROP_SCEPSERVERCAPABILITIES: u32 = 1001u32; +pub const CR_PROP_SCEPSERVERCERTS: u32 = 1000u32; +pub const CR_PROP_SCEPSERVERCERTSCHAIN: u32 = 1002u32; +pub const CR_PROP_SHAREDFOLDER: u32 = 8u32; +pub const CR_PROP_SUBJECTTEMPLATE_OIDS: u32 = 45u32; +pub const CR_PROP_TEMPLATES: u32 = 29u32; +pub const CSBACKUP_DISABLE_INCREMENTAL: u32 = 4294967295u32; +pub const CSBACKUP_TYPE_FULL: CSBACKUP_TYPE = 1u32; +pub const CSBACKUP_TYPE_LOGS_ONLY: CSBACKUP_TYPE = 2u32; +pub const CSBACKUP_TYPE_MASK: u32 = 3u32; +pub const CSBFT_DATABASE_DIRECTORY: u32 = 64u32; +pub const CSBFT_DIRECTORY: u32 = 128u32; +pub const CSBFT_LOG_DIRECTORY: u32 = 32u32; +pub const CSCONTROL_RESTART: u64 = 3u64; +pub const CSCONTROL_SHUTDOWN: u64 = 1u64; +pub const CSCONTROL_SUSPEND: u64 = 2u64; +pub const CSRESTORE_TYPE_CATCHUP: u32 = 4u32; +pub const CSRESTORE_TYPE_FULL: u32 = 1u32; +pub const CSRESTORE_TYPE_MASK: u32 = 5u32; +pub const CSRESTORE_TYPE_ONLINE: u32 = 2u32; +pub const CSURL_ADDTOCERTCDP: u32 = 2u32; +pub const CSURL_ADDTOCERTOCSP: u32 = 32u32; +pub const CSURL_ADDTOCRLCDP: u32 = 8u32; +pub const CSURL_ADDTOFRESHESTCRL: u32 = 4u32; +pub const CSURL_ADDTOIDP: u32 = 128u32; +pub const CSURL_PUBLISHRETRY: u32 = 16u32; +pub const CSURL_SERVERPUBLISH: u32 = 1u32; +pub const CSURL_SERVERPUBLISHDELTA: u32 = 64u32; +pub const CSVER_MAJOR: u32 = 7u32; +pub const CSVER_MAJOR_LONGHORN: u32 = 3u32; +pub const CSVER_MAJOR_THRESHOLD: u32 = 7u32; +pub const CSVER_MAJOR_WHISTLER: u32 = 2u32; +pub const CSVER_MAJOR_WIN2K: u32 = 1u32; +pub const CSVER_MAJOR_WIN7: u32 = 4u32; +pub const CSVER_MAJOR_WIN8: u32 = 5u32; +pub const CSVER_MAJOR_WINBLUE: u32 = 6u32; +pub const CSVER_MINOR: u32 = 1u32; +pub const CSVER_MINOR_LONGHORN_BETA1: u32 = 1u32; +pub const CSVER_MINOR_THRESHOLD: u32 = 1u32; +pub const CSVER_MINOR_WHISTLER_BETA2: u32 = 1u32; +pub const CSVER_MINOR_WHISTLER_BETA3: u32 = 2u32; +pub const CSVER_MINOR_WIN2K: u32 = 1u32; +pub const CSVER_MINOR_WIN7: u32 = 1u32; +pub const CSVER_MINOR_WIN8: u32 = 1u32; +pub const CSVER_MINOR_WINBLUE: u32 = 1u32; +pub const CSignerCertificate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e203d_217d_11da_b2a4_000e7bbb2b09); +pub const CSmimeCapabilities: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e201a_217d_11da_b2a4_000e7bbb2b09); +pub const CSmimeCapability: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2019_217d_11da_b2a4_000e7bbb2b09); +pub const CVIEWAGEMINUTESDEFAULT: u32 = 16u32; +pub const CVRC_COLUMN_MASK: CVRC_COLUMN = 4095i32; +pub const CVRC_COLUMN_RESULT: CVRC_COLUMN = 1i32; +pub const CVRC_COLUMN_SCHEMA: CVRC_COLUMN = 0i32; +pub const CVRC_COLUMN_VALUE: CVRC_COLUMN = 2i32; +pub const CVRC_TABLE_ATTRIBUTES: CVRC_TABLE = 16384i32; +pub const CVRC_TABLE_CRL: CVRC_TABLE = 20480i32; +pub const CVRC_TABLE_EXTENSIONS: CVRC_TABLE = 12288i32; +pub const CVRC_TABLE_MASK: u32 = 61440u32; +pub const CVRC_TABLE_REQCERT: CVRC_TABLE = 0i32; +pub const CVRC_TABLE_SHIFT: u32 = 12u32; +pub const CVR_SEEK_EQ: CERT_VIEW_SEEK_OPERATOR_FLAGS = 1i32; +pub const CVR_SEEK_GE: CERT_VIEW_SEEK_OPERATOR_FLAGS = 8i32; +pub const CVR_SEEK_GT: CERT_VIEW_SEEK_OPERATOR_FLAGS = 16i32; +pub const CVR_SEEK_LE: CERT_VIEW_SEEK_OPERATOR_FLAGS = 4i32; +pub const CVR_SEEK_LT: CERT_VIEW_SEEK_OPERATOR_FLAGS = 2i32; +pub const CVR_SEEK_MASK: u32 = 255u32; +pub const CVR_SEEK_NODELTA: u32 = 4096u32; +pub const CVR_SEEK_NONE: u32 = 0u32; +pub const CVR_SORT_ASCEND: u32 = 1u32; +pub const CVR_SORT_DESCEND: u32 = 2u32; +pub const CVR_SORT_NONE: u32 = 0u32; +pub const CV_COLUMN_ATTRIBUTE_DEFAULT: i32 = -5i32; +pub const CV_COLUMN_CRL_DEFAULT: i32 = -6i32; +pub const CV_COLUMN_EXTENSION_DEFAULT: i32 = -4i32; +pub const CV_COLUMN_LOG_DEFAULT: CERT_VIEW_COLUMN_INDEX = -2i32; +pub const CV_COLUMN_LOG_FAILED_DEFAULT: CERT_VIEW_COLUMN_INDEX = -3i32; +pub const CV_COLUMN_LOG_REVOKED_DEFAULT: i32 = -7i32; +pub const CV_COLUMN_QUEUE_DEFAULT: CERT_VIEW_COLUMN_INDEX = -1i32; +pub const CV_OUT_BASE64: ENUM_CERT_COLUMN_VALUE_FLAGS = 1i32; +pub const CV_OUT_BASE64HEADER: ENUM_CERT_COLUMN_VALUE_FLAGS = 0i32; +pub const CV_OUT_BASE64REQUESTHEADER: ENUM_CERT_COLUMN_VALUE_FLAGS = 3i32; +pub const CV_OUT_BASE64X509CRLHEADER: ENUM_CERT_COLUMN_VALUE_FLAGS = 9i32; +pub const CV_OUT_BINARY: ENUM_CERT_COLUMN_VALUE_FLAGS = 2i32; +pub const CV_OUT_ENCODEMASK: u32 = 255u32; +pub const CV_OUT_HEX: ENUM_CERT_COLUMN_VALUE_FLAGS = 4i32; +pub const CV_OUT_HEXADDR: ENUM_CERT_COLUMN_VALUE_FLAGS = 10i32; +pub const CV_OUT_HEXASCII: ENUM_CERT_COLUMN_VALUE_FLAGS = 5i32; +pub const CV_OUT_HEXASCIIADDR: ENUM_CERT_COLUMN_VALUE_FLAGS = 11i32; +pub const CV_OUT_HEXRAW: u32 = 12u32; +pub const CV_OUT_NOCR: u32 = 2147483648u32; +pub const CV_OUT_NOCRLF: u32 = 1073741824u32; +pub const CX500DistinguishedName: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2003_217d_11da_b2a4_000e7bbb2b09); +pub const CX509Attribute: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2022_217d_11da_b2a4_000e7bbb2b09); +pub const CX509AttributeArchiveKey: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2027_217d_11da_b2a4_000e7bbb2b09); +pub const CX509AttributeArchiveKeyHash: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2028_217d_11da_b2a4_000e7bbb2b09); +pub const CX509AttributeClientId: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2025_217d_11da_b2a4_000e7bbb2b09); +pub const CX509AttributeCspProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e202b_217d_11da_b2a4_000e7bbb2b09); +pub const CX509AttributeExtensions: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2024_217d_11da_b2a4_000e7bbb2b09); +pub const CX509AttributeOSVersion: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e202a_217d_11da_b2a4_000e7bbb2b09); +pub const CX509AttributeRenewalCertificate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2026_217d_11da_b2a4_000e7bbb2b09); +pub const CX509Attributes: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2023_217d_11da_b2a4_000e7bbb2b09); +pub const CX509CertificateRequestCertificate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2043_217d_11da_b2a4_000e7bbb2b09); +pub const CX509CertificateRequestCmc: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2045_217d_11da_b2a4_000e7bbb2b09); +pub const CX509CertificateRequestPkcs10: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2042_217d_11da_b2a4_000e7bbb2b09); +pub const CX509CertificateRequestPkcs7: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2044_217d_11da_b2a4_000e7bbb2b09); +pub const CX509CertificateRevocationList: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2060_217d_11da_b2a4_000e7bbb2b09); +pub const CX509CertificateRevocationListEntries: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e205f_217d_11da_b2a4_000e7bbb2b09); +pub const CX509CertificateRevocationListEntry: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e205e_217d_11da_b2a4_000e7bbb2b09); +pub const CX509CertificateTemplateADWritable: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8336e323_2e6a_4a04_937c_548f681839b3); +pub const CX509EndorsementKey: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x11a25a1d_b9a3_4edd_af83_3b59adbed361); +pub const CX509Enrollment: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2046_217d_11da_b2a4_000e7bbb2b09); +pub const CX509EnrollmentHelper: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2050_217d_11da_b2a4_000e7bbb2b09); +pub const CX509EnrollmentPolicyActiveDirectory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x91f39027_217f_11da_b2a4_000e7bbb2b09); +pub const CX509EnrollmentPolicyWebService: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x91f39028_217f_11da_b2a4_000e7bbb2b09); +pub const CX509EnrollmentWebClassFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2049_217d_11da_b2a4_000e7bbb2b09); +pub const CX509Extension: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e200d_217d_11da_b2a4_000e7bbb2b09); +pub const CX509ExtensionAlternativeNames: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2015_217d_11da_b2a4_000e7bbb2b09); +pub const CX509ExtensionAuthorityKeyIdentifier: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2018_217d_11da_b2a4_000e7bbb2b09); +pub const CX509ExtensionBasicConstraints: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2016_217d_11da_b2a4_000e7bbb2b09); +pub const CX509ExtensionCertificatePolicies: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2020_217d_11da_b2a4_000e7bbb2b09); +pub const CX509ExtensionEnhancedKeyUsage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2010_217d_11da_b2a4_000e7bbb2b09); +pub const CX509ExtensionKeyUsage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e200f_217d_11da_b2a4_000e7bbb2b09); +pub const CX509ExtensionMSApplicationPolicies: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2021_217d_11da_b2a4_000e7bbb2b09); +pub const CX509ExtensionSmimeCapabilities: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e201b_217d_11da_b2a4_000e7bbb2b09); +pub const CX509ExtensionSubjectKeyIdentifier: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2017_217d_11da_b2a4_000e7bbb2b09); +pub const CX509ExtensionTemplate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2012_217d_11da_b2a4_000e7bbb2b09); +pub const CX509ExtensionTemplateName: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2011_217d_11da_b2a4_000e7bbb2b09); +pub const CX509Extensions: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e200e_217d_11da_b2a4_000e7bbb2b09); +pub const CX509MachineEnrollmentFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2051_217d_11da_b2a4_000e7bbb2b09); +pub const CX509NameValuePair: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e203f_217d_11da_b2a4_000e7bbb2b09); +pub const CX509PolicyServerListManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x91f39029_217f_11da_b2a4_000e7bbb2b09); +pub const CX509PolicyServerUrl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x91f3902a_217f_11da_b2a4_000e7bbb2b09); +pub const CX509PrivateKey: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e200c_217d_11da_b2a4_000e7bbb2b09); +pub const CX509PublicKey: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e200b_217d_11da_b2a4_000e7bbb2b09); +pub const CX509SCEPEnrollment: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2061_217d_11da_b2a4_000e7bbb2b09); +pub const CX509SCEPEnrollmentHelper: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x884e2062_217d_11da_b2a4_000e7bbb2b09); +pub const ClientIdAutoEnroll: RequestClientInfoClientId = 6i32; +pub const ClientIdAutoEnroll2003: RequestClientInfoClientId = 2i32; +pub const ClientIdCertReq: RequestClientInfoClientId = 9i32; +pub const ClientIdCertReq2003: RequestClientInfoClientId = 4i32; +pub const ClientIdDefaultRequest: RequestClientInfoClientId = 5i32; +pub const ClientIdEOBO: RequestClientInfoClientId = 8i32; +pub const ClientIdNone: RequestClientInfoClientId = 0i32; +pub const ClientIdRequestWizard: RequestClientInfoClientId = 7i32; +pub const ClientIdTest: RequestClientInfoClientId = 10i32; +pub const ClientIdUserStart: RequestClientInfoClientId = 1000i32; +pub const ClientIdWinRT: RequestClientInfoClientId = 11i32; +pub const ClientIdWizard2003: RequestClientInfoClientId = 3i32; +pub const ClientIdXEnroll2003: RequestClientInfoClientId = 1i32; +pub const CommitFlagDeleteTemplate: CommitTemplateFlags = 4i32; +pub const CommitFlagSaveTemplateGenerateOID: CommitTemplateFlags = 1i32; +pub const CommitFlagSaveTemplateOverwrite: CommitTemplateFlags = 3i32; +pub const CommitFlagSaveTemplateUseCurrentOID: CommitTemplateFlags = 2i32; +pub const ContextAdministratorForceMachine: X509CertificateEnrollmentContext = 3i32; +pub const ContextMachine: X509CertificateEnrollmentContext = 2i32; +pub const ContextNone: X509CertificateEnrollmentContext = 0i32; +pub const ContextUser: X509CertificateEnrollmentContext = 1i32; +pub const DBFLAGS_CHECKPOINTDEPTH60MB: u32 = 32u32; +pub const DBFLAGS_CIRCULARLOGGING: u32 = 4u32; +pub const DBFLAGS_CREATEIFNEEDED: u32 = 2u32; +pub const DBFLAGS_DISABLESNAPSHOTBACKUP: u32 = 1024u32; +pub const DBFLAGS_ENABLEVOLATILEREQUESTS: u32 = 2048u32; +pub const DBFLAGS_LAZYFLUSH: u32 = 8u32; +pub const DBFLAGS_LOGBUFFERSHUGE: u32 = 128u32; +pub const DBFLAGS_LOGBUFFERSLARGE: u32 = 64u32; +pub const DBFLAGS_LOGFILESIZE16MB: u32 = 256u32; +pub const DBFLAGS_MAXCACHESIZEX100: u32 = 16u32; +pub const DBFLAGS_MULTITHREADTRANSACTIONS: u32 = 512u32; +pub const DBFLAGS_READONLY: u32 = 1u32; +pub const DBG_CERTSRV: u32 = 1u32; +pub const DBSESSIONCOUNTDEFAULT: u32 = 100u32; +pub const DB_DISP_ACTIVE: u32 = 8u32; +pub const DB_DISP_CA_CERT: u32 = 15u32; +pub const DB_DISP_CA_CERT_CHAIN: u32 = 16u32; +pub const DB_DISP_DENIED: u32 = 31u32; +pub const DB_DISP_ERROR: u32 = 30u32; +pub const DB_DISP_FOREIGN: u32 = 12u32; +pub const DB_DISP_ISSUED: u32 = 20u32; +pub const DB_DISP_KRA_CERT: u32 = 17u32; +pub const DB_DISP_LOG_FAILED_MIN: u32 = 30u32; +pub const DB_DISP_LOG_MIN: u32 = 20u32; +pub const DB_DISP_PENDING: u32 = 9u32; +pub const DB_DISP_QUEUE_MAX: u32 = 9u32; +pub const DB_DISP_REVOKED: u32 = 21u32; +pub const DefaultNone: EnrollmentPolicyServerPropertyFlags = 0i32; +pub const DefaultPolicyServer: EnrollmentPolicyServerPropertyFlags = 1i32; +pub const DelayRetryLong: DelayRetryAction = 3i32; +pub const DelayRetryNone: DelayRetryAction = 1i32; +pub const DelayRetryPastSuccess: DelayRetryAction = 5i32; +pub const DelayRetryShort: DelayRetryAction = 2i32; +pub const DelayRetrySuccess: DelayRetryAction = 4i32; +pub const DelayRetryUnknown: DelayRetryAction = 0i32; +pub const DisableGroupPolicyList: EnrollmentPolicyFlags = 2i32; +pub const DisableUserServerList: EnrollmentPolicyFlags = 4i32; +pub const DisplayNo: EnrollmentDisplayStatus = 0i32; +pub const DisplayYes: EnrollmentDisplayStatus = 1i32; +pub const EANR_SUPPRESS_IA5CONVERSION: u32 = 2147483648u32; +pub const EAN_NAMEOBJECTID: u32 = 2147483648u32; +pub const EDITF_ADDOLDCERTTYPE: u32 = 16u32; +pub const EDITF_ADDOLDKEYUSAGE: u32 = 8u32; +pub const EDITF_ATTRIBUTECA: u32 = 512u32; +pub const EDITF_ATTRIBUTEEKU: u32 = 32768u32; +pub const EDITF_ATTRIBUTEENDDATE: u32 = 32u32; +pub const EDITF_ATTRIBUTESUBJECTALTNAME2: u32 = 262144u32; +pub const EDITF_AUDITCERTTEMPLATELOAD: u32 = 2097152u32; +pub const EDITF_BASICCONSTRAINTSCA: u32 = 128u32; +pub const EDITF_BASICCONSTRAINTSCRITICAL: u32 = 64u32; +pub const EDITF_DISABLEEXTENSIONLIST: u32 = 4u32; +pub const EDITF_DISABLELDAPPACKAGELIST: u32 = 8388608u32; +pub const EDITF_DISABLEOLDOSCNUPN: u32 = 4194304u32; +pub const EDITF_EMAILOPTIONAL: u32 = 131072u32; +pub const EDITF_ENABLEAKICRITICAL: u32 = 8192u32; +pub const EDITF_ENABLEAKIISSUERNAME: u32 = 2048u32; +pub const EDITF_ENABLEAKIISSUERSERIAL: u32 = 4096u32; +pub const EDITF_ENABLEAKIKEYID: u32 = 256u32; +pub const EDITF_ENABLECHASECLIENTDC: u32 = 1048576u32; +pub const EDITF_ENABLEDEFAULTSMIME: u32 = 65536u32; +pub const EDITF_ENABLEKEYENCIPHERMENTCACERT: u32 = 134217728u32; +pub const EDITF_ENABLELDAPREFERRALS: u32 = 524288u32; +pub const EDITF_ENABLEOCSPREVNOCHECK: u32 = 33554432u32; +pub const EDITF_ENABLERENEWONBEHALFOF: u32 = 67108864u32; +pub const EDITF_ENABLEREQUESTEXTENSIONS: u32 = 1u32; +pub const EDITF_ENABLEUPNMAP: u32 = 16777216u32; +pub const EDITF_IGNOREREQUESTERGROUP: u32 = 1024u32; +pub const EDITF_REQUESTEXTENSIONLIST: u32 = 2u32; +pub const EDITF_SERVERUPGRADED: u32 = 16384u32; +pub const ENUMEXT_OBJECTID: u32 = 1u32; +pub const ENUM_ENTERPRISE_ROOTCA: ENUM_CATYPES = 0i32; +pub const ENUM_ENTERPRISE_SUBCA: ENUM_CATYPES = 1i32; +pub const ENUM_STANDALONE_ROOTCA: ENUM_CATYPES = 3i32; +pub const ENUM_STANDALONE_SUBCA: ENUM_CATYPES = 4i32; +pub const ENUM_UNKNOWN_CA: ENUM_CATYPES = 5i32; +pub const EXITEVENT_CERTDENIED: CERT_EXIT_EVENT_MASK = 4u32; +pub const EXITEVENT_CERTIMPORTED: u32 = 512u32; +pub const EXITEVENT_CERTISSUED: CERT_EXIT_EVENT_MASK = 1u32; +pub const EXITEVENT_CERTPENDING: CERT_EXIT_EVENT_MASK = 2u32; +pub const EXITEVENT_CERTRETRIEVEPENDING: CERT_EXIT_EVENT_MASK = 16u32; +pub const EXITEVENT_CERTREVOKED: CERT_EXIT_EVENT_MASK = 8u32; +pub const EXITEVENT_CRLISSUED: CERT_EXIT_EVENT_MASK = 32u32; +pub const EXITEVENT_INVALID: u32 = 0u32; +pub const EXITEVENT_SHUTDOWN: CERT_EXIT_EVENT_MASK = 64u32; +pub const EXITEVENT_STARTUP: u32 = 128u32; +pub const EXITPUB_ACTIVEDIRECTORY: u32 = 2u32; +pub const EXITPUB_DEFAULT_ENTERPRISE: u32 = 2u32; +pub const EXITPUB_DEFAULT_STANDALONE: u32 = 1u32; +pub const EXITPUB_FILE: u32 = 1u32; +pub const EXITPUB_REMOVEOLDCERTS: u32 = 16u32; +pub const EXTENSION_CRITICAL_FLAG: u32 = 1u32; +pub const EXTENSION_DELETE_FLAG: u32 = 4u32; +pub const EXTENSION_DISABLE_FLAG: u32 = 2u32; +pub const EXTENSION_ORIGIN_ADMIN: u32 = 196608u32; +pub const EXTENSION_ORIGIN_CACERT: u32 = 589824u32; +pub const EXTENSION_ORIGIN_CMC: u32 = 524288u32; +pub const EXTENSION_ORIGIN_IMPORTEDCERT: u32 = 393216u32; +pub const EXTENSION_ORIGIN_MASK: u32 = 983040u32; +pub const EXTENSION_ORIGIN_PKCS7: u32 = 458752u32; +pub const EXTENSION_ORIGIN_POLICY: u32 = 131072u32; +pub const EXTENSION_ORIGIN_RENEWALCERT: u32 = 327680u32; +pub const EXTENSION_ORIGIN_REQUEST: u32 = 65536u32; +pub const EXTENSION_ORIGIN_SERVER: u32 = 262144u32; +pub const EXTENSION_POLICY_MASK: u32 = 65535u32; +pub const EnrollDenied: EnrollmentEnrollStatus = 256i32; +pub const EnrollError: EnrollmentEnrollStatus = 16i32; +pub const EnrollPended: EnrollmentEnrollStatus = 2i32; +pub const EnrollPrompt: WebEnrollmentFlags = 1i32; +pub const EnrollSkipped: EnrollmentEnrollStatus = 64i32; +pub const EnrollUIDeferredEnrollmentRequired: EnrollmentEnrollStatus = 4i32; +pub const EnrollUnknown: EnrollmentEnrollStatus = 32i32; +pub const Enrolled: EnrollmentEnrollStatus = 1i32; +pub const EnrollmentAddOCSPNoCheck: X509CertificateTemplateEnrollmentFlag = 4096i32; +pub const EnrollmentAddTemplateName: X509CertificateTemplateEnrollmentFlag = 512i32; +pub const EnrollmentAllowEnrollOnBehalfOf: X509CertificateTemplateEnrollmentFlag = 2048i32; +pub const EnrollmentAutoEnrollment: X509CertificateTemplateEnrollmentFlag = 32i32; +pub const EnrollmentAutoEnrollmentCheckUserDSCertificate: X509CertificateTemplateEnrollmentFlag = 16i32; +pub const EnrollmentCertificateIssuancePoliciesFromRequest: X509CertificateTemplateEnrollmentFlag = 131072i32; +pub const EnrollmentDomainAuthenticationNotRequired: X509CertificateTemplateEnrollmentFlag = 128i32; +pub const EnrollmentIncludeBasicConstraintsForEECerts: X509CertificateTemplateEnrollmentFlag = 32768i32; +pub const EnrollmentIncludeSymmetricAlgorithms: X509CertificateTemplateEnrollmentFlag = 1i32; +pub const EnrollmentNoRevocationInfoInCerts: X509CertificateTemplateEnrollmentFlag = 16384i32; +pub const EnrollmentPendAllRequests: X509CertificateTemplateEnrollmentFlag = 2i32; +pub const EnrollmentPreviousApprovalKeyBasedValidateReenrollment: X509CertificateTemplateEnrollmentFlag = 65536i32; +pub const EnrollmentPreviousApprovalValidateReenrollment: X509CertificateTemplateEnrollmentFlag = 64i32; +pub const EnrollmentPublishToDS: X509CertificateTemplateEnrollmentFlag = 8i32; +pub const EnrollmentPublishToKRAContainer: X509CertificateTemplateEnrollmentFlag = 4i32; +pub const EnrollmentRemoveInvalidCertificateFromPersonalStore: X509CertificateTemplateEnrollmentFlag = 1024i32; +pub const EnrollmentReuseKeyOnFullSmartCard: X509CertificateTemplateEnrollmentFlag = 8192i32; +pub const EnrollmentSkipAutoRenewal: X509CertificateTemplateEnrollmentFlag = 262144i32; +pub const EnrollmentUserInteractionRequired: X509CertificateTemplateEnrollmentFlag = 256i32; +pub const ExportCAs: X509EnrollmentPolicyExportFlags = 4i32; +pub const ExportOIDs: X509EnrollmentPolicyExportFlags = 2i32; +pub const ExportTemplates: X509EnrollmentPolicyExportFlags = 1i32; +pub const FR_PROP_ATTESTATIONCHALLENGE: FULL_RESPONSE_PROPERTY_ID = 20i32; +pub const FR_PROP_ATTESTATIONPROVIDERNAME: FULL_RESPONSE_PROPERTY_ID = 21i32; +pub const FR_PROP_BODYPARTSTRING: FULL_RESPONSE_PROPERTY_ID = 3i32; +pub const FR_PROP_CAEXCHANGECERTIFICATE: FULL_RESPONSE_PROPERTY_ID = 17i32; +pub const FR_PROP_CAEXCHANGECERTIFICATECHAIN: FULL_RESPONSE_PROPERTY_ID = 18i32; +pub const FR_PROP_CAEXCHANGECERTIFICATECRLCHAIN: FULL_RESPONSE_PROPERTY_ID = 19i32; +pub const FR_PROP_CAEXCHANGECERTIFICATEHASH: FULL_RESPONSE_PROPERTY_ID = 16i32; +pub const FR_PROP_CLAIMCHALLENGE: u32 = 22u32; +pub const FR_PROP_ENCRYPTEDKEYHASH: FULL_RESPONSE_PROPERTY_ID = 14i32; +pub const FR_PROP_FAILINFO: FULL_RESPONSE_PROPERTY_ID = 7i32; +pub const FR_PROP_FULLRESPONSE: FULL_RESPONSE_PROPERTY_ID = 1i32; +pub const FR_PROP_FULLRESPONSENOPKCS7: FULL_RESPONSE_PROPERTY_ID = 15i32; +pub const FR_PROP_ISSUEDCERTIFICATE: FULL_RESPONSE_PROPERTY_ID = 11i32; +pub const FR_PROP_ISSUEDCERTIFICATECHAIN: FULL_RESPONSE_PROPERTY_ID = 12i32; +pub const FR_PROP_ISSUEDCERTIFICATECRLCHAIN: FULL_RESPONSE_PROPERTY_ID = 13i32; +pub const FR_PROP_ISSUEDCERTIFICATEHASH: FULL_RESPONSE_PROPERTY_ID = 10i32; +pub const FR_PROP_NONE: FULL_RESPONSE_PROPERTY_ID = 0i32; +pub const FR_PROP_OTHERINFOCHOICE: FULL_RESPONSE_PROPERTY_ID = 6i32; +pub const FR_PROP_PENDINFOTIME: FULL_RESPONSE_PROPERTY_ID = 9i32; +pub const FR_PROP_PENDINFOTOKEN: FULL_RESPONSE_PROPERTY_ID = 8i32; +pub const FR_PROP_STATUS: FULL_RESPONSE_PROPERTY_ID = 4i32; +pub const FR_PROP_STATUSINFOCOUNT: FULL_RESPONSE_PROPERTY_ID = 2i32; +pub const FR_PROP_STATUSSTRING: FULL_RESPONSE_PROPERTY_ID = 5i32; +pub const GeneralCA: X509CertificateTemplateGeneralFlag = 128i32; +pub const GeneralCrossCA: X509CertificateTemplateGeneralFlag = 2048i32; +pub const GeneralDefault: X509CertificateTemplateGeneralFlag = 65536i32; +pub const GeneralDonotPersist: X509CertificateTemplateGeneralFlag = 4096i32; +pub const GeneralMachineType: X509CertificateTemplateGeneralFlag = 64i32; +pub const GeneralModified: X509CertificateTemplateGeneralFlag = 131072i32; +pub const ICF_ALLOWFOREIGN: u32 = 65536u32; +pub const ICF_EXISTINGROW: u32 = 131072u32; +pub const IF_ENABLEADMINASAUDITOR: u32 = 4096u32; +pub const IF_ENABLEEXITKEYRETRIEVAL: u32 = 2048u32; +pub const IF_ENFORCEENCRYPTICERTADMIN: u32 = 1024u32; +pub const IF_ENFORCEENCRYPTICERTREQUEST: u32 = 512u32; +pub const IF_LOCKICERTREQUEST: u32 = 1u32; +pub const IF_NOLOCALICERTADMIN: u32 = 32u32; +pub const IF_NOLOCALICERTADMINBACKUP: u32 = 128u32; +pub const IF_NOLOCALICERTREQUEST: u32 = 4u32; +pub const IF_NOREMOTEICERTADMIN: u32 = 16u32; +pub const IF_NOREMOTEICERTADMINBACKUP: u32 = 64u32; +pub const IF_NOREMOTEICERTREQUEST: u32 = 2u32; +pub const IF_NORPCICERTREQUEST: u32 = 8u32; +pub const IF_NOSNAPSHOTBACKUP: u32 = 256u32; +pub const IKF_OVERWRITE: u32 = 65536u32; +pub const ISSCERT_DEFAULT_DS: u32 = 256u32; +pub const ISSCERT_DEFAULT_NODS: u32 = 256u32; +pub const ISSCERT_ENABLE: u32 = 256u32; +pub const ISSCERT_FILEURL_OLD: u32 = 8u32; +pub const ISSCERT_FTPURL_OLD: u32 = 4u32; +pub const ISSCERT_HTTPURL_OLD: u32 = 2u32; +pub const ISSCERT_LDAPURL_OLD: u32 = 1u32; +pub const ISSCERT_URLMASK_OLD: u32 = 255u32; +pub const ImportExportable: ImportPFXFlags = 16i32; +pub const ImportExportableEncrypted: ImportPFXFlags = 32i32; +pub const ImportForceOverwrite: ImportPFXFlags = 2i32; +pub const ImportInstallCertificate: ImportPFXFlags = 512i32; +pub const ImportInstallChain: ImportPFXFlags = 1024i32; +pub const ImportInstallChainAndRoot: ImportPFXFlags = 2048i32; +pub const ImportMachineContext: ImportPFXFlags = 1i32; +pub const ImportNoUserProtected: ImportPFXFlags = 64i32; +pub const ImportNone: ImportPFXFlags = 0i32; +pub const ImportSaveProperties: ImportPFXFlags = 8i32; +pub const ImportSilent: ImportPFXFlags = 4i32; +pub const ImportUserProtected: ImportPFXFlags = 128i32; +pub const ImportUserProtectedHigh: ImportPFXFlags = 256i32; +pub const InheritDefault: X509RequestInheritOptions = 0i32; +pub const InheritExtensionsFlag: X509RequestInheritOptions = 256i32; +pub const InheritKeyMask: X509RequestInheritOptions = 15i32; +pub const InheritNewDefaultKey: X509RequestInheritOptions = 1i32; +pub const InheritNewSimilarKey: X509RequestInheritOptions = 2i32; +pub const InheritNone: X509RequestInheritOptions = 16i32; +pub const InheritPrivateKey: X509RequestInheritOptions = 3i32; +pub const InheritPublicKey: X509RequestInheritOptions = 4i32; +pub const InheritRenewalCertificateFlag: X509RequestInheritOptions = 32i32; +pub const InheritReserved80000000: X509RequestInheritOptions = -2147483648i32; +pub const InheritSubjectAltNameFlag: X509RequestInheritOptions = 512i32; +pub const InheritSubjectFlag: X509RequestInheritOptions = 128i32; +pub const InheritTemplateFlag: X509RequestInheritOptions = 64i32; +pub const InheritValidityPeriodFlag: X509RequestInheritOptions = 1024i32; +pub const KRAF_DISABLEUSEDEFAULTPROVIDER: u32 = 8u32; +pub const KRAF_ENABLEARCHIVEALL: u32 = 4u32; +pub const KRAF_ENABLEFOREIGN: u32 = 1u32; +pub const KRAF_SAVEBADREQUESTKEY: u32 = 2u32; +pub const KRA_DISP_EXPIRED: u32 = 0u32; +pub const KRA_DISP_INVALID: u32 = 4u32; +pub const KRA_DISP_NOTFOUND: u32 = 1u32; +pub const KRA_DISP_NOTLOADED: u32 = 6u32; +pub const KRA_DISP_REVOKED: u32 = 2u32; +pub const KRA_DISP_UNTRUSTED: u32 = 5u32; +pub const KRA_DISP_VALID: u32 = 3u32; +pub const KR_ENABLE_MACHINE: u32 = 1u32; +pub const KR_ENABLE_USER: u32 = 2u32; +pub const LDAPF_SIGNDISABLE: u32 = 2u32; +pub const LDAPF_SSLENABLE: u32 = 1u32; +pub const LevelInnermost: InnerRequestLevel = 0i32; +pub const LevelNext: InnerRequestLevel = 1i32; +pub const LevelSafe: WebSecurityLevel = 1i32; +pub const LevelUnsafe: WebSecurityLevel = 0i32; +pub const LoadOptionCacheOnly: X509EnrollmentPolicyLoadOption = 1i32; +pub const LoadOptionDefault: X509EnrollmentPolicyLoadOption = 0i32; +pub const LoadOptionRegisterForADChanges: X509EnrollmentPolicyLoadOption = 4i32; +pub const LoadOptionReload: X509EnrollmentPolicyLoadOption = 2i32; +pub const OCSPAdmin: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd3f73511_92c9_47cb_8ff2_8d891a7c4de4); +pub const OCSPPropertyCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf935a528_ba8a_4dd9_ba79_f283275cb2de); +pub const OCSP_RF_REJECT_SIGNED_REQUESTS: OCSPRequestFlag = 1i32; +pub const OCSP_SF_ALLOW_NONCE_EXTENSION: OCSPSigningFlag = 256i32; +pub const OCSP_SF_ALLOW_SIGNINGCERT_AUTOENROLLMENT: OCSPSigningFlag = 512i32; +pub const OCSP_SF_ALLOW_SIGNINGCERT_AUTORENEWAL: OCSPSigningFlag = 4i32; +pub const OCSP_SF_AUTODISCOVER_SIGNINGCERT: OCSPSigningFlag = 16i32; +pub const OCSP_SF_FORCE_SIGNINGCERT_ISSUER_ISCA: OCSPSigningFlag = 8i32; +pub const OCSP_SF_MANUAL_ASSIGN_SIGNINGCERT: OCSPSigningFlag = 32i32; +pub const OCSP_SF_RESPONDER_ID_KEYHASH: OCSPSigningFlag = 64i32; +pub const OCSP_SF_RESPONDER_ID_NAME: OCSPSigningFlag = 128i32; +pub const OCSP_SF_SILENT: OCSPSigningFlag = 1i32; +pub const OCSP_SF_USE_CACERT: OCSPSigningFlag = 2i32; +pub const PFXExportChainNoRoot: PFXExportOptions = 1i32; +pub const PFXExportChainWithRoot: PFXExportOptions = 2i32; +pub const PFXExportEEOnly: PFXExportOptions = 0i32; +pub const PROCFLG_ENFORCEGOODKEYS: u32 = 1u32; +pub const PROCFLG_NONE: u32 = 0u32; +pub const PROPCALLER_ADMIN: u32 = 1024u32; +pub const PROPCALLER_EXIT: u32 = 768u32; +pub const PROPCALLER_MASK: u32 = 3840u32; +pub const PROPCALLER_POLICY: u32 = 512u32; +pub const PROPCALLER_REQUEST: u32 = 1280u32; +pub const PROPCALLER_SERVER: u32 = 256u32; +pub const PROPFLAGS_INDEXED: u32 = 65536u32; +pub const PROPTYPE_BINARY: CERT_PROPERTY_TYPE = 3i32; +pub const PROPTYPE_DATE: CERT_PROPERTY_TYPE = 2i32; +pub const PROPTYPE_LONG: CERT_PROPERTY_TYPE = 1i32; +pub const PROPTYPE_MASK: u32 = 255u32; +pub const PROPTYPE_STRING: CERT_PROPERTY_TYPE = 4i32; +pub const PolicyQualifierTypeFlags: PolicyQualifierType = 3i32; +pub const PolicyQualifierTypeUnknown: PolicyQualifierType = 0i32; +pub const PolicyQualifierTypeUrl: PolicyQualifierType = 1i32; +pub const PolicyQualifierTypeUserNotice: PolicyQualifierType = 2i32; +pub const PrivateKeyAttestMask: X509CertificateTemplatePrivateKeyFlag = 12288i32; +pub const PrivateKeyAttestNone: X509CertificateTemplatePrivateKeyFlag = 0i32; +pub const PrivateKeyAttestPreferred: X509CertificateTemplatePrivateKeyFlag = 4096i32; +pub const PrivateKeyAttestRequired: X509CertificateTemplatePrivateKeyFlag = 8192i32; +pub const PrivateKeyAttestWithoutPolicy: X509CertificateTemplatePrivateKeyFlag = 16384i32; +pub const PrivateKeyClientVersionMask: X509CertificateTemplatePrivateKeyFlag = 251658240i32; +pub const PrivateKeyClientVersionShift: X509CertificateTemplatePrivateKeyFlag = 24i32; +pub const PrivateKeyEKTrustOnUse: X509CertificateTemplatePrivateKeyFlag = 512i32; +pub const PrivateKeyEKValidateCert: X509CertificateTemplatePrivateKeyFlag = 1024i32; +pub const PrivateKeyEKValidateKey: X509CertificateTemplatePrivateKeyFlag = 2048i32; +pub const PrivateKeyExportable: X509CertificateTemplatePrivateKeyFlag = 16i32; +pub const PrivateKeyHelloKspKey: X509CertificateTemplatePrivateKeyFlag = 1048576i32; +pub const PrivateKeyHelloLogonKey: X509CertificateTemplatePrivateKeyFlag = 2097152i32; +pub const PrivateKeyRequireAlternateSignatureAlgorithm: X509CertificateTemplatePrivateKeyFlag = 64i32; +pub const PrivateKeyRequireArchival: X509CertificateTemplatePrivateKeyFlag = 1i32; +pub const PrivateKeyRequireSameKeyRenewal: X509CertificateTemplatePrivateKeyFlag = 128i32; +pub const PrivateKeyRequireStrongKeyProtection: X509CertificateTemplatePrivateKeyFlag = 32i32; +pub const PrivateKeyServerVersionMask: X509CertificateTemplatePrivateKeyFlag = 983040i32; +pub const PrivateKeyServerVersionShift: X509CertificateTemplatePrivateKeyFlag = 16i32; +pub const PrivateKeyUseLegacyProvider: X509CertificateTemplatePrivateKeyFlag = 256i32; +pub const PsFriendlyName: PolicyServerUrlPropertyID = 1i32; +pub const PsPolicyID: PolicyServerUrlPropertyID = 0i32; +pub const PsfAllowUnTrustedCA: PolicyServerUrlFlags = 32i32; +pub const PsfAutoEnrollmentEnabled: PolicyServerUrlFlags = 16i32; +pub const PsfLocationGroupPolicy: PolicyServerUrlFlags = 1i32; +pub const PsfLocationRegistry: PolicyServerUrlFlags = 2i32; +pub const PsfNone: PolicyServerUrlFlags = 0i32; +pub const PsfUseClientId: PolicyServerUrlFlags = 4i32; +pub const REQDISP_DEFAULT_ENTERPRISE: u32 = 1u32; +pub const REQDISP_DENY: u32 = 2u32; +pub const REQDISP_ISSUE: u32 = 1u32; +pub const REQDISP_MASK: u32 = 255u32; +pub const REQDISP_PENDING: u32 = 0u32; +pub const REQDISP_PENDINGFIRST: u32 = 256u32; +pub const REQDISP_USEREQUESTATTRIBUTE: u32 = 3u32; +pub const REVEXT_ASPENABLE: u32 = 512u32; +pub const REVEXT_CDPENABLE: u32 = 256u32; +pub const REVEXT_CDPFILEURL_OLD: u32 = 8u32; +pub const REVEXT_CDPFTPURL_OLD: u32 = 4u32; +pub const REVEXT_CDPHTTPURL_OLD: u32 = 2u32; +pub const REVEXT_CDPLDAPURL_OLD: u32 = 1u32; +pub const REVEXT_CDPURLMASK_OLD: u32 = 255u32; +pub const REVEXT_DEFAULT_DS: u32 = 256u32; +pub const REVEXT_DEFAULT_NODS: u32 = 256u32; +pub const SCEPDispositionFailure: X509SCEPDisposition = 2i32; +pub const SCEPDispositionPending: X509SCEPDisposition = 3i32; +pub const SCEPDispositionPendingChallenge: X509SCEPDisposition = 11i32; +pub const SCEPDispositionSuccess: X509SCEPDisposition = 0i32; +pub const SCEPDispositionUnknown: X509SCEPDisposition = -1i32; +pub const SCEPFailBadAlgorithm: X509SCEPFailInfo = 0i32; +pub const SCEPFailBadCertId: X509SCEPFailInfo = 4i32; +pub const SCEPFailBadMessageCheck: X509SCEPFailInfo = 1i32; +pub const SCEPFailBadRequest: X509SCEPFailInfo = 2i32; +pub const SCEPFailBadTime: X509SCEPFailInfo = 3i32; +pub const SCEPFailUnknown: X509SCEPFailInfo = -1i32; +pub const SCEPMessageCertResponse: X509SCEPMessageType = 3i32; +pub const SCEPMessageClaimChallengeAnswer: X509SCEPMessageType = 41i32; +pub const SCEPMessageGetCRL: X509SCEPMessageType = 22i32; +pub const SCEPMessageGetCert: X509SCEPMessageType = 21i32; +pub const SCEPMessageGetCertInitial: X509SCEPMessageType = 20i32; +pub const SCEPMessagePKCSRequest: X509SCEPMessageType = 19i32; +pub const SCEPMessageUnknown: X509SCEPMessageType = -1i32; +pub const SCEPProcessDefault: X509SCEPProcessMessageFlags = 0i32; +pub const SCEPProcessSkipCertInstall: X509SCEPProcessMessageFlags = 1i32; +pub const SETUP_ATTEMPT_VROOT_CREATE: u32 = 128u32; +pub const SETUP_CLIENT_FLAG: u32 = 2u32; +pub const SETUP_CREATEDB_FLAG: u32 = 64u32; +pub const SETUP_DCOM_SECURITY_UPDATED_FLAG: u32 = 8192u32; +pub const SETUP_DENIED_FLAG: u32 = 32u32; +pub const SETUP_FORCECRL_FLAG: u32 = 256u32; +pub const SETUP_ONLINE_FLAG: u32 = 16u32; +pub const SETUP_REQUEST_FLAG: u32 = 8u32; +pub const SETUP_SECURITY_CHANGED: u32 = 4096u32; +pub const SETUP_SERVER_FLAG: u32 = 1u32; +pub const SETUP_SERVER_IS_UP_TO_DATE_FLAG: u32 = 16384u32; +pub const SETUP_SERVER_UPGRADED_FLAG: u32 = 1024u32; +pub const SETUP_SUSPEND_FLAG: u32 = 4u32; +pub const SETUP_UPDATE_CAOBJECT_SVRTYPE: u32 = 512u32; +pub const SETUP_W2K_SECURITY_NOT_UPGRADED_FLAG: u32 = 2048u32; +pub const SKIHashCapiSha1: KeyIdentifierHashAlgorithm = 2i32; +pub const SKIHashDefault: KeyIdentifierHashAlgorithm = 0i32; +pub const SKIHashHPKP: KeyIdentifierHashAlgorithm = 5i32; +pub const SKIHashSha1: KeyIdentifierHashAlgorithm = 1i32; +pub const SKIHashSha256: KeyIdentifierHashAlgorithm = 3i32; +pub const SelectedNo: EnrollmentSelectionStatus = 0i32; +pub const SelectedYes: EnrollmentSelectionStatus = 1i32; +pub const SubjectAlternativeNameEnrolleeSupplies: X509CertificateTemplateSubjectNameFlag = 65536i32; +pub const SubjectAlternativeNameRequireDNS: X509CertificateTemplateSubjectNameFlag = 134217728i32; +pub const SubjectAlternativeNameRequireDirectoryGUID: X509CertificateTemplateSubjectNameFlag = 16777216i32; +pub const SubjectAlternativeNameRequireDomainDNS: X509CertificateTemplateSubjectNameFlag = 4194304i32; +pub const SubjectAlternativeNameRequireEmail: X509CertificateTemplateSubjectNameFlag = 67108864i32; +pub const SubjectAlternativeNameRequireSPN: X509CertificateTemplateSubjectNameFlag = 8388608i32; +pub const SubjectAlternativeNameRequireUPN: X509CertificateTemplateSubjectNameFlag = 33554432i32; +pub const SubjectNameAndAlternativeNameOldCertSupplies: X509CertificateTemplateSubjectNameFlag = 8i32; +pub const SubjectNameEnrolleeSupplies: X509CertificateTemplateSubjectNameFlag = 1i32; +pub const SubjectNameRequireCommonName: X509CertificateTemplateSubjectNameFlag = 1073741824i32; +pub const SubjectNameRequireDNS: X509CertificateTemplateSubjectNameFlag = 268435456i32; +pub const SubjectNameRequireDirectoryPath: X509CertificateTemplateSubjectNameFlag = -2147483648i32; +pub const SubjectNameRequireEmail: X509CertificateTemplateSubjectNameFlag = 536870912i32; +pub const TP_MACHINEPOLICY: u32 = 1u32; +pub const TemplatePropAsymmetricAlgorithm: EnrollmentTemplateProperty = 18i32; +pub const TemplatePropCertificatePolicies: EnrollmentTemplateProperty = 16i32; +pub const TemplatePropCommonName: EnrollmentTemplateProperty = 1i32; +pub const TemplatePropCryptoProviders: EnrollmentTemplateProperty = 4i32; +pub const TemplatePropDescription: EnrollmentTemplateProperty = 6i32; +pub const TemplatePropEKUs: EnrollmentTemplateProperty = 3i32; +pub const TemplatePropEnrollmentFlags: EnrollmentTemplateProperty = 24i32; +pub const TemplatePropExtensions: EnrollmentTemplateProperty = 29i32; +pub const TemplatePropFriendlyName: EnrollmentTemplateProperty = 2i32; +pub const TemplatePropGeneralFlags: EnrollmentTemplateProperty = 27i32; +pub const TemplatePropHashAlgorithm: EnrollmentTemplateProperty = 22i32; +pub const TemplatePropKeySecurityDescriptor: EnrollmentTemplateProperty = 19i32; +pub const TemplatePropKeySpec: EnrollmentTemplateProperty = 7i32; +pub const TemplatePropKeyUsage: EnrollmentTemplateProperty = 23i32; +pub const TemplatePropMajorRevision: EnrollmentTemplateProperty = 5i32; +pub const TemplatePropMinimumKeySize: EnrollmentTemplateProperty = 11i32; +pub const TemplatePropMinorRevision: EnrollmentTemplateProperty = 9i32; +pub const TemplatePropOID: EnrollmentTemplateProperty = 12i32; +pub const TemplatePropPrivateKeyFlags: EnrollmentTemplateProperty = 26i32; +pub const TemplatePropRACertificatePolicies: EnrollmentTemplateProperty = 14i32; +pub const TemplatePropRAEKUs: EnrollmentTemplateProperty = 15i32; +pub const TemplatePropRASignatureCount: EnrollmentTemplateProperty = 10i32; +pub const TemplatePropRenewalPeriod: EnrollmentTemplateProperty = 31i32; +pub const TemplatePropSchemaVersion: EnrollmentTemplateProperty = 8i32; +pub const TemplatePropSecurityDescriptor: EnrollmentTemplateProperty = 28i32; +pub const TemplatePropSubjectNameFlags: EnrollmentTemplateProperty = 25i32; +pub const TemplatePropSupersede: EnrollmentTemplateProperty = 13i32; +pub const TemplatePropSymmetricAlgorithm: EnrollmentTemplateProperty = 20i32; +pub const TemplatePropSymmetricKeyLength: EnrollmentTemplateProperty = 21i32; +pub const TemplatePropV1ApplicationPolicy: EnrollmentTemplateProperty = 17i32; +pub const TemplatePropValidityPeriod: EnrollmentTemplateProperty = 30i32; +pub const TypeAny: X509RequestType = 0i32; +pub const TypeCertificate: X509RequestType = 4i32; +pub const TypeCmc: X509RequestType = 3i32; +pub const TypePkcs10: X509RequestType = 1i32; +pub const TypePkcs7: X509RequestType = 2i32; +pub const VR_INSTANT_BAD: u32 = 2u32; +pub const VR_INSTANT_OK: u32 = 1u32; +pub const VR_PENDING: u32 = 0u32; +pub const VerifyAllowUI: X509PrivateKeyVerify = 4i32; +pub const VerifyNone: X509PrivateKeyVerify = 0i32; +pub const VerifySilent: X509PrivateKeyVerify = 1i32; +pub const VerifySmartCardNone: X509PrivateKeyVerify = 2i32; +pub const VerifySmartCardSilent: X509PrivateKeyVerify = 3i32; +pub const X509AuthAnonymous: X509EnrollmentAuthFlags = 1i32; +pub const X509AuthCertificate: X509EnrollmentAuthFlags = 8i32; +pub const X509AuthKerberos: X509EnrollmentAuthFlags = 2i32; +pub const X509AuthNone: X509EnrollmentAuthFlags = 0i32; +pub const X509AuthUsername: X509EnrollmentAuthFlags = 4i32; +pub const XCN_AT_KEYEXCHANGE: X509KeySpec = 1i32; +pub const XCN_AT_NONE: X509KeySpec = 0i32; +pub const XCN_AT_SIGNATURE: X509KeySpec = 2i32; +pub const XCN_BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE: AlgorithmType = 3i32; +pub const XCN_BCRYPT_CIPHER_INTERFACE: AlgorithmType = 1i32; +pub const XCN_BCRYPT_HASH_INTERFACE: AlgorithmType = 2i32; +pub const XCN_BCRYPT_KEY_DERIVATION_INTERFACE: AlgorithmType = 7i32; +pub const XCN_BCRYPT_RNG_INTERFACE: AlgorithmType = 6i32; +pub const XCN_BCRYPT_SECRET_AGREEMENT_INTERFACE: AlgorithmType = 4i32; +pub const XCN_BCRYPT_SIGNATURE_INTERFACE: AlgorithmType = 5i32; +pub const XCN_BCRYPT_UNKNOWN_INTERFACE: AlgorithmType = 0i32; +pub const XCN_CERT_ACCESS_STATE_PROP_ID: CERTENROLL_PROPERTYID = 14i32; +pub const XCN_CERT_AIA_URL_RETRIEVED_PROP_ID: CERTENROLL_PROPERTYID = 67i32; +pub const XCN_CERT_ALT_NAME_DIRECTORY_NAME: AlternativeNameType = 5i32; +pub const XCN_CERT_ALT_NAME_DNS_NAME: AlternativeNameType = 3i32; +pub const XCN_CERT_ALT_NAME_EDI_PARTY_NAME: AlternativeNameType = 6i32; +pub const XCN_CERT_ALT_NAME_GUID: AlternativeNameType = 10i32; +pub const XCN_CERT_ALT_NAME_IP_ADDRESS: AlternativeNameType = 8i32; +pub const XCN_CERT_ALT_NAME_OTHER_NAME: AlternativeNameType = 1i32; +pub const XCN_CERT_ALT_NAME_REGISTERED_ID: AlternativeNameType = 9i32; +pub const XCN_CERT_ALT_NAME_RFC822_NAME: AlternativeNameType = 2i32; +pub const XCN_CERT_ALT_NAME_UNKNOWN: AlternativeNameType = 0i32; +pub const XCN_CERT_ALT_NAME_URL: AlternativeNameType = 7i32; +pub const XCN_CERT_ALT_NAME_USER_PRINCIPLE_NAME: AlternativeNameType = 11i32; +pub const XCN_CERT_ALT_NAME_X400_ADDRESS: AlternativeNameType = 4i32; +pub const XCN_CERT_ARCHIVED_KEY_HASH_PROP_ID: CERTENROLL_PROPERTYID = 65i32; +pub const XCN_CERT_ARCHIVED_PROP_ID: CERTENROLL_PROPERTYID = 19i32; +pub const XCN_CERT_AUTHORITY_INFO_ACCESS_PROP_ID: CERTENROLL_PROPERTYID = 68i32; +pub const XCN_CERT_AUTH_ROOT_SHA256_HASH_PROP_ID: CERTENROLL_PROPERTYID = 98i32; +pub const XCN_CERT_AUTO_ENROLL_PROP_ID: CERTENROLL_PROPERTYID = 21i32; +pub const XCN_CERT_AUTO_ENROLL_RETRY_PROP_ID: CERTENROLL_PROPERTYID = 66i32; +pub const XCN_CERT_BACKED_UP_PROP_ID: CERTENROLL_PROPERTYID = 69i32; +pub const XCN_CERT_CA_DISABLE_CRL_PROP_ID: CERTENROLL_PROPERTYID = 82i32; +pub const XCN_CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID: CERTENROLL_PROPERTYID = 81i32; +pub const XCN_CERT_CEP_PROP_ID: CERTENROLL_PROPERTYID = 87i32; +pub const XCN_CERT_CERT_NOT_BEFORE_ENHKEY_USAGE_PROP_ID: CERTENROLL_PROPERTYID = 127i32; +pub const XCN_CERT_CLR_DELETE_KEY_PROP_ID: CERTENROLL_PROPERTYID = 125i32; +pub const XCN_CERT_CRL_SIGN_KEY_USAGE: X509KeyUsageFlags = 2i32; +pub const XCN_CERT_CROSS_CERT_DIST_POINTS_PROP_ID: CERTENROLL_PROPERTYID = 23i32; +pub const XCN_CERT_CTL_USAGE_PROP_ID: CERTENROLL_PROPERTYID = 9i32; +pub const XCN_CERT_DATA_ENCIPHERMENT_KEY_USAGE: X509KeyUsageFlags = 16i32; +pub const XCN_CERT_DATE_STAMP_PROP_ID: CERTENROLL_PROPERTYID = 27i32; +pub const XCN_CERT_DECIPHER_ONLY_KEY_USAGE: X509KeyUsageFlags = 32768i32; +pub const XCN_CERT_DESCRIPTION_PROP_ID: CERTENROLL_PROPERTYID = 13i32; +pub const XCN_CERT_DIGITAL_SIGNATURE_KEY_USAGE: X509KeyUsageFlags = 128i32; +pub const XCN_CERT_DISALLOWED_ENHKEY_USAGE_PROP_ID: CERTENROLL_PROPERTYID = 122i32; +pub const XCN_CERT_DISALLOWED_FILETIME_PROP_ID: CERTENROLL_PROPERTYID = 104i32; +pub const XCN_CERT_EFS_PROP_ID: CERTENROLL_PROPERTYID = 17i32; +pub const XCN_CERT_ENCIPHER_ONLY_KEY_USAGE: X509KeyUsageFlags = 1i32; +pub const XCN_CERT_ENHKEY_USAGE_PROP_ID: CERTENROLL_PROPERTYID = 9i32; +pub const XCN_CERT_ENROLLMENT_PROP_ID: CERTENROLL_PROPERTYID = 26i32; +pub const XCN_CERT_EXTENDED_ERROR_INFO_PROP_ID: CERTENROLL_PROPERTYID = 30i32; +pub const XCN_CERT_FIRST_RESERVED_PROP_ID: CERTENROLL_PROPERTYID = 129i32; +pub const XCN_CERT_FIRST_USER_PROP_ID: CERTENROLL_PROPERTYID = 32768i32; +pub const XCN_CERT_FORTEZZA_DATA_PROP_ID: CERTENROLL_PROPERTYID = 18i32; +pub const XCN_CERT_FRIENDLY_NAME_PROP_ID: CERTENROLL_PROPERTYID = 11i32; +pub const XCN_CERT_HASH_PROP_ID: CERTENROLL_PROPERTYID = 3i32; +pub const XCN_CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID: CERTENROLL_PROPERTYID = 79i32; +pub const XCN_CERT_HCRYPTPROV_TRANSFER_PROP_ID: CERTENROLL_PROPERTYID = 100i32; +pub const XCN_CERT_IE30_RESERVED_PROP_ID: CERTENROLL_PROPERTYID = 7i32; +pub const XCN_CERT_ISOLATED_KEY_PROP_ID: CERTENROLL_PROPERTYID = 118i32; +pub const XCN_CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID: CERTENROLL_PROPERTYID = 96i32; +pub const XCN_CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID: CERTENROLL_PROPERTYID = 95i32; +pub const XCN_CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID: CERTENROLL_PROPERTYID = 24i32; +pub const XCN_CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID: CERTENROLL_PROPERTYID = 94i32; +pub const XCN_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID: CERTENROLL_PROPERTYID = 28i32; +pub const XCN_CERT_KEY_AGREEMENT_KEY_USAGE: X509KeyUsageFlags = 8i32; +pub const XCN_CERT_KEY_CERT_SIGN_KEY_USAGE: X509KeyUsageFlags = 4i32; +pub const XCN_CERT_KEY_CLASSIFICATION_PROP_ID: CERTENROLL_PROPERTYID = 120i32; +pub const XCN_CERT_KEY_CONTEXT_PROP_ID: CERTENROLL_PROPERTYID = 5i32; +pub const XCN_CERT_KEY_ENCIPHERMENT_KEY_USAGE: X509KeyUsageFlags = 32i32; +pub const XCN_CERT_KEY_IDENTIFIER_PROP_ID: CERTENROLL_PROPERTYID = 20i32; +pub const XCN_CERT_KEY_PROV_HANDLE_PROP_ID: CERTENROLL_PROPERTYID = 1i32; +pub const XCN_CERT_KEY_PROV_INFO_PROP_ID: CERTENROLL_PROPERTYID = 2i32; +pub const XCN_CERT_KEY_REPAIR_ATTEMPTED_PROP_ID: CERTENROLL_PROPERTYID = 103i32; +pub const XCN_CERT_KEY_SPEC_PROP_ID: CERTENROLL_PROPERTYID = 6i32; +pub const XCN_CERT_LAST_RESERVED_PROP_ID: CERTENROLL_PROPERTYID = 32767i32; +pub const XCN_CERT_LAST_USER_PROP_ID: CERTENROLL_PROPERTYID = 65535i32; +pub const XCN_CERT_MD5_HASH_PROP_ID: CERTENROLL_PROPERTYID = 4i32; +pub const XCN_CERT_NAME_STR_AMBIGUOUS_SEPARATOR_FLAGS: X500NameFlags = 1275068416i32; +pub const XCN_CERT_NAME_STR_COMMA_FLAG: X500NameFlags = 67108864i32; +pub const XCN_CERT_NAME_STR_CRLF_FLAG: X500NameFlags = 134217728i32; +pub const XCN_CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG: X500NameFlags = 65536i32; +pub const XCN_CERT_NAME_STR_DISABLE_UTF8_DIR_STR_FLAG: X500NameFlags = 1048576i32; +pub const XCN_CERT_NAME_STR_DS_ESCAPED: X500NameFlags = 8388608i32; +pub const XCN_CERT_NAME_STR_ENABLE_PUNYCODE_FLAG: X500NameFlags = 2097152i32; +pub const XCN_CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG: X500NameFlags = 131072i32; +pub const XCN_CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG: X500NameFlags = 262144i32; +pub const XCN_CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG: X500NameFlags = 524288i32; +pub const XCN_CERT_NAME_STR_FORWARD_FLAG: X500NameFlags = 16777216i32; +pub const XCN_CERT_NAME_STR_NONE: X500NameFlags = 0i32; +pub const XCN_CERT_NAME_STR_NO_PLUS_FLAG: X500NameFlags = 536870912i32; +pub const XCN_CERT_NAME_STR_NO_QUOTING_FLAG: X500NameFlags = 268435456i32; +pub const XCN_CERT_NAME_STR_REVERSE_FLAG: X500NameFlags = 33554432i32; +pub const XCN_CERT_NAME_STR_SEMICOLON_FLAG: X500NameFlags = 1073741824i32; +pub const XCN_CERT_NCRYPT_KEY_HANDLE_PROP_ID: CERTENROLL_PROPERTYID = 78i32; +pub const XCN_CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID: CERTENROLL_PROPERTYID = 99i32; +pub const XCN_CERT_NEW_KEY_PROP_ID: CERTENROLL_PROPERTYID = 74i32; +pub const XCN_CERT_NEXT_UPDATE_LOCATION_PROP_ID: CERTENROLL_PROPERTYID = 10i32; +pub const XCN_CERT_NONCOMPLIANT_ROOT_URL_PROP_ID: CERTENROLL_PROPERTYID = 123i32; +pub const XCN_CERT_NON_REPUDIATION_KEY_USAGE: X509KeyUsageFlags = 64i32; +pub const XCN_CERT_NOT_BEFORE_FILETIME_PROP_ID: CERTENROLL_PROPERTYID = 126i32; +pub const XCN_CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID: CERTENROLL_PROPERTYID = 77i32; +pub const XCN_CERT_NO_EXPIRE_NOTIFICATION_PROP_ID: CERTENROLL_PROPERTYID = 97i32; +pub const XCN_CERT_NO_KEY_USAGE: X509KeyUsageFlags = 0i32; +pub const XCN_CERT_OCSP_CACHE_PREFIX_PROP_ID: CERTENROLL_PROPERTYID = 75i32; +pub const XCN_CERT_OCSP_RESPONSE_PROP_ID: CERTENROLL_PROPERTYID = 70i32; +pub const XCN_CERT_OFFLINE_CRL_SIGN_KEY_USAGE: X509KeyUsageFlags = 2i32; +pub const XCN_CERT_OID_NAME_STR: X500NameFlags = 2i32; +pub const XCN_CERT_PIN_SHA256_HASH_PROP_ID: CERTENROLL_PROPERTYID = 124i32; +pub const XCN_CERT_PUBKEY_ALG_PARA_PROP_ID: CERTENROLL_PROPERTYID = 22i32; +pub const XCN_CERT_PUBKEY_HASH_RESERVED_PROP_ID: CERTENROLL_PROPERTYID = 8i32; +pub const XCN_CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID: CERTENROLL_PROPERTYID = 93i32; +pub const XCN_CERT_PVK_FILE_PROP_ID: CERTENROLL_PROPERTYID = 12i32; +pub const XCN_CERT_RENEWAL_PROP_ID: CERTENROLL_PROPERTYID = 64i32; +pub const XCN_CERT_REQUEST_ORIGINATOR_PROP_ID: CERTENROLL_PROPERTYID = 71i32; +pub const XCN_CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID: CERTENROLL_PROPERTYID = 83i32; +pub const XCN_CERT_ROOT_PROGRAM_CHAIN_POLICIES_PROP_ID: CERTENROLL_PROPERTYID = 105i32; +pub const XCN_CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID: CERTENROLL_PROPERTYID = 84i32; +pub const XCN_CERT_SCARD_PIN_ID_PROP_ID: CERTENROLL_PROPERTYID = 90i32; +pub const XCN_CERT_SCARD_PIN_INFO_PROP_ID: CERTENROLL_PROPERTYID = 91i32; +pub const XCN_CERT_SCEP_CA_CERT_PROP_ID: CERTENROLL_PROPERTYID = 111i32; +pub const XCN_CERT_SCEP_ENCRYPT_HASH_CNG_ALG_PROP_ID: CERTENROLL_PROPERTYID = 114i32; +pub const XCN_CERT_SCEP_FLAGS_PROP_ID: CERTENROLL_PROPERTYID = 115i32; +pub const XCN_CERT_SCEP_GUID_PROP_ID: CERTENROLL_PROPERTYID = 116i32; +pub const XCN_CERT_SCEP_NONCE_PROP_ID: CERTENROLL_PROPERTYID = 113i32; +pub const XCN_CERT_SCEP_RA_ENCRYPTION_CERT_PROP_ID: CERTENROLL_PROPERTYID = 110i32; +pub const XCN_CERT_SCEP_RA_SIGNATURE_CERT_PROP_ID: CERTENROLL_PROPERTYID = 109i32; +pub const XCN_CERT_SCEP_SERVER_CERTS_PROP_ID: CERTENROLL_PROPERTYID = 108i32; +pub const XCN_CERT_SCEP_SIGNER_CERT_PROP_ID: CERTENROLL_PROPERTYID = 112i32; +pub const XCN_CERT_SEND_AS_TRUSTED_ISSUER_PROP_ID: CERTENROLL_PROPERTYID = 102i32; +pub const XCN_CERT_SERIALIZABLE_KEY_CONTEXT_PROP_ID: CERTENROLL_PROPERTYID = 117i32; +pub const XCN_CERT_SERIAL_CHAIN_PROP_ID: CERTENROLL_PROPERTYID = 119i32; +pub const XCN_CERT_SHA1_HASH_PROP_ID: CERTENROLL_PROPERTYID = 3i32; +pub const XCN_CERT_SHA256_HASH_PROP_ID: CERTENROLL_PROPERTYID = 107i32; +pub const XCN_CERT_SIGNATURE_HASH_PROP_ID: CERTENROLL_PROPERTYID = 15i32; +pub const XCN_CERT_SIGN_HASH_CNG_ALG_PROP_ID: CERTENROLL_PROPERTYID = 89i32; +pub const XCN_CERT_SIMPLE_NAME_STR: X500NameFlags = 1i32; +pub const XCN_CERT_SMART_CARD_DATA_PROP_ID: CERTENROLL_PROPERTYID = 16i32; +pub const XCN_CERT_SMART_CARD_READER_NON_REMOVABLE_PROP_ID: CERTENROLL_PROPERTYID = 106i32; +pub const XCN_CERT_SMART_CARD_READER_PROP_ID: CERTENROLL_PROPERTYID = 101i32; +pub const XCN_CERT_SMART_CARD_ROOT_INFO_PROP_ID: CERTENROLL_PROPERTYID = 76i32; +pub const XCN_CERT_SOURCE_LOCATION_PROP_ID: CERTENROLL_PROPERTYID = 72i32; +pub const XCN_CERT_SOURCE_URL_PROP_ID: CERTENROLL_PROPERTYID = 73i32; +pub const XCN_CERT_STORE_LOCALIZED_NAME_PROP_ID: CERTENROLL_PROPERTYID = 4096i32; +pub const XCN_CERT_SUBJECT_DISABLE_CRL_PROP_ID: CERTENROLL_PROPERTYID = 86i32; +pub const XCN_CERT_SUBJECT_INFO_ACCESS_PROP_ID: CERTENROLL_PROPERTYID = 80i32; +pub const XCN_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID: CERTENROLL_PROPERTYID = 29i32; +pub const XCN_CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID: CERTENROLL_PROPERTYID = 85i32; +pub const XCN_CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID: CERTENROLL_PROPERTYID = 25i32; +pub const XCN_CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_ID: CERTENROLL_PROPERTYID = 92i32; +pub const XCN_CERT_X500_NAME_STR: X500NameFlags = 3i32; +pub const XCN_CERT_XML_NAME_STR: X500NameFlags = 4i32; +pub const XCN_CRL_REASON_AA_COMPROMISE: CRLRevocationReason = 10i32; +pub const XCN_CRL_REASON_AFFILIATION_CHANGED: CRLRevocationReason = 3i32; +pub const XCN_CRL_REASON_CA_COMPROMISE: CRLRevocationReason = 2i32; +pub const XCN_CRL_REASON_CERTIFICATE_HOLD: CRLRevocationReason = 6i32; +pub const XCN_CRL_REASON_CESSATION_OF_OPERATION: CRLRevocationReason = 5i32; +pub const XCN_CRL_REASON_KEY_COMPROMISE: CRLRevocationReason = 1i32; +pub const XCN_CRL_REASON_PRIVILEGE_WITHDRAWN: CRLRevocationReason = 9i32; +pub const XCN_CRL_REASON_REMOVE_FROM_CRL: CRLRevocationReason = 8i32; +pub const XCN_CRL_REASON_SUPERSEDED: CRLRevocationReason = 4i32; +pub const XCN_CRL_REASON_UNSPECIFIED: CRLRevocationReason = 0i32; +pub const XCN_CRYPT_ANY_GROUP_ID: ObjectIdGroupId = 0i32; +pub const XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID: ObjectIdGroupId = 2i32; +pub const XCN_CRYPT_ENHKEY_USAGE_OID_GROUP_ID: ObjectIdGroupId = 7i32; +pub const XCN_CRYPT_EXT_OR_ATTR_OID_GROUP_ID: ObjectIdGroupId = 6i32; +pub const XCN_CRYPT_FIRST_ALG_OID_GROUP_ID: ObjectIdGroupId = 1i32; +pub const XCN_CRYPT_GROUP_ID_MASK: ObjectIdGroupId = 65535i32; +pub const XCN_CRYPT_HASH_ALG_OID_GROUP_ID: ObjectIdGroupId = 1i32; +pub const XCN_CRYPT_KDF_OID_GROUP_ID: ObjectIdGroupId = 10i32; +pub const XCN_CRYPT_KEY_LENGTH_MASK: ObjectIdGroupId = 268369920i32; +pub const XCN_CRYPT_LAST_ALG_OID_GROUP_ID: ObjectIdGroupId = 4i32; +pub const XCN_CRYPT_LAST_OID_GROUP_ID: ObjectIdGroupId = 10i32; +pub const XCN_CRYPT_OID_DISABLE_SEARCH_DS_FLAG: ObjectIdGroupId = -2147483648i32; +pub const XCN_CRYPT_OID_INFO_OID_GROUP_BIT_LEN_MASK: ObjectIdGroupId = 268369920i32; +pub const XCN_CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT: ObjectIdGroupId = 16i32; +pub const XCN_CRYPT_OID_INFO_PUBKEY_ANY: ObjectIdPublicKeyFlags = 0i32; +pub const XCN_CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG: ObjectIdPublicKeyFlags = 1073741824i32; +pub const XCN_CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG: ObjectIdPublicKeyFlags = -2147483648i32; +pub const XCN_CRYPT_OID_PREFER_CNG_ALGID_FLAG: ObjectIdGroupId = 1073741824i32; +pub const XCN_CRYPT_OID_USE_CURVE_NAME_FOR_ENCODE_FLAG: X509KeyParametersExportType = 536870912i32; +pub const XCN_CRYPT_OID_USE_CURVE_NONE: X509KeyParametersExportType = 0i32; +pub const XCN_CRYPT_OID_USE_CURVE_PARAMETERS_FOR_ENCODE_FLAG: X509KeyParametersExportType = 268435456i32; +pub const XCN_CRYPT_POLICY_OID_GROUP_ID: ObjectIdGroupId = 8i32; +pub const XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID: ObjectIdGroupId = 3i32; +pub const XCN_CRYPT_RDN_ATTR_OID_GROUP_ID: ObjectIdGroupId = 5i32; +pub const XCN_CRYPT_SIGN_ALG_OID_GROUP_ID: ObjectIdGroupId = 4i32; +pub const XCN_CRYPT_STRING_ANY: EncodingType = 7i32; +pub const XCN_CRYPT_STRING_BASE64: EncodingType = 1i32; +pub const XCN_CRYPT_STRING_BASE64HEADER: EncodingType = 0i32; +pub const XCN_CRYPT_STRING_BASE64REQUESTHEADER: EncodingType = 3i32; +pub const XCN_CRYPT_STRING_BASE64URI: EncodingType = 13i32; +pub const XCN_CRYPT_STRING_BASE64X509CRLHEADER: EncodingType = 9i32; +pub const XCN_CRYPT_STRING_BASE64_ANY: EncodingType = 6i32; +pub const XCN_CRYPT_STRING_BINARY: EncodingType = 2i32; +pub const XCN_CRYPT_STRING_CHAIN: EncodingType = 256i32; +pub const XCN_CRYPT_STRING_ENCODEMASK: EncodingType = 255i32; +pub const XCN_CRYPT_STRING_HASHDATA: EncodingType = 268435456i32; +pub const XCN_CRYPT_STRING_HEX: EncodingType = 4i32; +pub const XCN_CRYPT_STRING_HEXADDR: EncodingType = 10i32; +pub const XCN_CRYPT_STRING_HEXASCII: EncodingType = 5i32; +pub const XCN_CRYPT_STRING_HEXASCIIADDR: EncodingType = 11i32; +pub const XCN_CRYPT_STRING_HEXRAW: EncodingType = 12i32; +pub const XCN_CRYPT_STRING_HEX_ANY: EncodingType = 8i32; +pub const XCN_CRYPT_STRING_NOCR: EncodingType = -2147483648i32; +pub const XCN_CRYPT_STRING_NOCRLF: EncodingType = 1073741824i32; +pub const XCN_CRYPT_STRING_PERCENTESCAPE: EncodingType = 134217728i32; +pub const XCN_CRYPT_STRING_STRICT: EncodingType = 536870912i32; +pub const XCN_CRYPT_STRING_TEXT: EncodingType = 512i32; +pub const XCN_CRYPT_TEMPLATE_OID_GROUP_ID: ObjectIdGroupId = 9i32; +pub const XCN_NCRYPT_ALLOW_ALL_USAGES: X509PrivateKeyUsageFlags = 16777215i32; +pub const XCN_NCRYPT_ALLOW_ARCHIVING_FLAG: X509PrivateKeyExportFlags = 4i32; +pub const XCN_NCRYPT_ALLOW_DECRYPT_FLAG: X509PrivateKeyUsageFlags = 1i32; +pub const XCN_NCRYPT_ALLOW_EXPORT_FLAG: X509PrivateKeyExportFlags = 1i32; +pub const XCN_NCRYPT_ALLOW_EXPORT_NONE: X509PrivateKeyExportFlags = 0i32; +pub const XCN_NCRYPT_ALLOW_KEY_AGREEMENT_FLAG: X509PrivateKeyUsageFlags = 4i32; +pub const XCN_NCRYPT_ALLOW_KEY_IMPORT_FLAG: X509PrivateKeyUsageFlags = 8i32; +pub const XCN_NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG: X509PrivateKeyExportFlags = 8i32; +pub const XCN_NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG: X509PrivateKeyExportFlags = 2i32; +pub const XCN_NCRYPT_ALLOW_SIGNING_FLAG: X509PrivateKeyUsageFlags = 2i32; +pub const XCN_NCRYPT_ALLOW_USAGES_NONE: X509PrivateKeyUsageFlags = 0i32; +pub const XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION: AlgorithmOperationFlags = 28i32; +pub const XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION: AlgorithmOperationFlags = 4i32; +pub const XCN_NCRYPT_CIPHER_OPERATION: AlgorithmOperationFlags = 1i32; +pub const XCN_NCRYPT_CLAIM_AUTHORITY_AND_SUBJECT: KeyAttestationClaimType = 3i32; +pub const XCN_NCRYPT_CLAIM_AUTHORITY_ONLY: KeyAttestationClaimType = 1i32; +pub const XCN_NCRYPT_CLAIM_NONE: KeyAttestationClaimType = 0i32; +pub const XCN_NCRYPT_CLAIM_SUBJECT_ONLY: KeyAttestationClaimType = 2i32; +pub const XCN_NCRYPT_CLAIM_UNKNOWN: KeyAttestationClaimType = 4096i32; +pub const XCN_NCRYPT_EXACT_MATCH_OPERATION: AlgorithmOperationFlags = 8388608i32; +pub const XCN_NCRYPT_HASH_OPERATION: AlgorithmOperationFlags = 2i32; +pub const XCN_NCRYPT_KEY_DERIVATION_OPERATION: AlgorithmOperationFlags = 64i32; +pub const XCN_NCRYPT_NO_OPERATION: AlgorithmOperationFlags = 0i32; +pub const XCN_NCRYPT_PCP_ENCRYPTION_KEY: X509HardwareKeyUsageFlags = 2i32; +pub const XCN_NCRYPT_PCP_GENERIC_KEY: X509HardwareKeyUsageFlags = 3i32; +pub const XCN_NCRYPT_PCP_IDENTITY_KEY: X509HardwareKeyUsageFlags = 8i32; +pub const XCN_NCRYPT_PCP_NONE: X509HardwareKeyUsageFlags = 0i32; +pub const XCN_NCRYPT_PCP_SIGNATURE_KEY: X509HardwareKeyUsageFlags = 1i32; +pub const XCN_NCRYPT_PCP_STORAGE_KEY: X509HardwareKeyUsageFlags = 4i32; +pub const XCN_NCRYPT_PREFERENCE_MASK_OPERATION: AlgorithmOperationFlags = 14680064i32; +pub const XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION: AlgorithmOperationFlags = 4194304i32; +pub const XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION: AlgorithmOperationFlags = 2097152i32; +pub const XCN_NCRYPT_RNG_OPERATION: AlgorithmOperationFlags = 32i32; +pub const XCN_NCRYPT_SECRET_AGREEMENT_OPERATION: AlgorithmOperationFlags = 8i32; +pub const XCN_NCRYPT_SIGNATURE_OPERATION: AlgorithmOperationFlags = 16i32; +pub const XCN_NCRYPT_TPM12_PROVIDER: X509HardwareKeyUsageFlags = 65536i32; +pub const XCN_NCRYPT_UI_APPCONTAINER_ACCESS_MEDIUM_FLAG: X509PrivateKeyProtection = 8i32; +pub const XCN_NCRYPT_UI_FINGERPRINT_PROTECTION_FLAG: X509PrivateKeyProtection = 4i32; +pub const XCN_NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG: X509PrivateKeyProtection = 2i32; +pub const XCN_NCRYPT_UI_NO_PROTECTION_FLAG: X509PrivateKeyProtection = 0i32; +pub const XCN_NCRYPT_UI_PROTECT_KEY_FLAG: X509PrivateKeyProtection = 1i32; +pub const XCN_OIDVerisign_FailInfo: CERTENROLL_OBJECTID = 431i32; +pub const XCN_OIDVerisign_MessageType: CERTENROLL_OBJECTID = 429i32; +pub const XCN_OIDVerisign_PkiStatus: CERTENROLL_OBJECTID = 430i32; +pub const XCN_OIDVerisign_RecipientNonce: CERTENROLL_OBJECTID = 433i32; +pub const XCN_OIDVerisign_SenderNonce: CERTENROLL_OBJECTID = 432i32; +pub const XCN_OIDVerisign_TransactionID: CERTENROLL_OBJECTID = 434i32; +pub const XCN_OID_ANSI_X942: CERTENROLL_OBJECTID = 53i32; +pub const XCN_OID_ANSI_X942_DH: CERTENROLL_OBJECTID = 54i32; +pub const XCN_OID_ANY_APPLICATION_POLICY: CERTENROLL_OBJECTID = 216i32; +pub const XCN_OID_ANY_CERT_POLICY: CERTENROLL_OBJECTID = 180i32; +pub const XCN_OID_ANY_ENHANCED_KEY_USAGE: CERTENROLL_OBJECTID = 352i32; +pub const XCN_OID_APPLICATION_CERT_POLICIES: CERTENROLL_OBJECTID = 229i32; +pub const XCN_OID_APPLICATION_POLICY_CONSTRAINTS: CERTENROLL_OBJECTID = 231i32; +pub const XCN_OID_APPLICATION_POLICY_MAPPINGS: CERTENROLL_OBJECTID = 230i32; +pub const XCN_OID_ARCHIVED_KEY_ATTR: CERTENROLL_OBJECTID = 232i32; +pub const XCN_OID_ARCHIVED_KEY_CERT_HASH: CERTENROLL_OBJECTID = 235i32; +pub const XCN_OID_ATTR_SUPPORTED_ALGORITHMS: CERTENROLL_OBJECTID = 355i32; +pub const XCN_OID_ATTR_TPM_SECURITY_ASSERTIONS: CERTENROLL_OBJECTID = 356i32; +pub const XCN_OID_ATTR_TPM_SPECIFICATION: CERTENROLL_OBJECTID = 357i32; +pub const XCN_OID_AUTHORITY_INFO_ACCESS: CERTENROLL_OBJECTID = 204i32; +pub const XCN_OID_AUTHORITY_KEY_IDENTIFIER: CERTENROLL_OBJECTID = 169i32; +pub const XCN_OID_AUTHORITY_KEY_IDENTIFIER2: CERTENROLL_OBJECTID = 181i32; +pub const XCN_OID_AUTHORITY_REVOCATION_LIST: CERTENROLL_OBJECTID = 156i32; +pub const XCN_OID_AUTO_ENROLL_CTL_USAGE: CERTENROLL_OBJECTID = 217i32; +pub const XCN_OID_BACKGROUND_OTHER_LOGOTYPE: CERTENROLL_OBJECTID = 327i32; +pub const XCN_OID_BASIC_CONSTRAINTS: CERTENROLL_OBJECTID = 175i32; +pub const XCN_OID_BASIC_CONSTRAINTS2: CERTENROLL_OBJECTID = 178i32; +pub const XCN_OID_BIOMETRIC_EXT: CERTENROLL_OBJECTID = 205i32; +pub const XCN_OID_BUSINESS_CATEGORY: CERTENROLL_OBJECTID = 133i32; +pub const XCN_OID_CA_CERTIFICATE: CERTENROLL_OBJECTID = 155i32; +pub const XCN_OID_CERTIFICATE_REVOCATION_LIST: CERTENROLL_OBJECTID = 157i32; +pub const XCN_OID_CERTIFICATE_TEMPLATE: CERTENROLL_OBJECTID = 226i32; +pub const XCN_OID_CERTSRV_CA_VERSION: CERTENROLL_OBJECTID = 220i32; +pub const XCN_OID_CERTSRV_CROSSCA_VERSION: CERTENROLL_OBJECTID = 240i32; +pub const XCN_OID_CERTSRV_PREVIOUS_CERT_HASH: CERTENROLL_OBJECTID = 221i32; +pub const XCN_OID_CERT_DISALLOWED_FILETIME_PROP_ID: CERTENROLL_OBJECTID = 358i32; +pub const XCN_OID_CERT_EXTENSIONS: CERTENROLL_OBJECTID = 207i32; +pub const XCN_OID_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID: CERTENROLL_OBJECTID = 339i32; +pub const XCN_OID_CERT_KEY_IDENTIFIER_PROP_ID: CERTENROLL_OBJECTID = 338i32; +pub const XCN_OID_CERT_MANIFOLD: CERTENROLL_OBJECTID = 219i32; +pub const XCN_OID_CERT_MD5_HASH_PROP_ID: CERTENROLL_OBJECTID = 341i32; +pub const XCN_OID_CERT_POLICIES: CERTENROLL_OBJECTID = 179i32; +pub const XCN_OID_CERT_POLICIES_95: CERTENROLL_OBJECTID = 171i32; +pub const XCN_OID_CERT_POLICIES_95_QUALIFIER1: CERTENROLL_OBJECTID = 281i32; +pub const XCN_OID_CERT_PROP_ID_PREFIX: CERTENROLL_OBJECTID = 337i32; +pub const XCN_OID_CERT_SIGNATURE_HASH_PROP_ID: CERTENROLL_OBJECTID = 359i32; +pub const XCN_OID_CERT_STRONG_KEY_OS_1: CERTENROLL_OBJECTID = 360i32; +pub const XCN_OID_CERT_STRONG_KEY_OS_CURRENT: CERTENROLL_OBJECTID = 361i32; +pub const XCN_OID_CERT_STRONG_KEY_OS_PREFIX: CERTENROLL_OBJECTID = 362i32; +pub const XCN_OID_CERT_STRONG_SIGN_OS_1: CERTENROLL_OBJECTID = 363i32; +pub const XCN_OID_CERT_STRONG_SIGN_OS_CURRENT: CERTENROLL_OBJECTID = 364i32; +pub const XCN_OID_CERT_STRONG_SIGN_OS_PREFIX: CERTENROLL_OBJECTID = 365i32; +pub const XCN_OID_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID: CERTENROLL_OBJECTID = 340i32; +pub const XCN_OID_CMC: CERTENROLL_OBJECTID = 304i32; +pub const XCN_OID_CMC_ADD_ATTRIBUTES: CERTENROLL_OBJECTID = 325i32; +pub const XCN_OID_CMC_ADD_EXTENSIONS: CERTENROLL_OBJECTID = 312i32; +pub const XCN_OID_CMC_DATA_RETURN: CERTENROLL_OBJECTID = 308i32; +pub const XCN_OID_CMC_DECRYPTED_POP: CERTENROLL_OBJECTID = 314i32; +pub const XCN_OID_CMC_ENCRYPTED_POP: CERTENROLL_OBJECTID = 313i32; +pub const XCN_OID_CMC_GET_CERT: CERTENROLL_OBJECTID = 316i32; +pub const XCN_OID_CMC_GET_CRL: CERTENROLL_OBJECTID = 317i32; +pub const XCN_OID_CMC_IDENTIFICATION: CERTENROLL_OBJECTID = 306i32; +pub const XCN_OID_CMC_IDENTITY_PROOF: CERTENROLL_OBJECTID = 307i32; +pub const XCN_OID_CMC_ID_CONFIRM_CERT_ACCEPTANCE: CERTENROLL_OBJECTID = 324i32; +pub const XCN_OID_CMC_ID_POP_LINK_RANDOM: CERTENROLL_OBJECTID = 322i32; +pub const XCN_OID_CMC_ID_POP_LINK_WITNESS: CERTENROLL_OBJECTID = 323i32; +pub const XCN_OID_CMC_LRA_POP_WITNESS: CERTENROLL_OBJECTID = 315i32; +pub const XCN_OID_CMC_QUERY_PENDING: CERTENROLL_OBJECTID = 321i32; +pub const XCN_OID_CMC_RECIPIENT_NONCE: CERTENROLL_OBJECTID = 311i32; +pub const XCN_OID_CMC_REG_INFO: CERTENROLL_OBJECTID = 319i32; +pub const XCN_OID_CMC_RESPONSE_INFO: CERTENROLL_OBJECTID = 320i32; +pub const XCN_OID_CMC_REVOKE_REQUEST: CERTENROLL_OBJECTID = 318i32; +pub const XCN_OID_CMC_SENDER_NONCE: CERTENROLL_OBJECTID = 310i32; +pub const XCN_OID_CMC_STATUS_INFO: CERTENROLL_OBJECTID = 305i32; +pub const XCN_OID_CMC_TRANSACTION_ID: CERTENROLL_OBJECTID = 309i32; +pub const XCN_OID_COMMON_NAME: CERTENROLL_OBJECTID = 121i32; +pub const XCN_OID_COUNTRY_NAME: CERTENROLL_OBJECTID = 124i32; +pub const XCN_OID_CRL_DIST_POINTS: CERTENROLL_OBJECTID = 187i32; +pub const XCN_OID_CRL_NEXT_PUBLISH: CERTENROLL_OBJECTID = 223i32; +pub const XCN_OID_CRL_NUMBER: CERTENROLL_OBJECTID = 189i32; +pub const XCN_OID_CRL_REASON_CODE: CERTENROLL_OBJECTID = 185i32; +pub const XCN_OID_CRL_SELF_CDP: CERTENROLL_OBJECTID = 233i32; +pub const XCN_OID_CRL_VIRTUAL_BASE: CERTENROLL_OBJECTID = 222i32; +pub const XCN_OID_CROSS_CERTIFICATE_PAIR: CERTENROLL_OBJECTID = 158i32; +pub const XCN_OID_CROSS_CERT_DIST_POINTS: CERTENROLL_OBJECTID = 210i32; +pub const XCN_OID_CTL: CERTENROLL_OBJECTID = 211i32; +pub const XCN_OID_CT_PKI_DATA: CERTENROLL_OBJECTID = 301i32; +pub const XCN_OID_CT_PKI_RESPONSE: CERTENROLL_OBJECTID = 302i32; +pub const XCN_OID_DELTA_CRL_INDICATOR: CERTENROLL_OBJECTID = 190i32; +pub const XCN_OID_DESCRIPTION: CERTENROLL_OBJECTID = 131i32; +pub const XCN_OID_DESTINATION_INDICATOR: CERTENROLL_OBJECTID = 145i32; +pub const XCN_OID_DEVICE_SERIAL_NUMBER: CERTENROLL_OBJECTID = 123i32; +pub const XCN_OID_DH_SINGLE_PASS_STDDH_SHA1_KDF: CERTENROLL_OBJECTID = 366i32; +pub const XCN_OID_DH_SINGLE_PASS_STDDH_SHA256_KDF: CERTENROLL_OBJECTID = 367i32; +pub const XCN_OID_DH_SINGLE_PASS_STDDH_SHA384_KDF: CERTENROLL_OBJECTID = 368i32; +pub const XCN_OID_DISALLOWED_HASH: CERTENROLL_OBJECTID = 369i32; +pub const XCN_OID_DISALLOWED_LIST: CERTENROLL_OBJECTID = 370i32; +pub const XCN_OID_DN_QUALIFIER: CERTENROLL_OBJECTID = 161i32; +pub const XCN_OID_DOMAIN_COMPONENT: CERTENROLL_OBJECTID = 162i32; +pub const XCN_OID_DRM: CERTENROLL_OBJECTID = 273i32; +pub const XCN_OID_DRM_INDIVIDUALIZATION: CERTENROLL_OBJECTID = 274i32; +pub const XCN_OID_DS: CERTENROLL_OBJECTID = 58i32; +pub const XCN_OID_DSALG: CERTENROLL_OBJECTID = 59i32; +pub const XCN_OID_DSALG_CRPT: CERTENROLL_OBJECTID = 60i32; +pub const XCN_OID_DSALG_HASH: CERTENROLL_OBJECTID = 61i32; +pub const XCN_OID_DSALG_RSA: CERTENROLL_OBJECTID = 63i32; +pub const XCN_OID_DSALG_SIGN: CERTENROLL_OBJECTID = 62i32; +pub const XCN_OID_DS_EMAIL_REPLICATION: CERTENROLL_OBJECTID = 237i32; +pub const XCN_OID_ECC_CURVE_P256: CERTENROLL_OBJECTID = 371i32; +pub const XCN_OID_ECC_CURVE_P384: CERTENROLL_OBJECTID = 372i32; +pub const XCN_OID_ECC_CURVE_P521: CERTENROLL_OBJECTID = 373i32; +pub const XCN_OID_ECC_PUBLIC_KEY: CERTENROLL_OBJECTID = 349i32; +pub const XCN_OID_ECDSA_SHA1: CERTENROLL_OBJECTID = 350i32; +pub const XCN_OID_ECDSA_SHA256: CERTENROLL_OBJECTID = 374i32; +pub const XCN_OID_ECDSA_SHA384: CERTENROLL_OBJECTID = 375i32; +pub const XCN_OID_ECDSA_SHA512: CERTENROLL_OBJECTID = 376i32; +pub const XCN_OID_ECDSA_SPECIFIED: CERTENROLL_OBJECTID = 351i32; +pub const XCN_OID_EFS_RECOVERY: CERTENROLL_OBJECTID = 260i32; +pub const XCN_OID_EMBEDDED_NT_CRYPTO: CERTENROLL_OBJECTID = 264i32; +pub const XCN_OID_ENCRYPTED_KEY_HASH: CERTENROLL_OBJECTID = 239i32; +pub const XCN_OID_ENHANCED_KEY_USAGE: CERTENROLL_OBJECTID = 188i32; +pub const XCN_OID_ENROLLMENT_AGENT: CERTENROLL_OBJECTID = 201i32; +pub const XCN_OID_ENROLLMENT_CSP_PROVIDER: CERTENROLL_OBJECTID = 199i32; +pub const XCN_OID_ENROLLMENT_NAME_VALUE_PAIR: CERTENROLL_OBJECTID = 198i32; +pub const XCN_OID_ENROLL_ATTESTATION_CHALLENGE: CERTENROLL_OBJECTID = 435i32; +pub const XCN_OID_ENROLL_ATTESTATION_STATEMENT: CERTENROLL_OBJECTID = 436i32; +pub const XCN_OID_ENROLL_CAXCHGCERT_HASH: CERTENROLL_OBJECTID = 377i32; +pub const XCN_OID_ENROLL_CERTTYPE_EXTENSION: CERTENROLL_OBJECTID = 218i32; +pub const XCN_OID_ENROLL_EKPUB_CHALLENGE: CERTENROLL_OBJECTID = 379i32; +pub const XCN_OID_ENROLL_EKVERIFYCERT: CERTENROLL_OBJECTID = 380i32; +pub const XCN_OID_ENROLL_EKVERIFYCREDS: CERTENROLL_OBJECTID = 381i32; +pub const XCN_OID_ENROLL_EKVERIFYKEY: CERTENROLL_OBJECTID = 382i32; +pub const XCN_OID_ENROLL_EK_INFO: CERTENROLL_OBJECTID = 378i32; +pub const XCN_OID_ENROLL_ENCRYPTION_ALGORITHM: CERTENROLL_OBJECTID = 437i32; +pub const XCN_OID_ENROLL_KSP_NAME: CERTENROLL_OBJECTID = 438i32; +pub const XCN_OID_ENROLL_SCEP_ERROR: CERTENROLL_OBJECTID = 428i32; +pub const XCN_OID_ENTERPRISE_OID_ROOT: CERTENROLL_OBJECTID = 227i32; +pub const XCN_OID_EV_RDN_COUNTRY: CERTENROLL_OBJECTID = 383i32; +pub const XCN_OID_EV_RDN_LOCALE: CERTENROLL_OBJECTID = 384i32; +pub const XCN_OID_EV_RDN_STATE_OR_PROVINCE: CERTENROLL_OBJECTID = 385i32; +pub const XCN_OID_FACSIMILE_TELEPHONE_NUMBER: CERTENROLL_OBJECTID = 141i32; +pub const XCN_OID_FRESHEST_CRL: CERTENROLL_OBJECTID = 192i32; +pub const XCN_OID_GIVEN_NAME: CERTENROLL_OBJECTID = 159i32; +pub const XCN_OID_INFOSEC: CERTENROLL_OBJECTID = 99i32; +pub const XCN_OID_INFOSEC_SuiteAConfidentiality: CERTENROLL_OBJECTID = 113i32; +pub const XCN_OID_INFOSEC_SuiteAIntegrity: CERTENROLL_OBJECTID = 114i32; +pub const XCN_OID_INFOSEC_SuiteAKMandSig: CERTENROLL_OBJECTID = 117i32; +pub const XCN_OID_INFOSEC_SuiteAKeyManagement: CERTENROLL_OBJECTID = 116i32; +pub const XCN_OID_INFOSEC_SuiteASignature: CERTENROLL_OBJECTID = 112i32; +pub const XCN_OID_INFOSEC_SuiteATokenProtection: CERTENROLL_OBJECTID = 115i32; +pub const XCN_OID_INFOSEC_mosaicConfidentiality: CERTENROLL_OBJECTID = 103i32; +pub const XCN_OID_INFOSEC_mosaicIntegrity: CERTENROLL_OBJECTID = 105i32; +pub const XCN_OID_INFOSEC_mosaicKMandSig: CERTENROLL_OBJECTID = 111i32; +pub const XCN_OID_INFOSEC_mosaicKMandUpdSig: CERTENROLL_OBJECTID = 119i32; +pub const XCN_OID_INFOSEC_mosaicKeyManagement: CERTENROLL_OBJECTID = 109i32; +pub const XCN_OID_INFOSEC_mosaicSignature: CERTENROLL_OBJECTID = 101i32; +pub const XCN_OID_INFOSEC_mosaicTokenProtection: CERTENROLL_OBJECTID = 107i32; +pub const XCN_OID_INFOSEC_mosaicUpdatedInteg: CERTENROLL_OBJECTID = 120i32; +pub const XCN_OID_INFOSEC_mosaicUpdatedSig: CERTENROLL_OBJECTID = 118i32; +pub const XCN_OID_INFOSEC_sdnsConfidentiality: CERTENROLL_OBJECTID = 102i32; +pub const XCN_OID_INFOSEC_sdnsIntegrity: CERTENROLL_OBJECTID = 104i32; +pub const XCN_OID_INFOSEC_sdnsKMandSig: CERTENROLL_OBJECTID = 110i32; +pub const XCN_OID_INFOSEC_sdnsKeyManagement: CERTENROLL_OBJECTID = 108i32; +pub const XCN_OID_INFOSEC_sdnsSignature: CERTENROLL_OBJECTID = 100i32; +pub const XCN_OID_INFOSEC_sdnsTokenProtection: CERTENROLL_OBJECTID = 106i32; +pub const XCN_OID_INHIBIT_ANY_POLICY: CERTENROLL_OBJECTID = 386i32; +pub const XCN_OID_INITIALS: CERTENROLL_OBJECTID = 160i32; +pub const XCN_OID_INTERNATIONALIZED_EMAIL_ADDRESS: CERTENROLL_OBJECTID = 387i32; +pub const XCN_OID_INTERNATIONAL_ISDN_NUMBER: CERTENROLL_OBJECTID = 143i32; +pub const XCN_OID_IPSEC_KP_IKE_INTERMEDIATE: CERTENROLL_OBJECTID = 254i32; +pub const XCN_OID_ISSUED_CERT_HASH: CERTENROLL_OBJECTID = 236i32; +pub const XCN_OID_ISSUER_ALT_NAME: CERTENROLL_OBJECTID = 174i32; +pub const XCN_OID_ISSUER_ALT_NAME2: CERTENROLL_OBJECTID = 184i32; +pub const XCN_OID_ISSUING_DIST_POINT: CERTENROLL_OBJECTID = 191i32; +pub const XCN_OID_KEYID_RDN: CERTENROLL_OBJECTID = 168i32; +pub const XCN_OID_KEY_ATTRIBUTES: CERTENROLL_OBJECTID = 170i32; +pub const XCN_OID_KEY_USAGE: CERTENROLL_OBJECTID = 176i32; +pub const XCN_OID_KEY_USAGE_RESTRICTION: CERTENROLL_OBJECTID = 172i32; +pub const XCN_OID_KP_CA_EXCHANGE: CERTENROLL_OBJECTID = 224i32; +pub const XCN_OID_KP_CSP_SIGNATURE: CERTENROLL_OBJECTID = 272i32; +pub const XCN_OID_KP_CTL_USAGE_SIGNING: CERTENROLL_OBJECTID = 255i32; +pub const XCN_OID_KP_DOCUMENT_SIGNING: CERTENROLL_OBJECTID = 268i32; +pub const XCN_OID_KP_EFS: CERTENROLL_OBJECTID = 259i32; +pub const XCN_OID_KP_KERNEL_MODE_CODE_SIGNING: CERTENROLL_OBJECTID = 388i32; +pub const XCN_OID_KP_KERNEL_MODE_HAL_EXTENSION_SIGNING: CERTENROLL_OBJECTID = 389i32; +pub const XCN_OID_KP_KERNEL_MODE_TRUSTED_BOOT_SIGNING: CERTENROLL_OBJECTID = 390i32; +pub const XCN_OID_KP_KEY_RECOVERY: CERTENROLL_OBJECTID = 267i32; +pub const XCN_OID_KP_KEY_RECOVERY_AGENT: CERTENROLL_OBJECTID = 225i32; +pub const XCN_OID_KP_LIFETIME_SIGNING: CERTENROLL_OBJECTID = 269i32; +pub const XCN_OID_KP_MOBILE_DEVICE_SOFTWARE: CERTENROLL_OBJECTID = 270i32; +pub const XCN_OID_KP_QUALIFIED_SUBORDINATION: CERTENROLL_OBJECTID = 266i32; +pub const XCN_OID_KP_SMARTCARD_LOGON: CERTENROLL_OBJECTID = 277i32; +pub const XCN_OID_KP_SMART_DISPLAY: CERTENROLL_OBJECTID = 271i32; +pub const XCN_OID_KP_TIME_STAMP_SIGNING: CERTENROLL_OBJECTID = 256i32; +pub const XCN_OID_KP_TPM_AIK_CERTIFICATE: CERTENROLL_OBJECTID = 391i32; +pub const XCN_OID_KP_TPM_EK_CERTIFICATE: CERTENROLL_OBJECTID = 392i32; +pub const XCN_OID_KP_TPM_PLATFORM_CERTIFICATE: CERTENROLL_OBJECTID = 393i32; +pub const XCN_OID_LEGACY_POLICY_MAPPINGS: CERTENROLL_OBJECTID = 195i32; +pub const XCN_OID_LICENSES: CERTENROLL_OBJECTID = 275i32; +pub const XCN_OID_LICENSE_SERVER: CERTENROLL_OBJECTID = 276i32; +pub const XCN_OID_LOCALITY_NAME: CERTENROLL_OBJECTID = 125i32; +pub const XCN_OID_LOCAL_MACHINE_KEYSET: CERTENROLL_OBJECTID = 166i32; +pub const XCN_OID_LOGOTYPE_EXT: CERTENROLL_OBJECTID = 206i32; +pub const XCN_OID_LOYALTY_OTHER_LOGOTYPE: CERTENROLL_OBJECTID = 326i32; +pub const XCN_OID_MEMBER: CERTENROLL_OBJECTID = 149i32; +pub const XCN_OID_NAME_CONSTRAINTS: CERTENROLL_OBJECTID = 193i32; +pub const XCN_OID_NETSCAPE: CERTENROLL_OBJECTID = 289i32; +pub const XCN_OID_NETSCAPE_BASE_URL: CERTENROLL_OBJECTID = 292i32; +pub const XCN_OID_NETSCAPE_CA_POLICY_URL: CERTENROLL_OBJECTID = 296i32; +pub const XCN_OID_NETSCAPE_CA_REVOCATION_URL: CERTENROLL_OBJECTID = 294i32; +pub const XCN_OID_NETSCAPE_CERT_EXTENSION: CERTENROLL_OBJECTID = 290i32; +pub const XCN_OID_NETSCAPE_CERT_RENEWAL_URL: CERTENROLL_OBJECTID = 295i32; +pub const XCN_OID_NETSCAPE_CERT_SEQUENCE: CERTENROLL_OBJECTID = 300i32; +pub const XCN_OID_NETSCAPE_CERT_TYPE: CERTENROLL_OBJECTID = 291i32; +pub const XCN_OID_NETSCAPE_COMMENT: CERTENROLL_OBJECTID = 298i32; +pub const XCN_OID_NETSCAPE_DATA_TYPE: CERTENROLL_OBJECTID = 299i32; +pub const XCN_OID_NETSCAPE_REVOCATION_URL: CERTENROLL_OBJECTID = 293i32; +pub const XCN_OID_NETSCAPE_SSL_SERVER_NAME: CERTENROLL_OBJECTID = 297i32; +pub const XCN_OID_NEXT_UPDATE_LOCATION: CERTENROLL_OBJECTID = 208i32; +pub const XCN_OID_NIST_AES128_CBC: CERTENROLL_OBJECTID = 394i32; +pub const XCN_OID_NIST_AES128_WRAP: CERTENROLL_OBJECTID = 395i32; +pub const XCN_OID_NIST_AES192_CBC: CERTENROLL_OBJECTID = 396i32; +pub const XCN_OID_NIST_AES192_WRAP: CERTENROLL_OBJECTID = 397i32; +pub const XCN_OID_NIST_AES256_CBC: CERTENROLL_OBJECTID = 398i32; +pub const XCN_OID_NIST_AES256_WRAP: CERTENROLL_OBJECTID = 399i32; +pub const XCN_OID_NIST_sha256: CERTENROLL_OBJECTID = 345i32; +pub const XCN_OID_NIST_sha384: CERTENROLL_OBJECTID = 346i32; +pub const XCN_OID_NIST_sha512: CERTENROLL_OBJECTID = 347i32; +pub const XCN_OID_NONE: CERTENROLL_OBJECTID = 0i32; +pub const XCN_OID_NT5_CRYPTO: CERTENROLL_OBJECTID = 262i32; +pub const XCN_OID_NTDS_REPLICATION: CERTENROLL_OBJECTID = 241i32; +pub const XCN_OID_NT_PRINCIPAL_NAME: CERTENROLL_OBJECTID = 214i32; +pub const XCN_OID_OEM_WHQL_CRYPTO: CERTENROLL_OBJECTID = 263i32; +pub const XCN_OID_OIW: CERTENROLL_OBJECTID = 64i32; +pub const XCN_OID_OIWDIR: CERTENROLL_OBJECTID = 93i32; +pub const XCN_OID_OIWDIR_CRPT: CERTENROLL_OBJECTID = 94i32; +pub const XCN_OID_OIWDIR_HASH: CERTENROLL_OBJECTID = 95i32; +pub const XCN_OID_OIWDIR_SIGN: CERTENROLL_OBJECTID = 96i32; +pub const XCN_OID_OIWDIR_md2: CERTENROLL_OBJECTID = 97i32; +pub const XCN_OID_OIWDIR_md2RSA: CERTENROLL_OBJECTID = 98i32; +pub const XCN_OID_OIWSEC: CERTENROLL_OBJECTID = 65i32; +pub const XCN_OID_OIWSEC_desCBC: CERTENROLL_OBJECTID = 70i32; +pub const XCN_OID_OIWSEC_desCFB: CERTENROLL_OBJECTID = 72i32; +pub const XCN_OID_OIWSEC_desECB: CERTENROLL_OBJECTID = 69i32; +pub const XCN_OID_OIWSEC_desEDE: CERTENROLL_OBJECTID = 80i32; +pub const XCN_OID_OIWSEC_desMAC: CERTENROLL_OBJECTID = 73i32; +pub const XCN_OID_OIWSEC_desOFB: CERTENROLL_OBJECTID = 71i32; +pub const XCN_OID_OIWSEC_dhCommMod: CERTENROLL_OBJECTID = 79i32; +pub const XCN_OID_OIWSEC_dsa: CERTENROLL_OBJECTID = 75i32; +pub const XCN_OID_OIWSEC_dsaComm: CERTENROLL_OBJECTID = 83i32; +pub const XCN_OID_OIWSEC_dsaCommSHA: CERTENROLL_OBJECTID = 84i32; +pub const XCN_OID_OIWSEC_dsaCommSHA1: CERTENROLL_OBJECTID = 91i32; +pub const XCN_OID_OIWSEC_dsaSHA1: CERTENROLL_OBJECTID = 90i32; +pub const XCN_OID_OIWSEC_keyHashSeal: CERTENROLL_OBJECTID = 86i32; +pub const XCN_OID_OIWSEC_md2RSASign: CERTENROLL_OBJECTID = 87i32; +pub const XCN_OID_OIWSEC_md4RSA: CERTENROLL_OBJECTID = 66i32; +pub const XCN_OID_OIWSEC_md4RSA2: CERTENROLL_OBJECTID = 68i32; +pub const XCN_OID_OIWSEC_md5RSA: CERTENROLL_OBJECTID = 67i32; +pub const XCN_OID_OIWSEC_md5RSASign: CERTENROLL_OBJECTID = 88i32; +pub const XCN_OID_OIWSEC_mdc2: CERTENROLL_OBJECTID = 82i32; +pub const XCN_OID_OIWSEC_mdc2RSA: CERTENROLL_OBJECTID = 77i32; +pub const XCN_OID_OIWSEC_rsaSign: CERTENROLL_OBJECTID = 74i32; +pub const XCN_OID_OIWSEC_rsaXchg: CERTENROLL_OBJECTID = 85i32; +pub const XCN_OID_OIWSEC_sha: CERTENROLL_OBJECTID = 81i32; +pub const XCN_OID_OIWSEC_sha1: CERTENROLL_OBJECTID = 89i32; +pub const XCN_OID_OIWSEC_sha1RSASign: CERTENROLL_OBJECTID = 92i32; +pub const XCN_OID_OIWSEC_shaDSA: CERTENROLL_OBJECTID = 76i32; +pub const XCN_OID_OIWSEC_shaRSA: CERTENROLL_OBJECTID = 78i32; +pub const XCN_OID_ORGANIZATIONAL_UNIT_NAME: CERTENROLL_OBJECTID = 129i32; +pub const XCN_OID_ORGANIZATION_NAME: CERTENROLL_OBJECTID = 128i32; +pub const XCN_OID_OS_VERSION: CERTENROLL_OBJECTID = 200i32; +pub const XCN_OID_OWNER: CERTENROLL_OBJECTID = 150i32; +pub const XCN_OID_PHYSICAL_DELIVERY_OFFICE_NAME: CERTENROLL_OBJECTID = 137i32; +pub const XCN_OID_PKCS: CERTENROLL_OBJECTID = 2i32; +pub const XCN_OID_PKCS_1: CERTENROLL_OBJECTID = 5i32; +pub const XCN_OID_PKCS_10: CERTENROLL_OBJECTID = 14i32; +pub const XCN_OID_PKCS_12: CERTENROLL_OBJECTID = 15i32; +pub const XCN_OID_PKCS_12_EXTENDED_ATTRIBUTES: CERTENROLL_OBJECTID = 167i32; +pub const XCN_OID_PKCS_12_FRIENDLY_NAME_ATTR: CERTENROLL_OBJECTID = 163i32; +pub const XCN_OID_PKCS_12_KEY_PROVIDER_NAME_ATTR: CERTENROLL_OBJECTID = 165i32; +pub const XCN_OID_PKCS_12_LOCAL_KEY_ID: CERTENROLL_OBJECTID = 164i32; +pub const XCN_OID_PKCS_12_PROTECTED_PASSWORD_SECRET_BAG_TYPE_ID: CERTENROLL_OBJECTID = 407i32; +pub const XCN_OID_PKCS_12_PbeIds: CERTENROLL_OBJECTID = 400i32; +pub const XCN_OID_PKCS_12_pbeWithSHA1And128BitRC2: CERTENROLL_OBJECTID = 401i32; +pub const XCN_OID_PKCS_12_pbeWithSHA1And128BitRC4: CERTENROLL_OBJECTID = 402i32; +pub const XCN_OID_PKCS_12_pbeWithSHA1And2KeyTripleDES: CERTENROLL_OBJECTID = 403i32; +pub const XCN_OID_PKCS_12_pbeWithSHA1And3KeyTripleDES: CERTENROLL_OBJECTID = 404i32; +pub const XCN_OID_PKCS_12_pbeWithSHA1And40BitRC2: CERTENROLL_OBJECTID = 405i32; +pub const XCN_OID_PKCS_12_pbeWithSHA1And40BitRC4: CERTENROLL_OBJECTID = 406i32; +pub const XCN_OID_PKCS_2: CERTENROLL_OBJECTID = 6i32; +pub const XCN_OID_PKCS_3: CERTENROLL_OBJECTID = 7i32; +pub const XCN_OID_PKCS_4: CERTENROLL_OBJECTID = 8i32; +pub const XCN_OID_PKCS_5: CERTENROLL_OBJECTID = 9i32; +pub const XCN_OID_PKCS_6: CERTENROLL_OBJECTID = 10i32; +pub const XCN_OID_PKCS_7: CERTENROLL_OBJECTID = 11i32; +pub const XCN_OID_PKCS_7_DATA: CERTENROLL_OBJECTID = 329i32; +pub const XCN_OID_PKCS_7_DIGESTED: CERTENROLL_OBJECTID = 333i32; +pub const XCN_OID_PKCS_7_ENCRYPTED: CERTENROLL_OBJECTID = 334i32; +pub const XCN_OID_PKCS_7_ENVELOPED: CERTENROLL_OBJECTID = 331i32; +pub const XCN_OID_PKCS_7_SIGNED: CERTENROLL_OBJECTID = 330i32; +pub const XCN_OID_PKCS_7_SIGNEDANDENVELOPED: CERTENROLL_OBJECTID = 332i32; +pub const XCN_OID_PKCS_8: CERTENROLL_OBJECTID = 12i32; +pub const XCN_OID_PKCS_9: CERTENROLL_OBJECTID = 13i32; +pub const XCN_OID_PKCS_9_CONTENT_TYPE: CERTENROLL_OBJECTID = 335i32; +pub const XCN_OID_PKCS_9_MESSAGE_DIGEST: CERTENROLL_OBJECTID = 336i32; +pub const XCN_OID_PKINIT_KP_KDC: CERTENROLL_OBJECTID = 408i32; +pub const XCN_OID_PKIX: CERTENROLL_OBJECTID = 202i32; +pub const XCN_OID_PKIX_ACC_DESCR: CERTENROLL_OBJECTID = 282i32; +pub const XCN_OID_PKIX_CA_ISSUERS: CERTENROLL_OBJECTID = 284i32; +pub const XCN_OID_PKIX_CA_REPOSITORY: CERTENROLL_OBJECTID = 409i32; +pub const XCN_OID_PKIX_KP: CERTENROLL_OBJECTID = 243i32; +pub const XCN_OID_PKIX_KP_CLIENT_AUTH: CERTENROLL_OBJECTID = 245i32; +pub const XCN_OID_PKIX_KP_CODE_SIGNING: CERTENROLL_OBJECTID = 246i32; +pub const XCN_OID_PKIX_KP_EMAIL_PROTECTION: CERTENROLL_OBJECTID = 247i32; +pub const XCN_OID_PKIX_KP_IPSEC_END_SYSTEM: CERTENROLL_OBJECTID = 248i32; +pub const XCN_OID_PKIX_KP_IPSEC_TUNNEL: CERTENROLL_OBJECTID = 249i32; +pub const XCN_OID_PKIX_KP_IPSEC_USER: CERTENROLL_OBJECTID = 250i32; +pub const XCN_OID_PKIX_KP_OCSP_SIGNING: CERTENROLL_OBJECTID = 252i32; +pub const XCN_OID_PKIX_KP_SERVER_AUTH: CERTENROLL_OBJECTID = 244i32; +pub const XCN_OID_PKIX_KP_TIMESTAMP_SIGNING: CERTENROLL_OBJECTID = 251i32; +pub const XCN_OID_PKIX_NO_SIGNATURE: CERTENROLL_OBJECTID = 303i32; +pub const XCN_OID_PKIX_OCSP: CERTENROLL_OBJECTID = 283i32; +pub const XCN_OID_PKIX_OCSP_BASIC_SIGNED_RESPONSE: CERTENROLL_OBJECTID = 328i32; +pub const XCN_OID_PKIX_OCSP_NOCHECK: CERTENROLL_OBJECTID = 253i32; +pub const XCN_OID_PKIX_OCSP_NONCE: CERTENROLL_OBJECTID = 410i32; +pub const XCN_OID_PKIX_PE: CERTENROLL_OBJECTID = 203i32; +pub const XCN_OID_PKIX_POLICY_QUALIFIER_CPS: CERTENROLL_OBJECTID = 279i32; +pub const XCN_OID_PKIX_POLICY_QUALIFIER_USERNOTICE: CERTENROLL_OBJECTID = 280i32; +pub const XCN_OID_PKIX_TIME_STAMPING: CERTENROLL_OBJECTID = 411i32; +pub const XCN_OID_POLICY_CONSTRAINTS: CERTENROLL_OBJECTID = 196i32; +pub const XCN_OID_POLICY_MAPPINGS: CERTENROLL_OBJECTID = 194i32; +pub const XCN_OID_POSTAL_ADDRESS: CERTENROLL_OBJECTID = 134i32; +pub const XCN_OID_POSTAL_CODE: CERTENROLL_OBJECTID = 135i32; +pub const XCN_OID_POST_OFFICE_BOX: CERTENROLL_OBJECTID = 136i32; +pub const XCN_OID_PREFERRED_DELIVERY_METHOD: CERTENROLL_OBJECTID = 146i32; +pub const XCN_OID_PRESENTATION_ADDRESS: CERTENROLL_OBJECTID = 147i32; +pub const XCN_OID_PRIVATEKEY_USAGE_PERIOD: CERTENROLL_OBJECTID = 177i32; +pub const XCN_OID_PRODUCT_UPDATE: CERTENROLL_OBJECTID = 215i32; +pub const XCN_OID_QC_EU_COMPLIANCE: CERTENROLL_OBJECTID = 412i32; +pub const XCN_OID_QC_SSCD: CERTENROLL_OBJECTID = 413i32; +pub const XCN_OID_QC_STATEMENTS_EXT: CERTENROLL_OBJECTID = 414i32; +pub const XCN_OID_RDN_DUMMY_SIGNER: CERTENROLL_OBJECTID = 228i32; +pub const XCN_OID_RDN_TPM_MANUFACTURER: CERTENROLL_OBJECTID = 415i32; +pub const XCN_OID_RDN_TPM_MODEL: CERTENROLL_OBJECTID = 416i32; +pub const XCN_OID_RDN_TPM_VERSION: CERTENROLL_OBJECTID = 417i32; +pub const XCN_OID_REASON_CODE_HOLD: CERTENROLL_OBJECTID = 186i32; +pub const XCN_OID_REGISTERED_ADDRESS: CERTENROLL_OBJECTID = 144i32; +pub const XCN_OID_REMOVE_CERTIFICATE: CERTENROLL_OBJECTID = 209i32; +pub const XCN_OID_RENEWAL_CERTIFICATE: CERTENROLL_OBJECTID = 197i32; +pub const XCN_OID_REQUEST_CLIENT_INFO: CERTENROLL_OBJECTID = 238i32; +pub const XCN_OID_REQUIRE_CERT_CHAIN_POLICY: CERTENROLL_OBJECTID = 234i32; +pub const XCN_OID_REVOKED_LIST_SIGNER: CERTENROLL_OBJECTID = 418i32; +pub const XCN_OID_RFC3161_counterSign: CERTENROLL_OBJECTID = 419i32; +pub const XCN_OID_ROLE_OCCUPANT: CERTENROLL_OBJECTID = 151i32; +pub const XCN_OID_ROOT_LIST_SIGNER: CERTENROLL_OBJECTID = 265i32; +pub const XCN_OID_ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION: CERTENROLL_OBJECTID = 420i32; +pub const XCN_OID_ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION: CERTENROLL_OBJECTID = 421i32; +pub const XCN_OID_ROOT_PROGRAM_FLAGS: CERTENROLL_OBJECTID = 422i32; +pub const XCN_OID_ROOT_PROGRAM_NO_OCSP_FAILOVER_TO_CRL: CERTENROLL_OBJECTID = 423i32; +pub const XCN_OID_RSA: CERTENROLL_OBJECTID = 1i32; +pub const XCN_OID_RSAES_OAEP: CERTENROLL_OBJECTID = 425i32; +pub const XCN_OID_RSA_DES_EDE3_CBC: CERTENROLL_OBJECTID = 51i32; +pub const XCN_OID_RSA_DH: CERTENROLL_OBJECTID = 22i32; +pub const XCN_OID_RSA_ENCRYPT: CERTENROLL_OBJECTID = 4i32; +pub const XCN_OID_RSA_HASH: CERTENROLL_OBJECTID = 3i32; +pub const XCN_OID_RSA_MD2: CERTENROLL_OBJECTID = 46i32; +pub const XCN_OID_RSA_MD2RSA: CERTENROLL_OBJECTID = 17i32; +pub const XCN_OID_RSA_MD4: CERTENROLL_OBJECTID = 47i32; +pub const XCN_OID_RSA_MD4RSA: CERTENROLL_OBJECTID = 18i32; +pub const XCN_OID_RSA_MD5: CERTENROLL_OBJECTID = 48i32; +pub const XCN_OID_RSA_MD5RSA: CERTENROLL_OBJECTID = 19i32; +pub const XCN_OID_RSA_MGF1: CERTENROLL_OBJECTID = 348i32; +pub const XCN_OID_RSA_PSPECIFIED: CERTENROLL_OBJECTID = 424i32; +pub const XCN_OID_RSA_RC2CBC: CERTENROLL_OBJECTID = 49i32; +pub const XCN_OID_RSA_RC4: CERTENROLL_OBJECTID = 50i32; +pub const XCN_OID_RSA_RC5_CBCPad: CERTENROLL_OBJECTID = 52i32; +pub const XCN_OID_RSA_RSA: CERTENROLL_OBJECTID = 16i32; +pub const XCN_OID_RSA_SETOAEP_RSA: CERTENROLL_OBJECTID = 21i32; +pub const XCN_OID_RSA_SHA1RSA: CERTENROLL_OBJECTID = 20i32; +pub const XCN_OID_RSA_SHA256RSA: CERTENROLL_OBJECTID = 342i32; +pub const XCN_OID_RSA_SHA384RSA: CERTENROLL_OBJECTID = 343i32; +pub const XCN_OID_RSA_SHA512RSA: CERTENROLL_OBJECTID = 344i32; +pub const XCN_OID_RSA_SMIMECapabilities: CERTENROLL_OBJECTID = 40i32; +pub const XCN_OID_RSA_SMIMEalg: CERTENROLL_OBJECTID = 42i32; +pub const XCN_OID_RSA_SMIMEalgCMS3DESwrap: CERTENROLL_OBJECTID = 44i32; +pub const XCN_OID_RSA_SMIMEalgCMSRC2wrap: CERTENROLL_OBJECTID = 45i32; +pub const XCN_OID_RSA_SMIMEalgESDH: CERTENROLL_OBJECTID = 43i32; +pub const XCN_OID_RSA_SSA_PSS: CERTENROLL_OBJECTID = 353i32; +pub const XCN_OID_RSA_certExtensions: CERTENROLL_OBJECTID = 39i32; +pub const XCN_OID_RSA_challengePwd: CERTENROLL_OBJECTID = 36i32; +pub const XCN_OID_RSA_contentType: CERTENROLL_OBJECTID = 32i32; +pub const XCN_OID_RSA_counterSign: CERTENROLL_OBJECTID = 35i32; +pub const XCN_OID_RSA_data: CERTENROLL_OBJECTID = 23i32; +pub const XCN_OID_RSA_digestedData: CERTENROLL_OBJECTID = 27i32; +pub const XCN_OID_RSA_emailAddr: CERTENROLL_OBJECTID = 30i32; +pub const XCN_OID_RSA_encryptedData: CERTENROLL_OBJECTID = 29i32; +pub const XCN_OID_RSA_envelopedData: CERTENROLL_OBJECTID = 25i32; +pub const XCN_OID_RSA_extCertAttrs: CERTENROLL_OBJECTID = 38i32; +pub const XCN_OID_RSA_hashedData: CERTENROLL_OBJECTID = 28i32; +pub const XCN_OID_RSA_messageDigest: CERTENROLL_OBJECTID = 33i32; +pub const XCN_OID_RSA_preferSignedData: CERTENROLL_OBJECTID = 41i32; +pub const XCN_OID_RSA_signEnvData: CERTENROLL_OBJECTID = 26i32; +pub const XCN_OID_RSA_signedData: CERTENROLL_OBJECTID = 24i32; +pub const XCN_OID_RSA_signingTime: CERTENROLL_OBJECTID = 34i32; +pub const XCN_OID_RSA_unstructAddr: CERTENROLL_OBJECTID = 37i32; +pub const XCN_OID_RSA_unstructName: CERTENROLL_OBJECTID = 31i32; +pub const XCN_OID_SEARCH_GUIDE: CERTENROLL_OBJECTID = 132i32; +pub const XCN_OID_SEE_ALSO: CERTENROLL_OBJECTID = 152i32; +pub const XCN_OID_SERIALIZED: CERTENROLL_OBJECTID = 213i32; +pub const XCN_OID_SERVER_GATED_CRYPTO: CERTENROLL_OBJECTID = 257i32; +pub const XCN_OID_SGC_NETSCAPE: CERTENROLL_OBJECTID = 258i32; +pub const XCN_OID_SORTED_CTL: CERTENROLL_OBJECTID = 212i32; +pub const XCN_OID_STATE_OR_PROVINCE_NAME: CERTENROLL_OBJECTID = 126i32; +pub const XCN_OID_STREET_ADDRESS: CERTENROLL_OBJECTID = 127i32; +pub const XCN_OID_SUBJECT_ALT_NAME: CERTENROLL_OBJECTID = 173i32; +pub const XCN_OID_SUBJECT_ALT_NAME2: CERTENROLL_OBJECTID = 183i32; +pub const XCN_OID_SUBJECT_DIR_ATTRS: CERTENROLL_OBJECTID = 242i32; +pub const XCN_OID_SUBJECT_INFO_ACCESS: CERTENROLL_OBJECTID = 426i32; +pub const XCN_OID_SUBJECT_KEY_IDENTIFIER: CERTENROLL_OBJECTID = 182i32; +pub const XCN_OID_SUPPORTED_APPLICATION_CONTEXT: CERTENROLL_OBJECTID = 148i32; +pub const XCN_OID_SUR_NAME: CERTENROLL_OBJECTID = 122i32; +pub const XCN_OID_TELEPHONE_NUMBER: CERTENROLL_OBJECTID = 138i32; +pub const XCN_OID_TELETEXT_TERMINAL_IDENTIFIER: CERTENROLL_OBJECTID = 140i32; +pub const XCN_OID_TELEX_NUMBER: CERTENROLL_OBJECTID = 139i32; +pub const XCN_OID_TIMESTAMP_TOKEN: CERTENROLL_OBJECTID = 427i32; +pub const XCN_OID_TITLE: CERTENROLL_OBJECTID = 130i32; +pub const XCN_OID_USER_CERTIFICATE: CERTENROLL_OBJECTID = 154i32; +pub const XCN_OID_USER_PASSWORD: CERTENROLL_OBJECTID = 153i32; +pub const XCN_OID_VERISIGN_BITSTRING_6_13: CERTENROLL_OBJECTID = 287i32; +pub const XCN_OID_VERISIGN_ISS_STRONG_CRYPTO: CERTENROLL_OBJECTID = 288i32; +pub const XCN_OID_VERISIGN_ONSITE_JURISDICTION_HASH: CERTENROLL_OBJECTID = 286i32; +pub const XCN_OID_VERISIGN_PRIVATE_6_9: CERTENROLL_OBJECTID = 285i32; +pub const XCN_OID_WHQL_CRYPTO: CERTENROLL_OBJECTID = 261i32; +pub const XCN_OID_X21_ADDRESS: CERTENROLL_OBJECTID = 142i32; +pub const XCN_OID_X957: CERTENROLL_OBJECTID = 55i32; +pub const XCN_OID_X957_DSA: CERTENROLL_OBJECTID = 56i32; +pub const XCN_OID_X957_SHA1DSA: CERTENROLL_OBJECTID = 57i32; +pub const XCN_OID_YESNO_TRUST_ATTR: CERTENROLL_OBJECTID = 278i32; +pub const XCN_PROPERTYID_NONE: CERTENROLL_PROPERTYID = 0i32; +pub const XCN_PROV_DH_SCHANNEL: X509ProviderType = 18i32; +pub const XCN_PROV_DSS: X509ProviderType = 3i32; +pub const XCN_PROV_DSS_DH: X509ProviderType = 13i32; +pub const XCN_PROV_EC_ECDSA_FULL: X509ProviderType = 16i32; +pub const XCN_PROV_EC_ECDSA_SIG: X509ProviderType = 14i32; +pub const XCN_PROV_EC_ECNRA_FULL: X509ProviderType = 17i32; +pub const XCN_PROV_EC_ECNRA_SIG: X509ProviderType = 15i32; +pub const XCN_PROV_FORTEZZA: X509ProviderType = 4i32; +pub const XCN_PROV_INTEL_SEC: X509ProviderType = 22i32; +pub const XCN_PROV_MS_EXCHANGE: X509ProviderType = 5i32; +pub const XCN_PROV_NONE: X509ProviderType = 0i32; +pub const XCN_PROV_REPLACE_OWF: X509ProviderType = 23i32; +pub const XCN_PROV_RNG: X509ProviderType = 21i32; +pub const XCN_PROV_RSA_AES: X509ProviderType = 24i32; +pub const XCN_PROV_RSA_FULL: X509ProviderType = 1i32; +pub const XCN_PROV_RSA_SCHANNEL: X509ProviderType = 12i32; +pub const XCN_PROV_RSA_SIG: X509ProviderType = 2i32; +pub const XCN_PROV_SPYRUS_LYNKS: X509ProviderType = 20i32; +pub const XCN_PROV_SSL: X509ProviderType = 6i32; +pub const XECI_AUTOENROLL: u32 = 2u32; +pub const XECI_CERTREQ: u32 = 4u32; +pub const XECI_DISABLE: u32 = 0u32; +pub const XECI_REQWIZARD: u32 = 3u32; +pub const XECI_XENROLL: u32 = 1u32; +pub const XECP_STRING_PROPERTY: u32 = 1u32; +pub const XECR_CMC: CERT_CREATE_REQUEST_FLAGS = 3i32; +pub const XECR_PKCS10_V1_5: CERT_CREATE_REQUEST_FLAGS = 4i32; +pub const XECR_PKCS10_V2_0: CERT_CREATE_REQUEST_FLAGS = 1i32; +pub const XECR_PKCS7: CERT_CREATE_REQUEST_FLAGS = 2i32; +pub const XECT_EXTENSION_V1: ADDED_CERT_TYPE = 1i32; +pub const XECT_EXTENSION_V2: ADDED_CERT_TYPE = 2i32; +pub const XEKL_KEYSIZE_DEFAULT: u32 = 4u32; +pub const XEKL_KEYSIZE_INC: XEKL_KEYSIZE = 3i32; +pub const XEKL_KEYSIZE_MAX: XEKL_KEYSIZE = 2i32; +pub const XEKL_KEYSIZE_MIN: XEKL_KEYSIZE = 1i32; +pub const XEKL_KEYSPEC_KEYX: XEKL_KEYSPEC = 1i32; +pub const XEKL_KEYSPEC_SIG: XEKL_KEYSPEC = 2i32; +pub const XEPR_CADNS: PENDING_REQUEST_DESIRED_PROPERTY = 1i32; +pub const XEPR_CAFRIENDLYNAME: PENDING_REQUEST_DESIRED_PROPERTY = 3i32; +pub const XEPR_CANAME: PENDING_REQUEST_DESIRED_PROPERTY = 2i32; +pub const XEPR_DATE: u32 = 5u32; +pub const XEPR_ENUM_FIRST: i32 = -1i32; +pub const XEPR_HASH: PENDING_REQUEST_DESIRED_PROPERTY = 8i32; +pub const XEPR_REQUESTID: PENDING_REQUEST_DESIRED_PROPERTY = 4i32; +pub const XEPR_TEMPLATENAME: u32 = 6u32; +pub const XEPR_V1TEMPLATENAME: u32 = 9u32; +pub const XEPR_V2TEMPLATEOID: u32 = 16u32; +pub const XEPR_VERSION: u32 = 7u32; +pub const dwCAXCHGOVERLAPPERIODCOUNTDEFAULT: u32 = 1u32; +pub const dwCAXCHGVALIDITYPERIODCOUNTDEFAULT: u32 = 1u32; +pub const dwCRLDELTAOVERLAPPERIODCOUNTDEFAULT: u32 = 0u32; +pub const dwCRLDELTAPERIODCOUNTDEFAULT: u32 = 1u32; +pub const dwCRLOVERLAPPERIODCOUNTDEFAULT: u32 = 0u32; +pub const dwCRLPERIODCOUNTDEFAULT: u32 = 1u32; +pub const dwVALIDITYPERIODCOUNTDEFAULT_ENTERPRISE: u32 = 2u32; +pub const dwVALIDITYPERIODCOUNTDEFAULT_ROOT: u32 = 5u32; +pub const dwVALIDITYPERIODCOUNTDEFAULT_STANDALONE: u32 = 1u32; +pub const szBACKUPANNOTATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Cert Server Backup Interface"); +pub const szDBBASENAMEPARM: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("edb"); +pub const szNAMESEPARATORDEFAULT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("\n"); +pub const szPROPASNTAG: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("{asn}"); +pub const szRESTOREANNOTATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Cert Server Restore Interface"); +pub const wszAT_EKCERTINF: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("@EKCert"); +pub const wszAT_TESTROOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("@TestRoot"); +pub const wszCAPOLICYFILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAPolicy.inf"); +pub const wszCERTEXITMODULE_POSTFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".Exit"); +pub const wszCERTIFICATETRANSPARENCYFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateTransparencyFlags"); +pub const wszCERTMANAGE_SUFFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Manage"); +pub const wszCERTPOLICYMODULE_POSTFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".Policy"); +pub const wszCERT_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestType"); +pub const wszCERT_TYPE_CLIENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Client"); +pub const wszCERT_TYPE_CODESIGN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CodeSign"); +pub const wszCERT_TYPE_CUSTOMER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SetCustomer"); +pub const wszCERT_TYPE_MERCHANT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SetMerchant"); +pub const wszCERT_TYPE_PAYMENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SetPayment"); +pub const wszCERT_TYPE_SERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Server"); +pub const wszCERT_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Version"); +pub const wszCERT_VERSION_1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1"); +pub const wszCERT_VERSION_2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("2"); +pub const wszCERT_VERSION_3: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("3"); +pub const wszCLASS_CERTADMIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateAuthority.Admin"); +pub const wszCLASS_CERTCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateAuthority.Config"); +pub const wszCLASS_CERTDBMEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateAuthority.DBMem"); +pub const wszCLASS_CERTENCODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateAuthority.Encode"); +pub const wszCLASS_CERTGETCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateAuthority.GetConfig"); +pub const wszCLASS_CERTREQUEST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateAuthority.Request"); +pub const wszCLASS_CERTSERVEREXIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateAuthority.ServerExit"); +pub const wszCLASS_CERTSERVERPOLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateAuthority.ServerPolicy"); +pub const wszCLASS_CERTVIEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateAuthority.View"); +pub const wszCMM_PROP_COPYRIGHT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Copyright"); +pub const wszCMM_PROP_DESCRIPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const wszCMM_PROP_DISPLAY_HWND: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HWND"); +pub const wszCMM_PROP_FILEVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("File Version"); +pub const wszCMM_PROP_ISMULTITHREADED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsMultiThreaded"); +pub const wszCMM_PROP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const wszCMM_PROP_PRODUCTVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Product Version"); +pub const wszCNGENCRYPTIONALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CNGEncryptionAlgorithm"); +pub const wszCNGHASHALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CNGHashAlgorithm"); +pub const wszCNGPUBLICKEYALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CNGPublicKeyAlgorithm"); +pub const wszCONFIG_AUTHORITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Authority"); +pub const wszCONFIG_COMMENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Comment"); +pub const wszCONFIG_COMMONNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CommonName"); +pub const wszCONFIG_CONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Config"); +pub const wszCONFIG_COUNTRY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Country"); +pub const wszCONFIG_DESCRIPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const wszCONFIG_EXCHANGECERTIFICATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExchangeCertificate"); +pub const wszCONFIG_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Flags"); +pub const wszCONFIG_LOCALITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Locality"); +pub const wszCONFIG_ORGANIZATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Organization"); +pub const wszCONFIG_ORGUNIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OrgUnit"); +pub const wszCONFIG_SANITIZEDNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SanitizedName"); +pub const wszCONFIG_SANITIZEDSHORTNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SanitizedShortName"); +pub const wszCONFIG_SERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Server"); +pub const wszCONFIG_SHORTNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShortName"); +pub const wszCONFIG_SIGNATURECERTIFICATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SignatureCertificate"); +pub const wszCONFIG_STATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("State"); +pub const wszCONFIG_WEBENROLLMENTSERVERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WebEnrollmentServers"); +pub const wszCRLPUBLISHRETRYCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLPublishRetryCount"); +pub const wszCRTFILENAMEEXT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".crt"); +pub const wszDATFILENAMEEXT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".dat"); +pub const wszDBBACKUPCERTBACKDAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("certbkxp.dat"); +pub const wszDBBACKUPSUBDIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DataBase"); +pub const wszDBFILENAMEEXT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".edb"); +pub const wszENCRYPTIONALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EncryptionAlgorithm"); +pub const wszENROLLMENTAGENTRIGHTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnrollmentAgentRights"); +pub const wszHASHALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HashAlgorithm"); +pub const wszINFKEY_ALTERNATESIGNATUREALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AlternateSignatureAlgorithm"); +pub const wszINFKEY_ATTESTPRIVATEKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AttestPrivateKey"); +pub const wszINFKEY_CACAPABILITIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CACapabilities"); +pub const wszINFKEY_CACERTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CACerts"); +pub const wszINFKEY_CATHUMBPRINT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAThumbprint"); +pub const wszINFKEY_CCDPSYNCDELTATIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SyncDeltaTime"); +pub const wszINFKEY_CHALLENGEPASSWORD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChallengePassword"); +pub const wszINFKEY_CONTINUE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_continue_"); +pub const wszINFKEY_CRITICAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Critical"); +pub const wszINFKEY_CRLDELTAPERIODCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLDeltaPeriodUnits"); +pub const wszINFKEY_CRLDELTAPERIODSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLDeltaPeriod"); +pub const wszINFKEY_CRLPERIODCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLPeriodUnits"); +pub const wszINFKEY_CRLPERIODSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLPeriod"); +pub const wszINFKEY_DIRECTORYNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DirectoryName"); +pub const wszINFKEY_DNS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DNS"); +pub const wszINFKEY_ECCKEYPARAMETERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EccKeyParameters"); +pub const wszINFKEY_ECCKEYPARAMETERSTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EccKeyParametersType"); +pub const wszINFKEY_ECCKEYPARAMETERS_A: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EccKeyParameters_A"); +pub const wszINFKEY_ECCKEYPARAMETERS_B: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EccKeyParameters_B"); +pub const wszINFKEY_ECCKEYPARAMETERS_BASE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EccKeyParameters_Base"); +pub const wszINFKEY_ECCKEYPARAMETERS_COFACTOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EccKeyParameters_Cofactor"); +pub const wszINFKEY_ECCKEYPARAMETERS_ORDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EccKeyParameters_Order"); +pub const wszINFKEY_ECCKEYPARAMETERS_P: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EccKeyParameters_P"); +pub const wszINFKEY_ECCKEYPARAMETERS_SEED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EccKeyParameters_Seed"); +pub const wszINFKEY_EMAIL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EMail"); +pub const wszINFKEY_EMPTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Empty"); +pub const wszINFKEY_ENABLEKEYCOUNTING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableKeyCounting"); +pub const wszINFKEY_ENCRYPTIONALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EncryptionAlgorithm"); +pub const wszINFKEY_ENCRYPTIONLENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EncryptionLength"); +pub const wszINFKEY_EXCLUDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Exclude"); +pub const wszINFKEY_EXPORTABLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Exportable"); +pub const wszINFKEY_EXPORTABLEENCRYPTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExportableEncrypted"); +pub const wszINFKEY_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Flags"); +pub const wszINFKEY_FORCEUTF8: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ForceUTF8"); +pub const wszINFKEY_FRIENDLYNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FriendlyName"); +pub const wszINFKEY_HASHALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HashAlgorithm"); +pub const wszINFKEY_INCLUDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Include"); +pub const wszINFKEY_INHIBITPOLICYMAPPING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InhibitPolicyMapping"); +pub const wszINFKEY_IPADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IPAddress"); +pub const wszINFKEY_KEYALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyAlgorithm"); +pub const wszINFKEY_KEYALGORITHMPARMETERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyAlgorithmParameters"); +pub const wszINFKEY_KEYCONTAINER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyContainer"); +pub const wszINFKEY_KEYLENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyLength"); +pub const wszINFKEY_KEYPROTECTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyProtection"); +pub const wszINFKEY_KEYUSAGEEXTENSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyUsage"); +pub const wszINFKEY_KEYUSAGEPROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyUsageProperty"); +pub const wszINFKEY_LEGACYKEYSPEC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeySpec"); +pub const wszINFKEY_LOADDEFAULTTEMPLATES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LoadDefaultTemplates"); +pub const wszINFKEY_MACHINEKEYSET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MachineKeySet"); +pub const wszINFKEY_NOTAFTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NotAfter"); +pub const wszINFKEY_NOTBEFORE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NotBefore"); +pub const wszINFKEY_NOTICE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Notice"); +pub const wszINFKEY_OID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OID"); +pub const wszINFKEY_OTHERNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OtherName"); +pub const wszINFKEY_PATHLENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PathLength"); +pub const wszINFKEY_POLICIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Policies"); +pub const wszINFKEY_PRIVATEKEYARCHIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrivateKeyArchive"); +pub const wszINFKEY_PROVIDERNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProviderName"); +pub const wszINFKEY_PROVIDERTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProviderType"); +pub const wszINFKEY_PUBLICKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PublicKey"); +pub const wszINFKEY_PUBLICKEYPARAMETERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PublicKeyParameters"); +pub const wszINFKEY_READERNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReaderName"); +pub const wszINFKEY_REGISTEREDID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RegisteredId"); +pub const wszINFKEY_RENEWALCERT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RenewalCert"); +pub const wszINFKEY_RENEWALKEYLENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RenewalKeyLength"); +pub const wszINFKEY_RENEWALVALIDITYPERIODCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RenewalValidityPeriodUnits"); +pub const wszINFKEY_RENEWALVALIDITYPERIODSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RenewalValidityPeriod"); +pub const wszINFKEY_REQUESTTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestType"); +pub const wszINFKEY_REQUIREEXPLICITPOLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequireExplicitPolicy"); +pub const wszINFKEY_SECURITYDESCRIPTOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SecurityDescriptor"); +pub const wszINFKEY_SERIALNUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SerialNumber"); +pub const wszINFKEY_SHOWALLCSPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShowAllCSPs"); +pub const wszINFKEY_SILENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Silent"); +pub const wszINFKEY_SMIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SMIME"); +pub const wszINFKEY_SUBJECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Subject"); +pub const wszINFKEY_SUBJECTNAMEFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SubjectNameFlags"); +pub const wszINFKEY_SUBTREE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SubTree"); +pub const wszINFKEY_SUPPRESSDEFAULTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SuppressDefaults"); +pub const wszINFKEY_UICONTEXTMESSAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UIContextMessage"); +pub const wszINFKEY_UPN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UPN"); +pub const wszINFKEY_URL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("URL"); +pub const wszINFKEY_USEEXISTINGKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UseExistingKeySet"); +pub const wszINFKEY_USERPROTECTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UserProtected"); +pub const wszINFKEY_UTF8: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UTF8"); +pub const wszINFKEY_X500NAMEFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("X500NameFlags"); +pub const wszINFSECTION_AIA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AuthorityInformationAccess"); +pub const wszINFSECTION_APPLICATIONPOLICYCONSTRAINTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ApplicationPolicyConstraintsExtension"); +pub const wszINFSECTION_APPLICATIONPOLICYMAPPINGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ApplicationPolicyMappingsExtension"); +pub const wszINFSECTION_APPLICATIONPOLICYSTATEMENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ApplicationPolicyStatementExtension"); +pub const wszINFSECTION_BASICCONSTRAINTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BasicConstraintsExtension"); +pub const wszINFSECTION_CAPOLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAPolicy"); +pub const wszINFSECTION_CCDP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CrossCertificateDistributionPointsExtension"); +pub const wszINFSECTION_CDP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLDistributionPoint"); +pub const wszINFSECTION_CERTSERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("certsrv_server"); +pub const wszINFSECTION_EKU: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnhancedKeyUsageExtension"); +pub const wszINFSECTION_EXTENSIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Extensions"); +pub const wszINFSECTION_NAMECONSTRAINTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NameConstraintsExtension"); +pub const wszINFSECTION_NEWREQUEST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NewRequest"); +pub const wszINFSECTION_POLICYCONSTRAINTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PolicyConstraintsExtension"); +pub const wszINFSECTION_POLICYMAPPINGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PolicyMappingsExtension"); +pub const wszINFSECTION_POLICYSTATEMENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PolicyStatementExtension"); +pub const wszINFSECTION_PROPERTIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Properties"); +pub const wszINFSECTION_REQUESTATTRIBUTES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestAttributes"); +pub const wszINFVALUE_ENDORSEMENTKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EndorsementKey"); +pub const wszINFVALUE_REQUESTTYPE_CERT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Cert"); +pub const wszINFVALUE_REQUESTTYPE_CMC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CMC"); +pub const wszINFVALUE_REQUESTTYPE_PKCS10: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PKCS10"); +pub const wszINFVALUE_REQUESTTYPE_PKCS7: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PKCS7"); +pub const wszINFVALUE_REQUESTTYPE_SCEP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCEP"); +pub const wszLDAPSESSIONOPTIONVALUE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LDAPSessionOptionValue"); +pub const wszLOCALIZEDTIMEPERIODUNITS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LocalizedTimePeriodUnits"); +pub const wszLOGFILENAMEEXT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".log"); +pub const wszLOGPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertLog"); +pub const wszMACHINEKEYSET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MachineKeyset"); +pub const wszMICROSOFTCERTMODULE_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateAuthority_MicrosoftDefault"); +pub const wszNETSCAPEREVOCATIONTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Netscape"); +pub const wszOCSPCAPROP_CACERTIFICATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CACertificate"); +pub const wszOCSPCAPROP_CACONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAConfig"); +pub const wszOCSPCAPROP_CSPNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CSPName"); +pub const wszOCSPCAPROP_ERRORCODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ErrorCode"); +pub const wszOCSPCAPROP_HASHALGORITHMID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HashAlgorithmId"); +pub const wszOCSPCAPROP_KEYSPEC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeySpec"); +pub const wszOCSPCAPROP_LOCALREVOCATIONINFORMATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LocalRevocationInformation"); +pub const wszOCSPCAPROP_PROVIDERCLSID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProviderCLSID"); +pub const wszOCSPCAPROP_PROVIDERPROPERTIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Provider"); +pub const wszOCSPCAPROP_REMINDERDURATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReminderDuration"); +pub const wszOCSPCAPROP_SIGNINGCERTIFICATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SigningCertificate"); +pub const wszOCSPCAPROP_SIGNINGCERTIFICATETEMPLATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SigningCertificateTemplate"); +pub const wszOCSPCAPROP_SIGNINGFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SigningFlags"); +pub const wszOCSPCOMMONPROP_MAXINCOMINGMESSAGESIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxIncomingMessageSize"); +pub const wszOCSPCOMMONPROP_MAXNUMOFREQUESTENTRIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxNumOfRequestEntries"); +pub const wszOCSPCOMMONPROP_REQFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestFlags"); +pub const wszOCSPISAPIPROP_DEBUG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ISAPIDebug"); +pub const wszOCSPISAPIPROP_MAXAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxAge"); +pub const wszOCSPISAPIPROP_MAXNUMOFCACHEENTRIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxNumOfCacheEntries"); +pub const wszOCSPISAPIPROP_NUMOFBACKENDCONNECTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NumOfBackendConnections"); +pub const wszOCSPISAPIPROP_NUMOFTHREADS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NumOfThreads"); +pub const wszOCSPISAPIPROP_REFRESHRATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RefreshRate"); +pub const wszOCSPISAPIPROP_VIRTUALROOTNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VirtualRootName"); +pub const wszOCSPPROP_ARRAYCONTROLLER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ArrayController"); +pub const wszOCSPPROP_ARRAYMEMBERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ArrayMembers"); +pub const wszOCSPPROP_AUDITFILTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AuditFilter"); +pub const wszOCSPPROP_DEBUG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Debug"); +pub const wszOCSPPROP_ENROLLPOLLINTERVAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnrollPollInterval"); +pub const wszOCSPPROP_LOGLEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogLevel"); +pub const wszOCSPREVPROP_BASECRL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BaseCrl"); +pub const wszOCSPREVPROP_BASECRLURLS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BaseCrlUrls"); +pub const wszOCSPREVPROP_CRLURLTIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CrlUrlTimeOut"); +pub const wszOCSPREVPROP_DELTACRL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeltaCrl"); +pub const wszOCSPREVPROP_DELTACRLURLS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeltaCrlUrls"); +pub const wszOCSPREVPROP_ERRORCODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RevocationErrorCode"); +pub const wszOCSPREVPROP_REFRESHTIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RefreshTimeOut"); +pub const wszOCSPREVPROP_SERIALNUMBERSDIRS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IssuedSerialNumbersDirectories"); +pub const wszPERIODDAYS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Days"); +pub const wszPERIODHOURS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Hours"); +pub const wszPERIODMINUTES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Minutes"); +pub const wszPERIODMONTHS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Months"); +pub const wszPERIODSECONDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Seconds"); +pub const wszPERIODWEEKS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Weeks"); +pub const wszPERIODYEARS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Years"); +pub const wszPFXFILENAMEEXT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".p12"); +pub const wszPROPATTESTATIONCHALLENGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AttestationChallenge"); +pub const wszPROPATTRIBNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AttributeName"); +pub const wszPROPATTRIBREQUESTID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AttributeRequestId"); +pub const wszPROPATTRIBVALUE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AttributeValue"); +pub const wszPROPCALLERNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CallerName"); +pub const wszPROPCATYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAType"); +pub const wszPROPCERTCLIENTMACHINE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ccm"); +pub const wszPROPCERTCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertCount"); +pub const wszPROPCERTIFICATEENROLLMENTFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnrollmentFlags"); +pub const wszPROPCERTIFICATEGENERALFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GeneralFlags"); +pub const wszPROPCERTIFICATEHASH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateHash"); +pub const wszPROPCERTIFICATENOTAFTERDATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NotAfter"); +pub const wszPROPCERTIFICATENOTBEFOREDATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NotBefore"); +pub const wszPROPCERTIFICATEPRIVATEKEYFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrivatekeyFlags"); +pub const wszPROPCERTIFICATEPUBLICKEYALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PublicKeyAlgorithm"); +pub const wszPROPCERTIFICATEPUBLICKEYLENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PublicKeyLength"); +pub const wszPROPCERTIFICATERAWPUBLICKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawPublicKey"); +pub const wszPROPCERTIFICATERAWPUBLICKEYALGORITHMPARAMETERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawPublicKeyAlgorithmParameters"); +pub const wszPROPCERTIFICATERAWSMIMECAPABILITIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawSMIMECapabilities"); +pub const wszPROPCERTIFICATEREQUESTID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestID"); +pub const wszPROPCERTIFICATESERIALNUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SerialNumber"); +pub const wszPROPCERTIFICATESUBJECTKEYIDENTIFIER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SubjectKeyIdentifier"); +pub const wszPROPCERTIFICATETEMPLATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateTemplate"); +pub const wszPROPCERTIFICATETYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateType"); +pub const wszPROPCERTIFICATEUPN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UPN"); +pub const wszPROPCERTSTATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertState"); +pub const wszPROPCERTSUFFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertSuffix"); +pub const wszPROPCERTTEMPLATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateTemplate"); +pub const wszPROPCERTTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertType"); +pub const wszPROPCERTUSAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertificateUsage"); +pub const wszPROPCHALLENGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Challenge"); +pub const wszPROPCLIENTBROWSERMACHINE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("cbm"); +pub const wszPROPCLIENTDCDNS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("cdc"); +pub const wszPROPCOMMONNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CommonName"); +pub const wszPROPCONFIGDN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConfigDN"); +pub const wszPROPCOUNTRY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Country"); +pub const wszPROPCRITICALTAG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{critical}"); +pub const wszPROPCRLCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLCount"); +pub const wszPROPCRLEFFECTIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLEffective"); +pub const wszPROPCRLINDEX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLIndex"); +pub const wszPROPCRLLASTPUBLISHED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLLastPublished"); +pub const wszPROPCRLMINBASE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLMinBase"); +pub const wszPROPCRLNAMEID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLNameId"); +pub const wszPROPCRLNEXTPUBLISH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLNextPublish"); +pub const wszPROPCRLNEXTUPDATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLNextUpdate"); +pub const wszPROPCRLNUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLNumber"); +pub const wszPROPCRLPROPAGATIONCOMPLETE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLPropagationComplete"); +pub const wszPROPCRLPUBLISHATTEMPTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLPublishAttempts"); +pub const wszPROPCRLPUBLISHERROR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLPublishError"); +pub const wszPROPCRLPUBLISHFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLPublishFlags"); +pub const wszPROPCRLPUBLISHSTATUSCODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLPublishStatusCode"); +pub const wszPROPCRLRAWCRL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLRawCRL"); +pub const wszPROPCRLROWID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLRowId"); +pub const wszPROPCRLSTATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLState"); +pub const wszPROPCRLSUFFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLSuffix"); +pub const wszPROPCRLTHISPUBLISH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLThisPublish"); +pub const wszPROPCRLTHISUPDATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLThisUpdate"); +pub const wszPROPCROSSFOREST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CrossForest"); +pub const wszPROPDCNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DCName"); +pub const wszPROPDECIMALTAG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{decimal}"); +pub const wszPROPDELTACRLSDISABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("fDeltaCRLsDisabled"); +pub const wszPROPDEVICESERIALNUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceSerialNumber"); +pub const wszPROPDISPOSITION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Disposition"); +pub const wszPROPDISPOSITIONDENY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Deny"); +pub const wszPROPDISPOSITIONPENDING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Pending"); +pub const wszPROPDISTINGUISHEDNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DistinguishedName"); +pub const wszPROPDN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("dn"); +pub const wszPROPDNS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("dns"); +pub const wszPROPDOMAINCOMPONENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DomainComponent"); +pub const wszPROPDOMAINDN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DomainDN"); +pub const wszPROPEMAIL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EMail"); +pub const wszPROPENDORSEMENTCERTIFICATEHASH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EndorsementCertificateHash"); +pub const wszPROPENDORSEMENTKEYHASH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EndorsementKeyHash"); +pub const wszPROPEVENTLOGERROR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EventLogError"); +pub const wszPROPEVENTLOGEXHAUSTIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EventLogExhaustive"); +pub const wszPROPEVENTLOGTERSE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EventLogTerse"); +pub const wszPROPEVENTLOGVERBOSE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EventLogVerbose"); +pub const wszPROPEVENTLOGWARNING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EventLogWarning"); +pub const wszPROPEXITCERTFILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertFile"); +pub const wszPROPEXPECTEDCHALLENGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExpectedChallenge"); +pub const wszPROPEXPIRATIONDATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExpirationDate"); +pub const wszPROPEXTFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExtensionFlags"); +pub const wszPROPEXTNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExtensionName"); +pub const wszPROPEXTRAWVALUE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExtensionRawValue"); +pub const wszPROPEXTREQUESTID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExtensionRequestId"); +pub const wszPROPFILETAG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{file}"); +pub const wszPROPGIVENNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GivenName"); +pub const wszPROPGUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("guid"); +pub const wszPROPHEXTAG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{hex}"); +pub const wszPROPINITIALS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Initials"); +pub const wszPROPIPADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ipaddress"); +pub const wszPROPKEYARCHIVED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyArchived"); +pub const wszPROPLOCALITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Locality"); +pub const wszPROPLOGLEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogLevel"); +pub const wszPROPMACHINEDNSNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MachineDNSName"); +pub const wszPROPMODULEREGLOC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ModuleRegistryLocation"); +pub const wszPROPNAMETYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NameType"); +pub const wszPROPOCTETTAG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{octet}"); +pub const wszPROPOFFICER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Officer"); +pub const wszPROPOID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("oid"); +pub const wszPROPORGANIZATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Organization"); +pub const wszPROPORGUNIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OrgUnit"); +pub const wszPROPPUBLISHEXPIREDCERTINCRL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PublishExpiredCertInCRL"); +pub const wszPROPRAWCACERTIFICATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawCACertificate"); +pub const wszPROPRAWCERTIFICATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawCertificate"); +pub const wszPROPRAWCRL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawCRL"); +pub const wszPROPRAWDELTACRL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawDeltaCRL"); +pub const wszPROPRAWNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawName"); +pub const wszPROPRAWPRECERTIFICATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawPrecertificate"); +pub const wszPROPREQUESTARCHIVEDKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ArchivedKey"); +pub const wszPROPREQUESTATTRIBUTES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestAttributes"); +pub const wszPROPREQUESTCSPPROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestCSPProvider"); +pub const wszPROPREQUESTDISPOSITION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Disposition"); +pub const wszPROPREQUESTDISPOSITIONMESSAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DispositionMessage"); +pub const wszPROPREQUESTDOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Request."); +pub const wszPROPREQUESTERCAACCESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequesterCAAccess"); +pub const wszPROPREQUESTERDN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequesterDN"); +pub const wszPROPREQUESTERNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequesterName"); +pub const wszPROPREQUESTERNAMEFROMOLDCERTIFICATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequesterNameFromOldCertificate"); +pub const wszPROPREQUESTERSAMNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequesterSAMName"); +pub const wszPROPREQUESTERUPN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequesterUPN"); +pub const wszPROPREQUESTFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestFlags"); +pub const wszPROPREQUESTKEYRECOVERYHASHES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyRecoveryHashes"); +pub const wszPROPREQUESTMACHINEDNS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("rmd"); +pub const wszPROPREQUESTOSVERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestOSVersion"); +pub const wszPROPREQUESTRAWARCHIVEDKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawArchivedKey"); +pub const wszPROPREQUESTRAWOLDCERTIFICATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawOldCertificate"); +pub const wszPROPREQUESTRAWREQUEST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawRequest"); +pub const wszPROPREQUESTREQUESTID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestID"); +pub const wszPROPREQUESTRESOLVEDWHEN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResolvedWhen"); +pub const wszPROPREQUESTREVOKEDEFFECTIVEWHEN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RevokedEffectiveWhen"); +pub const wszPROPREQUESTREVOKEDREASON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RevokedReason"); +pub const wszPROPREQUESTREVOKEDWHEN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RevokedWhen"); +pub const wszPROPREQUESTSTATUSCODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StatusCode"); +pub const wszPROPREQUESTSUBMITTEDWHEN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SubmittedWhen"); +pub const wszPROPREQUESTTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestType"); +pub const wszPROPSANITIZEDCANAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SanitizedCAName"); +pub const wszPROPSANITIZEDSHORTNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SanitizedShortName"); +pub const wszPROPSEAUDITFILTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SEAuditFilter"); +pub const wszPROPSEAUDITID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SEAuditId"); +pub const wszPROPSERVERUPGRADED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("fServerUpgraded"); +pub const wszPROPSESSIONCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SessionCount"); +pub const wszPROPSIGNERAPPLICATIONPOLICIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SignerApplicationPolicies"); +pub const wszPROPSIGNERPOLICIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SignerPolicies"); +pub const wszPROPSTATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("State"); +pub const wszPROPSTREETADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StreetAddress"); +pub const wszPROPSUBJECTALTNAME2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("san"); +pub const wszPROPSUBJECTDOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Subject."); +pub const wszPROPSURNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SurName"); +pub const wszPROPTEMPLATECHANGESEQUENCENUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TemplateChangeSequenceNumber"); +pub const wszPROPTEXTTAG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{text}"); +pub const wszPROPTITLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Title"); +pub const wszPROPUNSTRUCTUREDADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UnstructuredAddress"); +pub const wszPROPUNSTRUCTUREDNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UnstructuredName"); +pub const wszPROPUPN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("upn"); +pub const wszPROPURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("url"); +pub const wszPROPUSEDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("fUseDS"); +pub const wszPROPUSERDN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UserDN"); +pub const wszPROPUTF8TAG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{utf8}"); +pub const wszPROPVALIDITYPERIODCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ValidityPeriodUnits"); +pub const wszPROPVALIDITYPERIODSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ValidityPeriod"); +pub const wszPROPVOLATILEMODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VolatileMode"); +pub const wszREGACTIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Active"); +pub const wszREGAELOGLEVEL_OLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AEEventLogLevel"); +pub const wszREGAIKCLOUDCAURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AIKCloudCAURL"); +pub const wszREGAIKKEYALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AIKKeyAlgorithm"); +pub const wszREGAIKKEYLENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AIKKeyLength"); +pub const wszREGALLPROVIDERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("All"); +pub const wszREGALTERNATEPUBLISHDOMAINS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AlternatePublishDomains"); +pub const wszREGALTERNATESIGNATUREALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AlternateSignatureAlgorithm"); +pub const wszREGAUDITFILTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AuditFilter"); +pub const wszREGB2ICERTMANAGEMODULE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ICertManageModule"); +pub const wszREGBACKUPLOGDIRECTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BackupLogDirectory"); +pub const wszREGCACERTFILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CACertFileName"); +pub const wszREGCACERTHASH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CACertHash"); +pub const wszREGCACERTPUBLICATIONURLS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CACertPublicationURLs"); +pub const wszREGCADESCRIPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CADescription"); +pub const wszREGCAPATHLENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAPathLength"); +pub const wszREGCASECURITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Security"); +pub const wszREGCASERIALNUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CACertSerialNumber"); +pub const wszREGCASERVERNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAServerName"); +pub const wszREGCATYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAType"); +pub const wszREGCAUSEDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UseDS"); +pub const wszREGCAXCHGCERTHASH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAXchgCertHash"); +pub const wszREGCAXCHGOVERLAPPERIODCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAXchgOverlapPeriodUnits"); +pub const wszREGCAXCHGOVERLAPPERIODSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAXchgOverlapPeriod"); +pub const wszREGCAXCHGVALIDITYPERIODCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAXchgValidityPeriodUnits"); +pub const wszREGCAXCHGVALIDITYPERIODSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAXchgValidityPeriod"); +pub const wszREGCERTENROLLCOMPATIBLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertEnrollCompatible"); +pub const wszREGCERTIFICATETRANSPARENCYINFOOID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CTInformationExtensionOid"); +pub const wszREGCERTPUBLISHFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PublishCertFlags"); +pub const wszREGCERTSRVDEBUG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Debug"); +pub const wszREGCHECKPOINTFILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CheckPointFile"); +pub const wszREGCLOCKSKEWMINUTES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClockSkewMinutes"); +pub const wszREGCOMMONNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CommonName"); +pub const wszREGCRLATTEMPTREPUBLISH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLAttemptRepublish"); +pub const wszREGCRLDELTANEXTPUBLISH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLDeltaNextPublish"); +pub const wszREGCRLDELTAOVERLAPPERIODCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLDeltaOverlapUnits"); +pub const wszREGCRLDELTAOVERLAPPERIODSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLDeltaOverlapPeriod"); +pub const wszREGCRLDELTAPERIODCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLDeltaPeriodUnits"); +pub const wszREGCRLDELTAPERIODSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLDeltaPeriod"); +pub const wszREGCRLEDITFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLEditFlags"); +pub const wszREGCRLFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLFlags"); +pub const wszREGCRLNEXTPUBLISH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLNextPublish"); +pub const wszREGCRLOVERLAPPERIODCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLOverlapUnits"); +pub const wszREGCRLOVERLAPPERIODSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLOverlapPeriod"); +pub const wszREGCRLPATH_OLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLPath"); +pub const wszREGCRLPERIODCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLPeriodUnits"); +pub const wszREGCRLPERIODSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLPeriod"); +pub const wszREGCRLPUBLICATIONURLS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLPublicationURLs"); +pub const wszREGDATABASERECOVERED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DatabaseRecovered"); +pub const wszREGDBDIRECTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DBDirectory"); +pub const wszREGDBFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DBFlags"); +pub const wszREGDBLASTFULLBACKUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DBLastFullBackup"); +pub const wszREGDBLASTINCREMENTALBACKUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DBLastIncrementalBackup"); +pub const wszREGDBLASTRECOVERY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DBLastRecovery"); +pub const wszREGDBLOGDIRECTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DBLogDirectory"); +pub const wszREGDBMAXREADSESSIONCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DBMaxReadSessionCount"); +pub const wszREGDBSESSIONCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DBSessionCount"); +pub const wszREGDBSYSDIRECTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DBSystemDirectory"); +pub const wszREGDBTEMPDIRECTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DBTempDirectory"); +pub const wszREGDEFAULTSMIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultSMIME"); +pub const wszREGDIRECTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConfigurationDirectory"); +pub const wszREGDISABLEEXTENSIONLIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableExtensionList"); +pub const wszREGDISABLESECEXTENSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableSecExtension"); +pub const wszREGDSCONFIGDN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DSConfigDN"); +pub const wszREGDSDOMAINDN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DSDomainDN"); +pub const wszREGEDITFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EditFlags"); +pub const wszREGEKPUBLISTDIRECTORIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EndorsementKeyListDirectories"); +pub const wszREGEKUOIDSFORPUBLISHEXPIREDCERTINCRL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EKUOIDsForPublishExpiredCertInCRL"); +pub const wszREGEKUOIDSFORVOLATILEREQUESTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EKUOIDsforVolatileRequests"); +pub const wszREGENABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Enabled"); +pub const wszREGENABLEDEKUFORDEFINEDCACERT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnabledEKUForDefinedCACert"); +pub const wszREGENABLEENROLLEEREQUESTEXTENSIONLIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableEnrolleeRequestExtensionList"); +pub const wszREGENABLEREQUESTEXTENSIONLIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableRequestExtensionList"); +pub const wszREGENFORCEX500NAMELENGTHS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnforceX500NameLengths"); +pub const wszREGENROLLFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnrollFlags"); +pub const wszREGEXITBODYARG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BodyArg"); +pub const wszREGEXITBODYFORMAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BodyFormat"); +pub const wszREGEXITCRLISSUEDKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLIssued"); +pub const wszREGEXITDENIEDKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Denied"); +pub const wszREGEXITIMPORTEDKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Imported"); +pub const wszREGEXITISSUEDKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Issued"); +pub const wszREGEXITPENDINGKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Pending"); +pub const wszREGEXITPROPNOTFOUND: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("???"); +pub const wszREGEXITREVOKEDKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Revoked"); +pub const wszREGEXITSHUTDOWNKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Shutdown"); +pub const wszREGEXITSMTPAUTHENTICATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SMTPAuthenticate"); +pub const wszREGEXITSMTPCC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Cc"); +pub const wszREGEXITSMTPEVENTFILTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EventFilter"); +pub const wszREGEXITSMTPFROM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("From"); +pub const wszREGEXITSMTPKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SMTP"); +pub const wszREGEXITSMTPSERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SMTPServer"); +pub const wszREGEXITSMTPTEMPLATES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Templates"); +pub const wszREGEXITSMTPTO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("To"); +pub const wszREGEXITSTARTUPKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Startup"); +pub const wszREGEXITTITLEARG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TitleArg"); +pub const wszREGEXITTITLEFORMAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TitleFormat"); +pub const wszREGFILEISSUERCERTURL_OLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileIssuerCertURL"); +pub const wszREGFILEREVOCATIONCRLURL_OLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileRevocationCRLURL"); +pub const wszREGFORCETELETEX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ForceTeletex"); +pub const wszREGFTPISSUERCERTURL_OLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FTPIssuerCertURL"); +pub const wszREGFTPREVOCATIONCRLURL_OLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FTPRevocationCRLURL"); +pub const wszREGHIGHLOGNUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HighLogNumber"); +pub const wszREGHIGHSERIAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HighSerial"); +pub const wszREGINTERFACEFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InterfaceFlags"); +pub const wszREGISSUERCERTURLFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IssuerCertURLFlags"); +pub const wszREGISSUERCERTURL_OLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IssuerCertURL"); +pub const wszREGKEYBASE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SYSTEM\\CurrentControlSet\\Services\\CertSvc"); +pub const wszREGKEYCERTSVCPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SYSTEM\\CurrentControlSet\\Services\\CertSvc"); +pub const wszREGKEYCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Configuration"); +pub const wszREGKEYCSP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CSP"); +pub const wszREGKEYDBPARAMETERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DBParameters"); +pub const wszREGKEYENCRYPTIONCSP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EncryptionCSP"); +pub const wszREGKEYENROLLMENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Cryptography\\AutoEnrollment"); +pub const wszREGKEYEXITMODULES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExitModules"); +pub const wszREGKEYGROUPPOLICYENROLLMENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Policies\\Microsoft\\Cryptography\\AutoEnrollment"); +pub const wszREGKEYNOSYSTEMCERTSVCPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentControlSet\\Services\\CertSvc"); +pub const wszREGKEYPOLICYMODULES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PolicyModules"); +pub const wszREGKEYREPAIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyRepair"); +pub const wszREGKEYRESTOREINPROGRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestoreInProgress"); +pub const wszREGKEYSIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeySize"); +pub const wszREGKRACERTCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KRACertCount"); +pub const wszREGKRACERTHASH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KRACertHash"); +pub const wszREGKRAFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KRAFlags"); +pub const wszREGLDAPFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LDAPFlags"); +pub const wszREGLDAPISSUERCERTURL_OLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LDAPIssuerCertURL"); +pub const wszREGLDAPREVOCATIONCRLURL_OLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LDAPRevocationCRLURL"); +pub const wszREGLDAPREVOCATIONDNTEMPLATE_OLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LDAPRevocationDNTemplate"); +pub const wszREGLDAPREVOCATIONDN_OLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LDAPRevocationDN"); +pub const wszREGLDAPSESSIONOPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LDAPSessionOptions"); +pub const wszREGLOGLEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogLevel"); +pub const wszREGLOGPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogPath"); +pub const wszREGLOWLOGNUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LowLogNumber"); +pub const wszREGMAXINCOMINGALLOCSIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxIncomingAllocSize"); +pub const wszREGMAXINCOMINGMESSAGESIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxIncomingMessageSize"); +pub const wszREGMAXPENDINGREQUESTDAYS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxPendingRequestDays"); +pub const wszREGMAXSCTLISTSIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxSCTListSize"); +pub const wszREGNAMESEPARATOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SubjectNameSeparator"); +pub const wszREGNETSCAPECERTTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NetscapeCertType"); +pub const wszREGOFFICERRIGHTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OfficerRights"); +pub const wszREGPARENTCAMACHINE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ParentCAMachine"); +pub const wszREGPARENTCANAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ParentCAName"); +pub const wszREGPOLICYFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PolicyFlags"); +pub const wszREGPRESERVESCEPDUMMYCERTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PreserveSCEPDummyCerts"); +pub const wszREGPROCESSINGFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProcessingFlags"); +pub const wszREGPROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Provider"); +pub const wszREGPROVIDERTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProviderType"); +pub const wszREGREQUESTDISPOSITION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestDisposition"); +pub const wszREGREQUESTFILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestFileName"); +pub const wszREGREQUESTID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestId"); +pub const wszREGREQUESTKEYCONTAINER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestKeyContainer"); +pub const wszREGREQUESTKEYINDEX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequestKeyIndex"); +pub const wszREGRESTOREMAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestoreMap"); +pub const wszREGRESTOREMAPCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestoreMapCount"); +pub const wszREGRESTORESTATUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestoreStatus"); +pub const wszREGREVOCATIONCRLURL_OLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RevocationCRLURL"); +pub const wszREGREVOCATIONTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RevocationType"); +pub const wszREGREVOCATIONURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RevocationURL"); +pub const wszREGROLESEPARATIONENABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RoleSeparationEnabled"); +pub const wszREGSETUPSTATUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SetupStatus"); +pub const wszREGSP4DEFAULTCONFIGURATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultConfiguration"); +pub const wszREGSP4KEYSETNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeySetName"); +pub const wszREGSP4NAMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Names"); +pub const wszREGSP4QUERIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Queries"); +pub const wszREGSP4SUBJECTNAMESEPARATOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SubjectNameSeparator"); +pub const wszREGSUBJECTALTNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SubjectAltName"); +pub const wszREGSUBJECTALTNAME2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SubjectAltName2"); +pub const wszREGSUBJECTTEMPLATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SubjectTemplate"); +pub const wszREGSYMMETRICKEYSIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SymmetricKeySize"); +pub const wszREGUNICODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Unicode"); +pub const wszREGUPNMAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UPNMap"); +pub const wszREGUSEDEFINEDCACERTINREQ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UseDefinedCACertInRequest"); +pub const wszREGVALIDITYPERIODCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ValidityPeriodUnits"); +pub const wszREGVALIDITYPERIODSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ValidityPeriod"); +pub const wszREGVERIFYFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VerifyFlags"); +pub const wszREGVERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Version"); +pub const wszREGVIEWAGEMINUTES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ViewAgeMinutes"); +pub const wszREGVIEWIDLEMINUTES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ViewIdleMinutes"); +pub const wszREGWEBCLIENTCAMACHINE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WebClientCAMachine"); +pub const wszREGWEBCLIENTCANAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WebClientCAName"); +pub const wszREGWEBCLIENTCATYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WebClientCAType"); +pub const wszSECUREDATTRIBUTES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SignedAttributes"); +pub const wszSERVICE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertSvc"); +pub const wszzDEFAULTSIGNEDATTRIBUTES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequesterName\u{0}"); +pub type ADDED_CERT_TYPE = i32; +pub type AlgorithmFlags = i32; +pub type AlgorithmOperationFlags = i32; +pub type AlgorithmType = i32; +pub type AlternativeNameType = i32; +pub type CERTADMIN_GET_ROLES_FLAGS = u32; +pub type CERTENROLL_OBJECTID = i32; +pub type CERTENROLL_PROPERTYID = i32; +pub type CERT_ALT_NAME = i32; +pub type CERT_CREATE_REQUEST_FLAGS = i32; +pub type CERT_DELETE_ROW_FLAGS = i32; +pub type CERT_EXIT_EVENT_MASK = u32; +pub type CERT_GET_CONFIG_FLAGS = i32; +pub type CERT_IMPORT_FLAGS = i32; +pub type CERT_PROPERTY_TYPE = i32; +pub type CERT_REQUEST_OUT_TYPE = i32; +pub type CERT_VIEW_COLUMN_INDEX = i32; +pub type CERT_VIEW_SEEK_OPERATOR_FLAGS = i32; +pub type CRLRevocationReason = i32; +pub type CR_DISP = u32; +pub type CSBACKUP_TYPE = u32; +pub type CVRC_COLUMN = i32; +pub type CVRC_TABLE = i32; +pub type CommitTemplateFlags = i32; +pub type DelayRetryAction = i32; +pub type ENUM_CATYPES = i32; +pub type ENUM_CERT_COLUMN_VALUE_FLAGS = i32; +pub type EncodingType = i32; +pub type EnrollmentCAProperty = i32; +pub type EnrollmentDisplayStatus = i32; +pub type EnrollmentEnrollStatus = i32; +pub type EnrollmentPolicyFlags = i32; +pub type EnrollmentPolicyServerPropertyFlags = i32; +pub type EnrollmentSelectionStatus = i32; +pub type EnrollmentTemplateProperty = i32; +pub type FULL_RESPONSE_PROPERTY_ID = i32; +pub type ImportPFXFlags = i32; +pub type InnerRequestLevel = i32; +pub type InstallResponseRestrictionFlags = i32; +pub type KeyAttestationClaimType = i32; +pub type KeyIdentifierHashAlgorithm = i32; +pub type OCSPRequestFlag = i32; +pub type OCSPSigningFlag = i32; +pub type ObjectIdGroupId = i32; +pub type ObjectIdPublicKeyFlags = i32; +pub type PENDING_REQUEST_DESIRED_PROPERTY = i32; +pub type PFXExportOptions = i32; +pub type Pkcs10AllowedSignatureTypes = i32; +pub type PolicyQualifierType = i32; +pub type PolicyServerUrlFlags = i32; +pub type PolicyServerUrlPropertyID = i32; +pub type RequestClientInfoClientId = i32; +pub type WebEnrollmentFlags = i32; +pub type WebSecurityLevel = i32; +pub type X500NameFlags = i32; +pub type X509CertificateEnrollmentContext = i32; +pub type X509CertificateTemplateEnrollmentFlag = i32; +pub type X509CertificateTemplateGeneralFlag = i32; +pub type X509CertificateTemplatePrivateKeyFlag = i32; +pub type X509CertificateTemplateSubjectNameFlag = i32; +pub type X509EnrollmentAuthFlags = i32; +pub type X509EnrollmentPolicyExportFlags = i32; +pub type X509EnrollmentPolicyLoadOption = i32; +pub type X509HardwareKeyUsageFlags = i32; +pub type X509KeyParametersExportType = i32; +pub type X509KeySpec = i32; +pub type X509KeyUsageFlags = i32; +pub type X509PrivateKeyExportFlags = i32; +pub type X509PrivateKeyProtection = i32; +pub type X509PrivateKeyUsageFlags = i32; +pub type X509PrivateKeyVerify = i32; +pub type X509ProviderType = i32; +pub type X509RequestInheritOptions = i32; +pub type X509RequestType = i32; +pub type X509SCEPDisposition = i32; +pub type X509SCEPFailInfo = i32; +pub type X509SCEPMessageType = i32; +pub type X509SCEPProcessMessageFlags = i32; +pub type XEKL_KEYSIZE = i32; +pub type XEKL_KEYSPEC = i32; +#[repr(C)] +pub struct CAINFO { + pub cbSize: u32, + pub CAType: ENUM_CATYPES, + pub cCASignatureCerts: u32, + pub cCAExchangeCerts: u32, + pub cExitModules: u32, + pub lPropIdMax: i32, + pub lRoleSeparationEnabled: i32, + pub cKRACertUsedCount: u32, + pub cKRACertCount: u32, + pub fAdvancedServer: u32, +} +impl ::core::marker::Copy for CAINFO {} +impl ::core::clone::Clone for CAINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERTTRANSBLOB { + pub cb: u32, + pub pb: *mut u8, +} +impl ::core::marker::Copy for CERTTRANSBLOB {} +impl ::core::clone::Clone for CERTTRANSBLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERTVIEWRESTRICTION { + pub ColumnIndex: u32, + pub SeekOperator: i32, + pub SortOrder: i32, + pub pbValue: *mut u8, + pub cbValue: u32, +} +impl ::core::marker::Copy for CERTVIEWRESTRICTION {} +impl ::core::clone::Clone for CERTVIEWRESTRICTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CSEDB_RSTMAPW { + pub pwszDatabaseName: ::windows_sys::core::PWSTR, + pub pwszNewDatabaseName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CSEDB_RSTMAPW {} +impl ::core::clone::Clone for CSEDB_RSTMAPW { + fn clone(&self) -> Self { + *self + } +} +pub type FNCERTSRVBACKUPCLOSE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVBACKUPEND = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVBACKUPFREE = ::core::option::Option ()>; +pub type FNCERTSRVBACKUPGETBACKUPLOGSW = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVBACKUPGETDATABASENAMESW = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVBACKUPGETDYNAMICFILELISTW = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVBACKUPOPENFILEW = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVBACKUPPREPAREW = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVBACKUPREAD = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVBACKUPTRUNCATELOGS = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FNCERTSRVISSERVERONLINEW = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVRESTOREEND = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVRESTOREGETDATABASELOCATIONSW = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVRESTOREPREPAREW = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVRESTOREREGISTERCOMPLETE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVRESTOREREGISTERW = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FNCERTSRVSERVERCONTROLW = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FNIMPORTPFXTOPROVIDER = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FNIMPORTPFXTOPROVIDERFREEDATA = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/Sip/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/Sip/mod.rs new file mode 100644 index 000000000..aa0d9c3c6 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/Sip/mod.rs @@ -0,0 +1,241 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSIPAddProvider(psnewprov : *mut SIP_ADD_NEWPROVIDER) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] fn CryptSIPCreateIndirectData(psubjectinfo : *mut SIP_SUBJECTINFO, pcbindirectdata : *mut u32, pindirectdata : *mut SIP_INDIRECT_DATA) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] fn CryptSIPGetCaps(psubjinfo : *const SIP_SUBJECTINFO, pcaps : *mut SIP_CAP_SET_V3) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] fn CryptSIPGetSealedDigest(psubjectinfo : *const SIP_SUBJECTINFO, psig : *const u8, dwsig : u32, pbdigest : *mut u8, pcbdigest : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] fn CryptSIPGetSignedDataMsg(psubjectinfo : *mut SIP_SUBJECTINFO, pdwencodingtype : *mut super:: CERT_QUERY_ENCODING_TYPE, dwindex : u32, pcbsigneddatamsg : *mut u32, pbsigneddatamsg : *mut u8) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] fn CryptSIPLoad(pgsubject : *const ::windows_sys::core::GUID, dwflags : u32, psipdispatch : *mut SIP_DISPATCH_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] fn CryptSIPPutSignedDataMsg(psubjectinfo : *mut SIP_SUBJECTINFO, dwencodingtype : super:: CERT_QUERY_ENCODING_TYPE, pdwindex : *mut u32, cbsigneddatamsg : u32, pbsigneddatamsg : *mut u8) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSIPRemoveProvider(pgprov : *mut ::windows_sys::core::GUID) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] fn CryptSIPRemoveSignedDataMsg(psubjectinfo : *mut SIP_SUBJECTINFO, dwindex : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSIPRetrieveSubjectGuid(filename : ::windows_sys::core::PCWSTR, hfilein : super::super::super::Foundation:: HANDLE, pgsubject : *mut ::windows_sys::core::GUID) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSIPRetrieveSubjectGuidForCatalogFile(filename : ::windows_sys::core::PCWSTR, hfilein : super::super::super::Foundation:: HANDLE, pgsubject : *mut ::windows_sys::core::GUID) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] fn CryptSIPVerifyIndirectData(psubjectinfo : *mut SIP_SUBJECTINFO, pindirectdata : *mut SIP_INDIRECT_DATA) -> super::super::super::Foundation:: BOOL); +pub const MSSIP_ADDINFO_BLOB: u32 = 3u32; +pub const MSSIP_ADDINFO_CATMEMBER: u32 = 2u32; +pub const MSSIP_ADDINFO_FLAT: u32 = 1u32; +pub const MSSIP_ADDINFO_NONE: u32 = 0u32; +pub const MSSIP_ADDINFO_NONMSSIP: u32 = 500u32; +pub const MSSIP_FLAGS_MULTI_HASH: u32 = 262144u32; +pub const MSSIP_FLAGS_PROHIBIT_RESIZE_ON_CREATE: u32 = 65536u32; +pub const MSSIP_FLAGS_USE_CATALOG: u32 = 131072u32; +pub const SIP_CAP_FLAG_SEALING: u32 = 1u32; +pub const SIP_CAP_SET_CUR_VER: u32 = 3u32; +pub const SIP_CAP_SET_VERSION_2: u32 = 2u32; +pub const SIP_CAP_SET_VERSION_3: u32 = 3u32; +pub const SIP_MAX_MAGIC_NUMBER: u32 = 4u32; +pub const SPC_MARKER_CHECK_CURRENTLY_SUPPORTED_FLAGS: u32 = 1u32; +pub const SPC_MARKER_CHECK_SKIP_SIP_INDIRECT_DATA_FLAG: u32 = 1u32; +pub const SPC_RELAXED_PE_MARKER_CHECK: u32 = 2048u32; +#[repr(C)] +pub struct MS_ADDINFO_BLOB { + pub cbStruct: u32, + pub cbMemObject: u32, + pub pbMemObject: *mut u8, + pub cbMemSignedMsg: u32, + pub pbMemSignedMsg: *mut u8, +} +impl ::core::marker::Copy for MS_ADDINFO_BLOB {} +impl ::core::clone::Clone for MS_ADDINFO_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MS_ADDINFO_FLAT { + pub cbStruct: u32, + pub pIndirectData: *mut SIP_INDIRECT_DATA, +} +impl ::core::marker::Copy for MS_ADDINFO_FLAT {} +impl ::core::clone::Clone for MS_ADDINFO_FLAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SIP_ADD_NEWPROVIDER { + pub cbStruct: u32, + pub pgSubject: *mut ::windows_sys::core::GUID, + pub pwszDLLFileName: ::windows_sys::core::PWSTR, + pub pwszMagicNumber: ::windows_sys::core::PWSTR, + pub pwszIsFunctionName: ::windows_sys::core::PWSTR, + pub pwszGetFuncName: ::windows_sys::core::PWSTR, + pub pwszPutFuncName: ::windows_sys::core::PWSTR, + pub pwszCreateFuncName: ::windows_sys::core::PWSTR, + pub pwszVerifyFuncName: ::windows_sys::core::PWSTR, + pub pwszRemoveFuncName: ::windows_sys::core::PWSTR, + pub pwszIsFunctionNameFmt2: ::windows_sys::core::PWSTR, + pub pwszGetCapFuncName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SIP_ADD_NEWPROVIDER {} +impl ::core::clone::Clone for SIP_ADD_NEWPROVIDER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SIP_CAP_SET_V2 { + pub cbSize: u32, + pub dwVersion: u32, + pub isMultiSign: super::super::super::Foundation::BOOL, + pub dwReserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIP_CAP_SET_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIP_CAP_SET_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SIP_CAP_SET_V3 { + pub cbSize: u32, + pub dwVersion: u32, + pub isMultiSign: super::super::super::Foundation::BOOL, + pub Anonymous: SIP_CAP_SET_V3_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIP_CAP_SET_V3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIP_CAP_SET_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union SIP_CAP_SET_V3_0 { + pub dwFlags: u32, + pub dwReserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIP_CAP_SET_V3_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIP_CAP_SET_V3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +pub struct SIP_DISPATCH_INFO { + pub cbSize: u32, + pub hSIP: super::super::super::Foundation::HANDLE, + pub pfGet: pCryptSIPGetSignedDataMsg, + pub pfPut: pCryptSIPPutSignedDataMsg, + pub pfCreate: pCryptSIPCreateIndirectData, + pub pfVerify: pCryptSIPVerifyIndirectData, + pub pfRemove: pCryptSIPRemoveSignedDataMsg, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +impl ::core::marker::Copy for SIP_DISPATCH_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +impl ::core::clone::Clone for SIP_DISPATCH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SIP_INDIRECT_DATA { + pub Data: super::CRYPT_ATTRIBUTE_TYPE_VALUE, + pub DigestAlgorithm: super::CRYPT_ALGORITHM_IDENTIFIER, + pub Digest: super::CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for SIP_INDIRECT_DATA {} +impl ::core::clone::Clone for SIP_INDIRECT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +pub struct SIP_SUBJECTINFO { + pub cbSize: u32, + pub pgSubjectType: *mut ::windows_sys::core::GUID, + pub hFile: super::super::super::Foundation::HANDLE, + pub pwsFileName: ::windows_sys::core::PCWSTR, + pub pwsDisplayName: ::windows_sys::core::PCWSTR, + pub dwReserved1: u32, + pub dwIntVersion: u32, + pub hProv: usize, + pub DigestAlgorithm: super::CRYPT_ALGORITHM_IDENTIFIER, + pub dwFlags: u32, + pub dwEncodingType: u32, + pub dwReserved2: u32, + pub fdwCAPISettings: u32, + pub fdwSecuritySettings: u32, + pub dwIndex: u32, + pub dwUnionChoice: u32, + pub Anonymous: SIP_SUBJECTINFO_0, + pub pClientData: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +impl ::core::marker::Copy for SIP_SUBJECTINFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +impl ::core::clone::Clone for SIP_SUBJECTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +pub union SIP_SUBJECTINFO_0 { + pub psFlat: *mut MS_ADDINFO_FLAT, + pub psCatMember: *mut super::Catalog::MS_ADDINFO_CATALOGMEMBER, + pub psBlob: *mut MS_ADDINFO_BLOB, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +impl ::core::marker::Copy for SIP_SUBJECTINFO_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +impl ::core::clone::Clone for SIP_SUBJECTINFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +pub type pCryptSIPCreateIndirectData = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +pub type pCryptSIPGetCaps = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +pub type pCryptSIPGetSealedDigest = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +pub type pCryptSIPGetSignedDataMsg = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +pub type pCryptSIPPutSignedDataMsg = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +pub type pCryptSIPRemoveSignedDataMsg = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] +pub type pCryptSIPVerifyIndirectData = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pfnIsFileSupported = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type pfnIsFileSupportedName = ::core::option::Option super::super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/UI/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/UI/mod.rs new file mode 100644 index 000000000..3071ea071 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/UI/mod.rs @@ -0,0 +1,792 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertSelectionGetSerializedBlob(pcsi : *const CERT_SELECTUI_INPUT, ppoutbuffer : *mut *mut ::core::ffi::c_void, puloutbuffersize : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUIDlgCertMgr(pcryptuicertmgr : *const CRYPTUI_CERT_MGR_STRUCT) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUIDlgSelectCertificateFromStore(hcertstore : super:: HCERTSTORE, hwnd : super::super::super::Foundation:: HWND, pwsztitle : ::windows_sys::core::PCWSTR, pwszdisplaystring : ::windows_sys::core::PCWSTR, dwdontusecolumn : u32, dwflags : u32, pvreserved : *const ::core::ffi::c_void) -> *mut super:: CERT_CONTEXT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("cryptui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`, `\"Win32_Security_WinTrust\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn CryptUIDlgViewCertificateA(pcertviewinfo : *const CRYPTUI_VIEWCERTIFICATE_STRUCTA, pfpropertieschanged : *mut super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("cryptui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`, `\"Win32_Security_WinTrust\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn CryptUIDlgViewCertificateW(pcertviewinfo : *const CRYPTUI_VIEWCERTIFICATE_STRUCTW, pfpropertieschanged : *mut super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUIDlgViewContext(dwcontexttype : u32, pvcontext : *const ::core::ffi::c_void, hwnd : super::super::super::Foundation:: HWND, pwsztitle : ::windows_sys::core::PCWSTR, dwflags : u32, pvreserved : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUIWizDigitalSign(dwflags : u32, hwndparent : super::super::super::Foundation:: HWND, pwszwizardtitle : ::windows_sys::core::PCWSTR, pdigitalsigninfo : *const CRYPTUI_WIZ_DIGITAL_SIGN_INFO, ppsigncontext : *mut *mut CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUIWizExport(dwflags : CRYPTUI_WIZ_FLAGS, hwndparent : super::super::super::Foundation:: HWND, pwszwizardtitle : ::windows_sys::core::PCWSTR, pexportinfo : *const CRYPTUI_WIZ_EXPORT_INFO, pvoid : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUIWizFreeDigitalSignContext(psigncontext : *const CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUIWizImport(dwflags : CRYPTUI_WIZ_FLAGS, hwndparent : super::super::super::Foundation:: HWND, pwszwizardtitle : ::windows_sys::core::PCWSTR, pimportsrc : *const CRYPTUI_WIZ_IMPORT_SRC_INFO, hdestcertstore : super:: HCERTSTORE) -> super::super::super::Foundation:: BOOL); +pub const ACTION_REVOCATION_DEFAULT_CACHE: u32 = 131072u32; +pub const ACTION_REVOCATION_DEFAULT_ONLINE: u32 = 65536u32; +pub const CERTVIEW_CRYPTUI_LPARAM: u32 = 8388608u32; +pub const CERT_CREDENTIAL_PROVIDER_ID: i32 = -509i32; +pub const CERT_DISPWELL_DISTRUST_ADD_CA_CERT: u32 = 8u32; +pub const CERT_DISPWELL_DISTRUST_ADD_LEAF_CERT: u32 = 9u32; +pub const CERT_DISPWELL_DISTRUST_CA_CERT: u32 = 6u32; +pub const CERT_DISPWELL_DISTRUST_LEAF_CERT: u32 = 7u32; +pub const CERT_DISPWELL_SELECT: u32 = 1u32; +pub const CERT_DISPWELL_TRUST_ADD_CA_CERT: u32 = 4u32; +pub const CERT_DISPWELL_TRUST_ADD_LEAF_CERT: u32 = 5u32; +pub const CERT_DISPWELL_TRUST_CA_CERT: u32 = 2u32; +pub const CERT_DISPWELL_TRUST_LEAF_CERT: u32 = 3u32; +pub const CERT_FILTER_INCLUDE_V1_CERTS: u32 = 1u32; +pub const CERT_FILTER_ISSUER_CERTS_ONLY: u32 = 16u32; +pub const CERT_FILTER_KEY_EXISTS: u32 = 32u32; +pub const CERT_FILTER_LEAF_CERTS_ONLY: u32 = 8u32; +pub const CERT_FILTER_OP_EQUALITY: u32 = 3u32; +pub const CERT_FILTER_OP_EXISTS: u32 = 1u32; +pub const CERT_FILTER_OP_NOT_EXISTS: u32 = 2u32; +pub const CERT_FILTER_VALID_SIGNATURE: u32 = 4u32; +pub const CERT_FILTER_VALID_TIME_RANGE: u32 = 2u32; +pub const CERT_TRUST_DO_FULL_SEARCH: u32 = 1u32; +pub const CERT_TRUST_DO_FULL_TRUST: u32 = 5u32; +pub const CERT_TRUST_MASK: u32 = 16777215u32; +pub const CERT_TRUST_PERMIT_MISSING_CRLS: u32 = 2u32; +pub const CERT_VALIDITY_AFTER_END: u32 = 2u32; +pub const CERT_VALIDITY_BEFORE_START: u32 = 1u32; +pub const CERT_VALIDITY_CERTIFICATE_REVOKED: u32 = 8u32; +pub const CERT_VALIDITY_CRL_OUT_OF_DATE: u32 = 1073741824u32; +pub const CERT_VALIDITY_EXPLICITLY_DISTRUSTED: u32 = 16777216u32; +pub const CERT_VALIDITY_EXTENDED_USAGE_FAILURE: u32 = 32u32; +pub const CERT_VALIDITY_ISSUER_DISTRUST: u32 = 33554432u32; +pub const CERT_VALIDITY_ISSUER_INVALID: u32 = 256u32; +pub const CERT_VALIDITY_KEY_USAGE_EXT_FAILURE: u32 = 16u32; +pub const CERT_VALIDITY_MASK_TRUST: u32 = 4294901760u32; +pub const CERT_VALIDITY_MASK_VALIDITY: u32 = 65535u32; +pub const CERT_VALIDITY_NAME_CONSTRAINTS_FAILURE: u32 = 64u32; +pub const CERT_VALIDITY_NO_CRL_FOUND: u32 = 536870912u32; +pub const CERT_VALIDITY_NO_ISSUER_CERT_FOUND: u32 = 268435456u32; +pub const CERT_VALIDITY_NO_TRUST_DATA: u32 = 2147483648u32; +pub const CERT_VALIDITY_OTHER_ERROR: u32 = 2048u32; +pub const CERT_VALIDITY_OTHER_EXTENSION_FAILURE: u32 = 512u32; +pub const CERT_VALIDITY_PERIOD_NESTING_FAILURE: u32 = 1024u32; +pub const CERT_VALIDITY_SIGNATURE_FAILS: u32 = 4u32; +pub const CERT_VALIDITY_UNKNOWN_CRITICAL_EXTENSION: u32 = 128u32; +pub const CM_ADD_CERT_STORES: CERT_VIEWPROPERTIES_STRUCT_FLAGS = 512u32; +pub const CM_ENABLEHOOK: CERT_VIEWPROPERTIES_STRUCT_FLAGS = 1u32; +pub const CM_ENABLETEMPLATE: CERT_VIEWPROPERTIES_STRUCT_FLAGS = 8u32; +pub const CM_HIDE_ADVANCEPAGE: CERT_VIEWPROPERTIES_STRUCT_FLAGS = 16u32; +pub const CM_HIDE_DETAILPAGE: CERT_VIEWPROPERTIES_STRUCT_FLAGS = 256u32; +pub const CM_HIDE_TRUSTPAGE: CERT_VIEWPROPERTIES_STRUCT_FLAGS = 32u32; +pub const CM_NO_EDITTRUST: CERT_VIEWPROPERTIES_STRUCT_FLAGS = 128u32; +pub const CM_NO_NAMECHANGE: CERT_VIEWPROPERTIES_STRUCT_FLAGS = 64u32; +pub const CM_SHOW_HELP: CERT_VIEWPROPERTIES_STRUCT_FLAGS = 2u32; +pub const CM_SHOW_HELPICON: CERT_VIEWPROPERTIES_STRUCT_FLAGS = 4u32; +pub const CM_VIEWFLAGS_MASK: u32 = 16777215u32; +pub const CRYPTDLG_ACTION_MASK: u32 = 4294901760u32; +pub const CRYPTDLG_CACHE_ONLY_URL_RETRIEVAL: u32 = 268435456u32; +pub const CRYPTDLG_DISABLE_AIA: u32 = 134217728u32; +pub const CRYPTDLG_POLICY_MASK: u32 = 65535u32; +pub const CRYPTDLG_REVOCATION_CACHE: u32 = 1073741824u32; +pub const CRYPTDLG_REVOCATION_DEFAULT: u32 = 0u32; +pub const CRYPTDLG_REVOCATION_NONE: u32 = 536870912u32; +pub const CRYPTDLG_REVOCATION_ONLINE: u32 = 2147483648u32; +pub const CRYPTUI_ACCEPT_DECLINE_STYLE: CRYPTUI_VIEWCERTIFICATE_FLAGS = 64u32; +pub const CRYPTUI_CACHE_ONLY_URL_RETRIEVAL: CRYPTUI_VIEWCERTIFICATE_FLAGS = 262144u32; +pub const CRYPTUI_CERT_MGR_PUBLISHER_TAB: u32 = 4u32; +pub const CRYPTUI_CERT_MGR_SINGLE_TAB_FLAG: u32 = 32768u32; +pub const CRYPTUI_CERT_MGR_TAB_MASK: u32 = 15u32; +pub const CRYPTUI_DISABLE_ADDTOSTORE: CRYPTUI_VIEWCERTIFICATE_FLAGS = 16u32; +pub const CRYPTUI_DISABLE_EDITPROPERTIES: CRYPTUI_VIEWCERTIFICATE_FLAGS = 4u32; +pub const CRYPTUI_DISABLE_EXPORT: CRYPTUI_VIEWCERTIFICATE_FLAGS = 8192u32; +pub const CRYPTUI_DISABLE_HTMLLINK: CRYPTUI_VIEWCERTIFICATE_FLAGS = 65536u32; +pub const CRYPTUI_DISABLE_ISSUERSTATEMENT: CRYPTUI_VIEWCERTIFICATE_FLAGS = 131072u32; +pub const CRYPTUI_DONT_OPEN_STORES: CRYPTUI_VIEWCERTIFICATE_FLAGS = 256u32; +pub const CRYPTUI_ENABLE_ADDTOSTORE: CRYPTUI_VIEWCERTIFICATE_FLAGS = 32u32; +pub const CRYPTUI_ENABLE_EDITPROPERTIES: CRYPTUI_VIEWCERTIFICATE_FLAGS = 8u32; +pub const CRYPTUI_ENABLE_REVOCATION_CHECKING: CRYPTUI_VIEWCERTIFICATE_FLAGS = 2048u32; +pub const CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN: CRYPTUI_VIEWCERTIFICATE_FLAGS = 32768u32; +pub const CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT: CRYPTUI_VIEWCERTIFICATE_FLAGS = 2048u32; +pub const CRYPTUI_ENABLE_REVOCATION_CHECK_END_CERT: CRYPTUI_VIEWCERTIFICATE_FLAGS = 16384u32; +pub const CRYPTUI_HIDE_DETAILPAGE: CRYPTUI_VIEWCERTIFICATE_FLAGS = 2u32; +pub const CRYPTUI_HIDE_HIERARCHYPAGE: CRYPTUI_VIEWCERTIFICATE_FLAGS = 1u32; +pub const CRYPTUI_IGNORE_UNTRUSTED_ROOT: CRYPTUI_VIEWCERTIFICATE_FLAGS = 128u32; +pub const CRYPTUI_ONLY_OPEN_ROOT_STORE: CRYPTUI_VIEWCERTIFICATE_FLAGS = 512u32; +pub const CRYPTUI_SELECT_EXPIRATION_COLUMN: u64 = 32u64; +pub const CRYPTUI_SELECT_FRIENDLYNAME_COLUMN: u64 = 8u64; +pub const CRYPTUI_SELECT_INTENDEDUSE_COLUMN: u64 = 4u64; +pub const CRYPTUI_SELECT_ISSUEDBY_COLUMN: u64 = 2u64; +pub const CRYPTUI_SELECT_ISSUEDTO_COLUMN: u64 = 1u64; +pub const CRYPTUI_SELECT_LOCATION_COLUMN: u64 = 16u64; +pub const CRYPTUI_WARN_REMOTE_TRUST: CRYPTUI_VIEWCERTIFICATE_FLAGS = 4096u32; +pub const CRYPTUI_WARN_UNTRUSTED_ROOT: CRYPTUI_VIEWCERTIFICATE_FLAGS = 1024u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_ADD_CHAIN: CRYPTUI_WIZ_DIGITAL_ADDITIONAL_CERT_CHOICE = 1u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_ADD_CHAIN_NO_ROOT: CRYPTUI_WIZ_DIGITAL_ADDITIONAL_CERT_CHOICE = 2u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_ADD_NONE: CRYPTUI_WIZ_DIGITAL_ADDITIONAL_CERT_CHOICE = 0u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_CERT: CRYPTUI_WIZ_DIGITAL_SIGN = 1u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_COMMERCIAL: CRYPTUI_WIZ_DIGITAL_SIGN_SIG_TYPE = 1u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_EXCLUDE_PAGE_HASHES: u32 = 2u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_INCLUDE_PAGE_HASHES: u32 = 4u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_INDIVIDUAL: CRYPTUI_WIZ_DIGITAL_SIGN_SIG_TYPE = 2u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_NONE: CRYPTUI_WIZ_DIGITAL_SIGN = 0u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_PVK: CRYPTUI_WIZ_DIGITAL_SIGN = 3u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE: CRYPTUI_WIZ_DIGITAL_SIGN_PVK_OPTION = 1u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_PVK_PROV: CRYPTUI_WIZ_DIGITAL_SIGN_PVK_OPTION = 2u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_STORE: CRYPTUI_WIZ_DIGITAL_SIGN = 2u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_SUBJECT_BLOB: CRYPTUI_WIZ_DIGITAL_SIGN_SUBJECT = 2u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_SUBJECT_FILE: CRYPTUI_WIZ_DIGITAL_SIGN_SUBJECT = 1u32; +pub const CRYPTUI_WIZ_DIGITAL_SIGN_SUBJECT_NONE: CRYPTUI_WIZ_DIGITAL_SIGN_SUBJECT = 0u32; +pub const CRYPTUI_WIZ_EXPORT_CERT_CONTEXT: CRYPTUI_WIZ_EXPORT_SUBJECT = 1u32; +pub const CRYPTUI_WIZ_EXPORT_CERT_STORE: CRYPTUI_WIZ_EXPORT_SUBJECT = 4u32; +pub const CRYPTUI_WIZ_EXPORT_CERT_STORE_CERTIFICATES_ONLY: CRYPTUI_WIZ_EXPORT_SUBJECT = 5u32; +pub const CRYPTUI_WIZ_EXPORT_CRL_CONTEXT: CRYPTUI_WIZ_EXPORT_SUBJECT = 3u32; +pub const CRYPTUI_WIZ_EXPORT_CTL_CONTEXT: CRYPTUI_WIZ_EXPORT_SUBJECT = 2u32; +pub const CRYPTUI_WIZ_EXPORT_FORMAT_BASE64: CRYPTUI_WIZ_EXPORT_FORMAT = 4u32; +pub const CRYPTUI_WIZ_EXPORT_FORMAT_CRL: CRYPTUI_WIZ_EXPORT_FORMAT = 6u32; +pub const CRYPTUI_WIZ_EXPORT_FORMAT_CTL: CRYPTUI_WIZ_EXPORT_FORMAT = 7u32; +pub const CRYPTUI_WIZ_EXPORT_FORMAT_DER: CRYPTUI_WIZ_EXPORT_FORMAT = 1u32; +pub const CRYPTUI_WIZ_EXPORT_FORMAT_PFX: CRYPTUI_WIZ_EXPORT_FORMAT = 2u32; +pub const CRYPTUI_WIZ_EXPORT_FORMAT_PKCS7: CRYPTUI_WIZ_EXPORT_FORMAT = 3u32; +pub const CRYPTUI_WIZ_EXPORT_FORMAT_SERIALIZED_CERT_STORE: u32 = 5u32; +pub const CRYPTUI_WIZ_EXPORT_NO_DELETE_PRIVATE_KEY: CRYPTUI_WIZ_FLAGS = 512u32; +pub const CRYPTUI_WIZ_EXPORT_PRIVATE_KEY: CRYPTUI_WIZ_FLAGS = 256u32; +pub const CRYPTUI_WIZ_IGNORE_NO_UI_FLAG_FOR_CSPS: CRYPTUI_WIZ_FLAGS = 2u32; +pub const CRYPTUI_WIZ_IMPORT_ALLOW_CERT: CRYPTUI_WIZ_FLAGS = 131072u32; +pub const CRYPTUI_WIZ_IMPORT_ALLOW_CRL: CRYPTUI_WIZ_FLAGS = 262144u32; +pub const CRYPTUI_WIZ_IMPORT_ALLOW_CTL: CRYPTUI_WIZ_FLAGS = 524288u32; +pub const CRYPTUI_WIZ_IMPORT_NO_CHANGE_DEST_STORE: CRYPTUI_WIZ_FLAGS = 65536u32; +pub const CRYPTUI_WIZ_IMPORT_REMOTE_DEST_STORE: CRYPTUI_WIZ_FLAGS = 4194304u32; +pub const CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_CONTEXT: CRYPTUI_WIZ_IMPORT_SUBJECT_OPTION = 2u32; +pub const CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_STORE: CRYPTUI_WIZ_IMPORT_SUBJECT_OPTION = 5u32; +pub const CRYPTUI_WIZ_IMPORT_SUBJECT_CRL_CONTEXT: CRYPTUI_WIZ_IMPORT_SUBJECT_OPTION = 4u32; +pub const CRYPTUI_WIZ_IMPORT_SUBJECT_CTL_CONTEXT: CRYPTUI_WIZ_IMPORT_SUBJECT_OPTION = 3u32; +pub const CRYPTUI_WIZ_IMPORT_SUBJECT_FILE: CRYPTUI_WIZ_IMPORT_SUBJECT_OPTION = 1u32; +pub const CRYPTUI_WIZ_IMPORT_TO_CURRENTUSER: CRYPTUI_WIZ_FLAGS = 2097152u32; +pub const CRYPTUI_WIZ_IMPORT_TO_LOCALMACHINE: CRYPTUI_WIZ_FLAGS = 1048576u32; +pub const CRYPTUI_WIZ_NO_UI: CRYPTUI_WIZ_FLAGS = 1u32; +pub const CRYPTUI_WIZ_NO_UI_EXCEPT_CSP: CRYPTUI_WIZ_FLAGS = 3u32; +pub const CRYTPDLG_FLAGS_MASK: u32 = 4278190080u32; +pub const CSS_ALLOWMULTISELECT: CERT_SELECT_STRUCT_FLAGS = 4u32; +pub const CSS_ENABLEHOOK: CERT_SELECT_STRUCT_FLAGS = 2u32; +pub const CSS_ENABLETEMPLATE: CERT_SELECT_STRUCT_FLAGS = 32u32; +pub const CSS_ENABLETEMPLATEHANDLE: CERT_SELECT_STRUCT_FLAGS = 64u32; +pub const CSS_HIDE_PROPERTIES: CERT_SELECT_STRUCT_FLAGS = 1u32; +pub const CSS_SELECTCERT_MASK: u32 = 16777215u32; +pub const CSS_SHOW_HELP: CERT_SELECT_STRUCT_FLAGS = 16u32; +pub const CTL_MODIFY_REQUEST_ADD_NOT_TRUSTED: CTL_MODIFY_REQUEST_OPERATION = 1u32; +pub const CTL_MODIFY_REQUEST_ADD_TRUSTED: CTL_MODIFY_REQUEST_OPERATION = 3u32; +pub const CTL_MODIFY_REQUEST_REMOVE: CTL_MODIFY_REQUEST_OPERATION = 2u32; +pub const POLICY_IGNORE_NON_CRITICAL_BC: u32 = 1u32; +pub const SELCERT_ALGORITHM: u32 = 105u32; +pub const SELCERT_CERTLIST: u32 = 102u32; +pub const SELCERT_FINEPRINT: u32 = 101u32; +pub const SELCERT_ISSUED_TO: u32 = 103u32; +pub const SELCERT_PROPERTIES: u32 = 100u32; +pub const SELCERT_SERIAL_NUM: u32 = 106u32; +pub const SELCERT_THUMBPRINT: u32 = 107u32; +pub const SELCERT_VALIDITY: u32 = 104u32; +pub const szCERT_CERTIFICATE_ACTION_VERIFY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("{7801ebd0-cf4b-11d0-851f-0060979387ea}"); +pub type CERT_SELECT_STRUCT_FLAGS = u32; +pub type CERT_VIEWPROPERTIES_STRUCT_FLAGS = u32; +pub type CRYPTUI_VIEWCERTIFICATE_FLAGS = u32; +pub type CRYPTUI_WIZ_DIGITAL_ADDITIONAL_CERT_CHOICE = u32; +pub type CRYPTUI_WIZ_DIGITAL_SIGN = u32; +pub type CRYPTUI_WIZ_DIGITAL_SIGN_PVK_OPTION = u32; +pub type CRYPTUI_WIZ_DIGITAL_SIGN_SIG_TYPE = u32; +pub type CRYPTUI_WIZ_DIGITAL_SIGN_SUBJECT = u32; +pub type CRYPTUI_WIZ_EXPORT_FORMAT = u32; +pub type CRYPTUI_WIZ_EXPORT_SUBJECT = u32; +pub type CRYPTUI_WIZ_FLAGS = u32; +pub type CRYPTUI_WIZ_IMPORT_SUBJECT_OPTION = u32; +pub type CTL_MODIFY_REQUEST_OPERATION = u32; +#[repr(C)] +pub struct CERT_FILTER_DATA { + pub dwSize: u32, + pub cExtensionChecks: u32, + pub arrayExtensionChecks: *mut CERT_FILTER_EXTENSION_MATCH, + pub dwCheckingFlags: u32, +} +impl ::core::marker::Copy for CERT_FILTER_DATA {} +impl ::core::clone::Clone for CERT_FILTER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_FILTER_EXTENSION_MATCH { + pub szExtensionOID: ::windows_sys::core::PCSTR, + pub dwTestOperation: u32, + pub pbTestData: *mut u8, + pub cbTestData: u32, +} +impl ::core::marker::Copy for CERT_FILTER_EXTENSION_MATCH {} +impl ::core::clone::Clone for CERT_FILTER_EXTENSION_MATCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_SELECTUI_INPUT { + pub hStore: super::HCERTSTORE, + pub prgpChain: *mut *mut super::CERT_CHAIN_CONTEXT, + pub cChain: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_SELECTUI_INPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_SELECTUI_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_SELECT_STRUCT_A { + pub dwSize: u32, + pub hwndParent: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub pTemplateName: ::windows_sys::core::PCSTR, + pub dwFlags: CERT_SELECT_STRUCT_FLAGS, + pub szTitle: ::windows_sys::core::PCSTR, + pub cCertStore: u32, + pub arrayCertStore: *mut super::HCERTSTORE, + pub szPurposeOid: ::windows_sys::core::PCSTR, + pub cCertContext: u32, + pub arrayCertContext: *mut *mut super::CERT_CONTEXT, + pub lCustData: super::super::super::Foundation::LPARAM, + pub pfnHook: PFNCMHOOKPROC, + pub pfnFilter: PFNCMFILTERPROC, + pub szHelpFileName: ::windows_sys::core::PCSTR, + pub dwHelpId: u32, + pub hprov: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_SELECT_STRUCT_A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_SELECT_STRUCT_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_SELECT_STRUCT_W { + pub dwSize: u32, + pub hwndParent: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub pTemplateName: ::windows_sys::core::PCWSTR, + pub dwFlags: CERT_SELECT_STRUCT_FLAGS, + pub szTitle: ::windows_sys::core::PCWSTR, + pub cCertStore: u32, + pub arrayCertStore: *mut super::HCERTSTORE, + pub szPurposeOid: ::windows_sys::core::PCSTR, + pub cCertContext: u32, + pub arrayCertContext: *mut *mut super::CERT_CONTEXT, + pub lCustData: super::super::super::Foundation::LPARAM, + pub pfnHook: PFNCMHOOKPROC, + pub pfnFilter: PFNCMFILTERPROC, + pub szHelpFileName: ::windows_sys::core::PCWSTR, + pub dwHelpId: u32, + pub hprov: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_SELECT_STRUCT_W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_SELECT_STRUCT_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_VERIFY_CERTIFICATE_TRUST { + pub cbSize: u32, + pub pccert: *const super::CERT_CONTEXT, + pub dwFlags: u32, + pub dwIgnoreErr: u32, + pub pdwErrors: *mut u32, + pub pszUsageOid: ::windows_sys::core::PSTR, + pub hprov: usize, + pub cRootStores: u32, + pub rghstoreRoots: *mut super::HCERTSTORE, + pub cStores: u32, + pub rghstoreCAs: *mut super::HCERTSTORE, + pub cTrustStores: u32, + pub rghstoreTrust: *mut super::HCERTSTORE, + pub lCustData: super::super::super::Foundation::LPARAM, + pub pfnTrustHelper: PFNTRUSTHELPER, + pub pcChain: *mut u32, + pub prgChain: *mut *mut *mut super::CERT_CONTEXT, + pub prgdwErrors: *mut *mut u32, + pub prgpbTrustInfo: *mut *mut super::CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_VERIFY_CERTIFICATE_TRUST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_VERIFY_CERTIFICATE_TRUST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct CERT_VIEWPROPERTIES_STRUCT_A { + pub dwSize: u32, + pub hwndParent: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub dwFlags: CERT_VIEWPROPERTIES_STRUCT_FLAGS, + pub szTitle: ::windows_sys::core::PCSTR, + pub pCertContext: *const super::CERT_CONTEXT, + pub arrayPurposes: *mut ::windows_sys::core::PSTR, + pub cArrayPurposes: u32, + pub cRootStores: u32, + pub rghstoreRoots: *mut super::HCERTSTORE, + pub cStores: u32, + pub rghstoreCAs: *mut super::HCERTSTORE, + pub cTrustStores: u32, + pub rghstoreTrust: *mut super::HCERTSTORE, + pub hprov: usize, + pub lCustData: super::super::super::Foundation::LPARAM, + pub dwPad: u32, + pub szHelpFileName: ::windows_sys::core::PCSTR, + pub dwHelpId: u32, + pub nStartPage: u32, + pub cArrayPropSheetPages: u32, + pub arrayPropSheetPages: *mut super::super::super::UI::Controls::PROPSHEETPAGEA, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for CERT_VIEWPROPERTIES_STRUCT_A {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for CERT_VIEWPROPERTIES_STRUCT_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct CERT_VIEWPROPERTIES_STRUCT_W { + pub dwSize: u32, + pub hwndParent: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub dwFlags: CERT_VIEWPROPERTIES_STRUCT_FLAGS, + pub szTitle: ::windows_sys::core::PCWSTR, + pub pCertContext: *const super::CERT_CONTEXT, + pub arrayPurposes: *mut ::windows_sys::core::PSTR, + pub cArrayPurposes: u32, + pub cRootStores: u32, + pub rghstoreRoots: *mut super::HCERTSTORE, + pub cStores: u32, + pub rghstoreCAs: *mut super::HCERTSTORE, + pub cTrustStores: u32, + pub rghstoreTrust: *mut super::HCERTSTORE, + pub hprov: usize, + pub lCustData: super::super::super::Foundation::LPARAM, + pub dwPad: u32, + pub szHelpFileName: ::windows_sys::core::PCWSTR, + pub dwHelpId: u32, + pub nStartPage: u32, + pub cArrayPropSheetPages: u32, + pub arrayPropSheetPages: *mut super::super::super::UI::Controls::PROPSHEETPAGEA, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for CERT_VIEWPROPERTIES_STRUCT_W {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for CERT_VIEWPROPERTIES_STRUCT_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPTUI_CERT_MGR_STRUCT { + pub dwSize: u32, + pub hwndParent: super::super::super::Foundation::HWND, + pub dwFlags: u32, + pub pwszTitle: ::windows_sys::core::PCWSTR, + pub pszInitUsageOID: ::windows_sys::core::PCSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTUI_CERT_MGR_STRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTUI_CERT_MGR_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPTUI_INITDIALOG_STRUCT { + pub lParam: super::super::super::Foundation::LPARAM, + pub pCertContext: *const super::CERT_CONTEXT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTUI_INITDIALOG_STRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTUI_INITDIALOG_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`, `\"Win32_Security_WinTrust\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct CRYPTUI_VIEWCERTIFICATE_STRUCTA { + pub dwSize: u32, + pub hwndParent: super::super::super::Foundation::HWND, + pub dwFlags: CRYPTUI_VIEWCERTIFICATE_FLAGS, + pub szTitle: ::windows_sys::core::PCSTR, + pub pCertContext: *const super::CERT_CONTEXT, + pub rgszPurposes: *const ::windows_sys::core::PCSTR, + pub cPurposes: u32, + pub Anonymous: CRYPTUI_VIEWCERTIFICATE_STRUCTA_0, + pub fpCryptProviderDataTrustedUsage: super::super::super::Foundation::BOOL, + pub idxSigner: u32, + pub idxCert: u32, + pub fCounterSigner: super::super::super::Foundation::BOOL, + pub idxCounterSigner: u32, + pub cStores: u32, + pub rghStores: *mut super::HCERTSTORE, + pub cPropSheetPages: u32, + pub rgPropSheetPages: *mut super::super::super::UI::Controls::PROPSHEETPAGEA, + pub nStartPage: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for CRYPTUI_VIEWCERTIFICATE_STRUCTA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for CRYPTUI_VIEWCERTIFICATE_STRUCTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`, `\"Win32_Security_WinTrust\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub union CRYPTUI_VIEWCERTIFICATE_STRUCTA_0 { + pub pCryptProviderData: *const super::super::WinTrust::CRYPT_PROVIDER_DATA, + pub hWVTStateData: super::super::super::Foundation::HANDLE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for CRYPTUI_VIEWCERTIFICATE_STRUCTA_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for CRYPTUI_VIEWCERTIFICATE_STRUCTA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`, `\"Win32_Security_WinTrust\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct CRYPTUI_VIEWCERTIFICATE_STRUCTW { + pub dwSize: u32, + pub hwndParent: super::super::super::Foundation::HWND, + pub dwFlags: CRYPTUI_VIEWCERTIFICATE_FLAGS, + pub szTitle: ::windows_sys::core::PCWSTR, + pub pCertContext: *const super::CERT_CONTEXT, + pub rgszPurposes: *const ::windows_sys::core::PCSTR, + pub cPurposes: u32, + pub Anonymous: CRYPTUI_VIEWCERTIFICATE_STRUCTW_0, + pub fpCryptProviderDataTrustedUsage: super::super::super::Foundation::BOOL, + pub idxSigner: u32, + pub idxCert: u32, + pub fCounterSigner: super::super::super::Foundation::BOOL, + pub idxCounterSigner: u32, + pub cStores: u32, + pub rghStores: *mut super::HCERTSTORE, + pub cPropSheetPages: u32, + pub rgPropSheetPages: *mut super::super::super::UI::Controls::PROPSHEETPAGEW, + pub nStartPage: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for CRYPTUI_VIEWCERTIFICATE_STRUCTW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for CRYPTUI_VIEWCERTIFICATE_STRUCTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`, `\"Win32_Security_WinTrust\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub union CRYPTUI_VIEWCERTIFICATE_STRUCTW_0 { + pub pCryptProviderData: *const super::super::WinTrust::CRYPT_PROVIDER_DATA, + pub hWVTStateData: super::super::super::Foundation::HANDLE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for CRYPTUI_VIEWCERTIFICATE_STRUCTW_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip", feature = "Win32_Security_WinTrust", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for CRYPTUI_VIEWCERTIFICATE_STRUCTW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO { + pub dwSize: u32, + pub pGuidSubject: *mut ::windows_sys::core::GUID, + pub cbBlob: u32, + pub pbBlob: *mut u8, + pub pwszDisplayName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO {} +impl ::core::clone::Clone for CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO { + pub dwSize: u32, + pub pwszSigningCertFileName: ::windows_sys::core::PWSTR, + pub dwPvkChoice: CRYPTUI_WIZ_DIGITAL_SIGN_PVK_OPTION, + pub Anonymous: CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO_0, +} +impl ::core::marker::Copy for CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO {} +impl ::core::clone::Clone for CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO_0 { + pub pPvkFileInfo: *mut CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO, + pub pPvkProvInfo: *mut super::CRYPT_KEY_PROV_INFO, +} +impl ::core::marker::Copy for CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO_0 {} +impl ::core::clone::Clone for CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT { + pub dwSize: u32, + pub cbBlob: u32, + pub pbBlob: *mut u8, +} +impl ::core::marker::Copy for CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT {} +impl ::core::clone::Clone for CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO { + pub dwSize: u32, + pub dwAttrFlags: CRYPTUI_WIZ_DIGITAL_SIGN_SIG_TYPE, + pub pwszDescription: ::windows_sys::core::PCWSTR, + pub pwszMoreInfoLocation: ::windows_sys::core::PCWSTR, + pub pszHashAlg: ::windows_sys::core::PCSTR, + pub pwszSigningCertDisplayString: ::windows_sys::core::PCWSTR, + pub hAdditionalCertStore: super::HCERTSTORE, + pub psAuthenticated: *mut super::CRYPT_ATTRIBUTES, + pub psUnauthenticated: *mut super::CRYPT_ATTRIBUTES, +} +impl ::core::marker::Copy for CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO {} +impl ::core::clone::Clone for CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPTUI_WIZ_DIGITAL_SIGN_INFO { + pub dwSize: u32, + pub dwSubjectChoice: CRYPTUI_WIZ_DIGITAL_SIGN_SUBJECT, + pub Anonymous1: CRYPTUI_WIZ_DIGITAL_SIGN_INFO_0, + pub dwSigningCertChoice: CRYPTUI_WIZ_DIGITAL_SIGN, + pub Anonymous2: CRYPTUI_WIZ_DIGITAL_SIGN_INFO_1, + pub pwszTimestampURL: ::windows_sys::core::PCWSTR, + pub dwAdditionalCertChoice: CRYPTUI_WIZ_DIGITAL_ADDITIONAL_CERT_CHOICE, + pub pSignExtInfo: *mut CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTUI_WIZ_DIGITAL_SIGN_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTUI_WIZ_DIGITAL_SIGN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CRYPTUI_WIZ_DIGITAL_SIGN_INFO_0 { + pub pwszFileName: ::windows_sys::core::PCWSTR, + pub pSignBlobInfo: *mut CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTUI_WIZ_DIGITAL_SIGN_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTUI_WIZ_DIGITAL_SIGN_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CRYPTUI_WIZ_DIGITAL_SIGN_INFO_1 { + pub pSigningCertContext: *const super::CERT_CONTEXT, + pub pSigningCertStore: *mut CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO, + pub pSigningCertPvkInfo: *mut CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTUI_WIZ_DIGITAL_SIGN_INFO_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTUI_WIZ_DIGITAL_SIGN_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO { + pub dwSize: u32, + pub pwszPvkFileName: ::windows_sys::core::PWSTR, + pub pwszProvName: ::windows_sys::core::PWSTR, + pub dwProvType: u32, +} +impl ::core::marker::Copy for CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO {} +impl ::core::clone::Clone for CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO { + pub dwSize: u32, + pub cCertStore: u32, + pub rghCertStore: *mut super::HCERTSTORE, + pub pFilterCallback: PFNCFILTERPROC, + pub pvCallbackData: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO { + pub dwSize: u32, + pub dwExportFormat: CRYPTUI_WIZ_EXPORT_FORMAT, + pub fExportChain: super::super::super::Foundation::BOOL, + pub fExportPrivateKeys: super::super::super::Foundation::BOOL, + pub pwszPassword: ::windows_sys::core::PCWSTR, + pub fStrongEncryption: super::super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPTUI_WIZ_EXPORT_INFO { + pub dwSize: u32, + pub pwszExportFileName: ::windows_sys::core::PCWSTR, + pub dwSubjectChoice: CRYPTUI_WIZ_EXPORT_SUBJECT, + pub Anonymous: CRYPTUI_WIZ_EXPORT_INFO_0, + pub cStores: u32, + pub rghStores: *mut super::HCERTSTORE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTUI_WIZ_EXPORT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTUI_WIZ_EXPORT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CRYPTUI_WIZ_EXPORT_INFO_0 { + pub pCertContext: *const super::CERT_CONTEXT, + pub pCTLContext: *mut super::CTL_CONTEXT, + pub pCRLContext: *mut super::CRL_CONTEXT, + pub hCertStore: super::HCERTSTORE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTUI_WIZ_EXPORT_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTUI_WIZ_EXPORT_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPTUI_WIZ_IMPORT_SRC_INFO { + pub dwSize: u32, + pub dwSubjectChoice: CRYPTUI_WIZ_IMPORT_SUBJECT_OPTION, + pub Anonymous: CRYPTUI_WIZ_IMPORT_SRC_INFO_0, + pub dwFlags: super::CRYPT_KEY_FLAGS, + pub pwszPassword: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTUI_WIZ_IMPORT_SRC_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTUI_WIZ_IMPORT_SRC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CRYPTUI_WIZ_IMPORT_SRC_INFO_0 { + pub pwszFileName: ::windows_sys::core::PCWSTR, + pub pCertContext: *const super::CERT_CONTEXT, + pub pCTLContext: *mut super::CTL_CONTEXT, + pub pCRLContext: *mut super::CRL_CONTEXT, + pub hCertStore: super::HCERTSTORE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTUI_WIZ_IMPORT_SRC_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTUI_WIZ_IMPORT_SRC_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CTL_MODIFY_REQUEST { + pub pccert: *const super::CERT_CONTEXT, + pub dwOperation: CTL_MODIFY_REQUEST_OPERATION, + pub dwError: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CTL_MODIFY_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CTL_MODIFY_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNCFILTERPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNCMFILTERPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNCMHOOKPROC = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNTRUSTHELPER = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/mod.rs new file mode 100644 index 000000000..53eaf4d69 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Cryptography/mod.rs @@ -0,0 +1,10500 @@ +#[cfg(feature = "Win32_Security_Cryptography_Catalog")] +#[doc = "Required features: `\"Win32_Security_Cryptography_Catalog\"`"] +pub mod Catalog; +#[cfg(feature = "Win32_Security_Cryptography_Certificates")] +#[doc = "Required features: `\"Win32_Security_Cryptography_Certificates\"`"] +pub mod Certificates; +#[cfg(feature = "Win32_Security_Cryptography_Sip")] +#[doc = "Required features: `\"Win32_Security_Cryptography_Sip\"`"] +pub mod Sip; +#[cfg(feature = "Win32_Security_Cryptography_UI")] +#[doc = "Required features: `\"Win32_Security_Cryptography_UI\"`"] +pub mod UI; +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptAddContextFunction(dwtable : BCRYPT_TABLE, pszcontext : ::windows_sys::core::PCWSTR, dwinterface : BCRYPT_INTERFACE, pszfunction : ::windows_sys::core::PCWSTR, dwposition : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptCloseAlgorithmProvider(halgorithm : BCRYPT_ALG_HANDLE, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptConfigureContext(dwtable : BCRYPT_TABLE, pszcontext : ::windows_sys::core::PCWSTR, pconfig : *const CRYPT_CONTEXT_CONFIG) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptConfigureContextFunction(dwtable : BCRYPT_TABLE, pszcontext : ::windows_sys::core::PCWSTR, dwinterface : BCRYPT_INTERFACE, pszfunction : ::windows_sys::core::PCWSTR, pconfig : *const CRYPT_CONTEXT_FUNCTION_CONFIG) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptCreateContext(dwtable : BCRYPT_TABLE, pszcontext : ::windows_sys::core::PCWSTR, pconfig : *const CRYPT_CONTEXT_CONFIG) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptCreateHash(halgorithm : BCRYPT_ALG_HANDLE, phhash : *mut BCRYPT_HASH_HANDLE, pbhashobject : *mut u8, cbhashobject : u32, pbsecret : *const u8, cbsecret : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptCreateMultiHash(halgorithm : BCRYPT_ALG_HANDLE, phhash : *mut BCRYPT_HASH_HANDLE, nhashes : u32, pbhashobject : *mut u8, cbhashobject : u32, pbsecret : *const u8, cbsecret : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptDecrypt(hkey : BCRYPT_KEY_HANDLE, pbinput : *const u8, cbinput : u32, ppaddinginfo : *const ::core::ffi::c_void, pbiv : *mut u8, cbiv : u32, pboutput : *mut u8, cboutput : u32, pcbresult : *mut u32, dwflags : BCRYPT_FLAGS) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptDeleteContext(dwtable : BCRYPT_TABLE, pszcontext : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptDeriveKey(hsharedsecret : BCRYPT_SECRET_HANDLE, pwszkdf : ::windows_sys::core::PCWSTR, pparameterlist : *const BCryptBufferDesc, pbderivedkey : *mut u8, cbderivedkey : u32, pcbresult : *mut u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptDeriveKeyCapi(hhash : BCRYPT_HASH_HANDLE, htargetalg : BCRYPT_ALG_HANDLE, pbderivedkey : *mut u8, cbderivedkey : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptDeriveKeyPBKDF2(hprf : BCRYPT_ALG_HANDLE, pbpassword : *const u8, cbpassword : u32, pbsalt : *const u8, cbsalt : u32, citerations : u64, pbderivedkey : *mut u8, cbderivedkey : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptDestroyHash(hhash : BCRYPT_HASH_HANDLE) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptDestroyKey(hkey : BCRYPT_KEY_HANDLE) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptDestroySecret(hsecret : BCRYPT_SECRET_HANDLE) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptDuplicateHash(hhash : BCRYPT_HASH_HANDLE, phnewhash : *mut BCRYPT_HASH_HANDLE, pbhashobject : *mut u8, cbhashobject : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptDuplicateKey(hkey : BCRYPT_KEY_HANDLE, phnewkey : *mut BCRYPT_KEY_HANDLE, pbkeyobject : *mut u8, cbkeyobject : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptEncrypt(hkey : BCRYPT_KEY_HANDLE, pbinput : *const u8, cbinput : u32, ppaddinginfo : *const ::core::ffi::c_void, pbiv : *mut u8, cbiv : u32, pboutput : *mut u8, cboutput : u32, pcbresult : *mut u32, dwflags : BCRYPT_FLAGS) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptEnumAlgorithms(dwalgoperations : BCRYPT_OPERATION, palgcount : *mut u32, ppalglist : *mut *mut BCRYPT_ALGORITHM_IDENTIFIER, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptEnumContextFunctionProviders(dwtable : BCRYPT_TABLE, pszcontext : ::windows_sys::core::PCWSTR, dwinterface : BCRYPT_INTERFACE, pszfunction : ::windows_sys::core::PCWSTR, pcbbuffer : *mut u32, ppbuffer : *mut *mut CRYPT_CONTEXT_FUNCTION_PROVIDERS) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptEnumContextFunctions(dwtable : BCRYPT_TABLE, pszcontext : ::windows_sys::core::PCWSTR, dwinterface : BCRYPT_INTERFACE, pcbbuffer : *mut u32, ppbuffer : *mut *mut CRYPT_CONTEXT_FUNCTIONS) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptEnumContexts(dwtable : BCRYPT_TABLE, pcbbuffer : *mut u32, ppbuffer : *mut *mut CRYPT_CONTEXTS) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptEnumProviders(pszalgid : ::windows_sys::core::PCWSTR, pimplcount : *mut u32, ppimpllist : *mut *mut BCRYPT_PROVIDER_NAME, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptEnumRegisteredProviders(pcbbuffer : *mut u32, ppbuffer : *mut *mut CRYPT_PROVIDERS) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptExportKey(hkey : BCRYPT_KEY_HANDLE, hexportkey : BCRYPT_KEY_HANDLE, pszblobtype : ::windows_sys::core::PCWSTR, pboutput : *mut u8, cboutput : u32, pcbresult : *mut u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptFinalizeKeyPair(hkey : BCRYPT_KEY_HANDLE, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptFinishHash(hhash : BCRYPT_HASH_HANDLE, pboutput : *mut u8, cboutput : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +::windows_targets::link!("bcrypt.dll" "system" fn BCryptFreeBuffer(pvbuffer : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptGenRandom(halgorithm : BCRYPT_ALG_HANDLE, pbbuffer : *mut u8, cbbuffer : u32, dwflags : BCRYPTGENRANDOM_FLAGS) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptGenerateKeyPair(halgorithm : BCRYPT_ALG_HANDLE, phkey : *mut BCRYPT_KEY_HANDLE, dwlength : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptGenerateSymmetricKey(halgorithm : BCRYPT_ALG_HANDLE, phkey : *mut BCRYPT_KEY_HANDLE, pbkeyobject : *mut u8, cbkeyobject : u32, pbsecret : *const u8, cbsecret : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptGetFipsAlgorithmMode(pfenabled : *mut u8) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptGetProperty(hobject : BCRYPT_HANDLE, pszproperty : ::windows_sys::core::PCWSTR, pboutput : *mut u8, cboutput : u32, pcbresult : *mut u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptHash(halgorithm : BCRYPT_ALG_HANDLE, pbsecret : *const u8, cbsecret : u32, pbinput : *const u8, cbinput : u32, pboutput : *mut u8, cboutput : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptHashData(hhash : BCRYPT_HASH_HANDLE, pbinput : *const u8, cbinput : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptImportKey(halgorithm : BCRYPT_ALG_HANDLE, himportkey : BCRYPT_KEY_HANDLE, pszblobtype : ::windows_sys::core::PCWSTR, phkey : *mut BCRYPT_KEY_HANDLE, pbkeyobject : *mut u8, cbkeyobject : u32, pbinput : *const u8, cbinput : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptImportKeyPair(halgorithm : BCRYPT_ALG_HANDLE, himportkey : BCRYPT_KEY_HANDLE, pszblobtype : ::windows_sys::core::PCWSTR, phkey : *mut BCRYPT_KEY_HANDLE, pbinput : *const u8, cbinput : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptKeyDerivation(hkey : BCRYPT_KEY_HANDLE, pparameterlist : *const BCryptBufferDesc, pbderivedkey : *mut u8, cbderivedkey : u32, pcbresult : *mut u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptOpenAlgorithmProvider(phalgorithm : *mut BCRYPT_ALG_HANDLE, pszalgid : ::windows_sys::core::PCWSTR, pszimplementation : ::windows_sys::core::PCWSTR, dwflags : BCRYPT_OPEN_ALGORITHM_PROVIDER_FLAGS) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptProcessMultiOperations(hobject : BCRYPT_HANDLE, operationtype : BCRYPT_MULTI_OPERATION_TYPE, poperations : *const ::core::ffi::c_void, cboperations : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptQueryContextConfiguration(dwtable : BCRYPT_TABLE, pszcontext : ::windows_sys::core::PCWSTR, pcbbuffer : *mut u32, ppbuffer : *mut *mut CRYPT_CONTEXT_CONFIG) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptQueryContextFunctionConfiguration(dwtable : BCRYPT_TABLE, pszcontext : ::windows_sys::core::PCWSTR, dwinterface : BCRYPT_INTERFACE, pszfunction : ::windows_sys::core::PCWSTR, pcbbuffer : *mut u32, ppbuffer : *mut *mut CRYPT_CONTEXT_FUNCTION_CONFIG) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptQueryContextFunctionProperty(dwtable : BCRYPT_TABLE, pszcontext : ::windows_sys::core::PCWSTR, dwinterface : BCRYPT_INTERFACE, pszfunction : ::windows_sys::core::PCWSTR, pszproperty : ::windows_sys::core::PCWSTR, pcbvalue : *mut u32, ppbvalue : *mut *mut u8) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptQueryProviderRegistration(pszprovider : ::windows_sys::core::PCWSTR, dwmode : BCRYPT_QUERY_PROVIDER_MODE, dwinterface : BCRYPT_INTERFACE, pcbbuffer : *mut u32, ppbuffer : *mut *mut CRYPT_PROVIDER_REG) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptRegisterConfigChangeNotify(phevent : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptRemoveContextFunction(dwtable : BCRYPT_TABLE, pszcontext : ::windows_sys::core::PCWSTR, dwinterface : BCRYPT_INTERFACE, pszfunction : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptResolveProviders(pszcontext : ::windows_sys::core::PCWSTR, dwinterface : u32, pszfunction : ::windows_sys::core::PCWSTR, pszprovider : ::windows_sys::core::PCWSTR, dwmode : BCRYPT_QUERY_PROVIDER_MODE, dwflags : BCRYPT_RESOLVE_PROVIDERS_FLAGS, pcbbuffer : *mut u32, ppbuffer : *mut *mut CRYPT_PROVIDER_REFS) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptSecretAgreement(hprivkey : BCRYPT_KEY_HANDLE, hpubkey : BCRYPT_KEY_HANDLE, phagreedsecret : *mut BCRYPT_SECRET_HANDLE, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptSetContextFunctionProperty(dwtable : BCRYPT_TABLE, pszcontext : ::windows_sys::core::PCWSTR, dwinterface : BCRYPT_INTERFACE, pszfunction : ::windows_sys::core::PCWSTR, pszproperty : ::windows_sys::core::PCWSTR, cbvalue : u32, pbvalue : *const u8) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptSetProperty(hobject : BCRYPT_HANDLE, pszproperty : ::windows_sys::core::PCWSTR, pbinput : *const u8, cbinput : u32, dwflags : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptSignHash(hkey : BCRYPT_KEY_HANDLE, ppaddinginfo : *const ::core::ffi::c_void, pbinput : *const u8, cbinput : u32, pboutput : *mut u8, cboutput : u32, pcbresult : *mut u32, dwflags : BCRYPT_FLAGS) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptUnregisterConfigChangeNotify(hevent : super::super::Foundation:: HANDLE) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BCryptVerifySignature(hkey : BCRYPT_KEY_HANDLE, ppaddinginfo : *const ::core::ffi::c_void, pbhash : *const u8, cbhash : u32, pbsignature : *const u8, cbsignature : u32, dwflags : BCRYPT_FLAGS) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddCRLContextToStore(hcertstore : HCERTSTORE, pcrlcontext : *const CRL_CONTEXT, dwadddisposition : u32, ppstorecontext : *mut *mut CRL_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddCRLLinkToStore(hcertstore : HCERTSTORE, pcrlcontext : *const CRL_CONTEXT, dwadddisposition : u32, ppstorecontext : *mut *mut CRL_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddCTLContextToStore(hcertstore : HCERTSTORE, pctlcontext : *const CTL_CONTEXT, dwadddisposition : u32, ppstorecontext : *mut *mut CTL_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddCTLLinkToStore(hcertstore : HCERTSTORE, pctlcontext : *const CTL_CONTEXT, dwadddisposition : u32, ppstorecontext : *mut *mut CTL_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddCertificateContextToStore(hcertstore : HCERTSTORE, pcertcontext : *const CERT_CONTEXT, dwadddisposition : u32, ppstorecontext : *mut *mut CERT_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddCertificateLinkToStore(hcertstore : HCERTSTORE, pcertcontext : *const CERT_CONTEXT, dwadddisposition : u32, ppstorecontext : *mut *mut CERT_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddEncodedCRLToStore(hcertstore : HCERTSTORE, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pbcrlencoded : *const u8, cbcrlencoded : u32, dwadddisposition : u32, ppcrlcontext : *mut *mut CRL_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddEncodedCTLToStore(hcertstore : HCERTSTORE, dwmsgandcertencodingtype : CERT_QUERY_ENCODING_TYPE, pbctlencoded : *const u8, cbctlencoded : u32, dwadddisposition : u32, ppctlcontext : *mut *mut CTL_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddEncodedCertificateToStore(hcertstore : HCERTSTORE, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pbcertencoded : *const u8, cbcertencoded : u32, dwadddisposition : u32, ppcertcontext : *mut *mut CERT_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddEncodedCertificateToSystemStoreA(szcertstorename : ::windows_sys::core::PCSTR, pbcertencoded : *const u8, cbcertencoded : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddEncodedCertificateToSystemStoreW(szcertstorename : ::windows_sys::core::PCWSTR, pbcertencoded : *const u8, cbcertencoded : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddEnhancedKeyUsageIdentifier(pcertcontext : *const CERT_CONTEXT, pszusageidentifier : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("crypt32.dll" "system" fn CertAddRefServerOcspResponse(hserverocspresponse : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("crypt32.dll" "system" fn CertAddRefServerOcspResponseContext(pserverocspresponsecontext : *const CERT_SERVER_OCSP_RESPONSE_CONTEXT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddSerializedElementToStore(hcertstore : HCERTSTORE, pbelement : *const u8, cbelement : u32, dwadddisposition : u32, dwflags : u32, dwcontexttypeflags : u32, pdwcontexttype : *mut u32, ppvcontext : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertAddStoreToCollection(hcollectionstore : HCERTSTORE, hsiblingstore : HCERTSTORE, dwupdateflags : u32, dwpriority : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("crypt32.dll" "system" fn CertAlgIdToOID(dwalgid : u32) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("crypt32.dll" "system" fn CertCloseServerOcspResponse(hserverocspresponse : *const ::core::ffi::c_void, dwflags : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertCloseStore(hcertstore : HCERTSTORE, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertCompareCertificate(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pcertid1 : *const CERT_INFO, pcertid2 : *const CERT_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertCompareCertificateName(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pcertname1 : *const CRYPT_INTEGER_BLOB, pcertname2 : *const CRYPT_INTEGER_BLOB) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertCompareIntegerBlob(pint1 : *const CRYPT_INTEGER_BLOB, pint2 : *const CRYPT_INTEGER_BLOB) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertComparePublicKeyInfo(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, ppublickey1 : *const CERT_PUBLIC_KEY_INFO, ppublickey2 : *const CERT_PUBLIC_KEY_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertControlStore(hcertstore : HCERTSTORE, dwflags : CERT_CONTROL_STORE_FLAGS, dwctrltype : u32, pvctrlpara : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertCreateCRLContext(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pbcrlencoded : *const u8, cbcrlencoded : u32) -> *mut CRL_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertCreateCTLContext(dwmsgandcertencodingtype : u32, pbctlencoded : *const u8, cbctlencoded : u32) -> *mut CTL_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertCreateCTLEntryFromCertificateContextProperties(pcertcontext : *const CERT_CONTEXT, coptattr : u32, rgoptattr : *const CRYPT_ATTRIBUTE, dwflags : u32, pvreserved : *const ::core::ffi::c_void, pctlentry : *mut CTL_ENTRY, pcbctlentry : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertCreateCertificateChainEngine(pconfig : *const CERT_CHAIN_ENGINE_CONFIG, phchainengine : *mut HCERTCHAINENGINE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertCreateCertificateContext(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pbcertencoded : *const u8, cbcertencoded : u32) -> *mut CERT_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertCreateContext(dwcontexttype : u32, dwencodingtype : u32, pbencoded : *const u8, cbencoded : u32, dwflags : u32, pcreatepara : *const CERT_CREATE_CONTEXT_PARA) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertCreateSelfSignCertificate(hcryptprovorncryptkey : HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, psubjectissuerblob : *const CRYPT_INTEGER_BLOB, dwflags : CERT_CREATE_SELFSIGN_FLAGS, pkeyprovinfo : *const CRYPT_KEY_PROV_INFO, psignaturealgorithm : *const CRYPT_ALGORITHM_IDENTIFIER, pstarttime : *const super::super::Foundation:: SYSTEMTIME, pendtime : *const super::super::Foundation:: SYSTEMTIME, pextensions : *const CERT_EXTENSIONS) -> *mut CERT_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertDeleteCRLFromStore(pcrlcontext : *const CRL_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertDeleteCTLFromStore(pctlcontext : *const CTL_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertDeleteCertificateFromStore(pcertcontext : *const CERT_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertDuplicateCRLContext(pcrlcontext : *const CRL_CONTEXT) -> *mut CRL_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertDuplicateCTLContext(pctlcontext : *const CTL_CONTEXT) -> *mut CTL_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertDuplicateCertificateChain(pchaincontext : *const CERT_CHAIN_CONTEXT) -> *mut CERT_CHAIN_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertDuplicateCertificateContext(pcertcontext : *const CERT_CONTEXT) -> *mut CERT_CONTEXT); +::windows_targets::link!("crypt32.dll" "system" fn CertDuplicateStore(hcertstore : HCERTSTORE) -> HCERTSTORE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertEnumCRLContextProperties(pcrlcontext : *const CRL_CONTEXT, dwpropid : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertEnumCRLsInStore(hcertstore : HCERTSTORE, pprevcrlcontext : *const CRL_CONTEXT) -> *mut CRL_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertEnumCTLContextProperties(pctlcontext : *const CTL_CONTEXT, dwpropid : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertEnumCTLsInStore(hcertstore : HCERTSTORE, pprevctlcontext : *const CTL_CONTEXT) -> *mut CTL_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertEnumCertificateContextProperties(pcertcontext : *const CERT_CONTEXT, dwpropid : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertEnumCertificatesInStore(hcertstore : HCERTSTORE, pprevcertcontext : *const CERT_CONTEXT) -> *mut CERT_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertEnumPhysicalStore(pvsystemstore : *const ::core::ffi::c_void, dwflags : u32, pvarg : *mut ::core::ffi::c_void, pfnenum : PFN_CERT_ENUM_PHYSICAL_STORE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertEnumSubjectInSortedCTL(pctlcontext : *const CTL_CONTEXT, ppvnextsubject : *mut *mut ::core::ffi::c_void, psubjectidentifier : *mut CRYPT_INTEGER_BLOB, pencodedattributes : *mut CRYPT_INTEGER_BLOB) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertEnumSystemStore(dwflags : u32, pvsystemstorelocationpara : *const ::core::ffi::c_void, pvarg : *mut ::core::ffi::c_void, pfnenum : PFN_CERT_ENUM_SYSTEM_STORE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertEnumSystemStoreLocation(dwflags : u32, pvarg : *mut ::core::ffi::c_void, pfnenum : PFN_CERT_ENUM_SYSTEM_STORE_LOCATION) -> super::super::Foundation:: BOOL); +::windows_targets::link!("crypt32.dll" "system" fn CertFindAttribute(pszobjid : ::windows_sys::core::PCSTR, cattr : u32, rgattr : *const CRYPT_ATTRIBUTE) -> *mut CRYPT_ATTRIBUTE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertFindCRLInStore(hcertstore : HCERTSTORE, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, dwfindflags : u32, dwfindtype : u32, pvfindpara : *const ::core::ffi::c_void, pprevcrlcontext : *const CRL_CONTEXT) -> *mut CRL_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertFindCTLInStore(hcertstore : HCERTSTORE, dwmsgandcertencodingtype : u32, dwfindflags : u32, dwfindtype : CERT_FIND_TYPE, pvfindpara : *const ::core::ffi::c_void, pprevctlcontext : *const CTL_CONTEXT) -> *mut CTL_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertFindCertificateInCRL(pcert : *const CERT_CONTEXT, pcrlcontext : *const CRL_CONTEXT, dwflags : u32, pvreserved : *const ::core::ffi::c_void, ppcrlentry : *mut *mut CRL_ENTRY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertFindCertificateInStore(hcertstore : HCERTSTORE, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, dwfindflags : u32, dwfindtype : CERT_FIND_FLAGS, pvfindpara : *const ::core::ffi::c_void, pprevcertcontext : *const CERT_CONTEXT) -> *mut CERT_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertFindChainInStore(hcertstore : HCERTSTORE, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, dwfindflags : CERT_FIND_CHAIN_IN_STORE_FLAGS, dwfindtype : u32, pvfindpara : *const ::core::ffi::c_void, pprevchaincontext : *const CERT_CHAIN_CONTEXT) -> *mut CERT_CHAIN_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertFindExtension(pszobjid : ::windows_sys::core::PCSTR, cextensions : u32, rgextensions : *const CERT_EXTENSION) -> *mut CERT_EXTENSION); +::windows_targets::link!("crypt32.dll" "system" fn CertFindRDNAttr(pszobjid : ::windows_sys::core::PCSTR, pname : *const CERT_NAME_INFO) -> *mut CERT_RDN_ATTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertFindSubjectInCTL(dwencodingtype : u32, dwsubjecttype : u32, pvsubject : *const ::core::ffi::c_void, pctlcontext : *const CTL_CONTEXT, dwflags : u32) -> *mut CTL_ENTRY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertFindSubjectInSortedCTL(psubjectidentifier : *const CRYPT_INTEGER_BLOB, pctlcontext : *const CTL_CONTEXT, dwflags : u32, pvreserved : *const ::core::ffi::c_void, pencodedattributes : *mut CRYPT_INTEGER_BLOB) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertFreeCRLContext(pcrlcontext : *const CRL_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertFreeCTLContext(pctlcontext : *const CTL_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertFreeCertificateChain(pchaincontext : *const CERT_CHAIN_CONTEXT) -> ()); +::windows_targets::link!("crypt32.dll" "system" fn CertFreeCertificateChainEngine(hchainengine : HCERTCHAINENGINE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertFreeCertificateChainList(prgpselection : *const *const CERT_CHAIN_CONTEXT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertFreeCertificateContext(pcertcontext : *const CERT_CONTEXT) -> super::super::Foundation:: BOOL); +::windows_targets::link!("crypt32.dll" "system" fn CertFreeServerOcspResponseContext(pserverocspresponsecontext : *const CERT_SERVER_OCSP_RESPONSE_CONTEXT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertGetCRLContextProperty(pcrlcontext : *const CRL_CONTEXT, dwpropid : u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertGetCRLFromStore(hcertstore : HCERTSTORE, pissuercontext : *const CERT_CONTEXT, pprevcrlcontext : *const CRL_CONTEXT, pdwflags : *mut u32) -> *mut CRL_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertGetCTLContextProperty(pctlcontext : *const CTL_CONTEXT, dwpropid : u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertGetCertificateChain(hchainengine : HCERTCHAINENGINE, pcertcontext : *const CERT_CONTEXT, ptime : *const super::super::Foundation:: FILETIME, hadditionalstore : HCERTSTORE, pchainpara : *const CERT_CHAIN_PARA, dwflags : u32, pvreserved : *const ::core::ffi::c_void, ppchaincontext : *mut *mut CERT_CHAIN_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertGetCertificateContextProperty(pcertcontext : *const CERT_CONTEXT, dwpropid : u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertGetEnhancedKeyUsage(pcertcontext : *const CERT_CONTEXT, dwflags : u32, pusage : *mut CTL_USAGE, pcbusage : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertGetIntendedKeyUsage(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pcertinfo : *const CERT_INFO, pbkeyusage : *mut u8, cbkeyusage : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertGetIssuerCertificateFromStore(hcertstore : HCERTSTORE, psubjectcontext : *const CERT_CONTEXT, pprevissuercontext : *const CERT_CONTEXT, pdwflags : *mut u32) -> *mut CERT_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertGetNameStringA(pcertcontext : *const CERT_CONTEXT, dwtype : u32, dwflags : u32, pvtypepara : *const ::core::ffi::c_void, psznamestring : ::windows_sys::core::PSTR, cchnamestring : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertGetNameStringW(pcertcontext : *const CERT_CONTEXT, dwtype : u32, dwflags : u32, pvtypepara : *const ::core::ffi::c_void, psznamestring : ::windows_sys::core::PWSTR, cchnamestring : u32) -> u32); +::windows_targets::link!("crypt32.dll" "system" fn CertGetPublicKeyLength(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, ppublickey : *const CERT_PUBLIC_KEY_INFO) -> u32); +::windows_targets::link!("crypt32.dll" "system" fn CertGetServerOcspResponseContext(hserverocspresponse : *const ::core::ffi::c_void, dwflags : u32, pvreserved : *const ::core::ffi::c_void) -> *mut CERT_SERVER_OCSP_RESPONSE_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertGetStoreProperty(hcertstore : HCERTSTORE, dwpropid : u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertGetSubjectCertificateFromStore(hcertstore : HCERTSTORE, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pcertid : *const CERT_INFO) -> *mut CERT_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertGetValidUsages(ccerts : u32, rghcerts : *const *const CERT_CONTEXT, cnumoids : *mut i32, rghoids : *mut ::windows_sys::core::PSTR, pcboids : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertIsRDNAttrsInCertificateName(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, dwflags : u32, pcertname : *const CRYPT_INTEGER_BLOB, prdn : *const CERT_RDN) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertIsStrongHashToSign(pstrongsignpara : *const CERT_STRONG_SIGN_PARA, pwszcnghashalgid : ::windows_sys::core::PCWSTR, psigningcert : *const CERT_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertIsValidCRLForCertificate(pcert : *const CERT_CONTEXT, pcrl : *const CRL_CONTEXT, dwflags : u32, pvreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertIsWeakHash(dwhashusetype : u32, pwszcnghashalgid : ::windows_sys::core::PCWSTR, dwchainflags : u32, psignerchaincontext : *const CERT_CHAIN_CONTEXT, ptimestamp : *const super::super::Foundation:: FILETIME, pwszfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("crypt32.dll" "system" fn CertNameToStrA(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pname : *const CRYPT_INTEGER_BLOB, dwstrtype : CERT_STRING_TYPE, psz : ::windows_sys::core::PSTR, csz : u32) -> u32); +::windows_targets::link!("crypt32.dll" "system" fn CertNameToStrW(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pname : *const CRYPT_INTEGER_BLOB, dwstrtype : CERT_STRING_TYPE, psz : ::windows_sys::core::PWSTR, csz : u32) -> u32); +::windows_targets::link!("crypt32.dll" "system" fn CertOIDToAlgId(pszobjid : ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertOpenServerOcspResponse(pchaincontext : *const CERT_CHAIN_CONTEXT, dwflags : u32, popenpara : *const CERT_SERVER_OCSP_RESPONSE_OPEN_PARA) -> *mut ::core::ffi::c_void); +::windows_targets::link!("crypt32.dll" "system" fn CertOpenStore(lpszstoreprovider : ::windows_sys::core::PCSTR, dwencodingtype : CERT_QUERY_ENCODING_TYPE, hcryptprov : HCRYPTPROV_LEGACY, dwflags : CERT_OPEN_STORE_FLAGS, pvpara : *const ::core::ffi::c_void) -> HCERTSTORE); +::windows_targets::link!("crypt32.dll" "system" fn CertOpenSystemStoreA(hprov : HCRYPTPROV_LEGACY, szsubsystemprotocol : ::windows_sys::core::PCSTR) -> HCERTSTORE); +::windows_targets::link!("crypt32.dll" "system" fn CertOpenSystemStoreW(hprov : HCRYPTPROV_LEGACY, szsubsystemprotocol : ::windows_sys::core::PCWSTR) -> HCERTSTORE); +::windows_targets::link!("crypt32.dll" "system" fn CertRDNValueToStrA(dwvaluetype : u32, pvalue : *const CRYPT_INTEGER_BLOB, psz : ::windows_sys::core::PSTR, csz : u32) -> u32); +::windows_targets::link!("crypt32.dll" "system" fn CertRDNValueToStrW(dwvaluetype : u32, pvalue : *const CRYPT_INTEGER_BLOB, psz : ::windows_sys::core::PWSTR, csz : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertRegisterPhysicalStore(pvsystemstore : *const ::core::ffi::c_void, dwflags : u32, pwszstorename : ::windows_sys::core::PCWSTR, pstoreinfo : *const CERT_PHYSICAL_STORE_INFO, pvreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertRegisterSystemStore(pvsystemstore : *const ::core::ffi::c_void, dwflags : u32, pstoreinfo : *const CERT_SYSTEM_STORE_INFO, pvreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertRemoveEnhancedKeyUsageIdentifier(pcertcontext : *const CERT_CONTEXT, pszusageidentifier : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("crypt32.dll" "system" fn CertRemoveStoreFromCollection(hcollectionstore : HCERTSTORE, hsiblingstore : HCERTSTORE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertResyncCertificateChainEngine(hchainengine : HCERTCHAINENGINE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertRetrieveLogoOrBiometricInfo(pcertcontext : *const CERT_CONTEXT, lpszlogoorbiometrictype : ::windows_sys::core::PCSTR, dwretrievalflags : u32, dwtimeout : u32, dwflags : u32, pvreserved : *const ::core::ffi::c_void, ppbdata : *mut *mut u8, pcbdata : *mut u32, ppwszmimetype : *mut ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertSaveStore(hcertstore : HCERTSTORE, dwencodingtype : CERT_QUERY_ENCODING_TYPE, dwsaveas : CERT_STORE_SAVE_AS, dwsaveto : CERT_STORE_SAVE_TO, pvsavetopara : *mut ::core::ffi::c_void, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertSelectCertificateChains(pselectioncontext : *const ::windows_sys::core::GUID, dwflags : u32, pchainparameters : *const CERT_SELECT_CHAIN_PARA, ccriteria : u32, rgpcriteria : *const CERT_SELECT_CRITERIA, hstore : HCERTSTORE, pcselection : *mut u32, pprgpselection : *mut *mut *mut CERT_CHAIN_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertSerializeCRLStoreElement(pcrlcontext : *const CRL_CONTEXT, dwflags : u32, pbelement : *mut u8, pcbelement : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertSerializeCTLStoreElement(pctlcontext : *const CTL_CONTEXT, dwflags : u32, pbelement : *mut u8, pcbelement : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertSerializeCertificateStoreElement(pcertcontext : *const CERT_CONTEXT, dwflags : u32, pbelement : *mut u8, pcbelement : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertSetCRLContextProperty(pcrlcontext : *const CRL_CONTEXT, dwpropid : u32, dwflags : u32, pvdata : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertSetCTLContextProperty(pctlcontext : *const CTL_CONTEXT, dwpropid : u32, dwflags : u32, pvdata : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertSetCertificateContextPropertiesFromCTLEntry(pcertcontext : *const CERT_CONTEXT, pctlentry : *const CTL_ENTRY, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertSetCertificateContextProperty(pcertcontext : *const CERT_CONTEXT, dwpropid : u32, dwflags : u32, pvdata : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertSetEnhancedKeyUsage(pcertcontext : *const CERT_CONTEXT, pusage : *const CTL_USAGE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertSetStoreProperty(hcertstore : HCERTSTORE, dwpropid : u32, dwflags : u32, pvdata : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertStrToNameA(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pszx500 : ::windows_sys::core::PCSTR, dwstrtype : CERT_STRING_TYPE, pvreserved : *const ::core::ffi::c_void, pbencoded : *mut u8, pcbencoded : *mut u32, ppszerror : *mut ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertStrToNameW(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pszx500 : ::windows_sys::core::PCWSTR, dwstrtype : CERT_STRING_TYPE, pvreserved : *const ::core::ffi::c_void, pbencoded : *mut u8, pcbencoded : *mut u32, ppszerror : *mut ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertUnregisterPhysicalStore(pvsystemstore : *const ::core::ffi::c_void, dwflags : u32, pwszstorename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertUnregisterSystemStore(pvsystemstore : *const ::core::ffi::c_void, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertVerifyCRLRevocation(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pcertid : *const CERT_INFO, ccrlinfo : u32, rgpcrlinfo : *const *const CRL_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertVerifyCRLTimeValidity(ptimetoverify : *const super::super::Foundation:: FILETIME, pcrlinfo : *const CRL_INFO) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertVerifyCTLUsage(dwencodingtype : u32, dwsubjecttype : u32, pvsubject : *const ::core::ffi::c_void, psubjectusage : *const CTL_USAGE, dwflags : u32, pverifyusagepara : *const CTL_VERIFY_USAGE_PARA, pverifyusagestatus : *mut CTL_VERIFY_USAGE_STATUS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertVerifyCertificateChainPolicy(pszpolicyoid : ::windows_sys::core::PCSTR, pchaincontext : *const CERT_CHAIN_CONTEXT, ppolicypara : *const CERT_CHAIN_POLICY_PARA, ppolicystatus : *mut CERT_CHAIN_POLICY_STATUS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertVerifyRevocation(dwencodingtype : u32, dwrevtype : u32, ccontext : u32, rgpvcontext : *const *const ::core::ffi::c_void, dwflags : u32, prevpara : *const CERT_REVOCATION_PARA, prevstatus : *mut CERT_REVOCATION_STATUS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertVerifySubjectCertificateContext(psubject : *const CERT_CONTEXT, pissuer : *const CERT_CONTEXT, pdwflags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertVerifyTimeValidity(ptimetoverify : *const super::super::Foundation:: FILETIME, pcertinfo : *const CERT_INFO) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CertVerifyValidityNesting(psubjectinfo : *const CERT_INFO, pissuerinfo : *const CERT_INFO) -> super::super::Foundation:: BOOL); +::windows_targets::link!("infocardapi.dll" "system" fn CloseCryptoHandle(hcrypto : *const INFORMATIONCARD_CRYPTO_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptAcquireCertificatePrivateKey(pcert : *const CERT_CONTEXT, dwflags : CRYPT_ACQUIRE_FLAGS, pvparameters : *const ::core::ffi::c_void, phcryptprovorncryptkey : *mut HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, pdwkeyspec : *mut CERT_KEY_SPEC, pfcallerfreeprovorncryptkey : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptAcquireContextA(phprov : *mut usize, szcontainer : ::windows_sys::core::PCSTR, szprovider : ::windows_sys::core::PCSTR, dwprovtype : u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptAcquireContextW(phprov : *mut usize, szcontainer : ::windows_sys::core::PCWSTR, szprovider : ::windows_sys::core::PCWSTR, dwprovtype : u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptBinaryToStringA(pbbinary : *const u8, cbbinary : u32, dwflags : CRYPT_STRING, pszstring : ::windows_sys::core::PSTR, pcchstring : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptBinaryToStringW(pbbinary : *const u8, cbbinary : u32, dwflags : CRYPT_STRING, pszstring : ::windows_sys::core::PWSTR, pcchstring : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCloseAsyncHandle(hasync : HCRYPTASYNC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptContextAddRef(hprov : usize, pdwreserved : *const u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCreateAsyncHandle(dwflags : u32, phasync : *mut HCRYPTASYNC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCreateHash(hprov : usize, algid : ALG_ID, hkey : usize, dwflags : u32, phhash : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptCreateKeyIdentifierFromCSP(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pszpubkeyoid : ::windows_sys::core::PCSTR, ppubkeystruc : *const PUBLICKEYSTRUC, cbpubkeystruc : u32, dwflags : u32, pvreserved : *const ::core::ffi::c_void, pbhash : *mut u8, pcbhash : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptDecodeMessage(dwmsgtypeflags : u32, pdecryptpara : *const CRYPT_DECRYPT_MESSAGE_PARA, pverifypara : *const CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex : u32, pbencodedblob : *const u8, cbencodedblob : u32, dwprevinnercontenttype : u32, pdwmsgtype : *mut u32, pdwinnercontenttype : *mut u32, pbdecoded : *mut u8, pcbdecoded : *mut u32, ppxchgcert : *mut *mut CERT_CONTEXT, ppsignercert : *mut *mut CERT_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptDecodeObject(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, lpszstructtype : ::windows_sys::core::PCSTR, pbencoded : *const u8, cbencoded : u32, dwflags : u32, pvstructinfo : *mut ::core::ffi::c_void, pcbstructinfo : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptDecodeObjectEx(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, lpszstructtype : ::windows_sys::core::PCSTR, pbencoded : *const u8, cbencoded : u32, dwflags : u32, pdecodepara : *const CRYPT_DECODE_PARA, pvstructinfo : *mut ::core::ffi::c_void, pcbstructinfo : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptDecrypt(hkey : usize, hhash : usize, r#final : super::super::Foundation:: BOOL, dwflags : u32, pbdata : *mut u8, pdwdatalen : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptDecryptAndVerifyMessageSignature(pdecryptpara : *const CRYPT_DECRYPT_MESSAGE_PARA, pverifypara : *const CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex : u32, pbencryptedblob : *const u8, cbencryptedblob : u32, pbdecrypted : *mut u8, pcbdecrypted : *mut u32, ppxchgcert : *mut *mut CERT_CONTEXT, ppsignercert : *mut *mut CERT_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptDecryptMessage(pdecryptpara : *const CRYPT_DECRYPT_MESSAGE_PARA, pbencryptedblob : *const u8, cbencryptedblob : u32, pbdecrypted : *mut u8, pcbdecrypted : *mut u32, ppxchgcert : *mut *mut CERT_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptDeriveKey(hprov : usize, algid : ALG_ID, hbasedata : usize, dwflags : u32, phkey : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptDestroyHash(hhash : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptDestroyKey(hkey : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptDuplicateHash(hhash : usize, pdwreserved : *const u32, dwflags : u32, phhash : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptDuplicateKey(hkey : usize, pdwreserved : *const u32, dwflags : u32, phkey : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptEncodeObject(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, lpszstructtype : ::windows_sys::core::PCSTR, pvstructinfo : *const ::core::ffi::c_void, pbencoded : *mut u8, pcbencoded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptEncodeObjectEx(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, lpszstructtype : ::windows_sys::core::PCSTR, pvstructinfo : *const ::core::ffi::c_void, dwflags : CRYPT_ENCODE_OBJECT_FLAGS, pencodepara : *const CRYPT_ENCODE_PARA, pvencoded : *mut ::core::ffi::c_void, pcbencoded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptEncrypt(hkey : usize, hhash : usize, r#final : super::super::Foundation:: BOOL, dwflags : u32, pbdata : *mut u8, pdwdatalen : *mut u32, dwbuflen : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptEncryptMessage(pencryptpara : *const CRYPT_ENCRYPT_MESSAGE_PARA, crecipientcert : u32, rgprecipientcert : *const *const CERT_CONTEXT, pbtobeencrypted : *const u8, cbtobeencrypted : u32, pbencryptedblob : *mut u8, pcbencryptedblob : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptEnumKeyIdentifierProperties(pkeyidentifier : *const CRYPT_INTEGER_BLOB, dwpropid : u32, dwflags : u32, pwszcomputername : ::windows_sys::core::PCWSTR, pvreserved : *const ::core::ffi::c_void, pvarg : *mut ::core::ffi::c_void, pfnenum : PFN_CRYPT_ENUM_KEYID_PROP) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptEnumOIDFunction(dwencodingtype : u32, pszfuncname : ::windows_sys::core::PCSTR, pszoid : ::windows_sys::core::PCSTR, dwflags : u32, pvarg : *mut ::core::ffi::c_void, pfnenumoidfunc : PFN_CRYPT_ENUM_OID_FUNC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptEnumOIDInfo(dwgroupid : u32, dwflags : u32, pvarg : *mut ::core::ffi::c_void, pfnenumoidinfo : PFN_CRYPT_ENUM_OID_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptEnumProviderTypesA(dwindex : u32, pdwreserved : *const u32, dwflags : u32, pdwprovtype : *mut u32, sztypename : ::windows_sys::core::PSTR, pcbtypename : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptEnumProviderTypesW(dwindex : u32, pdwreserved : *const u32, dwflags : u32, pdwprovtype : *mut u32, sztypename : ::windows_sys::core::PWSTR, pcbtypename : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptEnumProvidersA(dwindex : u32, pdwreserved : *const u32, dwflags : u32, pdwprovtype : *mut u32, szprovname : ::windows_sys::core::PSTR, pcbprovname : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptEnumProvidersW(dwindex : u32, pdwreserved : *const u32, dwflags : u32, pdwprovtype : *mut u32, szprovname : ::windows_sys::core::PWSTR, pcbprovname : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptExportKey(hkey : usize, hexpkey : usize, dwblobtype : u32, dwflags : CRYPT_KEY_FLAGS, pbdata : *mut u8, pdwdatalen : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptExportPKCS8(hcryptprov : usize, dwkeyspec : u32, pszprivatekeyobjid : ::windows_sys::core::PCSTR, dwflags : u32, pvauxinfo : *const ::core::ffi::c_void, pbprivatekeyblob : *mut u8, pcbprivatekeyblob : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptExportPublicKeyInfo(hcryptprovorncryptkey : HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwkeyspec : u32, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pinfo : *mut CERT_PUBLIC_KEY_INFO, pcbinfo : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptExportPublicKeyInfoEx(hcryptprovorncryptkey : HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwkeyspec : u32, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pszpublickeyobjid : ::windows_sys::core::PCSTR, dwflags : u32, pvauxinfo : *const ::core::ffi::c_void, pinfo : *mut CERT_PUBLIC_KEY_INFO, pcbinfo : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptExportPublicKeyInfoFromBCryptKeyHandle(hbcryptkey : BCRYPT_KEY_HANDLE, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pszpublickeyobjid : ::windows_sys::core::PCSTR, dwflags : u32, pvauxinfo : *const ::core::ffi::c_void, pinfo : *mut CERT_PUBLIC_KEY_INFO, pcbinfo : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptFindCertificateKeyProvInfo(pcert : *const CERT_CONTEXT, dwflags : CRYPT_FIND_FLAGS, pvreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("crypt32.dll" "system" fn CryptFindLocalizedName(pwszcryptname : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PCWSTR); +::windows_targets::link!("crypt32.dll" "system" fn CryptFindOIDInfo(dwkeytype : u32, pvkey : *const ::core::ffi::c_void, dwgroupid : u32) -> *mut CRYPT_OID_INFO); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptFormatObject(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, dwformattype : u32, dwformatstrtype : u32, pformatstruct : *const ::core::ffi::c_void, lpszstructtype : ::windows_sys::core::PCSTR, pbencoded : *const u8, cbencoded : u32, pbformat : *mut ::core::ffi::c_void, pcbformat : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptFreeOIDFunctionAddress(hfuncaddr : *const ::core::ffi::c_void, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGenKey(hprov : usize, algid : ALG_ID, dwflags : CRYPT_KEY_FLAGS, phkey : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGenRandom(hprov : usize, dwlen : u32, pbbuffer : *mut u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGetAsyncParam(hasync : HCRYPTASYNC, pszparamoid : ::windows_sys::core::PCSTR, ppvparam : *mut *mut ::core::ffi::c_void, ppfnfree : *mut PFN_CRYPT_ASYNC_PARAM_FREE_FUNC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGetDefaultOIDDllList(hfuncset : *const ::core::ffi::c_void, dwencodingtype : u32, pwszdlllist : ::windows_sys::core::PWSTR, pcchdlllist : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGetDefaultOIDFunctionAddress(hfuncset : *const ::core::ffi::c_void, dwencodingtype : u32, pwszdll : ::windows_sys::core::PCWSTR, dwflags : u32, ppvfuncaddr : *mut *mut ::core::ffi::c_void, phfuncaddr : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGetDefaultProviderA(dwprovtype : u32, pdwreserved : *const u32, dwflags : u32, pszprovname : ::windows_sys::core::PSTR, pcbprovname : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGetDefaultProviderW(dwprovtype : u32, pdwreserved : *const u32, dwflags : u32, pszprovname : ::windows_sys::core::PWSTR, pcbprovname : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGetHashParam(hhash : usize, dwparam : u32, pbdata : *mut u8, pdwdatalen : *mut u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGetKeyIdentifierProperty(pkeyidentifier : *const CRYPT_INTEGER_BLOB, dwpropid : u32, dwflags : u32, pwszcomputername : ::windows_sys::core::PCWSTR, pvreserved : *const ::core::ffi::c_void, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGetKeyParam(hkey : usize, dwparam : CRYPT_KEY_PARAM_ID, pbdata : *mut u8, pdwdatalen : *mut u32, dwflags : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("crypt32.dll" "system" fn CryptGetMessageCertificates(dwmsgandcertencodingtype : u32, hcryptprov : HCRYPTPROV_LEGACY, dwflags : u32, pbsignedblob : *const u8, cbsignedblob : u32) -> HCERTSTORE); +::windows_targets::link!("crypt32.dll" "system" fn CryptGetMessageSignerCount(dwmsgencodingtype : u32, pbsignedblob : *const u8, cbsignedblob : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGetOIDFunctionAddress(hfuncset : *const ::core::ffi::c_void, dwencodingtype : u32, pszoid : ::windows_sys::core::PCSTR, dwflags : u32, ppvfuncaddr : *mut *mut ::core::ffi::c_void, phfuncaddr : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGetOIDFunctionValue(dwencodingtype : u32, pszfuncname : ::windows_sys::core::PCSTR, pszoid : ::windows_sys::core::PCSTR, pwszvaluename : ::windows_sys::core::PCWSTR, pdwvaluetype : *mut u32, pbvaluedata : *mut u8, pcbvaluedata : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptnet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGetObjectUrl(pszurloid : ::windows_sys::core::PCSTR, pvpara : *const ::core::ffi::c_void, dwflags : CRYPT_GET_URL_FLAGS, purlarray : *mut CRYPT_URL_ARRAY, pcburlarray : *mut u32, purlinfo : *mut CRYPT_URL_INFO, pcburlinfo : *mut u32, pvreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGetProvParam(hprov : usize, dwparam : u32, pbdata : *mut u8, pdwdatalen : *mut u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptGetUserKey(hprov : usize, dwkeyspec : u32, phuserkey : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptHashCertificate(hcryptprov : HCRYPTPROV_LEGACY, algid : ALG_ID, dwflags : u32, pbencoded : *const u8, cbencoded : u32, pbcomputedhash : *mut u8, pcbcomputedhash : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptHashCertificate2(pwszcnghashalgid : ::windows_sys::core::PCWSTR, dwflags : u32, pvreserved : *const ::core::ffi::c_void, pbencoded : *const u8, cbencoded : u32, pbcomputedhash : *mut u8, pcbcomputedhash : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptHashData(hhash : usize, pbdata : *const u8, dwdatalen : u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptHashMessage(phashpara : *const CRYPT_HASH_MESSAGE_PARA, fdetachedhash : super::super::Foundation:: BOOL, ctobehashed : u32, rgpbtobehashed : *const *const u8, rgcbtobehashed : *const u32, pbhashedblob : *mut u8, pcbhashedblob : *mut u32, pbcomputedhash : *mut u8, pcbcomputedhash : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptHashPublicKeyInfo(hcryptprov : HCRYPTPROV_LEGACY, algid : ALG_ID, dwflags : u32, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pinfo : *const CERT_PUBLIC_KEY_INFO, pbcomputedhash : *mut u8, pcbcomputedhash : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptHashSessionKey(hhash : usize, hkey : usize, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptHashToBeSigned(hcryptprov : HCRYPTPROV_LEGACY, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pbencoded : *const u8, cbencoded : u32, pbcomputedhash : *mut u8, pcbcomputedhash : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptImportKey(hprov : usize, pbdata : *const u8, dwdatalen : u32, hpubkey : usize, dwflags : CRYPT_KEY_FLAGS, phkey : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptImportPKCS8(sprivatekeyandparams : CRYPT_PKCS8_IMPORT_PARAMS, dwflags : CRYPT_KEY_FLAGS, phcryptprov : *mut usize, pvauxinfo : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptImportPublicKeyInfo(hcryptprov : usize, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pinfo : *const CERT_PUBLIC_KEY_INFO, phkey : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptImportPublicKeyInfoEx(hcryptprov : usize, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pinfo : *const CERT_PUBLIC_KEY_INFO, aikeyalg : ALG_ID, dwflags : u32, pvauxinfo : *const ::core::ffi::c_void, phkey : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptImportPublicKeyInfoEx2(dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pinfo : *const CERT_PUBLIC_KEY_INFO, dwflags : CRYPT_IMPORT_PUBLIC_KEY_FLAGS, pvauxinfo : *const ::core::ffi::c_void, phkey : *mut BCRYPT_KEY_HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("crypt32.dll" "system" fn CryptInitOIDFunctionSet(pszfuncname : ::windows_sys::core::PCSTR, dwflags : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptnet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptInstallCancelRetrieval(pfncancel : PFN_CRYPT_CANCEL_RETRIEVAL, pvarg : *const ::core::ffi::c_void, dwflags : u32, pvreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptInstallDefaultContext(hcryptprov : usize, dwdefaulttype : CRYPT_DEFAULT_CONTEXT_TYPE, pvdefaultpara : *const ::core::ffi::c_void, dwflags : CRYPT_DEFAULT_CONTEXT_FLAGS, pvreserved : *const ::core::ffi::c_void, phdefaultcontext : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptInstallOIDFunctionAddress(hmodule : super::super::Foundation:: HMODULE, dwencodingtype : u32, pszfuncname : ::windows_sys::core::PCSTR, cfuncentry : u32, rgfuncentry : *const CRYPT_OID_FUNC_ENTRY, dwflags : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("crypt32.dll" "system" fn CryptMemAlloc(cbsize : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("crypt32.dll" "system" fn CryptMemFree(pv : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("crypt32.dll" "system" fn CryptMemRealloc(pv : *const ::core::ffi::c_void, cbsize : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("crypt32.dll" "system" fn CryptMsgCalculateEncodedLength(dwmsgencodingtype : u32, dwflags : u32, dwmsgtype : u32, pvmsgencodeinfo : *const ::core::ffi::c_void, pszinnercontentobjid : ::windows_sys::core::PCSTR, cbdata : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptMsgClose(hcryptmsg : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptMsgControl(hcryptmsg : *const ::core::ffi::c_void, dwflags : u32, dwctrltype : u32, pvctrlpara : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptMsgCountersign(hcryptmsg : *const ::core::ffi::c_void, dwindex : u32, ccountersigners : u32, rgcountersigners : *const CMSG_SIGNER_ENCODE_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptMsgCountersignEncoded(dwencodingtype : u32, pbsignerinfo : *const u8, cbsignerinfo : u32, ccountersigners : u32, rgcountersigners : *const CMSG_SIGNER_ENCODE_INFO, pbcountersignature : *mut u8, pcbcountersignature : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("crypt32.dll" "system" fn CryptMsgDuplicate(hcryptmsg : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptMsgEncodeAndSignCTL(dwmsgencodingtype : u32, pctlinfo : *const CTL_INFO, psigninfo : *const CMSG_SIGNED_ENCODE_INFO, dwflags : u32, pbencoded : *mut u8, pcbencoded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptMsgGetAndVerifySigner(hcryptmsg : *const ::core::ffi::c_void, csignerstore : u32, rghsignerstore : *const HCERTSTORE, dwflags : u32, ppsigner : *mut *mut CERT_CONTEXT, pdwsignerindex : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptMsgGetParam(hcryptmsg : *const ::core::ffi::c_void, dwparamtype : u32, dwindex : u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptMsgOpenToDecode(dwmsgencodingtype : u32, dwflags : u32, dwmsgtype : u32, hcryptprov : HCRYPTPROV_LEGACY, precipientinfo : *const CERT_INFO, pstreaminfo : *const CMSG_STREAM_INFO) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptMsgOpenToEncode(dwmsgencodingtype : u32, dwflags : u32, dwmsgtype : CRYPT_MSG_TYPE, pvmsgencodeinfo : *const ::core::ffi::c_void, pszinnercontentobjid : ::windows_sys::core::PCSTR, pstreaminfo : *const CMSG_STREAM_INFO) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptMsgSignCTL(dwmsgencodingtype : u32, pbctlcontent : *const u8, cbctlcontent : u32, psigninfo : *const CMSG_SIGNED_ENCODE_INFO, dwflags : u32, pbencoded : *mut u8, pcbencoded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptMsgUpdate(hcryptmsg : *const ::core::ffi::c_void, pbdata : *const u8, cbdata : u32, ffinal : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptMsgVerifyCountersignatureEncoded(hcryptprov : HCRYPTPROV_LEGACY, dwencodingtype : u32, pbsignerinfo : *const u8, cbsignerinfo : u32, pbsignerinfocountersignature : *const u8, cbsignerinfocountersignature : u32, pcicountersigner : *const CERT_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptMsgVerifyCountersignatureEncodedEx(hcryptprov : HCRYPTPROV_LEGACY, dwencodingtype : u32, pbsignerinfo : *const u8, cbsignerinfo : u32, pbsignerinfocountersignature : *const u8, cbsignerinfocountersignature : u32, dwsignertype : u32, pvsigner : *const ::core::ffi::c_void, dwflags : u32, pvextra : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptProtectData(pdatain : *const CRYPT_INTEGER_BLOB, szdatadescr : ::windows_sys::core::PCWSTR, poptionalentropy : *const CRYPT_INTEGER_BLOB, pvreserved : *const ::core::ffi::c_void, ppromptstruct : *const CRYPTPROTECT_PROMPTSTRUCT, dwflags : u32, pdataout : *mut CRYPT_INTEGER_BLOB) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptProtectMemory(pdatain : *mut ::core::ffi::c_void, cbdatain : u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptQueryObject(dwobjecttype : CERT_QUERY_OBJECT_TYPE, pvobject : *const ::core::ffi::c_void, dwexpectedcontenttypeflags : CERT_QUERY_CONTENT_TYPE_FLAGS, dwexpectedformattypeflags : CERT_QUERY_FORMAT_TYPE_FLAGS, dwflags : u32, pdwmsgandcertencodingtype : *mut CERT_QUERY_ENCODING_TYPE, pdwcontenttype : *mut CERT_QUERY_CONTENT_TYPE, pdwformattype : *mut CERT_QUERY_FORMAT_TYPE, phcertstore : *mut HCERTSTORE, phmsg : *mut *mut ::core::ffi::c_void, ppvcontext : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptRegisterDefaultOIDFunction(dwencodingtype : u32, pszfuncname : ::windows_sys::core::PCSTR, dwindex : u32, pwszdll : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptRegisterOIDFunction(dwencodingtype : u32, pszfuncname : ::windows_sys::core::PCSTR, pszoid : ::windows_sys::core::PCSTR, pwszdll : ::windows_sys::core::PCWSTR, pszoverridefuncname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptRegisterOIDInfo(pinfo : *const CRYPT_OID_INFO, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptReleaseContext(hprov : usize, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptnet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptRetrieveObjectByUrlA(pszurl : ::windows_sys::core::PCSTR, pszobjectoid : ::windows_sys::core::PCSTR, dwretrievalflags : u32, dwtimeout : u32, ppvobject : *mut *mut ::core::ffi::c_void, hasyncretrieve : HCRYPTASYNC, pcredentials : *const CRYPT_CREDENTIALS, pvverify : *const ::core::ffi::c_void, pauxinfo : *mut CRYPT_RETRIEVE_AUX_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptnet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptRetrieveObjectByUrlW(pszurl : ::windows_sys::core::PCWSTR, pszobjectoid : ::windows_sys::core::PCSTR, dwretrievalflags : u32, dwtimeout : u32, ppvobject : *mut *mut ::core::ffi::c_void, hasyncretrieve : HCRYPTASYNC, pcredentials : *const CRYPT_CREDENTIALS, pvverify : *const ::core::ffi::c_void, pauxinfo : *mut CRYPT_RETRIEVE_AUX_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptRetrieveTimeStamp(wszurl : ::windows_sys::core::PCWSTR, dwretrievalflags : u32, dwtimeout : u32, pszhashid : ::windows_sys::core::PCSTR, ppara : *const CRYPT_TIMESTAMP_PARA, pbdata : *const u8, cbdata : u32, pptscontext : *mut *mut CRYPT_TIMESTAMP_CONTEXT, pptssigner : *mut *mut CERT_CONTEXT, phstore : *mut HCERTSTORE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSetAsyncParam(hasync : HCRYPTASYNC, pszparamoid : ::windows_sys::core::PCSTR, pvparam : *const ::core::ffi::c_void, pfnfree : PFN_CRYPT_ASYNC_PARAM_FREE_FUNC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSetHashParam(hhash : usize, dwparam : CRYPT_SET_HASH_PARAM, pbdata : *const u8, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSetKeyIdentifierProperty(pkeyidentifier : *const CRYPT_INTEGER_BLOB, dwpropid : u32, dwflags : u32, pwszcomputername : ::windows_sys::core::PCWSTR, pvreserved : *const ::core::ffi::c_void, pvdata : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSetKeyParam(hkey : usize, dwparam : CRYPT_KEY_PARAM_ID, pbdata : *const u8, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn CryptSetOIDFunctionValue(dwencodingtype : u32, pszfuncname : ::windows_sys::core::PCSTR, pszoid : ::windows_sys::core::PCSTR, pwszvaluename : ::windows_sys::core::PCWSTR, dwvaluetype : super::super::System::Registry:: REG_VALUE_TYPE, pbvaluedata : *const u8, cbvaluedata : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSetProvParam(hprov : usize, dwparam : CRYPT_SET_PROV_PARAM_ID, pbdata : *const u8, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSetProviderA(pszprovname : ::windows_sys::core::PCSTR, dwprovtype : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSetProviderExA(pszprovname : ::windows_sys::core::PCSTR, dwprovtype : u32, pdwreserved : *const u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSetProviderExW(pszprovname : ::windows_sys::core::PCWSTR, dwprovtype : u32, pdwreserved : *const u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSetProviderW(pszprovname : ::windows_sys::core::PCWSTR, dwprovtype : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSignAndEncodeCertificate(hcryptprovorncryptkey : HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwkeyspec : CERT_KEY_SPEC, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, lpszstructtype : ::windows_sys::core::PCSTR, pvstructinfo : *const ::core::ffi::c_void, psignaturealgorithm : *const CRYPT_ALGORITHM_IDENTIFIER, pvhashauxinfo : *const ::core::ffi::c_void, pbencoded : *mut u8, pcbencoded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSignAndEncryptMessage(psignpara : *const CRYPT_SIGN_MESSAGE_PARA, pencryptpara : *const CRYPT_ENCRYPT_MESSAGE_PARA, crecipientcert : u32, rgprecipientcert : *const *const CERT_CONTEXT, pbtobesignedandencrypted : *const u8, cbtobesignedandencrypted : u32, pbsignedandencryptedblob : *mut u8, pcbsignedandencryptedblob : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSignCertificate(hcryptprovorncryptkey : HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwkeyspec : u32, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pbencodedtobesigned : *const u8, cbencodedtobesigned : u32, psignaturealgorithm : *const CRYPT_ALGORITHM_IDENTIFIER, pvhashauxinfo : *const ::core::ffi::c_void, pbsignature : *mut u8, pcbsignature : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSignHashA(hhash : usize, dwkeyspec : u32, szdescription : ::windows_sys::core::PCSTR, dwflags : u32, pbsignature : *mut u8, pdwsiglen : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSignHashW(hhash : usize, dwkeyspec : u32, szdescription : ::windows_sys::core::PCWSTR, dwflags : u32, pbsignature : *mut u8, pdwsiglen : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSignMessage(psignpara : *const CRYPT_SIGN_MESSAGE_PARA, fdetachedsignature : super::super::Foundation:: BOOL, ctobesigned : u32, rgpbtobesigned : *const *const u8, rgcbtobesigned : *const u32, pbsignedblob : *mut u8, pcbsignedblob : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptSignMessageWithKey(psignpara : *const CRYPT_KEY_SIGN_MESSAGE_PARA, pbtobesigned : *const u8, cbtobesigned : u32, pbsignedblob : *mut u8, pcbsignedblob : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptStringToBinaryA(pszstring : ::windows_sys::core::PCSTR, cchstring : u32, dwflags : CRYPT_STRING, pbbinary : *mut u8, pcbbinary : *mut u32, pdwskip : *mut u32, pdwflags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptStringToBinaryW(pszstring : ::windows_sys::core::PCWSTR, cchstring : u32, dwflags : CRYPT_STRING, pbbinary : *mut u8, pcbbinary : *mut u32, pdwskip : *mut u32, pdwflags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptnet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUninstallCancelRetrieval(dwflags : u32, pvreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUninstallDefaultContext(hdefaultcontext : *const ::core::ffi::c_void, dwflags : u32, pvreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUnprotectData(pdatain : *const CRYPT_INTEGER_BLOB, ppszdatadescr : *mut ::windows_sys::core::PWSTR, poptionalentropy : *const CRYPT_INTEGER_BLOB, pvreserved : *const ::core::ffi::c_void, ppromptstruct : *const CRYPTPROTECT_PROMPTSTRUCT, dwflags : u32, pdataout : *mut CRYPT_INTEGER_BLOB) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUnprotectMemory(pdatain : *mut ::core::ffi::c_void, cbdatain : u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUnregisterDefaultOIDFunction(dwencodingtype : u32, pszfuncname : ::windows_sys::core::PCSTR, pwszdll : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUnregisterOIDFunction(dwencodingtype : u32, pszfuncname : ::windows_sys::core::PCSTR, pszoid : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUnregisterOIDInfo(pinfo : *const CRYPT_OID_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptUpdateProtectedState(poldsid : super::super::Foundation:: PSID, pwszoldpassword : ::windows_sys::core::PCWSTR, dwflags : u32, pdwsuccesscount : *mut u32, pdwfailurecount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptVerifyCertificateSignature(hcryptprov : HCRYPTPROV_LEGACY, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, pbencoded : *const u8, cbencoded : u32, ppublickey : *const CERT_PUBLIC_KEY_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptVerifyCertificateSignatureEx(hcryptprov : HCRYPTPROV_LEGACY, dwcertencodingtype : CERT_QUERY_ENCODING_TYPE, dwsubjecttype : u32, pvsubject : *const ::core::ffi::c_void, dwissuertype : u32, pvissuer : *const ::core::ffi::c_void, dwflags : CRYPT_VERIFY_CERT_FLAGS, pvextra : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptVerifyDetachedMessageHash(phashpara : *const CRYPT_HASH_MESSAGE_PARA, pbdetachedhashblob : *const u8, cbdetachedhashblob : u32, ctobehashed : u32, rgpbtobehashed : *const *const u8, rgcbtobehashed : *const u32, pbcomputedhash : *mut u8, pcbcomputedhash : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptVerifyDetachedMessageSignature(pverifypara : *const CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex : u32, pbdetachedsignblob : *const u8, cbdetachedsignblob : u32, ctobesigned : u32, rgpbtobesigned : *const *const u8, rgcbtobesigned : *const u32, ppsignercert : *mut *mut CERT_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptVerifyMessageHash(phashpara : *const CRYPT_HASH_MESSAGE_PARA, pbhashedblob : *const u8, cbhashedblob : u32, pbtobehashed : *mut u8, pcbtobehashed : *mut u32, pbcomputedhash : *mut u8, pcbcomputedhash : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptVerifyMessageSignature(pverifypara : *const CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex : u32, pbsignedblob : *const u8, cbsignedblob : u32, pbdecoded : *mut u8, pcbdecoded : *mut u32, ppsignercert : *mut *mut CERT_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptVerifyMessageSignatureWithKey(pverifypara : *const CRYPT_KEY_VERIFY_MESSAGE_PARA, ppublickeyinfo : *const CERT_PUBLIC_KEY_INFO, pbsignedblob : *const u8, cbsignedblob : u32, pbdecoded : *mut u8, pcbdecoded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptVerifySignatureA(hhash : usize, pbsignature : *const u8, dwsiglen : u32, hpubkey : usize, szdescription : ::windows_sys::core::PCSTR, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptVerifySignatureW(hhash : usize, pbsignature : *const u8, dwsiglen : u32, hpubkey : usize, szdescription : ::windows_sys::core::PCWSTR, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptVerifyTimeStampSignature(pbtscontentinfo : *const u8, cbtscontentinfo : u32, pbdata : *const u8, cbdata : u32, hadditionalstore : HCERTSTORE, pptscontext : *mut *mut CRYPT_TIMESTAMP_CONTEXT, pptssigner : *mut *mut CERT_CONTEXT, phstore : *mut HCERTSTORE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlAddObject(hsignatureorobject : *const ::core::ffi::c_void, dwflags : u32, rgproperty : *const CRYPT_XML_PROPERTY, cproperty : u32, pencoded : *const CRYPT_XML_BLOB, ppobject : *mut *mut CRYPT_XML_OBJECT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlClose(hcryptxml : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlCreateReference(hcryptxml : *const ::core::ffi::c_void, dwflags : u32, wszid : ::windows_sys::core::PCWSTR, wszuri : ::windows_sys::core::PCWSTR, wsztype : ::windows_sys::core::PCWSTR, pdigestmethod : *const CRYPT_XML_ALGORITHM, ctransform : u32, rgtransform : *const CRYPT_XML_ALGORITHM, phreference : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlDigestReference(hreference : *const ::core::ffi::c_void, dwflags : u32, pdataproviderin : *const CRYPT_XML_DATA_PROVIDER) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlEncode(hcryptxml : *const ::core::ffi::c_void, dwcharset : CRYPT_XML_CHARSET, rgproperty : *const CRYPT_XML_PROPERTY, cproperty : u32, pvcallbackstate : *mut ::core::ffi::c_void, pfnwrite : PFN_CRYPT_XML_WRITE_CALLBACK) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cryptxml.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CryptXmlEnumAlgorithmInfo(dwgroupid : u32, dwflags : u32, pvarg : *mut ::core::ffi::c_void, pfnenumalginfo : PFN_CRYPT_XML_ENUM_ALG_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlFindAlgorithmInfo(dwfindbytype : u32, pvfindby : *const ::core::ffi::c_void, dwgroupid : u32, dwflags : u32) -> *mut CRYPT_XML_ALGORITHM_INFO); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlGetAlgorithmInfo(pxmlalgorithm : *const CRYPT_XML_ALGORITHM, dwflags : CRYPT_XML_FLAGS, ppalginfo : *mut *mut CRYPT_XML_ALGORITHM_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlGetDocContext(hcryptxml : *const ::core::ffi::c_void, ppstruct : *mut *mut CRYPT_XML_DOC_CTXT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlGetReference(hcryptxml : *const ::core::ffi::c_void, ppstruct : *mut *mut CRYPT_XML_REFERENCE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlGetSignature(hcryptxml : *const ::core::ffi::c_void, ppstruct : *mut *mut CRYPT_XML_SIGNATURE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlGetStatus(hcryptxml : *const ::core::ffi::c_void, pstatus : *mut CRYPT_XML_STATUS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlGetTransforms(ppconfig : *mut *mut CRYPT_XML_TRANSFORM_CHAIN_CONFIG) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlImportPublicKey(dwflags : CRYPT_XML_FLAGS, pkeyvalue : *const CRYPT_XML_KEY_VALUE, phkey : *mut BCRYPT_KEY_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlOpenToDecode(pconfig : *const CRYPT_XML_TRANSFORM_CHAIN_CONFIG, dwflags : CRYPT_XML_FLAGS, rgproperty : *const CRYPT_XML_PROPERTY, cproperty : u32, pencoded : *const CRYPT_XML_BLOB, phcryptxml : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlOpenToEncode(pconfig : *const CRYPT_XML_TRANSFORM_CHAIN_CONFIG, dwflags : CRYPT_XML_FLAGS, wszid : ::windows_sys::core::PCWSTR, rgproperty : *const CRYPT_XML_PROPERTY, cproperty : u32, pencoded : *const CRYPT_XML_BLOB, phsignature : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlSetHMACSecret(hsignature : *const ::core::ffi::c_void, pbsecret : *const u8, cbsecret : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlSign(hsignature : *const ::core::ffi::c_void, hkey : HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwkeyspec : CERT_KEY_SPEC, dwflags : CRYPT_XML_FLAGS, dwkeyinfospec : CRYPT_XML_KEYINFO_SPEC, pvkeyinfospec : *const ::core::ffi::c_void, psignaturemethod : *const CRYPT_XML_ALGORITHM, pcanonicalization : *const CRYPT_XML_ALGORITHM) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cryptxml.dll" "system" fn CryptXmlVerifySignature(hsignature : *const ::core::ffi::c_void, hkey : BCRYPT_KEY_HANDLE, dwflags : CRYPT_XML_FLAGS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("infocardapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Decrypt(hcrypto : *const INFORMATIONCARD_CRYPTO_HANDLE, foaep : super::super::Foundation:: BOOL, cbindata : u32, pindata : *const u8, pcboutdata : *mut u32, ppoutdata : *mut *mut u8) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("infocardapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Encrypt(hcrypto : *const INFORMATIONCARD_CRYPTO_HANDLE, foaep : super::super::Foundation:: BOOL, cbindata : u32, pindata : *const u8, pcboutdata : *mut u32, ppoutdata : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wintrust.dll" "system" fn FindCertsByIssuer(pcertchains : *mut CERT_CHAIN, pcbcertchains : *mut u32, pccertchains : *mut u32, pbencodedissuername : *const u8, cbencodedissuername : u32, pwszpurpose : ::windows_sys::core::PCWSTR, dwkeyspec : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("infocardapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeToken(pallocmemory : *const GENERIC_XML_TOKEN) -> super::super::Foundation:: BOOL); +::windows_targets::link!("infocardapi.dll" "system" fn GenerateDerivedKey(hcrypto : *const INFORMATIONCARD_CRYPTO_HANDLE, cblabel : u32, plabel : *const u8, cbnonce : u32, pnonce : *const u8, derivedkeylength : u32, offset : u32, algid : ::windows_sys::core::PCWSTR, pcbkey : *mut u32, ppkey : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("infocardapi.dll" "system" fn GetBrowserToken(dwparamtype : u32, pparam : *const ::core::ffi::c_void, pcbtoken : *mut u32, pptoken : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("infocardapi.dll" "system" fn GetCryptoTransform(hsymmetriccrypto : *const INFORMATIONCARD_CRYPTO_HANDLE, mode : u32, padding : PaddingMode, feedbacksize : u32, direction : Direction, cbiv : u32, piv : *const u8, pphtransform : *mut *mut INFORMATIONCARD_CRYPTO_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("infocardapi.dll" "system" fn GetKeyedHash(hsymmetriccrypto : *const INFORMATIONCARD_CRYPTO_HANDLE, pphhash : *mut *mut INFORMATIONCARD_CRYPTO_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("infocardapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetToken(cpolicychain : u32, ppolicychain : *const POLICY_ELEMENT, securitytoken : *mut *mut GENERIC_XML_TOKEN, phprooftokencrypto : *mut *mut INFORMATIONCARD_CRYPTO_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("infocardapi.dll" "system" fn HashCore(hcrypto : *const INFORMATIONCARD_CRYPTO_HANDLE, cbindata : u32, pindata : *const u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("infocardapi.dll" "system" fn HashFinal(hcrypto : *const INFORMATIONCARD_CRYPTO_HANDLE, cbindata : u32, pindata : *const u8, pcboutdata : *mut u32, ppoutdata : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("infocardapi.dll" "system" fn ImportInformationCard(filename : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("infocardapi.dll" "system" fn ManageCardSpace() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptCloseProtectionDescriptor(hdescriptor : super:: NCRYPT_DESCRIPTOR_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptCreateClaim(hsubjectkey : NCRYPT_KEY_HANDLE, hauthoritykey : NCRYPT_KEY_HANDLE, dwclaimtype : u32, pparameterlist : *const BCryptBufferDesc, pbclaimblob : *mut u8, cbclaimblob : u32, pcbresult : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptCreatePersistedKey(hprovider : NCRYPT_PROV_HANDLE, phkey : *mut NCRYPT_KEY_HANDLE, pszalgid : ::windows_sys::core::PCWSTR, pszkeyname : ::windows_sys::core::PCWSTR, dwlegacykeyspec : CERT_KEY_SPEC, dwflags : NCRYPT_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptCreateProtectionDescriptor(pwszdescriptorstring : ::windows_sys::core::PCWSTR, dwflags : u32, phdescriptor : *mut super:: NCRYPT_DESCRIPTOR_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptDecrypt(hkey : NCRYPT_KEY_HANDLE, pbinput : *const u8, cbinput : u32, ppaddinginfo : *const ::core::ffi::c_void, pboutput : *mut u8, cboutput : u32, pcbresult : *mut u32, dwflags : NCRYPT_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptDeleteKey(hkey : NCRYPT_KEY_HANDLE, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptDeriveKey(hsharedsecret : NCRYPT_SECRET_HANDLE, pwszkdf : ::windows_sys::core::PCWSTR, pparameterlist : *const BCryptBufferDesc, pbderivedkey : *mut u8, cbderivedkey : u32, pcbresult : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptEncrypt(hkey : NCRYPT_KEY_HANDLE, pbinput : *const u8, cbinput : u32, ppaddinginfo : *const ::core::ffi::c_void, pboutput : *mut u8, cboutput : u32, pcbresult : *mut u32, dwflags : NCRYPT_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptEnumAlgorithms(hprovider : NCRYPT_PROV_HANDLE, dwalgoperations : NCRYPT_OPERATION, pdwalgcount : *mut u32, ppalglist : *mut *mut NCryptAlgorithmName, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptEnumKeys(hprovider : NCRYPT_PROV_HANDLE, pszscope : ::windows_sys::core::PCWSTR, ppkeyname : *mut *mut NCryptKeyName, ppenumstate : *mut *mut ::core::ffi::c_void, dwflags : NCRYPT_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptEnumStorageProviders(pdwprovidercount : *mut u32, ppproviderlist : *mut *mut NCryptProviderName, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptExportKey(hkey : NCRYPT_KEY_HANDLE, hexportkey : NCRYPT_KEY_HANDLE, pszblobtype : ::windows_sys::core::PCWSTR, pparameterlist : *const BCryptBufferDesc, pboutput : *mut u8, cboutput : u32, pcbresult : *mut u32, dwflags : NCRYPT_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptFinalizeKey(hkey : NCRYPT_KEY_HANDLE, dwflags : NCRYPT_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptFreeBuffer(pvinput : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptFreeObject(hobject : NCRYPT_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptGetProperty(hobject : NCRYPT_HANDLE, pszproperty : ::windows_sys::core::PCWSTR, pboutput : *mut u8, cboutput : u32, pcbresult : *mut u32, dwflags : super:: OBJECT_SECURITY_INFORMATION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptGetProtectionDescriptorInfo(hdescriptor : super:: NCRYPT_DESCRIPTOR_HANDLE, pmempara : *const NCRYPT_ALLOC_PARA, dwinfotype : u32, ppvinfo : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptImportKey(hprovider : NCRYPT_PROV_HANDLE, himportkey : NCRYPT_KEY_HANDLE, pszblobtype : ::windows_sys::core::PCWSTR, pparameterlist : *const BCryptBufferDesc, phkey : *mut NCRYPT_KEY_HANDLE, pbdata : *const u8, cbdata : u32, dwflags : NCRYPT_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptIsAlgSupported(hprovider : NCRYPT_PROV_HANDLE, pszalgid : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ncrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NCryptIsKeyHandle(hkey : NCRYPT_KEY_HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptKeyDerivation(hkey : NCRYPT_KEY_HANDLE, pparameterlist : *const BCryptBufferDesc, pbderivedkey : *mut u8, cbderivedkey : u32, pcbresult : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ncrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NCryptNotifyChangeKey(hprovider : NCRYPT_PROV_HANDLE, phevent : *mut super::super::Foundation:: HANDLE, dwflags : NCRYPT_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptOpenKey(hprovider : NCRYPT_PROV_HANDLE, phkey : *mut NCRYPT_KEY_HANDLE, pszkeyname : ::windows_sys::core::PCWSTR, dwlegacykeyspec : CERT_KEY_SPEC, dwflags : NCRYPT_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptOpenStorageProvider(phprovider : *mut NCRYPT_PROV_HANDLE, pszprovidername : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ncrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NCryptProtectSecret(hdescriptor : super:: NCRYPT_DESCRIPTOR_HANDLE, dwflags : u32, pbdata : *const u8, cbdata : u32, pmempara : *const NCRYPT_ALLOC_PARA, hwnd : super::super::Foundation:: HWND, ppbprotectedblob : *mut *mut u8, pcbprotectedblob : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptQueryProtectionDescriptorName(pwszname : ::windows_sys::core::PCWSTR, pwszdescriptorstring : ::windows_sys::core::PWSTR, pcdescriptorstring : *mut usize, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptRegisterProtectionDescriptorName(pwszname : ::windows_sys::core::PCWSTR, pwszdescriptorstring : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptSecretAgreement(hprivkey : NCRYPT_KEY_HANDLE, hpubkey : NCRYPT_KEY_HANDLE, phagreedsecret : *mut NCRYPT_SECRET_HANDLE, dwflags : NCRYPT_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptSetProperty(hobject : NCRYPT_HANDLE, pszproperty : ::windows_sys::core::PCWSTR, pbinput : *const u8, cbinput : u32, dwflags : NCRYPT_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptSignHash(hkey : NCRYPT_KEY_HANDLE, ppaddinginfo : *const ::core::ffi::c_void, pbhashvalue : *const u8, cbhashvalue : u32, pbsignature : *mut u8, cbsignature : u32, pcbresult : *mut u32, dwflags : NCRYPT_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptStreamClose(hstream : super:: NCRYPT_STREAM_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ncrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NCryptStreamOpenToProtect(hdescriptor : super:: NCRYPT_DESCRIPTOR_HANDLE, dwflags : u32, hwnd : super::super::Foundation:: HWND, pstreaminfo : *const NCRYPT_PROTECT_STREAM_INFO, phstream : *mut super:: NCRYPT_STREAM_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ncrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NCryptStreamOpenToUnprotect(pstreaminfo : *const NCRYPT_PROTECT_STREAM_INFO, dwflags : u32, hwnd : super::super::Foundation:: HWND, phstream : *mut super:: NCRYPT_STREAM_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ncrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NCryptStreamOpenToUnprotectEx(pstreaminfo : *const NCRYPT_PROTECT_STREAM_INFO_EX, dwflags : u32, hwnd : super::super::Foundation:: HWND, phstream : *mut super:: NCRYPT_STREAM_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ncrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NCryptStreamUpdate(hstream : super:: NCRYPT_STREAM_HANDLE, pbdata : *const u8, cbdata : usize, ffinal : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptTranslateHandle(phprovider : *mut NCRYPT_PROV_HANDLE, phkey : *mut NCRYPT_KEY_HANDLE, hlegacyprov : usize, hlegacykey : usize, dwlegacykeyspec : CERT_KEY_SPEC, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ncrypt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NCryptUnprotectSecret(phdescriptor : *mut super:: NCRYPT_DESCRIPTOR_HANDLE, dwflags : NCRYPT_FLAGS, pbprotectedblob : *const u8, cbprotectedblob : u32, pmempara : *const NCRYPT_ALLOC_PARA, hwnd : super::super::Foundation:: HWND, ppbdata : *mut *mut u8, pcbdata : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptVerifyClaim(hsubjectkey : NCRYPT_KEY_HANDLE, hauthoritykey : NCRYPT_KEY_HANDLE, dwclaimtype : u32, pparameterlist : *const BCryptBufferDesc, pbclaimblob : *const u8, cbclaimblob : u32, poutput : *mut BCryptBufferDesc, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ncrypt.dll" "system" fn NCryptVerifySignature(hkey : NCRYPT_KEY_HANDLE, ppaddinginfo : *const ::core::ffi::c_void, pbhashvalue : *const u8, cbhashvalue : u32, pbsignature : *const u8, cbsignature : u32, dwflags : NCRYPT_FLAGS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PFXExportCertStore(hstore : HCERTSTORE, ppfx : *mut CRYPT_INTEGER_BLOB, szpassword : ::windows_sys::core::PCWSTR, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PFXExportCertStoreEx(hstore : HCERTSTORE, ppfx : *mut CRYPT_INTEGER_BLOB, szpassword : ::windows_sys::core::PCWSTR, pvpara : *const ::core::ffi::c_void, dwflags : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("crypt32.dll" "system" fn PFXImportCertStore(ppfx : *const CRYPT_INTEGER_BLOB, szpassword : ::windows_sys::core::PCWSTR, dwflags : CRYPT_KEY_FLAGS) -> HCERTSTORE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PFXIsPFXBlob(ppfx : *const CRYPT_INTEGER_BLOB) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("crypt32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PFXVerifyPassword(ppfx : *const CRYPT_INTEGER_BLOB, szpassword : ::windows_sys::core::PCWSTR, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcryptprimitives.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ProcessPrng(pbdata : *mut u8, cbdata : usize) -> super::super::Foundation:: BOOL); +::windows_targets::link!("mssign32.dll" "system" fn SignError() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("infocardapi.dll" "system" fn SignHash(hcrypto : *const INFORMATIONCARD_CRYPTO_HANDLE, cbhash : u32, phash : *const u8, hashalgoid : ::windows_sys::core::PCWSTR, pcbsig : *mut u32, ppsig : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mssign32.dll" "system" fn SignerFreeSignerContext(psignercontext : *const SIGNER_CONTEXT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mssign32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SignerSign(psubjectinfo : *const SIGNER_SUBJECT_INFO, psignercert : *const SIGNER_CERT, psignatureinfo : *const SIGNER_SIGNATURE_INFO, pproviderinfo : *const SIGNER_PROVIDER_INFO, pwszhttptimestamp : ::windows_sys::core::PCWSTR, psrequest : *const CRYPT_ATTRIBUTES, psipdata : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mssign32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SignerSignEx(dwflags : SIGNER_SIGN_FLAGS, psubjectinfo : *const SIGNER_SUBJECT_INFO, psignercert : *const SIGNER_CERT, psignatureinfo : *const SIGNER_SIGNATURE_INFO, pproviderinfo : *const SIGNER_PROVIDER_INFO, pwszhttptimestamp : ::windows_sys::core::PCWSTR, psrequest : *const CRYPT_ATTRIBUTES, psipdata : *const ::core::ffi::c_void, ppsignercontext : *mut *mut SIGNER_CONTEXT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mssign32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SignerSignEx2(dwflags : SIGNER_SIGN_FLAGS, psubjectinfo : *const SIGNER_SUBJECT_INFO, psignercert : *const SIGNER_CERT, psignatureinfo : *const SIGNER_SIGNATURE_INFO, pproviderinfo : *const SIGNER_PROVIDER_INFO, dwtimestampflags : SIGNER_TIMESTAMP_FLAGS, psztimestampalgorithmoid : ::windows_sys::core::PCSTR, pwszhttptimestamp : ::windows_sys::core::PCWSTR, psrequest : *const CRYPT_ATTRIBUTES, psipdata : *const ::core::ffi::c_void, ppsignercontext : *mut *mut SIGNER_CONTEXT, pcryptopolicy : *const CERT_STRONG_SIGN_PARA, preserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mssign32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SignerSignEx3(dwflags : SIGNER_SIGN_FLAGS, psubjectinfo : *const SIGNER_SUBJECT_INFO, psignercert : *const SIGNER_CERT, psignatureinfo : *const SIGNER_SIGNATURE_INFO, pproviderinfo : *const SIGNER_PROVIDER_INFO, dwtimestampflags : SIGNER_TIMESTAMP_FLAGS, psztimestampalgorithmoid : ::windows_sys::core::PCSTR, pwszhttptimestamp : ::windows_sys::core::PCWSTR, psrequest : *const CRYPT_ATTRIBUTES, psipdata : *const ::core::ffi::c_void, ppsignercontext : *mut *mut SIGNER_CONTEXT, pcryptopolicy : *const CERT_STRONG_SIGN_PARA, pdigestsigninfo : *const SIGNER_DIGEST_SIGN_INFO, preserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mssign32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SignerTimeStamp(psubjectinfo : *const SIGNER_SUBJECT_INFO, pwszhttptimestamp : ::windows_sys::core::PCWSTR, psrequest : *const CRYPT_ATTRIBUTES, psipdata : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mssign32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SignerTimeStampEx(dwflags : u32, psubjectinfo : *const SIGNER_SUBJECT_INFO, pwszhttptimestamp : ::windows_sys::core::PCWSTR, psrequest : *const CRYPT_ATTRIBUTES, psipdata : *const ::core::ffi::c_void, ppsignercontext : *mut *mut SIGNER_CONTEXT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mssign32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SignerTimeStampEx2(dwflags : SIGNER_TIMESTAMP_FLAGS, psubjectinfo : *const SIGNER_SUBJECT_INFO, pwszhttptimestamp : ::windows_sys::core::PCWSTR, dwalgid : ALG_ID, psrequest : *const CRYPT_ATTRIBUTES, psipdata : *const ::core::ffi::c_void, ppsignercontext : *mut *mut SIGNER_CONTEXT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mssign32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SignerTimeStampEx3(dwflags : SIGNER_TIMESTAMP_FLAGS, dwindex : u32, psubjectinfo : *const SIGNER_SUBJECT_INFO, pwszhttptimestamp : ::windows_sys::core::PCWSTR, pszalgorithmoid : ::windows_sys::core::PCWSTR, psrequest : *const CRYPT_ATTRIBUTES, psipdata : *const ::core::ffi::c_void, ppsignercontext : *mut *mut SIGNER_CONTEXT, pcryptopolicy : *const CERT_STRONG_SIGN_PARA, preserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("bcryptprimitives.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SystemPrng(pbrandomdata : *mut u8, cbrandomdata : usize) -> super::super::Foundation:: BOOL); +::windows_targets::link!("infocardapi.dll" "system" fn TransformBlock(hcrypto : *const INFORMATIONCARD_CRYPTO_HANDLE, cbindata : u32, pindata : *const u8, pcboutdata : *mut u32, ppoutdata : *mut *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("infocardapi.dll" "system" fn TransformFinalBlock(hcrypto : *const INFORMATIONCARD_CRYPTO_HANDLE, cbindata : u32, pindata : *const u8, pcboutdata : *mut u32, ppoutdata : *mut *mut u8) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("infocardapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VerifyHash(hcrypto : *const INFORMATIONCARD_CRYPTO_HANDLE, cbhash : u32, phash : *const u8, hashalgoid : ::windows_sys::core::PCWSTR, cbsig : u32, psig : *const u8, pfverified : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +pub type ICertSrvSetup = *mut ::core::ffi::c_void; +pub type ICertSrvSetupKeyInformation = *mut ::core::ffi::c_void; +pub type ICertSrvSetupKeyInformationCollection = *mut ::core::ffi::c_void; +pub type ICertificateEnrollmentPolicyServerSetup = *mut ::core::ffi::c_void; +pub type ICertificateEnrollmentServerSetup = *mut ::core::ffi::c_void; +pub type IMSCEPSetup = *mut ::core::ffi::c_void; +pub const ALG_CLASS_ALL: u32 = 57344u32; +pub const ALG_CLASS_ANY: u32 = 0u32; +pub const ALG_CLASS_DATA_ENCRYPT: u32 = 24576u32; +pub const ALG_CLASS_HASH: u32 = 32768u32; +pub const ALG_CLASS_KEY_EXCHANGE: u32 = 40960u32; +pub const ALG_CLASS_MSG_ENCRYPT: u32 = 16384u32; +pub const ALG_CLASS_SIGNATURE: u32 = 8192u32; +pub const ALG_SID_3DES: u32 = 3u32; +pub const ALG_SID_3DES_112: u32 = 9u32; +pub const ALG_SID_AES: u32 = 17u32; +pub const ALG_SID_AES_128: u32 = 14u32; +pub const ALG_SID_AES_192: u32 = 15u32; +pub const ALG_SID_AES_256: u32 = 16u32; +pub const ALG_SID_AGREED_KEY_ANY: u32 = 3u32; +pub const ALG_SID_ANY: u32 = 0u32; +pub const ALG_SID_CAST: u32 = 6u32; +pub const ALG_SID_CYLINK_MEK: u32 = 12u32; +pub const ALG_SID_DES: u32 = 1u32; +pub const ALG_SID_DESX: u32 = 4u32; +pub const ALG_SID_DH_EPHEM: u32 = 2u32; +pub const ALG_SID_DH_SANDF: u32 = 1u32; +pub const ALG_SID_DSS_ANY: u32 = 0u32; +pub const ALG_SID_DSS_DMS: u32 = 2u32; +pub const ALG_SID_DSS_PKCS: u32 = 1u32; +pub const ALG_SID_ECDH: u32 = 5u32; +pub const ALG_SID_ECDH_EPHEM: u32 = 6u32; +pub const ALG_SID_ECDSA: u32 = 3u32; +pub const ALG_SID_ECMQV: u32 = 1u32; +pub const ALG_SID_EXAMPLE: u32 = 80u32; +pub const ALG_SID_HASH_REPLACE_OWF: u32 = 11u32; +pub const ALG_SID_HMAC: u32 = 9u32; +pub const ALG_SID_IDEA: u32 = 5u32; +pub const ALG_SID_KEA: u32 = 4u32; +pub const ALG_SID_MAC: u32 = 5u32; +pub const ALG_SID_MD2: u32 = 1u32; +pub const ALG_SID_MD4: u32 = 2u32; +pub const ALG_SID_MD5: u32 = 3u32; +pub const ALG_SID_PCT1_MASTER: u32 = 4u32; +pub const ALG_SID_RC2: u32 = 2u32; +pub const ALG_SID_RC4: u32 = 1u32; +pub const ALG_SID_RC5: u32 = 13u32; +pub const ALG_SID_RIPEMD: u32 = 6u32; +pub const ALG_SID_RIPEMD160: u32 = 7u32; +pub const ALG_SID_RSA_ANY: u32 = 0u32; +pub const ALG_SID_RSA_ENTRUST: u32 = 3u32; +pub const ALG_SID_RSA_MSATWORK: u32 = 2u32; +pub const ALG_SID_RSA_PGP: u32 = 4u32; +pub const ALG_SID_RSA_PKCS: u32 = 1u32; +pub const ALG_SID_SAFERSK128: u32 = 8u32; +pub const ALG_SID_SAFERSK64: u32 = 7u32; +pub const ALG_SID_SCHANNEL_ENC_KEY: u32 = 7u32; +pub const ALG_SID_SCHANNEL_MAC_KEY: u32 = 3u32; +pub const ALG_SID_SCHANNEL_MASTER_HASH: u32 = 2u32; +pub const ALG_SID_SEAL: u32 = 2u32; +pub const ALG_SID_SHA: u32 = 4u32; +pub const ALG_SID_SHA1: u32 = 4u32; +pub const ALG_SID_SHA_256: u32 = 12u32; +pub const ALG_SID_SHA_384: u32 = 13u32; +pub const ALG_SID_SHA_512: u32 = 14u32; +pub const ALG_SID_SKIPJACK: u32 = 10u32; +pub const ALG_SID_SSL2_MASTER: u32 = 5u32; +pub const ALG_SID_SSL3SHAMD5: u32 = 8u32; +pub const ALG_SID_SSL3_MASTER: u32 = 1u32; +pub const ALG_SID_TEK: u32 = 11u32; +pub const ALG_SID_THIRDPARTY_ANY: u32 = 0u32; +pub const ALG_SID_TLS1PRF: u32 = 10u32; +pub const ALG_SID_TLS1_MASTER: u32 = 6u32; +pub const ALG_TYPE_ANY: u32 = 0u32; +pub const ALG_TYPE_BLOCK: u32 = 1536u32; +pub const ALG_TYPE_DH: u32 = 2560u32; +pub const ALG_TYPE_DSS: u32 = 512u32; +pub const ALG_TYPE_ECDH: u32 = 3584u32; +pub const ALG_TYPE_RSA: u32 = 1024u32; +pub const ALG_TYPE_SECURECHANNEL: u32 = 3072u32; +pub const ALG_TYPE_STREAM: u32 = 2048u32; +pub const ALG_TYPE_THIRDPARTY: u32 = 4096u32; +pub const AT_KEYEXCHANGE: CERT_KEY_SPEC = 1u32; +pub const AT_SIGNATURE: CERT_KEY_SPEC = 2u32; +pub const AUDIT_CARD_DELETE: ::windows_sys::core::HRESULT = 1074070017i32; +pub const AUDIT_CARD_IMPORT: ::windows_sys::core::HRESULT = 1074070018i32; +pub const AUDIT_CARD_WRITTEN: ::windows_sys::core::HRESULT = 1074070016i32; +pub const AUDIT_SERVICE_IDLE_STOP: ::windows_sys::core::HRESULT = 1074070022i32; +pub const AUDIT_STORE_DELETE: ::windows_sys::core::HRESULT = 1074070021i32; +pub const AUDIT_STORE_EXPORT: ::windows_sys::core::HRESULT = 1074070020i32; +pub const AUDIT_STORE_IMPORT: ::windows_sys::core::HRESULT = 1074070019i32; +pub const AUTHTYPE_CLIENT: HTTPSPOLICY_CALLBACK_DATA_AUTH_TYPE = 1u32; +pub const AUTHTYPE_SERVER: HTTPSPOLICY_CALLBACK_DATA_AUTH_TYPE = 2u32; +pub const BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_CA_FLAG: u32 = 2147483648u32; +pub const BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_END_ENTITY_FLAG: u32 = 1073741824u32; +pub const BCRYPTBUFFER_VERSION: u32 = 0u32; +pub const BCRYPT_3DES_112_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("3DES_112"); +pub const BCRYPT_3DES_112_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 369u32 as _; +pub const BCRYPT_3DES_112_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 401u32 as _; +pub const BCRYPT_3DES_112_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 385u32 as _; +pub const BCRYPT_3DES_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("3DES"); +pub const BCRYPT_3DES_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 321u32 as _; +pub const BCRYPT_3DES_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 353u32 as _; +pub const BCRYPT_3DES_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 337u32 as _; +pub const BCRYPT_AES_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AES"); +pub const BCRYPT_AES_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 417u32 as _; +pub const BCRYPT_AES_CCM_ALG_HANDLE: BCRYPT_ALG_HANDLE = 465u32 as _; +pub const BCRYPT_AES_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 449u32 as _; +pub const BCRYPT_AES_CMAC_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AES-CMAC"); +pub const BCRYPT_AES_CMAC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 257u32 as _; +pub const BCRYPT_AES_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 433u32 as _; +pub const BCRYPT_AES_GCM_ALG_HANDLE: BCRYPT_ALG_HANDLE = 481u32 as _; +pub const BCRYPT_AES_GMAC_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AES-GMAC"); +pub const BCRYPT_AES_GMAC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 273u32 as _; +pub const BCRYPT_AES_WRAP_KEY_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Rfc3565KeyWrapBlob"); +pub const BCRYPT_ALGORITHM_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AlgorithmName"); +pub const BCRYPT_ALG_HANDLE_HMAC_FLAG: BCRYPT_OPEN_ALGORITHM_PROVIDER_FLAGS = 8u32; +pub const BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE: BCRYPT_INTERFACE = 3u32; +pub const BCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION: BCRYPT_OPERATION = 4u32; +pub const BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO_VERSION: u32 = 1u32; +pub const BCRYPT_AUTH_MODE_CHAIN_CALLS_FLAG: u32 = 1u32; +pub const BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG: u32 = 2u32; +pub const BCRYPT_AUTH_TAG_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AuthTagLength"); +pub const BCRYPT_BLOCK_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BlockLength"); +pub const BCRYPT_BLOCK_PADDING: BCRYPT_FLAGS = 1u32; +pub const BCRYPT_BLOCK_SIZE_LIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BlockSizeList"); +pub const BCRYPT_BUFFERS_LOCKED_FLAG: u32 = 64u32; +pub const BCRYPT_CAPI_AES_FLAG: u32 = 16u32; +pub const BCRYPT_CAPI_KDF_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAPI_KDF"); +pub const BCRYPT_CAPI_KDF_ALG_HANDLE: BCRYPT_ALG_HANDLE = 801u32 as _; +pub const BCRYPT_CHACHA20_POLY1305_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CHACHA20_POLY1305"); +pub const BCRYPT_CHACHA20_POLY1305_ALG_HANDLE: BCRYPT_ALG_HANDLE = 929u32 as _; +pub const BCRYPT_CHAINING_MODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChainingMode"); +pub const BCRYPT_CHAIN_MODE_CBC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChainingModeCBC"); +pub const BCRYPT_CHAIN_MODE_CCM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChainingModeCCM"); +pub const BCRYPT_CHAIN_MODE_CFB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChainingModeCFB"); +pub const BCRYPT_CHAIN_MODE_ECB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChainingModeECB"); +pub const BCRYPT_CHAIN_MODE_GCM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChainingModeGCM"); +pub const BCRYPT_CHAIN_MODE_NA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChainingModeN/A"); +pub const BCRYPT_CIPHER_INTERFACE: BCRYPT_INTERFACE = 1u32; +pub const BCRYPT_CIPHER_OPERATION: BCRYPT_OPERATION = 1u32; +pub const BCRYPT_DESX_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DESX"); +pub const BCRYPT_DESX_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 545u32 as _; +pub const BCRYPT_DESX_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 577u32 as _; +pub const BCRYPT_DESX_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 561u32 as _; +pub const BCRYPT_DES_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DES"); +pub const BCRYPT_DES_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 497u32 as _; +pub const BCRYPT_DES_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 529u32 as _; +pub const BCRYPT_DES_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 513u32 as _; +pub const BCRYPT_DH_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DH"); +pub const BCRYPT_DH_ALG_HANDLE: BCRYPT_ALG_HANDLE = 641u32 as _; +pub const BCRYPT_DH_PARAMETERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DHParameters"); +pub const BCRYPT_DH_PARAMETERS_MAGIC: u32 = 1297107012u32; +pub const BCRYPT_DH_PRIVATE_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DHPRIVATEBLOB"); +pub const BCRYPT_DH_PRIVATE_MAGIC: BCRYPT_DH_KEY_BLOB_MAGIC = 1448101956u32; +pub const BCRYPT_DH_PUBLIC_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DHPUBLICBLOB"); +pub const BCRYPT_DH_PUBLIC_MAGIC: BCRYPT_DH_KEY_BLOB_MAGIC = 1112557636u32; +pub const BCRYPT_DSA_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DSA"); +pub const BCRYPT_DSA_ALG_HANDLE: BCRYPT_ALG_HANDLE = 721u32 as _; +pub const BCRYPT_DSA_PARAMETERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DSAParameters"); +pub const BCRYPT_DSA_PARAMETERS_MAGIC: u32 = 1297109828u32; +pub const BCRYPT_DSA_PARAMETERS_MAGIC_V2: u32 = 843927620u32; +pub const BCRYPT_DSA_PRIVATE_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DSAPRIVATEBLOB"); +pub const BCRYPT_DSA_PRIVATE_MAGIC: BCRYPT_DSA_MAGIC = 1448104772u32; +pub const BCRYPT_DSA_PRIVATE_MAGIC_V2: u32 = 844517444u32; +pub const BCRYPT_DSA_PUBLIC_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DSAPUBLICBLOB"); +pub const BCRYPT_DSA_PUBLIC_MAGIC: BCRYPT_DSA_MAGIC = 1112560452u32; +pub const BCRYPT_DSA_PUBLIC_MAGIC_V2: u32 = 843206724u32; +pub const BCRYPT_ECCFULLPRIVATE_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECCFULLPRIVATEBLOB"); +pub const BCRYPT_ECCFULLPUBLIC_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECCFULLPUBLICBLOB"); +pub const BCRYPT_ECCPRIVATE_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECCPRIVATEBLOB"); +pub const BCRYPT_ECCPUBLIC_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECCPUBLICBLOB"); +pub const BCRYPT_ECC_CURVE_25519: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("curve25519"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP160R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP160r1"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP160T1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP160t1"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP192R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP192r1"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP192T1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP192t1"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP224R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP224r1"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP224T1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP224t1"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP256R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP256r1"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP256T1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP256t1"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP320R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP320r1"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP320T1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP320t1"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP384R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP384r1"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP384T1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP384t1"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP512R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP512r1"); +pub const BCRYPT_ECC_CURVE_BRAINPOOLP512T1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("brainpoolP512t1"); +pub const BCRYPT_ECC_CURVE_EC192WAPI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ec192wapi"); +pub const BCRYPT_ECC_CURVE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECCCurveName"); +pub const BCRYPT_ECC_CURVE_NAME_LIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECCCurveNameList"); +pub const BCRYPT_ECC_CURVE_NISTP192: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("nistP192"); +pub const BCRYPT_ECC_CURVE_NISTP224: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("nistP224"); +pub const BCRYPT_ECC_CURVE_NISTP256: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("nistP256"); +pub const BCRYPT_ECC_CURVE_NISTP384: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("nistP384"); +pub const BCRYPT_ECC_CURVE_NISTP521: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("nistP521"); +pub const BCRYPT_ECC_CURVE_NUMSP256T1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("numsP256t1"); +pub const BCRYPT_ECC_CURVE_NUMSP384T1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("numsP384t1"); +pub const BCRYPT_ECC_CURVE_NUMSP512T1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("numsP512t1"); +pub const BCRYPT_ECC_CURVE_SECP160K1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("secP160k1"); +pub const BCRYPT_ECC_CURVE_SECP160R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("secP160r1"); +pub const BCRYPT_ECC_CURVE_SECP160R2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("secP160r2"); +pub const BCRYPT_ECC_CURVE_SECP192K1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("secP192k1"); +pub const BCRYPT_ECC_CURVE_SECP192R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("secP192r1"); +pub const BCRYPT_ECC_CURVE_SECP224K1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("secP224k1"); +pub const BCRYPT_ECC_CURVE_SECP224R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("secP224r1"); +pub const BCRYPT_ECC_CURVE_SECP256K1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("secP256k1"); +pub const BCRYPT_ECC_CURVE_SECP256R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("secP256r1"); +pub const BCRYPT_ECC_CURVE_SECP384R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("secP384r1"); +pub const BCRYPT_ECC_CURVE_SECP521R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("secP521r1"); +pub const BCRYPT_ECC_CURVE_WTLS12: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("wtls12"); +pub const BCRYPT_ECC_CURVE_WTLS7: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("wtls7"); +pub const BCRYPT_ECC_CURVE_WTLS9: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("wtls9"); +pub const BCRYPT_ECC_CURVE_X962P192V1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("x962P192v1"); +pub const BCRYPT_ECC_CURVE_X962P192V2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("x962P192v2"); +pub const BCRYPT_ECC_CURVE_X962P192V3: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("x962P192v3"); +pub const BCRYPT_ECC_CURVE_X962P239V1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("x962P239v1"); +pub const BCRYPT_ECC_CURVE_X962P239V2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("x962P239v2"); +pub const BCRYPT_ECC_CURVE_X962P239V3: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("x962P239v3"); +pub const BCRYPT_ECC_CURVE_X962P256V1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("x962P256v1"); +pub const BCRYPT_ECC_FULLKEY_BLOB_V1: u32 = 1u32; +pub const BCRYPT_ECC_PARAMETERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECCParameters"); +pub const BCRYPT_ECC_PARAMETERS_MAGIC: u32 = 1346585413u32; +pub const BCRYPT_ECC_PRIME_MONTGOMERY_CURVE: ECC_CURVE_TYPE_ENUM = 3i32; +pub const BCRYPT_ECC_PRIME_SHORT_WEIERSTRASS_CURVE: ECC_CURVE_TYPE_ENUM = 1i32; +pub const BCRYPT_ECC_PRIME_TWISTED_EDWARDS_CURVE: ECC_CURVE_TYPE_ENUM = 2i32; +pub const BCRYPT_ECDH_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDH"); +pub const BCRYPT_ECDH_ALG_HANDLE: BCRYPT_ALG_HANDLE = 657u32 as _; +pub const BCRYPT_ECDH_P256_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDH_P256"); +pub const BCRYPT_ECDH_P256_ALG_HANDLE: BCRYPT_ALG_HANDLE = 673u32 as _; +pub const BCRYPT_ECDH_P384_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDH_P384"); +pub const BCRYPT_ECDH_P384_ALG_HANDLE: BCRYPT_ALG_HANDLE = 689u32 as _; +pub const BCRYPT_ECDH_P521_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDH_P521"); +pub const BCRYPT_ECDH_P521_ALG_HANDLE: BCRYPT_ALG_HANDLE = 705u32 as _; +pub const BCRYPT_ECDH_PRIVATE_GENERIC_MAGIC: u32 = 1447772997u32; +pub const BCRYPT_ECDH_PRIVATE_P256_MAGIC: u32 = 843793221u32; +pub const BCRYPT_ECDH_PRIVATE_P384_MAGIC: u32 = 877347653u32; +pub const BCRYPT_ECDH_PRIVATE_P521_MAGIC: u32 = 910902085u32; +pub const BCRYPT_ECDH_PUBLIC_GENERIC_MAGIC: u32 = 1347109701u32; +pub const BCRYPT_ECDH_PUBLIC_P256_MAGIC: u32 = 827016005u32; +pub const BCRYPT_ECDH_PUBLIC_P384_MAGIC: u32 = 860570437u32; +pub const BCRYPT_ECDH_PUBLIC_P521_MAGIC: u32 = 894124869u32; +pub const BCRYPT_ECDSA_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDSA"); +pub const BCRYPT_ECDSA_ALG_HANDLE: BCRYPT_ALG_HANDLE = 241u32 as _; +pub const BCRYPT_ECDSA_P256_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDSA_P256"); +pub const BCRYPT_ECDSA_P256_ALG_HANDLE: BCRYPT_ALG_HANDLE = 737u32 as _; +pub const BCRYPT_ECDSA_P384_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDSA_P384"); +pub const BCRYPT_ECDSA_P384_ALG_HANDLE: BCRYPT_ALG_HANDLE = 753u32 as _; +pub const BCRYPT_ECDSA_P521_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDSA_P521"); +pub const BCRYPT_ECDSA_P521_ALG_HANDLE: BCRYPT_ALG_HANDLE = 769u32 as _; +pub const BCRYPT_ECDSA_PRIVATE_GENERIC_MAGIC: u32 = 1447314245u32; +pub const BCRYPT_ECDSA_PRIVATE_P256_MAGIC: u32 = 844317509u32; +pub const BCRYPT_ECDSA_PRIVATE_P384_MAGIC: u32 = 877871941u32; +pub const BCRYPT_ECDSA_PRIVATE_P521_MAGIC: u32 = 911426373u32; +pub const BCRYPT_ECDSA_PUBLIC_GENERIC_MAGIC: u32 = 1346650949u32; +pub const BCRYPT_ECDSA_PUBLIC_P256_MAGIC: u32 = 827540293u32; +pub const BCRYPT_ECDSA_PUBLIC_P384_MAGIC: u32 = 861094725u32; +pub const BCRYPT_ECDSA_PUBLIC_P521_MAGIC: u32 = 894649157u32; +pub const BCRYPT_EFFECTIVE_KEY_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EffectiveKeyLength"); +pub const BCRYPT_ENABLE_INCOMPATIBLE_FIPS_CHECKS: u32 = 256u32; +pub const BCRYPT_EXTENDED_KEYSIZE: u32 = 128u32; +pub const BCRYPT_GENERATE_IV: u32 = 32u32; +pub const BCRYPT_GLOBAL_PARAMETERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SecretAgreementParam"); +pub const BCRYPT_HASH_BLOCK_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HashBlockLength"); +pub const BCRYPT_HASH_INTERFACE: BCRYPT_INTERFACE = 2u32; +pub const BCRYPT_HASH_INTERFACE_MAJORVERSION_2: u32 = 2u32; +pub const BCRYPT_HASH_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HashDigestLength"); +pub const BCRYPT_HASH_OID_LIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HashOIDList"); +pub const BCRYPT_HASH_OPERATION: BCRYPT_OPERATION = 2u32; +pub const BCRYPT_HASH_OPERATION_FINISH_HASH: BCRYPT_HASH_OPERATION_TYPE = 2i32; +pub const BCRYPT_HASH_OPERATION_HASH_DATA: BCRYPT_HASH_OPERATION_TYPE = 1i32; +pub const BCRYPT_HASH_REUSABLE_FLAG: BCRYPT_OPEN_ALGORITHM_PROVIDER_FLAGS = 32u32; +pub const BCRYPT_HKDF_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HKDF"); +pub const BCRYPT_HKDF_ALG_HANDLE: BCRYPT_ALG_HANDLE = 913u32 as _; +pub const BCRYPT_HKDF_HASH_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HkdfHashAlgorithm"); +pub const BCRYPT_HKDF_PRK_AND_FINALIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HkdfPrkAndFinalize"); +pub const BCRYPT_HKDF_SALT_AND_FINALIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HkdfSaltAndFinalize"); +pub const BCRYPT_HMAC_MD2_ALG_HANDLE: BCRYPT_ALG_HANDLE = 289u32 as _; +pub const BCRYPT_HMAC_MD4_ALG_HANDLE: BCRYPT_ALG_HANDLE = 305u32 as _; +pub const BCRYPT_HMAC_MD5_ALG_HANDLE: BCRYPT_ALG_HANDLE = 145u32 as _; +pub const BCRYPT_HMAC_SHA1_ALG_HANDLE: BCRYPT_ALG_HANDLE = 161u32 as _; +pub const BCRYPT_HMAC_SHA256_ALG_HANDLE: BCRYPT_ALG_HANDLE = 177u32 as _; +pub const BCRYPT_HMAC_SHA384_ALG_HANDLE: BCRYPT_ALG_HANDLE = 193u32 as _; +pub const BCRYPT_HMAC_SHA512_ALG_HANDLE: BCRYPT_ALG_HANDLE = 209u32 as _; +pub const BCRYPT_INITIALIZATION_VECTOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IV"); +pub const BCRYPT_IS_IFX_TPM_WEAK_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsIfxTpmWeakKey"); +pub const BCRYPT_IS_KEYED_HASH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsKeyedHash"); +pub const BCRYPT_IS_REUSABLE_HASH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsReusableHash"); +pub const BCRYPT_KDF_HASH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HASH"); +pub const BCRYPT_KDF_HKDF: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HKDF"); +pub const BCRYPT_KDF_HMAC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HMAC"); +pub const BCRYPT_KDF_RAW_SECRET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TRUNCATE"); +pub const BCRYPT_KDF_SP80056A_CONCAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SP800_56A_CONCAT"); +pub const BCRYPT_KDF_TLS_PRF: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TLS_PRF"); +pub const BCRYPT_KEY_DATA_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyDataBlob"); +pub const BCRYPT_KEY_DATA_BLOB_MAGIC: u32 = 1296188491u32; +pub const BCRYPT_KEY_DATA_BLOB_VERSION1: u32 = 1u32; +pub const BCRYPT_KEY_DERIVATION_INTERFACE: u32 = 7u32; +pub const BCRYPT_KEY_DERIVATION_OPERATION: u32 = 64u32; +pub const BCRYPT_KEY_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyLength"); +pub const BCRYPT_KEY_LENGTHS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyLengths"); +pub const BCRYPT_KEY_OBJECT_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyObjectLength"); +pub const BCRYPT_KEY_STRENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KeyStrength"); +pub const BCRYPT_KEY_VALIDATION_RANGE: u32 = 16u32; +pub const BCRYPT_KEY_VALIDATION_RANGE_AND_ORDER: u32 = 24u32; +pub const BCRYPT_KEY_VALIDATION_REGENERATE: u32 = 32u32; +pub const BCRYPT_MD2_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MD2"); +pub const BCRYPT_MD2_ALG_HANDLE: BCRYPT_ALG_HANDLE = 1u32 as _; +pub const BCRYPT_MD4_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MD4"); +pub const BCRYPT_MD4_ALG_HANDLE: BCRYPT_ALG_HANDLE = 17u32 as _; +pub const BCRYPT_MD5_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MD5"); +pub const BCRYPT_MD5_ALG_HANDLE: BCRYPT_ALG_HANDLE = 33u32 as _; +pub const BCRYPT_MESSAGE_BLOCK_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MessageBlockLength"); +pub const BCRYPT_MULTI_FLAG: u32 = 64u32; +pub const BCRYPT_MULTI_OBJECT_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MultiObjectLength"); +pub const BCRYPT_NO_CURVE_GENERATION_ALG_ID: ECC_CURVE_ALG_ID_ENUM = 0i32; +pub const BCRYPT_NO_KEY_VALIDATION: u32 = 8u32; +pub const BCRYPT_OBJECT_ALIGNMENT: u32 = 16u32; +pub const BCRYPT_OBJECT_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ObjectLength"); +pub const BCRYPT_OPAQUE_KEY_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OpaqueKeyBlob"); +pub const BCRYPT_OPERATION_TYPE_HASH: BCRYPT_MULTI_OPERATION_TYPE = 1i32; +pub const BCRYPT_PADDING_SCHEMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PaddingSchemes"); +pub const BCRYPT_PAD_NONE: BCRYPT_FLAGS = 1u32; +pub const BCRYPT_PAD_OAEP: BCRYPT_FLAGS = 4u32; +pub const BCRYPT_PAD_PKCS1: BCRYPT_FLAGS = 2u32; +pub const BCRYPT_PAD_PKCS1_OPTIONAL_HASH_OID: u32 = 16u32; +pub const BCRYPT_PAD_PSS: BCRYPT_FLAGS = 8u32; +pub const BCRYPT_PBKDF2_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PBKDF2"); +pub const BCRYPT_PBKDF2_ALG_HANDLE: BCRYPT_ALG_HANDLE = 817u32 as _; +pub const BCRYPT_PCP_PLATFORM_TYPE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_PLATFORM_TYPE"); +pub const BCRYPT_PCP_PROVIDER_VERSION_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_PROVIDER_VERSION"); +pub const BCRYPT_PRIMITIVE_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrimitiveType"); +pub const BCRYPT_PRIVATE_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrivKeyVal"); +pub const BCRYPT_PRIVATE_KEY_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PRIVATEBLOB"); +pub const BCRYPT_PRIVATE_KEY_FLAG: u32 = 2u32; +pub const BCRYPT_PROVIDER_HANDLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProviderHandle"); +pub const BCRYPT_PROV_DISPATCH: BCRYPT_OPEN_ALGORITHM_PROVIDER_FLAGS = 1u32; +pub const BCRYPT_PUBLIC_KEY_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PUBLICBLOB"); +pub const BCRYPT_PUBLIC_KEY_FLAG: u32 = 1u32; +pub const BCRYPT_PUBLIC_KEY_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PublicKeyLength"); +pub const BCRYPT_RC2_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RC2"); +pub const BCRYPT_RC2_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 593u32 as _; +pub const BCRYPT_RC2_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 625u32 as _; +pub const BCRYPT_RC2_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 609u32 as _; +pub const BCRYPT_RC4_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RC4"); +pub const BCRYPT_RC4_ALG_HANDLE: BCRYPT_ALG_HANDLE = 113u32 as _; +pub const BCRYPT_RNG_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RNG"); +pub const BCRYPT_RNG_ALG_HANDLE: BCRYPT_ALG_HANDLE = 129u32 as _; +pub const BCRYPT_RNG_DUAL_EC_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DUALECRNG"); +pub const BCRYPT_RNG_FIPS186_DSA_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FIPS186DSARNG"); +pub const BCRYPT_RNG_INTERFACE: BCRYPT_INTERFACE = 6u32; +pub const BCRYPT_RNG_OPERATION: BCRYPT_OPERATION = 32u32; +pub const BCRYPT_RNG_USE_ENTROPY_IN_BUFFER: BCRYPTGENRANDOM_FLAGS = 1u32; +pub const BCRYPT_RSAFULLPRIVATE_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RSAFULLPRIVATEBLOB"); +pub const BCRYPT_RSAFULLPRIVATE_MAGIC: BCRYPT_RSAKEY_BLOB_MAGIC = 859919186u32; +pub const BCRYPT_RSAPRIVATE_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RSAPRIVATEBLOB"); +pub const BCRYPT_RSAPRIVATE_MAGIC: BCRYPT_RSAKEY_BLOB_MAGIC = 843141970u32; +pub const BCRYPT_RSAPUBLIC_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RSAPUBLICBLOB"); +pub const BCRYPT_RSAPUBLIC_MAGIC: BCRYPT_RSAKEY_BLOB_MAGIC = 826364754u32; +pub const BCRYPT_RSA_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RSA"); +pub const BCRYPT_RSA_ALG_HANDLE: BCRYPT_ALG_HANDLE = 225u32 as _; +pub const BCRYPT_RSA_SIGN_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RSA_SIGN"); +pub const BCRYPT_RSA_SIGN_ALG_HANDLE: BCRYPT_ALG_HANDLE = 785u32 as _; +pub const BCRYPT_SECRET_AGREEMENT_INTERFACE: BCRYPT_INTERFACE = 4u32; +pub const BCRYPT_SECRET_AGREEMENT_OPERATION: BCRYPT_OPERATION = 8u32; +pub const BCRYPT_SHA1_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHA1"); +pub const BCRYPT_SHA1_ALG_HANDLE: BCRYPT_ALG_HANDLE = 49u32 as _; +pub const BCRYPT_SHA256_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHA256"); +pub const BCRYPT_SHA256_ALG_HANDLE: BCRYPT_ALG_HANDLE = 65u32 as _; +pub const BCRYPT_SHA384_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHA384"); +pub const BCRYPT_SHA384_ALG_HANDLE: BCRYPT_ALG_HANDLE = 81u32 as _; +pub const BCRYPT_SHA512_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHA512"); +pub const BCRYPT_SHA512_ALG_HANDLE: BCRYPT_ALG_HANDLE = 97u32 as _; +pub const BCRYPT_SIGNATURE_INTERFACE: BCRYPT_INTERFACE = 5u32; +pub const BCRYPT_SIGNATURE_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SignatureLength"); +pub const BCRYPT_SIGNATURE_OPERATION: BCRYPT_OPERATION = 16u32; +pub const BCRYPT_SP800108_CTR_HMAC_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SP800_108_CTR_HMAC"); +pub const BCRYPT_SP800108_CTR_HMAC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 833u32 as _; +pub const BCRYPT_SP80056A_CONCAT_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SP800_56A_CONCAT"); +pub const BCRYPT_SP80056A_CONCAT_ALG_HANDLE: BCRYPT_ALG_HANDLE = 849u32 as _; +pub const BCRYPT_SUPPORTED_PAD_OAEP: u32 = 8u32; +pub const BCRYPT_SUPPORTED_PAD_PKCS1_ENC: u32 = 2u32; +pub const BCRYPT_SUPPORTED_PAD_PKCS1_SIG: u32 = 4u32; +pub const BCRYPT_SUPPORTED_PAD_PSS: u32 = 16u32; +pub const BCRYPT_SUPPORTED_PAD_ROUTER: u32 = 1u32; +pub const BCRYPT_TLS1_1_KDF_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TLS1_1_KDF"); +pub const BCRYPT_TLS1_1_KDF_ALG_HANDLE: BCRYPT_ALG_HANDLE = 865u32 as _; +pub const BCRYPT_TLS1_2_KDF_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TLS1_2_KDF"); +pub const BCRYPT_TLS1_2_KDF_ALG_HANDLE: BCRYPT_ALG_HANDLE = 881u32 as _; +pub const BCRYPT_TLS_CBC_HMAC_VERIFY_FLAG: u32 = 4u32; +pub const BCRYPT_USE_SYSTEM_PREFERRED_RNG: BCRYPTGENRANDOM_FLAGS = 2u32; +pub const BCRYPT_XTS_AES_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("XTS-AES"); +pub const BCRYPT_XTS_AES_ALG_HANDLE: BCRYPT_ALG_HANDLE = 897u32 as _; +pub const CALG_3DES: ALG_ID = 26115u32; +pub const CALG_3DES_112: ALG_ID = 26121u32; +pub const CALG_AES: ALG_ID = 26129u32; +pub const CALG_AES_128: ALG_ID = 26126u32; +pub const CALG_AES_192: ALG_ID = 26127u32; +pub const CALG_AES_256: ALG_ID = 26128u32; +pub const CALG_AGREEDKEY_ANY: ALG_ID = 43523u32; +pub const CALG_CYLINK_MEK: ALG_ID = 26124u32; +pub const CALG_DES: ALG_ID = 26113u32; +pub const CALG_DESX: ALG_ID = 26116u32; +pub const CALG_DH_EPHEM: ALG_ID = 43522u32; +pub const CALG_DH_SF: ALG_ID = 43521u32; +pub const CALG_DSS_SIGN: ALG_ID = 8704u32; +pub const CALG_ECDH: ALG_ID = 43525u32; +pub const CALG_ECDH_EPHEM: ALG_ID = 44550u32; +pub const CALG_ECDSA: ALG_ID = 8707u32; +pub const CALG_ECMQV: ALG_ID = 40961u32; +pub const CALG_HASH_REPLACE_OWF: ALG_ID = 32779u32; +pub const CALG_HMAC: ALG_ID = 32777u32; +pub const CALG_HUGHES_MD5: ALG_ID = 40963u32; +pub const CALG_KEA_KEYX: ALG_ID = 43524u32; +pub const CALG_MAC: ALG_ID = 32773u32; +pub const CALG_MD2: ALG_ID = 32769u32; +pub const CALG_MD4: ALG_ID = 32770u32; +pub const CALG_MD5: ALG_ID = 32771u32; +pub const CALG_NO_SIGN: ALG_ID = 8192u32; +pub const CALG_NULLCIPHER: ALG_ID = 24576u32; +pub const CALG_OID_INFO_CNG_ONLY: u32 = 4294967295u32; +pub const CALG_OID_INFO_PARAMETERS: u32 = 4294967294u32; +pub const CALG_PCT1_MASTER: ALG_ID = 19460u32; +pub const CALG_RC2: ALG_ID = 26114u32; +pub const CALG_RC4: ALG_ID = 26625u32; +pub const CALG_RC5: ALG_ID = 26125u32; +pub const CALG_RSA_KEYX: ALG_ID = 41984u32; +pub const CALG_RSA_SIGN: ALG_ID = 9216u32; +pub const CALG_SCHANNEL_ENC_KEY: ALG_ID = 19463u32; +pub const CALG_SCHANNEL_MAC_KEY: ALG_ID = 19459u32; +pub const CALG_SCHANNEL_MASTER_HASH: ALG_ID = 19458u32; +pub const CALG_SEAL: ALG_ID = 26626u32; +pub const CALG_SHA: ALG_ID = 32772u32; +pub const CALG_SHA1: ALG_ID = 32772u32; +pub const CALG_SHA_256: ALG_ID = 32780u32; +pub const CALG_SHA_384: ALG_ID = 32781u32; +pub const CALG_SHA_512: ALG_ID = 32782u32; +pub const CALG_SKIPJACK: ALG_ID = 26122u32; +pub const CALG_SSL2_MASTER: ALG_ID = 19461u32; +pub const CALG_SSL3_MASTER: ALG_ID = 19457u32; +pub const CALG_SSL3_SHAMD5: ALG_ID = 32776u32; +pub const CALG_TEK: ALG_ID = 26123u32; +pub const CALG_THIRDPARTY_CIPHER: ALG_ID = 28672u32; +pub const CALG_THIRDPARTY_HASH: ALG_ID = 36864u32; +pub const CALG_THIRDPARTY_KEY_EXCHANGE: ALG_ID = 45056u32; +pub const CALG_THIRDPARTY_SIGNATURE: ALG_ID = 12288u32; +pub const CALG_TLS1PRF: ALG_ID = 32778u32; +pub const CALG_TLS1_MASTER: ALG_ID = 19462u32; +pub const CCertSrvSetup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x961f180f_f55c_413d_a9b3_7d2af4d8e42f); +pub const CCertSrvSetupKeyInformation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38373906_5433_4633_b0fb_29b7e78262e1); +pub const CCertificateEnrollmentPolicyServerSetup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xafe2fa32_41b1_459d_a5de_49add8a72182); +pub const CCertificateEnrollmentServerSetup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9902f3bc_88af_4cf8_ae62_7140531552b6); +pub const CERT_ACCESS_STATE_GP_SYSTEM_STORE_FLAG: u32 = 8u32; +pub const CERT_ACCESS_STATE_LM_SYSTEM_STORE_FLAG: u32 = 4u32; +pub const CERT_ACCESS_STATE_PROP_ID: u32 = 14u32; +pub const CERT_ACCESS_STATE_SHARED_USER_FLAG: u32 = 16u32; +pub const CERT_ACCESS_STATE_SYSTEM_STORE_FLAG: u32 = 2u32; +pub const CERT_ACCESS_STATE_WRITE_PERSIST_FLAG: u32 = 1u32; +pub const CERT_AIA_URL_RETRIEVED_PROP_ID: u32 = 67u32; +pub const CERT_ALT_NAME_EDI_PARTY_NAME: u32 = 6u32; +pub const CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK: u32 = 255u32; +pub const CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT: u32 = 16u32; +pub const CERT_ALT_NAME_VALUE_ERR_INDEX_MASK: u32 = 65535u32; +pub const CERT_ALT_NAME_VALUE_ERR_INDEX_SHIFT: u32 = 0u32; +pub const CERT_ALT_NAME_X400_ADDRESS: u32 = 4u32; +pub const CERT_ARCHIVED_KEY_HASH_PROP_ID: u32 = 65u32; +pub const CERT_ARCHIVED_PROP_ID: u32 = 19u32; +pub const CERT_AUTHORITY_INFO_ACCESS_PROP_ID: u32 = 68u32; +pub const CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_PARTIAL_CHAIN_LOGGING_FLAG: u32 = 2u32; +pub const CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_UNTRUSTED_ROOT_LOGGING_FLAG: u32 = 1u32; +pub const CERT_AUTH_ROOT_AUTO_UPDATE_ENCODED_CTL_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EncodedCtl"); +pub const CERT_AUTH_ROOT_AUTO_UPDATE_FLAGS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Flags"); +pub const CERT_AUTH_ROOT_AUTO_UPDATE_LAST_SYNC_TIME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastSyncTime"); +pub const CERT_AUTH_ROOT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RootDirUrl"); +pub const CERT_AUTH_ROOT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SyncDeltaTime"); +pub const CERT_AUTH_ROOT_CAB_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("authrootstl.cab"); +pub const CERT_AUTH_ROOT_CERT_EXT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".crt"); +pub const CERT_AUTH_ROOT_CTL_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("authroot.stl"); +pub const CERT_AUTH_ROOT_CTL_FILENAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("authroot.stl"); +pub const CERT_AUTH_ROOT_SEQ_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("authrootseq.txt"); +pub const CERT_AUTH_ROOT_SHA256_HASH_PROP_ID: u32 = 98u32; +pub const CERT_AUTO_ENROLL_PROP_ID: u32 = 21u32; +pub const CERT_AUTO_ENROLL_RETRY_PROP_ID: u32 = 66u32; +pub const CERT_AUTO_UPDATE_DISABLE_RANDOM_QUERY_STRING_FLAG: u32 = 4u32; +pub const CERT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RootDirUrl"); +pub const CERT_AUTO_UPDATE_SYNC_FROM_DIR_URL_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SyncFromDirUrl"); +pub const CERT_BACKED_UP_PROP_ID: u32 = 69u32; +pub const CERT_BIOMETRIC_OID_DATA_CHOICE: CERT_BIOMETRIC_DATA_TYPE = 2u32; +pub const CERT_BIOMETRIC_PICTURE_TYPE: u32 = 0u32; +pub const CERT_BIOMETRIC_PREDEFINED_DATA_CHOICE: CERT_BIOMETRIC_DATA_TYPE = 1u32; +pub const CERT_BIOMETRIC_SIGNATURE_TYPE: u32 = 1u32; +pub const CERT_BUNDLE_CERTIFICATE: u32 = 0u32; +pub const CERT_BUNDLE_CRL: u32 = 1u32; +pub const CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG: u32 = 2u32; +pub const CERT_CA_DISABLE_CRL_PROP_ID: u32 = 82u32; +pub const CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID: u32 = 81u32; +pub const CERT_CA_SUBJECT_FLAG: u32 = 128u32; +pub const CERT_CEP_PROP_ID: u32 = 87u32; +pub const CERT_CHAIN_AUTO_CURRENT_USER: u32 = 1u32; +pub const CERT_CHAIN_AUTO_FLAGS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoFlags"); +pub const CERT_CHAIN_AUTO_FLUSH_DISABLE_FLAG: u32 = 1u32; +pub const CERT_CHAIN_AUTO_FLUSH_FIRST_DELTA_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoFlushFirstDeltaSeconds"); +pub const CERT_CHAIN_AUTO_FLUSH_NEXT_DELTA_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoFlushNextDeltaSeconds"); +pub const CERT_CHAIN_AUTO_HPKP_RULE_INFO: u32 = 8u32; +pub const CERT_CHAIN_AUTO_IMPERSONATED: u32 = 3u32; +pub const CERT_CHAIN_AUTO_LOCAL_MACHINE: u32 = 2u32; +pub const CERT_CHAIN_AUTO_LOG_CREATE_FLAG: u32 = 2u32; +pub const CERT_CHAIN_AUTO_LOG_FILE_NAME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoLogFileName"); +pub const CERT_CHAIN_AUTO_LOG_FLUSH_FLAG: u32 = 8u32; +pub const CERT_CHAIN_AUTO_LOG_FREE_FLAG: u32 = 4u32; +pub const CERT_CHAIN_AUTO_NETWORK_INFO: u32 = 6u32; +pub const CERT_CHAIN_AUTO_PINRULE_INFO: u32 = 5u32; +pub const CERT_CHAIN_AUTO_PROCESS_INFO: u32 = 4u32; +pub const CERT_CHAIN_AUTO_SERIAL_LOCAL_MACHINE: u32 = 7u32; +pub const CERT_CHAIN_CACHE_END_CERT: u32 = 1u32; +pub const CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL: u32 = 4u32; +pub const CERT_CHAIN_CACHE_RESYNC_FILETIME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChainCacheResyncFiletime"); +pub const CERT_CHAIN_CONFIG_REGPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CertDllCreateCertificateChainEngine\\Config"); +pub const CERT_CHAIN_CRL_VALIDITY_EXT_PERIOD_HOURS_DEFAULT: u32 = 12u32; +pub const CERT_CHAIN_CRL_VALIDITY_EXT_PERIOD_HOURS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CRLValidityExtensionPeriod"); +pub const CERT_CHAIN_CROSS_CERT_DOWNLOAD_INTERVAL_HOURS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CrossCertDownloadIntervalHours"); +pub const CERT_CHAIN_DEFAULT_CONFIG_SUBDIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Default"); +pub const CERT_CHAIN_DISABLE_AIA: u32 = 8192u32; +pub const CERT_CHAIN_DISABLE_AIA_URL_RETRIEVAL_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableAIAUrlRetrieval"); +pub const CERT_CHAIN_DISABLE_ALL_EKU_WEAK_FLAG: u32 = 65536u32; +pub const CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE: u32 = 256u32; +pub const CERT_CHAIN_DISABLE_AUTO_FLUSH_PROCESS_NAME_LIST_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableAutoFlushProcessNameList"); +pub const CERT_CHAIN_DISABLE_CA_NAME_CONSTRAINTS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableCANameConstraints"); +pub const CERT_CHAIN_DISABLE_CODE_SIGNING_WEAK_FLAG: u32 = 4194304u32; +pub const CERT_CHAIN_DISABLE_ECC_PARA_FLAG: u32 = 16u32; +pub const CERT_CHAIN_DISABLE_FILE_HASH_WEAK_FLAG: u32 = 4096u32; +pub const CERT_CHAIN_DISABLE_MANDATORY_BASIC_CONSTRAINTS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableMandatoryBasicConstraints"); +pub const CERT_CHAIN_DISABLE_MD2_MD4: u32 = 4096u32; +pub const CERT_CHAIN_DISABLE_MOTW_CODE_SIGNING_WEAK_FLAG: u32 = 8388608u32; +pub const CERT_CHAIN_DISABLE_MOTW_FILE_HASH_WEAK_FLAG: u32 = 8192u32; +pub const CERT_CHAIN_DISABLE_MOTW_TIMESTAMP_HASH_WEAK_FLAG: u32 = 32768u32; +pub const CERT_CHAIN_DISABLE_MOTW_TIMESTAMP_WEAK_FLAG: u32 = 134217728u32; +pub const CERT_CHAIN_DISABLE_MY_PEER_TRUST: u32 = 2048u32; +pub const CERT_CHAIN_DISABLE_OPT_IN_SERVER_AUTH_WEAK_FLAG: u32 = 262144u32; +pub const CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING: u32 = 64u32; +pub const CERT_CHAIN_DISABLE_SERIAL_CHAIN_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableSerialChain"); +pub const CERT_CHAIN_DISABLE_SERVER_AUTH_WEAK_FLAG: u32 = 1048576u32; +pub const CERT_CHAIN_DISABLE_SYNC_WITH_SSL_TIME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableSyncWithSslTime"); +pub const CERT_CHAIN_DISABLE_TIMESTAMP_HASH_WEAK_FLAG: u32 = 16384u32; +pub const CERT_CHAIN_DISABLE_TIMESTAMP_WEAK_FLAG: u32 = 67108864u32; +pub const CERT_CHAIN_DISABLE_UNSUPPORTED_CRITICAL_EXTENSIONS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableUnsupportedCriticalExtensions"); +pub const CERT_CHAIN_ENABLE_ALL_EKU_HYGIENE_FLAG: u32 = 131072u32; +pub const CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE: u32 = 16u32; +pub const CERT_CHAIN_ENABLE_CODE_SIGNING_HYGIENE_FLAG: u32 = 16777216u32; +pub const CERT_CHAIN_ENABLE_DISALLOWED_CA: u32 = 131072u32; +pub const CERT_CHAIN_ENABLE_MD2_MD4_FLAG: u32 = 1u32; +pub const CERT_CHAIN_ENABLE_MOTW_CODE_SIGNING_HYGIENE_FLAG: u32 = 33554432u32; +pub const CERT_CHAIN_ENABLE_MOTW_TIMESTAMP_HYGIENE_FLAG: u32 = 536870912u32; +pub const CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG: u32 = 8u32; +pub const CERT_CHAIN_ENABLE_PEER_TRUST: u32 = 1024u32; +pub const CERT_CHAIN_ENABLE_SERVER_AUTH_HYGIENE_FLAG: u32 = 2097152u32; +pub const CERT_CHAIN_ENABLE_SHARE_STORE: u32 = 32u32; +pub const CERT_CHAIN_ENABLE_TIMESTAMP_HYGIENE_FLAG: u32 = 268435456u32; +pub const CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG: u32 = 4u32; +pub const CERT_CHAIN_ENABLE_WEAK_RSA_ROOT_FLAG: u32 = 2u32; +pub const CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG: u32 = 2147483648u32; +pub const CERT_CHAIN_ENABLE_WEAK_SIGNATURE_FLAGS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableWeakSignatureFlags"); +pub const CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG: u32 = 1u32; +pub const CERT_CHAIN_FIND_BY_ISSUER: u32 = 1u32; +pub const CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG: CERT_FIND_CHAIN_IN_STORE_FLAGS = 32768u32; +pub const CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG: CERT_FIND_CHAIN_IN_STORE_FLAGS = 4u32; +pub const CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG: CERT_FIND_CHAIN_IN_STORE_FLAGS = 1u32; +pub const CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG: CERT_FIND_CHAIN_IN_STORE_FLAGS = 2u32; +pub const CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG: CERT_FIND_CHAIN_IN_STORE_FLAGS = 8u32; +pub const CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG: CERT_FIND_CHAIN_IN_STORE_FLAGS = 16384u32; +pub const CERT_CHAIN_HAS_MOTW: u32 = 16384u32; +pub const CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_DEFAULT: u32 = 5u32; +pub const CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxAIAUrlCountInCert"); +pub const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_DEFAULT: u32 = 100000u32; +pub const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxAIAUrlRetrievalByteCount"); +pub const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_DEFAULT: u32 = 10u32; +pub const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxAIAUrlRetrievalCertCount"); +pub const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_DEFAULT: u32 = 3u32; +pub const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxAIAUrlRetrievalCountPerChain"); +pub const CERT_CHAIN_MAX_SSL_TIME_UPDATED_EVENT_COUNT_DEFAULT: u32 = 5u32; +pub const CERT_CHAIN_MAX_SSL_TIME_UPDATED_EVENT_COUNT_DISABLE: u32 = 4294967295u32; +pub const CERT_CHAIN_MAX_SSL_TIME_UPDATED_EVENT_COUNT_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxSslTimeUpdatedEventCount"); +pub const CERT_CHAIN_MAX_URL_RETRIEVAL_BYTE_COUNT_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxUrlRetrievalByteCount"); +pub const CERT_CHAIN_MIN_PUB_KEY_BIT_LENGTH_DISABLE: u32 = 4294967295u32; +pub const CERT_CHAIN_MIN_RSA_PUB_KEY_BIT_LENGTH_DEFAULT: u32 = 1023u32; +pub const CERT_CHAIN_MIN_RSA_PUB_KEY_BIT_LENGTH_DISABLE: u32 = 4294967295u32; +pub const CERT_CHAIN_MIN_RSA_PUB_KEY_BIT_LENGTH_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MinRsaPubKeyBitLength"); +pub const CERT_CHAIN_MOTW_IGNORE_AFTER_TIME_WEAK_FLAG: u32 = 1073741824u32; +pub const CERT_CHAIN_OCSP_VALIDITY_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OcspValiditySeconds"); +pub const CERT_CHAIN_ONLY_ADDITIONAL_AND_AUTH_ROOT: u32 = 32768u32; +pub const CERT_CHAIN_OPTIONS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Options"); +pub const CERT_CHAIN_OPTION_DISABLE_AIA_URL_RETRIEVAL: u32 = 2u32; +pub const CERT_CHAIN_OPTION_ENABLE_SIA_URL_RETRIEVAL: u32 = 4u32; +pub const CERT_CHAIN_OPT_IN_WEAK_FLAGS: u32 = 262144u32; +pub const CERT_CHAIN_OPT_IN_WEAK_SIGNATURE: u32 = 65536u32; +pub const CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG: CERT_CHAIN_POLICY_FLAGS = 32768u32; +pub const CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG: CERT_CHAIN_POLICY_FLAGS = 16u32; +pub const CERT_CHAIN_POLICY_AUTHENTICODE: ::windows_sys::core::PCSTR = 2i32 as _; +pub const CERT_CHAIN_POLICY_AUTHENTICODE_TS: ::windows_sys::core::PCSTR = 3i32 as _; +pub const CERT_CHAIN_POLICY_BASE: ::windows_sys::core::PCSTR = 1i32 as _; +pub const CERT_CHAIN_POLICY_BASIC_CONSTRAINTS: ::windows_sys::core::PCSTR = 5i32 as _; +pub const CERT_CHAIN_POLICY_EV: ::windows_sys::core::PCSTR = 8i32 as _; +pub const CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS: CERT_CHAIN_POLICY_FLAGS = 7u32; +pub const CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS: CERT_CHAIN_POLICY_FLAGS = 3840u32; +pub const CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG: CERT_CHAIN_POLICY_FLAGS = 1024u32; +pub const CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG: CERT_CHAIN_POLICY_FLAGS = 2u32; +pub const CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG: CERT_CHAIN_POLICY_FLAGS = 512u32; +pub const CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG: CERT_CHAIN_POLICY_FLAGS = 256u32; +pub const CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG: CERT_CHAIN_POLICY_FLAGS = 8u32; +pub const CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG: CERT_CHAIN_POLICY_FLAGS = 64u32; +pub const CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG: CERT_CHAIN_POLICY_FLAGS = 128u32; +pub const CERT_CHAIN_POLICY_IGNORE_NOT_SUPPORTED_CRITICAL_EXT_FLAG: CERT_CHAIN_POLICY_FLAGS = 8192u32; +pub const CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG: CERT_CHAIN_POLICY_FLAGS = 4u32; +pub const CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG: CERT_CHAIN_POLICY_FLAGS = 1u32; +pub const CERT_CHAIN_POLICY_IGNORE_PEER_TRUST_FLAG: CERT_CHAIN_POLICY_FLAGS = 4096u32; +pub const CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG: CERT_CHAIN_POLICY_FLAGS = 2048u32; +pub const CERT_CHAIN_POLICY_IGNORE_WEAK_SIGNATURE_FLAG: u32 = 134217728u32; +pub const CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG: CERT_CHAIN_POLICY_FLAGS = 32u32; +pub const CERT_CHAIN_POLICY_MICROSOFT_ROOT: ::windows_sys::core::PCSTR = 7i32 as _; +pub const CERT_CHAIN_POLICY_NT_AUTH: ::windows_sys::core::PCSTR = 6i32 as _; +pub const CERT_CHAIN_POLICY_SSL: ::windows_sys::core::PCSTR = 4i32 as _; +pub const CERT_CHAIN_POLICY_SSL_F12: ::windows_sys::core::PCSTR = 9i32 as _; +pub const CERT_CHAIN_POLICY_SSL_F12_ERROR_LEVEL: u32 = 2u32; +pub const CERT_CHAIN_POLICY_SSL_F12_NONE_CATEGORY: u32 = 0u32; +pub const CERT_CHAIN_POLICY_SSL_F12_ROOT_PROGRAM_CATEGORY: u32 = 2u32; +pub const CERT_CHAIN_POLICY_SSL_F12_SUCCESS_LEVEL: u32 = 0u32; +pub const CERT_CHAIN_POLICY_SSL_F12_WARNING_LEVEL: u32 = 1u32; +pub const CERT_CHAIN_POLICY_SSL_F12_WEAK_CRYPTO_CATEGORY: u32 = 1u32; +pub const CERT_CHAIN_POLICY_SSL_HPKP_HEADER: ::windows_sys::core::PCSTR = 10i32 as _; +pub const CERT_CHAIN_POLICY_SSL_KEY_PIN: ::windows_sys::core::PCSTR = 12i32 as _; +pub const CERT_CHAIN_POLICY_SSL_KEY_PIN_MISMATCH_ERROR: i32 = -2i32; +pub const CERT_CHAIN_POLICY_SSL_KEY_PIN_MISMATCH_WARNING: u32 = 2u32; +pub const CERT_CHAIN_POLICY_SSL_KEY_PIN_MITM_ERROR: i32 = -1i32; +pub const CERT_CHAIN_POLICY_SSL_KEY_PIN_MITM_WARNING: u32 = 1u32; +pub const CERT_CHAIN_POLICY_SSL_KEY_PIN_SUCCESS: u32 = 0u32; +pub const CERT_CHAIN_POLICY_THIRD_PARTY_ROOT: ::windows_sys::core::PCSTR = 11i32 as _; +pub const CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG: CERT_CHAIN_POLICY_FLAGS = 16384u32; +pub const CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS: u32 = 128u32; +pub const CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT: u32 = 134217728u32; +pub const CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY: u32 = 2147483648u32; +pub const CERT_CHAIN_REVOCATION_CHECK_CHAIN: u32 = 536870912u32; +pub const CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT: u32 = 1073741824u32; +pub const CERT_CHAIN_REVOCATION_CHECK_END_CERT: u32 = 268435456u32; +pub const CERT_CHAIN_REVOCATION_CHECK_OCSP_CERT: u32 = 67108864u32; +pub const CERT_CHAIN_REV_ACCUMULATIVE_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChainRevAccumulativeUrlRetrievalTimeoutMilliseconds"); +pub const CERT_CHAIN_SERIAL_CHAIN_LOG_FILE_NAME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SerialChainLogFileName"); +pub const CERT_CHAIN_SSL_HANDSHAKE_LOG_FILE_NAME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SslHandshakeLogFileName"); +pub const CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG: u32 = 1u32; +pub const CERT_CHAIN_THREAD_STORE_SYNC: u32 = 2u32; +pub const CERT_CHAIN_TIMESTAMP_TIME: u32 = 512u32; +pub const CERT_CHAIN_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChainUrlRetrievalTimeoutMilliseconds"); +pub const CERT_CHAIN_USE_LOCAL_MACHINE_STORE: u32 = 8u32; +pub const CERT_CHAIN_WEAK_AFTER_TIME_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AfterTime"); +pub const CERT_CHAIN_WEAK_ALL_CONFIG_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("All"); +pub const CERT_CHAIN_WEAK_FILE_HASH_AFTER_TIME_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileHashAfterTime"); +pub const CERT_CHAIN_WEAK_FLAGS_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Flags"); +pub const CERT_CHAIN_WEAK_HYGIENE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Hygiene"); +pub const CERT_CHAIN_WEAK_MIN_BIT_LENGTH_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MinBitLength"); +pub const CERT_CHAIN_WEAK_PREFIX_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Weak"); +pub const CERT_CHAIN_WEAK_RSA_PUB_KEY_TIME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WeakRsaPubKeyTime"); +pub const CERT_CHAIN_WEAK_SHA256_ALLOW_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Sha256Allow"); +pub const CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WeakSignatureLogDir"); +pub const CERT_CHAIN_WEAK_THIRD_PARTY_CONFIG_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ThirdParty"); +pub const CERT_CHAIN_WEAK_TIMESTAMP_HASH_AFTER_TIME_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TimestampHashAfterTime"); +pub const CERT_CLOSE_STORE_CHECK_FLAG: u32 = 2u32; +pub const CERT_CLOSE_STORE_FORCE_FLAG: u32 = 1u32; +pub const CERT_CLR_DELETE_KEY_PROP_ID: u32 = 125u32; +pub const CERT_COMPARE_ANY: u32 = 0u32; +pub const CERT_COMPARE_ATTR: u32 = 3u32; +pub const CERT_COMPARE_CERT_ID: u32 = 16u32; +pub const CERT_COMPARE_CROSS_CERT_DIST_POINTS: u32 = 17u32; +pub const CERT_COMPARE_CTL_USAGE: u32 = 10u32; +pub const CERT_COMPARE_ENHKEY_USAGE: u32 = 10u32; +pub const CERT_COMPARE_EXISTING: u32 = 13u32; +pub const CERT_COMPARE_HASH: u32 = 1u32; +pub const CERT_COMPARE_HASH_STR: u32 = 20u32; +pub const CERT_COMPARE_HAS_PRIVATE_KEY: u32 = 21u32; +pub const CERT_COMPARE_ISSUER_OF: u32 = 12u32; +pub const CERT_COMPARE_KEY_IDENTIFIER: u32 = 15u32; +pub const CERT_COMPARE_KEY_SPEC: u32 = 9u32; +pub const CERT_COMPARE_MASK: u32 = 65535u32; +pub const CERT_COMPARE_MD5_HASH: u32 = 4u32; +pub const CERT_COMPARE_NAME: u32 = 2u32; +pub const CERT_COMPARE_NAME_STR_A: u32 = 7u32; +pub const CERT_COMPARE_NAME_STR_W: u32 = 8u32; +pub const CERT_COMPARE_PROPERTY: u32 = 5u32; +pub const CERT_COMPARE_PUBKEY_MD5_HASH: u32 = 18u32; +pub const CERT_COMPARE_PUBLIC_KEY: u32 = 6u32; +pub const CERT_COMPARE_SHA1_HASH: u32 = 1u32; +pub const CERT_COMPARE_SHIFT: i32 = 16i32; +pub const CERT_COMPARE_SIGNATURE_HASH: u32 = 14u32; +pub const CERT_COMPARE_SUBJECT_CERT: u32 = 11u32; +pub const CERT_COMPARE_SUBJECT_INFO_ACCESS: u32 = 19u32; +pub const CERT_CONTEXT_REVOCATION_TYPE: u32 = 1u32; +pub const CERT_CREATE_CONTEXT_NOCOPY_FLAG: u32 = 1u32; +pub const CERT_CREATE_CONTEXT_NO_ENTRY_FLAG: u32 = 8u32; +pub const CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG: u32 = 4u32; +pub const CERT_CREATE_CONTEXT_SORTED_FLAG: u32 = 2u32; +pub const CERT_CREATE_SELFSIGN_NO_KEY_INFO: CERT_CREATE_SELFSIGN_FLAGS = 2u32; +pub const CERT_CREATE_SELFSIGN_NO_SIGN: CERT_CREATE_SELFSIGN_FLAGS = 1u32; +pub const CERT_CRL_SIGN_KEY_USAGE: u32 = 2u32; +pub const CERT_CROSS_CERT_DIST_POINTS_PROP_ID: u32 = 23u32; +pub const CERT_CTL_USAGE_PROP_ID: u32 = 9u32; +pub const CERT_DATA_ENCIPHERMENT_KEY_USAGE: u32 = 16u32; +pub const CERT_DATE_STAMP_PROP_ID: u32 = 27u32; +pub const CERT_DECIPHER_ONLY_KEY_USAGE: u32 = 128u32; +pub const CERT_DEFAULT_OID_PUBLIC_KEY_SIGN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113549.1.1.1"); +pub const CERT_DEFAULT_OID_PUBLIC_KEY_XCHG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113549.1.1.1"); +pub const CERT_DESCRIPTION_PROP_ID: u32 = 13u32; +pub const CERT_DIGITAL_SIGNATURE_KEY_USAGE: u32 = 128u32; +pub const CERT_DISABLE_PIN_RULES_AUTO_UPDATE_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisablePinRulesAutoUpdate"); +pub const CERT_DISABLE_ROOT_AUTO_UPDATE_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableRootAutoUpdate"); +pub const CERT_DISALLOWED_CA_FILETIME_PROP_ID: u32 = 128u32; +pub const CERT_DISALLOWED_CERT_AUTO_UPDATE_ENCODED_CTL_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisallowedCertEncodedCtl"); +pub const CERT_DISALLOWED_CERT_AUTO_UPDATE_LAST_SYNC_TIME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisallowedCertLastSyncTime"); +pub const CERT_DISALLOWED_CERT_AUTO_UPDATE_LIST_IDENTIFIER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisallowedCert_AutoUpdate_1"); +pub const CERT_DISALLOWED_CERT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisallowedCertSyncDeltaTime"); +pub const CERT_DISALLOWED_CERT_CAB_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("disallowedcertstl.cab"); +pub const CERT_DISALLOWED_CERT_CTL_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("disallowedcert.stl"); +pub const CERT_DISALLOWED_CERT_CTL_FILENAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("disallowedcert.stl"); +pub const CERT_DISALLOWED_ENHKEY_USAGE_PROP_ID: u32 = 122u32; +pub const CERT_DISALLOWED_FILETIME_PROP_ID: u32 = 104u32; +pub const CERT_DSS_R_LEN: u32 = 20u32; +pub const CERT_DSS_S_LEN: u32 = 20u32; +pub const CERT_EFSBLOB_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EFSBlob"); +pub const CERT_EFS_PROP_ID: u32 = 17u32; +pub const CERT_ENABLE_DISALLOWED_CERT_AUTO_UPDATE_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableDisallowedCertAutoUpdate"); +pub const CERT_ENCIPHER_ONLY_KEY_USAGE: u32 = 1u32; +pub const CERT_ENCODING_TYPE_MASK: u32 = 65535u32; +pub const CERT_END_ENTITY_SUBJECT_FLAG: u32 = 64u32; +pub const CERT_ENHKEY_USAGE_PROP_ID: u32 = 9u32; +pub const CERT_ENROLLMENT_PROP_ID: u32 = 26u32; +pub const CERT_EXCLUDED_SUBTREE_BIT: i32 = -2147483648i32; +pub const CERT_EXTENDED_ERROR_INFO_PROP_ID: u32 = 30u32; +pub const CERT_FILE_HASH_USE_TYPE: u32 = 1u32; +pub const CERT_FILE_STORE_COMMIT_ENABLE_FLAG: u32 = 65536u32; +pub const CERT_FIND_ANY: CERT_FIND_FLAGS = 0u32; +pub const CERT_FIND_CERT_ID: CERT_FIND_FLAGS = 1048576u32; +pub const CERT_FIND_CROSS_CERT_DIST_POINTS: CERT_FIND_FLAGS = 1114112u32; +pub const CERT_FIND_CTL_USAGE: CERT_FIND_FLAGS = 655360u32; +pub const CERT_FIND_ENHKEY_USAGE: CERT_FIND_FLAGS = 655360u32; +pub const CERT_FIND_EXISTING: CERT_FIND_FLAGS = 851968u32; +pub const CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG: CERT_FIND_FLAGS = 2u32; +pub const CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG: CERT_FIND_FLAGS = 2u32; +pub const CERT_FIND_HASH: CERT_FIND_FLAGS = 65536u32; +pub const CERT_FIND_HASH_STR: CERT_FIND_FLAGS = 1310720u32; +pub const CERT_FIND_HAS_PRIVATE_KEY: CERT_FIND_FLAGS = 1376256u32; +pub const CERT_FIND_ISSUER_ATTR: CERT_FIND_FLAGS = 196612u32; +pub const CERT_FIND_ISSUER_NAME: CERT_FIND_FLAGS = 131076u32; +pub const CERT_FIND_ISSUER_OF: CERT_FIND_FLAGS = 786432u32; +pub const CERT_FIND_ISSUER_STR: CERT_FIND_FLAGS = 524292u32; +pub const CERT_FIND_ISSUER_STR_A: CERT_FIND_FLAGS = 458756u32; +pub const CERT_FIND_ISSUER_STR_W: CERT_FIND_FLAGS = 524292u32; +pub const CERT_FIND_KEY_IDENTIFIER: CERT_FIND_FLAGS = 983040u32; +pub const CERT_FIND_KEY_SPEC: CERT_FIND_FLAGS = 589824u32; +pub const CERT_FIND_MD5_HASH: CERT_FIND_FLAGS = 262144u32; +pub const CERT_FIND_NO_CTL_USAGE_FLAG: CERT_FIND_FLAGS = 8u32; +pub const CERT_FIND_NO_ENHKEY_USAGE_FLAG: CERT_FIND_FLAGS = 8u32; +pub const CERT_FIND_OPTIONAL_CTL_USAGE_FLAG: CERT_FIND_FLAGS = 1u32; +pub const CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG: CERT_FIND_FLAGS = 1u32; +pub const CERT_FIND_OR_CTL_USAGE_FLAG: CERT_FIND_FLAGS = 16u32; +pub const CERT_FIND_OR_ENHKEY_USAGE_FLAG: CERT_FIND_FLAGS = 16u32; +pub const CERT_FIND_PROPERTY: CERT_FIND_FLAGS = 327680u32; +pub const CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG: CERT_FIND_FLAGS = 4u32; +pub const CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG: CERT_FIND_FLAGS = 4u32; +pub const CERT_FIND_PUBKEY_MD5_HASH: CERT_FIND_FLAGS = 1179648u32; +pub const CERT_FIND_PUBLIC_KEY: CERT_FIND_FLAGS = 393216u32; +pub const CERT_FIND_SHA1_HASH: CERT_FIND_FLAGS = 65536u32; +pub const CERT_FIND_SIGNATURE_HASH: CERT_FIND_FLAGS = 917504u32; +pub const CERT_FIND_SUBJECT_ATTR: CERT_FIND_FLAGS = 196615u32; +pub const CERT_FIND_SUBJECT_CERT: CERT_FIND_FLAGS = 720896u32; +pub const CERT_FIND_SUBJECT_INFO_ACCESS: CERT_FIND_FLAGS = 1245184u32; +pub const CERT_FIND_SUBJECT_NAME: CERT_FIND_FLAGS = 131079u32; +pub const CERT_FIND_SUBJECT_STR: CERT_FIND_FLAGS = 524295u32; +pub const CERT_FIND_SUBJECT_STR_A: CERT_FIND_FLAGS = 458759u32; +pub const CERT_FIND_SUBJECT_STR_W: CERT_FIND_FLAGS = 524295u32; +pub const CERT_FIND_VALID_CTL_USAGE_FLAG: CERT_FIND_FLAGS = 32u32; +pub const CERT_FIND_VALID_ENHKEY_USAGE_FLAG: CERT_FIND_FLAGS = 32u32; +pub const CERT_FIRST_RESERVED_PROP_ID: u32 = 129u32; +pub const CERT_FIRST_USER_PROP_ID: u32 = 32768u32; +pub const CERT_FORTEZZA_DATA_PROP_ID: u32 = 18u32; +pub const CERT_FRIENDLY_NAME_PROP_ID: u32 = 11u32; +pub const CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Policies\\Microsoft\\SystemCertificates"); +pub const CERT_HASH_PROP_ID: u32 = 3u32; +pub const CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID: u32 = 79u32; +pub const CERT_HCRYPTPROV_TRANSFER_PROP_ID: u32 = 100u32; +pub const CERT_ID_ISSUER_SERIAL_NUMBER: CERT_ID_OPTION = 1u32; +pub const CERT_ID_KEY_IDENTIFIER: CERT_ID_OPTION = 2u32; +pub const CERT_ID_SHA1_HASH: CERT_ID_OPTION = 3u32; +pub const CERT_IE30_RESERVED_PROP_ID: u32 = 7u32; +pub const CERT_IE_DIRTY_FLAGS_REGPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Cryptography\\IEDirtyFlags"); +pub const CERT_INFO_EXTENSION_FLAG: u32 = 11u32; +pub const CERT_INFO_ISSUER_FLAG: u32 = 4u32; +pub const CERT_INFO_ISSUER_UNIQUE_ID_FLAG: u32 = 9u32; +pub const CERT_INFO_NOT_AFTER_FLAG: u32 = 6u32; +pub const CERT_INFO_NOT_BEFORE_FLAG: u32 = 5u32; +pub const CERT_INFO_SERIAL_NUMBER_FLAG: u32 = 2u32; +pub const CERT_INFO_SIGNATURE_ALGORITHM_FLAG: u32 = 3u32; +pub const CERT_INFO_SUBJECT_FLAG: u32 = 7u32; +pub const CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG: u32 = 8u32; +pub const CERT_INFO_SUBJECT_UNIQUE_ID_FLAG: u32 = 10u32; +pub const CERT_INFO_VERSION_FLAG: u32 = 1u32; +pub const CERT_ISOLATED_KEY_PROP_ID: u32 = 118u32; +pub const CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID: u32 = 96u32; +pub const CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID: u32 = 95u32; +pub const CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID: u32 = 24u32; +pub const CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID: u32 = 94u32; +pub const CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID: u32 = 28u32; +pub const CERT_KEYGEN_REQUEST_V1: u32 = 0u32; +pub const CERT_KEY_AGREEMENT_KEY_USAGE: u32 = 8u32; +pub const CERT_KEY_CERT_SIGN_KEY_USAGE: u32 = 4u32; +pub const CERT_KEY_CLASSIFICATION_PROP_ID: u32 = 120u32; +pub const CERT_KEY_CONTEXT_PROP_ID: u32 = 5u32; +pub const CERT_KEY_ENCIPHERMENT_KEY_USAGE: u32 = 32u32; +pub const CERT_KEY_IDENTIFIER_PROP_ID: u32 = 20u32; +pub const CERT_KEY_PROV_HANDLE_PROP_ID: u32 = 1u32; +pub const CERT_KEY_PROV_INFO_PROP_ID: u32 = 2u32; +pub const CERT_KEY_REPAIR_ATTEMPTED_PROP_ID: u32 = 103u32; +pub const CERT_KEY_SPEC_PROP_ID: u32 = 6u32; +pub const CERT_LAST_RESERVED_PROP_ID: u32 = 32767u32; +pub const CERT_LAST_USER_PROP_ID: u32 = 65535u32; +pub const CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG: u32 = 131072u32; +pub const CERT_LDAP_STORE_OPENED_FLAG: u32 = 262144u32; +pub const CERT_LDAP_STORE_SIGN_FLAG: u32 = 65536u32; +pub const CERT_LDAP_STORE_UNBIND_FLAG: u32 = 524288u32; +pub const CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\SystemCertificates"); +pub const CERT_LOGOTYPE_BITS_IMAGE_RESOLUTION_CHOICE: CERT_LOGOTYPE_CHOICE = 1u32; +pub const CERT_LOGOTYPE_COLOR_IMAGE_INFO_CHOICE: CERT_LOGOTYPE_IMAGE_INFO_TYPE = 2u32; +pub const CERT_LOGOTYPE_DIRECT_INFO_CHOICE: CERT_LOGOTYPE_OPTION = 1u32; +pub const CERT_LOGOTYPE_GRAY_SCALE_IMAGE_INFO_CHOICE: CERT_LOGOTYPE_IMAGE_INFO_TYPE = 1u32; +pub const CERT_LOGOTYPE_INDIRECT_INFO_CHOICE: CERT_LOGOTYPE_OPTION = 2u32; +pub const CERT_LOGOTYPE_NO_IMAGE_RESOLUTION_CHOICE: CERT_LOGOTYPE_CHOICE = 0u32; +pub const CERT_LOGOTYPE_TABLE_SIZE_IMAGE_RESOLUTION_CHOICE: CERT_LOGOTYPE_CHOICE = 2u32; +pub const CERT_MD5_HASH_PROP_ID: u32 = 4u32; +pub const CERT_NAME_ATTR_TYPE: u32 = 3u32; +pub const CERT_NAME_DISABLE_IE4_UTF8_FLAG: u32 = 65536u32; +pub const CERT_NAME_DNS_TYPE: u32 = 6u32; +pub const CERT_NAME_EMAIL_TYPE: u32 = 1u32; +pub const CERT_NAME_FRIENDLY_DISPLAY_TYPE: u32 = 5u32; +pub const CERT_NAME_ISSUER_FLAG: u32 = 1u32; +pub const CERT_NAME_RDN_TYPE: u32 = 2u32; +pub const CERT_NAME_SEARCH_ALL_NAMES_FLAG: u32 = 2u32; +pub const CERT_NAME_SIMPLE_DISPLAY_TYPE: u32 = 4u32; +pub const CERT_NAME_STR_COMMA_FLAG: u32 = 67108864u32; +pub const CERT_NAME_STR_CRLF_FLAG: u32 = 134217728u32; +pub const CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG: u32 = 65536u32; +pub const CERT_NAME_STR_DISABLE_UTF8_DIR_STR_FLAG: u32 = 1048576u32; +pub const CERT_NAME_STR_ENABLE_PUNYCODE_FLAG: u32 = 2097152u32; +pub const CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG: u32 = 131072u32; +pub const CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG: u32 = 262144u32; +pub const CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG: u32 = 524288u32; +pub const CERT_NAME_STR_FORWARD_FLAG: u32 = 16777216u32; +pub const CERT_NAME_STR_NO_PLUS_FLAG: u32 = 536870912u32; +pub const CERT_NAME_STR_NO_QUOTING_FLAG: u32 = 268435456u32; +pub const CERT_NAME_STR_REVERSE_FLAG: u32 = 33554432u32; +pub const CERT_NAME_STR_SEMICOLON_FLAG: u32 = 1073741824u32; +pub const CERT_NAME_UPN_TYPE: u32 = 8u32; +pub const CERT_NAME_URL_TYPE: u32 = 7u32; +pub const CERT_NCRYPT_KEY_HANDLE_PROP_ID: u32 = 78u32; +pub const CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID: u32 = 99u32; +pub const CERT_NCRYPT_KEY_SPEC: CERT_KEY_SPEC = 4294967295u32; +pub const CERT_NEW_KEY_PROP_ID: u32 = 74u32; +pub const CERT_NEXT_UPDATE_LOCATION_PROP_ID: u32 = 10u32; +pub const CERT_NONCOMPLIANT_ROOT_URL_PROP_ID: u32 = 123u32; +pub const CERT_NON_REPUDIATION_KEY_USAGE: u32 = 64u32; +pub const CERT_NOT_BEFORE_ENHKEY_USAGE_PROP_ID: u32 = 127u32; +pub const CERT_NOT_BEFORE_FILETIME_PROP_ID: u32 = 126u32; +pub const CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID: u32 = 77u32; +pub const CERT_NO_EXPIRE_NOTIFICATION_PROP_ID: u32 = 97u32; +pub const CERT_OCM_SUBCOMPONENTS_LOCAL_MACHINE_REGPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\OC Manager\\Subcomponents"); +pub const CERT_OCM_SUBCOMPONENTS_ROOT_AUTO_UPDATE_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RootAutoUpdate"); +pub const CERT_OCSP_CACHE_PREFIX_PROP_ID: u32 = 75u32; +pub const CERT_OCSP_MUST_STAPLE_PROP_ID: u32 = 121u32; +pub const CERT_OCSP_RESPONSE_PROP_ID: u32 = 70u32; +pub const CERT_OFFLINE_CRL_SIGN_KEY_USAGE: u32 = 2u32; +pub const CERT_OID_NAME_STR: CERT_STRING_TYPE = 2u32; +pub const CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG: u32 = 1u32; +pub const CERT_PHYSICAL_STORE_AUTH_ROOT_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".AuthRoot"); +pub const CERT_PHYSICAL_STORE_DEFAULT_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".Default"); +pub const CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".UserCertificate"); +pub const CERT_PHYSICAL_STORE_ENTERPRISE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".Enterprise"); +pub const CERT_PHYSICAL_STORE_GROUP_POLICY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".GroupPolicy"); +pub const CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG: u32 = 8u32; +pub const CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".LocalMachineGroupPolicy"); +pub const CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".LocalMachine"); +pub const CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG: u32 = 2u32; +pub const CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG: u32 = 1u32; +pub const CERT_PHYSICAL_STORE_REMOTE_OPEN_DISABLE_FLAG: u32 = 4u32; +pub const CERT_PHYSICAL_STORE_SMART_CARD_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".SmartCard"); +pub const CERT_PIN_RULES_AUTO_UPDATE_ENCODED_CTL_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PinRulesEncodedCtl"); +pub const CERT_PIN_RULES_AUTO_UPDATE_LAST_SYNC_TIME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PinRulesLastSyncTime"); +pub const CERT_PIN_RULES_AUTO_UPDATE_LIST_IDENTIFIER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PinRules_AutoUpdate_1"); +pub const CERT_PIN_RULES_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PinRulesSyncDeltaTime"); +pub const CERT_PIN_RULES_CAB_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("pinrulesstl.cab"); +pub const CERT_PIN_RULES_CTL_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("pinrules.stl"); +pub const CERT_PIN_RULES_CTL_FILENAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("pinrules.stl"); +pub const CERT_PIN_SHA256_HASH_PROP_ID: u32 = 124u32; +pub const CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG: u32 = 1u32; +pub const CERT_PROT_ROOT_DISABLE_LM_AUTH_FLAG: u32 = 8u32; +pub const CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG: u32 = 32u32; +pub const CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG: u32 = 16u32; +pub const CERT_PROT_ROOT_DISABLE_PEER_TRUST: u32 = 65536u32; +pub const CERT_PROT_ROOT_FLAGS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Flags"); +pub const CERT_PROT_ROOT_INHIBIT_ADD_AT_INIT_FLAG: u32 = 2u32; +pub const CERT_PROT_ROOT_INHIBIT_PURGE_LM_FLAG: u32 = 4u32; +pub const CERT_PROT_ROOT_ONLY_LM_GPT_FLAG: u32 = 8u32; +pub const CERT_PROT_ROOT_PEER_USAGES_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PeerUsages"); +pub const CERT_PROT_ROOT_PEER_USAGES_VALUE_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("PeerUsages"); +pub const CERT_PUBKEY_ALG_PARA_PROP_ID: u32 = 22u32; +pub const CERT_PUBKEY_HASH_RESERVED_PROP_ID: u32 = 8u32; +pub const CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID: u32 = 93u32; +pub const CERT_PVK_FILE_PROP_ID: u32 = 12u32; +pub const CERT_QUERY_CONTENT_CERT: CERT_QUERY_CONTENT_TYPE = 1u32; +pub const CERT_QUERY_CONTENT_CERT_PAIR: CERT_QUERY_CONTENT_TYPE = 13u32; +pub const CERT_QUERY_CONTENT_CRL: CERT_QUERY_CONTENT_TYPE = 3u32; +pub const CERT_QUERY_CONTENT_CTL: CERT_QUERY_CONTENT_TYPE = 2u32; +pub const CERT_QUERY_CONTENT_FLAG_ALL: CERT_QUERY_CONTENT_TYPE_FLAGS = 16382u32; +pub const CERT_QUERY_CONTENT_FLAG_ALL_ISSUER_CERT: CERT_QUERY_CONTENT_TYPE_FLAGS = 818u32; +pub const CERT_QUERY_CONTENT_FLAG_CERT: CERT_QUERY_CONTENT_TYPE_FLAGS = 2u32; +pub const CERT_QUERY_CONTENT_FLAG_CERT_PAIR: CERT_QUERY_CONTENT_TYPE_FLAGS = 8192u32; +pub const CERT_QUERY_CONTENT_FLAG_CRL: CERT_QUERY_CONTENT_TYPE_FLAGS = 8u32; +pub const CERT_QUERY_CONTENT_FLAG_CTL: CERT_QUERY_CONTENT_TYPE_FLAGS = 4u32; +pub const CERT_QUERY_CONTENT_FLAG_PFX: CERT_QUERY_CONTENT_TYPE_FLAGS = 4096u32; +pub const CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD: CERT_QUERY_CONTENT_TYPE_FLAGS = 16384u32; +pub const CERT_QUERY_CONTENT_FLAG_PKCS10: CERT_QUERY_CONTENT_TYPE_FLAGS = 2048u32; +pub const CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED: CERT_QUERY_CONTENT_TYPE_FLAGS = 256u32; +pub const CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED: CERT_QUERY_CONTENT_TYPE_FLAGS = 1024u32; +pub const CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED: CERT_QUERY_CONTENT_TYPE_FLAGS = 512u32; +pub const CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT: CERT_QUERY_CONTENT_TYPE_FLAGS = 32u32; +pub const CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL: CERT_QUERY_CONTENT_TYPE_FLAGS = 128u32; +pub const CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL: CERT_QUERY_CONTENT_TYPE_FLAGS = 64u32; +pub const CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE: CERT_QUERY_CONTENT_TYPE_FLAGS = 16u32; +pub const CERT_QUERY_CONTENT_PFX: CERT_QUERY_CONTENT_TYPE = 12u32; +pub const CERT_QUERY_CONTENT_PFX_AND_LOAD: CERT_QUERY_CONTENT_TYPE = 14u32; +pub const CERT_QUERY_CONTENT_PKCS10: CERT_QUERY_CONTENT_TYPE = 11u32; +pub const CERT_QUERY_CONTENT_PKCS7_SIGNED: CERT_QUERY_CONTENT_TYPE = 8u32; +pub const CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED: CERT_QUERY_CONTENT_TYPE = 10u32; +pub const CERT_QUERY_CONTENT_PKCS7_UNSIGNED: CERT_QUERY_CONTENT_TYPE = 9u32; +pub const CERT_QUERY_CONTENT_SERIALIZED_CERT: CERT_QUERY_CONTENT_TYPE = 5u32; +pub const CERT_QUERY_CONTENT_SERIALIZED_CRL: CERT_QUERY_CONTENT_TYPE = 7u32; +pub const CERT_QUERY_CONTENT_SERIALIZED_CTL: CERT_QUERY_CONTENT_TYPE = 6u32; +pub const CERT_QUERY_CONTENT_SERIALIZED_STORE: CERT_QUERY_CONTENT_TYPE = 4u32; +pub const CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED: CERT_QUERY_FORMAT_TYPE = 3u32; +pub const CERT_QUERY_FORMAT_BASE64_ENCODED: CERT_QUERY_FORMAT_TYPE = 2u32; +pub const CERT_QUERY_FORMAT_BINARY: CERT_QUERY_FORMAT_TYPE = 1u32; +pub const CERT_QUERY_FORMAT_FLAG_ALL: CERT_QUERY_FORMAT_TYPE_FLAGS = 14u32; +pub const CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED: CERT_QUERY_FORMAT_TYPE_FLAGS = 8u32; +pub const CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED: CERT_QUERY_FORMAT_TYPE_FLAGS = 4u32; +pub const CERT_QUERY_FORMAT_FLAG_BINARY: CERT_QUERY_FORMAT_TYPE_FLAGS = 2u32; +pub const CERT_QUERY_OBJECT_BLOB: CERT_QUERY_OBJECT_TYPE = 2u32; +pub const CERT_QUERY_OBJECT_FILE: CERT_QUERY_OBJECT_TYPE = 1u32; +pub const CERT_RDN_ANY_TYPE: CERT_RDN_ATTR_VALUE_TYPE = 0i32; +pub const CERT_RDN_BMP_STRING: CERT_RDN_ATTR_VALUE_TYPE = 12i32; +pub const CERT_RDN_DISABLE_CHECK_TYPE_FLAG: u32 = 1073741824u32; +pub const CERT_RDN_DISABLE_IE4_UTF8_FLAG: u32 = 16777216u32; +pub const CERT_RDN_ENABLE_PUNYCODE_FLAG: u32 = 33554432u32; +pub const CERT_RDN_ENABLE_T61_UNICODE_FLAG: u32 = 2147483648u32; +pub const CERT_RDN_ENABLE_UTF8_UNICODE_FLAG: u32 = 536870912u32; +pub const CERT_RDN_ENCODED_BLOB: CERT_RDN_ATTR_VALUE_TYPE = 1i32; +pub const CERT_RDN_FLAGS_MASK: u32 = 4278190080u32; +pub const CERT_RDN_FORCE_UTF8_UNICODE_FLAG: u32 = 268435456u32; +pub const CERT_RDN_GENERAL_STRING: CERT_RDN_ATTR_VALUE_TYPE = 10i32; +pub const CERT_RDN_GRAPHIC_STRING: CERT_RDN_ATTR_VALUE_TYPE = 8i32; +pub const CERT_RDN_IA5_STRING: CERT_RDN_ATTR_VALUE_TYPE = 7i32; +pub const CERT_RDN_INT4_STRING: CERT_RDN_ATTR_VALUE_TYPE = 11i32; +pub const CERT_RDN_ISO646_STRING: CERT_RDN_ATTR_VALUE_TYPE = 9i32; +pub const CERT_RDN_NUMERIC_STRING: CERT_RDN_ATTR_VALUE_TYPE = 3i32; +pub const CERT_RDN_OCTET_STRING: CERT_RDN_ATTR_VALUE_TYPE = 2i32; +pub const CERT_RDN_PRINTABLE_STRING: CERT_RDN_ATTR_VALUE_TYPE = 4i32; +pub const CERT_RDN_T61_STRING: CERT_RDN_ATTR_VALUE_TYPE = 5i32; +pub const CERT_RDN_TELETEX_STRING: CERT_RDN_ATTR_VALUE_TYPE = 5i32; +pub const CERT_RDN_TYPE_MASK: u32 = 255u32; +pub const CERT_RDN_UNICODE_STRING: CERT_RDN_ATTR_VALUE_TYPE = 12i32; +pub const CERT_RDN_UNIVERSAL_STRING: CERT_RDN_ATTR_VALUE_TYPE = 11i32; +pub const CERT_RDN_UTF8_STRING: CERT_RDN_ATTR_VALUE_TYPE = 13i32; +pub const CERT_RDN_VIDEOTEX_STRING: CERT_RDN_ATTR_VALUE_TYPE = 6i32; +pub const CERT_RDN_VISIBLE_STRING: CERT_RDN_ATTR_VALUE_TYPE = 9i32; +pub const CERT_REGISTRY_STORE_CLIENT_GPT_FLAG: u32 = 2147483648u32; +pub const CERT_REGISTRY_STORE_EXTERNAL_FLAG: u32 = 1048576u32; +pub const CERT_REGISTRY_STORE_LM_GPT_FLAG: u32 = 16777216u32; +pub const CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG: u32 = 524288u32; +pub const CERT_REGISTRY_STORE_REMOTE_FLAG: u32 = 65536u32; +pub const CERT_REGISTRY_STORE_ROAMING_FLAG: u32 = 262144u32; +pub const CERT_REGISTRY_STORE_SERIALIZED_FLAG: u32 = 131072u32; +pub const CERT_RENEWAL_PROP_ID: u32 = 64u32; +pub const CERT_REQUEST_ORIGINATOR_PROP_ID: u32 = 71u32; +pub const CERT_REQUEST_V1: u32 = 0u32; +pub const CERT_RETRIEVE_BIOMETRIC_PREDEFINED_BASE_TYPE: ::windows_sys::core::PCSTR = 1000i32 as _; +pub const CERT_RETRIEVE_COMMUNITY_LOGO: ::windows_sys::core::PCSTR = 3i32 as _; +pub const CERT_RETRIEVE_ISSUER_LOGO: ::windows_sys::core::PCSTR = 1i32 as _; +pub const CERT_RETRIEVE_SUBJECT_LOGO: ::windows_sys::core::PCSTR = 2i32 as _; +pub const CERT_RETR_BEHAVIOR_FILE_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AllowFileUrlScheme"); +pub const CERT_RETR_BEHAVIOR_INET_AUTH_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableInetUnknownAuth"); +pub const CERT_RETR_BEHAVIOR_INET_STATUS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableInetLocal"); +pub const CERT_RETR_BEHAVIOR_LDAP_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableLDAPSignAndEncrypt"); +pub const CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID: u32 = 83u32; +pub const CERT_ROOT_PROGRAM_CHAIN_POLICIES_PROP_ID: u32 = 105u32; +pub const CERT_ROOT_PROGRAM_FLAG_ADDRESS: u32 = 8u32; +pub const CERT_ROOT_PROGRAM_FLAG_LSC: CERT_ROOT_PROGRAM_FLAGS = 64u32; +pub const CERT_ROOT_PROGRAM_FLAG_ORG: CERT_ROOT_PROGRAM_FLAGS = 128u32; +pub const CERT_ROOT_PROGRAM_FLAG_OU: u32 = 16u32; +pub const CERT_ROOT_PROGRAM_FLAG_SUBJECT_LOGO: CERT_ROOT_PROGRAM_FLAGS = 32u32; +pub const CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID: u32 = 84u32; +pub const CERT_RSA_PUBLIC_KEY_OBJID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.113549.1.1.1"); +pub const CERT_SCARD_PIN_ID_PROP_ID: u32 = 90u32; +pub const CERT_SCARD_PIN_INFO_PROP_ID: u32 = 91u32; +pub const CERT_SCEP_CA_CERT_PROP_ID: u32 = 111u32; +pub const CERT_SCEP_ENCRYPT_HASH_CNG_ALG_PROP_ID: u32 = 114u32; +pub const CERT_SCEP_FLAGS_PROP_ID: u32 = 115u32; +pub const CERT_SCEP_GUID_PROP_ID: u32 = 116u32; +pub const CERT_SCEP_NONCE_PROP_ID: u32 = 113u32; +pub const CERT_SCEP_RA_ENCRYPTION_CERT_PROP_ID: u32 = 110u32; +pub const CERT_SCEP_RA_SIGNATURE_CERT_PROP_ID: u32 = 109u32; +pub const CERT_SCEP_SERVER_CERTS_PROP_ID: u32 = 108u32; +pub const CERT_SCEP_SIGNER_CERT_PROP_ID: u32 = 112u32; +pub const CERT_SELECT_ALLOW_DUPLICATES: u32 = 128u32; +pub const CERT_SELECT_ALLOW_EXPIRED: u32 = 1u32; +pub const CERT_SELECT_BY_ENHKEY_USAGE: CERT_SELECT_CRITERIA_TYPE = 1u32; +pub const CERT_SELECT_BY_EXTENSION: CERT_SELECT_CRITERIA_TYPE = 5u32; +pub const CERT_SELECT_BY_FRIENDLYNAME: u32 = 13u32; +pub const CERT_SELECT_BY_ISSUER_ATTR: CERT_SELECT_CRITERIA_TYPE = 7u32; +pub const CERT_SELECT_BY_ISSUER_DISPLAYNAME: u32 = 12u32; +pub const CERT_SELECT_BY_ISSUER_NAME: CERT_SELECT_CRITERIA_TYPE = 9u32; +pub const CERT_SELECT_BY_KEY_USAGE: CERT_SELECT_CRITERIA_TYPE = 2u32; +pub const CERT_SELECT_BY_POLICY_OID: CERT_SELECT_CRITERIA_TYPE = 3u32; +pub const CERT_SELECT_BY_PROV_NAME: CERT_SELECT_CRITERIA_TYPE = 4u32; +pub const CERT_SELECT_BY_PUBLIC_KEY: CERT_SELECT_CRITERIA_TYPE = 10u32; +pub const CERT_SELECT_BY_SUBJECT_ATTR: CERT_SELECT_CRITERIA_TYPE = 8u32; +pub const CERT_SELECT_BY_SUBJECT_HOST_NAME: CERT_SELECT_CRITERIA_TYPE = 6u32; +pub const CERT_SELECT_BY_THUMBPRINT: u32 = 14u32; +pub const CERT_SELECT_BY_TLS_SIGNATURES: CERT_SELECT_CRITERIA_TYPE = 11u32; +pub const CERT_SELECT_DISALLOW_SELFSIGNED: u32 = 4u32; +pub const CERT_SELECT_HARDWARE_ONLY: u32 = 64u32; +pub const CERT_SELECT_HAS_KEY_FOR_KEY_EXCHANGE: u32 = 32u32; +pub const CERT_SELECT_HAS_KEY_FOR_SIGNATURE: u32 = 16u32; +pub const CERT_SELECT_HAS_PRIVATE_KEY: u32 = 8u32; +pub const CERT_SELECT_IGNORE_AUTOSELECT: u32 = 256u32; +pub const CERT_SELECT_MAX_PARA: u32 = 500u32; +pub const CERT_SELECT_TRUSTED_ROOT: u32 = 2u32; +pub const CERT_SEND_AS_TRUSTED_ISSUER_PROP_ID: u32 = 102u32; +pub const CERT_SERIALIZABLE_KEY_CONTEXT_PROP_ID: u32 = 117u32; +pub const CERT_SERIAL_CHAIN_PROP_ID: u32 = 119u32; +pub const CERT_SERVER_OCSP_RESPONSE_ASYNC_FLAG: u32 = 1u32; +pub const CERT_SERVER_OCSP_RESPONSE_OPEN_PARA_READ_FLAG: u32 = 1u32; +pub const CERT_SERVER_OCSP_RESPONSE_OPEN_PARA_WRITE_FLAG: u32 = 2u32; +pub const CERT_SET_KEY_CONTEXT_PROP_ID: CRYPT_KEY_FLAGS = 1u32; +pub const CERT_SET_KEY_PROV_HANDLE_PROP_ID: CRYPT_KEY_FLAGS = 1u32; +pub const CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG: u32 = 2147483648u32; +pub const CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG: u32 = 1073741824u32; +pub const CERT_SHA1_HASH_PROP_ID: u32 = 3u32; +pub const CERT_SHA256_HASH_PROP_ID: u32 = 107u32; +pub const CERT_SIGNATURE_HASH_PROP_ID: u32 = 15u32; +pub const CERT_SIGN_HASH_CNG_ALG_PROP_ID: u32 = 89u32; +pub const CERT_SIMPLE_NAME_STR: CERT_STRING_TYPE = 1u32; +pub const CERT_SMART_CARD_DATA_PROP_ID: u32 = 16u32; +pub const CERT_SMART_CARD_READER_NON_REMOVABLE_PROP_ID: u32 = 106u32; +pub const CERT_SMART_CARD_READER_PROP_ID: u32 = 101u32; +pub const CERT_SMART_CARD_ROOT_INFO_PROP_ID: u32 = 76u32; +pub const CERT_SOURCE_LOCATION_PROP_ID: u32 = 72u32; +pub const CERT_SOURCE_URL_PROP_ID: u32 = 73u32; +pub const CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SrvOcspRespMaxBeforeNextUpdateSeconds"); +pub const CERT_SRV_OCSP_RESP_MAX_SYNC_CERT_FILE_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SrvOcspRespMaxSyncCertFileSeconds"); +pub const CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SrvOcspRespMinAfterNextUpdateSeconds"); +pub const CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SrvOcspRespMinBeforeNextUpdateSeconds"); +pub const CERT_SRV_OCSP_RESP_MIN_SYNC_CERT_FILE_SECONDS_DEFAULT: u32 = 5u32; +pub const CERT_SRV_OCSP_RESP_MIN_SYNC_CERT_FILE_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SrvOcspRespMinSyncCertFileSeconds"); +pub const CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SrvOcspRespMinValiditySeconds"); +pub const CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SrvOcspRespUrlRetrievalTimeoutMilliseconds"); +pub const CERT_STORE_ADD_ALWAYS: u32 = 4u32; +pub const CERT_STORE_ADD_NEW: u32 = 1u32; +pub const CERT_STORE_ADD_NEWER: u32 = 6u32; +pub const CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES: u32 = 7u32; +pub const CERT_STORE_ADD_REPLACE_EXISTING: u32 = 3u32; +pub const CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES: u32 = 5u32; +pub const CERT_STORE_ADD_USE_EXISTING: u32 = 2u32; +pub const CERT_STORE_BACKUP_RESTORE_FLAG: CERT_OPEN_STORE_FLAGS = 2048u32; +pub const CERT_STORE_BASE_CRL_FLAG: u32 = 256u32; +pub const CERT_STORE_CERTIFICATE_CONTEXT: u32 = 1u32; +pub const CERT_STORE_CREATE_NEW_FLAG: CERT_OPEN_STORE_FLAGS = 8192u32; +pub const CERT_STORE_CRL_CONTEXT: u32 = 2u32; +pub const CERT_STORE_CTL_CONTEXT: u32 = 3u32; +pub const CERT_STORE_CTRL_AUTO_RESYNC: u32 = 4u32; +pub const CERT_STORE_CTRL_CANCEL_NOTIFY: u32 = 5u32; +pub const CERT_STORE_CTRL_COMMIT: u32 = 3u32; +pub const CERT_STORE_CTRL_COMMIT_CLEAR_FLAG: CERT_CONTROL_STORE_FLAGS = 2u32; +pub const CERT_STORE_CTRL_COMMIT_FORCE_FLAG: CERT_CONTROL_STORE_FLAGS = 1u32; +pub const CERT_STORE_CTRL_INHIBIT_DUPLICATE_HANDLE_FLAG: CERT_CONTROL_STORE_FLAGS = 1u32; +pub const CERT_STORE_CTRL_NOTIFY_CHANGE: u32 = 2u32; +pub const CERT_STORE_CTRL_RESYNC: u32 = 1u32; +pub const CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG: CERT_OPEN_STORE_FLAGS = 4u32; +pub const CERT_STORE_DELETE_FLAG: CERT_OPEN_STORE_FLAGS = 16u32; +pub const CERT_STORE_DELTA_CRL_FLAG: u32 = 512u32; +pub const CERT_STORE_ENUM_ARCHIVED_FLAG: CERT_OPEN_STORE_FLAGS = 512u32; +pub const CERT_STORE_LOCALIZED_NAME_PROP_ID: u32 = 4096u32; +pub const CERT_STORE_MANIFOLD_FLAG: u32 = 256u32; +pub const CERT_STORE_MAXIMUM_ALLOWED_FLAG: CERT_OPEN_STORE_FLAGS = 4096u32; +pub const CERT_STORE_NO_CRL_FLAG: u32 = 65536u32; +pub const CERT_STORE_NO_CRYPT_RELEASE_FLAG: CERT_OPEN_STORE_FLAGS = 1u32; +pub const CERT_STORE_NO_ISSUER_FLAG: u32 = 131072u32; +pub const CERT_STORE_OPEN_EXISTING_FLAG: CERT_OPEN_STORE_FLAGS = 16384u32; +pub const CERT_STORE_PROV_CLOSE_FUNC: u32 = 0u32; +pub const CERT_STORE_PROV_COLLECTION: ::windows_sys::core::PCSTR = 11i32 as _; +pub const CERT_STORE_PROV_CONTROL_FUNC: u32 = 13u32; +pub const CERT_STORE_PROV_DELETED_FLAG: CERT_STORE_PROV_FLAGS = 2u32; +pub const CERT_STORE_PROV_DELETE_CERT_FUNC: u32 = 3u32; +pub const CERT_STORE_PROV_DELETE_CRL_FUNC: u32 = 7u32; +pub const CERT_STORE_PROV_DELETE_CTL_FUNC: u32 = 11u32; +pub const CERT_STORE_PROV_EXTERNAL_FLAG: CERT_STORE_PROV_FLAGS = 1u32; +pub const CERT_STORE_PROV_FILE: ::windows_sys::core::PCSTR = 3i32 as _; +pub const CERT_STORE_PROV_FILENAME: i32 = 8i32; +pub const CERT_STORE_PROV_FILENAME_A: ::windows_sys::core::PCSTR = 7i32 as _; +pub const CERT_STORE_PROV_FILENAME_W: ::windows_sys::core::PCSTR = 8i32 as _; +pub const CERT_STORE_PROV_FIND_CERT_FUNC: u32 = 14u32; +pub const CERT_STORE_PROV_FIND_CRL_FUNC: u32 = 17u32; +pub const CERT_STORE_PROV_FIND_CTL_FUNC: u32 = 20u32; +pub const CERT_STORE_PROV_FREE_FIND_CERT_FUNC: u32 = 15u32; +pub const CERT_STORE_PROV_FREE_FIND_CRL_FUNC: u32 = 18u32; +pub const CERT_STORE_PROV_FREE_FIND_CTL_FUNC: u32 = 21u32; +pub const CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC: u32 = 16u32; +pub const CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC: u32 = 19u32; +pub const CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC: u32 = 22u32; +pub const CERT_STORE_PROV_GP_SYSTEM_STORE_FLAG: u32 = 32u32; +pub const CERT_STORE_PROV_LDAP: i32 = 16i32; +pub const CERT_STORE_PROV_LDAP_W: ::windows_sys::core::PCSTR = 16i32 as _; +pub const CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG: CERT_STORE_PROV_FLAGS = 16u32; +pub const CERT_STORE_PROV_MEMORY: ::windows_sys::core::PCSTR = 2i32 as _; +pub const CERT_STORE_PROV_MSG: ::windows_sys::core::PCSTR = 1i32 as _; +pub const CERT_STORE_PROV_NO_PERSIST_FLAG: CERT_STORE_PROV_FLAGS = 4u32; +pub const CERT_STORE_PROV_PHYSICAL: i32 = 14i32; +pub const CERT_STORE_PROV_PHYSICAL_W: ::windows_sys::core::PCSTR = 14i32 as _; +pub const CERT_STORE_PROV_PKCS12: ::windows_sys::core::PCSTR = 17i32 as _; +pub const CERT_STORE_PROV_PKCS7: ::windows_sys::core::PCSTR = 5i32 as _; +pub const CERT_STORE_PROV_READ_CERT_FUNC: u32 = 1u32; +pub const CERT_STORE_PROV_READ_CRL_FUNC: u32 = 5u32; +pub const CERT_STORE_PROV_READ_CTL_FUNC: u32 = 9u32; +pub const CERT_STORE_PROV_REG: ::windows_sys::core::PCSTR = 4i32 as _; +pub const CERT_STORE_PROV_SERIALIZED: ::windows_sys::core::PCSTR = 6i32 as _; +pub const CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC: u32 = 4u32; +pub const CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC: u32 = 8u32; +pub const CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC: u32 = 12u32; +pub const CERT_STORE_PROV_SHARED_USER_FLAG: u32 = 64u32; +pub const CERT_STORE_PROV_SMART_CARD: i32 = 15i32; +pub const CERT_STORE_PROV_SMART_CARD_W: ::windows_sys::core::PCSTR = 15i32 as _; +pub const CERT_STORE_PROV_SYSTEM: i32 = 10i32; +pub const CERT_STORE_PROV_SYSTEM_A: ::windows_sys::core::PCSTR = 9i32 as _; +pub const CERT_STORE_PROV_SYSTEM_REGISTRY: i32 = 13i32; +pub const CERT_STORE_PROV_SYSTEM_REGISTRY_A: ::windows_sys::core::PCSTR = 12i32 as _; +pub const CERT_STORE_PROV_SYSTEM_REGISTRY_W: ::windows_sys::core::PCSTR = 13i32 as _; +pub const CERT_STORE_PROV_SYSTEM_STORE_FLAG: CERT_STORE_PROV_FLAGS = 8u32; +pub const CERT_STORE_PROV_SYSTEM_W: ::windows_sys::core::PCSTR = 10i32 as _; +pub const CERT_STORE_PROV_WRITE_ADD_FLAG: u32 = 1u32; +pub const CERT_STORE_PROV_WRITE_CERT_FUNC: u32 = 2u32; +pub const CERT_STORE_PROV_WRITE_CRL_FUNC: u32 = 6u32; +pub const CERT_STORE_PROV_WRITE_CTL_FUNC: u32 = 10u32; +pub const CERT_STORE_READONLY_FLAG: CERT_OPEN_STORE_FLAGS = 32768u32; +pub const CERT_STORE_REVOCATION_FLAG: u32 = 4u32; +pub const CERT_STORE_SAVE_AS_PKCS12: u32 = 3u32; +pub const CERT_STORE_SAVE_AS_PKCS7: CERT_STORE_SAVE_AS = 2u32; +pub const CERT_STORE_SAVE_AS_STORE: CERT_STORE_SAVE_AS = 1u32; +pub const CERT_STORE_SAVE_TO_FILE: CERT_STORE_SAVE_TO = 1u32; +pub const CERT_STORE_SAVE_TO_FILENAME: CERT_STORE_SAVE_TO = 4u32; +pub const CERT_STORE_SAVE_TO_FILENAME_A: CERT_STORE_SAVE_TO = 3u32; +pub const CERT_STORE_SAVE_TO_FILENAME_W: CERT_STORE_SAVE_TO = 4u32; +pub const CERT_STORE_SAVE_TO_MEMORY: CERT_STORE_SAVE_TO = 2u32; +pub const CERT_STORE_SET_LOCALIZED_NAME_FLAG: CERT_OPEN_STORE_FLAGS = 2u32; +pub const CERT_STORE_SHARE_CONTEXT_FLAG: CERT_OPEN_STORE_FLAGS = 128u32; +pub const CERT_STORE_SHARE_STORE_FLAG: u32 = 64u32; +pub const CERT_STORE_SIGNATURE_FLAG: u32 = 1u32; +pub const CERT_STORE_TIME_VALIDITY_FLAG: u32 = 2u32; +pub const CERT_STORE_UNSAFE_PHYSICAL_FLAG: u32 = 32u32; +pub const CERT_STORE_UPDATE_KEYID_FLAG: CERT_OPEN_STORE_FLAGS = 1024u32; +pub const CERT_STRONG_SIGN_ECDSA_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDSA"); +pub const CERT_STRONG_SIGN_ENABLE_CRL_CHECK: CERT_STRONG_SIGN_FLAGS = 1u32; +pub const CERT_STRONG_SIGN_ENABLE_OCSP_CHECK: CERT_STRONG_SIGN_FLAGS = 2u32; +pub const CERT_STRONG_SIGN_OID_INFO_CHOICE: u32 = 2u32; +pub const CERT_STRONG_SIGN_SERIALIZED_INFO_CHOICE: u32 = 1u32; +pub const CERT_SUBJECT_DISABLE_CRL_PROP_ID: u32 = 86u32; +pub const CERT_SUBJECT_INFO_ACCESS_PROP_ID: u32 = 80u32; +pub const CERT_SUBJECT_NAME_MD5_HASH_PROP_ID: u32 = 29u32; +pub const CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID: u32 = 85u32; +pub const CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID: u32 = 25u32; +pub const CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_ID: u32 = 92u32; +pub const CERT_SYSTEM_STORE_CURRENT_SERVICE_ID: u32 = 4u32; +pub const CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID: u32 = 7u32; +pub const CERT_SYSTEM_STORE_CURRENT_USER_ID: u32 = 1u32; +pub const CERT_SYSTEM_STORE_DEFER_READ_FLAG: u32 = 536870912u32; +pub const CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID: u32 = 9u32; +pub const CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID: u32 = 8u32; +pub const CERT_SYSTEM_STORE_LOCAL_MACHINE_ID: u32 = 2u32; +pub const CERT_SYSTEM_STORE_LOCAL_MACHINE_WCOS_ID: u32 = 10u32; +pub const CERT_SYSTEM_STORE_LOCATION_MASK: CERT_SYSTEM_STORE_FLAGS = 16711680u32; +pub const CERT_SYSTEM_STORE_LOCATION_SHIFT: u32 = 16u32; +pub const CERT_SYSTEM_STORE_MASK: u32 = 4294901760u32; +pub const CERT_SYSTEM_STORE_RELOCATE_FLAG: CERT_SYSTEM_STORE_FLAGS = 2147483648u32; +pub const CERT_SYSTEM_STORE_SERVICES_ID: u32 = 5u32; +pub const CERT_SYSTEM_STORE_UNPROTECTED_FLAG: u32 = 1073741824u32; +pub const CERT_SYSTEM_STORE_USERS_ID: u32 = 6u32; +pub const CERT_TIMESTAMP_HASH_USE_TYPE: u32 = 2u32; +pub const CERT_TRUST_AUTO_UPDATE_CA_REVOCATION: u32 = 16u32; +pub const CERT_TRUST_AUTO_UPDATE_END_REVOCATION: u32 = 32u32; +pub const CERT_TRUST_BEFORE_DISALLOWED_CA_FILETIME: u32 = 2097152u32; +pub const CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID: u32 = 262144u32; +pub const CERT_TRUST_CTL_IS_NOT_TIME_VALID: u32 = 131072u32; +pub const CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE: u32 = 524288u32; +pub const CERT_TRUST_HAS_ALLOW_WEAK_SIGNATURE: u32 = 131072u32; +pub const CERT_TRUST_HAS_AUTO_UPDATE_WEAK_SIGNATURE: u32 = 32768u32; +pub const CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED: u32 = 4096u32; +pub const CERT_TRUST_HAS_EXACT_MATCH_ISSUER: u32 = 1u32; +pub const CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT: u32 = 32768u32; +pub const CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY: u32 = 512u32; +pub const CERT_TRUST_HAS_KEY_MATCH_ISSUER: u32 = 2u32; +pub const CERT_TRUST_HAS_NAME_MATCH_ISSUER: u32 = 4u32; +pub const CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT: u32 = 8192u32; +pub const CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT: u32 = 16384u32; +pub const CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT: u32 = 134217728u32; +pub const CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT: u32 = 4096u32; +pub const CERT_TRUST_HAS_PREFERRED_ISSUER: u32 = 256u32; +pub const CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS: u32 = 1024u32; +pub const CERT_TRUST_HAS_WEAK_HYGIENE: u32 = 2097152u32; +pub const CERT_TRUST_HAS_WEAK_SIGNATURE: u32 = 1048576u32; +pub const CERT_TRUST_INVALID_BASIC_CONSTRAINTS: u32 = 1024u32; +pub const CERT_TRUST_INVALID_EXTENSION: u32 = 256u32; +pub const CERT_TRUST_INVALID_NAME_CONSTRAINTS: u32 = 2048u32; +pub const CERT_TRUST_INVALID_POLICY_CONSTRAINTS: u32 = 512u32; +pub const CERT_TRUST_IS_CA_TRUSTED: u32 = 16384u32; +pub const CERT_TRUST_IS_COMPLEX_CHAIN: u32 = 65536u32; +pub const CERT_TRUST_IS_CYCLIC: u32 = 128u32; +pub const CERT_TRUST_IS_EXPLICIT_DISTRUST: u32 = 67108864u32; +pub const CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE: u32 = 8192u32; +pub const CERT_TRUST_IS_KEY_ROLLOVER: u32 = 128u32; +pub const CERT_TRUST_IS_NOT_SIGNATURE_VALID: u32 = 8u32; +pub const CERT_TRUST_IS_NOT_TIME_NESTED: u32 = 2u32; +pub const CERT_TRUST_IS_NOT_TIME_VALID: u32 = 1u32; +pub const CERT_TRUST_IS_NOT_VALID_FOR_USAGE: u32 = 16u32; +pub const CERT_TRUST_IS_OFFLINE_REVOCATION: u32 = 16777216u32; +pub const CERT_TRUST_IS_PARTIAL_CHAIN: u32 = 65536u32; +pub const CERT_TRUST_IS_PEER_TRUSTED: u32 = 2048u32; +pub const CERT_TRUST_IS_REVOKED: u32 = 4u32; +pub const CERT_TRUST_IS_SELF_SIGNED: u32 = 8u32; +pub const CERT_TRUST_IS_UNTRUSTED_ROOT: u32 = 32u32; +pub const CERT_TRUST_NO_ERROR: u32 = 0u32; +pub const CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY: u32 = 33554432u32; +pub const CERT_TRUST_NO_OCSP_FAILOVER_TO_CRL: u32 = 64u32; +pub const CERT_TRUST_NO_TIME_CHECK: u32 = 33554432u32; +pub const CERT_TRUST_PUB_ALLOW_END_USER_TRUST: u32 = 0u32; +pub const CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST: u32 = 2u32; +pub const CERT_TRUST_PUB_ALLOW_MACHINE_ADMIN_TRUST: u32 = 1u32; +pub const CERT_TRUST_PUB_ALLOW_TRUST_MASK: u32 = 3u32; +pub const CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AuthenticodeFlags"); +pub const CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG: u32 = 256u32; +pub const CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG: u32 = 512u32; +pub const CERT_TRUST_REVOCATION_STATUS_UNKNOWN: u32 = 64u32; +pub const CERT_TRUST_SSL_HANDSHAKE_OCSP: u32 = 262144u32; +pub const CERT_TRUST_SSL_RECONNECT_OCSP: u32 = 1048576u32; +pub const CERT_TRUST_SSL_TIME_VALID: u32 = 16777216u32; +pub const CERT_TRUST_SSL_TIME_VALID_OCSP: u32 = 524288u32; +pub const CERT_UNICODE_ATTR_ERR_INDEX_MASK: u32 = 63u32; +pub const CERT_UNICODE_ATTR_ERR_INDEX_SHIFT: u32 = 16u32; +pub const CERT_UNICODE_IS_RDN_ATTRS_FLAG: u32 = 1u32; +pub const CERT_UNICODE_RDN_ERR_INDEX_MASK: u32 = 1023u32; +pub const CERT_UNICODE_RDN_ERR_INDEX_SHIFT: u32 = 22u32; +pub const CERT_UNICODE_VALUE_ERR_INDEX_MASK: u32 = 65535u32; +pub const CERT_UNICODE_VALUE_ERR_INDEX_SHIFT: u32 = 0u32; +pub const CERT_V1: u32 = 0u32; +pub const CERT_V2: u32 = 1u32; +pub const CERT_V3: u32 = 2u32; +pub const CERT_VERIFY_ALLOW_MORE_USAGE_FLAG: u32 = 8u32; +pub const CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION: u32 = 2u32; +pub const CERT_VERIFY_INHIBIT_CTL_UPDATE_FLAG: u32 = 1u32; +pub const CERT_VERIFY_NO_TIME_CHECK_FLAG: u32 = 4u32; +pub const CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG: u32 = 4u32; +pub const CERT_VERIFY_REV_CHAIN_FLAG: u32 = 1u32; +pub const CERT_VERIFY_REV_NO_OCSP_FAILOVER_TO_CRL_FLAG: u32 = 16u32; +pub const CERT_VERIFY_REV_SERVER_OCSP_FLAG: u32 = 8u32; +pub const CERT_VERIFY_REV_SERVER_OCSP_WIRE_ONLY_FLAG: u32 = 32u32; +pub const CERT_VERIFY_TRUSTED_SIGNERS_FLAG: u32 = 2u32; +pub const CERT_VERIFY_UPDATED_CTL_FLAG: u32 = 1u32; +pub const CERT_X500_NAME_STR: CERT_STRING_TYPE = 3u32; +pub const CERT_XML_NAME_STR: u32 = 4u32; +pub const CMC_ADD_ATTRIBUTES: ::windows_sys::core::PCSTR = 63i32 as _; +pub const CMC_ADD_EXTENSIONS: ::windows_sys::core::PCSTR = 62i32 as _; +pub const CMC_DATA: ::windows_sys::core::PCSTR = 59i32 as _; +pub const CMC_FAIL_BAD_ALG: u32 = 0u32; +pub const CMC_FAIL_BAD_CERT_ID: u32 = 4u32; +pub const CMC_FAIL_BAD_IDENTITY: u32 = 7u32; +pub const CMC_FAIL_BAD_MESSAGE_CHECK: u32 = 1u32; +pub const CMC_FAIL_BAD_REQUEST: u32 = 2u32; +pub const CMC_FAIL_BAD_TIME: u32 = 3u32; +pub const CMC_FAIL_INTERNAL_CA_ERROR: u32 = 11u32; +pub const CMC_FAIL_MUST_ARCHIVE_KEYS: u32 = 6u32; +pub const CMC_FAIL_NO_KEY_REUSE: u32 = 10u32; +pub const CMC_FAIL_POP_FAILED: u32 = 9u32; +pub const CMC_FAIL_POP_REQUIRED: u32 = 8u32; +pub const CMC_FAIL_TRY_LATER: u32 = 12u32; +pub const CMC_FAIL_UNSUPORTED_EXT: u32 = 5u32; +pub const CMC_OTHER_INFO_FAIL_CHOICE: u32 = 1u32; +pub const CMC_OTHER_INFO_NO_CHOICE: u32 = 0u32; +pub const CMC_OTHER_INFO_PEND_CHOICE: u32 = 2u32; +pub const CMC_RESPONSE: ::windows_sys::core::PCSTR = 60i32 as _; +pub const CMC_STATUS: ::windows_sys::core::PCSTR = 61i32 as _; +pub const CMC_STATUS_CONFIRM_REQUIRED: u32 = 5u32; +pub const CMC_STATUS_FAILED: u32 = 2u32; +pub const CMC_STATUS_NO_SUPPORT: u32 = 4u32; +pub const CMC_STATUS_PENDING: u32 = 3u32; +pub const CMC_STATUS_SUCCESS: u32 = 0u32; +pub const CMC_TAGGED_CERT_REQUEST_CHOICE: u32 = 1u32; +pub const CMSCEPSetup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaa4f5c02_8e7c_49c4_94fa_67a5cc5eadb4); +pub const CMSG_ATTR_CERT_COUNT_PARAM: u32 = 31u32; +pub const CMSG_ATTR_CERT_PARAM: u32 = 32u32; +pub const CMSG_AUTHENTICATED_ATTRIBUTES_FLAG: u32 = 8u32; +pub const CMSG_BARE_CONTENT_FLAG: u32 = 1u32; +pub const CMSG_BARE_CONTENT_PARAM: u32 = 3u32; +pub const CMSG_CERT_COUNT_PARAM: u32 = 11u32; +pub const CMSG_CERT_PARAM: u32 = 12u32; +pub const CMSG_CMS_ENCAPSULATED_CONTENT_FLAG: u32 = 64u32; +pub const CMSG_CMS_ENCAPSULATED_CTL_FLAG: u32 = 32768u32; +pub const CMSG_CMS_RECIPIENT_COUNT_PARAM: u32 = 33u32; +pub const CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM: u32 = 35u32; +pub const CMSG_CMS_RECIPIENT_INDEX_PARAM: u32 = 34u32; +pub const CMSG_CMS_RECIPIENT_INFO_PARAM: u32 = 36u32; +pub const CMSG_CMS_SIGNER_INFO_PARAM: u32 = 39u32; +pub const CMSG_COMPUTED_HASH_PARAM: u32 = 22u32; +pub const CMSG_CONTENTS_OCTETS_FLAG: u32 = 16u32; +pub const CMSG_CONTENT_ENCRYPT_FREE_OBJID_FLAG: u32 = 2u32; +pub const CMSG_CONTENT_ENCRYPT_FREE_PARA_FLAG: u32 = 1u32; +pub const CMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAG: u32 = 1u32; +pub const CMSG_CONTENT_ENCRYPT_RELEASE_CONTEXT_FLAG: u32 = 32768u32; +pub const CMSG_CONTENT_PARAM: u32 = 2u32; +pub const CMSG_CRL_COUNT_PARAM: u32 = 13u32; +pub const CMSG_CRL_PARAM: u32 = 14u32; +pub const CMSG_CRYPT_RELEASE_CONTEXT_FLAG: u32 = 32768u32; +pub const CMSG_CTRL_ADD_ATTR_CERT: u32 = 14u32; +pub const CMSG_CTRL_ADD_CERT: u32 = 10u32; +pub const CMSG_CTRL_ADD_CMS_SIGNER_INFO: u32 = 20u32; +pub const CMSG_CTRL_ADD_CRL: u32 = 12u32; +pub const CMSG_CTRL_ADD_SIGNER: u32 = 6u32; +pub const CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR: u32 = 8u32; +pub const CMSG_CTRL_DECRYPT: u32 = 2u32; +pub const CMSG_CTRL_DEL_ATTR_CERT: u32 = 15u32; +pub const CMSG_CTRL_DEL_CERT: u32 = 11u32; +pub const CMSG_CTRL_DEL_CRL: u32 = 13u32; +pub const CMSG_CTRL_DEL_SIGNER: u32 = 7u32; +pub const CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR: u32 = 9u32; +pub const CMSG_CTRL_ENABLE_STRONG_SIGNATURE: u32 = 21u32; +pub const CMSG_CTRL_KEY_AGREE_DECRYPT: u32 = 17u32; +pub const CMSG_CTRL_KEY_TRANS_DECRYPT: u32 = 16u32; +pub const CMSG_CTRL_MAIL_LIST_DECRYPT: u32 = 18u32; +pub const CMSG_CTRL_VERIFY_HASH: u32 = 5u32; +pub const CMSG_CTRL_VERIFY_SIGNATURE: u32 = 1u32; +pub const CMSG_CTRL_VERIFY_SIGNATURE_EX: u32 = 19u32; +pub const CMSG_DATA: CRYPT_MSG_TYPE = 1u32; +pub const CMSG_DEFAULT_INSTALLABLE_FUNC_OID: ::windows_sys::core::PCSTR = 1i32 as _; +pub const CMSG_DETACHED_FLAG: u32 = 4u32; +pub const CMSG_ENCODED_MESSAGE: u32 = 29u32; +pub const CMSG_ENCODED_SIGNER: u32 = 28u32; +pub const CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG: u32 = 2u32; +pub const CMSG_ENCODE_SORTED_CTL_FLAG: u32 = 1u32; +pub const CMSG_ENCODING_TYPE_MASK: u32 = 4294901760u32; +pub const CMSG_ENCRYPTED: u32 = 6u32; +pub const CMSG_ENCRYPTED_DIGEST: u32 = 27u32; +pub const CMSG_ENCRYPT_PARAM: u32 = 26u32; +pub const CMSG_ENVELOPED: CRYPT_MSG_TYPE = 3u32; +pub const CMSG_ENVELOPED_DATA_CMS_VERSION: u32 = 2u32; +pub const CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION: u32 = 0u32; +pub const CMSG_ENVELOPED_DATA_V0: u32 = 0u32; +pub const CMSG_ENVELOPED_DATA_V2: u32 = 2u32; +pub const CMSG_ENVELOPED_RECIPIENT_V0: u32 = 0u32; +pub const CMSG_ENVELOPED_RECIPIENT_V2: u32 = 2u32; +pub const CMSG_ENVELOPED_RECIPIENT_V3: u32 = 3u32; +pub const CMSG_ENVELOPED_RECIPIENT_V4: u32 = 4u32; +pub const CMSG_ENVELOPE_ALGORITHM_PARAM: u32 = 15u32; +pub const CMSG_HASHED: CRYPT_MSG_TYPE = 5u32; +pub const CMSG_HASHED_DATA_CMS_VERSION: u32 = 2u32; +pub const CMSG_HASHED_DATA_PKCS_1_5_VERSION: u32 = 0u32; +pub const CMSG_HASHED_DATA_V0: u32 = 0u32; +pub const CMSG_HASHED_DATA_V2: u32 = 2u32; +pub const CMSG_HASH_ALGORITHM_PARAM: u32 = 20u32; +pub const CMSG_HASH_DATA_PARAM: u32 = 21u32; +pub const CMSG_INDEFINITE_LENGTH: u32 = 4294967295u32; +pub const CMSG_INNER_CONTENT_TYPE_PARAM: u32 = 4u32; +pub const CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG: u32 = 2u32; +pub const CMSG_KEY_AGREE_ENCRYPT_FREE_OBJID_FLAG: u32 = 32u32; +pub const CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG: u32 = 1u32; +pub const CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG: u32 = 4u32; +pub const CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG: u32 = 16u32; +pub const CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG: u32 = 8u32; +pub const CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE: CMSG_KEY_AGREE_OPTION = 1u32; +pub const CMSG_KEY_AGREE_ORIGINATOR_CERT: CMSG_KEY_AGREE_ORIGINATOR = 1u32; +pub const CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY: CMSG_KEY_AGREE_ORIGINATOR = 2u32; +pub const CMSG_KEY_AGREE_RECIPIENT: u32 = 2u32; +pub const CMSG_KEY_AGREE_STATIC_KEY_CHOICE: CMSG_KEY_AGREE_OPTION = 2u32; +pub const CMSG_KEY_AGREE_VERSION: u32 = 3u32; +pub const CMSG_KEY_TRANS_CMS_VERSION: u32 = 2u32; +pub const CMSG_KEY_TRANS_ENCRYPT_FREE_OBJID_FLAG: u32 = 2u32; +pub const CMSG_KEY_TRANS_ENCRYPT_FREE_PARA_FLAG: u32 = 1u32; +pub const CMSG_KEY_TRANS_PKCS_1_5_VERSION: u32 = 0u32; +pub const CMSG_KEY_TRANS_RECIPIENT: u32 = 1u32; +pub const CMSG_LENGTH_ONLY_FLAG: u32 = 2u32; +pub const CMSG_MAIL_LIST_ENCRYPT_FREE_OBJID_FLAG: u32 = 2u32; +pub const CMSG_MAIL_LIST_ENCRYPT_FREE_PARA_FLAG: u32 = 1u32; +pub const CMSG_MAIL_LIST_HANDLE_KEY_CHOICE: u32 = 1u32; +pub const CMSG_MAIL_LIST_RECIPIENT: u32 = 3u32; +pub const CMSG_MAIL_LIST_VERSION: u32 = 4u32; +pub const CMSG_MAX_LENGTH_FLAG: u32 = 32u32; +pub const CMSG_OID_CAPI1_EXPORT_KEY_AGREE_FUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptMsgDllExportKeyAgree"); +pub const CMSG_OID_CAPI1_EXPORT_KEY_TRANS_FUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptMsgDllExportKeyTrans"); +pub const CMSG_OID_CAPI1_EXPORT_MAIL_LIST_FUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptMsgDllExportMailList"); +pub const CMSG_OID_CAPI1_GEN_CONTENT_ENCRYPT_KEY_FUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptMsgDllGenContentEncryptKey"); +pub const CMSG_OID_CAPI1_IMPORT_KEY_AGREE_FUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptMsgDllImportKeyAgree"); +pub const CMSG_OID_CAPI1_IMPORT_KEY_TRANS_FUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptMsgDllImportKeyTrans"); +pub const CMSG_OID_CAPI1_IMPORT_MAIL_LIST_FUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptMsgDllImportMailList"); +pub const CMSG_OID_CNG_EXPORT_KEY_AGREE_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllCNGExportKeyAgree"); +pub const CMSG_OID_CNG_EXPORT_KEY_TRANS_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllCNGExportKeyTrans"); +pub const CMSG_OID_CNG_GEN_CONTENT_ENCRYPT_KEY_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllCNGGenContentEncryptKey"); +pub const CMSG_OID_CNG_IMPORT_CONTENT_ENCRYPT_KEY_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllCNGImportContentEncryptKey"); +pub const CMSG_OID_CNG_IMPORT_KEY_AGREE_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllCNGImportKeyAgree"); +pub const CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllCNGImportKeyTrans"); +pub const CMSG_OID_EXPORT_ENCRYPT_KEY_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllExportEncryptKey"); +pub const CMSG_OID_EXPORT_KEY_AGREE_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllExportKeyAgree"); +pub const CMSG_OID_EXPORT_KEY_TRANS_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllExportKeyTrans"); +pub const CMSG_OID_EXPORT_MAIL_LIST_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllExportMailList"); +pub const CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllGenContentEncryptKey"); +pub const CMSG_OID_GEN_ENCRYPT_KEY_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllGenEncryptKey"); +pub const CMSG_OID_IMPORT_ENCRYPT_KEY_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllImportEncryptKey"); +pub const CMSG_OID_IMPORT_KEY_AGREE_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllImportKeyAgree"); +pub const CMSG_OID_IMPORT_KEY_TRANS_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllImportKeyTrans"); +pub const CMSG_OID_IMPORT_MAIL_LIST_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptMsgDllImportMailList"); +pub const CMSG_RC4_NO_SALT_FLAG: u32 = 1073741824u32; +pub const CMSG_RECIPIENT_COUNT_PARAM: u32 = 17u32; +pub const CMSG_RECIPIENT_INDEX_PARAM: u32 = 18u32; +pub const CMSG_RECIPIENT_INFO_PARAM: u32 = 19u32; +pub const CMSG_SIGNED: CRYPT_MSG_TYPE = 2u32; +pub const CMSG_SIGNED_AND_ENVELOPED: CRYPT_MSG_TYPE = 4u32; +pub const CMSG_SIGNED_DATA_CMS_VERSION: u32 = 3u32; +pub const CMSG_SIGNED_DATA_NO_SIGN_FLAG: u32 = 128u32; +pub const CMSG_SIGNED_DATA_PKCS_1_5_VERSION: u32 = 1u32; +pub const CMSG_SIGNED_DATA_V1: u32 = 1u32; +pub const CMSG_SIGNED_DATA_V3: u32 = 3u32; +pub const CMSG_SIGNER_AUTH_ATTR_PARAM: u32 = 9u32; +pub const CMSG_SIGNER_CERT_ID_PARAM: u32 = 38u32; +pub const CMSG_SIGNER_CERT_INFO_PARAM: u32 = 7u32; +pub const CMSG_SIGNER_COUNT_PARAM: u32 = 5u32; +pub const CMSG_SIGNER_HASH_ALGORITHM_PARAM: u32 = 8u32; +pub const CMSG_SIGNER_INFO_CMS_VERSION: u32 = 3u32; +pub const CMSG_SIGNER_INFO_PARAM: u32 = 6u32; +pub const CMSG_SIGNER_INFO_PKCS_1_5_VERSION: u32 = 1u32; +pub const CMSG_SIGNER_INFO_V1: u32 = 1u32; +pub const CMSG_SIGNER_INFO_V3: u32 = 3u32; +pub const CMSG_SIGNER_ONLY_FLAG: u32 = 2u32; +pub const CMSG_SIGNER_UNAUTH_ATTR_PARAM: u32 = 10u32; +pub const CMSG_SP3_COMPATIBLE_ENCRYPT_FLAG: u32 = 2147483648u32; +pub const CMSG_TRUSTED_SIGNER_FLAG: u32 = 1u32; +pub const CMSG_TYPE_PARAM: u32 = 1u32; +pub const CMSG_UNPROTECTED_ATTR_PARAM: u32 = 37u32; +pub const CMSG_USE_SIGNER_INDEX_FLAG: u32 = 4u32; +pub const CMSG_VERIFY_COUNTER_SIGN_ENABLE_STRONG_FLAG: u32 = 1u32; +pub const CMSG_VERIFY_SIGNER_CERT: u32 = 2u32; +pub const CMSG_VERIFY_SIGNER_CHAIN: u32 = 3u32; +pub const CMSG_VERIFY_SIGNER_NULL: u32 = 4u32; +pub const CMSG_VERIFY_SIGNER_PUBKEY: u32 = 1u32; +pub const CMSG_VERSION_PARAM: u32 = 30u32; +pub const CMS_SIGNER_INFO: ::windows_sys::core::PCSTR = 501i32 as _; +pub const CNG_RSA_PRIVATE_KEY_BLOB: ::windows_sys::core::PCSTR = 83i32 as _; +pub const CNG_RSA_PUBLIC_KEY_BLOB: ::windows_sys::core::PCSTR = 72i32 as _; +pub const CONTEXT_OID_CAPI2_ANY: ::windows_sys::core::PCSTR = 5i32 as _; +pub const CONTEXT_OID_CERTIFICATE: ::windows_sys::core::PCSTR = 1i32 as _; +pub const CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ContextDllCreateObjectContext"); +pub const CONTEXT_OID_CRL: ::windows_sys::core::PCSTR = 2i32 as _; +pub const CONTEXT_OID_CTL: ::windows_sys::core::PCSTR = 3i32 as _; +pub const CONTEXT_OID_OCSP_RESP: ::windows_sys::core::PCSTR = 6i32 as _; +pub const CONTEXT_OID_PKCS7: ::windows_sys::core::PCSTR = 4i32 as _; +pub const CREDENTIAL_OID_PASSWORD_CREDENTIALS: i32 = 2i32; +pub const CREDENTIAL_OID_PASSWORD_CREDENTIALS_A: ::windows_sys::core::PCSTR = 1i32 as _; +pub const CREDENTIAL_OID_PASSWORD_CREDENTIALS_W: ::windows_sys::core::PCSTR = 2i32 as _; +pub const CRL_DIST_POINT_ERR_CRL_ISSUER_BIT: i32 = -2147483648i32; +pub const CRL_DIST_POINT_ERR_INDEX_MASK: u32 = 127u32; +pub const CRL_DIST_POINT_ERR_INDEX_SHIFT: u32 = 24u32; +pub const CRL_DIST_POINT_FULL_NAME: u32 = 1u32; +pub const CRL_DIST_POINT_ISSUER_RDN_NAME: u32 = 2u32; +pub const CRL_DIST_POINT_NO_NAME: u32 = 0u32; +pub const CRL_FIND_ANY: u32 = 0u32; +pub const CRL_FIND_EXISTING: u32 = 2u32; +pub const CRL_FIND_ISSUED_BY: u32 = 1u32; +pub const CRL_FIND_ISSUED_BY_AKI_FLAG: u32 = 1u32; +pub const CRL_FIND_ISSUED_BY_BASE_FLAG: u32 = 8u32; +pub const CRL_FIND_ISSUED_BY_DELTA_FLAG: u32 = 4u32; +pub const CRL_FIND_ISSUED_BY_SIGNATURE_FLAG: u32 = 2u32; +pub const CRL_FIND_ISSUED_FOR: u32 = 3u32; +pub const CRL_FIND_ISSUED_FOR_SET_STRONG_PROPERTIES_FLAG: u32 = 16u32; +pub const CRL_REASON_AA_COMPROMISE: u32 = 10u32; +pub const CRL_REASON_AA_COMPROMISE_FLAG: u32 = 128u32; +pub const CRL_REASON_AFFILIATION_CHANGED: CERT_REVOCATION_STATUS_REASON = 3u32; +pub const CRL_REASON_AFFILIATION_CHANGED_FLAG: u32 = 16u32; +pub const CRL_REASON_CA_COMPROMISE: CERT_REVOCATION_STATUS_REASON = 2u32; +pub const CRL_REASON_CA_COMPROMISE_FLAG: u32 = 32u32; +pub const CRL_REASON_CERTIFICATE_HOLD: CERT_REVOCATION_STATUS_REASON = 6u32; +pub const CRL_REASON_CERTIFICATE_HOLD_FLAG: u32 = 2u32; +pub const CRL_REASON_CESSATION_OF_OPERATION: CERT_REVOCATION_STATUS_REASON = 5u32; +pub const CRL_REASON_CESSATION_OF_OPERATION_FLAG: u32 = 4u32; +pub const CRL_REASON_KEY_COMPROMISE: CERT_REVOCATION_STATUS_REASON = 1u32; +pub const CRL_REASON_KEY_COMPROMISE_FLAG: u32 = 64u32; +pub const CRL_REASON_PRIVILEGE_WITHDRAWN: u32 = 9u32; +pub const CRL_REASON_PRIVILEGE_WITHDRAWN_FLAG: u32 = 1u32; +pub const CRL_REASON_REMOVE_FROM_CRL: CERT_REVOCATION_STATUS_REASON = 8u32; +pub const CRL_REASON_SUPERSEDED: CERT_REVOCATION_STATUS_REASON = 4u32; +pub const CRL_REASON_SUPERSEDED_FLAG: u32 = 8u32; +pub const CRL_REASON_UNSPECIFIED: CERT_REVOCATION_STATUS_REASON = 0u32; +pub const CRL_REASON_UNUSED_FLAG: u32 = 128u32; +pub const CRL_V1: u32 = 0u32; +pub const CRL_V2: u32 = 1u32; +pub const CROSS_CERT_DIST_POINT_ERR_INDEX_MASK: u32 = 255u32; +pub const CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT: u32 = 24u32; +pub const CRYPTNET_CACHED_OCSP_SWITCH_TO_CRL_COUNT_DEFAULT: u32 = 50u32; +pub const CRYPTNET_CACHED_OCSP_SWITCH_TO_CRL_COUNT_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetCachedOcspSwitchToCrlCount"); +pub const CRYPTNET_CRL_BEFORE_OCSP_ENABLE: u32 = 4294967295u32; +pub const CRYPTNET_CRL_PRE_FETCH_DISABLE_INFORMATION_EVENTS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableInformationEvents"); +pub const CRYPTNET_CRL_PRE_FETCH_LOG_FILE_NAME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogFileName"); +pub const CRYPTNET_CRL_PRE_FETCH_MAX_AGE_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxAgeSeconds"); +pub const CRYPTNET_CRL_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MinAfterNextUpdateSeconds"); +pub const CRYPTNET_CRL_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MinBeforeNextUpdateSeconds"); +pub const CRYPTNET_CRL_PRE_FETCH_PROCESS_NAME_LIST_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProcessNameList"); +pub const CRYPTNET_CRL_PRE_FETCH_PUBLISH_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PublishBeforeNextUpdateSeconds"); +pub const CRYPTNET_CRL_PRE_FETCH_PUBLISH_RANDOM_INTERVAL_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PublishRandomIntervalSeconds"); +pub const CRYPTNET_CRL_PRE_FETCH_TIMEOUT_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TimeoutSeconds"); +pub const CRYPTNET_CRL_PRE_FETCH_URL_LIST_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PreFetchUrlList"); +pub const CRYPTNET_MAX_CACHED_OCSP_PER_CRL_COUNT_DEFAULT: u32 = 500u32; +pub const CRYPTNET_MAX_CACHED_OCSP_PER_CRL_COUNT_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetMaxCachedOcspPerCrlCount"); +pub const CRYPTNET_OCSP_AFTER_CRL_DISABLE: u32 = 4294967295u32; +pub const CRYPTNET_PRE_FETCH_AFTER_CURRENT_TIME_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetPreFetchAfterCurrentTimePreFetchPeriodSeconds"); +pub const CRYPTNET_PRE_FETCH_AFTER_PUBLISH_PRE_FETCH_DIVISOR_DEFAULT: u32 = 10u32; +pub const CRYPTNET_PRE_FETCH_AFTER_PUBLISH_PRE_FETCH_DIVISOR_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetPreFetchAfterPublishPreFetchDivisor"); +pub const CRYPTNET_PRE_FETCH_BEFORE_NEXT_UPDATE_PRE_FETCH_DIVISOR_DEFAULT: u32 = 20u32; +pub const CRYPTNET_PRE_FETCH_BEFORE_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetPreFetchBeforeNextUpdatePreFetchDivisor"); +pub const CRYPTNET_PRE_FETCH_MAX_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetPreFetchMaxAfterNextUpdatePreFetchPeriodSeconds"); +pub const CRYPTNET_PRE_FETCH_MAX_MAX_AGE_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetPreFetchMaxMaxAgeSeconds"); +pub const CRYPTNET_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetPreFetchMinAfterNextUpdatePreFetchPeriodSeconds"); +pub const CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetPreFetchMinBeforeNextUpdatePreFetchSeconds"); +pub const CRYPTNET_PRE_FETCH_MIN_MAX_AGE_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetPreFetchMinMaxAgeSeconds"); +pub const CRYPTNET_PRE_FETCH_MIN_OCSP_VALIDITY_PERIOD_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetPreFetchMinOcspValidityPeriodSeconds"); +pub const CRYPTNET_PRE_FETCH_RETRIEVAL_TIMEOUT_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetPreFetchRetrievalTimeoutSeconds"); +pub const CRYPTNET_PRE_FETCH_SCAN_AFTER_TRIGGER_DELAY_SECONDS_DEFAULT: u32 = 60u32; +pub const CRYPTNET_PRE_FETCH_SCAN_AFTER_TRIGGER_DELAY_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetPreFetchScanAfterTriggerDelaySeconds"); +pub const CRYPTNET_PRE_FETCH_TRIGGER_DISABLE: u32 = 4294967295u32; +pub const CRYPTNET_PRE_FETCH_TRIGGER_PERIOD_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetPreFetchTriggerPeriodSeconds"); +pub const CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_UPDATE_PRE_FETCH_DIVISOR_DEFAULT: u32 = 10u32; +pub const CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetPreFetchValidityPeriodAfterNextUpdatePreFetchDivisor"); +pub const CRYPTNET_URL_CACHE_DEFAULT_FLUSH: u32 = 0u32; +pub const CRYPTNET_URL_CACHE_DEFAULT_FLUSH_EXEMPT_SECONDS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptnetDefaultFlushExemptSeconds"); +pub const CRYPTNET_URL_CACHE_DISABLE_FLUSH: u32 = 4294967295u32; +pub const CRYPTNET_URL_CACHE_PRE_FETCH_AUTOROOT_CAB: u32 = 5u32; +pub const CRYPTNET_URL_CACHE_PRE_FETCH_BLOB: u32 = 1u32; +pub const CRYPTNET_URL_CACHE_PRE_FETCH_CRL: u32 = 2u32; +pub const CRYPTNET_URL_CACHE_PRE_FETCH_DISALLOWED_CERT_CAB: u32 = 6u32; +pub const CRYPTNET_URL_CACHE_PRE_FETCH_NONE: u32 = 0u32; +pub const CRYPTNET_URL_CACHE_PRE_FETCH_OCSP: u32 = 3u32; +pub const CRYPTNET_URL_CACHE_PRE_FETCH_PIN_RULES_CAB: u32 = 7u32; +pub const CRYPTNET_URL_CACHE_RESPONSE_HTTP: u32 = 1u32; +pub const CRYPTNET_URL_CACHE_RESPONSE_NONE: u32 = 0u32; +pub const CRYPTNET_URL_CACHE_RESPONSE_VALIDATED: u32 = 32768u32; +pub const CRYPTPROTECTMEMORY_BLOCK_SIZE: u32 = 16u32; +pub const CRYPTPROTECTMEMORY_CROSS_PROCESS: u32 = 1u32; +pub const CRYPTPROTECTMEMORY_SAME_LOGON: u32 = 2u32; +pub const CRYPTPROTECTMEMORY_SAME_PROCESS: u32 = 0u32; +pub const CRYPTPROTECT_AUDIT: u32 = 16u32; +pub const CRYPTPROTECT_CRED_REGENERATE: u32 = 128u32; +pub const CRYPTPROTECT_CRED_SYNC: u32 = 8u32; +pub const CRYPTPROTECT_DEFAULT_PROVIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdf9d8cd0_1501_11d1_8c7a_00c04fc297eb); +pub const CRYPTPROTECT_FIRST_RESERVED_FLAGVAL: u32 = 268435455u32; +pub const CRYPTPROTECT_LAST_RESERVED_FLAGVAL: u32 = 4294967295u32; +pub const CRYPTPROTECT_LOCAL_MACHINE: u32 = 4u32; +pub const CRYPTPROTECT_NO_RECOVERY: u32 = 32u32; +pub const CRYPTPROTECT_PROMPT_ON_PROTECT: u32 = 2u32; +pub const CRYPTPROTECT_PROMPT_ON_UNPROTECT: u32 = 1u32; +pub const CRYPTPROTECT_PROMPT_REQUIRE_STRONG: u32 = 16u32; +pub const CRYPTPROTECT_PROMPT_RESERVED: u32 = 4u32; +pub const CRYPTPROTECT_PROMPT_STRONG: u32 = 8u32; +pub const CRYPTPROTECT_UI_FORBIDDEN: u32 = 1u32; +pub const CRYPTPROTECT_VERIFY_PROTECTION: u32 = 64u32; +pub const CRYPT_ACCUMULATIVE_TIMEOUT: u32 = 2048u32; +pub const CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG: CRYPT_ACQUIRE_FLAGS = 65536u32; +pub const CRYPT_ACQUIRE_CACHE_FLAG: CRYPT_ACQUIRE_FLAGS = 1u32; +pub const CRYPT_ACQUIRE_COMPARE_KEY_FLAG: CRYPT_ACQUIRE_FLAGS = 4u32; +pub const CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK: CRYPT_ACQUIRE_FLAGS = 458752u32; +pub const CRYPT_ACQUIRE_NO_HEALING: CRYPT_ACQUIRE_FLAGS = 8u32; +pub const CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG: CRYPT_ACQUIRE_FLAGS = 262144u32; +pub const CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG: CRYPT_ACQUIRE_FLAGS = 131072u32; +pub const CRYPT_ACQUIRE_SILENT_FLAG: CRYPT_ACQUIRE_FLAGS = 64u32; +pub const CRYPT_ACQUIRE_USE_PROV_INFO_FLAG: CRYPT_ACQUIRE_FLAGS = 2u32; +pub const CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG: CRYPT_ACQUIRE_FLAGS = 128u32; +pub const CRYPT_AIA_RETRIEVAL: u32 = 524288u32; +pub const CRYPT_ALL_FUNCTIONS: BCRYPT_RESOLVE_PROVIDERS_FLAGS = 1u32; +pub const CRYPT_ALL_PROVIDERS: BCRYPT_RESOLVE_PROVIDERS_FLAGS = 2u32; +pub const CRYPT_ANY: BCRYPT_QUERY_PROVIDER_MODE = 4u32; +pub const CRYPT_ARCHIVABLE: CRYPT_KEY_FLAGS = 16384u32; +pub const CRYPT_ARCHIVE: u32 = 256u32; +pub const CRYPT_ASN_ENCODING: u32 = 1u32; +pub const CRYPT_ASYNC_RETRIEVAL: u32 = 16u32; +pub const CRYPT_BLOB_VER3: CRYPT_KEY_FLAGS = 128u32; +pub const CRYPT_CACHE_ONLY_RETRIEVAL: u32 = 2u32; +pub const CRYPT_CHECK_FRESHNESS_TIME_VALIDITY: u32 = 1024u32; +pub const CRYPT_CREATE_IV: CRYPT_KEY_FLAGS = 512u32; +pub const CRYPT_CREATE_NEW_FLUSH_ENTRY: u32 = 268435456u32; +pub const CRYPT_CREATE_SALT: CRYPT_KEY_FLAGS = 4u32; +pub const CRYPT_DATA_KEY: CRYPT_KEY_FLAGS = 2048u32; +pub const CRYPT_DECODE_ALLOC_FLAG: u32 = 32768u32; +pub const CRYPT_DECODE_ENABLE_PUNYCODE_FLAG: u32 = 33554432u32; +pub const CRYPT_DECODE_ENABLE_UTF8PERCENT_FLAG: u32 = 67108864u32; +pub const CRYPT_DECODE_NOCOPY_FLAG: u32 = 1u32; +pub const CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG: u32 = 8u32; +pub const CRYPT_DECODE_SHARE_OID_STRING_FLAG: u32 = 4u32; +pub const CRYPT_DECODE_TO_BE_SIGNED_FLAG: u32 = 2u32; +pub const CRYPT_DECRYPT: u32 = 2u32; +pub const CRYPT_DECRYPT_RSA_NO_PADDING_CHECK: u32 = 32u32; +pub const CRYPT_DEFAULT_CONTAINER_OPTIONAL: u32 = 128u32; +pub const CRYPT_DEFAULT_CONTEXT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Default"); +pub const CRYPT_DEFAULT_CONTEXT_AUTO_RELEASE_FLAG: CRYPT_DEFAULT_CONTEXT_FLAGS = 1u32; +pub const CRYPT_DEFAULT_CONTEXT_CERT_SIGN_OID: CRYPT_DEFAULT_CONTEXT_TYPE = 1u32; +pub const CRYPT_DEFAULT_CONTEXT_MULTI_CERT_SIGN_OID: CRYPT_DEFAULT_CONTEXT_TYPE = 2u32; +pub const CRYPT_DEFAULT_CONTEXT_PROCESS_FLAG: CRYPT_DEFAULT_CONTEXT_FLAGS = 2u32; +pub const CRYPT_DEFAULT_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("DEFAULT"); +pub const CRYPT_DELETEKEYSET: u32 = 16u32; +pub const CRYPT_DELETE_DEFAULT: u32 = 4u32; +pub const CRYPT_DELETE_KEYSET: u32 = 16u32; +pub const CRYPT_DESTROYKEY: CRYPT_KEY_FLAGS = 4u32; +pub const CRYPT_DOMAIN: BCRYPT_TABLE = 2u32; +pub const CRYPT_DONT_CACHE_RESULT: u32 = 8u32; +pub const CRYPT_DONT_CHECK_TIME_VALIDITY: u32 = 512u32; +pub const CRYPT_DONT_VERIFY_SIGNATURE: u32 = 256u32; +pub const CRYPT_ECC_CMS_SHARED_INFO_SUPPPUBINFO_BYTE_LENGTH: u32 = 4u32; +pub const CRYPT_ECC_PRIVATE_KEY_INFO_v1: u32 = 1u32; +pub const CRYPT_ENABLE_FILE_RETRIEVAL: u32 = 134217728u32; +pub const CRYPT_ENABLE_SSL_REVOCATION_RETRIEVAL: u32 = 8388608u32; +pub const CRYPT_ENCODE_ALLOC_FLAG: CRYPT_ENCODE_OBJECT_FLAGS = 32768u32; +pub const CRYPT_ENCODE_DECODE_NONE: u32 = 0u32; +pub const CRYPT_ENCODE_ENABLE_PUNYCODE_FLAG: CRYPT_ENCODE_OBJECT_FLAGS = 131072u32; +pub const CRYPT_ENCODE_ENABLE_UTF8PERCENT_FLAG: u32 = 262144u32; +pub const CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG: u32 = 8u32; +pub const CRYPT_ENCRYPT: u32 = 1u32; +pub const CRYPT_ENCRYPT_ALG_OID_GROUP_ID: u32 = 2u32; +pub const CRYPT_ENHKEY_USAGE_OID_GROUP_ID: u32 = 7u32; +pub const CRYPT_EXCLUSIVE: CRYPT_CONTEXT_CONFIG_FLAGS = 1u32; +pub const CRYPT_EXPORT: u32 = 4u32; +pub const CRYPT_EXPORTABLE: CRYPT_KEY_FLAGS = 1u32; +pub const CRYPT_EXPORT_KEY: u32 = 64u32; +pub const CRYPT_EXT_OR_ATTR_OID_GROUP_ID: u32 = 6u32; +pub const CRYPT_FAILED: u32 = 0u32; +pub const CRYPT_FASTSGC: u32 = 2u32; +pub const CRYPT_FIND_MACHINE_KEYSET_FLAG: CRYPT_FIND_FLAGS = 2u32; +pub const CRYPT_FIND_SILENT_KEYSET_FLAG: CRYPT_FIND_FLAGS = 64u32; +pub const CRYPT_FIND_USER_KEYSET_FLAG: CRYPT_FIND_FLAGS = 1u32; +pub const CRYPT_FIRST: u32 = 1u32; +pub const CRYPT_FIRST_ALG_OID_GROUP_ID: u32 = 1u32; +pub const CRYPT_FLAG_IPSEC: u32 = 16u32; +pub const CRYPT_FLAG_PCT1: u32 = 1u32; +pub const CRYPT_FLAG_SIGNING: u32 = 32u32; +pub const CRYPT_FLAG_SSL2: u32 = 2u32; +pub const CRYPT_FLAG_SSL3: u32 = 4u32; +pub const CRYPT_FLAG_TLS1: u32 = 8u32; +pub const CRYPT_FORCE_KEY_PROTECTION_HIGH: CRYPT_KEY_FLAGS = 32768u32; +pub const CRYPT_FORMAT_COMMA: u32 = 4096u32; +pub const CRYPT_FORMAT_CRLF: u32 = 512u32; +pub const CRYPT_FORMAT_OID: u32 = 4u32; +pub const CRYPT_FORMAT_RDN_CRLF: u32 = 512u32; +pub const CRYPT_FORMAT_RDN_REVERSE: u32 = 2048u32; +pub const CRYPT_FORMAT_RDN_SEMICOLON: u32 = 256u32; +pub const CRYPT_FORMAT_RDN_UNQUOTE: u32 = 1024u32; +pub const CRYPT_FORMAT_SEMICOLON: u32 = 256u32; +pub const CRYPT_FORMAT_SIMPLE: u32 = 1u32; +pub const CRYPT_FORMAT_STR_MULTI_LINE: u32 = 1u32; +pub const CRYPT_FORMAT_STR_NO_HEX: u32 = 16u32; +pub const CRYPT_FORMAT_X509: u32 = 2u32; +pub const CRYPT_GET_INSTALLED_OID_FUNC_FLAG: u32 = 1u32; +pub const CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE: CRYPT_GET_URL_FLAGS = 8u32; +pub const CRYPT_GET_URL_FROM_EXTENSION: CRYPT_GET_URL_FLAGS = 2u32; +pub const CRYPT_GET_URL_FROM_PROPERTY: CRYPT_GET_URL_FLAGS = 1u32; +pub const CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE: CRYPT_GET_URL_FLAGS = 4u32; +pub const CRYPT_HASH_ALG_OID_GROUP_ID: u32 = 1u32; +pub const CRYPT_HTTP_POST_RETRIEVAL: u32 = 1048576u32; +pub const CRYPT_IMPL_HARDWARE: u32 = 1u32; +pub const CRYPT_IMPL_MIXED: u32 = 3u32; +pub const CRYPT_IMPL_REMOVABLE: u32 = 8u32; +pub const CRYPT_IMPL_SOFTWARE: u32 = 2u32; +pub const CRYPT_IMPL_UNKNOWN: u32 = 4u32; +pub const CRYPT_IMPORT_KEY: u32 = 128u32; +pub const CRYPT_INITIATOR: CRYPT_KEY_FLAGS = 64u32; +pub const CRYPT_INSTALL_OID_FUNC_BEFORE_FLAG: u32 = 1u32; +pub const CRYPT_INSTALL_OID_INFO_BEFORE_FLAG: u32 = 1u32; +pub const CRYPT_IPSEC_HMAC_KEY: CRYPT_KEY_FLAGS = 256u32; +pub const CRYPT_KDF_OID_GROUP_ID: u32 = 10u32; +pub const CRYPT_KEEP_TIME_VALID: u32 = 128u32; +pub const CRYPT_KEK: CRYPT_KEY_FLAGS = 1024u32; +pub const CRYPT_KEYID_ALLOC_FLAG: u32 = 32768u32; +pub const CRYPT_KEYID_DELETE_FLAG: u32 = 16u32; +pub const CRYPT_KEYID_MACHINE_FLAG: u32 = 32u32; +pub const CRYPT_KEYID_SET_NEW_FLAG: u32 = 8192u32; +pub const CRYPT_KM: BCRYPT_QUERY_PROVIDER_MODE = 2u32; +pub const CRYPT_LAST_ALG_OID_GROUP_ID: u32 = 4u32; +pub const CRYPT_LAST_OID_GROUP_ID: u32 = 10u32; +pub const CRYPT_LDAP_AREC_EXCLUSIVE_RETRIEVAL: u32 = 262144u32; +pub const CRYPT_LDAP_INSERT_ENTRY_ATTRIBUTE: u32 = 32768u32; +pub const CRYPT_LDAP_SCOPE_BASE_ONLY_RETRIEVAL: u32 = 8192u32; +pub const CRYPT_LDAP_SIGN_RETRIEVAL: u32 = 65536u32; +pub const CRYPT_LITTLE_ENDIAN: u32 = 1u32; +pub const CRYPT_LOCAL: BCRYPT_TABLE = 1u32; +pub const CRYPT_LOCALIZED_NAME_ENCODING_TYPE: u32 = 0u32; +pub const CRYPT_LOCALIZED_NAME_OID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("LocalizedNames"); +pub const CRYPT_MAC: u32 = 32u32; +pub const CRYPT_MACHINE_DEFAULT: u32 = 1u32; +pub const CRYPT_MACHINE_KEYSET: CRYPT_KEY_FLAGS = 32u32; +pub const CRYPT_MATCH_ANY_ENCODING_TYPE: u32 = 4294967295u32; +pub const CRYPT_MESSAGE_BARE_CONTENT_OUT_FLAG: u32 = 1u32; +pub const CRYPT_MESSAGE_ENCAPSULATED_CONTENT_OUT_FLAG: u32 = 2u32; +pub const CRYPT_MESSAGE_KEYID_RECIPIENT_FLAG: u32 = 4u32; +pub const CRYPT_MESSAGE_KEYID_SIGNER_FLAG: u32 = 4u32; +pub const CRYPT_MESSAGE_SILENT_KEYSET_FLAG: u32 = 64u32; +pub const CRYPT_MIN_DEPENDENCIES: CRYPT_IMAGE_REF_FLAGS = 1u32; +pub const CRYPT_MM: BCRYPT_QUERY_PROVIDER_MODE = 3u32; +pub const CRYPT_MODE_CBC: u32 = 1u32; +pub const CRYPT_MODE_CBCI: u32 = 6u32; +pub const CRYPT_MODE_CBCOFM: u32 = 9u32; +pub const CRYPT_MODE_CBCOFMI: u32 = 10u32; +pub const CRYPT_MODE_CFB: u32 = 4u32; +pub const CRYPT_MODE_CFBP: u32 = 7u32; +pub const CRYPT_MODE_CTS: u32 = 5u32; +pub const CRYPT_MODE_ECB: u32 = 2u32; +pub const CRYPT_MODE_OFB: u32 = 3u32; +pub const CRYPT_MODE_OFBP: u32 = 8u32; +pub const CRYPT_NDR_ENCODING: u32 = 2u32; +pub const CRYPT_NEWKEYSET: u32 = 8u32; +pub const CRYPT_NEXT: u32 = 2u32; +pub const CRYPT_NOHASHOID: u32 = 1u32; +pub const CRYPT_NOT_MODIFIED_RETRIEVAL: u32 = 4194304u32; +pub const CRYPT_NO_AUTH_RETRIEVAL: u32 = 131072u32; +pub const CRYPT_NO_OCSP_FAILOVER_TO_CRL_RETRIEVAL: u32 = 33554432u32; +pub const CRYPT_NO_SALT: CRYPT_KEY_FLAGS = 16u32; +pub const CRYPT_OAEP: CRYPT_KEY_FLAGS = 64u32; +pub const CRYPT_OBJECT_LOCATOR_FIRST_RESERVED_USER_NAME_TYPE: u32 = 33u32; +pub const CRYPT_OBJECT_LOCATOR_LAST_RESERVED_NAME_TYPE: u32 = 32u32; +pub const CRYPT_OBJECT_LOCATOR_LAST_RESERVED_USER_NAME_TYPE: u32 = 65535u32; +pub const CRYPT_OBJECT_LOCATOR_RELEASE_DLL_UNLOAD: CRYPT_OBJECT_LOCATOR_RELEASE_REASON = 4u32; +pub const CRYPT_OBJECT_LOCATOR_RELEASE_PROCESS_EXIT: CRYPT_OBJECT_LOCATOR_RELEASE_REASON = 3u32; +pub const CRYPT_OBJECT_LOCATOR_RELEASE_SERVICE_STOP: CRYPT_OBJECT_LOCATOR_RELEASE_REASON = 2u32; +pub const CRYPT_OBJECT_LOCATOR_RELEASE_SYSTEM_SHUTDOWN: CRYPT_OBJECT_LOCATOR_RELEASE_REASON = 1u32; +pub const CRYPT_OBJECT_LOCATOR_SPN_NAME_TYPE: u32 = 1u32; +pub const CRYPT_OCSP_ONLY_RETRIEVAL: u32 = 16777216u32; +pub const CRYPT_OFFLINE_CHECK_RETRIEVAL: u32 = 16384u32; +pub const CRYPT_OID_CREATE_COM_OBJECT_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllCreateCOMObject"); +pub const CRYPT_OID_DECODE_OBJECT_EX_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllDecodeObjectEx"); +pub const CRYPT_OID_DECODE_OBJECT_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllDecodeObject"); +pub const CRYPT_OID_DISABLE_SEARCH_DS_FLAG: u32 = 2147483648u32; +pub const CRYPT_OID_ENCODE_OBJECT_EX_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllEncodeObjectEx"); +pub const CRYPT_OID_ENCODE_OBJECT_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllEncodeObject"); +pub const CRYPT_OID_ENUM_PHYSICAL_STORE_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CertDllEnumPhysicalStore"); +pub const CRYPT_OID_ENUM_SYSTEM_STORE_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CertDllEnumSystemStore"); +pub const CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllExportPrivateKeyInfoEx"); +pub const CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllExportPublicKeyInfoEx2"); +pub const CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllExportPublicKeyInfoFromBCryptKeyHandle"); +pub const CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllExportPublicKeyInfoEx"); +pub const CRYPT_OID_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllExtractEncodedSignatureParameters"); +pub const CRYPT_OID_FIND_LOCALIZED_NAME_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllFindLocalizedName"); +pub const CRYPT_OID_FIND_OID_INFO_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllFindOIDInfo"); +pub const CRYPT_OID_FORMAT_OBJECT_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllFormatObject"); +pub const CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllImportPrivateKeyInfoEx"); +pub const CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllImportPublicKeyInfoEx2"); +pub const CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllImportPublicKeyInfoEx"); +pub const CRYPT_OID_INFO_ALGID_KEY: u32 = 3u32; +pub const CRYPT_OID_INFO_CNG_ALGID_KEY: u32 = 5u32; +pub const CRYPT_OID_INFO_CNG_SIGN_KEY: u32 = 6u32; +pub const CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptOIDInfoECCParameters"); +pub const CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptOIDInfoECCWrapParameters"); +pub const CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptOIDInfoHashParameters"); +pub const CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptOIDInfoMgf1Parameters"); +pub const CRYPT_OID_INFO_NAME_KEY: u32 = 2u32; +pub const CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptOIDInfoNoParameters"); +pub const CRYPT_OID_INFO_NO_SIGN_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptOIDInfoNoSign"); +pub const CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptOIDInfoOAEPParameters"); +pub const CRYPT_OID_INFO_OID_GROUP_BIT_LEN_MASK: u32 = 268369920u32; +pub const CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT: u32 = 16u32; +pub const CRYPT_OID_INFO_OID_KEY: u32 = 1u32; +pub const CRYPT_OID_INFO_OID_KEY_FLAGS_MASK: u32 = 4294901760u32; +pub const CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG: CRYPT_IMPORT_PUBLIC_KEY_FLAGS = 1073741824u32; +pub const CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG: CRYPT_IMPORT_PUBLIC_KEY_FLAGS = 2147483648u32; +pub const CRYPT_OID_INFO_SIGN_KEY: u32 = 4u32; +pub const CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG: u32 = 1u32; +pub const CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG: u32 = 4u32; +pub const CRYPT_OID_OPEN_STORE_PROV_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CertDllOpenStoreProv"); +pub const CRYPT_OID_OPEN_SYSTEM_STORE_PROV_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CertDllOpenSystemStoreProv"); +pub const CRYPT_OID_PREFER_CNG_ALGID_FLAG: u32 = 1073741824u32; +pub const CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG: u32 = 1073741824u32; +pub const CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG: u32 = 2147483648u32; +pub const CRYPT_OID_REGISTER_PHYSICAL_STORE_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CertDllRegisterPhysicalStore"); +pub const CRYPT_OID_REGISTER_SYSTEM_STORE_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CertDllRegisterSystemStore"); +pub const CRYPT_OID_REGPATH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Software\\Microsoft\\Cryptography\\OID"); +pub const CRYPT_OID_REG_DLL_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Dll"); +pub const CRYPT_OID_REG_ENCODING_TYPE_PREFIX: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("EncodingType "); +pub const CRYPT_OID_REG_FLAGS_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CryptFlags"); +pub const CRYPT_OID_REG_FUNC_NAME_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FuncName"); +pub const CRYPT_OID_REG_FUNC_NAME_VALUE_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("FuncName"); +pub const CRYPT_OID_SIGN_AND_ENCODE_HASH_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllSignAndEncodeHash"); +pub const CRYPT_OID_SYSTEM_STORE_LOCATION_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SystemStoreLocation"); +pub const CRYPT_OID_UNREGISTER_PHYSICAL_STORE_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CertDllUnregisterPhysicalStore"); +pub const CRYPT_OID_UNREGISTER_SYSTEM_STORE_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CertDllUnregisterSystemStore"); +pub const CRYPT_OID_USE_CURVE_NAME_FOR_ENCODE_FLAG: u32 = 536870912u32; +pub const CRYPT_OID_USE_CURVE_PARAMETERS_FOR_ENCODE_FLAG: u32 = 268435456u32; +pub const CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG: u32 = 2u32; +pub const CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CertDllVerifyCertificateChainPolicy"); +pub const CRYPT_OID_VERIFY_CTL_USAGE_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CertDllVerifyCTLUsage"); +pub const CRYPT_OID_VERIFY_ENCODED_SIGNATURE_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CryptDllVerifyEncodedSignature"); +pub const CRYPT_OID_VERIFY_REVOCATION_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CertDllVerifyRevocation"); +pub const CRYPT_ONLINE: CRYPT_KEY_FLAGS = 128u32; +pub const CRYPT_OVERRIDE: CRYPT_CONTEXT_CONFIG_FLAGS = 65536u32; +pub const CRYPT_OVERWRITE: u32 = 1u32; +pub const CRYPT_OWF_REPL_LM_HASH: u32 = 1u32; +pub const CRYPT_PARAM_ASYNC_RETRIEVAL_COMPLETION: ::windows_sys::core::PCSTR = 1i32 as _; +pub const CRYPT_PARAM_CANCEL_ASYNC_RETRIEVAL: ::windows_sys::core::PCSTR = 2i32 as _; +pub const CRYPT_POLICY_OID_GROUP_ID: u32 = 8u32; +pub const CRYPT_PREGEN: CRYPT_KEY_FLAGS = 64u32; +pub const CRYPT_PRIORITY_BOTTOM: u32 = 4294967295u32; +pub const CRYPT_PRIORITY_TOP: u32 = 0u32; +pub const CRYPT_PROCESS_ISOLATE: CRYPT_IMAGE_REF_FLAGS = 65536u32; +pub const CRYPT_PROXY_CACHE_RETRIEVAL: u32 = 2097152u32; +pub const CRYPT_PSTORE: u32 = 2u32; +pub const CRYPT_PUBKEY_ALG_OID_GROUP_ID: u32 = 3u32; +pub const CRYPT_RANDOM_QUERY_STRING_RETRIEVAL: u32 = 67108864u32; +pub const CRYPT_RC2_128BIT_VERSION: u32 = 58u32; +pub const CRYPT_RC2_40BIT_VERSION: u32 = 160u32; +pub const CRYPT_RC2_56BIT_VERSION: u32 = 52u32; +pub const CRYPT_RC2_64BIT_VERSION: u32 = 120u32; +pub const CRYPT_RDN_ATTR_OID_GROUP_ID: u32 = 5u32; +pub const CRYPT_READ: u32 = 8u32; +pub const CRYPT_RECIPIENT: CRYPT_KEY_FLAGS = 16u32; +pub const CRYPT_REGISTER_FIRST_INDEX: u32 = 0u32; +pub const CRYPT_REGISTER_LAST_INDEX: u32 = 4294967295u32; +pub const CRYPT_RETRIEVE_MAX_ERROR_CONTENT_LENGTH: u32 = 4096u32; +pub const CRYPT_RETRIEVE_MULTIPLE_OBJECTS: u32 = 1u32; +pub const CRYPT_SECRETDIGEST: u32 = 1u32; +pub const CRYPT_SEC_DESCR: u32 = 1u32; +pub const CRYPT_SERVER: u32 = 1024u32; +pub const CRYPT_SF: CRYPT_KEY_FLAGS = 256u32; +pub const CRYPT_SGC: u32 = 1u32; +pub const CRYPT_SGCKEY: CRYPT_KEY_FLAGS = 8192u32; +pub const CRYPT_SGC_ENUM: u32 = 4u32; +pub const CRYPT_SIGN_ALG_OID_GROUP_ID: u32 = 4u32; +pub const CRYPT_SILENT: u32 = 64u32; +pub const CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG: u32 = 65536u32; +pub const CRYPT_SSL2_FALLBACK: CRYPT_KEY_FLAGS = 2u32; +pub const CRYPT_STICKY_CACHE_RETRIEVAL: u32 = 4096u32; +pub const CRYPT_STRING_ANY: CRYPT_STRING = 7u32; +pub const CRYPT_STRING_BASE64: CRYPT_STRING = 1u32; +pub const CRYPT_STRING_BASE64HEADER: CRYPT_STRING = 0u32; +pub const CRYPT_STRING_BASE64REQUESTHEADER: CRYPT_STRING = 3u32; +pub const CRYPT_STRING_BASE64URI: u32 = 13u32; +pub const CRYPT_STRING_BASE64X509CRLHEADER: CRYPT_STRING = 9u32; +pub const CRYPT_STRING_BASE64_ANY: CRYPT_STRING = 6u32; +pub const CRYPT_STRING_BINARY: CRYPT_STRING = 2u32; +pub const CRYPT_STRING_ENCODEMASK: u32 = 255u32; +pub const CRYPT_STRING_HASHDATA: u32 = 268435456u32; +pub const CRYPT_STRING_HEX: CRYPT_STRING = 4u32; +pub const CRYPT_STRING_HEXADDR: CRYPT_STRING = 10u32; +pub const CRYPT_STRING_HEXASCII: CRYPT_STRING = 5u32; +pub const CRYPT_STRING_HEXASCIIADDR: CRYPT_STRING = 11u32; +pub const CRYPT_STRING_HEXRAW: CRYPT_STRING = 12u32; +pub const CRYPT_STRING_HEX_ANY: CRYPT_STRING = 8u32; +pub const CRYPT_STRING_NOCR: u32 = 2147483648u32; +pub const CRYPT_STRING_NOCRLF: u32 = 1073741824u32; +pub const CRYPT_STRING_PERCENTESCAPE: u32 = 134217728u32; +pub const CRYPT_STRING_RESERVED100: u32 = 256u32; +pub const CRYPT_STRING_RESERVED200: u32 = 512u32; +pub const CRYPT_STRING_STRICT: CRYPT_STRING = 536870912u32; +pub const CRYPT_SUCCEED: u32 = 1u32; +pub const CRYPT_TEMPLATE_OID_GROUP_ID: u32 = 9u32; +pub const CRYPT_TYPE2_FORMAT: u32 = 2u32; +pub const CRYPT_UI_PROMPT: u32 = 4u32; +pub const CRYPT_UM: BCRYPT_QUERY_PROVIDER_MODE = 1u32; +pub const CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG: u32 = 16777216u32; +pub const CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG: CRYPT_ENCODE_OBJECT_FLAGS = 1073741824u32; +pub const CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG: CRYPT_ENCODE_OBJECT_FLAGS = 2147483648u32; +pub const CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG: CRYPT_ENCODE_OBJECT_FLAGS = 536870912u32; +pub const CRYPT_UNICODE_NAME_ENCODE_FORCE_UTF8_UNICODE_FLAG: u32 = 268435456u32; +pub const CRYPT_UPDATE_KEY: u32 = 8u32; +pub const CRYPT_USERDATA: u32 = 1u32; +pub const CRYPT_USER_DEFAULT: u32 = 2u32; +pub const CRYPT_USER_KEYSET: CRYPT_KEY_FLAGS = 4096u32; +pub const CRYPT_USER_PROTECTED: CRYPT_KEY_FLAGS = 2u32; +pub const CRYPT_USER_PROTECTED_STRONG: u32 = 1048576u32; +pub const CRYPT_VERIFYCONTEXT: u32 = 4026531840u32; +pub const CRYPT_VERIFY_CERT_SIGN_CHECK_WEAK_HASH_FLAG: u32 = 8u32; +pub const CRYPT_VERIFY_CERT_SIGN_DISABLE_MD2_MD4_FLAG: CRYPT_VERIFY_CERT_FLAGS = 1u32; +pub const CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT: u32 = 2u32; +pub const CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN: u32 = 3u32; +pub const CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL: u32 = 4u32; +pub const CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY: u32 = 1u32; +pub const CRYPT_VERIFY_CERT_SIGN_RETURN_STRONG_PROPERTIES_FLAG: CRYPT_VERIFY_CERT_FLAGS = 4u32; +pub const CRYPT_VERIFY_CERT_SIGN_SET_STRONG_PROPERTIES_FLAG: CRYPT_VERIFY_CERT_FLAGS = 2u32; +pub const CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB: u32 = 1u32; +pub const CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT: u32 = 2u32; +pub const CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL: u32 = 3u32; +pub const CRYPT_VERIFY_CERT_SIGN_SUBJECT_OCSP_BASIC_SIGNED_RESPONSE: u32 = 4u32; +pub const CRYPT_VERIFY_CONTEXT_SIGNATURE: u32 = 32u32; +pub const CRYPT_VERIFY_DATA_HASH: u32 = 64u32; +pub const CRYPT_VOLATILE: CRYPT_KEY_FLAGS = 4096u32; +pub const CRYPT_WIRE_ONLY_RETRIEVAL: u32 = 4u32; +pub const CRYPT_WRITE: u32 = 16u32; +pub const CRYPT_X931_FORMAT: u32 = 4u32; +pub const CRYPT_X942_COUNTER_BYTE_LENGTH: u32 = 4u32; +pub const CRYPT_X942_KEY_LENGTH_BYTE_LENGTH: u32 = 4u32; +pub const CRYPT_XML_ALGORITHM_INFO_FIND_BY_CNG_ALGID: u32 = 3u32; +pub const CRYPT_XML_ALGORITHM_INFO_FIND_BY_CNG_SIGN_ALGID: u32 = 4u32; +pub const CRYPT_XML_ALGORITHM_INFO_FIND_BY_NAME: u32 = 2u32; +pub const CRYPT_XML_ALGORITHM_INFO_FIND_BY_URI: u32 = 1u32; +pub const CRYPT_XML_BLOB_MAX: u32 = 2147483640u32; +pub const CRYPT_XML_CHARSET_AUTO: CRYPT_XML_CHARSET = 0i32; +pub const CRYPT_XML_CHARSET_UTF16BE: CRYPT_XML_CHARSET = 3i32; +pub const CRYPT_XML_CHARSET_UTF16LE: CRYPT_XML_CHARSET = 2i32; +pub const CRYPT_XML_CHARSET_UTF8: CRYPT_XML_CHARSET = 1i32; +pub const CRYPT_XML_DIGEST_REFERENCE_DATA_TRANSFORMED: u32 = 1u32; +pub const CRYPT_XML_DIGEST_VALUE_MAX: u32 = 128u32; +pub const CRYPT_XML_E_ALGORITHM: ::windows_sys::core::HRESULT = -2146885372i32; +pub const CRYPT_XML_E_BASE: ::windows_sys::core::HRESULT = -2146885376i32; +pub const CRYPT_XML_E_ENCODING: ::windows_sys::core::HRESULT = -2146885373i32; +pub const CRYPT_XML_E_HANDLE: ::windows_sys::core::HRESULT = -2146885370i32; +pub const CRYPT_XML_E_HASH_FAILED: ::windows_sys::core::HRESULT = -2146885365i32; +pub const CRYPT_XML_E_INVALID_DIGEST: ::windows_sys::core::HRESULT = -2146885367i32; +pub const CRYPT_XML_E_INVALID_KEYVALUE: ::windows_sys::core::HRESULT = -2146885361i32; +pub const CRYPT_XML_E_INVALID_SIGNATURE: ::windows_sys::core::HRESULT = -2146885366i32; +pub const CRYPT_XML_E_LARGE: ::windows_sys::core::HRESULT = -2146885375i32; +pub const CRYPT_XML_E_LAST: ::windows_sys::core::HRESULT = -2146885358i32; +pub const CRYPT_XML_E_NON_UNIQUE_ID: ::windows_sys::core::HRESULT = -2146885358i32; +pub const CRYPT_XML_E_OPERATION: ::windows_sys::core::HRESULT = -2146885369i32; +pub const CRYPT_XML_E_SIGNER: ::windows_sys::core::HRESULT = -2146885359i32; +pub const CRYPT_XML_E_SIGN_FAILED: ::windows_sys::core::HRESULT = -2146885364i32; +pub const CRYPT_XML_E_TOO_MANY_SIGNATURES: ::windows_sys::core::HRESULT = -2146885362i32; +pub const CRYPT_XML_E_TOO_MANY_TRANSFORMS: ::windows_sys::core::HRESULT = -2146885374i32; +pub const CRYPT_XML_E_TRANSFORM: ::windows_sys::core::HRESULT = -2146885371i32; +pub const CRYPT_XML_E_UNEXPECTED_XML: ::windows_sys::core::HRESULT = -2146885360i32; +pub const CRYPT_XML_E_UNRESOLVED_REFERENCE: ::windows_sys::core::HRESULT = -2146885368i32; +pub const CRYPT_XML_E_VERIFY_FAILED: ::windows_sys::core::HRESULT = -2146885363i32; +pub const CRYPT_XML_FLAG_ADD_OBJECT_CREATE_COPY: u32 = 1u32; +pub const CRYPT_XML_FLAG_ALWAYS_RETURN_ENCODED_OBJECT: u32 = 1073741824u32; +pub const CRYPT_XML_FLAG_CREATE_REFERENCE_AS_OBJECT: u32 = 1u32; +pub const CRYPT_XML_FLAG_DISABLE_EXTENSIONS: CRYPT_XML_FLAGS = 268435456u32; +pub const CRYPT_XML_FLAG_ECDSA_DSIG11: u32 = 67108864u32; +pub const CRYPT_XML_FLAG_ENFORCE_ID_NAME_FORMAT: u32 = 134217728u32; +pub const CRYPT_XML_FLAG_ENFORCE_ID_NCNAME_FORMAT: u32 = 536870912u32; +pub const CRYPT_XML_FLAG_NO_SERIALIZE: CRYPT_XML_FLAGS = 2147483648u32; +pub const CRYPT_XML_GROUP_ID_HASH: CRYPT_XML_GROUP_ID = 1u32; +pub const CRYPT_XML_GROUP_ID_SIGN: CRYPT_XML_GROUP_ID = 2u32; +pub const CRYPT_XML_ID_MAX: u32 = 256u32; +pub const CRYPT_XML_KEYINFO_SPEC_ENCODED: CRYPT_XML_KEYINFO_SPEC = 1i32; +pub const CRYPT_XML_KEYINFO_SPEC_NONE: CRYPT_XML_KEYINFO_SPEC = 0i32; +pub const CRYPT_XML_KEYINFO_SPEC_PARAM: CRYPT_XML_KEYINFO_SPEC = 2i32; +pub const CRYPT_XML_KEYINFO_TYPE_CUSTOM: CRYPT_XML_KEYINFO_TYPE = 5u32; +pub const CRYPT_XML_KEYINFO_TYPE_KEYNAME: CRYPT_XML_KEYINFO_TYPE = 1u32; +pub const CRYPT_XML_KEYINFO_TYPE_KEYVALUE: CRYPT_XML_KEYINFO_TYPE = 2u32; +pub const CRYPT_XML_KEYINFO_TYPE_RETRIEVAL: CRYPT_XML_KEYINFO_TYPE = 3u32; +pub const CRYPT_XML_KEYINFO_TYPE_X509DATA: CRYPT_XML_KEYINFO_TYPE = 4u32; +pub const CRYPT_XML_KEY_VALUE_TYPE_CUSTOM: CRYPT_XML_KEY_VALUE_TYPE = 4u32; +pub const CRYPT_XML_KEY_VALUE_TYPE_DSA: CRYPT_XML_KEY_VALUE_TYPE = 1u32; +pub const CRYPT_XML_KEY_VALUE_TYPE_ECDSA: CRYPT_XML_KEY_VALUE_TYPE = 3u32; +pub const CRYPT_XML_KEY_VALUE_TYPE_RSA: CRYPT_XML_KEY_VALUE_TYPE = 2u32; +pub const CRYPT_XML_OBJECTS_MAX: u32 = 256u32; +pub const CRYPT_XML_PROPERTY_DOC_DECLARATION: CRYPT_XML_PROPERTY_ID = 4i32; +pub const CRYPT_XML_PROPERTY_MAX_HEAP_SIZE: CRYPT_XML_PROPERTY_ID = 1i32; +pub const CRYPT_XML_PROPERTY_MAX_SIGNATURES: CRYPT_XML_PROPERTY_ID = 3i32; +pub const CRYPT_XML_PROPERTY_SIGNATURE_LOCATION: CRYPT_XML_PROPERTY_ID = 2i32; +pub const CRYPT_XML_PROPERTY_XML_OUTPUT_CHARSET: CRYPT_XML_PROPERTY_ID = 5i32; +pub const CRYPT_XML_REFERENCES_MAX: u32 = 32760u32; +pub const CRYPT_XML_SIGNATURES_MAX: u32 = 16u32; +pub const CRYPT_XML_SIGNATURE_VALUE_MAX: u32 = 2048u32; +pub const CRYPT_XML_SIGN_ADD_KEYVALUE: CRYPT_XML_FLAGS = 1u32; +pub const CRYPT_XML_STATUS_DIGESTING: CRYPT_XML_STATUS_INFO_STATUS = 4u32; +pub const CRYPT_XML_STATUS_DIGEST_VALID: CRYPT_XML_STATUS_INFO_STATUS = 8u32; +pub const CRYPT_XML_STATUS_ERROR_DIGEST_INVALID: CRYPT_XML_STATUS_ERROR_STATUS = 2u32; +pub const CRYPT_XML_STATUS_ERROR_KEYINFO_NOT_PARSED: CRYPT_XML_STATUS_ERROR_STATUS = 131072u32; +pub const CRYPT_XML_STATUS_ERROR_NOT_RESOLVED: CRYPT_XML_STATUS_ERROR_STATUS = 1u32; +pub const CRYPT_XML_STATUS_ERROR_NOT_SUPPORTED_ALGORITHM: CRYPT_XML_STATUS_ERROR_STATUS = 5u32; +pub const CRYPT_XML_STATUS_ERROR_NOT_SUPPORTED_TRANSFORM: CRYPT_XML_STATUS_ERROR_STATUS = 8u32; +pub const CRYPT_XML_STATUS_ERROR_SIGNATURE_INVALID: CRYPT_XML_STATUS_ERROR_STATUS = 65536u32; +pub const CRYPT_XML_STATUS_INTERNAL_REFERENCE: CRYPT_XML_STATUS_INFO_STATUS = 1u32; +pub const CRYPT_XML_STATUS_KEY_AVAILABLE: CRYPT_XML_STATUS_INFO_STATUS = 2u32; +pub const CRYPT_XML_STATUS_NO_ERROR: u32 = 0u32; +pub const CRYPT_XML_STATUS_OPENED_TO_ENCODE: CRYPT_XML_STATUS_INFO_STATUS = 2147483648u32; +pub const CRYPT_XML_STATUS_SIGNATURE_VALID: CRYPT_XML_STATUS_INFO_STATUS = 65536u32; +pub const CRYPT_XML_TRANSFORM_MAX: u32 = 16u32; +pub const CRYPT_XML_TRANSFORM_ON_NODESET: CRYPT_XML_TRANSFORM_FLAGS = 2u32; +pub const CRYPT_XML_TRANSFORM_ON_STREAM: CRYPT_XML_TRANSFORM_FLAGS = 1u32; +pub const CRYPT_XML_TRANSFORM_URI_QUERY_STRING: CRYPT_XML_TRANSFORM_FLAGS = 3u32; +pub const CRYPT_XML_X509DATA_TYPE_CERTIFICATE: CRYPT_XML_X509DATA_TYPE = 4u32; +pub const CRYPT_XML_X509DATA_TYPE_CRL: CRYPT_XML_X509DATA_TYPE = 5u32; +pub const CRYPT_XML_X509DATA_TYPE_CUSTOM: CRYPT_XML_X509DATA_TYPE = 6u32; +pub const CRYPT_XML_X509DATA_TYPE_ISSUER_SERIAL: CRYPT_XML_X509DATA_TYPE = 1u32; +pub const CRYPT_XML_X509DATA_TYPE_SKI: CRYPT_XML_X509DATA_TYPE = 2u32; +pub const CRYPT_XML_X509DATA_TYPE_SUBJECT_NAME: CRYPT_XML_X509DATA_TYPE = 3u32; +pub const CRYPT_Y_ONLY: CRYPT_KEY_FLAGS = 1u32; +pub const CTL_ANY_SUBJECT_TYPE: u32 = 1u32; +pub const CTL_CERT_SUBJECT_TYPE: u32 = 2u32; +pub const CTL_ENTRY_FROM_PROP_CHAIN_FLAG: u32 = 1u32; +pub const CTL_FIND_ANY: CERT_FIND_TYPE = 0u32; +pub const CTL_FIND_EXISTING: CERT_FIND_TYPE = 5u32; +pub const CTL_FIND_MD5_HASH: CERT_FIND_TYPE = 2u32; +pub const CTL_FIND_NO_LIST_ID_CBDATA: u32 = 4294967295u32; +pub const CTL_FIND_SAME_USAGE_FLAG: CERT_FIND_TYPE = 1u32; +pub const CTL_FIND_SHA1_HASH: CERT_FIND_TYPE = 1u32; +pub const CTL_FIND_SUBJECT: CERT_FIND_TYPE = 4u32; +pub const CTL_FIND_USAGE: CERT_FIND_TYPE = 3u32; +pub const CTL_V1: u32 = 0u32; +pub const CUR_BLOB_VERSION: u32 = 2u32; +pub const DSA_FIPS186_2: DSAFIPSVERSION_ENUM = 0i32; +pub const DSA_FIPS186_3: DSAFIPSVERSION_ENUM = 1i32; +pub const DSA_HASH_ALGORITHM_SHA1: HASHALGORITHM_ENUM = 0i32; +pub const DSA_HASH_ALGORITHM_SHA256: HASHALGORITHM_ENUM = 1i32; +pub const DSA_HASH_ALGORITHM_SHA512: HASHALGORITHM_ENUM = 2i32; +pub const DirectionDecrypt: Direction = 2i32; +pub const DirectionEncrypt: Direction = 1i32; +pub const ECC_CMS_SHARED_INFO: ::windows_sys::core::PCSTR = 77i32 as _; +pub const ENUM_CEPSETUPPROP_AUTHENTICATION: CEPSetupProperty = 0i32; +pub const ENUM_CEPSETUPPROP_CAINFORMATION: MSCEPSetupProperty = 11i32; +pub const ENUM_CEPSETUPPROP_CHALLENGEURL: MSCEPSetupProperty = 13i32; +pub const ENUM_CEPSETUPPROP_EXCHANGEKEYINFORMATION: MSCEPSetupProperty = 10i32; +pub const ENUM_CEPSETUPPROP_KEYBASED_RENEWAL: CEPSetupProperty = 3i32; +pub const ENUM_CEPSETUPPROP_MSCEPURL: MSCEPSetupProperty = 12i32; +pub const ENUM_CEPSETUPPROP_RANAME_CITY: MSCEPSetupProperty = 6i32; +pub const ENUM_CEPSETUPPROP_RANAME_CN: MSCEPSetupProperty = 2i32; +pub const ENUM_CEPSETUPPROP_RANAME_COMPANY: MSCEPSetupProperty = 4i32; +pub const ENUM_CEPSETUPPROP_RANAME_COUNTRY: MSCEPSetupProperty = 8i32; +pub const ENUM_CEPSETUPPROP_RANAME_DEPT: MSCEPSetupProperty = 5i32; +pub const ENUM_CEPSETUPPROP_RANAME_EMAIL: MSCEPSetupProperty = 3i32; +pub const ENUM_CEPSETUPPROP_RANAME_STATE: MSCEPSetupProperty = 7i32; +pub const ENUM_CEPSETUPPROP_SIGNINGKEYINFORMATION: MSCEPSetupProperty = 9i32; +pub const ENUM_CEPSETUPPROP_SSLCERTHASH: CEPSetupProperty = 1i32; +pub const ENUM_CEPSETUPPROP_URL: CEPSetupProperty = 2i32; +pub const ENUM_CEPSETUPPROP_USECHALLENGE: MSCEPSetupProperty = 1i32; +pub const ENUM_CEPSETUPPROP_USELOCALSYSTEM: MSCEPSetupProperty = 0i32; +pub const ENUM_CESSETUPPROP_ALLOW_KEYBASED_RENEWAL: CESSetupProperty = 6i32; +pub const ENUM_CESSETUPPROP_AUTHENTICATION: CESSetupProperty = 2i32; +pub const ENUM_CESSETUPPROP_CACONFIG: CESSetupProperty = 1i32; +pub const ENUM_CESSETUPPROP_RENEWALONLY: CESSetupProperty = 5i32; +pub const ENUM_CESSETUPPROP_SSLCERTHASH: CESSetupProperty = 3i32; +pub const ENUM_CESSETUPPROP_URL: CESSetupProperty = 4i32; +pub const ENUM_CESSETUPPROP_USE_IISAPPPOOLIDENTITY: CESSetupProperty = 0i32; +pub const ENUM_SETUPPROP_CADSSUFFIX: CASetupProperty = 4i32; +pub const ENUM_SETUPPROP_CAKEYINFORMATION: CASetupProperty = 1i32; +pub const ENUM_SETUPPROP_CANAME: CASetupProperty = 3i32; +pub const ENUM_SETUPPROP_CATYPE: CASetupProperty = 0i32; +pub const ENUM_SETUPPROP_DATABASEDIRECTORY: CASetupProperty = 9i32; +pub const ENUM_SETUPPROP_EXPIRATIONDATE: CASetupProperty = 7i32; +pub const ENUM_SETUPPROP_INTERACTIVE: CASetupProperty = 2i32; +pub const ENUM_SETUPPROP_INVALID: CASetupProperty = -1i32; +pub const ENUM_SETUPPROP_LOGDIRECTORY: CASetupProperty = 10i32; +pub const ENUM_SETUPPROP_PARENTCAMACHINE: CASetupProperty = 12i32; +pub const ENUM_SETUPPROP_PARENTCANAME: CASetupProperty = 13i32; +pub const ENUM_SETUPPROP_PRESERVEDATABASE: CASetupProperty = 8i32; +pub const ENUM_SETUPPROP_REQUESTFILE: CASetupProperty = 14i32; +pub const ENUM_SETUPPROP_SHAREDFOLDER: CASetupProperty = 11i32; +pub const ENUM_SETUPPROP_VALIDITYPERIOD: CASetupProperty = 5i32; +pub const ENUM_SETUPPROP_VALIDITYPERIODUNIT: CASetupProperty = 6i32; +pub const ENUM_SETUPPROP_WEBCAMACHINE: CASetupProperty = 15i32; +pub const ENUM_SETUPPROP_WEBCANAME: CASetupProperty = 16i32; +pub const EXPORT_PRIVATE_KEYS: u32 = 4u32; +pub const EXPO_OFFLOAD_FUNC_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("OffloadModExpo"); +pub const EXPO_OFFLOAD_REG_VALUE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ExpoOffload"); +pub const E_ICARD_ARGUMENT: ::windows_sys::core::HRESULT = -1073413883i32; +pub const E_ICARD_COMMUNICATION: ::windows_sys::core::HRESULT = -1073413888i32; +pub const E_ICARD_DATA_ACCESS: ::windows_sys::core::HRESULT = -1073413887i32; +pub const E_ICARD_EXPORT: ::windows_sys::core::HRESULT = -1073413886i32; +pub const E_ICARD_FAIL: ::windows_sys::core::HRESULT = -1073413867i32; +pub const E_ICARD_FAILED_REQUIRED_CLAIMS: ::windows_sys::core::HRESULT = -1073413756i32; +pub const E_ICARD_IDENTITY: ::windows_sys::core::HRESULT = -1073413885i32; +pub const E_ICARD_IMPORT: ::windows_sys::core::HRESULT = -1073413884i32; +pub const E_ICARD_INFORMATIONCARD: ::windows_sys::core::HRESULT = -1073413881i32; +pub const E_ICARD_INVALID_PROOF_KEY: ::windows_sys::core::HRESULT = -1073413758i32; +pub const E_ICARD_LOGOVALIDATION: ::windows_sys::core::HRESULT = -1073413879i32; +pub const E_ICARD_MISSING_APPLIESTO: ::windows_sys::core::HRESULT = -1073413759i32; +pub const E_ICARD_PASSWORDVALIDATION: ::windows_sys::core::HRESULT = -1073413878i32; +pub const E_ICARD_POLICY: ::windows_sys::core::HRESULT = -1073413877i32; +pub const E_ICARD_PROCESSDIED: ::windows_sys::core::HRESULT = -1073413876i32; +pub const E_ICARD_REFRESH_REQUIRED: ::windows_sys::core::HRESULT = -1073413760i32; +pub const E_ICARD_REQUEST: ::windows_sys::core::HRESULT = -1073413882i32; +pub const E_ICARD_SERVICE: ::windows_sys::core::HRESULT = -1073413874i32; +pub const E_ICARD_SERVICEBUSY: ::windows_sys::core::HRESULT = -1073413875i32; +pub const E_ICARD_SHUTTINGDOWN: ::windows_sys::core::HRESULT = -1073413873i32; +pub const E_ICARD_STOREKEY: ::windows_sys::core::HRESULT = -1073413880i32; +pub const E_ICARD_STORE_IMPORT: ::windows_sys::core::HRESULT = -1073413868i32; +pub const E_ICARD_TOKENCREATION: ::windows_sys::core::HRESULT = -1073413872i32; +pub const E_ICARD_TRUSTEXCHANGE: ::windows_sys::core::HRESULT = -1073413871i32; +pub const E_ICARD_UI_INITIALIZATION: ::windows_sys::core::HRESULT = -1073413862i32; +pub const E_ICARD_UNKNOWN_REFERENCE: ::windows_sys::core::HRESULT = -1073413757i32; +pub const E_ICARD_UNTRUSTED: ::windows_sys::core::HRESULT = -1073413870i32; +pub const E_ICARD_USERCANCELLED: ::windows_sys::core::HRESULT = -1073413869i32; +pub const HP_ALGID: u32 = 1u32; +pub const HP_HASHSIZE: u32 = 4u32; +pub const HP_HASHVAL: CRYPT_SET_HASH_PARAM = 2u32; +pub const HP_HMAC_INFO: CRYPT_SET_HASH_PARAM = 5u32; +pub const HP_TLS1PRF_LABEL: u32 = 6u32; +pub const HP_TLS1PRF_SEED: u32 = 7u32; +pub const IFX_RSA_KEYGEN_VUL_AFFECTED_LEVEL_1: u32 = 1u32; +pub const IFX_RSA_KEYGEN_VUL_AFFECTED_LEVEL_2: u32 = 2u32; +pub const IFX_RSA_KEYGEN_VUL_NOT_AFFECTED: u32 = 0u32; +pub const INTERNATIONAL_USAGE: u32 = 1u32; +pub const KDF_ALGORITHMID: u32 = 8u32; +pub const KDF_CONTEXT: u32 = 14u32; +pub const KDF_GENERIC_PARAMETER: u32 = 17u32; +pub const KDF_HASH_ALGORITHM: u32 = 0u32; +pub const KDF_HKDF_INFO: u32 = 20u32; +pub const KDF_HKDF_SALT: u32 = 19u32; +pub const KDF_HMAC_KEY: u32 = 3u32; +pub const KDF_ITERATION_COUNT: u32 = 16u32; +pub const KDF_KEYBITLENGTH: u32 = 18u32; +pub const KDF_LABEL: u32 = 13u32; +pub const KDF_PARTYUINFO: u32 = 9u32; +pub const KDF_PARTYVINFO: u32 = 10u32; +pub const KDF_SALT: u32 = 15u32; +pub const KDF_SECRET_APPEND: u32 = 2u32; +pub const KDF_SECRET_HANDLE: u32 = 6u32; +pub const KDF_SECRET_PREPEND: u32 = 1u32; +pub const KDF_SUPPPRIVINFO: u32 = 12u32; +pub const KDF_SUPPPUBINFO: u32 = 11u32; +pub const KDF_TLS_PRF_LABEL: u32 = 4u32; +pub const KDF_TLS_PRF_PROTOCOL: u32 = 7u32; +pub const KDF_TLS_PRF_SEED: u32 = 5u32; +pub const KDF_USE_SECRET_AS_HMAC_KEY_FLAG: u32 = 1u32; +pub const KEYSTATEBLOB: u32 = 12u32; +pub const KEY_LENGTH_MASK: u32 = 4294901760u32; +pub const KP_ADMIN_PIN: u32 = 31u32; +pub const KP_ALGID: CRYPT_KEY_PARAM_ID = 7u32; +pub const KP_BLOCKLEN: CRYPT_KEY_PARAM_ID = 8u32; +pub const KP_CERTIFICATE: CRYPT_KEY_PARAM_ID = 26u32; +pub const KP_CLEAR_KEY: u32 = 27u32; +pub const KP_CLIENT_RANDOM: u32 = 21u32; +pub const KP_CMS_DH_KEY_INFO: u32 = 38u32; +pub const KP_CMS_KEY_INFO: u32 = 37u32; +pub const KP_EFFECTIVE_KEYLEN: u32 = 19u32; +pub const KP_G: u32 = 12u32; +pub const KP_GET_USE_COUNT: CRYPT_KEY_PARAM_ID = 42u32; +pub const KP_HIGHEST_VERSION: u32 = 41u32; +pub const KP_INFO: u32 = 18u32; +pub const KP_IV: u32 = 1u32; +pub const KP_KEYEXCHANGE_PIN: u32 = 32u32; +pub const KP_KEYLEN: CRYPT_KEY_PARAM_ID = 9u32; +pub const KP_KEYVAL: u32 = 30u32; +pub const KP_MODE: u32 = 4u32; +pub const KP_MODE_BITS: u32 = 5u32; +pub const KP_OAEP_PARAMS: u32 = 36u32; +pub const KP_P: u32 = 11u32; +pub const KP_PADDING: u32 = 3u32; +pub const KP_PERMISSIONS: CRYPT_KEY_PARAM_ID = 6u32; +pub const KP_PIN_ID: u32 = 43u32; +pub const KP_PIN_INFO: u32 = 44u32; +pub const KP_PRECOMP_MD5: u32 = 24u32; +pub const KP_PRECOMP_SHA: u32 = 25u32; +pub const KP_PREHASH: u32 = 34u32; +pub const KP_PUB_EX_LEN: u32 = 28u32; +pub const KP_PUB_EX_VAL: u32 = 29u32; +pub const KP_PUB_PARAMS: u32 = 39u32; +pub const KP_Q: u32 = 13u32; +pub const KP_RA: u32 = 16u32; +pub const KP_RB: u32 = 17u32; +pub const KP_ROUNDS: u32 = 35u32; +pub const KP_RP: u32 = 23u32; +pub const KP_SALT: CRYPT_KEY_PARAM_ID = 2u32; +pub const KP_SALT_EX: CRYPT_KEY_PARAM_ID = 10u32; +pub const KP_SCHANNEL_ALG: u32 = 20u32; +pub const KP_SERVER_RANDOM: u32 = 22u32; +pub const KP_SIGNATURE_PIN: u32 = 33u32; +pub const KP_VERIFY_PARAMS: u32 = 40u32; +pub const KP_X: u32 = 14u32; +pub const KP_Y: u32 = 15u32; +pub const KeyTypeHardware: CertKeyType = 6u32; +pub const KeyTypeOther: CertKeyType = 0u32; +pub const KeyTypePassport: CertKeyType = 3u32; +pub const KeyTypePassportRemote: CertKeyType = 4u32; +pub const KeyTypePassportSmartCard: CertKeyType = 5u32; +pub const KeyTypePhysicalSmartCard: CertKeyType = 2u32; +pub const KeyTypeSelfSigned: CertKeyType = 8u32; +pub const KeyTypeSoftware: CertKeyType = 7u32; +pub const KeyTypeVirtualSmartCard: CertKeyType = 1u32; +pub const LEGACY_DH_PRIVATE_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAPIDHPRIVATEBLOB"); +pub const LEGACY_DH_PUBLIC_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAPIDHPUBLICBLOB"); +pub const LEGACY_DSA_PRIVATE_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAPIDSAPRIVATEBLOB"); +pub const LEGACY_DSA_PUBLIC_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAPIDSAPUBLICBLOB"); +pub const LEGACY_DSA_V2_PRIVATE_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("V2CAPIDSAPRIVATEBLOB"); +pub const LEGACY_DSA_V2_PUBLIC_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("V2CAPIDSAPUBLICBLOB"); +pub const LEGACY_RSAPRIVATE_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAPIPRIVATEBLOB"); +pub const LEGACY_RSAPUBLIC_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAPIPUBLICBLOB"); +pub const MAXUIDLEN: u32 = 64u32; +pub const MICROSOFT_ROOT_CERT_CHAIN_POLICY_CHECK_APPLICATION_ROOT_FLAG: u32 = 131072u32; +pub const MICROSOFT_ROOT_CERT_CHAIN_POLICY_DISABLE_FLIGHT_ROOT_FLAG: u32 = 262144u32; +pub const MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG: u32 = 65536u32; +pub const MS_DEF_DH_SCHANNEL_PROV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft DH SChannel Cryptographic Provider"); +pub const MS_DEF_DH_SCHANNEL_PROV_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft DH SChannel Cryptographic Provider"); +pub const MS_DEF_DH_SCHANNEL_PROV_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft DH SChannel Cryptographic Provider"); +pub const MS_DEF_DSS_DH_PROV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"); +pub const MS_DEF_DSS_DH_PROV_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"); +pub const MS_DEF_DSS_DH_PROV_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"); +pub const MS_DEF_DSS_PROV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Base DSS Cryptographic Provider"); +pub const MS_DEF_DSS_PROV_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft Base DSS Cryptographic Provider"); +pub const MS_DEF_DSS_PROV_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Base DSS Cryptographic Provider"); +pub const MS_DEF_PROV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Base Cryptographic Provider v1.0"); +pub const MS_DEF_PROV_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft Base Cryptographic Provider v1.0"); +pub const MS_DEF_PROV_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Base Cryptographic Provider v1.0"); +pub const MS_DEF_RSA_SCHANNEL_PROV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft RSA SChannel Cryptographic Provider"); +pub const MS_DEF_RSA_SCHANNEL_PROV_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft RSA SChannel Cryptographic Provider"); +pub const MS_DEF_RSA_SCHANNEL_PROV_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft RSA SChannel Cryptographic Provider"); +pub const MS_DEF_RSA_SIG_PROV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft RSA Signature Cryptographic Provider"); +pub const MS_DEF_RSA_SIG_PROV_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft RSA Signature Cryptographic Provider"); +pub const MS_DEF_RSA_SIG_PROV_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft RSA Signature Cryptographic Provider"); +pub const MS_ENHANCED_PROV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Enhanced Cryptographic Provider v1.0"); +pub const MS_ENHANCED_PROV_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft Enhanced Cryptographic Provider v1.0"); +pub const MS_ENHANCED_PROV_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Enhanced Cryptographic Provider v1.0"); +pub const MS_ENH_DSS_DH_PROV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"); +pub const MS_ENH_DSS_DH_PROV_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"); +pub const MS_ENH_DSS_DH_PROV_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"); +pub const MS_ENH_RSA_AES_PROV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Enhanced RSA and AES Cryptographic Provider"); +pub const MS_ENH_RSA_AES_PROV_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft Enhanced RSA and AES Cryptographic Provider"); +pub const MS_ENH_RSA_AES_PROV_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Enhanced RSA and AES Cryptographic Provider"); +pub const MS_ENH_RSA_AES_PROV_XP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"); +pub const MS_ENH_RSA_AES_PROV_XP_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"); +pub const MS_ENH_RSA_AES_PROV_XP_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"); +pub const MS_KEY_PROTECTION_PROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Key Protection Provider"); +pub const MS_KEY_STORAGE_PROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Software Key Storage Provider"); +pub const MS_NGC_KEY_STORAGE_PROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Passport Key Storage Provider"); +pub const MS_PLATFORM_CRYPTO_PROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Platform Crypto Provider"); +pub const MS_PLATFORM_KEY_STORAGE_PROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Platform Crypto Provider"); +pub const MS_PRIMITIVE_PROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Primitive Provider"); +pub const MS_SCARD_PROV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Base Smart Card Crypto Provider"); +pub const MS_SCARD_PROV_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft Base Smart Card Crypto Provider"); +pub const MS_SCARD_PROV_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Base Smart Card Crypto Provider"); +pub const MS_SMART_CARD_KEY_STORAGE_PROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Smart Card Key Storage Provider"); +pub const MS_STRONG_PROV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Strong Cryptographic Provider"); +pub const MS_STRONG_PROV_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Microsoft Strong Cryptographic Provider"); +pub const MS_STRONG_PROV_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft Strong Cryptographic Provider"); +pub const NCRYPTBUFFER_ATTESTATIONSTATEMENT_BLOB: u32 = 51u32; +pub const NCRYPTBUFFER_ATTESTATION_CLAIM_CHALLENGE_REQUIRED: u32 = 53u32; +pub const NCRYPTBUFFER_ATTESTATION_CLAIM_TYPE: u32 = 52u32; +pub const NCRYPTBUFFER_CERT_BLOB: u32 = 47u32; +pub const NCRYPTBUFFER_CLAIM_IDBINDING_NONCE: u32 = 48u32; +pub const NCRYPTBUFFER_CLAIM_KEYATTESTATION_NONCE: u32 = 49u32; +pub const NCRYPTBUFFER_DATA: u32 = 1u32; +pub const NCRYPTBUFFER_ECC_CURVE_NAME: u32 = 60u32; +pub const NCRYPTBUFFER_ECC_PARAMETERS: u32 = 61u32; +pub const NCRYPTBUFFER_EMPTY: u32 = 0u32; +pub const NCRYPTBUFFER_KEY_PROPERTY_FLAGS: u32 = 50u32; +pub const NCRYPTBUFFER_PKCS_ALG_ID: u32 = 43u32; +pub const NCRYPTBUFFER_PKCS_ALG_OID: u32 = 41u32; +pub const NCRYPTBUFFER_PKCS_ALG_PARAM: u32 = 42u32; +pub const NCRYPTBUFFER_PKCS_ATTRS: u32 = 44u32; +pub const NCRYPTBUFFER_PKCS_KEY_NAME: u32 = 45u32; +pub const NCRYPTBUFFER_PKCS_OID: u32 = 40u32; +pub const NCRYPTBUFFER_PKCS_SECRET: u32 = 46u32; +pub const NCRYPTBUFFER_PROTECTION_DESCRIPTOR_STRING: u32 = 3u32; +pub const NCRYPTBUFFER_PROTECTION_FLAGS: u32 = 4u32; +pub const NCRYPTBUFFER_SSL_CLEAR_KEY: u32 = 23u32; +pub const NCRYPTBUFFER_SSL_CLIENT_RANDOM: u32 = 20u32; +pub const NCRYPTBUFFER_SSL_HIGHEST_VERSION: u32 = 22u32; +pub const NCRYPTBUFFER_SSL_KEY_ARG_DATA: u32 = 24u32; +pub const NCRYPTBUFFER_SSL_SERVER_RANDOM: u32 = 21u32; +pub const NCRYPTBUFFER_SSL_SESSION_HASH: u32 = 25u32; +pub const NCRYPTBUFFER_TPM_PLATFORM_CLAIM_NONCE: u32 = 81u32; +pub const NCRYPTBUFFER_TPM_PLATFORM_CLAIM_PCR_MASK: u32 = 80u32; +pub const NCRYPTBUFFER_TPM_PLATFORM_CLAIM_STATIC_CREATE: u32 = 82u32; +pub const NCRYPTBUFFER_TPM_SEAL_NO_DA_PROTECTION: u32 = 73u32; +pub const NCRYPTBUFFER_TPM_SEAL_PASSWORD: u32 = 70u32; +pub const NCRYPTBUFFER_TPM_SEAL_POLICYINFO: u32 = 71u32; +pub const NCRYPTBUFFER_TPM_SEAL_TICKET: u32 = 72u32; +pub const NCRYPTBUFFER_VERSION: u32 = 0u32; +pub const NCRYPTBUFFER_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS: u32 = 54u32; +pub const NCRYPT_3DES_112_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("3DES_112"); +pub const NCRYPT_3DES_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("3DES"); +pub const NCRYPT_AES_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AES"); +pub const NCRYPT_AES_ALGORITHM_GROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AES"); +pub const NCRYPT_ALGORITHM_GROUP_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Algorithm Group"); +pub const NCRYPT_ALGORITHM_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Algorithm Name"); +pub const NCRYPT_ALLOW_ALL_USAGES: u32 = 16777215u32; +pub const NCRYPT_ALLOW_ARCHIVING_FLAG: u32 = 4u32; +pub const NCRYPT_ALLOW_DECRYPT_FLAG: u32 = 1u32; +pub const NCRYPT_ALLOW_EXPORT_FLAG: u32 = 1u32; +pub const NCRYPT_ALLOW_KEY_AGREEMENT_FLAG: u32 = 4u32; +pub const NCRYPT_ALLOW_KEY_IMPORT_FLAG: u32 = 8u32; +pub const NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG: u32 = 8u32; +pub const NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG: u32 = 2u32; +pub const NCRYPT_ALLOW_SIGNING_FLAG: u32 = 2u32; +pub const NCRYPT_ALLOW_SILENT_KEY_ACCESS: u32 = 1u32; +pub const NCRYPT_ALTERNATE_KEY_STORAGE_LOCATION_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_ALTERNATE_KEY_STORAGE_LOCATION"); +pub const NCRYPT_ASSOCIATED_ECDH_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCardAssociatedECDHKey"); +pub const NCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE: NCRYPT_ALGORITHM_NAME_CLASS = 3u32; +pub const NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION: NCRYPT_OPERATION = 4u32; +pub const NCRYPT_ATTESTATION_FLAG: u32 = 32u32; +pub const NCRYPT_AUTHORITY_KEY_FLAG: u32 = 256u32; +pub const NCRYPT_AUTH_TAG_LENGTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AuthTagLength"); +pub const NCRYPT_BLOCK_LENGTH_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Block Length"); +pub const NCRYPT_CAPI_KDF_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CAPI_KDF"); +pub const NCRYPT_CERTIFICATE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCardKeyCertificate"); +pub const NCRYPT_CHAINING_MODE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Chaining Mode"); +pub const NCRYPT_CHANGEPASSWORD_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_CHANGEPASSWORD"); +pub const NCRYPT_CIPHER_BLOCK_PADDING_FLAG: u32 = 1u32; +pub const NCRYPT_CIPHER_KEY_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CipherKeyBlob"); +pub const NCRYPT_CIPHER_KEY_BLOB_MAGIC: u32 = 1380470851u32; +pub const NCRYPT_CIPHER_NO_PADDING_FLAG: u32 = 0u32; +pub const NCRYPT_CIPHER_OPERATION: NCRYPT_OPERATION = 1u32; +pub const NCRYPT_CIPHER_OTHER_PADDING_FLAG: u32 = 2u32; +pub const NCRYPT_CLAIM_AUTHORITY_AND_SUBJECT: u32 = 3u32; +pub const NCRYPT_CLAIM_AUTHORITY_ONLY: u32 = 1u32; +pub const NCRYPT_CLAIM_PLATFORM: u32 = 65536u32; +pub const NCRYPT_CLAIM_SUBJECT_ONLY: u32 = 2u32; +pub const NCRYPT_CLAIM_UNKNOWN: u32 = 4096u32; +pub const NCRYPT_CLAIM_VSM_KEY_ATTESTATION_STATEMENT: u32 = 4u32; +pub const NCRYPT_CLAIM_WEB_AUTH_SUBJECT_ONLY: u32 = 258u32; +pub const NCRYPT_DESCR_DELIMITER_AND: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AND"); +pub const NCRYPT_DESCR_DELIMITER_OR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OR"); +pub const NCRYPT_DESCR_EQUAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("="); +pub const NCRYPT_DESX_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DESX"); +pub const NCRYPT_DES_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DES"); +pub const NCRYPT_DES_ALGORITHM_GROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DES"); +pub const NCRYPT_DH_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DH"); +pub const NCRYPT_DH_ALGORITHM_GROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DH"); +pub const NCRYPT_DH_PARAMETERS_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DHParameters"); +pub const NCRYPT_DISMISS_UI_TIMEOUT_SEC_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCardDismissUITimeoutSeconds"); +pub const NCRYPT_DO_NOT_FINALIZE_FLAG: u32 = 1024u32; +pub const NCRYPT_DSA_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DSA"); +pub const NCRYPT_DSA_ALGORITHM_GROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DSA"); +pub const NCRYPT_ECC_CURVE_NAME_LIST_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECCCurveNameList"); +pub const NCRYPT_ECC_CURVE_NAME_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECCCurveName"); +pub const NCRYPT_ECC_PARAMETERS_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECCParameters"); +pub const NCRYPT_ECDH_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDH"); +pub const NCRYPT_ECDH_ALGORITHM_GROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDH"); +pub const NCRYPT_ECDH_P256_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDH_P256"); +pub const NCRYPT_ECDH_P384_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDH_P384"); +pub const NCRYPT_ECDH_P521_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDH_P521"); +pub const NCRYPT_ECDSA_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDSA"); +pub const NCRYPT_ECDSA_ALGORITHM_GROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDSA"); +pub const NCRYPT_ECDSA_P256_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDSA_P256"); +pub const NCRYPT_ECDSA_P384_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDSA_P384"); +pub const NCRYPT_ECDSA_P521_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ECDSA_P521"); +pub const NCRYPT_EXPORTED_ISOLATED_KEY_HEADER_CURRENT_VERSION: u32 = 0u32; +pub const NCRYPT_EXPORTED_ISOLATED_KEY_HEADER_V0: u32 = 0u32; +pub const NCRYPT_EXPORT_LEGACY_FLAG: u32 = 2048u32; +pub const NCRYPT_EXPORT_POLICY_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Export Policy"); +pub const NCRYPT_EXTENDED_ERRORS_FLAG: u32 = 268435456u32; +pub const NCRYPT_HASH_OPERATION: NCRYPT_OPERATION = 2u32; +pub const NCRYPT_HMAC_SHA256_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HMAC-SHA256"); +pub const NCRYPT_IGNORE_DEVICE_STATE_FLAG: u32 = 4096u32; +pub const NCRYPT_IMPL_HARDWARE_FLAG: u32 = 1u32; +pub const NCRYPT_IMPL_HARDWARE_RNG_FLAG: u32 = 16u32; +pub const NCRYPT_IMPL_REMOVABLE_FLAG: u32 = 8u32; +pub const NCRYPT_IMPL_SOFTWARE_FLAG: u32 = 2u32; +pub const NCRYPT_IMPL_TYPE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Impl Type"); +pub const NCRYPT_IMPL_VIRTUAL_ISOLATION_FLAG: u32 = 32u32; +pub const NCRYPT_INITIALIZATION_VECTOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IV"); +pub const NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES_CURRENT_VERSION: u32 = 0u32; +pub const NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES_V0: u32 = 0u32; +pub const NCRYPT_ISOLATED_KEY_ENVELOPE_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ISOLATED_KEY_ENVELOPE"); +pub const NCRYPT_ISOLATED_KEY_FLAG_CREATED_IN_ISOLATION: u32 = 1u32; +pub const NCRYPT_ISOLATED_KEY_FLAG_IMPORT_ONLY: u32 = 2u32; +pub const NCRYPT_KDF_KEY_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KDFKeyBlob"); +pub const NCRYPT_KDF_KEY_BLOB_MAGIC: u32 = 826688587u32; +pub const NCRYPT_KDF_SECRET_VALUE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KDFKeySecret"); +pub const NCRYPT_KEY_ACCESS_POLICY_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Key Access Policy"); +pub const NCRYPT_KEY_ACCESS_POLICY_VERSION: u32 = 1u32; +pub const NCRYPT_KEY_ATTEST_MAGIC: u32 = 1146110283u32; +pub const NCRYPT_KEY_DERIVATION_GROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KEY_DERIVATION"); +pub const NCRYPT_KEY_DERIVATION_INTERFACE: u32 = 7u32; +pub const NCRYPT_KEY_DERIVATION_OPERATION: u32 = 64u32; +pub const NCRYPT_KEY_PROTECTION_ALGORITHM_CERTIFICATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CERTIFICATE"); +pub const NCRYPT_KEY_PROTECTION_ALGORITHM_LOCAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LOCAL"); +pub const NCRYPT_KEY_PROTECTION_ALGORITHM_LOCKEDCREDENTIALS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LOCKEDCREDENTIALS"); +pub const NCRYPT_KEY_PROTECTION_ALGORITHM_SDDL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SDDL"); +pub const NCRYPT_KEY_PROTECTION_ALGORITHM_SID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SID"); +pub const NCRYPT_KEY_PROTECTION_ALGORITHM_WEBCREDENTIALS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WEBCREDENTIALS"); +pub const NCRYPT_KEY_PROTECTION_CERT_CERTBLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertBlob"); +pub const NCRYPT_KEY_PROTECTION_CERT_HASHID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HashId"); +pub const NCRYPT_KEY_PROTECTION_INTERFACE: u32 = 65540u32; +pub const NCRYPT_KEY_PROTECTION_LOCAL_LOGON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("logon"); +pub const NCRYPT_KEY_PROTECTION_LOCAL_MACHINE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("machine"); +pub const NCRYPT_KEY_PROTECTION_LOCAL_USER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("user"); +pub const NCRYPT_KEY_STORAGE_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KEY_STORAGE"); +pub const NCRYPT_KEY_STORAGE_INTERFACE: BCRYPT_INTERFACE = 65537u32; +pub const NCRYPT_KEY_TYPE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Key Type"); +pub const NCRYPT_KEY_USAGE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Key Usage"); +pub const NCRYPT_LAST_MODIFIED_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Modified"); +pub const NCRYPT_LENGTHS_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Lengths"); +pub const NCRYPT_LENGTH_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Length"); +pub const NCRYPT_MACHINE_KEY_FLAG: NCRYPT_FLAGS = 32u32; +pub const NCRYPT_MAX_ALG_ID_LENGTH: u32 = 512u32; +pub const NCRYPT_MAX_KEY_NAME_LENGTH: u32 = 512u32; +pub const NCRYPT_MAX_NAME_LENGTH_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Max Name Length"); +pub const NCRYPT_MAX_PROPERTY_DATA: u32 = 1048576u32; +pub const NCRYPT_MAX_PROPERTY_NAME: u32 = 64u32; +pub const NCRYPT_MD2_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MD2"); +pub const NCRYPT_MD4_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MD4"); +pub const NCRYPT_MD5_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MD5"); +pub const NCRYPT_NAMED_DESCRIPTOR_FLAG: u32 = 1u32; +pub const NCRYPT_NAME_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Name"); +pub const NCRYPT_NO_CACHED_PASSWORD: u32 = 16384u32; +pub const NCRYPT_NO_KEY_VALIDATION: NCRYPT_FLAGS = 8u32; +pub const NCRYPT_NO_PADDING_FLAG: NCRYPT_FLAGS = 1u32; +pub const NCRYPT_OPAQUETRANSPORT_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OpaqueTransport"); +pub const NCRYPT_OVERWRITE_KEY_FLAG: NCRYPT_FLAGS = 128u32; +pub const NCRYPT_PAD_CIPHER_FLAG: u32 = 16u32; +pub const NCRYPT_PAD_OAEP_FLAG: NCRYPT_FLAGS = 4u32; +pub const NCRYPT_PAD_PKCS1_FLAG: NCRYPT_FLAGS = 2u32; +pub const NCRYPT_PAD_PSS_FLAG: NCRYPT_FLAGS = 8u32; +pub const NCRYPT_PBKDF2_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PBKDF2"); +pub const NCRYPT_PCP_ALTERNATE_KEY_STORAGE_LOCATION_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_ALTERNATE_KEY_STORAGE_LOCATION"); +pub const NCRYPT_PCP_CHANGEPASSWORD_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_CHANGEPASSWORD"); +pub const NCRYPT_PCP_ECC_EKCERT_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_ECC_EKCERT"); +pub const NCRYPT_PCP_ECC_EKNVCERT_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_ECC_EKNVCERT"); +pub const NCRYPT_PCP_ECC_EKPUB_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_ECC_EKPUB"); +pub const NCRYPT_PCP_EKCERT_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_EKCERT"); +pub const NCRYPT_PCP_EKNVCERT_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_EKNVCERT"); +pub const NCRYPT_PCP_EKPUB_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_EKPUB"); +pub const NCRYPT_PCP_ENCRYPTION_KEY: u32 = 2u32; +pub const NCRYPT_PCP_EXPORT_ALLOWED_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_EXPORT_ALLOWED"); +pub const NCRYPT_PCP_HMACVERIFICATION_KEY: u32 = 16u32; +pub const NCRYPT_PCP_HMAC_AUTH_NONCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_HMAC_AUTH_NONCE"); +pub const NCRYPT_PCP_HMAC_AUTH_POLICYINFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_HMAC_AUTH_POLICYINFO"); +pub const NCRYPT_PCP_HMAC_AUTH_POLICYREF: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_HMAC_AUTH_POLICYREF"); +pub const NCRYPT_PCP_HMAC_AUTH_SIGNATURE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_HMAC_AUTH_SIGNATURE"); +pub const NCRYPT_PCP_HMAC_AUTH_TICKET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_HMAC_AUTH_TICKET"); +pub const NCRYPT_PCP_IDENTITY_KEY: u32 = 8u32; +pub const NCRYPT_PCP_INTERMEDIATE_CA_EKCERT_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_INTERMEDIATE_CA_EKCERT"); +pub const NCRYPT_PCP_KEYATTESTATION_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_TPM12_KEYATTESTATION"); +pub const NCRYPT_PCP_KEY_CREATIONHASH_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_KEY_CREATIONHASH"); +pub const NCRYPT_PCP_KEY_CREATIONTICKET_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_KEY_CREATIONTICKET"); +pub const NCRYPT_PCP_KEY_USAGE_POLICY_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_KEY_USAGE_POLICY"); +pub const NCRYPT_PCP_MIGRATIONPASSWORD_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_MIGRATIONPASSWORD"); +pub const NCRYPT_PCP_NO_DA_PROTECTION_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_NO_DA_PROTECTION"); +pub const NCRYPT_PCP_PASSWORD_REQUIRED_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_PASSWORD_REQUIRED"); +pub const NCRYPT_PCP_PCRTABLE_ALGORITHM_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_PCRTABLE_ALGORITHM"); +pub const NCRYPT_PCP_PCRTABLE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_PCRTABLE"); +pub const NCRYPT_PCP_PLATFORMHANDLE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_PLATFORMHANDLE"); +pub const NCRYPT_PCP_PLATFORM_BINDING_PCRALGID_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_PLATFORM_BINDING_PCRALGID"); +pub const NCRYPT_PCP_PLATFORM_BINDING_PCRDIGESTLIST_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_PLATFORM_BINDING_PCRDIGESTLIST"); +pub const NCRYPT_PCP_PLATFORM_BINDING_PCRDIGEST_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_PLATFORM_BINDING_PCRDIGEST"); +pub const NCRYPT_PCP_PLATFORM_BINDING_PCRMASK_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_PLATFORM_BINDING_PCRMASK"); +pub const NCRYPT_PCP_PLATFORM_TYPE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_PLATFORM_TYPE"); +pub const NCRYPT_PCP_PROVIDERHANDLE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_PROVIDERMHANDLE"); +pub const NCRYPT_PCP_PROVIDER_VERSION_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_PROVIDER_VERSION"); +pub const NCRYPT_PCP_PSS_SALT_SIZE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PSS Salt Size"); +pub const NCRYPT_PCP_RAW_POLICYDIGEST_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_RAW_POLICYDIGEST"); +pub const NCRYPT_PCP_RSA_EKCERT_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_RSA_EKCERT"); +pub const NCRYPT_PCP_RSA_EKNVCERT_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_RSA_EKNVCERT"); +pub const NCRYPT_PCP_RSA_EKPUB_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_RSA_EKPUB"); +pub const NCRYPT_PCP_RSA_SCHEME_HASH_ALG_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_RSA_SCHEME_HASH_ALG"); +pub const NCRYPT_PCP_RSA_SCHEME_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_RSA_SCHEME"); +pub const NCRYPT_PCP_SESSIONID_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_SESSIONID"); +pub const NCRYPT_PCP_SIGNATURE_KEY: u32 = 1u32; +pub const NCRYPT_PCP_SRKPUB_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_SRKPUB"); +pub const NCRYPT_PCP_STORAGEPARENT_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_STORAGEPARENT"); +pub const NCRYPT_PCP_STORAGE_KEY: u32 = 4u32; +pub const NCRYPT_PCP_SYMMETRIC_KEYBITS_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_SYMMETRIC_KEYBITS"); +pub const NCRYPT_PCP_TPM12_IDACTIVATION_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_TPM12_IDACTIVATION"); +pub const NCRYPT_PCP_TPM12_IDBINDING_DYNAMIC_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_TPM12_IDBINDING_DYNAMIC"); +pub const NCRYPT_PCP_TPM12_IDBINDING_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_TPM12_IDBINDING"); +pub const NCRYPT_PCP_TPM2BNAME_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_TPM2BNAME"); +pub const NCRYPT_PCP_TPM_FW_VERSION_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_TPM_FW_VERSION"); +pub const NCRYPT_PCP_TPM_IFX_RSA_KEYGEN_PROHIBITED_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_TPM_IFX_RSA_KEYGEN_PROHIBITED"); +pub const NCRYPT_PCP_TPM_IFX_RSA_KEYGEN_VULNERABILITY_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_TPM_IFX_RSA_KEYGEN_VULNERABILITY"); +pub const NCRYPT_PCP_TPM_MANUFACTURER_ID_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_TPM_MANUFACTURER_ID"); +pub const NCRYPT_PCP_TPM_VERSION_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_TPM_VERSION"); +pub const NCRYPT_PCP_USAGEAUTH_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCP_USAGEAUTH"); +pub const NCRYPT_PERSIST_FLAG: NCRYPT_FLAGS = 2147483648u32; +pub const NCRYPT_PERSIST_ONLY_FLAG: NCRYPT_FLAGS = 1073741824u32; +pub const NCRYPT_PIN_CACHE_APPLICATION_IMAGE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PinCacheApplicationImage"); +pub const NCRYPT_PIN_CACHE_APPLICATION_STATUS_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PinCacheApplicationStatus"); +pub const NCRYPT_PIN_CACHE_APPLICATION_TICKET_BYTE_LENGTH: u32 = 90u32; +pub const NCRYPT_PIN_CACHE_APPLICATION_TICKET_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PinCacheApplicationTicket"); +pub const NCRYPT_PIN_CACHE_CLEAR_FOR_CALLING_PROCESS_OPTION: u32 = 1u32; +pub const NCRYPT_PIN_CACHE_CLEAR_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PinCacheClear"); +pub const NCRYPT_PIN_CACHE_DISABLE_DPL_FLAG: u32 = 1u32; +pub const NCRYPT_PIN_CACHE_FLAGS_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PinCacheFlags"); +pub const NCRYPT_PIN_CACHE_FREE_APPLICATION_TICKET_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PinCacheFreeApplicationTicket"); +pub const NCRYPT_PIN_CACHE_IS_GESTURE_REQUIRED_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PinCacheIsGestureRequired"); +pub const NCRYPT_PIN_CACHE_PIN_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PinCachePin"); +pub const NCRYPT_PIN_CACHE_REQUIRE_GESTURE_FLAG: u32 = 1u32; +pub const NCRYPT_PIN_PROMPT_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCardPinPrompt"); +pub const NCRYPT_PIN_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCardPin"); +pub const NCRYPT_PKCS7_ENVELOPE_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PKCS7_ENVELOPE"); +pub const NCRYPT_PKCS8_PRIVATE_KEY_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PKCS8_PRIVATEKEY"); +pub const NCRYPT_PLATFORM_ATTEST_MAGIC: u32 = 1146110288u32; +pub const NCRYPT_PREFER_VIRTUAL_ISOLATION_FLAG: u32 = 65536u32; +pub const NCRYPT_PROTECTED_KEY_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProtectedKeyBlob"); +pub const NCRYPT_PROTECTED_KEY_BLOB_MAGIC: u32 = 1263817296u32; +pub const NCRYPT_PROTECTION_INFO_TYPE_DESCRIPTOR_STRING: u32 = 1u32; +pub const NCRYPT_PROTECT_TO_LOCAL_SYSTEM: u32 = 32768u32; +pub const NCRYPT_PROVIDER_HANDLE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Provider Handle"); +pub const NCRYPT_PUBLIC_LENGTH_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PublicKeyLength"); +pub const NCRYPT_RC2_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RC2"); +pub const NCRYPT_RC2_ALGORITHM_GROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RC2"); +pub const NCRYPT_READER_ICON_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCardReaderIcon"); +pub const NCRYPT_READER_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCardReader"); +pub const NCRYPT_REGISTER_NOTIFY_FLAG: NCRYPT_FLAGS = 1u32; +pub const NCRYPT_ROOT_CERTSTORE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartcardRootCertStore"); +pub const NCRYPT_RSA_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RSA"); +pub const NCRYPT_RSA_ALGORITHM_GROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RSA"); +pub const NCRYPT_RSA_SIGN_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RSA_SIGN"); +pub const NCRYPT_SCARD_NGC_KEY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCardNgcKeyName"); +pub const NCRYPT_SCARD_PIN_ID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCardPinId"); +pub const NCRYPT_SCARD_PIN_INFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCardPinInfo"); +pub const NCRYPT_SCHANNEL_INTERFACE: BCRYPT_INTERFACE = 65538u32; +pub const NCRYPT_SCHANNEL_SIGNATURE_INTERFACE: BCRYPT_INTERFACE = 65539u32; +pub const NCRYPT_SEALING_FLAG: u32 = 256u32; +pub const NCRYPT_SECRET_AGREEMENT_INTERFACE: NCRYPT_ALGORITHM_NAME_CLASS = 4u32; +pub const NCRYPT_SECRET_AGREEMENT_OPERATION: NCRYPT_OPERATION = 8u32; +pub const NCRYPT_SECURE_PIN_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCardSecurePin"); +pub const NCRYPT_SECURITY_DESCR_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Security Descr"); +pub const NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Security Descr Support"); +pub const NCRYPT_SHA1_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHA1"); +pub const NCRYPT_SHA256_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHA256"); +pub const NCRYPT_SHA384_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHA384"); +pub const NCRYPT_SHA512_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHA512"); +pub const NCRYPT_SIGNATURE_INTERFACE: NCRYPT_ALGORITHM_NAME_CLASS = 5u32; +pub const NCRYPT_SIGNATURE_LENGTH_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SignatureLength"); +pub const NCRYPT_SIGNATURE_OPERATION: NCRYPT_OPERATION = 16u32; +pub const NCRYPT_SILENT_FLAG: NCRYPT_FLAGS = 64u32; +pub const NCRYPT_SMARTCARD_GUID_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCardGuid"); +pub const NCRYPT_SP800108_CTR_HMAC_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SP800_108_CTR_HMAC"); +pub const NCRYPT_SP80056A_CONCAT_ALGORITHM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SP800_56A_CONCAT"); +pub const NCRYPT_TPM12_PROVIDER: u32 = 65536u32; +pub const NCRYPT_TPM_LOADABLE_KEY_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PcpTpmProtectedKeyBlob"); +pub const NCRYPT_TPM_LOADABLE_KEY_BLOB_MAGIC: u32 = 1297371211u32; +pub const NCRYPT_TPM_PAD_PSS_IGNORE_SALT: u32 = 32u32; +pub const NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT_CURRENT_VERSION: u32 = 0u32; +pub const NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT_V0: u32 = 0u32; +pub const NCRYPT_TPM_PSS_SALT_SIZE_HASHSIZE: u32 = 2u32; +pub const NCRYPT_TPM_PSS_SALT_SIZE_MAXIMUM: u32 = 1u32; +pub const NCRYPT_TPM_PSS_SALT_SIZE_UNKNOWN: u32 = 0u32; +pub const NCRYPT_TREAT_NIST_AS_GENERIC_ECC_FLAG: u32 = 8192u32; +pub const NCRYPT_UI_APPCONTAINER_ACCESS_MEDIUM_FLAG: u32 = 8u32; +pub const NCRYPT_UI_FINGERPRINT_PROTECTION_FLAG: u32 = 4u32; +pub const NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG: u32 = 2u32; +pub const NCRYPT_UI_POLICY_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UI Policy"); +pub const NCRYPT_UI_PROTECT_KEY_FLAG: u32 = 1u32; +pub const NCRYPT_UNIQUE_NAME_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Unique Name"); +pub const NCRYPT_UNPROTECT_NO_DECRYPT: NCRYPT_FLAGS = 1u32; +pub const NCRYPT_UNREGISTER_NOTIFY_FLAG: NCRYPT_FLAGS = 2u32; +pub const NCRYPT_USER_CERTSTORE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCardUserCertStore"); +pub const NCRYPT_USE_CONTEXT_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Use Context"); +pub const NCRYPT_USE_COUNT_ENABLED_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Enabled Use Count"); +pub const NCRYPT_USE_COUNT_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Use Count"); +pub const NCRYPT_USE_PER_BOOT_KEY_FLAG: u32 = 262144u32; +pub const NCRYPT_USE_PER_BOOT_KEY_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Per Boot Key"); +pub const NCRYPT_USE_VIRTUAL_ISOLATION_FLAG: u32 = 131072u32; +pub const NCRYPT_USE_VIRTUAL_ISOLATION_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Virtual Iso"); +pub const NCRYPT_VERSION_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Version"); +pub const NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS_CURRENT_VERSION: u32 = 0u32; +pub const NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS_V0: u32 = 0u32; +pub const NCRYPT_VSM_KEY_ATTESTATION_STATEMENT_CURRENT_VERSION: u32 = 0u32; +pub const NCRYPT_VSM_KEY_ATTESTATION_STATEMENT_V0: u32 = 0u32; +pub const NCRYPT_WINDOW_HANDLE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HWND Handle"); +pub const NCRYPT_WRITE_KEY_TO_LEGACY_STORE_FLAG: NCRYPT_FLAGS = 512u32; +pub const NETSCAPE_SIGN_CA_CERT_TYPE: u32 = 1u32; +pub const NETSCAPE_SIGN_CERT_TYPE: u32 = 16u32; +pub const NETSCAPE_SMIME_CA_CERT_TYPE: u32 = 2u32; +pub const NETSCAPE_SMIME_CERT_TYPE: u32 = 32u32; +pub const NETSCAPE_SSL_CA_CERT_TYPE: u32 = 4u32; +pub const NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE: u32 = 128u32; +pub const NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE: u32 = 64u32; +pub const OCSP_BASIC_BY_KEY_RESPONDER_ID: u32 = 2u32; +pub const OCSP_BASIC_BY_NAME_RESPONDER_ID: u32 = 1u32; +pub const OCSP_BASIC_GOOD_CERT_STATUS: u32 = 0u32; +pub const OCSP_BASIC_RESPONSE: ::windows_sys::core::PCSTR = 69i32 as _; +pub const OCSP_BASIC_RESPONSE_V1: u32 = 0u32; +pub const OCSP_BASIC_REVOKED_CERT_STATUS: u32 = 1u32; +pub const OCSP_BASIC_SIGNED_RESPONSE: ::windows_sys::core::PCSTR = 68i32 as _; +pub const OCSP_BASIC_UNKNOWN_CERT_STATUS: u32 = 2u32; +pub const OCSP_INTERNAL_ERROR_RESPONSE: u32 = 2u32; +pub const OCSP_MALFORMED_REQUEST_RESPONSE: u32 = 1u32; +pub const OCSP_REQUEST: ::windows_sys::core::PCSTR = 66i32 as _; +pub const OCSP_REQUEST_V1: u32 = 0u32; +pub const OCSP_RESPONSE: ::windows_sys::core::PCSTR = 67i32 as _; +pub const OCSP_SIGNED_REQUEST: ::windows_sys::core::PCSTR = 65i32 as _; +pub const OCSP_SIG_REQUIRED_RESPONSE: u32 = 5u32; +pub const OCSP_SUCCESSFUL_RESPONSE: u32 = 0u32; +pub const OCSP_TRY_LATER_RESPONSE: u32 = 3u32; +pub const OCSP_UNAUTHORIZED_RESPONSE: u32 = 6u32; +pub const OPAQUEKEYBLOB: u32 = 9u32; +pub const PKCS12_ALLOW_OVERWRITE_KEY: CRYPT_KEY_FLAGS = 16384u32; +pub const PKCS12_ALWAYS_CNG_KSP: CRYPT_KEY_FLAGS = 512u32; +pub const PKCS12_CONFIG_REGPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\PFX"); +pub const PKCS12_DISABLE_ENCRYPT_CERTIFICATES: u32 = 256u32; +pub const PKCS12_ENCRYPT_CERTIFICATES: u32 = 512u32; +pub const PKCS12_ENCRYPT_CERTIFICATES_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EncryptCertificates"); +pub const PKCS12_EXPORT_ECC_CURVE_OID: u32 = 8192u32; +pub const PKCS12_EXPORT_ECC_CURVE_PARAMETERS: u32 = 4096u32; +pub const PKCS12_EXPORT_PBES2_PARAMS: u32 = 128u32; +pub const PKCS12_EXPORT_RESERVED_MASK: u32 = 4294901760u32; +pub const PKCS12_EXPORT_SILENT: u32 = 64u32; +pub const PKCS12_IMPORT_RESERVED_MASK: u32 = 4294901760u32; +pub const PKCS12_IMPORT_SILENT: u32 = 64u32; +pub const PKCS12_INCLUDE_EXTENDED_PROPERTIES: CRYPT_KEY_FLAGS = 16u32; +pub const PKCS12_NO_PERSIST_KEY: CRYPT_KEY_FLAGS = 32768u32; +pub const PKCS12_ONLY_CERTIFICATES: u32 = 1024u32; +pub const PKCS12_ONLY_CERTIFICATES_CONTAINER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PfxContainer"); +pub const PKCS12_ONLY_CERTIFICATES_PROVIDER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PfxProvider"); +pub const PKCS12_ONLY_CERTIFICATES_PROVIDER_TYPE: u32 = 0u32; +pub const PKCS12_ONLY_NOT_ENCRYPTED_CERTIFICATES: u32 = 2048u32; +pub const PKCS12_PBES2_ALG_AES256_SHA256: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AES256-SHA256"); +pub const PKCS12_PBKDF2_ID_HMAC_SHA1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.2.7"); +pub const PKCS12_PBKDF2_ID_HMAC_SHA256: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.2.9"); +pub const PKCS12_PBKDF2_ID_HMAC_SHA384: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.2.10"); +pub const PKCS12_PBKDF2_ID_HMAC_SHA512: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.2.11"); +pub const PKCS12_PREFER_CNG_KSP: CRYPT_KEY_FLAGS = 256u32; +pub const PKCS12_PROTECT_TO_DOMAIN_SIDS: u32 = 32u32; +pub const PKCS12_VIRTUAL_ISOLATION_KEY: u32 = 65536u32; +pub const PKCS5_PADDING: u32 = 1u32; +pub const PKCS7_SIGNER_INFO: ::windows_sys::core::PCSTR = 500i32 as _; +pub const PKCS_7_ASN_ENCODING: CERT_QUERY_ENCODING_TYPE = 65536u32; +pub const PKCS_7_NDR_ENCODING: u32 = 131072u32; +pub const PKCS_ATTRIBUTE: ::windows_sys::core::PCSTR = 22i32 as _; +pub const PKCS_ATTRIBUTES: ::windows_sys::core::PCSTR = 48i32 as _; +pub const PKCS_CONTENT_INFO: ::windows_sys::core::PCSTR = 33i32 as _; +pub const PKCS_CONTENT_INFO_SEQUENCE_OF_ANY: ::windows_sys::core::PCSTR = 23i32 as _; +pub const PKCS_CTL: ::windows_sys::core::PCSTR = 37i32 as _; +pub const PKCS_ENCRYPTED_PRIVATE_KEY_INFO: ::windows_sys::core::PCSTR = 45i32 as _; +pub const PKCS_PRIVATE_KEY_INFO: ::windows_sys::core::PCSTR = 44i32 as _; +pub const PKCS_RC2_CBC_PARAMETERS: ::windows_sys::core::PCSTR = 41i32 as _; +pub const PKCS_RSAES_OAEP_PARAMETERS: ::windows_sys::core::PCSTR = 76i32 as _; +pub const PKCS_RSA_PRIVATE_KEY: ::windows_sys::core::PCSTR = 43i32 as _; +pub const PKCS_RSA_SSA_PSS_PARAMETERS: ::windows_sys::core::PCSTR = 75i32 as _; +pub const PKCS_RSA_SSA_PSS_TRAILER_FIELD_BC: u32 = 1u32; +pub const PKCS_SMIME_CAPABILITIES: ::windows_sys::core::PCSTR = 42i32 as _; +pub const PKCS_SORTED_CTL: ::windows_sys::core::PCSTR = 49i32 as _; +pub const PKCS_TIME_REQUEST: ::windows_sys::core::PCSTR = 18i32 as _; +pub const PKCS_UTC_TIME: ::windows_sys::core::PCSTR = 17i32 as _; +pub const PLAINTEXTKEYBLOB: u32 = 8u32; +pub const PP_ADMIN_PIN: u32 = 31u32; +pub const PP_APPLI_CERT: u32 = 18u32; +pub const PP_CERTCHAIN: u32 = 9u32; +pub const PP_CHANGE_PASSWORD: u32 = 7u32; +pub const PP_CLIENT_HWND: CRYPT_SET_PROV_PARAM_ID = 1u32; +pub const PP_CONTAINER: u32 = 6u32; +pub const PP_CONTEXT_INFO: u32 = 11u32; +pub const PP_CRYPT_COUNT_KEY_USE: u32 = 41u32; +pub const PP_DELETEKEY: CRYPT_SET_PROV_PARAM_ID = 24u32; +pub const PP_DISMISS_PIN_UI_SEC: u32 = 49u32; +pub const PP_ENUMALGS: u32 = 1u32; +pub const PP_ENUMALGS_EX: u32 = 22u32; +pub const PP_ENUMCONTAINERS: u32 = 2u32; +pub const PP_ENUMELECTROOTS: u32 = 26u32; +pub const PP_ENUMEX_SIGNING_PROT: u32 = 40u32; +pub const PP_ENUMMANDROOTS: u32 = 25u32; +pub const PP_IMPTYPE: u32 = 3u32; +pub const PP_IS_PFX_EPHEMERAL: u32 = 50u32; +pub const PP_KEYEXCHANGE_ALG: CRYPT_SET_PROV_PARAM_ID = 14u32; +pub const PP_KEYEXCHANGE_KEYSIZE: CRYPT_SET_PROV_PARAM_ID = 12u32; +pub const PP_KEYEXCHANGE_PIN: CRYPT_SET_PROV_PARAM_ID = 32u32; +pub const PP_KEYSET_SEC_DESCR: CRYPT_SET_PROV_PARAM_ID = 8u32; +pub const PP_KEYSET_TYPE: u32 = 27u32; +pub const PP_KEYSPEC: u32 = 39u32; +pub const PP_KEYSTORAGE: u32 = 17u32; +pub const PP_KEYX_KEYSIZE_INC: u32 = 35u32; +pub const PP_KEY_TYPE_SUBTYPE: u32 = 10u32; +pub const PP_NAME: u32 = 4u32; +pub const PP_PIN_PROMPT_STRING: CRYPT_SET_PROV_PARAM_ID = 44u32; +pub const PP_PROVTYPE: u32 = 16u32; +pub const PP_ROOT_CERTSTORE: CRYPT_SET_PROV_PARAM_ID = 46u32; +pub const PP_SECURE_KEYEXCHANGE_PIN: CRYPT_SET_PROV_PARAM_ID = 47u32; +pub const PP_SECURE_SIGNATURE_PIN: CRYPT_SET_PROV_PARAM_ID = 48u32; +pub const PP_SESSION_KEYSIZE: u32 = 20u32; +pub const PP_SGC_INFO: u32 = 37u32; +pub const PP_SIGNATURE_ALG: CRYPT_SET_PROV_PARAM_ID = 15u32; +pub const PP_SIGNATURE_KEYSIZE: CRYPT_SET_PROV_PARAM_ID = 13u32; +pub const PP_SIGNATURE_PIN: CRYPT_SET_PROV_PARAM_ID = 33u32; +pub const PP_SIG_KEYSIZE_INC: u32 = 34u32; +pub const PP_SMARTCARD_GUID: u32 = 45u32; +pub const PP_SMARTCARD_READER: CRYPT_SET_PROV_PARAM_ID = 43u32; +pub const PP_SMARTCARD_READER_ICON: u32 = 47u32; +pub const PP_SYM_KEYSIZE: u32 = 19u32; +pub const PP_UI_PROMPT: CRYPT_SET_PROV_PARAM_ID = 21u32; +pub const PP_UNIQUE_CONTAINER: u32 = 36u32; +pub const PP_USER_CERTSTORE: CRYPT_SET_PROV_PARAM_ID = 42u32; +pub const PP_USE_HARDWARE_RNG: CRYPT_SET_PROV_PARAM_ID = 38u32; +pub const PP_VERSION: u32 = 5u32; +pub const PRIVATEKEYBLOB: u32 = 7u32; +pub const PROV_DH_SCHANNEL: u32 = 18u32; +pub const PROV_DSS: u32 = 3u32; +pub const PROV_DSS_DH: u32 = 13u32; +pub const PROV_EC_ECDSA_FULL: u32 = 16u32; +pub const PROV_EC_ECDSA_SIG: u32 = 14u32; +pub const PROV_EC_ECNRA_FULL: u32 = 17u32; +pub const PROV_EC_ECNRA_SIG: u32 = 15u32; +pub const PROV_FORTEZZA: u32 = 4u32; +pub const PROV_INTEL_SEC: u32 = 22u32; +pub const PROV_MS_EXCHANGE: u32 = 5u32; +pub const PROV_REPLACE_OWF: u32 = 23u32; +pub const PROV_RNG: u32 = 21u32; +pub const PROV_RSA_AES: u32 = 24u32; +pub const PROV_RSA_FULL: u32 = 1u32; +pub const PROV_RSA_SCHANNEL: u32 = 12u32; +pub const PROV_RSA_SIG: u32 = 2u32; +pub const PROV_SPYRUS_LYNKS: u32 = 20u32; +pub const PROV_SSL: u32 = 6u32; +pub const PROV_STT_ACQ: u32 = 8u32; +pub const PROV_STT_BRND: u32 = 9u32; +pub const PROV_STT_ISS: u32 = 11u32; +pub const PROV_STT_MER: u32 = 7u32; +pub const PROV_STT_ROOT: u32 = 10u32; +pub const PUBLICKEYBLOB: u32 = 6u32; +pub const PUBLICKEYBLOBEX: u32 = 10u32; +pub const PVK_TYPE_FILE_NAME: SIGNER_PRIVATE_KEY_CHOICE = 1u32; +pub const PVK_TYPE_KEYCONTAINER: SIGNER_PRIVATE_KEY_CHOICE = 2u32; +pub const RANDOM_PADDING: u32 = 2u32; +pub const RECIPIENTPOLICYV1: u32 = 1u32; +pub const RECIPIENTPOLICYV2: u32 = 2u32; +pub const REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY: u32 = 2u32; +pub const REPORT_NO_PRIVATE_KEY: u32 = 1u32; +pub const REVOCATION_OID_CRL_REVOCATION: ::windows_sys::core::PCSTR = 1i32 as _; +pub const RSA1024BIT_KEY: u32 = 67108864u32; +pub const RSA_CSP_PUBLICKEYBLOB: ::windows_sys::core::PCSTR = 19i32 as _; +pub const SCHANNEL_ENC_KEY: u32 = 1u32; +pub const SCHANNEL_MAC_KEY: u32 = 0u32; +pub const SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SchemeDllRetrieveEncodedObjectW"); +pub const SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SchemeDllRetrieveEncodedObject"); +pub const SIGNATURE_RESOURCE_NUMBER: u32 = 666u32; +pub const SIGNER_AUTHCODE_ATTR: SIGNER_SIGNATURE_ATTRIBUTE_CHOICE = 1u32; +pub const SIGNER_CERT_POLICY_CHAIN: SIGNER_CERT_POLICY = 2u32; +pub const SIGNER_CERT_POLICY_CHAIN_NO_ROOT: SIGNER_CERT_POLICY = 8u32; +pub const SIGNER_CERT_POLICY_SPC: SIGNER_CERT_POLICY = 4u32; +pub const SIGNER_CERT_POLICY_STORE: SIGNER_CERT_POLICY = 1u32; +pub const SIGNER_CERT_SPC_CHAIN: SIGNER_CERT_CHOICE = 3u32; +pub const SIGNER_CERT_SPC_FILE: SIGNER_CERT_CHOICE = 1u32; +pub const SIGNER_CERT_STORE: SIGNER_CERT_CHOICE = 2u32; +pub const SIGNER_NO_ATTR: SIGNER_SIGNATURE_ATTRIBUTE_CHOICE = 0u32; +pub const SIGNER_SUBJECT_BLOB: SIGNER_SUBJECT_CHOICE = 2u32; +pub const SIGNER_SUBJECT_FILE: SIGNER_SUBJECT_CHOICE = 1u32; +pub const SIGNER_TIMESTAMP_AUTHENTICODE: SIGNER_TIMESTAMP_FLAGS = 1u32; +pub const SIGNER_TIMESTAMP_RFC3161: SIGNER_TIMESTAMP_FLAGS = 2u32; +pub const SIG_APPEND: SIGNER_SIGN_FLAGS = 4096u32; +pub const SIMPLEBLOB: u32 = 1u32; +pub const SITE_PIN_RULES_ALL_SUBDOMAINS_FLAG: u32 = 1u32; +pub const SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG: u32 = 1u32; +pub const SPC_DIGEST_GENERATE_FLAG: SIGNER_SIGN_FLAGS = 512u32; +pub const SPC_DIGEST_SIGN_EX_FLAG: SIGNER_SIGN_FLAGS = 16384u32; +pub const SPC_DIGEST_SIGN_FLAG: SIGNER_SIGN_FLAGS = 1024u32; +pub const SPC_EXC_PE_PAGE_HASHES_FLAG: SIGNER_SIGN_FLAGS = 16u32; +pub const SPC_INC_PE_DEBUG_INFO_FLAG: SIGNER_SIGN_FLAGS = 64u32; +pub const SPC_INC_PE_IMPORT_ADDR_TABLE_FLAG: SIGNER_SIGN_FLAGS = 32u32; +pub const SPC_INC_PE_PAGE_HASHES_FLAG: SIGNER_SIGN_FLAGS = 256u32; +pub const SPC_INC_PE_RESOURCES_FLAG: SIGNER_SIGN_FLAGS = 128u32; +pub const SSL_ECCPUBLIC_BLOB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SSLECCPUBLICBLOB"); +pub const SSL_F12_ERROR_TEXT_LENGTH: u32 = 256u32; +pub const SSL_HPKP_HEADER_COUNT: u32 = 2u32; +pub const SSL_HPKP_PKP_HEADER_INDEX: u32 = 0u32; +pub const SSL_HPKP_PKP_RO_HEADER_INDEX: u32 = 1u32; +pub const SSL_KEY_PIN_ERROR_TEXT_LENGTH: u32 = 512u32; +pub const SSL_OBJECT_LOCATOR_CERT_VALIDATION_CONFIG_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SslObjectLocatorInitializeCertValidationConfig"); +pub const SSL_OBJECT_LOCATOR_ISSUER_LIST_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SslObjectLocatorInitializeIssuerList"); +pub const SSL_OBJECT_LOCATOR_PFX_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SslObjectLocatorInitializePfx"); +pub const SYMMETRICWRAPKEYBLOB: u32 = 11u32; +pub const TIMESTAMP_DONT_HASH_DATA: u32 = 1u32; +pub const TIMESTAMP_FAILURE_BAD_ALG: u32 = 0u32; +pub const TIMESTAMP_FAILURE_BAD_FORMAT: u32 = 5u32; +pub const TIMESTAMP_FAILURE_BAD_REQUEST: u32 = 2u32; +pub const TIMESTAMP_FAILURE_EXTENSION_NOT_SUPPORTED: u32 = 16u32; +pub const TIMESTAMP_FAILURE_INFO_NOT_AVAILABLE: u32 = 17u32; +pub const TIMESTAMP_FAILURE_POLICY_NOT_SUPPORTED: u32 = 15u32; +pub const TIMESTAMP_FAILURE_SYSTEM_FAILURE: u32 = 25u32; +pub const TIMESTAMP_FAILURE_TIME_NOT_AVAILABLE: u32 = 14u32; +pub const TIMESTAMP_INFO: ::windows_sys::core::PCSTR = 80i32 as _; +pub const TIMESTAMP_NO_AUTH_RETRIEVAL: u32 = 131072u32; +pub const TIMESTAMP_REQUEST: ::windows_sys::core::PCSTR = 78i32 as _; +pub const TIMESTAMP_RESPONSE: ::windows_sys::core::PCSTR = 79i32 as _; +pub const TIMESTAMP_STATUS_GRANTED: CRYPT_TIMESTAMP_RESPONSE_STATUS = 0u32; +pub const TIMESTAMP_STATUS_GRANTED_WITH_MODS: CRYPT_TIMESTAMP_RESPONSE_STATUS = 1u32; +pub const TIMESTAMP_STATUS_REJECTED: CRYPT_TIMESTAMP_RESPONSE_STATUS = 2u32; +pub const TIMESTAMP_STATUS_REVOCATION_WARNING: CRYPT_TIMESTAMP_RESPONSE_STATUS = 4u32; +pub const TIMESTAMP_STATUS_REVOKED: CRYPT_TIMESTAMP_RESPONSE_STATUS = 5u32; +pub const TIMESTAMP_STATUS_WAITING: CRYPT_TIMESTAMP_RESPONSE_STATUS = 3u32; +pub const TIMESTAMP_VERIFY_CONTEXT_SIGNATURE: u32 = 32u32; +pub const TIMESTAMP_VERSION: CRYPT_TIMESTAMP_VERSION = 1u32; +pub const TIME_VALID_OID_FLUSH_CRL: ::windows_sys::core::PCSTR = 2i32 as _; +pub const TIME_VALID_OID_FLUSH_CRL_FROM_CERT: ::windows_sys::core::PCSTR = 3i32 as _; +pub const TIME_VALID_OID_FLUSH_CTL: ::windows_sys::core::PCSTR = 1i32 as _; +pub const TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CERT: ::windows_sys::core::PCSTR = 4i32 as _; +pub const TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CRL: ::windows_sys::core::PCSTR = 5i32 as _; +pub const TIME_VALID_OID_FLUSH_OBJECT_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("TimeValidDllFlushObject"); +pub const TIME_VALID_OID_GET_CRL: ::windows_sys::core::PCSTR = 2i32 as _; +pub const TIME_VALID_OID_GET_CRL_FROM_CERT: ::windows_sys::core::PCSTR = 3i32 as _; +pub const TIME_VALID_OID_GET_CTL: ::windows_sys::core::PCSTR = 1i32 as _; +pub const TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT: ::windows_sys::core::PCSTR = 4i32 as _; +pub const TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL: ::windows_sys::core::PCSTR = 5i32 as _; +pub const TIME_VALID_OID_GET_OBJECT_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("TimeValidDllGetObject"); +pub const TPM_RSA_SRK_SEAL_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MICROSOFT_PCP_KSP_RSA_SEAL_KEY_3BD1C4BF-004E-4E2F-8A4D-0BF633DCB074"); +pub const URL_OID_CERTIFICATE_CRL_DIST_POINT: ::windows_sys::core::PCSTR = 2i32 as _; +pub const URL_OID_CERTIFICATE_CRL_DIST_POINT_AND_OCSP: ::windows_sys::core::PCSTR = 11i32 as _; +pub const URL_OID_CERTIFICATE_FRESHEST_CRL: ::windows_sys::core::PCSTR = 6i32 as _; +pub const URL_OID_CERTIFICATE_ISSUER: ::windows_sys::core::PCSTR = 1i32 as _; +pub const URL_OID_CERTIFICATE_OCSP: ::windows_sys::core::PCSTR = 9i32 as _; +pub const URL_OID_CERTIFICATE_OCSP_AND_CRL_DIST_POINT: ::windows_sys::core::PCSTR = 10i32 as _; +pub const URL_OID_CERTIFICATE_ONLY_OCSP: ::windows_sys::core::PCSTR = 13i32 as _; +pub const URL_OID_CRL_FRESHEST_CRL: ::windows_sys::core::PCSTR = 7i32 as _; +pub const URL_OID_CRL_ISSUER: ::windows_sys::core::PCSTR = 5i32 as _; +pub const URL_OID_CROSS_CERT_DIST_POINT: ::windows_sys::core::PCSTR = 8i32 as _; +pub const URL_OID_CROSS_CERT_SUBJECT_INFO_ACCESS: ::windows_sys::core::PCSTR = 12i32 as _; +pub const URL_OID_CTL_ISSUER: ::windows_sys::core::PCSTR = 3i32 as _; +pub const URL_OID_CTL_NEXT_UPDATE: ::windows_sys::core::PCSTR = 4i32 as _; +pub const URL_OID_GET_OBJECT_URL_FUNC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("UrlDllGetObjectUrl"); +pub const USAGE_MATCH_TYPE_AND: u32 = 0u32; +pub const USAGE_MATCH_TYPE_OR: u32 = 1u32; +pub const X509_ALGORITHM_IDENTIFIER: ::windows_sys::core::PCSTR = 74i32 as _; +pub const X509_ALTERNATE_NAME: ::windows_sys::core::PCSTR = 12i32 as _; +pub const X509_ANY_STRING: i32 = 6i32; +pub const X509_ASN_ENCODING: CERT_QUERY_ENCODING_TYPE = 1u32; +pub const X509_AUTHORITY_INFO_ACCESS: ::windows_sys::core::PCSTR = 32i32 as _; +pub const X509_AUTHORITY_KEY_ID: ::windows_sys::core::PCSTR = 9i32 as _; +pub const X509_AUTHORITY_KEY_ID2: ::windows_sys::core::PCSTR = 31i32 as _; +pub const X509_BASIC_CONSTRAINTS: ::windows_sys::core::PCSTR = 13i32 as _; +pub const X509_BASIC_CONSTRAINTS2: ::windows_sys::core::PCSTR = 15i32 as _; +pub const X509_BIOMETRIC_EXT: ::windows_sys::core::PCSTR = 71i32 as _; +pub const X509_BITS: ::windows_sys::core::PCSTR = 26i32 as _; +pub const X509_BITS_WITHOUT_TRAILING_ZEROES: ::windows_sys::core::PCSTR = 51i32 as _; +pub const X509_CERT: ::windows_sys::core::PCSTR = 1i32 as _; +pub const X509_CERTIFICATE_TEMPLATE: ::windows_sys::core::PCSTR = 64i32 as _; +pub const X509_CERT_BUNDLE: ::windows_sys::core::PCSTR = 81i32 as _; +pub const X509_CERT_CRL_TO_BE_SIGNED: ::windows_sys::core::PCSTR = 3i32 as _; +pub const X509_CERT_PAIR: ::windows_sys::core::PCSTR = 53i32 as _; +pub const X509_CERT_POLICIES: ::windows_sys::core::PCSTR = 16i32 as _; +pub const X509_CERT_REQUEST_TO_BE_SIGNED: ::windows_sys::core::PCSTR = 4i32 as _; +pub const X509_CERT_TO_BE_SIGNED: ::windows_sys::core::PCSTR = 2i32 as _; +pub const X509_CHOICE_OF_TIME: ::windows_sys::core::PCSTR = 30i32 as _; +pub const X509_CRL_DIST_POINTS: ::windows_sys::core::PCSTR = 35i32 as _; +pub const X509_CRL_REASON_CODE: i32 = 29i32; +pub const X509_CROSS_CERT_DIST_POINTS: ::windows_sys::core::PCSTR = 58i32 as _; +pub const X509_DH_PARAMETERS: ::windows_sys::core::PCSTR = 47i32 as _; +pub const X509_DH_PUBLICKEY: i32 = 38i32; +pub const X509_DSS_PARAMETERS: ::windows_sys::core::PCSTR = 39i32 as _; +pub const X509_DSS_PUBLICKEY: i32 = 38i32; +pub const X509_DSS_SIGNATURE: ::windows_sys::core::PCSTR = 40i32 as _; +pub const X509_ECC_PARAMETERS: ::windows_sys::core::PCSTR = 85i32 as _; +pub const X509_ECC_PRIVATE_KEY: ::windows_sys::core::PCSTR = 82i32 as _; +pub const X509_ECC_SIGNATURE: ::windows_sys::core::PCSTR = 47i32 as _; +pub const X509_ENHANCED_KEY_USAGE: ::windows_sys::core::PCSTR = 36i32 as _; +pub const X509_ENUMERATED: ::windows_sys::core::PCSTR = 29i32 as _; +pub const X509_EXTENSIONS: ::windows_sys::core::PCSTR = 5i32 as _; +pub const X509_INTEGER: ::windows_sys::core::PCSTR = 27i32 as _; +pub const X509_ISSUING_DIST_POINT: ::windows_sys::core::PCSTR = 54i32 as _; +pub const X509_KEYGEN_REQUEST_TO_BE_SIGNED: ::windows_sys::core::PCSTR = 21i32 as _; +pub const X509_KEY_ATTRIBUTES: ::windows_sys::core::PCSTR = 10i32 as _; +pub const X509_KEY_USAGE: ::windows_sys::core::PCSTR = 14i32 as _; +pub const X509_KEY_USAGE_RESTRICTION: ::windows_sys::core::PCSTR = 11i32 as _; +pub const X509_LOGOTYPE_EXT: ::windows_sys::core::PCSTR = 70i32 as _; +pub const X509_MULTI_BYTE_INTEGER: ::windows_sys::core::PCSTR = 28i32 as _; +pub const X509_MULTI_BYTE_UINT: ::windows_sys::core::PCSTR = 38i32 as _; +pub const X509_NAME: ::windows_sys::core::PCSTR = 7i32 as _; +pub const X509_NAME_CONSTRAINTS: ::windows_sys::core::PCSTR = 55i32 as _; +pub const X509_NAME_VALUE: ::windows_sys::core::PCSTR = 6i32 as _; +pub const X509_NDR_ENCODING: u32 = 2u32; +pub const X509_OBJECT_IDENTIFIER: ::windows_sys::core::PCSTR = 73i32 as _; +pub const X509_OCTET_STRING: ::windows_sys::core::PCSTR = 25i32 as _; +pub const X509_PKIX_POLICY_QUALIFIER_USERNOTICE: ::windows_sys::core::PCSTR = 46i32 as _; +pub const X509_POLICY_CONSTRAINTS: ::windows_sys::core::PCSTR = 57i32 as _; +pub const X509_POLICY_MAPPINGS: ::windows_sys::core::PCSTR = 56i32 as _; +pub const X509_PUBLIC_KEY_INFO: ::windows_sys::core::PCSTR = 8i32 as _; +pub const X509_QC_STATEMENTS_EXT: ::windows_sys::core::PCSTR = 42i32 as _; +pub const X509_SEQUENCE_OF_ANY: ::windows_sys::core::PCSTR = 34i32 as _; +pub const X509_SUBJECT_DIR_ATTRS: ::windows_sys::core::PCSTR = 84i32 as _; +pub const X509_SUBJECT_INFO_ACCESS: i32 = 32i32; +pub const X509_UNICODE_ANY_STRING: i32 = 24i32; +pub const X509_UNICODE_NAME: ::windows_sys::core::PCSTR = 20i32 as _; +pub const X509_UNICODE_NAME_VALUE: ::windows_sys::core::PCSTR = 24i32 as _; +pub const X942_DH_PARAMETERS: ::windows_sys::core::PCSTR = 50i32 as _; +pub const X942_OTHER_INFO: ::windows_sys::core::PCSTR = 52i32 as _; +pub const ZERO_PADDING: u32 = 3u32; +pub const cPRIV_KEY_CACHE_MAX_ITEMS_DEFAULT: u32 = 20u32; +pub const cPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS_DEFAULT: u32 = 86400u32; +pub const dwFORCE_KEY_PROTECTION_DISABLED: u32 = 0u32; +pub const dwFORCE_KEY_PROTECTION_HIGH: u32 = 2u32; +pub const dwFORCE_KEY_PROTECTION_USER_SELECT: u32 = 1u32; +pub const szFORCE_KEY_PROTECTION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ForceKeyProtection"); +pub const szKEY_CACHE_ENABLED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("CachePrivateKeys"); +pub const szKEY_CACHE_SECONDS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("PrivateKeyLifetimeSeconds"); +pub const szKEY_CRYPTOAPI_PRIVATE_KEY_OPTIONS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Software\\Policies\\Microsoft\\Cryptography"); +pub const szOIDVerisign_FailInfo: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113733.1.9.4"); +pub const szOIDVerisign_MessageType: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113733.1.9.2"); +pub const szOIDVerisign_PkiStatus: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113733.1.9.3"); +pub const szOIDVerisign_RecipientNonce: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113733.1.9.6"); +pub const szOIDVerisign_SenderNonce: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113733.1.9.5"); +pub const szOIDVerisign_TransactionID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113733.1.9.7"); +pub const szOID_ANSI_X942: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10046"); +pub const szOID_ANSI_X942_DH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10046.2.1"); +pub const szOID_ANY_APPLICATION_POLICY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.12.1"); +pub const szOID_ANY_CERT_POLICY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.32.0"); +pub const szOID_ANY_ENHANCED_KEY_USAGE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.37.0"); +pub const szOID_APPLICATION_CERT_POLICIES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.10"); +pub const szOID_APPLICATION_POLICY_CONSTRAINTS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.12"); +pub const szOID_APPLICATION_POLICY_MAPPINGS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.11"); +pub const szOID_ARCHIVED_KEY_ATTR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.13"); +pub const szOID_ARCHIVED_KEY_CERT_HASH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.16"); +pub const szOID_ATTEST_WHQL_CRYPTO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.5.1"); +pub const szOID_ATTR_PLATFORM_SPECIFICATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.23.133.2.17"); +pub const szOID_ATTR_SUPPORTED_ALGORITHMS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.52"); +pub const szOID_ATTR_TPM_SECURITY_ASSERTIONS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.23.133.2.18"); +pub const szOID_ATTR_TPM_SPECIFICATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.23.133.2.16"); +pub const szOID_AUTHORITY_INFO_ACCESS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.1.1"); +pub const szOID_AUTHORITY_KEY_IDENTIFIER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.1"); +pub const szOID_AUTHORITY_KEY_IDENTIFIER2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.35"); +pub const szOID_AUTHORITY_REVOCATION_LIST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.38"); +pub const szOID_AUTO_ENROLL_CTL_USAGE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.20.1"); +pub const szOID_BACKGROUND_OTHER_LOGOTYPE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.20.2"); +pub const szOID_BASIC_CONSTRAINTS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.10"); +pub const szOID_BASIC_CONSTRAINTS2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.19"); +pub const szOID_BIOMETRIC_EXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.1.2"); +pub const szOID_BIOMETRIC_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.41"); +pub const szOID_BUSINESS_CATEGORY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.15"); +pub const szOID_CA_CERTIFICATE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.37"); +pub const szOID_CERTIFICATE_REVOCATION_LIST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.39"); +pub const szOID_CERTIFICATE_TEMPLATE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.7"); +pub const szOID_CERTSRV_CA_VERSION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.1"); +pub const szOID_CERTSRV_CROSSCA_VERSION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.22"); +pub const szOID_CERTSRV_PREVIOUS_CERT_HASH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.2"); +pub const szOID_CERT_DISALLOWED_CA_FILETIME_PROP_ID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.11.128"); +pub const szOID_CERT_DISALLOWED_FILETIME_PROP_ID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.11.104"); +pub const szOID_CERT_EXTENSIONS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.14"); +pub const szOID_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.11.28"); +pub const szOID_CERT_KEY_IDENTIFIER_PROP_ID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.11.20"); +pub const szOID_CERT_MANIFOLD: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.20.3"); +pub const szOID_CERT_MD5_HASH_PROP_ID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.11.4"); +pub const szOID_CERT_POLICIES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.32"); +pub const szOID_CERT_POLICIES_95: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.3"); +pub const szOID_CERT_POLICIES_95_QUALIFIER1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113733.1.7.1.1"); +pub const szOID_CERT_PROP_ID_PREFIX: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.11."); +pub const szOID_CERT_SIGNATURE_HASH_PROP_ID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.11.15"); +pub const szOID_CERT_STRONG_KEY_OS_1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.72.2.1"); +pub const szOID_CERT_STRONG_KEY_OS_CURRENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.3.6.1.4.1.311.72.2.1"); +pub const szOID_CERT_STRONG_KEY_OS_PREFIX: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.72.2."); +pub const szOID_CERT_STRONG_SIGN_OS_1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.72.1.1"); +pub const szOID_CERT_STRONG_SIGN_OS_CURRENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.3.6.1.4.1.311.72.1.1"); +pub const szOID_CERT_STRONG_SIGN_OS_PREFIX: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.72.1."); +pub const szOID_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.11.29"); +pub const szOID_CMC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7"); +pub const szOID_CMC_ADD_ATTRIBUTES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.10.1"); +pub const szOID_CMC_ADD_EXTENSIONS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.8"); +pub const szOID_CMC_DATA_RETURN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.4"); +pub const szOID_CMC_DECRYPTED_POP: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.10"); +pub const szOID_CMC_ENCRYPTED_POP: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.9"); +pub const szOID_CMC_GET_CERT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.15"); +pub const szOID_CMC_GET_CRL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.16"); +pub const szOID_CMC_IDENTIFICATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.2"); +pub const szOID_CMC_IDENTITY_PROOF: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.3"); +pub const szOID_CMC_ID_CONFIRM_CERT_ACCEPTANCE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.24"); +pub const szOID_CMC_ID_POP_LINK_RANDOM: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.22"); +pub const szOID_CMC_ID_POP_LINK_WITNESS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.23"); +pub const szOID_CMC_LRA_POP_WITNESS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.11"); +pub const szOID_CMC_QUERY_PENDING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.21"); +pub const szOID_CMC_RECIPIENT_NONCE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.7"); +pub const szOID_CMC_REG_INFO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.18"); +pub const szOID_CMC_RESPONSE_INFO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.19"); +pub const szOID_CMC_REVOKE_REQUEST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.17"); +pub const szOID_CMC_SENDER_NONCE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.6"); +pub const szOID_CMC_STATUS_INFO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.1"); +pub const szOID_CMC_TRANSACTION_ID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.7.5"); +pub const szOID_CN_ECDSA_SHA256: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.156.11235.1.1.1"); +pub const szOID_COMMON_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.3"); +pub const szOID_COUNTRY_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.6"); +pub const szOID_CRL_DIST_POINTS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.31"); +pub const szOID_CRL_NEXT_PUBLISH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.4"); +pub const szOID_CRL_NUMBER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.20"); +pub const szOID_CRL_REASON_CODE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.21"); +pub const szOID_CRL_SELF_CDP: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.14"); +pub const szOID_CRL_VIRTUAL_BASE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.3"); +pub const szOID_CROSS_CERTIFICATE_PAIR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.40"); +pub const szOID_CROSS_CERT_DIST_POINTS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.9.1"); +pub const szOID_CTL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.1"); +pub const szOID_CT_CERT_SCTLIST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.11129.2.4.2"); +pub const szOID_CT_PKI_DATA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.12.2"); +pub const szOID_CT_PKI_RESPONSE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.12.3"); +pub const szOID_DELTA_CRL_INDICATOR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.27"); +pub const szOID_DESCRIPTION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.13"); +pub const szOID_DESTINATION_INDICATOR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.27"); +pub const szOID_DEVICE_SERIAL_NUMBER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.5"); +pub const szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.133.16.840.63.0.2"); +pub const szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.132.1.11.1"); +pub const szOID_DH_SINGLE_PASS_STDDH_SHA384_KDF: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.132.1.11.2"); +pub const szOID_DISALLOWED_HASH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.3.6.1.4.1.311.10.11.15"); +pub const szOID_DISALLOWED_LIST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.30"); +pub const szOID_DN_QUALIFIER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.46"); +pub const szOID_DOMAIN_COMPONENT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0.9.2342.19200300.100.1.25"); +pub const szOID_DRM: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.5.1"); +pub const szOID_DRM_INDIVIDUALIZATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.5.2"); +pub const szOID_DS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5"); +pub const szOID_DSALG: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.8"); +pub const szOID_DSALG_CRPT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.8.1"); +pub const szOID_DSALG_HASH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.8.2"); +pub const szOID_DSALG_RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.8.1.1"); +pub const szOID_DSALG_SIGN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.8.3"); +pub const szOID_DS_EMAIL_REPLICATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.19"); +pub const szOID_DYNAMIC_CODE_GEN_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.76.5.1"); +pub const szOID_ECC_CURVE_BRAINPOOLP160R1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.1"); +pub const szOID_ECC_CURVE_BRAINPOOLP160T1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.2"); +pub const szOID_ECC_CURVE_BRAINPOOLP192R1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.3"); +pub const szOID_ECC_CURVE_BRAINPOOLP192T1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.4"); +pub const szOID_ECC_CURVE_BRAINPOOLP224R1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.5"); +pub const szOID_ECC_CURVE_BRAINPOOLP224T1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.6"); +pub const szOID_ECC_CURVE_BRAINPOOLP256R1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.7"); +pub const szOID_ECC_CURVE_BRAINPOOLP256T1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.8"); +pub const szOID_ECC_CURVE_BRAINPOOLP320R1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.9"); +pub const szOID_ECC_CURVE_BRAINPOOLP320T1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.10"); +pub const szOID_ECC_CURVE_BRAINPOOLP384R1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.11"); +pub const szOID_ECC_CURVE_BRAINPOOLP384T1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.12"); +pub const szOID_ECC_CURVE_BRAINPOOLP512R1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.13"); +pub const szOID_ECC_CURVE_BRAINPOOLP512T1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.36.3.3.2.8.1.1.14"); +pub const szOID_ECC_CURVE_EC192WAPI: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.156.11235.1.1.2.1"); +pub const szOID_ECC_CURVE_NISTP192: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.3.1.1"); +pub const szOID_ECC_CURVE_NISTP224: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.132.0.33"); +pub const szOID_ECC_CURVE_NISTP256: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.10045.3.1.7"); +pub const szOID_ECC_CURVE_NISTP384: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.3.132.0.34"); +pub const szOID_ECC_CURVE_NISTP521: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.3.132.0.35"); +pub const szOID_ECC_CURVE_P256: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.3.1.7"); +pub const szOID_ECC_CURVE_P384: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.132.0.34"); +pub const szOID_ECC_CURVE_P521: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.132.0.35"); +pub const szOID_ECC_CURVE_SECP160K1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.132.0.9"); +pub const szOID_ECC_CURVE_SECP160R1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.132.0.8"); +pub const szOID_ECC_CURVE_SECP160R2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.132.0.30"); +pub const szOID_ECC_CURVE_SECP192K1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.132.0.31"); +pub const szOID_ECC_CURVE_SECP192R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.10045.3.1.1"); +pub const szOID_ECC_CURVE_SECP224K1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.132.0.32"); +pub const szOID_ECC_CURVE_SECP224R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.3.132.0.33"); +pub const szOID_ECC_CURVE_SECP256K1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.132.0.10"); +pub const szOID_ECC_CURVE_SECP256R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.10045.3.1.7"); +pub const szOID_ECC_CURVE_SECP384R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.3.132.0.34"); +pub const szOID_ECC_CURVE_SECP521R1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.3.132.0.35"); +pub const szOID_ECC_CURVE_WTLS12: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.3.132.0.33"); +pub const szOID_ECC_CURVE_WTLS7: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.3.132.0.30"); +pub const szOID_ECC_CURVE_WTLS9: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.23.43.1.4.9"); +pub const szOID_ECC_CURVE_X962P192V1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.3.1.1"); +pub const szOID_ECC_CURVE_X962P192V2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.3.1.2"); +pub const szOID_ECC_CURVE_X962P192V3: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.3.1.3"); +pub const szOID_ECC_CURVE_X962P239V1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.3.1.4"); +pub const szOID_ECC_CURVE_X962P239V2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.3.1.5"); +pub const szOID_ECC_CURVE_X962P239V3: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.3.1.6"); +pub const szOID_ECC_CURVE_X962P256V1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.2.840.10045.3.1.7"); +pub const szOID_ECC_PUBLIC_KEY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.2.1"); +pub const szOID_ECDSA_SHA1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.4.1"); +pub const szOID_ECDSA_SHA256: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.4.3.2"); +pub const szOID_ECDSA_SHA384: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.4.3.3"); +pub const szOID_ECDSA_SHA512: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.4.3.4"); +pub const szOID_ECDSA_SPECIFIED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10045.4.3"); +pub const szOID_EFS_RECOVERY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.4.1"); +pub const szOID_EMBEDDED_NT_CRYPTO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.8"); +pub const szOID_ENCLAVE_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.42"); +pub const szOID_ENCRYPTED_KEY_HASH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.21"); +pub const szOID_ENHANCED_KEY_USAGE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.37"); +pub const szOID_ENROLLMENT_AGENT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.20.2.1"); +pub const szOID_ENROLLMENT_CSP_PROVIDER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.13.2.2"); +pub const szOID_ENROLLMENT_NAME_VALUE_PAIR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.13.2.1"); +pub const szOID_ENROLL_AIK_INFO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.39"); +pub const szOID_ENROLL_ATTESTATION_CHALLENGE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.28"); +pub const szOID_ENROLL_ATTESTATION_STATEMENT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.24"); +pub const szOID_ENROLL_CAXCHGCERT_HASH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.27"); +pub const szOID_ENROLL_CERTTYPE_EXTENSION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.20.2"); +pub const szOID_ENROLL_EKPUB_CHALLENGE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.26"); +pub const szOID_ENROLL_EKVERIFYCERT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.31"); +pub const szOID_ENROLL_EKVERIFYCREDS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.32"); +pub const szOID_ENROLL_EKVERIFYKEY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.30"); +pub const szOID_ENROLL_EK_CA_KEYID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.43"); +pub const szOID_ENROLL_EK_INFO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.23"); +pub const szOID_ENROLL_ENCRYPTION_ALGORITHM: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.29"); +pub const szOID_ENROLL_KEY_AFFINITY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.41"); +pub const szOID_ENROLL_KSP_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.25"); +pub const szOID_ENROLL_SCEP_CHALLENGE_ANSWER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.35"); +pub const szOID_ENROLL_SCEP_CLIENT_REQUEST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.37"); +pub const szOID_ENROLL_SCEP_ERROR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.33"); +pub const szOID_ENROLL_SCEP_SERVER_MESSAGE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.38"); +pub const szOID_ENROLL_SCEP_SERVER_SECRET: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.40"); +pub const szOID_ENROLL_SCEP_SERVER_STATE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.34"); +pub const szOID_ENROLL_SCEP_SIGNER_HASH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.42"); +pub const szOID_ENTERPRISE_OID_ROOT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.8"); +pub const szOID_EV_RDN_COUNTRY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.60.2.1.3"); +pub const szOID_EV_RDN_LOCALE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.60.2.1.1"); +pub const szOID_EV_RDN_STATE_OR_PROVINCE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.60.2.1.2"); +pub const szOID_EV_WHQL_CRYPTO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.39"); +pub const szOID_FACSIMILE_TELEPHONE_NUMBER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.23"); +pub const szOID_FRESHEST_CRL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.46"); +pub const szOID_GIVEN_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.42"); +pub const szOID_HPKP_DOMAIN_NAME_CTL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.60"); +pub const szOID_HPKP_HEADER_VALUE_CTL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.61"); +pub const szOID_INFOSEC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1"); +pub const szOID_INFOSEC_SuiteAConfidentiality: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.14"); +pub const szOID_INFOSEC_SuiteAIntegrity: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.15"); +pub const szOID_INFOSEC_SuiteAKMandSig: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.18"); +pub const szOID_INFOSEC_SuiteAKeyManagement: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.17"); +pub const szOID_INFOSEC_SuiteASignature: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.13"); +pub const szOID_INFOSEC_SuiteATokenProtection: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.16"); +pub const szOID_INFOSEC_mosaicConfidentiality: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.4"); +pub const szOID_INFOSEC_mosaicIntegrity: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.6"); +pub const szOID_INFOSEC_mosaicKMandSig: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.12"); +pub const szOID_INFOSEC_mosaicKMandUpdSig: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.20"); +pub const szOID_INFOSEC_mosaicKeyManagement: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.10"); +pub const szOID_INFOSEC_mosaicSignature: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.2"); +pub const szOID_INFOSEC_mosaicTokenProtection: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.8"); +pub const szOID_INFOSEC_mosaicUpdatedInteg: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.21"); +pub const szOID_INFOSEC_mosaicUpdatedSig: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.19"); +pub const szOID_INFOSEC_sdnsConfidentiality: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.3"); +pub const szOID_INFOSEC_sdnsIntegrity: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.5"); +pub const szOID_INFOSEC_sdnsKMandSig: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.11"); +pub const szOID_INFOSEC_sdnsKeyManagement: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.9"); +pub const szOID_INFOSEC_sdnsSignature: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.1"); +pub const szOID_INFOSEC_sdnsTokenProtection: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.2.1.1.7"); +pub const szOID_INHIBIT_ANY_POLICY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.54"); +pub const szOID_INITIALS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.43"); +pub const szOID_INTERNATIONALIZED_EMAIL_ADDRESS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.20.2.4"); +pub const szOID_INTERNATIONAL_ISDN_NUMBER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.25"); +pub const szOID_IPSEC_KP_IKE_INTERMEDIATE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.8.2.2"); +pub const szOID_ISSUED_CERT_HASH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.17"); +pub const szOID_ISSUER_ALT_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.8"); +pub const szOID_ISSUER_ALT_NAME2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.18"); +pub const szOID_ISSUING_DIST_POINT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.28"); +pub const szOID_IUM_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.37"); +pub const szOID_KEYID_RDN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.7.1"); +pub const szOID_KEY_ATTRIBUTES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.2"); +pub const szOID_KEY_USAGE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.15"); +pub const szOID_KEY_USAGE_RESTRICTION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.4"); +pub const szOID_KP_CA_EXCHANGE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.5"); +pub const szOID_KP_CSP_SIGNATURE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.16"); +pub const szOID_KP_CTL_USAGE_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.1"); +pub const szOID_KP_DOCUMENT_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.12"); +pub const szOID_KP_EFS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.4"); +pub const szOID_KP_FLIGHT_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.27"); +pub const szOID_KP_KERNEL_MODE_CODE_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.61.1.1"); +pub const szOID_KP_KERNEL_MODE_HAL_EXTENSION_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.61.5.1"); +pub const szOID_KP_KERNEL_MODE_TRUSTED_BOOT_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.61.4.1"); +pub const szOID_KP_KEY_RECOVERY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.11"); +pub const szOID_KP_KEY_RECOVERY_AGENT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.6"); +pub const szOID_KP_LIFETIME_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.13"); +pub const szOID_KP_MOBILE_DEVICE_SOFTWARE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.14"); +pub const szOID_KP_PRIVACY_CA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.36"); +pub const szOID_KP_QUALIFIED_SUBORDINATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.10"); +pub const szOID_KP_SMARTCARD_LOGON: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.20.2.2"); +pub const szOID_KP_SMART_DISPLAY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.15"); +pub const szOID_KP_TIME_STAMP_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.2"); +pub const szOID_KP_TPM_AIK_CERTIFICATE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.23.133.8.3"); +pub const szOID_KP_TPM_EK_CERTIFICATE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.23.133.8.1"); +pub const szOID_KP_TPM_PLATFORM_CERTIFICATE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.23.133.8.2"); +pub const szOID_LEGACY_POLICY_MAPPINGS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.5"); +pub const szOID_LICENSES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.6.1"); +pub const szOID_LICENSE_SERVER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.6.2"); +pub const szOID_LOCALITY_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.7"); +pub const szOID_LOCAL_MACHINE_KEYSET: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.17.2"); +pub const szOID_LOGOTYPE_EXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.1.12"); +pub const szOID_LOYALTY_OTHER_LOGOTYPE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.20.1"); +pub const szOID_MEMBER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.31"); +pub const szOID_MICROSOFT_PUBLISHER_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.76.8.1"); +pub const szOID_NAME_CONSTRAINTS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.30"); +pub const szOID_NETSCAPE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730"); +pub const szOID_NETSCAPE_BASE_URL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.1.2"); +pub const szOID_NETSCAPE_CA_POLICY_URL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.1.8"); +pub const szOID_NETSCAPE_CA_REVOCATION_URL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.1.4"); +pub const szOID_NETSCAPE_CERT_EXTENSION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.1"); +pub const szOID_NETSCAPE_CERT_RENEWAL_URL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.1.7"); +pub const szOID_NETSCAPE_CERT_SEQUENCE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.2.5"); +pub const szOID_NETSCAPE_CERT_TYPE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.1.1"); +pub const szOID_NETSCAPE_COMMENT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.1.13"); +pub const szOID_NETSCAPE_DATA_TYPE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.2"); +pub const szOID_NETSCAPE_REVOCATION_URL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.1.3"); +pub const szOID_NETSCAPE_SSL_SERVER_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.1.12"); +pub const szOID_NEXT_UPDATE_LOCATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.2"); +pub const szOID_NIST_AES128_CBC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.3.4.1.2"); +pub const szOID_NIST_AES128_WRAP: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.3.4.1.5"); +pub const szOID_NIST_AES192_CBC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.3.4.1.22"); +pub const szOID_NIST_AES192_WRAP: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.3.4.1.25"); +pub const szOID_NIST_AES256_CBC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.3.4.1.42"); +pub const szOID_NIST_AES256_WRAP: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.3.4.1.45"); +pub const szOID_NIST_sha256: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.3.4.2.1"); +pub const szOID_NIST_sha384: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.3.4.2.2"); +pub const szOID_NIST_sha512: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.101.3.4.2.3"); +pub const szOID_NT5_CRYPTO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.6"); +pub const szOID_NTDS_CA_SECURITY_EXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.25.2"); +pub const szOID_NTDS_OBJECTSID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.25.2.1"); +pub const szOID_NTDS_REPLICATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.25.1"); +pub const szOID_NT_PRINCIPAL_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.20.2.3"); +pub const szOID_OEM_WHQL_CRYPTO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.7"); +pub const szOID_OIW: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14"); +pub const szOID_OIWDIR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.7.2"); +pub const szOID_OIWDIR_CRPT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.7.2.1"); +pub const szOID_OIWDIR_HASH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.7.2.2"); +pub const szOID_OIWDIR_SIGN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.7.2.3"); +pub const szOID_OIWDIR_md2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.7.2.2.1"); +pub const szOID_OIWDIR_md2RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.7.2.3.1"); +pub const szOID_OIWSEC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2"); +pub const szOID_OIWSEC_desCBC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.7"); +pub const szOID_OIWSEC_desCFB: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.9"); +pub const szOID_OIWSEC_desECB: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.6"); +pub const szOID_OIWSEC_desEDE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.17"); +pub const szOID_OIWSEC_desMAC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.10"); +pub const szOID_OIWSEC_desOFB: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.8"); +pub const szOID_OIWSEC_dhCommMod: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.16"); +pub const szOID_OIWSEC_dsa: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.12"); +pub const szOID_OIWSEC_dsaComm: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.20"); +pub const szOID_OIWSEC_dsaCommSHA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.21"); +pub const szOID_OIWSEC_dsaCommSHA1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.28"); +pub const szOID_OIWSEC_dsaSHA1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.27"); +pub const szOID_OIWSEC_keyHashSeal: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.23"); +pub const szOID_OIWSEC_md2RSASign: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.24"); +pub const szOID_OIWSEC_md4RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.2"); +pub const szOID_OIWSEC_md4RSA2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.4"); +pub const szOID_OIWSEC_md5RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.3"); +pub const szOID_OIWSEC_md5RSASign: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.25"); +pub const szOID_OIWSEC_mdc2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.19"); +pub const szOID_OIWSEC_mdc2RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.14"); +pub const szOID_OIWSEC_rsaSign: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.11"); +pub const szOID_OIWSEC_rsaXchg: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.22"); +pub const szOID_OIWSEC_sha: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.18"); +pub const szOID_OIWSEC_sha1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.26"); +pub const szOID_OIWSEC_sha1RSASign: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.29"); +pub const szOID_OIWSEC_shaDSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.13"); +pub const szOID_OIWSEC_shaRSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.14.3.2.15"); +pub const szOID_ORGANIZATIONAL_UNIT_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.11"); +pub const szOID_ORGANIZATION_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.10"); +pub const szOID_OS_VERSION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.13.2.3"); +pub const szOID_OWNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.32"); +pub const szOID_PHYSICAL_DELIVERY_OFFICE_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.19"); +pub const szOID_PIN_RULES_CTL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.32"); +pub const szOID_PIN_RULES_DOMAIN_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.34"); +pub const szOID_PIN_RULES_EXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.33"); +pub const szOID_PIN_RULES_LOG_END_DATE_EXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.35"); +pub const szOID_PIN_RULES_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.31"); +pub const szOID_PKCS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1"); +pub const szOID_PKCS_1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1"); +pub const szOID_PKCS_10: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.10"); +pub const szOID_PKCS_12: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.12"); +pub const szOID_PKCS_12_EXTENDED_ATTRIBUTES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.17.3"); +pub const szOID_PKCS_12_FRIENDLY_NAME_ATTR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.20"); +pub const szOID_PKCS_12_KEY_PROVIDER_NAME_ATTR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.17.1"); +pub const szOID_PKCS_12_LOCAL_KEY_ID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.21"); +pub const szOID_PKCS_12_PROTECTED_PASSWORD_SECRET_BAG_TYPE_ID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.17.4"); +pub const szOID_PKCS_12_PbeIds: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.12.1"); +pub const szOID_PKCS_12_pbeWithSHA1And128BitRC2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.12.1.5"); +pub const szOID_PKCS_12_pbeWithSHA1And128BitRC4: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.12.1.1"); +pub const szOID_PKCS_12_pbeWithSHA1And2KeyTripleDES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.12.1.4"); +pub const szOID_PKCS_12_pbeWithSHA1And3KeyTripleDES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.12.1.3"); +pub const szOID_PKCS_12_pbeWithSHA1And40BitRC2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.12.1.6"); +pub const szOID_PKCS_12_pbeWithSHA1And40BitRC4: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.12.1.2"); +pub const szOID_PKCS_2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.2"); +pub const szOID_PKCS_3: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.3"); +pub const szOID_PKCS_4: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.4"); +pub const szOID_PKCS_5: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.5"); +pub const szOID_PKCS_5_PBES2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.5.13"); +pub const szOID_PKCS_5_PBKDF2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.5.12"); +pub const szOID_PKCS_6: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.6"); +pub const szOID_PKCS_7: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7"); +pub const szOID_PKCS_7_DATA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7.1"); +pub const szOID_PKCS_7_DIGESTED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7.5"); +pub const szOID_PKCS_7_ENCRYPTED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7.6"); +pub const szOID_PKCS_7_ENVELOPED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7.3"); +pub const szOID_PKCS_7_SIGNED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7.2"); +pub const szOID_PKCS_7_SIGNEDANDENVELOPED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7.4"); +pub const szOID_PKCS_8: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.8"); +pub const szOID_PKCS_9: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9"); +pub const szOID_PKCS_9_CONTENT_TYPE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.3"); +pub const szOID_PKCS_9_MESSAGE_DIGEST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.4"); +pub const szOID_PKINIT_KP_KDC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.2.3.5"); +pub const szOID_PKIX: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7"); +pub const szOID_PKIX_ACC_DESCR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.48"); +pub const szOID_PKIX_CA_ISSUERS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.48.2"); +pub const szOID_PKIX_CA_REPOSITORY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.48.5"); +pub const szOID_PKIX_KP: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.3"); +pub const szOID_PKIX_KP_CLIENT_AUTH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.3.2"); +pub const szOID_PKIX_KP_CODE_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.3.3"); +pub const szOID_PKIX_KP_EMAIL_PROTECTION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.3.4"); +pub const szOID_PKIX_KP_IPSEC_END_SYSTEM: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.3.5"); +pub const szOID_PKIX_KP_IPSEC_TUNNEL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.3.6"); +pub const szOID_PKIX_KP_IPSEC_USER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.3.7"); +pub const szOID_PKIX_KP_OCSP_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.3.9"); +pub const szOID_PKIX_KP_SERVER_AUTH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.3.1"); +pub const szOID_PKIX_KP_TIMESTAMP_SIGNING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.3.8"); +pub const szOID_PKIX_NO_SIGNATURE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.6.2"); +pub const szOID_PKIX_OCSP: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.48.1"); +pub const szOID_PKIX_OCSP_BASIC_SIGNED_RESPONSE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.48.1.1"); +pub const szOID_PKIX_OCSP_NOCHECK: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.48.1.5"); +pub const szOID_PKIX_OCSP_NONCE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.48.1.2"); +pub const szOID_PKIX_PE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.1"); +pub const szOID_PKIX_POLICY_QUALIFIER_CPS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.2.1"); +pub const szOID_PKIX_POLICY_QUALIFIER_USERNOTICE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.2.2"); +pub const szOID_PKIX_TIME_STAMPING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.48.3"); +pub const szOID_PLATFORM_MANIFEST_BINARY_ID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.28"); +pub const szOID_POLICY_CONSTRAINTS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.36"); +pub const szOID_POLICY_MAPPINGS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.33"); +pub const szOID_POSTAL_ADDRESS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.16"); +pub const szOID_POSTAL_CODE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.17"); +pub const szOID_POST_OFFICE_BOX: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.18"); +pub const szOID_PREFERRED_DELIVERY_METHOD: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.28"); +pub const szOID_PRESENTATION_ADDRESS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.29"); +pub const szOID_PRIVATEKEY_USAGE_PERIOD: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.16"); +pub const szOID_PRODUCT_UPDATE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.31.1"); +pub const szOID_PROTECTED_PROCESS_LIGHT_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.22"); +pub const szOID_PROTECTED_PROCESS_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.24"); +pub const szOID_QC_EU_COMPLIANCE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0.4.0.1862.1.1"); +pub const szOID_QC_SSCD: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0.4.0.1862.1.4"); +pub const szOID_QC_STATEMENTS_EXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.1.3"); +pub const szOID_RDN_DUMMY_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.9"); +pub const szOID_RDN_TCG_PLATFORM_MANUFACTURER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.23.133.2.4"); +pub const szOID_RDN_TCG_PLATFORM_MODEL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.23.133.2.5"); +pub const szOID_RDN_TCG_PLATFORM_VERSION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.23.133.2.6"); +pub const szOID_RDN_TPM_MANUFACTURER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.23.133.2.1"); +pub const szOID_RDN_TPM_MODEL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.23.133.2.2"); +pub const szOID_RDN_TPM_VERSION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.23.133.2.3"); +pub const szOID_REASON_CODE_HOLD: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.23"); +pub const szOID_REGISTERED_ADDRESS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.26"); +pub const szOID_REMOVE_CERTIFICATE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.8.1"); +pub const szOID_RENEWAL_CERTIFICATE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.13.1"); +pub const szOID_REQUEST_CLIENT_INFO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.20"); +pub const szOID_REQUIRE_CERT_CHAIN_POLICY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.21.15"); +pub const szOID_REVOKED_LIST_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.19"); +pub const szOID_RFC3161_counterSign: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.3.3.1"); +pub const szOID_RFC3161v21_counterSign: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.3.3.2"); +pub const szOID_RFC3161v21_thumbprints: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.3.3.3"); +pub const szOID_ROLE_OCCUPANT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.33"); +pub const szOID_ROOT_LIST_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.9"); +pub const szOID_ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.60.3.1"); +pub const szOID_ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.60.3.2"); +pub const szOID_ROOT_PROGRAM_FLAGS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.60.1.1"); +pub const szOID_ROOT_PROGRAM_NO_OCSP_FAILOVER_TO_CRL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.60.3.3"); +pub const szOID_RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549"); +pub const szOID_RSAES_OAEP: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1.7"); +pub const szOID_RSA_DES_EDE3_CBC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.3.7"); +pub const szOID_RSA_DH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.3.1"); +pub const szOID_RSA_ENCRYPT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.3"); +pub const szOID_RSA_HASH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.2"); +pub const szOID_RSA_MD2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.2.2"); +pub const szOID_RSA_MD2RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1.2"); +pub const szOID_RSA_MD4: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.2.4"); +pub const szOID_RSA_MD4RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1.3"); +pub const szOID_RSA_MD5: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.2.5"); +pub const szOID_RSA_MD5RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1.4"); +pub const szOID_RSA_MGF1: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1.8"); +pub const szOID_RSA_PSPECIFIED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1.9"); +pub const szOID_RSA_RC2CBC: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.3.2"); +pub const szOID_RSA_RC4: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.3.4"); +pub const szOID_RSA_RC5_CBCPad: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.3.9"); +pub const szOID_RSA_RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1.1"); +pub const szOID_RSA_SETOAEP_RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1.6"); +pub const szOID_RSA_SHA1RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1.5"); +pub const szOID_RSA_SHA256RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1.11"); +pub const szOID_RSA_SHA384RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1.12"); +pub const szOID_RSA_SHA512RSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1.13"); +pub const szOID_RSA_SMIMECapabilities: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.15"); +pub const szOID_RSA_SMIMEalg: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.16.3"); +pub const szOID_RSA_SMIMEalgCMS3DESwrap: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.16.3.6"); +pub const szOID_RSA_SMIMEalgCMSRC2wrap: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.16.3.7"); +pub const szOID_RSA_SMIMEalgESDH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.16.3.5"); +pub const szOID_RSA_SSA_PSS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.1.10"); +pub const szOID_RSA_certExtensions: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.14"); +pub const szOID_RSA_challengePwd: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.7"); +pub const szOID_RSA_contentType: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.3"); +pub const szOID_RSA_counterSign: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.6"); +pub const szOID_RSA_data: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7.1"); +pub const szOID_RSA_digestedData: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7.5"); +pub const szOID_RSA_emailAddr: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.1"); +pub const szOID_RSA_encryptedData: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7.6"); +pub const szOID_RSA_envelopedData: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7.3"); +pub const szOID_RSA_extCertAttrs: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.9"); +pub const szOID_RSA_hashedData: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7.5"); +pub const szOID_RSA_messageDigest: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.4"); +pub const szOID_RSA_preferSignedData: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.15.1"); +pub const szOID_RSA_signEnvData: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7.4"); +pub const szOID_RSA_signedData: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.7.2"); +pub const szOID_RSA_signingTime: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.5"); +pub const szOID_RSA_unstructAddr: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.8"); +pub const szOID_RSA_unstructName: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.2"); +pub const szOID_SEARCH_GUIDE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.14"); +pub const szOID_SEE_ALSO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.34"); +pub const szOID_SERIALIZED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.3.1"); +pub const szOID_SERVER_GATED_CRYPTO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.3"); +pub const szOID_SGC_NETSCAPE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113730.4.1"); +pub const szOID_SITE_PIN_RULES_FLAGS_ATTR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.4.3"); +pub const szOID_SITE_PIN_RULES_INDEX_ATTR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.4.2"); +pub const szOID_SORTED_CTL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.1.1"); +pub const szOID_STATE_OR_PROVINCE_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.8"); +pub const szOID_STREET_ADDRESS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.9"); +pub const szOID_SUBJECT_ALT_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.7"); +pub const szOID_SUBJECT_ALT_NAME2: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.17"); +pub const szOID_SUBJECT_DIR_ATTRS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.9"); +pub const szOID_SUBJECT_INFO_ACCESS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.1.11"); +pub const szOID_SUBJECT_KEY_IDENTIFIER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.29.14"); +pub const szOID_SUPPORTED_APPLICATION_CONTEXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.30"); +pub const szOID_SUR_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.4"); +pub const szOID_SYNC_ROOT_CTL_EXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.50"); +pub const szOID_TELEPHONE_NUMBER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.20"); +pub const szOID_TELETEXT_TERMINAL_IDENTIFIER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.22"); +pub const szOID_TELEX_NUMBER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.21"); +pub const szOID_TIMESTAMP_TOKEN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.16.1.4"); +pub const szOID_TITLE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.12"); +pub const szOID_TLS_FEATURES_EXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.5.5.7.1.24"); +pub const szOID_USER_CERTIFICATE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.36"); +pub const szOID_USER_PASSWORD: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.35"); +pub const szOID_VERISIGN_BITSTRING_6_13: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113733.1.6.13"); +pub const szOID_VERISIGN_ISS_STRONG_CRYPTO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113733.1.8.1"); +pub const szOID_VERISIGN_ONSITE_JURISDICTION_HASH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113733.1.6.11"); +pub const szOID_VERISIGN_PRIVATE_6_9: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.16.840.1.113733.1.6.9"); +pub const szOID_WHQL_CRYPTO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.5"); +pub const szOID_WINDOWS_KITS_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.20"); +pub const szOID_WINDOWS_RT_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.21"); +pub const szOID_WINDOWS_SOFTWARE_EXTENSION_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.26"); +pub const szOID_WINDOWS_STORE_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.76.3.1"); +pub const szOID_WINDOWS_TCB_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.23"); +pub const szOID_WINDOWS_THIRD_PARTY_COMPONENT_SIGNER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.3.25"); +pub const szOID_X21_ADDRESS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2.5.4.24"); +pub const szOID_X957: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10040"); +pub const szOID_X957_DSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10040.4.1"); +pub const szOID_X957_SHA1DSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.10040.4.3"); +pub const szOID_YESNO_TRUST_ATTR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.4.1"); +pub const szPRIV_KEY_CACHE_MAX_ITEMS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("PrivKeyCacheMaxItems"); +pub const szPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("PrivKeyCachePurgeIntervalSeconds"); +pub const sz_CERT_STORE_PROV_COLLECTION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Collection"); +pub const sz_CERT_STORE_PROV_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("File"); +pub const sz_CERT_STORE_PROV_FILENAME_W: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("File"); +pub const sz_CERT_STORE_PROV_LDAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Ldap"); +pub const sz_CERT_STORE_PROV_LDAP_W: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Ldap"); +pub const sz_CERT_STORE_PROV_MEMORY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Memory"); +pub const sz_CERT_STORE_PROV_PHYSICAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Physical"); +pub const sz_CERT_STORE_PROV_PHYSICAL_W: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Physical"); +pub const sz_CERT_STORE_PROV_PKCS12: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("PKCS12"); +pub const sz_CERT_STORE_PROV_PKCS7: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("PKCS7"); +pub const sz_CERT_STORE_PROV_SERIALIZED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Serialized"); +pub const sz_CERT_STORE_PROV_SMART_CARD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmartCard"); +pub const sz_CERT_STORE_PROV_SMART_CARD_W: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SmartCard"); +pub const sz_CERT_STORE_PROV_SYSTEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System"); +pub const sz_CERT_STORE_PROV_SYSTEM_REGISTRY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SystemRegistry"); +pub const sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SystemRegistry"); +pub const sz_CERT_STORE_PROV_SYSTEM_W: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("System"); +pub const wszURI_CANONICALIZATION_C14N: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/TR/2001/REC-xml-c14n-20010315"); +pub const wszURI_CANONICALIZATION_C14NC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"); +pub const wszURI_CANONICALIZATION_EXSLUSIVE_C14N: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/10/xml-exc-c14n#"); +pub const wszURI_CANONICALIZATION_EXSLUSIVE_C14NC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/10/xml-exc-c14n#WithComments"); +pub const wszURI_TRANSFORM_XPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/TR/1999/REC-xpath-19991116"); +pub const wszURI_XMLNS_DIGSIG_BASE64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2000/09/xmldsig#base64"); +pub const wszURI_XMLNS_DIGSIG_DSA_SHA1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2000/09/xmldsig#dsa-sha1"); +pub const wszURI_XMLNS_DIGSIG_ECDSA_SHA1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha1"); +pub const wszURI_XMLNS_DIGSIG_ECDSA_SHA256: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256"); +pub const wszURI_XMLNS_DIGSIG_ECDSA_SHA384: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha384"); +pub const wszURI_XMLNS_DIGSIG_ECDSA_SHA512: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512"); +pub const wszURI_XMLNS_DIGSIG_HMAC_SHA1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2000/09/xmldsig#hmac-sha1"); +pub const wszURI_XMLNS_DIGSIG_HMAC_SHA256: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/04/xmldsig-more#hmac-sha256"); +pub const wszURI_XMLNS_DIGSIG_HMAC_SHA384: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/04/xmldsig-more#hmac-sha384"); +pub const wszURI_XMLNS_DIGSIG_HMAC_SHA512: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/04/xmldsig-more#hmac-sha512"); +pub const wszURI_XMLNS_DIGSIG_RSA_SHA1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2000/09/xmldsig#rsa-sha1"); +pub const wszURI_XMLNS_DIGSIG_RSA_SHA256: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"); +pub const wszURI_XMLNS_DIGSIG_RSA_SHA384: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/04/xmldsig-more#rsa-sha384"); +pub const wszURI_XMLNS_DIGSIG_RSA_SHA512: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"); +pub const wszURI_XMLNS_DIGSIG_SHA1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2000/09/xmldsig#sha1"); +pub const wszURI_XMLNS_DIGSIG_SHA256: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/04/xmlenc#sha256"); +pub const wszURI_XMLNS_DIGSIG_SHA384: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/04/xmldsig-more#sha384"); +pub const wszURI_XMLNS_DIGSIG_SHA512: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2001/04/xmlenc#sha512"); +pub const wszURI_XMLNS_TRANSFORM_BASE64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2000/09/xmldsig#base64"); +pub const wszURI_XMLNS_TRANSFORM_ENVELOPED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2000/09/xmldsig#enveloped-signature"); +pub const wszXMLNS_DIGSIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2000/09/xmldsig#"); +pub const wszXMLNS_DIGSIG_Id: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Id"); +pub const wszXMLNS_DIGSIG_SignatureProperties: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://www.w3.org/2000/09/xmldsig#SignatureProperties"); +pub type ALG_ID = u32; +pub type BCRYPTGENRANDOM_FLAGS = u32; +pub type BCRYPT_DH_KEY_BLOB_MAGIC = u32; +pub type BCRYPT_DSA_MAGIC = u32; +pub type BCRYPT_FLAGS = u32; +pub type BCRYPT_HASH_OPERATION_TYPE = i32; +pub type BCRYPT_INTERFACE = u32; +pub type BCRYPT_MULTI_OPERATION_TYPE = i32; +pub type BCRYPT_OPEN_ALGORITHM_PROVIDER_FLAGS = u32; +pub type BCRYPT_OPERATION = u32; +pub type BCRYPT_QUERY_PROVIDER_MODE = u32; +pub type BCRYPT_RESOLVE_PROVIDERS_FLAGS = u32; +pub type BCRYPT_RSAKEY_BLOB_MAGIC = u32; +pub type BCRYPT_TABLE = u32; +pub type CASetupProperty = i32; +pub type CEPSetupProperty = i32; +pub type CERT_BIOMETRIC_DATA_TYPE = u32; +pub type CERT_CHAIN_POLICY_FLAGS = u32; +pub type CERT_CONTROL_STORE_FLAGS = u32; +pub type CERT_CREATE_SELFSIGN_FLAGS = u32; +pub type CERT_FIND_CHAIN_IN_STORE_FLAGS = u32; +pub type CERT_FIND_FLAGS = u32; +pub type CERT_FIND_TYPE = u32; +pub type CERT_ID_OPTION = u32; +pub type CERT_KEY_SPEC = u32; +pub type CERT_LOGOTYPE_CHOICE = u32; +pub type CERT_LOGOTYPE_IMAGE_INFO_TYPE = u32; +pub type CERT_LOGOTYPE_OPTION = u32; +pub type CERT_OPEN_STORE_FLAGS = u32; +pub type CERT_QUERY_CONTENT_TYPE = u32; +pub type CERT_QUERY_CONTENT_TYPE_FLAGS = u32; +pub type CERT_QUERY_ENCODING_TYPE = u32; +pub type CERT_QUERY_FORMAT_TYPE = u32; +pub type CERT_QUERY_FORMAT_TYPE_FLAGS = u32; +pub type CERT_QUERY_OBJECT_TYPE = u32; +pub type CERT_RDN_ATTR_VALUE_TYPE = i32; +pub type CERT_REVOCATION_STATUS_REASON = u32; +pub type CERT_ROOT_PROGRAM_FLAGS = u32; +pub type CERT_SELECT_CRITERIA_TYPE = u32; +pub type CERT_STORE_PROV_FLAGS = u32; +pub type CERT_STORE_SAVE_AS = u32; +pub type CERT_STORE_SAVE_TO = u32; +pub type CERT_STRING_TYPE = u32; +pub type CERT_STRONG_SIGN_FLAGS = u32; +pub type CERT_SYSTEM_STORE_FLAGS = u32; +pub type CESSetupProperty = i32; +pub type CMSG_KEY_AGREE_OPTION = u32; +pub type CMSG_KEY_AGREE_ORIGINATOR = u32; +pub type CRYPT_ACQUIRE_FLAGS = u32; +pub type CRYPT_CONTEXT_CONFIG_FLAGS = u32; +pub type CRYPT_DEFAULT_CONTEXT_FLAGS = u32; +pub type CRYPT_DEFAULT_CONTEXT_TYPE = u32; +pub type CRYPT_ENCODE_OBJECT_FLAGS = u32; +pub type CRYPT_FIND_FLAGS = u32; +pub type CRYPT_GET_URL_FLAGS = u32; +pub type CRYPT_IMAGE_REF_FLAGS = u32; +pub type CRYPT_IMPORT_PUBLIC_KEY_FLAGS = u32; +pub type CRYPT_KEY_FLAGS = u32; +pub type CRYPT_KEY_PARAM_ID = u32; +pub type CRYPT_MSG_TYPE = u32; +pub type CRYPT_OBJECT_LOCATOR_RELEASE_REASON = u32; +pub type CRYPT_SET_HASH_PARAM = u32; +pub type CRYPT_SET_PROV_PARAM_ID = u32; +pub type CRYPT_STRING = u32; +pub type CRYPT_TIMESTAMP_RESPONSE_STATUS = u32; +pub type CRYPT_TIMESTAMP_VERSION = u32; +pub type CRYPT_VERIFY_CERT_FLAGS = u32; +pub type CRYPT_XML_CHARSET = i32; +pub type CRYPT_XML_FLAGS = u32; +pub type CRYPT_XML_GROUP_ID = u32; +pub type CRYPT_XML_KEYINFO_SPEC = i32; +pub type CRYPT_XML_KEYINFO_TYPE = u32; +pub type CRYPT_XML_KEY_VALUE_TYPE = u32; +pub type CRYPT_XML_PROPERTY_ID = i32; +pub type CRYPT_XML_STATUS_ERROR_STATUS = u32; +pub type CRYPT_XML_STATUS_INFO_STATUS = u32; +pub type CRYPT_XML_TRANSFORM_FLAGS = u32; +pub type CRYPT_XML_X509DATA_TYPE = u32; +pub type CertKeyType = u32; +pub type DSAFIPSVERSION_ENUM = i32; +pub type Direction = i32; +pub type ECC_CURVE_ALG_ID_ENUM = i32; +pub type ECC_CURVE_TYPE_ENUM = i32; +pub type HASHALGORITHM_ENUM = i32; +pub type HTTPSPOLICY_CALLBACK_DATA_AUTH_TYPE = u32; +#[repr(transparent)] +pub struct HandleType(pub i32); +impl HandleType { + pub const Asymmetric: Self = Self(1i32); + pub const Symmetric: Self = Self(2i32); + pub const Transform: Self = Self(3i32); + pub const Hash: Self = Self(4i32); +} +impl ::core::marker::Copy for HandleType {} +impl ::core::clone::Clone for HandleType { + fn clone(&self) -> Self { + *self + } +} +pub type MSCEPSetupProperty = i32; +pub type NCRYPT_ALGORITHM_NAME_CLASS = u32; +pub type NCRYPT_FLAGS = u32; +pub type NCRYPT_OPERATION = u32; +#[repr(transparent)] +pub struct PaddingMode(pub i32); +impl PaddingMode { + pub const None: Self = Self(1i32); + pub const PKCS7: Self = Self(2i32); + pub const Zeros: Self = Self(3i32); + pub const ANSIX923: Self = Self(4i32); + pub const ISO10126: Self = Self(5i32); +} +impl ::core::marker::Copy for PaddingMode {} +impl ::core::clone::Clone for PaddingMode { + fn clone(&self) -> Self { + *self + } +} +pub type SIGNER_CERT_CHOICE = u32; +pub type SIGNER_CERT_POLICY = u32; +pub type SIGNER_PRIVATE_KEY_CHOICE = u32; +pub type SIGNER_SIGNATURE_ATTRIBUTE_CHOICE = u32; +pub type SIGNER_SIGN_FLAGS = u32; +pub type SIGNER_SUBJECT_CHOICE = u32; +pub type SIGNER_TIMESTAMP_FLAGS = u32; +#[repr(C)] +pub struct AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA { + pub cbSize: u32, + pub dwRegPolicySettings: u32, + pub pSignerInfo: *mut CMSG_SIGNER_INFO, +} +impl ::core::marker::Copy for AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA {} +impl ::core::clone::Clone for AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS { + pub cbSize: u32, + pub fCommercial: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA { + pub cbSize: u32, + pub dwRegPolicySettings: u32, + pub fCommercial: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_ALGORITHM_IDENTIFIER { + pub pszName: ::windows_sys::core::PWSTR, + pub dwClass: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for BCRYPT_ALGORITHM_IDENTIFIER {} +impl ::core::clone::Clone for BCRYPT_ALGORITHM_IDENTIFIER { + fn clone(&self) -> Self { + *self + } +} +pub type BCRYPT_ALG_HANDLE = *mut ::core::ffi::c_void; +#[repr(C)] +pub struct BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO { + pub cbSize: u32, + pub dwInfoVersion: u32, + pub pbNonce: *mut u8, + pub cbNonce: u32, + pub pbAuthData: *mut u8, + pub cbAuthData: u32, + pub pbTag: *mut u8, + pub cbTag: u32, + pub pbMacContext: *mut u8, + pub cbMacContext: u32, + pub cbAAD: u32, + pub cbData: u64, + pub dwFlags: u32, +} +impl ::core::marker::Copy for BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO {} +impl ::core::clone::Clone for BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_DH_KEY_BLOB { + pub dwMagic: BCRYPT_DH_KEY_BLOB_MAGIC, + pub cbKey: u32, +} +impl ::core::marker::Copy for BCRYPT_DH_KEY_BLOB {} +impl ::core::clone::Clone for BCRYPT_DH_KEY_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_DH_PARAMETER_HEADER { + pub cbLength: u32, + pub dwMagic: u32, + pub cbKeyLength: u32, +} +impl ::core::marker::Copy for BCRYPT_DH_PARAMETER_HEADER {} +impl ::core::clone::Clone for BCRYPT_DH_PARAMETER_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_DSA_KEY_BLOB { + pub dwMagic: BCRYPT_DSA_MAGIC, + pub cbKey: u32, + pub Count: [u8; 4], + pub Seed: [u8; 20], + pub q: [u8; 20], +} +impl ::core::marker::Copy for BCRYPT_DSA_KEY_BLOB {} +impl ::core::clone::Clone for BCRYPT_DSA_KEY_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_DSA_KEY_BLOB_V2 { + pub dwMagic: BCRYPT_DSA_MAGIC, + pub cbKey: u32, + pub hashAlgorithm: HASHALGORITHM_ENUM, + pub standardVersion: DSAFIPSVERSION_ENUM, + pub cbSeedLength: u32, + pub cbGroupSize: u32, + pub Count: [u8; 4], +} +impl ::core::marker::Copy for BCRYPT_DSA_KEY_BLOB_V2 {} +impl ::core::clone::Clone for BCRYPT_DSA_KEY_BLOB_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_DSA_PARAMETER_HEADER { + pub cbLength: u32, + pub dwMagic: u32, + pub cbKeyLength: u32, + pub Count: [u8; 4], + pub Seed: [u8; 20], + pub q: [u8; 20], +} +impl ::core::marker::Copy for BCRYPT_DSA_PARAMETER_HEADER {} +impl ::core::clone::Clone for BCRYPT_DSA_PARAMETER_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_DSA_PARAMETER_HEADER_V2 { + pub cbLength: u32, + pub dwMagic: u32, + pub cbKeyLength: u32, + pub hashAlgorithm: HASHALGORITHM_ENUM, + pub standardVersion: DSAFIPSVERSION_ENUM, + pub cbSeedLength: u32, + pub cbGroupSize: u32, + pub Count: [u8; 4], +} +impl ::core::marker::Copy for BCRYPT_DSA_PARAMETER_HEADER_V2 {} +impl ::core::clone::Clone for BCRYPT_DSA_PARAMETER_HEADER_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_ECCFULLKEY_BLOB { + pub dwMagic: u32, + pub dwVersion: u32, + pub dwCurveType: ECC_CURVE_TYPE_ENUM, + pub dwCurveGenerationAlgId: ECC_CURVE_ALG_ID_ENUM, + pub cbFieldLength: u32, + pub cbSubgroupOrder: u32, + pub cbCofactor: u32, + pub cbSeed: u32, +} +impl ::core::marker::Copy for BCRYPT_ECCFULLKEY_BLOB {} +impl ::core::clone::Clone for BCRYPT_ECCFULLKEY_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_ECCKEY_BLOB { + pub dwMagic: u32, + pub cbKey: u32, +} +impl ::core::marker::Copy for BCRYPT_ECCKEY_BLOB {} +impl ::core::clone::Clone for BCRYPT_ECCKEY_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_ECC_CURVE_NAMES { + pub dwEccCurveNames: u32, + pub pEccCurveNames: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for BCRYPT_ECC_CURVE_NAMES {} +impl ::core::clone::Clone for BCRYPT_ECC_CURVE_NAMES { + fn clone(&self) -> Self { + *self + } +} +pub type BCRYPT_HANDLE = *mut ::core::ffi::c_void; +pub type BCRYPT_HASH_HANDLE = *mut ::core::ffi::c_void; +#[repr(C)] +pub struct BCRYPT_INTERFACE_VERSION { + pub MajorVersion: u16, + pub MinorVersion: u16, +} +impl ::core::marker::Copy for BCRYPT_INTERFACE_VERSION {} +impl ::core::clone::Clone for BCRYPT_INTERFACE_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_KEY_BLOB { + pub Magic: u32, +} +impl ::core::marker::Copy for BCRYPT_KEY_BLOB {} +impl ::core::clone::Clone for BCRYPT_KEY_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_KEY_DATA_BLOB_HEADER { + pub dwMagic: u32, + pub dwVersion: u32, + pub cbKeyData: u32, +} +impl ::core::marker::Copy for BCRYPT_KEY_DATA_BLOB_HEADER {} +impl ::core::clone::Clone for BCRYPT_KEY_DATA_BLOB_HEADER { + fn clone(&self) -> Self { + *self + } +} +pub type BCRYPT_KEY_HANDLE = *mut ::core::ffi::c_void; +#[repr(C)] +pub struct BCRYPT_KEY_LENGTHS_STRUCT { + pub dwMinLength: u32, + pub dwMaxLength: u32, + pub dwIncrement: u32, +} +impl ::core::marker::Copy for BCRYPT_KEY_LENGTHS_STRUCT {} +impl ::core::clone::Clone for BCRYPT_KEY_LENGTHS_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_MULTI_HASH_OPERATION { + pub iHash: u32, + pub hashOperation: BCRYPT_HASH_OPERATION_TYPE, + pub pbBuffer: *mut u8, + pub cbBuffer: u32, +} +impl ::core::marker::Copy for BCRYPT_MULTI_HASH_OPERATION {} +impl ::core::clone::Clone for BCRYPT_MULTI_HASH_OPERATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_MULTI_OBJECT_LENGTH_STRUCT { + pub cbPerObject: u32, + pub cbPerElement: u32, +} +impl ::core::marker::Copy for BCRYPT_MULTI_OBJECT_LENGTH_STRUCT {} +impl ::core::clone::Clone for BCRYPT_MULTI_OBJECT_LENGTH_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_OAEP_PADDING_INFO { + pub pszAlgId: ::windows_sys::core::PCWSTR, + pub pbLabel: *mut u8, + pub cbLabel: u32, +} +impl ::core::marker::Copy for BCRYPT_OAEP_PADDING_INFO {} +impl ::core::clone::Clone for BCRYPT_OAEP_PADDING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_OID { + pub cbOID: u32, + pub pbOID: *mut u8, +} +impl ::core::marker::Copy for BCRYPT_OID {} +impl ::core::clone::Clone for BCRYPT_OID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_OID_LIST { + pub dwOIDCount: u32, + pub pOIDs: *mut BCRYPT_OID, +} +impl ::core::marker::Copy for BCRYPT_OID_LIST {} +impl ::core::clone::Clone for BCRYPT_OID_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_PKCS1_PADDING_INFO { + pub pszAlgId: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for BCRYPT_PKCS1_PADDING_INFO {} +impl ::core::clone::Clone for BCRYPT_PKCS1_PADDING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_PROVIDER_NAME { + pub pszProviderName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for BCRYPT_PROVIDER_NAME {} +impl ::core::clone::Clone for BCRYPT_PROVIDER_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_PSS_PADDING_INFO { + pub pszAlgId: ::windows_sys::core::PCWSTR, + pub cbSalt: u32, +} +impl ::core::marker::Copy for BCRYPT_PSS_PADDING_INFO {} +impl ::core::clone::Clone for BCRYPT_PSS_PADDING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCRYPT_RSAKEY_BLOB { + pub Magic: BCRYPT_RSAKEY_BLOB_MAGIC, + pub BitLength: u32, + pub cbPublicExp: u32, + pub cbModulus: u32, + pub cbPrime1: u32, + pub cbPrime2: u32, +} +impl ::core::marker::Copy for BCRYPT_RSAKEY_BLOB {} +impl ::core::clone::Clone for BCRYPT_RSAKEY_BLOB { + fn clone(&self) -> Self { + *self + } +} +pub type BCRYPT_SECRET_HANDLE = *mut ::core::ffi::c_void; +#[repr(C)] +pub struct BCryptBuffer { + pub cbBuffer: u32, + pub BufferType: u32, + pub pvBuffer: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for BCryptBuffer {} +impl ::core::clone::Clone for BCryptBuffer { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BCryptBufferDesc { + pub ulVersion: u32, + pub cBuffers: u32, + pub pBuffers: *mut BCryptBuffer, +} +impl ::core::marker::Copy for BCryptBufferDesc {} +impl ::core::clone::Clone for BCryptBufferDesc { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERTIFICATE_CHAIN_BLOB { + pub certCount: u32, + pub rawCertificates: *mut CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERTIFICATE_CHAIN_BLOB {} +impl ::core::clone::Clone for CERTIFICATE_CHAIN_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_ACCESS_DESCRIPTION { + pub pszAccessMethod: ::windows_sys::core::PSTR, + pub AccessLocation: CERT_ALT_NAME_ENTRY, +} +impl ::core::marker::Copy for CERT_ACCESS_DESCRIPTION {} +impl ::core::clone::Clone for CERT_ACCESS_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_ALT_NAME_ENTRY { + pub dwAltNameChoice: u32, + pub Anonymous: CERT_ALT_NAME_ENTRY_0, +} +impl ::core::marker::Copy for CERT_ALT_NAME_ENTRY {} +impl ::core::clone::Clone for CERT_ALT_NAME_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CERT_ALT_NAME_ENTRY_0 { + pub pOtherName: *mut CERT_OTHER_NAME, + pub pwszRfc822Name: ::windows_sys::core::PWSTR, + pub pwszDNSName: ::windows_sys::core::PWSTR, + pub DirectoryName: CRYPT_INTEGER_BLOB, + pub pwszURL: ::windows_sys::core::PWSTR, + pub IPAddress: CRYPT_INTEGER_BLOB, + pub pszRegisteredID: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for CERT_ALT_NAME_ENTRY_0 {} +impl ::core::clone::Clone for CERT_ALT_NAME_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_ALT_NAME_INFO { + pub cAltEntry: u32, + pub rgAltEntry: *mut CERT_ALT_NAME_ENTRY, +} +impl ::core::marker::Copy for CERT_ALT_NAME_INFO {} +impl ::core::clone::Clone for CERT_ALT_NAME_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_AUTHORITY_INFO_ACCESS { + pub cAccDescr: u32, + pub rgAccDescr: *mut CERT_ACCESS_DESCRIPTION, +} +impl ::core::marker::Copy for CERT_AUTHORITY_INFO_ACCESS {} +impl ::core::clone::Clone for CERT_AUTHORITY_INFO_ACCESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_AUTHORITY_KEY_ID2_INFO { + pub KeyId: CRYPT_INTEGER_BLOB, + pub AuthorityCertIssuer: CERT_ALT_NAME_INFO, + pub AuthorityCertSerialNumber: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERT_AUTHORITY_KEY_ID2_INFO {} +impl ::core::clone::Clone for CERT_AUTHORITY_KEY_ID2_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_AUTHORITY_KEY_ID_INFO { + pub KeyId: CRYPT_INTEGER_BLOB, + pub CertIssuer: CRYPT_INTEGER_BLOB, + pub CertSerialNumber: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERT_AUTHORITY_KEY_ID_INFO {} +impl ::core::clone::Clone for CERT_AUTHORITY_KEY_ID_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_BASIC_CONSTRAINTS2_INFO { + pub fCA: super::super::Foundation::BOOL, + pub fPathLenConstraint: super::super::Foundation::BOOL, + pub dwPathLenConstraint: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_BASIC_CONSTRAINTS2_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_BASIC_CONSTRAINTS2_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_BASIC_CONSTRAINTS_INFO { + pub SubjectType: CRYPT_BIT_BLOB, + pub fPathLenConstraint: super::super::Foundation::BOOL, + pub dwPathLenConstraint: u32, + pub cSubtreesConstraint: u32, + pub rgSubtreesConstraint: *mut CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_BASIC_CONSTRAINTS_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_BASIC_CONSTRAINTS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_BIOMETRIC_DATA { + pub dwTypeOfBiometricDataChoice: CERT_BIOMETRIC_DATA_TYPE, + pub Anonymous: CERT_BIOMETRIC_DATA_0, + pub HashedUrl: CERT_HASHED_URL, +} +impl ::core::marker::Copy for CERT_BIOMETRIC_DATA {} +impl ::core::clone::Clone for CERT_BIOMETRIC_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CERT_BIOMETRIC_DATA_0 { + pub dwPredefined: u32, + pub pszObjId: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for CERT_BIOMETRIC_DATA_0 {} +impl ::core::clone::Clone for CERT_BIOMETRIC_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_BIOMETRIC_EXT_INFO { + pub cBiometricData: u32, + pub rgBiometricData: *mut CERT_BIOMETRIC_DATA, +} +impl ::core::marker::Copy for CERT_BIOMETRIC_EXT_INFO {} +impl ::core::clone::Clone for CERT_BIOMETRIC_EXT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_CHAIN { + pub cCerts: u32, + pub certs: *mut CRYPT_INTEGER_BLOB, + pub keyLocatorInfo: CRYPT_KEY_PROV_INFO, +} +impl ::core::marker::Copy for CERT_CHAIN {} +impl ::core::clone::Clone for CERT_CHAIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_CHAIN_CONTEXT { + pub cbSize: u32, + pub TrustStatus: CERT_TRUST_STATUS, + pub cChain: u32, + pub rgpChain: *mut *mut CERT_SIMPLE_CHAIN, + pub cLowerQualityChainContext: u32, + pub rgpLowerQualityChainContext: *mut *mut CERT_CHAIN_CONTEXT, + pub fHasRevocationFreshnessTime: super::super::Foundation::BOOL, + pub dwRevocationFreshnessTime: u32, + pub dwCreateFlags: u32, + pub ChainId: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_CHAIN_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_CHAIN_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_CHAIN_ELEMENT { + pub cbSize: u32, + pub pCertContext: *const CERT_CONTEXT, + pub TrustStatus: CERT_TRUST_STATUS, + pub pRevocationInfo: *mut CERT_REVOCATION_INFO, + pub pIssuanceUsage: *mut CTL_USAGE, + pub pApplicationUsage: *mut CTL_USAGE, + pub pwszExtendedErrorInfo: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_CHAIN_ELEMENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_CHAIN_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_CHAIN_ENGINE_CONFIG { + pub cbSize: u32, + pub hRestrictedRoot: HCERTSTORE, + pub hRestrictedTrust: HCERTSTORE, + pub hRestrictedOther: HCERTSTORE, + pub cAdditionalStore: u32, + pub rghAdditionalStore: *mut HCERTSTORE, + pub dwFlags: u32, + pub dwUrlRetrievalTimeout: u32, + pub MaximumCachedCertificates: u32, + pub CycleDetectionModulus: u32, + pub hExclusiveRoot: HCERTSTORE, + pub hExclusiveTrustedPeople: HCERTSTORE, + pub dwExclusiveFlags: u32, +} +impl ::core::marker::Copy for CERT_CHAIN_ENGINE_CONFIG {} +impl ::core::clone::Clone for CERT_CHAIN_ENGINE_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_CHAIN_FIND_BY_ISSUER_PARA { + pub cbSize: u32, + pub pszUsageIdentifier: ::windows_sys::core::PCSTR, + pub dwKeySpec: u32, + pub dwAcquirePrivateKeyFlags: u32, + pub cIssuer: u32, + pub rgIssuer: *mut CRYPT_INTEGER_BLOB, + pub pfnFindCallback: PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK, + pub pvFindArg: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_CHAIN_FIND_BY_ISSUER_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_CHAIN_FIND_BY_ISSUER_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_CHAIN_PARA { + pub cbSize: u32, + pub RequestedUsage: CERT_USAGE_MATCH, +} +impl ::core::marker::Copy for CERT_CHAIN_PARA {} +impl ::core::clone::Clone for CERT_CHAIN_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_CHAIN_POLICY_PARA { + pub cbSize: u32, + pub dwFlags: CERT_CHAIN_POLICY_FLAGS, + pub pvExtraPolicyPara: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CERT_CHAIN_POLICY_PARA {} +impl ::core::clone::Clone for CERT_CHAIN_POLICY_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_CHAIN_POLICY_STATUS { + pub cbSize: u32, + pub dwError: u32, + pub lChainIndex: i32, + pub lElementIndex: i32, + pub pvExtraPolicyStatus: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CERT_CHAIN_POLICY_STATUS {} +impl ::core::clone::Clone for CERT_CHAIN_POLICY_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_CONTEXT { + pub dwCertEncodingType: CERT_QUERY_ENCODING_TYPE, + pub pbCertEncoded: *mut u8, + pub cbCertEncoded: u32, + pub pCertInfo: *mut CERT_INFO, + pub hCertStore: HCERTSTORE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_CREATE_CONTEXT_PARA { + pub cbSize: u32, + pub pfnFree: PFN_CRYPT_FREE, + pub pvFree: *mut ::core::ffi::c_void, + pub pfnSort: PFN_CERT_CREATE_CONTEXT_SORT_FUNC, + pub pvSort: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_CREATE_CONTEXT_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_CREATE_CONTEXT_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_CRL_CONTEXT_PAIR { + pub pCertContext: *const CERT_CONTEXT, + pub pCrlContext: *mut CRL_CONTEXT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_CRL_CONTEXT_PAIR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_CRL_CONTEXT_PAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_DH_PARAMETERS { + pub p: CRYPT_INTEGER_BLOB, + pub g: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERT_DH_PARAMETERS {} +impl ::core::clone::Clone for CERT_DH_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_DSS_PARAMETERS { + pub p: CRYPT_INTEGER_BLOB, + pub q: CRYPT_INTEGER_BLOB, + pub g: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERT_DSS_PARAMETERS {} +impl ::core::clone::Clone for CERT_DSS_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_ECC_SIGNATURE { + pub r: CRYPT_INTEGER_BLOB, + pub s: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERT_ECC_SIGNATURE {} +impl ::core::clone::Clone for CERT_ECC_SIGNATURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_EXTENSION { + pub pszObjId: ::windows_sys::core::PSTR, + pub fCritical: super::super::Foundation::BOOL, + pub Value: CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_EXTENSION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_EXTENSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_EXTENSIONS { + pub cExtension: u32, + pub rgExtension: *mut CERT_EXTENSION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_EXTENSIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_EXTENSIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_FORTEZZA_DATA_PROP { + pub SerialNumber: [u8; 8], + pub CertIndex: i32, + pub CertLabel: [u8; 36], +} +impl ::core::marker::Copy for CERT_FORTEZZA_DATA_PROP {} +impl ::core::clone::Clone for CERT_FORTEZZA_DATA_PROP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_GENERAL_SUBTREE { + pub Base: CERT_ALT_NAME_ENTRY, + pub dwMinimum: u32, + pub fMaximum: super::super::Foundation::BOOL, + pub dwMaximum: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_GENERAL_SUBTREE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_GENERAL_SUBTREE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_HASHED_URL { + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub Hash: CRYPT_INTEGER_BLOB, + pub pwszUrl: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CERT_HASHED_URL {} +impl ::core::clone::Clone for CERT_HASHED_URL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_ID { + pub dwIdChoice: CERT_ID_OPTION, + pub Anonymous: CERT_ID_0, +} +impl ::core::marker::Copy for CERT_ID {} +impl ::core::clone::Clone for CERT_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CERT_ID_0 { + pub IssuerSerialNumber: CERT_ISSUER_SERIAL_NUMBER, + pub KeyId: CRYPT_INTEGER_BLOB, + pub HashId: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERT_ID_0 {} +impl ::core::clone::Clone for CERT_ID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_INFO { + pub dwVersion: u32, + pub SerialNumber: CRYPT_INTEGER_BLOB, + pub SignatureAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub Issuer: CRYPT_INTEGER_BLOB, + pub NotBefore: super::super::Foundation::FILETIME, + pub NotAfter: super::super::Foundation::FILETIME, + pub Subject: CRYPT_INTEGER_BLOB, + pub SubjectPublicKeyInfo: CERT_PUBLIC_KEY_INFO, + pub IssuerUniqueId: CRYPT_BIT_BLOB, + pub SubjectUniqueId: CRYPT_BIT_BLOB, + pub cExtension: u32, + pub rgExtension: *mut CERT_EXTENSION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_ISSUER_SERIAL_NUMBER { + pub Issuer: CRYPT_INTEGER_BLOB, + pub SerialNumber: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERT_ISSUER_SERIAL_NUMBER {} +impl ::core::clone::Clone for CERT_ISSUER_SERIAL_NUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_KEYGEN_REQUEST_INFO { + pub dwVersion: u32, + pub SubjectPublicKeyInfo: CERT_PUBLIC_KEY_INFO, + pub pwszChallengeString: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CERT_KEYGEN_REQUEST_INFO {} +impl ::core::clone::Clone for CERT_KEYGEN_REQUEST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_KEY_ATTRIBUTES_INFO { + pub KeyId: CRYPT_INTEGER_BLOB, + pub IntendedKeyUsage: CRYPT_BIT_BLOB, + pub pPrivateKeyUsagePeriod: *mut CERT_PRIVATE_KEY_VALIDITY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_KEY_ATTRIBUTES_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_KEY_ATTRIBUTES_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_KEY_CONTEXT { + pub cbSize: u32, + pub Anonymous: CERT_KEY_CONTEXT_0, + pub dwKeySpec: u32, +} +impl ::core::marker::Copy for CERT_KEY_CONTEXT {} +impl ::core::clone::Clone for CERT_KEY_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CERT_KEY_CONTEXT_0 { + pub hCryptProv: usize, + pub hNCryptKey: NCRYPT_KEY_HANDLE, +} +impl ::core::marker::Copy for CERT_KEY_CONTEXT_0 {} +impl ::core::clone::Clone for CERT_KEY_CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_KEY_USAGE_RESTRICTION_INFO { + pub cCertPolicyId: u32, + pub rgCertPolicyId: *mut CERT_POLICY_ID, + pub RestrictedKeyUsage: CRYPT_BIT_BLOB, +} +impl ::core::marker::Copy for CERT_KEY_USAGE_RESTRICTION_INFO {} +impl ::core::clone::Clone for CERT_KEY_USAGE_RESTRICTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_LDAP_STORE_OPENED_PARA { + pub pvLdapSessionHandle: *mut ::core::ffi::c_void, + pub pwszLdapUrl: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for CERT_LDAP_STORE_OPENED_PARA {} +impl ::core::clone::Clone for CERT_LDAP_STORE_OPENED_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_LOGOTYPE_AUDIO { + pub LogotypeDetails: CERT_LOGOTYPE_DETAILS, + pub pLogotypeAudioInfo: *mut CERT_LOGOTYPE_AUDIO_INFO, +} +impl ::core::marker::Copy for CERT_LOGOTYPE_AUDIO {} +impl ::core::clone::Clone for CERT_LOGOTYPE_AUDIO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_LOGOTYPE_AUDIO_INFO { + pub dwFileSize: u32, + pub dwPlayTime: u32, + pub dwChannels: u32, + pub dwSampleRate: u32, + pub pwszLanguage: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CERT_LOGOTYPE_AUDIO_INFO {} +impl ::core::clone::Clone for CERT_LOGOTYPE_AUDIO_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_LOGOTYPE_DATA { + pub cLogotypeImage: u32, + pub rgLogotypeImage: *mut CERT_LOGOTYPE_IMAGE, + pub cLogotypeAudio: u32, + pub rgLogotypeAudio: *mut CERT_LOGOTYPE_AUDIO, +} +impl ::core::marker::Copy for CERT_LOGOTYPE_DATA {} +impl ::core::clone::Clone for CERT_LOGOTYPE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_LOGOTYPE_DETAILS { + pub pwszMimeType: ::windows_sys::core::PWSTR, + pub cHashedUrl: u32, + pub rgHashedUrl: *mut CERT_HASHED_URL, +} +impl ::core::marker::Copy for CERT_LOGOTYPE_DETAILS {} +impl ::core::clone::Clone for CERT_LOGOTYPE_DETAILS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_LOGOTYPE_EXT_INFO { + pub cCommunityLogo: u32, + pub rgCommunityLogo: *mut CERT_LOGOTYPE_INFO, + pub pIssuerLogo: *mut CERT_LOGOTYPE_INFO, + pub pSubjectLogo: *mut CERT_LOGOTYPE_INFO, + pub cOtherLogo: u32, + pub rgOtherLogo: *mut CERT_OTHER_LOGOTYPE_INFO, +} +impl ::core::marker::Copy for CERT_LOGOTYPE_EXT_INFO {} +impl ::core::clone::Clone for CERT_LOGOTYPE_EXT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_LOGOTYPE_IMAGE { + pub LogotypeDetails: CERT_LOGOTYPE_DETAILS, + pub pLogotypeImageInfo: *mut CERT_LOGOTYPE_IMAGE_INFO, +} +impl ::core::marker::Copy for CERT_LOGOTYPE_IMAGE {} +impl ::core::clone::Clone for CERT_LOGOTYPE_IMAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_LOGOTYPE_IMAGE_INFO { + pub dwLogotypeImageInfoChoice: CERT_LOGOTYPE_IMAGE_INFO_TYPE, + pub dwFileSize: u32, + pub dwXSize: u32, + pub dwYSize: u32, + pub dwLogotypeImageResolutionChoice: CERT_LOGOTYPE_CHOICE, + pub Anonymous: CERT_LOGOTYPE_IMAGE_INFO_0, + pub pwszLanguage: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CERT_LOGOTYPE_IMAGE_INFO {} +impl ::core::clone::Clone for CERT_LOGOTYPE_IMAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CERT_LOGOTYPE_IMAGE_INFO_0 { + pub dwNumBits: u32, + pub dwTableSize: u32, +} +impl ::core::marker::Copy for CERT_LOGOTYPE_IMAGE_INFO_0 {} +impl ::core::clone::Clone for CERT_LOGOTYPE_IMAGE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_LOGOTYPE_INFO { + pub dwLogotypeInfoChoice: CERT_LOGOTYPE_OPTION, + pub Anonymous: CERT_LOGOTYPE_INFO_0, +} +impl ::core::marker::Copy for CERT_LOGOTYPE_INFO {} +impl ::core::clone::Clone for CERT_LOGOTYPE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CERT_LOGOTYPE_INFO_0 { + pub pLogotypeDirectInfo: *mut CERT_LOGOTYPE_DATA, + pub pLogotypeIndirectInfo: *mut CERT_LOGOTYPE_REFERENCE, +} +impl ::core::marker::Copy for CERT_LOGOTYPE_INFO_0 {} +impl ::core::clone::Clone for CERT_LOGOTYPE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_LOGOTYPE_REFERENCE { + pub cHashedUrl: u32, + pub rgHashedUrl: *mut CERT_HASHED_URL, +} +impl ::core::marker::Copy for CERT_LOGOTYPE_REFERENCE {} +impl ::core::clone::Clone for CERT_LOGOTYPE_REFERENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_NAME_CONSTRAINTS_INFO { + pub cPermittedSubtree: u32, + pub rgPermittedSubtree: *mut CERT_GENERAL_SUBTREE, + pub cExcludedSubtree: u32, + pub rgExcludedSubtree: *mut CERT_GENERAL_SUBTREE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_NAME_CONSTRAINTS_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_NAME_CONSTRAINTS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_NAME_INFO { + pub cRDN: u32, + pub rgRDN: *mut CERT_RDN, +} +impl ::core::marker::Copy for CERT_NAME_INFO {} +impl ::core::clone::Clone for CERT_NAME_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_NAME_VALUE { + pub dwValueType: u32, + pub Value: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERT_NAME_VALUE {} +impl ::core::clone::Clone for CERT_NAME_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_OR_CRL_BLOB { + pub dwChoice: u32, + pub cbEncoded: u32, + pub pbEncoded: *mut u8, +} +impl ::core::marker::Copy for CERT_OR_CRL_BLOB {} +impl ::core::clone::Clone for CERT_OR_CRL_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_OR_CRL_BUNDLE { + pub cItem: u32, + pub rgItem: *mut CERT_OR_CRL_BLOB, +} +impl ::core::marker::Copy for CERT_OR_CRL_BUNDLE {} +impl ::core::clone::Clone for CERT_OR_CRL_BUNDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_OTHER_LOGOTYPE_INFO { + pub pszObjId: ::windows_sys::core::PSTR, + pub LogotypeInfo: CERT_LOGOTYPE_INFO, +} +impl ::core::marker::Copy for CERT_OTHER_LOGOTYPE_INFO {} +impl ::core::clone::Clone for CERT_OTHER_LOGOTYPE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_OTHER_NAME { + pub pszObjId: ::windows_sys::core::PSTR, + pub Value: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERT_OTHER_NAME {} +impl ::core::clone::Clone for CERT_OTHER_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_PAIR { + pub Forward: CRYPT_INTEGER_BLOB, + pub Reverse: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERT_PAIR {} +impl ::core::clone::Clone for CERT_PAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_PHYSICAL_STORE_INFO { + pub cbSize: u32, + pub pszOpenStoreProvider: ::windows_sys::core::PSTR, + pub dwOpenEncodingType: u32, + pub dwOpenFlags: u32, + pub OpenParameters: CRYPT_INTEGER_BLOB, + pub dwFlags: u32, + pub dwPriority: u32, +} +impl ::core::marker::Copy for CERT_PHYSICAL_STORE_INFO {} +impl ::core::clone::Clone for CERT_PHYSICAL_STORE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_POLICIES_INFO { + pub cPolicyInfo: u32, + pub rgPolicyInfo: *mut CERT_POLICY_INFO, +} +impl ::core::marker::Copy for CERT_POLICIES_INFO {} +impl ::core::clone::Clone for CERT_POLICIES_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_POLICY95_QUALIFIER1 { + pub pszPracticesReference: ::windows_sys::core::PWSTR, + pub pszNoticeIdentifier: ::windows_sys::core::PSTR, + pub pszNSINoticeIdentifier: ::windows_sys::core::PSTR, + pub cCPSURLs: u32, + pub rgCPSURLs: *mut CPS_URLS, +} +impl ::core::marker::Copy for CERT_POLICY95_QUALIFIER1 {} +impl ::core::clone::Clone for CERT_POLICY95_QUALIFIER1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_POLICY_CONSTRAINTS_INFO { + pub fRequireExplicitPolicy: super::super::Foundation::BOOL, + pub dwRequireExplicitPolicySkipCerts: u32, + pub fInhibitPolicyMapping: super::super::Foundation::BOOL, + pub dwInhibitPolicyMappingSkipCerts: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_POLICY_CONSTRAINTS_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_POLICY_CONSTRAINTS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_POLICY_ID { + pub cCertPolicyElementId: u32, + pub rgpszCertPolicyElementId: *mut ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for CERT_POLICY_ID {} +impl ::core::clone::Clone for CERT_POLICY_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_POLICY_INFO { + pub pszPolicyIdentifier: ::windows_sys::core::PSTR, + pub cPolicyQualifier: u32, + pub rgPolicyQualifier: *mut CERT_POLICY_QUALIFIER_INFO, +} +impl ::core::marker::Copy for CERT_POLICY_INFO {} +impl ::core::clone::Clone for CERT_POLICY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_POLICY_MAPPING { + pub pszIssuerDomainPolicy: ::windows_sys::core::PSTR, + pub pszSubjectDomainPolicy: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for CERT_POLICY_MAPPING {} +impl ::core::clone::Clone for CERT_POLICY_MAPPING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_POLICY_MAPPINGS_INFO { + pub cPolicyMapping: u32, + pub rgPolicyMapping: *mut CERT_POLICY_MAPPING, +} +impl ::core::marker::Copy for CERT_POLICY_MAPPINGS_INFO {} +impl ::core::clone::Clone for CERT_POLICY_MAPPINGS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_POLICY_QUALIFIER_INFO { + pub pszPolicyQualifierId: ::windows_sys::core::PSTR, + pub Qualifier: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERT_POLICY_QUALIFIER_INFO {} +impl ::core::clone::Clone for CERT_POLICY_QUALIFIER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_POLICY_QUALIFIER_NOTICE_REFERENCE { + pub pszOrganization: ::windows_sys::core::PSTR, + pub cNoticeNumbers: u32, + pub rgNoticeNumbers: *mut i32, +} +impl ::core::marker::Copy for CERT_POLICY_QUALIFIER_NOTICE_REFERENCE {} +impl ::core::clone::Clone for CERT_POLICY_QUALIFIER_NOTICE_REFERENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_POLICY_QUALIFIER_USER_NOTICE { + pub pNoticeReference: *mut CERT_POLICY_QUALIFIER_NOTICE_REFERENCE, + pub pszDisplayText: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CERT_POLICY_QUALIFIER_USER_NOTICE {} +impl ::core::clone::Clone for CERT_POLICY_QUALIFIER_USER_NOTICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_PRIVATE_KEY_VALIDITY { + pub NotBefore: super::super::Foundation::FILETIME, + pub NotAfter: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_PRIVATE_KEY_VALIDITY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_PRIVATE_KEY_VALIDITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_PUBLIC_KEY_INFO { + pub Algorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub PublicKey: CRYPT_BIT_BLOB, +} +impl ::core::marker::Copy for CERT_PUBLIC_KEY_INFO {} +impl ::core::clone::Clone for CERT_PUBLIC_KEY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_QC_STATEMENT { + pub pszStatementId: ::windows_sys::core::PSTR, + pub StatementInfo: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERT_QC_STATEMENT {} +impl ::core::clone::Clone for CERT_QC_STATEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_QC_STATEMENTS_EXT_INFO { + pub cStatement: u32, + pub rgStatement: *mut CERT_QC_STATEMENT, +} +impl ::core::marker::Copy for CERT_QC_STATEMENTS_EXT_INFO {} +impl ::core::clone::Clone for CERT_QC_STATEMENTS_EXT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_RDN { + pub cRDNAttr: u32, + pub rgRDNAttr: *mut CERT_RDN_ATTR, +} +impl ::core::marker::Copy for CERT_RDN {} +impl ::core::clone::Clone for CERT_RDN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_RDN_ATTR { + pub pszObjId: ::windows_sys::core::PSTR, + pub dwValueType: u32, + pub Value: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CERT_RDN_ATTR {} +impl ::core::clone::Clone for CERT_RDN_ATTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub struct CERT_REGISTRY_STORE_CLIENT_GPT_PARA { + pub hKeyBase: super::super::System::Registry::HKEY, + pub pwszRegPath: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::marker::Copy for CERT_REGISTRY_STORE_CLIENT_GPT_PARA {} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::clone::Clone for CERT_REGISTRY_STORE_CLIENT_GPT_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub struct CERT_REGISTRY_STORE_ROAMING_PARA { + pub hKey: super::super::System::Registry::HKEY, + pub pwszStoreDirectory: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::marker::Copy for CERT_REGISTRY_STORE_ROAMING_PARA {} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::clone::Clone for CERT_REGISTRY_STORE_ROAMING_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_REQUEST_INFO { + pub dwVersion: u32, + pub Subject: CRYPT_INTEGER_BLOB, + pub SubjectPublicKeyInfo: CERT_PUBLIC_KEY_INFO, + pub cAttribute: u32, + pub rgAttribute: *mut CRYPT_ATTRIBUTE, +} +impl ::core::marker::Copy for CERT_REQUEST_INFO {} +impl ::core::clone::Clone for CERT_REQUEST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_REVOCATION_CHAIN_PARA { + pub cbSize: u32, + pub hChainEngine: HCERTCHAINENGINE, + pub hAdditionalStore: HCERTSTORE, + pub dwChainFlags: u32, + pub dwUrlRetrievalTimeout: u32, + pub pftCurrentTime: *mut super::super::Foundation::FILETIME, + pub pftCacheResync: *mut super::super::Foundation::FILETIME, + pub cbMaxUrlRetrievalByteCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_REVOCATION_CHAIN_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_REVOCATION_CHAIN_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_REVOCATION_CRL_INFO { + pub cbSize: u32, + pub pBaseCrlContext: *mut CRL_CONTEXT, + pub pDeltaCrlContext: *mut CRL_CONTEXT, + pub pCrlEntry: *mut CRL_ENTRY, + pub fDeltaCrlEntry: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_REVOCATION_CRL_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_REVOCATION_CRL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_REVOCATION_INFO { + pub cbSize: u32, + pub dwRevocationResult: u32, + pub pszRevocationOid: ::windows_sys::core::PCSTR, + pub pvOidSpecificInfo: *mut ::core::ffi::c_void, + pub fHasFreshnessTime: super::super::Foundation::BOOL, + pub dwFreshnessTime: u32, + pub pCrlInfo: *mut CERT_REVOCATION_CRL_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_REVOCATION_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_REVOCATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_REVOCATION_PARA { + pub cbSize: u32, + pub pIssuerCert: *const CERT_CONTEXT, + pub cCertStore: u32, + pub rgCertStore: *mut HCERTSTORE, + pub hCrlStore: HCERTSTORE, + pub pftTimeToUse: *mut super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_REVOCATION_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_REVOCATION_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_REVOCATION_STATUS { + pub cbSize: u32, + pub dwIndex: u32, + pub dwError: u32, + pub dwReason: CERT_REVOCATION_STATUS_REASON, + pub fHasFreshnessTime: super::super::Foundation::BOOL, + pub dwFreshnessTime: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_REVOCATION_STATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_REVOCATION_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_SELECT_CHAIN_PARA { + pub hChainEngine: HCERTCHAINENGINE, + pub pTime: *mut super::super::Foundation::FILETIME, + pub hAdditionalStore: HCERTSTORE, + pub pChainPara: *mut CERT_CHAIN_PARA, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_SELECT_CHAIN_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_SELECT_CHAIN_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_SELECT_CRITERIA { + pub dwType: CERT_SELECT_CRITERIA_TYPE, + pub cPara: u32, + pub ppPara: *mut *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CERT_SELECT_CRITERIA {} +impl ::core::clone::Clone for CERT_SELECT_CRITERIA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_SERVER_OCSP_RESPONSE_CONTEXT { + pub cbSize: u32, + pub pbEncodedOcspResponse: *mut u8, + pub cbEncodedOcspResponse: u32, +} +impl ::core::marker::Copy for CERT_SERVER_OCSP_RESPONSE_CONTEXT {} +impl ::core::clone::Clone for CERT_SERVER_OCSP_RESPONSE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_SERVER_OCSP_RESPONSE_OPEN_PARA { + pub cbSize: u32, + pub dwFlags: u32, + pub pcbUsedSize: *mut u32, + pub pwszOcspDirectory: ::windows_sys::core::PWSTR, + pub pfnUpdateCallback: PFN_CERT_SERVER_OCSP_RESPONSE_UPDATE_CALLBACK, + pub pvUpdateCallbackArg: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_SERVER_OCSP_RESPONSE_OPEN_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_SERVER_OCSP_RESPONSE_OPEN_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_SIGNED_CONTENT_INFO { + pub ToBeSigned: CRYPT_INTEGER_BLOB, + pub SignatureAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub Signature: CRYPT_BIT_BLOB, +} +impl ::core::marker::Copy for CERT_SIGNED_CONTENT_INFO {} +impl ::core::clone::Clone for CERT_SIGNED_CONTENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_SIMPLE_CHAIN { + pub cbSize: u32, + pub TrustStatus: CERT_TRUST_STATUS, + pub cElement: u32, + pub rgpElement: *mut *mut CERT_CHAIN_ELEMENT, + pub pTrustListInfo: *mut CERT_TRUST_LIST_INFO, + pub fHasRevocationFreshnessTime: super::super::Foundation::BOOL, + pub dwRevocationFreshnessTime: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_SIMPLE_CHAIN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_SIMPLE_CHAIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_STORE_PROV_FIND_INFO { + pub cbSize: u32, + pub dwMsgAndCertEncodingType: u32, + pub dwFindFlags: u32, + pub dwFindType: u32, + pub pvFindPara: *const ::core::ffi::c_void, +} +impl ::core::marker::Copy for CERT_STORE_PROV_FIND_INFO {} +impl ::core::clone::Clone for CERT_STORE_PROV_FIND_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_STORE_PROV_INFO { + pub cbSize: u32, + pub cStoreProvFunc: u32, + pub rgpvStoreProvFunc: *mut *mut ::core::ffi::c_void, + pub hStoreProv: HCERTSTOREPROV, + pub dwStoreProvFlags: CERT_STORE_PROV_FLAGS, + pub hStoreProvFuncAddr2: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CERT_STORE_PROV_INFO {} +impl ::core::clone::Clone for CERT_STORE_PROV_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_STRONG_SIGN_PARA { + pub cbSize: u32, + pub dwInfoChoice: u32, + pub Anonymous: CERT_STRONG_SIGN_PARA_0, +} +impl ::core::marker::Copy for CERT_STRONG_SIGN_PARA {} +impl ::core::clone::Clone for CERT_STRONG_SIGN_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CERT_STRONG_SIGN_PARA_0 { + pub pvInfo: *mut ::core::ffi::c_void, + pub pSerializedInfo: *mut CERT_STRONG_SIGN_SERIALIZED_INFO, + pub pszOID: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for CERT_STRONG_SIGN_PARA_0 {} +impl ::core::clone::Clone for CERT_STRONG_SIGN_PARA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_STRONG_SIGN_SERIALIZED_INFO { + pub dwFlags: CERT_STRONG_SIGN_FLAGS, + pub pwszCNGSignHashAlgids: ::windows_sys::core::PWSTR, + pub pwszCNGPubKeyMinBitLengths: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CERT_STRONG_SIGN_SERIALIZED_INFO {} +impl ::core::clone::Clone for CERT_STRONG_SIGN_SERIALIZED_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_SUPPORTED_ALGORITHM_INFO { + pub Algorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub IntendedKeyUsage: CRYPT_BIT_BLOB, + pub IntendedCertPolicies: CERT_POLICIES_INFO, +} +impl ::core::marker::Copy for CERT_SUPPORTED_ALGORITHM_INFO {} +impl ::core::clone::Clone for CERT_SUPPORTED_ALGORITHM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_SYSTEM_STORE_INFO { + pub cbSize: u32, +} +impl ::core::marker::Copy for CERT_SYSTEM_STORE_INFO {} +impl ::core::clone::Clone for CERT_SYSTEM_STORE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub struct CERT_SYSTEM_STORE_RELOCATE_PARA { + pub Anonymous1: CERT_SYSTEM_STORE_RELOCATE_PARA_0, + pub Anonymous2: CERT_SYSTEM_STORE_RELOCATE_PARA_1, +} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::marker::Copy for CERT_SYSTEM_STORE_RELOCATE_PARA {} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::clone::Clone for CERT_SYSTEM_STORE_RELOCATE_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub union CERT_SYSTEM_STORE_RELOCATE_PARA_0 { + pub hKeyBase: super::super::System::Registry::HKEY, + pub pvBase: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::marker::Copy for CERT_SYSTEM_STORE_RELOCATE_PARA_0 {} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::clone::Clone for CERT_SYSTEM_STORE_RELOCATE_PARA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub union CERT_SYSTEM_STORE_RELOCATE_PARA_1 { + pub pvSystemStore: *mut ::core::ffi::c_void, + pub pszSystemStore: ::windows_sys::core::PCSTR, + pub pwszSystemStore: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::marker::Copy for CERT_SYSTEM_STORE_RELOCATE_PARA_1 {} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::clone::Clone for CERT_SYSTEM_STORE_RELOCATE_PARA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_TEMPLATE_EXT { + pub pszObjId: ::windows_sys::core::PSTR, + pub dwMajorVersion: u32, + pub fMinorVersion: super::super::Foundation::BOOL, + pub dwMinorVersion: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_TEMPLATE_EXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_TEMPLATE_EXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_TPM_SPECIFICATION_INFO { + pub pwszFamily: ::windows_sys::core::PWSTR, + pub dwLevel: u32, + pub dwRevision: u32, +} +impl ::core::marker::Copy for CERT_TPM_SPECIFICATION_INFO {} +impl ::core::clone::Clone for CERT_TPM_SPECIFICATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CERT_TRUST_LIST_INFO { + pub cbSize: u32, + pub pCtlEntry: *mut CTL_ENTRY, + pub pCtlContext: *mut CTL_CONTEXT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CERT_TRUST_LIST_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CERT_TRUST_LIST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_TRUST_STATUS { + pub dwErrorStatus: u32, + pub dwInfoStatus: u32, +} +impl ::core::marker::Copy for CERT_TRUST_STATUS {} +impl ::core::clone::Clone for CERT_TRUST_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_USAGE_MATCH { + pub dwType: u32, + pub Usage: CTL_USAGE, +} +impl ::core::marker::Copy for CERT_USAGE_MATCH {} +impl ::core::clone::Clone for CERT_USAGE_MATCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_X942_DH_PARAMETERS { + pub p: CRYPT_INTEGER_BLOB, + pub g: CRYPT_INTEGER_BLOB, + pub q: CRYPT_INTEGER_BLOB, + pub j: CRYPT_INTEGER_BLOB, + pub pValidationParams: *mut CERT_X942_DH_VALIDATION_PARAMS, +} +impl ::core::marker::Copy for CERT_X942_DH_PARAMETERS {} +impl ::core::clone::Clone for CERT_X942_DH_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CERT_X942_DH_VALIDATION_PARAMS { + pub seed: CRYPT_BIT_BLOB, + pub pgenCounter: u32, +} +impl ::core::marker::Copy for CERT_X942_DH_VALIDATION_PARAMS {} +impl ::core::clone::Clone for CERT_X942_DH_VALIDATION_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLAIMLIST { + pub count: u32, + pub claims: *const ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for CLAIMLIST {} +impl ::core::clone::Clone for CLAIMLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMC_ADD_ATTRIBUTES_INFO { + pub dwCmcDataReference: u32, + pub cCertReference: u32, + pub rgdwCertReference: *mut u32, + pub cAttribute: u32, + pub rgAttribute: *mut CRYPT_ATTRIBUTE, +} +impl ::core::marker::Copy for CMC_ADD_ATTRIBUTES_INFO {} +impl ::core::clone::Clone for CMC_ADD_ATTRIBUTES_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMC_ADD_EXTENSIONS_INFO { + pub dwCmcDataReference: u32, + pub cCertReference: u32, + pub rgdwCertReference: *mut u32, + pub cExtension: u32, + pub rgExtension: *mut CERT_EXTENSION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMC_ADD_EXTENSIONS_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMC_ADD_EXTENSIONS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMC_DATA_INFO { + pub cTaggedAttribute: u32, + pub rgTaggedAttribute: *mut CMC_TAGGED_ATTRIBUTE, + pub cTaggedRequest: u32, + pub rgTaggedRequest: *mut CMC_TAGGED_REQUEST, + pub cTaggedContentInfo: u32, + pub rgTaggedContentInfo: *mut CMC_TAGGED_CONTENT_INFO, + pub cTaggedOtherMsg: u32, + pub rgTaggedOtherMsg: *mut CMC_TAGGED_OTHER_MSG, +} +impl ::core::marker::Copy for CMC_DATA_INFO {} +impl ::core::clone::Clone for CMC_DATA_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMC_PEND_INFO { + pub PendToken: CRYPT_INTEGER_BLOB, + pub PendTime: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMC_PEND_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMC_PEND_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMC_RESPONSE_INFO { + pub cTaggedAttribute: u32, + pub rgTaggedAttribute: *mut CMC_TAGGED_ATTRIBUTE, + pub cTaggedContentInfo: u32, + pub rgTaggedContentInfo: *mut CMC_TAGGED_CONTENT_INFO, + pub cTaggedOtherMsg: u32, + pub rgTaggedOtherMsg: *mut CMC_TAGGED_OTHER_MSG, +} +impl ::core::marker::Copy for CMC_RESPONSE_INFO {} +impl ::core::clone::Clone for CMC_RESPONSE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMC_STATUS_INFO { + pub dwStatus: u32, + pub cBodyList: u32, + pub rgdwBodyList: *mut u32, + pub pwszStatusString: ::windows_sys::core::PWSTR, + pub dwOtherInfoChoice: u32, + pub Anonymous: CMC_STATUS_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMC_STATUS_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMC_STATUS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CMC_STATUS_INFO_0 { + pub dwFailInfo: u32, + pub pPendInfo: *mut CMC_PEND_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMC_STATUS_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMC_STATUS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMC_TAGGED_ATTRIBUTE { + pub dwBodyPartID: u32, + pub Attribute: CRYPT_ATTRIBUTE, +} +impl ::core::marker::Copy for CMC_TAGGED_ATTRIBUTE {} +impl ::core::clone::Clone for CMC_TAGGED_ATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMC_TAGGED_CERT_REQUEST { + pub dwBodyPartID: u32, + pub SignedCertRequest: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CMC_TAGGED_CERT_REQUEST {} +impl ::core::clone::Clone for CMC_TAGGED_CERT_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMC_TAGGED_CONTENT_INFO { + pub dwBodyPartID: u32, + pub EncodedContentInfo: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CMC_TAGGED_CONTENT_INFO {} +impl ::core::clone::Clone for CMC_TAGGED_CONTENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMC_TAGGED_OTHER_MSG { + pub dwBodyPartID: u32, + pub pszObjId: ::windows_sys::core::PSTR, + pub Value: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CMC_TAGGED_OTHER_MSG {} +impl ::core::clone::Clone for CMC_TAGGED_OTHER_MSG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMC_TAGGED_REQUEST { + pub dwTaggedRequestChoice: u32, + pub Anonymous: CMC_TAGGED_REQUEST_0, +} +impl ::core::marker::Copy for CMC_TAGGED_REQUEST {} +impl ::core::clone::Clone for CMC_TAGGED_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CMC_TAGGED_REQUEST_0 { + pub pTaggedCertRequest: *mut CMC_TAGGED_CERT_REQUEST, +} +impl ::core::marker::Copy for CMC_TAGGED_REQUEST_0 {} +impl ::core::clone::Clone for CMC_TAGGED_REQUEST_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_CMS_RECIPIENT_INFO { + pub dwRecipientChoice: u32, + pub Anonymous: CMSG_CMS_RECIPIENT_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_CMS_RECIPIENT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_CMS_RECIPIENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CMSG_CMS_RECIPIENT_INFO_0 { + pub pKeyTrans: *mut CMSG_KEY_TRANS_RECIPIENT_INFO, + pub pKeyAgree: *mut CMSG_KEY_AGREE_RECIPIENT_INFO, + pub pMailList: *mut CMSG_MAIL_LIST_RECIPIENT_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_CMS_RECIPIENT_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_CMS_RECIPIENT_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_CMS_SIGNER_INFO { + pub dwVersion: u32, + pub SignerId: CERT_ID, + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub HashEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub EncryptedHash: CRYPT_INTEGER_BLOB, + pub AuthAttrs: CRYPT_ATTRIBUTES, + pub UnauthAttrs: CRYPT_ATTRIBUTES, +} +impl ::core::marker::Copy for CMSG_CMS_SIGNER_INFO {} +impl ::core::clone::Clone for CMSG_CMS_SIGNER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_CNG_CONTENT_DECRYPT_INFO { + pub cbSize: u32, + pub ContentEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pfnAlloc: PFN_CMSG_ALLOC, + pub pfnFree: PFN_CMSG_FREE, + pub hNCryptKey: NCRYPT_KEY_HANDLE, + pub pbContentEncryptKey: *mut u8, + pub cbContentEncryptKey: u32, + pub hCNGContentEncryptKey: BCRYPT_KEY_HANDLE, + pub pbCNGContentEncryptKeyObject: *mut u8, +} +impl ::core::marker::Copy for CMSG_CNG_CONTENT_DECRYPT_INFO {} +impl ::core::clone::Clone for CMSG_CNG_CONTENT_DECRYPT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_CONTENT_ENCRYPT_INFO { + pub cbSize: u32, + pub hCryptProv: HCRYPTPROV_LEGACY, + pub ContentEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pvEncryptionAuxInfo: *mut ::core::ffi::c_void, + pub cRecipients: u32, + pub rgCmsRecipients: *mut CMSG_RECIPIENT_ENCODE_INFO, + pub pfnAlloc: PFN_CMSG_ALLOC, + pub pfnFree: PFN_CMSG_FREE, + pub dwEncryptFlags: u32, + pub Anonymous: CMSG_CONTENT_ENCRYPT_INFO_0, + pub dwFlags: u32, + pub fCNG: super::super::Foundation::BOOL, + pub pbCNGContentEncryptKeyObject: *mut u8, + pub pbContentEncryptKey: *mut u8, + pub cbContentEncryptKey: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_CONTENT_ENCRYPT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_CONTENT_ENCRYPT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CMSG_CONTENT_ENCRYPT_INFO_0 { + pub hContentEncryptKey: usize, + pub hCNGContentEncryptKey: BCRYPT_KEY_HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_CONTENT_ENCRYPT_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_CONTENT_ENCRYPT_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA { + pub cbSize: u32, + pub dwSignerIndex: u32, + pub blob: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA {} +impl ::core::clone::Clone for CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_CTRL_DECRYPT_PARA { + pub cbSize: u32, + pub Anonymous: CMSG_CTRL_DECRYPT_PARA_0, + pub dwKeySpec: u32, + pub dwRecipientIndex: u32, +} +impl ::core::marker::Copy for CMSG_CTRL_DECRYPT_PARA {} +impl ::core::clone::Clone for CMSG_CTRL_DECRYPT_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CMSG_CTRL_DECRYPT_PARA_0 { + pub hCryptProv: usize, + pub hNCryptKey: NCRYPT_KEY_HANDLE, +} +impl ::core::marker::Copy for CMSG_CTRL_DECRYPT_PARA_0 {} +impl ::core::clone::Clone for CMSG_CTRL_DECRYPT_PARA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA { + pub cbSize: u32, + pub dwSignerIndex: u32, + pub dwUnauthAttrIndex: u32, +} +impl ::core::marker::Copy for CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA {} +impl ::core::clone::Clone for CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_CTRL_KEY_AGREE_DECRYPT_PARA { + pub cbSize: u32, + pub Anonymous: CMSG_CTRL_KEY_AGREE_DECRYPT_PARA_0, + pub dwKeySpec: u32, + pub pKeyAgree: *mut CMSG_KEY_AGREE_RECIPIENT_INFO, + pub dwRecipientIndex: u32, + pub dwRecipientEncryptedKeyIndex: u32, + pub OriginatorPublicKey: CRYPT_BIT_BLOB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_CTRL_KEY_AGREE_DECRYPT_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_CTRL_KEY_AGREE_DECRYPT_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CMSG_CTRL_KEY_AGREE_DECRYPT_PARA_0 { + pub hCryptProv: usize, + pub hNCryptKey: NCRYPT_KEY_HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_CTRL_KEY_AGREE_DECRYPT_PARA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_CTRL_KEY_AGREE_DECRYPT_PARA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_CTRL_KEY_TRANS_DECRYPT_PARA { + pub cbSize: u32, + pub Anonymous: CMSG_CTRL_KEY_TRANS_DECRYPT_PARA_0, + pub dwKeySpec: u32, + pub pKeyTrans: *mut CMSG_KEY_TRANS_RECIPIENT_INFO, + pub dwRecipientIndex: u32, +} +impl ::core::marker::Copy for CMSG_CTRL_KEY_TRANS_DECRYPT_PARA {} +impl ::core::clone::Clone for CMSG_CTRL_KEY_TRANS_DECRYPT_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CMSG_CTRL_KEY_TRANS_DECRYPT_PARA_0 { + pub hCryptProv: usize, + pub hNCryptKey: NCRYPT_KEY_HANDLE, +} +impl ::core::marker::Copy for CMSG_CTRL_KEY_TRANS_DECRYPT_PARA_0 {} +impl ::core::clone::Clone for CMSG_CTRL_KEY_TRANS_DECRYPT_PARA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_CTRL_MAIL_LIST_DECRYPT_PARA { + pub cbSize: u32, + pub hCryptProv: usize, + pub pMailList: *mut CMSG_MAIL_LIST_RECIPIENT_INFO, + pub dwRecipientIndex: u32, + pub dwKeyChoice: u32, + pub Anonymous: CMSG_CTRL_MAIL_LIST_DECRYPT_PARA_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_CTRL_MAIL_LIST_DECRYPT_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_CTRL_MAIL_LIST_DECRYPT_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CMSG_CTRL_MAIL_LIST_DECRYPT_PARA_0 { + pub hKeyEncryptionKey: usize, + pub pvKeyEncryptionKey: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_CTRL_MAIL_LIST_DECRYPT_PARA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_CTRL_MAIL_LIST_DECRYPT_PARA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA { + pub cbSize: u32, + pub hCryptProv: HCRYPTPROV_LEGACY, + pub dwSignerIndex: u32, + pub dwSignerType: u32, + pub pvSigner: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA {} +impl ::core::clone::Clone for CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_ENCRYPTED_ENCODE_INFO { + pub cbSize: u32, + pub ContentEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pvEncryptionAuxInfo: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CMSG_ENCRYPTED_ENCODE_INFO {} +impl ::core::clone::Clone for CMSG_ENCRYPTED_ENCODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_ENVELOPED_ENCODE_INFO { + pub cbSize: u32, + pub hCryptProv: HCRYPTPROV_LEGACY, + pub ContentEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pvEncryptionAuxInfo: *mut ::core::ffi::c_void, + pub cRecipients: u32, + pub rgpRecipients: *mut *mut CERT_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_ENVELOPED_ENCODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_ENVELOPED_ENCODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_HASHED_ENCODE_INFO { + pub cbSize: u32, + pub hCryptProv: HCRYPTPROV_LEGACY, + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pvHashAuxInfo: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CMSG_HASHED_ENCODE_INFO {} +impl ::core::clone::Clone for CMSG_HASHED_ENCODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_KEY_AGREE_ENCRYPT_INFO { + pub cbSize: u32, + pub dwRecipientIndex: u32, + pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub UserKeyingMaterial: CRYPT_INTEGER_BLOB, + pub dwOriginatorChoice: CMSG_KEY_AGREE_ORIGINATOR, + pub Anonymous: CMSG_KEY_AGREE_ENCRYPT_INFO_0, + pub cKeyAgreeKeyEncryptInfo: u32, + pub rgpKeyAgreeKeyEncryptInfo: *mut *mut CMSG_KEY_AGREE_KEY_ENCRYPT_INFO, + pub dwFlags: u32, +} +impl ::core::marker::Copy for CMSG_KEY_AGREE_ENCRYPT_INFO {} +impl ::core::clone::Clone for CMSG_KEY_AGREE_ENCRYPT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CMSG_KEY_AGREE_ENCRYPT_INFO_0 { + pub OriginatorCertId: CERT_ID, + pub OriginatorPublicKeyInfo: CERT_PUBLIC_KEY_INFO, +} +impl ::core::marker::Copy for CMSG_KEY_AGREE_ENCRYPT_INFO_0 {} +impl ::core::clone::Clone for CMSG_KEY_AGREE_ENCRYPT_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_KEY_AGREE_KEY_ENCRYPT_INFO { + pub cbSize: u32, + pub EncryptedKey: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CMSG_KEY_AGREE_KEY_ENCRYPT_INFO {} +impl ::core::clone::Clone for CMSG_KEY_AGREE_KEY_ENCRYPT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO { + pub cbSize: u32, + pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pvKeyEncryptionAuxInfo: *mut ::core::ffi::c_void, + pub KeyWrapAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pvKeyWrapAuxInfo: *mut ::core::ffi::c_void, + pub hCryptProv: HCRYPTPROV_LEGACY, + pub dwKeySpec: u32, + pub dwKeyChoice: CMSG_KEY_AGREE_OPTION, + pub Anonymous: CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO_0, + pub UserKeyingMaterial: CRYPT_INTEGER_BLOB, + pub cRecipientEncryptedKeys: u32, + pub rgpRecipientEncryptedKeys: *mut *mut CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO_0 { + pub pEphemeralAlgorithm: *mut CRYPT_ALGORITHM_IDENTIFIER, + pub pSenderId: *mut CERT_ID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_KEY_AGREE_RECIPIENT_INFO { + pub dwVersion: u32, + pub dwOriginatorChoice: CMSG_KEY_AGREE_ORIGINATOR, + pub Anonymous: CMSG_KEY_AGREE_RECIPIENT_INFO_0, + pub UserKeyingMaterial: CRYPT_INTEGER_BLOB, + pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub cRecipientEncryptedKeys: u32, + pub rgpRecipientEncryptedKeys: *mut *mut CMSG_RECIPIENT_ENCRYPTED_KEY_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_KEY_AGREE_RECIPIENT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_KEY_AGREE_RECIPIENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CMSG_KEY_AGREE_RECIPIENT_INFO_0 { + pub OriginatorCertId: CERT_ID, + pub OriginatorPublicKeyInfo: CERT_PUBLIC_KEY_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_KEY_AGREE_RECIPIENT_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_KEY_AGREE_RECIPIENT_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_KEY_TRANS_ENCRYPT_INFO { + pub cbSize: u32, + pub dwRecipientIndex: u32, + pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub EncryptedKey: CRYPT_INTEGER_BLOB, + pub dwFlags: u32, +} +impl ::core::marker::Copy for CMSG_KEY_TRANS_ENCRYPT_INFO {} +impl ::core::clone::Clone for CMSG_KEY_TRANS_ENCRYPT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO { + pub cbSize: u32, + pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pvKeyEncryptionAuxInfo: *mut ::core::ffi::c_void, + pub hCryptProv: HCRYPTPROV_LEGACY, + pub RecipientPublicKey: CRYPT_BIT_BLOB, + pub RecipientId: CERT_ID, +} +impl ::core::marker::Copy for CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO {} +impl ::core::clone::Clone for CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_KEY_TRANS_RECIPIENT_INFO { + pub dwVersion: u32, + pub RecipientId: CERT_ID, + pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub EncryptedKey: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CMSG_KEY_TRANS_RECIPIENT_INFO {} +impl ::core::clone::Clone for CMSG_KEY_TRANS_RECIPIENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_MAIL_LIST_ENCRYPT_INFO { + pub cbSize: u32, + pub dwRecipientIndex: u32, + pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub EncryptedKey: CRYPT_INTEGER_BLOB, + pub dwFlags: u32, +} +impl ::core::marker::Copy for CMSG_MAIL_LIST_ENCRYPT_INFO {} +impl ::core::clone::Clone for CMSG_MAIL_LIST_ENCRYPT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO { + pub cbSize: u32, + pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pvKeyEncryptionAuxInfo: *mut ::core::ffi::c_void, + pub hCryptProv: usize, + pub dwKeyChoice: u32, + pub Anonymous: CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO_0, + pub KeyId: CRYPT_INTEGER_BLOB, + pub Date: super::super::Foundation::FILETIME, + pub pOtherAttr: *mut CRYPT_ATTRIBUTE_TYPE_VALUE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO_0 { + pub hKeyEncryptionKey: usize, + pub pvKeyEncryptionKey: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_MAIL_LIST_RECIPIENT_INFO { + pub dwVersion: u32, + pub KeyId: CRYPT_INTEGER_BLOB, + pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub EncryptedKey: CRYPT_INTEGER_BLOB, + pub Date: super::super::Foundation::FILETIME, + pub pOtherAttr: *mut CRYPT_ATTRIBUTE_TYPE_VALUE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_MAIL_LIST_RECIPIENT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_MAIL_LIST_RECIPIENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_RC2_AUX_INFO { + pub cbSize: u32, + pub dwBitLen: u32, +} +impl ::core::marker::Copy for CMSG_RC2_AUX_INFO {} +impl ::core::clone::Clone for CMSG_RC2_AUX_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_RC4_AUX_INFO { + pub cbSize: u32, + pub dwBitLen: u32, +} +impl ::core::marker::Copy for CMSG_RC4_AUX_INFO {} +impl ::core::clone::Clone for CMSG_RC4_AUX_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_RECIPIENT_ENCODE_INFO { + pub dwRecipientChoice: u32, + pub Anonymous: CMSG_RECIPIENT_ENCODE_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_RECIPIENT_ENCODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_RECIPIENT_ENCODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CMSG_RECIPIENT_ENCODE_INFO_0 { + pub pKeyTrans: *mut CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO, + pub pKeyAgree: *mut CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, + pub pMailList: *mut CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_RECIPIENT_ENCODE_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_RECIPIENT_ENCODE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO { + pub cbSize: u32, + pub RecipientPublicKey: CRYPT_BIT_BLOB, + pub RecipientId: CERT_ID, + pub Date: super::super::Foundation::FILETIME, + pub pOtherAttr: *mut CRYPT_ATTRIBUTE_TYPE_VALUE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_RECIPIENT_ENCRYPTED_KEY_INFO { + pub RecipientId: CERT_ID, + pub EncryptedKey: CRYPT_INTEGER_BLOB, + pub Date: super::super::Foundation::FILETIME, + pub pOtherAttr: *mut CRYPT_ATTRIBUTE_TYPE_VALUE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_RECIPIENT_ENCRYPTED_KEY_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_RECIPIENT_ENCRYPTED_KEY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO { + pub cbSize: u32, + pub SignedInfo: CMSG_SIGNED_ENCODE_INFO, + pub EnvelopedInfo: CMSG_ENVELOPED_ENCODE_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_SIGNED_ENCODE_INFO { + pub cbSize: u32, + pub cSigners: u32, + pub rgSigners: *mut CMSG_SIGNER_ENCODE_INFO, + pub cCertEncoded: u32, + pub rgCertEncoded: *mut CRYPT_INTEGER_BLOB, + pub cCrlEncoded: u32, + pub rgCrlEncoded: *mut CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_SIGNED_ENCODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_SIGNED_ENCODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_SIGNER_ENCODE_INFO { + pub cbSize: u32, + pub pCertInfo: *mut CERT_INFO, + pub Anonymous: CMSG_SIGNER_ENCODE_INFO_0, + pub dwKeySpec: u32, + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pvHashAuxInfo: *mut ::core::ffi::c_void, + pub cAuthAttr: u32, + pub rgAuthAttr: *mut CRYPT_ATTRIBUTE, + pub cUnauthAttr: u32, + pub rgUnauthAttr: *mut CRYPT_ATTRIBUTE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_SIGNER_ENCODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_SIGNER_ENCODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union CMSG_SIGNER_ENCODE_INFO_0 { + pub hCryptProv: usize, + pub hNCryptKey: NCRYPT_KEY_HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_SIGNER_ENCODE_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_SIGNER_ENCODE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_SIGNER_INFO { + pub dwVersion: u32, + pub Issuer: CRYPT_INTEGER_BLOB, + pub SerialNumber: CRYPT_INTEGER_BLOB, + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub HashEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub EncryptedHash: CRYPT_INTEGER_BLOB, + pub AuthAttrs: CRYPT_ATTRIBUTES, + pub UnauthAttrs: CRYPT_ATTRIBUTES, +} +impl ::core::marker::Copy for CMSG_SIGNER_INFO {} +impl ::core::clone::Clone for CMSG_SIGNER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMSG_SP3_COMPATIBLE_AUX_INFO { + pub cbSize: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for CMSG_SP3_COMPATIBLE_AUX_INFO {} +impl ::core::clone::Clone for CMSG_SP3_COMPATIBLE_AUX_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMSG_STREAM_INFO { + pub cbContent: u32, + pub pfnStreamOutput: PFN_CMSG_STREAM_OUTPUT, + pub pvArg: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMSG_STREAM_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMSG_STREAM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMS_DH_KEY_INFO { + pub dwVersion: u32, + pub Algid: ALG_ID, + pub pszContentEncObjId: ::windows_sys::core::PSTR, + pub PubInfo: CRYPT_INTEGER_BLOB, + pub pReserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CMS_DH_KEY_INFO {} +impl ::core::clone::Clone for CMS_DH_KEY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMS_KEY_INFO { + pub dwVersion: u32, + pub Algid: ALG_ID, + pub pbOID: *mut u8, + pub cbOID: u32, +} +impl ::core::marker::Copy for CMS_KEY_INFO {} +impl ::core::clone::Clone for CMS_KEY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CPS_URLS { + pub pszURL: ::windows_sys::core::PWSTR, + pub pAlgorithm: *mut CRYPT_ALGORITHM_IDENTIFIER, + pub pDigest: *mut CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CPS_URLS {} +impl ::core::clone::Clone for CPS_URLS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRL_CONTEXT { + pub dwCertEncodingType: CERT_QUERY_ENCODING_TYPE, + pub pbCrlEncoded: *mut u8, + pub cbCrlEncoded: u32, + pub pCrlInfo: *mut CRL_INFO, + pub hCertStore: HCERTSTORE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRL_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRL_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRL_DIST_POINT { + pub DistPointName: CRL_DIST_POINT_NAME, + pub ReasonFlags: CRYPT_BIT_BLOB, + pub CRLIssuer: CERT_ALT_NAME_INFO, +} +impl ::core::marker::Copy for CRL_DIST_POINT {} +impl ::core::clone::Clone for CRL_DIST_POINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRL_DIST_POINTS_INFO { + pub cDistPoint: u32, + pub rgDistPoint: *mut CRL_DIST_POINT, +} +impl ::core::marker::Copy for CRL_DIST_POINTS_INFO {} +impl ::core::clone::Clone for CRL_DIST_POINTS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRL_DIST_POINT_NAME { + pub dwDistPointNameChoice: u32, + pub Anonymous: CRL_DIST_POINT_NAME_0, +} +impl ::core::marker::Copy for CRL_DIST_POINT_NAME {} +impl ::core::clone::Clone for CRL_DIST_POINT_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CRL_DIST_POINT_NAME_0 { + pub FullName: CERT_ALT_NAME_INFO, +} +impl ::core::marker::Copy for CRL_DIST_POINT_NAME_0 {} +impl ::core::clone::Clone for CRL_DIST_POINT_NAME_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRL_ENTRY { + pub SerialNumber: CRYPT_INTEGER_BLOB, + pub RevocationDate: super::super::Foundation::FILETIME, + pub cExtension: u32, + pub rgExtension: *mut CERT_EXTENSION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRL_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRL_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRL_FIND_ISSUED_FOR_PARA { + pub pSubjectCert: *const CERT_CONTEXT, + pub pIssuerCert: *const CERT_CONTEXT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRL_FIND_ISSUED_FOR_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRL_FIND_ISSUED_FOR_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRL_INFO { + pub dwVersion: u32, + pub SignatureAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub Issuer: CRYPT_INTEGER_BLOB, + pub ThisUpdate: super::super::Foundation::FILETIME, + pub NextUpdate: super::super::Foundation::FILETIME, + pub cCRLEntry: u32, + pub rgCRLEntry: *mut CRL_ENTRY, + pub cExtension: u32, + pub rgExtension: *mut CERT_EXTENSION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRL_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRL_ISSUING_DIST_POINT { + pub DistPointName: CRL_DIST_POINT_NAME, + pub fOnlyContainsUserCerts: super::super::Foundation::BOOL, + pub fOnlyContainsCACerts: super::super::Foundation::BOOL, + pub OnlySomeReasonFlags: CRYPT_BIT_BLOB, + pub fIndirectCRL: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRL_ISSUING_DIST_POINT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRL_ISSUING_DIST_POINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRL_REVOCATION_INFO { + pub pCrlEntry: *mut CRL_ENTRY, + pub pCrlContext: *mut CRL_CONTEXT, + pub pCrlIssuerChain: *mut CERT_CHAIN_CONTEXT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRL_REVOCATION_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRL_REVOCATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CROSS_CERT_DIST_POINTS_INFO { + pub dwSyncDeltaTime: u32, + pub cDistPoint: u32, + pub rgDistPoint: *mut CERT_ALT_NAME_INFO, +} +impl ::core::marker::Copy for CROSS_CERT_DIST_POINTS_INFO {} +impl ::core::clone::Clone for CROSS_CERT_DIST_POINTS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPTNET_URL_CACHE_FLUSH_INFO { + pub cbSize: u32, + pub dwExemptSeconds: u32, + pub ExpireTime: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTNET_URL_CACHE_FLUSH_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTNET_URL_CACHE_FLUSH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPTNET_URL_CACHE_PRE_FETCH_INFO { + pub cbSize: u32, + pub dwObjectType: u32, + pub dwError: u32, + pub dwReserved: u32, + pub ThisUpdateTime: super::super::Foundation::FILETIME, + pub NextUpdateTime: super::super::Foundation::FILETIME, + pub PublishTime: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTNET_URL_CACHE_PRE_FETCH_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTNET_URL_CACHE_PRE_FETCH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPTNET_URL_CACHE_RESPONSE_INFO { + pub cbSize: u32, + pub wResponseType: u16, + pub wResponseFlags: u16, + pub LastModifiedTime: super::super::Foundation::FILETIME, + pub dwMaxAge: u32, + pub pwszETag: ::windows_sys::core::PCWSTR, + pub dwProxyId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTNET_URL_CACHE_RESPONSE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTNET_URL_CACHE_RESPONSE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPTPROTECT_PROMPTSTRUCT { + pub cbSize: u32, + pub dwPromptFlags: u32, + pub hwndApp: super::super::Foundation::HWND, + pub szPrompt: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPTPROTECT_PROMPTSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPTPROTECT_PROMPTSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_3DES_KEY_STATE { + pub Key: [u8; 24], + pub IV: [u8; 8], + pub Feedback: [u8; 8], +} +impl ::core::marker::Copy for CRYPT_3DES_KEY_STATE {} +impl ::core::clone::Clone for CRYPT_3DES_KEY_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_AES_128_KEY_STATE { + pub Key: [u8; 16], + pub IV: [u8; 16], + pub EncryptionState: [u8; 176], + pub DecryptionState: [u8; 176], + pub Feedback: [u8; 16], +} +impl ::core::marker::Copy for CRYPT_AES_128_KEY_STATE {} +impl ::core::clone::Clone for CRYPT_AES_128_KEY_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_AES_256_KEY_STATE { + pub Key: [u8; 32], + pub IV: [u8; 16], + pub EncryptionState: [u8; 240], + pub DecryptionState: [u8; 240], + pub Feedback: [u8; 16], +} +impl ::core::marker::Copy for CRYPT_AES_256_KEY_STATE {} +impl ::core::clone::Clone for CRYPT_AES_256_KEY_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_ALGORITHM_IDENTIFIER { + pub pszObjId: ::windows_sys::core::PSTR, + pub Parameters: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_ALGORITHM_IDENTIFIER {} +impl ::core::clone::Clone for CRYPT_ALGORITHM_IDENTIFIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_ASYNC_RETRIEVAL_COMPLETION { + pub pfnCompletion: PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC, + pub pvCompletion: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CRYPT_ASYNC_RETRIEVAL_COMPLETION {} +impl ::core::clone::Clone for CRYPT_ASYNC_RETRIEVAL_COMPLETION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_ATTRIBUTE { + pub pszObjId: ::windows_sys::core::PSTR, + pub cValue: u32, + pub rgValue: *mut CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_ATTRIBUTE {} +impl ::core::clone::Clone for CRYPT_ATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_ATTRIBUTES { + pub cAttr: u32, + pub rgAttr: *mut CRYPT_ATTRIBUTE, +} +impl ::core::marker::Copy for CRYPT_ATTRIBUTES {} +impl ::core::clone::Clone for CRYPT_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_ATTRIBUTE_TYPE_VALUE { + pub pszObjId: ::windows_sys::core::PSTR, + pub Value: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_ATTRIBUTE_TYPE_VALUE {} +impl ::core::clone::Clone for CRYPT_ATTRIBUTE_TYPE_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_BIT_BLOB { + pub cbData: u32, + pub pbData: *mut u8, + pub cUnusedBits: u32, +} +impl ::core::marker::Copy for CRYPT_BIT_BLOB {} +impl ::core::clone::Clone for CRYPT_BIT_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_BLOB_ARRAY { + pub cBlob: u32, + pub rgBlob: *mut CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_BLOB_ARRAY {} +impl ::core::clone::Clone for CRYPT_BLOB_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_CONTENT_INFO { + pub pszObjId: ::windows_sys::core::PSTR, + pub Content: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_CONTENT_INFO {} +impl ::core::clone::Clone for CRYPT_CONTENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY { + pub pszObjId: ::windows_sys::core::PSTR, + pub cValue: u32, + pub rgValue: *mut CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY {} +impl ::core::clone::Clone for CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_CONTEXTS { + pub cContexts: u32, + pub rgpszContexts: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CRYPT_CONTEXTS {} +impl ::core::clone::Clone for CRYPT_CONTEXTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_CONTEXT_CONFIG { + pub dwFlags: CRYPT_CONTEXT_CONFIG_FLAGS, + pub dwReserved: u32, +} +impl ::core::marker::Copy for CRYPT_CONTEXT_CONFIG {} +impl ::core::clone::Clone for CRYPT_CONTEXT_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_CONTEXT_FUNCTIONS { + pub cFunctions: u32, + pub rgpszFunctions: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CRYPT_CONTEXT_FUNCTIONS {} +impl ::core::clone::Clone for CRYPT_CONTEXT_FUNCTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_CONTEXT_FUNCTION_CONFIG { + pub dwFlags: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for CRYPT_CONTEXT_FUNCTION_CONFIG {} +impl ::core::clone::Clone for CRYPT_CONTEXT_FUNCTION_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_CONTEXT_FUNCTION_PROVIDERS { + pub cProviders: u32, + pub rgpszProviders: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CRYPT_CONTEXT_FUNCTION_PROVIDERS {} +impl ::core::clone::Clone for CRYPT_CONTEXT_FUNCTION_PROVIDERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_CREDENTIALS { + pub cbSize: u32, + pub pszCredentialsOid: ::windows_sys::core::PCSTR, + pub pvCredentials: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CRYPT_CREDENTIALS {} +impl ::core::clone::Clone for CRYPT_CREDENTIALS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_CSP_PROVIDER { + pub dwKeySpec: u32, + pub pwszProviderName: ::windows_sys::core::PWSTR, + pub Signature: CRYPT_BIT_BLOB, +} +impl ::core::marker::Copy for CRYPT_CSP_PROVIDER {} +impl ::core::clone::Clone for CRYPT_CSP_PROVIDER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_DECODE_PARA { + pub cbSize: u32, + pub pfnAlloc: PFN_CRYPT_ALLOC, + pub pfnFree: PFN_CRYPT_FREE, +} +impl ::core::marker::Copy for CRYPT_DECODE_PARA {} +impl ::core::clone::Clone for CRYPT_DECODE_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_DECRYPT_MESSAGE_PARA { + pub cbSize: u32, + pub dwMsgAndCertEncodingType: u32, + pub cCertStore: u32, + pub rghCertStore: *mut HCERTSTORE, +} +impl ::core::marker::Copy for CRYPT_DECRYPT_MESSAGE_PARA {} +impl ::core::clone::Clone for CRYPT_DECRYPT_MESSAGE_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA { + pub cOID: u32, + pub rgpszOID: *mut ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA {} +impl ::core::clone::Clone for CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_DES_KEY_STATE { + pub Key: [u8; 8], + pub IV: [u8; 8], + pub Feedback: [u8; 8], +} +impl ::core::marker::Copy for CRYPT_DES_KEY_STATE {} +impl ::core::clone::Clone for CRYPT_DES_KEY_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_ECC_CMS_SHARED_INFO { + pub Algorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub EntityUInfo: CRYPT_INTEGER_BLOB, + pub rgbSuppPubInfo: [u8; 4], +} +impl ::core::marker::Copy for CRYPT_ECC_CMS_SHARED_INFO {} +impl ::core::clone::Clone for CRYPT_ECC_CMS_SHARED_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_ECC_PRIVATE_KEY_INFO { + pub dwVersion: u32, + pub PrivateKey: CRYPT_INTEGER_BLOB, + pub szCurveOid: ::windows_sys::core::PSTR, + pub PublicKey: CRYPT_BIT_BLOB, +} +impl ::core::marker::Copy for CRYPT_ECC_PRIVATE_KEY_INFO {} +impl ::core::clone::Clone for CRYPT_ECC_PRIVATE_KEY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_ENCODE_PARA { + pub cbSize: u32, + pub pfnAlloc: PFN_CRYPT_ALLOC, + pub pfnFree: PFN_CRYPT_FREE, +} +impl ::core::marker::Copy for CRYPT_ENCODE_PARA {} +impl ::core::clone::Clone for CRYPT_ENCODE_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_ENCRYPTED_PRIVATE_KEY_INFO { + pub EncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub EncryptedPrivateKey: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_ENCRYPTED_PRIVATE_KEY_INFO {} +impl ::core::clone::Clone for CRYPT_ENCRYPTED_PRIVATE_KEY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_ENCRYPT_MESSAGE_PARA { + pub cbSize: u32, + pub dwMsgEncodingType: u32, + pub hCryptProv: HCRYPTPROV_LEGACY, + pub ContentEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pvEncryptionAuxInfo: *mut ::core::ffi::c_void, + pub dwFlags: u32, + pub dwInnerContentType: u32, +} +impl ::core::marker::Copy for CRYPT_ENCRYPT_MESSAGE_PARA {} +impl ::core::clone::Clone for CRYPT_ENCRYPT_MESSAGE_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_ENROLLMENT_NAME_VALUE_PAIR { + pub pwszName: ::windows_sys::core::PWSTR, + pub pwszValue: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CRYPT_ENROLLMENT_NAME_VALUE_PAIR {} +impl ::core::clone::Clone for CRYPT_ENROLLMENT_NAME_VALUE_PAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO { + pub cbSize: u32, + pub iDeltaCrlIndicator: i32, + pub pftCacheResync: *mut super::super::Foundation::FILETIME, + pub pLastSyncTime: *mut super::super::Foundation::FILETIME, + pub pMaxAgeTime: *mut super::super::Foundation::FILETIME, + pub pChainPara: *mut CERT_REVOCATION_CHAIN_PARA, + pub pDeltaCrlIndicator: *mut CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_HASH_INFO { + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub Hash: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_HASH_INFO {} +impl ::core::clone::Clone for CRYPT_HASH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_HASH_MESSAGE_PARA { + pub cbSize: u32, + pub dwMsgEncodingType: u32, + pub hCryptProv: HCRYPTPROV_LEGACY, + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pvHashAuxInfo: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CRYPT_HASH_MESSAGE_PARA {} +impl ::core::clone::Clone for CRYPT_HASH_MESSAGE_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_IMAGE_REF { + pub pszImage: ::windows_sys::core::PWSTR, + pub dwFlags: CRYPT_IMAGE_REF_FLAGS, +} +impl ::core::marker::Copy for CRYPT_IMAGE_REF {} +impl ::core::clone::Clone for CRYPT_IMAGE_REF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_IMAGE_REG { + pub pszImage: ::windows_sys::core::PWSTR, + pub cInterfaces: u32, + pub rgpInterfaces: *mut *mut CRYPT_INTERFACE_REG, +} +impl ::core::marker::Copy for CRYPT_IMAGE_REG {} +impl ::core::clone::Clone for CRYPT_IMAGE_REG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_INTEGER_BLOB { + pub cbData: u32, + pub pbData: *mut u8, +} +impl ::core::marker::Copy for CRYPT_INTEGER_BLOB {} +impl ::core::clone::Clone for CRYPT_INTEGER_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_INTERFACE_REG { + pub dwInterface: BCRYPT_INTERFACE, + pub dwFlags: BCRYPT_TABLE, + pub cFunctions: u32, + pub rgpszFunctions: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CRYPT_INTERFACE_REG {} +impl ::core::clone::Clone for CRYPT_INTERFACE_REG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_KEY_PROV_INFO { + pub pwszContainerName: ::windows_sys::core::PWSTR, + pub pwszProvName: ::windows_sys::core::PWSTR, + pub dwProvType: u32, + pub dwFlags: CRYPT_KEY_FLAGS, + pub cProvParam: u32, + pub rgProvParam: *mut CRYPT_KEY_PROV_PARAM, + pub dwKeySpec: u32, +} +impl ::core::marker::Copy for CRYPT_KEY_PROV_INFO {} +impl ::core::clone::Clone for CRYPT_KEY_PROV_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_KEY_PROV_PARAM { + pub dwParam: u32, + pub pbData: *mut u8, + pub cbData: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for CRYPT_KEY_PROV_PARAM {} +impl ::core::clone::Clone for CRYPT_KEY_PROV_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_KEY_SIGN_MESSAGE_PARA { + pub cbSize: u32, + pub dwMsgAndCertEncodingType: CERT_QUERY_ENCODING_TYPE, + pub Anonymous: CRYPT_KEY_SIGN_MESSAGE_PARA_0, + pub dwKeySpec: CERT_KEY_SPEC, + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pvHashAuxInfo: *mut ::core::ffi::c_void, + pub PubKeyAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, +} +impl ::core::marker::Copy for CRYPT_KEY_SIGN_MESSAGE_PARA {} +impl ::core::clone::Clone for CRYPT_KEY_SIGN_MESSAGE_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CRYPT_KEY_SIGN_MESSAGE_PARA_0 { + pub hCryptProv: usize, + pub hNCryptKey: NCRYPT_KEY_HANDLE, +} +impl ::core::marker::Copy for CRYPT_KEY_SIGN_MESSAGE_PARA_0 {} +impl ::core::clone::Clone for CRYPT_KEY_SIGN_MESSAGE_PARA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_KEY_VERIFY_MESSAGE_PARA { + pub cbSize: u32, + pub dwMsgEncodingType: u32, + pub hCryptProv: HCRYPTPROV_LEGACY, +} +impl ::core::marker::Copy for CRYPT_KEY_VERIFY_MESSAGE_PARA {} +impl ::core::clone::Clone for CRYPT_KEY_VERIFY_MESSAGE_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_MASK_GEN_ALGORITHM { + pub pszObjId: ::windows_sys::core::PSTR, + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, +} +impl ::core::marker::Copy for CRYPT_MASK_GEN_ALGORITHM {} +impl ::core::clone::Clone for CRYPT_MASK_GEN_ALGORITHM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE { + pub cbSize: u32, + pub pfnGet: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET, + pub pfnRelease: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE, + pub pfnFreePassword: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD, + pub pfnFree: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE, + pub pfnFreeIdentifier: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_OBJID_TABLE { + pub dwAlgId: u32, + pub pszObjId: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for CRYPT_OBJID_TABLE {} +impl ::core::clone::Clone for CRYPT_OBJID_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_OID_FUNC_ENTRY { + pub pszOID: ::windows_sys::core::PCSTR, + pub pvFuncAddr: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CRYPT_OID_FUNC_ENTRY {} +impl ::core::clone::Clone for CRYPT_OID_FUNC_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_OID_INFO { + pub cbSize: u32, + pub pszOID: ::windows_sys::core::PCSTR, + pub pwszName: ::windows_sys::core::PCWSTR, + pub dwGroupId: u32, + pub Anonymous: CRYPT_OID_INFO_0, + pub ExtraInfo: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_OID_INFO {} +impl ::core::clone::Clone for CRYPT_OID_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CRYPT_OID_INFO_0 { + pub dwValue: u32, + pub Algid: ALG_ID, + pub dwLength: u32, +} +impl ::core::marker::Copy for CRYPT_OID_INFO_0 {} +impl ::core::clone::Clone for CRYPT_OID_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PASSWORD_CREDENTIALSA { + pub cbSize: u32, + pub pszUsername: ::windows_sys::core::PSTR, + pub pszPassword: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for CRYPT_PASSWORD_CREDENTIALSA {} +impl ::core::clone::Clone for CRYPT_PASSWORD_CREDENTIALSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PASSWORD_CREDENTIALSW { + pub cbSize: u32, + pub pszUsername: ::windows_sys::core::PWSTR, + pub pszPassword: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CRYPT_PASSWORD_CREDENTIALSW {} +impl ::core::clone::Clone for CRYPT_PASSWORD_CREDENTIALSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PKCS12_PBE_PARAMS { + pub iIterations: i32, + pub cbSalt: u32, +} +impl ::core::marker::Copy for CRYPT_PKCS12_PBE_PARAMS {} +impl ::core::clone::Clone for CRYPT_PKCS12_PBE_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPT_PKCS8_EXPORT_PARAMS { + pub hCryptProv: usize, + pub dwKeySpec: u32, + pub pszPrivateKeyObjId: ::windows_sys::core::PSTR, + pub pEncryptPrivateKeyFunc: PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC, + pub pVoidEncryptFunc: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPT_PKCS8_EXPORT_PARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPT_PKCS8_EXPORT_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPT_PKCS8_IMPORT_PARAMS { + pub PrivateKey: CRYPT_INTEGER_BLOB, + pub pResolvehCryptProvFunc: PCRYPT_RESOLVE_HCRYPTPROV_FUNC, + pub pVoidResolveFunc: *mut ::core::ffi::c_void, + pub pDecryptPrivateKeyFunc: PCRYPT_DECRYPT_PRIVATE_KEY_FUNC, + pub pVoidDecryptFunc: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPT_PKCS8_IMPORT_PARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPT_PKCS8_IMPORT_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PRIVATE_KEY_INFO { + pub Version: u32, + pub Algorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub PrivateKey: CRYPT_INTEGER_BLOB, + pub pAttributes: *mut CRYPT_ATTRIBUTES, +} +impl ::core::marker::Copy for CRYPT_PRIVATE_KEY_INFO {} +impl ::core::clone::Clone for CRYPT_PRIVATE_KEY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PROPERTY_REF { + pub pszProperty: ::windows_sys::core::PWSTR, + pub cbValue: u32, + pub pbValue: *mut u8, +} +impl ::core::marker::Copy for CRYPT_PROPERTY_REF {} +impl ::core::clone::Clone for CRYPT_PROPERTY_REF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PROVIDERS { + pub cProviders: u32, + pub rgpszProviders: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CRYPT_PROVIDERS {} +impl ::core::clone::Clone for CRYPT_PROVIDERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PROVIDER_REF { + pub dwInterface: u32, + pub pszFunction: ::windows_sys::core::PWSTR, + pub pszProvider: ::windows_sys::core::PWSTR, + pub cProperties: u32, + pub rgpProperties: *mut *mut CRYPT_PROPERTY_REF, + pub pUM: *mut CRYPT_IMAGE_REF, + pub pKM: *mut CRYPT_IMAGE_REF, +} +impl ::core::marker::Copy for CRYPT_PROVIDER_REF {} +impl ::core::clone::Clone for CRYPT_PROVIDER_REF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PROVIDER_REFS { + pub cProviders: u32, + pub rgpProviders: *mut *mut CRYPT_PROVIDER_REF, +} +impl ::core::marker::Copy for CRYPT_PROVIDER_REFS {} +impl ::core::clone::Clone for CRYPT_PROVIDER_REFS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PROVIDER_REG { + pub cAliases: u32, + pub rgpszAliases: *mut ::windows_sys::core::PWSTR, + pub pUM: *mut CRYPT_IMAGE_REG, + pub pKM: *mut CRYPT_IMAGE_REG, +} +impl ::core::marker::Copy for CRYPT_PROVIDER_REG {} +impl ::core::clone::Clone for CRYPT_PROVIDER_REG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PSOURCE_ALGORITHM { + pub pszObjId: ::windows_sys::core::PSTR, + pub EncodingParameters: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_PSOURCE_ALGORITHM {} +impl ::core::clone::Clone for CRYPT_PSOURCE_ALGORITHM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPT_RC2_CBC_PARAMETERS { + pub dwVersion: u32, + pub fIV: super::super::Foundation::BOOL, + pub rgbIV: [u8; 8], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPT_RC2_CBC_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPT_RC2_CBC_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_RC4_KEY_STATE { + pub Key: [u8; 16], + pub SBox: [u8; 256], + pub i: u8, + pub j: u8, +} +impl ::core::marker::Copy for CRYPT_RC4_KEY_STATE {} +impl ::core::clone::Clone for CRYPT_RC4_KEY_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPT_RETRIEVE_AUX_INFO { + pub cbSize: u32, + pub pLastSyncTime: *mut super::super::Foundation::FILETIME, + pub dwMaxUrlRetrievalByteCount: u32, + pub pPreFetchInfo: *mut CRYPTNET_URL_CACHE_PRE_FETCH_INFO, + pub pFlushInfo: *mut CRYPTNET_URL_CACHE_FLUSH_INFO, + pub ppResponseInfo: *mut *mut CRYPTNET_URL_CACHE_RESPONSE_INFO, + pub pwszCacheFileNamePrefix: ::windows_sys::core::PWSTR, + pub pftCacheResync: *mut super::super::Foundation::FILETIME, + pub fProxyCacheRetrieval: super::super::Foundation::BOOL, + pub dwHttpStatusCode: u32, + pub ppwszErrorResponseHeaders: *mut ::windows_sys::core::PWSTR, + pub ppErrorContentBlob: *mut *mut CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPT_RETRIEVE_AUX_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPT_RETRIEVE_AUX_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_RSAES_OAEP_PARAMETERS { + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub MaskGenAlgorithm: CRYPT_MASK_GEN_ALGORITHM, + pub PSourceAlgorithm: CRYPT_PSOURCE_ALGORITHM, +} +impl ::core::marker::Copy for CRYPT_RSAES_OAEP_PARAMETERS {} +impl ::core::clone::Clone for CRYPT_RSAES_OAEP_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_RSA_SSA_PSS_PARAMETERS { + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub MaskGenAlgorithm: CRYPT_MASK_GEN_ALGORITHM, + pub dwSaltLength: u32, + pub dwTrailerField: u32, +} +impl ::core::marker::Copy for CRYPT_RSA_SSA_PSS_PARAMETERS {} +impl ::core::clone::Clone for CRYPT_RSA_SSA_PSS_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_SEQUENCE_OF_ANY { + pub cValue: u32, + pub rgValue: *mut CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_SEQUENCE_OF_ANY {} +impl ::core::clone::Clone for CRYPT_SEQUENCE_OF_ANY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPT_SIGN_MESSAGE_PARA { + pub cbSize: u32, + pub dwMsgEncodingType: u32, + pub pSigningCert: *const CERT_CONTEXT, + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub pvHashAuxInfo: *mut ::core::ffi::c_void, + pub cMsgCert: u32, + pub rgpMsgCert: *mut *mut CERT_CONTEXT, + pub cMsgCrl: u32, + pub rgpMsgCrl: *mut *mut CRL_CONTEXT, + pub cAuthAttr: u32, + pub rgAuthAttr: *mut CRYPT_ATTRIBUTE, + pub cUnauthAttr: u32, + pub rgUnauthAttr: *mut CRYPT_ATTRIBUTE, + pub dwFlags: u32, + pub dwInnerContentType: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPT_SIGN_MESSAGE_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPT_SIGN_MESSAGE_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_SMART_CARD_ROOT_INFO { + pub rgbCardID: [u8; 16], + pub luid: ROOT_INFO_LUID, +} +impl ::core::marker::Copy for CRYPT_SMART_CARD_ROOT_INFO {} +impl ::core::clone::Clone for CRYPT_SMART_CARD_ROOT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_SMIME_CAPABILITIES { + pub cCapability: u32, + pub rgCapability: *mut CRYPT_SMIME_CAPABILITY, +} +impl ::core::marker::Copy for CRYPT_SMIME_CAPABILITIES {} +impl ::core::clone::Clone for CRYPT_SMIME_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_SMIME_CAPABILITY { + pub pszObjId: ::windows_sys::core::PSTR, + pub Parameters: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_SMIME_CAPABILITY {} +impl ::core::clone::Clone for CRYPT_SMIME_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_TIMESTAMP_ACCURACY { + pub dwSeconds: u32, + pub dwMillis: u32, + pub dwMicros: u32, +} +impl ::core::marker::Copy for CRYPT_TIMESTAMP_ACCURACY {} +impl ::core::clone::Clone for CRYPT_TIMESTAMP_ACCURACY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPT_TIMESTAMP_CONTEXT { + pub cbEncoded: u32, + pub pbEncoded: *mut u8, + pub pTimeStamp: *mut CRYPT_TIMESTAMP_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPT_TIMESTAMP_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPT_TIMESTAMP_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPT_TIMESTAMP_INFO { + pub dwVersion: u32, + pub pszTSAPolicyId: ::windows_sys::core::PSTR, + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub HashedMessage: CRYPT_INTEGER_BLOB, + pub SerialNumber: CRYPT_INTEGER_BLOB, + pub ftTime: super::super::Foundation::FILETIME, + pub pvAccuracy: *mut CRYPT_TIMESTAMP_ACCURACY, + pub fOrdering: super::super::Foundation::BOOL, + pub Nonce: CRYPT_INTEGER_BLOB, + pub Tsa: CRYPT_INTEGER_BLOB, + pub cExtension: u32, + pub rgExtension: *mut CERT_EXTENSION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPT_TIMESTAMP_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPT_TIMESTAMP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPT_TIMESTAMP_PARA { + pub pszTSAPolicyId: ::windows_sys::core::PCSTR, + pub fRequestCerts: super::super::Foundation::BOOL, + pub Nonce: CRYPT_INTEGER_BLOB, + pub cExtension: u32, + pub rgExtension: *mut CERT_EXTENSION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPT_TIMESTAMP_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPT_TIMESTAMP_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPT_TIMESTAMP_REQUEST { + pub dwVersion: CRYPT_TIMESTAMP_VERSION, + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub HashedMessage: CRYPT_INTEGER_BLOB, + pub pszTSAPolicyId: ::windows_sys::core::PSTR, + pub Nonce: CRYPT_INTEGER_BLOB, + pub fCertReq: super::super::Foundation::BOOL, + pub cExtension: u32, + pub rgExtension: *mut CERT_EXTENSION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPT_TIMESTAMP_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPT_TIMESTAMP_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_TIMESTAMP_RESPONSE { + pub dwStatus: CRYPT_TIMESTAMP_RESPONSE_STATUS, + pub cFreeText: u32, + pub rgFreeText: *mut ::windows_sys::core::PWSTR, + pub FailureInfo: CRYPT_BIT_BLOB, + pub ContentInfo: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_TIMESTAMP_RESPONSE {} +impl ::core::clone::Clone for CRYPT_TIMESTAMP_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_TIME_STAMP_REQUEST_INFO { + pub pszTimeStampAlgorithm: ::windows_sys::core::PSTR, + pub pszContentType: ::windows_sys::core::PSTR, + pub Content: CRYPT_INTEGER_BLOB, + pub cAttribute: u32, + pub rgAttribute: *mut CRYPT_ATTRIBUTE, +} +impl ::core::marker::Copy for CRYPT_TIME_STAMP_REQUEST_INFO {} +impl ::core::clone::Clone for CRYPT_TIME_STAMP_REQUEST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_URL_ARRAY { + pub cUrl: u32, + pub rgwszUrl: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CRYPT_URL_ARRAY {} +impl ::core::clone::Clone for CRYPT_URL_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_URL_INFO { + pub cbSize: u32, + pub dwSyncDeltaTime: u32, + pub cGroup: u32, + pub rgcGroupEntry: *mut u32, +} +impl ::core::marker::Copy for CRYPT_URL_INFO {} +impl ::core::clone::Clone for CRYPT_URL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO { + pub CertSignHashCNGAlgPropData: CRYPT_INTEGER_BLOB, + pub CertIssuerPubKeyBitLengthPropData: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO {} +impl ::core::clone::Clone for CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO { + pub cCNGHashAlgid: u32, + pub rgpwszCNGHashAlgid: *const ::windows_sys::core::PCWSTR, + pub dwWeakIndex: u32, +} +impl ::core::marker::Copy for CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO {} +impl ::core::clone::Clone for CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CRYPT_VERIFY_MESSAGE_PARA { + pub cbSize: u32, + pub dwMsgAndCertEncodingType: u32, + pub hCryptProv: HCRYPTPROV_LEGACY, + pub pfnGetSignerCertificate: PFN_CRYPT_GET_SIGNER_CERTIFICATE, + pub pvGetArg: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CRYPT_VERIFY_MESSAGE_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CRYPT_VERIFY_MESSAGE_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_X942_OTHER_INFO { + pub pszContentEncryptionObjId: ::windows_sys::core::PSTR, + pub rgbCounter: [u8; 4], + pub rgbKeyLength: [u8; 4], + pub PubInfo: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_X942_OTHER_INFO {} +impl ::core::clone::Clone for CRYPT_X942_OTHER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_ALGORITHM { + pub cbSize: u32, + pub wszAlgorithm: ::windows_sys::core::PCWSTR, + pub Encoded: CRYPT_XML_BLOB, +} +impl ::core::marker::Copy for CRYPT_XML_ALGORITHM {} +impl ::core::clone::Clone for CRYPT_XML_ALGORITHM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_ALGORITHM_INFO { + pub cbSize: u32, + pub wszAlgorithmURI: ::windows_sys::core::PWSTR, + pub wszName: ::windows_sys::core::PWSTR, + pub dwGroupId: CRYPT_XML_GROUP_ID, + pub wszCNGAlgid: ::windows_sys::core::PWSTR, + pub wszCNGExtraAlgid: ::windows_sys::core::PWSTR, + pub dwSignFlags: u32, + pub dwVerifyFlags: u32, + pub pvPaddingInfo: *mut ::core::ffi::c_void, + pub pvExtraInfo: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CRYPT_XML_ALGORITHM_INFO {} +impl ::core::clone::Clone for CRYPT_XML_ALGORITHM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_BLOB { + pub dwCharset: CRYPT_XML_CHARSET, + pub cbData: u32, + pub pbData: *mut u8, +} +impl ::core::marker::Copy for CRYPT_XML_BLOB {} +impl ::core::clone::Clone for CRYPT_XML_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_CRYPTOGRAPHIC_INTERFACE { + pub cbSize: u32, + pub fpCryptXmlEncodeAlgorithm: CryptXmlDllEncodeAlgorithm, + pub fpCryptXmlCreateDigest: CryptXmlDllCreateDigest, + pub fpCryptXmlDigestData: CryptXmlDllDigestData, + pub fpCryptXmlFinalizeDigest: CryptXmlDllFinalizeDigest, + pub fpCryptXmlCloseDigest: CryptXmlDllCloseDigest, + pub fpCryptXmlSignData: CryptXmlDllSignData, + pub fpCryptXmlVerifySignature: CryptXmlDllVerifySignature, + pub fpCryptXmlGetAlgorithmInfo: CryptXmlDllGetAlgorithmInfo, +} +impl ::core::marker::Copy for CRYPT_XML_CRYPTOGRAPHIC_INTERFACE {} +impl ::core::clone::Clone for CRYPT_XML_CRYPTOGRAPHIC_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_DATA_BLOB { + pub cbData: u32, + pub pbData: *mut u8, +} +impl ::core::marker::Copy for CRYPT_XML_DATA_BLOB {} +impl ::core::clone::Clone for CRYPT_XML_DATA_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_DATA_PROVIDER { + pub pvCallbackState: *mut ::core::ffi::c_void, + pub cbBufferSize: u32, + pub pfnRead: PFN_CRYPT_XML_DATA_PROVIDER_READ, + pub pfnClose: PFN_CRYPT_XML_DATA_PROVIDER_CLOSE, +} +impl ::core::marker::Copy for CRYPT_XML_DATA_PROVIDER {} +impl ::core::clone::Clone for CRYPT_XML_DATA_PROVIDER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_DOC_CTXT { + pub cbSize: u32, + pub hDocCtxt: *mut ::core::ffi::c_void, + pub pTransformsConfig: *mut CRYPT_XML_TRANSFORM_CHAIN_CONFIG, + pub cSignature: u32, + pub rgpSignature: *mut *mut CRYPT_XML_SIGNATURE, +} +impl ::core::marker::Copy for CRYPT_XML_DOC_CTXT {} +impl ::core::clone::Clone for CRYPT_XML_DOC_CTXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_ISSUER_SERIAL { + pub wszIssuer: ::windows_sys::core::PCWSTR, + pub wszSerial: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for CRYPT_XML_ISSUER_SERIAL {} +impl ::core::clone::Clone for CRYPT_XML_ISSUER_SERIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_KEYINFO_PARAM { + pub wszId: ::windows_sys::core::PCWSTR, + pub wszKeyName: ::windows_sys::core::PCWSTR, + pub SKI: CRYPT_INTEGER_BLOB, + pub wszSubjectName: ::windows_sys::core::PCWSTR, + pub cCertificate: u32, + pub rgCertificate: *mut CRYPT_INTEGER_BLOB, + pub cCRL: u32, + pub rgCRL: *mut CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CRYPT_XML_KEYINFO_PARAM {} +impl ::core::clone::Clone for CRYPT_XML_KEYINFO_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_KEY_DSA_KEY_VALUE { + pub P: CRYPT_XML_DATA_BLOB, + pub Q: CRYPT_XML_DATA_BLOB, + pub G: CRYPT_XML_DATA_BLOB, + pub Y: CRYPT_XML_DATA_BLOB, + pub J: CRYPT_XML_DATA_BLOB, + pub Seed: CRYPT_XML_DATA_BLOB, + pub Counter: CRYPT_XML_DATA_BLOB, +} +impl ::core::marker::Copy for CRYPT_XML_KEY_DSA_KEY_VALUE {} +impl ::core::clone::Clone for CRYPT_XML_KEY_DSA_KEY_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_KEY_ECDSA_KEY_VALUE { + pub wszNamedCurve: ::windows_sys::core::PCWSTR, + pub X: CRYPT_XML_DATA_BLOB, + pub Y: CRYPT_XML_DATA_BLOB, + pub ExplicitPara: CRYPT_XML_BLOB, +} +impl ::core::marker::Copy for CRYPT_XML_KEY_ECDSA_KEY_VALUE {} +impl ::core::clone::Clone for CRYPT_XML_KEY_ECDSA_KEY_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_KEY_INFO { + pub cbSize: u32, + pub wszId: ::windows_sys::core::PCWSTR, + pub cKeyInfo: u32, + pub rgKeyInfo: *mut CRYPT_XML_KEY_INFO_ITEM, + pub hVerifyKey: BCRYPT_KEY_HANDLE, +} +impl ::core::marker::Copy for CRYPT_XML_KEY_INFO {} +impl ::core::clone::Clone for CRYPT_XML_KEY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_KEY_INFO_ITEM { + pub dwType: CRYPT_XML_KEYINFO_TYPE, + pub Anonymous: CRYPT_XML_KEY_INFO_ITEM_0, +} +impl ::core::marker::Copy for CRYPT_XML_KEY_INFO_ITEM {} +impl ::core::clone::Clone for CRYPT_XML_KEY_INFO_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CRYPT_XML_KEY_INFO_ITEM_0 { + pub wszKeyName: ::windows_sys::core::PCWSTR, + pub KeyValue: CRYPT_XML_KEY_VALUE, + pub RetrievalMethod: CRYPT_XML_BLOB, + pub X509Data: CRYPT_XML_X509DATA, + pub Custom: CRYPT_XML_BLOB, +} +impl ::core::marker::Copy for CRYPT_XML_KEY_INFO_ITEM_0 {} +impl ::core::clone::Clone for CRYPT_XML_KEY_INFO_ITEM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_KEY_RSA_KEY_VALUE { + pub Modulus: CRYPT_XML_DATA_BLOB, + pub Exponent: CRYPT_XML_DATA_BLOB, +} +impl ::core::marker::Copy for CRYPT_XML_KEY_RSA_KEY_VALUE {} +impl ::core::clone::Clone for CRYPT_XML_KEY_RSA_KEY_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_KEY_VALUE { + pub dwType: CRYPT_XML_KEY_VALUE_TYPE, + pub Anonymous: CRYPT_XML_KEY_VALUE_0, +} +impl ::core::marker::Copy for CRYPT_XML_KEY_VALUE {} +impl ::core::clone::Clone for CRYPT_XML_KEY_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CRYPT_XML_KEY_VALUE_0 { + pub DSAKeyValue: CRYPT_XML_KEY_DSA_KEY_VALUE, + pub RSAKeyValue: CRYPT_XML_KEY_RSA_KEY_VALUE, + pub ECDSAKeyValue: CRYPT_XML_KEY_ECDSA_KEY_VALUE, + pub Custom: CRYPT_XML_BLOB, +} +impl ::core::marker::Copy for CRYPT_XML_KEY_VALUE_0 {} +impl ::core::clone::Clone for CRYPT_XML_KEY_VALUE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_OBJECT { + pub cbSize: u32, + pub hObject: *mut ::core::ffi::c_void, + pub wszId: ::windows_sys::core::PCWSTR, + pub wszMimeType: ::windows_sys::core::PCWSTR, + pub wszEncoding: ::windows_sys::core::PCWSTR, + pub Manifest: CRYPT_XML_REFERENCES, + pub Encoded: CRYPT_XML_BLOB, +} +impl ::core::marker::Copy for CRYPT_XML_OBJECT {} +impl ::core::clone::Clone for CRYPT_XML_OBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_PROPERTY { + pub dwPropId: CRYPT_XML_PROPERTY_ID, + pub pvValue: *const ::core::ffi::c_void, + pub cbValue: u32, +} +impl ::core::marker::Copy for CRYPT_XML_PROPERTY {} +impl ::core::clone::Clone for CRYPT_XML_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_REFERENCE { + pub cbSize: u32, + pub hReference: *mut ::core::ffi::c_void, + pub wszId: ::windows_sys::core::PCWSTR, + pub wszUri: ::windows_sys::core::PCWSTR, + pub wszType: ::windows_sys::core::PCWSTR, + pub DigestMethod: CRYPT_XML_ALGORITHM, + pub DigestValue: CRYPT_INTEGER_BLOB, + pub cTransform: u32, + pub rgTransform: *mut CRYPT_XML_ALGORITHM, +} +impl ::core::marker::Copy for CRYPT_XML_REFERENCE {} +impl ::core::clone::Clone for CRYPT_XML_REFERENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_REFERENCES { + pub cReference: u32, + pub rgpReference: *mut *mut CRYPT_XML_REFERENCE, +} +impl ::core::marker::Copy for CRYPT_XML_REFERENCES {} +impl ::core::clone::Clone for CRYPT_XML_REFERENCES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_SIGNATURE { + pub cbSize: u32, + pub hSignature: *mut ::core::ffi::c_void, + pub wszId: ::windows_sys::core::PCWSTR, + pub SignedInfo: CRYPT_XML_SIGNED_INFO, + pub SignatureValue: CRYPT_INTEGER_BLOB, + pub pKeyInfo: *mut CRYPT_XML_KEY_INFO, + pub cObject: u32, + pub rgpObject: *mut *mut CRYPT_XML_OBJECT, +} +impl ::core::marker::Copy for CRYPT_XML_SIGNATURE {} +impl ::core::clone::Clone for CRYPT_XML_SIGNATURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_SIGNED_INFO { + pub cbSize: u32, + pub wszId: ::windows_sys::core::PCWSTR, + pub Canonicalization: CRYPT_XML_ALGORITHM, + pub SignatureMethod: CRYPT_XML_ALGORITHM, + pub cReference: u32, + pub rgpReference: *mut *mut CRYPT_XML_REFERENCE, + pub Encoded: CRYPT_XML_BLOB, +} +impl ::core::marker::Copy for CRYPT_XML_SIGNED_INFO {} +impl ::core::clone::Clone for CRYPT_XML_SIGNED_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_STATUS { + pub cbSize: u32, + pub dwErrorStatus: CRYPT_XML_STATUS_ERROR_STATUS, + pub dwInfoStatus: CRYPT_XML_STATUS_INFO_STATUS, +} +impl ::core::marker::Copy for CRYPT_XML_STATUS {} +impl ::core::clone::Clone for CRYPT_XML_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_TRANSFORM_CHAIN_CONFIG { + pub cbSize: u32, + pub cTransformInfo: u32, + pub rgpTransformInfo: *mut *mut CRYPT_XML_TRANSFORM_INFO, +} +impl ::core::marker::Copy for CRYPT_XML_TRANSFORM_CHAIN_CONFIG {} +impl ::core::clone::Clone for CRYPT_XML_TRANSFORM_CHAIN_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_TRANSFORM_INFO { + pub cbSize: u32, + pub wszAlgorithm: ::windows_sys::core::PCWSTR, + pub cbBufferSize: u32, + pub dwFlags: CRYPT_XML_TRANSFORM_FLAGS, + pub pfnCreateTransform: PFN_CRYPT_XML_CREATE_TRANSFORM, +} +impl ::core::marker::Copy for CRYPT_XML_TRANSFORM_INFO {} +impl ::core::clone::Clone for CRYPT_XML_TRANSFORM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_X509DATA { + pub cX509Data: u32, + pub rgX509Data: *mut CRYPT_XML_X509DATA_ITEM, +} +impl ::core::marker::Copy for CRYPT_XML_X509DATA {} +impl ::core::clone::Clone for CRYPT_XML_X509DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_XML_X509DATA_ITEM { + pub dwType: CRYPT_XML_X509DATA_TYPE, + pub Anonymous: CRYPT_XML_X509DATA_ITEM_0, +} +impl ::core::marker::Copy for CRYPT_XML_X509DATA_ITEM {} +impl ::core::clone::Clone for CRYPT_XML_X509DATA_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CRYPT_XML_X509DATA_ITEM_0 { + pub IssuerSerial: CRYPT_XML_ISSUER_SERIAL, + pub SKI: CRYPT_XML_DATA_BLOB, + pub wszSubjectName: ::windows_sys::core::PCWSTR, + pub Certificate: CRYPT_XML_DATA_BLOB, + pub CRL: CRYPT_XML_DATA_BLOB, + pub Custom: CRYPT_XML_BLOB, +} +impl ::core::marker::Copy for CRYPT_XML_X509DATA_ITEM_0 {} +impl ::core::clone::Clone for CRYPT_XML_X509DATA_ITEM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CTL_ANY_SUBJECT_INFO { + pub SubjectAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub SubjectIdentifier: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for CTL_ANY_SUBJECT_INFO {} +impl ::core::clone::Clone for CTL_ANY_SUBJECT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CTL_CONTEXT { + pub dwMsgAndCertEncodingType: u32, + pub pbCtlEncoded: *mut u8, + pub cbCtlEncoded: u32, + pub pCtlInfo: *mut CTL_INFO, + pub hCertStore: HCERTSTORE, + pub hCryptMsg: *mut ::core::ffi::c_void, + pub pbCtlContent: *mut u8, + pub cbCtlContent: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CTL_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CTL_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CTL_ENTRY { + pub SubjectIdentifier: CRYPT_INTEGER_BLOB, + pub cAttribute: u32, + pub rgAttribute: *mut CRYPT_ATTRIBUTE, +} +impl ::core::marker::Copy for CTL_ENTRY {} +impl ::core::clone::Clone for CTL_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CTL_FIND_SUBJECT_PARA { + pub cbSize: u32, + pub pUsagePara: *mut CTL_FIND_USAGE_PARA, + pub dwSubjectType: u32, + pub pvSubject: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CTL_FIND_SUBJECT_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CTL_FIND_SUBJECT_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CTL_FIND_USAGE_PARA { + pub cbSize: u32, + pub SubjectUsage: CTL_USAGE, + pub ListIdentifier: CRYPT_INTEGER_BLOB, + pub pSigner: *mut CERT_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CTL_FIND_USAGE_PARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CTL_FIND_USAGE_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CTL_INFO { + pub dwVersion: u32, + pub SubjectUsage: CTL_USAGE, + pub ListIdentifier: CRYPT_INTEGER_BLOB, + pub SequenceNumber: CRYPT_INTEGER_BLOB, + pub ThisUpdate: super::super::Foundation::FILETIME, + pub NextUpdate: super::super::Foundation::FILETIME, + pub SubjectAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub cCTLEntry: u32, + pub rgCTLEntry: *mut CTL_ENTRY, + pub cExtension: u32, + pub rgExtension: *mut CERT_EXTENSION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CTL_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CTL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CTL_USAGE { + pub cUsageIdentifier: u32, + pub rgpszUsageIdentifier: *mut ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for CTL_USAGE {} +impl ::core::clone::Clone for CTL_USAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CTL_USAGE_MATCH { + pub dwType: u32, + pub Usage: CTL_USAGE, +} +impl ::core::marker::Copy for CTL_USAGE_MATCH {} +impl ::core::clone::Clone for CTL_USAGE_MATCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CTL_VERIFY_USAGE_PARA { + pub cbSize: u32, + pub ListIdentifier: CRYPT_INTEGER_BLOB, + pub cCtlStore: u32, + pub rghCtlStore: *mut HCERTSTORE, + pub cSignerStore: u32, + pub rghSignerStore: *mut HCERTSTORE, +} +impl ::core::marker::Copy for CTL_VERIFY_USAGE_PARA {} +impl ::core::clone::Clone for CTL_VERIFY_USAGE_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CTL_VERIFY_USAGE_STATUS { + pub cbSize: u32, + pub dwError: u32, + pub dwFlags: u32, + pub ppCtl: *mut *mut CTL_CONTEXT, + pub dwCtlEntryIndex: u32, + pub ppSigner: *mut *mut CERT_CONTEXT, + pub dwSignerIndex: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CTL_VERIFY_USAGE_STATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CTL_VERIFY_USAGE_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSSSEED { + pub counter: u32, + pub seed: [u8; 20], +} +impl ::core::marker::Copy for DSSSEED {} +impl ::core::clone::Clone for DSSSEED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENDPOINTADDRESS { + pub serviceUrl: ::windows_sys::core::PCWSTR, + pub policyUrl: ::windows_sys::core::PCWSTR, + pub rawCertificate: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for ENDPOINTADDRESS {} +impl ::core::clone::Clone for ENDPOINTADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENDPOINTADDRESS2 { + pub serviceUrl: ::windows_sys::core::PCWSTR, + pub policyUrl: ::windows_sys::core::PCWSTR, + pub identityType: u32, + pub identityBytes: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for ENDPOINTADDRESS2 {} +impl ::core::clone::Clone for ENDPOINTADDRESS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EV_EXTRA_CERT_CHAIN_POLICY_PARA { + pub cbSize: u32, + pub dwRootProgramQualifierFlags: CERT_ROOT_PROGRAM_FLAGS, +} +impl ::core::marker::Copy for EV_EXTRA_CERT_CHAIN_POLICY_PARA {} +impl ::core::clone::Clone for EV_EXTRA_CERT_CHAIN_POLICY_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EV_EXTRA_CERT_CHAIN_POLICY_STATUS { + pub cbSize: u32, + pub dwQualifiers: u32, + pub dwIssuanceUsageIndex: u32, +} +impl ::core::marker::Copy for EV_EXTRA_CERT_CHAIN_POLICY_STATUS {} +impl ::core::clone::Clone for EV_EXTRA_CERT_CHAIN_POLICY_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GENERIC_XML_TOKEN { + pub createDate: super::super::Foundation::FILETIME, + pub expiryDate: super::super::Foundation::FILETIME, + pub xmlToken: ::windows_sys::core::PWSTR, + pub internalTokenReference: ::windows_sys::core::PWSTR, + pub externalTokenReference: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GENERIC_XML_TOKEN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GENERIC_XML_TOKEN { + fn clone(&self) -> Self { + *self + } +} +pub type HCERTCHAINENGINE = isize; +pub type HCERTSTORE = *mut ::core::ffi::c_void; +pub type HCERTSTOREPROV = *mut ::core::ffi::c_void; +pub type HCRYPTASYNC = isize; +pub type HCRYPTPROV_LEGACY = usize; +pub type HCRYPTPROV_OR_NCRYPT_KEY_HANDLE = usize; +#[repr(C)] +pub struct HMAC_INFO { + pub HashAlgid: ALG_ID, + pub pbInnerString: *mut u8, + pub cbInnerString: u32, + pub pbOuterString: *mut u8, + pub cbOuterString: u32, +} +impl ::core::marker::Copy for HMAC_INFO {} +impl ::core::clone::Clone for HMAC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTPSPolicyCallbackData { + pub Anonymous: HTTPSPolicyCallbackData_0, + pub dwAuthType: HTTPSPOLICY_CALLBACK_DATA_AUTH_TYPE, + pub fdwChecks: u32, + pub pwszServerName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for HTTPSPolicyCallbackData {} +impl ::core::clone::Clone for HTTPSPolicyCallbackData { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union HTTPSPolicyCallbackData_0 { + pub cbStruct: u32, + pub cbSize: u32, +} +impl ::core::marker::Copy for HTTPSPolicyCallbackData_0 {} +impl ::core::clone::Clone for HTTPSPolicyCallbackData_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INFORMATIONCARD_ASYMMETRIC_CRYPTO_PARAMETERS { + pub keySize: i32, + pub keyExchangeAlgorithm: ::windows_sys::core::PWSTR, + pub signatureAlgorithm: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for INFORMATIONCARD_ASYMMETRIC_CRYPTO_PARAMETERS {} +impl ::core::clone::Clone for INFORMATIONCARD_ASYMMETRIC_CRYPTO_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INFORMATIONCARD_CRYPTO_HANDLE { + pub r#type: HandleType, + pub expiration: i64, + pub cryptoParameters: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for INFORMATIONCARD_CRYPTO_HANDLE {} +impl ::core::clone::Clone for INFORMATIONCARD_CRYPTO_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INFORMATIONCARD_HASH_CRYPTO_PARAMETERS { + pub hashSize: i32, + pub transform: INFORMATIONCARD_TRANSFORM_CRYPTO_PARAMETERS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INFORMATIONCARD_HASH_CRYPTO_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INFORMATIONCARD_HASH_CRYPTO_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INFORMATIONCARD_SYMMETRIC_CRYPTO_PARAMETERS { + pub keySize: i32, + pub blockSize: i32, + pub feedbackSize: i32, +} +impl ::core::marker::Copy for INFORMATIONCARD_SYMMETRIC_CRYPTO_PARAMETERS {} +impl ::core::clone::Clone for INFORMATIONCARD_SYMMETRIC_CRYPTO_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INFORMATIONCARD_TRANSFORM_CRYPTO_PARAMETERS { + pub inputBlockSize: i32, + pub outputBlockSize: i32, + pub canTransformMultipleBlocks: super::super::Foundation::BOOL, + pub canReuseTransform: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INFORMATIONCARD_TRANSFORM_CRYPTO_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INFORMATIONCARD_TRANSFORM_CRYPTO_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEY_TYPE_SUBTYPE { + pub dwKeySpec: u32, + pub Type: ::windows_sys::core::GUID, + pub Subtype: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for KEY_TYPE_SUBTYPE {} +impl ::core::clone::Clone for KEY_TYPE_SUBTYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_ALLOC_PARA { + pub cbSize: u32, + pub pfnAlloc: PFN_NCRYPT_ALLOC, + pub pfnFree: PFN_NCRYPT_FREE, +} +impl ::core::marker::Copy for NCRYPT_ALLOC_PARA {} +impl ::core::clone::Clone for NCRYPT_ALLOC_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_CIPHER_PADDING_INFO { + pub cbSize: u32, + pub dwFlags: u32, + pub pbIV: *mut u8, + pub cbIV: u32, + pub pbOtherInfo: *mut u8, + pub cbOtherInfo: u32, +} +impl ::core::marker::Copy for NCRYPT_CIPHER_PADDING_INFO {} +impl ::core::clone::Clone for NCRYPT_CIPHER_PADDING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE { + pub Header: NCRYPT_EXPORTED_ISOLATED_KEY_HEADER, +} +impl ::core::marker::Copy for NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE {} +impl ::core::clone::Clone for NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_EXPORTED_ISOLATED_KEY_HEADER { + pub Version: u32, + pub KeyUsage: u32, + pub _bitfield: u32, + pub cbAlgName: u32, + pub cbNonce: u32, + pub cbAuthTag: u32, + pub cbWrappingKey: u32, + pub cbIsolatedKey: u32, +} +impl ::core::marker::Copy for NCRYPT_EXPORTED_ISOLATED_KEY_HEADER {} +impl ::core::clone::Clone for NCRYPT_EXPORTED_ISOLATED_KEY_HEADER { + fn clone(&self) -> Self { + *self + } +} +pub type NCRYPT_HANDLE = usize; +pub type NCRYPT_HASH_HANDLE = usize; +#[repr(C)] +pub struct NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES { + pub Version: u32, + pub Flags: u32, + pub cbPublicKeyBlob: u32, +} +impl ::core::marker::Copy for NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES {} +impl ::core::clone::Clone for NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_KEY_ACCESS_POLICY_BLOB { + pub dwVersion: u32, + pub dwPolicyFlags: u32, + pub cbUserSid: u32, + pub cbApplicationSid: u32, +} +impl ::core::marker::Copy for NCRYPT_KEY_ACCESS_POLICY_BLOB {} +impl ::core::clone::Clone for NCRYPT_KEY_ACCESS_POLICY_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_KEY_ATTEST_PADDING_INFO { + pub magic: u32, + pub pbKeyBlob: *mut u8, + pub cbKeyBlob: u32, + pub pbKeyAuth: *mut u8, + pub cbKeyAuth: u32, +} +impl ::core::marker::Copy for NCRYPT_KEY_ATTEST_PADDING_INFO {} +impl ::core::clone::Clone for NCRYPT_KEY_ATTEST_PADDING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_KEY_BLOB_HEADER { + pub cbSize: u32, + pub dwMagic: u32, + pub cbAlgName: u32, + pub cbKeyData: u32, +} +impl ::core::marker::Copy for NCRYPT_KEY_BLOB_HEADER {} +impl ::core::clone::Clone for NCRYPT_KEY_BLOB_HEADER { + fn clone(&self) -> Self { + *self + } +} +pub type NCRYPT_KEY_HANDLE = usize; +#[repr(C)] +pub struct NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO { + pub dwVersion: u32, + pub iExpiration: i32, + pub pabNonce: [u8; 32], + pub pabPolicyRef: [u8; 32], + pub pabHMAC: [u8; 32], +} +impl ::core::marker::Copy for NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO {} +impl ::core::clone::Clone for NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_PCP_RAW_POLICYDIGEST_INFO { + pub dwVersion: u32, + pub cbDigest: u32, +} +impl ::core::marker::Copy for NCRYPT_PCP_RAW_POLICYDIGEST_INFO {} +impl ::core::clone::Clone for NCRYPT_PCP_RAW_POLICYDIGEST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_PCP_TPM_FW_VERSION_INFO { + pub major1: u16, + pub major2: u16, + pub minor1: u16, + pub minor2: u16, +} +impl ::core::marker::Copy for NCRYPT_PCP_TPM_FW_VERSION_INFO {} +impl ::core::clone::Clone for NCRYPT_PCP_TPM_FW_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT { + pub Magic: u32, + pub Version: u32, + pub HeaderSize: u32, + pub cbCertifyInfo: u32, + pub cbSignature: u32, + pub cbTpmPublic: u32, +} +impl ::core::marker::Copy for NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT {} +impl ::core::clone::Clone for NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_PLATFORM_ATTEST_PADDING_INFO { + pub magic: u32, + pub pcrMask: u32, +} +impl ::core::marker::Copy for NCRYPT_PLATFORM_ATTEST_PADDING_INFO {} +impl ::core::clone::Clone for NCRYPT_PLATFORM_ATTEST_PADDING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NCRYPT_PROTECT_STREAM_INFO { + pub pfnStreamOutput: PFNCryptStreamOutputCallback, + pub pvCallbackCtxt: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NCRYPT_PROTECT_STREAM_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NCRYPT_PROTECT_STREAM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NCRYPT_PROTECT_STREAM_INFO_EX { + pub pfnStreamOutput: PFNCryptStreamOutputCallbackEx, + pub pvCallbackCtxt: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NCRYPT_PROTECT_STREAM_INFO_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NCRYPT_PROTECT_STREAM_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +pub type NCRYPT_PROV_HANDLE = usize; +pub type NCRYPT_SECRET_HANDLE = usize; +#[repr(C)] +pub struct NCRYPT_SUPPORTED_LENGTHS { + pub dwMinLength: u32, + pub dwMaxLength: u32, + pub dwIncrement: u32, + pub dwDefaultLength: u32, +} +impl ::core::marker::Copy for NCRYPT_SUPPORTED_LENGTHS {} +impl ::core::clone::Clone for NCRYPT_SUPPORTED_LENGTHS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER { + pub magic: u32, + pub cbHeader: u32, + pub cbPublic: u32, + pub cbPrivate: u32, + pub cbName: u32, +} +impl ::core::marker::Copy for NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER {} +impl ::core::clone::Clone for NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT { + pub Magic: u32, + pub Version: u32, + pub pcrAlg: u32, + pub cbSignature: u32, + pub cbQuote: u32, + pub cbPcrs: u32, +} +impl ::core::marker::Copy for NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT {} +impl ::core::clone::Clone for NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_UI_POLICY { + pub dwVersion: u32, + pub dwFlags: u32, + pub pszCreationTitle: ::windows_sys::core::PCWSTR, + pub pszFriendlyName: ::windows_sys::core::PCWSTR, + pub pszDescription: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for NCRYPT_UI_POLICY {} +impl ::core::clone::Clone for NCRYPT_UI_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS { + pub Version: u32, + pub TrustletId: u64, + pub MinSvn: u32, + pub FlagsMask: u32, + pub FlagsExpected: u32, + pub _bitfield: u32, +} +impl ::core::marker::Copy for NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS {} +impl ::core::clone::Clone for NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCRYPT_VSM_KEY_ATTESTATION_STATEMENT { + pub Magic: u32, + pub Version: u32, + pub cbSignature: u32, + pub cbReport: u32, + pub cbAttributes: u32, +} +impl ::core::marker::Copy for NCRYPT_VSM_KEY_ATTESTATION_STATEMENT {} +impl ::core::clone::Clone for NCRYPT_VSM_KEY_ATTESTATION_STATEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCryptAlgorithmName { + pub pszName: ::windows_sys::core::PWSTR, + pub dwClass: NCRYPT_ALGORITHM_NAME_CLASS, + pub dwAlgOperations: NCRYPT_OPERATION, + pub dwFlags: u32, +} +impl ::core::marker::Copy for NCryptAlgorithmName {} +impl ::core::clone::Clone for NCryptAlgorithmName { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCryptKeyName { + pub pszName: ::windows_sys::core::PWSTR, + pub pszAlgid: ::windows_sys::core::PWSTR, + pub dwLegacyKeySpec: CERT_KEY_SPEC, + pub dwFlags: u32, +} +impl ::core::marker::Copy for NCryptKeyName {} +impl ::core::clone::Clone for NCryptKeyName { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NCryptProviderName { + pub pszName: ::windows_sys::core::PWSTR, + pub pszComment: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for NCryptProviderName {} +impl ::core::clone::Clone for NCryptProviderName { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OCSP_BASIC_RESPONSE_ENTRY { + pub CertId: OCSP_CERT_ID, + pub dwCertStatus: u32, + pub Anonymous: OCSP_BASIC_RESPONSE_ENTRY_0, + pub ThisUpdate: super::super::Foundation::FILETIME, + pub NextUpdate: super::super::Foundation::FILETIME, + pub cExtension: u32, + pub rgExtension: *mut CERT_EXTENSION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OCSP_BASIC_RESPONSE_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OCSP_BASIC_RESPONSE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union OCSP_BASIC_RESPONSE_ENTRY_0 { + pub pRevokedInfo: *mut OCSP_BASIC_REVOKED_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OCSP_BASIC_RESPONSE_ENTRY_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OCSP_BASIC_RESPONSE_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OCSP_BASIC_RESPONSE_INFO { + pub dwVersion: u32, + pub dwResponderIdChoice: u32, + pub Anonymous: OCSP_BASIC_RESPONSE_INFO_0, + pub ProducedAt: super::super::Foundation::FILETIME, + pub cResponseEntry: u32, + pub rgResponseEntry: *mut OCSP_BASIC_RESPONSE_ENTRY, + pub cExtension: u32, + pub rgExtension: *mut CERT_EXTENSION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OCSP_BASIC_RESPONSE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OCSP_BASIC_RESPONSE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union OCSP_BASIC_RESPONSE_INFO_0 { + pub ByNameResponderId: CRYPT_INTEGER_BLOB, + pub ByKeyResponderId: CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OCSP_BASIC_RESPONSE_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OCSP_BASIC_RESPONSE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OCSP_BASIC_REVOKED_INFO { + pub RevocationDate: super::super::Foundation::FILETIME, + pub dwCrlReasonCode: CERT_REVOCATION_STATUS_REASON, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OCSP_BASIC_REVOKED_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OCSP_BASIC_REVOKED_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OCSP_BASIC_SIGNED_RESPONSE_INFO { + pub ToBeSigned: CRYPT_INTEGER_BLOB, + pub SignatureInfo: OCSP_SIGNATURE_INFO, +} +impl ::core::marker::Copy for OCSP_BASIC_SIGNED_RESPONSE_INFO {} +impl ::core::clone::Clone for OCSP_BASIC_SIGNED_RESPONSE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OCSP_CERT_ID { + pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub IssuerNameHash: CRYPT_INTEGER_BLOB, + pub IssuerKeyHash: CRYPT_INTEGER_BLOB, + pub SerialNumber: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for OCSP_CERT_ID {} +impl ::core::clone::Clone for OCSP_CERT_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OCSP_REQUEST_ENTRY { + pub CertId: OCSP_CERT_ID, + pub cExtension: u32, + pub rgExtension: *mut CERT_EXTENSION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OCSP_REQUEST_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OCSP_REQUEST_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OCSP_REQUEST_INFO { + pub dwVersion: u32, + pub pRequestorName: *mut CERT_ALT_NAME_ENTRY, + pub cRequestEntry: u32, + pub rgRequestEntry: *mut OCSP_REQUEST_ENTRY, + pub cExtension: u32, + pub rgExtension: *mut CERT_EXTENSION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OCSP_REQUEST_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OCSP_REQUEST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OCSP_RESPONSE_INFO { + pub dwStatus: u32, + pub pszObjId: ::windows_sys::core::PSTR, + pub Value: CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for OCSP_RESPONSE_INFO {} +impl ::core::clone::Clone for OCSP_RESPONSE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OCSP_SIGNATURE_INFO { + pub SignatureAlgorithm: CRYPT_ALGORITHM_IDENTIFIER, + pub Signature: CRYPT_BIT_BLOB, + pub cCertEncoded: u32, + pub rgCertEncoded: *mut CRYPT_INTEGER_BLOB, +} +impl ::core::marker::Copy for OCSP_SIGNATURE_INFO {} +impl ::core::clone::Clone for OCSP_SIGNATURE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OCSP_SIGNED_REQUEST_INFO { + pub ToBeSigned: CRYPT_INTEGER_BLOB, + pub pOptionalSignatureInfo: *mut OCSP_SIGNATURE_INFO, +} +impl ::core::marker::Copy for OCSP_SIGNED_REQUEST_INFO {} +impl ::core::clone::Clone for OCSP_SIGNED_REQUEST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PKCS12_PBES2_EXPORT_PARAMS { + pub dwSize: u32, + pub hNcryptDescriptor: *mut ::core::ffi::c_void, + pub pwszPbes2Alg: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PKCS12_PBES2_EXPORT_PARAMS {} +impl ::core::clone::Clone for PKCS12_PBES2_EXPORT_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POLICY_ELEMENT { + pub targetEndpointAddress: ::windows_sys::core::PCWSTR, + pub issuerEndpointAddress: ::windows_sys::core::PCWSTR, + pub issuedTokenParameters: ::windows_sys::core::PCWSTR, + pub privacyNoticeLink: ::windows_sys::core::PCWSTR, + pub privacyNoticeVersion: u32, + pub useManagedPresentation: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POLICY_ELEMENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POLICY_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRIVKEYVER3 { + pub magic: u32, + pub bitlenP: u32, + pub bitlenQ: u32, + pub bitlenJ: u32, + pub bitlenX: u32, + pub DSSSeed: DSSSEED, +} +impl ::core::marker::Copy for PRIVKEYVER3 {} +impl ::core::clone::Clone for PRIVKEYVER3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROV_ENUMALGS { + pub aiAlgid: ALG_ID, + pub dwBitLen: u32, + pub dwNameLen: u32, + pub szName: [u8; 20], +} +impl ::core::marker::Copy for PROV_ENUMALGS {} +impl ::core::clone::Clone for PROV_ENUMALGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROV_ENUMALGS_EX { + pub aiAlgid: ALG_ID, + pub dwDefaultLen: u32, + pub dwMinLen: u32, + pub dwMaxLen: u32, + pub dwProtocols: u32, + pub dwNameLen: u32, + pub szName: [u8; 20], + pub dwLongNameLen: u32, + pub szLongName: [u8; 40], +} +impl ::core::marker::Copy for PROV_ENUMALGS_EX {} +impl ::core::clone::Clone for PROV_ENUMALGS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PUBKEY { + pub magic: u32, + pub bitlen: u32, +} +impl ::core::marker::Copy for PUBKEY {} +impl ::core::clone::Clone for PUBKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PUBKEYVER3 { + pub magic: u32, + pub bitlenP: u32, + pub bitlenQ: u32, + pub bitlenJ: u32, + pub DSSSeed: DSSSEED, +} +impl ::core::marker::Copy for PUBKEYVER3 {} +impl ::core::clone::Clone for PUBKEYVER3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PUBLICKEYSTRUC { + pub bType: u8, + pub bVersion: u8, + pub reserved: u16, + pub aiKeyAlg: ALG_ID, +} +impl ::core::marker::Copy for PUBLICKEYSTRUC {} +impl ::core::clone::Clone for PUBLICKEYSTRUC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECIPIENTPOLICY { + pub recipient: ENDPOINTADDRESS, + pub issuer: ENDPOINTADDRESS, + pub tokenType: ::windows_sys::core::PCWSTR, + pub requiredClaims: CLAIMLIST, + pub optionalClaims: CLAIMLIST, + pub privacyUrl: ::windows_sys::core::PCWSTR, + pub privacyVersion: u32, +} +impl ::core::marker::Copy for RECIPIENTPOLICY {} +impl ::core::clone::Clone for RECIPIENTPOLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECIPIENTPOLICY2 { + pub recipient: ENDPOINTADDRESS2, + pub issuer: ENDPOINTADDRESS2, + pub tokenType: ::windows_sys::core::PCWSTR, + pub requiredClaims: CLAIMLIST, + pub optionalClaims: CLAIMLIST, + pub privacyUrl: ::windows_sys::core::PCWSTR, + pub privacyVersion: u32, +} +impl ::core::marker::Copy for RECIPIENTPOLICY2 {} +impl ::core::clone::Clone for RECIPIENTPOLICY2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ROOT_INFO_LUID { + pub LowPart: u32, + pub HighPart: i32, +} +impl ::core::marker::Copy for ROOT_INFO_LUID {} +impl ::core::clone::Clone for ROOT_INFO_LUID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RSAPUBKEY { + pub magic: u32, + pub bitlen: u32, + pub pubexp: u32, +} +impl ::core::marker::Copy for RSAPUBKEY {} +impl ::core::clone::Clone for RSAPUBKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCHANNEL_ALG { + pub dwUse: u32, + pub Algid: ALG_ID, + pub cBits: u32, + pub dwFlags: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for SCHANNEL_ALG {} +impl ::core::clone::Clone for SCHANNEL_ALG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SIGNER_ATTR_AUTHCODE { + pub cbSize: u32, + pub fCommercial: super::super::Foundation::BOOL, + pub fIndividual: super::super::Foundation::BOOL, + pub pwszName: ::windows_sys::core::PCWSTR, + pub pwszInfo: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIGNER_ATTR_AUTHCODE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIGNER_ATTR_AUTHCODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SIGNER_BLOB_INFO { + pub cbSize: u32, + pub pGuidSubject: *mut ::windows_sys::core::GUID, + pub cbBlob: u32, + pub pbBlob: *mut u8, + pub pwszDisplayName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for SIGNER_BLOB_INFO {} +impl ::core::clone::Clone for SIGNER_BLOB_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SIGNER_CERT { + pub cbSize: u32, + pub dwCertChoice: SIGNER_CERT_CHOICE, + pub Anonymous: SIGNER_CERT_0, + pub hwnd: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIGNER_CERT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIGNER_CERT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union SIGNER_CERT_0 { + pub pwszSpcFile: ::windows_sys::core::PCWSTR, + pub pCertStoreInfo: *mut SIGNER_CERT_STORE_INFO, + pub pSpcChainInfo: *mut SIGNER_SPC_CHAIN_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIGNER_CERT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIGNER_CERT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SIGNER_CERT_STORE_INFO { + pub cbSize: u32, + pub pSigningCert: *const CERT_CONTEXT, + pub dwCertPolicy: SIGNER_CERT_POLICY, + pub hCertStore: HCERTSTORE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIGNER_CERT_STORE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIGNER_CERT_STORE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SIGNER_CONTEXT { + pub cbSize: u32, + pub cbBlob: u32, + pub pbBlob: *mut u8, +} +impl ::core::marker::Copy for SIGNER_CONTEXT {} +impl ::core::clone::Clone for SIGNER_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SIGNER_DIGEST_SIGN_INFO { + pub cbSize: u32, + pub dwDigestSignChoice: u32, + pub Anonymous: SIGNER_DIGEST_SIGN_INFO_0, + pub pMetadataBlob: *mut CRYPT_INTEGER_BLOB, + pub dwReserved: u32, + pub dwReserved2: u32, + pub dwReserved3: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIGNER_DIGEST_SIGN_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIGNER_DIGEST_SIGN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union SIGNER_DIGEST_SIGN_INFO_0 { + pub pfnAuthenticodeDigestSign: PFN_AUTHENTICODE_DIGEST_SIGN, + pub pfnAuthenticodeDigestSignWithFileHandle: PFN_AUTHENTICODE_DIGEST_SIGN_WITHFILEHANDLE, + pub pfnAuthenticodeDigestSignEx: PFN_AUTHENTICODE_DIGEST_SIGN_EX, + pub pfnAuthenticodeDigestSignExWithFileHandle: PFN_AUTHENTICODE_DIGEST_SIGN_EX_WITHFILEHANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIGNER_DIGEST_SIGN_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIGNER_DIGEST_SIGN_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SIGNER_DIGEST_SIGN_INFO_V1 { + pub cbSize: u32, + pub pfnAuthenticodeDigestSign: PFN_AUTHENTICODE_DIGEST_SIGN, + pub pMetadataBlob: *mut CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIGNER_DIGEST_SIGN_INFO_V1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIGNER_DIGEST_SIGN_INFO_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SIGNER_DIGEST_SIGN_INFO_V2 { + pub cbSize: u32, + pub pfnAuthenticodeDigestSign: PFN_AUTHENTICODE_DIGEST_SIGN, + pub pfnAuthenticodeDigestSignEx: PFN_AUTHENTICODE_DIGEST_SIGN_EX, + pub pMetadataBlob: *mut CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIGNER_DIGEST_SIGN_INFO_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIGNER_DIGEST_SIGN_INFO_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SIGNER_FILE_INFO { + pub cbSize: u32, + pub pwszFileName: ::windows_sys::core::PCWSTR, + pub hFile: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIGNER_FILE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIGNER_FILE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SIGNER_PROVIDER_INFO { + pub cbSize: u32, + pub pwszProviderName: ::windows_sys::core::PCWSTR, + pub dwProviderType: u32, + pub dwKeySpec: u32, + pub dwPvkChoice: SIGNER_PRIVATE_KEY_CHOICE, + pub Anonymous: SIGNER_PROVIDER_INFO_0, +} +impl ::core::marker::Copy for SIGNER_PROVIDER_INFO {} +impl ::core::clone::Clone for SIGNER_PROVIDER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SIGNER_PROVIDER_INFO_0 { + pub pwszPvkFileName: ::windows_sys::core::PWSTR, + pub pwszKeyContainer: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SIGNER_PROVIDER_INFO_0 {} +impl ::core::clone::Clone for SIGNER_PROVIDER_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SIGNER_SIGNATURE_INFO { + pub cbSize: u32, + pub algidHash: ALG_ID, + pub dwAttrChoice: SIGNER_SIGNATURE_ATTRIBUTE_CHOICE, + pub Anonymous: SIGNER_SIGNATURE_INFO_0, + pub psAuthenticated: *mut CRYPT_ATTRIBUTES, + pub psUnauthenticated: *mut CRYPT_ATTRIBUTES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIGNER_SIGNATURE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIGNER_SIGNATURE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union SIGNER_SIGNATURE_INFO_0 { + pub pAttrAuthcode: *mut SIGNER_ATTR_AUTHCODE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIGNER_SIGNATURE_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIGNER_SIGNATURE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SIGNER_SPC_CHAIN_INFO { + pub cbSize: u32, + pub pwszSpcFile: ::windows_sys::core::PCWSTR, + pub dwCertPolicy: u32, + pub hCertStore: HCERTSTORE, +} +impl ::core::marker::Copy for SIGNER_SPC_CHAIN_INFO {} +impl ::core::clone::Clone for SIGNER_SPC_CHAIN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SIGNER_SUBJECT_INFO { + pub cbSize: u32, + pub pdwIndex: *mut u32, + pub dwSubjectChoice: SIGNER_SUBJECT_CHOICE, + pub Anonymous: SIGNER_SUBJECT_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIGNER_SUBJECT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIGNER_SUBJECT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union SIGNER_SUBJECT_INFO_0 { + pub pSignerFileInfo: *mut SIGNER_FILE_INFO, + pub pSignerBlobInfo: *mut SIGNER_BLOB_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SIGNER_SUBJECT_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SIGNER_SUBJECT_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SSL_ECCKEY_BLOB { + pub dwCurveType: u32, + pub cbKey: u32, +} +impl ::core::marker::Copy for SSL_ECCKEY_BLOB {} +impl ::core::clone::Clone for SSL_ECCKEY_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS { + pub cbSize: u32, + pub dwErrorLevel: u32, + pub dwErrorCategory: u32, + pub dwReserved: u32, + pub wszErrorText: [u16; 256], +} +impl ::core::marker::Copy for SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS {} +impl ::core::clone::Clone for SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA { + pub cbSize: u32, + pub dwReserved: u32, + pub pwszServerName: ::windows_sys::core::PWSTR, + pub rgpszHpkpValue: [::windows_sys::core::PSTR; 2], +} +impl ::core::marker::Copy for SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA {} +impl ::core::clone::Clone for SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA { + pub cbSize: u32, + pub dwReserved: u32, + pub pwszServerName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA {} +impl ::core::clone::Clone for SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS { + pub cbSize: u32, + pub lError: i32, + pub wszErrorText: [u16; 512], +} +impl ::core::marker::Copy for SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS {} +impl ::core::clone::Clone for SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS { + fn clone(&self) -> Self { + *self + } +} +pub type CryptXmlDllCloseDigest = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type CryptXmlDllCreateDigest = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type CryptXmlDllCreateKey = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type CryptXmlDllDigestData = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type CryptXmlDllEncodeAlgorithm = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type CryptXmlDllEncodeKeyValue = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type CryptXmlDllFinalizeDigest = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type CryptXmlDllGetAlgorithmInfo = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type CryptXmlDllGetInterface = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type CryptXmlDllSignData = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type CryptXmlDllVerifySignature = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCRYPT_DECRYPT_PRIVATE_KEY_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCRYPT_RESOLVE_HCRYPTPROV_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNCryptStreamOutputCallback = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNCryptStreamOutputCallbackEx = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_AUTHENTICODE_DIGEST_SIGN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_AUTHENTICODE_DIGEST_SIGN_EX = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_AUTHENTICODE_DIGEST_SIGN_EX_WITHFILEHANDLE = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_AUTHENTICODE_DIGEST_SIGN_WITHFILEHANDLE = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CANCEL_ASYNC_RETRIEVAL_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_CREATE_CONTEXT_SORT_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_DLL_OPEN_STORE_PROV_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_ENUM_PHYSICAL_STORE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_ENUM_SYSTEM_STORE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_ENUM_SYSTEM_STORE_LOCATION = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_IS_WEAK_HASH = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_SERVER_OCSP_RESPONSE_UPDATE_CALLBACK = ::core::option::Option ()>; +pub type PFN_CERT_STORE_PROV_CLOSE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_CONTROL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_DELETE_CERT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_DELETE_CRL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_DELETE_CTL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_FIND_CERT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_FIND_CRL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_FIND_CTL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_FREE_FIND_CERT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_FREE_FIND_CRL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_FREE_FIND_CTL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_GET_CERT_PROPERTY = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_GET_CRL_PROPERTY = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_GET_CTL_PROPERTY = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_READ_CERT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_READ_CRL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_READ_CTL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_SET_CERT_PROPERTY = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_SET_CRL_PROPERTY = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_SET_CTL_PROPERTY = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_WRITE_CERT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_WRITE_CRL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CERT_STORE_PROV_WRITE_CTL = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_CMSG_ALLOC = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_CNG_IMPORT_KEY_AGREE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_CNG_IMPORT_KEY_TRANS = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_EXPORT_ENCRYPT_KEY = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_EXPORT_KEY_AGREE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_EXPORT_KEY_TRANS = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_EXPORT_MAIL_LIST = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_CMSG_FREE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_GEN_ENCRYPT_KEY = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_IMPORT_ENCRYPT_KEY = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_IMPORT_KEY_AGREE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_IMPORT_KEY_TRANS = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_IMPORT_MAIL_LIST = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CMSG_STREAM_OUTPUT = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_CRYPT_ALLOC = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PFN_CRYPT_ASYNC_PARAM_FREE_FUNC = ::core::option::Option ()>; +pub type PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_CANCEL_RETRIEVAL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_ENUM_KEYID_PROP = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_ENUM_OID_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_ENUM_OID_INFO = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_CRYPT_FREE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_GET_SIGNER_CERTIFICATE = ::core::option::Option *mut CERT_CONTEXT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE = ::core::option::Option ()>; +pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER = ::core::option::Option ()>; +pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_CRYPT_XML_CREATE_TRANSFORM = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PFN_CRYPT_XML_DATA_PROVIDER_CLOSE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PFN_CRYPT_XML_DATA_PROVIDER_READ = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_CRYPT_XML_ENUM_ALG_INFO = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_CRYPT_XML_WRITE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_EXPORT_PRIV_KEY_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_FREE_ENCODED_OBJECT_FUNC = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_IMPORT_PRIV_KEY_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_NCRYPT_ALLOC = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PFN_NCRYPT_FREE = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/DiagnosticDataQuery/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/DiagnosticDataQuery/mod.rs new file mode 100644 index 000000000..be1e8f624 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/DiagnosticDataQuery/mod.rs @@ -0,0 +1,227 @@ +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqCancelDiagnosticRecordOperation(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqCloseSession(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqCreateSession(accesslevel : DdqAccessLevel, hsession : *mut super:: HDIAGNOSTIC_DATA_QUERY_SESSION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqExtractDiagnosticReport(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, reportstoretype : u32, reportkey : ::windows_sys::core::PCWSTR, destinationpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqFreeDiagnosticRecordLocaleTags(htagdescription : super:: HDIAGNOSTIC_EVENT_TAG_DESCRIPTION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqFreeDiagnosticRecordPage(hrecord : super:: HDIAGNOSTIC_RECORD) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqFreeDiagnosticRecordProducerCategories(hcategorydescription : super:: HDIAGNOSTIC_EVENT_CATEGORY_DESCRIPTION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqFreeDiagnosticRecordProducers(hproducerdescription : super:: HDIAGNOSTIC_EVENT_PRODUCER_DESCRIPTION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqFreeDiagnosticReport(hreport : super:: HDIAGNOSTIC_REPORT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticDataAccessLevelAllowed(accesslevel : *mut DdqAccessLevel) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("diagnosticdataquery.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdqGetDiagnosticRecordAtIndex(hrecord : super:: HDIAGNOSTIC_RECORD, index : u32, record : *mut DIAGNOSTIC_DATA_RECORD) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordBinaryDistribution(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, producernames : *const ::windows_sys::core::PCWSTR, producernamecount : u32, topnbinaries : u32, binarystats : *mut *mut DIAGNOSTIC_DATA_EVENT_BINARY_STATS, statcount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordCategoryAtIndex(hcategorydescription : super:: HDIAGNOSTIC_EVENT_CATEGORY_DESCRIPTION, index : u32, categorydescription : *mut DIAGNOSTIC_DATA_EVENT_CATEGORY_DESCRIPTION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordCategoryCount(hcategorydescription : super:: HDIAGNOSTIC_EVENT_CATEGORY_DESCRIPTION, categorydescriptioncount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordCount(hrecord : super:: HDIAGNOSTIC_RECORD, recordcount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordLocaleTagAtIndex(htagdescription : super:: HDIAGNOSTIC_EVENT_TAG_DESCRIPTION, index : u32, tagdescription : *mut DIAGNOSTIC_DATA_EVENT_TAG_DESCRIPTION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordLocaleTagCount(htagdescription : super:: HDIAGNOSTIC_EVENT_TAG_DESCRIPTION, tagdescriptioncount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordLocaleTags(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, locale : ::windows_sys::core::PCWSTR, htagdescription : *mut super:: HDIAGNOSTIC_EVENT_TAG_DESCRIPTION) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("diagnosticdataquery.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdqGetDiagnosticRecordPage(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, searchcriteria : *const DIAGNOSTIC_DATA_SEARCH_CRITERIA, offset : u32, pagerecordcount : u32, baserowid : i64, hrecord : *mut super:: HDIAGNOSTIC_RECORD) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordPayload(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, rowid : i64, payload : *mut ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordProducerAtIndex(hproducerdescription : super:: HDIAGNOSTIC_EVENT_PRODUCER_DESCRIPTION, index : u32, producerdescription : *mut DIAGNOSTIC_DATA_EVENT_PRODUCER_DESCRIPTION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordProducerCategories(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, producername : ::windows_sys::core::PCWSTR, hcategorydescription : *mut super:: HDIAGNOSTIC_EVENT_CATEGORY_DESCRIPTION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordProducerCount(hproducerdescription : super:: HDIAGNOSTIC_EVENT_PRODUCER_DESCRIPTION, producerdescriptioncount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordProducers(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, hproducerdescription : *mut super:: HDIAGNOSTIC_EVENT_PRODUCER_DESCRIPTION) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("diagnosticdataquery.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdqGetDiagnosticRecordStats(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, searchcriteria : *const DIAGNOSTIC_DATA_SEARCH_CRITERIA, recordcount : *mut u32, minrowid : *mut i64, maxrowid : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordSummary(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, producernames : *const ::windows_sys::core::PCWSTR, producernamecount : u32, generalstats : *mut DIAGNOSTIC_DATA_GENERAL_STATS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticRecordTagDistribution(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, producernames : *const ::windows_sys::core::PCWSTR, producernamecount : u32, tagstats : *mut *mut DIAGNOSTIC_DATA_EVENT_TAG_STATS, statcount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticReport(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, reportstoretype : u32, hreport : *mut super:: HDIAGNOSTIC_REPORT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("diagnosticdataquery.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdqGetDiagnosticReportAtIndex(hreport : super:: HDIAGNOSTIC_REPORT, index : u32, report : *mut DIAGNOSTIC_REPORT_DATA) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticReportCount(hreport : super:: HDIAGNOSTIC_REPORT, reportcount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetDiagnosticReportStoreReportCount(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, reportstoretype : u32, reportcount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetSessionAccessLevel(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, accesslevel : *mut DdqAccessLevel) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqGetTranscriptConfiguration(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, currentconfig : *mut DIAGNOSTIC_DATA_EVENT_TRANSCRIPT_CONFIGURATION) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("diagnosticdataquery.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdqIsDiagnosticRecordSampledIn(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, providergroup : *const ::windows_sys::core::GUID, providerid : *const ::windows_sys::core::GUID, providername : ::windows_sys::core::PCWSTR, eventid : *const u32, eventname : ::windows_sys::core::PCWSTR, eventversion : *const u32, eventkeywords : *const u64, issampledin : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("diagnosticdataquery.dll" "system" fn DdqSetTranscriptConfiguration(hsession : super:: HDIAGNOSTIC_DATA_QUERY_SESSION, desiredconfig : *const DIAGNOSTIC_DATA_EVENT_TRANSCRIPT_CONFIGURATION) -> ::windows_sys::core::HRESULT); +pub const AllUserData: DdqAccessLevel = 2i32; +pub const CurrentUserData: DdqAccessLevel = 1i32; +pub const NoData: DdqAccessLevel = 0i32; +pub type DdqAccessLevel = i32; +#[repr(C)] +pub struct DIAGNOSTIC_DATA_EVENT_BINARY_STATS { + pub moduleName: ::windows_sys::core::PWSTR, + pub friendlyModuleName: ::windows_sys::core::PWSTR, + pub eventCount: u32, + pub uploadSizeBytes: u64, +} +impl ::core::marker::Copy for DIAGNOSTIC_DATA_EVENT_BINARY_STATS {} +impl ::core::clone::Clone for DIAGNOSTIC_DATA_EVENT_BINARY_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIAGNOSTIC_DATA_EVENT_CATEGORY_DESCRIPTION { + pub id: i32, + pub name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DIAGNOSTIC_DATA_EVENT_CATEGORY_DESCRIPTION {} +impl ::core::clone::Clone for DIAGNOSTIC_DATA_EVENT_CATEGORY_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIAGNOSTIC_DATA_EVENT_PRODUCER_DESCRIPTION { + pub name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DIAGNOSTIC_DATA_EVENT_PRODUCER_DESCRIPTION {} +impl ::core::clone::Clone for DIAGNOSTIC_DATA_EVENT_PRODUCER_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIAGNOSTIC_DATA_EVENT_TAG_DESCRIPTION { + pub privacyTag: i32, + pub name: ::windows_sys::core::PWSTR, + pub description: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DIAGNOSTIC_DATA_EVENT_TAG_DESCRIPTION {} +impl ::core::clone::Clone for DIAGNOSTIC_DATA_EVENT_TAG_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIAGNOSTIC_DATA_EVENT_TAG_STATS { + pub privacyTag: i32, + pub eventCount: u32, +} +impl ::core::marker::Copy for DIAGNOSTIC_DATA_EVENT_TAG_STATS {} +impl ::core::clone::Clone for DIAGNOSTIC_DATA_EVENT_TAG_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIAGNOSTIC_DATA_EVENT_TRANSCRIPT_CONFIGURATION { + pub hoursOfHistoryToKeep: u32, + pub maxStoreMegabytes: u32, + pub requestedMaxStoreMegabytes: u32, +} +impl ::core::marker::Copy for DIAGNOSTIC_DATA_EVENT_TRANSCRIPT_CONFIGURATION {} +impl ::core::clone::Clone for DIAGNOSTIC_DATA_EVENT_TRANSCRIPT_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIAGNOSTIC_DATA_GENERAL_STATS { + pub optInLevel: u32, + pub transcriptSizeBytes: u64, + pub oldestEventTimestamp: u64, + pub totalEventCountLast24Hours: u32, + pub averageDailyEvents: f32, +} +impl ::core::marker::Copy for DIAGNOSTIC_DATA_GENERAL_STATS {} +impl ::core::clone::Clone for DIAGNOSTIC_DATA_GENERAL_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DIAGNOSTIC_DATA_RECORD { + pub rowId: i64, + pub timestamp: u64, + pub eventKeywords: u64, + pub fullEventName: ::windows_sys::core::PWSTR, + pub providerGroupGuid: ::windows_sys::core::PWSTR, + pub producerName: ::windows_sys::core::PWSTR, + pub privacyTags: *mut i32, + pub privacyTagCount: u32, + pub categoryIds: *mut i32, + pub categoryIdCount: u32, + pub isCoreData: super::super::Foundation::BOOL, + pub extra1: ::windows_sys::core::PWSTR, + pub extra2: ::windows_sys::core::PWSTR, + pub extra3: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DIAGNOSTIC_DATA_RECORD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DIAGNOSTIC_DATA_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DIAGNOSTIC_DATA_SEARCH_CRITERIA { + pub producerNames: *const ::windows_sys::core::PCWSTR, + pub producerNameCount: u32, + pub textToMatch: ::windows_sys::core::PCWSTR, + pub categoryIds: *const i32, + pub categoryIdCount: u32, + pub privacyTags: *const i32, + pub privacyTagCount: u32, + pub coreDataOnly: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DIAGNOSTIC_DATA_SEARCH_CRITERIA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DIAGNOSTIC_DATA_SEARCH_CRITERIA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DIAGNOSTIC_REPORT_DATA { + pub signature: DIAGNOSTIC_REPORT_SIGNATURE, + pub bucketId: ::windows_sys::core::GUID, + pub reportId: ::windows_sys::core::GUID, + pub creationTime: super::super::Foundation::FILETIME, + pub sizeInBytes: u64, + pub cabId: ::windows_sys::core::PWSTR, + pub reportStatus: u32, + pub reportIntegratorId: ::windows_sys::core::GUID, + pub fileNames: *mut ::windows_sys::core::PWSTR, + pub fileCount: u32, + pub friendlyEventName: ::windows_sys::core::PWSTR, + pub applicationName: ::windows_sys::core::PWSTR, + pub applicationPath: ::windows_sys::core::PWSTR, + pub description: ::windows_sys::core::PWSTR, + pub bucketIdString: ::windows_sys::core::PWSTR, + pub legacyBucketId: u64, + pub reportKey: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DIAGNOSTIC_REPORT_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DIAGNOSTIC_REPORT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIAGNOSTIC_REPORT_PARAMETER { + pub name: [u16; 129], + pub value: [u16; 260], +} +impl ::core::marker::Copy for DIAGNOSTIC_REPORT_PARAMETER {} +impl ::core::clone::Clone for DIAGNOSTIC_REPORT_PARAMETER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DIAGNOSTIC_REPORT_SIGNATURE { + pub eventName: [u16; 65], + pub parameters: [DIAGNOSTIC_REPORT_PARAMETER; 10], +} +impl ::core::marker::Copy for DIAGNOSTIC_REPORT_SIGNATURE {} +impl ::core::clone::Clone for DIAGNOSTIC_REPORT_SIGNATURE { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/DirectoryServices/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/DirectoryServices/mod.rs new file mode 100644 index 000000000..12ddc32fd --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/DirectoryServices/mod.rs @@ -0,0 +1,33 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authorization_UI"))] +::windows_targets::link!("dssec.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authorization_UI\"`"] fn DSCreateISecurityInfoObject(pwszobjectpath : ::windows_sys::core::PCWSTR, pwszobjectclass : ::windows_sys::core::PCWSTR, dwflags : u32, ppsi : *mut super::Authorization::UI:: ISecurityInformation, pfnreadsd : PFNREADOBJECTSECURITY, pfnwritesd : PFNWRITEOBJECTSECURITY, lpcontext : super::super::Foundation:: LPARAM) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authorization_UI"))] +::windows_targets::link!("dssec.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authorization_UI\"`"] fn DSCreateISecurityInfoObjectEx(pwszobjectpath : ::windows_sys::core::PCWSTR, pwszobjectclass : ::windows_sys::core::PCWSTR, pwszserver : ::windows_sys::core::PCWSTR, pwszusername : ::windows_sys::core::PCWSTR, pwszpassword : ::windows_sys::core::PCWSTR, dwflags : u32, ppsi : *mut super::Authorization::UI:: ISecurityInformation, pfnreadsd : PFNREADOBJECTSECURITY, pfnwritesd : PFNWRITEOBJECTSECURITY, lpcontext : super::super::Foundation:: LPARAM) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("dssec.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn DSCreateSecurityPage(pwszobjectpath : ::windows_sys::core::PCWSTR, pwszobjectclass : ::windows_sys::core::PCWSTR, dwflags : u32, phpage : *mut super::super::UI::Controls:: HPROPSHEETPAGE, pfnreadsd : PFNREADOBJECTSECURITY, pfnwritesd : PFNWRITEOBJECTSECURITY, lpcontext : super::super::Foundation:: LPARAM) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dssec.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DSEditSecurity(hwndowner : super::super::Foundation:: HWND, pwszobjectpath : ::windows_sys::core::PCWSTR, pwszobjectclass : ::windows_sys::core::PCWSTR, dwflags : u32, pwszcaption : ::windows_sys::core::PCWSTR, pfnreadsd : PFNREADOBJECTSECURITY, pfnwritesd : PFNWRITEOBJECTSECURITY, lpcontext : super::super::Foundation:: LPARAM) -> ::windows_sys::core::HRESULT); +pub const DSSI_IS_ROOT: u32 = 16u32; +pub const DSSI_NO_ACCESS_CHECK: u32 = 2u32; +pub const DSSI_NO_EDIT_OWNER: u32 = 8u32; +pub const DSSI_NO_EDIT_SACL: u32 = 4u32; +pub const DSSI_NO_FILTER: u32 = 32u32; +pub const DSSI_NO_READONLY_MESSAGE: u32 = 64u32; +pub const DSSI_READ_ONLY: u32 = 1u32; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authorization_UI\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authorization_UI"))] +pub type PFNDSCREATEISECINFO = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Authorization_UI\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authorization_UI"))] +pub type PFNDSCREATEISECINFOEX = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +pub type PFNDSCREATESECPAGE = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNDSEDITSECURITY = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNREADOBJECTSECURITY = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNWRITEOBJECTSECURITY = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/EnterpriseData/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/EnterpriseData/mod.rs new file mode 100644 index 000000000..ba625bf3c --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/EnterpriseData/mod.rs @@ -0,0 +1,59 @@ +::windows_targets::link!("efswrt.dll" "system" fn ProtectFileToEnterpriseIdentity(fileorfolderpath : ::windows_sys::core::PCWSTR, identity : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("srpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SrpCloseThreadNetworkContext(threadnetworkcontext : *mut HTHREAD_NETWORK_CONTEXT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("srpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SrpCreateThreadNetworkContext(enterpriseid : ::windows_sys::core::PCWSTR, threadnetworkcontext : *mut HTHREAD_NETWORK_CONTEXT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("srpapi.dll" "system" fn SrpDisablePermissiveModeFileEncryption() -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_Packaging_Appx"))] +::windows_targets::link!("srpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_Packaging_Appx\"`"] fn SrpDoesPolicyAllowAppExecution(packageid : *const super::super::Storage::Packaging::Appx:: PACKAGE_ID, isallowed : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("srpapi.dll" "system" fn SrpEnablePermissiveModeFileEncryption(enterpriseid : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("srpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SrpGetEnterpriseIds(tokenhandle : super::super::Foundation:: HANDLE, numberofbytes : *mut u32, enterpriseids : *mut ::windows_sys::core::PCWSTR, enterpriseidcount : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("srpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SrpGetEnterprisePolicy(tokenhandle : super::super::Foundation:: HANDLE, policyflags : *mut ENTERPRISE_DATA_POLICIES) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("srpapi.dll" "system" fn SrpHostingInitialize(version : SRPHOSTING_VERSION, r#type : SRPHOSTING_TYPE, pvdata : *const ::core::ffi::c_void, cbdata : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("srpapi.dll" "system" fn SrpHostingTerminate(r#type : SRPHOSTING_TYPE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("srpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SrpIsTokenService(tokenhandle : super::super::Foundation:: HANDLE, istokenservice : *mut u8) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("srpapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SrpSetTokenEnterpriseId(tokenhandle : super::super::Foundation:: HANDLE, enterpriseid : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("efswrt.dll" "system" fn UnprotectFile(fileorfolderpath : ::windows_sys::core::PCWSTR, options : *const FILE_UNPROTECT_OPTIONS) -> ::windows_sys::core::HRESULT); +pub type IProtectionPolicyManagerInterop = *mut ::core::ffi::c_void; +pub type IProtectionPolicyManagerInterop2 = *mut ::core::ffi::c_void; +pub type IProtectionPolicyManagerInterop3 = *mut ::core::ffi::c_void; +pub const ENTERPRISE_POLICY_ALLOWED: ENTERPRISE_DATA_POLICIES = 1i32; +pub const ENTERPRISE_POLICY_ENLIGHTENED: ENTERPRISE_DATA_POLICIES = 2i32; +pub const ENTERPRISE_POLICY_EXEMPT: ENTERPRISE_DATA_POLICIES = 4i32; +pub const ENTERPRISE_POLICY_NONE: ENTERPRISE_DATA_POLICIES = 0i32; +pub const SRPHOSTING_TYPE_NONE: SRPHOSTING_TYPE = 0i32; +pub const SRPHOSTING_TYPE_WINHTTP: SRPHOSTING_TYPE = 1i32; +pub const SRPHOSTING_TYPE_WININET: SRPHOSTING_TYPE = 2i32; +pub const SRPHOSTING_VERSION1: SRPHOSTING_VERSION = 1i32; +pub type ENTERPRISE_DATA_POLICIES = i32; +pub type SRPHOSTING_TYPE = i32; +pub type SRPHOSTING_VERSION = i32; +#[repr(C)] +pub struct FILE_UNPROTECT_OPTIONS { + pub audit: u8, +} +impl ::core::marker::Copy for FILE_UNPROTECT_OPTIONS {} +impl ::core::clone::Clone for FILE_UNPROTECT_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTHREAD_NETWORK_CONTEXT { + pub ThreadId: u32, + pub ThreadContext: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTHREAD_NETWORK_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTHREAD_NETWORK_CONTEXT { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/ExtensibleAuthenticationProtocol/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/ExtensibleAuthenticationProtocol/mod.rs new file mode 100644 index 000000000..bd5d3357a --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/ExtensibleAuthenticationProtocol/mod.rs @@ -0,0 +1,1273 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("eappprxy.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EapHostPeerBeginSession(dwflags : u32, eaptype : EAP_METHOD_TYPE, pattributearray : *const EAP_ATTRIBUTES, htokenimpersonateuser : super::super::Foundation:: HANDLE, dwsizeofconnectiondata : u32, pconnectiondata : *const u8, dwsizeofuserdata : u32, puserdata : *const u8, dwmaxsendpacketsize : u32, pconnectionid : *const ::windows_sys::core::GUID, func : NotificationHandler, pcontextdata : *mut ::core::ffi::c_void, psessionid : *mut u32, ppeaperror : *mut *mut EAP_ERROR) -> u32); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerClearConnection(pconnectionid : *mut ::windows_sys::core::GUID, ppeaperror : *mut *mut EAP_ERROR) -> u32); +#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com"))] +::windows_targets::link!("eappcfg.dll" "system" #[doc = "Required features: `\"Win32_Data_Xml_MsXml\"`, `\"Win32_System_Com\"`"] fn EapHostPeerConfigBlob2Xml(dwflags : u32, eapmethodtype : EAP_METHOD_TYPE, dwsizeofconfigin : u32, pconfigin : *const u8, ppconfigdoc : *mut super::super::Data::Xml::MsXml:: IXMLDOMDocument2, ppeaperror : *mut *mut EAP_ERROR) -> u32); +#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com"))] +::windows_targets::link!("eappcfg.dll" "system" #[doc = "Required features: `\"Win32_Data_Xml_MsXml\"`, `\"Win32_System_Com\"`"] fn EapHostPeerConfigXml2Blob(dwflags : u32, pconfigdoc : super::super::Data::Xml::MsXml:: IXMLDOMNode, pdwsizeofconfigout : *mut u32, ppconfigout : *mut *mut u8, peapmethodtype : *mut EAP_METHOD_TYPE, ppeaperror : *mut *mut EAP_ERROR) -> u32); +#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com"))] +::windows_targets::link!("eappcfg.dll" "system" #[doc = "Required features: `\"Win32_Data_Xml_MsXml\"`, `\"Win32_System_Com\"`"] fn EapHostPeerCredentialsXml2Blob(dwflags : u32, pcredentialsdoc : super::super::Data::Xml::MsXml:: IXMLDOMNode, dwsizeofconfigin : u32, pconfigin : *const u8, pdwsizeofcredentialsout : *mut u32, ppcredentialsout : *mut *mut u8, peapmethodtype : *mut EAP_METHOD_TYPE, ppeaperror : *mut *mut EAP_ERROR) -> u32); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerEndSession(sessionhandle : u32, ppeaperror : *mut *mut EAP_ERROR) -> u32); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerFreeEapError(peaperror : *mut EAP_ERROR) -> ()); +::windows_targets::link!("eappcfg.dll" "system" fn EapHostPeerFreeErrorMemory(peaperror : *mut EAP_ERROR) -> ()); +::windows_targets::link!("eappcfg.dll" "system" fn EapHostPeerFreeMemory(pdata : *mut u8) -> ()); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerFreeRuntimeMemory(pdata : *mut u8) -> ()); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerGetAuthStatus(sessionhandle : u32, authparam : EapHostPeerAuthParams, pcbauthdata : *mut u32, ppauthdata : *mut *mut u8, ppeaperror : *mut *mut EAP_ERROR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("eappprxy.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EapHostPeerGetDataToUnplumbCredentials(pconnectionidthatlastsavedcreds : *mut ::windows_sys::core::GUID, phcredentialimpersonationtoken : *mut isize, sessionhandle : u32, ppeaperror : *mut *mut EAP_ERROR, fsavetocredman : *mut super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerGetEncryptedPassword(dwsizeofpassword : u32, szpassword : ::windows_sys::core::PCWSTR, ppszencpassword : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("eappprxy.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EapHostPeerGetIdentity(dwversion : u32, dwflags : u32, eapmethodtype : EAP_METHOD_TYPE, dwsizeofconnectiondata : u32, pconnectiondata : *const u8, dwsizeofuserdata : u32, puserdata : *const u8, htokenimpersonateuser : super::super::Foundation:: HANDLE, pfinvokeui : *mut super::super::Foundation:: BOOL, pdwsizeofuserdataout : *mut u32, ppuserdataout : *mut *mut u8, ppwszidentity : *mut ::windows_sys::core::PWSTR, ppeaperror : *mut *mut EAP_ERROR, ppvreserved : *mut *mut u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("eappcfg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EapHostPeerGetMethodProperties(dwversion : u32, dwflags : u32, eapmethodtype : EAP_METHOD_TYPE, huserimpersonationtoken : super::super::Foundation:: HANDLE, dweapconndatasize : u32, pbeapconndata : *const u8, dwuserdatasize : u32, pbuserdata : *const u8, pmethodpropertyarray : *mut EAP_METHOD_PROPERTY_ARRAY, ppeaperror : *mut *mut EAP_ERROR) -> u32); +::windows_targets::link!("eappcfg.dll" "system" fn EapHostPeerGetMethods(peapmethodinfoarray : *mut EAP_METHOD_INFO_ARRAY, ppeaperror : *mut *mut EAP_ERROR) -> u32); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerGetResponseAttributes(sessionhandle : u32, pattribs : *mut EAP_ATTRIBUTES, ppeaperror : *mut *mut EAP_ERROR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("eappprxy.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EapHostPeerGetResult(sessionhandle : u32, reason : EapHostPeerMethodResultReason, ppresult : *mut EapHostPeerMethodResult, ppeaperror : *mut *mut EAP_ERROR) -> u32); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerGetSendPacket(sessionhandle : u32, pcbsendpacket : *mut u32, ppsendpacket : *mut *mut u8, ppeaperror : *mut *mut EAP_ERROR) -> u32); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerGetUIContext(sessionhandle : u32, pdwsizeofuicontextdata : *mut u32, ppuicontextdata : *mut *mut u8, ppeaperror : *mut *mut EAP_ERROR) -> u32); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerInitialize() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("eappcfg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EapHostPeerInvokeConfigUI(hwndparent : super::super::Foundation:: HWND, dwflags : u32, eapmethodtype : EAP_METHOD_TYPE, dwsizeofconfigin : u32, pconfigin : *const u8, pdwsizeofconfigout : *mut u32, ppconfigout : *mut *mut u8, ppeaperror : *mut *mut EAP_ERROR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("eappcfg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EapHostPeerInvokeIdentityUI(dwversion : u32, eapmethodtype : EAP_METHOD_TYPE, dwflags : u32, hwndparent : super::super::Foundation:: HWND, dwsizeofconnectiondata : u32, pconnectiondata : *const u8, dwsizeofuserdata : u32, puserdata : *const u8, pdwsizeofuserdataout : *mut u32, ppuserdataout : *mut *mut u8, ppwszidentity : *mut ::windows_sys::core::PWSTR, ppeaperror : *mut *mut EAP_ERROR, ppvreserved : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("eappcfg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EapHostPeerInvokeInteractiveUI(hwndparent : super::super::Foundation:: HWND, dwsizeofuicontextdata : u32, puicontextdata : *const u8, pdwsizeofdatafrominteractiveui : *mut u32, ppdatafrominteractiveui : *mut *mut u8, ppeaperror : *mut *mut EAP_ERROR) -> u32); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerProcessReceivedPacket(sessionhandle : u32, cbreceivepacket : u32, preceivepacket : *const u8, peapoutput : *mut EapHostPeerResponseAction, ppeaperror : *mut *mut EAP_ERROR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("eappcfg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EapHostPeerQueryCredentialInputFields(huserimpersonationtoken : super::super::Foundation:: HANDLE, eapmethodtype : EAP_METHOD_TYPE, dwflags : u32, dweapconndatasize : u32, pbeapconndata : *const u8, peapconfiginputfieldarray : *mut EAP_CONFIG_INPUT_FIELD_ARRAY, ppeaperror : *mut *mut EAP_ERROR) -> u32); +::windows_targets::link!("eappcfg.dll" "system" fn EapHostPeerQueryInteractiveUIInputFields(dwversion : u32, dwflags : u32, dwsizeofuicontextdata : u32, puicontextdata : *const u8, peapinteractiveuidata : *mut EAP_INTERACTIVE_UI_DATA, ppeaperror : *mut *mut EAP_ERROR, ppvreserved : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("eappcfg.dll" "system" fn EapHostPeerQueryUIBlobFromInteractiveUIInputFields(dwversion : u32, dwflags : u32, dwsizeofuicontextdata : u32, puicontextdata : *const u8, peapinteractiveuidata : *const EAP_INTERACTIVE_UI_DATA, pdwsizeofdatafrominteractiveui : *mut u32, ppdatafrominteractiveui : *mut *mut u8, ppeaperror : *mut *mut EAP_ERROR, ppvreserved : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("eappcfg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EapHostPeerQueryUserBlobFromCredentialInputFields(huserimpersonationtoken : super::super::Foundation:: HANDLE, eapmethodtype : EAP_METHOD_TYPE, dwflags : u32, dweapconndatasize : u32, pbeapconndata : *const u8, peapconfiginputfieldarray : *const EAP_CONFIG_INPUT_FIELD_ARRAY, pdwuserblobsize : *mut u32, ppbuserblob : *mut *mut u8, ppeaperror : *mut *mut EAP_ERROR) -> u32); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerSetResponseAttributes(sessionhandle : u32, pattribs : *const EAP_ATTRIBUTES, peapoutput : *mut EapHostPeerResponseAction, ppeaperror : *mut *mut EAP_ERROR) -> u32); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerSetUIContext(sessionhandle : u32, dwsizeofuicontextdata : u32, puicontextdata : *const u8, peapoutput : *mut EapHostPeerResponseAction, ppeaperror : *mut *mut EAP_ERROR) -> u32); +::windows_targets::link!("eappprxy.dll" "system" fn EapHostPeerUninitialize() -> ()); +pub type IAccountingProviderConfig = *mut ::core::ffi::c_void; +pub type IAuthenticationProviderConfig = *mut ::core::ffi::c_void; +pub type IEAPProviderConfig = *mut ::core::ffi::c_void; +pub type IEAPProviderConfig2 = *mut ::core::ffi::c_void; +pub type IEAPProviderConfig3 = *mut ::core::ffi::c_void; +pub type IRouterProtocolConfig = *mut ::core::ffi::c_void; +pub const CERTIFICATE_HASH_LENGTH: u32 = 20u32; +pub const EAPACTION_Authenticate: PPP_EAP_ACTION = 1i32; +pub const EAPACTION_Done: PPP_EAP_ACTION = 2i32; +pub const EAPACTION_IndicateIdentity: PPP_EAP_ACTION = 8i32; +pub const EAPACTION_IndicateTLV: PPP_EAP_ACTION = 7i32; +pub const EAPACTION_NoAction: PPP_EAP_ACTION = 0i32; +pub const EAPACTION_Send: PPP_EAP_ACTION = 4i32; +pub const EAPACTION_SendAndDone: PPP_EAP_ACTION = 3i32; +pub const EAPACTION_SendWithTimeout: PPP_EAP_ACTION = 5i32; +pub const EAPACTION_SendWithTimeoutInteractive: PPP_EAP_ACTION = 6i32; +pub const EAPCODE_Failure: u32 = 4u32; +pub const EAPCODE_Request: u32 = 1u32; +pub const EAPCODE_Response: u32 = 2u32; +pub const EAPCODE_Success: u32 = 3u32; +pub const EAPHOST_METHOD_API_VERSION: u32 = 1u32; +pub const EAPHOST_PEER_API_VERSION: u32 = 1u32; +pub const EAP_AUTHENTICATOR_SEND_TIMEOUT_BASIC: EAP_AUTHENTICATOR_SEND_TIMEOUT = 1i32; +pub const EAP_AUTHENTICATOR_SEND_TIMEOUT_INTERACTIVE: EAP_AUTHENTICATOR_SEND_TIMEOUT = 2i32; +pub const EAP_AUTHENTICATOR_SEND_TIMEOUT_NONE: EAP_AUTHENTICATOR_SEND_TIMEOUT = 0i32; +pub const EAP_AUTHENTICATOR_VALUENAME_CONFIGUI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AuthenticatorConfigUIPath"); +pub const EAP_AUTHENTICATOR_VALUENAME_DLL_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AuthenticatorDllPath"); +pub const EAP_AUTHENTICATOR_VALUENAME_FRIENDLY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AuthenticatorFriendlyName"); +pub const EAP_AUTHENTICATOR_VALUENAME_PROPERTIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Properties"); +pub const EAP_CERTIFICATE_CREDENTIAL: EapCredentialType = 3i32; +pub const EAP_CONFIG_INPUT_FIELD_PROPS_DEFAULT: u32 = 0u32; +pub const EAP_CONFIG_INPUT_FIELD_PROPS_NON_DISPLAYABLE: u32 = 1u32; +pub const EAP_CONFIG_INPUT_FIELD_PROPS_NON_PERSIST: u32 = 2u32; +pub const EAP_CREDENTIAL_VERSION: u32 = 1u32; +pub const EAP_EMPTY_CREDENTIAL: EapCredentialType = 0i32; +pub const EAP_E_AUTHENTICATION_FAILED: u32 = 2151809045u32; +pub const EAP_E_CERT_STORE_INACCESSIBLE: u32 = 2151809040u32; +pub const EAP_E_EAPHOST_EAPQEC_INACCESSIBLE: u32 = 2151809043u32; +pub const EAP_E_EAPHOST_FIRST: i32 = -2143158272i32; +pub const EAP_E_EAPHOST_IDENTITY_UNKNOWN: u32 = 2151809044u32; +pub const EAP_E_EAPHOST_LAST: i32 = -2143158017i32; +pub const EAP_E_EAPHOST_METHOD_INVALID_PACKET: u32 = 2151809047u32; +pub const EAP_E_EAPHOST_METHOD_NOT_INSTALLED: u32 = 2151809041u32; +pub const EAP_E_EAPHOST_METHOD_OPERATION_NOT_SUPPORTED: u32 = 2151809056u32; +pub const EAP_E_EAPHOST_REMOTE_INVALID_PACKET: u32 = 2151809048u32; +pub const EAP_E_EAPHOST_THIRDPARTY_METHOD_HOST_RESET: u32 = 2151809042u32; +pub const EAP_E_EAPHOST_XML_MALFORMED: u32 = 2151809049u32; +pub const EAP_E_METHOD_CONFIG_DOES_NOT_SUPPORT_SSO: u32 = 2151809050u32; +pub const EAP_E_NO_SMART_CARD_READER: u32 = 2151809299u32; +pub const EAP_E_SERVER_CERT_EXPIRED: u32 = 2151809538u32; +pub const EAP_E_SERVER_CERT_INVALID: u32 = 2151809537u32; +pub const EAP_E_SERVER_CERT_NOT_FOUND: u32 = 2151809536u32; +pub const EAP_E_SERVER_CERT_OTHER_ERROR: u32 = 2151809540u32; +pub const EAP_E_SERVER_CERT_REVOKED: u32 = 2151809539u32; +pub const EAP_E_SERVER_FIRST: i32 = -2143157760i32; +pub const EAP_E_SERVER_LAST: i32 = -2143157505i32; +pub const EAP_E_SERVER_ROOT_CERT_FIRST: i32 = -2143157248i32; +pub const EAP_E_SERVER_ROOT_CERT_INVALID: u32 = 2151810049u32; +pub const EAP_E_SERVER_ROOT_CERT_LAST: i32 = -2143156993i32; +pub const EAP_E_SERVER_ROOT_CERT_NAME_REQUIRED: u32 = 2151810054u32; +pub const EAP_E_SERVER_ROOT_CERT_NOT_FOUND: u32 = 2151810048u32; +pub const EAP_E_SIM_NOT_VALID: u32 = 2151810304u32; +pub const EAP_E_USER_CERT_EXPIRED: u32 = 2151809282u32; +pub const EAP_E_USER_CERT_INVALID: u32 = 2151809281u32; +pub const EAP_E_USER_CERT_NOT_FOUND: u32 = 2151809280u32; +pub const EAP_E_USER_CERT_OTHER_ERROR: u32 = 2151809284u32; +pub const EAP_E_USER_CERT_REJECTED: u32 = 2151809285u32; +pub const EAP_E_USER_CERT_REVOKED: u32 = 2151809283u32; +pub const EAP_E_USER_CREDENTIALS_REJECTED: u32 = 2151809297u32; +pub const EAP_E_USER_FIRST: i32 = -2143158016i32; +pub const EAP_E_USER_LAST: i32 = -2143157761i32; +pub const EAP_E_USER_NAME_PASSWORD_REJECTED: u32 = 2151809298u32; +pub const EAP_E_USER_ROOT_CERT_EXPIRED: u32 = 2151809794u32; +pub const EAP_E_USER_ROOT_CERT_FIRST: i32 = -2143157504i32; +pub const EAP_E_USER_ROOT_CERT_INVALID: u32 = 2151809793u32; +pub const EAP_E_USER_ROOT_CERT_LAST: i32 = -2143157249i32; +pub const EAP_E_USER_ROOT_CERT_NOT_FOUND: u32 = 2151809792u32; +pub const EAP_FLAG_CONFG_READONLY: u32 = 524288u32; +pub const EAP_FLAG_FULL_AUTH: u32 = 4096u32; +pub const EAP_FLAG_GUEST_ACCESS: u32 = 64u32; +pub const EAP_FLAG_LOGON: u32 = 4u32; +pub const EAP_FLAG_MACHINE_AUTH: u32 = 32u32; +pub const EAP_FLAG_NON_INTERACTIVE: u32 = 2u32; +pub const EAP_FLAG_ONLY_EAP_TLS: u32 = 16777216u32; +pub const EAP_FLAG_PREFER_ALT_CREDENTIALS: u32 = 8192u32; +pub const EAP_FLAG_PREVIEW: u32 = 8u32; +pub const EAP_FLAG_PRE_LOGON: u32 = 131072u32; +pub const EAP_FLAG_RESUME_FROM_HIBERNATE: u32 = 512u32; +pub const EAP_FLAG_Reserved1: u32 = 1u32; +pub const EAP_FLAG_Reserved2: u32 = 16u32; +pub const EAP_FLAG_Reserved3: u32 = 128u32; +pub const EAP_FLAG_Reserved4: u32 = 256u32; +pub const EAP_FLAG_Reserved5: u32 = 1024u32; +pub const EAP_FLAG_Reserved6: u32 = 2048u32; +pub const EAP_FLAG_Reserved7: u32 = 16384u32; +pub const EAP_FLAG_Reserved8: u32 = 1048576u32; +pub const EAP_FLAG_Reserved9: u32 = 4194304u32; +pub const EAP_FLAG_SERVER_VALIDATION_REQUIRED: u32 = 33554432u32; +pub const EAP_FLAG_SUPRESS_UI: u32 = 65536u32; +pub const EAP_FLAG_USER_AUTH: u32 = 262144u32; +pub const EAP_FLAG_VPN: u32 = 8388608u32; +pub const EAP_GROUP_MASK: i32 = 65280i32; +pub const EAP_INTERACTIVE_UI_DATA_VERSION: u32 = 1u32; +pub const EAP_INVALID_PACKET: u32 = 2151809048u32; +pub const EAP_I_EAPHOST_EAP_NEGOTIATION_FAILED: u32 = 1078067222u32; +pub const EAP_I_EAPHOST_FIRST: i32 = -2143158272i32; +pub const EAP_I_EAPHOST_LAST: i32 = -2143158017i32; +pub const EAP_I_USER_ACCOUNT_OTHER_ERROR: u32 = 1078067472u32; +pub const EAP_I_USER_FIRST: i32 = 1078067456i32; +pub const EAP_I_USER_LAST: i32 = 1078067711i32; +pub const EAP_METHOD_AUTHENTICATOR_CONFIG_IS_IDENTITY_PRIVACY: u32 = 1u32; +pub const EAP_METHOD_AUTHENTICATOR_RESPONSE_AUTHENTICATE: EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION = 4i32; +pub const EAP_METHOD_AUTHENTICATOR_RESPONSE_DISCARD: EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION = 0i32; +pub const EAP_METHOD_AUTHENTICATOR_RESPONSE_HANDLE_IDENTITY: EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION = 5i32; +pub const EAP_METHOD_AUTHENTICATOR_RESPONSE_RESPOND: EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION = 3i32; +pub const EAP_METHOD_AUTHENTICATOR_RESPONSE_RESULT: EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION = 2i32; +pub const EAP_METHOD_AUTHENTICATOR_RESPONSE_SEND: EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION = 1i32; +pub const EAP_METHOD_INVALID_PACKET: u32 = 2151809047u32; +pub const EAP_PEER_FLAG_GUEST_ACCESS: u32 = 64u32; +pub const EAP_PEER_FLAG_HEALTH_STATE_CHANGE: u32 = 32768u32; +pub const EAP_PEER_VALUENAME_CONFIGUI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PeerConfigUIPath"); +pub const EAP_PEER_VALUENAME_DLL_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PeerDllPath"); +pub const EAP_PEER_VALUENAME_FRIENDLY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PeerFriendlyName"); +pub const EAP_PEER_VALUENAME_IDENTITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PeerIdentityPath"); +pub const EAP_PEER_VALUENAME_INTERACTIVEUI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PeerInteractiveUIPath"); +pub const EAP_PEER_VALUENAME_INVOKE_NAMEDLG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PeerInvokeUsernameDialog"); +pub const EAP_PEER_VALUENAME_INVOKE_PWDDLG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PeerInvokePasswordDialog"); +pub const EAP_PEER_VALUENAME_PROPERTIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Properties"); +pub const EAP_PEER_VALUENAME_REQUIRE_CONFIGUI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PeerRequireConfigUI"); +pub const EAP_REGISTRY_LOCATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\EapHost\\Methods"); +pub const EAP_SIM_CREDENTIAL: EapCredentialType = 4i32; +pub const EAP_UI_INPUT_FIELD_PROPS_DEFAULT: u32 = 0u32; +pub const EAP_UI_INPUT_FIELD_PROPS_NON_DISPLAYABLE: u32 = 1u32; +pub const EAP_UI_INPUT_FIELD_PROPS_NON_PERSIST: u32 = 2u32; +pub const EAP_UI_INPUT_FIELD_PROPS_READ_ONLY: u32 = 4u32; +pub const EAP_USERNAME_PASSWORD_CREDENTIAL: EapCredentialType = 1i32; +pub const EAP_VALUENAME_PROPERTIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Properties"); +pub const EAP_WINLOGON_CREDENTIAL: EapCredentialType = 2i32; +pub const EapCodeFailure: EapCode = 4i32; +pub const EapCodeMaximum: EapCode = 4i32; +pub const EapCodeMinimum: EapCode = 1i32; +pub const EapCodeRequest: EapCode = 1i32; +pub const EapCodeResponse: EapCode = 2i32; +pub const EapCodeSuccess: EapCode = 3i32; +pub const EapConfigInputEdit: EAP_CONFIG_INPUT_FIELD_TYPE = 6i32; +pub const EapConfigInputNetworkPassword: EAP_CONFIG_INPUT_FIELD_TYPE = 3i32; +pub const EapConfigInputNetworkUsername: EAP_CONFIG_INPUT_FIELD_TYPE = 2i32; +pub const EapConfigInputPSK: EAP_CONFIG_INPUT_FIELD_TYPE = 5i32; +pub const EapConfigInputPassword: EAP_CONFIG_INPUT_FIELD_TYPE = 1i32; +pub const EapConfigInputPin: EAP_CONFIG_INPUT_FIELD_TYPE = 4i32; +pub const EapConfigInputUsername: EAP_CONFIG_INPUT_FIELD_TYPE = 0i32; +pub const EapConfigSmartCardError: EAP_CONFIG_INPUT_FIELD_TYPE = 8i32; +pub const EapConfigSmartCardUsername: EAP_CONFIG_INPUT_FIELD_TYPE = 7i32; +pub const EapCredExpiryReq: EAP_INTERACTIVE_UI_DATA_TYPE = 2i32; +pub const EapCredExpiryResp: EAP_INTERACTIVE_UI_DATA_TYPE = 3i32; +pub const EapCredLogonReq: EAP_INTERACTIVE_UI_DATA_TYPE = 4i32; +pub const EapCredLogonResp: EAP_INTERACTIVE_UI_DATA_TYPE = 5i32; +pub const EapCredReq: EAP_INTERACTIVE_UI_DATA_TYPE = 0i32; +pub const EapCredResp: EAP_INTERACTIVE_UI_DATA_TYPE = 1i32; +pub const EapHostAuthFailed: EAPHOST_AUTH_STATUS = 6i32; +pub const EapHostAuthIdentityExchange: EAPHOST_AUTH_STATUS = 2i32; +pub const EapHostAuthInProgress: EAPHOST_AUTH_STATUS = 4i32; +pub const EapHostAuthNegotiatingType: EAPHOST_AUTH_STATUS = 3i32; +pub const EapHostAuthNotStarted: EAPHOST_AUTH_STATUS = 1i32; +pub const EapHostAuthSucceeded: EAPHOST_AUTH_STATUS = 5i32; +pub const EapHostInvalidSession: EAPHOST_AUTH_STATUS = 0i32; +pub const EapHostNapInfo: EapHostPeerAuthParams = 4i32; +pub const EapHostPeerAuthStatus: EapHostPeerAuthParams = 1i32; +pub const EapHostPeerIdentity: EapHostPeerAuthParams = 2i32; +pub const EapHostPeerIdentityExtendedInfo: EapHostPeerAuthParams = 3i32; +pub const EapHostPeerMethodResultAltSuccessReceived: EapHostPeerMethodResultReason = 1i32; +pub const EapHostPeerMethodResultFromMethod: EapHostPeerMethodResultReason = 3i32; +pub const EapHostPeerMethodResultTimeout: EapHostPeerMethodResultReason = 2i32; +pub const EapHostPeerResponseDiscard: EapHostPeerResponseAction = 0i32; +pub const EapHostPeerResponseInvokeUi: EapHostPeerResponseAction = 3i32; +pub const EapHostPeerResponseNone: EapHostPeerResponseAction = 6i32; +pub const EapHostPeerResponseRespond: EapHostPeerResponseAction = 4i32; +pub const EapHostPeerResponseResult: EapHostPeerResponseAction = 2i32; +pub const EapHostPeerResponseSend: EapHostPeerResponseAction = 1i32; +pub const EapHostPeerResponseStartAuthentication: EapHostPeerResponseAction = 5i32; +pub const EapPeerMethodResponseActionDiscard: EapPeerMethodResponseAction = 0i32; +pub const EapPeerMethodResponseActionInvokeUI: EapPeerMethodResponseAction = 3i32; +pub const EapPeerMethodResponseActionNone: EapPeerMethodResponseAction = 5i32; +pub const EapPeerMethodResponseActionRespond: EapPeerMethodResponseAction = 4i32; +pub const EapPeerMethodResponseActionResult: EapPeerMethodResponseAction = 2i32; +pub const EapPeerMethodResponseActionSend: EapPeerMethodResponseAction = 1i32; +pub const EapPeerMethodResultFailure: EapPeerMethodResultReason = 3i32; +pub const EapPeerMethodResultSuccess: EapPeerMethodResultReason = 2i32; +pub const EapPeerMethodResultUnknown: EapPeerMethodResultReason = 1i32; +pub const FACILITY_EAP_MESSAGE: u32 = 2114u32; +pub const GUID_EapHost_Cause_CertStoreInaccessible: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000004); +pub const GUID_EapHost_Cause_EapNegotiationFailed: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000001c); +pub const GUID_EapHost_Cause_EapQecInaccessible: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000312); +pub const GUID_EapHost_Cause_Generic_AuthFailure: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000104); +pub const GUID_EapHost_Cause_IdentityUnknown: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000204); +pub const GUID_EapHost_Cause_MethodDLLNotFound: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000001); +pub const GUID_EapHost_Cause_MethodDoesNotSupportOperation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000001e); +pub const GUID_EapHost_Cause_Method_Config_Does_Not_Support_Sso: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xda18bd32_004f_41fa_ae08_0bc85e5845ac); +pub const GUID_EapHost_Cause_No_SmartCardReader_Found: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000002b); +pub const GUID_EapHost_Cause_Server_CertExpired: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000005); +pub const GUID_EapHost_Cause_Server_CertInvalid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000006); +pub const GUID_EapHost_Cause_Server_CertNotFound: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000007); +pub const GUID_EapHost_Cause_Server_CertOtherError: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000108); +pub const GUID_EapHost_Cause_Server_CertRevoked: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000008); +pub const GUID_EapHost_Cause_Server_Root_CertNameRequired: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000012); +pub const GUID_EapHost_Cause_Server_Root_CertNotFound: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000112); +pub const GUID_EapHost_Cause_SimNotValid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000304); +pub const GUID_EapHost_Cause_ThirdPartyMethod_Host_Reset: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000212); +pub const GUID_EapHost_Cause_User_Account_OtherProblem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000010e); +pub const GUID_EapHost_Cause_User_CertExpired: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000009); +pub const GUID_EapHost_Cause_User_CertInvalid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000000a); +pub const GUID_EapHost_Cause_User_CertNotFound: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000000b); +pub const GUID_EapHost_Cause_User_CertOtherError: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000000c); +pub const GUID_EapHost_Cause_User_CertRejected: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000000d); +pub const GUID_EapHost_Cause_User_CertRevoked: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000000e); +pub const GUID_EapHost_Cause_User_CredsRejected: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000020e); +pub const GUID_EapHost_Cause_User_Root_CertExpired: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000000f); +pub const GUID_EapHost_Cause_User_Root_CertInvalid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000010); +pub const GUID_EapHost_Cause_User_Root_CertNotFound: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000011); +pub const GUID_EapHost_Cause_XmlMalformed: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000001d); +pub const GUID_EapHost_Default: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000000); +pub const GUID_EapHost_Help_ObtainingCerts: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf535eea3_1bdd_46ca_a2fc_a6655939b7e8); +pub const GUID_EapHost_Help_Troubleshooting: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33307acf_0698_41ba_b014_ea0a2eb8d0a8); +pub const GUID_EapHost_Repair_ContactAdmin_AuthFailure: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000001f); +pub const GUID_EapHost_Repair_ContactAdmin_CertNameAbsent: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000029); +pub const GUID_EapHost_Repair_ContactAdmin_CertStoreInaccessible: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000024); +pub const GUID_EapHost_Repair_ContactAdmin_IdentityUnknown: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000020); +pub const GUID_EapHost_Repair_ContactAdmin_InvalidUserAccount: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000025); +pub const GUID_EapHost_Repair_ContactAdmin_InvalidUserCert: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000002c); +pub const GUID_EapHost_Repair_ContactAdmin_MethodNotFound: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000022); +pub const GUID_EapHost_Repair_ContactAdmin_NegotiationFailed: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000021); +pub const GUID_EapHost_Repair_ContactAdmin_NoSmartCardReader: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000002a); +pub const GUID_EapHost_Repair_ContactAdmin_RootCertInvalid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000026); +pub const GUID_EapHost_Repair_ContactAdmin_RootCertNotFound: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000027); +pub const GUID_EapHost_Repair_ContactAdmin_RootExpired: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000028); +pub const GUID_EapHost_Repair_ContactSysadmin: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000002); +pub const GUID_EapHost_Repair_Method_Not_Support_Sso: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000002d); +pub const GUID_EapHost_Repair_No_ValidSim_Found: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000002e); +pub const GUID_EapHost_Repair_RestartNap: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000023); +pub const GUID_EapHost_Repair_Retry_Authentication: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000011b); +pub const GUID_EapHost_Repair_Server_ClientSelectServerCert: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000018); +pub const GUID_EapHost_Repair_User_AuthFailure: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d800000019); +pub const GUID_EapHost_Repair_User_GetNewCert: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000001a); +pub const GUID_EapHost_Repair_User_SelectValidCert: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9612fc67_6150_4209_a85e_a8d80000001b); +pub const ISOLATION_STATE_IN_PROBATION: ISOLATION_STATE = 2i32; +pub const ISOLATION_STATE_NOT_RESTRICTED: ISOLATION_STATE = 1i32; +pub const ISOLATION_STATE_RESTRICTED_ACCESS: ISOLATION_STATE = 3i32; +pub const ISOLATION_STATE_UNKNOWN: ISOLATION_STATE = 0i32; +pub const MAXEAPCODE: u32 = 4u32; +pub const MAX_EAP_CONFIG_INPUT_FIELD_LENGTH: u32 = 256u32; +pub const MAX_EAP_CONFIG_INPUT_FIELD_VALUE_LENGTH: u32 = 1024u32; +pub const NCRYPT_PIN_CACHE_PIN_BYTE_LENGTH: u32 = 90u32; +pub const RAS_EAP_FLAG_8021X_AUTH: u32 = 128u32; +pub const RAS_EAP_FLAG_ALTERNATIVE_USER_DB: u32 = 2048u32; +pub const RAS_EAP_FLAG_CONFG_READONLY: u32 = 524288u32; +pub const RAS_EAP_FLAG_FIRST_LINK: u32 = 16u32; +pub const RAS_EAP_FLAG_GUEST_ACCESS: u32 = 64u32; +pub const RAS_EAP_FLAG_HOSTED_IN_PEAP: u32 = 256u32; +pub const RAS_EAP_FLAG_LOGON: u32 = 4u32; +pub const RAS_EAP_FLAG_MACHINE_AUTH: u32 = 32u32; +pub const RAS_EAP_FLAG_NON_INTERACTIVE: u32 = 2u32; +pub const RAS_EAP_FLAG_PEAP_FORCE_FULL_AUTH: u32 = 4096u32; +pub const RAS_EAP_FLAG_PEAP_UPFRONT: u32 = 1024u32; +pub const RAS_EAP_FLAG_PREVIEW: u32 = 8u32; +pub const RAS_EAP_FLAG_PRE_LOGON: u32 = 131072u32; +pub const RAS_EAP_FLAG_RESERVED: u32 = 1048576u32; +pub const RAS_EAP_FLAG_RESUME_FROM_HIBERNATE: u32 = 512u32; +pub const RAS_EAP_FLAG_ROUTER: u32 = 1u32; +pub const RAS_EAP_FLAG_SAVE_CREDMAN: u32 = 2097152u32; +pub const RAS_EAP_FLAG_SERVER_VALIDATION_REQUIRED: u32 = 33554432u32; +pub const RAS_EAP_REGISTRY_LOCATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\Rasman\\PPP\\EAP"); +pub const RAS_EAP_ROLE_AUTHENTICATEE: u32 = 2u32; +pub const RAS_EAP_ROLE_AUTHENTICATOR: u32 = 1u32; +pub const RAS_EAP_ROLE_EXCLUDE_IN_EAP: u32 = 4u32; +pub const RAS_EAP_ROLE_EXCLUDE_IN_PEAP: u32 = 8u32; +pub const RAS_EAP_ROLE_EXCLUDE_IN_VPN: u32 = 16u32; +pub const RAS_EAP_VALUENAME_CONFIGUI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConfigUIPath"); +pub const RAS_EAP_VALUENAME_CONFIG_CLSID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConfigCLSID"); +pub const RAS_EAP_VALUENAME_DEFAULT_DATA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConfigData"); +pub const RAS_EAP_VALUENAME_ENCRYPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MPPEEncryptionSupported"); +pub const RAS_EAP_VALUENAME_FILTER_INNERMETHODS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FilterInnerMethods"); +pub const RAS_EAP_VALUENAME_FRIENDLY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FriendlyName"); +pub const RAS_EAP_VALUENAME_IDENTITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IdentityPath"); +pub const RAS_EAP_VALUENAME_INTERACTIVEUI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InteractiveUIPath"); +pub const RAS_EAP_VALUENAME_INVOKE_NAMEDLG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InvokeUsernameDialog"); +pub const RAS_EAP_VALUENAME_INVOKE_PWDDLG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InvokePasswordDialog"); +pub const RAS_EAP_VALUENAME_ISTUNNEL_METHOD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsTunnelMethod"); +pub const RAS_EAP_VALUENAME_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Path"); +pub const RAS_EAP_VALUENAME_PER_POLICY_CONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PerPolicyConfig"); +pub const RAS_EAP_VALUENAME_REQUIRE_CONFIGUI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequireConfigUI"); +pub const RAS_EAP_VALUENAME_ROLES_SUPPORTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RolesSupported"); +pub const RAS_EAP_VALUENAME_STANDALONE_SUPPORTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StandaloneSupported"); +pub const eapPropCertifiedMethod: u32 = 4194304u32; +pub const eapPropChannelBinding: u32 = 65536u32; +pub const eapPropCipherSuiteNegotiation: u32 = 1u32; +pub const eapPropConfidentiality: u32 = 16u32; +pub const eapPropCryptoBinding: u32 = 8192u32; +pub const eapPropDictionaryAttackResistance: u32 = 2048u32; +pub const eapPropFastReconnect: u32 = 4096u32; +pub const eapPropFragmentation: u32 = 32768u32; +pub const eapPropHiddenMethod: u32 = 8388608u32; +pub const eapPropIdentityPrivacy: u32 = 67108864u32; +pub const eapPropIntegrity: u32 = 4u32; +pub const eapPropKeyDerivation: u32 = 32u32; +pub const eapPropKeyStrength1024: u32 = 1024u32; +pub const eapPropKeyStrength128: u32 = 128u32; +pub const eapPropKeyStrength256: u32 = 256u32; +pub const eapPropKeyStrength512: u32 = 512u32; +pub const eapPropKeyStrength64: u32 = 64u32; +pub const eapPropMachineAuth: u32 = 16777216u32; +pub const eapPropMethodChaining: u32 = 134217728u32; +pub const eapPropMppeEncryption: u32 = 524288u32; +pub const eapPropMutualAuth: u32 = 2u32; +pub const eapPropNap: u32 = 131072u32; +pub const eapPropReplayProtection: u32 = 8u32; +pub const eapPropReserved: u32 = 2147483648u32; +pub const eapPropSessionIndependence: u32 = 16384u32; +pub const eapPropSharedStateEquivalence: u32 = 268435456u32; +pub const eapPropStandalone: u32 = 262144u32; +pub const eapPropSupportsConfig: u32 = 2097152u32; +pub const eapPropTunnelMethod: u32 = 1048576u32; +pub const eapPropUserAuth: u32 = 33554432u32; +pub const eatARAPChallengeResponse: EAP_ATTRIBUTE_TYPE = 84i32; +pub const eatARAPFeatures: EAP_ATTRIBUTE_TYPE = 71i32; +pub const eatARAPGuestLogon: EAP_ATTRIBUTE_TYPE = 8096i32; +pub const eatARAPPassword: EAP_ATTRIBUTE_TYPE = 70i32; +pub const eatARAPSecurity: EAP_ATTRIBUTE_TYPE = 73i32; +pub const eatARAPSecurityData: EAP_ATTRIBUTE_TYPE = 74i32; +pub const eatARAPZoneAccess: EAP_ATTRIBUTE_TYPE = 72i32; +pub const eatAcctAuthentic: EAP_ATTRIBUTE_TYPE = 45i32; +pub const eatAcctDelayTime: EAP_ATTRIBUTE_TYPE = 41i32; +pub const eatAcctEventTimeStamp: EAP_ATTRIBUTE_TYPE = 55i32; +pub const eatAcctInputOctets: EAP_ATTRIBUTE_TYPE = 42i32; +pub const eatAcctInputPackets: EAP_ATTRIBUTE_TYPE = 47i32; +pub const eatAcctInterimInterval: EAP_ATTRIBUTE_TYPE = 85i32; +pub const eatAcctLinkCount: EAP_ATTRIBUTE_TYPE = 51i32; +pub const eatAcctMultiSessionId: EAP_ATTRIBUTE_TYPE = 50i32; +pub const eatAcctOutputOctets: EAP_ATTRIBUTE_TYPE = 43i32; +pub const eatAcctOutputPackets: EAP_ATTRIBUTE_TYPE = 48i32; +pub const eatAcctSessionId: EAP_ATTRIBUTE_TYPE = 44i32; +pub const eatAcctSessionTime: EAP_ATTRIBUTE_TYPE = 46i32; +pub const eatAcctStatusType: EAP_ATTRIBUTE_TYPE = 40i32; +pub const eatAcctTerminateCause: EAP_ATTRIBUTE_TYPE = 49i32; +pub const eatCallbackId: EAP_ATTRIBUTE_TYPE = 20i32; +pub const eatCallbackNumber: EAP_ATTRIBUTE_TYPE = 19i32; +pub const eatCalledStationId: EAP_ATTRIBUTE_TYPE = 30i32; +pub const eatCallingStationId: EAP_ATTRIBUTE_TYPE = 31i32; +pub const eatCertificateOID: EAP_ATTRIBUTE_TYPE = 8097i32; +pub const eatCertificateThumbprint: EAP_ATTRIBUTE_TYPE = 8250i32; +pub const eatClass: EAP_ATTRIBUTE_TYPE = 25i32; +pub const eatClearTextPassword: EAP_ATTRIBUTE_TYPE = 8107i32; +pub const eatConfigurationToken: EAP_ATTRIBUTE_TYPE = 78i32; +pub const eatConnectInfo: EAP_ATTRIBUTE_TYPE = 77i32; +pub const eatCredentialsChanged: EAP_ATTRIBUTE_TYPE = 8103i32; +pub const eatEAPConfiguration: EAP_ATTRIBUTE_TYPE = 8098i32; +pub const eatEAPMessage: EAP_ATTRIBUTE_TYPE = 79i32; +pub const eatEAPTLV: EAP_ATTRIBUTE_TYPE = 8102i32; +pub const eatEMSK: EAP_ATTRIBUTE_TYPE = 9003i32; +pub const eatFastRoamedSession: EAP_ATTRIBUTE_TYPE = 8100i32; +pub const eatFilterId: EAP_ATTRIBUTE_TYPE = 11i32; +pub const eatFramedAppleTalkLink: EAP_ATTRIBUTE_TYPE = 37i32; +pub const eatFramedAppleTalkNetwork: EAP_ATTRIBUTE_TYPE = 38i32; +pub const eatFramedAppleTalkZone: EAP_ATTRIBUTE_TYPE = 39i32; +pub const eatFramedCompression: EAP_ATTRIBUTE_TYPE = 13i32; +pub const eatFramedIPAddress: EAP_ATTRIBUTE_TYPE = 8i32; +pub const eatFramedIPNetmask: EAP_ATTRIBUTE_TYPE = 9i32; +pub const eatFramedIPXNetwork: EAP_ATTRIBUTE_TYPE = 23i32; +pub const eatFramedIPv6Pool: EAP_ATTRIBUTE_TYPE = 100i32; +pub const eatFramedIPv6Prefix: EAP_ATTRIBUTE_TYPE = 97i32; +pub const eatFramedIPv6Route: EAP_ATTRIBUTE_TYPE = 99i32; +pub const eatFramedInterfaceId: EAP_ATTRIBUTE_TYPE = 96i32; +pub const eatFramedMTU: EAP_ATTRIBUTE_TYPE = 12i32; +pub const eatFramedProtocol: EAP_ATTRIBUTE_TYPE = 7i32; +pub const eatFramedRoute: EAP_ATTRIBUTE_TYPE = 22i32; +pub const eatFramedRouting: EAP_ATTRIBUTE_TYPE = 10i32; +pub const eatIdleTimeout: EAP_ATTRIBUTE_TYPE = 28i32; +pub const eatInnerEapMethodType: EAP_ATTRIBUTE_TYPE = 8104i32; +pub const eatLoginIPHost: EAP_ATTRIBUTE_TYPE = 14i32; +pub const eatLoginIPv6Host: EAP_ATTRIBUTE_TYPE = 98i32; +pub const eatLoginLATGroup: EAP_ATTRIBUTE_TYPE = 36i32; +pub const eatLoginLATNode: EAP_ATTRIBUTE_TYPE = 35i32; +pub const eatLoginLATPort: EAP_ATTRIBUTE_TYPE = 63i32; +pub const eatLoginLATService: EAP_ATTRIBUTE_TYPE = 34i32; +pub const eatLoginService: EAP_ATTRIBUTE_TYPE = 15i32; +pub const eatLoginTCPPort: EAP_ATTRIBUTE_TYPE = 16i32; +pub const eatMD5CHAPChallenge: EAP_ATTRIBUTE_TYPE = 60i32; +pub const eatMD5CHAPPassword: EAP_ATTRIBUTE_TYPE = 3i32; +pub const eatMethodId: EAP_ATTRIBUTE_TYPE = 9002i32; +pub const eatMinimum: EAP_ATTRIBUTE_TYPE = 0i32; +pub const eatNASIPAddress: EAP_ATTRIBUTE_TYPE = 4i32; +pub const eatNASIPv6Address: EAP_ATTRIBUTE_TYPE = 95i32; +pub const eatNASIdentifier: EAP_ATTRIBUTE_TYPE = 32i32; +pub const eatNASPort: EAP_ATTRIBUTE_TYPE = 5i32; +pub const eatNASPortType: EAP_ATTRIBUTE_TYPE = 61i32; +pub const eatPEAPEmbeddedEAPTypeId: EAP_ATTRIBUTE_TYPE = 8099i32; +pub const eatPEAPFastRoamedSession: EAP_ATTRIBUTE_TYPE = 8100i32; +pub const eatPasswordRetry: EAP_ATTRIBUTE_TYPE = 75i32; +pub const eatPeerId: EAP_ATTRIBUTE_TYPE = 9000i32; +pub const eatPortLimit: EAP_ATTRIBUTE_TYPE = 62i32; +pub const eatPrompt: EAP_ATTRIBUTE_TYPE = 76i32; +pub const eatProxyState: EAP_ATTRIBUTE_TYPE = 33i32; +pub const eatQuarantineSoH: EAP_ATTRIBUTE_TYPE = 8150i32; +pub const eatReplyMessage: EAP_ATTRIBUTE_TYPE = 18i32; +pub const eatReserved: EAP_ATTRIBUTE_TYPE = -1i32; +pub const eatServerId: EAP_ATTRIBUTE_TYPE = 9001i32; +pub const eatServiceType: EAP_ATTRIBUTE_TYPE = 6i32; +pub const eatSessionId: EAP_ATTRIBUTE_TYPE = 9004i32; +pub const eatSessionTimeout: EAP_ATTRIBUTE_TYPE = 27i32; +pub const eatSignature: EAP_ATTRIBUTE_TYPE = 80i32; +pub const eatState: EAP_ATTRIBUTE_TYPE = 24i32; +pub const eatTerminationAction: EAP_ATTRIBUTE_TYPE = 29i32; +pub const eatTunnelClientEndpoint: EAP_ATTRIBUTE_TYPE = 66i32; +pub const eatTunnelMediumType: EAP_ATTRIBUTE_TYPE = 65i32; +pub const eatTunnelServerEndpoint: EAP_ATTRIBUTE_TYPE = 67i32; +pub const eatTunnelType: EAP_ATTRIBUTE_TYPE = 64i32; +pub const eatUnassigned17: EAP_ATTRIBUTE_TYPE = 17i32; +pub const eatUnassigned21: EAP_ATTRIBUTE_TYPE = 21i32; +pub const eatUserName: EAP_ATTRIBUTE_TYPE = 1i32; +pub const eatUserPassword: EAP_ATTRIBUTE_TYPE = 2i32; +pub const eatVendorSpecific: EAP_ATTRIBUTE_TYPE = 26i32; +pub const emptLegacyMethodPropertyFlag: EAP_METHOD_PROPERTY_TYPE = 31i32; +pub const emptPropCertifiedMethod: EAP_METHOD_PROPERTY_TYPE = 22i32; +pub const emptPropChannelBinding: EAP_METHOD_PROPERTY_TYPE = 16i32; +pub const emptPropCipherSuiteNegotiation: EAP_METHOD_PROPERTY_TYPE = 0i32; +pub const emptPropConfidentiality: EAP_METHOD_PROPERTY_TYPE = 4i32; +pub const emptPropCryptoBinding: EAP_METHOD_PROPERTY_TYPE = 13i32; +pub const emptPropDictionaryAttackResistance: EAP_METHOD_PROPERTY_TYPE = 11i32; +pub const emptPropFastReconnect: EAP_METHOD_PROPERTY_TYPE = 12i32; +pub const emptPropFragmentation: EAP_METHOD_PROPERTY_TYPE = 15i32; +pub const emptPropHiddenMethod: EAP_METHOD_PROPERTY_TYPE = 23i32; +pub const emptPropIdentityPrivacy: EAP_METHOD_PROPERTY_TYPE = 26i32; +pub const emptPropIntegrity: EAP_METHOD_PROPERTY_TYPE = 2i32; +pub const emptPropKeyDerivation: EAP_METHOD_PROPERTY_TYPE = 5i32; +pub const emptPropKeyStrength1024: EAP_METHOD_PROPERTY_TYPE = 10i32; +pub const emptPropKeyStrength128: EAP_METHOD_PROPERTY_TYPE = 7i32; +pub const emptPropKeyStrength256: EAP_METHOD_PROPERTY_TYPE = 8i32; +pub const emptPropKeyStrength512: EAP_METHOD_PROPERTY_TYPE = 9i32; +pub const emptPropKeyStrength64: EAP_METHOD_PROPERTY_TYPE = 6i32; +pub const emptPropMachineAuth: EAP_METHOD_PROPERTY_TYPE = 24i32; +pub const emptPropMethodChaining: EAP_METHOD_PROPERTY_TYPE = 27i32; +pub const emptPropMppeEncryption: EAP_METHOD_PROPERTY_TYPE = 19i32; +pub const emptPropMutualAuth: EAP_METHOD_PROPERTY_TYPE = 1i32; +pub const emptPropNap: EAP_METHOD_PROPERTY_TYPE = 17i32; +pub const emptPropReplayProtection: EAP_METHOD_PROPERTY_TYPE = 3i32; +pub const emptPropSessionIndependence: EAP_METHOD_PROPERTY_TYPE = 14i32; +pub const emptPropSharedStateEquivalence: EAP_METHOD_PROPERTY_TYPE = 28i32; +pub const emptPropStandalone: EAP_METHOD_PROPERTY_TYPE = 18i32; +pub const emptPropSupportsConfig: EAP_METHOD_PROPERTY_TYPE = 21i32; +pub const emptPropTunnelMethod: EAP_METHOD_PROPERTY_TYPE = 20i32; +pub const emptPropUserAuth: EAP_METHOD_PROPERTY_TYPE = 25i32; +pub const emptPropVendorSpecific: EAP_METHOD_PROPERTY_TYPE = 255i32; +pub const empvtBool: EAP_METHOD_PROPERTY_VALUE_TYPE = 0i32; +pub const empvtDword: EAP_METHOD_PROPERTY_VALUE_TYPE = 1i32; +pub const empvtString: EAP_METHOD_PROPERTY_VALUE_TYPE = 2i32; +pub const raatARAPChallenge: u32 = 33u32; +pub const raatARAPChallengeResponse: RAS_AUTH_ATTRIBUTE_TYPE = 84i32; +pub const raatARAPFeatures: RAS_AUTH_ATTRIBUTE_TYPE = 71i32; +pub const raatARAPGuestLogon: RAS_AUTH_ATTRIBUTE_TYPE = 8096i32; +pub const raatARAPNewPassword: u32 = 20u32; +pub const raatARAPOldPassword: u32 = 19u32; +pub const raatARAPPassword: RAS_AUTH_ATTRIBUTE_TYPE = 70i32; +pub const raatARAPPasswordChangeReason: u32 = 21u32; +pub const raatARAPSecurity: RAS_AUTH_ATTRIBUTE_TYPE = 73i32; +pub const raatARAPSecurityData: RAS_AUTH_ATTRIBUTE_TYPE = 74i32; +pub const raatARAPZoneAccess: RAS_AUTH_ATTRIBUTE_TYPE = 72i32; +pub const raatAcctAuthentic: RAS_AUTH_ATTRIBUTE_TYPE = 45i32; +pub const raatAcctDelayTime: RAS_AUTH_ATTRIBUTE_TYPE = 41i32; +pub const raatAcctEventTimeStamp: RAS_AUTH_ATTRIBUTE_TYPE = 55i32; +pub const raatAcctInputOctets: RAS_AUTH_ATTRIBUTE_TYPE = 42i32; +pub const raatAcctInputPackets: RAS_AUTH_ATTRIBUTE_TYPE = 47i32; +pub const raatAcctInterimInterval: RAS_AUTH_ATTRIBUTE_TYPE = 85i32; +pub const raatAcctLinkCount: RAS_AUTH_ATTRIBUTE_TYPE = 51i32; +pub const raatAcctMultiSessionId: RAS_AUTH_ATTRIBUTE_TYPE = 50i32; +pub const raatAcctOutputOctets: RAS_AUTH_ATTRIBUTE_TYPE = 43i32; +pub const raatAcctOutputPackets: RAS_AUTH_ATTRIBUTE_TYPE = 48i32; +pub const raatAcctSessionId: RAS_AUTH_ATTRIBUTE_TYPE = 44i32; +pub const raatAcctSessionTime: RAS_AUTH_ATTRIBUTE_TYPE = 46i32; +pub const raatAcctStatusType: RAS_AUTH_ATTRIBUTE_TYPE = 40i32; +pub const raatAcctTerminateCause: RAS_AUTH_ATTRIBUTE_TYPE = 49i32; +pub const raatCallbackId: RAS_AUTH_ATTRIBUTE_TYPE = 20i32; +pub const raatCallbackNumber: RAS_AUTH_ATTRIBUTE_TYPE = 19i32; +pub const raatCalledStationId: RAS_AUTH_ATTRIBUTE_TYPE = 30i32; +pub const raatCallingStationId: RAS_AUTH_ATTRIBUTE_TYPE = 31i32; +pub const raatCertificateOID: RAS_AUTH_ATTRIBUTE_TYPE = 8097i32; +pub const raatCertificateThumbprint: RAS_AUTH_ATTRIBUTE_TYPE = 8250i32; +pub const raatClass: RAS_AUTH_ATTRIBUTE_TYPE = 25i32; +pub const raatConfigurationToken: RAS_AUTH_ATTRIBUTE_TYPE = 78i32; +pub const raatConnectInfo: RAS_AUTH_ATTRIBUTE_TYPE = 77i32; +pub const raatCredentialsChanged: RAS_AUTH_ATTRIBUTE_TYPE = 8103i32; +pub const raatEAPConfiguration: RAS_AUTH_ATTRIBUTE_TYPE = 8098i32; +pub const raatEAPMessage: RAS_AUTH_ATTRIBUTE_TYPE = 79i32; +pub const raatEAPTLV: RAS_AUTH_ATTRIBUTE_TYPE = 8102i32; +pub const raatEMSK: RAS_AUTH_ATTRIBUTE_TYPE = 9003i32; +pub const raatFastRoamedSession: RAS_AUTH_ATTRIBUTE_TYPE = 8100i32; +pub const raatFilterId: RAS_AUTH_ATTRIBUTE_TYPE = 11i32; +pub const raatFramedAppleTalkLink: RAS_AUTH_ATTRIBUTE_TYPE = 37i32; +pub const raatFramedAppleTalkNetwork: RAS_AUTH_ATTRIBUTE_TYPE = 38i32; +pub const raatFramedAppleTalkZone: RAS_AUTH_ATTRIBUTE_TYPE = 39i32; +pub const raatFramedCompression: RAS_AUTH_ATTRIBUTE_TYPE = 13i32; +pub const raatFramedIPAddress: RAS_AUTH_ATTRIBUTE_TYPE = 8i32; +pub const raatFramedIPNetmask: RAS_AUTH_ATTRIBUTE_TYPE = 9i32; +pub const raatFramedIPXNetwork: RAS_AUTH_ATTRIBUTE_TYPE = 23i32; +pub const raatFramedIPv6Pool: RAS_AUTH_ATTRIBUTE_TYPE = 100i32; +pub const raatFramedIPv6Prefix: RAS_AUTH_ATTRIBUTE_TYPE = 97i32; +pub const raatFramedIPv6Route: RAS_AUTH_ATTRIBUTE_TYPE = 99i32; +pub const raatFramedInterfaceId: RAS_AUTH_ATTRIBUTE_TYPE = 96i32; +pub const raatFramedMTU: RAS_AUTH_ATTRIBUTE_TYPE = 12i32; +pub const raatFramedProtocol: RAS_AUTH_ATTRIBUTE_TYPE = 7i32; +pub const raatFramedRoute: RAS_AUTH_ATTRIBUTE_TYPE = 22i32; +pub const raatFramedRouting: RAS_AUTH_ATTRIBUTE_TYPE = 10i32; +pub const raatIdleTimeout: RAS_AUTH_ATTRIBUTE_TYPE = 28i32; +pub const raatInnerEAPTypeId: RAS_AUTH_ATTRIBUTE_TYPE = 8099i32; +pub const raatLoginIPHost: RAS_AUTH_ATTRIBUTE_TYPE = 14i32; +pub const raatLoginIPv6Host: RAS_AUTH_ATTRIBUTE_TYPE = 98i32; +pub const raatLoginLATGroup: RAS_AUTH_ATTRIBUTE_TYPE = 36i32; +pub const raatLoginLATNode: RAS_AUTH_ATTRIBUTE_TYPE = 35i32; +pub const raatLoginLATPort: RAS_AUTH_ATTRIBUTE_TYPE = 63i32; +pub const raatLoginLATService: RAS_AUTH_ATTRIBUTE_TYPE = 34i32; +pub const raatLoginService: RAS_AUTH_ATTRIBUTE_TYPE = 15i32; +pub const raatLoginTCPPort: RAS_AUTH_ATTRIBUTE_TYPE = 16i32; +pub const raatMD5CHAPChallenge: RAS_AUTH_ATTRIBUTE_TYPE = 60i32; +pub const raatMD5CHAPPassword: RAS_AUTH_ATTRIBUTE_TYPE = 3i32; +pub const raatMethodId: RAS_AUTH_ATTRIBUTE_TYPE = 9002i32; +pub const raatMinimum: RAS_AUTH_ATTRIBUTE_TYPE = 0i32; +pub const raatNASIPAddress: RAS_AUTH_ATTRIBUTE_TYPE = 4i32; +pub const raatNASIPv6Address: RAS_AUTH_ATTRIBUTE_TYPE = 95i32; +pub const raatNASIdentifier: RAS_AUTH_ATTRIBUTE_TYPE = 32i32; +pub const raatNASPort: RAS_AUTH_ATTRIBUTE_TYPE = 5i32; +pub const raatNASPortType: RAS_AUTH_ATTRIBUTE_TYPE = 61i32; +pub const raatPEAPEmbeddedEAPTypeId: RAS_AUTH_ATTRIBUTE_TYPE = 8099i32; +pub const raatPEAPFastRoamedSession: RAS_AUTH_ATTRIBUTE_TYPE = 8100i32; +pub const raatPasswordRetry: RAS_AUTH_ATTRIBUTE_TYPE = 75i32; +pub const raatPeerId: RAS_AUTH_ATTRIBUTE_TYPE = 9000i32; +pub const raatPortLimit: RAS_AUTH_ATTRIBUTE_TYPE = 62i32; +pub const raatPrompt: RAS_AUTH_ATTRIBUTE_TYPE = 76i32; +pub const raatProxyState: RAS_AUTH_ATTRIBUTE_TYPE = 33i32; +pub const raatReplyMessage: RAS_AUTH_ATTRIBUTE_TYPE = 18i32; +pub const raatReserved: RAS_AUTH_ATTRIBUTE_TYPE = -1i32; +pub const raatServerId: RAS_AUTH_ATTRIBUTE_TYPE = 9001i32; +pub const raatServiceType: RAS_AUTH_ATTRIBUTE_TYPE = 6i32; +pub const raatSessionId: RAS_AUTH_ATTRIBUTE_TYPE = 9004i32; +pub const raatSessionTimeout: RAS_AUTH_ATTRIBUTE_TYPE = 27i32; +pub const raatSignature: RAS_AUTH_ATTRIBUTE_TYPE = 80i32; +pub const raatState: RAS_AUTH_ATTRIBUTE_TYPE = 24i32; +pub const raatTerminationAction: RAS_AUTH_ATTRIBUTE_TYPE = 29i32; +pub const raatTunnelClientEndpoint: RAS_AUTH_ATTRIBUTE_TYPE = 66i32; +pub const raatTunnelMediumType: RAS_AUTH_ATTRIBUTE_TYPE = 65i32; +pub const raatTunnelServerEndpoint: RAS_AUTH_ATTRIBUTE_TYPE = 67i32; +pub const raatTunnelType: RAS_AUTH_ATTRIBUTE_TYPE = 64i32; +pub const raatUnassigned17: RAS_AUTH_ATTRIBUTE_TYPE = 17i32; +pub const raatUnassigned21: RAS_AUTH_ATTRIBUTE_TYPE = 21i32; +pub const raatUserName: RAS_AUTH_ATTRIBUTE_TYPE = 1i32; +pub const raatUserPassword: RAS_AUTH_ATTRIBUTE_TYPE = 2i32; +pub const raatVendorSpecific: RAS_AUTH_ATTRIBUTE_TYPE = 26i32; +pub type EAPHOST_AUTH_STATUS = i32; +pub type EAP_ATTRIBUTE_TYPE = i32; +pub type EAP_AUTHENTICATOR_SEND_TIMEOUT = i32; +pub type EAP_CONFIG_INPUT_FIELD_TYPE = i32; +pub type EAP_INTERACTIVE_UI_DATA_TYPE = i32; +pub type EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION = i32; +pub type EAP_METHOD_PROPERTY_TYPE = i32; +pub type EAP_METHOD_PROPERTY_VALUE_TYPE = i32; +pub type EapCode = i32; +pub type EapCredentialType = i32; +pub type EapHostPeerAuthParams = i32; +pub type EapHostPeerMethodResultReason = i32; +pub type EapHostPeerResponseAction = i32; +pub type EapPeerMethodResponseAction = i32; +pub type EapPeerMethodResultReason = i32; +pub type ISOLATION_STATE = i32; +pub type PPP_EAP_ACTION = i32; +pub type RAS_AUTH_ATTRIBUTE_TYPE = i32; +#[repr(C)] +pub struct EAPHOST_AUTH_INFO { + pub status: EAPHOST_AUTH_STATUS, + pub dwErrorCode: u32, + pub dwReasonCode: u32, +} +impl ::core::marker::Copy for EAPHOST_AUTH_INFO {} +impl ::core::clone::Clone for EAPHOST_AUTH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAPHOST_IDENTITY_UI_PARAMS { + pub eapMethodType: EAP_METHOD_TYPE, + pub dwFlags: u32, + pub dwSizeofConnectionData: u32, + pub pConnectionData: *mut u8, + pub dwSizeofUserData: u32, + pub pUserData: *mut u8, + pub dwSizeofUserDataOut: u32, + pub pUserDataOut: *mut u8, + pub pwszIdentity: ::windows_sys::core::PWSTR, + pub dwError: u32, + pub pEapError: *mut EAP_ERROR, +} +impl ::core::marker::Copy for EAPHOST_IDENTITY_UI_PARAMS {} +impl ::core::clone::Clone for EAPHOST_IDENTITY_UI_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAPHOST_INTERACTIVE_UI_PARAMS { + pub dwSizeofContextData: u32, + pub pContextData: *mut u8, + pub dwSizeofInteractiveUIData: u32, + pub pInteractiveUIData: *mut u8, + pub dwError: u32, + pub pEapError: *mut EAP_ERROR, +} +impl ::core::marker::Copy for EAPHOST_INTERACTIVE_UI_PARAMS {} +impl ::core::clone::Clone for EAPHOST_INTERACTIVE_UI_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_ATTRIBUTE { + pub eaType: EAP_ATTRIBUTE_TYPE, + pub dwLength: u32, + pub pValue: *mut u8, +} +impl ::core::marker::Copy for EAP_ATTRIBUTE {} +impl ::core::clone::Clone for EAP_ATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_ATTRIBUTES { + pub dwNumberOfAttributes: u32, + pub pAttribs: *mut EAP_ATTRIBUTE, +} +impl ::core::marker::Copy for EAP_ATTRIBUTES {} +impl ::core::clone::Clone for EAP_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_AUTHENTICATOR_METHOD_ROUTINES { + pub dwSizeInBytes: u32, + pub pEapType: *mut EAP_METHOD_TYPE, + pub EapMethodAuthenticatorInitialize: isize, + pub EapMethodAuthenticatorBeginSession: isize, + pub EapMethodAuthenticatorUpdateInnerMethodParams: isize, + pub EapMethodAuthenticatorReceivePacket: isize, + pub EapMethodAuthenticatorSendPacket: isize, + pub EapMethodAuthenticatorGetAttributes: isize, + pub EapMethodAuthenticatorSetAttributes: isize, + pub EapMethodAuthenticatorGetResult: isize, + pub EapMethodAuthenticatorEndSession: isize, + pub EapMethodAuthenticatorShutdown: isize, +} +impl ::core::marker::Copy for EAP_AUTHENTICATOR_METHOD_ROUTINES {} +impl ::core::clone::Clone for EAP_AUTHENTICATOR_METHOD_ROUTINES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_CONFIG_INPUT_FIELD_ARRAY { + pub dwVersion: u32, + pub dwNumberOfFields: u32, + pub pFields: *mut EAP_CONFIG_INPUT_FIELD_DATA, +} +impl ::core::marker::Copy for EAP_CONFIG_INPUT_FIELD_ARRAY {} +impl ::core::clone::Clone for EAP_CONFIG_INPUT_FIELD_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_CONFIG_INPUT_FIELD_DATA { + pub dwSize: u32, + pub Type: EAP_CONFIG_INPUT_FIELD_TYPE, + pub dwFlagProps: u32, + pub pwszLabel: ::windows_sys::core::PWSTR, + pub pwszData: ::windows_sys::core::PWSTR, + pub dwMinDataLength: u32, + pub dwMaxDataLength: u32, +} +impl ::core::marker::Copy for EAP_CONFIG_INPUT_FIELD_DATA {} +impl ::core::clone::Clone for EAP_CONFIG_INPUT_FIELD_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_CRED_EXPIRY_REQ { + pub curCreds: EAP_CONFIG_INPUT_FIELD_ARRAY, + pub newCreds: EAP_CONFIG_INPUT_FIELD_ARRAY, +} +impl ::core::marker::Copy for EAP_CRED_EXPIRY_REQ {} +impl ::core::clone::Clone for EAP_CRED_EXPIRY_REQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_ERROR { + pub dwWinError: u32, + pub r#type: EAP_METHOD_TYPE, + pub dwReasonCode: u32, + pub rootCauseGuid: ::windows_sys::core::GUID, + pub repairGuid: ::windows_sys::core::GUID, + pub helpLinkGuid: ::windows_sys::core::GUID, + pub pRootCauseString: ::windows_sys::core::PWSTR, + pub pRepairString: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for EAP_ERROR {} +impl ::core::clone::Clone for EAP_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_INTERACTIVE_UI_DATA { + pub dwVersion: u32, + pub dwSize: u32, + pub dwDataType: EAP_INTERACTIVE_UI_DATA_TYPE, + pub cbUiData: u32, + pub pbUiData: EAP_UI_DATA_FORMAT, +} +impl ::core::marker::Copy for EAP_INTERACTIVE_UI_DATA {} +impl ::core::clone::Clone for EAP_INTERACTIVE_UI_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EAP_METHOD_AUTHENTICATOR_RESULT { + pub fIsSuccess: super::super::Foundation::BOOL, + pub dwFailureReason: u32, + pub pAuthAttribs: *mut EAP_ATTRIBUTES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EAP_METHOD_AUTHENTICATOR_RESULT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EAP_METHOD_AUTHENTICATOR_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_METHOD_INFO { + pub eaptype: EAP_METHOD_TYPE, + pub pwszAuthorName: ::windows_sys::core::PWSTR, + pub pwszFriendlyName: ::windows_sys::core::PWSTR, + pub eapProperties: u32, + pub pInnerMethodInfo: *mut EAP_METHOD_INFO, +} +impl ::core::marker::Copy for EAP_METHOD_INFO {} +impl ::core::clone::Clone for EAP_METHOD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_METHOD_INFO_ARRAY { + pub dwNumberOfMethods: u32, + pub pEapMethods: *mut EAP_METHOD_INFO, +} +impl ::core::marker::Copy for EAP_METHOD_INFO_ARRAY {} +impl ::core::clone::Clone for EAP_METHOD_INFO_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_METHOD_INFO_ARRAY_EX { + pub dwNumberOfMethods: u32, + pub pEapMethods: *mut EAP_METHOD_INFO_EX, +} +impl ::core::marker::Copy for EAP_METHOD_INFO_ARRAY_EX {} +impl ::core::clone::Clone for EAP_METHOD_INFO_ARRAY_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_METHOD_INFO_EX { + pub eaptype: EAP_METHOD_TYPE, + pub pwszAuthorName: ::windows_sys::core::PWSTR, + pub pwszFriendlyName: ::windows_sys::core::PWSTR, + pub eapProperties: u32, + pub pInnerMethodInfoArray: *mut EAP_METHOD_INFO_ARRAY_EX, +} +impl ::core::marker::Copy for EAP_METHOD_INFO_EX {} +impl ::core::clone::Clone for EAP_METHOD_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EAP_METHOD_PROPERTY { + pub eapMethodPropertyType: EAP_METHOD_PROPERTY_TYPE, + pub eapMethodPropertyValueType: EAP_METHOD_PROPERTY_VALUE_TYPE, + pub eapMethodPropertyValue: EAP_METHOD_PROPERTY_VALUE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EAP_METHOD_PROPERTY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EAP_METHOD_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EAP_METHOD_PROPERTY_ARRAY { + pub dwNumberOfProperties: u32, + pub pMethodProperty: *mut EAP_METHOD_PROPERTY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EAP_METHOD_PROPERTY_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EAP_METHOD_PROPERTY_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union EAP_METHOD_PROPERTY_VALUE { + pub empvBool: EAP_METHOD_PROPERTY_VALUE_BOOL, + pub empvDword: EAP_METHOD_PROPERTY_VALUE_DWORD, + pub empvString: EAP_METHOD_PROPERTY_VALUE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EAP_METHOD_PROPERTY_VALUE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EAP_METHOD_PROPERTY_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EAP_METHOD_PROPERTY_VALUE_BOOL { + pub length: u32, + pub value: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EAP_METHOD_PROPERTY_VALUE_BOOL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EAP_METHOD_PROPERTY_VALUE_BOOL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_METHOD_PROPERTY_VALUE_DWORD { + pub length: u32, + pub value: u32, +} +impl ::core::marker::Copy for EAP_METHOD_PROPERTY_VALUE_DWORD {} +impl ::core::clone::Clone for EAP_METHOD_PROPERTY_VALUE_DWORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_METHOD_PROPERTY_VALUE_STRING { + pub length: u32, + pub value: *mut u8, +} +impl ::core::marker::Copy for EAP_METHOD_PROPERTY_VALUE_STRING {} +impl ::core::clone::Clone for EAP_METHOD_PROPERTY_VALUE_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_METHOD_TYPE { + pub eapType: EAP_TYPE, + pub dwAuthorId: u32, +} +impl ::core::marker::Copy for EAP_METHOD_TYPE {} +impl ::core::clone::Clone for EAP_METHOD_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_PEER_METHOD_ROUTINES { + pub dwVersion: u32, + pub pEapType: *mut EAP_TYPE, + pub EapPeerInitialize: isize, + pub EapPeerGetIdentity: isize, + pub EapPeerBeginSession: isize, + pub EapPeerSetCredentials: isize, + pub EapPeerProcessRequestPacket: isize, + pub EapPeerGetResponsePacket: isize, + pub EapPeerGetResult: isize, + pub EapPeerGetUIContext: isize, + pub EapPeerSetUIContext: isize, + pub EapPeerGetResponseAttributes: isize, + pub EapPeerSetResponseAttributes: isize, + pub EapPeerEndSession: isize, + pub EapPeerShutdown: isize, +} +impl ::core::marker::Copy for EAP_PEER_METHOD_ROUTINES {} +impl ::core::clone::Clone for EAP_PEER_METHOD_ROUTINES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EAP_TYPE { + pub r#type: u8, + pub dwVendorId: u32, + pub dwVendorType: u32, +} +impl ::core::marker::Copy for EAP_TYPE {} +impl ::core::clone::Clone for EAP_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EAP_UI_DATA_FORMAT { + pub credData: *mut EAP_CONFIG_INPUT_FIELD_ARRAY, + pub credExpiryData: *mut EAP_CRED_EXPIRY_REQ, + pub credLogonData: *mut EAP_CONFIG_INPUT_FIELD_ARRAY, +} +impl ::core::marker::Copy for EAP_UI_DATA_FORMAT {} +impl ::core::clone::Clone for EAP_UI_DATA_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EapCertificateCredential { + pub certHash: [u8; 20], + pub password: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for EapCertificateCredential {} +impl ::core::clone::Clone for EapCertificateCredential { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EapCredential { + pub credType: EapCredentialType, + pub credData: EapCredentialTypeData, +} +impl ::core::marker::Copy for EapCredential {} +impl ::core::clone::Clone for EapCredential { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EapCredentialTypeData { + pub username_password: EapUsernamePasswordCredential, + pub certificate: EapCertificateCredential, + pub sim: EapSimCredential, +} +impl ::core::marker::Copy for EapCredentialTypeData {} +impl ::core::clone::Clone for EapCredentialTypeData { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EapHostPeerMethodResult { + pub fIsSuccess: super::super::Foundation::BOOL, + pub dwFailureReasonCode: u32, + pub fSaveConnectionData: super::super::Foundation::BOOL, + pub dwSizeofConnectionData: u32, + pub pConnectionData: *mut u8, + pub fSaveUserData: super::super::Foundation::BOOL, + pub dwSizeofUserData: u32, + pub pUserData: *mut u8, + pub pAttribArray: *mut EAP_ATTRIBUTES, + pub isolationState: ISOLATION_STATE, + pub pEapMethodInfo: *mut EAP_METHOD_INFO, + pub pEapError: *mut EAP_ERROR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EapHostPeerMethodResult {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EapHostPeerMethodResult { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EapPacket { + pub Code: u8, + pub Id: u8, + pub Length: [u8; 2], + pub Data: [u8; 1], +} +impl ::core::marker::Copy for EapPacket {} +impl ::core::clone::Clone for EapPacket { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EapPeerMethodOutput { + pub action: EapPeerMethodResponseAction, + pub fAllowNotifications: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EapPeerMethodOutput {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EapPeerMethodOutput { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct EapPeerMethodResult { + pub fIsSuccess: super::super::Foundation::BOOL, + pub dwFailureReasonCode: u32, + pub fSaveConnectionData: super::super::Foundation::BOOL, + pub dwSizeofConnectionData: u32, + pub pConnectionData: *mut u8, + pub fSaveUserData: super::super::Foundation::BOOL, + pub dwSizeofUserData: u32, + pub pUserData: *mut u8, + pub pAttribArray: *mut EAP_ATTRIBUTES, + pub pEapError: *mut EAP_ERROR, + pub pNgcKerbTicket: *mut NgcTicketContext, + pub fSaveToCredMan: super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for EapPeerMethodResult {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for EapPeerMethodResult { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EapSimCredential { + pub iccID: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for EapSimCredential {} +impl ::core::clone::Clone for EapSimCredential { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EapUsernamePasswordCredential { + pub username: ::windows_sys::core::PWSTR, + pub password: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for EapUsernamePasswordCredential {} +impl ::core::clone::Clone for EapUsernamePasswordCredential { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LEGACY_IDENTITY_UI_PARAMS { + pub eapType: u32, + pub dwFlags: u32, + pub dwSizeofConnectionData: u32, + pub pConnectionData: *mut u8, + pub dwSizeofUserData: u32, + pub pUserData: *mut u8, + pub dwSizeofUserDataOut: u32, + pub pUserDataOut: *mut u8, + pub pwszIdentity: ::windows_sys::core::PWSTR, + pub dwError: u32, +} +impl ::core::marker::Copy for LEGACY_IDENTITY_UI_PARAMS {} +impl ::core::clone::Clone for LEGACY_IDENTITY_UI_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LEGACY_INTERACTIVE_UI_PARAMS { + pub eapType: u32, + pub dwSizeofContextData: u32, + pub pContextData: *mut u8, + pub dwSizeofInteractiveUIData: u32, + pub pInteractiveUIData: *mut u8, + pub dwError: u32, +} +impl ::core::marker::Copy for LEGACY_INTERACTIVE_UI_PARAMS {} +impl ::core::clone::Clone for LEGACY_INTERACTIVE_UI_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct NgcTicketContext { + pub wszTicket: [u16; 45], + pub hKey: super::Cryptography::NCRYPT_KEY_HANDLE, + pub hImpersonateToken: super::super::Foundation::HANDLE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for NgcTicketContext {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for NgcTicketContext { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_EAP_INFO { + pub dwSizeInBytes: u32, + pub dwEapTypeId: u32, + pub RasEapInitialize: isize, + pub RasEapBegin: isize, + pub RasEapEnd: isize, + pub RasEapMakeMessage: isize, +} +impl ::core::marker::Copy for PPP_EAP_INFO {} +impl ::core::clone::Clone for PPP_EAP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PPP_EAP_INPUT { + pub dwSizeInBytes: u32, + pub fFlags: u32, + pub fAuthenticator: super::super::Foundation::BOOL, + pub pwszIdentity: ::windows_sys::core::PWSTR, + pub pwszPassword: ::windows_sys::core::PWSTR, + pub bInitialId: u8, + pub pUserAttributes: *mut RAS_AUTH_ATTRIBUTE, + pub fAuthenticationComplete: super::super::Foundation::BOOL, + pub dwAuthResultCode: u32, + pub hTokenImpersonateUser: super::super::Foundation::HANDLE, + pub fSuccessPacketReceived: super::super::Foundation::BOOL, + pub fDataReceivedFromInteractiveUI: super::super::Foundation::BOOL, + pub pDataFromInteractiveUI: *mut u8, + pub dwSizeOfDataFromInteractiveUI: u32, + pub pConnectionData: *mut u8, + pub dwSizeOfConnectionData: u32, + pub pUserData: *mut u8, + pub dwSizeOfUserData: u32, + pub hReserved: super::super::Foundation::HANDLE, + pub guidConnectionId: ::windows_sys::core::GUID, + pub isVpn: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PPP_EAP_INPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PPP_EAP_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct PPP_EAP_OUTPUT { + pub dwSizeInBytes: u32, + pub Action: PPP_EAP_ACTION, + pub dwAuthResultCode: u32, + pub pUserAttributes: *mut RAS_AUTH_ATTRIBUTE, + pub fInvokeInteractiveUI: super::super::Foundation::BOOL, + pub pUIContextData: *mut u8, + pub dwSizeOfUIContextData: u32, + pub fSaveConnectionData: super::super::Foundation::BOOL, + pub pConnectionData: *mut u8, + pub dwSizeOfConnectionData: u32, + pub fSaveUserData: super::super::Foundation::BOOL, + pub pUserData: *mut u8, + pub dwSizeOfUserData: u32, + pub pNgcKerbTicket: *mut NgcTicketContext, + pub fSaveToCredMan: super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for PPP_EAP_OUTPUT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for PPP_EAP_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPP_EAP_PACKET { + pub Code: u8, + pub Id: u8, + pub Length: [u8; 2], + pub Data: [u8; 1], +} +impl ::core::marker::Copy for PPP_EAP_PACKET {} +impl ::core::clone::Clone for PPP_EAP_PACKET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RAS_AUTH_ATTRIBUTE { + pub raaType: RAS_AUTH_ATTRIBUTE_TYPE, + pub dwLength: u32, + pub Value: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for RAS_AUTH_ATTRIBUTE {} +impl ::core::clone::Clone for RAS_AUTH_ATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +pub type NotificationHandler = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Isolation/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Isolation/mod.rs new file mode 100644 index 000000000..d9994306f --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/Isolation/mod.rs @@ -0,0 +1,38 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateAppContainerProfile(pszappcontainername : ::windows_sys::core::PCWSTR, pszdisplayname : ::windows_sys::core::PCWSTR, pszdescription : ::windows_sys::core::PCWSTR, pcapabilities : *const super:: SID_AND_ATTRIBUTES, dwcapabilitycount : u32, ppsidappcontainersid : *mut super::super::Foundation:: PSID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("userenv.dll" "system" fn DeleteAppContainerProfile(pszappcontainername : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeriveAppContainerSidFromAppContainerName(pszappcontainername : ::windows_sys::core::PCWSTR, ppsidappcontainersid : *mut super::super::Foundation:: PSID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeriveRestrictedAppContainerSidFromAppContainerSidAndRestrictedName(psidappcontainersid : super::super::Foundation:: PSID, pszrestrictedappcontainername : ::windows_sys::core::PCWSTR, ppsidrestrictedappcontainersid : *mut super::super::Foundation:: PSID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("userenv.dll" "system" fn GetAppContainerFolderPath(pszappcontainersid : ::windows_sys::core::PCWSTR, ppszpath : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAppContainerNamedObjectPath(token : super::super::Foundation:: HANDLE, appcontainersid : super::super::Foundation:: PSID, objectpathlength : u32, objectpath : ::windows_sys::core::PWSTR, returnlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn GetAppContainerRegistryLocation(desiredaccess : u32, phappcontainerkey : *mut super::super::System::Registry:: HKEY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("isolatedwindowsenvironmentutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsCrossIsolatedEnvironmentClipboardContent(iscrossisolatedenvironmentclipboardcontent : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-security-isolatedcontainer-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsProcessInIsolatedContainer(isprocessinisolatedcontainer : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("isolatedwindowsenvironmentutils.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsProcessInIsolatedWindowsEnvironment(isprocessinisolatedwindowsenvironment : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-security-isolatedcontainer-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsProcessInWDAGContainer(reserved : *const ::core::ffi::c_void, isprocessinwdagcontainer : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +pub type IIsolatedAppLauncher = *mut ::core::ffi::c_void; +pub const IsolatedAppLauncher: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbc812430_e75e_4fd1_9641_1f9f1e2d9a1f); +pub const WDAG_CLIPBOARD_TAG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CrossIsolatedEnvironmentContent"); +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IsolatedAppLauncherTelemetryParameters { + pub EnableForLaunch: super::super::Foundation::BOOL, + pub CorrelationGUID: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IsolatedAppLauncherTelemetryParameters {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IsolatedAppLauncherTelemetryParameters { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/LicenseProtection/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/LicenseProtection/mod.rs new file mode 100644 index 000000000..ba46d61b3 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/LicenseProtection/mod.rs @@ -0,0 +1,9 @@ +::windows_targets::link!("licenseprotection.dll" "system" fn RegisterLicenseKeyWithExpiration(licensekey : ::windows_sys::core::PCWSTR, validityindays : u32, status : *mut LicenseProtectionStatus) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("licenseprotection.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ValidateLicenseKeyProtection(licensekey : ::windows_sys::core::PCWSTR, notvalidbefore : *mut super::super::Foundation:: FILETIME, notvalidafter : *mut super::super::Foundation:: FILETIME, status : *mut LicenseProtectionStatus) -> ::windows_sys::core::HRESULT); +pub const LicenseKeyAlreadyExists: LicenseProtectionStatus = 4i32; +pub const LicenseKeyCorrupted: LicenseProtectionStatus = 3i32; +pub const LicenseKeyNotFound: LicenseProtectionStatus = 1i32; +pub const LicenseKeyUnprotected: LicenseProtectionStatus = 2i32; +pub const Success: LicenseProtectionStatus = 0i32; +pub type LicenseProtectionStatus = i32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/NetworkAccessProtection/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/NetworkAccessProtection/mod.rs new file mode 100644 index 000000000..2701dc7c3 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/NetworkAccessProtection/mod.rs @@ -0,0 +1,244 @@ +pub const ComponentTypeEnforcementClientRp: u32 = 2u32; +pub const ComponentTypeEnforcementClientSoH: u32 = 1u32; +pub const extendedIsolationStateInfected: ExtendedIsolationState = 2i32; +pub const extendedIsolationStateNoData: ExtendedIsolationState = 0i32; +pub const extendedIsolationStateTransition: ExtendedIsolationState = 1i32; +pub const extendedIsolationStateUnknown: ExtendedIsolationState = 3i32; +pub const failureCategoryClientCommunication: FailureCategory = 3i32; +pub const failureCategoryClientComponent: FailureCategory = 2i32; +pub const failureCategoryCount: u32 = 5u32; +pub const failureCategoryNone: FailureCategory = 0i32; +pub const failureCategoryOther: FailureCategory = 1i32; +pub const failureCategoryServerCommunication: FailureCategory = 5i32; +pub const failureCategoryServerComponent: FailureCategory = 4i32; +pub const fixupStateCouldNotUpdate: FixupState = 2i32; +pub const fixupStateInProgress: FixupState = 1i32; +pub const fixupStateSuccess: FixupState = 0i32; +pub const freshSoHRequest: u32 = 1u32; +pub const isolationStateInProbation: IsolationState = 2i32; +pub const isolationStateNotRestricted: IsolationState = 1i32; +pub const isolationStateRestrictedAccess: IsolationState = 3i32; +pub const maxConnectionCountPerEnforcer: u32 = 20u32; +pub const maxEnforcerCount: u32 = 20u32; +pub const maxNetworkSoHSize: u32 = 4000u32; +pub const maxPrivateDataSize: u32 = 200u32; +pub const maxSoHAttributeCount: u32 = 100u32; +pub const maxSoHAttributeSize: u32 = 4000u32; +pub const maxStringLength: u32 = 1024u32; +pub const maxSystemHealthEntityCount: u32 = 20u32; +pub const minNetworkSoHSize: u32 = 12u32; +pub const napNotifyTypeQuarState: NapNotifyType = 2i32; +pub const napNotifyTypeServiceState: NapNotifyType = 1i32; +pub const napNotifyTypeUnknown: NapNotifyType = 0i32; +pub const percentageNotSupported: u32 = 101u32; +pub const remoteConfigTypeConfigBlob: RemoteConfigurationType = 2i32; +pub const remoteConfigTypeMachine: RemoteConfigurationType = 1i32; +pub const shaFixup: u32 = 1u32; +pub const tracingLevelAdvanced: NapTracingLevel = 2i32; +pub const tracingLevelBasic: NapTracingLevel = 1i32; +pub const tracingLevelDebug: NapTracingLevel = 3i32; +pub const tracingLevelUndefined: NapTracingLevel = 0i32; +pub type ExtendedIsolationState = i32; +pub type FailureCategory = i32; +pub type FixupState = i32; +pub type IsolationState = i32; +pub type NapNotifyType = i32; +pub type NapTracingLevel = i32; +pub type RemoteConfigurationType = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CorrelationId { + pub connId: ::windows_sys::core::GUID, + pub timeStamp: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CorrelationId {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CorrelationId { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CountedString { + pub length: u16, + pub string: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CountedString {} +impl ::core::clone::Clone for CountedString { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FailureCategoryMapping { + pub mappingCompliance: [super::super::Foundation::BOOL; 5], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FailureCategoryMapping {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FailureCategoryMapping { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FixupInfo { + pub state: FixupState, + pub percentage: u8, + pub resultCodes: ResultCodes, + pub fixupMsgId: u32, +} +impl ::core::marker::Copy for FixupInfo {} +impl ::core::clone::Clone for FixupInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct Ipv4Address { + pub addr: [u8; 4], +} +impl ::core::marker::Copy for Ipv4Address {} +impl ::core::clone::Clone for Ipv4Address { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct Ipv6Address { + pub addr: [u8; 16], +} +impl ::core::marker::Copy for Ipv6Address {} +impl ::core::clone::Clone for Ipv6Address { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IsolationInfo { + pub isolationState: IsolationState, + pub probEndTime: super::super::Foundation::FILETIME, + pub failureUrl: CountedString, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IsolationInfo {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IsolationInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IsolationInfoEx { + pub isolationState: IsolationState, + pub extendedIsolationState: ExtendedIsolationState, + pub probEndTime: super::super::Foundation::FILETIME, + pub failureUrl: CountedString, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IsolationInfoEx {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IsolationInfoEx { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NapComponentRegistrationInfo { + pub id: u32, + pub friendlyName: CountedString, + pub description: CountedString, + pub version: CountedString, + pub vendorName: CountedString, + pub infoClsid: ::windows_sys::core::GUID, + pub configClsid: ::windows_sys::core::GUID, + pub registrationDate: super::super::Foundation::FILETIME, + pub componentType: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NapComponentRegistrationInfo {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NapComponentRegistrationInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NetworkSoH { + pub size: u16, + pub data: *mut u8, +} +impl ::core::marker::Copy for NetworkSoH {} +impl ::core::clone::Clone for NetworkSoH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PrivateData { + pub size: u16, + pub data: *mut u8, +} +impl ::core::marker::Copy for PrivateData {} +impl ::core::clone::Clone for PrivateData { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ResultCodes { + pub count: u16, + pub results: *mut ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for ResultCodes {} +impl ::core::clone::Clone for ResultCodes { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SoH { + pub count: u16, + pub attributes: *mut SoHAttribute, +} +impl ::core::marker::Copy for SoH {} +impl ::core::clone::Clone for SoH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SoHAttribute { + pub r#type: u16, + pub size: u16, + pub value: *mut u8, +} +impl ::core::marker::Copy for SoHAttribute {} +impl ::core::clone::Clone for SoHAttribute { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SystemHealthAgentState { + pub id: u32, + pub shaResultCodes: ResultCodes, + pub failureCategory: FailureCategory, + pub fixupInfo: FixupInfo, +} +impl ::core::marker::Copy for SystemHealthAgentState {} +impl ::core::clone::Clone for SystemHealthAgentState { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/WinTrust/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/WinTrust/mod.rs new file mode 100644 index 000000000..175a03715 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/WinTrust/mod.rs @@ -0,0 +1,1284 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenPersonalTrustDBDialog(hwndparent : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenPersonalTrustDBDialogEx(hwndparent : super::super::Foundation:: HWND, dwflags : u32, pvreserved : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn WTHelperCertCheckValidSignature(pprovdata : *mut CRYPT_PROVIDER_DATA) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn WTHelperCertIsSelfSigned(dwencoding : u32, pcert : *mut super::Cryptography:: CERT_INFO) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn WTHelperGetProvCertFromChain(psgnr : *mut CRYPT_PROVIDER_SGNR, idxcert : u32) -> *mut CRYPT_PROVIDER_CERT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn WTHelperGetProvPrivateDataFromChain(pprovdata : *mut CRYPT_PROVIDER_DATA, pgproviderid : *mut ::windows_sys::core::GUID) -> *mut CRYPT_PROVIDER_PRIVDATA); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn WTHelperGetProvSignerFromChain(pprovdata : *mut CRYPT_PROVIDER_DATA, idxsigner : u32, fcountersigner : super::super::Foundation:: BOOL, idxcountersigner : u32) -> *mut CRYPT_PROVIDER_SGNR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn WTHelperProvDataFromStateData(hstatedata : super::super::Foundation:: HANDLE) -> *mut CRYPT_PROVIDER_DATA); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinVerifyTrust(hwnd : super::super::Foundation:: HWND, pgactionid : *mut ::windows_sys::core::GUID, pwvtdata : *mut ::core::ffi::c_void) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn WinVerifyTrustEx(hwnd : super::super::Foundation:: HWND, pgactionid : *mut ::windows_sys::core::GUID, pwintrustdata : *mut WINTRUST_DATA) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WintrustAddActionID(pgactionid : *const ::windows_sys::core::GUID, fdwflags : u32, psprovinfo : *const CRYPT_REGISTER_ACTIONID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WintrustAddDefaultForUsage(pszusageoid : ::windows_sys::core::PCSTR, psdefusage : *const CRYPT_PROVIDER_REGDEFUSAGE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WintrustGetDefaultForUsage(dwaction : WINTRUST_GET_DEFAULT_FOR_USAGE_ACTION, pszusageoid : ::windows_sys::core::PCSTR, psusage : *mut CRYPT_PROVIDER_DEFUSAGE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wintrust.dll" "system" fn WintrustGetRegPolicyFlags(pdwpolicyflags : *mut WINTRUST_POLICY_FLAGS) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] fn WintrustLoadFunctionPointers(pgactionid : *mut ::windows_sys::core::GUID, ppfns : *mut CRYPT_PROVIDER_FUNCTIONS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WintrustRemoveActionID(pgactionid : *const ::windows_sys::core::GUID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WintrustSetDefaultIncludePEPageHashes(fincludepepagehashes : super::super::Foundation:: BOOL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wintrust.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WintrustSetRegPolicyFlags(dwpolicyflags : WINTRUST_POLICY_FLAGS) -> super::super::Foundation:: BOOL); +pub const CAT_MEMBERINFO2_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.12.2.3"); +pub const CAT_MEMBERINFO2_STRUCT: ::windows_sys::core::PCSTR = 2223i32 as _; +pub const CAT_MEMBERINFO_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.12.2.2"); +pub const CAT_MEMBERINFO_STRUCT: ::windows_sys::core::PCSTR = 2222i32 as _; +pub const CAT_NAMEVALUE_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.12.2.1"); +pub const CAT_NAMEVALUE_STRUCT: ::windows_sys::core::PCSTR = 2221i32 as _; +pub const CCPI_RESULT_ALLOW: u32 = 1u32; +pub const CCPI_RESULT_AUDIT: u32 = 3u32; +pub const CCPI_RESULT_DENY: u32 = 2u32; +pub const CERT_CONFIDENCE_AUTHIDEXT: u32 = 65536u32; +pub const CERT_CONFIDENCE_HIGHEST: u32 = 286330880u32; +pub const CERT_CONFIDENCE_HYGIENE: u32 = 4096u32; +pub const CERT_CONFIDENCE_SIG: u32 = 268435456u32; +pub const CERT_CONFIDENCE_TIME: u32 = 16777216u32; +pub const CERT_CONFIDENCE_TIMENEST: u32 = 1048576u32; +pub const CONFIG_CI_ACTION_VERIFY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6078065b_8f22_4b13_bd9b_5b762776f386); +pub const CPD_CHOICE_SIP: u32 = 1u32; +pub const CPD_RETURN_LOWER_QUALITY_CHAINS: u32 = 1048576u32; +pub const CPD_REVOCATION_CHECK_CHAIN: u32 = 262144u32; +pub const CPD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT: u32 = 524288u32; +pub const CPD_REVOCATION_CHECK_END_CERT: u32 = 131072u32; +pub const CPD_REVOCATION_CHECK_NONE: u32 = 65536u32; +pub const CPD_RFC3161v21: u32 = 2097152u32; +pub const CPD_UISTATE_MODE_ALLOW: u32 = 2u32; +pub const CPD_UISTATE_MODE_BLOCK: u32 = 1u32; +pub const CPD_UISTATE_MODE_MASK: u32 = 3u32; +pub const CPD_UISTATE_MODE_PROMPT: u32 = 0u32; +pub const CPD_USE_NT5_CHAIN_FLAG: u32 = 2147483648u32; +pub const DRIVER_ACTION_VERIFY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf750e6c3_38ee_11d1_85e5_00c04fc295ee); +pub const DRIVER_CLEANUPPOLICY_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverCleanupPolicy"); +pub const DRIVER_FINALPOLPROV_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverFinalPolicy"); +pub const DRIVER_INITPROV_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverInitializePolicy"); +pub const DWACTION_ALLOCANDFILL: WINTRUST_GET_DEFAULT_FOR_USAGE_ACTION = 1u32; +pub const DWACTION_FREE: WINTRUST_GET_DEFAULT_FOR_USAGE_ACTION = 2u32; +pub const GENERIC_CHAIN_CERTTRUST_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GenericChainCertificateTrust"); +pub const GENERIC_CHAIN_FINALPOLICY_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GenericChainFinalProv"); +pub const HTTPSPROV_ACTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x573e31f8_aaba_11d0_8ccb_00c04fc295ee); +pub const HTTPS_CERTTRUST_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HTTPSCertificateTrust"); +pub const HTTPS_CHKCERT_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HTTPSCheckCertProv"); +pub const HTTPS_FINALPOLICY_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HTTPSFinalProv"); +pub const INTENT_TO_SEAL_ATTRIBUTE_STRUCT: ::windows_sys::core::PCSTR = 2010i32 as _; +pub const OFFICESIGN_ACTION_VERIFY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5555c2cd_17fb_11d1_85c4_00c04fc295ee); +pub const OFFICE_CLEANUPPOLICY_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OfficeCleanupPolicy"); +pub const OFFICE_INITPROV_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OfficeInitializePolicy"); +pub const OFFICE_POLICY_PROVIDER_DLL_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WINTRUST.DLL"); +pub const SEALING_SIGNATURE_ATTRIBUTE_STRUCT: ::windows_sys::core::PCSTR = 2011i32 as _; +pub const SEALING_TIMESTAMP_ATTRIBUTE_STRUCT: ::windows_sys::core::PCSTR = 2012i32 as _; +pub const SGNR_TYPE_TIMESTAMP: u32 = 16u32; +pub const SPC_CAB_DATA_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.25"); +pub const SPC_CAB_DATA_STRUCT: ::windows_sys::core::PCSTR = 2008i32 as _; +pub const SPC_CERT_EXTENSIONS_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.14"); +pub const SPC_COMMERCIAL_SP_KEY_PURPOSE_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.22"); +pub const SPC_COMMON_NAME_OBJID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("2.5.4.3"); +pub const SPC_ENCRYPTED_DIGEST_RETRY_COUNT_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.6.2"); +pub const SPC_FILE_LINK_CHOICE: u32 = 3u32; +pub const SPC_FINANCIAL_CRITERIA_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.27"); +pub const SPC_FINANCIAL_CRITERIA_STRUCT: ::windows_sys::core::PCSTR = 2002i32 as _; +pub const SPC_GLUE_RDN_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.25"); +pub const SPC_INDIRECT_DATA_CONTENT_STRUCT: ::windows_sys::core::PCSTR = 2003i32 as _; +pub const SPC_INDIRECT_DATA_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.4"); +pub const SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.21"); +pub const SPC_JAVA_CLASS_DATA_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.20"); +pub const SPC_JAVA_CLASS_DATA_STRUCT: ::windows_sys::core::PCSTR = 2009i32 as _; +pub const SPC_LINK_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.28"); +pub const SPC_LINK_STRUCT: ::windows_sys::core::PCSTR = 2005i32 as _; +pub const SPC_MINIMAL_CRITERIA_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.26"); +pub const SPC_MINIMAL_CRITERIA_STRUCT: ::windows_sys::core::PCSTR = 2001i32 as _; +pub const SPC_MONIKER_LINK_CHOICE: u32 = 2u32; +pub const SPC_NATURAL_AUTH_PLUGIN_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.96.1.1"); +pub const SPC_PE_IMAGE_DATA_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.15"); +pub const SPC_PE_IMAGE_DATA_STRUCT: ::windows_sys::core::PCSTR = 2004i32 as _; +pub const SPC_PE_IMAGE_PAGE_HASHES_V1_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.3.1"); +pub const SPC_PE_IMAGE_PAGE_HASHES_V2_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.3.2"); +pub const SPC_RAW_FILE_DATA_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.18"); +pub const SPC_RELAXED_PE_MARKER_CHECK_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.6.1"); +pub const SPC_SIGINFO_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.30"); +pub const SPC_SIGINFO_STRUCT: ::windows_sys::core::PCSTR = 2130i32 as _; +pub const SPC_SP_AGENCY_INFO_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.10"); +pub const SPC_SP_AGENCY_INFO_STRUCT: ::windows_sys::core::PCSTR = 2000i32 as _; +pub const SPC_SP_OPUS_INFO_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.12"); +pub const SPC_SP_OPUS_INFO_STRUCT: ::windows_sys::core::PCSTR = 2007i32 as _; +pub const SPC_STATEMENT_TYPE_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.11"); +pub const SPC_STATEMENT_TYPE_STRUCT: ::windows_sys::core::PCSTR = 2006i32 as _; +pub const SPC_STRUCTURED_STORAGE_DATA_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.1.19"); +pub const SPC_TIME_STAMP_REQUEST_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.3.2.1"); +pub const SPC_URL_LINK_CHOICE: u32 = 1u32; +pub const SPC_UUID_LENGTH: u32 = 16u32; +pub const SPC_WINDOWS_HELLO_COMPATIBILITY_OBJID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.10.41.1"); +pub const SP_CHKCERT_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SoftpubCheckCert"); +pub const SP_CLEANUPPOLICY_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SoftpubCleanup"); +pub const SP_FINALPOLICY_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SoftpubAuthenticode"); +pub const SP_GENERIC_CERT_INIT_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SoftpubDefCertInit"); +pub const SP_INIT_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SoftpubInitialize"); +pub const SP_OBJTRUST_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SoftpubLoadMessage"); +pub const SP_POLICY_PROVIDER_DLL_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WINTRUST.DLL"); +pub const SP_SIGTRUST_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SoftpubLoadSignature"); +pub const SP_TESTDUMPPOLICY_FUNCTION_TEST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SoftpubDumpStructure"); +pub const TRUSTERROR_MAX_STEPS: u32 = 38u32; +pub const TRUSTERROR_STEP_CATALOGFILE: u32 = 6u32; +pub const TRUSTERROR_STEP_CERTSTORE: u32 = 7u32; +pub const TRUSTERROR_STEP_FILEIO: u32 = 2u32; +pub const TRUSTERROR_STEP_FINAL_CERTCHKPROV: u32 = 35u32; +pub const TRUSTERROR_STEP_FINAL_CERTPROV: u32 = 34u32; +pub const TRUSTERROR_STEP_FINAL_INITPROV: u32 = 31u32; +pub const TRUSTERROR_STEP_FINAL_OBJPROV: u32 = 32u32; +pub const TRUSTERROR_STEP_FINAL_POLICYPROV: u32 = 36u32; +pub const TRUSTERROR_STEP_FINAL_SIGPROV: u32 = 33u32; +pub const TRUSTERROR_STEP_FINAL_UIPROV: u32 = 37u32; +pub const TRUSTERROR_STEP_FINAL_WVTINIT: u32 = 30u32; +pub const TRUSTERROR_STEP_MESSAGE: u32 = 8u32; +pub const TRUSTERROR_STEP_MSG_CERTCHAIN: u32 = 15u32; +pub const TRUSTERROR_STEP_MSG_COUNTERSIGCERT: u32 = 17u32; +pub const TRUSTERROR_STEP_MSG_COUNTERSIGINFO: u32 = 16u32; +pub const TRUSTERROR_STEP_MSG_INNERCNT: u32 = 11u32; +pub const TRUSTERROR_STEP_MSG_INNERCNTTYPE: u32 = 10u32; +pub const TRUSTERROR_STEP_MSG_SIGNERCERT: u32 = 14u32; +pub const TRUSTERROR_STEP_MSG_SIGNERCOUNT: u32 = 9u32; +pub const TRUSTERROR_STEP_MSG_SIGNERINFO: u32 = 13u32; +pub const TRUSTERROR_STEP_MSG_STORE: u32 = 12u32; +pub const TRUSTERROR_STEP_SIP: u32 = 3u32; +pub const TRUSTERROR_STEP_SIPSUBJINFO: u32 = 5u32; +pub const TRUSTERROR_STEP_VERIFY_MSGHASH: u32 = 18u32; +pub const TRUSTERROR_STEP_VERIFY_MSGINDIRECTDATA: u32 = 19u32; +pub const TRUSTERROR_STEP_WVTPARAMS: u32 = 0u32; +pub const WINTRUST_ACTION_GENERIC_CERT_VERIFY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x189a3842_3041_11d1_85e1_00c04fc295ee); +pub const WINTRUST_ACTION_GENERIC_CHAIN_VERIFY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfc451c16_ac75_11d1_b4b8_00c04fb66ea0); +pub const WINTRUST_ACTION_GENERIC_VERIFY_V2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00aac56b_cd44_11d0_8cc2_00c04fc295ee); +pub const WINTRUST_ACTION_TRUSTPROVIDER_TEST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x573e31f8_ddba_11d0_8ccb_00c04fc295ee); +pub const WINTRUST_CONFIG_REGPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Cryptography\\Wintrust\\Config"); +pub const WINTRUST_MAX_HASH_BYTES_TO_MAP_DEFAULT: u32 = 1048576u32; +pub const WINTRUST_MAX_HASH_BYTES_TO_MAP_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxHashBytesToMap"); +pub const WINTRUST_MAX_HEADER_BYTES_TO_MAP_DEFAULT: u32 = 10485760u32; +pub const WINTRUST_MAX_HEADER_BYTES_TO_MAP_VALUE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxHeaderBytesToMap"); +pub const WIN_CERT_REVISION_1_0: u32 = 256u32; +pub const WIN_CERT_REVISION_2_0: u32 = 512u32; +pub const WIN_CERT_TYPE_PKCS_SIGNED_DATA: u32 = 2u32; +pub const WIN_CERT_TYPE_RESERVED_1: u32 = 3u32; +pub const WIN_CERT_TYPE_TS_STACK_SIGNED: u32 = 4u32; +pub const WIN_CERT_TYPE_X509: u32 = 1u32; +pub const WIN_SPUB_ACTION_NT_ACTIVATE_IMAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8bc96b00_8da1_11cf_8736_00aa00a485eb); +pub const WIN_SPUB_ACTION_PUBLISHED_SOFTWARE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x64b9d180_8da2_11cf_8736_00aa00a485eb); +pub const WIN_SPUB_ACTION_TRUSTED_PUBLISHER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66426730_8da1_11cf_8736_00aa00a485eb); +pub const WIN_TRUST_SUBJTYPE_CABINET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd17c5374_a392_11cf_9df5_00aa00c184e0); +pub const WIN_TRUST_SUBJTYPE_CABINETEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f458114_c2f1_11cf_8a69_00aa006c3706); +pub const WIN_TRUST_SUBJTYPE_JAVA_CLASS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x08ad3990_8da1_11cf_8736_00aa00a485eb); +pub const WIN_TRUST_SUBJTYPE_JAVA_CLASSEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f458113_c2f1_11cf_8a69_00aa006c3706); +pub const WIN_TRUST_SUBJTYPE_OLE_STORAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc257e740_8da0_11cf_8736_00aa00a485eb); +pub const WIN_TRUST_SUBJTYPE_PE_IMAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43c9a1e0_8da0_11cf_8736_00aa00a485eb); +pub const WIN_TRUST_SUBJTYPE_PE_IMAGEEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f458111_c2f1_11cf_8a69_00aa006c3706); +pub const WIN_TRUST_SUBJTYPE_RAW_FILE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x959dc450_8d9e_11cf_8736_00aa00a485eb); +pub const WIN_TRUST_SUBJTYPE_RAW_FILEEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f458110_c2f1_11cf_8a69_00aa006c3706); +pub const WSS_CERTTRUST_SUPPORT: u32 = 4u32; +pub const WSS_GET_SECONDARY_SIG_COUNT: WINTRUST_SIGNATURE_SETTINGS_FLAGS = 2u32; +pub const WSS_INPUT_FLAG_MASK: u32 = 7u32; +pub const WSS_OBJTRUST_SUPPORT: u32 = 1u32; +pub const WSS_OUTPUT_FLAG_MASK: u32 = 3758096384u32; +pub const WSS_OUT_FILE_SUPPORTS_SEAL: u32 = 536870912u32; +pub const WSS_OUT_HAS_SEALING_INTENT: u32 = 1073741824u32; +pub const WSS_OUT_SEALING_STATUS_VERIFIED: u32 = 2147483648u32; +pub const WSS_SIGTRUST_SUPPORT: u32 = 2u32; +pub const WSS_VERIFY_SEALING: u32 = 4u32; +pub const WSS_VERIFY_SPECIFIC: WINTRUST_SIGNATURE_SETTINGS_FLAGS = 1u32; +pub const WTCI_DONT_OPEN_STORES: u32 = 1u32; +pub const WTCI_OPEN_ONLY_ROOT: u32 = 2u32; +pub const WTCI_USE_LOCAL_MACHINE: u32 = 4u32; +pub const WTD_CACHE_ONLY_URL_RETRIEVAL: WINTRUST_DATA_PROVIDER_FLAGS = 4096u32; +pub const WTD_CHOICE_BLOB: WINTRUST_DATA_UNION_CHOICE = 3u32; +pub const WTD_CHOICE_CATALOG: WINTRUST_DATA_UNION_CHOICE = 2u32; +pub const WTD_CHOICE_CERT: WINTRUST_DATA_UNION_CHOICE = 5u32; +pub const WTD_CHOICE_FILE: WINTRUST_DATA_UNION_CHOICE = 1u32; +pub const WTD_CHOICE_SIGNER: WINTRUST_DATA_UNION_CHOICE = 4u32; +pub const WTD_CODE_INTEGRITY_DRIVER_MODE: u32 = 32768u32; +pub const WTD_DISABLE_MD2_MD4: WINTRUST_DATA_PROVIDER_FLAGS = 8192u32; +pub const WTD_HASH_ONLY_FLAG: WINTRUST_DATA_PROVIDER_FLAGS = 512u32; +pub const WTD_LIFETIME_SIGNING_FLAG: WINTRUST_DATA_PROVIDER_FLAGS = 2048u32; +pub const WTD_MOTW: WINTRUST_DATA_PROVIDER_FLAGS = 16384u32; +pub const WTD_NO_IE4_CHAIN_FLAG: WINTRUST_DATA_PROVIDER_FLAGS = 2u32; +pub const WTD_NO_POLICY_USAGE_FLAG: WINTRUST_DATA_PROVIDER_FLAGS = 4u32; +pub const WTD_PROV_FLAGS_MASK: u32 = 65535u32; +pub const WTD_REVOCATION_CHECK_CHAIN: WINTRUST_DATA_PROVIDER_FLAGS = 64u32; +pub const WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT: WINTRUST_DATA_PROVIDER_FLAGS = 128u32; +pub const WTD_REVOCATION_CHECK_END_CERT: WINTRUST_DATA_PROVIDER_FLAGS = 32u32; +pub const WTD_REVOCATION_CHECK_NONE: WINTRUST_DATA_PROVIDER_FLAGS = 16u32; +pub const WTD_REVOKE_NONE: WINTRUST_DATA_REVOCATION_CHECKS = 0u32; +pub const WTD_REVOKE_WHOLECHAIN: WINTRUST_DATA_REVOCATION_CHECKS = 1u32; +pub const WTD_SAFER_FLAG: WINTRUST_DATA_PROVIDER_FLAGS = 256u32; +pub const WTD_STATEACTION_AUTO_CACHE: WINTRUST_DATA_STATE_ACTION = 3u32; +pub const WTD_STATEACTION_AUTO_CACHE_FLUSH: WINTRUST_DATA_STATE_ACTION = 4u32; +pub const WTD_STATEACTION_CLOSE: WINTRUST_DATA_STATE_ACTION = 2u32; +pub const WTD_STATEACTION_IGNORE: WINTRUST_DATA_STATE_ACTION = 0u32; +pub const WTD_STATEACTION_VERIFY: WINTRUST_DATA_STATE_ACTION = 1u32; +pub const WTD_UICONTEXT_EXECUTE: WINTRUST_DATA_UICONTEXT = 0u32; +pub const WTD_UICONTEXT_INSTALL: WINTRUST_DATA_UICONTEXT = 1u32; +pub const WTD_UI_ALL: WINTRUST_DATA_UICHOICE = 1u32; +pub const WTD_UI_NOBAD: WINTRUST_DATA_UICHOICE = 3u32; +pub const WTD_UI_NOGOOD: WINTRUST_DATA_UICHOICE = 4u32; +pub const WTD_UI_NONE: WINTRUST_DATA_UICHOICE = 2u32; +pub const WTD_USE_DEFAULT_OSVER_CHECK: WINTRUST_DATA_PROVIDER_FLAGS = 1024u32; +pub const WTD_USE_IE4_TRUST_FLAG: WINTRUST_DATA_PROVIDER_FLAGS = 1u32; +pub const WTPF_ALLOWONLYPERTRUST: WINTRUST_POLICY_FLAGS = 262144u32; +pub const WTPF_IGNOREEXPIRATION: WINTRUST_POLICY_FLAGS = 256u32; +pub const WTPF_IGNOREREVOCATIONONTS: WINTRUST_POLICY_FLAGS = 131072u32; +pub const WTPF_IGNOREREVOKATION: WINTRUST_POLICY_FLAGS = 512u32; +pub const WTPF_OFFLINEOKNBU_COM: WINTRUST_POLICY_FLAGS = 8192u32; +pub const WTPF_OFFLINEOKNBU_IND: WINTRUST_POLICY_FLAGS = 4096u32; +pub const WTPF_OFFLINEOK_COM: WINTRUST_POLICY_FLAGS = 2048u32; +pub const WTPF_OFFLINEOK_IND: WINTRUST_POLICY_FLAGS = 1024u32; +pub const WTPF_TESTCANBEVALID: WINTRUST_POLICY_FLAGS = 128u32; +pub const WTPF_TRUSTTEST: WINTRUST_POLICY_FLAGS = 32u32; +pub const WTPF_VERIFY_V1_OFF: WINTRUST_POLICY_FLAGS = 65536u32; +pub const WT_ADD_ACTION_ID_RET_RESULT_FLAG: u32 = 1u32; +pub const WT_CURRENT_VERSION: u32 = 512u32; +pub const WT_PROVIDER_CERTTRUST_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WintrustCertificateTrust"); +pub const WT_PROVIDER_DLL_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WINTRUST.DLL"); +pub const WT_TRUSTDBDIALOG_NO_UI_FLAG: u32 = 1u32; +pub const WT_TRUSTDBDIALOG_ONLY_PUB_TAB_FLAG: u32 = 2u32; +pub const WT_TRUSTDBDIALOG_WRITE_IEAK_STORE_FLAG: u32 = 512u32; +pub const WT_TRUSTDBDIALOG_WRITE_LEGACY_REG_FLAG: u32 = 256u32; +pub const szOID_ENHANCED_HASH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.5.1"); +pub const szOID_INTENT_TO_SEAL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.4.2"); +pub const szOID_NESTED_SIGNATURE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.4.1"); +pub const szOID_PKCS_9_SEQUENCE_NUMBER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.2.840.113549.1.9.25.4"); +pub const szOID_SEALING_SIGNATURE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.4.3"); +pub const szOID_SEALING_TIMESTAMP: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.4.4"); +pub const szOID_TRUSTED_CLIENT_AUTH_CA_LIST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.2.2"); +pub const szOID_TRUSTED_CODESIGNING_CA_LIST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.2.1"); +pub const szOID_TRUSTED_SERVER_AUTH_CA_LIST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.3.6.1.4.1.311.2.2.3"); +pub type WINTRUST_DATA_PROVIDER_FLAGS = u32; +pub type WINTRUST_DATA_REVOCATION_CHECKS = u32; +pub type WINTRUST_DATA_STATE_ACTION = u32; +pub type WINTRUST_DATA_UICHOICE = u32; +pub type WINTRUST_DATA_UICONTEXT = u32; +pub type WINTRUST_DATA_UNION_CHOICE = u32; +pub type WINTRUST_GET_DEFAULT_FOR_USAGE_ACTION = u32; +pub type WINTRUST_POLICY_FLAGS = u32; +pub type WINTRUST_SIGNATURE_SETTINGS_FLAGS = u32; +#[repr(C)] +pub struct CAT_MEMBERINFO { + pub pwszSubjGuid: ::windows_sys::core::PWSTR, + pub dwCertVersion: u32, +} +impl ::core::marker::Copy for CAT_MEMBERINFO {} +impl ::core::clone::Clone for CAT_MEMBERINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CAT_MEMBERINFO2 { + pub SubjectGuid: ::windows_sys::core::GUID, + pub dwCertVersion: u32, +} +impl ::core::marker::Copy for CAT_MEMBERINFO2 {} +impl ::core::clone::Clone for CAT_MEMBERINFO2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct CAT_NAMEVALUE { + pub pwszTag: ::windows_sys::core::PWSTR, + pub fdwFlags: u32, + pub Value: super::Cryptography::CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for CAT_NAMEVALUE {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for CAT_NAMEVALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct CONFIG_CI_PROV_INFO { + pub cbSize: u32, + pub dwPolicies: u32, + pub pPolicies: *mut super::Cryptography::CRYPT_INTEGER_BLOB, + pub result: CONFIG_CI_PROV_INFO_RESULT, + pub dwScenario: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for CONFIG_CI_PROV_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for CONFIG_CI_PROV_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CONFIG_CI_PROV_INFO_RESULT { + pub hr: ::windows_sys::core::HRESULT, + pub dwResult: u32, + pub dwPolicyIndex: u32, + pub fIsExplicitDeny: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CONFIG_CI_PROV_INFO_RESULT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CONFIG_CI_PROV_INFO_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct CRYPT_PROVIDER_CERT { + pub cbStruct: u32, + pub pCert: *const super::Cryptography::CERT_CONTEXT, + pub fCommercial: super::super::Foundation::BOOL, + pub fTrustedRoot: super::super::Foundation::BOOL, + pub fSelfSigned: super::super::Foundation::BOOL, + pub fTestCert: super::super::Foundation::BOOL, + pub dwRevokedReason: u32, + pub dwConfidence: u32, + pub dwError: u32, + pub pTrustListContext: *mut super::Cryptography::CTL_CONTEXT, + pub fTrustListSignerCert: super::super::Foundation::BOOL, + pub pCtlContext: *mut super::Cryptography::CTL_CONTEXT, + pub dwCtlError: u32, + pub fIsCyclic: super::super::Foundation::BOOL, + pub pChainElement: *mut super::Cryptography::CERT_CHAIN_ELEMENT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for CRYPT_PROVIDER_CERT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for CRYPT_PROVIDER_CERT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub struct CRYPT_PROVIDER_DATA { + pub cbStruct: u32, + pub pWintrustData: *mut WINTRUST_DATA, + pub fOpenedFile: super::super::Foundation::BOOL, + pub hWndParent: super::super::Foundation::HWND, + pub pgActionID: *mut ::windows_sys::core::GUID, + pub hProv: usize, + pub dwError: u32, + pub dwRegSecuritySettings: u32, + pub dwRegPolicySettings: u32, + pub psPfns: *mut CRYPT_PROVIDER_FUNCTIONS, + pub cdwTrustStepErrors: u32, + pub padwTrustStepErrors: *mut u32, + pub chStores: u32, + pub pahStores: *mut super::Cryptography::HCERTSTORE, + pub dwEncoding: u32, + pub hMsg: *mut ::core::ffi::c_void, + pub csSigners: u32, + pub pasSigners: *mut CRYPT_PROVIDER_SGNR, + pub csProvPrivData: u32, + pub pasProvPrivData: *mut CRYPT_PROVIDER_PRIVDATA, + pub dwSubjectChoice: u32, + pub Anonymous: CRYPT_PROVIDER_DATA_0, + pub pszUsageOID: ::windows_sys::core::PSTR, + pub fRecallWithState: super::super::Foundation::BOOL, + pub sftSystemTime: super::super::Foundation::FILETIME, + pub pszCTLSignerUsageOID: ::windows_sys::core::PSTR, + pub dwProvFlags: u32, + pub dwFinalError: u32, + pub pRequestUsage: *mut super::Cryptography::CERT_USAGE_MATCH, + pub dwTrustPubSettings: u32, + pub dwUIStateFlags: u32, + pub pSigState: *mut CRYPT_PROVIDER_SIGSTATE, + pub pSigSettings: *mut WINTRUST_SIGNATURE_SETTINGS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::marker::Copy for CRYPT_PROVIDER_DATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::clone::Clone for CRYPT_PROVIDER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub union CRYPT_PROVIDER_DATA_0 { + pub pPDSip: *mut PROVDATA_SIP, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::marker::Copy for CRYPT_PROVIDER_DATA_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::clone::Clone for CRYPT_PROVIDER_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PROVIDER_DEFUSAGE { + pub cbStruct: u32, + pub gActionID: ::windows_sys::core::GUID, + pub pDefPolicyCallbackData: *mut ::core::ffi::c_void, + pub pDefSIPClientData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CRYPT_PROVIDER_DEFUSAGE {} +impl ::core::clone::Clone for CRYPT_PROVIDER_DEFUSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub struct CRYPT_PROVIDER_FUNCTIONS { + pub cbStruct: u32, + pub pfnAlloc: PFN_CPD_MEM_ALLOC, + pub pfnFree: PFN_CPD_MEM_FREE, + pub pfnAddStore2Chain: PFN_CPD_ADD_STORE, + pub pfnAddSgnr2Chain: PFN_CPD_ADD_SGNR, + pub pfnAddCert2Chain: PFN_CPD_ADD_CERT, + pub pfnAddPrivData2Chain: PFN_CPD_ADD_PRIVDATA, + pub pfnInitialize: PFN_PROVIDER_INIT_CALL, + pub pfnObjectTrust: PFN_PROVIDER_OBJTRUST_CALL, + pub pfnSignatureTrust: PFN_PROVIDER_SIGTRUST_CALL, + pub pfnCertificateTrust: PFN_PROVIDER_CERTTRUST_CALL, + pub pfnFinalPolicy: PFN_PROVIDER_FINALPOLICY_CALL, + pub pfnCertCheckPolicy: PFN_PROVIDER_CERTCHKPOLICY_CALL, + pub pfnTestFinalPolicy: PFN_PROVIDER_TESTFINALPOLICY_CALL, + pub psUIpfns: *mut CRYPT_PROVUI_FUNCS, + pub pfnCleanupPolicy: PFN_PROVIDER_CLEANUP_CALL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::marker::Copy for CRYPT_PROVIDER_FUNCTIONS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::clone::Clone for CRYPT_PROVIDER_FUNCTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PROVIDER_PRIVDATA { + pub cbStruct: u32, + pub gProviderID: ::windows_sys::core::GUID, + pub cbProvData: u32, + pub pvProvData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CRYPT_PROVIDER_PRIVDATA {} +impl ::core::clone::Clone for CRYPT_PROVIDER_PRIVDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PROVIDER_REGDEFUSAGE { + pub cbStruct: u32, + pub pgActionID: *mut ::windows_sys::core::GUID, + pub pwszDllName: ::windows_sys::core::PWSTR, + pub pwszLoadCallbackDataFunctionName: ::windows_sys::core::PSTR, + pub pwszFreeCallbackDataFunctionName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for CRYPT_PROVIDER_REGDEFUSAGE {} +impl ::core::clone::Clone for CRYPT_PROVIDER_REGDEFUSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct CRYPT_PROVIDER_SGNR { + pub cbStruct: u32, + pub sftVerifyAsOf: super::super::Foundation::FILETIME, + pub csCertChain: u32, + pub pasCertChain: *mut CRYPT_PROVIDER_CERT, + pub dwSignerType: u32, + pub psSigner: *mut super::Cryptography::CMSG_SIGNER_INFO, + pub dwError: u32, + pub csCounterSigners: u32, + pub pasCounterSigners: *mut CRYPT_PROVIDER_SGNR, + pub pChainContext: *mut super::Cryptography::CERT_CHAIN_CONTEXT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for CRYPT_PROVIDER_SGNR {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for CRYPT_PROVIDER_SGNR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct CRYPT_PROVIDER_SIGSTATE { + pub cbStruct: u32, + pub rhSecondarySigs: *mut *mut ::core::ffi::c_void, + pub hPrimarySig: *mut ::core::ffi::c_void, + pub fFirstAttemptMade: super::super::Foundation::BOOL, + pub fNoMoreSigs: super::super::Foundation::BOOL, + pub cSecondarySigs: u32, + pub dwCurrentIndex: u32, + pub fSupportMultiSig: super::super::Foundation::BOOL, + pub dwCryptoPolicySupport: u32, + pub iAttemptCount: u32, + pub fCheckedSealing: super::super::Foundation::BOOL, + pub pSealingSignature: *mut SEALING_SIGNATURE_ATTRIBUTE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for CRYPT_PROVIDER_SIGSTATE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for CRYPT_PROVIDER_SIGSTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_PROVUI_DATA { + pub cbStruct: u32, + pub dwFinalError: u32, + pub pYesButtonText: ::windows_sys::core::PWSTR, + pub pNoButtonText: ::windows_sys::core::PWSTR, + pub pMoreInfoButtonText: ::windows_sys::core::PWSTR, + pub pAdvancedLinkText: ::windows_sys::core::PWSTR, + pub pCopyActionText: ::windows_sys::core::PWSTR, + pub pCopyActionTextNoTS: ::windows_sys::core::PWSTR, + pub pCopyActionTextNotSigned: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CRYPT_PROVUI_DATA {} +impl ::core::clone::Clone for CRYPT_PROVUI_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub struct CRYPT_PROVUI_FUNCS { + pub cbStruct: u32, + pub psUIData: *mut CRYPT_PROVUI_DATA, + pub pfnOnMoreInfoClick: PFN_PROVUI_CALL, + pub pfnOnMoreInfoClickDefault: PFN_PROVUI_CALL, + pub pfnOnAdvancedClick: PFN_PROVUI_CALL, + pub pfnOnAdvancedClickDefault: PFN_PROVUI_CALL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::marker::Copy for CRYPT_PROVUI_FUNCS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::clone::Clone for CRYPT_PROVUI_FUNCS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_REGISTER_ACTIONID { + pub cbStruct: u32, + pub sInitProvider: CRYPT_TRUST_REG_ENTRY, + pub sObjectProvider: CRYPT_TRUST_REG_ENTRY, + pub sSignatureProvider: CRYPT_TRUST_REG_ENTRY, + pub sCertificateProvider: CRYPT_TRUST_REG_ENTRY, + pub sCertificatePolicyProvider: CRYPT_TRUST_REG_ENTRY, + pub sFinalPolicyProvider: CRYPT_TRUST_REG_ENTRY, + pub sTestPolicyProvider: CRYPT_TRUST_REG_ENTRY, + pub sCleanupProvider: CRYPT_TRUST_REG_ENTRY, +} +impl ::core::marker::Copy for CRYPT_REGISTER_ACTIONID {} +impl ::core::clone::Clone for CRYPT_REGISTER_ACTIONID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CRYPT_TRUST_REG_ENTRY { + pub cbStruct: u32, + pub pwszDLLName: ::windows_sys::core::PWSTR, + pub pwszFunctionName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CRYPT_TRUST_REG_ENTRY {} +impl ::core::clone::Clone for CRYPT_TRUST_REG_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct DRIVER_VER_INFO { + pub cbStruct: u32, + pub dwReserved1: usize, + pub dwReserved2: usize, + pub dwPlatform: u32, + pub dwVersion: u32, + pub wszVersion: [u16; 260], + pub wszSignedBy: [u16; 260], + pub pcSignerCertContext: *const super::Cryptography::CERT_CONTEXT, + pub sOSVersionLow: DRIVER_VER_MAJORMINOR, + pub sOSVersionHigh: DRIVER_VER_MAJORMINOR, + pub dwBuildNumberLow: u32, + pub dwBuildNumberHigh: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for DRIVER_VER_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for DRIVER_VER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVER_VER_MAJORMINOR { + pub dwMajor: u32, + pub dwMinor: u32, +} +impl ::core::marker::Copy for DRIVER_VER_MAJORMINOR {} +impl ::core::clone::Clone for DRIVER_VER_MAJORMINOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INTENT_TO_SEAL_ATTRIBUTE { + pub version: u32, + pub seal: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INTENT_TO_SEAL_ATTRIBUTE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INTENT_TO_SEAL_ATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub struct PROVDATA_SIP { + pub cbStruct: u32, + pub gSubject: ::windows_sys::core::GUID, + pub pSip: *mut super::Cryptography::Sip::SIP_DISPATCH_INFO, + pub pCATSip: *mut super::Cryptography::Sip::SIP_DISPATCH_INFO, + pub psSipSubjectInfo: *mut super::Cryptography::Sip::SIP_SUBJECTINFO, + pub psSipCATSubjectInfo: *mut super::Cryptography::Sip::SIP_SUBJECTINFO, + pub psIndirectData: *mut super::Cryptography::Sip::SIP_INDIRECT_DATA, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::marker::Copy for PROVDATA_SIP {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::clone::Clone for PROVDATA_SIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct SEALING_SIGNATURE_ATTRIBUTE { + pub version: u32, + pub signerIndex: u32, + pub signatureAlgorithm: super::Cryptography::CRYPT_ALGORITHM_IDENTIFIER, + pub encryptedDigest: super::Cryptography::CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SEALING_SIGNATURE_ATTRIBUTE {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SEALING_SIGNATURE_ATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct SEALING_TIMESTAMP_ATTRIBUTE { + pub version: u32, + pub signerIndex: u32, + pub sealTimeStampToken: super::Cryptography::CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SEALING_TIMESTAMP_ATTRIBUTE {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SEALING_TIMESTAMP_ATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SPC_FINANCIAL_CRITERIA { + pub fFinancialInfoAvailable: super::super::Foundation::BOOL, + pub fMeetsCriteria: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SPC_FINANCIAL_CRITERIA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SPC_FINANCIAL_CRITERIA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct SPC_IMAGE { + pub pImageLink: *mut SPC_LINK, + pub Bitmap: super::Cryptography::CRYPT_INTEGER_BLOB, + pub Metafile: super::Cryptography::CRYPT_INTEGER_BLOB, + pub EnhancedMetafile: super::Cryptography::CRYPT_INTEGER_BLOB, + pub GifFile: super::Cryptography::CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SPC_IMAGE {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SPC_IMAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct SPC_INDIRECT_DATA_CONTENT { + pub Data: super::Cryptography::CRYPT_ATTRIBUTE_TYPE_VALUE, + pub DigestAlgorithm: super::Cryptography::CRYPT_ALGORITHM_IDENTIFIER, + pub Digest: super::Cryptography::CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SPC_INDIRECT_DATA_CONTENT {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SPC_INDIRECT_DATA_CONTENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct SPC_LINK { + pub dwLinkChoice: u32, + pub Anonymous: SPC_LINK_0, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SPC_LINK {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SPC_LINK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub union SPC_LINK_0 { + pub pwszUrl: ::windows_sys::core::PWSTR, + pub Moniker: SPC_SERIALIZED_OBJECT, + pub pwszFile: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SPC_LINK_0 {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SPC_LINK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct SPC_PE_IMAGE_DATA { + pub Flags: super::Cryptography::CRYPT_BIT_BLOB, + pub pFile: *mut SPC_LINK, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SPC_PE_IMAGE_DATA {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SPC_PE_IMAGE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct SPC_SERIALIZED_OBJECT { + pub ClassId: [u8; 16], + pub SerializedData: super::Cryptography::CRYPT_INTEGER_BLOB, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SPC_SERIALIZED_OBJECT {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SPC_SERIALIZED_OBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SPC_SIGINFO { + pub dwSipVersion: u32, + pub gSIPGuid: ::windows_sys::core::GUID, + pub dwReserved1: u32, + pub dwReserved2: u32, + pub dwReserved3: u32, + pub dwReserved4: u32, + pub dwReserved5: u32, +} +impl ::core::marker::Copy for SPC_SIGINFO {} +impl ::core::clone::Clone for SPC_SIGINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct SPC_SP_AGENCY_INFO { + pub pPolicyInformation: *mut SPC_LINK, + pub pwszPolicyDisplayText: ::windows_sys::core::PWSTR, + pub pLogoImage: *mut SPC_IMAGE, + pub pLogoLink: *mut SPC_LINK, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SPC_SP_AGENCY_INFO {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SPC_SP_AGENCY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct SPC_SP_OPUS_INFO { + pub pwszProgramName: ::windows_sys::core::PCWSTR, + pub pMoreInfo: *mut SPC_LINK, + pub pPublisherInfo: *mut SPC_LINK, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for SPC_SP_OPUS_INFO {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for SPC_SP_OPUS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SPC_STATEMENT_TYPE { + pub cKeyPurposeId: u32, + pub rgpszKeyPurposeId: *mut ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for SPC_STATEMENT_TYPE {} +impl ::core::clone::Clone for SPC_STATEMENT_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINTRUST_BLOB_INFO { + pub cbStruct: u32, + pub gSubject: ::windows_sys::core::GUID, + pub pcwszDisplayName: ::windows_sys::core::PCWSTR, + pub cbMemObject: u32, + pub pbMemObject: *mut u8, + pub cbMemSignedMsg: u32, + pub pbMemSignedMsg: *mut u8, +} +impl ::core::marker::Copy for WINTRUST_BLOB_INFO {} +impl ::core::clone::Clone for WINTRUST_BLOB_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct WINTRUST_CATALOG_INFO { + pub cbStruct: u32, + pub dwCatalogVersion: u32, + pub pcwszCatalogFilePath: ::windows_sys::core::PCWSTR, + pub pcwszMemberTag: ::windows_sys::core::PCWSTR, + pub pcwszMemberFilePath: ::windows_sys::core::PCWSTR, + pub hMemberFile: super::super::Foundation::HANDLE, + pub pbCalculatedFileHash: *mut u8, + pub cbCalculatedFileHash: u32, + pub pcCatalogContext: *mut super::Cryptography::CTL_CONTEXT, + pub hCatAdmin: isize, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for WINTRUST_CATALOG_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for WINTRUST_CATALOG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct WINTRUST_CERT_INFO { + pub cbStruct: u32, + pub pcwszDisplayName: ::windows_sys::core::PCWSTR, + pub psCertContext: *mut super::Cryptography::CERT_CONTEXT, + pub chStores: u32, + pub pahStores: *mut super::Cryptography::HCERTSTORE, + pub dwFlags: u32, + pub psftVerifyAsOf: *mut super::super::Foundation::FILETIME, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for WINTRUST_CERT_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for WINTRUST_CERT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct WINTRUST_DATA { + pub cbStruct: u32, + pub pPolicyCallbackData: *mut ::core::ffi::c_void, + pub pSIPClientData: *mut ::core::ffi::c_void, + pub dwUIChoice: WINTRUST_DATA_UICHOICE, + pub fdwRevocationChecks: WINTRUST_DATA_REVOCATION_CHECKS, + pub dwUnionChoice: WINTRUST_DATA_UNION_CHOICE, + pub Anonymous: WINTRUST_DATA_0, + pub dwStateAction: WINTRUST_DATA_STATE_ACTION, + pub hWVTStateData: super::super::Foundation::HANDLE, + pub pwszURLReference: ::windows_sys::core::PWSTR, + pub dwProvFlags: WINTRUST_DATA_PROVIDER_FLAGS, + pub dwUIContext: WINTRUST_DATA_UICONTEXT, + pub pSignatureSettings: *mut WINTRUST_SIGNATURE_SETTINGS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for WINTRUST_DATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for WINTRUST_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub union WINTRUST_DATA_0 { + pub pFile: *mut WINTRUST_FILE_INFO, + pub pCatalog: *mut WINTRUST_CATALOG_INFO, + pub pBlob: *mut WINTRUST_BLOB_INFO, + pub pSgnr: *mut WINTRUST_SGNR_INFO, + pub pCert: *mut WINTRUST_CERT_INFO, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for WINTRUST_DATA_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for WINTRUST_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINTRUST_FILE_INFO { + pub cbStruct: u32, + pub pcwszFilePath: ::windows_sys::core::PCWSTR, + pub hFile: super::super::Foundation::HANDLE, + pub pgKnownSubject: *mut ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINTRUST_FILE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINTRUST_FILE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct WINTRUST_SGNR_INFO { + pub cbStruct: u32, + pub pcwszDisplayName: ::windows_sys::core::PCWSTR, + pub psSignerInfo: *mut super::Cryptography::CMSG_SIGNER_INFO, + pub chStores: u32, + pub pahStores: *mut super::Cryptography::HCERTSTORE, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for WINTRUST_SGNR_INFO {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for WINTRUST_SGNR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct WINTRUST_SIGNATURE_SETTINGS { + pub cbStruct: u32, + pub dwIndex: u32, + pub dwFlags: WINTRUST_SIGNATURE_SETTINGS_FLAGS, + pub cSecondarySigs: u32, + pub dwVerifiedSigIndex: u32, + pub pCryptoPolicy: *mut super::Cryptography::CERT_STRONG_SIGN_PARA, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for WINTRUST_SIGNATURE_SETTINGS {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for WINTRUST_SIGNATURE_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIN_CERTIFICATE { + pub dwLength: u32, + pub wRevision: u16, + pub wCertificateType: u16, + pub bCertificate: [u8; 1], +} +impl ::core::marker::Copy for WIN_CERTIFICATE {} +impl ::core::clone::Clone for WIN_CERTIFICATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WIN_SPUB_TRUSTED_PUBLISHER_DATA { + pub hClientToken: super::super::Foundation::HANDLE, + pub lpCertificate: *mut WIN_CERTIFICATE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WIN_SPUB_TRUSTED_PUBLISHER_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WIN_SPUB_TRUSTED_PUBLISHER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT { + pub hClientToken: super::super::Foundation::HANDLE, + pub SubjectType: *mut ::windows_sys::core::GUID, + pub Subject: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIN_TRUST_ACTDATA_SUBJECT_ONLY { + pub SubjectType: *mut ::windows_sys::core::GUID, + pub Subject: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WIN_TRUST_ACTDATA_SUBJECT_ONLY {} +impl ::core::clone::Clone for WIN_TRUST_ACTDATA_SUBJECT_ONLY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WIN_TRUST_SUBJECT_FILE { + pub hFile: super::super::Foundation::HANDLE, + pub lpPath: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WIN_TRUST_SUBJECT_FILE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WIN_TRUST_SUBJECT_FILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WIN_TRUST_SUBJECT_FILE_AND_DISPLAY { + pub hFile: super::super::Foundation::HANDLE, + pub lpPath: ::windows_sys::core::PCWSTR, + pub lpDisplayName: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WIN_TRUST_SUBJECT_FILE_AND_DISPLAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WIN_TRUST_SUBJECT_FILE_AND_DISPLAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct WTD_GENERIC_CHAIN_POLICY_CREATE_INFO { + pub Anonymous: WTD_GENERIC_CHAIN_POLICY_CREATE_INFO_0, + pub hChainEngine: super::Cryptography::HCERTCHAINENGINE, + pub pChainPara: *mut super::Cryptography::CERT_CHAIN_PARA, + pub dwFlags: u32, + pub pvReserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for WTD_GENERIC_CHAIN_POLICY_CREATE_INFO {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for WTD_GENERIC_CHAIN_POLICY_CREATE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub union WTD_GENERIC_CHAIN_POLICY_CREATE_INFO_0 { + pub cbStruct: u32, + pub cbSize: u32, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for WTD_GENERIC_CHAIN_POLICY_CREATE_INFO_0 {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for WTD_GENERIC_CHAIN_POLICY_CREATE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub struct WTD_GENERIC_CHAIN_POLICY_DATA { + pub Anonymous: WTD_GENERIC_CHAIN_POLICY_DATA_0, + pub pSignerChainInfo: *mut WTD_GENERIC_CHAIN_POLICY_CREATE_INFO, + pub pCounterSignerChainInfo: *mut WTD_GENERIC_CHAIN_POLICY_CREATE_INFO, + pub pfnPolicyCallback: PFN_WTD_GENERIC_CHAIN_POLICY_CALLBACK, + pub pvPolicyArg: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::marker::Copy for WTD_GENERIC_CHAIN_POLICY_DATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::clone::Clone for WTD_GENERIC_CHAIN_POLICY_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub union WTD_GENERIC_CHAIN_POLICY_DATA_0 { + pub cbStruct: u32, + pub cbSize: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::marker::Copy for WTD_GENERIC_CHAIN_POLICY_DATA_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +impl ::core::clone::Clone for WTD_GENERIC_CHAIN_POLICY_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO { + pub Anonymous: WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO_0, + pub pChainContext: *mut super::Cryptography::CERT_CHAIN_CONTEXT, + pub dwSignerType: u32, + pub pMsgSignerInfo: *mut super::Cryptography::CMSG_SIGNER_INFO, + pub dwError: u32, + pub cCounterSigner: u32, + pub rgpCounterSigner: *mut *mut WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub union WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO_0 { + pub cbStruct: u32, + pub cbSize: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_ALLOCANDFILLDEFUSAGE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_CPD_ADD_CERT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_CPD_ADD_PRIVDATA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_CPD_ADD_SGNR = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_CPD_ADD_STORE = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_CPD_MEM_ALLOC = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PFN_CPD_MEM_FREE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_FREEDEFUSAGE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_PROVIDER_CERTCHKPOLICY_CALL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_PROVIDER_CERTTRUST_CALL = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_PROVIDER_CLEANUP_CALL = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_PROVIDER_FINALPOLICY_CALL = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_PROVIDER_INIT_CALL = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_PROVIDER_OBJTRUST_CALL = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_PROVIDER_SIGTRUST_CALL = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_PROVIDER_TESTFINALPOLICY_CALL = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_PROVUI_CALL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Security_Cryptography_Sip\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog", feature = "Win32_Security_Cryptography_Sip"))] +pub type PFN_WTD_GENERIC_CHAIN_POLICY_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/WinWlx/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/WinWlx/mod.rs new file mode 100644 index 000000000..b38228afb --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/WinWlx/mod.rs @@ -0,0 +1,491 @@ +pub const STATUSMSG_OPTION_NOANIMATION: u32 = 1u32; +pub const STATUSMSG_OPTION_SETFOREGROUND: u32 = 2u32; +pub const WLX_CONSOLESWITCHCREDENTIAL_TYPE_V1_0: u32 = 1u32; +pub const WLX_CREATE_INSTANCE_ONLY: u32 = 1u32; +pub const WLX_CREATE_USER: u32 = 2u32; +pub const WLX_CREDENTIAL_TYPE_V1_0: u32 = 1u32; +pub const WLX_CREDENTIAL_TYPE_V2_0: u32 = 2u32; +pub const WLX_CURRENT_VERSION: u32 = 65540u32; +pub const WLX_DESKTOP_HANDLE: u32 = 2u32; +pub const WLX_DESKTOP_NAME: u32 = 1u32; +pub const WLX_DIRECTORY_LENGTH: u32 = 256u32; +pub const WLX_DLG_INPUT_TIMEOUT: u32 = 102u32; +pub const WLX_DLG_SAS: u32 = 101u32; +pub const WLX_DLG_SCREEN_SAVER_TIMEOUT: u32 = 103u32; +pub const WLX_DLG_USER_LOGOFF: u32 = 104u32; +pub const WLX_LOGON_OPT_NO_PROFILE: u32 = 1u32; +pub const WLX_OPTION_CONTEXT_POINTER: u32 = 2u32; +pub const WLX_OPTION_DISPATCH_TABLE_SIZE: u32 = 65539u32; +pub const WLX_OPTION_FORCE_LOGOFF_TIME: u32 = 4u32; +pub const WLX_OPTION_IGNORE_AUTO_LOGON: u32 = 8u32; +pub const WLX_OPTION_NO_SWITCH_ON_SAS: u32 = 9u32; +pub const WLX_OPTION_SMART_CARD_INFO: u32 = 65538u32; +pub const WLX_OPTION_SMART_CARD_PRESENT: u32 = 65537u32; +pub const WLX_OPTION_USE_CTRL_ALT_DEL: u32 = 1u32; +pub const WLX_OPTION_USE_SMART_CARD: u32 = 3u32; +pub const WLX_PROFILE_TYPE_V1_0: u32 = 1u32; +pub const WLX_PROFILE_TYPE_V2_0: u32 = 2u32; +pub const WLX_SAS_ACTION_DELAYED_FORCE_LOGOFF: u32 = 16u32; +pub const WLX_SAS_ACTION_FORCE_LOGOFF: u32 = 9u32; +pub const WLX_SAS_ACTION_LOCK_WKSTA: u32 = 3u32; +pub const WLX_SAS_ACTION_LOGOFF: u32 = 4u32; +pub const WLX_SAS_ACTION_LOGON: u32 = 1u32; +pub const WLX_SAS_ACTION_NONE: u32 = 2u32; +pub const WLX_SAS_ACTION_PWD_CHANGED: u32 = 6u32; +pub const WLX_SAS_ACTION_RECONNECTED: u32 = 15u32; +pub const WLX_SAS_ACTION_SHUTDOWN: WLX_SHUTDOWN_TYPE = 5u32; +pub const WLX_SAS_ACTION_SHUTDOWN_HIBERNATE: u32 = 14u32; +pub const WLX_SAS_ACTION_SHUTDOWN_POWER_OFF: WLX_SHUTDOWN_TYPE = 10u32; +pub const WLX_SAS_ACTION_SHUTDOWN_REBOOT: WLX_SHUTDOWN_TYPE = 11u32; +pub const WLX_SAS_ACTION_SHUTDOWN_SLEEP: u32 = 12u32; +pub const WLX_SAS_ACTION_SHUTDOWN_SLEEP2: u32 = 13u32; +pub const WLX_SAS_ACTION_SWITCH_CONSOLE: u32 = 17u32; +pub const WLX_SAS_ACTION_TASKLIST: u32 = 7u32; +pub const WLX_SAS_ACTION_UNLOCK_WKSTA: u32 = 8u32; +pub const WLX_SAS_TYPE_AUTHENTICATED: u32 = 7u32; +pub const WLX_SAS_TYPE_CTRL_ALT_DEL: u32 = 1u32; +pub const WLX_SAS_TYPE_MAX_MSFT_VALUE: u32 = 127u32; +pub const WLX_SAS_TYPE_SCRNSVR_ACTIVITY: u32 = 3u32; +pub const WLX_SAS_TYPE_SCRNSVR_TIMEOUT: u32 = 2u32; +pub const WLX_SAS_TYPE_SC_FIRST_READER_ARRIVED: u32 = 8u32; +pub const WLX_SAS_TYPE_SC_INSERT: u32 = 5u32; +pub const WLX_SAS_TYPE_SC_LAST_READER_REMOVED: u32 = 9u32; +pub const WLX_SAS_TYPE_SC_REMOVE: u32 = 6u32; +pub const WLX_SAS_TYPE_SWITCHUSER: u32 = 10u32; +pub const WLX_SAS_TYPE_TIMEOUT: u32 = 0u32; +pub const WLX_SAS_TYPE_USER_LOGOFF: u32 = 4u32; +pub const WLX_VERSION_1_0: u32 = 65536u32; +pub const WLX_VERSION_1_1: u32 = 65537u32; +pub const WLX_VERSION_1_2: u32 = 65538u32; +pub const WLX_VERSION_1_3: u32 = 65539u32; +pub const WLX_VERSION_1_4: u32 = 65540u32; +pub const WLX_WM_SAS: u32 = 1625u32; +pub type WLX_SHUTDOWN_TYPE = u32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLX_CLIENT_CREDENTIALS_INFO_V1_0 { + pub dwType: u32, + pub pszUserName: ::windows_sys::core::PWSTR, + pub pszDomain: ::windows_sys::core::PWSTR, + pub pszPassword: ::windows_sys::core::PWSTR, + pub fPromptForPassword: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLX_CLIENT_CREDENTIALS_INFO_V1_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLX_CLIENT_CREDENTIALS_INFO_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLX_CLIENT_CREDENTIALS_INFO_V2_0 { + pub dwType: u32, + pub pszUserName: ::windows_sys::core::PWSTR, + pub pszDomain: ::windows_sys::core::PWSTR, + pub pszPassword: ::windows_sys::core::PWSTR, + pub fPromptForPassword: super::super::Foundation::BOOL, + pub fDisconnectOnLogonFailure: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLX_CLIENT_CREDENTIALS_INFO_V2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLX_CLIENT_CREDENTIALS_INFO_V2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 { + pub dwType: u32, + pub UserToken: super::super::Foundation::HANDLE, + pub LogonId: super::super::Foundation::LUID, + pub Quotas: super::QUOTA_LIMITS, + pub UserName: ::windows_sys::core::PWSTR, + pub Domain: ::windows_sys::core::PWSTR, + pub LogonTime: i64, + pub SmartCardLogon: super::super::Foundation::BOOL, + pub ProfileLength: u32, + pub MessageType: u32, + pub LogonCount: u16, + pub BadPasswordCount: u16, + pub ProfileLogonTime: i64, + pub LogoffTime: i64, + pub KickOffTime: i64, + pub PasswordLastSet: i64, + pub PasswordCanChange: i64, + pub PasswordMustChange: i64, + pub LogonScript: ::windows_sys::core::PWSTR, + pub HomeDirectory: ::windows_sys::core::PWSTR, + pub FullName: ::windows_sys::core::PWSTR, + pub ProfilePath: ::windows_sys::core::PWSTR, + pub HomeDirectoryDrive: ::windows_sys::core::PWSTR, + pub LogonServer: ::windows_sys::core::PWSTR, + pub UserFlags: u32, + pub PrivateDataLen: u32, + pub PrivateData: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_StationsAndDesktops\"`"] +#[cfg(feature = "Win32_System_StationsAndDesktops")] +pub struct WLX_DESKTOP { + pub Size: u32, + pub Flags: u32, + pub hDesktop: super::super::System::StationsAndDesktops::HDESK, + pub pszDesktopName: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_System_StationsAndDesktops")] +impl ::core::marker::Copy for WLX_DESKTOP {} +#[cfg(feature = "Win32_System_StationsAndDesktops")] +impl ::core::clone::Clone for WLX_DESKTOP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct WLX_DISPATCH_VERSION_1_0 { + pub WlxUseCtrlAltDel: PWLX_USE_CTRL_ALT_DEL, + pub WlxSetContextPointer: PWLX_SET_CONTEXT_POINTER, + pub WlxSasNotify: PWLX_SAS_NOTIFY, + pub WlxSetTimeout: PWLX_SET_TIMEOUT, + pub WlxAssignShellProtection: PWLX_ASSIGN_SHELL_PROTECTION, + pub WlxMessageBox: PWLX_MESSAGE_BOX, + pub WlxDialogBox: PWLX_DIALOG_BOX, + pub WlxDialogBoxParam: PWLX_DIALOG_BOX_PARAM, + pub WlxDialogBoxIndirect: PWLX_DIALOG_BOX_INDIRECT, + pub WlxDialogBoxIndirectParam: PWLX_DIALOG_BOX_INDIRECT_PARAM, + pub WlxSwitchDesktopToUser: PWLX_SWITCH_DESKTOP_TO_USER, + pub WlxSwitchDesktopToWinlogon: PWLX_SWITCH_DESKTOP_TO_WINLOGON, + pub WlxChangePasswordNotify: PWLX_CHANGE_PASSWORD_NOTIFY, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for WLX_DISPATCH_VERSION_1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for WLX_DISPATCH_VERSION_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_StationsAndDesktops\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct WLX_DISPATCH_VERSION_1_1 { + pub WlxUseCtrlAltDel: PWLX_USE_CTRL_ALT_DEL, + pub WlxSetContextPointer: PWLX_SET_CONTEXT_POINTER, + pub WlxSasNotify: PWLX_SAS_NOTIFY, + pub WlxSetTimeout: PWLX_SET_TIMEOUT, + pub WlxAssignShellProtection: PWLX_ASSIGN_SHELL_PROTECTION, + pub WlxMessageBox: PWLX_MESSAGE_BOX, + pub WlxDialogBox: PWLX_DIALOG_BOX, + pub WlxDialogBoxParam: PWLX_DIALOG_BOX_PARAM, + pub WlxDialogBoxIndirect: PWLX_DIALOG_BOX_INDIRECT, + pub WlxDialogBoxIndirectParam: PWLX_DIALOG_BOX_INDIRECT_PARAM, + pub WlxSwitchDesktopToUser: PWLX_SWITCH_DESKTOP_TO_USER, + pub WlxSwitchDesktopToWinlogon: PWLX_SWITCH_DESKTOP_TO_WINLOGON, + pub WlxChangePasswordNotify: PWLX_CHANGE_PASSWORD_NOTIFY, + pub WlxGetSourceDesktop: PWLX_GET_SOURCE_DESKTOP, + pub WlxSetReturnDesktop: PWLX_SET_RETURN_DESKTOP, + pub WlxCreateUserDesktop: PWLX_CREATE_USER_DESKTOP, + pub WlxChangePasswordNotifyEx: PWLX_CHANGE_PASSWORD_NOTIFY_EX, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for WLX_DISPATCH_VERSION_1_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for WLX_DISPATCH_VERSION_1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_StationsAndDesktops\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct WLX_DISPATCH_VERSION_1_2 { + pub WlxUseCtrlAltDel: PWLX_USE_CTRL_ALT_DEL, + pub WlxSetContextPointer: PWLX_SET_CONTEXT_POINTER, + pub WlxSasNotify: PWLX_SAS_NOTIFY, + pub WlxSetTimeout: PWLX_SET_TIMEOUT, + pub WlxAssignShellProtection: PWLX_ASSIGN_SHELL_PROTECTION, + pub WlxMessageBox: PWLX_MESSAGE_BOX, + pub WlxDialogBox: PWLX_DIALOG_BOX, + pub WlxDialogBoxParam: PWLX_DIALOG_BOX_PARAM, + pub WlxDialogBoxIndirect: PWLX_DIALOG_BOX_INDIRECT, + pub WlxDialogBoxIndirectParam: PWLX_DIALOG_BOX_INDIRECT_PARAM, + pub WlxSwitchDesktopToUser: PWLX_SWITCH_DESKTOP_TO_USER, + pub WlxSwitchDesktopToWinlogon: PWLX_SWITCH_DESKTOP_TO_WINLOGON, + pub WlxChangePasswordNotify: PWLX_CHANGE_PASSWORD_NOTIFY, + pub WlxGetSourceDesktop: PWLX_GET_SOURCE_DESKTOP, + pub WlxSetReturnDesktop: PWLX_SET_RETURN_DESKTOP, + pub WlxCreateUserDesktop: PWLX_CREATE_USER_DESKTOP, + pub WlxChangePasswordNotifyEx: PWLX_CHANGE_PASSWORD_NOTIFY_EX, + pub WlxCloseUserDesktop: PWLX_CLOSE_USER_DESKTOP, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for WLX_DISPATCH_VERSION_1_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for WLX_DISPATCH_VERSION_1_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_StationsAndDesktops\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct WLX_DISPATCH_VERSION_1_3 { + pub WlxUseCtrlAltDel: PWLX_USE_CTRL_ALT_DEL, + pub WlxSetContextPointer: PWLX_SET_CONTEXT_POINTER, + pub WlxSasNotify: PWLX_SAS_NOTIFY, + pub WlxSetTimeout: PWLX_SET_TIMEOUT, + pub WlxAssignShellProtection: PWLX_ASSIGN_SHELL_PROTECTION, + pub WlxMessageBox: PWLX_MESSAGE_BOX, + pub WlxDialogBox: PWLX_DIALOG_BOX, + pub WlxDialogBoxParam: PWLX_DIALOG_BOX_PARAM, + pub WlxDialogBoxIndirect: PWLX_DIALOG_BOX_INDIRECT, + pub WlxDialogBoxIndirectParam: PWLX_DIALOG_BOX_INDIRECT_PARAM, + pub WlxSwitchDesktopToUser: PWLX_SWITCH_DESKTOP_TO_USER, + pub WlxSwitchDesktopToWinlogon: PWLX_SWITCH_DESKTOP_TO_WINLOGON, + pub WlxChangePasswordNotify: PWLX_CHANGE_PASSWORD_NOTIFY, + pub WlxGetSourceDesktop: PWLX_GET_SOURCE_DESKTOP, + pub WlxSetReturnDesktop: PWLX_SET_RETURN_DESKTOP, + pub WlxCreateUserDesktop: PWLX_CREATE_USER_DESKTOP, + pub WlxChangePasswordNotifyEx: PWLX_CHANGE_PASSWORD_NOTIFY_EX, + pub WlxCloseUserDesktop: PWLX_CLOSE_USER_DESKTOP, + pub WlxSetOption: PWLX_SET_OPTION, + pub WlxGetOption: PWLX_GET_OPTION, + pub WlxWin31Migrate: PWLX_WIN31_MIGRATE, + pub WlxQueryClientCredentials: PWLX_QUERY_CLIENT_CREDENTIALS, + pub WlxQueryInetConnectorCredentials: PWLX_QUERY_IC_CREDENTIALS, + pub WlxDisconnect: PWLX_DISCONNECT, + pub WlxQueryTerminalServicesData: PWLX_QUERY_TERMINAL_SERVICES_DATA, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for WLX_DISPATCH_VERSION_1_3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for WLX_DISPATCH_VERSION_1_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_StationsAndDesktops\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct WLX_DISPATCH_VERSION_1_4 { + pub WlxUseCtrlAltDel: PWLX_USE_CTRL_ALT_DEL, + pub WlxSetContextPointer: PWLX_SET_CONTEXT_POINTER, + pub WlxSasNotify: PWLX_SAS_NOTIFY, + pub WlxSetTimeout: PWLX_SET_TIMEOUT, + pub WlxAssignShellProtection: PWLX_ASSIGN_SHELL_PROTECTION, + pub WlxMessageBox: PWLX_MESSAGE_BOX, + pub WlxDialogBox: PWLX_DIALOG_BOX, + pub WlxDialogBoxParam: PWLX_DIALOG_BOX_PARAM, + pub WlxDialogBoxIndirect: PWLX_DIALOG_BOX_INDIRECT, + pub WlxDialogBoxIndirectParam: PWLX_DIALOG_BOX_INDIRECT_PARAM, + pub WlxSwitchDesktopToUser: PWLX_SWITCH_DESKTOP_TO_USER, + pub WlxSwitchDesktopToWinlogon: PWLX_SWITCH_DESKTOP_TO_WINLOGON, + pub WlxChangePasswordNotify: PWLX_CHANGE_PASSWORD_NOTIFY, + pub WlxGetSourceDesktop: PWLX_GET_SOURCE_DESKTOP, + pub WlxSetReturnDesktop: PWLX_SET_RETURN_DESKTOP, + pub WlxCreateUserDesktop: PWLX_CREATE_USER_DESKTOP, + pub WlxChangePasswordNotifyEx: PWLX_CHANGE_PASSWORD_NOTIFY_EX, + pub WlxCloseUserDesktop: PWLX_CLOSE_USER_DESKTOP, + pub WlxSetOption: PWLX_SET_OPTION, + pub WlxGetOption: PWLX_GET_OPTION, + pub WlxWin31Migrate: PWLX_WIN31_MIGRATE, + pub WlxQueryClientCredentials: PWLX_QUERY_CLIENT_CREDENTIALS, + pub WlxQueryInetConnectorCredentials: PWLX_QUERY_IC_CREDENTIALS, + pub WlxDisconnect: PWLX_DISCONNECT, + pub WlxQueryTerminalServicesData: PWLX_QUERY_TERMINAL_SERVICES_DATA, + pub WlxQueryConsoleSwitchCredentials: PWLX_QUERY_CONSOLESWITCH_CREDENTIALS, + pub WlxQueryTsLogonCredentials: PWLX_QUERY_TS_LOGON_CREDENTIALS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for WLX_DISPATCH_VERSION_1_4 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for WLX_DISPATCH_VERSION_1_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLX_MPR_NOTIFY_INFO { + pub pszUserName: ::windows_sys::core::PWSTR, + pub pszDomain: ::windows_sys::core::PWSTR, + pub pszPassword: ::windows_sys::core::PWSTR, + pub pszOldPassword: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WLX_MPR_NOTIFY_INFO {} +impl ::core::clone::Clone for WLX_MPR_NOTIFY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_StationsAndDesktops\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops"))] +pub struct WLX_NOTIFICATION_INFO { + pub Size: u32, + pub Flags: u32, + pub UserName: ::windows_sys::core::PWSTR, + pub Domain: ::windows_sys::core::PWSTR, + pub WindowStation: ::windows_sys::core::PWSTR, + pub hToken: super::super::Foundation::HANDLE, + pub hDesktop: super::super::System::StationsAndDesktops::HDESK, + pub pStatusCallback: PFNMSGECALLBACK, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops"))] +impl ::core::marker::Copy for WLX_NOTIFICATION_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops"))] +impl ::core::clone::Clone for WLX_NOTIFICATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLX_PROFILE_V1_0 { + pub dwType: u32, + pub pszProfile: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WLX_PROFILE_V1_0 {} +impl ::core::clone::Clone for WLX_PROFILE_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLX_PROFILE_V2_0 { + pub dwType: u32, + pub pszProfile: ::windows_sys::core::PWSTR, + pub pszPolicy: ::windows_sys::core::PWSTR, + pub pszNetworkDefaultUserProfile: ::windows_sys::core::PWSTR, + pub pszServerName: ::windows_sys::core::PWSTR, + pub pszEnvironment: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WLX_PROFILE_V2_0 {} +impl ::core::clone::Clone for WLX_PROFILE_V2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLX_SC_NOTIFICATION_INFO { + pub pszCard: ::windows_sys::core::PWSTR, + pub pszReader: ::windows_sys::core::PWSTR, + pub pszContainer: ::windows_sys::core::PWSTR, + pub pszCryptoProvider: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WLX_SC_NOTIFICATION_INFO {} +impl ::core::clone::Clone for WLX_SC_NOTIFICATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLX_TERMINAL_SERVICES_DATA { + pub ProfilePath: [u16; 257], + pub HomeDir: [u16; 257], + pub HomeDirDrive: [u16; 4], +} +impl ::core::marker::Copy for WLX_TERMINAL_SERVICES_DATA {} +impl ::core::clone::Clone for WLX_TERMINAL_SERVICES_DATA { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNMSGECALLBACK = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_ASSIGN_SHELL_PROTECTION = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_CHANGE_PASSWORD_NOTIFY = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_CHANGE_PASSWORD_NOTIFY_EX = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_StationsAndDesktops\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops"))] +pub type PWLX_CLOSE_USER_DESKTOP = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_StationsAndDesktops\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops"))] +pub type PWLX_CREATE_USER_DESKTOP = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub type PWLX_DIALOG_BOX = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub type PWLX_DIALOG_BOX_INDIRECT = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub type PWLX_DIALOG_BOX_INDIRECT_PARAM = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub type PWLX_DIALOG_BOX_PARAM = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_DISCONNECT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_GET_OPTION = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_StationsAndDesktops\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops"))] +pub type PWLX_GET_SOURCE_DESKTOP = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_MESSAGE_BOX = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_QUERY_CLIENT_CREDENTIALS = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_QUERY_CONSOLESWITCH_CREDENTIALS = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_QUERY_IC_CREDENTIALS = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_QUERY_TERMINAL_SERVICES_DATA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_QUERY_TS_LOGON_CREDENTIALS = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_SAS_NOTIFY = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_SET_CONTEXT_POINTER = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_SET_OPTION = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_StationsAndDesktops\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_StationsAndDesktops"))] +pub type PWLX_SET_RETURN_DESKTOP = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_SET_TIMEOUT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_SWITCH_DESKTOP_TO_USER = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_SWITCH_DESKTOP_TO_WINLOGON = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_USE_CTRL_ALT_DEL = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLX_WIN31_MIGRATE = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Security/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/mod.rs new file mode 100644 index 000000000..e474d1dfc --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Security/mod.rs @@ -0,0 +1,1787 @@ +#[cfg(feature = "Win32_Security_AppLocker")] +#[doc = "Required features: `\"Win32_Security_AppLocker\"`"] +pub mod AppLocker; +#[cfg(feature = "Win32_Security_Authentication")] +#[doc = "Required features: `\"Win32_Security_Authentication\"`"] +pub mod Authentication; +#[cfg(feature = "Win32_Security_Authorization")] +#[doc = "Required features: `\"Win32_Security_Authorization\"`"] +pub mod Authorization; +#[cfg(feature = "Win32_Security_Credentials")] +#[doc = "Required features: `\"Win32_Security_Credentials\"`"] +pub mod Credentials; +#[cfg(feature = "Win32_Security_Cryptography")] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +pub mod Cryptography; +#[cfg(feature = "Win32_Security_DiagnosticDataQuery")] +#[doc = "Required features: `\"Win32_Security_DiagnosticDataQuery\"`"] +pub mod DiagnosticDataQuery; +#[cfg(feature = "Win32_Security_DirectoryServices")] +#[doc = "Required features: `\"Win32_Security_DirectoryServices\"`"] +pub mod DirectoryServices; +#[cfg(feature = "Win32_Security_EnterpriseData")] +#[doc = "Required features: `\"Win32_Security_EnterpriseData\"`"] +pub mod EnterpriseData; +#[cfg(feature = "Win32_Security_ExtensibleAuthenticationProtocol")] +#[doc = "Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`"] +pub mod ExtensibleAuthenticationProtocol; +#[cfg(feature = "Win32_Security_Isolation")] +#[doc = "Required features: `\"Win32_Security_Isolation\"`"] +pub mod Isolation; +#[cfg(feature = "Win32_Security_LicenseProtection")] +#[doc = "Required features: `\"Win32_Security_LicenseProtection\"`"] +pub mod LicenseProtection; +#[cfg(feature = "Win32_Security_NetworkAccessProtection")] +#[doc = "Required features: `\"Win32_Security_NetworkAccessProtection\"`"] +pub mod NetworkAccessProtection; +#[cfg(feature = "Win32_Security_WinTrust")] +#[doc = "Required features: `\"Win32_Security_WinTrust\"`"] +pub mod WinTrust; +#[cfg(feature = "Win32_Security_WinWlx")] +#[doc = "Required features: `\"Win32_Security_WinWlx\"`"] +pub mod WinWlx; +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccessCheck(psecuritydescriptor : PSECURITY_DESCRIPTOR, clienttoken : super::Foundation:: HANDLE, desiredaccess : u32, genericmapping : *const GENERIC_MAPPING, privilegeset : *mut PRIVILEGE_SET, privilegesetlength : *mut u32, grantedaccess : *mut u32, accessstatus : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccessCheckAndAuditAlarmA(subsystemname : ::windows_sys::core::PCSTR, handleid : *const ::core::ffi::c_void, objecttypename : ::windows_sys::core::PCSTR, objectname : ::windows_sys::core::PCSTR, securitydescriptor : PSECURITY_DESCRIPTOR, desiredaccess : u32, genericmapping : *const GENERIC_MAPPING, objectcreation : super::Foundation:: BOOL, grantedaccess : *mut u32, accessstatus : *mut super::Foundation:: BOOL, pfgenerateonclose : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccessCheckAndAuditAlarmW(subsystemname : ::windows_sys::core::PCWSTR, handleid : *const ::core::ffi::c_void, objecttypename : ::windows_sys::core::PCWSTR, objectname : ::windows_sys::core::PCWSTR, securitydescriptor : PSECURITY_DESCRIPTOR, desiredaccess : u32, genericmapping : *const GENERIC_MAPPING, objectcreation : super::Foundation:: BOOL, grantedaccess : *mut u32, accessstatus : *mut super::Foundation:: BOOL, pfgenerateonclose : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccessCheckByType(psecuritydescriptor : PSECURITY_DESCRIPTOR, principalselfsid : super::Foundation:: PSID, clienttoken : super::Foundation:: HANDLE, desiredaccess : u32, objecttypelist : *mut OBJECT_TYPE_LIST, objecttypelistlength : u32, genericmapping : *const GENERIC_MAPPING, privilegeset : *mut PRIVILEGE_SET, privilegesetlength : *mut u32, grantedaccess : *mut u32, accessstatus : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccessCheckByTypeAndAuditAlarmA(subsystemname : ::windows_sys::core::PCSTR, handleid : *const ::core::ffi::c_void, objecttypename : ::windows_sys::core::PCSTR, objectname : ::windows_sys::core::PCSTR, securitydescriptor : PSECURITY_DESCRIPTOR, principalselfsid : super::Foundation:: PSID, desiredaccess : u32, audittype : AUDIT_EVENT_TYPE, flags : u32, objecttypelist : *mut OBJECT_TYPE_LIST, objecttypelistlength : u32, genericmapping : *const GENERIC_MAPPING, objectcreation : super::Foundation:: BOOL, grantedaccess : *mut u32, accessstatus : *mut super::Foundation:: BOOL, pfgenerateonclose : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccessCheckByTypeAndAuditAlarmW(subsystemname : ::windows_sys::core::PCWSTR, handleid : *const ::core::ffi::c_void, objecttypename : ::windows_sys::core::PCWSTR, objectname : ::windows_sys::core::PCWSTR, securitydescriptor : PSECURITY_DESCRIPTOR, principalselfsid : super::Foundation:: PSID, desiredaccess : u32, audittype : AUDIT_EVENT_TYPE, flags : u32, objecttypelist : *mut OBJECT_TYPE_LIST, objecttypelistlength : u32, genericmapping : *const GENERIC_MAPPING, objectcreation : super::Foundation:: BOOL, grantedaccess : *mut u32, accessstatus : *mut super::Foundation:: BOOL, pfgenerateonclose : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccessCheckByTypeResultList(psecuritydescriptor : PSECURITY_DESCRIPTOR, principalselfsid : super::Foundation:: PSID, clienttoken : super::Foundation:: HANDLE, desiredaccess : u32, objecttypelist : *mut OBJECT_TYPE_LIST, objecttypelistlength : u32, genericmapping : *const GENERIC_MAPPING, privilegeset : *mut PRIVILEGE_SET, privilegesetlength : *mut u32, grantedaccesslist : *mut u32, accessstatuslist : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccessCheckByTypeResultListAndAuditAlarmA(subsystemname : ::windows_sys::core::PCSTR, handleid : *const ::core::ffi::c_void, objecttypename : ::windows_sys::core::PCSTR, objectname : ::windows_sys::core::PCSTR, securitydescriptor : PSECURITY_DESCRIPTOR, principalselfsid : super::Foundation:: PSID, desiredaccess : u32, audittype : AUDIT_EVENT_TYPE, flags : u32, objecttypelist : *mut OBJECT_TYPE_LIST, objecttypelistlength : u32, genericmapping : *const GENERIC_MAPPING, objectcreation : super::Foundation:: BOOL, grantedaccess : *mut u32, accessstatuslist : *mut u32, pfgenerateonclose : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccessCheckByTypeResultListAndAuditAlarmByHandleA(subsystemname : ::windows_sys::core::PCSTR, handleid : *const ::core::ffi::c_void, clienttoken : super::Foundation:: HANDLE, objecttypename : ::windows_sys::core::PCSTR, objectname : ::windows_sys::core::PCSTR, securitydescriptor : PSECURITY_DESCRIPTOR, principalselfsid : super::Foundation:: PSID, desiredaccess : u32, audittype : AUDIT_EVENT_TYPE, flags : u32, objecttypelist : *mut OBJECT_TYPE_LIST, objecttypelistlength : u32, genericmapping : *const GENERIC_MAPPING, objectcreation : super::Foundation:: BOOL, grantedaccess : *mut u32, accessstatuslist : *mut u32, pfgenerateonclose : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccessCheckByTypeResultListAndAuditAlarmByHandleW(subsystemname : ::windows_sys::core::PCWSTR, handleid : *const ::core::ffi::c_void, clienttoken : super::Foundation:: HANDLE, objecttypename : ::windows_sys::core::PCWSTR, objectname : ::windows_sys::core::PCWSTR, securitydescriptor : PSECURITY_DESCRIPTOR, principalselfsid : super::Foundation:: PSID, desiredaccess : u32, audittype : AUDIT_EVENT_TYPE, flags : u32, objecttypelist : *mut OBJECT_TYPE_LIST, objecttypelistlength : u32, genericmapping : *const GENERIC_MAPPING, objectcreation : super::Foundation:: BOOL, grantedaccesslist : *mut u32, accessstatuslist : *mut u32, pfgenerateonclose : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccessCheckByTypeResultListAndAuditAlarmW(subsystemname : ::windows_sys::core::PCWSTR, handleid : *const ::core::ffi::c_void, objecttypename : ::windows_sys::core::PCWSTR, objectname : ::windows_sys::core::PCWSTR, securitydescriptor : PSECURITY_DESCRIPTOR, principalselfsid : super::Foundation:: PSID, desiredaccess : u32, audittype : AUDIT_EVENT_TYPE, flags : u32, objecttypelist : *mut OBJECT_TYPE_LIST, objecttypelistlength : u32, genericmapping : *const GENERIC_MAPPING, objectcreation : super::Foundation:: BOOL, grantedaccesslist : *mut u32, accessstatuslist : *mut u32, pfgenerateonclose : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddAccessAllowedAce(pacl : *mut ACL, dwacerevision : ACE_REVISION, accessmask : u32, psid : super::Foundation:: PSID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddAccessAllowedAceEx(pacl : *mut ACL, dwacerevision : ACE_REVISION, aceflags : ACE_FLAGS, accessmask : u32, psid : super::Foundation:: PSID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddAccessAllowedObjectAce(pacl : *mut ACL, dwacerevision : ACE_REVISION, aceflags : ACE_FLAGS, accessmask : u32, objecttypeguid : *const ::windows_sys::core::GUID, inheritedobjecttypeguid : *const ::windows_sys::core::GUID, psid : super::Foundation:: PSID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddAccessDeniedAce(pacl : *mut ACL, dwacerevision : ACE_REVISION, accessmask : u32, psid : super::Foundation:: PSID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddAccessDeniedAceEx(pacl : *mut ACL, dwacerevision : ACE_REVISION, aceflags : ACE_FLAGS, accessmask : u32, psid : super::Foundation:: PSID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddAccessDeniedObjectAce(pacl : *mut ACL, dwacerevision : ACE_REVISION, aceflags : ACE_FLAGS, accessmask : u32, objecttypeguid : *const ::windows_sys::core::GUID, inheritedobjecttypeguid : *const ::windows_sys::core::GUID, psid : super::Foundation:: PSID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddAce(pacl : *mut ACL, dwacerevision : ACE_REVISION, dwstartingaceindex : u32, pacelist : *const ::core::ffi::c_void, nacelistlength : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddAuditAccessAce(pacl : *mut ACL, dwacerevision : ACE_REVISION, dwaccessmask : u32, psid : super::Foundation:: PSID, bauditsuccess : super::Foundation:: BOOL, bauditfailure : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddAuditAccessAceEx(pacl : *mut ACL, dwacerevision : ACE_REVISION, aceflags : ACE_FLAGS, dwaccessmask : u32, psid : super::Foundation:: PSID, bauditsuccess : super::Foundation:: BOOL, bauditfailure : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddAuditAccessObjectAce(pacl : *mut ACL, dwacerevision : ACE_REVISION, aceflags : ACE_FLAGS, accessmask : u32, objecttypeguid : *const ::windows_sys::core::GUID, inheritedobjecttypeguid : *const ::windows_sys::core::GUID, psid : super::Foundation:: PSID, bauditsuccess : super::Foundation:: BOOL, bauditfailure : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddConditionalAce(pacl : *mut ACL, dwacerevision : ACE_REVISION, aceflags : ACE_FLAGS, acetype : u8, accessmask : u32, psid : super::Foundation:: PSID, conditionstr : ::windows_sys::core::PCWSTR, returnlength : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddMandatoryAce(pacl : *mut ACL, dwacerevision : ACE_REVISION, aceflags : ACE_FLAGS, mandatorypolicy : u32, plabelsid : super::Foundation:: PSID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddResourceAttributeAce(pacl : *mut ACL, dwacerevision : ACE_REVISION, aceflags : ACE_FLAGS, accessmask : u32, psid : super::Foundation:: PSID, pattributeinfo : *const CLAIM_SECURITY_ATTRIBUTES_INFORMATION, preturnlength : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddScopedPolicyIDAce(pacl : *mut ACL, dwacerevision : ACE_REVISION, aceflags : ACE_FLAGS, accessmask : u32, psid : super::Foundation:: PSID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AdjustTokenGroups(tokenhandle : super::Foundation:: HANDLE, resettodefault : super::Foundation:: BOOL, newstate : *const TOKEN_GROUPS, bufferlength : u32, previousstate : *mut TOKEN_GROUPS, returnlength : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AdjustTokenPrivileges(tokenhandle : super::Foundation:: HANDLE, disableallprivileges : super::Foundation:: BOOL, newstate : *const TOKEN_PRIVILEGES, bufferlength : u32, previousstate : *mut TOKEN_PRIVILEGES, returnlength : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllocateAndInitializeSid(pidentifierauthority : *const SID_IDENTIFIER_AUTHORITY, nsubauthoritycount : u8, nsubauthority0 : u32, nsubauthority1 : u32, nsubauthority2 : u32, nsubauthority3 : u32, nsubauthority4 : u32, nsubauthority5 : u32, nsubauthority6 : u32, nsubauthority7 : u32, psid : *mut super::Foundation:: PSID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllocateLocallyUniqueId(luid : *mut super::Foundation:: LUID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AreAllAccessesGranted(grantedaccess : u32, desiredaccess : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AreAnyAccessesGranted(grantedaccess : u32, desiredaccess : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckTokenCapability(tokenhandle : super::Foundation:: HANDLE, capabilitysidtocheck : super::Foundation:: PSID, hascapability : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckTokenMembership(tokenhandle : super::Foundation:: HANDLE, sidtocheck : super::Foundation:: PSID, ismember : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckTokenMembershipEx(tokenhandle : super::Foundation:: HANDLE, sidtocheck : super::Foundation:: PSID, flags : u32, ismember : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertToAutoInheritPrivateObjectSecurity(parentdescriptor : PSECURITY_DESCRIPTOR, currentsecuritydescriptor : PSECURITY_DESCRIPTOR, newsecuritydescriptor : *mut PSECURITY_DESCRIPTOR, objecttype : *const ::windows_sys::core::GUID, isdirectoryobject : super::Foundation:: BOOLEAN, genericmapping : *const GENERIC_MAPPING) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CopySid(ndestinationsidlength : u32, pdestinationsid : super::Foundation:: PSID, psourcesid : super::Foundation:: PSID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePrivateObjectSecurity(parentdescriptor : PSECURITY_DESCRIPTOR, creatordescriptor : PSECURITY_DESCRIPTOR, newdescriptor : *mut PSECURITY_DESCRIPTOR, isdirectoryobject : super::Foundation:: BOOL, token : super::Foundation:: HANDLE, genericmapping : *const GENERIC_MAPPING) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePrivateObjectSecurityEx(parentdescriptor : PSECURITY_DESCRIPTOR, creatordescriptor : PSECURITY_DESCRIPTOR, newdescriptor : *mut PSECURITY_DESCRIPTOR, objecttype : *const ::windows_sys::core::GUID, iscontainerobject : super::Foundation:: BOOL, autoinheritflags : SECURITY_AUTO_INHERIT_FLAGS, token : super::Foundation:: HANDLE, genericmapping : *const GENERIC_MAPPING) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePrivateObjectSecurityWithMultipleInheritance(parentdescriptor : PSECURITY_DESCRIPTOR, creatordescriptor : PSECURITY_DESCRIPTOR, newdescriptor : *mut PSECURITY_DESCRIPTOR, objecttypes : *const *const ::windows_sys::core::GUID, guidcount : u32, iscontainerobject : super::Foundation:: BOOL, autoinheritflags : SECURITY_AUTO_INHERIT_FLAGS, token : super::Foundation:: HANDLE, genericmapping : *const GENERIC_MAPPING) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateRestrictedToken(existingtokenhandle : super::Foundation:: HANDLE, flags : CREATE_RESTRICTED_TOKEN_FLAGS, disablesidcount : u32, sidstodisable : *const SID_AND_ATTRIBUTES, deleteprivilegecount : u32, privilegestodelete : *const LUID_AND_ATTRIBUTES, restrictedsidcount : u32, sidstorestrict : *const SID_AND_ATTRIBUTES, newtokenhandle : *mut super::Foundation:: HANDLE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateWellKnownSid(wellknownsidtype : WELL_KNOWN_SID_TYPE, domainsid : super::Foundation:: PSID, psid : super::Foundation:: PSID, cbsid : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteAce(pacl : *mut ACL, dwaceindex : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-security-base-l1-2-2.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeriveCapabilitySidsFromName(capname : ::windows_sys::core::PCWSTR, capabilitygroupsids : *mut *mut super::Foundation:: PSID, capabilitygroupsidcount : *mut u32, capabilitysids : *mut *mut super::Foundation:: PSID, capabilitysidcount : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DestroyPrivateObjectSecurity(objectdescriptor : *const PSECURITY_DESCRIPTOR) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DuplicateToken(existingtokenhandle : super::Foundation:: HANDLE, impersonationlevel : SECURITY_IMPERSONATION_LEVEL, duplicatetokenhandle : *mut super::Foundation:: HANDLE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DuplicateTokenEx(hexistingtoken : super::Foundation:: HANDLE, dwdesiredaccess : TOKEN_ACCESS_MASK, lptokenattributes : *const SECURITY_ATTRIBUTES, impersonationlevel : SECURITY_IMPERSONATION_LEVEL, tokentype : TOKEN_TYPE, phnewtoken : *mut super::Foundation:: HANDLE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EqualDomainSid(psid1 : super::Foundation:: PSID, psid2 : super::Foundation:: PSID, pfequal : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EqualPrefixSid(psid1 : super::Foundation:: PSID, psid2 : super::Foundation:: PSID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EqualSid(psid1 : super::Foundation:: PSID, psid2 : super::Foundation:: PSID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstFreeAce(pacl : *const ACL, pace : *mut *mut ::core::ffi::c_void) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeSid(psid : super::Foundation:: PSID) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAce(pacl : *const ACL, dwaceindex : u32, pace : *mut *mut ::core::ffi::c_void) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAclInformation(pacl : *const ACL, paclinformation : *mut ::core::ffi::c_void, naclinformationlength : u32, dwaclinformationclass : ACL_INFORMATION_CLASS) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAppContainerAce(acl : *const ACL, startingaceindex : u32, appcontainerace : *mut *mut ::core::ffi::c_void, appcontaineraceindex : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCachedSigningLevel(file : super::Foundation:: HANDLE, flags : *mut u32, signinglevel : *mut u32, thumbprint : *mut u8, thumbprintsize : *mut u32, thumbprintalgorithm : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileSecurityA(lpfilename : ::windows_sys::core::PCSTR, requestedinformation : u32, psecuritydescriptor : PSECURITY_DESCRIPTOR, nlength : u32, lpnlengthneeded : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileSecurityW(lpfilename : ::windows_sys::core::PCWSTR, requestedinformation : u32, psecuritydescriptor : PSECURITY_DESCRIPTOR, nlength : u32, lpnlengthneeded : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetKernelObjectSecurity(handle : super::Foundation:: HANDLE, requestedinformation : u32, psecuritydescriptor : PSECURITY_DESCRIPTOR, nlength : u32, lpnlengthneeded : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLengthSid(psid : super::Foundation:: PSID) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrivateObjectSecurity(objectdescriptor : PSECURITY_DESCRIPTOR, securityinformation : OBJECT_SECURITY_INFORMATION, resultantdescriptor : PSECURITY_DESCRIPTOR, descriptorlength : u32, returnlength : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSecurityDescriptorControl(psecuritydescriptor : PSECURITY_DESCRIPTOR, pcontrol : *mut u16, lpdwrevision : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSecurityDescriptorDacl(psecuritydescriptor : PSECURITY_DESCRIPTOR, lpbdaclpresent : *mut super::Foundation:: BOOL, pdacl : *mut *mut ACL, lpbdacldefaulted : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSecurityDescriptorGroup(psecuritydescriptor : PSECURITY_DESCRIPTOR, pgroup : *mut super::Foundation:: PSID, lpbgroupdefaulted : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn GetSecurityDescriptorLength(psecuritydescriptor : PSECURITY_DESCRIPTOR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSecurityDescriptorOwner(psecuritydescriptor : PSECURITY_DESCRIPTOR, powner : *mut super::Foundation:: PSID, lpbownerdefaulted : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn GetSecurityDescriptorRMControl(securitydescriptor : PSECURITY_DESCRIPTOR, rmcontrol : *mut u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSecurityDescriptorSacl(psecuritydescriptor : PSECURITY_DESCRIPTOR, lpbsaclpresent : *mut super::Foundation:: BOOL, psacl : *mut *mut ACL, lpbsacldefaulted : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSidIdentifierAuthority(psid : super::Foundation:: PSID) -> *mut SID_IDENTIFIER_AUTHORITY); +::windows_targets::link!("advapi32.dll" "system" fn GetSidLengthRequired(nsubauthoritycount : u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSidSubAuthority(psid : super::Foundation:: PSID, nsubauthority : u32) -> *mut u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSidSubAuthorityCount(psid : super::Foundation:: PSID) -> *mut u8); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTokenInformation(tokenhandle : super::Foundation:: HANDLE, tokeninformationclass : TOKEN_INFORMATION_CLASS, tokeninformation : *mut ::core::ffi::c_void, tokeninformationlength : u32, returnlength : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUserObjectSecurity(hobj : super::Foundation:: HANDLE, psirequested : *const u32, psid : PSECURITY_DESCRIPTOR, nlength : u32, lpnlengthneeded : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowsAccountDomainSid(psid : super::Foundation:: PSID, pdomainsid : super::Foundation:: PSID, cbdomainsid : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImpersonateAnonymousToken(threadhandle : super::Foundation:: HANDLE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImpersonateLoggedOnUser(htoken : super::Foundation:: HANDLE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImpersonateSelf(impersonationlevel : SECURITY_IMPERSONATION_LEVEL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitializeAcl(pacl : *mut ACL, nacllength : u32, dwaclrevision : ACE_REVISION) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitializeSecurityDescriptor(psecuritydescriptor : PSECURITY_DESCRIPTOR, dwrevision : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitializeSid(sid : super::Foundation:: PSID, pidentifierauthority : *const SID_IDENTIFIER_AUTHORITY, nsubauthoritycount : u8) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsTokenRestricted(tokenhandle : super::Foundation:: HANDLE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsValidAcl(pacl : *const ACL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsValidSecurityDescriptor(psecuritydescriptor : PSECURITY_DESCRIPTOR) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsValidSid(psid : super::Foundation:: PSID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsWellKnownSid(psid : super::Foundation:: PSID, wellknownsidtype : WELL_KNOWN_SID_TYPE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LogonUserA(lpszusername : ::windows_sys::core::PCSTR, lpszdomain : ::windows_sys::core::PCSTR, lpszpassword : ::windows_sys::core::PCSTR, dwlogontype : LOGON32_LOGON, dwlogonprovider : LOGON32_PROVIDER, phtoken : *mut super::Foundation:: HANDLE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LogonUserExA(lpszusername : ::windows_sys::core::PCSTR, lpszdomain : ::windows_sys::core::PCSTR, lpszpassword : ::windows_sys::core::PCSTR, dwlogontype : LOGON32_LOGON, dwlogonprovider : LOGON32_PROVIDER, phtoken : *mut super::Foundation:: HANDLE, pplogonsid : *mut super::Foundation:: PSID, ppprofilebuffer : *mut *mut ::core::ffi::c_void, pdwprofilelength : *mut u32, pquotalimits : *mut QUOTA_LIMITS) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LogonUserExW(lpszusername : ::windows_sys::core::PCWSTR, lpszdomain : ::windows_sys::core::PCWSTR, lpszpassword : ::windows_sys::core::PCWSTR, dwlogontype : LOGON32_LOGON, dwlogonprovider : LOGON32_PROVIDER, phtoken : *mut super::Foundation:: HANDLE, pplogonsid : *mut super::Foundation:: PSID, ppprofilebuffer : *mut *mut ::core::ffi::c_void, pdwprofilelength : *mut u32, pquotalimits : *mut QUOTA_LIMITS) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LogonUserW(lpszusername : ::windows_sys::core::PCWSTR, lpszdomain : ::windows_sys::core::PCWSTR, lpszpassword : ::windows_sys::core::PCWSTR, dwlogontype : LOGON32_LOGON, dwlogonprovider : LOGON32_PROVIDER, phtoken : *mut super::Foundation:: HANDLE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupAccountNameA(lpsystemname : ::windows_sys::core::PCSTR, lpaccountname : ::windows_sys::core::PCSTR, sid : super::Foundation:: PSID, cbsid : *mut u32, referenceddomainname : ::windows_sys::core::PSTR, cchreferenceddomainname : *mut u32, peuse : *mut SID_NAME_USE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupAccountNameW(lpsystemname : ::windows_sys::core::PCWSTR, lpaccountname : ::windows_sys::core::PCWSTR, sid : super::Foundation:: PSID, cbsid : *mut u32, referenceddomainname : ::windows_sys::core::PWSTR, cchreferenceddomainname : *mut u32, peuse : *mut SID_NAME_USE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupAccountSidA(lpsystemname : ::windows_sys::core::PCSTR, sid : super::Foundation:: PSID, name : ::windows_sys::core::PSTR, cchname : *mut u32, referenceddomainname : ::windows_sys::core::PSTR, cchreferenceddomainname : *mut u32, peuse : *mut SID_NAME_USE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupAccountSidW(lpsystemname : ::windows_sys::core::PCWSTR, sid : super::Foundation:: PSID, name : ::windows_sys::core::PWSTR, cchname : *mut u32, referenceddomainname : ::windows_sys::core::PWSTR, cchreferenceddomainname : *mut u32, peuse : *mut SID_NAME_USE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupPrivilegeDisplayNameA(lpsystemname : ::windows_sys::core::PCSTR, lpname : ::windows_sys::core::PCSTR, lpdisplayname : ::windows_sys::core::PSTR, cchdisplayname : *mut u32, lplanguageid : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupPrivilegeDisplayNameW(lpsystemname : ::windows_sys::core::PCWSTR, lpname : ::windows_sys::core::PCWSTR, lpdisplayname : ::windows_sys::core::PWSTR, cchdisplayname : *mut u32, lplanguageid : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupPrivilegeNameA(lpsystemname : ::windows_sys::core::PCSTR, lpluid : *const super::Foundation:: LUID, lpname : ::windows_sys::core::PSTR, cchname : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupPrivilegeNameW(lpsystemname : ::windows_sys::core::PCWSTR, lpluid : *const super::Foundation:: LUID, lpname : ::windows_sys::core::PWSTR, cchname : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupPrivilegeValueA(lpsystemname : ::windows_sys::core::PCSTR, lpname : ::windows_sys::core::PCSTR, lpluid : *mut super::Foundation:: LUID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupPrivilegeValueW(lpsystemname : ::windows_sys::core::PCWSTR, lpname : ::windows_sys::core::PCWSTR, lpluid : *mut super::Foundation:: LUID) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MakeAbsoluteSD(pselfrelativesecuritydescriptor : PSECURITY_DESCRIPTOR, pabsolutesecuritydescriptor : PSECURITY_DESCRIPTOR, lpdwabsolutesecuritydescriptorsize : *mut u32, pdacl : *mut ACL, lpdwdaclsize : *mut u32, psacl : *mut ACL, lpdwsaclsize : *mut u32, powner : super::Foundation:: PSID, lpdwownersize : *mut u32, pprimarygroup : super::Foundation:: PSID, lpdwprimarygroupsize : *mut u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MakeSelfRelativeSD(pabsolutesecuritydescriptor : PSECURITY_DESCRIPTOR, pselfrelativesecuritydescriptor : PSECURITY_DESCRIPTOR, lpdwbufferlength : *mut u32) -> super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn MapGenericMask(accessmask : *mut u32, genericmapping : *const GENERIC_MAPPING) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObjectCloseAuditAlarmA(subsystemname : ::windows_sys::core::PCSTR, handleid : *const ::core::ffi::c_void, generateonclose : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObjectCloseAuditAlarmW(subsystemname : ::windows_sys::core::PCWSTR, handleid : *const ::core::ffi::c_void, generateonclose : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObjectDeleteAuditAlarmA(subsystemname : ::windows_sys::core::PCSTR, handleid : *const ::core::ffi::c_void, generateonclose : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObjectDeleteAuditAlarmW(subsystemname : ::windows_sys::core::PCWSTR, handleid : *const ::core::ffi::c_void, generateonclose : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObjectOpenAuditAlarmA(subsystemname : ::windows_sys::core::PCSTR, handleid : *const ::core::ffi::c_void, objecttypename : ::windows_sys::core::PCSTR, objectname : ::windows_sys::core::PCSTR, psecuritydescriptor : PSECURITY_DESCRIPTOR, clienttoken : super::Foundation:: HANDLE, desiredaccess : u32, grantedaccess : u32, privileges : *const PRIVILEGE_SET, objectcreation : super::Foundation:: BOOL, accessgranted : super::Foundation:: BOOL, generateonclose : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObjectOpenAuditAlarmW(subsystemname : ::windows_sys::core::PCWSTR, handleid : *const ::core::ffi::c_void, objecttypename : ::windows_sys::core::PCWSTR, objectname : ::windows_sys::core::PCWSTR, psecuritydescriptor : PSECURITY_DESCRIPTOR, clienttoken : super::Foundation:: HANDLE, desiredaccess : u32, grantedaccess : u32, privileges : *const PRIVILEGE_SET, objectcreation : super::Foundation:: BOOL, accessgranted : super::Foundation:: BOOL, generateonclose : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObjectPrivilegeAuditAlarmA(subsystemname : ::windows_sys::core::PCSTR, handleid : *const ::core::ffi::c_void, clienttoken : super::Foundation:: HANDLE, desiredaccess : u32, privileges : *const PRIVILEGE_SET, accessgranted : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObjectPrivilegeAuditAlarmW(subsystemname : ::windows_sys::core::PCWSTR, handleid : *const ::core::ffi::c_void, clienttoken : super::Foundation:: HANDLE, desiredaccess : u32, privileges : *const PRIVILEGE_SET, accessgranted : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrivilegeCheck(clienttoken : super::Foundation:: HANDLE, requiredprivileges : *mut PRIVILEGE_SET, pfresult : *mut super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrivilegedServiceAuditAlarmA(subsystemname : ::windows_sys::core::PCSTR, servicename : ::windows_sys::core::PCSTR, clienttoken : super::Foundation:: HANDLE, privileges : *const PRIVILEGE_SET, accessgranted : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrivilegedServiceAuditAlarmW(subsystemname : ::windows_sys::core::PCWSTR, servicename : ::windows_sys::core::PCWSTR, clienttoken : super::Foundation:: HANDLE, privileges : *const PRIVILEGE_SET, accessgranted : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn QuerySecurityAccessMask(securityinformation : OBJECT_SECURITY_INFORMATION, desiredaccess : *mut u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RevertToSelf() -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlConvertSidToUnicodeString(unicodestring : *mut super::Foundation:: UNICODE_STRING, sid : super::Foundation:: PSID, allocatedestinationstring : super::Foundation:: BOOLEAN) -> super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlNormalizeSecurityDescriptor(securitydescriptor : *mut PSECURITY_DESCRIPTOR, securitydescriptorlength : u32, newsecuritydescriptor : *mut PSECURITY_DESCRIPTOR, newsecuritydescriptorlength : *mut u32, checkonly : super::Foundation:: BOOLEAN) -> super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetAclInformation(pacl : *mut ACL, paclinformation : *const ::core::ffi::c_void, naclinformationlength : u32, dwaclinformationclass : ACL_INFORMATION_CLASS) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCachedSigningLevel(sourcefiles : *const super::Foundation:: HANDLE, sourcefilecount : u32, flags : u32, targetfile : super::Foundation:: HANDLE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileSecurityA(lpfilename : ::windows_sys::core::PCSTR, securityinformation : OBJECT_SECURITY_INFORMATION, psecuritydescriptor : PSECURITY_DESCRIPTOR) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileSecurityW(lpfilename : ::windows_sys::core::PCWSTR, securityinformation : OBJECT_SECURITY_INFORMATION, psecuritydescriptor : PSECURITY_DESCRIPTOR) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetKernelObjectSecurity(handle : super::Foundation:: HANDLE, securityinformation : OBJECT_SECURITY_INFORMATION, securitydescriptor : PSECURITY_DESCRIPTOR) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPrivateObjectSecurity(securityinformation : OBJECT_SECURITY_INFORMATION, modificationdescriptor : PSECURITY_DESCRIPTOR, objectssecuritydescriptor : *mut PSECURITY_DESCRIPTOR, genericmapping : *const GENERIC_MAPPING, token : super::Foundation:: HANDLE) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPrivateObjectSecurityEx(securityinformation : OBJECT_SECURITY_INFORMATION, modificationdescriptor : PSECURITY_DESCRIPTOR, objectssecuritydescriptor : *mut PSECURITY_DESCRIPTOR, autoinheritflags : SECURITY_AUTO_INHERIT_FLAGS, genericmapping : *const GENERIC_MAPPING, token : super::Foundation:: HANDLE) -> super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn SetSecurityAccessMask(securityinformation : OBJECT_SECURITY_INFORMATION, desiredaccess : *mut u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSecurityDescriptorControl(psecuritydescriptor : PSECURITY_DESCRIPTOR, controlbitsofinterest : SECURITY_DESCRIPTOR_CONTROL, controlbitstoset : SECURITY_DESCRIPTOR_CONTROL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSecurityDescriptorDacl(psecuritydescriptor : PSECURITY_DESCRIPTOR, bdaclpresent : super::Foundation:: BOOL, pdacl : *const ACL, bdacldefaulted : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSecurityDescriptorGroup(psecuritydescriptor : PSECURITY_DESCRIPTOR, pgroup : super::Foundation:: PSID, bgroupdefaulted : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSecurityDescriptorOwner(psecuritydescriptor : PSECURITY_DESCRIPTOR, powner : super::Foundation:: PSID, bownerdefaulted : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn SetSecurityDescriptorRMControl(securitydescriptor : PSECURITY_DESCRIPTOR, rmcontrol : *const u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSecurityDescriptorSacl(psecuritydescriptor : PSECURITY_DESCRIPTOR, bsaclpresent : super::Foundation:: BOOL, psacl : *const ACL, bsacldefaulted : super::Foundation:: BOOL) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetTokenInformation(tokenhandle : super::Foundation:: HANDLE, tokeninformationclass : TOKEN_INFORMATION_CLASS, tokeninformation : *const ::core::ffi::c_void, tokeninformationlength : u32) -> super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUserObjectSecurity(hobj : super::Foundation:: HANDLE, psirequested : *const OBJECT_SECURITY_INFORMATION, psid : PSECURITY_DESCRIPTOR) -> super::Foundation:: BOOL); +pub const ACE_INHERITED_OBJECT_TYPE_PRESENT: SYSTEM_AUDIT_OBJECT_ACE_FLAGS = 2u32; +pub const ACE_OBJECT_TYPE_PRESENT: SYSTEM_AUDIT_OBJECT_ACE_FLAGS = 1u32; +pub const ACL_REVISION: ACE_REVISION = 2u32; +pub const ACL_REVISION_DS: ACE_REVISION = 4u32; +pub const ATTRIBUTE_SECURITY_INFORMATION: OBJECT_SECURITY_INFORMATION = 32u32; +pub const AclRevisionInformation: ACL_INFORMATION_CLASS = 1i32; +pub const AclSizeInformation: ACL_INFORMATION_CLASS = 2i32; +pub const AuditEventDirectoryServiceAccess: AUDIT_EVENT_TYPE = 1i32; +pub const AuditEventObjectAccess: AUDIT_EVENT_TYPE = 0i32; +pub const BACKUP_SECURITY_INFORMATION: OBJECT_SECURITY_INFORMATION = 65536u32; +pub const CLAIM_SECURITY_ATTRIBUTE_DISABLED: CLAIM_SECURITY_ATTRIBUTE_FLAGS = 16u32; +pub const CLAIM_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT: CLAIM_SECURITY_ATTRIBUTE_FLAGS = 8u32; +pub const CLAIM_SECURITY_ATTRIBUTE_MANDATORY: CLAIM_SECURITY_ATTRIBUTE_FLAGS = 32u32; +pub const CLAIM_SECURITY_ATTRIBUTE_NON_INHERITABLE: CLAIM_SECURITY_ATTRIBUTE_FLAGS = 1u32; +pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_BOOLEAN: CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE = 6u16; +pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_FQBN: CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE = 4u16; +pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_INT64: CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE = 1u16; +pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING: CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE = 16u16; +pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_SID: CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE = 5u16; +pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_STRING: CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE = 3u16; +pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_UINT64: CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE = 2u16; +pub const CLAIM_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY: CLAIM_SECURITY_ATTRIBUTE_FLAGS = 4u32; +pub const CLAIM_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE: CLAIM_SECURITY_ATTRIBUTE_FLAGS = 2u32; +pub const CONTAINER_INHERIT_ACE: ACE_FLAGS = 2u32; +pub const CVT_SECONDS: u32 = 1u32; +pub const DACL_SECURITY_INFORMATION: OBJECT_SECURITY_INFORMATION = 4u32; +pub const DISABLE_MAX_PRIVILEGE: CREATE_RESTRICTED_TOKEN_FLAGS = 1u32; +pub const ENUM_PERIOD_DAYS: ENUM_PERIOD = 3i32; +pub const ENUM_PERIOD_HOURS: ENUM_PERIOD = 2i32; +pub const ENUM_PERIOD_INVALID: ENUM_PERIOD = -1i32; +pub const ENUM_PERIOD_MINUTES: ENUM_PERIOD = 1i32; +pub const ENUM_PERIOD_MONTHS: ENUM_PERIOD = 5i32; +pub const ENUM_PERIOD_SECONDS: ENUM_PERIOD = 0i32; +pub const ENUM_PERIOD_WEEKS: ENUM_PERIOD = 4i32; +pub const ENUM_PERIOD_YEARS: ENUM_PERIOD = 6i32; +pub const FAILED_ACCESS_ACE_FLAG: ACE_FLAGS = 128u32; +pub const GROUP_SECURITY_INFORMATION: OBJECT_SECURITY_INFORMATION = 2u32; +pub const INHERITED_ACE: ACE_FLAGS = 16u32; +pub const INHERIT_NO_PROPAGATE: ACE_FLAGS = 4u32; +pub const INHERIT_ONLY: ACE_FLAGS = 8u32; +pub const INHERIT_ONLY_ACE: ACE_FLAGS = 8u32; +pub const LABEL_SECURITY_INFORMATION: OBJECT_SECURITY_INFORMATION = 16u32; +pub const LOGON32_LOGON_BATCH: LOGON32_LOGON = 4u32; +pub const LOGON32_LOGON_INTERACTIVE: LOGON32_LOGON = 2u32; +pub const LOGON32_LOGON_NETWORK: LOGON32_LOGON = 3u32; +pub const LOGON32_LOGON_NETWORK_CLEARTEXT: LOGON32_LOGON = 8u32; +pub const LOGON32_LOGON_NEW_CREDENTIALS: LOGON32_LOGON = 9u32; +pub const LOGON32_LOGON_SERVICE: LOGON32_LOGON = 5u32; +pub const LOGON32_LOGON_UNLOCK: LOGON32_LOGON = 7u32; +pub const LOGON32_PROVIDER_DEFAULT: LOGON32_PROVIDER = 0u32; +pub const LOGON32_PROVIDER_WINNT40: LOGON32_PROVIDER = 2u32; +pub const LOGON32_PROVIDER_WINNT50: LOGON32_PROVIDER = 3u32; +pub const LUA_TOKEN: CREATE_RESTRICTED_TOKEN_FLAGS = 4u32; +pub const MandatoryLevelCount: MANDATORY_LEVEL = 6i32; +pub const MandatoryLevelHigh: MANDATORY_LEVEL = 3i32; +pub const MandatoryLevelLow: MANDATORY_LEVEL = 1i32; +pub const MandatoryLevelMedium: MANDATORY_LEVEL = 2i32; +pub const MandatoryLevelSecureProcess: MANDATORY_LEVEL = 5i32; +pub const MandatoryLevelSystem: MANDATORY_LEVEL = 4i32; +pub const MandatoryLevelUntrusted: MANDATORY_LEVEL = 0i32; +pub const MaxTokenInfoClass: TOKEN_INFORMATION_CLASS = 49i32; +pub const NO_INHERITANCE: ACE_FLAGS = 0u32; +pub const NO_PROPAGATE_INHERIT_ACE: ACE_FLAGS = 4u32; +pub const OBJECT_INHERIT_ACE: ACE_FLAGS = 1u32; +pub const OWNER_SECURITY_INFORMATION: OBJECT_SECURITY_INFORMATION = 1u32; +pub const PROTECTED_DACL_SECURITY_INFORMATION: OBJECT_SECURITY_INFORMATION = 2147483648u32; +pub const PROTECTED_SACL_SECURITY_INFORMATION: OBJECT_SECURITY_INFORMATION = 1073741824u32; +pub const SACL_SECURITY_INFORMATION: OBJECT_SECURITY_INFORMATION = 8u32; +pub const SANDBOX_INERT: CREATE_RESTRICTED_TOKEN_FLAGS = 2u32; +pub const SCOPE_SECURITY_INFORMATION: OBJECT_SECURITY_INFORMATION = 64u32; +pub const SECURITY_APP_PACKAGE_AUTHORITY: SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY { Value: [0, 0, 0, 0, 0, 15] }; +pub const SECURITY_AUTHENTICATION_AUTHORITY: SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY { Value: [0, 0, 0, 0, 0, 18] }; +pub const SECURITY_CREATOR_SID_AUTHORITY: SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY { Value: [0, 0, 0, 0, 0, 3] }; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const SECURITY_DYNAMIC_TRACKING: super::Foundation::BOOLEAN = 1u8; +pub const SECURITY_LOCAL_SID_AUTHORITY: SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY { Value: [0, 0, 0, 0, 0, 2] }; +pub const SECURITY_MANDATORY_LABEL_AUTHORITY: SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY { Value: [0, 0, 0, 0, 0, 16] }; +pub const SECURITY_NON_UNIQUE_AUTHORITY: SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY { Value: [0, 0, 0, 0, 0, 4] }; +pub const SECURITY_NT_AUTHORITY: SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY { Value: [0, 0, 0, 0, 0, 5] }; +pub const SECURITY_NULL_SID_AUTHORITY: SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY { Value: [0, 0, 0, 0, 0, 0] }; +pub const SECURITY_PROCESS_TRUST_AUTHORITY: SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY { Value: [0, 0, 0, 0, 0, 19] }; +pub const SECURITY_RESOURCE_MANAGER_AUTHORITY: SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY { Value: [0, 0, 0, 0, 0, 9] }; +pub const SECURITY_SCOPED_POLICY_ID_AUTHORITY: SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY { Value: [0, 0, 0, 0, 0, 17] }; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const SECURITY_STATIC_TRACKING: super::Foundation::BOOLEAN = 0u8; +pub const SECURITY_WORLD_SID_AUTHORITY: SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY { Value: [0, 0, 0, 0, 0, 1] }; +pub const SEF_AVOID_OWNER_CHECK: SECURITY_AUTO_INHERIT_FLAGS = 16u32; +pub const SEF_AVOID_OWNER_RESTRICTION: SECURITY_AUTO_INHERIT_FLAGS = 4096u32; +pub const SEF_AVOID_PRIVILEGE_CHECK: SECURITY_AUTO_INHERIT_FLAGS = 8u32; +pub const SEF_DACL_AUTO_INHERIT: SECURITY_AUTO_INHERIT_FLAGS = 1u32; +pub const SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT: SECURITY_AUTO_INHERIT_FLAGS = 4u32; +pub const SEF_DEFAULT_GROUP_FROM_PARENT: SECURITY_AUTO_INHERIT_FLAGS = 64u32; +pub const SEF_DEFAULT_OWNER_FROM_PARENT: SECURITY_AUTO_INHERIT_FLAGS = 32u32; +pub const SEF_MACL_NO_EXECUTE_UP: SECURITY_AUTO_INHERIT_FLAGS = 1024u32; +pub const SEF_MACL_NO_READ_UP: SECURITY_AUTO_INHERIT_FLAGS = 512u32; +pub const SEF_MACL_NO_WRITE_UP: SECURITY_AUTO_INHERIT_FLAGS = 256u32; +pub const SEF_SACL_AUTO_INHERIT: SECURITY_AUTO_INHERIT_FLAGS = 2u32; +pub const SE_ASSIGNPRIMARYTOKEN_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeAssignPrimaryTokenPrivilege"); +pub const SE_AUDIT_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeAuditPrivilege"); +pub const SE_BACKUP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeBackupPrivilege"); +pub const SE_CHANGE_NOTIFY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeChangeNotifyPrivilege"); +pub const SE_CREATE_GLOBAL_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeCreateGlobalPrivilege"); +pub const SE_CREATE_PAGEFILE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeCreatePagefilePrivilege"); +pub const SE_CREATE_PERMANENT_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeCreatePermanentPrivilege"); +pub const SE_CREATE_SYMBOLIC_LINK_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeCreateSymbolicLinkPrivilege"); +pub const SE_CREATE_TOKEN_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeCreateTokenPrivilege"); +pub const SE_DACL_AUTO_INHERITED: SECURITY_DESCRIPTOR_CONTROL = 1024u16; +pub const SE_DACL_AUTO_INHERIT_REQ: SECURITY_DESCRIPTOR_CONTROL = 256u16; +pub const SE_DACL_DEFAULTED: SECURITY_DESCRIPTOR_CONTROL = 8u16; +pub const SE_DACL_PRESENT: SECURITY_DESCRIPTOR_CONTROL = 4u16; +pub const SE_DACL_PROTECTED: SECURITY_DESCRIPTOR_CONTROL = 4096u16; +pub const SE_DEBUG_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeDebugPrivilege"); +pub const SE_DELEGATE_SESSION_USER_IMPERSONATE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeDelegateSessionUserImpersonatePrivilege"); +pub const SE_ENABLE_DELEGATION_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeEnableDelegationPrivilege"); +pub const SE_GROUP_DEFAULTED: SECURITY_DESCRIPTOR_CONTROL = 2u16; +pub const SE_IMPERSONATE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeImpersonatePrivilege"); +pub const SE_INCREASE_QUOTA_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeIncreaseQuotaPrivilege"); +pub const SE_INC_BASE_PRIORITY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeIncreaseBasePriorityPrivilege"); +pub const SE_INC_WORKING_SET_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeIncreaseWorkingSetPrivilege"); +pub const SE_LOAD_DRIVER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeLoadDriverPrivilege"); +pub const SE_LOCK_MEMORY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeLockMemoryPrivilege"); +pub const SE_MACHINE_ACCOUNT_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeMachineAccountPrivilege"); +pub const SE_MANAGE_VOLUME_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeManageVolumePrivilege"); +pub const SE_OWNER_DEFAULTED: SECURITY_DESCRIPTOR_CONTROL = 1u16; +pub const SE_PRIVILEGE_ENABLED: TOKEN_PRIVILEGES_ATTRIBUTES = 2u32; +pub const SE_PRIVILEGE_ENABLED_BY_DEFAULT: TOKEN_PRIVILEGES_ATTRIBUTES = 1u32; +pub const SE_PRIVILEGE_REMOVED: TOKEN_PRIVILEGES_ATTRIBUTES = 4u32; +pub const SE_PRIVILEGE_USED_FOR_ACCESS: TOKEN_PRIVILEGES_ATTRIBUTES = 2147483648u32; +pub const SE_PROF_SINGLE_PROCESS_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeProfileSingleProcessPrivilege"); +pub const SE_RELABEL_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeRelabelPrivilege"); +pub const SE_REMOTE_SHUTDOWN_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeRemoteShutdownPrivilege"); +pub const SE_RESTORE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeRestorePrivilege"); +pub const SE_RM_CONTROL_VALID: SECURITY_DESCRIPTOR_CONTROL = 16384u16; +pub const SE_SACL_AUTO_INHERITED: SECURITY_DESCRIPTOR_CONTROL = 2048u16; +pub const SE_SACL_AUTO_INHERIT_REQ: SECURITY_DESCRIPTOR_CONTROL = 512u16; +pub const SE_SACL_DEFAULTED: SECURITY_DESCRIPTOR_CONTROL = 32u16; +pub const SE_SACL_PRESENT: SECURITY_DESCRIPTOR_CONTROL = 16u16; +pub const SE_SACL_PROTECTED: SECURITY_DESCRIPTOR_CONTROL = 8192u16; +pub const SE_SECURITY_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeSecurityPrivilege"); +pub const SE_SELF_RELATIVE: SECURITY_DESCRIPTOR_CONTROL = 32768u16; +pub const SE_SHUTDOWN_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeShutdownPrivilege"); +pub const SE_SYNC_AGENT_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeSyncAgentPrivilege"); +pub const SE_SYSTEMTIME_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeSystemtimePrivilege"); +pub const SE_SYSTEM_ENVIRONMENT_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeSystemEnvironmentPrivilege"); +pub const SE_SYSTEM_PROFILE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeSystemProfilePrivilege"); +pub const SE_TAKE_OWNERSHIP_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeTakeOwnershipPrivilege"); +pub const SE_TCB_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeTcbPrivilege"); +pub const SE_TIME_ZONE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeTimeZonePrivilege"); +pub const SE_TRUSTED_CREDMAN_ACCESS_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeTrustedCredManAccessPrivilege"); +pub const SE_UNDOCK_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeUndockPrivilege"); +pub const SE_UNSOLICITED_INPUT_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SeUnsolicitedInputPrivilege"); +pub const SUB_CONTAINERS_AND_OBJECTS_INHERIT: ACE_FLAGS = 3u32; +pub const SUB_CONTAINERS_ONLY_INHERIT: ACE_FLAGS = 2u32; +pub const SUB_OBJECTS_ONLY_INHERIT: ACE_FLAGS = 1u32; +pub const SUCCESSFUL_ACCESS_ACE_FLAG: ACE_FLAGS = 64u32; +pub const SecurityAnonymous: SECURITY_IMPERSONATION_LEVEL = 0i32; +pub const SecurityDelegation: SECURITY_IMPERSONATION_LEVEL = 3i32; +pub const SecurityIdentification: SECURITY_IMPERSONATION_LEVEL = 1i32; +pub const SecurityImpersonation: SECURITY_IMPERSONATION_LEVEL = 2i32; +pub const SidTypeAlias: SID_NAME_USE = 4i32; +pub const SidTypeComputer: SID_NAME_USE = 9i32; +pub const SidTypeDeletedAccount: SID_NAME_USE = 6i32; +pub const SidTypeDomain: SID_NAME_USE = 3i32; +pub const SidTypeGroup: SID_NAME_USE = 2i32; +pub const SidTypeInvalid: SID_NAME_USE = 7i32; +pub const SidTypeLabel: SID_NAME_USE = 10i32; +pub const SidTypeLogonSession: SID_NAME_USE = 11i32; +pub const SidTypeUnknown: SID_NAME_USE = 8i32; +pub const SidTypeUser: SID_NAME_USE = 1i32; +pub const SidTypeWellKnownGroup: SID_NAME_USE = 5i32; +pub const TOKEN_ACCESS_PSEUDO_HANDLE: TOKEN_ACCESS_MASK = 24u32; +pub const TOKEN_ACCESS_PSEUDO_HANDLE_WIN8: TOKEN_ACCESS_MASK = 24u32; +pub const TOKEN_ACCESS_SYSTEM_SECURITY: TOKEN_ACCESS_MASK = 16777216u32; +pub const TOKEN_ADJUST_DEFAULT: TOKEN_ACCESS_MASK = 128u32; +pub const TOKEN_ADJUST_GROUPS: TOKEN_ACCESS_MASK = 64u32; +pub const TOKEN_ADJUST_PRIVILEGES: TOKEN_ACCESS_MASK = 32u32; +pub const TOKEN_ADJUST_SESSIONID: TOKEN_ACCESS_MASK = 256u32; +pub const TOKEN_ALL_ACCESS: TOKEN_ACCESS_MASK = 983551u32; +pub const TOKEN_ASSIGN_PRIMARY: TOKEN_ACCESS_MASK = 1u32; +pub const TOKEN_DELETE: TOKEN_ACCESS_MASK = 65536u32; +pub const TOKEN_DUPLICATE: TOKEN_ACCESS_MASK = 2u32; +pub const TOKEN_EXECUTE: TOKEN_ACCESS_MASK = 131072u32; +pub const TOKEN_IMPERSONATE: TOKEN_ACCESS_MASK = 4u32; +pub const TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN: TOKEN_MANDATORY_POLICY_ID = 2u32; +pub const TOKEN_MANDATORY_POLICY_NO_WRITE_UP: TOKEN_MANDATORY_POLICY_ID = 1u32; +pub const TOKEN_MANDATORY_POLICY_OFF: TOKEN_MANDATORY_POLICY_ID = 0u32; +pub const TOKEN_MANDATORY_POLICY_VALID_MASK: TOKEN_MANDATORY_POLICY_ID = 3u32; +pub const TOKEN_QUERY: TOKEN_ACCESS_MASK = 8u32; +pub const TOKEN_QUERY_SOURCE: TOKEN_ACCESS_MASK = 16u32; +pub const TOKEN_READ: TOKEN_ACCESS_MASK = 131080u32; +pub const TOKEN_READ_CONTROL: TOKEN_ACCESS_MASK = 131072u32; +pub const TOKEN_TRUST_CONSTRAINT_MASK: TOKEN_ACCESS_MASK = 131096u32; +pub const TOKEN_WRITE: TOKEN_ACCESS_MASK = 131296u32; +pub const TOKEN_WRITE_DAC: TOKEN_ACCESS_MASK = 262144u32; +pub const TOKEN_WRITE_OWNER: TOKEN_ACCESS_MASK = 524288u32; +pub const TokenAccessInformation: TOKEN_INFORMATION_CLASS = 22i32; +pub const TokenAppContainerNumber: TOKEN_INFORMATION_CLASS = 32i32; +pub const TokenAppContainerSid: TOKEN_INFORMATION_CLASS = 31i32; +pub const TokenAuditPolicy: TOKEN_INFORMATION_CLASS = 16i32; +pub const TokenBnoIsolation: TOKEN_INFORMATION_CLASS = 44i32; +pub const TokenCapabilities: TOKEN_INFORMATION_CLASS = 30i32; +pub const TokenChildProcessFlags: TOKEN_INFORMATION_CLASS = 45i32; +pub const TokenDefaultDacl: TOKEN_INFORMATION_CLASS = 6i32; +pub const TokenDeviceClaimAttributes: TOKEN_INFORMATION_CLASS = 34i32; +pub const TokenDeviceGroups: TOKEN_INFORMATION_CLASS = 37i32; +pub const TokenElevation: TOKEN_INFORMATION_CLASS = 20i32; +pub const TokenElevationType: TOKEN_INFORMATION_CLASS = 18i32; +pub const TokenElevationTypeDefault: TOKEN_ELEVATION_TYPE = 1i32; +pub const TokenElevationTypeFull: TOKEN_ELEVATION_TYPE = 2i32; +pub const TokenElevationTypeLimited: TOKEN_ELEVATION_TYPE = 3i32; +pub const TokenGroups: TOKEN_INFORMATION_CLASS = 2i32; +pub const TokenGroupsAndPrivileges: TOKEN_INFORMATION_CLASS = 13i32; +pub const TokenHasRestrictions: TOKEN_INFORMATION_CLASS = 21i32; +pub const TokenImpersonation: TOKEN_TYPE = 2i32; +pub const TokenImpersonationLevel: TOKEN_INFORMATION_CLASS = 9i32; +pub const TokenIntegrityLevel: TOKEN_INFORMATION_CLASS = 25i32; +pub const TokenIsAppContainer: TOKEN_INFORMATION_CLASS = 29i32; +pub const TokenIsAppSilo: TOKEN_INFORMATION_CLASS = 48i32; +pub const TokenIsLessPrivilegedAppContainer: TOKEN_INFORMATION_CLASS = 46i32; +pub const TokenIsRestricted: TOKEN_INFORMATION_CLASS = 40i32; +pub const TokenIsSandboxed: TOKEN_INFORMATION_CLASS = 47i32; +pub const TokenLinkedToken: TOKEN_INFORMATION_CLASS = 19i32; +pub const TokenLogonSid: TOKEN_INFORMATION_CLASS = 28i32; +pub const TokenMandatoryPolicy: TOKEN_INFORMATION_CLASS = 27i32; +pub const TokenOrigin: TOKEN_INFORMATION_CLASS = 17i32; +pub const TokenOwner: TOKEN_INFORMATION_CLASS = 4i32; +pub const TokenPrimary: TOKEN_TYPE = 1i32; +pub const TokenPrimaryGroup: TOKEN_INFORMATION_CLASS = 5i32; +pub const TokenPrivateNameSpace: TOKEN_INFORMATION_CLASS = 42i32; +pub const TokenPrivileges: TOKEN_INFORMATION_CLASS = 3i32; +pub const TokenProcessTrustLevel: TOKEN_INFORMATION_CLASS = 41i32; +pub const TokenRestrictedDeviceClaimAttributes: TOKEN_INFORMATION_CLASS = 36i32; +pub const TokenRestrictedDeviceGroups: TOKEN_INFORMATION_CLASS = 38i32; +pub const TokenRestrictedSids: TOKEN_INFORMATION_CLASS = 11i32; +pub const TokenRestrictedUserClaimAttributes: TOKEN_INFORMATION_CLASS = 35i32; +pub const TokenSandBoxInert: TOKEN_INFORMATION_CLASS = 15i32; +pub const TokenSecurityAttributes: TOKEN_INFORMATION_CLASS = 39i32; +pub const TokenSessionId: TOKEN_INFORMATION_CLASS = 12i32; +pub const TokenSessionReference: TOKEN_INFORMATION_CLASS = 14i32; +pub const TokenSingletonAttributes: TOKEN_INFORMATION_CLASS = 43i32; +pub const TokenSource: TOKEN_INFORMATION_CLASS = 7i32; +pub const TokenStatistics: TOKEN_INFORMATION_CLASS = 10i32; +pub const TokenType: TOKEN_INFORMATION_CLASS = 8i32; +pub const TokenUIAccess: TOKEN_INFORMATION_CLASS = 26i32; +pub const TokenUser: TOKEN_INFORMATION_CLASS = 1i32; +pub const TokenUserClaimAttributes: TOKEN_INFORMATION_CLASS = 33i32; +pub const TokenVirtualizationAllowed: TOKEN_INFORMATION_CLASS = 23i32; +pub const TokenVirtualizationEnabled: TOKEN_INFORMATION_CLASS = 24i32; +pub const UNPROTECTED_DACL_SECURITY_INFORMATION: OBJECT_SECURITY_INFORMATION = 536870912u32; +pub const UNPROTECTED_SACL_SECURITY_INFORMATION: OBJECT_SECURITY_INFORMATION = 268435456u32; +pub const WRITE_RESTRICTED: CREATE_RESTRICTED_TOKEN_FLAGS = 8u32; +pub const WinAccountAdministratorSid: WELL_KNOWN_SID_TYPE = 38i32; +pub const WinAccountCertAdminsSid: WELL_KNOWN_SID_TYPE = 46i32; +pub const WinAccountCloneableControllersSid: WELL_KNOWN_SID_TYPE = 100i32; +pub const WinAccountComputersSid: WELL_KNOWN_SID_TYPE = 44i32; +pub const WinAccountControllersSid: WELL_KNOWN_SID_TYPE = 45i32; +pub const WinAccountDefaultSystemManagedSid: WELL_KNOWN_SID_TYPE = 110i32; +pub const WinAccountDomainAdminsSid: WELL_KNOWN_SID_TYPE = 41i32; +pub const WinAccountDomainGuestsSid: WELL_KNOWN_SID_TYPE = 43i32; +pub const WinAccountDomainUsersSid: WELL_KNOWN_SID_TYPE = 42i32; +pub const WinAccountEnterpriseAdminsSid: WELL_KNOWN_SID_TYPE = 48i32; +pub const WinAccountEnterpriseKeyAdminsSid: WELL_KNOWN_SID_TYPE = 114i32; +pub const WinAccountGuestSid: WELL_KNOWN_SID_TYPE = 39i32; +pub const WinAccountKeyAdminsSid: WELL_KNOWN_SID_TYPE = 113i32; +pub const WinAccountKrbtgtSid: WELL_KNOWN_SID_TYPE = 40i32; +pub const WinAccountPolicyAdminsSid: WELL_KNOWN_SID_TYPE = 49i32; +pub const WinAccountProtectedUsersSid: WELL_KNOWN_SID_TYPE = 107i32; +pub const WinAccountRasAndIasServersSid: WELL_KNOWN_SID_TYPE = 50i32; +pub const WinAccountReadonlyControllersSid: WELL_KNOWN_SID_TYPE = 75i32; +pub const WinAccountSchemaAdminsSid: WELL_KNOWN_SID_TYPE = 47i32; +pub const WinAnonymousSid: WELL_KNOWN_SID_TYPE = 13i32; +pub const WinApplicationPackageAuthoritySid: WELL_KNOWN_SID_TYPE = 83i32; +pub const WinAuthenticatedUserSid: WELL_KNOWN_SID_TYPE = 17i32; +pub const WinAuthenticationAuthorityAssertedSid: WELL_KNOWN_SID_TYPE = 103i32; +pub const WinAuthenticationFreshKeyAuthSid: WELL_KNOWN_SID_TYPE = 118i32; +pub const WinAuthenticationKeyPropertyAttestationSid: WELL_KNOWN_SID_TYPE = 117i32; +pub const WinAuthenticationKeyPropertyMFASid: WELL_KNOWN_SID_TYPE = 116i32; +pub const WinAuthenticationKeyTrustSid: WELL_KNOWN_SID_TYPE = 115i32; +pub const WinAuthenticationServiceAssertedSid: WELL_KNOWN_SID_TYPE = 104i32; +pub const WinBatchSid: WELL_KNOWN_SID_TYPE = 10i32; +pub const WinBuiltinAccessControlAssistanceOperatorsSid: WELL_KNOWN_SID_TYPE = 101i32; +pub const WinBuiltinAccountOperatorsSid: WELL_KNOWN_SID_TYPE = 30i32; +pub const WinBuiltinAdministratorsSid: WELL_KNOWN_SID_TYPE = 26i32; +pub const WinBuiltinAnyPackageSid: WELL_KNOWN_SID_TYPE = 84i32; +pub const WinBuiltinAuthorizationAccessSid: WELL_KNOWN_SID_TYPE = 59i32; +pub const WinBuiltinBackupOperatorsSid: WELL_KNOWN_SID_TYPE = 33i32; +pub const WinBuiltinCertSvcDComAccessGroup: WELL_KNOWN_SID_TYPE = 78i32; +pub const WinBuiltinCryptoOperatorsSid: WELL_KNOWN_SID_TYPE = 64i32; +pub const WinBuiltinDCOMUsersSid: WELL_KNOWN_SID_TYPE = 61i32; +pub const WinBuiltinDefaultSystemManagedGroupSid: WELL_KNOWN_SID_TYPE = 111i32; +pub const WinBuiltinDeviceOwnersSid: WELL_KNOWN_SID_TYPE = 119i32; +pub const WinBuiltinDomainSid: WELL_KNOWN_SID_TYPE = 25i32; +pub const WinBuiltinEventLogReadersGroup: WELL_KNOWN_SID_TYPE = 76i32; +pub const WinBuiltinGuestsSid: WELL_KNOWN_SID_TYPE = 28i32; +pub const WinBuiltinHyperVAdminsSid: WELL_KNOWN_SID_TYPE = 99i32; +pub const WinBuiltinIUsersSid: WELL_KNOWN_SID_TYPE = 62i32; +pub const WinBuiltinIncomingForestTrustBuildersSid: WELL_KNOWN_SID_TYPE = 56i32; +pub const WinBuiltinNetworkConfigurationOperatorsSid: WELL_KNOWN_SID_TYPE = 37i32; +pub const WinBuiltinPerfLoggingUsersSid: WELL_KNOWN_SID_TYPE = 58i32; +pub const WinBuiltinPerfMonitoringUsersSid: WELL_KNOWN_SID_TYPE = 57i32; +pub const WinBuiltinPowerUsersSid: WELL_KNOWN_SID_TYPE = 29i32; +pub const WinBuiltinPreWindows2000CompatibleAccessSid: WELL_KNOWN_SID_TYPE = 35i32; +pub const WinBuiltinPrintOperatorsSid: WELL_KNOWN_SID_TYPE = 32i32; +pub const WinBuiltinRDSEndpointServersSid: WELL_KNOWN_SID_TYPE = 96i32; +pub const WinBuiltinRDSManagementServersSid: WELL_KNOWN_SID_TYPE = 97i32; +pub const WinBuiltinRDSRemoteAccessServersSid: WELL_KNOWN_SID_TYPE = 95i32; +pub const WinBuiltinRemoteDesktopUsersSid: WELL_KNOWN_SID_TYPE = 36i32; +pub const WinBuiltinRemoteManagementUsersSid: WELL_KNOWN_SID_TYPE = 102i32; +pub const WinBuiltinReplicatorSid: WELL_KNOWN_SID_TYPE = 34i32; +pub const WinBuiltinStorageReplicaAdminsSid: WELL_KNOWN_SID_TYPE = 112i32; +pub const WinBuiltinSystemOperatorsSid: WELL_KNOWN_SID_TYPE = 31i32; +pub const WinBuiltinTerminalServerLicenseServersSid: WELL_KNOWN_SID_TYPE = 60i32; +pub const WinBuiltinUsersSid: WELL_KNOWN_SID_TYPE = 27i32; +pub const WinCacheablePrincipalsGroupSid: WELL_KNOWN_SID_TYPE = 72i32; +pub const WinCapabilityAppointmentsSid: WELL_KNOWN_SID_TYPE = 108i32; +pub const WinCapabilityContactsSid: WELL_KNOWN_SID_TYPE = 109i32; +pub const WinCapabilityDocumentsLibrarySid: WELL_KNOWN_SID_TYPE = 91i32; +pub const WinCapabilityEnterpriseAuthenticationSid: WELL_KNOWN_SID_TYPE = 93i32; +pub const WinCapabilityInternetClientServerSid: WELL_KNOWN_SID_TYPE = 86i32; +pub const WinCapabilityInternetClientSid: WELL_KNOWN_SID_TYPE = 85i32; +pub const WinCapabilityMusicLibrarySid: WELL_KNOWN_SID_TYPE = 90i32; +pub const WinCapabilityPicturesLibrarySid: WELL_KNOWN_SID_TYPE = 88i32; +pub const WinCapabilityPrivateNetworkClientServerSid: WELL_KNOWN_SID_TYPE = 87i32; +pub const WinCapabilityRemovableStorageSid: WELL_KNOWN_SID_TYPE = 94i32; +pub const WinCapabilitySharedUserCertificatesSid: WELL_KNOWN_SID_TYPE = 92i32; +pub const WinCapabilityVideosLibrarySid: WELL_KNOWN_SID_TYPE = 89i32; +pub const WinConsoleLogonSid: WELL_KNOWN_SID_TYPE = 81i32; +pub const WinCreatorGroupServerSid: WELL_KNOWN_SID_TYPE = 6i32; +pub const WinCreatorGroupSid: WELL_KNOWN_SID_TYPE = 4i32; +pub const WinCreatorOwnerRightsSid: WELL_KNOWN_SID_TYPE = 71i32; +pub const WinCreatorOwnerServerSid: WELL_KNOWN_SID_TYPE = 5i32; +pub const WinCreatorOwnerSid: WELL_KNOWN_SID_TYPE = 3i32; +pub const WinDialupSid: WELL_KNOWN_SID_TYPE = 8i32; +pub const WinDigestAuthenticationSid: WELL_KNOWN_SID_TYPE = 52i32; +pub const WinEnterpriseControllersSid: WELL_KNOWN_SID_TYPE = 15i32; +pub const WinEnterpriseReadonlyControllersSid: WELL_KNOWN_SID_TYPE = 74i32; +pub const WinHighLabelSid: WELL_KNOWN_SID_TYPE = 68i32; +pub const WinIUserSid: WELL_KNOWN_SID_TYPE = 63i32; +pub const WinInteractiveSid: WELL_KNOWN_SID_TYPE = 11i32; +pub const WinLocalAccountAndAdministratorSid: WELL_KNOWN_SID_TYPE = 106i32; +pub const WinLocalAccountSid: WELL_KNOWN_SID_TYPE = 105i32; +pub const WinLocalLogonSid: WELL_KNOWN_SID_TYPE = 80i32; +pub const WinLocalServiceSid: WELL_KNOWN_SID_TYPE = 23i32; +pub const WinLocalSid: WELL_KNOWN_SID_TYPE = 2i32; +pub const WinLocalSystemSid: WELL_KNOWN_SID_TYPE = 22i32; +pub const WinLogonIdsSid: WELL_KNOWN_SID_TYPE = 21i32; +pub const WinLowLabelSid: WELL_KNOWN_SID_TYPE = 66i32; +pub const WinMediumLabelSid: WELL_KNOWN_SID_TYPE = 67i32; +pub const WinMediumPlusLabelSid: WELL_KNOWN_SID_TYPE = 79i32; +pub const WinNTLMAuthenticationSid: WELL_KNOWN_SID_TYPE = 51i32; +pub const WinNetworkServiceSid: WELL_KNOWN_SID_TYPE = 24i32; +pub const WinNetworkSid: WELL_KNOWN_SID_TYPE = 9i32; +pub const WinNewEnterpriseReadonlyControllersSid: WELL_KNOWN_SID_TYPE = 77i32; +pub const WinNonCacheablePrincipalsGroupSid: WELL_KNOWN_SID_TYPE = 73i32; +pub const WinNtAuthoritySid: WELL_KNOWN_SID_TYPE = 7i32; +pub const WinNullSid: WELL_KNOWN_SID_TYPE = 0i32; +pub const WinOtherOrganizationSid: WELL_KNOWN_SID_TYPE = 55i32; +pub const WinProxySid: WELL_KNOWN_SID_TYPE = 14i32; +pub const WinRemoteLogonIdSid: WELL_KNOWN_SID_TYPE = 20i32; +pub const WinRestrictedCodeSid: WELL_KNOWN_SID_TYPE = 18i32; +pub const WinSChannelAuthenticationSid: WELL_KNOWN_SID_TYPE = 53i32; +pub const WinSelfSid: WELL_KNOWN_SID_TYPE = 16i32; +pub const WinServiceSid: WELL_KNOWN_SID_TYPE = 12i32; +pub const WinSystemLabelSid: WELL_KNOWN_SID_TYPE = 69i32; +pub const WinTerminalServerSid: WELL_KNOWN_SID_TYPE = 19i32; +pub const WinThisOrganizationCertificateSid: WELL_KNOWN_SID_TYPE = 82i32; +pub const WinThisOrganizationSid: WELL_KNOWN_SID_TYPE = 54i32; +pub const WinUntrustedLabelSid: WELL_KNOWN_SID_TYPE = 65i32; +pub const WinUserModeDriversSid: WELL_KNOWN_SID_TYPE = 98i32; +pub const WinWorldSid: WELL_KNOWN_SID_TYPE = 1i32; +pub const WinWriteRestrictedCodeSid: WELL_KNOWN_SID_TYPE = 70i32; +pub const cwcFILENAMESUFFIXMAX: u32 = 20u32; +pub const cwcHRESULTSTRING: u32 = 40u32; +pub const szLBRACE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("{"); +pub const szLPAREN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("("); +pub const szRBRACE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("}"); +pub const szRPAREN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!(")"); +pub const wszCERTENROLLSHAREPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CertSrv\\CertEnroll"); +pub const wszFCSAPARM_CERTFILENAMESUFFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%4"); +pub const wszFCSAPARM_CONFIGDN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%6"); +pub const wszFCSAPARM_CRLDELTAFILENAMESUFFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%9"); +pub const wszFCSAPARM_CRLFILENAMESUFFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%8"); +pub const wszFCSAPARM_DOMAINDN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%5"); +pub const wszFCSAPARM_DSCACERTATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%11"); +pub const wszFCSAPARM_DSCRLATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%10"); +pub const wszFCSAPARM_DSCROSSCERTPAIRATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%14"); +pub const wszFCSAPARM_DSKRACERTATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%13"); +pub const wszFCSAPARM_DSUSERCERTATTRIBUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%12"); +pub const wszFCSAPARM_SANITIZEDCANAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%3"); +pub const wszFCSAPARM_SANITIZEDCANAMEHASH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%7"); +pub const wszFCSAPARM_SERVERDNSNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%1"); +pub const wszFCSAPARM_SERVERSHORTNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%2"); +pub const wszLBRACE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{"); +pub const wszLPAREN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("("); +pub const wszRBRACE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("}"); +pub const wszRPAREN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(")"); +pub type ACE_FLAGS = u32; +pub type ACE_REVISION = u32; +pub type ACL_INFORMATION_CLASS = i32; +pub type AUDIT_EVENT_TYPE = i32; +pub type CLAIM_SECURITY_ATTRIBUTE_FLAGS = u32; +pub type CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE = u16; +pub type CREATE_RESTRICTED_TOKEN_FLAGS = u32; +pub type ENUM_PERIOD = i32; +pub type LOGON32_LOGON = u32; +pub type LOGON32_PROVIDER = u32; +pub type MANDATORY_LEVEL = i32; +pub type OBJECT_SECURITY_INFORMATION = u32; +pub type SECURITY_AUTO_INHERIT_FLAGS = u32; +pub type SECURITY_DESCRIPTOR_CONTROL = u16; +pub type SECURITY_IMPERSONATION_LEVEL = i32; +pub type SID_NAME_USE = i32; +pub type SYSTEM_AUDIT_OBJECT_ACE_FLAGS = u32; +pub type TOKEN_ACCESS_MASK = u32; +pub type TOKEN_ELEVATION_TYPE = i32; +pub type TOKEN_INFORMATION_CLASS = i32; +pub type TOKEN_MANDATORY_POLICY_ID = u32; +pub type TOKEN_PRIVILEGES_ATTRIBUTES = u32; +pub type TOKEN_TYPE = i32; +pub type WELL_KNOWN_SID_TYPE = i32; +#[repr(C)] +pub struct ACCESS_ALLOWED_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for ACCESS_ALLOWED_ACE {} +impl ::core::clone::Clone for ACCESS_ALLOWED_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACCESS_ALLOWED_CALLBACK_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for ACCESS_ALLOWED_CALLBACK_ACE {} +impl ::core::clone::Clone for ACCESS_ALLOWED_CALLBACK_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACCESS_ALLOWED_CALLBACK_OBJECT_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS, + pub ObjectType: ::windows_sys::core::GUID, + pub InheritedObjectType: ::windows_sys::core::GUID, + pub SidStart: u32, +} +impl ::core::marker::Copy for ACCESS_ALLOWED_CALLBACK_OBJECT_ACE {} +impl ::core::clone::Clone for ACCESS_ALLOWED_CALLBACK_OBJECT_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACCESS_ALLOWED_OBJECT_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS, + pub ObjectType: ::windows_sys::core::GUID, + pub InheritedObjectType: ::windows_sys::core::GUID, + pub SidStart: u32, +} +impl ::core::marker::Copy for ACCESS_ALLOWED_OBJECT_ACE {} +impl ::core::clone::Clone for ACCESS_ALLOWED_OBJECT_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACCESS_DENIED_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for ACCESS_DENIED_ACE {} +impl ::core::clone::Clone for ACCESS_DENIED_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACCESS_DENIED_CALLBACK_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for ACCESS_DENIED_CALLBACK_ACE {} +impl ::core::clone::Clone for ACCESS_DENIED_CALLBACK_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACCESS_DENIED_CALLBACK_OBJECT_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS, + pub ObjectType: ::windows_sys::core::GUID, + pub InheritedObjectType: ::windows_sys::core::GUID, + pub SidStart: u32, +} +impl ::core::marker::Copy for ACCESS_DENIED_CALLBACK_OBJECT_ACE {} +impl ::core::clone::Clone for ACCESS_DENIED_CALLBACK_OBJECT_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACCESS_DENIED_OBJECT_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS, + pub ObjectType: ::windows_sys::core::GUID, + pub InheritedObjectType: ::windows_sys::core::GUID, + pub SidStart: u32, +} +impl ::core::marker::Copy for ACCESS_DENIED_OBJECT_ACE {} +impl ::core::clone::Clone for ACCESS_DENIED_OBJECT_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACCESS_REASONS { + pub Data: [u32; 32], +} +impl ::core::marker::Copy for ACCESS_REASONS {} +impl ::core::clone::Clone for ACCESS_REASONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACE_HEADER { + pub AceType: u8, + pub AceFlags: u8, + pub AceSize: u16, +} +impl ::core::marker::Copy for ACE_HEADER {} +impl ::core::clone::Clone for ACE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACL { + pub AclRevision: u8, + pub Sbz1: u8, + pub AclSize: u16, + pub AceCount: u16, + pub Sbz2: u16, +} +impl ::core::marker::Copy for ACL {} +impl ::core::clone::Clone for ACL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACL_REVISION_INFORMATION { + pub AclRevision: u32, +} +impl ::core::marker::Copy for ACL_REVISION_INFORMATION {} +impl ::core::clone::Clone for ACL_REVISION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACL_SIZE_INFORMATION { + pub AceCount: u32, + pub AclBytesInUse: u32, + pub AclBytesFree: u32, +} +impl ::core::marker::Copy for ACL_SIZE_INFORMATION {} +impl ::core::clone::Clone for ACL_SIZE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLAIM_SECURITY_ATTRIBUTES_INFORMATION { + pub Version: u16, + pub Reserved: u16, + pub AttributeCount: u32, + pub Attribute: CLAIM_SECURITY_ATTRIBUTES_INFORMATION_0, +} +impl ::core::marker::Copy for CLAIM_SECURITY_ATTRIBUTES_INFORMATION {} +impl ::core::clone::Clone for CLAIM_SECURITY_ATTRIBUTES_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CLAIM_SECURITY_ATTRIBUTES_INFORMATION_0 { + pub pAttributeV1: *mut CLAIM_SECURITY_ATTRIBUTE_V1, +} +impl ::core::marker::Copy for CLAIM_SECURITY_ATTRIBUTES_INFORMATION_0 {} +impl ::core::clone::Clone for CLAIM_SECURITY_ATTRIBUTES_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE { + pub Version: u64, + pub Name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE {} +impl ::core::clone::Clone for CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE { + pub pValue: *mut ::core::ffi::c_void, + pub ValueLength: u32, +} +impl ::core::marker::Copy for CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE {} +impl ::core::clone::Clone for CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 { + pub Name: u32, + pub ValueType: CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE, + pub Reserved: u16, + pub Flags: CLAIM_SECURITY_ATTRIBUTE_FLAGS, + pub ValueCount: u32, + pub Values: CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_0, +} +impl ::core::marker::Copy for CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 {} +impl ::core::clone::Clone for CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_0 { + pub pInt64: [u32; 1], + pub pUint64: [u32; 1], + pub ppString: [u32; 1], + pub pFqbn: [u32; 1], + pub pOctetString: [u32; 1], +} +impl ::core::marker::Copy for CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_0 {} +impl ::core::clone::Clone for CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLAIM_SECURITY_ATTRIBUTE_V1 { + pub Name: ::windows_sys::core::PWSTR, + pub ValueType: CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE, + pub Reserved: u16, + pub Flags: u32, + pub ValueCount: u32, + pub Values: CLAIM_SECURITY_ATTRIBUTE_V1_0, +} +impl ::core::marker::Copy for CLAIM_SECURITY_ATTRIBUTE_V1 {} +impl ::core::clone::Clone for CLAIM_SECURITY_ATTRIBUTE_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CLAIM_SECURITY_ATTRIBUTE_V1_0 { + pub pInt64: *mut i64, + pub pUint64: *mut u64, + pub ppString: *mut ::windows_sys::core::PWSTR, + pub pFqbn: *mut CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE, + pub pOctetString: *mut CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE, +} +impl ::core::marker::Copy for CLAIM_SECURITY_ATTRIBUTE_V1_0 {} +impl ::core::clone::Clone for CLAIM_SECURITY_ATTRIBUTE_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GENERIC_MAPPING { + pub GenericRead: u32, + pub GenericWrite: u32, + pub GenericExecute: u32, + pub GenericAll: u32, +} +impl ::core::marker::Copy for GENERIC_MAPPING {} +impl ::core::clone::Clone for GENERIC_MAPPING { + fn clone(&self) -> Self { + *self + } +} +pub type HDIAGNOSTIC_DATA_QUERY_SESSION = isize; +pub type HDIAGNOSTIC_EVENT_CATEGORY_DESCRIPTION = isize; +pub type HDIAGNOSTIC_EVENT_PRODUCER_DESCRIPTION = isize; +pub type HDIAGNOSTIC_EVENT_TAG_DESCRIPTION = isize; +pub type HDIAGNOSTIC_RECORD = isize; +pub type HDIAGNOSTIC_REPORT = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LLFILETIME { + pub Anonymous: LLFILETIME_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LLFILETIME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LLFILETIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union LLFILETIME_0 { + pub ll: i64, + pub ft: super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LLFILETIME_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LLFILETIME_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LUID_AND_ATTRIBUTES { + pub Luid: super::Foundation::LUID, + pub Attributes: TOKEN_PRIVILEGES_ATTRIBUTES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LUID_AND_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LUID_AND_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +pub type NCRYPT_DESCRIPTOR_HANDLE = isize; +pub type NCRYPT_STREAM_HANDLE = isize; +#[repr(C)] +pub struct OBJECT_TYPE_LIST { + pub Level: u16, + pub Sbz: u16, + pub ObjectType: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for OBJECT_TYPE_LIST {} +impl ::core::clone::Clone for OBJECT_TYPE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PRIVILEGE_SET { + pub PrivilegeCount: u32, + pub Control: u32, + pub Privilege: [LUID_AND_ATTRIBUTES; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PRIVILEGE_SET {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PRIVILEGE_SET { + fn clone(&self) -> Self { + *self + } +} +pub type PSECURITY_DESCRIPTOR = *mut ::core::ffi::c_void; +#[repr(C)] +pub struct QUOTA_LIMITS { + pub PagedPoolLimit: usize, + pub NonPagedPoolLimit: usize, + pub MinimumWorkingSetSize: usize, + pub MaximumWorkingSetSize: usize, + pub PagefileLimit: usize, + pub TimeLimit: i64, +} +impl ::core::marker::Copy for QUOTA_LIMITS {} +impl ::core::clone::Clone for QUOTA_LIMITS { + fn clone(&self) -> Self { + *self + } +} +pub type SAFER_LEVEL_HANDLE = isize; +pub type SC_HANDLE = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECURITY_ATTRIBUTES { + pub nLength: u32, + pub lpSecurityDescriptor: *mut ::core::ffi::c_void, + pub bInheritHandle: super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECURITY_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECURITY_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECURITY_CAPABILITIES { + pub AppContainerSid: super::Foundation::PSID, + pub Capabilities: *mut SID_AND_ATTRIBUTES, + pub CapabilityCount: u32, + pub Reserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECURITY_CAPABILITIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECURITY_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECURITY_DESCRIPTOR { + pub Revision: u8, + pub Sbz1: u8, + pub Control: SECURITY_DESCRIPTOR_CONTROL, + pub Owner: super::Foundation::PSID, + pub Group: super::Foundation::PSID, + pub Sacl: *mut ACL, + pub Dacl: *mut ACL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECURITY_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECURITY_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECURITY_DESCRIPTOR_RELATIVE { + pub Revision: u8, + pub Sbz1: u8, + pub Control: SECURITY_DESCRIPTOR_CONTROL, + pub Owner: u32, + pub Group: u32, + pub Sacl: u32, + pub Dacl: u32, +} +impl ::core::marker::Copy for SECURITY_DESCRIPTOR_RELATIVE {} +impl ::core::clone::Clone for SECURITY_DESCRIPTOR_RELATIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SECURITY_QUALITY_OF_SERVICE { + pub Length: u32, + pub ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, + pub ContextTrackingMode: u8, + pub EffectiveOnly: super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SECURITY_QUALITY_OF_SERVICE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SECURITY_QUALITY_OF_SERVICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SE_ACCESS_REPLY { + pub Size: u32, + pub ResultListCount: u32, + pub GrantedAccess: *mut u32, + pub AccessStatus: *mut u32, + pub AccessReason: *mut ACCESS_REASONS, + pub Privileges: *mut *mut PRIVILEGE_SET, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SE_ACCESS_REPLY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SE_ACCESS_REPLY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SE_ACCESS_REQUEST { + pub Size: u32, + pub SeSecurityDescriptor: *mut SE_SECURITY_DESCRIPTOR, + pub DesiredAccess: u32, + pub PreviouslyGrantedAccess: u32, + pub PrincipalSelfSid: super::Foundation::PSID, + pub GenericMapping: *mut GENERIC_MAPPING, + pub ObjectTypeListCount: u32, + pub ObjectTypeList: *mut OBJECT_TYPE_LIST, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SE_ACCESS_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SE_ACCESS_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SE_IMPERSONATION_STATE { + pub Token: *mut ::core::ffi::c_void, + pub CopyOnOpen: super::Foundation::BOOLEAN, + pub EffectiveOnly: super::Foundation::BOOLEAN, + pub Level: SECURITY_IMPERSONATION_LEVEL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SE_IMPERSONATION_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SE_IMPERSONATION_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SE_SECURITY_DESCRIPTOR { + pub Size: u32, + pub Flags: u32, + pub SecurityDescriptor: PSECURITY_DESCRIPTOR, +} +impl ::core::marker::Copy for SE_SECURITY_DESCRIPTOR {} +impl ::core::clone::Clone for SE_SECURITY_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SE_SID { + pub Sid: SID, + pub Buffer: [u8; 68], +} +impl ::core::marker::Copy for SE_SID {} +impl ::core::clone::Clone for SE_SID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SID { + pub Revision: u8, + pub SubAuthorityCount: u8, + pub IdentifierAuthority: SID_IDENTIFIER_AUTHORITY, + pub SubAuthority: [u32; 1], +} +impl ::core::marker::Copy for SID {} +impl ::core::clone::Clone for SID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SID_AND_ATTRIBUTES { + pub Sid: super::Foundation::PSID, + pub Attributes: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SID_AND_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SID_AND_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SID_AND_ATTRIBUTES_HASH { + pub SidCount: u32, + pub SidAttr: *mut SID_AND_ATTRIBUTES, + pub Hash: [usize; 32], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SID_AND_ATTRIBUTES_HASH {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SID_AND_ATTRIBUTES_HASH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SID_IDENTIFIER_AUTHORITY { + pub Value: [u8; 6], +} +impl ::core::marker::Copy for SID_IDENTIFIER_AUTHORITY {} +impl ::core::clone::Clone for SID_IDENTIFIER_AUTHORITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_ACCESS_FILTER_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_ACCESS_FILTER_ACE {} +impl ::core::clone::Clone for SYSTEM_ACCESS_FILTER_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_ALARM_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_ALARM_ACE {} +impl ::core::clone::Clone for SYSTEM_ALARM_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_ALARM_CALLBACK_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_ALARM_CALLBACK_ACE {} +impl ::core::clone::Clone for SYSTEM_ALARM_CALLBACK_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_ALARM_CALLBACK_OBJECT_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS, + pub ObjectType: ::windows_sys::core::GUID, + pub InheritedObjectType: ::windows_sys::core::GUID, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_ALARM_CALLBACK_OBJECT_ACE {} +impl ::core::clone::Clone for SYSTEM_ALARM_CALLBACK_OBJECT_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_ALARM_OBJECT_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub Flags: u32, + pub ObjectType: ::windows_sys::core::GUID, + pub InheritedObjectType: ::windows_sys::core::GUID, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_ALARM_OBJECT_ACE {} +impl ::core::clone::Clone for SYSTEM_ALARM_OBJECT_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_AUDIT_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_AUDIT_ACE {} +impl ::core::clone::Clone for SYSTEM_AUDIT_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_AUDIT_CALLBACK_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_AUDIT_CALLBACK_ACE {} +impl ::core::clone::Clone for SYSTEM_AUDIT_CALLBACK_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_AUDIT_CALLBACK_OBJECT_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS, + pub ObjectType: ::windows_sys::core::GUID, + pub InheritedObjectType: ::windows_sys::core::GUID, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_AUDIT_CALLBACK_OBJECT_ACE {} +impl ::core::clone::Clone for SYSTEM_AUDIT_CALLBACK_OBJECT_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_AUDIT_OBJECT_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS, + pub ObjectType: ::windows_sys::core::GUID, + pub InheritedObjectType: ::windows_sys::core::GUID, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_AUDIT_OBJECT_ACE {} +impl ::core::clone::Clone for SYSTEM_AUDIT_OBJECT_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_MANDATORY_LABEL_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_MANDATORY_LABEL_ACE {} +impl ::core::clone::Clone for SYSTEM_MANDATORY_LABEL_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_PROCESS_TRUST_LABEL_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_PROCESS_TRUST_LABEL_ACE {} +impl ::core::clone::Clone for SYSTEM_PROCESS_TRUST_LABEL_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_RESOURCE_ATTRIBUTE_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_RESOURCE_ATTRIBUTE_ACE {} +impl ::core::clone::Clone for SYSTEM_RESOURCE_ATTRIBUTE_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_SCOPED_POLICY_ID_ACE { + pub Header: ACE_HEADER, + pub Mask: u32, + pub SidStart: u32, +} +impl ::core::marker::Copy for SYSTEM_SCOPED_POLICY_ID_ACE {} +impl ::core::clone::Clone for SYSTEM_SCOPED_POLICY_ID_ACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_ACCESS_INFORMATION { + pub SidHash: *mut SID_AND_ATTRIBUTES_HASH, + pub RestrictedSidHash: *mut SID_AND_ATTRIBUTES_HASH, + pub Privileges: *mut TOKEN_PRIVILEGES, + pub AuthenticationId: super::Foundation::LUID, + pub TokenType: TOKEN_TYPE, + pub ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, + pub MandatoryPolicy: TOKEN_MANDATORY_POLICY, + pub Flags: u32, + pub AppContainerNumber: u32, + pub PackageSid: super::Foundation::PSID, + pub CapabilitiesHash: *mut SID_AND_ATTRIBUTES_HASH, + pub TrustLevelSid: super::Foundation::PSID, + pub SecurityAttributes: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_ACCESS_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_ACCESS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_APPCONTAINER_INFORMATION { + pub TokenAppContainer: super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_APPCONTAINER_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_APPCONTAINER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TOKEN_AUDIT_POLICY { + pub PerUserPolicy: [u8; 30], +} +impl ::core::marker::Copy for TOKEN_AUDIT_POLICY {} +impl ::core::clone::Clone for TOKEN_AUDIT_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_CONTROL { + pub TokenId: super::Foundation::LUID, + pub AuthenticationId: super::Foundation::LUID, + pub ModifiedId: super::Foundation::LUID, + pub TokenSource: TOKEN_SOURCE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_CONTROL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TOKEN_DEFAULT_DACL { + pub DefaultDacl: *mut ACL, +} +impl ::core::marker::Copy for TOKEN_DEFAULT_DACL {} +impl ::core::clone::Clone for TOKEN_DEFAULT_DACL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TOKEN_DEVICE_CLAIMS { + pub DeviceClaims: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for TOKEN_DEVICE_CLAIMS {} +impl ::core::clone::Clone for TOKEN_DEVICE_CLAIMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TOKEN_ELEVATION { + pub TokenIsElevated: u32, +} +impl ::core::marker::Copy for TOKEN_ELEVATION {} +impl ::core::clone::Clone for TOKEN_ELEVATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_GROUPS { + pub GroupCount: u32, + pub Groups: [SID_AND_ATTRIBUTES; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_GROUPS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_GROUPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_GROUPS_AND_PRIVILEGES { + pub SidCount: u32, + pub SidLength: u32, + pub Sids: *mut SID_AND_ATTRIBUTES, + pub RestrictedSidCount: u32, + pub RestrictedSidLength: u32, + pub RestrictedSids: *mut SID_AND_ATTRIBUTES, + pub PrivilegeCount: u32, + pub PrivilegeLength: u32, + pub Privileges: *mut LUID_AND_ATTRIBUTES, + pub AuthenticationId: super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_GROUPS_AND_PRIVILEGES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_GROUPS_AND_PRIVILEGES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_LINKED_TOKEN { + pub LinkedToken: super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_LINKED_TOKEN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_LINKED_TOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_MANDATORY_LABEL { + pub Label: SID_AND_ATTRIBUTES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_MANDATORY_LABEL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_MANDATORY_LABEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TOKEN_MANDATORY_POLICY { + pub Policy: TOKEN_MANDATORY_POLICY_ID, +} +impl ::core::marker::Copy for TOKEN_MANDATORY_POLICY {} +impl ::core::clone::Clone for TOKEN_MANDATORY_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_ORIGIN { + pub OriginatingLogonSession: super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_ORIGIN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_ORIGIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_OWNER { + pub Owner: super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_OWNER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_OWNER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_PRIMARY_GROUP { + pub PrimaryGroup: super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_PRIMARY_GROUP {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_PRIMARY_GROUP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_PRIVILEGES { + pub PrivilegeCount: u32, + pub Privileges: [LUID_AND_ATTRIBUTES; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_PRIVILEGES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_PRIVILEGES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_SOURCE { + pub SourceName: [u8; 8], + pub SourceIdentifier: super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_SOURCE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_SOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_STATISTICS { + pub TokenId: super::Foundation::LUID, + pub AuthenticationId: super::Foundation::LUID, + pub ExpirationTime: i64, + pub TokenType: TOKEN_TYPE, + pub ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, + pub DynamicCharged: u32, + pub DynamicAvailable: u32, + pub GroupCount: u32, + pub PrivilegeCount: u32, + pub ModifiedId: super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_STATISTICS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_USER { + pub User: SID_AND_ATTRIBUTES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_USER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_USER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TOKEN_USER_CLAIMS { + pub UserClaims: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for TOKEN_USER_CLAIMS {} +impl ::core::clone::Clone for TOKEN_USER_CLAIMS { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLSA_AP_CALL_PACKAGE_UNTRUSTED = ::core::option::Option super::Foundation::NTSTATUS>; +pub type SEC_THREAD_START = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Cabinets/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Cabinets/mod.rs new file mode 100644 index 000000000..79435e4f3 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Cabinets/mod.rs @@ -0,0 +1,314 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FCIAddFile(hfci : *const ::core::ffi::c_void, pszsourcefile : ::windows_sys::core::PCSTR, pszfilename : ::windows_sys::core::PCSTR, fexecute : super::super::Foundation:: BOOL, pfnfcignc : PFNFCIGETNEXTCABINET, pfnfcis : PFNFCISTATUS, pfnfcigoi : PFNFCIGETOPENINFO, typecompress : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FCICreate(perf : *const ERF, pfnfcifp : PFNFCIFILEPLACED, pfna : PFNFCIALLOC, pfnf : PFNFCIFREE, pfnopen : PFNFCIOPEN, pfnread : PFNFCIREAD, pfnwrite : PFNFCIWRITE, pfnclose : PFNFCICLOSE, pfnseek : PFNFCISEEK, pfndelete : PFNFCIDELETE, pfnfcigtf : PFNFCIGETTEMPFILE, pccab : *const CCAB, pv : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FCIDestroy(hfci : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FCIFlushCabinet(hfci : *const ::core::ffi::c_void, fgetnextcab : super::super::Foundation:: BOOL, pfnfcignc : PFNFCIGETNEXTCABINET, pfnfcis : PFNFCISTATUS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FCIFlushFolder(hfci : *const ::core::ffi::c_void, pfnfcignc : PFNFCIGETNEXTCABINET, pfnfcis : PFNFCISTATUS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FDICopy(hfdi : *const ::core::ffi::c_void, pszcabinet : ::windows_sys::core::PCSTR, pszcabpath : ::windows_sys::core::PCSTR, flags : i32, pfnfdin : PFNFDINOTIFY, pfnfdid : PFNFDIDECRYPT, pvuser : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FDICreate(pfnalloc : PFNALLOC, pfnfree : PFNFREE, pfnopen : PFNOPEN, pfnread : PFNREAD, pfnwrite : PFNWRITE, pfnclose : PFNCLOSE, pfnseek : PFNSEEK, cputype : FDICREATE_CPU_TYPE, perf : *mut ERF) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FDIDestroy(hfdi : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FDIIsCabinet(hfdi : *const ::core::ffi::c_void, hf : isize, pfdici : *mut FDICABINETINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FDITruncateCabinet(hfdi : *const ::core::ffi::c_void, pszcabinetname : ::windows_sys::core::PCSTR, ifoldertodelete : u16) -> super::super::Foundation:: BOOL); +pub const CB_MAX_CABINET_NAME: u32 = 256u32; +pub const CB_MAX_CAB_PATH: u32 = 256u32; +pub const CB_MAX_DISK: i32 = 2147483647i32; +pub const CB_MAX_DISK_NAME: u32 = 256u32; +pub const CB_MAX_FILENAME: u32 = 256u32; +pub const FCIERR_ALLOC_FAIL: FCIERROR = 3i32; +pub const FCIERR_BAD_COMPR_TYPE: FCIERROR = 5i32; +pub const FCIERR_CAB_FILE: FCIERROR = 6i32; +pub const FCIERR_CAB_FORMAT_LIMIT: FCIERROR = 9i32; +pub const FCIERR_MCI_FAIL: FCIERROR = 8i32; +pub const FCIERR_NONE: FCIERROR = 0i32; +pub const FCIERR_OPEN_SRC: FCIERROR = 1i32; +pub const FCIERR_READ_SRC: FCIERROR = 2i32; +pub const FCIERR_TEMP_FILE: FCIERROR = 4i32; +pub const FCIERR_USER_ABORT: FCIERROR = 7i32; +pub const FDIERROR_ALLOC_FAIL: FDIERROR = 5i32; +pub const FDIERROR_BAD_COMPR_TYPE: FDIERROR = 6i32; +pub const FDIERROR_CABINET_NOT_FOUND: FDIERROR = 1i32; +pub const FDIERROR_CORRUPT_CABINET: FDIERROR = 4i32; +pub const FDIERROR_EOF: FDIERROR = 12i32; +pub const FDIERROR_MDI_FAIL: FDIERROR = 7i32; +pub const FDIERROR_NONE: FDIERROR = 0i32; +pub const FDIERROR_NOT_A_CABINET: FDIERROR = 2i32; +pub const FDIERROR_RESERVE_MISMATCH: FDIERROR = 9i32; +pub const FDIERROR_TARGET_FILE: FDIERROR = 8i32; +pub const FDIERROR_UNKNOWN_CABINET_VERSION: FDIERROR = 3i32; +pub const FDIERROR_USER_ABORT: FDIERROR = 11i32; +pub const FDIERROR_WRONG_CABINET: FDIERROR = 10i32; +pub const INCLUDED_FCI: u32 = 1u32; +pub const INCLUDED_FDI: u32 = 1u32; +pub const INCLUDED_TYPES_FCI_FDI: u32 = 1u32; +pub const _A_EXEC: u32 = 64u32; +pub const _A_NAME_IS_UTF: u32 = 128u32; +pub const cpu80286: FDICREATE_CPU_TYPE = 0i32; +pub const cpu80386: FDICREATE_CPU_TYPE = 1i32; +pub const cpuUNKNOWN: FDICREATE_CPU_TYPE = -1i32; +pub const fdidtDECRYPT: FDIDECRYPTTYPE = 2i32; +pub const fdidtNEW_CABINET: FDIDECRYPTTYPE = 0i32; +pub const fdidtNEW_FOLDER: FDIDECRYPTTYPE = 1i32; +pub const fdintCABINET_INFO: FDINOTIFICATIONTYPE = 0i32; +pub const fdintCLOSE_FILE_INFO: FDINOTIFICATIONTYPE = 3i32; +pub const fdintCOPY_FILE: FDINOTIFICATIONTYPE = 2i32; +pub const fdintENUMERATE: FDINOTIFICATIONTYPE = 5i32; +pub const fdintNEXT_CABINET: FDINOTIFICATIONTYPE = 4i32; +pub const fdintPARTIAL_FILE: FDINOTIFICATIONTYPE = 1i32; +pub const statusCabinet: u32 = 2u32; +pub const statusFile: u32 = 0u32; +pub const statusFolder: u32 = 1u32; +pub const tcompBAD: u32 = 15u32; +pub const tcompLZX_WINDOW_HI: u32 = 5376u32; +pub const tcompLZX_WINDOW_LO: u32 = 3840u32; +pub const tcompMASK_LZX_WINDOW: u32 = 7936u32; +pub const tcompMASK_QUANTUM_LEVEL: u32 = 240u32; +pub const tcompMASK_QUANTUM_MEM: u32 = 7936u32; +pub const tcompMASK_RESERVED: u32 = 57344u32; +pub const tcompMASK_TYPE: u32 = 15u32; +pub const tcompQUANTUM_LEVEL_HI: u32 = 112u32; +pub const tcompQUANTUM_LEVEL_LO: u32 = 16u32; +pub const tcompQUANTUM_MEM_HI: u32 = 5376u32; +pub const tcompQUANTUM_MEM_LO: u32 = 2560u32; +pub const tcompSHIFT_LZX_WINDOW: u32 = 8u32; +pub const tcompSHIFT_QUANTUM_LEVEL: u32 = 4u32; +pub const tcompSHIFT_QUANTUM_MEM: u32 = 8u32; +pub const tcompTYPE_LZX: u32 = 3u32; +pub const tcompTYPE_MSZIP: u32 = 1u32; +pub const tcompTYPE_NONE: u32 = 0u32; +pub const tcompTYPE_QUANTUM: u32 = 2u32; +pub type FCIERROR = i32; +pub type FDICREATE_CPU_TYPE = i32; +pub type FDIDECRYPTTYPE = i32; +pub type FDIERROR = i32; +pub type FDINOTIFICATIONTYPE = i32; +#[repr(C)] +pub struct CCAB { + pub cb: u32, + pub cbFolderThresh: u32, + pub cbReserveCFHeader: u32, + pub cbReserveCFFolder: u32, + pub cbReserveCFData: u32, + pub iCab: i32, + pub iDisk: i32, + pub fFailOnIncompressible: i32, + pub setID: u16, + pub szDisk: [u8; 256], + pub szCab: [u8; 256], + pub szCabPath: [u8; 256], +} +impl ::core::marker::Copy for CCAB {} +impl ::core::clone::Clone for CCAB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ERF { + pub erfOper: i32, + pub erfType: i32, + pub fError: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ERF {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ERF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FDICABINETINFO { + pub cbCabinet: i32, + pub cFolders: u16, + pub cFiles: u16, + pub setID: u16, + pub iCabinet: u16, + pub fReserve: super::super::Foundation::BOOL, + pub hasprev: super::super::Foundation::BOOL, + pub hasnext: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FDICABINETINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FDICABINETINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FDIDECRYPT { + pub fdidt: FDIDECRYPTTYPE, + pub pvUser: *mut ::core::ffi::c_void, + pub Anonymous: FDIDECRYPT_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FDIDECRYPT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FDIDECRYPT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union FDIDECRYPT_0 { + pub cabinet: FDIDECRYPT_0_0, + pub folder: FDIDECRYPT_0_2, + pub decrypt: FDIDECRYPT_0_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FDIDECRYPT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FDIDECRYPT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FDIDECRYPT_0_0 { + pub pHeaderReserve: *mut ::core::ffi::c_void, + pub cbHeaderReserve: u16, + pub setID: u16, + pub iCabinet: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FDIDECRYPT_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FDIDECRYPT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FDIDECRYPT_0_1 { + pub pDataReserve: *mut ::core::ffi::c_void, + pub cbDataReserve: u16, + pub pbData: *mut ::core::ffi::c_void, + pub cbData: u16, + pub fSplit: super::super::Foundation::BOOL, + pub cbPartial: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FDIDECRYPT_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FDIDECRYPT_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FDIDECRYPT_0_2 { + pub pFolderReserve: *mut ::core::ffi::c_void, + pub cbFolderReserve: u16, + pub iFolder: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FDIDECRYPT_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FDIDECRYPT_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FDINOTIFICATION { + pub cb: i32, + pub psz1: ::windows_sys::core::PSTR, + pub psz2: ::windows_sys::core::PSTR, + pub psz3: ::windows_sys::core::PSTR, + pub pv: *mut ::core::ffi::c_void, + pub hf: isize, + pub date: u16, + pub time: u16, + pub attribs: u16, + pub setID: u16, + pub iCabinet: u16, + pub iFolder: u16, + pub fdie: FDIERROR, +} +impl ::core::marker::Copy for FDINOTIFICATION {} +impl ::core::clone::Clone for FDINOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct FDISPILLFILE { + pub ach: [u8; 2], + pub cbFile: i32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for FDISPILLFILE {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for FDISPILLFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct FDISPILLFILE { + pub ach: [u8; 2], + pub cbFile: i32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for FDISPILLFILE {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for FDISPILLFILE { + fn clone(&self) -> Self { + *self + } +} +pub type PFNALLOC = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PFNCLOSE = ::core::option::Option i32>; +pub type PFNFCIALLOC = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PFNFCICLOSE = ::core::option::Option i32>; +pub type PFNFCIDELETE = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNFCIFILEPLACED = ::core::option::Option i32>; +pub type PFNFCIFREE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNFCIGETNEXTCABINET = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFNFCIGETOPENINFO = ::core::option::Option isize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNFCIGETTEMPFILE = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFNFCIOPEN = ::core::option::Option isize>; +pub type PFNFCIREAD = ::core::option::Option u32>; +pub type PFNFCISEEK = ::core::option::Option i32>; +pub type PFNFCISTATUS = ::core::option::Option i32>; +pub type PFNFCIWRITE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNFDIDECRYPT = ::core::option::Option i32>; +pub type PFNFDINOTIFY = ::core::option::Option isize>; +pub type PFNFREE = ::core::option::Option ()>; +pub type PFNOPEN = ::core::option::Option isize>; +pub type PFNREAD = ::core::option::Option u32>; +pub type PFNSEEK = ::core::option::Option i32>; +pub type PFNWRITE = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/CloudFilters/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/CloudFilters/mod.rs new file mode 100644 index 000000000..f394cc190 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/CloudFilters/mod.rs @@ -0,0 +1,943 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CfCloseHandle(filehandle : super::super::Foundation:: HANDLE) -> ()); +#[cfg(feature = "Win32_System_CorrelationVector")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_System_CorrelationVector\"`"] fn CfConnectSyncRoot(syncrootpath : ::windows_sys::core::PCWSTR, callbacktable : *const CF_CALLBACK_REGISTRATION, callbackcontext : *const ::core::ffi::c_void, connectflags : CF_CONNECT_FLAGS, connectionkey : *mut CF_CONNECTION_KEY) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn CfConvertToPlaceholder(filehandle : super::super::Foundation:: HANDLE, fileidentity : *const ::core::ffi::c_void, fileidentitylength : u32, convertflags : CF_CONVERT_FLAGS, convertusn : *mut i64, overlapped : *mut super::super::System::IO:: OVERLAPPED) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Storage_FileSystem")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] fn CfCreatePlaceholders(basedirectorypath : ::windows_sys::core::PCWSTR, placeholderarray : *mut CF_PLACEHOLDER_CREATE_INFO, placeholdercount : u32, createflags : CF_CREATE_FLAGS, entriesprocessed : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn CfDehydratePlaceholder(filehandle : super::super::Foundation:: HANDLE, startingoffset : i64, length : i64, dehydrateflags : CF_DEHYDRATE_FLAGS, overlapped : *mut super::super::System::IO:: OVERLAPPED) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cldapi.dll" "system" fn CfDisconnectSyncRoot(connectionkey : CF_CONNECTION_KEY) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_CorrelationVector"))] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_CorrelationVector\"`"] fn CfExecute(opinfo : *const CF_OPERATION_INFO, opparams : *mut CF_OPERATION_PARAMETERS) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_CorrelationVector"))] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_CorrelationVector\"`"] fn CfGetCorrelationVector(filehandle : super::super::Foundation:: HANDLE, correlationvector : *mut super::super::System::CorrelationVector:: CORRELATION_VECTOR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CfGetPlaceholderInfo(filehandle : super::super::Foundation:: HANDLE, infoclass : CF_PLACEHOLDER_INFO_CLASS, infobuffer : *mut ::core::ffi::c_void, infobufferlength : u32, returnedlength : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CfGetPlaceholderRangeInfo(filehandle : super::super::Foundation:: HANDLE, infoclass : CF_PLACEHOLDER_RANGE_INFO_CLASS, startingoffset : i64, length : i64, infobuffer : *mut ::core::ffi::c_void, infobufferlength : u32, returnedlength : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cldapi.dll" "system" fn CfGetPlaceholderRangeInfoForHydration(connectionkey : CF_CONNECTION_KEY, transferkey : i64, fileid : i64, infoclass : CF_PLACEHOLDER_RANGE_INFO_CLASS, startingoffset : i64, rangelength : i64, infobuffer : *mut ::core::ffi::c_void, infobuffersize : u32, infobufferwritten : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cldapi.dll" "system" fn CfGetPlaceholderStateFromAttributeTag(fileattributes : u32, reparsetag : u32) -> CF_PLACEHOLDER_STATE); +#[cfg(feature = "Win32_Storage_FileSystem")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] fn CfGetPlaceholderStateFromFileInfo(infobuffer : *const ::core::ffi::c_void, infoclass : super::FileSystem:: FILE_INFO_BY_HANDLE_CLASS) -> CF_PLACEHOLDER_STATE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn CfGetPlaceholderStateFromFindData(finddata : *const super::FileSystem:: WIN32_FIND_DATAA) -> CF_PLACEHOLDER_STATE); +::windows_targets::link!("cldapi.dll" "system" fn CfGetPlatformInfo(platformversion : *mut CF_PLATFORM_INFO) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CfGetSyncRootInfoByHandle(filehandle : super::super::Foundation:: HANDLE, infoclass : CF_SYNC_ROOT_INFO_CLASS, infobuffer : *mut ::core::ffi::c_void, infobufferlength : u32, returnedlength : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cldapi.dll" "system" fn CfGetSyncRootInfoByPath(filepath : ::windows_sys::core::PCWSTR, infoclass : CF_SYNC_ROOT_INFO_CLASS, infobuffer : *mut ::core::ffi::c_void, infobufferlength : u32, returnedlength : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CfGetTransferKey(filehandle : super::super::Foundation:: HANDLE, transferkey : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CfGetWin32HandleFromProtectedHandle(protectedhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn CfHydratePlaceholder(filehandle : super::super::Foundation:: HANDLE, startingoffset : i64, length : i64, hydrateflags : CF_HYDRATE_FLAGS, overlapped : *mut super::super::System::IO:: OVERLAPPED) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CfOpenFileWithOplock(filepath : ::windows_sys::core::PCWSTR, flags : CF_OPEN_FILE_FLAGS, protectedhandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cldapi.dll" "system" fn CfQuerySyncProviderStatus(connectionkey : CF_CONNECTION_KEY, providerstatus : *mut CF_SYNC_PROVIDER_STATUS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CfReferenceProtectedHandle(protectedhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOLEAN); +::windows_targets::link!("cldapi.dll" "system" fn CfRegisterSyncRoot(syncrootpath : ::windows_sys::core::PCWSTR, registration : *const CF_SYNC_REGISTRATION, policies : *const CF_SYNC_POLICIES, registerflags : CF_REGISTER_FLAGS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CfReleaseProtectedHandle(protectedhandle : super::super::Foundation:: HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CfReleaseTransferKey(filehandle : super::super::Foundation:: HANDLE, transferkey : *const i64) -> ()); +::windows_targets::link!("cldapi.dll" "system" fn CfReportProviderProgress(connectionkey : CF_CONNECTION_KEY, transferkey : i64, providerprogresstotal : i64, providerprogresscompleted : i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cldapi.dll" "system" fn CfReportProviderProgress2(connectionkey : CF_CONNECTION_KEY, transferkey : i64, requestkey : i64, providerprogresstotal : i64, providerprogresscompleted : i64, targetsessionid : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cldapi.dll" "system" fn CfReportSyncStatus(syncrootpath : ::windows_sys::core::PCWSTR, syncstatus : *const CF_SYNC_STATUS) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn CfRevertPlaceholder(filehandle : super::super::Foundation:: HANDLE, revertflags : CF_REVERT_FLAGS, overlapped : *mut super::super::System::IO:: OVERLAPPED) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_CorrelationVector"))] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_CorrelationVector\"`"] fn CfSetCorrelationVector(filehandle : super::super::Foundation:: HANDLE, correlationvector : *const super::super::System::CorrelationVector:: CORRELATION_VECTOR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CfSetInSyncState(filehandle : super::super::Foundation:: HANDLE, insyncstate : CF_IN_SYNC_STATE, insyncflags : CF_SET_IN_SYNC_FLAGS, insyncusn : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn CfSetPinState(filehandle : super::super::Foundation:: HANDLE, pinstate : CF_PIN_STATE, pinflags : CF_SET_PIN_FLAGS, overlapped : *mut super::super::System::IO:: OVERLAPPED) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cldapi.dll" "system" fn CfUnregisterSyncRoot(syncrootpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO"))] +::windows_targets::link!("cldapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`"] fn CfUpdatePlaceholder(filehandle : super::super::Foundation:: HANDLE, fsmetadata : *const CF_FS_METADATA, fileidentity : *const ::core::ffi::c_void, fileidentitylength : u32, dehydraterangearray : *const CF_FILE_RANGE, dehydraterangecount : u32, updateflags : CF_UPDATE_FLAGS, updateusn : *mut i64, overlapped : *mut super::super::System::IO:: OVERLAPPED) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("cldapi.dll" "system" fn CfUpdateSyncProviderStatus(connectionkey : CF_CONNECTION_KEY, providerstatus : CF_SYNC_PROVIDER_STATUS) -> ::windows_sys::core::HRESULT); +pub const CF_CALLBACK_CANCEL_FLAG_IO_ABORTED: CF_CALLBACK_CANCEL_FLAGS = 2i32; +pub const CF_CALLBACK_CANCEL_FLAG_IO_TIMEOUT: CF_CALLBACK_CANCEL_FLAGS = 1i32; +pub const CF_CALLBACK_CANCEL_FLAG_NONE: CF_CALLBACK_CANCEL_FLAGS = 0i32; +pub const CF_CALLBACK_CLOSE_COMPLETION_FLAG_DELETED: CF_CALLBACK_CLOSE_COMPLETION_FLAGS = 1i32; +pub const CF_CALLBACK_CLOSE_COMPLETION_FLAG_NONE: CF_CALLBACK_CLOSE_COMPLETION_FLAGS = 0i32; +pub const CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_BACKGROUND: CF_CALLBACK_DEHYDRATE_COMPLETION_FLAGS = 1i32; +pub const CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_DEHYDRATED: CF_CALLBACK_DEHYDRATE_COMPLETION_FLAGS = 2i32; +pub const CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_NONE: CF_CALLBACK_DEHYDRATE_COMPLETION_FLAGS = 0i32; +pub const CF_CALLBACK_DEHYDRATE_FLAG_BACKGROUND: CF_CALLBACK_DEHYDRATE_FLAGS = 1i32; +pub const CF_CALLBACK_DEHYDRATE_FLAG_NONE: CF_CALLBACK_DEHYDRATE_FLAGS = 0i32; +pub const CF_CALLBACK_DEHYDRATION_REASON_NONE: CF_CALLBACK_DEHYDRATION_REASON = 0i32; +pub const CF_CALLBACK_DEHYDRATION_REASON_SYSTEM_INACTIVITY: CF_CALLBACK_DEHYDRATION_REASON = 3i32; +pub const CF_CALLBACK_DEHYDRATION_REASON_SYSTEM_LOW_SPACE: CF_CALLBACK_DEHYDRATION_REASON = 2i32; +pub const CF_CALLBACK_DEHYDRATION_REASON_SYSTEM_OS_UPGRADE: CF_CALLBACK_DEHYDRATION_REASON = 4i32; +pub const CF_CALLBACK_DEHYDRATION_REASON_USER_MANUAL: CF_CALLBACK_DEHYDRATION_REASON = 1i32; +pub const CF_CALLBACK_DELETE_COMPLETION_FLAG_NONE: CF_CALLBACK_DELETE_COMPLETION_FLAGS = 0i32; +pub const CF_CALLBACK_DELETE_FLAG_IS_DIRECTORY: CF_CALLBACK_DELETE_FLAGS = 1i32; +pub const CF_CALLBACK_DELETE_FLAG_IS_UNDELETE: CF_CALLBACK_DELETE_FLAGS = 2i32; +pub const CF_CALLBACK_DELETE_FLAG_NONE: CF_CALLBACK_DELETE_FLAGS = 0i32; +pub const CF_CALLBACK_FETCH_DATA_FLAG_EXPLICIT_HYDRATION: CF_CALLBACK_FETCH_DATA_FLAGS = 2i32; +pub const CF_CALLBACK_FETCH_DATA_FLAG_NONE: CF_CALLBACK_FETCH_DATA_FLAGS = 0i32; +pub const CF_CALLBACK_FETCH_DATA_FLAG_RECOVERY: CF_CALLBACK_FETCH_DATA_FLAGS = 1i32; +pub const CF_CALLBACK_FETCH_PLACEHOLDERS_FLAG_NONE: CF_CALLBACK_FETCH_PLACEHOLDERS_FLAGS = 0i32; +pub const CF_CALLBACK_OPEN_COMPLETION_FLAG_NONE: CF_CALLBACK_OPEN_COMPLETION_FLAGS = 0i32; +pub const CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNKNOWN: CF_CALLBACK_OPEN_COMPLETION_FLAGS = 1i32; +pub const CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNSUPPORTED: CF_CALLBACK_OPEN_COMPLETION_FLAGS = 2i32; +pub const CF_CALLBACK_RENAME_COMPLETION_FLAG_NONE: CF_CALLBACK_RENAME_COMPLETION_FLAGS = 0i32; +pub const CF_CALLBACK_RENAME_FLAG_IS_DIRECTORY: CF_CALLBACK_RENAME_FLAGS = 1i32; +pub const CF_CALLBACK_RENAME_FLAG_NONE: CF_CALLBACK_RENAME_FLAGS = 0i32; +pub const CF_CALLBACK_RENAME_FLAG_SOURCE_IN_SCOPE: CF_CALLBACK_RENAME_FLAGS = 2i32; +pub const CF_CALLBACK_RENAME_FLAG_TARGET_IN_SCOPE: CF_CALLBACK_RENAME_FLAGS = 4i32; +pub const CF_CALLBACK_TYPE_CANCEL_FETCH_DATA: CF_CALLBACK_TYPE = 2i32; +pub const CF_CALLBACK_TYPE_CANCEL_FETCH_PLACEHOLDERS: CF_CALLBACK_TYPE = 4i32; +pub const CF_CALLBACK_TYPE_FETCH_DATA: CF_CALLBACK_TYPE = 0i32; +pub const CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS: CF_CALLBACK_TYPE = 3i32; +pub const CF_CALLBACK_TYPE_NONE: CF_CALLBACK_TYPE = -1i32; +pub const CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE: CF_CALLBACK_TYPE = 7i32; +pub const CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION: CF_CALLBACK_TYPE = 8i32; +pub const CF_CALLBACK_TYPE_NOTIFY_DELETE: CF_CALLBACK_TYPE = 9i32; +pub const CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION: CF_CALLBACK_TYPE = 10i32; +pub const CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION: CF_CALLBACK_TYPE = 6i32; +pub const CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION: CF_CALLBACK_TYPE = 5i32; +pub const CF_CALLBACK_TYPE_NOTIFY_RENAME: CF_CALLBACK_TYPE = 11i32; +pub const CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION: CF_CALLBACK_TYPE = 12i32; +pub const CF_CALLBACK_TYPE_VALIDATE_DATA: CF_CALLBACK_TYPE = 1i32; +pub const CF_CALLBACK_VALIDATE_DATA_FLAG_EXPLICIT_HYDRATION: CF_CALLBACK_VALIDATE_DATA_FLAGS = 2i32; +pub const CF_CALLBACK_VALIDATE_DATA_FLAG_NONE: CF_CALLBACK_VALIDATE_DATA_FLAGS = 0i32; +pub const CF_CONNECT_FLAG_BLOCK_SELF_IMPLICIT_HYDRATION: CF_CONNECT_FLAGS = 8i32; +pub const CF_CONNECT_FLAG_NONE: CF_CONNECT_FLAGS = 0i32; +pub const CF_CONNECT_FLAG_REQUIRE_FULL_FILE_PATH: CF_CONNECT_FLAGS = 4i32; +pub const CF_CONNECT_FLAG_REQUIRE_PROCESS_INFO: CF_CONNECT_FLAGS = 2i32; +pub const CF_CONVERT_FLAG_ALWAYS_FULL: CF_CONVERT_FLAGS = 8i32; +pub const CF_CONVERT_FLAG_DEHYDRATE: CF_CONVERT_FLAGS = 2i32; +pub const CF_CONVERT_FLAG_ENABLE_ON_DEMAND_POPULATION: CF_CONVERT_FLAGS = 4i32; +pub const CF_CONVERT_FLAG_FORCE_CONVERT_TO_CLOUD_FILE: CF_CONVERT_FLAGS = 16i32; +pub const CF_CONVERT_FLAG_MARK_IN_SYNC: CF_CONVERT_FLAGS = 1i32; +pub const CF_CONVERT_FLAG_NONE: CF_CONVERT_FLAGS = 0i32; +pub const CF_CREATE_FLAG_NONE: CF_CREATE_FLAGS = 0i32; +pub const CF_CREATE_FLAG_STOP_ON_ERROR: CF_CREATE_FLAGS = 1i32; +pub const CF_DEHYDRATE_FLAG_BACKGROUND: CF_DEHYDRATE_FLAGS = 1i32; +pub const CF_DEHYDRATE_FLAG_NONE: CF_DEHYDRATE_FLAGS = 0i32; +pub const CF_HARDLINK_POLICY_ALLOWED: CF_HARDLINK_POLICY = 1i32; +pub const CF_HARDLINK_POLICY_NONE: CF_HARDLINK_POLICY = 0i32; +pub const CF_HYDRATE_FLAG_NONE: CF_HYDRATE_FLAGS = 0i32; +pub const CF_HYDRATION_POLICY_ALWAYS_FULL: CF_HYDRATION_POLICY_PRIMARY = 3u16; +pub const CF_HYDRATION_POLICY_FULL: CF_HYDRATION_POLICY_PRIMARY = 2u16; +pub const CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION: CF_HYDRATION_POLICY_MODIFIER = 8u16; +pub const CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED: CF_HYDRATION_POLICY_MODIFIER = 4u16; +pub const CF_HYDRATION_POLICY_MODIFIER_NONE: CF_HYDRATION_POLICY_MODIFIER = 0u16; +pub const CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED: CF_HYDRATION_POLICY_MODIFIER = 2u16; +pub const CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED: CF_HYDRATION_POLICY_MODIFIER = 1u16; +pub const CF_HYDRATION_POLICY_PARTIAL: CF_HYDRATION_POLICY_PRIMARY = 0u16; +pub const CF_HYDRATION_POLICY_PROGRESSIVE: CF_HYDRATION_POLICY_PRIMARY = 1u16; +pub const CF_INSYNC_POLICY_NONE: CF_INSYNC_POLICY = 0u32; +pub const CF_INSYNC_POLICY_PRESERVE_INSYNC_FOR_SYNC_ENGINE: CF_INSYNC_POLICY = 2147483648u32; +pub const CF_INSYNC_POLICY_TRACK_ALL: CF_INSYNC_POLICY = 16777215u32; +pub const CF_INSYNC_POLICY_TRACK_DIRECTORY_ALL: CF_INSYNC_POLICY = 11184880u32; +pub const CF_INSYNC_POLICY_TRACK_DIRECTORY_CREATION_TIME: CF_INSYNC_POLICY = 16u32; +pub const CF_INSYNC_POLICY_TRACK_DIRECTORY_HIDDEN_ATTRIBUTE: CF_INSYNC_POLICY = 64u32; +pub const CF_INSYNC_POLICY_TRACK_DIRECTORY_LAST_WRITE_TIME: CF_INSYNC_POLICY = 512u32; +pub const CF_INSYNC_POLICY_TRACK_DIRECTORY_READONLY_ATTRIBUTE: CF_INSYNC_POLICY = 32u32; +pub const CF_INSYNC_POLICY_TRACK_DIRECTORY_SYSTEM_ATTRIBUTE: CF_INSYNC_POLICY = 128u32; +pub const CF_INSYNC_POLICY_TRACK_FILE_ALL: CF_INSYNC_POLICY = 5592335u32; +pub const CF_INSYNC_POLICY_TRACK_FILE_CREATION_TIME: CF_INSYNC_POLICY = 1u32; +pub const CF_INSYNC_POLICY_TRACK_FILE_HIDDEN_ATTRIBUTE: CF_INSYNC_POLICY = 4u32; +pub const CF_INSYNC_POLICY_TRACK_FILE_LAST_WRITE_TIME: CF_INSYNC_POLICY = 256u32; +pub const CF_INSYNC_POLICY_TRACK_FILE_READONLY_ATTRIBUTE: CF_INSYNC_POLICY = 2u32; +pub const CF_INSYNC_POLICY_TRACK_FILE_SYSTEM_ATTRIBUTE: CF_INSYNC_POLICY = 8u32; +pub const CF_IN_SYNC_STATE_IN_SYNC: CF_IN_SYNC_STATE = 1i32; +pub const CF_IN_SYNC_STATE_NOT_IN_SYNC: CF_IN_SYNC_STATE = 0i32; +pub const CF_MAX_PRIORITY_HINT: u32 = 15u32; +pub const CF_MAX_PROVIDER_NAME_LENGTH: u32 = 255u32; +pub const CF_MAX_PROVIDER_VERSION_LENGTH: u32 = 255u32; +pub const CF_OPEN_FILE_FLAG_DELETE_ACCESS: CF_OPEN_FILE_FLAGS = 4i32; +pub const CF_OPEN_FILE_FLAG_EXCLUSIVE: CF_OPEN_FILE_FLAGS = 1i32; +pub const CF_OPEN_FILE_FLAG_FOREGROUND: CF_OPEN_FILE_FLAGS = 8i32; +pub const CF_OPEN_FILE_FLAG_NONE: CF_OPEN_FILE_FLAGS = 0i32; +pub const CF_OPEN_FILE_FLAG_WRITE_ACCESS: CF_OPEN_FILE_FLAGS = 2i32; +pub const CF_OPERATION_ACK_DATA_FLAG_NONE: CF_OPERATION_ACK_DATA_FLAGS = 0i32; +pub const CF_OPERATION_ACK_DEHYDRATE_FLAG_NONE: CF_OPERATION_ACK_DEHYDRATE_FLAGS = 0i32; +pub const CF_OPERATION_ACK_DELETE_FLAG_NONE: CF_OPERATION_ACK_DELETE_FLAGS = 0i32; +pub const CF_OPERATION_ACK_RENAME_FLAG_NONE: CF_OPERATION_ACK_RENAME_FLAGS = 0i32; +pub const CF_OPERATION_RESTART_HYDRATION_FLAG_MARK_IN_SYNC: CF_OPERATION_RESTART_HYDRATION_FLAGS = 1i32; +pub const CF_OPERATION_RESTART_HYDRATION_FLAG_NONE: CF_OPERATION_RESTART_HYDRATION_FLAGS = 0i32; +pub const CF_OPERATION_RETRIEVE_DATA_FLAG_NONE: CF_OPERATION_RETRIEVE_DATA_FLAGS = 0i32; +pub const CF_OPERATION_TRANSFER_DATA_FLAG_NONE: CF_OPERATION_TRANSFER_DATA_FLAGS = 0i32; +pub const CF_OPERATION_TRANSFER_PLACEHOLDERS_FLAG_DISABLE_ON_DEMAND_POPULATION: CF_OPERATION_TRANSFER_PLACEHOLDERS_FLAGS = 2i32; +pub const CF_OPERATION_TRANSFER_PLACEHOLDERS_FLAG_NONE: CF_OPERATION_TRANSFER_PLACEHOLDERS_FLAGS = 0i32; +pub const CF_OPERATION_TRANSFER_PLACEHOLDERS_FLAG_STOP_ON_ERROR: CF_OPERATION_TRANSFER_PLACEHOLDERS_FLAGS = 1i32; +pub const CF_OPERATION_TYPE_ACK_DATA: CF_OPERATION_TYPE = 2i32; +pub const CF_OPERATION_TYPE_ACK_DEHYDRATE: CF_OPERATION_TYPE = 5i32; +pub const CF_OPERATION_TYPE_ACK_DELETE: CF_OPERATION_TYPE = 6i32; +pub const CF_OPERATION_TYPE_ACK_RENAME: CF_OPERATION_TYPE = 7i32; +pub const CF_OPERATION_TYPE_RESTART_HYDRATION: CF_OPERATION_TYPE = 3i32; +pub const CF_OPERATION_TYPE_RETRIEVE_DATA: CF_OPERATION_TYPE = 1i32; +pub const CF_OPERATION_TYPE_TRANSFER_DATA: CF_OPERATION_TYPE = 0i32; +pub const CF_OPERATION_TYPE_TRANSFER_PLACEHOLDERS: CF_OPERATION_TYPE = 4i32; +pub const CF_PIN_STATE_EXCLUDED: CF_PIN_STATE = 3i32; +pub const CF_PIN_STATE_INHERIT: CF_PIN_STATE = 4i32; +pub const CF_PIN_STATE_PINNED: CF_PIN_STATE = 1i32; +pub const CF_PIN_STATE_UNPINNED: CF_PIN_STATE = 2i32; +pub const CF_PIN_STATE_UNSPECIFIED: CF_PIN_STATE = 0i32; +pub const CF_PLACEHOLDER_CREATE_FLAG_ALWAYS_FULL: CF_PLACEHOLDER_CREATE_FLAGS = 8i32; +pub const CF_PLACEHOLDER_CREATE_FLAG_DISABLE_ON_DEMAND_POPULATION: CF_PLACEHOLDER_CREATE_FLAGS = 1i32; +pub const CF_PLACEHOLDER_CREATE_FLAG_MARK_IN_SYNC: CF_PLACEHOLDER_CREATE_FLAGS = 2i32; +pub const CF_PLACEHOLDER_CREATE_FLAG_NONE: CF_PLACEHOLDER_CREATE_FLAGS = 0i32; +pub const CF_PLACEHOLDER_CREATE_FLAG_SUPERSEDE: CF_PLACEHOLDER_CREATE_FLAGS = 4i32; +pub const CF_PLACEHOLDER_INFO_BASIC: CF_PLACEHOLDER_INFO_CLASS = 0i32; +pub const CF_PLACEHOLDER_INFO_STANDARD: CF_PLACEHOLDER_INFO_CLASS = 1i32; +pub const CF_PLACEHOLDER_MANAGEMENT_POLICY_CONVERT_TO_UNRESTRICTED: CF_PLACEHOLDER_MANAGEMENT_POLICY = 2i32; +pub const CF_PLACEHOLDER_MANAGEMENT_POLICY_CREATE_UNRESTRICTED: CF_PLACEHOLDER_MANAGEMENT_POLICY = 1i32; +pub const CF_PLACEHOLDER_MANAGEMENT_POLICY_DEFAULT: CF_PLACEHOLDER_MANAGEMENT_POLICY = 0i32; +pub const CF_PLACEHOLDER_MANAGEMENT_POLICY_UPDATE_UNRESTRICTED: CF_PLACEHOLDER_MANAGEMENT_POLICY = 4i32; +pub const CF_PLACEHOLDER_MAX_FILE_IDENTITY_LENGTH: u32 = 4096u32; +pub const CF_PLACEHOLDER_RANGE_INFO_MODIFIED: CF_PLACEHOLDER_RANGE_INFO_CLASS = 3i32; +pub const CF_PLACEHOLDER_RANGE_INFO_ONDISK: CF_PLACEHOLDER_RANGE_INFO_CLASS = 1i32; +pub const CF_PLACEHOLDER_RANGE_INFO_VALIDATED: CF_PLACEHOLDER_RANGE_INFO_CLASS = 2i32; +pub const CF_PLACEHOLDER_STATE_ESSENTIAL_PROP_PRESENT: CF_PLACEHOLDER_STATE = 4u32; +pub const CF_PLACEHOLDER_STATE_INVALID: CF_PLACEHOLDER_STATE = 4294967295u32; +pub const CF_PLACEHOLDER_STATE_IN_SYNC: CF_PLACEHOLDER_STATE = 8u32; +pub const CF_PLACEHOLDER_STATE_NO_STATES: CF_PLACEHOLDER_STATE = 0u32; +pub const CF_PLACEHOLDER_STATE_PARTIAL: CF_PLACEHOLDER_STATE = 16u32; +pub const CF_PLACEHOLDER_STATE_PARTIALLY_ON_DISK: CF_PLACEHOLDER_STATE = 32u32; +pub const CF_PLACEHOLDER_STATE_PLACEHOLDER: CF_PLACEHOLDER_STATE = 1u32; +pub const CF_PLACEHOLDER_STATE_SYNC_ROOT: CF_PLACEHOLDER_STATE = 2u32; +pub const CF_POPULATION_POLICY_ALWAYS_FULL: CF_POPULATION_POLICY_PRIMARY = 3u16; +pub const CF_POPULATION_POLICY_FULL: CF_POPULATION_POLICY_PRIMARY = 2u16; +pub const CF_POPULATION_POLICY_MODIFIER_NONE: CF_POPULATION_POLICY_MODIFIER = 0u16; +pub const CF_POPULATION_POLICY_PARTIAL: CF_POPULATION_POLICY_PRIMARY = 0u16; +pub const CF_PROVIDER_STATUS_CLEAR_FLAGS: CF_SYNC_PROVIDER_STATUS = 2147483648u32; +pub const CF_PROVIDER_STATUS_CONNECTIVITY_LOST: CF_SYNC_PROVIDER_STATUS = 64u32; +pub const CF_PROVIDER_STATUS_DISCONNECTED: CF_SYNC_PROVIDER_STATUS = 0u32; +pub const CF_PROVIDER_STATUS_ERROR: CF_SYNC_PROVIDER_STATUS = 3221225474u32; +pub const CF_PROVIDER_STATUS_IDLE: CF_SYNC_PROVIDER_STATUS = 1u32; +pub const CF_PROVIDER_STATUS_POPULATE_CONTENT: CF_SYNC_PROVIDER_STATUS = 8u32; +pub const CF_PROVIDER_STATUS_POPULATE_METADATA: CF_SYNC_PROVIDER_STATUS = 4u32; +pub const CF_PROVIDER_STATUS_POPULATE_NAMESPACE: CF_SYNC_PROVIDER_STATUS = 2u32; +pub const CF_PROVIDER_STATUS_SYNC_FULL: CF_SYNC_PROVIDER_STATUS = 32u32; +pub const CF_PROVIDER_STATUS_SYNC_INCREMENTAL: CF_SYNC_PROVIDER_STATUS = 16u32; +pub const CF_PROVIDER_STATUS_TERMINATED: CF_SYNC_PROVIDER_STATUS = 3221225473u32; +pub const CF_REGISTER_FLAG_DISABLE_ON_DEMAND_POPULATION_ON_ROOT: CF_REGISTER_FLAGS = 2i32; +pub const CF_REGISTER_FLAG_MARK_IN_SYNC_ON_ROOT: CF_REGISTER_FLAGS = 4i32; +pub const CF_REGISTER_FLAG_NONE: CF_REGISTER_FLAGS = 0i32; +pub const CF_REGISTER_FLAG_UPDATE: CF_REGISTER_FLAGS = 1i32; +pub const CF_REQUEST_KEY_DEFAULT: u32 = 0u32; +pub const CF_REVERT_FLAG_NONE: CF_REVERT_FLAGS = 0i32; +pub const CF_SET_IN_SYNC_FLAG_NONE: CF_SET_IN_SYNC_FLAGS = 0i32; +pub const CF_SET_PIN_FLAG_NONE: CF_SET_PIN_FLAGS = 0i32; +pub const CF_SET_PIN_FLAG_RECURSE: CF_SET_PIN_FLAGS = 1i32; +pub const CF_SET_PIN_FLAG_RECURSE_ONLY: CF_SET_PIN_FLAGS = 2i32; +pub const CF_SET_PIN_FLAG_RECURSE_STOP_ON_ERROR: CF_SET_PIN_FLAGS = 4i32; +pub const CF_SYNC_ROOT_INFO_BASIC: CF_SYNC_ROOT_INFO_CLASS = 0i32; +pub const CF_SYNC_ROOT_INFO_PROVIDER: CF_SYNC_ROOT_INFO_CLASS = 2i32; +pub const CF_SYNC_ROOT_INFO_STANDARD: CF_SYNC_ROOT_INFO_CLASS = 1i32; +pub const CF_UPDATE_FLAG_ALLOW_PARTIAL: CF_UPDATE_FLAGS = 1024i32; +pub const CF_UPDATE_FLAG_ALWAYS_FULL: CF_UPDATE_FLAGS = 512i32; +pub const CF_UPDATE_FLAG_CLEAR_IN_SYNC: CF_UPDATE_FLAGS = 64i32; +pub const CF_UPDATE_FLAG_DEHYDRATE: CF_UPDATE_FLAGS = 4i32; +pub const CF_UPDATE_FLAG_DISABLE_ON_DEMAND_POPULATION: CF_UPDATE_FLAGS = 16i32; +pub const CF_UPDATE_FLAG_ENABLE_ON_DEMAND_POPULATION: CF_UPDATE_FLAGS = 8i32; +pub const CF_UPDATE_FLAG_MARK_IN_SYNC: CF_UPDATE_FLAGS = 2i32; +pub const CF_UPDATE_FLAG_NONE: CF_UPDATE_FLAGS = 0i32; +pub const CF_UPDATE_FLAG_PASSTHROUGH_FS_METADATA: CF_UPDATE_FLAGS = 256i32; +pub const CF_UPDATE_FLAG_REMOVE_FILE_IDENTITY: CF_UPDATE_FLAGS = 32i32; +pub const CF_UPDATE_FLAG_REMOVE_PROPERTY: CF_UPDATE_FLAGS = 128i32; +pub const CF_UPDATE_FLAG_VERIFY_IN_SYNC: CF_UPDATE_FLAGS = 1i32; +pub type CF_CALLBACK_CANCEL_FLAGS = i32; +pub type CF_CALLBACK_CLOSE_COMPLETION_FLAGS = i32; +pub type CF_CALLBACK_DEHYDRATE_COMPLETION_FLAGS = i32; +pub type CF_CALLBACK_DEHYDRATE_FLAGS = i32; +pub type CF_CALLBACK_DEHYDRATION_REASON = i32; +pub type CF_CALLBACK_DELETE_COMPLETION_FLAGS = i32; +pub type CF_CALLBACK_DELETE_FLAGS = i32; +pub type CF_CALLBACK_FETCH_DATA_FLAGS = i32; +pub type CF_CALLBACK_FETCH_PLACEHOLDERS_FLAGS = i32; +pub type CF_CALLBACK_OPEN_COMPLETION_FLAGS = i32; +pub type CF_CALLBACK_RENAME_COMPLETION_FLAGS = i32; +pub type CF_CALLBACK_RENAME_FLAGS = i32; +pub type CF_CALLBACK_TYPE = i32; +pub type CF_CALLBACK_VALIDATE_DATA_FLAGS = i32; +pub type CF_CONNECT_FLAGS = i32; +pub type CF_CONVERT_FLAGS = i32; +pub type CF_CREATE_FLAGS = i32; +pub type CF_DEHYDRATE_FLAGS = i32; +pub type CF_HARDLINK_POLICY = i32; +pub type CF_HYDRATE_FLAGS = i32; +pub type CF_HYDRATION_POLICY_MODIFIER = u16; +pub type CF_HYDRATION_POLICY_PRIMARY = u16; +pub type CF_INSYNC_POLICY = u32; +pub type CF_IN_SYNC_STATE = i32; +pub type CF_OPEN_FILE_FLAGS = i32; +pub type CF_OPERATION_ACK_DATA_FLAGS = i32; +pub type CF_OPERATION_ACK_DEHYDRATE_FLAGS = i32; +pub type CF_OPERATION_ACK_DELETE_FLAGS = i32; +pub type CF_OPERATION_ACK_RENAME_FLAGS = i32; +pub type CF_OPERATION_RESTART_HYDRATION_FLAGS = i32; +pub type CF_OPERATION_RETRIEVE_DATA_FLAGS = i32; +pub type CF_OPERATION_TRANSFER_DATA_FLAGS = i32; +pub type CF_OPERATION_TRANSFER_PLACEHOLDERS_FLAGS = i32; +pub type CF_OPERATION_TYPE = i32; +pub type CF_PIN_STATE = i32; +pub type CF_PLACEHOLDER_CREATE_FLAGS = i32; +pub type CF_PLACEHOLDER_INFO_CLASS = i32; +pub type CF_PLACEHOLDER_MANAGEMENT_POLICY = i32; +pub type CF_PLACEHOLDER_RANGE_INFO_CLASS = i32; +pub type CF_PLACEHOLDER_STATE = u32; +pub type CF_POPULATION_POLICY_MODIFIER = u16; +pub type CF_POPULATION_POLICY_PRIMARY = u16; +pub type CF_REGISTER_FLAGS = i32; +pub type CF_REVERT_FLAGS = i32; +pub type CF_SET_IN_SYNC_FLAGS = i32; +pub type CF_SET_PIN_FLAGS = i32; +pub type CF_SYNC_PROVIDER_STATUS = u32; +pub type CF_SYNC_ROOT_INFO_CLASS = i32; +pub type CF_UPDATE_FLAGS = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_System_CorrelationVector\"`"] +#[cfg(feature = "Win32_System_CorrelationVector")] +pub struct CF_CALLBACK_INFO { + pub StructSize: u32, + pub ConnectionKey: CF_CONNECTION_KEY, + pub CallbackContext: *mut ::core::ffi::c_void, + pub VolumeGuidName: ::windows_sys::core::PCWSTR, + pub VolumeDosName: ::windows_sys::core::PCWSTR, + pub VolumeSerialNumber: u32, + pub SyncRootFileId: i64, + pub SyncRootIdentity: *const ::core::ffi::c_void, + pub SyncRootIdentityLength: u32, + pub FileId: i64, + pub FileSize: i64, + pub FileIdentity: *const ::core::ffi::c_void, + pub FileIdentityLength: u32, + pub NormalizedPath: ::windows_sys::core::PCWSTR, + pub TransferKey: i64, + pub PriorityHint: u8, + pub CorrelationVector: *mut super::super::System::CorrelationVector::CORRELATION_VECTOR, + pub ProcessInfo: *mut CF_PROCESS_INFO, + pub RequestKey: i64, +} +#[cfg(feature = "Win32_System_CorrelationVector")] +impl ::core::marker::Copy for CF_CALLBACK_INFO {} +#[cfg(feature = "Win32_System_CorrelationVector")] +impl ::core::clone::Clone for CF_CALLBACK_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS { + pub ParamSize: u32, + pub Anonymous: CF_CALLBACK_PARAMETERS_0, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CF_CALLBACK_PARAMETERS_0 { + pub Cancel: CF_CALLBACK_PARAMETERS_0_0, + pub FetchData: CF_CALLBACK_PARAMETERS_0_6, + pub ValidateData: CF_CALLBACK_PARAMETERS_0_11, + pub FetchPlaceholders: CF_CALLBACK_PARAMETERS_0_7, + pub OpenCompletion: CF_CALLBACK_PARAMETERS_0_8, + pub CloseCompletion: CF_CALLBACK_PARAMETERS_0_1, + pub Dehydrate: CF_CALLBACK_PARAMETERS_0_3, + pub DehydrateCompletion: CF_CALLBACK_PARAMETERS_0_2, + pub Delete: CF_CALLBACK_PARAMETERS_0_5, + pub DeleteCompletion: CF_CALLBACK_PARAMETERS_0_4, + pub Rename: CF_CALLBACK_PARAMETERS_0_10, + pub RenameCompletion: CF_CALLBACK_PARAMETERS_0_9, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS_0_0 { + pub Flags: CF_CALLBACK_CANCEL_FLAGS, + pub Anonymous: CF_CALLBACK_PARAMETERS_0_0_0, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_0 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CF_CALLBACK_PARAMETERS_0_0_0 { + pub FetchData: CF_CALLBACK_PARAMETERS_0_0_0_0, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_0_0 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS_0_0_0_0 { + pub FileOffset: i64, + pub Length: i64, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_0_0_0 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS_0_1 { + pub Flags: CF_CALLBACK_CLOSE_COMPLETION_FLAGS, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_1 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS_0_2 { + pub Flags: CF_CALLBACK_DEHYDRATE_COMPLETION_FLAGS, + pub Reason: CF_CALLBACK_DEHYDRATION_REASON, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_2 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS_0_3 { + pub Flags: CF_CALLBACK_DEHYDRATE_FLAGS, + pub Reason: CF_CALLBACK_DEHYDRATION_REASON, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_3 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS_0_4 { + pub Flags: CF_CALLBACK_DELETE_COMPLETION_FLAGS, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_4 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS_0_5 { + pub Flags: CF_CALLBACK_DELETE_FLAGS, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_5 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS_0_6 { + pub Flags: CF_CALLBACK_FETCH_DATA_FLAGS, + pub RequiredFileOffset: i64, + pub RequiredLength: i64, + pub OptionalFileOffset: i64, + pub OptionalLength: i64, + pub LastDehydrationTime: i64, + pub LastDehydrationReason: CF_CALLBACK_DEHYDRATION_REASON, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_6 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS_0_7 { + pub Flags: CF_CALLBACK_FETCH_PLACEHOLDERS_FLAGS, + pub Pattern: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_7 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS_0_8 { + pub Flags: CF_CALLBACK_OPEN_COMPLETION_FLAGS, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_8 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS_0_9 { + pub Flags: CF_CALLBACK_RENAME_COMPLETION_FLAGS, + pub SourcePath: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_9 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS_0_10 { + pub Flags: CF_CALLBACK_RENAME_FLAGS, + pub TargetPath: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_10 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_CALLBACK_PARAMETERS_0_11 { + pub Flags: CF_CALLBACK_VALIDATE_DATA_FLAGS, + pub RequiredFileOffset: i64, + pub RequiredLength: i64, +} +impl ::core::marker::Copy for CF_CALLBACK_PARAMETERS_0_11 {} +impl ::core::clone::Clone for CF_CALLBACK_PARAMETERS_0_11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_CorrelationVector\"`"] +#[cfg(feature = "Win32_System_CorrelationVector")] +pub struct CF_CALLBACK_REGISTRATION { + pub Type: CF_CALLBACK_TYPE, + pub Callback: CF_CALLBACK, +} +#[cfg(feature = "Win32_System_CorrelationVector")] +impl ::core::marker::Copy for CF_CALLBACK_REGISTRATION {} +#[cfg(feature = "Win32_System_CorrelationVector")] +impl ::core::clone::Clone for CF_CALLBACK_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +pub type CF_CONNECTION_KEY = i64; +#[repr(C)] +pub struct CF_FILE_RANGE { + pub StartingOffset: i64, + pub Length: i64, +} +impl ::core::marker::Copy for CF_FILE_RANGE {} +impl ::core::clone::Clone for CF_FILE_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct CF_FS_METADATA { + pub BasicInfo: super::FileSystem::FILE_BASIC_INFO, + pub FileSize: i64, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for CF_FS_METADATA {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for CF_FS_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_HYDRATION_POLICY { + pub Primary: CF_HYDRATION_POLICY_PRIMARY, + pub Modifier: CF_HYDRATION_POLICY_MODIFIER, +} +impl ::core::marker::Copy for CF_HYDRATION_POLICY {} +impl ::core::clone::Clone for CF_HYDRATION_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_CorrelationVector\"`"] +#[cfg(feature = "Win32_System_CorrelationVector")] +pub struct CF_OPERATION_INFO { + pub StructSize: u32, + pub Type: CF_OPERATION_TYPE, + pub ConnectionKey: CF_CONNECTION_KEY, + pub TransferKey: i64, + pub CorrelationVector: *const super::super::System::CorrelationVector::CORRELATION_VECTOR, + pub SyncStatus: *const CF_SYNC_STATUS, + pub RequestKey: i64, +} +#[cfg(feature = "Win32_System_CorrelationVector")] +impl ::core::marker::Copy for CF_OPERATION_INFO {} +#[cfg(feature = "Win32_System_CorrelationVector")] +impl ::core::clone::Clone for CF_OPERATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +pub struct CF_OPERATION_PARAMETERS { + pub ParamSize: u32, + pub Anonymous: CF_OPERATION_PARAMETERS_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::marker::Copy for CF_OPERATION_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::clone::Clone for CF_OPERATION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +pub union CF_OPERATION_PARAMETERS_0 { + pub TransferData: CF_OPERATION_PARAMETERS_0_6, + pub RetrieveData: CF_OPERATION_PARAMETERS_0_5, + pub AckData: CF_OPERATION_PARAMETERS_0_0, + pub RestartHydration: CF_OPERATION_PARAMETERS_0_4, + pub TransferPlaceholders: CF_OPERATION_PARAMETERS_0_7, + pub AckDehydrate: CF_OPERATION_PARAMETERS_0_1, + pub AckRename: CF_OPERATION_PARAMETERS_0_3, + pub AckDelete: CF_OPERATION_PARAMETERS_0_2, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::marker::Copy for CF_OPERATION_PARAMETERS_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::clone::Clone for CF_OPERATION_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +pub struct CF_OPERATION_PARAMETERS_0_0 { + pub Flags: CF_OPERATION_ACK_DATA_FLAGS, + pub CompletionStatus: super::super::Foundation::NTSTATUS, + pub Offset: i64, + pub Length: i64, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::marker::Copy for CF_OPERATION_PARAMETERS_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::clone::Clone for CF_OPERATION_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +pub struct CF_OPERATION_PARAMETERS_0_1 { + pub Flags: CF_OPERATION_ACK_DEHYDRATE_FLAGS, + pub CompletionStatus: super::super::Foundation::NTSTATUS, + pub FileIdentity: *const ::core::ffi::c_void, + pub FileIdentityLength: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::marker::Copy for CF_OPERATION_PARAMETERS_0_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::clone::Clone for CF_OPERATION_PARAMETERS_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +pub struct CF_OPERATION_PARAMETERS_0_2 { + pub Flags: CF_OPERATION_ACK_DELETE_FLAGS, + pub CompletionStatus: super::super::Foundation::NTSTATUS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::marker::Copy for CF_OPERATION_PARAMETERS_0_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::clone::Clone for CF_OPERATION_PARAMETERS_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +pub struct CF_OPERATION_PARAMETERS_0_3 { + pub Flags: CF_OPERATION_ACK_RENAME_FLAGS, + pub CompletionStatus: super::super::Foundation::NTSTATUS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::marker::Copy for CF_OPERATION_PARAMETERS_0_3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::clone::Clone for CF_OPERATION_PARAMETERS_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +pub struct CF_OPERATION_PARAMETERS_0_4 { + pub Flags: CF_OPERATION_RESTART_HYDRATION_FLAGS, + pub FsMetadata: *const CF_FS_METADATA, + pub FileIdentity: *const ::core::ffi::c_void, + pub FileIdentityLength: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::marker::Copy for CF_OPERATION_PARAMETERS_0_4 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::clone::Clone for CF_OPERATION_PARAMETERS_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +pub struct CF_OPERATION_PARAMETERS_0_5 { + pub Flags: CF_OPERATION_RETRIEVE_DATA_FLAGS, + pub Buffer: *mut ::core::ffi::c_void, + pub Offset: i64, + pub Length: i64, + pub ReturnedLength: i64, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::marker::Copy for CF_OPERATION_PARAMETERS_0_5 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::clone::Clone for CF_OPERATION_PARAMETERS_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +pub struct CF_OPERATION_PARAMETERS_0_6 { + pub Flags: CF_OPERATION_TRANSFER_DATA_FLAGS, + pub CompletionStatus: super::super::Foundation::NTSTATUS, + pub Buffer: *const ::core::ffi::c_void, + pub Offset: i64, + pub Length: i64, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::marker::Copy for CF_OPERATION_PARAMETERS_0_6 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::clone::Clone for CF_OPERATION_PARAMETERS_0_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +pub struct CF_OPERATION_PARAMETERS_0_7 { + pub Flags: CF_OPERATION_TRANSFER_PLACEHOLDERS_FLAGS, + pub CompletionStatus: super::super::Foundation::NTSTATUS, + pub PlaceholderTotalCount: i64, + pub PlaceholderArray: *mut CF_PLACEHOLDER_CREATE_INFO, + pub PlaceholderCount: u32, + pub EntriesProcessed: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::marker::Copy for CF_OPERATION_PARAMETERS_0_7 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::clone::Clone for CF_OPERATION_PARAMETERS_0_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_PLACEHOLDER_BASIC_INFO { + pub PinState: CF_PIN_STATE, + pub InSyncState: CF_IN_SYNC_STATE, + pub FileId: i64, + pub SyncRootFileId: i64, + pub FileIdentityLength: u32, + pub FileIdentity: [u8; 1], +} +impl ::core::marker::Copy for CF_PLACEHOLDER_BASIC_INFO {} +impl ::core::clone::Clone for CF_PLACEHOLDER_BASIC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct CF_PLACEHOLDER_CREATE_INFO { + pub RelativeFileName: ::windows_sys::core::PCWSTR, + pub FsMetadata: CF_FS_METADATA, + pub FileIdentity: *const ::core::ffi::c_void, + pub FileIdentityLength: u32, + pub Flags: CF_PLACEHOLDER_CREATE_FLAGS, + pub Result: ::windows_sys::core::HRESULT, + pub CreateUsn: i64, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for CF_PLACEHOLDER_CREATE_INFO {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for CF_PLACEHOLDER_CREATE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_PLACEHOLDER_STANDARD_INFO { + pub OnDiskDataSize: i64, + pub ValidatedDataSize: i64, + pub ModifiedDataSize: i64, + pub PropertiesSize: i64, + pub PinState: CF_PIN_STATE, + pub InSyncState: CF_IN_SYNC_STATE, + pub FileId: i64, + pub SyncRootFileId: i64, + pub FileIdentityLength: u32, + pub FileIdentity: [u8; 1], +} +impl ::core::marker::Copy for CF_PLACEHOLDER_STANDARD_INFO {} +impl ::core::clone::Clone for CF_PLACEHOLDER_STANDARD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_PLATFORM_INFO { + pub BuildNumber: u32, + pub RevisionNumber: u32, + pub IntegrationNumber: u32, +} +impl ::core::marker::Copy for CF_PLATFORM_INFO {} +impl ::core::clone::Clone for CF_PLATFORM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_POPULATION_POLICY { + pub Primary: CF_POPULATION_POLICY_PRIMARY, + pub Modifier: CF_POPULATION_POLICY_MODIFIER, +} +impl ::core::marker::Copy for CF_POPULATION_POLICY {} +impl ::core::clone::Clone for CF_POPULATION_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_PROCESS_INFO { + pub StructSize: u32, + pub ProcessId: u32, + pub ImagePath: ::windows_sys::core::PCWSTR, + pub PackageName: ::windows_sys::core::PCWSTR, + pub ApplicationId: ::windows_sys::core::PCWSTR, + pub CommandLine: ::windows_sys::core::PCWSTR, + pub SessionId: u32, +} +impl ::core::marker::Copy for CF_PROCESS_INFO {} +impl ::core::clone::Clone for CF_PROCESS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_SYNC_POLICIES { + pub StructSize: u32, + pub Hydration: CF_HYDRATION_POLICY, + pub Population: CF_POPULATION_POLICY, + pub InSync: CF_INSYNC_POLICY, + pub HardLink: CF_HARDLINK_POLICY, + pub PlaceholderManagement: CF_PLACEHOLDER_MANAGEMENT_POLICY, +} +impl ::core::marker::Copy for CF_SYNC_POLICIES {} +impl ::core::clone::Clone for CF_SYNC_POLICIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_SYNC_REGISTRATION { + pub StructSize: u32, + pub ProviderName: ::windows_sys::core::PCWSTR, + pub ProviderVersion: ::windows_sys::core::PCWSTR, + pub SyncRootIdentity: *const ::core::ffi::c_void, + pub SyncRootIdentityLength: u32, + pub FileIdentity: *const ::core::ffi::c_void, + pub FileIdentityLength: u32, + pub ProviderId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for CF_SYNC_REGISTRATION {} +impl ::core::clone::Clone for CF_SYNC_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_SYNC_ROOT_BASIC_INFO { + pub SyncRootFileId: i64, +} +impl ::core::marker::Copy for CF_SYNC_ROOT_BASIC_INFO {} +impl ::core::clone::Clone for CF_SYNC_ROOT_BASIC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_SYNC_ROOT_PROVIDER_INFO { + pub ProviderStatus: CF_SYNC_PROVIDER_STATUS, + pub ProviderName: [u16; 256], + pub ProviderVersion: [u16; 256], +} +impl ::core::marker::Copy for CF_SYNC_ROOT_PROVIDER_INFO {} +impl ::core::clone::Clone for CF_SYNC_ROOT_PROVIDER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_SYNC_ROOT_STANDARD_INFO { + pub SyncRootFileId: i64, + pub HydrationPolicy: CF_HYDRATION_POLICY, + pub PopulationPolicy: CF_POPULATION_POLICY, + pub InSyncPolicy: CF_INSYNC_POLICY, + pub HardLinkPolicy: CF_HARDLINK_POLICY, + pub ProviderStatus: CF_SYNC_PROVIDER_STATUS, + pub ProviderName: [u16; 256], + pub ProviderVersion: [u16; 256], + pub SyncRootIdentityLength: u32, + pub SyncRootIdentity: [u8; 1], +} +impl ::core::marker::Copy for CF_SYNC_ROOT_STANDARD_INFO {} +impl ::core::clone::Clone for CF_SYNC_ROOT_STANDARD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CF_SYNC_STATUS { + pub StructSize: u32, + pub Code: u32, + pub DescriptionOffset: u32, + pub DescriptionLength: u32, + pub DeviceIdOffset: u32, + pub DeviceIdLength: u32, +} +impl ::core::marker::Copy for CF_SYNC_STATUS {} +impl ::core::clone::Clone for CF_SYNC_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_System_CorrelationVector\"`"] +#[cfg(feature = "Win32_System_CorrelationVector")] +pub type CF_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Compression/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Compression/mod.rs new file mode 100644 index 000000000..14298cb31 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Compression/mod.rs @@ -0,0 +1,52 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseCompressor(compressorhandle : COMPRESSOR_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseDecompressor(decompressorhandle : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Compress(compressorhandle : COMPRESSOR_HANDLE, uncompresseddata : *const ::core::ffi::c_void, uncompresseddatasize : usize, compressedbuffer : *mut ::core::ffi::c_void, compressedbuffersize : usize, compresseddatasize : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateCompressor(algorithm : COMPRESS_ALGORITHM, allocationroutines : *const COMPRESS_ALLOCATION_ROUTINES, compressorhandle : *mut COMPRESSOR_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateDecompressor(algorithm : COMPRESS_ALGORITHM, allocationroutines : *const COMPRESS_ALLOCATION_ROUTINES, decompressorhandle : *mut isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Decompress(decompressorhandle : isize, compresseddata : *const ::core::ffi::c_void, compresseddatasize : usize, uncompressedbuffer : *mut ::core::ffi::c_void, uncompressedbuffersize : usize, uncompresseddatasize : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryCompressorInformation(compressorhandle : COMPRESSOR_HANDLE, compressinformationclass : COMPRESS_INFORMATION_CLASS, compressinformation : *mut ::core::ffi::c_void, compressinformationsize : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryDecompressorInformation(decompressorhandle : isize, compressinformationclass : COMPRESS_INFORMATION_CLASS, compressinformation : *mut ::core::ffi::c_void, compressinformationsize : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResetCompressor(compressorhandle : COMPRESSOR_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResetDecompressor(decompressorhandle : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCompressorInformation(compressorhandle : COMPRESSOR_HANDLE, compressinformationclass : COMPRESS_INFORMATION_CLASS, compressinformation : *const ::core::ffi::c_void, compressinformationsize : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cabinet.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDecompressorInformation(decompressorhandle : isize, compressinformationclass : COMPRESS_INFORMATION_CLASS, compressinformation : *const ::core::ffi::c_void, compressinformationsize : usize) -> super::super::Foundation:: BOOL); +pub const COMPRESS_ALGORITHM_INVALID: u32 = 0u32; +pub const COMPRESS_ALGORITHM_LZMS: COMPRESS_ALGORITHM = 5u32; +pub const COMPRESS_ALGORITHM_MAX: u32 = 6u32; +pub const COMPRESS_ALGORITHM_MSZIP: COMPRESS_ALGORITHM = 2u32; +pub const COMPRESS_ALGORITHM_NULL: u32 = 1u32; +pub const COMPRESS_ALGORITHM_XPRESS: COMPRESS_ALGORITHM = 3u32; +pub const COMPRESS_ALGORITHM_XPRESS_HUFF: COMPRESS_ALGORITHM = 4u32; +pub const COMPRESS_INFORMATION_CLASS_BLOCK_SIZE: COMPRESS_INFORMATION_CLASS = 1i32; +pub const COMPRESS_INFORMATION_CLASS_INVALID: COMPRESS_INFORMATION_CLASS = 0i32; +pub const COMPRESS_INFORMATION_CLASS_LEVEL: COMPRESS_INFORMATION_CLASS = 2i32; +pub const COMPRESS_RAW: u32 = 536870912u32; +pub type COMPRESS_ALGORITHM = u32; +pub type COMPRESS_INFORMATION_CLASS = i32; +pub type COMPRESSOR_HANDLE = isize; +#[repr(C)] +pub struct COMPRESS_ALLOCATION_ROUTINES { + pub Allocate: PFN_COMPRESS_ALLOCATE, + pub Free: PFN_COMPRESS_FREE, + pub UserContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for COMPRESS_ALLOCATION_ROUTINES {} +impl ::core::clone::Clone for COMPRESS_ALLOCATION_ROUTINES { + fn clone(&self) -> Self { + *self + } +} +pub type PFN_COMPRESS_ALLOCATE = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PFN_COMPRESS_FREE = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/DistributedFileSystem/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/DistributedFileSystem/mod.rs new file mode 100644 index 000000000..4be6ad247 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/DistributedFileSystem/mod.rs @@ -0,0 +1,529 @@ +::windows_targets::link!("netapi32.dll" "system" fn NetDfsAdd(dfsentrypath : ::windows_sys::core::PCWSTR, servername : ::windows_sys::core::PCWSTR, sharename : ::windows_sys::core::PCWSTR, comment : ::windows_sys::core::PCWSTR, flags : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsAddFtRoot(servername : ::windows_sys::core::PCWSTR, rootshare : ::windows_sys::core::PCWSTR, ftdfsname : ::windows_sys::core::PCWSTR, comment : ::windows_sys::core::PCWSTR, flags : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsAddRootTarget(pdfspath : ::windows_sys::core::PCWSTR, ptargetpath : ::windows_sys::core::PCWSTR, majorversion : u32, pcomment : ::windows_sys::core::PCWSTR, flags : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsAddStdRoot(servername : ::windows_sys::core::PCWSTR, rootshare : ::windows_sys::core::PCWSTR, comment : ::windows_sys::core::PCWSTR, flags : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsEnum(dfsname : ::windows_sys::core::PCWSTR, level : u32, prefmaxlen : u32, buffer : *mut *mut u8, entriesread : *mut u32, resumehandle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsGetClientInfo(dfsentrypath : ::windows_sys::core::PCWSTR, servername : ::windows_sys::core::PCWSTR, sharename : ::windows_sys::core::PCWSTR, level : u32, buffer : *mut *mut u8) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn NetDfsGetFtContainerSecurity(domainname : ::windows_sys::core::PCWSTR, securityinformation : u32, ppsecuritydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR, lpcbsecuritydescriptor : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsGetInfo(dfsentrypath : ::windows_sys::core::PCWSTR, servername : ::windows_sys::core::PCWSTR, sharename : ::windows_sys::core::PCWSTR, level : u32, buffer : *mut *mut u8) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn NetDfsGetSecurity(dfsentrypath : ::windows_sys::core::PCWSTR, securityinformation : u32, ppsecuritydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR, lpcbsecuritydescriptor : *mut u32) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn NetDfsGetStdContainerSecurity(machinename : ::windows_sys::core::PCWSTR, securityinformation : u32, ppsecuritydescriptor : *mut super::super::Security:: PSECURITY_DESCRIPTOR, lpcbsecuritydescriptor : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsGetSupportedNamespaceVersion(origin : DFS_NAMESPACE_VERSION_ORIGIN, pname : ::windows_sys::core::PCWSTR, ppversioninfo : *mut *mut DFS_SUPPORTED_NAMESPACE_VERSION_INFO) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsMove(olddfsentrypath : ::windows_sys::core::PCWSTR, newdfsentrypath : ::windows_sys::core::PCWSTR, flags : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsRemove(dfsentrypath : ::windows_sys::core::PCWSTR, servername : ::windows_sys::core::PCWSTR, sharename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsRemoveFtRoot(servername : ::windows_sys::core::PCWSTR, rootshare : ::windows_sys::core::PCWSTR, ftdfsname : ::windows_sys::core::PCWSTR, flags : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsRemoveFtRootForced(domainname : ::windows_sys::core::PCWSTR, servername : ::windows_sys::core::PCWSTR, rootshare : ::windows_sys::core::PCWSTR, ftdfsname : ::windows_sys::core::PCWSTR, flags : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsRemoveRootTarget(pdfspath : ::windows_sys::core::PCWSTR, ptargetpath : ::windows_sys::core::PCWSTR, flags : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsRemoveStdRoot(servername : ::windows_sys::core::PCWSTR, rootshare : ::windows_sys::core::PCWSTR, flags : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsSetClientInfo(dfsentrypath : ::windows_sys::core::PCWSTR, servername : ::windows_sys::core::PCWSTR, sharename : ::windows_sys::core::PCWSTR, level : u32, buffer : *const u8) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn NetDfsSetFtContainerSecurity(domainname : ::windows_sys::core::PCWSTR, securityinformation : u32, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetDfsSetInfo(dfsentrypath : ::windows_sys::core::PCWSTR, servername : ::windows_sys::core::PCWSTR, sharename : ::windows_sys::core::PCWSTR, level : u32, buffer : *const u8) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn NetDfsSetSecurity(dfsentrypath : ::windows_sys::core::PCWSTR, securityinformation : u32, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn NetDfsSetStdContainerSecurity(machinename : ::windows_sys::core::PCWSTR, securityinformation : u32, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR) -> u32); +pub const DFS_ADD_VOLUME: u32 = 1u32; +pub const DFS_FORCE_REMOVE: u32 = 2147483648u32; +pub const DFS_MOVE_FLAG_REPLACE_IF_EXISTS: u32 = 1u32; +pub const DFS_NAMESPACE_VERSION_ORIGIN_COMBINED: DFS_NAMESPACE_VERSION_ORIGIN = 0i32; +pub const DFS_NAMESPACE_VERSION_ORIGIN_DOMAIN: DFS_NAMESPACE_VERSION_ORIGIN = 2i32; +pub const DFS_NAMESPACE_VERSION_ORIGIN_SERVER: DFS_NAMESPACE_VERSION_ORIGIN = 1i32; +pub const DFS_PROPERTY_FLAG_ABDE: u32 = 32u32; +pub const DFS_PROPERTY_FLAG_CLUSTER_ENABLED: u32 = 16u32; +pub const DFS_PROPERTY_FLAG_INSITE_REFERRALS: u32 = 1u32; +pub const DFS_PROPERTY_FLAG_ROOT_SCALABILITY: u32 = 2u32; +pub const DFS_PROPERTY_FLAG_SITE_COSTING: u32 = 4u32; +pub const DFS_PROPERTY_FLAG_TARGET_FAILBACK: u32 = 8u32; +pub const DFS_RESTORE_VOLUME: u32 = 2u32; +pub const DFS_SITE_PRIMARY: u32 = 1u32; +pub const DFS_STORAGE_FLAVOR_UNUSED2: u32 = 768u32; +pub const DFS_STORAGE_STATES: u32 = 15u32; +pub const DFS_STORAGE_STATE_ACTIVE: u32 = 4u32; +pub const DFS_STORAGE_STATE_OFFLINE: u32 = 1u32; +pub const DFS_STORAGE_STATE_ONLINE: u32 = 2u32; +pub const DFS_VOLUME_FLAVORS: u32 = 768u32; +pub const DFS_VOLUME_FLAVOR_AD_BLOB: u32 = 512u32; +pub const DFS_VOLUME_FLAVOR_STANDALONE: u32 = 256u32; +pub const DFS_VOLUME_FLAVOR_UNUSED1: u32 = 0u32; +pub const DFS_VOLUME_STATES: u32 = 15u32; +pub const DFS_VOLUME_STATE_FORCE_SYNC: u32 = 64u32; +pub const DFS_VOLUME_STATE_INCONSISTENT: u32 = 2u32; +pub const DFS_VOLUME_STATE_OFFLINE: u32 = 3u32; +pub const DFS_VOLUME_STATE_OK: u32 = 1u32; +pub const DFS_VOLUME_STATE_ONLINE: u32 = 4u32; +pub const DFS_VOLUME_STATE_RESYNCHRONIZE: u32 = 16u32; +pub const DFS_VOLUME_STATE_STANDBY: u32 = 32u32; +pub const DfsGlobalHighPriorityClass: DFS_TARGET_PRIORITY_CLASS = 1i32; +pub const DfsGlobalLowPriorityClass: DFS_TARGET_PRIORITY_CLASS = 4i32; +pub const DfsInvalidPriorityClass: DFS_TARGET_PRIORITY_CLASS = -1i32; +pub const DfsSiteCostHighPriorityClass: DFS_TARGET_PRIORITY_CLASS = 2i32; +pub const DfsSiteCostLowPriorityClass: DFS_TARGET_PRIORITY_CLASS = 3i32; +pub const DfsSiteCostNormalPriorityClass: DFS_TARGET_PRIORITY_CLASS = 0i32; +pub const FSCTL_DFS_BASE: u32 = 6u32; +pub const FSCTL_DFS_GET_PKT_ENTRY_STATE: u32 = 401340u32; +pub const NET_DFS_SETDC_FLAGS: u32 = 0u32; +pub const NET_DFS_SETDC_INITPKT: u32 = 2u32; +pub const NET_DFS_SETDC_TIMEOUT: u32 = 1u32; +pub type DFS_NAMESPACE_VERSION_ORIGIN = i32; +pub type DFS_TARGET_PRIORITY_CLASS = i32; +#[repr(C)] +pub struct DFS_GET_PKT_ENTRY_STATE_ARG { + pub DfsEntryPathLen: u16, + pub ServerNameLen: u16, + pub ShareNameLen: u16, + pub Level: u32, + pub Buffer: [u16; 1], +} +impl ::core::marker::Copy for DFS_GET_PKT_ENTRY_STATE_ARG {} +impl ::core::clone::Clone for DFS_GET_PKT_ENTRY_STATE_ARG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_1 { + pub EntryPath: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DFS_INFO_1 {} +impl ::core::clone::Clone for DFS_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_100 { + pub Comment: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DFS_INFO_100 {} +impl ::core::clone::Clone for DFS_INFO_100 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_101 { + pub State: u32, +} +impl ::core::marker::Copy for DFS_INFO_101 {} +impl ::core::clone::Clone for DFS_INFO_101 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_102 { + pub Timeout: u32, +} +impl ::core::marker::Copy for DFS_INFO_102 {} +impl ::core::clone::Clone for DFS_INFO_102 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_103 { + pub PropertyFlagMask: u32, + pub PropertyFlags: u32, +} +impl ::core::marker::Copy for DFS_INFO_103 {} +impl ::core::clone::Clone for DFS_INFO_103 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_104 { + pub TargetPriority: DFS_TARGET_PRIORITY, +} +impl ::core::marker::Copy for DFS_INFO_104 {} +impl ::core::clone::Clone for DFS_INFO_104 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_105 { + pub Comment: ::windows_sys::core::PWSTR, + pub State: u32, + pub Timeout: u32, + pub PropertyFlagMask: u32, + pub PropertyFlags: u32, +} +impl ::core::marker::Copy for DFS_INFO_105 {} +impl ::core::clone::Clone for DFS_INFO_105 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_106 { + pub State: u32, + pub TargetPriority: DFS_TARGET_PRIORITY, +} +impl ::core::marker::Copy for DFS_INFO_106 {} +impl ::core::clone::Clone for DFS_INFO_106 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct DFS_INFO_107 { + pub Comment: ::windows_sys::core::PWSTR, + pub State: u32, + pub Timeout: u32, + pub PropertyFlagMask: u32, + pub PropertyFlags: u32, + pub SdLengthReserved: u32, + pub pSecurityDescriptor: super::super::Security::PSECURITY_DESCRIPTOR, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for DFS_INFO_107 {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for DFS_INFO_107 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct DFS_INFO_150 { + pub SdLengthReserved: u32, + pub pSecurityDescriptor: super::super::Security::PSECURITY_DESCRIPTOR, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for DFS_INFO_150 {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for DFS_INFO_150 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DFS_INFO_1_32 { + pub EntryPath: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DFS_INFO_1_32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DFS_INFO_1_32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_2 { + pub EntryPath: ::windows_sys::core::PWSTR, + pub Comment: ::windows_sys::core::PWSTR, + pub State: u32, + pub NumberOfStorages: u32, +} +impl ::core::marker::Copy for DFS_INFO_2 {} +impl ::core::clone::Clone for DFS_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_200 { + pub FtDfsName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DFS_INFO_200 {} +impl ::core::clone::Clone for DFS_INFO_200 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DFS_INFO_2_32 { + pub EntryPath: u32, + pub Comment: u32, + pub State: u32, + pub NumberOfStorages: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DFS_INFO_2_32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DFS_INFO_2_32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_3 { + pub EntryPath: ::windows_sys::core::PWSTR, + pub Comment: ::windows_sys::core::PWSTR, + pub State: u32, + pub NumberOfStorages: u32, + pub Storage: *mut DFS_STORAGE_INFO, +} +impl ::core::marker::Copy for DFS_INFO_3 {} +impl ::core::clone::Clone for DFS_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_300 { + pub Flags: u32, + pub DfsName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DFS_INFO_300 {} +impl ::core::clone::Clone for DFS_INFO_300 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DFS_INFO_3_32 { + pub EntryPath: u32, + pub Comment: u32, + pub State: u32, + pub NumberOfStorages: u32, + pub Storage: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DFS_INFO_3_32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DFS_INFO_3_32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_4 { + pub EntryPath: ::windows_sys::core::PWSTR, + pub Comment: ::windows_sys::core::PWSTR, + pub State: u32, + pub Timeout: u32, + pub Guid: ::windows_sys::core::GUID, + pub NumberOfStorages: u32, + pub Storage: *mut DFS_STORAGE_INFO, +} +impl ::core::marker::Copy for DFS_INFO_4 {} +impl ::core::clone::Clone for DFS_INFO_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DFS_INFO_4_32 { + pub EntryPath: u32, + pub Comment: u32, + pub State: u32, + pub Timeout: u32, + pub Guid: ::windows_sys::core::GUID, + pub NumberOfStorages: u32, + pub Storage: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DFS_INFO_4_32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DFS_INFO_4_32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_5 { + pub EntryPath: ::windows_sys::core::PWSTR, + pub Comment: ::windows_sys::core::PWSTR, + pub State: u32, + pub Timeout: u32, + pub Guid: ::windows_sys::core::GUID, + pub PropertyFlags: u32, + pub MetadataSize: u32, + pub NumberOfStorages: u32, +} +impl ::core::marker::Copy for DFS_INFO_5 {} +impl ::core::clone::Clone for DFS_INFO_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_50 { + pub NamespaceMajorVersion: u32, + pub NamespaceMinorVersion: u32, + pub NamespaceCapabilities: u64, +} +impl ::core::marker::Copy for DFS_INFO_50 {} +impl ::core::clone::Clone for DFS_INFO_50 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_6 { + pub EntryPath: ::windows_sys::core::PWSTR, + pub Comment: ::windows_sys::core::PWSTR, + pub State: u32, + pub Timeout: u32, + pub Guid: ::windows_sys::core::GUID, + pub PropertyFlags: u32, + pub MetadataSize: u32, + pub NumberOfStorages: u32, + pub Storage: *mut DFS_STORAGE_INFO_1, +} +impl ::core::marker::Copy for DFS_INFO_6 {} +impl ::core::clone::Clone for DFS_INFO_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_INFO_7 { + pub GenerationGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for DFS_INFO_7 {} +impl ::core::clone::Clone for DFS_INFO_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct DFS_INFO_8 { + pub EntryPath: ::windows_sys::core::PWSTR, + pub Comment: ::windows_sys::core::PWSTR, + pub State: u32, + pub Timeout: u32, + pub Guid: ::windows_sys::core::GUID, + pub PropertyFlags: u32, + pub MetadataSize: u32, + pub SdLengthReserved: u32, + pub pSecurityDescriptor: super::super::Security::PSECURITY_DESCRIPTOR, + pub NumberOfStorages: u32, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for DFS_INFO_8 {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for DFS_INFO_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct DFS_INFO_9 { + pub EntryPath: ::windows_sys::core::PWSTR, + pub Comment: ::windows_sys::core::PWSTR, + pub State: u32, + pub Timeout: u32, + pub Guid: ::windows_sys::core::GUID, + pub PropertyFlags: u32, + pub MetadataSize: u32, + pub SdLengthReserved: u32, + pub pSecurityDescriptor: super::super::Security::PSECURITY_DESCRIPTOR, + pub NumberOfStorages: u32, + pub Storage: *mut DFS_STORAGE_INFO_1, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for DFS_INFO_9 {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for DFS_INFO_9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_SITELIST_INFO { + pub cSites: u32, + pub Site: [DFS_SITENAME_INFO; 1], +} +impl ::core::marker::Copy for DFS_SITELIST_INFO {} +impl ::core::clone::Clone for DFS_SITELIST_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_SITENAME_INFO { + pub SiteFlags: u32, + pub SiteName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DFS_SITENAME_INFO {} +impl ::core::clone::Clone for DFS_SITENAME_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_STORAGE_INFO { + pub State: u32, + pub ServerName: ::windows_sys::core::PWSTR, + pub ShareName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for DFS_STORAGE_INFO {} +impl ::core::clone::Clone for DFS_STORAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DFS_STORAGE_INFO_0_32 { + pub State: u32, + pub ServerName: u32, + pub ShareName: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DFS_STORAGE_INFO_0_32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DFS_STORAGE_INFO_0_32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_STORAGE_INFO_1 { + pub State: u32, + pub ServerName: ::windows_sys::core::PWSTR, + pub ShareName: ::windows_sys::core::PWSTR, + pub TargetPriority: DFS_TARGET_PRIORITY, +} +impl ::core::marker::Copy for DFS_STORAGE_INFO_1 {} +impl ::core::clone::Clone for DFS_STORAGE_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_SUPPORTED_NAMESPACE_VERSION_INFO { + pub DomainDfsMajorVersion: u32, + pub DomainDfsMinorVersion: u32, + pub DomainDfsCapabilities: u64, + pub StandaloneDfsMajorVersion: u32, + pub StandaloneDfsMinorVersion: u32, + pub StandaloneDfsCapabilities: u64, +} +impl ::core::marker::Copy for DFS_SUPPORTED_NAMESPACE_VERSION_INFO {} +impl ::core::clone::Clone for DFS_SUPPORTED_NAMESPACE_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DFS_TARGET_PRIORITY { + pub TargetPriorityClass: DFS_TARGET_PRIORITY_CLASS, + pub TargetPriorityRank: u16, + pub Reserved: u16, +} +impl ::core::marker::Copy for DFS_TARGET_PRIORITY {} +impl ::core::clone::Clone for DFS_TARGET_PRIORITY { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/FileHistory/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/FileHistory/mod.rs new file mode 100644 index 000000000..d1a368686 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/FileHistory/mod.rs @@ -0,0 +1,107 @@ +#[cfg(feature = "Win32_System_WindowsProgramming")] +::windows_targets::link!("fhsvcctl.dll" "system" #[doc = "Required features: `\"Win32_System_WindowsProgramming\"`"] fn FhServiceBlockBackup(pipe : super::super::System::WindowsProgramming:: FH_SERVICE_PIPE_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_WindowsProgramming")] +::windows_targets::link!("fhsvcctl.dll" "system" #[doc = "Required features: `\"Win32_System_WindowsProgramming\"`"] fn FhServiceClosePipe(pipe : super::super::System::WindowsProgramming:: FH_SERVICE_PIPE_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fhsvcctl.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] fn FhServiceOpenPipe(startserviceifstopped : super::super::Foundation:: BOOL, pipe : *mut super::super::System::WindowsProgramming:: FH_SERVICE_PIPE_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_WindowsProgramming")] +::windows_targets::link!("fhsvcctl.dll" "system" #[doc = "Required features: `\"Win32_System_WindowsProgramming\"`"] fn FhServiceReloadConfiguration(pipe : super::super::System::WindowsProgramming:: FH_SERVICE_PIPE_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fhsvcctl.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] fn FhServiceStartBackup(pipe : super::super::System::WindowsProgramming:: FH_SERVICE_PIPE_HANDLE, lowpriorityio : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("fhsvcctl.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] fn FhServiceStopBackup(pipe : super::super::System::WindowsProgramming:: FH_SERVICE_PIPE_HANDLE, stoptracking : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_WindowsProgramming")] +::windows_targets::link!("fhsvcctl.dll" "system" #[doc = "Required features: `\"Win32_System_WindowsProgramming\"`"] fn FhServiceUnblockBackup(pipe : super::super::System::WindowsProgramming:: FH_SERVICE_PIPE_HANDLE) -> ::windows_sys::core::HRESULT); +pub type IFhConfigMgr = *mut ::core::ffi::c_void; +pub type IFhReassociation = *mut ::core::ffi::c_void; +pub type IFhScopeIterator = *mut ::core::ffi::c_void; +pub type IFhTarget = *mut ::core::ffi::c_void; +pub const BackupCancelled: FhBackupStopReason = 4i32; +pub const BackupInvalidStopReason: FhBackupStopReason = 0i32; +pub const BackupLimitUserBusyMachineOnAC: FhBackupStopReason = 1i32; +pub const BackupLimitUserBusyMachineOnDC: FhBackupStopReason = 3i32; +pub const BackupLimitUserIdleMachineOnDC: FhBackupStopReason = 2i32; +pub const FHCFG_E_CONFIGURATION_PREVIOUSLY_LOADED: ::windows_sys::core::HRESULT = -2147220731i32; +pub const FHCFG_E_CONFIG_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2147220734i32; +pub const FHCFG_E_CONFIG_FILE_NOT_FOUND: ::windows_sys::core::HRESULT = -2147220735i32; +pub const FHCFG_E_CORRUPT_CONFIG_FILE: ::windows_sys::core::HRESULT = -2147220736i32; +pub const FHCFG_E_INVALID_REHYDRATION_STATE: ::windows_sys::core::HRESULT = -2147220726i32; +pub const FHCFG_E_LEGACY_BACKUP_NOT_FOUND: ::windows_sys::core::HRESULT = -2147220715i32; +pub const FHCFG_E_LEGACY_BACKUP_USER_EXCLUDED: ::windows_sys::core::HRESULT = -2147220716i32; +pub const FHCFG_E_LEGACY_TARGET_UNSUPPORTED: ::windows_sys::core::HRESULT = -2147220718i32; +pub const FHCFG_E_LEGACY_TARGET_VALIDATION_UNSUPPORTED: ::windows_sys::core::HRESULT = -2147220717i32; +pub const FHCFG_E_NO_VALID_CONFIGURATION_LOADED: ::windows_sys::core::HRESULT = -2147220733i32; +pub const FHCFG_E_RECOMMENDATION_CHANGE_NOT_ALLOWED: ::windows_sys::core::HRESULT = -2147220720i32; +pub const FHCFG_E_TARGET_CANNOT_BE_USED: ::windows_sys::core::HRESULT = -2147220727i32; +pub const FHCFG_E_TARGET_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -2147220729i32; +pub const FHCFG_E_TARGET_NOT_CONNECTED: ::windows_sys::core::HRESULT = -2147220732i32; +pub const FHCFG_E_TARGET_NOT_ENOUGH_FREE_SPACE: ::windows_sys::core::HRESULT = -2147220728i32; +pub const FHCFG_E_TARGET_REHYDRATED_ELSEWHERE: ::windows_sys::core::HRESULT = -2147220719i32; +pub const FHCFG_E_TARGET_VERIFICATION_FAILED: ::windows_sys::core::HRESULT = -2147220730i32; +pub const FHSVC_E_BACKUP_BLOCKED: ::windows_sys::core::HRESULT = -2147219968i32; +pub const FHSVC_E_CONFIG_DISABLED: ::windows_sys::core::HRESULT = -2147219966i32; +pub const FHSVC_E_CONFIG_DISABLED_GP: ::windows_sys::core::HRESULT = -2147219965i32; +pub const FHSVC_E_CONFIG_REHYDRATING: ::windows_sys::core::HRESULT = -2147219963i32; +pub const FHSVC_E_FATAL_CONFIG_ERROR: ::windows_sys::core::HRESULT = -2147219964i32; +pub const FHSVC_E_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -2147219967i32; +pub const FH_ACCESS_DENIED: FH_DEVICE_VALIDATION_RESULT = 0i32; +pub const FH_CURRENT_DEFAULT: FH_DEVICE_VALIDATION_RESULT = 3i32; +pub const FH_DRIVE_FIXED: FH_TARGET_DRIVE_TYPES = 3i32; +pub const FH_DRIVE_REMOTE: FH_TARGET_DRIVE_TYPES = 4i32; +pub const FH_DRIVE_REMOVABLE: FH_TARGET_DRIVE_TYPES = 2i32; +pub const FH_DRIVE_UNKNOWN: FH_TARGET_DRIVE_TYPES = 0i32; +pub const FH_FOLDER: FH_PROTECTED_ITEM_CATEGORY = 0i32; +pub const FH_FREQUENCY: FH_LOCAL_POLICY_TYPE = 0i32; +pub const FH_INVALID_DRIVE_TYPE: FH_DEVICE_VALIDATION_RESULT = 1i32; +pub const FH_LIBRARY: FH_PROTECTED_ITEM_CATEGORY = 1i32; +pub const FH_NAMESPACE_EXISTS: FH_DEVICE_VALIDATION_RESULT = 4i32; +pub const FH_READ_ONLY_PERMISSION: FH_DEVICE_VALIDATION_RESULT = 2i32; +pub const FH_RETENTION_AGE: FH_LOCAL_POLICY_TYPE = 2i32; +pub const FH_RETENTION_AGE_BASED: FH_RETENTION_TYPES = 2i32; +pub const FH_RETENTION_DISABLED: FH_RETENTION_TYPES = 0i32; +pub const FH_RETENTION_TYPE: FH_LOCAL_POLICY_TYPE = 1i32; +pub const FH_RETENTION_UNLIMITED: FH_RETENTION_TYPES = 1i32; +pub const FH_STATE_BACKUP_NOT_SUPPORTED: u32 = 2064u32; +pub const FH_STATE_DISABLED_BY_GP: u32 = 2u32; +pub const FH_STATE_FATAL_CONFIG_ERROR: u32 = 3u32; +pub const FH_STATE_MIGRATING: u32 = 4u32; +pub const FH_STATE_NOT_TRACKED: u32 = 0u32; +pub const FH_STATE_NO_ERROR: u32 = 255u32; +pub const FH_STATE_OFF: u32 = 1u32; +pub const FH_STATE_REHYDRATING: u32 = 5u32; +pub const FH_STATE_RUNNING: u32 = 256u32; +pub const FH_STATE_STAGING_FULL: u32 = 18u32; +pub const FH_STATE_TARGET_ABSENT: u32 = 21u32; +pub const FH_STATE_TARGET_ACCESS_DENIED: u32 = 14u32; +pub const FH_STATE_TARGET_FS_LIMITATION: u32 = 13u32; +pub const FH_STATE_TARGET_FULL: u32 = 17u32; +pub const FH_STATE_TARGET_FULL_RETENTION_MAX: u32 = 16u32; +pub const FH_STATE_TARGET_LOW_SPACE: u32 = 20u32; +pub const FH_STATE_TARGET_LOW_SPACE_RETENTION_MAX: u32 = 19u32; +pub const FH_STATE_TARGET_VOLUME_DIRTY: u32 = 15u32; +pub const FH_STATE_TOO_MUCH_BEHIND: u32 = 240u32; +pub const FH_STATUS_DISABLED: FH_BACKUP_STATUS = 0i32; +pub const FH_STATUS_DISABLED_BY_GP: FH_BACKUP_STATUS = 1i32; +pub const FH_STATUS_ENABLED: FH_BACKUP_STATUS = 2i32; +pub const FH_STATUS_REHYDRATING: FH_BACKUP_STATUS = 3i32; +pub const FH_TARGET_DRIVE_TYPE: FH_TARGET_PROPERTY_TYPE = 2i32; +pub const FH_TARGET_NAME: FH_TARGET_PROPERTY_TYPE = 0i32; +pub const FH_TARGET_PART_OF_LIBRARY: FH_DEVICE_VALIDATION_RESULT = 5i32; +pub const FH_TARGET_URL: FH_TARGET_PROPERTY_TYPE = 1i32; +pub const FH_VALID_TARGET: FH_DEVICE_VALIDATION_RESULT = 6i32; +pub const FhConfigMgr: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xed43bb3c_09e9_498a_9df6_2177244c6db4); +pub const FhReassociation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d728e35_16fa_4320_9e8b_bfd7100a8846); +pub const MAX_BACKUP_STATUS: FH_BACKUP_STATUS = 4i32; +pub const MAX_LOCAL_POLICY: FH_LOCAL_POLICY_TYPE = 3i32; +pub const MAX_PROTECTED_ITEM_CATEGORY: FH_PROTECTED_ITEM_CATEGORY = 2i32; +pub const MAX_RETENTION_TYPE: FH_RETENTION_TYPES = 3i32; +pub const MAX_TARGET_PROPERTY: FH_TARGET_PROPERTY_TYPE = 3i32; +pub const MAX_VALIDATION_RESULT: FH_DEVICE_VALIDATION_RESULT = 7i32; +pub type FH_BACKUP_STATUS = i32; +pub type FH_DEVICE_VALIDATION_RESULT = i32; +pub type FH_LOCAL_POLICY_TYPE = i32; +pub type FH_PROTECTED_ITEM_CATEGORY = i32; +pub type FH_RETENTION_TYPES = i32; +pub type FH_TARGET_DRIVE_TYPES = i32; +pub type FH_TARGET_PROPERTY_TYPE = i32; +pub type FhBackupStopReason = i32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/FileSystem/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/FileSystem/mod.rs new file mode 100644 index 000000000..5cb313fe5 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/FileSystem/mod.rs @@ -0,0 +1,5336 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddLogContainer(hlog : super::super::Foundation:: HANDLE, pcbcontainer : *const u64, pwszcontainerpath : ::windows_sys::core::PCWSTR, preserved : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddLogContainerSet(hlog : super::super::Foundation:: HANDLE, ccontainer : u16, pcbcontainer : *const u64, rgwszcontainerpath : *const ::windows_sys::core::PCWSTR, preserved : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn AddUsersToEncryptedFile(lpfilename : ::windows_sys::core::PCWSTR, pencryptioncertificates : *const ENCRYPTION_CERTIFICATE_LIST) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn AdvanceLogBase(pvmarshal : *mut ::core::ffi::c_void, plsnbase : *mut CLS_LSN, fflags : u32, poverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AlignReservedLog(pvmarshal : *mut ::core::ffi::c_void, creservedrecords : u32, rgcbreservation : *mut i64, pcbalignreservation : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllocReservedLog(pvmarshal : *mut ::core::ffi::c_void, creservedrecords : u32, pcbadjustment : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AreFileApisANSI() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AreShortNamesEnabled(handle : super::super::Foundation:: HANDLE, enabled : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BackupRead(hfile : super::super::Foundation:: HANDLE, lpbuffer : *mut u8, nnumberofbytestoread : u32, lpnumberofbytesread : *mut u32, babort : super::super::Foundation:: BOOL, bprocesssecurity : super::super::Foundation:: BOOL, lpcontext : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BackupSeek(hfile : super::super::Foundation:: HANDLE, dwlowbytestoseek : u32, dwhighbytestoseek : u32, lpdwlowbyteseeked : *mut u32, lpdwhighbyteseeked : *mut u32, lpcontext : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BackupWrite(hfile : super::super::Foundation:: HANDLE, lpbuffer : *const u8, nnumberofbytestowrite : u32, lpnumberofbyteswritten : *mut u32, babort : super::super::Foundation:: BOOL, bprocesssecurity : super::super::Foundation:: BOOL, lpcontext : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-ioring-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildIoRingCancelRequest(ioring : HIORING, file : IORING_HANDLE_REF, optocancel : usize, userdata : usize) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildIoRingFlushFile(ioring : HIORING, fileref : IORING_HANDLE_REF, flushmode : FILE_FLUSH_MODE, userdata : usize, sqeflags : IORING_SQE_FLAGS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-ioring-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildIoRingReadFile(ioring : HIORING, fileref : IORING_HANDLE_REF, dataref : IORING_BUFFER_REF, numberofbytestoread : u32, fileoffset : u64, userdata : usize, sqeflags : IORING_SQE_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-ioring-l1-1-0.dll" "system" fn BuildIoRingRegisterBuffers(ioring : HIORING, count : u32, buffers : *const IORING_BUFFER_INFO, userdata : usize) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-ioring-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildIoRingRegisterFileHandles(ioring : HIORING, count : u32, handles : *const super::super::Foundation:: HANDLE, userdata : usize) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BuildIoRingWriteFile(ioring : HIORING, fileref : IORING_HANDLE_REF, bufferref : IORING_BUFFER_REF, numberofbytestowrite : u32, fileoffset : u64, writeflags : FILE_WRITE_FLAGS, userdata : usize, sqeflags : IORING_SQE_FLAGS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckNameLegalDOS8Dot3A(lpname : ::windows_sys::core::PCSTR, lpoemname : ::windows_sys::core::PSTR, oemnamesize : u32, pbnamecontainsspaces : *mut super::super::Foundation:: BOOL, pbnamelegal : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckNameLegalDOS8Dot3W(lpname : ::windows_sys::core::PCWSTR, lpoemname : ::windows_sys::core::PSTR, oemnamesize : u32, pbnamecontainsspaces : *mut super::super::Foundation:: BOOL, pbnamelegal : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseAndResetLogFile(hlog : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn CloseEncryptedFileRaw(pvcontext : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("api-ms-win-core-ioring-l1-1-0.dll" "system" fn CloseIoRing(ioring : HIORING) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CommitComplete(enlistmenthandle : super::super::Foundation:: HANDLE, tmvirtualclock : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CommitEnlistment(enlistmenthandle : super::super::Foundation:: HANDLE, tmvirtualclock : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CommitTransaction(transactionhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CommitTransactionAsync(transactionhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CompareFileTime(lpfiletime1 : *const super::super::Foundation:: FILETIME, lpfiletime2 : *const super::super::Foundation:: FILETIME) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CopyFile2(pwszexistingfilename : ::windows_sys::core::PCWSTR, pwsznewfilename : ::windows_sys::core::PCWSTR, pextendedparameters : *const COPYFILE2_EXTENDED_PARAMETERS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CopyFileA(lpexistingfilename : ::windows_sys::core::PCSTR, lpnewfilename : ::windows_sys::core::PCSTR, bfailifexists : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CopyFileExA(lpexistingfilename : ::windows_sys::core::PCSTR, lpnewfilename : ::windows_sys::core::PCSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const ::core::ffi::c_void, pbcancel : *mut super::super::Foundation:: BOOL, dwcopyflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CopyFileExW(lpexistingfilename : ::windows_sys::core::PCWSTR, lpnewfilename : ::windows_sys::core::PCWSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const ::core::ffi::c_void, pbcancel : *mut super::super::Foundation:: BOOL, dwcopyflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-file-fromapp-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CopyFileFromAppW(lpexistingfilename : ::windows_sys::core::PCWSTR, lpnewfilename : ::windows_sys::core::PCWSTR, bfailifexists : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CopyFileTransactedA(lpexistingfilename : ::windows_sys::core::PCSTR, lpnewfilename : ::windows_sys::core::PCSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const ::core::ffi::c_void, pbcancel : *const super::super::Foundation:: BOOL, dwcopyflags : u32, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CopyFileTransactedW(lpexistingfilename : ::windows_sys::core::PCWSTR, lpnewfilename : ::windows_sys::core::PCWSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const ::core::ffi::c_void, pbcancel : *const super::super::Foundation:: BOOL, dwcopyflags : u32, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CopyFileW(lpexistingfilename : ::windows_sys::core::PCWSTR, lpnewfilename : ::windows_sys::core::PCWSTR, bfailifexists : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn CopyLZFile(hfsource : i32, hfdest : i32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateDirectoryA(lppathname : ::windows_sys::core::PCSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateDirectoryExA(lptemplatedirectory : ::windows_sys::core::PCSTR, lpnewdirectory : ::windows_sys::core::PCSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateDirectoryExW(lptemplatedirectory : ::windows_sys::core::PCWSTR, lpnewdirectory : ::windows_sys::core::PCWSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("api-ms-win-core-file-fromapp-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateDirectoryFromAppW(lppathname : ::windows_sys::core::PCWSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateDirectoryTransactedA(lptemplatedirectory : ::windows_sys::core::PCSTR, lpnewdirectory : ::windows_sys::core::PCSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateDirectoryTransactedW(lptemplatedirectory : ::windows_sys::core::PCWSTR, lpnewdirectory : ::windows_sys::core::PCWSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateDirectoryW(lppathname : ::windows_sys::core::PCWSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateEnlistment(lpenlistmentattributes : *mut super::super::Security:: SECURITY_ATTRIBUTES, resourcemanagerhandle : super::super::Foundation:: HANDLE, transactionhandle : super::super::Foundation:: HANDLE, notificationmask : u32, createoptions : u32, enlistmentkey : *mut ::core::ffi::c_void) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateFile2(lpfilename : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32, dwsharemode : FILE_SHARE_MODE, dwcreationdisposition : FILE_CREATION_DISPOSITION, pcreateexparams : *const CREATEFILE2_EXTENDED_PARAMETERS) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("api-ms-win-core-file-fromapp-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateFile2FromAppW(lpfilename : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32, dwsharemode : u32, dwcreationdisposition : u32, pcreateexparams : *const CREATEFILE2_EXTENDED_PARAMETERS) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateFileA(lpfilename : ::windows_sys::core::PCSTR, dwdesiredaccess : u32, dwsharemode : FILE_SHARE_MODE, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, dwcreationdisposition : FILE_CREATION_DISPOSITION, dwflagsandattributes : FILE_FLAGS_AND_ATTRIBUTES, htemplatefile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("api-ms-win-core-file-fromapp-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateFileFromAppW(lpfilename : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32, dwsharemode : u32, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, dwcreationdisposition : u32, dwflagsandattributes : u32, htemplatefile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateFileTransactedA(lpfilename : ::windows_sys::core::PCSTR, dwdesiredaccess : u32, dwsharemode : FILE_SHARE_MODE, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, dwcreationdisposition : FILE_CREATION_DISPOSITION, dwflagsandattributes : FILE_FLAGS_AND_ATTRIBUTES, htemplatefile : super::super::Foundation:: HANDLE, htransaction : super::super::Foundation:: HANDLE, pusminiversion : *const TXFS_MINIVERSION, lpextendedparameter : *const ::core::ffi::c_void) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateFileTransactedW(lpfilename : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32, dwsharemode : FILE_SHARE_MODE, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, dwcreationdisposition : FILE_CREATION_DISPOSITION, dwflagsandattributes : FILE_FLAGS_AND_ATTRIBUTES, htemplatefile : super::super::Foundation:: HANDLE, htransaction : super::super::Foundation:: HANDLE, pusminiversion : *const TXFS_MINIVERSION, lpextendedparameter : *const ::core::ffi::c_void) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateFileW(lpfilename : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32, dwsharemode : FILE_SHARE_MODE, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, dwcreationdisposition : FILE_CREATION_DISPOSITION, dwflagsandattributes : FILE_FLAGS_AND_ATTRIBUTES, htemplatefile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateHardLinkA(lpfilename : ::windows_sys::core::PCSTR, lpexistingfilename : ::windows_sys::core::PCSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateHardLinkTransactedA(lpfilename : ::windows_sys::core::PCSTR, lpexistingfilename : ::windows_sys::core::PCSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateHardLinkTransactedW(lpfilename : ::windows_sys::core::PCWSTR, lpexistingfilename : ::windows_sys::core::PCWSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateHardLinkW(lpfilename : ::windows_sys::core::PCWSTR, lpexistingfilename : ::windows_sys::core::PCWSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-core-ioring-l1-1-0.dll" "system" fn CreateIoRing(ioringversion : IORING_VERSION, flags : IORING_CREATE_FLAGS, submissionqueuesize : u32, completionqueuesize : u32, h : *mut HIORING) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn CreateLogContainerScanContext(hlog : super::super::Foundation:: HANDLE, cfromcontainer : u32, ccontainers : u32, escanmode : u8, pcxscan : *mut CLS_SCAN_CONTEXT, poverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateLogFile(pszlogfilename : ::windows_sys::core::PCWSTR, fdesiredaccess : u32, dwsharemode : FILE_SHARE_MODE, psalogfile : *mut super::super::Security:: SECURITY_ATTRIBUTES, fcreatedisposition : FILE_CREATION_DISPOSITION, fflagsandattributes : FILE_FLAGS_AND_ATTRIBUTES) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateLogMarshallingArea(hlog : super::super::Foundation:: HANDLE, pfnallocbuffer : CLFS_BLOCK_ALLOCATION, pfnfreebuffer : CLFS_BLOCK_DEALLOCATION, pvblockalloccontext : *mut ::core::ffi::c_void, cbmarshallingbuffer : u32, cmaxwritebuffers : u32, cmaxreadbuffers : u32, ppvmarshal : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateResourceManager(lpresourcemanagerattributes : *mut super::super::Security:: SECURITY_ATTRIBUTES, resourcemanagerid : *mut ::windows_sys::core::GUID, createoptions : u32, tmhandle : super::super::Foundation:: HANDLE, description : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateSymbolicLinkA(lpsymlinkfilename : ::windows_sys::core::PCSTR, lptargetfilename : ::windows_sys::core::PCSTR, dwflags : SYMBOLIC_LINK_FLAGS) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateSymbolicLinkTransactedA(lpsymlinkfilename : ::windows_sys::core::PCSTR, lptargetfilename : ::windows_sys::core::PCSTR, dwflags : SYMBOLIC_LINK_FLAGS, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateSymbolicLinkTransactedW(lpsymlinkfilename : ::windows_sys::core::PCWSTR, lptargetfilename : ::windows_sys::core::PCWSTR, dwflags : SYMBOLIC_LINK_FLAGS, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateSymbolicLinkW(lpsymlinkfilename : ::windows_sys::core::PCWSTR, lptargetfilename : ::windows_sys::core::PCWSTR, dwflags : SYMBOLIC_LINK_FLAGS) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateTapePartition(hdevice : super::super::Foundation:: HANDLE, dwpartitionmethod : CREATE_TAPE_PARTITION_METHOD, dwcount : u32, dwsize : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateTransaction(lptransactionattributes : *mut super::super::Security:: SECURITY_ATTRIBUTES, uow : *mut ::windows_sys::core::GUID, createoptions : u32, isolationlevel : u32, isolationflags : u32, timeout : u32, description : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateTransactionManager(lptransactionattributes : *mut super::super::Security:: SECURITY_ATTRIBUTES, logfilename : ::windows_sys::core::PCWSTR, createoptions : u32, commitstrength : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DecryptFileA(lpfilename : ::windows_sys::core::PCSTR, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DecryptFileW(lpfilename : ::windows_sys::core::PCWSTR, dwreserved : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefineDosDeviceA(dwflags : DEFINE_DOS_DEVICE_FLAGS, lpdevicename : ::windows_sys::core::PCSTR, lptargetpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefineDosDeviceW(dwflags : DEFINE_DOS_DEVICE_FLAGS, lpdevicename : ::windows_sys::core::PCWSTR, lptargetpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteFileA(lpfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-file-fromapp-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteFileFromAppW(lpfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteFileTransactedA(lpfilename : ::windows_sys::core::PCSTR, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteFileTransactedW(lpfilename : ::windows_sys::core::PCWSTR, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteFileW(lpfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteLogByHandle(hlog : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteLogFile(pszlogfilename : ::windows_sys::core::PCWSTR, pvreserved : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteLogMarshallingArea(pvmarshal : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteVolumeMountPointA(lpszvolumemountpoint : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteVolumeMountPointW(lpszvolumemountpoint : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeregisterManageableLogClient(hlog : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn DuplicateEncryptionInfoFile(srcfilename : ::windows_sys::core::PCWSTR, dstfilename : ::windows_sys::core::PCWSTR, dwcreationdistribution : u32, dwattributes : u32, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EncryptFileA(lpfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EncryptFileW(lpfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EncryptionDisable(dirpath : ::windows_sys::core::PCWSTR, disable : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EraseTape(hdevice : super::super::Foundation:: HANDLE, dwerasetype : ERASE_TAPE_TYPE, bimmediate : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FileEncryptionStatusA(lpfilename : ::windows_sys::core::PCSTR, lpstatus : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FileEncryptionStatusW(lpfilename : ::windows_sys::core::PCWSTR, lpstatus : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FileTimeToLocalFileTime(lpfiletime : *const super::super::Foundation:: FILETIME, lplocalfiletime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindClose(hfindfile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindCloseChangeNotification(hchangehandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstChangeNotificationA(lppathname : ::windows_sys::core::PCSTR, bwatchsubtree : super::super::Foundation:: BOOL, dwnotifyfilter : FILE_NOTIFY_CHANGE) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstChangeNotificationW(lppathname : ::windows_sys::core::PCWSTR, bwatchsubtree : super::super::Foundation:: BOOL, dwnotifyfilter : FILE_NOTIFY_CHANGE) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstFileA(lpfilename : ::windows_sys::core::PCSTR, lpfindfiledata : *mut WIN32_FIND_DATAA) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstFileExA(lpfilename : ::windows_sys::core::PCSTR, finfolevelid : FINDEX_INFO_LEVELS, lpfindfiledata : *mut ::core::ffi::c_void, fsearchop : FINDEX_SEARCH_OPS, lpsearchfilter : *const ::core::ffi::c_void, dwadditionalflags : FIND_FIRST_EX_FLAGS) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-file-fromapp-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstFileExFromAppW(lpfilename : ::windows_sys::core::PCWSTR, finfolevelid : FINDEX_INFO_LEVELS, lpfindfiledata : *mut ::core::ffi::c_void, fsearchop : FINDEX_SEARCH_OPS, lpsearchfilter : *const ::core::ffi::c_void, dwadditionalflags : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstFileExW(lpfilename : ::windows_sys::core::PCWSTR, finfolevelid : FINDEX_INFO_LEVELS, lpfindfiledata : *mut ::core::ffi::c_void, fsearchop : FINDEX_SEARCH_OPS, lpsearchfilter : *const ::core::ffi::c_void, dwadditionalflags : FIND_FIRST_EX_FLAGS) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstFileNameTransactedW(lpfilename : ::windows_sys::core::PCWSTR, dwflags : u32, stringlength : *mut u32, linkname : ::windows_sys::core::PWSTR, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstFileNameW(lpfilename : ::windows_sys::core::PCWSTR, dwflags : u32, stringlength : *mut u32, linkname : ::windows_sys::core::PWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstFileTransactedA(lpfilename : ::windows_sys::core::PCSTR, finfolevelid : FINDEX_INFO_LEVELS, lpfindfiledata : *mut ::core::ffi::c_void, fsearchop : FINDEX_SEARCH_OPS, lpsearchfilter : *const ::core::ffi::c_void, dwadditionalflags : u32, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstFileTransactedW(lpfilename : ::windows_sys::core::PCWSTR, finfolevelid : FINDEX_INFO_LEVELS, lpfindfiledata : *mut ::core::ffi::c_void, fsearchop : FINDEX_SEARCH_OPS, lpsearchfilter : *const ::core::ffi::c_void, dwadditionalflags : u32, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstFileW(lpfilename : ::windows_sys::core::PCWSTR, lpfindfiledata : *mut WIN32_FIND_DATAW) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstStreamTransactedW(lpfilename : ::windows_sys::core::PCWSTR, infolevel : STREAM_INFO_LEVELS, lpfindstreamdata : *mut ::core::ffi::c_void, dwflags : u32, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstStreamW(lpfilename : ::windows_sys::core::PCWSTR, infolevel : STREAM_INFO_LEVELS, lpfindstreamdata : *mut ::core::ffi::c_void, dwflags : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstVolumeA(lpszvolumename : ::windows_sys::core::PSTR, cchbufferlength : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstVolumeMountPointA(lpszrootpathname : ::windows_sys::core::PCSTR, lpszvolumemountpoint : ::windows_sys::core::PSTR, cchbufferlength : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstVolumeMountPointW(lpszrootpathname : ::windows_sys::core::PCWSTR, lpszvolumemountpoint : ::windows_sys::core::PWSTR, cchbufferlength : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFirstVolumeW(lpszvolumename : ::windows_sys::core::PWSTR, cchbufferlength : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextChangeNotification(hchangehandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextFileA(hfindfile : super::super::Foundation:: HANDLE, lpfindfiledata : *mut WIN32_FIND_DATAA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextFileNameW(hfindstream : super::super::Foundation:: HANDLE, stringlength : *mut u32, linkname : ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextFileW(hfindfile : super::super::Foundation:: HANDLE, lpfindfiledata : *mut WIN32_FIND_DATAW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextStreamW(hfindstream : super::super::Foundation:: HANDLE, lpfindstreamdata : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextVolumeA(hfindvolume : super::super::Foundation:: HANDLE, lpszvolumename : ::windows_sys::core::PSTR, cchbufferlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextVolumeMountPointA(hfindvolumemountpoint : super::super::Foundation:: HANDLE, lpszvolumemountpoint : ::windows_sys::core::PSTR, cchbufferlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextVolumeMountPointW(hfindvolumemountpoint : super::super::Foundation:: HANDLE, lpszvolumemountpoint : ::windows_sys::core::PWSTR, cchbufferlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindNextVolumeW(hfindvolume : super::super::Foundation:: HANDLE, lpszvolumename : ::windows_sys::core::PWSTR, cchbufferlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindVolumeClose(hfindvolume : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindVolumeMountPointClose(hfindvolumemountpoint : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlushFileBuffers(hfile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn FlushLogBuffers(pvmarshal : *const ::core::ffi::c_void, poverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn FlushLogToLsn(pvmarshalcontext : *mut ::core::ffi::c_void, plsnflush : *mut CLS_LSN, plsnlastflushed : *mut CLS_LSN, poverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn FreeEncryptedFileMetadata(pbmetadata : *const u8) -> ()); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn FreeEncryptionCertificateHashList(pusers : *const ENCRYPTION_CERTIFICATE_HASH_LIST) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeReservedLog(pvmarshal : *mut ::core::ffi::c_void, creservedrecords : u32, pcbadjustment : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetBinaryTypeA(lpapplicationname : ::windows_sys::core::PCSTR, lpbinarytype : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetBinaryTypeW(lpapplicationname : ::windows_sys::core::PCWSTR, lpbinarytype : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetCompressedFileSizeA(lpfilename : ::windows_sys::core::PCSTR, lpfilesizehigh : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCompressedFileSizeTransactedA(lpfilename : ::windows_sys::core::PCSTR, lpfilesizehigh : *mut u32, htransaction : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCompressedFileSizeTransactedW(lpfilename : ::windows_sys::core::PCWSTR, lpfilesizehigh : *mut u32, htransaction : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetCompressedFileSizeW(lpfilename : ::windows_sys::core::PCWSTR, lpfilesizehigh : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentClockTransactionManager(transactionmanagerhandle : super::super::Foundation:: HANDLE, tmvirtualclock : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDiskFreeSpaceA(lprootpathname : ::windows_sys::core::PCSTR, lpsectorspercluster : *mut u32, lpbytespersector : *mut u32, lpnumberoffreeclusters : *mut u32, lptotalnumberofclusters : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDiskFreeSpaceExA(lpdirectoryname : ::windows_sys::core::PCSTR, lpfreebytesavailabletocaller : *mut u64, lptotalnumberofbytes : *mut u64, lptotalnumberoffreebytes : *mut u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDiskFreeSpaceExW(lpdirectoryname : ::windows_sys::core::PCWSTR, lpfreebytesavailabletocaller : *mut u64, lptotalnumberofbytes : *mut u64, lptotalnumberoffreebytes : *mut u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDiskFreeSpaceW(lprootpathname : ::windows_sys::core::PCWSTR, lpsectorspercluster : *mut u32, lpbytespersector : *mut u32, lpnumberoffreeclusters : *mut u32, lptotalnumberofclusters : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetDiskSpaceInformationA(rootpath : ::windows_sys::core::PCSTR, diskspaceinfo : *mut DISK_SPACE_INFORMATION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn GetDiskSpaceInformationW(rootpath : ::windows_sys::core::PCWSTR, diskspaceinfo : *mut DISK_SPACE_INFORMATION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn GetDriveTypeA(lprootpathname : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetDriveTypeW(lprootpathname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn GetEncryptedFileMetadata(lpfilename : ::windows_sys::core::PCWSTR, pcbmetadata : *mut u32, ppbmetadata : *mut *mut u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetEnlistmentId(enlistmenthandle : super::super::Foundation:: HANDLE, enlistmentid : *mut ::windows_sys::core::GUID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetEnlistmentRecoveryInformation(enlistmenthandle : super::super::Foundation:: HANDLE, buffersize : u32, buffer : *mut ::core::ffi::c_void, bufferused : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetExpandedNameA(lpszsource : ::windows_sys::core::PCSTR, lpszbuffer : ::windows_sys::core::PSTR) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetExpandedNameW(lpszsource : ::windows_sys::core::PCWSTR, lpszbuffer : ::windows_sys::core::PWSTR) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetFileAttributesA(lpfilename : ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileAttributesExA(lpfilename : ::windows_sys::core::PCSTR, finfolevelid : GET_FILEEX_INFO_LEVELS, lpfileinformation : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-file-fromapp-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileAttributesExFromAppW(lpfilename : ::windows_sys::core::PCWSTR, finfolevelid : GET_FILEEX_INFO_LEVELS, lpfileinformation : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileAttributesExW(lpfilename : ::windows_sys::core::PCWSTR, finfolevelid : GET_FILEEX_INFO_LEVELS, lpfileinformation : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileAttributesTransactedA(lpfilename : ::windows_sys::core::PCSTR, finfolevelid : GET_FILEEX_INFO_LEVELS, lpfileinformation : *mut ::core::ffi::c_void, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileAttributesTransactedW(lpfilename : ::windows_sys::core::PCWSTR, finfolevelid : GET_FILEEX_INFO_LEVELS, lpfileinformation : *mut ::core::ffi::c_void, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetFileAttributesW(lpfilename : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileBandwidthReservation(hfile : super::super::Foundation:: HANDLE, lpperiodmilliseconds : *mut u32, lpbytesperperiod : *mut u32, pdiscardable : *mut super::super::Foundation:: BOOL, lptransfersize : *mut u32, lpnumoutstandingrequests : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileInformationByHandle(hfile : super::super::Foundation:: HANDLE, lpfileinformation : *mut BY_HANDLE_FILE_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileInformationByHandleEx(hfile : super::super::Foundation:: HANDLE, fileinformationclass : FILE_INFO_BY_HANDLE_CLASS, lpfileinformation : *mut ::core::ffi::c_void, dwbuffersize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileSize(hfile : super::super::Foundation:: HANDLE, lpfilesizehigh : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileSizeEx(hfile : super::super::Foundation:: HANDLE, lpfilesize : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileTime(hfile : super::super::Foundation:: HANDLE, lpcreationtime : *mut super::super::Foundation:: FILETIME, lplastaccesstime : *mut super::super::Foundation:: FILETIME, lplastwritetime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileType(hfile : super::super::Foundation:: HANDLE) -> FILE_TYPE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("version.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileVersionInfoA(lptstrfilename : ::windows_sys::core::PCSTR, dwhandle : u32, dwlen : u32, lpdata : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("version.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileVersionInfoExA(dwflags : GET_FILE_VERSION_INFO_FLAGS, lpwstrfilename : ::windows_sys::core::PCSTR, dwhandle : u32, dwlen : u32, lpdata : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("version.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileVersionInfoExW(dwflags : GET_FILE_VERSION_INFO_FLAGS, lpwstrfilename : ::windows_sys::core::PCWSTR, dwhandle : u32, dwlen : u32, lpdata : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("version.dll" "system" fn GetFileVersionInfoSizeA(lptstrfilename : ::windows_sys::core::PCSTR, lpdwhandle : *mut u32) -> u32); +::windows_targets::link!("version.dll" "system" fn GetFileVersionInfoSizeExA(dwflags : GET_FILE_VERSION_INFO_FLAGS, lpwstrfilename : ::windows_sys::core::PCSTR, lpdwhandle : *mut u32) -> u32); +::windows_targets::link!("version.dll" "system" fn GetFileVersionInfoSizeExW(dwflags : GET_FILE_VERSION_INFO_FLAGS, lpwstrfilename : ::windows_sys::core::PCWSTR, lpdwhandle : *mut u32) -> u32); +::windows_targets::link!("version.dll" "system" fn GetFileVersionInfoSizeW(lptstrfilename : ::windows_sys::core::PCWSTR, lpdwhandle : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("version.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileVersionInfoW(lptstrfilename : ::windows_sys::core::PCWSTR, dwhandle : u32, dwlen : u32, lpdata : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFinalPathNameByHandleA(hfile : super::super::Foundation:: HANDLE, lpszfilepath : ::windows_sys::core::PSTR, cchfilepath : u32, dwflags : GETFINALPATHNAMEBYHANDLE_FLAGS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFinalPathNameByHandleW(hfile : super::super::Foundation:: HANDLE, lpszfilepath : ::windows_sys::core::PWSTR, cchfilepath : u32, dwflags : GETFINALPATHNAMEBYHANDLE_FLAGS) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetFullPathNameA(lpfilename : ::windows_sys::core::PCSTR, nbufferlength : u32, lpbuffer : ::windows_sys::core::PSTR, lpfilepart : *mut ::windows_sys::core::PSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFullPathNameTransactedA(lpfilename : ::windows_sys::core::PCSTR, nbufferlength : u32, lpbuffer : ::windows_sys::core::PSTR, lpfilepart : *mut ::windows_sys::core::PSTR, htransaction : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFullPathNameTransactedW(lpfilename : ::windows_sys::core::PCWSTR, nbufferlength : u32, lpbuffer : ::windows_sys::core::PWSTR, lpfilepart : *mut ::windows_sys::core::PWSTR, htransaction : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetFullPathNameW(lpfilename : ::windows_sys::core::PCWSTR, nbufferlength : u32, lpbuffer : ::windows_sys::core::PWSTR, lpfilepart : *mut ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("api-ms-win-core-ioring-l1-1-0.dll" "system" fn GetIoRingInfo(ioring : HIORING, info : *mut IORING_INFO) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLogContainerName(hlog : super::super::Foundation:: HANDLE, cidlogicalcontainer : u32, pwstrcontainername : ::windows_sys::core::PCWSTR, clencontainername : u32, pcactuallencontainername : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLogFileInformation(hlog : super::super::Foundation:: HANDLE, pinfobuffer : *mut CLS_INFORMATION, cbbuffer : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLogIoStatistics(hlog : super::super::Foundation:: HANDLE, pvstatsbuffer : *mut ::core::ffi::c_void, cbstatsbuffer : u32, estatsclass : CLFS_IOSTATS_CLASS, pcbstatswritten : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLogReservationInfo(pvmarshal : *const ::core::ffi::c_void, pcbrecordnumber : *mut u32, pcbuserreservation : *mut i64, pcbcommitreservation : *mut i64) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetLogicalDriveStringsA(nbufferlength : u32, lpbuffer : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetLogicalDriveStringsW(nbufferlength : u32, lpbuffer : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetLogicalDrives() -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetLongPathNameA(lpszshortpath : ::windows_sys::core::PCSTR, lpszlongpath : ::windows_sys::core::PSTR, cchbuffer : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLongPathNameTransactedA(lpszshortpath : ::windows_sys::core::PCSTR, lpszlongpath : ::windows_sys::core::PSTR, cchbuffer : u32, htransaction : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLongPathNameTransactedW(lpszshortpath : ::windows_sys::core::PCWSTR, lpszlongpath : ::windows_sys::core::PWSTR, cchbuffer : u32, htransaction : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetLongPathNameW(lpszshortpath : ::windows_sys::core::PCWSTR, lpszlongpath : ::windows_sys::core::PWSTR, cchbuffer : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNextLogArchiveExtent(pvarchivecontext : *mut ::core::ffi::c_void, rgadextent : *mut CLS_ARCHIVE_DESCRIPTOR, cdescriptors : u32, pcdescriptorsreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNotificationResourceManager(resourcemanagerhandle : super::super::Foundation:: HANDLE, transactionnotification : *mut TRANSACTION_NOTIFICATION, notificationlength : u32, dwmilliseconds : u32, returnlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn GetNotificationResourceManagerAsync(resourcemanagerhandle : super::super::Foundation:: HANDLE, transactionnotification : *mut TRANSACTION_NOTIFICATION, transactionnotificationlength : u32, returnlength : *mut u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetShortPathNameA(lpszlongpath : ::windows_sys::core::PCSTR, lpszshortpath : ::windows_sys::core::PSTR, cchbuffer : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetShortPathNameW(lpszlongpath : ::windows_sys::core::PCWSTR, lpszshortpath : ::windows_sys::core::PWSTR, cchbuffer : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTapeParameters(hdevice : super::super::Foundation:: HANDLE, dwoperation : GET_TAPE_DRIVE_PARAMETERS_OPERATION, lpdwsize : *mut u32, lptapeinformation : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTapePosition(hdevice : super::super::Foundation:: HANDLE, dwpositiontype : TAPE_POSITION_TYPE, lpdwpartition : *mut u32, lpdwoffsetlow : *mut u32, lpdwoffsethigh : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTapeStatus(hdevice : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetTempFileNameA(lppathname : ::windows_sys::core::PCSTR, lpprefixstring : ::windows_sys::core::PCSTR, uunique : u32, lptempfilename : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetTempFileNameW(lppathname : ::windows_sys::core::PCWSTR, lpprefixstring : ::windows_sys::core::PCWSTR, uunique : u32, lptempfilename : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetTempPath2A(bufferlength : u32, buffer : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetTempPath2W(bufferlength : u32, buffer : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetTempPathA(nbufferlength : u32, lpbuffer : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetTempPathW(nbufferlength : u32, lpbuffer : ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTransactionId(transactionhandle : super::super::Foundation:: HANDLE, transactionid : *mut ::windows_sys::core::GUID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTransactionInformation(transactionhandle : super::super::Foundation:: HANDLE, outcome : *mut u32, isolationlevel : *mut u32, isolationflags : *mut u32, timeout : *mut u32, bufferlength : u32, description : ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTransactionManagerId(transactionmanagerhandle : super::super::Foundation:: HANDLE, transactionmanagerid : *mut ::windows_sys::core::GUID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVolumeInformationA(lprootpathname : ::windows_sys::core::PCSTR, lpvolumenamebuffer : ::windows_sys::core::PSTR, nvolumenamesize : u32, lpvolumeserialnumber : *mut u32, lpmaximumcomponentlength : *mut u32, lpfilesystemflags : *mut u32, lpfilesystemnamebuffer : ::windows_sys::core::PSTR, nfilesystemnamesize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVolumeInformationByHandleW(hfile : super::super::Foundation:: HANDLE, lpvolumenamebuffer : ::windows_sys::core::PWSTR, nvolumenamesize : u32, lpvolumeserialnumber : *mut u32, lpmaximumcomponentlength : *mut u32, lpfilesystemflags : *mut u32, lpfilesystemnamebuffer : ::windows_sys::core::PWSTR, nfilesystemnamesize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVolumeInformationW(lprootpathname : ::windows_sys::core::PCWSTR, lpvolumenamebuffer : ::windows_sys::core::PWSTR, nvolumenamesize : u32, lpvolumeserialnumber : *mut u32, lpmaximumcomponentlength : *mut u32, lpfilesystemflags : *mut u32, lpfilesystemnamebuffer : ::windows_sys::core::PWSTR, nfilesystemnamesize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVolumeNameForVolumeMountPointA(lpszvolumemountpoint : ::windows_sys::core::PCSTR, lpszvolumename : ::windows_sys::core::PSTR, cchbufferlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVolumeNameForVolumeMountPointW(lpszvolumemountpoint : ::windows_sys::core::PCWSTR, lpszvolumename : ::windows_sys::core::PWSTR, cchbufferlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVolumePathNameA(lpszfilename : ::windows_sys::core::PCSTR, lpszvolumepathname : ::windows_sys::core::PSTR, cchbufferlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVolumePathNameW(lpszfilename : ::windows_sys::core::PCWSTR, lpszvolumepathname : ::windows_sys::core::PWSTR, cchbufferlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVolumePathNamesForVolumeNameA(lpszvolumename : ::windows_sys::core::PCSTR, lpszvolumepathnames : ::windows_sys::core::PSTR, cchbufferlength : u32, lpcchreturnlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVolumePathNamesForVolumeNameW(lpszvolumename : ::windows_sys::core::PCWSTR, lpszvolumepathnames : ::windows_sys::core::PWSTR, cchbufferlength : u32, lpcchreturnlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HandleLogFull(hlog : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InstallLogPolicy(hlog : super::super::Foundation:: HANDLE, ppolicy : *mut CLFS_MGMT_POLICY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-ioring-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsIoRingOpSupported(ioring : HIORING, op : IORING_OP_CODE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn LZClose(hfile : i32) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn LZCopy(hfsource : i32, hfdest : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn LZDone() -> ()); +::windows_targets::link!("kernel32.dll" "system" fn LZInit(hfsource : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn LZOpenFileA(lpfilename : ::windows_sys::core::PCSTR, lpreopenbuf : *mut OFSTRUCT, wstyle : LZOPENFILE_STYLE) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn LZOpenFileW(lpfilename : ::windows_sys::core::PCWSTR, lpreopenbuf : *mut OFSTRUCT, wstyle : LZOPENFILE_STYLE) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn LZRead(hfile : i32, lpbuffer : ::windows_sys::core::PSTR, cbread : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn LZSeek(hfile : i32, loffset : i32, iorigin : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn LZStart() -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LocalFileTimeToFileTime(lplocalfiletime : *const super::super::Foundation:: FILETIME, lpfiletime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LockFile(hfile : super::super::Foundation:: HANDLE, dwfileoffsetlow : u32, dwfileoffsethigh : u32, nnumberofbytestolocklow : u32, nnumberofbytestolockhigh : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn LockFileEx(hfile : super::super::Foundation:: HANDLE, dwflags : LOCK_FILE_FLAGS, dwreserved : u32, nnumberofbytestolocklow : u32, nnumberofbytestolockhigh : u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LogTailAdvanceFailure(hlog : super::super::Foundation:: HANDLE, dwreason : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("clfsw32.dll" "system" fn LsnBlockOffset(plsn : *const CLS_LSN) -> u32); +::windows_targets::link!("clfsw32.dll" "system" fn LsnContainer(plsn : *const CLS_LSN) -> u32); +::windows_targets::link!("clfsw32.dll" "system" fn LsnCreate(cidcontainer : u32, offblock : u32, crecord : u32) -> CLS_LSN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsnEqual(plsn1 : *const CLS_LSN, plsn2 : *const CLS_LSN) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsnGreater(plsn1 : *const CLS_LSN, plsn2 : *const CLS_LSN) -> super::super::Foundation:: BOOLEAN); +::windows_targets::link!("clfsw32.dll" "system" fn LsnIncrement(plsn : *const CLS_LSN) -> CLS_LSN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsnInvalid(plsn : *const CLS_LSN) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsnLess(plsn1 : *const CLS_LSN, plsn2 : *const CLS_LSN) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LsnNull(plsn : *const CLS_LSN) -> super::super::Foundation:: BOOLEAN); +::windows_targets::link!("clfsw32.dll" "system" fn LsnRecordSequence(plsn : *const CLS_LSN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoveFileA(lpexistingfilename : ::windows_sys::core::PCSTR, lpnewfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoveFileExA(lpexistingfilename : ::windows_sys::core::PCSTR, lpnewfilename : ::windows_sys::core::PCSTR, dwflags : MOVE_FILE_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoveFileExW(lpexistingfilename : ::windows_sys::core::PCWSTR, lpnewfilename : ::windows_sys::core::PCWSTR, dwflags : MOVE_FILE_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-file-fromapp-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoveFileFromAppW(lpexistingfilename : ::windows_sys::core::PCWSTR, lpnewfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoveFileTransactedA(lpexistingfilename : ::windows_sys::core::PCSTR, lpnewfilename : ::windows_sys::core::PCSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const ::core::ffi::c_void, dwflags : MOVE_FILE_FLAGS, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoveFileTransactedW(lpexistingfilename : ::windows_sys::core::PCWSTR, lpnewfilename : ::windows_sys::core::PCWSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const ::core::ffi::c_void, dwflags : MOVE_FILE_FLAGS, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoveFileW(lpexistingfilename : ::windows_sys::core::PCWSTR, lpnewfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoveFileWithProgressA(lpexistingfilename : ::windows_sys::core::PCSTR, lpnewfilename : ::windows_sys::core::PCSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const ::core::ffi::c_void, dwflags : MOVE_FILE_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoveFileWithProgressW(lpexistingfilename : ::windows_sys::core::PCWSTR, lpnewfilename : ::windows_sys::core::PCWSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const ::core::ffi::c_void, dwflags : MOVE_FILE_FLAGS) -> super::super::Foundation:: BOOL); +::windows_targets::link!("netapi32.dll" "system" fn NetConnectionEnum(servername : ::windows_sys::core::PCWSTR, qualifier : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resume_handle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetFileClose(servername : ::windows_sys::core::PCWSTR, fileid : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetFileEnum(servername : ::windows_sys::core::PCWSTR, basepath : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resume_handle : *mut usize) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetFileGetInfo(servername : ::windows_sys::core::PCWSTR, fileid : u32, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServerAliasAdd(servername : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServerAliasDel(servername : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetServerAliasEnum(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resumehandle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetSessionDel(servername : ::windows_sys::core::PCWSTR, uncclientname : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetSessionEnum(servername : ::windows_sys::core::PCWSTR, uncclientname : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resume_handle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetSessionGetInfo(servername : ::windows_sys::core::PCWSTR, uncclientname : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetShareAdd(servername : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetShareCheck(servername : ::windows_sys::core::PCWSTR, device : ::windows_sys::core::PCWSTR, r#type : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetShareDel(servername : ::windows_sys::core::PCWSTR, netname : ::windows_sys::core::PCWSTR, reserved : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetShareDelEx(servername : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetShareDelSticky(servername : ::windows_sys::core::PCWSTR, netname : ::windows_sys::core::PCWSTR, reserved : u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetShareEnum(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resume_handle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetShareEnumSticky(servername : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8, prefmaxlen : u32, entriesread : *mut u32, totalentries : *mut u32, resume_handle : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetShareGetInfo(servername : ::windows_sys::core::PCWSTR, netname : ::windows_sys::core::PCWSTR, level : u32, bufptr : *mut *mut u8) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetShareSetInfo(servername : ::windows_sys::core::PCWSTR, netname : ::windows_sys::core::PCWSTR, level : u32, buf : *const u8, parm_err : *mut u32) -> u32); +::windows_targets::link!("netapi32.dll" "system" fn NetStatisticsGet(servername : *const i8, service : *const i8, level : u32, options : u32, buffer : *mut *mut u8) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn OpenEncryptedFileRawA(lpfilename : ::windows_sys::core::PCSTR, ulflags : u32, pvcontext : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn OpenEncryptedFileRawW(lpfilename : ::windows_sys::core::PCWSTR, ulflags : u32, pvcontext : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenEnlistment(dwdesiredaccess : u32, resourcemanagerhandle : super::super::Foundation:: HANDLE, enlistmentid : *mut ::windows_sys::core::GUID) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("kernel32.dll" "system" fn OpenFile(lpfilename : ::windows_sys::core::PCSTR, lpreopenbuff : *mut OFSTRUCT, ustyle : u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn OpenFileById(hvolumehint : super::super::Foundation:: HANDLE, lpfileid : *const FILE_ID_DESCRIPTOR, dwdesiredaccess : u32, dwsharemode : FILE_SHARE_MODE, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, dwflagsandattributes : FILE_FLAGS_AND_ATTRIBUTES) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenResourceManager(dwdesiredaccess : u32, tmhandle : super::super::Foundation:: HANDLE, resourcemanagerid : *mut ::windows_sys::core::GUID) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenTransaction(dwdesiredaccess : u32, transactionid : *mut ::windows_sys::core::GUID) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenTransactionManager(logfilename : ::windows_sys::core::PCWSTR, desiredaccess : u32, openoptions : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenTransactionManagerById(transactionmanagerid : *const ::windows_sys::core::GUID, desiredaccess : u32, openoptions : u32) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("api-ms-win-core-ioring-l1-1-0.dll" "system" fn PopIoRingCompletion(ioring : HIORING, cqe : *mut IORING_CQE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrePrepareComplete(enlistmenthandle : super::super::Foundation:: HANDLE, tmvirtualclock : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrePrepareEnlistment(enlistmenthandle : super::super::Foundation:: HANDLE, tmvirtualclock : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrepareComplete(enlistmenthandle : super::super::Foundation:: HANDLE, tmvirtualclock : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrepareEnlistment(enlistmenthandle : super::super::Foundation:: HANDLE, tmvirtualclock : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrepareLogArchive(hlog : super::super::Foundation:: HANDLE, pszbaselogfilename : ::windows_sys::core::PWSTR, clen : u32, plsnlow : *const CLS_LSN, plsnhigh : *const CLS_LSN, pcactuallength : *mut u32, poffbaselogfiledata : *mut u64, pcbbaselogfilelength : *mut u64, plsnbase : *mut CLS_LSN, plsnlast : *mut CLS_LSN, plsncurrentarchivetail : *mut CLS_LSN, ppvarchivecontext : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrepareTape(hdevice : super::super::Foundation:: HANDLE, dwoperation : PREPARE_TAPE_OPERATION, bimmediate : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn QueryDosDeviceA(lpdevicename : ::windows_sys::core::PCSTR, lptargetpath : ::windows_sys::core::PSTR, ucchmax : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn QueryDosDeviceW(lpdevicename : ::windows_sys::core::PCWSTR, lptargetpath : ::windows_sys::core::PWSTR, ucchmax : u32) -> u32); +::windows_targets::link!("api-ms-win-core-ioring-l1-1-0.dll" "system" fn QueryIoRingCapabilities(capabilities : *mut IORING_CAPABILITIES) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryLogPolicy(hlog : super::super::Foundation:: HANDLE, epolicytype : CLFS_MGMT_POLICY_TYPE, ppolicybuffer : *mut CLFS_MGMT_POLICY, pcbpolicybuffer : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn QueryRecoveryAgentsOnEncryptedFile(lpfilename : ::windows_sys::core::PCWSTR, precoveryagents : *mut *mut ENCRYPTION_CERTIFICATE_HASH_LIST) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn QueryUsersOnEncryptedFile(lpfilename : ::windows_sys::core::PCWSTR, pusers : *mut *mut ENCRYPTION_CERTIFICATE_HASH_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReOpenFile(horiginalfile : super::super::Foundation:: HANDLE, dwdesiredaccess : u32, dwsharemode : FILE_SHARE_MODE, dwflagsandattributes : FILE_FLAGS_AND_ATTRIBUTES) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ReadDirectoryChangesExW(hdirectory : super::super::Foundation:: HANDLE, lpbuffer : *mut ::core::ffi::c_void, nbufferlength : u32, bwatchsubtree : super::super::Foundation:: BOOL, dwnotifyfilter : FILE_NOTIFY_CHANGE, lpbytesreturned : *mut u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED, lpcompletionroutine : super::super::System::IO:: LPOVERLAPPED_COMPLETION_ROUTINE, readdirectorynotifyinformationclass : READ_DIRECTORY_NOTIFY_INFORMATION_CLASS) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ReadDirectoryChangesW(hdirectory : super::super::Foundation:: HANDLE, lpbuffer : *mut ::core::ffi::c_void, nbufferlength : u32, bwatchsubtree : super::super::Foundation:: BOOL, dwnotifyfilter : FILE_NOTIFY_CHANGE, lpbytesreturned : *mut u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED, lpcompletionroutine : super::super::System::IO:: LPOVERLAPPED_COMPLETION_ROUTINE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn ReadEncryptedFileRaw(pfexportcallback : PFE_EXPORT_FUNC, pvcallbackcontext : *const ::core::ffi::c_void, pvcontext : *const ::core::ffi::c_void) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ReadFile(hfile : super::super::Foundation:: HANDLE, lpbuffer : *mut u8, nnumberofbytestoread : u32, lpnumberofbytesread : *mut u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ReadFileEx(hfile : super::super::Foundation:: HANDLE, lpbuffer : *mut u8, nnumberofbytestoread : u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED, lpcompletionroutine : super::super::System::IO:: LPOVERLAPPED_COMPLETION_ROUTINE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ReadFileScatter(hfile : super::super::Foundation:: HANDLE, asegmentarray : *const FILE_SEGMENT_ELEMENT, nnumberofbytestoread : u32, lpreserved : *const u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadLogArchiveMetadata(pvarchivecontext : *mut ::core::ffi::c_void, cboffset : u32, cbbytestoread : u32, pbreadbuffer : *mut u8, pcbbytesread : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ReadLogNotification(hlog : super::super::Foundation:: HANDLE, pnotification : *mut CLFS_MGMT_NOTIFICATION, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ReadLogRecord(pvmarshal : *mut ::core::ffi::c_void, plsnfirst : *mut CLS_LSN, econtextmode : CLFS_CONTEXT_MODE, ppvreadbuffer : *mut *mut ::core::ffi::c_void, pcbreadbuffer : *mut u32, perecordtype : *mut u8, plsnundonext : *mut CLS_LSN, plsnprevious : *mut CLS_LSN, ppvreadcontext : *mut *mut ::core::ffi::c_void, poverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ReadLogRestartArea(pvmarshal : *mut ::core::ffi::c_void, ppvrestartbuffer : *mut *mut ::core::ffi::c_void, pcbrestartbuffer : *mut u32, plsn : *mut CLS_LSN, ppvcontext : *mut *mut ::core::ffi::c_void, poverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ReadNextLogRecord(pvreadcontext : *mut ::core::ffi::c_void, ppvbuffer : *mut *mut ::core::ffi::c_void, pcbbuffer : *mut u32, perecordtype : *mut u8, plsnuser : *mut CLS_LSN, plsnundonext : *mut CLS_LSN, plsnprevious : *mut CLS_LSN, plsnrecord : *mut CLS_LSN, poverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadOnlyEnlistment(enlistmenthandle : super::super::Foundation:: HANDLE, tmvirtualclock : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ReadPreviousLogRestartArea(pvreadcontext : *mut ::core::ffi::c_void, ppvrestartbuffer : *mut *mut ::core::ffi::c_void, pcbrestartbuffer : *mut u32, plsnrestart : *mut CLS_LSN, poverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RecoverEnlistment(enlistmenthandle : super::super::Foundation:: HANDLE, enlistmentkey : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RecoverResourceManager(resourcemanagerhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RecoverTransactionManager(transactionmanagerhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterForLogWriteNotification(hlog : super::super::Foundation:: HANDLE, cbthreshold : u32, fenable : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterManageableLogClient(hlog : super::super::Foundation:: HANDLE, pcallbacks : *mut LOG_MANAGEMENT_CALLBACKS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveDirectoryA(lppathname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-file-fromapp-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveDirectoryFromAppW(lppathname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveDirectoryTransactedA(lppathname : ::windows_sys::core::PCSTR, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveDirectoryTransactedW(lppathname : ::windows_sys::core::PCWSTR, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveDirectoryW(lppathname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveLogContainer(hlog : super::super::Foundation:: HANDLE, pwszcontainerpath : ::windows_sys::core::PCWSTR, fforce : super::super::Foundation:: BOOL, preserved : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveLogContainerSet(hlog : super::super::Foundation:: HANDLE, ccontainer : u16, rgwszcontainerpath : *const ::windows_sys::core::PCWSTR, fforce : super::super::Foundation:: BOOL, preserved : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveLogPolicy(hlog : super::super::Foundation:: HANDLE, epolicytype : CLFS_MGMT_POLICY_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn RemoveUsersFromEncryptedFile(lpfilename : ::windows_sys::core::PCWSTR, phashes : *const ENCRYPTION_CERTIFICATE_HASH_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RenameTransactionManager(logfilename : ::windows_sys::core::PCWSTR, existingtransactionmanagerguid : *mut ::windows_sys::core::GUID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReplaceFileA(lpreplacedfilename : ::windows_sys::core::PCSTR, lpreplacementfilename : ::windows_sys::core::PCSTR, lpbackupfilename : ::windows_sys::core::PCSTR, dwreplaceflags : REPLACE_FILE_FLAGS, lpexclude : *const ::core::ffi::c_void, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-file-fromapp-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReplaceFileFromAppW(lpreplacedfilename : ::windows_sys::core::PCWSTR, lpreplacementfilename : ::windows_sys::core::PCWSTR, lpbackupfilename : ::windows_sys::core::PCWSTR, dwreplaceflags : u32, lpexclude : *const ::core::ffi::c_void, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReplaceFileW(lpreplacedfilename : ::windows_sys::core::PCWSTR, lpreplacementfilename : ::windows_sys::core::PCWSTR, lpbackupfilename : ::windows_sys::core::PCWSTR, dwreplaceflags : REPLACE_FILE_FLAGS, lpexclude : *const ::core::ffi::c_void, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ReserveAndAppendLog(pvmarshal : *mut ::core::ffi::c_void, rgwriteentries : *mut CLS_WRITE_ENTRY, cwriteentries : u32, plsnundonext : *mut CLS_LSN, plsnprevious : *mut CLS_LSN, creserverecords : u32, rgcbreservation : *mut i64, fflags : CLFS_FLAG, plsn : *mut CLS_LSN, poverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ReserveAndAppendLogAligned(pvmarshal : *mut ::core::ffi::c_void, rgwriteentries : *mut CLS_WRITE_ENTRY, cwriteentries : u32, cbentryalignment : u32, plsnundonext : *mut CLS_LSN, plsnprevious : *mut CLS_LSN, creserverecords : u32, rgcbreservation : *mut i64, fflags : CLFS_FLAG, plsn : *mut CLS_LSN, poverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RollbackComplete(enlistmenthandle : super::super::Foundation:: HANDLE, tmvirtualclock : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RollbackEnlistment(enlistmenthandle : super::super::Foundation:: HANDLE, tmvirtualclock : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RollbackTransaction(transactionhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RollbackTransactionAsync(transactionhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RollforwardTransactionManager(transactionmanagerhandle : super::super::Foundation:: HANDLE, tmvirtualclock : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ScanLogContainers(pcxscan : *mut CLS_SCAN_CONTEXT, escanmode : u8, preserved : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn SearchPathA(lppath : ::windows_sys::core::PCSTR, lpfilename : ::windows_sys::core::PCSTR, lpextension : ::windows_sys::core::PCSTR, nbufferlength : u32, lpbuffer : ::windows_sys::core::PSTR, lpfilepart : *mut ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn SearchPathW(lppath : ::windows_sys::core::PCWSTR, lpfilename : ::windows_sys::core::PCWSTR, lpextension : ::windows_sys::core::PCWSTR, nbufferlength : u32, lpbuffer : ::windows_sys::core::PWSTR, lpfilepart : *mut ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn SetEncryptedFileMetadata(lpfilename : ::windows_sys::core::PCWSTR, pboldmetadata : *const u8, pbnewmetadata : *const u8, pownerhash : *const ENCRYPTION_CERTIFICATE_HASH, dwoperation : u32, pcertificatesadded : *const ENCRYPTION_CERTIFICATE_HASH_LIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetEndOfFile(hfile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn SetEndOfLog(hlog : super::super::Foundation:: HANDLE, plsnend : *mut CLS_LSN, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetEnlistmentRecoveryInformation(enlistmenthandle : super::super::Foundation:: HANDLE, buffersize : u32, buffer : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn SetFileApisToANSI() -> ()); +::windows_targets::link!("kernel32.dll" "system" fn SetFileApisToOEM() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileAttributesA(lpfilename : ::windows_sys::core::PCSTR, dwfileattributes : FILE_FLAGS_AND_ATTRIBUTES) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-file-fromapp-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileAttributesFromAppW(lpfilename : ::windows_sys::core::PCWSTR, dwfileattributes : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileAttributesTransactedA(lpfilename : ::windows_sys::core::PCSTR, dwfileattributes : u32, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileAttributesTransactedW(lpfilename : ::windows_sys::core::PCWSTR, dwfileattributes : u32, htransaction : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileAttributesW(lpfilename : ::windows_sys::core::PCWSTR, dwfileattributes : FILE_FLAGS_AND_ATTRIBUTES) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileBandwidthReservation(hfile : super::super::Foundation:: HANDLE, nperiodmilliseconds : u32, nbytesperperiod : u32, bdiscardable : super::super::Foundation:: BOOL, lptransfersize : *mut u32, lpnumoutstandingrequests : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileCompletionNotificationModes(filehandle : super::super::Foundation:: HANDLE, flags : u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileInformationByHandle(hfile : super::super::Foundation:: HANDLE, fileinformationclass : FILE_INFO_BY_HANDLE_CLASS, lpfileinformation : *const ::core::ffi::c_void, dwbuffersize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileIoOverlappedRange(filehandle : super::super::Foundation:: HANDLE, overlappedrangestart : *const u8, length : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFilePointer(hfile : super::super::Foundation:: HANDLE, ldistancetomove : i32, lpdistancetomovehigh : *mut i32, dwmovemethod : SET_FILE_POINTER_MOVE_METHOD) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFilePointerEx(hfile : super::super::Foundation:: HANDLE, lidistancetomove : i64, lpnewfilepointer : *mut i64, dwmovemethod : SET_FILE_POINTER_MOVE_METHOD) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileShortNameA(hfile : super::super::Foundation:: HANDLE, lpshortname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileShortNameW(hfile : super::super::Foundation:: HANDLE, lpshortname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileTime(hfile : super::super::Foundation:: HANDLE, lpcreationtime : *const super::super::Foundation:: FILETIME, lplastaccesstime : *const super::super::Foundation:: FILETIME, lplastwritetime : *const super::super::Foundation:: FILETIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFileValidData(hfile : super::super::Foundation:: HANDLE, validdatalength : i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-ioring-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetIoRingCompletionEvent(ioring : HIORING, hevent : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetLogArchiveMode(hlog : super::super::Foundation:: HANDLE, emode : CLFS_LOG_ARCHIVE_MODE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetLogArchiveTail(hlog : super::super::Foundation:: HANDLE, plsnarchivetail : *mut CLS_LSN, preserved : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetLogFileSizeWithPolicy(hlog : super::super::Foundation:: HANDLE, pdesiredsize : *const u64, presultingsize : *mut u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetResourceManagerCompletionPort(resourcemanagerhandle : super::super::Foundation:: HANDLE, iocompletionporthandle : super::super::Foundation:: HANDLE, completionkey : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSearchPathMode(flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetTapeParameters(hdevice : super::super::Foundation:: HANDLE, dwoperation : TAPE_INFORMATION_TYPE, lptapeinformation : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetTapePosition(hdevice : super::super::Foundation:: HANDLE, dwpositionmethod : TAPE_POSITION_METHOD, dwpartition : u32, dwoffsetlow : u32, dwoffsethigh : u32, bimmediate : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetTransactionInformation(transactionhandle : super::super::Foundation:: HANDLE, isolationlevel : u32, isolationflags : u32, timeout : u32, description : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn SetUserFileEncryptionKey(pencryptioncertificate : *const ENCRYPTION_CERTIFICATE) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn SetUserFileEncryptionKeyEx(pencryptioncertificate : *const ENCRYPTION_CERTIFICATE, dwcapabilities : u32, dwflags : u32, pvreserved : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetVolumeLabelA(lprootpathname : ::windows_sys::core::PCSTR, lpvolumename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetVolumeLabelW(lprootpathname : ::windows_sys::core::PCWSTR, lpvolumename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetVolumeMountPointA(lpszvolumemountpoint : ::windows_sys::core::PCSTR, lpszvolumename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetVolumeMountPointW(lpszvolumemountpoint : ::windows_sys::core::PCWSTR, lpszvolumename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ktmw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SinglePhaseReject(enlistmenthandle : super::super::Foundation:: HANDLE, tmvirtualclock : *mut i64) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-core-ioring-l1-1-0.dll" "system" fn SubmitIoRing(ioring : HIORING, waitoperations : u32, milliseconds : u32, submittedentries : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TerminateLogArchive(pvarchivecontext : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TerminateReadLog(pvcursorcontext : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn TruncateLog(pvmarshal : *const ::core::ffi::c_void, plsnend : *const CLS_LSN, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +::windows_targets::link!("txfw32.dll" "system" fn TxfGetThreadMiniVersionForCreate(miniversion : *mut u16) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("txfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TxfLogCreateFileReadContext(logpath : ::windows_sys::core::PCWSTR, beginninglsn : CLS_LSN, endinglsn : CLS_LSN, txffileid : *const TXF_ID, txflogcontext : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("txfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TxfLogCreateRangeReadContext(logpath : ::windows_sys::core::PCWSTR, beginninglsn : CLS_LSN, endinglsn : CLS_LSN, beginningvirtualclock : *const i64, endingvirtualclock : *const i64, recordtypemask : u32, txflogcontext : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("txfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TxfLogDestroyReadContext(txflogcontext : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("txfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TxfLogReadRecords(txflogcontext : *const ::core::ffi::c_void, bufferlength : u32, buffer : *mut ::core::ffi::c_void, bytesused : *mut u32, recordcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("txfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TxfLogRecordGetFileName(recordbuffer : *const ::core::ffi::c_void, recordbufferlengthinbytes : u32, namebuffer : ::windows_sys::core::PWSTR, namebufferlengthinbytes : *mut u32, txfid : *mut TXF_ID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("txfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TxfLogRecordGetGenericType(recordbuffer : *const ::core::ffi::c_void, recordbufferlengthinbytes : u32, generictype : *mut u32, virtualclock : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("txfw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TxfReadMetadataInfo(filehandle : super::super::Foundation:: HANDLE, txffileid : *mut TXF_ID, lastlsn : *mut CLS_LSN, transactionstate : *mut u32, lockingtransaction : *mut ::windows_sys::core::GUID) -> super::super::Foundation:: BOOL); +::windows_targets::link!("txfw32.dll" "system" fn TxfSetThreadMiniVersionForCreate(miniversion : u16) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnlockFile(hfile : super::super::Foundation:: HANDLE, dwfileoffsetlow : u32, dwfileoffsethigh : u32, nnumberofbytestounlocklow : u32, nnumberofbytestounlockhigh : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn UnlockFileEx(hfile : super::super::Foundation:: HANDLE, dwreserved : u32, nnumberofbytestounlocklow : u32, nnumberofbytestounlockhigh : u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ValidateLog(pszlogfilename : ::windows_sys::core::PCWSTR, psalogfile : *mut super::super::Security:: SECURITY_ATTRIBUTES, pinfobuffer : *mut CLS_INFORMATION, pcbbuffer : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("version.dll" "system" fn VerFindFileA(uflags : VER_FIND_FILE_FLAGS, szfilename : ::windows_sys::core::PCSTR, szwindir : ::windows_sys::core::PCSTR, szappdir : ::windows_sys::core::PCSTR, szcurdir : ::windows_sys::core::PSTR, pucurdirlen : *mut u32, szdestdir : ::windows_sys::core::PSTR, pudestdirlen : *mut u32) -> VER_FIND_FILE_STATUS); +::windows_targets::link!("version.dll" "system" fn VerFindFileW(uflags : VER_FIND_FILE_FLAGS, szfilename : ::windows_sys::core::PCWSTR, szwindir : ::windows_sys::core::PCWSTR, szappdir : ::windows_sys::core::PCWSTR, szcurdir : ::windows_sys::core::PWSTR, pucurdirlen : *mut u32, szdestdir : ::windows_sys::core::PWSTR, pudestdirlen : *mut u32) -> VER_FIND_FILE_STATUS); +::windows_targets::link!("version.dll" "system" fn VerInstallFileA(uflags : VER_INSTALL_FILE_FLAGS, szsrcfilename : ::windows_sys::core::PCSTR, szdestfilename : ::windows_sys::core::PCSTR, szsrcdir : ::windows_sys::core::PCSTR, szdestdir : ::windows_sys::core::PCSTR, szcurdir : ::windows_sys::core::PCSTR, sztmpfile : ::windows_sys::core::PSTR, putmpfilelen : *mut u32) -> VER_INSTALL_FILE_STATUS); +::windows_targets::link!("version.dll" "system" fn VerInstallFileW(uflags : VER_INSTALL_FILE_FLAGS, szsrcfilename : ::windows_sys::core::PCWSTR, szdestfilename : ::windows_sys::core::PCWSTR, szsrcdir : ::windows_sys::core::PCWSTR, szdestdir : ::windows_sys::core::PCWSTR, szcurdir : ::windows_sys::core::PCWSTR, sztmpfile : ::windows_sys::core::PWSTR, putmpfilelen : *mut u32) -> VER_INSTALL_FILE_STATUS); +::windows_targets::link!("kernel32.dll" "system" fn VerLanguageNameA(wlang : u32, szlang : ::windows_sys::core::PSTR, cchlang : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn VerLanguageNameW(wlang : u32, szlang : ::windows_sys::core::PWSTR, cchlang : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("version.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VerQueryValueA(pblock : *const ::core::ffi::c_void, lpsubblock : ::windows_sys::core::PCSTR, lplpbuffer : *mut *mut ::core::ffi::c_void, pulen : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("version.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VerQueryValueW(pblock : *const ::core::ffi::c_void, lpsubblock : ::windows_sys::core::PCWSTR, lplpbuffer : *mut *mut ::core::ffi::c_void, pulen : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wofutil.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WofEnumEntries(volumename : ::windows_sys::core::PCWSTR, provider : u32, enumproc : WofEnumEntryProc, userdata : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wofutil.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WofFileEnumFiles(volumename : ::windows_sys::core::PCWSTR, algorithm : u32, enumproc : WofEnumFilesProc, userdata : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wofutil.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WofGetDriverVersion(fileorvolumehandle : super::super::Foundation:: HANDLE, provider : u32, wofversion : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wofutil.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WofIsExternalFile(filepath : ::windows_sys::core::PCWSTR, isexternalfile : *mut super::super::Foundation:: BOOL, provider : *mut u32, externalfileinfo : *mut ::core::ffi::c_void, bufferlength : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wofutil.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WofSetFileDataLocation(filehandle : super::super::Foundation:: HANDLE, provider : u32, externalfileinfo : *const ::core::ffi::c_void, length : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wofutil.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WofShouldCompressBinaries(volume : ::windows_sys::core::PCWSTR, algorithm : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wofutil.dll" "system" fn WofWimAddEntry(volumename : ::windows_sys::core::PCWSTR, wimpath : ::windows_sys::core::PCWSTR, wimtype : u32, wimindex : u32, datasourceid : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wofutil.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WofWimEnumFiles(volumename : ::windows_sys::core::PCWSTR, datasourceid : i64, enumproc : WofEnumFilesProc, userdata : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wofutil.dll" "system" fn WofWimRemoveEntry(volumename : ::windows_sys::core::PCWSTR, datasourceid : i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wofutil.dll" "system" fn WofWimSuspendEntry(volumename : ::windows_sys::core::PCWSTR, datasourceid : i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wofutil.dll" "system" fn WofWimUpdateEntry(volumename : ::windows_sys::core::PCWSTR, datasourceid : i64, newwimpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Wow64DisableWow64FsRedirection(oldvalue : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Wow64EnableWow64FsRedirection(wow64fsenableredirection : super::super::Foundation:: BOOLEAN) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Wow64RevertWow64FsRedirection(olvalue : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn WriteEncryptedFileRaw(pfimportcallback : PFE_IMPORT_FUNC, pvcallbackcontext : *const ::core::ffi::c_void, pvcontext : *const ::core::ffi::c_void) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WriteFile(hfile : super::super::Foundation:: HANDLE, lpbuffer : *const u8, nnumberofbytestowrite : u32, lpnumberofbyteswritten : *mut u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WriteFileEx(hfile : super::super::Foundation:: HANDLE, lpbuffer : *const u8, nnumberofbytestowrite : u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED, lpcompletionroutine : super::super::System::IO:: LPOVERLAPPED_COMPLETION_ROUTINE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WriteFileGather(hfile : super::super::Foundation:: HANDLE, asegmentarray : *const FILE_SEGMENT_ELEMENT, nnumberofbytestowrite : u32, lpreserved : *const u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("clfsw32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn WriteLogRestartArea(pvmarshal : *mut ::core::ffi::c_void, pvrestartbuffer : *mut ::core::ffi::c_void, cbrestartbuffer : u32, plsnbase : *mut CLS_LSN, fflags : CLFS_FLAG, pcbwritten : *mut u32, plsnnext : *mut CLS_LSN, poverlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteTapemark(hdevice : super::super::Foundation:: HANDLE, dwtapemarktype : TAPEMARK_TYPE, dwtapemarkcount : u32, bimmediate : super::super::Foundation:: BOOL) -> u32); +pub type IDiskQuotaControl = *mut ::core::ffi::c_void; +pub type IDiskQuotaEvents = *mut ::core::ffi::c_void; +pub type IDiskQuotaUser = *mut ::core::ffi::c_void; +pub type IDiskQuotaUserBatch = *mut ::core::ffi::c_void; +pub type IEnumDiskQuotaUsers = *mut ::core::ffi::c_void; +pub const ACCESS_ALL: SHARE_INFO_PERMISSIONS = 32768u32; +pub const ACCESS_ATRIB: SHARE_INFO_PERMISSIONS = 32u32; +pub const ACCESS_CREATE: SHARE_INFO_PERMISSIONS = 4u32; +pub const ACCESS_DELETE: SHARE_INFO_PERMISSIONS = 16u32; +pub const ACCESS_EXEC: SHARE_INFO_PERMISSIONS = 8u32; +pub const ACCESS_PERM: SHARE_INFO_PERMISSIONS = 64u32; +pub const ACCESS_READ: SHARE_INFO_PERMISSIONS = 1u32; +pub const ACCESS_WRITE: SHARE_INFO_PERMISSIONS = 2u32; +pub const BACKUP_ALTERNATE_DATA: WIN_STREAM_ID = 4u32; +pub const BACKUP_DATA: WIN_STREAM_ID = 1u32; +pub const BACKUP_EA_DATA: WIN_STREAM_ID = 2u32; +pub const BACKUP_LINK: WIN_STREAM_ID = 5u32; +pub const BACKUP_OBJECT_ID: WIN_STREAM_ID = 7u32; +pub const BACKUP_PROPERTY_DATA: WIN_STREAM_ID = 6u32; +pub const BACKUP_REPARSE_DATA: WIN_STREAM_ID = 8u32; +pub const BACKUP_SECURITY_DATA: WIN_STREAM_ID = 3u32; +pub const BACKUP_SPARSE_BLOCK: WIN_STREAM_ID = 9u32; +pub const BACKUP_TXFS_DATA: WIN_STREAM_ID = 10u32; +pub const BusType1394: STORAGE_BUS_TYPE = 4i32; +pub const BusTypeAta: STORAGE_BUS_TYPE = 3i32; +pub const BusTypeAtapi: STORAGE_BUS_TYPE = 2i32; +pub const BusTypeFibre: STORAGE_BUS_TYPE = 6i32; +pub const BusTypeFileBackedVirtual: STORAGE_BUS_TYPE = 15i32; +pub const BusTypeMax: STORAGE_BUS_TYPE = 20i32; +pub const BusTypeMaxReserved: STORAGE_BUS_TYPE = 127i32; +pub const BusTypeMmc: STORAGE_BUS_TYPE = 13i32; +pub const BusTypeNvme: STORAGE_BUS_TYPE = 17i32; +pub const BusTypeRAID: STORAGE_BUS_TYPE = 8i32; +pub const BusTypeSCM: STORAGE_BUS_TYPE = 18i32; +pub const BusTypeSas: STORAGE_BUS_TYPE = 10i32; +pub const BusTypeSata: STORAGE_BUS_TYPE = 11i32; +pub const BusTypeScsi: STORAGE_BUS_TYPE = 1i32; +pub const BusTypeSd: STORAGE_BUS_TYPE = 12i32; +pub const BusTypeSpaces: STORAGE_BUS_TYPE = 16i32; +pub const BusTypeSsa: STORAGE_BUS_TYPE = 5i32; +pub const BusTypeUfs: STORAGE_BUS_TYPE = 19i32; +pub const BusTypeUnknown: STORAGE_BUS_TYPE = 0i32; +pub const BusTypeUsb: STORAGE_BUS_TYPE = 7i32; +pub const BusTypeVirtual: STORAGE_BUS_TYPE = 14i32; +pub const BusTypeiScsi: STORAGE_BUS_TYPE = 9i32; +pub const CALLBACK_CHUNK_FINISHED: LPPROGRESS_ROUTINE_CALLBACK_REASON = 0u32; +pub const CALLBACK_STREAM_SWITCH: LPPROGRESS_ROUTINE_CALLBACK_REASON = 1u32; +pub const CLFS_BASELOG_EXTENSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".blf"); +pub const CLFS_CONTAINER_RELATIVE_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%BLF%\\"); +pub const CLFS_CONTAINER_STREAM_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("%BLF%:"); +pub const CLFS_FLAG_FILTER_INTERMEDIATE_LEVEL: u32 = 16u32; +pub const CLFS_FLAG_FILTER_TOP_LEVEL: u32 = 32u32; +pub const CLFS_FLAG_FORCE_APPEND: CLFS_FLAG = 1u32; +pub const CLFS_FLAG_FORCE_FLUSH: CLFS_FLAG = 2u32; +pub const CLFS_FLAG_HIDDEN_SYSTEM_LOG: u32 = 512u32; +pub const CLFS_FLAG_IGNORE_SHARE_ACCESS: u32 = 64u32; +pub const CLFS_FLAG_MINIFILTER_LEVEL: u32 = 256u32; +pub const CLFS_FLAG_NON_REENTRANT_FILTER: u32 = 16u32; +pub const CLFS_FLAG_NO_FLAGS: CLFS_FLAG = 0u32; +pub const CLFS_FLAG_READ_IN_PROGRESS: u32 = 128u32; +pub const CLFS_FLAG_REENTRANT_FILE_SYSTEM: u32 = 8u32; +pub const CLFS_FLAG_REENTRANT_FILTER: u32 = 32u32; +pub const CLFS_FLAG_USE_RESERVATION: CLFS_FLAG = 4u32; +pub const CLFS_MARSHALLING_FLAG_DISABLE_BUFF_INIT: u32 = 1u32; +pub const CLFS_MARSHALLING_FLAG_NONE: u32 = 0u32; +pub const CLFS_MAX_CONTAINER_INFO: u32 = 256u32; +pub const CLFS_MGMT_CLIENT_REGISTRATION_VERSION: u32 = 1u32; +pub const CLFS_MGMT_POLICY_VERSION: u32 = 1u32; +pub const CLFS_SCAN_BACKWARD: u8 = 4u8; +pub const CLFS_SCAN_BUFFERED: u8 = 32u8; +pub const CLFS_SCAN_CLOSE: u8 = 8u8; +pub const CLFS_SCAN_FORWARD: u8 = 2u8; +pub const CLFS_SCAN_INIT: u8 = 1u8; +pub const CLFS_SCAN_INITIALIZED: u8 = 16u8; +pub const CLSID_DiskQuotaControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7988b571_ec89_11cf_9c00_00aa00a14f56); +pub const COMPRESSION_FORMAT_DEFAULT: COMPRESSION_FORMAT = 1u16; +pub const COMPRESSION_FORMAT_LZNT1: COMPRESSION_FORMAT = 2u16; +pub const COMPRESSION_FORMAT_NONE: COMPRESSION_FORMAT = 0u16; +pub const COMPRESSION_FORMAT_XP10: COMPRESSION_FORMAT = 5u16; +pub const COMPRESSION_FORMAT_XPRESS: COMPRESSION_FORMAT = 3u16; +pub const COMPRESSION_FORMAT_XPRESS_HUFF: COMPRESSION_FORMAT = 4u16; +pub const COPYFILE2_CALLBACK_CHUNK_FINISHED: COPYFILE2_MESSAGE_TYPE = 2i32; +pub const COPYFILE2_CALLBACK_CHUNK_STARTED: COPYFILE2_MESSAGE_TYPE = 1i32; +pub const COPYFILE2_CALLBACK_ERROR: COPYFILE2_MESSAGE_TYPE = 6i32; +pub const COPYFILE2_CALLBACK_MAX: COPYFILE2_MESSAGE_TYPE = 7i32; +pub const COPYFILE2_CALLBACK_NONE: COPYFILE2_MESSAGE_TYPE = 0i32; +pub const COPYFILE2_CALLBACK_POLL_CONTINUE: COPYFILE2_MESSAGE_TYPE = 5i32; +pub const COPYFILE2_CALLBACK_STREAM_FINISHED: COPYFILE2_MESSAGE_TYPE = 4i32; +pub const COPYFILE2_CALLBACK_STREAM_STARTED: COPYFILE2_MESSAGE_TYPE = 3i32; +pub const COPYFILE2_PHASE_MAX: COPYFILE2_COPY_PHASE = 7i32; +pub const COPYFILE2_PHASE_NAMEGRAFT_COPY: COPYFILE2_COPY_PHASE = 6i32; +pub const COPYFILE2_PHASE_NONE: COPYFILE2_COPY_PHASE = 0i32; +pub const COPYFILE2_PHASE_PREPARE_DEST: COPYFILE2_COPY_PHASE = 2i32; +pub const COPYFILE2_PHASE_PREPARE_SOURCE: COPYFILE2_COPY_PHASE = 1i32; +pub const COPYFILE2_PHASE_READ_SOURCE: COPYFILE2_COPY_PHASE = 3i32; +pub const COPYFILE2_PHASE_SERVER_COPY: COPYFILE2_COPY_PHASE = 5i32; +pub const COPYFILE2_PHASE_WRITE_DESTINATION: COPYFILE2_COPY_PHASE = 4i32; +pub const COPYFILE2_PROGRESS_CANCEL: COPYFILE2_MESSAGE_ACTION = 1i32; +pub const COPYFILE2_PROGRESS_CONTINUE: COPYFILE2_MESSAGE_ACTION = 0i32; +pub const COPYFILE2_PROGRESS_PAUSE: COPYFILE2_MESSAGE_ACTION = 4i32; +pub const COPYFILE2_PROGRESS_QUIET: COPYFILE2_MESSAGE_ACTION = 3i32; +pub const COPYFILE2_PROGRESS_STOP: COPYFILE2_MESSAGE_ACTION = 2i32; +pub const CREATE_ALWAYS: FILE_CREATION_DISPOSITION = 2u32; +pub const CREATE_NEW: FILE_CREATION_DISPOSITION = 1u32; +pub const CRM_PROTOCOL_DYNAMIC_MARSHAL_INFO: u32 = 2u32; +pub const CRM_PROTOCOL_EXPLICIT_MARSHAL_ONLY: u32 = 1u32; +pub const CRM_PROTOCOL_MAXIMUM_OPTION: u32 = 3u32; +pub const CSC_CACHE_AUTO_REINT: u32 = 16u32; +pub const CSC_CACHE_MANUAL_REINT: u32 = 0u32; +pub const CSC_CACHE_NONE: u32 = 48u32; +pub const CSC_CACHE_VDO: u32 = 32u32; +pub const CSC_MASK: u32 = 48u32; +pub const CSC_MASK_EXT: u32 = 8240u32; +pub const CSV_BLOCK_AND_FILE_CACHE_CALLBACK_VERSION: u32 = 2u32; +pub const CSV_BLOCK_CACHE_CALLBACK_VERSION: u32 = 1u32; +pub const ClfsClientRecord: u8 = 3u8; +pub const ClfsContainerActive: u32 = 4u32; +pub const ClfsContainerActivePendingDelete: u32 = 8u32; +pub const ClfsContainerInactive: u32 = 2u32; +pub const ClfsContainerInitializing: u32 = 1u32; +pub const ClfsContainerPendingArchive: u32 = 16u32; +pub const ClfsContainerPendingArchiveAndDelete: u32 = 32u32; +pub const ClfsContextForward: CLFS_CONTEXT_MODE = 3i32; +pub const ClfsContextNone: CLFS_CONTEXT_MODE = 0i32; +pub const ClfsContextPrevious: CLFS_CONTEXT_MODE = 2i32; +pub const ClfsContextUndoNext: CLFS_CONTEXT_MODE = 1i32; +pub const ClfsDataRecord: u8 = 1u8; +pub const ClfsIoStatsDefault: CLFS_IOSTATS_CLASS = 0i32; +pub const ClfsIoStatsMax: CLFS_IOSTATS_CLASS = 65535i32; +pub const ClfsLogArchiveDisabled: CLFS_LOG_ARCHIVE_MODE = 2i32; +pub const ClfsLogArchiveEnabled: CLFS_LOG_ARCHIVE_MODE = 1i32; +pub const ClfsLogBasicInformation: CLS_LOG_INFORMATION_CLASS = 0i32; +pub const ClfsLogBasicInformationPhysical: CLS_LOG_INFORMATION_CLASS = 1i32; +pub const ClfsLogPhysicalLsnInformation: CLS_LOG_INFORMATION_CLASS = 5i32; +pub const ClfsLogPhysicalNameInformation: CLS_LOG_INFORMATION_CLASS = 2i32; +pub const ClfsLogStreamIdentifierInformation: CLS_LOG_INFORMATION_CLASS = 3i32; +pub const ClfsLogSystemMarkingInformation: CLS_LOG_INFORMATION_CLASS = 4i32; +pub const ClfsMgmtAdvanceTailNotification: CLFS_MGMT_NOTIFICATION_TYPE = 0i32; +pub const ClfsMgmtLogFullHandlerNotification: CLFS_MGMT_NOTIFICATION_TYPE = 1i32; +pub const ClfsMgmtLogUnpinnedNotification: CLFS_MGMT_NOTIFICATION_TYPE = 2i32; +pub const ClfsMgmtLogWriteNotification: CLFS_MGMT_NOTIFICATION_TYPE = 3i32; +pub const ClfsMgmtPolicyAutoGrow: CLFS_MGMT_POLICY_TYPE = 6i32; +pub const ClfsMgmtPolicyAutoShrink: CLFS_MGMT_POLICY_TYPE = 5i32; +pub const ClfsMgmtPolicyGrowthRate: CLFS_MGMT_POLICY_TYPE = 3i32; +pub const ClfsMgmtPolicyInvalid: CLFS_MGMT_POLICY_TYPE = 10i32; +pub const ClfsMgmtPolicyLogTail: CLFS_MGMT_POLICY_TYPE = 4i32; +pub const ClfsMgmtPolicyMaximumSize: CLFS_MGMT_POLICY_TYPE = 0i32; +pub const ClfsMgmtPolicyMinimumSize: CLFS_MGMT_POLICY_TYPE = 1i32; +pub const ClfsMgmtPolicyNewContainerExtension: CLFS_MGMT_POLICY_TYPE = 9i32; +pub const ClfsMgmtPolicyNewContainerPrefix: CLFS_MGMT_POLICY_TYPE = 7i32; +pub const ClfsMgmtPolicyNewContainerSize: CLFS_MGMT_POLICY_TYPE = 2i32; +pub const ClfsMgmtPolicyNewContainerSuffix: CLFS_MGMT_POLICY_TYPE = 8i32; +pub const ClfsNullRecord: u8 = 0u8; +pub const ClfsRestartRecord: u8 = 2u8; +pub const ClsContainerActive: u32 = 4u32; +pub const ClsContainerActivePendingDelete: u32 = 8u32; +pub const ClsContainerInactive: u32 = 2u32; +pub const ClsContainerInitializing: u32 = 1u32; +pub const ClsContainerPendingArchive: u32 = 16u32; +pub const ClsContainerPendingArchiveAndDelete: u32 = 32u32; +pub const ClsContextForward: CLS_CONTEXT_MODE = 3i32; +pub const ClsContextNone: CLS_CONTEXT_MODE = 0i32; +pub const ClsContextPrevious: CLS_CONTEXT_MODE = 2i32; +pub const ClsContextUndoNext: CLS_CONTEXT_MODE = 1i32; +pub const ClsIoStatsDefault: CLS_IOSTATS_CLASS = 0i32; +pub const ClsIoStatsMax: CLS_IOSTATS_CLASS = 65535i32; +pub const DDD_EXACT_MATCH_ON_REMOVE: DEFINE_DOS_DEVICE_FLAGS = 4u32; +pub const DDD_LUID_BROADCAST_DRIVE: DEFINE_DOS_DEVICE_FLAGS = 16u32; +pub const DDD_NO_BROADCAST_SYSTEM: DEFINE_DOS_DEVICE_FLAGS = 8u32; +pub const DDD_RAW_TARGET_PATH: DEFINE_DOS_DEVICE_FLAGS = 1u32; +pub const DDD_REMOVE_DEFINITION: DEFINE_DOS_DEVICE_FLAGS = 2u32; +pub const DELETE: FILE_ACCESS_RIGHTS = 65536u32; +pub const DISKQUOTA_FILESTATE_INCOMPLETE: u32 = 256u32; +pub const DISKQUOTA_FILESTATE_MASK: u32 = 768u32; +pub const DISKQUOTA_FILESTATE_REBUILDING: u32 = 512u32; +pub const DISKQUOTA_LOGFLAG_USER_LIMIT: u32 = 2u32; +pub const DISKQUOTA_LOGFLAG_USER_THRESHOLD: u32 = 1u32; +pub const DISKQUOTA_STATE_DISABLED: u32 = 0u32; +pub const DISKQUOTA_STATE_ENFORCE: u32 = 2u32; +pub const DISKQUOTA_STATE_MASK: u32 = 3u32; +pub const DISKQUOTA_STATE_TRACK: u32 = 1u32; +pub const DISKQUOTA_USERNAME_RESOLVE_ASYNC: DISKQUOTA_USERNAME_RESOLVE = 2u32; +pub const DISKQUOTA_USERNAME_RESOLVE_NONE: DISKQUOTA_USERNAME_RESOLVE = 0u32; +pub const DISKQUOTA_USERNAME_RESOLVE_SYNC: DISKQUOTA_USERNAME_RESOLVE = 1u32; +pub const DISKQUOTA_USER_ACCOUNT_DELETED: u32 = 2u32; +pub const DISKQUOTA_USER_ACCOUNT_INVALID: u32 = 3u32; +pub const DISKQUOTA_USER_ACCOUNT_RESOLVED: u32 = 0u32; +pub const DISKQUOTA_USER_ACCOUNT_UNAVAILABLE: u32 = 1u32; +pub const DISKQUOTA_USER_ACCOUNT_UNKNOWN: u32 = 4u32; +pub const DISKQUOTA_USER_ACCOUNT_UNRESOLVED: u32 = 5u32; +pub const EA_CONTAINER_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ContainerName"); +pub const EA_CONTAINER_SIZE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ContainerSize"); +pub const EFS_COMPATIBILITY_VERSION_NCRYPT_PROTECTOR: u32 = 5u32; +pub const EFS_COMPATIBILITY_VERSION_PFILE_PROTECTOR: u32 = 6u32; +pub const EFS_EFS_SUBVER_EFS_CERT: u32 = 1u32; +pub const EFS_METADATA_ADD_USER: u32 = 1u32; +pub const EFS_METADATA_GENERAL_OP: u32 = 8u32; +pub const EFS_METADATA_REMOVE_USER: u32 = 2u32; +pub const EFS_METADATA_REPLACE_USER: u32 = 4u32; +pub const EFS_PFILE_SUBVER_APPX: u32 = 3u32; +pub const EFS_PFILE_SUBVER_RMS: u32 = 2u32; +pub const EFS_SUBVER_UNKNOWN: u32 = 0u32; +pub const ENLISTMENT_MAXIMUM_OPTION: u32 = 1u32; +pub const ENLISTMENT_OBJECT_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Enlistment\\"); +pub const ENLISTMENT_SUPERIOR: u32 = 1u32; +pub const ExtendedFileIdType: FILE_ID_TYPE = 2i32; +pub const FILE_ACTION_ADDED: FILE_ACTION = 1u32; +pub const FILE_ACTION_MODIFIED: FILE_ACTION = 3u32; +pub const FILE_ACTION_REMOVED: FILE_ACTION = 2u32; +pub const FILE_ACTION_RENAMED_NEW_NAME: FILE_ACTION = 5u32; +pub const FILE_ACTION_RENAMED_OLD_NAME: FILE_ACTION = 4u32; +pub const FILE_ADD_FILE: FILE_ACCESS_RIGHTS = 2u32; +pub const FILE_ADD_SUBDIRECTORY: FILE_ACCESS_RIGHTS = 4u32; +pub const FILE_ALL_ACCESS: FILE_ACCESS_RIGHTS = 2032127u32; +pub const FILE_APPEND_DATA: FILE_ACCESS_RIGHTS = 4u32; +pub const FILE_ATTRIBUTE_ARCHIVE: FILE_FLAGS_AND_ATTRIBUTES = 32u32; +pub const FILE_ATTRIBUTE_COMPRESSED: FILE_FLAGS_AND_ATTRIBUTES = 2048u32; +pub const FILE_ATTRIBUTE_DEVICE: FILE_FLAGS_AND_ATTRIBUTES = 64u32; +pub const FILE_ATTRIBUTE_DIRECTORY: FILE_FLAGS_AND_ATTRIBUTES = 16u32; +pub const FILE_ATTRIBUTE_EA: FILE_FLAGS_AND_ATTRIBUTES = 262144u32; +pub const FILE_ATTRIBUTE_ENCRYPTED: FILE_FLAGS_AND_ATTRIBUTES = 16384u32; +pub const FILE_ATTRIBUTE_HIDDEN: FILE_FLAGS_AND_ATTRIBUTES = 2u32; +pub const FILE_ATTRIBUTE_INTEGRITY_STREAM: FILE_FLAGS_AND_ATTRIBUTES = 32768u32; +pub const FILE_ATTRIBUTE_NORMAL: FILE_FLAGS_AND_ATTRIBUTES = 128u32; +pub const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED: FILE_FLAGS_AND_ATTRIBUTES = 8192u32; +pub const FILE_ATTRIBUTE_NO_SCRUB_DATA: FILE_FLAGS_AND_ATTRIBUTES = 131072u32; +pub const FILE_ATTRIBUTE_OFFLINE: FILE_FLAGS_AND_ATTRIBUTES = 4096u32; +pub const FILE_ATTRIBUTE_PINNED: FILE_FLAGS_AND_ATTRIBUTES = 524288u32; +pub const FILE_ATTRIBUTE_READONLY: FILE_FLAGS_AND_ATTRIBUTES = 1u32; +pub const FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS: FILE_FLAGS_AND_ATTRIBUTES = 4194304u32; +pub const FILE_ATTRIBUTE_RECALL_ON_OPEN: FILE_FLAGS_AND_ATTRIBUTES = 262144u32; +pub const FILE_ATTRIBUTE_REPARSE_POINT: FILE_FLAGS_AND_ATTRIBUTES = 1024u32; +pub const FILE_ATTRIBUTE_SPARSE_FILE: FILE_FLAGS_AND_ATTRIBUTES = 512u32; +pub const FILE_ATTRIBUTE_SYSTEM: FILE_FLAGS_AND_ATTRIBUTES = 4u32; +pub const FILE_ATTRIBUTE_TEMPORARY: FILE_FLAGS_AND_ATTRIBUTES = 256u32; +pub const FILE_ATTRIBUTE_UNPINNED: FILE_FLAGS_AND_ATTRIBUTES = 1048576u32; +pub const FILE_ATTRIBUTE_VIRTUAL: FILE_FLAGS_AND_ATTRIBUTES = 65536u32; +pub const FILE_BEGIN: SET_FILE_POINTER_MOVE_METHOD = 0u32; +pub const FILE_CREATE_PIPE_INSTANCE: FILE_ACCESS_RIGHTS = 4u32; +pub const FILE_CURRENT: SET_FILE_POINTER_MOVE_METHOD = 1u32; +pub const FILE_DELETE_CHILD: FILE_ACCESS_RIGHTS = 64u32; +pub const FILE_DEVICE_CD_ROM: FILE_DEVICE_TYPE = 2u32; +pub const FILE_DEVICE_DISK: FILE_DEVICE_TYPE = 7u32; +pub const FILE_DEVICE_DVD: FILE_DEVICE_TYPE = 51u32; +pub const FILE_DEVICE_TAPE: FILE_DEVICE_TYPE = 31u32; +pub const FILE_DISPOSITION_FLAG_DELETE: FILE_DISPOSITION_INFO_EX_FLAGS = 1u32; +pub const FILE_DISPOSITION_FLAG_DO_NOT_DELETE: FILE_DISPOSITION_INFO_EX_FLAGS = 0u32; +pub const FILE_DISPOSITION_FLAG_FORCE_IMAGE_SECTION_CHECK: FILE_DISPOSITION_INFO_EX_FLAGS = 4u32; +pub const FILE_DISPOSITION_FLAG_IGNORE_READONLY_ATTRIBUTE: FILE_DISPOSITION_INFO_EX_FLAGS = 16u32; +pub const FILE_DISPOSITION_FLAG_ON_CLOSE: FILE_DISPOSITION_INFO_EX_FLAGS = 8u32; +pub const FILE_DISPOSITION_FLAG_POSIX_SEMANTICS: FILE_DISPOSITION_INFO_EX_FLAGS = 2u32; +pub const FILE_END: SET_FILE_POINTER_MOVE_METHOD = 2u32; +pub const FILE_EXECUTE: FILE_ACCESS_RIGHTS = 32u32; +pub const FILE_FLAG_BACKUP_SEMANTICS: FILE_FLAGS_AND_ATTRIBUTES = 33554432u32; +pub const FILE_FLAG_DELETE_ON_CLOSE: FILE_FLAGS_AND_ATTRIBUTES = 67108864u32; +pub const FILE_FLAG_FIRST_PIPE_INSTANCE: FILE_FLAGS_AND_ATTRIBUTES = 524288u32; +pub const FILE_FLAG_NO_BUFFERING: FILE_FLAGS_AND_ATTRIBUTES = 536870912u32; +pub const FILE_FLAG_OPEN_NO_RECALL: FILE_FLAGS_AND_ATTRIBUTES = 1048576u32; +pub const FILE_FLAG_OPEN_REPARSE_POINT: FILE_FLAGS_AND_ATTRIBUTES = 2097152u32; +pub const FILE_FLAG_OVERLAPPED: FILE_FLAGS_AND_ATTRIBUTES = 1073741824u32; +pub const FILE_FLAG_POSIX_SEMANTICS: FILE_FLAGS_AND_ATTRIBUTES = 16777216u32; +pub const FILE_FLAG_RANDOM_ACCESS: FILE_FLAGS_AND_ATTRIBUTES = 268435456u32; +pub const FILE_FLAG_SEQUENTIAL_SCAN: FILE_FLAGS_AND_ATTRIBUTES = 134217728u32; +pub const FILE_FLAG_SESSION_AWARE: FILE_FLAGS_AND_ATTRIBUTES = 8388608u32; +pub const FILE_FLAG_WRITE_THROUGH: FILE_FLAGS_AND_ATTRIBUTES = 2147483648u32; +pub const FILE_FLUSH_DATA: FILE_FLUSH_MODE = 1i32; +pub const FILE_FLUSH_DEFAULT: FILE_FLUSH_MODE = 0i32; +pub const FILE_FLUSH_MIN_METADATA: FILE_FLUSH_MODE = 2i32; +pub const FILE_FLUSH_NO_SYNC: FILE_FLUSH_MODE = 3i32; +pub const FILE_GENERIC_EXECUTE: FILE_ACCESS_RIGHTS = 1179808u32; +pub const FILE_GENERIC_READ: FILE_ACCESS_RIGHTS = 1179785u32; +pub const FILE_GENERIC_WRITE: FILE_ACCESS_RIGHTS = 1179926u32; +pub const FILE_LIST_DIRECTORY: FILE_ACCESS_RIGHTS = 1u32; +pub const FILE_NAME_NORMALIZED: GETFINALPATHNAMEBYHANDLE_FLAGS = 0u32; +pub const FILE_NAME_OPENED: GETFINALPATHNAMEBYHANDLE_FLAGS = 8u32; +pub const FILE_NOTIFY_CHANGE_ATTRIBUTES: FILE_NOTIFY_CHANGE = 4u32; +pub const FILE_NOTIFY_CHANGE_CREATION: FILE_NOTIFY_CHANGE = 64u32; +pub const FILE_NOTIFY_CHANGE_DIR_NAME: FILE_NOTIFY_CHANGE = 2u32; +pub const FILE_NOTIFY_CHANGE_FILE_NAME: FILE_NOTIFY_CHANGE = 1u32; +pub const FILE_NOTIFY_CHANGE_LAST_ACCESS: FILE_NOTIFY_CHANGE = 32u32; +pub const FILE_NOTIFY_CHANGE_LAST_WRITE: FILE_NOTIFY_CHANGE = 16u32; +pub const FILE_NOTIFY_CHANGE_SECURITY: FILE_NOTIFY_CHANGE = 256u32; +pub const FILE_NOTIFY_CHANGE_SIZE: FILE_NOTIFY_CHANGE = 8u32; +pub const FILE_PROVIDER_COMPRESSION_LZX: u32 = 1u32; +pub const FILE_PROVIDER_COMPRESSION_XPRESS16K: u32 = 3u32; +pub const FILE_PROVIDER_COMPRESSION_XPRESS4K: u32 = 0u32; +pub const FILE_PROVIDER_COMPRESSION_XPRESS8K: u32 = 2u32; +pub const FILE_READ_ATTRIBUTES: FILE_ACCESS_RIGHTS = 128u32; +pub const FILE_READ_DATA: FILE_ACCESS_RIGHTS = 1u32; +pub const FILE_READ_EA: FILE_ACCESS_RIGHTS = 8u32; +pub const FILE_SHARE_DELETE: FILE_SHARE_MODE = 4u32; +pub const FILE_SHARE_NONE: FILE_SHARE_MODE = 0u32; +pub const FILE_SHARE_READ: FILE_SHARE_MODE = 1u32; +pub const FILE_SHARE_WRITE: FILE_SHARE_MODE = 2u32; +pub const FILE_TRAVERSE: FILE_ACCESS_RIGHTS = 32u32; +pub const FILE_TYPE_CHAR: FILE_TYPE = 2u32; +pub const FILE_TYPE_DISK: FILE_TYPE = 1u32; +pub const FILE_TYPE_PIPE: FILE_TYPE = 3u32; +pub const FILE_TYPE_REMOTE: FILE_TYPE = 32768u32; +pub const FILE_TYPE_UNKNOWN: FILE_TYPE = 0u32; +pub const FILE_VER_GET_LOCALISED: GET_FILE_VERSION_INFO_FLAGS = 1u32; +pub const FILE_VER_GET_NEUTRAL: GET_FILE_VERSION_INFO_FLAGS = 2u32; +pub const FILE_VER_GET_PREFETCHED: GET_FILE_VERSION_INFO_FLAGS = 4u32; +pub const FILE_WRITE_ATTRIBUTES: FILE_ACCESS_RIGHTS = 256u32; +pub const FILE_WRITE_DATA: FILE_ACCESS_RIGHTS = 2u32; +pub const FILE_WRITE_EA: FILE_ACCESS_RIGHTS = 16u32; +pub const FILE_WRITE_FLAGS_NONE: FILE_WRITE_FLAGS = 0i32; +pub const FILE_WRITE_FLAGS_WRITE_THROUGH: FILE_WRITE_FLAGS = 1i32; +pub const FIND_FIRST_EX_CASE_SENSITIVE: FIND_FIRST_EX_FLAGS = 1u32; +pub const FIND_FIRST_EX_LARGE_FETCH: FIND_FIRST_EX_FLAGS = 2u32; +pub const FIND_FIRST_EX_ON_DISK_ENTRIES_ONLY: FIND_FIRST_EX_FLAGS = 4u32; +pub const FileAlignmentInfo: FILE_INFO_BY_HANDLE_CLASS = 17i32; +pub const FileAllocationInfo: FILE_INFO_BY_HANDLE_CLASS = 5i32; +pub const FileAttributeTagInfo: FILE_INFO_BY_HANDLE_CLASS = 9i32; +pub const FileBasicInfo: FILE_INFO_BY_HANDLE_CLASS = 0i32; +pub const FileCaseSensitiveInfo: FILE_INFO_BY_HANDLE_CLASS = 23i32; +pub const FileCompressionInfo: FILE_INFO_BY_HANDLE_CLASS = 8i32; +pub const FileDispositionInfo: FILE_INFO_BY_HANDLE_CLASS = 4i32; +pub const FileDispositionInfoEx: FILE_INFO_BY_HANDLE_CLASS = 21i32; +pub const FileEndOfFileInfo: FILE_INFO_BY_HANDLE_CLASS = 6i32; +pub const FileFullDirectoryInfo: FILE_INFO_BY_HANDLE_CLASS = 14i32; +pub const FileFullDirectoryRestartInfo: FILE_INFO_BY_HANDLE_CLASS = 15i32; +pub const FileIdBothDirectoryInfo: FILE_INFO_BY_HANDLE_CLASS = 10i32; +pub const FileIdBothDirectoryRestartInfo: FILE_INFO_BY_HANDLE_CLASS = 11i32; +pub const FileIdExtdDirectoryInfo: FILE_INFO_BY_HANDLE_CLASS = 19i32; +pub const FileIdExtdDirectoryRestartInfo: FILE_INFO_BY_HANDLE_CLASS = 20i32; +pub const FileIdInfo: FILE_INFO_BY_HANDLE_CLASS = 18i32; +pub const FileIdType: FILE_ID_TYPE = 0i32; +pub const FileIoPriorityHintInfo: FILE_INFO_BY_HANDLE_CLASS = 12i32; +pub const FileNameInfo: FILE_INFO_BY_HANDLE_CLASS = 2i32; +pub const FileNormalizedNameInfo: FILE_INFO_BY_HANDLE_CLASS = 24i32; +pub const FileRemoteProtocolInfo: FILE_INFO_BY_HANDLE_CLASS = 13i32; +pub const FileRenameInfo: FILE_INFO_BY_HANDLE_CLASS = 3i32; +pub const FileRenameInfoEx: FILE_INFO_BY_HANDLE_CLASS = 22i32; +pub const FileStandardInfo: FILE_INFO_BY_HANDLE_CLASS = 1i32; +pub const FileStorageInfo: FILE_INFO_BY_HANDLE_CLASS = 16i32; +pub const FileStreamInfo: FILE_INFO_BY_HANDLE_CLASS = 7i32; +pub const FindExInfoBasic: FINDEX_INFO_LEVELS = 1i32; +pub const FindExInfoMaxInfoLevel: FINDEX_INFO_LEVELS = 2i32; +pub const FindExInfoStandard: FINDEX_INFO_LEVELS = 0i32; +pub const FindExSearchLimitToDevices: FINDEX_SEARCH_OPS = 2i32; +pub const FindExSearchLimitToDirectories: FINDEX_SEARCH_OPS = 1i32; +pub const FindExSearchMaxSearchOp: FINDEX_SEARCH_OPS = 3i32; +pub const FindExSearchNameMatch: FINDEX_SEARCH_OPS = 0i32; +pub const FindStreamInfoMaxInfoLevel: STREAM_INFO_LEVELS = 1i32; +pub const FindStreamInfoStandard: STREAM_INFO_LEVELS = 0i32; +pub const GET_TAPE_DRIVE_INFORMATION: GET_TAPE_DRIVE_PARAMETERS_OPERATION = 1u32; +pub const GET_TAPE_MEDIA_INFORMATION: GET_TAPE_DRIVE_PARAMETERS_OPERATION = 0u32; +pub const GetFileExInfoStandard: GET_FILEEX_INFO_LEVELS = 0i32; +pub const GetFileExMaxInfoLevel: GET_FILEEX_INFO_LEVELS = 1i32; +pub const INVALID_FILE_ATTRIBUTES: u32 = 4294967295u32; +pub const INVALID_FILE_SIZE: u32 = 4294967295u32; +pub const INVALID_SET_FILE_POINTER: u32 = 4294967295u32; +pub const IOCTL_VOLUME_ALLOCATE_BC_STREAM: u32 = 5685312u32; +pub const IOCTL_VOLUME_BASE: u32 = 86u32; +pub const IOCTL_VOLUME_BC_VERSION: u32 = 1u32; +pub const IOCTL_VOLUME_FREE_BC_STREAM: u32 = 5685316u32; +pub const IOCTL_VOLUME_GET_BC_PROPERTIES: u32 = 5652540u32; +pub const IOCTL_VOLUME_GET_CSVBLOCKCACHE_CALLBACK: u32 = 5685352u32; +pub const IOCTL_VOLUME_GET_GPT_ATTRIBUTES: u32 = 5636152u32; +pub const IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS: u32 = 5636096u32; +pub const IOCTL_VOLUME_IS_CLUSTERED: u32 = 5636144u32; +pub const IOCTL_VOLUME_IS_CSV: u32 = 5636192u32; +pub const IOCTL_VOLUME_IS_DYNAMIC: u32 = 5636168u32; +pub const IOCTL_VOLUME_IS_IO_CAPABLE: u32 = 5636116u32; +pub const IOCTL_VOLUME_IS_OFFLINE: u32 = 5636112u32; +pub const IOCTL_VOLUME_IS_PARTITION: u32 = 5636136u32; +pub const IOCTL_VOLUME_LOGICAL_TO_PHYSICAL: u32 = 5636128u32; +pub const IOCTL_VOLUME_OFFLINE: u32 = 5685260u32; +pub const IOCTL_VOLUME_ONLINE: u32 = 5685256u32; +pub const IOCTL_VOLUME_PHYSICAL_TO_LOGICAL: u32 = 5636132u32; +pub const IOCTL_VOLUME_POST_ONLINE: u32 = 5685348u32; +pub const IOCTL_VOLUME_PREPARE_FOR_CRITICAL_IO: u32 = 5685324u32; +pub const IOCTL_VOLUME_PREPARE_FOR_SHRINK: u32 = 5685340u32; +pub const IOCTL_VOLUME_QUERY_ALLOCATION_HINT: u32 = 5652562u32; +pub const IOCTL_VOLUME_QUERY_FAILOVER_SET: u32 = 5636120u32; +pub const IOCTL_VOLUME_QUERY_MINIMUM_SHRINK_SIZE: u32 = 5652568u32; +pub const IOCTL_VOLUME_QUERY_VOLUME_NUMBER: u32 = 5636124u32; +pub const IOCTL_VOLUME_READ_PLEX: u32 = 5652526u32; +pub const IOCTL_VOLUME_SET_GPT_ATTRIBUTES: u32 = 5636148u32; +pub const IOCTL_VOLUME_SUPPORTS_ONLINE_OFFLINE: u32 = 5636100u32; +pub const IOCTL_VOLUME_UPDATE_PROPERTIES: u32 = 5636180u32; +pub const IORING_CREATE_ADVISORY_FLAGS_NONE: IORING_CREATE_ADVISORY_FLAGS = 0i32; +pub const IORING_CREATE_REQUIRED_FLAGS_NONE: IORING_CREATE_REQUIRED_FLAGS = 0i32; +pub const IORING_FEATURE_FLAGS_NONE: IORING_FEATURE_FLAGS = 0i32; +pub const IORING_FEATURE_SET_COMPLETION_EVENT: IORING_FEATURE_FLAGS = 2i32; +pub const IORING_FEATURE_UM_EMULATION: IORING_FEATURE_FLAGS = 1i32; +pub const IORING_OP_CANCEL: IORING_OP_CODE = 4i32; +pub const IORING_OP_FLUSH: IORING_OP_CODE = 6i32; +pub const IORING_OP_NOP: IORING_OP_CODE = 0i32; +pub const IORING_OP_READ: IORING_OP_CODE = 1i32; +pub const IORING_OP_REGISTER_BUFFERS: IORING_OP_CODE = 3i32; +pub const IORING_OP_REGISTER_FILES: IORING_OP_CODE = 2i32; +pub const IORING_OP_WRITE: IORING_OP_CODE = 5i32; +pub const IORING_REF_RAW: IORING_REF_KIND = 0i32; +pub const IORING_REF_REGISTERED: IORING_REF_KIND = 1i32; +pub const IORING_VERSION_1: IORING_VERSION = 1i32; +pub const IORING_VERSION_2: IORING_VERSION = 2i32; +pub const IORING_VERSION_3: IORING_VERSION = 300i32; +pub const IORING_VERSION_INVALID: IORING_VERSION = 0i32; +pub const IOSQE_FLAGS_DRAIN_PRECEDING_OPS: IORING_SQE_FLAGS = 1i32; +pub const IOSQE_FLAGS_NONE: IORING_SQE_FLAGS = 0i32; +pub const IoPriorityHintLow: PRIORITY_HINT = 1i32; +pub const IoPriorityHintNormal: PRIORITY_HINT = 2i32; +pub const IoPriorityHintVeryLow: PRIORITY_HINT = 0i32; +pub const KTM_MARSHAL_BLOB_VERSION_MAJOR: u32 = 1u32; +pub const KTM_MARSHAL_BLOB_VERSION_MINOR: u32 = 1u32; +pub const LOCKFILE_EXCLUSIVE_LOCK: LOCK_FILE_FLAGS = 2u32; +pub const LOCKFILE_FAIL_IMMEDIATELY: LOCK_FILE_FLAGS = 1u32; +pub const LOG_POLICY_OVERWRITE: u32 = 1u32; +pub const LOG_POLICY_PERSIST: u32 = 2u32; +pub const LZERROR_BADINHANDLE: i32 = -1i32; +pub const LZERROR_BADOUTHANDLE: i32 = -2i32; +pub const LZERROR_BADVALUE: i32 = -7i32; +pub const LZERROR_GLOBALLOC: i32 = -5i32; +pub const LZERROR_GLOBLOCK: i32 = -6i32; +pub const LZERROR_READ: i32 = -3i32; +pub const LZERROR_UNKNOWNALG: i32 = -8i32; +pub const LZERROR_WRITE: i32 = -4i32; +pub const MAXIMUM_REPARSE_DATA_BUFFER_SIZE: u32 = 16384u32; +pub const MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH: u32 = 64u32; +pub const MAX_SID_SIZE: u32 = 256u32; +pub const MAX_TRANSACTION_DESCRIPTION_LENGTH: u32 = 64u32; +pub const MOVEFILE_COPY_ALLOWED: MOVE_FILE_FLAGS = 2u32; +pub const MOVEFILE_CREATE_HARDLINK: MOVE_FILE_FLAGS = 16u32; +pub const MOVEFILE_DELAY_UNTIL_REBOOT: MOVE_FILE_FLAGS = 4u32; +pub const MOVEFILE_FAIL_IF_NOT_TRACKABLE: MOVE_FILE_FLAGS = 32u32; +pub const MOVEFILE_REPLACE_EXISTING: MOVE_FILE_FLAGS = 1u32; +pub const MOVEFILE_WRITE_THROUGH: MOVE_FILE_FLAGS = 8u32; +pub const MaximumFileIdType: FILE_ID_TYPE = 3i32; +pub const MaximumFileInfoByHandleClass: FILE_INFO_BY_HANDLE_CLASS = 25i32; +pub const MaximumIoPriorityHintType: PRIORITY_HINT = 3i32; +pub const NTMSMLI_MAXAPPDESCR: u32 = 256u32; +pub const NTMSMLI_MAXIDSIZE: u32 = 256u32; +pub const NTMSMLI_MAXTYPE: u32 = 64u32; +pub const NTMS_ALLOCATE_ERROR_IF_UNAVAILABLE: NtmsAllocateOptions = 4i32; +pub const NTMS_ALLOCATE_FROMSCRATCH: NtmsAllocationPolicy = 1i32; +pub const NTMS_ALLOCATE_NEW: NtmsAllocateOptions = 1i32; +pub const NTMS_ALLOCATE_NEXT: NtmsAllocateOptions = 2i32; +pub const NTMS_APPLICATIONNAME_LENGTH: u32 = 64u32; +pub const NTMS_ASYNCOP_MOUNT: NtmsAsyncOperations = 1i32; +pub const NTMS_ASYNCSTATE_COMPLETE: NtmsAsyncStatus = 4i32; +pub const NTMS_ASYNCSTATE_INPROCESS: NtmsAsyncStatus = 3i32; +pub const NTMS_ASYNCSTATE_QUEUED: NtmsAsyncStatus = 0i32; +pub const NTMS_ASYNCSTATE_WAIT_OPERATOR: NtmsAsyncStatus = 2i32; +pub const NTMS_ASYNCSTATE_WAIT_RESOURCE: NtmsAsyncStatus = 1i32; +pub const NTMS_BARCODESTATE_OK: NtmsBarCodeState = 1i32; +pub const NTMS_BARCODESTATE_UNREADABLE: NtmsBarCodeState = 2i32; +pub const NTMS_BARCODE_LENGTH: u32 = 64u32; +pub const NTMS_CHANGER: NtmsObjectsTypes = 2i32; +pub const NTMS_CHANGER_TYPE: NtmsObjectsTypes = 3i32; +pub const NTMS_COMPUTER: NtmsObjectsTypes = 4i32; +pub const NTMS_COMPUTERNAME_LENGTH: u32 = 64u32; +pub const NTMS_CONTROL_ACCESS: NtmsAccessMask = 4i32; +pub const NTMS_CREATE_NEW: NtmsCreateOptions = 2i32; +pub const NTMS_DEALLOCATE_TOSCRATCH: NtmsDeallocationPolicy = 1i32; +pub const NTMS_DESCRIPTION_LENGTH: u32 = 127u32; +pub const NTMS_DEVICENAME_LENGTH: u32 = 64u32; +pub const NTMS_DISMOUNT_DEFERRED: NtmsDismountOptions = 1i32; +pub const NTMS_DISMOUNT_IMMEDIATE: NtmsDismountOptions = 2i32; +pub const NTMS_DOORSTATE_CLOSED: NtmsDoorState = 1i32; +pub const NTMS_DOORSTATE_OPEN: NtmsDoorState = 2i32; +pub const NTMS_DOORSTATE_UNKNOWN: NtmsDoorState = 0i32; +pub const NTMS_DRIVE: NtmsObjectsTypes = 5i32; +pub const NTMS_DRIVESTATE_BEING_CLEANED: NtmsDriveState = 6i32; +pub const NTMS_DRIVESTATE_DISMOUNTABLE: NtmsDriveState = 7i32; +pub const NTMS_DRIVESTATE_DISMOUNTED: NtmsDriveState = 0i32; +pub const NTMS_DRIVESTATE_LOADED: NtmsDriveState = 2i32; +pub const NTMS_DRIVESTATE_MOUNTED: NtmsDriveState = 1i32; +pub const NTMS_DRIVESTATE_UNLOADED: NtmsDriveState = 5i32; +pub const NTMS_DRIVE_TYPE: NtmsObjectsTypes = 6i32; +pub const NTMS_EJECT_ASK_USER: NtmsEjectOperation = 5i32; +pub const NTMS_EJECT_FORCE: NtmsEjectOperation = 3i32; +pub const NTMS_EJECT_IMMEDIATE: NtmsEjectOperation = 4i32; +pub const NTMS_EJECT_QUEUE: NtmsEjectOperation = 2i32; +pub const NTMS_EJECT_START: NtmsEjectOperation = 0i32; +pub const NTMS_EJECT_STOP: NtmsEjectOperation = 1i32; +pub const NTMS_ENUM_DEFAULT: NtmsEnumerateOption = 0i32; +pub const NTMS_ENUM_ROOTPOOL: NtmsEnumerateOption = 1i32; +pub const NTMS_ERROR_ON_DUPLICATE: NtmsCreateNtmsMediaOptions = 1i32; +pub const NTMS_EVENT_COMPLETE: NtmsNotificationOperations = 5i32; +pub const NTMS_EVENT_SIGNAL: NtmsNotificationOperations = 4i32; +pub const NTMS_I1_MESSAGE_LENGTH: u32 = 127u32; +pub const NTMS_IEDOOR: NtmsObjectsTypes = 7i32; +pub const NTMS_IEPORT: NtmsObjectsTypes = 8i32; +pub const NTMS_INITIALIZING: NtmsOperationalState = 10i32; +pub const NTMS_INJECT_RETRACT: NtmsInjectOperation = 2i32; +pub const NTMS_INJECT_START: NtmsInjectOperation = 0i32; +pub const NTMS_INJECT_STARTMANY: NtmsInjectOperation = 3i32; +pub const NTMS_INJECT_STOP: NtmsInjectOperation = 1i32; +pub const NTMS_INVENTORY_DEFAULT: NtmsInventoryMethod = 3i32; +pub const NTMS_INVENTORY_FAST: NtmsInventoryMethod = 1i32; +pub const NTMS_INVENTORY_MAX: NtmsInventoryMethod = 6i32; +pub const NTMS_INVENTORY_NONE: NtmsInventoryMethod = 0i32; +pub const NTMS_INVENTORY_OMID: NtmsInventoryMethod = 2i32; +pub const NTMS_INVENTORY_SLOT: NtmsInventoryMethod = 4i32; +pub const NTMS_INVENTORY_STOP: NtmsInventoryMethod = 5i32; +pub const NTMS_LIBRARY: NtmsObjectsTypes = 9i32; +pub const NTMS_LIBRARYFLAG_AUTODETECTCHANGE: NtmsLibraryFlags = 4i32; +pub const NTMS_LIBRARYFLAG_CLEANERPRESENT: NtmsLibraryFlags = 2i32; +pub const NTMS_LIBRARYFLAG_FIXEDOFFLINE: NtmsLibraryFlags = 1i32; +pub const NTMS_LIBRARYFLAG_IGNORECLEANERUSESREMAINING: NtmsLibraryFlags = 8i32; +pub const NTMS_LIBRARYFLAG_RECOGNIZECLEANERBARCODE: NtmsLibraryFlags = 16i32; +pub const NTMS_LIBRARYTYPE_OFFLINE: NtmsLibraryType = 1i32; +pub const NTMS_LIBRARYTYPE_ONLINE: NtmsLibraryType = 2i32; +pub const NTMS_LIBRARYTYPE_STANDALONE: NtmsLibraryType = 3i32; +pub const NTMS_LIBRARYTYPE_UNKNOWN: NtmsLibraryType = 0i32; +pub const NTMS_LIBREQFLAGS_NOAUTOPURGE: NtmsLibRequestFlags = 1i32; +pub const NTMS_LIBREQFLAGS_NOFAILEDPURGE: NtmsLibRequestFlags = 2i32; +pub const NTMS_LIBREQUEST: NtmsObjectsTypes = 10i32; +pub const NTMS_LM_CANCELLED: NtmsLmState = 7i32; +pub const NTMS_LM_CLASSIFY: NtmsLmOperation = 19i32; +pub const NTMS_LM_CLEANDRIVE: NtmsLmOperation = 15i32; +pub const NTMS_LM_DEFERRED: NtmsLmState = 6i32; +pub const NTMS_LM_DEFFERED: NtmsLmState = 6i32; +pub const NTMS_LM_DISABLECHANGER: NtmsLmOperation = 1i32; +pub const NTMS_LM_DISABLEDRIVE: NtmsLmOperation = 3i32; +pub const NTMS_LM_DISABLELIBRARY: NtmsLmOperation = 1i32; +pub const NTMS_LM_DISABLEMEDIA: NtmsLmOperation = 5i32; +pub const NTMS_LM_DISMOUNT: NtmsLmOperation = 16i32; +pub const NTMS_LM_DOORACCESS: NtmsLmOperation = 9i32; +pub const NTMS_LM_EJECT: NtmsLmOperation = 10i32; +pub const NTMS_LM_EJECTCLEANER: NtmsLmOperation = 11i32; +pub const NTMS_LM_ENABLECHANGER: NtmsLmOperation = 2i32; +pub const NTMS_LM_ENABLEDRIVE: NtmsLmOperation = 4i32; +pub const NTMS_LM_ENABLELIBRARY: NtmsLmOperation = 2i32; +pub const NTMS_LM_ENABLEMEDIA: NtmsLmOperation = 6i32; +pub const NTMS_LM_FAILED: NtmsLmState = 3i32; +pub const NTMS_LM_INJECT: NtmsLmOperation = 12i32; +pub const NTMS_LM_INJECTCLEANER: NtmsLmOperation = 13i32; +pub const NTMS_LM_INPROCESS: NtmsLmState = 1i32; +pub const NTMS_LM_INVALID: NtmsLmState = 4i32; +pub const NTMS_LM_INVENTORY: NtmsLmOperation = 8i32; +pub const NTMS_LM_MAXWORKITEM: NtmsLmOperation = 22i32; +pub const NTMS_LM_MOUNT: NtmsLmOperation = 17i32; +pub const NTMS_LM_PASSED: NtmsLmState = 2i32; +pub const NTMS_LM_PROCESSOMID: NtmsLmOperation = 14i32; +pub const NTMS_LM_QUEUED: NtmsLmState = 0i32; +pub const NTMS_LM_RELEASECLEANER: NtmsLmOperation = 21i32; +pub const NTMS_LM_REMOVE: NtmsLmOperation = 0i32; +pub const NTMS_LM_RESERVECLEANER: NtmsLmOperation = 20i32; +pub const NTMS_LM_STOPPED: NtmsLmState = 8i32; +pub const NTMS_LM_UPDATEOMID: NtmsLmOperation = 7i32; +pub const NTMS_LM_WAITING: NtmsLmState = 5i32; +pub const NTMS_LM_WRITESCRATCH: NtmsLmOperation = 18i32; +pub const NTMS_LOGICAL_MEDIA: NtmsObjectsTypes = 11i32; +pub const NTMS_MAXATTR_LENGTH: u32 = 65536u32; +pub const NTMS_MAXATTR_NAMELEN: u32 = 32u32; +pub const NTMS_MEDIARW_READONLY: NtmsReadWriteCharacteristics = 3i32; +pub const NTMS_MEDIARW_REWRITABLE: NtmsReadWriteCharacteristics = 1i32; +pub const NTMS_MEDIARW_UNKNOWN: NtmsReadWriteCharacteristics = 0i32; +pub const NTMS_MEDIARW_WRITEONCE: NtmsReadWriteCharacteristics = 2i32; +pub const NTMS_MEDIASTATE_IDLE: NtmsMediaState = 0i32; +pub const NTMS_MEDIASTATE_INUSE: NtmsMediaState = 1i32; +pub const NTMS_MEDIASTATE_LOADED: NtmsMediaState = 3i32; +pub const NTMS_MEDIASTATE_MOUNTED: NtmsMediaState = 2i32; +pub const NTMS_MEDIASTATE_OPERROR: NtmsMediaState = 5i32; +pub const NTMS_MEDIASTATE_OPREQ: NtmsMediaState = 6i32; +pub const NTMS_MEDIASTATE_UNLOADED: NtmsMediaState = 4i32; +pub const NTMS_MEDIA_POOL: NtmsObjectsTypes = 12i32; +pub const NTMS_MEDIA_TYPE: NtmsObjectsTypes = 13i32; +pub const NTMS_MESSAGE_LENGTH: u32 = 256u32; +pub const NTMS_MODIFY_ACCESS: NtmsAccessMask = 2i32; +pub const NTMS_MOUNT_ERROR_IF_OFFLINE: NtmsMountOptions = 8i32; +pub const NTMS_MOUNT_ERROR_IF_UNAVAILABLE: NtmsMountOptions = 4i32; +pub const NTMS_MOUNT_ERROR_NOT_AVAILABLE: NtmsMountOptions = 4i32; +pub const NTMS_MOUNT_ERROR_OFFLINE: NtmsMountOptions = 8i32; +pub const NTMS_MOUNT_NOWAIT: NtmsMountOptions = 32i32; +pub const NTMS_MOUNT_READ: NtmsMountOptions = 1i32; +pub const NTMS_MOUNT_SPECIFIC_DRIVE: NtmsMountOptions = 16i32; +pub const NTMS_MOUNT_WRITE: NtmsMountOptions = 2i32; +pub const NTMS_NEEDS_SERVICE: NtmsOperationalState = 20i32; +pub const NTMS_NOT_PRESENT: NtmsOperationalState = 21i32; +pub const NTMS_NUMBER_OF_OBJECT_TYPES: NtmsObjectsTypes = 19i32; +pub const NTMS_OBJECT: NtmsObjectsTypes = 1i32; +pub const NTMS_OBJECTNAME_LENGTH: u32 = 64u32; +pub const NTMS_OBJ_DELETE: NtmsNotificationOperations = 3i32; +pub const NTMS_OBJ_INSERT: NtmsNotificationOperations = 2i32; +pub const NTMS_OBJ_UPDATE: NtmsNotificationOperations = 1i32; +pub const NTMS_OMIDLABELID_LENGTH: u32 = 255u32; +pub const NTMS_OMIDLABELINFO_LENGTH: u32 = 256u32; +pub const NTMS_OMIDLABELTYPE_LENGTH: u32 = 64u32; +pub const NTMS_OMID_TYPE_FILESYSTEM_INFO: NTMS_OMID_TYPE = 2u32; +pub const NTMS_OMID_TYPE_RAW_LABEL: NTMS_OMID_TYPE = 1u32; +pub const NTMS_OPEN_ALWAYS: NtmsCreateOptions = 3i32; +pub const NTMS_OPEN_EXISTING: NtmsCreateOptions = 1i32; +pub const NTMS_OPREQFLAGS_NOALERTS: NtmsOpRequestFlags = 16i32; +pub const NTMS_OPREQFLAGS_NOAUTOPURGE: NtmsOpRequestFlags = 1i32; +pub const NTMS_OPREQFLAGS_NOFAILEDPURGE: NtmsOpRequestFlags = 2i32; +pub const NTMS_OPREQFLAGS_NOTRAYICON: NtmsOpRequestFlags = 32i32; +pub const NTMS_OPREQUEST: NtmsObjectsTypes = 17i32; +pub const NTMS_OPREQ_CLEANER: NtmsOpreqCommand = 2i32; +pub const NTMS_OPREQ_DEVICESERVICE: NtmsOpreqCommand = 3i32; +pub const NTMS_OPREQ_MESSAGE: NtmsOpreqCommand = 5i32; +pub const NTMS_OPREQ_MOVEMEDIA: NtmsOpreqCommand = 4i32; +pub const NTMS_OPREQ_NEWMEDIA: NtmsOpreqCommand = 1i32; +pub const NTMS_OPREQ_UNKNOWN: NtmsOpreqCommand = 0i32; +pub const NTMS_OPSTATE_ACTIVE: NtmsOpreqState = 2i32; +pub const NTMS_OPSTATE_COMPLETE: NtmsOpreqState = 5i32; +pub const NTMS_OPSTATE_INPROGRESS: NtmsOpreqState = 3i32; +pub const NTMS_OPSTATE_REFUSED: NtmsOpreqState = 4i32; +pub const NTMS_OPSTATE_SUBMITTED: NtmsOpreqState = 1i32; +pub const NTMS_OPSTATE_UNKNOWN: NtmsOpreqState = 0i32; +pub const NTMS_PARTITION: NtmsObjectsTypes = 14i32; +pub const NTMS_PARTSTATE_ALLOCATED: NtmsPartitionState = 5i32; +pub const NTMS_PARTSTATE_AVAILABLE: NtmsPartitionState = 4i32; +pub const NTMS_PARTSTATE_COMPLETE: NtmsPartitionState = 6i32; +pub const NTMS_PARTSTATE_DECOMMISSIONED: NtmsPartitionState = 3i32; +pub const NTMS_PARTSTATE_FOREIGN: NtmsPartitionState = 7i32; +pub const NTMS_PARTSTATE_IMPORT: NtmsPartitionState = 8i32; +pub const NTMS_PARTSTATE_INCOMPATIBLE: NtmsPartitionState = 2i32; +pub const NTMS_PARTSTATE_RESERVED: NtmsPartitionState = 9i32; +pub const NTMS_PARTSTATE_UNKNOWN: NtmsPartitionState = 0i32; +pub const NTMS_PARTSTATE_UNPREPARED: NtmsPartitionState = 1i32; +pub const NTMS_PHYSICAL_MEDIA: NtmsObjectsTypes = 15i32; +pub const NTMS_POOLHIERARCHY_LENGTH: u32 = 512u32; +pub const NTMS_POOLPOLICY_KEEPOFFLINEIMPORT: NtmsMediaPoolPolicy = 2i32; +pub const NTMS_POOLPOLICY_PURGEOFFLINESCRATCH: NtmsMediaPoolPolicy = 1i32; +pub const NTMS_POOLTYPE_APPLICATION: NtmsPoolType = 1000i32; +pub const NTMS_POOLTYPE_FOREIGN: NtmsPoolType = 2i32; +pub const NTMS_POOLTYPE_IMPORT: NtmsPoolType = 3i32; +pub const NTMS_POOLTYPE_SCRATCH: NtmsPoolType = 1i32; +pub const NTMS_POOLTYPE_UNKNOWN: NtmsPoolType = 0i32; +pub const NTMS_PORTCONTENT_EMPTY: NtmsPortContent = 2i32; +pub const NTMS_PORTCONTENT_FULL: NtmsPortContent = 1i32; +pub const NTMS_PORTCONTENT_UNKNOWN: NtmsPortContent = 0i32; +pub const NTMS_PORTPOSITION_EXTENDED: NtmsPortPosition = 1i32; +pub const NTMS_PORTPOSITION_RETRACTED: NtmsPortPosition = 2i32; +pub const NTMS_PORTPOSITION_UNKNOWN: NtmsPortPosition = 0i32; +pub const NTMS_PRIORITY_DEFAULT: NtmsMountPriority = 0i32; +pub const NTMS_PRIORITY_HIGH: NtmsMountPriority = 7i32; +pub const NTMS_PRIORITY_HIGHEST: NtmsMountPriority = 15i32; +pub const NTMS_PRIORITY_LOW: NtmsMountPriority = -7i32; +pub const NTMS_PRIORITY_LOWEST: NtmsMountPriority = -15i32; +pub const NTMS_PRIORITY_NORMAL: NtmsMountPriority = 0i32; +pub const NTMS_PRODUCTNAME_LENGTH: u32 = 128u32; +pub const NTMS_READY: NtmsOperationalState = 0i32; +pub const NTMS_REVISION_LENGTH: u32 = 32u32; +pub const NTMS_SEQUENCE_LENGTH: u32 = 32u32; +pub const NTMS_SERIALNUMBER_LENGTH: u32 = 32u32; +pub const NTMS_SESSION_QUERYEXPEDITE: NtmsSessionOptions = 1i32; +pub const NTMS_SLOTSTATE_EMPTY: NtmsSlotState = 2i32; +pub const NTMS_SLOTSTATE_FULL: NtmsSlotState = 1i32; +pub const NTMS_SLOTSTATE_NEEDSINVENTORY: NtmsSlotState = 4i32; +pub const NTMS_SLOTSTATE_NOTPRESENT: NtmsSlotState = 3i32; +pub const NTMS_SLOTSTATE_UNKNOWN: NtmsSlotState = 0i32; +pub const NTMS_STORAGESLOT: NtmsObjectsTypes = 16i32; +pub const NTMS_UIDEST_ADD: NtmsUIOperations = 1i32; +pub const NTMS_UIDEST_DELETE: NtmsUIOperations = 2i32; +pub const NTMS_UIDEST_DELETEALL: NtmsUIOperations = 3i32; +pub const NTMS_UIOPERATION_MAX: NtmsUIOperations = 4i32; +pub const NTMS_UITYPE_ERR: NtmsUITypes = 3i32; +pub const NTMS_UITYPE_INFO: NtmsUITypes = 1i32; +pub const NTMS_UITYPE_INVALID: NtmsUITypes = 0i32; +pub const NTMS_UITYPE_MAX: NtmsUITypes = 4i32; +pub const NTMS_UITYPE_REQ: NtmsUITypes = 2i32; +pub const NTMS_UI_DESTINATION: NtmsObjectsTypes = 18i32; +pub const NTMS_UNKNOWN: NtmsObjectsTypes = 0i32; +pub const NTMS_UNKNOWN_DRIVE: NtmsDriveType = 0i32; +pub const NTMS_USERNAME_LENGTH: u32 = 64u32; +pub const NTMS_USE_ACCESS: NtmsAccessMask = 1i32; +pub const NTMS_VENDORNAME_LENGTH: u32 = 128u32; +pub const OF_CANCEL: LZOPENFILE_STYLE = 2048u16; +pub const OF_CREATE: LZOPENFILE_STYLE = 4096u16; +pub const OF_DELETE: LZOPENFILE_STYLE = 512u16; +pub const OF_EXIST: LZOPENFILE_STYLE = 16384u16; +pub const OF_PARSE: LZOPENFILE_STYLE = 256u16; +pub const OF_PROMPT: LZOPENFILE_STYLE = 8192u16; +pub const OF_READ: LZOPENFILE_STYLE = 0u16; +pub const OF_READWRITE: LZOPENFILE_STYLE = 2u16; +pub const OF_REOPEN: LZOPENFILE_STYLE = 32768u16; +pub const OF_SHARE_COMPAT: LZOPENFILE_STYLE = 0u16; +pub const OF_SHARE_DENY_NONE: LZOPENFILE_STYLE = 64u16; +pub const OF_SHARE_DENY_READ: LZOPENFILE_STYLE = 48u16; +pub const OF_SHARE_DENY_WRITE: LZOPENFILE_STYLE = 32u16; +pub const OF_SHARE_EXCLUSIVE: LZOPENFILE_STYLE = 16u16; +pub const OF_VERIFY: LZOPENFILE_STYLE = 1024u16; +pub const OF_WRITE: LZOPENFILE_STYLE = 1u16; +pub const OPEN_ALWAYS: FILE_CREATION_DISPOSITION = 4u32; +pub const OPEN_EXISTING: FILE_CREATION_DISPOSITION = 3u32; +pub const ObjectIdType: FILE_ID_TYPE = 1i32; +pub const PARTITION_BASIC_DATA_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xebd0a0a2_b9e5_4433_87c0_68b6b72699c7); +pub const PARTITION_BSP_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57434f53_4df9_45b9_8e9e_2370f006457c); +pub const PARTITION_CLUSTER_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdb97dba9_0840_4bae_97f0_ffb9a327c7e1); +pub const PARTITION_DPP_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57434f53_94cb_43f0_a533_d73c10cfa57d); +pub const PARTITION_ENTRY_UNUSED_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000000); +pub const PARTITION_LDM_DATA_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaf9b60a0_1431_4f62_bc68_3311714a69ad); +pub const PARTITION_LDM_METADATA_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5808c8aa_7e8f_42e0_85d2_e1e90434cfb3); +pub const PARTITION_LEGACY_BL_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x424ca0e2_7cb2_4fb9_8143_c52a99398bc6); +pub const PARTITION_LEGACY_BL_GUID_BACKUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x424c3e6c_d79f_49cb_935d_36d71467a288); +pub const PARTITION_MAIN_OS_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57434f53_8f45_405e_8a23_186d8a4330d3); +pub const PARTITION_MSFT_RECOVERY_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xde94bba4_06d1_4d40_a16a_bfd50179d6ac); +pub const PARTITION_MSFT_RESERVED_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe3c9e316_0b5c_4db8_817d_f92df00215ae); +pub const PARTITION_MSFT_SNAPSHOT_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcaddebf1_4400_4de8_b103_12117dcf3ccf); +pub const PARTITION_OS_DATA_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57434f53_23f2_44d5_a830_67bbdaa609f9); +pub const PARTITION_PATCH_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8967a686_96aa_6aa8_9589_a84256541090); +pub const PARTITION_PRE_INSTALLED_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57434f53_7fe0_4196_9b42_427b51643484); +pub const PARTITION_SBL_CACHE_HDD_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03aaa829_ebfc_4e7e_aac9_c4d76c63b24b); +pub const PARTITION_SBL_CACHE_SSD_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeeff8352_dd2a_44db_ae83_bee1cf7481dc); +pub const PARTITION_SBL_CACHE_SSD_RESERVED_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdcc0c7c1_55ad_4f17_9d43_4bc776e0117e); +pub const PARTITION_SERVICING_FILES_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57434f53_432e_4014_ae4c_8deaa9c0006a); +pub const PARTITION_SERVICING_METADATA_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57434f53_c691_4a05_bb4e_703dafd229ce); +pub const PARTITION_SERVICING_RESERVE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57434f53_4b81_460b_a319_ffb6fe136d14); +pub const PARTITION_SERVICING_STAGING_ROOT_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57434f53_e84d_4e84_aaf3_ecbbbd04b9df); +pub const PARTITION_SPACES_DATA_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe7addcb4_dc34_4539_9a76_ebbd07be6f7e); +pub const PARTITION_SPACES_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe75caf8f_f680_4cee_afa3_b001e56efc2d); +pub const PARTITION_SYSTEM_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc12a7328_f81f_11d2_ba4b_00a0c93ec93b); +pub const PARTITION_WINDOWS_SYSTEM_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57434f53_e3e3_4631_a5c5_26d2243873aa); +pub const PERM_FILE_CREATE: FILE_INFO_FLAGS_PERMISSIONS = 4u32; +pub const PERM_FILE_READ: FILE_INFO_FLAGS_PERMISSIONS = 1u32; +pub const PERM_FILE_WRITE: FILE_INFO_FLAGS_PERMISSIONS = 2u32; +pub const PIPE_ACCESS_DUPLEX: FILE_FLAGS_AND_ATTRIBUTES = 3u32; +pub const PIPE_ACCESS_INBOUND: FILE_FLAGS_AND_ATTRIBUTES = 1u32; +pub const PIPE_ACCESS_OUTBOUND: FILE_FLAGS_AND_ATTRIBUTES = 2u32; +pub const QUIC: SERVER_CERTIFICATE_TYPE = 0i32; +pub const READ_CONTROL: FILE_ACCESS_RIGHTS = 131072u32; +pub const REPLACEFILE_IGNORE_ACL_ERRORS: REPLACE_FILE_FLAGS = 4u32; +pub const REPLACEFILE_IGNORE_MERGE_ERRORS: REPLACE_FILE_FLAGS = 2u32; +pub const REPLACEFILE_WRITE_THROUGH: REPLACE_FILE_FLAGS = 1u32; +pub const RESOURCE_MANAGER_COMMUNICATION: u32 = 2u32; +pub const RESOURCE_MANAGER_MAXIMUM_OPTION: u32 = 3u32; +pub const RESOURCE_MANAGER_OBJECT_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\ResourceManager\\"); +pub const RESOURCE_MANAGER_VOLATILE: u32 = 1u32; +pub const ReadDirectoryNotifyExtendedInformation: READ_DIRECTORY_NOTIFY_INFORMATION_CLASS = 2i32; +pub const ReadDirectoryNotifyFullInformation: READ_DIRECTORY_NOTIFY_INFORMATION_CLASS = 3i32; +pub const ReadDirectoryNotifyInformation: READ_DIRECTORY_NOTIFY_INFORMATION_CLASS = 1i32; +pub const ReadDirectoryNotifyMaximumInformation: READ_DIRECTORY_NOTIFY_INFORMATION_CLASS = 4i32; +pub const SECURITY_ANONYMOUS: FILE_FLAGS_AND_ATTRIBUTES = 0u32; +pub const SECURITY_CONTEXT_TRACKING: FILE_FLAGS_AND_ATTRIBUTES = 262144u32; +pub const SECURITY_DELEGATION: FILE_FLAGS_AND_ATTRIBUTES = 196608u32; +pub const SECURITY_EFFECTIVE_ONLY: FILE_FLAGS_AND_ATTRIBUTES = 524288u32; +pub const SECURITY_IDENTIFICATION: FILE_FLAGS_AND_ATTRIBUTES = 65536u32; +pub const SECURITY_IMPERSONATION: FILE_FLAGS_AND_ATTRIBUTES = 131072u32; +pub const SECURITY_SQOS_PRESENT: FILE_FLAGS_AND_ATTRIBUTES = 1048576u32; +pub const SECURITY_VALID_SQOS_FLAGS: FILE_FLAGS_AND_ATTRIBUTES = 2031616u32; +pub const SESI1_NUM_ELEMENTS: u32 = 8u32; +pub const SESI2_NUM_ELEMENTS: u32 = 9u32; +pub const SESS_GUEST: SESSION_INFO_USER_FLAGS = 1u32; +pub const SESS_NOENCRYPTION: SESSION_INFO_USER_FLAGS = 2u32; +pub const SET_TAPE_DRIVE_INFORMATION: TAPE_INFORMATION_TYPE = 1u32; +pub const SET_TAPE_MEDIA_INFORMATION: TAPE_INFORMATION_TYPE = 0u32; +pub const SHARE_CURRENT_USES_PARMNUM: u32 = 7u32; +pub const SHARE_FILE_SD_PARMNUM: u32 = 501u32; +pub const SHARE_MAX_USES_PARMNUM: u32 = 6u32; +pub const SHARE_NETNAME_PARMNUM: u32 = 1u32; +pub const SHARE_PASSWD_PARMNUM: u32 = 9u32; +pub const SHARE_PATH_PARMNUM: u32 = 8u32; +pub const SHARE_PERMISSIONS_PARMNUM: u32 = 5u32; +pub const SHARE_QOS_POLICY_PARMNUM: u32 = 504u32; +pub const SHARE_REMARK_PARMNUM: u32 = 4u32; +pub const SHARE_SERVER_PARMNUM: u32 = 503u32; +pub const SHARE_TYPE_PARMNUM: u32 = 3u32; +pub const SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM: u32 = 2048u32; +pub const SHI1005_FLAGS_ALLOW_NAMESPACE_CACHING: u32 = 1024u32; +pub const SHI1005_FLAGS_CLUSTER_MANAGED: u32 = 524288u32; +pub const SHI1005_FLAGS_COMPRESS_DATA: u32 = 1048576u32; +pub const SHI1005_FLAGS_DFS: u32 = 1u32; +pub const SHI1005_FLAGS_DFS_ROOT: u32 = 2u32; +pub const SHI1005_FLAGS_DISABLE_CLIENT_BUFFERING: u32 = 131072u32; +pub const SHI1005_FLAGS_DISABLE_DIRECTORY_HANDLE_LEASING: u32 = 4194304u32; +pub const SHI1005_FLAGS_ENABLE_CA: u32 = 16384u32; +pub const SHI1005_FLAGS_ENABLE_HASH: u32 = 8192u32; +pub const SHI1005_FLAGS_ENCRYPT_DATA: u32 = 32768u32; +pub const SHI1005_FLAGS_FORCE_LEVELII_OPLOCK: u32 = 4096u32; +pub const SHI1005_FLAGS_FORCE_SHARED_DELETE: u32 = 512u32; +pub const SHI1005_FLAGS_IDENTITY_REMOTING: u32 = 262144u32; +pub const SHI1005_FLAGS_ISOLATED_TRANSPORT: u32 = 2097152u32; +pub const SHI1005_FLAGS_RESERVED: u32 = 65536u32; +pub const SHI1005_FLAGS_RESTRICT_EXCLUSIVE_OPENS: u32 = 256u32; +pub const SHI1_NUM_ELEMENTS: u32 = 4u32; +pub const SHI2_NUM_ELEMENTS: u32 = 10u32; +pub const SHI_USES_UNLIMITED: u32 = 4294967295u32; +pub const SPECIFIC_RIGHTS_ALL: FILE_ACCESS_RIGHTS = 65535u32; +pub const STANDARD_RIGHTS_ALL: FILE_ACCESS_RIGHTS = 2031616u32; +pub const STANDARD_RIGHTS_EXECUTE: FILE_ACCESS_RIGHTS = 131072u32; +pub const STANDARD_RIGHTS_READ: FILE_ACCESS_RIGHTS = 131072u32; +pub const STANDARD_RIGHTS_REQUIRED: FILE_ACCESS_RIGHTS = 983040u32; +pub const STANDARD_RIGHTS_WRITE: FILE_ACCESS_RIGHTS = 131072u32; +pub const STATSOPT_CLR: u32 = 1u32; +pub const STYPE_DEVICE: SHARE_TYPE = 2u32; +pub const STYPE_DISKTREE: SHARE_TYPE = 0u32; +pub const STYPE_IPC: SHARE_TYPE = 3u32; +pub const STYPE_MASK: SHARE_TYPE = 255u32; +pub const STYPE_PRINTQ: SHARE_TYPE = 1u32; +pub const STYPE_RESERVED1: u32 = 16777216u32; +pub const STYPE_RESERVED2: u32 = 33554432u32; +pub const STYPE_RESERVED3: u32 = 67108864u32; +pub const STYPE_RESERVED4: u32 = 134217728u32; +pub const STYPE_RESERVED5: u32 = 1048576u32; +pub const STYPE_RESERVED_ALL: u32 = 1073741568u32; +pub const STYPE_SPECIAL: SHARE_TYPE = 2147483648u32; +pub const STYPE_TEMPORARY: SHARE_TYPE = 1073741824u32; +pub const SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE: SYMBOLIC_LINK_FLAGS = 2u32; +pub const SYMBOLIC_LINK_FLAG_DIRECTORY: SYMBOLIC_LINK_FLAGS = 1u32; +pub const SYNCHRONIZE: FILE_ACCESS_RIGHTS = 1048576u32; +pub const TAPE_ABSOLUTE_BLOCK: TAPE_POSITION_METHOD = 1u32; +pub const TAPE_ABSOLUTE_POSITION: TAPE_POSITION_TYPE = 0u32; +pub const TAPE_ERASE_LONG: ERASE_TAPE_TYPE = 1u32; +pub const TAPE_ERASE_SHORT: ERASE_TAPE_TYPE = 0u32; +pub const TAPE_FILEMARKS: TAPEMARK_TYPE = 1u32; +pub const TAPE_FIXED_PARTITIONS: CREATE_TAPE_PARTITION_METHOD = 0u32; +pub const TAPE_FORMAT: PREPARE_TAPE_OPERATION = 5u32; +pub const TAPE_INITIATOR_PARTITIONS: CREATE_TAPE_PARTITION_METHOD = 2u32; +pub const TAPE_LOAD: PREPARE_TAPE_OPERATION = 0u32; +pub const TAPE_LOCK: PREPARE_TAPE_OPERATION = 3u32; +pub const TAPE_LOGICAL_BLOCK: TAPE_POSITION_METHOD = 2u32; +pub const TAPE_LOGICAL_POSITION: TAPE_POSITION_TYPE = 1u32; +pub const TAPE_LONG_FILEMARKS: TAPEMARK_TYPE = 3u32; +pub const TAPE_REWIND: TAPE_POSITION_METHOD = 0u32; +pub const TAPE_SELECT_PARTITIONS: CREATE_TAPE_PARTITION_METHOD = 1u32; +pub const TAPE_SETMARKS: TAPEMARK_TYPE = 0u32; +pub const TAPE_SHORT_FILEMARKS: TAPEMARK_TYPE = 2u32; +pub const TAPE_SPACE_END_OF_DATA: TAPE_POSITION_METHOD = 4u32; +pub const TAPE_SPACE_FILEMARKS: TAPE_POSITION_METHOD = 6u32; +pub const TAPE_SPACE_RELATIVE_BLOCKS: TAPE_POSITION_METHOD = 5u32; +pub const TAPE_SPACE_SEQUENTIAL_FMKS: TAPE_POSITION_METHOD = 7u32; +pub const TAPE_SPACE_SEQUENTIAL_SMKS: TAPE_POSITION_METHOD = 9u32; +pub const TAPE_SPACE_SETMARKS: TAPE_POSITION_METHOD = 8u32; +pub const TAPE_TENSION: PREPARE_TAPE_OPERATION = 2u32; +pub const TAPE_UNLOAD: PREPARE_TAPE_OPERATION = 1u32; +pub const TAPE_UNLOCK: PREPARE_TAPE_OPERATION = 4u32; +pub const TRANSACTIONMANAGER_OBJECT_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\TransactionManager\\"); +pub const TRANSACTION_DO_NOT_PROMOTE: u32 = 1u32; +pub const TRANSACTION_MANAGER_COMMIT_DEFAULT: u32 = 0u32; +pub const TRANSACTION_MANAGER_COMMIT_LOWEST: u32 = 8u32; +pub const TRANSACTION_MANAGER_COMMIT_SYSTEM_HIVES: u32 = 4u32; +pub const TRANSACTION_MANAGER_COMMIT_SYSTEM_VOLUME: u32 = 2u32; +pub const TRANSACTION_MANAGER_CORRUPT_FOR_PROGRESS: u32 = 32u32; +pub const TRANSACTION_MANAGER_CORRUPT_FOR_RECOVERY: u32 = 16u32; +pub const TRANSACTION_MANAGER_MAXIMUM_OPTION: u32 = 63u32; +pub const TRANSACTION_MANAGER_VOLATILE: u32 = 1u32; +pub const TRANSACTION_MAXIMUM_OPTION: u32 = 1u32; +pub const TRANSACTION_NOTIFICATION_TM_ONLINE_FLAG_IS_CLUSTERED: u32 = 1u32; +pub const TRANSACTION_NOTIFY_COMMIT: u32 = 4u32; +pub const TRANSACTION_NOTIFY_COMMIT_COMPLETE: u32 = 64u32; +pub const TRANSACTION_NOTIFY_COMMIT_FINALIZE: u32 = 1073741824u32; +pub const TRANSACTION_NOTIFY_COMMIT_REQUEST: u32 = 67108864u32; +pub const TRANSACTION_NOTIFY_DELEGATE_COMMIT: u32 = 1024u32; +pub const TRANSACTION_NOTIFY_ENLIST_MASK: u32 = 262144u32; +pub const TRANSACTION_NOTIFY_ENLIST_PREPREPARE: u32 = 4096u32; +pub const TRANSACTION_NOTIFY_INDOUBT: u32 = 16384u32; +pub const TRANSACTION_NOTIFY_LAST_RECOVER: u32 = 8192u32; +pub const TRANSACTION_NOTIFY_MARSHAL: u32 = 131072u32; +pub const TRANSACTION_NOTIFY_MASK: u32 = 1073741823u32; +pub const TRANSACTION_NOTIFY_PREPARE: u32 = 2u32; +pub const TRANSACTION_NOTIFY_PREPARE_COMPLETE: u32 = 32u32; +pub const TRANSACTION_NOTIFY_PREPREPARE: u32 = 1u32; +pub const TRANSACTION_NOTIFY_PREPREPARE_COMPLETE: u32 = 16u32; +pub const TRANSACTION_NOTIFY_PROMOTE: u32 = 134217728u32; +pub const TRANSACTION_NOTIFY_PROMOTE_NEW: u32 = 268435456u32; +pub const TRANSACTION_NOTIFY_PROPAGATE_PULL: u32 = 32768u32; +pub const TRANSACTION_NOTIFY_PROPAGATE_PUSH: u32 = 65536u32; +pub const TRANSACTION_NOTIFY_RECOVER: u32 = 256u32; +pub const TRANSACTION_NOTIFY_RECOVER_QUERY: u32 = 2048u32; +pub const TRANSACTION_NOTIFY_REQUEST_OUTCOME: u32 = 536870912u32; +pub const TRANSACTION_NOTIFY_RM_DISCONNECTED: u32 = 16777216u32; +pub const TRANSACTION_NOTIFY_ROLLBACK: u32 = 8u32; +pub const TRANSACTION_NOTIFY_ROLLBACK_COMPLETE: u32 = 128u32; +pub const TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT: u32 = 512u32; +pub const TRANSACTION_NOTIFY_TM_ONLINE: u32 = 33554432u32; +pub const TRANSACTION_OBJECT_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Transaction\\"); +pub const TRUNCATE_EXISTING: FILE_CREATION_DISPOSITION = 5u32; +pub const TXFS_MINIVERSION_COMMITTED_VIEW: TXFS_MINIVERSION = 0u32; +pub const TXFS_MINIVERSION_DEFAULT_VIEW: TXFS_MINIVERSION = 65534u32; +pub const TXFS_MINIVERSION_DIRTY_VIEW: TXFS_MINIVERSION = 65535u32; +pub const TXF_LOG_RECORD_GENERIC_TYPE_ABORT: u32 = 2u32; +pub const TXF_LOG_RECORD_GENERIC_TYPE_COMMIT: u32 = 1u32; +pub const TXF_LOG_RECORD_GENERIC_TYPE_DATA: u32 = 8u32; +pub const TXF_LOG_RECORD_GENERIC_TYPE_PREPARE: u32 = 4u32; +pub const TXF_LOG_RECORD_TYPE_AFFECTED_FILE: TXF_LOG_RECORD_TYPE = 4u16; +pub const TXF_LOG_RECORD_TYPE_TRUNCATE: TXF_LOG_RECORD_TYPE = 2u16; +pub const TXF_LOG_RECORD_TYPE_WRITE: TXF_LOG_RECORD_TYPE = 1u16; +pub const TransactionOutcomeAborted: TRANSACTION_OUTCOME = 3i32; +pub const TransactionOutcomeCommitted: TRANSACTION_OUTCOME = 2i32; +pub const TransactionOutcomeUndetermined: TRANSACTION_OUTCOME = 1i32; +pub const VFFF_ISSHAREDFILE: VER_FIND_FILE_FLAGS = 1u32; +pub const VFF_BUFFTOOSMALL: VER_FIND_FILE_STATUS = 4u32; +pub const VFF_CURNEDEST: VER_FIND_FILE_STATUS = 1u32; +pub const VFF_FILEINUSE: VER_FIND_FILE_STATUS = 2u32; +pub const VFT2_DRV_COMM: VS_FIXEDFILEINFO_FILE_SUBTYPE = 10i32; +pub const VFT2_DRV_DISPLAY: VS_FIXEDFILEINFO_FILE_SUBTYPE = 4i32; +pub const VFT2_DRV_INPUTMETHOD: VS_FIXEDFILEINFO_FILE_SUBTYPE = 11i32; +pub const VFT2_DRV_INSTALLABLE: VS_FIXEDFILEINFO_FILE_SUBTYPE = 8i32; +pub const VFT2_DRV_KEYBOARD: VS_FIXEDFILEINFO_FILE_SUBTYPE = 2i32; +pub const VFT2_DRV_LANGUAGE: VS_FIXEDFILEINFO_FILE_SUBTYPE = 3i32; +pub const VFT2_DRV_MOUSE: VS_FIXEDFILEINFO_FILE_SUBTYPE = 5i32; +pub const VFT2_DRV_NETWORK: VS_FIXEDFILEINFO_FILE_SUBTYPE = 6i32; +pub const VFT2_DRV_PRINTER: VS_FIXEDFILEINFO_FILE_SUBTYPE = 1i32; +pub const VFT2_DRV_SOUND: VS_FIXEDFILEINFO_FILE_SUBTYPE = 9i32; +pub const VFT2_DRV_SYSTEM: VS_FIXEDFILEINFO_FILE_SUBTYPE = 7i32; +pub const VFT2_DRV_VERSIONED_PRINTER: VS_FIXEDFILEINFO_FILE_SUBTYPE = 12i32; +pub const VFT2_FONT_RASTER: VS_FIXEDFILEINFO_FILE_SUBTYPE = 1i32; +pub const VFT2_FONT_TRUETYPE: VS_FIXEDFILEINFO_FILE_SUBTYPE = 3i32; +pub const VFT2_FONT_VECTOR: VS_FIXEDFILEINFO_FILE_SUBTYPE = 2i32; +pub const VFT2_UNKNOWN: VS_FIXEDFILEINFO_FILE_SUBTYPE = 0i32; +pub const VFT_APP: VS_FIXEDFILEINFO_FILE_TYPE = 1i32; +pub const VFT_DLL: VS_FIXEDFILEINFO_FILE_TYPE = 2i32; +pub const VFT_DRV: VS_FIXEDFILEINFO_FILE_TYPE = 3i32; +pub const VFT_FONT: VS_FIXEDFILEINFO_FILE_TYPE = 4i32; +pub const VFT_STATIC_LIB: VS_FIXEDFILEINFO_FILE_TYPE = 7i32; +pub const VFT_UNKNOWN: VS_FIXEDFILEINFO_FILE_TYPE = 0i32; +pub const VFT_VXD: VS_FIXEDFILEINFO_FILE_TYPE = 5i32; +pub const VIFF_DONTDELETEOLD: VER_INSTALL_FILE_FLAGS = 2u32; +pub const VIFF_FORCEINSTALL: VER_INSTALL_FILE_FLAGS = 1u32; +pub const VIF_ACCESSVIOLATION: VER_INSTALL_FILE_STATUS = 512u32; +pub const VIF_BUFFTOOSMALL: VER_INSTALL_FILE_STATUS = 262144u32; +pub const VIF_CANNOTCREATE: VER_INSTALL_FILE_STATUS = 2048u32; +pub const VIF_CANNOTDELETE: VER_INSTALL_FILE_STATUS = 4096u32; +pub const VIF_CANNOTDELETECUR: VER_INSTALL_FILE_STATUS = 16384u32; +pub const VIF_CANNOTLOADCABINET: VER_INSTALL_FILE_STATUS = 1048576u32; +pub const VIF_CANNOTLOADLZ32: VER_INSTALL_FILE_STATUS = 524288u32; +pub const VIF_CANNOTREADDST: VER_INSTALL_FILE_STATUS = 131072u32; +pub const VIF_CANNOTREADSRC: VER_INSTALL_FILE_STATUS = 65536u32; +pub const VIF_CANNOTRENAME: VER_INSTALL_FILE_STATUS = 8192u32; +pub const VIF_DIFFCODEPG: VER_INSTALL_FILE_STATUS = 16u32; +pub const VIF_DIFFLANG: VER_INSTALL_FILE_STATUS = 8u32; +pub const VIF_DIFFTYPE: VER_INSTALL_FILE_STATUS = 32u32; +pub const VIF_FILEINUSE: VER_INSTALL_FILE_STATUS = 128u32; +pub const VIF_MISMATCH: VER_INSTALL_FILE_STATUS = 2u32; +pub const VIF_OUTOFMEMORY: VER_INSTALL_FILE_STATUS = 32768u32; +pub const VIF_OUTOFSPACE: VER_INSTALL_FILE_STATUS = 256u32; +pub const VIF_SHARINGVIOLATION: VER_INSTALL_FILE_STATUS = 1024u32; +pub const VIF_SRCOLD: VER_INSTALL_FILE_STATUS = 4u32; +pub const VIF_TEMPFILE: VER_INSTALL_FILE_STATUS = 1u32; +pub const VIF_WRITEPROT: VER_INSTALL_FILE_STATUS = 64u32; +pub const VOLUME_NAME_DOS: GETFINALPATHNAMEBYHANDLE_FLAGS = 0u32; +pub const VOLUME_NAME_GUID: GETFINALPATHNAMEBYHANDLE_FLAGS = 1u32; +pub const VOLUME_NAME_NONE: GETFINALPATHNAMEBYHANDLE_FLAGS = 4u32; +pub const VOLUME_NAME_NT: GETFINALPATHNAMEBYHANDLE_FLAGS = 2u32; +pub const VOS_DOS: VS_FIXEDFILEINFO_FILE_OS = 65536u32; +pub const VOS_DOS_WINDOWS16: VS_FIXEDFILEINFO_FILE_OS = 65537u32; +pub const VOS_DOS_WINDOWS32: VS_FIXEDFILEINFO_FILE_OS = 65540u32; +pub const VOS_NT: VS_FIXEDFILEINFO_FILE_OS = 262144u32; +pub const VOS_NT_WINDOWS32: VS_FIXEDFILEINFO_FILE_OS = 262148u32; +pub const VOS_OS216: VS_FIXEDFILEINFO_FILE_OS = 131072u32; +pub const VOS_OS216_PM16: VS_FIXEDFILEINFO_FILE_OS = 131074u32; +pub const VOS_OS232: VS_FIXEDFILEINFO_FILE_OS = 196608u32; +pub const VOS_OS232_PM32: VS_FIXEDFILEINFO_FILE_OS = 196611u32; +pub const VOS_UNKNOWN: VS_FIXEDFILEINFO_FILE_OS = 0u32; +pub const VOS_WINCE: VS_FIXEDFILEINFO_FILE_OS = 327680u32; +pub const VOS__BASE: VS_FIXEDFILEINFO_FILE_OS = 0u32; +pub const VOS__PM16: VS_FIXEDFILEINFO_FILE_OS = 2u32; +pub const VOS__PM32: VS_FIXEDFILEINFO_FILE_OS = 3u32; +pub const VOS__WINDOWS16: VS_FIXEDFILEINFO_FILE_OS = 1u32; +pub const VOS__WINDOWS32: VS_FIXEDFILEINFO_FILE_OS = 4u32; +pub const VS_FFI_FILEFLAGSMASK: i32 = 63i32; +pub const VS_FFI_SIGNATURE: i32 = -17890115i32; +pub const VS_FFI_STRUCVERSION: i32 = 65536i32; +pub const VS_FF_DEBUG: VS_FIXEDFILEINFO_FILE_FLAGS = 1u32; +pub const VS_FF_INFOINFERRED: VS_FIXEDFILEINFO_FILE_FLAGS = 16u32; +pub const VS_FF_PATCHED: VS_FIXEDFILEINFO_FILE_FLAGS = 4u32; +pub const VS_FF_PRERELEASE: VS_FIXEDFILEINFO_FILE_FLAGS = 2u32; +pub const VS_FF_PRIVATEBUILD: VS_FIXEDFILEINFO_FILE_FLAGS = 8u32; +pub const VS_FF_SPECIALBUILD: VS_FIXEDFILEINFO_FILE_FLAGS = 32u32; +pub const VS_USER_DEFINED: u32 = 100u32; +pub const VS_VERSION_INFO: u32 = 1u32; +pub const WIM_BOOT_NOT_OS_WIM: u32 = 0u32; +pub const WIM_BOOT_OS_WIM: u32 = 1u32; +pub const WIM_ENTRY_FLAG_NOT_ACTIVE: u32 = 1u32; +pub const WIM_ENTRY_FLAG_SUSPENDED: u32 = 2u32; +pub const WIM_EXTERNAL_FILE_INFO_FLAG_NOT_ACTIVE: u32 = 1u32; +pub const WIM_EXTERNAL_FILE_INFO_FLAG_SUSPENDED: u32 = 2u32; +pub const WIM_PROVIDER_HASH_SIZE: u32 = 20u32; +pub const WINEFS_SETUSERKEY_SET_CAPABILITIES: u32 = 1u32; +pub const WOF_PROVIDER_FILE: u32 = 2u32; +pub const WOF_PROVIDER_WIM: u32 = 1u32; +pub const WRITE_DAC: FILE_ACCESS_RIGHTS = 262144u32; +pub const WRITE_OWNER: FILE_ACCESS_RIGHTS = 524288u32; +pub const _FT_TYPES_DEFINITION_: u32 = 1u32; +pub type CLFS_CONTEXT_MODE = i32; +pub type CLFS_FLAG = u32; +pub type CLFS_IOSTATS_CLASS = i32; +pub type CLFS_LOG_ARCHIVE_MODE = i32; +pub type CLFS_MGMT_NOTIFICATION_TYPE = i32; +pub type CLFS_MGMT_POLICY_TYPE = i32; +pub type CLS_CONTEXT_MODE = i32; +pub type CLS_IOSTATS_CLASS = i32; +pub type CLS_LOG_INFORMATION_CLASS = i32; +pub type COMPRESSION_FORMAT = u16; +pub type COPYFILE2_COPY_PHASE = i32; +pub type COPYFILE2_MESSAGE_ACTION = i32; +pub type COPYFILE2_MESSAGE_TYPE = i32; +pub type CREATE_TAPE_PARTITION_METHOD = u32; +pub type DEFINE_DOS_DEVICE_FLAGS = u32; +pub type DISKQUOTA_USERNAME_RESOLVE = u32; +pub type ERASE_TAPE_TYPE = u32; +pub type FILE_ACCESS_RIGHTS = u32; +pub type FILE_ACTION = u32; +pub type FILE_CREATION_DISPOSITION = u32; +pub type FILE_DEVICE_TYPE = u32; +pub type FILE_DISPOSITION_INFO_EX_FLAGS = u32; +pub type FILE_FLAGS_AND_ATTRIBUTES = u32; +pub type FILE_FLUSH_MODE = i32; +pub type FILE_ID_TYPE = i32; +pub type FILE_INFO_BY_HANDLE_CLASS = i32; +pub type FILE_INFO_FLAGS_PERMISSIONS = u32; +pub type FILE_NOTIFY_CHANGE = u32; +pub type FILE_SHARE_MODE = u32; +pub type FILE_TYPE = u32; +pub type FILE_WRITE_FLAGS = i32; +pub type FINDEX_INFO_LEVELS = i32; +pub type FINDEX_SEARCH_OPS = i32; +pub type FIND_FIRST_EX_FLAGS = u32; +pub type GETFINALPATHNAMEBYHANDLE_FLAGS = u32; +pub type GET_FILEEX_INFO_LEVELS = i32; +pub type GET_FILE_VERSION_INFO_FLAGS = u32; +pub type GET_TAPE_DRIVE_PARAMETERS_OPERATION = u32; +pub type IORING_CREATE_ADVISORY_FLAGS = i32; +pub type IORING_CREATE_REQUIRED_FLAGS = i32; +pub type IORING_FEATURE_FLAGS = i32; +pub type IORING_OP_CODE = i32; +pub type IORING_REF_KIND = i32; +pub type IORING_SQE_FLAGS = i32; +pub type IORING_VERSION = i32; +pub type LOCK_FILE_FLAGS = u32; +pub type LPPROGRESS_ROUTINE_CALLBACK_REASON = u32; +pub type LZOPENFILE_STYLE = u16; +pub type MOVE_FILE_FLAGS = u32; +pub type NTMS_OMID_TYPE = u32; +pub type NtmsAccessMask = i32; +pub type NtmsAllocateOptions = i32; +pub type NtmsAllocationPolicy = i32; +pub type NtmsAsyncOperations = i32; +pub type NtmsAsyncStatus = i32; +pub type NtmsBarCodeState = i32; +pub type NtmsCreateNtmsMediaOptions = i32; +pub type NtmsCreateOptions = i32; +pub type NtmsDeallocationPolicy = i32; +pub type NtmsDismountOptions = i32; +pub type NtmsDoorState = i32; +pub type NtmsDriveState = i32; +pub type NtmsDriveType = i32; +pub type NtmsEjectOperation = i32; +pub type NtmsEnumerateOption = i32; +pub type NtmsInjectOperation = i32; +pub type NtmsInventoryMethod = i32; +pub type NtmsLibRequestFlags = i32; +pub type NtmsLibraryFlags = i32; +pub type NtmsLibraryType = i32; +pub type NtmsLmOperation = i32; +pub type NtmsLmState = i32; +pub type NtmsMediaPoolPolicy = i32; +pub type NtmsMediaState = i32; +pub type NtmsMountOptions = i32; +pub type NtmsMountPriority = i32; +pub type NtmsNotificationOperations = i32; +pub type NtmsObjectsTypes = i32; +pub type NtmsOpRequestFlags = i32; +pub type NtmsOperationalState = i32; +pub type NtmsOpreqCommand = i32; +pub type NtmsOpreqState = i32; +pub type NtmsPartitionState = i32; +pub type NtmsPoolType = i32; +pub type NtmsPortContent = i32; +pub type NtmsPortPosition = i32; +pub type NtmsReadWriteCharacteristics = i32; +pub type NtmsSessionOptions = i32; +pub type NtmsSlotState = i32; +pub type NtmsUIOperations = i32; +pub type NtmsUITypes = i32; +pub type PREPARE_TAPE_OPERATION = u32; +pub type PRIORITY_HINT = i32; +pub type READ_DIRECTORY_NOTIFY_INFORMATION_CLASS = i32; +pub type REPLACE_FILE_FLAGS = u32; +pub type SERVER_CERTIFICATE_TYPE = i32; +pub type SESSION_INFO_USER_FLAGS = u32; +pub type SET_FILE_POINTER_MOVE_METHOD = u32; +pub type SHARE_INFO_PERMISSIONS = u32; +pub type SHARE_TYPE = u32; +pub type STORAGE_BUS_TYPE = i32; +pub type STREAM_INFO_LEVELS = i32; +pub type SYMBOLIC_LINK_FLAGS = u32; +pub type TAPEMARK_TYPE = u32; +pub type TAPE_INFORMATION_TYPE = u32; +pub type TAPE_POSITION_METHOD = u32; +pub type TAPE_POSITION_TYPE = u32; +pub type TRANSACTION_OUTCOME = i32; +pub type TXFS_MINIVERSION = u32; +pub type TXF_LOG_RECORD_TYPE = u16; +pub type VER_FIND_FILE_FLAGS = u32; +pub type VER_FIND_FILE_STATUS = u32; +pub type VER_INSTALL_FILE_FLAGS = u32; +pub type VER_INSTALL_FILE_STATUS = u32; +pub type VS_FIXEDFILEINFO_FILE_FLAGS = u32; +pub type VS_FIXEDFILEINFO_FILE_OS = u32; +pub type VS_FIXEDFILEINFO_FILE_SUBTYPE = i32; +pub type VS_FIXEDFILEINFO_FILE_TYPE = i32; +pub type WIN_STREAM_ID = u32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BY_HANDLE_FILE_INFORMATION { + pub dwFileAttributes: u32, + pub ftCreationTime: super::super::Foundation::FILETIME, + pub ftLastAccessTime: super::super::Foundation::FILETIME, + pub ftLastWriteTime: super::super::Foundation::FILETIME, + pub dwVolumeSerialNumber: u32, + pub nFileSizeHigh: u32, + pub nFileSizeLow: u32, + pub nNumberOfLinks: u32, + pub nFileIndexHigh: u32, + pub nFileIndexLow: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BY_HANDLE_FILE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BY_HANDLE_FILE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_LOG_NAME_INFORMATION { + pub NameLengthInBytes: u16, + pub Name: [u16; 1], +} +impl ::core::marker::Copy for CLFS_LOG_NAME_INFORMATION {} +impl ::core::clone::Clone for CLFS_LOG_NAME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_MGMT_NOTIFICATION { + pub Notification: CLFS_MGMT_NOTIFICATION_TYPE, + pub Lsn: CLS_LSN, + pub LogIsPinned: u16, +} +impl ::core::marker::Copy for CLFS_MGMT_NOTIFICATION {} +impl ::core::clone::Clone for CLFS_MGMT_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_MGMT_POLICY { + pub Version: u32, + pub LengthInBytes: u32, + pub PolicyFlags: u32, + pub PolicyType: CLFS_MGMT_POLICY_TYPE, + pub PolicyParameters: CLFS_MGMT_POLICY_0, +} +impl ::core::marker::Copy for CLFS_MGMT_POLICY {} +impl ::core::clone::Clone for CLFS_MGMT_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CLFS_MGMT_POLICY_0 { + pub MaximumSize: CLFS_MGMT_POLICY_0_4, + pub MinimumSize: CLFS_MGMT_POLICY_0_5, + pub NewContainerSize: CLFS_MGMT_POLICY_0_8, + pub GrowthRate: CLFS_MGMT_POLICY_0_2, + pub LogTail: CLFS_MGMT_POLICY_0_3, + pub AutoShrink: CLFS_MGMT_POLICY_0_1, + pub AutoGrow: CLFS_MGMT_POLICY_0_0, + pub NewContainerPrefix: CLFS_MGMT_POLICY_0_7, + pub NewContainerSuffix: CLFS_MGMT_POLICY_0_9, + pub NewContainerExtension: CLFS_MGMT_POLICY_0_6, +} +impl ::core::marker::Copy for CLFS_MGMT_POLICY_0 {} +impl ::core::clone::Clone for CLFS_MGMT_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_MGMT_POLICY_0_0 { + pub Enabled: u32, +} +impl ::core::marker::Copy for CLFS_MGMT_POLICY_0_0 {} +impl ::core::clone::Clone for CLFS_MGMT_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_MGMT_POLICY_0_1 { + pub Percentage: u32, +} +impl ::core::marker::Copy for CLFS_MGMT_POLICY_0_1 {} +impl ::core::clone::Clone for CLFS_MGMT_POLICY_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_MGMT_POLICY_0_2 { + pub AbsoluteGrowthInContainers: u32, + pub RelativeGrowthPercentage: u32, +} +impl ::core::marker::Copy for CLFS_MGMT_POLICY_0_2 {} +impl ::core::clone::Clone for CLFS_MGMT_POLICY_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_MGMT_POLICY_0_3 { + pub MinimumAvailablePercentage: u32, + pub MinimumAvailableContainers: u32, +} +impl ::core::marker::Copy for CLFS_MGMT_POLICY_0_3 {} +impl ::core::clone::Clone for CLFS_MGMT_POLICY_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_MGMT_POLICY_0_4 { + pub Containers: u32, +} +impl ::core::marker::Copy for CLFS_MGMT_POLICY_0_4 {} +impl ::core::clone::Clone for CLFS_MGMT_POLICY_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_MGMT_POLICY_0_5 { + pub Containers: u32, +} +impl ::core::marker::Copy for CLFS_MGMT_POLICY_0_5 {} +impl ::core::clone::Clone for CLFS_MGMT_POLICY_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_MGMT_POLICY_0_6 { + pub ExtensionLengthInBytes: u16, + pub ExtensionString: [u16; 1], +} +impl ::core::marker::Copy for CLFS_MGMT_POLICY_0_6 {} +impl ::core::clone::Clone for CLFS_MGMT_POLICY_0_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_MGMT_POLICY_0_7 { + pub PrefixLengthInBytes: u16, + pub PrefixString: [u16; 1], +} +impl ::core::marker::Copy for CLFS_MGMT_POLICY_0_7 {} +impl ::core::clone::Clone for CLFS_MGMT_POLICY_0_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_MGMT_POLICY_0_8 { + pub SizeInBytes: u32, +} +impl ::core::marker::Copy for CLFS_MGMT_POLICY_0_8 {} +impl ::core::clone::Clone for CLFS_MGMT_POLICY_0_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_MGMT_POLICY_0_9 { + pub NextContainerSuffix: u64, +} +impl ::core::marker::Copy for CLFS_MGMT_POLICY_0_9 {} +impl ::core::clone::Clone for CLFS_MGMT_POLICY_0_9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_NODE_ID { + pub cType: u32, + pub cbNode: u32, +} +impl ::core::marker::Copy for CLFS_NODE_ID {} +impl ::core::clone::Clone for CLFS_NODE_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_PHYSICAL_LSN_INFORMATION { + pub StreamIdentifier: u8, + pub VirtualLsn: CLS_LSN, + pub PhysicalLsn: CLS_LSN, +} +impl ::core::marker::Copy for CLFS_PHYSICAL_LSN_INFORMATION {} +impl ::core::clone::Clone for CLFS_PHYSICAL_LSN_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLFS_STREAM_ID_INFORMATION { + pub StreamIdentifier: u8, +} +impl ::core::marker::Copy for CLFS_STREAM_ID_INFORMATION {} +impl ::core::clone::Clone for CLFS_STREAM_ID_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLS_ARCHIVE_DESCRIPTOR { + pub coffLow: u64, + pub coffHigh: u64, + pub infoContainer: CLS_CONTAINER_INFORMATION, +} +impl ::core::marker::Copy for CLS_ARCHIVE_DESCRIPTOR {} +impl ::core::clone::Clone for CLS_ARCHIVE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLS_CONTAINER_INFORMATION { + pub FileAttributes: u32, + pub CreationTime: u64, + pub LastAccessTime: u64, + pub LastWriteTime: u64, + pub ContainerSize: i64, + pub FileNameActualLength: u32, + pub FileNameLength: u32, + pub FileName: [u16; 256], + pub State: u32, + pub PhysicalContainerId: u32, + pub LogicalContainerId: u32, +} +impl ::core::marker::Copy for CLS_CONTAINER_INFORMATION {} +impl ::core::clone::Clone for CLS_CONTAINER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLS_INFORMATION { + pub TotalAvailable: i64, + pub CurrentAvailable: i64, + pub TotalReservation: i64, + pub BaseFileSize: u64, + pub ContainerSize: u64, + pub TotalContainers: u32, + pub FreeContainers: u32, + pub TotalClients: u32, + pub Attributes: u32, + pub FlushThreshold: u32, + pub SectorSize: u32, + pub MinArchiveTailLsn: CLS_LSN, + pub BaseLsn: CLS_LSN, + pub LastFlushedLsn: CLS_LSN, + pub LastLsn: CLS_LSN, + pub RestartLsn: CLS_LSN, + pub Identity: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for CLS_INFORMATION {} +impl ::core::clone::Clone for CLS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLS_IO_STATISTICS { + pub hdrIoStats: CLS_IO_STATISTICS_HEADER, + pub cFlush: u64, + pub cbFlush: u64, + pub cMetaFlush: u64, + pub cbMetaFlush: u64, +} +impl ::core::marker::Copy for CLS_IO_STATISTICS {} +impl ::core::clone::Clone for CLS_IO_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLS_IO_STATISTICS_HEADER { + pub ubMajorVersion: u8, + pub ubMinorVersion: u8, + pub eStatsClass: CLFS_IOSTATS_CLASS, + pub cbLength: u16, + pub coffData: u32, +} +impl ::core::marker::Copy for CLS_IO_STATISTICS_HEADER {} +impl ::core::clone::Clone for CLS_IO_STATISTICS_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLS_LSN { + pub Internal: u64, +} +impl ::core::marker::Copy for CLS_LSN {} +impl ::core::clone::Clone for CLS_LSN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLS_SCAN_CONTEXT { + pub cidNode: CLFS_NODE_ID, + pub hLog: super::super::Foundation::HANDLE, + pub cIndex: u32, + pub cContainers: u32, + pub cContainersReturned: u32, + pub eScanMode: u8, + pub pinfoContainer: *mut CLS_CONTAINER_INFORMATION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLS_SCAN_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLS_SCAN_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLS_WRITE_ENTRY { + pub Buffer: *mut ::core::ffi::c_void, + pub ByteLength: u32, +} +impl ::core::marker::Copy for CLS_WRITE_ENTRY {} +impl ::core::clone::Clone for CLS_WRITE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONNECTION_INFO_0 { + pub coni0_id: u32, +} +impl ::core::marker::Copy for CONNECTION_INFO_0 {} +impl ::core::clone::Clone for CONNECTION_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONNECTION_INFO_1 { + pub coni1_id: u32, + pub coni1_type: SHARE_TYPE, + pub coni1_num_opens: u32, + pub coni1_num_users: u32, + pub coni1_time: u32, + pub coni1_username: ::windows_sys::core::PWSTR, + pub coni1_netname: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CONNECTION_INFO_1 {} +impl ::core::clone::Clone for CONNECTION_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COPYFILE2_EXTENDED_PARAMETERS { + pub dwSize: u32, + pub dwCopyFlags: u32, + pub pfCancel: *mut super::super::Foundation::BOOL, + pub pProgressRoutine: PCOPYFILE2_PROGRESS_ROUTINE, + pub pvCallbackContext: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COPYFILE2_EXTENDED_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COPYFILE2_EXTENDED_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COPYFILE2_EXTENDED_PARAMETERS_V2 { + pub dwSize: u32, + pub dwCopyFlags: u32, + pub pfCancel: *mut super::super::Foundation::BOOL, + pub pProgressRoutine: PCOPYFILE2_PROGRESS_ROUTINE, + pub pvCallbackContext: *mut ::core::ffi::c_void, + pub dwCopyFlagsV2: u32, + pub ioDesiredSize: u32, + pub ioDesiredRate: u32, + pub reserved: [*mut ::core::ffi::c_void; 8], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COPYFILE2_EXTENDED_PARAMETERS_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COPYFILE2_EXTENDED_PARAMETERS_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COPYFILE2_MESSAGE { + pub Type: COPYFILE2_MESSAGE_TYPE, + pub dwPadding: u32, + pub Info: COPYFILE2_MESSAGE_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COPYFILE2_MESSAGE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COPYFILE2_MESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union COPYFILE2_MESSAGE_0 { + pub ChunkStarted: COPYFILE2_MESSAGE_0_1, + pub ChunkFinished: COPYFILE2_MESSAGE_0_0, + pub StreamStarted: COPYFILE2_MESSAGE_0_5, + pub StreamFinished: COPYFILE2_MESSAGE_0_4, + pub PollContinue: COPYFILE2_MESSAGE_0_3, + pub Error: COPYFILE2_MESSAGE_0_2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COPYFILE2_MESSAGE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COPYFILE2_MESSAGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COPYFILE2_MESSAGE_0_0 { + pub dwStreamNumber: u32, + pub dwFlags: u32, + pub hSourceFile: super::super::Foundation::HANDLE, + pub hDestinationFile: super::super::Foundation::HANDLE, + pub uliChunkNumber: u64, + pub uliChunkSize: u64, + pub uliStreamSize: u64, + pub uliStreamBytesTransferred: u64, + pub uliTotalFileSize: u64, + pub uliTotalBytesTransferred: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COPYFILE2_MESSAGE_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COPYFILE2_MESSAGE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COPYFILE2_MESSAGE_0_1 { + pub dwStreamNumber: u32, + pub dwReserved: u32, + pub hSourceFile: super::super::Foundation::HANDLE, + pub hDestinationFile: super::super::Foundation::HANDLE, + pub uliChunkNumber: u64, + pub uliChunkSize: u64, + pub uliStreamSize: u64, + pub uliTotalFileSize: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COPYFILE2_MESSAGE_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COPYFILE2_MESSAGE_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COPYFILE2_MESSAGE_0_2 { + pub CopyPhase: COPYFILE2_COPY_PHASE, + pub dwStreamNumber: u32, + pub hrFailure: ::windows_sys::core::HRESULT, + pub dwReserved: u32, + pub uliChunkNumber: u64, + pub uliStreamSize: u64, + pub uliStreamBytesTransferred: u64, + pub uliTotalFileSize: u64, + pub uliTotalBytesTransferred: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COPYFILE2_MESSAGE_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COPYFILE2_MESSAGE_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COPYFILE2_MESSAGE_0_3 { + pub dwReserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COPYFILE2_MESSAGE_0_3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COPYFILE2_MESSAGE_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COPYFILE2_MESSAGE_0_4 { + pub dwStreamNumber: u32, + pub dwReserved: u32, + pub hSourceFile: super::super::Foundation::HANDLE, + pub hDestinationFile: super::super::Foundation::HANDLE, + pub uliStreamSize: u64, + pub uliStreamBytesTransferred: u64, + pub uliTotalFileSize: u64, + pub uliTotalBytesTransferred: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COPYFILE2_MESSAGE_0_4 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COPYFILE2_MESSAGE_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COPYFILE2_MESSAGE_0_5 { + pub dwStreamNumber: u32, + pub dwReserved: u32, + pub hSourceFile: super::super::Foundation::HANDLE, + pub hDestinationFile: super::super::Foundation::HANDLE, + pub uliStreamSize: u64, + pub uliTotalFileSize: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COPYFILE2_MESSAGE_0_5 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COPYFILE2_MESSAGE_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct CREATEFILE2_EXTENDED_PARAMETERS { + pub dwSize: u32, + pub dwFileAttributes: u32, + pub dwFileFlags: u32, + pub dwSecurityQosFlags: u32, + pub lpSecurityAttributes: *mut super::super::Security::SECURITY_ATTRIBUTES, + pub hTemplateFile: super::super::Foundation::HANDLE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for CREATEFILE2_EXTENDED_PARAMETERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for CREATEFILE2_EXTENDED_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISKQUOTA_USER_INFORMATION { + pub QuotaUsed: i64, + pub QuotaThreshold: i64, + pub QuotaLimit: i64, +} +impl ::core::marker::Copy for DISKQUOTA_USER_INFORMATION {} +impl ::core::clone::Clone for DISKQUOTA_USER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_SPACE_INFORMATION { + pub ActualTotalAllocationUnits: u64, + pub ActualAvailableAllocationUnits: u64, + pub ActualPoolUnavailableAllocationUnits: u64, + pub CallerTotalAllocationUnits: u64, + pub CallerAvailableAllocationUnits: u64, + pub CallerPoolUnavailableAllocationUnits: u64, + pub UsedAllocationUnits: u64, + pub TotalReservedAllocationUnits: u64, + pub VolumeStorageReserveAllocationUnits: u64, + pub AvailableCommittedAllocationUnits: u64, + pub PoolAvailableAllocationUnits: u64, + pub SectorsPerAllocationUnit: u32, + pub BytesPerSector: u32, +} +impl ::core::marker::Copy for DISK_SPACE_INFORMATION {} +impl ::core::clone::Clone for DISK_SPACE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EFS_CERTIFICATE_BLOB { + pub dwCertEncodingType: u32, + pub cbData: u32, + pub pbData: *mut u8, +} +impl ::core::marker::Copy for EFS_CERTIFICATE_BLOB {} +impl ::core::clone::Clone for EFS_CERTIFICATE_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EFS_COMPATIBILITY_INFO { + pub EfsVersion: u32, +} +impl ::core::marker::Copy for EFS_COMPATIBILITY_INFO {} +impl ::core::clone::Clone for EFS_COMPATIBILITY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EFS_DECRYPTION_STATUS_INFO { + pub dwDecryptionError: u32, + pub dwHashOffset: u32, + pub cbHash: u32, +} +impl ::core::marker::Copy for EFS_DECRYPTION_STATUS_INFO {} +impl ::core::clone::Clone for EFS_DECRYPTION_STATUS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EFS_ENCRYPTION_STATUS_INFO { + pub bHasCurrentKey: super::super::Foundation::BOOL, + pub dwEncryptionError: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EFS_ENCRYPTION_STATUS_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EFS_ENCRYPTION_STATUS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EFS_HASH_BLOB { + pub cbData: u32, + pub pbData: *mut u8, +} +impl ::core::marker::Copy for EFS_HASH_BLOB {} +impl ::core::clone::Clone for EFS_HASH_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security_Cryptography\"`"] +#[cfg(feature = "Win32_Security_Cryptography")] +pub struct EFS_KEY_INFO { + pub dwVersion: u32, + pub Entropy: u32, + pub Algorithm: super::super::Security::Cryptography::ALG_ID, + pub KeyLength: u32, +} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::marker::Copy for EFS_KEY_INFO {} +#[cfg(feature = "Win32_Security_Cryptography")] +impl ::core::clone::Clone for EFS_KEY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EFS_PIN_BLOB { + pub cbPadding: u32, + pub cbData: u32, + pub pbData: *mut u8, +} +impl ::core::marker::Copy for EFS_PIN_BLOB {} +impl ::core::clone::Clone for EFS_PIN_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EFS_RPC_BLOB { + pub cbData: u32, + pub pbData: *mut u8, +} +impl ::core::marker::Copy for EFS_RPC_BLOB {} +impl ::core::clone::Clone for EFS_RPC_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EFS_VERSION_INFO { + pub EfsVersion: u32, + pub SubVersion: u32, +} +impl ::core::marker::Copy for EFS_VERSION_INFO {} +impl ::core::clone::Clone for EFS_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct ENCRYPTED_FILE_METADATA_SIGNATURE { + pub dwEfsAccessType: u32, + pub pCertificatesAdded: *mut ENCRYPTION_CERTIFICATE_HASH_LIST, + pub pEncryptionCertificate: *mut ENCRYPTION_CERTIFICATE, + pub pEfsStreamSignature: *mut EFS_RPC_BLOB, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for ENCRYPTED_FILE_METADATA_SIGNATURE {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for ENCRYPTED_FILE_METADATA_SIGNATURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct ENCRYPTION_CERTIFICATE { + pub cbTotalLength: u32, + pub pUserSid: *mut super::super::Security::SID, + pub pCertBlob: *mut EFS_CERTIFICATE_BLOB, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for ENCRYPTION_CERTIFICATE {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for ENCRYPTION_CERTIFICATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct ENCRYPTION_CERTIFICATE_HASH { + pub cbTotalLength: u32, + pub pUserSid: *mut super::super::Security::SID, + pub pHash: *mut EFS_HASH_BLOB, + pub lpDisplayInformation: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for ENCRYPTION_CERTIFICATE_HASH {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for ENCRYPTION_CERTIFICATE_HASH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct ENCRYPTION_CERTIFICATE_HASH_LIST { + pub nCert_Hash: u32, + pub pUsers: *mut *mut ENCRYPTION_CERTIFICATE_HASH, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for ENCRYPTION_CERTIFICATE_HASH_LIST {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for ENCRYPTION_CERTIFICATE_HASH_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct ENCRYPTION_CERTIFICATE_LIST { + pub nUsers: u32, + pub pUsers: *mut *mut ENCRYPTION_CERTIFICATE, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for ENCRYPTION_CERTIFICATE_LIST {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for ENCRYPTION_CERTIFICATE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct ENCRYPTION_PROTECTOR { + pub cbTotalLength: u32, + pub pUserSid: *mut super::super::Security::SID, + pub lpProtectorDescriptor: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for ENCRYPTION_PROTECTOR {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for ENCRYPTION_PROTECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct ENCRYPTION_PROTECTOR_LIST { + pub nProtectors: u32, + pub pProtectors: *mut *mut ENCRYPTION_PROTECTOR, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for ENCRYPTION_PROTECTOR_LIST {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for ENCRYPTION_PROTECTOR_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FH_OVERLAPPED { + pub Internal: usize, + pub InternalHigh: usize, + pub Offset: u32, + pub OffsetHigh: u32, + pub hEvent: super::super::Foundation::HANDLE, + pub pfnCompletion: PFN_IO_COMPLETION, + pub Reserved1: usize, + pub Reserved2: usize, + pub Reserved3: usize, + pub Reserved4: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FH_OVERLAPPED {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FH_OVERLAPPED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ALIGNMENT_INFO { + pub AlignmentRequirement: u32, +} +impl ::core::marker::Copy for FILE_ALIGNMENT_INFO {} +impl ::core::clone::Clone for FILE_ALIGNMENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ALLOCATION_INFO { + pub AllocationSize: i64, +} +impl ::core::marker::Copy for FILE_ALLOCATION_INFO {} +impl ::core::clone::Clone for FILE_ALLOCATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ATTRIBUTE_TAG_INFO { + pub FileAttributes: u32, + pub ReparseTag: u32, +} +impl ::core::marker::Copy for FILE_ATTRIBUTE_TAG_INFO {} +impl ::core::clone::Clone for FILE_ATTRIBUTE_TAG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_BASIC_INFO { + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub FileAttributes: u32, +} +impl ::core::marker::Copy for FILE_BASIC_INFO {} +impl ::core::clone::Clone for FILE_BASIC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_COMPRESSION_INFO { + pub CompressedFileSize: i64, + pub CompressionFormat: COMPRESSION_FORMAT, + pub CompressionUnitShift: u8, + pub ChunkShift: u8, + pub ClusterShift: u8, + pub Reserved: [u8; 3], +} +impl ::core::marker::Copy for FILE_COMPRESSION_INFO {} +impl ::core::clone::Clone for FILE_COMPRESSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_DISPOSITION_INFO { + pub DeleteFile: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_DISPOSITION_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_DISPOSITION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_DISPOSITION_INFO_EX { + pub Flags: FILE_DISPOSITION_INFO_EX_FLAGS, +} +impl ::core::marker::Copy for FILE_DISPOSITION_INFO_EX {} +impl ::core::clone::Clone for FILE_DISPOSITION_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_END_OF_FILE_INFO { + pub EndOfFile: i64, +} +impl ::core::marker::Copy for FILE_END_OF_FILE_INFO {} +impl ::core::clone::Clone for FILE_END_OF_FILE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_EXTENT { + pub VolumeOffset: u64, + pub ExtentLength: u64, +} +impl ::core::marker::Copy for FILE_EXTENT {} +impl ::core::clone::Clone for FILE_EXTENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FULL_DIR_INFO { + pub NextEntryOffset: u32, + pub FileIndex: u32, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub EndOfFile: i64, + pub AllocationSize: i64, + pub FileAttributes: u32, + pub FileNameLength: u32, + pub EaSize: u32, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_FULL_DIR_INFO {} +impl ::core::clone::Clone for FILE_FULL_DIR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ID_128 { + pub Identifier: [u8; 16], +} +impl ::core::marker::Copy for FILE_ID_128 {} +impl ::core::clone::Clone for FILE_ID_128 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ID_BOTH_DIR_INFO { + pub NextEntryOffset: u32, + pub FileIndex: u32, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub EndOfFile: i64, + pub AllocationSize: i64, + pub FileAttributes: u32, + pub FileNameLength: u32, + pub EaSize: u32, + pub ShortNameLength: i8, + pub ShortName: [u16; 12], + pub FileId: i64, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_ID_BOTH_DIR_INFO {} +impl ::core::clone::Clone for FILE_ID_BOTH_DIR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ID_DESCRIPTOR { + pub dwSize: u32, + pub Type: FILE_ID_TYPE, + pub Anonymous: FILE_ID_DESCRIPTOR_0, +} +impl ::core::marker::Copy for FILE_ID_DESCRIPTOR {} +impl ::core::clone::Clone for FILE_ID_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FILE_ID_DESCRIPTOR_0 { + pub FileId: i64, + pub ObjectId: ::windows_sys::core::GUID, + pub ExtendedFileId: FILE_ID_128, +} +impl ::core::marker::Copy for FILE_ID_DESCRIPTOR_0 {} +impl ::core::clone::Clone for FILE_ID_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ID_EXTD_DIR_INFO { + pub NextEntryOffset: u32, + pub FileIndex: u32, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub EndOfFile: i64, + pub AllocationSize: i64, + pub FileAttributes: u32, + pub FileNameLength: u32, + pub EaSize: u32, + pub ReparsePointTag: u32, + pub FileId: FILE_ID_128, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_ID_EXTD_DIR_INFO {} +impl ::core::clone::Clone for FILE_ID_EXTD_DIR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ID_INFO { + pub VolumeSerialNumber: u64, + pub FileId: FILE_ID_128, +} +impl ::core::marker::Copy for FILE_ID_INFO {} +impl ::core::clone::Clone for FILE_ID_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_INFO_2 { + pub fi2_id: u32, +} +impl ::core::marker::Copy for FILE_INFO_2 {} +impl ::core::clone::Clone for FILE_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_INFO_3 { + pub fi3_id: u32, + pub fi3_permissions: FILE_INFO_FLAGS_PERMISSIONS, + pub fi3_num_locks: u32, + pub fi3_pathname: ::windows_sys::core::PWSTR, + pub fi3_username: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for FILE_INFO_3 {} +impl ::core::clone::Clone for FILE_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_IO_PRIORITY_HINT_INFO { + pub PriorityHint: PRIORITY_HINT, +} +impl ::core::marker::Copy for FILE_IO_PRIORITY_HINT_INFO {} +impl ::core::clone::Clone for FILE_IO_PRIORITY_HINT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_NAME_INFO { + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_NAME_INFO {} +impl ::core::clone::Clone for FILE_NAME_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_NOTIFY_EXTENDED_INFORMATION { + pub NextEntryOffset: u32, + pub Action: FILE_ACTION, + pub CreationTime: i64, + pub LastModificationTime: i64, + pub LastChangeTime: i64, + pub LastAccessTime: i64, + pub AllocatedLength: i64, + pub FileSize: i64, + pub FileAttributes: u32, + pub Anonymous: FILE_NOTIFY_EXTENDED_INFORMATION_0, + pub FileId: i64, + pub ParentFileId: i64, + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_NOTIFY_EXTENDED_INFORMATION {} +impl ::core::clone::Clone for FILE_NOTIFY_EXTENDED_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FILE_NOTIFY_EXTENDED_INFORMATION_0 { + pub ReparsePointTag: u32, + pub EaSize: u32, +} +impl ::core::marker::Copy for FILE_NOTIFY_EXTENDED_INFORMATION_0 {} +impl ::core::clone::Clone for FILE_NOTIFY_EXTENDED_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_NOTIFY_INFORMATION { + pub NextEntryOffset: u32, + pub Action: FILE_ACTION, + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_NOTIFY_INFORMATION {} +impl ::core::clone::Clone for FILE_NOTIFY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REMOTE_PROTOCOL_INFO { + pub StructureVersion: u16, + pub StructureSize: u16, + pub Protocol: u32, + pub ProtocolMajorVersion: u16, + pub ProtocolMinorVersion: u16, + pub ProtocolRevision: u16, + pub Reserved: u16, + pub Flags: u32, + pub GenericReserved: FILE_REMOTE_PROTOCOL_INFO_0, + pub ProtocolSpecific: FILE_REMOTE_PROTOCOL_INFO_1, +} +impl ::core::marker::Copy for FILE_REMOTE_PROTOCOL_INFO {} +impl ::core::clone::Clone for FILE_REMOTE_PROTOCOL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REMOTE_PROTOCOL_INFO_0 { + pub Reserved: [u32; 8], +} +impl ::core::marker::Copy for FILE_REMOTE_PROTOCOL_INFO_0 {} +impl ::core::clone::Clone for FILE_REMOTE_PROTOCOL_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FILE_REMOTE_PROTOCOL_INFO_1 { + pub Smb2: FILE_REMOTE_PROTOCOL_INFO_1_0, + pub Reserved: [u32; 16], +} +impl ::core::marker::Copy for FILE_REMOTE_PROTOCOL_INFO_1 {} +impl ::core::clone::Clone for FILE_REMOTE_PROTOCOL_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REMOTE_PROTOCOL_INFO_1_0 { + pub Server: FILE_REMOTE_PROTOCOL_INFO_1_0_0, + pub Share: FILE_REMOTE_PROTOCOL_INFO_1_0_1, +} +impl ::core::marker::Copy for FILE_REMOTE_PROTOCOL_INFO_1_0 {} +impl ::core::clone::Clone for FILE_REMOTE_PROTOCOL_INFO_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REMOTE_PROTOCOL_INFO_1_0_0 { + pub Capabilities: u32, +} +impl ::core::marker::Copy for FILE_REMOTE_PROTOCOL_INFO_1_0_0 {} +impl ::core::clone::Clone for FILE_REMOTE_PROTOCOL_INFO_1_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REMOTE_PROTOCOL_INFO_1_0_1 { + pub Capabilities: u32, + pub ShareFlags: u32, +} +impl ::core::marker::Copy for FILE_REMOTE_PROTOCOL_INFO_1_0_1 {} +impl ::core::clone::Clone for FILE_REMOTE_PROTOCOL_INFO_1_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_RENAME_INFO { + pub Anonymous: FILE_RENAME_INFO_0, + pub RootDirectory: super::super::Foundation::HANDLE, + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_RENAME_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_RENAME_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union FILE_RENAME_INFO_0 { + pub ReplaceIfExists: super::super::Foundation::BOOLEAN, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_RENAME_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_RENAME_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FILE_SEGMENT_ELEMENT { + pub Buffer: *mut ::core::ffi::c_void, + pub Alignment: u64, +} +impl ::core::marker::Copy for FILE_SEGMENT_ELEMENT {} +impl ::core::clone::Clone for FILE_SEGMENT_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_STANDARD_INFO { + pub AllocationSize: i64, + pub EndOfFile: i64, + pub NumberOfLinks: u32, + pub DeletePending: super::super::Foundation::BOOLEAN, + pub Directory: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_STANDARD_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_STANDARD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_STORAGE_INFO { + pub LogicalBytesPerSector: u32, + pub PhysicalBytesPerSectorForAtomicity: u32, + pub PhysicalBytesPerSectorForPerformance: u32, + pub FileSystemEffectivePhysicalBytesPerSectorForAtomicity: u32, + pub Flags: u32, + pub ByteOffsetForSectorAlignment: u32, + pub ByteOffsetForPartitionAlignment: u32, +} +impl ::core::marker::Copy for FILE_STORAGE_INFO {} +impl ::core::clone::Clone for FILE_STORAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_STREAM_INFO { + pub NextEntryOffset: u32, + pub StreamNameLength: u32, + pub StreamSize: i64, + pub StreamAllocationSize: i64, + pub StreamName: [u16; 1], +} +impl ::core::marker::Copy for FILE_STREAM_INFO {} +impl ::core::clone::Clone for FILE_STREAM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FIO_CONTEXT { + pub m_dwTempHack: u32, + pub m_dwSignature: u32, + pub m_hFile: super::super::Foundation::HANDLE, + pub m_dwLinesOffset: u32, + pub m_dwHeaderLength: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FIO_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FIO_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +pub type HIORING = isize; +#[repr(C)] +pub struct IORING_BUFFER_INFO { + pub Address: *mut ::core::ffi::c_void, + pub Length: u32, +} +impl ::core::marker::Copy for IORING_BUFFER_INFO {} +impl ::core::clone::Clone for IORING_BUFFER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IORING_BUFFER_REF { + pub Kind: IORING_REF_KIND, + pub Buffer: IORING_BUFFER_REF_0, +} +impl ::core::marker::Copy for IORING_BUFFER_REF {} +impl ::core::clone::Clone for IORING_BUFFER_REF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IORING_BUFFER_REF_0 { + pub Address: *mut ::core::ffi::c_void, + pub IndexAndOffset: IORING_REGISTERED_BUFFER, +} +impl ::core::marker::Copy for IORING_BUFFER_REF_0 {} +impl ::core::clone::Clone for IORING_BUFFER_REF_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IORING_CAPABILITIES { + pub MaxVersion: IORING_VERSION, + pub MaxSubmissionQueueSize: u32, + pub MaxCompletionQueueSize: u32, + pub FeatureFlags: IORING_FEATURE_FLAGS, +} +impl ::core::marker::Copy for IORING_CAPABILITIES {} +impl ::core::clone::Clone for IORING_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IORING_CQE { + pub UserData: usize, + pub ResultCode: ::windows_sys::core::HRESULT, + pub Information: usize, +} +impl ::core::marker::Copy for IORING_CQE {} +impl ::core::clone::Clone for IORING_CQE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IORING_CREATE_FLAGS { + pub Required: IORING_CREATE_REQUIRED_FLAGS, + pub Advisory: IORING_CREATE_ADVISORY_FLAGS, +} +impl ::core::marker::Copy for IORING_CREATE_FLAGS {} +impl ::core::clone::Clone for IORING_CREATE_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IORING_HANDLE_REF { + pub Kind: IORING_REF_KIND, + pub Handle: IORING_HANDLE_REF_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IORING_HANDLE_REF {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IORING_HANDLE_REF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union IORING_HANDLE_REF_0 { + pub Handle: super::super::Foundation::HANDLE, + pub Index: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IORING_HANDLE_REF_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IORING_HANDLE_REF_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IORING_INFO { + pub IoRingVersion: IORING_VERSION, + pub Flags: IORING_CREATE_FLAGS, + pub SubmissionQueueSize: u32, + pub CompletionQueueSize: u32, +} +impl ::core::marker::Copy for IORING_INFO {} +impl ::core::clone::Clone for IORING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IORING_REGISTERED_BUFFER { + pub BufferIndex: u32, + pub Offset: u32, +} +impl ::core::marker::Copy for IORING_REGISTERED_BUFFER {} +impl ::core::clone::Clone for IORING_REGISTERED_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KCRM_MARSHAL_HEADER { + pub VersionMajor: u32, + pub VersionMinor: u32, + pub NumProtocols: u32, + pub Unused: u32, +} +impl ::core::marker::Copy for KCRM_MARSHAL_HEADER {} +impl ::core::clone::Clone for KCRM_MARSHAL_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KCRM_PROTOCOL_BLOB { + pub ProtocolId: ::windows_sys::core::GUID, + pub StaticInfoLength: u32, + pub TransactionIdInfoLength: u32, + pub Unused1: u32, + pub Unused2: u32, +} +impl ::core::marker::Copy for KCRM_PROTOCOL_BLOB {} +impl ::core::clone::Clone for KCRM_PROTOCOL_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KCRM_TRANSACTION_BLOB { + pub UOW: ::windows_sys::core::GUID, + pub TmIdentity: ::windows_sys::core::GUID, + pub IsolationLevel: u32, + pub IsolationFlags: u32, + pub Timeout: u32, + pub Description: [u16; 64], +} +impl ::core::marker::Copy for KCRM_TRANSACTION_BLOB {} +impl ::core::clone::Clone for KCRM_TRANSACTION_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LOG_MANAGEMENT_CALLBACKS { + pub CallbackContext: *mut ::core::ffi::c_void, + pub AdvanceTailCallback: PLOG_TAIL_ADVANCE_CALLBACK, + pub LogFullHandlerCallback: PLOG_FULL_HANDLER_CALLBACK, + pub LogUnpinnedCallback: PLOG_UNPINNED_CALLBACK, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LOG_MANAGEMENT_CALLBACKS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LOG_MANAGEMENT_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MediaLabelInfo { + pub LabelType: [u16; 64], + pub LabelIDSize: u32, + pub LabelID: [u8; 256], + pub LabelAppDescr: [u16; 256], +} +impl ::core::marker::Copy for MediaLabelInfo {} +impl ::core::clone::Clone for MediaLabelInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NAME_CACHE_CONTEXT { + pub m_dwSignature: u32, +} +impl ::core::marker::Copy for NAME_CACHE_CONTEXT {} +impl ::core::clone::Clone for NAME_CACHE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_ALLOCATION_INFORMATION { + pub dwSize: u32, + pub lpReserved: *mut ::core::ffi::c_void, + pub AllocatedFrom: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NTMS_ALLOCATION_INFORMATION {} +impl ::core::clone::Clone for NTMS_ALLOCATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_ASYNC_IO { + pub OperationId: ::windows_sys::core::GUID, + pub EventId: ::windows_sys::core::GUID, + pub dwOperationType: u32, + pub dwResult: u32, + pub dwAsyncState: u32, + pub hEvent: super::super::Foundation::HANDLE, + pub bOnStateChange: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_ASYNC_IO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_ASYNC_IO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_CHANGERINFORMATIONA { + pub Number: u32, + pub ChangerType: ::windows_sys::core::GUID, + pub szSerialNumber: [u8; 32], + pub szRevision: [u8; 32], + pub szDeviceName: [u8; 64], + pub ScsiPort: u16, + pub ScsiBus: u16, + pub ScsiTarget: u16, + pub ScsiLun: u16, + pub Library: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NTMS_CHANGERINFORMATIONA {} +impl ::core::clone::Clone for NTMS_CHANGERINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_CHANGERINFORMATIONW { + pub Number: u32, + pub ChangerType: ::windows_sys::core::GUID, + pub szSerialNumber: [u16; 32], + pub szRevision: [u16; 32], + pub szDeviceName: [u16; 64], + pub ScsiPort: u16, + pub ScsiBus: u16, + pub ScsiTarget: u16, + pub ScsiLun: u16, + pub Library: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NTMS_CHANGERINFORMATIONW {} +impl ::core::clone::Clone for NTMS_CHANGERINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_CHANGERTYPEINFORMATIONA { + pub szVendor: [u8; 128], + pub szProduct: [u8; 128], + pub DeviceType: u32, +} +impl ::core::marker::Copy for NTMS_CHANGERTYPEINFORMATIONA {} +impl ::core::clone::Clone for NTMS_CHANGERTYPEINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_CHANGERTYPEINFORMATIONW { + pub szVendor: [u16; 128], + pub szProduct: [u16; 128], + pub DeviceType: u32, +} +impl ::core::marker::Copy for NTMS_CHANGERTYPEINFORMATIONW {} +impl ::core::clone::Clone for NTMS_CHANGERTYPEINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_COMPUTERINFORMATION { + pub dwLibRequestPurgeTime: u32, + pub dwOpRequestPurgeTime: u32, + pub dwLibRequestFlags: u32, + pub dwOpRequestFlags: u32, + pub dwMediaPoolPolicy: u32, +} +impl ::core::marker::Copy for NTMS_COMPUTERINFORMATION {} +impl ::core::clone::Clone for NTMS_COMPUTERINFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_DRIVEINFORMATIONA { + pub Number: u32, + pub State: u32, + pub DriveType: ::windows_sys::core::GUID, + pub szDeviceName: [u8; 64], + pub szSerialNumber: [u8; 32], + pub szRevision: [u8; 32], + pub ScsiPort: u16, + pub ScsiBus: u16, + pub ScsiTarget: u16, + pub ScsiLun: u16, + pub dwMountCount: u32, + pub LastCleanedTs: super::super::Foundation::SYSTEMTIME, + pub SavedPartitionId: ::windows_sys::core::GUID, + pub Library: ::windows_sys::core::GUID, + pub Reserved: ::windows_sys::core::GUID, + pub dwDeferDismountDelay: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_DRIVEINFORMATIONA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_DRIVEINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_DRIVEINFORMATIONW { + pub Number: u32, + pub State: u32, + pub DriveType: ::windows_sys::core::GUID, + pub szDeviceName: [u16; 64], + pub szSerialNumber: [u16; 32], + pub szRevision: [u16; 32], + pub ScsiPort: u16, + pub ScsiBus: u16, + pub ScsiTarget: u16, + pub ScsiLun: u16, + pub dwMountCount: u32, + pub LastCleanedTs: super::super::Foundation::SYSTEMTIME, + pub SavedPartitionId: ::windows_sys::core::GUID, + pub Library: ::windows_sys::core::GUID, + pub Reserved: ::windows_sys::core::GUID, + pub dwDeferDismountDelay: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_DRIVEINFORMATIONW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_DRIVEINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_DRIVETYPEINFORMATIONA { + pub szVendor: [u8; 128], + pub szProduct: [u8; 128], + pub NumberOfHeads: u32, + pub DeviceType: FILE_DEVICE_TYPE, +} +impl ::core::marker::Copy for NTMS_DRIVETYPEINFORMATIONA {} +impl ::core::clone::Clone for NTMS_DRIVETYPEINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_DRIVETYPEINFORMATIONW { + pub szVendor: [u16; 128], + pub szProduct: [u16; 128], + pub NumberOfHeads: u32, + pub DeviceType: FILE_DEVICE_TYPE, +} +impl ::core::marker::Copy for NTMS_DRIVETYPEINFORMATIONW {} +impl ::core::clone::Clone for NTMS_DRIVETYPEINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_FILESYSTEM_INFO { + pub FileSystemType: [u16; 64], + pub VolumeName: [u16; 256], + pub SerialNumber: u32, +} +impl ::core::marker::Copy for NTMS_FILESYSTEM_INFO {} +impl ::core::clone::Clone for NTMS_FILESYSTEM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_I1_LIBRARYINFORMATION { + pub LibraryType: u32, + pub CleanerSlot: ::windows_sys::core::GUID, + pub CleanerSlotDefault: ::windows_sys::core::GUID, + pub LibrarySupportsDriveCleaning: super::super::Foundation::BOOL, + pub BarCodeReaderInstalled: super::super::Foundation::BOOL, + pub InventoryMethod: u32, + pub dwCleanerUsesRemaining: u32, + pub FirstDriveNumber: u32, + pub dwNumberOfDrives: u32, + pub FirstSlotNumber: u32, + pub dwNumberOfSlots: u32, + pub FirstDoorNumber: u32, + pub dwNumberOfDoors: u32, + pub FirstPortNumber: u32, + pub dwNumberOfPorts: u32, + pub FirstChangerNumber: u32, + pub dwNumberOfChangers: u32, + pub dwNumberOfMedia: u32, + pub dwNumberOfMediaTypes: u32, + pub dwNumberOfLibRequests: u32, + pub Reserved: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_I1_LIBRARYINFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_I1_LIBRARYINFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_I1_LIBREQUESTINFORMATIONA { + pub OperationCode: u32, + pub OperationOption: u32, + pub State: u32, + pub PartitionId: ::windows_sys::core::GUID, + pub DriveId: ::windows_sys::core::GUID, + pub PhysMediaId: ::windows_sys::core::GUID, + pub Library: ::windows_sys::core::GUID, + pub SlotId: ::windows_sys::core::GUID, + pub TimeQueued: super::super::Foundation::SYSTEMTIME, + pub TimeCompleted: super::super::Foundation::SYSTEMTIME, + pub szApplication: [u8; 64], + pub szUser: [u8; 64], + pub szComputer: [u8; 64], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_I1_LIBREQUESTINFORMATIONA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_I1_LIBREQUESTINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_I1_LIBREQUESTINFORMATIONW { + pub OperationCode: u32, + pub OperationOption: u32, + pub State: u32, + pub PartitionId: ::windows_sys::core::GUID, + pub DriveId: ::windows_sys::core::GUID, + pub PhysMediaId: ::windows_sys::core::GUID, + pub Library: ::windows_sys::core::GUID, + pub SlotId: ::windows_sys::core::GUID, + pub TimeQueued: super::super::Foundation::SYSTEMTIME, + pub TimeCompleted: super::super::Foundation::SYSTEMTIME, + pub szApplication: [u16; 64], + pub szUser: [u16; 64], + pub szComputer: [u16; 64], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_I1_LIBREQUESTINFORMATIONW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_I1_LIBREQUESTINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_I1_OBJECTINFORMATIONA { + pub dwSize: u32, + pub dwType: u32, + pub Created: super::super::Foundation::SYSTEMTIME, + pub Modified: super::super::Foundation::SYSTEMTIME, + pub ObjectGuid: ::windows_sys::core::GUID, + pub Enabled: super::super::Foundation::BOOL, + pub dwOperationalState: u32, + pub szName: [u8; 64], + pub szDescription: [u8; 127], + pub Info: NTMS_I1_OBJECTINFORMATIONA_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_I1_OBJECTINFORMATIONA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_I1_OBJECTINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union NTMS_I1_OBJECTINFORMATIONA_0 { + pub Drive: NTMS_DRIVEINFORMATIONA, + pub DriveType: NTMS_DRIVETYPEINFORMATIONA, + pub Library: NTMS_I1_LIBRARYINFORMATION, + pub Changer: NTMS_CHANGERINFORMATIONA, + pub ChangerType: NTMS_CHANGERTYPEINFORMATIONA, + pub StorageSlot: NTMS_STORAGESLOTINFORMATION, + pub IEDoor: NTMS_IEDOORINFORMATION, + pub IEPort: NTMS_IEPORTINFORMATION, + pub PhysicalMedia: NTMS_I1_PMIDINFORMATIONA, + pub LogicalMedia: NTMS_LMIDINFORMATION, + pub Partition: NTMS_I1_PARTITIONINFORMATIONA, + pub MediaPool: NTMS_MEDIAPOOLINFORMATION, + pub MediaType: NTMS_MEDIATYPEINFORMATION, + pub LibRequest: NTMS_I1_LIBREQUESTINFORMATIONA, + pub OpRequest: NTMS_I1_OPREQUESTINFORMATIONA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_I1_OBJECTINFORMATIONA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_I1_OBJECTINFORMATIONA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_I1_OBJECTINFORMATIONW { + pub dwSize: u32, + pub dwType: u32, + pub Created: super::super::Foundation::SYSTEMTIME, + pub Modified: super::super::Foundation::SYSTEMTIME, + pub ObjectGuid: ::windows_sys::core::GUID, + pub Enabled: super::super::Foundation::BOOL, + pub dwOperationalState: u32, + pub szName: [u16; 64], + pub szDescription: [u16; 127], + pub Info: NTMS_I1_OBJECTINFORMATIONW_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_I1_OBJECTINFORMATIONW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_I1_OBJECTINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union NTMS_I1_OBJECTINFORMATIONW_0 { + pub Drive: NTMS_DRIVEINFORMATIONW, + pub DriveType: NTMS_DRIVETYPEINFORMATIONW, + pub Library: NTMS_I1_LIBRARYINFORMATION, + pub Changer: NTMS_CHANGERINFORMATIONW, + pub ChangerType: NTMS_CHANGERTYPEINFORMATIONW, + pub StorageSlot: NTMS_STORAGESLOTINFORMATION, + pub IEDoor: NTMS_IEDOORINFORMATION, + pub IEPort: NTMS_IEPORTINFORMATION, + pub PhysicalMedia: NTMS_I1_PMIDINFORMATIONW, + pub LogicalMedia: NTMS_LMIDINFORMATION, + pub Partition: NTMS_I1_PARTITIONINFORMATIONW, + pub MediaPool: NTMS_MEDIAPOOLINFORMATION, + pub MediaType: NTMS_MEDIATYPEINFORMATION, + pub LibRequest: NTMS_I1_LIBREQUESTINFORMATIONW, + pub OpRequest: NTMS_I1_OPREQUESTINFORMATIONW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_I1_OBJECTINFORMATIONW_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_I1_OBJECTINFORMATIONW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_I1_OPREQUESTINFORMATIONA { + pub Request: u32, + pub Submitted: super::super::Foundation::SYSTEMTIME, + pub State: u32, + pub szMessage: [u8; 127], + pub Arg1Type: u32, + pub Arg1: ::windows_sys::core::GUID, + pub Arg2Type: u32, + pub Arg2: ::windows_sys::core::GUID, + pub szApplication: [u8; 64], + pub szUser: [u8; 64], + pub szComputer: [u8; 64], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_I1_OPREQUESTINFORMATIONA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_I1_OPREQUESTINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_I1_OPREQUESTINFORMATIONW { + pub Request: u32, + pub Submitted: super::super::Foundation::SYSTEMTIME, + pub State: u32, + pub szMessage: [u16; 127], + pub Arg1Type: u32, + pub Arg1: ::windows_sys::core::GUID, + pub Arg2Type: u32, + pub Arg2: ::windows_sys::core::GUID, + pub szApplication: [u16; 64], + pub szUser: [u16; 64], + pub szComputer: [u16; 64], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_I1_OPREQUESTINFORMATIONW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_I1_OPREQUESTINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_I1_PARTITIONINFORMATIONA { + pub PhysicalMedia: ::windows_sys::core::GUID, + pub LogicalMedia: ::windows_sys::core::GUID, + pub State: u32, + pub Side: u16, + pub dwOmidLabelIdLength: u32, + pub OmidLabelId: [u8; 255], + pub szOmidLabelType: [u8; 64], + pub szOmidLabelInfo: [u8; 256], + pub dwMountCount: u32, + pub dwAllocateCount: u32, +} +impl ::core::marker::Copy for NTMS_I1_PARTITIONINFORMATIONA {} +impl ::core::clone::Clone for NTMS_I1_PARTITIONINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_I1_PARTITIONINFORMATIONW { + pub PhysicalMedia: ::windows_sys::core::GUID, + pub LogicalMedia: ::windows_sys::core::GUID, + pub State: u32, + pub Side: u16, + pub dwOmidLabelIdLength: u32, + pub OmidLabelId: [u8; 255], + pub szOmidLabelType: [u16; 64], + pub szOmidLabelInfo: [u16; 256], + pub dwMountCount: u32, + pub dwAllocateCount: u32, +} +impl ::core::marker::Copy for NTMS_I1_PARTITIONINFORMATIONW {} +impl ::core::clone::Clone for NTMS_I1_PARTITIONINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_I1_PMIDINFORMATIONA { + pub CurrentLibrary: ::windows_sys::core::GUID, + pub MediaPool: ::windows_sys::core::GUID, + pub Location: ::windows_sys::core::GUID, + pub LocationType: u32, + pub MediaType: ::windows_sys::core::GUID, + pub HomeSlot: ::windows_sys::core::GUID, + pub szBarCode: [u8; 64], + pub BarCodeState: u32, + pub szSequenceNumber: [u8; 32], + pub MediaState: u32, + pub dwNumberOfPartitions: u32, +} +impl ::core::marker::Copy for NTMS_I1_PMIDINFORMATIONA {} +impl ::core::clone::Clone for NTMS_I1_PMIDINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_I1_PMIDINFORMATIONW { + pub CurrentLibrary: ::windows_sys::core::GUID, + pub MediaPool: ::windows_sys::core::GUID, + pub Location: ::windows_sys::core::GUID, + pub LocationType: u32, + pub MediaType: ::windows_sys::core::GUID, + pub HomeSlot: ::windows_sys::core::GUID, + pub szBarCode: [u16; 64], + pub BarCodeState: u32, + pub szSequenceNumber: [u16; 32], + pub MediaState: u32, + pub dwNumberOfPartitions: u32, +} +impl ::core::marker::Copy for NTMS_I1_PMIDINFORMATIONW {} +impl ::core::clone::Clone for NTMS_I1_PMIDINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_IEDOORINFORMATION { + pub Number: u32, + pub State: u32, + pub MaxOpenSecs: u16, + pub Library: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NTMS_IEDOORINFORMATION {} +impl ::core::clone::Clone for NTMS_IEDOORINFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_IEPORTINFORMATION { + pub Number: u32, + pub Content: u32, + pub Position: u32, + pub MaxExtendSecs: u16, + pub Library: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NTMS_IEPORTINFORMATION {} +impl ::core::clone::Clone for NTMS_IEPORTINFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_LIBRARYINFORMATION { + pub LibraryType: u32, + pub CleanerSlot: ::windows_sys::core::GUID, + pub CleanerSlotDefault: ::windows_sys::core::GUID, + pub LibrarySupportsDriveCleaning: super::super::Foundation::BOOL, + pub BarCodeReaderInstalled: super::super::Foundation::BOOL, + pub InventoryMethod: u32, + pub dwCleanerUsesRemaining: u32, + pub FirstDriveNumber: u32, + pub dwNumberOfDrives: u32, + pub FirstSlotNumber: u32, + pub dwNumberOfSlots: u32, + pub FirstDoorNumber: u32, + pub dwNumberOfDoors: u32, + pub FirstPortNumber: u32, + pub dwNumberOfPorts: u32, + pub FirstChangerNumber: u32, + pub dwNumberOfChangers: u32, + pub dwNumberOfMedia: u32, + pub dwNumberOfMediaTypes: u32, + pub dwNumberOfLibRequests: u32, + pub Reserved: ::windows_sys::core::GUID, + pub AutoRecovery: super::super::Foundation::BOOL, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_LIBRARYINFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_LIBRARYINFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_LIBREQUESTINFORMATIONA { + pub OperationCode: u32, + pub OperationOption: u32, + pub State: u32, + pub PartitionId: ::windows_sys::core::GUID, + pub DriveId: ::windows_sys::core::GUID, + pub PhysMediaId: ::windows_sys::core::GUID, + pub Library: ::windows_sys::core::GUID, + pub SlotId: ::windows_sys::core::GUID, + pub TimeQueued: super::super::Foundation::SYSTEMTIME, + pub TimeCompleted: super::super::Foundation::SYSTEMTIME, + pub szApplication: [u8; 64], + pub szUser: [u8; 64], + pub szComputer: [u8; 64], + pub dwErrorCode: u32, + pub WorkItemId: ::windows_sys::core::GUID, + pub dwPriority: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_LIBREQUESTINFORMATIONA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_LIBREQUESTINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_LIBREQUESTINFORMATIONW { + pub OperationCode: u32, + pub OperationOption: u32, + pub State: u32, + pub PartitionId: ::windows_sys::core::GUID, + pub DriveId: ::windows_sys::core::GUID, + pub PhysMediaId: ::windows_sys::core::GUID, + pub Library: ::windows_sys::core::GUID, + pub SlotId: ::windows_sys::core::GUID, + pub TimeQueued: super::super::Foundation::SYSTEMTIME, + pub TimeCompleted: super::super::Foundation::SYSTEMTIME, + pub szApplication: [u16; 64], + pub szUser: [u16; 64], + pub szComputer: [u16; 64], + pub dwErrorCode: u32, + pub WorkItemId: ::windows_sys::core::GUID, + pub dwPriority: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_LIBREQUESTINFORMATIONW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_LIBREQUESTINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_LMIDINFORMATION { + pub MediaPool: ::windows_sys::core::GUID, + pub dwNumberOfPartitions: u32, +} +impl ::core::marker::Copy for NTMS_LMIDINFORMATION {} +impl ::core::clone::Clone for NTMS_LMIDINFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_MEDIAPOOLINFORMATION { + pub PoolType: u32, + pub MediaType: ::windows_sys::core::GUID, + pub Parent: ::windows_sys::core::GUID, + pub AllocationPolicy: u32, + pub DeallocationPolicy: u32, + pub dwMaxAllocates: u32, + pub dwNumberOfPhysicalMedia: u32, + pub dwNumberOfLogicalMedia: u32, + pub dwNumberOfMediaPools: u32, +} +impl ::core::marker::Copy for NTMS_MEDIAPOOLINFORMATION {} +impl ::core::clone::Clone for NTMS_MEDIAPOOLINFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_MEDIATYPEINFORMATION { + pub MediaType: u32, + pub NumberOfSides: u32, + pub ReadWriteCharacteristics: u32, + pub DeviceType: FILE_DEVICE_TYPE, +} +impl ::core::marker::Copy for NTMS_MEDIATYPEINFORMATION {} +impl ::core::clone::Clone for NTMS_MEDIATYPEINFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_MOUNT_INFORMATION { + pub dwSize: u32, + pub lpReserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NTMS_MOUNT_INFORMATION {} +impl ::core::clone::Clone for NTMS_MOUNT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_NOTIFICATIONINFORMATION { + pub dwOperation: u32, + pub ObjectId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NTMS_NOTIFICATIONINFORMATION {} +impl ::core::clone::Clone for NTMS_NOTIFICATIONINFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_OBJECTINFORMATIONA { + pub dwSize: u32, + pub dwType: u32, + pub Created: super::super::Foundation::SYSTEMTIME, + pub Modified: super::super::Foundation::SYSTEMTIME, + pub ObjectGuid: ::windows_sys::core::GUID, + pub Enabled: super::super::Foundation::BOOL, + pub dwOperationalState: u32, + pub szName: [u8; 64], + pub szDescription: [u8; 127], + pub Info: NTMS_OBJECTINFORMATIONA_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_OBJECTINFORMATIONA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_OBJECTINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union NTMS_OBJECTINFORMATIONA_0 { + pub Drive: NTMS_DRIVEINFORMATIONA, + pub DriveType: NTMS_DRIVETYPEINFORMATIONA, + pub Library: NTMS_LIBRARYINFORMATION, + pub Changer: NTMS_CHANGERINFORMATIONA, + pub ChangerType: NTMS_CHANGERTYPEINFORMATIONA, + pub StorageSlot: NTMS_STORAGESLOTINFORMATION, + pub IEDoor: NTMS_IEDOORINFORMATION, + pub IEPort: NTMS_IEPORTINFORMATION, + pub PhysicalMedia: NTMS_PMIDINFORMATIONA, + pub LogicalMedia: NTMS_LMIDINFORMATION, + pub Partition: NTMS_PARTITIONINFORMATIONA, + pub MediaPool: NTMS_MEDIAPOOLINFORMATION, + pub MediaType: NTMS_MEDIATYPEINFORMATION, + pub LibRequest: NTMS_LIBREQUESTINFORMATIONA, + pub OpRequest: NTMS_OPREQUESTINFORMATIONA, + pub Computer: NTMS_COMPUTERINFORMATION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_OBJECTINFORMATIONA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_OBJECTINFORMATIONA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_OBJECTINFORMATIONW { + pub dwSize: u32, + pub dwType: u32, + pub Created: super::super::Foundation::SYSTEMTIME, + pub Modified: super::super::Foundation::SYSTEMTIME, + pub ObjectGuid: ::windows_sys::core::GUID, + pub Enabled: super::super::Foundation::BOOL, + pub dwOperationalState: u32, + pub szName: [u16; 64], + pub szDescription: [u16; 127], + pub Info: NTMS_OBJECTINFORMATIONW_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_OBJECTINFORMATIONW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_OBJECTINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union NTMS_OBJECTINFORMATIONW_0 { + pub Drive: NTMS_DRIVEINFORMATIONW, + pub DriveType: NTMS_DRIVETYPEINFORMATIONW, + pub Library: NTMS_LIBRARYINFORMATION, + pub Changer: NTMS_CHANGERINFORMATIONW, + pub ChangerType: NTMS_CHANGERTYPEINFORMATIONW, + pub StorageSlot: NTMS_STORAGESLOTINFORMATION, + pub IEDoor: NTMS_IEDOORINFORMATION, + pub IEPort: NTMS_IEPORTINFORMATION, + pub PhysicalMedia: NTMS_PMIDINFORMATIONW, + pub LogicalMedia: NTMS_LMIDINFORMATION, + pub Partition: NTMS_PARTITIONINFORMATIONW, + pub MediaPool: NTMS_MEDIAPOOLINFORMATION, + pub MediaType: NTMS_MEDIATYPEINFORMATION, + pub LibRequest: NTMS_LIBREQUESTINFORMATIONW, + pub OpRequest: NTMS_OPREQUESTINFORMATIONW, + pub Computer: NTMS_COMPUTERINFORMATION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_OBJECTINFORMATIONW_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_OBJECTINFORMATIONW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_OPREQUESTINFORMATIONA { + pub Request: u32, + pub Submitted: super::super::Foundation::SYSTEMTIME, + pub State: u32, + pub szMessage: [u8; 256], + pub Arg1Type: u32, + pub Arg1: ::windows_sys::core::GUID, + pub Arg2Type: u32, + pub Arg2: ::windows_sys::core::GUID, + pub szApplication: [u8; 64], + pub szUser: [u8; 64], + pub szComputer: [u8; 64], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_OPREQUESTINFORMATIONA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_OPREQUESTINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NTMS_OPREQUESTINFORMATIONW { + pub Request: u32, + pub Submitted: super::super::Foundation::SYSTEMTIME, + pub State: u32, + pub szMessage: [u16; 256], + pub Arg1Type: u32, + pub Arg1: ::windows_sys::core::GUID, + pub Arg2Type: u32, + pub Arg2: ::windows_sys::core::GUID, + pub szApplication: [u16; 64], + pub szUser: [u16; 64], + pub szComputer: [u16; 64], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NTMS_OPREQUESTINFORMATIONW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NTMS_OPREQUESTINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_PARTITIONINFORMATIONA { + pub PhysicalMedia: ::windows_sys::core::GUID, + pub LogicalMedia: ::windows_sys::core::GUID, + pub State: u32, + pub Side: u16, + pub dwOmidLabelIdLength: u32, + pub OmidLabelId: [u8; 255], + pub szOmidLabelType: [u8; 64], + pub szOmidLabelInfo: [u8; 256], + pub dwMountCount: u32, + pub dwAllocateCount: u32, + pub Capacity: i64, +} +impl ::core::marker::Copy for NTMS_PARTITIONINFORMATIONA {} +impl ::core::clone::Clone for NTMS_PARTITIONINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_PARTITIONINFORMATIONW { + pub PhysicalMedia: ::windows_sys::core::GUID, + pub LogicalMedia: ::windows_sys::core::GUID, + pub State: u32, + pub Side: u16, + pub dwOmidLabelIdLength: u32, + pub OmidLabelId: [u8; 255], + pub szOmidLabelType: [u16; 64], + pub szOmidLabelInfo: [u16; 256], + pub dwMountCount: u32, + pub dwAllocateCount: u32, + pub Capacity: i64, +} +impl ::core::marker::Copy for NTMS_PARTITIONINFORMATIONW {} +impl ::core::clone::Clone for NTMS_PARTITIONINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_PMIDINFORMATIONA { + pub CurrentLibrary: ::windows_sys::core::GUID, + pub MediaPool: ::windows_sys::core::GUID, + pub Location: ::windows_sys::core::GUID, + pub LocationType: u32, + pub MediaType: ::windows_sys::core::GUID, + pub HomeSlot: ::windows_sys::core::GUID, + pub szBarCode: [u8; 64], + pub BarCodeState: u32, + pub szSequenceNumber: [u8; 32], + pub MediaState: u32, + pub dwNumberOfPartitions: u32, + pub dwMediaTypeCode: u32, + pub dwDensityCode: u32, + pub MountedPartition: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NTMS_PMIDINFORMATIONA {} +impl ::core::clone::Clone for NTMS_PMIDINFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_PMIDINFORMATIONW { + pub CurrentLibrary: ::windows_sys::core::GUID, + pub MediaPool: ::windows_sys::core::GUID, + pub Location: ::windows_sys::core::GUID, + pub LocationType: u32, + pub MediaType: ::windows_sys::core::GUID, + pub HomeSlot: ::windows_sys::core::GUID, + pub szBarCode: [u16; 64], + pub BarCodeState: u32, + pub szSequenceNumber: [u16; 32], + pub MediaState: u32, + pub dwNumberOfPartitions: u32, + pub dwMediaTypeCode: u32, + pub dwDensityCode: u32, + pub MountedPartition: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NTMS_PMIDINFORMATIONW {} +impl ::core::clone::Clone for NTMS_PMIDINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTMS_STORAGESLOTINFORMATION { + pub Number: u32, + pub State: u32, + pub Library: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NTMS_STORAGESLOTINFORMATION {} +impl ::core::clone::Clone for NTMS_STORAGESLOTINFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OFSTRUCT { + pub cBytes: u8, + pub fFixedDisk: u8, + pub nErrCode: u16, + pub Reserved1: u16, + pub Reserved2: u16, + pub szPathName: [u8; 128], +} +impl ::core::marker::Copy for OFSTRUCT {} +impl ::core::clone::Clone for OFSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPARSE_GUID_DATA_BUFFER { + pub ReparseTag: u32, + pub ReparseDataLength: u16, + pub Reserved: u16, + pub ReparseGuid: ::windows_sys::core::GUID, + pub GenericReparseBuffer: REPARSE_GUID_DATA_BUFFER_0, +} +impl ::core::marker::Copy for REPARSE_GUID_DATA_BUFFER {} +impl ::core::clone::Clone for REPARSE_GUID_DATA_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPARSE_GUID_DATA_BUFFER_0 { + pub DataBuffer: [u8; 1], +} +impl ::core::marker::Copy for REPARSE_GUID_DATA_BUFFER_0 {} +impl ::core::clone::Clone for REPARSE_GUID_DATA_BUFFER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVER_ALIAS_INFO_0 { + pub srvai0_alias: ::windows_sys::core::PWSTR, + pub srvai0_target: ::windows_sys::core::PWSTR, + pub srvai0_default: super::super::Foundation::BOOLEAN, + pub srvai0_reserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVER_ALIAS_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVER_ALIAS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVER_CERTIFICATE_INFO_0 { + pub srvci0_name: ::windows_sys::core::PWSTR, + pub srvci0_subject: ::windows_sys::core::PWSTR, + pub srvci0_issuer: ::windows_sys::core::PWSTR, + pub srvci0_thumbprint: ::windows_sys::core::PWSTR, + pub srvci0_friendlyname: ::windows_sys::core::PWSTR, + pub srvci0_notbefore: ::windows_sys::core::PWSTR, + pub srvci0_notafter: ::windows_sys::core::PWSTR, + pub srvci0_storelocation: ::windows_sys::core::PWSTR, + pub srvci0_storename: ::windows_sys::core::PWSTR, + pub srvci0_renewalchain: ::windows_sys::core::PWSTR, + pub srvci0_type: u32, + pub srvci0_flags: u32, + pub srvci0_mapping_status: u32, +} +impl ::core::marker::Copy for SERVER_CERTIFICATE_INFO_0 {} +impl ::core::clone::Clone for SERVER_CERTIFICATE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SESSION_INFO_0 { + pub sesi0_cname: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SESSION_INFO_0 {} +impl ::core::clone::Clone for SESSION_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SESSION_INFO_1 { + pub sesi1_cname: ::windows_sys::core::PWSTR, + pub sesi1_username: ::windows_sys::core::PWSTR, + pub sesi1_num_opens: u32, + pub sesi1_time: u32, + pub sesi1_idle_time: u32, + pub sesi1_user_flags: SESSION_INFO_USER_FLAGS, +} +impl ::core::marker::Copy for SESSION_INFO_1 {} +impl ::core::clone::Clone for SESSION_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SESSION_INFO_10 { + pub sesi10_cname: ::windows_sys::core::PWSTR, + pub sesi10_username: ::windows_sys::core::PWSTR, + pub sesi10_time: u32, + pub sesi10_idle_time: u32, +} +impl ::core::marker::Copy for SESSION_INFO_10 {} +impl ::core::clone::Clone for SESSION_INFO_10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SESSION_INFO_2 { + pub sesi2_cname: ::windows_sys::core::PWSTR, + pub sesi2_username: ::windows_sys::core::PWSTR, + pub sesi2_num_opens: u32, + pub sesi2_time: u32, + pub sesi2_idle_time: u32, + pub sesi2_user_flags: SESSION_INFO_USER_FLAGS, + pub sesi2_cltype_name: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SESSION_INFO_2 {} +impl ::core::clone::Clone for SESSION_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SESSION_INFO_502 { + pub sesi502_cname: ::windows_sys::core::PWSTR, + pub sesi502_username: ::windows_sys::core::PWSTR, + pub sesi502_num_opens: u32, + pub sesi502_time: u32, + pub sesi502_idle_time: u32, + pub sesi502_user_flags: SESSION_INFO_USER_FLAGS, + pub sesi502_cltype_name: ::windows_sys::core::PWSTR, + pub sesi502_transport: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SESSION_INFO_502 {} +impl ::core::clone::Clone for SESSION_INFO_502 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHARE_INFO_0 { + pub shi0_netname: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SHARE_INFO_0 {} +impl ::core::clone::Clone for SHARE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHARE_INFO_1 { + pub shi1_netname: ::windows_sys::core::PWSTR, + pub shi1_type: SHARE_TYPE, + pub shi1_remark: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SHARE_INFO_1 {} +impl ::core::clone::Clone for SHARE_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHARE_INFO_1004 { + pub shi1004_remark: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SHARE_INFO_1004 {} +impl ::core::clone::Clone for SHARE_INFO_1004 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHARE_INFO_1005 { + pub shi1005_flags: u32, +} +impl ::core::marker::Copy for SHARE_INFO_1005 {} +impl ::core::clone::Clone for SHARE_INFO_1005 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHARE_INFO_1006 { + pub shi1006_max_uses: u32, +} +impl ::core::marker::Copy for SHARE_INFO_1006 {} +impl ::core::clone::Clone for SHARE_INFO_1006 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct SHARE_INFO_1501 { + pub shi1501_reserved: u32, + pub shi1501_security_descriptor: super::super::Security::PSECURITY_DESCRIPTOR, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for SHARE_INFO_1501 {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for SHARE_INFO_1501 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHARE_INFO_1503 { + pub shi1503_sharefilter: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for SHARE_INFO_1503 {} +impl ::core::clone::Clone for SHARE_INFO_1503 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHARE_INFO_2 { + pub shi2_netname: ::windows_sys::core::PWSTR, + pub shi2_type: SHARE_TYPE, + pub shi2_remark: ::windows_sys::core::PWSTR, + pub shi2_permissions: SHARE_INFO_PERMISSIONS, + pub shi2_max_uses: u32, + pub shi2_current_uses: u32, + pub shi2_path: ::windows_sys::core::PWSTR, + pub shi2_passwd: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SHARE_INFO_2 {} +impl ::core::clone::Clone for SHARE_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHARE_INFO_501 { + pub shi501_netname: ::windows_sys::core::PWSTR, + pub shi501_type: SHARE_TYPE, + pub shi501_remark: ::windows_sys::core::PWSTR, + pub shi501_flags: u32, +} +impl ::core::marker::Copy for SHARE_INFO_501 {} +impl ::core::clone::Clone for SHARE_INFO_501 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct SHARE_INFO_502 { + pub shi502_netname: ::windows_sys::core::PWSTR, + pub shi502_type: SHARE_TYPE, + pub shi502_remark: ::windows_sys::core::PWSTR, + pub shi502_permissions: SHARE_INFO_PERMISSIONS, + pub shi502_max_uses: u32, + pub shi502_current_uses: u32, + pub shi502_path: ::windows_sys::core::PWSTR, + pub shi502_passwd: ::windows_sys::core::PWSTR, + pub shi502_reserved: u32, + pub shi502_security_descriptor: super::super::Security::PSECURITY_DESCRIPTOR, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for SHARE_INFO_502 {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for SHARE_INFO_502 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct SHARE_INFO_503 { + pub shi503_netname: ::windows_sys::core::PWSTR, + pub shi503_type: SHARE_TYPE, + pub shi503_remark: ::windows_sys::core::PWSTR, + pub shi503_permissions: SHARE_INFO_PERMISSIONS, + pub shi503_max_uses: u32, + pub shi503_current_uses: u32, + pub shi503_path: ::windows_sys::core::PWSTR, + pub shi503_passwd: ::windows_sys::core::PWSTR, + pub shi503_servername: ::windows_sys::core::PWSTR, + pub shi503_reserved: u32, + pub shi503_security_descriptor: super::super::Security::PSECURITY_DESCRIPTOR, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for SHARE_INFO_503 {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for SHARE_INFO_503 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STAT_SERVER_0 { + pub sts0_start: u32, + pub sts0_fopens: u32, + pub sts0_devopens: u32, + pub sts0_jobsqueued: u32, + pub sts0_sopens: u32, + pub sts0_stimedout: u32, + pub sts0_serrorout: u32, + pub sts0_pwerrors: u32, + pub sts0_permerrors: u32, + pub sts0_syserrors: u32, + pub sts0_bytessent_low: u32, + pub sts0_bytessent_high: u32, + pub sts0_bytesrcvd_low: u32, + pub sts0_bytesrcvd_high: u32, + pub sts0_avresponse: u32, + pub sts0_reqbufneed: u32, + pub sts0_bigbufneed: u32, +} +impl ::core::marker::Copy for STAT_SERVER_0 {} +impl ::core::clone::Clone for STAT_SERVER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STAT_WORKSTATION_0 { + pub StatisticsStartTime: i64, + pub BytesReceived: i64, + pub SmbsReceived: i64, + pub PagingReadBytesRequested: i64, + pub NonPagingReadBytesRequested: i64, + pub CacheReadBytesRequested: i64, + pub NetworkReadBytesRequested: i64, + pub BytesTransmitted: i64, + pub SmbsTransmitted: i64, + pub PagingWriteBytesRequested: i64, + pub NonPagingWriteBytesRequested: i64, + pub CacheWriteBytesRequested: i64, + pub NetworkWriteBytesRequested: i64, + pub InitiallyFailedOperations: u32, + pub FailedCompletionOperations: u32, + pub ReadOperations: u32, + pub RandomReadOperations: u32, + pub ReadSmbs: u32, + pub LargeReadSmbs: u32, + pub SmallReadSmbs: u32, + pub WriteOperations: u32, + pub RandomWriteOperations: u32, + pub WriteSmbs: u32, + pub LargeWriteSmbs: u32, + pub SmallWriteSmbs: u32, + pub RawReadsDenied: u32, + pub RawWritesDenied: u32, + pub NetworkErrors: u32, + pub Sessions: u32, + pub FailedSessions: u32, + pub Reconnects: u32, + pub CoreConnects: u32, + pub Lanman20Connects: u32, + pub Lanman21Connects: u32, + pub LanmanNtConnects: u32, + pub ServerDisconnects: u32, + pub HungSessions: u32, + pub UseCount: u32, + pub FailedUseCount: u32, + pub CurrentCommands: u32, +} +impl ::core::marker::Copy for STAT_WORKSTATION_0 {} +impl ::core::clone::Clone for STAT_WORKSTATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TAPE_ERASE { + pub Type: ERASE_TAPE_TYPE, + pub Immediate: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TAPE_ERASE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TAPE_ERASE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TAPE_GET_POSITION { + pub Type: TAPE_POSITION_TYPE, + pub Partition: u32, + pub Offset: i64, +} +impl ::core::marker::Copy for TAPE_GET_POSITION {} +impl ::core::clone::Clone for TAPE_GET_POSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TAPE_PREPARE { + pub Operation: PREPARE_TAPE_OPERATION, + pub Immediate: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TAPE_PREPARE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TAPE_PREPARE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TAPE_SET_POSITION { + pub Method: TAPE_POSITION_METHOD, + pub Partition: u32, + pub Offset: i64, + pub Immediate: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TAPE_SET_POSITION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TAPE_SET_POSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TAPE_WRITE_MARKS { + pub Type: TAPEMARK_TYPE, + pub Count: u32, + pub Immediate: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TAPE_WRITE_MARKS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TAPE_WRITE_MARKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTION_NOTIFICATION { + pub TransactionKey: *mut ::core::ffi::c_void, + pub TransactionNotification: u32, + pub TmVirtualClock: i64, + pub ArgumentLength: u32, +} +impl ::core::marker::Copy for TRANSACTION_NOTIFICATION {} +impl ::core::clone::Clone for TRANSACTION_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT { + pub MarshalCookie: u32, + pub UOW: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT {} +impl ::core::clone::Clone for TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT { + pub PropagationCookie: u32, + pub UOW: ::windows_sys::core::GUID, + pub TmIdentity: ::windows_sys::core::GUID, + pub BufferLength: u32, +} +impl ::core::marker::Copy for TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT {} +impl ::core::clone::Clone for TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT { + pub EnlistmentId: ::windows_sys::core::GUID, + pub UOW: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT {} +impl ::core::clone::Clone for TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT { + pub SavepointId: u32, +} +impl ::core::marker::Copy for TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT {} +impl ::core::clone::Clone for TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT { + pub TmIdentity: ::windows_sys::core::GUID, + pub Flags: u32, +} +impl ::core::marker::Copy for TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT {} +impl ::core::clone::Clone for TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct TXF_ID { + pub Anonymous: TXF_ID_0, +} +impl ::core::marker::Copy for TXF_ID {} +impl ::core::clone::Clone for TXF_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct TXF_ID_0 { + pub LowPart: i64, + pub HighPart: i64, +} +impl ::core::marker::Copy for TXF_ID_0 {} +impl ::core::clone::Clone for TXF_ID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct TXF_LOG_RECORD_AFFECTED_FILE { + pub Version: u16, + pub RecordLength: u32, + pub Flags: u32, + pub TxfFileId: TXF_ID, + pub KtmGuid: ::windows_sys::core::GUID, + pub FileNameLength: u32, + pub FileNameByteOffsetInStructure: u32, +} +impl ::core::marker::Copy for TXF_LOG_RECORD_AFFECTED_FILE {} +impl ::core::clone::Clone for TXF_LOG_RECORD_AFFECTED_FILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct TXF_LOG_RECORD_BASE { + pub Version: u16, + pub RecordType: TXF_LOG_RECORD_TYPE, + pub RecordLength: u32, +} +impl ::core::marker::Copy for TXF_LOG_RECORD_BASE {} +impl ::core::clone::Clone for TXF_LOG_RECORD_BASE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct TXF_LOG_RECORD_TRUNCATE { + pub Version: u16, + pub RecordType: u16, + pub RecordLength: u32, + pub Flags: u32, + pub TxfFileId: TXF_ID, + pub KtmGuid: ::windows_sys::core::GUID, + pub NewFileSize: i64, + pub FileNameLength: u32, + pub FileNameByteOffsetInStructure: u32, +} +impl ::core::marker::Copy for TXF_LOG_RECORD_TRUNCATE {} +impl ::core::clone::Clone for TXF_LOG_RECORD_TRUNCATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct TXF_LOG_RECORD_WRITE { + pub Version: u16, + pub RecordType: u16, + pub RecordLength: u32, + pub Flags: u32, + pub TxfFileId: TXF_ID, + pub KtmGuid: ::windows_sys::core::GUID, + pub ByteOffsetInFile: i64, + pub NumBytesWritten: u32, + pub ByteOffsetInStructure: u32, + pub FileNameLength: u32, + pub FileNameByteOffsetInStructure: u32, +} +impl ::core::marker::Copy for TXF_LOG_RECORD_WRITE {} +impl ::core::clone::Clone for TXF_LOG_RECORD_WRITE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct VOLUME_ALLOCATE_BC_STREAM_INPUT { + pub Version: u32, + pub RequestsPerPeriod: u32, + pub Period: u32, + pub RetryFailures: super::super::Foundation::BOOLEAN, + pub Discardable: super::super::Foundation::BOOLEAN, + pub Reserved1: [super::super::Foundation::BOOLEAN; 2], + pub LowestByteOffset: u64, + pub HighestByteOffset: u64, + pub AccessType: u32, + pub AccessMode: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for VOLUME_ALLOCATE_BC_STREAM_INPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for VOLUME_ALLOCATE_BC_STREAM_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_ALLOCATE_BC_STREAM_OUTPUT { + pub RequestSize: u64, + pub NumOutStandingRequests: u32, +} +impl ::core::marker::Copy for VOLUME_ALLOCATE_BC_STREAM_OUTPUT {} +impl ::core::clone::Clone for VOLUME_ALLOCATE_BC_STREAM_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_ALLOCATION_HINT_INPUT { + pub ClusterSize: u32, + pub NumberOfClusters: u32, + pub StartingClusterNumber: i64, +} +impl ::core::marker::Copy for VOLUME_ALLOCATION_HINT_INPUT {} +impl ::core::clone::Clone for VOLUME_ALLOCATION_HINT_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_ALLOCATION_HINT_OUTPUT { + pub Bitmap: [u32; 1], +} +impl ::core::marker::Copy for VOLUME_ALLOCATION_HINT_OUTPUT {} +impl ::core::clone::Clone for VOLUME_ALLOCATION_HINT_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_CRITICAL_IO { + pub AccessType: u32, + pub ExtentsCount: u32, + pub Extents: [FILE_EXTENT; 1], +} +impl ::core::marker::Copy for VOLUME_CRITICAL_IO {} +impl ::core::clone::Clone for VOLUME_CRITICAL_IO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_FAILOVER_SET { + pub NumberOfDisks: u32, + pub DiskNumbers: [u32; 1], +} +impl ::core::marker::Copy for VOLUME_FAILOVER_SET {} +impl ::core::clone::Clone for VOLUME_FAILOVER_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_GET_BC_PROPERTIES_INPUT { + pub Version: u32, + pub Reserved1: u32, + pub LowestByteOffset: u64, + pub HighestByteOffset: u64, + pub AccessType: u32, + pub AccessMode: u32, +} +impl ::core::marker::Copy for VOLUME_GET_BC_PROPERTIES_INPUT {} +impl ::core::clone::Clone for VOLUME_GET_BC_PROPERTIES_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_GET_BC_PROPERTIES_OUTPUT { + pub MaximumRequestsPerPeriod: u32, + pub MinimumPeriod: u32, + pub MaximumRequestSize: u64, + pub EstimatedTimePerRequest: u32, + pub NumOutStandingRequests: u32, + pub RequestSize: u64, +} +impl ::core::marker::Copy for VOLUME_GET_BC_PROPERTIES_OUTPUT {} +impl ::core::clone::Clone for VOLUME_GET_BC_PROPERTIES_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_LOGICAL_OFFSET { + pub LogicalOffset: i64, +} +impl ::core::marker::Copy for VOLUME_LOGICAL_OFFSET {} +impl ::core::clone::Clone for VOLUME_LOGICAL_OFFSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_NUMBER { + pub VolumeNumber: u32, + pub VolumeManagerName: [u16; 8], +} +impl ::core::marker::Copy for VOLUME_NUMBER {} +impl ::core::clone::Clone for VOLUME_NUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_PHYSICAL_OFFSET { + pub DiskNumber: u32, + pub Offset: i64, +} +impl ::core::marker::Copy for VOLUME_PHYSICAL_OFFSET {} +impl ::core::clone::Clone for VOLUME_PHYSICAL_OFFSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_PHYSICAL_OFFSETS { + pub NumberOfPhysicalOffsets: u32, + pub PhysicalOffset: [VOLUME_PHYSICAL_OFFSET; 1], +} +impl ::core::marker::Copy for VOLUME_PHYSICAL_OFFSETS {} +impl ::core::clone::Clone for VOLUME_PHYSICAL_OFFSETS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_READ_PLEX_INPUT { + pub ByteOffset: i64, + pub Length: u32, + pub PlexNumber: u32, +} +impl ::core::marker::Copy for VOLUME_READ_PLEX_INPUT {} +impl ::core::clone::Clone for VOLUME_READ_PLEX_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct VOLUME_SET_GPT_ATTRIBUTES_INFORMATION { + pub GptAttributes: u64, + pub RevertOnClose: super::super::Foundation::BOOLEAN, + pub ApplyToAllConnectedVolumes: super::super::Foundation::BOOLEAN, + pub Reserved1: u16, + pub Reserved2: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for VOLUME_SET_GPT_ATTRIBUTES_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for VOLUME_SET_GPT_ATTRIBUTES_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_SHRINK_INFO { + pub VolumeSize: u64, +} +impl ::core::marker::Copy for VOLUME_SHRINK_INFO {} +impl ::core::clone::Clone for VOLUME_SHRINK_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VS_FIXEDFILEINFO { + pub dwSignature: u32, + pub dwStrucVersion: u32, + pub dwFileVersionMS: u32, + pub dwFileVersionLS: u32, + pub dwProductVersionMS: u32, + pub dwProductVersionLS: u32, + pub dwFileFlagsMask: u32, + pub dwFileFlags: VS_FIXEDFILEINFO_FILE_FLAGS, + pub dwFileOS: VS_FIXEDFILEINFO_FILE_OS, + pub dwFileType: u32, + pub dwFileSubtype: u32, + pub dwFileDateMS: u32, + pub dwFileDateLS: u32, +} +impl ::core::marker::Copy for VS_FIXEDFILEINFO {} +impl ::core::clone::Clone for VS_FIXEDFILEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIM_ENTRY_INFO { + pub WimEntryInfoSize: u32, + pub WimType: u32, + pub DataSourceId: i64, + pub WimGuid: ::windows_sys::core::GUID, + pub WimPath: ::windows_sys::core::PCWSTR, + pub WimIndex: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for WIM_ENTRY_INFO {} +impl ::core::clone::Clone for WIM_ENTRY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIM_EXTERNAL_FILE_INFO { + pub DataSourceId: i64, + pub ResourceHash: [u8; 20], + pub Flags: u32, +} +impl ::core::marker::Copy for WIM_EXTERNAL_FILE_INFO {} +impl ::core::clone::Clone for WIM_EXTERNAL_FILE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WIN32_FILE_ATTRIBUTE_DATA { + pub dwFileAttributes: u32, + pub ftCreationTime: super::super::Foundation::FILETIME, + pub ftLastAccessTime: super::super::Foundation::FILETIME, + pub ftLastWriteTime: super::super::Foundation::FILETIME, + pub nFileSizeHigh: u32, + pub nFileSizeLow: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WIN32_FILE_ATTRIBUTE_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WIN32_FILE_ATTRIBUTE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WIN32_FIND_DATAA { + pub dwFileAttributes: u32, + pub ftCreationTime: super::super::Foundation::FILETIME, + pub ftLastAccessTime: super::super::Foundation::FILETIME, + pub ftLastWriteTime: super::super::Foundation::FILETIME, + pub nFileSizeHigh: u32, + pub nFileSizeLow: u32, + pub dwReserved0: u32, + pub dwReserved1: u32, + pub cFileName: [u8; 260], + pub cAlternateFileName: [u8; 14], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WIN32_FIND_DATAA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WIN32_FIND_DATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WIN32_FIND_DATAW { + pub dwFileAttributes: u32, + pub ftCreationTime: super::super::Foundation::FILETIME, + pub ftLastAccessTime: super::super::Foundation::FILETIME, + pub ftLastWriteTime: super::super::Foundation::FILETIME, + pub nFileSizeHigh: u32, + pub nFileSizeLow: u32, + pub dwReserved0: u32, + pub dwReserved1: u32, + pub cFileName: [u16; 260], + pub cAlternateFileName: [u16; 14], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WIN32_FIND_DATAW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WIN32_FIND_DATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIN32_FIND_STREAM_DATA { + pub StreamSize: i64, + pub cStreamName: [u16; 296], +} +impl ::core::marker::Copy for WIN32_FIND_STREAM_DATA {} +impl ::core::clone::Clone for WIN32_FIND_STREAM_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIN32_STREAM_ID { + pub dwStreamId: WIN_STREAM_ID, + pub dwStreamAttributes: u32, + pub Size: i64, + pub dwStreamNameSize: u32, + pub cStreamName: [u16; 1], +} +impl ::core::marker::Copy for WIN32_STREAM_ID {} +impl ::core::clone::Clone for WIN32_STREAM_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WOF_FILE_COMPRESSION_INFO_V0 { + pub Algorithm: u32, +} +impl ::core::marker::Copy for WOF_FILE_COMPRESSION_INFO_V0 {} +impl ::core::clone::Clone for WOF_FILE_COMPRESSION_INFO_V0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WOF_FILE_COMPRESSION_INFO_V1 { + pub Algorithm: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for WOF_FILE_COMPRESSION_INFO_V1 {} +impl ::core::clone::Clone for WOF_FILE_COMPRESSION_INFO_V1 { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub type CACHE_ACCESS_CHECK = ::core::option::Option super::super::Foundation::BOOL>; +pub type CACHE_DESTROY_CALLBACK = ::core::option::Option ()>; +pub type CACHE_KEY_COMPARE = ::core::option::Option i32>; +pub type CACHE_KEY_HASH = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type CACHE_READ_CALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +pub type CLAIMMEDIALABEL = ::core::option::Option u32>; +pub type CLAIMMEDIALABELEX = ::core::option::Option u32>; +pub type CLFS_BLOCK_ALLOCATION = ::core::option::Option *mut ::core::ffi::c_void>; +pub type CLFS_BLOCK_DEALLOCATION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FCACHE_CREATE_CALLBACK = ::core::option::Option super::super::Foundation::HANDLE>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FCACHE_RICHCREATE_CALLBACK = ::core::option::Option super::super::Foundation::HANDLE>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPPROGRESS_ROUTINE = ::core::option::Option u32>; +pub type MAXMEDIALABEL = ::core::option::Option u32>; +pub type PCLFS_COMPLETION_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PCOPYFILE2_PROGRESS_ROUTINE = ::core::option::Option COPYFILE2_MESSAGE_ACTION>; +pub type PFE_EXPORT_FUNC = ::core::option::Option u32>; +pub type PFE_IMPORT_FUNC = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_IO_COMPLETION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLOG_FULL_HANDLER_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLOG_TAIL_ADVANCE_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PLOG_UNPINNED_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WofEnumEntryProc = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WofEnumFilesProc = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Imapi/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Imapi/mod.rs new file mode 100644 index 000000000..7c4a8cfa1 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Imapi/mod.rs @@ -0,0 +1,773 @@ +::windows_targets::link!("mapi32.dll" "system" fn CloseIMsgSession(lpmsgsess : LPMSGSESS) -> ()); +#[cfg(feature = "Win32_System_AddressBook")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_System_AddressBook\"`"] fn GetAttribIMsgOnIStg(lpobject : *mut ::core::ffi::c_void, lpproptagarray : *mut super::super::System::AddressBook:: SPropTagArray, lpppropattrarray : *mut *mut SPropAttrArray) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mapi32.dll" "system" fn MapStorageSCode(stgscode : i32) -> i32); +#[cfg(all(feature = "Win32_System_AddressBook", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_System_AddressBook\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn OpenIMsgOnIStg(lpmsgsess : LPMSGSESS, lpallocatebuffer : super::super::System::AddressBook:: LPALLOCATEBUFFER, lpallocatemore : super::super::System::AddressBook:: LPALLOCATEMORE, lpfreebuffer : super::super::System::AddressBook:: LPFREEBUFFER, lpmalloc : super::super::System::Com:: IMalloc, lpmapisup : *mut ::core::ffi::c_void, lpstg : super::super::System::Com::StructuredStorage:: IStorage, lpfmsgcallrelease : *mut MSGCALLRELEASE, ulcallerdata : u32, ulflags : u32, lppmsg : *mut super::super::System::AddressBook:: IMessage) -> i32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn OpenIMsgSession(lpmalloc : super::super::System::Com:: IMalloc, ulflags : u32, lppmsgsess : *mut LPMSGSESS) -> i32); +#[cfg(feature = "Win32_System_AddressBook")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_System_AddressBook\"`"] fn SetAttribIMsgOnIStg(lpobject : *mut ::core::ffi::c_void, lpproptags : *mut super::super::System::AddressBook:: SPropTagArray, lppropattrs : *mut SPropAttrArray, lpppropproblems : *mut *mut super::super::System::AddressBook:: SPropProblemArray) -> ::windows_sys::core::HRESULT); +pub type DDiscFormat2DataEvents = *mut ::core::ffi::c_void; +pub type DDiscFormat2EraseEvents = *mut ::core::ffi::c_void; +pub type DDiscFormat2RawCDEvents = *mut ::core::ffi::c_void; +pub type DDiscFormat2TrackAtOnceEvents = *mut ::core::ffi::c_void; +pub type DDiscMaster2Events = *mut ::core::ffi::c_void; +pub type DFileSystemImageEvents = *mut ::core::ffi::c_void; +pub type DFileSystemImageImportEvents = *mut ::core::ffi::c_void; +pub type DWriteEngine2Events = *mut ::core::ffi::c_void; +pub type IBlockRange = *mut ::core::ffi::c_void; +pub type IBlockRangeList = *mut ::core::ffi::c_void; +pub type IBootOptions = *mut ::core::ffi::c_void; +pub type IBurnVerification = *mut ::core::ffi::c_void; +pub type IDiscFormat2 = *mut ::core::ffi::c_void; +pub type IDiscFormat2Data = *mut ::core::ffi::c_void; +pub type IDiscFormat2DataEventArgs = *mut ::core::ffi::c_void; +pub type IDiscFormat2Erase = *mut ::core::ffi::c_void; +pub type IDiscFormat2RawCD = *mut ::core::ffi::c_void; +pub type IDiscFormat2RawCDEventArgs = *mut ::core::ffi::c_void; +pub type IDiscFormat2TrackAtOnce = *mut ::core::ffi::c_void; +pub type IDiscFormat2TrackAtOnceEventArgs = *mut ::core::ffi::c_void; +pub type IDiscMaster = *mut ::core::ffi::c_void; +pub type IDiscMaster2 = *mut ::core::ffi::c_void; +pub type IDiscMasterProgressEvents = *mut ::core::ffi::c_void; +pub type IDiscRecorder = *mut ::core::ffi::c_void; +pub type IDiscRecorder2 = *mut ::core::ffi::c_void; +pub type IDiscRecorder2Ex = *mut ::core::ffi::c_void; +pub type IEnumDiscMasterFormats = *mut ::core::ffi::c_void; +pub type IEnumDiscRecorders = *mut ::core::ffi::c_void; +pub type IEnumFsiItems = *mut ::core::ffi::c_void; +pub type IEnumProgressItems = *mut ::core::ffi::c_void; +pub type IFileSystemImage = *mut ::core::ffi::c_void; +pub type IFileSystemImage2 = *mut ::core::ffi::c_void; +pub type IFileSystemImage3 = *mut ::core::ffi::c_void; +pub type IFileSystemImageResult = *mut ::core::ffi::c_void; +pub type IFileSystemImageResult2 = *mut ::core::ffi::c_void; +pub type IFsiDirectoryItem = *mut ::core::ffi::c_void; +pub type IFsiDirectoryItem2 = *mut ::core::ffi::c_void; +pub type IFsiFileItem = *mut ::core::ffi::c_void; +pub type IFsiFileItem2 = *mut ::core::ffi::c_void; +pub type IFsiItem = *mut ::core::ffi::c_void; +pub type IFsiNamedStreams = *mut ::core::ffi::c_void; +pub type IIsoImageManager = *mut ::core::ffi::c_void; +pub type IJolietDiscMaster = *mut ::core::ffi::c_void; +pub type IMultisession = *mut ::core::ffi::c_void; +pub type IMultisessionRandomWrite = *mut ::core::ffi::c_void; +pub type IMultisessionSequential = *mut ::core::ffi::c_void; +pub type IMultisessionSequential2 = *mut ::core::ffi::c_void; +pub type IProgressItem = *mut ::core::ffi::c_void; +pub type IProgressItems = *mut ::core::ffi::c_void; +pub type IRawCDImageCreator = *mut ::core::ffi::c_void; +pub type IRawCDImageTrackInfo = *mut ::core::ffi::c_void; +pub type IRedbookDiscMaster = *mut ::core::ffi::c_void; +pub type IStreamConcatenate = *mut ::core::ffi::c_void; +pub type IStreamInterleave = *mut ::core::ffi::c_void; +pub type IStreamPseudoRandomBased = *mut ::core::ffi::c_void; +pub type IWriteEngine2 = *mut ::core::ffi::c_void; +pub type IWriteEngine2EventArgs = *mut ::core::ffi::c_void; +pub type IWriteSpeedDescriptor = *mut ::core::ffi::c_void; +pub const BlockRange: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb507ca27_2204_11dd_966a_001aa01bbc58); +pub const BlockRangeList: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb507ca28_2204_11dd_966a_001aa01bbc58); +pub const BootOptions: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c941fce_975b_59be_a960_9a2a262853a5); +pub const CATID_SMTP_DNSRESOLVERRECORDSINK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbd0b4366_8e03_11d2_94f6_00c04f79f1d6); +pub const CATID_SMTP_DSN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x22b55731_f5f8_4d23_bd8f_87b52371a73a); +pub const CATID_SMTP_GET_AUX_DOMAIN_INFO_FLAGS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x84ff368a_fab3_43d7_bcdf_692c5b46e6b1); +pub const CATID_SMTP_LOG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x93d0a538_2c1e_4b68_a7c9_d73a8aa6ee97); +pub const CATID_SMTP_MAXMSGSIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xebf159de_a67e_11d2_94f7_00c04f79f1d6); +pub const CATID_SMTP_MSGTRACKLOG: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6df52aa_7db0_11d2_94f4_00c04f79f1d6); +pub const CATID_SMTP_ON_BEFORE_DATA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf6628c92_0d5e_11d2_aa68_00c04fa35b82); +pub const CATID_SMTP_ON_INBOUND_COMMAND: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf6628c8d_0d5e_11d2_aa68_00c04fa35b82); +pub const CATID_SMTP_ON_MESSAGE_START: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf6628c90_0d5e_11d2_aa68_00c04fa35b82); +pub const CATID_SMTP_ON_PER_RECIPIENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf6628c91_0d5e_11d2_aa68_00c04fa35b82); +pub const CATID_SMTP_ON_SERVER_RESPONSE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf6628c8e_0d5e_11d2_aa68_00c04fa35b82); +pub const CATID_SMTP_ON_SESSION_END: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf6628c93_0d5e_11d2_aa68_00c04fa35b82); +pub const CATID_SMTP_ON_SESSION_START: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf6628c8f_0d5e_11d2_aa68_00c04fa35b82); +pub const CATID_SMTP_STORE_DRIVER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x59175850_e533_11d1_aa67_00c04fa345f6); +pub const CATID_SMTP_TRANSPORT_CATEGORIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x960252a3_0a3a_11d2_9e00_00c04fa322ba); +pub const CATID_SMTP_TRANSPORT_POSTCATEGORIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x76719654_05a6_11d2_9dfd_00c04fa322ba); +pub const CATID_SMTP_TRANSPORT_PRECATEGORIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa3acfb0d_83ff_11d2_9e14_00c04fa322ba); +pub const CATID_SMTP_TRANSPORT_ROUTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x283430c9_1850_11d2_9e03_00c04fa322ba); +pub const CATID_SMTP_TRANSPORT_SUBMISSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xff3caa23_00b9_11d2_9dfb_00c04fa322ba); +pub const CLSID_SmtpCat: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb23c35b7_9219_11d2_9e17_00c04fa322ba); +pub const DISPID_DDISCFORMAT2DATAEVENTS_UPDATE: u32 = 512u32; +pub const DISPID_DDISCFORMAT2RAWCDEVENTS_UPDATE: u32 = 512u32; +pub const DISPID_DDISCFORMAT2TAOEVENTS_UPDATE: u32 = 512u32; +pub const DISPID_DDISCMASTER2EVENTS_DEVICEADDED: u32 = 256u32; +pub const DISPID_DDISCMASTER2EVENTS_DEVICEREMOVED: u32 = 257u32; +pub const DISPID_DFILESYSTEMIMAGEEVENTS_UPDATE: u32 = 256u32; +pub const DISPID_DFILESYSTEMIMAGEIMPORTEVENTS_UPDATEIMPORT: u32 = 257u32; +pub const DISPID_DWRITEENGINE2EVENTS_UPDATE: u32 = 256u32; +pub const DISPID_IBLOCKRANGELIST_BLOCKRANGES: u32 = 256u32; +pub const DISPID_IBLOCKRANGE_ENDLBA: u32 = 257u32; +pub const DISPID_IBLOCKRANGE_STARTLBA: u32 = 256u32; +pub const DISPID_IDISCFORMAT2DATAEVENTARGS_CURRENTACTION: u32 = 771u32; +pub const DISPID_IDISCFORMAT2DATAEVENTARGS_ELAPSEDTIME: u32 = 768u32; +pub const DISPID_IDISCFORMAT2DATAEVENTARGS_ESTIMATEDREMAININGTIME: u32 = 769u32; +pub const DISPID_IDISCFORMAT2DATAEVENTARGS_ESTIMATEDTOTALTIME: u32 = 770u32; +pub const DISPID_IDISCFORMAT2DATA_BUFFERUNDERRUNFREEDISABLED: u32 = 257u32; +pub const DISPID_IDISCFORMAT2DATA_CANCELWRITE: u32 = 513u32; +pub const DISPID_IDISCFORMAT2DATA_CLIENTNAME: u32 = 272u32; +pub const DISPID_IDISCFORMAT2DATA_CURRENTMEDIASTATUS: u32 = 262u32; +pub const DISPID_IDISCFORMAT2DATA_CURRENTMEDIATYPE: u32 = 271u32; +pub const DISPID_IDISCFORMAT2DATA_CURRENTROTATIONTYPEISPURECAV: u32 = 276u32; +pub const DISPID_IDISCFORMAT2DATA_CURRENTWRITESPEED: u32 = 275u32; +pub const DISPID_IDISCFORMAT2DATA_DISABLEDVDCOMPATIBILITYMODE: u32 = 270u32; +pub const DISPID_IDISCFORMAT2DATA_FORCEMEDIATOBECLOSED: u32 = 269u32; +pub const DISPID_IDISCFORMAT2DATA_FORCEOVERWRITE: u32 = 279u32; +pub const DISPID_IDISCFORMAT2DATA_FREESECTORS: u32 = 265u32; +pub const DISPID_IDISCFORMAT2DATA_LASTSECTOROFPREVIOUSSESSION: u32 = 268u32; +pub const DISPID_IDISCFORMAT2DATA_MUTLISESSIONINTERFACES: u32 = 280u32; +pub const DISPID_IDISCFORMAT2DATA_NEXTWRITABLEADDRESS: u32 = 266u32; +pub const DISPID_IDISCFORMAT2DATA_POSTGAPALREADYINIMAGE: u32 = 260u32; +pub const DISPID_IDISCFORMAT2DATA_RECORDER: u32 = 256u32; +pub const DISPID_IDISCFORMAT2DATA_REQUESTEDROTATIONTYPEISPURECAV: u32 = 274u32; +pub const DISPID_IDISCFORMAT2DATA_REQUESTEDWRITESPEED: u32 = 273u32; +pub const DISPID_IDISCFORMAT2DATA_SETWRITESPEED: u32 = 514u32; +pub const DISPID_IDISCFORMAT2DATA_STARTSECTOROFPREVIOUSSESSION: u32 = 267u32; +pub const DISPID_IDISCFORMAT2DATA_SUPPORTEDWRITESPEEDDESCRIPTORS: u32 = 278u32; +pub const DISPID_IDISCFORMAT2DATA_SUPPORTEDWRITESPEEDS: u32 = 277u32; +pub const DISPID_IDISCFORMAT2DATA_TOTALSECTORS: u32 = 264u32; +pub const DISPID_IDISCFORMAT2DATA_WRITE: u32 = 512u32; +pub const DISPID_IDISCFORMAT2DATA_WRITEPROTECTSTATUS: u32 = 263u32; +pub const DISPID_IDISCFORMAT2ERASEEVENTS_UPDATE: u32 = 512u32; +pub const DISPID_IDISCFORMAT2ERASE_CLIENTNAME: u32 = 259u32; +pub const DISPID_IDISCFORMAT2ERASE_ERASEMEDIA: u32 = 513u32; +pub const DISPID_IDISCFORMAT2ERASE_FULLERASE: u32 = 257u32; +pub const DISPID_IDISCFORMAT2ERASE_MEDIATYPE: u32 = 258u32; +pub const DISPID_IDISCFORMAT2ERASE_RECORDER: u32 = 256u32; +pub const DISPID_IDISCFORMAT2RAWCDEVENTARGS_CURRENTACTION: u32 = 769u32; +pub const DISPID_IDISCFORMAT2RAWCDEVENTARGS_CURRENTTRACKNUMBER: u32 = 768u32; +pub const DISPID_IDISCFORMAT2RAWCDEVENTARGS_ELAPSEDTIME: u32 = 768u32; +pub const DISPID_IDISCFORMAT2RAWCDEVENTARGS_ESTIMATEDREMAININGTIME: u32 = 769u32; +pub const DISPID_IDISCFORMAT2RAWCDEVENTARGS_ESTIMATEDTOTALTIME: u32 = 770u32; +pub const DISPID_IDISCFORMAT2RAWCD_BUFFERUNDERRUNFREEDISABLED: u32 = 258u32; +pub const DISPID_IDISCFORMAT2RAWCD_CANCELWRITE: u32 = 515u32; +pub const DISPID_IDISCFORMAT2RAWCD_CLIENTNAME: u32 = 266u32; +pub const DISPID_IDISCFORMAT2RAWCD_CURRENTMEDIATYPE: u32 = 261u32; +pub const DISPID_IDISCFORMAT2RAWCD_CURRENTROTATIONTYPEISPURECAV: u32 = 270u32; +pub const DISPID_IDISCFORMAT2RAWCD_CURRENTWRITESPEED: u32 = 269u32; +pub const DISPID_IDISCFORMAT2RAWCD_LASTPOSSIBLESTARTOFLEADOUT: u32 = 260u32; +pub const DISPID_IDISCFORMAT2RAWCD_PREPAREMEDIA: u32 = 512u32; +pub const DISPID_IDISCFORMAT2RAWCD_RECORDER: u32 = 256u32; +pub const DISPID_IDISCFORMAT2RAWCD_RELEASEMEDIA: u32 = 516u32; +pub const DISPID_IDISCFORMAT2RAWCD_REQUESTEDDATASECTORTYPE: u32 = 265u32; +pub const DISPID_IDISCFORMAT2RAWCD_REQUESTEDROTATIONTYPEISPURECAV: u32 = 268u32; +pub const DISPID_IDISCFORMAT2RAWCD_REQUESTEDWRITESPEED: u32 = 267u32; +pub const DISPID_IDISCFORMAT2RAWCD_SETWRITESPEED: u32 = 517u32; +pub const DISPID_IDISCFORMAT2RAWCD_STARTOFNEXTSESSION: u32 = 259u32; +pub const DISPID_IDISCFORMAT2RAWCD_SUPPORTEDDATASECTORTYPES: u32 = 264u32; +pub const DISPID_IDISCFORMAT2RAWCD_SUPPORTEDWRITESPEEDDESCRIPTORS: u32 = 272u32; +pub const DISPID_IDISCFORMAT2RAWCD_SUPPORTEDWRITESPEEDS: u32 = 271u32; +pub const DISPID_IDISCFORMAT2RAWCD_WRITEMEDIA: u32 = 513u32; +pub const DISPID_IDISCFORMAT2RAWCD_WRITEMEDIAWITHVALIDATION: u32 = 514u32; +pub const DISPID_IDISCFORMAT2TAOEVENTARGS_CURRENTACTION: u32 = 769u32; +pub const DISPID_IDISCFORMAT2TAOEVENTARGS_CURRENTTRACKNUMBER: u32 = 768u32; +pub const DISPID_IDISCFORMAT2TAOEVENTARGS_ELAPSEDTIME: u32 = 770u32; +pub const DISPID_IDISCFORMAT2TAOEVENTARGS_ESTIMATEDREMAININGTIME: u32 = 771u32; +pub const DISPID_IDISCFORMAT2TAOEVENTARGS_ESTIMATEDTOTALTIME: u32 = 772u32; +pub const DISPID_IDISCFORMAT2TAO_ADDAUDIOTRACK: u32 = 513u32; +pub const DISPID_IDISCFORMAT2TAO_BUFFERUNDERRUNFREEDISABLED: u32 = 258u32; +pub const DISPID_IDISCFORMAT2TAO_CANCELADDTRACK: u32 = 514u32; +pub const DISPID_IDISCFORMAT2TAO_CLIENTNAME: u32 = 270u32; +pub const DISPID_IDISCFORMAT2TAO_CURRENTMEDIATYPE: u32 = 267u32; +pub const DISPID_IDISCFORMAT2TAO_CURRENTROTATIONTYPEISPURECAV: u32 = 274u32; +pub const DISPID_IDISCFORMAT2TAO_CURRENTWRITESPEED: u32 = 273u32; +pub const DISPID_IDISCFORMAT2TAO_DONOTFINALIZEMEDIA: u32 = 263u32; +pub const DISPID_IDISCFORMAT2TAO_EXPECTEDTABLEOFCONTENTS: u32 = 266u32; +pub const DISPID_IDISCFORMAT2TAO_FINISHMEDIA: u32 = 515u32; +pub const DISPID_IDISCFORMAT2TAO_FREESECTORSONMEDIA: u32 = 261u32; +pub const DISPID_IDISCFORMAT2TAO_NUMBEROFEXISTINGTRACKS: u32 = 259u32; +pub const DISPID_IDISCFORMAT2TAO_PREPAREMEDIA: u32 = 512u32; +pub const DISPID_IDISCFORMAT2TAO_RECORDER: u32 = 256u32; +pub const DISPID_IDISCFORMAT2TAO_REQUESTEDROTATIONTYPEISPURECAV: u32 = 272u32; +pub const DISPID_IDISCFORMAT2TAO_REQUESTEDWRITESPEED: u32 = 271u32; +pub const DISPID_IDISCFORMAT2TAO_SETWRITESPEED: u32 = 516u32; +pub const DISPID_IDISCFORMAT2TAO_SUPPORTEDWRITESPEEDDESCRIPTORS: u32 = 276u32; +pub const DISPID_IDISCFORMAT2TAO_SUPPORTEDWRITESPEEDS: u32 = 275u32; +pub const DISPID_IDISCFORMAT2TAO_TOTALSECTORSONMEDIA: u32 = 260u32; +pub const DISPID_IDISCFORMAT2TAO_USEDSECTORSONMEDIA: u32 = 262u32; +pub const DISPID_IDISCFORMAT2_MEDIAHEURISTICALLYBLANK: u32 = 1793u32; +pub const DISPID_IDISCFORMAT2_MEDIAPHYSICALLYBLANK: u32 = 1792u32; +pub const DISPID_IDISCFORMAT2_MEDIASUPPORTED: u32 = 2049u32; +pub const DISPID_IDISCFORMAT2_RECORDERSUPPORTED: u32 = 2048u32; +pub const DISPID_IDISCFORMAT2_SUPPORTEDMEDIATYPES: u32 = 1794u32; +pub const DISPID_IDISCRECORDER2_ACQUIREEXCLUSIVEACCESS: u32 = 258u32; +pub const DISPID_IDISCRECORDER2_ACTIVEDISCRECORDER: u32 = 0u32; +pub const DISPID_IDISCRECORDER2_CLOSETRAY: u32 = 257u32; +pub const DISPID_IDISCRECORDER2_CURRENTFEATUREPAGES: u32 = 521u32; +pub const DISPID_IDISCRECORDER2_CURRENTPROFILES: u32 = 523u32; +pub const DISPID_IDISCRECORDER2_DEVICECANLOADMEDIA: u32 = 518u32; +pub const DISPID_IDISCRECORDER2_DISABLEMCN: u32 = 260u32; +pub const DISPID_IDISCRECORDER2_EJECTMEDIA: u32 = 256u32; +pub const DISPID_IDISCRECORDER2_ENABLEMCN: u32 = 261u32; +pub const DISPID_IDISCRECORDER2_EXCLUSIVEACCESSOWNER: u32 = 525u32; +pub const DISPID_IDISCRECORDER2_INITIALIZEDISCRECORDER: u32 = 262u32; +pub const DISPID_IDISCRECORDER2_LEGACYDEVICENUMBER: u32 = 519u32; +pub const DISPID_IDISCRECORDER2_PRODUCTID: u32 = 514u32; +pub const DISPID_IDISCRECORDER2_PRODUCTREVISION: u32 = 515u32; +pub const DISPID_IDISCRECORDER2_RELEASEEXCLUSIVEACCESS: u32 = 259u32; +pub const DISPID_IDISCRECORDER2_SUPPORTEDFEATUREPAGES: u32 = 520u32; +pub const DISPID_IDISCRECORDER2_SUPPORTEDMODEPAGES: u32 = 524u32; +pub const DISPID_IDISCRECORDER2_SUPPORTEDPROFILES: u32 = 522u32; +pub const DISPID_IDISCRECORDER2_VENDORID: u32 = 513u32; +pub const DISPID_IDISCRECORDER2_VOLUMENAME: u32 = 516u32; +pub const DISPID_IDISCRECORDER2_VOLUMEPATHNAMES: u32 = 517u32; +pub const DISPID_IMULTISESSION_FIRSTDATASESSION: u32 = 512u32; +pub const DISPID_IMULTISESSION_FREESECTORS: u32 = 516u32; +pub const DISPID_IMULTISESSION_IMPORTRECORDER: u32 = 258u32; +pub const DISPID_IMULTISESSION_INUSE: u32 = 257u32; +pub const DISPID_IMULTISESSION_LASTSECTOROFPREVIOUSSESSION: u32 = 514u32; +pub const DISPID_IMULTISESSION_LASTWRITTENADDRESS: u32 = 518u32; +pub const DISPID_IMULTISESSION_NEXTWRITABLEADDRESS: u32 = 515u32; +pub const DISPID_IMULTISESSION_SECTORSONMEDIA: u32 = 519u32; +pub const DISPID_IMULTISESSION_STARTSECTOROFPREVIOUSSESSION: u32 = 513u32; +pub const DISPID_IMULTISESSION_SUPPORTEDONCURRENTMEDIA: u32 = 256u32; +pub const DISPID_IMULTISESSION_WRITEUNITSIZE: u32 = 517u32; +pub const DISPID_IRAWCDIMAGECREATOR_ADDSPECIALPREGAP: u32 = 514u32; +pub const DISPID_IRAWCDIMAGECREATOR_ADDSUBCODERWGENERATOR: u32 = 515u32; +pub const DISPID_IRAWCDIMAGECREATOR_ADDTRACK: u32 = 513u32; +pub const DISPID_IRAWCDIMAGECREATOR_CREATERESULTIMAGE: u32 = 512u32; +pub const DISPID_IRAWCDIMAGECREATOR_DISABLEGAPLESSAUDIO: u32 = 259u32; +pub const DISPID_IRAWCDIMAGECREATOR_EXPECTEDTABLEOFCONTENTS: u32 = 265u32; +pub const DISPID_IRAWCDIMAGECREATOR_MEDIACATALOGNUMBER: u32 = 260u32; +pub const DISPID_IRAWCDIMAGECREATOR_NUMBEROFEXISTINGTRACKS: u32 = 263u32; +pub const DISPID_IRAWCDIMAGECREATOR_RESULTINGIMAGETYPE: u32 = 256u32; +pub const DISPID_IRAWCDIMAGECREATOR_STARTINGTRACKNUMBER: u32 = 261u32; +pub const DISPID_IRAWCDIMAGECREATOR_STARTOFLEADOUT: u32 = 257u32; +pub const DISPID_IRAWCDIMAGECREATOR_STARTOFLEADOUTLIMIT: u32 = 258u32; +pub const DISPID_IRAWCDIMAGECREATOR_TRACKINFO: u32 = 262u32; +pub const DISPID_IRAWCDIMAGECREATOR_USEDSECTORSONDISC: u32 = 264u32; +pub const DISPID_IRAWCDTRACKINFO_AUDIOHASPREEMPHASIS: u32 = 262u32; +pub const DISPID_IRAWCDTRACKINFO_DIGITALAUDIOCOPYSETTING: u32 = 261u32; +pub const DISPID_IRAWCDTRACKINFO_ISRC: u32 = 260u32; +pub const DISPID_IRAWCDTRACKINFO_SECTORCOUNT: u32 = 257u32; +pub const DISPID_IRAWCDTRACKINFO_SECTORTYPE: u32 = 259u32; +pub const DISPID_IRAWCDTRACKINFO_STARTINGLBA: u32 = 256u32; +pub const DISPID_IRAWCDTRACKINFO_TRACKNUMBER: u32 = 258u32; +pub const DISPID_IWRITEENGINE2EVENTARGS_FREESYSTEMBUFFER: u32 = 264u32; +pub const DISPID_IWRITEENGINE2EVENTARGS_LASTREADLBA: u32 = 258u32; +pub const DISPID_IWRITEENGINE2EVENTARGS_LASTWRITTENLBA: u32 = 259u32; +pub const DISPID_IWRITEENGINE2EVENTARGS_SECTORCOUNT: u32 = 257u32; +pub const DISPID_IWRITEENGINE2EVENTARGS_STARTLBA: u32 = 256u32; +pub const DISPID_IWRITEENGINE2EVENTARGS_TOTALDEVICEBUFFER: u32 = 260u32; +pub const DISPID_IWRITEENGINE2EVENTARGS_TOTALSYSTEMBUFFER: u32 = 262u32; +pub const DISPID_IWRITEENGINE2EVENTARGS_USEDDEVICEBUFFER: u32 = 261u32; +pub const DISPID_IWRITEENGINE2EVENTARGS_USEDSYSTEMBUFFER: u32 = 263u32; +pub const DISPID_IWRITEENGINE2_BYTESPERSECTOR: u32 = 260u32; +pub const DISPID_IWRITEENGINE2_CANCELWRITE: u32 = 513u32; +pub const DISPID_IWRITEENGINE2_DISCRECORDER: u32 = 256u32; +pub const DISPID_IWRITEENGINE2_ENDINGSECTORSPERSECOND: u32 = 259u32; +pub const DISPID_IWRITEENGINE2_STARTINGSECTORSPERSECOND: u32 = 258u32; +pub const DISPID_IWRITEENGINE2_USESTREAMINGWRITE12: u32 = 257u32; +pub const DISPID_IWRITEENGINE2_WRITEINPROGRESS: u32 = 261u32; +pub const DISPID_IWRITEENGINE2_WRITESECTION: u32 = 512u32; +pub const Emulation12MFloppy: EmulationType = 1i32; +pub const Emulation144MFloppy: EmulationType = 2i32; +pub const Emulation288MFloppy: EmulationType = 3i32; +pub const EmulationHardDisk: EmulationType = 4i32; +pub const EmulationNone: EmulationType = 0i32; +pub const EnumFsiItems: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c941fc6_975b_59be_a960_9a2a262853a5); +pub const EnumProgressItems: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c941fca_975b_59be_a960_9a2a262853a5); +pub const FileSystemImageResult: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c941fcc_975b_59be_a960_9a2a262853a5); +pub const FsiDirectoryItem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c941fc8_975b_59be_a960_9a2a262853a5); +pub const FsiFileItem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c941fc7_975b_59be_a960_9a2a262853a5); +pub const FsiFileSystemISO9660: FsiFileSystems = 1i32; +pub const FsiFileSystemJoliet: FsiFileSystems = 2i32; +pub const FsiFileSystemNone: FsiFileSystems = 0i32; +pub const FsiFileSystemUDF: FsiFileSystems = 4i32; +pub const FsiFileSystemUnknown: FsiFileSystems = 1073741824i32; +pub const FsiItemDirectory: FsiItemType = 1i32; +pub const FsiItemFile: FsiItemType = 2i32; +pub const FsiItemNotFound: FsiItemType = 0i32; +pub const FsiNamedStreams: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6b6f8ed_6d19_44b4_b539_b159b793a32d); +pub const FsiStream: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c941fcd_975b_59be_a960_9a2a262853a5); +pub const GUID_SMTPSVC_SOURCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1b3c0666_e470_11d1_aa67_00c04fa345f6); +pub const GUID_SMTP_SOURCE_TYPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb65c4dc_e468_11d1_aa67_00c04fa345f6); +pub const IMAPI2FS_BOOT_ENTRY_COUNT_MAX: u32 = 32u32; +pub const IMAPI2FS_FullVersion_STR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1.0"); +pub const IMAPI2FS_FullVersion_WSTR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("1.0"); +pub const IMAPI2FS_MajorVersion: u32 = 1u32; +pub const IMAPI2FS_MinorVersion: u32 = 0u32; +pub const IMAPI2_DEFAULT_COMMAND_TIMEOUT: u32 = 10u32; +pub const IMAPILib2_MajorVersion: u32 = 1u32; +pub const IMAPILib2_MinorVersion: u32 = 0u32; +pub const IMAPI_BURN_VERIFICATION_FULL: IMAPI_BURN_VERIFICATION_LEVEL = 2i32; +pub const IMAPI_BURN_VERIFICATION_NONE: IMAPI_BURN_VERIFICATION_LEVEL = 0i32; +pub const IMAPI_BURN_VERIFICATION_QUICK: IMAPI_BURN_VERIFICATION_LEVEL = 1i32; +pub const IMAPI_CD_SECTOR_AUDIO: IMAPI_CD_SECTOR_TYPE = 0i32; +pub const IMAPI_CD_SECTOR_MODE1: IMAPI_CD_SECTOR_TYPE = 2i32; +pub const IMAPI_CD_SECTOR_MODE1RAW: IMAPI_CD_SECTOR_TYPE = 6i32; +pub const IMAPI_CD_SECTOR_MODE2FORM0: IMAPI_CD_SECTOR_TYPE = 3i32; +pub const IMAPI_CD_SECTOR_MODE2FORM0RAW: IMAPI_CD_SECTOR_TYPE = 7i32; +pub const IMAPI_CD_SECTOR_MODE2FORM1: IMAPI_CD_SECTOR_TYPE = 4i32; +pub const IMAPI_CD_SECTOR_MODE2FORM1RAW: IMAPI_CD_SECTOR_TYPE = 8i32; +pub const IMAPI_CD_SECTOR_MODE2FORM2: IMAPI_CD_SECTOR_TYPE = 5i32; +pub const IMAPI_CD_SECTOR_MODE2FORM2RAW: IMAPI_CD_SECTOR_TYPE = 9i32; +pub const IMAPI_CD_SECTOR_MODE_ZERO: IMAPI_CD_SECTOR_TYPE = 1i32; +pub const IMAPI_CD_TRACK_DIGITAL_COPY_PERMITTED: IMAPI_CD_TRACK_DIGITAL_COPY_SETTING = 0i32; +pub const IMAPI_CD_TRACK_DIGITAL_COPY_PROHIBITED: IMAPI_CD_TRACK_DIGITAL_COPY_SETTING = 1i32; +pub const IMAPI_CD_TRACK_DIGITAL_COPY_SCMS: IMAPI_CD_TRACK_DIGITAL_COPY_SETTING = 2i32; +pub const IMAPI_E_ALREADYOPEN: ::windows_sys::core::HRESULT = -2147220958i32; +pub const IMAPI_E_BADJOLIETNAME: ::windows_sys::core::HRESULT = -2147220963i32; +pub const IMAPI_E_BOOTIMAGE_AND_NONBLANK_DISC: ::windows_sys::core::HRESULT = -2147220946i32; +pub const IMAPI_E_CANNOT_WRITE_TO_MEDIA: ::windows_sys::core::HRESULT = -2147220948i32; +pub const IMAPI_E_COMPRESSEDSTASH: ::windows_sys::core::HRESULT = -2147220952i32; +pub const IMAPI_E_DEVICE_INVALIDTYPE: ::windows_sys::core::HRESULT = -2147220972i32; +pub const IMAPI_E_DEVICE_NOPROPERTIES: ::windows_sys::core::HRESULT = -2147220975i32; +pub const IMAPI_E_DEVICE_NOTACCESSIBLE: ::windows_sys::core::HRESULT = -2147220974i32; +pub const IMAPI_E_DEVICE_NOTPRESENT: ::windows_sys::core::HRESULT = -2147220973i32; +pub const IMAPI_E_DEVICE_STILL_IN_USE: ::windows_sys::core::HRESULT = -2147220954i32; +pub const IMAPI_E_DISCFULL: ::windows_sys::core::HRESULT = -2147220964i32; +pub const IMAPI_E_DISCINFO: ::windows_sys::core::HRESULT = -2147220967i32; +pub const IMAPI_E_ENCRYPTEDSTASH: ::windows_sys::core::HRESULT = -2147220951i32; +pub const IMAPI_E_FILEACCESS: ::windows_sys::core::HRESULT = -2147220968i32; +pub const IMAPI_E_FILEEXISTS: ::windows_sys::core::HRESULT = -2147220956i32; +pub const IMAPI_E_FILESYSTEM: ::windows_sys::core::HRESULT = -2147220969i32; +pub const IMAPI_E_GENERIC: ::windows_sys::core::HRESULT = -2147220978i32; +pub const IMAPI_E_INITIALIZE_ENDWRITE: ::windows_sys::core::HRESULT = -2147220970i32; +pub const IMAPI_E_INITIALIZE_WRITE: ::windows_sys::core::HRESULT = -2147220971i32; +pub const IMAPI_E_INVALIDIMAGE: ::windows_sys::core::HRESULT = -2147220962i32; +pub const IMAPI_E_LOSS_OF_STREAMING: ::windows_sys::core::HRESULT = -2147220953i32; +pub const IMAPI_E_MEDIUM_INVALIDTYPE: ::windows_sys::core::HRESULT = -2147220976i32; +pub const IMAPI_E_MEDIUM_NOTPRESENT: ::windows_sys::core::HRESULT = -2147220977i32; +pub const IMAPI_E_NOACTIVEFORMAT: ::windows_sys::core::HRESULT = -2147220961i32; +pub const IMAPI_E_NOACTIVERECORDER: ::windows_sys::core::HRESULT = -2147220960i32; +pub const IMAPI_E_NOTENOUGHDISKFORSTASH: ::windows_sys::core::HRESULT = -2147220950i32; +pub const IMAPI_E_NOTINITIALIZED: ::windows_sys::core::HRESULT = -2147220980i32; +pub const IMAPI_E_NOTOPENED: ::windows_sys::core::HRESULT = -2147220981i32; +pub const IMAPI_E_REMOVABLESTASH: ::windows_sys::core::HRESULT = -2147220949i32; +pub const IMAPI_E_STASHINUSE: ::windows_sys::core::HRESULT = -2147220955i32; +pub const IMAPI_E_TRACKNOTOPEN: ::windows_sys::core::HRESULT = -2147220966i32; +pub const IMAPI_E_TRACKOPEN: ::windows_sys::core::HRESULT = -2147220965i32; +pub const IMAPI_E_TRACK_NOT_BIG_ENOUGH: ::windows_sys::core::HRESULT = -2147220947i32; +pub const IMAPI_E_USERABORT: ::windows_sys::core::HRESULT = -2147220979i32; +pub const IMAPI_E_WRONGDISC: ::windows_sys::core::HRESULT = -2147220957i32; +pub const IMAPI_E_WRONGFORMAT: ::windows_sys::core::HRESULT = -2147220959i32; +pub const IMAPI_FEATURE_PAGE_TYPE_AACS: IMAPI_FEATURE_PAGE_TYPE = 269i32; +pub const IMAPI_FEATURE_PAGE_TYPE_BD_PSEUDO_OVERWRITE: IMAPI_FEATURE_PAGE_TYPE = 56i32; +pub const IMAPI_FEATURE_PAGE_TYPE_BD_READ: IMAPI_FEATURE_PAGE_TYPE = 64i32; +pub const IMAPI_FEATURE_PAGE_TYPE_BD_WRITE: IMAPI_FEATURE_PAGE_TYPE = 65i32; +pub const IMAPI_FEATURE_PAGE_TYPE_CDRW_CAV_WRITE: IMAPI_FEATURE_PAGE_TYPE = 39i32; +pub const IMAPI_FEATURE_PAGE_TYPE_CD_ANALOG_PLAY: IMAPI_FEATURE_PAGE_TYPE = 259i32; +pub const IMAPI_FEATURE_PAGE_TYPE_CD_MASTERING: IMAPI_FEATURE_PAGE_TYPE = 46i32; +pub const IMAPI_FEATURE_PAGE_TYPE_CD_MULTIREAD: IMAPI_FEATURE_PAGE_TYPE = 29i32; +pub const IMAPI_FEATURE_PAGE_TYPE_CD_READ: IMAPI_FEATURE_PAGE_TYPE = 30i32; +pub const IMAPI_FEATURE_PAGE_TYPE_CD_RW_MEDIA_WRITE_SUPPORT: IMAPI_FEATURE_PAGE_TYPE = 55i32; +pub const IMAPI_FEATURE_PAGE_TYPE_CD_TRACK_AT_ONCE: IMAPI_FEATURE_PAGE_TYPE = 45i32; +pub const IMAPI_FEATURE_PAGE_TYPE_CORE: IMAPI_FEATURE_PAGE_TYPE = 1i32; +pub const IMAPI_FEATURE_PAGE_TYPE_DISC_CONTROL_BLOCKS: IMAPI_FEATURE_PAGE_TYPE = 266i32; +pub const IMAPI_FEATURE_PAGE_TYPE_DOUBLE_DENSITY_CD_READ: IMAPI_FEATURE_PAGE_TYPE = 48i32; +pub const IMAPI_FEATURE_PAGE_TYPE_DOUBLE_DENSITY_CD_RW_WRITE: IMAPI_FEATURE_PAGE_TYPE = 50i32; +pub const IMAPI_FEATURE_PAGE_TYPE_DOUBLE_DENSITY_CD_R_WRITE: IMAPI_FEATURE_PAGE_TYPE = 49i32; +pub const IMAPI_FEATURE_PAGE_TYPE_DVD_CPRM: IMAPI_FEATURE_PAGE_TYPE = 267i32; +pub const IMAPI_FEATURE_PAGE_TYPE_DVD_CSS: IMAPI_FEATURE_PAGE_TYPE = 262i32; +pub const IMAPI_FEATURE_PAGE_TYPE_DVD_DASH_WRITE: IMAPI_FEATURE_PAGE_TYPE = 47i32; +pub const IMAPI_FEATURE_PAGE_TYPE_DVD_PLUS_R: IMAPI_FEATURE_PAGE_TYPE = 43i32; +pub const IMAPI_FEATURE_PAGE_TYPE_DVD_PLUS_RW: IMAPI_FEATURE_PAGE_TYPE = 42i32; +pub const IMAPI_FEATURE_PAGE_TYPE_DVD_PLUS_R_DUAL_LAYER: IMAPI_FEATURE_PAGE_TYPE = 59i32; +pub const IMAPI_FEATURE_PAGE_TYPE_DVD_READ: IMAPI_FEATURE_PAGE_TYPE = 31i32; +pub const IMAPI_FEATURE_PAGE_TYPE_EMBEDDED_CHANGER: IMAPI_FEATURE_PAGE_TYPE = 258i32; +pub const IMAPI_FEATURE_PAGE_TYPE_ENHANCED_DEFECT_REPORTING: IMAPI_FEATURE_PAGE_TYPE = 41i32; +pub const IMAPI_FEATURE_PAGE_TYPE_FIRMWARE_INFORMATION: IMAPI_FEATURE_PAGE_TYPE = 268i32; +pub const IMAPI_FEATURE_PAGE_TYPE_FORMATTABLE: IMAPI_FEATURE_PAGE_TYPE = 35i32; +pub const IMAPI_FEATURE_PAGE_TYPE_HARDWARE_DEFECT_MANAGEMENT: IMAPI_FEATURE_PAGE_TYPE = 36i32; +pub const IMAPI_FEATURE_PAGE_TYPE_HD_DVD_READ: IMAPI_FEATURE_PAGE_TYPE = 80i32; +pub const IMAPI_FEATURE_PAGE_TYPE_HD_DVD_WRITE: IMAPI_FEATURE_PAGE_TYPE = 81i32; +pub const IMAPI_FEATURE_PAGE_TYPE_INCREMENTAL_STREAMING_WRITABLE: IMAPI_FEATURE_PAGE_TYPE = 33i32; +pub const IMAPI_FEATURE_PAGE_TYPE_LAYER_JUMP_RECORDING: IMAPI_FEATURE_PAGE_TYPE = 51i32; +pub const IMAPI_FEATURE_PAGE_TYPE_LOGICAL_UNIT_SERIAL_NUMBER: IMAPI_FEATURE_PAGE_TYPE = 264i32; +pub const IMAPI_FEATURE_PAGE_TYPE_MEDIA_SERIAL_NUMBER: IMAPI_FEATURE_PAGE_TYPE = 265i32; +pub const IMAPI_FEATURE_PAGE_TYPE_MICROCODE_UPDATE: IMAPI_FEATURE_PAGE_TYPE = 260i32; +pub const IMAPI_FEATURE_PAGE_TYPE_MORPHING: IMAPI_FEATURE_PAGE_TYPE = 2i32; +pub const IMAPI_FEATURE_PAGE_TYPE_MRW: IMAPI_FEATURE_PAGE_TYPE = 40i32; +pub const IMAPI_FEATURE_PAGE_TYPE_POWER_MANAGEMENT: IMAPI_FEATURE_PAGE_TYPE = 256i32; +pub const IMAPI_FEATURE_PAGE_TYPE_PROFILE_LIST: IMAPI_FEATURE_PAGE_TYPE = 0i32; +pub const IMAPI_FEATURE_PAGE_TYPE_RANDOMLY_READABLE: IMAPI_FEATURE_PAGE_TYPE = 16i32; +pub const IMAPI_FEATURE_PAGE_TYPE_RANDOMLY_WRITABLE: IMAPI_FEATURE_PAGE_TYPE = 32i32; +pub const IMAPI_FEATURE_PAGE_TYPE_REAL_TIME_STREAMING: IMAPI_FEATURE_PAGE_TYPE = 263i32; +pub const IMAPI_FEATURE_PAGE_TYPE_REMOVABLE_MEDIUM: IMAPI_FEATURE_PAGE_TYPE = 3i32; +pub const IMAPI_FEATURE_PAGE_TYPE_RESTRICTED_OVERWRITE: IMAPI_FEATURE_PAGE_TYPE = 38i32; +pub const IMAPI_FEATURE_PAGE_TYPE_RIGID_RESTRICTED_OVERWRITE: IMAPI_FEATURE_PAGE_TYPE = 44i32; +pub const IMAPI_FEATURE_PAGE_TYPE_SECTOR_ERASABLE: IMAPI_FEATURE_PAGE_TYPE = 34i32; +pub const IMAPI_FEATURE_PAGE_TYPE_SMART: IMAPI_FEATURE_PAGE_TYPE = 257i32; +pub const IMAPI_FEATURE_PAGE_TYPE_TIMEOUT: IMAPI_FEATURE_PAGE_TYPE = 261i32; +pub const IMAPI_FEATURE_PAGE_TYPE_VCPS: IMAPI_FEATURE_PAGE_TYPE = 272i32; +pub const IMAPI_FEATURE_PAGE_TYPE_WRITE_ONCE: IMAPI_FEATURE_PAGE_TYPE = 37i32; +pub const IMAPI_FEATURE_PAGE_TYPE_WRITE_PROTECT: IMAPI_FEATURE_PAGE_TYPE = 4i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE: IMAPI_FORMAT2_DATA_MEDIA_STATE = 4i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK: IMAPI_FORMAT2_DATA_MEDIA_STATE = 2i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_DAMAGED: IMAPI_FORMAT2_DATA_MEDIA_STATE = 1024i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_ERASE_REQUIRED: IMAPI_FORMAT2_DATA_MEDIA_STATE = 2048i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_FINALIZED: IMAPI_FORMAT2_DATA_MEDIA_STATE = 16384i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_FINAL_SESSION: IMAPI_FORMAT2_DATA_MEDIA_STATE = 8i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_INFORMATIONAL_MASK: IMAPI_FORMAT2_DATA_MEDIA_STATE = 15i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_NON_EMPTY_SESSION: IMAPI_FORMAT2_DATA_MEDIA_STATE = 4096i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_OVERWRITE_ONLY: IMAPI_FORMAT2_DATA_MEDIA_STATE = 1i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_RANDOMLY_WRITABLE: IMAPI_FORMAT2_DATA_MEDIA_STATE = 1i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_UNKNOWN: IMAPI_FORMAT2_DATA_MEDIA_STATE = 0i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_UNSUPPORTED_MASK: IMAPI_FORMAT2_DATA_MEDIA_STATE = 64512i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_UNSUPPORTED_MEDIA: IMAPI_FORMAT2_DATA_MEDIA_STATE = 32768i32; +pub const IMAPI_FORMAT2_DATA_MEDIA_STATE_WRITE_PROTECTED: IMAPI_FORMAT2_DATA_MEDIA_STATE = 8192i32; +pub const IMAPI_FORMAT2_DATA_WRITE_ACTION_CALIBRATING_POWER: IMAPI_FORMAT2_DATA_WRITE_ACTION = 3i32; +pub const IMAPI_FORMAT2_DATA_WRITE_ACTION_COMPLETED: IMAPI_FORMAT2_DATA_WRITE_ACTION = 6i32; +pub const IMAPI_FORMAT2_DATA_WRITE_ACTION_FINALIZATION: IMAPI_FORMAT2_DATA_WRITE_ACTION = 5i32; +pub const IMAPI_FORMAT2_DATA_WRITE_ACTION_FORMATTING_MEDIA: IMAPI_FORMAT2_DATA_WRITE_ACTION = 1i32; +pub const IMAPI_FORMAT2_DATA_WRITE_ACTION_INITIALIZING_HARDWARE: IMAPI_FORMAT2_DATA_WRITE_ACTION = 2i32; +pub const IMAPI_FORMAT2_DATA_WRITE_ACTION_VALIDATING_MEDIA: IMAPI_FORMAT2_DATA_WRITE_ACTION = 0i32; +pub const IMAPI_FORMAT2_DATA_WRITE_ACTION_VERIFYING: IMAPI_FORMAT2_DATA_WRITE_ACTION = 7i32; +pub const IMAPI_FORMAT2_DATA_WRITE_ACTION_WRITING_DATA: IMAPI_FORMAT2_DATA_WRITE_ACTION = 4i32; +pub const IMAPI_FORMAT2_RAW_CD_SUBCODE_IS_COOKED: IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE = 2i32; +pub const IMAPI_FORMAT2_RAW_CD_SUBCODE_IS_RAW: IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE = 3i32; +pub const IMAPI_FORMAT2_RAW_CD_SUBCODE_PQ_ONLY: IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE = 1i32; +pub const IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_FINISHING: IMAPI_FORMAT2_RAW_CD_WRITE_ACTION = 3i32; +pub const IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_PREPARING: IMAPI_FORMAT2_RAW_CD_WRITE_ACTION = 1i32; +pub const IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_UNKNOWN: IMAPI_FORMAT2_RAW_CD_WRITE_ACTION = 0i32; +pub const IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_WRITING: IMAPI_FORMAT2_RAW_CD_WRITE_ACTION = 2i32; +pub const IMAPI_FORMAT2_TAO_WRITE_ACTION_FINISHING: IMAPI_FORMAT2_TAO_WRITE_ACTION = 3i32; +pub const IMAPI_FORMAT2_TAO_WRITE_ACTION_PREPARING: IMAPI_FORMAT2_TAO_WRITE_ACTION = 1i32; +pub const IMAPI_FORMAT2_TAO_WRITE_ACTION_UNKNOWN: IMAPI_FORMAT2_TAO_WRITE_ACTION = 0i32; +pub const IMAPI_FORMAT2_TAO_WRITE_ACTION_VERIFYING: IMAPI_FORMAT2_TAO_WRITE_ACTION = 4i32; +pub const IMAPI_FORMAT2_TAO_WRITE_ACTION_WRITING: IMAPI_FORMAT2_TAO_WRITE_ACTION = 2i32; +pub const IMAPI_MEDIA_TYPE_BDR: IMAPI_MEDIA_PHYSICAL_TYPE = 18i32; +pub const IMAPI_MEDIA_TYPE_BDRE: IMAPI_MEDIA_PHYSICAL_TYPE = 19i32; +pub const IMAPI_MEDIA_TYPE_BDROM: IMAPI_MEDIA_PHYSICAL_TYPE = 17i32; +pub const IMAPI_MEDIA_TYPE_CDR: IMAPI_MEDIA_PHYSICAL_TYPE = 2i32; +pub const IMAPI_MEDIA_TYPE_CDROM: IMAPI_MEDIA_PHYSICAL_TYPE = 1i32; +pub const IMAPI_MEDIA_TYPE_CDRW: IMAPI_MEDIA_PHYSICAL_TYPE = 3i32; +pub const IMAPI_MEDIA_TYPE_DISK: IMAPI_MEDIA_PHYSICAL_TYPE = 12i32; +pub const IMAPI_MEDIA_TYPE_DVDDASHR: IMAPI_MEDIA_PHYSICAL_TYPE = 9i32; +pub const IMAPI_MEDIA_TYPE_DVDDASHRW: IMAPI_MEDIA_PHYSICAL_TYPE = 10i32; +pub const IMAPI_MEDIA_TYPE_DVDDASHR_DUALLAYER: IMAPI_MEDIA_PHYSICAL_TYPE = 11i32; +pub const IMAPI_MEDIA_TYPE_DVDPLUSR: IMAPI_MEDIA_PHYSICAL_TYPE = 6i32; +pub const IMAPI_MEDIA_TYPE_DVDPLUSRW: IMAPI_MEDIA_PHYSICAL_TYPE = 7i32; +pub const IMAPI_MEDIA_TYPE_DVDPLUSRW_DUALLAYER: IMAPI_MEDIA_PHYSICAL_TYPE = 13i32; +pub const IMAPI_MEDIA_TYPE_DVDPLUSR_DUALLAYER: IMAPI_MEDIA_PHYSICAL_TYPE = 8i32; +pub const IMAPI_MEDIA_TYPE_DVDRAM: IMAPI_MEDIA_PHYSICAL_TYPE = 5i32; +pub const IMAPI_MEDIA_TYPE_DVDROM: IMAPI_MEDIA_PHYSICAL_TYPE = 4i32; +pub const IMAPI_MEDIA_TYPE_HDDVDR: IMAPI_MEDIA_PHYSICAL_TYPE = 15i32; +pub const IMAPI_MEDIA_TYPE_HDDVDRAM: IMAPI_MEDIA_PHYSICAL_TYPE = 16i32; +pub const IMAPI_MEDIA_TYPE_HDDVDROM: IMAPI_MEDIA_PHYSICAL_TYPE = 14i32; +pub const IMAPI_MEDIA_TYPE_MAX: IMAPI_MEDIA_PHYSICAL_TYPE = 19i32; +pub const IMAPI_MEDIA_TYPE_UNKNOWN: IMAPI_MEDIA_PHYSICAL_TYPE = 0i32; +pub const IMAPI_MODE_PAGE_REQUEST_TYPE_CHANGEABLE_VALUES: IMAPI_MODE_PAGE_REQUEST_TYPE = 1i32; +pub const IMAPI_MODE_PAGE_REQUEST_TYPE_CURRENT_VALUES: IMAPI_MODE_PAGE_REQUEST_TYPE = 0i32; +pub const IMAPI_MODE_PAGE_REQUEST_TYPE_DEFAULT_VALUES: IMAPI_MODE_PAGE_REQUEST_TYPE = 2i32; +pub const IMAPI_MODE_PAGE_REQUEST_TYPE_SAVED_VALUES: IMAPI_MODE_PAGE_REQUEST_TYPE = 3i32; +pub const IMAPI_MODE_PAGE_TYPE_CACHING: IMAPI_MODE_PAGE_TYPE = 8i32; +pub const IMAPI_MODE_PAGE_TYPE_INFORMATIONAL_EXCEPTIONS: IMAPI_MODE_PAGE_TYPE = 28i32; +pub const IMAPI_MODE_PAGE_TYPE_LEGACY_CAPABILITIES: IMAPI_MODE_PAGE_TYPE = 42i32; +pub const IMAPI_MODE_PAGE_TYPE_MRW: IMAPI_MODE_PAGE_TYPE = 3i32; +pub const IMAPI_MODE_PAGE_TYPE_POWER_CONDITION: IMAPI_MODE_PAGE_TYPE = 26i32; +pub const IMAPI_MODE_PAGE_TYPE_READ_WRITE_ERROR_RECOVERY: IMAPI_MODE_PAGE_TYPE = 1i32; +pub const IMAPI_MODE_PAGE_TYPE_TIMEOUT_AND_PROTECT: IMAPI_MODE_PAGE_TYPE = 29i32; +pub const IMAPI_MODE_PAGE_TYPE_WRITE_PARAMETERS: IMAPI_MODE_PAGE_TYPE = 5i32; +pub const IMAPI_PROFILE_TYPE_AS_MO: IMAPI_PROFILE_TYPE = 5i32; +pub const IMAPI_PROFILE_TYPE_BD_REWRITABLE: IMAPI_PROFILE_TYPE = 67i32; +pub const IMAPI_PROFILE_TYPE_BD_ROM: IMAPI_PROFILE_TYPE = 64i32; +pub const IMAPI_PROFILE_TYPE_BD_R_RANDOM_RECORDING: IMAPI_PROFILE_TYPE = 66i32; +pub const IMAPI_PROFILE_TYPE_BD_R_SEQUENTIAL: IMAPI_PROFILE_TYPE = 65i32; +pub const IMAPI_PROFILE_TYPE_CDROM: IMAPI_PROFILE_TYPE = 8i32; +pub const IMAPI_PROFILE_TYPE_CD_RECORDABLE: IMAPI_PROFILE_TYPE = 9i32; +pub const IMAPI_PROFILE_TYPE_CD_REWRITABLE: IMAPI_PROFILE_TYPE = 10i32; +pub const IMAPI_PROFILE_TYPE_DDCDROM: IMAPI_PROFILE_TYPE = 32i32; +pub const IMAPI_PROFILE_TYPE_DDCD_RECORDABLE: IMAPI_PROFILE_TYPE = 33i32; +pub const IMAPI_PROFILE_TYPE_DDCD_REWRITABLE: IMAPI_PROFILE_TYPE = 34i32; +pub const IMAPI_PROFILE_TYPE_DVDROM: IMAPI_PROFILE_TYPE = 16i32; +pub const IMAPI_PROFILE_TYPE_DVD_DASH_RECORDABLE: IMAPI_PROFILE_TYPE = 17i32; +pub const IMAPI_PROFILE_TYPE_DVD_DASH_REWRITABLE: IMAPI_PROFILE_TYPE = 19i32; +pub const IMAPI_PROFILE_TYPE_DVD_DASH_RW_SEQUENTIAL: IMAPI_PROFILE_TYPE = 20i32; +pub const IMAPI_PROFILE_TYPE_DVD_DASH_R_DUAL_LAYER_JUMP: IMAPI_PROFILE_TYPE = 22i32; +pub const IMAPI_PROFILE_TYPE_DVD_DASH_R_DUAL_SEQUENTIAL: IMAPI_PROFILE_TYPE = 21i32; +pub const IMAPI_PROFILE_TYPE_DVD_PLUS_R: IMAPI_PROFILE_TYPE = 27i32; +pub const IMAPI_PROFILE_TYPE_DVD_PLUS_RW: IMAPI_PROFILE_TYPE = 26i32; +pub const IMAPI_PROFILE_TYPE_DVD_PLUS_RW_DUAL: IMAPI_PROFILE_TYPE = 42i32; +pub const IMAPI_PROFILE_TYPE_DVD_PLUS_R_DUAL: IMAPI_PROFILE_TYPE = 43i32; +pub const IMAPI_PROFILE_TYPE_DVD_RAM: IMAPI_PROFILE_TYPE = 18i32; +pub const IMAPI_PROFILE_TYPE_HD_DVD_RAM: IMAPI_PROFILE_TYPE = 82i32; +pub const IMAPI_PROFILE_TYPE_HD_DVD_RECORDABLE: IMAPI_PROFILE_TYPE = 81i32; +pub const IMAPI_PROFILE_TYPE_HD_DVD_ROM: IMAPI_PROFILE_TYPE = 80i32; +pub const IMAPI_PROFILE_TYPE_INVALID: IMAPI_PROFILE_TYPE = 0i32; +pub const IMAPI_PROFILE_TYPE_MO_ERASABLE: IMAPI_PROFILE_TYPE = 3i32; +pub const IMAPI_PROFILE_TYPE_MO_WRITE_ONCE: IMAPI_PROFILE_TYPE = 4i32; +pub const IMAPI_PROFILE_TYPE_NON_REMOVABLE_DISK: IMAPI_PROFILE_TYPE = 1i32; +pub const IMAPI_PROFILE_TYPE_NON_STANDARD: IMAPI_PROFILE_TYPE = 65535i32; +pub const IMAPI_PROFILE_TYPE_REMOVABLE_DISK: IMAPI_PROFILE_TYPE = 2i32; +pub const IMAPI_READ_TRACK_ADDRESS_TYPE_LBA: IMAPI_READ_TRACK_ADDRESS_TYPE = 0i32; +pub const IMAPI_READ_TRACK_ADDRESS_TYPE_SESSION: IMAPI_READ_TRACK_ADDRESS_TYPE = 2i32; +pub const IMAPI_READ_TRACK_ADDRESS_TYPE_TRACK: IMAPI_READ_TRACK_ADDRESS_TYPE = 1i32; +pub const IMAPI_SECTORS_PER_SECOND_AT_1X_BD: u32 = 2195u32; +pub const IMAPI_SECTORS_PER_SECOND_AT_1X_CD: u32 = 75u32; +pub const IMAPI_SECTORS_PER_SECOND_AT_1X_DVD: u32 = 680u32; +pub const IMAPI_SECTORS_PER_SECOND_AT_1X_HD_DVD: u32 = 4568u32; +pub const IMAPI_SECTOR_SIZE: u32 = 2048u32; +pub const IMAPI_S_BUFFER_TO_SMALL: ::windows_sys::core::HRESULT = 262657i32; +pub const IMAPI_S_PROPERTIESIGNORED: ::windows_sys::core::HRESULT = 262656i32; +pub const IMAPI_WRITEPROTECTED_BY_CARTRIDGE: IMAPI_MEDIA_WRITE_PROTECT_STATE = 2i32; +pub const IMAPI_WRITEPROTECTED_BY_DISC_CONTROL_BLOCK: IMAPI_MEDIA_WRITE_PROTECT_STATE = 16i32; +pub const IMAPI_WRITEPROTECTED_BY_MEDIA_SPECIFIC_REASON: IMAPI_MEDIA_WRITE_PROTECT_STATE = 4i32; +pub const IMAPI_WRITEPROTECTED_BY_SOFTWARE_WRITE_PROTECT: IMAPI_MEDIA_WRITE_PROTECT_STATE = 8i32; +pub const IMAPI_WRITEPROTECTED_READ_ONLY_MEDIA: IMAPI_MEDIA_WRITE_PROTECT_STATE = 16384i32; +pub const IMAPI_WRITEPROTECTED_UNTIL_POWERDOWN: IMAPI_MEDIA_WRITE_PROTECT_STATE = 1i32; +pub const IMMPID_CPV_AFTER__: IMMPID_CPV_ENUM = 32769i32; +pub const IMMPID_CPV_BEFORE__: IMMPID_CPV_ENUM = 32767i32; +pub const IMMPID_CP_START: IMMPID_CPV_ENUM = 32768i32; +pub const IMMPID_MPV_AFTER__: IMMPID_MPV_ENUM = 12294i32; +pub const IMMPID_MPV_BEFORE__: IMMPID_MPV_ENUM = 12287i32; +pub const IMMPID_MPV_MESSAGE_CREATION_FLAGS: IMMPID_MPV_ENUM = 12289i32; +pub const IMMPID_MPV_MESSAGE_OPEN_HANDLES: IMMPID_MPV_ENUM = 12290i32; +pub const IMMPID_MPV_STORE_DRIVER_HANDLE: IMMPID_MPV_ENUM = 12288i32; +pub const IMMPID_MPV_TOTAL_OPEN_CONTENT_HANDLES: IMMPID_MPV_ENUM = 12293i32; +pub const IMMPID_MPV_TOTAL_OPEN_HANDLES: IMMPID_MPV_ENUM = 12291i32; +pub const IMMPID_MPV_TOTAL_OPEN_PROPERTY_STREAM_HANDLES: IMMPID_MPV_ENUM = 12292i32; +pub const IMMPID_MP_AFTER__: IMMPID_MP_ENUM = 4153i32; +pub const IMMPID_MP_ARRIVAL_FILETIME: IMMPID_MP_ENUM = 4121i32; +pub const IMMPID_MP_ARRIVAL_TIME: IMMPID_MP_ENUM = 4115i32; +pub const IMMPID_MP_AUTHENTICATED_USER_NAME: IMMPID_MP_ENUM = 4104i32; +pub const IMMPID_MP_BEFORE__: IMMPID_MP_ENUM = 4095i32; +pub const IMMPID_MP_BINARYMIME_OPTION: IMMPID_MP_ENUM = 4109i32; +pub const IMMPID_MP_CHUNKING_OPTION: IMMPID_MP_ENUM = 4108i32; +pub const IMMPID_MP_CLIENT_AUTH_TYPE: IMMPID_MP_ENUM = 4149i32; +pub const IMMPID_MP_CLIENT_AUTH_USER: IMMPID_MP_ENUM = 4148i32; +pub const IMMPID_MP_CONNECTION_IP_ADDRESS: IMMPID_MP_ENUM = 4105i32; +pub const IMMPID_MP_CONNECTION_SERVER_IP_ADDRESS: IMMPID_MP_ENUM = 4134i32; +pub const IMMPID_MP_CONNECTION_SERVER_PORT: IMMPID_MP_ENUM = 4147i32; +pub const IMMPID_MP_CONTENT_FILE_NAME: IMMPID_MP_ENUM = 4097i32; +pub const IMMPID_MP_CONTENT_TYPE: IMMPID_MP_ENUM = 4145i32; +pub const IMMPID_MP_CRC_GLOBAL: IMMPID_MP_ENUM = 4150i32; +pub const IMMPID_MP_CRC_RECIPS: IMMPID_MP_ENUM = 4151i32; +pub const IMMPID_MP_DEFERRED_DELIVERY_FILETIME: IMMPID_MP_ENUM = 4141i32; +pub const IMMPID_MP_DOMAIN_LIST: IMMPID_MP_ENUM = 4102i32; +pub const IMMPID_MP_DSN_ENVID_VALUE: IMMPID_MP_ENUM = 4112i32; +pub const IMMPID_MP_DSN_RET_VALUE: IMMPID_MP_ENUM = 4113i32; +pub const IMMPID_MP_EIGHTBIT_MIME_OPTION: IMMPID_MP_ENUM = 4107i32; +pub const IMMPID_MP_ENCRYPTION_TYPE: IMMPID_MP_ENUM = 4146i32; +pub const IMMPID_MP_ERROR_CODE: IMMPID_MP_ENUM = 4111i32; +pub const IMMPID_MP_EXPIRE_DELAY: IMMPID_MP_ENUM = 4117i32; +pub const IMMPID_MP_EXPIRE_NDR: IMMPID_MP_ENUM = 4118i32; +pub const IMMPID_MP_FOUND_EMBEDDED_CRLF_DOT_CRLF: IMMPID_MP_ENUM = 4126i32; +pub const IMMPID_MP_FROM_ADDRESS: IMMPID_MP_ENUM = 4139i32; +pub const IMMPID_MP_HELO_DOMAIN: IMMPID_MP_ENUM = 4106i32; +pub const IMMPID_MP_HR_CAT_STATUS: IMMPID_MP_ENUM = 4122i32; +pub const IMMPID_MP_INBOUND_MAIL_FROM_AUTH: IMMPID_MP_ENUM = 4152i32; +pub const IMMPID_MP_LOCAL_EXPIRE_DELAY: IMMPID_MP_ENUM = 4119i32; +pub const IMMPID_MP_LOCAL_EXPIRE_NDR: IMMPID_MP_ENUM = 4120i32; +pub const IMMPID_MP_MESSAGE_STATUS: IMMPID_MP_ENUM = 4116i32; +pub const IMMPID_MP_MSGCLASS: IMMPID_MP_ENUM = 4144i32; +pub const IMMPID_MP_MSG_GUID: IMMPID_MP_ENUM = 4123i32; +pub const IMMPID_MP_MSG_SIZE_HINT: IMMPID_MP_ENUM = 4127i32; +pub const IMMPID_MP_NUM_RECIPIENTS: IMMPID_MP_ENUM = 4137i32; +pub const IMMPID_MP_ORIGINAL_ARRIVAL_TIME: IMMPID_MP_ENUM = 4143i32; +pub const IMMPID_MP_PICKUP_FILE_NAME: IMMPID_MP_ENUM = 4103i32; +pub const IMMPID_MP_RECIPIENT_LIST: IMMPID_MP_ENUM = 4096i32; +pub const IMMPID_MP_REMOTE_AUTHENTICATION_TYPE: IMMPID_MP_ENUM = 4110i32; +pub const IMMPID_MP_REMOTE_SERVER_DSN_CAPABLE: IMMPID_MP_ENUM = 4114i32; +pub const IMMPID_MP_RFC822_BCC_ADDRESS: IMMPID_MP_ENUM = 4133i32; +pub const IMMPID_MP_RFC822_CC_ADDRESS: IMMPID_MP_ENUM = 4132i32; +pub const IMMPID_MP_RFC822_FROM_ADDRESS: IMMPID_MP_ENUM = 4130i32; +pub const IMMPID_MP_RFC822_MSG_ID: IMMPID_MP_ENUM = 4128i32; +pub const IMMPID_MP_RFC822_MSG_SUBJECT: IMMPID_MP_ENUM = 4129i32; +pub const IMMPID_MP_RFC822_TO_ADDRESS: IMMPID_MP_ENUM = 4131i32; +pub const IMMPID_MP_SCANNED_FOR_CRLF_DOT_CRLF: IMMPID_MP_ENUM = 4125i32; +pub const IMMPID_MP_SENDER_ADDRESS: IMMPID_MP_ENUM = 4140i32; +pub const IMMPID_MP_SENDER_ADDRESS_LEGACY_EX_DN: IMMPID_MP_ENUM = 4101i32; +pub const IMMPID_MP_SENDER_ADDRESS_OTHER: IMMPID_MP_ENUM = 4142i32; +pub const IMMPID_MP_SENDER_ADDRESS_SMTP: IMMPID_MP_ENUM = 4098i32; +pub const IMMPID_MP_SENDER_ADDRESS_X400: IMMPID_MP_ENUM = 4100i32; +pub const IMMPID_MP_SENDER_ADDRESS_X500: IMMPID_MP_ENUM = 4099i32; +pub const IMMPID_MP_SERVER_NAME: IMMPID_MP_ENUM = 4135i32; +pub const IMMPID_MP_SERVER_VERSION: IMMPID_MP_ENUM = 4136i32; +pub const IMMPID_MP_SUPERSEDES_MSG_GUID: IMMPID_MP_ENUM = 4124i32; +pub const IMMPID_MP_X_PRIORITY: IMMPID_MP_ENUM = 4138i32; +pub const IMMPID_NMP_AFTER__: IMMPID_NMP_ENUM = 24585i32; +pub const IMMPID_NMP_BEFORE__: IMMPID_NMP_ENUM = 24575i32; +pub const IMMPID_NMP_HEADERS: IMMPID_NMP_ENUM = 24582i32; +pub const IMMPID_NMP_NEWSGROUP_LIST: IMMPID_NMP_ENUM = 24581i32; +pub const IMMPID_NMP_NNTP_APPROVED_HEADER: IMMPID_NMP_ENUM = 24584i32; +pub const IMMPID_NMP_NNTP_PROCESSING: IMMPID_NMP_ENUM = 24583i32; +pub const IMMPID_NMP_POST_TOKEN: IMMPID_NMP_ENUM = 24580i32; +pub const IMMPID_NMP_PRIMARY_ARTID: IMMPID_NMP_ENUM = 24579i32; +pub const IMMPID_NMP_PRIMARY_GROUP: IMMPID_NMP_ENUM = 24578i32; +pub const IMMPID_NMP_SECONDARY_ARTNUM: IMMPID_NMP_ENUM = 24577i32; +pub const IMMPID_NMP_SECONDARY_GROUPS: IMMPID_NMP_ENUM = 24576i32; +pub const IMMPID_RPV_AFTER__: IMMPID_RPV_ENUM = 16386i32; +pub const IMMPID_RPV_BEFORE__: IMMPID_RPV_ENUM = 16383i32; +pub const IMMPID_RPV_DONT_DELIVER: IMMPID_RPV_ENUM = 16384i32; +pub const IMMPID_RPV_NO_NAME_COLLISIONS: IMMPID_RPV_ENUM = 16385i32; +pub const IMMPID_RP_ADDRESS: IMMPID_RP_ENUM = 8195i32; +pub const IMMPID_RP_ADDRESS_OTHER: IMMPID_RP_ENUM = 8211i32; +pub const IMMPID_RP_ADDRESS_SMTP: IMMPID_RP_ENUM = 8201i32; +pub const IMMPID_RP_ADDRESS_TYPE: IMMPID_RP_ENUM = 8194i32; +pub const IMMPID_RP_ADDRESS_TYPE_SMTP: IMMPID_RP_ENUM = 8196i32; +pub const IMMPID_RP_ADDRESS_X400: IMMPID_RP_ENUM = 8202i32; +pub const IMMPID_RP_ADDRESS_X500: IMMPID_RP_ENUM = 8203i32; +pub const IMMPID_RP_AFTER__: IMMPID_RP_ENUM = 8213i32; +pub const IMMPID_RP_BEFORE__: IMMPID_RP_ENUM = 8191i32; +pub const IMMPID_RP_DISPLAY_NAME: IMMPID_RP_ENUM = 8212i32; +pub const IMMPID_RP_DOMAIN: IMMPID_RP_ENUM = 8210i32; +pub const IMMPID_RP_DSN_NOTIFY_INVALID: IMMPID_RP_ENUM = 8193i32; +pub const IMMPID_RP_DSN_NOTIFY_SUCCESS: IMMPID_RP_ENUM = 8192i32; +pub const IMMPID_RP_DSN_NOTIFY_VALUE: IMMPID_RP_ENUM = 8199i32; +pub const IMMPID_RP_DSN_ORCPT_VALUE: IMMPID_RP_ENUM = 8200i32; +pub const IMMPID_RP_DSN_PRE_CAT_ADDRESS: IMMPID_RP_ENUM = 8207i32; +pub const IMMPID_RP_ERROR_CODE: IMMPID_RP_ENUM = 8197i32; +pub const IMMPID_RP_ERROR_STRING: IMMPID_RP_ENUM = 8198i32; +pub const IMMPID_RP_LEGACY_EX_DN: IMMPID_RP_ENUM = 8204i32; +pub const IMMPID_RP_MDB_GUID: IMMPID_RP_ENUM = 8208i32; +pub const IMMPID_RP_RECIPIENT_FLAGS: IMMPID_RP_ENUM = 8205i32; +pub const IMMPID_RP_SMTP_STATUS_STRING: IMMPID_RP_ENUM = 8206i32; +pub const IMMPID_RP_USER_GUID: IMMPID_RP_ENUM = 8209i32; +pub const MEDIA_BLANK: MEDIA_FLAGS = 1i32; +pub const MEDIA_CDDA_CDROM: MEDIA_TYPES = 1i32; +pub const MEDIA_CD_EXTRA: MEDIA_TYPES = 4i32; +pub const MEDIA_CD_I: MEDIA_TYPES = 3i32; +pub const MEDIA_CD_OTHER: MEDIA_TYPES = 5i32; +pub const MEDIA_CD_ROM_XA: MEDIA_TYPES = 2i32; +pub const MEDIA_FORMAT_UNUSABLE_BY_IMAPI: MEDIA_FLAGS = 8i32; +pub const MEDIA_RW: MEDIA_FLAGS = 2i32; +pub const MEDIA_SPECIAL: MEDIA_TYPES = 6i32; +pub const MEDIA_WRITABLE: MEDIA_FLAGS = 4i32; +pub const MPV_INBOUND_CUTOFF_EXCEEDED: u32 = 1u32; +pub const MPV_WRITE_CONTENT: u32 = 2u32; +pub const MP_MSGCLASS_DELIVERY_REPORT: u32 = 3u32; +pub const MP_MSGCLASS_NONDELIVERY_REPORT: u32 = 4u32; +pub const MP_MSGCLASS_REPLICATION: u32 = 2u32; +pub const MP_MSGCLASS_SYSTEM: u32 = 1u32; +pub const MP_STATUS_ABANDON_DELIVERY: u32 = 6u32; +pub const MP_STATUS_ABORT_DELIVERY: u32 = 2u32; +pub const MP_STATUS_BAD_MAIL: u32 = 3u32; +pub const MP_STATUS_CATEGORIZED: u32 = 5u32; +pub const MP_STATUS_RETRY: u32 = 1u32; +pub const MP_STATUS_SUBMITTED: u32 = 4u32; +pub const MP_STATUS_SUCCESS: u32 = 0u32; +pub const MSDiscMasterObj: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x520cca63_51a5_11d3_9144_00104ba11c5e); +pub const MSDiscRecorderObj: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x520cca61_51a5_11d3_9144_00104ba11c5e); +pub const MSEnumDiscRecordersObj: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8a03567a_63cb_4ba8_baf6_52119816d1ef); +pub const MsftDiscFormat2Data: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2735412a_7f64_5b0f_8f00_5d77afbe261e); +pub const MsftDiscFormat2Erase: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2735412b_7f64_5b0f_8f00_5d77afbe261e); +pub const MsftDiscFormat2RawCD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x27354128_7f64_5b0f_8f00_5d77afbe261e); +pub const MsftDiscFormat2TrackAtOnce: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x27354129_7f64_5b0f_8f00_5d77afbe261e); +pub const MsftDiscMaster2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2735412e_7f64_5b0f_8f00_5d77afbe261e); +pub const MsftDiscRecorder2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2735412d_7f64_5b0f_8f00_5d77afbe261e); +pub const MsftFileSystemImage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c941fc5_975b_59be_a960_9a2a262853a5); +pub const MsftIsoImageManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xceee3b62_8f56_4056_869b_ef16917e3efc); +pub const MsftMultisessionRandomWrite: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb507ca24_2204_11dd_966a_001aa01bbc58); +pub const MsftMultisessionSequential: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x27354122_7f64_5b0f_8f00_5d77afbe261e); +pub const MsftRawCDImageCreator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25983561_9d65_49ce_b335_40630d901227); +pub const MsftStreamConcatenate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x27354125_7f64_5b0f_8f00_5d77afbe261e); +pub const MsftStreamInterleave: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x27354124_7f64_5b0f_8f00_5d77afbe261e); +pub const MsftStreamPrng001: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x27354126_7f64_5b0f_8f00_5d77afbe261e); +pub const MsftStreamZero: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x27354127_7f64_5b0f_8f00_5d77afbe261e); +pub const MsftWriteEngine2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2735412c_7f64_5b0f_8f00_5d77afbe261e); +pub const MsftWriteSpeedDescriptor: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x27354123_7f64_5b0f_8f00_5d77afbe261e); +pub const NMP_PROCESS_CONTROL: u32 = 2u32; +pub const NMP_PROCESS_MODERATOR: u32 = 4u32; +pub const NMP_PROCESS_POST: u32 = 1u32; +pub const PlatformEFI: PlatformId = 239i32; +pub const PlatformMac: PlatformId = 2i32; +pub const PlatformPowerPC: PlatformId = 1i32; +pub const PlatformX86: PlatformId = 0i32; +pub const ProgressItem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c941fcb_975b_59be_a960_9a2a262853a5); +pub const ProgressItems: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c941fc9_975b_59be_a960_9a2a262853a5); +pub const RECORDER_BURNING: DISC_RECORDER_STATE_FLAGS = 2u32; +pub const RECORDER_CDR: RECORDER_TYPES = 1i32; +pub const RECORDER_CDRW: RECORDER_TYPES = 2i32; +pub const RECORDER_DOING_NOTHING: DISC_RECORDER_STATE_FLAGS = 0u32; +pub const RECORDER_OPENED: DISC_RECORDER_STATE_FLAGS = 1u32; +pub const RP_DELIVERED: u32 = 272u32; +pub const RP_DSN_HANDLED: u32 = 64u32; +pub const RP_DSN_NOTIFY_DELAY: u32 = 67108864u32; +pub const RP_DSN_NOTIFY_FAILURE: u32 = 33554432u32; +pub const RP_DSN_NOTIFY_INVALID: u32 = 0u32; +pub const RP_DSN_NOTIFY_MASK: u32 = 251658240u32; +pub const RP_DSN_NOTIFY_NEVER: u32 = 134217728u32; +pub const RP_DSN_NOTIFY_SUCCESS: u32 = 16777216u32; +pub const RP_DSN_SENT_DELAYED: u32 = 16384u32; +pub const RP_DSN_SENT_DELIVERED: u32 = 131136u32; +pub const RP_DSN_SENT_EXPANDED: u32 = 32832u32; +pub const RP_DSN_SENT_NDR: u32 = 1104u32; +pub const RP_DSN_SENT_RELAYED: u32 = 65600u32; +pub const RP_ENPANDED: u32 = 8208u32; +pub const RP_ERROR_CONTEXT_CAT: u32 = 2097152u32; +pub const RP_ERROR_CONTEXT_MTA: u32 = 4194304u32; +pub const RP_ERROR_CONTEXT_STORE: u32 = 1048576u32; +pub const RP_EXPANDED: u32 = 8208u32; +pub const RP_FAILED: u32 = 2096u32; +pub const RP_GENERAL_FAILURE: u32 = 32u32; +pub const RP_HANDLED: u32 = 16u32; +pub const RP_RECIP_FLAGS_RESERVED: u32 = 15u32; +pub const RP_REMOTE_MTA_NO_DSN: u32 = 524288u32; +pub const RP_UNRESOLVED: u32 = 4144u32; +pub const RP_VOLATILE_FLAGS_MASK: u32 = 4026531840u32; +pub const SZ_PROGID_SMTPCAT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Smtp.Cat"); +pub const tagIMMPID_CPV_STRUCT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa2a76b2a_e52d_11d1_aa64_00c04fa35b82); +pub const tagIMMPID_MPV_STRUCT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcbe69706_c9bd_11d1_9ff2_00c04fa37348); +pub const tagIMMPID_MP_STRUCT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13384cf0_b3c4_11d1_aa92_00aa006bc80b); +pub const tagIMMPID_NMP_STRUCT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7433a9aa_20e2_11d2_94d6_00c04fa379f1); +pub const tagIMMPID_RPV_STRUCT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x79e82049_d320_11d1_9ff4_00c04fa37348); +pub const tagIMMPID_RP_STRUCT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x79e82048_d320_11d1_9ff4_00c04fa37348); +pub type DISC_RECORDER_STATE_FLAGS = u32; +pub type EmulationType = i32; +pub type FsiFileSystems = i32; +pub type FsiItemType = i32; +pub type IMAPI_BURN_VERIFICATION_LEVEL = i32; +pub type IMAPI_CD_SECTOR_TYPE = i32; +pub type IMAPI_CD_TRACK_DIGITAL_COPY_SETTING = i32; +pub type IMAPI_FEATURE_PAGE_TYPE = i32; +pub type IMAPI_FORMAT2_DATA_MEDIA_STATE = i32; +pub type IMAPI_FORMAT2_DATA_WRITE_ACTION = i32; +pub type IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE = i32; +pub type IMAPI_FORMAT2_RAW_CD_WRITE_ACTION = i32; +pub type IMAPI_FORMAT2_TAO_WRITE_ACTION = i32; +pub type IMAPI_MEDIA_PHYSICAL_TYPE = i32; +pub type IMAPI_MEDIA_WRITE_PROTECT_STATE = i32; +pub type IMAPI_MODE_PAGE_REQUEST_TYPE = i32; +pub type IMAPI_MODE_PAGE_TYPE = i32; +pub type IMAPI_PROFILE_TYPE = i32; +pub type IMAPI_READ_TRACK_ADDRESS_TYPE = i32; +pub type IMMPID_CPV_ENUM = i32; +pub type IMMPID_MPV_ENUM = i32; +pub type IMMPID_MP_ENUM = i32; +pub type IMMPID_NMP_ENUM = i32; +pub type IMMPID_RPV_ENUM = i32; +pub type IMMPID_RP_ENUM = i32; +pub type MEDIA_FLAGS = i32; +pub type MEDIA_TYPES = i32; +pub type PlatformId = i32; +pub type RECORDER_TYPES = i32; +#[repr(C)] +pub struct IMMP_MPV_STORE_DRIVER_HANDLE { + pub guidSignature: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for IMMP_MPV_STORE_DRIVER_HANDLE {} +impl ::core::clone::Clone for IMMP_MPV_STORE_DRIVER_HANDLE { + fn clone(&self) -> Self { + *self + } +} +pub type LPMSGSESS = isize; +#[repr(C)] +pub struct SPropAttrArray { + pub cValues: u32, + pub aPropAttr: [u32; 1], +} +impl ::core::marker::Copy for SPropAttrArray {} +impl ::core::clone::Clone for SPropAttrArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct tagIMMPID_GUIDLIST_ITEM { + pub pguid: *const ::windows_sys::core::GUID, + pub dwStart: u32, + pub dwLast: u32, +} +impl ::core::marker::Copy for tagIMMPID_GUIDLIST_ITEM {} +impl ::core::clone::Clone for tagIMMPID_GUIDLIST_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_System_AddressBook\"`"] +#[cfg(feature = "Win32_System_AddressBook")] +pub type MSGCALLRELEASE = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/IndexServer/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/IndexServer/mod.rs new file mode 100644 index 000000000..b93af1eda --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/IndexServer/mod.rs @@ -0,0 +1,351 @@ +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("query.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn BindIFilterFromStorage(pstg : super::super::System::Com::StructuredStorage:: IStorage, punkouter : ::windows_sys::core::IUnknown, ppiunk : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("query.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn BindIFilterFromStream(pstm : super::super::System::Com:: IStream, punkouter : ::windows_sys::core::IUnknown, ppiunk : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("query.dll" "system" fn LoadIFilter(pwcspath : ::windows_sys::core::PCWSTR, punkouter : ::windows_sys::core::IUnknown, ppiunk : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("query.dll" "system" fn LoadIFilterEx(pwcspath : ::windows_sys::core::PCWSTR, dwflags : u32, riid : *const ::windows_sys::core::GUID, ppiunk : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +pub type IFilter = *mut ::core::ffi::c_void; +pub type IPhraseSink = *mut ::core::ffi::c_void; +pub const CHUNK_EOC: CHUNK_BREAKTYPE = 4i32; +pub const CHUNK_EOP: CHUNK_BREAKTYPE = 3i32; +pub const CHUNK_EOS: CHUNK_BREAKTYPE = 2i32; +pub const CHUNK_EOW: CHUNK_BREAKTYPE = 1i32; +pub const CHUNK_FILTER_OWNED_VALUE: CHUNKSTATE = 4i32; +pub const CHUNK_NO_BREAK: CHUNK_BREAKTYPE = 0i32; +pub const CHUNK_TEXT: CHUNKSTATE = 1i32; +pub const CHUNK_VALUE: CHUNKSTATE = 2i32; +pub const CIADMIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("::_nodocstore_::"); +pub const CICAT_ALL_OPENED: u32 = 32u32; +pub const CICAT_GET_STATE: u32 = 16u32; +pub const CICAT_NO_QUERY: u32 = 8u32; +pub const CICAT_READONLY: u32 = 2u32; +pub const CICAT_STOPPED: u32 = 1u32; +pub const CICAT_WRITABLE: u32 = 4u32; +pub const CINULLCATALOG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("::_noindex_::"); +pub const CI_PROVIDER_ALL: u32 = 4294967295u32; +pub const CI_PROVIDER_INDEXING_SERVICE: u32 = 2u32; +pub const CI_PROVIDER_MSSEARCH: u32 = 1u32; +pub const CI_STATE_ANNEALING_MERGE: u32 = 8u32; +pub const CI_STATE_BATTERY_POLICY: u32 = 262144u32; +pub const CI_STATE_BATTERY_POWER: u32 = 2048u32; +pub const CI_STATE_CONTENT_SCAN_REQUIRED: u32 = 4u32; +pub const CI_STATE_DELETION_MERGE: u32 = 32768u32; +pub const CI_STATE_HIGH_CPU: u32 = 131072u32; +pub const CI_STATE_HIGH_IO: u32 = 256u32; +pub const CI_STATE_INDEX_MIGRATION_MERGE: u32 = 64u32; +pub const CI_STATE_LOW_DISK: u32 = 65536u32; +pub const CI_STATE_LOW_MEMORY: u32 = 128u32; +pub const CI_STATE_MASTER_MERGE: u32 = 2u32; +pub const CI_STATE_MASTER_MERGE_PAUSED: u32 = 512u32; +pub const CI_STATE_READING_USNS: u32 = 16384u32; +pub const CI_STATE_READ_ONLY: u32 = 1024u32; +pub const CI_STATE_RECOVERING: u32 = 32u32; +pub const CI_STATE_SCANNING: u32 = 16u32; +pub const CI_STATE_SHADOW_MERGE: u32 = 1u32; +pub const CI_STATE_STARTING: u32 = 8192u32; +pub const CI_STATE_USER_ACTIVE: u32 = 4096u32; +pub const CI_VERSION_WDS30: u32 = 258u32; +pub const CI_VERSION_WDS40: u32 = 265u32; +pub const CI_VERSION_WIN70: u32 = 1792u32; +pub const CLSID_INDEX_SERVER_DSO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf9ae8980_7e52_11d0_8964_00c04fd611d7); +pub const DBKIND_GUID: DBKINDENUM = 6i32; +pub const DBKIND_GUID_NAME: DBKINDENUM = 0i32; +pub const DBKIND_GUID_PROPID: DBKINDENUM = 1i32; +pub const DBKIND_NAME: DBKINDENUM = 2i32; +pub const DBKIND_PGUID_NAME: DBKINDENUM = 3i32; +pub const DBKIND_PGUID_PROPID: DBKINDENUM = 4i32; +pub const DBKIND_PROPID: DBKINDENUM = 5i32; +pub const DBPROPSET_CIFRMWRKCORE_EXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xafafaca5_b5d1_11d0_8c62_00c04fc2db8d); +pub const DBPROPSET_FSCIFRMWRK_EXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa9bd1526_6a80_11d0_8c9d_0020af1d740e); +pub const DBPROPSET_MSIDXS_ROWSETEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaa6ee6b0_e828_11d0_b23e_00aa0047fc01); +pub const DBPROPSET_QUERYEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa7ac77ed_f8d7_11ce_a798_0020f8008025); +pub const DBPROPSET_SESS_QUERYEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x63623309_2d8b_4d17_b152_6e2956c26a70); +pub const DBPROP_APPLICATION_NAME: u32 = 11u32; +pub const DBPROP_CATALOGLISTID: u32 = 9u32; +pub const DBPROP_CI_CATALOG_NAME: u32 = 2u32; +pub const DBPROP_CI_DEPTHS: u32 = 4u32; +pub const DBPROP_CI_EXCLUDE_SCOPES: u32 = 5u32; +pub const DBPROP_CI_INCLUDE_SCOPES: u32 = 3u32; +pub const DBPROP_CI_PROVIDER: u32 = 8u32; +pub const DBPROP_CI_QUERY_TYPE: u32 = 7u32; +pub const DBPROP_CI_SCOPE_FLAGS: u32 = 4u32; +pub const DBPROP_CI_SECURITY_ID: u32 = 6u32; +pub const DBPROP_CLIENT_CLSID: u32 = 3u32; +pub const DBPROP_DEFAULT_EQUALS_BEHAVIOR: u32 = 2u32; +pub const DBPROP_DEFERCATALOGVERIFICATION: u32 = 8u32; +pub const DBPROP_DEFERNONINDEXEDTRIMMING: u32 = 3u32; +pub const DBPROP_DONOTCOMPUTEEXPENSIVEPROPS: u32 = 15u32; +pub const DBPROP_ENABLEROWSETEVENTS: u32 = 16u32; +pub const DBPROP_FIRSTROWS: u32 = 7u32; +pub const DBPROP_FREETEXTANYTERM: u32 = 12u32; +pub const DBPROP_FREETEXTUSESTEMMING: u32 = 13u32; +pub const DBPROP_GENERATEPARSETREE: u32 = 10u32; +pub const DBPROP_GENERICOPTIONS_STRING: u32 = 6u32; +pub const DBPROP_IGNORENOISEONLYCLAUSES: u32 = 5u32; +pub const DBPROP_IGNORESBRI: u32 = 14u32; +pub const DBPROP_MACHINE: u32 = 2u32; +pub const DBPROP_USECONTENTINDEX: u32 = 2u32; +pub const DBPROP_USEEXTENDEDDBTYPES: u32 = 4u32; +pub const DBSETFUNC_ALL: u32 = 1u32; +pub const DBSETFUNC_DISTINCT: u32 = 2u32; +pub const DBSETFUNC_NONE: u32 = 0u32; +pub const FILTER_E_ACCESS: ::windows_sys::core::HRESULT = -2147215613i32; +pub const FILTER_E_EMBEDDING_UNAVAILABLE: ::windows_sys::core::HRESULT = -2147215609i32; +pub const FILTER_E_END_OF_CHUNKS: ::windows_sys::core::HRESULT = -2147215616i32; +pub const FILTER_E_LINK_UNAVAILABLE: ::windows_sys::core::HRESULT = -2147215608i32; +pub const FILTER_E_NO_MORE_TEXT: ::windows_sys::core::HRESULT = -2147215615i32; +pub const FILTER_E_NO_MORE_VALUES: ::windows_sys::core::HRESULT = -2147215614i32; +pub const FILTER_E_NO_TEXT: ::windows_sys::core::HRESULT = -2147215611i32; +pub const FILTER_E_NO_VALUES: ::windows_sys::core::HRESULT = -2147215610i32; +pub const FILTER_E_PASSWORD: ::windows_sys::core::HRESULT = -2147215605i32; +pub const FILTER_E_UNKNOWNFORMAT: ::windows_sys::core::HRESULT = -2147215604i32; +pub const FILTER_S_LAST_TEXT: ::windows_sys::core::HRESULT = 268041i32; +pub const FILTER_S_LAST_VALUES: ::windows_sys::core::HRESULT = 268042i32; +pub const FILTER_W_MONIKER_CLIPPED: ::windows_sys::core::HRESULT = 268036i32; +pub const GENERATE_METHOD_EXACT: u32 = 0u32; +pub const GENERATE_METHOD_INFLECT: u32 = 2u32; +pub const GENERATE_METHOD_PREFIX: u32 = 1u32; +pub const IFILTER_FLAGS_OLE_PROPERTIES: IFILTER_FLAGS = 1i32; +pub const IFILTER_INIT_APPLY_CRAWL_ATTRIBUTES: IFILTER_INIT = 256i32; +pub const IFILTER_INIT_APPLY_INDEX_ATTRIBUTES: IFILTER_INIT = 16i32; +pub const IFILTER_INIT_APPLY_OTHER_ATTRIBUTES: IFILTER_INIT = 32i32; +pub const IFILTER_INIT_CANON_HYPHENS: IFILTER_INIT = 4i32; +pub const IFILTER_INIT_CANON_PARAGRAPHS: IFILTER_INIT = 1i32; +pub const IFILTER_INIT_CANON_SPACES: IFILTER_INIT = 8i32; +pub const IFILTER_INIT_DISABLE_EMBEDDED: IFILTER_INIT = 2048i32; +pub const IFILTER_INIT_EMIT_FORMATTING: IFILTER_INIT = 4096i32; +pub const IFILTER_INIT_FILTER_AGGRESSIVE_BREAK: IFILTER_INIT = 1024i32; +pub const IFILTER_INIT_FILTER_OWNED_VALUE_OK: IFILTER_INIT = 512i32; +pub const IFILTER_INIT_HARD_LINE_BREAKS: IFILTER_INIT = 2i32; +pub const IFILTER_INIT_INDEXING_ONLY: IFILTER_INIT = 64i32; +pub const IFILTER_INIT_SEARCH_LINKS: IFILTER_INIT = 128i32; +pub const LIFF_FORCE_TEXT_FILTER_FALLBACK: u32 = 3u32; +pub const LIFF_IMPLEMENT_TEXT_FILTER_FALLBACK_POLICY: u32 = 2u32; +pub const LIFF_LOAD_DEFINED_FILTER: u32 = 1u32; +pub const MSIDXSPROP_COMMAND_LOCALE_STRING: u32 = 3u32; +pub const MSIDXSPROP_MAX_RANK: u32 = 6u32; +pub const MSIDXSPROP_PARSE_TREE: u32 = 5u32; +pub const MSIDXSPROP_QUERY_RESTRICTION: u32 = 4u32; +pub const MSIDXSPROP_RESULTS_FOUND: u32 = 7u32; +pub const MSIDXSPROP_ROWSETQUERYSTATUS: u32 = 2u32; +pub const MSIDXSPROP_SAME_SORTORDER_USED: u32 = 14u32; +pub const MSIDXSPROP_SERVER_NLSVERSION: u32 = 12u32; +pub const MSIDXSPROP_SERVER_NLSVER_DEFINED: u32 = 13u32; +pub const MSIDXSPROP_SERVER_VERSION: u32 = 9u32; +pub const MSIDXSPROP_SERVER_WINVER_MAJOR: u32 = 10u32; +pub const MSIDXSPROP_SERVER_WINVER_MINOR: u32 = 11u32; +pub const MSIDXSPROP_WHEREID: u32 = 8u32; +pub const NOT_AN_ERROR: ::windows_sys::core::HRESULT = 524288i32; +pub const PID_FILENAME: u32 = 100u32; +pub const PROPID_QUERY_ALL: u32 = 6u32; +pub const PROPID_QUERY_HITCOUNT: u32 = 4u32; +pub const PROPID_QUERY_LASTSEENTIME: u32 = 10u32; +pub const PROPID_QUERY_RANK: u32 = 3u32; +pub const PROPID_QUERY_RANKVECTOR: u32 = 2u32; +pub const PROPID_QUERY_UNFILTERED: u32 = 7u32; +pub const PROPID_QUERY_VIRTUALPATH: u32 = 9u32; +pub const PROPID_QUERY_WORKID: u32 = 5u32; +pub const PROPID_STG_CONTENTS: u32 = 19u32; +pub const PROXIMITY_UNIT_CHAPTER: u32 = 3u32; +pub const PROXIMITY_UNIT_PARAGRAPH: u32 = 2u32; +pub const PROXIMITY_UNIT_SENTENCE: u32 = 1u32; +pub const PROXIMITY_UNIT_WORD: u32 = 0u32; +pub const PSGUID_FILENAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x41cf5ae0_f75a_4806_bd87_59c7d9248eb9); +pub const QUERY_DEEP: u32 = 1u32; +pub const QUERY_PHYSICAL_PATH: u32 = 0u32; +pub const QUERY_SHALLOW: u32 = 0u32; +pub const QUERY_VIRTUAL_PATH: u32 = 2u32; +pub const SCOPE_FLAG_DEEP: u32 = 2u32; +pub const SCOPE_FLAG_INCLUDE: u32 = 1u32; +pub const SCOPE_FLAG_MASK: u32 = 255u32; +pub const SCOPE_TYPE_MASK: u32 = 4294967040u32; +pub const SCOPE_TYPE_VPATH: u32 = 512u32; +pub const SCOPE_TYPE_WINPATH: u32 = 256u32; +pub const STAT_BUSY: u32 = 0u32; +pub const STAT_COALESCE_COMP_ALL_NOISE: u32 = 8192u32; +pub const STAT_CONTENT_OUT_OF_DATE: u32 = 32u32; +pub const STAT_CONTENT_QUERY_INCOMPLETE: u32 = 128u32; +pub const STAT_DONE: u32 = 2u32; +pub const STAT_ERROR: u32 = 1u32; +pub const STAT_MISSING_PROP_IN_RELDOC: u32 = 2048u32; +pub const STAT_MISSING_RELDOC: u32 = 1024u32; +pub const STAT_NOISE_WORDS: u32 = 16u32; +pub const STAT_PARTIAL_SCOPE: u32 = 8u32; +pub const STAT_REFRESH: u32 = 3u32; +pub const STAT_REFRESH_INCOMPLETE: u32 = 64u32; +pub const STAT_RELDOC_ACCESS_DENIED: u32 = 4096u32; +pub const STAT_SHARING_VIOLATION: u32 = 512u32; +pub const STAT_TIME_LIMIT_EXCEEDED: u32 = 256u32; +pub const VECTOR_RANK_DICE: u32 = 3u32; +pub const VECTOR_RANK_INNER: u32 = 2u32; +pub const VECTOR_RANK_JACCARD: u32 = 4u32; +pub const VECTOR_RANK_MAX: u32 = 1u32; +pub const VECTOR_RANK_MIN: u32 = 0u32; +pub const WORDREP_BREAK_EOC: WORDREP_BREAK_TYPE = 3i32; +pub const WORDREP_BREAK_EOP: WORDREP_BREAK_TYPE = 2i32; +pub const WORDREP_BREAK_EOS: WORDREP_BREAK_TYPE = 1i32; +pub const WORDREP_BREAK_EOW: WORDREP_BREAK_TYPE = 0i32; +pub type CHUNKSTATE = i32; +pub type CHUNK_BREAKTYPE = i32; +pub type DBKINDENUM = i32; +pub type IFILTER_FLAGS = i32; +pub type IFILTER_INIT = i32; +pub type WORDREP_BREAK_TYPE = i32; +#[repr(C)] +pub struct CI_STATE { + pub cbStruct: u32, + pub cWordList: u32, + pub cPersistentIndex: u32, + pub cQueries: u32, + pub cDocuments: u32, + pub cFreshTest: u32, + pub dwMergeProgress: u32, + pub eState: u32, + pub cFilteredDocuments: u32, + pub cTotalDocuments: u32, + pub cPendingScans: u32, + pub dwIndexSize: u32, + pub cUniqueKeys: u32, + pub cSecQDocuments: u32, + pub dwPropCacheSize: u32, +} +impl ::core::marker::Copy for CI_STATE {} +impl ::core::clone::Clone for CI_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DBID { + pub uGuid: DBID_0, + pub eKind: u32, + pub uName: DBID_1, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBID {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub union DBID_0 { + pub guid: ::windows_sys::core::GUID, + pub pguid: *mut ::windows_sys::core::GUID, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBID_0 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub union DBID_1 { + pub pwszName: ::windows_sys::core::PWSTR, + pub ulPropid: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBID_1 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBID_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct DBID { + pub uGuid: DBID_0, + pub eKind: u32, + pub uName: DBID_1, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBID {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub union DBID_0 { + pub guid: ::windows_sys::core::GUID, + pub pguid: *mut ::windows_sys::core::GUID, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBID_0 {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub union DBID_1 { + pub pwszName: ::windows_sys::core::PWSTR, + pub ulPropid: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBID_1 {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBID_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILTERREGION { + pub idChunk: u32, + pub cwcStart: u32, + pub cwcExtent: u32, +} +impl ::core::marker::Copy for FILTERREGION {} +impl ::core::clone::Clone for FILTERREGION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +pub struct FULLPROPSPEC { + pub guidPropSet: ::windows_sys::core::GUID, + pub psProperty: super::super::System::Com::StructuredStorage::PROPSPEC, +} +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +impl ::core::marker::Copy for FULLPROPSPEC {} +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +impl ::core::clone::Clone for FULLPROPSPEC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +pub struct STAT_CHUNK { + pub idChunk: u32, + pub breakType: CHUNK_BREAKTYPE, + pub flags: CHUNKSTATE, + pub locale: u32, + pub attribute: FULLPROPSPEC, + pub idChunkSource: u32, + pub cwcStartSource: u32, + pub cwcLenSource: u32, +} +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +impl ::core::marker::Copy for STAT_CHUNK {} +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +impl ::core::clone::Clone for STAT_CHUNK { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/InstallableFileSystems/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/InstallableFileSystems/mod.rs new file mode 100644 index 000000000..74dc97ef6 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/InstallableFileSystems/mod.rs @@ -0,0 +1,449 @@ +::windows_targets::link!("fltlib.dll" "system" fn FilterAttach(lpfiltername : ::windows_sys::core::PCWSTR, lpvolumename : ::windows_sys::core::PCWSTR, lpinstancename : ::windows_sys::core::PCWSTR, dwcreatedinstancenamelength : u32, lpcreatedinstancename : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("fltlib.dll" "system" fn FilterAttachAtAltitude(lpfiltername : ::windows_sys::core::PCWSTR, lpvolumename : ::windows_sys::core::PCWSTR, lpaltitude : ::windows_sys::core::PCWSTR, lpinstancename : ::windows_sys::core::PCWSTR, dwcreatedinstancenamelength : u32, lpcreatedinstancename : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("fltlib.dll" "system" fn FilterClose(hfilter : HFILTER) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn FilterConnectCommunicationPort(lpportname : ::windows_sys::core::PCWSTR, dwoptions : u32, lpcontext : *const ::core::ffi::c_void, wsizeofcontext : u16, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, hport : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("fltlib.dll" "system" fn FilterCreate(lpfiltername : ::windows_sys::core::PCWSTR, hfilter : *mut HFILTER) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("fltlib.dll" "system" fn FilterDetach(lpfiltername : ::windows_sys::core::PCWSTR, lpvolumename : ::windows_sys::core::PCWSTR, lpinstancename : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterFindClose(hfilterfind : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterFindFirst(dwinformationclass : FILTER_INFORMATION_CLASS, lpbuffer : *mut ::core::ffi::c_void, dwbuffersize : u32, lpbytesreturned : *mut u32, lpfilterfind : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterFindNext(hfilterfind : super::super::Foundation:: HANDLE, dwinformationclass : FILTER_INFORMATION_CLASS, lpbuffer : *mut ::core::ffi::c_void, dwbuffersize : u32, lpbytesreturned : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("fltlib.dll" "system" fn FilterGetDosName(lpvolumename : ::windows_sys::core::PCWSTR, lpdosname : ::windows_sys::core::PWSTR, dwdosnamebuffersize : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("fltlib.dll" "system" fn FilterGetInformation(hfilter : HFILTER, dwinformationclass : FILTER_INFORMATION_CLASS, lpbuffer : *mut ::core::ffi::c_void, dwbuffersize : u32, lpbytesreturned : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn FilterGetMessage(hport : super::super::Foundation:: HANDLE, lpmessagebuffer : *mut FILTER_MESSAGE_HEADER, dwmessagebuffersize : u32, lpoverlapped : *mut super::super::System::IO:: OVERLAPPED) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("fltlib.dll" "system" fn FilterInstanceClose(hinstance : HFILTER_INSTANCE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("fltlib.dll" "system" fn FilterInstanceCreate(lpfiltername : ::windows_sys::core::PCWSTR, lpvolumename : ::windows_sys::core::PCWSTR, lpinstancename : ::windows_sys::core::PCWSTR, hinstance : *mut HFILTER_INSTANCE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterInstanceFindClose(hfilterinstancefind : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterInstanceFindFirst(lpfiltername : ::windows_sys::core::PCWSTR, dwinformationclass : INSTANCE_INFORMATION_CLASS, lpbuffer : *mut ::core::ffi::c_void, dwbuffersize : u32, lpbytesreturned : *mut u32, lpfilterinstancefind : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterInstanceFindNext(hfilterinstancefind : super::super::Foundation:: HANDLE, dwinformationclass : INSTANCE_INFORMATION_CLASS, lpbuffer : *mut ::core::ffi::c_void, dwbuffersize : u32, lpbytesreturned : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("fltlib.dll" "system" fn FilterInstanceGetInformation(hinstance : HFILTER_INSTANCE, dwinformationclass : INSTANCE_INFORMATION_CLASS, lpbuffer : *mut ::core::ffi::c_void, dwbuffersize : u32, lpbytesreturned : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("fltlib.dll" "system" fn FilterLoad(lpfiltername : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterReplyMessage(hport : super::super::Foundation:: HANDLE, lpreplybuffer : *const FILTER_REPLY_HEADER, dwreplybuffersize : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterSendMessage(hport : super::super::Foundation:: HANDLE, lpinbuffer : *const ::core::ffi::c_void, dwinbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, dwoutbuffersize : u32, lpbytesreturned : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("fltlib.dll" "system" fn FilterUnload(lpfiltername : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterVolumeFindClose(hvolumefind : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterVolumeFindFirst(dwinformationclass : FILTER_VOLUME_INFORMATION_CLASS, lpbuffer : *mut ::core::ffi::c_void, dwbuffersize : u32, lpbytesreturned : *mut u32, lpvolumefind : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterVolumeFindNext(hvolumefind : super::super::Foundation:: HANDLE, dwinformationclass : FILTER_VOLUME_INFORMATION_CLASS, lpbuffer : *mut ::core::ffi::c_void, dwbuffersize : u32, lpbytesreturned : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterVolumeInstanceFindClose(hvolumeinstancefind : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterVolumeInstanceFindFirst(lpvolumename : ::windows_sys::core::PCWSTR, dwinformationclass : INSTANCE_INFORMATION_CLASS, lpbuffer : *mut ::core::ffi::c_void, dwbuffersize : u32, lpbytesreturned : *mut u32, lpvolumeinstancefind : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("fltlib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FilterVolumeInstanceFindNext(hvolumeinstancefind : super::super::Foundation:: HANDLE, dwinformationclass : INSTANCE_INFORMATION_CLASS, lpbuffer : *mut ::core::ffi::c_void, dwbuffersize : u32, lpbytesreturned : *mut u32) -> ::windows_sys::core::HRESULT); +pub const FILTER_NAME_MAX_CHARS: u32 = 255u32; +pub const FLTFL_AGGREGATE_INFO_IS_LEGACYFILTER: u32 = 2u32; +pub const FLTFL_AGGREGATE_INFO_IS_MINIFILTER: u32 = 1u32; +pub const FLTFL_ASI_IS_LEGACYFILTER: u32 = 2u32; +pub const FLTFL_ASI_IS_MINIFILTER: u32 = 1u32; +pub const FLTFL_IASIL_DETACHED_VOLUME: u32 = 1u32; +pub const FLTFL_IASIM_DETACHED_VOLUME: u32 = 1u32; +pub const FLTFL_IASI_IS_LEGACYFILTER: u32 = 2u32; +pub const FLTFL_IASI_IS_MINIFILTER: u32 = 1u32; +pub const FLTFL_VSI_DETACHED_VOLUME: u32 = 1u32; +pub const FLT_FSTYPE_BSUDF: FLT_FILESYSTEM_TYPE = 12i32; +pub const FLT_FSTYPE_CDFS: FLT_FILESYSTEM_TYPE = 4i32; +pub const FLT_FSTYPE_CIMFS: FLT_FILESYSTEM_TYPE = 30i32; +pub const FLT_FSTYPE_CSVFS: FLT_FILESYSTEM_TYPE = 27i32; +pub const FLT_FSTYPE_EXFAT: FLT_FILESYSTEM_TYPE = 22i32; +pub const FLT_FSTYPE_FAT: FLT_FILESYSTEM_TYPE = 3i32; +pub const FLT_FSTYPE_FS_REC: FLT_FILESYSTEM_TYPE = 19i32; +pub const FLT_FSTYPE_GPFS: FLT_FILESYSTEM_TYPE = 24i32; +pub const FLT_FSTYPE_INCD: FLT_FILESYSTEM_TYPE = 20i32; +pub const FLT_FSTYPE_INCD_FAT: FLT_FILESYSTEM_TYPE = 21i32; +pub const FLT_FSTYPE_LANMAN: FLT_FILESYSTEM_TYPE = 6i32; +pub const FLT_FSTYPE_MSFS: FLT_FILESYSTEM_TYPE = 26i32; +pub const FLT_FSTYPE_MS_NETWARE: FLT_FILESYSTEM_TYPE = 10i32; +pub const FLT_FSTYPE_MUP: FLT_FILESYSTEM_TYPE = 13i32; +pub const FLT_FSTYPE_NETWARE: FLT_FILESYSTEM_TYPE = 11i32; +pub const FLT_FSTYPE_NFS: FLT_FILESYSTEM_TYPE = 9i32; +pub const FLT_FSTYPE_NPFS: FLT_FILESYSTEM_TYPE = 25i32; +pub const FLT_FSTYPE_NTFS: FLT_FILESYSTEM_TYPE = 2i32; +pub const FLT_FSTYPE_OPENAFS: FLT_FILESYSTEM_TYPE = 29i32; +pub const FLT_FSTYPE_PSFS: FLT_FILESYSTEM_TYPE = 23i32; +pub const FLT_FSTYPE_RAW: FLT_FILESYSTEM_TYPE = 1i32; +pub const FLT_FSTYPE_RDPDR: FLT_FILESYSTEM_TYPE = 8i32; +pub const FLT_FSTYPE_REFS: FLT_FILESYSTEM_TYPE = 28i32; +pub const FLT_FSTYPE_ROXIO_UDF1: FLT_FILESYSTEM_TYPE = 15i32; +pub const FLT_FSTYPE_ROXIO_UDF2: FLT_FILESYSTEM_TYPE = 16i32; +pub const FLT_FSTYPE_ROXIO_UDF3: FLT_FILESYSTEM_TYPE = 17i32; +pub const FLT_FSTYPE_RSFX: FLT_FILESYSTEM_TYPE = 14i32; +pub const FLT_FSTYPE_TACIT: FLT_FILESYSTEM_TYPE = 18i32; +pub const FLT_FSTYPE_UDFS: FLT_FILESYSTEM_TYPE = 5i32; +pub const FLT_FSTYPE_UNKNOWN: FLT_FILESYSTEM_TYPE = 0i32; +pub const FLT_FSTYPE_WEBDAV: FLT_FILESYSTEM_TYPE = 7i32; +pub const FLT_PORT_FLAG_SYNC_HANDLE: u32 = 1u32; +pub const FilterAggregateBasicInformation: FILTER_INFORMATION_CLASS = 1i32; +pub const FilterAggregateStandardInformation: FILTER_INFORMATION_CLASS = 2i32; +pub const FilterFullInformation: FILTER_INFORMATION_CLASS = 0i32; +pub const FilterVolumeBasicInformation: FILTER_VOLUME_INFORMATION_CLASS = 0i32; +pub const FilterVolumeStandardInformation: FILTER_VOLUME_INFORMATION_CLASS = 1i32; +pub const INSTANCE_NAME_MAX_CHARS: u32 = 255u32; +pub const InstanceAggregateStandardInformation: INSTANCE_INFORMATION_CLASS = 3i32; +pub const InstanceBasicInformation: INSTANCE_INFORMATION_CLASS = 0i32; +pub const InstanceFullInformation: INSTANCE_INFORMATION_CLASS = 2i32; +pub const InstancePartialInformation: INSTANCE_INFORMATION_CLASS = 1i32; +pub const VOLUME_NAME_MAX_CHARS: u32 = 1024u32; +pub const WNNC_CRED_MANAGER: u32 = 4294901760u32; +pub const WNNC_NET_10NET: u32 = 327680u32; +pub const WNNC_NET_3IN1: u32 = 2555904u32; +pub const WNNC_NET_9P: u32 = 4718592u32; +pub const WNNC_NET_9TILES: u32 = 589824u32; +pub const WNNC_NET_APPLETALK: u32 = 1245184u32; +pub const WNNC_NET_AS400: u32 = 720896u32; +pub const WNNC_NET_AURISTOR_FS: u32 = 4587520u32; +pub const WNNC_NET_AVID: u32 = 1703936u32; +pub const WNNC_NET_AVID1: u32 = 3801088u32; +pub const WNNC_NET_BMC: u32 = 1572864u32; +pub const WNNC_NET_BWNFS: u32 = 1048576u32; +pub const WNNC_NET_CLEARCASE: u32 = 1441792u32; +pub const WNNC_NET_COGENT: u32 = 1114112u32; +pub const WNNC_NET_CSC: u32 = 2490368u32; +pub const WNNC_NET_DAV: u32 = 3014656u32; +pub const WNNC_NET_DCE: u32 = 1638400u32; +pub const WNNC_NET_DECORB: u32 = 2097152u32; +pub const WNNC_NET_DFS: u32 = 3866624u32; +pub const WNNC_NET_DISTINCT: u32 = 2293760u32; +pub const WNNC_NET_DOCUSHARE: u32 = 4521984u32; +pub const WNNC_NET_DOCUSPACE: u32 = 1769472u32; +pub const WNNC_NET_DRIVEONWEB: u32 = 4063232u32; +pub const WNNC_NET_EXIFS: u32 = 2949120u32; +pub const WNNC_NET_EXTENDNET: u32 = 2686976u32; +pub const WNNC_NET_FARALLON: u32 = 1179648u32; +pub const WNNC_NET_FJ_REDIR: u32 = 2228224u32; +pub const WNNC_NET_FOXBAT: u32 = 2818048u32; +pub const WNNC_NET_FRONTIER: u32 = 1507328u32; +pub const WNNC_NET_FTP_NFS: u32 = 786432u32; +pub const WNNC_NET_GOOGLE: u32 = 4390912u32; +pub const WNNC_NET_HOB_NFS: u32 = 3276800u32; +pub const WNNC_NET_IBMAL: u32 = 3407872u32; +pub const WNNC_NET_INTERGRAPH: u32 = 1310720u32; +pub const WNNC_NET_KNOWARE: u32 = 3080192u32; +pub const WNNC_NET_KWNP: u32 = 3932160u32; +pub const WNNC_NET_LANMAN: u32 = 131072u32; +pub const WNNC_NET_LANSTEP: u32 = 524288u32; +pub const WNNC_NET_LANTASTIC: u32 = 655360u32; +pub const WNNC_NET_LIFENET: u32 = 917504u32; +pub const WNNC_NET_LOCK: u32 = 3473408u32; +pub const WNNC_NET_LOCUS: u32 = 393216u32; +pub const WNNC_NET_MANGOSOFT: u32 = 1835008u32; +pub const WNNC_NET_MASFAX: u32 = 3211264u32; +pub const WNNC_NET_MFILES: u32 = 4259840u32; +pub const WNNC_NET_MSNET: u32 = 65536u32; +pub const WNNC_NET_MS_NFS: u32 = 4325376u32; +pub const WNNC_NET_NDFS: u32 = 4456448u32; +pub const WNNC_NET_NETWARE: u32 = 196608u32; +pub const WNNC_NET_OBJECT_DIRE: u32 = 3145728u32; +pub const WNNC_NET_OPENAFS: u32 = 3735552u32; +pub const WNNC_NET_PATHWORKS: u32 = 851968u32; +pub const WNNC_NET_POWERLAN: u32 = 983040u32; +pub const WNNC_NET_PROTSTOR: u32 = 2162688u32; +pub const WNNC_NET_QUINCY: u32 = 3670016u32; +pub const WNNC_NET_RDR2SAMPLE: u32 = 2424832u32; +pub const WNNC_NET_RIVERFRONT1: u32 = 1966080u32; +pub const WNNC_NET_RIVERFRONT2: u32 = 2031616u32; +pub const WNNC_NET_RSFX: u32 = 4194304u32; +pub const WNNC_NET_SECUREAGENT: u32 = 4653056u32; +pub const WNNC_NET_SERNET: u32 = 1900544u32; +pub const WNNC_NET_SHIVA: u32 = 3342336u32; +pub const WNNC_NET_SMB: u32 = 131072u32; +pub const WNNC_NET_SRT: u32 = 3604480u32; +pub const WNNC_NET_STAC: u32 = 2752512u32; +pub const WNNC_NET_SUN_PC_NFS: u32 = 458752u32; +pub const WNNC_NET_SYMFONET: u32 = 1376256u32; +pub const WNNC_NET_TERMSRV: u32 = 3538944u32; +pub const WNNC_NET_TWINS: u32 = 2359296u32; +pub const WNNC_NET_VINES: u32 = 262144u32; +pub const WNNC_NET_VMWARE: u32 = 4128768u32; +pub const WNNC_NET_YAHOO: u32 = 2883584u32; +pub const WNNC_NET_ZENWORKS: u32 = 3997696u32; +pub type FILTER_INFORMATION_CLASS = i32; +pub type FILTER_VOLUME_INFORMATION_CLASS = i32; +pub type FLT_FILESYSTEM_TYPE = i32; +pub type INSTANCE_INFORMATION_CLASS = i32; +#[repr(C)] +pub struct FILTER_AGGREGATE_BASIC_INFORMATION { + pub NextEntryOffset: u32, + pub Flags: u32, + pub Type: FILTER_AGGREGATE_BASIC_INFORMATION_0, +} +impl ::core::marker::Copy for FILTER_AGGREGATE_BASIC_INFORMATION {} +impl ::core::clone::Clone for FILTER_AGGREGATE_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FILTER_AGGREGATE_BASIC_INFORMATION_0 { + pub MiniFilter: FILTER_AGGREGATE_BASIC_INFORMATION_0_1, + pub LegacyFilter: FILTER_AGGREGATE_BASIC_INFORMATION_0_0, +} +impl ::core::marker::Copy for FILTER_AGGREGATE_BASIC_INFORMATION_0 {} +impl ::core::clone::Clone for FILTER_AGGREGATE_BASIC_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILTER_AGGREGATE_BASIC_INFORMATION_0_0 { + pub FilterNameLength: u16, + pub FilterNameBufferOffset: u16, +} +impl ::core::marker::Copy for FILTER_AGGREGATE_BASIC_INFORMATION_0_0 {} +impl ::core::clone::Clone for FILTER_AGGREGATE_BASIC_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILTER_AGGREGATE_BASIC_INFORMATION_0_1 { + pub FrameID: u32, + pub NumberOfInstances: u32, + pub FilterNameLength: u16, + pub FilterNameBufferOffset: u16, + pub FilterAltitudeLength: u16, + pub FilterAltitudeBufferOffset: u16, +} +impl ::core::marker::Copy for FILTER_AGGREGATE_BASIC_INFORMATION_0_1 {} +impl ::core::clone::Clone for FILTER_AGGREGATE_BASIC_INFORMATION_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILTER_AGGREGATE_STANDARD_INFORMATION { + pub NextEntryOffset: u32, + pub Flags: u32, + pub Type: FILTER_AGGREGATE_STANDARD_INFORMATION_0, +} +impl ::core::marker::Copy for FILTER_AGGREGATE_STANDARD_INFORMATION {} +impl ::core::clone::Clone for FILTER_AGGREGATE_STANDARD_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FILTER_AGGREGATE_STANDARD_INFORMATION_0 { + pub MiniFilter: FILTER_AGGREGATE_STANDARD_INFORMATION_0_1, + pub LegacyFilter: FILTER_AGGREGATE_STANDARD_INFORMATION_0_0, +} +impl ::core::marker::Copy for FILTER_AGGREGATE_STANDARD_INFORMATION_0 {} +impl ::core::clone::Clone for FILTER_AGGREGATE_STANDARD_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILTER_AGGREGATE_STANDARD_INFORMATION_0_0 { + pub Flags: u32, + pub FilterNameLength: u16, + pub FilterNameBufferOffset: u16, + pub FilterAltitudeLength: u16, + pub FilterAltitudeBufferOffset: u16, +} +impl ::core::marker::Copy for FILTER_AGGREGATE_STANDARD_INFORMATION_0_0 {} +impl ::core::clone::Clone for FILTER_AGGREGATE_STANDARD_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILTER_AGGREGATE_STANDARD_INFORMATION_0_1 { + pub Flags: u32, + pub FrameID: u32, + pub NumberOfInstances: u32, + pub FilterNameLength: u16, + pub FilterNameBufferOffset: u16, + pub FilterAltitudeLength: u16, + pub FilterAltitudeBufferOffset: u16, +} +impl ::core::marker::Copy for FILTER_AGGREGATE_STANDARD_INFORMATION_0_1 {} +impl ::core::clone::Clone for FILTER_AGGREGATE_STANDARD_INFORMATION_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILTER_FULL_INFORMATION { + pub NextEntryOffset: u32, + pub FrameID: u32, + pub NumberOfInstances: u32, + pub FilterNameLength: u16, + pub FilterNameBuffer: [u16; 1], +} +impl ::core::marker::Copy for FILTER_FULL_INFORMATION {} +impl ::core::clone::Clone for FILTER_FULL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILTER_MESSAGE_HEADER { + pub ReplyLength: u32, + pub MessageId: u64, +} +impl ::core::marker::Copy for FILTER_MESSAGE_HEADER {} +impl ::core::clone::Clone for FILTER_MESSAGE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILTER_REPLY_HEADER { + pub Status: super::super::Foundation::NTSTATUS, + pub MessageId: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILTER_REPLY_HEADER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILTER_REPLY_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILTER_VOLUME_BASIC_INFORMATION { + pub FilterVolumeNameLength: u16, + pub FilterVolumeName: [u16; 1], +} +impl ::core::marker::Copy for FILTER_VOLUME_BASIC_INFORMATION {} +impl ::core::clone::Clone for FILTER_VOLUME_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILTER_VOLUME_STANDARD_INFORMATION { + pub NextEntryOffset: u32, + pub Flags: u32, + pub FrameID: u32, + pub FileSystemType: FLT_FILESYSTEM_TYPE, + pub FilterVolumeNameLength: u16, + pub FilterVolumeName: [u16; 1], +} +impl ::core::marker::Copy for FILTER_VOLUME_STANDARD_INFORMATION {} +impl ::core::clone::Clone for FILTER_VOLUME_STANDARD_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +pub type HFILTER = isize; +pub type HFILTER_INSTANCE = isize; +#[repr(C)] +pub struct INSTANCE_AGGREGATE_STANDARD_INFORMATION { + pub NextEntryOffset: u32, + pub Flags: u32, + pub Type: INSTANCE_AGGREGATE_STANDARD_INFORMATION_0, +} +impl ::core::marker::Copy for INSTANCE_AGGREGATE_STANDARD_INFORMATION {} +impl ::core::clone::Clone for INSTANCE_AGGREGATE_STANDARD_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union INSTANCE_AGGREGATE_STANDARD_INFORMATION_0 { + pub MiniFilter: INSTANCE_AGGREGATE_STANDARD_INFORMATION_0_1, + pub LegacyFilter: INSTANCE_AGGREGATE_STANDARD_INFORMATION_0_0, +} +impl ::core::marker::Copy for INSTANCE_AGGREGATE_STANDARD_INFORMATION_0 {} +impl ::core::clone::Clone for INSTANCE_AGGREGATE_STANDARD_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INSTANCE_AGGREGATE_STANDARD_INFORMATION_0_0 { + pub Flags: u32, + pub AltitudeLength: u16, + pub AltitudeBufferOffset: u16, + pub VolumeNameLength: u16, + pub VolumeNameBufferOffset: u16, + pub FilterNameLength: u16, + pub FilterNameBufferOffset: u16, + pub SupportedFeatures: u32, +} +impl ::core::marker::Copy for INSTANCE_AGGREGATE_STANDARD_INFORMATION_0_0 {} +impl ::core::clone::Clone for INSTANCE_AGGREGATE_STANDARD_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INSTANCE_AGGREGATE_STANDARD_INFORMATION_0_1 { + pub Flags: u32, + pub FrameID: u32, + pub VolumeFileSystemType: FLT_FILESYSTEM_TYPE, + pub InstanceNameLength: u16, + pub InstanceNameBufferOffset: u16, + pub AltitudeLength: u16, + pub AltitudeBufferOffset: u16, + pub VolumeNameLength: u16, + pub VolumeNameBufferOffset: u16, + pub FilterNameLength: u16, + pub FilterNameBufferOffset: u16, + pub SupportedFeatures: u32, +} +impl ::core::marker::Copy for INSTANCE_AGGREGATE_STANDARD_INFORMATION_0_1 {} +impl ::core::clone::Clone for INSTANCE_AGGREGATE_STANDARD_INFORMATION_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INSTANCE_BASIC_INFORMATION { + pub NextEntryOffset: u32, + pub InstanceNameLength: u16, + pub InstanceNameBufferOffset: u16, +} +impl ::core::marker::Copy for INSTANCE_BASIC_INFORMATION {} +impl ::core::clone::Clone for INSTANCE_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INSTANCE_FULL_INFORMATION { + pub NextEntryOffset: u32, + pub InstanceNameLength: u16, + pub InstanceNameBufferOffset: u16, + pub AltitudeLength: u16, + pub AltitudeBufferOffset: u16, + pub VolumeNameLength: u16, + pub VolumeNameBufferOffset: u16, + pub FilterNameLength: u16, + pub FilterNameBufferOffset: u16, +} +impl ::core::marker::Copy for INSTANCE_FULL_INFORMATION {} +impl ::core::clone::Clone for INSTANCE_FULL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INSTANCE_PARTIAL_INFORMATION { + pub NextEntryOffset: u32, + pub InstanceNameLength: u16, + pub InstanceNameBufferOffset: u16, + pub AltitudeLength: u16, + pub AltitudeBufferOffset: u16, +} +impl ::core::marker::Copy for INSTANCE_PARTIAL_INFORMATION {} +impl ::core::clone::Clone for INSTANCE_PARTIAL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/IscsiDisc/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/IscsiDisc/mod.rs new file mode 100644 index 000000000..194b735f8 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/IscsiDisc/mod.rs @@ -0,0 +1,1840 @@ +::windows_targets::link!("iscsidsc.dll" "system" fn AddISNSServerA(address : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn AddISNSServerW(address : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn AddIScsiConnectionA(uniquesessionid : *mut ISCSI_UNIQUE_SESSION_ID, reserved : *mut ::core::ffi::c_void, initiatorportnumber : u32, targetportal : *mut ISCSI_TARGET_PORTALA, securityflags : u64, loginoptions : *mut ISCSI_LOGIN_OPTIONS, keysize : u32, key : ::windows_sys::core::PCSTR, connectionid : *mut ISCSI_UNIQUE_SESSION_ID) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn AddIScsiConnectionW(uniquesessionid : *mut ISCSI_UNIQUE_SESSION_ID, reserved : *mut ::core::ffi::c_void, initiatorportnumber : u32, targetportal : *mut ISCSI_TARGET_PORTALW, securityflags : u64, loginoptions : *mut ISCSI_LOGIN_OPTIONS, keysize : u32, key : ::windows_sys::core::PCSTR, connectionid : *mut ISCSI_UNIQUE_SESSION_ID) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn AddIScsiSendTargetPortalA(initiatorinstance : ::windows_sys::core::PCSTR, initiatorportnumber : u32, loginoptions : *mut ISCSI_LOGIN_OPTIONS, securityflags : u64, portal : *mut ISCSI_TARGET_PORTALA) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn AddIScsiSendTargetPortalW(initiatorinstance : ::windows_sys::core::PCWSTR, initiatorportnumber : u32, loginoptions : *mut ISCSI_LOGIN_OPTIONS, securityflags : u64, portal : *mut ISCSI_TARGET_PORTALW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddIScsiStaticTargetA(targetname : ::windows_sys::core::PCSTR, targetalias : ::windows_sys::core::PCSTR, targetflags : u32, persist : super::super::Foundation:: BOOLEAN, mappings : *mut ISCSI_TARGET_MAPPINGA, loginoptions : *mut ISCSI_LOGIN_OPTIONS, portalgroup : *mut ISCSI_TARGET_PORTAL_GROUPA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddIScsiStaticTargetW(targetname : ::windows_sys::core::PCWSTR, targetalias : ::windows_sys::core::PCWSTR, targetflags : u32, persist : super::super::Foundation:: BOOLEAN, mappings : *mut ISCSI_TARGET_MAPPINGW, loginoptions : *mut ISCSI_LOGIN_OPTIONS, portalgroup : *mut ISCSI_TARGET_PORTAL_GROUPW) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn AddPersistentIScsiDeviceA(devicepath : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn AddPersistentIScsiDeviceW(devicepath : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn AddRadiusServerA(address : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn AddRadiusServerW(address : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ClearPersistentIScsiDevices() -> u32); +#[cfg(feature = "Win32_System_Ioctl")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_System_Ioctl\"`"] fn GetDevicesForIScsiSessionA(uniquesessionid : *mut ISCSI_UNIQUE_SESSION_ID, devicecount : *mut u32, devices : *mut ISCSI_DEVICE_ON_SESSIONA) -> u32); +#[cfg(feature = "Win32_System_Ioctl")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_System_Ioctl\"`"] fn GetDevicesForIScsiSessionW(uniquesessionid : *mut ISCSI_UNIQUE_SESSION_ID, devicecount : *mut u32, devices : *mut ISCSI_DEVICE_ON_SESSIONW) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn GetIScsiIKEInfoA(initiatorname : ::windows_sys::core::PCSTR, initiatorportnumber : u32, reserved : *mut u32, authinfo : *mut IKE_AUTHENTICATION_INFORMATION) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn GetIScsiIKEInfoW(initiatorname : ::windows_sys::core::PCWSTR, initiatorportnumber : u32, reserved : *mut u32, authinfo : *mut IKE_AUTHENTICATION_INFORMATION) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn GetIScsiInitiatorNodeNameA(initiatornodename : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn GetIScsiInitiatorNodeNameW(initiatornodename : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn GetIScsiSessionListA(buffersize : *mut u32, sessioncount : *mut u32, sessioninfo : *mut ISCSI_SESSION_INFOA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetIScsiSessionListEx(buffersize : *mut u32, sessioncountptr : *mut u32, sessioninfo : *mut ISCSI_SESSION_INFO_EX) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn GetIScsiSessionListW(buffersize : *mut u32, sessioncount : *mut u32, sessioninfo : *mut ISCSI_SESSION_INFOW) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn GetIScsiTargetInformationA(targetname : ::windows_sys::core::PCSTR, discoverymechanism : ::windows_sys::core::PCSTR, infoclass : TARGET_INFORMATION_CLASS, buffersize : *mut u32, buffer : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn GetIScsiTargetInformationW(targetname : ::windows_sys::core::PCWSTR, discoverymechanism : ::windows_sys::core::PCWSTR, infoclass : TARGET_INFORMATION_CLASS, buffersize : *mut u32, buffer : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn GetIScsiVersionInformation(versioninfo : *mut ISCSI_VERSION_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoginIScsiTargetA(targetname : ::windows_sys::core::PCSTR, isinformationalsession : super::super::Foundation:: BOOLEAN, initiatorinstance : ::windows_sys::core::PCSTR, initiatorportnumber : u32, targetportal : *mut ISCSI_TARGET_PORTALA, securityflags : u64, mappings : *mut ISCSI_TARGET_MAPPINGA, loginoptions : *mut ISCSI_LOGIN_OPTIONS, keysize : u32, key : ::windows_sys::core::PCSTR, ispersistent : super::super::Foundation:: BOOLEAN, uniquesessionid : *mut ISCSI_UNIQUE_SESSION_ID, uniqueconnectionid : *mut ISCSI_UNIQUE_SESSION_ID) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoginIScsiTargetW(targetname : ::windows_sys::core::PCWSTR, isinformationalsession : super::super::Foundation:: BOOLEAN, initiatorinstance : ::windows_sys::core::PCWSTR, initiatorportnumber : u32, targetportal : *mut ISCSI_TARGET_PORTALW, securityflags : u64, mappings : *mut ISCSI_TARGET_MAPPINGW, loginoptions : *mut ISCSI_LOGIN_OPTIONS, keysize : u32, key : ::windows_sys::core::PCSTR, ispersistent : super::super::Foundation:: BOOLEAN, uniquesessionid : *mut ISCSI_UNIQUE_SESSION_ID, uniqueconnectionid : *mut ISCSI_UNIQUE_SESSION_ID) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn LogoutIScsiTarget(uniquesessionid : *mut ISCSI_UNIQUE_SESSION_ID) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RefreshISNSServerA(address : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RefreshISNSServerW(address : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RefreshIScsiSendTargetPortalA(initiatorinstance : ::windows_sys::core::PCSTR, initiatorportnumber : u32, portal : *mut ISCSI_TARGET_PORTALA) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RefreshIScsiSendTargetPortalW(initiatorinstance : ::windows_sys::core::PCWSTR, initiatorportnumber : u32, portal : *mut ISCSI_TARGET_PORTALW) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RemoveISNSServerA(address : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RemoveISNSServerW(address : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RemoveIScsiConnection(uniquesessionid : *mut ISCSI_UNIQUE_SESSION_ID, connectionid : *mut ISCSI_UNIQUE_SESSION_ID) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RemoveIScsiPersistentTargetA(initiatorinstance : ::windows_sys::core::PCSTR, initiatorportnumber : u32, targetname : ::windows_sys::core::PCSTR, portal : *mut ISCSI_TARGET_PORTALA) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RemoveIScsiPersistentTargetW(initiatorinstance : ::windows_sys::core::PCWSTR, initiatorportnumber : u32, targetname : ::windows_sys::core::PCWSTR, portal : *mut ISCSI_TARGET_PORTALW) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RemoveIScsiSendTargetPortalA(initiatorinstance : ::windows_sys::core::PCSTR, initiatorportnumber : u32, portal : *mut ISCSI_TARGET_PORTALA) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RemoveIScsiSendTargetPortalW(initiatorinstance : ::windows_sys::core::PCWSTR, initiatorportnumber : u32, portal : *mut ISCSI_TARGET_PORTALW) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RemoveIScsiStaticTargetA(targetname : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RemoveIScsiStaticTargetW(targetname : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RemovePersistentIScsiDeviceA(devicepath : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RemovePersistentIScsiDeviceW(devicepath : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RemoveRadiusServerA(address : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn RemoveRadiusServerW(address : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportActiveIScsiTargetMappingsA(buffersize : *mut u32, mappingcount : *mut u32, mappings : *mut ISCSI_TARGET_MAPPINGA) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportActiveIScsiTargetMappingsW(buffersize : *mut u32, mappingcount : *mut u32, mappings : *mut ISCSI_TARGET_MAPPINGW) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportISNSServerListA(buffersizeinchar : *mut u32, buffer : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportISNSServerListW(buffersizeinchar : *mut u32, buffer : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportIScsiInitiatorListA(buffersize : *mut u32, buffer : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportIScsiInitiatorListW(buffersize : *mut u32, buffer : ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReportIScsiPersistentLoginsA(count : *mut u32, persistentlogininfo : *mut PERSISTENT_ISCSI_LOGIN_INFOA, buffersizeinbytes : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReportIScsiPersistentLoginsW(count : *mut u32, persistentlogininfo : *mut PERSISTENT_ISCSI_LOGIN_INFOW, buffersizeinbytes : *mut u32) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportIScsiSendTargetPortalsA(portalcount : *mut u32, portalinfo : *mut ISCSI_TARGET_PORTAL_INFOA) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportIScsiSendTargetPortalsExA(portalcount : *mut u32, portalinfosize : *mut u32, portalinfo : *mut ISCSI_TARGET_PORTAL_INFO_EXA) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportIScsiSendTargetPortalsExW(portalcount : *mut u32, portalinfosize : *mut u32, portalinfo : *mut ISCSI_TARGET_PORTAL_INFO_EXW) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportIScsiSendTargetPortalsW(portalcount : *mut u32, portalinfo : *mut ISCSI_TARGET_PORTAL_INFOW) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportIScsiTargetPortalsA(initiatorname : ::windows_sys::core::PCSTR, targetname : ::windows_sys::core::PCSTR, targetportaltag : *mut u16, elementcount : *mut u32, portals : *mut ISCSI_TARGET_PORTALA) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportIScsiTargetPortalsW(initiatorname : ::windows_sys::core::PCWSTR, targetname : ::windows_sys::core::PCWSTR, targetportaltag : *mut u16, elementcount : *mut u32, portals : *mut ISCSI_TARGET_PORTALW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReportIScsiTargetsA(forceupdate : super::super::Foundation:: BOOLEAN, buffersize : *mut u32, buffer : ::windows_sys::core::PSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReportIScsiTargetsW(forceupdate : super::super::Foundation:: BOOLEAN, buffersize : *mut u32, buffer : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportPersistentIScsiDevicesA(buffersizeinchar : *mut u32, buffer : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportPersistentIScsiDevicesW(buffersizeinchar : *mut u32, buffer : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportRadiusServerListA(buffersizeinchar : *mut u32, buffer : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn ReportRadiusServerListW(buffersizeinchar : *mut u32, buffer : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn SendScsiInquiry(uniquesessionid : *mut ISCSI_UNIQUE_SESSION_ID, lun : u64, evpdcmddt : u8, pagecode : u8, scsistatus : *mut u8, responsesize : *mut u32, responsebuffer : *mut u8, sensesize : *mut u32, sensebuffer : *mut u8) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn SendScsiReadCapacity(uniquesessionid : *mut ISCSI_UNIQUE_SESSION_ID, lun : u64, scsistatus : *mut u8, responsesize : *mut u32, responsebuffer : *mut u8, sensesize : *mut u32, sensebuffer : *mut u8) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn SendScsiReportLuns(uniquesessionid : *mut ISCSI_UNIQUE_SESSION_ID, scsistatus : *mut u8, responsesize : *mut u32, responsebuffer : *mut u8, sensesize : *mut u32, sensebuffer : *mut u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetIScsiGroupPresharedKey(keylength : u32, key : *mut u8, persist : super::super::Foundation:: BOOLEAN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetIScsiIKEInfoA(initiatorname : ::windows_sys::core::PCSTR, initiatorportnumber : u32, authinfo : *mut IKE_AUTHENTICATION_INFORMATION, persist : super::super::Foundation:: BOOLEAN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetIScsiIKEInfoW(initiatorname : ::windows_sys::core::PCWSTR, initiatorportnumber : u32, authinfo : *mut IKE_AUTHENTICATION_INFORMATION, persist : super::super::Foundation:: BOOLEAN) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn SetIScsiInitiatorCHAPSharedSecret(sharedsecretlength : u32, sharedsecret : *mut u8) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn SetIScsiInitiatorNodeNameA(initiatornodename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn SetIScsiInitiatorNodeNameW(initiatornodename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn SetIScsiInitiatorRADIUSSharedSecret(sharedsecretlength : u32, sharedsecret : *mut u8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetIScsiTunnelModeOuterAddressA(initiatorname : ::windows_sys::core::PCSTR, initiatorportnumber : u32, destinationaddress : ::windows_sys::core::PCSTR, outermodeaddress : ::windows_sys::core::PCSTR, persist : super::super::Foundation:: BOOLEAN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("iscsidsc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetIScsiTunnelModeOuterAddressW(initiatorname : ::windows_sys::core::PCWSTR, initiatorportnumber : u32, destinationaddress : ::windows_sys::core::PCWSTR, outermodeaddress : ::windows_sys::core::PCWSTR, persist : super::super::Foundation:: BOOLEAN) -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn SetupPersistentIScsiDevices() -> u32); +::windows_targets::link!("iscsidsc.dll" "system" fn SetupPersistentIScsiVolumes() -> u32); +pub const ATA_FLAGS_48BIT_COMMAND: u32 = 8u32; +pub const ATA_FLAGS_DATA_IN: u32 = 2u32; +pub const ATA_FLAGS_DATA_OUT: u32 = 4u32; +pub const ATA_FLAGS_DRDY_REQUIRED: u32 = 1u32; +pub const ATA_FLAGS_NO_MULTIPLE: u32 = 32u32; +pub const ATA_FLAGS_USE_DMA: u32 = 16u32; +pub const DD_SCSI_DEVICE_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("\\Device\\ScsiPort"); +pub const DUMP_DRIVER_NAME_LENGTH: u32 = 15u32; +pub const DUMP_EX_FLAG_DRIVER_FULL_PATH_SUPPORT: u32 = 8u32; +pub const DUMP_EX_FLAG_RESUME_SUPPORT: u32 = 4u32; +pub const DUMP_EX_FLAG_SUPPORT_64BITMEMORY: u32 = 1u32; +pub const DUMP_EX_FLAG_SUPPORT_DD_TELEMETRY: u32 = 2u32; +pub const DUMP_POINTERS_VERSION_1: u32 = 1u32; +pub const DUMP_POINTERS_VERSION_2: u32 = 2u32; +pub const DUMP_POINTERS_VERSION_3: u32 = 3u32; +pub const DUMP_POINTERS_VERSION_4: u32 = 4u32; +pub const DiscoveryMechanisms: TARGET_INFORMATION_CLASS = 2i32; +pub const FILE_DEVICE_SCSI: u32 = 27u32; +pub const FIRMWARE_FUNCTION_ACTIVATE: u32 = 3u32; +pub const FIRMWARE_FUNCTION_DOWNLOAD: u32 = 2u32; +pub const FIRMWARE_FUNCTION_GET_INFO: u32 = 1u32; +pub const FIRMWARE_REQUEST_BLOCK_STRUCTURE_VERSION: u32 = 1u32; +pub const FIRMWARE_REQUEST_FLAG_CONTROLLER: u32 = 1u32; +pub const FIRMWARE_REQUEST_FLAG_FIRST_SEGMENT: u32 = 4u32; +pub const FIRMWARE_REQUEST_FLAG_LAST_SEGMENT: u32 = 2u32; +pub const FIRMWARE_REQUEST_FLAG_REPLACE_EXISTING_IMAGE: u32 = 1073741824u32; +pub const FIRMWARE_REQUEST_FLAG_SWITCH_TO_EXISTING_FIRMWARE: u32 = 2147483648u32; +pub const FIRMWARE_STATUS_COMMAND_ABORT: u32 = 133u32; +pub const FIRMWARE_STATUS_CONTROLLER_ERROR: u32 = 16u32; +pub const FIRMWARE_STATUS_DEVICE_ERROR: u32 = 64u32; +pub const FIRMWARE_STATUS_END_OF_MEDIA: u32 = 134u32; +pub const FIRMWARE_STATUS_ERROR: u32 = 1u32; +pub const FIRMWARE_STATUS_ID_NOT_FOUND: u32 = 131u32; +pub const FIRMWARE_STATUS_ILLEGAL_LENGTH: u32 = 135u32; +pub const FIRMWARE_STATUS_ILLEGAL_REQUEST: u32 = 2u32; +pub const FIRMWARE_STATUS_INPUT_BUFFER_TOO_BIG: u32 = 4u32; +pub const FIRMWARE_STATUS_INTERFACE_CRC_ERROR: u32 = 128u32; +pub const FIRMWARE_STATUS_INVALID_IMAGE: u32 = 7u32; +pub const FIRMWARE_STATUS_INVALID_PARAMETER: u32 = 3u32; +pub const FIRMWARE_STATUS_INVALID_SLOT: u32 = 6u32; +pub const FIRMWARE_STATUS_MEDIA_CHANGE: u32 = 130u32; +pub const FIRMWARE_STATUS_MEDIA_CHANGE_REQUEST: u32 = 132u32; +pub const FIRMWARE_STATUS_OUTPUT_BUFFER_TOO_SMALL: u32 = 5u32; +pub const FIRMWARE_STATUS_POWER_CYCLE_REQUIRED: u32 = 32u32; +pub const FIRMWARE_STATUS_SUCCESS: u32 = 0u32; +pub const FIRMWARE_STATUS_UNCORRECTABLE_DATA_ERROR: u32 = 129u32; +pub const HYBRID_FUNCTION_DEMOTE_BY_SIZE: u32 = 19u32; +pub const HYBRID_FUNCTION_DISABLE_CACHING_MEDIUM: u32 = 16u32; +pub const HYBRID_FUNCTION_ENABLE_CACHING_MEDIUM: u32 = 17u32; +pub const HYBRID_FUNCTION_GET_INFO: u32 = 1u32; +pub const HYBRID_FUNCTION_SET_DIRTY_THRESHOLD: u32 = 18u32; +pub const HYBRID_REQUEST_BLOCK_STRUCTURE_VERSION: u32 = 1u32; +pub const HYBRID_REQUEST_INFO_STRUCTURE_VERSION: u32 = 1u32; +pub const HYBRID_STATUS_ENABLE_REFCOUNT_HOLD: u32 = 16u32; +pub const HYBRID_STATUS_ILLEGAL_REQUEST: u32 = 1u32; +pub const HYBRID_STATUS_INVALID_PARAMETER: u32 = 2u32; +pub const HYBRID_STATUS_OUTPUT_BUFFER_TOO_SMALL: u32 = 3u32; +pub const HYBRID_STATUS_SUCCESS: u32 = 0u32; +pub const ID_FQDN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("2"); +pub const ID_IPV4_ADDR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("1"); +pub const ID_IPV6_ADDR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("5"); +pub const ID_USER_FQDN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("3"); +pub const IKE_AUTHENTICATION_PRESHARED_KEY_METHOD: IKE_AUTHENTICATION_METHOD = 1i32; +pub const IOCTL_ATA_MINIPORT: u32 = 315444u32; +pub const IOCTL_ATA_PASS_THROUGH: u32 = 315436u32; +pub const IOCTL_ATA_PASS_THROUGH_DIRECT: u32 = 315440u32; +pub const IOCTL_IDE_PASS_THROUGH: u32 = 315432u32; +pub const IOCTL_MINIPORT_PROCESS_SERVICE_IRP: u32 = 315448u32; +pub const IOCTL_MINIPORT_SIGNATURE_DSM_GENERAL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MPDSMGEN"); +pub const IOCTL_MINIPORT_SIGNATURE_DSM_NOTIFICATION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MPDSM "); +pub const IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ENDURINF"); +pub const IOCTL_MINIPORT_SIGNATURE_FIRMWARE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("FIRMWARE"); +pub const IOCTL_MINIPORT_SIGNATURE_HYBRDISK: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("HYBRDISK"); +pub const IOCTL_MINIPORT_SIGNATURE_QUERY_PHYSICAL_TOPOLOGY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("TOPOLOGY"); +pub const IOCTL_MINIPORT_SIGNATURE_QUERY_PROTOCOL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("PROTOCOL"); +pub const IOCTL_MINIPORT_SIGNATURE_QUERY_TEMPERATURE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("TEMPERAT"); +pub const IOCTL_MINIPORT_SIGNATURE_SCSIDISK: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SCSIDISK"); +pub const IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SETPROTO"); +pub const IOCTL_MINIPORT_SIGNATURE_SET_TEMPERATURE_THRESHOLD: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SETTEMPT"); +pub const IOCTL_MPIO_PASS_THROUGH_PATH: u32 = 315452u32; +pub const IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT: u32 = 315456u32; +pub const IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX: u32 = 315472u32; +pub const IOCTL_MPIO_PASS_THROUGH_PATH_EX: u32 = 315468u32; +pub const IOCTL_SCSI_BASE: u32 = 4u32; +pub const IOCTL_SCSI_FREE_DUMP_POINTERS: u32 = 266276u32; +pub const IOCTL_SCSI_GET_ADDRESS: u32 = 266264u32; +pub const IOCTL_SCSI_GET_CAPABILITIES: u32 = 266256u32; +pub const IOCTL_SCSI_GET_DUMP_POINTERS: u32 = 266272u32; +pub const IOCTL_SCSI_GET_INQUIRY_DATA: u32 = 266252u32; +pub const IOCTL_SCSI_MINIPORT: u32 = 315400u32; +pub const IOCTL_SCSI_PASS_THROUGH: u32 = 315396u32; +pub const IOCTL_SCSI_PASS_THROUGH_DIRECT: u32 = 315412u32; +pub const IOCTL_SCSI_PASS_THROUGH_DIRECT_EX: u32 = 315464u32; +pub const IOCTL_SCSI_PASS_THROUGH_EX: u32 = 315460u32; +pub const IOCTL_SCSI_RESCAN_BUS: u32 = 266268u32; +pub const ISCSI_CHAP_AUTH_TYPE: ISCSI_AUTH_TYPES = 1i32; +pub const ISCSI_DIGEST_TYPE_CRC32C: ISCSI_DIGEST_TYPES = 1i32; +pub const ISCSI_DIGEST_TYPE_NONE: ISCSI_DIGEST_TYPES = 0i32; +pub const ISCSI_LOGIN_FLAG_ALLOW_PORTAL_HOPPING: u32 = 8u32; +pub const ISCSI_LOGIN_FLAG_MULTIPATH_ENABLED: u32 = 2u32; +pub const ISCSI_LOGIN_FLAG_REQUIRE_IPSEC: u32 = 1u32; +pub const ISCSI_LOGIN_FLAG_RESERVED1: u32 = 4u32; +pub const ISCSI_LOGIN_FLAG_USE_RADIUS_RESPONSE: u32 = 16u32; +pub const ISCSI_LOGIN_FLAG_USE_RADIUS_VERIFICATION: u32 = 32u32; +pub const ISCSI_LOGIN_OPTIONS_AUTH_TYPE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000080"); +pub const ISCSI_LOGIN_OPTIONS_DATA_DIGEST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000002"); +pub const ISCSI_LOGIN_OPTIONS_DEFAULT_TIME_2_RETAIN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000010"); +pub const ISCSI_LOGIN_OPTIONS_DEFAULT_TIME_2_WAIT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000008"); +pub const ISCSI_LOGIN_OPTIONS_HEADER_DIGEST: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000001"); +pub const ISCSI_LOGIN_OPTIONS_MAXIMUM_CONNECTIONS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000004"); +pub const ISCSI_LOGIN_OPTIONS_PASSWORD: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000040"); +pub const ISCSI_LOGIN_OPTIONS_USERNAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000020"); +pub const ISCSI_LOGIN_OPTIONS_VERSION: u32 = 0u32; +pub const ISCSI_MUTUAL_CHAP_AUTH_TYPE: ISCSI_AUTH_TYPES = 2i32; +pub const ISCSI_NO_AUTH_TYPE: ISCSI_AUTH_TYPES = 0i32; +pub const ISCSI_SECURITY_FLAG_AGGRESSIVE_MODE_ENABLED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000008"); +pub const ISCSI_SECURITY_FLAG_IKE_IPSEC_ENABLED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000002"); +pub const ISCSI_SECURITY_FLAG_MAIN_MODE_ENABLED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000004"); +pub const ISCSI_SECURITY_FLAG_PFS_ENABLED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000010"); +pub const ISCSI_SECURITY_FLAG_TRANSPORT_MODE_PREFERRED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000020"); +pub const ISCSI_SECURITY_FLAG_TUNNEL_MODE_PREFERRED: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000040"); +pub const ISCSI_SECURITY_FLAG_VALID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("0x00000001"); +pub const ISCSI_TARGET_FLAG_HIDE_STATIC_TARGET: u32 = 2u32; +pub const ISCSI_TARGET_FLAG_MERGE_TARGET_INFORMATION: u32 = 4u32; +pub const ISCSI_TCP_PROTOCOL_TYPE: TARGETPROTOCOLTYPE = 0i32; +pub const InitiatorName: TARGET_INFORMATION_CLASS = 5i32; +pub const LoginOptions: TARGET_INFORMATION_CLASS = 7i32; +pub const MAX_ISCSI_ALIAS_LEN: u32 = 255u32; +pub const MAX_ISCSI_DISCOVERY_DOMAIN_LEN: u32 = 256u32; +pub const MAX_ISCSI_HBANAME_LEN: u32 = 256u32; +pub const MAX_ISCSI_NAME_LEN: u32 = 223u32; +pub const MAX_ISCSI_PORTAL_ADDRESS_LEN: u32 = 256u32; +pub const MAX_ISCSI_PORTAL_ALIAS_LEN: u32 = 256u32; +pub const MAX_ISCSI_PORTAL_NAME_LEN: u32 = 256u32; +pub const MAX_ISCSI_TEXT_ADDRESS_LEN: u32 = 256u32; +pub const MAX_RADIUS_ADDRESS_LEN: u32 = 41u32; +pub const MINIPORT_DSM_NOTIFICATION_VERSION: u32 = 1u32; +pub const MINIPORT_DSM_NOTIFICATION_VERSION_1: u32 = 1u32; +pub const MINIPORT_DSM_NOTIFY_FLAG_BEGIN: u32 = 1u32; +pub const MINIPORT_DSM_NOTIFY_FLAG_END: u32 = 2u32; +pub const MINIPORT_DSM_PROFILE_CRASHDUMP_FILE: u32 = 3u32; +pub const MINIPORT_DSM_PROFILE_HIBERNATION_FILE: u32 = 2u32; +pub const MINIPORT_DSM_PROFILE_PAGE_FILE: u32 = 1u32; +pub const MINIPORT_DSM_PROFILE_UNKNOWN: u32 = 0u32; +pub const MPIO_IOCTL_FLAG_INVOLVE_DSM: u32 = 4u32; +pub const MPIO_IOCTL_FLAG_USE_PATHID: u32 = 1u32; +pub const MPIO_IOCTL_FLAG_USE_SCSIADDRESS: u32 = 2u32; +pub const MpStorageDiagnosticLevelDefault: MP_STORAGE_DIAGNOSTIC_LEVEL = 0i32; +pub const MpStorageDiagnosticLevelMax: MP_STORAGE_DIAGNOSTIC_LEVEL = 1i32; +pub const MpStorageDiagnosticTargetTypeHbaFirmware: MP_STORAGE_DIAGNOSTIC_TARGET_TYPE = 3i32; +pub const MpStorageDiagnosticTargetTypeMax: MP_STORAGE_DIAGNOSTIC_TARGET_TYPE = 4i32; +pub const MpStorageDiagnosticTargetTypeMiniport: MP_STORAGE_DIAGNOSTIC_TARGET_TYPE = 2i32; +pub const MpStorageDiagnosticTargetTypeUndefined: MP_STORAGE_DIAGNOSTIC_TARGET_TYPE = 0i32; +pub const NRB_FUNCTION_ADD_LBAS_PINNED_SET: u32 = 16u32; +pub const NRB_FUNCTION_FLUSH_NVCACHE: u32 = 20u32; +pub const NRB_FUNCTION_NVCACHE_INFO: u32 = 236u32; +pub const NRB_FUNCTION_NVCACHE_POWER_MODE_RETURN: u32 = 1u32; +pub const NRB_FUNCTION_NVCACHE_POWER_MODE_SET: u32 = 0u32; +pub const NRB_FUNCTION_NVSEPARATED_FLUSH: u32 = 193u32; +pub const NRB_FUNCTION_NVSEPARATED_INFO: u32 = 192u32; +pub const NRB_FUNCTION_NVSEPARATED_WB_DISABLE: u32 = 194u32; +pub const NRB_FUNCTION_NVSEPARATED_WB_REVERT_DEFAULT: u32 = 195u32; +pub const NRB_FUNCTION_PASS_HINT_PAYLOAD: u32 = 224u32; +pub const NRB_FUNCTION_QUERY_ASCENDER_STATUS: u32 = 208u32; +pub const NRB_FUNCTION_QUERY_CACHE_MISS: u32 = 19u32; +pub const NRB_FUNCTION_QUERY_HYBRID_DISK_STATUS: u32 = 209u32; +pub const NRB_FUNCTION_QUERY_PINNED_SET: u32 = 18u32; +pub const NRB_FUNCTION_REMOVE_LBAS_PINNED_SET: u32 = 17u32; +pub const NRB_FUNCTION_SPINDLE_STATUS: u32 = 229u32; +pub const NRB_ILLEGAL_REQUEST: u32 = 1u32; +pub const NRB_INPUT_DATA_OVERRUN: u32 = 3u32; +pub const NRB_INPUT_DATA_UNDERRUN: u32 = 4u32; +pub const NRB_INVALID_PARAMETER: u32 = 2u32; +pub const NRB_OUTPUT_DATA_OVERRUN: u32 = 5u32; +pub const NRB_OUTPUT_DATA_UNDERRUN: u32 = 6u32; +pub const NRB_SUCCESS: u32 = 0u32; +pub const NVSEPWriteCacheTypeNone: NV_SEP_WRITE_CACHE_TYPE = 1i32; +pub const NVSEPWriteCacheTypeUnknown: NV_SEP_WRITE_CACHE_TYPE = 0i32; +pub const NVSEPWriteCacheTypeWriteBack: NV_SEP_WRITE_CACHE_TYPE = 2i32; +pub const NVSEPWriteCacheTypeWriteThrough: NV_SEP_WRITE_CACHE_TYPE = 3i32; +pub const NV_SEP_CACHE_PARAMETER_VERSION: u32 = 1u32; +pub const NV_SEP_CACHE_PARAMETER_VERSION_1: u32 = 1u32; +pub const NvCacheStatusDisabled: NVCACHE_STATUS = 2i32; +pub const NvCacheStatusDisabling: NVCACHE_STATUS = 1i32; +pub const NvCacheStatusEnabled: NVCACHE_STATUS = 3i32; +pub const NvCacheStatusUnknown: NVCACHE_STATUS = 0i32; +pub const NvCacheTypeNone: NVCACHE_TYPE = 1i32; +pub const NvCacheTypeUnknown: NVCACHE_TYPE = 0i32; +pub const NvCacheTypeWriteBack: NVCACHE_TYPE = 2i32; +pub const NvCacheTypeWriteThrough: NVCACHE_TYPE = 3i32; +pub const PersistentTargetMappings: TARGET_INFORMATION_CLASS = 4i32; +pub const PortalGroups: TARGET_INFORMATION_CLASS = 3i32; +pub const ProtocolType: TARGET_INFORMATION_CLASS = 0i32; +pub const SCSI_IOCTL_DATA_BIDIRECTIONAL: u32 = 3u32; +pub const SCSI_IOCTL_DATA_IN: u32 = 1u32; +pub const SCSI_IOCTL_DATA_OUT: u32 = 0u32; +pub const SCSI_IOCTL_DATA_UNSPECIFIED: u32 = 2u32; +pub const STORAGE_DIAGNOSTIC_STATUS_BUFFER_TOO_SMALL: u32 = 1u32; +pub const STORAGE_DIAGNOSTIC_STATUS_INVALID_PARAMETER: u32 = 3u32; +pub const STORAGE_DIAGNOSTIC_STATUS_INVALID_SIGNATURE: u32 = 4u32; +pub const STORAGE_DIAGNOSTIC_STATUS_INVALID_TARGET_TYPE: u32 = 5u32; +pub const STORAGE_DIAGNOSTIC_STATUS_MORE_DATA: u32 = 6u32; +pub const STORAGE_DIAGNOSTIC_STATUS_SUCCESS: u32 = 0u32; +pub const STORAGE_DIAGNOSTIC_STATUS_UNSUPPORTED_VERSION: u32 = 2u32; +pub const STORAGE_FIRMWARE_ACTIVATE_STRUCTURE_VERSION: u32 = 1u32; +pub const STORAGE_FIRMWARE_DOWNLOAD_STRUCTURE_VERSION: u32 = 1u32; +pub const STORAGE_FIRMWARE_DOWNLOAD_STRUCTURE_VERSION_V2: u32 = 2u32; +pub const STORAGE_FIRMWARE_INFO_INVALID_SLOT: u32 = 255u32; +pub const STORAGE_FIRMWARE_INFO_STRUCTURE_VERSION: u32 = 1u32; +pub const STORAGE_FIRMWARE_INFO_STRUCTURE_VERSION_V2: u32 = 2u32; +pub const STORAGE_FIRMWARE_SLOT_INFO_V2_REVISION_LENGTH: u32 = 16u32; +pub const ScsiRawInterfaceGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53f56309_b6bf_11d0_94f2_00a0c91efb8b); +pub const TargetAlias: TARGET_INFORMATION_CLASS = 1i32; +pub const TargetFlags: TARGET_INFORMATION_CLASS = 6i32; +pub const WmiScsiAddressGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53f5630f_b6bf_11d0_94f2_00a0c91efb8b); +pub type IKE_AUTHENTICATION_METHOD = i32; +pub type ISCSI_AUTH_TYPES = i32; +pub type ISCSI_DIGEST_TYPES = i32; +pub type MP_STORAGE_DIAGNOSTIC_LEVEL = i32; +pub type MP_STORAGE_DIAGNOSTIC_TARGET_TYPE = i32; +pub type NVCACHE_STATUS = i32; +pub type NVCACHE_TYPE = i32; +pub type NV_SEP_WRITE_CACHE_TYPE = i32; +pub type TARGETPROTOCOLTYPE = i32; +pub type TARGET_INFORMATION_CLASS = i32; +#[repr(C)] +pub struct ATA_PASS_THROUGH_DIRECT { + pub Length: u16, + pub AtaFlags: u16, + pub PathId: u8, + pub TargetId: u8, + pub Lun: u8, + pub ReservedAsUchar: u8, + pub DataTransferLength: u32, + pub TimeOutValue: u32, + pub ReservedAsUlong: u32, + pub DataBuffer: *mut ::core::ffi::c_void, + pub PreviousTaskFile: [u8; 8], + pub CurrentTaskFile: [u8; 8], +} +impl ::core::marker::Copy for ATA_PASS_THROUGH_DIRECT {} +impl ::core::clone::Clone for ATA_PASS_THROUGH_DIRECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct ATA_PASS_THROUGH_DIRECT32 { + pub Length: u16, + pub AtaFlags: u16, + pub PathId: u8, + pub TargetId: u8, + pub Lun: u8, + pub ReservedAsUchar: u8, + pub DataTransferLength: u32, + pub TimeOutValue: u32, + pub ReservedAsUlong: u32, + pub DataBuffer: *mut ::core::ffi::c_void, + pub PreviousTaskFile: [u8; 8], + pub CurrentTaskFile: [u8; 8], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for ATA_PASS_THROUGH_DIRECT32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for ATA_PASS_THROUGH_DIRECT32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATA_PASS_THROUGH_EX { + pub Length: u16, + pub AtaFlags: u16, + pub PathId: u8, + pub TargetId: u8, + pub Lun: u8, + pub ReservedAsUchar: u8, + pub DataTransferLength: u32, + pub TimeOutValue: u32, + pub ReservedAsUlong: u32, + pub DataBufferOffset: usize, + pub PreviousTaskFile: [u8; 8], + pub CurrentTaskFile: [u8; 8], +} +impl ::core::marker::Copy for ATA_PASS_THROUGH_EX {} +impl ::core::clone::Clone for ATA_PASS_THROUGH_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct ATA_PASS_THROUGH_EX32 { + pub Length: u16, + pub AtaFlags: u16, + pub PathId: u8, + pub TargetId: u8, + pub Lun: u8, + pub ReservedAsUchar: u8, + pub DataTransferLength: u32, + pub TimeOutValue: u32, + pub ReservedAsUlong: u32, + pub DataBufferOffset: u32, + pub PreviousTaskFile: [u8; 8], + pub CurrentTaskFile: [u8; 8], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for ATA_PASS_THROUGH_EX32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for ATA_PASS_THROUGH_EX32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSM_NOTIFICATION_REQUEST_BLOCK { + pub Size: u32, + pub Version: u32, + pub NotifyFlags: u32, + pub DataSetProfile: u32, + pub Reserved: [u32; 3], + pub DataSetRangesCount: u32, + pub DataSetRanges: [MP_DEVICE_DATA_SET_RANGE; 1], +} +impl ::core::marker::Copy for DSM_NOTIFICATION_REQUEST_BLOCK {} +impl ::core::clone::Clone for DSM_NOTIFICATION_REQUEST_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DUMP_DRIVER { + pub DumpDriverList: *mut ::core::ffi::c_void, + pub DriverName: [u16; 15], + pub BaseName: [u16; 15], +} +impl ::core::marker::Copy for DUMP_DRIVER {} +impl ::core::clone::Clone for DUMP_DRIVER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DUMP_DRIVER_EX { + pub DumpDriverList: *mut ::core::ffi::c_void, + pub DriverName: [u16; 15], + pub BaseName: [u16; 15], + pub DriverFullPath: NTSCSI_UNICODE_STRING, +} +impl ::core::marker::Copy for DUMP_DRIVER_EX {} +impl ::core::clone::Clone for DUMP_DRIVER_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DUMP_POINTERS { + pub AdapterObject: *mut _ADAPTER_OBJECT, + pub MappedRegisterBase: *mut ::core::ffi::c_void, + pub DumpData: *mut ::core::ffi::c_void, + pub CommonBufferVa: *mut ::core::ffi::c_void, + pub CommonBufferPa: i64, + pub CommonBufferSize: u32, + pub AllocateCommonBuffers: super::super::Foundation::BOOLEAN, + pub UseDiskDump: super::super::Foundation::BOOLEAN, + pub Spare1: [u8; 2], + pub DeviceObject: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DUMP_POINTERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DUMP_POINTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DUMP_POINTERS_EX { + pub Header: DUMP_POINTERS_VERSION, + pub DumpData: *mut ::core::ffi::c_void, + pub CommonBufferVa: *mut ::core::ffi::c_void, + pub CommonBufferSize: u32, + pub AllocateCommonBuffers: super::super::Foundation::BOOLEAN, + pub DeviceObject: *mut ::core::ffi::c_void, + pub DriverList: *mut ::core::ffi::c_void, + pub dwPortFlags: u32, + pub MaxDeviceDumpSectionSize: u32, + pub MaxDeviceDumpLevel: u32, + pub MaxTransferSize: u32, + pub AdapterObject: *mut ::core::ffi::c_void, + pub MappedRegisterBase: *mut ::core::ffi::c_void, + pub DeviceReady: *mut super::super::Foundation::BOOLEAN, + pub DumpDevicePowerOn: PDUMP_DEVICE_POWERON_ROUTINE, + pub DumpDevicePowerOnContext: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DUMP_POINTERS_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DUMP_POINTERS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DUMP_POINTERS_VERSION { + pub Version: u32, + pub Size: u32, +} +impl ::core::marker::Copy for DUMP_POINTERS_VERSION {} +impl ::core::clone::Clone for DUMP_POINTERS_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FIRMWARE_REQUEST_BLOCK { + pub Version: u32, + pub Size: u32, + pub Function: u32, + pub Flags: u32, + pub DataBufferOffset: u32, + pub DataBufferLength: u32, +} +impl ::core::marker::Copy for FIRMWARE_REQUEST_BLOCK {} +impl ::core::clone::Clone for FIRMWARE_REQUEST_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HYBRID_DEMOTE_BY_SIZE { + pub Version: u32, + pub Size: u32, + pub SourcePriority: u8, + pub TargetPriority: u8, + pub Reserved0: u16, + pub Reserved1: u32, + pub LbaCount: u64, +} +impl ::core::marker::Copy for HYBRID_DEMOTE_BY_SIZE {} +impl ::core::clone::Clone for HYBRID_DEMOTE_BY_SIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HYBRID_DIRTY_THRESHOLDS { + pub Version: u32, + pub Size: u32, + pub DirtyLowThreshold: u32, + pub DirtyHighThreshold: u32, +} +impl ::core::marker::Copy for HYBRID_DIRTY_THRESHOLDS {} +impl ::core::clone::Clone for HYBRID_DIRTY_THRESHOLDS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HYBRID_INFORMATION { + pub Version: u32, + pub Size: u32, + pub HybridSupported: super::super::Foundation::BOOLEAN, + pub Status: NVCACHE_STATUS, + pub CacheTypeEffective: NVCACHE_TYPE, + pub CacheTypeDefault: NVCACHE_TYPE, + pub FractionBase: u32, + pub CacheSize: u64, + pub Attributes: HYBRID_INFORMATION_0, + pub Priorities: HYBRID_INFORMATION_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HYBRID_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HYBRID_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HYBRID_INFORMATION_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HYBRID_INFORMATION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HYBRID_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HYBRID_INFORMATION_1 { + pub PriorityLevelCount: u8, + pub MaxPriorityBehavior: super::super::Foundation::BOOLEAN, + pub OptimalWriteGranularity: u8, + pub Reserved: u8, + pub DirtyThresholdLow: u32, + pub DirtyThresholdHigh: u32, + pub SupportedCommands: HYBRID_INFORMATION_1_0, + pub Priority: [NVCACHE_PRIORITY_LEVEL_DESCRIPTOR; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HYBRID_INFORMATION_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HYBRID_INFORMATION_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HYBRID_INFORMATION_1_0 { + pub _bitfield: u32, + pub MaxEvictCommands: u32, + pub MaxLbaRangeCountForEvict: u32, + pub MaxLbaRangeCountForChangeLba: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HYBRID_INFORMATION_1_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HYBRID_INFORMATION_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HYBRID_REQUEST_BLOCK { + pub Version: u32, + pub Size: u32, + pub Function: u32, + pub Flags: u32, + pub DataBufferOffset: u32, + pub DataBufferLength: u32, +} +impl ::core::marker::Copy for HYBRID_REQUEST_BLOCK {} +impl ::core::clone::Clone for HYBRID_REQUEST_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IDE_IO_CONTROL { + pub HeaderLength: u32, + pub Signature: [u8; 8], + pub Timeout: u32, + pub ControlCode: u32, + pub ReturnStatus: u32, + pub DataLength: u32, +} +impl ::core::marker::Copy for IDE_IO_CONTROL {} +impl ::core::clone::Clone for IDE_IO_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKE_AUTHENTICATION_INFORMATION { + pub AuthMethod: IKE_AUTHENTICATION_METHOD, + pub Anonymous: IKE_AUTHENTICATION_INFORMATION_0, +} +impl ::core::marker::Copy for IKE_AUTHENTICATION_INFORMATION {} +impl ::core::clone::Clone for IKE_AUTHENTICATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IKE_AUTHENTICATION_INFORMATION_0 { + pub PsKey: IKE_AUTHENTICATION_PRESHARED_KEY, +} +impl ::core::marker::Copy for IKE_AUTHENTICATION_INFORMATION_0 {} +impl ::core::clone::Clone for IKE_AUTHENTICATION_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IKE_AUTHENTICATION_PRESHARED_KEY { + pub SecurityFlags: u64, + pub IdType: u8, + pub IdLengthInBytes: u32, + pub Id: *mut u8, + pub KeyLengthInBytes: u32, + pub Key: *mut u8, +} +impl ::core::marker::Copy for IKE_AUTHENTICATION_PRESHARED_KEY {} +impl ::core::clone::Clone for IKE_AUTHENTICATION_PRESHARED_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IO_SCSI_CAPABILITIES { + pub Length: u32, + pub MaximumTransferLength: u32, + pub MaximumPhysicalPages: u32, + pub SupportedAsynchronousEvents: u32, + pub AlignmentMask: u32, + pub TaggedQueuing: super::super::Foundation::BOOLEAN, + pub AdapterScansDown: super::super::Foundation::BOOLEAN, + pub AdapterUsesPio: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IO_SCSI_CAPABILITIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IO_SCSI_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_CONNECTION_INFOA { + pub ConnectionId: ISCSI_UNIQUE_SESSION_ID, + pub InitiatorAddress: ::windows_sys::core::PSTR, + pub TargetAddress: ::windows_sys::core::PSTR, + pub InitiatorSocket: u16, + pub TargetSocket: u16, + pub CID: [u8; 2], +} +impl ::core::marker::Copy for ISCSI_CONNECTION_INFOA {} +impl ::core::clone::Clone for ISCSI_CONNECTION_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_CONNECTION_INFOW { + pub ConnectionId: ISCSI_UNIQUE_SESSION_ID, + pub InitiatorAddress: ::windows_sys::core::PWSTR, + pub TargetAddress: ::windows_sys::core::PWSTR, + pub InitiatorSocket: u16, + pub TargetSocket: u16, + pub CID: [u8; 2], +} +impl ::core::marker::Copy for ISCSI_CONNECTION_INFOW {} +impl ::core::clone::Clone for ISCSI_CONNECTION_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_CONNECTION_INFO_EX { + pub ConnectionId: ISCSI_UNIQUE_SESSION_ID, + pub State: u8, + pub Protocol: u8, + pub HeaderDigest: u8, + pub DataDigest: u8, + pub MaxRecvDataSegmentLength: u32, + pub AuthType: ISCSI_AUTH_TYPES, + pub EstimatedThroughput: u64, + pub MaxDatagramSize: u32, +} +impl ::core::marker::Copy for ISCSI_CONNECTION_INFO_EX {} +impl ::core::clone::Clone for ISCSI_CONNECTION_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Ioctl\"`"] +#[cfg(feature = "Win32_System_Ioctl")] +pub struct ISCSI_DEVICE_ON_SESSIONA { + pub InitiatorName: [u8; 256], + pub TargetName: [u8; 224], + pub ScsiAddress: SCSI_ADDRESS, + pub DeviceInterfaceType: ::windows_sys::core::GUID, + pub DeviceInterfaceName: [u8; 260], + pub LegacyName: [u8; 260], + pub StorageDeviceNumber: super::super::System::Ioctl::STORAGE_DEVICE_NUMBER, + pub DeviceInstance: u32, +} +#[cfg(feature = "Win32_System_Ioctl")] +impl ::core::marker::Copy for ISCSI_DEVICE_ON_SESSIONA {} +#[cfg(feature = "Win32_System_Ioctl")] +impl ::core::clone::Clone for ISCSI_DEVICE_ON_SESSIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Ioctl\"`"] +#[cfg(feature = "Win32_System_Ioctl")] +pub struct ISCSI_DEVICE_ON_SESSIONW { + pub InitiatorName: [u16; 256], + pub TargetName: [u16; 224], + pub ScsiAddress: SCSI_ADDRESS, + pub DeviceInterfaceType: ::windows_sys::core::GUID, + pub DeviceInterfaceName: [u16; 260], + pub LegacyName: [u16; 260], + pub StorageDeviceNumber: super::super::System::Ioctl::STORAGE_DEVICE_NUMBER, + pub DeviceInstance: u32, +} +#[cfg(feature = "Win32_System_Ioctl")] +impl ::core::marker::Copy for ISCSI_DEVICE_ON_SESSIONW {} +#[cfg(feature = "Win32_System_Ioctl")] +impl ::core::clone::Clone for ISCSI_DEVICE_ON_SESSIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_LOGIN_OPTIONS { + pub Version: u32, + pub InformationSpecified: u32, + pub LoginFlags: u32, + pub AuthType: ISCSI_AUTH_TYPES, + pub HeaderDigest: ISCSI_DIGEST_TYPES, + pub DataDigest: ISCSI_DIGEST_TYPES, + pub MaximumConnections: u32, + pub DefaultTime2Wait: u32, + pub DefaultTime2Retain: u32, + pub UsernameLength: u32, + pub PasswordLength: u32, + pub Username: *mut u8, + pub Password: *mut u8, +} +impl ::core::marker::Copy for ISCSI_LOGIN_OPTIONS {} +impl ::core::clone::Clone for ISCSI_LOGIN_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_SESSION_INFOA { + pub SessionId: ISCSI_UNIQUE_SESSION_ID, + pub InitiatorName: ::windows_sys::core::PSTR, + pub TargetNodeName: ::windows_sys::core::PSTR, + pub TargetName: ::windows_sys::core::PSTR, + pub ISID: [u8; 6], + pub TSID: [u8; 2], + pub ConnectionCount: u32, + pub Connections: *mut ISCSI_CONNECTION_INFOA, +} +impl ::core::marker::Copy for ISCSI_SESSION_INFOA {} +impl ::core::clone::Clone for ISCSI_SESSION_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_SESSION_INFOW { + pub SessionId: ISCSI_UNIQUE_SESSION_ID, + pub InitiatorName: ::windows_sys::core::PWSTR, + pub TargetNodeName: ::windows_sys::core::PWSTR, + pub TargetName: ::windows_sys::core::PWSTR, + pub ISID: [u8; 6], + pub TSID: [u8; 2], + pub ConnectionCount: u32, + pub Connections: *mut ISCSI_CONNECTION_INFOW, +} +impl ::core::marker::Copy for ISCSI_SESSION_INFOW {} +impl ::core::clone::Clone for ISCSI_SESSION_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ISCSI_SESSION_INFO_EX { + pub SessionId: ISCSI_UNIQUE_SESSION_ID, + pub InitialR2t: super::super::Foundation::BOOLEAN, + pub ImmediateData: super::super::Foundation::BOOLEAN, + pub Type: u8, + pub DataSequenceInOrder: super::super::Foundation::BOOLEAN, + pub DataPduInOrder: super::super::Foundation::BOOLEAN, + pub ErrorRecoveryLevel: u8, + pub MaxOutstandingR2t: u32, + pub FirstBurstLength: u32, + pub MaxBurstLength: u32, + pub MaximumConnections: u32, + pub ConnectionCount: u32, + pub Connections: *mut ISCSI_CONNECTION_INFO_EX, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ISCSI_SESSION_INFO_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ISCSI_SESSION_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_TARGET_MAPPINGA { + pub InitiatorName: [u8; 256], + pub TargetName: [u8; 224], + pub OSDeviceName: [u8; 260], + pub SessionId: ISCSI_UNIQUE_SESSION_ID, + pub OSBusNumber: u32, + pub OSTargetNumber: u32, + pub LUNCount: u32, + pub LUNList: *mut SCSI_LUN_LIST, +} +impl ::core::marker::Copy for ISCSI_TARGET_MAPPINGA {} +impl ::core::clone::Clone for ISCSI_TARGET_MAPPINGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_TARGET_MAPPINGW { + pub InitiatorName: [u16; 256], + pub TargetName: [u16; 224], + pub OSDeviceName: [u16; 260], + pub SessionId: ISCSI_UNIQUE_SESSION_ID, + pub OSBusNumber: u32, + pub OSTargetNumber: u32, + pub LUNCount: u32, + pub LUNList: *mut SCSI_LUN_LIST, +} +impl ::core::marker::Copy for ISCSI_TARGET_MAPPINGW {} +impl ::core::clone::Clone for ISCSI_TARGET_MAPPINGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_TARGET_PORTALA { + pub SymbolicName: [u8; 256], + pub Address: [u8; 256], + pub Socket: u16, +} +impl ::core::marker::Copy for ISCSI_TARGET_PORTALA {} +impl ::core::clone::Clone for ISCSI_TARGET_PORTALA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_TARGET_PORTALW { + pub SymbolicName: [u16; 256], + pub Address: [u16; 256], + pub Socket: u16, +} +impl ::core::marker::Copy for ISCSI_TARGET_PORTALW {} +impl ::core::clone::Clone for ISCSI_TARGET_PORTALW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_TARGET_PORTAL_GROUPA { + pub Count: u32, + pub Portals: [ISCSI_TARGET_PORTALA; 1], +} +impl ::core::marker::Copy for ISCSI_TARGET_PORTAL_GROUPA {} +impl ::core::clone::Clone for ISCSI_TARGET_PORTAL_GROUPA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_TARGET_PORTAL_GROUPW { + pub Count: u32, + pub Portals: [ISCSI_TARGET_PORTALW; 1], +} +impl ::core::marker::Copy for ISCSI_TARGET_PORTAL_GROUPW {} +impl ::core::clone::Clone for ISCSI_TARGET_PORTAL_GROUPW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_TARGET_PORTAL_INFOA { + pub InitiatorName: [u8; 256], + pub InitiatorPortNumber: u32, + pub SymbolicName: [u8; 256], + pub Address: [u8; 256], + pub Socket: u16, +} +impl ::core::marker::Copy for ISCSI_TARGET_PORTAL_INFOA {} +impl ::core::clone::Clone for ISCSI_TARGET_PORTAL_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_TARGET_PORTAL_INFOW { + pub InitiatorName: [u16; 256], + pub InitiatorPortNumber: u32, + pub SymbolicName: [u16; 256], + pub Address: [u16; 256], + pub Socket: u16, +} +impl ::core::marker::Copy for ISCSI_TARGET_PORTAL_INFOW {} +impl ::core::clone::Clone for ISCSI_TARGET_PORTAL_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_TARGET_PORTAL_INFO_EXA { + pub InitiatorName: [u8; 256], + pub InitiatorPortNumber: u32, + pub SymbolicName: [u8; 256], + pub Address: [u8; 256], + pub Socket: u16, + pub SecurityFlags: u64, + pub LoginOptions: ISCSI_LOGIN_OPTIONS, +} +impl ::core::marker::Copy for ISCSI_TARGET_PORTAL_INFO_EXA {} +impl ::core::clone::Clone for ISCSI_TARGET_PORTAL_INFO_EXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_TARGET_PORTAL_INFO_EXW { + pub InitiatorName: [u16; 256], + pub InitiatorPortNumber: u32, + pub SymbolicName: [u16; 256], + pub Address: [u16; 256], + pub Socket: u16, + pub SecurityFlags: u64, + pub LoginOptions: ISCSI_LOGIN_OPTIONS, +} +impl ::core::marker::Copy for ISCSI_TARGET_PORTAL_INFO_EXW {} +impl ::core::clone::Clone for ISCSI_TARGET_PORTAL_INFO_EXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_UNIQUE_SESSION_ID { + pub AdapterUnique: u64, + pub AdapterSpecific: u64, +} +impl ::core::marker::Copy for ISCSI_UNIQUE_SESSION_ID {} +impl ::core::clone::Clone for ISCSI_UNIQUE_SESSION_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ISCSI_VERSION_INFO { + pub MajorVersion: u32, + pub MinorVersion: u32, + pub BuildNumber: u32, +} +impl ::core::marker::Copy for ISCSI_VERSION_INFO {} +impl ::core::clone::Clone for ISCSI_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MPIO_PASS_THROUGH_PATH { + pub PassThrough: SCSI_PASS_THROUGH, + pub Version: u32, + pub Length: u16, + pub Flags: u8, + pub PortNumber: u8, + pub MpioPathId: u64, +} +impl ::core::marker::Copy for MPIO_PASS_THROUGH_PATH {} +impl ::core::clone::Clone for MPIO_PASS_THROUGH_PATH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct MPIO_PASS_THROUGH_PATH32 { + pub PassThrough: SCSI_PASS_THROUGH32, + pub Version: u32, + pub Length: u16, + pub Flags: u8, + pub PortNumber: u8, + pub MpioPathId: u64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for MPIO_PASS_THROUGH_PATH32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for MPIO_PASS_THROUGH_PATH32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct MPIO_PASS_THROUGH_PATH32_EX { + pub PassThroughOffset: u32, + pub Version: u32, + pub Length: u16, + pub Flags: u8, + pub PortNumber: u8, + pub MpioPathId: u64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for MPIO_PASS_THROUGH_PATH32_EX {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for MPIO_PASS_THROUGH_PATH32_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MPIO_PASS_THROUGH_PATH_DIRECT { + pub PassThrough: SCSI_PASS_THROUGH_DIRECT, + pub Version: u32, + pub Length: u16, + pub Flags: u8, + pub PortNumber: u8, + pub MpioPathId: u64, +} +impl ::core::marker::Copy for MPIO_PASS_THROUGH_PATH_DIRECT {} +impl ::core::clone::Clone for MPIO_PASS_THROUGH_PATH_DIRECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct MPIO_PASS_THROUGH_PATH_DIRECT32 { + pub PassThrough: SCSI_PASS_THROUGH_DIRECT32, + pub Version: u32, + pub Length: u16, + pub Flags: u8, + pub PortNumber: u8, + pub MpioPathId: u64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for MPIO_PASS_THROUGH_PATH_DIRECT32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for MPIO_PASS_THROUGH_PATH_DIRECT32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct MPIO_PASS_THROUGH_PATH_DIRECT32_EX { + pub PassThroughOffset: u32, + pub Version: u32, + pub Length: u16, + pub Flags: u8, + pub PortNumber: u8, + pub MpioPathId: u64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for MPIO_PASS_THROUGH_PATH_DIRECT32_EX {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for MPIO_PASS_THROUGH_PATH_DIRECT32_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MPIO_PASS_THROUGH_PATH_DIRECT_EX { + pub PassThroughOffset: u32, + pub Version: u32, + pub Length: u16, + pub Flags: u8, + pub PortNumber: u8, + pub MpioPathId: u64, +} +impl ::core::marker::Copy for MPIO_PASS_THROUGH_PATH_DIRECT_EX {} +impl ::core::clone::Clone for MPIO_PASS_THROUGH_PATH_DIRECT_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MPIO_PASS_THROUGH_PATH_EX { + pub PassThroughOffset: u32, + pub Version: u32, + pub Length: u16, + pub Flags: u8, + pub PortNumber: u8, + pub MpioPathId: u64, +} +impl ::core::marker::Copy for MPIO_PASS_THROUGH_PATH_EX {} +impl ::core::clone::Clone for MPIO_PASS_THROUGH_PATH_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MP_DEVICE_DATA_SET_RANGE { + pub StartingOffset: i64, + pub LengthInBytes: u64, +} +impl ::core::marker::Copy for MP_DEVICE_DATA_SET_RANGE {} +impl ::core::clone::Clone for MP_DEVICE_DATA_SET_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTSCSI_UNICODE_STRING { + pub Length: u16, + pub MaximumLength: u16, + pub Buffer: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for NTSCSI_UNICODE_STRING {} +impl ::core::clone::Clone for NTSCSI_UNICODE_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVCACHE_HINT_PAYLOAD { + pub Command: u8, + pub Feature7_0: u8, + pub Feature15_8: u8, + pub Count15_8: u8, + pub LBA7_0: u8, + pub LBA15_8: u8, + pub LBA23_16: u8, + pub LBA31_24: u8, + pub LBA39_32: u8, + pub LBA47_40: u8, + pub Auxiliary7_0: u8, + pub Auxiliary23_16: u8, + pub Reserved: [u8; 4], +} +impl ::core::marker::Copy for NVCACHE_HINT_PAYLOAD {} +impl ::core::clone::Clone for NVCACHE_HINT_PAYLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVCACHE_PRIORITY_LEVEL_DESCRIPTOR { + pub PriorityLevel: u8, + pub Reserved0: [u8; 3], + pub ConsumedNVMSizeFraction: u32, + pub ConsumedMappingResourcesFraction: u32, + pub ConsumedNVMSizeForDirtyDataFraction: u32, + pub ConsumedMappingResourcesForDirtyDataFraction: u32, + pub Reserved1: u32, +} +impl ::core::marker::Copy for NVCACHE_PRIORITY_LEVEL_DESCRIPTOR {} +impl ::core::clone::Clone for NVCACHE_PRIORITY_LEVEL_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVCACHE_REQUEST_BLOCK { + pub NRBSize: u32, + pub Function: u16, + pub NRBFlags: u32, + pub NRBStatus: u32, + pub Count: u32, + pub LBA: u64, + pub DataBufSize: u32, + pub NVCacheStatus: u32, + pub NVCacheSubStatus: u32, +} +impl ::core::marker::Copy for NVCACHE_REQUEST_BLOCK {} +impl ::core::clone::Clone for NVCACHE_REQUEST_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NV_FEATURE_PARAMETER { + pub NVPowerModeEnabled: u16, + pub NVParameterReserv1: u16, + pub NVCmdEnabled: u16, + pub NVParameterReserv2: u16, + pub NVPowerModeVer: u16, + pub NVCmdVer: u16, + pub NVSize: u32, + pub NVReadSpeed: u16, + pub NVWrtSpeed: u16, + pub DeviceSpinUpTime: u32, +} +impl ::core::marker::Copy for NV_FEATURE_PARAMETER {} +impl ::core::clone::Clone for NV_FEATURE_PARAMETER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NV_SEP_CACHE_PARAMETER { + pub Version: u32, + pub Size: u32, + pub Flags: NV_SEP_CACHE_PARAMETER_0, + pub WriteCacheType: u8, + pub WriteCacheTypeEffective: u8, + pub ParameterReserve1: [u8; 3], +} +impl ::core::marker::Copy for NV_SEP_CACHE_PARAMETER {} +impl ::core::clone::Clone for NV_SEP_CACHE_PARAMETER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NV_SEP_CACHE_PARAMETER_0 { + pub CacheFlags: NV_SEP_CACHE_PARAMETER_0_0, + pub CacheFlagsSet: u8, +} +impl ::core::marker::Copy for NV_SEP_CACHE_PARAMETER_0 {} +impl ::core::clone::Clone for NV_SEP_CACHE_PARAMETER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NV_SEP_CACHE_PARAMETER_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NV_SEP_CACHE_PARAMETER_0_0 {} +impl ::core::clone::Clone for NV_SEP_CACHE_PARAMETER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PERSISTENT_ISCSI_LOGIN_INFOA { + pub TargetName: [u8; 224], + pub IsInformationalSession: super::super::Foundation::BOOLEAN, + pub InitiatorInstance: [u8; 256], + pub InitiatorPortNumber: u32, + pub TargetPortal: ISCSI_TARGET_PORTALA, + pub SecurityFlags: u64, + pub Mappings: *mut ISCSI_TARGET_MAPPINGA, + pub LoginOptions: ISCSI_LOGIN_OPTIONS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PERSISTENT_ISCSI_LOGIN_INFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PERSISTENT_ISCSI_LOGIN_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PERSISTENT_ISCSI_LOGIN_INFOW { + pub TargetName: [u16; 224], + pub IsInformationalSession: super::super::Foundation::BOOLEAN, + pub InitiatorInstance: [u16; 256], + pub InitiatorPortNumber: u32, + pub TargetPortal: ISCSI_TARGET_PORTALW, + pub SecurityFlags: u64, + pub Mappings: *mut ISCSI_TARGET_MAPPINGW, + pub LoginOptions: ISCSI_LOGIN_OPTIONS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PERSISTENT_ISCSI_LOGIN_INFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PERSISTENT_ISCSI_LOGIN_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCSI_ADAPTER_BUS_INFO { + pub NumberOfBuses: u8, + pub BusData: [SCSI_BUS_DATA; 1], +} +impl ::core::marker::Copy for SCSI_ADAPTER_BUS_INFO {} +impl ::core::clone::Clone for SCSI_ADAPTER_BUS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCSI_ADDRESS { + pub Length: u32, + pub PortNumber: u8, + pub PathId: u8, + pub TargetId: u8, + pub Lun: u8, +} +impl ::core::marker::Copy for SCSI_ADDRESS {} +impl ::core::clone::Clone for SCSI_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCSI_BUS_DATA { + pub NumberOfLogicalUnits: u8, + pub InitiatorBusId: u8, + pub InquiryDataOffset: u32, +} +impl ::core::marker::Copy for SCSI_BUS_DATA {} +impl ::core::clone::Clone for SCSI_BUS_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SCSI_INQUIRY_DATA { + pub PathId: u8, + pub TargetId: u8, + pub Lun: u8, + pub DeviceClaimed: super::super::Foundation::BOOLEAN, + pub InquiryDataLength: u32, + pub NextInquiryDataOffset: u32, + pub InquiryData: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SCSI_INQUIRY_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SCSI_INQUIRY_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCSI_LUN_LIST { + pub OSLUN: u32, + pub TargetLUN: u64, +} +impl ::core::marker::Copy for SCSI_LUN_LIST {} +impl ::core::clone::Clone for SCSI_LUN_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCSI_PASS_THROUGH { + pub Length: u16, + pub ScsiStatus: u8, + pub PathId: u8, + pub TargetId: u8, + pub Lun: u8, + pub CdbLength: u8, + pub SenseInfoLength: u8, + pub DataIn: u8, + pub DataTransferLength: u32, + pub TimeOutValue: u32, + pub DataBufferOffset: usize, + pub SenseInfoOffset: u32, + pub Cdb: [u8; 16], +} +impl ::core::marker::Copy for SCSI_PASS_THROUGH {} +impl ::core::clone::Clone for SCSI_PASS_THROUGH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SCSI_PASS_THROUGH32 { + pub Length: u16, + pub ScsiStatus: u8, + pub PathId: u8, + pub TargetId: u8, + pub Lun: u8, + pub CdbLength: u8, + pub SenseInfoLength: u8, + pub DataIn: u8, + pub DataTransferLength: u32, + pub TimeOutValue: u32, + pub DataBufferOffset: u32, + pub SenseInfoOffset: u32, + pub Cdb: [u8; 16], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SCSI_PASS_THROUGH32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SCSI_PASS_THROUGH32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SCSI_PASS_THROUGH32_EX { + pub Version: u32, + pub Length: u32, + pub CdbLength: u32, + pub StorAddressLength: u32, + pub ScsiStatus: u8, + pub SenseInfoLength: u8, + pub DataDirection: u8, + pub Reserved: u8, + pub TimeOutValue: u32, + pub StorAddressOffset: u32, + pub SenseInfoOffset: u32, + pub DataOutTransferLength: u32, + pub DataInTransferLength: u32, + pub DataOutBufferOffset: u32, + pub DataInBufferOffset: u32, + pub Cdb: [u8; 1], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SCSI_PASS_THROUGH32_EX {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SCSI_PASS_THROUGH32_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCSI_PASS_THROUGH_DIRECT { + pub Length: u16, + pub ScsiStatus: u8, + pub PathId: u8, + pub TargetId: u8, + pub Lun: u8, + pub CdbLength: u8, + pub SenseInfoLength: u8, + pub DataIn: u8, + pub DataTransferLength: u32, + pub TimeOutValue: u32, + pub DataBuffer: *mut ::core::ffi::c_void, + pub SenseInfoOffset: u32, + pub Cdb: [u8; 16], +} +impl ::core::marker::Copy for SCSI_PASS_THROUGH_DIRECT {} +impl ::core::clone::Clone for SCSI_PASS_THROUGH_DIRECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SCSI_PASS_THROUGH_DIRECT32 { + pub Length: u16, + pub ScsiStatus: u8, + pub PathId: u8, + pub TargetId: u8, + pub Lun: u8, + pub CdbLength: u8, + pub SenseInfoLength: u8, + pub DataIn: u8, + pub DataTransferLength: u32, + pub TimeOutValue: u32, + pub DataBuffer: *mut ::core::ffi::c_void, + pub SenseInfoOffset: u32, + pub Cdb: [u8; 16], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SCSI_PASS_THROUGH_DIRECT32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SCSI_PASS_THROUGH_DIRECT32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SCSI_PASS_THROUGH_DIRECT32_EX { + pub Version: u32, + pub Length: u32, + pub CdbLength: u32, + pub StorAddressLength: u32, + pub ScsiStatus: u8, + pub SenseInfoLength: u8, + pub DataDirection: u8, + pub Reserved: u8, + pub TimeOutValue: u32, + pub StorAddressOffset: u32, + pub SenseInfoOffset: u32, + pub DataOutTransferLength: u32, + pub DataInTransferLength: u32, + pub DataOutBuffer: *mut ::core::ffi::c_void, + pub DataInBuffer: *mut ::core::ffi::c_void, + pub Cdb: [u8; 1], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SCSI_PASS_THROUGH_DIRECT32_EX {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SCSI_PASS_THROUGH_DIRECT32_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCSI_PASS_THROUGH_DIRECT_EX { + pub Version: u32, + pub Length: u32, + pub CdbLength: u32, + pub StorAddressLength: u32, + pub ScsiStatus: u8, + pub SenseInfoLength: u8, + pub DataDirection: u8, + pub Reserved: u8, + pub TimeOutValue: u32, + pub StorAddressOffset: u32, + pub SenseInfoOffset: u32, + pub DataOutTransferLength: u32, + pub DataInTransferLength: u32, + pub DataOutBuffer: *mut ::core::ffi::c_void, + pub DataInBuffer: *mut ::core::ffi::c_void, + pub Cdb: [u8; 1], +} +impl ::core::marker::Copy for SCSI_PASS_THROUGH_DIRECT_EX {} +impl ::core::clone::Clone for SCSI_PASS_THROUGH_DIRECT_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCSI_PASS_THROUGH_EX { + pub Version: u32, + pub Length: u32, + pub CdbLength: u32, + pub StorAddressLength: u32, + pub ScsiStatus: u8, + pub SenseInfoLength: u8, + pub DataDirection: u8, + pub Reserved: u8, + pub TimeOutValue: u32, + pub StorAddressOffset: u32, + pub SenseInfoOffset: u32, + pub DataOutTransferLength: u32, + pub DataInTransferLength: u32, + pub DataOutBufferOffset: usize, + pub DataInBufferOffset: usize, + pub Cdb: [u8; 1], +} +impl ::core::marker::Copy for SCSI_PASS_THROUGH_EX {} +impl ::core::clone::Clone for SCSI_PASS_THROUGH_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SRB_IO_CONTROL { + pub HeaderLength: u32, + pub Signature: [u8; 8], + pub Timeout: u32, + pub ControlCode: u32, + pub ReturnCode: u32, + pub Length: u32, +} +impl ::core::marker::Copy for SRB_IO_CONTROL {} +impl ::core::clone::Clone for SRB_IO_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DIAGNOSTIC_MP_REQUEST { + pub Version: u32, + pub Size: u32, + pub TargetType: MP_STORAGE_DIAGNOSTIC_TARGET_TYPE, + pub Level: MP_STORAGE_DIAGNOSTIC_LEVEL, + pub ProviderId: ::windows_sys::core::GUID, + pub BufferSize: u32, + pub Reserved: u32, + pub DataBuffer: [u8; 1], +} +impl ::core::marker::Copy for STORAGE_DIAGNOSTIC_MP_REQUEST {} +impl ::core::clone::Clone for STORAGE_DIAGNOSTIC_MP_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_ENDURANCE_DATA_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub EnduranceInfo: STORAGE_ENDURANCE_INFO, +} +impl ::core::marker::Copy for STORAGE_ENDURANCE_DATA_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_ENDURANCE_DATA_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_ENDURANCE_INFO { + pub ValidFields: u32, + pub GroupId: u32, + pub Flags: STORAGE_ENDURANCE_INFO_0, + pub LifePercentage: u32, + pub BytesReadCount: [u8; 16], + pub ByteWriteCount: [u8; 16], +} +impl ::core::marker::Copy for STORAGE_ENDURANCE_INFO {} +impl ::core::clone::Clone for STORAGE_ENDURANCE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_ENDURANCE_INFO_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for STORAGE_ENDURANCE_INFO_0 {} +impl ::core::clone::Clone for STORAGE_ENDURANCE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_FIRMWARE_ACTIVATE { + pub Version: u32, + pub Size: u32, + pub SlotToActivate: u8, + pub Reserved0: [u8; 3], +} +impl ::core::marker::Copy for STORAGE_FIRMWARE_ACTIVATE {} +impl ::core::clone::Clone for STORAGE_FIRMWARE_ACTIVATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_FIRMWARE_DOWNLOAD { + pub Version: u32, + pub Size: u32, + pub Offset: u64, + pub BufferSize: u64, + pub ImageBuffer: [u8; 1], +} +impl ::core::marker::Copy for STORAGE_FIRMWARE_DOWNLOAD {} +impl ::core::clone::Clone for STORAGE_FIRMWARE_DOWNLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_FIRMWARE_DOWNLOAD_V2 { + pub Version: u32, + pub Size: u32, + pub Offset: u64, + pub BufferSize: u64, + pub Slot: u8, + pub Reserved: [u8; 3], + pub ImageSize: u32, + pub ImageBuffer: [u8; 1], +} +impl ::core::marker::Copy for STORAGE_FIRMWARE_DOWNLOAD_V2 {} +impl ::core::clone::Clone for STORAGE_FIRMWARE_DOWNLOAD_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_FIRMWARE_INFO { + pub Version: u32, + pub Size: u32, + pub UpgradeSupport: super::super::Foundation::BOOLEAN, + pub SlotCount: u8, + pub ActiveSlot: u8, + pub PendingActivateSlot: u8, + pub Reserved: u32, + pub Slot: [STORAGE_FIRMWARE_SLOT_INFO; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_FIRMWARE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_FIRMWARE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_FIRMWARE_INFO_V2 { + pub Version: u32, + pub Size: u32, + pub UpgradeSupport: super::super::Foundation::BOOLEAN, + pub SlotCount: u8, + pub ActiveSlot: u8, + pub PendingActivateSlot: u8, + pub FirmwareShared: super::super::Foundation::BOOLEAN, + pub Reserved: [u8; 3], + pub ImagePayloadAlignment: u32, + pub ImagePayloadMaxSize: u32, + pub Slot: [STORAGE_FIRMWARE_SLOT_INFO_V2; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_FIRMWARE_INFO_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_FIRMWARE_INFO_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_FIRMWARE_SLOT_INFO { + pub SlotNumber: u8, + pub ReadOnly: super::super::Foundation::BOOLEAN, + pub Reserved: [u8; 6], + pub Revision: STORAGE_FIRMWARE_SLOT_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_FIRMWARE_SLOT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_FIRMWARE_SLOT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union STORAGE_FIRMWARE_SLOT_INFO_0 { + pub Info: [u8; 8], + pub AsUlonglong: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_FIRMWARE_SLOT_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_FIRMWARE_SLOT_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_FIRMWARE_SLOT_INFO_V2 { + pub SlotNumber: u8, + pub ReadOnly: super::super::Foundation::BOOLEAN, + pub Reserved: [u8; 6], + pub Revision: [u8; 16], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_FIRMWARE_SLOT_INFO_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_FIRMWARE_SLOT_INFO_V2 { + fn clone(&self) -> Self { + *self + } +} +pub type _ADAPTER_OBJECT = isize; +pub type PDUMP_DEVICE_POWERON_ROUTINE = ::core::option::Option i32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Jet/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Jet/mod.rs new file mode 100644 index 000000000..381caa586 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Jet/mod.rs @@ -0,0 +1,3343 @@ +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetAddColumnA(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szcolumnname : *const i8, pcolumndef : *const JET_COLUMNDEF, pvdefault : *const ::core::ffi::c_void, cbdefault : u32, pcolumnid : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetAddColumnW(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szcolumnname : *const u16, pcolumndef : *const JET_COLUMNDEF, pvdefault : *const ::core::ffi::c_void, cbdefault : u32, pcolumnid : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetAttachDatabase2A(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const i8, cpgdatabasesizemax : u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetAttachDatabase2W(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const u16, cpgdatabasesizemax : u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetAttachDatabaseA(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const i8, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetAttachDatabaseW(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const u16, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetBackupA(szbackuppath : *const i8, grbit : u32, pfnstatus : JET_PFNSTATUS) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetBackupInstanceA(instance : super::StructuredStorage:: JET_INSTANCE, szbackuppath : *const i8, grbit : u32, pfnstatus : JET_PFNSTATUS) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetBackupInstanceW(instance : super::StructuredStorage:: JET_INSTANCE, szbackuppath : *const u16, grbit : u32, pfnstatus : JET_PFNSTATUS) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetBackupW(szbackuppath : *const u16, grbit : u32, pfnstatus : JET_PFNSTATUS) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetBeginExternalBackup(grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetBeginExternalBackupInstance(instance : super::StructuredStorage:: JET_INSTANCE, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetBeginSessionA(instance : super::StructuredStorage:: JET_INSTANCE, psesid : *mut super::StructuredStorage:: JET_SESID, szusername : *const i8, szpassword : *const i8) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetBeginSessionW(instance : super::StructuredStorage:: JET_INSTANCE, psesid : *mut super::StructuredStorage:: JET_SESID, szusername : *const u16, szpassword : *const u16) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetBeginTransaction(sesid : super::StructuredStorage:: JET_SESID) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetBeginTransaction2(sesid : super::StructuredStorage:: JET_SESID, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetBeginTransaction3(sesid : super::StructuredStorage:: JET_SESID, trxid : i64, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCloseDatabase(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCloseFile(hffile : super::StructuredStorage:: JET_HANDLE) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCloseFileInstance(instance : super::StructuredStorage:: JET_INSTANCE, hffile : super::StructuredStorage:: JET_HANDLE) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCloseTable(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCommitTransaction(sesid : super::StructuredStorage:: JET_SESID, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCommitTransaction2(sesid : super::StructuredStorage:: JET_SESID, grbit : u32, cmsecdurablecommit : u32, pcommitid : *mut JET_COMMIT_ID) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCompactA(sesid : super::StructuredStorage:: JET_SESID, szdatabasesrc : *const i8, szdatabasedest : *const i8, pfnstatus : JET_PFNSTATUS, pconvert : *const JET_CONVERT_A, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCompactW(sesid : super::StructuredStorage:: JET_SESID, szdatabasesrc : *const u16, szdatabasedest : *const u16, pfnstatus : JET_PFNSTATUS, pconvert : *const JET_CONVERT_W, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetComputeStats(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetConfigureProcessForCrashDump(grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateDatabase2A(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const i8, cpgdatabasesizemax : u32, pdbid : *mut u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateDatabase2W(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const u16, cpgdatabasesizemax : u32, pdbid : *mut u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateDatabaseA(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const i8, szconnect : *const i8, pdbid : *mut u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateDatabaseW(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const u16, szconnect : *const u16, pdbid : *mut u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateIndex2A(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pindexcreate : *const JET_INDEXCREATE_A, cindexcreate : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateIndex2W(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pindexcreate : *const JET_INDEXCREATE_W, cindexcreate : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateIndex3A(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pindexcreate : *const JET_INDEXCREATE2_A, cindexcreate : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateIndex3W(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pindexcreate : *const JET_INDEXCREATE2_W, cindexcreate : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateIndex4A(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pindexcreate : *const JET_INDEXCREATE3_A, cindexcreate : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateIndex4W(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pindexcreate : *const JET_INDEXCREATE3_W, cindexcreate : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateIndexA(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const i8, grbit : u32, szkey : ::windows_sys::core::PCSTR, cbkey : u32, ldensity : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateIndexW(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const u16, grbit : u32, szkey : ::windows_sys::core::PCWSTR, cbkey : u32, ldensity : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateInstance2A(pinstance : *mut super::StructuredStorage:: JET_INSTANCE, szinstancename : *const i8, szdisplayname : *const i8, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateInstance2W(pinstance : *mut super::StructuredStorage:: JET_INSTANCE, szinstancename : *const u16, szdisplayname : *const u16, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateInstanceA(pinstance : *mut super::StructuredStorage:: JET_INSTANCE, szinstancename : *const i8) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateInstanceW(pinstance : *mut super::StructuredStorage:: JET_INSTANCE, szinstancename : *const u16) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateTableA(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const i8, lpages : u32, ldensity : u32, ptableid : *mut super::StructuredStorage:: JET_TABLEID) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateTableColumnIndex2A(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, ptablecreate : *mut JET_TABLECREATE2_A) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateTableColumnIndex2W(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, ptablecreate : *mut JET_TABLECREATE2_W) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateTableColumnIndex3A(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, ptablecreate : *mut JET_TABLECREATE3_A) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateTableColumnIndex3W(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, ptablecreate : *mut JET_TABLECREATE3_W) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateTableColumnIndex4A(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, ptablecreate : *mut JET_TABLECREATE4_A) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateTableColumnIndex4W(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, ptablecreate : *mut JET_TABLECREATE4_W) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateTableColumnIndexA(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, ptablecreate : *mut JET_TABLECREATE_A) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateTableColumnIndexW(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, ptablecreate : *mut JET_TABLECREATE_W) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetCreateTableW(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const u16, lpages : u32, ldensity : u32, ptableid : *mut super::StructuredStorage:: JET_TABLEID) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDefragment2A(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const i8, pcpasses : *mut u32, pcseconds : *mut u32, callback : JET_CALLBACK, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDefragment2W(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const u16, pcpasses : *mut u32, pcseconds : *mut u32, callback : JET_CALLBACK, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDefragment3A(sesid : super::StructuredStorage:: JET_SESID, szdatabasename : *const i8, sztablename : *const i8, pcpasses : *mut u32, pcseconds : *mut u32, callback : JET_CALLBACK, pvcontext : *const ::core::ffi::c_void, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDefragment3W(sesid : super::StructuredStorage:: JET_SESID, szdatabasename : *const u16, sztablename : *const u16, pcpasses : *mut u32, pcseconds : *mut u32, callback : JET_CALLBACK, pvcontext : *const ::core::ffi::c_void, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDefragmentA(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const i8, pcpasses : *mut u32, pcseconds : *mut u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDefragmentW(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const u16, pcpasses : *mut u32, pcseconds : *mut u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDelete(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDeleteColumn2A(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szcolumnname : *const i8, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDeleteColumn2W(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szcolumnname : *const u16, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDeleteColumnA(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szcolumnname : *const i8) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDeleteColumnW(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szcolumnname : *const u16) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDeleteIndexA(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const i8) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDeleteIndexW(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const u16) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDeleteTableA(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const i8) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDeleteTableW(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const u16) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDetachDatabase2A(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const i8, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDetachDatabase2W(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const u16, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDetachDatabaseA(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const i8) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDetachDatabaseW(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const u16) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDupCursor(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, ptableid : *mut super::StructuredStorage:: JET_TABLEID, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetDupSession(sesid : super::StructuredStorage:: JET_SESID, psesid : *mut super::StructuredStorage:: JET_SESID) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetEnableMultiInstanceA(psetsysparam : *const JET_SETSYSPARAM_A, csetsysparam : u32, pcsetsucceed : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetEnableMultiInstanceW(psetsysparam : *const JET_SETSYSPARAM_W, csetsysparam : u32, pcsetsucceed : *mut u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetEndExternalBackup() -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetEndExternalBackupInstance(instance : super::StructuredStorage:: JET_INSTANCE) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetEndExternalBackupInstance2(instance : super::StructuredStorage:: JET_INSTANCE, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetEndSession(sesid : super::StructuredStorage:: JET_SESID, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetEnumerateColumns(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, cenumcolumnid : u32, rgenumcolumnid : *const JET_ENUMCOLUMNID, pcenumcolumn : *mut u32, prgenumcolumn : *mut *mut JET_ENUMCOLUMN, pfnrealloc : JET_PFNREALLOC, pvrealloccontext : *const ::core::ffi::c_void, cbdatamost : u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetEscrowUpdate(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, columnid : u32, pv : *const ::core::ffi::c_void, cbmax : u32, pvold : *mut ::core::ffi::c_void, cboldmax : u32, pcboldactual : *mut u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetExternalRestore2A(szcheckpointfilepath : *const i8, szlogpath : *const i8, rgrstmap : *const JET_RSTMAP_A, crstfilemap : i32, szbackuplogpath : *const i8, ploginfo : *mut JET_LOGINFO_A, sztargetinstancename : *const i8, sztargetinstancelogpath : *const i8, sztargetinstancecheckpointpath : *const i8, pfn : JET_PFNSTATUS) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetExternalRestore2W(szcheckpointfilepath : *const u16, szlogpath : *const u16, rgrstmap : *const JET_RSTMAP_W, crstfilemap : i32, szbackuplogpath : *const u16, ploginfo : *mut JET_LOGINFO_W, sztargetinstancename : *const u16, sztargetinstancelogpath : *const u16, sztargetinstancecheckpointpath : *const u16, pfn : JET_PFNSTATUS) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetExternalRestoreA(szcheckpointfilepath : *const i8, szlogpath : *const i8, rgrstmap : *const JET_RSTMAP_A, crstfilemap : i32, szbackuplogpath : *const i8, genlow : i32, genhigh : i32, pfn : JET_PFNSTATUS) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetExternalRestoreW(szcheckpointfilepath : *const u16, szlogpath : *const u16, rgrstmap : *const JET_RSTMAP_W, crstfilemap : i32, szbackuplogpath : *const u16, genlow : i32, genhigh : i32, pfn : JET_PFNSTATUS) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetFreeBuffer(pbbuf : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetGetAttachInfoA(szzdatabases : *mut i8, cbmax : u32, pcbactual : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetAttachInfoInstanceA(instance : super::StructuredStorage:: JET_INSTANCE, szzdatabases : *mut i8, cbmax : u32, pcbactual : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetAttachInfoInstanceW(instance : super::StructuredStorage:: JET_INSTANCE, szzdatabases : *mut u16, cbmax : u32, pcbactual : *mut u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetGetAttachInfoW(wszzdatabases : *mut u16, cbmax : u32, pcbactual : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetBookmark(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pvbookmark : *mut ::core::ffi::c_void, cbmax : u32, pcbactual : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetColumnInfoA(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const i8, pcolumnnameorid : *const i8, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetColumnInfoW(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const u16, pwcolumnnameorid : *const u16, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetCurrentIndexA(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *mut i8, cbindexname : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetCurrentIndexW(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *mut u16, cbindexname : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetCursorInfo(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetGetDatabaseFileInfoA(szdatabasename : *const i8, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetGetDatabaseFileInfoW(szdatabasename : *const u16, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetDatabaseInfoA(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetDatabaseInfoW(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetGetErrorInfoW(pvcontext : *const ::core::ffi::c_void, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetIndexInfoA(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const i8, szindexname : *const i8, pvresult : *mut ::core::ffi::c_void, cbresult : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetIndexInfoW(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const u16, szindexname : *const u16, pvresult : *mut ::core::ffi::c_void, cbresult : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetInstanceInfoA(pcinstanceinfo : *mut u32, painstanceinfo : *mut *mut JET_INSTANCE_INFO_A) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetInstanceInfoW(pcinstanceinfo : *mut u32, painstanceinfo : *mut *mut JET_INSTANCE_INFO_W) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetInstanceMiscInfo(instance : super::StructuredStorage:: JET_INSTANCE, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetLS(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pls : *mut JET_LS, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetLock(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, grbit : u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetGetLogInfoA(szzlogs : *mut i8, cbmax : u32, pcbactual : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetLogInfoInstance2A(instance : super::StructuredStorage:: JET_INSTANCE, szzlogs : *mut i8, cbmax : u32, pcbactual : *mut u32, ploginfo : *mut JET_LOGINFO_A) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetLogInfoInstance2W(instance : super::StructuredStorage:: JET_INSTANCE, wszzlogs : *mut u16, cbmax : u32, pcbactual : *mut u32, ploginfo : *mut JET_LOGINFO_W) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetLogInfoInstanceA(instance : super::StructuredStorage:: JET_INSTANCE, szzlogs : *mut i8, cbmax : u32, pcbactual : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetLogInfoInstanceW(instance : super::StructuredStorage:: JET_INSTANCE, wszzlogs : *mut u16, cbmax : u32, pcbactual : *mut u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetGetLogInfoW(szzlogs : *mut u16, cbmax : u32, pcbactual : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetObjectInfoA(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, objtyp : u32, szcontainername : *const i8, szobjectname : *const i8, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetObjectInfoW(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, objtyp : u32, szcontainername : *const u16, szobjectname : *const u16, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetRecordPosition(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, precpos : *mut JET_RECPOS, cbrecpos : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetRecordSize(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, precsize : *mut JET_RECSIZE, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetRecordSize2(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, precsize : *mut JET_RECSIZE2, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetSecondaryIndexBookmark(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pvsecondarykey : *mut ::core::ffi::c_void, cbsecondarykeymax : u32, pcbsecondarykeyactual : *mut u32, pvprimarybookmark : *mut ::core::ffi::c_void, cbprimarybookmarkmax : u32, pcbprimarybookmarkactual : *mut u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetSessionParameter(sesid : super::StructuredStorage:: JET_SESID, sesparamid : u32, pvparam : *mut ::core::ffi::c_void, cbparammax : u32, pcbparamactual : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetSystemParameterA(instance : super::StructuredStorage:: JET_INSTANCE, sesid : super::StructuredStorage:: JET_SESID, paramid : u32, plparam : *mut super::StructuredStorage:: JET_API_PTR, szparam : *mut i8, cbmax : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetSystemParameterW(instance : super::StructuredStorage:: JET_INSTANCE, sesid : super::StructuredStorage:: JET_SESID, paramid : u32, plparam : *mut super::StructuredStorage:: JET_API_PTR, szparam : *mut u16, cbmax : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetTableColumnInfoA(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szcolumnname : *const i8, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetTableColumnInfoW(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szcolumnname : *const u16, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetTableIndexInfoA(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const i8, pvresult : *mut ::core::ffi::c_void, cbresult : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetTableIndexInfoW(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const u16, pvresult : *mut ::core::ffi::c_void, cbresult : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetTableInfoA(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetTableInfoW(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pvresult : *mut ::core::ffi::c_void, cbmax : u32, infolevel : u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetGetThreadStats(pvresult : *mut ::core::ffi::c_void, cbmax : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetTruncateLogInfoInstanceA(instance : super::StructuredStorage:: JET_INSTANCE, szzlogs : *mut i8, cbmax : u32, pcbactual : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetTruncateLogInfoInstanceW(instance : super::StructuredStorage:: JET_INSTANCE, wszzlogs : *mut u16, cbmax : u32, pcbactual : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGetVersion(sesid : super::StructuredStorage:: JET_SESID, pwversion : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGotoBookmark(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pvbookmark : *const ::core::ffi::c_void, cbbookmark : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGotoPosition(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, precpos : *const JET_RECPOS) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGotoSecondaryIndexBookmark(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pvsecondarykey : *const ::core::ffi::c_void, cbsecondarykey : u32, pvprimarybookmark : *const ::core::ffi::c_void, cbprimarybookmark : u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetGrowDatabase(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, cpg : u32, pcpgreal : *const u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetIdle(sesid : super::StructuredStorage:: JET_SESID, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetIndexRecordCount(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pcrec : *mut u32, crecmax : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetInit(pinstance : *mut super::StructuredStorage:: JET_INSTANCE) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetInit2(pinstance : *mut super::StructuredStorage:: JET_INSTANCE, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetInit3A(pinstance : *mut super::StructuredStorage:: JET_INSTANCE, prstinfo : *const JET_RSTINFO_A, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetInit3W(pinstance : *mut super::StructuredStorage:: JET_INSTANCE, prstinfo : *const JET_RSTINFO_W, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetIntersectIndexes(sesid : super::StructuredStorage:: JET_SESID, rgindexrange : *const JET_INDEXRANGE, cindexrange : u32, precordlist : *mut JET_RECORDLIST, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetMakeKey(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pvdata : *const ::core::ffi::c_void, cbdata : u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetMove(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, crow : i32, grbit : u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetOSSnapshotAbort(snapid : JET_OSSNAPID, grbit : u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetOSSnapshotEnd(snapid : JET_OSSNAPID, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOSSnapshotFreezeA(snapid : JET_OSSNAPID, pcinstanceinfo : *mut u32, painstanceinfo : *mut *mut JET_INSTANCE_INFO_A, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOSSnapshotFreezeW(snapid : JET_OSSNAPID, pcinstanceinfo : *mut u32, painstanceinfo : *mut *mut JET_INSTANCE_INFO_W, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOSSnapshotGetFreezeInfoA(snapid : JET_OSSNAPID, pcinstanceinfo : *mut u32, painstanceinfo : *mut *mut JET_INSTANCE_INFO_A, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOSSnapshotGetFreezeInfoW(snapid : JET_OSSNAPID, pcinstanceinfo : *mut u32, painstanceinfo : *mut *mut JET_INSTANCE_INFO_W, grbit : u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetOSSnapshotPrepare(psnapid : *mut JET_OSSNAPID, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOSSnapshotPrepareInstance(snapid : JET_OSSNAPID, instance : super::StructuredStorage:: JET_INSTANCE, grbit : u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetOSSnapshotThaw(snapid : JET_OSSNAPID, grbit : u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetOSSnapshotTruncateLog(snapid : JET_OSSNAPID, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOSSnapshotTruncateLogInstance(snapid : JET_OSSNAPID, instance : super::StructuredStorage:: JET_INSTANCE, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOpenDatabaseA(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const i8, szconnect : *const i8, pdbid : *mut u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOpenDatabaseW(sesid : super::StructuredStorage:: JET_SESID, szfilename : *const u16, szconnect : *const u16, pdbid : *mut u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOpenFileA(szfilename : *const i8, phffile : *mut super::StructuredStorage:: JET_HANDLE, pulfilesizelow : *mut u32, pulfilesizehigh : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOpenFileInstanceA(instance : super::StructuredStorage:: JET_INSTANCE, szfilename : *const i8, phffile : *mut super::StructuredStorage:: JET_HANDLE, pulfilesizelow : *mut u32, pulfilesizehigh : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOpenFileInstanceW(instance : super::StructuredStorage:: JET_INSTANCE, szfilename : *const u16, phffile : *mut super::StructuredStorage:: JET_HANDLE, pulfilesizelow : *mut u32, pulfilesizehigh : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOpenFileW(szfilename : *const u16, phffile : *mut super::StructuredStorage:: JET_HANDLE, pulfilesizelow : *mut u32, pulfilesizehigh : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOpenTableA(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const i8, pvparameters : *const ::core::ffi::c_void, cbparameters : u32, grbit : u32, ptableid : *mut super::StructuredStorage:: JET_TABLEID) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOpenTableW(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const u16, pvparameters : *const ::core::ffi::c_void, cbparameters : u32, grbit : u32, ptableid : *mut super::StructuredStorage:: JET_TABLEID) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOpenTempTable(sesid : super::StructuredStorage:: JET_SESID, prgcolumndef : *const JET_COLUMNDEF, ccolumn : u32, grbit : u32, ptableid : *mut super::StructuredStorage:: JET_TABLEID, prgcolumnid : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOpenTempTable2(sesid : super::StructuredStorage:: JET_SESID, prgcolumndef : *const JET_COLUMNDEF, ccolumn : u32, lcid : u32, grbit : u32, ptableid : *mut super::StructuredStorage:: JET_TABLEID, prgcolumnid : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOpenTempTable3(sesid : super::StructuredStorage:: JET_SESID, prgcolumndef : *const JET_COLUMNDEF, ccolumn : u32, pidxunicode : *const JET_UNICODEINDEX, grbit : u32, ptableid : *mut super::StructuredStorage:: JET_TABLEID, prgcolumnid : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOpenTemporaryTable(sesid : super::StructuredStorage:: JET_SESID, popentemporarytable : *const JET_OPENTEMPORARYTABLE) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetOpenTemporaryTable2(sesid : super::StructuredStorage:: JET_SESID, popentemporarytable : *const JET_OPENTEMPORARYTABLE2) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetPrepareUpdate(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, prep : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetPrereadIndexRanges(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, rgindexranges : *const JET_INDEX_RANGE, cindexranges : u32, pcrangespreread : *mut u32, rgcolumnidpreread : *const u32, ccolumnidpreread : u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetPrereadKeys(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, rgpvkeys : *const *const ::core::ffi::c_void, rgcbkeys : *const u32, ckeys : i32, pckeyspreread : *mut i32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetReadFile(hffile : super::StructuredStorage:: JET_HANDLE, pv : *mut ::core::ffi::c_void, cb : u32, pcbactual : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetReadFileInstance(instance : super::StructuredStorage:: JET_INSTANCE, hffile : super::StructuredStorage:: JET_HANDLE, pv : *mut ::core::ffi::c_void, cb : u32, pcbactual : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRegisterCallback(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, cbtyp : u32, pcallback : JET_CALLBACK, pvcontext : *const ::core::ffi::c_void, phcallbackid : *const super::StructuredStorage:: JET_HANDLE) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRenameColumnA(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szname : *const i8, sznamenew : *const i8, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRenameColumnW(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szname : *const u16, sznamenew : *const u16, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRenameTableA(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, szname : *const i8, sznamenew : *const i8) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRenameTableW(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, szname : *const u16, sznamenew : *const u16) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetResetSessionContext(sesid : super::StructuredStorage:: JET_SESID) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetResetTableSequential(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetResizeDatabase(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, cpgtarget : u32, pcpgactual : *mut u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRestore2A(sz : *const i8, szdest : *const i8, pfn : JET_PFNSTATUS) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRestore2W(sz : *const u16, szdest : *const u16, pfn : JET_PFNSTATUS) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRestoreA(szsource : *const i8, pfn : JET_PFNSTATUS) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRestoreInstanceA(instance : super::StructuredStorage:: JET_INSTANCE, sz : *const i8, szdest : *const i8, pfn : JET_PFNSTATUS) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRestoreInstanceW(instance : super::StructuredStorage:: JET_INSTANCE, sz : *const u16, szdest : *const u16, pfn : JET_PFNSTATUS) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRestoreW(szsource : *const u16, pfn : JET_PFNSTATUS) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRetrieveColumn(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, columnid : u32, pvdata : *mut ::core::ffi::c_void, cbdata : u32, pcbactual : *mut u32, grbit : u32, pretinfo : *mut JET_RETINFO) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRetrieveColumns(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pretrievecolumn : *mut JET_RETRIEVECOLUMN, cretrievecolumn : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRetrieveKey(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pvkey : *mut ::core::ffi::c_void, cbmax : u32, pcbactual : *mut u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetRollback(sesid : super::StructuredStorage:: JET_SESID, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSeek(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetColumn(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, columnid : u32, pvdata : *const ::core::ffi::c_void, cbdata : u32, grbit : u32, psetinfo : *const JET_SETINFO) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetColumnDefaultValueA(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const i8, szcolumnname : *const i8, pvdata : *const ::core::ffi::c_void, cbdata : u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetColumnDefaultValueW(sesid : super::StructuredStorage:: JET_SESID, dbid : u32, sztablename : *const u16, szcolumnname : *const u16, pvdata : *const ::core::ffi::c_void, cbdata : u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetColumns(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, psetcolumn : *const JET_SETCOLUMN, csetcolumn : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetCurrentIndex2A(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const i8, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetCurrentIndex2W(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const u16, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetCurrentIndex3A(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const i8, grbit : u32, itagsequence : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetCurrentIndex3W(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const u16, grbit : u32, itagsequence : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetCurrentIndex4A(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const i8, pindexid : *const JET_INDEXID, grbit : u32, itagsequence : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetCurrentIndex4W(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const u16, pindexid : *const JET_INDEXID, grbit : u32, itagsequence : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetCurrentIndexA(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const i8) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetCurrentIndexW(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, szindexname : *const u16) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetCursorFilter(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, rgcolumnfilters : *const JET_INDEX_COLUMN, ccolumnfilters : u32, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetDatabaseSizeA(sesid : super::StructuredStorage:: JET_SESID, szdatabasename : *const i8, cpg : u32, pcpgreal : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetDatabaseSizeW(sesid : super::StructuredStorage:: JET_SESID, szdatabasename : *const u16, cpg : u32, pcpgreal : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetIndexRange(sesid : super::StructuredStorage:: JET_SESID, tableidsrc : super::StructuredStorage:: JET_TABLEID, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetLS(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, ls : JET_LS, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetSessionContext(sesid : super::StructuredStorage:: JET_SESID, ulcontext : super::StructuredStorage:: JET_API_PTR) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetSessionParameter(sesid : super::StructuredStorage:: JET_SESID, sesparamid : u32, pvparam : *const ::core::ffi::c_void, cbparam : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetSystemParameterA(pinstance : *mut super::StructuredStorage:: JET_INSTANCE, sesid : super::StructuredStorage:: JET_SESID, paramid : u32, lparam : super::StructuredStorage:: JET_API_PTR, szparam : *const i8) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetSystemParameterW(pinstance : *mut super::StructuredStorage:: JET_INSTANCE, sesid : super::StructuredStorage:: JET_SESID, paramid : u32, lparam : super::StructuredStorage:: JET_API_PTR, szparam : *const u16) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetSetTableSequential(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, grbit : u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetStopBackup() -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetStopBackupInstance(instance : super::StructuredStorage:: JET_INSTANCE) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetStopService() -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetStopServiceInstance(instance : super::StructuredStorage:: JET_INSTANCE) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetStopServiceInstance2(instance : super::StructuredStorage:: JET_INSTANCE, grbit : u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetTerm(instance : super::StructuredStorage:: JET_INSTANCE) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetTerm2(instance : super::StructuredStorage:: JET_INSTANCE, grbit : u32) -> i32); +::windows_targets::link!("esent.dll" "system" fn JetTruncateLog() -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetTruncateLogInstance(instance : super::StructuredStorage:: JET_INSTANCE) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetUnregisterCallback(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, cbtyp : u32, hcallbackid : super::StructuredStorage:: JET_HANDLE) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetUpdate(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pvbookmark : *mut ::core::ffi::c_void, cbbookmark : u32, pcbactual : *mut u32) -> i32); +#[cfg(feature = "Win32_Storage_StructuredStorage")] +::windows_targets::link!("esent.dll" "system" #[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] fn JetUpdate2(sesid : super::StructuredStorage:: JET_SESID, tableid : super::StructuredStorage:: JET_TABLEID, pvbookmark : *mut ::core::ffi::c_void, cbbookmark : u32, pcbactual : *mut u32, grbit : u32) -> i32); +pub const JET_BASE_NAME_LENGTH: u32 = 3u32; +pub const JET_ColInfoGrbitMinimalInfo: u32 = 1073741824u32; +pub const JET_ColInfoGrbitNonDerivedColumnsOnly: u32 = 2147483648u32; +pub const JET_ColInfoGrbitSortByColumnid: u32 = 536870912u32; +pub const JET_DbInfoCollate: u32 = 5u32; +pub const JET_DbInfoConnect: u32 = 1u32; +pub const JET_DbInfoCountry: u32 = 2u32; +pub const JET_DbInfoCp: u32 = 4u32; +pub const JET_DbInfoDBInUse: u32 = 15u32; +pub const JET_DbInfoFileType: u32 = 19u32; +pub const JET_DbInfoFilename: u32 = 0u32; +pub const JET_DbInfoFilesize: u32 = 10u32; +pub const JET_DbInfoFilesizeOnDisk: u32 = 21u32; +pub const JET_DbInfoIsam: u32 = 9u32; +pub const JET_DbInfoLCID: u32 = 3u32; +pub const JET_DbInfoLangid: u32 = 3u32; +pub const JET_DbInfoMisc: u32 = 14u32; +pub const JET_DbInfoOptions: u32 = 6u32; +pub const JET_DbInfoPageSize: u32 = 17u32; +pub const JET_DbInfoSpaceAvailable: u32 = 12u32; +pub const JET_DbInfoSpaceOwned: u32 = 11u32; +pub const JET_DbInfoTransactions: u32 = 7u32; +pub const JET_DbInfoUpgrade: u32 = 13u32; +pub const JET_DbInfoVersion: u32 = 8u32; +pub const JET_EventLoggingDisable: u32 = 0u32; +pub const JET_EventLoggingLevelHigh: u32 = 75u32; +pub const JET_EventLoggingLevelLow: u32 = 25u32; +pub const JET_EventLoggingLevelMax: u32 = 100u32; +pub const JET_EventLoggingLevelMedium: u32 = 50u32; +pub const JET_EventLoggingLevelMin: u32 = 1u32; +pub const JET_ExceptionFailFast: u32 = 4u32; +pub const JET_ExceptionMsgBox: u32 = 1u32; +pub const JET_ExceptionNone: u32 = 2u32; +pub const JET_IOPriorityLow: u32 = 1u32; +pub const JET_IOPriorityNormal: u32 = 0u32; +pub const JET_IndexCheckingDeferToOpenTable: JET_INDEXCHECKING = 2i32; +pub const JET_IndexCheckingMax: JET_INDEXCHECKING = 3i32; +pub const JET_IndexCheckingOff: JET_INDEXCHECKING = 0i32; +pub const JET_IndexCheckingOn: JET_INDEXCHECKING = 1i32; +pub const JET_MAX_COMPUTERNAME_LENGTH: u32 = 15u32; +pub const JET_MoveFirst: u32 = 2147483648u32; +pub const JET_MoveLast: u32 = 2147483647u32; +pub const JET_MovePrevious: i32 = -1i32; +pub const JET_OnlineDefragAll: u32 = 65535u32; +pub const JET_OnlineDefragAllOBSOLETE: u32 = 1u32; +pub const JET_OnlineDefragDatabases: u32 = 2u32; +pub const JET_OnlineDefragDisable: u32 = 0u32; +pub const JET_OnlineDefragSpaceTrees: u32 = 4u32; +pub const JET_VERSION: u32 = 1280u32; +pub const JET_bitAbortSnapshot: u32 = 1u32; +pub const JET_bitAllDatabasesSnapshot: u32 = 1u32; +pub const JET_bitBackupAtomic: u32 = 4u32; +pub const JET_bitBackupEndAbort: u32 = 2u32; +pub const JET_bitBackupEndNormal: u32 = 1u32; +pub const JET_bitBackupIncremental: u32 = 1u32; +pub const JET_bitBackupSnapshot: u32 = 16u32; +pub const JET_bitBackupTruncateDone: u32 = 256u32; +pub const JET_bitBookmarkPermitVirtualCurrency: u32 = 1u32; +pub const JET_bitCheckUniqueness: u32 = 64u32; +pub const JET_bitColumnAutoincrement: u32 = 16u32; +pub const JET_bitColumnCompressed: u32 = 524288u32; +pub const JET_bitColumnDeleteOnZero: u32 = 131072u32; +pub const JET_bitColumnEscrowUpdate: u32 = 2048u32; +pub const JET_bitColumnFinalize: u32 = 16384u32; +pub const JET_bitColumnFixed: u32 = 1u32; +pub const JET_bitColumnMaybeNull: u32 = 8192u32; +pub const JET_bitColumnMultiValued: u32 = 1024u32; +pub const JET_bitColumnNotNULL: u32 = 4u32; +pub const JET_bitColumnTTDescending: u32 = 128u32; +pub const JET_bitColumnTTKey: u32 = 64u32; +pub const JET_bitColumnTagged: u32 = 2u32; +pub const JET_bitColumnUnversioned: u32 = 4096u32; +pub const JET_bitColumnUpdatable: u32 = 32u32; +pub const JET_bitColumnUserDefinedDefault: u32 = 32768u32; +pub const JET_bitColumnVersion: u32 = 8u32; +pub const JET_bitCommitLazyFlush: u32 = 1u32; +pub const JET_bitCompactRepair: u32 = 64u32; +pub const JET_bitCompactStats: u32 = 32u32; +pub const JET_bitConfigStoreReadControlDefault: u32 = 0u32; +pub const JET_bitConfigStoreReadControlDisableAll: u32 = 2u32; +pub const JET_bitConfigStoreReadControlInhibitRead: u32 = 1u32; +pub const JET_bitContinueAfterThaw: u32 = 4u32; +pub const JET_bitCopySnapshot: u32 = 2u32; +pub const JET_bitCreateHintAppendSequential: u32 = 2u32; +pub const JET_bitCreateHintHotpointSequential: u32 = 4u32; +pub const JET_bitDbDeleteCorruptIndexes: u32 = 16u32; +pub const JET_bitDbDeleteUnicodeIndexes: u32 = 1024u32; +pub const JET_bitDbEnableBackgroundMaintenance: u32 = 2048u32; +pub const JET_bitDbExclusive: u32 = 2u32; +pub const JET_bitDbOverwriteExisting: u32 = 512u32; +pub const JET_bitDbPurgeCacheOnAttach: u32 = 4096u32; +pub const JET_bitDbReadOnly: u32 = 1u32; +pub const JET_bitDbRecoveryOff: u32 = 8u32; +pub const JET_bitDbShadowingOff: u32 = 128u32; +pub const JET_bitDbUpgrade: u32 = 512u32; +pub const JET_bitDefragmentAvailSpaceTreesOnly: u32 = 64u32; +pub const JET_bitDefragmentBTree: u32 = 256u32; +pub const JET_bitDefragmentBatchStart: u32 = 1u32; +pub const JET_bitDefragmentBatchStop: u32 = 2u32; +pub const JET_bitDefragmentNoPartialMerges: u32 = 128u32; +pub const JET_bitDeleteColumnIgnoreTemplateColumns: u32 = 1u32; +pub const JET_bitDeleteHintTableSequential: u32 = 256u32; +pub const JET_bitDumpCacheIncludeCachedPages: u32 = 32u32; +pub const JET_bitDumpCacheIncludeCorruptedPages: u32 = 64u32; +pub const JET_bitDumpCacheIncludeDirtyPages: u32 = 16u32; +pub const JET_bitDumpCacheMaximum: u32 = 8u32; +pub const JET_bitDumpCacheMinimum: u32 = 4u32; +pub const JET_bitDumpCacheNoDecommit: u32 = 128u32; +pub const JET_bitDumpMaximum: u32 = 2u32; +pub const JET_bitDumpMinimum: u32 = 1u32; +pub const JET_bitDurableCommitCallbackLogUnavailable: u32 = 1u32; +pub const JET_bitESE98FileNames: u32 = 1u32; +pub const JET_bitEightDotThreeSoftCompat: u32 = 2u32; +pub const JET_bitEnumerateCompressOutput: u32 = 524288u32; +pub const JET_bitEnumerateCopy: u32 = 1u32; +pub const JET_bitEnumerateIgnoreDefault: u32 = 32u32; +pub const JET_bitEnumerateIgnoreUserDefinedDefault: u32 = 1048576u32; +pub const JET_bitEnumerateInRecordOnly: u32 = 2097152u32; +pub const JET_bitEnumeratePresenceOnly: u32 = 131072u32; +pub const JET_bitEnumerateTaggedOnly: u32 = 262144u32; +pub const JET_bitEscrowNoRollback: u32 = 1u32; +pub const JET_bitExplicitPrepare: u32 = 8u32; +pub const JET_bitForceDetach: u32 = 1u32; +pub const JET_bitForceNewLog: u32 = 16u32; +pub const JET_bitFullColumnEndLimit: u32 = 512u32; +pub const JET_bitFullColumnStartLimit: u32 = 256u32; +pub const JET_bitHungIOEvent: u32 = 1u32; +pub const JET_bitIdleCompact: u32 = 2u32; +pub const JET_bitIdleFlushBuffers: u32 = 1u32; +pub const JET_bitIdleStatus: u32 = 4u32; +pub const JET_bitIncrementalSnapshot: u32 = 1u32; +pub const JET_bitIndexColumnMustBeNonNull: u32 = 2u32; +pub const JET_bitIndexColumnMustBeNull: u32 = 1u32; +pub const JET_bitIndexCrossProduct: u32 = 16384u32; +pub const JET_bitIndexDisallowNull: u32 = 4u32; +pub const JET_bitIndexDisallowTruncation: u32 = 65536u32; +pub const JET_bitIndexDotNetGuid: u32 = 262144u32; +pub const JET_bitIndexEmpty: u32 = 256u32; +pub const JET_bitIndexIgnoreAnyNull: u32 = 32u32; +pub const JET_bitIndexIgnoreFirstNull: u32 = 64u32; +pub const JET_bitIndexIgnoreNull: u32 = 8u32; +pub const JET_bitIndexImmutableStructure: u32 = 524288u32; +pub const JET_bitIndexKeyMost: u32 = 32768u32; +pub const JET_bitIndexLazyFlush: u32 = 128u32; +pub const JET_bitIndexNestedTable: u32 = 131072u32; +pub const JET_bitIndexPrimary: u32 = 2u32; +pub const JET_bitIndexSortNullsHigh: u32 = 1024u32; +pub const JET_bitIndexTupleLimits: u32 = 8192u32; +pub const JET_bitIndexTuples: u32 = 4096u32; +pub const JET_bitIndexUnicode: u32 = 2048u32; +pub const JET_bitIndexUnique: u32 = 1u32; +pub const JET_bitIndexUnversioned: u32 = 512u32; +pub const JET_bitKeepDbAttachedAtEndOfRecovery: u32 = 4096u32; +pub const JET_bitKeyAscending: u32 = 0u32; +pub const JET_bitKeyDataZeroLength: u32 = 16u32; +pub const JET_bitKeyDescending: u32 = 1u32; +pub const JET_bitLSCursor: u32 = 2u32; +pub const JET_bitLSReset: u32 = 1u32; +pub const JET_bitLSTable: u32 = 4u32; +pub const JET_bitLogStreamMustExist: u32 = 64u32; +pub const JET_bitMoveFirst: u32 = 0u32; +pub const JET_bitMoveKeyNE: u32 = 1u32; +pub const JET_bitNewKey: u32 = 1u32; +pub const JET_bitNoMove: u32 = 2u32; +pub const JET_bitNormalizedKey: u32 = 8u32; +pub const JET_bitObjectSystem: u32 = 2147483648u32; +pub const JET_bitObjectTableDerived: u32 = 268435456u32; +pub const JET_bitObjectTableFixedDDL: u32 = 1073741824u32; +pub const JET_bitObjectTableNoFixedVarColumnsInDerivedTables: u32 = 67108864u32; +pub const JET_bitObjectTableTemplate: u32 = 536870912u32; +pub const JET_bitPartialColumnEndLimit: u32 = 2048u32; +pub const JET_bitPartialColumnStartLimit: u32 = 1024u32; +pub const JET_bitPrereadBackward: u32 = 2u32; +pub const JET_bitPrereadFirstPage: u32 = 4u32; +pub const JET_bitPrereadForward: u32 = 1u32; +pub const JET_bitPrereadNormalizedKey: u32 = 8u32; +pub const JET_bitRangeInclusive: u32 = 1u32; +pub const JET_bitRangeInstantDuration: u32 = 4u32; +pub const JET_bitRangeRemove: u32 = 8u32; +pub const JET_bitRangeUpperLimit: u32 = 2u32; +pub const JET_bitReadLock: u32 = 1u32; +pub const JET_bitRecordInIndex: u32 = 1u32; +pub const JET_bitRecordNotInIndex: u32 = 2u32; +pub const JET_bitRecordSizeInCopyBuffer: u32 = 1u32; +pub const JET_bitRecordSizeLocal: u32 = 4u32; +pub const JET_bitRecordSizeRunningTotal: u32 = 2u32; +pub const JET_bitRecoveryWithoutUndo: u32 = 8u32; +pub const JET_bitReplayIgnoreLostLogs: u32 = 128u32; +pub const JET_bitReplayIgnoreMissingDB: u32 = 4u32; +pub const JET_bitReplayMissingMapEntryDB: u32 = 32u32; +pub const JET_bitResizeDatabaseOnlyGrow: u32 = 1u32; +pub const JET_bitResizeDatabaseOnlyShrink: u32 = 2u32; +pub const JET_bitRetrieveCopy: u32 = 1u32; +pub const JET_bitRetrieveFromIndex: u32 = 2u32; +pub const JET_bitRetrieveFromPrimaryBookmark: u32 = 4u32; +pub const JET_bitRetrieveHintReserve1: u32 = 8u32; +pub const JET_bitRetrieveHintReserve2: u32 = 64u32; +pub const JET_bitRetrieveHintReserve3: u32 = 128u32; +pub const JET_bitRetrieveHintTableScanBackward: u32 = 32u32; +pub const JET_bitRetrieveHintTableScanForward: u32 = 16u32; +pub const JET_bitRetrieveIgnoreDefault: u32 = 32u32; +pub const JET_bitRetrieveNull: u32 = 16u32; +pub const JET_bitRetrieveTag: u32 = 8u32; +pub const JET_bitRetrieveTuple: u32 = 2048u32; +pub const JET_bitRollbackAll: u32 = 1u32; +pub const JET_bitSeekEQ: u32 = 1u32; +pub const JET_bitSeekGE: u32 = 8u32; +pub const JET_bitSeekGT: u32 = 16u32; +pub const JET_bitSeekLE: u32 = 4u32; +pub const JET_bitSeekLT: u32 = 2u32; +pub const JET_bitSetAppendLV: u32 = 1u32; +pub const JET_bitSetCompressed: u32 = 131072u32; +pub const JET_bitSetContiguousLV: u32 = 262144u32; +pub const JET_bitSetIndexRange: u32 = 32u32; +pub const JET_bitSetIntrinsicLV: u32 = 1024u32; +pub const JET_bitSetOverwriteLV: u32 = 4u32; +pub const JET_bitSetRevertToDefaultValue: u32 = 512u32; +pub const JET_bitSetSeparateLV: u32 = 64u32; +pub const JET_bitSetSizeLV: u32 = 8u32; +pub const JET_bitSetUncompressed: u32 = 65536u32; +pub const JET_bitSetUniqueMultiValues: u32 = 128u32; +pub const JET_bitSetUniqueNormalizedMultiValues: u32 = 256u32; +pub const JET_bitSetZeroLength: u32 = 32u32; +pub const JET_bitShrinkDatabaseOff: u32 = 0u32; +pub const JET_bitShrinkDatabaseOn: u32 = 1u32; +pub const JET_bitShrinkDatabaseRealtime: u32 = 2u32; +pub const JET_bitShrinkDatabaseTrim: u32 = 1u32; +pub const JET_bitSpaceHintsUtilizeParentSpace: u32 = 1u32; +pub const JET_bitStopServiceAll: u32 = 0u32; +pub const JET_bitStopServiceBackgroundUserTasks: u32 = 2u32; +pub const JET_bitStopServiceQuiesceCaches: u32 = 4u32; +pub const JET_bitStopServiceResume: u32 = 2147483648u32; +pub const JET_bitStrLimit: u32 = 2u32; +pub const JET_bitSubStrLimit: u32 = 4u32; +pub const JET_bitTTDotNetGuid: u32 = 256u32; +pub const JET_bitTTErrorOnDuplicateInsertion: u32 = 32u32; +pub const JET_bitTTForceMaterialization: u32 = 32u32; +pub const JET_bitTTForwardOnly: u32 = 64u32; +pub const JET_bitTTIndexed: u32 = 1u32; +pub const JET_bitTTIntrinsicLVsOnly: u32 = 128u32; +pub const JET_bitTTScrollable: u32 = 8u32; +pub const JET_bitTTSortNullsHigh: u32 = 16u32; +pub const JET_bitTTUnique: u32 = 2u32; +pub const JET_bitTTUpdatable: u32 = 4u32; +pub const JET_bitTableClass1: u32 = 65536u32; +pub const JET_bitTableClass10: u32 = 655360u32; +pub const JET_bitTableClass11: u32 = 720896u32; +pub const JET_bitTableClass12: u32 = 786432u32; +pub const JET_bitTableClass13: u32 = 851968u32; +pub const JET_bitTableClass14: u32 = 917504u32; +pub const JET_bitTableClass15: u32 = 983040u32; +pub const JET_bitTableClass2: u32 = 131072u32; +pub const JET_bitTableClass3: u32 = 196608u32; +pub const JET_bitTableClass4: u32 = 262144u32; +pub const JET_bitTableClass5: u32 = 327680u32; +pub const JET_bitTableClass6: u32 = 393216u32; +pub const JET_bitTableClass7: u32 = 458752u32; +pub const JET_bitTableClass8: u32 = 524288u32; +pub const JET_bitTableClass9: u32 = 589824u32; +pub const JET_bitTableClassMask: u32 = 2031616u32; +pub const JET_bitTableClassNone: u32 = 0u32; +pub const JET_bitTableCreateFixedDDL: u32 = 1u32; +pub const JET_bitTableCreateImmutableStructure: u32 = 8u32; +pub const JET_bitTableCreateNoFixedVarColumnsInDerivedTables: u32 = 4u32; +pub const JET_bitTableCreateTemplateTable: u32 = 2u32; +pub const JET_bitTableDenyRead: u32 = 2u32; +pub const JET_bitTableDenyWrite: u32 = 1u32; +pub const JET_bitTableInfoBookmark: u32 = 2u32; +pub const JET_bitTableInfoRollback: u32 = 4u32; +pub const JET_bitTableInfoUpdatable: u32 = 1u32; +pub const JET_bitTableNoCache: u32 = 32u32; +pub const JET_bitTableOpportuneRead: u32 = 128u32; +pub const JET_bitTablePermitDDL: u32 = 16u32; +pub const JET_bitTablePreread: u32 = 64u32; +pub const JET_bitTableReadOnly: u32 = 4u32; +pub const JET_bitTableSequential: u32 = 32768u32; +pub const JET_bitTableUpdatable: u32 = 8u32; +pub const JET_bitTermAbrupt: u32 = 2u32; +pub const JET_bitTermComplete: u32 = 1u32; +pub const JET_bitTermDirty: u32 = 8u32; +pub const JET_bitTermStopBackup: u32 = 4u32; +pub const JET_bitTransactionReadOnly: u32 = 1u32; +pub const JET_bitTruncateLogsAfterRecovery: u32 = 16u32; +pub const JET_bitUpdateCheckESE97Compatibility: u32 = 1u32; +pub const JET_bitWaitAllLevel0Commit: u32 = 8u32; +pub const JET_bitWaitLastLevel0Commit: u32 = 2u32; +pub const JET_bitWriteLock: u32 = 2u32; +pub const JET_bitZeroLength: u32 = 1u32; +pub const JET_cbBookmarkMost: u32 = 256u32; +pub const JET_cbColumnLVPageOverhead: u32 = 82u32; +pub const JET_cbColumnMost: u32 = 255u32; +pub const JET_cbFullNameMost: u32 = 255u32; +pub const JET_cbKeyMost: u32 = 255u32; +pub const JET_cbKeyMost2KBytePage: u32 = 500u32; +pub const JET_cbKeyMost4KBytePage: u32 = 1000u32; +pub const JET_cbKeyMost8KBytePage: u32 = 2000u32; +pub const JET_cbKeyMostMin: u32 = 255u32; +pub const JET_cbLVColumnMost: u32 = 2147483647u32; +pub const JET_cbLVDefaultValueMost: u32 = 255u32; +pub const JET_cbLimitKeyMost: u32 = 256u32; +pub const JET_cbNameMost: u32 = 64u32; +pub const JET_cbPrimaryKeyMost: u32 = 255u32; +pub const JET_cbSecondaryKeyMost: u32 = 255u32; +pub const JET_cbtypAfterDelete: u32 = 64u32; +pub const JET_cbtypAfterInsert: u32 = 4u32; +pub const JET_cbtypAfterReplace: u32 = 16u32; +pub const JET_cbtypBeforeDelete: u32 = 32u32; +pub const JET_cbtypBeforeInsert: u32 = 2u32; +pub const JET_cbtypBeforeReplace: u32 = 8u32; +pub const JET_cbtypFinalize: u32 = 1u32; +pub const JET_cbtypFreeCursorLS: u32 = 512u32; +pub const JET_cbtypFreeTableLS: u32 = 1024u32; +pub const JET_cbtypNull: u32 = 0u32; +pub const JET_cbtypOnlineDefragCompleted: u32 = 256u32; +pub const JET_cbtypUserDefinedDefaultValue: u32 = 128u32; +pub const JET_ccolFixedMost: u32 = 127u32; +pub const JET_ccolKeyMost: u32 = 16u32; +pub const JET_ccolMost: u32 = 65248u32; +pub const JET_ccolTaggedMost: u32 = 64993u32; +pub const JET_ccolVarMost: u32 = 128u32; +pub const JET_coltypBinary: u32 = 9u32; +pub const JET_coltypBit: u32 = 1u32; +pub const JET_coltypCurrency: u32 = 5u32; +pub const JET_coltypDateTime: u32 = 8u32; +pub const JET_coltypGUID: u32 = 16u32; +pub const JET_coltypIEEEDouble: u32 = 7u32; +pub const JET_coltypIEEESingle: u32 = 6u32; +pub const JET_coltypLong: u32 = 4u32; +pub const JET_coltypLongBinary: u32 = 11u32; +pub const JET_coltypLongLong: u32 = 15u32; +pub const JET_coltypLongText: u32 = 12u32; +pub const JET_coltypMax: u32 = 13u32; +pub const JET_coltypNil: u32 = 0u32; +pub const JET_coltypSLV: u32 = 13u32; +pub const JET_coltypShort: u32 = 3u32; +pub const JET_coltypText: u32 = 10u32; +pub const JET_coltypUnsignedByte: u32 = 2u32; +pub const JET_coltypUnsignedLong: u32 = 14u32; +pub const JET_coltypUnsignedLongLong: u32 = 18u32; +pub const JET_coltypUnsignedShort: u32 = 17u32; +pub const JET_configDefault: u32 = 1u32; +pub const JET_configDynamicMediumMemory: u32 = 32u32; +pub const JET_configHighConcurrencyScaling: u32 = 1024u32; +pub const JET_configLowDiskFootprint: u32 = 4u32; +pub const JET_configLowMemory: u32 = 16u32; +pub const JET_configLowPower: u32 = 64u32; +pub const JET_configMediumDiskFootprint: u32 = 8u32; +pub const JET_configRemoveQuotas: u32 = 2u32; +pub const JET_configRunSilent: u32 = 256u32; +pub const JET_configSSDProfileIO: u32 = 128u32; +pub const JET_configUnthrottledMemory: u32 = 512u32; +pub const JET_dbstateBeingConverted: u32 = 4u32; +pub const JET_dbstateCleanShutdown: u32 = 3u32; +pub const JET_dbstateDirtyShutdown: u32 = 2u32; +pub const JET_dbstateForceDetach: u32 = 5u32; +pub const JET_dbstateJustCreated: u32 = 1u32; +pub const JET_errAccessDenied: i32 = -1907i32; +pub const JET_errAfterInitialization: i32 = -1850i32; +pub const JET_errAlreadyInitialized: i32 = -1030i32; +pub const JET_errAlreadyPrepared: i32 = -1607i32; +pub const JET_errAttachedDatabaseMismatch: i32 = -1216i32; +pub const JET_errBackupAbortByServer: i32 = -801i32; +pub const JET_errBackupDirectoryNotEmpty: i32 = -504i32; +pub const JET_errBackupInProgress: i32 = -505i32; +pub const JET_errBackupNotAllowedYet: i32 = -523i32; +pub const JET_errBadBackupDatabaseSize: i32 = -561i32; +pub const JET_errBadBookmark: i32 = -328i32; +pub const JET_errBadCheckpointSignature: i32 = -532i32; +pub const JET_errBadColumnId: i32 = -1517i32; +pub const JET_errBadDbSignature: i32 = -531i32; +pub const JET_errBadEmptyPage: i32 = -351i32; +pub const JET_errBadItagSequence: i32 = -1518i32; +pub const JET_errBadLineCount: i32 = -354i32; +pub const JET_errBadLogSignature: i32 = -530i32; +pub const JET_errBadLogVersion: i32 = -514i32; +pub const JET_errBadPageLink: i32 = -327i32; +pub const JET_errBadParentPageLink: i32 = -338i32; +pub const JET_errBadPatchPage: i32 = -535i32; +pub const JET_errBadRestoreTargetInstance: i32 = -577i32; +pub const JET_errBufferTooSmall: i32 = -1038i32; +pub const JET_errCallbackFailed: i32 = -2101i32; +pub const JET_errCallbackNotResolved: i32 = -2102i32; +pub const JET_errCannotAddFixedVarColumnToDerivedTable: i32 = -1330i32; +pub const JET_errCannotBeTagged: i32 = -1521i32; +pub const JET_errCannotDeleteSystemTable: i32 = -1318i32; +pub const JET_errCannotDeleteTempTable: i32 = -1317i32; +pub const JET_errCannotDeleteTemplateTable: i32 = -1319i32; +pub const JET_errCannotDisableVersioning: i32 = -1208i32; +pub const JET_errCannotIndex: i32 = -1071i32; +pub const JET_errCannotIndexOnEncryptedColumn: i32 = -1440i32; +pub const JET_errCannotLogDuringRecoveryRedo: i32 = -512i32; +pub const JET_errCannotMaterializeForwardOnlySort: i32 = -1113i32; +pub const JET_errCannotNestDDL: i32 = -1325i32; +pub const JET_errCannotSeparateIntrinsicLV: i32 = -416i32; +pub const JET_errCatalogCorrupted: i32 = -1220i32; +pub const JET_errCheckpointCorrupt: i32 = -533i32; +pub const JET_errCheckpointDepthTooDeep: i32 = -614i32; +pub const JET_errCheckpointFileNotFound: i32 = -542i32; +pub const JET_errClientRequestToStopJetService: i32 = -1329i32; +pub const JET_errColumnCannotBeCompressed: i32 = -1538i32; +pub const JET_errColumnCannotBeEncrypted: i32 = -1439i32; +pub const JET_errColumnDoesNotFit: i32 = -1503i32; +pub const JET_errColumnDuplicate: i32 = -1508i32; +pub const JET_errColumnInRelationship: i32 = -1519i32; +pub const JET_errColumnInUse: i32 = -1046i32; +pub const JET_errColumnIndexed: i32 = -1505i32; +pub const JET_errColumnLong: i32 = -1501i32; +pub const JET_errColumnNoChunk: i32 = -1502i32; +pub const JET_errColumnNoEncryptionKey: i32 = -1540i32; +pub const JET_errColumnNotFound: i32 = -1507i32; +pub const JET_errColumnNotUpdatable: i32 = -1048i32; +pub const JET_errColumnRedundant: i32 = -1510i32; +pub const JET_errColumnTooBig: i32 = -1506i32; +pub const JET_errCommittedLogFileCorrupt: i32 = -586i32; +pub const JET_errCommittedLogFilesMissing: i32 = -582i32; +pub const JET_errConsistentTimeMismatch: i32 = -551i32; +pub const JET_errContainerNotEmpty: i32 = -1043i32; +pub const JET_errDDLNotInheritable: i32 = -1326i32; +pub const JET_errDataHasChanged: i32 = -1611i32; +pub const JET_errDatabase200Format: i32 = -1210i32; +pub const JET_errDatabase400Format: i32 = -1211i32; +pub const JET_errDatabase500Format: i32 = -1212i32; +pub const JET_errDatabaseAlreadyRunningMaintenance: i32 = -2004i32; +pub const JET_errDatabaseAlreadyUpgraded: i32 = -562i32; +pub const JET_errDatabaseAttachedForRecovery: i32 = -1231i32; +pub const JET_errDatabaseBufferDependenciesCorrupted: i32 = -255i32; +pub const JET_errDatabaseCorrupted: i32 = -1206i32; +pub const JET_errDatabaseCorruptedNoRepair: i32 = -1224i32; +pub const JET_errDatabaseDirtyShutdown: i32 = -550i32; +pub const JET_errDatabaseDuplicate: i32 = -1201i32; +pub const JET_errDatabaseFileReadOnly: i32 = -1008i32; +pub const JET_errDatabaseIdInUse: i32 = -1218i32; +pub const JET_errDatabaseInUse: i32 = -1202i32; +pub const JET_errDatabaseIncompleteUpgrade: i32 = -563i32; +pub const JET_errDatabaseInconsistent: i32 = -550i32; +pub const JET_errDatabaseInvalidName: i32 = -1204i32; +pub const JET_errDatabaseInvalidPages: i32 = -1205i32; +pub const JET_errDatabaseInvalidPath: i32 = -1217i32; +pub const JET_errDatabaseLeakInSpace: i32 = -348i32; +pub const JET_errDatabaseLocked: i32 = -1207i32; +pub const JET_errDatabaseLogSetMismatch: i32 = -539i32; +pub const JET_errDatabaseNotFound: i32 = -1203i32; +pub const JET_errDatabaseNotReady: i32 = -1230i32; +pub const JET_errDatabasePatchFileMismatch: i32 = -552i32; +pub const JET_errDatabaseSharingViolation: i32 = -1215i32; +pub const JET_errDatabaseSignInUse: i32 = -1222i32; +pub const JET_errDatabaseStreamingFileMismatch: i32 = -540i32; +pub const JET_errDatabaseUnavailable: i32 = -1091i32; +pub const JET_errDatabasesNotFromSameSnapshot: i32 = -580i32; +pub const JET_errDbTimeBeyondMaxRequired: i32 = -625i32; +pub const JET_errDbTimeCorrupted: i32 = -344i32; +pub const JET_errDbTimeTooNew: i32 = -567i32; +pub const JET_errDbTimeTooOld: i32 = -566i32; +pub const JET_errDecompressionFailed: i32 = -1620i32; +pub const JET_errDecryptionFailed: i32 = -1622i32; +pub const JET_errDefaultValueTooBig: i32 = -1524i32; +pub const JET_errDeleteBackupFileFail: i32 = -524i32; +pub const JET_errDensityInvalid: i32 = -1307i32; +pub const JET_errDerivedColumnCorruption: i32 = -1529i32; +pub const JET_errDirtyShutdown: i32 = -1116i32; +pub const JET_errDisabledFunctionality: i32 = -112i32; +pub const JET_errDiskFull: i32 = -1808i32; +pub const JET_errDiskIO: i32 = -1022i32; +pub const JET_errDiskReadVerificationFailure: i32 = -1021i32; +pub const JET_errEncryptionBadItag: i32 = -1623i32; +pub const JET_errEndingRestoreLogTooLow: i32 = -553i32; +pub const JET_errEngineFormatVersionNoLongerSupportedTooLow: i32 = -619i32; +pub const JET_errEngineFormatVersionNotYetImplementedTooHigh: i32 = -620i32; +pub const JET_errEngineFormatVersionParamTooLowForRequestedFeature: i32 = -621i32; +pub const JET_errEngineFormatVersionSpecifiedTooLowForDatabaseVersion: i32 = -623i32; +pub const JET_errEngineFormatVersionSpecifiedTooLowForLogVersion: i32 = -622i32; +pub const JET_errEntryPointNotFound: i32 = -1911i32; +pub const JET_errExclusiveTableLockRequired: i32 = -1322i32; +pub const JET_errExistingLogFileHasBadSignature: i32 = -610i32; +pub const JET_errExistingLogFileIsNotContiguous: i32 = -611i32; +pub const JET_errFeatureNotAvailable: i32 = -1001i32; +pub const JET_errFileAccessDenied: i32 = -1032i32; +pub const JET_errFileAlreadyExists: i32 = -1814i32; +pub const JET_errFileClose: i32 = -102i32; +pub const JET_errFileCompressed: i32 = -4005i32; +pub const JET_errFileIOAbort: i32 = -4002i32; +pub const JET_errFileIOBeyondEOF: i32 = -4001i32; +pub const JET_errFileIOFail: i32 = -4004i32; +pub const JET_errFileIORetry: i32 = -4003i32; +pub const JET_errFileIOSparse: i32 = -4000i32; +pub const JET_errFileInvalidType: i32 = -1812i32; +pub const JET_errFileNotFound: i32 = -1811i32; +pub const JET_errFileSystemCorruption: i32 = -1121i32; +pub const JET_errFilteredMoveNotSupported: i32 = -1124i32; +pub const JET_errFixedDDL: i32 = -1323i32; +pub const JET_errFixedInheritedDDL: i32 = -1324i32; +pub const JET_errFlushMapDatabaseMismatch: i32 = -1919i32; +pub const JET_errFlushMapUnrecoverable: i32 = -1920i32; +pub const JET_errFlushMapVersionUnsupported: i32 = -1918i32; +pub const JET_errForceDetachNotAllowed: i32 = -1219i32; +pub const JET_errGivenLogFileHasBadSignature: i32 = -555i32; +pub const JET_errGivenLogFileIsNotContiguous: i32 = -556i32; +pub const JET_errIllegalOperation: i32 = -1312i32; +pub const JET_errInTransaction: i32 = -1108i32; +pub const JET_errIndexBuildCorrupted: i32 = -1412i32; +pub const JET_errIndexCantBuild: i32 = -1401i32; +pub const JET_errIndexDuplicate: i32 = -1403i32; +pub const JET_errIndexHasPrimary: i32 = -1402i32; +pub const JET_errIndexInUse: i32 = -1051i32; +pub const JET_errIndexInvalidDef: i32 = -1406i32; +pub const JET_errIndexMustStay: i32 = -1405i32; +pub const JET_errIndexNotFound: i32 = -1404i32; +pub const JET_errIndexTuplesCannotRetrieveFromIndex: i32 = -1436i32; +pub const JET_errIndexTuplesInvalidLimits: i32 = -1435i32; +pub const JET_errIndexTuplesKeyTooSmall: i32 = -1437i32; +pub const JET_errIndexTuplesNonUniqueOnly: i32 = -1432i32; +pub const JET_errIndexTuplesOneColumnOnly: i32 = -1431i32; +pub const JET_errIndexTuplesSecondaryIndexOnly: i32 = -1430i32; +pub const JET_errIndexTuplesTextBinaryColumnsOnly: i32 = -1433i32; +pub const JET_errIndexTuplesTextColumnsOnly: i32 = -1433i32; +pub const JET_errIndexTuplesTooManyColumns: i32 = -1431i32; +pub const JET_errIndexTuplesVarSegMacNotAllowed: i32 = -1434i32; +pub const JET_errInitInProgress: i32 = -1031i32; +pub const JET_errInstanceNameInUse: i32 = -1086i32; +pub const JET_errInstanceUnavailable: i32 = -1090i32; +pub const JET_errInstanceUnavailableDueToFatalLogDiskFull: i32 = -1092i32; +pub const JET_errInternalError: i32 = -107i32; +pub const JET_errInvalidBackup: i32 = -526i32; +pub const JET_errInvalidBackupSequence: i32 = -521i32; +pub const JET_errInvalidBookmark: i32 = -1045i32; +pub const JET_errInvalidBufferSize: i32 = -1047i32; +pub const JET_errInvalidCodePage: i32 = -1063i32; +pub const JET_errInvalidColumnType: i32 = -1511i32; +pub const JET_errInvalidCountry: i32 = -1061i32; +pub const JET_errInvalidCreateDbVersion: i32 = -1225i32; +pub const JET_errInvalidCreateIndex: i32 = -1409i32; +pub const JET_errInvalidDatabase: i32 = -1028i32; +pub const JET_errInvalidDatabaseId: i32 = -1010i32; +pub const JET_errInvalidDatabaseVersion: i32 = -1209i32; +pub const JET_errInvalidDbparamId: i32 = -1095i32; +pub const JET_errInvalidFilename: i32 = -1044i32; +pub const JET_errInvalidGrbit: i32 = -900i32; +pub const JET_errInvalidIndexId: i32 = -1416i32; +pub const JET_errInvalidInstance: i32 = -1115i32; +pub const JET_errInvalidLCMapStringFlags: i32 = -1064i32; +pub const JET_errInvalidLVChunkSize: i32 = -1438i32; +pub const JET_errInvalidLanguageId: i32 = -1062i32; +pub const JET_errInvalidLogDirectory: i32 = -1025i32; +pub const JET_errInvalidLogSequence: i32 = -515i32; +pub const JET_errInvalidLoggedOperation: i32 = -500i32; +pub const JET_errInvalidName: i32 = -1002i32; +pub const JET_errInvalidObject: i32 = -1316i32; +pub const JET_errInvalidOnSort: i32 = -1702i32; +pub const JET_errInvalidOperation: i32 = -1906i32; +pub const JET_errInvalidParameter: i32 = -1003i32; +pub const JET_errInvalidPath: i32 = -1023i32; +pub const JET_errInvalidPlaceholderColumn: i32 = -1530i32; +pub const JET_errInvalidPreread: i32 = -424i32; +pub const JET_errInvalidSesid: i32 = -1104i32; +pub const JET_errInvalidSesparamId: i32 = -1093i32; +pub const JET_errInvalidSettings: i32 = -1328i32; +pub const JET_errInvalidSystemPath: i32 = -1024i32; +pub const JET_errInvalidTableId: i32 = -1310i32; +pub const JET_errKeyBoundary: i32 = -324i32; +pub const JET_errKeyDuplicate: i32 = -1605i32; +pub const JET_errKeyIsMade: i32 = -1516i32; +pub const JET_errKeyNotMade: i32 = -1608i32; +pub const JET_errKeyTooBig: i32 = -408i32; +pub const JET_errKeyTruncated: i32 = -346i32; +pub const JET_errLSAlreadySet: i32 = -3001i32; +pub const JET_errLSCallbackNotSpecified: i32 = -3000i32; +pub const JET_errLSNotSet: i32 = -3002i32; +pub const JET_errLVCorrupted: i32 = -1526i32; +pub const JET_errLanguageNotSupported: i32 = -1619i32; +pub const JET_errLinkNotSupported: i32 = -1052i32; +pub const JET_errLogBufferTooSmall: i32 = -517i32; +pub const JET_errLogCorruptDuringHardRecovery: i32 = -574i32; +pub const JET_errLogCorruptDuringHardRestore: i32 = -573i32; +pub const JET_errLogCorrupted: i32 = -1852i32; +pub const JET_errLogDisabledDueToRecoveryFailure: i32 = -511i32; +pub const JET_errLogDiskFull: i32 = -529i32; +pub const JET_errLogFileCorrupt: i32 = -501i32; +pub const JET_errLogFileNotCopied: i32 = -616i32; +pub const JET_errLogFilePathInUse: i32 = -1084i32; +pub const JET_errLogFileSizeMismatch: i32 = -541i32; +pub const JET_errLogFileSizeMismatchDatabasesConsistent: i32 = -545i32; +pub const JET_errLogGenerationMismatch: i32 = -513i32; +pub const JET_errLogReadVerifyFailure: i32 = -612i32; +pub const JET_errLogSectorSizeMismatch: i32 = -546i32; +pub const JET_errLogSectorSizeMismatchDatabasesConsistent: i32 = -547i32; +pub const JET_errLogSequenceChecksumMismatch: i32 = -590i32; +pub const JET_errLogSequenceEnd: i32 = -519i32; +pub const JET_errLogSequenceEndDatabasesConsistent: i32 = -548i32; +pub const JET_errLogTornWriteDuringHardRecovery: i32 = -571i32; +pub const JET_errLogTornWriteDuringHardRestore: i32 = -570i32; +pub const JET_errLogWriteFail: i32 = -510i32; +pub const JET_errLoggingDisabled: i32 = -516i32; +pub const JET_errMakeBackupDirectoryFail: i32 = -525i32; +pub const JET_errMissingCurrentLogFiles: i32 = -565i32; +pub const JET_errMissingFileToBackup: i32 = -569i32; +pub const JET_errMissingFullBackup: i32 = -560i32; +pub const JET_errMissingLogFile: i32 = -528i32; +pub const JET_errMissingPatchPage: i32 = -534i32; +pub const JET_errMissingPreviousLogFile: i32 = -509i32; +pub const JET_errMissingRestoreLogFiles: i32 = -557i32; +pub const JET_errMultiValuedColumnMustBeTagged: i32 = -1509i32; +pub const JET_errMultiValuedDuplicate: i32 = -1525i32; +pub const JET_errMultiValuedDuplicateAfterTruncation: i32 = -1528i32; +pub const JET_errMultiValuedIndexViolation: i32 = -1411i32; +pub const JET_errMustBeSeparateLongValue: i32 = -423i32; +pub const JET_errMustDisableLoggingForDbUpgrade: i32 = -575i32; +pub const JET_errMustRollback: i32 = -1057i32; +pub const JET_errNTSystemCallFailed: i32 = -334i32; +pub const JET_errNoBackup: i32 = -520i32; +pub const JET_errNoBackupDirectory: i32 = -503i32; +pub const JET_errNoCurrentIndex: i32 = -1515i32; +pub const JET_errNoCurrentRecord: i32 = -1603i32; +pub const JET_errNodeCorrupted: i32 = -358i32; +pub const JET_errNotInTransaction: i32 = -1054i32; +pub const JET_errNotInitialized: i32 = -1029i32; +pub const JET_errNullInvalid: i32 = -1504i32; +pub const JET_errNullKeyDisallowed: i32 = -1053i32; +pub const JET_errOSSnapshotInvalidSequence: i32 = -2401i32; +pub const JET_errOSSnapshotInvalidSnapId: i32 = -2404i32; +pub const JET_errOSSnapshotNotAllowed: i32 = -2403i32; +pub const JET_errOSSnapshotTimeOut: i32 = -2402i32; +pub const JET_errObjectDuplicate: i32 = -1314i32; +pub const JET_errObjectNotFound: i32 = -1305i32; +pub const JET_errOneDatabasePerSession: i32 = -1916i32; +pub const JET_errOutOfAutoincrementValues: i32 = -1076i32; +pub const JET_errOutOfBuffers: i32 = -1014i32; +pub const JET_errOutOfCursors: i32 = -1013i32; +pub const JET_errOutOfDatabaseSpace: i32 = -1012i32; +pub const JET_errOutOfDbtimeValues: i32 = -1077i32; +pub const JET_errOutOfFileHandles: i32 = -1020i32; +pub const JET_errOutOfLongValueIDs: i32 = -1075i32; +pub const JET_errOutOfMemory: i32 = -1011i32; +pub const JET_errOutOfObjectIDs: i32 = -1074i32; +pub const JET_errOutOfSequentialIndexValues: i32 = -1078i32; +pub const JET_errOutOfSessions: i32 = -1101i32; +pub const JET_errOutOfThreads: i32 = -103i32; +pub const JET_errPageBoundary: i32 = -323i32; +pub const JET_errPageInitializedMismatch: i32 = -596i32; +pub const JET_errPageNotInitialized: i32 = -1019i32; +pub const JET_errPageSizeMismatch: i32 = -1213i32; +pub const JET_errPageTagCorrupted: i32 = -357i32; +pub const JET_errPartiallyAttachedDB: i32 = -1221i32; +pub const JET_errPatchFileMissing: i32 = -538i32; +pub const JET_errPermissionDenied: i32 = -1809i32; +pub const JET_errPreviousVersion: i32 = -322i32; +pub const JET_errPrimaryIndexCorrupted: i32 = -1413i32; +pub const JET_errReadLostFlushVerifyFailure: i32 = -1119i32; +pub const JET_errReadPgnoVerifyFailure: i32 = -1118i32; +pub const JET_errReadVerifyFailure: i32 = -1018i32; +pub const JET_errRecordDeleted: i32 = -1017i32; +pub const JET_errRecordFormatConversionFailed: i32 = -1915i32; +pub const JET_errRecordNoCopy: i32 = -1602i32; +pub const JET_errRecordNotDeleted: i32 = -1072i32; +pub const JET_errRecordNotFound: i32 = -1601i32; +pub const JET_errRecordPrimaryChanged: i32 = -1604i32; +pub const JET_errRecordTooBig: i32 = -1026i32; +pub const JET_errRecordTooBigForBackwardCompatibility: i32 = -1112i32; +pub const JET_errRecoveredWithErrors: i32 = -527i32; +pub const JET_errRecoveredWithoutUndo: i32 = -579i32; +pub const JET_errRecoveredWithoutUndoDatabasesConsistent: i32 = -584i32; +pub const JET_errRecoveryVerifyFailure: i32 = -1123i32; +pub const JET_errRedoAbruptEnded: i32 = -536i32; +pub const JET_errRequiredLogFilesMissing: i32 = -543i32; +pub const JET_errRestoreInProgress: i32 = -506i32; +pub const JET_errRestoreOfNonBackupDatabase: i32 = -615i32; +pub const JET_errRfsFailure: i32 = -100i32; +pub const JET_errRfsNotArmed: i32 = -101i32; +pub const JET_errRollbackError: i32 = -1917i32; +pub const JET_errRollbackRequired: i32 = -1109i32; +pub const JET_errRunningInMultiInstanceMode: i32 = -1081i32; +pub const JET_errRunningInOneInstanceMode: i32 = -1080i32; +pub const JET_errSPAvailExtCacheOutOfMemory: i32 = -342i32; +pub const JET_errSPAvailExtCacheOutOfSync: i32 = -340i32; +pub const JET_errSPAvailExtCorrupted: i32 = -341i32; +pub const JET_errSPOwnExtCorrupted: i32 = -343i32; +pub const JET_errSecondaryIndexCorrupted: i32 = -1414i32; +pub const JET_errSectorSizeNotSupported: i32 = -583i32; +pub const JET_errSeparatedLongValue: i32 = -421i32; +pub const JET_errSesidTableIdMismatch: i32 = -1114i32; +pub const JET_errSessionContextAlreadySet: i32 = -1912i32; +pub const JET_errSessionContextNotSetByThisThread: i32 = -1913i32; +pub const JET_errSessionInUse: i32 = -1914i32; +pub const JET_errSessionSharingViolation: i32 = -1910i32; +pub const JET_errSessionWriteConflict: i32 = -1111i32; +pub const JET_errSoftRecoveryOnBackupDatabase: i32 = -544i32; +pub const JET_errSoftRecoveryOnSnapshot: i32 = -581i32; +pub const JET_errSpaceHintsInvalid: i32 = -2103i32; +pub const JET_errStartingRestoreLogTooHigh: i32 = -554i32; +pub const JET_errStreamingDataNotLogged: i32 = -549i32; +pub const JET_errSuccess: i32 = 0i32; +pub const JET_errSystemParameterConflict: i32 = -1087i32; +pub const JET_errSystemParamsAlreadySet: i32 = -1082i32; +pub const JET_errSystemPathInUse: i32 = -1083i32; +pub const JET_errTableDuplicate: i32 = -1303i32; +pub const JET_errTableInUse: i32 = -1304i32; +pub const JET_errTableLocked: i32 = -1302i32; +pub const JET_errTableNotEmpty: i32 = -1308i32; +pub const JET_errTaggedNotNULL: i32 = -1514i32; +pub const JET_errTaskDropped: i32 = -106i32; +pub const JET_errTempFileOpenError: i32 = -1803i32; +pub const JET_errTempPathInUse: i32 = -1085i32; +pub const JET_errTermInProgress: i32 = -1000i32; +pub const JET_errTooManyActiveUsers: i32 = -1059i32; +pub const JET_errTooManyAttachedDatabases: i32 = -1805i32; +pub const JET_errTooManyColumns: i32 = -1040i32; +pub const JET_errTooManyIO: i32 = -105i32; +pub const JET_errTooManyIndexes: i32 = -1015i32; +pub const JET_errTooManyInstances: i32 = -1214i32; +pub const JET_errTooManyKeys: i32 = -1016i32; +pub const JET_errTooManyMempoolEntries: i32 = -1073i32; +pub const JET_errTooManyOpenDatabases: i32 = -1027i32; +pub const JET_errTooManyOpenIndexes: i32 = -1410i32; +pub const JET_errTooManyOpenTables: i32 = -1311i32; +pub const JET_errTooManyOpenTablesAndCleanupTimedOut: i32 = -1313i32; +pub const JET_errTooManyRecords: i32 = -1094i32; +pub const JET_errTooManySorts: i32 = -1701i32; +pub const JET_errTooManySplits: i32 = -1909i32; +pub const JET_errTransReadOnly: i32 = -1110i32; +pub const JET_errTransTooDeep: i32 = -1103i32; +pub const JET_errTransactionTooLong: i32 = -618i32; +pub const JET_errTransactionsNotReadyDuringRecovery: i32 = -1232i32; +pub const JET_errUnicodeLanguageValidationFailure: i32 = -604i32; +pub const JET_errUnicodeNormalizationNotSupported: i32 = -603i32; +pub const JET_errUnicodeTranslationBufferTooSmall: i32 = -601i32; +pub const JET_errUnicodeTranslationFail: i32 = -602i32; +pub const JET_errUnloadableOSFunctionality: i32 = -113i32; +pub const JET_errUpdateMustVersion: i32 = -1621i32; +pub const JET_errUpdateNotPrepared: i32 = -1609i32; +pub const JET_errVersionStoreEntryTooBig: i32 = -1065i32; +pub const JET_errVersionStoreOutOfMemory: i32 = -1069i32; +pub const JET_errVersionStoreOutOfMemoryAndCleanupTimedOut: i32 = -1066i32; +pub const JET_errWriteConflict: i32 = -1102i32; +pub const JET_errWriteConflictPrimaryIndex: i32 = -1105i32; +pub const JET_errcatApi: JET_ERRCAT = 13i32; +pub const JET_errcatCorruption: JET_ERRCAT = 10i32; +pub const JET_errcatData: JET_ERRCAT = 9i32; +pub const JET_errcatDisk: JET_ERRCAT = 8i32; +pub const JET_errcatError: JET_ERRCAT = 1i32; +pub const JET_errcatFatal: JET_ERRCAT = 3i32; +pub const JET_errcatFragmentation: JET_ERRCAT = 12i32; +pub const JET_errcatIO: JET_ERRCAT = 4i32; +pub const JET_errcatInconsistent: JET_ERRCAT = 11i32; +pub const JET_errcatMax: JET_ERRCAT = 17i32; +pub const JET_errcatMemory: JET_ERRCAT = 6i32; +pub const JET_errcatObsolete: JET_ERRCAT = 16i32; +pub const JET_errcatOperation: JET_ERRCAT = 2i32; +pub const JET_errcatQuota: JET_ERRCAT = 7i32; +pub const JET_errcatResource: JET_ERRCAT = 5i32; +pub const JET_errcatState: JET_ERRCAT = 15i32; +pub const JET_errcatUnknown: JET_ERRCAT = 0i32; +pub const JET_errcatUsage: JET_ERRCAT = 14i32; +pub const JET_filetypeCheckpoint: u32 = 4u32; +pub const JET_filetypeDatabase: u32 = 1u32; +pub const JET_filetypeFlushMap: u32 = 7u32; +pub const JET_filetypeLog: u32 = 3u32; +pub const JET_filetypeTempDatabase: u32 = 5u32; +pub const JET_filetypeUnknown: u32 = 0u32; +pub const JET_objtypNil: u32 = 0u32; +pub const JET_objtypTable: u32 = 1u32; +pub const JET_paramAccessDeniedRetryPeriod: u32 = 53u32; +pub const JET_paramAlternateDatabaseRecoveryPath: u32 = 113u32; +pub const JET_paramBaseName: u32 = 3u32; +pub const JET_paramBatchIOBufferMax: u32 = 22u32; +pub const JET_paramCachePriority: u32 = 177u32; +pub const JET_paramCacheSize: u32 = 41u32; +pub const JET_paramCacheSizeMax: u32 = 23u32; +pub const JET_paramCacheSizeMin: u32 = 60u32; +pub const JET_paramCachedClosedTables: u32 = 125u32; +pub const JET_paramCheckFormatWhenOpenFail: u32 = 44u32; +pub const JET_paramCheckpointDepthMax: u32 = 24u32; +pub const JET_paramCheckpointIOMax: u32 = 135u32; +pub const JET_paramCircularLog: u32 = 17u32; +pub const JET_paramCleanupMismatchedLogFiles: u32 = 77u32; +pub const JET_paramCommitDefault: u32 = 16u32; +pub const JET_paramConfigStoreSpec: u32 = 189u32; +pub const JET_paramConfiguration: u32 = 129u32; +pub const JET_paramCreatePathIfNotExist: u32 = 100u32; +pub const JET_paramDatabasePageSize: u32 = 64u32; +pub const JET_paramDbExtensionSize: u32 = 18u32; +pub const JET_paramDbScanIntervalMaxSec: u32 = 172u32; +pub const JET_paramDbScanIntervalMinSec: u32 = 171u32; +pub const JET_paramDbScanThrottle: u32 = 170u32; +pub const JET_paramDefragmentSequentialBTrees: u32 = 160u32; +pub const JET_paramDefragmentSequentialBTreesDensityCheckFrequency: u32 = 161u32; +pub const JET_paramDeleteOldLogs: u32 = 48u32; +pub const JET_paramDeleteOutOfRangeLogs: u32 = 52u32; +pub const JET_paramDisableCallbacks: u32 = 65u32; +pub const JET_paramDisablePerfmon: u32 = 107u32; +pub const JET_paramDurableCommitCallback: u32 = 187u32; +pub const JET_paramEnableAdvanced: u32 = 130u32; +pub const JET_paramEnableDBScanInRecovery: u32 = 169u32; +pub const JET_paramEnableDBScanSerialization: u32 = 180u32; +pub const JET_paramEnableFileCache: u32 = 126u32; +pub const JET_paramEnableIndexChecking: u32 = 45u32; +pub const JET_paramEnableIndexCleanup: u32 = 54u32; +pub const JET_paramEnableOnlineDefrag: u32 = 35u32; +pub const JET_paramEnablePersistedCallbacks: u32 = 156u32; +pub const JET_paramEnableRBS: u32 = 215u32; +pub const JET_paramEnableShrinkDatabase: u32 = 184u32; +pub const JET_paramEnableSqm: u32 = 188u32; +pub const JET_paramEnableTempTableVersioning: u32 = 46u32; +pub const JET_paramEnableViewCache: u32 = 127u32; +pub const JET_paramErrorToString: u32 = 70u32; +pub const JET_paramEventLogCache: u32 = 99u32; +pub const JET_paramEventLoggingLevel: u32 = 51u32; +pub const JET_paramEventSource: u32 = 4u32; +pub const JET_paramEventSourceKey: u32 = 49u32; +pub const JET_paramExceptionAction: u32 = 98u32; +pub const JET_paramGlobalMinVerPages: u32 = 81u32; +pub const JET_paramHungIOActions: u32 = 182u32; +pub const JET_paramHungIOThreshold: u32 = 181u32; +pub const JET_paramIOPriority: u32 = 152u32; +pub const JET_paramIOThrottlingTimeQuanta: u32 = 162u32; +pub const JET_paramIgnoreLogVersion: u32 = 47u32; +pub const JET_paramIndexTupleIncrement: u32 = 132u32; +pub const JET_paramIndexTupleStart: u32 = 133u32; +pub const JET_paramIndexTuplesLengthMax: u32 = 111u32; +pub const JET_paramIndexTuplesLengthMin: u32 = 110u32; +pub const JET_paramIndexTuplesToIndexMax: u32 = 112u32; +pub const JET_paramKeyMost: u32 = 134u32; +pub const JET_paramLRUKCorrInterval: u32 = 25u32; +pub const JET_paramLRUKHistoryMax: u32 = 26u32; +pub const JET_paramLRUKPolicy: u32 = 27u32; +pub const JET_paramLRUKTimeout: u32 = 28u32; +pub const JET_paramLRUKTrxCorrInterval: u32 = 29u32; +pub const JET_paramLVChunkSizeMost: u32 = 163u32; +pub const JET_paramLegacyFileNames: u32 = 136u32; +pub const JET_paramLogBuffers: u32 = 12u32; +pub const JET_paramLogCheckpointPeriod: u32 = 14u32; +pub const JET_paramLogFileCreateAsynch: u32 = 69u32; +pub const JET_paramLogFilePath: u32 = 2u32; +pub const JET_paramLogFileSize: u32 = 11u32; +pub const JET_paramLogWaitingUserMax: u32 = 15u32; +pub const JET_paramMaxCoalesceReadGapSize: u32 = 166u32; +pub const JET_paramMaxCoalesceReadSize: u32 = 164u32; +pub const JET_paramMaxCoalesceWriteGapSize: u32 = 167u32; +pub const JET_paramMaxCoalesceWriteSize: u32 = 165u32; +pub const JET_paramMaxColtyp: u32 = 131u32; +pub const JET_paramMaxCursors: u32 = 8u32; +pub const JET_paramMaxInstances: u32 = 104u32; +pub const JET_paramMaxOpenTables: u32 = 6u32; +pub const JET_paramMaxSessions: u32 = 5u32; +pub const JET_paramMaxTemporaryTables: u32 = 10u32; +pub const JET_paramMaxTransactionSize: u32 = 178u32; +pub const JET_paramMaxValueInvalid: u32 = 218u32; +pub const JET_paramMaxVerPages: u32 = 9u32; +pub const JET_paramMinDataForXpress: u32 = 183u32; +pub const JET_paramNoInformationEvent: u32 = 50u32; +pub const JET_paramOSSnapshotTimeout: u32 = 82u32; +pub const JET_paramOneDatabasePerSession: u32 = 102u32; +pub const JET_paramOutstandingIOMax: u32 = 30u32; +pub const JET_paramPageFragment: u32 = 20u32; +pub const JET_paramPageHintCacheSize: u32 = 101u32; +pub const JET_paramPageTempDBMin: u32 = 19u32; +pub const JET_paramPerfmonRefreshInterval: u32 = 217u32; +pub const JET_paramPreferredMaxOpenTables: u32 = 7u32; +pub const JET_paramPreferredVerPages: u32 = 63u32; +pub const JET_paramPrereadIOMax: u32 = 179u32; +pub const JET_paramProcessFriendlyName: u32 = 186u32; +pub const JET_paramRBSFilePath: u32 = 216u32; +pub const JET_paramRecordUpgradeDirtyLevel: u32 = 78u32; +pub const JET_paramRecovery: u32 = 34u32; +pub const JET_paramRuntimeCallback: u32 = 73u32; +pub const JET_paramStartFlushThreshold: u32 = 31u32; +pub const JET_paramStopFlushThreshold: u32 = 32u32; +pub const JET_paramSystemPath: u32 = 0u32; +pub const JET_paramTableClass10Name: u32 = 146u32; +pub const JET_paramTableClass11Name: u32 = 147u32; +pub const JET_paramTableClass12Name: u32 = 148u32; +pub const JET_paramTableClass13Name: u32 = 149u32; +pub const JET_paramTableClass14Name: u32 = 150u32; +pub const JET_paramTableClass15Name: u32 = 151u32; +pub const JET_paramTableClass1Name: u32 = 137u32; +pub const JET_paramTableClass2Name: u32 = 138u32; +pub const JET_paramTableClass3Name: u32 = 139u32; +pub const JET_paramTableClass4Name: u32 = 140u32; +pub const JET_paramTableClass5Name: u32 = 141u32; +pub const JET_paramTableClass6Name: u32 = 142u32; +pub const JET_paramTableClass7Name: u32 = 143u32; +pub const JET_paramTableClass8Name: u32 = 144u32; +pub const JET_paramTableClass9Name: u32 = 145u32; +pub const JET_paramTempPath: u32 = 1u32; +pub const JET_paramUnicodeIndexDefault: u32 = 72u32; +pub const JET_paramUseFlushForWriteDurability: u32 = 214u32; +pub const JET_paramVerPageSize: u32 = 128u32; +pub const JET_paramVersionStoreTaskQueueMax: u32 = 105u32; +pub const JET_paramWaitLogFlush: u32 = 13u32; +pub const JET_paramWaypointLatency: u32 = 153u32; +pub const JET_paramZeroDatabaseDuringBackup: u32 = 71u32; +pub const JET_prepCancel: u32 = 3u32; +pub const JET_prepInsert: u32 = 0u32; +pub const JET_prepInsertCopy: u32 = 5u32; +pub const JET_prepInsertCopyDeleteOriginal: u32 = 7u32; +pub const JET_prepInsertCopyReplaceOriginal: u32 = 9u32; +pub const JET_prepReplace: u32 = 2u32; +pub const JET_prepReplaceNoLock: u32 = 4u32; +pub const JET_relopBitmaskEqualsZero: JET_RELOP = 7i32; +pub const JET_relopBitmaskNotEqualsZero: JET_RELOP = 8i32; +pub const JET_relopEquals: JET_RELOP = 0i32; +pub const JET_relopGreaterThan: JET_RELOP = 6i32; +pub const JET_relopGreaterThanOrEqual: JET_RELOP = 5i32; +pub const JET_relopLessThan: JET_RELOP = 4i32; +pub const JET_relopLessThanOrEqual: JET_RELOP = 3i32; +pub const JET_relopNotEquals: JET_RELOP = 2i32; +pub const JET_relopPrefixEquals: JET_RELOP = 1i32; +pub const JET_sesparamCommitDefault: u32 = 4097u32; +pub const JET_sesparamCorrelationID: u32 = 4101u32; +pub const JET_sesparamMaxValueInvalid: u32 = 4111u32; +pub const JET_sesparamOperationContext: u32 = 4100u32; +pub const JET_sesparamTransactionLevel: u32 = 4099u32; +pub const JET_snpBackup: u32 = 9u32; +pub const JET_snpCompact: u32 = 4u32; +pub const JET_snpRepair: u32 = 2u32; +pub const JET_snpRestore: u32 = 8u32; +pub const JET_snpScrub: u32 = 11u32; +pub const JET_snpUpgrade: u32 = 10u32; +pub const JET_snpUpgradeRecordFormat: u32 = 12u32; +pub const JET_sntBegin: u32 = 5u32; +pub const JET_sntComplete: u32 = 6u32; +pub const JET_sntFail: u32 = 3u32; +pub const JET_sntProgress: u32 = 0u32; +pub const JET_sntRequirements: u32 = 7u32; +pub const JET_sqmDisable: u32 = 0u32; +pub const JET_sqmEnable: u32 = 1u32; +pub const JET_sqmFromCEIP: u32 = 2u32; +pub const JET_wrnBufferTruncated: u32 = 1006u32; +pub const JET_wrnCallbackNotRegistered: u32 = 2100u32; +pub const JET_wrnColumnDefault: u32 = 1537u32; +pub const JET_wrnColumnMaxTruncated: u32 = 1512u32; +pub const JET_wrnColumnMoreTags: u32 = 1533u32; +pub const JET_wrnColumnNotInRecord: u32 = 1539u32; +pub const JET_wrnColumnNotLocal: u32 = 1532u32; +pub const JET_wrnColumnNull: u32 = 1004u32; +pub const JET_wrnColumnPresent: u32 = 1535u32; +pub const JET_wrnColumnReference: u32 = 1541u32; +pub const JET_wrnColumnSetNull: u32 = 1068u32; +pub const JET_wrnColumnSingleValue: u32 = 1536u32; +pub const JET_wrnColumnSkipped: u32 = 1531u32; +pub const JET_wrnColumnTruncated: u32 = 1534u32; +pub const JET_wrnCommittedLogFilesLost: u32 = 585u32; +pub const JET_wrnCommittedLogFilesRemoved: u32 = 587u32; +pub const JET_wrnCopyLongValue: u32 = 1520u32; +pub const JET_wrnCorruptIndexDeleted: u32 = 1415u32; +pub const JET_wrnDataHasChanged: u32 = 1610u32; +pub const JET_wrnDatabaseAttached: u32 = 1007u32; +pub const JET_wrnDatabaseRepaired: u32 = 595u32; +pub const JET_wrnDefragAlreadyRunning: u32 = 2000u32; +pub const JET_wrnDefragNotRunning: u32 = 2001u32; +pub const JET_wrnExistingLogFileHasBadSignature: u32 = 558u32; +pub const JET_wrnExistingLogFileIsNotContiguous: u32 = 559u32; +pub const JET_wrnFileOpenReadOnly: u32 = 1813u32; +pub const JET_wrnFinishWithUndo: u32 = 588u32; +pub const JET_wrnIdleFull: u32 = 1908u32; +pub const JET_wrnKeyChanged: u32 = 1618u32; +pub const JET_wrnNoErrorInfo: u32 = 1055u32; +pub const JET_wrnNoIdleActivity: u32 = 1058u32; +pub const JET_wrnNoWriteLock: u32 = 1067u32; +pub const JET_wrnNyi: i32 = -1i32; +pub const JET_wrnPrimaryIndexOutOfDate: u32 = 1417u32; +pub const JET_wrnRemainingVersions: u32 = 321u32; +pub const JET_wrnSecondaryIndexOutOfDate: u32 = 1418u32; +pub const JET_wrnSeekNotEqual: u32 = 1039u32; +pub const JET_wrnSeparateLongValue: u32 = 406u32; +pub const JET_wrnShrinkNotPossible: u32 = 1122u32; +pub const JET_wrnSkipThisRecord: u32 = 564u32; +pub const JET_wrnSortOverflow: u32 = 1009u32; +pub const JET_wrnTableEmpty: u32 = 1301u32; +pub const JET_wrnTableInUseBySystem: u32 = 1327u32; +pub const JET_wrnTargetInstanceRunning: u32 = 578u32; +pub const JET_wrnUniqueKey: u32 = 345u32; +pub const JET_wszConfigStoreReadControl: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CsReadControl"); +pub const JET_wszConfigStoreRelPathSysParamDefault: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysParamDefault"); +pub const JET_wszConfigStoreRelPathSysParamOverride: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysParamOverride"); +pub const cColumnInfoCols: u32 = 14u32; +pub const cIndexInfoCols: u32 = 15u32; +pub const cObjectInfoCols: u32 = 9u32; +pub const wrnBTNotVisibleAccumulated: u32 = 353u32; +pub const wrnBTNotVisibleRejected: u32 = 352u32; +pub type JET_ERRCAT = i32; +pub type JET_INDEXCHECKING = i32; +pub type JET_RELOP = i32; +#[repr(C, packed(1))] +pub struct JET_BKINFO { + pub lgposMark: JET_LGPOS, + pub Anonymous: JET_BKINFO_0, + pub genLow: u32, + pub genHigh: u32, +} +impl ::core::marker::Copy for JET_BKINFO {} +impl ::core::clone::Clone for JET_BKINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_BKINFO_0 { + pub logtimeMark: JET_LOGTIME, + pub bklogtimeMark: JET_BKLOGTIME, +} +impl ::core::marker::Copy for JET_BKINFO_0 {} +impl ::core::clone::Clone for JET_BKINFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_BKLOGTIME { + pub bSeconds: u8, + pub bMinutes: u8, + pub bHours: u8, + pub bDay: u8, + pub bMonth: u8, + pub bYear: u8, + pub Anonymous1: JET_BKLOGTIME_0, + pub Anonymous2: JET_BKLOGTIME_1, +} +impl ::core::marker::Copy for JET_BKLOGTIME {} +impl ::core::clone::Clone for JET_BKLOGTIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_BKLOGTIME_0 { + pub bFiller1: u8, + pub Anonymous: JET_BKLOGTIME_0_0, +} +impl ::core::marker::Copy for JET_BKLOGTIME_0 {} +impl ::core::clone::Clone for JET_BKLOGTIME_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_BKLOGTIME_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for JET_BKLOGTIME_0_0 {} +impl ::core::clone::Clone for JET_BKLOGTIME_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_BKLOGTIME_1 { + pub bFiller2: u8, + pub Anonymous: JET_BKLOGTIME_1_0, +} +impl ::core::marker::Copy for JET_BKLOGTIME_1 {} +impl ::core::clone::Clone for JET_BKLOGTIME_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_BKLOGTIME_1_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for JET_BKLOGTIME_1_0 {} +impl ::core::clone::Clone for JET_BKLOGTIME_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_COLUMNBASE_A { + pub cbStruct: u32, + pub columnid: u32, + pub coltyp: u32, + pub wCountry: u16, + pub langid: u16, + pub cp: u16, + pub wFiller: u16, + pub cbMax: u32, + pub grbit: u32, + pub szBaseTableName: [u8; 256], + pub szBaseColumnName: [u8; 256], +} +impl ::core::marker::Copy for JET_COLUMNBASE_A {} +impl ::core::clone::Clone for JET_COLUMNBASE_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_COLUMNBASE_W { + pub cbStruct: u32, + pub columnid: u32, + pub coltyp: u32, + pub wCountry: u16, + pub langid: u16, + pub cp: u16, + pub wFiller: u16, + pub cbMax: u32, + pub grbit: u32, + pub szBaseTableName: [u16; 256], + pub szBaseColumnName: [u16; 256], +} +impl ::core::marker::Copy for JET_COLUMNBASE_W {} +impl ::core::clone::Clone for JET_COLUMNBASE_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_COLUMNCREATE_A { + pub cbStruct: u32, + pub szColumnName: ::windows_sys::core::PSTR, + pub coltyp: u32, + pub cbMax: u32, + pub grbit: u32, + pub pvDefault: *mut ::core::ffi::c_void, + pub cbDefault: u32, + pub cp: u32, + pub columnid: u32, + pub err: i32, +} +impl ::core::marker::Copy for JET_COLUMNCREATE_A {} +impl ::core::clone::Clone for JET_COLUMNCREATE_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_COLUMNCREATE_W { + pub cbStruct: u32, + pub szColumnName: ::windows_sys::core::PWSTR, + pub coltyp: u32, + pub cbMax: u32, + pub grbit: u32, + pub pvDefault: *mut ::core::ffi::c_void, + pub cbDefault: u32, + pub cp: u32, + pub columnid: u32, + pub err: i32, +} +impl ::core::marker::Copy for JET_COLUMNCREATE_W {} +impl ::core::clone::Clone for JET_COLUMNCREATE_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_COLUMNDEF { + pub cbStruct: u32, + pub columnid: u32, + pub coltyp: u32, + pub wCountry: u16, + pub langid: u16, + pub cp: u16, + pub wCollate: u16, + pub cbMax: u32, + pub grbit: u32, +} +impl ::core::marker::Copy for JET_COLUMNDEF {} +impl ::core::clone::Clone for JET_COLUMNDEF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_COLUMNLIST { + pub cbStruct: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, + pub cRecord: u32, + pub columnidPresentationOrder: u32, + pub columnidcolumnname: u32, + pub columnidcolumnid: u32, + pub columnidcoltyp: u32, + pub columnidCountry: u32, + pub columnidLangid: u32, + pub columnidCp: u32, + pub columnidCollate: u32, + pub columnidcbMax: u32, + pub columnidgrbit: u32, + pub columnidDefault: u32, + pub columnidBaseTableName: u32, + pub columnidBaseColumnName: u32, + pub columnidDefinitionName: u32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_COLUMNLIST {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_COLUMNLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct JET_COMMIT_ID { + pub signLog: JET_SIGNATURE, + pub reserved: i32, + pub commitId: i64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for JET_COMMIT_ID {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for JET_COMMIT_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(target_arch = "x86")] +pub struct JET_COMMIT_ID { + pub signLog: JET_SIGNATURE, + pub reserved: i32, + pub commitId: i64, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for JET_COMMIT_ID {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for JET_COMMIT_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_CONDITIONALCOLUMN_A { + pub cbStruct: u32, + pub szColumnName: ::windows_sys::core::PSTR, + pub grbit: u32, +} +impl ::core::marker::Copy for JET_CONDITIONALCOLUMN_A {} +impl ::core::clone::Clone for JET_CONDITIONALCOLUMN_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_CONDITIONALCOLUMN_W { + pub cbStruct: u32, + pub szColumnName: ::windows_sys::core::PWSTR, + pub grbit: u32, +} +impl ::core::marker::Copy for JET_CONDITIONALCOLUMN_W {} +impl ::core::clone::Clone for JET_CONDITIONALCOLUMN_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_CONVERT_A { + pub szOldDll: ::windows_sys::core::PSTR, + pub Anonymous: JET_CONVERT_A_0, +} +impl ::core::marker::Copy for JET_CONVERT_A {} +impl ::core::clone::Clone for JET_CONVERT_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_CONVERT_A_0 { + pub fFlags: u32, + pub Anonymous: JET_CONVERT_A_0_0, +} +impl ::core::marker::Copy for JET_CONVERT_A_0 {} +impl ::core::clone::Clone for JET_CONVERT_A_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_CONVERT_A_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for JET_CONVERT_A_0_0 {} +impl ::core::clone::Clone for JET_CONVERT_A_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_CONVERT_W { + pub szOldDll: ::windows_sys::core::PWSTR, + pub Anonymous: JET_CONVERT_W_0, +} +impl ::core::marker::Copy for JET_CONVERT_W {} +impl ::core::clone::Clone for JET_CONVERT_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_CONVERT_W_0 { + pub fFlags: u32, + pub Anonymous: JET_CONVERT_W_0_0, +} +impl ::core::marker::Copy for JET_CONVERT_W_0 {} +impl ::core::clone::Clone for JET_CONVERT_W_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_CONVERT_W_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for JET_CONVERT_W_0_0 {} +impl ::core::clone::Clone for JET_CONVERT_W_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_DBINFOMISC { + pub ulVersion: u32, + pub ulUpdate: u32, + pub signDb: JET_SIGNATURE, + pub dbstate: u32, + pub lgposConsistent: JET_LGPOS, + pub logtimeConsistent: JET_LOGTIME, + pub logtimeAttach: JET_LOGTIME, + pub lgposAttach: JET_LGPOS, + pub logtimeDetach: JET_LOGTIME, + pub lgposDetach: JET_LGPOS, + pub signLog: JET_SIGNATURE, + pub bkinfoFullPrev: JET_BKINFO, + pub bkinfoIncPrev: JET_BKINFO, + pub bkinfoFullCur: JET_BKINFO, + pub fShadowingDisabled: u32, + pub fUpgradeDb: u32, + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, + pub dwBuildNumber: u32, + pub lSPNumber: i32, + pub cbPageSize: u32, +} +impl ::core::marker::Copy for JET_DBINFOMISC {} +impl ::core::clone::Clone for JET_DBINFOMISC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_DBINFOMISC2 { + pub ulVersion: u32, + pub ulUpdate: u32, + pub signDb: JET_SIGNATURE, + pub dbstate: u32, + pub lgposConsistent: JET_LGPOS, + pub logtimeConsistent: JET_LOGTIME, + pub logtimeAttach: JET_LOGTIME, + pub lgposAttach: JET_LGPOS, + pub logtimeDetach: JET_LOGTIME, + pub lgposDetach: JET_LGPOS, + pub signLog: JET_SIGNATURE, + pub bkinfoFullPrev: JET_BKINFO, + pub bkinfoIncPrev: JET_BKINFO, + pub bkinfoFullCur: JET_BKINFO, + pub fShadowingDisabled: u32, + pub fUpgradeDb: u32, + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, + pub dwBuildNumber: u32, + pub lSPNumber: i32, + pub cbPageSize: u32, + pub genMinRequired: u32, + pub genMaxRequired: u32, + pub logtimeGenMaxCreate: JET_LOGTIME, + pub ulRepairCount: u32, + pub logtimeRepair: JET_LOGTIME, + pub ulRepairCountOld: u32, + pub ulECCFixSuccess: u32, + pub logtimeECCFixSuccess: JET_LOGTIME, + pub ulECCFixSuccessOld: u32, + pub ulECCFixFail: u32, + pub logtimeECCFixFail: JET_LOGTIME, + pub ulECCFixFailOld: u32, + pub ulBadChecksum: u32, + pub logtimeBadChecksum: JET_LOGTIME, + pub ulBadChecksumOld: u32, +} +impl ::core::marker::Copy for JET_DBINFOMISC2 {} +impl ::core::clone::Clone for JET_DBINFOMISC2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_DBINFOMISC3 { + pub ulVersion: u32, + pub ulUpdate: u32, + pub signDb: JET_SIGNATURE, + pub dbstate: u32, + pub lgposConsistent: JET_LGPOS, + pub logtimeConsistent: JET_LOGTIME, + pub logtimeAttach: JET_LOGTIME, + pub lgposAttach: JET_LGPOS, + pub logtimeDetach: JET_LOGTIME, + pub lgposDetach: JET_LGPOS, + pub signLog: JET_SIGNATURE, + pub bkinfoFullPrev: JET_BKINFO, + pub bkinfoIncPrev: JET_BKINFO, + pub bkinfoFullCur: JET_BKINFO, + pub fShadowingDisabled: u32, + pub fUpgradeDb: u32, + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, + pub dwBuildNumber: u32, + pub lSPNumber: i32, + pub cbPageSize: u32, + pub genMinRequired: u32, + pub genMaxRequired: u32, + pub logtimeGenMaxCreate: JET_LOGTIME, + pub ulRepairCount: u32, + pub logtimeRepair: JET_LOGTIME, + pub ulRepairCountOld: u32, + pub ulECCFixSuccess: u32, + pub logtimeECCFixSuccess: JET_LOGTIME, + pub ulECCFixSuccessOld: u32, + pub ulECCFixFail: u32, + pub logtimeECCFixFail: JET_LOGTIME, + pub ulECCFixFailOld: u32, + pub ulBadChecksum: u32, + pub logtimeBadChecksum: JET_LOGTIME, + pub ulBadChecksumOld: u32, + pub genCommitted: u32, +} +impl ::core::marker::Copy for JET_DBINFOMISC3 {} +impl ::core::clone::Clone for JET_DBINFOMISC3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_DBINFOMISC4 { + pub ulVersion: u32, + pub ulUpdate: u32, + pub signDb: JET_SIGNATURE, + pub dbstate: u32, + pub lgposConsistent: JET_LGPOS, + pub logtimeConsistent: JET_LOGTIME, + pub logtimeAttach: JET_LOGTIME, + pub lgposAttach: JET_LGPOS, + pub logtimeDetach: JET_LOGTIME, + pub lgposDetach: JET_LGPOS, + pub signLog: JET_SIGNATURE, + pub bkinfoFullPrev: JET_BKINFO, + pub bkinfoIncPrev: JET_BKINFO, + pub bkinfoFullCur: JET_BKINFO, + pub fShadowingDisabled: u32, + pub fUpgradeDb: u32, + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, + pub dwBuildNumber: u32, + pub lSPNumber: i32, + pub cbPageSize: u32, + pub genMinRequired: u32, + pub genMaxRequired: u32, + pub logtimeGenMaxCreate: JET_LOGTIME, + pub ulRepairCount: u32, + pub logtimeRepair: JET_LOGTIME, + pub ulRepairCountOld: u32, + pub ulECCFixSuccess: u32, + pub logtimeECCFixSuccess: JET_LOGTIME, + pub ulECCFixSuccessOld: u32, + pub ulECCFixFail: u32, + pub logtimeECCFixFail: JET_LOGTIME, + pub ulECCFixFailOld: u32, + pub ulBadChecksum: u32, + pub logtimeBadChecksum: JET_LOGTIME, + pub ulBadChecksumOld: u32, + pub genCommitted: u32, + pub bkinfoCopyPrev: JET_BKINFO, + pub bkinfoDiffPrev: JET_BKINFO, +} +impl ::core::marker::Copy for JET_DBINFOMISC4 {} +impl ::core::clone::Clone for JET_DBINFOMISC4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_DBINFOUPGRADE { + pub cbStruct: u32, + pub cbFilesizeLow: u32, + pub cbFilesizeHigh: u32, + pub cbFreeSpaceRequiredLow: u32, + pub cbFreeSpaceRequiredHigh: u32, + pub csecToUpgrade: u32, + pub Anonymous: JET_DBINFOUPGRADE_0, +} +impl ::core::marker::Copy for JET_DBINFOUPGRADE {} +impl ::core::clone::Clone for JET_DBINFOUPGRADE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_DBINFOUPGRADE_0 { + pub ulFlags: u32, + pub Anonymous: JET_DBINFOUPGRADE_0_0, +} +impl ::core::marker::Copy for JET_DBINFOUPGRADE_0 {} +impl ::core::clone::Clone for JET_DBINFOUPGRADE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_DBINFOUPGRADE_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for JET_DBINFOUPGRADE_0_0 {} +impl ::core::clone::Clone for JET_DBINFOUPGRADE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_ENUMCOLUMN { + pub columnid: u32, + pub err: i32, + pub Anonymous: JET_ENUMCOLUMN_0, +} +impl ::core::marker::Copy for JET_ENUMCOLUMN {} +impl ::core::clone::Clone for JET_ENUMCOLUMN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_ENUMCOLUMN_0 { + pub Anonymous1: JET_ENUMCOLUMN_0_0, + pub Anonymous2: JET_ENUMCOLUMN_0_1, +} +impl ::core::marker::Copy for JET_ENUMCOLUMN_0 {} +impl ::core::clone::Clone for JET_ENUMCOLUMN_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_ENUMCOLUMN_0_0 { + pub cEnumColumnValue: u32, + pub rgEnumColumnValue: *mut JET_ENUMCOLUMNVALUE, +} +impl ::core::marker::Copy for JET_ENUMCOLUMN_0_0 {} +impl ::core::clone::Clone for JET_ENUMCOLUMN_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_ENUMCOLUMN_0_1 { + pub cbData: u32, + pub pvData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for JET_ENUMCOLUMN_0_1 {} +impl ::core::clone::Clone for JET_ENUMCOLUMN_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_ENUMCOLUMNID { + pub columnid: u32, + pub ctagSequence: u32, + pub rgtagSequence: *mut u32, +} +impl ::core::marker::Copy for JET_ENUMCOLUMNID {} +impl ::core::clone::Clone for JET_ENUMCOLUMNID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_ENUMCOLUMNVALUE { + pub itagSequence: u32, + pub err: i32, + pub cbData: u32, + pub pvData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for JET_ENUMCOLUMNVALUE {} +impl ::core::clone::Clone for JET_ENUMCOLUMNVALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_ERRINFOBASIC_W { + pub cbStruct: u32, + pub errValue: i32, + pub errcatMostSpecific: JET_ERRCAT, + pub rgCategoricalHierarchy: [u8; 8], + pub lSourceLine: u32, + pub rgszSourceFile: [u16; 64], +} +impl ::core::marker::Copy for JET_ERRINFOBASIC_W {} +impl ::core::clone::Clone for JET_ERRINFOBASIC_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_INDEXCREATE2_A { + pub cbStruct: u32, + pub szIndexName: ::windows_sys::core::PSTR, + pub szKey: ::windows_sys::core::PSTR, + pub cbKey: u32, + pub grbit: u32, + pub ulDensity: u32, + pub Anonymous1: JET_INDEXCREATE2_A_0, + pub Anonymous2: JET_INDEXCREATE2_A_1, + pub rgconditionalcolumn: *mut JET_CONDITIONALCOLUMN_A, + pub cConditionalColumn: u32, + pub err: i32, + pub cbKeyMost: u32, + pub pSpacehints: *mut JET_SPACEHINTS, +} +impl ::core::marker::Copy for JET_INDEXCREATE2_A {} +impl ::core::clone::Clone for JET_INDEXCREATE2_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_INDEXCREATE2_A_0 { + pub lcid: u32, + pub pidxunicode: *mut JET_UNICODEINDEX, +} +impl ::core::marker::Copy for JET_INDEXCREATE2_A_0 {} +impl ::core::clone::Clone for JET_INDEXCREATE2_A_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_INDEXCREATE2_A_1 { + pub cbVarSegMac: u32, + pub ptuplelimits: *mut JET_TUPLELIMITS, +} +impl ::core::marker::Copy for JET_INDEXCREATE2_A_1 {} +impl ::core::clone::Clone for JET_INDEXCREATE2_A_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_INDEXCREATE2_W { + pub cbStruct: u32, + pub szIndexName: ::windows_sys::core::PWSTR, + pub szKey: ::windows_sys::core::PWSTR, + pub cbKey: u32, + pub grbit: u32, + pub ulDensity: u32, + pub Anonymous1: JET_INDEXCREATE2_W_0, + pub Anonymous2: JET_INDEXCREATE2_W_1, + pub rgconditionalcolumn: *mut JET_CONDITIONALCOLUMN_W, + pub cConditionalColumn: u32, + pub err: i32, + pub cbKeyMost: u32, + pub pSpacehints: *mut JET_SPACEHINTS, +} +impl ::core::marker::Copy for JET_INDEXCREATE2_W {} +impl ::core::clone::Clone for JET_INDEXCREATE2_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_INDEXCREATE2_W_0 { + pub lcid: u32, + pub pidxunicode: *mut JET_UNICODEINDEX, +} +impl ::core::marker::Copy for JET_INDEXCREATE2_W_0 {} +impl ::core::clone::Clone for JET_INDEXCREATE2_W_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_INDEXCREATE2_W_1 { + pub cbVarSegMac: u32, + pub ptuplelimits: *mut JET_TUPLELIMITS, +} +impl ::core::marker::Copy for JET_INDEXCREATE2_W_1 {} +impl ::core::clone::Clone for JET_INDEXCREATE2_W_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_INDEXCREATE3_A { + pub cbStruct: u32, + pub szIndexName: ::windows_sys::core::PSTR, + pub szKey: ::windows_sys::core::PSTR, + pub cbKey: u32, + pub grbit: u32, + pub ulDensity: u32, + pub pidxunicode: *mut JET_UNICODEINDEX2, + pub Anonymous: JET_INDEXCREATE3_A_0, + pub rgconditionalcolumn: *mut JET_CONDITIONALCOLUMN_A, + pub cConditionalColumn: u32, + pub err: i32, + pub cbKeyMost: u32, + pub pSpacehints: *mut JET_SPACEHINTS, +} +impl ::core::marker::Copy for JET_INDEXCREATE3_A {} +impl ::core::clone::Clone for JET_INDEXCREATE3_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_INDEXCREATE3_A_0 { + pub cbVarSegMac: u32, + pub ptuplelimits: *mut JET_TUPLELIMITS, +} +impl ::core::marker::Copy for JET_INDEXCREATE3_A_0 {} +impl ::core::clone::Clone for JET_INDEXCREATE3_A_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_INDEXCREATE3_W { + pub cbStruct: u32, + pub szIndexName: ::windows_sys::core::PWSTR, + pub szKey: ::windows_sys::core::PWSTR, + pub cbKey: u32, + pub grbit: u32, + pub ulDensity: u32, + pub pidxunicode: *mut JET_UNICODEINDEX2, + pub Anonymous: JET_INDEXCREATE3_W_0, + pub rgconditionalcolumn: *mut JET_CONDITIONALCOLUMN_W, + pub cConditionalColumn: u32, + pub err: i32, + pub cbKeyMost: u32, + pub pSpacehints: *mut JET_SPACEHINTS, +} +impl ::core::marker::Copy for JET_INDEXCREATE3_W {} +impl ::core::clone::Clone for JET_INDEXCREATE3_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_INDEXCREATE3_W_0 { + pub cbVarSegMac: u32, + pub ptuplelimits: *mut JET_TUPLELIMITS, +} +impl ::core::marker::Copy for JET_INDEXCREATE3_W_0 {} +impl ::core::clone::Clone for JET_INDEXCREATE3_W_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_INDEXCREATE_A { + pub cbStruct: u32, + pub szIndexName: ::windows_sys::core::PSTR, + pub szKey: ::windows_sys::core::PSTR, + pub cbKey: u32, + pub grbit: u32, + pub ulDensity: u32, + pub Anonymous1: JET_INDEXCREATE_A_0, + pub Anonymous2: JET_INDEXCREATE_A_1, + pub rgconditionalcolumn: *mut JET_CONDITIONALCOLUMN_A, + pub cConditionalColumn: u32, + pub err: i32, + pub cbKeyMost: u32, +} +impl ::core::marker::Copy for JET_INDEXCREATE_A {} +impl ::core::clone::Clone for JET_INDEXCREATE_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_INDEXCREATE_A_0 { + pub lcid: u32, + pub pidxunicode: *mut JET_UNICODEINDEX, +} +impl ::core::marker::Copy for JET_INDEXCREATE_A_0 {} +impl ::core::clone::Clone for JET_INDEXCREATE_A_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_INDEXCREATE_A_1 { + pub cbVarSegMac: u32, + pub ptuplelimits: *mut JET_TUPLELIMITS, +} +impl ::core::marker::Copy for JET_INDEXCREATE_A_1 {} +impl ::core::clone::Clone for JET_INDEXCREATE_A_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_INDEXCREATE_W { + pub cbStruct: u32, + pub szIndexName: ::windows_sys::core::PWSTR, + pub szKey: ::windows_sys::core::PWSTR, + pub cbKey: u32, + pub grbit: u32, + pub ulDensity: u32, + pub Anonymous1: JET_INDEXCREATE_W_0, + pub Anonymous2: JET_INDEXCREATE_W_1, + pub rgconditionalcolumn: *mut JET_CONDITIONALCOLUMN_W, + pub cConditionalColumn: u32, + pub err: i32, + pub cbKeyMost: u32, +} +impl ::core::marker::Copy for JET_INDEXCREATE_W {} +impl ::core::clone::Clone for JET_INDEXCREATE_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_INDEXCREATE_W_0 { + pub lcid: u32, + pub pidxunicode: *mut JET_UNICODEINDEX, +} +impl ::core::marker::Copy for JET_INDEXCREATE_W_0 {} +impl ::core::clone::Clone for JET_INDEXCREATE_W_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_INDEXCREATE_W_1 { + pub cbVarSegMac: u32, + pub ptuplelimits: *mut JET_TUPLELIMITS, +} +impl ::core::marker::Copy for JET_INDEXCREATE_W_1 {} +impl ::core::clone::Clone for JET_INDEXCREATE_W_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct JET_INDEXID { + pub cbStruct: u32, + pub rgbIndexId: [u8; 16], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for JET_INDEXID {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for JET_INDEXID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct JET_INDEXID { + pub cbStruct: u32, + pub rgbIndexId: [u8; 12], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for JET_INDEXID {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for JET_INDEXID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_INDEXLIST { + pub cbStruct: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, + pub cRecord: u32, + pub columnidindexname: u32, + pub columnidgrbitIndex: u32, + pub columnidcKey: u32, + pub columnidcEntry: u32, + pub columnidcPage: u32, + pub columnidcColumn: u32, + pub columnidiColumn: u32, + pub columnidcolumnid: u32, + pub columnidcoltyp: u32, + pub columnidCountry: u32, + pub columnidLangid: u32, + pub columnidCp: u32, + pub columnidCollate: u32, + pub columnidgrbitColumn: u32, + pub columnidcolumnname: u32, + pub columnidLCMapFlags: u32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_INDEXLIST {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_INDEXLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_INDEXRANGE { + pub cbStruct: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, + pub grbit: u32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_INDEXRANGE {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_INDEXRANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_INDEX_COLUMN { + pub columnid: u32, + pub relop: JET_RELOP, + pub pv: *mut ::core::ffi::c_void, + pub cb: u32, + pub grbit: u32, +} +impl ::core::marker::Copy for JET_INDEX_COLUMN {} +impl ::core::clone::Clone for JET_INDEX_COLUMN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_INDEX_RANGE { + pub rgStartColumns: *mut JET_INDEX_COLUMN, + pub cStartColumns: u32, + pub rgEndColumns: *mut JET_INDEX_COLUMN, + pub cEndColumns: u32, +} +impl ::core::marker::Copy for JET_INDEX_RANGE {} +impl ::core::clone::Clone for JET_INDEX_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_INSTANCE_INFO_A { + pub hInstanceId: super::StructuredStorage::JET_INSTANCE, + pub szInstanceName: ::windows_sys::core::PSTR, + pub cDatabases: super::StructuredStorage::JET_API_PTR, + pub szDatabaseFileName: *mut *mut i8, + pub szDatabaseDisplayName: *mut *mut i8, + pub szDatabaseSLVFileName_Obsolete: *mut *mut i8, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_INSTANCE_INFO_A {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_INSTANCE_INFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_INSTANCE_INFO_W { + pub hInstanceId: super::StructuredStorage::JET_INSTANCE, + pub szInstanceName: ::windows_sys::core::PWSTR, + pub cDatabases: super::StructuredStorage::JET_API_PTR, + pub szDatabaseFileName: *mut *mut u16, + pub szDatabaseDisplayName: *mut *mut u16, + pub szDatabaseSLVFileName_Obsolete: *mut *mut u16, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_INSTANCE_INFO_W {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_INSTANCE_INFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct JET_LGPOS { + pub ib: u16, + pub isec: u16, + pub lGeneration: i32, +} +impl ::core::marker::Copy for JET_LGPOS {} +impl ::core::clone::Clone for JET_LGPOS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_LOGINFO_A { + pub cbSize: u32, + pub ulGenLow: u32, + pub ulGenHigh: u32, + pub szBaseName: [u8; 4], +} +impl ::core::marker::Copy for JET_LOGINFO_A {} +impl ::core::clone::Clone for JET_LOGINFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_LOGINFO_W { + pub cbSize: u32, + pub ulGenLow: u32, + pub ulGenHigh: u32, + pub szBaseName: [u16; 4], +} +impl ::core::marker::Copy for JET_LOGINFO_W {} +impl ::core::clone::Clone for JET_LOGINFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_LOGTIME { + pub bSeconds: u8, + pub bMinutes: u8, + pub bHours: u8, + pub bDay: u8, + pub bMonth: u8, + pub bYear: u8, + pub Anonymous1: JET_LOGTIME_0, + pub Anonymous2: JET_LOGTIME_1, +} +impl ::core::marker::Copy for JET_LOGTIME {} +impl ::core::clone::Clone for JET_LOGTIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_LOGTIME_0 { + pub bFiller1: u8, + pub Anonymous: JET_LOGTIME_0_0, +} +impl ::core::marker::Copy for JET_LOGTIME_0 {} +impl ::core::clone::Clone for JET_LOGTIME_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_LOGTIME_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for JET_LOGTIME_0_0 {} +impl ::core::clone::Clone for JET_LOGTIME_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JET_LOGTIME_1 { + pub bFiller2: u8, + pub Anonymous: JET_LOGTIME_1_0, +} +impl ::core::marker::Copy for JET_LOGTIME_1 {} +impl ::core::clone::Clone for JET_LOGTIME_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_LOGTIME_1_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for JET_LOGTIME_1_0 {} +impl ::core::clone::Clone for JET_LOGTIME_1_0 { + fn clone(&self) -> Self { + *self + } +} +pub type JET_LS = usize; +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct JET_OBJECTINFO { + pub cbStruct: u32, + pub objtyp: u32, + pub dtCreate: f64, + pub dtUpdate: f64, + pub grbit: u32, + pub flags: u32, + pub cRecord: u32, + pub cPage: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for JET_OBJECTINFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for JET_OBJECTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(target_arch = "x86")] +pub struct JET_OBJECTINFO { + pub cbStruct: u32, + pub objtyp: u32, + pub dtCreate: f64, + pub dtUpdate: f64, + pub grbit: u32, + pub flags: u32, + pub cRecord: u32, + pub cPage: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for JET_OBJECTINFO {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for JET_OBJECTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_OBJECTLIST { + pub cbStruct: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, + pub cRecord: u32, + pub columnidcontainername: u32, + pub columnidobjectname: u32, + pub columnidobjtyp: u32, + pub columniddtCreate: u32, + pub columniddtUpdate: u32, + pub columnidgrbit: u32, + pub columnidflags: u32, + pub columnidcRecord: u32, + pub columnidcPage: u32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_OBJECTLIST {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_OBJECTLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_OPENTEMPORARYTABLE { + pub cbStruct: u32, + pub prgcolumndef: *const JET_COLUMNDEF, + pub ccolumn: u32, + pub pidxunicode: *mut JET_UNICODEINDEX, + pub grbit: u32, + pub prgcolumnid: *mut u32, + pub cbKeyMost: u32, + pub cbVarSegMac: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_OPENTEMPORARYTABLE {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_OPENTEMPORARYTABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_OPENTEMPORARYTABLE2 { + pub cbStruct: u32, + pub prgcolumndef: *const JET_COLUMNDEF, + pub ccolumn: u32, + pub pidxunicode: *mut JET_UNICODEINDEX2, + pub grbit: u32, + pub prgcolumnid: *mut u32, + pub cbKeyMost: u32, + pub cbVarSegMac: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_OPENTEMPORARYTABLE2 {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_OPENTEMPORARYTABLE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_OPERATIONCONTEXT { + pub ulUserID: u32, + pub nOperationID: u8, + pub nOperationType: u8, + pub nClientType: u8, + pub fFlags: u8, +} +impl ::core::marker::Copy for JET_OPERATIONCONTEXT {} +impl ::core::clone::Clone for JET_OPERATIONCONTEXT { + fn clone(&self) -> Self { + *self + } +} +pub type JET_OSSNAPID = usize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_RECORDLIST { + pub cbStruct: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, + pub cRecord: u32, + pub columnidBookmark: u32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_RECORDLIST {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_RECORDLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_RECPOS { + pub cbStruct: u32, + pub centriesLT: u32, + pub centriesInRange: u32, + pub centriesTotal: u32, +} +impl ::core::marker::Copy for JET_RECPOS {} +impl ::core::clone::Clone for JET_RECPOS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct JET_RECPOS2 { + pub cbStruct: u32, + pub centriesLTDeprecated: u32, + pub centriesInRangeDeprecated: u32, + pub centriesTotalDeprecated: u32, + pub centriesLT: u64, + pub centriesTotal: u64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for JET_RECPOS2 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for JET_RECPOS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(target_arch = "x86")] +pub struct JET_RECPOS2 { + pub cbStruct: u32, + pub centriesLTDeprecated: u32, + pub centriesInRangeDeprecated: u32, + pub centriesTotalDeprecated: u32, + pub centriesLT: u64, + pub centriesTotal: u64, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for JET_RECPOS2 {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for JET_RECPOS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct JET_RECSIZE { + pub cbData: u64, + pub cbLongValueData: u64, + pub cbOverhead: u64, + pub cbLongValueOverhead: u64, + pub cNonTaggedColumns: u64, + pub cTaggedColumns: u64, + pub cLongValues: u64, + pub cMultiValues: u64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for JET_RECSIZE {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for JET_RECSIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(target_arch = "x86")] +pub struct JET_RECSIZE { + pub cbData: u64, + pub cbLongValueData: u64, + pub cbOverhead: u64, + pub cbLongValueOverhead: u64, + pub cNonTaggedColumns: u64, + pub cTaggedColumns: u64, + pub cLongValues: u64, + pub cMultiValues: u64, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for JET_RECSIZE {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for JET_RECSIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct JET_RECSIZE2 { + pub cbData: u64, + pub cbLongValueData: u64, + pub cbOverhead: u64, + pub cbLongValueOverhead: u64, + pub cNonTaggedColumns: u64, + pub cTaggedColumns: u64, + pub cLongValues: u64, + pub cMultiValues: u64, + pub cCompressedColumns: u64, + pub cbDataCompressed: u64, + pub cbLongValueDataCompressed: u64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for JET_RECSIZE2 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for JET_RECSIZE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(target_arch = "x86")] +pub struct JET_RECSIZE2 { + pub cbData: u64, + pub cbLongValueData: u64, + pub cbOverhead: u64, + pub cbLongValueOverhead: u64, + pub cNonTaggedColumns: u64, + pub cTaggedColumns: u64, + pub cLongValues: u64, + pub cMultiValues: u64, + pub cCompressedColumns: u64, + pub cbDataCompressed: u64, + pub cbLongValueDataCompressed: u64, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for JET_RECSIZE2 {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for JET_RECSIZE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_RETINFO { + pub cbStruct: u32, + pub ibLongValue: u32, + pub itagSequence: u32, + pub columnidNextTagged: u32, +} +impl ::core::marker::Copy for JET_RETINFO {} +impl ::core::clone::Clone for JET_RETINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_RETRIEVECOLUMN { + pub columnid: u32, + pub pvData: *mut ::core::ffi::c_void, + pub cbData: u32, + pub cbActual: u32, + pub grbit: u32, + pub ibLongValue: u32, + pub itagSequence: u32, + pub columnidNextTagged: u32, + pub err: i32, +} +impl ::core::marker::Copy for JET_RETRIEVECOLUMN {} +impl ::core::clone::Clone for JET_RETRIEVECOLUMN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_RSTINFO_A { + pub cbStruct: u32, + pub rgrstmap: *mut JET_RSTMAP_A, + pub crstmap: i32, + pub lgposStop: JET_LGPOS, + pub logtimeStop: JET_LOGTIME, + pub pfnStatus: JET_PFNSTATUS, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_RSTINFO_A {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_RSTINFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_RSTINFO_W { + pub cbStruct: u32, + pub rgrstmap: *mut JET_RSTMAP_W, + pub crstmap: i32, + pub lgposStop: JET_LGPOS, + pub logtimeStop: JET_LOGTIME, + pub pfnStatus: JET_PFNSTATUS, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_RSTINFO_W {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_RSTINFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_RSTMAP_A { + pub szDatabaseName: ::windows_sys::core::PSTR, + pub szNewDatabaseName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for JET_RSTMAP_A {} +impl ::core::clone::Clone for JET_RSTMAP_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_RSTMAP_W { + pub szDatabaseName: ::windows_sys::core::PWSTR, + pub szNewDatabaseName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for JET_RSTMAP_W {} +impl ::core::clone::Clone for JET_RSTMAP_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_SETCOLUMN { + pub columnid: u32, + pub pvData: *const ::core::ffi::c_void, + pub cbData: u32, + pub grbit: u32, + pub ibLongValue: u32, + pub itagSequence: u32, + pub err: i32, +} +impl ::core::marker::Copy for JET_SETCOLUMN {} +impl ::core::clone::Clone for JET_SETCOLUMN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_SETINFO { + pub cbStruct: u32, + pub ibLongValue: u32, + pub itagSequence: u32, +} +impl ::core::marker::Copy for JET_SETINFO {} +impl ::core::clone::Clone for JET_SETINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_SETSYSPARAM_A { + pub paramid: u32, + pub lParam: super::StructuredStorage::JET_API_PTR, + pub sz: ::windows_sys::core::PCSTR, + pub err: i32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_SETSYSPARAM_A {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_SETSYSPARAM_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_SETSYSPARAM_W { + pub paramid: u32, + pub lParam: super::StructuredStorage::JET_API_PTR, + pub sz: ::windows_sys::core::PCWSTR, + pub err: i32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_SETSYSPARAM_W {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_SETSYSPARAM_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct JET_SIGNATURE { + pub ulRandom: u32, + pub logtimeCreate: JET_LOGTIME, + pub szComputerName: [u8; 16], +} +impl ::core::marker::Copy for JET_SIGNATURE {} +impl ::core::clone::Clone for JET_SIGNATURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_SNPROG { + pub cbStruct: u32, + pub cunitDone: u32, + pub cunitTotal: u32, +} +impl ::core::marker::Copy for JET_SNPROG {} +impl ::core::clone::Clone for JET_SNPROG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_SPACEHINTS { + pub cbStruct: u32, + pub ulInitialDensity: u32, + pub cbInitial: u32, + pub grbit: u32, + pub ulMaintDensity: u32, + pub ulGrowth: u32, + pub cbMinExtent: u32, + pub cbMaxExtent: u32, +} +impl ::core::marker::Copy for JET_SPACEHINTS {} +impl ::core::clone::Clone for JET_SPACEHINTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_TABLECREATE2_A { + pub cbStruct: u32, + pub szTableName: ::windows_sys::core::PSTR, + pub szTemplateTableName: ::windows_sys::core::PSTR, + pub ulPages: u32, + pub ulDensity: u32, + pub rgcolumncreate: *mut JET_COLUMNCREATE_A, + pub cColumns: u32, + pub rgindexcreate: *mut JET_INDEXCREATE_A, + pub cIndexes: u32, + pub szCallback: ::windows_sys::core::PSTR, + pub cbtyp: u32, + pub grbit: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, + pub cCreated: u32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_TABLECREATE2_A {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_TABLECREATE2_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_TABLECREATE2_W { + pub cbStruct: u32, + pub szTableName: ::windows_sys::core::PWSTR, + pub szTemplateTableName: ::windows_sys::core::PWSTR, + pub ulPages: u32, + pub ulDensity: u32, + pub rgcolumncreate: *mut JET_COLUMNCREATE_W, + pub cColumns: u32, + pub rgindexcreate: *mut JET_INDEXCREATE_W, + pub cIndexes: u32, + pub szCallback: ::windows_sys::core::PWSTR, + pub cbtyp: u32, + pub grbit: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, + pub cCreated: u32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_TABLECREATE2_W {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_TABLECREATE2_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_TABLECREATE3_A { + pub cbStruct: u32, + pub szTableName: ::windows_sys::core::PSTR, + pub szTemplateTableName: ::windows_sys::core::PSTR, + pub ulPages: u32, + pub ulDensity: u32, + pub rgcolumncreate: *mut JET_COLUMNCREATE_A, + pub cColumns: u32, + pub rgindexcreate: *mut JET_INDEXCREATE2_A, + pub cIndexes: u32, + pub szCallback: ::windows_sys::core::PSTR, + pub cbtyp: u32, + pub grbit: u32, + pub pSeqSpacehints: *mut JET_SPACEHINTS, + pub pLVSpacehints: *mut JET_SPACEHINTS, + pub cbSeparateLV: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, + pub cCreated: u32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_TABLECREATE3_A {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_TABLECREATE3_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_TABLECREATE3_W { + pub cbStruct: u32, + pub szTableName: ::windows_sys::core::PWSTR, + pub szTemplateTableName: ::windows_sys::core::PWSTR, + pub ulPages: u32, + pub ulDensity: u32, + pub rgcolumncreate: *mut JET_COLUMNCREATE_W, + pub cColumns: u32, + pub rgindexcreate: *mut JET_INDEXCREATE2_W, + pub cIndexes: u32, + pub szCallback: ::windows_sys::core::PWSTR, + pub cbtyp: u32, + pub grbit: u32, + pub pSeqSpacehints: *mut JET_SPACEHINTS, + pub pLVSpacehints: *mut JET_SPACEHINTS, + pub cbSeparateLV: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, + pub cCreated: u32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_TABLECREATE3_W {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_TABLECREATE3_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_TABLECREATE4_A { + pub cbStruct: u32, + pub szTableName: ::windows_sys::core::PSTR, + pub szTemplateTableName: ::windows_sys::core::PSTR, + pub ulPages: u32, + pub ulDensity: u32, + pub rgcolumncreate: *mut JET_COLUMNCREATE_A, + pub cColumns: u32, + pub rgindexcreate: *mut JET_INDEXCREATE3_A, + pub cIndexes: u32, + pub szCallback: ::windows_sys::core::PSTR, + pub cbtyp: u32, + pub grbit: u32, + pub pSeqSpacehints: *mut JET_SPACEHINTS, + pub pLVSpacehints: *mut JET_SPACEHINTS, + pub cbSeparateLV: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, + pub cCreated: u32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_TABLECREATE4_A {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_TABLECREATE4_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_TABLECREATE4_W { + pub cbStruct: u32, + pub szTableName: ::windows_sys::core::PWSTR, + pub szTemplateTableName: ::windows_sys::core::PWSTR, + pub ulPages: u32, + pub ulDensity: u32, + pub rgcolumncreate: *mut JET_COLUMNCREATE_W, + pub cColumns: u32, + pub rgindexcreate: *mut JET_INDEXCREATE3_W, + pub cIndexes: u32, + pub szCallback: ::windows_sys::core::PWSTR, + pub cbtyp: u32, + pub grbit: u32, + pub pSeqSpacehints: *mut JET_SPACEHINTS, + pub pLVSpacehints: *mut JET_SPACEHINTS, + pub cbSeparateLV: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, + pub cCreated: u32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_TABLECREATE4_W {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_TABLECREATE4_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_TABLECREATE_A { + pub cbStruct: u32, + pub szTableName: ::windows_sys::core::PSTR, + pub szTemplateTableName: ::windows_sys::core::PSTR, + pub ulPages: u32, + pub ulDensity: u32, + pub rgcolumncreate: *mut JET_COLUMNCREATE_A, + pub cColumns: u32, + pub rgindexcreate: *mut JET_INDEXCREATE_A, + pub cIndexes: u32, + pub grbit: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, + pub cCreated: u32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_TABLECREATE_A {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_TABLECREATE_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub struct JET_TABLECREATE_W { + pub cbStruct: u32, + pub szTableName: ::windows_sys::core::PWSTR, + pub szTemplateTableName: ::windows_sys::core::PWSTR, + pub ulPages: u32, + pub ulDensity: u32, + pub rgcolumncreate: *mut JET_COLUMNCREATE_W, + pub cColumns: u32, + pub rgindexcreate: *mut JET_INDEXCREATE_W, + pub cIndexes: u32, + pub grbit: u32, + pub tableid: super::StructuredStorage::JET_TABLEID, + pub cCreated: u32, +} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::marker::Copy for JET_TABLECREATE_W {} +#[cfg(feature = "Win32_Storage_StructuredStorage")] +impl ::core::clone::Clone for JET_TABLECREATE_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_THREADSTATS { + pub cbStruct: u32, + pub cPageReferenced: u32, + pub cPageRead: u32, + pub cPagePreread: u32, + pub cPageDirtied: u32, + pub cPageRedirtied: u32, + pub cLogRecord: u32, + pub cbLogRecord: u32, +} +impl ::core::marker::Copy for JET_THREADSTATS {} +impl ::core::clone::Clone for JET_THREADSTATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct JET_THREADSTATS2 { + pub cbStruct: u32, + pub cPageReferenced: u32, + pub cPageRead: u32, + pub cPagePreread: u32, + pub cPageDirtied: u32, + pub cPageRedirtied: u32, + pub cLogRecord: u32, + pub cbLogRecord: u32, + pub cusecPageCacheMiss: u64, + pub cPageCacheMiss: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for JET_THREADSTATS2 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for JET_THREADSTATS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(target_arch = "x86")] +pub struct JET_THREADSTATS2 { + pub cbStruct: u32, + pub cPageReferenced: u32, + pub cPageRead: u32, + pub cPagePreread: u32, + pub cPageDirtied: u32, + pub cPageRedirtied: u32, + pub cLogRecord: u32, + pub cbLogRecord: u32, + pub cusecPageCacheMiss: u64, + pub cPageCacheMiss: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for JET_THREADSTATS2 {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for JET_THREADSTATS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_TUPLELIMITS { + pub chLengthMin: u32, + pub chLengthMax: u32, + pub chToIndexMax: u32, + pub cchIncrement: u32, + pub ichStart: u32, +} +impl ::core::marker::Copy for JET_TUPLELIMITS {} +impl ::core::clone::Clone for JET_TUPLELIMITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_UNICODEINDEX { + pub lcid: u32, + pub dwMapFlags: u32, +} +impl ::core::marker::Copy for JET_UNICODEINDEX {} +impl ::core::clone::Clone for JET_UNICODEINDEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_UNICODEINDEX2 { + pub szLocaleName: ::windows_sys::core::PWSTR, + pub dwMapFlags: u32, +} +impl ::core::marker::Copy for JET_UNICODEINDEX2 {} +impl ::core::clone::Clone for JET_UNICODEINDEX2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_USERDEFINEDDEFAULT_A { + pub szCallback: ::windows_sys::core::PSTR, + pub pbUserData: *mut u8, + pub cbUserData: u32, + pub szDependantColumns: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for JET_USERDEFINEDDEFAULT_A {} +impl ::core::clone::Clone for JET_USERDEFINEDDEFAULT_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JET_USERDEFINEDDEFAULT_W { + pub szCallback: ::windows_sys::core::PWSTR, + pub pbUserData: *mut u8, + pub cbUserData: u32, + pub szDependantColumns: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for JET_USERDEFINEDDEFAULT_W {} +impl ::core::clone::Clone for JET_USERDEFINEDDEFAULT_W { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub type JET_CALLBACK = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub type JET_PFNDURABLECOMMITCALLBACK = ::core::option::Option i32>; +pub type JET_PFNREALLOC = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +#[cfg(feature = "Win32_Storage_StructuredStorage")] +pub type JET_PFNSTATUS = ::core::option::Option i32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Nvme/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Nvme/mod.rs new file mode 100644 index 000000000..b22b594b8 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Nvme/mod.rs @@ -0,0 +1,5398 @@ +pub const FIRMWARE_ACTIVATION_HISTORY_ENTRY_VERSION_1: u32 = 1u32; +pub const GUID_MFND_CHILD_CONTROLLER_EVENT_LOG_PAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x98bcce18_a5f0_bf35_a544_d97f259d669c); +pub const GUID_MFND_CHILD_CONTROLLER_EVENT_LOG_PAGEGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x98bcce18_a5f0_bf35_a544_d97f259d669c); +pub const GUID_OCP_DEVICE_DEVICE_CAPABILITIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0d054297_e1d1_98c9_5d49_584b913c05b7); +pub const GUID_OCP_DEVICE_DEVICE_CAPABILITIESGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0d054297_e1d1_98c9_5d49_584b913c05b7); +pub const GUID_OCP_DEVICE_ERROR_RECOVERY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2131d944_30fe_ae34_ab4d_fd3dba83195a); +pub const GUID_OCP_DEVICE_ERROR_RECOVERYGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2131d944_30fe_ae34_ab4d_fd3dba83195a); +pub const GUID_OCP_DEVICE_FIRMWARE_ACTIVATION_HISTORY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x769a796d_dab4_a3f6_e24d_b28aacf31cd1); +pub const GUID_OCP_DEVICE_FIRMWARE_ACTIVATION_HISTORYGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x769a796d_dab4_a3f6_e24d_b28aacf31cd1); +pub const GUID_OCP_DEVICE_LATENCY_MONITOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8cc07a92_84d0_9c6c_7043_e6d4585ed485); +pub const GUID_OCP_DEVICE_LATENCY_MONITORGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8cc07a92_84d0_9c6c_7043_e6d4585ed485); +pub const GUID_OCP_DEVICE_SMART_INFORMATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2810afc5_bfea_a4f2_9c4f_6f7cc914d5af); +pub const GUID_OCP_DEVICE_SMART_INFORMATIONGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2810afc5_bfea_a4f2_9c4f_6f7cc914d5af); +pub const GUID_OCP_DEVICE_TCG_CONFIGURATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbd244006_e07e_83e6_c047_54fa9d2ae054); +pub const GUID_OCP_DEVICE_TCG_CONFIGURATIONGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbd244006_e07e_83e6_c047_54fa9d2ae054); +pub const GUID_OCP_DEVICE_TCG_HISTORY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x704b513e_09c6_9490_274e_d0969690d788); +pub const GUID_OCP_DEVICE_TCG_HISTORYGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x704b513e_09c6_9490_274e_d0969690d788); +pub const GUID_OCP_DEVICE_UNSUPPORTED_REQUIREMENTS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e9c722f_2399_bb2c_6348_32d0b798bbc7); +pub const GUID_OCP_DEVICE_UNSUPPORTED_REQUIREMENTSGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e9c722f_2399_bb2c_6348_32d0b798bbc7); +pub const GUID_WCS_DEVICE_ERROR_RECOVERY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2131d944_30fe_ae34_ab4d_fd3dba83195a); +pub const GUID_WCS_DEVICE_ERROR_RECOVERYGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2131d944_30fe_ae34_ab4d_fd3dba83195a); +pub const GUID_WCS_DEVICE_SMART_ATTRIBUTES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2810afc5_bfea_a4f2_9c4f_6f7cc914d5af); +pub const GUID_WCS_DEVICE_SMART_ATTRIBUTESGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2810afc5_bfea_a4f2_9c4f_6f7cc914d5af); +pub const NVME_ACCESS_FREQUENCY_FR_WRITE_FR_READ: NVME_ACCESS_FREQUENCIES = 5i32; +pub const NVME_ACCESS_FREQUENCY_FR_WRITE_INFR_READ: NVME_ACCESS_FREQUENCIES = 4i32; +pub const NVME_ACCESS_FREQUENCY_INFR_WRITE_FR_READ: NVME_ACCESS_FREQUENCIES = 3i32; +pub const NVME_ACCESS_FREQUENCY_INFR_WRITE_INFR_READ: NVME_ACCESS_FREQUENCIES = 2i32; +pub const NVME_ACCESS_FREQUENCY_NONE: NVME_ACCESS_FREQUENCIES = 0i32; +pub const NVME_ACCESS_FREQUENCY_ONE_TIME_READ: NVME_ACCESS_FREQUENCIES = 6i32; +pub const NVME_ACCESS_FREQUENCY_SPECULATIVE_READ: NVME_ACCESS_FREQUENCIES = 7i32; +pub const NVME_ACCESS_FREQUENCY_TYPICAL: NVME_ACCESS_FREQUENCIES = 1i32; +pub const NVME_ACCESS_FREQUENCY_WILL_BE_OVERWRITTEN: NVME_ACCESS_FREQUENCIES = 8i32; +pub const NVME_ACCESS_LATENCY_IDLE: NVME_ACCESS_LATENCIES = 1i32; +pub const NVME_ACCESS_LATENCY_LOW: NVME_ACCESS_LATENCIES = 3i32; +pub const NVME_ACCESS_LATENCY_NONE: NVME_ACCESS_LATENCIES = 0i32; +pub const NVME_ACCESS_LATENCY_NORMAL: NVME_ACCESS_LATENCIES = 2i32; +pub const NVME_ADMIN_COMMAND_ABORT: NVME_ADMIN_COMMANDS = 8i32; +pub const NVME_ADMIN_COMMAND_ASYNC_EVENT_REQUEST: NVME_ADMIN_COMMANDS = 12i32; +pub const NVME_ADMIN_COMMAND_CREATE_IO_CQ: NVME_ADMIN_COMMANDS = 5i32; +pub const NVME_ADMIN_COMMAND_CREATE_IO_SQ: NVME_ADMIN_COMMANDS = 1i32; +pub const NVME_ADMIN_COMMAND_DELETE_IO_CQ: NVME_ADMIN_COMMANDS = 4i32; +pub const NVME_ADMIN_COMMAND_DELETE_IO_SQ: NVME_ADMIN_COMMANDS = 0i32; +pub const NVME_ADMIN_COMMAND_DEVICE_SELF_TEST: NVME_ADMIN_COMMANDS = 20i32; +pub const NVME_ADMIN_COMMAND_DIRECTIVE_RECEIVE: NVME_ADMIN_COMMANDS = 26i32; +pub const NVME_ADMIN_COMMAND_DIRECTIVE_SEND: NVME_ADMIN_COMMANDS = 25i32; +pub const NVME_ADMIN_COMMAND_DOORBELL_BUFFER_CONFIG: NVME_ADMIN_COMMANDS = 124i32; +pub const NVME_ADMIN_COMMAND_FIRMWARE_ACTIVATE: NVME_ADMIN_COMMANDS = 16i32; +pub const NVME_ADMIN_COMMAND_FIRMWARE_COMMIT: NVME_ADMIN_COMMANDS = 16i32; +pub const NVME_ADMIN_COMMAND_FIRMWARE_IMAGE_DOWNLOAD: NVME_ADMIN_COMMANDS = 17i32; +pub const NVME_ADMIN_COMMAND_FORMAT_NVM: NVME_ADMIN_COMMANDS = 128i32; +pub const NVME_ADMIN_COMMAND_GET_FEATURES: NVME_ADMIN_COMMANDS = 10i32; +pub const NVME_ADMIN_COMMAND_GET_LBA_STATUS: NVME_ADMIN_COMMANDS = 134i32; +pub const NVME_ADMIN_COMMAND_GET_LOG_PAGE: NVME_ADMIN_COMMANDS = 2i32; +pub const NVME_ADMIN_COMMAND_IDENTIFY: NVME_ADMIN_COMMANDS = 6i32; +pub const NVME_ADMIN_COMMAND_NAMESPACE_ATTACHMENT: NVME_ADMIN_COMMANDS = 21i32; +pub const NVME_ADMIN_COMMAND_NAMESPACE_MANAGEMENT: NVME_ADMIN_COMMANDS = 13i32; +pub const NVME_ADMIN_COMMAND_NVME_MI_RECEIVE: NVME_ADMIN_COMMANDS = 30i32; +pub const NVME_ADMIN_COMMAND_NVME_MI_SEND: NVME_ADMIN_COMMANDS = 29i32; +pub const NVME_ADMIN_COMMAND_SANITIZE: NVME_ADMIN_COMMANDS = 132i32; +pub const NVME_ADMIN_COMMAND_SECURITY_RECEIVE: NVME_ADMIN_COMMANDS = 130i32; +pub const NVME_ADMIN_COMMAND_SECURITY_SEND: NVME_ADMIN_COMMANDS = 129i32; +pub const NVME_ADMIN_COMMAND_SET_FEATURES: NVME_ADMIN_COMMANDS = 9i32; +pub const NVME_ADMIN_COMMAND_VIRTUALIZATION_MANAGEMENT: NVME_ADMIN_COMMANDS = 28i32; +pub const NVME_AMS_ROUND_ROBIN: NVME_AMS_OPTION = 0i32; +pub const NVME_AMS_WEIGHTED_ROUND_ROBIN_URGENT: NVME_AMS_OPTION = 1i32; +pub const NVME_ASYNC_ERROR_DIAG_FAILURE: NVME_ASYNC_EVENT_ERROR_STATUS_CODES = 2i32; +pub const NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR: NVME_ASYNC_EVENT_ERROR_STATUS_CODES = 5i32; +pub const NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE: NVME_ASYNC_EVENT_ERROR_STATUS_CODES = 1i32; +pub const NVME_ASYNC_ERROR_INVALID_SUBMISSION_QUEUE: NVME_ASYNC_EVENT_ERROR_STATUS_CODES = 0i32; +pub const NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR: NVME_ASYNC_EVENT_ERROR_STATUS_CODES = 3i32; +pub const NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR: NVME_ASYNC_EVENT_ERROR_STATUS_CODES = 4i32; +pub const NVME_ASYNC_EVENT_TYPE_ERROR_STATUS: NVME_ASYNC_EVENT_TYPES = 0i32; +pub const NVME_ASYNC_EVENT_TYPE_HEALTH_STATUS: NVME_ASYNC_EVENT_TYPES = 1i32; +pub const NVME_ASYNC_EVENT_TYPE_IO_COMMAND_SET_STATUS: NVME_ASYNC_EVENT_TYPES = 6i32; +pub const NVME_ASYNC_EVENT_TYPE_NOTICE: NVME_ASYNC_EVENT_TYPES = 2i32; +pub const NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC: NVME_ASYNC_EVENT_TYPES = 7i32; +pub const NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC_DEVICE_PANIC: NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC_CODES = 1i32; +pub const NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC_RESERVED: NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC_CODES = 0i32; +pub const NVME_ASYNC_HEALTH_NVM_SUBSYSTEM_RELIABILITY: NVME_ASYNC_EVENT_HEALTH_STATUS_CODES = 0i32; +pub const NVME_ASYNC_HEALTH_SPARE_BELOW_THRESHOLD: NVME_ASYNC_EVENT_HEALTH_STATUS_CODES = 2i32; +pub const NVME_ASYNC_HEALTH_TEMPERATURE_THRESHOLD: NVME_ASYNC_EVENT_HEALTH_STATUS_CODES = 1i32; +pub const NVME_ASYNC_IO_CMD_SANITIZE_OPERATION_COMPLETED: NVME_ASYNC_EVENT_IO_COMMAND_SET_STATUS_CODES = 1i32; +pub const NVME_ASYNC_IO_CMD_SANITIZE_OPERATION_COMPLETED_WITH_UNEXPECTED_DEALLOCATION: NVME_ASYNC_EVENT_IO_COMMAND_SET_STATUS_CODES = 2i32; +pub const NVME_ASYNC_IO_CMD_SET_RESERVATION_LOG_PAGE_AVAILABLE: NVME_ASYNC_EVENT_IO_COMMAND_SET_STATUS_CODES = 0i32; +pub const NVME_ASYNC_NOTICE_ASYMMETRIC_ACCESS_CHANGE: NVME_ASYNC_EVENT_NOTICE_CODES = 3i32; +pub const NVME_ASYNC_NOTICE_ENDURANCE_GROUP_EVENT_AGGREGATE_LOG_CHANGE: NVME_ASYNC_EVENT_NOTICE_CODES = 6i32; +pub const NVME_ASYNC_NOTICE_FIRMWARE_ACTIVATION_STARTING: NVME_ASYNC_EVENT_NOTICE_CODES = 1i32; +pub const NVME_ASYNC_NOTICE_LBA_STATUS_INFORMATION_ALERT: NVME_ASYNC_EVENT_NOTICE_CODES = 5i32; +pub const NVME_ASYNC_NOTICE_NAMESPACE_ATTRIBUTE_CHANGED: NVME_ASYNC_EVENT_NOTICE_CODES = 0i32; +pub const NVME_ASYNC_NOTICE_PREDICTABLE_LATENCY_EVENT_AGGREGATE_LOG_CHANGE: NVME_ASYNC_EVENT_NOTICE_CODES = 4i32; +pub const NVME_ASYNC_NOTICE_TELEMETRY_LOG_CHANGED: NVME_ASYNC_EVENT_NOTICE_CODES = 2i32; +pub const NVME_ASYNC_NOTICE_ZONE_DESCRIPTOR_CHANGED: NVME_ASYNC_EVENT_NOTICE_CODES = 239i32; +pub const NVME_CC_SHN_ABRUPT_SHUTDOWN: NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS = 2i32; +pub const NVME_CC_SHN_NORMAL_SHUTDOWN: NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS = 1i32; +pub const NVME_CC_SHN_NO_NOTIFICATION: NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS = 0i32; +pub const NVME_CMBSZ_SIZE_UNITS_16MB: NVME_CMBSZ_SIZE_UNITS = 3i32; +pub const NVME_CMBSZ_SIZE_UNITS_1MB: NVME_CMBSZ_SIZE_UNITS = 2i32; +pub const NVME_CMBSZ_SIZE_UNITS_256MB: NVME_CMBSZ_SIZE_UNITS = 4i32; +pub const NVME_CMBSZ_SIZE_UNITS_4GB: NVME_CMBSZ_SIZE_UNITS = 5i32; +pub const NVME_CMBSZ_SIZE_UNITS_4KB: NVME_CMBSZ_SIZE_UNITS = 0i32; +pub const NVME_CMBSZ_SIZE_UNITS_64GB: NVME_CMBSZ_SIZE_UNITS = 6i32; +pub const NVME_CMBSZ_SIZE_UNITS_64KB: NVME_CMBSZ_SIZE_UNITS = 1i32; +pub const NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMIT_NONE: NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMITS = 0i32; +pub const NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMIT_SINGLE_PER_CONTROLLER: NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMITS = 2i32; +pub const NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMIT_SINGLE_PER_NAMESPACE: NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMITS = 1i32; +pub const NVME_COMMAND_SET_KEY_VALUE: NVME_COMMAND_SET_IDENTIFIERS = 1i32; +pub const NVME_COMMAND_SET_NVM: NVME_COMMAND_SET_IDENTIFIERS = 0i32; +pub const NVME_COMMAND_SET_ZONED_NAMESPACE: NVME_COMMAND_SET_IDENTIFIERS = 2i32; +pub const NVME_CONTROLLER_METADATA_CHIPSET_DRIVER_NAME: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 8i32; +pub const NVME_CONTROLLER_METADATA_CHIPSET_DRIVER_VERSION: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 9i32; +pub const NVME_CONTROLLER_METADATA_DISPLAY_DRIVER_NAME: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 14i32; +pub const NVME_CONTROLLER_METADATA_DISPLAY_DRIVER_VERSION: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 15i32; +pub const NVME_CONTROLLER_METADATA_FIRMWARE_VERSION: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 12i32; +pub const NVME_CONTROLLER_METADATA_HOST_DETERMINED_FAILURE_RECORD: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 16i32; +pub const NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_CONTROLLER_NAME: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 1i32; +pub const NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_DRIVER_FILENAME: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 13i32; +pub const NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_DRIVER_NAME: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 2i32; +pub const NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_DRIVER_VERSION: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 3i32; +pub const NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_NAME_AND_BUILD: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 10i32; +pub const NVME_CONTROLLER_METADATA_PREBOOT_CONTROLLER_NAME: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 4i32; +pub const NVME_CONTROLLER_METADATA_PREBOOT_DRIVER_NAME: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 5i32; +pub const NVME_CONTROLLER_METADATA_PREBOOT_DRIVER_VERSION: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 6i32; +pub const NVME_CONTROLLER_METADATA_SYSTEM_PROCESSOR_MODEL: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 7i32; +pub const NVME_CONTROLLER_METADATA_SYSTEM_PRODUCT_NAME: NVME_CONTROLLER_METADATA_ELEMENT_TYPES = 11i32; +pub const NVME_CSS_ADMIN_COMMAND_SET_ONLY: NVME_CSS_COMMAND_SETS = 7i32; +pub const NVME_CSS_ALL_SUPPORTED_IO_COMMAND_SET: NVME_CSS_COMMAND_SETS = 6i32; +pub const NVME_CSS_NVM_COMMAND_SET: NVME_CSS_COMMAND_SETS = 0i32; +pub const NVME_CSTS_SHST_NO_SHUTDOWN: NVME_CSTS_SHST_SHUTDOWN_STATUS = 0i32; +pub const NVME_CSTS_SHST_SHUTDOWN_COMPLETED: NVME_CSTS_SHST_SHUTDOWN_STATUS = 2i32; +pub const NVME_CSTS_SHST_SHUTDOWN_IN_PROCESS: NVME_CSTS_SHST_SHUTDOWN_STATUS = 1i32; +pub const NVME_DIRECTIVE_RECEIVE_IDENTIFY_OPERATION_RETURN_PARAMETERS: NVME_DIRECTIVE_RECEIVE_IDENTIFY_OPERATIONS = 1i32; +pub const NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATION_ALLOCATE_RESOURCES: NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATIONS = 3i32; +pub const NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATION_GET_STATUS: NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATIONS = 2i32; +pub const NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATION_RETURN_PARAMETERS: NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATIONS = 1i32; +pub const NVME_DIRECTIVE_SEND_IDENTIFY_OPERATION_ENABLE_DIRECTIVE: NVME_DIRECTIVE_SEND_IDENTIFY_OPERATIONS = 1i32; +pub const NVME_DIRECTIVE_SEND_STREAMS_OPERATION_RELEASE_IDENTIFIER: NVME_DIRECTIVE_SEND_STREAMS_OPERATIONS = 1i32; +pub const NVME_DIRECTIVE_SEND_STREAMS_OPERATION_RELEASE_RESOURCES: NVME_DIRECTIVE_SEND_STREAMS_OPERATIONS = 2i32; +pub const NVME_DIRECTIVE_TYPE_IDENTIFY: NVME_DIRECTIVE_TYPES = 0i32; +pub const NVME_DIRECTIVE_TYPE_STREAMS: NVME_DIRECTIVE_TYPES = 1i32; +pub const NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_CPU_CONTROLLER_HANG: NVME_ERROR_INJECTION_TYPES = 1i32; +pub const NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_DRAM_CORRUPTION_CRITICAL: NVME_ERROR_INJECTION_TYPES = 5i32; +pub const NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_DRAM_CORRUPTION_NONCRITICAL: NVME_ERROR_INJECTION_TYPES = 6i32; +pub const NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_HW_MALFUNCTION: NVME_ERROR_INJECTION_TYPES = 9i32; +pub const NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_LOGICAL_FW_ERROR: NVME_ERROR_INJECTION_TYPES = 4i32; +pub const NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_NAND_CORRUPTION: NVME_ERROR_INJECTION_TYPES = 7i32; +pub const NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_NAND_HANG: NVME_ERROR_INJECTION_TYPES = 2i32; +pub const NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_PLP_DEFECT: NVME_ERROR_INJECTION_TYPES = 3i32; +pub const NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_SRAM_CORRUPTION: NVME_ERROR_INJECTION_TYPES = 8i32; +pub const NVME_ERROR_INJECTION_TYPE_MAX: NVME_ERROR_INJECTION_TYPES = 65535i32; +pub const NVME_ERROR_INJECTION_TYPE_RESERVED0: NVME_ERROR_INJECTION_TYPES = 0i32; +pub const NVME_ERROR_INJECTION_TYPE_RESERVED1: NVME_ERROR_INJECTION_TYPES = 10i32; +pub const NVME_EXTENDED_HOST_IDENTIFIER_SIZE: u32 = 16u32; +pub const NVME_FEATURE_ARBITRATION: NVME_FEATURES = 1i32; +pub const NVME_FEATURE_ASYNC_EVENT_CONFIG: NVME_FEATURES = 11i32; +pub const NVME_FEATURE_AUTONOMOUS_POWER_STATE_TRANSITION: NVME_FEATURES = 12i32; +pub const NVME_FEATURE_CLEAR_FW_UPDATE_HISTORY: NVME_FEATURES = 193i32; +pub const NVME_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS: NVME_FEATURES = 195i32; +pub const NVME_FEATURE_CONTROLLER_METADATA: NVME_FEATURES = 126i32; +pub const NVME_FEATURE_ENABLE_IEEE1667_SILO: NVME_FEATURES = 196i32; +pub const NVME_FEATURE_ENDURANCE_GROUP_EVENT_CONFIG: NVME_FEATURES = 24i32; +pub const NVME_FEATURE_ENHANCED_CONTROLLER_METADATA: NVME_FEATURES = 125i32; +pub const NVME_FEATURE_ERROR_INJECTION: NVME_FEATURES = 192i32; +pub const NVME_FEATURE_ERROR_RECOVERY: NVME_FEATURES = 5i32; +pub const NVME_FEATURE_HOST_BEHAVIOR_SUPPORT: NVME_FEATURES = 22i32; +pub const NVME_FEATURE_HOST_CONTROLLED_THERMAL_MANAGEMENT: NVME_FEATURES = 16i32; +pub const NVME_FEATURE_HOST_MEMORY_BUFFER: NVME_FEATURES = 13i32; +pub const NVME_FEATURE_INTERRUPT_COALESCING: NVME_FEATURES = 8i32; +pub const NVME_FEATURE_INTERRUPT_VECTOR_CONFIG: NVME_FEATURES = 9i32; +pub const NVME_FEATURE_IO_COMMAND_SET_PROFILE: NVME_FEATURES = 25i32; +pub const NVME_FEATURE_KEEP_ALIVE: NVME_FEATURES = 15i32; +pub const NVME_FEATURE_LBA_RANGE_TYPE: NVME_FEATURES = 3i32; +pub const NVME_FEATURE_LBA_STATUS_INFORMATION_REPORT_INTERVAL: NVME_FEATURES = 21i32; +pub const NVME_FEATURE_NAMESPACE_METADATA: NVME_FEATURES = 127i32; +pub const NVME_FEATURE_NONOPERATIONAL_POWER_STATE: NVME_FEATURES = 17i32; +pub const NVME_FEATURE_NUMBER_OF_QUEUES: NVME_FEATURES = 7i32; +pub const NVME_FEATURE_NVM_HOST_IDENTIFIER: NVME_FEATURES = 129i32; +pub const NVME_FEATURE_NVM_NAMESPACE_WRITE_PROTECTION_CONFIG: NVME_FEATURES = 132i32; +pub const NVME_FEATURE_NVM_RESERVATION_NOTIFICATION_MASK: NVME_FEATURES = 130i32; +pub const NVME_FEATURE_NVM_RESERVATION_PERSISTANCE: NVME_FEATURES = 131i32; +pub const NVME_FEATURE_NVM_SOFTWARE_PROGRESS_MARKER: NVME_FEATURES = 128i32; +pub const NVME_FEATURE_PLP_HEALTH_MONITOR: NVME_FEATURES = 197i32; +pub const NVME_FEATURE_POWER_MANAGEMENT: NVME_FEATURES = 2i32; +pub const NVME_FEATURE_PREDICTABLE_LATENCY_MODE_CONFIG: NVME_FEATURES = 19i32; +pub const NVME_FEATURE_PREDICTABLE_LATENCY_MODE_WINDOW: NVME_FEATURES = 20i32; +pub const NVME_FEATURE_READONLY_WRITETHROUGH_MODE: NVME_FEATURES = 194i32; +pub const NVME_FEATURE_READ_RECOVERY_LEVEL_CONFIG: NVME_FEATURES = 18i32; +pub const NVME_FEATURE_SANITIZE_CONFIG: NVME_FEATURES = 23i32; +pub const NVME_FEATURE_TEMPERATURE_THRESHOLD: NVME_FEATURES = 4i32; +pub const NVME_FEATURE_TIMESTAMP: NVME_FEATURES = 14i32; +pub const NVME_FEATURE_VALUE_CURRENT: NVME_FEATURE_VALUE_CODES = 0i32; +pub const NVME_FEATURE_VALUE_DEFAULT: NVME_FEATURE_VALUE_CODES = 1i32; +pub const NVME_FEATURE_VALUE_SAVED: NVME_FEATURE_VALUE_CODES = 2i32; +pub const NVME_FEATURE_VALUE_SUPPORTED_CAPABILITIES: NVME_FEATURE_VALUE_CODES = 3i32; +pub const NVME_FEATURE_VOLATILE_WRITE_CACHE: NVME_FEATURES = 6i32; +pub const NVME_FEATURE_WRITE_ATOMICITY: NVME_FEATURES = 10i32; +pub const NVME_FIRMWARE_ACTIVATE_ACTION_ACTIVATE: NVME_FIRMWARE_ACTIVATE_ACTIONS = 2i32; +pub const NVME_FIRMWARE_ACTIVATE_ACTION_DOWNLOAD_TO_SLOT: NVME_FIRMWARE_ACTIVATE_ACTIONS = 0i32; +pub const NVME_FIRMWARE_ACTIVATE_ACTION_DOWNLOAD_TO_SLOT_AND_ACTIVATE: NVME_FIRMWARE_ACTIVATE_ACTIONS = 1i32; +pub const NVME_FIRMWARE_ACTIVATE_ACTION_DOWNLOAD_TO_SLOT_AND_ACTIVATE_IMMEDIATE: NVME_FIRMWARE_ACTIVATE_ACTIONS = 3i32; +pub const NVME_FUSED_OPERATION_FIRST_CMD: NVME_FUSED_OPERATION_CODES = 1i32; +pub const NVME_FUSED_OPERATION_NORMAL: NVME_FUSED_OPERATION_CODES = 0i32; +pub const NVME_FUSED_OPERATION_SECOND_CMD: NVME_FUSED_OPERATION_CODES = 2i32; +pub const NVME_HOST_IDENTIFIER_SIZE: u32 = 8u32; +pub const NVME_HOST_METADATA_ADD_ENTRY_MULTIPLE: NVME_HOST_METADATA_ELEMENT_ACTIONS = 2i32; +pub const NVME_HOST_METADATA_ADD_REPLACE_ENTRY: NVME_HOST_METADATA_ELEMENT_ACTIONS = 0i32; +pub const NVME_HOST_METADATA_DELETE_ENTRY_MULTIPLE: NVME_HOST_METADATA_ELEMENT_ACTIONS = 1i32; +pub const NVME_IDENTIFIER_TYPE_CSI: NVME_IDENTIFIER_TYPE = 4i32; +pub const NVME_IDENTIFIER_TYPE_CSI_LENGTH: NVME_IDENTIFIER_TYPE_LENGTH = 1i32; +pub const NVME_IDENTIFIER_TYPE_EUI64: NVME_IDENTIFIER_TYPE = 1i32; +pub const NVME_IDENTIFIER_TYPE_EUI64_LENGTH: NVME_IDENTIFIER_TYPE_LENGTH = 8i32; +pub const NVME_IDENTIFIER_TYPE_NGUID: NVME_IDENTIFIER_TYPE = 2i32; +pub const NVME_IDENTIFIER_TYPE_NGUID_LENGTH: NVME_IDENTIFIER_TYPE_LENGTH = 16i32; +pub const NVME_IDENTIFIER_TYPE_UUID: NVME_IDENTIFIER_TYPE = 3i32; +pub const NVME_IDENTIFIER_TYPE_UUID_LENGTH: NVME_IDENTIFIER_TYPE_LENGTH = 16i32; +pub const NVME_IDENTIFY_CNS_ACTIVE_NAMESPACES: NVME_IDENTIFY_CNS_CODES = 2i32; +pub const NVME_IDENTIFY_CNS_ACTIVE_NAMESPACE_LIST_IO_COMMAND_SET: NVME_IDENTIFY_CNS_CODES = 7i32; +pub const NVME_IDENTIFY_CNS_ALLOCATED_NAMESPACE: NVME_IDENTIFY_CNS_CODES = 17i32; +pub const NVME_IDENTIFY_CNS_ALLOCATED_NAMESPACE_IO_COMMAND_SET: NVME_IDENTIFY_CNS_CODES = 27i32; +pub const NVME_IDENTIFY_CNS_ALLOCATED_NAMESPACE_LIST: NVME_IDENTIFY_CNS_CODES = 16i32; +pub const NVME_IDENTIFY_CNS_ALLOCATED_NAMSPACE_LIST_IO_COMMAND_SET: NVME_IDENTIFY_CNS_CODES = 26i32; +pub const NVME_IDENTIFY_CNS_CONTROLLER: NVME_IDENTIFY_CNS_CODES = 1i32; +pub const NVME_IDENTIFY_CNS_CONTROLLER_LIST_OF_NSID: NVME_IDENTIFY_CNS_CODES = 18i32; +pub const NVME_IDENTIFY_CNS_CONTROLLER_LIST_OF_NVM_SUBSYSTEM: NVME_IDENTIFY_CNS_CODES = 19i32; +pub const NVME_IDENTIFY_CNS_DESCRIPTOR_NAMESPACE: NVME_IDENTIFY_CNS_CODES = 3i32; +pub const NVME_IDENTIFY_CNS_DESCRIPTOR_NAMESPACE_SIZE: u32 = 4096u32; +pub const NVME_IDENTIFY_CNS_DOMAIN_LIST: NVME_IDENTIFY_CNS_CODES = 24i32; +pub const NVME_IDENTIFY_CNS_ENDURANCE_GROUP_LIST: NVME_IDENTIFY_CNS_CODES = 25i32; +pub const NVME_IDENTIFY_CNS_IO_COMMAND_SET: NVME_IDENTIFY_CNS_CODES = 28i32; +pub const NVME_IDENTIFY_CNS_NAMESPACE_GRANULARITY_LIST: NVME_IDENTIFY_CNS_CODES = 22i32; +pub const NVME_IDENTIFY_CNS_NVM_SET: NVME_IDENTIFY_CNS_CODES = 4i32; +pub const NVME_IDENTIFY_CNS_PRIMARY_CONTROLLER_CAPABILITIES: NVME_IDENTIFY_CNS_CODES = 20i32; +pub const NVME_IDENTIFY_CNS_SECONDARY_CONTROLLER_LIST: NVME_IDENTIFY_CNS_CODES = 21i32; +pub const NVME_IDENTIFY_CNS_SPECIFIC_CONTROLLER_IO_COMMAND_SET: NVME_IDENTIFY_CNS_CODES = 6i32; +pub const NVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE: NVME_IDENTIFY_CNS_CODES = 0i32; +pub const NVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE_IO_COMMAND_SET: NVME_IDENTIFY_CNS_CODES = 5i32; +pub const NVME_IDENTIFY_CNS_UUID_LIST: NVME_IDENTIFY_CNS_CODES = 23i32; +pub const NVME_IO_COMMAND_SET_COMBINATION_REJECTED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 43i32; +pub const NVME_IO_COMMAND_SET_INVALID: NVME_STATUS_COMMAND_SPECIFIC_CODES = 44i32; +pub const NVME_IO_COMMAND_SET_NOT_ENABLED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 42i32; +pub const NVME_IO_COMMAND_SET_NOT_SUPPORTED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 41i32; +pub const NVME_LBA_RANGE_TYPE_CACHE: NVME_LBA_RANGE_TYPES = 3i32; +pub const NVME_LBA_RANGE_TYPE_FILESYSTEM: NVME_LBA_RANGE_TYPES = 1i32; +pub const NVME_LBA_RANGE_TYPE_PAGE_SWAP_FILE: NVME_LBA_RANGE_TYPES = 4i32; +pub const NVME_LBA_RANGE_TYPE_RAID: NVME_LBA_RANGE_TYPES = 2i32; +pub const NVME_LBA_RANGE_TYPE_RESERVED: NVME_LBA_RANGE_TYPES = 0i32; +pub const NVME_LOG_PAGE_ASYMMETRIC_NAMESPACE_ACCESS: NVME_LOG_PAGES = 12i32; +pub const NVME_LOG_PAGE_CHANGED_NAMESPACE_LIST: NVME_LOG_PAGES = 4i32; +pub const NVME_LOG_PAGE_CHANGED_ZONE_LIST: NVME_LOG_PAGES = 191i32; +pub const NVME_LOG_PAGE_COMMAND_EFFECTS: NVME_LOG_PAGES = 5i32; +pub const NVME_LOG_PAGE_DEVICE_SELF_TEST: NVME_LOG_PAGES = 6i32; +pub const NVME_LOG_PAGE_ENDURANCE_GROUP_EVENT_AGGREGATE: NVME_LOG_PAGES = 15i32; +pub const NVME_LOG_PAGE_ENDURANCE_GROUP_INFORMATION: NVME_LOG_PAGES = 9i32; +pub const NVME_LOG_PAGE_ERROR_INFO: NVME_LOG_PAGES = 1i32; +pub const NVME_LOG_PAGE_FIRMWARE_SLOT_INFO: NVME_LOG_PAGES = 3i32; +pub const NVME_LOG_PAGE_HEALTH_INFO: NVME_LOG_PAGES = 2i32; +pub const NVME_LOG_PAGE_LBA_STATUS_INFORMATION: NVME_LOG_PAGES = 14i32; +pub const NVME_LOG_PAGE_OCP_DEVICE_CAPABILITIES: NVME_VENDOR_LOG_PAGES = 196i32; +pub const NVME_LOG_PAGE_OCP_DEVICE_ERROR_RECOVERY: NVME_VENDOR_LOG_PAGES = 193i32; +pub const NVME_LOG_PAGE_OCP_DEVICE_SMART_INFORMATION: NVME_VENDOR_LOG_PAGES = 192i32; +pub const NVME_LOG_PAGE_OCP_FIRMWARE_ACTIVATION_HISTORY: NVME_VENDOR_LOG_PAGES = 194i32; +pub const NVME_LOG_PAGE_OCP_LATENCY_MONITOR: NVME_VENDOR_LOG_PAGES = 195i32; +pub const NVME_LOG_PAGE_OCP_TCG_CONFIGURATION: NVME_VENDOR_LOG_PAGES = 200i32; +pub const NVME_LOG_PAGE_OCP_TCG_HISTORY: NVME_VENDOR_LOG_PAGES = 201i32; +pub const NVME_LOG_PAGE_OCP_UNSUPPORTED_REQUIREMENTS: NVME_VENDOR_LOG_PAGES = 197i32; +pub const NVME_LOG_PAGE_PERSISTENT_EVENT_LOG: NVME_LOG_PAGES = 13i32; +pub const NVME_LOG_PAGE_PREDICTABLE_LATENCY_EVENT_AGGREGATE: NVME_LOG_PAGES = 11i32; +pub const NVME_LOG_PAGE_PREDICTABLE_LATENCY_NVM_SET: NVME_LOG_PAGES = 10i32; +pub const NVME_LOG_PAGE_RESERVATION_NOTIFICATION: NVME_LOG_PAGES = 128i32; +pub const NVME_LOG_PAGE_SANITIZE_STATUS: NVME_LOG_PAGES = 129i32; +pub const NVME_LOG_PAGE_TELEMETRY_CTLR_INITIATED: NVME_LOG_PAGES = 8i32; +pub const NVME_LOG_PAGE_TELEMETRY_HOST_INITIATED: NVME_LOG_PAGES = 7i32; +pub const NVME_MAX_HOST_IDENTIFIER_SIZE: u32 = 16u32; +pub const NVME_MAX_LOG_SIZE: u32 = 4096u32; +pub const NVME_MEDIA_ADDITIONALLY_MODIFIED_AFTER_SANITIZE_NOT_DEFINED: NVME_NO_DEALLOCATE_MODIFIES_MEDIA_AFTER_SANITIZE = 0i32; +pub const NVME_MEDIA_ADDITIONALLY_MOFIDIED_AFTER_SANITIZE: NVME_NO_DEALLOCATE_MODIFIES_MEDIA_AFTER_SANITIZE = 2i32; +pub const NVME_MEDIA_NOT_ADDITIONALLY_MODIFIED_AFTER_SANITIZE: NVME_NO_DEALLOCATE_MODIFIES_MEDIA_AFTER_SANITIZE = 1i32; +pub const NVME_NAMESPACE_ALL: u32 = 4294967295u32; +pub const NVME_NAMESPACE_METADATA_OPERATING_SYSTEM_NAMESPACE_NAME: NVME_NAMESPACE_METADATA_ELEMENT_TYPES = 1i32; +pub const NVME_NAMESPACE_METADATA_OPERATING_SYSTEM_NAMESPACE_NAME_QUALIFIER_1: NVME_NAMESPACE_METADATA_ELEMENT_TYPES = 3i32; +pub const NVME_NAMESPACE_METADATA_OPERATING_SYSTEM_NAMESPACE_NAME_QUALIFIER_2: NVME_NAMESPACE_METADATA_ELEMENT_TYPES = 4i32; +pub const NVME_NAMESPACE_METADATA_PREBOOT_NAMESPACE_NAME: NVME_NAMESPACE_METADATA_ELEMENT_TYPES = 2i32; +pub const NVME_NVM_COMMAND_COMPARE: NVME_NVM_COMMANDS = 5i32; +pub const NVME_NVM_COMMAND_COPY: NVME_NVM_COMMANDS = 25i32; +pub const NVME_NVM_COMMAND_DATASET_MANAGEMENT: NVME_NVM_COMMANDS = 9i32; +pub const NVME_NVM_COMMAND_FLUSH: NVME_NVM_COMMANDS = 0i32; +pub const NVME_NVM_COMMAND_READ: NVME_NVM_COMMANDS = 2i32; +pub const NVME_NVM_COMMAND_RESERVATION_ACQUIRE: NVME_NVM_COMMANDS = 17i32; +pub const NVME_NVM_COMMAND_RESERVATION_REGISTER: NVME_NVM_COMMANDS = 13i32; +pub const NVME_NVM_COMMAND_RESERVATION_RELEASE: NVME_NVM_COMMANDS = 21i32; +pub const NVME_NVM_COMMAND_RESERVATION_REPORT: NVME_NVM_COMMANDS = 14i32; +pub const NVME_NVM_COMMAND_VERIFY: NVME_NVM_COMMANDS = 12i32; +pub const NVME_NVM_COMMAND_WRITE: NVME_NVM_COMMANDS = 1i32; +pub const NVME_NVM_COMMAND_WRITE_UNCORRECTABLE: NVME_NVM_COMMANDS = 4i32; +pub const NVME_NVM_COMMAND_WRITE_ZEROES: NVME_NVM_COMMANDS = 8i32; +pub const NVME_NVM_COMMAND_ZONE_APPEND: NVME_NVM_COMMANDS = 125i32; +pub const NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE: NVME_NVM_COMMANDS = 122i32; +pub const NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND: NVME_NVM_COMMANDS = 121i32; +pub const NVME_NVM_QUEUE_PRIORITY_HIGH: NVME_NVM_QUEUE_PRIORITIES = 1i32; +pub const NVME_NVM_QUEUE_PRIORITY_LOW: NVME_NVM_QUEUE_PRIORITIES = 3i32; +pub const NVME_NVM_QUEUE_PRIORITY_MEDIUM: NVME_NVM_QUEUE_PRIORITIES = 2i32; +pub const NVME_NVM_QUEUE_PRIORITY_URGENT: NVME_NVM_QUEUE_PRIORITIES = 0i32; +pub const NVME_OCP_DEVICE_CAPABILITIES_LOG_VERSION_1: u32 = 1u32; +pub const NVME_OCP_DEVICE_ERROR_RECOVERY_LOG_VERSION_2: u32 = 2u32; +pub const NVME_OCP_DEVICE_FIRMWARE_ACTIVATION_HISTORY_LOG_VERSION_1: u32 = 1u32; +pub const NVME_OCP_DEVICE_LATENCY_MONITOR_LOG_VERSION_1: u32 = 1u32; +pub const NVME_OCP_DEVICE_SMART_INFORMATION_LOG_VERSION_3: u32 = 3u32; +pub const NVME_OCP_DEVICE_TCG_CONFIGURATION_LOG_VERSION_1: u32 = 1u32; +pub const NVME_OCP_DEVICE_TCG_HISTORY_LOG_VERSION_1: u32 = 1u32; +pub const NVME_OCP_DEVICE_UNSUPPORTED_REQUIREMENTS_LOG_VERSION_1: u32 = 1u32; +pub const NVME_PERSISTENT_EVENT_TYPE_CHANGE_NAMESPACE: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 6i32; +pub const NVME_PERSISTENT_EVENT_TYPE_FIRMWARE_COMMIT: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 2i32; +pub const NVME_PERSISTENT_EVENT_TYPE_FORMAT_NVM_COMPLETION: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 8i32; +pub const NVME_PERSISTENT_EVENT_TYPE_FORMAT_NVM_START: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 7i32; +pub const NVME_PERSISTENT_EVENT_TYPE_MAX: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 255i32; +pub const NVME_PERSISTENT_EVENT_TYPE_NVM_SUBSYSTEM_HARDWARE_ERROR: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 5i32; +pub const NVME_PERSISTENT_EVENT_TYPE_POWER_ON_OR_RESET: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 4i32; +pub const NVME_PERSISTENT_EVENT_TYPE_RESERVED0: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 0i32; +pub const NVME_PERSISTENT_EVENT_TYPE_RESERVED1_BEGIN: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 14i32; +pub const NVME_PERSISTENT_EVENT_TYPE_RESERVED1_END: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 221i32; +pub const NVME_PERSISTENT_EVENT_TYPE_RESERVED2_BEGIN: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 224i32; +pub const NVME_PERSISTENT_EVENT_TYPE_RESERVED2_END: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 255i32; +pub const NVME_PERSISTENT_EVENT_TYPE_SANITIZE_COMPLETION: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 10i32; +pub const NVME_PERSISTENT_EVENT_TYPE_SANITIZE_START: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 9i32; +pub const NVME_PERSISTENT_EVENT_TYPE_SET_FEATURE: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 11i32; +pub const NVME_PERSISTENT_EVENT_TYPE_SMART_HEALTH_LOG_SNAPSHOT: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 1i32; +pub const NVME_PERSISTENT_EVENT_TYPE_TCG_DEFINED: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 223i32; +pub const NVME_PERSISTENT_EVENT_TYPE_TELEMETRY_LOG_CREATED: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 12i32; +pub const NVME_PERSISTENT_EVENT_TYPE_THERMAL_EXCURSION: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 13i32; +pub const NVME_PERSISTENT_EVENT_TYPE_TIMESTAMP_CHANGE: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 3i32; +pub const NVME_PERSISTENT_EVENT_TYPE_VENDOR_SPECIFIC_EVENT: NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = 222i32; +pub const NVME_PROTECTION_INFORMATION_NOT_ENABLED: NVME_PROTECTION_INFORMATION_TYPES = 0i32; +pub const NVME_PROTECTION_INFORMATION_TYPE1: NVME_PROTECTION_INFORMATION_TYPES = 1i32; +pub const NVME_PROTECTION_INFORMATION_TYPE2: NVME_PROTECTION_INFORMATION_TYPES = 2i32; +pub const NVME_PROTECTION_INFORMATION_TYPE3: NVME_PROTECTION_INFORMATION_TYPES = 3i32; +pub const NVME_RESERVATION_ACQUIRE_ACTION_ACQUIRE: NVME_RESERVATION_ACQUIRE_ACTIONS = 0i32; +pub const NVME_RESERVATION_ACQUIRE_ACTION_PREEMPT: NVME_RESERVATION_ACQUIRE_ACTIONS = 1i32; +pub const NVME_RESERVATION_ACQUIRE_ACTION_PREEMPT_AND_ABORT: NVME_RESERVATION_ACQUIRE_ACTIONS = 2i32; +pub const NVME_RESERVATION_NOTIFICATION_TYPE_EMPTY_LOG_PAGE: NVME_RESERVATION_NOTIFICATION_TYPES = 0i32; +pub const NVME_RESERVATION_NOTIFICATION_TYPE_REGISTRATION_PREEMPTED: NVME_RESERVATION_NOTIFICATION_TYPES = 1i32; +pub const NVME_RESERVATION_NOTIFICATION_TYPE_REGISTRATION_RELEASED: NVME_RESERVATION_NOTIFICATION_TYPES = 2i32; +pub const NVME_RESERVATION_NOTIFICATION_TYPE_RESERVATION_PREEPMPTED: NVME_RESERVATION_NOTIFICATION_TYPES = 3i32; +pub const NVME_RESERVATION_REGISTER_ACTION_REGISTER: NVME_RESERVATION_REGISTER_ACTIONS = 0i32; +pub const NVME_RESERVATION_REGISTER_ACTION_REPLACE: NVME_RESERVATION_REGISTER_ACTIONS = 2i32; +pub const NVME_RESERVATION_REGISTER_ACTION_UNREGISTER: NVME_RESERVATION_REGISTER_ACTIONS = 1i32; +pub const NVME_RESERVATION_REGISTER_PTPL_STATE_NO_CHANGE: NVME_RESERVATION_REGISTER_PTPL_STATE_CHANGES = 0i32; +pub const NVME_RESERVATION_REGISTER_PTPL_STATE_RESERVED: NVME_RESERVATION_REGISTER_PTPL_STATE_CHANGES = 1i32; +pub const NVME_RESERVATION_REGISTER_PTPL_STATE_SET_TO_0: NVME_RESERVATION_REGISTER_PTPL_STATE_CHANGES = 2i32; +pub const NVME_RESERVATION_REGISTER_PTPL_STATE_SET_TO_1: NVME_RESERVATION_REGISTER_PTPL_STATE_CHANGES = 3i32; +pub const NVME_RESERVATION_RELEASE_ACTION_CLEAR: NVME_RESERVATION_RELEASE_ACTIONS = 1i32; +pub const NVME_RESERVATION_RELEASE_ACTION_RELEASE: NVME_RESERVATION_RELEASE_ACTIONS = 0i32; +pub const NVME_RESERVATION_TYPE_EXCLUSIVE_ACCESS: NVME_RESERVATION_TYPES = 2i32; +pub const NVME_RESERVATION_TYPE_EXCLUSIVE_ACCESS_ALL_REGISTRANTS: NVME_RESERVATION_TYPES = 6i32; +pub const NVME_RESERVATION_TYPE_EXCLUSIVE_ACCESS_REGISTRANTS_ONLY: NVME_RESERVATION_TYPES = 4i32; +pub const NVME_RESERVATION_TYPE_RESERVED: NVME_RESERVATION_TYPES = 0i32; +pub const NVME_RESERVATION_TYPE_WRITE_EXCLUSIVE: NVME_RESERVATION_TYPES = 1i32; +pub const NVME_RESERVATION_TYPE_WRITE_EXCLUSIVE_ALL_REGISTRANTS: NVME_RESERVATION_TYPES = 5i32; +pub const NVME_RESERVATION_TYPE_WRITE_EXCLUSIVE_REGISTRANTS_ONLY: NVME_RESERVATION_TYPES = 3i32; +pub const NVME_SANITIZE_ACTION_EXIT_FAILURE_MODE: NVME_SANITIZE_ACTION = 1i32; +pub const NVME_SANITIZE_ACTION_RESERVED: NVME_SANITIZE_ACTION = 0i32; +pub const NVME_SANITIZE_ACTION_START_BLOCK_ERASE_SANITIZE: NVME_SANITIZE_ACTION = 2i32; +pub const NVME_SANITIZE_ACTION_START_CRYPTO_ERASE_SANITIZE: NVME_SANITIZE_ACTION = 4i32; +pub const NVME_SANITIZE_ACTION_START_OVERWRITE_SANITIZE: NVME_SANITIZE_ACTION = 3i32; +pub const NVME_SANITIZE_OPERATION_FAILED: NVME_SANITIZE_OPERATION_STATUS = 3i32; +pub const NVME_SANITIZE_OPERATION_IN_PROGRESS: NVME_SANITIZE_OPERATION_STATUS = 2i32; +pub const NVME_SANITIZE_OPERATION_NONE: NVME_SANITIZE_OPERATION_STATUS = 0i32; +pub const NVME_SANITIZE_OPERATION_SUCCEEDED: NVME_SANITIZE_OPERATION_STATUS = 1i32; +pub const NVME_SANITIZE_OPERATION_SUCCEEDED_WITH_FORCED_DEALLOCATION: NVME_SANITIZE_OPERATION_STATUS = 4i32; +pub const NVME_SECURE_ERASE_CRYPTOGRAPHIC: NVME_SECURE_ERASE_SETTINGS = 2i32; +pub const NVME_SECURE_ERASE_NONE: NVME_SECURE_ERASE_SETTINGS = 0i32; +pub const NVME_SECURE_ERASE_USER_DATA: NVME_SECURE_ERASE_SETTINGS = 1i32; +pub const NVME_STATE_ZSC: ZONE_STATE = 4i32; +pub const NVME_STATE_ZSE: ZONE_STATE = 1i32; +pub const NVME_STATE_ZSEO: ZONE_STATE = 3i32; +pub const NVME_STATE_ZSF: ZONE_STATE = 14i32; +pub const NVME_STATE_ZSIO: ZONE_STATE = 2i32; +pub const NVME_STATE_ZSO: ZONE_STATE = 15i32; +pub const NVME_STATE_ZSRO: ZONE_STATE = 13i32; +pub const NVME_STATUS_ABORT_COMMAND_LIMIT_EXCEEDED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 3i32; +pub const NVME_STATUS_ANA_ATTACH_FAILED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 37i32; +pub const NVME_STATUS_ASYNC_EVENT_REQUEST_LIMIT_EXCEEDED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 5i32; +pub const NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED: NVME_STATUS_GENERIC_COMMAND_CODES = 20i32; +pub const NVME_STATUS_BOOT_PARTITION_WRITE_PROHIBITED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 30i32; +pub const NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_FUSED_COMMAND: NVME_STATUS_GENERIC_COMMAND_CODES = 9i32; +pub const NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND: NVME_STATUS_GENERIC_COMMAND_CODES = 10i32; +pub const NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION: NVME_STATUS_GENERIC_COMMAND_CODES = 5i32; +pub const NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT: NVME_STATUS_GENERIC_COMMAND_CODES = 27i32; +pub const NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION: NVME_STATUS_GENERIC_COMMAND_CODES = 8i32; +pub const NVME_STATUS_COMMAND_ABORT_REQUESTED: NVME_STATUS_GENERIC_COMMAND_CODES = 7i32; +pub const NVME_STATUS_COMMAND_ID_CONFLICT: NVME_STATUS_GENERIC_COMMAND_CODES = 3i32; +pub const NVME_STATUS_COMMAND_SEQUENCE_ERROR: NVME_STATUS_GENERIC_COMMAND_CODES = 12i32; +pub const NVME_STATUS_COMPLETION_QUEUE_INVALID: NVME_STATUS_COMMAND_SPECIFIC_CODES = 0i32; +pub const NVME_STATUS_CONTROLLER_LIST_INVALID: NVME_STATUS_COMMAND_SPECIFIC_CODES = 28i32; +pub const NVME_STATUS_DATA_SGL_LENGTH_INVALID: NVME_STATUS_GENERIC_COMMAND_CODES = 15i32; +pub const NVME_STATUS_DATA_TRANSFER_ERROR: NVME_STATUS_GENERIC_COMMAND_CODES = 4i32; +pub const NVME_STATUS_DEVICE_SELF_TEST_IN_PROGRESS: NVME_STATUS_COMMAND_SPECIFIC_CODES = 29i32; +pub const NVME_STATUS_DIRECTIVE_ID_INVALID: NVME_STATUS_GENERIC_COMMAND_CODES = 113i32; +pub const NVME_STATUS_DIRECTIVE_TYPE_INVALID: NVME_STATUS_GENERIC_COMMAND_CODES = 112i32; +pub const NVME_STATUS_FEATURE_ID_NOT_SAVEABLE: NVME_STATUS_COMMAND_SPECIFIC_CODES = 13i32; +pub const NVME_STATUS_FEATURE_NOT_CHANGEABLE: NVME_STATUS_COMMAND_SPECIFIC_CODES = 14i32; +pub const NVME_STATUS_FEATURE_NOT_NAMESPACE_SPECIFIC: NVME_STATUS_COMMAND_SPECIFIC_CODES = 15i32; +pub const NVME_STATUS_FIRMWARE_ACTIVATION_PROHIBITED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 19i32; +pub const NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_CONVENTIONAL_RESET: NVME_STATUS_COMMAND_SPECIFIC_CODES = 11i32; +pub const NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_MAX_TIME_VIOLATION: NVME_STATUS_COMMAND_SPECIFIC_CODES = 18i32; +pub const NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_NVM_SUBSYSTEM_RESET: NVME_STATUS_COMMAND_SPECIFIC_CODES = 16i32; +pub const NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_RESET: NVME_STATUS_COMMAND_SPECIFIC_CODES = 17i32; +pub const NVME_STATUS_FORMAT_IN_PROGRESS: NVME_STATUS_GENERIC_COMMAND_CODES = 132i32; +pub const NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT: NVME_STATUS_GENERIC_COMMAND_CODES = 24i32; +pub const NVME_STATUS_INTERNAL_DEVICE_ERROR: NVME_STATUS_GENERIC_COMMAND_CODES = 6i32; +pub const NVME_STATUS_INVALID_ANA_GROUP_IDENTIFIER: NVME_STATUS_COMMAND_SPECIFIC_CODES = 36i32; +pub const NVME_STATUS_INVALID_COMMAND_OPCODE: NVME_STATUS_GENERIC_COMMAND_CODES = 1i32; +pub const NVME_STATUS_INVALID_CONTROLLER_IDENTIFIER: NVME_STATUS_COMMAND_SPECIFIC_CODES = 31i32; +pub const NVME_STATUS_INVALID_FIELD_IN_COMMAND: NVME_STATUS_GENERIC_COMMAND_CODES = 2i32; +pub const NVME_STATUS_INVALID_FIRMWARE_IMAGE: NVME_STATUS_COMMAND_SPECIFIC_CODES = 7i32; +pub const NVME_STATUS_INVALID_FIRMWARE_SLOT: NVME_STATUS_COMMAND_SPECIFIC_CODES = 6i32; +pub const NVME_STATUS_INVALID_FORMAT: NVME_STATUS_COMMAND_SPECIFIC_CODES = 10i32; +pub const NVME_STATUS_INVALID_INTERRUPT_VECTOR: NVME_STATUS_COMMAND_SPECIFIC_CODES = 8i32; +pub const NVME_STATUS_INVALID_LOG_PAGE: NVME_STATUS_COMMAND_SPECIFIC_CODES = 9i32; +pub const NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT: NVME_STATUS_GENERIC_COMMAND_CODES = 11i32; +pub const NVME_STATUS_INVALID_NUMBER_OF_CONTROLLER_RESOURCES: NVME_STATUS_COMMAND_SPECIFIC_CODES = 33i32; +pub const NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR: NVME_STATUS_GENERIC_COMMAND_CODES = 14i32; +pub const NVME_STATUS_INVALID_QUEUE_DELETION: NVME_STATUS_COMMAND_SPECIFIC_CODES = 12i32; +pub const NVME_STATUS_INVALID_QUEUE_IDENTIFIER: NVME_STATUS_COMMAND_SPECIFIC_CODES = 1i32; +pub const NVME_STATUS_INVALID_RESOURCE_IDENTIFIER: NVME_STATUS_COMMAND_SPECIFIC_CODES = 34i32; +pub const NVME_STATUS_INVALID_SECONDARY_CONTROLLER_STATE: NVME_STATUS_COMMAND_SPECIFIC_CODES = 32i32; +pub const NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR: NVME_STATUS_GENERIC_COMMAND_CODES = 13i32; +pub const NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER: NVME_STATUS_GENERIC_COMMAND_CODES = 18i32; +pub const NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED: NVME_STATUS_GENERIC_COMMAND_CODES = 25i32; +pub const NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID: NVME_STATUS_GENERIC_COMMAND_CODES = 26i32; +pub const NVME_STATUS_MAX_QUEUE_SIZE_EXCEEDED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 2i32; +pub const NVME_STATUS_METADATA_SGL_LENGTH_INVALID: NVME_STATUS_GENERIC_COMMAND_CODES = 16i32; +pub const NVME_STATUS_NAMESPACE_ALREADY_ATTACHED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 24i32; +pub const NVME_STATUS_NAMESPACE_IDENTIFIER_UNAVAILABLE: NVME_STATUS_COMMAND_SPECIFIC_CODES = 22i32; +pub const NVME_STATUS_NAMESPACE_INSUFFICIENT_CAPACITY: NVME_STATUS_COMMAND_SPECIFIC_CODES = 21i32; +pub const NVME_STATUS_NAMESPACE_IS_PRIVATE: NVME_STATUS_COMMAND_SPECIFIC_CODES = 25i32; +pub const NVME_STATUS_NAMESPACE_NOT_ATTACHED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 26i32; +pub const NVME_STATUS_NAMESPACE_THIN_PROVISIONING_NOT_SUPPORTED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 27i32; +pub const NVME_STATUS_NVM_ACCESS_DENIED: NVME_STATUS_MEDIA_ERROR_CODES = 134i32; +pub const NVME_STATUS_NVM_ATTEMPTED_WRITE_TO_READ_ONLY_RANGE: NVME_STATUS_COMMAND_SPECIFIC_CODES = 130i32; +pub const NVME_STATUS_NVM_CAPACITY_EXCEEDED: NVME_STATUS_GENERIC_COMMAND_CODES = 129i32; +pub const NVME_STATUS_NVM_COMMAND_SIZE_LIMIT_EXCEEDED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 131i32; +pub const NVME_STATUS_NVM_COMPARE_FAILURE: NVME_STATUS_MEDIA_ERROR_CODES = 133i32; +pub const NVME_STATUS_NVM_CONFLICTING_ATTRIBUTES: NVME_STATUS_COMMAND_SPECIFIC_CODES = 128i32; +pub const NVME_STATUS_NVM_DEALLOCATED_OR_UNWRITTEN_LOGICAL_BLOCK: NVME_STATUS_MEDIA_ERROR_CODES = 135i32; +pub const NVME_STATUS_NVM_END_TO_END_APPLICATION_TAG_CHECK_ERROR: NVME_STATUS_MEDIA_ERROR_CODES = 131i32; +pub const NVME_STATUS_NVM_END_TO_END_GUARD_CHECK_ERROR: NVME_STATUS_MEDIA_ERROR_CODES = 130i32; +pub const NVME_STATUS_NVM_END_TO_END_REFERENCE_TAG_CHECK_ERROR: NVME_STATUS_MEDIA_ERROR_CODES = 132i32; +pub const NVME_STATUS_NVM_INVALID_PROTECTION_INFORMATION: NVME_STATUS_COMMAND_SPECIFIC_CODES = 129i32; +pub const NVME_STATUS_NVM_LBA_OUT_OF_RANGE: NVME_STATUS_GENERIC_COMMAND_CODES = 128i32; +pub const NVME_STATUS_NVM_NAMESPACE_NOT_READY: NVME_STATUS_GENERIC_COMMAND_CODES = 130i32; +pub const NVME_STATUS_NVM_RESERVATION_CONFLICT: NVME_STATUS_GENERIC_COMMAND_CODES = 131i32; +pub const NVME_STATUS_NVM_UNRECOVERED_READ_ERROR: NVME_STATUS_MEDIA_ERROR_CODES = 129i32; +pub const NVME_STATUS_NVM_WRITE_FAULT: NVME_STATUS_MEDIA_ERROR_CODES = 128i32; +pub const NVME_STATUS_OPERATION_DENIED: NVME_STATUS_GENERIC_COMMAND_CODES = 21i32; +pub const NVME_STATUS_OVERLAPPING_RANGE: NVME_STATUS_COMMAND_SPECIFIC_CODES = 20i32; +pub const NVME_STATUS_PRP_OFFSET_INVALID: NVME_STATUS_GENERIC_COMMAND_CODES = 19i32; +pub const NVME_STATUS_RESERVED: NVME_STATUS_GENERIC_COMMAND_CODES = 23i32; +pub const NVME_STATUS_SANITIZE_FAILED: NVME_STATUS_GENERIC_COMMAND_CODES = 28i32; +pub const NVME_STATUS_SANITIZE_IN_PROGRESS: NVME_STATUS_GENERIC_COMMAND_CODES = 29i32; +pub const NVME_STATUS_SANITIZE_PROHIBITED_ON_PERSISTENT_MEMORY: NVME_STATUS_COMMAND_SPECIFIC_CODES = 35i32; +pub const NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID: NVME_STATUS_GENERIC_COMMAND_CODES = 30i32; +pub const NVME_STATUS_SGL_DESCR_TYPE_INVALID: NVME_STATUS_GENERIC_COMMAND_CODES = 17i32; +pub const NVME_STATUS_SGL_OFFSET_INVALID: NVME_STATUS_GENERIC_COMMAND_CODES = 22i32; +pub const NVME_STATUS_STREAM_RESOURCE_ALLOCATION_FAILED: NVME_STATUS_COMMAND_SPECIFIC_CODES = 127i32; +pub const NVME_STATUS_SUCCESS_COMPLETION: NVME_STATUS_GENERIC_COMMAND_CODES = 0i32; +pub const NVME_STATUS_TYPE_COMMAND_SPECIFIC: NVME_STATUS_TYPES = 1i32; +pub const NVME_STATUS_TYPE_GENERIC_COMMAND: NVME_STATUS_TYPES = 0i32; +pub const NVME_STATUS_TYPE_MEDIA_ERROR: NVME_STATUS_TYPES = 2i32; +pub const NVME_STATUS_TYPE_VENDOR_SPECIFIC: NVME_STATUS_TYPES = 7i32; +pub const NVME_STATUS_ZONE_BOUNDARY_ERROR: NVME_STATUS_COMMAND_SPECIFIC_CODES = 184i32; +pub const NVME_STATUS_ZONE_FULL: NVME_STATUS_COMMAND_SPECIFIC_CODES = 185i32; +pub const NVME_STATUS_ZONE_INVALID_FORMAT: NVME_STATUS_COMMAND_SPECIFIC_CODES = 127i32; +pub const NVME_STATUS_ZONE_INVALID_STATE_TRANSITION: NVME_STATUS_COMMAND_SPECIFIC_CODES = 191i32; +pub const NVME_STATUS_ZONE_INVALID_WRITE: NVME_STATUS_COMMAND_SPECIFIC_CODES = 188i32; +pub const NVME_STATUS_ZONE_OFFLINE: NVME_STATUS_COMMAND_SPECIFIC_CODES = 187i32; +pub const NVME_STATUS_ZONE_READ_ONLY: NVME_STATUS_COMMAND_SPECIFIC_CODES = 186i32; +pub const NVME_STATUS_ZONE_TOO_MANY_ACTIVE: NVME_STATUS_COMMAND_SPECIFIC_CODES = 189i32; +pub const NVME_STATUS_ZONE_TOO_MANY_OPEN: NVME_STATUS_COMMAND_SPECIFIC_CODES = 190i32; +pub const NVME_STREAMS_GET_STATUS_MAX_IDS: u32 = 65535u32; +pub const NVME_STREAMS_ID_MAX: u32 = 65535u32; +pub const NVME_STREAMS_ID_MIN: u32 = 1u32; +pub const NVME_TELEMETRY_DATA_BLOCK_SIZE: u32 = 512u32; +pub const NVME_TEMPERATURE_OVER_THRESHOLD: NVME_TEMPERATURE_THRESHOLD_TYPES = 0i32; +pub const NVME_TEMPERATURE_UNDER_THRESHOLD: NVME_TEMPERATURE_THRESHOLD_TYPES = 1i32; +pub const NVME_WCS_DEVICE_ERROR_RECOVERY_LOG_VERSION_1: u32 = 1u32; +pub const NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_VERSION_2: u32 = 2u32; +pub const NVME_ZONE_RECEIVE_EXTENDED_REPORT_ZONES: NVME_ZONE_RECEIVE_ACTION = 1i32; +pub const NVME_ZONE_RECEIVE_REPORT_ZONES: NVME_ZONE_RECEIVE_ACTION = 0i32; +pub const NVME_ZONE_SEND_CLOSE: NVME_ZONE_SEND_ACTION = 1i32; +pub const NVME_ZONE_SEND_FINISH: NVME_ZONE_SEND_ACTION = 2i32; +pub const NVME_ZONE_SEND_OFFLINE: NVME_ZONE_SEND_ACTION = 5i32; +pub const NVME_ZONE_SEND_OPEN: NVME_ZONE_SEND_ACTION = 3i32; +pub const NVME_ZONE_SEND_RESET: NVME_ZONE_SEND_ACTION = 4i32; +pub const NVME_ZONE_SEND_SET_ZONE_DESCRIPTOR: NVME_ZONE_SEND_ACTION = 16i32; +pub const NVME_ZRA_ALL_ZONES: NVME_ZONE_RECEIVE_ACTION_SPECIFIC = 0i32; +pub const NVME_ZRA_CLOSED_STATE_ZONES: NVME_ZONE_RECEIVE_ACTION_SPECIFIC = 4i32; +pub const NVME_ZRA_EMPTY_STATE_ZONES: NVME_ZONE_RECEIVE_ACTION_SPECIFIC = 1i32; +pub const NVME_ZRA_EO_STATE_ZONES: NVME_ZONE_RECEIVE_ACTION_SPECIFIC = 3i32; +pub const NVME_ZRA_FULL_STATE_ZONES: NVME_ZONE_RECEIVE_ACTION_SPECIFIC = 5i32; +pub const NVME_ZRA_IO_STATE_ZONES: NVME_ZONE_RECEIVE_ACTION_SPECIFIC = 2i32; +pub const NVME_ZRA_OFFLINE_STATE_ZONES: NVME_ZONE_RECEIVE_ACTION_SPECIFIC = 7i32; +pub const NVME_ZRA_RO_STATE_ZONES: NVME_ZONE_RECEIVE_ACTION_SPECIFIC = 6i32; +pub const NVMeDeviceRecovery1Max: NVME_WCS_DEVICE_RECOVERY_ACTION1 = 15i32; +pub const NVMeDeviceRecovery2Max: NVME_WCS_DEVICE_RECOVERY_ACTION2 = 15i32; +pub const NVMeDeviceRecoveryControllerReset: NVME_WCS_DEVICE_RECOVERY_ACTION2 = 0i32; +pub const NVMeDeviceRecoveryDeviceReplacement: NVME_WCS_DEVICE_RECOVERY_ACTION1 = 4i32; +pub const NVMeDeviceRecoveryFormatNVM: NVME_WCS_DEVICE_RECOVERY_ACTION1 = 1i32; +pub const NVMeDeviceRecoveryNoAction: NVME_WCS_DEVICE_RECOVERY_ACTION1 = 0i32; +pub const NVMeDeviceRecoveryPERST: NVME_WCS_DEVICE_RECOVERY_ACTION2 = 3i32; +pub const NVMeDeviceRecoveryPcieFunctionReset: NVME_WCS_DEVICE_RECOVERY_ACTION2 = 2i32; +pub const NVMeDeviceRecoveryPcieHotReset: NVME_WCS_DEVICE_RECOVERY_ACTION2 = 5i32; +pub const NVMeDeviceRecoveryPowerCycle: NVME_WCS_DEVICE_RECOVERY_ACTION2 = 4i32; +pub const NVMeDeviceRecoverySanitize: NVME_WCS_DEVICE_RECOVERY_ACTION1 = 5i32; +pub const NVMeDeviceRecoverySubsystemReset: NVME_WCS_DEVICE_RECOVERY_ACTION2 = 1i32; +pub const NVMeDeviceRecoveryVendorAnalysis: NVME_WCS_DEVICE_RECOVERY_ACTION1 = 3i32; +pub const NVMeDeviceRecoveryVendorSpecificCommand: NVME_WCS_DEVICE_RECOVERY_ACTION1 = 2i32; +pub const TCG_HISTORY_ENTRY_VERSION_1: u32 = 1u32; +pub type NVME_ACCESS_FREQUENCIES = i32; +pub type NVME_ACCESS_LATENCIES = i32; +pub type NVME_ADMIN_COMMANDS = i32; +pub type NVME_AMS_OPTION = i32; +pub type NVME_ASYNC_EVENT_ERROR_STATUS_CODES = i32; +pub type NVME_ASYNC_EVENT_HEALTH_STATUS_CODES = i32; +pub type NVME_ASYNC_EVENT_IO_COMMAND_SET_STATUS_CODES = i32; +pub type NVME_ASYNC_EVENT_NOTICE_CODES = i32; +pub type NVME_ASYNC_EVENT_TYPES = i32; +pub type NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC_CODES = i32; +pub type NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS = i32; +pub type NVME_CMBSZ_SIZE_UNITS = i32; +pub type NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMITS = i32; +pub type NVME_COMMAND_SET_IDENTIFIERS = i32; +pub type NVME_CONTROLLER_METADATA_ELEMENT_TYPES = i32; +pub type NVME_CSS_COMMAND_SETS = i32; +pub type NVME_CSTS_SHST_SHUTDOWN_STATUS = i32; +pub type NVME_DIRECTIVE_RECEIVE_IDENTIFY_OPERATIONS = i32; +pub type NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATIONS = i32; +pub type NVME_DIRECTIVE_SEND_IDENTIFY_OPERATIONS = i32; +pub type NVME_DIRECTIVE_SEND_STREAMS_OPERATIONS = i32; +pub type NVME_DIRECTIVE_TYPES = i32; +pub type NVME_ERROR_INJECTION_TYPES = i32; +pub type NVME_FEATURES = i32; +pub type NVME_FEATURE_VALUE_CODES = i32; +pub type NVME_FIRMWARE_ACTIVATE_ACTIONS = i32; +pub type NVME_FUSED_OPERATION_CODES = i32; +pub type NVME_HOST_METADATA_ELEMENT_ACTIONS = i32; +pub type NVME_IDENTIFIER_TYPE = i32; +pub type NVME_IDENTIFIER_TYPE_LENGTH = i32; +pub type NVME_IDENTIFY_CNS_CODES = i32; +pub type NVME_LBA_RANGE_TYPES = i32; +pub type NVME_LOG_PAGES = i32; +pub type NVME_NAMESPACE_METADATA_ELEMENT_TYPES = i32; +pub type NVME_NO_DEALLOCATE_MODIFIES_MEDIA_AFTER_SANITIZE = i32; +pub type NVME_NVM_COMMANDS = i32; +pub type NVME_NVM_QUEUE_PRIORITIES = i32; +pub type NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES = i32; +pub type NVME_PROTECTION_INFORMATION_TYPES = i32; +pub type NVME_RESERVATION_ACQUIRE_ACTIONS = i32; +pub type NVME_RESERVATION_NOTIFICATION_TYPES = i32; +pub type NVME_RESERVATION_REGISTER_ACTIONS = i32; +pub type NVME_RESERVATION_REGISTER_PTPL_STATE_CHANGES = i32; +pub type NVME_RESERVATION_RELEASE_ACTIONS = i32; +pub type NVME_RESERVATION_TYPES = i32; +pub type NVME_SANITIZE_ACTION = i32; +pub type NVME_SANITIZE_OPERATION_STATUS = i32; +pub type NVME_SECURE_ERASE_SETTINGS = i32; +pub type NVME_STATUS_COMMAND_SPECIFIC_CODES = i32; +pub type NVME_STATUS_GENERIC_COMMAND_CODES = i32; +pub type NVME_STATUS_MEDIA_ERROR_CODES = i32; +pub type NVME_STATUS_TYPES = i32; +pub type NVME_TEMPERATURE_THRESHOLD_TYPES = i32; +pub type NVME_VENDOR_LOG_PAGES = i32; +pub type NVME_WCS_DEVICE_RECOVERY_ACTION1 = i32; +pub type NVME_WCS_DEVICE_RECOVERY_ACTION2 = i32; +pub type NVME_ZONE_RECEIVE_ACTION = i32; +pub type NVME_ZONE_RECEIVE_ACTION_SPECIFIC = i32; +pub type NVME_ZONE_SEND_ACTION = i32; +pub type ZONE_STATE = i32; +#[repr(C)] +pub struct ACTIVE_LATENCY_CONFIGURATION { + pub Anonymous: ACTIVE_LATENCY_CONFIGURATION_0, +} +impl ::core::marker::Copy for ACTIVE_LATENCY_CONFIGURATION {} +impl ::core::clone::Clone for ACTIVE_LATENCY_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union ACTIVE_LATENCY_CONFIGURATION_0 { + pub Anonymous: ACTIVE_LATENCY_CONFIGURATION_0_0, + pub AsUshort: u16, +} +impl ::core::marker::Copy for ACTIVE_LATENCY_CONFIGURATION_0 {} +impl ::core::clone::Clone for ACTIVE_LATENCY_CONFIGURATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct ACTIVE_LATENCY_CONFIGURATION_0_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for ACTIVE_LATENCY_CONFIGURATION_0_0 {} +impl ::core::clone::Clone for ACTIVE_LATENCY_CONFIGURATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct BUCKET_COUNTER { + pub Reserved: u32, + pub Trim: u32, + pub Write: u32, + pub Read: u32, +} +impl ::core::marker::Copy for BUCKET_COUNTER {} +impl ::core::clone::Clone for BUCKET_COUNTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEBUG_BIT_FIELD { + pub _bitfield: u16, +} +impl ::core::marker::Copy for DEBUG_BIT_FIELD {} +impl ::core::clone::Clone for DEBUG_BIT_FIELD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DSSD_POWER_STATE_DESCRIPTOR { + pub _bitfield: u8, +} +impl ::core::marker::Copy for DSSD_POWER_STATE_DESCRIPTOR {} +impl ::core::clone::Clone for DSSD_POWER_STATE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct FIRMWARE_ACTIVATION_HISTORY_ENTRY { + pub VersionNumber: u8, + pub Length: u8, + pub Reserved0: u16, + pub ActivationCount: u16, + pub Timestamp: u64, + pub Reserved1: u64, + pub PowerCycleCount: u64, + pub PreviousFirmware: u64, + pub NewFirmware: u64, + pub SlotNumber: u8, + pub CommitActionType: u8, + pub Result: u16, + pub Reserved2: [u8; 14], +} +impl ::core::marker::Copy for FIRMWARE_ACTIVATION_HISTORY_ENTRY {} +impl ::core::clone::Clone for FIRMWARE_ACTIVATION_HISTORY_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LATENCY_MONITOR_FEATURE_STATUS { + pub Anonymous: LATENCY_MONITOR_FEATURE_STATUS_0, +} +impl ::core::marker::Copy for LATENCY_MONITOR_FEATURE_STATUS {} +impl ::core::clone::Clone for LATENCY_MONITOR_FEATURE_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union LATENCY_MONITOR_FEATURE_STATUS_0 { + pub Anonymous: LATENCY_MONITOR_FEATURE_STATUS_0_0, + pub AsUchar: u8, +} +impl ::core::marker::Copy for LATENCY_MONITOR_FEATURE_STATUS_0 {} +impl ::core::clone::Clone for LATENCY_MONITOR_FEATURE_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LATENCY_MONITOR_FEATURE_STATUS_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for LATENCY_MONITOR_FEATURE_STATUS_0_0 {} +impl ::core::clone::Clone for LATENCY_MONITOR_FEATURE_STATUS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LATENCY_STAMP { + pub Trim3: u64, + pub Write3: u64, + pub Read3: u64, + pub Trim2: u64, + pub Write2: u64, + pub Read2: u64, + pub Trim1: u64, + pub Write1: u64, + pub Read1: u64, + pub Trim0: u64, + pub Write0: u64, + pub Read0: u64, +} +impl ::core::marker::Copy for LATENCY_STAMP {} +impl ::core::clone::Clone for LATENCY_STAMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct LATENCY_STAMP_UNITS { + pub _bitfield: u16, +} +impl ::core::marker::Copy for LATENCY_STAMP_UNITS {} +impl ::core::clone::Clone for LATENCY_STAMP_UNITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MEASURED_LATENCY { + pub Trim3: u16, + pub Write3: u16, + pub Read3: u16, + pub Trim2: u16, + pub Write2: u16, + pub Read2: u16, + pub Trim1: u16, + pub Write1: u16, + pub Read1: u16, + pub Trim0: u16, + pub Write0: u16, + pub Read0: u16, +} +impl ::core::marker::Copy for MEASURED_LATENCY {} +impl ::core::clone::Clone for MEASURED_LATENCY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ACTIVE_NAMESPACE_ID_LIST { + pub NSID: [u32; 1024], +} +impl ::core::marker::Copy for NVME_ACTIVE_NAMESPACE_ID_LIST {} +impl ::core::clone::Clone for NVME_ACTIVE_NAMESPACE_ID_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS { + pub Anonymous: NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS_0, + pub AsUlonglong: u64, +} +impl ::core::marker::Copy for NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS {} +impl ::core::clone::Clone for NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS_0 {} +impl ::core::clone::Clone for NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_ADMIN_QUEUE_ATTRIBUTES { + pub Anonymous: NVME_ADMIN_QUEUE_ATTRIBUTES_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_ADMIN_QUEUE_ATTRIBUTES {} +impl ::core::clone::Clone for NVME_ADMIN_QUEUE_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ADMIN_QUEUE_ATTRIBUTES_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_ADMIN_QUEUE_ATTRIBUTES_0 {} +impl ::core::clone::Clone for NVME_ADMIN_QUEUE_ATTRIBUTES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS { + pub Anonymous: NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS_0, + pub AsUlonglong: u64, +} +impl ::core::marker::Copy for NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS {} +impl ::core::clone::Clone for NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS_0 {} +impl ::core::clone::Clone for NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_AUTO_POWER_STATE_TRANSITION_ENTRY { + pub _bitfield: u32, + pub Reserved1: u32, +} +impl ::core::marker::Copy for NVME_AUTO_POWER_STATE_TRANSITION_ENTRY {} +impl ::core::clone::Clone for NVME_AUTO_POWER_STATE_TRANSITION_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW0_FEATURE_ENABLE_IEEE1667_SILO { + pub Anonymous: NVME_CDW0_FEATURE_ENABLE_IEEE1667_SILO_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW0_FEATURE_ENABLE_IEEE1667_SILO {} +impl ::core::clone::Clone for NVME_CDW0_FEATURE_ENABLE_IEEE1667_SILO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW0_FEATURE_ENABLE_IEEE1667_SILO_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW0_FEATURE_ENABLE_IEEE1667_SILO_0 {} +impl ::core::clone::Clone for NVME_CDW0_FEATURE_ENABLE_IEEE1667_SILO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW0_FEATURE_ERROR_INJECTION { + pub Anonymous: NVME_CDW0_FEATURE_ERROR_INJECTION_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW0_FEATURE_ERROR_INJECTION {} +impl ::core::clone::Clone for NVME_CDW0_FEATURE_ERROR_INJECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW0_FEATURE_ERROR_INJECTION_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW0_FEATURE_ERROR_INJECTION_0 {} +impl ::core::clone::Clone for NVME_CDW0_FEATURE_ERROR_INJECTION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW0_FEATURE_READONLY_WRITETHROUGH_MODE { + pub Anonymous: NVME_CDW0_FEATURE_READONLY_WRITETHROUGH_MODE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW0_FEATURE_READONLY_WRITETHROUGH_MODE {} +impl ::core::clone::Clone for NVME_CDW0_FEATURE_READONLY_WRITETHROUGH_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW0_FEATURE_READONLY_WRITETHROUGH_MODE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW0_FEATURE_READONLY_WRITETHROUGH_MODE_0 {} +impl ::core::clone::Clone for NVME_CDW0_FEATURE_READONLY_WRITETHROUGH_MODE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW0_RESERVATION_PERSISTENCE { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW0_RESERVATION_PERSISTENCE {} +impl ::core::clone::Clone for NVME_CDW0_RESERVATION_PERSISTENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_ABORT { + pub Anonymous: NVME_CDW10_ABORT_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_ABORT {} +impl ::core::clone::Clone for NVME_CDW10_ABORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_ABORT_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_ABORT_0 {} +impl ::core::clone::Clone for NVME_CDW10_ABORT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_CREATE_IO_QUEUE { + pub Anonymous: NVME_CDW10_CREATE_IO_QUEUE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_CREATE_IO_QUEUE {} +impl ::core::clone::Clone for NVME_CDW10_CREATE_IO_QUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_CREATE_IO_QUEUE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_CREATE_IO_QUEUE_0 {} +impl ::core::clone::Clone for NVME_CDW10_CREATE_IO_QUEUE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_DATASET_MANAGEMENT { + pub Anonymous: NVME_CDW10_DATASET_MANAGEMENT_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_DATASET_MANAGEMENT {} +impl ::core::clone::Clone for NVME_CDW10_DATASET_MANAGEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_DATASET_MANAGEMENT_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_DATASET_MANAGEMENT_0 {} +impl ::core::clone::Clone for NVME_CDW10_DATASET_MANAGEMENT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_DIRECTIVE_RECEIVE { + pub NUMD: u32, +} +impl ::core::marker::Copy for NVME_CDW10_DIRECTIVE_RECEIVE {} +impl ::core::clone::Clone for NVME_CDW10_DIRECTIVE_RECEIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_DIRECTIVE_SEND { + pub NUMD: u32, +} +impl ::core::marker::Copy for NVME_CDW10_DIRECTIVE_SEND {} +impl ::core::clone::Clone for NVME_CDW10_DIRECTIVE_SEND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_FIRMWARE_ACTIVATE { + pub Anonymous: NVME_CDW10_FIRMWARE_ACTIVATE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_FIRMWARE_ACTIVATE {} +impl ::core::clone::Clone for NVME_CDW10_FIRMWARE_ACTIVATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_FIRMWARE_ACTIVATE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_FIRMWARE_ACTIVATE_0 {} +impl ::core::clone::Clone for NVME_CDW10_FIRMWARE_ACTIVATE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_FIRMWARE_DOWNLOAD { + pub NUMD: u32, +} +impl ::core::marker::Copy for NVME_CDW10_FIRMWARE_DOWNLOAD {} +impl ::core::clone::Clone for NVME_CDW10_FIRMWARE_DOWNLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_FORMAT_NVM { + pub Anonymous: NVME_CDW10_FORMAT_NVM_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_FORMAT_NVM {} +impl ::core::clone::Clone for NVME_CDW10_FORMAT_NVM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_FORMAT_NVM_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_FORMAT_NVM_0 {} +impl ::core::clone::Clone for NVME_CDW10_FORMAT_NVM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_GET_FEATURES { + pub Anonymous: NVME_CDW10_GET_FEATURES_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_GET_FEATURES {} +impl ::core::clone::Clone for NVME_CDW10_GET_FEATURES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_GET_FEATURES_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_GET_FEATURES_0 {} +impl ::core::clone::Clone for NVME_CDW10_GET_FEATURES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_GET_LOG_PAGE { + pub Anonymous: NVME_CDW10_GET_LOG_PAGE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_GET_LOG_PAGE {} +impl ::core::clone::Clone for NVME_CDW10_GET_LOG_PAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_GET_LOG_PAGE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_GET_LOG_PAGE_0 {} +impl ::core::clone::Clone for NVME_CDW10_GET_LOG_PAGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_GET_LOG_PAGE_V13 { + pub Anonymous: NVME_CDW10_GET_LOG_PAGE_V13_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_GET_LOG_PAGE_V13 {} +impl ::core::clone::Clone for NVME_CDW10_GET_LOG_PAGE_V13 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_GET_LOG_PAGE_V13_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_GET_LOG_PAGE_V13_0 {} +impl ::core::clone::Clone for NVME_CDW10_GET_LOG_PAGE_V13_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_IDENTIFY { + pub Anonymous: NVME_CDW10_IDENTIFY_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_IDENTIFY {} +impl ::core::clone::Clone for NVME_CDW10_IDENTIFY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_IDENTIFY_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_IDENTIFY_0 {} +impl ::core::clone::Clone for NVME_CDW10_IDENTIFY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_RESERVATION_ACQUIRE { + pub Anonymous: NVME_CDW10_RESERVATION_ACQUIRE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_RESERVATION_ACQUIRE {} +impl ::core::clone::Clone for NVME_CDW10_RESERVATION_ACQUIRE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_RESERVATION_ACQUIRE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_RESERVATION_ACQUIRE_0 {} +impl ::core::clone::Clone for NVME_CDW10_RESERVATION_ACQUIRE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_RESERVATION_REGISTER { + pub Anonymous: NVME_CDW10_RESERVATION_REGISTER_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_RESERVATION_REGISTER {} +impl ::core::clone::Clone for NVME_CDW10_RESERVATION_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_RESERVATION_REGISTER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_RESERVATION_REGISTER_0 {} +impl ::core::clone::Clone for NVME_CDW10_RESERVATION_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_RESERVATION_RELEASE { + pub Anonymous: NVME_CDW10_RESERVATION_RELEASE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_RESERVATION_RELEASE {} +impl ::core::clone::Clone for NVME_CDW10_RESERVATION_RELEASE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_RESERVATION_RELEASE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_RESERVATION_RELEASE_0 {} +impl ::core::clone::Clone for NVME_CDW10_RESERVATION_RELEASE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_RESERVATION_REPORT { + pub Anonymous: NVME_CDW10_RESERVATION_REPORT_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_RESERVATION_REPORT {} +impl ::core::clone::Clone for NVME_CDW10_RESERVATION_REPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_RESERVATION_REPORT_0 { + pub NUMD: u32, +} +impl ::core::marker::Copy for NVME_CDW10_RESERVATION_REPORT_0 {} +impl ::core::clone::Clone for NVME_CDW10_RESERVATION_REPORT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_SANITIZE { + pub Anonymous: NVME_CDW10_SANITIZE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_SANITIZE {} +impl ::core::clone::Clone for NVME_CDW10_SANITIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_SANITIZE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_SANITIZE_0 {} +impl ::core::clone::Clone for NVME_CDW10_SANITIZE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_SECURITY_SEND_RECEIVE { + pub Anonymous: NVME_CDW10_SECURITY_SEND_RECEIVE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_SECURITY_SEND_RECEIVE {} +impl ::core::clone::Clone for NVME_CDW10_SECURITY_SEND_RECEIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_SECURITY_SEND_RECEIVE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_SECURITY_SEND_RECEIVE_0 {} +impl ::core::clone::Clone for NVME_CDW10_SECURITY_SEND_RECEIVE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW10_SET_FEATURES { + pub Anonymous: NVME_CDW10_SET_FEATURES_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW10_SET_FEATURES {} +impl ::core::clone::Clone for NVME_CDW10_SET_FEATURES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_SET_FEATURES_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW10_SET_FEATURES_0 {} +impl ::core::clone::Clone for NVME_CDW10_SET_FEATURES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_ZONE_APPEND { + pub SLBA: u64, +} +impl ::core::marker::Copy for NVME_CDW10_ZONE_APPEND {} +impl ::core::clone::Clone for NVME_CDW10_ZONE_APPEND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_ZONE_MANAGEMENT_RECEIVE { + pub SLBA: u64, +} +impl ::core::marker::Copy for NVME_CDW10_ZONE_MANAGEMENT_RECEIVE {} +impl ::core::clone::Clone for NVME_CDW10_ZONE_MANAGEMENT_RECEIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW10_ZONE_MANAGEMENT_SEND { + pub SLBA: u64, +} +impl ::core::marker::Copy for NVME_CDW10_ZONE_MANAGEMENT_SEND {} +impl ::core::clone::Clone for NVME_CDW10_ZONE_MANAGEMENT_SEND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_CREATE_IO_CQ { + pub Anonymous: NVME_CDW11_CREATE_IO_CQ_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_CREATE_IO_CQ {} +impl ::core::clone::Clone for NVME_CDW11_CREATE_IO_CQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_CREATE_IO_CQ_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_CREATE_IO_CQ_0 {} +impl ::core::clone::Clone for NVME_CDW11_CREATE_IO_CQ_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_CREATE_IO_SQ { + pub Anonymous: NVME_CDW11_CREATE_IO_SQ_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_CREATE_IO_SQ {} +impl ::core::clone::Clone for NVME_CDW11_CREATE_IO_SQ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_CREATE_IO_SQ_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_CREATE_IO_SQ_0 {} +impl ::core::clone::Clone for NVME_CDW11_CREATE_IO_SQ_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_DATASET_MANAGEMENT { + pub Anonymous: NVME_CDW11_DATASET_MANAGEMENT_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_DATASET_MANAGEMENT {} +impl ::core::clone::Clone for NVME_CDW11_DATASET_MANAGEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_DATASET_MANAGEMENT_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_DATASET_MANAGEMENT_0 {} +impl ::core::clone::Clone for NVME_CDW11_DATASET_MANAGEMENT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_DIRECTIVE_RECEIVE { + pub Anonymous: NVME_CDW11_DIRECTIVE_RECEIVE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_DIRECTIVE_RECEIVE {} +impl ::core::clone::Clone for NVME_CDW11_DIRECTIVE_RECEIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_DIRECTIVE_RECEIVE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_DIRECTIVE_RECEIVE_0 {} +impl ::core::clone::Clone for NVME_CDW11_DIRECTIVE_RECEIVE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_DIRECTIVE_SEND { + pub Anonymous: NVME_CDW11_DIRECTIVE_SEND_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_DIRECTIVE_SEND {} +impl ::core::clone::Clone for NVME_CDW11_DIRECTIVE_SEND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_DIRECTIVE_SEND_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_DIRECTIVE_SEND_0 {} +impl ::core::clone::Clone for NVME_CDW11_DIRECTIVE_SEND_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURES { + pub NumberOfQueues: NVME_CDW11_FEATURE_NUMBER_OF_QUEUES, + pub InterruptCoalescing: NVME_CDW11_FEATURE_INTERRUPT_COALESCING, + pub InterruptVectorConfig: NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG, + pub LbaRangeType: NVME_CDW11_FEATURE_LBA_RANGE_TYPE, + pub Arbitration: NVME_CDW11_FEATURE_ARBITRATION, + pub VolatileWriteCache: NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE, + pub AsyncEventConfig: NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG, + pub PowerManagement: NVME_CDW11_FEATURE_POWER_MANAGEMENT, + pub AutoPowerStateTransition: NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION, + pub TemperatureThreshold: NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD, + pub ErrorRecovery: NVME_CDW11_FEATURE_ERROR_RECOVERY, + pub HostMemoryBuffer: NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER, + pub WriteAtomicityNormal: NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL, + pub NonOperationalPowerState: NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE, + pub IoCommandSetProfile: NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE, + pub ErrorInjection: NVME_CDW0_FEATURE_ERROR_INJECTION, + pub HostIdentifier: NVME_CDW11_FEATURE_HOST_IDENTIFIER, + pub ReservationPersistence: NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE, + pub ReservationNotificationMask: NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK, + pub GetHostMetadata: NVME_CDW11_FEATURE_GET_HOST_METADATA, + pub SetHostMetadata: NVME_CDW11_FEATURE_SET_HOST_METADATA, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURES {} +impl ::core::clone::Clone for NVME_CDW11_FEATURES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_ARBITRATION { + pub Anonymous: NVME_CDW11_FEATURE_ARBITRATION_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_ARBITRATION {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_ARBITRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_ARBITRATION_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_ARBITRATION_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_ARBITRATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG { + pub Anonymous: NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION { + pub Anonymous: NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_CLEAR_FW_UPDATE_HISTORY { + pub Anonymous: NVME_CDW11_FEATURE_CLEAR_FW_UPDATE_HISTORY_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_CLEAR_FW_UPDATE_HISTORY {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_CLEAR_FW_UPDATE_HISTORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_CLEAR_FW_UPDATE_HISTORY_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_CLEAR_FW_UPDATE_HISTORY_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_CLEAR_FW_UPDATE_HISTORY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS { + pub Anonymous: NVME_CDW11_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_ENABLE_IEEE1667_SILO { + pub Anonymous: NVME_CDW11_FEATURE_ENABLE_IEEE1667_SILO_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_ENABLE_IEEE1667_SILO {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_ENABLE_IEEE1667_SILO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_ENABLE_IEEE1667_SILO_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_ENABLE_IEEE1667_SILO_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_ENABLE_IEEE1667_SILO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_ERROR_RECOVERY { + pub Anonymous: NVME_CDW11_FEATURE_ERROR_RECOVERY_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_ERROR_RECOVERY {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_ERROR_RECOVERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_ERROR_RECOVERY_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_ERROR_RECOVERY_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_ERROR_RECOVERY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_GET_HOST_METADATA { + pub Anonymous: NVME_CDW11_FEATURE_GET_HOST_METADATA_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_GET_HOST_METADATA {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_GET_HOST_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_GET_HOST_METADATA_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_GET_HOST_METADATA_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_GET_HOST_METADATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_HOST_IDENTIFIER { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_HOST_IDENTIFIER {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_HOST_IDENTIFIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER { + pub Anonymous: NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_INTERRUPT_COALESCING { + pub Anonymous: NVME_CDW11_FEATURE_INTERRUPT_COALESCING_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_INTERRUPT_COALESCING {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_INTERRUPT_COALESCING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_INTERRUPT_COALESCING_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_INTERRUPT_COALESCING_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_INTERRUPT_COALESCING_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG { + pub Anonymous: NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE { + pub Anonymous: NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_LBA_RANGE_TYPE { + pub Anonymous: NVME_CDW11_FEATURE_LBA_RANGE_TYPE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_LBA_RANGE_TYPE {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_LBA_RANGE_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_LBA_RANGE_TYPE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_LBA_RANGE_TYPE_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_LBA_RANGE_TYPE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE { + pub Anonymous: NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_NUMBER_OF_QUEUES { + pub Anonymous: NVME_CDW11_FEATURE_NUMBER_OF_QUEUES_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_NUMBER_OF_QUEUES {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_NUMBER_OF_QUEUES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_NUMBER_OF_QUEUES_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_NUMBER_OF_QUEUES_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_NUMBER_OF_QUEUES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_POWER_MANAGEMENT { + pub Anonymous: NVME_CDW11_FEATURE_POWER_MANAGEMENT_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_POWER_MANAGEMENT {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_POWER_MANAGEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_POWER_MANAGEMENT_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_POWER_MANAGEMENT_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_POWER_MANAGEMENT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_READONLY_WRITETHROUGH_MODE { + pub Anonymous: NVME_CDW11_FEATURE_READONLY_WRITETHROUGH_MODE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_READONLY_WRITETHROUGH_MODE {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_READONLY_WRITETHROUGH_MODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_READONLY_WRITETHROUGH_MODE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_READONLY_WRITETHROUGH_MODE_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_READONLY_WRITETHROUGH_MODE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_SET_HOST_METADATA { + pub Anonymous: NVME_CDW11_FEATURE_SET_HOST_METADATA_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_SET_HOST_METADATA {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_SET_HOST_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_SET_HOST_METADATA_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_SET_HOST_METADATA_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_SET_HOST_METADATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_SUPPORTED_CAPABILITY { + pub Anonymous: NVME_CDW11_FEATURE_SUPPORTED_CAPABILITY_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_SUPPORTED_CAPABILITY {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_SUPPORTED_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_SUPPORTED_CAPABILITY_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_SUPPORTED_CAPABILITY_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_SUPPORTED_CAPABILITY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD { + pub Anonymous: NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE { + pub Anonymous: NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL { + pub Anonymous: NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL_0 {} +impl ::core::clone::Clone for NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_FIRMWARE_DOWNLOAD { + pub OFST: u32, +} +impl ::core::marker::Copy for NVME_CDW11_FIRMWARE_DOWNLOAD {} +impl ::core::clone::Clone for NVME_CDW11_FIRMWARE_DOWNLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_GET_LOG_PAGE { + pub Anonymous: NVME_CDW11_GET_LOG_PAGE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_GET_LOG_PAGE {} +impl ::core::clone::Clone for NVME_CDW11_GET_LOG_PAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_GET_LOG_PAGE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_GET_LOG_PAGE_0 {} +impl ::core::clone::Clone for NVME_CDW11_GET_LOG_PAGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_IDENTIFY { + pub Anonymous1: NVME_CDW11_IDENTIFY_0, + pub Anonymous2: NVME_CDW11_IDENTIFY_1, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_IDENTIFY {} +impl ::core::clone::Clone for NVME_CDW11_IDENTIFY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_IDENTIFY_0 { + pub NVMSETID: u16, + pub Reserved: u16, +} +impl ::core::marker::Copy for NVME_CDW11_IDENTIFY_0 {} +impl ::core::clone::Clone for NVME_CDW11_IDENTIFY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_IDENTIFY_1 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_IDENTIFY_1 {} +impl ::core::clone::Clone for NVME_CDW11_IDENTIFY_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_RESERVATION_REPORT { + pub Anonymous: NVME_CDW11_RESERVATION_REPORT_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_RESERVATION_REPORT {} +impl ::core::clone::Clone for NVME_CDW11_RESERVATION_REPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_RESERVATION_REPORT_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW11_RESERVATION_REPORT_0 {} +impl ::core::clone::Clone for NVME_CDW11_RESERVATION_REPORT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW11_SANITIZE { + pub Anonymous: NVME_CDW11_SANITIZE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW11_SANITIZE {} +impl ::core::clone::Clone for NVME_CDW11_SANITIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_SANITIZE_0 { + pub OVRPAT: u32, +} +impl ::core::marker::Copy for NVME_CDW11_SANITIZE_0 {} +impl ::core::clone::Clone for NVME_CDW11_SANITIZE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_SECURITY_RECEIVE { + pub AL: u32, +} +impl ::core::marker::Copy for NVME_CDW11_SECURITY_RECEIVE {} +impl ::core::clone::Clone for NVME_CDW11_SECURITY_RECEIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW11_SECURITY_SEND { + pub TL: u32, +} +impl ::core::marker::Copy for NVME_CDW11_SECURITY_SEND {} +impl ::core::clone::Clone for NVME_CDW11_SECURITY_SEND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW12_DIRECTIVE_RECEIVE { + pub AllocateResources: NVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW12_DIRECTIVE_RECEIVE {} +impl ::core::clone::Clone for NVME_CDW12_DIRECTIVE_RECEIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES { + pub Anonymous: NVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES {} +impl ::core::clone::Clone for NVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES_0 {} +impl ::core::clone::Clone for NVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW12_DIRECTIVE_SEND { + pub EnableDirective: NVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW12_DIRECTIVE_SEND {} +impl ::core::clone::Clone for NVME_CDW12_DIRECTIVE_SEND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE { + pub Anonymous: NVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE {} +impl ::core::clone::Clone for NVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE_0 {} +impl ::core::clone::Clone for NVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW12_FEATURES { + pub HostMemoryBuffer: NVME_CDW12_FEATURE_HOST_MEMORY_BUFFER, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW12_FEATURES {} +impl ::core::clone::Clone for NVME_CDW12_FEATURES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW12_FEATURE_HOST_MEMORY_BUFFER { + pub Anonymous: NVME_CDW12_FEATURE_HOST_MEMORY_BUFFER_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW12_FEATURE_HOST_MEMORY_BUFFER {} +impl ::core::clone::Clone for NVME_CDW12_FEATURE_HOST_MEMORY_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW12_FEATURE_HOST_MEMORY_BUFFER_0 { + pub HSIZE: u32, +} +impl ::core::marker::Copy for NVME_CDW12_FEATURE_HOST_MEMORY_BUFFER_0 {} +impl ::core::clone::Clone for NVME_CDW12_FEATURE_HOST_MEMORY_BUFFER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW12_GET_LOG_PAGE { + pub LPOL: u32, +} +impl ::core::marker::Copy for NVME_CDW12_GET_LOG_PAGE {} +impl ::core::clone::Clone for NVME_CDW12_GET_LOG_PAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW12_READ_WRITE { + pub Anonymous: NVME_CDW12_READ_WRITE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW12_READ_WRITE {} +impl ::core::clone::Clone for NVME_CDW12_READ_WRITE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW12_READ_WRITE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW12_READ_WRITE_0 {} +impl ::core::clone::Clone for NVME_CDW12_READ_WRITE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW12_ZONE_APPEND { + pub Anonymous: NVME_CDW12_ZONE_APPEND_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW12_ZONE_APPEND {} +impl ::core::clone::Clone for NVME_CDW12_ZONE_APPEND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW12_ZONE_APPEND_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW12_ZONE_APPEND_0 {} +impl ::core::clone::Clone for NVME_CDW12_ZONE_APPEND_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW13_FEATURES { + pub HostMemoryBuffer: NVME_CDW13_FEATURE_HOST_MEMORY_BUFFER, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW13_FEATURES {} +impl ::core::clone::Clone for NVME_CDW13_FEATURES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW13_FEATURE_HOST_MEMORY_BUFFER { + pub Anonymous: NVME_CDW13_FEATURE_HOST_MEMORY_BUFFER_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW13_FEATURE_HOST_MEMORY_BUFFER {} +impl ::core::clone::Clone for NVME_CDW13_FEATURE_HOST_MEMORY_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW13_FEATURE_HOST_MEMORY_BUFFER_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW13_FEATURE_HOST_MEMORY_BUFFER_0 {} +impl ::core::clone::Clone for NVME_CDW13_FEATURE_HOST_MEMORY_BUFFER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW13_GET_LOG_PAGE { + pub LPOU: u32, +} +impl ::core::marker::Copy for NVME_CDW13_GET_LOG_PAGE {} +impl ::core::clone::Clone for NVME_CDW13_GET_LOG_PAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW13_READ_WRITE { + pub Anonymous: NVME_CDW13_READ_WRITE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW13_READ_WRITE {} +impl ::core::clone::Clone for NVME_CDW13_READ_WRITE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW13_READ_WRITE_0 { + pub DSM: NVME_CDW13_READ_WRITE_0_0, + pub Reserved: u8, + pub DSPEC: u16, +} +impl ::core::marker::Copy for NVME_CDW13_READ_WRITE_0 {} +impl ::core::clone::Clone for NVME_CDW13_READ_WRITE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW13_READ_WRITE_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_CDW13_READ_WRITE_0_0 {} +impl ::core::clone::Clone for NVME_CDW13_READ_WRITE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW13_ZONE_MANAGEMENT_RECEIVE { + pub Anonymous: NVME_CDW13_ZONE_MANAGEMENT_RECEIVE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW13_ZONE_MANAGEMENT_RECEIVE {} +impl ::core::clone::Clone for NVME_CDW13_ZONE_MANAGEMENT_RECEIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW13_ZONE_MANAGEMENT_RECEIVE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW13_ZONE_MANAGEMENT_RECEIVE_0 {} +impl ::core::clone::Clone for NVME_CDW13_ZONE_MANAGEMENT_RECEIVE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW13_ZONE_MANAGEMENT_SEND { + pub Anonymous: NVME_CDW13_ZONE_MANAGEMENT_SEND_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW13_ZONE_MANAGEMENT_SEND {} +impl ::core::clone::Clone for NVME_CDW13_ZONE_MANAGEMENT_SEND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW13_ZONE_MANAGEMENT_SEND_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW13_ZONE_MANAGEMENT_SEND_0 {} +impl ::core::clone::Clone for NVME_CDW13_ZONE_MANAGEMENT_SEND_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW14_FEATURES { + pub HostMemoryBuffer: NVME_CDW14_FEATURE_HOST_MEMORY_BUFFER, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW14_FEATURES {} +impl ::core::clone::Clone for NVME_CDW14_FEATURES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW14_FEATURE_HOST_MEMORY_BUFFER { + pub Anonymous: NVME_CDW14_FEATURE_HOST_MEMORY_BUFFER_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW14_FEATURE_HOST_MEMORY_BUFFER {} +impl ::core::clone::Clone for NVME_CDW14_FEATURE_HOST_MEMORY_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW14_FEATURE_HOST_MEMORY_BUFFER_0 { + pub HMDLUA: u32, +} +impl ::core::marker::Copy for NVME_CDW14_FEATURE_HOST_MEMORY_BUFFER_0 {} +impl ::core::clone::Clone for NVME_CDW14_FEATURE_HOST_MEMORY_BUFFER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW14_GET_LOG_PAGE { + pub Anonymous: NVME_CDW14_GET_LOG_PAGE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW14_GET_LOG_PAGE {} +impl ::core::clone::Clone for NVME_CDW14_GET_LOG_PAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW14_GET_LOG_PAGE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW14_GET_LOG_PAGE_0 {} +impl ::core::clone::Clone for NVME_CDW14_GET_LOG_PAGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW15_FEATURES { + pub HostMemoryBuffer: NVME_CDW15_FEATURE_HOST_MEMORY_BUFFER, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW15_FEATURES {} +impl ::core::clone::Clone for NVME_CDW15_FEATURES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW15_FEATURE_HOST_MEMORY_BUFFER { + pub Anonymous: NVME_CDW15_FEATURE_HOST_MEMORY_BUFFER_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW15_FEATURE_HOST_MEMORY_BUFFER {} +impl ::core::clone::Clone for NVME_CDW15_FEATURE_HOST_MEMORY_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW15_FEATURE_HOST_MEMORY_BUFFER_0 { + pub HMDLEC: u32, +} +impl ::core::marker::Copy for NVME_CDW15_FEATURE_HOST_MEMORY_BUFFER_0 {} +impl ::core::clone::Clone for NVME_CDW15_FEATURE_HOST_MEMORY_BUFFER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW15_READ_WRITE { + pub Anonymous: NVME_CDW15_READ_WRITE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW15_READ_WRITE {} +impl ::core::clone::Clone for NVME_CDW15_READ_WRITE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW15_READ_WRITE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW15_READ_WRITE_0 {} +impl ::core::clone::Clone for NVME_CDW15_READ_WRITE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CDW15_ZONE_APPEND { + pub Anonymous: NVME_CDW15_ZONE_APPEND_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CDW15_ZONE_APPEND {} +impl ::core::clone::Clone for NVME_CDW15_ZONE_APPEND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CDW15_ZONE_APPEND_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CDW15_ZONE_APPEND_0 {} +impl ::core::clone::Clone for NVME_CDW15_ZONE_APPEND_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CHANGED_NAMESPACE_LIST_LOG { + pub NSID: [u32; 1024], +} +impl ::core::marker::Copy for NVME_CHANGED_NAMESPACE_LIST_LOG {} +impl ::core::clone::Clone for NVME_CHANGED_NAMESPACE_LIST_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CHANGED_ZONE_LIST_LOG { + pub ZoneIdentifiersCount: u16, + pub Reserved: [u8; 6], + pub ZoneIdentifier: [u64; 511], +} +impl ::core::marker::Copy for NVME_CHANGED_ZONE_LIST_LOG {} +impl ::core::clone::Clone for NVME_CHANGED_ZONE_LIST_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND { + pub CDW0: NVME_COMMAND_DWORD0, + pub NSID: u32, + pub Reserved0: [u32; 2], + pub MPTR: u64, + pub PRP1: u64, + pub PRP2: u64, + pub u: NVME_COMMAND_0, +} +impl ::core::marker::Copy for NVME_COMMAND {} +impl ::core::clone::Clone for NVME_COMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_COMMAND_0 { + pub GENERAL: NVME_COMMAND_0_9, + pub IDENTIFY: NVME_COMMAND_0_12, + pub ABORT: NVME_COMMAND_0_0, + pub GETFEATURES: NVME_COMMAND_0_10, + pub SETFEATURES: NVME_COMMAND_0_21, + pub GETLOGPAGE: NVME_COMMAND_0_11, + pub CREATEIOCQ: NVME_COMMAND_0_1, + pub CREATEIOSQ: NVME_COMMAND_0_2, + pub DATASETMANAGEMENT: NVME_COMMAND_0_3, + pub SECURITYSEND: NVME_COMMAND_0_20, + pub SECURITYRECEIVE: NVME_COMMAND_0_19, + pub FIRMWAREDOWNLOAD: NVME_COMMAND_0_7, + pub FIRMWAREACTIVATE: NVME_COMMAND_0_6, + pub FORMATNVM: NVME_COMMAND_0_8, + pub DIRECTIVERECEIVE: NVME_COMMAND_0_4, + pub DIRECTIVESEND: NVME_COMMAND_0_5, + pub SANITIZE: NVME_COMMAND_0_18, + pub READWRITE: NVME_COMMAND_0_13, + pub RESERVATIONACQUIRE: NVME_COMMAND_0_14, + pub RESERVATIONREGISTER: NVME_COMMAND_0_15, + pub RESERVATIONRELEASE: NVME_COMMAND_0_16, + pub RESERVATIONREPORT: NVME_COMMAND_0_17, + pub ZONEMANAGEMENTSEND: NVME_COMMAND_0_24, + pub ZONEMANAGEMENTRECEIVE: NVME_COMMAND_0_23, + pub ZONEAPPEND: NVME_COMMAND_0_22, +} +impl ::core::marker::Copy for NVME_COMMAND_0 {} +impl ::core::clone::Clone for NVME_COMMAND_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_0 { + pub CDW10: NVME_CDW10_ABORT, + pub CDW11: u32, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_0 {} +impl ::core::clone::Clone for NVME_COMMAND_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_1 { + pub CDW10: NVME_CDW10_CREATE_IO_QUEUE, + pub CDW11: NVME_CDW11_CREATE_IO_CQ, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_1 {} +impl ::core::clone::Clone for NVME_COMMAND_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_2 { + pub CDW10: NVME_CDW10_CREATE_IO_QUEUE, + pub CDW11: NVME_CDW11_CREATE_IO_SQ, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_2 {} +impl ::core::clone::Clone for NVME_COMMAND_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_3 { + pub CDW10: NVME_CDW10_DATASET_MANAGEMENT, + pub CDW11: NVME_CDW11_DATASET_MANAGEMENT, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_3 {} +impl ::core::clone::Clone for NVME_COMMAND_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_4 { + pub CDW10: NVME_CDW10_DIRECTIVE_RECEIVE, + pub CDW11: NVME_CDW11_DIRECTIVE_RECEIVE, + pub CDW12: NVME_CDW12_DIRECTIVE_RECEIVE, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_4 {} +impl ::core::clone::Clone for NVME_COMMAND_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_5 { + pub CDW10: NVME_CDW10_DIRECTIVE_SEND, + pub CDW11: NVME_CDW11_DIRECTIVE_SEND, + pub CDW12: NVME_CDW12_DIRECTIVE_SEND, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_5 {} +impl ::core::clone::Clone for NVME_COMMAND_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_6 { + pub CDW10: NVME_CDW10_FIRMWARE_ACTIVATE, + pub CDW11: u32, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_6 {} +impl ::core::clone::Clone for NVME_COMMAND_0_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_7 { + pub CDW10: NVME_CDW10_FIRMWARE_DOWNLOAD, + pub CDW11: NVME_CDW11_FIRMWARE_DOWNLOAD, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_7 {} +impl ::core::clone::Clone for NVME_COMMAND_0_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_8 { + pub CDW10: NVME_CDW10_FORMAT_NVM, + pub CDW11: u32, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_8 {} +impl ::core::clone::Clone for NVME_COMMAND_0_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_9 { + pub CDW10: u32, + pub CDW11: u32, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_9 {} +impl ::core::clone::Clone for NVME_COMMAND_0_9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_10 { + pub CDW10: NVME_CDW10_GET_FEATURES, + pub CDW11: NVME_CDW11_FEATURES, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_10 {} +impl ::core::clone::Clone for NVME_COMMAND_0_10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_11 { + pub Anonymous: NVME_COMMAND_0_11_0, + pub CDW11: NVME_CDW11_GET_LOG_PAGE, + pub CDW12: NVME_CDW12_GET_LOG_PAGE, + pub CDW13: NVME_CDW13_GET_LOG_PAGE, + pub CDW14: NVME_CDW14_GET_LOG_PAGE, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_11 {} +impl ::core::clone::Clone for NVME_COMMAND_0_11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_COMMAND_0_11_0 { + pub CDW10: NVME_CDW10_GET_LOG_PAGE, + pub CDW10_V13: NVME_CDW10_GET_LOG_PAGE_V13, +} +impl ::core::marker::Copy for NVME_COMMAND_0_11_0 {} +impl ::core::clone::Clone for NVME_COMMAND_0_11_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_12 { + pub CDW10: NVME_CDW10_IDENTIFY, + pub CDW11: NVME_CDW11_IDENTIFY, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_12 {} +impl ::core::clone::Clone for NVME_COMMAND_0_12 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_13 { + pub LBALOW: u32, + pub LBAHIGH: u32, + pub CDW12: NVME_CDW12_READ_WRITE, + pub CDW13: NVME_CDW13_READ_WRITE, + pub CDW14: u32, + pub CDW15: NVME_CDW15_READ_WRITE, +} +impl ::core::marker::Copy for NVME_COMMAND_0_13 {} +impl ::core::clone::Clone for NVME_COMMAND_0_13 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_14 { + pub CDW10: NVME_CDW10_RESERVATION_ACQUIRE, + pub CDW11: u32, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_14 {} +impl ::core::clone::Clone for NVME_COMMAND_0_14 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_15 { + pub CDW10: NVME_CDW10_RESERVATION_REGISTER, + pub CDW11: u32, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_15 {} +impl ::core::clone::Clone for NVME_COMMAND_0_15 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_16 { + pub CDW10: NVME_CDW10_RESERVATION_RELEASE, + pub CDW11: u32, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_16 {} +impl ::core::clone::Clone for NVME_COMMAND_0_16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_17 { + pub CDW10: NVME_CDW10_RESERVATION_REPORT, + pub CDW11: NVME_CDW11_RESERVATION_REPORT, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_17 {} +impl ::core::clone::Clone for NVME_COMMAND_0_17 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_18 { + pub CDW10: NVME_CDW10_SANITIZE, + pub CDW11: NVME_CDW11_SANITIZE, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_18 {} +impl ::core::clone::Clone for NVME_COMMAND_0_18 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_19 { + pub CDW10: NVME_CDW10_SECURITY_SEND_RECEIVE, + pub CDW11: NVME_CDW11_SECURITY_RECEIVE, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_19 {} +impl ::core::clone::Clone for NVME_COMMAND_0_19 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_20 { + pub CDW10: NVME_CDW10_SECURITY_SEND_RECEIVE, + pub CDW11: NVME_CDW11_SECURITY_SEND, + pub CDW12: u32, + pub CDW13: u32, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_20 {} +impl ::core::clone::Clone for NVME_COMMAND_0_20 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_21 { + pub CDW10: NVME_CDW10_SET_FEATURES, + pub CDW11: NVME_CDW11_FEATURES, + pub CDW12: NVME_CDW12_FEATURES, + pub CDW13: NVME_CDW13_FEATURES, + pub CDW14: NVME_CDW14_FEATURES, + pub CDW15: NVME_CDW15_FEATURES, +} +impl ::core::marker::Copy for NVME_COMMAND_0_21 {} +impl ::core::clone::Clone for NVME_COMMAND_0_21 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_22 { + pub CDW1011: NVME_CDW10_ZONE_APPEND, + pub CDW12: NVME_CDW12_ZONE_APPEND, + pub CDW13: u32, + pub ILBRT: u32, + pub CDW15: NVME_CDW15_ZONE_APPEND, +} +impl ::core::marker::Copy for NVME_COMMAND_0_22 {} +impl ::core::clone::Clone for NVME_COMMAND_0_22 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_23 { + pub CDW1011: NVME_CDW10_ZONE_MANAGEMENT_RECEIVE, + pub DWORDCOUNT: u32, + pub CDW13: NVME_CDW13_ZONE_MANAGEMENT_RECEIVE, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_23 {} +impl ::core::clone::Clone for NVME_COMMAND_0_23 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_0_24 { + pub CDW1011: NVME_CDW10_ZONE_MANAGEMENT_SEND, + pub CDW12: u32, + pub CDW13: NVME_CDW13_ZONE_MANAGEMENT_SEND, + pub CDW14: u32, + pub CDW15: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_0_24 {} +impl ::core::clone::Clone for NVME_COMMAND_0_24 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_COMMAND_DWORD0 { + pub Anonymous: NVME_COMMAND_DWORD0_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_DWORD0 {} +impl ::core::clone::Clone for NVME_COMMAND_DWORD0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_DWORD0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_DWORD0_0 {} +impl ::core::clone::Clone for NVME_COMMAND_DWORD0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_COMMAND_EFFECTS_DATA { + pub Anonymous: NVME_COMMAND_EFFECTS_DATA_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_EFFECTS_DATA {} +impl ::core::clone::Clone for NVME_COMMAND_EFFECTS_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_EFFECTS_DATA_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_COMMAND_EFFECTS_DATA_0 {} +impl ::core::clone::Clone for NVME_COMMAND_EFFECTS_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_EFFECTS_LOG { + pub ACS: [NVME_COMMAND_EFFECTS_DATA; 256], + pub IOCS: [NVME_COMMAND_EFFECTS_DATA; 256], + pub Reserved: [u8; 2048], +} +impl ::core::marker::Copy for NVME_COMMAND_EFFECTS_LOG {} +impl ::core::clone::Clone for NVME_COMMAND_EFFECTS_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_COMMAND_STATUS { + pub Anonymous: NVME_COMMAND_STATUS_0, + pub AsUshort: u16, +} +impl ::core::marker::Copy for NVME_COMMAND_STATUS {} +impl ::core::clone::Clone for NVME_COMMAND_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMMAND_STATUS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_COMMAND_STATUS_0 {} +impl ::core::clone::Clone for NVME_COMMAND_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMPLETION_DW0_ASYNC_EVENT_REQUEST { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_COMPLETION_DW0_ASYNC_EVENT_REQUEST {} +impl ::core::clone::Clone for NVME_COMPLETION_DW0_ASYNC_EVENT_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMPLETION_DW0_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES { + pub Anonymous: NVME_COMPLETION_DW0_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_COMPLETION_DW0_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES {} +impl ::core::clone::Clone for NVME_COMPLETION_DW0_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMPLETION_DW0_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_COMPLETION_DW0_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES_0 {} +impl ::core::clone::Clone for NVME_COMPLETION_DW0_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMPLETION_ENTRY { + pub DW0: u32, + pub DW1: u32, + pub DW2: NVME_COMPLETION_ENTRY_0, + pub DW3: NVME_COMPLETION_ENTRY_1, +} +impl ::core::marker::Copy for NVME_COMPLETION_ENTRY {} +impl ::core::clone::Clone for NVME_COMPLETION_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_COMPLETION_ENTRY_0 { + pub Anonymous: NVME_COMPLETION_ENTRY_0_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_COMPLETION_ENTRY_0 {} +impl ::core::clone::Clone for NVME_COMPLETION_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMPLETION_ENTRY_0_0 { + pub SQHD: u16, + pub SQID: u16, +} +impl ::core::marker::Copy for NVME_COMPLETION_ENTRY_0_0 {} +impl ::core::clone::Clone for NVME_COMPLETION_ENTRY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_COMPLETION_ENTRY_1 { + pub Anonymous: NVME_COMPLETION_ENTRY_1_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_COMPLETION_ENTRY_1 {} +impl ::core::clone::Clone for NVME_COMPLETION_ENTRY_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMPLETION_ENTRY_1_0 { + pub CID: u16, + pub Status: NVME_COMMAND_STATUS, +} +impl ::core::marker::Copy for NVME_COMPLETION_ENTRY_1_0 {} +impl ::core::clone::Clone for NVME_COMPLETION_ENTRY_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_COMPLETION_QUEUE_HEAD_DOORBELL { + pub Anonymous: NVME_COMPLETION_QUEUE_HEAD_DOORBELL_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_COMPLETION_QUEUE_HEAD_DOORBELL {} +impl ::core::clone::Clone for NVME_COMPLETION_QUEUE_HEAD_DOORBELL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_COMPLETION_QUEUE_HEAD_DOORBELL_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_COMPLETION_QUEUE_HEAD_DOORBELL_0 {} +impl ::core::clone::Clone for NVME_COMPLETION_QUEUE_HEAD_DOORBELL_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CONTEXT_ATTRIBUTES { + pub Anonymous: NVME_CONTEXT_ATTRIBUTES_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CONTEXT_ATTRIBUTES {} +impl ::core::clone::Clone for NVME_CONTEXT_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CONTEXT_ATTRIBUTES_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CONTEXT_ATTRIBUTES_0 {} +impl ::core::clone::Clone for NVME_CONTEXT_ATTRIBUTES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CONTROLLER_CAPABILITIES { + pub Anonymous: NVME_CONTROLLER_CAPABILITIES_0, + pub AsUlonglong: u64, +} +impl ::core::marker::Copy for NVME_CONTROLLER_CAPABILITIES {} +impl ::core::clone::Clone for NVME_CONTROLLER_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CONTROLLER_CAPABILITIES_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for NVME_CONTROLLER_CAPABILITIES_0 {} +impl ::core::clone::Clone for NVME_CONTROLLER_CAPABILITIES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CONTROLLER_CONFIGURATION { + pub Anonymous: NVME_CONTROLLER_CONFIGURATION_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CONTROLLER_CONFIGURATION {} +impl ::core::clone::Clone for NVME_CONTROLLER_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CONTROLLER_CONFIGURATION_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CONTROLLER_CONFIGURATION_0 {} +impl ::core::clone::Clone for NVME_CONTROLLER_CONFIGURATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CONTROLLER_LIST { + pub NumberOfIdentifiers: u16, + pub ControllerID: [u16; 2047], +} +impl ::core::marker::Copy for NVME_CONTROLLER_LIST {} +impl ::core::clone::Clone for NVME_CONTROLLER_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CONTROLLER_MEMORY_BUFFER_LOCATION { + pub Anonymous: NVME_CONTROLLER_MEMORY_BUFFER_LOCATION_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CONTROLLER_MEMORY_BUFFER_LOCATION {} +impl ::core::clone::Clone for NVME_CONTROLLER_MEMORY_BUFFER_LOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CONTROLLER_MEMORY_BUFFER_LOCATION_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CONTROLLER_MEMORY_BUFFER_LOCATION_0 {} +impl ::core::clone::Clone for NVME_CONTROLLER_MEMORY_BUFFER_LOCATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CONTROLLER_MEMORY_BUFFER_SIZE { + pub Anonymous: NVME_CONTROLLER_MEMORY_BUFFER_SIZE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CONTROLLER_MEMORY_BUFFER_SIZE {} +impl ::core::clone::Clone for NVME_CONTROLLER_MEMORY_BUFFER_SIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CONTROLLER_MEMORY_BUFFER_SIZE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CONTROLLER_MEMORY_BUFFER_SIZE_0 {} +impl ::core::clone::Clone for NVME_CONTROLLER_MEMORY_BUFFER_SIZE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CONTROLLER_REGISTERS { + pub CAP: NVME_CONTROLLER_CAPABILITIES, + pub VS: NVME_VERSION, + pub INTMS: u32, + pub INTMC: u32, + pub CC: NVME_CONTROLLER_CONFIGURATION, + pub Reserved0: u32, + pub CSTS: NVME_CONTROLLER_STATUS, + pub NSSR: NVME_NVM_SUBSYSTEM_RESET, + pub AQA: NVME_ADMIN_QUEUE_ATTRIBUTES, + pub ASQ: NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS, + pub ACQ: NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS, + pub CMBLOC: NVME_CONTROLLER_MEMORY_BUFFER_LOCATION, + pub CMBSZ: NVME_CONTROLLER_MEMORY_BUFFER_SIZE, + pub Reserved2: [u32; 944], + pub Reserved3: [u32; 64], + pub Doorbells: [u32; 1], +} +impl ::core::marker::Copy for NVME_CONTROLLER_REGISTERS {} +impl ::core::clone::Clone for NVME_CONTROLLER_REGISTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_CONTROLLER_STATUS { + pub Anonymous: NVME_CONTROLLER_STATUS_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_CONTROLLER_STATUS {} +impl ::core::clone::Clone for NVME_CONTROLLER_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_CONTROLLER_STATUS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_CONTROLLER_STATUS_0 {} +impl ::core::clone::Clone for NVME_CONTROLLER_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_DEVICE_SELF_TEST_LOG { + pub CurrentOperation: NVME_DEVICE_SELF_TEST_LOG_1, + pub CurrentCompletion: NVME_DEVICE_SELF_TEST_LOG_0, + pub Reserved: [u8; 2], + pub ResultData: [NVME_DEVICE_SELF_TEST_RESULT_DATA; 20], +} +impl ::core::marker::Copy for NVME_DEVICE_SELF_TEST_LOG {} +impl ::core::clone::Clone for NVME_DEVICE_SELF_TEST_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_DEVICE_SELF_TEST_LOG_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_DEVICE_SELF_TEST_LOG_0 {} +impl ::core::clone::Clone for NVME_DEVICE_SELF_TEST_LOG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_DEVICE_SELF_TEST_LOG_1 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_DEVICE_SELF_TEST_LOG_1 {} +impl ::core::clone::Clone for NVME_DEVICE_SELF_TEST_LOG_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_DEVICE_SELF_TEST_RESULT_DATA { + pub Status: NVME_DEVICE_SELF_TEST_RESULT_DATA_1, + pub SegmentNumber: u8, + pub ValidDiagnostics: NVME_DEVICE_SELF_TEST_RESULT_DATA_2, + pub Reserved: u8, + pub POH: u64, + pub NSID: u32, + pub FailingLBA: u64, + pub StatusCodeType: NVME_DEVICE_SELF_TEST_RESULT_DATA_0, + pub StatusCode: u8, + pub VendorSpecific: u16, +} +impl ::core::marker::Copy for NVME_DEVICE_SELF_TEST_RESULT_DATA {} +impl ::core::clone::Clone for NVME_DEVICE_SELF_TEST_RESULT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_DEVICE_SELF_TEST_RESULT_DATA_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_DEVICE_SELF_TEST_RESULT_DATA_0 {} +impl ::core::clone::Clone for NVME_DEVICE_SELF_TEST_RESULT_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_DEVICE_SELF_TEST_RESULT_DATA_1 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_DEVICE_SELF_TEST_RESULT_DATA_1 {} +impl ::core::clone::Clone for NVME_DEVICE_SELF_TEST_RESULT_DATA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_DEVICE_SELF_TEST_RESULT_DATA_2 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_DEVICE_SELF_TEST_RESULT_DATA_2 {} +impl ::core::clone::Clone for NVME_DEVICE_SELF_TEST_RESULT_DATA_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS { + pub DirectivesSupported: NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS_DESCRIPTOR, + pub DirectivesEnabled: NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS_DESCRIPTOR, +} +impl ::core::marker::Copy for NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS {} +impl ::core::clone::Clone for NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS_DESCRIPTOR { + pub _bitfield: u8, + pub Reserved1: [u8; 31], +} +impl ::core::marker::Copy for NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS_DESCRIPTOR {} +impl ::core::clone::Clone for NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_DIRECTIVE_STREAMS_GET_STATUS_DATA { + pub OpenStreamCount: u16, + pub StreamIdentifiers: [u16; 65535], +} +impl ::core::marker::Copy for NVME_DIRECTIVE_STREAMS_GET_STATUS_DATA {} +impl ::core::clone::Clone for NVME_DIRECTIVE_STREAMS_GET_STATUS_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_DIRECTIVE_STREAMS_RETURN_PARAMETERS { + pub MSL: u16, + pub NSSA: u16, + pub NSSO: u16, + pub Reserved0: [u8; 10], + pub SWS: u32, + pub SGS: u16, + pub NSA: u16, + pub NSO: u16, + pub Reserved1: [u8; 6], +} +impl ::core::marker::Copy for NVME_DIRECTIVE_STREAMS_RETURN_PARAMETERS {} +impl ::core::clone::Clone for NVME_DIRECTIVE_STREAMS_RETURN_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_ENDURANCE_GROUP_LOG { + pub Reserved0: u32, + pub AvailableSpareThreshold: u8, + pub PercentageUsed: u8, + pub Reserved1: [u8; 26], + pub EnduranceEstimate: [u8; 16], + pub DataUnitsRead: [u8; 16], + pub DataUnitsWritten: [u8; 16], + pub MediaUnitsWritten: [u8; 16], + pub Reserved2: [u8; 416], +} +impl ::core::marker::Copy for NVME_ENDURANCE_GROUP_LOG {} +impl ::core::clone::Clone for NVME_ENDURANCE_GROUP_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ERROR_INFO_LOG { + pub ErrorCount: u64, + pub SQID: u16, + pub CMDID: u16, + pub Status: NVME_COMMAND_STATUS, + pub ParameterErrorLocation: NVME_ERROR_INFO_LOG_0, + pub Lba: u64, + pub NameSpace: u32, + pub VendorInfoAvailable: u8, + pub Reserved0: [u8; 3], + pub CommandSpecificInfo: u64, + pub Reserved1: [u8; 24], +} +impl ::core::marker::Copy for NVME_ERROR_INFO_LOG {} +impl ::core::clone::Clone for NVME_ERROR_INFO_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ERROR_INFO_LOG_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_ERROR_INFO_LOG_0 {} +impl ::core::clone::Clone for NVME_ERROR_INFO_LOG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ERROR_INJECTION_ENTRY { + pub Flags: NVME_ERROR_INJECTION_ENTRY_0, + pub Reserved1: u8, + pub ErrorInjectionType: u16, + pub ErrorInjectionTypeSpecific: [u8; 28], +} +impl ::core::marker::Copy for NVME_ERROR_INJECTION_ENTRY {} +impl ::core::clone::Clone for NVME_ERROR_INJECTION_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_ERROR_INJECTION_ENTRY_0 { + pub Anonymous: NVME_ERROR_INJECTION_ENTRY_0_0, + pub AsUchar: u8, +} +impl ::core::marker::Copy for NVME_ERROR_INJECTION_ENTRY_0 {} +impl ::core::clone::Clone for NVME_ERROR_INJECTION_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ERROR_INJECTION_ENTRY_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_ERROR_INJECTION_ENTRY_0_0 {} +impl ::core::clone::Clone for NVME_ERROR_INJECTION_ENTRY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_EXTENDED_REPORT_ZONE_INFO { + pub ZoneCount: u64, + pub Reserved: [u64; 7], + pub Desc: [NVME_ZONE_EXTENDED_REPORT_ZONE_DESC; 1], +} +impl ::core::marker::Copy for NVME_EXTENDED_REPORT_ZONE_INFO {} +impl ::core::clone::Clone for NVME_EXTENDED_REPORT_ZONE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_FEATURE_HOST_IDENTIFIER_DATA { + pub HOSTID: [u8; 16], +} +impl ::core::marker::Copy for NVME_FEATURE_HOST_IDENTIFIER_DATA {} +impl ::core::clone::Clone for NVME_FEATURE_HOST_IDENTIFIER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_FEATURE_HOST_METADATA_DATA { + pub NumberOfMetadataElementDescriptors: u8, + pub Reserved0: u8, + pub MetadataElementDescriptors: [u8; 4094], +} +impl ::core::marker::Copy for NVME_FEATURE_HOST_METADATA_DATA {} +impl ::core::clone::Clone for NVME_FEATURE_HOST_METADATA_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_FIRMWARE_SLOT_INFO_LOG { + pub AFI: NVME_FIRMWARE_SLOT_INFO_LOG_0, + pub Reserved0: [u8; 7], + pub FRS: [u64; 7], + pub Reserved1: [u8; 448], +} +impl ::core::marker::Copy for NVME_FIRMWARE_SLOT_INFO_LOG {} +impl ::core::clone::Clone for NVME_FIRMWARE_SLOT_INFO_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_FIRMWARE_SLOT_INFO_LOG_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_FIRMWARE_SLOT_INFO_LOG_0 {} +impl ::core::clone::Clone for NVME_FIRMWARE_SLOT_INFO_LOG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_HEALTH_INFO_LOG { + pub CriticalWarning: NVME_HEALTH_INFO_LOG_0, + pub Temperature: [u8; 2], + pub AvailableSpare: u8, + pub AvailableSpareThreshold: u8, + pub PercentageUsed: u8, + pub Reserved0: [u8; 26], + pub DataUnitRead: [u8; 16], + pub DataUnitWritten: [u8; 16], + pub HostReadCommands: [u8; 16], + pub HostWrittenCommands: [u8; 16], + pub ControllerBusyTime: [u8; 16], + pub PowerCycle: [u8; 16], + pub PowerOnHours: [u8; 16], + pub UnsafeShutdowns: [u8; 16], + pub MediaErrors: [u8; 16], + pub ErrorInfoLogEntryCount: [u8; 16], + pub WarningCompositeTemperatureTime: u32, + pub CriticalCompositeTemperatureTime: u32, + pub TemperatureSensor1: u16, + pub TemperatureSensor2: u16, + pub TemperatureSensor3: u16, + pub TemperatureSensor4: u16, + pub TemperatureSensor5: u16, + pub TemperatureSensor6: u16, + pub TemperatureSensor7: u16, + pub TemperatureSensor8: u16, + pub Reserved1: [u8; 296], +} +impl ::core::marker::Copy for NVME_HEALTH_INFO_LOG {} +impl ::core::clone::Clone for NVME_HEALTH_INFO_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_HEALTH_INFO_LOG_0 { + pub Anonymous: NVME_HEALTH_INFO_LOG_0_0, + pub AsUchar: u8, +} +impl ::core::marker::Copy for NVME_HEALTH_INFO_LOG_0 {} +impl ::core::clone::Clone for NVME_HEALTH_INFO_LOG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_HEALTH_INFO_LOG_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_HEALTH_INFO_LOG_0_0 {} +impl ::core::clone::Clone for NVME_HEALTH_INFO_LOG_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_HOST_MEMORY_BUFFER_DESCRIPTOR_ENTRY { + pub BADD: u64, + pub BSIZE: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for NVME_HOST_MEMORY_BUFFER_DESCRIPTOR_ENTRY {} +impl ::core::clone::Clone for NVME_HOST_MEMORY_BUFFER_DESCRIPTOR_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_HOST_METADATA_ELEMENT_DESCRIPTOR { + pub _bitfield: u32, + pub EVAL: [u8; 1], +} +impl ::core::marker::Copy for NVME_HOST_METADATA_ELEMENT_DESCRIPTOR {} +impl ::core::clone::Clone for NVME_HOST_METADATA_ELEMENT_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA { + pub VID: u16, + pub SSVID: u16, + pub SN: [u8; 20], + pub MN: [u8; 40], + pub FR: [u8; 8], + pub RAB: u8, + pub IEEE: [u8; 3], + pub CMIC: NVME_IDENTIFY_CONTROLLER_DATA_3, + pub MDTS: u8, + pub CNTLID: u16, + pub VER: u32, + pub RTD3R: u32, + pub RTD3E: u32, + pub OAES: NVME_IDENTIFY_CONTROLLER_DATA_14, + pub CTRATT: NVME_IDENTIFY_CONTROLLER_DATA_5, + pub RRLS: NVME_IDENTIFY_CONTROLLER_DATA_17, + pub Reserved0: [u8; 9], + pub CNTRLTYPE: u8, + pub FGUID: [u8; 16], + pub CRDT1: u16, + pub CRDT2: u16, + pub CRDT3: u16, + pub Reserved0_1: [u8; 106], + pub ReservedForManagement: [u8; 16], + pub OACS: NVME_IDENTIFY_CONTROLLER_DATA_13, + pub ACL: u8, + pub AERL: u8, + pub FRMW: NVME_IDENTIFY_CONTROLLER_DATA_7, + pub LPA: NVME_IDENTIFY_CONTROLLER_DATA_10, + pub ELPE: u8, + pub NPSS: u8, + pub AVSCC: NVME_IDENTIFY_CONTROLLER_DATA_2, + pub APSTA: NVME_IDENTIFY_CONTROLLER_DATA_1, + pub WCTEMP: u16, + pub CCTEMP: u16, + pub MTFA: u16, + pub HMPRE: u32, + pub HMMIN: u32, + pub TNVMCAP: [u8; 16], + pub UNVMCAP: [u8; 16], + pub RPMBS: NVME_IDENTIFY_CONTROLLER_DATA_16, + pub EDSTT: u16, + pub DSTO: u8, + pub FWUG: u8, + pub KAS: u16, + pub HCTMA: NVME_IDENTIFY_CONTROLLER_DATA_9, + pub MNTMT: u16, + pub MXTMT: u16, + pub SANICAP: NVME_IDENTIFY_CONTROLLER_DATA_18, + pub HMMINDS: u32, + pub HMMAXD: u16, + pub NSETIDMAX: u16, + pub ENDGIDMAX: u16, + pub ANATT: u8, + pub ANACAP: NVME_IDENTIFY_CONTROLLER_DATA_0, + pub ANAGRPMAX: u32, + pub NANAGRPID: u32, + pub PELS: u32, + pub Reserved1: [u8; 156], + pub SQES: NVME_IDENTIFY_CONTROLLER_DATA_20, + pub CQES: NVME_IDENTIFY_CONTROLLER_DATA_4, + pub MAXCMD: u16, + pub NN: u32, + pub ONCS: NVME_IDENTIFY_CONTROLLER_DATA_15, + pub FUSES: NVME_IDENTIFY_CONTROLLER_DATA_8, + pub FNA: NVME_IDENTIFY_CONTROLLER_DATA_6, + pub VWC: NVME_IDENTIFY_CONTROLLER_DATA_21, + pub AWUN: u16, + pub AWUPF: u16, + pub NVSCC: NVME_IDENTIFY_CONTROLLER_DATA_11, + pub NWPC: NVME_IDENTIFY_CONTROLLER_DATA_12, + pub ACWU: u16, + pub Reserved4: [u8; 2], + pub SGLS: NVME_IDENTIFY_CONTROLLER_DATA_19, + pub MNAN: u32, + pub Reserved6: [u8; 224], + pub SUBNQN: [u8; 256], + pub Reserved7: [u8; 768], + pub Reserved8: [u8; 256], + pub PDS: [NVME_POWER_STATE_DESC; 32], + pub VS: [u8; 1024], +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_0 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_1 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_1 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_2 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_2 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_3 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_3 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_4 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_4 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_5 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_5 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_6 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_6 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_7 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_7 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_8 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_8 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_9 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_9 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_10 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_10 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_11 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_11 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_12 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_12 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_12 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_13 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_13 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_13 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_14 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_14 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_14 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_15 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_15 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_15 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_16 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_16 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_16 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_17 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_17 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_17 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_18 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_18 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_18 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_19 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_19 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_19 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_20 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_20 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_20 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_CONTROLLER_DATA_21 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_CONTROLLER_DATA_21 {} +impl ::core::clone::Clone for NVME_IDENTIFY_CONTROLLER_DATA_21 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_IO_COMMAND_SET { + pub IOCommandSetVector: [u64; 512], +} +impl ::core::marker::Copy for NVME_IDENTIFY_IO_COMMAND_SET {} +impl ::core::clone::Clone for NVME_IDENTIFY_IO_COMMAND_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_NAMESPACE_DATA { + pub NSZE: u64, + pub NCAP: u64, + pub NUSE: u64, + pub NSFEAT: NVME_IDENTIFY_NAMESPACE_DATA_8, + pub NLBAF: u8, + pub FLBAS: NVME_IDENTIFY_NAMESPACE_DATA_3, + pub MC: NVME_IDENTIFY_NAMESPACE_DATA_5, + pub DPC: NVME_IDENTIFY_NAMESPACE_DATA_1, + pub DPS: NVME_IDENTIFY_NAMESPACE_DATA_2, + pub NMIC: NVME_IDENTIFY_NAMESPACE_DATA_6, + pub RESCAP: NVM_RESERVATION_CAPABILITIES, + pub FPI: NVME_IDENTIFY_NAMESPACE_DATA_4, + pub DLFEAT: NVME_IDENTIFY_NAMESPACE_DATA_0, + pub NAWUN: u16, + pub NAWUPF: u16, + pub NACWU: u16, + pub NABSN: u16, + pub NABO: u16, + pub NABSPF: u16, + pub NOIOB: u16, + pub NVMCAP: [u8; 16], + pub NPWG: u16, + pub NPWA: u16, + pub NPDG: u16, + pub NPDA: u16, + pub NOWS: u16, + pub MSSRL: u16, + pub MCL: u32, + pub MSRC: u8, + pub Reserved2: [u8; 11], + pub ANAGRPID: u32, + pub Reserved3: [u8; 3], + pub NSATTR: NVME_IDENTIFY_NAMESPACE_DATA_7, + pub NVMSETID: u16, + pub ENDGID: u16, + pub NGUID: [u8; 16], + pub EUI64: [u8; 8], + pub LBAF: [NVME_LBA_FORMAT; 16], + pub Reserved4: [u8; 192], + pub VS: [u8; 3712], +} +impl ::core::marker::Copy for NVME_IDENTIFY_NAMESPACE_DATA {} +impl ::core::clone::Clone for NVME_IDENTIFY_NAMESPACE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_NAMESPACE_DATA_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_NAMESPACE_DATA_0 {} +impl ::core::clone::Clone for NVME_IDENTIFY_NAMESPACE_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_NAMESPACE_DATA_1 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_NAMESPACE_DATA_1 {} +impl ::core::clone::Clone for NVME_IDENTIFY_NAMESPACE_DATA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_NAMESPACE_DATA_2 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_NAMESPACE_DATA_2 {} +impl ::core::clone::Clone for NVME_IDENTIFY_NAMESPACE_DATA_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_NAMESPACE_DATA_3 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_NAMESPACE_DATA_3 {} +impl ::core::clone::Clone for NVME_IDENTIFY_NAMESPACE_DATA_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_NAMESPACE_DATA_4 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_NAMESPACE_DATA_4 {} +impl ::core::clone::Clone for NVME_IDENTIFY_NAMESPACE_DATA_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_NAMESPACE_DATA_5 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_NAMESPACE_DATA_5 {} +impl ::core::clone::Clone for NVME_IDENTIFY_NAMESPACE_DATA_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_NAMESPACE_DATA_6 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_NAMESPACE_DATA_6 {} +impl ::core::clone::Clone for NVME_IDENTIFY_NAMESPACE_DATA_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_NAMESPACE_DATA_7 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_NAMESPACE_DATA_7 {} +impl ::core::clone::Clone for NVME_IDENTIFY_NAMESPACE_DATA_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_NAMESPACE_DATA_8 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_IDENTIFY_NAMESPACE_DATA_8 {} +impl ::core::clone::Clone for NVME_IDENTIFY_NAMESPACE_DATA_8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_NAMESPACE_DESCRIPTOR { + pub NIDT: u8, + pub NIDL: u8, + pub Reserved: [u8; 2], + pub NID: [u8; 1], +} +impl ::core::marker::Copy for NVME_IDENTIFY_NAMESPACE_DESCRIPTOR {} +impl ::core::clone::Clone for NVME_IDENTIFY_NAMESPACE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_NVM_SPECIFIC_CONTROLLER_IO_COMMAND_SET { + pub VSL: u8, + pub WZSL: u8, + pub WUSL: u8, + pub DMRL: u8, + pub DMRSL: u32, + pub DMSL: u64, + pub Reserved: [u8; 4080], +} +impl ::core::marker::Copy for NVME_IDENTIFY_NVM_SPECIFIC_CONTROLLER_IO_COMMAND_SET {} +impl ::core::clone::Clone for NVME_IDENTIFY_NVM_SPECIFIC_CONTROLLER_IO_COMMAND_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET { + pub ZOC: NVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET_1, + pub OZCS: NVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET_0, + pub MAR: u32, + pub MOR: u32, + pub RRL: u32, + pub FRL: u32, + pub Reserved0: [u8; 2796], + pub LBAEF: [NVME_LBA_ZONE_FORMAT; 16], + pub Reserved1: [u8; 768], + pub VS: [u8; 256], +} +impl ::core::marker::Copy for NVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET {} +impl ::core::clone::Clone for NVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET_0 {} +impl ::core::clone::Clone for NVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET_1 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET_1 {} +impl ::core::clone::Clone for NVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_IDENTIFY_ZNS_SPECIFIC_CONTROLLER_IO_COMMAND_SET { + pub ZASL: u8, + pub Reserved: [u8; 4095], +} +impl ::core::marker::Copy for NVME_IDENTIFY_ZNS_SPECIFIC_CONTROLLER_IO_COMMAND_SET {} +impl ::core::clone::Clone for NVME_IDENTIFY_ZNS_SPECIFIC_CONTROLLER_IO_COMMAND_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_LBA_FORMAT { + pub Anonymous: NVME_LBA_FORMAT_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_LBA_FORMAT {} +impl ::core::clone::Clone for NVME_LBA_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_LBA_FORMAT_0 { + pub MS: u16, + pub LBADS: u8, + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_LBA_FORMAT_0 {} +impl ::core::clone::Clone for NVME_LBA_FORMAT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_LBA_RANGE { + pub Attributes: NVME_CONTEXT_ATTRIBUTES, + pub LogicalBlockCount: u32, + pub StartingLBA: u64, +} +impl ::core::marker::Copy for NVME_LBA_RANGE {} +impl ::core::clone::Clone for NVME_LBA_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_LBA_RANGET_TYPE_ENTRY { + pub Type: u8, + pub Attributes: NVME_LBA_RANGET_TYPE_ENTRY_0, + pub Reserved0: [u8; 14], + pub SLBA: u64, + pub NLB: u64, + pub GUID: [u8; 16], + pub Reserved1: [u8; 16], +} +impl ::core::marker::Copy for NVME_LBA_RANGET_TYPE_ENTRY {} +impl ::core::clone::Clone for NVME_LBA_RANGET_TYPE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_LBA_RANGET_TYPE_ENTRY_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_LBA_RANGET_TYPE_ENTRY_0 {} +impl ::core::clone::Clone for NVME_LBA_RANGET_TYPE_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_LBA_ZONE_FORMAT { + pub ZoneSize: u64, + pub ZDES: u8, + pub Reserved: [u8; 7], +} +impl ::core::marker::Copy for NVME_LBA_ZONE_FORMAT {} +impl ::core::clone::Clone for NVME_LBA_ZONE_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_NVM_SUBSYSTEM_RESET { + pub NSSRC: u32, +} +impl ::core::marker::Copy for NVME_NVM_SUBSYSTEM_RESET {} +impl ::core::clone::Clone for NVME_NVM_SUBSYSTEM_RESET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_CAPABILITIES_LOG { + pub PciePorts: u16, + pub OobMgmtSupport: NVME_OCP_DEVICE_CAPABILITIES_LOG_2, + pub WriteZeroesCommand: NVME_OCP_DEVICE_CAPABILITIES_LOG_5, + pub SanitizeCommand: NVME_OCP_DEVICE_CAPABILITIES_LOG_3, + pub DatasetMgmtCommand: NVME_OCP_DEVICE_CAPABILITIES_LOG_0, + pub WriteUncorrectableCommand: NVME_OCP_DEVICE_CAPABILITIES_LOG_4, + pub FusedCommand: NVME_OCP_DEVICE_CAPABILITIES_LOG_1, + pub MinimumValidDSSDPowerState: u16, + pub Reserved0: u8, + pub DssdDescriptors: [DSSD_POWER_STATE_DESCRIPTOR; 127], + pub Reserved1: [u8; 3934], + pub LogPageVersionNumber: u16, + pub LogPageGUID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_CAPABILITIES_LOG {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_CAPABILITIES_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union NVME_OCP_DEVICE_CAPABILITIES_LOG_0 { + pub Anonymous: NVME_OCP_DEVICE_CAPABILITIES_LOG_0_0, + pub AsUshort: u16, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_CAPABILITIES_LOG_0 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_CAPABILITIES_LOG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_CAPABILITIES_LOG_0_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_CAPABILITIES_LOG_0_0 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_CAPABILITIES_LOG_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union NVME_OCP_DEVICE_CAPABILITIES_LOG_1 { + pub Anonymous: NVME_OCP_DEVICE_CAPABILITIES_LOG_1_0, + pub AsUshort: u16, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_CAPABILITIES_LOG_1 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_CAPABILITIES_LOG_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_CAPABILITIES_LOG_1_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_CAPABILITIES_LOG_1_0 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_CAPABILITIES_LOG_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union NVME_OCP_DEVICE_CAPABILITIES_LOG_2 { + pub Anonymous: NVME_OCP_DEVICE_CAPABILITIES_LOG_2_0, + pub AsUshort: u16, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_CAPABILITIES_LOG_2 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_CAPABILITIES_LOG_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_CAPABILITIES_LOG_2_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_CAPABILITIES_LOG_2_0 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_CAPABILITIES_LOG_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union NVME_OCP_DEVICE_CAPABILITIES_LOG_3 { + pub Anonymous: NVME_OCP_DEVICE_CAPABILITIES_LOG_3_0, + pub AsUshort: u16, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_CAPABILITIES_LOG_3 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_CAPABILITIES_LOG_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_CAPABILITIES_LOG_3_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_CAPABILITIES_LOG_3_0 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_CAPABILITIES_LOG_3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union NVME_OCP_DEVICE_CAPABILITIES_LOG_4 { + pub Anonymous: NVME_OCP_DEVICE_CAPABILITIES_LOG_4_0, + pub AsUshort: u16, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_CAPABILITIES_LOG_4 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_CAPABILITIES_LOG_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_CAPABILITIES_LOG_4_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_CAPABILITIES_LOG_4_0 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_CAPABILITIES_LOG_4_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union NVME_OCP_DEVICE_CAPABILITIES_LOG_5 { + pub Anonymous: NVME_OCP_DEVICE_CAPABILITIES_LOG_5_0, + pub AsUshort: u16, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_CAPABILITIES_LOG_5 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_CAPABILITIES_LOG_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_CAPABILITIES_LOG_5_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_CAPABILITIES_LOG_5_0 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_CAPABILITIES_LOG_5_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_ERROR_RECOVERY_LOG_V2 { + pub PanicResetWaitTime: u16, + pub PanicResetAction: NVME_WCS_DEVICE_RESET_ACTION, + pub DeviceRecoveryAction1: u8, + pub PanicId: u64, + pub DeviceCapabilitiesA: NVME_WCS_DEVICE_CAPABILITIES, + pub VendorSpecificRecoveryCode: u8, + pub Reserved0: [u8; 3], + pub VendorSpecificCommandCDW12: u32, + pub VendorSpecificCommandCDW13: u32, + pub VendorSpecificCommandTimeout: u8, + pub DeviceRecoveryAction2: u8, + pub DeviceRecoveryAction2Timeout: u8, + pub Reserved1: [u8; 463], + pub LogPageVersionNumber: u16, + pub LogPageGUID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_ERROR_RECOVERY_LOG_V2 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_ERROR_RECOVERY_LOG_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_FIRMWARE_ACTIVATION_HISTORY_LOG { + pub LID: u8, + pub Reserved0: [u8; 3], + pub ValidNumberOfEntries: u32, + pub Entries: [FIRMWARE_ACTIVATION_HISTORY_ENTRY; 20], + pub Reserved1: [u8; 2790], + pub LogPageVersionNumber: u16, + pub LogPageGUID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_FIRMWARE_ACTIVATION_HISTORY_LOG {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_FIRMWARE_ACTIVATION_HISTORY_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_LATENCY_MONITOR_LOG { + pub FeatureStatus: LATENCY_MONITOR_FEATURE_STATUS, + pub Reserved0: u8, + pub ActiveBucketTimer: u16, + pub ActiveBucketTimerThreshold: u16, + pub ActiveThresholdA: u8, + pub ActiveThresholdB: u8, + pub ActiveThresholdC: u8, + pub ActiveThresholdD: u8, + pub ActiveLatencyConfig: ACTIVE_LATENCY_CONFIGURATION, + pub ActiveLatencyMinimumWindow: u8, + pub Reserved1: [u8; 19], + pub ActiveBucketCounter0: BUCKET_COUNTER, + pub ActiveBucketCounter1: BUCKET_COUNTER, + pub ActiveBucketCounter2: BUCKET_COUNTER, + pub ActiveBucketCounter3: BUCKET_COUNTER, + pub ActiveLatencyStamp: LATENCY_STAMP, + pub ActiveMeasuredLatency: MEASURED_LATENCY, + pub ActiveLatencyStampUnits: LATENCY_STAMP_UNITS, + pub Reserved2: [u8; 22], + pub StaticBucketCounter0: BUCKET_COUNTER, + pub StaticBucketCounter1: BUCKET_COUNTER, + pub StaticBucketCounter2: BUCKET_COUNTER, + pub StaticBucketCounter3: BUCKET_COUNTER, + pub StaticLatencyStamp: LATENCY_STAMP, + pub StaticMeasuredLatency: MEASURED_LATENCY, + pub StaticLatencyStampUnits: LATENCY_STAMP_UNITS, + pub Reserved3: [u8; 22], + pub DebugLogTriggerEnable: DEBUG_BIT_FIELD, + pub DebugLogMeasuredLatency: u16, + pub DebugLogLatencyStamp: u64, + pub DebugLogPointer: u16, + pub DebugCounterTriggerSource: DEBUG_BIT_FIELD, + pub DebugLogStampUnits: NVME_OCP_DEVICE_LATENCY_MONITOR_LOG_0, + pub Reserved4: [u8; 29], + pub LogPageVersionNumber: u16, + pub LogPageGUID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_LATENCY_MONITOR_LOG {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_LATENCY_MONITOR_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_OCP_DEVICE_LATENCY_MONITOR_LOG_0 { + pub Anonymous: NVME_OCP_DEVICE_LATENCY_MONITOR_LOG_0_0, + pub AsUchar: u8, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_LATENCY_MONITOR_LOG_0 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_LATENCY_MONITOR_LOG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_OCP_DEVICE_LATENCY_MONITOR_LOG_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_LATENCY_MONITOR_LOG_0_0 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_LATENCY_MONITOR_LOG_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3 { + pub MediaUnitsWritten: [u8; 16], + pub MediaUnitsRead: [u8; 16], + pub BadUserNANDBlockCount: NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_1, + pub BadSystemNANDBlockCount: NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_0, + pub XORRecoveryCount: u64, + pub UnrecoverableReadErrorCount: u64, + pub SoftECCErrorCount: u64, + pub EndToEndCorrectionCounts: NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_2, + pub PercentageSystemDataUsed: u8, + pub RefreshCount: [u8; 7], + pub UserDataEraseCounts: NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_4, + pub ThermalThrottling: NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_3, + pub DSSDSpecVersion: [u8; 6], + pub PCIeCorrectableErrorCount: u64, + pub IncompleteShutdownCount: u32, + pub Reserved1: u32, + pub PercentageFreeBlocks: u8, + pub Reserved2: [u8; 7], + pub CapacitorHealth: u16, + pub NvmeErrata: u8, + pub Reserved3: [u8; 5], + pub UnalignedIOCount: u64, + pub SecurityVersionNumber: u64, + pub NUSE: u64, + pub PLPStartCount: [u8; 16], + pub EnduranceEstimate: [u8; 16], + pub PCIeLinkRetrainingCount: u64, + pub PowerStateChangeCount: u64, + pub Reserved4: [u8; 286], + pub LogPageVersionNumber: u16, + pub LogPageGUID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_0 { + pub RawCount: [u8; 6], + pub Normalized: [u8; 2], +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_0 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_1 { + pub RawCount: [u8; 6], + pub Normalized: [u8; 2], +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_1 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_2 { + pub DetectedCounts: u32, + pub CorrectedCounts: u32, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_2 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_3 { + pub EventCount: u8, + pub Status: u8, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_3 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_4 { + pub MaximumCount: u32, + pub MinimumCount: u32, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_4 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_SMART_INFORMATION_LOG_V3_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_TCG_CONFIGURATION_LOG { + pub State: NVME_OCP_DEVICE_TCG_CONFIGURATION_LOG_0, + pub Reserved0: [u8; 3], + pub LSPActivationCount: u8, + pub TPRevertCount: u8, + pub LSPRevertCount: u8, + pub LOCount: u8, + pub SUMLOCount: u8, + pub RPLOCount: u8, + pub NPLOCount: u8, + pub RLLOCount: u8, + pub WLLOCount: u8, + pub RULOCount: u8, + pub WULOCount: u8, + pub Reserved1: u8, + pub SIDAuthTryCount: u32, + pub SIDAuthTryLimit: u32, + pub ResetCount: u32, + pub ResetLockCount: u32, + pub Reserved2: [u8; 462], + pub LogPageVersionNumber: u16, + pub LogPageGUID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_TCG_CONFIGURATION_LOG {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_TCG_CONFIGURATION_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_OCP_DEVICE_TCG_CONFIGURATION_LOG_0 { + pub Anonymous: NVME_OCP_DEVICE_TCG_CONFIGURATION_LOG_0_0, + pub AsUchar: u8, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_TCG_CONFIGURATION_LOG_0 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_TCG_CONFIGURATION_LOG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_OCP_DEVICE_TCG_CONFIGURATION_LOG_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_TCG_CONFIGURATION_LOG_0_0 {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_TCG_CONFIGURATION_LOG_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_TCG_HISTORY_LOG { + pub LID: u8, + pub Reserved0: [u8; 3], + pub HistoryEntryCount: u32, + pub HistoryEntries: [TCG_HISTORY_ENTRY; 84], + pub Reserved1: [u8; 38], + pub LogPageVersionNumber: u16, + pub LogPageGUID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_TCG_HISTORY_LOG {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_TCG_HISTORY_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_OCP_DEVICE_UNSUPPORTED_REQUIREMENTS_LOG { + pub UnsupportedCount: u16, + pub Reserved0: [u8; 14], + pub UnsupportedReqList: [UNSUPPORTED_REQUIREMENT; 253], + pub Reserved1: [u8; 14], + pub LogPageVersionNumber: u16, + pub LogPageGUID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NVME_OCP_DEVICE_UNSUPPORTED_REQUIREMENTS_LOG {} +impl ::core::clone::Clone for NVME_OCP_DEVICE_UNSUPPORTED_REQUIREMENTS_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_PERSISTENT_EVENT_LOG_EVENT_HEADER { + pub EventType: u8, + pub EventTypeRevision: u8, + pub EventHeaderLength: u8, + pub Reserved0: u8, + pub ControllerIdentifier: u16, + pub EventTimestamp: u64, + pub Reserved1: [u8; 6], + pub VendorSpecificInformationLength: u16, + pub EventLength: u16, +} +impl ::core::marker::Copy for NVME_PERSISTENT_EVENT_LOG_EVENT_HEADER {} +impl ::core::clone::Clone for NVME_PERSISTENT_EVENT_LOG_EVENT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_PERSISTENT_EVENT_LOG_HEADER { + pub LogIdentifier: u8, + pub Reserved0: [u8; 3], + pub TotalNumberOfEvents: u32, + pub TotalLogLength: u64, + pub LogRevision: u8, + pub Reserved1: u8, + pub LogHeaderLength: u16, + pub Timestamp: u64, + pub PowerOnHours: [u8; 16], + pub PowerCycleCount: u64, + pub PciVendorId: u16, + pub PciSubsystemVendorId: u16, + pub SerialNumber: [u8; 20], + pub ModelNumber: [u8; 40], + pub NVMSubsystemNVMeQualifiedName: [u8; 256], + pub Reserved: [u8; 108], + pub SupportedEventsBitmap: [u8; 32], +} +impl ::core::marker::Copy for NVME_PERSISTENT_EVENT_LOG_HEADER {} +impl ::core::clone::Clone for NVME_PERSISTENT_EVENT_LOG_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_POWER_STATE_DESC { + pub MP: u16, + pub Reserved0: u8, + pub _bitfield1: u8, + pub ENLAT: u32, + pub EXLAT: u32, + pub _bitfield2: u8, + pub _bitfield3: u8, + pub _bitfield4: u8, + pub _bitfield5: u8, + pub IDLP: u16, + pub _bitfield6: u8, + pub Reserved7: u8, + pub ACTP: u16, + pub _bitfield7: u8, + pub Reserved9: [u8; 9], +} +impl ::core::marker::Copy for NVME_POWER_STATE_DESC {} +impl ::core::clone::Clone for NVME_POWER_STATE_DESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_PRP_ENTRY { + pub Anonymous: NVME_PRP_ENTRY_0, + pub AsUlonglong: u64, +} +impl ::core::marker::Copy for NVME_PRP_ENTRY {} +impl ::core::clone::Clone for NVME_PRP_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_PRP_ENTRY_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for NVME_PRP_ENTRY_0 {} +impl ::core::clone::Clone for NVME_PRP_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_REGISTERED_CONTROLLER_DATA { + pub CNTLID: u16, + pub RCSTS: NVME_REGISTERED_CONTROLLER_DATA_0, + pub Reserved: [u8; 5], + pub HOSTID: [u8; 8], + pub RKEY: u64, +} +impl ::core::marker::Copy for NVME_REGISTERED_CONTROLLER_DATA {} +impl ::core::clone::Clone for NVME_REGISTERED_CONTROLLER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_REGISTERED_CONTROLLER_DATA_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_REGISTERED_CONTROLLER_DATA_0 {} +impl ::core::clone::Clone for NVME_REGISTERED_CONTROLLER_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_REGISTERED_CONTROLLER_EXTENDED_DATA { + pub CNTLID: u16, + pub RCSTS: NVME_REGISTERED_CONTROLLER_EXTENDED_DATA_0, + pub Reserved: [u8; 5], + pub RKEY: u64, + pub HOSTID: [u8; 16], + pub Reserved1: [u8; 32], +} +impl ::core::marker::Copy for NVME_REGISTERED_CONTROLLER_EXTENDED_DATA {} +impl ::core::clone::Clone for NVME_REGISTERED_CONTROLLER_EXTENDED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_REGISTERED_CONTROLLER_EXTENDED_DATA_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_REGISTERED_CONTROLLER_EXTENDED_DATA_0 {} +impl ::core::clone::Clone for NVME_REGISTERED_CONTROLLER_EXTENDED_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_REPORT_ZONE_INFO { + pub ZoneCount: u64, + pub Reserved: [u64; 7], + pub ZoneDescriptor: [NVME_ZONE_DESCRIPTOR; 1], +} +impl ::core::marker::Copy for NVME_REPORT_ZONE_INFO {} +impl ::core::clone::Clone for NVME_REPORT_ZONE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_RESERVATION_ACQUIRE_DATA_STRUCTURE { + pub CRKEY: u64, + pub PRKEY: u64, +} +impl ::core::marker::Copy for NVME_RESERVATION_ACQUIRE_DATA_STRUCTURE {} +impl ::core::clone::Clone for NVME_RESERVATION_ACQUIRE_DATA_STRUCTURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_RESERVATION_NOTIFICATION_LOG { + pub LogPageCount: u64, + pub LogPageType: u8, + pub AvailableLogPageCount: u8, + pub Reserved0: [u8; 2], + pub NameSpaceId: u32, + pub Reserved1: [u8; 48], +} +impl ::core::marker::Copy for NVME_RESERVATION_NOTIFICATION_LOG {} +impl ::core::clone::Clone for NVME_RESERVATION_NOTIFICATION_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_RESERVATION_REGISTER_DATA_STRUCTURE { + pub CRKEY: u64, + pub NRKEY: u64, +} +impl ::core::marker::Copy for NVME_RESERVATION_REGISTER_DATA_STRUCTURE {} +impl ::core::clone::Clone for NVME_RESERVATION_REGISTER_DATA_STRUCTURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_RESERVATION_RELEASE_DATA_STRUCTURE { + pub CRKEY: u64, +} +impl ::core::marker::Copy for NVME_RESERVATION_RELEASE_DATA_STRUCTURE {} +impl ::core::clone::Clone for NVME_RESERVATION_RELEASE_DATA_STRUCTURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_RESERVATION_REPORT_STATUS_DATA_STRUCTURE { + pub Header: NVME_RESERVATION_REPORT_STATUS_HEADER, + pub RegisteredControllersData: [NVME_REGISTERED_CONTROLLER_DATA; 1], +} +impl ::core::marker::Copy for NVME_RESERVATION_REPORT_STATUS_DATA_STRUCTURE {} +impl ::core::clone::Clone for NVME_RESERVATION_REPORT_STATUS_DATA_STRUCTURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_RESERVATION_REPORT_STATUS_EXTENDED_DATA_STRUCTURE { + pub Header: NVME_RESERVATION_REPORT_STATUS_HEADER, + pub Reserved1: [u8; 40], + pub RegisteredControllersExtendedData: [NVME_REGISTERED_CONTROLLER_EXTENDED_DATA; 1], +} +impl ::core::marker::Copy for NVME_RESERVATION_REPORT_STATUS_EXTENDED_DATA_STRUCTURE {} +impl ::core::clone::Clone for NVME_RESERVATION_REPORT_STATUS_EXTENDED_DATA_STRUCTURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_RESERVATION_REPORT_STATUS_HEADER { + pub GEN: u32, + pub RTYPE: u8, + pub REGCTL: u16, + pub Reserved: [u8; 2], + pub PTPLS: u8, + pub Reserved1: [u8; 14], +} +impl ::core::marker::Copy for NVME_RESERVATION_REPORT_STATUS_HEADER {} +impl ::core::clone::Clone for NVME_RESERVATION_REPORT_STATUS_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_SANITIZE_STATUS { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NVME_SANITIZE_STATUS {} +impl ::core::clone::Clone for NVME_SANITIZE_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_SANITIZE_STATUS_LOG { + pub SPROG: u16, + pub SSTAT: NVME_SANITIZE_STATUS, + pub SCDW10: u32, + pub EstimatedTimeForOverwrite: u32, + pub EstimatedTimeForBlockErase: u32, + pub EstimatedTimeForCryptoErase: u32, + pub EstimatedTimeForOverwriteWithNoDeallocateMediaModification: u32, + pub EstimatedTimeForBlockEraseWithNoDeallocateMediaModification: u32, + pub EstimatedTimeForCryptoEraseWithNoDeallocateMediaModification: u32, + pub Reserved: [u8; 480], +} +impl ::core::marker::Copy for NVME_SANITIZE_STATUS_LOG {} +impl ::core::clone::Clone for NVME_SANITIZE_STATUS_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_SCSI_NAME_STRING { + pub PCIVendorID: [u8; 4], + pub ModelNumber: [u8; 40], + pub NamespaceID: [u8; 4], + pub SerialNumber: [u8; 20], +} +impl ::core::marker::Copy for NVME_SCSI_NAME_STRING {} +impl ::core::clone::Clone for NVME_SCSI_NAME_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_SET_ATTRIBUTES_ENTRY { + pub Identifier: u16, + pub ENDGID: u16, + pub Reserved1: u32, + pub Random4KBReadTypical: u32, + pub OptimalWriteSize: u32, + pub TotalCapacity: [u8; 16], + pub UnallocatedCapacity: [u8; 16], + pub Reserved2: [u8; 80], +} +impl ::core::marker::Copy for NVME_SET_ATTRIBUTES_ENTRY {} +impl ::core::clone::Clone for NVME_SET_ATTRIBUTES_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_SUBMISSION_QUEUE_TAIL_DOORBELL { + pub Anonymous: NVME_SUBMISSION_QUEUE_TAIL_DOORBELL_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_SUBMISSION_QUEUE_TAIL_DOORBELL {} +impl ::core::clone::Clone for NVME_SUBMISSION_QUEUE_TAIL_DOORBELL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_SUBMISSION_QUEUE_TAIL_DOORBELL_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_SUBMISSION_QUEUE_TAIL_DOORBELL_0 {} +impl ::core::clone::Clone for NVME_SUBMISSION_QUEUE_TAIL_DOORBELL_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_TELEMETRY_CONTROLLER_INITIATED_LOG { + pub LogIdentifier: u8, + pub Reserved0: [u8; 4], + pub OrganizationID: [u8; 3], + pub Area1LastBlock: u16, + pub Area2LastBlock: u16, + pub Area3LastBlock: u16, + pub Reserved1: [u8; 2], + pub Area4LastBlock: u32, + pub Reserved2: [u8; 362], + pub ControllerInitiatedDataAvailable: u8, + pub ControllerInitiatedDataGenerationNumber: u8, + pub ReasonIdentifier: [u8; 128], +} +impl ::core::marker::Copy for NVME_TELEMETRY_CONTROLLER_INITIATED_LOG {} +impl ::core::clone::Clone for NVME_TELEMETRY_CONTROLLER_INITIATED_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_TELEMETRY_HOST_INITIATED_LOG { + pub LogIdentifier: u8, + pub Reserved0: [u8; 4], + pub OrganizationID: [u8; 3], + pub Area1LastBlock: u16, + pub Area2LastBlock: u16, + pub Area3LastBlock: u16, + pub Reserved1: [u8; 2], + pub Area4LastBlock: u32, + pub Reserved2: [u8; 361], + pub HostInitiatedDataGenerationNumber: u8, + pub ControllerInitiatedDataAvailable: u8, + pub ControllerInitiatedDataGenerationNumber: u8, + pub ReasonIdentifier: [u8; 128], +} +impl ::core::marker::Copy for NVME_TELEMETRY_HOST_INITIATED_LOG {} +impl ::core::clone::Clone for NVME_TELEMETRY_HOST_INITIATED_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_VERSION { + pub Anonymous: NVME_VERSION_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for NVME_VERSION {} +impl ::core::clone::Clone for NVME_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_VERSION_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_VERSION_0 {} +impl ::core::clone::Clone for NVME_VERSION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_WCS_DEVICE_CAPABILITIES { + pub Anonymous: NVME_WCS_DEVICE_CAPABILITIES_0, +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_CAPABILITIES {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_WCS_DEVICE_CAPABILITIES_0 { + pub Anonymous: NVME_WCS_DEVICE_CAPABILITIES_0_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_CAPABILITIES_0 {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_CAPABILITIES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_WCS_DEVICE_CAPABILITIES_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_CAPABILITIES_0_0 {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_CAPABILITIES_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_WCS_DEVICE_ERROR_RECOVERY_LOG { + pub PanicResetWaitTime: u16, + pub PanicResetAction: NVME_WCS_DEVICE_RESET_ACTION, + pub DriveRecoveryAction: u8, + pub PanicId: u64, + pub DeviceCapabilitiesA: NVME_WCS_DEVICE_CAPABILITIES, + pub VendorSpecificRecoveryCode: u8, + pub Reserved0: [u8; 3], + pub VendorSpecificCommandCDW12: u32, + pub VendorSpecificCommandCDW13: u32, + pub Reserved1: [u8; 466], + pub LogPageVersionNumber: u16, + pub LogPageGUID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_ERROR_RECOVERY_LOG {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_ERROR_RECOVERY_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_WCS_DEVICE_RESET_ACTION { + pub Anonymous: NVME_WCS_DEVICE_RESET_ACTION_0, +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_RESET_ACTION {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_RESET_ACTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVME_WCS_DEVICE_RESET_ACTION_0 { + pub Anonymous: NVME_WCS_DEVICE_RESET_ACTION_0_0, + pub AsUCHAR: u8, +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_RESET_ACTION_0 {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_RESET_ACTION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_WCS_DEVICE_RESET_ACTION_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_RESET_ACTION_0_0 {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_RESET_ACTION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG { + pub VersionSpecificData: [u8; 494], + pub LogPageVersionNumber: u16, + pub LogPageGUID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2 { + pub MediaUnitsWritten: [u8; 16], + pub MediaUnitsRead: [u8; 16], + pub BadUserNANDBlockCount: NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_1, + pub BadSystemNANDBlockCount: NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_0, + pub XORRecoveryCount: u64, + pub UnrecoverableReadErrorCount: u64, + pub SoftECCErrorCount: u64, + pub EndToEndCorrectionCounts: NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_2, + pub PercentageSystemDataUsed: u8, + pub RefreshCount: [u8; 7], + pub UserDataEraseCounts: NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_4, + pub ThermalThrottling: NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_3, + pub Reserved0: [u8; 6], + pub PCIeCorrectableErrorCount: u64, + pub IncompleteShutdownCount: u32, + pub Reserved1: u32, + pub PercentageFreeBlocks: u8, + pub Reserved2: [u8; 7], + pub CapacitorHealth: u16, + pub Reserved3: [u8; 6], + pub UnalignedIOCount: u64, + pub SecurityVersionNumber: u64, + pub NUSE: u64, + pub PLPStartCount: [u8; 16], + pub EnduranceEstimate: [u8; 16], + pub Reserved4: [u8; 302], + pub LogPageVersionNumber: u16, + pub LogPageGUID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2 {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_0 { + pub RawCount: [u8; 6], + pub Normalized: [u8; 2], +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_0 {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_1 { + pub RawCount: [u8; 6], + pub Normalized: [u8; 2], +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_1 {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_2 { + pub DetectedCounts: u32, + pub CorrectedCounts: u32, +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_2 {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_3 { + pub EventCount: u8, + pub Status: u8, +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_3 {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_4 { + pub MaximumCount: u32, + pub MinimumCount: u32, +} +impl ::core::marker::Copy for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_4 {} +impl ::core::clone::Clone for NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ZONE_DESCRIPTOR { + pub Anonymous1: NVME_ZONE_DESCRIPTOR_0, + pub Anonymous2: NVME_ZONE_DESCRIPTOR_1, + pub ZA: NVME_ZONE_DESCRIPTOR_2, + pub Reserved3: [u8; 5], + pub ZCAP: u64, + pub ZSLBA: u64, + pub WritePointer: u64, + pub Reserved4: [u8; 32], +} +impl ::core::marker::Copy for NVME_ZONE_DESCRIPTOR {} +impl ::core::clone::Clone for NVME_ZONE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ZONE_DESCRIPTOR_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_ZONE_DESCRIPTOR_0 {} +impl ::core::clone::Clone for NVME_ZONE_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ZONE_DESCRIPTOR_1 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_ZONE_DESCRIPTOR_1 {} +impl ::core::clone::Clone for NVME_ZONE_DESCRIPTOR_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ZONE_DESCRIPTOR_2 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVME_ZONE_DESCRIPTOR_2 {} +impl ::core::clone::Clone for NVME_ZONE_DESCRIPTOR_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ZONE_DESCRIPTOR_EXTENSION { + pub ZoneDescriptorExtensionInfo: [u8; 64], +} +impl ::core::marker::Copy for NVME_ZONE_DESCRIPTOR_EXTENSION {} +impl ::core::clone::Clone for NVME_ZONE_DESCRIPTOR_EXTENSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVME_ZONE_EXTENDED_REPORT_ZONE_DESC { + pub ZoneDescriptor: NVME_ZONE_DESCRIPTOR, + pub ZoneDescriptorExtension: [NVME_ZONE_DESCRIPTOR_EXTENSION; 1], +} +impl ::core::marker::Copy for NVME_ZONE_EXTENDED_REPORT_ZONE_DESC {} +impl ::core::clone::Clone for NVME_ZONE_EXTENDED_REPORT_ZONE_DESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NVM_RESERVATION_CAPABILITIES { + pub Anonymous: NVM_RESERVATION_CAPABILITIES_0, + pub AsUchar: u8, +} +impl ::core::marker::Copy for NVM_RESERVATION_CAPABILITIES {} +impl ::core::clone::Clone for NVM_RESERVATION_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVM_RESERVATION_CAPABILITIES_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NVM_RESERVATION_CAPABILITIES_0 {} +impl ::core::clone::Clone for NVM_RESERVATION_CAPABILITIES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NVM_SET_LIST { + pub IdentifierCount: u8, + pub Reserved: [u8; 127], + pub Entry: [NVME_SET_ATTRIBUTES_ENTRY; 1], +} +impl ::core::marker::Copy for NVM_SET_LIST {} +impl ::core::clone::Clone for NVM_SET_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCG_ACTIVATE_METHOD_SPECIFIC { + pub RangeStartLengthPolicy: u8, +} +impl ::core::marker::Copy for TCG_ACTIVATE_METHOD_SPECIFIC {} +impl ::core::clone::Clone for TCG_ACTIVATE_METHOD_SPECIFIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCG_ASSIGN_METHOD_SPECIFIC { + pub NamespaceId: u32, +} +impl ::core::marker::Copy for TCG_ASSIGN_METHOD_SPECIFIC {} +impl ::core::clone::Clone for TCG_ASSIGN_METHOD_SPECIFIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCG_AUTH_METHOD_SPECIFIC { + pub AuthorityId: u64, + pub TriesCount: u8, +} +impl ::core::marker::Copy for TCG_AUTH_METHOD_SPECIFIC {} +impl ::core::clone::Clone for TCG_AUTH_METHOD_SPECIFIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCG_BLOCKSID_METHOD_SPECIFIC { + pub ClearEvents: u8, +} +impl ::core::marker::Copy for TCG_BLOCKSID_METHOD_SPECIFIC {} +impl ::core::clone::Clone for TCG_BLOCKSID_METHOD_SPECIFIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TCG_HISTORY_ENTRY { + pub VersionNumber: u8, + pub EntryLength: u8, + pub PowerCycleCount: u16, + pub TcgCommandCount: u32, + pub TcgCommandCompletionTS: u64, + pub InvokingId: u64, + pub MethodId: u64, + pub ComId: u16, + pub ProtocolId: u8, + pub TcgStatus: u8, + pub ProcessTime: u16, + pub CommandSpecific: [u8; 10], +} +impl ::core::marker::Copy for TCG_HISTORY_ENTRY {} +impl ::core::clone::Clone for TCG_HISTORY_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCG_REACTIVATE_METHOD_SPECIFIC { + pub RangeStartLengthPolicy: u8, +} +impl ::core::marker::Copy for TCG_REACTIVATE_METHOD_SPECIFIC {} +impl ::core::clone::Clone for TCG_REACTIVATE_METHOD_SPECIFIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UNSUPPORTED_REQUIREMENT { + pub ReqId: [u8; 16], +} +impl ::core::marker::Copy for UNSUPPORTED_REQUIREMENT {} +impl ::core::clone::Clone for UNSUPPORTED_REQUIREMENT { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/OfflineFiles/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/OfflineFiles/mod.rs new file mode 100644 index 000000000..d4c728466 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/OfflineFiles/mod.rs @@ -0,0 +1,314 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cscapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OfflineFilesEnable(benable : super::super::Foundation:: BOOL, pbrebootrequired : *mut super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cscapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OfflineFilesQueryStatus(pbactive : *mut super::super::Foundation:: BOOL, pbenabled : *mut super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("cscapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OfflineFilesQueryStatusEx(pbactive : *mut super::super::Foundation:: BOOL, pbenabled : *mut super::super::Foundation:: BOOL, pbavailable : *mut super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("cscapi.dll" "system" fn OfflineFilesStart() -> u32); +pub type IEnumOfflineFilesItems = *mut ::core::ffi::c_void; +pub type IEnumOfflineFilesSettings = *mut ::core::ffi::c_void; +pub type IOfflineFilesCache = *mut ::core::ffi::c_void; +pub type IOfflineFilesCache2 = *mut ::core::ffi::c_void; +pub type IOfflineFilesChangeInfo = *mut ::core::ffi::c_void; +pub type IOfflineFilesConnectionInfo = *mut ::core::ffi::c_void; +pub type IOfflineFilesDirectoryItem = *mut ::core::ffi::c_void; +pub type IOfflineFilesDirtyInfo = *mut ::core::ffi::c_void; +pub type IOfflineFilesErrorInfo = *mut ::core::ffi::c_void; +pub type IOfflineFilesEvents = *mut ::core::ffi::c_void; +pub type IOfflineFilesEvents2 = *mut ::core::ffi::c_void; +pub type IOfflineFilesEvents3 = *mut ::core::ffi::c_void; +pub type IOfflineFilesEvents4 = *mut ::core::ffi::c_void; +pub type IOfflineFilesEventsFilter = *mut ::core::ffi::c_void; +pub type IOfflineFilesFileItem = *mut ::core::ffi::c_void; +pub type IOfflineFilesFileSysInfo = *mut ::core::ffi::c_void; +pub type IOfflineFilesGhostInfo = *mut ::core::ffi::c_void; +pub type IOfflineFilesItem = *mut ::core::ffi::c_void; +pub type IOfflineFilesItemContainer = *mut ::core::ffi::c_void; +pub type IOfflineFilesItemFilter = *mut ::core::ffi::c_void; +pub type IOfflineFilesPinInfo = *mut ::core::ffi::c_void; +pub type IOfflineFilesPinInfo2 = *mut ::core::ffi::c_void; +pub type IOfflineFilesProgress = *mut ::core::ffi::c_void; +pub type IOfflineFilesServerItem = *mut ::core::ffi::c_void; +pub type IOfflineFilesSetting = *mut ::core::ffi::c_void; +pub type IOfflineFilesShareInfo = *mut ::core::ffi::c_void; +pub type IOfflineFilesShareItem = *mut ::core::ffi::c_void; +pub type IOfflineFilesSimpleProgress = *mut ::core::ffi::c_void; +pub type IOfflineFilesSuspend = *mut ::core::ffi::c_void; +pub type IOfflineFilesSuspendInfo = *mut ::core::ffi::c_void; +pub type IOfflineFilesSyncConflictHandler = *mut ::core::ffi::c_void; +pub type IOfflineFilesSyncErrorInfo = *mut ::core::ffi::c_void; +pub type IOfflineFilesSyncErrorItemInfo = *mut ::core::ffi::c_void; +pub type IOfflineFilesSyncProgress = *mut ::core::ffi::c_void; +pub type IOfflineFilesTransparentCacheInfo = *mut ::core::ffi::c_void; +pub const OFFLINEFILES_CACHING_MODE_AUTO_DOC: OFFLINEFILES_CACHING_MODE = 3i32; +pub const OFFLINEFILES_CACHING_MODE_AUTO_PROGANDDOC: OFFLINEFILES_CACHING_MODE = 4i32; +pub const OFFLINEFILES_CACHING_MODE_MANUAL: OFFLINEFILES_CACHING_MODE = 2i32; +pub const OFFLINEFILES_CACHING_MODE_NOCACHING: OFFLINEFILES_CACHING_MODE = 1i32; +pub const OFFLINEFILES_CACHING_MODE_NONE: OFFLINEFILES_CACHING_MODE = 0i32; +pub const OFFLINEFILES_CHANGES_LOCAL_ATTRIBUTES: u32 = 2u32; +pub const OFFLINEFILES_CHANGES_LOCAL_SIZE: u32 = 1u32; +pub const OFFLINEFILES_CHANGES_LOCAL_TIME: u32 = 4u32; +pub const OFFLINEFILES_CHANGES_NONE: u32 = 0u32; +pub const OFFLINEFILES_CHANGES_REMOTE_ATTRIBUTES: u32 = 16u32; +pub const OFFLINEFILES_CHANGES_REMOTE_SIZE: u32 = 8u32; +pub const OFFLINEFILES_CHANGES_REMOTE_TIME: u32 = 32u32; +pub const OFFLINEFILES_COMPARE_EQ: OFFLINEFILES_COMPARE = 0i32; +pub const OFFLINEFILES_COMPARE_GT: OFFLINEFILES_COMPARE = 3i32; +pub const OFFLINEFILES_COMPARE_GTE: OFFLINEFILES_COMPARE = 5i32; +pub const OFFLINEFILES_COMPARE_LT: OFFLINEFILES_COMPARE = 2i32; +pub const OFFLINEFILES_COMPARE_LTE: OFFLINEFILES_COMPARE = 4i32; +pub const OFFLINEFILES_COMPARE_NEQ: OFFLINEFILES_COMPARE = 1i32; +pub const OFFLINEFILES_CONNECT_STATE_OFFLINE: OFFLINEFILES_CONNECT_STATE = 1i32; +pub const OFFLINEFILES_CONNECT_STATE_ONLINE: OFFLINEFILES_CONNECT_STATE = 2i32; +pub const OFFLINEFILES_CONNECT_STATE_PARTLY_TRANSPARENTLY_CACHED: OFFLINEFILES_CONNECT_STATE = 4i32; +pub const OFFLINEFILES_CONNECT_STATE_TRANSPARENTLY_CACHED: OFFLINEFILES_CONNECT_STATE = 3i32; +pub const OFFLINEFILES_CONNECT_STATE_UNKNOWN: OFFLINEFILES_CONNECT_STATE = 0i32; +pub const OFFLINEFILES_DELETE_FLAG_ADMIN: u32 = 2147483648u32; +pub const OFFLINEFILES_DELETE_FLAG_DELMODIFIED: u32 = 4u32; +pub const OFFLINEFILES_DELETE_FLAG_NOAUTOCACHED: u32 = 1u32; +pub const OFFLINEFILES_DELETE_FLAG_NOPINNED: u32 = 2u32; +pub const OFFLINEFILES_ENCRYPTION_CONTROL_FLAG_ASYNCPROGRESS: u32 = 1024u32; +pub const OFFLINEFILES_ENCRYPTION_CONTROL_FLAG_BACKGROUND: u32 = 65536u32; +pub const OFFLINEFILES_ENCRYPTION_CONTROL_FLAG_CONSOLE: u32 = 4096u32; +pub const OFFLINEFILES_ENCRYPTION_CONTROL_FLAG_INTERACTIVE: u32 = 2048u32; +pub const OFFLINEFILES_ENCRYPTION_CONTROL_FLAG_LOWPRIORITY: u32 = 512u32; +pub const OFFLINEFILES_ENUM_FLAT: u32 = 1u32; +pub const OFFLINEFILES_ENUM_FLAT_FILESONLY: u32 = 2u32; +pub const OFFLINEFILES_EVENT_BACKGROUNDSYNCBEGIN: OFFLINEFILES_EVENTS = 11i32; +pub const OFFLINEFILES_EVENT_BACKGROUNDSYNCEND: OFFLINEFILES_EVENTS = 12i32; +pub const OFFLINEFILES_EVENT_CACHEEVICTBEGIN: OFFLINEFILES_EVENTS = 29i32; +pub const OFFLINEFILES_EVENT_CACHEEVICTEND: OFFLINEFILES_EVENTS = 30i32; +pub const OFFLINEFILES_EVENT_CACHEISCORRUPTED: OFFLINEFILES_EVENTS = 2i32; +pub const OFFLINEFILES_EVENT_CACHEISFULL: OFFLINEFILES_EVENTS = 1i32; +pub const OFFLINEFILES_EVENT_CACHEMOVED: OFFLINEFILES_EVENTS = 0i32; +pub const OFFLINEFILES_EVENT_DATALOST: OFFLINEFILES_EVENTS = 25i32; +pub const OFFLINEFILES_EVENT_ENABLED: OFFLINEFILES_EVENTS = 3i32; +pub const OFFLINEFILES_EVENT_ENCRYPTIONCHANGED: OFFLINEFILES_EVENTS = 4i32; +pub const OFFLINEFILES_EVENT_ITEMADDEDTOCACHE: OFFLINEFILES_EVENTS = 22i32; +pub const OFFLINEFILES_EVENT_ITEMAVAILABLEOFFLINE: OFFLINEFILES_EVENTS = 17i32; +pub const OFFLINEFILES_EVENT_ITEMDELETEDFROMCACHE: OFFLINEFILES_EVENTS = 23i32; +pub const OFFLINEFILES_EVENT_ITEMDISCONNECTED: OFFLINEFILES_EVENTS = 15i32; +pub const OFFLINEFILES_EVENT_ITEMMODIFIED: OFFLINEFILES_EVENTS = 21i32; +pub const OFFLINEFILES_EVENT_ITEMNOTAVAILABLEOFFLINE: OFFLINEFILES_EVENTS = 18i32; +pub const OFFLINEFILES_EVENT_ITEMNOTPINNED: OFFLINEFILES_EVENTS = 20i32; +pub const OFFLINEFILES_EVENT_ITEMPINNED: OFFLINEFILES_EVENTS = 19i32; +pub const OFFLINEFILES_EVENT_ITEMRECONNECTBEGIN: OFFLINEFILES_EVENTS = 27i32; +pub const OFFLINEFILES_EVENT_ITEMRECONNECTED: OFFLINEFILES_EVENTS = 16i32; +pub const OFFLINEFILES_EVENT_ITEMRECONNECTEND: OFFLINEFILES_EVENTS = 28i32; +pub const OFFLINEFILES_EVENT_ITEMRENAMED: OFFLINEFILES_EVENTS = 24i32; +pub const OFFLINEFILES_EVENT_NETTRANSPORTARRIVED: OFFLINEFILES_EVENTS = 13i32; +pub const OFFLINEFILES_EVENT_NONETTRANSPORTS: OFFLINEFILES_EVENTS = 14i32; +pub const OFFLINEFILES_EVENT_PING: OFFLINEFILES_EVENTS = 26i32; +pub const OFFLINEFILES_EVENT_POLICYCHANGEDETECTED: OFFLINEFILES_EVENTS = 31i32; +pub const OFFLINEFILES_EVENT_PREFERENCECHANGEDETECTED: OFFLINEFILES_EVENTS = 32i32; +pub const OFFLINEFILES_EVENT_PREFETCHCLOSEHANDLEBEGIN: OFFLINEFILES_EVENTS = 37i32; +pub const OFFLINEFILES_EVENT_PREFETCHCLOSEHANDLEEND: OFFLINEFILES_EVENTS = 38i32; +pub const OFFLINEFILES_EVENT_PREFETCHFILEBEGIN: OFFLINEFILES_EVENTS = 35i32; +pub const OFFLINEFILES_EVENT_PREFETCHFILEEND: OFFLINEFILES_EVENTS = 36i32; +pub const OFFLINEFILES_EVENT_SETTINGSCHANGESAPPLIED: OFFLINEFILES_EVENTS = 33i32; +pub const OFFLINEFILES_EVENT_SYNCBEGIN: OFFLINEFILES_EVENTS = 5i32; +pub const OFFLINEFILES_EVENT_SYNCCONFLICTRECADDED: OFFLINEFILES_EVENTS = 7i32; +pub const OFFLINEFILES_EVENT_SYNCCONFLICTRECREMOVED: OFFLINEFILES_EVENTS = 9i32; +pub const OFFLINEFILES_EVENT_SYNCCONFLICTRECUPDATED: OFFLINEFILES_EVENTS = 8i32; +pub const OFFLINEFILES_EVENT_SYNCEND: OFFLINEFILES_EVENTS = 10i32; +pub const OFFLINEFILES_EVENT_SYNCFILERESULT: OFFLINEFILES_EVENTS = 6i32; +pub const OFFLINEFILES_EVENT_TRANSPARENTCACHEITEMNOTIFY: OFFLINEFILES_EVENTS = 34i32; +pub const OFFLINEFILES_ITEM_COPY_LOCAL: OFFLINEFILES_ITEM_COPY = 0i32; +pub const OFFLINEFILES_ITEM_COPY_ORIGINAL: OFFLINEFILES_ITEM_COPY = 2i32; +pub const OFFLINEFILES_ITEM_COPY_REMOTE: OFFLINEFILES_ITEM_COPY = 1i32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_CREATED: u32 = 8u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_DELETED: u32 = 16u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_DIRECTORY: u32 = 256u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_DIRTY: u32 = 32u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_FILE: u32 = 128u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_GHOST: u32 = 8192u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_GUEST_ANYACCESS: u32 = 33554432u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_GUEST_READ: u32 = 16777216u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_GUEST_WRITE: u32 = 8388608u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_MODIFIED: u32 = 4u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_MODIFIED_ATTRIBUTES: u32 = 2u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_MODIFIED_DATA: u32 = 1u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_OFFLINE: u32 = 32768u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_ONLINE: u32 = 65536u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_OTHER_ANYACCESS: u32 = 4194304u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_OTHER_READ: u32 = 2097152u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_OTHER_WRITE: u32 = 1048576u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_PINNED: u32 = 4096u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_PINNED_COMPUTER: u32 = 2048u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_PINNED_OTHERS: u32 = 1024u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_PINNED_USER: u32 = 512u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_SPARSE: u32 = 64u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_SUSPENDED: u32 = 16384u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_USER_ANYACCESS: u32 = 524288u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_USER_READ: u32 = 262144u32; +pub const OFFLINEFILES_ITEM_FILTER_FLAG_USER_WRITE: u32 = 131072u32; +pub const OFFLINEFILES_ITEM_QUERY_ADMIN: u32 = 2147483648u32; +pub const OFFLINEFILES_ITEM_QUERY_ATTEMPT_TRANSITIONONLINE: u32 = 32u32; +pub const OFFLINEFILES_ITEM_QUERY_CONNECTIONSTATE: u32 = 2u32; +pub const OFFLINEFILES_ITEM_QUERY_INCLUDETRANSPARENTCACHE: u32 = 16u32; +pub const OFFLINEFILES_ITEM_QUERY_LOCALDIRTYBYTECOUNT: u32 = 4u32; +pub const OFFLINEFILES_ITEM_QUERY_REMOTEDIRTYBYTECOUNT: u32 = 8u32; +pub const OFFLINEFILES_ITEM_QUERY_REMOTEINFO: u32 = 1u32; +pub const OFFLINEFILES_ITEM_TIME_CREATION: OFFLINEFILES_ITEM_TIME = 0i32; +pub const OFFLINEFILES_ITEM_TIME_LASTACCESS: OFFLINEFILES_ITEM_TIME = 1i32; +pub const OFFLINEFILES_ITEM_TIME_LASTWRITE: OFFLINEFILES_ITEM_TIME = 2i32; +pub const OFFLINEFILES_ITEM_TYPE_DIRECTORY: OFFLINEFILES_ITEM_TYPE = 1i32; +pub const OFFLINEFILES_ITEM_TYPE_FILE: OFFLINEFILES_ITEM_TYPE = 0i32; +pub const OFFLINEFILES_ITEM_TYPE_SERVER: OFFLINEFILES_ITEM_TYPE = 3i32; +pub const OFFLINEFILES_ITEM_TYPE_SHARE: OFFLINEFILES_ITEM_TYPE = 2i32; +pub const OFFLINEFILES_NUM_EVENTS: OFFLINEFILES_EVENTS = 39i32; +pub const OFFLINEFILES_OFFLINE_REASON_CONNECTION_ERROR: OFFLINEFILES_OFFLINE_REASON = 4i32; +pub const OFFLINEFILES_OFFLINE_REASON_CONNECTION_FORCED: OFFLINEFILES_OFFLINE_REASON = 2i32; +pub const OFFLINEFILES_OFFLINE_REASON_CONNECTION_SLOW: OFFLINEFILES_OFFLINE_REASON = 3i32; +pub const OFFLINEFILES_OFFLINE_REASON_ITEM_SUSPENDED: OFFLINEFILES_OFFLINE_REASON = 6i32; +pub const OFFLINEFILES_OFFLINE_REASON_ITEM_VERSION_CONFLICT: OFFLINEFILES_OFFLINE_REASON = 5i32; +pub const OFFLINEFILES_OFFLINE_REASON_NOT_APPLICABLE: OFFLINEFILES_OFFLINE_REASON = 1i32; +pub const OFFLINEFILES_OFFLINE_REASON_UNKNOWN: OFFLINEFILES_OFFLINE_REASON = 0i32; +pub const OFFLINEFILES_OP_ABORT: OFFLINEFILES_OP_RESPONSE = 2i32; +pub const OFFLINEFILES_OP_CONTINUE: OFFLINEFILES_OP_RESPONSE = 0i32; +pub const OFFLINEFILES_OP_RETRY: OFFLINEFILES_OP_RESPONSE = 1i32; +pub const OFFLINEFILES_PATHFILTER_CHILD: OFFLINEFILES_PATHFILTER_MATCH = 1i32; +pub const OFFLINEFILES_PATHFILTER_DESCENDENT: OFFLINEFILES_PATHFILTER_MATCH = 2i32; +pub const OFFLINEFILES_PATHFILTER_SELF: OFFLINEFILES_PATHFILTER_MATCH = 0i32; +pub const OFFLINEFILES_PATHFILTER_SELFORCHILD: OFFLINEFILES_PATHFILTER_MATCH = 3i32; +pub const OFFLINEFILES_PATHFILTER_SELFORDESCENDENT: OFFLINEFILES_PATHFILTER_MATCH = 4i32; +pub const OFFLINEFILES_PINLINKTARGETS_ALWAYS: u32 = 2u32; +pub const OFFLINEFILES_PINLINKTARGETS_EXPLICIT: u32 = 1u32; +pub const OFFLINEFILES_PINLINKTARGETS_NEVER: u32 = 0u32; +pub const OFFLINEFILES_PIN_CONTROL_FLAG_ASYNCPROGRESS: u32 = 1024u32; +pub const OFFLINEFILES_PIN_CONTROL_FLAG_BACKGROUND: u32 = 65536u32; +pub const OFFLINEFILES_PIN_CONTROL_FLAG_CONSOLE: u32 = 4096u32; +pub const OFFLINEFILES_PIN_CONTROL_FLAG_FILL: u32 = 1u32; +pub const OFFLINEFILES_PIN_CONTROL_FLAG_FORALL: u32 = 128u32; +pub const OFFLINEFILES_PIN_CONTROL_FLAG_FORREDIR: u32 = 256u32; +pub const OFFLINEFILES_PIN_CONTROL_FLAG_FORUSER: u32 = 32u32; +pub const OFFLINEFILES_PIN_CONTROL_FLAG_FORUSER_POLICY: u32 = 64u32; +pub const OFFLINEFILES_PIN_CONTROL_FLAG_INTERACTIVE: u32 = 2048u32; +pub const OFFLINEFILES_PIN_CONTROL_FLAG_LOWPRIORITY: u32 = 512u32; +pub const OFFLINEFILES_PIN_CONTROL_FLAG_PINLINKTARGETS: u32 = 16u32; +pub const OFFLINEFILES_SETTING_PinLinkTargets: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LinkTargetCaching"); +pub const OFFLINEFILES_SETTING_SCOPE_COMPUTER: u32 = 2u32; +pub const OFFLINEFILES_SETTING_SCOPE_USER: u32 = 1u32; +pub const OFFLINEFILES_SETTING_VALUE_2DIM_ARRAY_BSTR_BSTR: OFFLINEFILES_SETTING_VALUE_TYPE = 4i32; +pub const OFFLINEFILES_SETTING_VALUE_2DIM_ARRAY_BSTR_UI4: OFFLINEFILES_SETTING_VALUE_TYPE = 3i32; +pub const OFFLINEFILES_SETTING_VALUE_BSTR: OFFLINEFILES_SETTING_VALUE_TYPE = 1i32; +pub const OFFLINEFILES_SETTING_VALUE_BSTR_DBLNULTERM: OFFLINEFILES_SETTING_VALUE_TYPE = 2i32; +pub const OFFLINEFILES_SETTING_VALUE_UI4: OFFLINEFILES_SETTING_VALUE_TYPE = 0i32; +pub const OFFLINEFILES_SYNC_CONFLICT_ABORT: OFFLINEFILES_SYNC_CONFLICT_RESOLVE = 7i32; +pub const OFFLINEFILES_SYNC_CONFLICT_RESOLVE_KEEPALLCHANGES: OFFLINEFILES_SYNC_CONFLICT_RESOLVE = 3i32; +pub const OFFLINEFILES_SYNC_CONFLICT_RESOLVE_KEEPLATEST: OFFLINEFILES_SYNC_CONFLICT_RESOLVE = 4i32; +pub const OFFLINEFILES_SYNC_CONFLICT_RESOLVE_KEEPLOCAL: OFFLINEFILES_SYNC_CONFLICT_RESOLVE = 1i32; +pub const OFFLINEFILES_SYNC_CONFLICT_RESOLVE_KEEPREMOTE: OFFLINEFILES_SYNC_CONFLICT_RESOLVE = 2i32; +pub const OFFLINEFILES_SYNC_CONFLICT_RESOLVE_LOG: OFFLINEFILES_SYNC_CONFLICT_RESOLVE = 5i32; +pub const OFFLINEFILES_SYNC_CONFLICT_RESOLVE_NONE: OFFLINEFILES_SYNC_CONFLICT_RESOLVE = 0i32; +pub const OFFLINEFILES_SYNC_CONFLICT_RESOLVE_NUMCODES: OFFLINEFILES_SYNC_CONFLICT_RESOLVE = 8i32; +pub const OFFLINEFILES_SYNC_CONFLICT_RESOLVE_SKIP: OFFLINEFILES_SYNC_CONFLICT_RESOLVE = 6i32; +pub const OFFLINEFILES_SYNC_CONTROL_CR_DEFAULT: u32 = 0u32; +pub const OFFLINEFILES_SYNC_CONTROL_CR_KEEPLATEST: u32 = 805306368u32; +pub const OFFLINEFILES_SYNC_CONTROL_CR_KEEPLOCAL: u32 = 268435456u32; +pub const OFFLINEFILES_SYNC_CONTROL_CR_KEEPREMOTE: u32 = 536870912u32; +pub const OFFLINEFILES_SYNC_CONTROL_CR_MASK: u32 = 4026531840u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_ASYNCPROGRESS: u32 = 1024u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_BACKGROUND: u32 = 65536u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_CONSOLE: u32 = 4096u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_FILLSPARSE: u32 = 1u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_INTERACTIVE: u32 = 2048u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_LOWPRIORITY: u32 = 512u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_NONEWFILESOUT: u32 = 131072u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_PINFORALL: u32 = 128u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_PINFORREDIR: u32 = 256u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_PINFORUSER: u32 = 32u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_PINFORUSER_POLICY: u32 = 64u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_PINLINKTARGETS: u32 = 16u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_PINNEWFILES: u32 = 8u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_SKIPSUSPENDEDDIRS: u32 = 8192u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_SYNCIN: u32 = 2u32; +pub const OFFLINEFILES_SYNC_CONTROL_FLAG_SYNCOUT: u32 = 4u32; +pub const OFFLINEFILES_SYNC_ITEM_CHANGE_ATTRIBUTES: u32 = 8u32; +pub const OFFLINEFILES_SYNC_ITEM_CHANGE_CHANGETIME: u32 = 1u32; +pub const OFFLINEFILES_SYNC_ITEM_CHANGE_FILESIZE: u32 = 4u32; +pub const OFFLINEFILES_SYNC_ITEM_CHANGE_NONE: u32 = 0u32; +pub const OFFLINEFILES_SYNC_ITEM_CHANGE_WRITETIME: u32 = 2u32; +pub const OFFLINEFILES_SYNC_OPERATION_CREATE_COPY_ON_CLIENT: OFFLINEFILES_SYNC_OPERATION = 1i32; +pub const OFFLINEFILES_SYNC_OPERATION_CREATE_COPY_ON_SERVER: OFFLINEFILES_SYNC_OPERATION = 0i32; +pub const OFFLINEFILES_SYNC_OPERATION_DELETE_CLIENT_COPY: OFFLINEFILES_SYNC_OPERATION = 5i32; +pub const OFFLINEFILES_SYNC_OPERATION_DELETE_SERVER_COPY: OFFLINEFILES_SYNC_OPERATION = 4i32; +pub const OFFLINEFILES_SYNC_OPERATION_PIN: OFFLINEFILES_SYNC_OPERATION = 6i32; +pub const OFFLINEFILES_SYNC_OPERATION_PREPARE: OFFLINEFILES_SYNC_OPERATION = 7i32; +pub const OFFLINEFILES_SYNC_OPERATION_SYNC_TO_CLIENT: OFFLINEFILES_SYNC_OPERATION = 3i32; +pub const OFFLINEFILES_SYNC_OPERATION_SYNC_TO_SERVER: OFFLINEFILES_SYNC_OPERATION = 2i32; +pub const OFFLINEFILES_SYNC_STATE_DeletedOnClient_DirChangedOnServer: OFFLINEFILES_SYNC_STATE = 37i32; +pub const OFFLINEFILES_SYNC_STATE_DeletedOnClient_DirOnServer: OFFLINEFILES_SYNC_STATE = 35i32; +pub const OFFLINEFILES_SYNC_STATE_DeletedOnClient_FileChangedOnServer: OFFLINEFILES_SYNC_STATE = 36i32; +pub const OFFLINEFILES_SYNC_STATE_DeletedOnClient_FileOnServer: OFFLINEFILES_SYNC_STATE = 34i32; +pub const OFFLINEFILES_SYNC_STATE_DirChangedOnClient: OFFLINEFILES_SYNC_STATE = 42i32; +pub const OFFLINEFILES_SYNC_STATE_DirChangedOnClient_ChangedOnServer: OFFLINEFILES_SYNC_STATE = 28i32; +pub const OFFLINEFILES_SYNC_STATE_DirChangedOnClient_DeletedOnServer: OFFLINEFILES_SYNC_STATE = 29i32; +pub const OFFLINEFILES_SYNC_STATE_DirChangedOnClient_FileChangedOnServer: OFFLINEFILES_SYNC_STATE = 27i32; +pub const OFFLINEFILES_SYNC_STATE_DirChangedOnClient_FileOnServer: OFFLINEFILES_SYNC_STATE = 26i32; +pub const OFFLINEFILES_SYNC_STATE_DirChangedOnServer: OFFLINEFILES_SYNC_STATE = 47i32; +pub const OFFLINEFILES_SYNC_STATE_DirCreatedOnClient_DeletedOnServer: OFFLINEFILES_SYNC_STATE = 25i32; +pub const OFFLINEFILES_SYNC_STATE_DirCreatedOnClient_DirChangedOnServer: OFFLINEFILES_SYNC_STATE = 24i32; +pub const OFFLINEFILES_SYNC_STATE_DirCreatedOnClient_DirOnServer: OFFLINEFILES_SYNC_STATE = 21i32; +pub const OFFLINEFILES_SYNC_STATE_DirCreatedOnClient_FileChangedOnServer: OFFLINEFILES_SYNC_STATE = 23i32; +pub const OFFLINEFILES_SYNC_STATE_DirCreatedOnClient_FileOnServer: OFFLINEFILES_SYNC_STATE = 22i32; +pub const OFFLINEFILES_SYNC_STATE_DirCreatedOnClient_NoServerCopy: OFFLINEFILES_SYNC_STATE = 20i32; +pub const OFFLINEFILES_SYNC_STATE_DirDeletedOnServer: OFFLINEFILES_SYNC_STATE = 49i32; +pub const OFFLINEFILES_SYNC_STATE_DirOnClient_FileChangedOnServer: OFFLINEFILES_SYNC_STATE = 4i32; +pub const OFFLINEFILES_SYNC_STATE_DirOnClient_FileOnServer: OFFLINEFILES_SYNC_STATE = 3i32; +pub const OFFLINEFILES_SYNC_STATE_DirOnClient_NoServerCopy: OFFLINEFILES_SYNC_STATE = 5i32; +pub const OFFLINEFILES_SYNC_STATE_DirRenamedOnClient: OFFLINEFILES_SYNC_STATE = 43i32; +pub const OFFLINEFILES_SYNC_STATE_DirRenamedOnServer: OFFLINEFILES_SYNC_STATE = 48i32; +pub const OFFLINEFILES_SYNC_STATE_DirSparseOnClient: OFFLINEFILES_SYNC_STATE = 41i32; +pub const OFFLINEFILES_SYNC_STATE_FileChangedOnClient: OFFLINEFILES_SYNC_STATE = 39i32; +pub const OFFLINEFILES_SYNC_STATE_FileChangedOnClient_ChangedOnServer: OFFLINEFILES_SYNC_STATE = 12i32; +pub const OFFLINEFILES_SYNC_STATE_FileChangedOnClient_DeletedOnServer: OFFLINEFILES_SYNC_STATE = 15i32; +pub const OFFLINEFILES_SYNC_STATE_FileChangedOnClient_DirChangedOnServer: OFFLINEFILES_SYNC_STATE = 14i32; +pub const OFFLINEFILES_SYNC_STATE_FileChangedOnClient_DirOnServer: OFFLINEFILES_SYNC_STATE = 13i32; +pub const OFFLINEFILES_SYNC_STATE_FileChangedOnServer: OFFLINEFILES_SYNC_STATE = 44i32; +pub const OFFLINEFILES_SYNC_STATE_FileCreatedOnClient_DeletedOnServer: OFFLINEFILES_SYNC_STATE = 11i32; +pub const OFFLINEFILES_SYNC_STATE_FileCreatedOnClient_DirChangedOnServer: OFFLINEFILES_SYNC_STATE = 8i32; +pub const OFFLINEFILES_SYNC_STATE_FileCreatedOnClient_DirOnServer: OFFLINEFILES_SYNC_STATE = 10i32; +pub const OFFLINEFILES_SYNC_STATE_FileCreatedOnClient_FileChangedOnServer: OFFLINEFILES_SYNC_STATE = 7i32; +pub const OFFLINEFILES_SYNC_STATE_FileCreatedOnClient_FileOnServer: OFFLINEFILES_SYNC_STATE = 9i32; +pub const OFFLINEFILES_SYNC_STATE_FileCreatedOnClient_NoServerCopy: OFFLINEFILES_SYNC_STATE = 6i32; +pub const OFFLINEFILES_SYNC_STATE_FileDeletedOnServer: OFFLINEFILES_SYNC_STATE = 46i32; +pub const OFFLINEFILES_SYNC_STATE_FileOnClient_DirOnServer: OFFLINEFILES_SYNC_STATE = 1i32; +pub const OFFLINEFILES_SYNC_STATE_FileOnClient_NoServerCopy: OFFLINEFILES_SYNC_STATE = 2i32; +pub const OFFLINEFILES_SYNC_STATE_FileRenamedOnClient: OFFLINEFILES_SYNC_STATE = 40i32; +pub const OFFLINEFILES_SYNC_STATE_FileRenamedOnServer: OFFLINEFILES_SYNC_STATE = 45i32; +pub const OFFLINEFILES_SYNC_STATE_FileReplacedAndDeletedOnClient_DirChangedOnServer: OFFLINEFILES_SYNC_STATE = 53i32; +pub const OFFLINEFILES_SYNC_STATE_FileReplacedAndDeletedOnClient_DirOnServer: OFFLINEFILES_SYNC_STATE = 52i32; +pub const OFFLINEFILES_SYNC_STATE_FileReplacedAndDeletedOnClient_FileChangedOnServer: OFFLINEFILES_SYNC_STATE = 51i32; +pub const OFFLINEFILES_SYNC_STATE_FileReplacedAndDeletedOnClient_FileOnServer: OFFLINEFILES_SYNC_STATE = 50i32; +pub const OFFLINEFILES_SYNC_STATE_FileSparseOnClient: OFFLINEFILES_SYNC_STATE = 38i32; +pub const OFFLINEFILES_SYNC_STATE_FileSparseOnClient_ChangedOnServer: OFFLINEFILES_SYNC_STATE = 16i32; +pub const OFFLINEFILES_SYNC_STATE_FileSparseOnClient_DeletedOnServer: OFFLINEFILES_SYNC_STATE = 17i32; +pub const OFFLINEFILES_SYNC_STATE_FileSparseOnClient_DirChangedOnServer: OFFLINEFILES_SYNC_STATE = 19i32; +pub const OFFLINEFILES_SYNC_STATE_FileSparseOnClient_DirOnServer: OFFLINEFILES_SYNC_STATE = 18i32; +pub const OFFLINEFILES_SYNC_STATE_LOCAL_KNOWN: u32 = 1u32; +pub const OFFLINEFILES_SYNC_STATE_NUMSTATES: OFFLINEFILES_SYNC_STATE = 54i32; +pub const OFFLINEFILES_SYNC_STATE_NoClientCopy_DirChangedOnServer: OFFLINEFILES_SYNC_STATE = 33i32; +pub const OFFLINEFILES_SYNC_STATE_NoClientCopy_DirOnServer: OFFLINEFILES_SYNC_STATE = 31i32; +pub const OFFLINEFILES_SYNC_STATE_NoClientCopy_FileChangedOnServer: OFFLINEFILES_SYNC_STATE = 32i32; +pub const OFFLINEFILES_SYNC_STATE_NoClientCopy_FileOnServer: OFFLINEFILES_SYNC_STATE = 30i32; +pub const OFFLINEFILES_SYNC_STATE_REMOTE_KNOWN: u32 = 2u32; +pub const OFFLINEFILES_SYNC_STATE_Stable: OFFLINEFILES_SYNC_STATE = 0i32; +pub const OFFLINEFILES_TRANSITION_FLAG_CONSOLE: u32 = 2u32; +pub const OFFLINEFILES_TRANSITION_FLAG_INTERACTIVE: u32 = 1u32; +pub const OfflineFilesCache: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x48c6be7c_3871_43cc_b46f_1449a1bb2ff3); +pub const OfflineFilesSetting: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfd3659e9_a920_4123_ad64_7fc76c7aacdf); +pub type OFFLINEFILES_CACHING_MODE = i32; +pub type OFFLINEFILES_COMPARE = i32; +pub type OFFLINEFILES_CONNECT_STATE = i32; +pub type OFFLINEFILES_EVENTS = i32; +pub type OFFLINEFILES_ITEM_COPY = i32; +pub type OFFLINEFILES_ITEM_TIME = i32; +pub type OFFLINEFILES_ITEM_TYPE = i32; +pub type OFFLINEFILES_OFFLINE_REASON = i32; +pub type OFFLINEFILES_OP_RESPONSE = i32; +pub type OFFLINEFILES_PATHFILTER_MATCH = i32; +pub type OFFLINEFILES_SETTING_VALUE_TYPE = i32; +pub type OFFLINEFILES_SYNC_CONFLICT_RESOLVE = i32; +pub type OFFLINEFILES_SYNC_OPERATION = i32; +pub type OFFLINEFILES_SYNC_STATE = i32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/OperationRecorder/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/OperationRecorder/mod.rs new file mode 100644 index 000000000..41565edb7 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/OperationRecorder/mod.rs @@ -0,0 +1,32 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OperationEnd(operationendparams : *const OPERATION_END_PARAMETERS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OperationStart(operationstartparams : *const OPERATION_START_PARAMETERS) -> super::super::Foundation:: BOOL); +pub const OPERATION_END_DISCARD: OPERATION_END_PARAMETERS_FLAGS = 1u32; +pub const OPERATION_START_TRACE_CURRENT_THREAD: OPERATION_START_FLAGS = 1u32; +pub type OPERATION_END_PARAMETERS_FLAGS = u32; +pub type OPERATION_START_FLAGS = u32; +#[repr(C)] +pub struct OPERATION_END_PARAMETERS { + pub Version: u32, + pub OperationId: u32, + pub Flags: OPERATION_END_PARAMETERS_FLAGS, +} +impl ::core::marker::Copy for OPERATION_END_PARAMETERS {} +impl ::core::clone::Clone for OPERATION_END_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OPERATION_START_PARAMETERS { + pub Version: u32, + pub OperationId: u32, + pub Flags: OPERATION_START_FLAGS, +} +impl ::core::marker::Copy for OPERATION_START_PARAMETERS {} +impl ::core::clone::Clone for OPERATION_START_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Packaging/Appx/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Packaging/Appx/mod.rs new file mode 100644 index 000000000..64596261b --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Packaging/Appx/mod.rs @@ -0,0 +1,576 @@ +::windows_targets::link!("kernel32.dll" "system" fn ActivatePackageVirtualizationContext(context : PACKAGE_VIRTUALIZATION_CONTEXT_HANDLE, cookie : *mut usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernelbase.dll" "system" fn AddPackageDependency(packagedependencyid : ::windows_sys::core::PCWSTR, rank : i32, options : AddPackageDependencyOptions, packagedependencycontext : *mut PACKAGEDEPENDENCY_CONTEXT, packagefullname : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppPolicyGetClrCompat(processtoken : super::super::super::Foundation:: HANDLE, policy : *mut AppPolicyClrCompat) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppPolicyGetCreateFileAccess(processtoken : super::super::super::Foundation:: HANDLE, policy : *mut AppPolicyCreateFileAccess) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppPolicyGetLifecycleManagement(processtoken : super::super::super::Foundation:: HANDLE, policy : *mut AppPolicyLifecycleManagement) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppPolicyGetMediaFoundationCodecLoading(processtoken : super::super::super::Foundation:: HANDLE, policy : *mut AppPolicyMediaFoundationCodecLoading) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppPolicyGetProcessTerminationMethod(processtoken : super::super::super::Foundation:: HANDLE, policy : *mut AppPolicyProcessTerminationMethod) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppPolicyGetShowDeveloperDiagnostic(processtoken : super::super::super::Foundation:: HANDLE, policy : *mut AppPolicyShowDeveloperDiagnostic) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppPolicyGetThreadInitializationType(processtoken : super::super::super::Foundation:: HANDLE, policy : *mut AppPolicyThreadInitializationType) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppPolicyGetWindowingModel(processtoken : super::super::super::Foundation:: HANDLE, policy : *mut AppPolicyWindowingModel) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckIsMSIXPackage(packagefullname : ::windows_sys::core::PCWSTR, ismsixpackage : *mut super::super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClosePackageInfo(packageinforeference : *const _PACKAGE_INFO_REFERENCE) -> super::super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("kernel32.dll" "system" fn CreatePackageVirtualizationContext(packagefamilyname : ::windows_sys::core::PCWSTR, context : *mut PACKAGE_VIRTUALIZATION_CONTEXT_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn DeactivatePackageVirtualizationContext(cookie : usize) -> ()); +::windows_targets::link!("kernelbase.dll" "system" fn DeletePackageDependency(packagedependencyid : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn DuplicatePackageVirtualizationContext(sourcecontext : PACKAGE_VIRTUALIZATION_CONTEXT_HANDLE, destcontext : *mut PACKAGE_VIRTUALIZATION_CONTEXT_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindPackagesByPackageFamily(packagefamilyname : ::windows_sys::core::PCWSTR, packagefilters : u32, count : *mut u32, packagefullnames : *mut ::windows_sys::core::PWSTR, bufferlength : *mut u32, buffer : ::windows_sys::core::PWSTR, packageproperties : *mut u32) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FormatApplicationUserModelId(packagefamilyname : ::windows_sys::core::PCWSTR, packagerelativeapplicationid : ::windows_sys::core::PCWSTR, applicationusermodelidlength : *mut u32, applicationusermodelid : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetApplicationUserModelId(hprocess : super::super::super::Foundation:: HANDLE, applicationusermodelidlength : *mut u32, applicationusermodelid : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetApplicationUserModelIdFromToken(token : super::super::super::Foundation:: HANDLE, applicationusermodelidlength : *mut u32, applicationusermodelid : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentApplicationUserModelId(applicationusermodelidlength : *mut u32, applicationusermodelid : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentPackageFamilyName(packagefamilynamelength : *mut u32, packagefamilyname : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentPackageFullName(packagefullnamelength : *mut u32, packagefullname : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentPackageId(bufferlength : *mut u32, buffer : *mut u8) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentPackageInfo(flags : u32, bufferlength : *mut u32, buffer : *mut u8, count : *mut u32) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-3.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentPackageInfo2(flags : u32, packagepathtype : PackagePathType, bufferlength : *mut u32, buffer : *mut u8, count : *mut u32) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentPackagePath(pathlength : *mut u32, path : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-3.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentPackagePath2(packagepathtype : PackagePathType, pathlength : *mut u32, path : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("kernel32.dll" "system" fn GetCurrentPackageVirtualizationContext() -> PACKAGE_VIRTUALIZATION_CONTEXT_HANDLE); +::windows_targets::link!("kernelbase.dll" "system" fn GetIdForPackageDependencyContext(packagedependencycontext : PACKAGEDEPENDENCY_CONTEXT, packagedependencyid : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPackageApplicationIds(packageinforeference : *const _PACKAGE_INFO_REFERENCE, bufferlength : *mut u32, buffer : *mut u8, count : *mut u32) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPackageFamilyName(hprocess : super::super::super::Foundation:: HANDLE, packagefamilynamelength : *mut u32, packagefamilyname : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPackageFamilyNameFromToken(token : super::super::super::Foundation:: HANDLE, packagefamilynamelength : *mut u32, packagefamilyname : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPackageFullName(hprocess : super::super::super::Foundation:: HANDLE, packagefullnamelength : *mut u32, packagefullname : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPackageFullNameFromToken(token : super::super::super::Foundation:: HANDLE, packagefullnamelength : *mut u32, packagefullname : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-6.dll" "system" fn GetPackageGraphRevisionId() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPackageId(hprocess : super::super::super::Foundation:: HANDLE, bufferlength : *mut u32, buffer : *mut u8) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPackageInfo(packageinforeference : *const _PACKAGE_INFO_REFERENCE, flags : u32, bufferlength : *mut u32, buffer : *mut u8, count : *mut u32) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-3.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPackageInfo2(packageinforeference : *const _PACKAGE_INFO_REFERENCE, flags : u32, packagepathtype : PackagePathType, bufferlength : *mut u32, buffer : *mut u8, count : *mut u32) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPackagePath(packageid : *const PACKAGE_ID, reserved : u32, pathlength : *mut u32, path : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPackagePathByFullName(packagefullname : ::windows_sys::core::PCWSTR, pathlength : *mut u32, path : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-3.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPackagePathByFullName2(packagefullname : ::windows_sys::core::PCWSTR, packagepathtype : PackagePathType, pathlength : *mut u32, path : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPackagesByPackageFamily(packagefamilyname : ::windows_sys::core::PCWSTR, count : *mut u32, packagefullnames : *mut ::windows_sys::core::PWSTR, bufferlength : *mut u32, buffer : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessesInVirtualizationContext(packagefamilyname : ::windows_sys::core::PCWSTR, count : *mut u32, processes : *mut *mut super::super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernelbase.dll" "system" fn GetResolvedPackageFullNameForPackageDependency(packagedependencyid : ::windows_sys::core::PCWSTR, packagefullname : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetStagedPackageOrigin(packagefullname : ::windows_sys::core::PCWSTR, origin : *mut PackageOrigin) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetStagedPackagePathByFullName(packagefullname : ::windows_sys::core::PCWSTR, pathlength : *mut u32, path : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-3.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetStagedPackagePathByFullName2(packagefullname : ::windows_sys::core::PCWSTR, packagepathtype : PackagePathType, pathlength : *mut u32, path : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenPackageInfoByFullName(packagefullname : ::windows_sys::core::PCWSTR, reserved : u32, packageinforeference : *mut *mut _PACKAGE_INFO_REFERENCE) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenPackageInfoByFullNameForUser(usersid : super::super::super::Foundation:: PSID, packagefullname : ::windows_sys::core::PCWSTR, reserved : u32, packageinforeference : *mut *mut _PACKAGE_INFO_REFERENCE) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PackageFamilyNameFromFullName(packagefullname : ::windows_sys::core::PCWSTR, packagefamilynamelength : *mut u32, packagefamilyname : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PackageFamilyNameFromId(packageid : *const PACKAGE_ID, packagefamilynamelength : *mut u32, packagefamilyname : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PackageFullNameFromId(packageid : *const PACKAGE_ID, packagefullnamelength : *mut u32, packagefullname : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PackageIdFromFullName(packagefullname : ::windows_sys::core::PCWSTR, flags : u32, bufferlength : *mut u32, buffer : *mut u8) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PackageNameAndPublisherIdFromFamilyName(packagefamilyname : ::windows_sys::core::PCWSTR, packagenamelength : *mut u32, packagename : ::windows_sys::core::PWSTR, packagepublisheridlength : *mut u32, packagepublisherid : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ParseApplicationUserModelId(applicationusermodelid : ::windows_sys::core::PCWSTR, packagefamilynamelength : *mut u32, packagefamilyname : ::windows_sys::core::PWSTR, packagerelativeapplicationidlength : *mut u32, packagerelativeapplicationid : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("kernel32.dll" "system" fn ReleasePackageVirtualizationContext(context : PACKAGE_VIRTUALIZATION_CONTEXT_HANDLE) -> ()); +::windows_targets::link!("kernelbase.dll" "system" fn RemovePackageDependency(packagedependencycontext : PACKAGEDEPENDENCY_CONTEXT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernelbase.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TryCreatePackageDependency(user : super::super::super::Foundation:: PSID, packagefamilyname : ::windows_sys::core::PCWSTR, minversion : PACKAGE_VERSION, packagedependencyprocessorarchitectures : PackageDependencyProcessorArchitectures, lifetimekind : PackageDependencyLifetimeKind, lifetimeartifact : ::windows_sys::core::PCWSTR, options : CreatePackageDependencyOptions, packagedependencyid : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VerifyApplicationUserModelId(applicationusermodelid : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VerifyPackageFamilyName(packagefamilyname : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VerifyPackageFullName(packagefullname : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VerifyPackageId(packageid : *const PACKAGE_ID) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-appmodel-runtime-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VerifyPackageRelativeApplicationId(packagerelativeapplicationid : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: WIN32_ERROR); +pub type IAppxAppInstallerReader = *mut ::core::ffi::c_void; +pub type IAppxBlockMapBlock = *mut ::core::ffi::c_void; +pub type IAppxBlockMapBlocksEnumerator = *mut ::core::ffi::c_void; +pub type IAppxBlockMapFile = *mut ::core::ffi::c_void; +pub type IAppxBlockMapFilesEnumerator = *mut ::core::ffi::c_void; +pub type IAppxBlockMapReader = *mut ::core::ffi::c_void; +pub type IAppxBundleFactory = *mut ::core::ffi::c_void; +pub type IAppxBundleFactory2 = *mut ::core::ffi::c_void; +pub type IAppxBundleManifestOptionalBundleInfo = *mut ::core::ffi::c_void; +pub type IAppxBundleManifestOptionalBundleInfoEnumerator = *mut ::core::ffi::c_void; +pub type IAppxBundleManifestPackageInfo = *mut ::core::ffi::c_void; +pub type IAppxBundleManifestPackageInfo2 = *mut ::core::ffi::c_void; +pub type IAppxBundleManifestPackageInfo3 = *mut ::core::ffi::c_void; +pub type IAppxBundleManifestPackageInfo4 = *mut ::core::ffi::c_void; +pub type IAppxBundleManifestPackageInfoEnumerator = *mut ::core::ffi::c_void; +pub type IAppxBundleManifestReader = *mut ::core::ffi::c_void; +pub type IAppxBundleManifestReader2 = *mut ::core::ffi::c_void; +pub type IAppxBundleReader = *mut ::core::ffi::c_void; +pub type IAppxBundleWriter = *mut ::core::ffi::c_void; +pub type IAppxBundleWriter2 = *mut ::core::ffi::c_void; +pub type IAppxBundleWriter3 = *mut ::core::ffi::c_void; +pub type IAppxBundleWriter4 = *mut ::core::ffi::c_void; +pub type IAppxContentGroup = *mut ::core::ffi::c_void; +pub type IAppxContentGroupFilesEnumerator = *mut ::core::ffi::c_void; +pub type IAppxContentGroupMapReader = *mut ::core::ffi::c_void; +pub type IAppxContentGroupMapWriter = *mut ::core::ffi::c_void; +pub type IAppxContentGroupsEnumerator = *mut ::core::ffi::c_void; +pub type IAppxDigestProvider = *mut ::core::ffi::c_void; +pub type IAppxEncryptedBundleWriter = *mut ::core::ffi::c_void; +pub type IAppxEncryptedBundleWriter2 = *mut ::core::ffi::c_void; +pub type IAppxEncryptedBundleWriter3 = *mut ::core::ffi::c_void; +pub type IAppxEncryptedPackageWriter = *mut ::core::ffi::c_void; +pub type IAppxEncryptedPackageWriter2 = *mut ::core::ffi::c_void; +pub type IAppxEncryptionFactory = *mut ::core::ffi::c_void; +pub type IAppxEncryptionFactory2 = *mut ::core::ffi::c_void; +pub type IAppxEncryptionFactory3 = *mut ::core::ffi::c_void; +pub type IAppxEncryptionFactory4 = *mut ::core::ffi::c_void; +pub type IAppxEncryptionFactory5 = *mut ::core::ffi::c_void; +pub type IAppxFactory = *mut ::core::ffi::c_void; +pub type IAppxFactory2 = *mut ::core::ffi::c_void; +pub type IAppxFactory3 = *mut ::core::ffi::c_void; +pub type IAppxFile = *mut ::core::ffi::c_void; +pub type IAppxFilesEnumerator = *mut ::core::ffi::c_void; +pub type IAppxManifestApplication = *mut ::core::ffi::c_void; +pub type IAppxManifestApplicationsEnumerator = *mut ::core::ffi::c_void; +pub type IAppxManifestCapabilitiesEnumerator = *mut ::core::ffi::c_void; +pub type IAppxManifestDeviceCapabilitiesEnumerator = *mut ::core::ffi::c_void; +pub type IAppxManifestDriverConstraint = *mut ::core::ffi::c_void; +pub type IAppxManifestDriverConstraintsEnumerator = *mut ::core::ffi::c_void; +pub type IAppxManifestDriverDependenciesEnumerator = *mut ::core::ffi::c_void; +pub type IAppxManifestDriverDependency = *mut ::core::ffi::c_void; +pub type IAppxManifestHostRuntimeDependenciesEnumerator = *mut ::core::ffi::c_void; +pub type IAppxManifestHostRuntimeDependency = *mut ::core::ffi::c_void; +pub type IAppxManifestHostRuntimeDependency2 = *mut ::core::ffi::c_void; +pub type IAppxManifestMainPackageDependenciesEnumerator = *mut ::core::ffi::c_void; +pub type IAppxManifestMainPackageDependency = *mut ::core::ffi::c_void; +pub type IAppxManifestOSPackageDependenciesEnumerator = *mut ::core::ffi::c_void; +pub type IAppxManifestOSPackageDependency = *mut ::core::ffi::c_void; +pub type IAppxManifestOptionalPackageInfo = *mut ::core::ffi::c_void; +pub type IAppxManifestPackageDependenciesEnumerator = *mut ::core::ffi::c_void; +pub type IAppxManifestPackageDependency = *mut ::core::ffi::c_void; +pub type IAppxManifestPackageDependency2 = *mut ::core::ffi::c_void; +pub type IAppxManifestPackageDependency3 = *mut ::core::ffi::c_void; +pub type IAppxManifestPackageId = *mut ::core::ffi::c_void; +pub type IAppxManifestPackageId2 = *mut ::core::ffi::c_void; +pub type IAppxManifestProperties = *mut ::core::ffi::c_void; +pub type IAppxManifestQualifiedResource = *mut ::core::ffi::c_void; +pub type IAppxManifestQualifiedResourcesEnumerator = *mut ::core::ffi::c_void; +pub type IAppxManifestReader = *mut ::core::ffi::c_void; +pub type IAppxManifestReader2 = *mut ::core::ffi::c_void; +pub type IAppxManifestReader3 = *mut ::core::ffi::c_void; +pub type IAppxManifestReader4 = *mut ::core::ffi::c_void; +pub type IAppxManifestReader5 = *mut ::core::ffi::c_void; +pub type IAppxManifestReader6 = *mut ::core::ffi::c_void; +pub type IAppxManifestReader7 = *mut ::core::ffi::c_void; +pub type IAppxManifestResourcesEnumerator = *mut ::core::ffi::c_void; +pub type IAppxManifestTargetDeviceFamiliesEnumerator = *mut ::core::ffi::c_void; +pub type IAppxManifestTargetDeviceFamily = *mut ::core::ffi::c_void; +pub type IAppxPackageEditor = *mut ::core::ffi::c_void; +pub type IAppxPackageReader = *mut ::core::ffi::c_void; +pub type IAppxPackageWriter = *mut ::core::ffi::c_void; +pub type IAppxPackageWriter2 = *mut ::core::ffi::c_void; +pub type IAppxPackageWriter3 = *mut ::core::ffi::c_void; +pub type IAppxPackagingDiagnosticEventSink = *mut ::core::ffi::c_void; +pub type IAppxPackagingDiagnosticEventSinkManager = *mut ::core::ffi::c_void; +pub type IAppxSourceContentGroupMapReader = *mut ::core::ffi::c_void; +pub const APPX_BUNDLE_FOOTPRINT_FILE_TYPE_BLOCKMAP: APPX_BUNDLE_FOOTPRINT_FILE_TYPE = 1i32; +pub const APPX_BUNDLE_FOOTPRINT_FILE_TYPE_FIRST: APPX_BUNDLE_FOOTPRINT_FILE_TYPE = 0i32; +pub const APPX_BUNDLE_FOOTPRINT_FILE_TYPE_LAST: APPX_BUNDLE_FOOTPRINT_FILE_TYPE = 2i32; +pub const APPX_BUNDLE_FOOTPRINT_FILE_TYPE_MANIFEST: APPX_BUNDLE_FOOTPRINT_FILE_TYPE = 0i32; +pub const APPX_BUNDLE_FOOTPRINT_FILE_TYPE_SIGNATURE: APPX_BUNDLE_FOOTPRINT_FILE_TYPE = 2i32; +pub const APPX_BUNDLE_PAYLOAD_PACKAGE_TYPE_APPLICATION: APPX_BUNDLE_PAYLOAD_PACKAGE_TYPE = 0i32; +pub const APPX_BUNDLE_PAYLOAD_PACKAGE_TYPE_RESOURCE: APPX_BUNDLE_PAYLOAD_PACKAGE_TYPE = 1i32; +pub const APPX_CAPABILITY_APPOINTMENTS: APPX_CAPABILITIES = 1024i32; +pub const APPX_CAPABILITY_CLASS_ALL: APPX_CAPABILITY_CLASS_TYPE = 7i32; +pub const APPX_CAPABILITY_CLASS_CUSTOM: APPX_CAPABILITY_CLASS_TYPE = 8i32; +pub const APPX_CAPABILITY_CLASS_DEFAULT: APPX_CAPABILITY_CLASS_TYPE = 0i32; +pub const APPX_CAPABILITY_CLASS_GENERAL: APPX_CAPABILITY_CLASS_TYPE = 1i32; +pub const APPX_CAPABILITY_CLASS_RESTRICTED: APPX_CAPABILITY_CLASS_TYPE = 2i32; +pub const APPX_CAPABILITY_CLASS_WINDOWS: APPX_CAPABILITY_CLASS_TYPE = 4i32; +pub const APPX_CAPABILITY_CONTACTS: APPX_CAPABILITIES = 2048i32; +pub const APPX_CAPABILITY_DOCUMENTS_LIBRARY: APPX_CAPABILITIES = 8i32; +pub const APPX_CAPABILITY_ENTERPRISE_AUTHENTICATION: APPX_CAPABILITIES = 128i32; +pub const APPX_CAPABILITY_INTERNET_CLIENT: APPX_CAPABILITIES = 1i32; +pub const APPX_CAPABILITY_INTERNET_CLIENT_SERVER: APPX_CAPABILITIES = 2i32; +pub const APPX_CAPABILITY_MUSIC_LIBRARY: APPX_CAPABILITIES = 64i32; +pub const APPX_CAPABILITY_PICTURES_LIBRARY: APPX_CAPABILITIES = 16i32; +pub const APPX_CAPABILITY_PRIVATE_NETWORK_CLIENT_SERVER: APPX_CAPABILITIES = 4i32; +pub const APPX_CAPABILITY_REMOVABLE_STORAGE: APPX_CAPABILITIES = 512i32; +pub const APPX_CAPABILITY_SHARED_USER_CERTIFICATES: APPX_CAPABILITIES = 256i32; +pub const APPX_CAPABILITY_VIDEOS_LIBRARY: APPX_CAPABILITIES = 32i32; +pub const APPX_COMPRESSION_OPTION_FAST: APPX_COMPRESSION_OPTION = 3i32; +pub const APPX_COMPRESSION_OPTION_MAXIMUM: APPX_COMPRESSION_OPTION = 2i32; +pub const APPX_COMPRESSION_OPTION_NONE: APPX_COMPRESSION_OPTION = 0i32; +pub const APPX_COMPRESSION_OPTION_NORMAL: APPX_COMPRESSION_OPTION = 1i32; +pub const APPX_COMPRESSION_OPTION_SUPERFAST: APPX_COMPRESSION_OPTION = 4i32; +pub const APPX_ENCRYPTED_PACKAGE_OPTION_DIFFUSION: APPX_ENCRYPTED_PACKAGE_OPTIONS = 1i32; +pub const APPX_ENCRYPTED_PACKAGE_OPTION_NONE: APPX_ENCRYPTED_PACKAGE_OPTIONS = 0i32; +pub const APPX_ENCRYPTED_PACKAGE_OPTION_PAGE_HASHING: APPX_ENCRYPTED_PACKAGE_OPTIONS = 2i32; +pub const APPX_FOOTPRINT_FILE_TYPE_BLOCKMAP: APPX_FOOTPRINT_FILE_TYPE = 1i32; +pub const APPX_FOOTPRINT_FILE_TYPE_CODEINTEGRITY: APPX_FOOTPRINT_FILE_TYPE = 3i32; +pub const APPX_FOOTPRINT_FILE_TYPE_CONTENTGROUPMAP: APPX_FOOTPRINT_FILE_TYPE = 4i32; +pub const APPX_FOOTPRINT_FILE_TYPE_MANIFEST: APPX_FOOTPRINT_FILE_TYPE = 0i32; +pub const APPX_FOOTPRINT_FILE_TYPE_SIGNATURE: APPX_FOOTPRINT_FILE_TYPE = 2i32; +pub const APPX_PACKAGE_ARCHITECTURE2_ARM: APPX_PACKAGE_ARCHITECTURE2 = 5i32; +pub const APPX_PACKAGE_ARCHITECTURE2_ARM64: APPX_PACKAGE_ARCHITECTURE2 = 12i32; +pub const APPX_PACKAGE_ARCHITECTURE2_NEUTRAL: APPX_PACKAGE_ARCHITECTURE2 = 11i32; +pub const APPX_PACKAGE_ARCHITECTURE2_UNKNOWN: APPX_PACKAGE_ARCHITECTURE2 = 65535i32; +pub const APPX_PACKAGE_ARCHITECTURE2_X64: APPX_PACKAGE_ARCHITECTURE2 = 9i32; +pub const APPX_PACKAGE_ARCHITECTURE2_X86: APPX_PACKAGE_ARCHITECTURE2 = 0i32; +pub const APPX_PACKAGE_ARCHITECTURE2_X86_ON_ARM64: APPX_PACKAGE_ARCHITECTURE2 = 14i32; +pub const APPX_PACKAGE_ARCHITECTURE_ARM: APPX_PACKAGE_ARCHITECTURE = 5i32; +pub const APPX_PACKAGE_ARCHITECTURE_ARM64: APPX_PACKAGE_ARCHITECTURE = 12i32; +pub const APPX_PACKAGE_ARCHITECTURE_NEUTRAL: APPX_PACKAGE_ARCHITECTURE = 11i32; +pub const APPX_PACKAGE_ARCHITECTURE_X64: APPX_PACKAGE_ARCHITECTURE = 9i32; +pub const APPX_PACKAGE_ARCHITECTURE_X86: APPX_PACKAGE_ARCHITECTURE = 0i32; +pub const APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTION_LOCALIZED: APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTIONS = 2i32; +pub const APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTION_NONE: APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTIONS = 0i32; +pub const APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTION_SKIP_VALIDATION: APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTIONS = 1i32; +pub const APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_OPTION_APPEND_DELTA: APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_OPTION = 0i32; +pub const APPX_PACKAGING_CONTEXT_CHANGE_TYPE_CHANGE: APPX_PACKAGING_CONTEXT_CHANGE_TYPE = 1i32; +pub const APPX_PACKAGING_CONTEXT_CHANGE_TYPE_DETAILS: APPX_PACKAGING_CONTEXT_CHANGE_TYPE = 2i32; +pub const APPX_PACKAGING_CONTEXT_CHANGE_TYPE_END: APPX_PACKAGING_CONTEXT_CHANGE_TYPE = 3i32; +pub const APPX_PACKAGING_CONTEXT_CHANGE_TYPE_START: APPX_PACKAGING_CONTEXT_CHANGE_TYPE = 0i32; +pub const AddPackageDependencyOptions_None: AddPackageDependencyOptions = 0i32; +pub const AddPackageDependencyOptions_PrependIfRankCollision: AddPackageDependencyOptions = 1i32; +pub const AppPolicyClrCompat_ClassicDesktop: AppPolicyClrCompat = 1i32; +pub const AppPolicyClrCompat_Other: AppPolicyClrCompat = 0i32; +pub const AppPolicyClrCompat_PackagedDesktop: AppPolicyClrCompat = 3i32; +pub const AppPolicyClrCompat_Universal: AppPolicyClrCompat = 2i32; +pub const AppPolicyCreateFileAccess_Full: AppPolicyCreateFileAccess = 0i32; +pub const AppPolicyCreateFileAccess_Limited: AppPolicyCreateFileAccess = 1i32; +pub const AppPolicyLifecycleManagement_Managed: AppPolicyLifecycleManagement = 1i32; +pub const AppPolicyLifecycleManagement_Unmanaged: AppPolicyLifecycleManagement = 0i32; +pub const AppPolicyMediaFoundationCodecLoading_All: AppPolicyMediaFoundationCodecLoading = 0i32; +pub const AppPolicyMediaFoundationCodecLoading_InboxOnly: AppPolicyMediaFoundationCodecLoading = 1i32; +pub const AppPolicyProcessTerminationMethod_ExitProcess: AppPolicyProcessTerminationMethod = 0i32; +pub const AppPolicyProcessTerminationMethod_TerminateProcess: AppPolicyProcessTerminationMethod = 1i32; +pub const AppPolicyShowDeveloperDiagnostic_None: AppPolicyShowDeveloperDiagnostic = 0i32; +pub const AppPolicyShowDeveloperDiagnostic_ShowUI: AppPolicyShowDeveloperDiagnostic = 1i32; +pub const AppPolicyThreadInitializationType_InitializeWinRT: AppPolicyThreadInitializationType = 1i32; +pub const AppPolicyThreadInitializationType_None: AppPolicyThreadInitializationType = 0i32; +pub const AppPolicyWindowingModel_ClassicDesktop: AppPolicyWindowingModel = 2i32; +pub const AppPolicyWindowingModel_ClassicPhone: AppPolicyWindowingModel = 3i32; +pub const AppPolicyWindowingModel_None: AppPolicyWindowingModel = 0i32; +pub const AppPolicyWindowingModel_Universal: AppPolicyWindowingModel = 1i32; +pub const AppxBundleFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x378e0446_5384_43b7_8877_e7dbdd883446); +pub const AppxEncryptionFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdc664fdd_d868_46ee_8780_8d196cb739f7); +pub const AppxFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5842a140_ff9f_4166_8f5c_62f5b7b0c781); +pub const AppxPackageEditor: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf004f2ca_aebc_4b0d_bf58_e516d5bcc0ab); +pub const AppxPackagingDiagnosticEventSinkManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x50ca0a46_1588_4161_8ed2_ef9e469ced5d); +pub const CreatePackageDependencyOptions_DoNotVerifyDependencyResolution: CreatePackageDependencyOptions = 1i32; +pub const CreatePackageDependencyOptions_None: CreatePackageDependencyOptions = 0i32; +pub const CreatePackageDependencyOptions_ScopeIsSystem: CreatePackageDependencyOptions = 2i32; +pub const DX_FEATURE_LEVEL_10: DX_FEATURE_LEVEL = 2i32; +pub const DX_FEATURE_LEVEL_11: DX_FEATURE_LEVEL = 3i32; +pub const DX_FEATURE_LEVEL_9: DX_FEATURE_LEVEL = 1i32; +pub const DX_FEATURE_LEVEL_UNSPECIFIED: DX_FEATURE_LEVEL = 0i32; +pub const PACKAGE_DEPENDENCY_RANK_DEFAULT: u32 = 0u32; +pub const PACKAGE_FILTER_ALL_LOADED: u32 = 0u32; +pub const PACKAGE_FILTER_BUNDLE: u32 = 128u32; +pub const PACKAGE_FILTER_DIRECT: u32 = 32u32; +pub const PACKAGE_FILTER_DYNAMIC: u32 = 1048576u32; +pub const PACKAGE_FILTER_HEAD: u32 = 16u32; +pub const PACKAGE_FILTER_HOSTRUNTIME: u32 = 2097152u32; +pub const PACKAGE_FILTER_IS_IN_RELATED_SET: u32 = 262144u32; +pub const PACKAGE_FILTER_OPTIONAL: u32 = 131072u32; +pub const PACKAGE_FILTER_RESOURCE: u32 = 64u32; +pub const PACKAGE_FILTER_STATIC: u32 = 524288u32; +pub const PACKAGE_INFORMATION_BASIC: u32 = 0u32; +pub const PACKAGE_INFORMATION_FULL: u32 = 256u32; +pub const PACKAGE_PROPERTY_BUNDLE: u32 = 4u32; +pub const PACKAGE_PROPERTY_DEVELOPMENT_MODE: u32 = 65536u32; +pub const PACKAGE_PROPERTY_DYNAMIC: u32 = 1048576u32; +pub const PACKAGE_PROPERTY_FRAMEWORK: u32 = 1u32; +pub const PACKAGE_PROPERTY_HOSTRUNTIME: u32 = 2097152u32; +pub const PACKAGE_PROPERTY_IS_IN_RELATED_SET: u32 = 262144u32; +pub const PACKAGE_PROPERTY_OPTIONAL: u32 = 8u32; +pub const PACKAGE_PROPERTY_RESOURCE: u32 = 2u32; +pub const PACKAGE_PROPERTY_STATIC: u32 = 524288u32; +pub const PackageDependencyLifetimeKind_FilePath: PackageDependencyLifetimeKind = 1i32; +pub const PackageDependencyLifetimeKind_Process: PackageDependencyLifetimeKind = 0i32; +pub const PackageDependencyLifetimeKind_RegistryKey: PackageDependencyLifetimeKind = 2i32; +pub const PackageDependencyProcessorArchitectures_Arm: PackageDependencyProcessorArchitectures = 8i32; +pub const PackageDependencyProcessorArchitectures_Arm64: PackageDependencyProcessorArchitectures = 16i32; +pub const PackageDependencyProcessorArchitectures_Neutral: PackageDependencyProcessorArchitectures = 1i32; +pub const PackageDependencyProcessorArchitectures_None: PackageDependencyProcessorArchitectures = 0i32; +pub const PackageDependencyProcessorArchitectures_X64: PackageDependencyProcessorArchitectures = 4i32; +pub const PackageDependencyProcessorArchitectures_X86: PackageDependencyProcessorArchitectures = 2i32; +pub const PackageDependencyProcessorArchitectures_X86A64: PackageDependencyProcessorArchitectures = 32i32; +pub const PackageOrigin_DeveloperSigned: PackageOrigin = 5i32; +pub const PackageOrigin_DeveloperUnsigned: PackageOrigin = 4i32; +pub const PackageOrigin_Inbox: PackageOrigin = 2i32; +pub const PackageOrigin_LineOfBusiness: PackageOrigin = 6i32; +pub const PackageOrigin_Store: PackageOrigin = 3i32; +pub const PackageOrigin_Unknown: PackageOrigin = 0i32; +pub const PackageOrigin_Unsigned: PackageOrigin = 1i32; +pub const PackagePathType_Effective: PackagePathType = 2i32; +pub const PackagePathType_EffectiveExternal: PackagePathType = 5i32; +pub const PackagePathType_Install: PackagePathType = 0i32; +pub const PackagePathType_MachineExternal: PackagePathType = 3i32; +pub const PackagePathType_Mutable: PackagePathType = 1i32; +pub const PackagePathType_UserExternal: PackagePathType = 4i32; +pub type APPX_BUNDLE_FOOTPRINT_FILE_TYPE = i32; +pub type APPX_BUNDLE_PAYLOAD_PACKAGE_TYPE = i32; +pub type APPX_CAPABILITIES = i32; +pub type APPX_CAPABILITY_CLASS_TYPE = i32; +pub type APPX_COMPRESSION_OPTION = i32; +pub type APPX_ENCRYPTED_PACKAGE_OPTIONS = i32; +pub type APPX_FOOTPRINT_FILE_TYPE = i32; +pub type APPX_PACKAGE_ARCHITECTURE = i32; +pub type APPX_PACKAGE_ARCHITECTURE2 = i32; +pub type APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTIONS = i32; +pub type APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_OPTION = i32; +pub type APPX_PACKAGING_CONTEXT_CHANGE_TYPE = i32; +pub type AddPackageDependencyOptions = i32; +pub type AppPolicyClrCompat = i32; +pub type AppPolicyCreateFileAccess = i32; +pub type AppPolicyLifecycleManagement = i32; +pub type AppPolicyMediaFoundationCodecLoading = i32; +pub type AppPolicyProcessTerminationMethod = i32; +pub type AppPolicyShowDeveloperDiagnostic = i32; +pub type AppPolicyThreadInitializationType = i32; +pub type AppPolicyWindowingModel = i32; +pub type CreatePackageDependencyOptions = i32; +pub type DX_FEATURE_LEVEL = i32; +pub type PackageDependencyLifetimeKind = i32; +pub type PackageDependencyProcessorArchitectures = i32; +pub type PackageOrigin = i32; +pub type PackagePathType = i32; +#[repr(C)] +pub struct APPX_ENCRYPTED_EXEMPTIONS { + pub count: u32, + pub plainTextFiles: *const ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for APPX_ENCRYPTED_EXEMPTIONS {} +impl ::core::clone::Clone for APPX_ENCRYPTED_EXEMPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct APPX_ENCRYPTED_PACKAGE_SETTINGS { + pub keyLength: u32, + pub encryptionAlgorithm: ::windows_sys::core::PCWSTR, + pub useDiffusion: super::super::super::Foundation::BOOL, + pub blockMapHashAlgorithm: super::super::super::System::Com::IUri, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for APPX_ENCRYPTED_PACKAGE_SETTINGS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for APPX_ENCRYPTED_PACKAGE_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct APPX_ENCRYPTED_PACKAGE_SETTINGS2 { + pub keyLength: u32, + pub encryptionAlgorithm: ::windows_sys::core::PCWSTR, + pub blockMapHashAlgorithm: super::super::super::System::Com::IUri, + pub options: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for APPX_ENCRYPTED_PACKAGE_SETTINGS2 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for APPX_ENCRYPTED_PACKAGE_SETTINGS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct APPX_KEY_INFO { + pub keyLength: u32, + pub keyIdLength: u32, + pub key: *mut u8, + pub keyId: *mut u8, +} +impl ::core::marker::Copy for APPX_KEY_INFO {} +impl ::core::clone::Clone for APPX_KEY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct APPX_PACKAGE_SETTINGS { + pub forceZip32: super::super::super::Foundation::BOOL, + pub hashMethod: super::super::super::System::Com::IUri, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for APPX_PACKAGE_SETTINGS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for APPX_PACKAGE_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct APPX_PACKAGE_WRITER_PAYLOAD_STREAM { + pub inputStream: super::super::super::System::Com::IStream, + pub fileName: ::windows_sys::core::PCWSTR, + pub contentType: ::windows_sys::core::PCWSTR, + pub compressionOption: APPX_COMPRESSION_OPTION, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for APPX_PACKAGE_WRITER_PAYLOAD_STREAM {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for APPX_PACKAGE_WRITER_PAYLOAD_STREAM { + fn clone(&self) -> Self { + *self + } +} +pub type PACKAGEDEPENDENCY_CONTEXT = isize; +#[repr(C, packed(4))] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct PACKAGE_ID { + pub reserved: u32, + pub processorArchitecture: u32, + pub version: PACKAGE_VERSION, + pub name: ::windows_sys::core::PWSTR, + pub publisher: ::windows_sys::core::PWSTR, + pub resourceId: ::windows_sys::core::PWSTR, + pub publisherId: ::windows_sys::core::PWSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for PACKAGE_ID {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for PACKAGE_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct PACKAGE_ID { + pub reserved: u32, + pub processorArchitecture: u32, + pub version: PACKAGE_VERSION, + pub name: ::windows_sys::core::PWSTR, + pub publisher: ::windows_sys::core::PWSTR, + pub resourceId: ::windows_sys::core::PWSTR, + pub publisherId: ::windows_sys::core::PWSTR, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for PACKAGE_ID {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for PACKAGE_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct PACKAGE_INFO { + pub reserved: u32, + pub flags: u32, + pub path: ::windows_sys::core::PWSTR, + pub packageFullName: ::windows_sys::core::PWSTR, + pub packageFamilyName: ::windows_sys::core::PWSTR, + pub packageId: PACKAGE_ID, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for PACKAGE_INFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for PACKAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct PACKAGE_INFO { + pub reserved: u32, + pub flags: u32, + pub path: ::windows_sys::core::PWSTR, + pub packageFullName: ::windows_sys::core::PWSTR, + pub packageFamilyName: ::windows_sys::core::PWSTR, + pub packageId: PACKAGE_ID, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for PACKAGE_INFO {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for PACKAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PACKAGE_VERSION { + pub Anonymous: PACKAGE_VERSION_0, +} +impl ::core::marker::Copy for PACKAGE_VERSION {} +impl ::core::clone::Clone for PACKAGE_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub union PACKAGE_VERSION_0 { + pub Version: u64, + pub Anonymous: PACKAGE_VERSION_0_0, +} +impl ::core::marker::Copy for PACKAGE_VERSION_0 {} +impl ::core::clone::Clone for PACKAGE_VERSION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PACKAGE_VERSION_0_0 { + pub Revision: u16, + pub Build: u16, + pub Minor: u16, + pub Major: u16, +} +impl ::core::marker::Copy for PACKAGE_VERSION_0_0 {} +impl ::core::clone::Clone for PACKAGE_VERSION_0_0 { + fn clone(&self) -> Self { + *self + } +} +pub type PACKAGE_VIRTUALIZATION_CONTEXT_HANDLE = isize; +#[repr(C)] +pub struct _PACKAGE_INFO_REFERENCE { + pub reserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for _PACKAGE_INFO_REFERENCE {} +impl ::core::clone::Clone for _PACKAGE_INFO_REFERENCE { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Packaging/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Packaging/mod.rs new file mode 100644 index 000000000..c48359e36 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Packaging/mod.rs @@ -0,0 +1,3 @@ +#[cfg(feature = "Win32_Storage_Packaging_Appx")] +#[doc = "Required features: `\"Win32_Storage_Packaging_Appx\"`"] +pub mod Appx; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/ProjectedFileSystem/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/ProjectedFileSystem/mod.rs new file mode 100644 index 000000000..76a5ad3d6 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/ProjectedFileSystem/mod.rs @@ -0,0 +1,406 @@ +::windows_targets::link!("projectedfslib.dll" "system" fn PrjAllocateAlignedBuffer(namespacevirtualizationcontext : PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, size : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("projectedfslib.dll" "system" fn PrjClearNegativePathCache(namespacevirtualizationcontext : PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, totalentrynumber : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("projectedfslib.dll" "system" fn PrjCompleteCommand(namespacevirtualizationcontext : PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, commandid : i32, completionresult : ::windows_sys::core::HRESULT, extendedparameters : *const PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("projectedfslib.dll" "system" fn PrjDeleteFile(namespacevirtualizationcontext : PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename : ::windows_sys::core::PCWSTR, updateflags : PRJ_UPDATE_TYPES, failurereason : *mut PRJ_UPDATE_FAILURE_CAUSES) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("projectedfslib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrjDoesNameContainWildCards(filename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOLEAN); +::windows_targets::link!("projectedfslib.dll" "system" fn PrjFileNameCompare(filename1 : ::windows_sys::core::PCWSTR, filename2 : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("projectedfslib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrjFileNameMatch(filenametocheck : ::windows_sys::core::PCWSTR, pattern : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("projectedfslib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrjFillDirEntryBuffer(filename : ::windows_sys::core::PCWSTR, filebasicinfo : *const PRJ_FILE_BASIC_INFO, direntrybufferhandle : PRJ_DIR_ENTRY_BUFFER_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("projectedfslib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrjFillDirEntryBuffer2(direntrybufferhandle : PRJ_DIR_ENTRY_BUFFER_HANDLE, filename : ::windows_sys::core::PCWSTR, filebasicinfo : *const PRJ_FILE_BASIC_INFO, extendedinfo : *const PRJ_EXTENDED_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("projectedfslib.dll" "system" fn PrjFreeAlignedBuffer(buffer : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("projectedfslib.dll" "system" fn PrjGetOnDiskFileState(destinationfilename : ::windows_sys::core::PCWSTR, filestate : *mut PRJ_FILE_STATE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("projectedfslib.dll" "system" fn PrjGetVirtualizationInstanceInfo(namespacevirtualizationcontext : PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, virtualizationinstanceinfo : *mut PRJ_VIRTUALIZATION_INSTANCE_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("projectedfslib.dll" "system" fn PrjMarkDirectoryAsPlaceholder(rootpathname : ::windows_sys::core::PCWSTR, targetpathname : ::windows_sys::core::PCWSTR, versioninfo : *const PRJ_PLACEHOLDER_VERSION_INFO, virtualizationinstanceid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("projectedfslib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrjStartVirtualizing(virtualizationrootpath : ::windows_sys::core::PCWSTR, callbacks : *const PRJ_CALLBACKS, instancecontext : *const ::core::ffi::c_void, options : *const PRJ_STARTVIRTUALIZING_OPTIONS, namespacevirtualizationcontext : *mut PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("projectedfslib.dll" "system" fn PrjStopVirtualizing(namespacevirtualizationcontext : PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("projectedfslib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrjUpdateFileIfNeeded(namespacevirtualizationcontext : PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename : ::windows_sys::core::PCWSTR, placeholderinfo : *const PRJ_PLACEHOLDER_INFO, placeholderinfosize : u32, updateflags : PRJ_UPDATE_TYPES, failurereason : *mut PRJ_UPDATE_FAILURE_CAUSES) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("projectedfslib.dll" "system" fn PrjWriteFileData(namespacevirtualizationcontext : PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, datastreamid : *const ::windows_sys::core::GUID, buffer : *const ::core::ffi::c_void, byteoffset : u64, length : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("projectedfslib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrjWritePlaceholderInfo(namespacevirtualizationcontext : PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename : ::windows_sys::core::PCWSTR, placeholderinfo : *const PRJ_PLACEHOLDER_INFO, placeholderinfosize : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("projectedfslib.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrjWritePlaceholderInfo2(namespacevirtualizationcontext : PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename : ::windows_sys::core::PCWSTR, placeholderinfo : *const PRJ_PLACEHOLDER_INFO, placeholderinfosize : u32, extendedinfo : *const PRJ_EXTENDED_INFO) -> ::windows_sys::core::HRESULT); +pub const PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN: PRJ_CALLBACK_DATA_FLAGS = 1i32; +pub const PRJ_CB_DATA_FLAG_ENUM_RETURN_SINGLE_ENTRY: PRJ_CALLBACK_DATA_FLAGS = 2i32; +pub const PRJ_COMPLETE_COMMAND_TYPE_ENUMERATION: PRJ_COMPLETE_COMMAND_TYPE = 2i32; +pub const PRJ_COMPLETE_COMMAND_TYPE_NOTIFICATION: PRJ_COMPLETE_COMMAND_TYPE = 1i32; +pub const PRJ_EXT_INFO_TYPE_SYMLINK: PRJ_EXT_INFO_TYPE = 1i32; +pub const PRJ_FILE_STATE_DIRTY_PLACEHOLDER: PRJ_FILE_STATE = 4i32; +pub const PRJ_FILE_STATE_FULL: PRJ_FILE_STATE = 8i32; +pub const PRJ_FILE_STATE_HYDRATED_PLACEHOLDER: PRJ_FILE_STATE = 2i32; +pub const PRJ_FILE_STATE_PLACEHOLDER: PRJ_FILE_STATE = 1i32; +pub const PRJ_FILE_STATE_TOMBSTONE: PRJ_FILE_STATE = 16i32; +pub const PRJ_FLAG_NONE: PRJ_STARTVIRTUALIZING_FLAGS = 0i32; +pub const PRJ_FLAG_USE_NEGATIVE_PATH_CACHE: PRJ_STARTVIRTUALIZING_FLAGS = 1i32; +pub const PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED: PRJ_NOTIFICATION = 2048i32; +pub const PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_MODIFIED: PRJ_NOTIFICATION = 1024i32; +pub const PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_NO_MODIFICATION: PRJ_NOTIFICATION = 512i32; +pub const PRJ_NOTIFICATION_FILE_OPENED: PRJ_NOTIFICATION = 2i32; +pub const PRJ_NOTIFICATION_FILE_OVERWRITTEN: PRJ_NOTIFICATION = 8i32; +pub const PRJ_NOTIFICATION_FILE_PRE_CONVERT_TO_FULL: PRJ_NOTIFICATION = 4096i32; +pub const PRJ_NOTIFICATION_FILE_RENAMED: PRJ_NOTIFICATION = 128i32; +pub const PRJ_NOTIFICATION_HARDLINK_CREATED: PRJ_NOTIFICATION = 256i32; +pub const PRJ_NOTIFICATION_NEW_FILE_CREATED: PRJ_NOTIFICATION = 4i32; +pub const PRJ_NOTIFICATION_PRE_DELETE: PRJ_NOTIFICATION = 16i32; +pub const PRJ_NOTIFICATION_PRE_RENAME: PRJ_NOTIFICATION = 32i32; +pub const PRJ_NOTIFICATION_PRE_SET_HARDLINK: PRJ_NOTIFICATION = 64i32; +pub const PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED: PRJ_NOTIFY_TYPES = 2048u32; +pub const PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED: PRJ_NOTIFY_TYPES = 1024u32; +pub const PRJ_NOTIFY_FILE_HANDLE_CLOSED_NO_MODIFICATION: PRJ_NOTIFY_TYPES = 512u32; +pub const PRJ_NOTIFY_FILE_OPENED: PRJ_NOTIFY_TYPES = 2u32; +pub const PRJ_NOTIFY_FILE_OVERWRITTEN: PRJ_NOTIFY_TYPES = 8u32; +pub const PRJ_NOTIFY_FILE_PRE_CONVERT_TO_FULL: PRJ_NOTIFY_TYPES = 4096u32; +pub const PRJ_NOTIFY_FILE_RENAMED: PRJ_NOTIFY_TYPES = 128u32; +pub const PRJ_NOTIFY_HARDLINK_CREATED: PRJ_NOTIFY_TYPES = 256u32; +pub const PRJ_NOTIFY_NEW_FILE_CREATED: PRJ_NOTIFY_TYPES = 4u32; +pub const PRJ_NOTIFY_NONE: PRJ_NOTIFY_TYPES = 0u32; +pub const PRJ_NOTIFY_PRE_DELETE: PRJ_NOTIFY_TYPES = 16u32; +pub const PRJ_NOTIFY_PRE_RENAME: PRJ_NOTIFY_TYPES = 32u32; +pub const PRJ_NOTIFY_PRE_SET_HARDLINK: PRJ_NOTIFY_TYPES = 64u32; +pub const PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS: PRJ_NOTIFY_TYPES = 1u32; +pub const PRJ_NOTIFY_USE_EXISTING_MASK: PRJ_NOTIFY_TYPES = 4294967295u32; +pub const PRJ_PLACEHOLDER_ID_LENGTH: PRJ_PLACEHOLDER_ID = 128i32; +pub const PRJ_UPDATE_ALLOW_DIRTY_DATA: PRJ_UPDATE_TYPES = 2i32; +pub const PRJ_UPDATE_ALLOW_DIRTY_METADATA: PRJ_UPDATE_TYPES = 1i32; +pub const PRJ_UPDATE_ALLOW_READ_ONLY: PRJ_UPDATE_TYPES = 32i32; +pub const PRJ_UPDATE_ALLOW_TOMBSTONE: PRJ_UPDATE_TYPES = 4i32; +pub const PRJ_UPDATE_FAILURE_CAUSE_DIRTY_DATA: PRJ_UPDATE_FAILURE_CAUSES = 2i32; +pub const PRJ_UPDATE_FAILURE_CAUSE_DIRTY_METADATA: PRJ_UPDATE_FAILURE_CAUSES = 1i32; +pub const PRJ_UPDATE_FAILURE_CAUSE_NONE: PRJ_UPDATE_FAILURE_CAUSES = 0i32; +pub const PRJ_UPDATE_FAILURE_CAUSE_READ_ONLY: PRJ_UPDATE_FAILURE_CAUSES = 8i32; +pub const PRJ_UPDATE_FAILURE_CAUSE_TOMBSTONE: PRJ_UPDATE_FAILURE_CAUSES = 4i32; +pub const PRJ_UPDATE_MAX_VAL: PRJ_UPDATE_TYPES = 64i32; +pub const PRJ_UPDATE_NONE: PRJ_UPDATE_TYPES = 0i32; +pub const PRJ_UPDATE_RESERVED1: PRJ_UPDATE_TYPES = 8i32; +pub const PRJ_UPDATE_RESERVED2: PRJ_UPDATE_TYPES = 16i32; +pub type PRJ_CALLBACK_DATA_FLAGS = i32; +pub type PRJ_COMPLETE_COMMAND_TYPE = i32; +pub type PRJ_EXT_INFO_TYPE = i32; +pub type PRJ_FILE_STATE = i32; +pub type PRJ_NOTIFICATION = i32; +pub type PRJ_NOTIFY_TYPES = u32; +pub type PRJ_PLACEHOLDER_ID = i32; +pub type PRJ_STARTVIRTUALIZING_FLAGS = i32; +pub type PRJ_UPDATE_FAILURE_CAUSES = i32; +pub type PRJ_UPDATE_TYPES = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PRJ_CALLBACKS { + pub StartDirectoryEnumerationCallback: PRJ_START_DIRECTORY_ENUMERATION_CB, + pub EndDirectoryEnumerationCallback: PRJ_END_DIRECTORY_ENUMERATION_CB, + pub GetDirectoryEnumerationCallback: PRJ_GET_DIRECTORY_ENUMERATION_CB, + pub GetPlaceholderInfoCallback: PRJ_GET_PLACEHOLDER_INFO_CB, + pub GetFileDataCallback: PRJ_GET_FILE_DATA_CB, + pub QueryFileNameCallback: PRJ_QUERY_FILE_NAME_CB, + pub NotificationCallback: PRJ_NOTIFICATION_CB, + pub CancelCommandCallback: PRJ_CANCEL_COMMAND_CB, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PRJ_CALLBACKS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PRJ_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRJ_CALLBACK_DATA { + pub Size: u32, + pub Flags: PRJ_CALLBACK_DATA_FLAGS, + pub NamespaceVirtualizationContext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, + pub CommandId: i32, + pub FileId: ::windows_sys::core::GUID, + pub DataStreamId: ::windows_sys::core::GUID, + pub FilePathName: ::windows_sys::core::PCWSTR, + pub VersionInfo: *mut PRJ_PLACEHOLDER_VERSION_INFO, + pub TriggeringProcessId: u32, + pub TriggeringProcessImageFileName: ::windows_sys::core::PCWSTR, + pub InstanceContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for PRJ_CALLBACK_DATA {} +impl ::core::clone::Clone for PRJ_CALLBACK_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS { + pub CommandType: PRJ_COMPLETE_COMMAND_TYPE, + pub Anonymous: PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0, +} +impl ::core::marker::Copy for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS {} +impl ::core::clone::Clone for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0 { + pub Notification: PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_1, + pub Enumeration: PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_0, +} +impl ::core::marker::Copy for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0 {} +impl ::core::clone::Clone for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_0 { + pub DirEntryBufferHandle: PRJ_DIR_ENTRY_BUFFER_HANDLE, +} +impl ::core::marker::Copy for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_0 {} +impl ::core::clone::Clone for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_1 { + pub NotificationMask: PRJ_NOTIFY_TYPES, +} +impl ::core::marker::Copy for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_1 {} +impl ::core::clone::Clone for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_1 { + fn clone(&self) -> Self { + *self + } +} +pub type PRJ_DIR_ENTRY_BUFFER_HANDLE = isize; +#[repr(C)] +pub struct PRJ_EXTENDED_INFO { + pub InfoType: PRJ_EXT_INFO_TYPE, + pub NextInfoOffset: u32, + pub Anonymous: PRJ_EXTENDED_INFO_0, +} +impl ::core::marker::Copy for PRJ_EXTENDED_INFO {} +impl ::core::clone::Clone for PRJ_EXTENDED_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PRJ_EXTENDED_INFO_0 { + pub Symlink: PRJ_EXTENDED_INFO_0_0, +} +impl ::core::marker::Copy for PRJ_EXTENDED_INFO_0 {} +impl ::core::clone::Clone for PRJ_EXTENDED_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRJ_EXTENDED_INFO_0_0 { + pub TargetName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for PRJ_EXTENDED_INFO_0_0 {} +impl ::core::clone::Clone for PRJ_EXTENDED_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PRJ_FILE_BASIC_INFO { + pub IsDirectory: super::super::Foundation::BOOLEAN, + pub FileSize: i64, + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub FileAttributes: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PRJ_FILE_BASIC_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PRJ_FILE_BASIC_INFO { + fn clone(&self) -> Self { + *self + } +} +pub type PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT = isize; +#[repr(C)] +pub struct PRJ_NOTIFICATION_MAPPING { + pub NotificationBitMask: PRJ_NOTIFY_TYPES, + pub NotificationRoot: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for PRJ_NOTIFICATION_MAPPING {} +impl ::core::clone::Clone for PRJ_NOTIFICATION_MAPPING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union PRJ_NOTIFICATION_PARAMETERS { + pub PostCreate: PRJ_NOTIFICATION_PARAMETERS_2, + pub FileRenamed: PRJ_NOTIFICATION_PARAMETERS_1, + pub FileDeletedOnHandleClose: PRJ_NOTIFICATION_PARAMETERS_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PRJ_NOTIFICATION_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PRJ_NOTIFICATION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PRJ_NOTIFICATION_PARAMETERS_0 { + pub IsFileModified: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PRJ_NOTIFICATION_PARAMETERS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PRJ_NOTIFICATION_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PRJ_NOTIFICATION_PARAMETERS_1 { + pub NotificationMask: PRJ_NOTIFY_TYPES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PRJ_NOTIFICATION_PARAMETERS_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PRJ_NOTIFICATION_PARAMETERS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PRJ_NOTIFICATION_PARAMETERS_2 { + pub NotificationMask: PRJ_NOTIFY_TYPES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PRJ_NOTIFICATION_PARAMETERS_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PRJ_NOTIFICATION_PARAMETERS_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PRJ_PLACEHOLDER_INFO { + pub FileBasicInfo: PRJ_FILE_BASIC_INFO, + pub EaInformation: PRJ_PLACEHOLDER_INFO_0, + pub SecurityInformation: PRJ_PLACEHOLDER_INFO_1, + pub StreamsInformation: PRJ_PLACEHOLDER_INFO_2, + pub VersionInfo: PRJ_PLACEHOLDER_VERSION_INFO, + pub VariableData: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PRJ_PLACEHOLDER_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PRJ_PLACEHOLDER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PRJ_PLACEHOLDER_INFO_0 { + pub EaBufferSize: u32, + pub OffsetToFirstEa: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PRJ_PLACEHOLDER_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PRJ_PLACEHOLDER_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PRJ_PLACEHOLDER_INFO_1 { + pub SecurityBufferSize: u32, + pub OffsetToSecurityDescriptor: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PRJ_PLACEHOLDER_INFO_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PRJ_PLACEHOLDER_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PRJ_PLACEHOLDER_INFO_2 { + pub StreamsInfoBufferSize: u32, + pub OffsetToFirstStreamInfo: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PRJ_PLACEHOLDER_INFO_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PRJ_PLACEHOLDER_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRJ_PLACEHOLDER_VERSION_INFO { + pub ProviderID: [u8; 128], + pub ContentID: [u8; 128], +} +impl ::core::marker::Copy for PRJ_PLACEHOLDER_VERSION_INFO {} +impl ::core::clone::Clone for PRJ_PLACEHOLDER_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRJ_STARTVIRTUALIZING_OPTIONS { + pub Flags: PRJ_STARTVIRTUALIZING_FLAGS, + pub PoolThreadCount: u32, + pub ConcurrentThreadCount: u32, + pub NotificationMappings: *mut PRJ_NOTIFICATION_MAPPING, + pub NotificationMappingsCount: u32, +} +impl ::core::marker::Copy for PRJ_STARTVIRTUALIZING_OPTIONS {} +impl ::core::clone::Clone for PRJ_STARTVIRTUALIZING_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRJ_VIRTUALIZATION_INSTANCE_INFO { + pub InstanceID: ::windows_sys::core::GUID, + pub WriteAlignment: u32, +} +impl ::core::marker::Copy for PRJ_VIRTUALIZATION_INSTANCE_INFO {} +impl ::core::clone::Clone for PRJ_VIRTUALIZATION_INSTANCE_INFO { + fn clone(&self) -> Self { + *self + } +} +pub type PRJ_CANCEL_COMMAND_CB = ::core::option::Option ()>; +pub type PRJ_END_DIRECTORY_ENUMERATION_CB = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PRJ_GET_DIRECTORY_ENUMERATION_CB = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PRJ_GET_FILE_DATA_CB = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PRJ_GET_PLACEHOLDER_INFO_CB = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PRJ_NOTIFICATION_CB = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PRJ_QUERY_FILE_NAME_CB = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PRJ_START_DIRECTORY_ENUMERATION_CB = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/StructuredStorage/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/StructuredStorage/mod.rs new file mode 100644 index 000000000..44ebfc093 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/StructuredStorage/mod.rs @@ -0,0 +1,5 @@ +pub type JET_API_PTR = usize; +pub type JET_HANDLE = usize; +pub type JET_INSTANCE = usize; +pub type JET_SESID = usize; +pub type JET_TABLEID = usize; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Vhd/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Vhd/mod.rs new file mode 100644 index 000000000..17f88c8e6 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Vhd/mod.rs @@ -0,0 +1,1156 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddVirtualDiskParent(virtualdiskhandle : super::super::Foundation:: HANDLE, parentpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplySnapshotVhdSet(virtualdiskhandle : super::super::Foundation:: HANDLE, parameters : *const APPLY_SNAPSHOT_VHDSET_PARAMETERS, flags : APPLY_SNAPSHOT_VHDSET_FLAG) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO"))] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`"] fn AttachVirtualDisk(virtualdiskhandle : super::super::Foundation:: HANDLE, securitydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR, flags : ATTACH_VIRTUAL_DISK_FLAG, providerspecificflags : u32, parameters : *const ATTACH_VIRTUAL_DISK_PARAMETERS, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BreakMirrorVirtualDisk(virtualdiskhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn CompactVirtualDisk(virtualdiskhandle : super::super::Foundation:: HANDLE, flags : COMPACT_VIRTUAL_DISK_FLAG, parameters : *const COMPACT_VIRTUAL_DISK_PARAMETERS, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CompleteForkVirtualDisk(virtualdiskhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_IO"))] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_IO\"`"] fn CreateVirtualDisk(virtualstoragetype : *const VIRTUAL_STORAGE_TYPE, path : ::windows_sys::core::PCWSTR, virtualdiskaccessmask : VIRTUAL_DISK_ACCESS_MASK, securitydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR, flags : CREATE_VIRTUAL_DISK_FLAG, providerspecificflags : u32, parameters : *const CREATE_VIRTUAL_DISK_PARAMETERS, overlapped : *const super::super::System::IO:: OVERLAPPED, handle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteSnapshotVhdSet(virtualdiskhandle : super::super::Foundation:: HANDLE, parameters : *const DELETE_SNAPSHOT_VHDSET_PARAMETERS, flags : DELETE_SNAPSHOT_VHDSET_FLAG) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteVirtualDiskMetadata(virtualdiskhandle : super::super::Foundation:: HANDLE, item : *const ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DetachVirtualDisk(virtualdiskhandle : super::super::Foundation:: HANDLE, flags : DETACH_VIRTUAL_DISK_FLAG, providerspecificflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumerateVirtualDiskMetadata(virtualdiskhandle : super::super::Foundation:: HANDLE, numberofitems : *mut u32, items : *mut ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ExpandVirtualDisk(virtualdiskhandle : super::super::Foundation:: HANDLE, flags : EXPAND_VIRTUAL_DISK_FLAG, parameters : *const EXPAND_VIRTUAL_DISK_PARAMETERS, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ForkVirtualDisk(virtualdiskhandle : super::super::Foundation:: HANDLE, flags : FORK_VIRTUAL_DISK_FLAG, parameters : *const FORK_VIRTUAL_DISK_PARAMETERS, overlapped : *mut super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAllAttachedVirtualDiskPhysicalPaths(pathsbuffersizeinbytes : *mut u32, pathsbuffer : ::windows_sys::core::PWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetStorageDependencyInformation(objecthandle : super::super::Foundation:: HANDLE, flags : GET_STORAGE_DEPENDENCY_FLAG, storagedependencyinfosize : u32, storagedependencyinfo : *mut STORAGE_DEPENDENCY_INFO, sizeused : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVirtualDiskInformation(virtualdiskhandle : super::super::Foundation:: HANDLE, virtualdiskinfosize : *mut u32, virtualdiskinfo : *mut GET_VIRTUAL_DISK_INFO, sizeused : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVirtualDiskMetadata(virtualdiskhandle : super::super::Foundation:: HANDLE, item : *const ::windows_sys::core::GUID, metadatasize : *mut u32, metadata : *mut ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn GetVirtualDiskOperationProgress(virtualdiskhandle : super::super::Foundation:: HANDLE, overlapped : *const super::super::System::IO:: OVERLAPPED, progress : *mut VIRTUAL_DISK_PROGRESS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVirtualDiskPhysicalPath(virtualdiskhandle : super::super::Foundation:: HANDLE, diskpathsizeinbytes : *mut u32, diskpath : ::windows_sys::core::PWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn MergeVirtualDisk(virtualdiskhandle : super::super::Foundation:: HANDLE, flags : MERGE_VIRTUAL_DISK_FLAG, parameters : *const MERGE_VIRTUAL_DISK_PARAMETERS, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn MirrorVirtualDisk(virtualdiskhandle : super::super::Foundation:: HANDLE, flags : MIRROR_VIRTUAL_DISK_FLAG, parameters : *const MIRROR_VIRTUAL_DISK_PARAMETERS, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ModifyVhdSet(virtualdiskhandle : super::super::Foundation:: HANDLE, parameters : *const MODIFY_VHDSET_PARAMETERS, flags : MODIFY_VHDSET_FLAG) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenVirtualDisk(virtualstoragetype : *const VIRTUAL_STORAGE_TYPE, path : ::windows_sys::core::PCWSTR, virtualdiskaccessmask : VIRTUAL_DISK_ACCESS_MASK, flags : OPEN_VIRTUAL_DISK_FLAG, parameters : *const OPEN_VIRTUAL_DISK_PARAMETERS, handle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryChangesVirtualDisk(virtualdiskhandle : super::super::Foundation:: HANDLE, changetrackingid : ::windows_sys::core::PCWSTR, byteoffset : u64, bytelength : u64, flags : QUERY_CHANGES_VIRTUAL_DISK_FLAG, ranges : *mut QUERY_CHANGES_VIRTUAL_DISK_RANGE, rangecount : *mut u32, processedlength : *mut u64) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RawSCSIVirtualDisk(virtualdiskhandle : super::super::Foundation:: HANDLE, parameters : *const RAW_SCSI_VIRTUAL_DISK_PARAMETERS, flags : RAW_SCSI_VIRTUAL_DISK_FLAG, response : *mut RAW_SCSI_VIRTUAL_DISK_RESPONSE) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ResizeVirtualDisk(virtualdiskhandle : super::super::Foundation:: HANDLE, flags : RESIZE_VIRTUAL_DISK_FLAG, parameters : *const RESIZE_VIRTUAL_DISK_PARAMETERS, overlapped : *const super::super::System::IO:: OVERLAPPED) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetVirtualDiskInformation(virtualdiskhandle : super::super::Foundation:: HANDLE, virtualdiskinfo : *const SET_VIRTUAL_DISK_INFO) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetVirtualDiskMetadata(virtualdiskhandle : super::super::Foundation:: HANDLE, item : *const ::windows_sys::core::GUID, metadatasize : u32, metadata : *const ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("virtdisk.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TakeSnapshotVhdSet(virtualdiskhandle : super::super::Foundation:: HANDLE, parameters : *const TAKE_SNAPSHOT_VHDSET_PARAMETERS, flags : TAKE_SNAPSHOT_VHDSET_FLAG) -> super::super::Foundation:: WIN32_ERROR); +pub const APPLY_SNAPSHOT_VHDSET_FLAG_NONE: APPLY_SNAPSHOT_VHDSET_FLAG = 0i32; +pub const APPLY_SNAPSHOT_VHDSET_FLAG_WRITEABLE: APPLY_SNAPSHOT_VHDSET_FLAG = 1i32; +pub const APPLY_SNAPSHOT_VHDSET_VERSION_1: APPLY_SNAPSHOT_VHDSET_VERSION = 1i32; +pub const APPLY_SNAPSHOT_VHDSET_VERSION_UNSPECIFIED: APPLY_SNAPSHOT_VHDSET_VERSION = 0i32; +pub const ATTACH_VIRTUAL_DISK_FLAG_BYPASS_DEFAULT_ENCRYPTION_POLICY: ATTACH_VIRTUAL_DISK_FLAG = 32i32; +pub const ATTACH_VIRTUAL_DISK_FLAG_NONE: ATTACH_VIRTUAL_DISK_FLAG = 0i32; +pub const ATTACH_VIRTUAL_DISK_FLAG_NON_PNP: ATTACH_VIRTUAL_DISK_FLAG = 64i32; +pub const ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER: ATTACH_VIRTUAL_DISK_FLAG = 2i32; +pub const ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST: ATTACH_VIRTUAL_DISK_FLAG = 8i32; +pub const ATTACH_VIRTUAL_DISK_FLAG_NO_SECURITY_DESCRIPTOR: ATTACH_VIRTUAL_DISK_FLAG = 16i32; +pub const ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME: ATTACH_VIRTUAL_DISK_FLAG = 4i32; +pub const ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY: ATTACH_VIRTUAL_DISK_FLAG = 1i32; +pub const ATTACH_VIRTUAL_DISK_FLAG_REGISTER_VOLUME: ATTACH_VIRTUAL_DISK_FLAG = 512i32; +pub const ATTACH_VIRTUAL_DISK_FLAG_RESTRICTED_RANGE: ATTACH_VIRTUAL_DISK_FLAG = 128i32; +pub const ATTACH_VIRTUAL_DISK_FLAG_SINGLE_PARTITION: ATTACH_VIRTUAL_DISK_FLAG = 256i32; +pub const ATTACH_VIRTUAL_DISK_VERSION_1: ATTACH_VIRTUAL_DISK_VERSION = 1i32; +pub const ATTACH_VIRTUAL_DISK_VERSION_2: ATTACH_VIRTUAL_DISK_VERSION = 2i32; +pub const ATTACH_VIRTUAL_DISK_VERSION_UNSPECIFIED: ATTACH_VIRTUAL_DISK_VERSION = 0i32; +pub const COMPACT_VIRTUAL_DISK_FLAG_NONE: COMPACT_VIRTUAL_DISK_FLAG = 0i32; +pub const COMPACT_VIRTUAL_DISK_FLAG_NO_BLOCK_MOVES: COMPACT_VIRTUAL_DISK_FLAG = 2i32; +pub const COMPACT_VIRTUAL_DISK_FLAG_NO_ZERO_SCAN: COMPACT_VIRTUAL_DISK_FLAG = 1i32; +pub const COMPACT_VIRTUAL_DISK_VERSION_1: COMPACT_VIRTUAL_DISK_VERSION = 1i32; +pub const COMPACT_VIRTUAL_DISK_VERSION_UNSPECIFIED: COMPACT_VIRTUAL_DISK_VERSION = 0i32; +pub const CREATE_VIRTUAL_DISK_FLAG_CREATE_BACKING_STORAGE: CREATE_VIRTUAL_DISK_FLAG = 8i32; +pub const CREATE_VIRTUAL_DISK_FLAG_DO_NOT_COPY_METADATA_FROM_PARENT: CREATE_VIRTUAL_DISK_FLAG = 4i32; +pub const CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION: CREATE_VIRTUAL_DISK_FLAG = 1i32; +pub const CREATE_VIRTUAL_DISK_FLAG_NONE: CREATE_VIRTUAL_DISK_FLAG = 0i32; +pub const CREATE_VIRTUAL_DISK_FLAG_PMEM_COMPATIBLE: CREATE_VIRTUAL_DISK_FLAG = 256i32; +pub const CREATE_VIRTUAL_DISK_FLAG_PRESERVE_PARENT_CHANGE_TRACKING_STATE: CREATE_VIRTUAL_DISK_FLAG = 32i32; +pub const CREATE_VIRTUAL_DISK_FLAG_PREVENT_WRITES_TO_SOURCE_DISK: CREATE_VIRTUAL_DISK_FLAG = 2i32; +pub const CREATE_VIRTUAL_DISK_FLAG_SPARSE_FILE: CREATE_VIRTUAL_DISK_FLAG = 128i32; +pub const CREATE_VIRTUAL_DISK_FLAG_SUPPORT_COMPRESSED_VOLUMES: CREATE_VIRTUAL_DISK_FLAG = 512i32; +pub const CREATE_VIRTUAL_DISK_FLAG_SUPPORT_SPARSE_FILES_ANY_FS: CREATE_VIRTUAL_DISK_FLAG = 1024i32; +pub const CREATE_VIRTUAL_DISK_FLAG_USE_CHANGE_TRACKING_SOURCE_LIMIT: CREATE_VIRTUAL_DISK_FLAG = 16i32; +pub const CREATE_VIRTUAL_DISK_FLAG_VHD_SET_USE_ORIGINAL_BACKING_STORAGE: CREATE_VIRTUAL_DISK_FLAG = 64i32; +pub const CREATE_VIRTUAL_DISK_PARAMETERS_DEFAULT_BLOCK_SIZE: u32 = 0u32; +pub const CREATE_VIRTUAL_DISK_PARAMETERS_DEFAULT_SECTOR_SIZE: u32 = 0u32; +pub const CREATE_VIRTUAL_DISK_VERSION_1: CREATE_VIRTUAL_DISK_VERSION = 1i32; +pub const CREATE_VIRTUAL_DISK_VERSION_2: CREATE_VIRTUAL_DISK_VERSION = 2i32; +pub const CREATE_VIRTUAL_DISK_VERSION_3: CREATE_VIRTUAL_DISK_VERSION = 3i32; +pub const CREATE_VIRTUAL_DISK_VERSION_4: CREATE_VIRTUAL_DISK_VERSION = 4i32; +pub const CREATE_VIRTUAL_DISK_VERSION_UNSPECIFIED: CREATE_VIRTUAL_DISK_VERSION = 0i32; +pub const DELETE_SNAPSHOT_VHDSET_FLAG_NONE: DELETE_SNAPSHOT_VHDSET_FLAG = 0i32; +pub const DELETE_SNAPSHOT_VHDSET_FLAG_PERSIST_RCT: DELETE_SNAPSHOT_VHDSET_FLAG = 1i32; +pub const DELETE_SNAPSHOT_VHDSET_VERSION_1: DELETE_SNAPSHOT_VHDSET_VERSION = 1i32; +pub const DELETE_SNAPSHOT_VHDSET_VERSION_UNSPECIFIED: DELETE_SNAPSHOT_VHDSET_VERSION = 0i32; +pub const DEPENDENT_DISK_FLAG_ALWAYS_ALLOW_SPARSE: DEPENDENT_DISK_FLAG = 4096i32; +pub const DEPENDENT_DISK_FLAG_FULLY_ALLOCATED: DEPENDENT_DISK_FLAG = 2i32; +pub const DEPENDENT_DISK_FLAG_MULT_BACKING_FILES: DEPENDENT_DISK_FLAG = 1i32; +pub const DEPENDENT_DISK_FLAG_NONE: DEPENDENT_DISK_FLAG = 0i32; +pub const DEPENDENT_DISK_FLAG_NO_DRIVE_LETTER: DEPENDENT_DISK_FLAG = 128i32; +pub const DEPENDENT_DISK_FLAG_NO_HOST_DISK: DEPENDENT_DISK_FLAG = 512i32; +pub const DEPENDENT_DISK_FLAG_PARENT: DEPENDENT_DISK_FLAG = 256i32; +pub const DEPENDENT_DISK_FLAG_PERMANENT_LIFETIME: DEPENDENT_DISK_FLAG = 1024i32; +pub const DEPENDENT_DISK_FLAG_READ_ONLY: DEPENDENT_DISK_FLAG = 4i32; +pub const DEPENDENT_DISK_FLAG_REMOTE: DEPENDENT_DISK_FLAG = 8i32; +pub const DEPENDENT_DISK_FLAG_REMOVABLE: DEPENDENT_DISK_FLAG = 64i32; +pub const DEPENDENT_DISK_FLAG_SUPPORT_COMPRESSED_VOLUMES: DEPENDENT_DISK_FLAG = 2048i32; +pub const DEPENDENT_DISK_FLAG_SUPPORT_ENCRYPTED_FILES: DEPENDENT_DISK_FLAG = 8192i32; +pub const DEPENDENT_DISK_FLAG_SYSTEM_VOLUME: DEPENDENT_DISK_FLAG = 16i32; +pub const DEPENDENT_DISK_FLAG_SYSTEM_VOLUME_PARENT: DEPENDENT_DISK_FLAG = 32i32; +pub const DETACH_VIRTUAL_DISK_FLAG_NONE: DETACH_VIRTUAL_DISK_FLAG = 0i32; +pub const EXPAND_VIRTUAL_DISK_FLAG_NONE: EXPAND_VIRTUAL_DISK_FLAG = 0i32; +pub const EXPAND_VIRTUAL_DISK_FLAG_NOTIFY_CHANGE: EXPAND_VIRTUAL_DISK_FLAG = 1i32; +pub const EXPAND_VIRTUAL_DISK_VERSION_1: EXPAND_VIRTUAL_DISK_VERSION = 1i32; +pub const EXPAND_VIRTUAL_DISK_VERSION_UNSPECIFIED: EXPAND_VIRTUAL_DISK_VERSION = 0i32; +pub const FORK_VIRTUAL_DISK_FLAG_EXISTING_FILE: FORK_VIRTUAL_DISK_FLAG = 1i32; +pub const FORK_VIRTUAL_DISK_FLAG_NONE: FORK_VIRTUAL_DISK_FLAG = 0i32; +pub const FORK_VIRTUAL_DISK_VERSION_1: FORK_VIRTUAL_DISK_VERSION = 1i32; +pub const FORK_VIRTUAL_DISK_VERSION_UNSPECIFIED: FORK_VIRTUAL_DISK_VERSION = 0i32; +pub const GET_STORAGE_DEPENDENCY_FLAG_DISK_HANDLE: GET_STORAGE_DEPENDENCY_FLAG = 2i32; +pub const GET_STORAGE_DEPENDENCY_FLAG_HOST_VOLUMES: GET_STORAGE_DEPENDENCY_FLAG = 1i32; +pub const GET_STORAGE_DEPENDENCY_FLAG_NONE: GET_STORAGE_DEPENDENCY_FLAG = 0i32; +pub const GET_VIRTUAL_DISK_INFO_CHANGE_TRACKING_STATE: GET_VIRTUAL_DISK_INFO_VERSION = 15i32; +pub const GET_VIRTUAL_DISK_INFO_FRAGMENTATION: GET_VIRTUAL_DISK_INFO_VERSION = 12i32; +pub const GET_VIRTUAL_DISK_INFO_IDENTIFIER: GET_VIRTUAL_DISK_INFO_VERSION = 2i32; +pub const GET_VIRTUAL_DISK_INFO_IS_4K_ALIGNED: GET_VIRTUAL_DISK_INFO_VERSION = 8i32; +pub const GET_VIRTUAL_DISK_INFO_IS_LOADED: GET_VIRTUAL_DISK_INFO_VERSION = 13i32; +pub const GET_VIRTUAL_DISK_INFO_PARENT_IDENTIFIER: GET_VIRTUAL_DISK_INFO_VERSION = 4i32; +pub const GET_VIRTUAL_DISK_INFO_PARENT_LOCATION: GET_VIRTUAL_DISK_INFO_VERSION = 3i32; +pub const GET_VIRTUAL_DISK_INFO_PARENT_TIMESTAMP: GET_VIRTUAL_DISK_INFO_VERSION = 5i32; +pub const GET_VIRTUAL_DISK_INFO_PHYSICAL_DISK: GET_VIRTUAL_DISK_INFO_VERSION = 9i32; +pub const GET_VIRTUAL_DISK_INFO_PROVIDER_SUBTYPE: GET_VIRTUAL_DISK_INFO_VERSION = 7i32; +pub const GET_VIRTUAL_DISK_INFO_SIZE: GET_VIRTUAL_DISK_INFO_VERSION = 1i32; +pub const GET_VIRTUAL_DISK_INFO_SMALLEST_SAFE_VIRTUAL_SIZE: GET_VIRTUAL_DISK_INFO_VERSION = 11i32; +pub const GET_VIRTUAL_DISK_INFO_UNSPECIFIED: GET_VIRTUAL_DISK_INFO_VERSION = 0i32; +pub const GET_VIRTUAL_DISK_INFO_VHD_PHYSICAL_SECTOR_SIZE: GET_VIRTUAL_DISK_INFO_VERSION = 10i32; +pub const GET_VIRTUAL_DISK_INFO_VIRTUAL_DISK_ID: GET_VIRTUAL_DISK_INFO_VERSION = 14i32; +pub const GET_VIRTUAL_DISK_INFO_VIRTUAL_STORAGE_TYPE: GET_VIRTUAL_DISK_INFO_VERSION = 6i32; +pub const MERGE_VIRTUAL_DISK_DEFAULT_MERGE_DEPTH: u32 = 1u32; +pub const MERGE_VIRTUAL_DISK_FLAG_NONE: MERGE_VIRTUAL_DISK_FLAG = 0i32; +pub const MERGE_VIRTUAL_DISK_VERSION_1: MERGE_VIRTUAL_DISK_VERSION = 1i32; +pub const MERGE_VIRTUAL_DISK_VERSION_2: MERGE_VIRTUAL_DISK_VERSION = 2i32; +pub const MERGE_VIRTUAL_DISK_VERSION_UNSPECIFIED: MERGE_VIRTUAL_DISK_VERSION = 0i32; +pub const MIRROR_VIRTUAL_DISK_FLAG_ENABLE_SMB_COMPRESSION: MIRROR_VIRTUAL_DISK_FLAG = 4i32; +pub const MIRROR_VIRTUAL_DISK_FLAG_EXISTING_FILE: MIRROR_VIRTUAL_DISK_FLAG = 1i32; +pub const MIRROR_VIRTUAL_DISK_FLAG_IS_LIVE_MIGRATION: MIRROR_VIRTUAL_DISK_FLAG = 8i32; +pub const MIRROR_VIRTUAL_DISK_FLAG_NONE: MIRROR_VIRTUAL_DISK_FLAG = 0i32; +pub const MIRROR_VIRTUAL_DISK_FLAG_SKIP_MIRROR_ACTIVATION: MIRROR_VIRTUAL_DISK_FLAG = 2i32; +pub const MIRROR_VIRTUAL_DISK_VERSION_1: MIRROR_VIRTUAL_DISK_VERSION = 1i32; +pub const MIRROR_VIRTUAL_DISK_VERSION_UNSPECIFIED: MIRROR_VIRTUAL_DISK_VERSION = 0i32; +pub const MODIFY_VHDSET_DEFAULT_SNAPSHOT_PATH: MODIFY_VHDSET_VERSION = 3i32; +pub const MODIFY_VHDSET_FLAG_NONE: MODIFY_VHDSET_FLAG = 0i32; +pub const MODIFY_VHDSET_FLAG_WRITEABLE_SNAPSHOT: MODIFY_VHDSET_FLAG = 1i32; +pub const MODIFY_VHDSET_REMOVE_SNAPSHOT: MODIFY_VHDSET_VERSION = 2i32; +pub const MODIFY_VHDSET_SNAPSHOT_PATH: MODIFY_VHDSET_VERSION = 1i32; +pub const MODIFY_VHDSET_UNSPECIFIED: MODIFY_VHDSET_VERSION = 0i32; +pub const OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE: OPEN_VIRTUAL_DISK_FLAG = 2i32; +pub const OPEN_VIRTUAL_DISK_FLAG_BOOT_DRIVE: OPEN_VIRTUAL_DISK_FLAG = 4i32; +pub const OPEN_VIRTUAL_DISK_FLAG_CACHED_IO: OPEN_VIRTUAL_DISK_FLAG = 8i32; +pub const OPEN_VIRTUAL_DISK_FLAG_CUSTOM_DIFF_CHAIN: OPEN_VIRTUAL_DISK_FLAG = 16i32; +pub const OPEN_VIRTUAL_DISK_FLAG_IGNORE_RELATIVE_PARENT_LOCATOR: OPEN_VIRTUAL_DISK_FLAG = 128i32; +pub const OPEN_VIRTUAL_DISK_FLAG_NONE: OPEN_VIRTUAL_DISK_FLAG = 0i32; +pub const OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS: OPEN_VIRTUAL_DISK_FLAG = 1i32; +pub const OPEN_VIRTUAL_DISK_FLAG_NO_WRITE_HARDENING: OPEN_VIRTUAL_DISK_FLAG = 256i32; +pub const OPEN_VIRTUAL_DISK_FLAG_PARENT_CACHED_IO: OPEN_VIRTUAL_DISK_FLAG = 32i32; +pub const OPEN_VIRTUAL_DISK_FLAG_SUPPORT_COMPRESSED_VOLUMES: OPEN_VIRTUAL_DISK_FLAG = 512i32; +pub const OPEN_VIRTUAL_DISK_FLAG_SUPPORT_ENCRYPTED_FILES: OPEN_VIRTUAL_DISK_FLAG = 2048i32; +pub const OPEN_VIRTUAL_DISK_FLAG_SUPPORT_SPARSE_FILES_ANY_FS: OPEN_VIRTUAL_DISK_FLAG = 1024i32; +pub const OPEN_VIRTUAL_DISK_FLAG_VHDSET_FILE_ONLY: OPEN_VIRTUAL_DISK_FLAG = 64i32; +pub const OPEN_VIRTUAL_DISK_RW_DEPTH_DEFAULT: u32 = 1u32; +pub const OPEN_VIRTUAL_DISK_VERSION_1: OPEN_VIRTUAL_DISK_VERSION = 1i32; +pub const OPEN_VIRTUAL_DISK_VERSION_2: OPEN_VIRTUAL_DISK_VERSION = 2i32; +pub const OPEN_VIRTUAL_DISK_VERSION_3: OPEN_VIRTUAL_DISK_VERSION = 3i32; +pub const OPEN_VIRTUAL_DISK_VERSION_UNSPECIFIED: OPEN_VIRTUAL_DISK_VERSION = 0i32; +pub const QUERY_CHANGES_VIRTUAL_DISK_FLAG_NONE: QUERY_CHANGES_VIRTUAL_DISK_FLAG = 0i32; +pub const RAW_SCSI_VIRTUAL_DISK_FLAG_NONE: RAW_SCSI_VIRTUAL_DISK_FLAG = 0i32; +pub const RAW_SCSI_VIRTUAL_DISK_VERSION_1: RAW_SCSI_VIRTUAL_DISK_VERSION = 1i32; +pub const RAW_SCSI_VIRTUAL_DISK_VERSION_UNSPECIFIED: RAW_SCSI_VIRTUAL_DISK_VERSION = 0i32; +pub const RESIZE_VIRTUAL_DISK_FLAG_ALLOW_UNSAFE_VIRTUAL_SIZE: RESIZE_VIRTUAL_DISK_FLAG = 1i32; +pub const RESIZE_VIRTUAL_DISK_FLAG_NONE: RESIZE_VIRTUAL_DISK_FLAG = 0i32; +pub const RESIZE_VIRTUAL_DISK_FLAG_RESIZE_TO_SMALLEST_SAFE_VIRTUAL_SIZE: RESIZE_VIRTUAL_DISK_FLAG = 2i32; +pub const RESIZE_VIRTUAL_DISK_VERSION_1: RESIZE_VIRTUAL_DISK_VERSION = 1i32; +pub const RESIZE_VIRTUAL_DISK_VERSION_UNSPECIFIED: RESIZE_VIRTUAL_DISK_VERSION = 0i32; +pub const SET_VIRTUAL_DISK_INFO_CHANGE_TRACKING_STATE: SET_VIRTUAL_DISK_INFO_VERSION = 6i32; +pub const SET_VIRTUAL_DISK_INFO_IDENTIFIER: SET_VIRTUAL_DISK_INFO_VERSION = 2i32; +pub const SET_VIRTUAL_DISK_INFO_PARENT_LOCATOR: SET_VIRTUAL_DISK_INFO_VERSION = 7i32; +pub const SET_VIRTUAL_DISK_INFO_PARENT_PATH: SET_VIRTUAL_DISK_INFO_VERSION = 1i32; +pub const SET_VIRTUAL_DISK_INFO_PARENT_PATH_WITH_DEPTH: SET_VIRTUAL_DISK_INFO_VERSION = 3i32; +pub const SET_VIRTUAL_DISK_INFO_PHYSICAL_SECTOR_SIZE: SET_VIRTUAL_DISK_INFO_VERSION = 4i32; +pub const SET_VIRTUAL_DISK_INFO_UNSPECIFIED: SET_VIRTUAL_DISK_INFO_VERSION = 0i32; +pub const SET_VIRTUAL_DISK_INFO_VIRTUAL_DISK_ID: SET_VIRTUAL_DISK_INFO_VERSION = 5i32; +pub const STORAGE_DEPENDENCY_INFO_VERSION_1: STORAGE_DEPENDENCY_INFO_VERSION = 1i32; +pub const STORAGE_DEPENDENCY_INFO_VERSION_2: STORAGE_DEPENDENCY_INFO_VERSION = 2i32; +pub const STORAGE_DEPENDENCY_INFO_VERSION_UNSPECIFIED: STORAGE_DEPENDENCY_INFO_VERSION = 0i32; +pub const TAKE_SNAPSHOT_VHDSET_FLAG_NONE: TAKE_SNAPSHOT_VHDSET_FLAG = 0i32; +pub const TAKE_SNAPSHOT_VHDSET_FLAG_WRITEABLE: TAKE_SNAPSHOT_VHDSET_FLAG = 1i32; +pub const TAKE_SNAPSHOT_VHDSET_VERSION_1: TAKE_SNAPSHOT_VHDSET_VERSION = 1i32; +pub const TAKE_SNAPSHOT_VHDSET_VERSION_UNSPECIFIED: TAKE_SNAPSHOT_VHDSET_VERSION = 0i32; +pub const VIRTUAL_DISK_ACCESS_ALL: VIRTUAL_DISK_ACCESS_MASK = 4128768i32; +pub const VIRTUAL_DISK_ACCESS_ATTACH_RO: VIRTUAL_DISK_ACCESS_MASK = 65536i32; +pub const VIRTUAL_DISK_ACCESS_ATTACH_RW: VIRTUAL_DISK_ACCESS_MASK = 131072i32; +pub const VIRTUAL_DISK_ACCESS_CREATE: VIRTUAL_DISK_ACCESS_MASK = 1048576i32; +pub const VIRTUAL_DISK_ACCESS_DETACH: VIRTUAL_DISK_ACCESS_MASK = 262144i32; +pub const VIRTUAL_DISK_ACCESS_GET_INFO: VIRTUAL_DISK_ACCESS_MASK = 524288i32; +pub const VIRTUAL_DISK_ACCESS_METAOPS: VIRTUAL_DISK_ACCESS_MASK = 2097152i32; +pub const VIRTUAL_DISK_ACCESS_NONE: VIRTUAL_DISK_ACCESS_MASK = 0i32; +pub const VIRTUAL_DISK_ACCESS_READ: VIRTUAL_DISK_ACCESS_MASK = 851968i32; +pub const VIRTUAL_DISK_ACCESS_WRITABLE: VIRTUAL_DISK_ACCESS_MASK = 3276800i32; +pub const VIRTUAL_DISK_MAXIMUM_CHANGE_TRACKING_ID_LENGTH: u32 = 256u32; +pub const VIRTUAL_STORAGE_TYPE_DEVICE_ISO: u32 = 1u32; +pub const VIRTUAL_STORAGE_TYPE_DEVICE_UNKNOWN: u32 = 0u32; +pub const VIRTUAL_STORAGE_TYPE_DEVICE_VHD: u32 = 2u32; +pub const VIRTUAL_STORAGE_TYPE_DEVICE_VHDSET: u32 = 4u32; +pub const VIRTUAL_STORAGE_TYPE_DEVICE_VHDX: u32 = 3u32; +pub const VIRTUAL_STORAGE_TYPE_VENDOR_MICROSOFT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xec984aec_a0f9_47e9_901f_71415a66345b); +pub const VIRTUAL_STORAGE_TYPE_VENDOR_UNKNOWN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000000); +pub type APPLY_SNAPSHOT_VHDSET_FLAG = i32; +pub type APPLY_SNAPSHOT_VHDSET_VERSION = i32; +pub type ATTACH_VIRTUAL_DISK_FLAG = i32; +pub type ATTACH_VIRTUAL_DISK_VERSION = i32; +pub type COMPACT_VIRTUAL_DISK_FLAG = i32; +pub type COMPACT_VIRTUAL_DISK_VERSION = i32; +pub type CREATE_VIRTUAL_DISK_FLAG = i32; +pub type CREATE_VIRTUAL_DISK_VERSION = i32; +pub type DELETE_SNAPSHOT_VHDSET_FLAG = i32; +pub type DELETE_SNAPSHOT_VHDSET_VERSION = i32; +pub type DEPENDENT_DISK_FLAG = i32; +pub type DETACH_VIRTUAL_DISK_FLAG = i32; +pub type EXPAND_VIRTUAL_DISK_FLAG = i32; +pub type EXPAND_VIRTUAL_DISK_VERSION = i32; +pub type FORK_VIRTUAL_DISK_FLAG = i32; +pub type FORK_VIRTUAL_DISK_VERSION = i32; +pub type GET_STORAGE_DEPENDENCY_FLAG = i32; +pub type GET_VIRTUAL_DISK_INFO_VERSION = i32; +pub type MERGE_VIRTUAL_DISK_FLAG = i32; +pub type MERGE_VIRTUAL_DISK_VERSION = i32; +pub type MIRROR_VIRTUAL_DISK_FLAG = i32; +pub type MIRROR_VIRTUAL_DISK_VERSION = i32; +pub type MODIFY_VHDSET_FLAG = i32; +pub type MODIFY_VHDSET_VERSION = i32; +pub type OPEN_VIRTUAL_DISK_FLAG = i32; +pub type OPEN_VIRTUAL_DISK_VERSION = i32; +pub type QUERY_CHANGES_VIRTUAL_DISK_FLAG = i32; +pub type RAW_SCSI_VIRTUAL_DISK_FLAG = i32; +pub type RAW_SCSI_VIRTUAL_DISK_VERSION = i32; +pub type RESIZE_VIRTUAL_DISK_FLAG = i32; +pub type RESIZE_VIRTUAL_DISK_VERSION = i32; +pub type SET_VIRTUAL_DISK_INFO_VERSION = i32; +pub type STORAGE_DEPENDENCY_INFO_VERSION = i32; +pub type TAKE_SNAPSHOT_VHDSET_FLAG = i32; +pub type TAKE_SNAPSHOT_VHDSET_VERSION = i32; +pub type VIRTUAL_DISK_ACCESS_MASK = i32; +#[repr(C)] +pub struct APPLY_SNAPSHOT_VHDSET_PARAMETERS { + pub Version: APPLY_SNAPSHOT_VHDSET_VERSION, + pub Anonymous: APPLY_SNAPSHOT_VHDSET_PARAMETERS_0, +} +impl ::core::marker::Copy for APPLY_SNAPSHOT_VHDSET_PARAMETERS {} +impl ::core::clone::Clone for APPLY_SNAPSHOT_VHDSET_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union APPLY_SNAPSHOT_VHDSET_PARAMETERS_0 { + pub Version1: APPLY_SNAPSHOT_VHDSET_PARAMETERS_0_0, +} +impl ::core::marker::Copy for APPLY_SNAPSHOT_VHDSET_PARAMETERS_0 {} +impl ::core::clone::Clone for APPLY_SNAPSHOT_VHDSET_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct APPLY_SNAPSHOT_VHDSET_PARAMETERS_0_0 { + pub SnapshotId: ::windows_sys::core::GUID, + pub LeafSnapshotId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for APPLY_SNAPSHOT_VHDSET_PARAMETERS_0_0 {} +impl ::core::clone::Clone for APPLY_SNAPSHOT_VHDSET_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATTACH_VIRTUAL_DISK_PARAMETERS { + pub Version: ATTACH_VIRTUAL_DISK_VERSION, + pub Anonymous: ATTACH_VIRTUAL_DISK_PARAMETERS_0, +} +impl ::core::marker::Copy for ATTACH_VIRTUAL_DISK_PARAMETERS {} +impl ::core::clone::Clone for ATTACH_VIRTUAL_DISK_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union ATTACH_VIRTUAL_DISK_PARAMETERS_0 { + pub Version1: ATTACH_VIRTUAL_DISK_PARAMETERS_0_0, + pub Version2: ATTACH_VIRTUAL_DISK_PARAMETERS_0_1, +} +impl ::core::marker::Copy for ATTACH_VIRTUAL_DISK_PARAMETERS_0 {} +impl ::core::clone::Clone for ATTACH_VIRTUAL_DISK_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATTACH_VIRTUAL_DISK_PARAMETERS_0_0 { + pub Reserved: u32, +} +impl ::core::marker::Copy for ATTACH_VIRTUAL_DISK_PARAMETERS_0_0 {} +impl ::core::clone::Clone for ATTACH_VIRTUAL_DISK_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ATTACH_VIRTUAL_DISK_PARAMETERS_0_1 { + pub RestrictedOffset: u64, + pub RestrictedLength: u64, +} +impl ::core::marker::Copy for ATTACH_VIRTUAL_DISK_PARAMETERS_0_1 {} +impl ::core::clone::Clone for ATTACH_VIRTUAL_DISK_PARAMETERS_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COMPACT_VIRTUAL_DISK_PARAMETERS { + pub Version: COMPACT_VIRTUAL_DISK_VERSION, + pub Anonymous: COMPACT_VIRTUAL_DISK_PARAMETERS_0, +} +impl ::core::marker::Copy for COMPACT_VIRTUAL_DISK_PARAMETERS {} +impl ::core::clone::Clone for COMPACT_VIRTUAL_DISK_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union COMPACT_VIRTUAL_DISK_PARAMETERS_0 { + pub Version1: COMPACT_VIRTUAL_DISK_PARAMETERS_0_0, +} +impl ::core::marker::Copy for COMPACT_VIRTUAL_DISK_PARAMETERS_0 {} +impl ::core::clone::Clone for COMPACT_VIRTUAL_DISK_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COMPACT_VIRTUAL_DISK_PARAMETERS_0_0 { + pub Reserved: u32, +} +impl ::core::marker::Copy for COMPACT_VIRTUAL_DISK_PARAMETERS_0_0 {} +impl ::core::clone::Clone for COMPACT_VIRTUAL_DISK_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREATE_VIRTUAL_DISK_PARAMETERS { + pub Version: CREATE_VIRTUAL_DISK_VERSION, + pub Anonymous: CREATE_VIRTUAL_DISK_PARAMETERS_0, +} +impl ::core::marker::Copy for CREATE_VIRTUAL_DISK_PARAMETERS {} +impl ::core::clone::Clone for CREATE_VIRTUAL_DISK_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CREATE_VIRTUAL_DISK_PARAMETERS_0 { + pub Version1: CREATE_VIRTUAL_DISK_PARAMETERS_0_0, + pub Version2: CREATE_VIRTUAL_DISK_PARAMETERS_0_1, + pub Version3: CREATE_VIRTUAL_DISK_PARAMETERS_0_2, + pub Version4: CREATE_VIRTUAL_DISK_PARAMETERS_0_3, +} +impl ::core::marker::Copy for CREATE_VIRTUAL_DISK_PARAMETERS_0 {} +impl ::core::clone::Clone for CREATE_VIRTUAL_DISK_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREATE_VIRTUAL_DISK_PARAMETERS_0_0 { + pub UniqueId: ::windows_sys::core::GUID, + pub MaximumSize: u64, + pub BlockSizeInBytes: u32, + pub SectorSizeInBytes: u32, + pub ParentPath: ::windows_sys::core::PCWSTR, + pub SourcePath: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for CREATE_VIRTUAL_DISK_PARAMETERS_0_0 {} +impl ::core::clone::Clone for CREATE_VIRTUAL_DISK_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREATE_VIRTUAL_DISK_PARAMETERS_0_1 { + pub UniqueId: ::windows_sys::core::GUID, + pub MaximumSize: u64, + pub BlockSizeInBytes: u32, + pub SectorSizeInBytes: u32, + pub PhysicalSectorSizeInBytes: u32, + pub ParentPath: ::windows_sys::core::PCWSTR, + pub SourcePath: ::windows_sys::core::PCWSTR, + pub OpenFlags: OPEN_VIRTUAL_DISK_FLAG, + pub ParentVirtualStorageType: VIRTUAL_STORAGE_TYPE, + pub SourceVirtualStorageType: VIRTUAL_STORAGE_TYPE, + pub ResiliencyGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for CREATE_VIRTUAL_DISK_PARAMETERS_0_1 {} +impl ::core::clone::Clone for CREATE_VIRTUAL_DISK_PARAMETERS_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREATE_VIRTUAL_DISK_PARAMETERS_0_2 { + pub UniqueId: ::windows_sys::core::GUID, + pub MaximumSize: u64, + pub BlockSizeInBytes: u32, + pub SectorSizeInBytes: u32, + pub PhysicalSectorSizeInBytes: u32, + pub ParentPath: ::windows_sys::core::PCWSTR, + pub SourcePath: ::windows_sys::core::PCWSTR, + pub OpenFlags: OPEN_VIRTUAL_DISK_FLAG, + pub ParentVirtualStorageType: VIRTUAL_STORAGE_TYPE, + pub SourceVirtualStorageType: VIRTUAL_STORAGE_TYPE, + pub ResiliencyGuid: ::windows_sys::core::GUID, + pub SourceLimitPath: ::windows_sys::core::PCWSTR, + pub BackingStorageType: VIRTUAL_STORAGE_TYPE, +} +impl ::core::marker::Copy for CREATE_VIRTUAL_DISK_PARAMETERS_0_2 {} +impl ::core::clone::Clone for CREATE_VIRTUAL_DISK_PARAMETERS_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREATE_VIRTUAL_DISK_PARAMETERS_0_3 { + pub UniqueId: ::windows_sys::core::GUID, + pub MaximumSize: u64, + pub BlockSizeInBytes: u32, + pub SectorSizeInBytes: u32, + pub PhysicalSectorSizeInBytes: u32, + pub ParentPath: ::windows_sys::core::PCWSTR, + pub SourcePath: ::windows_sys::core::PCWSTR, + pub OpenFlags: OPEN_VIRTUAL_DISK_FLAG, + pub ParentVirtualStorageType: VIRTUAL_STORAGE_TYPE, + pub SourceVirtualStorageType: VIRTUAL_STORAGE_TYPE, + pub ResiliencyGuid: ::windows_sys::core::GUID, + pub SourceLimitPath: ::windows_sys::core::PCWSTR, + pub BackingStorageType: VIRTUAL_STORAGE_TYPE, + pub PmemAddressAbstractionType: ::windows_sys::core::GUID, + pub DataAlignment: u64, +} +impl ::core::marker::Copy for CREATE_VIRTUAL_DISK_PARAMETERS_0_3 {} +impl ::core::clone::Clone for CREATE_VIRTUAL_DISK_PARAMETERS_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DELETE_SNAPSHOT_VHDSET_PARAMETERS { + pub Version: DELETE_SNAPSHOT_VHDSET_VERSION, + pub Anonymous: DELETE_SNAPSHOT_VHDSET_PARAMETERS_0, +} +impl ::core::marker::Copy for DELETE_SNAPSHOT_VHDSET_PARAMETERS {} +impl ::core::clone::Clone for DELETE_SNAPSHOT_VHDSET_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DELETE_SNAPSHOT_VHDSET_PARAMETERS_0 { + pub Version1: DELETE_SNAPSHOT_VHDSET_PARAMETERS_0_0, +} +impl ::core::marker::Copy for DELETE_SNAPSHOT_VHDSET_PARAMETERS_0 {} +impl ::core::clone::Clone for DELETE_SNAPSHOT_VHDSET_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DELETE_SNAPSHOT_VHDSET_PARAMETERS_0_0 { + pub SnapshotId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for DELETE_SNAPSHOT_VHDSET_PARAMETERS_0_0 {} +impl ::core::clone::Clone for DELETE_SNAPSHOT_VHDSET_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXPAND_VIRTUAL_DISK_PARAMETERS { + pub Version: EXPAND_VIRTUAL_DISK_VERSION, + pub Anonymous: EXPAND_VIRTUAL_DISK_PARAMETERS_0, +} +impl ::core::marker::Copy for EXPAND_VIRTUAL_DISK_PARAMETERS {} +impl ::core::clone::Clone for EXPAND_VIRTUAL_DISK_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EXPAND_VIRTUAL_DISK_PARAMETERS_0 { + pub Version1: EXPAND_VIRTUAL_DISK_PARAMETERS_0_0, +} +impl ::core::marker::Copy for EXPAND_VIRTUAL_DISK_PARAMETERS_0 {} +impl ::core::clone::Clone for EXPAND_VIRTUAL_DISK_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXPAND_VIRTUAL_DISK_PARAMETERS_0_0 { + pub NewSize: u64, +} +impl ::core::marker::Copy for EXPAND_VIRTUAL_DISK_PARAMETERS_0_0 {} +impl ::core::clone::Clone for EXPAND_VIRTUAL_DISK_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FORK_VIRTUAL_DISK_PARAMETERS { + pub Version: FORK_VIRTUAL_DISK_VERSION, + pub Anonymous: FORK_VIRTUAL_DISK_PARAMETERS_0, +} +impl ::core::marker::Copy for FORK_VIRTUAL_DISK_PARAMETERS {} +impl ::core::clone::Clone for FORK_VIRTUAL_DISK_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FORK_VIRTUAL_DISK_PARAMETERS_0 { + pub Version1: FORK_VIRTUAL_DISK_PARAMETERS_0_0, +} +impl ::core::marker::Copy for FORK_VIRTUAL_DISK_PARAMETERS_0 {} +impl ::core::clone::Clone for FORK_VIRTUAL_DISK_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FORK_VIRTUAL_DISK_PARAMETERS_0_0 { + pub ForkedVirtualDiskPath: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for FORK_VIRTUAL_DISK_PARAMETERS_0_0 {} +impl ::core::clone::Clone for FORK_VIRTUAL_DISK_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GET_VIRTUAL_DISK_INFO { + pub Version: GET_VIRTUAL_DISK_INFO_VERSION, + pub Anonymous: GET_VIRTUAL_DISK_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GET_VIRTUAL_DISK_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GET_VIRTUAL_DISK_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union GET_VIRTUAL_DISK_INFO_0 { + pub Size: GET_VIRTUAL_DISK_INFO_0_3, + pub Identifier: ::windows_sys::core::GUID, + pub ParentLocation: GET_VIRTUAL_DISK_INFO_0_1, + pub ParentIdentifier: ::windows_sys::core::GUID, + pub ParentTimestamp: u32, + pub VirtualStorageType: VIRTUAL_STORAGE_TYPE, + pub ProviderSubtype: u32, + pub Is4kAligned: super::super::Foundation::BOOL, + pub IsLoaded: super::super::Foundation::BOOL, + pub PhysicalDisk: GET_VIRTUAL_DISK_INFO_0_2, + pub VhdPhysicalSectorSize: u32, + pub SmallestSafeVirtualSize: u64, + pub FragmentationPercentage: u32, + pub VirtualDiskId: ::windows_sys::core::GUID, + pub ChangeTrackingState: GET_VIRTUAL_DISK_INFO_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GET_VIRTUAL_DISK_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GET_VIRTUAL_DISK_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GET_VIRTUAL_DISK_INFO_0_0 { + pub Enabled: super::super::Foundation::BOOL, + pub NewerChanges: super::super::Foundation::BOOL, + pub MostRecentId: [u16; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GET_VIRTUAL_DISK_INFO_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GET_VIRTUAL_DISK_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GET_VIRTUAL_DISK_INFO_0_1 { + pub ParentResolved: super::super::Foundation::BOOL, + pub ParentLocationBuffer: [u16; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GET_VIRTUAL_DISK_INFO_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GET_VIRTUAL_DISK_INFO_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GET_VIRTUAL_DISK_INFO_0_2 { + pub LogicalSectorSize: u32, + pub PhysicalSectorSize: u32, + pub IsRemote: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GET_VIRTUAL_DISK_INFO_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GET_VIRTUAL_DISK_INFO_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GET_VIRTUAL_DISK_INFO_0_3 { + pub VirtualSize: u64, + pub PhysicalSize: u64, + pub BlockSize: u32, + pub SectorSize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GET_VIRTUAL_DISK_INFO_0_3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GET_VIRTUAL_DISK_INFO_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MERGE_VIRTUAL_DISK_PARAMETERS { + pub Version: MERGE_VIRTUAL_DISK_VERSION, + pub Anonymous: MERGE_VIRTUAL_DISK_PARAMETERS_0, +} +impl ::core::marker::Copy for MERGE_VIRTUAL_DISK_PARAMETERS {} +impl ::core::clone::Clone for MERGE_VIRTUAL_DISK_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MERGE_VIRTUAL_DISK_PARAMETERS_0 { + pub Version1: MERGE_VIRTUAL_DISK_PARAMETERS_0_0, + pub Version2: MERGE_VIRTUAL_DISK_PARAMETERS_0_1, +} +impl ::core::marker::Copy for MERGE_VIRTUAL_DISK_PARAMETERS_0 {} +impl ::core::clone::Clone for MERGE_VIRTUAL_DISK_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MERGE_VIRTUAL_DISK_PARAMETERS_0_0 { + pub MergeDepth: u32, +} +impl ::core::marker::Copy for MERGE_VIRTUAL_DISK_PARAMETERS_0_0 {} +impl ::core::clone::Clone for MERGE_VIRTUAL_DISK_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MERGE_VIRTUAL_DISK_PARAMETERS_0_1 { + pub MergeSourceDepth: u32, + pub MergeTargetDepth: u32, +} +impl ::core::marker::Copy for MERGE_VIRTUAL_DISK_PARAMETERS_0_1 {} +impl ::core::clone::Clone for MERGE_VIRTUAL_DISK_PARAMETERS_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIRROR_VIRTUAL_DISK_PARAMETERS { + pub Version: MIRROR_VIRTUAL_DISK_VERSION, + pub Anonymous: MIRROR_VIRTUAL_DISK_PARAMETERS_0, +} +impl ::core::marker::Copy for MIRROR_VIRTUAL_DISK_PARAMETERS {} +impl ::core::clone::Clone for MIRROR_VIRTUAL_DISK_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MIRROR_VIRTUAL_DISK_PARAMETERS_0 { + pub Version1: MIRROR_VIRTUAL_DISK_PARAMETERS_0_0, +} +impl ::core::marker::Copy for MIRROR_VIRTUAL_DISK_PARAMETERS_0 {} +impl ::core::clone::Clone for MIRROR_VIRTUAL_DISK_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIRROR_VIRTUAL_DISK_PARAMETERS_0_0 { + pub MirrorVirtualDiskPath: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for MIRROR_VIRTUAL_DISK_PARAMETERS_0_0 {} +impl ::core::clone::Clone for MIRROR_VIRTUAL_DISK_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MODIFY_VHDSET_PARAMETERS { + pub Version: MODIFY_VHDSET_VERSION, + pub Anonymous: MODIFY_VHDSET_PARAMETERS_0, +} +impl ::core::marker::Copy for MODIFY_VHDSET_PARAMETERS {} +impl ::core::clone::Clone for MODIFY_VHDSET_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MODIFY_VHDSET_PARAMETERS_0 { + pub SnapshotPath: MODIFY_VHDSET_PARAMETERS_0_0, + pub SnapshotId: ::windows_sys::core::GUID, + pub DefaultFilePath: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for MODIFY_VHDSET_PARAMETERS_0 {} +impl ::core::clone::Clone for MODIFY_VHDSET_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MODIFY_VHDSET_PARAMETERS_0_0 { + pub SnapshotId: ::windows_sys::core::GUID, + pub SnapshotFilePath: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for MODIFY_VHDSET_PARAMETERS_0_0 {} +impl ::core::clone::Clone for MODIFY_VHDSET_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OPEN_VIRTUAL_DISK_PARAMETERS { + pub Version: OPEN_VIRTUAL_DISK_VERSION, + pub Anonymous: OPEN_VIRTUAL_DISK_PARAMETERS_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPEN_VIRTUAL_DISK_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPEN_VIRTUAL_DISK_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union OPEN_VIRTUAL_DISK_PARAMETERS_0 { + pub Version1: OPEN_VIRTUAL_DISK_PARAMETERS_0_0, + pub Version2: OPEN_VIRTUAL_DISK_PARAMETERS_0_1, + pub Version3: OPEN_VIRTUAL_DISK_PARAMETERS_0_2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPEN_VIRTUAL_DISK_PARAMETERS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPEN_VIRTUAL_DISK_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OPEN_VIRTUAL_DISK_PARAMETERS_0_0 { + pub RWDepth: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPEN_VIRTUAL_DISK_PARAMETERS_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPEN_VIRTUAL_DISK_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OPEN_VIRTUAL_DISK_PARAMETERS_0_1 { + pub GetInfoOnly: super::super::Foundation::BOOL, + pub ReadOnly: super::super::Foundation::BOOL, + pub ResiliencyGuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPEN_VIRTUAL_DISK_PARAMETERS_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPEN_VIRTUAL_DISK_PARAMETERS_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OPEN_VIRTUAL_DISK_PARAMETERS_0_2 { + pub GetInfoOnly: super::super::Foundation::BOOL, + pub ReadOnly: super::super::Foundation::BOOL, + pub ResiliencyGuid: ::windows_sys::core::GUID, + pub SnapshotId: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPEN_VIRTUAL_DISK_PARAMETERS_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPEN_VIRTUAL_DISK_PARAMETERS_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_CHANGES_VIRTUAL_DISK_RANGE { + pub ByteOffset: u64, + pub ByteLength: u64, + pub Reserved: u64, +} +impl ::core::marker::Copy for QUERY_CHANGES_VIRTUAL_DISK_RANGE {} +impl ::core::clone::Clone for QUERY_CHANGES_VIRTUAL_DISK_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAW_SCSI_VIRTUAL_DISK_PARAMETERS { + pub Version: RAW_SCSI_VIRTUAL_DISK_VERSION, + pub Anonymous: RAW_SCSI_VIRTUAL_DISK_PARAMETERS_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAW_SCSI_VIRTUAL_DISK_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAW_SCSI_VIRTUAL_DISK_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union RAW_SCSI_VIRTUAL_DISK_PARAMETERS_0 { + pub Version1: RAW_SCSI_VIRTUAL_DISK_PARAMETERS_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAW_SCSI_VIRTUAL_DISK_PARAMETERS_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAW_SCSI_VIRTUAL_DISK_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAW_SCSI_VIRTUAL_DISK_PARAMETERS_0_0 { + pub RSVDHandle: super::super::Foundation::BOOL, + pub DataIn: u8, + pub CdbLength: u8, + pub SenseInfoLength: u8, + pub SrbFlags: u32, + pub DataTransferLength: u32, + pub DataBuffer: *mut ::core::ffi::c_void, + pub SenseInfo: *mut u8, + pub Cdb: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAW_SCSI_VIRTUAL_DISK_PARAMETERS_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAW_SCSI_VIRTUAL_DISK_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RAW_SCSI_VIRTUAL_DISK_RESPONSE { + pub Version: RAW_SCSI_VIRTUAL_DISK_VERSION, + pub Anonymous: RAW_SCSI_VIRTUAL_DISK_RESPONSE_0, +} +impl ::core::marker::Copy for RAW_SCSI_VIRTUAL_DISK_RESPONSE {} +impl ::core::clone::Clone for RAW_SCSI_VIRTUAL_DISK_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union RAW_SCSI_VIRTUAL_DISK_RESPONSE_0 { + pub Version1: RAW_SCSI_VIRTUAL_DISK_RESPONSE_0_0, +} +impl ::core::marker::Copy for RAW_SCSI_VIRTUAL_DISK_RESPONSE_0 {} +impl ::core::clone::Clone for RAW_SCSI_VIRTUAL_DISK_RESPONSE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RAW_SCSI_VIRTUAL_DISK_RESPONSE_0_0 { + pub ScsiStatus: u8, + pub SenseInfoLength: u8, + pub DataTransferLength: u32, +} +impl ::core::marker::Copy for RAW_SCSI_VIRTUAL_DISK_RESPONSE_0_0 {} +impl ::core::clone::Clone for RAW_SCSI_VIRTUAL_DISK_RESPONSE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RESIZE_VIRTUAL_DISK_PARAMETERS { + pub Version: RESIZE_VIRTUAL_DISK_VERSION, + pub Anonymous: RESIZE_VIRTUAL_DISK_PARAMETERS_0, +} +impl ::core::marker::Copy for RESIZE_VIRTUAL_DISK_PARAMETERS {} +impl ::core::clone::Clone for RESIZE_VIRTUAL_DISK_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union RESIZE_VIRTUAL_DISK_PARAMETERS_0 { + pub Version1: RESIZE_VIRTUAL_DISK_PARAMETERS_0_0, +} +impl ::core::marker::Copy for RESIZE_VIRTUAL_DISK_PARAMETERS_0 {} +impl ::core::clone::Clone for RESIZE_VIRTUAL_DISK_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RESIZE_VIRTUAL_DISK_PARAMETERS_0_0 { + pub NewSize: u64, +} +impl ::core::marker::Copy for RESIZE_VIRTUAL_DISK_PARAMETERS_0_0 {} +impl ::core::clone::Clone for RESIZE_VIRTUAL_DISK_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SET_VIRTUAL_DISK_INFO { + pub Version: SET_VIRTUAL_DISK_INFO_VERSION, + pub Anonymous: SET_VIRTUAL_DISK_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SET_VIRTUAL_DISK_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SET_VIRTUAL_DISK_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union SET_VIRTUAL_DISK_INFO_0 { + pub ParentFilePath: ::windows_sys::core::PCWSTR, + pub UniqueIdentifier: ::windows_sys::core::GUID, + pub ParentPathWithDepthInfo: SET_VIRTUAL_DISK_INFO_0_1, + pub VhdPhysicalSectorSize: u32, + pub VirtualDiskId: ::windows_sys::core::GUID, + pub ChangeTrackingEnabled: super::super::Foundation::BOOL, + pub ParentLocator: SET_VIRTUAL_DISK_INFO_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SET_VIRTUAL_DISK_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SET_VIRTUAL_DISK_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SET_VIRTUAL_DISK_INFO_0_0 { + pub LinkageId: ::windows_sys::core::GUID, + pub ParentFilePath: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SET_VIRTUAL_DISK_INFO_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SET_VIRTUAL_DISK_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SET_VIRTUAL_DISK_INFO_0_1 { + pub ChildDepth: u32, + pub ParentFilePath: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SET_VIRTUAL_DISK_INFO_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SET_VIRTUAL_DISK_INFO_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEPENDENCY_INFO { + pub Version: STORAGE_DEPENDENCY_INFO_VERSION, + pub NumberEntries: u32, + pub Anonymous: STORAGE_DEPENDENCY_INFO_0, +} +impl ::core::marker::Copy for STORAGE_DEPENDENCY_INFO {} +impl ::core::clone::Clone for STORAGE_DEPENDENCY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union STORAGE_DEPENDENCY_INFO_0 { + pub Version1Entries: [STORAGE_DEPENDENCY_INFO_TYPE_1; 1], + pub Version2Entries: [STORAGE_DEPENDENCY_INFO_TYPE_2; 1], +} +impl ::core::marker::Copy for STORAGE_DEPENDENCY_INFO_0 {} +impl ::core::clone::Clone for STORAGE_DEPENDENCY_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEPENDENCY_INFO_TYPE_1 { + pub DependencyTypeFlags: DEPENDENT_DISK_FLAG, + pub ProviderSpecificFlags: u32, + pub VirtualStorageType: VIRTUAL_STORAGE_TYPE, +} +impl ::core::marker::Copy for STORAGE_DEPENDENCY_INFO_TYPE_1 {} +impl ::core::clone::Clone for STORAGE_DEPENDENCY_INFO_TYPE_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEPENDENCY_INFO_TYPE_2 { + pub DependencyTypeFlags: DEPENDENT_DISK_FLAG, + pub ProviderSpecificFlags: u32, + pub VirtualStorageType: VIRTUAL_STORAGE_TYPE, + pub AncestorLevel: u32, + pub DependencyDeviceName: ::windows_sys::core::PWSTR, + pub HostVolumeName: ::windows_sys::core::PWSTR, + pub DependentVolumeName: ::windows_sys::core::PWSTR, + pub DependentVolumeRelativePath: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for STORAGE_DEPENDENCY_INFO_TYPE_2 {} +impl ::core::clone::Clone for STORAGE_DEPENDENCY_INFO_TYPE_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TAKE_SNAPSHOT_VHDSET_PARAMETERS { + pub Version: TAKE_SNAPSHOT_VHDSET_VERSION, + pub Anonymous: TAKE_SNAPSHOT_VHDSET_PARAMETERS_0, +} +impl ::core::marker::Copy for TAKE_SNAPSHOT_VHDSET_PARAMETERS {} +impl ::core::clone::Clone for TAKE_SNAPSHOT_VHDSET_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union TAKE_SNAPSHOT_VHDSET_PARAMETERS_0 { + pub Version1: TAKE_SNAPSHOT_VHDSET_PARAMETERS_0_0, +} +impl ::core::marker::Copy for TAKE_SNAPSHOT_VHDSET_PARAMETERS_0 {} +impl ::core::clone::Clone for TAKE_SNAPSHOT_VHDSET_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TAKE_SNAPSHOT_VHDSET_PARAMETERS_0_0 { + pub SnapshotId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for TAKE_SNAPSHOT_VHDSET_PARAMETERS_0_0 {} +impl ::core::clone::Clone for TAKE_SNAPSHOT_VHDSET_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_DISK_PROGRESS { + pub OperationStatus: u32, + pub CurrentValue: u64, + pub CompletionValue: u64, +} +impl ::core::marker::Copy for VIRTUAL_DISK_PROGRESS {} +impl ::core::clone::Clone for VIRTUAL_DISK_PROGRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_STORAGE_TYPE { + pub DeviceId: u32, + pub VendorId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for VIRTUAL_STORAGE_TYPE {} +impl ::core::clone::Clone for VIRTUAL_STORAGE_TYPE { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Xps/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Xps/mod.rs new file mode 100644 index 000000000..fdb276190 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/Xps/mod.rs @@ -0,0 +1,583 @@ +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn AbortDoc(hdc : super::super::Graphics::Gdi:: HDC) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DeviceCapabilitiesA(pdevice : ::windows_sys::core::PCSTR, pport : ::windows_sys::core::PCSTR, fwcapability : PRINTER_DEVICE_CAPABILITIES, poutput : ::windows_sys::core::PSTR, pdevmode : *const super::super::Graphics::Gdi:: DEVMODEA) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("winspool.drv" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DeviceCapabilitiesW(pdevice : ::windows_sys::core::PCWSTR, pport : ::windows_sys::core::PCWSTR, fwcapability : PRINTER_DEVICE_CAPABILITIES, poutput : ::windows_sys::core::PWSTR, pdevmode : *const super::super::Graphics::Gdi:: DEVMODEW) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn EndDoc(hdc : super::super::Graphics::Gdi:: HDC) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn EndPage(hdc : super::super::Graphics::Gdi:: HDC) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn Escape(hdc : super::super::Graphics::Gdi:: HDC, iescape : i32, cjin : i32, pvin : ::windows_sys::core::PCSTR, pvout : *mut ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ExtEscape(hdc : super::super::Graphics::Gdi:: HDC, iescape : i32, cjinput : i32, lpindata : ::windows_sys::core::PCSTR, cjoutput : i32, lpoutdata : ::windows_sys::core::PSTR) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn PrintWindow(hwnd : super::super::Foundation:: HWND, hdcblt : super::super::Graphics::Gdi:: HDC, nflags : PRINT_WINDOW_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn SetAbortProc(hdc : super::super::Graphics::Gdi:: HDC, proc : ABORTPROC) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn StartDocA(hdc : super::super::Graphics::Gdi:: HDC, lpdi : *const DOCINFOA) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn StartDocW(hdc : super::super::Graphics::Gdi:: HDC, lpdi : *const DOCINFOW) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn StartPage(hdc : super::super::Graphics::Gdi:: HDC) -> i32); +pub type IXpsDocumentPackageTarget = *mut ::core::ffi::c_void; +pub type IXpsDocumentPackageTarget3D = *mut ::core::ffi::c_void; +pub type IXpsOMBrush = *mut ::core::ffi::c_void; +pub type IXpsOMCanvas = *mut ::core::ffi::c_void; +pub type IXpsOMColorProfileResource = *mut ::core::ffi::c_void; +pub type IXpsOMColorProfileResourceCollection = *mut ::core::ffi::c_void; +pub type IXpsOMCoreProperties = *mut ::core::ffi::c_void; +pub type IXpsOMDashCollection = *mut ::core::ffi::c_void; +pub type IXpsOMDictionary = *mut ::core::ffi::c_void; +pub type IXpsOMDocument = *mut ::core::ffi::c_void; +pub type IXpsOMDocumentCollection = *mut ::core::ffi::c_void; +pub type IXpsOMDocumentSequence = *mut ::core::ffi::c_void; +pub type IXpsOMDocumentStructureResource = *mut ::core::ffi::c_void; +pub type IXpsOMFontResource = *mut ::core::ffi::c_void; +pub type IXpsOMFontResourceCollection = *mut ::core::ffi::c_void; +pub type IXpsOMGeometry = *mut ::core::ffi::c_void; +pub type IXpsOMGeometryFigure = *mut ::core::ffi::c_void; +pub type IXpsOMGeometryFigureCollection = *mut ::core::ffi::c_void; +pub type IXpsOMGlyphs = *mut ::core::ffi::c_void; +pub type IXpsOMGlyphsEditor = *mut ::core::ffi::c_void; +pub type IXpsOMGradientBrush = *mut ::core::ffi::c_void; +pub type IXpsOMGradientStop = *mut ::core::ffi::c_void; +pub type IXpsOMGradientStopCollection = *mut ::core::ffi::c_void; +pub type IXpsOMImageBrush = *mut ::core::ffi::c_void; +pub type IXpsOMImageResource = *mut ::core::ffi::c_void; +pub type IXpsOMImageResourceCollection = *mut ::core::ffi::c_void; +pub type IXpsOMLinearGradientBrush = *mut ::core::ffi::c_void; +pub type IXpsOMMatrixTransform = *mut ::core::ffi::c_void; +pub type IXpsOMNameCollection = *mut ::core::ffi::c_void; +pub type IXpsOMObjectFactory = *mut ::core::ffi::c_void; +pub type IXpsOMObjectFactory1 = *mut ::core::ffi::c_void; +pub type IXpsOMPackage = *mut ::core::ffi::c_void; +pub type IXpsOMPackage1 = *mut ::core::ffi::c_void; +pub type IXpsOMPackageTarget = *mut ::core::ffi::c_void; +pub type IXpsOMPackageWriter = *mut ::core::ffi::c_void; +pub type IXpsOMPackageWriter3D = *mut ::core::ffi::c_void; +pub type IXpsOMPage = *mut ::core::ffi::c_void; +pub type IXpsOMPage1 = *mut ::core::ffi::c_void; +pub type IXpsOMPageReference = *mut ::core::ffi::c_void; +pub type IXpsOMPageReferenceCollection = *mut ::core::ffi::c_void; +pub type IXpsOMPart = *mut ::core::ffi::c_void; +pub type IXpsOMPartResources = *mut ::core::ffi::c_void; +pub type IXpsOMPartUriCollection = *mut ::core::ffi::c_void; +pub type IXpsOMPath = *mut ::core::ffi::c_void; +pub type IXpsOMPrintTicketResource = *mut ::core::ffi::c_void; +pub type IXpsOMRadialGradientBrush = *mut ::core::ffi::c_void; +pub type IXpsOMRemoteDictionaryResource = *mut ::core::ffi::c_void; +pub type IXpsOMRemoteDictionaryResource1 = *mut ::core::ffi::c_void; +pub type IXpsOMRemoteDictionaryResourceCollection = *mut ::core::ffi::c_void; +pub type IXpsOMResource = *mut ::core::ffi::c_void; +pub type IXpsOMShareable = *mut ::core::ffi::c_void; +pub type IXpsOMSignatureBlockResource = *mut ::core::ffi::c_void; +pub type IXpsOMSignatureBlockResourceCollection = *mut ::core::ffi::c_void; +pub type IXpsOMSolidColorBrush = *mut ::core::ffi::c_void; +pub type IXpsOMStoryFragmentsResource = *mut ::core::ffi::c_void; +pub type IXpsOMThumbnailGenerator = *mut ::core::ffi::c_void; +pub type IXpsOMTileBrush = *mut ::core::ffi::c_void; +pub type IXpsOMVisual = *mut ::core::ffi::c_void; +pub type IXpsOMVisualBrush = *mut ::core::ffi::c_void; +pub type IXpsOMVisualCollection = *mut ::core::ffi::c_void; +pub type IXpsSignature = *mut ::core::ffi::c_void; +pub type IXpsSignatureBlock = *mut ::core::ffi::c_void; +pub type IXpsSignatureBlockCollection = *mut ::core::ffi::c_void; +pub type IXpsSignatureCollection = *mut ::core::ffi::c_void; +pub type IXpsSignatureManager = *mut ::core::ffi::c_void; +pub type IXpsSignatureRequest = *mut ::core::ffi::c_void; +pub type IXpsSignatureRequestCollection = *mut ::core::ffi::c_void; +pub type IXpsSigningOptions = *mut ::core::ffi::c_void; +pub const DC_BINNAMES: PRINTER_DEVICE_CAPABILITIES = 12u16; +pub const DC_BINS: PRINTER_DEVICE_CAPABILITIES = 6u16; +pub const DC_COLLATE: PRINTER_DEVICE_CAPABILITIES = 22u16; +pub const DC_COLORDEVICE: PRINTER_DEVICE_CAPABILITIES = 32u16; +pub const DC_COPIES: PRINTER_DEVICE_CAPABILITIES = 18u16; +pub const DC_DRIVER: PRINTER_DEVICE_CAPABILITIES = 11u16; +pub const DC_DUPLEX: PRINTER_DEVICE_CAPABILITIES = 7u16; +pub const DC_ENUMRESOLUTIONS: PRINTER_DEVICE_CAPABILITIES = 13u16; +pub const DC_EXTRA: PRINTER_DEVICE_CAPABILITIES = 9u16; +pub const DC_FIELDS: PRINTER_DEVICE_CAPABILITIES = 1u16; +pub const DC_FILEDEPENDENCIES: PRINTER_DEVICE_CAPABILITIES = 14u16; +pub const DC_MAXEXTENT: PRINTER_DEVICE_CAPABILITIES = 5u16; +pub const DC_MEDIAREADY: PRINTER_DEVICE_CAPABILITIES = 29u16; +pub const DC_MEDIATYPENAMES: PRINTER_DEVICE_CAPABILITIES = 34u16; +pub const DC_MEDIATYPES: PRINTER_DEVICE_CAPABILITIES = 35u16; +pub const DC_MINEXTENT: PRINTER_DEVICE_CAPABILITIES = 4u16; +pub const DC_NUP: PRINTER_DEVICE_CAPABILITIES = 33u16; +pub const DC_ORIENTATION: PRINTER_DEVICE_CAPABILITIES = 17u16; +pub const DC_PAPERNAMES: PRINTER_DEVICE_CAPABILITIES = 16u16; +pub const DC_PAPERS: PRINTER_DEVICE_CAPABILITIES = 2u16; +pub const DC_PAPERSIZE: PRINTER_DEVICE_CAPABILITIES = 3u16; +pub const DC_PERSONALITY: PRINTER_DEVICE_CAPABILITIES = 25u16; +pub const DC_PRINTERMEM: PRINTER_DEVICE_CAPABILITIES = 28u16; +pub const DC_PRINTRATE: PRINTER_DEVICE_CAPABILITIES = 26u16; +pub const DC_PRINTRATEPPM: PRINTER_DEVICE_CAPABILITIES = 31u16; +pub const DC_PRINTRATEUNIT: PRINTER_DEVICE_CAPABILITIES = 27u16; +pub const DC_SIZE: PRINTER_DEVICE_CAPABILITIES = 8u16; +pub const DC_STAPLE: PRINTER_DEVICE_CAPABILITIES = 30u16; +pub const DC_TRUETYPE: PRINTER_DEVICE_CAPABILITIES = 15u16; +pub const DC_VERSION: PRINTER_DEVICE_CAPABILITIES = 10u16; +pub const PSINJECT_BEGINDEFAULTS: PSINJECT_POINT = 12u16; +pub const PSINJECT_BEGINPAGESETUP: PSINJECT_POINT = 101u16; +pub const PSINJECT_BEGINPROLOG: PSINJECT_POINT = 14u16; +pub const PSINJECT_BEGINSETUP: PSINJECT_POINT = 16u16; +pub const PSINJECT_BEGINSTREAM: PSINJECT_POINT = 1u16; +pub const PSINJECT_BOUNDINGBOX: PSINJECT_POINT = 9u16; +pub const PSINJECT_COMMENTS: PSINJECT_POINT = 11u16; +pub const PSINJECT_DOCNEEDEDRES: PSINJECT_POINT = 5u16; +pub const PSINJECT_DOCSUPPLIEDRES: PSINJECT_POINT = 6u16; +pub const PSINJECT_DOCUMENTPROCESSCOLORS: PSINJECT_POINT = 10u16; +pub const PSINJECT_DOCUMENTPROCESSCOLORSATEND: PSINJECT_POINT = 21u16; +pub const PSINJECT_ENDDEFAULTS: PSINJECT_POINT = 13u16; +pub const PSINJECT_ENDPAGECOMMENTS: PSINJECT_POINT = 107u16; +pub const PSINJECT_ENDPAGESETUP: PSINJECT_POINT = 102u16; +pub const PSINJECT_ENDPROLOG: PSINJECT_POINT = 15u16; +pub const PSINJECT_ENDSETUP: PSINJECT_POINT = 17u16; +pub const PSINJECT_ENDSTREAM: PSINJECT_POINT = 20u16; +pub const PSINJECT_EOF: PSINJECT_POINT = 19u16; +pub const PSINJECT_ORIENTATION: PSINJECT_POINT = 8u16; +pub const PSINJECT_PAGEBBOX: PSINJECT_POINT = 106u16; +pub const PSINJECT_PAGENUMBER: PSINJECT_POINT = 100u16; +pub const PSINJECT_PAGEORDER: PSINJECT_POINT = 7u16; +pub const PSINJECT_PAGES: PSINJECT_POINT = 4u16; +pub const PSINJECT_PAGESATEND: PSINJECT_POINT = 3u16; +pub const PSINJECT_PAGETRAILER: PSINJECT_POINT = 103u16; +pub const PSINJECT_PLATECOLOR: PSINJECT_POINT = 104u16; +pub const PSINJECT_PSADOBE: PSINJECT_POINT = 2u16; +pub const PSINJECT_SHOWPAGE: PSINJECT_POINT = 105u16; +pub const PSINJECT_TRAILER: PSINJECT_POINT = 18u16; +pub const PSINJECT_VMRESTORE: PSINJECT_POINT = 201u16; +pub const PSINJECT_VMSAVE: PSINJECT_POINT = 200u16; +pub const PW_CLIENTONLY: PRINT_WINDOW_FLAGS = 1u32; +pub const XPS_COLOR_INTERPOLATION_SCRGBLINEAR: XPS_COLOR_INTERPOLATION = 1i32; +pub const XPS_COLOR_INTERPOLATION_SRGBLINEAR: XPS_COLOR_INTERPOLATION = 2i32; +pub const XPS_COLOR_TYPE_CONTEXT: XPS_COLOR_TYPE = 3i32; +pub const XPS_COLOR_TYPE_SCRGB: XPS_COLOR_TYPE = 2i32; +pub const XPS_COLOR_TYPE_SRGB: XPS_COLOR_TYPE = 1i32; +pub const XPS_DASH_CAP_FLAT: XPS_DASH_CAP = 1i32; +pub const XPS_DASH_CAP_ROUND: XPS_DASH_CAP = 2i32; +pub const XPS_DASH_CAP_SQUARE: XPS_DASH_CAP = 3i32; +pub const XPS_DASH_CAP_TRIANGLE: XPS_DASH_CAP = 4i32; +pub const XPS_DOCUMENT_TYPE_OPENXPS: XPS_DOCUMENT_TYPE = 3i32; +pub const XPS_DOCUMENT_TYPE_UNSPECIFIED: XPS_DOCUMENT_TYPE = 1i32; +pub const XPS_DOCUMENT_TYPE_XPS: XPS_DOCUMENT_TYPE = 2i32; +pub const XPS_E_ABSOLUTE_REFERENCE: ::windows_sys::core::HRESULT = -2142108159i32; +pub const XPS_E_ALREADY_OWNED: ::windows_sys::core::HRESULT = -2142108413i32; +pub const XPS_E_BLEED_BOX_PAGE_DIMENSIONS_NOT_IN_SYNC: ::windows_sys::core::HRESULT = -2142108407i32; +pub const XPS_E_BOTH_PATHFIGURE_AND_ABBR_SYNTAX_PRESENT: ::windows_sys::core::HRESULT = -2142108409i32; +pub const XPS_E_BOTH_RESOURCE_AND_SOURCEATTR_PRESENT: ::windows_sys::core::HRESULT = -2142108408i32; +pub const XPS_E_CARET_OUTSIDE_STRING: ::windows_sys::core::HRESULT = -2142108923i32; +pub const XPS_E_CARET_OUT_OF_ORDER: ::windows_sys::core::HRESULT = -2142108922i32; +pub const XPS_E_COLOR_COMPONENT_OUT_OF_RANGE: ::windows_sys::core::HRESULT = -2142108410i32; +pub const XPS_E_DICTIONARY_ITEM_NAMED: ::windows_sys::core::HRESULT = -2142108671i32; +pub const XPS_E_DUPLICATE_NAMES: ::windows_sys::core::HRESULT = -2142109175i32; +pub const XPS_E_DUPLICATE_RESOURCE_KEYS: ::windows_sys::core::HRESULT = -2142109184i32; +pub const XPS_E_INDEX_OUT_OF_RANGE: ::windows_sys::core::HRESULT = -2142108416i32; +pub const XPS_E_INVALID_BLEED_BOX: ::windows_sys::core::HRESULT = -2142109692i32; +pub const XPS_E_INVALID_CONTENT_BOX: ::windows_sys::core::HRESULT = -2142109685i32; +pub const XPS_E_INVALID_CONTENT_TYPE: ::windows_sys::core::HRESULT = -2142109682i32; +pub const XPS_E_INVALID_FLOAT: ::windows_sys::core::HRESULT = -2142109689i32; +pub const XPS_E_INVALID_FONT_URI: ::windows_sys::core::HRESULT = -2142109686i32; +pub const XPS_E_INVALID_LANGUAGE: ::windows_sys::core::HRESULT = -2142109696i32; +pub const XPS_E_INVALID_LOOKUP_TYPE: ::windows_sys::core::HRESULT = -2142109690i32; +pub const XPS_E_INVALID_MARKUP: ::windows_sys::core::HRESULT = -2142109684i32; +pub const XPS_E_INVALID_NAME: ::windows_sys::core::HRESULT = -2142109695i32; +pub const XPS_E_INVALID_NUMBER_OF_COLOR_CHANNELS: ::windows_sys::core::HRESULT = -2142108158i32; +pub const XPS_E_INVALID_NUMBER_OF_POINTS_IN_CURVE_SEGMENTS: ::windows_sys::core::HRESULT = -2142108160i32; +pub const XPS_E_INVALID_OBFUSCATED_FONT_URI: ::windows_sys::core::HRESULT = -2142109681i32; +pub const XPS_E_INVALID_PAGE_SIZE: ::windows_sys::core::HRESULT = -2142109693i32; +pub const XPS_E_INVALID_RESOURCE_KEY: ::windows_sys::core::HRESULT = -2142109694i32; +pub const XPS_E_INVALID_SIGNATUREBLOCK_MARKUP: ::windows_sys::core::HRESULT = -2142108789i32; +pub const XPS_E_INVALID_THUMBNAIL_IMAGE_TYPE: ::windows_sys::core::HRESULT = -2142109691i32; +pub const XPS_E_INVALID_XML_ENCODING: ::windows_sys::core::HRESULT = -2142109683i32; +pub const XPS_E_MAPPING_OUTSIDE_INDICES: ::windows_sys::core::HRESULT = -2142108924i32; +pub const XPS_E_MAPPING_OUTSIDE_STRING: ::windows_sys::core::HRESULT = -2142108925i32; +pub const XPS_E_MAPPING_OUT_OF_ORDER: ::windows_sys::core::HRESULT = -2142108926i32; +pub const XPS_E_MARKUP_COMPATIBILITY_ELEMENTS: ::windows_sys::core::HRESULT = -2142108791i32; +pub const XPS_E_MISSING_COLORPROFILE: ::windows_sys::core::HRESULT = -2142109436i32; +pub const XPS_E_MISSING_DISCARDCONTROL: ::windows_sys::core::HRESULT = -2142109422i32; +pub const XPS_E_MISSING_DOCUMENT: ::windows_sys::core::HRESULT = -2142109431i32; +pub const XPS_E_MISSING_DOCUMENTSEQUENCE_RELATIONSHIP: ::windows_sys::core::HRESULT = -2142109432i32; +pub const XPS_E_MISSING_FONTURI: ::windows_sys::core::HRESULT = -2142109433i32; +pub const XPS_E_MISSING_GLYPHS: ::windows_sys::core::HRESULT = -2142109438i32; +pub const XPS_E_MISSING_IMAGE_IN_IMAGEBRUSH: ::windows_sys::core::HRESULT = -2142109426i32; +pub const XPS_E_MISSING_LOOKUP: ::windows_sys::core::HRESULT = -2142109439i32; +pub const XPS_E_MISSING_NAME: ::windows_sys::core::HRESULT = -2142109440i32; +pub const XPS_E_MISSING_PAGE_IN_DOCUMENT: ::windows_sys::core::HRESULT = -2142109428i32; +pub const XPS_E_MISSING_PAGE_IN_PAGEREFERENCE: ::windows_sys::core::HRESULT = -2142109427i32; +pub const XPS_E_MISSING_PART_REFERENCE: ::windows_sys::core::HRESULT = -2142109424i32; +pub const XPS_E_MISSING_PART_STREAM: ::windows_sys::core::HRESULT = -2142109421i32; +pub const XPS_E_MISSING_REFERRED_DOCUMENT: ::windows_sys::core::HRESULT = -2142109430i32; +pub const XPS_E_MISSING_REFERRED_PAGE: ::windows_sys::core::HRESULT = -2142109429i32; +pub const XPS_E_MISSING_RELATIONSHIP_TARGET: ::windows_sys::core::HRESULT = -2142109435i32; +pub const XPS_E_MISSING_RESOURCE_KEY: ::windows_sys::core::HRESULT = -2142109425i32; +pub const XPS_E_MISSING_RESOURCE_RELATIONSHIP: ::windows_sys::core::HRESULT = -2142109434i32; +pub const XPS_E_MISSING_RESTRICTED_FONT_RELATIONSHIP: ::windows_sys::core::HRESULT = -2142109423i32; +pub const XPS_E_MISSING_SEGMENT_DATA: ::windows_sys::core::HRESULT = -2142109437i32; +pub const XPS_E_MULTIPLE_DOCUMENTSEQUENCE_RELATIONSHIPS: ::windows_sys::core::HRESULT = -2142109182i32; +pub const XPS_E_MULTIPLE_PRINTTICKETS_ON_DOCUMENT: ::windows_sys::core::HRESULT = -2142109178i32; +pub const XPS_E_MULTIPLE_PRINTTICKETS_ON_DOCUMENTSEQUENCE: ::windows_sys::core::HRESULT = -2142109177i32; +pub const XPS_E_MULTIPLE_PRINTTICKETS_ON_PAGE: ::windows_sys::core::HRESULT = -2142109179i32; +pub const XPS_E_MULTIPLE_REFERENCES_TO_PART: ::windows_sys::core::HRESULT = -2142109176i32; +pub const XPS_E_MULTIPLE_RESOURCES: ::windows_sys::core::HRESULT = -2142109183i32; +pub const XPS_E_MULTIPLE_THUMBNAILS_ON_PACKAGE: ::windows_sys::core::HRESULT = -2142109180i32; +pub const XPS_E_MULTIPLE_THUMBNAILS_ON_PAGE: ::windows_sys::core::HRESULT = -2142109181i32; +pub const XPS_E_NEGATIVE_FLOAT: ::windows_sys::core::HRESULT = -2142108918i32; +pub const XPS_E_NESTED_REMOTE_DICTIONARY: ::windows_sys::core::HRESULT = -2142108670i32; +pub const XPS_E_NOT_ENOUGH_GRADIENT_STOPS: ::windows_sys::core::HRESULT = -2142108405i32; +pub const XPS_E_NO_CUSTOM_OBJECTS: ::windows_sys::core::HRESULT = -2142108414i32; +pub const XPS_E_OBJECT_DETACHED: ::windows_sys::core::HRESULT = -2142108790i32; +pub const XPS_E_ODD_BIDILEVEL: ::windows_sys::core::HRESULT = -2142108921i32; +pub const XPS_E_ONE_TO_ONE_MAPPING_EXPECTED: ::windows_sys::core::HRESULT = -2142108920i32; +pub const XPS_E_PACKAGE_ALREADY_OPENED: ::windows_sys::core::HRESULT = -2142108793i32; +pub const XPS_E_PACKAGE_NOT_OPENED: ::windows_sys::core::HRESULT = -2142108794i32; +pub const XPS_E_PACKAGE_WRITER_NOT_CLOSED: ::windows_sys::core::HRESULT = -2142108404i32; +pub const XPS_E_RELATIONSHIP_EXTERNAL: ::windows_sys::core::HRESULT = -2142108406i32; +pub const XPS_E_RESOURCE_NOT_OWNED: ::windows_sys::core::HRESULT = -2142108412i32; +pub const XPS_E_RESTRICTED_FONT_NOT_OBFUSCATED: ::windows_sys::core::HRESULT = -2142108919i32; +pub const XPS_E_SIGNATUREID_DUP: ::windows_sys::core::HRESULT = -2142108792i32; +pub const XPS_E_SIGREQUESTID_DUP: ::windows_sys::core::HRESULT = -2142108795i32; +pub const XPS_E_STRING_TOO_LONG: ::windows_sys::core::HRESULT = -2142108928i32; +pub const XPS_E_TOO_MANY_INDICES: ::windows_sys::core::HRESULT = -2142108927i32; +pub const XPS_E_UNAVAILABLE_PACKAGE: ::windows_sys::core::HRESULT = -2142109420i32; +pub const XPS_E_UNEXPECTED_COLORPROFILE: ::windows_sys::core::HRESULT = -2142108411i32; +pub const XPS_E_UNEXPECTED_CONTENT_TYPE: ::windows_sys::core::HRESULT = -2142109688i32; +pub const XPS_E_UNEXPECTED_RELATIONSHIP_TYPE: ::windows_sys::core::HRESULT = -2142109680i32; +pub const XPS_E_UNEXPECTED_RESTRICTED_FONT_RELATIONSHIP: ::windows_sys::core::HRESULT = -2142109679i32; +pub const XPS_E_VISUAL_CIRCULAR_REF: ::windows_sys::core::HRESULT = -2142108415i32; +pub const XPS_E_XKEY_ATTR_PRESENT_OUTSIDE_RES_DICT: ::windows_sys::core::HRESULT = -2142108672i32; +pub const XPS_FILL_RULE_EVENODD: XPS_FILL_RULE = 1i32; +pub const XPS_FILL_RULE_NONZERO: XPS_FILL_RULE = 2i32; +pub const XPS_FONT_EMBEDDING_NORMAL: XPS_FONT_EMBEDDING = 1i32; +pub const XPS_FONT_EMBEDDING_OBFUSCATED: XPS_FONT_EMBEDDING = 2i32; +pub const XPS_FONT_EMBEDDING_RESTRICTED: XPS_FONT_EMBEDDING = 3i32; +pub const XPS_FONT_EMBEDDING_RESTRICTED_UNOBFUSCATED: XPS_FONT_EMBEDDING = 4i32; +pub const XPS_IMAGE_TYPE_JPEG: XPS_IMAGE_TYPE = 1i32; +pub const XPS_IMAGE_TYPE_JXR: XPS_IMAGE_TYPE = 5i32; +pub const XPS_IMAGE_TYPE_PNG: XPS_IMAGE_TYPE = 2i32; +pub const XPS_IMAGE_TYPE_TIFF: XPS_IMAGE_TYPE = 3i32; +pub const XPS_IMAGE_TYPE_WDP: XPS_IMAGE_TYPE = 4i32; +pub const XPS_INTERLEAVING_OFF: XPS_INTERLEAVING = 1i32; +pub const XPS_INTERLEAVING_ON: XPS_INTERLEAVING = 2i32; +pub const XPS_LINE_CAP_FLAT: XPS_LINE_CAP = 1i32; +pub const XPS_LINE_CAP_ROUND: XPS_LINE_CAP = 2i32; +pub const XPS_LINE_CAP_SQUARE: XPS_LINE_CAP = 3i32; +pub const XPS_LINE_CAP_TRIANGLE: XPS_LINE_CAP = 4i32; +pub const XPS_LINE_JOIN_BEVEL: XPS_LINE_JOIN = 2i32; +pub const XPS_LINE_JOIN_MITER: XPS_LINE_JOIN = 1i32; +pub const XPS_LINE_JOIN_ROUND: XPS_LINE_JOIN = 3i32; +pub const XPS_OBJECT_TYPE_CANVAS: XPS_OBJECT_TYPE = 1i32; +pub const XPS_OBJECT_TYPE_GEOMETRY: XPS_OBJECT_TYPE = 5i32; +pub const XPS_OBJECT_TYPE_GLYPHS: XPS_OBJECT_TYPE = 2i32; +pub const XPS_OBJECT_TYPE_IMAGE_BRUSH: XPS_OBJECT_TYPE = 7i32; +pub const XPS_OBJECT_TYPE_LINEAR_GRADIENT_BRUSH: XPS_OBJECT_TYPE = 8i32; +pub const XPS_OBJECT_TYPE_MATRIX_TRANSFORM: XPS_OBJECT_TYPE = 4i32; +pub const XPS_OBJECT_TYPE_PATH: XPS_OBJECT_TYPE = 3i32; +pub const XPS_OBJECT_TYPE_RADIAL_GRADIENT_BRUSH: XPS_OBJECT_TYPE = 9i32; +pub const XPS_OBJECT_TYPE_SOLID_COLOR_BRUSH: XPS_OBJECT_TYPE = 6i32; +pub const XPS_OBJECT_TYPE_VISUAL_BRUSH: XPS_OBJECT_TYPE = 10i32; +pub const XPS_SEGMENT_STROKE_PATTERN_ALL: XPS_SEGMENT_STROKE_PATTERN = 1i32; +pub const XPS_SEGMENT_STROKE_PATTERN_MIXED: XPS_SEGMENT_STROKE_PATTERN = 3i32; +pub const XPS_SEGMENT_STROKE_PATTERN_NONE: XPS_SEGMENT_STROKE_PATTERN = 2i32; +pub const XPS_SEGMENT_TYPE_ARC_LARGE_CLOCKWISE: XPS_SEGMENT_TYPE = 1i32; +pub const XPS_SEGMENT_TYPE_ARC_LARGE_COUNTERCLOCKWISE: XPS_SEGMENT_TYPE = 2i32; +pub const XPS_SEGMENT_TYPE_ARC_SMALL_CLOCKWISE: XPS_SEGMENT_TYPE = 3i32; +pub const XPS_SEGMENT_TYPE_ARC_SMALL_COUNTERCLOCKWISE: XPS_SEGMENT_TYPE = 4i32; +pub const XPS_SEGMENT_TYPE_BEZIER: XPS_SEGMENT_TYPE = 5i32; +pub const XPS_SEGMENT_TYPE_LINE: XPS_SEGMENT_TYPE = 6i32; +pub const XPS_SEGMENT_TYPE_QUADRATIC_BEZIER: XPS_SEGMENT_TYPE = 7i32; +pub const XPS_SIGNATURE_STATUS_BROKEN: XPS_SIGNATURE_STATUS = 3i32; +pub const XPS_SIGNATURE_STATUS_INCOMPLETE: XPS_SIGNATURE_STATUS = 2i32; +pub const XPS_SIGNATURE_STATUS_INCOMPLIANT: XPS_SIGNATURE_STATUS = 1i32; +pub const XPS_SIGNATURE_STATUS_QUESTIONABLE: XPS_SIGNATURE_STATUS = 4i32; +pub const XPS_SIGNATURE_STATUS_VALID: XPS_SIGNATURE_STATUS = 5i32; +pub const XPS_SIGN_FLAGS_IGNORE_MARKUP_COMPATIBILITY: XPS_SIGN_FLAGS = 1i32; +pub const XPS_SIGN_FLAGS_NONE: XPS_SIGN_FLAGS = 0i32; +pub const XPS_SIGN_POLICY_ALL: XPS_SIGN_POLICY = 15i32; +pub const XPS_SIGN_POLICY_CORE_PROPERTIES: XPS_SIGN_POLICY = 1i32; +pub const XPS_SIGN_POLICY_DISCARD_CONTROL: XPS_SIGN_POLICY = 8i32; +pub const XPS_SIGN_POLICY_NONE: XPS_SIGN_POLICY = 0i32; +pub const XPS_SIGN_POLICY_PRINT_TICKET: XPS_SIGN_POLICY = 4i32; +pub const XPS_SIGN_POLICY_SIGNATURE_RELATIONSHIPS: XPS_SIGN_POLICY = 2i32; +pub const XPS_SPREAD_METHOD_PAD: XPS_SPREAD_METHOD = 1i32; +pub const XPS_SPREAD_METHOD_REFLECT: XPS_SPREAD_METHOD = 2i32; +pub const XPS_SPREAD_METHOD_REPEAT: XPS_SPREAD_METHOD = 3i32; +pub const XPS_STYLE_SIMULATION_BOLD: XPS_STYLE_SIMULATION = 3i32; +pub const XPS_STYLE_SIMULATION_BOLDITALIC: XPS_STYLE_SIMULATION = 4i32; +pub const XPS_STYLE_SIMULATION_ITALIC: XPS_STYLE_SIMULATION = 2i32; +pub const XPS_STYLE_SIMULATION_NONE: XPS_STYLE_SIMULATION = 1i32; +pub const XPS_THUMBNAIL_SIZE_LARGE: XPS_THUMBNAIL_SIZE = 4i32; +pub const XPS_THUMBNAIL_SIZE_MEDIUM: XPS_THUMBNAIL_SIZE = 3i32; +pub const XPS_THUMBNAIL_SIZE_SMALL: XPS_THUMBNAIL_SIZE = 2i32; +pub const XPS_THUMBNAIL_SIZE_VERYSMALL: XPS_THUMBNAIL_SIZE = 1i32; +pub const XPS_TILE_MODE_FLIPX: XPS_TILE_MODE = 3i32; +pub const XPS_TILE_MODE_FLIPXY: XPS_TILE_MODE = 5i32; +pub const XPS_TILE_MODE_FLIPY: XPS_TILE_MODE = 4i32; +pub const XPS_TILE_MODE_NONE: XPS_TILE_MODE = 1i32; +pub const XPS_TILE_MODE_TILE: XPS_TILE_MODE = 2i32; +pub const XpsOMObjectFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe974d26d_3d9b_4d47_88cc_3872f2dc3585); +pub const XpsOMThumbnailGenerator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7e4a23e2_b969_4761_be35_1a8ced58e323); +pub const XpsSignatureManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb0c43320_2315_44a2_b70a_0943a140a8ee); +pub type PRINTER_DEVICE_CAPABILITIES = u16; +pub type PRINT_WINDOW_FLAGS = u32; +pub type PSINJECT_POINT = u16; +pub type XPS_COLOR_INTERPOLATION = i32; +pub type XPS_COLOR_TYPE = i32; +pub type XPS_DASH_CAP = i32; +pub type XPS_DOCUMENT_TYPE = i32; +pub type XPS_FILL_RULE = i32; +pub type XPS_FONT_EMBEDDING = i32; +pub type XPS_IMAGE_TYPE = i32; +pub type XPS_INTERLEAVING = i32; +pub type XPS_LINE_CAP = i32; +pub type XPS_LINE_JOIN = i32; +pub type XPS_OBJECT_TYPE = i32; +pub type XPS_SEGMENT_STROKE_PATTERN = i32; +pub type XPS_SEGMENT_TYPE = i32; +pub type XPS_SIGNATURE_STATUS = i32; +pub type XPS_SIGN_FLAGS = i32; +pub type XPS_SIGN_POLICY = i32; +pub type XPS_SPREAD_METHOD = i32; +pub type XPS_STYLE_SIMULATION = i32; +pub type XPS_THUMBNAIL_SIZE = i32; +pub type XPS_TILE_MODE = i32; +#[repr(C)] +pub struct DOCINFOA { + pub cbSize: i32, + pub lpszDocName: ::windows_sys::core::PCSTR, + pub lpszOutput: ::windows_sys::core::PCSTR, + pub lpszDatatype: ::windows_sys::core::PCSTR, + pub fwType: u32, +} +impl ::core::marker::Copy for DOCINFOA {} +impl ::core::clone::Clone for DOCINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DOCINFOW { + pub cbSize: i32, + pub lpszDocName: ::windows_sys::core::PCWSTR, + pub lpszOutput: ::windows_sys::core::PCWSTR, + pub lpszDatatype: ::windows_sys::core::PCWSTR, + pub fwType: u32, +} +impl ::core::marker::Copy for DOCINFOW {} +impl ::core::clone::Clone for DOCINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DRAWPATRECT { + pub ptPosition: super::super::Foundation::POINT, + pub ptSize: super::super::Foundation::POINT, + pub wStyle: u16, + pub wPattern: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRAWPATRECT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRAWPATRECT { + fn clone(&self) -> Self { + *self + } +} +pub type HPTPROVIDER = isize; +#[repr(C)] +pub struct PSFEATURE_CUSTPAPER { + pub lOrientation: i32, + pub lWidth: i32, + pub lHeight: i32, + pub lWidthOffset: i32, + pub lHeightOffset: i32, +} +impl ::core::marker::Copy for PSFEATURE_CUSTPAPER {} +impl ::core::clone::Clone for PSFEATURE_CUSTPAPER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PSFEATURE_OUTPUT { + pub bPageIndependent: super::super::Foundation::BOOL, + pub bSetPageDevice: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSFEATURE_OUTPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSFEATURE_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSINJECTDATA { + pub DataBytes: u32, + pub InjectionPoint: PSINJECT_POINT, + pub PageNumber: u16, +} +impl ::core::marker::Copy for PSINJECTDATA {} +impl ::core::clone::Clone for PSINJECTDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XPS_COLOR { + pub colorType: XPS_COLOR_TYPE, + pub value: XPS_COLOR_0, +} +impl ::core::marker::Copy for XPS_COLOR {} +impl ::core::clone::Clone for XPS_COLOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union XPS_COLOR_0 { + pub sRGB: XPS_COLOR_0_1, + pub scRGB: XPS_COLOR_0_2, + pub context: XPS_COLOR_0_0, +} +impl ::core::marker::Copy for XPS_COLOR_0 {} +impl ::core::clone::Clone for XPS_COLOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XPS_COLOR_0_0 { + pub channelCount: u8, + pub channels: [f32; 9], +} +impl ::core::marker::Copy for XPS_COLOR_0_0 {} +impl ::core::clone::Clone for XPS_COLOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XPS_COLOR_0_1 { + pub alpha: u8, + pub red: u8, + pub green: u8, + pub blue: u8, +} +impl ::core::marker::Copy for XPS_COLOR_0_1 {} +impl ::core::clone::Clone for XPS_COLOR_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XPS_COLOR_0_2 { + pub alpha: f32, + pub red: f32, + pub green: f32, + pub blue: f32, +} +impl ::core::marker::Copy for XPS_COLOR_0_2 {} +impl ::core::clone::Clone for XPS_COLOR_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XPS_DASH { + pub length: f32, + pub gap: f32, +} +impl ::core::marker::Copy for XPS_DASH {} +impl ::core::clone::Clone for XPS_DASH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XPS_GLYPH_INDEX { + pub index: i32, + pub advanceWidth: f32, + pub horizontalOffset: f32, + pub verticalOffset: f32, +} +impl ::core::marker::Copy for XPS_GLYPH_INDEX {} +impl ::core::clone::Clone for XPS_GLYPH_INDEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XPS_GLYPH_MAPPING { + pub unicodeStringStart: u32, + pub unicodeStringLength: u16, + pub glyphIndicesStart: u32, + pub glyphIndicesLength: u16, +} +impl ::core::marker::Copy for XPS_GLYPH_MAPPING {} +impl ::core::clone::Clone for XPS_GLYPH_MAPPING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XPS_MATRIX { + pub m11: f32, + pub m12: f32, + pub m21: f32, + pub m22: f32, + pub m31: f32, + pub m32: f32, +} +impl ::core::marker::Copy for XPS_MATRIX {} +impl ::core::clone::Clone for XPS_MATRIX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XPS_POINT { + pub x: f32, + pub y: f32, +} +impl ::core::marker::Copy for XPS_POINT {} +impl ::core::clone::Clone for XPS_POINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XPS_RECT { + pub x: f32, + pub y: f32, + pub width: f32, + pub height: f32, +} +impl ::core::marker::Copy for XPS_RECT {} +impl ::core::clone::Clone for XPS_RECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XPS_SIZE { + pub width: f32, + pub height: f32, +} +impl ::core::marker::Copy for XPS_SIZE {} +impl ::core::clone::Clone for XPS_SIZE { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type ABORTPROC = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/mod.rs new file mode 100644 index 000000000..9005e9427 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Storage/mod.rs @@ -0,0 +1,57 @@ +#[cfg(feature = "Win32_Storage_Cabinets")] +#[doc = "Required features: `\"Win32_Storage_Cabinets\"`"] +pub mod Cabinets; +#[cfg(feature = "Win32_Storage_CloudFilters")] +#[doc = "Required features: `\"Win32_Storage_CloudFilters\"`"] +pub mod CloudFilters; +#[cfg(feature = "Win32_Storage_Compression")] +#[doc = "Required features: `\"Win32_Storage_Compression\"`"] +pub mod Compression; +#[cfg(feature = "Win32_Storage_DistributedFileSystem")] +#[doc = "Required features: `\"Win32_Storage_DistributedFileSystem\"`"] +pub mod DistributedFileSystem; +#[cfg(feature = "Win32_Storage_FileHistory")] +#[doc = "Required features: `\"Win32_Storage_FileHistory\"`"] +pub mod FileHistory; +#[cfg(feature = "Win32_Storage_FileSystem")] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +pub mod FileSystem; +#[cfg(feature = "Win32_Storage_Imapi")] +#[doc = "Required features: `\"Win32_Storage_Imapi\"`"] +pub mod Imapi; +#[cfg(feature = "Win32_Storage_IndexServer")] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`"] +pub mod IndexServer; +#[cfg(feature = "Win32_Storage_InstallableFileSystems")] +#[doc = "Required features: `\"Win32_Storage_InstallableFileSystems\"`"] +pub mod InstallableFileSystems; +#[cfg(feature = "Win32_Storage_IscsiDisc")] +#[doc = "Required features: `\"Win32_Storage_IscsiDisc\"`"] +pub mod IscsiDisc; +#[cfg(feature = "Win32_Storage_Jet")] +#[doc = "Required features: `\"Win32_Storage_Jet\"`"] +pub mod Jet; +#[cfg(feature = "Win32_Storage_Nvme")] +#[doc = "Required features: `\"Win32_Storage_Nvme\"`"] +pub mod Nvme; +#[cfg(feature = "Win32_Storage_OfflineFiles")] +#[doc = "Required features: `\"Win32_Storage_OfflineFiles\"`"] +pub mod OfflineFiles; +#[cfg(feature = "Win32_Storage_OperationRecorder")] +#[doc = "Required features: `\"Win32_Storage_OperationRecorder\"`"] +pub mod OperationRecorder; +#[cfg(feature = "Win32_Storage_Packaging")] +#[doc = "Required features: `\"Win32_Storage_Packaging\"`"] +pub mod Packaging; +#[cfg(feature = "Win32_Storage_ProjectedFileSystem")] +#[doc = "Required features: `\"Win32_Storage_ProjectedFileSystem\"`"] +pub mod ProjectedFileSystem; +#[cfg(feature = "Win32_Storage_StructuredStorage")] +#[doc = "Required features: `\"Win32_Storage_StructuredStorage\"`"] +pub mod StructuredStorage; +#[cfg(feature = "Win32_Storage_Vhd")] +#[doc = "Required features: `\"Win32_Storage_Vhd\"`"] +pub mod Vhd; +#[cfg(feature = "Win32_Storage_Xps")] +#[doc = "Required features: `\"Win32_Storage_Xps\"`"] +pub mod Xps; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/AddressBook/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/AddressBook/mod.rs new file mode 100644 index 000000000..ccebb09cf --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/AddressBook/mod.rs @@ -0,0 +1,1445 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn BuildDisplayTable(lpallocatebuffer : LPALLOCATEBUFFER, lpallocatemore : LPALLOCATEMORE, lpfreebuffer : LPFREEBUFFER, lpmalloc : super::Com:: IMalloc, hinstance : super::super::Foundation:: HINSTANCE, cpages : u32, lppage : *mut DTPAGE, ulflags : u32, lpptable : *mut IMAPITable, lpptbldata : *mut ITableData) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChangeIdleRoutine(ftg : *mut ::core::ffi::c_void, lpfnidle : PFNIDLE, lpvidleparam : *mut ::core::ffi::c_void, priidle : i16, csecidle : u32, iroidle : u16, ircidle : u16) -> ()); +::windows_targets::link!("mapi32.dll" "system" fn CreateIProp(lpinterface : *mut ::windows_sys::core::GUID, lpallocatebuffer : LPALLOCATEBUFFER, lpallocatemore : LPALLOCATEMORE, lpfreebuffer : LPFREEBUFFER, lpvreserved : *mut ::core::ffi::c_void, lpppropdata : *mut IPropData) -> i32); +::windows_targets::link!("rtm.dll" "system" fn CreateTable(lpinterface : *mut ::windows_sys::core::GUID, lpallocatebuffer : LPALLOCATEBUFFER, lpallocatemore : LPALLOCATEMORE, lpfreebuffer : LPFREEBUFFER, lpvreserved : *mut ::core::ffi::c_void, ultabletype : u32, ulproptagindexcolumn : u32, lpsproptagarraycolumns : *mut SPropTagArray, lpptabledata : *mut ITableData) -> i32); +::windows_targets::link!("mapi32.dll" "system" fn DeinitMapiUtil() -> ()); +::windows_targets::link!("mapi32.dll" "system" fn DeregisterIdleRoutine(ftg : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableIdleRoutine(ftg : *mut ::core::ffi::c_void, fenable : super::super::Foundation:: BOOL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FEqualNames(lpname1 : *mut MAPINAMEID, lpname2 : *mut MAPINAMEID) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn FPropCompareProp(lpspropvalue1 : *mut SPropValue, ulrelop : u32, lpspropvalue2 : *mut SPropValue) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn FPropContainsProp(lpspropvaluedst : *mut SPropValue, lpspropvaluesrc : *mut SPropValue, ulfuzzylevel : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FPropExists(lpmapiprop : IMAPIProp, ulproptag : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn FreePadrlist(lpadrlist : *mut ADRLIST) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn FreeProws(lprows : *mut SRowSet) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtAddFt(ftaddend1 : super::super::Foundation:: FILETIME, ftaddend2 : super::super::Foundation:: FILETIME) -> super::super::Foundation:: FILETIME); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtMulDw(ftmultiplier : u32, ftmultiplicand : super::super::Foundation:: FILETIME) -> super::super::Foundation:: FILETIME); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtMulDwDw(ftmultiplicand : u32, ftmultiplier : u32) -> super::super::Foundation:: FILETIME); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtNegFt(ft : super::super::Foundation:: FILETIME) -> super::super::Foundation:: FILETIME); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtSubFt(ftminuend : super::super::Foundation:: FILETIME, ftsubtrahend : super::super::Foundation:: FILETIME) -> super::super::Foundation:: FILETIME); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FtgRegisterIdleRoutine(lpfnidle : PFNIDLE, lpvidleparam : *mut ::core::ffi::c_void, priidle : i16, csecidle : u32, iroidle : u16) -> *mut ::core::ffi::c_void); +::windows_targets::link!("mapi32.dll" "system" fn HrAddColumns(lptbl : IMAPITable, lpproptagcolumnsnew : *mut SPropTagArray, lpallocatebuffer : LPALLOCATEBUFFER, lpfreebuffer : LPFREEBUFFER) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mapi32.dll" "system" fn HrAddColumnsEx(lptbl : IMAPITable, lpproptagcolumnsnew : *mut SPropTagArray, lpallocatebuffer : LPALLOCATEBUFFER, lpfreebuffer : LPFREEBUFFER, lpfnfiltercolumns : isize) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn HrAllocAdviseSink(lpfncallback : LPNOTIFCALLBACK, lpvcontext : *mut ::core::ffi::c_void, lppadvisesink : *mut IMAPIAdviseSink) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mapi32.dll" "system" fn HrDispatchNotifications(ulflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn HrGetOneProp(lpmapiprop : IMAPIProp, ulproptag : u32, lppprop : *mut *mut SPropValue) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn HrIStorageFromStream(lpunkin : ::windows_sys::core::IUnknown, lpinterface : *mut ::windows_sys::core::GUID, ulflags : u32, lppstorageout : *mut super::Com::StructuredStorage:: IStorage) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn HrQueryAllRows(lptable : IMAPITable, lpproptags : *mut SPropTagArray, lprestriction : *mut SRestriction, lpsortorderset : *mut SSortOrderSet, crowsmax : i32, lpprows : *mut *mut SRowSet) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn HrSetOneProp(lpmapiprop : IMAPIProp, lpprop : *mut SPropValue) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mapi32.dll" "system" fn HrThisThreadAdviseSink(lpadvisesink : IMAPIAdviseSink, lppadvisesink : *mut IMAPIAdviseSink) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn LPropCompareProp(lpspropvaluea : *mut SPropValue, lpspropvalueb : *mut SPropValue) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn LpValFindProp(ulproptag : u32, cvalues : u32, lpproparray : *mut SPropValue) -> *mut SPropValue); +::windows_targets::link!("mapi32.dll" "system" fn MAPIDeinitIdle() -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn MAPIGetDefaultMalloc() -> super::Com:: IMalloc); +::windows_targets::link!("mapi32.dll" "system" fn MAPIInitIdle(lpvreserved : *mut ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn OpenStreamOnFile(lpallocatebuffer : LPALLOCATEBUFFER, lpfreebuffer : LPFREEBUFFER, ulflags : u32, lpszfilename : *const i8, lpszprefix : *const i8, lppstream : *mut super::Com:: IStream) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn PpropFindProp(lpproparray : *mut SPropValue, cvalues : u32, ulproptag : u32) -> *mut SPropValue); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn PropCopyMore(lpspropvaluedest : *mut SPropValue, lpspropvaluesrc : *mut SPropValue, lpfallocmore : LPALLOCATEMORE, lpvobject : *mut ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RTFSync(lpmessage : IMessage, ulflags : u32, lpfmessageupdated : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn ScCopyNotifications(cnotification : i32, lpnotifications : *mut NOTIFICATION, lpvdst : *mut ::core::ffi::c_void, lpcb : *mut u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn ScCopyProps(cvalues : i32, lpproparray : *mut SPropValue, lpvdst : *mut ::core::ffi::c_void, lpcb : *mut u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn ScCountNotifications(cnotifications : i32, lpnotifications : *mut NOTIFICATION, lpcb : *mut u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn ScCountProps(cvalues : i32, lpproparray : *mut SPropValue, lpcb : *mut u32) -> i32); +::windows_targets::link!("mapi32.dll" "system" fn ScCreateConversationIndex(cbparent : u32, lpbparent : *mut u8, lpcbconvindex : *mut u32, lppbconvindex : *mut *mut u8) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn ScDupPropset(cvalues : i32, lpproparray : *mut SPropValue, lpallocatebuffer : LPALLOCATEBUFFER, lppproparray : *mut *mut SPropValue) -> i32); +::windows_targets::link!("mapi32.dll" "system" fn ScInitMapiUtil(ulflags : u32) -> i32); +::windows_targets::link!("mapi32.dll" "system" fn ScLocalPathFromUNC(lpszunc : ::windows_sys::core::PCSTR, lpszlocal : ::windows_sys::core::PCSTR, cchlocal : u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn ScRelocNotifications(cnotification : i32, lpnotifications : *mut NOTIFICATION, lpvbaseold : *mut ::core::ffi::c_void, lpvbasenew : *mut ::core::ffi::c_void, lpcb : *mut u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn ScRelocProps(cvalues : i32, lpproparray : *mut SPropValue, lpvbaseold : *mut ::core::ffi::c_void, lpvbasenew : *mut ::core::ffi::c_void, lpcb : *mut u32) -> i32); +::windows_targets::link!("mapi32.dll" "system" fn ScUNCFromLocalPath(lpszlocal : ::windows_sys::core::PCSTR, lpszunc : ::windows_sys::core::PCSTR, cchunc : u32) -> i32); +::windows_targets::link!("mapi32.dll" "system" fn SzFindCh(lpsz : *mut i8, ch : u16) -> *mut i8); +::windows_targets::link!("mapi32.dll" "system" fn SzFindLastCh(lpsz : *mut i8, ch : u16) -> *mut i8); +::windows_targets::link!("mapi32.dll" "system" fn SzFindSz(lpsz : *mut i8, lpszkey : *mut i8) -> *mut i8); +::windows_targets::link!("mapi32.dll" "system" fn UFromSz(lpsz : *mut i8) -> u32); +::windows_targets::link!("mapi32.dll" "system" fn UlAddRef(lpunk : *mut ::core::ffi::c_void) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn UlPropSize(lpspropvalue : *mut SPropValue) -> u32); +::windows_targets::link!("mapi32.dll" "system" fn UlRelease(lpunk : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("mapi32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn WrapCompressedRTFStream(lpcompressedrtfstream : super::Com:: IStream, ulflags : u32, lpuncompressedrtfstream : *mut super::Com:: IStream) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mapi32.dll" "system" fn WrapStoreEntryID(ulflags : u32, lpszdllname : *const i8, cborigentry : u32, lporigentry : *const ENTRYID, lpcbwrappedentry : *mut u32, lppwrappedentry : *mut *mut ENTRYID) -> ::windows_sys::core::HRESULT); +pub type IABContainer = *mut ::core::ffi::c_void; +pub type IAddrBook = *mut ::core::ffi::c_void; +pub type IAttach = *mut ::core::ffi::c_void; +pub type IDistList = *mut ::core::ffi::c_void; +pub type IMAPIAdviseSink = *mut ::core::ffi::c_void; +pub type IMAPIContainer = *mut ::core::ffi::c_void; +pub type IMAPIControl = *mut ::core::ffi::c_void; +pub type IMAPIFolder = *mut ::core::ffi::c_void; +pub type IMAPIProgress = *mut ::core::ffi::c_void; +pub type IMAPIProp = *mut ::core::ffi::c_void; +pub type IMAPIStatus = *mut ::core::ffi::c_void; +pub type IMAPITable = *mut ::core::ffi::c_void; +pub type IMailUser = *mut ::core::ffi::c_void; +pub type IMessage = *mut ::core::ffi::c_void; +pub type IMsgStore = *mut ::core::ffi::c_void; +pub type IProfSect = *mut ::core::ffi::c_void; +pub type IPropData = *mut ::core::ffi::c_void; +pub type IProviderAdmin = *mut ::core::ffi::c_void; +pub type ITableData = *mut ::core::ffi::c_void; +pub type IWABExtInit = *mut ::core::ffi::c_void; +pub type IWABObject = *mut ::core::ffi::c_void; +pub const E_IMAPI_BURN_VERIFICATION_FAILED: ::windows_sys::core::HRESULT = -1062600697i32; +pub const E_IMAPI_DF2DATA_CLIENT_NAME_IS_NOT_VALID: ::windows_sys::core::HRESULT = -1062599672i32; +pub const E_IMAPI_DF2DATA_INVALID_MEDIA_STATE: ::windows_sys::core::HRESULT = -1062599678i32; +pub const E_IMAPI_DF2DATA_MEDIA_IS_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062599674i32; +pub const E_IMAPI_DF2DATA_MEDIA_NOT_BLANK: ::windows_sys::core::HRESULT = -1062599675i32; +pub const E_IMAPI_DF2DATA_RECORDER_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062599673i32; +pub const E_IMAPI_DF2DATA_STREAM_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062599677i32; +pub const E_IMAPI_DF2DATA_STREAM_TOO_LARGE_FOR_CURRENT_MEDIA: ::windows_sys::core::HRESULT = -1062599676i32; +pub const E_IMAPI_DF2DATA_WRITE_IN_PROGRESS: ::windows_sys::core::HRESULT = -1062599680i32; +pub const E_IMAPI_DF2DATA_WRITE_NOT_IN_PROGRESS: ::windows_sys::core::HRESULT = -1062599679i32; +pub const E_IMAPI_DF2RAW_CLIENT_NAME_IS_NOT_VALID: ::windows_sys::core::HRESULT = -1062599164i32; +pub const E_IMAPI_DF2RAW_DATA_BLOCK_TYPE_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062599154i32; +pub const E_IMAPI_DF2RAW_MEDIA_IS_NOT_BLANK: ::windows_sys::core::HRESULT = -1062599162i32; +pub const E_IMAPI_DF2RAW_MEDIA_IS_NOT_PREPARED: ::windows_sys::core::HRESULT = -1062599166i32; +pub const E_IMAPI_DF2RAW_MEDIA_IS_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062599161i32; +pub const E_IMAPI_DF2RAW_MEDIA_IS_PREPARED: ::windows_sys::core::HRESULT = -1062599165i32; +pub const E_IMAPI_DF2RAW_NOT_ENOUGH_SPACE: ::windows_sys::core::HRESULT = -1062599159i32; +pub const E_IMAPI_DF2RAW_NO_RECORDER_SPECIFIED: ::windows_sys::core::HRESULT = -1062599158i32; +pub const E_IMAPI_DF2RAW_RECORDER_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062599152i32; +pub const E_IMAPI_DF2RAW_STREAM_LEADIN_TOO_SHORT: ::windows_sys::core::HRESULT = -1062599153i32; +pub const E_IMAPI_DF2RAW_STREAM_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062599155i32; +pub const E_IMAPI_DF2RAW_WRITE_IN_PROGRESS: ::windows_sys::core::HRESULT = -1062599168i32; +pub const E_IMAPI_DF2RAW_WRITE_NOT_IN_PROGRESS: ::windows_sys::core::HRESULT = -1062599167i32; +pub const E_IMAPI_DF2TAO_CLIENT_NAME_IS_NOT_VALID: ::windows_sys::core::HRESULT = -1062599409i32; +pub const E_IMAPI_DF2TAO_INVALID_ISRC: ::windows_sys::core::HRESULT = -1062599413i32; +pub const E_IMAPI_DF2TAO_INVALID_MCN: ::windows_sys::core::HRESULT = -1062599412i32; +pub const E_IMAPI_DF2TAO_MEDIA_IS_NOT_BLANK: ::windows_sys::core::HRESULT = -1062599418i32; +pub const E_IMAPI_DF2TAO_MEDIA_IS_NOT_PREPARED: ::windows_sys::core::HRESULT = -1062599422i32; +pub const E_IMAPI_DF2TAO_MEDIA_IS_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062599417i32; +pub const E_IMAPI_DF2TAO_MEDIA_IS_PREPARED: ::windows_sys::core::HRESULT = -1062599421i32; +pub const E_IMAPI_DF2TAO_NOT_ENOUGH_SPACE: ::windows_sys::core::HRESULT = -1062599415i32; +pub const E_IMAPI_DF2TAO_NO_RECORDER_SPECIFIED: ::windows_sys::core::HRESULT = -1062599414i32; +pub const E_IMAPI_DF2TAO_PROPERTY_FOR_BLANK_MEDIA_ONLY: ::windows_sys::core::HRESULT = -1062599420i32; +pub const E_IMAPI_DF2TAO_RECORDER_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062599410i32; +pub const E_IMAPI_DF2TAO_STREAM_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062599411i32; +pub const E_IMAPI_DF2TAO_TABLE_OF_CONTENTS_EMPTY_DISC: ::windows_sys::core::HRESULT = -1062599419i32; +pub const E_IMAPI_DF2TAO_TRACK_LIMIT_REACHED: ::windows_sys::core::HRESULT = -1062599416i32; +pub const E_IMAPI_DF2TAO_WRITE_IN_PROGRESS: ::windows_sys::core::HRESULT = -1062599424i32; +pub const E_IMAPI_DF2TAO_WRITE_NOT_IN_PROGRESS: ::windows_sys::core::HRESULT = -1062599423i32; +pub const E_IMAPI_ERASE_CLIENT_NAME_IS_NOT_VALID: ::windows_sys::core::HRESULT = -1062598389i32; +pub const E_IMAPI_ERASE_DISC_INFORMATION_TOO_SMALL: ::windows_sys::core::HRESULT = -2136340222i32; +pub const E_IMAPI_ERASE_DRIVE_FAILED_ERASE_COMMAND: ::windows_sys::core::HRESULT = -2136340219i32; +pub const E_IMAPI_ERASE_DRIVE_FAILED_SPINUP_COMMAND: ::windows_sys::core::HRESULT = -2136340216i32; +pub const E_IMAPI_ERASE_MEDIA_IS_NOT_ERASABLE: ::windows_sys::core::HRESULT = -2136340220i32; +pub const E_IMAPI_ERASE_MEDIA_IS_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062598391i32; +pub const E_IMAPI_ERASE_MODE_PAGE_2A_TOO_SMALL: ::windows_sys::core::HRESULT = -2136340221i32; +pub const E_IMAPI_ERASE_ONLY_ONE_RECORDER_SUPPORTED: ::windows_sys::core::HRESULT = -2136340223i32; +pub const E_IMAPI_ERASE_RECORDER_IN_USE: ::windows_sys::core::HRESULT = -2136340224i32; +pub const E_IMAPI_ERASE_RECORDER_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062598390i32; +pub const E_IMAPI_ERASE_TOOK_LONGER_THAN_ONE_HOUR: ::windows_sys::core::HRESULT = -2136340218i32; +pub const E_IMAPI_ERASE_UNEXPECTED_DRIVE_RESPONSE_DURING_ERASE: ::windows_sys::core::HRESULT = -2136340217i32; +pub const E_IMAPI_LOSS_OF_STREAMING: ::windows_sys::core::HRESULT = -1062599936i32; +pub const E_IMAPI_RAW_IMAGE_INSUFFICIENT_SPACE: ::windows_sys::core::HRESULT = -2136339963i32; +pub const E_IMAPI_RAW_IMAGE_IS_READ_ONLY: ::windows_sys::core::HRESULT = -2136339968i32; +pub const E_IMAPI_RAW_IMAGE_NO_TRACKS: ::windows_sys::core::HRESULT = -2136339965i32; +pub const E_IMAPI_RAW_IMAGE_SECTOR_TYPE_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2136339966i32; +pub const E_IMAPI_RAW_IMAGE_TOO_MANY_TRACKS: ::windows_sys::core::HRESULT = -2136339967i32; +pub const E_IMAPI_RAW_IMAGE_TOO_MANY_TRACK_INDEXES: ::windows_sys::core::HRESULT = -2136339962i32; +pub const E_IMAPI_RAW_IMAGE_TRACKS_ALREADY_ADDED: ::windows_sys::core::HRESULT = -2136339964i32; +pub const E_IMAPI_RAW_IMAGE_TRACK_INDEX_NOT_FOUND: ::windows_sys::core::HRESULT = -2136339961i32; +pub const E_IMAPI_RAW_IMAGE_TRACK_INDEX_OFFSET_ZERO_CANNOT_BE_CLEARED: ::windows_sys::core::HRESULT = -2136339959i32; +pub const E_IMAPI_RAW_IMAGE_TRACK_INDEX_TOO_CLOSE_TO_OTHER_INDEX: ::windows_sys::core::HRESULT = -2136339958i32; +pub const E_IMAPI_RECORDER_CLIENT_NAME_IS_NOT_VALID: ::windows_sys::core::HRESULT = -1062600175i32; +pub const E_IMAPI_RECORDER_COMMAND_TIMEOUT: ::windows_sys::core::HRESULT = -1062600179i32; +pub const E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT: ::windows_sys::core::HRESULT = -1062600178i32; +pub const E_IMAPI_RECORDER_FEATURE_IS_NOT_CURRENT: ::windows_sys::core::HRESULT = -1062600181i32; +pub const E_IMAPI_RECORDER_GET_CONFIGURATION_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062600180i32; +pub const E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS: ::windows_sys::core::HRESULT = -1062600184i32; +pub const E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE: ::windows_sys::core::HRESULT = -1062599937i32; +pub const E_IMAPI_RECORDER_LOCKED: ::windows_sys::core::HRESULT = -1062600176i32; +pub const E_IMAPI_RECORDER_MEDIA_BECOMING_READY: ::windows_sys::core::HRESULT = -1062600187i32; +pub const E_IMAPI_RECORDER_MEDIA_BUSY: ::windows_sys::core::HRESULT = -1062600185i32; +pub const E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS: ::windows_sys::core::HRESULT = -1062600186i32; +pub const E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE: ::windows_sys::core::HRESULT = -1062600189i32; +pub const E_IMAPI_RECORDER_MEDIA_NOT_FORMATTED: ::windows_sys::core::HRESULT = -1062600174i32; +pub const E_IMAPI_RECORDER_MEDIA_NO_MEDIA: ::windows_sys::core::HRESULT = -1062600190i32; +pub const E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH: ::windows_sys::core::HRESULT = -1062600177i32; +pub const E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN: ::windows_sys::core::HRESULT = -1062600188i32; +pub const E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED: ::windows_sys::core::HRESULT = -1062600183i32; +pub const E_IMAPI_RECORDER_NO_SUCH_FEATURE: ::windows_sys::core::HRESULT = -1062600182i32; +pub const E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE: ::windows_sys::core::HRESULT = -1062600191i32; +pub const E_IMAPI_RECORDER_REQUIRED: ::windows_sys::core::HRESULT = -1062600701i32; +pub const E_IMAPI_REQUEST_CANCELLED: ::windows_sys::core::HRESULT = -1062600702i32; +pub const E_IMAPI_UNEXPECTED_RESPONSE_FROM_DEVICE: ::windows_sys::core::HRESULT = -1062599935i32; +pub const FACILITY_IMAPI2: u32 = 170u32; +pub const IMAPI_E_BAD_MULTISESSION_PARAMETER: ::windows_sys::core::HRESULT = -1062555294i32; +pub const IMAPI_E_BOOT_EMULATION_IMAGE_SIZE_MISMATCH: ::windows_sys::core::HRESULT = -1062555318i32; +pub const IMAPI_E_BOOT_IMAGE_DATA: ::windows_sys::core::HRESULT = -1062555320i32; +pub const IMAPI_E_BOOT_OBJECT_CONFLICT: ::windows_sys::core::HRESULT = -1062555319i32; +pub const IMAPI_E_DATA_STREAM_CREATE_FAILURE: ::windows_sys::core::HRESULT = -1062555350i32; +pub const IMAPI_E_DATA_STREAM_INCONSISTENCY: ::windows_sys::core::HRESULT = -1062555352i32; +pub const IMAPI_E_DATA_STREAM_READ_FAILURE: ::windows_sys::core::HRESULT = -1062555351i32; +pub const IMAPI_E_DATA_TOO_BIG: ::windows_sys::core::HRESULT = -1062555342i32; +pub const IMAPI_E_DIRECTORY_READ_FAILURE: ::windows_sys::core::HRESULT = -1062555349i32; +pub const IMAPI_E_DIR_NOT_EMPTY: ::windows_sys::core::HRESULT = -1062555382i32; +pub const IMAPI_E_DIR_NOT_FOUND: ::windows_sys::core::HRESULT = -1062555366i32; +pub const IMAPI_E_DISC_MISMATCH: ::windows_sys::core::HRESULT = -1062555304i32; +pub const IMAPI_E_DUP_NAME: ::windows_sys::core::HRESULT = -1062555374i32; +pub const IMAPI_E_EMPTY_DISC: ::windows_sys::core::HRESULT = -1062555312i32; +pub const IMAPI_E_FILE_NOT_FOUND: ::windows_sys::core::HRESULT = -1062555367i32; +pub const IMAPI_E_FILE_SYSTEM_CHANGE_NOT_ALLOWED: ::windows_sys::core::HRESULT = -1062555293i32; +pub const IMAPI_E_FILE_SYSTEM_FEATURE_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1062555308i32; +pub const IMAPI_E_FILE_SYSTEM_NOT_EMPTY: ::windows_sys::core::HRESULT = -1062555386i32; +pub const IMAPI_E_FILE_SYSTEM_NOT_FOUND: ::windows_sys::core::HRESULT = -1062555310i32; +pub const IMAPI_E_FILE_SYSTEM_READ_CONSISTENCY_ERROR: ::windows_sys::core::HRESULT = -1062555309i32; +pub const IMAPI_E_FSI_INTERNAL_ERROR: ::windows_sys::core::HRESULT = -1062555392i32; +pub const IMAPI_E_IMAGEMANAGER_IMAGE_NOT_ALIGNED: ::windows_sys::core::HRESULT = -1062555136i32; +pub const IMAPI_E_IMAGEMANAGER_IMAGE_TOO_BIG: ::windows_sys::core::HRESULT = -1062555133i32; +pub const IMAPI_E_IMAGEMANAGER_NO_IMAGE: ::windows_sys::core::HRESULT = -1062555134i32; +pub const IMAPI_E_IMAGEMANAGER_NO_VALID_VD_FOUND: ::windows_sys::core::HRESULT = -1062555135i32; +pub const IMAPI_E_IMAGE_SIZE_LIMIT: ::windows_sys::core::HRESULT = -1062555360i32; +pub const IMAPI_E_IMAGE_TOO_BIG: ::windows_sys::core::HRESULT = -1062555359i32; +pub const IMAPI_E_IMPORT_MEDIA_NOT_ALLOWED: ::windows_sys::core::HRESULT = -1062555303i32; +pub const IMAPI_E_IMPORT_READ_FAILURE: ::windows_sys::core::HRESULT = -1062555305i32; +pub const IMAPI_E_IMPORT_SEEK_FAILURE: ::windows_sys::core::HRESULT = -1062555306i32; +pub const IMAPI_E_IMPORT_TYPE_COLLISION_DIRECTORY_EXISTS_AS_FILE: ::windows_sys::core::HRESULT = -1062555298i32; +pub const IMAPI_E_IMPORT_TYPE_COLLISION_FILE_EXISTS_AS_DIRECTORY: ::windows_sys::core::HRESULT = -1062555307i32; +pub const IMAPI_E_INCOMPATIBLE_MULTISESSION_TYPE: ::windows_sys::core::HRESULT = -1062555301i32; +pub const IMAPI_E_INCOMPATIBLE_PREVIOUS_SESSION: ::windows_sys::core::HRESULT = -1062555341i32; +pub const IMAPI_E_INVALID_DATE: ::windows_sys::core::HRESULT = -1062555387i32; +pub const IMAPI_E_INVALID_PARAM: ::windows_sys::core::HRESULT = -1062555391i32; +pub const IMAPI_E_INVALID_PATH: ::windows_sys::core::HRESULT = -1062555376i32; +pub const IMAPI_E_INVALID_VOLUME_NAME: ::windows_sys::core::HRESULT = -1062555388i32; +pub const IMAPI_E_INVALID_WORKING_DIRECTORY: ::windows_sys::core::HRESULT = -1062555328i32; +pub const IMAPI_E_ISO9660_LEVELS: ::windows_sys::core::HRESULT = -1062555343i32; +pub const IMAPI_E_ITEM_NOT_FOUND: ::windows_sys::core::HRESULT = -1062555368i32; +pub const IMAPI_E_MULTISESSION_NOT_SET: ::windows_sys::core::HRESULT = -1062555299i32; +pub const IMAPI_E_NOT_DIR: ::windows_sys::core::HRESULT = -1062555383i32; +pub const IMAPI_E_NOT_FILE: ::windows_sys::core::HRESULT = -1062555384i32; +pub const IMAPI_E_NOT_IN_FILE_SYSTEM: ::windows_sys::core::HRESULT = -1062555381i32; +pub const IMAPI_E_NO_COMPATIBLE_MULTISESSION_TYPE: ::windows_sys::core::HRESULT = -1062555300i32; +pub const IMAPI_E_NO_OUTPUT: ::windows_sys::core::HRESULT = -1062555389i32; +pub const IMAPI_E_NO_SUPPORTED_FILE_SYSTEM: ::windows_sys::core::HRESULT = -1062555311i32; +pub const IMAPI_E_NO_UNIQUE_NAME: ::windows_sys::core::HRESULT = -1062555373i32; +pub const IMAPI_E_PROPERTY_NOT_ACCESSIBLE: ::windows_sys::core::HRESULT = -1062555296i32; +pub const IMAPI_E_READONLY: ::windows_sys::core::HRESULT = -1062555390i32; +pub const IMAPI_E_RESTRICTED_NAME_VIOLATION: ::windows_sys::core::HRESULT = -1062555375i32; +pub const IMAPI_E_STASHFILE_MOVE: ::windows_sys::core::HRESULT = -1062555326i32; +pub const IMAPI_E_STASHFILE_OPEN_FAILURE: ::windows_sys::core::HRESULT = -1062555336i32; +pub const IMAPI_E_STASHFILE_READ_FAILURE: ::windows_sys::core::HRESULT = -1062555333i32; +pub const IMAPI_E_STASHFILE_SEEK_FAILURE: ::windows_sys::core::HRESULT = -1062555335i32; +pub const IMAPI_E_STASHFILE_WRITE_FAILURE: ::windows_sys::core::HRESULT = -1062555334i32; +pub const IMAPI_E_TOO_MANY_DIRS: ::windows_sys::core::HRESULT = -1062555344i32; +pub const IMAPI_E_UDF_NOT_WRITE_COMPATIBLE: ::windows_sys::core::HRESULT = -1062555302i32; +pub const IMAPI_E_UDF_REVISION_CHANGE_NOT_ALLOWED: ::windows_sys::core::HRESULT = -1062555295i32; +pub const IMAPI_E_WORKING_DIRECTORY_SPACE: ::windows_sys::core::HRESULT = -1062555327i32; +pub const IMAPI_S_IMAGE_FEATURE_NOT_SUPPORTED: ::windows_sys::core::HRESULT = 11186527i32; +pub const MAPI_COMPOUND: u32 = 128u32; +pub const MAPI_DIM: u32 = 1u32; +pub const MAPI_ERROR_VERSION: i32 = 0i32; +pub const MAPI_E_CALL_FAILED: i32 = -2147467259i32; +pub const MAPI_E_INTERFACE_NOT_SUPPORTED: i32 = -2147467262i32; +pub const MAPI_E_INVALID_PARAMETER: i32 = -2147024809i32; +pub const MAPI_E_NOT_ENOUGH_MEMORY: i32 = -2147024882i32; +pub const MAPI_E_NO_ACCESS: i32 = -2147024891i32; +pub const MAPI_NOTRECIP: u32 = 64u32; +pub const MAPI_NOTRESERVED: u32 = 8u32; +pub const MAPI_NOW: u32 = 16u32; +pub const MAPI_ONE_OFF_NO_RICH_INFO: u32 = 1u32; +pub const MAPI_P1: u32 = 268435456u32; +pub const MAPI_SHORTTERM: u32 = 128u32; +pub const MAPI_SUBMITTED: u32 = 2147483648u32; +pub const MAPI_THISSESSION: u32 = 32u32; +pub const MAPI_USE_DEFAULT: u32 = 64u32; +pub const MNID_ID: u32 = 0u32; +pub const MNID_STRING: u32 = 1u32; +pub const MV_FLAG: u32 = 4096u32; +pub const MV_INSTANCE: u32 = 8192u32; +pub const OPENSTREAMONFILE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("OpenStreamOnFile"); +pub const PRIHIGHEST: u32 = 32767u32; +pub const PRILOWEST: i32 = -32768i32; +pub const PRIUSER: u32 = 0u32; +pub const PROP_ID_INVALID: u32 = 65535u32; +pub const PROP_ID_NULL: u32 = 0u32; +pub const PROP_ID_SECURE_MAX: u32 = 26623u32; +pub const PROP_ID_SECURE_MIN: u32 = 26608u32; +pub const SERVICE_UI_ALLOWED: u32 = 16u32; +pub const SERVICE_UI_ALWAYS: u32 = 2u32; +pub const S_IMAPI_BOTHADJUSTED: ::windows_sys::core::HRESULT = 11141126i32; +pub const S_IMAPI_COMMAND_HAS_SENSE_DATA: ::windows_sys::core::HRESULT = 11141632i32; +pub const S_IMAPI_RAW_IMAGE_TRACK_INDEX_ALREADY_EXISTS: ::windows_sys::core::HRESULT = 11143688i32; +pub const S_IMAPI_ROTATIONADJUSTED: ::windows_sys::core::HRESULT = 11141125i32; +pub const S_IMAPI_SPEEDADJUSTED: ::windows_sys::core::HRESULT = 11141124i32; +pub const S_IMAPI_WRITE_NOT_IN_PROGRESS: ::windows_sys::core::HRESULT = 11141890i32; +pub const TABLE_CHANGED: u32 = 1u32; +pub const TABLE_ERROR: u32 = 2u32; +pub const TABLE_RELOAD: u32 = 9u32; +pub const TABLE_RESTRICT_DONE: u32 = 7u32; +pub const TABLE_ROW_ADDED: u32 = 3u32; +pub const TABLE_ROW_DELETED: u32 = 4u32; +pub const TABLE_ROW_MODIFIED: u32 = 5u32; +pub const TABLE_SETCOL_DONE: u32 = 8u32; +pub const TABLE_SORT_DONE: u32 = 6u32; +pub const TAD_ALL_ROWS: u32 = 1u32; +pub const UI_CURRENT_PROVIDER_FIRST: u32 = 4u32; +pub const UI_SERVICE: u32 = 2u32; +pub const WABOBJECT_LDAPURL_RETURN_MAILUSER: u32 = 1u32; +pub const WABOBJECT_ME_NEW: u32 = 1u32; +pub const WABOBJECT_ME_NOCREATE: u32 = 2u32; +pub const WAB_CONTEXT_ADRLIST: u32 = 2u32; +pub const WAB_DISPLAY_ISNTDS: u32 = 4u32; +pub const WAB_DISPLAY_LDAPURL: u32 = 1u32; +pub const WAB_DLL_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WAB32.DLL"); +pub const WAB_DLL_PATH_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\WAB\\DLLPath"); +pub const WAB_ENABLE_PROFILES: u32 = 4194304u32; +pub const WAB_IGNORE_PROFILES: u32 = 8388608u32; +pub const WAB_LOCAL_CONTAINERS: u32 = 1048576u32; +pub const WAB_PROFILE_CONTENTS: u32 = 2097152u32; +pub const WAB_USE_OE_SENDMAIL: u32 = 1u32; +pub const WAB_VCARD_FILE: u32 = 0u32; +pub const WAB_VCARD_STREAM: u32 = 1u32; +pub const cchProfileNameMax: u32 = 64u32; +pub const cchProfilePassMax: u32 = 64u32; +pub const fMapiUnicode: u32 = 0u32; +pub const genderFemale: Gender = 1i32; +pub const genderMale: Gender = 2i32; +pub const genderUnspecified: Gender = 0i32; +pub const hrSuccess: u32 = 0u32; +pub const szHrDispatchNotifications: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("HrDispatchNotifications"); +pub const szMAPINotificationMsg: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MAPI Notify window message"); +pub const szScCreateConversationIndex: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ScCreateConversationIndex"); +pub type Gender = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct ADRENTRY { + pub ulReserved1: u32, + pub cValues: u32, + pub rgPropVals: *mut SPropValue, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for ADRENTRY {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for ADRENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct ADRLIST { + pub cEntries: u32, + pub aEntries: [ADRENTRY; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for ADRLIST {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for ADRLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct ADRPARM { + pub cbABContEntryID: u32, + pub lpABContEntryID: *mut ENTRYID, + pub ulFlags: u32, + pub lpReserved: *mut ::core::ffi::c_void, + pub ulHelpContext: u32, + pub lpszHelpFileName: *mut i8, + pub lpfnABSDI: LPFNABSDI, + pub lpfnDismiss: LPFNDISMISS, + pub lpvDismissContext: *mut ::core::ffi::c_void, + pub lpszCaption: *mut i8, + pub lpszNewEntryTitle: *mut i8, + pub lpszDestWellsTitle: *mut i8, + pub cDestFields: u32, + pub nDestFieldFocus: u32, + pub lppszDestTitles: *mut *mut i8, + pub lpulDestComps: *mut u32, + pub lpContRestriction: *mut SRestriction, + pub lpHierRestriction: *mut SRestriction, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for ADRPARM {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for ADRPARM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTBLBUTTON { + pub ulbLpszLabel: u32, + pub ulFlags: u32, + pub ulPRControl: u32, +} +impl ::core::marker::Copy for DTBLBUTTON {} +impl ::core::clone::Clone for DTBLBUTTON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTBLCHECKBOX { + pub ulbLpszLabel: u32, + pub ulFlags: u32, + pub ulPRPropertyName: u32, +} +impl ::core::marker::Copy for DTBLCHECKBOX {} +impl ::core::clone::Clone for DTBLCHECKBOX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTBLCOMBOBOX { + pub ulbLpszCharsAllowed: u32, + pub ulFlags: u32, + pub ulNumCharsAllowed: u32, + pub ulPRPropertyName: u32, + pub ulPRTableName: u32, +} +impl ::core::marker::Copy for DTBLCOMBOBOX {} +impl ::core::clone::Clone for DTBLCOMBOBOX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTBLDDLBX { + pub ulFlags: u32, + pub ulPRDisplayProperty: u32, + pub ulPRSetProperty: u32, + pub ulPRTableName: u32, +} +impl ::core::marker::Copy for DTBLDDLBX {} +impl ::core::clone::Clone for DTBLDDLBX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTBLEDIT { + pub ulbLpszCharsAllowed: u32, + pub ulFlags: u32, + pub ulNumCharsAllowed: u32, + pub ulPropTag: u32, +} +impl ::core::marker::Copy for DTBLEDIT {} +impl ::core::clone::Clone for DTBLEDIT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTBLGROUPBOX { + pub ulbLpszLabel: u32, + pub ulFlags: u32, +} +impl ::core::marker::Copy for DTBLGROUPBOX {} +impl ::core::clone::Clone for DTBLGROUPBOX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTBLLABEL { + pub ulbLpszLabelName: u32, + pub ulFlags: u32, +} +impl ::core::marker::Copy for DTBLLABEL {} +impl ::core::clone::Clone for DTBLLABEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTBLLBX { + pub ulFlags: u32, + pub ulPRSetProperty: u32, + pub ulPRTableName: u32, +} +impl ::core::marker::Copy for DTBLLBX {} +impl ::core::clone::Clone for DTBLLBX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTBLMVDDLBX { + pub ulFlags: u32, + pub ulMVPropTag: u32, +} +impl ::core::marker::Copy for DTBLMVDDLBX {} +impl ::core::clone::Clone for DTBLMVDDLBX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTBLMVLISTBOX { + pub ulFlags: u32, + pub ulMVPropTag: u32, +} +impl ::core::marker::Copy for DTBLMVLISTBOX {} +impl ::core::clone::Clone for DTBLMVLISTBOX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTBLPAGE { + pub ulbLpszLabel: u32, + pub ulFlags: u32, + pub ulbLpszComponent: u32, + pub ulContext: u32, +} +impl ::core::marker::Copy for DTBLPAGE {} +impl ::core::clone::Clone for DTBLPAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTBLRADIOBUTTON { + pub ulbLpszLabel: u32, + pub ulFlags: u32, + pub ulcButtons: u32, + pub ulPropTag: u32, + pub lReturnValue: i32, +} +impl ::core::marker::Copy for DTBLRADIOBUTTON {} +impl ::core::clone::Clone for DTBLRADIOBUTTON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTCTL { + pub ulCtlType: u32, + pub ulCtlFlags: u32, + pub lpbNotif: *mut u8, + pub cbNotif: u32, + pub lpszFilter: *mut i8, + pub ulItemID: u32, + pub ctl: DTCTL_0, +} +impl ::core::marker::Copy for DTCTL {} +impl ::core::clone::Clone for DTCTL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DTCTL_0 { + pub lpv: *mut ::core::ffi::c_void, + pub lplabel: *mut DTBLLABEL, + pub lpedit: *mut DTBLEDIT, + pub lplbx: *mut DTBLLBX, + pub lpcombobox: *mut DTBLCOMBOBOX, + pub lpddlbx: *mut DTBLDDLBX, + pub lpcheckbox: *mut DTBLCHECKBOX, + pub lpgroupbox: *mut DTBLGROUPBOX, + pub lpbutton: *mut DTBLBUTTON, + pub lpradiobutton: *mut DTBLRADIOBUTTON, + pub lpmvlbx: *mut DTBLMVLISTBOX, + pub lpmvddlbx: *mut DTBLMVDDLBX, + pub lppage: *mut DTBLPAGE, +} +impl ::core::marker::Copy for DTCTL_0 {} +impl ::core::clone::Clone for DTCTL_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DTPAGE { + pub cctl: u32, + pub lpszResourceName: *mut i8, + pub Anonymous: DTPAGE_0, + pub lpctl: *mut DTCTL, +} +impl ::core::marker::Copy for DTPAGE {} +impl ::core::clone::Clone for DTPAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DTPAGE_0 { + pub lpszComponent: *mut i8, + pub ulItemID: u32, +} +impl ::core::marker::Copy for DTPAGE_0 {} +impl ::core::clone::Clone for DTPAGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENTRYID { + pub abFlags: [u8; 4], + pub ab: [u8; 1], +} +impl ::core::marker::Copy for ENTRYID {} +impl ::core::clone::Clone for ENTRYID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ERROR_NOTIFICATION { + pub cbEntryID: u32, + pub lpEntryID: *mut ENTRYID, + pub scode: i32, + pub ulFlags: u32, + pub lpMAPIError: *mut MAPIERROR, +} +impl ::core::marker::Copy for ERROR_NOTIFICATION {} +impl ::core::clone::Clone for ERROR_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXTENDED_NOTIFICATION { + pub ulEvent: u32, + pub cb: u32, + pub pbEventParameters: *mut u8, +} +impl ::core::marker::Copy for EXTENDED_NOTIFICATION {} +impl ::core::clone::Clone for EXTENDED_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLATENTRY { + pub cb: u32, + pub abEntry: [u8; 1], +} +impl ::core::marker::Copy for FLATENTRY {} +impl ::core::clone::Clone for FLATENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLATENTRYLIST { + pub cEntries: u32, + pub cbEntries: u32, + pub abEntries: [u8; 1], +} +impl ::core::marker::Copy for FLATENTRYLIST {} +impl ::core::clone::Clone for FLATENTRYLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLATMTSIDLIST { + pub cMTSIDs: u32, + pub cbMTSIDs: u32, + pub abMTSIDs: [u8; 1], +} +impl ::core::marker::Copy for FLATMTSIDLIST {} +impl ::core::clone::Clone for FLATMTSIDLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FlagList { + pub cFlags: u32, + pub ulFlag: [u32; 1], +} +impl ::core::marker::Copy for FlagList {} +impl ::core::clone::Clone for FlagList { + fn clone(&self) -> Self { + *self + } +} +pub type LPWABACTIONITEM = isize; +#[repr(C)] +pub struct MAPIERROR { + pub ulVersion: u32, + pub lpszError: *mut i8, + pub lpszComponent: *mut i8, + pub ulLowLevelError: u32, + pub ulContext: u32, +} +impl ::core::marker::Copy for MAPIERROR {} +impl ::core::clone::Clone for MAPIERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MAPINAMEID { + pub lpguid: *mut ::windows_sys::core::GUID, + pub ulKind: u32, + pub Kind: MAPINAMEID_0, +} +impl ::core::marker::Copy for MAPINAMEID {} +impl ::core::clone::Clone for MAPINAMEID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MAPINAMEID_0 { + pub lID: i32, + pub lpwstrName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for MAPINAMEID_0 {} +impl ::core::clone::Clone for MAPINAMEID_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MAPIUID { + pub ab: [u8; 16], +} +impl ::core::marker::Copy for MAPIUID {} +impl ::core::clone::Clone for MAPIUID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MTSID { + pub cb: u32, + pub ab: [u8; 1], +} +impl ::core::marker::Copy for MTSID {} +impl ::core::clone::Clone for MTSID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NEWMAIL_NOTIFICATION { + pub cbEntryID: u32, + pub lpEntryID: *mut ENTRYID, + pub cbParentID: u32, + pub lpParentID: *mut ENTRYID, + pub ulFlags: u32, + pub lpszMessageClass: *mut i8, + pub ulMessageFlags: u32, +} +impl ::core::marker::Copy for NEWMAIL_NOTIFICATION {} +impl ::core::clone::Clone for NEWMAIL_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct NOTIFICATION { + pub ulEventType: u32, + pub ulAlignPad: u32, + pub info: NOTIFICATION_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for NOTIFICATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub union NOTIFICATION_0 { + pub err: ERROR_NOTIFICATION, + pub newmail: NEWMAIL_NOTIFICATION, + pub obj: OBJECT_NOTIFICATION, + pub tab: TABLE_NOTIFICATION, + pub ext: EXTENDED_NOTIFICATION, + pub statobj: STATUS_OBJECT_NOTIFICATION, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for NOTIFICATION_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for NOTIFICATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NOTIFKEY { + pub cb: u32, + pub ab: [u8; 1], +} +impl ::core::marker::Copy for NOTIFKEY {} +impl ::core::clone::Clone for NOTIFKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OBJECT_NOTIFICATION { + pub cbEntryID: u32, + pub lpEntryID: *mut ENTRYID, + pub ulObjType: u32, + pub cbParentID: u32, + pub lpParentID: *mut ENTRYID, + pub cbOldID: u32, + pub lpOldID: *mut ENTRYID, + pub cbOldParentID: u32, + pub lpOldParentID: *mut ENTRYID, + pub lpPropTagArray: *mut SPropTagArray, +} +impl ::core::marker::Copy for OBJECT_NOTIFICATION {} +impl ::core::clone::Clone for OBJECT_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SAndRestriction { + pub cRes: u32, + pub lpRes: *mut SRestriction, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SAndRestriction {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SAndRestriction { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SAppTimeArray { + pub cValues: u32, + pub lpat: *mut f64, +} +impl ::core::marker::Copy for SAppTimeArray {} +impl ::core::clone::Clone for SAppTimeArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SBinary { + pub cb: u32, + pub lpb: *mut u8, +} +impl ::core::marker::Copy for SBinary {} +impl ::core::clone::Clone for SBinary { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SBinaryArray { + pub cValues: u32, + pub lpbin: *mut SBinary, +} +impl ::core::marker::Copy for SBinaryArray {} +impl ::core::clone::Clone for SBinaryArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SBitMaskRestriction { + pub relBMR: u32, + pub ulPropTag: u32, + pub ulMask: u32, +} +impl ::core::marker::Copy for SBitMaskRestriction {} +impl ::core::clone::Clone for SBitMaskRestriction { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SCommentRestriction { + pub cValues: u32, + pub lpRes: *mut SRestriction, + pub lpProp: *mut SPropValue, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SCommentRestriction {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SCommentRestriction { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SComparePropsRestriction { + pub relop: u32, + pub ulPropTag1: u32, + pub ulPropTag2: u32, +} +impl ::core::marker::Copy for SComparePropsRestriction {} +impl ::core::clone::Clone for SComparePropsRestriction { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SContentRestriction { + pub ulFuzzyLevel: u32, + pub ulPropTag: u32, + pub lpProp: *mut SPropValue, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SContentRestriction {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SContentRestriction { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct SCurrencyArray { + pub cValues: u32, + pub lpcur: *mut super::Com::CY, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for SCurrencyArray {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for SCurrencyArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SDateTimeArray { + pub cValues: u32, + pub lpft: *mut super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SDateTimeArray {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SDateTimeArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SDoubleArray { + pub cValues: u32, + pub lpdbl: *mut f64, +} +impl ::core::marker::Copy for SDoubleArray {} +impl ::core::clone::Clone for SDoubleArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SExistRestriction { + pub ulReserved1: u32, + pub ulPropTag: u32, + pub ulReserved2: u32, +} +impl ::core::marker::Copy for SExistRestriction {} +impl ::core::clone::Clone for SExistRestriction { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SGuidArray { + pub cValues: u32, + pub lpguid: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for SGuidArray {} +impl ::core::clone::Clone for SGuidArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SLPSTRArray { + pub cValues: u32, + pub lppszA: *mut ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for SLPSTRArray {} +impl ::core::clone::Clone for SLPSTRArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SLargeIntegerArray { + pub cValues: u32, + pub lpli: *mut i64, +} +impl ::core::marker::Copy for SLargeIntegerArray {} +impl ::core::clone::Clone for SLargeIntegerArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SLongArray { + pub cValues: u32, + pub lpl: *mut i32, +} +impl ::core::marker::Copy for SLongArray {} +impl ::core::clone::Clone for SLongArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SNotRestriction { + pub ulReserved: u32, + pub lpRes: *mut SRestriction, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SNotRestriction {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SNotRestriction { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SOrRestriction { + pub cRes: u32, + pub lpRes: *mut SRestriction, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SOrRestriction {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SOrRestriction { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SPropProblem { + pub ulIndex: u32, + pub ulPropTag: u32, + pub scode: i32, +} +impl ::core::marker::Copy for SPropProblem {} +impl ::core::clone::Clone for SPropProblem { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SPropProblemArray { + pub cProblem: u32, + pub aProblem: [SPropProblem; 1], +} +impl ::core::marker::Copy for SPropProblemArray {} +impl ::core::clone::Clone for SPropProblemArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SPropTagArray { + pub cValues: u32, + pub aulPropTag: [u32; 1], +} +impl ::core::marker::Copy for SPropTagArray {} +impl ::core::clone::Clone for SPropTagArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SPropValue { + pub ulPropTag: u32, + pub dwAlignPad: u32, + pub Value: __UPV, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SPropValue {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SPropValue { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SPropertyRestriction { + pub relop: u32, + pub ulPropTag: u32, + pub lpProp: *mut SPropValue, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SPropertyRestriction {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SPropertyRestriction { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SRealArray { + pub cValues: u32, + pub lpflt: *mut f32, +} +impl ::core::marker::Copy for SRealArray {} +impl ::core::clone::Clone for SRealArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SRestriction { + pub rt: u32, + pub res: SRestriction_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SRestriction {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SRestriction { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub union SRestriction_0 { + pub resCompareProps: SComparePropsRestriction, + pub resAnd: SAndRestriction, + pub resOr: SOrRestriction, + pub resNot: SNotRestriction, + pub resContent: SContentRestriction, + pub resProperty: SPropertyRestriction, + pub resBitMask: SBitMaskRestriction, + pub resSize: SSizeRestriction, + pub resExist: SExistRestriction, + pub resSub: SSubRestriction, + pub resComment: SCommentRestriction, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SRestriction_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SRestriction_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SRow { + pub ulAdrEntryPad: u32, + pub cValues: u32, + pub lpProps: *mut SPropValue, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SRow {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SRow { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SRowSet { + pub cRows: u32, + pub aRow: [SRow; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SRowSet {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SRowSet { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SShortArray { + pub cValues: u32, + pub lpi: *mut i16, +} +impl ::core::marker::Copy for SShortArray {} +impl ::core::clone::Clone for SShortArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SSizeRestriction { + pub relop: u32, + pub ulPropTag: u32, + pub cb: u32, +} +impl ::core::marker::Copy for SSizeRestriction {} +impl ::core::clone::Clone for SSizeRestriction { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SSortOrder { + pub ulPropTag: u32, + pub ulOrder: u32, +} +impl ::core::marker::Copy for SSortOrder {} +impl ::core::clone::Clone for SSortOrder { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SSortOrderSet { + pub cSorts: u32, + pub cCategories: u32, + pub cExpanded: u32, + pub aSort: [SSortOrder; 1], +} +impl ::core::marker::Copy for SSortOrderSet {} +impl ::core::clone::Clone for SSortOrderSet { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SSubRestriction { + pub ulSubObject: u32, + pub lpRes: *mut SRestriction, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SSubRestriction {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SSubRestriction { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct STATUS_OBJECT_NOTIFICATION { + pub cbEntryID: u32, + pub lpEntryID: *mut ENTRYID, + pub cValues: u32, + pub lpPropVals: *mut SPropValue, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for STATUS_OBJECT_NOTIFICATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for STATUS_OBJECT_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SWStringArray { + pub cValues: u32, + pub lppszW: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SWStringArray {} +impl ::core::clone::Clone for SWStringArray { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct TABLE_NOTIFICATION { + pub ulTableEvent: u32, + pub hResult: ::windows_sys::core::HRESULT, + pub propIndex: SPropValue, + pub propPrior: SPropValue, + pub row: SRow, + pub ulPad: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for TABLE_NOTIFICATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for TABLE_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WABEXTDISPLAY { + pub cbSize: u32, + pub lpWABObject: IWABObject, + pub lpAdrBook: IAddrBook, + pub lpPropObj: IMAPIProp, + pub fReadOnly: super::super::Foundation::BOOL, + pub fDataChanged: super::super::Foundation::BOOL, + pub ulFlags: u32, + pub lpv: *mut ::core::ffi::c_void, + pub lpsz: *mut i8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WABEXTDISPLAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WABEXTDISPLAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WABIMPORTPARAM { + pub cbSize: u32, + pub lpAdrBook: IAddrBook, + pub hWnd: super::super::Foundation::HWND, + pub ulFlags: u32, + pub lpszFileName: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WABIMPORTPARAM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WABIMPORTPARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WAB_PARAM { + pub cbSize: u32, + pub hwnd: super::super::Foundation::HWND, + pub szFileName: ::windows_sys::core::PSTR, + pub ulFlags: u32, + pub guidPSExt: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WAB_PARAM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WAB_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub union __UPV { + pub i: i16, + pub l: i32, + pub ul: u32, + pub flt: f32, + pub dbl: f64, + pub b: u16, + pub cur: super::Com::CY, + pub at: f64, + pub ft: super::super::Foundation::FILETIME, + pub lpszA: ::windows_sys::core::PSTR, + pub bin: SBinary, + pub lpszW: ::windows_sys::core::PWSTR, + pub lpguid: *mut ::windows_sys::core::GUID, + pub li: i64, + pub MVi: SShortArray, + pub MVl: SLongArray, + pub MVflt: SRealArray, + pub MVdbl: SDoubleArray, + pub MVcur: SCurrencyArray, + pub MVat: SAppTimeArray, + pub MVft: SDateTimeArray, + pub MVbin: SBinaryArray, + pub MVszA: SLPSTRArray, + pub MVszW: SWStringArray, + pub MVguid: SGuidArray, + pub MVli: SLargeIntegerArray, + pub err: i32, + pub x: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for __UPV {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for __UPV { + fn clone(&self) -> Self { + *self + } +} +pub type CALLERRELEASE = ::core::option::Option ()>; +pub type LPALLOCATEBUFFER = ::core::option::Option i32>; +pub type LPALLOCATEMORE = ::core::option::Option i32>; +pub type LPCREATECONVERSATIONINDEX = ::core::option::Option i32>; +pub type LPDISPATCHNOTIFICATIONS = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFNABSDI = ::core::option::Option super::super::Foundation::BOOL>; +pub type LPFNBUTTON = ::core::option::Option i32>; +pub type LPFNDISMISS = ::core::option::Option ()>; +pub type LPFREEBUFFER = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub type LPNOTIFCALLBACK = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub type LPOPENSTREAMONFILE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type LPWABALLOCATEBUFFER = ::core::option::Option i32>; +pub type LPWABALLOCATEMORE = ::core::option::Option i32>; +pub type LPWABFREEBUFFER = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWABOPEN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPWABOPENEX = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNIDLE = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Antimalware/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Antimalware/mod.rs new file mode 100644 index 000000000..a626f2ffa --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Antimalware/mod.rs @@ -0,0 +1,162 @@ +::windows_targets::link!("amsi.dll" "system" fn AmsiCloseSession(amsicontext : HAMSICONTEXT, amsisession : HAMSISESSION) -> ()); +::windows_targets::link!("amsi.dll" "system" fn AmsiInitialize(appname : ::windows_sys::core::PCWSTR, amsicontext : *mut HAMSICONTEXT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("amsi.dll" "system" fn AmsiNotifyOperation(amsicontext : HAMSICONTEXT, buffer : *const ::core::ffi::c_void, length : u32, contentname : ::windows_sys::core::PCWSTR, result : *mut AMSI_RESULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("amsi.dll" "system" fn AmsiOpenSession(amsicontext : HAMSICONTEXT, amsisession : *mut HAMSISESSION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("amsi.dll" "system" fn AmsiScanBuffer(amsicontext : HAMSICONTEXT, buffer : *const ::core::ffi::c_void, length : u32, contentname : ::windows_sys::core::PCWSTR, amsisession : HAMSISESSION, result : *mut AMSI_RESULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("amsi.dll" "system" fn AmsiScanString(amsicontext : HAMSICONTEXT, string : ::windows_sys::core::PCWSTR, contentname : ::windows_sys::core::PCWSTR, amsisession : HAMSISESSION, result : *mut AMSI_RESULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("amsi.dll" "system" fn AmsiUninitialize(amsicontext : HAMSICONTEXT) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InstallELAMCertificateInfo(elamfile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +pub type IAmsiStream = *mut ::core::ffi::c_void; +pub type IAntimalware = *mut ::core::ffi::c_void; +pub type IAntimalware2 = *mut ::core::ffi::c_void; +pub type IAntimalwareProvider = *mut ::core::ffi::c_void; +pub type IAntimalwareProvider2 = *mut ::core::ffi::c_void; +pub type IAntimalwareUacProvider = *mut ::core::ffi::c_void; +pub const AMSI_ATTRIBUTE_ALL_ADDRESS: AMSI_ATTRIBUTE = 8i32; +pub const AMSI_ATTRIBUTE_ALL_SIZE: AMSI_ATTRIBUTE = 7i32; +pub const AMSI_ATTRIBUTE_APP_NAME: AMSI_ATTRIBUTE = 0i32; +pub const AMSI_ATTRIBUTE_CONTENT_ADDRESS: AMSI_ATTRIBUTE = 3i32; +pub const AMSI_ATTRIBUTE_CONTENT_NAME: AMSI_ATTRIBUTE = 1i32; +pub const AMSI_ATTRIBUTE_CONTENT_SIZE: AMSI_ATTRIBUTE = 2i32; +pub const AMSI_ATTRIBUTE_QUIET: AMSI_ATTRIBUTE = 9i32; +pub const AMSI_ATTRIBUTE_REDIRECT_CHAIN_ADDRESS: AMSI_ATTRIBUTE = 6i32; +pub const AMSI_ATTRIBUTE_REDIRECT_CHAIN_SIZE: AMSI_ATTRIBUTE = 5i32; +pub const AMSI_ATTRIBUTE_SESSION: AMSI_ATTRIBUTE = 4i32; +pub const AMSI_RESULT_BLOCKED_BY_ADMIN_END: AMSI_RESULT = 20479i32; +pub const AMSI_RESULT_BLOCKED_BY_ADMIN_START: AMSI_RESULT = 16384i32; +pub const AMSI_RESULT_CLEAN: AMSI_RESULT = 0i32; +pub const AMSI_RESULT_DETECTED: AMSI_RESULT = 32768i32; +pub const AMSI_RESULT_NOT_DETECTED: AMSI_RESULT = 1i32; +pub const AMSI_UAC_MSI_ACTION_INSTALL: AMSI_UAC_MSI_ACTION = 0i32; +pub const AMSI_UAC_MSI_ACTION_MAINTENANCE: AMSI_UAC_MSI_ACTION = 3i32; +pub const AMSI_UAC_MSI_ACTION_MAX: AMSI_UAC_MSI_ACTION = 4i32; +pub const AMSI_UAC_MSI_ACTION_UNINSTALL: AMSI_UAC_MSI_ACTION = 1i32; +pub const AMSI_UAC_MSI_ACTION_UPDATE: AMSI_UAC_MSI_ACTION = 2i32; +pub const AMSI_UAC_REQUEST_TYPE_AX: AMSI_UAC_REQUEST_TYPE = 3i32; +pub const AMSI_UAC_REQUEST_TYPE_COM: AMSI_UAC_REQUEST_TYPE = 1i32; +pub const AMSI_UAC_REQUEST_TYPE_EXE: AMSI_UAC_REQUEST_TYPE = 0i32; +pub const AMSI_UAC_REQUEST_TYPE_MAX: AMSI_UAC_REQUEST_TYPE = 5i32; +pub const AMSI_UAC_REQUEST_TYPE_MSI: AMSI_UAC_REQUEST_TYPE = 2i32; +pub const AMSI_UAC_REQUEST_TYPE_PACKAGED_APP: AMSI_UAC_REQUEST_TYPE = 4i32; +pub const AMSI_UAC_TRUST_STATE_BLOCKED: AMSI_UAC_TRUST_STATE = 2i32; +pub const AMSI_UAC_TRUST_STATE_MAX: AMSI_UAC_TRUST_STATE = 3i32; +pub const AMSI_UAC_TRUST_STATE_TRUSTED: AMSI_UAC_TRUST_STATE = 0i32; +pub const AMSI_UAC_TRUST_STATE_UNTRUSTED: AMSI_UAC_TRUST_STATE = 1i32; +pub const CAntimalware: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfdb00e52_a214_4aa1_8fba_4357bb0072ec); +pub type AMSI_ATTRIBUTE = i32; +pub type AMSI_RESULT = i32; +pub type AMSI_UAC_MSI_ACTION = i32; +pub type AMSI_UAC_REQUEST_TYPE = i32; +pub type AMSI_UAC_TRUST_STATE = i32; +#[repr(C)] +pub struct AMSI_UAC_REQUEST_AX_INFO { + pub ulLength: u32, + pub lpwszLocalInstallPath: ::windows_sys::core::PWSTR, + pub lpwszSourceURL: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for AMSI_UAC_REQUEST_AX_INFO {} +impl ::core::clone::Clone for AMSI_UAC_REQUEST_AX_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AMSI_UAC_REQUEST_COM_INFO { + pub ulLength: u32, + pub lpwszServerBinary: ::windows_sys::core::PWSTR, + pub lpwszRequestor: ::windows_sys::core::PWSTR, + pub Clsid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for AMSI_UAC_REQUEST_COM_INFO {} +impl ::core::clone::Clone for AMSI_UAC_REQUEST_COM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AMSI_UAC_REQUEST_CONTEXT { + pub ulLength: u32, + pub ulRequestorProcessId: u32, + pub UACTrustState: AMSI_UAC_TRUST_STATE, + pub Type: AMSI_UAC_REQUEST_TYPE, + pub RequestType: AMSI_UAC_REQUEST_CONTEXT_0, + pub bAutoElevateRequest: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AMSI_UAC_REQUEST_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AMSI_UAC_REQUEST_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union AMSI_UAC_REQUEST_CONTEXT_0 { + pub ExeInfo: AMSI_UAC_REQUEST_EXE_INFO, + pub ComInfo: AMSI_UAC_REQUEST_COM_INFO, + pub MsiInfo: AMSI_UAC_REQUEST_MSI_INFO, + pub ActiveXInfo: AMSI_UAC_REQUEST_AX_INFO, + pub PackagedAppInfo: AMSI_UAC_REQUEST_PACKAGED_APP_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AMSI_UAC_REQUEST_CONTEXT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AMSI_UAC_REQUEST_CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AMSI_UAC_REQUEST_EXE_INFO { + pub ulLength: u32, + pub lpwszApplicationName: ::windows_sys::core::PWSTR, + pub lpwszCommandLine: ::windows_sys::core::PWSTR, + pub lpwszDLLParameter: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for AMSI_UAC_REQUEST_EXE_INFO {} +impl ::core::clone::Clone for AMSI_UAC_REQUEST_EXE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AMSI_UAC_REQUEST_MSI_INFO { + pub ulLength: u32, + pub MsiAction: AMSI_UAC_MSI_ACTION, + pub lpwszProductName: ::windows_sys::core::PWSTR, + pub lpwszVersion: ::windows_sys::core::PWSTR, + pub lpwszLanguage: ::windows_sys::core::PWSTR, + pub lpwszManufacturer: ::windows_sys::core::PWSTR, + pub lpwszPackagePath: ::windows_sys::core::PWSTR, + pub lpwszPackageSource: ::windows_sys::core::PWSTR, + pub ulUpdates: u32, + pub ppwszUpdates: *mut ::windows_sys::core::PWSTR, + pub ppwszUpdateSources: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for AMSI_UAC_REQUEST_MSI_INFO {} +impl ::core::clone::Clone for AMSI_UAC_REQUEST_MSI_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AMSI_UAC_REQUEST_PACKAGED_APP_INFO { + pub ulLength: u32, + pub lpwszApplicationName: ::windows_sys::core::PWSTR, + pub lpwszCommandLine: ::windows_sys::core::PWSTR, + pub lpPackageFamilyName: ::windows_sys::core::PWSTR, + pub lpApplicationId: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for AMSI_UAC_REQUEST_PACKAGED_APP_INFO {} +impl ::core::clone::Clone for AMSI_UAC_REQUEST_PACKAGED_APP_INFO { + fn clone(&self) -> Self { + *self + } +} +pub type HAMSICONTEXT = isize; +pub type HAMSISESSION = isize; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/ApplicationInstallationAndServicing/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/ApplicationInstallationAndServicing/mod.rs new file mode 100644 index 000000000..273a0872a --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/ApplicationInstallationAndServicing/mod.rs @@ -0,0 +1,2520 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ActivateActCtx(hactctx : super::super::Foundation:: HANDLE, lpcookie : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddRefActCtx(hactctx : super::super::Foundation:: HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplyDeltaA(applyflags : i64, lpsourcename : ::windows_sys::core::PCSTR, lpdeltaname : ::windows_sys::core::PCSTR, lptargetname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplyDeltaB(applyflags : i64, source : DELTA_INPUT, delta : DELTA_INPUT, lptarget : *mut DELTA_OUTPUT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplyDeltaGetReverseB(applyflags : i64, source : DELTA_INPUT, delta : DELTA_INPUT, lpreversefiletime : *const super::super::Foundation:: FILETIME, lptarget : *mut DELTA_OUTPUT, lptargetreverse : *mut DELTA_OUTPUT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplyDeltaProvidedB(applyflags : i64, source : DELTA_INPUT, delta : DELTA_INPUT, lptarget : *mut ::core::ffi::c_void, utargetsize : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplyDeltaW(applyflags : i64, lpsourcename : ::windows_sys::core::PCWSTR, lpdeltaname : ::windows_sys::core::PCWSTR, lptargetname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplyPatchToFileA(patchfilename : ::windows_sys::core::PCSTR, oldfilename : ::windows_sys::core::PCSTR, newfilename : ::windows_sys::core::PCSTR, applyoptionflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplyPatchToFileByBuffers(patchfilemapped : *const u8, patchfilesize : u32, oldfilemapped : *const u8, oldfilesize : u32, newfilebuffer : *mut *mut u8, newfilebuffersize : u32, newfileactualsize : *mut u32, newfiletime : *mut super::super::Foundation:: FILETIME, applyoptionflags : u32, progresscallback : PPATCH_PROGRESS_CALLBACK, callbackcontext : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplyPatchToFileByHandles(patchfilehandle : super::super::Foundation:: HANDLE, oldfilehandle : super::super::Foundation:: HANDLE, newfilehandle : super::super::Foundation:: HANDLE, applyoptionflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplyPatchToFileByHandlesEx(patchfilehandle : super::super::Foundation:: HANDLE, oldfilehandle : super::super::Foundation:: HANDLE, newfilehandle : super::super::Foundation:: HANDLE, applyoptionflags : u32, progresscallback : PPATCH_PROGRESS_CALLBACK, callbackcontext : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplyPatchToFileExA(patchfilename : ::windows_sys::core::PCSTR, oldfilename : ::windows_sys::core::PCSTR, newfilename : ::windows_sys::core::PCSTR, applyoptionflags : u32, progresscallback : PPATCH_PROGRESS_CALLBACK, callbackcontext : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplyPatchToFileExW(patchfilename : ::windows_sys::core::PCWSTR, oldfilename : ::windows_sys::core::PCWSTR, newfilename : ::windows_sys::core::PCWSTR, applyoptionflags : u32, progresscallback : PPATCH_PROGRESS_CALLBACK, callbackcontext : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplyPatchToFileW(patchfilename : ::windows_sys::core::PCWSTR, oldfilename : ::windows_sys::core::PCWSTR, newfilename : ::windows_sys::core::PCWSTR, applyoptionflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateActCtxA(pactctx : *const ACTCTXA) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateActCtxW(pactctx : *const ACTCTXW) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn CreateDeltaA(filetypeset : i64, setflags : i64, resetflags : i64, lpsourcename : ::windows_sys::core::PCSTR, lptargetname : ::windows_sys::core::PCSTR, lpsourceoptionsname : ::windows_sys::core::PCSTR, lptargetoptionsname : ::windows_sys::core::PCSTR, globaloptions : DELTA_INPUT, lptargetfiletime : *const super::super::Foundation:: FILETIME, hashalgid : super::super::Security::Cryptography:: ALG_ID, lpdeltaname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn CreateDeltaB(filetypeset : i64, setflags : i64, resetflags : i64, source : DELTA_INPUT, target : DELTA_INPUT, sourceoptions : DELTA_INPUT, targetoptions : DELTA_INPUT, globaloptions : DELTA_INPUT, lptargetfiletime : *const super::super::Foundation:: FILETIME, hashalgid : super::super::Security::Cryptography:: ALG_ID, lpdelta : *mut DELTA_OUTPUT) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn CreateDeltaW(filetypeset : i64, setflags : i64, resetflags : i64, lpsourcename : ::windows_sys::core::PCWSTR, lptargetname : ::windows_sys::core::PCWSTR, lpsourceoptionsname : ::windows_sys::core::PCWSTR, lptargetoptionsname : ::windows_sys::core::PCWSTR, globaloptions : DELTA_INPUT, lptargetfiletime : *const super::super::Foundation:: FILETIME, hashalgid : super::super::Security::Cryptography:: ALG_ID, lpdeltaname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatchc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePatchFileA(oldfilename : ::windows_sys::core::PCSTR, newfilename : ::windows_sys::core::PCSTR, patchfilename : ::windows_sys::core::PCSTR, optionflags : u32, optiondata : *const PATCH_OPTION_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatchc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePatchFileByHandles(oldfilehandle : super::super::Foundation:: HANDLE, newfilehandle : super::super::Foundation:: HANDLE, patchfilehandle : super::super::Foundation:: HANDLE, optionflags : u32, optiondata : *const PATCH_OPTION_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatchc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePatchFileByHandlesEx(oldfilecount : u32, oldfileinfoarray : *const PATCH_OLD_FILE_INFO_H, newfilehandle : super::super::Foundation:: HANDLE, patchfilehandle : super::super::Foundation:: HANDLE, optionflags : u32, optiondata : *const PATCH_OPTION_DATA, progresscallback : PPATCH_PROGRESS_CALLBACK, callbackcontext : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatchc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePatchFileExA(oldfilecount : u32, oldfileinfoarray : *const PATCH_OLD_FILE_INFO_A, newfilename : ::windows_sys::core::PCSTR, patchfilename : ::windows_sys::core::PCSTR, optionflags : u32, optiondata : *const PATCH_OPTION_DATA, progresscallback : PPATCH_PROGRESS_CALLBACK, callbackcontext : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatchc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePatchFileExW(oldfilecount : u32, oldfileinfoarray : *const PATCH_OLD_FILE_INFO_W, newfilename : ::windows_sys::core::PCWSTR, patchfilename : ::windows_sys::core::PCWSTR, optionflags : u32, optiondata : *const PATCH_OPTION_DATA, progresscallback : PPATCH_PROGRESS_CALLBACK, callbackcontext : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatchc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePatchFileW(oldfilename : ::windows_sys::core::PCWSTR, newfilename : ::windows_sys::core::PCWSTR, patchfilename : ::windows_sys::core::PCWSTR, optionflags : u32, optiondata : *const PATCH_OPTION_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeactivateActCtx(dwflags : u32, ulcookie : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeltaFree(lpmemory : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeltaNormalizeProvidedB(filetypeset : i64, normalizeflags : i64, normalizeoptions : DELTA_INPUT, lpsource : *mut ::core::ffi::c_void, usourcesize : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatchc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExtractPatchHeaderToFileA(patchfilename : ::windows_sys::core::PCSTR, patchheaderfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatchc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExtractPatchHeaderToFileByHandles(patchfilehandle : super::super::Foundation:: HANDLE, patchheaderfilehandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatchc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExtractPatchHeaderToFileW(patchfilename : ::windows_sys::core::PCWSTR, patchheaderfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] fn FindActCtxSectionGuid(dwflags : u32, lpextensionguid : *const ::windows_sys::core::GUID, ulsectionid : u32, lpguidtofind : *const ::windows_sys::core::GUID, returneddata : *mut ACTCTX_SECTION_KEYED_DATA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] fn FindActCtxSectionStringA(dwflags : u32, lpextensionguid : *const ::windows_sys::core::GUID, ulsectionid : u32, lpstringtofind : ::windows_sys::core::PCSTR, returneddata : *mut ACTCTX_SECTION_KEYED_DATA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] fn FindActCtxSectionStringW(dwflags : u32, lpextensionguid : *const ::windows_sys::core::GUID, ulsectionid : u32, lpstringtofind : ::windows_sys::core::PCWSTR, returneddata : *mut ACTCTX_SECTION_KEYED_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentActCtx(lphactctx : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn GetDeltaInfoA(lpdeltaname : ::windows_sys::core::PCSTR, lpheaderinfo : *mut DELTA_HEADER_INFO) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn GetDeltaInfoB(delta : DELTA_INPUT, lpheaderinfo : *mut DELTA_HEADER_INFO) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn GetDeltaInfoW(lpdeltaname : ::windows_sys::core::PCWSTR, lpheaderinfo : *mut DELTA_HEADER_INFO) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn GetDeltaSignatureA(filetypeset : i64, hashalgid : super::super::Security::Cryptography:: ALG_ID, lpsourcename : ::windows_sys::core::PCSTR, lphash : *mut DELTA_HASH) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn GetDeltaSignatureB(filetypeset : i64, hashalgid : super::super::Security::Cryptography:: ALG_ID, source : DELTA_INPUT, lphash : *mut DELTA_HASH) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("msdelta.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn GetDeltaSignatureW(filetypeset : i64, hashalgid : super::super::Security::Cryptography:: ALG_ID, lpsourcename : ::windows_sys::core::PCWSTR, lphash : *mut DELTA_HASH) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFilePatchSignatureA(filename : ::windows_sys::core::PCSTR, optionflags : u32, optiondata : *const ::core::ffi::c_void, ignorerangecount : u32, ignorerangearray : *const PATCH_IGNORE_RANGE, retainrangecount : u32, retainrangearray : *const PATCH_RETAIN_RANGE, signaturebuffersize : u32, signaturebuffer : ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFilePatchSignatureByBuffer(filebufferwritable : *mut u8, filesize : u32, optionflags : u32, optiondata : *const ::core::ffi::c_void, ignorerangecount : u32, ignorerangearray : *const PATCH_IGNORE_RANGE, retainrangecount : u32, retainrangearray : *const PATCH_RETAIN_RANGE, signaturebuffersize : u32, signaturebuffer : ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFilePatchSignatureByHandle(filehandle : super::super::Foundation:: HANDLE, optionflags : u32, optiondata : *const ::core::ffi::c_void, ignorerangecount : u32, ignorerangearray : *const PATCH_IGNORE_RANGE, retainrangecount : u32, retainrangearray : *const PATCH_RETAIN_RANGE, signaturebuffersize : u32, signaturebuffer : ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFilePatchSignatureW(filename : ::windows_sys::core::PCWSTR, optionflags : u32, optiondata : *const ::core::ffi::c_void, ignorerangecount : u32, ignorerangearray : *const PATCH_IGNORE_RANGE, retainrangecount : u32, retainrangearray : *const PATCH_RETAIN_RANGE, signaturebuffersize : u32, signaturebuffer : ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("msi.dll" "system" fn MsiAdvertiseProductA(szpackagepath : ::windows_sys::core::PCSTR, szscriptfilepath : ::windows_sys::core::PCSTR, sztransforms : ::windows_sys::core::PCSTR, lgidlanguage : u16) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiAdvertiseProductExA(szpackagepath : ::windows_sys::core::PCSTR, szscriptfilepath : ::windows_sys::core::PCSTR, sztransforms : ::windows_sys::core::PCSTR, lgidlanguage : u16, dwplatform : u32, dwoptions : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiAdvertiseProductExW(szpackagepath : ::windows_sys::core::PCWSTR, szscriptfilepath : ::windows_sys::core::PCWSTR, sztransforms : ::windows_sys::core::PCWSTR, lgidlanguage : u16, dwplatform : u32, dwoptions : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiAdvertiseProductW(szpackagepath : ::windows_sys::core::PCWSTR, szscriptfilepath : ::windows_sys::core::PCWSTR, sztransforms : ::windows_sys::core::PCWSTR, lgidlanguage : u16) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn MsiAdvertiseScriptA(szscriptfile : ::windows_sys::core::PCSTR, dwflags : u32, phregdata : *const super::Registry:: HKEY, fremoveitems : super::super::Foundation:: BOOL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn MsiAdvertiseScriptW(szscriptfile : ::windows_sys::core::PCWSTR, dwflags : u32, phregdata : *const super::Registry:: HKEY, fremoveitems : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiApplyMultiplePatchesA(szpatchpackages : ::windows_sys::core::PCSTR, szproductcode : ::windows_sys::core::PCSTR, szpropertieslist : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiApplyMultiplePatchesW(szpatchpackages : ::windows_sys::core::PCWSTR, szproductcode : ::windows_sys::core::PCWSTR, szpropertieslist : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiApplyPatchA(szpatchpackage : ::windows_sys::core::PCSTR, szinstallpackage : ::windows_sys::core::PCSTR, einstalltype : INSTALLTYPE, szcommandline : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiApplyPatchW(szpatchpackage : ::windows_sys::core::PCWSTR, szinstallpackage : ::windows_sys::core::PCWSTR, einstalltype : INSTALLTYPE, szcommandline : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsiBeginTransactionA(szname : ::windows_sys::core::PCSTR, dwtransactionattributes : u32, phtransactionhandle : *mut MSIHANDLE, phchangeofownerevent : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsiBeginTransactionW(szname : ::windows_sys::core::PCWSTR, dwtransactionattributes : u32, phtransactionhandle : *mut MSIHANDLE, phchangeofownerevent : *mut super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiCloseAllHandles() -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiCloseHandle(hany : MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiCollectUserInfoA(szproduct : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiCollectUserInfoW(szproduct : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiConfigureFeatureA(szproduct : ::windows_sys::core::PCSTR, szfeature : ::windows_sys::core::PCSTR, einstallstate : INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiConfigureFeatureW(szproduct : ::windows_sys::core::PCWSTR, szfeature : ::windows_sys::core::PCWSTR, einstallstate : INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiConfigureProductA(szproduct : ::windows_sys::core::PCSTR, iinstalllevel : INSTALLLEVEL, einstallstate : INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiConfigureProductExA(szproduct : ::windows_sys::core::PCSTR, iinstalllevel : INSTALLLEVEL, einstallstate : INSTALLSTATE, szcommandline : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiConfigureProductExW(szproduct : ::windows_sys::core::PCWSTR, iinstalllevel : INSTALLLEVEL, einstallstate : INSTALLSTATE, szcommandline : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiConfigureProductW(szproduct : ::windows_sys::core::PCWSTR, iinstalllevel : INSTALLLEVEL, einstallstate : INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiCreateRecord(cparams : u32) -> MSIHANDLE); +::windows_targets::link!("msi.dll" "system" fn MsiCreateTransformSummaryInfoA(hdatabase : MSIHANDLE, hdatabasereference : MSIHANDLE, sztransformfile : ::windows_sys::core::PCSTR, ierrorconditions : MSITRANSFORM_ERROR, ivalidation : MSITRANSFORM_VALIDATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiCreateTransformSummaryInfoW(hdatabase : MSIHANDLE, hdatabasereference : MSIHANDLE, sztransformfile : ::windows_sys::core::PCWSTR, ierrorconditions : MSITRANSFORM_ERROR, ivalidation : MSITRANSFORM_VALIDATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseApplyTransformA(hdatabase : MSIHANDLE, sztransformfile : ::windows_sys::core::PCSTR, ierrorconditions : MSITRANSFORM_ERROR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseApplyTransformW(hdatabase : MSIHANDLE, sztransformfile : ::windows_sys::core::PCWSTR, ierrorconditions : MSITRANSFORM_ERROR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseCommit(hdatabase : MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseExportA(hdatabase : MSIHANDLE, sztablename : ::windows_sys::core::PCSTR, szfolderpath : ::windows_sys::core::PCSTR, szfilename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseExportW(hdatabase : MSIHANDLE, sztablename : ::windows_sys::core::PCWSTR, szfolderpath : ::windows_sys::core::PCWSTR, szfilename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseGenerateTransformA(hdatabase : MSIHANDLE, hdatabasereference : MSIHANDLE, sztransformfile : ::windows_sys::core::PCSTR, ireserved1 : i32, ireserved2 : i32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseGenerateTransformW(hdatabase : MSIHANDLE, hdatabasereference : MSIHANDLE, sztransformfile : ::windows_sys::core::PCWSTR, ireserved1 : i32, ireserved2 : i32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseGetPrimaryKeysA(hdatabase : MSIHANDLE, sztablename : ::windows_sys::core::PCSTR, phrecord : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseGetPrimaryKeysW(hdatabase : MSIHANDLE, sztablename : ::windows_sys::core::PCWSTR, phrecord : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseImportA(hdatabase : MSIHANDLE, szfolderpath : ::windows_sys::core::PCSTR, szfilename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseImportW(hdatabase : MSIHANDLE, szfolderpath : ::windows_sys::core::PCWSTR, szfilename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseIsTablePersistentA(hdatabase : MSIHANDLE, sztablename : ::windows_sys::core::PCSTR) -> MSICONDITION); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseIsTablePersistentW(hdatabase : MSIHANDLE, sztablename : ::windows_sys::core::PCWSTR) -> MSICONDITION); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseMergeA(hdatabase : MSIHANDLE, hdatabasemerge : MSIHANDLE, sztablename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseMergeW(hdatabase : MSIHANDLE, hdatabasemerge : MSIHANDLE, sztablename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseOpenViewA(hdatabase : MSIHANDLE, szquery : ::windows_sys::core::PCSTR, phview : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDatabaseOpenViewW(hdatabase : MSIHANDLE, szquery : ::windows_sys::core::PCWSTR, phview : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDetermineApplicablePatchesA(szproductpackagepath : ::windows_sys::core::PCSTR, cpatchinfo : u32, ppatchinfo : *mut MSIPATCHSEQUENCEINFOA) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDetermineApplicablePatchesW(szproductpackagepath : ::windows_sys::core::PCWSTR, cpatchinfo : u32, ppatchinfo : *mut MSIPATCHSEQUENCEINFOW) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDeterminePatchSequenceA(szproductcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, cpatchinfo : u32, ppatchinfo : *mut MSIPATCHSEQUENCEINFOA) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDeterminePatchSequenceW(szproductcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, cpatchinfo : u32, ppatchinfo : *mut MSIPATCHSEQUENCEINFOW) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDoActionA(hinstall : MSIHANDLE, szaction : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiDoActionW(hinstall : MSIHANDLE, szaction : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnableLogA(dwlogmode : u32, szlogfile : ::windows_sys::core::PCSTR, dwlogattributes : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnableLogW(dwlogmode : u32, szlogfile : ::windows_sys::core::PCWSTR, dwlogattributes : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnableUIPreview(hdatabase : MSIHANDLE, phpreview : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEndTransaction(dwtransactionstate : MSITRANSACTIONSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumClientsA(szcomponent : ::windows_sys::core::PCSTR, iproductindex : u32, lpproductbuf : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumClientsExA(szcomponent : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : u32, dwproductindex : u32, szproductbuf : ::windows_sys::core::PSTR, pdwinstalledcontext : *mut MSIINSTALLCONTEXT, szsid : ::windows_sys::core::PSTR, pcchsid : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumClientsExW(szcomponent : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : u32, dwproductindex : u32, szproductbuf : ::windows_sys::core::PWSTR, pdwinstalledcontext : *mut MSIINSTALLCONTEXT, szsid : ::windows_sys::core::PWSTR, pcchsid : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumClientsW(szcomponent : ::windows_sys::core::PCWSTR, iproductindex : u32, lpproductbuf : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumComponentCostsA(hinstall : MSIHANDLE, szcomponent : ::windows_sys::core::PCSTR, dwindex : u32, istate : INSTALLSTATE, szdrivebuf : ::windows_sys::core::PSTR, pcchdrivebuf : *mut u32, picost : *mut i32, pitempcost : *mut i32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumComponentCostsW(hinstall : MSIHANDLE, szcomponent : ::windows_sys::core::PCWSTR, dwindex : u32, istate : INSTALLSTATE, szdrivebuf : ::windows_sys::core::PWSTR, pcchdrivebuf : *mut u32, picost : *mut i32, pitempcost : *mut i32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumComponentQualifiersA(szcomponent : ::windows_sys::core::PCSTR, iindex : u32, lpqualifierbuf : ::windows_sys::core::PSTR, pcchqualifierbuf : *mut u32, lpapplicationdatabuf : ::windows_sys::core::PSTR, pcchapplicationdatabuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumComponentQualifiersW(szcomponent : ::windows_sys::core::PCWSTR, iindex : u32, lpqualifierbuf : ::windows_sys::core::PWSTR, pcchqualifierbuf : *mut u32, lpapplicationdatabuf : ::windows_sys::core::PWSTR, pcchapplicationdatabuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumComponentsA(icomponentindex : u32, lpcomponentbuf : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumComponentsExA(szusersid : ::windows_sys::core::PCSTR, dwcontext : u32, dwindex : u32, szinstalledcomponentcode : ::windows_sys::core::PSTR, pdwinstalledcontext : *mut MSIINSTALLCONTEXT, szsid : ::windows_sys::core::PSTR, pcchsid : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumComponentsExW(szusersid : ::windows_sys::core::PCWSTR, dwcontext : u32, dwindex : u32, szinstalledcomponentcode : ::windows_sys::core::PWSTR, pdwinstalledcontext : *mut MSIINSTALLCONTEXT, szsid : ::windows_sys::core::PWSTR, pcchsid : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumComponentsW(icomponentindex : u32, lpcomponentbuf : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumFeaturesA(szproduct : ::windows_sys::core::PCSTR, ifeatureindex : u32, lpfeaturebuf : ::windows_sys::core::PSTR, lpparentbuf : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumFeaturesW(szproduct : ::windows_sys::core::PCWSTR, ifeatureindex : u32, lpfeaturebuf : ::windows_sys::core::PWSTR, lpparentbuf : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumPatchesA(szproduct : ::windows_sys::core::PCSTR, ipatchindex : u32, lppatchbuf : ::windows_sys::core::PSTR, lptransformsbuf : ::windows_sys::core::PSTR, pcchtransformsbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumPatchesExA(szproductcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : u32, dwfilter : u32, dwindex : u32, szpatchcode : ::windows_sys::core::PSTR, sztargetproductcode : ::windows_sys::core::PSTR, pdwtargetproductcontext : *mut MSIINSTALLCONTEXT, sztargetusersid : ::windows_sys::core::PSTR, pcchtargetusersid : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumPatchesExW(szproductcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : u32, dwfilter : u32, dwindex : u32, szpatchcode : ::windows_sys::core::PWSTR, sztargetproductcode : ::windows_sys::core::PWSTR, pdwtargetproductcontext : *mut MSIINSTALLCONTEXT, sztargetusersid : ::windows_sys::core::PWSTR, pcchtargetusersid : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumPatchesW(szproduct : ::windows_sys::core::PCWSTR, ipatchindex : u32, lppatchbuf : ::windows_sys::core::PWSTR, lptransformsbuf : ::windows_sys::core::PWSTR, pcchtransformsbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumProductsA(iproductindex : u32, lpproductbuf : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumProductsExA(szproductcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : u32, dwindex : u32, szinstalledproductcode : ::windows_sys::core::PSTR, pdwinstalledcontext : *mut MSIINSTALLCONTEXT, szsid : ::windows_sys::core::PSTR, pcchsid : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumProductsExW(szproductcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : u32, dwindex : u32, szinstalledproductcode : ::windows_sys::core::PWSTR, pdwinstalledcontext : *mut MSIINSTALLCONTEXT, szsid : ::windows_sys::core::PWSTR, pcchsid : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumProductsW(iproductindex : u32, lpproductbuf : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumRelatedProductsA(lpupgradecode : ::windows_sys::core::PCSTR, dwreserved : u32, iproductindex : u32, lpproductbuf : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEnumRelatedProductsW(lpupgradecode : ::windows_sys::core::PCWSTR, dwreserved : u32, iproductindex : u32, lpproductbuf : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiEvaluateConditionA(hinstall : MSIHANDLE, szcondition : ::windows_sys::core::PCSTR) -> MSICONDITION); +::windows_targets::link!("msi.dll" "system" fn MsiEvaluateConditionW(hinstall : MSIHANDLE, szcondition : ::windows_sys::core::PCWSTR) -> MSICONDITION); +::windows_targets::link!("msi.dll" "system" fn MsiExtractPatchXMLDataA(szpatchpath : ::windows_sys::core::PCSTR, dwreserved : u32, szxmldata : ::windows_sys::core::PSTR, pcchxmldata : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiExtractPatchXMLDataW(szpatchpath : ::windows_sys::core::PCWSTR, dwreserved : u32, szxmldata : ::windows_sys::core::PWSTR, pcchxmldata : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiFormatRecordA(hinstall : MSIHANDLE, hrecord : MSIHANDLE, szresultbuf : ::windows_sys::core::PSTR, pcchresultbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiFormatRecordW(hinstall : MSIHANDLE, hrecord : MSIHANDLE, szresultbuf : ::windows_sys::core::PWSTR, pcchresultbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetActiveDatabase(hinstall : MSIHANDLE) -> MSIHANDLE); +::windows_targets::link!("msi.dll" "system" fn MsiGetComponentPathA(szproduct : ::windows_sys::core::PCSTR, szcomponent : ::windows_sys::core::PCSTR, lppathbuf : ::windows_sys::core::PSTR, pcchbuf : *mut u32) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiGetComponentPathExA(szproductcode : ::windows_sys::core::PCSTR, szcomponentcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, lpoutpathbuffer : ::windows_sys::core::PSTR, pcchoutpathbuffer : *mut u32) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiGetComponentPathExW(szproductcode : ::windows_sys::core::PCWSTR, szcomponentcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, lpoutpathbuffer : ::windows_sys::core::PWSTR, pcchoutpathbuffer : *mut u32) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiGetComponentPathW(szproduct : ::windows_sys::core::PCWSTR, szcomponent : ::windows_sys::core::PCWSTR, lppathbuf : ::windows_sys::core::PWSTR, pcchbuf : *mut u32) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiGetComponentStateA(hinstall : MSIHANDLE, szcomponent : ::windows_sys::core::PCSTR, piinstalled : *mut INSTALLSTATE, piaction : *mut INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetComponentStateW(hinstall : MSIHANDLE, szcomponent : ::windows_sys::core::PCWSTR, piinstalled : *mut INSTALLSTATE, piaction : *mut INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetDatabaseState(hdatabase : MSIHANDLE) -> MSIDBSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiGetFeatureCostA(hinstall : MSIHANDLE, szfeature : ::windows_sys::core::PCSTR, icosttree : MSICOSTTREE, istate : INSTALLSTATE, picost : *mut i32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetFeatureCostW(hinstall : MSIHANDLE, szfeature : ::windows_sys::core::PCWSTR, icosttree : MSICOSTTREE, istate : INSTALLSTATE, picost : *mut i32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetFeatureInfoA(hproduct : MSIHANDLE, szfeature : ::windows_sys::core::PCSTR, lpattributes : *mut u32, lptitlebuf : ::windows_sys::core::PSTR, pcchtitlebuf : *mut u32, lphelpbuf : ::windows_sys::core::PSTR, pcchhelpbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetFeatureInfoW(hproduct : MSIHANDLE, szfeature : ::windows_sys::core::PCWSTR, lpattributes : *mut u32, lptitlebuf : ::windows_sys::core::PWSTR, pcchtitlebuf : *mut u32, lphelpbuf : ::windows_sys::core::PWSTR, pcchhelpbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetFeatureStateA(hinstall : MSIHANDLE, szfeature : ::windows_sys::core::PCSTR, piinstalled : *mut INSTALLSTATE, piaction : *mut INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetFeatureStateW(hinstall : MSIHANDLE, szfeature : ::windows_sys::core::PCWSTR, piinstalled : *mut INSTALLSTATE, piaction : *mut INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetFeatureUsageA(szproduct : ::windows_sys::core::PCSTR, szfeature : ::windows_sys::core::PCSTR, pdwusecount : *mut u32, pwdateused : *mut u16) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetFeatureUsageW(szproduct : ::windows_sys::core::PCWSTR, szfeature : ::windows_sys::core::PCWSTR, pdwusecount : *mut u32, pwdateused : *mut u16) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetFeatureValidStatesA(hinstall : MSIHANDLE, szfeature : ::windows_sys::core::PCSTR, lpinstallstates : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetFeatureValidStatesW(hinstall : MSIHANDLE, szfeature : ::windows_sys::core::PCWSTR, lpinstallstates : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetFileHashA(szfilepath : ::windows_sys::core::PCSTR, dwoptions : u32, phash : *mut MSIFILEHASHINFO) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetFileHashW(szfilepath : ::windows_sys::core::PCWSTR, dwoptions : u32, phash : *mut MSIFILEHASHINFO) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn MsiGetFileSignatureInformationA(szsignedobjectpath : ::windows_sys::core::PCSTR, dwflags : u32, ppccertcontext : *mut *mut super::super::Security::Cryptography:: CERT_CONTEXT, pbhashdata : *mut u8, pcbhashdata : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn MsiGetFileSignatureInformationW(szsignedobjectpath : ::windows_sys::core::PCWSTR, dwflags : u32, ppccertcontext : *mut *mut super::super::Security::Cryptography:: CERT_CONTEXT, pbhashdata : *mut u8, pcbhashdata : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msi.dll" "system" fn MsiGetFileVersionA(szfilepath : ::windows_sys::core::PCSTR, lpversionbuf : ::windows_sys::core::PSTR, pcchversionbuf : *mut u32, lplangbuf : ::windows_sys::core::PSTR, pcchlangbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetFileVersionW(szfilepath : ::windows_sys::core::PCWSTR, lpversionbuf : ::windows_sys::core::PWSTR, pcchversionbuf : *mut u32, lplangbuf : ::windows_sys::core::PWSTR, pcchlangbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetLanguage(hinstall : MSIHANDLE) -> u16); +::windows_targets::link!("msi.dll" "system" fn MsiGetLastErrorRecord() -> MSIHANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsiGetMode(hinstall : MSIHANDLE, erunmode : MSIRUNMODE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("msi.dll" "system" fn MsiGetPatchFileListA(szproductcode : ::windows_sys::core::PCSTR, szpatchpackages : ::windows_sys::core::PCSTR, pcfiles : *mut u32, pphfilerecords : *mut *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetPatchFileListW(szproductcode : ::windows_sys::core::PCWSTR, szpatchpackages : ::windows_sys::core::PCWSTR, pcfiles : *mut u32, pphfilerecords : *mut *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetPatchInfoA(szpatch : ::windows_sys::core::PCSTR, szattribute : ::windows_sys::core::PCSTR, lpvaluebuf : ::windows_sys::core::PSTR, pcchvaluebuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetPatchInfoExA(szpatchcode : ::windows_sys::core::PCSTR, szproductcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, szproperty : ::windows_sys::core::PCSTR, lpvalue : ::windows_sys::core::PSTR, pcchvalue : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetPatchInfoExW(szpatchcode : ::windows_sys::core::PCWSTR, szproductcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, szproperty : ::windows_sys::core::PCWSTR, lpvalue : ::windows_sys::core::PWSTR, pcchvalue : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetPatchInfoW(szpatch : ::windows_sys::core::PCWSTR, szattribute : ::windows_sys::core::PCWSTR, lpvaluebuf : ::windows_sys::core::PWSTR, pcchvaluebuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetProductCodeA(szcomponent : ::windows_sys::core::PCSTR, lpbuf39 : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetProductCodeW(szcomponent : ::windows_sys::core::PCWSTR, lpbuf39 : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetProductInfoA(szproduct : ::windows_sys::core::PCSTR, szattribute : ::windows_sys::core::PCSTR, lpvaluebuf : ::windows_sys::core::PSTR, pcchvaluebuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetProductInfoExA(szproductcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, szproperty : ::windows_sys::core::PCSTR, szvalue : ::windows_sys::core::PSTR, pcchvalue : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetProductInfoExW(szproductcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, szproperty : ::windows_sys::core::PCWSTR, szvalue : ::windows_sys::core::PWSTR, pcchvalue : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetProductInfoFromScriptA(szscriptfile : ::windows_sys::core::PCSTR, lpproductbuf39 : ::windows_sys::core::PSTR, plgidlanguage : *mut u16, pdwversion : *mut u32, lpnamebuf : ::windows_sys::core::PSTR, pcchnamebuf : *mut u32, lppackagebuf : ::windows_sys::core::PSTR, pcchpackagebuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetProductInfoFromScriptW(szscriptfile : ::windows_sys::core::PCWSTR, lpproductbuf39 : ::windows_sys::core::PWSTR, plgidlanguage : *mut u16, pdwversion : *mut u32, lpnamebuf : ::windows_sys::core::PWSTR, pcchnamebuf : *mut u32, lppackagebuf : ::windows_sys::core::PWSTR, pcchpackagebuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetProductInfoW(szproduct : ::windows_sys::core::PCWSTR, szattribute : ::windows_sys::core::PCWSTR, lpvaluebuf : ::windows_sys::core::PWSTR, pcchvaluebuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetProductPropertyA(hproduct : MSIHANDLE, szproperty : ::windows_sys::core::PCSTR, lpvaluebuf : ::windows_sys::core::PSTR, pcchvaluebuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetProductPropertyW(hproduct : MSIHANDLE, szproperty : ::windows_sys::core::PCWSTR, lpvaluebuf : ::windows_sys::core::PWSTR, pcchvaluebuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetPropertyA(hinstall : MSIHANDLE, szname : ::windows_sys::core::PCSTR, szvaluebuf : ::windows_sys::core::PSTR, pcchvaluebuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetPropertyW(hinstall : MSIHANDLE, szname : ::windows_sys::core::PCWSTR, szvaluebuf : ::windows_sys::core::PWSTR, pcchvaluebuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetShortcutTargetA(szshortcutpath : ::windows_sys::core::PCSTR, szproductcode : ::windows_sys::core::PSTR, szfeatureid : ::windows_sys::core::PSTR, szcomponentcode : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetShortcutTargetW(szshortcutpath : ::windows_sys::core::PCWSTR, szproductcode : ::windows_sys::core::PWSTR, szfeatureid : ::windows_sys::core::PWSTR, szcomponentcode : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetSourcePathA(hinstall : MSIHANDLE, szfolder : ::windows_sys::core::PCSTR, szpathbuf : ::windows_sys::core::PSTR, pcchpathbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetSourcePathW(hinstall : MSIHANDLE, szfolder : ::windows_sys::core::PCWSTR, szpathbuf : ::windows_sys::core::PWSTR, pcchpathbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetSummaryInformationA(hdatabase : MSIHANDLE, szdatabasepath : ::windows_sys::core::PCSTR, uiupdatecount : u32, phsummaryinfo : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetSummaryInformationW(hdatabase : MSIHANDLE, szdatabasepath : ::windows_sys::core::PCWSTR, uiupdatecount : u32, phsummaryinfo : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetTargetPathA(hinstall : MSIHANDLE, szfolder : ::windows_sys::core::PCSTR, szpathbuf : ::windows_sys::core::PSTR, pcchpathbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetTargetPathW(hinstall : MSIHANDLE, szfolder : ::windows_sys::core::PCWSTR, szpathbuf : ::windows_sys::core::PWSTR, pcchpathbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiGetUserInfoA(szproduct : ::windows_sys::core::PCSTR, lpusernamebuf : ::windows_sys::core::PSTR, pcchusernamebuf : *mut u32, lporgnamebuf : ::windows_sys::core::PSTR, pcchorgnamebuf : *mut u32, lpserialbuf : ::windows_sys::core::PSTR, pcchserialbuf : *mut u32) -> USERINFOSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiGetUserInfoW(szproduct : ::windows_sys::core::PCWSTR, lpusernamebuf : ::windows_sys::core::PWSTR, pcchusernamebuf : *mut u32, lporgnamebuf : ::windows_sys::core::PWSTR, pcchorgnamebuf : *mut u32, lpserialbuf : ::windows_sys::core::PWSTR, pcchserialbuf : *mut u32) -> USERINFOSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiInstallMissingComponentA(szproduct : ::windows_sys::core::PCSTR, szcomponent : ::windows_sys::core::PCSTR, einstallstate : INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiInstallMissingComponentW(szproduct : ::windows_sys::core::PCWSTR, szcomponent : ::windows_sys::core::PCWSTR, einstallstate : INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiInstallMissingFileA(szproduct : ::windows_sys::core::PCSTR, szfile : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiInstallMissingFileW(szproduct : ::windows_sys::core::PCWSTR, szfile : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiInstallProductA(szpackagepath : ::windows_sys::core::PCSTR, szcommandline : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiInstallProductW(szpackagepath : ::windows_sys::core::PCWSTR, szcommandline : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsiIsProductElevatedA(szproduct : ::windows_sys::core::PCSTR, pfelevated : *mut super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsiIsProductElevatedW(szproduct : ::windows_sys::core::PCWSTR, pfelevated : *mut super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsiJoinTransaction(htransactionhandle : MSIHANDLE, dwtransactionattributes : u32, phchangeofownerevent : *mut super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiLocateComponentA(szcomponent : ::windows_sys::core::PCSTR, lppathbuf : ::windows_sys::core::PSTR, pcchbuf : *mut u32) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiLocateComponentW(szcomponent : ::windows_sys::core::PCWSTR, lppathbuf : ::windows_sys::core::PWSTR, pcchbuf : *mut u32) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiNotifySidChangeA(poldsid : ::windows_sys::core::PCSTR, pnewsid : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiNotifySidChangeW(poldsid : ::windows_sys::core::PCWSTR, pnewsid : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiOpenDatabaseA(szdatabasepath : ::windows_sys::core::PCSTR, szpersist : ::windows_sys::core::PCSTR, phdatabase : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiOpenDatabaseW(szdatabasepath : ::windows_sys::core::PCWSTR, szpersist : ::windows_sys::core::PCWSTR, phdatabase : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiOpenPackageA(szpackagepath : ::windows_sys::core::PCSTR, hproduct : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiOpenPackageExA(szpackagepath : ::windows_sys::core::PCSTR, dwoptions : u32, hproduct : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiOpenPackageExW(szpackagepath : ::windows_sys::core::PCWSTR, dwoptions : u32, hproduct : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiOpenPackageW(szpackagepath : ::windows_sys::core::PCWSTR, hproduct : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiOpenProductA(szproduct : ::windows_sys::core::PCSTR, hproduct : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiOpenProductW(szproduct : ::windows_sys::core::PCWSTR, hproduct : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiPreviewBillboardA(hpreview : MSIHANDLE, szcontrolname : ::windows_sys::core::PCSTR, szbillboard : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiPreviewBillboardW(hpreview : MSIHANDLE, szcontrolname : ::windows_sys::core::PCWSTR, szbillboard : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiPreviewDialogA(hpreview : MSIHANDLE, szdialogname : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiPreviewDialogW(hpreview : MSIHANDLE, szdialogname : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn MsiProcessAdvertiseScriptA(szscriptfile : ::windows_sys::core::PCSTR, sziconfolder : ::windows_sys::core::PCSTR, hregdata : super::Registry:: HKEY, fshortcuts : super::super::Foundation:: BOOL, fremoveitems : super::super::Foundation:: BOOL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn MsiProcessAdvertiseScriptW(szscriptfile : ::windows_sys::core::PCWSTR, sziconfolder : ::windows_sys::core::PCWSTR, hregdata : super::Registry:: HKEY, fshortcuts : super::super::Foundation:: BOOL, fremoveitems : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiProcessMessage(hinstall : MSIHANDLE, emessagetype : INSTALLMESSAGE, hrecord : MSIHANDLE) -> i32); +::windows_targets::link!("msi.dll" "system" fn MsiProvideAssemblyA(szassemblyname : ::windows_sys::core::PCSTR, szappcontext : ::windows_sys::core::PCSTR, dwinstallmode : u32, dwassemblyinfo : MSIASSEMBLYINFO, lppathbuf : ::windows_sys::core::PSTR, pcchpathbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiProvideAssemblyW(szassemblyname : ::windows_sys::core::PCWSTR, szappcontext : ::windows_sys::core::PCWSTR, dwinstallmode : u32, dwassemblyinfo : MSIASSEMBLYINFO, lppathbuf : ::windows_sys::core::PWSTR, pcchpathbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiProvideComponentA(szproduct : ::windows_sys::core::PCSTR, szfeature : ::windows_sys::core::PCSTR, szcomponent : ::windows_sys::core::PCSTR, dwinstallmode : u32, lppathbuf : ::windows_sys::core::PSTR, pcchpathbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiProvideComponentW(szproduct : ::windows_sys::core::PCWSTR, szfeature : ::windows_sys::core::PCWSTR, szcomponent : ::windows_sys::core::PCWSTR, dwinstallmode : u32, lppathbuf : ::windows_sys::core::PWSTR, pcchpathbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiProvideQualifiedComponentA(szcategory : ::windows_sys::core::PCSTR, szqualifier : ::windows_sys::core::PCSTR, dwinstallmode : u32, lppathbuf : ::windows_sys::core::PSTR, pcchpathbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiProvideQualifiedComponentExA(szcategory : ::windows_sys::core::PCSTR, szqualifier : ::windows_sys::core::PCSTR, dwinstallmode : u32, szproduct : ::windows_sys::core::PCSTR, dwunused1 : u32, dwunused2 : u32, lppathbuf : ::windows_sys::core::PSTR, pcchpathbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiProvideQualifiedComponentExW(szcategory : ::windows_sys::core::PCWSTR, szqualifier : ::windows_sys::core::PCWSTR, dwinstallmode : u32, szproduct : ::windows_sys::core::PCWSTR, dwunused1 : u32, dwunused2 : u32, lppathbuf : ::windows_sys::core::PWSTR, pcchpathbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiProvideQualifiedComponentW(szcategory : ::windows_sys::core::PCWSTR, szqualifier : ::windows_sys::core::PCWSTR, dwinstallmode : u32, lppathbuf : ::windows_sys::core::PWSTR, pcchpathbuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiQueryComponentStateA(szproductcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, szcomponentcode : ::windows_sys::core::PCSTR, pdwstate : *mut INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiQueryComponentStateW(szproductcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, szcomponentcode : ::windows_sys::core::PCWSTR, pdwstate : *mut INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiQueryFeatureStateA(szproduct : ::windows_sys::core::PCSTR, szfeature : ::windows_sys::core::PCSTR) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiQueryFeatureStateExA(szproductcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, szfeature : ::windows_sys::core::PCSTR, pdwstate : *mut INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiQueryFeatureStateExW(szproductcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, szfeature : ::windows_sys::core::PCWSTR, pdwstate : *mut INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiQueryFeatureStateW(szproduct : ::windows_sys::core::PCWSTR, szfeature : ::windows_sys::core::PCWSTR) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiQueryProductStateA(szproduct : ::windows_sys::core::PCSTR) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiQueryProductStateW(szproduct : ::windows_sys::core::PCWSTR) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiRecordClearData(hrecord : MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiRecordDataSize(hrecord : MSIHANDLE, ifield : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiRecordGetFieldCount(hrecord : MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiRecordGetInteger(hrecord : MSIHANDLE, ifield : u32) -> i32); +::windows_targets::link!("msi.dll" "system" fn MsiRecordGetStringA(hrecord : MSIHANDLE, ifield : u32, szvaluebuf : ::windows_sys::core::PSTR, pcchvaluebuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiRecordGetStringW(hrecord : MSIHANDLE, ifield : u32, szvaluebuf : ::windows_sys::core::PWSTR, pcchvaluebuf : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsiRecordIsNull(hrecord : MSIHANDLE, ifield : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("msi.dll" "system" fn MsiRecordReadStream(hrecord : MSIHANDLE, ifield : u32, szdatabuf : ::windows_sys::core::PSTR, pcbdatabuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiRecordSetInteger(hrecord : MSIHANDLE, ifield : u32, ivalue : i32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiRecordSetStreamA(hrecord : MSIHANDLE, ifield : u32, szfilepath : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiRecordSetStreamW(hrecord : MSIHANDLE, ifield : u32, szfilepath : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiRecordSetStringA(hrecord : MSIHANDLE, ifield : u32, szvalue : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiRecordSetStringW(hrecord : MSIHANDLE, ifield : u32, szvalue : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiReinstallFeatureA(szproduct : ::windows_sys::core::PCSTR, szfeature : ::windows_sys::core::PCSTR, dwreinstallmode : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiReinstallFeatureW(szproduct : ::windows_sys::core::PCWSTR, szfeature : ::windows_sys::core::PCWSTR, dwreinstallmode : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiReinstallProductA(szproduct : ::windows_sys::core::PCSTR, szreinstallmode : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiReinstallProductW(szproduct : ::windows_sys::core::PCWSTR, szreinstallmode : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiRemovePatchesA(szpatchlist : ::windows_sys::core::PCSTR, szproductcode : ::windows_sys::core::PCSTR, euninstalltype : INSTALLTYPE, szpropertylist : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiRemovePatchesW(szpatchlist : ::windows_sys::core::PCWSTR, szproductcode : ::windows_sys::core::PCWSTR, euninstalltype : INSTALLTYPE, szpropertylist : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSequenceA(hinstall : MSIHANDLE, sztable : ::windows_sys::core::PCSTR, isequencemode : i32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSequenceW(hinstall : MSIHANDLE, sztable : ::windows_sys::core::PCWSTR, isequencemode : i32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSetComponentStateA(hinstall : MSIHANDLE, szcomponent : ::windows_sys::core::PCSTR, istate : INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSetComponentStateW(hinstall : MSIHANDLE, szcomponent : ::windows_sys::core::PCWSTR, istate : INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSetExternalUIA(puihandler : INSTALLUI_HANDLERA, dwmessagefilter : u32, pvcontext : *const ::core::ffi::c_void) -> INSTALLUI_HANDLERA); +::windows_targets::link!("msi.dll" "system" fn MsiSetExternalUIRecord(puihandler : PINSTALLUI_HANDLER_RECORD, dwmessagefilter : u32, pvcontext : *const ::core::ffi::c_void, ppuiprevhandler : PINSTALLUI_HANDLER_RECORD) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSetExternalUIW(puihandler : INSTALLUI_HANDLERW, dwmessagefilter : u32, pvcontext : *const ::core::ffi::c_void) -> INSTALLUI_HANDLERW); +::windows_targets::link!("msi.dll" "system" fn MsiSetFeatureAttributesA(hinstall : MSIHANDLE, szfeature : ::windows_sys::core::PCSTR, dwattributes : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSetFeatureAttributesW(hinstall : MSIHANDLE, szfeature : ::windows_sys::core::PCWSTR, dwattributes : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSetFeatureStateA(hinstall : MSIHANDLE, szfeature : ::windows_sys::core::PCSTR, istate : INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSetFeatureStateW(hinstall : MSIHANDLE, szfeature : ::windows_sys::core::PCWSTR, istate : INSTALLSTATE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSetInstallLevel(hinstall : MSIHANDLE, iinstalllevel : i32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsiSetInternalUI(dwuilevel : INSTALLUILEVEL, phwnd : *mut super::super::Foundation:: HWND) -> INSTALLUILEVEL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsiSetMode(hinstall : MSIHANDLE, erunmode : MSIRUNMODE, fstate : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSetPropertyA(hinstall : MSIHANDLE, szname : ::windows_sys::core::PCSTR, szvalue : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSetPropertyW(hinstall : MSIHANDLE, szname : ::windows_sys::core::PCWSTR, szvalue : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSetTargetPathA(hinstall : MSIHANDLE, szfolder : ::windows_sys::core::PCSTR, szfolderpath : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSetTargetPathW(hinstall : MSIHANDLE, szfolder : ::windows_sys::core::PCWSTR, szfolderpath : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListAddMediaDiskA(szproductcodeorpatchcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, dwdiskid : u32, szvolumelabel : ::windows_sys::core::PCSTR, szdiskprompt : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListAddMediaDiskW(szproductcodeorpatchcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, dwdiskid : u32, szvolumelabel : ::windows_sys::core::PCWSTR, szdiskprompt : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListAddSourceA(szproduct : ::windows_sys::core::PCSTR, szusername : ::windows_sys::core::PCSTR, dwreserved : u32, szsource : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListAddSourceExA(szproductcodeorpatchcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, szsource : ::windows_sys::core::PCSTR, dwindex : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListAddSourceExW(szproductcodeorpatchcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, szsource : ::windows_sys::core::PCWSTR, dwindex : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListAddSourceW(szproduct : ::windows_sys::core::PCWSTR, szusername : ::windows_sys::core::PCWSTR, dwreserved : u32, szsource : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListClearAllA(szproduct : ::windows_sys::core::PCSTR, szusername : ::windows_sys::core::PCSTR, dwreserved : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListClearAllExA(szproductcodeorpatchcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListClearAllExW(szproductcodeorpatchcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListClearAllW(szproduct : ::windows_sys::core::PCWSTR, szusername : ::windows_sys::core::PCWSTR, dwreserved : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListClearMediaDiskA(szproductcodeorpatchcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, dwdiskid : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListClearMediaDiskW(szproductcodeorpatchcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, dwdiskid : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListClearSourceA(szproductcodeorpatchcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, szsource : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListClearSourceW(szproductcodeorpatchcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, szsource : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListEnumMediaDisksA(szproductcodeorpatchcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, dwindex : u32, pdwdiskid : *mut u32, szvolumelabel : ::windows_sys::core::PSTR, pcchvolumelabel : *mut u32, szdiskprompt : ::windows_sys::core::PSTR, pcchdiskprompt : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListEnumMediaDisksW(szproductcodeorpatchcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, dwindex : u32, pdwdiskid : *mut u32, szvolumelabel : ::windows_sys::core::PWSTR, pcchvolumelabel : *mut u32, szdiskprompt : ::windows_sys::core::PWSTR, pcchdiskprompt : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListEnumSourcesA(szproductcodeorpatchcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, dwindex : u32, szsource : ::windows_sys::core::PSTR, pcchsource : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListEnumSourcesW(szproductcodeorpatchcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, dwindex : u32, szsource : ::windows_sys::core::PWSTR, pcchsource : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListForceResolutionA(szproduct : ::windows_sys::core::PCSTR, szusername : ::windows_sys::core::PCSTR, dwreserved : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListForceResolutionExA(szproductcodeorpatchcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListForceResolutionExW(szproductcodeorpatchcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListForceResolutionW(szproduct : ::windows_sys::core::PCWSTR, szusername : ::windows_sys::core::PCWSTR, dwreserved : u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListGetInfoA(szproductcodeorpatchcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, szproperty : ::windows_sys::core::PCSTR, szvalue : ::windows_sys::core::PSTR, pcchvalue : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListGetInfoW(szproductcodeorpatchcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, szproperty : ::windows_sys::core::PCWSTR, szvalue : ::windows_sys::core::PWSTR, pcchvalue : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListSetInfoA(szproductcodeorpatchcode : ::windows_sys::core::PCSTR, szusersid : ::windows_sys::core::PCSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, szproperty : ::windows_sys::core::PCSTR, szvalue : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSourceListSetInfoW(szproductcodeorpatchcode : ::windows_sys::core::PCWSTR, szusersid : ::windows_sys::core::PCWSTR, dwcontext : MSIINSTALLCONTEXT, dwoptions : u32, szproperty : ::windows_sys::core::PCWSTR, szvalue : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsiSummaryInfoGetPropertyA(hsummaryinfo : MSIHANDLE, uiproperty : u32, puidatatype : *mut u32, pivalue : *mut i32, pftvalue : *mut super::super::Foundation:: FILETIME, szvaluebuf : ::windows_sys::core::PSTR, pcchvaluebuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSummaryInfoGetPropertyCount(hsummaryinfo : MSIHANDLE, puipropertycount : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsiSummaryInfoGetPropertyW(hsummaryinfo : MSIHANDLE, uiproperty : u32, puidatatype : *mut u32, pivalue : *mut i32, pftvalue : *mut super::super::Foundation:: FILETIME, szvaluebuf : ::windows_sys::core::PWSTR, pcchvaluebuf : *mut u32) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiSummaryInfoPersist(hsummaryinfo : MSIHANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsiSummaryInfoSetPropertyA(hsummaryinfo : MSIHANDLE, uiproperty : u32, uidatatype : u32, ivalue : i32, pftvalue : *mut super::super::Foundation:: FILETIME, szvalue : ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsiSummaryInfoSetPropertyW(hsummaryinfo : MSIHANDLE, uiproperty : u32, uidatatype : u32, ivalue : i32, pftvalue : *mut super::super::Foundation:: FILETIME, szvalue : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiUseFeatureA(szproduct : ::windows_sys::core::PCSTR, szfeature : ::windows_sys::core::PCSTR) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiUseFeatureExA(szproduct : ::windows_sys::core::PCSTR, szfeature : ::windows_sys::core::PCSTR, dwinstallmode : u32, dwreserved : u32) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiUseFeatureExW(szproduct : ::windows_sys::core::PCWSTR, szfeature : ::windows_sys::core::PCWSTR, dwinstallmode : u32, dwreserved : u32) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiUseFeatureW(szproduct : ::windows_sys::core::PCWSTR, szfeature : ::windows_sys::core::PCWSTR) -> INSTALLSTATE); +::windows_targets::link!("msi.dll" "system" fn MsiVerifyDiskSpace(hinstall : MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiVerifyPackageA(szpackagepath : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiVerifyPackageW(szpackagepath : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiViewClose(hview : MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiViewExecute(hview : MSIHANDLE, hrecord : MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiViewFetch(hview : MSIHANDLE, phrecord : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiViewGetColumnInfo(hview : MSIHANDLE, ecolumninfo : MSICOLINFO, phrecord : *mut MSIHANDLE) -> u32); +::windows_targets::link!("msi.dll" "system" fn MsiViewGetErrorA(hview : MSIHANDLE, szcolumnnamebuffer : ::windows_sys::core::PSTR, pcchbuf : *mut u32) -> MSIDBERROR); +::windows_targets::link!("msi.dll" "system" fn MsiViewGetErrorW(hview : MSIHANDLE, szcolumnnamebuffer : ::windows_sys::core::PWSTR, pcchbuf : *mut u32) -> MSIDBERROR); +::windows_targets::link!("msi.dll" "system" fn MsiViewModify(hview : MSIHANDLE, emodifymode : MSIMODIFY, hrecord : MSIHANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NormalizeFileForPatchSignature(filebuffer : *mut ::core::ffi::c_void, filesize : u32, optionflags : u32, optiondata : *const PATCH_OPTION_DATA, newfilecoffbase : u32, newfilecofftime : u32, ignorerangecount : u32, ignorerangearray : *const PATCH_IGNORE_RANGE, retainrangecount : u32, retainrangearray : *const PATCH_RETAIN_RANGE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryActCtxSettingsW(dwflags : u32, hactctx : super::super::Foundation:: HANDLE, settingsnamespace : ::windows_sys::core::PCWSTR, settingname : ::windows_sys::core::PCWSTR, pvbuffer : ::windows_sys::core::PWSTR, dwbuffer : usize, pdwwrittenorrequired : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryActCtxW(dwflags : u32, hactctx : super::super::Foundation:: HANDLE, pvsubinstance : *const ::core::ffi::c_void, ulinfoclass : u32, pvbuffer : *mut ::core::ffi::c_void, cbbuffer : usize, pcbwrittenorrequired : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReleaseActCtx(hactctx : super::super::Foundation:: HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("sfc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SfcGetNextProtectedFile(rpchandle : super::super::Foundation:: HANDLE, protfiledata : *mut PROTECTED_FILE_DATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("sfc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SfcIsFileProtected(rpchandle : super::super::Foundation:: HANDLE, protfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("sfc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SfcIsKeyProtected(keyhandle : super::Registry:: HKEY, subkeyname : ::windows_sys::core::PCWSTR, keysam : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("sfc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SfpVerifyFile(pszfilename : ::windows_sys::core::PCSTR, pszerror : ::windows_sys::core::PCSTR, dwerrsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TestApplyPatchToFileA(patchfilename : ::windows_sys::core::PCSTR, oldfilename : ::windows_sys::core::PCSTR, applyoptionflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TestApplyPatchToFileByBuffers(patchfilebuffer : *const u8, patchfilesize : u32, oldfilebuffer : *const u8, oldfilesize : u32, newfilesize : *mut u32, applyoptionflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TestApplyPatchToFileByHandles(patchfilehandle : super::super::Foundation:: HANDLE, oldfilehandle : super::super::Foundation:: HANDLE, applyoptionflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mspatcha.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TestApplyPatchToFileW(patchfilename : ::windows_sys::core::PCWSTR, oldfilename : ::windows_sys::core::PCWSTR, applyoptionflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ZombifyActCtx(hactctx : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +pub type IAssemblyCache = *mut ::core::ffi::c_void; +pub type IAssemblyCacheItem = *mut ::core::ffi::c_void; +pub type IAssemblyName = *mut ::core::ffi::c_void; +pub type IEnumMsmDependency = *mut ::core::ffi::c_void; +pub type IEnumMsmError = *mut ::core::ffi::c_void; +pub type IEnumMsmString = *mut ::core::ffi::c_void; +pub type IMsmDependencies = *mut ::core::ffi::c_void; +pub type IMsmDependency = *mut ::core::ffi::c_void; +pub type IMsmError = *mut ::core::ffi::c_void; +pub type IMsmErrors = *mut ::core::ffi::c_void; +pub type IMsmGetFiles = *mut ::core::ffi::c_void; +pub type IMsmMerge = *mut ::core::ffi::c_void; +pub type IMsmStrings = *mut ::core::ffi::c_void; +pub type IPMApplicationInfo = *mut ::core::ffi::c_void; +pub type IPMApplicationInfoEnumerator = *mut ::core::ffi::c_void; +pub type IPMBackgroundServiceAgentInfo = *mut ::core::ffi::c_void; +pub type IPMBackgroundServiceAgentInfoEnumerator = *mut ::core::ffi::c_void; +pub type IPMBackgroundWorkerInfo = *mut ::core::ffi::c_void; +pub type IPMBackgroundWorkerInfoEnumerator = *mut ::core::ffi::c_void; +pub type IPMDeploymentManager = *mut ::core::ffi::c_void; +pub type IPMEnumerationManager = *mut ::core::ffi::c_void; +pub type IPMExtensionCachedFileUpdaterInfo = *mut ::core::ffi::c_void; +pub type IPMExtensionContractInfo = *mut ::core::ffi::c_void; +pub type IPMExtensionFileExtensionInfo = *mut ::core::ffi::c_void; +pub type IPMExtensionFileOpenPickerInfo = *mut ::core::ffi::c_void; +pub type IPMExtensionFileSavePickerInfo = *mut ::core::ffi::c_void; +pub type IPMExtensionInfo = *mut ::core::ffi::c_void; +pub type IPMExtensionInfoEnumerator = *mut ::core::ffi::c_void; +pub type IPMExtensionProtocolInfo = *mut ::core::ffi::c_void; +pub type IPMExtensionShareTargetInfo = *mut ::core::ffi::c_void; +pub type IPMLiveTileJobInfo = *mut ::core::ffi::c_void; +pub type IPMLiveTileJobInfoEnumerator = *mut ::core::ffi::c_void; +pub type IPMTaskInfo = *mut ::core::ffi::c_void; +pub type IPMTaskInfoEnumerator = *mut ::core::ffi::c_void; +pub type IPMTileInfo = *mut ::core::ffi::c_void; +pub type IPMTileInfoEnumerator = *mut ::core::ffi::c_void; +pub type IPMTilePropertyEnumerator = *mut ::core::ffi::c_void; +pub type IPMTilePropertyInfo = *mut ::core::ffi::c_void; +pub type IValidate = *mut ::core::ffi::c_void; +pub const ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MAXVERSIONTESTED: ACTCTX_COMPATIBILITY_ELEMENT_TYPE = 3i32; +pub const ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MITIGATION: ACTCTX_COMPATIBILITY_ELEMENT_TYPE = 2i32; +pub const ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS: ACTCTX_COMPATIBILITY_ELEMENT_TYPE = 1i32; +pub const ACTCTX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN: ACTCTX_COMPATIBILITY_ELEMENT_TYPE = 0i32; +pub const ACTCTX_RUN_LEVEL_AS_INVOKER: ACTCTX_REQUESTED_RUN_LEVEL = 1i32; +pub const ACTCTX_RUN_LEVEL_HIGHEST_AVAILABLE: ACTCTX_REQUESTED_RUN_LEVEL = 2i32; +pub const ACTCTX_RUN_LEVEL_NUMBERS: ACTCTX_REQUESTED_RUN_LEVEL = 4i32; +pub const ACTCTX_RUN_LEVEL_REQUIRE_ADMIN: ACTCTX_REQUESTED_RUN_LEVEL = 3i32; +pub const ACTCTX_RUN_LEVEL_UNSPECIFIED: ACTCTX_REQUESTED_RUN_LEVEL = 0i32; +pub const ADVERTISEFLAGS_MACHINEASSIGN: ADVERTISEFLAGS = 0i32; +pub const ADVERTISEFLAGS_USERASSIGN: ADVERTISEFLAGS = 1i32; +pub const APPLY_OPTION_FAIL_IF_CLOSE: u32 = 2u32; +pub const APPLY_OPTION_FAIL_IF_EXACT: u32 = 1u32; +pub const APPLY_OPTION_TEST_ONLY: u32 = 4u32; +pub const APPLY_OPTION_VALID_FLAGS: u32 = 7u32; +pub const ASM_BINDF_BINPATH_PROBE_ONLY: ASM_BIND_FLAGS = 8i32; +pub const ASM_BINDF_FORCE_CACHE_INSTALL: ASM_BIND_FLAGS = 1i32; +pub const ASM_BINDF_PARENT_ASM_HINT: ASM_BIND_FLAGS = 32i32; +pub const ASM_BINDF_RFS_INTEGRITY_CHECK: ASM_BIND_FLAGS = 2i32; +pub const ASM_BINDF_RFS_MODULE_CHECK: ASM_BIND_FLAGS = 4i32; +pub const ASM_BINDF_SHARED_BINPATH_HINT: ASM_BIND_FLAGS = 16i32; +pub const ASM_CMPF_ALL: ASM_CMP_FLAGS = 255i32; +pub const ASM_CMPF_BUILD_NUMBER: ASM_CMP_FLAGS = 8i32; +pub const ASM_CMPF_CULTURE: ASM_CMP_FLAGS = 64i32; +pub const ASM_CMPF_CUSTOM: ASM_CMP_FLAGS = 128i32; +pub const ASM_CMPF_DEFAULT: ASM_CMP_FLAGS = 256i32; +pub const ASM_CMPF_MAJOR_VERSION: ASM_CMP_FLAGS = 2i32; +pub const ASM_CMPF_MINOR_VERSION: ASM_CMP_FLAGS = 4i32; +pub const ASM_CMPF_NAME: ASM_CMP_FLAGS = 1i32; +pub const ASM_CMPF_PUBLIC_KEY_TOKEN: ASM_CMP_FLAGS = 32i32; +pub const ASM_CMPF_REVISION_NUMBER: ASM_CMP_FLAGS = 16i32; +pub const ASM_DISPLAYF_CULTURE: ASM_DISPLAY_FLAGS = 2i32; +pub const ASM_DISPLAYF_CUSTOM: ASM_DISPLAY_FLAGS = 16i32; +pub const ASM_DISPLAYF_LANGUAGEID: ASM_DISPLAY_FLAGS = 64i32; +pub const ASM_DISPLAYF_PROCESSORARCHITECTURE: ASM_DISPLAY_FLAGS = 32i32; +pub const ASM_DISPLAYF_PUBLIC_KEY: ASM_DISPLAY_FLAGS = 8i32; +pub const ASM_DISPLAYF_PUBLIC_KEY_TOKEN: ASM_DISPLAY_FLAGS = 4i32; +pub const ASM_DISPLAYF_VERSION: ASM_DISPLAY_FLAGS = 1i32; +pub const ASM_NAME_ALIAS: ASM_NAME = 12i32; +pub const ASM_NAME_BUILD_NUMBER: ASM_NAME = 6i32; +pub const ASM_NAME_CODEBASE_LASTMOD: ASM_NAME = 14i32; +pub const ASM_NAME_CODEBASE_URL: ASM_NAME = 13i32; +pub const ASM_NAME_CULTURE: ASM_NAME = 8i32; +pub const ASM_NAME_CUSTOM: ASM_NAME = 17i32; +pub const ASM_NAME_HASH_ALGID: ASM_NAME = 11i32; +pub const ASM_NAME_HASH_VALUE: ASM_NAME = 2i32; +pub const ASM_NAME_MAJOR_VERSION: ASM_NAME = 4i32; +pub const ASM_NAME_MAX_PARAMS: ASM_NAME = 20i32; +pub const ASM_NAME_MINOR_VERSION: ASM_NAME = 5i32; +pub const ASM_NAME_MVID: ASM_NAME = 19i32; +pub const ASM_NAME_NAME: ASM_NAME = 3i32; +pub const ASM_NAME_NULL_CUSTOM: ASM_NAME = 18i32; +pub const ASM_NAME_NULL_PUBLIC_KEY: ASM_NAME = 15i32; +pub const ASM_NAME_NULL_PUBLIC_KEY_TOKEN: ASM_NAME = 16i32; +pub const ASM_NAME_OSINFO_ARRAY: ASM_NAME = 10i32; +pub const ASM_NAME_PROCESSOR_ID_ARRAY: ASM_NAME = 9i32; +pub const ASM_NAME_PUBLIC_KEY: ASM_NAME = 0i32; +pub const ASM_NAME_PUBLIC_KEY_TOKEN: ASM_NAME = 1i32; +pub const ASM_NAME_REVISION_NUMBER: ASM_NAME = 7i32; +pub const ASSEMBLYINFO_FLAG_INSTALLED: u32 = 1u32; +pub const ASSEMBLYINFO_FLAG_PAYLOADRESIDENT: u32 = 2u32; +pub const CANOF_PARSE_DISPLAY_NAME: CREATE_ASM_NAME_OBJ_FLAGS = 1i32; +pub const CANOF_SET_DEFAULT_VALUES: CREATE_ASM_NAME_OBJ_FLAGS = 2i32; +pub const CLSID_EvalCom2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6e5e1910_8053_4660_b795_6b612e29bc58); +pub const CLSID_MsmMerge2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf94985d5_29f9_4743_9805_99bc3f35b678); +pub const DEFAULT_DISK_ID: u32 = 2u32; +pub const DEFAULT_FILE_SEQUENCE_START: u32 = 2u32; +pub const DEFAULT_MINIMUM_REQUIRED_MSI_VERSION: u32 = 100u32; +pub const DELTA_MAX_HASH_SIZE: u32 = 32u32; +pub const ERROR_PATCH_BIGGER_THAN_COMPRESSED: u32 = 3222155525u32; +pub const ERROR_PATCH_CORRUPT: u32 = 3222159618u32; +pub const ERROR_PATCH_DECODE_FAILURE: u32 = 3222159617u32; +pub const ERROR_PATCH_ENCODE_FAILURE: u32 = 3222155521u32; +pub const ERROR_PATCH_IMAGEHLP_FAILURE: u32 = 3222155526u32; +pub const ERROR_PATCH_INVALID_OPTIONS: u32 = 3222155522u32; +pub const ERROR_PATCH_NEWER_FORMAT: u32 = 3222159619u32; +pub const ERROR_PATCH_NOT_AVAILABLE: u32 = 3222159622u32; +pub const ERROR_PATCH_NOT_NECESSARY: u32 = 3222159621u32; +pub const ERROR_PATCH_RETAIN_RANGES_DIFFER: u32 = 3222155524u32; +pub const ERROR_PATCH_SAME_FILE: u32 = 3222155523u32; +pub const ERROR_PATCH_WRONG_FILE: u32 = 3222159620u32; +pub const ERROR_PCW_BAD_API_PATCHING_SYMBOL_FLAGS: u32 = 3222163725u32; +pub const ERROR_PCW_BAD_FAMILY_RANGE_NAME: u32 = 3222163801u32; +pub const ERROR_PCW_BAD_FILE_SEQUENCE_START: u32 = 3222163770u32; +pub const ERROR_PCW_BAD_GUIDS_TO_REPLACE: u32 = 3222163721u32; +pub const ERROR_PCW_BAD_IMAGE_FAMILY_DISKID: u32 = 3222163773u32; +pub const ERROR_PCW_BAD_IMAGE_FAMILY_FILESEQSTART: u32 = 3222163774u32; +pub const ERROR_PCW_BAD_IMAGE_FAMILY_NAME: u32 = 3222163748u32; +pub const ERROR_PCW_BAD_IMAGE_FAMILY_SRC_PROP: u32 = 3222163750u32; +pub const ERROR_PCW_BAD_MAJOR_VERSION: u32 = 3222163853u32; +pub const ERROR_PCW_BAD_PATCH_GUID: u32 = 3222163720u32; +pub const ERROR_PCW_BAD_PRODUCTVERSION_VALIDATION: u32 = 3222163844u32; +pub const ERROR_PCW_BAD_SEQUENCE: u32 = 3222163848u32; +pub const ERROR_PCW_BAD_SUPERCEDENCE: u32 = 3222163847u32; +pub const ERROR_PCW_BAD_TARGET: u32 = 3222163849u32; +pub const ERROR_PCW_BAD_TARGET_IMAGE_NAME: u32 = 3222163736u32; +pub const ERROR_PCW_BAD_TARGET_IMAGE_PRODUCT_CODE: u32 = 3222163834u32; +pub const ERROR_PCW_BAD_TARGET_IMAGE_PRODUCT_VERSION: u32 = 3222163835u32; +pub const ERROR_PCW_BAD_TARGET_IMAGE_UPGRADED: u32 = 3222163776u32; +pub const ERROR_PCW_BAD_TARGET_IMAGE_UPGRADE_CODE: u32 = 3222163836u32; +pub const ERROR_PCW_BAD_TARGET_PRODUCT_CODE_LIST: u32 = 3222163722u32; +pub const ERROR_PCW_BAD_TGT_UPD_IMAGES: u32 = 3222163846u32; +pub const ERROR_PCW_BAD_TRANSFORMSET: u32 = 3222163845u32; +pub const ERROR_PCW_BAD_UPGRADED_IMAGE_FAMILY: u32 = 3222163775u32; +pub const ERROR_PCW_BAD_UPGRADED_IMAGE_NAME: u32 = 3222163728u32; +pub const ERROR_PCW_BAD_UPGRADED_IMAGE_PRODUCT_CODE: u32 = 3222163831u32; +pub const ERROR_PCW_BAD_UPGRADED_IMAGE_PRODUCT_VERSION: u32 = 3222163832u32; +pub const ERROR_PCW_BAD_UPGRADED_IMAGE_UPGRADE_CODE: u32 = 3222163833u32; +pub const ERROR_PCW_BAD_VERSION_STRING: u32 = 3222163852u32; +pub const ERROR_PCW_BASE: u32 = 3222163713u32; +pub const ERROR_PCW_CANNOT_CREATE_TABLE: u32 = 3222163841u32; +pub const ERROR_PCW_CANNOT_RUN_MAKECAB: u32 = 3222163782u32; +pub const ERROR_PCW_CANNOT_WRITE_DDF: u32 = 3222163781u32; +pub const ERROR_PCW_CANT_COPY_FILE_TO_TEMP_FOLDER: u32 = 3222163771u32; +pub const ERROR_PCW_CANT_CREATE_ONE_PATCH_FILE: u32 = 3222163772u32; +pub const ERROR_PCW_CANT_CREATE_PATCH_FILE: u32 = 3222163718u32; +pub const ERROR_PCW_CANT_CREATE_SUMMARY_INFO: u32 = 3222163828u32; +pub const ERROR_PCW_CANT_CREATE_SUMMARY_INFO_POUND: u32 = 3222163830u32; +pub const ERROR_PCW_CANT_CREATE_TEMP_FOLDER: u32 = 3222163715u32; +pub const ERROR_PCW_CANT_DELETE_TEMP_FOLDER: u32 = 3222163974u32; +pub const ERROR_PCW_CANT_GENERATE_SEQUENCEINFO_MAJORUPGD: u32 = 3222163842u32; +pub const ERROR_PCW_CANT_GENERATE_TRANSFORM: u32 = 3222163827u32; +pub const ERROR_PCW_CANT_GENERATE_TRANSFORM_POUND: u32 = 3222163829u32; +pub const ERROR_PCW_CANT_OVERWRITE_PATCH: u32 = 3222163717u32; +pub const ERROR_PCW_CANT_READ_FILE: u32 = 3222163978u32; +pub const ERROR_PCW_CREATEFILE_LOG_FAILED: u32 = 3222163861u32; +pub const ERROR_PCW_DUPLICATE_SEQUENCE_RECORD: u32 = 3222163858u32; +pub const ERROR_PCW_DUP_IMAGE_FAMILY_NAME: u32 = 3222163749u32; +pub const ERROR_PCW_DUP_TARGET_IMAGE_NAME: u32 = 3222163737u32; +pub const ERROR_PCW_DUP_TARGET_IMAGE_PACKCODE: u32 = 3222163777u32; +pub const ERROR_PCW_DUP_UPGRADED_IMAGE_NAME: u32 = 3222163729u32; +pub const ERROR_PCW_DUP_UPGRADED_IMAGE_PACKCODE: u32 = 3222163795u32; +pub const ERROR_PCW_ERROR_WRITING_TO_LOG: u32 = 3222163864u32; +pub const ERROR_PCW_EXECUTE_VIEW: u32 = 3222163870u32; +pub const ERROR_PCW_EXTFILE_BAD_FAMILY_FIELD: u32 = 3222163756u32; +pub const ERROR_PCW_EXTFILE_BAD_IGNORE_LENGTHS: u32 = 3222163814u32; +pub const ERROR_PCW_EXTFILE_BAD_IGNORE_OFFSETS: u32 = 3222163812u32; +pub const ERROR_PCW_EXTFILE_BAD_RETAIN_OFFSETS: u32 = 3222163817u32; +pub const ERROR_PCW_EXTFILE_BLANK_FILE_TABLE_KEY: u32 = 3222163755u32; +pub const ERROR_PCW_EXTFILE_BLANK_PATH_TO_FILE: u32 = 3222163758u32; +pub const ERROR_PCW_EXTFILE_IGNORE_COUNT_MISMATCH: u32 = 3222163815u32; +pub const ERROR_PCW_EXTFILE_LONG_FILE_TABLE_KEY: u32 = 3222163754u32; +pub const ERROR_PCW_EXTFILE_LONG_IGNORE_LENGTHS: u32 = 3222163813u32; +pub const ERROR_PCW_EXTFILE_LONG_IGNORE_OFFSETS: u32 = 3222163811u32; +pub const ERROR_PCW_EXTFILE_LONG_PATH_TO_FILE: u32 = 3222163757u32; +pub const ERROR_PCW_EXTFILE_LONG_RETAIN_OFFSETS: u32 = 3222163816u32; +pub const ERROR_PCW_EXTFILE_MISSING_FILE: u32 = 3222163759u32; +pub const ERROR_PCW_FAILED_CREATE_TRANSFORM: u32 = 3222163973u32; +pub const ERROR_PCW_FAILED_EXPAND_PATH: u32 = 3222163872u32; +pub const ERROR_PCW_FAMILY_RANGE_BAD_RETAIN_LENGTHS: u32 = 3222163809u32; +pub const ERROR_PCW_FAMILY_RANGE_BAD_RETAIN_OFFSETS: u32 = 3222163806u32; +pub const ERROR_PCW_FAMILY_RANGE_BLANK_FILE_TABLE_KEY: u32 = 3222163803u32; +pub const ERROR_PCW_FAMILY_RANGE_BLANK_RETAIN_LENGTHS: u32 = 3222163808u32; +pub const ERROR_PCW_FAMILY_RANGE_BLANK_RETAIN_OFFSETS: u32 = 3222163805u32; +pub const ERROR_PCW_FAMILY_RANGE_COUNT_MISMATCH: u32 = 3222163810u32; +pub const ERROR_PCW_FAMILY_RANGE_LONG_FILE_TABLE_KEY: u32 = 3222163802u32; +pub const ERROR_PCW_FAMILY_RANGE_LONG_RETAIN_LENGTHS: u32 = 3222163807u32; +pub const ERROR_PCW_FAMILY_RANGE_LONG_RETAIN_OFFSETS: u32 = 3222163804u32; +pub const ERROR_PCW_FAMILY_RANGE_NAME_TOO_LONG: u32 = 3222163800u32; +pub const ERROR_PCW_IMAGE_FAMILY_NAME_TOO_LONG: u32 = 3222163747u32; +pub const ERROR_PCW_IMAGE_PATH_NOT_EXIST: u32 = 3222163988u32; +pub const ERROR_PCW_INTERNAL_ERROR: u32 = 3222163969u32; +pub const ERROR_PCW_INVALID_LOG_LEVEL: u32 = 3222163862u32; +pub const ERROR_PCW_INVALID_MAJOR_VERSION: u32 = 3222163990u32; +pub const ERROR_PCW_INVALID_PARAMETER: u32 = 3222163860u32; +pub const ERROR_PCW_INVALID_PATCHMETADATA_PROP: u32 = 3222163856u32; +pub const ERROR_PCW_INVALID_PATCH_TYPE_SEQUENCING: u32 = 3222163977u32; +pub const ERROR_PCW_INVALID_PCP_EXTERNALFILES: u32 = 3222163982u32; +pub const ERROR_PCW_INVALID_PCP_FAMILYFILERANGES: u32 = 3222163992u32; +pub const ERROR_PCW_INVALID_PCP_IMAGEFAMILIES: u32 = 3222163983u32; +pub const ERROR_PCW_INVALID_PCP_PATCHSEQUENCE: u32 = 3222163984u32; +pub const ERROR_PCW_INVALID_PCP_PROPERTIES: u32 = 3222163991u32; +pub const ERROR_PCW_INVALID_PCP_PROPERTY: u32 = 3222163970u32; +pub const ERROR_PCW_INVALID_PCP_TARGETFILES_OPTIONALDATA: u32 = 3222163985u32; +pub const ERROR_PCW_INVALID_PCP_TARGETIMAGES: u32 = 3222163971u32; +pub const ERROR_PCW_INVALID_PCP_UPGRADEDFILESTOIGNORE: u32 = 3222163980u32; +pub const ERROR_PCW_INVALID_PCP_UPGRADEDFILES_OPTIONALDATA: u32 = 3222163986u32; +pub const ERROR_PCW_INVALID_PCP_UPGRADEDIMAGES: u32 = 3222163981u32; +pub const ERROR_PCW_INVALID_RANGE_ELEMENT: u32 = 3222163989u32; +pub const ERROR_PCW_INVALID_SUPERCEDENCE: u32 = 3222163857u32; +pub const ERROR_PCW_INVALID_SUPERSEDENCE_VALUE: u32 = 3222163976u32; +pub const ERROR_PCW_INVALID_UI_LEVEL: u32 = 3222163863u32; +pub const ERROR_PCW_LAX_VALIDATION_FLAGS: u32 = 3222163972u32; +pub const ERROR_PCW_MAJOR_UPGD_WITHOUT_SEQUENCING: u32 = 3222163843u32; +pub const ERROR_PCW_MATCHED_PRODUCT_VERSIONS: u32 = 3222163837u32; +pub const ERROR_PCW_MISMATCHED_PRODUCT_CODES: u32 = 3222163779u32; +pub const ERROR_PCW_MISMATCHED_PRODUCT_VERSIONS: u32 = 3222163780u32; +pub const ERROR_PCW_MISSING_DIRECTORY_TABLE: u32 = 3222163975u32; +pub const ERROR_PCW_MISSING_PATCHMETADATA: u32 = 3222163987u32; +pub const ERROR_PCW_MISSING_PATCH_GUID: u32 = 3222163719u32; +pub const ERROR_PCW_MISSING_PATCH_PATH: u32 = 3222163716u32; +pub const ERROR_PCW_NO_UPGRADED_IMAGES_TO_PATCH: u32 = 3222163723u32; +pub const ERROR_PCW_NULL_PATCHFAMILY: u32 = 3222163850u32; +pub const ERROR_PCW_NULL_SEQUENCE_NUMBER: u32 = 3222163851u32; +pub const ERROR_PCW_OBSOLETION_WITH_MSI30: u32 = 3222163839u32; +pub const ERROR_PCW_OBSOLETION_WITH_PATCHSEQUENCE: u32 = 3222163840u32; +pub const ERROR_PCW_OBSOLETION_WITH_SEQUENCE_DATA: u32 = 3222163838u32; +pub const ERROR_PCW_OODS_COPYING_MSI: u32 = 3222163726u32; +pub const ERROR_PCW_OPEN_VIEW: u32 = 3222163869u32; +pub const ERROR_PCW_OUT_OF_MEMORY: u32 = 3222163865u32; +pub const ERROR_PCW_PATCHMETADATA_PROP_NOT_SET: u32 = 3222163855u32; +pub const ERROR_PCW_PCP_BAD_FORMAT: u32 = 3222163714u32; +pub const ERROR_PCW_PCP_DOESNT_EXIST: u32 = 3222163713u32; +pub const ERROR_PCW_SEQUENCING_BAD_TARGET: u32 = 3222163854u32; +pub const ERROR_PCW_TARGET_BAD_PROD_CODE_VAL: u32 = 3222163744u32; +pub const ERROR_PCW_TARGET_BAD_PROD_VALIDATE: u32 = 3222163743u32; +pub const ERROR_PCW_TARGET_IMAGE_COMPRESSED: u32 = 3222163742u32; +pub const ERROR_PCW_TARGET_IMAGE_NAME_TOO_LONG: u32 = 3222163735u32; +pub const ERROR_PCW_TARGET_IMAGE_PATH_EMPTY: u32 = 3222163739u32; +pub const ERROR_PCW_TARGET_IMAGE_PATH_NOT_EXIST: u32 = 3222163740u32; +pub const ERROR_PCW_TARGET_IMAGE_PATH_NOT_MSI: u32 = 3222163741u32; +pub const ERROR_PCW_TARGET_IMAGE_PATH_TOO_LONG: u32 = 3222163738u32; +pub const ERROR_PCW_TARGET_MISSING_SRC_FILES: u32 = 3222163746u32; +pub const ERROR_PCW_TARGET_WRONG_PRODUCT_VERSION_COMP: u32 = 3222163979u32; +pub const ERROR_PCW_TFILEDATA_BAD_IGNORE_LENGTHS: u32 = 3222163822u32; +pub const ERROR_PCW_TFILEDATA_BAD_IGNORE_OFFSETS: u32 = 3222163820u32; +pub const ERROR_PCW_TFILEDATA_BAD_RETAIN_OFFSETS: u32 = 3222163825u32; +pub const ERROR_PCW_TFILEDATA_BAD_TARGET_FIELD: u32 = 3222163791u32; +pub const ERROR_PCW_TFILEDATA_BLANK_FILE_TABLE_KEY: u32 = 3222163789u32; +pub const ERROR_PCW_TFILEDATA_IGNORE_COUNT_MISMATCH: u32 = 3222163823u32; +pub const ERROR_PCW_TFILEDATA_LONG_FILE_TABLE_KEY: u32 = 3222163788u32; +pub const ERROR_PCW_TFILEDATA_LONG_IGNORE_LENGTHS: u32 = 3222163821u32; +pub const ERROR_PCW_TFILEDATA_LONG_IGNORE_OFFSETS: u32 = 3222163819u32; +pub const ERROR_PCW_TFILEDATA_LONG_RETAIN_OFFSETS: u32 = 3222163824u32; +pub const ERROR_PCW_TFILEDATA_MISSING_FILE_TABLE_KEY: u32 = 3222163790u32; +pub const ERROR_PCW_UFILEDATA_BAD_UPGRADED_FIELD: u32 = 3222163778u32; +pub const ERROR_PCW_UFILEDATA_BLANK_FILE_TABLE_KEY: u32 = 3222163752u32; +pub const ERROR_PCW_UFILEDATA_LONG_FILE_TABLE_KEY: u32 = 3222163751u32; +pub const ERROR_PCW_UFILEDATA_MISSING_FILE_TABLE_KEY: u32 = 3222163753u32; +pub const ERROR_PCW_UFILEIGNORE_BAD_FILE_TABLE_KEY: u32 = 3222163799u32; +pub const ERROR_PCW_UFILEIGNORE_BAD_UPGRADED_FIELD: u32 = 3222163796u32; +pub const ERROR_PCW_UFILEIGNORE_BLANK_FILE_TABLE_KEY: u32 = 3222163798u32; +pub const ERROR_PCW_UFILEIGNORE_LONG_FILE_TABLE_KEY: u32 = 3222163797u32; +pub const ERROR_PCW_UNKNOWN_ERROR: u32 = 3222163866u32; +pub const ERROR_PCW_UNKNOWN_INFO: u32 = 3222163867u32; +pub const ERROR_PCW_UNKNOWN_WARN: u32 = 3222163868u32; +pub const ERROR_PCW_UPGRADED_IMAGE_COMPRESSED: u32 = 3222163734u32; +pub const ERROR_PCW_UPGRADED_IMAGE_NAME_TOO_LONG: u32 = 3222163727u32; +pub const ERROR_PCW_UPGRADED_IMAGE_PATCH_PATH_NOT_EXIST: u32 = 3222163793u32; +pub const ERROR_PCW_UPGRADED_IMAGE_PATCH_PATH_NOT_MSI: u32 = 3222163794u32; +pub const ERROR_PCW_UPGRADED_IMAGE_PATCH_PATH_TOO_LONG: u32 = 3222163792u32; +pub const ERROR_PCW_UPGRADED_IMAGE_PATH_EMPTY: u32 = 3222163731u32; +pub const ERROR_PCW_UPGRADED_IMAGE_PATH_NOT_EXIST: u32 = 3222163732u32; +pub const ERROR_PCW_UPGRADED_IMAGE_PATH_NOT_MSI: u32 = 3222163733u32; +pub const ERROR_PCW_UPGRADED_IMAGE_PATH_TOO_LONG: u32 = 3222163730u32; +pub const ERROR_PCW_UPGRADED_MISSING_SRC_FILES: u32 = 3222163745u32; +pub const ERROR_PCW_VIEW_FETCH: u32 = 3222163871u32; +pub const ERROR_PCW_WRITE_SUMMARY_PROPERTIES: u32 = 3222163787u32; +pub const ERROR_PCW_WRONG_PATCHMETADATA_STRD_PROP: u32 = 3222163859u32; +pub const ERROR_ROLLBACK_DISABLED: u32 = 1653u32; +pub const FUSION_REFCOUNT_FILEPATH_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb02f9d65_fb77_4f7a_afa5_b391309f11c9); +pub const FUSION_REFCOUNT_OPAQUE_STRING_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2ec93463_b0c3_45e1_8364_327e96aea856); +pub const FUSION_REFCOUNT_UNINSTALL_SUBKEY_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8cedc215_ac4b_488b_93c0_a50a49cb2fb8); +pub const IACTIONNAME_ADMIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ADMIN"); +pub const IACTIONNAME_ADVERTISE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ADVERTISE"); +pub const IACTIONNAME_COLLECTUSERINFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CollectUserInfo"); +pub const IACTIONNAME_FIRSTRUN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FirstRun"); +pub const IACTIONNAME_INSTALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("INSTALL"); +pub const IACTIONNAME_SEQUENCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SEQUENCE"); +pub const IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_ALREADY_INSTALLED: u32 = 3u32; +pub const IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_INSTALLED: u32 = 1u32; +pub const IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_REFRESHED: u32 = 2u32; +pub const IASSEMBLYCACHEITEM_COMMIT_FLAG_REFRESH: u32 = 1u32; +pub const IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED: IASSEMBLYCACHE_UNINSTALL_DISPOSITION = 3u32; +pub const IASSEMBLYCACHE_UNINSTALL_DISPOSITION_DELETE_PENDING: IASSEMBLYCACHE_UNINSTALL_DISPOSITION = 4u32; +pub const IASSEMBLYCACHE_UNINSTALL_DISPOSITION_STILL_IN_USE: IASSEMBLYCACHE_UNINSTALL_DISPOSITION = 2u32; +pub const IASSEMBLYCACHE_UNINSTALL_DISPOSITION_UNINSTALLED: IASSEMBLYCACHE_UNINSTALL_DISPOSITION = 1u32; +pub const INFO_BASE: u32 = 3222229249u32; +pub const INFO_ENTERING_PHASE_I: u32 = 3222229251u32; +pub const INFO_ENTERING_PHASE_II: u32 = 3222229256u32; +pub const INFO_ENTERING_PHASE_III: u32 = 3222229257u32; +pub const INFO_ENTERING_PHASE_IV: u32 = 3222229258u32; +pub const INFO_ENTERING_PHASE_I_VALIDATION: u32 = 3222229250u32; +pub const INFO_ENTERING_PHASE_V: u32 = 3222229259u32; +pub const INFO_GENERATING_METADATA: u32 = 3222229265u32; +pub const INFO_PASSED_MAIN_CONTROL: u32 = 3222229249u32; +pub const INFO_PATCHCACHE_FILEINFO_FAILURE: u32 = 3222229267u32; +pub const INFO_PATCHCACHE_PCI_READFAILURE: u32 = 3222229268u32; +pub const INFO_PATCHCACHE_PCI_WRITEFAILURE: u32 = 3222229269u32; +pub const INFO_PCP_PATH: u32 = 3222229252u32; +pub const INFO_PROPERTY: u32 = 3222229255u32; +pub const INFO_SET_OPTIONS: u32 = 3222229254u32; +pub const INFO_SUCCESSFUL_PATCH_CREATION: u32 = 3222229271u32; +pub const INFO_TEMP_DIR: u32 = 3222229253u32; +pub const INFO_TEMP_DIR_CLEANUP: u32 = 3222229266u32; +pub const INFO_USING_USER_MSI_FOR_PATCH_TABLES: u32 = 3222229270u32; +pub const INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE: INSTALLFEATUREATTRIBUTE = 16i32; +pub const INSTALLFEATUREATTRIBUTE_FAVORADVERTISE: INSTALLFEATUREATTRIBUTE = 8i32; +pub const INSTALLFEATUREATTRIBUTE_FAVORLOCAL: INSTALLFEATUREATTRIBUTE = 1i32; +pub const INSTALLFEATUREATTRIBUTE_FAVORSOURCE: INSTALLFEATUREATTRIBUTE = 2i32; +pub const INSTALLFEATUREATTRIBUTE_FOLLOWPARENT: INSTALLFEATUREATTRIBUTE = 4i32; +pub const INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE: INSTALLFEATUREATTRIBUTE = 32i32; +pub const INSTALLLEVEL_DEFAULT: INSTALLLEVEL = 0i32; +pub const INSTALLLEVEL_MAXIMUM: INSTALLLEVEL = 65535i32; +pub const INSTALLLEVEL_MINIMUM: INSTALLLEVEL = 1i32; +pub const INSTALLLOGATTRIBUTES_APPEND: INSTALLLOGATTRIBUTES = 1i32; +pub const INSTALLLOGATTRIBUTES_FLUSHEACHLINE: INSTALLLOGATTRIBUTES = 2i32; +pub const INSTALLLOGMODE_ACTIONDATA: INSTALLLOGMODE = 512i32; +pub const INSTALLLOGMODE_ACTIONSTART: INSTALLLOGMODE = 256i32; +pub const INSTALLLOGMODE_COMMONDATA: INSTALLLOGMODE = 2048i32; +pub const INSTALLLOGMODE_ERROR: INSTALLLOGMODE = 2i32; +pub const INSTALLLOGMODE_EXTRADEBUG: INSTALLLOGMODE = 8192i32; +pub const INSTALLLOGMODE_FATALEXIT: INSTALLLOGMODE = 1i32; +pub const INSTALLLOGMODE_FILESINUSE: INSTALLLOGMODE = 32i32; +pub const INSTALLLOGMODE_INFO: INSTALLLOGMODE = 16i32; +pub const INSTALLLOGMODE_INITIALIZE: INSTALLLOGMODE = 4096i32; +pub const INSTALLLOGMODE_INSTALLEND: INSTALLLOGMODE = 134217728i32; +pub const INSTALLLOGMODE_INSTALLSTART: INSTALLLOGMODE = 67108864i32; +pub const INSTALLLOGMODE_LOGONLYONERROR: INSTALLLOGMODE = 16384i32; +pub const INSTALLLOGMODE_LOGPERFORMANCE: INSTALLLOGMODE = 32768i32; +pub const INSTALLLOGMODE_OUTOFDISKSPACE: INSTALLLOGMODE = 128i32; +pub const INSTALLLOGMODE_PROGRESS: INSTALLLOGMODE = 1024i32; +pub const INSTALLLOGMODE_PROPERTYDUMP: INSTALLLOGMODE = 1024i32; +pub const INSTALLLOGMODE_RESOLVESOURCE: INSTALLLOGMODE = 64i32; +pub const INSTALLLOGMODE_RMFILESINUSE: INSTALLLOGMODE = 33554432i32; +pub const INSTALLLOGMODE_SHOWDIALOG: INSTALLLOGMODE = 16384i32; +pub const INSTALLLOGMODE_TERMINATE: INSTALLLOGMODE = 8192i32; +pub const INSTALLLOGMODE_USER: INSTALLLOGMODE = 8i32; +pub const INSTALLLOGMODE_VERBOSE: INSTALLLOGMODE = 4096i32; +pub const INSTALLLOGMODE_WARNING: INSTALLLOGMODE = 4i32; +pub const INSTALLMESSAGE_ACTIONDATA: INSTALLMESSAGE = 150994944i32; +pub const INSTALLMESSAGE_ACTIONSTART: INSTALLMESSAGE = 134217728i32; +pub const INSTALLMESSAGE_COMMONDATA: INSTALLMESSAGE = 184549376i32; +pub const INSTALLMESSAGE_ERROR: INSTALLMESSAGE = 16777216i32; +pub const INSTALLMESSAGE_FATALEXIT: INSTALLMESSAGE = 0i32; +pub const INSTALLMESSAGE_FILESINUSE: INSTALLMESSAGE = 83886080i32; +pub const INSTALLMESSAGE_INFO: INSTALLMESSAGE = 67108864i32; +pub const INSTALLMESSAGE_INITIALIZE: INSTALLMESSAGE = 201326592i32; +pub const INSTALLMESSAGE_INSTALLEND: INSTALLMESSAGE = 452984832i32; +pub const INSTALLMESSAGE_INSTALLSTART: INSTALLMESSAGE = 436207616i32; +pub const INSTALLMESSAGE_OUTOFDISKSPACE: INSTALLMESSAGE = 117440512i32; +pub const INSTALLMESSAGE_PERFORMANCE: INSTALLMESSAGE = 251658240i32; +pub const INSTALLMESSAGE_PROGRESS: INSTALLMESSAGE = 167772160i32; +pub const INSTALLMESSAGE_RESOLVESOURCE: INSTALLMESSAGE = 100663296i32; +pub const INSTALLMESSAGE_RMFILESINUSE: INSTALLMESSAGE = 419430400i32; +pub const INSTALLMESSAGE_SHOWDIALOG: INSTALLMESSAGE = 234881024i32; +pub const INSTALLMESSAGE_TERMINATE: INSTALLMESSAGE = 218103808i32; +pub const INSTALLMESSAGE_TYPEMASK: i32 = -16777216i32; +pub const INSTALLMESSAGE_USER: INSTALLMESSAGE = 50331648i32; +pub const INSTALLMESSAGE_WARNING: INSTALLMESSAGE = 33554432i32; +pub const INSTALLMODE_DEFAULT: INSTALLMODE = 0i32; +pub const INSTALLMODE_EXISTING: INSTALLMODE = -1i32; +pub const INSTALLMODE_NODETECTION: INSTALLMODE = -2i32; +pub const INSTALLMODE_NODETECTION_ANY: INSTALLMODE = -4i32; +pub const INSTALLMODE_NOSOURCERESOLUTION: INSTALLMODE = -3i32; +pub const INSTALLPROPERTY_ASSIGNMENTTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AssignmentType"); +pub const INSTALLPROPERTY_AUTHORIZED_LUA_APP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AuthorizedLUAApp"); +pub const INSTALLPROPERTY_DISKPROMPT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskPrompt"); +pub const INSTALLPROPERTY_DISPLAYNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisplayName"); +pub const INSTALLPROPERTY_HELPLINK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HelpLink"); +pub const INSTALLPROPERTY_HELPTELEPHONE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HelpTelephone"); +pub const INSTALLPROPERTY_INSTALLDATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InstallDate"); +pub const INSTALLPROPERTY_INSTALLEDLANGUAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InstalledLanguage"); +pub const INSTALLPROPERTY_INSTALLEDPRODUCTNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InstalledProductName"); +pub const INSTALLPROPERTY_INSTALLLOCATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InstallLocation"); +pub const INSTALLPROPERTY_INSTALLSOURCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InstallSource"); +pub const INSTALLPROPERTY_INSTANCETYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InstanceType"); +pub const INSTALLPROPERTY_LANGUAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Language"); +pub const INSTALLPROPERTY_LASTUSEDSOURCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastUsedSource"); +pub const INSTALLPROPERTY_LASTUSEDTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastUsedType"); +pub const INSTALLPROPERTY_LOCALPACKAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LocalPackage"); +pub const INSTALLPROPERTY_LUAENABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LUAEnabled"); +pub const INSTALLPROPERTY_MEDIAPACKAGEPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MediaPackagePath"); +pub const INSTALLPROPERTY_MOREINFOURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MoreInfoURL"); +pub const INSTALLPROPERTY_PACKAGECODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PackageCode"); +pub const INSTALLPROPERTY_PACKAGENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PackageName"); +pub const INSTALLPROPERTY_PATCHSTATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("State"); +pub const INSTALLPROPERTY_PATCHTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PatchType"); +pub const INSTALLPROPERTY_PRODUCTICON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProductIcon"); +pub const INSTALLPROPERTY_PRODUCTID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProductID"); +pub const INSTALLPROPERTY_PRODUCTNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProductName"); +pub const INSTALLPROPERTY_PRODUCTSTATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("State"); +pub const INSTALLPROPERTY_PUBLISHER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Publisher"); +pub const INSTALLPROPERTY_REGCOMPANY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RegCompany"); +pub const INSTALLPROPERTY_REGOWNER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RegOwner"); +pub const INSTALLPROPERTY_TRANSFORMS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Transforms"); +pub const INSTALLPROPERTY_UNINSTALLABLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Uninstallable"); +pub const INSTALLPROPERTY_URLINFOABOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("URLInfoAbout"); +pub const INSTALLPROPERTY_URLUPDATEINFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("URLUpdateInfo"); +pub const INSTALLPROPERTY_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Version"); +pub const INSTALLPROPERTY_VERSIONMAJOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VersionMajor"); +pub const INSTALLPROPERTY_VERSIONMINOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VersionMinor"); +pub const INSTALLPROPERTY_VERSIONSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VersionString"); +pub const INSTALLSTATE_ABSENT: INSTALLSTATE = 2i32; +pub const INSTALLSTATE_ADVERTISED: INSTALLSTATE = 1i32; +pub const INSTALLSTATE_BADCONFIG: INSTALLSTATE = -6i32; +pub const INSTALLSTATE_BROKEN: INSTALLSTATE = 0i32; +pub const INSTALLSTATE_DEFAULT: INSTALLSTATE = 5i32; +pub const INSTALLSTATE_INCOMPLETE: INSTALLSTATE = -5i32; +pub const INSTALLSTATE_INVALIDARG: INSTALLSTATE = -2i32; +pub const INSTALLSTATE_LOCAL: INSTALLSTATE = 3i32; +pub const INSTALLSTATE_MOREDATA: INSTALLSTATE = -3i32; +pub const INSTALLSTATE_NOTUSED: INSTALLSTATE = -7i32; +pub const INSTALLSTATE_REMOVED: INSTALLSTATE = 1i32; +pub const INSTALLSTATE_SOURCE: INSTALLSTATE = 4i32; +pub const INSTALLSTATE_SOURCEABSENT: INSTALLSTATE = -4i32; +pub const INSTALLSTATE_UNKNOWN: INSTALLSTATE = -1i32; +pub const INSTALLTYPE_DEFAULT: INSTALLTYPE = 0i32; +pub const INSTALLTYPE_NETWORK_IMAGE: INSTALLTYPE = 1i32; +pub const INSTALLTYPE_SINGLE_INSTANCE: INSTALLTYPE = 2i32; +pub const INSTALLUILEVEL_BASIC: INSTALLUILEVEL = 3i32; +pub const INSTALLUILEVEL_DEFAULT: INSTALLUILEVEL = 1i32; +pub const INSTALLUILEVEL_ENDDIALOG: INSTALLUILEVEL = 128i32; +pub const INSTALLUILEVEL_FULL: INSTALLUILEVEL = 5i32; +pub const INSTALLUILEVEL_HIDECANCEL: INSTALLUILEVEL = 32i32; +pub const INSTALLUILEVEL_NOCHANGE: INSTALLUILEVEL = 0i32; +pub const INSTALLUILEVEL_NONE: INSTALLUILEVEL = 2i32; +pub const INSTALLUILEVEL_PROGRESSONLY: INSTALLUILEVEL = 64i32; +pub const INSTALLUILEVEL_REDUCED: INSTALLUILEVEL = 4i32; +pub const INSTALLUILEVEL_SOURCERESONLY: INSTALLUILEVEL = 256i32; +pub const INSTALLUILEVEL_UACONLY: INSTALLUILEVEL = 512i32; +pub const IPROPNAME_ACTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ACTION"); +pub const IPROPNAME_ADMINTOOLS_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AdminToolsFolder"); +pub const IPROPNAME_ADMINUSER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AdminUser"); +pub const IPROPNAME_ADMIN_PROPERTIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AdminProperties"); +pub const IPROPNAME_AFTERREBOOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AFTERREBOOT"); +pub const IPROPNAME_ALLOWEDPROPERTIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SecureCustomProperties"); +pub const IPROPNAME_ALLUSERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ALLUSERS"); +pub const IPROPNAME_APPDATA_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AppDataFolder"); +pub const IPROPNAME_ARM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Arm"); +pub const IPROPNAME_ARM64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Arm64"); +pub const IPROPNAME_ARPAUTHORIZEDCDFPREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPAUTHORIZEDCDFPREFIX"); +pub const IPROPNAME_ARPCOMMENTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPCOMMENTS"); +pub const IPROPNAME_ARPCONTACT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPCONTACT"); +pub const IPROPNAME_ARPHELPLINK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPHELPLINK"); +pub const IPROPNAME_ARPHELPTELEPHONE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPHELPTELEPHONE"); +pub const IPROPNAME_ARPINSTALLLOCATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPINSTALLLOCATION"); +pub const IPROPNAME_ARPNOMODIFY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPNOMODIFY"); +pub const IPROPNAME_ARPNOREMOVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPNOREMOVE"); +pub const IPROPNAME_ARPNOREPAIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPNOREPAIR"); +pub const IPROPNAME_ARPPRODUCTICON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPPRODUCTICON"); +pub const IPROPNAME_ARPREADME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPREADME"); +pub const IPROPNAME_ARPSETTINGSIDENTIFIER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIARPSETTINGSIDENTIFIER"); +pub const IPROPNAME_ARPSHIMFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHIMFLAGS"); +pub const IPROPNAME_ARPSHIMSERVICEPACKLEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHIMSERVICEPACKLEVEL"); +pub const IPROPNAME_ARPSHIMVERSIONNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHIMVERSIONNT"); +pub const IPROPNAME_ARPSIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPSIZE"); +pub const IPROPNAME_ARPSYSTEMCOMPONENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPSYSTEMCOMPONENT"); +pub const IPROPNAME_ARPURLINFOABOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPURLINFOABOUT"); +pub const IPROPNAME_ARPURLUPDATEINFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ARPURLUPDATEINFO"); +pub const IPROPNAME_AVAILABLEFREEREG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AVAILABLEFREEREG"); +pub const IPROPNAME_BORDERSIDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BorderSide"); +pub const IPROPNAME_BORDERTOP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BorderTop"); +pub const IPROPNAME_CAPTIONHEIGHT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CaptionHeight"); +pub const IPROPNAME_CARRYINGNDP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CARRYINGNDP"); +pub const IPROPNAME_CHECKCRCS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSICHECKCRCS"); +pub const IPROPNAME_COLORBITS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ColorBits"); +pub const IPROPNAME_COMMONAPPDATA_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CommonAppDataFolder"); +pub const IPROPNAME_COMMONFILES64_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CommonFiles64Folder"); +pub const IPROPNAME_COMMONFILES_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CommonFilesFolder"); +pub const IPROPNAME_COMPANYNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("COMPANYNAME"); +pub const IPROPNAME_COMPONENTADDDEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("COMPADDDEFAULT"); +pub const IPROPNAME_COMPONENTADDLOCAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("COMPADDLOCAL"); +pub const IPROPNAME_COMPONENTADDSOURCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("COMPADDSOURCE"); +pub const IPROPNAME_COMPUTERNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ComputerName"); +pub const IPROPNAME_COSTINGCOMPLETE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CostingComplete"); +pub const IPROPNAME_CUSTOMACTIONDATA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CustomActionData"); +pub const IPROPNAME_DATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Date"); +pub const IPROPNAME_DATETIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DateTime"); +pub const IPROPNAME_DEFAULTUIFONT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultUIFont"); +pub const IPROPNAME_DESKTOP_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DesktopFolder"); +pub const IPROPNAME_DISABLEADVTSHORTCUTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DISABLEADVTSHORTCUTS"); +pub const IPROPNAME_DISABLEROLLBACK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DISABLEROLLBACK"); +pub const IPROPNAME_DISKPROMPT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskPrompt"); +pub const IPROPNAME_ENABLEUSERCONTROL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableUserControl"); +pub const IPROPNAME_ENFORCE_UPGRADE_COMPONENT_RULES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIENFORCEUPGRADECOMPONENTRULES"); +pub const IPROPNAME_EXECUTEACTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EXECUTEACTION"); +pub const IPROPNAME_EXECUTEMODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EXECUTEMODE"); +pub const IPROPNAME_FAVORITES_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FavoritesFolder"); +pub const IPROPNAME_FEATUREADDDEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ADDDEFAULT"); +pub const IPROPNAME_FEATUREADDLOCAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ADDLOCAL"); +pub const IPROPNAME_FEATUREADDSOURCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ADDSOURCE"); +pub const IPROPNAME_FEATUREADVERTISE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ADVERTISE"); +pub const IPROPNAME_FEATUREREMOVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("REMOVE"); +pub const IPROPNAME_FILEADDDEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FILEADDDEFAULT"); +pub const IPROPNAME_FILEADDLOCAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FILEADDLOCAL"); +pub const IPROPNAME_FILEADDSOURCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FILEADDSOURCE"); +pub const IPROPNAME_FONTS_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FontsFolder"); +pub const IPROPNAME_HIDDEN_PROPERTIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiHiddenProperties"); +pub const IPROPNAME_HIDECANCEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiUIHideCancel"); +pub const IPROPNAME_IA64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IA64"); +pub const IPROPNAME_INSTALLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Installed"); +pub const IPROPNAME_INSTALLLANGUAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProductLanguage"); +pub const IPROPNAME_INSTALLLEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("INSTALLLEVEL"); +pub const IPROPNAME_INSTALLPERUSER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIINSTALLPERUSER"); +pub const IPROPNAME_INTEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Intel"); +pub const IPROPNAME_INTEL64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Intel64"); +pub const IPROPNAME_INTERNALINSTALLEDPERUSER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIINTERNALINSTALLEDPERUSER"); +pub const IPROPNAME_ISADMINPACKAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IsAdminPackage"); +pub const IPROPNAME_LEFTUNIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LeftUnit"); +pub const IPROPNAME_LIMITUI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LIMITUI"); +pub const IPROPNAME_LOCALAPPDATA_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LocalAppDataFolder"); +pub const IPROPNAME_LOGACTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LOGACTION"); +pub const IPROPNAME_LOGONUSER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogonUser"); +pub const IPROPNAME_MANUFACTURER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Manufacturer"); +pub const IPROPNAME_MSIAMD64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiAMD64"); +pub const IPROPNAME_MSIDISABLEEEUI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIDISABLEEEUI"); +pub const IPROPNAME_MSIDISABLELUAPATCHING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIDISABLELUAPATCHING"); +pub const IPROPNAME_MSIINSTANCEGUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIINSTANCEGUID"); +pub const IPROPNAME_MSILOGFILELOCATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiLogFileLocation"); +pub const IPROPNAME_MSILOGGINGMODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiLogging"); +pub const IPROPNAME_MSINEWINSTANCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSINEWINSTANCE"); +pub const IPROPNAME_MSINODISABLEMEDIA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSINODISABLEMEDIA"); +pub const IPROPNAME_MSIPACKAGEDOWNLOADLOCALCOPY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIPACKAGEDOWNLOADLOCALCOPY"); +pub const IPROPNAME_MSIPATCHDOWNLOADLOCALCOPY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIPATCHDOWNLOADLOCALCOPY"); +pub const IPROPNAME_MSIPATCHREMOVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIPATCHREMOVE"); +pub const IPROPNAME_MSITABLETPC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiTabletPC"); +pub const IPROPNAME_MSIX64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Msix64"); +pub const IPROPNAME_MSI_FASTINSTALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIFASTINSTALL"); +pub const IPROPNAME_MSI_REBOOT_PENDING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiSystemRebootPending"); +pub const IPROPNAME_MSI_RM_CONTROL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIRESTARTMANAGERCONTROL"); +pub const IPROPNAME_MSI_RM_DISABLE_RESTART: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIDISABLERMRESTART"); +pub const IPROPNAME_MSI_RM_SESSION_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiRestartManagerSessionKey"); +pub const IPROPNAME_MSI_RM_SHUTDOWN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIRMSHUTDOWN"); +pub const IPROPNAME_MSI_UAC_DEPLOYMENT_COMPLIANT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIDEPLOYMENTCOMPLIANT"); +pub const IPROPNAME_MSI_UNINSTALL_SUPERSEDED_COMPONENTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIUNINSTALLSUPERSEDEDCOMPONENTS"); +pub const IPROPNAME_MSI_USE_REAL_ADMIN_DETECTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIUSEREALADMINDETECTION"); +pub const IPROPNAME_MYPICTURES_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MyPicturesFolder"); +pub const IPROPNAME_NETASSEMBLYSUPPORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiNetAssemblySupport"); +pub const IPROPNAME_NETHOOD_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NetHoodFolder"); +pub const IPROPNAME_NOCOMPANYNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NOCOMPANYNAME"); +pub const IPROPNAME_NOUSERNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NOUSERNAME"); +pub const IPROPNAME_NTPRODUCTTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiNTProductType"); +pub const IPROPNAME_NTSUITEBACKOFFICE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiNTSuiteBackOffice"); +pub const IPROPNAME_NTSUITEDATACENTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiNTSuiteDataCenter"); +pub const IPROPNAME_NTSUITEENTERPRISE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiNTSuiteEnterprise"); +pub const IPROPNAME_NTSUITEPERSONAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiNTSuitePersonal"); +pub const IPROPNAME_NTSUITESMALLBUSINESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiNTSuiteSmallBusiness"); +pub const IPROPNAME_NTSUITESMALLBUSINESSRESTRICTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiNTSuiteSmallBusinessRestricted"); +pub const IPROPNAME_NTSUITEWEBSERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiNTSuiteWebServer"); +pub const IPROPNAME_OLEADVTSUPPORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OLEAdvtSupport"); +pub const IPROPNAME_OUTOFDISKSPACE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OutOfDiskSpace"); +pub const IPROPNAME_OUTOFNORBDISKSPACE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OutOfNoRbDiskSpace"); +pub const IPROPNAME_PATCH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PATCH"); +pub const IPROPNAME_PATCHNEWPACKAGECODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PATCHNEWPACKAGECODE"); +pub const IPROPNAME_PATCHNEWSUMMARYCOMMENTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PATCHNEWSUMMARYCOMMENTS"); +pub const IPROPNAME_PATCHNEWSUMMARYSUBJECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PATCHNEWSUMMARYSUBJECT"); +pub const IPROPNAME_PERSONAL_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersonalFolder"); +pub const IPROPNAME_PHYSICALMEMORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PhysicalMemory"); +pub const IPROPNAME_PIDKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PIDKEY"); +pub const IPROPNAME_PIDTEMPLATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PIDTemplate"); +pub const IPROPNAME_PRESELECTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Preselected"); +pub const IPROPNAME_PRIMARYFOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PRIMARYFOLDER"); +pub const IPROPNAME_PRIMARYFOLDER_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrimaryVolumePath"); +pub const IPROPNAME_PRIMARYFOLDER_SPACEAVAILABLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrimaryVolumeSpaceAvailable"); +pub const IPROPNAME_PRIMARYFOLDER_SPACEREMAINING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrimaryVolumeSpaceRemaining"); +pub const IPROPNAME_PRIMARYFOLDER_SPACEREQUIRED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrimaryVolumeSpaceRequired"); +pub const IPROPNAME_PRINTHOOD_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintHoodFolder"); +pub const IPROPNAME_PRIVILEGED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Privileged"); +pub const IPROPNAME_PRODUCTCODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProductCode"); +pub const IPROPNAME_PRODUCTID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProductID"); +pub const IPROPNAME_PRODUCTLANGUAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PRODUCTLANGUAGE"); +pub const IPROPNAME_PRODUCTNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProductName"); +pub const IPROPNAME_PRODUCTSTATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProductState"); +pub const IPROPNAME_PRODUCTVERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProductVersion"); +pub const IPROPNAME_PROGRAMFILES64_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProgramFiles64Folder"); +pub const IPROPNAME_PROGRAMFILES_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProgramFilesFolder"); +pub const IPROPNAME_PROGRAMMENU_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProgramMenuFolder"); +pub const IPROPNAME_PROGRESSONLY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiUIProgressOnly"); +pub const IPROPNAME_PROMPTROLLBACKCOST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PROMPTROLLBACKCOST"); +pub const IPROPNAME_REBOOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("REBOOT"); +pub const IPROPNAME_REBOOTPROMPT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("REBOOTPROMPT"); +pub const IPROPNAME_RECENT_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RecentFolder"); +pub const IPROPNAME_REDIRECTEDDLLSUPPORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RedirectedDllSupport"); +pub const IPROPNAME_REINSTALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("REINSTALL"); +pub const IPROPNAME_REINSTALLMODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("REINSTALLMODE"); +pub const IPROPNAME_REMOTEADMINTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RemoteAdminTS"); +pub const IPROPNAME_REPLACEDINUSEFILES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReplacedInUseFiles"); +pub const IPROPNAME_RESTRICTEDUSERCONTROL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestrictedUserControl"); +pub const IPROPNAME_RESUME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RESUME"); +pub const IPROPNAME_ROLLBACKDISABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RollbackDisabled"); +pub const IPROPNAME_ROOTDRIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ROOTDRIVE"); +pub const IPROPNAME_RUNNINGELEVATED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiRunningElevated"); +pub const IPROPNAME_SCREENX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScreenX"); +pub const IPROPNAME_SCREENY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScreenY"); +pub const IPROPNAME_SENDTO_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SendToFolder"); +pub const IPROPNAME_SEQUENCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SEQUENCE"); +pub const IPROPNAME_SERVICEPACKLEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServicePackLevel"); +pub const IPROPNAME_SERVICEPACKLEVELMINOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServicePackLevelMinor"); +pub const IPROPNAME_SHAREDWINDOWS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SharedWindows"); +pub const IPROPNAME_SHELLADVTSUPPORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShellAdvtSupport"); +pub const IPROPNAME_SHORTFILENAMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHORTFILENAMES"); +pub const IPROPNAME_SOURCEDIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SourceDir"); +pub const IPROPNAME_SOURCELIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SOURCELIST"); +pub const IPROPNAME_SOURCERESONLY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiUISourceResOnly"); +pub const IPROPNAME_STARTMENU_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StartMenuFolder"); +pub const IPROPNAME_STARTUP_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StartupFolder"); +pub const IPROPNAME_SYSTEM16_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System16Folder"); +pub const IPROPNAME_SYSTEM64_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System64Folder"); +pub const IPROPNAME_SYSTEMLANGUAGEID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SystemLanguageID"); +pub const IPROPNAME_SYSTEM_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SystemFolder"); +pub const IPROPNAME_TARGETDIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TARGETDIR"); +pub const IPROPNAME_TEMPLATE_AMD64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AMD64"); +pub const IPROPNAME_TEMPLATE_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TemplateFolder"); +pub const IPROPNAME_TEMPLATE_X64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("x64"); +pub const IPROPNAME_TEMP_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TempFolder"); +pub const IPROPNAME_TERMSERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TerminalServer"); +pub const IPROPNAME_TEXTHEIGHT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TextHeight"); +pub const IPROPNAME_TEXTHEIGHT_CORRECTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TextHeightCorrection"); +pub const IPROPNAME_TEXTINTERNALLEADING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TextInternalLeading"); +pub const IPROPNAME_TIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Time"); +pub const IPROPNAME_TRANSFORMS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TRANSFORMS"); +pub const IPROPNAME_TRANSFORMSATSOURCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TRANSFORMSATSOURCE"); +pub const IPROPNAME_TRANSFORMSSECURE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TRANSFORMSSECURE"); +pub const IPROPNAME_TRUEADMINUSER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiTrueAdminUser"); +pub const IPROPNAME_TTCSUPPORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TTCSupport"); +pub const IPROPNAME_UACONLY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiUIUACOnly"); +pub const IPROPNAME_UPDATESTARTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UpdateStarted"); +pub const IPROPNAME_UPGRADECODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UpgradeCode"); +pub const IPROPNAME_USERLANGUAGEID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UserLanguageID"); +pub const IPROPNAME_USERNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("USERNAME"); +pub const IPROPNAME_USERSID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UserSID"); +pub const IPROPNAME_VERSION9X: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Version9X"); +pub const IPROPNAME_VERSIONNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VersionNT"); +pub const IPROPNAME_VERSIONNT64: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VersionNT64"); +pub const IPROPNAME_VIRTUALMEMORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VirtualMemory"); +pub const IPROPNAME_WIN32ASSEMBLYSUPPORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MsiWin32AssemblySupport"); +pub const IPROPNAME_WINDOWSBUILD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WindowsBuild"); +pub const IPROPNAME_WINDOWS_FOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WindowsFolder"); +pub const IPROPNAME_WINDOWS_VOLUME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WindowsVolume"); +pub const IPROPVALUE_EXECUTEMODE_NONE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NONE"); +pub const IPROPVALUE_EXECUTEMODE_SCRIPT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCRIPT"); +pub const IPROPVALUE_FEATURE_ALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ALL"); +pub const IPROPVALUE_MSI_RM_CONTROL_DISABLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Disable"); +pub const IPROPVALUE_MSI_RM_CONTROL_DISABLESHUTDOWN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableShutdown"); +pub const IPROPVALUE_RBCOST_FAIL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("F"); +pub const IPROPVALUE_RBCOST_PROMPT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("P"); +pub const IPROPVALUE_RBCOST_SILENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("D"); +pub const IPROPVALUE__CARRYINGNDP_URTREINSTALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("URTREINSTALL"); +pub const IPROPVALUE__CARRYINGNDP_URTUPGRADE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("URTUPGRADE"); +pub const LIBID_MsmMergeTypeLib: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0adda82f_2c26_11d2_ad65_00a0c9af11a6); +pub const LOGALL: u32 = 15u32; +pub const LOGERR: u32 = 4u32; +pub const LOGINFO: u32 = 1u32; +pub const LOGNONE: u32 = 0u32; +pub const LOGPERFMESSAGES: u32 = 8u32; +pub const LOGTOKEN_NO_LOG: u32 = 1u32; +pub const LOGTOKEN_SETUPAPI_APPLOG: u32 = 2u32; +pub const LOGTOKEN_SETUPAPI_DEVLOG: u32 = 3u32; +pub const LOGTOKEN_TYPE_MASK: u32 = 3u32; +pub const LOGTOKEN_UNSPECIFIED: u32 = 0u32; +pub const LOGWARN: u32 = 2u32; +pub const MAX_FEATURE_CHARS: u32 = 38u32; +pub const MAX_GUID_CHARS: u32 = 38u32; +pub const MSIADVERTISEOPTIONFLAGS_INSTANCE: MSIADVERTISEOPTIONFLAGS = 1i32; +pub const MSIARCHITECTUREFLAGS_AMD64: MSIARCHITECTUREFLAGS = 4i32; +pub const MSIARCHITECTUREFLAGS_ARM: MSIARCHITECTUREFLAGS = 8i32; +pub const MSIARCHITECTUREFLAGS_IA64: MSIARCHITECTUREFLAGS = 2i32; +pub const MSIARCHITECTUREFLAGS_X86: MSIARCHITECTUREFLAGS = 1i32; +pub const MSIASSEMBLYINFO_NETASSEMBLY: MSIASSEMBLYINFO = 0u32; +pub const MSIASSEMBLYINFO_WIN32ASSEMBLY: MSIASSEMBLYINFO = 1u32; +pub const MSICODE_PATCH: MSICODE = 1073741824i32; +pub const MSICODE_PRODUCT: MSICODE = 0i32; +pub const MSICOLINFO_NAMES: MSICOLINFO = 0i32; +pub const MSICOLINFO_TYPES: MSICOLINFO = 1i32; +pub const MSICONDITION_ERROR: MSICONDITION = 3i32; +pub const MSICONDITION_FALSE: MSICONDITION = 0i32; +pub const MSICONDITION_NONE: MSICONDITION = 2i32; +pub const MSICONDITION_TRUE: MSICONDITION = 1i32; +pub const MSICOSTTREE_CHILDREN: MSICOSTTREE = 1i32; +pub const MSICOSTTREE_PARENTS: MSICOSTTREE = 2i32; +pub const MSICOSTTREE_RESERVED: MSICOSTTREE = 3i32; +pub const MSICOSTTREE_SELFONLY: MSICOSTTREE = 0i32; +pub const MSIDBERROR_BADCABINET: MSIDBERROR = 26i32; +pub const MSIDBERROR_BADCASE: MSIDBERROR = 8i32; +pub const MSIDBERROR_BADCATEGORY: MSIDBERROR = 23i32; +pub const MSIDBERROR_BADCONDITION: MSIDBERROR = 15i32; +pub const MSIDBERROR_BADCUSTOMSOURCE: MSIDBERROR = 20i32; +pub const MSIDBERROR_BADDEFAULTDIR: MSIDBERROR = 18i32; +pub const MSIDBERROR_BADFILENAME: MSIDBERROR = 13i32; +pub const MSIDBERROR_BADFORMATTED: MSIDBERROR = 16i32; +pub const MSIDBERROR_BADGUID: MSIDBERROR = 9i32; +pub const MSIDBERROR_BADIDENTIFIER: MSIDBERROR = 11i32; +pub const MSIDBERROR_BADKEYTABLE: MSIDBERROR = 24i32; +pub const MSIDBERROR_BADLANGUAGE: MSIDBERROR = 12i32; +pub const MSIDBERROR_BADLINK: MSIDBERROR = 3i32; +pub const MSIDBERROR_BADLOCALIZEATTRIB: MSIDBERROR = 29i32; +pub const MSIDBERROR_BADMAXMINVALUES: MSIDBERROR = 25i32; +pub const MSIDBERROR_BADPATH: MSIDBERROR = 14i32; +pub const MSIDBERROR_BADPROPERTY: MSIDBERROR = 21i32; +pub const MSIDBERROR_BADREGPATH: MSIDBERROR = 19i32; +pub const MSIDBERROR_BADSHORTCUT: MSIDBERROR = 27i32; +pub const MSIDBERROR_BADTEMPLATE: MSIDBERROR = 17i32; +pub const MSIDBERROR_BADVERSION: MSIDBERROR = 7i32; +pub const MSIDBERROR_BADWILDCARD: MSIDBERROR = 10i32; +pub const MSIDBERROR_DUPLICATEKEY: MSIDBERROR = 1i32; +pub const MSIDBERROR_FUNCTIONERROR: MSIDBERROR = -1i32; +pub const MSIDBERROR_INVALIDARG: MSIDBERROR = -3i32; +pub const MSIDBERROR_MISSINGDATA: MSIDBERROR = 22i32; +pub const MSIDBERROR_MOREDATA: MSIDBERROR = -2i32; +pub const MSIDBERROR_NOERROR: MSIDBERROR = 0i32; +pub const MSIDBERROR_NOTINSET: MSIDBERROR = 6i32; +pub const MSIDBERROR_OVERFLOW: MSIDBERROR = 4i32; +pub const MSIDBERROR_REQUIRED: MSIDBERROR = 2i32; +pub const MSIDBERROR_STRINGOVERFLOW: MSIDBERROR = 28i32; +pub const MSIDBERROR_UNDERFLOW: MSIDBERROR = 5i32; +pub const MSIDBOPEN_CREATE: ::windows_sys::core::PCWSTR = 3i32 as _; +pub const MSIDBOPEN_CREATEDIRECT: ::windows_sys::core::PCWSTR = 4i32 as _; +pub const MSIDBOPEN_DIRECT: ::windows_sys::core::PCWSTR = 2i32 as _; +pub const MSIDBOPEN_PATCHFILE: i32 = 16i32; +pub const MSIDBOPEN_READONLY: ::windows_sys::core::PCWSTR = 0i32 as _; +pub const MSIDBOPEN_TRANSACT: ::windows_sys::core::PCWSTR = 1i32 as _; +pub const MSIDBSTATE_ERROR: MSIDBSTATE = -1i32; +pub const MSIDBSTATE_READ: MSIDBSTATE = 0i32; +pub const MSIDBSTATE_WRITE: MSIDBSTATE = 1i32; +pub const MSIINSTALLCONTEXT_ALL: MSIINSTALLCONTEXT = 7i32; +pub const MSIINSTALLCONTEXT_ALLUSERMANAGED: MSIINSTALLCONTEXT = 8i32; +pub const MSIINSTALLCONTEXT_FIRSTVISIBLE: MSIINSTALLCONTEXT = 0i32; +pub const MSIINSTALLCONTEXT_MACHINE: MSIINSTALLCONTEXT = 4i32; +pub const MSIINSTALLCONTEXT_NONE: MSIINSTALLCONTEXT = 0i32; +pub const MSIINSTALLCONTEXT_USERMANAGED: MSIINSTALLCONTEXT = 1i32; +pub const MSIINSTALLCONTEXT_USERUNMANAGED: MSIINSTALLCONTEXT = 2i32; +pub const MSIMODIFY_ASSIGN: MSIMODIFY = 3i32; +pub const MSIMODIFY_DELETE: MSIMODIFY = 6i32; +pub const MSIMODIFY_INSERT: MSIMODIFY = 1i32; +pub const MSIMODIFY_INSERT_TEMPORARY: MSIMODIFY = 7i32; +pub const MSIMODIFY_MERGE: MSIMODIFY = 5i32; +pub const MSIMODIFY_REFRESH: MSIMODIFY = 0i32; +pub const MSIMODIFY_REPLACE: MSIMODIFY = 4i32; +pub const MSIMODIFY_SEEK: MSIMODIFY = -1i32; +pub const MSIMODIFY_UPDATE: MSIMODIFY = 2i32; +pub const MSIMODIFY_VALIDATE: MSIMODIFY = 8i32; +pub const MSIMODIFY_VALIDATE_DELETE: MSIMODIFY = 11i32; +pub const MSIMODIFY_VALIDATE_FIELD: MSIMODIFY = 10i32; +pub const MSIMODIFY_VALIDATE_NEW: MSIMODIFY = 9i32; +pub const MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE: MSIOPENPACKAGEFLAGS = 1i32; +pub const MSIPATCHSTATE_ALL: MSIPATCHSTATE = 15i32; +pub const MSIPATCHSTATE_APPLIED: MSIPATCHSTATE = 1i32; +pub const MSIPATCHSTATE_INVALID: MSIPATCHSTATE = 0i32; +pub const MSIPATCHSTATE_OBSOLETED: MSIPATCHSTATE = 4i32; +pub const MSIPATCHSTATE_REGISTERED: MSIPATCHSTATE = 8i32; +pub const MSIPATCHSTATE_SUPERSEDED: MSIPATCHSTATE = 2i32; +pub const MSIPATCH_DATATYPE_PATCHFILE: MSIPATCHDATATYPE = 0i32; +pub const MSIPATCH_DATATYPE_XMLBLOB: MSIPATCHDATATYPE = 2i32; +pub const MSIPATCH_DATATYPE_XMLPATH: MSIPATCHDATATYPE = 1i32; +pub const MSIRUNMODE_ADMIN: MSIRUNMODE = 0i32; +pub const MSIRUNMODE_ADVERTISE: MSIRUNMODE = 1i32; +pub const MSIRUNMODE_CABINET: MSIRUNMODE = 8i32; +pub const MSIRUNMODE_COMMIT: MSIRUNMODE = 18i32; +pub const MSIRUNMODE_LOGENABLED: MSIRUNMODE = 4i32; +pub const MSIRUNMODE_MAINTENANCE: MSIRUNMODE = 2i32; +pub const MSIRUNMODE_OPERATIONS: MSIRUNMODE = 5i32; +pub const MSIRUNMODE_REBOOTATEND: MSIRUNMODE = 6i32; +pub const MSIRUNMODE_REBOOTNOW: MSIRUNMODE = 7i32; +pub const MSIRUNMODE_RESERVED11: MSIRUNMODE = 11i32; +pub const MSIRUNMODE_RESERVED14: MSIRUNMODE = 14i32; +pub const MSIRUNMODE_RESERVED15: MSIRUNMODE = 15i32; +pub const MSIRUNMODE_ROLLBACK: MSIRUNMODE = 17i32; +pub const MSIRUNMODE_ROLLBACKENABLED: MSIRUNMODE = 3i32; +pub const MSIRUNMODE_SCHEDULED: MSIRUNMODE = 16i32; +pub const MSIRUNMODE_SOURCESHORTNAMES: MSIRUNMODE = 9i32; +pub const MSIRUNMODE_TARGETSHORTNAMES: MSIRUNMODE = 10i32; +pub const MSIRUNMODE_WINDOWS9X: MSIRUNMODE = 12i32; +pub const MSIRUNMODE_ZAWENABLED: MSIRUNMODE = 13i32; +pub const MSISOURCETYPE_MEDIA: MSISOURCETYPE = 4i32; +pub const MSISOURCETYPE_NETWORK: MSISOURCETYPE = 1i32; +pub const MSISOURCETYPE_UNKNOWN: MSISOURCETYPE = 0i32; +pub const MSISOURCETYPE_URL: MSISOURCETYPE = 2i32; +pub const MSITRANSACTIONSTATE_COMMIT: MSITRANSACTIONSTATE = 1u32; +pub const MSITRANSACTIONSTATE_ROLLBACK: MSITRANSACTIONSTATE = 0u32; +pub const MSITRANSACTION_CHAIN_EMBEDDEDUI: MSITRANSACTION = 1i32; +pub const MSITRANSACTION_JOIN_EXISTING_EMBEDDEDUI: MSITRANSACTION = 2i32; +pub const MSITRANSFORM_ERROR_ADDEXISTINGROW: MSITRANSFORM_ERROR = 1i32; +pub const MSITRANSFORM_ERROR_ADDEXISTINGTABLE: MSITRANSFORM_ERROR = 4i32; +pub const MSITRANSFORM_ERROR_CHANGECODEPAGE: MSITRANSFORM_ERROR = 32i32; +pub const MSITRANSFORM_ERROR_DELMISSINGROW: MSITRANSFORM_ERROR = 2i32; +pub const MSITRANSFORM_ERROR_DELMISSINGTABLE: MSITRANSFORM_ERROR = 8i32; +pub const MSITRANSFORM_ERROR_NONE: MSITRANSFORM_ERROR = 0i32; +pub const MSITRANSFORM_ERROR_UPDATEMISSINGROW: MSITRANSFORM_ERROR = 16i32; +pub const MSITRANSFORM_ERROR_VIEWTRANSFORM: MSITRANSFORM_ERROR = 256i32; +pub const MSITRANSFORM_VALIDATE_LANGUAGE: MSITRANSFORM_VALIDATE = 1i32; +pub const MSITRANSFORM_VALIDATE_MAJORVERSION: MSITRANSFORM_VALIDATE = 8i32; +pub const MSITRANSFORM_VALIDATE_MINORVERSION: MSITRANSFORM_VALIDATE = 16i32; +pub const MSITRANSFORM_VALIDATE_NEWEQUALBASEVERSION: MSITRANSFORM_VALIDATE = 256i32; +pub const MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION: MSITRANSFORM_VALIDATE = 1024i32; +pub const MSITRANSFORM_VALIDATE_NEWGREATEREQUALBASEVERSION: MSITRANSFORM_VALIDATE = 512i32; +pub const MSITRANSFORM_VALIDATE_NEWLESSBASEVERSION: MSITRANSFORM_VALIDATE = 64i32; +pub const MSITRANSFORM_VALIDATE_NEWLESSEQUALBASEVERSION: MSITRANSFORM_VALIDATE = 128i32; +pub const MSITRANSFORM_VALIDATE_PLATFORM: MSITRANSFORM_VALIDATE = 4i32; +pub const MSITRANSFORM_VALIDATE_PRODUCT: MSITRANSFORM_VALIDATE = 2i32; +pub const MSITRANSFORM_VALIDATE_UPDATEVERSION: MSITRANSFORM_VALIDATE = 32i32; +pub const MSITRANSFORM_VALIDATE_UPGRADECODE: MSITRANSFORM_VALIDATE = 2048i32; +pub const MSI_INVALID_HASH_IS_FATAL: u32 = 1u32; +pub const MSI_NULL_INTEGER: u32 = 2147483648u32; +pub const MsmMerge: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0adda830_2c26_11d2_ad65_00a0c9af11a6); +pub const PACKMAN_RUNTIME_INVALID: PACKMAN_RUNTIME = 6i32; +pub const PACKMAN_RUNTIME_JUPITER: PACKMAN_RUNTIME = 5i32; +pub const PACKMAN_RUNTIME_MODERN_NATIVE: PACKMAN_RUNTIME = 4i32; +pub const PACKMAN_RUNTIME_NATIVE: PACKMAN_RUNTIME = 1i32; +pub const PACKMAN_RUNTIME_SILVERLIGHTMOBILE: PACKMAN_RUNTIME = 2i32; +pub const PACKMAN_RUNTIME_XNA: PACKMAN_RUNTIME = 3i32; +pub const PATCH_OPTION_FAIL_IF_BIGGER: u32 = 1048576u32; +pub const PATCH_OPTION_FAIL_IF_SAME_FILE: u32 = 524288u32; +pub const PATCH_OPTION_INTERLEAVE_FILES: u32 = 1073741824u32; +pub const PATCH_OPTION_NO_BINDFIX: u32 = 65536u32; +pub const PATCH_OPTION_NO_CHECKSUM: u32 = 2097152u32; +pub const PATCH_OPTION_NO_LOCKFIX: u32 = 131072u32; +pub const PATCH_OPTION_NO_REBASE: u32 = 262144u32; +pub const PATCH_OPTION_NO_RESTIMEFIX: u32 = 4194304u32; +pub const PATCH_OPTION_NO_TIMESTAMP: u32 = 8388608u32; +pub const PATCH_OPTION_RESERVED1: u32 = 2147483648u32; +pub const PATCH_OPTION_SIGNATURE_MD5: u32 = 16777216u32; +pub const PATCH_OPTION_USE_BEST: u32 = 0u32; +pub const PATCH_OPTION_USE_LZX_A: u32 = 1u32; +pub const PATCH_OPTION_USE_LZX_B: u32 = 2u32; +pub const PATCH_OPTION_USE_LZX_BEST: u32 = 3u32; +pub const PATCH_OPTION_USE_LZX_LARGE: u32 = 4u32; +pub const PATCH_OPTION_VALID_FLAGS: u32 = 3237937159u32; +pub const PATCH_SYMBOL_NO_FAILURES: u32 = 2u32; +pub const PATCH_SYMBOL_NO_IMAGEHLP: u32 = 1u32; +pub const PATCH_SYMBOL_RESERVED1: u32 = 2147483648u32; +pub const PATCH_SYMBOL_UNDECORATED_TOO: u32 = 4u32; +pub const PATCH_TRANSFORM_PE_IRELOC_2: u32 = 512u32; +pub const PATCH_TRANSFORM_PE_RESOURCE_2: u32 = 256u32; +pub const PID_APPNAME: u32 = 18u32; +pub const PID_AUTHOR: u32 = 4u32; +pub const PID_CHARCOUNT: u32 = 16u32; +pub const PID_COMMENTS: u32 = 6u32; +pub const PID_CREATE_DTM: u32 = 12u32; +pub const PID_EDITTIME: u32 = 10u32; +pub const PID_KEYWORDS: u32 = 5u32; +pub const PID_LASTAUTHOR: u32 = 8u32; +pub const PID_LASTPRINTED: u32 = 11u32; +pub const PID_LASTSAVE_DTM: u32 = 13u32; +pub const PID_MSIRESTRICT: u32 = 16u32; +pub const PID_MSISOURCE: u32 = 15u32; +pub const PID_MSIVERSION: u32 = 14u32; +pub const PID_PAGECOUNT: u32 = 14u32; +pub const PID_REVNUMBER: u32 = 9u32; +pub const PID_SUBJECT: u32 = 3u32; +pub const PID_TEMPLATE: u32 = 7u32; +pub const PID_THUMBNAIL: u32 = 17u32; +pub const PID_TITLE: u32 = 2u32; +pub const PID_WORDCOUNT: u32 = 15u32; +pub const PMSvc: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9e511fc_e364_497a_a121_b7b3612cedce); +pub const PM_ACTIVATION_POLICY_INVALID: PM_ACTIVATION_POLICY = 7i32; +pub const PM_ACTIVATION_POLICY_MULTISESSION: PM_ACTIVATION_POLICY = 4i32; +pub const PM_ACTIVATION_POLICY_REPLACE: PM_ACTIVATION_POLICY = 2i32; +pub const PM_ACTIVATION_POLICY_REPLACESAMEPARAMS: PM_ACTIVATION_POLICY = 3i32; +pub const PM_ACTIVATION_POLICY_REPLACE_IGNOREFOREGROUND: PM_ACTIVATION_POLICY = 5i32; +pub const PM_ACTIVATION_POLICY_RESUME: PM_ACTIVATION_POLICY = 0i32; +pub const PM_ACTIVATION_POLICY_RESUMESAMEPARAMS: PM_ACTIVATION_POLICY = 1i32; +pub const PM_ACTIVATION_POLICY_UNKNOWN: PM_ACTIVATION_POLICY = 6i32; +pub const PM_APPLICATION_HUBTYPE_INVALID: PM_APPLICATION_HUBTYPE = 2i32; +pub const PM_APPLICATION_HUBTYPE_MUSIC: PM_APPLICATION_HUBTYPE = 1i32; +pub const PM_APPLICATION_HUBTYPE_NONMUSIC: PM_APPLICATION_HUBTYPE = 0i32; +pub const PM_APPLICATION_INSTALL_DEBUG: PM_APPLICATION_INSTALL_TYPE = 3i32; +pub const PM_APPLICATION_INSTALL_ENTERPRISE: PM_APPLICATION_INSTALL_TYPE = 4i32; +pub const PM_APPLICATION_INSTALL_INVALID: PM_APPLICATION_INSTALL_TYPE = 5i32; +pub const PM_APPLICATION_INSTALL_IN_ROM: PM_APPLICATION_INSTALL_TYPE = 1i32; +pub const PM_APPLICATION_INSTALL_NORMAL: PM_APPLICATION_INSTALL_TYPE = 0i32; +pub const PM_APPLICATION_INSTALL_PA: PM_APPLICATION_INSTALL_TYPE = 2i32; +pub const PM_APPLICATION_STATE_DISABLED_BACKING_UP: PM_APPLICATION_STATE = 9i32; +pub const PM_APPLICATION_STATE_DISABLED_ENTERPRISE: PM_APPLICATION_STATE = 8i32; +pub const PM_APPLICATION_STATE_DISABLED_MDIL_BINDING: PM_APPLICATION_STATE = 10i32; +pub const PM_APPLICATION_STATE_DISABLED_SD_CARD: PM_APPLICATION_STATE = 7i32; +pub const PM_APPLICATION_STATE_INSTALLED: PM_APPLICATION_STATE = 1i32; +pub const PM_APPLICATION_STATE_INSTALLING: PM_APPLICATION_STATE = 2i32; +pub const PM_APPLICATION_STATE_INVALID: PM_APPLICATION_STATE = 11i32; +pub const PM_APPLICATION_STATE_LICENSE_UPDATING: PM_APPLICATION_STATE = 5i32; +pub const PM_APPLICATION_STATE_MAX: PM_APPLICATION_STATE = 10i32; +pub const PM_APPLICATION_STATE_MIN: PM_APPLICATION_STATE = 0i32; +pub const PM_APPLICATION_STATE_MOVING: PM_APPLICATION_STATE = 6i32; +pub const PM_APPLICATION_STATE_UNINSTALLING: PM_APPLICATION_STATE = 4i32; +pub const PM_APPLICATION_STATE_UPDATING: PM_APPLICATION_STATE = 3i32; +pub const PM_APP_FILTER_ALL: PM_ENUM_APP_FILTER = 0i32; +pub const PM_APP_FILTER_ALL_INCLUDE_MODERN: PM_ENUM_APP_FILTER = 6i32; +pub const PM_APP_FILTER_FRAMEWORK: PM_ENUM_APP_FILTER = 7i32; +pub const PM_APP_FILTER_GENRE: PM_ENUM_APP_FILTER = 2i32; +pub const PM_APP_FILTER_HUBTYPE: PM_ENUM_APP_FILTER = 4i32; +pub const PM_APP_FILTER_MAX: PM_ENUM_APP_FILTER = 8i32; +pub const PM_APP_FILTER_NONGAMES: PM_ENUM_APP_FILTER = 3i32; +pub const PM_APP_FILTER_PINABLEONKIDZONE: PM_ENUM_APP_FILTER = 5i32; +pub const PM_APP_FILTER_VISIBLE: PM_ENUM_APP_FILTER = 1i32; +pub const PM_APP_GENRE_GAMES: PM_APP_GENRE = 0i32; +pub const PM_APP_GENRE_INVALID: PM_APP_GENRE = 2i32; +pub const PM_APP_GENRE_OTHER: PM_APP_GENRE = 1i32; +pub const PM_ENUM_BSA_FILTER_ALL: PM_ENUM_BSA_FILTER = 26i32; +pub const PM_ENUM_BSA_FILTER_BY_ALL_LAUNCHONBOOT: PM_ENUM_BSA_FILTER = 30i32; +pub const PM_ENUM_BSA_FILTER_BY_PERIODIC: PM_ENUM_BSA_FILTER = 29i32; +pub const PM_ENUM_BSA_FILTER_BY_PRODUCTID: PM_ENUM_BSA_FILTER = 28i32; +pub const PM_ENUM_BSA_FILTER_BY_TASKID: PM_ENUM_BSA_FILTER = 27i32; +pub const PM_ENUM_BSA_FILTER_MAX: PM_ENUM_BSA_FILTER = 31i32; +pub const PM_ENUM_BW_FILTER_BOOTWORKER_ALL: PM_ENUM_BW_FILTER = 31i32; +pub const PM_ENUM_BW_FILTER_BY_TASKID: PM_ENUM_BW_FILTER = 32i32; +pub const PM_ENUM_BW_FILTER_MAX: PM_ENUM_BW_FILTER = 33i32; +pub const PM_ENUM_EXTENSION_FILTER_APPCONNECT: PM_ENUM_EXTENSION_FILTER = 17i32; +pub const PM_ENUM_EXTENSION_FILTER_BY_CONSUMER: PM_ENUM_EXTENSION_FILTER = 17i32; +pub const PM_ENUM_EXTENSION_FILTER_CACHEDFILEUPDATER_ALL: PM_ENUM_EXTENSION_FILTER = 25i32; +pub const PM_ENUM_EXTENSION_FILTER_FILEOPENPICKER_ALL: PM_ENUM_EXTENSION_FILTER = 23i32; +pub const PM_ENUM_EXTENSION_FILTER_FILESAVEPICKER_ALL: PM_ENUM_EXTENSION_FILTER = 24i32; +pub const PM_ENUM_EXTENSION_FILTER_FTASSOC_APPLICATION_ALL: PM_ENUM_EXTENSION_FILTER = 21i32; +pub const PM_ENUM_EXTENSION_FILTER_FTASSOC_CONTENTTYPE_ALL: PM_ENUM_EXTENSION_FILTER = 20i32; +pub const PM_ENUM_EXTENSION_FILTER_FTASSOC_FILETYPE_ALL: PM_ENUM_EXTENSION_FILTER = 19i32; +pub const PM_ENUM_EXTENSION_FILTER_MAX: PM_ENUM_EXTENSION_FILTER = 26i32; +pub const PM_ENUM_EXTENSION_FILTER_PROTOCOL_ALL: PM_ENUM_EXTENSION_FILTER = 18i32; +pub const PM_ENUM_EXTENSION_FILTER_SHARETARGET_ALL: PM_ENUM_EXTENSION_FILTER = 22i32; +pub const PM_LIVETILE_RECURRENCE_TYPE_INSTANT: PM_LIVETILE_RECURRENCE_TYPE = 0i32; +pub const PM_LIVETILE_RECURRENCE_TYPE_INTERVAL: PM_LIVETILE_RECURRENCE_TYPE = 2i32; +pub const PM_LIVETILE_RECURRENCE_TYPE_MAX: PM_LIVETILE_RECURRENCE_TYPE = 2i32; +pub const PM_LIVETILE_RECURRENCE_TYPE_ONETIME: PM_LIVETILE_RECURRENCE_TYPE = 1i32; +pub const PM_LOGO_SIZE_INVALID: PM_LOGO_SIZE = 3i32; +pub const PM_LOGO_SIZE_LARGE: PM_LOGO_SIZE = 2i32; +pub const PM_LOGO_SIZE_MEDIUM: PM_LOGO_SIZE = 1i32; +pub const PM_LOGO_SIZE_SMALL: PM_LOGO_SIZE = 0i32; +pub const PM_STARTTILE_TYPE_APPLIST: PM_STARTTILE_TYPE = 3i32; +pub const PM_STARTTILE_TYPE_APPLISTPRIMARY: PM_STARTTILE_TYPE = 4i32; +pub const PM_STARTTILE_TYPE_INVALID: PM_STARTTILE_TYPE = 5i32; +pub const PM_STARTTILE_TYPE_PRIMARY: PM_STARTTILE_TYPE = 1i32; +pub const PM_STARTTILE_TYPE_SECONDARY: PM_STARTTILE_TYPE = 2i32; +pub const PM_TASK_FILTER_APP_ALL: PM_ENUM_TASK_FILTER = 12i32; +pub const PM_TASK_FILTER_APP_TASK_TYPE: PM_ENUM_TASK_FILTER = 15i32; +pub const PM_TASK_FILTER_BGEXECUTION: PM_ENUM_TASK_FILTER = 16i32; +pub const PM_TASK_FILTER_DEHYD_SUPRESSING: PM_ENUM_TASK_FILTER = 14i32; +pub const PM_TASK_FILTER_MAX: PM_ENUM_TASK_FILTER = 17i32; +pub const PM_TASK_FILTER_TASK_TYPE: PM_ENUM_TASK_FILTER = 13i32; +pub const PM_TASK_TRANSITION_CUSTOM: PM_TASK_TRANSITION = 6i32; +pub const PM_TASK_TRANSITION_DEFAULT: PM_TASK_TRANSITION = 0i32; +pub const PM_TASK_TRANSITION_INVALID: PM_TASK_TRANSITION = 7i32; +pub const PM_TASK_TRANSITION_NONE: PM_TASK_TRANSITION = 1i32; +pub const PM_TASK_TRANSITION_READERBOARD: PM_TASK_TRANSITION = 5i32; +pub const PM_TASK_TRANSITION_SLIDE: PM_TASK_TRANSITION = 3i32; +pub const PM_TASK_TRANSITION_SWIVEL: PM_TASK_TRANSITION = 4i32; +pub const PM_TASK_TRANSITION_TURNSTILE: PM_TASK_TRANSITION = 2i32; +pub const PM_TASK_TYPE_BACKGROUNDSERVICEAGENT: PM_TASK_TYPE = 3i32; +pub const PM_TASK_TYPE_BACKGROUNDWORKER: PM_TASK_TYPE = 4i32; +pub const PM_TASK_TYPE_DEFAULT: PM_TASK_TYPE = 1i32; +pub const PM_TASK_TYPE_INVALID: PM_TASK_TYPE = 5i32; +pub const PM_TASK_TYPE_NORMAL: PM_TASK_TYPE = 0i32; +pub const PM_TASK_TYPE_SETTINGS: PM_TASK_TYPE = 2i32; +pub const PM_TILE_FILTER_APPLIST: PM_ENUM_TILE_FILTER = 8i32; +pub const PM_TILE_FILTER_APP_ALL: PM_ENUM_TILE_FILTER = 11i32; +pub const PM_TILE_FILTER_HUBTYPE: PM_ENUM_TILE_FILTER = 10i32; +pub const PM_TILE_FILTER_MAX: PM_ENUM_TILE_FILTER = 12i32; +pub const PM_TILE_FILTER_PINNED: PM_ENUM_TILE_FILTER = 9i32; +pub const PM_TILE_HUBTYPE_APPLIST: PM_TILE_HUBTYPE = 1073741824i32; +pub const PM_TILE_HUBTYPE_CACHED: PM_TILE_HUBTYPE = 67108864i32; +pub const PM_TILE_HUBTYPE_GAMES: PM_TILE_HUBTYPE = 536870912i32; +pub const PM_TILE_HUBTYPE_INVALID: PM_TILE_HUBTYPE = 67108865i32; +pub const PM_TILE_HUBTYPE_KIDZONE: PM_TILE_HUBTYPE = 33554432i32; +pub const PM_TILE_HUBTYPE_LOCKSCREEN: PM_TILE_HUBTYPE = 16777216i32; +pub const PM_TILE_HUBTYPE_MOSETTINGS: PM_TILE_HUBTYPE = 268435456i32; +pub const PM_TILE_HUBTYPE_MUSIC: PM_TILE_HUBTYPE = 1i32; +pub const PM_TILE_HUBTYPE_STARTMENU: PM_TILE_HUBTYPE = -2147483648i32; +pub const PM_TILE_SIZE_INVALID: PM_TILE_SIZE = 5i32; +pub const PM_TILE_SIZE_LARGE: PM_TILE_SIZE = 2i32; +pub const PM_TILE_SIZE_MEDIUM: PM_TILE_SIZE = 1i32; +pub const PM_TILE_SIZE_SMALL: PM_TILE_SIZE = 0i32; +pub const PM_TILE_SIZE_SQUARE310X310: PM_TILE_SIZE = 3i32; +pub const PM_TILE_SIZE_TALL150X310: PM_TILE_SIZE = 4i32; +pub const QUERYASMINFO_FLAG_VALIDATE: QUERYASMINFO_FLAGS = 1u32; +pub const REINSTALLMODE_FILEEQUALVERSION: REINSTALLMODE = 8i32; +pub const REINSTALLMODE_FILEEXACT: REINSTALLMODE = 16i32; +pub const REINSTALLMODE_FILEMISSING: REINSTALLMODE = 2i32; +pub const REINSTALLMODE_FILEOLDERVERSION: REINSTALLMODE = 4i32; +pub const REINSTALLMODE_FILEREPLACE: REINSTALLMODE = 64i32; +pub const REINSTALLMODE_FILEVERIFY: REINSTALLMODE = 32i32; +pub const REINSTALLMODE_MACHINEDATA: REINSTALLMODE = 128i32; +pub const REINSTALLMODE_PACKAGE: REINSTALLMODE = 1024i32; +pub const REINSTALLMODE_REPAIR: REINSTALLMODE = 1i32; +pub const REINSTALLMODE_SHORTCUT: REINSTALLMODE = 512i32; +pub const REINSTALLMODE_USERDATA: REINSTALLMODE = 256i32; +pub const SCRIPTFLAGS_CACHEINFO: SCRIPTFLAGS = 1i32; +pub const SCRIPTFLAGS_MACHINEASSIGN: SCRIPTFLAGS = 8i32; +pub const SCRIPTFLAGS_REGDATA: SCRIPTFLAGS = 416i32; +pub const SCRIPTFLAGS_REGDATA_APPINFO: SCRIPTFLAGS = 384i32; +pub const SCRIPTFLAGS_REGDATA_CLASSINFO: SCRIPTFLAGS = 128i32; +pub const SCRIPTFLAGS_REGDATA_CNFGINFO: SCRIPTFLAGS = 32i32; +pub const SCRIPTFLAGS_REGDATA_EXTENSIONINFO: SCRIPTFLAGS = 256i32; +pub const SCRIPTFLAGS_SHORTCUTS: SCRIPTFLAGS = 4i32; +pub const SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST: SCRIPTFLAGS = 64i32; +pub const SFC_DISABLE_ASK: u32 = 1u32; +pub const SFC_DISABLE_NOPOPUPS: u32 = 4u32; +pub const SFC_DISABLE_NORMAL: u32 = 0u32; +pub const SFC_DISABLE_ONCE: u32 = 2u32; +pub const SFC_DISABLE_SETUP: u32 = 3u32; +pub const SFC_IDLE_TRIGGER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WFP_IDLE_TRIGGER"); +pub const SFC_QUOTA_DEFAULT: u32 = 50u32; +pub const SFC_SCAN_ALWAYS: u32 = 1u32; +pub const SFC_SCAN_IMMEDIATE: u32 = 3u32; +pub const SFC_SCAN_NORMAL: u32 = 0u32; +pub const SFC_SCAN_ONCE: u32 = 2u32; +pub const STREAM_FORMAT_COMPLIB_MANIFEST: u32 = 1u32; +pub const STREAM_FORMAT_COMPLIB_MODULE: u32 = 0u32; +pub const STREAM_FORMAT_WIN32_MANIFEST: u32 = 4u32; +pub const STREAM_FORMAT_WIN32_MODULE: u32 = 2u32; +pub const TILE_TEMPLATE_AGILESTORE: TILE_TEMPLATE_TYPE = 2i32; +pub const TILE_TEMPLATE_ALL: TILE_TEMPLATE_TYPE = 100i32; +pub const TILE_TEMPLATE_BADGE: TILE_TEMPLATE_TYPE = 16i32; +pub const TILE_TEMPLATE_BLOCK: TILE_TEMPLATE_TYPE = 17i32; +pub const TILE_TEMPLATE_BLOCKANDTEXT01: TILE_TEMPLATE_TYPE = 33i32; +pub const TILE_TEMPLATE_BLOCKANDTEXT02: TILE_TEMPLATE_TYPE = 34i32; +pub const TILE_TEMPLATE_CALENDAR: TILE_TEMPLATE_TYPE = 4i32; +pub const TILE_TEMPLATE_CONTACT: TILE_TEMPLATE_TYPE = 11i32; +pub const TILE_TEMPLATE_CYCLE: TILE_TEMPLATE_TYPE = 14i32; +pub const TILE_TEMPLATE_DEEPLINK: TILE_TEMPLATE_TYPE = 13i32; +pub const TILE_TEMPLATE_DEFAULT: TILE_TEMPLATE_TYPE = 15i32; +pub const TILE_TEMPLATE_FLIP: TILE_TEMPLATE_TYPE = 5i32; +pub const TILE_TEMPLATE_FOLDER: TILE_TEMPLATE_TYPE = 59i32; +pub const TILE_TEMPLATE_GAMES: TILE_TEMPLATE_TYPE = 3i32; +pub const TILE_TEMPLATE_GROUP: TILE_TEMPLATE_TYPE = 12i32; +pub const TILE_TEMPLATE_IMAGE: TILE_TEMPLATE_TYPE = 29i32; +pub const TILE_TEMPLATE_IMAGEANDTEXT01: TILE_TEMPLATE_TYPE = 31i32; +pub const TILE_TEMPLATE_IMAGEANDTEXT02: TILE_TEMPLATE_TYPE = 32i32; +pub const TILE_TEMPLATE_IMAGECOLLECTION: TILE_TEMPLATE_TYPE = 30i32; +pub const TILE_TEMPLATE_INVALID: TILE_TEMPLATE_TYPE = 0i32; +pub const TILE_TEMPLATE_METROCOUNT: TILE_TEMPLATE_TYPE = 1i32; +pub const TILE_TEMPLATE_METROCOUNTQUEUE: TILE_TEMPLATE_TYPE = 56i32; +pub const TILE_TEMPLATE_MUSICVIDEO: TILE_TEMPLATE_TYPE = 7i32; +pub const TILE_TEMPLATE_PEEKIMAGE01: TILE_TEMPLATE_TYPE = 39i32; +pub const TILE_TEMPLATE_PEEKIMAGE02: TILE_TEMPLATE_TYPE = 40i32; +pub const TILE_TEMPLATE_PEEKIMAGE03: TILE_TEMPLATE_TYPE = 41i32; +pub const TILE_TEMPLATE_PEEKIMAGE04: TILE_TEMPLATE_TYPE = 42i32; +pub const TILE_TEMPLATE_PEEKIMAGE05: TILE_TEMPLATE_TYPE = 43i32; +pub const TILE_TEMPLATE_PEEKIMAGE06: TILE_TEMPLATE_TYPE = 44i32; +pub const TILE_TEMPLATE_PEEKIMAGEANDTEXT01: TILE_TEMPLATE_TYPE = 35i32; +pub const TILE_TEMPLATE_PEEKIMAGEANDTEXT02: TILE_TEMPLATE_TYPE = 36i32; +pub const TILE_TEMPLATE_PEEKIMAGEANDTEXT03: TILE_TEMPLATE_TYPE = 37i32; +pub const TILE_TEMPLATE_PEEKIMAGEANDTEXT04: TILE_TEMPLATE_TYPE = 38i32; +pub const TILE_TEMPLATE_PEEKIMAGECOLLECTION01: TILE_TEMPLATE_TYPE = 45i32; +pub const TILE_TEMPLATE_PEEKIMAGECOLLECTION02: TILE_TEMPLATE_TYPE = 46i32; +pub const TILE_TEMPLATE_PEEKIMAGECOLLECTION03: TILE_TEMPLATE_TYPE = 47i32; +pub const TILE_TEMPLATE_PEEKIMAGECOLLECTION04: TILE_TEMPLATE_TYPE = 48i32; +pub const TILE_TEMPLATE_PEEKIMAGECOLLECTION05: TILE_TEMPLATE_TYPE = 49i32; +pub const TILE_TEMPLATE_PEEKIMAGECOLLECTION06: TILE_TEMPLATE_TYPE = 50i32; +pub const TILE_TEMPLATE_PEOPLE: TILE_TEMPLATE_TYPE = 10i32; +pub const TILE_TEMPLATE_SEARCH: TILE_TEMPLATE_TYPE = 57i32; +pub const TILE_TEMPLATE_SMALLIMAGEANDTEXT01: TILE_TEMPLATE_TYPE = 51i32; +pub const TILE_TEMPLATE_SMALLIMAGEANDTEXT02: TILE_TEMPLATE_TYPE = 52i32; +pub const TILE_TEMPLATE_SMALLIMAGEANDTEXT03: TILE_TEMPLATE_TYPE = 53i32; +pub const TILE_TEMPLATE_SMALLIMAGEANDTEXT04: TILE_TEMPLATE_TYPE = 54i32; +pub const TILE_TEMPLATE_SMALLIMAGEANDTEXT05: TILE_TEMPLATE_TYPE = 55i32; +pub const TILE_TEMPLATE_TEXT01: TILE_TEMPLATE_TYPE = 18i32; +pub const TILE_TEMPLATE_TEXT02: TILE_TEMPLATE_TYPE = 19i32; +pub const TILE_TEMPLATE_TEXT03: TILE_TEMPLATE_TYPE = 20i32; +pub const TILE_TEMPLATE_TEXT04: TILE_TEMPLATE_TYPE = 21i32; +pub const TILE_TEMPLATE_TEXT05: TILE_TEMPLATE_TYPE = 22i32; +pub const TILE_TEMPLATE_TEXT06: TILE_TEMPLATE_TYPE = 23i32; +pub const TILE_TEMPLATE_TEXT07: TILE_TEMPLATE_TYPE = 24i32; +pub const TILE_TEMPLATE_TEXT08: TILE_TEMPLATE_TYPE = 25i32; +pub const TILE_TEMPLATE_TEXT09: TILE_TEMPLATE_TYPE = 26i32; +pub const TILE_TEMPLATE_TEXT10: TILE_TEMPLATE_TYPE = 27i32; +pub const TILE_TEMPLATE_TEXT11: TILE_TEMPLATE_TYPE = 28i32; +pub const TILE_TEMPLATE_TILEFLYOUT01: TILE_TEMPLATE_TYPE = 58i32; +pub const TXTLOG_BACKUP: u32 = 128u32; +pub const TXTLOG_CMI: u32 = 268435456u32; +pub const TXTLOG_COPYFILES: u32 = 8u32; +pub const TXTLOG_DEPTH_DECR: u32 = 262144u32; +pub const TXTLOG_DEPTH_INCR: u32 = 131072u32; +pub const TXTLOG_DETAILS: u32 = 5u32; +pub const TXTLOG_DEVINST: u32 = 1u32; +pub const TXTLOG_DEVMGR: u32 = 536870912u32; +pub const TXTLOG_DRIVER_STORE: u32 = 67108864u32; +pub const TXTLOG_DRVSETUP: u32 = 4194304u32; +pub const TXTLOG_ERROR: u32 = 1u32; +pub const TXTLOG_FILEQ: u32 = 4u32; +pub const TXTLOG_FLUSH_FILE: u32 = 1048576u32; +pub const TXTLOG_INF: u32 = 2u32; +pub const TXTLOG_INFDB: u32 = 1024u32; +pub const TXTLOG_INSTALLER: u32 = 1073741824u32; +pub const TXTLOG_NEWDEV: u32 = 16777216u32; +pub const TXTLOG_POLICY: u32 = 8388608u32; +pub const TXTLOG_RESERVED_FLAGS: u32 = 65520u32; +pub const TXTLOG_SETUP: u32 = 134217728u32; +pub const TXTLOG_SETUPAPI_BITS: u32 = 3u32; +pub const TXTLOG_SETUPAPI_CMDLINE: u32 = 2u32; +pub const TXTLOG_SETUPAPI_DEVLOG: u32 = 1u32; +pub const TXTLOG_SIGVERIF: u32 = 32u32; +pub const TXTLOG_SUMMARY: u32 = 4u32; +pub const TXTLOG_SYSTEM_STATE_CHANGE: u32 = 3u32; +pub const TXTLOG_TAB_1: u32 = 524288u32; +pub const TXTLOG_TIMESTAMP: u32 = 65536u32; +pub const TXTLOG_UI: u32 = 256u32; +pub const TXTLOG_UMPNPMGR: u32 = 33554432u32; +pub const TXTLOG_UTIL: u32 = 512u32; +pub const TXTLOG_VENDOR: u32 = 2147483648u32; +pub const TXTLOG_VERBOSE: u32 = 6u32; +pub const TXTLOG_VERY_VERBOSE: u32 = 7u32; +pub const TXTLOG_WARNING: u32 = 2u32; +pub const UIALL: u32 = 32768u32; +pub const UILOGBITS: u32 = 15u32; +pub const UINONE: u32 = 0u32; +pub const USERINFOSTATE_ABSENT: USERINFOSTATE = 0i32; +pub const USERINFOSTATE_INVALIDARG: USERINFOSTATE = -2i32; +pub const USERINFOSTATE_MOREDATA: USERINFOSTATE = -3i32; +pub const USERINFOSTATE_PRESENT: USERINFOSTATE = 1i32; +pub const USERINFOSTATE_UNKNOWN: USERINFOSTATE = -1i32; +pub const WARN_BAD_MAJOR_VERSION: u32 = 3222294792u32; +pub const WARN_BASE: u32 = 3222294785u32; +pub const WARN_EQUAL_FILE_VERSION: u32 = 3222294794u32; +pub const WARN_FILE_VERSION_DOWNREV: u32 = 3222294793u32; +pub const WARN_IMPROPER_TRANSFORM_VALIDATION: u32 = 3222294788u32; +pub const WARN_INVALID_TRANSFORM_VALIDATION: u32 = 3222294791u32; +pub const WARN_MAJOR_UPGRADE_PATCH: u32 = 3222294785u32; +pub const WARN_OBSOLETION_WITH_MSI30: u32 = 3222294801u32; +pub const WARN_OBSOLETION_WITH_PATCHSEQUENCE: u32 = 3222294803u32; +pub const WARN_OBSOLETION_WITH_SEQUENCE_DATA: u32 = 3222294802u32; +pub const WARN_PATCHPROPERTYNOTSET: u32 = 3222294795u32; +pub const WARN_PCW_MISMATCHED_PRODUCT_CODES: u32 = 3222294789u32; +pub const WARN_PCW_MISMATCHED_PRODUCT_VERSIONS: u32 = 3222294790u32; +pub const WARN_SEQUENCE_DATA_GENERATION_DISABLED: u32 = 3222294786u32; +pub const WARN_SEQUENCE_DATA_SUPERSEDENCE_IGNORED: u32 = 3222294787u32; +pub const _WIN32_MSI: u32 = 500u32; +pub const _WIN32_MSM: u32 = 100u32; +pub const cchMaxInteger: i32 = 12i32; +pub const ieError: RESULTTYPES = 1i32; +pub const ieInfo: RESULTTYPES = 3i32; +pub const ieStatusCancel: STATUSTYPES = 10i32; +pub const ieStatusCreateEngine: STATUSTYPES = 4i32; +pub const ieStatusFail: STATUSTYPES = 9i32; +pub const ieStatusGetCUB: STATUSTYPES = 0i32; +pub const ieStatusICECount: STATUSTYPES = 1i32; +pub const ieStatusMerge: STATUSTYPES = 2i32; +pub const ieStatusRunICE: STATUSTYPES = 6i32; +pub const ieStatusShutdown: STATUSTYPES = 7i32; +pub const ieStatusStarting: STATUSTYPES = 5i32; +pub const ieStatusSuccess: STATUSTYPES = 8i32; +pub const ieStatusSummaryInfo: STATUSTYPES = 3i32; +pub const ieUnknown: RESULTTYPES = 0i32; +pub const ieWarning: RESULTTYPES = 2i32; +pub const msidbAssemblyAttributesURT: msidbAssemblyAttributes = 0i32; +pub const msidbAssemblyAttributesWin32: msidbAssemblyAttributes = 1i32; +pub const msidbClassAttributesRelativePath: msidbClassAttributes = 1i32; +pub const msidbComponentAttributes64bit: msidbComponentAttributes = 256i32; +pub const msidbComponentAttributesDisableRegistryReflection: msidbComponentAttributes = 512i32; +pub const msidbComponentAttributesLocalOnly: msidbComponentAttributes = 0i32; +pub const msidbComponentAttributesNeverOverwrite: msidbComponentAttributes = 128i32; +pub const msidbComponentAttributesODBCDataSource: msidbComponentAttributes = 32i32; +pub const msidbComponentAttributesOptional: msidbComponentAttributes = 2i32; +pub const msidbComponentAttributesPermanent: msidbComponentAttributes = 16i32; +pub const msidbComponentAttributesRegistryKeyPath: msidbComponentAttributes = 4i32; +pub const msidbComponentAttributesShared: msidbComponentAttributes = 2048i32; +pub const msidbComponentAttributesSharedDllRefCount: msidbComponentAttributes = 8i32; +pub const msidbComponentAttributesSourceOnly: msidbComponentAttributes = 1i32; +pub const msidbComponentAttributesTransitive: msidbComponentAttributes = 64i32; +pub const msidbComponentAttributesUninstallOnSupersedence: msidbComponentAttributes = 1024i32; +pub const msidbControlAttributesBiDi: msidbControlAttributes = 224i32; +pub const msidbControlAttributesBitmap: msidbControlAttributes = 262144i32; +pub const msidbControlAttributesCDROMVolume: msidbControlAttributes = 524288i32; +pub const msidbControlAttributesComboList: msidbControlAttributes = 131072i32; +pub const msidbControlAttributesElevationShield: msidbControlAttributes = 8388608i32; +pub const msidbControlAttributesEnabled: msidbControlAttributes = 2i32; +pub const msidbControlAttributesFixedSize: msidbControlAttributes = 1048576i32; +pub const msidbControlAttributesFixedVolume: msidbControlAttributes = 131072i32; +pub const msidbControlAttributesFloppyVolume: msidbControlAttributes = 2097152i32; +pub const msidbControlAttributesFormatSize: msidbControlAttributes = 524288i32; +pub const msidbControlAttributesHasBorder: msidbControlAttributes = 16777216i32; +pub const msidbControlAttributesIcon: msidbControlAttributes = 524288i32; +pub const msidbControlAttributesIconSize16: msidbControlAttributes = 2097152i32; +pub const msidbControlAttributesIconSize32: msidbControlAttributes = 4194304i32; +pub const msidbControlAttributesIconSize48: msidbControlAttributes = 6291456i32; +pub const msidbControlAttributesImageHandle: msidbControlAttributes = 65536i32; +pub const msidbControlAttributesIndirect: msidbControlAttributes = 8i32; +pub const msidbControlAttributesInteger: msidbControlAttributes = 16i32; +pub const msidbControlAttributesLeftScroll: msidbControlAttributes = 128i32; +pub const msidbControlAttributesMultiline: msidbControlAttributes = 65536i32; +pub const msidbControlAttributesNoPrefix: msidbControlAttributes = 131072i32; +pub const msidbControlAttributesNoWrap: msidbControlAttributes = 262144i32; +pub const msidbControlAttributesPasswordInput: msidbControlAttributes = 2097152i32; +pub const msidbControlAttributesProgress95: msidbControlAttributes = 65536i32; +pub const msidbControlAttributesPushLike: msidbControlAttributes = 131072i32; +pub const msidbControlAttributesRAMDiskVolume: msidbControlAttributes = 1048576i32; +pub const msidbControlAttributesRTLRO: msidbControlAttributes = 32i32; +pub const msidbControlAttributesRemoteVolume: msidbControlAttributes = 262144i32; +pub const msidbControlAttributesRemovableVolume: msidbControlAttributes = 65536i32; +pub const msidbControlAttributesRightAligned: msidbControlAttributes = 64i32; +pub const msidbControlAttributesSorted: msidbControlAttributes = 65536i32; +pub const msidbControlAttributesSunken: msidbControlAttributes = 4i32; +pub const msidbControlAttributesTransparent: msidbControlAttributes = 65536i32; +pub const msidbControlAttributesUsersLanguage: msidbControlAttributes = 1048576i32; +pub const msidbControlAttributesVisible: msidbControlAttributes = 1i32; +pub const msidbControlShowRollbackCost: msidbControlAttributes = 4194304i32; +pub const msidbCustomActionType64BitScript: msidbCustomActionType = 4096i32; +pub const msidbCustomActionTypeAsync: msidbCustomActionType = 128i32; +pub const msidbCustomActionTypeBinaryData: msidbCustomActionType = 0i32; +pub const msidbCustomActionTypeClientRepeat: msidbCustomActionType = 768i32; +pub const msidbCustomActionTypeCommit: msidbCustomActionType = 512i32; +pub const msidbCustomActionTypeContinue: msidbCustomActionType = 64i32; +pub const msidbCustomActionTypeDirectory: msidbCustomActionType = 32i32; +pub const msidbCustomActionTypeDll: msidbCustomActionType = 1i32; +pub const msidbCustomActionTypeExe: msidbCustomActionType = 2i32; +pub const msidbCustomActionTypeFirstSequence: msidbCustomActionType = 256i32; +pub const msidbCustomActionTypeHideTarget: msidbCustomActionType = 8192i32; +pub const msidbCustomActionTypeInScript: msidbCustomActionType = 1024i32; +pub const msidbCustomActionTypeInstall: msidbCustomActionType = 7i32; +pub const msidbCustomActionTypeJScript: msidbCustomActionType = 5i32; +pub const msidbCustomActionTypeNoImpersonate: msidbCustomActionType = 2048i32; +pub const msidbCustomActionTypeOncePerProcess: msidbCustomActionType = 512i32; +pub const msidbCustomActionTypePatchUninstall: msidbCustomActionType = 32768i32; +pub const msidbCustomActionTypeProperty: msidbCustomActionType = 48i32; +pub const msidbCustomActionTypeRollback: msidbCustomActionType = 256i32; +pub const msidbCustomActionTypeSourceFile: msidbCustomActionType = 16i32; +pub const msidbCustomActionTypeTSAware: msidbCustomActionType = 16384i32; +pub const msidbCustomActionTypeTextData: msidbCustomActionType = 3i32; +pub const msidbCustomActionTypeVBScript: msidbCustomActionType = 6i32; +pub const msidbDialogAttributesBiDi: msidbDialogAttributes = 896i32; +pub const msidbDialogAttributesError: msidbDialogAttributes = 65536i32; +pub const msidbDialogAttributesKeepModeless: msidbDialogAttributes = 16i32; +pub const msidbDialogAttributesLeftScroll: msidbDialogAttributes = 512i32; +pub const msidbDialogAttributesMinimize: msidbDialogAttributes = 4i32; +pub const msidbDialogAttributesModal: msidbDialogAttributes = 2i32; +pub const msidbDialogAttributesRTLRO: msidbDialogAttributes = 128i32; +pub const msidbDialogAttributesRightAligned: msidbDialogAttributes = 256i32; +pub const msidbDialogAttributesSysModal: msidbDialogAttributes = 8i32; +pub const msidbDialogAttributesTrackDiskSpace: msidbDialogAttributes = 32i32; +pub const msidbDialogAttributesUseCustomPalette: msidbDialogAttributes = 64i32; +pub const msidbDialogAttributesVisible: msidbDialogAttributes = 1i32; +pub const msidbEmbeddedHandlesBasic: msidbEmbeddedUIAttributes = 2i32; +pub const msidbEmbeddedUI: msidbEmbeddedUIAttributes = 1i32; +pub const msidbFeatureAttributesDisallowAdvertise: msidbFeatureAttributes = 8i32; +pub const msidbFeatureAttributesFavorAdvertise: msidbFeatureAttributes = 4i32; +pub const msidbFeatureAttributesFavorLocal: msidbFeatureAttributes = 0i32; +pub const msidbFeatureAttributesFavorSource: msidbFeatureAttributes = 1i32; +pub const msidbFeatureAttributesFollowParent: msidbFeatureAttributes = 2i32; +pub const msidbFeatureAttributesNoUnsupportedAdvertise: msidbFeatureAttributes = 32i32; +pub const msidbFeatureAttributesUIDisallowAbsent: msidbFeatureAttributes = 16i32; +pub const msidbFileAttributesChecksum: msidbFileAttributes = 1024i32; +pub const msidbFileAttributesCompressed: msidbFileAttributes = 16384i32; +pub const msidbFileAttributesHidden: msidbFileAttributes = 2i32; +pub const msidbFileAttributesIsolatedComp: msidbFileAttributes = 16i32; +pub const msidbFileAttributesNoncompressed: msidbFileAttributes = 8192i32; +pub const msidbFileAttributesPatchAdded: msidbFileAttributes = 4096i32; +pub const msidbFileAttributesReadOnly: msidbFileAttributes = 1i32; +pub const msidbFileAttributesReserved0: msidbFileAttributes = 8i32; +pub const msidbFileAttributesReserved1: msidbFileAttributes = 64i32; +pub const msidbFileAttributesReserved2: msidbFileAttributes = 128i32; +pub const msidbFileAttributesReserved3: msidbFileAttributes = 256i32; +pub const msidbFileAttributesReserved4: msidbFileAttributes = 32768i32; +pub const msidbFileAttributesSystem: msidbFileAttributes = 4i32; +pub const msidbFileAttributesVital: msidbFileAttributes = 512i32; +pub const msidbIniFileActionAddLine: msidbIniFileAction = 0i32; +pub const msidbIniFileActionAddTag: msidbIniFileAction = 3i32; +pub const msidbIniFileActionCreateLine: msidbIniFileAction = 1i32; +pub const msidbIniFileActionRemoveLine: msidbIniFileAction = 2i32; +pub const msidbIniFileActionRemoveTag: msidbIniFileAction = 4i32; +pub const msidbLocatorType64bit: msidbLocatorType = 16i32; +pub const msidbLocatorTypeDirectory: msidbLocatorType = 0i32; +pub const msidbLocatorTypeFileName: msidbLocatorType = 1i32; +pub const msidbLocatorTypeRawValue: msidbLocatorType = 2i32; +pub const msidbMoveFileOptionsMove: msidbMoveFileOptions = 1i32; +pub const msidbODBCDataSourceRegistrationPerMachine: msidbODBCDataSourceRegistration = 0i32; +pub const msidbODBCDataSourceRegistrationPerUser: msidbODBCDataSourceRegistration = 1i32; +pub const msidbPatchAttributesNonVital: msidbPatchAttributes = 1i32; +pub const msidbRegistryRootClassesRoot: msidbRegistryRoot = 0i32; +pub const msidbRegistryRootCurrentUser: msidbRegistryRoot = 1i32; +pub const msidbRegistryRootLocalMachine: msidbRegistryRoot = 2i32; +pub const msidbRegistryRootUsers: msidbRegistryRoot = 3i32; +pub const msidbRemoveFileInstallModeOnBoth: msidbRemoveFileInstallMode = 3i32; +pub const msidbRemoveFileInstallModeOnInstall: msidbRemoveFileInstallMode = 1i32; +pub const msidbRemoveFileInstallModeOnRemove: msidbRemoveFileInstallMode = 2i32; +pub const msidbServiceConfigEventInstall: msidbServiceConfigEvent = 1i32; +pub const msidbServiceConfigEventReinstall: msidbServiceConfigEvent = 4i32; +pub const msidbServiceConfigEventUninstall: msidbServiceConfigEvent = 2i32; +pub const msidbServiceControlEventDelete: msidbServiceControlEvent = 8i32; +pub const msidbServiceControlEventStart: msidbServiceControlEvent = 1i32; +pub const msidbServiceControlEventStop: msidbServiceControlEvent = 2i32; +pub const msidbServiceControlEventUninstallDelete: msidbServiceControlEvent = 128i32; +pub const msidbServiceControlEventUninstallStart: msidbServiceControlEvent = 16i32; +pub const msidbServiceControlEventUninstallStop: msidbServiceControlEvent = 32i32; +pub const msidbServiceInstallErrorControlVital: msidbServiceInstallErrorControl = 32768i32; +pub const msidbSumInfoSourceTypeAdminImage: msidbSumInfoSourceType = 4i32; +pub const msidbSumInfoSourceTypeCompressed: msidbSumInfoSourceType = 2i32; +pub const msidbSumInfoSourceTypeLUAPackage: msidbSumInfoSourceType = 8i32; +pub const msidbSumInfoSourceTypeSFN: msidbSumInfoSourceType = 1i32; +pub const msidbTextStyleStyleBitsBold: msidbTextStyleStyleBits = 1i32; +pub const msidbTextStyleStyleBitsItalic: msidbTextStyleStyleBits = 2i32; +pub const msidbTextStyleStyleBitsStrike: msidbTextStyleStyleBits = 8i32; +pub const msidbTextStyleStyleBitsUnderline: msidbTextStyleStyleBits = 4i32; +pub const msidbUpgradeAttributesIgnoreRemoveFailure: msidbUpgradeAttributes = 4i32; +pub const msidbUpgradeAttributesLanguagesExclusive: msidbUpgradeAttributes = 1024i32; +pub const msidbUpgradeAttributesMigrateFeatures: msidbUpgradeAttributes = 1i32; +pub const msidbUpgradeAttributesOnlyDetect: msidbUpgradeAttributes = 2i32; +pub const msidbUpgradeAttributesVersionMaxInclusive: msidbUpgradeAttributes = 512i32; +pub const msidbUpgradeAttributesVersionMinInclusive: msidbUpgradeAttributes = 256i32; +pub const msifiFastInstallLessPrgMsg: msifiFastInstallBits = 4i32; +pub const msifiFastInstallNoSR: msifiFastInstallBits = 1i32; +pub const msifiFastInstallQuickCosting: msifiFastInstallBits = 2i32; +pub const msirbRebootCustomActionReason: msirbRebootReason = 4i32; +pub const msirbRebootDeferred: msirbRebootType = 2i32; +pub const msirbRebootForceRebootReason: msirbRebootReason = 3i32; +pub const msirbRebootImmediate: msirbRebootType = 1i32; +pub const msirbRebootInUseFilesReason: msirbRebootReason = 1i32; +pub const msirbRebootScheduleRebootReason: msirbRebootReason = 2i32; +pub const msirbRebootUndeterminedReason: msirbRebootReason = 0i32; +pub const msmErrorDirCreate: msmErrorType = 7i32; +pub const msmErrorExclusion: msmErrorType = 3i32; +pub const msmErrorFeatureRequired: msmErrorType = 8i32; +pub const msmErrorFileCreate: msmErrorType = 6i32; +pub const msmErrorLanguageFailed: msmErrorType = 2i32; +pub const msmErrorLanguageUnsupported: msmErrorType = 1i32; +pub const msmErrorResequenceMerge: msmErrorType = 5i32; +pub const msmErrorTableMerge: msmErrorType = 4i32; +pub type ACTCTX_COMPATIBILITY_ELEMENT_TYPE = i32; +pub type ACTCTX_REQUESTED_RUN_LEVEL = i32; +pub type ADVERTISEFLAGS = i32; +pub type ASM_BIND_FLAGS = i32; +pub type ASM_CMP_FLAGS = i32; +pub type ASM_DISPLAY_FLAGS = i32; +pub type ASM_NAME = i32; +pub type CREATE_ASM_NAME_OBJ_FLAGS = i32; +pub type IASSEMBLYCACHE_UNINSTALL_DISPOSITION = u32; +pub type INSTALLFEATUREATTRIBUTE = i32; +pub type INSTALLLEVEL = i32; +pub type INSTALLLOGATTRIBUTES = i32; +pub type INSTALLLOGMODE = i32; +pub type INSTALLMESSAGE = i32; +pub type INSTALLMODE = i32; +pub type INSTALLSTATE = i32; +pub type INSTALLTYPE = i32; +pub type INSTALLUILEVEL = i32; +pub type MSIADVERTISEOPTIONFLAGS = i32; +pub type MSIARCHITECTUREFLAGS = i32; +pub type MSIASSEMBLYINFO = u32; +pub type MSICODE = i32; +pub type MSICOLINFO = i32; +pub type MSICONDITION = i32; +pub type MSICOSTTREE = i32; +pub type MSIDBERROR = i32; +pub type MSIDBSTATE = i32; +pub type MSIINSTALLCONTEXT = i32; +pub type MSIMODIFY = i32; +pub type MSIOPENPACKAGEFLAGS = i32; +pub type MSIPATCHDATATYPE = i32; +pub type MSIPATCHSTATE = i32; +pub type MSIRUNMODE = i32; +pub type MSISOURCETYPE = i32; +pub type MSITRANSACTION = i32; +pub type MSITRANSACTIONSTATE = u32; +pub type MSITRANSFORM_ERROR = i32; +pub type MSITRANSFORM_VALIDATE = i32; +pub type PACKMAN_RUNTIME = i32; +pub type PM_ACTIVATION_POLICY = i32; +pub type PM_APPLICATION_HUBTYPE = i32; +pub type PM_APPLICATION_INSTALL_TYPE = i32; +pub type PM_APPLICATION_STATE = i32; +pub type PM_APP_GENRE = i32; +pub type PM_ENUM_APP_FILTER = i32; +pub type PM_ENUM_BSA_FILTER = i32; +pub type PM_ENUM_BW_FILTER = i32; +pub type PM_ENUM_EXTENSION_FILTER = i32; +pub type PM_ENUM_TASK_FILTER = i32; +pub type PM_ENUM_TILE_FILTER = i32; +pub type PM_LIVETILE_RECURRENCE_TYPE = i32; +pub type PM_LOGO_SIZE = i32; +pub type PM_STARTTILE_TYPE = i32; +pub type PM_TASK_TRANSITION = i32; +pub type PM_TASK_TYPE = i32; +pub type PM_TILE_HUBTYPE = i32; +pub type PM_TILE_SIZE = i32; +pub type QUERYASMINFO_FLAGS = u32; +pub type REINSTALLMODE = i32; +pub type RESULTTYPES = i32; +pub type SCRIPTFLAGS = i32; +pub type STATUSTYPES = i32; +pub type TILE_TEMPLATE_TYPE = i32; +pub type USERINFOSTATE = i32; +pub type msidbAssemblyAttributes = i32; +pub type msidbClassAttributes = i32; +pub type msidbComponentAttributes = i32; +pub type msidbControlAttributes = i32; +pub type msidbCustomActionType = i32; +pub type msidbDialogAttributes = i32; +pub type msidbEmbeddedUIAttributes = i32; +pub type msidbFeatureAttributes = i32; +pub type msidbFileAttributes = i32; +pub type msidbIniFileAction = i32; +pub type msidbLocatorType = i32; +pub type msidbMoveFileOptions = i32; +pub type msidbODBCDataSourceRegistration = i32; +pub type msidbPatchAttributes = i32; +pub type msidbRegistryRoot = i32; +pub type msidbRemoveFileInstallMode = i32; +pub type msidbServiceConfigEvent = i32; +pub type msidbServiceControlEvent = i32; +pub type msidbServiceInstallErrorControl = i32; +pub type msidbSumInfoSourceType = i32; +pub type msidbTextStyleStyleBits = i32; +pub type msidbUpgradeAttributes = i32; +pub type msifiFastInstallBits = i32; +pub type msirbRebootReason = i32; +pub type msirbRebootType = i32; +pub type msmErrorType = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ACTCTXA { + pub cbSize: u32, + pub dwFlags: u32, + pub lpSource: ::windows_sys::core::PCSTR, + pub wProcessorArchitecture: u16, + pub wLangId: u16, + pub lpAssemblyDirectory: ::windows_sys::core::PCSTR, + pub lpResourceName: ::windows_sys::core::PCSTR, + pub lpApplicationName: ::windows_sys::core::PCSTR, + pub hModule: super::super::Foundation::HMODULE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ACTCTXA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ACTCTXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ACTCTXW { + pub cbSize: u32, + pub dwFlags: u32, + pub lpSource: ::windows_sys::core::PCWSTR, + pub wProcessorArchitecture: u16, + pub wLangId: u16, + pub lpAssemblyDirectory: ::windows_sys::core::PCWSTR, + pub lpResourceName: ::windows_sys::core::PCWSTR, + pub lpApplicationName: ::windows_sys::core::PCWSTR, + pub hModule: super::super::Foundation::HMODULE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ACTCTXW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ACTCTXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +pub struct ACTCTX_SECTION_KEYED_DATA { + pub cbSize: u32, + pub ulDataFormatVersion: u32, + pub lpData: *mut ::core::ffi::c_void, + pub ulLength: u32, + pub lpSectionGlobalData: *mut ::core::ffi::c_void, + pub ulSectionGlobalDataLength: u32, + pub lpSectionBase: *mut ::core::ffi::c_void, + pub ulSectionTotalLength: u32, + pub hActCtx: super::super::Foundation::HANDLE, + pub ulAssemblyRosterIndex: u32, + pub ulFlags: u32, + pub AssemblyMetadata: super::WindowsProgramming::ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +impl ::core::marker::Copy for ACTCTX_SECTION_KEYED_DATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +impl ::core::clone::Clone for ACTCTX_SECTION_KEYED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION { + pub ulFlags: u32, + pub ulEncodedAssemblyIdentityLength: u32, + pub ulManifestPathType: u32, + pub ulManifestPathLength: u32, + pub liManifestLastWriteTime: i64, + pub ulPolicyPathType: u32, + pub ulPolicyPathLength: u32, + pub liPolicyLastWriteTime: i64, + pub ulMetadataSatelliteRosterIndex: u32, + pub ulManifestVersionMajor: u32, + pub ulManifestVersionMinor: u32, + pub ulPolicyVersionMajor: u32, + pub ulPolicyVersionMinor: u32, + pub ulAssemblyDirectoryNameLength: u32, + pub lpAssemblyEncodedAssemblyIdentity: ::windows_sys::core::PCWSTR, + pub lpAssemblyManifestPath: ::windows_sys::core::PCWSTR, + pub lpAssemblyPolicyPath: ::windows_sys::core::PCWSTR, + pub lpAssemblyDirectoryName: ::windows_sys::core::PCWSTR, + pub ulFileCount: u32, +} +impl ::core::marker::Copy for ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION {} +impl ::core::clone::Clone for ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION { + pub ElementCount: u32, + pub Elements: [COMPATIBILITY_CONTEXT_ELEMENT; 1], +} +impl ::core::marker::Copy for ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION {} +impl ::core::clone::Clone for ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTIVATION_CONTEXT_DETAILED_INFORMATION { + pub dwFlags: u32, + pub ulFormatVersion: u32, + pub ulAssemblyCount: u32, + pub ulRootManifestPathType: u32, + pub ulRootManifestPathChars: u32, + pub ulRootConfigurationPathType: u32, + pub ulRootConfigurationPathChars: u32, + pub ulAppDirPathType: u32, + pub ulAppDirPathChars: u32, + pub lpRootManifestPath: ::windows_sys::core::PCWSTR, + pub lpRootConfigurationPath: ::windows_sys::core::PCWSTR, + pub lpAppDirPath: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for ACTIVATION_CONTEXT_DETAILED_INFORMATION {} +impl ::core::clone::Clone for ACTIVATION_CONTEXT_DETAILED_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTIVATION_CONTEXT_QUERY_INDEX { + pub ulAssemblyIndex: u32, + pub ulFileIndexInAssembly: u32, +} +impl ::core::marker::Copy for ACTIVATION_CONTEXT_QUERY_INDEX {} +impl ::core::clone::Clone for ACTIVATION_CONTEXT_QUERY_INDEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION { + pub ulFlags: u32, + pub RunLevel: ACTCTX_REQUESTED_RUN_LEVEL, + pub UiAccess: u32, +} +impl ::core::marker::Copy for ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION {} +impl ::core::clone::Clone for ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ASSEMBLY_FILE_DETAILED_INFORMATION { + pub ulFlags: u32, + pub ulFilenameLength: u32, + pub ulPathLength: u32, + pub lpFileName: ::windows_sys::core::PCWSTR, + pub lpFilePath: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for ASSEMBLY_FILE_DETAILED_INFORMATION {} +impl ::core::clone::Clone for ASSEMBLY_FILE_DETAILED_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ASSEMBLY_INFO { + pub cbAssemblyInfo: u32, + pub dwAssemblyFlags: u32, + pub uliAssemblySizeInKB: u64, + pub pszCurrentAssemblyPathBuf: ::windows_sys::core::PWSTR, + pub cchBuf: u32, +} +impl ::core::marker::Copy for ASSEMBLY_INFO {} +impl ::core::clone::Clone for ASSEMBLY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COMPATIBILITY_CONTEXT_ELEMENT { + pub Id: ::windows_sys::core::GUID, + pub Type: ACTCTX_COMPATIBILITY_ELEMENT_TYPE, + pub MaxVersionTested: u64, +} +impl ::core::marker::Copy for COMPATIBILITY_CONTEXT_ELEMENT {} +impl ::core::clone::Clone for COMPATIBILITY_CONTEXT_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DELTA_HASH { + pub HashSize: u32, + pub HashValue: [u8; 32], +} +impl ::core::marker::Copy for DELTA_HASH {} +impl ::core::clone::Clone for DELTA_HASH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct DELTA_HEADER_INFO { + pub FileTypeSet: i64, + pub FileType: i64, + pub Flags: i64, + pub TargetSize: usize, + pub TargetFileTime: super::super::Foundation::FILETIME, + pub TargetHashAlgId: super::super::Security::Cryptography::ALG_ID, + pub TargetHash: DELTA_HASH, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for DELTA_HEADER_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for DELTA_HEADER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DELTA_INPUT { + pub Anonymous: DELTA_INPUT_0, + pub uSize: usize, + pub Editable: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DELTA_INPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DELTA_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DELTA_INPUT_0 { + pub lpcStart: *const ::core::ffi::c_void, + pub lpStart: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DELTA_INPUT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DELTA_INPUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DELTA_OUTPUT { + pub lpStart: *mut ::core::ffi::c_void, + pub uSize: usize, +} +impl ::core::marker::Copy for DELTA_OUTPUT {} +impl ::core::clone::Clone for DELTA_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FUSION_INSTALL_REFERENCE { + pub cbSize: u32, + pub dwFlags: u32, + pub guidScheme: ::windows_sys::core::GUID, + pub szIdentifier: ::windows_sys::core::PCWSTR, + pub szNonCannonicalData: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for FUSION_INSTALL_REFERENCE {} +impl ::core::clone::Clone for FUSION_INSTALL_REFERENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSIFILEHASHINFO { + pub dwFileHashInfoSize: u32, + pub dwData: [u32; 4], +} +impl ::core::marker::Copy for MSIFILEHASHINFO {} +impl ::core::clone::Clone for MSIFILEHASHINFO { + fn clone(&self) -> Self { + *self + } +} +pub type MSIHANDLE = u32; +#[repr(C)] +pub struct MSIPATCHSEQUENCEINFOA { + pub szPatchData: ::windows_sys::core::PCSTR, + pub ePatchDataType: MSIPATCHDATATYPE, + pub dwOrder: u32, + pub uStatus: u32, +} +impl ::core::marker::Copy for MSIPATCHSEQUENCEINFOA {} +impl ::core::clone::Clone for MSIPATCHSEQUENCEINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSIPATCHSEQUENCEINFOW { + pub szPatchData: ::windows_sys::core::PCWSTR, + pub ePatchDataType: MSIPATCHDATATYPE, + pub dwOrder: u32, + pub uStatus: u32, +} +impl ::core::marker::Copy for MSIPATCHSEQUENCEINFOW {} +impl ::core::clone::Clone for MSIPATCHSEQUENCEINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PATCH_IGNORE_RANGE { + pub OffsetInOldFile: u32, + pub LengthInBytes: u32, +} +impl ::core::marker::Copy for PATCH_IGNORE_RANGE {} +impl ::core::clone::Clone for PATCH_IGNORE_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PATCH_INTERLEAVE_MAP { + pub CountRanges: u32, + pub Range: [PATCH_INTERLEAVE_MAP_0; 1], +} +impl ::core::marker::Copy for PATCH_INTERLEAVE_MAP {} +impl ::core::clone::Clone for PATCH_INTERLEAVE_MAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PATCH_INTERLEAVE_MAP_0 { + pub OldOffset: u32, + pub OldLength: u32, + pub NewLength: u32, +} +impl ::core::marker::Copy for PATCH_INTERLEAVE_MAP_0 {} +impl ::core::clone::Clone for PATCH_INTERLEAVE_MAP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PATCH_OLD_FILE_INFO { + pub SizeOfThisStruct: u32, + pub Anonymous: PATCH_OLD_FILE_INFO_0, + pub IgnoreRangeCount: u32, + pub IgnoreRangeArray: *mut PATCH_IGNORE_RANGE, + pub RetainRangeCount: u32, + pub RetainRangeArray: *mut PATCH_RETAIN_RANGE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PATCH_OLD_FILE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PATCH_OLD_FILE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union PATCH_OLD_FILE_INFO_0 { + pub OldFileNameA: ::windows_sys::core::PCSTR, + pub OldFileNameW: ::windows_sys::core::PCWSTR, + pub OldFileHandle: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PATCH_OLD_FILE_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PATCH_OLD_FILE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PATCH_OLD_FILE_INFO_A { + pub SizeOfThisStruct: u32, + pub OldFileName: ::windows_sys::core::PCSTR, + pub IgnoreRangeCount: u32, + pub IgnoreRangeArray: *mut PATCH_IGNORE_RANGE, + pub RetainRangeCount: u32, + pub RetainRangeArray: *mut PATCH_RETAIN_RANGE, +} +impl ::core::marker::Copy for PATCH_OLD_FILE_INFO_A {} +impl ::core::clone::Clone for PATCH_OLD_FILE_INFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PATCH_OLD_FILE_INFO_H { + pub SizeOfThisStruct: u32, + pub OldFileHandle: super::super::Foundation::HANDLE, + pub IgnoreRangeCount: u32, + pub IgnoreRangeArray: *mut PATCH_IGNORE_RANGE, + pub RetainRangeCount: u32, + pub RetainRangeArray: *mut PATCH_RETAIN_RANGE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PATCH_OLD_FILE_INFO_H {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PATCH_OLD_FILE_INFO_H { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PATCH_OLD_FILE_INFO_W { + pub SizeOfThisStruct: u32, + pub OldFileName: ::windows_sys::core::PCWSTR, + pub IgnoreRangeCount: u32, + pub IgnoreRangeArray: *mut PATCH_IGNORE_RANGE, + pub RetainRangeCount: u32, + pub RetainRangeArray: *mut PATCH_RETAIN_RANGE, +} +impl ::core::marker::Copy for PATCH_OLD_FILE_INFO_W {} +impl ::core::clone::Clone for PATCH_OLD_FILE_INFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PATCH_OPTION_DATA { + pub SizeOfThisStruct: u32, + pub SymbolOptionFlags: u32, + pub NewFileSymbolPath: ::windows_sys::core::PCSTR, + pub OldFileSymbolPathArray: *const ::windows_sys::core::PCSTR, + pub ExtendedOptionFlags: u32, + pub SymLoadCallback: PPATCH_SYMLOAD_CALLBACK, + pub SymLoadContext: *mut ::core::ffi::c_void, + pub InterleaveMapArray: *mut *mut PATCH_INTERLEAVE_MAP, + pub MaxLzxWindowSize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PATCH_OPTION_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PATCH_OPTION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PATCH_RETAIN_RANGE { + pub OffsetInOldFile: u32, + pub LengthInBytes: u32, + pub OffsetInNewFile: u32, +} +impl ::core::marker::Copy for PATCH_RETAIN_RANGE {} +impl ::core::clone::Clone for PATCH_RETAIN_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PMSIHANDLE { + pub m_h: MSIHANDLE, +} +impl ::core::marker::Copy for PMSIHANDLE {} +impl ::core::clone::Clone for PMSIHANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PM_APPTASKTYPE { + pub ProductID: ::windows_sys::core::GUID, + pub TaskType: PM_TASK_TYPE, +} +impl ::core::marker::Copy for PM_APPTASKTYPE {} +impl ::core::clone::Clone for PM_APPTASKTYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PM_BSATASKID { + pub ProductID: ::windows_sys::core::GUID, + pub TaskID: ::windows_sys::core::BSTR, +} +impl ::core::marker::Copy for PM_BSATASKID {} +impl ::core::clone::Clone for PM_BSATASKID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PM_BWTASKID { + pub ProductID: ::windows_sys::core::GUID, + pub TaskID: ::windows_sys::core::BSTR, +} +impl ::core::marker::Copy for PM_BWTASKID {} +impl ::core::clone::Clone for PM_BWTASKID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PM_ENUM_FILTER { + pub FilterType: i32, + pub FilterParameter: PM_ENUM_FILTER_0, +} +impl ::core::marker::Copy for PM_ENUM_FILTER {} +impl ::core::clone::Clone for PM_ENUM_FILTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PM_ENUM_FILTER_0 { + pub Dummy: i32, + pub Genre: PM_APP_GENRE, + pub AppHubType: PM_APPLICATION_HUBTYPE, + pub HubType: PM_TILE_HUBTYPE, + pub Tasktype: PM_TASK_TYPE, + pub TaskProductID: ::windows_sys::core::GUID, + pub TileProductID: ::windows_sys::core::GUID, + pub AppTaskType: PM_APPTASKTYPE, + pub Consumer: PM_EXTENSIONCONSUMER, + pub BSATask: PM_BSATASKID, + pub BSAProductID: ::windows_sys::core::GUID, + pub BWTask: PM_BWTASKID, + pub ProtocolName: ::windows_sys::core::BSTR, + pub FileType: ::windows_sys::core::BSTR, + pub ContentType: ::windows_sys::core::BSTR, + pub AppSupportedFileExtPID: ::windows_sys::core::GUID, + pub ShareTargetFileType: ::windows_sys::core::BSTR, +} +impl ::core::marker::Copy for PM_ENUM_FILTER_0 {} +impl ::core::clone::Clone for PM_ENUM_FILTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PM_EXTENSIONCONSUMER { + pub ConsumerPID: ::windows_sys::core::GUID, + pub ExtensionID: ::windows_sys::core::BSTR, +} +impl ::core::marker::Copy for PM_EXTENSIONCONSUMER {} +impl ::core::clone::Clone for PM_EXTENSIONCONSUMER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PM_INSTALLINFO { + pub ProductID: ::windows_sys::core::GUID, + pub PackagePath: ::windows_sys::core::BSTR, + pub InstanceID: ::windows_sys::core::GUID, + pub pbLicense: *mut u8, + pub cbLicense: u32, + pub IsUninstallDisabled: super::super::Foundation::BOOL, + pub DeploymentOptions: u32, + pub OfferID: ::windows_sys::core::GUID, + pub MarketplaceAppVersion: ::windows_sys::core::BSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PM_INSTALLINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PM_INSTALLINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PM_INVOCATIONINFO { + pub URIBaseOrAUMID: ::windows_sys::core::BSTR, + pub URIFragmentOrArgs: ::windows_sys::core::BSTR, +} +impl ::core::marker::Copy for PM_INVOCATIONINFO {} +impl ::core::clone::Clone for PM_INVOCATIONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PM_STARTAPPBLOB { + pub cbSize: u32, + pub ProductID: ::windows_sys::core::GUID, + pub AppTitle: ::windows_sys::core::BSTR, + pub IconPath: ::windows_sys::core::BSTR, + pub IsUninstallable: super::super::Foundation::BOOL, + pub AppInstallType: PM_APPLICATION_INSTALL_TYPE, + pub InstanceID: ::windows_sys::core::GUID, + pub State: PM_APPLICATION_STATE, + pub IsModern: super::super::Foundation::BOOL, + pub IsModernLightUp: super::super::Foundation::BOOL, + pub LightUpSupportMask: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PM_STARTAPPBLOB {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PM_STARTAPPBLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PM_STARTTILEBLOB { + pub cbSize: u32, + pub ProductID: ::windows_sys::core::GUID, + pub TileID: ::windows_sys::core::BSTR, + pub TemplateType: TILE_TEMPLATE_TYPE, + pub HubPosition: [u32; 32], + pub HubVisibilityBitmask: u32, + pub IsDefault: super::super::Foundation::BOOL, + pub TileType: PM_STARTTILE_TYPE, + pub pbPropBlob: *mut u8, + pub cbPropBlob: u32, + pub IsRestoring: super::super::Foundation::BOOL, + pub IsModern: super::super::Foundation::BOOL, + pub InvocationInfo: PM_INVOCATIONINFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PM_STARTTILEBLOB {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PM_STARTTILEBLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PM_UPDATEINFO { + pub ProductID: ::windows_sys::core::GUID, + pub PackagePath: ::windows_sys::core::BSTR, + pub InstanceID: ::windows_sys::core::GUID, + pub pbLicense: *mut u8, + pub cbLicense: u32, + pub MarketplaceAppVersion: ::windows_sys::core::BSTR, + pub DeploymentOptions: u32, +} +impl ::core::marker::Copy for PM_UPDATEINFO {} +impl ::core::clone::Clone for PM_UPDATEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PM_UPDATEINFO_LEGACY { + pub ProductID: ::windows_sys::core::GUID, + pub PackagePath: ::windows_sys::core::BSTR, + pub InstanceID: ::windows_sys::core::GUID, + pub pbLicense: *mut u8, + pub cbLicense: u32, + pub MarketplaceAppVersion: ::windows_sys::core::BSTR, +} +impl ::core::marker::Copy for PM_UPDATEINFO_LEGACY {} +impl ::core::clone::Clone for PM_UPDATEINFO_LEGACY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROTECTED_FILE_DATA { + pub FileName: [u16; 260], + pub FileNumber: u32, +} +impl ::core::marker::Copy for PROTECTED_FILE_DATA {} +impl ::core::clone::Clone for PROTECTED_FILE_DATA { + fn clone(&self) -> Self { + *self + } +} +pub type INSTALLUI_HANDLERA = ::core::option::Option i32>; +pub type INSTALLUI_HANDLERW = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPDISPLAYVAL = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPEVALCOMCALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +pub type PINSTALLUI_HANDLER_RECORD = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPATCH_PROGRESS_CALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PPATCH_SYMLOAD_CALLBACK = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/ApplicationVerifier/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/ApplicationVerifier/mod.rs new file mode 100644 index 000000000..5aab1dc91 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/ApplicationVerifier/mod.rs @@ -0,0 +1,74 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("verifier.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VerifierEnumerateResource(process : super::super::Foundation:: HANDLE, flags : VERIFIER_ENUM_RESOURCE_FLAGS, resourcetype : u32, resourcecallback : AVRF_RESOURCE_ENUMERATE_CALLBACK, enumerationcontext : *mut ::core::ffi::c_void) -> u32); +pub const AVRF_ENUM_RESOURCES_FLAGS_DONT_RESOLVE_TRACES: VERIFIER_ENUM_RESOURCE_FLAGS = 2u32; +pub const AVRF_ENUM_RESOURCES_FLAGS_SUSPEND: VERIFIER_ENUM_RESOURCE_FLAGS = 1u32; +pub const AVRF_MAX_TRACES: u32 = 32u32; +pub const AllocationStateBusy: eUserAllocationState = 1i32; +pub const AllocationStateFree: eUserAllocationState = 2i32; +pub const AllocationStateUnknown: eUserAllocationState = 0i32; +pub const AvrfResourceHandleTrace: eAvrfResourceTypes = 1i32; +pub const AvrfResourceHeapAllocation: eAvrfResourceTypes = 0i32; +pub const AvrfResourceMax: eAvrfResourceTypes = 2i32; +pub const HeapEnumerationEverything: eHeapEnumerationLevel = 0i32; +pub const HeapEnumerationStop: eHeapEnumerationLevel = -1i32; +pub const HeapFullPageHeap: eHeapAllocationState = 1073741824i32; +pub const HeapMetadata: eHeapAllocationState = -2147483648i32; +pub const HeapStateMask: eHeapAllocationState = -65536i32; +pub const OperationDbBADREF: eHANDLE_TRACE_OPERATIONS = 3i32; +pub const OperationDbCLOSE: eHANDLE_TRACE_OPERATIONS = 2i32; +pub const OperationDbOPEN: eHANDLE_TRACE_OPERATIONS = 1i32; +pub const OperationDbUnused: eHANDLE_TRACE_OPERATIONS = 0i32; +pub type VERIFIER_ENUM_RESOURCE_FLAGS = u32; +pub type eAvrfResourceTypes = i32; +pub type eHANDLE_TRACE_OPERATIONS = i32; +pub type eHeapAllocationState = i32; +pub type eHeapEnumerationLevel = i32; +pub type eUserAllocationState = i32; +#[repr(C)] +pub struct AVRF_BACKTRACE_INFORMATION { + pub Depth: u32, + pub Index: u32, + pub ReturnAddresses: [u64; 32], +} +impl ::core::marker::Copy for AVRF_BACKTRACE_INFORMATION {} +impl ::core::clone::Clone for AVRF_BACKTRACE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AVRF_HANDLE_OPERATION { + pub Handle: u64, + pub ProcessId: u32, + pub ThreadId: u32, + pub OperationType: u32, + pub Spare0: u32, + pub BackTraceInformation: AVRF_BACKTRACE_INFORMATION, +} +impl ::core::marker::Copy for AVRF_HANDLE_OPERATION {} +impl ::core::clone::Clone for AVRF_HANDLE_OPERATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AVRF_HEAP_ALLOCATION { + pub HeapHandle: u64, + pub UserAllocation: u64, + pub UserAllocationSize: u64, + pub Allocation: u64, + pub AllocationSize: u64, + pub UserAllocationState: u32, + pub HeapState: u32, + pub HeapContext: u64, + pub BackTraceInformation: *mut AVRF_BACKTRACE_INFORMATION, +} +impl ::core::marker::Copy for AVRF_HEAP_ALLOCATION {} +impl ::core::clone::Clone for AVRF_HEAP_ALLOCATION { + fn clone(&self) -> Self { + *self + } +} +pub type AVRF_HANDLEOPERATION_ENUMERATE_CALLBACK = ::core::option::Option u32>; +pub type AVRF_HEAPALLOCATION_ENUMERATE_CALLBACK = ::core::option::Option u32>; +pub type AVRF_RESOURCE_ENUMERATE_CALLBACK = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/ClrHosting/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/ClrHosting/mod.rs new file mode 100644 index 000000000..55ae34394 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/ClrHosting/mod.rs @@ -0,0 +1,450 @@ +::windows_targets::link!("mscoree.dll" "system" fn CLRCreateInstance(clsid : *const ::windows_sys::core::GUID, riid : *const ::windows_sys::core::GUID, ppinterface : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn CallFunctionShim(szdllname : ::windows_sys::core::PCWSTR, szfunctionname : ::windows_sys::core::PCSTR, lpvargument1 : *mut ::core::ffi::c_void, lpvargument2 : *mut ::core::ffi::c_void, szversion : ::windows_sys::core::PCWSTR, pvreserved : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn ClrCreateManagedInstance(ptypename : ::windows_sys::core::PCWSTR, riid : *const ::windows_sys::core::GUID, ppobject : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn CorBindToCurrentRuntime(pwszfilename : ::windows_sys::core::PCWSTR, rclsid : *const ::windows_sys::core::GUID, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn CorBindToRuntime(pwszversion : ::windows_sys::core::PCWSTR, pwszbuildflavor : ::windows_sys::core::PCWSTR, rclsid : *const ::windows_sys::core::GUID, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("mscoree.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn CorBindToRuntimeByCfg(pcfgstream : super::Com:: IStream, reserved : u32, startupflags : u32, rclsid : *const ::windows_sys::core::GUID, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn CorBindToRuntimeEx(pwszversion : ::windows_sys::core::PCWSTR, pwszbuildflavor : ::windows_sys::core::PCWSTR, startupflags : u32, rclsid : *const ::windows_sys::core::GUID, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn CorBindToRuntimeHost(pwszversion : ::windows_sys::core::PCWSTR, pwszbuildflavor : ::windows_sys::core::PCWSTR, pwszhostconfigfile : ::windows_sys::core::PCWSTR, preserved : *mut ::core::ffi::c_void, startupflags : u32, rclsid : *const ::windows_sys::core::GUID, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn CorExitProcess(exitcode : i32) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +::windows_targets::link!("mscoree.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] fn CorLaunchApplication(dwclickoncehost : HOST_TYPE, pwzappfullname : ::windows_sys::core::PCWSTR, dwmanifestpaths : u32, ppwzmanifestpaths : *const ::windows_sys::core::PCWSTR, dwactivationdata : u32, ppwzactivationdata : *const ::windows_sys::core::PCWSTR, lpprocessinformation : *mut super::Threading:: PROCESS_INFORMATION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn CorMarkThreadInThreadPool() -> ()); +::windows_targets::link!("mscoree.dll" "system" fn CreateDebuggingInterfaceFromVersion(idebuggerversion : i32, szdebuggeeversion : ::windows_sys::core::PCWSTR, ppcordb : *mut ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn GetCLRIdentityManager(riid : *const ::windows_sys::core::GUID, ppmanager : *mut ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn GetCORRequiredVersion(pbuffer : ::windows_sys::core::PWSTR, cchbuffer : u32, dwlength : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn GetCORSystemDirectory(pbuffer : ::windows_sys::core::PWSTR, cchbuffer : u32, dwlength : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn GetCORVersion(pbbuffer : ::windows_sys::core::PWSTR, cchbuffer : u32, dwlength : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn GetFileVersion(szfilename : ::windows_sys::core::PCWSTR, szbuffer : ::windows_sys::core::PWSTR, cchbuffer : u32, dwlength : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn GetRealProcAddress(pwszprocname : ::windows_sys::core::PCSTR, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn GetRequestedRuntimeInfo(pexe : ::windows_sys::core::PCWSTR, pwszversion : ::windows_sys::core::PCWSTR, pconfigurationfile : ::windows_sys::core::PCWSTR, startupflags : u32, runtimeinfoflags : u32, pdirectory : ::windows_sys::core::PWSTR, dwdirectory : u32, dwdirectorylength : *mut u32, pversion : ::windows_sys::core::PWSTR, cchbuffer : u32, dwlength : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn GetRequestedRuntimeVersion(pexe : ::windows_sys::core::PCWSTR, pversion : ::windows_sys::core::PWSTR, cchbuffer : u32, dwlength : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn GetRequestedRuntimeVersionForCLSID(rclsid : *const ::windows_sys::core::GUID, pversion : ::windows_sys::core::PWSTR, cchbuffer : u32, dwlength : *mut u32, dwresolutionflags : CLSID_RESOLUTION_FLAGS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscoree.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVersionFromProcess(hprocess : super::super::Foundation:: HANDLE, pversion : ::windows_sys::core::PWSTR, cchbuffer : u32, dwlength : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscoree.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadLibraryShim(szdllname : ::windows_sys::core::PCWSTR, szversion : ::windows_sys::core::PCWSTR, pvreserved : *mut ::core::ffi::c_void, phmoddll : *mut super::super::Foundation:: HMODULE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn LoadStringRC(iresouceid : u32, szbuffer : ::windows_sys::core::PWSTR, imax : i32, bquiet : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn LoadStringRCEx(lcid : u32, iresouceid : u32, szbuffer : ::windows_sys::core::PWSTR, imax : i32, bquiet : i32, pcwchused : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mscoree.dll" "system" fn LockClrVersion(hostcallback : FLockClrVersionCallback, pbeginhostsetup : *mut FLockClrVersionCallback, pendhostsetup : *mut FLockClrVersionCallback) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscoree.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RunDll32ShimW(hwnd : super::super::Foundation:: HWND, hinst : super::super::Foundation:: HINSTANCE, lpszcmdline : ::windows_sys::core::PCWSTR, ncmdshow : i32) -> ::windows_sys::core::HRESULT); +pub type IActionOnCLREvent = *mut ::core::ffi::c_void; +pub type IApartmentCallback = *mut ::core::ffi::c_void; +pub type IAppDomainBinding = *mut ::core::ffi::c_void; +pub type ICLRAppDomainResourceMonitor = *mut ::core::ffi::c_void; +pub type ICLRAssemblyIdentityManager = *mut ::core::ffi::c_void; +pub type ICLRAssemblyReferenceList = *mut ::core::ffi::c_void; +pub type ICLRControl = *mut ::core::ffi::c_void; +pub type ICLRDebugManager = *mut ::core::ffi::c_void; +pub type ICLRDebugging = *mut ::core::ffi::c_void; +pub type ICLRDebuggingLibraryProvider = *mut ::core::ffi::c_void; +pub type ICLRDomainManager = *mut ::core::ffi::c_void; +pub type ICLRErrorReportingManager = *mut ::core::ffi::c_void; +pub type ICLRGCManager = *mut ::core::ffi::c_void; +pub type ICLRGCManager2 = *mut ::core::ffi::c_void; +pub type ICLRHostBindingPolicyManager = *mut ::core::ffi::c_void; +pub type ICLRHostProtectionManager = *mut ::core::ffi::c_void; +pub type ICLRIoCompletionManager = *mut ::core::ffi::c_void; +pub type ICLRMemoryNotificationCallback = *mut ::core::ffi::c_void; +pub type ICLRMetaHost = *mut ::core::ffi::c_void; +pub type ICLRMetaHostPolicy = *mut ::core::ffi::c_void; +pub type ICLROnEventManager = *mut ::core::ffi::c_void; +pub type ICLRPolicyManager = *mut ::core::ffi::c_void; +pub type ICLRProbingAssemblyEnum = *mut ::core::ffi::c_void; +pub type ICLRProfiling = *mut ::core::ffi::c_void; +pub type ICLRReferenceAssemblyEnum = *mut ::core::ffi::c_void; +pub type ICLRRuntimeHost = *mut ::core::ffi::c_void; +pub type ICLRRuntimeInfo = *mut ::core::ffi::c_void; +pub type ICLRStrongName = *mut ::core::ffi::c_void; +pub type ICLRStrongName2 = *mut ::core::ffi::c_void; +pub type ICLRStrongName3 = *mut ::core::ffi::c_void; +pub type ICLRSyncManager = *mut ::core::ffi::c_void; +pub type ICLRTask = *mut ::core::ffi::c_void; +pub type ICLRTask2 = *mut ::core::ffi::c_void; +pub type ICLRTaskManager = *mut ::core::ffi::c_void; +pub type ICatalogServices = *mut ::core::ffi::c_void; +pub type ICorConfiguration = *mut ::core::ffi::c_void; +pub type ICorRuntimeHost = *mut ::core::ffi::c_void; +pub type ICorThreadpool = *mut ::core::ffi::c_void; +pub type IDebuggerInfo = *mut ::core::ffi::c_void; +pub type IDebuggerThreadControl = *mut ::core::ffi::c_void; +pub type IGCHost = *mut ::core::ffi::c_void; +pub type IGCHost2 = *mut ::core::ffi::c_void; +pub type IGCHostControl = *mut ::core::ffi::c_void; +pub type IGCThreadControl = *mut ::core::ffi::c_void; +pub type IHostAssemblyManager = *mut ::core::ffi::c_void; +pub type IHostAssemblyStore = *mut ::core::ffi::c_void; +pub type IHostAutoEvent = *mut ::core::ffi::c_void; +pub type IHostControl = *mut ::core::ffi::c_void; +pub type IHostCrst = *mut ::core::ffi::c_void; +pub type IHostGCManager = *mut ::core::ffi::c_void; +pub type IHostIoCompletionManager = *mut ::core::ffi::c_void; +pub type IHostMalloc = *mut ::core::ffi::c_void; +pub type IHostManualEvent = *mut ::core::ffi::c_void; +pub type IHostMemoryManager = *mut ::core::ffi::c_void; +pub type IHostPolicyManager = *mut ::core::ffi::c_void; +pub type IHostSecurityContext = *mut ::core::ffi::c_void; +pub type IHostSecurityManager = *mut ::core::ffi::c_void; +pub type IHostSemaphore = *mut ::core::ffi::c_void; +pub type IHostSyncManager = *mut ::core::ffi::c_void; +pub type IHostTask = *mut ::core::ffi::c_void; +pub type IHostTaskManager = *mut ::core::ffi::c_void; +pub type IHostThreadpoolManager = *mut ::core::ffi::c_void; +pub type IManagedObject = *mut ::core::ffi::c_void; +pub type IObjectHandle = *mut ::core::ffi::c_void; +pub type ITypeName = *mut ::core::ffi::c_void; +pub type ITypeNameBuilder = *mut ::core::ffi::c_void; +pub type ITypeNameFactory = *mut ::core::ffi::c_void; +pub const APPDOMAIN_FORCE_TRIVIAL_WAIT_OPERATIONS: APPDOMAIN_SECURITY_FLAGS = 8i32; +pub const APPDOMAIN_SECURITY_DEFAULT: APPDOMAIN_SECURITY_FLAGS = 0i32; +pub const APPDOMAIN_SECURITY_FORBID_CROSSAD_REVERSE_PINVOKE: APPDOMAIN_SECURITY_FLAGS = 2i32; +pub const APPDOMAIN_SECURITY_SANDBOXED: APPDOMAIN_SECURITY_FLAGS = 1i32; +pub const BucketParamLength: u32 = 255u32; +pub const BucketParamsCount: u32 = 10u32; +pub const CLRRuntimeHost: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x90f1a06e_7712_4762_86b5_7a5eba6bdb02); +pub const CLR_ASSEMBLY_BUILD_VERSION: u32 = 0u32; +pub const CLR_ASSEMBLY_IDENTITY_FLAGS_DEFAULT: ECLRAssemblyIdentityFlags = 0i32; +pub const CLR_ASSEMBLY_MAJOR_VERSION: u32 = 4u32; +pub const CLR_ASSEMBLY_MINOR_VERSION: u32 = 0u32; +pub const CLR_BUILD_VERSION: u32 = 22220u32; +pub const CLR_DEBUGGING_MANAGED_EVENT_DEBUGGER_LAUNCH: CLR_DEBUGGING_PROCESS_FLAGS = 2i32; +pub const CLR_DEBUGGING_MANAGED_EVENT_PENDING: CLR_DEBUGGING_PROCESS_FLAGS = 1i32; +pub const CLR_MAJOR_VERSION: u32 = 4u32; +pub const CLR_MINOR_VERSION: u32 = 0u32; +pub const CLSID_CLRDebugging: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbacc578d_fbdd_48a4_969f_02d932b74634); +pub const CLSID_CLRDebuggingLegacy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdf8395b5_a4ba_450b_a77c_a9a47762c520); +pub const CLSID_CLRMetaHost: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9280188d_0e8e_4867_b30c_7fa83884e8de); +pub const CLSID_CLRMetaHostPolicy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2ebcd49a_1b47_4a61_b13a_4a03701e594b); +pub const CLSID_CLRProfiling: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbd097ed8_733e_43fe_8ed7_a95ff9a8448c); +pub const CLSID_CLRStrongName: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb79b0acd_f5cd_409b_b5a5_a16244610b92); +pub const CLSID_RESOLUTION_DEFAULT: CLSID_RESOLUTION_FLAGS = 0i32; +pub const CLSID_RESOLUTION_REGISTERED: CLSID_RESOLUTION_FLAGS = 1i32; +pub const COR_GC_COUNTS: COR_GC_STAT_TYPES = 1i32; +pub const COR_GC_MEMORYUSAGE: COR_GC_STAT_TYPES = 2i32; +pub const COR_GC_THREAD_HAS_PROMOTED_BYTES: COR_GC_THREAD_STATS_TYPES = 1i32; +pub const ComCallUnmarshal: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3f281000_e95a_11d2_886b_00c04f869f04); +pub const ComCallUnmarshalV4: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x45fb4600_e6e8_4928_b25e_50476ff79425); +pub const CorRuntimeHost: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb2f6723_ab3a_11d2_9c40_00c04fa30a3e); +pub const DEPRECATED_CLR_API_MESG: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("This API has been deprecated. Refer to https://go.microsoft.com/fwlink/?LinkId=143720 for more details."); +pub const DUMP_FLAVOR_CriticalCLRState: ECustomDumpFlavor = 1i32; +pub const DUMP_FLAVOR_Default: ECustomDumpFlavor = 0i32; +pub const DUMP_FLAVOR_Mini: ECustomDumpFlavor = 0i32; +pub const DUMP_FLAVOR_NonHeapCLRState: ECustomDumpFlavor = 2i32; +pub const DUMP_ITEM_None: ECustomDumpItemKind = 0i32; +pub const Event_ClrDisabled: EClrEvent = 1i32; +pub const Event_DomainUnload: EClrEvent = 0i32; +pub const Event_MDAFired: EClrEvent = 2i32; +pub const Event_StackOverflow: EClrEvent = 3i32; +pub const FAIL_AccessViolation: EClrFailure = 5i32; +pub const FAIL_CodeContract: EClrFailure = 6i32; +pub const FAIL_CriticalResource: EClrFailure = 1i32; +pub const FAIL_FatalRuntime: EClrFailure = 2i32; +pub const FAIL_NonCriticalResource: EClrFailure = 0i32; +pub const FAIL_OrphanedLock: EClrFailure = 3i32; +pub const FAIL_StackOverflow: EClrFailure = 4i32; +pub const HOST_APPLICATION_BINDING_POLICY: EHostApplicationPolicy = 1i32; +pub const HOST_BINDING_POLICY_MODIFY_CHAIN: EHostBindingPolicyModifyFlags = 1i32; +pub const HOST_BINDING_POLICY_MODIFY_DEFAULT: EHostBindingPolicyModifyFlags = 0i32; +pub const HOST_BINDING_POLICY_MODIFY_MAX: EHostBindingPolicyModifyFlags = 3i32; +pub const HOST_BINDING_POLICY_MODIFY_REMOVE: EHostBindingPolicyModifyFlags = 2i32; +pub const HOST_TYPE_APPLAUNCH: HOST_TYPE = 1i32; +pub const HOST_TYPE_CORFLAG: HOST_TYPE = 2i32; +pub const HOST_TYPE_DEFAULT: HOST_TYPE = 0i32; +pub const InvalidBucketParamIndex: BucketParameterIndex = 9i32; +pub const LIBID_mscoree: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5477469e_83b1_11d2_8b49_00a0c9b7c9c4); +pub const MALLOC_EXECUTABLE: MALLOC_TYPE = 2i32; +pub const MALLOC_THREADSAFE: MALLOC_TYPE = 1i32; +pub const METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_FALSE: METAHOST_CONFIG_FLAGS = 2i32; +pub const METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_MASK: METAHOST_CONFIG_FLAGS = 3i32; +pub const METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_TRUE: METAHOST_CONFIG_FLAGS = 1i32; +pub const METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_UNSET: METAHOST_CONFIG_FLAGS = 0i32; +pub const METAHOST_POLICY_APPLY_UPGRADE_POLICY: METAHOST_POLICY_FLAGS = 8i32; +pub const METAHOST_POLICY_EMULATE_EXE_LAUNCH: METAHOST_POLICY_FLAGS = 16i32; +pub const METAHOST_POLICY_ENSURE_SKU_SUPPORTED: METAHOST_POLICY_FLAGS = 128i32; +pub const METAHOST_POLICY_HIGHCOMPAT: METAHOST_POLICY_FLAGS = 0i32; +pub const METAHOST_POLICY_IGNORE_ERROR_MODE: METAHOST_POLICY_FLAGS = 4096i32; +pub const METAHOST_POLICY_SHOW_ERROR_DIALOG: METAHOST_POLICY_FLAGS = 32i32; +pub const METAHOST_POLICY_USE_PROCESS_IMAGE_PATH: METAHOST_POLICY_FLAGS = 64i32; +pub const MaxClrEvent: EClrEvent = 4i32; +pub const MaxClrFailure: EClrFailure = 7i32; +pub const MaxClrOperation: EClrOperation = 7i32; +pub const MaxPolicyAction: EPolicyAction = 10i32; +pub const OPR_AppDomainRudeUnload: EClrOperation = 4i32; +pub const OPR_AppDomainUnload: EClrOperation = 3i32; +pub const OPR_FinalizerRun: EClrOperation = 6i32; +pub const OPR_ProcessExit: EClrOperation = 5i32; +pub const OPR_ThreadAbort: EClrOperation = 0i32; +pub const OPR_ThreadRudeAbortInCriticalRegion: EClrOperation = 2i32; +pub const OPR_ThreadRudeAbortInNonCriticalRegion: EClrOperation = 1i32; +pub const Parameter1: BucketParameterIndex = 0i32; +pub const Parameter2: BucketParameterIndex = 1i32; +pub const Parameter3: BucketParameterIndex = 2i32; +pub const Parameter4: BucketParameterIndex = 3i32; +pub const Parameter5: BucketParameterIndex = 4i32; +pub const Parameter6: BucketParameterIndex = 5i32; +pub const Parameter7: BucketParameterIndex = 6i32; +pub const Parameter8: BucketParameterIndex = 7i32; +pub const Parameter9: BucketParameterIndex = 8i32; +pub const RUNTIME_INFO_DONT_RETURN_DIRECTORY: RUNTIME_INFO_FLAGS = 16i32; +pub const RUNTIME_INFO_DONT_RETURN_VERSION: RUNTIME_INFO_FLAGS = 32i32; +pub const RUNTIME_INFO_DONT_SHOW_ERROR_DIALOG: RUNTIME_INFO_FLAGS = 64i32; +pub const RUNTIME_INFO_IGNORE_ERROR_MODE: RUNTIME_INFO_FLAGS = 4096i32; +pub const RUNTIME_INFO_REQUEST_AMD64: RUNTIME_INFO_FLAGS = 4i32; +pub const RUNTIME_INFO_REQUEST_ARM64: RUNTIME_INFO_FLAGS = 8192i32; +pub const RUNTIME_INFO_REQUEST_IA64: RUNTIME_INFO_FLAGS = 2i32; +pub const RUNTIME_INFO_REQUEST_X86: RUNTIME_INFO_FLAGS = 8i32; +pub const RUNTIME_INFO_UPGRADE_VERSION: RUNTIME_INFO_FLAGS = 1i32; +pub const SO_ClrEngine: StackOverflowType = 1i32; +pub const SO_Managed: StackOverflowType = 0i32; +pub const SO_Other: StackOverflowType = 2i32; +pub const STARTUP_ALWAYSFLOW_IMPERSONATION: STARTUP_FLAGS = 262144i32; +pub const STARTUP_ARM: STARTUP_FLAGS = 4194304i32; +pub const STARTUP_CONCURRENT_GC: STARTUP_FLAGS = 1i32; +pub const STARTUP_DISABLE_COMMITTHREADSTACK: STARTUP_FLAGS = 131072i32; +pub const STARTUP_ETW: STARTUP_FLAGS = 1048576i32; +pub const STARTUP_HOARD_GC_VM: STARTUP_FLAGS = 8192i32; +pub const STARTUP_LEGACY_IMPERSONATION: STARTUP_FLAGS = 65536i32; +pub const STARTUP_LOADER_OPTIMIZATION_MASK: STARTUP_FLAGS = 6i32; +pub const STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN: STARTUP_FLAGS = 4i32; +pub const STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN_HOST: STARTUP_FLAGS = 6i32; +pub const STARTUP_LOADER_OPTIMIZATION_SINGLE_DOMAIN: STARTUP_FLAGS = 2i32; +pub const STARTUP_LOADER_SAFEMODE: STARTUP_FLAGS = 16i32; +pub const STARTUP_LOADER_SETPREFERENCE: STARTUP_FLAGS = 256i32; +pub const STARTUP_SERVER_GC: STARTUP_FLAGS = 4096i32; +pub const STARTUP_SINGLE_VERSION_HOSTING_INTERFACE: STARTUP_FLAGS = 16384i32; +pub const STARTUP_TRIM_GC_COMMIT: STARTUP_FLAGS = 524288i32; +pub const TT_ADUNLOAD: ETaskType = 128i32; +pub const TT_DEBUGGERHELPER: ETaskType = 1i32; +pub const TT_FINALIZER: ETaskType = 4i32; +pub const TT_GC: ETaskType = 2i32; +pub const TT_THREADPOOL_GATE: ETaskType = 16i32; +pub const TT_THREADPOOL_IOCOMPLETION: ETaskType = 64i32; +pub const TT_THREADPOOL_TIMER: ETaskType = 8i32; +pub const TT_THREADPOOL_WAIT: ETaskType = 512i32; +pub const TT_THREADPOOL_WORKER: ETaskType = 32i32; +pub const TT_UNKNOWN: ETaskType = -2147483648i32; +pub const TT_USER: ETaskType = 256i32; +pub const TypeNameFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb81ff171_20f3_11d2_8dcc_00a0c9b00525); +pub const WAIT_ALERTABLE: WAIT_OPTION = 2i32; +pub const WAIT_MSGPUMP: WAIT_OPTION = 1i32; +pub const WAIT_NOTINDEADLOCK: WAIT_OPTION = 4i32; +pub const eAbortThread: EPolicyAction = 2i32; +pub const eAll: EApiCategories = 511i32; +pub const eAppDomainCritical: EMemoryCriticalLevel = 1i32; +pub const eCurrentContext: EContextType = 0i32; +pub const eDisableRuntime: EPolicyAction = 9i32; +pub const eExitProcess: EPolicyAction = 6i32; +pub const eExternalProcessMgmt: EApiCategories = 4i32; +pub const eExternalThreading: EApiCategories = 16i32; +pub const eFastExitProcess: EPolicyAction = 7i32; +pub const eHostDeterminedPolicy: EClrUnhandledException = 1i32; +pub const eInitializeNewDomainFlags_NoSecurityChanges: EInitializeNewDomainFlags = 2i32; +pub const eInitializeNewDomainFlags_None: EInitializeNewDomainFlags = 0i32; +pub const eMayLeakOnAbort: EApiCategories = 256i32; +pub const eMemoryAvailableHigh: EMemoryAvailable = 3i32; +pub const eMemoryAvailableLow: EMemoryAvailable = 1i32; +pub const eMemoryAvailableNeutral: EMemoryAvailable = 2i32; +pub const eNoAction: EPolicyAction = 0i32; +pub const eNoChecks: EApiCategories = 0i32; +pub const ePolicyLevelAdmin: EBindPolicyLevels = 32i32; +pub const ePolicyLevelApp: EBindPolicyLevels = 4i32; +pub const ePolicyLevelHost: EBindPolicyLevels = 16i32; +pub const ePolicyLevelNone: EBindPolicyLevels = 0i32; +pub const ePolicyLevelPublisher: EBindPolicyLevels = 8i32; +pub const ePolicyLevelRetargetable: EBindPolicyLevels = 1i32; +pub const ePolicyPortability: EBindPolicyLevels = 64i32; +pub const ePolicyUnifiedToCLR: EBindPolicyLevels = 2i32; +pub const eProcessCritical: EMemoryCriticalLevel = 2i32; +pub const eRestrictedContext: EContextType = 1i32; +pub const eRudeAbortThread: EPolicyAction = 3i32; +pub const eRudeExitProcess: EPolicyAction = 8i32; +pub const eRudeUnloadAppDomain: EPolicyAction = 5i32; +pub const eRuntimeDeterminedPolicy: EClrUnhandledException = 0i32; +pub const eSecurityInfrastructure: EApiCategories = 64i32; +pub const eSelfAffectingProcessMgmt: EApiCategories = 8i32; +pub const eSelfAffectingThreading: EApiCategories = 32i32; +pub const eSharedState: EApiCategories = 2i32; +pub const eSymbolReadingAlways: ESymbolReadingPolicy = 1i32; +pub const eSymbolReadingFullTrustOnly: ESymbolReadingPolicy = 2i32; +pub const eSymbolReadingNever: ESymbolReadingPolicy = 0i32; +pub const eSynchronization: EApiCategories = 1i32; +pub const eTaskCritical: EMemoryCriticalLevel = 0i32; +pub const eThrowException: EPolicyAction = 1i32; +pub const eUI: EApiCategories = 128i32; +pub const eUnloadAppDomain: EPolicyAction = 4i32; +pub type APPDOMAIN_SECURITY_FLAGS = i32; +pub type BucketParameterIndex = i32; +pub type CLR_DEBUGGING_PROCESS_FLAGS = i32; +pub type CLSID_RESOLUTION_FLAGS = i32; +pub type COR_GC_STAT_TYPES = i32; +pub type COR_GC_THREAD_STATS_TYPES = i32; +pub type EApiCategories = i32; +pub type EBindPolicyLevels = i32; +pub type ECLRAssemblyIdentityFlags = i32; +pub type EClrEvent = i32; +pub type EClrFailure = i32; +pub type EClrOperation = i32; +pub type EClrUnhandledException = i32; +pub type EContextType = i32; +pub type ECustomDumpFlavor = i32; +pub type ECustomDumpItemKind = i32; +pub type EHostApplicationPolicy = i32; +pub type EHostBindingPolicyModifyFlags = i32; +pub type EInitializeNewDomainFlags = i32; +pub type EMemoryAvailable = i32; +pub type EMemoryCriticalLevel = i32; +pub type EPolicyAction = i32; +pub type ESymbolReadingPolicy = i32; +pub type ETaskType = i32; +pub type HOST_TYPE = i32; +pub type MALLOC_TYPE = i32; +pub type METAHOST_CONFIG_FLAGS = i32; +pub type METAHOST_POLICY_FLAGS = i32; +pub type RUNTIME_INFO_FLAGS = i32; +pub type STARTUP_FLAGS = i32; +pub type StackOverflowType = i32; +pub type WAIT_OPTION = i32; +#[repr(C)] +pub struct AssemblyBindInfo { + pub dwAppDomainId: u32, + pub lpReferencedIdentity: ::windows_sys::core::PCWSTR, + pub lpPostPolicyIdentity: ::windows_sys::core::PCWSTR, + pub ePolicyLevel: u32, +} +impl ::core::marker::Copy for AssemblyBindInfo {} +impl ::core::clone::Clone for AssemblyBindInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BucketParameters { + pub fInited: super::super::Foundation::BOOL, + pub pszEventTypeName: [u16; 255], + pub pszParams: [u16; 2550], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BucketParameters {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BucketParameters { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLR_DEBUGGING_VERSION { + pub wStructVersion: u16, + pub wMajor: u16, + pub wMinor: u16, + pub wBuild: u16, + pub wRevision: u16, +} +impl ::core::marker::Copy for CLR_DEBUGGING_VERSION {} +impl ::core::clone::Clone for CLR_DEBUGGING_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COR_GC_STATS { + pub Flags: u32, + pub ExplicitGCCount: usize, + pub GenCollectionsTaken: [usize; 3], + pub CommittedKBytes: usize, + pub ReservedKBytes: usize, + pub Gen0HeapSizeKBytes: usize, + pub Gen1HeapSizeKBytes: usize, + pub Gen2HeapSizeKBytes: usize, + pub LargeObjectHeapSizeKBytes: usize, + pub KBytesPromotedFromGen0: usize, + pub KBytesPromotedFromGen1: usize, +} +impl ::core::marker::Copy for COR_GC_STATS {} +impl ::core::clone::Clone for COR_GC_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COR_GC_THREAD_STATS { + pub PerThreadAllocation: u64, + pub Flags: u32, +} +impl ::core::marker::Copy for COR_GC_THREAD_STATS {} +impl ::core::clone::Clone for COR_GC_THREAD_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CustomDumpItem { + pub itemKind: ECustomDumpItemKind, + pub Anonymous: CustomDumpItem_0, +} +impl ::core::marker::Copy for CustomDumpItem {} +impl ::core::clone::Clone for CustomDumpItem { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CustomDumpItem_0 { + pub pReserved: usize, +} +impl ::core::marker::Copy for CustomDumpItem_0 {} +impl ::core::clone::Clone for CustomDumpItem_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MDAInfo { + pub lpMDACaption: ::windows_sys::core::PCWSTR, + pub lpMDAMessage: ::windows_sys::core::PCWSTR, + pub lpStackTrace: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for MDAInfo {} +impl ::core::clone::Clone for MDAInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ModuleBindInfo { + pub dwAppDomainId: u32, + pub lpAssemblyIdentity: ::windows_sys::core::PCWSTR, + pub lpModuleName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for ModuleBindInfo {} +impl ::core::clone::Clone for ModuleBindInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub struct StackOverflowInfo { + pub soType: StackOverflowType, + pub pExceptionInfo: *mut super::Diagnostics::Debug::EXCEPTION_POINTERS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for StackOverflowInfo {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for StackOverflowInfo { + fn clone(&self) -> Self { + *self + } +} +pub type CLRCreateInstanceFnPtr = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type CallbackThreadSetFnPtr = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type CallbackThreadUnsetFnPtr = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type CreateInterfaceFnPtr = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FExecuteInAppDomainCallback = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type FLockClrVersionCallback = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PTLS_CALLBACK_FUNCTION = ::core::option::Option ()>; +pub type RuntimeLoadedCallbackFnPtr = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/Marshal/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/Marshal/mod.rs new file mode 100644 index 000000000..cd965bca2 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/Marshal/mod.rs @@ -0,0 +1,191 @@ +::windows_targets::link!("oleaut32.dll" "system" fn BSTR_UserFree(param0 : *const u32, param1 : *const ::windows_sys::core::BSTR) -> ()); +::windows_targets::link!("oleaut32.dll" "system" fn BSTR_UserFree64(param0 : *const u32, param1 : *const ::windows_sys::core::BSTR) -> ()); +::windows_targets::link!("oleaut32.dll" "system" fn BSTR_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const ::windows_sys::core::BSTR) -> *mut u8); +::windows_targets::link!("oleaut32.dll" "system" fn BSTR_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const ::windows_sys::core::BSTR) -> *mut u8); +::windows_targets::link!("oleaut32.dll" "system" fn BSTR_UserSize(param0 : *const u32, param1 : u32, param2 : *const ::windows_sys::core::BSTR) -> u32); +::windows_targets::link!("oleaut32.dll" "system" fn BSTR_UserSize64(param0 : *const u32, param1 : u32, param2 : *const ::windows_sys::core::BSTR) -> u32); +::windows_targets::link!("oleaut32.dll" "system" fn BSTR_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut ::windows_sys::core::BSTR) -> *mut u8); +::windows_targets::link!("oleaut32.dll" "system" fn BSTR_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut ::windows_sys::core::BSTR) -> *mut u8); +::windows_targets::link!("ole32.dll" "system" fn CLIPFORMAT_UserFree(param0 : *const u32, param1 : *const u16) -> ()); +::windows_targets::link!("ole32.dll" "system" fn CLIPFORMAT_UserFree64(param0 : *const u32, param1 : *const u16) -> ()); +::windows_targets::link!("ole32.dll" "system" fn CLIPFORMAT_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const u16) -> *mut u8); +::windows_targets::link!("ole32.dll" "system" fn CLIPFORMAT_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const u16) -> *mut u8); +::windows_targets::link!("ole32.dll" "system" fn CLIPFORMAT_UserSize(param0 : *const u32, param1 : u32, param2 : *const u16) -> u32); +::windows_targets::link!("ole32.dll" "system" fn CLIPFORMAT_UserSize64(param0 : *const u32, param1 : u32, param2 : *const u16) -> u32); +::windows_targets::link!("ole32.dll" "system" fn CLIPFORMAT_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut u16) -> *mut u8); +::windows_targets::link!("ole32.dll" "system" fn CLIPFORMAT_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut u16) -> *mut u8); +::windows_targets::link!("ole32.dll" "system" fn CoGetMarshalSizeMax(pulsize : *mut u32, riid : *const ::windows_sys::core::GUID, punk : ::windows_sys::core::IUnknown, dwdestcontext : u32, pvdestcontext : *const ::core::ffi::c_void, mshlflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetStandardMarshal(riid : *const ::windows_sys::core::GUID, punk : ::windows_sys::core::IUnknown, dwdestcontext : u32, pvdestcontext : *const ::core::ffi::c_void, mshlflags : u32, ppmarshal : *mut IMarshal) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetStdMarshalEx(punkouter : ::windows_sys::core::IUnknown, smexflags : u32, ppunkinner : *mut ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoMarshalHresult(pstm : super:: IStream, hresult : ::windows_sys::core::HRESULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoMarshalInterThreadInterfaceInStream(riid : *const ::windows_sys::core::GUID, punk : ::windows_sys::core::IUnknown, ppstm : *mut super:: IStream) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoMarshalInterface(pstm : super:: IStream, riid : *const ::windows_sys::core::GUID, punk : ::windows_sys::core::IUnknown, dwdestcontext : u32, pvdestcontext : *const ::core::ffi::c_void, mshlflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoReleaseMarshalData(pstm : super:: IStream) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoUnmarshalHresult(pstm : super:: IStream, phresult : *mut ::windows_sys::core::HRESULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoUnmarshalInterface(pstm : super:: IStream, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HACCEL_UserFree(param0 : *const u32, param1 : *const super::super::super::UI::WindowsAndMessaging:: HACCEL) -> ()); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HACCEL_UserFree64(param0 : *const u32, param1 : *const super::super::super::UI::WindowsAndMessaging:: HACCEL) -> ()); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HACCEL_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::UI::WindowsAndMessaging:: HACCEL) -> *mut u8); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HACCEL_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::UI::WindowsAndMessaging:: HACCEL) -> *mut u8); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HACCEL_UserSize(param0 : *const u32, param1 : u32, param2 : *const super::super::super::UI::WindowsAndMessaging:: HACCEL) -> u32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HACCEL_UserSize64(param0 : *const u32, param1 : u32, param2 : *const super::super::super::UI::WindowsAndMessaging:: HACCEL) -> u32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HACCEL_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::UI::WindowsAndMessaging:: HACCEL) -> *mut u8); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HACCEL_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::UI::WindowsAndMessaging:: HACCEL) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HBITMAP_UserFree(param0 : *const u32, param1 : *const super::super::super::Graphics::Gdi:: HBITMAP) -> ()); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HBITMAP_UserFree64(param0 : *const u32, param1 : *const super::super::super::Graphics::Gdi:: HBITMAP) -> ()); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HBITMAP_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::Graphics::Gdi:: HBITMAP) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HBITMAP_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::Graphics::Gdi:: HBITMAP) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HBITMAP_UserSize(param0 : *const u32, param1 : u32, param2 : *const super::super::super::Graphics::Gdi:: HBITMAP) -> u32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HBITMAP_UserSize64(param0 : *const u32, param1 : u32, param2 : *const super::super::super::Graphics::Gdi:: HBITMAP) -> u32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HBITMAP_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::Graphics::Gdi:: HBITMAP) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HBITMAP_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::Graphics::Gdi:: HBITMAP) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HDC_UserFree(param0 : *const u32, param1 : *const super::super::super::Graphics::Gdi:: HDC) -> ()); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HDC_UserFree64(param0 : *const u32, param1 : *const super::super::super::Graphics::Gdi:: HDC) -> ()); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HDC_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::Graphics::Gdi:: HDC) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HDC_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::Graphics::Gdi:: HDC) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HDC_UserSize(param0 : *const u32, param1 : u32, param2 : *const super::super::super::Graphics::Gdi:: HDC) -> u32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HDC_UserSize64(param0 : *const u32, param1 : u32, param2 : *const super::super::super::Graphics::Gdi:: HDC) -> u32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HDC_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::Graphics::Gdi:: HDC) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HDC_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::Graphics::Gdi:: HDC) -> *mut u8); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HGLOBAL_UserFree(param0 : *const u32, param1 : *const super::super::super::Foundation:: HGLOBAL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HGLOBAL_UserFree64(param0 : *const u32, param1 : *const super::super::super::Foundation:: HGLOBAL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HGLOBAL_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::Foundation:: HGLOBAL) -> *mut u8); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HGLOBAL_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::Foundation:: HGLOBAL) -> *mut u8); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HGLOBAL_UserSize(param0 : *const u32, param1 : u32, param2 : *const super::super::super::Foundation:: HGLOBAL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HGLOBAL_UserSize64(param0 : *const u32, param1 : u32, param2 : *const super::super::super::Foundation:: HGLOBAL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HGLOBAL_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::Foundation:: HGLOBAL) -> *mut u8); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HGLOBAL_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::Foundation:: HGLOBAL) -> *mut u8); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HICON_UserFree(param0 : *const u32, param1 : *const super::super::super::UI::WindowsAndMessaging:: HICON) -> ()); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HICON_UserFree64(param0 : *const u32, param1 : *const super::super::super::UI::WindowsAndMessaging:: HICON) -> ()); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HICON_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::UI::WindowsAndMessaging:: HICON) -> *mut u8); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HICON_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::UI::WindowsAndMessaging:: HICON) -> *mut u8); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HICON_UserSize(param0 : *const u32, param1 : u32, param2 : *const super::super::super::UI::WindowsAndMessaging:: HICON) -> u32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HICON_UserSize64(param0 : *const u32, param1 : u32, param2 : *const super::super::super::UI::WindowsAndMessaging:: HICON) -> u32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HICON_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::UI::WindowsAndMessaging:: HICON) -> *mut u8); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HICON_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::UI::WindowsAndMessaging:: HICON) -> *mut u8); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HMENU_UserFree(param0 : *const u32, param1 : *const super::super::super::UI::WindowsAndMessaging:: HMENU) -> ()); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HMENU_UserFree64(param0 : *const u32, param1 : *const super::super::super::UI::WindowsAndMessaging:: HMENU) -> ()); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HMENU_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::UI::WindowsAndMessaging:: HMENU) -> *mut u8); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HMENU_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::UI::WindowsAndMessaging:: HMENU) -> *mut u8); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HMENU_UserSize(param0 : *const u32, param1 : u32, param2 : *const super::super::super::UI::WindowsAndMessaging:: HMENU) -> u32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HMENU_UserSize64(param0 : *const u32, param1 : u32, param2 : *const super::super::super::UI::WindowsAndMessaging:: HMENU) -> u32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HMENU_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::UI::WindowsAndMessaging:: HMENU) -> *mut u8); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn HMENU_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::UI::WindowsAndMessaging:: HMENU) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HPALETTE_UserFree(param0 : *const u32, param1 : *const super::super::super::Graphics::Gdi:: HPALETTE) -> ()); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HPALETTE_UserFree64(param0 : *const u32, param1 : *const super::super::super::Graphics::Gdi:: HPALETTE) -> ()); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HPALETTE_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::Graphics::Gdi:: HPALETTE) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HPALETTE_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::Graphics::Gdi:: HPALETTE) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HPALETTE_UserSize(param0 : *const u32, param1 : u32, param2 : *const super::super::super::Graphics::Gdi:: HPALETTE) -> u32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HPALETTE_UserSize64(param0 : *const u32, param1 : u32, param2 : *const super::super::super::Graphics::Gdi:: HPALETTE) -> u32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HPALETTE_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::Graphics::Gdi:: HPALETTE) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HPALETTE_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::Graphics::Gdi:: HPALETTE) -> *mut u8); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HWND_UserFree(param0 : *const u32, param1 : *const super::super::super::Foundation:: HWND) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HWND_UserFree64(param0 : *const u32, param1 : *const super::super::super::Foundation:: HWND) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HWND_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::Foundation:: HWND) -> *mut u8); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HWND_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::super::Foundation:: HWND) -> *mut u8); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HWND_UserSize(param0 : *const u32, param1 : u32, param2 : *const super::super::super::Foundation:: HWND) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HWND_UserSize64(param0 : *const u32, param1 : u32, param2 : *const super::super::super::Foundation:: HWND) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HWND_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::Foundation:: HWND) -> *mut u8); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HWND_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::super::Foundation:: HWND) -> *mut u8); +::windows_targets::link!("oleaut32.dll" "system" fn LPSAFEARRAY_UserFree(param0 : *const u32, param1 : *const *const super:: SAFEARRAY) -> ()); +::windows_targets::link!("oleaut32.dll" "system" fn LPSAFEARRAY_UserFree64(param0 : *const u32, param1 : *const *const super:: SAFEARRAY) -> ()); +::windows_targets::link!("oleaut32.dll" "system" fn LPSAFEARRAY_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const *const super:: SAFEARRAY) -> *mut u8); +::windows_targets::link!("oleaut32.dll" "system" fn LPSAFEARRAY_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const *const super:: SAFEARRAY) -> *mut u8); +::windows_targets::link!("oleaut32.dll" "system" fn LPSAFEARRAY_UserSize(param0 : *const u32, param1 : u32, param2 : *const *const super:: SAFEARRAY) -> u32); +::windows_targets::link!("oleaut32.dll" "system" fn LPSAFEARRAY_UserSize64(param0 : *const u32, param1 : u32, param2 : *const *const super:: SAFEARRAY) -> u32); +::windows_targets::link!("oleaut32.dll" "system" fn LPSAFEARRAY_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut *mut super:: SAFEARRAY) -> *mut u8); +::windows_targets::link!("oleaut32.dll" "system" fn LPSAFEARRAY_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut *mut super:: SAFEARRAY) -> *mut u8); +::windows_targets::link!("ole32.dll" "system" fn SNB_UserFree(param0 : *const u32, param1 : *const *const *const u16) -> ()); +::windows_targets::link!("ole32.dll" "system" fn SNB_UserFree64(param0 : *const u32, param1 : *const *const *const u16) -> ()); +::windows_targets::link!("ole32.dll" "system" fn SNB_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const *const *const u16) -> *mut u8); +::windows_targets::link!("ole32.dll" "system" fn SNB_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const *const *const u16) -> *mut u8); +::windows_targets::link!("ole32.dll" "system" fn SNB_UserSize(param0 : *const u32, param1 : u32, param2 : *const *const *const u16) -> u32); +::windows_targets::link!("ole32.dll" "system" fn SNB_UserSize64(param0 : *const u32, param1 : u32, param2 : *const *const *const u16) -> u32); +::windows_targets::link!("ole32.dll" "system" fn SNB_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut *mut *mut u16) -> *mut u8); +::windows_targets::link!("ole32.dll" "system" fn SNB_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut *mut *mut u16) -> *mut u8); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn STGMEDIUM_UserFree(param0 : *const u32, param1 : *const super:: STGMEDIUM) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn STGMEDIUM_UserFree64(param0 : *const u32, param1 : *const super:: STGMEDIUM) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn STGMEDIUM_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const super:: STGMEDIUM) -> *mut u8); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn STGMEDIUM_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const super:: STGMEDIUM) -> *mut u8); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn STGMEDIUM_UserSize(param0 : *const u32, param1 : u32, param2 : *const super:: STGMEDIUM) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn STGMEDIUM_UserSize64(param0 : *const u32, param1 : u32, param2 : *const super:: STGMEDIUM) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn STGMEDIUM_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut super:: STGMEDIUM) -> *mut u8); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn STGMEDIUM_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut super:: STGMEDIUM) -> *mut u8); +pub type IMarshal = *mut ::core::ffi::c_void; +pub type IMarshal2 = *mut ::core::ffi::c_void; +pub type IMarshalingStream = *mut ::core::ffi::c_void; +pub const SMEXF_HANDLER: STDMSHLFLAGS = 2i32; +pub const SMEXF_SERVER: STDMSHLFLAGS = 1i32; +pub type STDMSHLFLAGS = i32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/StructuredStorage/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/StructuredStorage/mod.rs new file mode 100644 index 000000000..91d729b2b --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/StructuredStorage/mod.rs @@ -0,0 +1,901 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn ClearPropVariantArray(rgpropvar : *mut PROPVARIANT, cvars : u32) -> ()); +::windows_targets::link!("ole32.dll" "system" fn CoGetInstanceFromFile(pserverinfo : *const super:: COSERVERINFO, pclsid : *const ::windows_sys::core::GUID, punkouter : ::windows_sys::core::IUnknown, dwclsctx : super:: CLSCTX, grfmode : u32, pwszname : ::windows_sys::core::PCWSTR, dwcount : u32, presults : *mut super:: MULTI_QI) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetInstanceFromIStorage(pserverinfo : *const super:: COSERVERINFO, pclsid : *const ::windows_sys::core::GUID, punkouter : ::windows_sys::core::IUnknown, dwclsctx : super:: CLSCTX, pstg : IStorage, dwcount : u32, presults : *mut super:: MULTI_QI) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetInterfaceAndReleaseStream(pstm : super:: IStream, iid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateILockBytesOnHGlobal(hglobal : super::super::super::Foundation:: HGLOBAL, fdeleteonrelease : super::super::super::Foundation:: BOOL, pplkbyt : *mut ILockBytes) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateStreamOnHGlobal(hglobal : super::super::super::Foundation:: HGLOBAL, fdeleteonrelease : super::super::super::Foundation:: BOOL, ppstm : *mut super:: IStream) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn FmtIdToPropStgName(pfmtid : *const ::windows_sys::core::GUID, oszname : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn FreePropVariantArray(cvariants : u32, rgvars : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn GetConvertStg(pstg : IStorage) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetHGlobalFromILockBytes(plkbyt : ILockBytes, phglobal : *mut super::super::super::Foundation:: HGLOBAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetHGlobalFromStream(pstm : super:: IStream, phglobal : *mut super::super::super::Foundation:: HGLOBAL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromBooleanVector(prgf : *const super::super::super::Foundation:: BOOL, celems : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromBuffer(pv : *const ::core::ffi::c_void, cb : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromCLSID(clsid : *const ::windows_sys::core::GUID, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromDoubleVector(prgn : *const f64, celems : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromFileTime(pftin : *const super::super::super::Foundation:: FILETIME, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromFileTimeVector(prgft : *const super::super::super::Foundation:: FILETIME, celems : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromGUIDAsString(guid : *const ::windows_sys::core::GUID, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromInt16Vector(prgn : *const i16, celems : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromInt32Vector(prgn : *const i32, celems : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromInt64Vector(prgn : *const i64, celems : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromPropVariantVectorElem(propvarin : *const PROPVARIANT, ielem : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromResource(hinst : super::super::super::Foundation:: HINSTANCE, id : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromStringAsVector(psz : ::windows_sys::core::PCWSTR, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromStringVector(prgsz : *const ::windows_sys::core::PCWSTR, celems : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromUInt16Vector(prgn : *const u16, celems : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromUInt32Vector(prgn : *const u32, celems : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantFromUInt64Vector(prgn : *const u64, celems : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn InitPropVariantVectorFromPropVariant(propvarsingle : *const PROPVARIANT, ppropvarvector : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn OleConvertIStorageToOLESTREAM(pstg : IStorage, lpolestream : *mut OLESTREAM) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn OleConvertIStorageToOLESTREAMEx(pstg : IStorage, cfformat : u16, lwidth : i32, lheight : i32, dwsize : u32, pmedium : *const super:: STGMEDIUM, polestm : *mut OLESTREAM) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn OleConvertOLESTREAMToIStorage(lpolestream : *const OLESTREAM, pstg : IStorage, ptd : *const super:: DVTARGETDEVICE) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn OleConvertOLESTREAMToIStorageEx(polestm : *const OLESTREAM, pstg : IStorage, pcfformat : *mut u16, plwwidth : *mut i32, plheight : *mut i32, pdwsize : *mut u32, pmedium : *mut super:: STGMEDIUM) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn PropStgNameToFmtId(oszname : ::windows_sys::core::PCWSTR, pfmtid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantChangeType(ppropvardest : *mut PROPVARIANT, propvarsrc : *const PROPVARIANT, flags : PROPVAR_CHANGE_FLAGS, vt : super::super::Variant:: VARENUM) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantClear(pvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantCompareEx(propvar1 : *const PROPVARIANT, propvar2 : *const PROPVARIANT, unit : PROPVAR_COMPARE_UNIT, flags : PROPVAR_COMPARE_FLAGS) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantCopy(pvardest : *mut PROPVARIANT, pvarsrc : *const PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantGetBooleanElem(propvar : *const PROPVARIANT, ielem : u32, pfval : *mut super::super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantGetDoubleElem(propvar : *const PROPVARIANT, ielem : u32, pnval : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantGetElementCount(propvar : *const PROPVARIANT) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantGetFileTimeElem(propvar : *const PROPVARIANT, ielem : u32, pftval : *mut super::super::super::Foundation:: FILETIME) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantGetInt16Elem(propvar : *const PROPVARIANT, ielem : u32, pnval : *mut i16) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantGetInt32Elem(propvar : *const PROPVARIANT, ielem : u32, pnval : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantGetInt64Elem(propvar : *const PROPVARIANT, ielem : u32, pnval : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantGetStringElem(propvar : *const PROPVARIANT, ielem : u32, ppszval : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantGetUInt16Elem(propvar : *const PROPVARIANT, ielem : u32, pnval : *mut u16) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantGetUInt32Elem(propvar : *const PROPVARIANT, ielem : u32, pnval : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantGetUInt64Elem(propvar : *const PROPVARIANT, ielem : u32, pnval : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToBSTR(propvar : *const PROPVARIANT, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToBoolean(propvarin : *const PROPVARIANT, pfret : *mut super::super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToBooleanVector(propvar : *const PROPVARIANT, prgf : *mut super::super::super::Foundation:: BOOL, crgf : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToBooleanVectorAlloc(propvar : *const PROPVARIANT, pprgf : *mut *mut super::super::super::Foundation:: BOOL, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToBooleanWithDefault(propvarin : *const PROPVARIANT, fdefault : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToBuffer(propvar : *const PROPVARIANT, pv : *mut ::core::ffi::c_void, cb : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToDouble(propvarin : *const PROPVARIANT, pdblret : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToDoubleVector(propvar : *const PROPVARIANT, prgn : *mut f64, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToDoubleVectorAlloc(propvar : *const PROPVARIANT, pprgn : *mut *mut f64, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToDoubleWithDefault(propvarin : *const PROPVARIANT, dbldefault : f64) -> f64); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToFileTime(propvar : *const PROPVARIANT, pstfout : super::super::Variant:: PSTIME_FLAGS, pftout : *mut super::super::super::Foundation:: FILETIME) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToFileTimeVector(propvar : *const PROPVARIANT, prgft : *mut super::super::super::Foundation:: FILETIME, crgft : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToFileTimeVectorAlloc(propvar : *const PROPVARIANT, pprgft : *mut *mut super::super::super::Foundation:: FILETIME, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToGUID(propvar : *const PROPVARIANT, pguid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToInt16(propvarin : *const PROPVARIANT, piret : *mut i16) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToInt16Vector(propvar : *const PROPVARIANT, prgn : *mut i16, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToInt16VectorAlloc(propvar : *const PROPVARIANT, pprgn : *mut *mut i16, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToInt16WithDefault(propvarin : *const PROPVARIANT, idefault : i16) -> i16); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToInt32(propvarin : *const PROPVARIANT, plret : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToInt32Vector(propvar : *const PROPVARIANT, prgn : *mut i32, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToInt32VectorAlloc(propvar : *const PROPVARIANT, pprgn : *mut *mut i32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToInt32WithDefault(propvarin : *const PROPVARIANT, ldefault : i32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToInt64(propvarin : *const PROPVARIANT, pllret : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToInt64Vector(propvar : *const PROPVARIANT, prgn : *mut i64, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToInt64VectorAlloc(propvar : *const PROPVARIANT, pprgn : *mut *mut i64, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToInt64WithDefault(propvarin : *const PROPVARIANT, lldefault : i64) -> i64); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToString(propvar : *const PROPVARIANT, psz : ::windows_sys::core::PWSTR, cch : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToStringAlloc(propvar : *const PROPVARIANT, ppszout : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToStringVector(propvar : *const PROPVARIANT, prgsz : *mut ::windows_sys::core::PWSTR, crgsz : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToStringVectorAlloc(propvar : *const PROPVARIANT, pprgsz : *mut *mut ::windows_sys::core::PWSTR, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToStringWithDefault(propvarin : *const PROPVARIANT, pszdefault : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PCWSTR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToUInt16(propvarin : *const PROPVARIANT, puiret : *mut u16) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToUInt16Vector(propvar : *const PROPVARIANT, prgn : *mut u16, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToUInt16VectorAlloc(propvar : *const PROPVARIANT, pprgn : *mut *mut u16, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToUInt16WithDefault(propvarin : *const PROPVARIANT, uidefault : u16) -> u16); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToUInt32(propvarin : *const PROPVARIANT, pulret : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToUInt32Vector(propvar : *const PROPVARIANT, prgn : *mut u32, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToUInt32VectorAlloc(propvar : *const PROPVARIANT, pprgn : *mut *mut u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToUInt32WithDefault(propvarin : *const PROPVARIANT, uldefault : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToUInt64(propvarin : *const PROPVARIANT, pullret : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToUInt64Vector(propvar : *const PROPVARIANT, prgn : *mut u64, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToUInt64VectorAlloc(propvar : *const PROPVARIANT, pprgn : *mut *mut u64, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToUInt64WithDefault(propvarin : *const PROPVARIANT, ulldefault : u64) -> u64); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn PropVariantToVariant(ppropvar : *const PROPVARIANT, pvar : *mut super::super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn PropVariantToWinRTPropertyValue(propvar : *const PROPVARIANT, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn ReadClassStg(pstg : IStorage, pclsid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn ReadClassStm(pstm : super:: IStream, pclsid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn ReadFmtUserTypeStg(pstg : IStorage, pcf : *mut u16, lplpszusertype : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConvertStg(pstg : IStorage, fconvert : super::super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn StgConvertVariantToProperty(pvar : *const PROPVARIANT, codepage : u16, pprop : *mut SERIALIZEDPROPERTYVALUE, pcb : *mut u32, pid : u32, freserved : super::super::super::Foundation:: BOOLEAN, pcindirect : *mut u32) -> *mut SERIALIZEDPROPERTYVALUE); +::windows_targets::link!("ole32.dll" "system" fn StgCreateDocfile(pwcsname : ::windows_sys::core::PCWSTR, grfmode : super:: STGM, reserved : u32, ppstgopen : *mut IStorage) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StgCreateDocfileOnILockBytes(plkbyt : ILockBytes, grfmode : super:: STGM, reserved : u32, ppstgopen : *mut IStorage) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StgCreatePropSetStg(pstorage : IStorage, dwreserved : u32, pppropsetstg : *mut IPropertySetStorage) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StgCreatePropStg(punk : ::windows_sys::core::IUnknown, fmtid : *const ::windows_sys::core::GUID, pclsid : *const ::windows_sys::core::GUID, grfflags : u32, dwreserved : u32, pppropstg : *mut IPropertyStorage) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn StgCreateStorageEx(pwcsname : ::windows_sys::core::PCWSTR, grfmode : super:: STGM, stgfmt : STGFMT, grfattrs : u32, pstgoptions : *mut STGOPTIONS, psecuritydescriptor : super::super::super::Security:: PSECURITY_DESCRIPTOR, riid : *const ::windows_sys::core::GUID, ppobjectopen : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn StgDeserializePropVariant(pprop : *const SERIALIZEDPROPERTYVALUE, cbmax : u32, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StgGetIFillLockBytesOnFile(pwcsname : ::windows_sys::core::PCWSTR, ppflb : *mut IFillLockBytes) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StgGetIFillLockBytesOnILockBytes(pilb : ILockBytes, ppflb : *mut IFillLockBytes) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StgIsStorageFile(pwcsname : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StgIsStorageILockBytes(plkbyt : ILockBytes) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StgOpenAsyncDocfileOnIFillLockBytes(pflb : IFillLockBytes, grfmode : u32, asyncflags : u32, ppstgopen : *mut IStorage) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("dflayout.dll" "system" fn StgOpenLayoutDocfile(pwcsdfname : ::windows_sys::core::PCWSTR, grfmode : u32, reserved : u32, ppstgopen : *mut IStorage) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StgOpenPropStg(punk : ::windows_sys::core::IUnknown, fmtid : *const ::windows_sys::core::GUID, grfflags : u32, dwreserved : u32, pppropstg : *mut IPropertyStorage) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StgOpenStorage(pwcsname : ::windows_sys::core::PCWSTR, pstgpriority : IStorage, grfmode : super:: STGM, snbexclude : *const *const u16, reserved : u32, ppstgopen : *mut IStorage) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn StgOpenStorageEx(pwcsname : ::windows_sys::core::PCWSTR, grfmode : super:: STGM, stgfmt : STGFMT, grfattrs : u32, pstgoptions : *mut STGOPTIONS, psecuritydescriptor : super::super::super::Security:: PSECURITY_DESCRIPTOR, riid : *const ::windows_sys::core::GUID, ppobjectopen : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StgOpenStorageOnILockBytes(plkbyt : ILockBytes, pstgpriority : IStorage, grfmode : super:: STGM, snbexclude : *const *const u16, reserved : u32, ppstgopen : *mut IStorage) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StgPropertyLengthAsVariant(pprop : *const SERIALIZEDPROPERTYVALUE, cbprop : u32, codepage : u16, breserved : u8) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn StgSerializePropVariant(ppropvar : *const PROPVARIANT, ppprop : *mut *mut SERIALIZEDPROPERTYVALUE, pcb : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StgSetTimes(lpszname : ::windows_sys::core::PCWSTR, pctime : *const super::super::super::Foundation:: FILETIME, patime : *const super::super::super::Foundation:: FILETIME, pmtime : *const super::super::super::Foundation:: FILETIME) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn VariantToPropVariant(pvar : *const super::super::Variant:: VARIANT, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] fn WinRTPropertyValueToPropVariant(punkpropertyvalue : ::windows_sys::core::IUnknown, ppropvar : *mut PROPVARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn WriteClassStg(pstg : IStorage, rclsid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn WriteClassStm(pstm : super:: IStream, rclsid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn WriteFmtUserTypeStg(pstg : IStorage, cf : u16, lpszusertype : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +pub type IDirectWriterLock = *mut ::core::ffi::c_void; +pub type IEnumSTATPROPSETSTG = *mut ::core::ffi::c_void; +pub type IEnumSTATPROPSTG = *mut ::core::ffi::c_void; +pub type IEnumSTATSTG = *mut ::core::ffi::c_void; +pub type IFillLockBytes = *mut ::core::ffi::c_void; +pub type ILayoutStorage = *mut ::core::ffi::c_void; +pub type ILockBytes = *mut ::core::ffi::c_void; +pub type IPersistStorage = *mut ::core::ffi::c_void; +pub type IPropertyBag = *mut ::core::ffi::c_void; +pub type IPropertyBag2 = *mut ::core::ffi::c_void; +pub type IPropertySetStorage = *mut ::core::ffi::c_void; +pub type IPropertyStorage = *mut ::core::ffi::c_void; +pub type IRootStorage = *mut ::core::ffi::c_void; +pub type IStorage = *mut ::core::ffi::c_void; +pub const CCH_MAX_PROPSTG_NAME: u32 = 31u32; +pub const CWCSTORAGENAME: u32 = 32u32; +pub const PIDDI_THUMBNAIL: i32 = 2i32; +pub const PIDDSI_BYTECOUNT: u32 = 4u32; +pub const PIDDSI_CATEGORY: u32 = 2u32; +pub const PIDDSI_COMPANY: u32 = 15u32; +pub const PIDDSI_DOCPARTS: u32 = 13u32; +pub const PIDDSI_HEADINGPAIR: u32 = 12u32; +pub const PIDDSI_HIDDENCOUNT: u32 = 9u32; +pub const PIDDSI_LINECOUNT: u32 = 5u32; +pub const PIDDSI_LINKSDIRTY: u32 = 16u32; +pub const PIDDSI_MANAGER: u32 = 14u32; +pub const PIDDSI_MMCLIPCOUNT: u32 = 10u32; +pub const PIDDSI_NOTECOUNT: u32 = 8u32; +pub const PIDDSI_PARCOUNT: u32 = 6u32; +pub const PIDDSI_PRESFORMAT: u32 = 3u32; +pub const PIDDSI_SCALE: u32 = 11u32; +pub const PIDDSI_SLIDECOUNT: u32 = 7u32; +pub const PIDMSI_COPYRIGHT: i32 = 11i32; +pub const PIDMSI_EDITOR: i32 = 2i32; +pub const PIDMSI_OWNER: i32 = 8i32; +pub const PIDMSI_PRODUCTION: i32 = 10i32; +pub const PIDMSI_PROJECT: i32 = 6i32; +pub const PIDMSI_RATING: i32 = 9i32; +pub const PIDMSI_SEQUENCE_NO: i32 = 5i32; +pub const PIDMSI_SOURCE: i32 = 4i32; +pub const PIDMSI_STATUS: i32 = 7i32; +pub const PIDMSI_STATUS_DRAFT: PIDMSI_STATUS_VALUE = 3i32; +pub const PIDMSI_STATUS_EDIT: PIDMSI_STATUS_VALUE = 5i32; +pub const PIDMSI_STATUS_FINAL: PIDMSI_STATUS_VALUE = 8i32; +pub const PIDMSI_STATUS_INPROGRESS: PIDMSI_STATUS_VALUE = 4i32; +pub const PIDMSI_STATUS_NEW: PIDMSI_STATUS_VALUE = 1i32; +pub const PIDMSI_STATUS_NORMAL: PIDMSI_STATUS_VALUE = 0i32; +pub const PIDMSI_STATUS_OTHER: PIDMSI_STATUS_VALUE = 32767i32; +pub const PIDMSI_STATUS_PRELIM: PIDMSI_STATUS_VALUE = 2i32; +pub const PIDMSI_STATUS_PROOF: PIDMSI_STATUS_VALUE = 7i32; +pub const PIDMSI_STATUS_REVIEW: PIDMSI_STATUS_VALUE = 6i32; +pub const PIDMSI_SUPPLIER: i32 = 3i32; +pub const PIDSI_APPNAME: i32 = 18i32; +pub const PIDSI_AUTHOR: i32 = 4i32; +pub const PIDSI_CHARCOUNT: i32 = 16i32; +pub const PIDSI_COMMENTS: i32 = 6i32; +pub const PIDSI_CREATE_DTM: i32 = 12i32; +pub const PIDSI_DOC_SECURITY: i32 = 19i32; +pub const PIDSI_EDITTIME: i32 = 10i32; +pub const PIDSI_KEYWORDS: i32 = 5i32; +pub const PIDSI_LASTAUTHOR: i32 = 8i32; +pub const PIDSI_LASTPRINTED: i32 = 11i32; +pub const PIDSI_LASTSAVE_DTM: i32 = 13i32; +pub const PIDSI_PAGECOUNT: i32 = 14i32; +pub const PIDSI_REVNUMBER: i32 = 9i32; +pub const PIDSI_SUBJECT: i32 = 3i32; +pub const PIDSI_TEMPLATE: i32 = 7i32; +pub const PIDSI_THUMBNAIL: i32 = 17i32; +pub const PIDSI_TITLE: i32 = 2i32; +pub const PIDSI_WORDCOUNT: i32 = 15i32; +pub const PID_BEHAVIOR: u32 = 2147483651u32; +pub const PID_CODEPAGE: u32 = 1u32; +pub const PID_DICTIONARY: u32 = 0u32; +pub const PID_FIRST_NAME_DEFAULT: u32 = 4095u32; +pub const PID_FIRST_USABLE: u32 = 2u32; +pub const PID_ILLEGAL: u32 = 4294967295u32; +pub const PID_LOCALE: u32 = 2147483648u32; +pub const PID_MAX_READONLY: u32 = 3221225471u32; +pub const PID_MIN_READONLY: u32 = 2147483648u32; +pub const PID_MODIFY_TIME: u32 = 2147483649u32; +pub const PID_SECURITY: u32 = 2147483650u32; +pub const PROPSETFLAG_ANSI: u32 = 2u32; +pub const PROPSETFLAG_CASE_SENSITIVE: u32 = 8u32; +pub const PROPSETFLAG_DEFAULT: u32 = 0u32; +pub const PROPSETFLAG_NONSIMPLE: u32 = 1u32; +pub const PROPSETFLAG_UNBUFFERED: u32 = 4u32; +pub const PROPSETHDR_OSVERSION_UNKNOWN: u32 = 4294967295u32; +pub const PROPSET_BEHAVIOR_CASE_SENSITIVE: u32 = 1u32; +pub const PRSPEC_INVALID: u32 = 4294967295u32; +pub const PRSPEC_LPWSTR: PROPSPEC_KIND = 0u32; +pub const PRSPEC_PROPID: PROPSPEC_KIND = 1u32; +pub const PVCF_DEFAULT: PROPVAR_COMPARE_FLAGS = 0i32; +pub const PVCF_DIGITSASNUMBERS_CASESENSITIVE: PROPVAR_COMPARE_FLAGS = 32i32; +pub const PVCF_TREATEMPTYASGREATERTHAN: PROPVAR_COMPARE_FLAGS = 1i32; +pub const PVCF_USESTRCMP: PROPVAR_COMPARE_FLAGS = 2i32; +pub const PVCF_USESTRCMPC: PROPVAR_COMPARE_FLAGS = 4i32; +pub const PVCF_USESTRCMPI: PROPVAR_COMPARE_FLAGS = 8i32; +pub const PVCF_USESTRCMPIC: PROPVAR_COMPARE_FLAGS = 16i32; +pub const PVCHF_ALPHABOOL: PROPVAR_CHANGE_FLAGS = 2i32; +pub const PVCHF_DEFAULT: PROPVAR_CHANGE_FLAGS = 0i32; +pub const PVCHF_LOCALBOOL: PROPVAR_CHANGE_FLAGS = 8i32; +pub const PVCHF_NOHEXSTRING: PROPVAR_CHANGE_FLAGS = 16i32; +pub const PVCHF_NOUSEROVERRIDE: PROPVAR_CHANGE_FLAGS = 4i32; +pub const PVCHF_NOVALUEPROP: PROPVAR_CHANGE_FLAGS = 1i32; +pub const PVCU_DAY: PROPVAR_COMPARE_UNIT = 4i32; +pub const PVCU_DEFAULT: PROPVAR_COMPARE_UNIT = 0i32; +pub const PVCU_HOUR: PROPVAR_COMPARE_UNIT = 3i32; +pub const PVCU_MINUTE: PROPVAR_COMPARE_UNIT = 2i32; +pub const PVCU_MONTH: PROPVAR_COMPARE_UNIT = 5i32; +pub const PVCU_SECOND: PROPVAR_COMPARE_UNIT = 1i32; +pub const PVCU_YEAR: PROPVAR_COMPARE_UNIT = 6i32; +pub const STGFMT_ANY: STGFMT = 4u32; +pub const STGFMT_DOCFILE: STGFMT = 5u32; +pub const STGFMT_DOCUMENT: STGFMT = 0u32; +pub const STGFMT_FILE: STGFMT = 3u32; +pub const STGFMT_NATIVE: STGFMT = 1u32; +pub const STGFMT_STORAGE: STGFMT = 0u32; +pub const STGMOVE_COPY: STGMOVE = 1i32; +pub const STGMOVE_MOVE: STGMOVE = 0i32; +pub const STGMOVE_SHALLOWCOPY: STGMOVE = 2i32; +pub const STGOPTIONS_VERSION: u32 = 1u32; +pub type PIDMSI_STATUS_VALUE = i32; +pub type PROPSPEC_KIND = u32; +pub type PROPVAR_CHANGE_FLAGS = i32; +pub type PROPVAR_COMPARE_FLAGS = i32; +pub type PROPVAR_COMPARE_UNIT = i32; +pub type STGFMT = u32; +pub type STGMOVE = i32; +#[repr(C)] +pub struct BSTRBLOB { + pub cbSize: u32, + pub pData: *mut u8, +} +impl ::core::marker::Copy for BSTRBLOB {} +impl ::core::clone::Clone for BSTRBLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CABOOL { + pub cElems: u32, + pub pElems: *mut super::super::super::Foundation::VARIANT_BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CABOOL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CABOOL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CABSTR { + pub cElems: u32, + pub pElems: *mut ::windows_sys::core::BSTR, +} +impl ::core::marker::Copy for CABSTR {} +impl ::core::clone::Clone for CABSTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CABSTRBLOB { + pub cElems: u32, + pub pElems: *mut BSTRBLOB, +} +impl ::core::marker::Copy for CABSTRBLOB {} +impl ::core::clone::Clone for CABSTRBLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CAC { + pub cElems: u32, + pub pElems: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for CAC {} +impl ::core::clone::Clone for CAC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CACLIPDATA { + pub cElems: u32, + pub pElems: *mut CLIPDATA, +} +impl ::core::marker::Copy for CACLIPDATA {} +impl ::core::clone::Clone for CACLIPDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CACLSID { + pub cElems: u32, + pub pElems: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for CACLSID {} +impl ::core::clone::Clone for CACLSID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CACY { + pub cElems: u32, + pub pElems: *mut super::CY, +} +impl ::core::marker::Copy for CACY {} +impl ::core::clone::Clone for CACY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CADATE { + pub cElems: u32, + pub pElems: *mut f64, +} +impl ::core::marker::Copy for CADATE {} +impl ::core::clone::Clone for CADATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CADBL { + pub cElems: u32, + pub pElems: *mut f64, +} +impl ::core::marker::Copy for CADBL {} +impl ::core::clone::Clone for CADBL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CAFILETIME { + pub cElems: u32, + pub pElems: *mut super::super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CAFILETIME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CAFILETIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CAFLT { + pub cElems: u32, + pub pElems: *mut f32, +} +impl ::core::marker::Copy for CAFLT {} +impl ::core::clone::Clone for CAFLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CAH { + pub cElems: u32, + pub pElems: *mut i64, +} +impl ::core::marker::Copy for CAH {} +impl ::core::clone::Clone for CAH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CAI { + pub cElems: u32, + pub pElems: *mut i16, +} +impl ::core::marker::Copy for CAI {} +impl ::core::clone::Clone for CAI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CAL { + pub cElems: u32, + pub pElems: *mut i32, +} +impl ::core::marker::Copy for CAL {} +impl ::core::clone::Clone for CAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CALPSTR { + pub cElems: u32, + pub pElems: *mut ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for CALPSTR {} +impl ::core::clone::Clone for CALPSTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CALPWSTR { + pub cElems: u32, + pub pElems: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CALPWSTR {} +impl ::core::clone::Clone for CALPWSTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +pub struct CAPROPVARIANT { + pub cElems: u32, + pub pElems: *mut PROPVARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for CAPROPVARIANT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for CAPROPVARIANT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CASCODE { + pub cElems: u32, + pub pElems: *mut i32, +} +impl ::core::marker::Copy for CASCODE {} +impl ::core::clone::Clone for CASCODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CAUB { + pub cElems: u32, + pub pElems: *mut u8, +} +impl ::core::marker::Copy for CAUB {} +impl ::core::clone::Clone for CAUB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CAUH { + pub cElems: u32, + pub pElems: *mut u64, +} +impl ::core::marker::Copy for CAUH {} +impl ::core::clone::Clone for CAUH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CAUI { + pub cElems: u32, + pub pElems: *mut u16, +} +impl ::core::marker::Copy for CAUI {} +impl ::core::clone::Clone for CAUI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CAUL { + pub cElems: u32, + pub pElems: *mut u32, +} +impl ::core::marker::Copy for CAUL {} +impl ::core::clone::Clone for CAUL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLIPDATA { + pub cbSize: u32, + pub ulClipFmt: i32, + pub pClipData: *mut u8, +} +impl ::core::marker::Copy for CLIPDATA {} +impl ::core::clone::Clone for CLIPDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OLESTREAM { + pub lpstbl: *mut OLESTREAMVTBL, +} +impl ::core::marker::Copy for OLESTREAM {} +impl ::core::clone::Clone for OLESTREAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OLESTREAMVTBL { + pub Get: isize, + pub Put: isize, +} +impl ::core::marker::Copy for OLESTREAMVTBL {} +impl ::core::clone::Clone for OLESTREAMVTBL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Variant\"`"] +#[cfg(feature = "Win32_System_Variant")] +pub struct PROPBAG2 { + pub dwType: u32, + pub vt: super::super::Variant::VARENUM, + pub cfType: u16, + pub dwHint: u32, + pub pstrName: ::windows_sys::core::PWSTR, + pub clsid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_System_Variant")] +impl ::core::marker::Copy for PROPBAG2 {} +#[cfg(feature = "Win32_System_Variant")] +impl ::core::clone::Clone for PROPBAG2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROPSPEC { + pub ulKind: PROPSPEC_KIND, + pub Anonymous: PROPSPEC_0, +} +impl ::core::marker::Copy for PROPSPEC {} +impl ::core::clone::Clone for PROPSPEC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROPSPEC_0 { + pub propid: u32, + pub lpwstr: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PROPSPEC_0 {} +impl ::core::clone::Clone for PROPSPEC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +pub struct PROPVARIANT { + pub Anonymous: PROPVARIANT_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for PROPVARIANT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for PROPVARIANT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +pub union PROPVARIANT_0 { + pub Anonymous: PROPVARIANT_0_0, + pub decVal: super::super::super::Foundation::DECIMAL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for PROPVARIANT_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for PROPVARIANT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +pub struct PROPVARIANT_0_0 { + pub vt: super::super::Variant::VARENUM, + pub wReserved1: u16, + pub wReserved2: u16, + pub wReserved3: u16, + pub Anonymous: PROPVARIANT_0_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for PROPVARIANT_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for PROPVARIANT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +pub union PROPVARIANT_0_0_0 { + pub cVal: u8, + pub bVal: u8, + pub iVal: i16, + pub uiVal: u16, + pub lVal: i32, + pub ulVal: u32, + pub intVal: i32, + pub uintVal: u32, + pub hVal: i64, + pub uhVal: u64, + pub fltVal: f32, + pub dblVal: f64, + pub boolVal: super::super::super::Foundation::VARIANT_BOOL, + pub __OBSOLETE__VARIANT_BOOL: super::super::super::Foundation::VARIANT_BOOL, + pub scode: i32, + pub cyVal: super::CY, + pub date: f64, + pub filetime: super::super::super::Foundation::FILETIME, + pub puuid: *mut ::windows_sys::core::GUID, + pub pclipdata: *mut CLIPDATA, + pub bstrVal: ::windows_sys::core::BSTR, + pub bstrblobVal: BSTRBLOB, + pub blob: super::BLOB, + pub pszVal: ::windows_sys::core::PSTR, + pub pwszVal: ::windows_sys::core::PWSTR, + pub punkVal: ::windows_sys::core::IUnknown, + pub pdispVal: super::IDispatch, + pub pStream: super::IStream, + pub pStorage: IStorage, + pub pVersionedStream: *mut VERSIONEDSTREAM, + pub parray: *mut super::SAFEARRAY, + pub cac: CAC, + pub caub: CAUB, + pub cai: CAI, + pub caui: CAUI, + pub cal: CAL, + pub caul: CAUL, + pub cah: CAH, + pub cauh: CAUH, + pub caflt: CAFLT, + pub cadbl: CADBL, + pub cabool: CABOOL, + pub cascode: CASCODE, + pub cacy: CACY, + pub cadate: CADATE, + pub cafiletime: CAFILETIME, + pub cauuid: CACLSID, + pub caclipdata: CACLIPDATA, + pub cabstr: CABSTR, + pub cabstrblob: CABSTRBLOB, + pub calpstr: CALPSTR, + pub calpwstr: CALPWSTR, + pub capropvar: CAPROPVARIANT, + pub pcVal: ::windows_sys::core::PSTR, + pub pbVal: *mut u8, + pub piVal: *mut i16, + pub puiVal: *mut u16, + pub plVal: *mut i32, + pub pulVal: *mut u32, + pub pintVal: *mut i32, + pub puintVal: *mut u32, + pub pfltVal: *mut f32, + pub pdblVal: *mut f64, + pub pboolVal: *mut super::super::super::Foundation::VARIANT_BOOL, + pub pdecVal: *mut super::super::super::Foundation::DECIMAL, + pub pscode: *mut i32, + pub pcyVal: *mut super::CY, + pub pdate: *mut f64, + pub pbstrVal: *mut ::windows_sys::core::BSTR, + pub ppunkVal: *mut ::windows_sys::core::IUnknown, + pub ppdispVal: *mut super::IDispatch, + pub pparray: *mut *mut super::SAFEARRAY, + pub pvarVal: *mut PROPVARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for PROPVARIANT_0_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for PROPVARIANT_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RemSNB { + pub ulCntStr: u32, + pub ulCntChar: u32, + pub rgString: [u16; 1], +} +impl ::core::marker::Copy for RemSNB {} +impl ::core::clone::Clone for RemSNB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIALIZEDPROPERTYVALUE { + pub dwType: u32, + pub rgb: [u8; 1], +} +impl ::core::marker::Copy for SERIALIZEDPROPERTYVALUE {} +impl ::core::clone::Clone for SERIALIZEDPROPERTYVALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STATPROPSETSTG { + pub fmtid: ::windows_sys::core::GUID, + pub clsid: ::windows_sys::core::GUID, + pub grfFlags: u32, + pub mtime: super::super::super::Foundation::FILETIME, + pub ctime: super::super::super::Foundation::FILETIME, + pub atime: super::super::super::Foundation::FILETIME, + pub dwOSVersion: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STATPROPSETSTG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STATPROPSETSTG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Variant\"`"] +#[cfg(feature = "Win32_System_Variant")] +pub struct STATPROPSTG { + pub lpwstrName: ::windows_sys::core::PWSTR, + pub propid: u32, + pub vt: super::super::Variant::VARENUM, +} +#[cfg(feature = "Win32_System_Variant")] +impl ::core::marker::Copy for STATPROPSTG {} +#[cfg(feature = "Win32_System_Variant")] +impl ::core::clone::Clone for STATPROPSTG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STGOPTIONS { + pub usVersion: u16, + pub reserved: u16, + pub ulSectorSize: u32, + pub pwcsTemplateFile: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for STGOPTIONS {} +impl ::core::clone::Clone for STGOPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VERSIONEDSTREAM { + pub guidVersion: ::windows_sys::core::GUID, + pub pStream: super::IStream, +} +impl ::core::marker::Copy for VERSIONEDSTREAM {} +impl ::core::clone::Clone for VERSIONEDSTREAM { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/Urlmon/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/Urlmon/mod.rs new file mode 100644 index 000000000..9b96f3b2a --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/Urlmon/mod.rs @@ -0,0 +1,1035 @@ +::windows_targets::link!("urlmon.dll" "system" fn CoGetClassObjectFromURL(rclassid : *const ::windows_sys::core::GUID, szcode : ::windows_sys::core::PCWSTR, dwfileversionms : u32, dwfileversionls : u32, sztype : ::windows_sys::core::PCWSTR, pbindctx : super:: IBindCtx, dwclscontext : super:: CLSCTX, pvreserved : *const ::core::ffi::c_void, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetCombineIUri(pbaseuri : super:: IUri, prelativeuri : super:: IUri, dwcombineflags : u32, ppcombineduri : *mut super:: IUri, dwreserved : usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetCombineUrl(pwzbaseurl : ::windows_sys::core::PCWSTR, pwzrelativeurl : ::windows_sys::core::PCWSTR, dwcombineflags : u32, pszresult : ::windows_sys::core::PWSTR, cchresult : u32, pcchresult : *mut u32, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetCombineUrlEx(pbaseuri : super:: IUri, pwzrelativeurl : ::windows_sys::core::PCWSTR, dwcombineflags : u32, ppcombineduri : *mut super:: IUri, dwreserved : usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetCompareUrl(pwzurl1 : ::windows_sys::core::PCWSTR, pwzurl2 : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetCreateSecurityManager(psp : super:: IServiceProvider, ppsm : *mut IInternetSecurityManager, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetCreateZoneManager(psp : super:: IServiceProvider, ppzm : *mut IInternetZoneManager, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetGetProtocolFlags(pwzurl : ::windows_sys::core::PCWSTR, pdwflags : *mut u32, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetGetSecurityUrl(pwszurl : ::windows_sys::core::PCWSTR, ppwszsecurl : *mut ::windows_sys::core::PWSTR, psuaction : PSUACTION, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetGetSecurityUrlEx(puri : super:: IUri, ppsecuri : *mut super:: IUri, psuaction : PSUACTION, dwreserved : usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetGetSession(dwsessionmode : u32, ppiinternetsession : *mut IInternetSession, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetIsFeatureEnabled(featureentry : INTERNETFEATURELIST, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetIsFeatureEnabledForIUri(featureentry : INTERNETFEATURELIST, dwflags : u32, piuri : super:: IUri, psecmgr : IInternetSecurityManagerEx2) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetIsFeatureEnabledForUrl(featureentry : INTERNETFEATURELIST, dwflags : u32, szurl : ::windows_sys::core::PCWSTR, psecmgr : IInternetSecurityManager) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetIsFeatureZoneElevationEnabled(szfromurl : ::windows_sys::core::PCWSTR, sztourl : ::windows_sys::core::PCWSTR, psecmgr : IInternetSecurityManager, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetParseIUri(piuri : super:: IUri, parseaction : PARSEACTION, dwflags : u32, pwzresult : ::windows_sys::core::PWSTR, cchresult : u32, pcchresult : *mut u32, dwreserved : usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetParseUrl(pwzurl : ::windows_sys::core::PCWSTR, parseaction : PARSEACTION, dwflags : u32, pszresult : ::windows_sys::core::PWSTR, cchresult : u32, pcchresult : *mut u32, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CoInternetQueryInfo(pwzurl : ::windows_sys::core::PCWSTR, queryoptions : QUERYOPTION, dwqueryflags : u32, pvbuffer : *mut ::core::ffi::c_void, cbbuffer : u32, pcbbuffer : *mut u32, dwreserved : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("urlmon.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CoInternetSetFeatureEnabled(featureentry : INTERNETFEATURELIST, dwflags : u32, fenable : super::super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CompareSecurityIds(pbsecurityid1 : *const u8, dwlen1 : u32, pbsecurityid2 : *const u8, dwlen2 : u32, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CompatFlagsFromClsid(pclsid : *const ::windows_sys::core::GUID, pdwcompatflags : *mut u32, pdwmiscstatusflags : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("urlmon.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn CopyBindInfo(pcbisrc : *const super:: BINDINFO, pbidest : *mut super:: BINDINFO) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("urlmon.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn CopyStgMedium(pcstgmedsrc : *const super:: STGMEDIUM, pstgmeddest : *mut super:: STGMEDIUM) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CreateAsyncBindCtx(reserved : u32, pbscb : super:: IBindStatusCallback, pefetc : super:: IEnumFORMATETC, ppbc : *mut super:: IBindCtx) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CreateAsyncBindCtxEx(pbc : super:: IBindCtx, dwoptions : u32, pbscb : super:: IBindStatusCallback, penum : super:: IEnumFORMATETC, ppbc : *mut super:: IBindCtx, reserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CreateFormatEnumerator(cfmtetc : u32, rgfmtetc : *const super:: FORMATETC, ppenumfmtetc : *mut super:: IEnumFORMATETC) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CreateURLMoniker(pmkctx : super:: IMoniker, szurl : ::windows_sys::core::PCWSTR, ppmk : *mut super:: IMoniker) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CreateURLMonikerEx(pmkctx : super:: IMoniker, szurl : ::windows_sys::core::PCWSTR, ppmk : *mut super:: IMoniker, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CreateURLMonikerEx2(pmkctx : super:: IMoniker, puri : super:: IUri, ppmk : *mut super:: IMoniker, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("urlmon.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FaultInIEFeature(hwnd : super::super::super::Foundation:: HWND, pclassspec : *const super:: uCLSSPEC, pquery : *mut super:: QUERYCONTEXT, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn FindMediaType(rgsztypes : ::windows_sys::core::PCSTR, rgcftypes : *mut u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn FindMediaTypeClass(pbc : super:: IBindCtx, sztype : ::windows_sys::core::PCSTR, pclsid : *mut ::windows_sys::core::GUID, reserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn FindMimeFromData(pbc : super:: IBindCtx, pwzurl : ::windows_sys::core::PCWSTR, pbuffer : *const ::core::ffi::c_void, cbsize : u32, pwzmimeproposed : ::windows_sys::core::PCWSTR, dwmimeflags : u32, ppwzmimeout : *mut ::windows_sys::core::PWSTR, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn GetClassFileOrMime(pbc : super:: IBindCtx, szfilename : ::windows_sys::core::PCWSTR, pbuffer : *const ::core::ffi::c_void, cbsize : u32, szmime : ::windows_sys::core::PCWSTR, dwreserved : u32, pclsid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn GetClassURL(szurl : ::windows_sys::core::PCWSTR, pclsid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn GetComponentIDFromCLSSPEC(pclassspec : *const super:: uCLSSPEC, ppszcomponentid : *mut ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn GetSoftwareUpdateInfo(szdistunit : ::windows_sys::core::PCWSTR, psdi : *mut SOFTDISTINFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn HlinkGoBack(punk : ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn HlinkGoForward(punk : ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn HlinkNavigateMoniker(punk : ::windows_sys::core::IUnknown, pmktarget : super:: IMoniker) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn HlinkNavigateString(punk : ::windows_sys::core::IUnknown, sztarget : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn HlinkSimpleNavigateToMoniker(pmktarget : super:: IMoniker, szlocation : ::windows_sys::core::PCWSTR, sztargetframename : ::windows_sys::core::PCWSTR, punk : ::windows_sys::core::IUnknown, pbc : super:: IBindCtx, param5 : super:: IBindStatusCallback, grfhlnf : u32, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn HlinkSimpleNavigateToString(sztarget : ::windows_sys::core::PCWSTR, szlocation : ::windows_sys::core::PCWSTR, sztargetframename : ::windows_sys::core::PCWSTR, punk : ::windows_sys::core::IUnknown, pbc : super:: IBindCtx, param5 : super:: IBindStatusCallback, grfhlnf : u32, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn IEGetUserPrivateNamespaceName() -> ::windows_sys::core::PWSTR); +::windows_targets::link!("urlmon.dll" "system" fn IEInstallScope(pdwscope : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn IsAsyncMoniker(pmk : super:: IMoniker) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("urlmon.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsLoggingEnabledA(pszurl : ::windows_sys::core::PCSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("urlmon.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsLoggingEnabledW(pwszurl : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("urlmon.dll" "system" fn IsValidURL(pbc : super:: IBindCtx, szurl : ::windows_sys::core::PCWSTR, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn MkParseDisplayNameEx(pbc : super:: IBindCtx, szdisplayname : ::windows_sys::core::PCWSTR, pcheaten : *mut u32, ppmk : *mut super:: IMoniker) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn ObtainUserAgentString(dwoption : u32, pszuaout : ::windows_sys::core::PSTR, cbsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn RegisterBindStatusCallback(pbc : super:: IBindCtx, pbscb : super:: IBindStatusCallback, ppbscbprev : *mut super:: IBindStatusCallback, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn RegisterFormatEnumerator(pbc : super:: IBindCtx, pefetc : super:: IEnumFORMATETC, reserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn RegisterMediaTypeClass(pbc : super:: IBindCtx, ctypes : u32, rgsztypes : *const ::windows_sys::core::PCSTR, rgclsid : *const ::windows_sys::core::GUID, reserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn RegisterMediaTypes(ctypes : u32, rgsztypes : *const ::windows_sys::core::PCSTR, rgcftypes : *mut u16) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("urlmon.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn ReleaseBindInfo(pbindinfo : *mut super:: BINDINFO) -> ()); +::windows_targets::link!("urlmon.dll" "system" fn RevokeBindStatusCallback(pbc : super:: IBindCtx, pbscb : super:: IBindStatusCallback) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn RevokeFormatEnumerator(pbc : super:: IBindCtx, pefetc : super:: IEnumFORMATETC) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("urlmon.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetAccessForIEAppContainer(hobject : super::super::super::Foundation:: HANDLE, ieobjecttype : IEObjectType, dwaccessmask : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn SetSoftwareUpdateAdvertisementState(szdistunit : ::windows_sys::core::PCWSTR, dwadstate : u32, dwadvertisedversionms : u32, dwadvertisedversionls : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn URLDownloadToCacheFileA(param0 : ::windows_sys::core::IUnknown, param1 : ::windows_sys::core::PCSTR, param2 : ::windows_sys::core::PSTR, cchfilename : u32, param4 : u32, param5 : super:: IBindStatusCallback) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn URLDownloadToCacheFileW(param0 : ::windows_sys::core::IUnknown, param1 : ::windows_sys::core::PCWSTR, param2 : ::windows_sys::core::PWSTR, cchfilename : u32, param4 : u32, param5 : super:: IBindStatusCallback) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn URLDownloadToFileA(param0 : ::windows_sys::core::IUnknown, param1 : ::windows_sys::core::PCSTR, param2 : ::windows_sys::core::PCSTR, param3 : u32, param4 : super:: IBindStatusCallback) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn URLDownloadToFileW(param0 : ::windows_sys::core::IUnknown, param1 : ::windows_sys::core::PCWSTR, param2 : ::windows_sys::core::PCWSTR, param3 : u32, param4 : super:: IBindStatusCallback) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn URLOpenBlockingStreamA(param0 : ::windows_sys::core::IUnknown, param1 : ::windows_sys::core::PCSTR, param2 : *mut super:: IStream, param3 : u32, param4 : super:: IBindStatusCallback) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn URLOpenBlockingStreamW(param0 : ::windows_sys::core::IUnknown, param1 : ::windows_sys::core::PCWSTR, param2 : *mut super:: IStream, param3 : u32, param4 : super:: IBindStatusCallback) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn URLOpenPullStreamA(param0 : ::windows_sys::core::IUnknown, param1 : ::windows_sys::core::PCSTR, param2 : u32, param3 : super:: IBindStatusCallback) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn URLOpenPullStreamW(param0 : ::windows_sys::core::IUnknown, param1 : ::windows_sys::core::PCWSTR, param2 : u32, param3 : super:: IBindStatusCallback) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn URLOpenStreamA(param0 : ::windows_sys::core::IUnknown, param1 : ::windows_sys::core::PCSTR, param2 : u32, param3 : super:: IBindStatusCallback) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn URLOpenStreamW(param0 : ::windows_sys::core::IUnknown, param1 : ::windows_sys::core::PCWSTR, param2 : u32, param3 : super:: IBindStatusCallback) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn UrlMkGetSessionOption(dwoption : u32, pbuffer : *mut ::core::ffi::c_void, dwbufferlength : u32, pdwbufferlengthout : *mut u32, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn UrlMkSetSessionOption(dwoption : u32, pbuffer : *const ::core::ffi::c_void, dwbufferlength : u32, dwreserved : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("urlmon.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteHitLogging(lplogginginfo : *const HIT_LOGGING_INFO) -> super::super::super::Foundation:: BOOL); +pub type IBindCallbackRedirect = *mut ::core::ffi::c_void; +pub type IBindHttpSecurity = *mut ::core::ffi::c_void; +pub type IBindProtocol = *mut ::core::ffi::c_void; +pub type ICatalogFileInfo = *mut ::core::ffi::c_void; +pub type ICodeInstall = *mut ::core::ffi::c_void; +pub type IDataFilter = *mut ::core::ffi::c_void; +pub type IEncodingFilterFactory = *mut ::core::ffi::c_void; +pub type IGetBindHandle = *mut ::core::ffi::c_void; +pub type IHttpNegotiate = *mut ::core::ffi::c_void; +pub type IHttpNegotiate2 = *mut ::core::ffi::c_void; +pub type IHttpNegotiate3 = *mut ::core::ffi::c_void; +pub type IHttpSecurity = *mut ::core::ffi::c_void; +pub type IInternet = *mut ::core::ffi::c_void; +pub type IInternetBindInfo = *mut ::core::ffi::c_void; +pub type IInternetBindInfoEx = *mut ::core::ffi::c_void; +pub type IInternetHostSecurityManager = *mut ::core::ffi::c_void; +pub type IInternetPriority = *mut ::core::ffi::c_void; +pub type IInternetProtocol = *mut ::core::ffi::c_void; +pub type IInternetProtocolEx = *mut ::core::ffi::c_void; +pub type IInternetProtocolInfo = *mut ::core::ffi::c_void; +pub type IInternetProtocolRoot = *mut ::core::ffi::c_void; +pub type IInternetProtocolSink = *mut ::core::ffi::c_void; +pub type IInternetProtocolSinkStackable = *mut ::core::ffi::c_void; +pub type IInternetSecurityManager = *mut ::core::ffi::c_void; +pub type IInternetSecurityManagerEx = *mut ::core::ffi::c_void; +pub type IInternetSecurityManagerEx2 = *mut ::core::ffi::c_void; +pub type IInternetSecurityMgrSite = *mut ::core::ffi::c_void; +pub type IInternetSession = *mut ::core::ffi::c_void; +pub type IInternetThreadSwitch = *mut ::core::ffi::c_void; +pub type IInternetZoneManager = *mut ::core::ffi::c_void; +pub type IInternetZoneManagerEx = *mut ::core::ffi::c_void; +pub type IInternetZoneManagerEx2 = *mut ::core::ffi::c_void; +pub type IMonikerProp = *mut ::core::ffi::c_void; +pub type IPersistMoniker = *mut ::core::ffi::c_void; +pub type ISoftDistExt = *mut ::core::ffi::c_void; +pub type IUriBuilderFactory = *mut ::core::ffi::c_void; +pub type IUriContainer = *mut ::core::ffi::c_void; +pub type IWinInetCacheHints = *mut ::core::ffi::c_void; +pub type IWinInetCacheHints2 = *mut ::core::ffi::c_void; +pub type IWinInetFileStream = *mut ::core::ffi::c_void; +pub type IWinInetHttpInfo = *mut ::core::ffi::c_void; +pub type IWinInetHttpTimeouts = *mut ::core::ffi::c_void; +pub type IWinInetInfo = *mut ::core::ffi::c_void; +pub type IWindowForBindingUI = *mut ::core::ffi::c_void; +pub type IWrappedProtocol = *mut ::core::ffi::c_void; +pub type IZoneIdentifier = *mut ::core::ffi::c_void; +pub type IZoneIdentifier2 = *mut ::core::ffi::c_void; +pub const AUTHENTICATEF_BASIC: AUTHENTICATEF = 2i32; +pub const AUTHENTICATEF_HTTP: AUTHENTICATEF = 4i32; +pub const AUTHENTICATEF_PROXY: AUTHENTICATEF = 1i32; +pub const BINDF2_ALLOW_PROXY_CRED_PROMPT: BINDF2 = 256i32; +pub const BINDF2_DISABLEAUTOCOOKIEHANDLING: BINDF2 = 2i32; +pub const BINDF2_DISABLEBASICOVERHTTP: BINDF2 = 1i32; +pub const BINDF2_DISABLE_HTTP_REDIRECT_CACHING: BINDF2 = 64i32; +pub const BINDF2_DISABLE_HTTP_REDIRECT_XSECURITYID: BINDF2 = 8i32; +pub const BINDF2_KEEP_CALLBACK_MODULE_LOADED: BINDF2 = 128i32; +pub const BINDF2_READ_DATA_GREATER_THAN_4GB: BINDF2 = 4i32; +pub const BINDF2_RESERVED_1: BINDF2 = -2147483648i32; +pub const BINDF2_RESERVED_10: BINDF2 = 65536i32; +pub const BINDF2_RESERVED_11: BINDF2 = 32768i32; +pub const BINDF2_RESERVED_12: BINDF2 = 16384i32; +pub const BINDF2_RESERVED_13: BINDF2 = 8192i32; +pub const BINDF2_RESERVED_14: BINDF2 = 4096i32; +pub const BINDF2_RESERVED_15: BINDF2 = 2048i32; +pub const BINDF2_RESERVED_16: BINDF2 = 1024i32; +pub const BINDF2_RESERVED_17: BINDF2 = 512i32; +pub const BINDF2_RESERVED_2: BINDF2 = 1073741824i32; +pub const BINDF2_RESERVED_3: BINDF2 = 536870912i32; +pub const BINDF2_RESERVED_4: BINDF2 = 268435456i32; +pub const BINDF2_RESERVED_5: BINDF2 = 134217728i32; +pub const BINDF2_RESERVED_6: BINDF2 = 67108864i32; +pub const BINDF2_RESERVED_7: BINDF2 = 33554432i32; +pub const BINDF2_RESERVED_8: BINDF2 = 16777216i32; +pub const BINDF2_RESERVED_9: BINDF2 = 8388608i32; +pub const BINDF2_RESERVED_A: BINDF2 = 4194304i32; +pub const BINDF2_RESERVED_B: BINDF2 = 2097152i32; +pub const BINDF2_RESERVED_C: BINDF2 = 1048576i32; +pub const BINDF2_RESERVED_D: BINDF2 = 524288i32; +pub const BINDF2_RESERVED_E: BINDF2 = 262144i32; +pub const BINDF2_RESERVED_F: BINDF2 = 131072i32; +pub const BINDF2_SETDOWNLOADMODE: BINDF2 = 32i32; +pub const BINDF_ASYNCHRONOUS: BINDF = 1i32; +pub const BINDF_ASYNCSTORAGE: BINDF = 2i32; +pub const BINDF_DIRECT_READ: BINDF = 131072i32; +pub const BINDF_ENFORCERESTRICTED: BINDF = 8388608i32; +pub const BINDF_FORMS_SUBMIT: BINDF = 262144i32; +pub const BINDF_FREE_THREADED: BINDF = 65536i32; +pub const BINDF_FROMURLMON: BINDF = 1048576i32; +pub const BINDF_FWD_BACK: BINDF = 2097152i32; +pub const BINDF_GETCLASSOBJECT: BINDF = 16384i32; +pub const BINDF_GETFROMCACHE_IF_NET_FAIL: BINDF = 524288i32; +pub const BINDF_GETNEWESTVERSION: BINDF = 16i32; +pub const BINDF_HYPERLINK: BINDF = 1024i32; +pub const BINDF_IGNORESECURITYPROBLEM: BINDF = 256i32; +pub const BINDF_NEEDFILE: BINDF = 64i32; +pub const BINDF_NOPROGRESSIVERENDERING: BINDF = 4i32; +pub const BINDF_NOWRITECACHE: BINDF = 32i32; +pub const BINDF_NO_UI: BINDF = 2048i32; +pub const BINDF_OFFLINEOPERATION: BINDF = 8i32; +pub const BINDF_PRAGMA_NO_CACHE: BINDF = 8192i32; +pub const BINDF_PREFERDEFAULTHANDLER: BINDF = 4194304i32; +pub const BINDF_PULLDATA: BINDF = 128i32; +pub const BINDF_RESERVED_1: BINDF = 32768i32; +pub const BINDF_RESERVED_2: BINDF = -2147483648i32; +pub const BINDF_RESERVED_3: BINDF = 16777216i32; +pub const BINDF_RESERVED_4: BINDF = 33554432i32; +pub const BINDF_RESERVED_5: BINDF = 67108864i32; +pub const BINDF_RESERVED_6: BINDF = 134217728i32; +pub const BINDF_RESERVED_7: BINDF = 1073741824i32; +pub const BINDF_RESERVED_8: BINDF = 536870912i32; +pub const BINDF_RESYNCHRONIZE: BINDF = 512i32; +pub const BINDF_SILENTOPERATION: BINDF = 4096i32; +pub const BINDHANDLETYPES_APPCACHE: BINDHANDLETYPES = 0i32; +pub const BINDHANDLETYPES_COUNT: BINDHANDLETYPES = 2i32; +pub const BINDHANDLETYPES_DEPENDENCY: BINDHANDLETYPES = 1i32; +pub const BINDINFO_OPTIONS_ALLOWCONNECTDATA: BINDINFO_OPTIONS = 536870912i32; +pub const BINDINFO_OPTIONS_BINDTOOBJECT: BINDINFO_OPTIONS = 1048576i32; +pub const BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS: BINDINFO_OPTIONS = 1073741824i32; +pub const BINDINFO_OPTIONS_DISABLE_UTF8: BINDINFO_OPTIONS = 262144i32; +pub const BINDINFO_OPTIONS_ENABLE_UTF8: BINDINFO_OPTIONS = 131072i32; +pub const BINDINFO_OPTIONS_IGNOREHTTPHTTPSREDIRECTS: BINDINFO_OPTIONS = 16777216i32; +pub const BINDINFO_OPTIONS_IGNOREMIMETEXTPLAIN: BINDINFO_OPTIONS = 4194304i32; +pub const BINDINFO_OPTIONS_IGNORE_SSLERRORS_ONCE: BINDINFO_OPTIONS = 33554432i32; +pub const BINDINFO_OPTIONS_SECURITYOPTOUT: BINDINFO_OPTIONS = 2097152i32; +pub const BINDINFO_OPTIONS_SHDOCVW_NAVIGATE: BINDINFO_OPTIONS = -2147483648i32; +pub const BINDINFO_OPTIONS_USEBINDSTRINGCREDS: BINDINFO_OPTIONS = 8388608i32; +pub const BINDINFO_OPTIONS_USE_IE_ENCODING: BINDINFO_OPTIONS = 524288i32; +pub const BINDINFO_OPTIONS_WININETFLAG: BINDINFO_OPTIONS = 65536i32; +pub const BINDINFO_WPC_DOWNLOADBLOCKED: BINDINFO_OPTIONS = 134217728i32; +pub const BINDINFO_WPC_LOGGING_ENABLED: BINDINFO_OPTIONS = 268435456i32; +pub const BINDSTATUS_64BIT_PROGRESS: BINDSTATUS = 56i32; +pub const BINDSTATUS_ACCEPTRANGES: BINDSTATUS = 33i32; +pub const BINDSTATUS_BEGINDOWNLOADCOMPONENTS: BINDSTATUS = 7i32; +pub const BINDSTATUS_BEGINDOWNLOADDATA: BINDSTATUS = 4i32; +pub const BINDSTATUS_BEGINSYNCOPERATION: BINDSTATUS = 15i32; +pub const BINDSTATUS_BEGINUPLOADDATA: BINDSTATUS = 17i32; +pub const BINDSTATUS_CACHECONTROL: BINDSTATUS = 48i32; +pub const BINDSTATUS_CACHEFILENAMEAVAILABLE: BINDSTATUS = 14i32; +pub const BINDSTATUS_CLASSIDAVAILABLE: BINDSTATUS = 12i32; +pub const BINDSTATUS_CLASSINSTALLLOCATION: BINDSTATUS = 23i32; +pub const BINDSTATUS_CLSIDCANINSTANTIATE: BINDSTATUS = 28i32; +pub const BINDSTATUS_COMPACT_POLICY_RECEIVED: BINDSTATUS = 35i32; +pub const BINDSTATUS_CONNECTING: BINDSTATUS = 2i32; +pub const BINDSTATUS_CONTENTDISPOSITIONATTACH: BINDSTATUS = 26i32; +pub const BINDSTATUS_CONTENTDISPOSITIONFILENAME: BINDSTATUS = 49i32; +pub const BINDSTATUS_COOKIE_SENT: BINDSTATUS = 34i32; +pub const BINDSTATUS_COOKIE_STATE_ACCEPT: BINDSTATUS = 38i32; +pub const BINDSTATUS_COOKIE_STATE_DOWNGRADE: BINDSTATUS = 42i32; +pub const BINDSTATUS_COOKIE_STATE_LEASH: BINDSTATUS = 41i32; +pub const BINDSTATUS_COOKIE_STATE_PROMPT: BINDSTATUS = 40i32; +pub const BINDSTATUS_COOKIE_STATE_REJECT: BINDSTATUS = 39i32; +pub const BINDSTATUS_COOKIE_STATE_UNKNOWN: BINDSTATUS = 37i32; +pub const BINDSTATUS_COOKIE_SUPPRESSED: BINDSTATUS = 36i32; +pub const BINDSTATUS_DECODING: BINDSTATUS = 24i32; +pub const BINDSTATUS_DIRECTBIND: BINDSTATUS = 30i32; +pub const BINDSTATUS_DISPLAYNAMEAVAILABLE: BINDSTATUS = 52i32; +pub const BINDSTATUS_DOWNLOADINGDATA: BINDSTATUS = 5i32; +pub const BINDSTATUS_ENCODING: BINDSTATUS = 21i32; +pub const BINDSTATUS_ENDDOWNLOADCOMPONENTS: BINDSTATUS = 9i32; +pub const BINDSTATUS_ENDDOWNLOADDATA: BINDSTATUS = 6i32; +pub const BINDSTATUS_ENDSYNCOPERATION: BINDSTATUS = 16i32; +pub const BINDSTATUS_ENDUPLOADDATA: BINDSTATUS = 19i32; +pub const BINDSTATUS_FILTERREPORTMIMETYPE: BINDSTATUS = 27i32; +pub const BINDSTATUS_FINDINGRESOURCE: BINDSTATUS = 1i32; +pub const BINDSTATUS_INSTALLINGCOMPONENTS: BINDSTATUS = 8i32; +pub const BINDSTATUS_IUNKNOWNAVAILABLE: BINDSTATUS = 29i32; +pub const BINDSTATUS_LAST: BINDSTATUS = 56i32; +pub const BINDSTATUS_LAST_PRIVATE: BINDSTATUS = 77i32; +pub const BINDSTATUS_LOADINGMIMEHANDLER: BINDSTATUS = 25i32; +pub const BINDSTATUS_MIMETEXTPLAINMISMATCH: BINDSTATUS = 50i32; +pub const BINDSTATUS_MIMETYPEAVAILABLE: BINDSTATUS = 13i32; +pub const BINDSTATUS_P3P_HEADER: BINDSTATUS = 44i32; +pub const BINDSTATUS_PERSISTENT_COOKIE_RECEIVED: BINDSTATUS = 46i32; +pub const BINDSTATUS_POLICY_HREF: BINDSTATUS = 43i32; +pub const BINDSTATUS_PROTOCOLCLASSID: BINDSTATUS = 20i32; +pub const BINDSTATUS_PROXYDETECTING: BINDSTATUS = 32i32; +pub const BINDSTATUS_PUBLISHERAVAILABLE: BINDSTATUS = 51i32; +pub const BINDSTATUS_RAWMIMETYPE: BINDSTATUS = 31i32; +pub const BINDSTATUS_REDIRECTING: BINDSTATUS = 3i32; +pub const BINDSTATUS_RESERVED_0: BINDSTATUS = 57i32; +pub const BINDSTATUS_RESERVED_1: BINDSTATUS = 58i32; +pub const BINDSTATUS_RESERVED_10: BINDSTATUS = 73i32; +pub const BINDSTATUS_RESERVED_11: BINDSTATUS = 74i32; +pub const BINDSTATUS_RESERVED_12: BINDSTATUS = 75i32; +pub const BINDSTATUS_RESERVED_13: BINDSTATUS = 76i32; +pub const BINDSTATUS_RESERVED_14: BINDSTATUS = 77i32; +pub const BINDSTATUS_RESERVED_2: BINDSTATUS = 59i32; +pub const BINDSTATUS_RESERVED_3: BINDSTATUS = 60i32; +pub const BINDSTATUS_RESERVED_4: BINDSTATUS = 61i32; +pub const BINDSTATUS_RESERVED_5: BINDSTATUS = 62i32; +pub const BINDSTATUS_RESERVED_6: BINDSTATUS = 63i32; +pub const BINDSTATUS_RESERVED_7: BINDSTATUS = 64i32; +pub const BINDSTATUS_RESERVED_8: BINDSTATUS = 65i32; +pub const BINDSTATUS_RESERVED_9: BINDSTATUS = 66i32; +pub const BINDSTATUS_RESERVED_A: BINDSTATUS = 67i32; +pub const BINDSTATUS_RESERVED_B: BINDSTATUS = 68i32; +pub const BINDSTATUS_RESERVED_C: BINDSTATUS = 69i32; +pub const BINDSTATUS_RESERVED_D: BINDSTATUS = 70i32; +pub const BINDSTATUS_RESERVED_E: BINDSTATUS = 71i32; +pub const BINDSTATUS_RESERVED_F: BINDSTATUS = 72i32; +pub const BINDSTATUS_SENDINGREQUEST: BINDSTATUS = 11i32; +pub const BINDSTATUS_SERVER_MIMETYPEAVAILABLE: BINDSTATUS = 54i32; +pub const BINDSTATUS_SESSION_COOKIES_ALLOWED: BINDSTATUS = 47i32; +pub const BINDSTATUS_SESSION_COOKIE_RECEIVED: BINDSTATUS = 45i32; +pub const BINDSTATUS_SNIFFED_CLASSIDAVAILABLE: BINDSTATUS = 55i32; +pub const BINDSTATUS_SSLUX_NAVBLOCKED: BINDSTATUS = 53i32; +pub const BINDSTATUS_UPLOADINGDATA: BINDSTATUS = 18i32; +pub const BINDSTATUS_USINGCACHEDCOPY: BINDSTATUS = 10i32; +pub const BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE: BINDSTATUS = 22i32; +pub const BINDSTRING_ACCEPT_ENCODINGS: BINDSTRING = 11i32; +pub const BINDSTRING_ACCEPT_MIMES: BINDSTRING = 2i32; +pub const BINDSTRING_DOC_URL: BINDSTRING = 25i32; +pub const BINDSTRING_DOWNLOADPATH: BINDSTRING = 19i32; +pub const BINDSTRING_ENTERPRISE_ID: BINDSTRING = 24i32; +pub const BINDSTRING_EXTRA_URL: BINDSTRING = 3i32; +pub const BINDSTRING_FLAG_BIND_TO_OBJECT: BINDSTRING = 16i32; +pub const BINDSTRING_HEADERS: BINDSTRING = 1i32; +pub const BINDSTRING_IID: BINDSTRING = 15i32; +pub const BINDSTRING_INITIAL_FILENAME: BINDSTRING = 21i32; +pub const BINDSTRING_LANGUAGE: BINDSTRING = 4i32; +pub const BINDSTRING_OS: BINDSTRING = 9i32; +pub const BINDSTRING_PASSWORD: BINDSTRING = 6i32; +pub const BINDSTRING_POST_COOKIE: BINDSTRING = 12i32; +pub const BINDSTRING_POST_DATA_MIME: BINDSTRING = 13i32; +pub const BINDSTRING_PROXY_PASSWORD: BINDSTRING = 23i32; +pub const BINDSTRING_PROXY_USERNAME: BINDSTRING = 22i32; +pub const BINDSTRING_PTR_BIND_CONTEXT: BINDSTRING = 17i32; +pub const BINDSTRING_ROOTDOC_URL: BINDSTRING = 20i32; +pub const BINDSTRING_SAMESITE_COOKIE_LEVEL: BINDSTRING = 26i32; +pub const BINDSTRING_UA_COLOR: BINDSTRING = 8i32; +pub const BINDSTRING_UA_PIXELS: BINDSTRING = 7i32; +pub const BINDSTRING_URL: BINDSTRING = 14i32; +pub const BINDSTRING_USERNAME: BINDSTRING = 5i32; +pub const BINDSTRING_USER_AGENT: BINDSTRING = 10i32; +pub const BINDSTRING_XDR_ORIGIN: BINDSTRING = 18i32; +pub const BINDVERB_CUSTOM: BINDVERB = 3i32; +pub const BINDVERB_GET: BINDVERB = 0i32; +pub const BINDVERB_POST: BINDVERB = 1i32; +pub const BINDVERB_PUT: BINDVERB = 2i32; +pub const BINDVERB_RESERVED1: BINDVERB = 4i32; +pub const BSCF_64BITLENGTHDOWNLOAD: BSCF = 64i32; +pub const BSCF_AVAILABLEDATASIZEUNKNOWN: BSCF = 16i32; +pub const BSCF_DATAFULLYAVAILABLE: BSCF = 8i32; +pub const BSCF_FIRSTDATANOTIFICATION: BSCF = 1i32; +pub const BSCF_INTERMEDIATEDATANOTIFICATION: BSCF = 2i32; +pub const BSCF_LASTDATANOTIFICATION: BSCF = 4i32; +pub const BSCF_SKIPDRAINDATAFORFILEURLS: BSCF = 32i32; +pub const CF_NULL: u32 = 0u32; +pub const CIP_ACCESS_DENIED: CIP_STATUS = 1i32; +pub const CIP_DISK_FULL: CIP_STATUS = 0i32; +pub const CIP_EXE_SELF_REGISTERATION_TIMEOUT: CIP_STATUS = 6i32; +pub const CIP_NAME_CONFLICT: CIP_STATUS = 4i32; +pub const CIP_NEED_REBOOT: CIP_STATUS = 8i32; +pub const CIP_NEED_REBOOT_UI_PERMISSION: CIP_STATUS = 9i32; +pub const CIP_NEWER_VERSION_EXISTS: CIP_STATUS = 2i32; +pub const CIP_OLDER_VERSION_EXISTS: CIP_STATUS = 3i32; +pub const CIP_TRUST_VERIFICATION_COMPONENT_MISSING: CIP_STATUS = 5i32; +pub const CIP_UNSAFE_TO_ABORT: CIP_STATUS = 7i32; +pub const CLASSIDPROP: MONIKERPROPERTY = 2i32; +pub const CONFIRMSAFETYACTION_LOADOBJECT: u32 = 1u32; +pub const E_PENDING: ::windows_sys::core::HRESULT = -2147483638i32; +pub const FEATURE_ADDON_MANAGEMENT: INTERNETFEATURELIST = 13i32; +pub const FEATURE_BEHAVIORS: INTERNETFEATURELIST = 6i32; +pub const FEATURE_BLOCK_INPUT_PROMPTS: INTERNETFEATURELIST = 27i32; +pub const FEATURE_DISABLE_LEGACY_COMPRESSION: INTERNETFEATURELIST = 22i32; +pub const FEATURE_DISABLE_MK_PROTOCOL: INTERNETFEATURELIST = 7i32; +pub const FEATURE_DISABLE_NAVIGATION_SOUNDS: INTERNETFEATURELIST = 21i32; +pub const FEATURE_DISABLE_TELNET_PROTOCOL: INTERNETFEATURELIST = 25i32; +pub const FEATURE_ENTRY_COUNT: INTERNETFEATURELIST = 28i32; +pub const FEATURE_FEEDS: INTERNETFEATURELIST = 26i32; +pub const FEATURE_FORCE_ADDR_AND_STATUS: INTERNETFEATURELIST = 23i32; +pub const FEATURE_GET_URL_DOM_FILEPATH_UNENCODED: INTERNETFEATURELIST = 18i32; +pub const FEATURE_HTTP_USERNAME_PASSWORD_DISABLE: INTERNETFEATURELIST = 15i32; +pub const FEATURE_LOCALMACHINE_LOCKDOWN: INTERNETFEATURELIST = 8i32; +pub const FEATURE_MIME_HANDLING: INTERNETFEATURELIST = 2i32; +pub const FEATURE_MIME_SNIFFING: INTERNETFEATURELIST = 3i32; +pub const FEATURE_OBJECT_CACHING: INTERNETFEATURELIST = 0i32; +pub const FEATURE_PROTOCOL_LOCKDOWN: INTERNETFEATURELIST = 14i32; +pub const FEATURE_RESTRICT_ACTIVEXINSTALL: INTERNETFEATURELIST = 10i32; +pub const FEATURE_RESTRICT_FILEDOWNLOAD: INTERNETFEATURELIST = 12i32; +pub const FEATURE_SAFE_BINDTOOBJECT: INTERNETFEATURELIST = 16i32; +pub const FEATURE_SECURITYBAND: INTERNETFEATURELIST = 9i32; +pub const FEATURE_SSLUX: INTERNETFEATURELIST = 20i32; +pub const FEATURE_TABBED_BROWSING: INTERNETFEATURELIST = 19i32; +pub const FEATURE_UNC_SAVEDFILECHECK: INTERNETFEATURELIST = 17i32; +pub const FEATURE_VALIDATE_NAVIGATE_URL: INTERNETFEATURELIST = 11i32; +pub const FEATURE_WEBOC_POPUPMANAGEMENT: INTERNETFEATURELIST = 5i32; +pub const FEATURE_WINDOW_RESTRICTIONS: INTERNETFEATURELIST = 4i32; +pub const FEATURE_XMLHTTP: INTERNETFEATURELIST = 24i32; +pub const FEATURE_ZONE_ELEVATION: INTERNETFEATURELIST = 1i32; +pub const FIEF_FLAG_FORCE_JITUI: u32 = 1u32; +pub const FIEF_FLAG_PEEK: u32 = 2u32; +pub const FIEF_FLAG_RESERVED_0: u32 = 8u32; +pub const FIEF_FLAG_SKIP_INSTALLED_VERSION_CHECK: u32 = 4u32; +pub const FMFD_DEFAULT: u32 = 0u32; +pub const FMFD_ENABLEMIMESNIFFING: u32 = 2u32; +pub const FMFD_IGNOREMIMETEXTPLAIN: u32 = 4u32; +pub const FMFD_RESERVED_1: u32 = 64u32; +pub const FMFD_RESERVED_2: u32 = 128u32; +pub const FMFD_RESPECTTEXTPLAIN: u32 = 16u32; +pub const FMFD_RETURNUPDATEDIMGMIMES: u32 = 32u32; +pub const FMFD_SERVERMIME: u32 = 8u32; +pub const FMFD_URLASFILENAME: u32 = 1u32; +pub const GET_FEATURE_FROM_PROCESS: u32 = 2u32; +pub const GET_FEATURE_FROM_REGISTRY: u32 = 4u32; +pub const GET_FEATURE_FROM_THREAD: u32 = 1u32; +pub const GET_FEATURE_FROM_THREAD_INTERNET: u32 = 64u32; +pub const GET_FEATURE_FROM_THREAD_INTRANET: u32 = 16u32; +pub const GET_FEATURE_FROM_THREAD_LOCALMACHINE: u32 = 8u32; +pub const GET_FEATURE_FROM_THREAD_RESTRICTED: u32 = 128u32; +pub const GET_FEATURE_FROM_THREAD_TRUSTED: u32 = 32u32; +pub const IE_EPM_OBJECT_EVENT: IEObjectType = 0i32; +pub const IE_EPM_OBJECT_FILE: IEObjectType = 5i32; +pub const IE_EPM_OBJECT_MUTEX: IEObjectType = 1i32; +pub const IE_EPM_OBJECT_NAMED_PIPE: IEObjectType = 6i32; +pub const IE_EPM_OBJECT_REGISTRY: IEObjectType = 7i32; +pub const IE_EPM_OBJECT_SEMAPHORE: IEObjectType = 2i32; +pub const IE_EPM_OBJECT_SHARED_MEMORY: IEObjectType = 3i32; +pub const IE_EPM_OBJECT_WAITABLE_TIMER: IEObjectType = 4i32; +pub const INET_E_AUTHENTICATION_REQUIRED: ::windows_sys::core::HRESULT = -2146697207i32; +pub const INET_E_BLOCKED_ENHANCEDPROTECTEDMODE: ::windows_sys::core::HRESULT = -2146695930i32; +pub const INET_E_BLOCKED_PLUGGABLE_PROTOCOL: ::windows_sys::core::HRESULT = -2146695931i32; +pub const INET_E_BLOCKED_REDIRECT_XSECURITYID: ::windows_sys::core::HRESULT = -2146697189i32; +pub const INET_E_CANNOT_CONNECT: ::windows_sys::core::HRESULT = -2146697212i32; +pub const INET_E_CANNOT_INSTANTIATE_OBJECT: ::windows_sys::core::HRESULT = -2146697200i32; +pub const INET_E_CANNOT_LOAD_DATA: ::windows_sys::core::HRESULT = -2146697201i32; +pub const INET_E_CANNOT_LOCK_REQUEST: ::windows_sys::core::HRESULT = -2146697194i32; +pub const INET_E_CANNOT_REPLACE_SFP_FILE: ::windows_sys::core::HRESULT = -2146696448i32; +pub const INET_E_CODE_DOWNLOAD_DECLINED: ::windows_sys::core::HRESULT = -2146696960i32; +pub const INET_E_CODE_INSTALL_BLOCKED_ARM: ::windows_sys::core::HRESULT = -2146695932i32; +pub const INET_E_CODE_INSTALL_BLOCKED_BITNESS: ::windows_sys::core::HRESULT = -2146695929i32; +pub const INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY: ::windows_sys::core::HRESULT = -2146695936i32; +pub const INET_E_CODE_INSTALL_BLOCKED_IMMERSIVE: ::windows_sys::core::HRESULT = -2146695934i32; +pub const INET_E_CODE_INSTALL_SUPPRESSED: ::windows_sys::core::HRESULT = -2146696192i32; +pub const INET_E_CONNECTION_TIMEOUT: ::windows_sys::core::HRESULT = -2146697205i32; +pub const INET_E_DATA_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -2146697209i32; +pub const INET_E_DEFAULT_ACTION: i32 = -2146697199i32; +pub const INET_E_DOMINJECTIONVALIDATION: ::windows_sys::core::HRESULT = -2146697188i32; +pub const INET_E_DOWNLOAD_BLOCKED_BY_CSP: ::windows_sys::core::HRESULT = -2146695928i32; +pub const INET_E_DOWNLOAD_BLOCKED_BY_INPRIVATE: ::windows_sys::core::HRESULT = -2146695935i32; +pub const INET_E_DOWNLOAD_FAILURE: ::windows_sys::core::HRESULT = -2146697208i32; +pub const INET_E_ERROR_FIRST: ::windows_sys::core::HRESULT = -2146697214i32; +pub const INET_E_ERROR_LAST: i32 = -2146695928i32; +pub const INET_E_FORBIDFRAMING: ::windows_sys::core::HRESULT = -2146695933i32; +pub const INET_E_HSTS_CERTIFICATE_ERROR: ::windows_sys::core::HRESULT = -2146697186i32; +pub const INET_E_INVALID_CERTIFICATE: ::windows_sys::core::HRESULT = -2146697191i32; +pub const INET_E_INVALID_REQUEST: ::windows_sys::core::HRESULT = -2146697204i32; +pub const INET_E_INVALID_URL: ::windows_sys::core::HRESULT = -2146697214i32; +pub const INET_E_NO_SESSION: ::windows_sys::core::HRESULT = -2146697213i32; +pub const INET_E_NO_VALID_MEDIA: ::windows_sys::core::HRESULT = -2146697206i32; +pub const INET_E_OBJECT_NOT_FOUND: ::windows_sys::core::HRESULT = -2146697210i32; +pub const INET_E_QUERYOPTION_UNKNOWN: ::windows_sys::core::HRESULT = -2146697197i32; +pub const INET_E_REDIRECTING: ::windows_sys::core::HRESULT = -2146697196i32; +pub const INET_E_REDIRECT_FAILED: ::windows_sys::core::HRESULT = -2146697196i32; +pub const INET_E_REDIRECT_TO_DIR: ::windows_sys::core::HRESULT = -2146697195i32; +pub const INET_E_RESERVED_1: ::windows_sys::core::HRESULT = -2146697190i32; +pub const INET_E_RESERVED_2: ::windows_sys::core::HRESULT = -2146697185i32; +pub const INET_E_RESERVED_3: ::windows_sys::core::HRESULT = -2146697184i32; +pub const INET_E_RESERVED_4: ::windows_sys::core::HRESULT = -2146697183i32; +pub const INET_E_RESERVED_5: ::windows_sys::core::HRESULT = -2146697182i32; +pub const INET_E_RESOURCE_NOT_FOUND: ::windows_sys::core::HRESULT = -2146697211i32; +pub const INET_E_RESULT_DISPATCHED: ::windows_sys::core::HRESULT = -2146696704i32; +pub const INET_E_SECURITY_PROBLEM: ::windows_sys::core::HRESULT = -2146697202i32; +pub const INET_E_TERMINATED_BIND: ::windows_sys::core::HRESULT = -2146697192i32; +pub const INET_E_UNKNOWN_PROTOCOL: ::windows_sys::core::HRESULT = -2146697203i32; +pub const INET_E_USE_DEFAULT_PROTOCOLHANDLER: ::windows_sys::core::HRESULT = -2146697199i32; +pub const INET_E_USE_DEFAULT_SETTING: ::windows_sys::core::HRESULT = -2146697198i32; +pub const INET_E_USE_EXTEND_BINDING: ::windows_sys::core::HRESULT = -2146697193i32; +pub const INET_E_VTAB_SWITCH_FORCE_ENGINE: ::windows_sys::core::HRESULT = -2146697187i32; +pub const MAX_SIZE_SECURITY_ID: u32 = 512u32; +pub const MAX_ZONE_DESCRIPTION: INET_ZONE_MANAGER_CONSTANTS = 200i32; +pub const MAX_ZONE_PATH: INET_ZONE_MANAGER_CONSTANTS = 260i32; +pub const MIMETYPEPROP: MONIKERPROPERTY = 0i32; +pub const MKSYS_URLMONIKER: u32 = 6u32; +pub const MK_S_ASYNCHRONOUS: ::windows_sys::core::HRESULT = 262632i32; +pub const MUTZ_ACCEPT_WILDCARD_SCHEME: u32 = 128u32; +pub const MUTZ_DONT_UNESCAPE: u32 = 2048u32; +pub const MUTZ_DONT_USE_CACHE: u32 = 4096u32; +pub const MUTZ_ENFORCERESTRICTED: u32 = 256u32; +pub const MUTZ_FORCE_INTRANET_FLAGS: u32 = 8192u32; +pub const MUTZ_IGNORE_ZONE_MAPPINGS: u32 = 16384u32; +pub const MUTZ_ISFILE: u32 = 2u32; +pub const MUTZ_NOSAVEDFILECHECK: u32 = 1u32; +pub const MUTZ_REQUIRESAVEDFILECHECK: u32 = 1024u32; +pub const MUTZ_RESERVED: u32 = 512u32; +pub const OIBDG_APARTMENTTHREADED: OIBDG_FLAGS = 256i32; +pub const OIBDG_DATAONLY: OIBDG_FLAGS = 4096i32; +pub const PARSE_ANCHOR: PARSEACTION = 6i32; +pub const PARSE_CANONICALIZE: PARSEACTION = 1i32; +pub const PARSE_DECODE_IS_ESCAPE: PARSEACTION = 8i32; +pub const PARSE_DOCUMENT: PARSEACTION = 5i32; +pub const PARSE_DOMAIN: PARSEACTION = 15i32; +pub const PARSE_ENCODE_IS_UNESCAPE: PARSEACTION = 7i32; +pub const PARSE_ESCAPE: PARSEACTION = 18i32; +pub const PARSE_FRIENDLY: PARSEACTION = 2i32; +pub const PARSE_LOCATION: PARSEACTION = 16i32; +pub const PARSE_MIME: PARSEACTION = 11i32; +pub const PARSE_PATH_FROM_URL: PARSEACTION = 9i32; +pub const PARSE_ROOTDOCUMENT: PARSEACTION = 4i32; +pub const PARSE_SCHEMA: PARSEACTION = 13i32; +pub const PARSE_SECURITY_DOMAIN: PARSEACTION = 17i32; +pub const PARSE_SECURITY_URL: PARSEACTION = 3i32; +pub const PARSE_SERVER: PARSEACTION = 12i32; +pub const PARSE_SITE: PARSEACTION = 14i32; +pub const PARSE_UNESCAPE: PARSEACTION = 19i32; +pub const PARSE_URL_FROM_PATH: PARSEACTION = 10i32; +pub const PD_FORCE_SWITCH: PI_FLAGS = 65536i32; +pub const PI_APARTMENTTHREADED: PI_FLAGS = 256i32; +pub const PI_CLASSINSTALL: PI_FLAGS = 512i32; +pub const PI_CLSIDLOOKUP: PI_FLAGS = 32i32; +pub const PI_DATAPROGRESS: PI_FLAGS = 64i32; +pub const PI_FILTER_MODE: PI_FLAGS = 2i32; +pub const PI_FORCE_ASYNC: PI_FLAGS = 4i32; +pub const PI_LOADAPPDIRECT: PI_FLAGS = 16384i32; +pub const PI_MIMEVERIFICATION: PI_FLAGS = 16i32; +pub const PI_NOMIMEHANDLER: PI_FLAGS = 32768i32; +pub const PI_PARSE_URL: PI_FLAGS = 1i32; +pub const PI_PASSONBINDCTX: PI_FLAGS = 8192i32; +pub const PI_PREFERDEFAULTHANDLER: PI_FLAGS = 131072i32; +pub const PI_SYNCHRONOUS: PI_FLAGS = 128i32; +pub const PI_USE_WORKERTHREAD: PI_FLAGS = 8i32; +pub const POPUPLEVELPROP: MONIKERPROPERTY = 4i32; +pub const PROTOCOLFLAG_NO_PICS_CHECK: u32 = 1u32; +pub const PSU_DEFAULT: PSUACTION = 1i32; +pub const PSU_SECURITY_URL_ONLY: PSUACTION = 2i32; +pub const PUAFOUT_DEFAULT: PUAFOUT = 0i32; +pub const PUAFOUT_ISLOCKZONEPOLICY: PUAFOUT = 1i32; +pub const PUAF_ACCEPT_WILDCARD_SCHEME: PUAF = 128i32; +pub const PUAF_CHECK_TIFS: PUAF = 16i32; +pub const PUAF_DEFAULT: PUAF = 0i32; +pub const PUAF_DEFAULTZONEPOL: PUAF = 262144i32; +pub const PUAF_DONTCHECKBOXINDIALOG: PUAF = 32i32; +pub const PUAF_DONT_USE_CACHE: PUAF = 4096i32; +pub const PUAF_DRAGPROTOCOLCHECK: PUAF = 2097152i32; +pub const PUAF_ENFORCERESTRICTED: PUAF = 256i32; +pub const PUAF_FORCEUI_FOREGROUND: PUAF = 8i32; +pub const PUAF_ISFILE: PUAF = 2i32; +pub const PUAF_LMZ_LOCKED: PUAF = 131072i32; +pub const PUAF_LMZ_UNLOCKED: PUAF = 65536i32; +pub const PUAF_NOSAVEDFILECHECK: PUAF = 512i32; +pub const PUAF_NOUI: PUAF = 1i32; +pub const PUAF_NOUIIFLOCKED: PUAF = 1048576i32; +pub const PUAF_NPL_USE_LOCKED_IF_RESTRICTED: PUAF = 524288i32; +pub const PUAF_REQUIRESAVEDFILECHECK: PUAF = 1024i32; +pub const PUAF_RESERVED1: PUAF = 8192i32; +pub const PUAF_RESERVED2: PUAF = 16384i32; +pub const PUAF_TRUSTED: PUAF = 64i32; +pub const PUAF_WARN_IF_DENIED: PUAF = 4i32; +pub const QUERY_CAN_NAVIGATE: QUERYOPTION = 7i32; +pub const QUERY_CONTENT_ENCODING: QUERYOPTION = 3i32; +pub const QUERY_CONTENT_TYPE: QUERYOPTION = 4i32; +pub const QUERY_EXPIRATION_DATE: QUERYOPTION = 1i32; +pub const QUERY_IS_CACHED: QUERYOPTION = 9i32; +pub const QUERY_IS_CACHED_AND_USABLE_OFFLINE: QUERYOPTION = 16i32; +pub const QUERY_IS_CACHED_OR_MAPPED: QUERYOPTION = 11i32; +pub const QUERY_IS_INSTALLEDENTRY: QUERYOPTION = 10i32; +pub const QUERY_IS_SAFE: QUERYOPTION = 14i32; +pub const QUERY_IS_SECURE: QUERYOPTION = 13i32; +pub const QUERY_RECOMBINE: QUERYOPTION = 6i32; +pub const QUERY_REFRESH: QUERYOPTION = 5i32; +pub const QUERY_TIME_OF_LAST_CHANGE: QUERYOPTION = 2i32; +pub const QUERY_USES_CACHE: QUERYOPTION = 12i32; +pub const QUERY_USES_HISTORYFOLDER: QUERYOPTION = 15i32; +pub const QUERY_USES_NETWORK: QUERYOPTION = 8i32; +pub const SECURITY_IE_STATE_GREEN: u32 = 0u32; +pub const SECURITY_IE_STATE_RED: u32 = 1u32; +pub const SET_FEATURE_IN_REGISTRY: u32 = 4u32; +pub const SET_FEATURE_ON_PROCESS: u32 = 2u32; +pub const SET_FEATURE_ON_THREAD: u32 = 1u32; +pub const SET_FEATURE_ON_THREAD_INTERNET: u32 = 64u32; +pub const SET_FEATURE_ON_THREAD_INTRANET: u32 = 16u32; +pub const SET_FEATURE_ON_THREAD_LOCALMACHINE: u32 = 8u32; +pub const SET_FEATURE_ON_THREAD_RESTRICTED: u32 = 128u32; +pub const SET_FEATURE_ON_THREAD_TRUSTED: u32 = 32u32; +pub const SOFTDIST_ADSTATE_AVAILABLE: u32 = 1u32; +pub const SOFTDIST_ADSTATE_DOWNLOADED: u32 = 2u32; +pub const SOFTDIST_ADSTATE_INSTALLED: u32 = 3u32; +pub const SOFTDIST_ADSTATE_NONE: u32 = 0u32; +pub const SOFTDIST_FLAG_DELETE_SUBSCRIPTION: u32 = 8u32; +pub const SOFTDIST_FLAG_USAGE_AUTOINSTALL: u32 = 4u32; +pub const SOFTDIST_FLAG_USAGE_EMAIL: u32 = 1u32; +pub const SOFTDIST_FLAG_USAGE_PRECACHE: u32 = 2u32; +pub const SZM_CREATE: SZM_FLAGS = 0i32; +pub const SZM_DELETE: SZM_FLAGS = 1i32; +pub const S_ASYNCHRONOUS: i32 = 262632i32; +pub const TRUSTEDDOWNLOADPROP: MONIKERPROPERTY = 3i32; +pub const UAS_EXACTLEGACY: u32 = 4096u32; +pub const URLACTION_ACTIVEX_ALLOW_TDC: u32 = 4620u32; +pub const URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY: u32 = 4612u32; +pub const URLACTION_ACTIVEX_CURR_MAX: u32 = 4620u32; +pub const URLACTION_ACTIVEX_DYNSRC_VIDEO_AND_ANIMATION: u32 = 4618u32; +pub const URLACTION_ACTIVEX_MAX: u32 = 5119u32; +pub const URLACTION_ACTIVEX_MIN: u32 = 4608u32; +pub const URLACTION_ACTIVEX_NO_WEBOC_SCRIPT: u32 = 4614u32; +pub const URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY: u32 = 4610u32; +pub const URLACTION_ACTIVEX_OVERRIDE_DOMAINLIST: u32 = 4619u32; +pub const URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY: u32 = 4609u32; +pub const URLACTION_ACTIVEX_OVERRIDE_OPTIN: u32 = 4616u32; +pub const URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION: u32 = 4615u32; +pub const URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY: u32 = 4611u32; +pub const URLACTION_ACTIVEX_RUN: u32 = 4608u32; +pub const URLACTION_ACTIVEX_SCRIPTLET_RUN: u32 = 4617u32; +pub const URLACTION_ACTIVEX_TREATASUNTRUSTED: u32 = 4613u32; +pub const URLACTION_ALLOW_ACTIVEX_FILTERING: u32 = 9986u32; +pub const URLACTION_ALLOW_ANTIMALWARE_SCANNING_OF_ACTIVEX: u32 = 9996u32; +pub const URLACTION_ALLOW_APEVALUATION: u32 = 8961u32; +pub const URLACTION_ALLOW_AUDIO_VIDEO: u32 = 9985u32; +pub const URLACTION_ALLOW_AUDIO_VIDEO_PLUGINS: u32 = 9988u32; +pub const URLACTION_ALLOW_CROSSDOMAIN_APPCACHE_MANIFEST: u32 = 9994u32; +pub const URLACTION_ALLOW_CROSSDOMAIN_DROP_ACROSS_WINDOWS: u32 = 9993u32; +pub const URLACTION_ALLOW_CROSSDOMAIN_DROP_WITHIN_WINDOW: u32 = 9992u32; +pub const URLACTION_ALLOW_CSS_EXPRESSIONS: u32 = 9997u32; +pub const URLACTION_ALLOW_JSCRIPT_IE: u32 = 5133u32; +pub const URLACTION_ALLOW_RENDER_LEGACY_DXTFILTERS: u32 = 9995u32; +pub const URLACTION_ALLOW_RESTRICTEDPROTOCOLS: u32 = 8960u32; +pub const URLACTION_ALLOW_STRUCTURED_STORAGE_SNIFFING: u32 = 9987u32; +pub const URLACTION_ALLOW_VBSCRIPT_IE: u32 = 5132u32; +pub const URLACTION_ALLOW_XDOMAIN_SUBFRAME_RESIZE: u32 = 5128u32; +pub const URLACTION_ALLOW_XHR_EVALUATION: u32 = 8962u32; +pub const URLACTION_ALLOW_ZONE_ELEVATION_OPT_OUT_ADDITION: u32 = 9990u32; +pub const URLACTION_ALLOW_ZONE_ELEVATION_VIA_OPT_OUT: u32 = 9989u32; +pub const URLACTION_AUTHENTICATE_CLIENT: u32 = 6657u32; +pub const URLACTION_AUTOMATIC_ACTIVEX_UI: u32 = 8705u32; +pub const URLACTION_AUTOMATIC_DOWNLOAD_UI: u32 = 8704u32; +pub const URLACTION_AUTOMATIC_DOWNLOAD_UI_MIN: u32 = 8704u32; +pub const URLACTION_BEHAVIOR_MIN: u32 = 8192u32; +pub const URLACTION_BEHAVIOR_RUN: u32 = 8192u32; +pub const URLACTION_CHANNEL_SOFTDIST_MAX: u32 = 7935u32; +pub const URLACTION_CHANNEL_SOFTDIST_MIN: u32 = 7680u32; +pub const URLACTION_CHANNEL_SOFTDIST_PERMISSIONS: u32 = 7685u32; +pub const URLACTION_CLIENT_CERT_PROMPT: u32 = 6660u32; +pub const URLACTION_COOKIES: u32 = 6658u32; +pub const URLACTION_COOKIES_ENABLED: u32 = 6672u32; +pub const URLACTION_COOKIES_SESSION: u32 = 6659u32; +pub const URLACTION_COOKIES_SESSION_THIRD_PARTY: u32 = 6662u32; +pub const URLACTION_COOKIES_THIRD_PARTY: u32 = 6661u32; +pub const URLACTION_CREDENTIALS_USE: u32 = 6656u32; +pub const URLACTION_CROSS_DOMAIN_DATA: u32 = 5126u32; +pub const URLACTION_DOTNET_USERCONTROLS: u32 = 8197u32; +pub const URLACTION_DOWNLOAD_CURR_MAX: u32 = 4100u32; +pub const URLACTION_DOWNLOAD_MAX: u32 = 4607u32; +pub const URLACTION_DOWNLOAD_MIN: u32 = 4096u32; +pub const URLACTION_DOWNLOAD_SIGNED_ACTIVEX: u32 = 4097u32; +pub const URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX: u32 = 4100u32; +pub const URLACTION_FEATURE_BLOCK_INPUT_PROMPTS: u32 = 8453u32; +pub const URLACTION_FEATURE_CROSSDOMAIN_FOCUS_CHANGE: u32 = 8455u32; +pub const URLACTION_FEATURE_DATA_BINDING: u32 = 8454u32; +pub const URLACTION_FEATURE_FORCE_ADDR_AND_STATUS: u32 = 8452u32; +pub const URLACTION_FEATURE_MIME_SNIFFING: u32 = 8448u32; +pub const URLACTION_FEATURE_MIN: u32 = 8448u32; +pub const URLACTION_FEATURE_SCRIPT_STATUS_BAR: u32 = 8451u32; +pub const URLACTION_FEATURE_WINDOW_RESTRICTIONS: u32 = 8450u32; +pub const URLACTION_FEATURE_ZONE_ELEVATION: u32 = 8449u32; +pub const URLACTION_HTML_ALLOW_CROSS_DOMAIN_CANVAS: u32 = 5645u32; +pub const URLACTION_HTML_ALLOW_CROSS_DOMAIN_TEXTTRACK: u32 = 5648u32; +pub const URLACTION_HTML_ALLOW_CROSS_DOMAIN_WEBWORKER: u32 = 5647u32; +pub const URLACTION_HTML_ALLOW_INDEXEDDB: u32 = 5649u32; +pub const URLACTION_HTML_ALLOW_INJECTED_DYNAMIC_HTML: u32 = 5643u32; +pub const URLACTION_HTML_ALLOW_WINDOW_CLOSE: u32 = 5646u32; +pub const URLACTION_HTML_FONT_DOWNLOAD: u32 = 5636u32; +pub const URLACTION_HTML_INCLUDE_FILE_PATH: u32 = 5642u32; +pub const URLACTION_HTML_JAVA_RUN: u32 = 5637u32; +pub const URLACTION_HTML_MAX: u32 = 6143u32; +pub const URLACTION_HTML_META_REFRESH: u32 = 5640u32; +pub const URLACTION_HTML_MIN: u32 = 5632u32; +pub const URLACTION_HTML_MIXED_CONTENT: u32 = 5641u32; +pub const URLACTION_HTML_REQUIRE_UTF8_DOCUMENT_CODEPAGE: u32 = 5644u32; +pub const URLACTION_HTML_SUBFRAME_NAVIGATE: u32 = 5639u32; +pub const URLACTION_HTML_SUBMIT_FORMS: u32 = 5633u32; +pub const URLACTION_HTML_SUBMIT_FORMS_FROM: u32 = 5634u32; +pub const URLACTION_HTML_SUBMIT_FORMS_TO: u32 = 5635u32; +pub const URLACTION_HTML_USERDATA_SAVE: u32 = 5638u32; +pub const URLACTION_INFODELIVERY_CURR_MAX: u32 = 7430u32; +pub const URLACTION_INFODELIVERY_MAX: u32 = 7679u32; +pub const URLACTION_INFODELIVERY_MIN: u32 = 7424u32; +pub const URLACTION_INFODELIVERY_NO_ADDING_CHANNELS: u32 = 7424u32; +pub const URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS: u32 = 7427u32; +pub const URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING: u32 = 7430u32; +pub const URLACTION_INFODELIVERY_NO_EDITING_CHANNELS: u32 = 7425u32; +pub const URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS: u32 = 7428u32; +pub const URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS: u32 = 7426u32; +pub const URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS: u32 = 7429u32; +pub const URLACTION_INPRIVATE_BLOCKING: u32 = 9984u32; +pub const URLACTION_JAVA_CURR_MAX: u32 = 7168u32; +pub const URLACTION_JAVA_MAX: u32 = 7423u32; +pub const URLACTION_JAVA_MIN: u32 = 7168u32; +pub const URLACTION_JAVA_PERMISSIONS: u32 = 7168u32; +pub const URLACTION_LOOSE_XAML: u32 = 9218u32; +pub const URLACTION_LOWRIGHTS: u32 = 9472u32; +pub const URLACTION_MIN: u32 = 4096u32; +pub const URLACTION_NETWORK_CURR_MAX: u32 = 6672u32; +pub const URLACTION_NETWORK_MAX: u32 = 7167u32; +pub const URLACTION_NETWORK_MIN: u32 = 6656u32; +pub const URLACTION_PLUGGABLE_PROTOCOL_XHR: u32 = 5131u32; +pub const URLACTION_SCRIPT_CURR_MAX: u32 = 5133u32; +pub const URLACTION_SCRIPT_JAVA_USE: u32 = 5122u32; +pub const URLACTION_SCRIPT_MAX: u32 = 5631u32; +pub const URLACTION_SCRIPT_MIN: u32 = 5120u32; +pub const URLACTION_SCRIPT_NAVIGATE: u32 = 5130u32; +pub const URLACTION_SCRIPT_OVERRIDE_SAFETY: u32 = 5121u32; +pub const URLACTION_SCRIPT_PASTE: u32 = 5127u32; +pub const URLACTION_SCRIPT_RUN: u32 = 5120u32; +pub const URLACTION_SCRIPT_SAFE_ACTIVEX: u32 = 5125u32; +pub const URLACTION_SCRIPT_XSSFILTER: u32 = 5129u32; +pub const URLACTION_SHELL_ALLOW_CROSS_SITE_SHARE: u32 = 6161u32; +pub const URLACTION_SHELL_CURR_MAX: u32 = 6162u32; +pub const URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY: u32 = 6155u32; +pub const URLACTION_SHELL_EXECUTE_HIGHRISK: u32 = 6150u32; +pub const URLACTION_SHELL_EXECUTE_LOWRISK: u32 = 6152u32; +pub const URLACTION_SHELL_EXECUTE_MODRISK: u32 = 6151u32; +pub const URLACTION_SHELL_EXTENSIONSECURITY: u32 = 6156u32; +pub const URLACTION_SHELL_FILE_DOWNLOAD: u32 = 6147u32; +pub const URLACTION_SHELL_INSTALL_DTITEMS: u32 = 6144u32; +pub const URLACTION_SHELL_MAX: u32 = 6655u32; +pub const URLACTION_SHELL_MIN: u32 = 6144u32; +pub const URLACTION_SHELL_MOVE_OR_COPY: u32 = 6146u32; +pub const URLACTION_SHELL_POPUPMGR: u32 = 6153u32; +pub const URLACTION_SHELL_PREVIEW: u32 = 6159u32; +pub const URLACTION_SHELL_REMOTEQUERY: u32 = 6158u32; +pub const URLACTION_SHELL_RTF_OBJECTS_LOAD: u32 = 6154u32; +pub const URLACTION_SHELL_SECURE_DRAGSOURCE: u32 = 6157u32; +pub const URLACTION_SHELL_SHARE: u32 = 6160u32; +pub const URLACTION_SHELL_SHELLEXECUTE: u32 = 6150u32; +pub const URLACTION_SHELL_TOCTOU_RISK: u32 = 6162u32; +pub const URLACTION_SHELL_VERB: u32 = 6148u32; +pub const URLACTION_SHELL_WEBVIEW_VERB: u32 = 6149u32; +pub const URLACTION_WINDOWS_BROWSER_APPLICATIONS: u32 = 9216u32; +pub const URLACTION_WINFX_SETUP: u32 = 9728u32; +pub const URLACTION_XPS_DOCUMENTS: u32 = 9217u32; +pub const URLMON_OPTION_URL_ENCODING: u32 = 268435460u32; +pub const URLMON_OPTION_USERAGENT: u32 = 268435457u32; +pub const URLMON_OPTION_USERAGENT_REFRESH: u32 = 268435458u32; +pub const URLMON_OPTION_USE_BINDSTRINGCREDS: u32 = 268435464u32; +pub const URLMON_OPTION_USE_BROWSERAPPSDOCUMENTS: u32 = 268435472u32; +pub const URLOSTRM_GETNEWESTVERSION: u32 = 3u32; +pub const URLOSTRM_USECACHEDCOPY: u32 = 2u32; +pub const URLOSTRM_USECACHEDCOPY_ONLY: u32 = 1u32; +pub const URLPOLICY_ACTIVEX_CHECK_LIST: u32 = 65536u32; +pub const URLPOLICY_ALLOW: u32 = 0u32; +pub const URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE: u32 = 65536u32; +pub const URLPOLICY_AUTHENTICATE_CLEARTEXT_OK: u32 = 0u32; +pub const URLPOLICY_AUTHENTICATE_MUTUAL_ONLY: u32 = 196608u32; +pub const URLPOLICY_BEHAVIOR_CHECK_LIST: u32 = 65536u32; +pub const URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL: u32 = 196608u32; +pub const URLPOLICY_CHANNEL_SOFTDIST_PRECACHE: u32 = 131072u32; +pub const URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT: u32 = 65536u32; +pub const URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY: u32 = 196608u32; +pub const URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT: u32 = 131072u32; +pub const URLPOLICY_CREDENTIALS_MUST_PROMPT_USER: u32 = 65536u32; +pub const URLPOLICY_CREDENTIALS_SILENT_LOGON_OK: u32 = 0u32; +pub const URLPOLICY_DISALLOW: u32 = 3u32; +pub const URLPOLICY_DONTCHECKDLGBOX: u32 = 256u32; +pub const URLPOLICY_JAVA_CUSTOM: u32 = 8388608u32; +pub const URLPOLICY_JAVA_HIGH: u32 = 65536u32; +pub const URLPOLICY_JAVA_LOW: u32 = 196608u32; +pub const URLPOLICY_JAVA_MEDIUM: u32 = 131072u32; +pub const URLPOLICY_JAVA_PROHIBIT: u32 = 0u32; +pub const URLPOLICY_LOG_ON_ALLOW: u32 = 64u32; +pub const URLPOLICY_LOG_ON_DISALLOW: u32 = 128u32; +pub const URLPOLICY_MASK_PERMISSIONS: u32 = 15u32; +pub const URLPOLICY_NOTIFY_ON_ALLOW: u32 = 16u32; +pub const URLPOLICY_NOTIFY_ON_DISALLOW: u32 = 32u32; +pub const URLPOLICY_QUERY: u32 = 1u32; +pub const URLTEMPLATE_CUSTOM: URLTEMPLATE = 0i32; +pub const URLTEMPLATE_HIGH: URLTEMPLATE = 73728i32; +pub const URLTEMPLATE_LOW: URLTEMPLATE = 65536i32; +pub const URLTEMPLATE_MEDHIGH: URLTEMPLATE = 70912i32; +pub const URLTEMPLATE_MEDIUM: URLTEMPLATE = 69632i32; +pub const URLTEMPLATE_MEDLOW: URLTEMPLATE = 66816i32; +pub const URLTEMPLATE_PREDEFINED_MAX: URLTEMPLATE = 131072i32; +pub const URLTEMPLATE_PREDEFINED_MIN: URLTEMPLATE = 65536i32; +pub const URLZONEREG_DEFAULT: URLZONEREG = 0i32; +pub const URLZONEREG_HKCU: URLZONEREG = 2i32; +pub const URLZONEREG_HKLM: URLZONEREG = 1i32; +pub const URLZONE_ESC_FLAG: u32 = 256u32; +pub const URLZONE_INTERNET: URLZONE = 3i32; +pub const URLZONE_INTRANET: URLZONE = 1i32; +pub const URLZONE_INVALID: URLZONE = -1i32; +pub const URLZONE_LOCAL_MACHINE: URLZONE = 0i32; +pub const URLZONE_PREDEFINED_MAX: URLZONE = 999i32; +pub const URLZONE_PREDEFINED_MIN: URLZONE = 0i32; +pub const URLZONE_TRUSTED: URLZONE = 2i32; +pub const URLZONE_UNTRUSTED: URLZONE = 4i32; +pub const URLZONE_USER_MAX: URLZONE = 10000i32; +pub const URLZONE_USER_MIN: URLZONE = 1000i32; +pub const URL_ENCODING_DISABLE_UTF8: URL_ENCODING = 536870912i32; +pub const URL_ENCODING_ENABLE_UTF8: URL_ENCODING = 268435456i32; +pub const URL_ENCODING_NONE: URL_ENCODING = 0i32; +pub const URL_MK_LEGACY: u32 = 0u32; +pub const URL_MK_NO_CANONICALIZE: u32 = 2u32; +pub const URL_MK_UNIFORM: u32 = 1u32; +pub const USE_SRC_URL: MONIKERPROPERTY = 1i32; +pub const UriBuilder_USE_ORIGINAL_FLAGS: u32 = 1u32; +pub const Uri_DISPLAY_IDN_HOST: u32 = 4u32; +pub const Uri_DISPLAY_NO_FRAGMENT: u32 = 1u32; +pub const Uri_DISPLAY_NO_PUNYCODE: u32 = 8u32; +pub const Uri_ENCODING_HOST_IS_IDN: u32 = 4u32; +pub const Uri_ENCODING_HOST_IS_PERCENT_ENCODED_CP: u32 = 16u32; +pub const Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8: u32 = 8u32; +pub const Uri_ENCODING_QUERY_AND_FRAGMENT_IS_CP: u32 = 64u32; +pub const Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8: u32 = 32u32; +pub const Uri_ENCODING_USER_INFO_AND_PATH_IS_CP: u32 = 2u32; +pub const Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8: u32 = 1u32; +pub const Uri_HOST_DNS: Uri_HOST_TYPE = 1i32; +pub const Uri_HOST_IDN: Uri_HOST_TYPE = 4i32; +pub const Uri_HOST_IPV4: Uri_HOST_TYPE = 2i32; +pub const Uri_HOST_IPV6: Uri_HOST_TYPE = 3i32; +pub const Uri_HOST_UNKNOWN: Uri_HOST_TYPE = 0i32; +pub const Uri_PUNYCODE_IDN_HOST: u32 = 2u32; +pub const WININETINFO_OPTION_LOCK_HANDLE: u32 = 65534u32; +pub const ZAFLAGS_ADD_SITES: ZAFLAGS = 2i32; +pub const ZAFLAGS_CUSTOM_EDIT: ZAFLAGS = 1i32; +pub const ZAFLAGS_DETECT_INTRANET: ZAFLAGS = 256i32; +pub const ZAFLAGS_INCLUDE_INTRANET_SITES: ZAFLAGS = 16i32; +pub const ZAFLAGS_INCLUDE_PROXY_OVERRIDE: ZAFLAGS = 8i32; +pub const ZAFLAGS_NO_CACHE: ZAFLAGS = 262144i32; +pub const ZAFLAGS_NO_UI: ZAFLAGS = 32i32; +pub const ZAFLAGS_REQUIRE_VERIFICATION: ZAFLAGS = 4i32; +pub const ZAFLAGS_SUPPORTS_VERIFICATION: ZAFLAGS = 64i32; +pub const ZAFLAGS_UNC_AS_INTRANET: ZAFLAGS = 128i32; +pub const ZAFLAGS_USE_LOCKED_ZONES: ZAFLAGS = 65536i32; +pub const ZAFLAGS_VERIFY_TEMPLATE_SETTINGS: ZAFLAGS = 131072i32; +pub type AUTHENTICATEF = i32; +pub type BINDF = i32; +pub type BINDF2 = i32; +pub type BINDHANDLETYPES = i32; +pub type BINDINFO_OPTIONS = i32; +pub type BINDSTATUS = i32; +pub type BINDSTRING = i32; +pub type BINDVERB = i32; +pub type BSCF = i32; +pub type CIP_STATUS = i32; +pub type IEObjectType = i32; +pub type INET_ZONE_MANAGER_CONSTANTS = i32; +pub type INTERNETFEATURELIST = i32; +pub type MONIKERPROPERTY = i32; +pub type OIBDG_FLAGS = i32; +pub type PARSEACTION = i32; +pub type PI_FLAGS = i32; +pub type PSUACTION = i32; +pub type PUAF = i32; +pub type PUAFOUT = i32; +pub type QUERYOPTION = i32; +pub type SZM_FLAGS = i32; +pub type URLTEMPLATE = i32; +pub type URLZONE = i32; +pub type URLZONEREG = i32; +pub type URL_ENCODING = i32; +pub type Uri_HOST_TYPE = i32; +pub type ZAFLAGS = i32; +#[repr(C)] +pub struct CODEBASEHOLD { + pub cbSize: u32, + pub szDistUnit: ::windows_sys::core::PWSTR, + pub szCodeBase: ::windows_sys::core::PWSTR, + pub dwVersionMS: u32, + pub dwVersionLS: u32, + pub dwStyle: u32, +} +impl ::core::marker::Copy for CODEBASEHOLD {} +impl ::core::clone::Clone for CODEBASEHOLD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONFIRMSAFETY { + pub clsid: ::windows_sys::core::GUID, + pub pUnk: ::windows_sys::core::IUnknown, + pub dwFlags: u32, +} +impl ::core::marker::Copy for CONFIRMSAFETY {} +impl ::core::clone::Clone for CONFIRMSAFETY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DATAINFO { + pub ulTotalSize: u32, + pub ulavrPacketSize: u32, + pub ulConnectSpeed: u32, + pub ulProcessorSpeed: u32, +} +impl ::core::marker::Copy for DATAINFO {} +impl ::core::clone::Clone for DATAINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HIT_LOGGING_INFO { + pub dwStructSize: u32, + pub lpszLoggedUrlName: ::windows_sys::core::PSTR, + pub StartTime: super::super::super::Foundation::SYSTEMTIME, + pub EndTime: super::super::super::Foundation::SYSTEMTIME, + pub lpszExtendedInfo: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HIT_LOGGING_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HIT_LOGGING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROTOCOLDATA { + pub grfFlags: u32, + pub dwState: u32, + pub pData: *mut ::core::ffi::c_void, + pub cbData: u32, +} +impl ::core::marker::Copy for PROTOCOLDATA {} +impl ::core::clone::Clone for PROTOCOLDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROTOCOLFILTERDATA { + pub cbSize: u32, + pub pProtocolSink: IInternetProtocolSink, + pub pProtocol: IInternetProtocol, + pub pUnk: ::windows_sys::core::IUnknown, + pub dwFilterFlags: u32, +} +impl ::core::marker::Copy for PROTOCOLFILTERDATA {} +impl ::core::clone::Clone for PROTOCOLFILTERDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROTOCOL_ARGUMENT { + pub szMethod: ::windows_sys::core::PCWSTR, + pub szTargetUrl: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for PROTOCOL_ARGUMENT {} +impl ::core::clone::Clone for PROTOCOL_ARGUMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REMSECURITY_ATTRIBUTES { + pub nLength: u32, + pub lpSecurityDescriptor: u32, + pub bInheritHandle: super::super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REMSECURITY_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REMSECURITY_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RemBINDINFO { + pub cbSize: u32, + pub szExtraInfo: ::windows_sys::core::PWSTR, + pub grfBindInfoF: u32, + pub dwBindVerb: u32, + pub szCustomVerb: ::windows_sys::core::PWSTR, + pub cbstgmedData: u32, + pub dwOptions: u32, + pub dwOptionsFlags: u32, + pub dwCodePage: u32, + pub securityAttributes: REMSECURITY_ATTRIBUTES, + pub iid: ::windows_sys::core::GUID, + pub pUnk: ::windows_sys::core::IUnknown, + pub dwReserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RemBINDINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RemBINDINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RemFORMATETC { + pub cfFormat: u32, + pub ptd: u32, + pub dwAspect: u32, + pub lindex: i32, + pub tymed: u32, +} +impl ::core::marker::Copy for RemFORMATETC {} +impl ::core::clone::Clone for RemFORMATETC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOFTDISTINFO { + pub cbSize: u32, + pub dwFlags: u32, + pub dwAdState: u32, + pub szTitle: ::windows_sys::core::PWSTR, + pub szAbstract: ::windows_sys::core::PWSTR, + pub szHREF: ::windows_sys::core::PWSTR, + pub dwInstalledVersionMS: u32, + pub dwInstalledVersionLS: u32, + pub dwUpdateVersionMS: u32, + pub dwUpdateVersionLS: u32, + pub dwAdvertisedVersionMS: u32, + pub dwAdvertisedVersionLS: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for SOFTDISTINFO {} +impl ::core::clone::Clone for SOFTDISTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct StartParam { + pub iid: ::windows_sys::core::GUID, + pub pIBindCtx: super::IBindCtx, + pub pItf: ::windows_sys::core::IUnknown, +} +impl ::core::marker::Copy for StartParam {} +impl ::core::clone::Clone for StartParam { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ZONEATTRIBUTES { + pub cbSize: u32, + pub szDisplayName: [u16; 260], + pub szDescription: [u16; 200], + pub szIconPath: [u16; 260], + pub dwTemplateMinLevel: u32, + pub dwTemplateRecommended: u32, + pub dwTemplateCurrentLevel: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for ZONEATTRIBUTES {} +impl ::core::clone::Clone for ZONEATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/mod.rs new file mode 100644 index 000000000..78a8444cf --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Com/mod.rs @@ -0,0 +1,1775 @@ +#[cfg(feature = "Win32_System_Com_Marshal")] +#[doc = "Required features: `\"Win32_System_Com_Marshal\"`"] +pub mod Marshal; +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +#[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] +pub mod StructuredStorage; +#[cfg(feature = "Win32_System_Com_Urlmon")] +#[doc = "Required features: `\"Win32_System_Com_Urlmon\"`"] +pub mod Urlmon; +::windows_targets::link!("ole32.dll" "system" fn BindMoniker(pmk : IMoniker, grfopt : u32, iidresult : *const ::windows_sys::core::GUID, ppvresult : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CLSIDFromProgID(lpszprogid : ::windows_sys::core::PCWSTR, lpclsid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CLSIDFromProgIDEx(lpszprogid : ::windows_sys::core::PCWSTR, lpclsid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CLSIDFromString(lpsz : ::windows_sys::core::PCWSTR, pclsid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoAddRefServerProcess() -> u32); +::windows_targets::link!("ole32.dll" "system" fn CoAllowSetForegroundWindow(punk : ::windows_sys::core::IUnknown, lpvreserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoAllowUnmarshalerCLSID(clsid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoBuildVersion() -> u32); +::windows_targets::link!("ole32.dll" "system" fn CoCancelCall(dwthreadid : u32, ultimeout : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoCopyProxy(pproxy : ::windows_sys::core::IUnknown, ppcopy : *mut ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoCreateFreeThreadedMarshaler(punkouter : ::windows_sys::core::IUnknown, ppunkmarshal : *mut ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoCreateGuid(pguid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoCreateInstance(rclsid : *const ::windows_sys::core::GUID, punkouter : ::windows_sys::core::IUnknown, dwclscontext : CLSCTX, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoCreateInstanceEx(clsid : *const ::windows_sys::core::GUID, punkouter : ::windows_sys::core::IUnknown, dwclsctx : CLSCTX, pserverinfo : *const COSERVERINFO, dwcount : u32, presults : *mut MULTI_QI) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoCreateInstanceFromApp(clsid : *const ::windows_sys::core::GUID, punkouter : ::windows_sys::core::IUnknown, dwclsctx : CLSCTX, reserved : *const ::core::ffi::c_void, dwcount : u32, presults : *mut MULTI_QI) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoDecrementMTAUsage(cookie : CO_MTA_USAGE_COOKIE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoDisableCallCancellation(preserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoDisconnectContext(dwtimeout : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoDisconnectObject(punk : ::windows_sys::core::IUnknown, dwreserved : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CoDosDateTimeToFileTime(ndosdate : u16, ndostime : u16, lpfiletime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: BOOL); +::windows_targets::link!("ole32.dll" "system" fn CoEnableCallCancellation(preserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CoFileTimeNow(lpfiletime : *mut super::super::Foundation:: FILETIME) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CoFileTimeToDosDateTime(lpfiletime : *const super::super::Foundation:: FILETIME, lpdosdate : *mut u16, lpdostime : *mut u16) -> super::super::Foundation:: BOOL); +::windows_targets::link!("ole32.dll" "system" fn CoFreeAllLibraries() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CoFreeLibrary(hinst : super::super::Foundation:: HINSTANCE) -> ()); +::windows_targets::link!("ole32.dll" "system" fn CoFreeUnusedLibraries() -> ()); +::windows_targets::link!("ole32.dll" "system" fn CoFreeUnusedLibrariesEx(dwunloaddelay : u32, dwreserved : u32) -> ()); +::windows_targets::link!("ole32.dll" "system" fn CoGetApartmentType(papttype : *mut APTTYPE, paptqualifier : *mut APTTYPEQUALIFIER) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetCallContext(riid : *const ::windows_sys::core::GUID, ppinterface : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetCallerTID(lpdwtid : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetCancelObject(dwthreadid : u32, iid : *const ::windows_sys::core::GUID, ppunk : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetClassObject(rclsid : *const ::windows_sys::core::GUID, dwclscontext : u32, pvreserved : *const ::core::ffi::c_void, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetContextToken(ptoken : *mut usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetCurrentLogicalThreadId(pguid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetCurrentProcess() -> u32); +::windows_targets::link!("ole32.dll" "system" fn CoGetMalloc(dwmemcontext : u32, ppmalloc : *mut IMalloc) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetObject(pszname : ::windows_sys::core::PCWSTR, pbindoptions : *const BIND_OPTS, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetObjectContext(riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetPSClsid(riid : *const ::windows_sys::core::GUID, pclsid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn CoGetSystemSecurityPermissions(comsdtype : COMSD, ppsd : *mut super::super::Security:: PSECURITY_DESCRIPTOR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoGetTreatAsClass(clsidold : *const ::windows_sys::core::GUID, pclsidnew : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoImpersonateClient() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoIncrementMTAUsage(pcookie : *mut CO_MTA_USAGE_COOKIE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoInitialize(pvreserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoInitializeEx(pvreserved : *const ::core::ffi::c_void, dwcoinit : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn CoInitializeSecurity(psecdesc : super::super::Security:: PSECURITY_DESCRIPTOR, cauthsvc : i32, asauthsvc : *const SOLE_AUTHENTICATION_SERVICE, preserved1 : *const ::core::ffi::c_void, dwauthnlevel : RPC_C_AUTHN_LEVEL, dwimplevel : RPC_C_IMP_LEVEL, pauthlist : *const ::core::ffi::c_void, dwcapabilities : u32, preserved3 : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoInstall(pbc : IBindCtx, dwflags : u32, pclassspec : *const uCLSSPEC, pquery : *const QUERYCONTEXT, pszcodebase : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoInvalidateRemoteMachineBindings(pszmachinename : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CoIsHandlerConnected(punk : ::windows_sys::core::IUnknown) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CoIsOle1Class(rclsid : *const ::windows_sys::core::GUID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CoLoadLibrary(lpszlibname : ::windows_sys::core::PCWSTR, bautofree : super::super::Foundation:: BOOL) -> super::super::Foundation:: HINSTANCE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CoLockObjectExternal(punk : ::windows_sys::core::IUnknown, flock : super::super::Foundation:: BOOL, flastunlockreleases : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoQueryAuthenticationServices(pcauthsvc : *mut u32, asauthsvc : *mut *mut SOLE_AUTHENTICATION_SERVICE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoQueryClientBlanket(pauthnsvc : *mut u32, pauthzsvc : *mut u32, pserverprincname : *mut ::windows_sys::core::PWSTR, pauthnlevel : *mut u32, pimplevel : *mut u32, pprivs : *mut *mut ::core::ffi::c_void, pcapabilities : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoQueryProxyBlanket(pproxy : ::windows_sys::core::IUnknown, pwauthnsvc : *mut u32, pauthzsvc : *mut u32, pserverprincname : *mut ::windows_sys::core::PWSTR, pauthnlevel : *mut u32, pimplevel : *mut u32, pauthinfo : *mut *mut ::core::ffi::c_void, pcapabilites : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRegisterActivationFilter(pactivationfilter : IActivationFilter) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRegisterChannelHook(extensionuuid : *const ::windows_sys::core::GUID, pchannelhook : IChannelHook) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRegisterClassObject(rclsid : *const ::windows_sys::core::GUID, punk : ::windows_sys::core::IUnknown, dwclscontext : CLSCTX, flags : u32, lpdwregister : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRegisterDeviceCatalog(deviceinstanceid : ::windows_sys::core::PCWSTR, cookie : *mut CO_DEVICE_CATALOG_COOKIE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRegisterInitializeSpy(pspy : IInitializeSpy, pulicookie : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRegisterMallocSpy(pmallocspy : IMallocSpy) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRegisterPSClsid(riid : *const ::windows_sys::core::GUID, rclsid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRegisterSurrogate(psurrogate : ISurrogate) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoReleaseServerProcess() -> u32); +::windows_targets::link!("ole32.dll" "system" fn CoResumeClassObjects() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRevertToSelf() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRevokeClassObject(dwregister : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRevokeDeviceCatalog(cookie : CO_DEVICE_CATALOG_COOKIE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRevokeInitializeSpy(ulicookie : u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoRevokeMallocSpy() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoSetCancelObject(punk : ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoSetProxyBlanket(pproxy : ::windows_sys::core::IUnknown, dwauthnsvc : u32, dwauthzsvc : u32, pserverprincname : ::windows_sys::core::PCWSTR, dwauthnlevel : RPC_C_AUTHN_LEVEL, dwimplevel : RPC_C_IMP_LEVEL, pauthinfo : *const ::core::ffi::c_void, dwcapabilities : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoSuspendClassObjects() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoSwitchCallContext(pnewobject : ::windows_sys::core::IUnknown, ppoldobject : *mut ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoTaskMemAlloc(cb : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ole32.dll" "system" fn CoTaskMemFree(pv : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("ole32.dll" "system" fn CoTaskMemRealloc(pv : *const ::core::ffi::c_void, cb : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("ole32.dll" "system" fn CoTestCancel() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoTreatAsClass(clsidold : *const ::windows_sys::core::GUID, clsidnew : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CoUninitialize() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CoWaitForMultipleHandles(dwflags : u32, dwtimeout : u32, chandles : u32, phandles : *const super::super::Foundation:: HANDLE, lpdwindex : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CoWaitForMultipleObjects(dwflags : u32, dwtimeout : u32, chandles : u32, phandles : *const super::super::Foundation:: HANDLE, lpdwindex : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CreateAntiMoniker(ppmk : *mut IMoniker) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CreateBindCtx(reserved : u32, ppbc : *mut IBindCtx) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CreateClassMoniker(rclsid : *const ::windows_sys::core::GUID, ppmk : *mut IMoniker) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CreateDataAdviseHolder(ppdaholder : *mut IDataAdviseHolder) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CreateDataCache(punkouter : ::windows_sys::core::IUnknown, rclsid : *const ::windows_sys::core::GUID, iid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CreateFileMoniker(lpszpathname : ::windows_sys::core::PCWSTR, ppmk : *mut IMoniker) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CreateGenericComposite(pmkfirst : IMoniker, pmkrest : IMoniker, ppmkcomposite : *mut IMoniker) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CreateIUriBuilder(piuri : IUri, dwflags : u32, dwreserved : usize, ppiuribuilder : *mut IUriBuilder) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CreateItemMoniker(lpszdelim : ::windows_sys::core::PCWSTR, lpszitem : ::windows_sys::core::PCWSTR, ppmk : *mut IMoniker) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CreateObjrefMoniker(punk : ::windows_sys::core::IUnknown, ppmk : *mut IMoniker) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CreatePointerMoniker(punk : ::windows_sys::core::IUnknown, ppmk : *mut IMoniker) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateStdProgressIndicator(hwndparent : super::super::Foundation:: HWND, psztitle : ::windows_sys::core::PCWSTR, pibsccaller : IBindStatusCallback, ppibsc : *mut IBindStatusCallback) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CreateUri(pwzuri : ::windows_sys::core::PCWSTR, dwflags : URI_CREATE_FLAGS, dwreserved : usize, ppuri : *mut IUri) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CreateUriFromMultiByteString(pszansiinputuri : ::windows_sys::core::PCSTR, dwencodingflags : u32, dwcodepage : u32, dwcreateflags : u32, dwreserved : usize, ppuri : *mut IUri) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("urlmon.dll" "system" fn CreateUriWithFragment(pwzuri : ::windows_sys::core::PCWSTR, pwzfragment : ::windows_sys::core::PCWSTR, dwflags : u32, dwreserved : usize, ppuri : *mut IUri) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn DcomChannelSetHResult(pvreserved : *const ::core::ffi::c_void, pulreserved : *const u32, appshr : ::windows_sys::core::HRESULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn GetClassFile(szfilename : ::windows_sys::core::PCWSTR, pclsid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn GetErrorInfo(dwreserved : u32, pperrinfo : *mut IErrorInfo) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn GetRunningObjectTable(reserved : u32, pprot : *mut IRunningObjectTable) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn IIDFromString(lpsz : ::windows_sys::core::PCWSTR, lpiid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn MkParseDisplayName(pbc : IBindCtx, szusername : ::windows_sys::core::PCWSTR, pcheaten : *mut u32, ppmk : *mut IMoniker) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn MonikerCommonPrefixWith(pmkthis : IMoniker, pmkother : IMoniker, ppmkcommon : *mut IMoniker) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MonikerRelativePathTo(pmksrc : IMoniker, pmkdest : IMoniker, ppmkrelpath : *mut IMoniker, dwreserved : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn ProgIDFromCLSID(clsid : *const ::windows_sys::core::GUID, lplpszprogid : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn SetErrorInfo(dwreserved : u32, perrinfo : IErrorInfo) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StringFromCLSID(rclsid : *const ::windows_sys::core::GUID, lplpsz : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn StringFromGUID2(rguid : *const ::windows_sys::core::GUID, lpsz : ::windows_sys::core::PWSTR, cchmax : i32) -> i32); +::windows_targets::link!("ole32.dll" "system" fn StringFromIID(rclsid : *const ::windows_sys::core::GUID, lplpsz : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +pub type AsyncIAdviseSink = *mut ::core::ffi::c_void; +pub type AsyncIAdviseSink2 = *mut ::core::ffi::c_void; +pub type AsyncIMultiQI = *mut ::core::ffi::c_void; +pub type AsyncIPipeByte = *mut ::core::ffi::c_void; +pub type AsyncIPipeDouble = *mut ::core::ffi::c_void; +pub type AsyncIPipeLong = *mut ::core::ffi::c_void; +pub type AsyncIUnknown = *mut ::core::ffi::c_void; +pub type IActivationFilter = *mut ::core::ffi::c_void; +pub type IAddrExclusionControl = *mut ::core::ffi::c_void; +pub type IAddrTrackingControl = *mut ::core::ffi::c_void; +pub type IAdviseSink = *mut ::core::ffi::c_void; +pub type IAdviseSink2 = *mut ::core::ffi::c_void; +pub type IAgileObject = *mut ::core::ffi::c_void; +pub type IAsyncManager = *mut ::core::ffi::c_void; +pub type IAsyncRpcChannelBuffer = *mut ::core::ffi::c_void; +pub type IAuthenticate = *mut ::core::ffi::c_void; +pub type IAuthenticateEx = *mut ::core::ffi::c_void; +pub type IBindCtx = *mut ::core::ffi::c_void; +pub type IBindHost = *mut ::core::ffi::c_void; +pub type IBindStatusCallback = *mut ::core::ffi::c_void; +pub type IBindStatusCallbackEx = *mut ::core::ffi::c_void; +pub type IBinding = *mut ::core::ffi::c_void; +pub type IBlockingLock = *mut ::core::ffi::c_void; +pub type ICallFactory = *mut ::core::ffi::c_void; +pub type ICancelMethodCalls = *mut ::core::ffi::c_void; +pub type ICatInformation = *mut ::core::ffi::c_void; +pub type ICatRegister = *mut ::core::ffi::c_void; +pub type IChannelHook = *mut ::core::ffi::c_void; +pub type IClassActivator = *mut ::core::ffi::c_void; +pub type IClassFactory = *mut ::core::ffi::c_void; +pub type IClientSecurity = *mut ::core::ffi::c_void; +pub type IComThreadingInfo = *mut ::core::ffi::c_void; +pub type IConnectionPoint = *mut ::core::ffi::c_void; +pub type IConnectionPointContainer = *mut ::core::ffi::c_void; +pub type IContext = *mut ::core::ffi::c_void; +pub type IContextCallback = *mut ::core::ffi::c_void; +pub type IDataAdviseHolder = *mut ::core::ffi::c_void; +pub type IDataObject = *mut ::core::ffi::c_void; +pub type IDispatch = *mut ::core::ffi::c_void; +pub type IEnumCATEGORYINFO = *mut ::core::ffi::c_void; +pub type IEnumConnectionPoints = *mut ::core::ffi::c_void; +pub type IEnumConnections = *mut ::core::ffi::c_void; +pub type IEnumContextProps = *mut ::core::ffi::c_void; +pub type IEnumFORMATETC = *mut ::core::ffi::c_void; +pub type IEnumGUID = *mut ::core::ffi::c_void; +pub type IEnumMoniker = *mut ::core::ffi::c_void; +pub type IEnumSTATDATA = *mut ::core::ffi::c_void; +pub type IEnumString = *mut ::core::ffi::c_void; +pub type IEnumUnknown = *mut ::core::ffi::c_void; +pub type IErrorInfo = *mut ::core::ffi::c_void; +pub type IErrorLog = *mut ::core::ffi::c_void; +pub type IExternalConnection = *mut ::core::ffi::c_void; +pub type IFastRundown = *mut ::core::ffi::c_void; +pub type IForegroundTransfer = *mut ::core::ffi::c_void; +pub type IGlobalInterfaceTable = *mut ::core::ffi::c_void; +pub type IGlobalOptions = *mut ::core::ffi::c_void; +pub type IInitializeSpy = *mut ::core::ffi::c_void; +pub type IInternalUnknown = *mut ::core::ffi::c_void; +pub type IMachineGlobalObjectTable = *mut ::core::ffi::c_void; +pub type IMalloc = *mut ::core::ffi::c_void; +pub type IMallocSpy = *mut ::core::ffi::c_void; +pub type IMoniker = *mut ::core::ffi::c_void; +pub type IMultiQI = *mut ::core::ffi::c_void; +pub type INoMarshal = *mut ::core::ffi::c_void; +pub type IOplockStorage = *mut ::core::ffi::c_void; +pub type IPSFactoryBuffer = *mut ::core::ffi::c_void; +pub type IPersist = *mut ::core::ffi::c_void; +pub type IPersistFile = *mut ::core::ffi::c_void; +pub type IPersistMemory = *mut ::core::ffi::c_void; +pub type IPersistStream = *mut ::core::ffi::c_void; +pub type IPersistStreamInit = *mut ::core::ffi::c_void; +pub type IPipeByte = *mut ::core::ffi::c_void; +pub type IPipeDouble = *mut ::core::ffi::c_void; +pub type IPipeLong = *mut ::core::ffi::c_void; +pub type IProcessInitControl = *mut ::core::ffi::c_void; +pub type IProcessLock = *mut ::core::ffi::c_void; +pub type IProgressNotify = *mut ::core::ffi::c_void; +pub type IROTData = *mut ::core::ffi::c_void; +pub type IReleaseMarshalBuffers = *mut ::core::ffi::c_void; +pub type IRpcChannelBuffer = *mut ::core::ffi::c_void; +pub type IRpcChannelBuffer2 = *mut ::core::ffi::c_void; +pub type IRpcChannelBuffer3 = *mut ::core::ffi::c_void; +pub type IRpcHelper = *mut ::core::ffi::c_void; +pub type IRpcOptions = *mut ::core::ffi::c_void; +pub type IRpcProxyBuffer = *mut ::core::ffi::c_void; +pub type IRpcStubBuffer = *mut ::core::ffi::c_void; +pub type IRpcSyntaxNegotiate = *mut ::core::ffi::c_void; +pub type IRunnableObject = *mut ::core::ffi::c_void; +pub type IRunningObjectTable = *mut ::core::ffi::c_void; +pub type ISequentialStream = *mut ::core::ffi::c_void; +pub type IServerSecurity = *mut ::core::ffi::c_void; +pub type IServiceProvider = *mut ::core::ffi::c_void; +pub type IStdMarshalInfo = *mut ::core::ffi::c_void; +pub type IStream = *mut ::core::ffi::c_void; +pub type ISupportAllowLowerTrustActivation = *mut ::core::ffi::c_void; +pub type ISupportErrorInfo = *mut ::core::ffi::c_void; +pub type ISurrogate = *mut ::core::ffi::c_void; +pub type ISurrogateService = *mut ::core::ffi::c_void; +pub type ISynchronize = *mut ::core::ffi::c_void; +pub type ISynchronizeContainer = *mut ::core::ffi::c_void; +pub type ISynchronizeEvent = *mut ::core::ffi::c_void; +pub type ISynchronizeHandle = *mut ::core::ffi::c_void; +pub type ISynchronizeMutex = *mut ::core::ffi::c_void; +pub type ITimeAndNoticeControl = *mut ::core::ffi::c_void; +pub type ITypeComp = *mut ::core::ffi::c_void; +pub type ITypeInfo = *mut ::core::ffi::c_void; +pub type ITypeInfo2 = *mut ::core::ffi::c_void; +pub type ITypeLib = *mut ::core::ffi::c_void; +pub type ITypeLib2 = *mut ::core::ffi::c_void; +pub type ITypeLibRegistration = *mut ::core::ffi::c_void; +pub type ITypeLibRegistrationReader = *mut ::core::ffi::c_void; +pub type IUri = *mut ::core::ffi::c_void; +pub type IUriBuilder = *mut ::core::ffi::c_void; +pub type IUrlMon = *mut ::core::ffi::c_void; +pub type IWaitMultiple = *mut ::core::ffi::c_void; +pub const ADVFCACHE_FORCEBUILTIN: ADVF = 16i32; +pub const ADVFCACHE_NOHANDLER: ADVF = 8i32; +pub const ADVFCACHE_ONSAVE: ADVF = 32i32; +pub const ADVF_DATAONSTOP: ADVF = 64i32; +pub const ADVF_NODATA: ADVF = 1i32; +pub const ADVF_ONLYONCE: ADVF = 4i32; +pub const ADVF_PRIMEFIRST: ADVF = 2i32; +pub const APPIDREGFLAGS_AAA_NO_IMPLICIT_ACTIVATE_AS_IU: u32 = 2048u32; +pub const APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP: u32 = 1u32; +pub const APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY: u32 = 4u32; +pub const APPIDREGFLAGS_IUSERVER_ACTIVATE_IN_CLIENT_SESSION_ONLY: u32 = 32u32; +pub const APPIDREGFLAGS_IUSERVER_SELF_SID_IN_LAUNCH_PERMISSION: u32 = 16u32; +pub const APPIDREGFLAGS_IUSERVER_UNMODIFIED_LOGON_TOKEN: u32 = 8u32; +pub const APPIDREGFLAGS_RESERVED1: u32 = 64u32; +pub const APPIDREGFLAGS_RESERVED2: u32 = 128u32; +pub const APPIDREGFLAGS_RESERVED3: u32 = 256u32; +pub const APPIDREGFLAGS_RESERVED4: u32 = 512u32; +pub const APPIDREGFLAGS_RESERVED5: u32 = 1024u32; +pub const APPIDREGFLAGS_RESERVED7: u32 = 4096u32; +pub const APPIDREGFLAGS_RESERVED8: u32 = 8192u32; +pub const APPIDREGFLAGS_RESERVED9: u32 = 16384u32; +pub const APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND: u32 = 2u32; +pub const APTTYPEQUALIFIER_APPLICATION_STA: APTTYPEQUALIFIER = 6i32; +pub const APTTYPEQUALIFIER_IMPLICIT_MTA: APTTYPEQUALIFIER = 1i32; +pub const APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA: APTTYPEQUALIFIER = 4i32; +pub const APTTYPEQUALIFIER_NA_ON_MAINSTA: APTTYPEQUALIFIER = 5i32; +pub const APTTYPEQUALIFIER_NA_ON_MTA: APTTYPEQUALIFIER = 2i32; +pub const APTTYPEQUALIFIER_NA_ON_STA: APTTYPEQUALIFIER = 3i32; +pub const APTTYPEQUALIFIER_NONE: APTTYPEQUALIFIER = 0i32; +pub const APTTYPEQUALIFIER_RESERVED_1: APTTYPEQUALIFIER = 7i32; +pub const APTTYPE_CURRENT: APTTYPE = -1i32; +pub const APTTYPE_MAINSTA: APTTYPE = 3i32; +pub const APTTYPE_MTA: APTTYPE = 1i32; +pub const APTTYPE_NA: APTTYPE = 2i32; +pub const APTTYPE_STA: APTTYPE = 0i32; +pub const ASYNC_MODE_COMPATIBILITY: i32 = 1i32; +pub const ASYNC_MODE_DEFAULT: i32 = 0i32; +pub const BINDINFOF_URLENCODEDEXTRAINFO: BINDINFOF = 2i32; +pub const BINDINFOF_URLENCODESTGMEDDATA: BINDINFOF = 1i32; +pub const BIND_JUSTTESTEXISTENCE: BIND_FLAGS = 2i32; +pub const BIND_MAYBOTHERUSER: BIND_FLAGS = 1i32; +pub const CALLTYPE_ASYNC: CALLTYPE = 3i32; +pub const CALLTYPE_ASYNC_CALLPENDING: CALLTYPE = 5i32; +pub const CALLTYPE_NESTED: CALLTYPE = 2i32; +pub const CALLTYPE_TOPLEVEL: CALLTYPE = 1i32; +pub const CALLTYPE_TOPLEVEL_CALLPENDING: CALLTYPE = 4i32; +pub const CC_CDECL: CALLCONV = 1i32; +pub const CC_FASTCALL: CALLCONV = 0i32; +pub const CC_FPFASTCALL: CALLCONV = 5i32; +pub const CC_MACPASCAL: CALLCONV = 3i32; +pub const CC_MAX: CALLCONV = 9i32; +pub const CC_MPWCDECL: CALLCONV = 7i32; +pub const CC_MPWPASCAL: CALLCONV = 8i32; +pub const CC_MSCPASCAL: CALLCONV = 2i32; +pub const CC_PASCAL: CALLCONV = 2i32; +pub const CC_STDCALL: CALLCONV = 4i32; +pub const CC_SYSCALL: CALLCONV = 6i32; +pub const CLSCTX_ACTIVATE_32_BIT_SERVER: CLSCTX = 262144u32; +pub const CLSCTX_ACTIVATE_64_BIT_SERVER: CLSCTX = 524288u32; +pub const CLSCTX_ACTIVATE_AAA_AS_IU: CLSCTX = 8388608u32; +pub const CLSCTX_ACTIVATE_ARM32_SERVER: CLSCTX = 33554432u32; +pub const CLSCTX_ACTIVATE_X86_SERVER: CLSCTX = 262144u32; +pub const CLSCTX_ALL: CLSCTX = 23u32; +pub const CLSCTX_ALLOW_LOWER_TRUST_REGISTRATION: CLSCTX = 67108864u32; +pub const CLSCTX_APPCONTAINER: CLSCTX = 4194304u32; +pub const CLSCTX_DISABLE_AAA: CLSCTX = 32768u32; +pub const CLSCTX_ENABLE_AAA: CLSCTX = 65536u32; +pub const CLSCTX_ENABLE_CLOAKING: CLSCTX = 1048576u32; +pub const CLSCTX_ENABLE_CODE_DOWNLOAD: CLSCTX = 8192u32; +pub const CLSCTX_FROM_DEFAULT_CONTEXT: CLSCTX = 131072u32; +pub const CLSCTX_INPROC_HANDLER: CLSCTX = 2u32; +pub const CLSCTX_INPROC_HANDLER16: CLSCTX = 32u32; +pub const CLSCTX_INPROC_SERVER: CLSCTX = 1u32; +pub const CLSCTX_INPROC_SERVER16: CLSCTX = 8u32; +pub const CLSCTX_LOCAL_SERVER: CLSCTX = 4u32; +pub const CLSCTX_NO_CODE_DOWNLOAD: CLSCTX = 1024u32; +pub const CLSCTX_NO_CUSTOM_MARSHAL: CLSCTX = 4096u32; +pub const CLSCTX_NO_FAILURE_LOG: CLSCTX = 16384u32; +pub const CLSCTX_PS_DLL: CLSCTX = 2147483648u32; +pub const CLSCTX_REMOTE_SERVER: CLSCTX = 16u32; +pub const CLSCTX_RESERVED1: CLSCTX = 64u32; +pub const CLSCTX_RESERVED2: CLSCTX = 128u32; +pub const CLSCTX_RESERVED3: CLSCTX = 256u32; +pub const CLSCTX_RESERVED4: CLSCTX = 512u32; +pub const CLSCTX_RESERVED5: CLSCTX = 2048u32; +pub const CLSCTX_RESERVED6: CLSCTX = 16777216u32; +pub const CLSCTX_SERVER: CLSCTX = 21u32; +pub const COINITBASE_MULTITHREADED: COINITBASE = 0i32; +pub const COINIT_APARTMENTTHREADED: COINIT = 2i32; +pub const COINIT_DISABLE_OLE1DDE: COINIT = 4i32; +pub const COINIT_MULTITHREADED: COINIT = 0i32; +pub const COINIT_SPEED_OVER_MEMORY: COINIT = 8i32; +pub const COLE_DEFAULT_AUTHINFO: i32 = -1i32; +pub const COLE_DEFAULT_PRINCIPAL: ::windows_sys::core::PCWSTR = -1i32 as _; +pub const COMBND_RESERVED1: RPCOPT_PROPERTIES = 4i32; +pub const COMBND_RESERVED2: RPCOPT_PROPERTIES = 5i32; +pub const COMBND_RESERVED3: RPCOPT_PROPERTIES = 8i32; +pub const COMBND_RESERVED4: RPCOPT_PROPERTIES = 16i32; +pub const COMBND_RPCTIMEOUT: RPCOPT_PROPERTIES = 1i32; +pub const COMBND_SERVER_LOCALITY: RPCOPT_PROPERTIES = 2i32; +pub const COMGLB_APPID: GLOBALOPT_PROPERTIES = 2i32; +pub const COMGLB_EXCEPTION_DONOT_HANDLE: GLOBALOPT_EH_VALUES = 1i32; +pub const COMGLB_EXCEPTION_DONOT_HANDLE_ANY: GLOBALOPT_EH_VALUES = 2i32; +pub const COMGLB_EXCEPTION_DONOT_HANDLE_FATAL: GLOBALOPT_EH_VALUES = 1i32; +pub const COMGLB_EXCEPTION_HANDLE: GLOBALOPT_EH_VALUES = 0i32; +pub const COMGLB_EXCEPTION_HANDLING: GLOBALOPT_PROPERTIES = 1i32; +pub const COMGLB_FAST_RUNDOWN: GLOBALOPT_RO_FLAGS = 8i32; +pub const COMGLB_PROPERTIES_RESERVED1: GLOBALOPT_PROPERTIES = 6i32; +pub const COMGLB_PROPERTIES_RESERVED2: GLOBALOPT_PROPERTIES = 7i32; +pub const COMGLB_PROPERTIES_RESERVED3: GLOBALOPT_PROPERTIES = 8i32; +pub const COMGLB_RESERVED1: GLOBALOPT_RO_FLAGS = 16i32; +pub const COMGLB_RESERVED2: GLOBALOPT_RO_FLAGS = 32i32; +pub const COMGLB_RESERVED3: GLOBALOPT_RO_FLAGS = 64i32; +pub const COMGLB_RESERVED4: GLOBALOPT_RO_FLAGS = 256i32; +pub const COMGLB_RESERVED5: GLOBALOPT_RO_FLAGS = 512i32; +pub const COMGLB_RESERVED6: GLOBALOPT_RO_FLAGS = 1024i32; +pub const COMGLB_RO_SETTINGS: GLOBALOPT_PROPERTIES = 4i32; +pub const COMGLB_RPC_THREADPOOL_SETTING: GLOBALOPT_PROPERTIES = 3i32; +pub const COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL: GLOBALOPT_RPCTP_VALUES = 0i32; +pub const COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL: GLOBALOPT_RPCTP_VALUES = 1i32; +pub const COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES: GLOBALOPT_RO_FLAGS = 1i32; +pub const COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES: GLOBALOPT_RO_FLAGS = 4i32; +pub const COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES: GLOBALOPT_RO_FLAGS = 2i32; +pub const COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES: GLOBALOPT_RO_FLAGS = 128i32; +pub const COMGLB_UNMARSHALING_POLICY: GLOBALOPT_PROPERTIES = 5i32; +pub const COMGLB_UNMARSHALING_POLICY_HYBRID: GLOBALOPT_UNMARSHALING_POLICY_VALUES = 2i32; +pub const COMGLB_UNMARSHALING_POLICY_NORMAL: GLOBALOPT_UNMARSHALING_POLICY_VALUES = 0i32; +pub const COMGLB_UNMARSHALING_POLICY_STRONG: GLOBALOPT_UNMARSHALING_POLICY_VALUES = 1i32; +pub const COM_RIGHTS_ACTIVATE_LOCAL: u32 = 8u32; +pub const COM_RIGHTS_ACTIVATE_REMOTE: u32 = 16u32; +pub const COM_RIGHTS_EXECUTE: u32 = 1u32; +pub const COM_RIGHTS_EXECUTE_LOCAL: u32 = 2u32; +pub const COM_RIGHTS_EXECUTE_REMOTE: u32 = 4u32; +pub const COM_RIGHTS_RESERVED1: u32 = 32u32; +pub const COM_RIGHTS_RESERVED2: u32 = 64u32; +pub const COWAIT_ALERTABLE: COWAIT_FLAGS = 2i32; +pub const COWAIT_DEFAULT: COWAIT_FLAGS = 0i32; +pub const COWAIT_DISPATCH_CALLS: COWAIT_FLAGS = 8i32; +pub const COWAIT_DISPATCH_WINDOW_MESSAGES: COWAIT_FLAGS = 16i32; +pub const COWAIT_INPUTAVAILABLE: COWAIT_FLAGS = 4i32; +pub const COWAIT_WAITALL: COWAIT_FLAGS = 1i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_1: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483648i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_10: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483639i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_11: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483638i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_12: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483637i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_13: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483636i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_14: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483635i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_15: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483634i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_16: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483633i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_17: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483632i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_18: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483631i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_2: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483647i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_3: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483646i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_4: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483645i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_5: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483644i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_6: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483643i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_7: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483642i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_8: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483641i32; +pub const CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_9: CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483640i32; +pub const CO_MARSHALING_SOURCE_IS_APP_CONTAINER: CO_MARSHALING_CONTEXT_ATTRIBUTES = 0i32; +pub const CWMO_DEFAULT: CWMO_FLAGS = 0i32; +pub const CWMO_DISPATCH_CALLS: CWMO_FLAGS = 1i32; +pub const CWMO_DISPATCH_WINDOW_MESSAGES: CWMO_FLAGS = 2i32; +pub const CWMO_MAX_HANDLES: u32 = 56u32; +pub const DATADIR_GET: DATADIR = 1i32; +pub const DATADIR_SET: DATADIR = 2i32; +pub const DCOMSCM_ACTIVATION_DISALLOW_UNSECURE_CALL: u32 = 2u32; +pub const DCOMSCM_ACTIVATION_USE_ALL_AUTHNSERVICES: u32 = 1u32; +pub const DCOMSCM_PING_DISALLOW_UNSECURE_CALL: u32 = 32u32; +pub const DCOMSCM_PING_USE_MID_AUTHNSERVICE: u32 = 16u32; +pub const DCOMSCM_RESOLVE_DISALLOW_UNSECURE_CALL: u32 = 8u32; +pub const DCOMSCM_RESOLVE_USE_ALL_AUTHNSERVICES: u32 = 4u32; +pub const DCOM_CALL_CANCELED: DCOM_CALL_STATE = 2i32; +pub const DCOM_CALL_COMPLETE: DCOM_CALL_STATE = 1i32; +pub const DCOM_NONE: DCOM_CALL_STATE = 0i32; +pub const DESCKIND_FUNCDESC: DESCKIND = 1i32; +pub const DESCKIND_IMPLICITAPPOBJ: DESCKIND = 4i32; +pub const DESCKIND_MAX: DESCKIND = 5i32; +pub const DESCKIND_NONE: DESCKIND = 0i32; +pub const DESCKIND_TYPECOMP: DESCKIND = 3i32; +pub const DESCKIND_VARDESC: DESCKIND = 2i32; +pub const DISPATCH_METHOD: DISPATCH_FLAGS = 1u16; +pub const DISPATCH_PROPERTYGET: DISPATCH_FLAGS = 2u16; +pub const DISPATCH_PROPERTYPUT: DISPATCH_FLAGS = 4u16; +pub const DISPATCH_PROPERTYPUTREF: DISPATCH_FLAGS = 8u16; +pub const DMUS_ERRBASE: u32 = 4096u32; +pub const DVASPECT_CONTENT: DVASPECT = 1u32; +pub const DVASPECT_DOCPRINT: DVASPECT = 8u32; +pub const DVASPECT_ICON: DVASPECT = 4u32; +pub const DVASPECT_OPAQUE: DVASPECT = 16u32; +pub const DVASPECT_THUMBNAIL: DVASPECT = 2u32; +pub const DVASPECT_TRANSPARENT: DVASPECT = 32u32; +pub const EOAC_ACCESS_CONTROL: EOLE_AUTHENTICATION_CAPABILITIES = 4i32; +pub const EOAC_ANY_AUTHORITY: EOLE_AUTHENTICATION_CAPABILITIES = 128i32; +pub const EOAC_APPID: EOLE_AUTHENTICATION_CAPABILITIES = 8i32; +pub const EOAC_AUTO_IMPERSONATE: EOLE_AUTHENTICATION_CAPABILITIES = 1024i32; +pub const EOAC_DEFAULT: EOLE_AUTHENTICATION_CAPABILITIES = 2048i32; +pub const EOAC_DISABLE_AAA: EOLE_AUTHENTICATION_CAPABILITIES = 4096i32; +pub const EOAC_DYNAMIC: EOLE_AUTHENTICATION_CAPABILITIES = 16i32; +pub const EOAC_DYNAMIC_CLOAKING: EOLE_AUTHENTICATION_CAPABILITIES = 64i32; +pub const EOAC_MAKE_FULLSIC: EOLE_AUTHENTICATION_CAPABILITIES = 256i32; +pub const EOAC_MUTUAL_AUTH: EOLE_AUTHENTICATION_CAPABILITIES = 1i32; +pub const EOAC_NONE: EOLE_AUTHENTICATION_CAPABILITIES = 0i32; +pub const EOAC_NO_CUSTOM_MARSHAL: EOLE_AUTHENTICATION_CAPABILITIES = 8192i32; +pub const EOAC_REQUIRE_FULLSIC: EOLE_AUTHENTICATION_CAPABILITIES = 512i32; +pub const EOAC_RESERVED1: EOLE_AUTHENTICATION_CAPABILITIES = 16384i32; +pub const EOAC_SECURE_REFS: EOLE_AUTHENTICATION_CAPABILITIES = 2i32; +pub const EOAC_STATIC_CLOAKING: EOLE_AUTHENTICATION_CAPABILITIES = 32i32; +pub const EXTCONN_CALLABLE: EXTCONN = 4i32; +pub const EXTCONN_STRONG: EXTCONN = 1i32; +pub const EXTCONN_WEAK: EXTCONN = 2i32; +pub const FADF_AUTO: ADVANCED_FEATURE_FLAGS = 1u16; +pub const FADF_BSTR: ADVANCED_FEATURE_FLAGS = 256u16; +pub const FADF_DISPATCH: ADVANCED_FEATURE_FLAGS = 1024u16; +pub const FADF_EMBEDDED: ADVANCED_FEATURE_FLAGS = 4u16; +pub const FADF_FIXEDSIZE: ADVANCED_FEATURE_FLAGS = 16u16; +pub const FADF_HAVEIID: ADVANCED_FEATURE_FLAGS = 64u16; +pub const FADF_HAVEVARTYPE: ADVANCED_FEATURE_FLAGS = 128u16; +pub const FADF_RECORD: ADVANCED_FEATURE_FLAGS = 32u16; +pub const FADF_RESERVED: ADVANCED_FEATURE_FLAGS = 61448u16; +pub const FADF_STATIC: ADVANCED_FEATURE_FLAGS = 2u16; +pub const FADF_UNKNOWN: ADVANCED_FEATURE_FLAGS = 512u16; +pub const FADF_VARIANT: ADVANCED_FEATURE_FLAGS = 2048u16; +pub const FUNCFLAG_FBINDABLE: FUNCFLAGS = 4u16; +pub const FUNCFLAG_FDEFAULTBIND: FUNCFLAGS = 32u16; +pub const FUNCFLAG_FDEFAULTCOLLELEM: FUNCFLAGS = 256u16; +pub const FUNCFLAG_FDISPLAYBIND: FUNCFLAGS = 16u16; +pub const FUNCFLAG_FHIDDEN: FUNCFLAGS = 64u16; +pub const FUNCFLAG_FIMMEDIATEBIND: FUNCFLAGS = 4096u16; +pub const FUNCFLAG_FNONBROWSABLE: FUNCFLAGS = 1024u16; +pub const FUNCFLAG_FREPLACEABLE: FUNCFLAGS = 2048u16; +pub const FUNCFLAG_FREQUESTEDIT: FUNCFLAGS = 8u16; +pub const FUNCFLAG_FRESTRICTED: FUNCFLAGS = 1u16; +pub const FUNCFLAG_FSOURCE: FUNCFLAGS = 2u16; +pub const FUNCFLAG_FUIDEFAULT: FUNCFLAGS = 512u16; +pub const FUNCFLAG_FUSESGETLASTERROR: FUNCFLAGS = 128u16; +pub const FUNC_DISPATCH: FUNCKIND = 4i32; +pub const FUNC_NONVIRTUAL: FUNCKIND = 2i32; +pub const FUNC_PUREVIRTUAL: FUNCKIND = 1i32; +pub const FUNC_STATIC: FUNCKIND = 3i32; +pub const FUNC_VIRTUAL: FUNCKIND = 0i32; +pub const ForcedShutdown: ShutdownType = 1i32; +pub const IDLFLAG_FIN: IDLFLAGS = 1u16; +pub const IDLFLAG_FLCID: IDLFLAGS = 4u16; +pub const IDLFLAG_FOUT: IDLFLAGS = 2u16; +pub const IDLFLAG_FRETVAL: IDLFLAGS = 8u16; +pub const IDLFLAG_NONE: IDLFLAGS = 0u16; +pub const IMPLTYPEFLAG_FDEFAULT: IMPLTYPEFLAGS = 1i32; +pub const IMPLTYPEFLAG_FDEFAULTVTABLE: IMPLTYPEFLAGS = 8i32; +pub const IMPLTYPEFLAG_FRESTRICTED: IMPLTYPEFLAGS = 4i32; +pub const IMPLTYPEFLAG_FSOURCE: IMPLTYPEFLAGS = 2i32; +pub const INVOKE_FUNC: INVOKEKIND = 1i32; +pub const INVOKE_PROPERTYGET: INVOKEKIND = 2i32; +pub const INVOKE_PROPERTYPUT: INVOKEKIND = 4i32; +pub const INVOKE_PROPERTYPUTREF: INVOKEKIND = 8i32; +pub const IdleShutdown: ShutdownType = 0i32; +pub const LOCK_EXCLUSIVE: LOCKTYPE = 2i32; +pub const LOCK_ONLYONCE: LOCKTYPE = 4i32; +pub const LOCK_WRITE: LOCKTYPE = 1i32; +pub const LibraryApplication: ApplicationType = 1i32; +pub const MARSHALINTERFACE_MIN: u32 = 500u32; +pub const MAXLSN: u64 = 9223372036854775807u64; +pub const MEMCTX_MACSYSTEM: MEMCTX = 3i32; +pub const MEMCTX_SAME: MEMCTX = -2i32; +pub const MEMCTX_SHARED: MEMCTX = 2i32; +pub const MEMCTX_TASK: MEMCTX = 1i32; +pub const MEMCTX_UNKNOWN: MEMCTX = -1i32; +pub const MKRREDUCE_ALL: MKRREDUCE = 0i32; +pub const MKRREDUCE_ONE: MKRREDUCE = 196608i32; +pub const MKRREDUCE_THROUGHUSER: MKRREDUCE = 65536i32; +pub const MKRREDUCE_TOUSER: MKRREDUCE = 131072i32; +pub const MKSYS_ANTIMONIKER: MKSYS = 3i32; +pub const MKSYS_CLASSMONIKER: MKSYS = 7i32; +pub const MKSYS_FILEMONIKER: MKSYS = 2i32; +pub const MKSYS_GENERICCOMPOSITE: MKSYS = 1i32; +pub const MKSYS_ITEMMONIKER: MKSYS = 4i32; +pub const MKSYS_LUAMONIKER: MKSYS = 10i32; +pub const MKSYS_NONE: MKSYS = 0i32; +pub const MKSYS_OBJREFMONIKER: MKSYS = 8i32; +pub const MKSYS_POINTERMONIKER: MKSYS = 5i32; +pub const MKSYS_SESSIONMONIKER: MKSYS = 9i32; +pub const MSHCTX_CONTAINER: MSHCTX = 5i32; +pub const MSHCTX_CROSSCTX: MSHCTX = 4i32; +pub const MSHCTX_DIFFERENTMACHINE: MSHCTX = 2i32; +pub const MSHCTX_INPROC: MSHCTX = 3i32; +pub const MSHCTX_LOCAL: MSHCTX = 0i32; +pub const MSHCTX_NOSHAREDMEM: MSHCTX = 1i32; +pub const MSHLFLAGS_NOPING: MSHLFLAGS = 4i32; +pub const MSHLFLAGS_NORMAL: MSHLFLAGS = 0i32; +pub const MSHLFLAGS_RESERVED1: MSHLFLAGS = 8i32; +pub const MSHLFLAGS_RESERVED2: MSHLFLAGS = 16i32; +pub const MSHLFLAGS_RESERVED3: MSHLFLAGS = 32i32; +pub const MSHLFLAGS_RESERVED4: MSHLFLAGS = 64i32; +pub const MSHLFLAGS_TABLESTRONG: MSHLFLAGS = 1i32; +pub const MSHLFLAGS_TABLEWEAK: MSHLFLAGS = 2i32; +pub const PENDINGMSG_CANCELCALL: PENDINGMSG = 0i32; +pub const PENDINGMSG_WAITDEFPROCESS: PENDINGMSG = 2i32; +pub const PENDINGMSG_WAITNOPROCESS: PENDINGMSG = 1i32; +pub const PENDINGTYPE_NESTED: PENDINGTYPE = 2i32; +pub const PENDINGTYPE_TOPLEVEL: PENDINGTYPE = 1i32; +pub const REGCLS_AGILE: REGCLS = 16i32; +pub const REGCLS_MULTIPLEUSE: REGCLS = 1i32; +pub const REGCLS_MULTI_SEPARATE: REGCLS = 2i32; +pub const REGCLS_SINGLEUSE: REGCLS = 0i32; +pub const REGCLS_SURROGATE: REGCLS = 8i32; +pub const REGCLS_SUSPENDED: REGCLS = 4i32; +pub const ROTFLAGS_ALLOWANYCLIENT: ROT_FLAGS = 2u32; +pub const ROTFLAGS_REGISTRATIONKEEPSALIVE: ROT_FLAGS = 1u32; +pub const ROTREGFLAGS_ALLOWANYCLIENT: u32 = 1u32; +pub const RPC_C_AUTHN_LEVEL_CALL: RPC_C_AUTHN_LEVEL = 3u32; +pub const RPC_C_AUTHN_LEVEL_CONNECT: RPC_C_AUTHN_LEVEL = 2u32; +pub const RPC_C_AUTHN_LEVEL_DEFAULT: RPC_C_AUTHN_LEVEL = 0u32; +pub const RPC_C_AUTHN_LEVEL_NONE: RPC_C_AUTHN_LEVEL = 1u32; +pub const RPC_C_AUTHN_LEVEL_PKT: RPC_C_AUTHN_LEVEL = 4u32; +pub const RPC_C_AUTHN_LEVEL_PKT_INTEGRITY: RPC_C_AUTHN_LEVEL = 5u32; +pub const RPC_C_AUTHN_LEVEL_PKT_PRIVACY: RPC_C_AUTHN_LEVEL = 6u32; +pub const RPC_C_IMP_LEVEL_ANONYMOUS: RPC_C_IMP_LEVEL = 1u32; +pub const RPC_C_IMP_LEVEL_DEFAULT: RPC_C_IMP_LEVEL = 0u32; +pub const RPC_C_IMP_LEVEL_DELEGATE: RPC_C_IMP_LEVEL = 4u32; +pub const RPC_C_IMP_LEVEL_IDENTIFY: RPC_C_IMP_LEVEL = 2u32; +pub const RPC_C_IMP_LEVEL_IMPERSONATE: RPC_C_IMP_LEVEL = 3u32; +pub const SD_ACCESSPERMISSIONS: COMSD = 1i32; +pub const SD_ACCESSRESTRICTIONS: COMSD = 3i32; +pub const SD_LAUNCHPERMISSIONS: COMSD = 0i32; +pub const SD_LAUNCHRESTRICTIONS: COMSD = 2i32; +pub const SERVERCALL_ISHANDLED: SERVERCALL = 0i32; +pub const SERVERCALL_REJECTED: SERVERCALL = 1i32; +pub const SERVERCALL_RETRYLATER: SERVERCALL = 2i32; +pub const SERVER_LOCALITY_MACHINE_LOCAL: RPCOPT_SERVER_LOCALITY_VALUES = 1i32; +pub const SERVER_LOCALITY_PROCESS_LOCAL: RPCOPT_SERVER_LOCALITY_VALUES = 0i32; +pub const SERVER_LOCALITY_REMOTE: RPCOPT_SERVER_LOCALITY_VALUES = 2i32; +pub const STATFLAG_DEFAULT: STATFLAG = 0i32; +pub const STATFLAG_NONAME: STATFLAG = 1i32; +pub const STATFLAG_NOOPEN: STATFLAG = 2i32; +pub const STGC_CONSOLIDATE: STGC = 8i32; +pub const STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE: STGC = 4i32; +pub const STGC_DEFAULT: STGC = 0i32; +pub const STGC_ONLYIFCURRENT: STGC = 2i32; +pub const STGC_OVERWRITE: STGC = 1i32; +pub const STGM_CONVERT: STGM = 131072u32; +pub const STGM_CREATE: STGM = 4096u32; +pub const STGM_DELETEONRELEASE: STGM = 67108864u32; +pub const STGM_DIRECT: STGM = 0u32; +pub const STGM_DIRECT_SWMR: STGM = 4194304u32; +pub const STGM_FAILIFTHERE: STGM = 0u32; +pub const STGM_NOSCRATCH: STGM = 1048576u32; +pub const STGM_NOSNAPSHOT: STGM = 2097152u32; +pub const STGM_PRIORITY: STGM = 262144u32; +pub const STGM_READ: STGM = 0u32; +pub const STGM_READWRITE: STGM = 2u32; +pub const STGM_SHARE_DENY_NONE: STGM = 64u32; +pub const STGM_SHARE_DENY_READ: STGM = 48u32; +pub const STGM_SHARE_DENY_WRITE: STGM = 32u32; +pub const STGM_SHARE_EXCLUSIVE: STGM = 16u32; +pub const STGM_SIMPLE: STGM = 134217728u32; +pub const STGM_TRANSACTED: STGM = 65536u32; +pub const STGM_WRITE: STGM = 1u32; +pub const STGTY_LOCKBYTES: STGTY = 3i32; +pub const STGTY_PROPERTY: STGTY = 4i32; +pub const STGTY_REPEAT: i32 = 256i32; +pub const STGTY_STORAGE: STGTY = 1i32; +pub const STGTY_STREAM: STGTY = 2i32; +pub const STG_LAYOUT_INTERLEAVED: i32 = 1i32; +pub const STG_LAYOUT_SEQUENTIAL: i32 = 0i32; +pub const STG_TOEND: i32 = -1i32; +pub const STREAM_SEEK_CUR: STREAM_SEEK = 1u32; +pub const STREAM_SEEK_END: STREAM_SEEK = 2u32; +pub const STREAM_SEEK_SET: STREAM_SEEK = 0u32; +pub const SYS_MAC: SYSKIND = 2i32; +pub const SYS_WIN16: SYSKIND = 0i32; +pub const SYS_WIN32: SYSKIND = 1i32; +pub const SYS_WIN64: SYSKIND = 3i32; +pub const ServerApplication: ApplicationType = 0i32; +pub const THDTYPE_BLOCKMESSAGES: THDTYPE = 0i32; +pub const THDTYPE_PROCESSMESSAGES: THDTYPE = 1i32; +pub const TKIND_ALIAS: TYPEKIND = 6i32; +pub const TKIND_COCLASS: TYPEKIND = 5i32; +pub const TKIND_DISPATCH: TYPEKIND = 4i32; +pub const TKIND_ENUM: TYPEKIND = 0i32; +pub const TKIND_INTERFACE: TYPEKIND = 3i32; +pub const TKIND_MAX: TYPEKIND = 8i32; +pub const TKIND_MODULE: TYPEKIND = 2i32; +pub const TKIND_RECORD: TYPEKIND = 1i32; +pub const TKIND_UNION: TYPEKIND = 7i32; +pub const TYMED_ENHMF: TYMED = 64i32; +pub const TYMED_FILE: TYMED = 2i32; +pub const TYMED_GDI: TYMED = 16i32; +pub const TYMED_HGLOBAL: TYMED = 1i32; +pub const TYMED_ISTORAGE: TYMED = 8i32; +pub const TYMED_ISTREAM: TYMED = 4i32; +pub const TYMED_MFPICT: TYMED = 32i32; +pub const TYMED_NULL: TYMED = 0i32; +pub const TYSPEC_CLSID: TYSPEC = 0i32; +pub const TYSPEC_FILEEXT: TYSPEC = 1i32; +pub const TYSPEC_FILENAME: TYSPEC = 3i32; +pub const TYSPEC_MIMETYPE: TYSPEC = 2i32; +pub const TYSPEC_OBJECTID: TYSPEC = 6i32; +pub const TYSPEC_PACKAGENAME: TYSPEC = 5i32; +pub const TYSPEC_PROGID: TYSPEC = 4i32; +pub const Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME: URI_CREATE_FLAGS = 4u32; +pub const Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME: URI_CREATE_FLAGS = 2u32; +pub const Uri_CREATE_ALLOW_RELATIVE: URI_CREATE_FLAGS = 1u32; +pub const Uri_CREATE_CANONICALIZE: URI_CREATE_FLAGS = 256u32; +pub const Uri_CREATE_CANONICALIZE_ABSOLUTE: URI_CREATE_FLAGS = 131072u32; +pub const Uri_CREATE_CRACK_UNKNOWN_SCHEMES: URI_CREATE_FLAGS = 512u32; +pub const Uri_CREATE_DECODE_EXTRA_INFO: URI_CREATE_FLAGS = 64u32; +pub const Uri_CREATE_FILE_USE_DOS_PATH: URI_CREATE_FLAGS = 32u32; +pub const Uri_CREATE_IE_SETTINGS: URI_CREATE_FLAGS = 8192u32; +pub const Uri_CREATE_NOFRAG: URI_CREATE_FLAGS = 8u32; +pub const Uri_CREATE_NORMALIZE_INTL_CHARACTERS: URI_CREATE_FLAGS = 65536u32; +pub const Uri_CREATE_NO_CANONICALIZE: URI_CREATE_FLAGS = 16u32; +pub const Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES: URI_CREATE_FLAGS = 1024u32; +pub const Uri_CREATE_NO_DECODE_EXTRA_INFO: URI_CREATE_FLAGS = 128u32; +pub const Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS: URI_CREATE_FLAGS = 32768u32; +pub const Uri_CREATE_NO_IE_SETTINGS: URI_CREATE_FLAGS = 16384u32; +pub const Uri_CREATE_NO_PRE_PROCESS_HTML_URI: URI_CREATE_FLAGS = 4096u32; +pub const Uri_CREATE_PRE_PROCESS_HTML_URI: URI_CREATE_FLAGS = 2048u32; +pub const Uri_PROPERTY_ABSOLUTE_URI: Uri_PROPERTY = 0i32; +pub const Uri_PROPERTY_AUTHORITY: Uri_PROPERTY = 1i32; +pub const Uri_PROPERTY_DISPLAY_URI: Uri_PROPERTY = 2i32; +pub const Uri_PROPERTY_DOMAIN: Uri_PROPERTY = 3i32; +pub const Uri_PROPERTY_DWORD_LAST: Uri_PROPERTY = 18i32; +pub const Uri_PROPERTY_DWORD_START: Uri_PROPERTY = 15i32; +pub const Uri_PROPERTY_EXTENSION: Uri_PROPERTY = 4i32; +pub const Uri_PROPERTY_FRAGMENT: Uri_PROPERTY = 5i32; +pub const Uri_PROPERTY_HOST: Uri_PROPERTY = 6i32; +pub const Uri_PROPERTY_HOST_TYPE: Uri_PROPERTY = 15i32; +pub const Uri_PROPERTY_PASSWORD: Uri_PROPERTY = 7i32; +pub const Uri_PROPERTY_PATH: Uri_PROPERTY = 8i32; +pub const Uri_PROPERTY_PATH_AND_QUERY: Uri_PROPERTY = 9i32; +pub const Uri_PROPERTY_PORT: Uri_PROPERTY = 16i32; +pub const Uri_PROPERTY_QUERY: Uri_PROPERTY = 10i32; +pub const Uri_PROPERTY_RAW_URI: Uri_PROPERTY = 11i32; +pub const Uri_PROPERTY_SCHEME: Uri_PROPERTY = 17i32; +pub const Uri_PROPERTY_SCHEME_NAME: Uri_PROPERTY = 12i32; +pub const Uri_PROPERTY_STRING_LAST: Uri_PROPERTY = 14i32; +pub const Uri_PROPERTY_STRING_START: Uri_PROPERTY = 0i32; +pub const Uri_PROPERTY_USER_INFO: Uri_PROPERTY = 13i32; +pub const Uri_PROPERTY_USER_NAME: Uri_PROPERTY = 14i32; +pub const Uri_PROPERTY_ZONE: Uri_PROPERTY = 18i32; +pub const VARFLAG_FBINDABLE: VARFLAGS = 4u16; +pub const VARFLAG_FDEFAULTBIND: VARFLAGS = 32u16; +pub const VARFLAG_FDEFAULTCOLLELEM: VARFLAGS = 256u16; +pub const VARFLAG_FDISPLAYBIND: VARFLAGS = 16u16; +pub const VARFLAG_FHIDDEN: VARFLAGS = 64u16; +pub const VARFLAG_FIMMEDIATEBIND: VARFLAGS = 4096u16; +pub const VARFLAG_FNONBROWSABLE: VARFLAGS = 1024u16; +pub const VARFLAG_FREADONLY: VARFLAGS = 1u16; +pub const VARFLAG_FREPLACEABLE: VARFLAGS = 2048u16; +pub const VARFLAG_FREQUESTEDIT: VARFLAGS = 8u16; +pub const VARFLAG_FRESTRICTED: VARFLAGS = 128u16; +pub const VARFLAG_FSOURCE: VARFLAGS = 2u16; +pub const VARFLAG_FUIDEFAULT: VARFLAGS = 512u16; +pub const VAR_CONST: VARKIND = 2i32; +pub const VAR_DISPATCH: VARKIND = 3i32; +pub const VAR_PERINSTANCE: VARKIND = 0i32; +pub const VAR_STATIC: VARKIND = 1i32; +pub type ADVANCED_FEATURE_FLAGS = u16; +pub type ADVF = i32; +pub type APTTYPE = i32; +pub type APTTYPEQUALIFIER = i32; +pub type ApplicationType = i32; +pub type BINDINFOF = i32; +pub type BIND_FLAGS = i32; +pub type CALLCONV = i32; +pub type CALLTYPE = i32; +pub type CLSCTX = u32; +pub type COINIT = i32; +pub type COINITBASE = i32; +pub type COMSD = i32; +pub type COWAIT_FLAGS = i32; +pub type CO_MARSHALING_CONTEXT_ATTRIBUTES = i32; +pub type CWMO_FLAGS = i32; +pub type DATADIR = i32; +pub type DCOM_CALL_STATE = i32; +pub type DESCKIND = i32; +pub type DISPATCH_FLAGS = u16; +pub type DVASPECT = u32; +pub type EOLE_AUTHENTICATION_CAPABILITIES = i32; +pub type EXTCONN = i32; +pub type FUNCFLAGS = u16; +pub type FUNCKIND = i32; +pub type GLOBALOPT_EH_VALUES = i32; +pub type GLOBALOPT_PROPERTIES = i32; +pub type GLOBALOPT_RO_FLAGS = i32; +pub type GLOBALOPT_RPCTP_VALUES = i32; +pub type GLOBALOPT_UNMARSHALING_POLICY_VALUES = i32; +pub type IDLFLAGS = u16; +pub type IMPLTYPEFLAGS = i32; +pub type INVOKEKIND = i32; +pub type LOCKTYPE = i32; +pub type MEMCTX = i32; +pub type MKRREDUCE = i32; +pub type MKSYS = i32; +pub type MSHCTX = i32; +pub type MSHLFLAGS = i32; +pub type PENDINGMSG = i32; +pub type PENDINGTYPE = i32; +pub type REGCLS = i32; +pub type ROT_FLAGS = u32; +pub type RPCOPT_PROPERTIES = i32; +pub type RPCOPT_SERVER_LOCALITY_VALUES = i32; +pub type RPC_C_AUTHN_LEVEL = u32; +pub type RPC_C_IMP_LEVEL = u32; +pub type SERVERCALL = i32; +pub type STATFLAG = i32; +pub type STGC = i32; +pub type STGM = u32; +pub type STGTY = i32; +pub type STREAM_SEEK = u32; +pub type SYSKIND = i32; +pub type ShutdownType = i32; +pub type THDTYPE = i32; +pub type TYMED = i32; +pub type TYPEKIND = i32; +pub type TYSPEC = i32; +pub type URI_CREATE_FLAGS = u32; +pub type Uri_PROPERTY = i32; +pub type VARFLAGS = u16; +pub type VARKIND = i32; +#[repr(C)] +pub struct AUTHENTICATEINFO { + pub dwFlags: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for AUTHENTICATEINFO {} +impl ::core::clone::Clone for AUTHENTICATEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security\"`, `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security", feature = "Win32_System_Com_StructuredStorage"))] +pub struct BINDINFO { + pub cbSize: u32, + pub szExtraInfo: ::windows_sys::core::PWSTR, + pub stgmedData: STGMEDIUM, + pub grfBindInfoF: u32, + pub dwBindVerb: u32, + pub szCustomVerb: ::windows_sys::core::PWSTR, + pub cbstgmedData: u32, + pub dwOptions: u32, + pub dwOptionsFlags: u32, + pub dwCodePage: u32, + pub securityAttributes: super::super::Security::SECURITY_ATTRIBUTES, + pub iid: ::windows_sys::core::GUID, + pub pUnk: ::windows_sys::core::IUnknown, + pub dwReserved: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::marker::Copy for BINDINFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::clone::Clone for BINDINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub union BINDPTR { + pub lpfuncdesc: *mut FUNCDESC, + pub lpvardesc: *mut VARDESC, + pub lptcomp: ITypeComp, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for BINDPTR {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for BINDPTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BIND_OPTS { + pub cbStruct: u32, + pub grfFlags: u32, + pub grfMode: u32, + pub dwTickCountDeadline: u32, +} +impl ::core::marker::Copy for BIND_OPTS {} +impl ::core::clone::Clone for BIND_OPTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BIND_OPTS2 { + pub Base: BIND_OPTS, + pub dwTrackFlags: u32, + pub dwClassContext: u32, + pub locale: u32, + pub pServerInfo: *mut COSERVERINFO, +} +impl ::core::marker::Copy for BIND_OPTS2 {} +impl ::core::clone::Clone for BIND_OPTS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BIND_OPTS3 { + pub Base: BIND_OPTS2, + pub hwnd: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BIND_OPTS3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BIND_OPTS3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BLOB { + pub cbSize: u32, + pub pBlobData: *mut u8, +} +impl ::core::marker::Copy for BLOB {} +impl ::core::clone::Clone for BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BYTE_BLOB { + pub clSize: u32, + pub abData: [u8; 1], +} +impl ::core::marker::Copy for BYTE_BLOB {} +impl ::core::clone::Clone for BYTE_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BYTE_SIZEDARR { + pub clSize: u32, + pub pData: *mut u8, +} +impl ::core::marker::Copy for BYTE_SIZEDARR {} +impl ::core::clone::Clone for BYTE_SIZEDARR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CATEGORYINFO { + pub catid: ::windows_sys::core::GUID, + pub lcid: u32, + pub szDescription: [u16; 128], +} +impl ::core::marker::Copy for CATEGORYINFO {} +impl ::core::clone::Clone for CATEGORYINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COAUTHIDENTITY { + pub User: *mut u16, + pub UserLength: u32, + pub Domain: *mut u16, + pub DomainLength: u32, + pub Password: *mut u16, + pub PasswordLength: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for COAUTHIDENTITY {} +impl ::core::clone::Clone for COAUTHIDENTITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COAUTHINFO { + pub dwAuthnSvc: u32, + pub dwAuthzSvc: u32, + pub pwszServerPrincName: ::windows_sys::core::PWSTR, + pub dwAuthnLevel: u32, + pub dwImpersonationLevel: u32, + pub pAuthIdentityData: *mut COAUTHIDENTITY, + pub dwCapabilities: u32, +} +impl ::core::marker::Copy for COAUTHINFO {} +impl ::core::clone::Clone for COAUTHINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONNECTDATA { + pub pUnk: ::windows_sys::core::IUnknown, + pub dwCookie: u32, +} +impl ::core::marker::Copy for CONNECTDATA {} +impl ::core::clone::Clone for CONNECTDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COSERVERINFO { + pub dwReserved1: u32, + pub pwszName: ::windows_sys::core::PWSTR, + pub pAuthInfo: *mut COAUTHINFO, + pub dwReserved2: u32, +} +impl ::core::marker::Copy for COSERVERINFO {} +impl ::core::clone::Clone for COSERVERINFO { + fn clone(&self) -> Self { + *self + } +} +pub type CO_DEVICE_CATALOG_COOKIE = isize; +pub type CO_MTA_USAGE_COOKIE = isize; +#[repr(C)] +pub struct CSPLATFORM { + pub dwPlatformId: u32, + pub dwVersionHi: u32, + pub dwVersionLo: u32, + pub dwProcessorArch: u32, +} +impl ::core::marker::Copy for CSPLATFORM {} +impl ::core::clone::Clone for CSPLATFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct CUSTDATA { + pub cCustData: u32, + pub prgCustData: *mut CUSTDATAITEM, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for CUSTDATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for CUSTDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct CUSTDATAITEM { + pub guid: ::windows_sys::core::GUID, + pub varValue: super::Variant::VARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for CUSTDATAITEM {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for CUSTDATAITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CY { + pub Anonymous: CY_0, + pub int64: i64, +} +impl ::core::marker::Copy for CY {} +impl ::core::clone::Clone for CY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CY_0 { + pub Lo: u32, + pub Hi: i32, +} +impl ::core::marker::Copy for CY_0 {} +impl ::core::clone::Clone for CY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ComCallData { + pub dwDispid: u32, + pub dwReserved: u32, + pub pUserDefined: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for ComCallData {} +impl ::core::clone::Clone for ComCallData { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ContextProperty { + pub policyId: ::windows_sys::core::GUID, + pub flags: u32, + pub pUnk: ::windows_sys::core::IUnknown, +} +impl ::core::marker::Copy for ContextProperty {} +impl ::core::clone::Clone for ContextProperty { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DISPPARAMS { + pub rgvarg: *mut super::Variant::VARIANT, + pub rgdispidNamedArgs: *mut i32, + pub cArgs: u32, + pub cNamedArgs: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DISPPARAMS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DISPPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DVTARGETDEVICE { + pub tdSize: u32, + pub tdDriverNameOffset: u16, + pub tdDeviceNameOffset: u16, + pub tdPortNameOffset: u16, + pub tdExtDevmodeOffset: u16, + pub tdData: [u8; 1], +} +impl ::core::marker::Copy for DVTARGETDEVICE {} +impl ::core::clone::Clone for DVTARGETDEVICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DWORD_BLOB { + pub clSize: u32, + pub alData: [u32; 1], +} +impl ::core::marker::Copy for DWORD_BLOB {} +impl ::core::clone::Clone for DWORD_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DWORD_SIZEDARR { + pub clSize: u32, + pub pData: *mut u32, +} +impl ::core::marker::Copy for DWORD_SIZEDARR {} +impl ::core::clone::Clone for DWORD_SIZEDARR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct ELEMDESC { + pub tdesc: TYPEDESC, + pub Anonymous: ELEMDESC_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for ELEMDESC {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for ELEMDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub union ELEMDESC_0 { + pub idldesc: IDLDESC, + pub paramdesc: super::Ole::PARAMDESC, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for ELEMDESC_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for ELEMDESC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXCEPINFO { + pub wCode: u16, + pub wReserved: u16, + pub bstrSource: ::windows_sys::core::BSTR, + pub bstrDescription: ::windows_sys::core::BSTR, + pub bstrHelpFile: ::windows_sys::core::BSTR, + pub dwHelpContext: u32, + pub pvReserved: *mut ::core::ffi::c_void, + pub pfnDeferredFillIn: LPEXCEPFINO_DEFERRED_FILLIN, + pub scode: i32, +} +impl ::core::marker::Copy for EXCEPINFO {} +impl ::core::clone::Clone for EXCEPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLAGGED_BYTE_BLOB { + pub fFlags: u32, + pub clSize: u32, + pub abData: [u8; 1], +} +impl ::core::marker::Copy for FLAGGED_BYTE_BLOB {} +impl ::core::clone::Clone for FLAGGED_BYTE_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLAGGED_WORD_BLOB { + pub fFlags: u32, + pub clSize: u32, + pub asData: [u16; 1], +} +impl ::core::marker::Copy for FLAGGED_WORD_BLOB {} +impl ::core::clone::Clone for FLAGGED_WORD_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +pub struct FLAG_STGMEDIUM { + pub ContextFlags: i32, + pub fPassOwnership: i32, + pub Stgmed: STGMEDIUM, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::marker::Copy for FLAG_STGMEDIUM {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::clone::Clone for FLAG_STGMEDIUM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FORMATETC { + pub cfFormat: u16, + pub ptd: *mut DVTARGETDEVICE, + pub dwAspect: u32, + pub lindex: i32, + pub tymed: u32, +} +impl ::core::marker::Copy for FORMATETC {} +impl ::core::clone::Clone for FORMATETC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct FUNCDESC { + pub memid: i32, + pub lprgscode: *mut i32, + pub lprgelemdescParam: *mut ELEMDESC, + pub funckind: FUNCKIND, + pub invkind: INVOKEKIND, + pub callconv: CALLCONV, + pub cParams: i16, + pub cParamsOpt: i16, + pub oVft: i16, + pub cScodes: i16, + pub elemdescFunc: ELEMDESC, + pub wFuncFlags: FUNCFLAGS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for FUNCDESC {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for FUNCDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_System_SystemServices\"`"] +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +pub struct GDI_OBJECT { + pub ObjectType: u32, + pub u: GDI_OBJECT_0, +} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +impl ::core::marker::Copy for GDI_OBJECT {} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +impl ::core::clone::Clone for GDI_OBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_System_SystemServices\"`"] +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +pub union GDI_OBJECT_0 { + pub hBitmap: *mut super::SystemServices::userHBITMAP, + pub hPalette: *mut super::SystemServices::userHPALETTE, + pub hGeneric: *mut super::SystemServices::userHGLOBAL, +} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +impl ::core::marker::Copy for GDI_OBJECT_0 {} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +impl ::core::clone::Clone for GDI_OBJECT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HYPER_SIZEDARR { + pub clSize: u32, + pub pData: *mut i64, +} +impl ::core::marker::Copy for HYPER_SIZEDARR {} +impl ::core::clone::Clone for HYPER_SIZEDARR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IDLDESC { + pub dwReserved: usize, + pub wIDLFlags: IDLFLAGS, +} +impl ::core::marker::Copy for IDLDESC {} +impl ::core::clone::Clone for IDLDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERFACEINFO { + pub pUnk: ::windows_sys::core::IUnknown, + pub iid: ::windows_sys::core::GUID, + pub wMethod: u16, +} +impl ::core::marker::Copy for INTERFACEINFO {} +impl ::core::clone::Clone for INTERFACEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MULTI_QI { + pub pIID: *const ::windows_sys::core::GUID, + pub pItf: ::windows_sys::core::IUnknown, + pub hr: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for MULTI_QI {} +impl ::core::clone::Clone for MULTI_QI { + fn clone(&self) -> Self { + *self + } +} +pub type MachineGlobalObjectTableRegistrationToken = isize; +#[repr(C)] +pub struct QUERYCONTEXT { + pub dwContext: u32, + pub Platform: CSPLATFORM, + pub Locale: u32, + pub dwVersionHi: u32, + pub dwVersionLo: u32, +} +impl ::core::marker::Copy for QUERYCONTEXT {} +impl ::core::clone::Clone for QUERYCONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPCOLEMESSAGE { + pub reserved1: *mut ::core::ffi::c_void, + pub dataRepresentation: u32, + pub Buffer: *mut ::core::ffi::c_void, + pub cbBuffer: u32, + pub iMethod: u32, + pub reserved2: [*mut ::core::ffi::c_void; 5], + pub rpcFlags: u32, +} +impl ::core::marker::Copy for RPCOLEMESSAGE {} +impl ::core::clone::Clone for RPCOLEMESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RemSTGMEDIUM { + pub tymed: u32, + pub dwHandleType: u32, + pub pData: u32, + pub pUnkForRelease: u32, + pub cbData: u32, + pub data: [u8; 1], +} +impl ::core::marker::Copy for RemSTGMEDIUM {} +impl ::core::clone::Clone for RemSTGMEDIUM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SAFEARRAY { + pub cDims: u16, + pub fFeatures: ADVANCED_FEATURE_FLAGS, + pub cbElements: u32, + pub cLocks: u32, + pub pvData: *mut ::core::ffi::c_void, + pub rgsabound: [SAFEARRAYBOUND; 1], +} +impl ::core::marker::Copy for SAFEARRAY {} +impl ::core::clone::Clone for SAFEARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SAFEARRAYBOUND { + pub cElements: u32, + pub lLbound: i32, +} +impl ::core::marker::Copy for SAFEARRAYBOUND {} +impl ::core::clone::Clone for SAFEARRAYBOUND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SChannelHookCallInfo { + pub iid: ::windows_sys::core::GUID, + pub cbSize: u32, + pub uCausality: ::windows_sys::core::GUID, + pub dwServerPid: u32, + pub iMethod: u32, + pub pObject: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SChannelHookCallInfo {} +impl ::core::clone::Clone for SChannelHookCallInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOLE_AUTHENTICATION_INFO { + pub dwAuthnSvc: u32, + pub dwAuthzSvc: u32, + pub pAuthInfo: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SOLE_AUTHENTICATION_INFO {} +impl ::core::clone::Clone for SOLE_AUTHENTICATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOLE_AUTHENTICATION_LIST { + pub cAuthInfo: u32, + pub aAuthInfo: *mut SOLE_AUTHENTICATION_INFO, +} +impl ::core::marker::Copy for SOLE_AUTHENTICATION_LIST {} +impl ::core::clone::Clone for SOLE_AUTHENTICATION_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOLE_AUTHENTICATION_SERVICE { + pub dwAuthnSvc: u32, + pub dwAuthzSvc: u32, + pub pPrincipalName: ::windows_sys::core::PWSTR, + pub hr: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for SOLE_AUTHENTICATION_SERVICE {} +impl ::core::clone::Clone for SOLE_AUTHENTICATION_SERVICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STATDATA { + pub formatetc: FORMATETC, + pub advf: u32, + pub pAdvSink: IAdviseSink, + pub dwConnection: u32, +} +impl ::core::marker::Copy for STATDATA {} +impl ::core::clone::Clone for STATDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STATSTG { + pub pwcsName: ::windows_sys::core::PWSTR, + pub r#type: u32, + pub cbSize: u64, + pub mtime: super::super::Foundation::FILETIME, + pub ctime: super::super::Foundation::FILETIME, + pub atime: super::super::Foundation::FILETIME, + pub grfMode: STGM, + pub grfLocksSupported: u32, + pub clsid: ::windows_sys::core::GUID, + pub grfStateBits: u32, + pub reserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STATSTG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STATSTG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +pub struct STGMEDIUM { + pub tymed: u32, + pub u: STGMEDIUM_0, + pub pUnkForRelease: ::windows_sys::core::IUnknown, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::marker::Copy for STGMEDIUM {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::clone::Clone for STGMEDIUM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +pub union STGMEDIUM_0 { + pub hBitmap: super::super::Graphics::Gdi::HBITMAP, + pub hMetaFilePict: *mut ::core::ffi::c_void, + pub hEnhMetaFile: super::super::Graphics::Gdi::HENHMETAFILE, + pub hGlobal: super::super::Foundation::HGLOBAL, + pub lpszFileName: ::windows_sys::core::PWSTR, + pub pstm: IStream, + pub pstg: StructuredStorage::IStorage, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::marker::Copy for STGMEDIUM_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::clone::Clone for STGMEDIUM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct StorageLayout { + pub LayoutType: u32, + pub pwcsElementName: ::windows_sys::core::PWSTR, + pub cOffset: i64, + pub cBytes: i64, +} +impl ::core::marker::Copy for StorageLayout {} +impl ::core::clone::Clone for StorageLayout { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TLIBATTR { + pub guid: ::windows_sys::core::GUID, + pub lcid: u32, + pub syskind: SYSKIND, + pub wMajorVerNum: u16, + pub wMinorVerNum: u16, + pub wLibFlags: u16, +} +impl ::core::marker::Copy for TLIBATTR {} +impl ::core::clone::Clone for TLIBATTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct TYPEATTR { + pub guid: ::windows_sys::core::GUID, + pub lcid: u32, + pub dwReserved: u32, + pub memidConstructor: i32, + pub memidDestructor: i32, + pub lpstrSchema: ::windows_sys::core::PWSTR, + pub cbSizeInstance: u32, + pub typekind: TYPEKIND, + pub cFuncs: u16, + pub cVars: u16, + pub cImplTypes: u16, + pub cbSizeVft: u16, + pub cbAlignment: u16, + pub wTypeFlags: u16, + pub wMajorVerNum: u16, + pub wMinorVerNum: u16, + pub tdescAlias: TYPEDESC, + pub idldescType: IDLDESC, +} +#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for TYPEATTR {} +#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for TYPEATTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct TYPEDESC { + pub Anonymous: TYPEDESC_0, + pub vt: super::Variant::VARENUM, +} +#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for TYPEDESC {} +#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for TYPEDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub union TYPEDESC_0 { + pub lptdesc: *mut TYPEDESC, + pub lpadesc: *mut super::Ole::ARRAYDESC, + pub hreftype: u32, +} +#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for TYPEDESC_0 {} +#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for TYPEDESC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct VARDESC { + pub memid: i32, + pub lpstrSchema: ::windows_sys::core::PWSTR, + pub Anonymous: VARDESC_0, + pub elemdescVar: ELEMDESC, + pub wVarFlags: VARFLAGS, + pub varkind: VARKIND, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for VARDESC {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for VARDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub union VARDESC_0 { + pub oInst: u32, + pub lpvarValue: *mut super::Variant::VARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for VARDESC_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for VARDESC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WORD_BLOB { + pub clSize: u32, + pub asData: [u16; 1], +} +impl ::core::marker::Copy for WORD_BLOB {} +impl ::core::clone::Clone for WORD_BLOB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WORD_SIZEDARR { + pub clSize: u32, + pub pData: *mut u16, +} +impl ::core::marker::Copy for WORD_SIZEDARR {} +impl ::core::clone::Clone for WORD_SIZEDARR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct uCLSSPEC { + pub tyspec: u32, + pub tagged_union: uCLSSPEC_0, +} +impl ::core::marker::Copy for uCLSSPEC {} +impl ::core::clone::Clone for uCLSSPEC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union uCLSSPEC_0 { + pub clsid: ::windows_sys::core::GUID, + pub pFileExt: ::windows_sys::core::PWSTR, + pub pMimeType: ::windows_sys::core::PWSTR, + pub pProgId: ::windows_sys::core::PWSTR, + pub pFileName: ::windows_sys::core::PWSTR, + pub ByName: uCLSSPEC_0_0, + pub ByObjectId: uCLSSPEC_0_1, +} +impl ::core::marker::Copy for uCLSSPEC_0 {} +impl ::core::clone::Clone for uCLSSPEC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct uCLSSPEC_0_0 { + pub pPackageName: ::windows_sys::core::PWSTR, + pub PolicyId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for uCLSSPEC_0_0 {} +impl ::core::clone::Clone for uCLSSPEC_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct uCLSSPEC_0_1 { + pub ObjectId: ::windows_sys::core::GUID, + pub PolicyId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for uCLSSPEC_0_1 {} +impl ::core::clone::Clone for uCLSSPEC_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_System_SystemServices\"`"] +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +pub struct userFLAG_STGMEDIUM { + pub ContextFlags: i32, + pub fPassOwnership: i32, + pub Stgmed: userSTGMEDIUM, +} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +impl ::core::marker::Copy for userFLAG_STGMEDIUM {} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +impl ::core::clone::Clone for userFLAG_STGMEDIUM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_System_SystemServices\"`"] +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +pub struct userSTGMEDIUM { + pub u: userSTGMEDIUM_0, + pub pUnkForRelease: ::windows_sys::core::IUnknown, +} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +impl ::core::marker::Copy for userSTGMEDIUM {} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +impl ::core::clone::Clone for userSTGMEDIUM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_System_SystemServices\"`"] +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +pub struct userSTGMEDIUM_0 { + pub tymed: u32, + pub u: userSTGMEDIUM_0_0, +} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +impl ::core::marker::Copy for userSTGMEDIUM_0 {} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +impl ::core::clone::Clone for userSTGMEDIUM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_System_SystemServices\"`"] +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +pub union userSTGMEDIUM_0_0 { + pub hMetaFilePict: *mut super::SystemServices::userHMETAFILEPICT, + pub hHEnhMetaFile: *mut super::SystemServices::userHENHMETAFILE, + pub hGdiHandle: *mut GDI_OBJECT, + pub hGlobal: *mut super::SystemServices::userHGLOBAL, + pub lpszFileName: ::windows_sys::core::PWSTR, + pub pstm: *mut BYTE_BLOB, + pub pstg: *mut BYTE_BLOB, +} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +impl ::core::marker::Copy for userSTGMEDIUM_0_0 {} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_SystemServices"))] +impl ::core::clone::Clone for userSTGMEDIUM_0_0 { + fn clone(&self) -> Self { + *self + } +} +pub type LPEXCEPFINO_DEFERRED_FILLIN = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type LPFNCANUNLOADNOW = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type LPFNGETCLASSOBJECT = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PFNCONTEXTCALL = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/ComponentServices/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/ComponentServices/mod.rs new file mode 100644 index 000000000..4eafa2b58 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/ComponentServices/mod.rs @@ -0,0 +1,791 @@ +::windows_targets::link!("comsvcs.dll" "system" fn CoCreateActivity(piunknown : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, ppobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("comsvcs.dll" "system" fn CoEnterServiceDomain(pconfigobject : ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn CoGetDefaultContext(apttype : super::Com:: APTTYPE, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("comsvcs.dll" "system" fn CoLeaveServiceDomain(punkstatus : ::windows_sys::core::IUnknown) -> ()); +::windows_targets::link!("mtxdm.dll" "cdecl" fn GetDispenserManager(param0 : *mut IDispenserManager) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("comsvcs.dll" "system" fn GetManagedExtensions(dwexts : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("comsvcs.dll" "system" fn MTSCreateActivity(riid : *const ::windows_sys::core::GUID, ppobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("comsvcs.dll" "cdecl" fn RecycleSurrogate(lreasoncode : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("comsvcs.dll" "cdecl" fn SafeRef(rid : *const ::windows_sys::core::GUID, punk : ::windows_sys::core::IUnknown) -> *mut ::core::ffi::c_void); +pub type ContextInfo = *mut ::core::ffi::c_void; +pub type ContextInfo2 = *mut ::core::ffi::c_void; +pub type IAppDomainHelper = *mut ::core::ffi::c_void; +pub type IAssemblyLocator = *mut ::core::ffi::c_void; +pub type IAsyncErrorNotify = *mut ::core::ffi::c_void; +pub type ICOMAdminCatalog = *mut ::core::ffi::c_void; +pub type ICOMAdminCatalog2 = *mut ::core::ffi::c_void; +pub type ICOMLBArguments = *mut ::core::ffi::c_void; +pub type ICatalogCollection = *mut ::core::ffi::c_void; +pub type ICatalogObject = *mut ::core::ffi::c_void; +pub type ICheckSxsConfig = *mut ::core::ffi::c_void; +pub type IComActivityEvents = *mut ::core::ffi::c_void; +pub type IComApp2Events = *mut ::core::ffi::c_void; +pub type IComAppEvents = *mut ::core::ffi::c_void; +pub type IComCRMEvents = *mut ::core::ffi::c_void; +pub type IComExceptionEvents = *mut ::core::ffi::c_void; +pub type IComIdentityEvents = *mut ::core::ffi::c_void; +pub type IComInstance2Events = *mut ::core::ffi::c_void; +pub type IComInstanceEvents = *mut ::core::ffi::c_void; +pub type IComLTxEvents = *mut ::core::ffi::c_void; +pub type IComMethod2Events = *mut ::core::ffi::c_void; +pub type IComMethodEvents = *mut ::core::ffi::c_void; +pub type IComMtaThreadPoolKnobs = *mut ::core::ffi::c_void; +pub type IComObjectConstruction2Events = *mut ::core::ffi::c_void; +pub type IComObjectConstructionEvents = *mut ::core::ffi::c_void; +pub type IComObjectEvents = *mut ::core::ffi::c_void; +pub type IComObjectPool2Events = *mut ::core::ffi::c_void; +pub type IComObjectPoolEvents = *mut ::core::ffi::c_void; +pub type IComObjectPoolEvents2 = *mut ::core::ffi::c_void; +pub type IComQCEvents = *mut ::core::ffi::c_void; +pub type IComResourceEvents = *mut ::core::ffi::c_void; +pub type IComSecurityEvents = *mut ::core::ffi::c_void; +pub type IComStaThreadPoolKnobs = *mut ::core::ffi::c_void; +pub type IComStaThreadPoolKnobs2 = *mut ::core::ffi::c_void; +pub type IComThreadEvents = *mut ::core::ffi::c_void; +pub type IComTrackingInfoCollection = *mut ::core::ffi::c_void; +pub type IComTrackingInfoEvents = *mut ::core::ffi::c_void; +pub type IComTrackingInfoObject = *mut ::core::ffi::c_void; +pub type IComTrackingInfoProperties = *mut ::core::ffi::c_void; +pub type IComTransaction2Events = *mut ::core::ffi::c_void; +pub type IComTransactionEvents = *mut ::core::ffi::c_void; +pub type IComUserEvent = *mut ::core::ffi::c_void; +pub type IContextProperties = *mut ::core::ffi::c_void; +pub type IContextSecurityPerimeter = *mut ::core::ffi::c_void; +pub type IContextState = *mut ::core::ffi::c_void; +pub type ICreateWithLocalTransaction = *mut ::core::ffi::c_void; +pub type ICreateWithTipTransactionEx = *mut ::core::ffi::c_void; +pub type ICreateWithTransactionEx = *mut ::core::ffi::c_void; +pub type ICrmCompensator = *mut ::core::ffi::c_void; +pub type ICrmCompensatorVariants = *mut ::core::ffi::c_void; +pub type ICrmFormatLogRecords = *mut ::core::ffi::c_void; +pub type ICrmLogControl = *mut ::core::ffi::c_void; +pub type ICrmMonitor = *mut ::core::ffi::c_void; +pub type ICrmMonitorClerks = *mut ::core::ffi::c_void; +pub type ICrmMonitorLogRecords = *mut ::core::ffi::c_void; +pub type IDispenserDriver = *mut ::core::ffi::c_void; +pub type IDispenserManager = *mut ::core::ffi::c_void; +pub type IEnumNames = *mut ::core::ffi::c_void; +pub type IEventServerTrace = *mut ::core::ffi::c_void; +pub type IGetAppTrackerData = *mut ::core::ffi::c_void; +pub type IGetContextProperties = *mut ::core::ffi::c_void; +pub type IGetSecurityCallContext = *mut ::core::ffi::c_void; +pub type IHolder = *mut ::core::ffi::c_void; +pub type ILBEvents = *mut ::core::ffi::c_void; +pub type IMTSActivity = *mut ::core::ffi::c_void; +pub type IMTSCall = *mut ::core::ffi::c_void; +pub type IMTSLocator = *mut ::core::ffi::c_void; +pub type IManagedActivationEvents = *mut ::core::ffi::c_void; +pub type IManagedObjectInfo = *mut ::core::ffi::c_void; +pub type IManagedPoolAction = *mut ::core::ffi::c_void; +pub type IManagedPooledObj = *mut ::core::ffi::c_void; +pub type IMessageMover = *mut ::core::ffi::c_void; +pub type IMtsEventInfo = *mut ::core::ffi::c_void; +pub type IMtsEvents = *mut ::core::ffi::c_void; +pub type IMtsGrp = *mut ::core::ffi::c_void; +pub type IObjPool = *mut ::core::ffi::c_void; +pub type IObjectConstruct = *mut ::core::ffi::c_void; +pub type IObjectConstructString = *mut ::core::ffi::c_void; +pub type IObjectContext = *mut ::core::ffi::c_void; +pub type IObjectContextActivity = *mut ::core::ffi::c_void; +pub type IObjectContextInfo = *mut ::core::ffi::c_void; +pub type IObjectContextInfo2 = *mut ::core::ffi::c_void; +pub type IObjectContextTip = *mut ::core::ffi::c_void; +pub type IObjectControl = *mut ::core::ffi::c_void; +pub type IPlaybackControl = *mut ::core::ffi::c_void; +pub type IPoolManager = *mut ::core::ffi::c_void; +pub type IProcessInitializer = *mut ::core::ffi::c_void; +pub type ISecurityCallContext = *mut ::core::ffi::c_void; +pub type ISecurityCallersColl = *mut ::core::ffi::c_void; +pub type ISecurityIdentityColl = *mut ::core::ffi::c_void; +pub type ISecurityProperty = *mut ::core::ffi::c_void; +pub type ISelectCOMLBServer = *mut ::core::ffi::c_void; +pub type ISendMethodEvents = *mut ::core::ffi::c_void; +pub type IServiceActivity = *mut ::core::ffi::c_void; +pub type IServiceCall = *mut ::core::ffi::c_void; +pub type IServiceComTIIntrinsicsConfig = *mut ::core::ffi::c_void; +pub type IServiceIISIntrinsicsConfig = *mut ::core::ffi::c_void; +pub type IServiceInheritanceConfig = *mut ::core::ffi::c_void; +pub type IServicePartitionConfig = *mut ::core::ffi::c_void; +pub type IServicePool = *mut ::core::ffi::c_void; +pub type IServicePoolConfig = *mut ::core::ffi::c_void; +pub type IServiceSxsConfig = *mut ::core::ffi::c_void; +pub type IServiceSynchronizationConfig = *mut ::core::ffi::c_void; +pub type IServiceSysTxnConfig = *mut ::core::ffi::c_void; +pub type IServiceThreadPoolConfig = *mut ::core::ffi::c_void; +pub type IServiceTrackerConfig = *mut ::core::ffi::c_void; +pub type IServiceTransactionConfig = *mut ::core::ffi::c_void; +pub type IServiceTransactionConfigBase = *mut ::core::ffi::c_void; +pub type ISharedProperty = *mut ::core::ffi::c_void; +pub type ISharedPropertyGroup = *mut ::core::ffi::c_void; +pub type ISharedPropertyGroupManager = *mut ::core::ffi::c_void; +pub type ISystemAppEventData = *mut ::core::ffi::c_void; +pub type IThreadPoolKnobs = *mut ::core::ffi::c_void; +pub type ITransactionContext = *mut ::core::ffi::c_void; +pub type ITransactionContextEx = *mut ::core::ffi::c_void; +pub type ITransactionProperty = *mut ::core::ffi::c_void; +pub type ITransactionProxy = *mut ::core::ffi::c_void; +pub type ITransactionResourcePool = *mut ::core::ffi::c_void; +pub type ITransactionStatus = *mut ::core::ffi::c_void; +pub type ITxProxyHolder = *mut ::core::ffi::c_void; +pub type ObjectContext = *mut ::core::ffi::c_void; +pub type ObjectControl = *mut ::core::ffi::c_void; +pub type SecurityProperty = *mut ::core::ffi::c_void; +pub const APPTYPE_LIBRARY: COMPLUS_APPTYPE = 0i32; +pub const APPTYPE_SERVER: COMPLUS_APPTYPE = 1i32; +pub const APPTYPE_SWC: COMPLUS_APPTYPE = 2i32; +pub const APPTYPE_UNKNOWN: COMPLUS_APPTYPE = -1i32; +pub const AppDomainHelper: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xef24f689_14f8_4d92_b4af_d7b1f0e70fd4); +pub const ByotServerEx: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0aa_7f19_11d2_978e_0000f8757e2a); +pub const COMAdmin32BitComponent: COMAdminComponentType = 1i32; +pub const COMAdmin64BitComponent: COMAdminComponentType = 2i32; +pub const COMAdminAccessChecksApplicationComponentLevel: COMAdminAccessChecksLevelOptions = 1i32; +pub const COMAdminAccessChecksApplicationLevel: COMAdminAccessChecksLevelOptions = 0i32; +pub const COMAdminActivationInproc: COMAdminActivationOptions = 0i32; +pub const COMAdminActivationLocal: COMAdminActivationOptions = 1i32; +pub const COMAdminAuthenticationCall: COMAdminAuthenticationLevelOptions = 3i32; +pub const COMAdminAuthenticationCapabilitiesDynamicCloaking: COMAdminAuthenticationCapabilitiesOptions = 64i32; +pub const COMAdminAuthenticationCapabilitiesNone: COMAdminAuthenticationCapabilitiesOptions = 0i32; +pub const COMAdminAuthenticationCapabilitiesSecureReference: COMAdminAuthenticationCapabilitiesOptions = 2i32; +pub const COMAdminAuthenticationCapabilitiesStaticCloaking: COMAdminAuthenticationCapabilitiesOptions = 32i32; +pub const COMAdminAuthenticationConnect: COMAdminAuthenticationLevelOptions = 2i32; +pub const COMAdminAuthenticationDefault: COMAdminAuthenticationLevelOptions = 0i32; +pub const COMAdminAuthenticationIntegrity: COMAdminAuthenticationLevelOptions = 5i32; +pub const COMAdminAuthenticationNone: COMAdminAuthenticationLevelOptions = 1i32; +pub const COMAdminAuthenticationPacket: COMAdminAuthenticationLevelOptions = 4i32; +pub const COMAdminAuthenticationPrivacy: COMAdminAuthenticationLevelOptions = 6i32; +pub const COMAdminCatalog: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf618c514_dfb8_11d1_a2cf_00805fc79235); +pub const COMAdminCatalogCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf618c516_dfb8_11d1_a2cf_00805fc79235); +pub const COMAdminCatalogObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf618c515_dfb8_11d1_a2cf_00805fc79235); +pub const COMAdminCompFlagAlreadyInstalled: COMAdminComponentFlags = 16i32; +pub const COMAdminCompFlagCOMPlusPropertiesFound: COMAdminComponentFlags = 2i32; +pub const COMAdminCompFlagInterfacesFound: COMAdminComponentFlags = 8i32; +pub const COMAdminCompFlagNotInApplication: COMAdminComponentFlags = 32i32; +pub const COMAdminCompFlagProxyFound: COMAdminComponentFlags = 4i32; +pub const COMAdminCompFlagTypeInfoFound: COMAdminComponentFlags = 1i32; +pub const COMAdminErrAlreadyInstalled: COMAdminErrorCodes = -2146368508i32; +pub const COMAdminErrAppDirNotFound: COMAdminErrorCodes = -2146368481i32; +pub const COMAdminErrAppFileReadFail: COMAdminErrorCodes = -2146368504i32; +pub const COMAdminErrAppFileVersion: COMAdminErrorCodes = -2146368503i32; +pub const COMAdminErrAppFileWriteFail: COMAdminErrorCodes = -2146368505i32; +pub const COMAdminErrAppNotRunning: COMAdminErrorCodes = -2146367478i32; +pub const COMAdminErrApplicationExists: COMAdminErrorCodes = -2146368501i32; +pub const COMAdminErrApplidMatchesClsid: COMAdminErrorCodes = -2146368442i32; +pub const COMAdminErrAuthenticationLevel: COMAdminErrorCodes = -2146368493i32; +pub const COMAdminErrBadPath: COMAdminErrorCodes = -2146368502i32; +pub const COMAdminErrBadRegistryLibID: COMAdminErrorCodes = -2146368482i32; +pub const COMAdminErrBadRegistryProgID: COMAdminErrorCodes = -2146368494i32; +pub const COMAdminErrBasePartitionOnly: COMAdminErrorCodes = -2146368432i32; +pub const COMAdminErrCLSIDOrIIDMismatch: COMAdminErrorCodes = -2146368488i32; +pub const COMAdminErrCanNotExportAppProxy: COMAdminErrorCodes = -2146368438i32; +pub const COMAdminErrCanNotExportSystemApp: COMAdminErrorCodes = -2146368436i32; +pub const COMAdminErrCanNotStartApp: COMAdminErrorCodes = -2146368437i32; +pub const COMAdminErrCanNotSubscribeToComponent: COMAdminErrorCodes = -2146368435i32; +pub const COMAdminErrCannotCopyEventClass: COMAdminErrorCodes = -2146367456i32; +pub const COMAdminErrCantCopyFile: COMAdminErrorCodes = -2146368499i32; +pub const COMAdminErrCantRecycleLibraryApps: COMAdminErrorCodes = -2146367473i32; +pub const COMAdminErrCantRecycleServiceApps: COMAdminErrorCodes = -2146367471i32; +pub const COMAdminErrCatBitnessMismatch: COMAdminErrorCodes = -2146368382i32; +pub const COMAdminErrCatPauseResumeNotSupported: COMAdminErrorCodes = -2146368379i32; +pub const COMAdminErrCatServerFault: COMAdminErrorCodes = -2146368378i32; +pub const COMAdminErrCatUnacceptableBitness: COMAdminErrorCodes = -2146368381i32; +pub const COMAdminErrCatWrongAppBitnessBitness: COMAdminErrorCodes = -2146368380i32; +pub const COMAdminErrCoReqCompInstalled: COMAdminErrorCodes = -2146368459i32; +pub const COMAdminErrCompFileBadTLB: COMAdminErrorCodes = -2146368472i32; +pub const COMAdminErrCompFileClassNotAvail: COMAdminErrorCodes = -2146368473i32; +pub const COMAdminErrCompFileDoesNotExist: COMAdminErrorCodes = -2146368476i32; +pub const COMAdminErrCompFileGetClassObj: COMAdminErrorCodes = -2146368474i32; +pub const COMAdminErrCompFileLoadDLLFail: COMAdminErrorCodes = -2146368475i32; +pub const COMAdminErrCompFileNoRegistrar: COMAdminErrorCodes = -2146368460i32; +pub const COMAdminErrCompFileNotInstallable: COMAdminErrorCodes = -2146368471i32; +pub const COMAdminErrCompMoveBadDest: COMAdminErrorCodes = -2146368466i32; +pub const COMAdminErrCompMoveDest: COMAdminErrorCodes = -2146367459i32; +pub const COMAdminErrCompMoveLocked: COMAdminErrorCodes = -2146368467i32; +pub const COMAdminErrCompMovePrivate: COMAdminErrorCodes = -2146367458i32; +pub const COMAdminErrCompMoveSource: COMAdminErrorCodes = -2146367460i32; +pub const COMAdminErrComponentExists: COMAdminErrorCodes = -2146368455i32; +pub const COMAdminErrDllLoadFailed: COMAdminErrorCodes = -2146368483i32; +pub const COMAdminErrDllRegisterServer: COMAdminErrorCodes = -2146368486i32; +pub const COMAdminErrDuplicatePartitionName: COMAdminErrorCodes = -2146368425i32; +pub const COMAdminErrEventClassCannotBeSubscriber: COMAdminErrorCodes = -2146368434i32; +pub const COMAdminErrImportedComponentsNotAllowed: COMAdminErrorCodes = -2146368421i32; +pub const COMAdminErrInvalidPartition: COMAdminErrorCodes = -2146367477i32; +pub const COMAdminErrInvalidUserids: COMAdminErrorCodes = -2146368496i32; +pub const COMAdminErrKeyMissing: COMAdminErrorCodes = -2146368509i32; +pub const COMAdminErrLibAppProxyIncompatible: COMAdminErrorCodes = -2146368433i32; +pub const COMAdminErrMigSchemaNotFound: COMAdminErrorCodes = -2146368383i32; +pub const COMAdminErrMigVersionNotSupported: COMAdminErrorCodes = -2146368384i32; +pub const COMAdminErrNoRegistryCLSID: COMAdminErrorCodes = -2146368495i32; +pub const COMAdminErrNoServerShare: COMAdminErrorCodes = -2146368485i32; +pub const COMAdminErrNoUser: COMAdminErrorCodes = -2146368497i32; +pub const COMAdminErrNotChangeable: COMAdminErrorCodes = -2146368470i32; +pub const COMAdminErrNotDeletable: COMAdminErrorCodes = -2146368469i32; +pub const COMAdminErrNotInRegistry: COMAdminErrorCodes = -2146368450i32; +pub const COMAdminErrObjectDoesNotExist: COMAdminErrorCodes = -2146367479i32; +pub const COMAdminErrObjectErrors: COMAdminErrorCodes = -2146368511i32; +pub const COMAdminErrObjectExists: COMAdminErrorCodes = -2146368456i32; +pub const COMAdminErrObjectInvalid: COMAdminErrorCodes = -2146368510i32; +pub const COMAdminErrObjectNotPoolable: COMAdminErrorCodes = -2146368449i32; +pub const COMAdminErrObjectParentMissing: COMAdminErrorCodes = -2146367480i32; +pub const COMAdminErrPartitionInUse: COMAdminErrorCodes = -2146368423i32; +pub const COMAdminErrPartitionMsiOnly: COMAdminErrorCodes = -2146367463i32; +pub const COMAdminErrPausedProcessMayNotBeRecycled: COMAdminErrorCodes = -2146367469i32; +pub const COMAdminErrProcessAlreadyRecycled: COMAdminErrorCodes = -2146367470i32; +pub const COMAdminErrPropertyOverflow: COMAdminErrorCodes = -2146368452i32; +pub const COMAdminErrPropertySaveFailed: COMAdminErrorCodes = -2146368457i32; +pub const COMAdminErrQueuingServiceNotAvailable: COMAdminErrorCodes = -2146367998i32; +pub const COMAdminErrRegFileCorrupt: COMAdminErrorCodes = -2146368453i32; +pub const COMAdminErrRegdbAlreadyRunning: COMAdminErrorCodes = -2146368395i32; +pub const COMAdminErrRegdbNotInitialized: COMAdminErrorCodes = -2146368398i32; +pub const COMAdminErrRegdbNotOpen: COMAdminErrorCodes = -2146368397i32; +pub const COMAdminErrRegdbSystemErr: COMAdminErrorCodes = -2146368396i32; +pub const COMAdminErrRegisterTLB: COMAdminErrorCodes = -2146368464i32; +pub const COMAdminErrRegistrarFailed: COMAdminErrorCodes = -2146368477i32; +pub const COMAdminErrRemoteInterface: COMAdminErrorCodes = -2146368487i32; +pub const COMAdminErrRequiresDifferentPlatform: COMAdminErrorCodes = -2146368439i32; +pub const COMAdminErrRoleDoesNotExist: COMAdminErrorCodes = -2146368441i32; +pub const COMAdminErrRoleExists: COMAdminErrorCodes = -2146368500i32; +pub const COMAdminErrServiceNotInstalled: COMAdminErrorCodes = -2146368458i32; +pub const COMAdminErrSession: COMAdminErrorCodes = -2146368468i32; +pub const COMAdminErrStartAppDisabled: COMAdminErrorCodes = -2146368431i32; +pub const COMAdminErrStartAppNeedsComponents: COMAdminErrorCodes = -2146368440i32; +pub const COMAdminErrSystemApp: COMAdminErrorCodes = -2146368461i32; +pub const COMAdminErrUserPasswdNotValid: COMAdminErrorCodes = -2146368492i32; +pub const COMAdminExportApplicationProxy: COMAdminApplicationExportOptions = 2i32; +pub const COMAdminExportForceOverwriteOfFiles: COMAdminApplicationExportOptions = 4i32; +pub const COMAdminExportIn10Format: COMAdminApplicationExportOptions = 16i32; +pub const COMAdminExportNoUsers: COMAdminApplicationExportOptions = 0i32; +pub const COMAdminExportUsers: COMAdminApplicationExportOptions = 1i32; +pub const COMAdminFileFlagAlreadyInstalled: COMAdminFileFlags = 512i32; +pub const COMAdminFileFlagBadTLB: COMAdminFileFlags = 1024i32; +pub const COMAdminFileFlagCOM: COMAdminFileFlags = 2i32; +pub const COMAdminFileFlagClassNotAvailable: COMAdminFileFlags = 4096i32; +pub const COMAdminFileFlagContainsComp: COMAdminFileFlags = 8i32; +pub const COMAdminFileFlagContainsPS: COMAdminFileFlags = 4i32; +pub const COMAdminFileFlagContainsTLB: COMAdminFileFlags = 16i32; +pub const COMAdminFileFlagDLLRegsvrFailed: COMAdminFileFlags = 32768i32; +pub const COMAdminFileFlagDoesNotExist: COMAdminFileFlags = 256i32; +pub const COMAdminFileFlagError: COMAdminFileFlags = 262144i32; +pub const COMAdminFileFlagGetClassObjFailed: COMAdminFileFlags = 2048i32; +pub const COMAdminFileFlagLoadable: COMAdminFileFlags = 1i32; +pub const COMAdminFileFlagNoRegistrar: COMAdminFileFlags = 16384i32; +pub const COMAdminFileFlagRegTLBFailed: COMAdminFileFlags = 65536i32; +pub const COMAdminFileFlagRegistrar: COMAdminFileFlags = 8192i32; +pub const COMAdminFileFlagRegistrarFailed: COMAdminFileFlags = 131072i32; +pub const COMAdminFileFlagSelfReg: COMAdminFileFlags = 32i32; +pub const COMAdminFileFlagSelfUnReg: COMAdminFileFlags = 64i32; +pub const COMAdminFileFlagUnloadableDLL: COMAdminFileFlags = 128i32; +pub const COMAdminImpersonationAnonymous: COMAdminImpersonationLevelOptions = 1i32; +pub const COMAdminImpersonationDelegate: COMAdminImpersonationLevelOptions = 4i32; +pub const COMAdminImpersonationIdentify: COMAdminImpersonationLevelOptions = 2i32; +pub const COMAdminImpersonationImpersonate: COMAdminImpersonationLevelOptions = 3i32; +pub const COMAdminInUseByCatalog: COMAdminInUse = 1i32; +pub const COMAdminInUseByRegistryClsid: COMAdminInUse = 5i32; +pub const COMAdminInUseByRegistryProxyStub: COMAdminInUse = 3i32; +pub const COMAdminInUseByRegistryTypeLib: COMAdminInUse = 4i32; +pub const COMAdminInUseByRegistryUnknown: COMAdminInUse = 2i32; +pub const COMAdminInstallForceOverwriteOfFiles: COMAdminApplicationInstallOptions = 2i32; +pub const COMAdminInstallNoUsers: COMAdminApplicationInstallOptions = 0i32; +pub const COMAdminInstallUsers: COMAdminApplicationInstallOptions = 1i32; +pub const COMAdminNotInUse: COMAdminInUse = 0i32; +pub const COMAdminOSNotInitialized: COMAdminOS = 0i32; +pub const COMAdminOSUnknown: COMAdminOS = 6i32; +pub const COMAdminOSWindows2000: COMAdminOS = 3i32; +pub const COMAdminOSWindows2000AdvancedServer: COMAdminOS = 4i32; +pub const COMAdminOSWindows2000Unknown: COMAdminOS = 5i32; +pub const COMAdminOSWindows3_1: COMAdminOS = 1i32; +pub const COMAdminOSWindows7DatacenterServer: COMAdminOS = 27i32; +pub const COMAdminOSWindows7EnterpriseServer: COMAdminOS = 26i32; +pub const COMAdminOSWindows7Personal: COMAdminOS = 23i32; +pub const COMAdminOSWindows7Professional: COMAdminOS = 24i32; +pub const COMAdminOSWindows7StandardServer: COMAdminOS = 25i32; +pub const COMAdminOSWindows7WebServer: COMAdminOS = 28i32; +pub const COMAdminOSWindows8DatacenterServer: COMAdminOS = 33i32; +pub const COMAdminOSWindows8EnterpriseServer: COMAdminOS = 32i32; +pub const COMAdminOSWindows8Personal: COMAdminOS = 29i32; +pub const COMAdminOSWindows8Professional: COMAdminOS = 30i32; +pub const COMAdminOSWindows8StandardServer: COMAdminOS = 31i32; +pub const COMAdminOSWindows8WebServer: COMAdminOS = 34i32; +pub const COMAdminOSWindows9x: COMAdminOS = 2i32; +pub const COMAdminOSWindowsBlueDatacenterServer: COMAdminOS = 39i32; +pub const COMAdminOSWindowsBlueEnterpriseServer: COMAdminOS = 38i32; +pub const COMAdminOSWindowsBluePersonal: COMAdminOS = 35i32; +pub const COMAdminOSWindowsBlueProfessional: COMAdminOS = 36i32; +pub const COMAdminOSWindowsBlueStandardServer: COMAdminOS = 37i32; +pub const COMAdminOSWindowsBlueWebServer: COMAdminOS = 40i32; +pub const COMAdminOSWindowsLonghornDatacenterServer: COMAdminOS = 21i32; +pub const COMAdminOSWindowsLonghornEnterpriseServer: COMAdminOS = 20i32; +pub const COMAdminOSWindowsLonghornPersonal: COMAdminOS = 17i32; +pub const COMAdminOSWindowsLonghornProfessional: COMAdminOS = 18i32; +pub const COMAdminOSWindowsLonghornStandardServer: COMAdminOS = 19i32; +pub const COMAdminOSWindowsLonghornWebServer: COMAdminOS = 22i32; +pub const COMAdminOSWindowsNETDatacenterServer: COMAdminOS = 15i32; +pub const COMAdminOSWindowsNETEnterpriseServer: COMAdminOS = 14i32; +pub const COMAdminOSWindowsNETStandardServer: COMAdminOS = 13i32; +pub const COMAdminOSWindowsNETWebServer: COMAdminOS = 16i32; +pub const COMAdminOSWindowsXPPersonal: COMAdminOS = 11i32; +pub const COMAdminOSWindowsXPProfessional: COMAdminOS = 12i32; +pub const COMAdminQCMessageAuthenticateOff: COMAdminQCMessageAuthenticateOptions = 1i32; +pub const COMAdminQCMessageAuthenticateOn: COMAdminQCMessageAuthenticateOptions = 2i32; +pub const COMAdminQCMessageAuthenticateSecureApps: COMAdminQCMessageAuthenticateOptions = 0i32; +pub const COMAdminServiceContinuePending: COMAdminServiceStatusOptions = 4i32; +pub const COMAdminServiceLoadBalanceRouter: COMAdminServiceOptions = 1i32; +pub const COMAdminServicePausePending: COMAdminServiceStatusOptions = 5i32; +pub const COMAdminServicePaused: COMAdminServiceStatusOptions = 6i32; +pub const COMAdminServiceRunning: COMAdminServiceStatusOptions = 3i32; +pub const COMAdminServiceStartPending: COMAdminServiceStatusOptions = 1i32; +pub const COMAdminServiceStopPending: COMAdminServiceStatusOptions = 2i32; +pub const COMAdminServiceStopped: COMAdminServiceStatusOptions = 0i32; +pub const COMAdminServiceUnknownState: COMAdminServiceStatusOptions = 7i32; +pub const COMAdminSynchronizationIgnored: COMAdminSynchronizationOptions = 0i32; +pub const COMAdminSynchronizationNone: COMAdminSynchronizationOptions = 1i32; +pub const COMAdminSynchronizationRequired: COMAdminSynchronizationOptions = 3i32; +pub const COMAdminSynchronizationRequiresNew: COMAdminSynchronizationOptions = 4i32; +pub const COMAdminSynchronizationSupported: COMAdminSynchronizationOptions = 2i32; +pub const COMAdminThreadingModelApartment: COMAdminThreadingModels = 0i32; +pub const COMAdminThreadingModelBoth: COMAdminThreadingModels = 3i32; +pub const COMAdminThreadingModelFree: COMAdminThreadingModels = 1i32; +pub const COMAdminThreadingModelMain: COMAdminThreadingModels = 2i32; +pub const COMAdminThreadingModelNeutral: COMAdminThreadingModels = 4i32; +pub const COMAdminThreadingModelNotSpecified: COMAdminThreadingModels = 5i32; +pub const COMAdminTransactionIgnored: COMAdminTransactionOptions = 0i32; +pub const COMAdminTransactionNone: COMAdminTransactionOptions = 1i32; +pub const COMAdminTransactionRequired: COMAdminTransactionOptions = 3i32; +pub const COMAdminTransactionRequiresNew: COMAdminTransactionOptions = 4i32; +pub const COMAdminTransactionSupported: COMAdminTransactionOptions = 2i32; +pub const COMAdminTxIsolationLevelAny: COMAdminTxIsolationLevelOptions = 0i32; +pub const COMAdminTxIsolationLevelReadCommitted: COMAdminTxIsolationLevelOptions = 2i32; +pub const COMAdminTxIsolationLevelReadUnCommitted: COMAdminTxIsolationLevelOptions = 1i32; +pub const COMAdminTxIsolationLevelRepeatableRead: COMAdminTxIsolationLevelOptions = 3i32; +pub const COMAdminTxIsolationLevelSerializable: COMAdminTxIsolationLevelOptions = 4i32; +pub const COMEvents: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0ab_7f19_11d2_978e_0000f8757e2a); +pub const CRMClerk: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0bd_7f19_11d2_978e_0000f8757e2a); +pub const CRMFLAG_FORGETTARGET: CRMFLAGS = 1i32; +pub const CRMFLAG_REPLAYINPROGRESS: CRMFLAGS = 64i32; +pub const CRMFLAG_WRITTENDURINGABORT: CRMFLAGS = 8i32; +pub const CRMFLAG_WRITTENDURINGCOMMIT: CRMFLAGS = 4i32; +pub const CRMFLAG_WRITTENDURINGPREPARE: CRMFLAGS = 2i32; +pub const CRMFLAG_WRITTENDURINGRECOVERY: CRMFLAGS = 16i32; +pub const CRMFLAG_WRITTENDURINGREPLAY: CRMFLAGS = 32i32; +pub const CRMREGFLAG_ABORTPHASE: CRMREGFLAGS = 4i32; +pub const CRMREGFLAG_ALLPHASES: CRMREGFLAGS = 7i32; +pub const CRMREGFLAG_COMMITPHASE: CRMREGFLAGS = 2i32; +pub const CRMREGFLAG_FAILIFINDOUBTSREMAIN: CRMREGFLAGS = 16i32; +pub const CRMREGFLAG_PREPAREPHASE: CRMREGFLAGS = 1i32; +pub const CRMRecoveryClerk: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0be_7f19_11d2_978e_0000f8757e2a); +pub const CRR_ACTIVATION_LIMIT: u32 = 4294967294u32; +pub const CRR_CALL_LIMIT: u32 = 4294967293u32; +pub const CRR_LIFETIME_LIMIT: u32 = 4294967295u32; +pub const CRR_MEMORY_LIMIT: u32 = 4294967292u32; +pub const CRR_NO_REASON_SUPPLIED: u32 = 0u32; +pub const CRR_RECYCLED_FROM_UI: u32 = 4294967291u32; +pub const CSC_BindToPoolThread: CSC_Binding = 1i32; +pub const CSC_CreateTransactionIfNecessary: CSC_TransactionConfig = 2i32; +pub const CSC_DontUseTracker: CSC_TrackerConfig = 0i32; +pub const CSC_IfContainerIsSynchronized: CSC_SynchronizationConfig = 1i32; +pub const CSC_IfContainerIsTransactional: CSC_TransactionConfig = 1i32; +pub const CSC_Ignore: CSC_InheritanceConfig = 1i32; +pub const CSC_Inherit: CSC_InheritanceConfig = 0i32; +pub const CSC_InheritCOMTIIntrinsics: CSC_COMTIIntrinsicsConfig = 1i32; +pub const CSC_InheritIISIntrinsics: CSC_IISIntrinsicsConfig = 1i32; +pub const CSC_InheritPartition: CSC_PartitionConfig = 1i32; +pub const CSC_InheritSxs: CSC_SxsConfig = 1i32; +pub const CSC_MTAThreadPool: CSC_ThreadPool = 3i32; +pub const CSC_NewPartition: CSC_PartitionConfig = 2i32; +pub const CSC_NewSxs: CSC_SxsConfig = 2i32; +pub const CSC_NewSynchronization: CSC_SynchronizationConfig = 3i32; +pub const CSC_NewSynchronizationIfNecessary: CSC_SynchronizationConfig = 2i32; +pub const CSC_NewTransaction: CSC_TransactionConfig = 3i32; +pub const CSC_NoBinding: CSC_Binding = 0i32; +pub const CSC_NoCOMTIIntrinsics: CSC_COMTIIntrinsicsConfig = 0i32; +pub const CSC_NoIISIntrinsics: CSC_IISIntrinsicsConfig = 0i32; +pub const CSC_NoPartition: CSC_PartitionConfig = 0i32; +pub const CSC_NoSxs: CSC_SxsConfig = 0i32; +pub const CSC_NoSynchronization: CSC_SynchronizationConfig = 0i32; +pub const CSC_NoTransaction: CSC_TransactionConfig = 0i32; +pub const CSC_STAThreadPool: CSC_ThreadPool = 2i32; +pub const CSC_ThreadPoolInherit: CSC_ThreadPool = 1i32; +pub const CSC_ThreadPoolNone: CSC_ThreadPool = 0i32; +pub const CSC_UseTracker: CSC_TrackerConfig = 1i32; +pub const CServiceConfig: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0c8_7f19_11d2_978e_0000f8757e2a); +pub const ClrAssemblyLocator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x458aa3b5_265a_4b75_bc05_9bea4630cf18); +pub const CoMTSLocator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0ac_7f19_11d2_978e_0000f8757e2a); +pub const ComServiceEvents: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0c3_7f19_11d2_978e_0000f8757e2a); +pub const ComSystemAppEventData: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0c6_7f19_11d2_978e_0000f8757e2a); +pub const DATA_NOT_AVAILABLE: u32 = 4294967295u32; +pub const DUMPTYPE_FULL: DUMPTYPE = 0i32; +pub const DUMPTYPE_MINI: DUMPTYPE = 1i32; +pub const DUMPTYPE_NONE: DUMPTYPE = 2i32; +pub const DispenserManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0c0_7f19_11d2_978e_0000f8757e2a); +pub const Dummy30040732: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0a9_7f19_11d2_978e_0000f8757e2a); +pub const EventServer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabafbc_7f19_11d2_978e_0000f8757e2a); +pub const GATD_INCLUDE_APPLICATION_NAME: GetAppTrackerDataFlags = 16i32; +pub const GATD_INCLUDE_CLASS_NAME: GetAppTrackerDataFlags = 8i32; +pub const GATD_INCLUDE_LIBRARY_APPS: GetAppTrackerDataFlags = 2i32; +pub const GATD_INCLUDE_PROCESS_EXE_NAME: GetAppTrackerDataFlags = 1i32; +pub const GATD_INCLUDE_SWC: GetAppTrackerDataFlags = 4i32; +pub const GUID_STRING_SIZE: u32 = 40u32; +pub const GetSecurityCallContextAppObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0a8_7f19_11d2_978e_0000f8757e2a); +pub const LBEvents: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0c1_7f19_11d2_978e_0000f8757e2a); +pub const LockMethod: LockModes = 1i32; +pub const LockSetGet: LockModes = 0i32; +pub const MTXDM_E_ENLISTRESOURCEFAILED: u32 = 2147803392u32; +pub const MessageMover: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0bf_7f19_11d2_978e_0000f8757e2a); +pub const MtsGrp: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4b2e958d_0393_11d1_b1ab_00aa00ba3258); +pub const PoolMgr: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabafb5_7f19_11d2_978e_0000f8757e2a); +pub const Process: ReleaseModes = 1i32; +pub const SecurityCallContext: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0a7_7f19_11d2_978e_0000f8757e2a); +pub const SecurityCallers: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0a6_7f19_11d2_978e_0000f8757e2a); +pub const SecurityIdentity: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0a5_7f19_11d2_978e_0000f8757e2a); +pub const ServicePool: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0c9_7f19_11d2_978e_0000f8757e2a); +pub const ServicePoolConfig: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabb0ca_7f19_11d2_978e_0000f8757e2a); +pub const SharedProperty: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2a005c05_a5de_11cf_9e66_00aa00a3f464); +pub const SharedPropertyGroup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2a005c0b_a5de_11cf_9e66_00aa00a3f464); +pub const SharedPropertyGroupManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2a005c11_a5de_11cf_9e66_00aa00a3f464); +pub const Standard: ReleaseModes = 0i32; +pub const TRACKER_INIT_EVENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Global\\COM+ Tracker Init Event"); +pub const TRACKER_STARTSTOP_EVENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Global\\COM+ Tracker Push Event"); +pub const TRKCOLL_APPLICATIONS: TRACKING_COLL_TYPE = 1i32; +pub const TRKCOLL_COMPONENTS: TRACKING_COLL_TYPE = 2i32; +pub const TRKCOLL_PROCESSES: TRACKING_COLL_TYPE = 0i32; +pub const TrackerServer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecabafb9_7f19_11d2_978e_0000f8757e2a); +pub const TransactionContext: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7999fc25_d3c6_11cf_acab_00a024a55aef); +pub const TransactionContextEx: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5cb66670_d3d4_11cf_acab_00a024a55aef); +pub const TxAbort: TransactionVote = 1i32; +pub const TxCommit: TransactionVote = 0i32; +pub const TxState_Aborted: CrmTransactionState = 2i32; +pub const TxState_Active: CrmTransactionState = 0i32; +pub const TxState_Committed: CrmTransactionState = 1i32; +pub const TxState_Indoubt: CrmTransactionState = 3i32; +pub const comQCErrApplicationNotQueued: AutoSvcs_Error_Constants = 2148599296u32; +pub const comQCErrNoQueueableInterfaces: AutoSvcs_Error_Constants = 2148599297u32; +pub const comQCErrQueueTransactMismatch: AutoSvcs_Error_Constants = 2148599299u32; +pub const comQCErrQueuingServiceNotAvailable: AutoSvcs_Error_Constants = 2148599298u32; +pub const comqcErrBadMarshaledObject: AutoSvcs_Error_Constants = 2148599382u32; +pub const comqcErrInvalidMessage: AutoSvcs_Error_Constants = 2148599376u32; +pub const comqcErrMarshaledObjSameTxn: AutoSvcs_Error_Constants = 2148599304u32; +pub const comqcErrMsgNotAuthenticated: AutoSvcs_Error_Constants = 2148599380u32; +pub const comqcErrMsmqConnectorUsed: AutoSvcs_Error_Constants = 2148599381u32; +pub const comqcErrMsmqServiceUnavailable: AutoSvcs_Error_Constants = 2148599379u32; +pub const comqcErrMsmqSidUnavailable: AutoSvcs_Error_Constants = 2148599377u32; +pub const comqcErrOutParam: AutoSvcs_Error_Constants = 2148599301u32; +pub const comqcErrPSLoad: AutoSvcs_Error_Constants = 2148599303u32; +pub const comqcErrRecorderMarshalled: AutoSvcs_Error_Constants = 2148599300u32; +pub const comqcErrRecorderNotTrusted: AutoSvcs_Error_Constants = 2148599302u32; +pub const comqcErrWrongMsgExtension: AutoSvcs_Error_Constants = 2148599378u32; +pub const mtsErrCtxAborted: AutoSvcs_Error_Constants = 2147803138u32; +pub const mtsErrCtxAborting: AutoSvcs_Error_Constants = 2147803139u32; +pub const mtsErrCtxNoContext: AutoSvcs_Error_Constants = 2147803140u32; +pub const mtsErrCtxNoSecurity: AutoSvcs_Error_Constants = 2147803149u32; +pub const mtsErrCtxNotRegistered: AutoSvcs_Error_Constants = 2147803141u32; +pub const mtsErrCtxOldReference: AutoSvcs_Error_Constants = 2147803143u32; +pub const mtsErrCtxRoleNotFound: AutoSvcs_Error_Constants = 2147803148u32; +pub const mtsErrCtxSynchTimeout: AutoSvcs_Error_Constants = 2147803142u32; +pub const mtsErrCtxTMNotAvailable: AutoSvcs_Error_Constants = 2147803151u32; +pub const mtsErrCtxWrongThread: AutoSvcs_Error_Constants = 2147803150u32; +pub type AutoSvcs_Error_Constants = u32; +pub type COMAdminAccessChecksLevelOptions = i32; +pub type COMAdminActivationOptions = i32; +pub type COMAdminApplicationExportOptions = i32; +pub type COMAdminApplicationInstallOptions = i32; +pub type COMAdminAuthenticationCapabilitiesOptions = i32; +pub type COMAdminAuthenticationLevelOptions = i32; +pub type COMAdminComponentFlags = i32; +pub type COMAdminComponentType = i32; +pub type COMAdminErrorCodes = i32; +pub type COMAdminFileFlags = i32; +pub type COMAdminImpersonationLevelOptions = i32; +pub type COMAdminInUse = i32; +pub type COMAdminOS = i32; +pub type COMAdminQCMessageAuthenticateOptions = i32; +pub type COMAdminServiceOptions = i32; +pub type COMAdminServiceStatusOptions = i32; +pub type COMAdminSynchronizationOptions = i32; +pub type COMAdminThreadingModels = i32; +pub type COMAdminTransactionOptions = i32; +pub type COMAdminTxIsolationLevelOptions = i32; +pub type COMPLUS_APPTYPE = i32; +pub type CRMFLAGS = i32; +pub type CRMREGFLAGS = i32; +pub type CSC_Binding = i32; +pub type CSC_COMTIIntrinsicsConfig = i32; +pub type CSC_IISIntrinsicsConfig = i32; +pub type CSC_InheritanceConfig = i32; +pub type CSC_PartitionConfig = i32; +pub type CSC_SxsConfig = i32; +pub type CSC_SynchronizationConfig = i32; +pub type CSC_ThreadPool = i32; +pub type CSC_TrackerConfig = i32; +pub type CSC_TransactionConfig = i32; +pub type CrmTransactionState = i32; +pub type DUMPTYPE = i32; +pub type GetAppTrackerDataFlags = i32; +pub type LockModes = i32; +pub type ReleaseModes = i32; +pub type TRACKING_COLL_TYPE = i32; +pub type TransactionVote = i32; +#[repr(C)] +pub struct APPDATA { + pub m_idApp: u32, + pub m_szAppGuid: [u16; 40], + pub m_dwAppProcessId: u32, + pub m_AppStatistics: APPSTATISTICS, +} +impl ::core::marker::Copy for APPDATA {} +impl ::core::clone::Clone for APPDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct APPSTATISTICS { + pub m_cTotalCalls: u32, + pub m_cTotalInstances: u32, + pub m_cTotalClasses: u32, + pub m_cCallsPerSecond: u32, +} +impl ::core::marker::Copy for APPSTATISTICS {} +impl ::core::clone::Clone for APPSTATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ApplicationProcessRecycleInfo { + pub IsRecyclable: super::super::Foundation::BOOL, + pub IsRecycled: super::super::Foundation::BOOL, + pub TimeRecycled: super::super::Foundation::FILETIME, + pub TimeToTerminate: super::super::Foundation::FILETIME, + pub RecycleReasonCode: i32, + pub IsPendingRecycle: super::super::Foundation::BOOL, + pub HasAutomaticLifetimeRecycling: super::super::Foundation::BOOL, + pub TimeForAutomaticRecycling: super::super::Foundation::FILETIME, + pub MemoryLimitInKB: u32, + pub MemoryUsageInKBLastCheck: u32, + pub ActivationLimit: u32, + pub NumActivationsLastReported: u32, + pub CallLimit: u32, + pub NumCallsLastReported: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ApplicationProcessRecycleInfo {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ApplicationProcessRecycleInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ApplicationProcessStatistics { + pub NumCallsOutstanding: u32, + pub NumTrackedComponents: u32, + pub NumComponentInstances: u32, + pub AvgCallsPerSecond: u32, + pub Reserved1: u32, + pub Reserved2: u32, + pub Reserved3: u32, + pub Reserved4: u32, +} +impl ::core::marker::Copy for ApplicationProcessStatistics {} +impl ::core::clone::Clone for ApplicationProcessStatistics { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ApplicationProcessSummary { + pub PartitionIdPrimaryApplication: ::windows_sys::core::GUID, + pub ApplicationIdPrimaryApplication: ::windows_sys::core::GUID, + pub ApplicationInstanceId: ::windows_sys::core::GUID, + pub ProcessId: u32, + pub Type: COMPLUS_APPTYPE, + pub ProcessExeName: ::windows_sys::core::PWSTR, + pub IsService: super::super::Foundation::BOOL, + pub IsPaused: super::super::Foundation::BOOL, + pub IsRecycled: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ApplicationProcessSummary {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ApplicationProcessSummary { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ApplicationSummary { + pub ApplicationInstanceId: ::windows_sys::core::GUID, + pub PartitionId: ::windows_sys::core::GUID, + pub ApplicationId: ::windows_sys::core::GUID, + pub Type: COMPLUS_APPTYPE, + pub ApplicationName: ::windows_sys::core::PWSTR, + pub NumTrackedComponents: u32, + pub NumComponentInstances: u32, +} +impl ::core::marker::Copy for ApplicationSummary {} +impl ::core::clone::Clone for ApplicationSummary { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLSIDDATA { + pub m_clsid: ::windows_sys::core::GUID, + pub m_cReferences: u32, + pub m_cBound: u32, + pub m_cPooled: u32, + pub m_cInCall: u32, + pub m_dwRespTime: u32, + pub m_cCallsCompleted: u32, + pub m_cCallsFailed: u32, +} +impl ::core::marker::Copy for CLSIDDATA {} +impl ::core::clone::Clone for CLSIDDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLSIDDATA2 { + pub m_clsid: ::windows_sys::core::GUID, + pub m_appid: ::windows_sys::core::GUID, + pub m_partid: ::windows_sys::core::GUID, + pub m_pwszAppName: ::windows_sys::core::PWSTR, + pub m_pwszCtxName: ::windows_sys::core::PWSTR, + pub m_eAppType: COMPLUS_APPTYPE, + pub m_cReferences: u32, + pub m_cBound: u32, + pub m_cPooled: u32, + pub m_cInCall: u32, + pub m_dwRespTime: u32, + pub m_cCallsCompleted: u32, + pub m_cCallsFailed: u32, +} +impl ::core::marker::Copy for CLSIDDATA2 {} +impl ::core::clone::Clone for CLSIDDATA2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COMSVCSEVENTINFO { + pub cbSize: u32, + pub dwPid: u32, + pub lTime: i64, + pub lMicroTime: i32, + pub perfCount: i64, + pub guidApp: ::windows_sys::core::GUID, + pub sMachineName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for COMSVCSEVENTINFO {} +impl ::core::clone::Clone for COMSVCSEVENTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ComponentHangMonitorInfo { + pub IsMonitored: super::super::Foundation::BOOL, + pub TerminateOnHang: super::super::Foundation::BOOL, + pub AvgCallThresholdInMs: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ComponentHangMonitorInfo {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ComponentHangMonitorInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ComponentStatistics { + pub NumInstances: u32, + pub NumBoundReferences: u32, + pub NumPooledObjects: u32, + pub NumObjectsInCall: u32, + pub AvgResponseTimeInMs: u32, + pub NumCallsCompletedRecent: u32, + pub NumCallsFailedRecent: u32, + pub NumCallsCompletedTotal: u32, + pub NumCallsFailedTotal: u32, + pub Reserved1: u32, + pub Reserved2: u32, + pub Reserved3: u32, + pub Reserved4: u32, +} +impl ::core::marker::Copy for ComponentStatistics {} +impl ::core::clone::Clone for ComponentStatistics { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ComponentSummary { + pub ApplicationInstanceId: ::windows_sys::core::GUID, + pub PartitionId: ::windows_sys::core::GUID, + pub ApplicationId: ::windows_sys::core::GUID, + pub Clsid: ::windows_sys::core::GUID, + pub ClassName: ::windows_sys::core::PWSTR, + pub ApplicationName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ComponentSummary {} +impl ::core::clone::Clone for ComponentSummary { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct CrmLogRecordRead { + pub dwCrmFlags: u32, + pub dwSequenceNumber: u32, + pub blobUserData: super::Com::BLOB, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for CrmLogRecordRead {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for CrmLogRecordRead { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HANG_INFO { + pub fAppHangMonitorEnabled: super::super::Foundation::BOOL, + pub fTerminateOnHang: super::super::Foundation::BOOL, + pub DumpType: DUMPTYPE, + pub dwHangTimeout: u32, + pub dwDumpCount: u32, + pub dwInfoMsgCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HANG_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HANG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECYCLE_INFO { + pub guidCombaseProcessIdentifier: ::windows_sys::core::GUID, + pub ProcessStartTime: i64, + pub dwRecycleLifetimeLimit: u32, + pub dwRecycleMemoryLimit: u32, + pub dwRecycleExpirationTimeout: u32, +} +impl ::core::marker::Copy for RECYCLE_INFO {} +impl ::core::clone::Clone for RECYCLE_INFO { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Console/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Console/mod.rs new file mode 100644 index 000000000..ccf239462 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Console/mod.rs @@ -0,0 +1,528 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddConsoleAliasA(source : ::windows_sys::core::PCSTR, target : ::windows_sys::core::PCSTR, exename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddConsoleAliasW(source : ::windows_sys::core::PCWSTR, target : ::windows_sys::core::PCWSTR, exename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllocConsole() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AttachConsole(dwprocessid : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn ClosePseudoConsole(hpc : HPCON) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateConsoleScreenBuffer(dwdesiredaccess : u32, dwsharemode : u32, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, dwflags : u32, lpscreenbufferdata : *const ::core::ffi::c_void) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreatePseudoConsole(size : COORD, hinput : super::super::Foundation:: HANDLE, houtput : super::super::Foundation:: HANDLE, dwflags : u32, phpc : *mut HPCON) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn ExpungeConsoleCommandHistoryA(exename : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn ExpungeConsoleCommandHistoryW(exename : ::windows_sys::core::PCWSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FillConsoleOutputAttribute(hconsoleoutput : super::super::Foundation:: HANDLE, wattribute : u16, nlength : u32, dwwritecoord : COORD, lpnumberofattrswritten : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FillConsoleOutputCharacterA(hconsoleoutput : super::super::Foundation:: HANDLE, ccharacter : u8, nlength : u32, dwwritecoord : COORD, lpnumberofcharswritten : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FillConsoleOutputCharacterW(hconsoleoutput : super::super::Foundation:: HANDLE, ccharacter : u16, nlength : u32, dwwritecoord : COORD, lpnumberofcharswritten : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlushConsoleInputBuffer(hconsoleinput : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeConsole() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GenerateConsoleCtrlEvent(dwctrlevent : u32, dwprocessgroupid : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleAliasA(source : ::windows_sys::core::PCSTR, targetbuffer : ::windows_sys::core::PSTR, targetbufferlength : u32, exename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleAliasExesA(exenamebuffer : ::windows_sys::core::PSTR, exenamebufferlength : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleAliasExesLengthA() -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleAliasExesLengthW() -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleAliasExesW(exenamebuffer : ::windows_sys::core::PWSTR, exenamebufferlength : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleAliasW(source : ::windows_sys::core::PCWSTR, targetbuffer : ::windows_sys::core::PWSTR, targetbufferlength : u32, exename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleAliasesA(aliasbuffer : ::windows_sys::core::PSTR, aliasbufferlength : u32, exename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleAliasesLengthA(exename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleAliasesLengthW(exename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleAliasesW(aliasbuffer : ::windows_sys::core::PWSTR, aliasbufferlength : u32, exename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleCP() -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleCommandHistoryA(commands : ::windows_sys::core::PSTR, commandbufferlength : u32, exename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleCommandHistoryLengthA(exename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleCommandHistoryLengthW(exename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleCommandHistoryW(commands : ::windows_sys::core::PWSTR, commandbufferlength : u32, exename : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetConsoleCursorInfo(hconsoleoutput : super::super::Foundation:: HANDLE, lpconsolecursorinfo : *mut CONSOLE_CURSOR_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetConsoleDisplayMode(lpmodeflags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetConsoleFontSize(hconsoleoutput : super::super::Foundation:: HANDLE, nfont : u32) -> COORD); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetConsoleHistoryInfo(lpconsolehistoryinfo : *mut CONSOLE_HISTORY_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetConsoleMode(hconsolehandle : super::super::Foundation:: HANDLE, lpmode : *mut CONSOLE_MODE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleOriginalTitleA(lpconsoletitle : ::windows_sys::core::PSTR, nsize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleOriginalTitleW(lpconsoletitle : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleOutputCP() -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleProcessList(lpdwprocesslist : *mut u32, dwprocesscount : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetConsoleScreenBufferInfo(hconsoleoutput : super::super::Foundation:: HANDLE, lpconsolescreenbufferinfo : *mut CONSOLE_SCREEN_BUFFER_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetConsoleScreenBufferInfoEx(hconsoleoutput : super::super::Foundation:: HANDLE, lpconsolescreenbufferinfoex : *mut CONSOLE_SCREEN_BUFFER_INFOEX) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetConsoleSelectionInfo(lpconsoleselectioninfo : *mut CONSOLE_SELECTION_INFO) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleTitleA(lpconsoletitle : ::windows_sys::core::PSTR, nsize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetConsoleTitleW(lpconsoletitle : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetConsoleWindow() -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentConsoleFont(hconsoleoutput : super::super::Foundation:: HANDLE, bmaximumwindow : super::super::Foundation:: BOOL, lpconsolecurrentfont : *mut CONSOLE_FONT_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentConsoleFontEx(hconsoleoutput : super::super::Foundation:: HANDLE, bmaximumwindow : super::super::Foundation:: BOOL, lpconsolecurrentfontex : *mut CONSOLE_FONT_INFOEX) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLargestConsoleWindowSize(hconsoleoutput : super::super::Foundation:: HANDLE) -> COORD); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNumberOfConsoleInputEvents(hconsoleinput : super::super::Foundation:: HANDLE, lpnumberofevents : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNumberOfConsoleMouseButtons(lpnumberofmousebuttons : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetStdHandle(nstdhandle : STD_HANDLE) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeekConsoleInputA(hconsoleinput : super::super::Foundation:: HANDLE, lpbuffer : *mut INPUT_RECORD, nlength : u32, lpnumberofeventsread : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeekConsoleInputW(hconsoleinput : super::super::Foundation:: HANDLE, lpbuffer : *mut INPUT_RECORD, nlength : u32, lpnumberofeventsread : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadConsoleA(hconsoleinput : super::super::Foundation:: HANDLE, lpbuffer : *mut ::core::ffi::c_void, nnumberofcharstoread : u32, lpnumberofcharsread : *mut u32, pinputcontrol : *const CONSOLE_READCONSOLE_CONTROL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadConsoleInputA(hconsoleinput : super::super::Foundation:: HANDLE, lpbuffer : *mut INPUT_RECORD, nlength : u32, lpnumberofeventsread : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadConsoleInputW(hconsoleinput : super::super::Foundation:: HANDLE, lpbuffer : *mut INPUT_RECORD, nlength : u32, lpnumberofeventsread : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadConsoleOutputA(hconsoleoutput : super::super::Foundation:: HANDLE, lpbuffer : *mut CHAR_INFO, dwbuffersize : COORD, dwbuffercoord : COORD, lpreadregion : *mut SMALL_RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadConsoleOutputAttribute(hconsoleoutput : super::super::Foundation:: HANDLE, lpattribute : *mut u16, nlength : u32, dwreadcoord : COORD, lpnumberofattrsread : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadConsoleOutputCharacterA(hconsoleoutput : super::super::Foundation:: HANDLE, lpcharacter : ::windows_sys::core::PSTR, nlength : u32, dwreadcoord : COORD, lpnumberofcharsread : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadConsoleOutputCharacterW(hconsoleoutput : super::super::Foundation:: HANDLE, lpcharacter : ::windows_sys::core::PWSTR, nlength : u32, dwreadcoord : COORD, lpnumberofcharsread : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadConsoleOutputW(hconsoleoutput : super::super::Foundation:: HANDLE, lpbuffer : *mut CHAR_INFO, dwbuffersize : COORD, dwbuffercoord : COORD, lpreadregion : *mut SMALL_RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadConsoleW(hconsoleinput : super::super::Foundation:: HANDLE, lpbuffer : *mut ::core::ffi::c_void, nnumberofcharstoread : u32, lpnumberofcharsread : *mut u32, pinputcontrol : *const CONSOLE_READCONSOLE_CONTROL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn ResizePseudoConsole(hpc : HPCON, size : COORD) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ScrollConsoleScreenBufferA(hconsoleoutput : super::super::Foundation:: HANDLE, lpscrollrectangle : *const SMALL_RECT, lpcliprectangle : *const SMALL_RECT, dwdestinationorigin : COORD, lpfill : *const CHAR_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ScrollConsoleScreenBufferW(hconsoleoutput : super::super::Foundation:: HANDLE, lpscrollrectangle : *const SMALL_RECT, lpcliprectangle : *const SMALL_RECT, dwdestinationorigin : COORD, lpfill : *const CHAR_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleActiveScreenBuffer(hconsoleoutput : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleCP(wcodepageid : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleCtrlHandler(handlerroutine : PHANDLER_ROUTINE, add : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleCursorInfo(hconsoleoutput : super::super::Foundation:: HANDLE, lpconsolecursorinfo : *const CONSOLE_CURSOR_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleCursorPosition(hconsoleoutput : super::super::Foundation:: HANDLE, dwcursorposition : COORD) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleDisplayMode(hconsoleoutput : super::super::Foundation:: HANDLE, dwflags : u32, lpnewscreenbufferdimensions : *mut COORD) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleHistoryInfo(lpconsolehistoryinfo : *const CONSOLE_HISTORY_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleMode(hconsolehandle : super::super::Foundation:: HANDLE, dwmode : CONSOLE_MODE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleNumberOfCommandsA(number : u32, exename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleNumberOfCommandsW(number : u32, exename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleOutputCP(wcodepageid : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleScreenBufferInfoEx(hconsoleoutput : super::super::Foundation:: HANDLE, lpconsolescreenbufferinfoex : *const CONSOLE_SCREEN_BUFFER_INFOEX) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleScreenBufferSize(hconsoleoutput : super::super::Foundation:: HANDLE, dwsize : COORD) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleTextAttribute(hconsoleoutput : super::super::Foundation:: HANDLE, wattributes : CONSOLE_CHARACTER_ATTRIBUTES) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleTitleA(lpconsoletitle : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleTitleW(lpconsoletitle : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetConsoleWindowInfo(hconsoleoutput : super::super::Foundation:: HANDLE, babsolute : super::super::Foundation:: BOOL, lpconsolewindow : *const SMALL_RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCurrentConsoleFontEx(hconsoleoutput : super::super::Foundation:: HANDLE, bmaximumwindow : super::super::Foundation:: BOOL, lpconsolecurrentfontex : *const CONSOLE_FONT_INFOEX) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetStdHandle(nstdhandle : STD_HANDLE, hhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetStdHandleEx(nstdhandle : STD_HANDLE, hhandle : super::super::Foundation:: HANDLE, phprevvalue : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteConsoleA(hconsoleoutput : super::super::Foundation:: HANDLE, lpbuffer : *const ::core::ffi::c_void, nnumberofcharstowrite : u32, lpnumberofcharswritten : *mut u32, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteConsoleInputA(hconsoleinput : super::super::Foundation:: HANDLE, lpbuffer : *const INPUT_RECORD, nlength : u32, lpnumberofeventswritten : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteConsoleInputW(hconsoleinput : super::super::Foundation:: HANDLE, lpbuffer : *const INPUT_RECORD, nlength : u32, lpnumberofeventswritten : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteConsoleOutputA(hconsoleoutput : super::super::Foundation:: HANDLE, lpbuffer : *const CHAR_INFO, dwbuffersize : COORD, dwbuffercoord : COORD, lpwriteregion : *mut SMALL_RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteConsoleOutputAttribute(hconsoleoutput : super::super::Foundation:: HANDLE, lpattribute : *const u16, nlength : u32, dwwritecoord : COORD, lpnumberofattrswritten : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteConsoleOutputCharacterA(hconsoleoutput : super::super::Foundation:: HANDLE, lpcharacter : ::windows_sys::core::PCSTR, nlength : u32, dwwritecoord : COORD, lpnumberofcharswritten : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteConsoleOutputCharacterW(hconsoleoutput : super::super::Foundation:: HANDLE, lpcharacter : ::windows_sys::core::PCWSTR, nlength : u32, dwwritecoord : COORD, lpnumberofcharswritten : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteConsoleOutputW(hconsoleoutput : super::super::Foundation:: HANDLE, lpbuffer : *const CHAR_INFO, dwbuffersize : COORD, dwbuffercoord : COORD, lpwriteregion : *mut SMALL_RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteConsoleW(hconsoleoutput : super::super::Foundation:: HANDLE, lpbuffer : *const ::core::ffi::c_void, nnumberofcharstowrite : u32, lpnumberofcharswritten : *mut u32, lpreserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +pub const ALTNUMPAD_BIT: u32 = 67108864u32; +pub const ATTACH_PARENT_PROCESS: u32 = 4294967295u32; +pub const BACKGROUND_BLUE: CONSOLE_CHARACTER_ATTRIBUTES = 16u16; +pub const BACKGROUND_GREEN: CONSOLE_CHARACTER_ATTRIBUTES = 32u16; +pub const BACKGROUND_INTENSITY: CONSOLE_CHARACTER_ATTRIBUTES = 128u16; +pub const BACKGROUND_RED: CONSOLE_CHARACTER_ATTRIBUTES = 64u16; +pub const CAPSLOCK_ON: u32 = 128u32; +pub const COMMON_LVB_GRID_HORIZONTAL: CONSOLE_CHARACTER_ATTRIBUTES = 1024u16; +pub const COMMON_LVB_GRID_LVERTICAL: CONSOLE_CHARACTER_ATTRIBUTES = 2048u16; +pub const COMMON_LVB_GRID_RVERTICAL: CONSOLE_CHARACTER_ATTRIBUTES = 4096u16; +pub const COMMON_LVB_LEADING_BYTE: CONSOLE_CHARACTER_ATTRIBUTES = 256u16; +pub const COMMON_LVB_REVERSE_VIDEO: CONSOLE_CHARACTER_ATTRIBUTES = 16384u16; +pub const COMMON_LVB_SBCSDBCS: CONSOLE_CHARACTER_ATTRIBUTES = 768u16; +pub const COMMON_LVB_TRAILING_BYTE: CONSOLE_CHARACTER_ATTRIBUTES = 512u16; +pub const COMMON_LVB_UNDERSCORE: CONSOLE_CHARACTER_ATTRIBUTES = 32768u16; +pub const CONSOLE_FULLSCREEN: u32 = 1u32; +pub const CONSOLE_FULLSCREEN_HARDWARE: u32 = 2u32; +pub const CONSOLE_FULLSCREEN_MODE: u32 = 1u32; +pub const CONSOLE_MOUSE_DOWN: u32 = 8u32; +pub const CONSOLE_MOUSE_SELECTION: u32 = 4u32; +pub const CONSOLE_NO_SELECTION: u32 = 0u32; +pub const CONSOLE_SELECTION_IN_PROGRESS: u32 = 1u32; +pub const CONSOLE_SELECTION_NOT_EMPTY: u32 = 2u32; +pub const CONSOLE_TEXTMODE_BUFFER: u32 = 1u32; +pub const CONSOLE_WINDOWED_MODE: u32 = 2u32; +pub const CTRL_BREAK_EVENT: u32 = 1u32; +pub const CTRL_CLOSE_EVENT: u32 = 2u32; +pub const CTRL_C_EVENT: u32 = 0u32; +pub const CTRL_LOGOFF_EVENT: u32 = 5u32; +pub const CTRL_SHUTDOWN_EVENT: u32 = 6u32; +pub const DISABLE_NEWLINE_AUTO_RETURN: CONSOLE_MODE = 8u32; +pub const DOUBLE_CLICK: u32 = 2u32; +pub const ENABLE_AUTO_POSITION: CONSOLE_MODE = 256u32; +pub const ENABLE_ECHO_INPUT: CONSOLE_MODE = 4u32; +pub const ENABLE_EXTENDED_FLAGS: CONSOLE_MODE = 128u32; +pub const ENABLE_INSERT_MODE: CONSOLE_MODE = 32u32; +pub const ENABLE_LINE_INPUT: CONSOLE_MODE = 2u32; +pub const ENABLE_LVB_GRID_WORLDWIDE: CONSOLE_MODE = 16u32; +pub const ENABLE_MOUSE_INPUT: CONSOLE_MODE = 16u32; +pub const ENABLE_PROCESSED_INPUT: CONSOLE_MODE = 1u32; +pub const ENABLE_PROCESSED_OUTPUT: CONSOLE_MODE = 1u32; +pub const ENABLE_QUICK_EDIT_MODE: CONSOLE_MODE = 64u32; +pub const ENABLE_VIRTUAL_TERMINAL_INPUT: CONSOLE_MODE = 512u32; +pub const ENABLE_VIRTUAL_TERMINAL_PROCESSING: CONSOLE_MODE = 4u32; +pub const ENABLE_WINDOW_INPUT: CONSOLE_MODE = 8u32; +pub const ENABLE_WRAP_AT_EOL_OUTPUT: CONSOLE_MODE = 2u32; +pub const ENHANCED_KEY: u32 = 256u32; +pub const FOCUS_EVENT: u32 = 16u32; +pub const FOREGROUND_BLUE: CONSOLE_CHARACTER_ATTRIBUTES = 1u16; +pub const FOREGROUND_GREEN: CONSOLE_CHARACTER_ATTRIBUTES = 2u16; +pub const FOREGROUND_INTENSITY: CONSOLE_CHARACTER_ATTRIBUTES = 8u16; +pub const FOREGROUND_RED: CONSOLE_CHARACTER_ATTRIBUTES = 4u16; +pub const FROM_LEFT_1ST_BUTTON_PRESSED: u32 = 1u32; +pub const FROM_LEFT_2ND_BUTTON_PRESSED: u32 = 4u32; +pub const FROM_LEFT_3RD_BUTTON_PRESSED: u32 = 8u32; +pub const FROM_LEFT_4TH_BUTTON_PRESSED: u32 = 16u32; +pub const HISTORY_NO_DUP_FLAG: u32 = 1u32; +pub const KEY_EVENT: u32 = 1u32; +pub const LEFT_ALT_PRESSED: u32 = 2u32; +pub const LEFT_CTRL_PRESSED: u32 = 8u32; +pub const MENU_EVENT: u32 = 8u32; +pub const MOUSE_EVENT: u32 = 2u32; +pub const MOUSE_HWHEELED: u32 = 8u32; +pub const MOUSE_MOVED: u32 = 1u32; +pub const MOUSE_WHEELED: u32 = 4u32; +pub const NLS_ALPHANUMERIC: u32 = 0u32; +pub const NLS_DBCSCHAR: u32 = 65536u32; +pub const NLS_HIRAGANA: u32 = 262144u32; +pub const NLS_IME_CONVERSION: u32 = 8388608u32; +pub const NLS_IME_DISABLE: u32 = 536870912u32; +pub const NLS_KATAKANA: u32 = 131072u32; +pub const NLS_ROMAN: u32 = 4194304u32; +pub const NUMLOCK_ON: u32 = 32u32; +pub const PSEUDOCONSOLE_INHERIT_CURSOR: u32 = 1u32; +pub const RIGHTMOST_BUTTON_PRESSED: u32 = 2u32; +pub const RIGHT_ALT_PRESSED: u32 = 1u32; +pub const RIGHT_CTRL_PRESSED: u32 = 4u32; +pub const SCROLLLOCK_ON: u32 = 64u32; +pub const SHIFT_PRESSED: u32 = 16u32; +pub const STD_ERROR_HANDLE: STD_HANDLE = 4294967284u32; +pub const STD_INPUT_HANDLE: STD_HANDLE = 4294967286u32; +pub const STD_OUTPUT_HANDLE: STD_HANDLE = 4294967285u32; +pub const WINDOW_BUFFER_SIZE_EVENT: u32 = 4u32; +pub type CONSOLE_CHARACTER_ATTRIBUTES = u16; +pub type CONSOLE_MODE = u32; +pub type STD_HANDLE = u32; +#[repr(C)] +pub struct CHAR_INFO { + pub Char: CHAR_INFO_0, + pub Attributes: u16, +} +impl ::core::marker::Copy for CHAR_INFO {} +impl ::core::clone::Clone for CHAR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CHAR_INFO_0 { + pub UnicodeChar: u16, + pub AsciiChar: u8, +} +impl ::core::marker::Copy for CHAR_INFO_0 {} +impl ::core::clone::Clone for CHAR_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CONSOLE_CURSOR_INFO { + pub dwSize: u32, + pub bVisible: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CONSOLE_CURSOR_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CONSOLE_CURSOR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONSOLE_FONT_INFO { + pub nFont: u32, + pub dwFontSize: COORD, +} +impl ::core::marker::Copy for CONSOLE_FONT_INFO {} +impl ::core::clone::Clone for CONSOLE_FONT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONSOLE_FONT_INFOEX { + pub cbSize: u32, + pub nFont: u32, + pub dwFontSize: COORD, + pub FontFamily: u32, + pub FontWeight: u32, + pub FaceName: [u16; 32], +} +impl ::core::marker::Copy for CONSOLE_FONT_INFOEX {} +impl ::core::clone::Clone for CONSOLE_FONT_INFOEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONSOLE_HISTORY_INFO { + pub cbSize: u32, + pub HistoryBufferSize: u32, + pub NumberOfHistoryBuffers: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for CONSOLE_HISTORY_INFO {} +impl ::core::clone::Clone for CONSOLE_HISTORY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONSOLE_READCONSOLE_CONTROL { + pub nLength: u32, + pub nInitialChars: u32, + pub dwCtrlWakeupMask: u32, + pub dwControlKeyState: u32, +} +impl ::core::marker::Copy for CONSOLE_READCONSOLE_CONTROL {} +impl ::core::clone::Clone for CONSOLE_READCONSOLE_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONSOLE_SCREEN_BUFFER_INFO { + pub dwSize: COORD, + pub dwCursorPosition: COORD, + pub wAttributes: CONSOLE_CHARACTER_ATTRIBUTES, + pub srWindow: SMALL_RECT, + pub dwMaximumWindowSize: COORD, +} +impl ::core::marker::Copy for CONSOLE_SCREEN_BUFFER_INFO {} +impl ::core::clone::Clone for CONSOLE_SCREEN_BUFFER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CONSOLE_SCREEN_BUFFER_INFOEX { + pub cbSize: u32, + pub dwSize: COORD, + pub dwCursorPosition: COORD, + pub wAttributes: CONSOLE_CHARACTER_ATTRIBUTES, + pub srWindow: SMALL_RECT, + pub dwMaximumWindowSize: COORD, + pub wPopupAttributes: u16, + pub bFullscreenSupported: super::super::Foundation::BOOL, + pub ColorTable: [super::super::Foundation::COLORREF; 16], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CONSOLE_SCREEN_BUFFER_INFOEX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CONSOLE_SCREEN_BUFFER_INFOEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONSOLE_SELECTION_INFO { + pub dwFlags: u32, + pub dwSelectionAnchor: COORD, + pub srSelection: SMALL_RECT, +} +impl ::core::marker::Copy for CONSOLE_SELECTION_INFO {} +impl ::core::clone::Clone for CONSOLE_SELECTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COORD { + pub X: i16, + pub Y: i16, +} +impl ::core::marker::Copy for COORD {} +impl ::core::clone::Clone for COORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FOCUS_EVENT_RECORD { + pub bSetFocus: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FOCUS_EVENT_RECORD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FOCUS_EVENT_RECORD { + fn clone(&self) -> Self { + *self + } +} +pub type HPCON = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INPUT_RECORD { + pub EventType: u16, + pub Event: INPUT_RECORD_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INPUT_RECORD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INPUT_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union INPUT_RECORD_0 { + pub KeyEvent: KEY_EVENT_RECORD, + pub MouseEvent: MOUSE_EVENT_RECORD, + pub WindowBufferSizeEvent: WINDOW_BUFFER_SIZE_RECORD, + pub MenuEvent: MENU_EVENT_RECORD, + pub FocusEvent: FOCUS_EVENT_RECORD, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INPUT_RECORD_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INPUT_RECORD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KEY_EVENT_RECORD { + pub bKeyDown: super::super::Foundation::BOOL, + pub wRepeatCount: u16, + pub wVirtualKeyCode: u16, + pub wVirtualScanCode: u16, + pub uChar: KEY_EVENT_RECORD_0, + pub dwControlKeyState: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KEY_EVENT_RECORD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KEY_EVENT_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union KEY_EVENT_RECORD_0 { + pub UnicodeChar: u16, + pub AsciiChar: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KEY_EVENT_RECORD_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KEY_EVENT_RECORD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MENU_EVENT_RECORD { + pub dwCommandId: u32, +} +impl ::core::marker::Copy for MENU_EVENT_RECORD {} +impl ::core::clone::Clone for MENU_EVENT_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MOUSE_EVENT_RECORD { + pub dwMousePosition: COORD, + pub dwButtonState: u32, + pub dwControlKeyState: u32, + pub dwEventFlags: u32, +} +impl ::core::marker::Copy for MOUSE_EVENT_RECORD {} +impl ::core::clone::Clone for MOUSE_EVENT_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SMALL_RECT { + pub Left: i16, + pub Top: i16, + pub Right: i16, + pub Bottom: i16, +} +impl ::core::marker::Copy for SMALL_RECT {} +impl ::core::clone::Clone for SMALL_RECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINDOW_BUFFER_SIZE_RECORD { + pub dwSize: COORD, +} +impl ::core::marker::Copy for WINDOW_BUFFER_SIZE_RECORD {} +impl ::core::clone::Clone for WINDOW_BUFFER_SIZE_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PHANDLER_ROUTINE = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/CorrelationVector/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/CorrelationVector/mod.rs new file mode 100644 index 000000000..955032df8 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/CorrelationVector/mod.rs @@ -0,0 +1,20 @@ +::windows_targets::link!("ntdll.dll" "system" fn RtlExtendCorrelationVector(correlationvector : *mut CORRELATION_VECTOR) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlIncrementCorrelationVector(correlationvector : *mut CORRELATION_VECTOR) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlInitializeCorrelationVector(correlationvector : *mut CORRELATION_VECTOR, version : i32, guid : *const ::windows_sys::core::GUID) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlValidateCorrelationVector(vector : *const CORRELATION_VECTOR) -> u32); +pub const RTL_CORRELATION_VECTOR_STRING_LENGTH: u32 = 129u32; +pub const RTL_CORRELATION_VECTOR_V1_LENGTH: u32 = 64u32; +pub const RTL_CORRELATION_VECTOR_V1_PREFIX_LENGTH: u32 = 16u32; +pub const RTL_CORRELATION_VECTOR_V2_LENGTH: u32 = 128u32; +pub const RTL_CORRELATION_VECTOR_V2_PREFIX_LENGTH: u32 = 22u32; +#[repr(C)] +pub struct CORRELATION_VECTOR { + pub Version: u8, + pub Vector: [u8; 129], +} +impl ::core::marker::Copy for CORRELATION_VECTOR {} +impl ::core::clone::Clone for CORRELATION_VECTOR { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/DataExchange/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/DataExchange/mod.rs new file mode 100644 index 000000000..ff6fa7ad2 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/DataExchange/mod.rs @@ -0,0 +1,591 @@ +::windows_targets::link!("kernel32.dll" "system" fn AddAtomA(lpstring : ::windows_sys::core::PCSTR) -> u16); +::windows_targets::link!("kernel32.dll" "system" fn AddAtomW(lpstring : ::windows_sys::core::PCWSTR) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddClipboardFormatListener(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChangeClipboardChain(hwndremove : super::super::Foundation:: HWND, hwndnewnext : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseClipboard() -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn CountClipboardFormats() -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdeAbandonTransaction(idinst : u32, hconv : HCONV, idtransaction : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn DdeAccessData(hdata : HDDEDATA, pcbdatasize : *mut u32) -> *mut u8); +::windows_targets::link!("user32.dll" "system" fn DdeAddData(hdata : HDDEDATA, psrc : *const u8, cb : u32, cboff : u32) -> HDDEDATA); +::windows_targets::link!("user32.dll" "system" fn DdeClientTransaction(pdata : *const u8, cbdata : u32, hconv : HCONV, hszitem : HSZ, wfmt : u32, wtype : DDE_CLIENT_TRANSACTION_TYPE, dwtimeout : u32, pdwresult : *mut u32) -> HDDEDATA); +::windows_targets::link!("user32.dll" "system" fn DdeCmpStringHandles(hsz1 : HSZ, hsz2 : HSZ) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn DdeConnect(idinst : u32, hszservice : HSZ, hsztopic : HSZ, pcc : *const CONVCONTEXT) -> HCONV); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn DdeConnectList(idinst : u32, hszservice : HSZ, hsztopic : HSZ, hconvlist : HCONVLIST, pcc : *const CONVCONTEXT) -> HCONVLIST); +::windows_targets::link!("user32.dll" "system" fn DdeCreateDataHandle(idinst : u32, psrc : *const u8, cb : u32, cboff : u32, hszitem : HSZ, wfmt : u32, afcmd : u32) -> HDDEDATA); +::windows_targets::link!("user32.dll" "system" fn DdeCreateStringHandleA(idinst : u32, psz : ::windows_sys::core::PCSTR, icodepage : i32) -> HSZ); +::windows_targets::link!("user32.dll" "system" fn DdeCreateStringHandleW(idinst : u32, psz : ::windows_sys::core::PCWSTR, icodepage : i32) -> HSZ); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdeDisconnect(hconv : HCONV) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdeDisconnectList(hconvlist : HCONVLIST) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdeEnableCallback(idinst : u32, hconv : HCONV, wcmd : DDE_ENABLE_CALLBACK_CMD) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdeFreeDataHandle(hdata : HDDEDATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdeFreeStringHandle(idinst : u32, hsz : HSZ) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn DdeGetData(hdata : HDDEDATA, pdst : *mut u8, cbmax : u32, cboff : u32) -> u32); +::windows_targets::link!("user32.dll" "system" fn DdeGetLastError(idinst : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdeImpersonateClient(hconv : HCONV) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn DdeInitializeA(pidinst : *mut u32, pfncallback : PFNCALLBACK, afcmd : DDE_INITIALIZE_COMMAND, ulres : u32) -> u32); +::windows_targets::link!("user32.dll" "system" fn DdeInitializeW(pidinst : *mut u32, pfncallback : PFNCALLBACK, afcmd : DDE_INITIALIZE_COMMAND, ulres : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdeKeepStringHandle(idinst : u32, hsz : HSZ) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn DdeNameService(idinst : u32, hsz1 : HSZ, hsz2 : HSZ, afcmd : DDE_NAME_SERVICE_CMD) -> HDDEDATA); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdePostAdvise(idinst : u32, hsztopic : HSZ, hszitem : HSZ) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn DdeQueryConvInfo(hconv : HCONV, idtransaction : u32, pconvinfo : *mut CONVINFO) -> u32); +::windows_targets::link!("user32.dll" "system" fn DdeQueryNextServer(hconvlist : HCONVLIST, hconvprev : HCONV) -> HCONV); +::windows_targets::link!("user32.dll" "system" fn DdeQueryStringA(idinst : u32, hsz : HSZ, psz : ::windows_sys::core::PSTR, cchmax : u32, icodepage : i32) -> u32); +::windows_targets::link!("user32.dll" "system" fn DdeQueryStringW(idinst : u32, hsz : HSZ, psz : ::windows_sys::core::PWSTR, cchmax : u32, icodepage : i32) -> u32); +::windows_targets::link!("user32.dll" "system" fn DdeReconnect(hconv : HCONV) -> HCONV); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn DdeSetQualityOfService(hwndclient : super::super::Foundation:: HWND, pqosnew : *const super::super::Security:: SECURITY_QUALITY_OF_SERVICE, pqosprev : *mut super::super::Security:: SECURITY_QUALITY_OF_SERVICE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdeSetUserHandle(hconv : HCONV, id : u32, huser : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdeUnaccessData(hdata : HDDEDATA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DdeUninitialize(idinst : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn DeleteAtom(natom : u16) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EmptyClipboard() -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn EnumClipboardFormats(format : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn FindAtomA(lpstring : ::windows_sys::core::PCSTR) -> u16); +::windows_targets::link!("kernel32.dll" "system" fn FindAtomW(lpstring : ::windows_sys::core::PCWSTR) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeDDElParam(msg : u32, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetAtomNameA(natom : u16, lpbuffer : ::windows_sys::core::PSTR, nsize : i32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetAtomNameW(natom : u16, lpbuffer : ::windows_sys::core::PWSTR, nsize : i32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClipboardData(uformat : u32) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("user32.dll" "system" fn GetClipboardFormatNameA(format : u32, lpszformatname : ::windows_sys::core::PSTR, cchmaxcount : i32) -> i32); +::windows_targets::link!("user32.dll" "system" fn GetClipboardFormatNameW(format : u32, lpszformatname : ::windows_sys::core::PWSTR, cchmaxcount : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClipboardOwner() -> super::super::Foundation:: HWND); +::windows_targets::link!("user32.dll" "system" fn GetClipboardSequenceNumber() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClipboardViewer() -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetOpenClipboardWindow() -> super::super::Foundation:: HWND); +::windows_targets::link!("user32.dll" "system" fn GetPriorityClipboardFormat(paformatprioritylist : *const u32, cformats : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUpdatedClipboardFormats(lpuiformats : *mut u32, cformats : u32, pcformatsout : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GlobalAddAtomA(lpstring : ::windows_sys::core::PCSTR) -> u16); +::windows_targets::link!("kernel32.dll" "system" fn GlobalAddAtomExA(lpstring : ::windows_sys::core::PCSTR, flags : u32) -> u16); +::windows_targets::link!("kernel32.dll" "system" fn GlobalAddAtomExW(lpstring : ::windows_sys::core::PCWSTR, flags : u32) -> u16); +::windows_targets::link!("kernel32.dll" "system" fn GlobalAddAtomW(lpstring : ::windows_sys::core::PCWSTR) -> u16); +::windows_targets::link!("kernel32.dll" "system" fn GlobalDeleteAtom(natom : u16) -> u16); +::windows_targets::link!("kernel32.dll" "system" fn GlobalFindAtomA(lpstring : ::windows_sys::core::PCSTR) -> u16); +::windows_targets::link!("kernel32.dll" "system" fn GlobalFindAtomW(lpstring : ::windows_sys::core::PCWSTR) -> u16); +::windows_targets::link!("kernel32.dll" "system" fn GlobalGetAtomNameA(natom : u16, lpbuffer : ::windows_sys::core::PSTR, nsize : i32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GlobalGetAtomNameW(natom : u16, lpbuffer : ::windows_sys::core::PWSTR, nsize : i32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImpersonateDdeClientWindow(hwndclient : super::super::Foundation:: HWND, hwndserver : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitAtomTable(nsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsClipboardFormatAvailable(format : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenClipboard(hwndnewowner : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PackDDElParam(msg : u32, uilo : usize, uihi : usize) -> super::super::Foundation:: LPARAM); +::windows_targets::link!("user32.dll" "system" fn RegisterClipboardFormatA(lpszformat : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("user32.dll" "system" fn RegisterClipboardFormatW(lpszformat : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveClipboardFormatListener(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReuseDDElParam(lparam : super::super::Foundation:: LPARAM, msgin : u32, msgout : u32, uilo : usize, uihi : usize) -> super::super::Foundation:: LPARAM); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetClipboardData(uformat : u32, hmem : super::super::Foundation:: HANDLE) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetClipboardViewer(hwndnewviewer : super::super::Foundation:: HWND) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn SetWinMetaFileBits(nsize : u32, lpmeta16data : *const u8, hdcref : super::super::Graphics::Gdi:: HDC, lpmfp : *const METAFILEPICT) -> super::super::Graphics::Gdi:: HENHMETAFILE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnpackDDElParam(msg : u32, lparam : super::super::Foundation:: LPARAM, puilo : *mut usize, puihi : *mut usize) -> super::super::Foundation:: BOOL); +pub const APPCLASS_MASK: i32 = 15i32; +pub const APPCLASS_MONITOR: DDE_INITIALIZE_COMMAND = 1u32; +pub const APPCLASS_STANDARD: DDE_INITIALIZE_COMMAND = 0u32; +pub const APPCMD_CLIENTONLY: DDE_INITIALIZE_COMMAND = 16u32; +pub const APPCMD_FILTERINITS: DDE_INITIALIZE_COMMAND = 32u32; +pub const APPCMD_MASK: i32 = 4080i32; +pub const CADV_LATEACK: u32 = 65535u32; +pub const CBF_FAIL_ADVISES: DDE_INITIALIZE_COMMAND = 16384u32; +pub const CBF_FAIL_ALLSVRXACTIONS: DDE_INITIALIZE_COMMAND = 258048u32; +pub const CBF_FAIL_CONNECTIONS: DDE_INITIALIZE_COMMAND = 8192u32; +pub const CBF_FAIL_EXECUTES: DDE_INITIALIZE_COMMAND = 32768u32; +pub const CBF_FAIL_POKES: DDE_INITIALIZE_COMMAND = 65536u32; +pub const CBF_FAIL_REQUESTS: DDE_INITIALIZE_COMMAND = 131072u32; +pub const CBF_FAIL_SELFCONNECTIONS: DDE_INITIALIZE_COMMAND = 4096u32; +pub const CBF_SKIP_ALLNOTIFICATIONS: DDE_INITIALIZE_COMMAND = 3932160u32; +pub const CBF_SKIP_CONNECT_CONFIRMS: DDE_INITIALIZE_COMMAND = 262144u32; +pub const CBF_SKIP_DISCONNECTS: DDE_INITIALIZE_COMMAND = 2097152u32; +pub const CBF_SKIP_REGISTRATIONS: DDE_INITIALIZE_COMMAND = 524288u32; +pub const CBF_SKIP_UNREGISTRATIONS: DDE_INITIALIZE_COMMAND = 1048576u32; +pub const CP_WINANSI: i32 = 1004i32; +pub const CP_WINNEUTRAL: i32 = 1200i32; +pub const CP_WINUNICODE: i32 = 1200i32; +pub const DDE_FACK: u32 = 32768u32; +pub const DDE_FACKREQ: u32 = 32768u32; +pub const DDE_FAPPSTATUS: u32 = 255u32; +pub const DDE_FBUSY: u32 = 16384u32; +pub const DDE_FDEFERUPD: u32 = 16384u32; +pub const DDE_FNOTPROCESSED: u32 = 0u32; +pub const DDE_FRELEASE: u32 = 8192u32; +pub const DDE_FREQUESTED: u32 = 4096u32; +pub const DMLERR_ADVACKTIMEOUT: u32 = 16384u32; +pub const DMLERR_BUSY: u32 = 16385u32; +pub const DMLERR_DATAACKTIMEOUT: u32 = 16386u32; +pub const DMLERR_DLL_NOT_INITIALIZED: u32 = 16387u32; +pub const DMLERR_DLL_USAGE: u32 = 16388u32; +pub const DMLERR_EXECACKTIMEOUT: u32 = 16389u32; +pub const DMLERR_FIRST: u32 = 16384u32; +pub const DMLERR_INVALIDPARAMETER: u32 = 16390u32; +pub const DMLERR_LAST: u32 = 16401u32; +pub const DMLERR_LOW_MEMORY: u32 = 16391u32; +pub const DMLERR_MEMORY_ERROR: u32 = 16392u32; +pub const DMLERR_NOTPROCESSED: u32 = 16393u32; +pub const DMLERR_NO_CONV_ESTABLISHED: u32 = 16394u32; +pub const DMLERR_NO_ERROR: u32 = 0u32; +pub const DMLERR_POKEACKTIMEOUT: u32 = 16395u32; +pub const DMLERR_POSTMSG_FAILED: u32 = 16396u32; +pub const DMLERR_REENTRANCY: u32 = 16397u32; +pub const DMLERR_SERVER_DIED: u32 = 16398u32; +pub const DMLERR_SYS_ERROR: u32 = 16399u32; +pub const DMLERR_UNADVACKTIMEOUT: u32 = 16400u32; +pub const DMLERR_UNFOUND_QUEUE_ID: u32 = 16401u32; +pub const DNS_FILTEROFF: DDE_NAME_SERVICE_CMD = 8u32; +pub const DNS_FILTERON: DDE_NAME_SERVICE_CMD = 4u32; +pub const DNS_REGISTER: DDE_NAME_SERVICE_CMD = 1u32; +pub const DNS_UNREGISTER: DDE_NAME_SERVICE_CMD = 2u32; +pub const EC_DISABLE: DDE_ENABLE_CALLBACK_CMD = 8u32; +pub const EC_ENABLEALL: DDE_ENABLE_CALLBACK_CMD = 0u32; +pub const EC_ENABLEONE: DDE_ENABLE_CALLBACK_CMD = 128u32; +pub const EC_QUERYWAITING: DDE_ENABLE_CALLBACK_CMD = 2u32; +pub const HDATA_APPOWNED: u32 = 1u32; +pub const MAX_MONITORS: u32 = 4u32; +pub const MF_CALLBACKS: DDE_INITIALIZE_COMMAND = 134217728u32; +pub const MF_CONV: DDE_INITIALIZE_COMMAND = 1073741824u32; +pub const MF_ERRORS: DDE_INITIALIZE_COMMAND = 268435456u32; +pub const MF_HSZ_INFO: DDE_INITIALIZE_COMMAND = 16777216u32; +pub const MF_LINKS: DDE_INITIALIZE_COMMAND = 536870912u32; +pub const MF_MASK: u32 = 4278190080u32; +pub const MF_POSTMSGS: DDE_INITIALIZE_COMMAND = 67108864u32; +pub const MF_SENDMSGS: DDE_INITIALIZE_COMMAND = 33554432u32; +pub const MH_CLEANUP: u32 = 4u32; +pub const MH_CREATE: u32 = 1u32; +pub const MH_DELETE: u32 = 3u32; +pub const MH_KEEP: u32 = 2u32; +pub const MSGF_DDEMGR: u32 = 32769u32; +pub const QID_SYNC: u32 = 4294967295u32; +pub const ST_ADVISE: CONVINFO_STATUS = 2u32; +pub const ST_BLOCKED: CONVINFO_STATUS = 8u32; +pub const ST_BLOCKNEXT: CONVINFO_STATUS = 128u32; +pub const ST_CLIENT: CONVINFO_STATUS = 16u32; +pub const ST_CONNECTED: CONVINFO_STATUS = 1u32; +pub const ST_INLIST: CONVINFO_STATUS = 64u32; +pub const ST_ISLOCAL: CONVINFO_STATUS = 4u32; +pub const ST_ISSELF: CONVINFO_STATUS = 256u32; +pub const ST_TERMINATED: CONVINFO_STATUS = 32u32; +pub const SZDDESYS_ITEM_FORMATS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Formats"); +pub const SZDDESYS_ITEM_HELP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Help"); +pub const SZDDESYS_ITEM_RTNMSG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReturnMessage"); +pub const SZDDESYS_ITEM_STATUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Status"); +pub const SZDDESYS_ITEM_SYSITEMS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysItems"); +pub const SZDDESYS_ITEM_TOPICS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Topics"); +pub const SZDDESYS_TOPIC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System"); +pub const SZDDE_ITEM_ITEMLIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TopicItemList"); +pub const TIMEOUT_ASYNC: u32 = 4294967295u32; +pub const WM_DDE_ACK: u32 = 996u32; +pub const WM_DDE_ADVISE: u32 = 994u32; +pub const WM_DDE_DATA: u32 = 997u32; +pub const WM_DDE_EXECUTE: u32 = 1000u32; +pub const WM_DDE_FIRST: u32 = 992u32; +pub const WM_DDE_INITIATE: u32 = 992u32; +pub const WM_DDE_LAST: u32 = 1000u32; +pub const WM_DDE_POKE: u32 = 999u32; +pub const WM_DDE_REQUEST: u32 = 998u32; +pub const WM_DDE_TERMINATE: u32 = 993u32; +pub const WM_DDE_UNADVISE: u32 = 995u32; +pub const XCLASS_BOOL: u32 = 4096u32; +pub const XCLASS_DATA: u32 = 8192u32; +pub const XCLASS_FLAGS: u32 = 16384u32; +pub const XCLASS_MASK: u32 = 64512u32; +pub const XCLASS_NOTIFICATION: u32 = 32768u32; +pub const XST_ADVACKRCVD: CONVINFO_CONVERSATION_STATE = 13u32; +pub const XST_ADVDATAACKRCVD: CONVINFO_CONVERSATION_STATE = 16u32; +pub const XST_ADVDATASENT: CONVINFO_CONVERSATION_STATE = 15u32; +pub const XST_ADVSENT: CONVINFO_CONVERSATION_STATE = 11u32; +pub const XST_CONNECTED: CONVINFO_CONVERSATION_STATE = 2u32; +pub const XST_DATARCVD: CONVINFO_CONVERSATION_STATE = 6u32; +pub const XST_EXECACKRCVD: CONVINFO_CONVERSATION_STATE = 10u32; +pub const XST_EXECSENT: CONVINFO_CONVERSATION_STATE = 9u32; +pub const XST_INCOMPLETE: CONVINFO_CONVERSATION_STATE = 1u32; +pub const XST_INIT1: CONVINFO_CONVERSATION_STATE = 3u32; +pub const XST_INIT2: CONVINFO_CONVERSATION_STATE = 4u32; +pub const XST_NULL: CONVINFO_CONVERSATION_STATE = 0u32; +pub const XST_POKEACKRCVD: CONVINFO_CONVERSATION_STATE = 8u32; +pub const XST_POKESENT: CONVINFO_CONVERSATION_STATE = 7u32; +pub const XST_REQSENT: CONVINFO_CONVERSATION_STATE = 5u32; +pub const XST_UNADVACKRCVD: CONVINFO_CONVERSATION_STATE = 14u32; +pub const XST_UNADVSENT: CONVINFO_CONVERSATION_STATE = 12u32; +pub const XTYPF_ACKREQ: u32 = 8u32; +pub const XTYPF_NOBLOCK: u32 = 2u32; +pub const XTYPF_NODATA: u32 = 4u32; +pub const XTYP_ADVDATA: DDE_CLIENT_TRANSACTION_TYPE = 16400u32; +pub const XTYP_ADVREQ: DDE_CLIENT_TRANSACTION_TYPE = 8226u32; +pub const XTYP_ADVSTART: DDE_CLIENT_TRANSACTION_TYPE = 4144u32; +pub const XTYP_ADVSTOP: DDE_CLIENT_TRANSACTION_TYPE = 32832u32; +pub const XTYP_CONNECT: DDE_CLIENT_TRANSACTION_TYPE = 4194u32; +pub const XTYP_CONNECT_CONFIRM: DDE_CLIENT_TRANSACTION_TYPE = 32882u32; +pub const XTYP_DISCONNECT: DDE_CLIENT_TRANSACTION_TYPE = 32962u32; +pub const XTYP_EXECUTE: DDE_CLIENT_TRANSACTION_TYPE = 16464u32; +pub const XTYP_MASK: u32 = 240u32; +pub const XTYP_MONITOR: DDE_CLIENT_TRANSACTION_TYPE = 33010u32; +pub const XTYP_POKE: DDE_CLIENT_TRANSACTION_TYPE = 16528u32; +pub const XTYP_REGISTER: DDE_CLIENT_TRANSACTION_TYPE = 32930u32; +pub const XTYP_REQUEST: DDE_CLIENT_TRANSACTION_TYPE = 8368u32; +pub const XTYP_SHIFT: u32 = 4u32; +pub const XTYP_UNREGISTER: DDE_CLIENT_TRANSACTION_TYPE = 32978u32; +pub const XTYP_WILDCONNECT: DDE_CLIENT_TRANSACTION_TYPE = 8418u32; +pub const XTYP_XACT_COMPLETE: DDE_CLIENT_TRANSACTION_TYPE = 32896u32; +pub type CONVINFO_CONVERSATION_STATE = u32; +pub type CONVINFO_STATUS = u32; +pub type DDE_CLIENT_TRANSACTION_TYPE = u32; +pub type DDE_ENABLE_CALLBACK_CMD = u32; +pub type DDE_INITIALIZE_COMMAND = u32; +pub type DDE_NAME_SERVICE_CMD = u32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct CONVCONTEXT { + pub cb: u32, + pub wFlags: u32, + pub wCountryID: u32, + pub iCodePage: i32, + pub dwLangID: u32, + pub dwSecurity: u32, + pub qos: super::super::Security::SECURITY_QUALITY_OF_SERVICE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for CONVCONTEXT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for CONVCONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct CONVINFO { + pub cb: u32, + pub hUser: usize, + pub hConvPartner: HCONV, + pub hszSvcPartner: HSZ, + pub hszServiceReq: HSZ, + pub hszTopic: HSZ, + pub hszItem: HSZ, + pub wFmt: u32, + pub wType: DDE_CLIENT_TRANSACTION_TYPE, + pub wStatus: CONVINFO_STATUS, + pub wConvst: CONVINFO_CONVERSATION_STATE, + pub wLastError: u32, + pub hConvList: HCONVLIST, + pub ConvCtxt: CONVCONTEXT, + pub hwnd: super::super::Foundation::HWND, + pub hwndPartner: super::super::Foundation::HWND, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for CONVINFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for CONVINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COPYDATASTRUCT { + pub dwData: usize, + pub cbData: u32, + pub lpData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for COPYDATASTRUCT {} +impl ::core::clone::Clone for COPYDATASTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDEACK { + pub _bitfield: u16, +} +impl ::core::marker::Copy for DDEACK {} +impl ::core::clone::Clone for DDEACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDEADVISE { + pub _bitfield: u16, + pub cfFormat: i16, +} +impl ::core::marker::Copy for DDEADVISE {} +impl ::core::clone::Clone for DDEADVISE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDEDATA { + pub _bitfield: u16, + pub cfFormat: i16, + pub Value: [u8; 1], +} +impl ::core::marker::Copy for DDEDATA {} +impl ::core::clone::Clone for DDEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDELN { + pub _bitfield: u16, + pub cfFormat: i16, +} +impl ::core::marker::Copy for DDELN {} +impl ::core::clone::Clone for DDELN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDEML_MSG_HOOK_DATA { + pub uiLo: usize, + pub uiHi: usize, + pub cbData: u32, + pub Data: [u32; 8], +} +impl ::core::marker::Copy for DDEML_MSG_HOOK_DATA {} +impl ::core::clone::Clone for DDEML_MSG_HOOK_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDEPOKE { + pub _bitfield: u16, + pub cfFormat: i16, + pub Value: [u8; 1], +} +impl ::core::marker::Copy for DDEPOKE {} +impl ::core::clone::Clone for DDEPOKE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DDEUP { + pub _bitfield: u16, + pub cfFormat: i16, + pub rgb: [u8; 1], +} +impl ::core::marker::Copy for DDEUP {} +impl ::core::clone::Clone for DDEUP { + fn clone(&self) -> Self { + *self + } +} +pub type HCONV = isize; +pub type HCONVLIST = isize; +pub type HDDEDATA = isize; +pub type HSZ = isize; +#[repr(C)] +pub struct HSZPAIR { + pub hszSvc: HSZ, + pub hszTopic: HSZ, +} +impl ::core::marker::Copy for HSZPAIR {} +impl ::core::clone::Clone for HSZPAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct METAFILEPICT { + pub mm: i32, + pub xExt: i32, + pub yExt: i32, + pub hMF: super::super::Graphics::Gdi::HMETAFILE, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for METAFILEPICT {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for METAFILEPICT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct MONCBSTRUCT { + pub cb: u32, + pub dwTime: u32, + pub hTask: super::super::Foundation::HANDLE, + pub dwRet: u32, + pub wType: u32, + pub wFmt: u32, + pub hConv: HCONV, + pub hsz1: HSZ, + pub hsz2: HSZ, + pub hData: HDDEDATA, + pub dwData1: usize, + pub dwData2: usize, + pub cc: CONVCONTEXT, + pub cbData: u32, + pub Data: [u32; 8], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for MONCBSTRUCT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for MONCBSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MONCONVSTRUCT { + pub cb: u32, + pub fConnect: super::super::Foundation::BOOL, + pub dwTime: u32, + pub hTask: super::super::Foundation::HANDLE, + pub hszSvc: HSZ, + pub hszTopic: HSZ, + pub hConvClient: HCONV, + pub hConvServer: HCONV, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MONCONVSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MONCONVSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MONERRSTRUCT { + pub cb: u32, + pub wLastError: u32, + pub dwTime: u32, + pub hTask: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MONERRSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MONERRSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MONHSZSTRUCTA { + pub cb: u32, + pub fsAction: super::super::Foundation::BOOL, + pub dwTime: u32, + pub hsz: HSZ, + pub hTask: super::super::Foundation::HANDLE, + pub str: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MONHSZSTRUCTA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MONHSZSTRUCTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MONHSZSTRUCTW { + pub cb: u32, + pub fsAction: super::super::Foundation::BOOL, + pub dwTime: u32, + pub hsz: HSZ, + pub hTask: super::super::Foundation::HANDLE, + pub str: [u16; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MONHSZSTRUCTW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MONHSZSTRUCTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MONLINKSTRUCT { + pub cb: u32, + pub dwTime: u32, + pub hTask: super::super::Foundation::HANDLE, + pub fEstablished: super::super::Foundation::BOOL, + pub fNoData: super::super::Foundation::BOOL, + pub hszSvc: HSZ, + pub hszTopic: HSZ, + pub hszItem: HSZ, + pub wFmt: u32, + pub fServer: super::super::Foundation::BOOL, + pub hConvServer: HCONV, + pub hConvClient: HCONV, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MONLINKSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MONLINKSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MONMSGSTRUCT { + pub cb: u32, + pub hwndTo: super::super::Foundation::HWND, + pub dwTime: u32, + pub hTask: super::super::Foundation::HANDLE, + pub wMsg: u32, + pub wParam: super::super::Foundation::WPARAM, + pub lParam: super::super::Foundation::LPARAM, + pub dmhd: DDEML_MSG_HOOK_DATA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MONMSGSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MONMSGSTRUCT { + fn clone(&self) -> Self { + *self + } +} +pub type PFNCALLBACK = ::core::option::Option HDDEDATA>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/DeploymentServices/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/DeploymentServices/mod.rs new file mode 100644 index 000000000..9790e4d65 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/DeploymentServices/mod.rs @@ -0,0 +1,769 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxeAsyncRecvDone(hclientrequest : super::super::Foundation:: HANDLE, action : u32) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeDhcpAppendOption(preplypacket : *mut ::core::ffi::c_void, umaxreplypacketlen : u32, pureplypacketlen : *mut u32, boption : u8, boptionlen : u8, pvalue : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeDhcpAppendOptionRaw(preplypacket : *mut ::core::ffi::c_void, umaxreplypacketlen : u32, pureplypacketlen : *mut u32, ubufferlen : u16, pbuffer : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeDhcpGetOptionValue(ppacket : *const ::core::ffi::c_void, upacketlen : u32, uinstance : u32, boption : u8, pboptionlen : *mut u8, ppoptionvalue : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeDhcpGetVendorOptionValue(ppacket : *const ::core::ffi::c_void, upacketlen : u32, boption : u8, uinstance : u32, pboptionlen : *mut u8, ppoptionvalue : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeDhcpInitialize(precvpacket : *const ::core::ffi::c_void, urecvpacketlen : u32, preplypacket : *mut ::core::ffi::c_void, umaxreplypacketlen : u32, pureplypacketlen : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxeDhcpIsValid(ppacket : *const ::core::ffi::c_void, upacketlen : u32, brequestpacket : super::super::Foundation:: BOOL, pbpxeoptionpresent : *mut super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeDhcpv6AppendOption(preply : *mut ::core::ffi::c_void, cbreply : u32, pcbreplyused : *mut u32, woptiontype : u16, cboption : u16, poption : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeDhcpv6AppendOptionRaw(preply : *mut ::core::ffi::c_void, cbreply : u32, pcbreplyused : *mut u32, cbbuffer : u16, pbuffer : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeDhcpv6CreateRelayRepl(prelaymessages : *const PXE_DHCPV6_NESTED_RELAY_MESSAGE, nrelaymessages : u32, pinnerpacket : *const u8, cbinnerpacket : u32, preplybuffer : *mut ::core::ffi::c_void, cbreplybuffer : u32, pcbreplybuffer : *mut u32) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeDhcpv6GetOptionValue(ppacket : *const ::core::ffi::c_void, upacketlen : u32, uinstance : u32, woption : u16, pwoptionlen : *mut u16, ppoptionvalue : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeDhcpv6GetVendorOptionValue(ppacket : *const ::core::ffi::c_void, upacketlen : u32, dwenterprisenumber : u32, woption : u16, uinstance : u32, pwoptionlen : *mut u16, ppoptionvalue : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeDhcpv6Initialize(prequest : *const ::core::ffi::c_void, cbrequest : u32, preply : *mut ::core::ffi::c_void, cbreply : u32, pcbreplyused : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxeDhcpv6IsValid(ppacket : *const ::core::ffi::c_void, upacketlen : u32, brequestpacket : super::super::Foundation:: BOOL, pbpxeoptionpresent : *mut super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeDhcpv6ParseRelayForw(prelayforwpacket : *const ::core::ffi::c_void, urelayforwpacketlen : u32, prelaymessages : *mut PXE_DHCPV6_NESTED_RELAY_MESSAGE, nrelaymessages : u32, pnrelaymessages : *mut u32, ppinnerpacket : *mut *mut u8, pcbinnerpacket : *mut u32) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeGetServerInfo(uinfotype : u32, pbuffer : *mut ::core::ffi::c_void, ubufferlen : u32) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeGetServerInfoEx(uinfotype : u32, pbuffer : *mut ::core::ffi::c_void, ubufferlen : u32, pubufferused : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxePacketAllocate(hprovider : super::super::Foundation:: HANDLE, hclientrequest : super::super::Foundation:: HANDLE, usize : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxePacketFree(hprovider : super::super::Foundation:: HANDLE, hclientrequest : super::super::Foundation:: HANDLE, ppacket : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxeProviderEnumClose(henum : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxeProviderEnumFirst(phenum : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxeProviderEnumNext(henum : super::super::Foundation:: HANDLE, ppprovider : *mut *mut PXE_PROVIDER) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxeProviderFreeInfo(pprovider : *const PXE_PROVIDER) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeProviderQueryIndex(pszprovidername : ::windows_sys::core::PCWSTR, puindex : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PxeProviderRegister(pszprovidername : ::windows_sys::core::PCWSTR, pszmodulepath : ::windows_sys::core::PCWSTR, index : u32, biscritical : super::super::Foundation:: BOOL, phproviderkey : *mut super::Registry:: HKEY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxeProviderSetAttribute(hprovider : super::super::Foundation:: HANDLE, attribute : u32, pparameterbuffer : *const ::core::ffi::c_void, uparamlen : u32) -> u32); +::windows_targets::link!("wdspxe.dll" "system" fn PxeProviderUnRegister(pszprovidername : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxeRegisterCallback(hprovider : super::super::Foundation:: HANDLE, callbacktype : u32, pcallbackfunction : *const ::core::ffi::c_void, pcontext : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxeSendReply(hclientrequest : super::super::Foundation:: HANDLE, ppacket : *const ::core::ffi::c_void, upacketlen : u32, paddress : *const PXE_ADDRESS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxeTrace(hprovider : super::super::Foundation:: HANDLE, severity : u32, pszformat : ::windows_sys::core::PCWSTR, ...) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdspxe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PxeTraceV(hprovider : super::super::Foundation:: HANDLE, severity : u32, pszformat : ::windows_sys::core::PCWSTR, params : *const i8) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsbp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsBpAddOption(hhandle : super::super::Foundation:: HANDLE, uoption : u32, uvaluelen : u32, pvalue : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsbp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsBpCloseHandle(hhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsbp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsBpGetOptionBuffer(hhandle : super::super::Foundation:: HANDLE, ubufferlen : u32, pbuffer : *mut ::core::ffi::c_void, pubytes : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsbp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsBpInitialize(bpackettype : u8, phhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsbp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsBpParseInitialize(ppacket : *const ::core::ffi::c_void, upacketlen : u32, pbpackettype : *mut u8, phhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsbp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsBpParseInitializev6(ppacket : *const ::core::ffi::c_void, upacketlen : u32, pbpackettype : *mut u8, phhandle : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsbp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsBpQueryOption(hhandle : super::super::Foundation:: HANDLE, uoption : u32, uvaluelen : u32, pvalue : *mut ::core::ffi::c_void, pubytes : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliAuthorizeSession(hsession : super::super::Foundation:: HANDLE, pcred : *const WDS_CLI_CRED) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliCancelTransfer(htransfer : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliClose(handle : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliCreateSession(pwszserver : ::windows_sys::core::PCWSTR, pcred : *const WDS_CLI_CRED, phsession : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliFindFirstImage(hsession : super::super::Foundation:: HANDLE, phfindhandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliFindNextImage(handle : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wdsclientapi.dll" "system" fn WdsCliFreeStringArray(ppwszarray : *mut ::windows_sys::core::PWSTR, ulcount : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wdsclientapi.dll" "system" fn WdsCliGetDriverQueryXml(pwszwindirpath : ::windows_sys::core::PCWSTR, ppwszdriverquery : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetEnumerationFlags(handle : super::super::Foundation:: HANDLE, pdwflags : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageArchitecture(hifh : super::super::Foundation:: HANDLE, pdwvalue : *mut CPU_ARCHITECTURE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageDescription(hifh : super::super::Foundation:: HANDLE, ppwszvalue : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageFiles(hifh : super::super::Foundation:: HANDLE, pppwszfiles : *mut *mut ::windows_sys::core::PWSTR, pdwcount : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageGroup(hifh : super::super::Foundation:: HANDLE, ppwszvalue : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageHalName(hifh : super::super::Foundation:: HANDLE, ppwszvalue : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageHandleFromFindHandle(findhandle : super::super::Foundation:: HANDLE, phimagehandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageHandleFromTransferHandle(htransfer : super::super::Foundation:: HANDLE, phimagehandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageIndex(hifh : super::super::Foundation:: HANDLE, pdwvalue : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageLanguage(hifh : super::super::Foundation:: HANDLE, ppwszvalue : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageLanguages(hifh : super::super::Foundation:: HANDLE, pppszvalues : *mut *mut *mut i8, pdwnumvalues : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageLastModifiedTime(hifh : super::super::Foundation:: HANDLE, ppsystimevalue : *mut *mut super::super::Foundation:: SYSTEMTIME) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageName(hifh : super::super::Foundation:: HANDLE, ppwszvalue : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageNamespace(hifh : super::super::Foundation:: HANDLE, ppwszvalue : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageParameter(hifh : super::super::Foundation:: HANDLE, paramtype : WDS_CLI_IMAGE_PARAM_TYPE, presponse : *mut ::core::ffi::c_void, uresponselen : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImagePath(hifh : super::super::Foundation:: HANDLE, ppwszvalue : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageSize(hifh : super::super::Foundation:: HANDLE, pullvalue : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageType(hifh : super::super::Foundation:: HANDLE, pimagetype : *mut WDS_CLI_IMAGE_TYPE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetImageVersion(hifh : super::super::Foundation:: HANDLE, ppwszvalue : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliGetTransferSize(hifh : super::super::Foundation:: HANDLE, pullvalue : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliInitializeLog(hsession : super::super::Foundation:: HANDLE, ulclientarchitecture : CPU_ARCHITECTURE, pwszclientid : ::windows_sys::core::PCWSTR, pwszclientaddress : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliLog(hsession : super::super::Foundation:: HANDLE, ulloglevel : u32, ulmessagecode : u32, ...) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliObtainDriverPackages(himage : super::super::Foundation:: HANDLE, ppwszservername : *mut ::windows_sys::core::PWSTR, pppwszdriverpackages : *mut *mut ::windows_sys::core::PWSTR, pulcount : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliObtainDriverPackagesEx(hsession : super::super::Foundation:: HANDLE, pwszmachineinfo : ::windows_sys::core::PCWSTR, ppwszservername : *mut ::windows_sys::core::PWSTR, pppwszdriverpackages : *mut *mut ::windows_sys::core::PWSTR, pulcount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wdsclientapi.dll" "system" fn WdsCliRegisterTrace(pfn : PFN_WdsCliTraceFunction) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wdsclientapi.dll" "system" fn WdsCliSetTransferBufferSize(ulsizeinbytes : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliTransferFile(pwszserver : ::windows_sys::core::PCWSTR, pwsznamespace : ::windows_sys::core::PCWSTR, pwszremotefilepath : ::windows_sys::core::PCWSTR, pwszlocalfilepath : ::windows_sys::core::PCWSTR, dwflags : u32, dwreserved : u32, pfnwdsclicallback : PFN_WdsCliCallback, pvuserdata : *const ::core::ffi::c_void, phtransfer : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliTransferImage(himage : super::super::Foundation:: HANDLE, pwszlocalpath : ::windows_sys::core::PCWSTR, dwflags : u32, dwreserved : u32, pfnwdsclicallback : PFN_WdsCliCallback, pvuserdata : *const ::core::ffi::c_void, phtransfer : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsclientapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsCliWaitForTransfer(htransfer : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wdstptc.dll" "system" fn WdsTransportClientAddRefBuffer(pvbuffer : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdstptc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportClientCancelSession(hsessionkey : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdstptc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportClientCancelSessionEx(hsessionkey : super::super::Foundation:: HANDLE, dwerrorcode : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdstptc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportClientCloseSession(hsessionkey : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdstptc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportClientCompleteReceive(hsessionkey : super::super::Foundation:: HANDLE, ulsize : u32, pulloffset : *const u64) -> u32); +::windows_targets::link!("wdstptc.dll" "system" fn WdsTransportClientInitialize() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdstptc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportClientInitializeSession(psessionrequest : *const WDS_TRANSPORTCLIENT_REQUEST, pcallerdata : *const ::core::ffi::c_void, hsessionkey : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdstptc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportClientQueryStatus(hsessionkey : super::super::Foundation:: HANDLE, pustatus : *mut u32, puerrorcode : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdstptc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportClientRegisterCallback(hsessionkey : super::super::Foundation:: HANDLE, callbackid : TRANSPORTCLIENT_CALLBACK_ID, pfncallback : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("wdstptc.dll" "system" fn WdsTransportClientReleaseBuffer(pvbuffer : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("wdstptc.dll" "system" fn WdsTransportClientShutdown() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdstptc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportClientStartSession(hsessionkey : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdstptc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportClientWaitForCompletion(hsessionkey : super::super::Foundation:: HANDLE, utimeout : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsmc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportServerAllocateBuffer(hprovider : super::super::Foundation:: HANDLE, ulbuffersize : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsmc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportServerCompleteRead(hprovider : super::super::Foundation:: HANDLE, ulbytesread : u32, pvuserdata : *const ::core::ffi::c_void, hreadresult : ::windows_sys::core::HRESULT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsmc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportServerFreeBuffer(hprovider : super::super::Foundation:: HANDLE, pvbuffer : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsmc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportServerRegisterCallback(hprovider : super::super::Foundation:: HANDLE, callbackid : TRANSPORTPROVIDER_CALLBACK_ID, pfncallback : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsmc.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportServerTrace(hprovider : super::super::Foundation:: HANDLE, severity : u32, pwszformat : ::windows_sys::core::PCWSTR, ...) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wdsmc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WdsTransportServerTraceV(hprovider : super::super::Foundation:: HANDLE, severity : u32, pwszformat : ::windows_sys::core::PCWSTR, params : *const i8) -> ::windows_sys::core::HRESULT); +pub type IWdsTransportCacheable = *mut ::core::ffi::c_void; +pub type IWdsTransportClient = *mut ::core::ffi::c_void; +pub type IWdsTransportCollection = *mut ::core::ffi::c_void; +pub type IWdsTransportConfigurationManager = *mut ::core::ffi::c_void; +pub type IWdsTransportConfigurationManager2 = *mut ::core::ffi::c_void; +pub type IWdsTransportContent = *mut ::core::ffi::c_void; +pub type IWdsTransportContentProvider = *mut ::core::ffi::c_void; +pub type IWdsTransportDiagnosticsPolicy = *mut ::core::ffi::c_void; +pub type IWdsTransportManager = *mut ::core::ffi::c_void; +pub type IWdsTransportMulticastSessionPolicy = *mut ::core::ffi::c_void; +pub type IWdsTransportNamespace = *mut ::core::ffi::c_void; +pub type IWdsTransportNamespaceAutoCast = *mut ::core::ffi::c_void; +pub type IWdsTransportNamespaceManager = *mut ::core::ffi::c_void; +pub type IWdsTransportNamespaceScheduledCast = *mut ::core::ffi::c_void; +pub type IWdsTransportNamespaceScheduledCastAutoStart = *mut ::core::ffi::c_void; +pub type IWdsTransportNamespaceScheduledCastManualStart = *mut ::core::ffi::c_void; +pub type IWdsTransportServer = *mut ::core::ffi::c_void; +pub type IWdsTransportServer2 = *mut ::core::ffi::c_void; +pub type IWdsTransportServicePolicy = *mut ::core::ffi::c_void; +pub type IWdsTransportServicePolicy2 = *mut ::core::ffi::c_void; +pub type IWdsTransportSession = *mut ::core::ffi::c_void; +pub type IWdsTransportSetupManager = *mut ::core::ffi::c_void; +pub type IWdsTransportSetupManager2 = *mut ::core::ffi::c_void; +pub type IWdsTransportTftpClient = *mut ::core::ffi::c_void; +pub type IWdsTransportTftpManager = *mut ::core::ffi::c_void; +pub const CPU_ARCHITECTURE_AMD64: CPU_ARCHITECTURE = 9u32; +pub const CPU_ARCHITECTURE_IA64: CPU_ARCHITECTURE = 6u32; +pub const CPU_ARCHITECTURE_INTEL: CPU_ARCHITECTURE = 0u32; +pub const EVT_WDSMCS_E_CP_CALLBACKS_NOT_REG: ::windows_sys::core::HRESULT = -1054801324i32; +pub const EVT_WDSMCS_E_CP_CLOSE_INSTANCE_FAILED: ::windows_sys::core::HRESULT = -1054801320i32; +pub const EVT_WDSMCS_E_CP_DLL_LOAD_FAILED: ::windows_sys::core::HRESULT = -1054801328i32; +pub const EVT_WDSMCS_E_CP_DLL_LOAD_FAILED_CRITICAL: ::windows_sys::core::HRESULT = -1054801317i32; +pub const EVT_WDSMCS_E_CP_INCOMPATIBLE_SERVER_VERSION: ::windows_sys::core::HRESULT = -1054801325i32; +pub const EVT_WDSMCS_E_CP_INIT_FUNC_FAILED: ::windows_sys::core::HRESULT = -1054801326i32; +pub const EVT_WDSMCS_E_CP_INIT_FUNC_MISSING: ::windows_sys::core::HRESULT = -1054801327i32; +pub const EVT_WDSMCS_E_CP_MEMORY_LEAK: ::windows_sys::core::HRESULT = -1054801322i32; +pub const EVT_WDSMCS_E_CP_OPEN_CONTENT_FAILED: ::windows_sys::core::HRESULT = -1054801319i32; +pub const EVT_WDSMCS_E_CP_OPEN_INSTANCE_FAILED: ::windows_sys::core::HRESULT = -1054801321i32; +pub const EVT_WDSMCS_E_CP_SHUTDOWN_FUNC_FAILED: ::windows_sys::core::HRESULT = -1054801323i32; +pub const EVT_WDSMCS_E_DUPLICATE_MULTICAST_ADDR: ::windows_sys::core::HRESULT = -1054801406i32; +pub const EVT_WDSMCS_E_NON_WDS_DUPLICATE_MULTICAST_ADDR: ::windows_sys::core::HRESULT = -1054801405i32; +pub const EVT_WDSMCS_E_NSREG_CONTENT_PROVIDER_NOT_REG: ::windows_sys::core::HRESULT = -1054801151i32; +pub const EVT_WDSMCS_E_NSREG_FAILURE: ::windows_sys::core::HRESULT = -1054801149i32; +pub const EVT_WDSMCS_E_NSREG_NAMESPACE_EXISTS: ::windows_sys::core::HRESULT = -1054801150i32; +pub const EVT_WDSMCS_E_NSREG_START_TIME_IN_PAST: ::windows_sys::core::HRESULT = -1054801152i32; +pub const EVT_WDSMCS_E_PARAMETERS_READ_FAILED: ::windows_sys::core::HRESULT = -1054801407i32; +pub const EVT_WDSMCS_S_PARAMETERS_READ: ::windows_sys::core::HRESULT = 1092682240i32; +pub const EVT_WDSMCS_W_CP_DLL_LOAD_FAILED_NOT_CRITICAL: ::windows_sys::core::HRESULT = -2128543142i32; +pub const FACILITY_WDSMCCLIENT: u32 = 290u32; +pub const FACILITY_WDSMCSERVER: u32 = 289u32; +pub const FACILITY_WDSTPTMGMT: u32 = 272u32; +pub const MC_SERVER_CURRENT_VERSION: u32 = 1u32; +pub const PXE_ADDR_BROADCAST: u32 = 1u32; +pub const PXE_ADDR_USE_ADDR: u32 = 4u32; +pub const PXE_ADDR_USE_DHCP_RULES: u32 = 8u32; +pub const PXE_ADDR_USE_PORT: u32 = 2u32; +pub const PXE_BA_CUSTOM: u32 = 2u32; +pub const PXE_BA_IGNORE: u32 = 3u32; +pub const PXE_BA_NBP: u32 = 1u32; +pub const PXE_BA_REJECTED: u32 = 4u32; +pub const PXE_CALLBACK_MAX: u32 = 3u32; +pub const PXE_CALLBACK_RECV_REQUEST: u32 = 0u32; +pub const PXE_CALLBACK_SERVICE_CONTROL: u32 = 2u32; +pub const PXE_CALLBACK_SHUTDOWN: u32 = 1u32; +pub const PXE_DHCPV6_CLIENT_PORT: u32 = 546u32; +pub const PXE_DHCPV6_RELAY_HOP_COUNT_LIMIT: u32 = 32u32; +pub const PXE_DHCPV6_SERVER_PORT: u32 = 547u32; +pub const PXE_DHCP_CLIENT_PORT: u32 = 68u32; +pub const PXE_DHCP_FILE_SIZE: u32 = 128u32; +pub const PXE_DHCP_HWAADR_SIZE: u32 = 16u32; +pub const PXE_DHCP_MAGIC_COOKIE_SIZE: u32 = 4u32; +pub const PXE_DHCP_SERVER_PORT: u32 = 67u32; +pub const PXE_DHCP_SERVER_SIZE: u32 = 64u32; +pub const PXE_GSI_SERVER_DUID: u32 = 2u32; +pub const PXE_GSI_TRACE_ENABLED: u32 = 1u32; +pub const PXE_MAX_ADDRESS: u32 = 16u32; +pub const PXE_PROV_ATTR_FILTER: u32 = 0u32; +pub const PXE_PROV_ATTR_FILTER_IPV6: u32 = 1u32; +pub const PXE_PROV_ATTR_IPV6_CAPABLE: u32 = 2u32; +pub const PXE_PROV_FILTER_ALL: u32 = 0u32; +pub const PXE_PROV_FILTER_DHCP_ONLY: u32 = 1u32; +pub const PXE_PROV_FILTER_PXE_ONLY: u32 = 2u32; +pub const PXE_REG_INDEX_BOTTOM: u32 = 4294967295u32; +pub const PXE_REG_INDEX_TOP: u32 = 0u32; +pub const PXE_SERVER_PORT: u32 = 4011u32; +pub const PXE_TRACE_ERROR: u32 = 524288u32; +pub const PXE_TRACE_FATAL: u32 = 1048576u32; +pub const PXE_TRACE_INFO: u32 = 131072u32; +pub const PXE_TRACE_VERBOSE: u32 = 65536u32; +pub const PXE_TRACE_WARNING: u32 = 262144u32; +pub const TRANSPORTPROVIDER_CURRENT_VERSION: u32 = 1u32; +pub const WDSBP_OPTVAL_ACTION_ABORT: u32 = 5u32; +pub const WDSBP_OPTVAL_ACTION_APPROVAL: u32 = 1u32; +pub const WDSBP_OPTVAL_ACTION_REFERRAL: u32 = 3u32; +pub const WDSBP_OPTVAL_NBP_VER_7: u32 = 1792u32; +pub const WDSBP_OPTVAL_NBP_VER_8: u32 = 2048u32; +pub const WDSBP_OPTVAL_PXE_PROMPT_NOPROMPT: u32 = 2u32; +pub const WDSBP_OPTVAL_PXE_PROMPT_OPTIN: u32 = 1u32; +pub const WDSBP_OPTVAL_PXE_PROMPT_OPTOUT: u32 = 3u32; +pub const WDSBP_OPT_TYPE_BYTE: u32 = 1u32; +pub const WDSBP_OPT_TYPE_IP4: u32 = 6u32; +pub const WDSBP_OPT_TYPE_IP6: u32 = 7u32; +pub const WDSBP_OPT_TYPE_NONE: u32 = 0u32; +pub const WDSBP_OPT_TYPE_STR: u32 = 5u32; +pub const WDSBP_OPT_TYPE_ULONG: u32 = 3u32; +pub const WDSBP_OPT_TYPE_USHORT: u32 = 2u32; +pub const WDSBP_OPT_TYPE_WSTR: u32 = 4u32; +pub const WDSBP_PK_TYPE_BCD: u32 = 4u32; +pub const WDSBP_PK_TYPE_DHCP: u32 = 1u32; +pub const WDSBP_PK_TYPE_DHCPV6: u32 = 8u32; +pub const WDSBP_PK_TYPE_WDSNBP: u32 = 2u32; +pub const WDSMCCLIENT_CATEGORY: ::windows_sys::core::HRESULT = 2i32; +pub const WDSMCSERVER_CATEGORY: ::windows_sys::core::HRESULT = 1i32; +pub const WDSMCS_E_CLIENT_DOESNOT_SUPPORT_SECURITY_MODE: ::windows_sys::core::HRESULT = -1054801648i32; +pub const WDSMCS_E_CLIENT_NOT_FOUND: ::windows_sys::core::HRESULT = -1054801660i32; +pub const WDSMCS_E_CONTENT_NOT_FOUND: ::windows_sys::core::HRESULT = -1054801661i32; +pub const WDSMCS_E_CONTENT_PROVIDER_NOT_FOUND: ::windows_sys::core::HRESULT = -1054801658i32; +pub const WDSMCS_E_INCOMPATIBLE_VERSION: ::windows_sys::core::HRESULT = -1054801662i32; +pub const WDSMCS_E_NAMESPACE_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -1054801657i32; +pub const WDSMCS_E_NAMESPACE_ALREADY_STARTED: ::windows_sys::core::HRESULT = -1054801655i32; +pub const WDSMCS_E_NAMESPACE_NOT_FOUND: ::windows_sys::core::HRESULT = -1054801659i32; +pub const WDSMCS_E_NAMESPACE_SHUTDOWN_IN_PROGRESS: ::windows_sys::core::HRESULT = -1054801656i32; +pub const WDSMCS_E_NS_START_FAILED_NO_CLIENTS: ::windows_sys::core::HRESULT = -1054801654i32; +pub const WDSMCS_E_PACKET_HAS_SECURITY: ::windows_sys::core::HRESULT = -1054801650i32; +pub const WDSMCS_E_PACKET_NOT_CHECKSUMED: ::windows_sys::core::HRESULT = -1054801649i32; +pub const WDSMCS_E_PACKET_NOT_HASHED: ::windows_sys::core::HRESULT = -1054801652i32; +pub const WDSMCS_E_PACKET_NOT_SIGNED: ::windows_sys::core::HRESULT = -1054801651i32; +pub const WDSMCS_E_REQCALLBACKS_NOT_REG: ::windows_sys::core::HRESULT = -1054801663i32; +pub const WDSMCS_E_SESSION_SHUTDOWN_IN_PROGRESS: ::windows_sys::core::HRESULT = -1054801664i32; +pub const WDSMCS_E_START_TIME_IN_PAST: ::windows_sys::core::HRESULT = -1054801653i32; +pub const WDSTPC_E_ALREADY_COMPLETED: ::windows_sys::core::HRESULT = -1054735615i32; +pub const WDSTPC_E_ALREADY_IN_LOWEST_SESSION: ::windows_sys::core::HRESULT = -1054735606i32; +pub const WDSTPC_E_ALREADY_IN_PROGRESS: ::windows_sys::core::HRESULT = -1054735614i32; +pub const WDSTPC_E_CALLBACKS_NOT_REG: ::windows_sys::core::HRESULT = -1054735616i32; +pub const WDSTPC_E_CLIENT_DEMOTE_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1054735605i32; +pub const WDSTPC_E_KICKED_FAIL: ::windows_sys::core::HRESULT = -1054735609i32; +pub const WDSTPC_E_KICKED_FALLBACK: ::windows_sys::core::HRESULT = -1054735610i32; +pub const WDSTPC_E_KICKED_POLICY_NOT_MET: ::windows_sys::core::HRESULT = -1054735611i32; +pub const WDSTPC_E_KICKED_UNKNOWN: ::windows_sys::core::HRESULT = -1054735608i32; +pub const WDSTPC_E_MULTISTREAM_NOT_ENABLED: ::windows_sys::core::HRESULT = -1054735607i32; +pub const WDSTPC_E_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -1054735612i32; +pub const WDSTPC_E_NO_IP4_INTERFACE: ::windows_sys::core::HRESULT = -1054735604i32; +pub const WDSTPC_E_UNKNOWN_ERROR: ::windows_sys::core::HRESULT = -1054735613i32; +pub const WDSTPTC_E_WIM_APPLY_REQUIRES_REFERENCE_IMAGE: ::windows_sys::core::HRESULT = -1054735603i32; +pub const WDSTPTMGMT_CATEGORY: ::windows_sys::core::HRESULT = 1i32; +pub const WDSTPTMGMT_E_CANNOT_REFRESH_DIRTY_OBJECT: ::windows_sys::core::HRESULT = -1055915761i32; +pub const WDSTPTMGMT_E_CANNOT_REINITIALIZE_OBJECT: ::windows_sys::core::HRESULT = -1055915767i32; +pub const WDSTPTMGMT_E_CONTENT_PROVIDER_ALREADY_REGISTERED: ::windows_sys::core::HRESULT = -1055915773i32; +pub const WDSTPTMGMT_E_CONTENT_PROVIDER_NOT_REGISTERED: ::windows_sys::core::HRESULT = -1055915772i32; +pub const WDSTPTMGMT_E_INVALID_AUTO_DISCONNECT_THRESHOLD: ::windows_sys::core::HRESULT = -1055915748i32; +pub const WDSTPTMGMT_E_INVALID_CLASS: ::windows_sys::core::HRESULT = -1055915774i32; +pub const WDSTPTMGMT_E_INVALID_CONTENT_PROVIDER_NAME: ::windows_sys::core::HRESULT = -1055915771i32; +pub const WDSTPTMGMT_E_INVALID_DIAGNOSTICS_COMPONENTS: ::windows_sys::core::HRESULT = -1055915762i32; +pub const WDSTPTMGMT_E_INVALID_IPV4_MULTICAST_ADDRESS: ::windows_sys::core::HRESULT = -1055915753i32; +pub const WDSTPTMGMT_E_INVALID_IPV6_MULTICAST_ADDRESS: ::windows_sys::core::HRESULT = -1055915752i32; +pub const WDSTPTMGMT_E_INVALID_IPV6_MULTICAST_ADDRESS_SOURCE: ::windows_sys::core::HRESULT = -1055915750i32; +pub const WDSTPTMGMT_E_INVALID_IP_ADDRESS: ::windows_sys::core::HRESULT = -1055915754i32; +pub const WDSTPTMGMT_E_INVALID_MULTISTREAM_STREAM_COUNT: ::windows_sys::core::HRESULT = -1055915749i32; +pub const WDSTPTMGMT_E_INVALID_NAMESPACE_DATA: ::windows_sys::core::HRESULT = -1055915765i32; +pub const WDSTPTMGMT_E_INVALID_NAMESPACE_NAME: ::windows_sys::core::HRESULT = -1055915766i32; +pub const WDSTPTMGMT_E_INVALID_NAMESPACE_START_PARAMETERS: ::windows_sys::core::HRESULT = -1055915758i32; +pub const WDSTPTMGMT_E_INVALID_NAMESPACE_START_TIME: ::windows_sys::core::HRESULT = -1055915763i32; +pub const WDSTPTMGMT_E_INVALID_OPERATION: ::windows_sys::core::HRESULT = -1055915775i32; +pub const WDSTPTMGMT_E_INVALID_PROPERTY: ::windows_sys::core::HRESULT = -1055915776i32; +pub const WDSTPTMGMT_E_INVALID_SERVICE_IP_ADDRESS_RANGE: ::windows_sys::core::HRESULT = -1055915760i32; +pub const WDSTPTMGMT_E_INVALID_SERVICE_PORT_RANGE: ::windows_sys::core::HRESULT = -1055915759i32; +pub const WDSTPTMGMT_E_INVALID_SLOW_CLIENT_HANDLING_TYPE: ::windows_sys::core::HRESULT = -1055915746i32; +pub const WDSTPTMGMT_E_INVALID_TFTP_MAX_BLOCKSIZE: ::windows_sys::core::HRESULT = -1055915741i32; +pub const WDSTPTMGMT_E_IPV6_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1055915751i32; +pub const WDSTPTMGMT_E_MULTICAST_SESSION_POLICY_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1055915747i32; +pub const WDSTPTMGMT_E_NAMESPACE_ALREADY_REGISTERED: ::windows_sys::core::HRESULT = -1055915769i32; +pub const WDSTPTMGMT_E_NAMESPACE_NOT_ON_SERVER: ::windows_sys::core::HRESULT = -1055915756i32; +pub const WDSTPTMGMT_E_NAMESPACE_NOT_REGISTERED: ::windows_sys::core::HRESULT = -1055915768i32; +pub const WDSTPTMGMT_E_NAMESPACE_READ_ONLY: ::windows_sys::core::HRESULT = -1055915764i32; +pub const WDSTPTMGMT_E_NAMESPACE_REMOVED_FROM_SERVER: ::windows_sys::core::HRESULT = -1055915755i32; +pub const WDSTPTMGMT_E_NETWORK_PROFILES_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1055915745i32; +pub const WDSTPTMGMT_E_TFTP_MAX_BLOCKSIZE_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1055915743i32; +pub const WDSTPTMGMT_E_TFTP_VAR_WINDOW_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1055915742i32; +pub const WDSTPTMGMT_E_TRANSPORT_SERVER_ROLE_NOT_CONFIGURED: ::windows_sys::core::HRESULT = -1055915770i32; +pub const WDSTPTMGMT_E_TRANSPORT_SERVER_UNAVAILABLE: ::windows_sys::core::HRESULT = -1055915757i32; +pub const WDSTPTMGMT_E_UDP_PORT_POLICY_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -1055915744i32; +pub const WDSTRANSPORT_RESOURCE_UTILIZATION_UNKNOWN: u32 = 255u32; +pub const WDS_CLI_FIRMWARE_BIOS: WDS_CLI_FIRMWARE_TYPE = 1i32; +pub const WDS_CLI_FIRMWARE_EFI: WDS_CLI_FIRMWARE_TYPE = 2i32; +pub const WDS_CLI_FIRMWARE_UNKNOWN: WDS_CLI_FIRMWARE_TYPE = 0i32; +pub const WDS_CLI_IMAGE_PARAM_SPARSE_FILE: WDS_CLI_IMAGE_PARAM_TYPE = 1i32; +pub const WDS_CLI_IMAGE_PARAM_SUPPORTED_FIRMWARES: WDS_CLI_IMAGE_PARAM_TYPE = 2i32; +pub const WDS_CLI_IMAGE_PARAM_UNKNOWN: WDS_CLI_IMAGE_PARAM_TYPE = 0i32; +pub const WDS_CLI_IMAGE_TYPE_UNKNOWN: WDS_CLI_IMAGE_TYPE = 0i32; +pub const WDS_CLI_IMAGE_TYPE_VHD: WDS_CLI_IMAGE_TYPE = 2i32; +pub const WDS_CLI_IMAGE_TYPE_VHDX: WDS_CLI_IMAGE_TYPE = 3i32; +pub const WDS_CLI_IMAGE_TYPE_WIM: WDS_CLI_IMAGE_TYPE = 1i32; +pub const WDS_CLI_MSG_COMPLETE: PFN_WDS_CLI_CALLBACK_MESSAGE_ID = 1u32; +pub const WDS_CLI_MSG_PROGRESS: PFN_WDS_CLI_CALLBACK_MESSAGE_ID = 2u32; +pub const WDS_CLI_MSG_START: PFN_WDS_CLI_CALLBACK_MESSAGE_ID = 0u32; +pub const WDS_CLI_MSG_TEXT: PFN_WDS_CLI_CALLBACK_MESSAGE_ID = 3u32; +pub const WDS_CLI_NO_SPARSE_FILE: u32 = 2u32; +pub const WDS_CLI_TRANSFER_ASYNCHRONOUS: u32 = 1u32; +pub const WDS_LOG_LEVEL_DISABLED: i32 = 0i32; +pub const WDS_LOG_LEVEL_ERROR: i32 = 1i32; +pub const WDS_LOG_LEVEL_INFO: i32 = 3i32; +pub const WDS_LOG_LEVEL_WARNING: i32 = 2i32; +pub const WDS_LOG_TYPE_CLIENT_APPLY_FINISHED: i32 = 6i32; +pub const WDS_LOG_TYPE_CLIENT_APPLY_FINISHED_2: i32 = 16i32; +pub const WDS_LOG_TYPE_CLIENT_APPLY_STARTED: i32 = 5i32; +pub const WDS_LOG_TYPE_CLIENT_APPLY_STARTED_2: i32 = 15i32; +pub const WDS_LOG_TYPE_CLIENT_DOMAINJOINERROR: i32 = 12i32; +pub const WDS_LOG_TYPE_CLIENT_DOMAINJOINERROR_2: i32 = 17i32; +pub const WDS_LOG_TYPE_CLIENT_DRIVER_PACKAGE_NOT_ACCESSIBLE: i32 = 18i32; +pub const WDS_LOG_TYPE_CLIENT_ERROR: i32 = 1i32; +pub const WDS_LOG_TYPE_CLIENT_FINISHED: i32 = 3i32; +pub const WDS_LOG_TYPE_CLIENT_GENERIC_MESSAGE: i32 = 7i32; +pub const WDS_LOG_TYPE_CLIENT_IMAGE_SELECTED: i32 = 4i32; +pub const WDS_LOG_TYPE_CLIENT_IMAGE_SELECTED2: i32 = 22i32; +pub const WDS_LOG_TYPE_CLIENT_IMAGE_SELECTED3: i32 = 23i32; +pub const WDS_LOG_TYPE_CLIENT_MAX_CODE: i32 = 24i32; +pub const WDS_LOG_TYPE_CLIENT_OFFLINE_DRIVER_INJECTION_END: i32 = 20i32; +pub const WDS_LOG_TYPE_CLIENT_OFFLINE_DRIVER_INJECTION_FAILURE: i32 = 21i32; +pub const WDS_LOG_TYPE_CLIENT_OFFLINE_DRIVER_INJECTION_START: i32 = 19i32; +pub const WDS_LOG_TYPE_CLIENT_POST_ACTIONS_END: i32 = 14i32; +pub const WDS_LOG_TYPE_CLIENT_POST_ACTIONS_START: i32 = 13i32; +pub const WDS_LOG_TYPE_CLIENT_STARTED: i32 = 2i32; +pub const WDS_LOG_TYPE_CLIENT_TRANSFER_DOWNGRADE: i32 = 11i32; +pub const WDS_LOG_TYPE_CLIENT_TRANSFER_END: i32 = 10i32; +pub const WDS_LOG_TYPE_CLIENT_TRANSFER_START: i32 = 9i32; +pub const WDS_LOG_TYPE_CLIENT_UNATTEND_MODE: i32 = 8i32; +pub const WDS_MC_TRACE_ERROR: u32 = 524288u32; +pub const WDS_MC_TRACE_FATAL: u32 = 1048576u32; +pub const WDS_MC_TRACE_INFO: u32 = 131072u32; +pub const WDS_MC_TRACE_VERBOSE: u32 = 65536u32; +pub const WDS_MC_TRACE_WARNING: u32 = 262144u32; +pub const WDS_TRANSPORTCLIENT_AUTH: WDS_TRANSPORTCLIENT_REQUEST_AUTH_LEVEL = 1u32; +pub const WDS_TRANSPORTCLIENT_CURRENT_API_VERSION: u32 = 1u32; +pub const WDS_TRANSPORTCLIENT_MAX_CALLBACKS: TRANSPORTCLIENT_CALLBACK_ID = 6i32; +pub const WDS_TRANSPORTCLIENT_NO_AUTH: WDS_TRANSPORTCLIENT_REQUEST_AUTH_LEVEL = 2u32; +pub const WDS_TRANSPORTCLIENT_NO_CACHE: u32 = 0u32; +pub const WDS_TRANSPORTCLIENT_PROTOCOL_MULTICAST: u32 = 1u32; +pub const WDS_TRANSPORTCLIENT_RECEIVE_CONTENTS: TRANSPORTCLIENT_CALLBACK_ID = 1i32; +pub const WDS_TRANSPORTCLIENT_RECEIVE_METADATA: TRANSPORTCLIENT_CALLBACK_ID = 3i32; +pub const WDS_TRANSPORTCLIENT_SESSION_COMPLETE: TRANSPORTCLIENT_CALLBACK_ID = 2i32; +pub const WDS_TRANSPORTCLIENT_SESSION_NEGOTIATE: TRANSPORTCLIENT_CALLBACK_ID = 5i32; +pub const WDS_TRANSPORTCLIENT_SESSION_START: TRANSPORTCLIENT_CALLBACK_ID = 0i32; +pub const WDS_TRANSPORTCLIENT_SESSION_STARTEX: TRANSPORTCLIENT_CALLBACK_ID = 4i32; +pub const WDS_TRANSPORTCLIENT_STATUS_FAILURE: u32 = 3u32; +pub const WDS_TRANSPORTCLIENT_STATUS_IN_PROGRESS: u32 = 1u32; +pub const WDS_TRANSPORTCLIENT_STATUS_SUCCESS: u32 = 2u32; +pub const WDS_TRANSPORTPROVIDER_CLOSE_CONTENT: TRANSPORTPROVIDER_CALLBACK_ID = 6i32; +pub const WDS_TRANSPORTPROVIDER_CLOSE_INSTANCE: TRANSPORTPROVIDER_CALLBACK_ID = 7i32; +pub const WDS_TRANSPORTPROVIDER_COMPARE_CONTENT: TRANSPORTPROVIDER_CALLBACK_ID = 1i32; +pub const WDS_TRANSPORTPROVIDER_CREATE_INSTANCE: TRANSPORTPROVIDER_CALLBACK_ID = 0i32; +pub const WDS_TRANSPORTPROVIDER_DUMP_STATE: TRANSPORTPROVIDER_CALLBACK_ID = 9i32; +pub const WDS_TRANSPORTPROVIDER_GET_CONTENT_METADATA: TRANSPORTPROVIDER_CALLBACK_ID = 11i32; +pub const WDS_TRANSPORTPROVIDER_GET_CONTENT_SIZE: TRANSPORTPROVIDER_CALLBACK_ID = 4i32; +pub const WDS_TRANSPORTPROVIDER_MAX_CALLBACKS: TRANSPORTPROVIDER_CALLBACK_ID = 12i32; +pub const WDS_TRANSPORTPROVIDER_OPEN_CONTENT: TRANSPORTPROVIDER_CALLBACK_ID = 2i32; +pub const WDS_TRANSPORTPROVIDER_READ_CONTENT: TRANSPORTPROVIDER_CALLBACK_ID = 5i32; +pub const WDS_TRANSPORTPROVIDER_REFRESH_SETTINGS: TRANSPORTPROVIDER_CALLBACK_ID = 10i32; +pub const WDS_TRANSPORTPROVIDER_SHUTDOWN: TRANSPORTPROVIDER_CALLBACK_ID = 8i32; +pub const WDS_TRANSPORTPROVIDER_USER_ACCESS_CHECK: TRANSPORTPROVIDER_CALLBACK_ID = 3i32; +pub const WdsCliFlagEnumFilterFirmware: i32 = 2i32; +pub const WdsCliFlagEnumFilterVersion: i32 = 1i32; +pub const WdsTptDiagnosticsComponentImageServer: WDSTRANSPORT_DIAGNOSTICS_COMPONENT_FLAGS = 4i32; +pub const WdsTptDiagnosticsComponentMulticast: WDSTRANSPORT_DIAGNOSTICS_COMPONENT_FLAGS = 8i32; +pub const WdsTptDiagnosticsComponentPxe: WDSTRANSPORT_DIAGNOSTICS_COMPONENT_FLAGS = 1i32; +pub const WdsTptDiagnosticsComponentTftp: WDSTRANSPORT_DIAGNOSTICS_COMPONENT_FLAGS = 2i32; +pub const WdsTptDisconnectAbort: WDSTRANSPORT_DISCONNECT_TYPE = 2i32; +pub const WdsTptDisconnectFallback: WDSTRANSPORT_DISCONNECT_TYPE = 1i32; +pub const WdsTptDisconnectUnknown: WDSTRANSPORT_DISCONNECT_TYPE = 0i32; +pub const WdsTptFeatureAdminPack: WDSTRANSPORT_FEATURE_FLAGS = 1i32; +pub const WdsTptFeatureDeploymentServer: WDSTRANSPORT_FEATURE_FLAGS = 4i32; +pub const WdsTptFeatureTransportServer: WDSTRANSPORT_FEATURE_FLAGS = 2i32; +pub const WdsTptIpAddressIpv4: WDSTRANSPORT_IP_ADDRESS_TYPE = 1i32; +pub const WdsTptIpAddressIpv6: WDSTRANSPORT_IP_ADDRESS_TYPE = 2i32; +pub const WdsTptIpAddressSourceDhcp: WDSTRANSPORT_IP_ADDRESS_SOURCE_TYPE = 1i32; +pub const WdsTptIpAddressSourceRange: WDSTRANSPORT_IP_ADDRESS_SOURCE_TYPE = 2i32; +pub const WdsTptIpAddressSourceUnknown: WDSTRANSPORT_IP_ADDRESS_SOURCE_TYPE = 0i32; +pub const WdsTptIpAddressUnknown: WDSTRANSPORT_IP_ADDRESS_TYPE = 0i32; +pub const WdsTptNamespaceTypeAutoCast: WDSTRANSPORT_NAMESPACE_TYPE = 1i32; +pub const WdsTptNamespaceTypeScheduledCastAutoStart: WDSTRANSPORT_NAMESPACE_TYPE = 3i32; +pub const WdsTptNamespaceTypeScheduledCastManualStart: WDSTRANSPORT_NAMESPACE_TYPE = 2i32; +pub const WdsTptNamespaceTypeUnknown: WDSTRANSPORT_NAMESPACE_TYPE = 0i32; +pub const WdsTptNetworkProfile100Mbps: WDSTRANSPORT_NETWORK_PROFILE_TYPE = 3i32; +pub const WdsTptNetworkProfile10Mbps: WDSTRANSPORT_NETWORK_PROFILE_TYPE = 2i32; +pub const WdsTptNetworkProfile1Gbps: WDSTRANSPORT_NETWORK_PROFILE_TYPE = 4i32; +pub const WdsTptNetworkProfileCustom: WDSTRANSPORT_NETWORK_PROFILE_TYPE = 1i32; +pub const WdsTptNetworkProfileUnknown: WDSTRANSPORT_NETWORK_PROFILE_TYPE = 0i32; +pub const WdsTptProtocolMulticast: WDSTRANSPORT_PROTOCOL_FLAGS = 2i32; +pub const WdsTptProtocolUnicast: WDSTRANSPORT_PROTOCOL_FLAGS = 1i32; +pub const WdsTptServiceNotifyReadSettings: WDSTRANSPORT_SERVICE_NOTIFICATION = 1i32; +pub const WdsTptServiceNotifyUnknown: WDSTRANSPORT_SERVICE_NOTIFICATION = 0i32; +pub const WdsTptSlowClientHandlingAutoDisconnect: WDSTRANSPORT_SLOW_CLIENT_HANDLING_TYPE = 2i32; +pub const WdsTptSlowClientHandlingMultistream: WDSTRANSPORT_SLOW_CLIENT_HANDLING_TYPE = 3i32; +pub const WdsTptSlowClientHandlingNone: WDSTRANSPORT_SLOW_CLIENT_HANDLING_TYPE = 1i32; +pub const WdsTptSlowClientHandlingUnknown: WDSTRANSPORT_SLOW_CLIENT_HANDLING_TYPE = 0i32; +pub const WdsTptTftpCapMaximumBlockSize: WDSTRANSPORT_TFTP_CAPABILITY = 1i32; +pub const WdsTptTftpCapVariableWindow: WDSTRANSPORT_TFTP_CAPABILITY = 2i32; +pub const WdsTptUdpPortPolicyDynamic: WDSTRANSPORT_UDP_PORT_POLICY = 0i32; +pub const WdsTptUdpPortPolicyFixed: WDSTRANSPORT_UDP_PORT_POLICY = 1i32; +pub const WdsTransportCacheable: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x70590b16_f146_46bd_bd9d_4aaa90084bf5); +pub const WdsTransportClient: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66d2c5e9_0ff6_49ec_9733_dafb1e01df1c); +pub const WdsTransportCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc7f18b09_391e_436e_b10b_c3ef46f2c34f); +pub const WdsTransportConfigurationManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8743f674_904c_47ca_8512_35fe98f6b0ac); +pub const WdsTransportContent: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0a891fe7_4a3f_4c65_b6f2_1467619679ea); +pub const WdsTransportContentProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe0be741f_5a75_4eb9_8a2d_5e189b45f327); +pub const WdsTransportDiagnosticsPolicy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeb3333e1_a7ad_46f5_80d6_6b740204e509); +pub const WdsTransportManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf21523f6_837c_4a58_af99_8a7e27f8ff59); +pub const WdsTransportMulticastSessionPolicy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3c6bc3f4_6418_472a_b6f1_52d457195437); +pub const WdsTransportNamespace: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd8385768_0732_4ec1_95ea_16da581908a1); +pub const WdsTransportNamespaceAutoCast: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb091f5a8_6a99_478d_b23b_09e8fee04574); +pub const WdsTransportNamespaceManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf08cdb63_85de_4a28_a1a9_5ca3e7efda73); +pub const WdsTransportNamespaceScheduledCast: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbadc1897_7025_44eb_9108_fb61c4055792); +pub const WdsTransportNamespaceScheduledCastAutoStart: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa1107052_122c_4b81_9b7c_386e6855383f); +pub const WdsTransportNamespaceScheduledCastManualStart: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd3e1a2aa_caac_460e_b98a_47f9f318a1fa); +pub const WdsTransportServer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xea19b643_4adf_4413_942c_14f379118760); +pub const WdsTransportServicePolicy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65aceadc_2f0b_4f43_9f4d_811865d8cead); +pub const WdsTransportSession: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x749ac4e0_67bc_4743_bfe5_cacb1f26f57f); +pub const WdsTransportSetupManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc7beeaad_9f04_4923_9f0c_fbf52bc7590f); +pub const WdsTransportTftpClient: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x50343925_7c5c_4c8c_96c4_ad9fa5005fba); +pub const WdsTransportTftpManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc8e9dca2_3241_4e4d_b806_bc74019dfeda); +pub type CPU_ARCHITECTURE = u32; +pub type PFN_WDS_CLI_CALLBACK_MESSAGE_ID = u32; +pub type TRANSPORTCLIENT_CALLBACK_ID = i32; +pub type TRANSPORTPROVIDER_CALLBACK_ID = i32; +pub type WDSTRANSPORT_DIAGNOSTICS_COMPONENT_FLAGS = i32; +pub type WDSTRANSPORT_DISCONNECT_TYPE = i32; +pub type WDSTRANSPORT_FEATURE_FLAGS = i32; +pub type WDSTRANSPORT_IP_ADDRESS_SOURCE_TYPE = i32; +pub type WDSTRANSPORT_IP_ADDRESS_TYPE = i32; +pub type WDSTRANSPORT_NAMESPACE_TYPE = i32; +pub type WDSTRANSPORT_NETWORK_PROFILE_TYPE = i32; +pub type WDSTRANSPORT_PROTOCOL_FLAGS = i32; +pub type WDSTRANSPORT_SERVICE_NOTIFICATION = i32; +pub type WDSTRANSPORT_SLOW_CLIENT_HANDLING_TYPE = i32; +pub type WDSTRANSPORT_TFTP_CAPABILITY = i32; +pub type WDSTRANSPORT_UDP_PORT_POLICY = i32; +pub type WDS_CLI_FIRMWARE_TYPE = i32; +pub type WDS_CLI_IMAGE_PARAM_TYPE = i32; +pub type WDS_CLI_IMAGE_TYPE = i32; +pub type WDS_TRANSPORTCLIENT_REQUEST_AUTH_LEVEL = u32; +#[repr(C)] +pub struct PXE_ADDRESS { + pub uFlags: u32, + pub Anonymous: PXE_ADDRESS_0, + pub uAddrLen: u32, + pub uPort: u16, +} +impl ::core::marker::Copy for PXE_ADDRESS {} +impl ::core::clone::Clone for PXE_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PXE_ADDRESS_0 { + pub bAddress: [u8; 16], + pub uIpAddress: u32, +} +impl ::core::marker::Copy for PXE_ADDRESS_0 {} +impl ::core::clone::Clone for PXE_ADDRESS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PXE_DHCPV6_MESSAGE { + pub MessageType: u8, + pub TransactionIDByte1: u8, + pub TransactionIDByte2: u8, + pub TransactionIDByte3: u8, + pub Options: [PXE_DHCPV6_OPTION; 1], +} +impl ::core::marker::Copy for PXE_DHCPV6_MESSAGE {} +impl ::core::clone::Clone for PXE_DHCPV6_MESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PXE_DHCPV6_MESSAGE_HEADER { + pub MessageType: u8, + pub Message: [u8; 1], +} +impl ::core::marker::Copy for PXE_DHCPV6_MESSAGE_HEADER {} +impl ::core::clone::Clone for PXE_DHCPV6_MESSAGE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PXE_DHCPV6_NESTED_RELAY_MESSAGE { + pub pRelayMessage: *mut PXE_DHCPV6_RELAY_MESSAGE, + pub cbRelayMessage: u32, + pub pInterfaceIdOption: *mut ::core::ffi::c_void, + pub cbInterfaceIdOption: u16, +} +impl ::core::marker::Copy for PXE_DHCPV6_NESTED_RELAY_MESSAGE {} +impl ::core::clone::Clone for PXE_DHCPV6_NESTED_RELAY_MESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PXE_DHCPV6_OPTION { + pub OptionCode: u16, + pub DataLength: u16, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for PXE_DHCPV6_OPTION {} +impl ::core::clone::Clone for PXE_DHCPV6_OPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PXE_DHCPV6_RELAY_MESSAGE { + pub MessageType: u8, + pub HopCount: u8, + pub LinkAddress: [u8; 16], + pub PeerAddress: [u8; 16], + pub Options: [PXE_DHCPV6_OPTION; 1], +} +impl ::core::marker::Copy for PXE_DHCPV6_RELAY_MESSAGE {} +impl ::core::clone::Clone for PXE_DHCPV6_RELAY_MESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PXE_DHCP_MESSAGE { + pub Operation: u8, + pub HardwareAddressType: u8, + pub HardwareAddressLength: u8, + pub HopCount: u8, + pub TransactionID: u32, + pub SecondsSinceBoot: u16, + pub Reserved: u16, + pub ClientIpAddress: u32, + pub YourIpAddress: u32, + pub BootstrapServerAddress: u32, + pub RelayAgentIpAddress: u32, + pub HardwareAddress: [u8; 16], + pub HostName: [u8; 64], + pub BootFileName: [u8; 128], + pub Anonymous: PXE_DHCP_MESSAGE_0, + pub Option: PXE_DHCP_OPTION, +} +impl ::core::marker::Copy for PXE_DHCP_MESSAGE {} +impl ::core::clone::Clone for PXE_DHCP_MESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union PXE_DHCP_MESSAGE_0 { + pub bMagicCookie: [u8; 4], + pub uMagicCookie: u32, +} +impl ::core::marker::Copy for PXE_DHCP_MESSAGE_0 {} +impl ::core::clone::Clone for PXE_DHCP_MESSAGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PXE_DHCP_OPTION { + pub OptionType: u8, + pub OptionLength: u8, + pub OptionValue: [u8; 1], +} +impl ::core::marker::Copy for PXE_DHCP_OPTION {} +impl ::core::clone::Clone for PXE_DHCP_OPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PXE_PROVIDER { + pub uSizeOfStruct: u32, + pub pwszName: ::windows_sys::core::PWSTR, + pub pwszFilePath: ::windows_sys::core::PWSTR, + pub bIsCritical: super::super::Foundation::BOOL, + pub uIndex: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PXE_PROVIDER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PXE_PROVIDER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSPORTCLIENT_SESSION_INFO { + pub ulStructureLength: u32, + pub ullFileSize: u64, + pub ulBlockSize: u32, +} +impl ::core::marker::Copy for TRANSPORTCLIENT_SESSION_INFO {} +impl ::core::clone::Clone for TRANSPORTCLIENT_SESSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WDS_CLI_CRED { + pub pwszUserName: ::windows_sys::core::PCWSTR, + pub pwszDomain: ::windows_sys::core::PCWSTR, + pub pwszPassword: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WDS_CLI_CRED {} +impl ::core::clone::Clone for WDS_CLI_CRED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WDS_TRANSPORTCLIENT_CALLBACKS { + pub SessionStart: PFN_WdsTransportClientSessionStart, + pub SessionStartEx: PFN_WdsTransportClientSessionStartEx, + pub ReceiveContents: PFN_WdsTransportClientReceiveContents, + pub ReceiveMetadata: PFN_WdsTransportClientReceiveMetadata, + pub SessionComplete: PFN_WdsTransportClientSessionComplete, + pub SessionNegotiate: PFN_WdsTransportClientSessionNegotiate, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WDS_TRANSPORTCLIENT_CALLBACKS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WDS_TRANSPORTCLIENT_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WDS_TRANSPORTCLIENT_REQUEST { + pub ulLength: u32, + pub ulApiVersion: u32, + pub ulAuthLevel: WDS_TRANSPORTCLIENT_REQUEST_AUTH_LEVEL, + pub pwszServer: ::windows_sys::core::PCWSTR, + pub pwszNamespace: ::windows_sys::core::PCWSTR, + pub pwszObjectName: ::windows_sys::core::PCWSTR, + pub ulCacheSize: u32, + pub ulProtocol: u32, + pub pvProtocolData: *mut ::core::ffi::c_void, + pub ulProtocolDataLength: u32, +} +impl ::core::marker::Copy for WDS_TRANSPORTCLIENT_REQUEST {} +impl ::core::clone::Clone for WDS_TRANSPORTCLIENT_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub struct WDS_TRANSPORTPROVIDER_INIT_PARAMS { + pub ulLength: u32, + pub ulMcServerVersion: u32, + pub hRegistryKey: super::Registry::HKEY, + pub hProvider: super::super::Foundation::HANDLE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for WDS_TRANSPORTPROVIDER_INIT_PARAMS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for WDS_TRANSPORTPROVIDER_INIT_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WDS_TRANSPORTPROVIDER_SETTINGS { + pub ulLength: u32, + pub ulProviderVersion: u32, +} +impl ::core::marker::Copy for WDS_TRANSPORTPROVIDER_SETTINGS {} +impl ::core::clone::Clone for WDS_TRANSPORTPROVIDER_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_WdsCliCallback = ::core::option::Option ()>; +pub type PFN_WdsCliTraceFunction = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_WdsTransportClientReceiveContents = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_WdsTransportClientReceiveMetadata = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_WdsTransportClientSessionComplete = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_WdsTransportClientSessionNegotiate = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_WdsTransportClientSessionStart = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_WdsTransportClientSessionStartEx = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/DeveloperLicensing/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/DeveloperLicensing/mod.rs new file mode 100644 index 000000000..3cc1a592e --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/DeveloperLicensing/mod.rs @@ -0,0 +1,6 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsclient.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AcquireDeveloperLicense(hwndparent : super::super::Foundation:: HWND, pexpiration : *mut super::super::Foundation:: FILETIME) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsclient.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckDeveloperLicense(pexpiration : *mut super::super::Foundation:: FILETIME) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsclient.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveDeveloperLicense(hwndparent : super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Ceip/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Ceip/mod.rs new file mode 100644 index 000000000..423ffb060 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Ceip/mod.rs @@ -0,0 +1,2 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CeipIsOptedIn() -> super::super::super::Foundation:: BOOL); diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Debug/Extensions/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Debug/Extensions/mod.rs new file mode 100644 index 000000000..74f92ea68 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Debug/Extensions/mod.rs @@ -0,0 +1,4712 @@ +::windows_targets::link!("dbgmodel.dll" "system" fn CreateDataModelManager(debughost : IDebugHost, manager : *mut IDataModelManager) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("dbgeng.dll" "system" fn DebugConnect(remoteoptions : ::windows_sys::core::PCSTR, interfaceid : *const ::windows_sys::core::GUID, interface : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("dbgeng.dll" "system" fn DebugConnectWide(remoteoptions : ::windows_sys::core::PCWSTR, interfaceid : *const ::windows_sys::core::GUID, interface : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("dbgeng.dll" "system" fn DebugCreate(interfaceid : *const ::windows_sys::core::GUID, interface : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("dbgeng.dll" "system" fn DebugCreateEx(interfaceid : *const ::windows_sys::core::GUID, dbgengoptions : u32, interface : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +pub type DebugBaseEventCallbacks = *mut ::core::ffi::c_void; +pub type DebugBaseEventCallbacksWide = *mut ::core::ffi::c_void; +pub type ICodeAddressConcept = *mut ::core::ffi::c_void; +pub type IComparableConcept = *mut ::core::ffi::c_void; +pub type IDataModelConcept = *mut ::core::ffi::c_void; +pub type IDataModelManager = *mut ::core::ffi::c_void; +pub type IDataModelManager2 = *mut ::core::ffi::c_void; +pub type IDataModelNameBinder = *mut ::core::ffi::c_void; +pub type IDataModelScript = *mut ::core::ffi::c_void; +pub type IDataModelScriptClient = *mut ::core::ffi::c_void; +pub type IDataModelScriptDebug = *mut ::core::ffi::c_void; +pub type IDataModelScriptDebug2 = *mut ::core::ffi::c_void; +pub type IDataModelScriptDebugBreakpoint = *mut ::core::ffi::c_void; +pub type IDataModelScriptDebugBreakpointEnumerator = *mut ::core::ffi::c_void; +pub type IDataModelScriptDebugClient = *mut ::core::ffi::c_void; +pub type IDataModelScriptDebugStack = *mut ::core::ffi::c_void; +pub type IDataModelScriptDebugStackFrame = *mut ::core::ffi::c_void; +pub type IDataModelScriptDebugVariableSetEnumerator = *mut ::core::ffi::c_void; +pub type IDataModelScriptHostContext = *mut ::core::ffi::c_void; +pub type IDataModelScriptManager = *mut ::core::ffi::c_void; +pub type IDataModelScriptProvider = *mut ::core::ffi::c_void; +pub type IDataModelScriptProviderEnumerator = *mut ::core::ffi::c_void; +pub type IDataModelScriptTemplate = *mut ::core::ffi::c_void; +pub type IDataModelScriptTemplateEnumerator = *mut ::core::ffi::c_void; +pub type IDebugAdvanced = *mut ::core::ffi::c_void; +pub type IDebugAdvanced2 = *mut ::core::ffi::c_void; +pub type IDebugAdvanced3 = *mut ::core::ffi::c_void; +pub type IDebugAdvanced4 = *mut ::core::ffi::c_void; +pub type IDebugBreakpoint = *mut ::core::ffi::c_void; +pub type IDebugBreakpoint2 = *mut ::core::ffi::c_void; +pub type IDebugBreakpoint3 = *mut ::core::ffi::c_void; +pub type IDebugClient = *mut ::core::ffi::c_void; +pub type IDebugClient2 = *mut ::core::ffi::c_void; +pub type IDebugClient3 = *mut ::core::ffi::c_void; +pub type IDebugClient4 = *mut ::core::ffi::c_void; +pub type IDebugClient5 = *mut ::core::ffi::c_void; +pub type IDebugClient6 = *mut ::core::ffi::c_void; +pub type IDebugClient7 = *mut ::core::ffi::c_void; +pub type IDebugClient8 = *mut ::core::ffi::c_void; +pub type IDebugControl = *mut ::core::ffi::c_void; +pub type IDebugControl2 = *mut ::core::ffi::c_void; +pub type IDebugControl3 = *mut ::core::ffi::c_void; +pub type IDebugControl4 = *mut ::core::ffi::c_void; +pub type IDebugControl5 = *mut ::core::ffi::c_void; +pub type IDebugControl6 = *mut ::core::ffi::c_void; +pub type IDebugControl7 = *mut ::core::ffi::c_void; +pub type IDebugDataSpaces = *mut ::core::ffi::c_void; +pub type IDebugDataSpaces2 = *mut ::core::ffi::c_void; +pub type IDebugDataSpaces3 = *mut ::core::ffi::c_void; +pub type IDebugDataSpaces4 = *mut ::core::ffi::c_void; +pub type IDebugEventCallbacks = *mut ::core::ffi::c_void; +pub type IDebugEventCallbacksWide = *mut ::core::ffi::c_void; +pub type IDebugEventContextCallbacks = *mut ::core::ffi::c_void; +pub type IDebugFAEntryTags = *mut ::core::ffi::c_void; +pub type IDebugFailureAnalysis = *mut ::core::ffi::c_void; +pub type IDebugFailureAnalysis2 = *mut ::core::ffi::c_void; +pub type IDebugFailureAnalysis3 = *mut ::core::ffi::c_void; +pub type IDebugHost = *mut ::core::ffi::c_void; +pub type IDebugHostBaseClass = *mut ::core::ffi::c_void; +pub type IDebugHostConstant = *mut ::core::ffi::c_void; +pub type IDebugHostContext = *mut ::core::ffi::c_void; +pub type IDebugHostData = *mut ::core::ffi::c_void; +pub type IDebugHostErrorSink = *mut ::core::ffi::c_void; +pub type IDebugHostEvaluator = *mut ::core::ffi::c_void; +pub type IDebugHostEvaluator2 = *mut ::core::ffi::c_void; +pub type IDebugHostExtensibility = *mut ::core::ffi::c_void; +pub type IDebugHostField = *mut ::core::ffi::c_void; +pub type IDebugHostMemory = *mut ::core::ffi::c_void; +pub type IDebugHostMemory2 = *mut ::core::ffi::c_void; +pub type IDebugHostModule = *mut ::core::ffi::c_void; +pub type IDebugHostModule2 = *mut ::core::ffi::c_void; +pub type IDebugHostModuleSignature = *mut ::core::ffi::c_void; +pub type IDebugHostPublic = *mut ::core::ffi::c_void; +pub type IDebugHostScriptHost = *mut ::core::ffi::c_void; +pub type IDebugHostStatus = *mut ::core::ffi::c_void; +pub type IDebugHostSymbol = *mut ::core::ffi::c_void; +pub type IDebugHostSymbol2 = *mut ::core::ffi::c_void; +pub type IDebugHostSymbolEnumerator = *mut ::core::ffi::c_void; +pub type IDebugHostSymbols = *mut ::core::ffi::c_void; +pub type IDebugHostType = *mut ::core::ffi::c_void; +pub type IDebugHostType2 = *mut ::core::ffi::c_void; +pub type IDebugHostTypeSignature = *mut ::core::ffi::c_void; +pub type IDebugInputCallbacks = *mut ::core::ffi::c_void; +pub type IDebugOutputCallbacks = *mut ::core::ffi::c_void; +pub type IDebugOutputCallbacks2 = *mut ::core::ffi::c_void; +pub type IDebugOutputCallbacksWide = *mut ::core::ffi::c_void; +pub type IDebugOutputStream = *mut ::core::ffi::c_void; +pub type IDebugPlmClient = *mut ::core::ffi::c_void; +pub type IDebugPlmClient2 = *mut ::core::ffi::c_void; +pub type IDebugPlmClient3 = *mut ::core::ffi::c_void; +pub type IDebugRegisters = *mut ::core::ffi::c_void; +pub type IDebugRegisters2 = *mut ::core::ffi::c_void; +pub type IDebugSymbolGroup = *mut ::core::ffi::c_void; +pub type IDebugSymbolGroup2 = *mut ::core::ffi::c_void; +pub type IDebugSymbols = *mut ::core::ffi::c_void; +pub type IDebugSymbols2 = *mut ::core::ffi::c_void; +pub type IDebugSymbols3 = *mut ::core::ffi::c_void; +pub type IDebugSymbols4 = *mut ::core::ffi::c_void; +pub type IDebugSymbols5 = *mut ::core::ffi::c_void; +pub type IDebugSystemObjects = *mut ::core::ffi::c_void; +pub type IDebugSystemObjects2 = *mut ::core::ffi::c_void; +pub type IDebugSystemObjects3 = *mut ::core::ffi::c_void; +pub type IDebugSystemObjects4 = *mut ::core::ffi::c_void; +pub type IDynamicConceptProviderConcept = *mut ::core::ffi::c_void; +pub type IDynamicKeyProviderConcept = *mut ::core::ffi::c_void; +pub type IEquatableConcept = *mut ::core::ffi::c_void; +pub type IHostDataModelAccess = *mut ::core::ffi::c_void; +pub type IIndexableConcept = *mut ::core::ffi::c_void; +pub type IIterableConcept = *mut ::core::ffi::c_void; +pub type IKeyEnumerator = *mut ::core::ffi::c_void; +pub type IKeyStore = *mut ::core::ffi::c_void; +pub type IModelIterator = *mut ::core::ffi::c_void; +pub type IModelKeyReference = *mut ::core::ffi::c_void; +pub type IModelKeyReference2 = *mut ::core::ffi::c_void; +pub type IModelMethod = *mut ::core::ffi::c_void; +pub type IModelObject = *mut ::core::ffi::c_void; +pub type IModelPropertyAccessor = *mut ::core::ffi::c_void; +pub type IPreferredRuntimeTypeConcept = *mut ::core::ffi::c_void; +pub type IRawEnumerator = *mut ::core::ffi::c_void; +pub type IStringDisplayableConcept = *mut ::core::ffi::c_void; +pub const ADDRESS_TYPE_INDEX_NOT_FOUND: u32 = 11u32; +pub const Ambiguous: SignatureComparison = 1i32; +pub const CANNOT_ALLOCATE_MEMORY: u32 = 9u32; +pub const CLSID_DebugFailureAnalysisBasic: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb74eed7f_1c7d_4c1b_959f_b96dd9175aa4); +pub const CLSID_DebugFailureAnalysisKernel: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xee433078_64af_4c33_ab2f_ecad7f2a002d); +pub const CLSID_DebugFailureAnalysisTarget: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba9bfb05_ef75_4bbd_a745_a6b5529458b8); +pub const CLSID_DebugFailureAnalysisUser: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe60b0c93_cf49_4a32_8147_0362202dc56b); +pub const CLSID_DebugFailureAnalysisWinCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x67d5e86f_f5e2_462a_9233_1bd616fcc7e8); +pub const CLSID_DebugFailureAnalysisXBox360: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x901625bb_95f1_4318_ac80_9d733cee8c8b); +pub const CROSS_PLATFORM_MAXIMUM_PROCESSORS: u32 = 2048u32; +pub const CURRENT_KD_SECONDARY_VERSION: u32 = 2u32; +pub const CallingConventionCDecl: CallingConventionKind = 1i32; +pub const CallingConventionFastCall: CallingConventionKind = 2i32; +pub const CallingConventionStdCall: CallingConventionKind = 3i32; +pub const CallingConventionSysCall: CallingConventionKind = 4i32; +pub const CallingConventionThisCall: CallingConventionKind = 5i32; +pub const CallingConventionUnknown: CallingConventionKind = 0i32; +pub const DBGKD_MAJOR_BIG: DBGKD_MAJOR_TYPES = 2i32; +pub const DBGKD_MAJOR_CE: DBGKD_MAJOR_TYPES = 10i32; +pub const DBGKD_MAJOR_COUNT: DBGKD_MAJOR_TYPES = 11i32; +pub const DBGKD_MAJOR_EFI: DBGKD_MAJOR_TYPES = 5i32; +pub const DBGKD_MAJOR_EXDI: DBGKD_MAJOR_TYPES = 3i32; +pub const DBGKD_MAJOR_HYPERVISOR: DBGKD_MAJOR_TYPES = 8i32; +pub const DBGKD_MAJOR_MIDORI: DBGKD_MAJOR_TYPES = 9i32; +pub const DBGKD_MAJOR_NT: DBGKD_MAJOR_TYPES = 0i32; +pub const DBGKD_MAJOR_NTBD: DBGKD_MAJOR_TYPES = 4i32; +pub const DBGKD_MAJOR_SINGULARITY: DBGKD_MAJOR_TYPES = 7i32; +pub const DBGKD_MAJOR_TNT: DBGKD_MAJOR_TYPES = 6i32; +pub const DBGKD_MAJOR_XBOX: DBGKD_MAJOR_TYPES = 1i32; +pub const DBGKD_SIMULATION_EXDI: i32 = 1i32; +pub const DBGKD_SIMULATION_NONE: i32 = 0i32; +pub const DBGKD_VERS_FLAG_DATA: u32 = 2u32; +pub const DBGKD_VERS_FLAG_HAL_IN_NTOS: u32 = 64u32; +pub const DBGKD_VERS_FLAG_HSS: u32 = 16u32; +pub const DBGKD_VERS_FLAG_MP: u32 = 1u32; +pub const DBGKD_VERS_FLAG_NOMM: u32 = 8u32; +pub const DBGKD_VERS_FLAG_PARTITIONS: u32 = 32u32; +pub const DBGKD_VERS_FLAG_PTR64: u32 = 4u32; +pub const DBG_DUMP_ADDRESS_AT_END: u32 = 131072u32; +pub const DBG_DUMP_ADDRESS_OF_FIELD: u32 = 65536u32; +pub const DBG_DUMP_ARRAY: u32 = 32768u32; +pub const DBG_DUMP_BLOCK_RECURSE: u32 = 2097152u32; +pub const DBG_DUMP_CALL_FOR_EACH: u32 = 8u32; +pub const DBG_DUMP_COMPACT_OUT: u32 = 8192u32; +pub const DBG_DUMP_COPY_TYPE_DATA: u32 = 262144u32; +pub const DBG_DUMP_FIELD_ARRAY: u32 = 16u32; +pub const DBG_DUMP_FIELD_CALL_BEFORE_PRINT: u32 = 1u32; +pub const DBG_DUMP_FIELD_COPY_FIELD_DATA: u32 = 32u32; +pub const DBG_DUMP_FIELD_DEFAULT_STRING: u32 = 65536u32; +pub const DBG_DUMP_FIELD_FULL_NAME: u32 = 8u32; +pub const DBG_DUMP_FIELD_GUID_STRING: u32 = 524288u32; +pub const DBG_DUMP_FIELD_MULTI_STRING: u32 = 262144u32; +pub const DBG_DUMP_FIELD_NO_CALLBACK_REQ: u32 = 2u32; +pub const DBG_DUMP_FIELD_NO_PRINT: u32 = 16384u32; +pub const DBG_DUMP_FIELD_RECUR_ON_THIS: u32 = 4u32; +pub const DBG_DUMP_FIELD_RETURN_ADDRESS: u32 = 4096u32; +pub const DBG_DUMP_FIELD_SIZE_IN_BITS: u32 = 8192u32; +pub const DBG_DUMP_FIELD_UTF32_STRING: u32 = 1048576u32; +pub const DBG_DUMP_FIELD_WCHAR_STRING: u32 = 131072u32; +pub const DBG_DUMP_FUNCTION_FORMAT: u32 = 1048576u32; +pub const DBG_DUMP_GET_SIZE_ONLY: u32 = 128u32; +pub const DBG_DUMP_LIST: u32 = 32u32; +pub const DBG_DUMP_MATCH_SIZE: u32 = 4194304u32; +pub const DBG_DUMP_NO_INDENT: u32 = 1u32; +pub const DBG_DUMP_NO_OFFSET: u32 = 2u32; +pub const DBG_DUMP_NO_PRINT: u32 = 64u32; +pub const DBG_DUMP_READ_PHYSICAL: u32 = 524288u32; +pub const DBG_DUMP_VERBOSE: u32 = 4u32; +pub const DBG_FRAME_DEFAULT: u32 = 0u32; +pub const DBG_FRAME_IGNORE_INLINE: u32 = 4294967295u32; +pub const DBG_RETURN_SUBTYPES: u32 = 0u32; +pub const DBG_RETURN_TYPE: u32 = 0u32; +pub const DBG_RETURN_TYPE_VALUES: u32 = 0u32; +pub const DEBUG_ADDSYNTHMOD_DEFAULT: u32 = 0u32; +pub const DEBUG_ADDSYNTHMOD_ZEROBASE: u32 = 1u32; +pub const DEBUG_ADDSYNTHSYM_DEFAULT: u32 = 0u32; +pub const DEBUG_ANY_ID: u32 = 4294967295u32; +pub const DEBUG_ASMOPT_DEFAULT: u32 = 0u32; +pub const DEBUG_ASMOPT_IGNORE_OUTPUT_WIDTH: u32 = 4u32; +pub const DEBUG_ASMOPT_NO_CODE_BYTES: u32 = 2u32; +pub const DEBUG_ASMOPT_SOURCE_LINE_NUMBER: u32 = 8u32; +pub const DEBUG_ASMOPT_VERBOSE: u32 = 1u32; +pub const DEBUG_ATTACH_DEFAULT: u32 = 0u32; +pub const DEBUG_ATTACH_EXDI_DRIVER: u32 = 2u32; +pub const DEBUG_ATTACH_EXISTING: u32 = 2u32; +pub const DEBUG_ATTACH_INSTALL_DRIVER: u32 = 4u32; +pub const DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK: u32 = 8u32; +pub const DEBUG_ATTACH_INVASIVE_RESUME_PROCESS: u32 = 16u32; +pub const DEBUG_ATTACH_KERNEL_CONNECTION: u32 = 0u32; +pub const DEBUG_ATTACH_LOCAL_KERNEL: u32 = 1u32; +pub const DEBUG_ATTACH_NONINVASIVE: u32 = 1u32; +pub const DEBUG_ATTACH_NONINVASIVE_ALLOW_PARTIAL: u32 = 32u32; +pub const DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND: u32 = 4u32; +pub const DEBUG_BREAKPOINT_ADDER_ONLY: u32 = 8u32; +pub const DEBUG_BREAKPOINT_CODE: u32 = 0u32; +pub const DEBUG_BREAKPOINT_DATA: u32 = 1u32; +pub const DEBUG_BREAKPOINT_DEFERRED: u32 = 2u32; +pub const DEBUG_BREAKPOINT_ENABLED: u32 = 4u32; +pub const DEBUG_BREAKPOINT_GO_ONLY: u32 = 1u32; +pub const DEBUG_BREAKPOINT_INLINE: u32 = 3u32; +pub const DEBUG_BREAKPOINT_ONE_SHOT: u32 = 16u32; +pub const DEBUG_BREAKPOINT_TIME: u32 = 2u32; +pub const DEBUG_BREAK_EXECUTE: u32 = 4u32; +pub const DEBUG_BREAK_IO: u32 = 8u32; +pub const DEBUG_BREAK_READ: u32 = 1u32; +pub const DEBUG_BREAK_WRITE: u32 = 2u32; +pub const DEBUG_CDS_ALL: u32 = 4294967295u32; +pub const DEBUG_CDS_DATA: u32 = 2u32; +pub const DEBUG_CDS_REFRESH: u32 = 4u32; +pub const DEBUG_CDS_REFRESH_ADDBREAKPOINT: u32 = 4u32; +pub const DEBUG_CDS_REFRESH_EVALUATE: u32 = 1u32; +pub const DEBUG_CDS_REFRESH_EXECUTE: u32 = 2u32; +pub const DEBUG_CDS_REFRESH_EXECUTECOMMANDFILE: u32 = 3u32; +pub const DEBUG_CDS_REFRESH_INLINESTEP: u32 = 16u32; +pub const DEBUG_CDS_REFRESH_INLINESTEP_PSEUDO: u32 = 17u32; +pub const DEBUG_CDS_REFRESH_REMOVEBREAKPOINT: u32 = 5u32; +pub const DEBUG_CDS_REFRESH_SETSCOPE: u32 = 12u32; +pub const DEBUG_CDS_REFRESH_SETSCOPEFRAMEBYINDEX: u32 = 13u32; +pub const DEBUG_CDS_REFRESH_SETSCOPEFROMJITDEBUGINFO: u32 = 14u32; +pub const DEBUG_CDS_REFRESH_SETSCOPEFROMSTOREDEVENT: u32 = 15u32; +pub const DEBUG_CDS_REFRESH_SETVALUE: u32 = 10u32; +pub const DEBUG_CDS_REFRESH_SETVALUE2: u32 = 11u32; +pub const DEBUG_CDS_REFRESH_WRITEPHYSICAL: u32 = 8u32; +pub const DEBUG_CDS_REFRESH_WRITEPHYSICAL2: u32 = 9u32; +pub const DEBUG_CDS_REFRESH_WRITEVIRTUAL: u32 = 6u32; +pub const DEBUG_CDS_REFRESH_WRITEVIRTUALUNCACHED: u32 = 7u32; +pub const DEBUG_CDS_REGISTERS: u32 = 1u32; +pub const DEBUG_CES_ALL: u32 = 4294967295u32; +pub const DEBUG_CES_ASSEMBLY_OPTIONS: u32 = 4096u32; +pub const DEBUG_CES_BREAKPOINTS: u32 = 4u32; +pub const DEBUG_CES_CODE_LEVEL: u32 = 8u32; +pub const DEBUG_CES_CURRENT_THREAD: u32 = 1u32; +pub const DEBUG_CES_EFFECTIVE_PROCESSOR: u32 = 2u32; +pub const DEBUG_CES_ENGINE_OPTIONS: u32 = 32u32; +pub const DEBUG_CES_EVENT_FILTERS: u32 = 256u32; +pub const DEBUG_CES_EXECUTION_STATUS: u32 = 16u32; +pub const DEBUG_CES_EXPRESSION_SYNTAX: u32 = 8192u32; +pub const DEBUG_CES_EXTENSIONS: u32 = 1024u32; +pub const DEBUG_CES_LOG_FILE: u32 = 64u32; +pub const DEBUG_CES_PROCESS_OPTIONS: u32 = 512u32; +pub const DEBUG_CES_RADIX: u32 = 128u32; +pub const DEBUG_CES_SYSTEMS: u32 = 2048u32; +pub const DEBUG_CES_TEXT_REPLACEMENTS: u32 = 16384u32; +pub const DEBUG_CLASS_IMAGE_FILE: u32 = 3u32; +pub const DEBUG_CLASS_KERNEL: u32 = 1u32; +pub const DEBUG_CLASS_UNINITIALIZED: u32 = 0u32; +pub const DEBUG_CLASS_USER_WINDOWS: u32 = 2u32; +pub const DEBUG_CLIENT_CDB: u32 = 4u32; +pub const DEBUG_CLIENT_KD: u32 = 5u32; +pub const DEBUG_CLIENT_NTKD: u32 = 3u32; +pub const DEBUG_CLIENT_NTSD: u32 = 2u32; +pub const DEBUG_CLIENT_UNKNOWN: u32 = 0u32; +pub const DEBUG_CLIENT_VSINT: u32 = 1u32; +pub const DEBUG_CLIENT_WINDBG: u32 = 6u32; +pub const DEBUG_CLIENT_WINIDE: u32 = 7u32; +pub const DEBUG_CMDEX_ADD_EVENT_STRING: u32 = 1u32; +pub const DEBUG_CMDEX_INVALID: u32 = 0u32; +pub const DEBUG_CMDEX_RESET_EVENT_STRINGS: u32 = 2u32; +pub const DEBUG_COMMAND_EXCEPTION_ID: u32 = 3688893886u32; +pub const DEBUG_CONNECT_SESSION_DEFAULT: u32 = 0u32; +pub const DEBUG_CONNECT_SESSION_NO_ANNOUNCE: u32 = 2u32; +pub const DEBUG_CONNECT_SESSION_NO_VERSION: u32 = 1u32; +pub const DEBUG_CSS_ALL: u32 = 4294967295u32; +pub const DEBUG_CSS_COLLAPSE_CHILDREN: u32 = 64u32; +pub const DEBUG_CSS_LOADS: u32 = 1u32; +pub const DEBUG_CSS_PATHS: u32 = 8u32; +pub const DEBUG_CSS_SCOPE: u32 = 4u32; +pub const DEBUG_CSS_SYMBOL_OPTIONS: u32 = 16u32; +pub const DEBUG_CSS_TYPE_OPTIONS: u32 = 32u32; +pub const DEBUG_CSS_UNLOADS: u32 = 2u32; +pub const DEBUG_CURRENT_DEFAULT: u32 = 15u32; +pub const DEBUG_CURRENT_DISASM: u32 = 2u32; +pub const DEBUG_CURRENT_REGISTERS: u32 = 4u32; +pub const DEBUG_CURRENT_SOURCE_LINE: u32 = 8u32; +pub const DEBUG_CURRENT_SYMBOL: u32 = 1u32; +pub const DEBUG_DATA_BASE_TRANSLATION_VIRTUAL_OFFSET: u32 = 3u32; +pub const DEBUG_DATA_BreakpointWithStatusAddr: u32 = 32u32; +pub const DEBUG_DATA_CmNtCSDVersionAddr: u32 = 616u32; +pub const DEBUG_DATA_DumpAttributes: u32 = 100072u32; +pub const DEBUG_DATA_DumpFormatVersion: u32 = 100040u32; +pub const DEBUG_DATA_DumpMmStorage: u32 = 100064u32; +pub const DEBUG_DATA_DumpPowerState: u32 = 100056u32; +pub const DEBUG_DATA_DumpWriterStatus: u32 = 100032u32; +pub const DEBUG_DATA_DumpWriterVersion: u32 = 100048u32; +pub const DEBUG_DATA_EtwpDebuggerData: u32 = 816u32; +pub const DEBUG_DATA_ExpNumberOfPagedPoolsAddr: u32 = 112u32; +pub const DEBUG_DATA_ExpPagedPoolDescriptorAddr: u32 = 104u32; +pub const DEBUG_DATA_ExpSystemResourcesListAddr: u32 = 96u32; +pub const DEBUG_DATA_IopErrorLogListHeadAddr: u32 = 144u32; +pub const DEBUG_DATA_KPCR_OFFSET: u32 = 0u32; +pub const DEBUG_DATA_KPRCB_OFFSET: u32 = 1u32; +pub const DEBUG_DATA_KTHREAD_OFFSET: u32 = 2u32; +pub const DEBUG_DATA_KdPrintBufferSizeAddr: u32 = 720u32; +pub const DEBUG_DATA_KdPrintCircularBufferAddr: u32 = 480u32; +pub const DEBUG_DATA_KdPrintCircularBufferEndAddr: u32 = 488u32; +pub const DEBUG_DATA_KdPrintCircularBufferPtrAddr: u32 = 712u32; +pub const DEBUG_DATA_KdPrintRolloverCountAddr: u32 = 504u32; +pub const DEBUG_DATA_KdPrintWritePointerAddr: u32 = 496u32; +pub const DEBUG_DATA_KeBugCheckCallbackListHeadAddr: u32 = 128u32; +pub const DEBUG_DATA_KeTimeIncrementAddr: u32 = 120u32; +pub const DEBUG_DATA_KeUserCallbackDispatcherAddr: u32 = 64u32; +pub const DEBUG_DATA_KernBase: u32 = 24u32; +pub const DEBUG_DATA_KernelVerifierAddr: u32 = 576u32; +pub const DEBUG_DATA_KiBugcheckDataAddr: u32 = 136u32; +pub const DEBUG_DATA_KiCallUserModeAddr: u32 = 56u32; +pub const DEBUG_DATA_KiNormalSystemCall: u32 = 528u32; +pub const DEBUG_DATA_KiProcessorBlockAddr: u32 = 536u32; +pub const DEBUG_DATA_MmAllocatedNonPagedPoolAddr: u32 = 592u32; +pub const DEBUG_DATA_MmAvailablePagesAddr: u32 = 424u32; +pub const DEBUG_DATA_MmBadPagesDetected: u32 = 800u32; +pub const DEBUG_DATA_MmDriverCommitAddr: u32 = 352u32; +pub const DEBUG_DATA_MmExtendedCommitAddr: u32 = 376u32; +pub const DEBUG_DATA_MmFreePageListHeadAddr: u32 = 392u32; +pub const DEBUG_DATA_MmHighestPhysicalPageAddr: u32 = 240u32; +pub const DEBUG_DATA_MmHighestUserAddressAddr: u32 = 456u32; +pub const DEBUG_DATA_MmLastUnloadedDriverAddr: u32 = 552u32; +pub const DEBUG_DATA_MmLoadedUserImageListAddr: u32 = 512u32; +pub const DEBUG_DATA_MmLowestPhysicalPageAddr: u32 = 232u32; +pub const DEBUG_DATA_MmMaximumNonPagedPoolInBytesAddr: u32 = 256u32; +pub const DEBUG_DATA_MmModifiedNoWritePageListHeadAddr: u32 = 416u32; +pub const DEBUG_DATA_MmModifiedPageListHeadAddr: u32 = 408u32; +pub const DEBUG_DATA_MmNonPagedPoolEndAddr: u32 = 280u32; +pub const DEBUG_DATA_MmNonPagedPoolStartAddr: u32 = 272u32; +pub const DEBUG_DATA_MmNonPagedSystemStartAddr: u32 = 264u32; +pub const DEBUG_DATA_MmNumberOfPagingFilesAddr: u32 = 224u32; +pub const DEBUG_DATA_MmNumberOfPhysicalPagesAddr: u32 = 248u32; +pub const DEBUG_DATA_MmPageSize: u32 = 312u32; +pub const DEBUG_DATA_MmPagedPoolCommitAddr: u32 = 368u32; +pub const DEBUG_DATA_MmPagedPoolEndAddr: u32 = 296u32; +pub const DEBUG_DATA_MmPagedPoolInformationAddr: u32 = 304u32; +pub const DEBUG_DATA_MmPagedPoolStartAddr: u32 = 288u32; +pub const DEBUG_DATA_MmPeakCommitmentAddr: u32 = 600u32; +pub const DEBUG_DATA_MmPfnDatabaseAddr: u32 = 192u32; +pub const DEBUG_DATA_MmPhysicalMemoryBlockAddr: u32 = 624u32; +pub const DEBUG_DATA_MmProcessCommitAddr: u32 = 360u32; +pub const DEBUG_DATA_MmResidentAvailablePagesAddr: u32 = 432u32; +pub const DEBUG_DATA_MmSessionBase: u32 = 632u32; +pub const DEBUG_DATA_MmSessionSize: u32 = 640u32; +pub const DEBUG_DATA_MmSharedCommitAddr: u32 = 344u32; +pub const DEBUG_DATA_MmSizeOfPagedPoolInBytesAddr: u32 = 320u32; +pub const DEBUG_DATA_MmSpecialPoolTagAddr: u32 = 568u32; +pub const DEBUG_DATA_MmStandbyPageListHeadAddr: u32 = 400u32; +pub const DEBUG_DATA_MmSubsectionBaseAddr: u32 = 216u32; +pub const DEBUG_DATA_MmSystemCacheEndAddr: u32 = 176u32; +pub const DEBUG_DATA_MmSystemCacheStartAddr: u32 = 168u32; +pub const DEBUG_DATA_MmSystemCacheWsAddr: u32 = 184u32; +pub const DEBUG_DATA_MmSystemParentTablePage: u32 = 648u32; +pub const DEBUG_DATA_MmSystemPtesEndAddr: u32 = 208u32; +pub const DEBUG_DATA_MmSystemPtesStartAddr: u32 = 200u32; +pub const DEBUG_DATA_MmSystemRangeStartAddr: u32 = 464u32; +pub const DEBUG_DATA_MmTotalCommitLimitAddr: u32 = 328u32; +pub const DEBUG_DATA_MmTotalCommitLimitMaximumAddr: u32 = 608u32; +pub const DEBUG_DATA_MmTotalCommittedPagesAddr: u32 = 336u32; +pub const DEBUG_DATA_MmTriageActionTakenAddr: u32 = 560u32; +pub const DEBUG_DATA_MmUnloadedDriversAddr: u32 = 544u32; +pub const DEBUG_DATA_MmUserProbeAddressAddr: u32 = 472u32; +pub const DEBUG_DATA_MmVerifierDataAddr: u32 = 584u32; +pub const DEBUG_DATA_MmVirtualTranslationBase: u32 = 656u32; +pub const DEBUG_DATA_MmZeroedPageListHeadAddr: u32 = 384u32; +pub const DEBUG_DATA_NonPagedPoolDescriptorAddr: u32 = 448u32; +pub const DEBUG_DATA_NtBuildLabAddr: u32 = 520u32; +pub const DEBUG_DATA_ObpRootDirectoryObjectAddr: u32 = 152u32; +pub const DEBUG_DATA_ObpTypeObjectTypeAddr: u32 = 160u32; +pub const DEBUG_DATA_OffsetEprocessDirectoryTableBase: u32 = 686u32; +pub const DEBUG_DATA_OffsetEprocessParentCID: u32 = 684u32; +pub const DEBUG_DATA_OffsetEprocessPeb: u32 = 682u32; +pub const DEBUG_DATA_OffsetKThreadApcProcess: u32 = 672u32; +pub const DEBUG_DATA_OffsetKThreadBStore: u32 = 676u32; +pub const DEBUG_DATA_OffsetKThreadBStoreLimit: u32 = 678u32; +pub const DEBUG_DATA_OffsetKThreadInitialStack: u32 = 670u32; +pub const DEBUG_DATA_OffsetKThreadKernelStack: u32 = 668u32; +pub const DEBUG_DATA_OffsetKThreadNextProcessor: u32 = 664u32; +pub const DEBUG_DATA_OffsetKThreadState: u32 = 674u32; +pub const DEBUG_DATA_OffsetKThreadTeb: u32 = 666u32; +pub const DEBUG_DATA_OffsetPrcbCpuType: u32 = 696u32; +pub const DEBUG_DATA_OffsetPrcbCurrentThread: u32 = 692u32; +pub const DEBUG_DATA_OffsetPrcbDpcRoutine: u32 = 690u32; +pub const DEBUG_DATA_OffsetPrcbMhz: u32 = 694u32; +pub const DEBUG_DATA_OffsetPrcbNumber: u32 = 702u32; +pub const DEBUG_DATA_OffsetPrcbProcessorState: u32 = 700u32; +pub const DEBUG_DATA_OffsetPrcbVendorString: u32 = 698u32; +pub const DEBUG_DATA_PROCESSOR_IDENTIFICATION: u32 = 4u32; +pub const DEBUG_DATA_PROCESSOR_SPEED: u32 = 5u32; +pub const DEBUG_DATA_PaeEnabled: u32 = 100000u32; +pub const DEBUG_DATA_PagingLevels: u32 = 100080u32; +pub const DEBUG_DATA_PoolTrackTableAddr: u32 = 440u32; +pub const DEBUG_DATA_ProductType: u32 = 100016u32; +pub const DEBUG_DATA_PsActiveProcessHeadAddr: u32 = 80u32; +pub const DEBUG_DATA_PsLoadedModuleListAddr: u32 = 72u32; +pub const DEBUG_DATA_PspCidTableAddr: u32 = 88u32; +pub const DEBUG_DATA_PteBase: u32 = 864u32; +pub const DEBUG_DATA_SPACE_BUS_DATA: u32 = 5u32; +pub const DEBUG_DATA_SPACE_CONTROL: u32 = 2u32; +pub const DEBUG_DATA_SPACE_COUNT: u32 = 7u32; +pub const DEBUG_DATA_SPACE_DEBUGGER_DATA: u32 = 6u32; +pub const DEBUG_DATA_SPACE_IO: u32 = 3u32; +pub const DEBUG_DATA_SPACE_MSR: u32 = 4u32; +pub const DEBUG_DATA_SPACE_PHYSICAL: u32 = 1u32; +pub const DEBUG_DATA_SPACE_VIRTUAL: u32 = 0u32; +pub const DEBUG_DATA_SavedContextAddr: u32 = 40u32; +pub const DEBUG_DATA_SharedUserData: u32 = 100008u32; +pub const DEBUG_DATA_SizeEProcess: u32 = 680u32; +pub const DEBUG_DATA_SizeEThread: u32 = 704u32; +pub const DEBUG_DATA_SizePrcb: u32 = 688u32; +pub const DEBUG_DATA_SuiteMask: u32 = 100024u32; +pub const DEBUG_DISASM_EFFECTIVE_ADDRESS: u32 = 1u32; +pub const DEBUG_DISASM_MATCHING_SYMBOLS: u32 = 2u32; +pub const DEBUG_DISASM_SOURCE_FILE_NAME: u32 = 8u32; +pub const DEBUG_DISASM_SOURCE_LINE_NUMBER: u32 = 4u32; +pub const DEBUG_DUMP_ACTIVE: u32 = 1030u32; +pub const DEBUG_DUMP_DEFAULT: u32 = 1025u32; +pub const DEBUG_DUMP_FILE_BASE: u32 = 4294967295u32; +pub const DEBUG_DUMP_FILE_LOAD_FAILED_INDEX: u32 = 4294967295u32; +pub const DEBUG_DUMP_FILE_ORIGINAL_CAB_INDEX: u32 = 4294967294u32; +pub const DEBUG_DUMP_FILE_PAGE_FILE_DUMP: u32 = 0u32; +pub const DEBUG_DUMP_FULL: u32 = 1026u32; +pub const DEBUG_DUMP_IMAGE_FILE: u32 = 1027u32; +pub const DEBUG_DUMP_SMALL: u32 = 1024u32; +pub const DEBUG_DUMP_TRACE_LOG: u32 = 1028u32; +pub const DEBUG_DUMP_WINDOWS_CE: u32 = 1029u32; +pub const DEBUG_ECREATE_PROCESS_DEFAULT: u32 = 0u32; +pub const DEBUG_ECREATE_PROCESS_INHERIT_HANDLES: u32 = 1u32; +pub const DEBUG_ECREATE_PROCESS_USE_IMPLICIT_COMMAND_LINE: u32 = 4u32; +pub const DEBUG_ECREATE_PROCESS_USE_VERIFIER_FLAGS: u32 = 2u32; +pub const DEBUG_EINDEX_FROM_CURRENT: u32 = 2u32; +pub const DEBUG_EINDEX_FROM_END: u32 = 1u32; +pub const DEBUG_EINDEX_FROM_START: u32 = 0u32; +pub const DEBUG_EINDEX_NAME: u32 = 0u32; +pub const DEBUG_END_ACTIVE_DETACH: u32 = 2u32; +pub const DEBUG_END_ACTIVE_TERMINATE: u32 = 1u32; +pub const DEBUG_END_DISCONNECT: u32 = 4u32; +pub const DEBUG_END_PASSIVE: u32 = 0u32; +pub const DEBUG_END_REENTRANT: u32 = 3u32; +pub const DEBUG_ENGOPT_ALL: u32 = 32505855u32; +pub const DEBUG_ENGOPT_ALLOW_NETWORK_PATHS: u32 = 4u32; +pub const DEBUG_ENGOPT_ALLOW_READ_ONLY_BREAKPOINTS: u32 = 1024u32; +pub const DEBUG_ENGOPT_DEBUGGING_SENSITIVE_DATA: u32 = 4194304u32; +pub const DEBUG_ENGOPT_DISABLESQM: u32 = 524288u32; +pub const DEBUG_ENGOPT_DISABLE_EXECUTION_COMMANDS: u32 = 65536u32; +pub const DEBUG_ENGOPT_DISABLE_MANAGED_SUPPORT: u32 = 16384u32; +pub const DEBUG_ENGOPT_DISABLE_MODULE_SYMBOL_LOAD: u32 = 32768u32; +pub const DEBUG_ENGOPT_DISABLE_STEPLINES_OPTIONS: u32 = 2097152u32; +pub const DEBUG_ENGOPT_DISALLOW_IMAGE_FILE_MAPPING: u32 = 131072u32; +pub const DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS: u32 = 8u32; +pub const DEBUG_ENGOPT_DISALLOW_SHELL_COMMANDS: u32 = 4096u32; +pub const DEBUG_ENGOPT_FAIL_INCOMPLETE_INFORMATION: u32 = 512u32; +pub const DEBUG_ENGOPT_FINAL_BREAK: u32 = 128u32; +pub const DEBUG_ENGOPT_IGNORE_DBGHELP_VERSION: u32 = 1u32; +pub const DEBUG_ENGOPT_IGNORE_EXTENSION_VERSIONS: u32 = 2u32; +pub const DEBUG_ENGOPT_IGNORE_LOADER_EXCEPTIONS: u32 = 16u32; +pub const DEBUG_ENGOPT_INITIAL_BREAK: u32 = 32u32; +pub const DEBUG_ENGOPT_INITIAL_MODULE_BREAK: u32 = 64u32; +pub const DEBUG_ENGOPT_KD_QUIET_MODE: u32 = 8192u32; +pub const DEBUG_ENGOPT_NO_EXECUTE_REPEAT: u32 = 256u32; +pub const DEBUG_ENGOPT_PREFER_DML: u32 = 262144u32; +pub const DEBUG_ENGOPT_PREFER_TRACE_FILES: u32 = 8388608u32; +pub const DEBUG_ENGOPT_RESOLVE_SHADOWED_VARIABLES: u32 = 16777216u32; +pub const DEBUG_ENGOPT_SYNCHRONIZE_BREAKPOINTS: u32 = 2048u32; +pub const DEBUG_EVENT_BREAKPOINT: u32 = 1u32; +pub const DEBUG_EVENT_CHANGE_DEBUGGEE_STATE: u32 = 1024u32; +pub const DEBUG_EVENT_CHANGE_ENGINE_STATE: u32 = 2048u32; +pub const DEBUG_EVENT_CHANGE_SYMBOL_STATE: u32 = 4096u32; +pub const DEBUG_EVENT_CREATE_PROCESS: u32 = 16u32; +pub const DEBUG_EVENT_CREATE_THREAD: u32 = 4u32; +pub const DEBUG_EVENT_EXCEPTION: u32 = 2u32; +pub const DEBUG_EVENT_EXIT_PROCESS: u32 = 32u32; +pub const DEBUG_EVENT_EXIT_THREAD: u32 = 8u32; +pub const DEBUG_EVENT_LOAD_MODULE: u32 = 64u32; +pub const DEBUG_EVENT_SERVICE_EXCEPTION: u32 = 8192u32; +pub const DEBUG_EVENT_SESSION_STATUS: u32 = 512u32; +pub const DEBUG_EVENT_SYSTEM_ERROR: u32 = 256u32; +pub const DEBUG_EVENT_UNLOAD_MODULE: u32 = 128u32; +pub const DEBUG_EXECUTE_DEFAULT: u32 = 0u32; +pub const DEBUG_EXECUTE_ECHO: u32 = 1u32; +pub const DEBUG_EXECUTE_EVENT: u32 = 2048u32; +pub const DEBUG_EXECUTE_EXTENSION: u32 = 32u32; +pub const DEBUG_EXECUTE_HOTKEY: u32 = 1024u32; +pub const DEBUG_EXECUTE_INTERNAL: u32 = 64u32; +pub const DEBUG_EXECUTE_MENU: u32 = 512u32; +pub const DEBUG_EXECUTE_NOT_LOGGED: u32 = 2u32; +pub const DEBUG_EXECUTE_NO_REPEAT: u32 = 4u32; +pub const DEBUG_EXECUTE_SCRIPT: u32 = 128u32; +pub const DEBUG_EXECUTE_TOOLBAR: u32 = 256u32; +pub const DEBUG_EXECUTE_USER_CLICKED: u32 = 16u32; +pub const DEBUG_EXECUTE_USER_TYPED: u32 = 8u32; +pub const DEBUG_EXEC_FLAGS_NONBLOCK: u32 = 1u32; +pub const DEBUG_EXPR_CPLUSPLUS: u32 = 1u32; +pub const DEBUG_EXPR_MASM: u32 = 0u32; +pub const DEBUG_EXTENSION_AT_ENGINE: u32 = 0u32; +pub const DEBUG_EXTINIT_HAS_COMMAND_HELP: u32 = 1u32; +pub const DEBUG_EXT_PVALUE_DEFAULT: u32 = 0u32; +pub const DEBUG_EXT_PVTYPE_IS_POINTER: u32 = 1u32; +pub const DEBUG_EXT_PVTYPE_IS_VALUE: u32 = 0u32; +pub const DEBUG_EXT_QVALUE_DEFAULT: u32 = 0u32; +pub const DEBUG_FA_ENTRY_ANSI_STRING: FA_ENTRY_TYPE = 5i32; +pub const DEBUG_FA_ENTRY_ANSI_STRINGs: FA_ENTRY_TYPE = 6i32; +pub const DEBUG_FA_ENTRY_ARRAY: FA_ENTRY_TYPE = 32768i32; +pub const DEBUG_FA_ENTRY_EXTENSION_CMD: FA_ENTRY_TYPE = 7i32; +pub const DEBUG_FA_ENTRY_INSTRUCTION_OFFSET: FA_ENTRY_TYPE = 3i32; +pub const DEBUG_FA_ENTRY_NO_TYPE: FA_ENTRY_TYPE = 0i32; +pub const DEBUG_FA_ENTRY_POINTER: FA_ENTRY_TYPE = 4i32; +pub const DEBUG_FA_ENTRY_STRUCTURED_DATA: FA_ENTRY_TYPE = 8i32; +pub const DEBUG_FA_ENTRY_ULONG: FA_ENTRY_TYPE = 1i32; +pub const DEBUG_FA_ENTRY_ULONG64: FA_ENTRY_TYPE = 2i32; +pub const DEBUG_FA_ENTRY_UNICODE_STRING: FA_ENTRY_TYPE = 9i32; +pub const DEBUG_FILTER_BREAK: u32 = 0u32; +pub const DEBUG_FILTER_CREATE_PROCESS: u32 = 2u32; +pub const DEBUG_FILTER_CREATE_THREAD: u32 = 0u32; +pub const DEBUG_FILTER_DEBUGGEE_OUTPUT: u32 = 9u32; +pub const DEBUG_FILTER_EXIT_PROCESS: u32 = 3u32; +pub const DEBUG_FILTER_EXIT_THREAD: u32 = 1u32; +pub const DEBUG_FILTER_GO_HANDLED: u32 = 0u32; +pub const DEBUG_FILTER_GO_NOT_HANDLED: u32 = 1u32; +pub const DEBUG_FILTER_IGNORE: u32 = 3u32; +pub const DEBUG_FILTER_INITIAL_BREAKPOINT: u32 = 7u32; +pub const DEBUG_FILTER_INITIAL_MODULE_LOAD: u32 = 8u32; +pub const DEBUG_FILTER_LOAD_MODULE: u32 = 4u32; +pub const DEBUG_FILTER_OUTPUT: u32 = 2u32; +pub const DEBUG_FILTER_REMOVE: u32 = 4u32; +pub const DEBUG_FILTER_SECOND_CHANCE_BREAK: u32 = 1u32; +pub const DEBUG_FILTER_SYSTEM_ERROR: u32 = 6u32; +pub const DEBUG_FILTER_UNLOAD_MODULE: u32 = 5u32; +pub const DEBUG_FIND_SOURCE_BEST_MATCH: u32 = 2u32; +pub const DEBUG_FIND_SOURCE_DEFAULT: u32 = 0u32; +pub const DEBUG_FIND_SOURCE_FULL_PATH: u32 = 1u32; +pub const DEBUG_FIND_SOURCE_NO_SRCSRV: u32 = 4u32; +pub const DEBUG_FIND_SOURCE_TOKEN_LOOKUP: u32 = 8u32; +pub const DEBUG_FIND_SOURCE_WITH_CHECKSUM: u32 = 16u32; +pub const DEBUG_FIND_SOURCE_WITH_CHECKSUM_STRICT: u32 = 32u32; +pub const DEBUG_FLR_ACPI: DEBUG_FLR_PARAM_TYPE = 24576i32; +pub const DEBUG_FLR_ACPI_BLACKBOX: DEBUG_FLR_PARAM_TYPE = 24832i32; +pub const DEBUG_FLR_ACPI_EXTENSION: DEBUG_FLR_PARAM_TYPE = 11i32; +pub const DEBUG_FLR_ACPI_OBJECT: DEBUG_FLR_PARAM_TYPE = 13i32; +pub const DEBUG_FLR_ACPI_RESCONFLICT: DEBUG_FLR_PARAM_TYPE = 12i32; +pub const DEBUG_FLR_ADDITIONAL_DEBUGTEXT: DEBUG_FLR_PARAM_TYPE = 65546i32; +pub const DEBUG_FLR_ADDITIONAL_XML: DEBUG_FLR_PARAM_TYPE = 1150976i32; +pub const DEBUG_FLR_ADD_PROCESS_IN_BUCKET: DEBUG_FLR_PARAM_TYPE = 8219i32; +pub const DEBUG_FLR_ALUREON: DEBUG_FLR_PARAM_TYPE = 12372i32; +pub const DEBUG_FLR_ANALYSIS_REPROCESS: DEBUG_FLR_PARAM_TYPE = 1052705i32; +pub const DEBUG_FLR_ANALYSIS_SESSION_ELAPSED_TIME: DEBUG_FLR_PARAM_TYPE = 1052701i32; +pub const DEBUG_FLR_ANALYSIS_SESSION_HOST: DEBUG_FLR_PARAM_TYPE = 1052700i32; +pub const DEBUG_FLR_ANALYSIS_SESSION_TIME: DEBUG_FLR_PARAM_TYPE = 1052699i32; +pub const DEBUG_FLR_ANALYSIS_VERSION: DEBUG_FLR_PARAM_TYPE = 1052702i32; +pub const DEBUG_FLR_ANALYZABLE_POOL_CORRUPTION: DEBUG_FLR_PARAM_TYPE = 8202i32; +pub const DEBUG_FLR_APPKILL: DEBUG_FLR_PARAM_TYPE = 8212i32; +pub const DEBUG_FLR_APPLICATION_VERIFIER_LOADED: DEBUG_FLR_PARAM_TYPE = 1048626i32; +pub const DEBUG_FLR_APPS_NOT_TERMINATED: DEBUG_FLR_PARAM_TYPE = 8258i32; +pub const DEBUG_FLR_APPVERIFERFLAGS: DEBUG_FLR_PARAM_TYPE = 1048600i32; +pub const DEBUG_FLR_ARM_WRITE_AV_CAVEAT: DEBUG_FLR_PARAM_TYPE = 8241i32; +pub const DEBUG_FLR_ASSERT_DATA: DEBUG_FLR_PARAM_TYPE = 768i32; +pub const DEBUG_FLR_ASSERT_FILE: DEBUG_FLR_PARAM_TYPE = 769i32; +pub const DEBUG_FLR_ASSERT_INSTRUCTION: DEBUG_FLR_PARAM_TYPE = 778i32; +pub const DEBUG_FLR_BADPAGES_DETECTED: DEBUG_FLR_PARAM_TYPE = 4109i32; +pub const DEBUG_FLR_BAD_HANDLE: DEBUG_FLR_PARAM_TYPE = 17i32; +pub const DEBUG_FLR_BAD_MEMORY_REFERENCE: DEBUG_FLR_PARAM_TYPE = 8210i32; +pub const DEBUG_FLR_BAD_OBJECT_REFERENCE: DEBUG_FLR_PARAM_TYPE = 8211i32; +pub const DEBUG_FLR_BAD_STACK: DEBUG_FLR_PARAM_TYPE = 8193i32; +pub const DEBUG_FLR_BLOCKED_THREAD0: DEBUG_FLR_PARAM_TYPE = -1073741818i32; +pub const DEBUG_FLR_BLOCKED_THREAD1: DEBUG_FLR_PARAM_TYPE = -1073741817i32; +pub const DEBUG_FLR_BLOCKED_THREAD2: DEBUG_FLR_PARAM_TYPE = -1073741816i32; +pub const DEBUG_FLR_BLOCKING_PROCESSID: DEBUG_FLR_PARAM_TYPE = -1073741815i32; +pub const DEBUG_FLR_BLOCKING_THREAD: DEBUG_FLR_PARAM_TYPE = -1073741820i32; +pub const DEBUG_FLR_BOOST_FOLLOWUP_TO_SPECIFIC: DEBUG_FLR_PARAM_TYPE = 8222i32; +pub const DEBUG_FLR_BOOTSTAT: DEBUG_FLR_PARAM_TYPE = 28672i32; +pub const DEBUG_FLR_BOOTSTAT_BLACKBOX: DEBUG_FLR_PARAM_TYPE = 28928i32; +pub const DEBUG_FLR_BUCKET_ID: DEBUG_FLR_PARAM_TYPE = 65536i32; +pub const DEBUG_FLR_BUCKET_ID_CHECKSUM: DEBUG_FLR_PARAM_TYPE = 1052684i32; +pub const DEBUG_FLR_BUCKET_ID_FLAVOR_STR: DEBUG_FLR_PARAM_TYPE = 1052686i32; +pub const DEBUG_FLR_BUCKET_ID_FUNCTION_STR: DEBUG_FLR_PARAM_TYPE = 1052676i32; +pub const DEBUG_FLR_BUCKET_ID_FUNC_OFFSET: DEBUG_FLR_PARAM_TYPE = 65589i32; +pub const DEBUG_FLR_BUCKET_ID_IMAGE_STR: DEBUG_FLR_PARAM_TYPE = 1052703i32; +pub const DEBUG_FLR_BUCKET_ID_MODULE_STR: DEBUG_FLR_PARAM_TYPE = 1052674i32; +pub const DEBUG_FLR_BUCKET_ID_MODVER_STR: DEBUG_FLR_PARAM_TYPE = 1052675i32; +pub const DEBUG_FLR_BUCKET_ID_OFFSET: DEBUG_FLR_PARAM_TYPE = 1052677i32; +pub const DEBUG_FLR_BUCKET_ID_PREFIX_STR: DEBUG_FLR_PARAM_TYPE = 1052673i32; +pub const DEBUG_FLR_BUCKET_ID_PRIVATE: DEBUG_FLR_PARAM_TYPE = 1052704i32; +pub const DEBUG_FLR_BUCKET_ID_TIMEDATESTAMP: DEBUG_FLR_PARAM_TYPE = 1052683i32; +pub const DEBUG_FLR_BUGCHECKING_DRIVER: DEBUG_FLR_PARAM_TYPE = 12292i32; +pub const DEBUG_FLR_BUGCHECKING_DRIVER_IDTAG: DEBUG_FLR_PARAM_TYPE = 65559i32; +pub const DEBUG_FLR_BUGCHECK_CODE: DEBUG_FLR_PARAM_TYPE = 4108i32; +pub const DEBUG_FLR_BUGCHECK_DESC: DEBUG_FLR_PARAM_TYPE = 1538i32; +pub const DEBUG_FLR_BUGCHECK_P1: DEBUG_FLR_PARAM_TYPE = 4115i32; +pub const DEBUG_FLR_BUGCHECK_P2: DEBUG_FLR_PARAM_TYPE = 4116i32; +pub const DEBUG_FLR_BUGCHECK_P3: DEBUG_FLR_PARAM_TYPE = 4117i32; +pub const DEBUG_FLR_BUGCHECK_P4: DEBUG_FLR_PARAM_TYPE = 4118i32; +pub const DEBUG_FLR_BUGCHECK_SPECIFIER: DEBUG_FLR_PARAM_TYPE = 1537i32; +pub const DEBUG_FLR_BUGCHECK_STR: DEBUG_FLR_PARAM_TYPE = 1536i32; +pub const DEBUG_FLR_BUILDNAME_IN_BUCKET: DEBUG_FLR_PARAM_TYPE = 12349i32; +pub const DEBUG_FLR_BUILDOSVER_STR_deprecated: DEBUG_FLR_PARAM_TYPE = 1052929i32; +pub const DEBUG_FLR_BUILD_OS_FULL_VERSION_STRING: DEBUG_FLR_PARAM_TYPE = 65567i32; +pub const DEBUG_FLR_BUILD_VERSION_STRING: DEBUG_FLR_PARAM_TYPE = 65566i32; +pub const DEBUG_FLR_CANCELLATION_NOT_SUPPORTED: DEBUG_FLR_PARAM_TYPE = 12350i32; +pub const DEBUG_FLR_CHKIMG_EXTENSION: DEBUG_FLR_PARAM_TYPE = 19i32; +pub const DEBUG_FLR_CHPE_PROCESS: DEBUG_FLR_PARAM_TYPE = -268435433i32; +pub const DEBUG_FLR_CLIENT_DRIVER: DEBUG_FLR_PARAM_TYPE = 1031i32; +pub const DEBUG_FLR_COLLECT_DATA_FOR_BUCKET: DEBUG_FLR_PARAM_TYPE = 65577i32; +pub const DEBUG_FLR_COMPUTER_NAME: DEBUG_FLR_PARAM_TYPE = 65578i32; +pub const DEBUG_FLR_CONTEXT: DEBUG_FLR_PARAM_TYPE = -1073741823i32; +pub const DEBUG_FLR_CONTEXT_COMMAND: DEBUG_FLR_PARAM_TYPE = 2097164i32; +pub const DEBUG_FLR_CONTEXT_FLAGS: DEBUG_FLR_PARAM_TYPE = 2097165i32; +pub const DEBUG_FLR_CONTEXT_FOLLOWUP_INDEX: DEBUG_FLR_PARAM_TYPE = 2097191i32; +pub const DEBUG_FLR_CONTEXT_ID: DEBUG_FLR_PARAM_TYPE = 2097168i32; +pub const DEBUG_FLR_CONTEXT_METADATA: DEBUG_FLR_PARAM_TYPE = 2097211i32; +pub const DEBUG_FLR_CONTEXT_ORDER: DEBUG_FLR_PARAM_TYPE = 2097166i32; +pub const DEBUG_FLR_CONTEXT_RESTORE_COMMAND: DEBUG_FLR_PARAM_TYPE = 65551i32; +pub const DEBUG_FLR_CONTEXT_SYSTEM: DEBUG_FLR_PARAM_TYPE = 2097167i32; +pub const DEBUG_FLR_CORRUPTING_POOL_ADDRESS: DEBUG_FLR_PARAM_TYPE = 1026i32; +pub const DEBUG_FLR_CORRUPTING_POOL_TAG: DEBUG_FLR_PARAM_TYPE = 1027i32; +pub const DEBUG_FLR_CORRUPT_MODULE_LIST: DEBUG_FLR_PARAM_TYPE = 8192i32; +pub const DEBUG_FLR_CORRUPT_SERVICE_TABLE: DEBUG_FLR_PARAM_TYPE = 12308i32; +pub const DEBUG_FLR_COVERAGE_BUILD: DEBUG_FLR_PARAM_TYPE = 8244i32; +pub const DEBUG_FLR_CPU_COUNT: DEBUG_FLR_PARAM_TYPE = 12330i32; +pub const DEBUG_FLR_CPU_FAMILY: DEBUG_FLR_PARAM_TYPE = 12333i32; +pub const DEBUG_FLR_CPU_MICROCODE_VERSION: DEBUG_FLR_PARAM_TYPE = 12329i32; +pub const DEBUG_FLR_CPU_MICROCODE_ZERO_INTEL: DEBUG_FLR_PARAM_TYPE = 8228i32; +pub const DEBUG_FLR_CPU_MODEL: DEBUG_FLR_PARAM_TYPE = 12334i32; +pub const DEBUG_FLR_CPU_OVERCLOCKED: DEBUG_FLR_PARAM_TYPE = 8198i32; +pub const DEBUG_FLR_CPU_SPEED: DEBUG_FLR_PARAM_TYPE = 12331i32; +pub const DEBUG_FLR_CPU_STEPPING: DEBUG_FLR_PARAM_TYPE = 12335i32; +pub const DEBUG_FLR_CPU_VENDOR: DEBUG_FLR_PARAM_TYPE = 12332i32; +pub const DEBUG_FLR_CRITICAL_PROCESS: DEBUG_FLR_PARAM_TYPE = 4119i32; +pub const DEBUG_FLR_CRITICAL_PROCESS_REPORTGUID: DEBUG_FLR_PARAM_TYPE = 65628i32; +pub const DEBUG_FLR_CRITICAL_SECTION: DEBUG_FLR_PARAM_TYPE = 16i32; +pub const DEBUG_FLR_CURRENT_IRQL: DEBUG_FLR_PARAM_TYPE = 512i32; +pub const DEBUG_FLR_CUSTOMER_CRASH_COUNT: DEBUG_FLR_PARAM_TYPE = 12299i32; +pub const DEBUG_FLR_CUSTOMREPORTTAG: DEBUG_FLR_PARAM_TYPE = -268435454i32; +pub const DEBUG_FLR_CUSTOM_ANALYSIS_TAG_MAX: DEBUG_FLR_PARAM_TYPE = -1342177280i32; +pub const DEBUG_FLR_CUSTOM_ANALYSIS_TAG_MIN: DEBUG_FLR_PARAM_TYPE = -1610612736i32; +pub const DEBUG_FLR_CUSTOM_COMMAND: DEBUG_FLR_PARAM_TYPE = -268435431i32; +pub const DEBUG_FLR_CUSTOM_COMMAND_OUTPUT: DEBUG_FLR_PARAM_TYPE = -268435430i32; +pub const DEBUG_FLR_DEADLOCK_INPROC: DEBUG_FLR_PARAM_TYPE = 1048589i32; +pub const DEBUG_FLR_DEADLOCK_XPROC: DEBUG_FLR_PARAM_TYPE = 1048590i32; +pub const DEBUG_FLR_DEBUG_ANALYSIS: DEBUG_FLR_PARAM_TYPE = 1118208i32; +pub const DEBUG_FLR_DEFAULT_BUCKET_ID: DEBUG_FLR_PARAM_TYPE = 65544i32; +pub const DEBUG_FLR_DEFAULT_SOLUTION_ID: DEBUG_FLR_PARAM_TYPE = 12294i32; +pub const DEBUG_FLR_DERIVED_WAIT_CHAIN: DEBUG_FLR_PARAM_TYPE = 1048583i32; +pub const DEBUG_FLR_DESKTOP_HEAP_MISSING: DEBUG_FLR_PARAM_TYPE = 1048593i32; +pub const DEBUG_FLR_DETOURED_IMAGE: DEBUG_FLR_PARAM_TYPE = 12351i32; +pub const DEBUG_FLR_DEVICE_NODE: DEBUG_FLR_PARAM_TYPE = 28i32; +pub const DEBUG_FLR_DEVICE_OBJECT: DEBUG_FLR_PARAM_TYPE = 3i32; +pub const DEBUG_FLR_DISKIO_READ_FAILURE: DEBUG_FLR_PARAM_TYPE = 12353i32; +pub const DEBUG_FLR_DISKIO_WRITE_FAILURE: DEBUG_FLR_PARAM_TYPE = 12354i32; +pub const DEBUG_FLR_DISKSEC_ISSUEDESCSTRING_DEPRECATED: DEBUG_FLR_PARAM_TYPE = -268435450i32; +pub const DEBUG_FLR_DISKSEC_MFGID_DEPRECATED: DEBUG_FLR_PARAM_TYPE = -268435451i32; +pub const DEBUG_FLR_DISKSEC_MODEL_DEPRECATED: DEBUG_FLR_PARAM_TYPE = -268435452i32; +pub const DEBUG_FLR_DISKSEC_ORGID_DEPRECATED: DEBUG_FLR_PARAM_TYPE = -268435453i32; +pub const DEBUG_FLR_DISKSEC_PRIVATE_DATASIZE_DEPRECATED: DEBUG_FLR_PARAM_TYPE = -268435444i32; +pub const DEBUG_FLR_DISKSEC_PRIVATE_OFFSET_DEPRECATED: DEBUG_FLR_PARAM_TYPE = -268435445i32; +pub const DEBUG_FLR_DISKSEC_PRIVATE_TOTSIZE_DEPRECATED: DEBUG_FLR_PARAM_TYPE = -268435446i32; +pub const DEBUG_FLR_DISKSEC_PUBLIC_DATASIZE_DEPRECATED: DEBUG_FLR_PARAM_TYPE = -268435447i32; +pub const DEBUG_FLR_DISKSEC_PUBLIC_OFFSET_DEPRECATED: DEBUG_FLR_PARAM_TYPE = -268435448i32; +pub const DEBUG_FLR_DISKSEC_PUBLIC_TOTSIZE_DEPRECATED: DEBUG_FLR_PARAM_TYPE = -268435449i32; +pub const DEBUG_FLR_DISKSEC_REASON_DEPRECATED: DEBUG_FLR_PARAM_TYPE = -268435442i32; +pub const DEBUG_FLR_DISKSEC_TOTALSIZE_DEPRECATED: DEBUG_FLR_PARAM_TYPE = -268435443i32; +pub const DEBUG_FLR_DISK_HARDWARE_ERROR: DEBUG_FLR_PARAM_TYPE = 8206i32; +pub const DEBUG_FLR_DPC_RUNTIME: DEBUG_FLR_PARAM_TYPE = 4111i32; +pub const DEBUG_FLR_DPC_STACK_BASE: DEBUG_FLR_PARAM_TYPE = -1073741809i32; +pub const DEBUG_FLR_DPC_TIMELIMIT: DEBUG_FLR_PARAM_TYPE = 4112i32; +pub const DEBUG_FLR_DPC_TIMEOUT_TYPE: DEBUG_FLR_PARAM_TYPE = 4110i32; +pub const DEBUG_FLR_DRIVER_HARDWAREID: DEBUG_FLR_PARAM_TYPE = 65552i32; +pub const DEBUG_FLR_DRIVER_HARDWARE_DEVICE_ID: DEBUG_FLR_PARAM_TYPE = 65554i32; +pub const DEBUG_FLR_DRIVER_HARDWARE_DEVICE_NAME: DEBUG_FLR_PARAM_TYPE = 65633i32; +pub const DEBUG_FLR_DRIVER_HARDWARE_ID_BUS_TYPE: DEBUG_FLR_PARAM_TYPE = 65557i32; +pub const DEBUG_FLR_DRIVER_HARDWARE_REV_ID: DEBUG_FLR_PARAM_TYPE = 65556i32; +pub const DEBUG_FLR_DRIVER_HARDWARE_SUBSYS_ID: DEBUG_FLR_PARAM_TYPE = 65555i32; +pub const DEBUG_FLR_DRIVER_HARDWARE_SUBVENDOR_NAME: DEBUG_FLR_PARAM_TYPE = 65632i32; +pub const DEBUG_FLR_DRIVER_HARDWARE_VENDOR_ID: DEBUG_FLR_PARAM_TYPE = 65553i32; +pub const DEBUG_FLR_DRIVER_HARDWARE_VENDOR_NAME: DEBUG_FLR_PARAM_TYPE = 65631i32; +pub const DEBUG_FLR_DRIVER_OBJECT: DEBUG_FLR_PARAM_TYPE = 2i32; +pub const DEBUG_FLR_DRIVER_VERIFIER_IO_VIOLATION_TYPE: DEBUG_FLR_PARAM_TYPE = 4096i32; +pub const DEBUG_FLR_DRIVER_XML_DESCRIPTION: DEBUG_FLR_PARAM_TYPE = 65562i32; +pub const DEBUG_FLR_DRIVER_XML_MANUFACTURER: DEBUG_FLR_PARAM_TYPE = 65564i32; +pub const DEBUG_FLR_DRIVER_XML_PRODUCTNAME: DEBUG_FLR_PARAM_TYPE = 65563i32; +pub const DEBUG_FLR_DRIVER_XML_VERSION: DEBUG_FLR_PARAM_TYPE = 65565i32; +pub const DEBUG_FLR_DRVPOWERSTATE_SUBCODE: DEBUG_FLR_PARAM_TYPE = 4101i32; +pub const DEBUG_FLR_DUMPSTREAM_COMMENTA: DEBUG_FLR_PARAM_TYPE = -268435435i32; +pub const DEBUG_FLR_DUMPSTREAM_COMMENTW: DEBUG_FLR_PARAM_TYPE = -268435434i32; +pub const DEBUG_FLR_DUMP_CLASS: DEBUG_FLR_PARAM_TYPE = 1048627i32; +pub const DEBUG_FLR_DUMP_FILE_ATTRIBUTES: DEBUG_FLR_PARAM_TYPE = 4113i32; +pub const DEBUG_FLR_DUMP_FLAGS: DEBUG_FLR_PARAM_TYPE = 1048625i32; +pub const DEBUG_FLR_DUMP_QUALIFIER: DEBUG_FLR_PARAM_TYPE = 1048628i32; +pub const DEBUG_FLR_DUMP_TYPE: DEBUG_FLR_PARAM_TYPE = 1048602i32; +pub const DEBUG_FLR_END_MESSAGE: DEBUG_FLR_PARAM_TYPE = 65612i32; +pub const DEBUG_FLR_ERESOURCE_ADDRESS: DEBUG_FLR_PARAM_TYPE = 22i32; +pub const DEBUG_FLR_EVENT_CODE_DATA_MISMATCH: DEBUG_FLR_PARAM_TYPE = 12338i32; +pub const DEBUG_FLR_EXCEPTION_CODE: DEBUG_FLR_PARAM_TYPE = 4097i32; +pub const DEBUG_FLR_EXCEPTION_CODE_STR: DEBUG_FLR_PARAM_TYPE = 4098i32; +pub const DEBUG_FLR_EXCEPTION_CODE_STR_deprecated: DEBUG_FLR_PARAM_TYPE = 1052672i32; +pub const DEBUG_FLR_EXCEPTION_CONTEXT_RECURSION: DEBUG_FLR_PARAM_TYPE = 12352i32; +pub const DEBUG_FLR_EXCEPTION_DOESNOT_MATCH_CODE: DEBUG_FLR_PARAM_TYPE = 777i32; +pub const DEBUG_FLR_EXCEPTION_MODULE_INFO: DEBUG_FLR_PARAM_TYPE = 2097190i32; +pub const DEBUG_FLR_EXCEPTION_PARAMETER1: DEBUG_FLR_PARAM_TYPE = 770i32; +pub const DEBUG_FLR_EXCEPTION_PARAMETER2: DEBUG_FLR_PARAM_TYPE = 771i32; +pub const DEBUG_FLR_EXCEPTION_PARAMETER3: DEBUG_FLR_PARAM_TYPE = 772i32; +pub const DEBUG_FLR_EXCEPTION_PARAMETER4: DEBUG_FLR_PARAM_TYPE = 773i32; +pub const DEBUG_FLR_EXCEPTION_RECORD: DEBUG_FLR_PARAM_TYPE = 774i32; +pub const DEBUG_FLR_EXCEPTION_STR: DEBUG_FLR_PARAM_TYPE = 776i32; +pub const DEBUG_FLR_EXECUTE_ADDRESS: DEBUG_FLR_PARAM_TYPE = 30i32; +pub const DEBUG_FLR_FAILED_INSTRUCTION_ADDRESS: DEBUG_FLR_PARAM_TYPE = 9i32; +pub const DEBUG_FLR_FAILURE_ANALYSIS_SOURCE: DEBUG_FLR_PARAM_TYPE = 65591i32; +pub const DEBUG_FLR_FAILURE_BUCKET_ID: DEBUG_FLR_PARAM_TYPE = 65561i32; +pub const DEBUG_FLR_FAILURE_DISPLAY_NAME: DEBUG_FLR_PARAM_TYPE = 2097239i32; +pub const DEBUG_FLR_FAILURE_EXCEPTION_CODE: DEBUG_FLR_PARAM_TYPE = 65607i32; +pub const DEBUG_FLR_FAILURE_FUNCTION_NAME: DEBUG_FLR_PARAM_TYPE = 65609i32; +pub const DEBUG_FLR_FAILURE_ID_HASH: DEBUG_FLR_PARAM_TYPE = 65592i32; +pub const DEBUG_FLR_FAILURE_ID_HASH_STRING: DEBUG_FLR_PARAM_TYPE = 65593i32; +pub const DEBUG_FLR_FAILURE_ID_REPORT_LINK: DEBUG_FLR_PARAM_TYPE = 65594i32; +pub const DEBUG_FLR_FAILURE_IMAGE_NAME: DEBUG_FLR_PARAM_TYPE = 65608i32; +pub const DEBUG_FLR_FAILURE_LIST: DEBUG_FLR_PARAM_TYPE = 2097238i32; +pub const DEBUG_FLR_FAILURE_MODULE_NAME: DEBUG_FLR_PARAM_TYPE = 65629i32; +pub const DEBUG_FLR_FAILURE_PROBLEM_CLASS: DEBUG_FLR_PARAM_TYPE = 65606i32; +pub const DEBUG_FLR_FAILURE_SYMBOL_NAME: DEBUG_FLR_PARAM_TYPE = 65610i32; +pub const DEBUG_FLR_FAULTING_INSTR_CODE: DEBUG_FLR_PARAM_TYPE = 12297i32; +pub const DEBUG_FLR_FAULTING_IP: DEBUG_FLR_PARAM_TYPE = -2147483648i32; +pub const DEBUG_FLR_FAULTING_LOCAL_VARIABLE_NAME: DEBUG_FLR_PARAM_TYPE = 1048623i32; +pub const DEBUG_FLR_FAULTING_MODULE: DEBUG_FLR_PARAM_TYPE = -2147483647i32; +pub const DEBUG_FLR_FAULTING_SERVICE_NAME: DEBUG_FLR_PARAM_TYPE = 65570i32; +pub const DEBUG_FLR_FAULTING_SOURCE_CODE: DEBUG_FLR_PARAM_TYPE = 65569i32; +pub const DEBUG_FLR_FAULTING_SOURCE_COMMIT_ID: DEBUG_FLR_PARAM_TYPE = 65634i32; +pub const DEBUG_FLR_FAULTING_SOURCE_CONTROL_TYPE: DEBUG_FLR_PARAM_TYPE = 65635i32; +pub const DEBUG_FLR_FAULTING_SOURCE_FILE: DEBUG_FLR_PARAM_TYPE = 65586i32; +pub const DEBUG_FLR_FAULTING_SOURCE_LINE: DEBUG_FLR_PARAM_TYPE = 65585i32; +pub const DEBUG_FLR_FAULTING_SOURCE_LINE_NUMBER: DEBUG_FLR_PARAM_TYPE = 65587i32; +pub const DEBUG_FLR_FAULTING_SOURCE_PROJECT: DEBUG_FLR_PARAM_TYPE = 65636i32; +pub const DEBUG_FLR_FAULTING_SOURCE_REPO_ID: DEBUG_FLR_PARAM_TYPE = 65637i32; +pub const DEBUG_FLR_FAULTING_SOURCE_REPO_URL: DEBUG_FLR_PARAM_TYPE = 65638i32; +pub const DEBUG_FLR_FAULTING_SOURCE_SRV_COMMAND: DEBUG_FLR_PARAM_TYPE = 65639i32; +pub const DEBUG_FLR_FAULTING_THREAD: DEBUG_FLR_PARAM_TYPE = -1073741824i32; +pub const DEBUG_FLR_FAULT_THREAD_SHA1_HASH_M: DEBUG_FLR_PARAM_TYPE = 1048597i32; +pub const DEBUG_FLR_FAULT_THREAD_SHA1_HASH_MF: DEBUG_FLR_PARAM_TYPE = 1048595i32; +pub const DEBUG_FLR_FAULT_THREAD_SHA1_HASH_MFO: DEBUG_FLR_PARAM_TYPE = 1048596i32; +pub const DEBUG_FLR_FA_ADHOC_ANALYSIS_ITEMS: DEBUG_FLR_PARAM_TYPE = 2097230i32; +pub const DEBUG_FLR_FA_PERF_DATA: DEBUG_FLR_PARAM_TYPE = 2097214i32; +pub const DEBUG_FLR_FA_PERF_ELAPSED_MS: DEBUG_FLR_PARAM_TYPE = 2097218i32; +pub const DEBUG_FLR_FA_PERF_ITEM: DEBUG_FLR_PARAM_TYPE = 2097215i32; +pub const DEBUG_FLR_FA_PERF_ITEM_NAME: DEBUG_FLR_PARAM_TYPE = 2097216i32; +pub const DEBUG_FLR_FA_PERF_ITERATIONS: DEBUG_FLR_PARAM_TYPE = 2097217i32; +pub const DEBUG_FLR_FEATURE_PATH: DEBUG_FLR_PARAM_TYPE = 65613i32; +pub const DEBUG_FLR_FILESYSTEMS_NTFS: DEBUG_FLR_PARAM_TYPE = 30208i32; +pub const DEBUG_FLR_FILESYSTEMS_NTFS_BLACKBOX: DEBUG_FLR_PARAM_TYPE = 30448i32; +pub const DEBUG_FLR_FILESYSTEMS_REFS: DEBUG_FLR_PARAM_TYPE = 30720i32; +pub const DEBUG_FLR_FILESYSTEMS_REFS_BLACKBOX: DEBUG_FLR_PARAM_TYPE = 30960i32; +pub const DEBUG_FLR_FILE_ID: DEBUG_FLR_PARAM_TYPE = 1280i32; +pub const DEBUG_FLR_FILE_IN_CAB: DEBUG_FLR_PARAM_TYPE = 65571i32; +pub const DEBUG_FLR_FILE_LINE: DEBUG_FLR_PARAM_TYPE = 1281i32; +pub const DEBUG_FLR_FIXED_IN_OSVERSION: DEBUG_FLR_PARAM_TYPE = 65543i32; +pub const DEBUG_FLR_FOLLOWUP_BEFORE_RETRACER: DEBUG_FLR_PARAM_TYPE = 65611i32; +pub const DEBUG_FLR_FOLLOWUP_BUCKET_ID: DEBUG_FLR_PARAM_TYPE = -2147483641i32; +pub const DEBUG_FLR_FOLLOWUP_CONTEXT: DEBUG_FLR_PARAM_TYPE = 2097153i32; +pub const DEBUG_FLR_FOLLOWUP_DRIVER_ONLY: DEBUG_FLR_PARAM_TYPE = 8196i32; +pub const DEBUG_FLR_FOLLOWUP_IP: DEBUG_FLR_PARAM_TYPE = -2147483645i32; +pub const DEBUG_FLR_FOLLOWUP_NAME: DEBUG_FLR_PARAM_TYPE = 65539i32; +pub const DEBUG_FLR_FRAME_ONE_INVALID: DEBUG_FLR_PARAM_TYPE = -2147483644i32; +pub const DEBUG_FLR_FRAME_SOURCE_FILE_NAME: DEBUG_FLR_PARAM_TYPE = 2097240i32; +pub const DEBUG_FLR_FRAME_SOURCE_FILE_PATH: DEBUG_FLR_PARAM_TYPE = 2097241i32; +pub const DEBUG_FLR_FRAME_SOURCE_LINE_NUMBER: DEBUG_FLR_PARAM_TYPE = 2097242i32; +pub const DEBUG_FLR_FREED_POOL_TAG: DEBUG_FLR_PARAM_TYPE = 1028i32; +pub const DEBUG_FLR_GSFAILURE_ANALYSIS_TEXT: DEBUG_FLR_PARAM_TYPE = 12323i32; +pub const DEBUG_FLR_GSFAILURE_COOKIES_MATCH_EXH: DEBUG_FLR_PARAM_TYPE = 12356i32; +pub const DEBUG_FLR_GSFAILURE_CORRUPTED_COOKIE: DEBUG_FLR_PARAM_TYPE = 12314i32; +pub const DEBUG_FLR_GSFAILURE_CORRUPTED_EBP: DEBUG_FLR_PARAM_TYPE = 12315i32; +pub const DEBUG_FLR_GSFAILURE_CORRUPTED_EBPESP: DEBUG_FLR_PARAM_TYPE = 12318i32; +pub const DEBUG_FLR_GSFAILURE_FALSE_POSITIVE: DEBUG_FLR_PARAM_TYPE = 8236i32; +pub const DEBUG_FLR_GSFAILURE_FRAME_COOKIE: DEBUG_FLR_PARAM_TYPE = 12312i32; +pub const DEBUG_FLR_GSFAILURE_FRAME_COOKIE_COMPLEMENT: DEBUG_FLR_PARAM_TYPE = 12313i32; +pub const DEBUG_FLR_GSFAILURE_FUNCTION: DEBUG_FLR_PARAM_TYPE = 12310i32; +pub const DEBUG_FLR_GSFAILURE_MANAGED: DEBUG_FLR_PARAM_TYPE = 12357i32; +pub const DEBUG_FLR_GSFAILURE_MANAGED_FRAMEID: DEBUG_FLR_PARAM_TYPE = 12360i32; +pub const DEBUG_FLR_GSFAILURE_MANAGED_THREADID: DEBUG_FLR_PARAM_TYPE = 12359i32; +pub const DEBUG_FLR_GSFAILURE_MEMORY_READ_ERROR: DEBUG_FLR_PARAM_TYPE = 12320i32; +pub const DEBUG_FLR_GSFAILURE_MISSING_ESTABLISHER_FRAME: DEBUG_FLR_PARAM_TYPE = 12355i32; +pub const DEBUG_FLR_GSFAILURE_MODULE_COOKIE: DEBUG_FLR_PARAM_TYPE = 12311i32; +pub const DEBUG_FLR_GSFAILURE_NOT_UP2DATE: DEBUG_FLR_PARAM_TYPE = 12326i32; +pub const DEBUG_FLR_GSFAILURE_OFF_BY_ONE_OVERRUN: DEBUG_FLR_PARAM_TYPE = 12324i32; +pub const DEBUG_FLR_GSFAILURE_OVERRUN_LOCAL: DEBUG_FLR_PARAM_TYPE = 12316i32; +pub const DEBUG_FLR_GSFAILURE_OVERRUN_LOCAL_NAME: DEBUG_FLR_PARAM_TYPE = 12317i32; +pub const DEBUG_FLR_GSFAILURE_POSITIVELY_CORRUPTED_EBPESP: DEBUG_FLR_PARAM_TYPE = 12319i32; +pub const DEBUG_FLR_GSFAILURE_POSITIVE_BUFFER_OVERFLOW: DEBUG_FLR_PARAM_TYPE = 12322i32; +pub const DEBUG_FLR_GSFAILURE_PROBABLY_NOT_USING_GS: DEBUG_FLR_PARAM_TYPE = 12321i32; +pub const DEBUG_FLR_GSFAILURE_RA_SMASHED: DEBUG_FLR_PARAM_TYPE = 12325i32; +pub const DEBUG_FLR_GSFAILURE_UP2DATE_UNKNOWN: DEBUG_FLR_PARAM_TYPE = 12327i32; +pub const DEBUG_FLR_HANDLE_VALUE: DEBUG_FLR_PARAM_TYPE = 24i32; +pub const DEBUG_FLR_HANG: DEBUG_FLR_PARAM_TYPE = 8209i32; +pub const DEBUG_FLR_HANG_DATA_NEEDED: DEBUG_FLR_PARAM_TYPE = 1048584i32; +pub const DEBUG_FLR_HANG_REPORT_THREAD_IS_IDLE: DEBUG_FLR_PARAM_TYPE = 1048594i32; +pub const DEBUG_FLR_HARDWARE_BUCKET_TAG: DEBUG_FLR_PARAM_TYPE = 65581i32; +pub const DEBUG_FLR_HARDWARE_ERROR: DEBUG_FLR_PARAM_TYPE = 8214i32; +pub const DEBUG_FLR_HIGH_NONPAGED_POOL_USAGE: DEBUG_FLR_PARAM_TYPE = 8255i32; +pub const DEBUG_FLR_HIGH_PAGED_POOL_USAGE: DEBUG_FLR_PARAM_TYPE = 8256i32; +pub const DEBUG_FLR_HIGH_PROCESS_COMMIT: DEBUG_FLR_PARAM_TYPE = 8253i32; +pub const DEBUG_FLR_HIGH_SERVICE_COMMIT: DEBUG_FLR_PARAM_TYPE = 8254i32; +pub const DEBUG_FLR_HIGH_SHARED_COMMIT_USAGE: DEBUG_FLR_PARAM_TYPE = 8257i32; +pub const DEBUG_FLR_HOLDINFO: DEBUG_FLR_PARAM_TYPE = 65595i32; +pub const DEBUG_FLR_HOLDINFO_ACTIVE_HOLD_COUNT: DEBUG_FLR_PARAM_TYPE = 65596i32; +pub const DEBUG_FLR_HOLDINFO_ALWAYS_HOLD: DEBUG_FLR_PARAM_TYPE = 65600i32; +pub const DEBUG_FLR_HOLDINFO_ALWAYS_IGNORE: DEBUG_FLR_PARAM_TYPE = 65599i32; +pub const DEBUG_FLR_HOLDINFO_HISTORIC_HOLD_COUNT: DEBUG_FLR_PARAM_TYPE = 65598i32; +pub const DEBUG_FLR_HOLDINFO_LAST_SEEN_HOLD_DATE: DEBUG_FLR_PARAM_TYPE = 65604i32; +pub const DEBUG_FLR_HOLDINFO_MANUAL_HOLD: DEBUG_FLR_PARAM_TYPE = 65602i32; +pub const DEBUG_FLR_HOLDINFO_MAX_HOLD_LIMIT: DEBUG_FLR_PARAM_TYPE = 65601i32; +pub const DEBUG_FLR_HOLDINFO_NOTIFICATION_ALIASES: DEBUG_FLR_PARAM_TYPE = 65603i32; +pub const DEBUG_FLR_HOLDINFO_RECOMMEND_HOLD: DEBUG_FLR_PARAM_TYPE = 65605i32; +pub const DEBUG_FLR_HOLDINFO_TENET_SOCRE: DEBUG_FLR_PARAM_TYPE = 65597i32; +pub const DEBUG_FLR_IGNORE_BUCKET_ID_OFFSET: DEBUG_FLR_PARAM_TYPE = 8238i32; +pub const DEBUG_FLR_IGNORE_LARGE_MODULE_CORRUPTION: DEBUG_FLR_PARAM_TYPE = 8237i32; +pub const DEBUG_FLR_IGNORE_MODULE_HARDWARE_ID: DEBUG_FLR_PARAM_TYPE = 8240i32; +pub const DEBUG_FLR_IMAGE_CLASS: DEBUG_FLR_PARAM_TYPE = 65579i32; +pub const DEBUG_FLR_IMAGE_NAME: DEBUG_FLR_PARAM_TYPE = 65537i32; +pub const DEBUG_FLR_IMAGE_TIMESTAMP: DEBUG_FLR_PARAM_TYPE = -2147483646i32; +pub const DEBUG_FLR_IMAGE_VERSION: DEBUG_FLR_PARAM_TYPE = -2147483642i32; +pub const DEBUG_FLR_INSTR_POINTER_CLIFAULT: DEBUG_FLR_PARAM_TYPE = 12306i32; +pub const DEBUG_FLR_INSTR_POINTER_IN_FREE_BLOCK: DEBUG_FLR_PARAM_TYPE = 12343i32; +pub const DEBUG_FLR_INSTR_POINTER_IN_MODULE_NOT_IN_LIST: DEBUG_FLR_PARAM_TYPE = 12346i32; +pub const DEBUG_FLR_INSTR_POINTER_IN_PAGED_CODE: DEBUG_FLR_PARAM_TYPE = 12370i32; +pub const DEBUG_FLR_INSTR_POINTER_IN_RESERVED_BLOCK: DEBUG_FLR_PARAM_TYPE = 12344i32; +pub const DEBUG_FLR_INSTR_POINTER_IN_UNLOADED_MODULE: DEBUG_FLR_PARAM_TYPE = 12340i32; +pub const DEBUG_FLR_INSTR_POINTER_IN_VM_MAPPED_MODULE: DEBUG_FLR_PARAM_TYPE = 12345i32; +pub const DEBUG_FLR_INSTR_POINTER_MISALIGNED: DEBUG_FLR_PARAM_TYPE = 12305i32; +pub const DEBUG_FLR_INSTR_POINTER_NOT_IN_STREAM: DEBUG_FLR_PARAM_TYPE = 12347i32; +pub const DEBUG_FLR_INSTR_POINTER_ON_HEAP: DEBUG_FLR_PARAM_TYPE = 12337i32; +pub const DEBUG_FLR_INSTR_POINTER_ON_STACK: DEBUG_FLR_PARAM_TYPE = 12336i32; +pub const DEBUG_FLR_INSTR_SESSION_POOL_TAG: DEBUG_FLR_PARAM_TYPE = 1030i32; +pub const DEBUG_FLR_INTEL_CPU_BIOS_UPGRADE_NEEDED: DEBUG_FLR_PARAM_TYPE = 8229i32; +pub const DEBUG_FLR_INTERNAL_BUCKET_CONTINUABLE: DEBUG_FLR_PARAM_TYPE = 16389i32; +pub const DEBUG_FLR_INTERNAL_BUCKET_HITCOUNT: DEBUG_FLR_PARAM_TYPE = 16387i32; +pub const DEBUG_FLR_INTERNAL_BUCKET_STATUS_TEXT: DEBUG_FLR_PARAM_TYPE = 16390i32; +pub const DEBUG_FLR_INTERNAL_BUCKET_URL: DEBUG_FLR_PARAM_TYPE = 16385i32; +pub const DEBUG_FLR_INTERNAL_RAID_BUG: DEBUG_FLR_PARAM_TYPE = 16384i32; +pub const DEBUG_FLR_INTERNAL_RAID_BUG_DATABASE_STRING: DEBUG_FLR_PARAM_TYPE = 16388i32; +pub const DEBUG_FLR_INTERNAL_RESPONSE: DEBUG_FLR_PARAM_TYPE = 65550i32; +pub const DEBUG_FLR_INTERNAL_SOLUTION_TEXT: DEBUG_FLR_PARAM_TYPE = 16386i32; +pub const DEBUG_FLR_INVALID: DEBUG_FLR_PARAM_TYPE = 0i32; +pub const DEBUG_FLR_INVALID_DPC_FOUND: DEBUG_FLR_PARAM_TYPE = 7i32; +pub const DEBUG_FLR_INVALID_HEAP_ADDRESS: DEBUG_FLR_PARAM_TYPE = 18i32; +pub const DEBUG_FLR_INVALID_KERNEL_CONTEXT: DEBUG_FLR_PARAM_TYPE = 8205i32; +pub const DEBUG_FLR_INVALID_OPCODE: DEBUG_FLR_PARAM_TYPE = 8218i32; +pub const DEBUG_FLR_INVALID_PFN: DEBUG_FLR_PARAM_TYPE = 4i32; +pub const DEBUG_FLR_INVALID_USEREVENT: DEBUG_FLR_PARAM_TYPE = 261i32; +pub const DEBUG_FLR_INVALID_USER_CONTEXT: DEBUG_FLR_PARAM_TYPE = 8231i32; +pub const DEBUG_FLR_IOCONTROL_CODE: DEBUG_FLR_PARAM_TYPE = 4099i32; +pub const DEBUG_FLR_IOSB_ADDRESS: DEBUG_FLR_PARAM_TYPE = 260i32; +pub const DEBUG_FLR_IO_ERROR_CODE: DEBUG_FLR_PARAM_TYPE = 775i32; +pub const DEBUG_FLR_IRP_ADDRESS: DEBUG_FLR_PARAM_TYPE = 256i32; +pub const DEBUG_FLR_IRP_CANCEL_ROUTINE: DEBUG_FLR_PARAM_TYPE = 259i32; +pub const DEBUG_FLR_IRP_MAJOR_FN: DEBUG_FLR_PARAM_TYPE = 257i32; +pub const DEBUG_FLR_IRP_MINOR_FN: DEBUG_FLR_PARAM_TYPE = 258i32; +pub const DEBUG_FLR_KERNEL: DEBUG_FAILURE_TYPE = 1i32; +pub const DEBUG_FLR_KERNEL_LOG_PROCESS_NAME: DEBUG_FLR_PARAM_TYPE = 65582i32; +pub const DEBUG_FLR_KERNEL_LOG_STATUS: DEBUG_FLR_PARAM_TYPE = 65583i32; +pub const DEBUG_FLR_KERNEL_VERIFIER_ENABLED: DEBUG_FLR_PARAM_TYPE = 8234i32; +pub const DEBUG_FLR_KEYVALUE_ANALYSIS: DEBUG_FLR_PARAM_TYPE = 1122304i32; +pub const DEBUG_FLR_KEY_VALUES_STRING: DEBUG_FLR_PARAM_TYPE = 1122560i32; +pub const DEBUG_FLR_KEY_VALUES_VARIANT: DEBUG_FLR_PARAM_TYPE = 1122816i32; +pub const DEBUG_FLR_KM_MODULE_LIST: DEBUG_FLR_PARAM_TYPE = 1048629i32; +pub const DEBUG_FLR_LARGE_TICK_INCREMENT: DEBUG_FLR_PARAM_TYPE = 12369i32; +pub const DEBUG_FLR_LAST_CONTROL_TRANSFER: DEBUG_FLR_PARAM_TYPE = 10i32; +pub const DEBUG_FLR_LCIE_ISO_AVAILABLE: DEBUG_FLR_PARAM_TYPE = 1048618i32; +pub const DEBUG_FLR_LEAKED_SESSION_POOL_TAG: DEBUG_FLR_PARAM_TYPE = 1029i32; +pub const DEBUG_FLR_LEGACY_PAGE_TABLE_ACCESS: DEBUG_FLR_PARAM_TYPE = 8252i32; +pub const DEBUG_FLR_LIVE_KERNEL_DUMP: DEBUG_FLR_PARAM_TYPE = 8243i32; +pub const DEBUG_FLR_LOADERLOCK_BLOCKED_API: DEBUG_FLR_PARAM_TYPE = 1048605i32; +pub const DEBUG_FLR_LOADERLOCK_IN_WAIT_CHAIN: DEBUG_FLR_PARAM_TYPE = 1048587i32; +pub const DEBUG_FLR_LOADERLOCK_OWNER_API: DEBUG_FLR_PARAM_TYPE = 1048604i32; +pub const DEBUG_FLR_LOP_STACKHASH: DEBUG_FLR_PARAM_TYPE = 12309i32; +pub const DEBUG_FLR_LOW_SYSTEM_COMMIT: DEBUG_FLR_PARAM_TYPE = 8251i32; +pub const DEBUG_FLR_MACHINE_INFO_SHA1_HASH: DEBUG_FLR_PARAM_TYPE = 1048608i32; +pub const DEBUG_FLR_MANAGED_ANALYSIS_PROVIDER: DEBUG_FLR_PARAM_TYPE = 1804i32; +pub const DEBUG_FLR_MANAGED_BITNESS_MISMATCH: DEBUG_FLR_PARAM_TYPE = 1797i32; +pub const DEBUG_FLR_MANAGED_CODE: DEBUG_FLR_PARAM_TYPE = 1792i32; +pub const DEBUG_FLR_MANAGED_ENGINE_MODULE: DEBUG_FLR_PARAM_TYPE = 1803i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_ADDRESS: DEBUG_FLR_PARAM_TYPE = 2048i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_CALLSTACK: DEBUG_FLR_PARAM_TYPE = 2052i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_CMD: DEBUG_FLR_PARAM_TYPE = 2288i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_CONTEXT_MESSAGE: DEBUG_FLR_PARAM_TYPE = 1799i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_HRESULT: DEBUG_FLR_PARAM_TYPE = 2049i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_INNER_ADDRESS: DEBUG_FLR_PARAM_TYPE = 2064i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_INNER_CALLSTACK: DEBUG_FLR_PARAM_TYPE = 2068i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_INNER_HRESULT: DEBUG_FLR_PARAM_TYPE = 2065i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_INNER_MESSAGE: DEBUG_FLR_PARAM_TYPE = 2067i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_INNER_TYPE: DEBUG_FLR_PARAM_TYPE = 2066i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_MESSAGE: DEBUG_FLR_PARAM_TYPE = 2051i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_MESSAGE_deprecated: DEBUG_FLR_PARAM_TYPE = 1795i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_NESTED_ADDRESS: DEBUG_FLR_PARAM_TYPE = 2080i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_NESTED_CALLSTACK: DEBUG_FLR_PARAM_TYPE = 2084i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_NESTED_HRESULT: DEBUG_FLR_PARAM_TYPE = 2081i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_NESTED_MESSAGE: DEBUG_FLR_PARAM_TYPE = 2083i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_NESTED_TYPE: DEBUG_FLR_PARAM_TYPE = 2082i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_OBJECT: DEBUG_FLR_PARAM_TYPE = 1794i32; +pub const DEBUG_FLR_MANAGED_EXCEPTION_TYPE: DEBUG_FLR_PARAM_TYPE = 2050i32; +pub const DEBUG_FLR_MANAGED_FRAME_CHAIN_CORRUPTION: DEBUG_FLR_PARAM_TYPE = 12358i32; +pub const DEBUG_FLR_MANAGED_HRESULT_STRING: DEBUG_FLR_PARAM_TYPE = 1802i32; +pub const DEBUG_FLR_MANAGED_KERNEL_DEBUGGER: DEBUG_FLR_PARAM_TYPE = 1801i32; +pub const DEBUG_FLR_MANAGED_OBJECT: DEBUG_FLR_PARAM_TYPE = 1793i32; +pub const DEBUG_FLR_MANAGED_OBJECT_NAME: DEBUG_FLR_PARAM_TYPE = 1798i32; +pub const DEBUG_FLR_MANAGED_STACK_COMMAND: DEBUG_FLR_PARAM_TYPE = 1800i32; +pub const DEBUG_FLR_MANAGED_STACK_STRING: DEBUG_FLR_PARAM_TYPE = 1796i32; +pub const DEBUG_FLR_MANAGED_THREAD_CMD_CALLSTACK: DEBUG_FLR_PARAM_TYPE = 2544i32; +pub const DEBUG_FLR_MANAGED_THREAD_CMD_STACKOBJECTS: DEBUG_FLR_PARAM_TYPE = 2545i32; +pub const DEBUG_FLR_MANAGED_THREAD_ID: DEBUG_FLR_PARAM_TYPE = 2304i32; +pub const DEBUG_FLR_MANUAL_BREAKIN: DEBUG_FLR_PARAM_TYPE = 8208i32; +pub const DEBUG_FLR_MARKER_BUCKET: DEBUG_FLR_PARAM_TYPE = 65560i32; +pub const DEBUG_FLR_MARKER_FILE: DEBUG_FLR_PARAM_TYPE = 65549i32; +pub const DEBUG_FLR_MARKER_MODULE_FILE: DEBUG_FLR_PARAM_TYPE = 65558i32; +pub const DEBUG_FLR_MASK_ALL: DEBUG_FLR_PARAM_TYPE = -1i32; +pub const DEBUG_FLR_MEMDIAG_LASTRUN_STATUS: DEBUG_FLR_PARAM_TYPE = 12341i32; +pub const DEBUG_FLR_MEMDIAG_LASTRUN_TIME: DEBUG_FLR_PARAM_TYPE = 12342i32; +pub const DEBUG_FLR_MEMORY_ANALYSIS: DEBUG_FLR_PARAM_TYPE = 1134592i32; +pub const DEBUG_FLR_MEMORY_CORRUPTION_SIGNATURE: DEBUG_FLR_PARAM_TYPE = 12348i32; +pub const DEBUG_FLR_MEMORY_CORRUPTOR: DEBUG_FLR_PARAM_TYPE = 12289i32; +pub const DEBUG_FLR_MILCORE_BREAK: DEBUG_FLR_PARAM_TYPE = 8232i32; +pub const DEBUG_FLR_MINUTES_SINCE_LAST_EVENT: DEBUG_FLR_PARAM_TYPE = 1879048225i32; +pub const DEBUG_FLR_MINUTES_SINCE_LAST_EVENT_OF_THIS_TYPE: DEBUG_FLR_PARAM_TYPE = 1879048226i32; +pub const DEBUG_FLR_MISSING_CLR_SYMBOL: DEBUG_FLR_PARAM_TYPE = 8249i32; +pub const DEBUG_FLR_MISSING_IMPORTANT_SYMBOL: DEBUG_FLR_PARAM_TYPE = 8248i32; +pub const DEBUG_FLR_MM_INTERNAL_CODE: DEBUG_FLR_PARAM_TYPE = 4100i32; +pub const DEBUG_FLR_MODLIST_SHA1_HASH: DEBUG_FLR_PARAM_TYPE = 1048601i32; +pub const DEBUG_FLR_MODLIST_TSCHKSUM_SHA1_HASH: DEBUG_FLR_PARAM_TYPE = 1048606i32; +pub const DEBUG_FLR_MODLIST_UNLOADED_SHA1_HASH: DEBUG_FLR_PARAM_TYPE = 1048607i32; +pub const DEBUG_FLR_MODULE_BUCKET_ID: DEBUG_FLR_PARAM_TYPE = 65545i32; +pub const DEBUG_FLR_MODULE_LIST: DEBUG_FLR_PARAM_TYPE = 1048624i32; +pub const DEBUG_FLR_MODULE_NAME: DEBUG_FLR_PARAM_TYPE = 65542i32; +pub const DEBUG_FLR_MODULE_PRODUCTNAME: DEBUG_FLR_PARAM_TYPE = 65576i32; +pub const DEBUG_FLR_MOD_SPECIFIC_DATA_ONLY: DEBUG_FLR_PARAM_TYPE = 8226i32; +pub const DEBUG_FLR_NO_ARCH_IN_BUCKET: DEBUG_FLR_PARAM_TYPE = 8239i32; +pub const DEBUG_FLR_NO_BUGCHECK_IN_BUCKET: DEBUG_FLR_PARAM_TYPE = 8216i32; +pub const DEBUG_FLR_NO_IMAGE_IN_BUCKET: DEBUG_FLR_PARAM_TYPE = 8215i32; +pub const DEBUG_FLR_NO_IMAGE_TIMESTAMP_IN_BUCKET: DEBUG_FLR_PARAM_TYPE = 8233i32; +pub const DEBUG_FLR_NTGLOBALFLAG: DEBUG_FLR_PARAM_TYPE = 1048599i32; +pub const DEBUG_FLR_ON_DPC_STACK: DEBUG_FLR_PARAM_TYPE = 8242i32; +pub const DEBUG_FLR_ORIGINAL_CAB_NAME: DEBUG_FLR_PARAM_TYPE = 65568i32; +pub const DEBUG_FLR_OSBUILD_deprecated: DEBUG_FLR_PARAM_TYPE = 1052928i32; +pub const DEBUG_FLR_OS_BRANCH: DEBUG_FLR_PARAM_TYPE = 1052680i32; +pub const DEBUG_FLR_OS_BUILD: DEBUG_FLR_PARAM_TYPE = 1052678i32; +pub const DEBUG_FLR_OS_BUILD_LAYERS_XML: DEBUG_FLR_PARAM_TYPE = 1052711i32; +pub const DEBUG_FLR_OS_BUILD_STRING: DEBUG_FLR_PARAM_TYPE = 1052708i32; +pub const DEBUG_FLR_OS_BUILD_TIMESTAMP_ISO: DEBUG_FLR_PARAM_TYPE = 1052697i32; +pub const DEBUG_FLR_OS_BUILD_TIMESTAMP_LAB: DEBUG_FLR_PARAM_TYPE = 1052681i32; +pub const DEBUG_FLR_OS_FLAVOR: DEBUG_FLR_PARAM_TYPE = 1052685i32; +pub const DEBUG_FLR_OS_LOCALE: DEBUG_FLR_PARAM_TYPE = 1052696i32; +pub const DEBUG_FLR_OS_LOCALE_LCID: DEBUG_FLR_PARAM_TYPE = 1052709i32; +pub const DEBUG_FLR_OS_MAJOR: DEBUG_FLR_PARAM_TYPE = 1052706i32; +pub const DEBUG_FLR_OS_MINOR: DEBUG_FLR_PARAM_TYPE = 1052707i32; +pub const DEBUG_FLR_OS_NAME: DEBUG_FLR_PARAM_TYPE = 1052692i32; +pub const DEBUG_FLR_OS_NAME_EDITION: DEBUG_FLR_PARAM_TYPE = 1052693i32; +pub const DEBUG_FLR_OS_PLATFORM_ARCH: DEBUG_FLR_PARAM_TYPE = 1052694i32; +pub const DEBUG_FLR_OS_PLATFORM_ID: DEBUG_FLR_PARAM_TYPE = 1052710i32; +pub const DEBUG_FLR_OS_PRODUCT_TYPE: DEBUG_FLR_PARAM_TYPE = 1052688i32; +pub const DEBUG_FLR_OS_REVISION: DEBUG_FLR_PARAM_TYPE = 1052691i32; +pub const DEBUG_FLR_OS_SERVICEPACK: DEBUG_FLR_PARAM_TYPE = 1052679i32; +pub const DEBUG_FLR_OS_SERVICEPACK_deprecated: DEBUG_FLR_PARAM_TYPE = 1052695i32; +pub const DEBUG_FLR_OS_SKU: DEBUG_FLR_PARAM_TYPE = 1052687i32; +pub const DEBUG_FLR_OS_SUITE_MASK: DEBUG_FLR_PARAM_TYPE = 1052689i32; +pub const DEBUG_FLR_OS_VERSION: DEBUG_FLR_PARAM_TYPE = 1052682i32; +pub const DEBUG_FLR_OS_VERSION_deprecated: DEBUG_FLR_PARAM_TYPE = 12291i32; +pub const DEBUG_FLR_OVERLAPPED_MODULE: DEBUG_FLR_PARAM_TYPE = 8227i32; +pub const DEBUG_FLR_OVERLAPPED_UNLOADED_MODULE: DEBUG_FLR_PARAM_TYPE = 8230i32; +pub const DEBUG_FLR_PAGE_HASH_ERRORS: DEBUG_FLR_PARAM_TYPE = 4114i32; +pub const DEBUG_FLR_PG_MISMATCH: DEBUG_FLR_PARAM_TYPE = 27i32; +pub const DEBUG_FLR_PHONE_APPID: DEBUG_FLR_PARAM_TYPE = 1879048215i32; +pub const DEBUG_FLR_PHONE_APPVERSION: DEBUG_FLR_PARAM_TYPE = 1879048217i32; +pub const DEBUG_FLR_PHONE_BOOTLOADERVERSION: DEBUG_FLR_PARAM_TYPE = 1879048209i32; +pub const DEBUG_FLR_PHONE_BUILDBRANCH: DEBUG_FLR_PARAM_TYPE = 1879048196i32; +pub const DEBUG_FLR_PHONE_BUILDER: DEBUG_FLR_PARAM_TYPE = 1879048197i32; +pub const DEBUG_FLR_PHONE_BUILDNUMBER: DEBUG_FLR_PARAM_TYPE = 1879048194i32; +pub const DEBUG_FLR_PHONE_BUILDTIMESTAMP: DEBUG_FLR_PARAM_TYPE = 1879048195i32; +pub const DEBUG_FLR_PHONE_FIRMWAREREVISION: DEBUG_FLR_PARAM_TYPE = 1879048202i32; +pub const DEBUG_FLR_PHONE_HARDWAREREVISION: DEBUG_FLR_PARAM_TYPE = 1879048206i32; +pub const DEBUG_FLR_PHONE_LCID: DEBUG_FLR_PARAM_TYPE = 1879048198i32; +pub const DEBUG_FLR_PHONE_MCCMNC: DEBUG_FLR_PARAM_TYPE = 1879048201i32; +pub const DEBUG_FLR_PHONE_OPERATOR: DEBUG_FLR_PARAM_TYPE = 1879048200i32; +pub const DEBUG_FLR_PHONE_QFE: DEBUG_FLR_PARAM_TYPE = 1879048199i32; +pub const DEBUG_FLR_PHONE_RADIOHARDWAREREVISION: DEBUG_FLR_PARAM_TYPE = 1879048207i32; +pub const DEBUG_FLR_PHONE_RADIOSOFTWAREREVISION: DEBUG_FLR_PARAM_TYPE = 1879048208i32; +pub const DEBUG_FLR_PHONE_RAM: DEBUG_FLR_PARAM_TYPE = 1879048203i32; +pub const DEBUG_FLR_PHONE_REPORTGUID: DEBUG_FLR_PARAM_TYPE = 1879048210i32; +pub const DEBUG_FLR_PHONE_REPORTTIMESTAMP: DEBUG_FLR_PARAM_TYPE = 1879048214i32; +pub const DEBUG_FLR_PHONE_ROMVERSION: DEBUG_FLR_PARAM_TYPE = 1879048204i32; +pub const DEBUG_FLR_PHONE_SKUID: DEBUG_FLR_PARAM_TYPE = 1879048216i32; +pub const DEBUG_FLR_PHONE_SOCVERSION: DEBUG_FLR_PARAM_TYPE = 1879048205i32; +pub const DEBUG_FLR_PHONE_SOURCE: DEBUG_FLR_PARAM_TYPE = 1879048211i32; +pub const DEBUG_FLR_PHONE_SOURCEEXTERNAL: DEBUG_FLR_PARAM_TYPE = 1879048212i32; +pub const DEBUG_FLR_PHONE_UIF_APPID: DEBUG_FLR_PARAM_TYPE = 1879048220i32; +pub const DEBUG_FLR_PHONE_UIF_APPNAME: DEBUG_FLR_PARAM_TYPE = 1879048219i32; +pub const DEBUG_FLR_PHONE_UIF_CATEGORY: DEBUG_FLR_PARAM_TYPE = 1879048221i32; +pub const DEBUG_FLR_PHONE_UIF_COMMENT: DEBUG_FLR_PARAM_TYPE = 1879048218i32; +pub const DEBUG_FLR_PHONE_UIF_ORIGIN: DEBUG_FLR_PARAM_TYPE = 1879048222i32; +pub const DEBUG_FLR_PHONE_USERALIAS: DEBUG_FLR_PARAM_TYPE = 1879048213i32; +pub const DEBUG_FLR_PHONE_VERSIONMAJOR: DEBUG_FLR_PARAM_TYPE = 1879048192i32; +pub const DEBUG_FLR_PHONE_VERSIONMINOR: DEBUG_FLR_PARAM_TYPE = 1879048193i32; +pub const DEBUG_FLR_PLATFORM_BUCKET_STRING: DEBUG_FLR_PARAM_TYPE = 65630i32; +pub const DEBUG_FLR_PNP: DEBUG_FLR_PARAM_TYPE = 32768i32; +pub const DEBUG_FLR_PNP_BLACKBOX: DEBUG_FLR_PARAM_TYPE = 33024i32; +pub const DEBUG_FLR_PNP_IRP_ADDRESS: DEBUG_FLR_PARAM_TYPE = 32770i32; +pub const DEBUG_FLR_PNP_IRP_ADDRESS_DEPRECATED: DEBUG_FLR_PARAM_TYPE = 264i32; +pub const DEBUG_FLR_PNP_TRIAGE_DATA: DEBUG_FLR_PARAM_TYPE = 32769i32; +pub const DEBUG_FLR_PNP_TRIAGE_DATA_DEPRECATED: DEBUG_FLR_PARAM_TYPE = 23i32; +pub const DEBUG_FLR_POISONED_TB: DEBUG_FLR_PARAM_TYPE = 8200i32; +pub const DEBUG_FLR_POOL_ADDRESS: DEBUG_FLR_PARAM_TYPE = 1024i32; +pub const DEBUG_FLR_POOL_CORRUPTOR: DEBUG_FLR_PARAM_TYPE = 12288i32; +pub const DEBUG_FLR_POSSIBLE_INVALID_CONTROL_TRANSFER: DEBUG_FLR_PARAM_TYPE = 8199i32; +pub const DEBUG_FLR_POSSIBLE_STACK_OVERFLOW: DEBUG_FLR_PARAM_TYPE = 8245i32; +pub const DEBUG_FLR_POWERREQUEST_ADDRESS: DEBUG_FLR_PARAM_TYPE = 29i32; +pub const DEBUG_FLR_PO_BLACKBOX: DEBUG_FLR_PARAM_TYPE = 24833i32; +pub const DEBUG_FLR_PREVIOUS_IRQL: DEBUG_FLR_PARAM_TYPE = 513i32; +pub const DEBUG_FLR_PREVIOUS_MODE: DEBUG_FLR_PARAM_TYPE = 265i32; +pub const DEBUG_FLR_PRIMARY_PROBLEM_CLASS: DEBUG_FLR_PARAM_TYPE = 1048579i32; +pub const DEBUG_FLR_PRIMARY_PROBLEM_CLASS_DATA: DEBUG_FLR_PARAM_TYPE = 1048580i32; +pub const DEBUG_FLR_PROBLEM_CLASSES: DEBUG_FLR_PARAM_TYPE = 1048578i32; +pub const DEBUG_FLR_PROBLEM_CODE_PATH_HASH: DEBUG_FLR_PARAM_TYPE = 1048585i32; +pub const DEBUG_FLR_PROCESSES_ANALYSIS: DEBUG_FLR_PARAM_TYPE = 1142784i32; +pub const DEBUG_FLR_PROCESSOR_ID: DEBUG_FLR_PARAM_TYPE = -1073741814i32; +pub const DEBUG_FLR_PROCESSOR_INFO: DEBUG_FLR_PARAM_TYPE = 12339i32; +pub const DEBUG_FLR_PROCESS_BAM_CURRENT_THROTTLED: DEBUG_FLR_PARAM_TYPE = -268435437i32; +pub const DEBUG_FLR_PROCESS_BAM_PREVIOUS_THROTTLED: DEBUG_FLR_PARAM_TYPE = -268435436i32; +pub const DEBUG_FLR_PROCESS_INFO: DEBUG_FLR_PARAM_TYPE = 2097189i32; +pub const DEBUG_FLR_PROCESS_NAME: DEBUG_FLR_PARAM_TYPE = 65547i32; +pub const DEBUG_FLR_PROCESS_OBJECT: DEBUG_FLR_PARAM_TYPE = 8i32; +pub const DEBUG_FLR_PROCESS_PRODUCTNAME: DEBUG_FLR_PARAM_TYPE = 65575i32; +pub const DEBUG_FLR_RAISED_IRQL_USER_FAULT: DEBUG_FLR_PARAM_TYPE = 8220i32; +pub const DEBUG_FLR_READ_ADDRESS: DEBUG_FLR_PARAM_TYPE = 14i32; +pub const DEBUG_FLR_RECURRING_STACK: DEBUG_FLR_PARAM_TYPE = 12296i32; +pub const DEBUG_FLR_REGISTRYTXT_SOURCE: DEBUG_FLR_PARAM_TYPE = 65584i32; +pub const DEBUG_FLR_REGISTRYTXT_STRESS_ID: DEBUG_FLR_PARAM_TYPE = 12307i32; +pub const DEBUG_FLR_REGISTRY_DATA: DEBUG_FLR_PARAM_TYPE = 3145728i32; +pub const DEBUG_FLR_REPORT_INFO_CREATION_TIME: DEBUG_FLR_PARAM_TYPE = 1879048229i32; +pub const DEBUG_FLR_REPORT_INFO_GUID: DEBUG_FLR_PARAM_TYPE = 1879048227i32; +pub const DEBUG_FLR_REPORT_INFO_SOURCE: DEBUG_FLR_PARAM_TYPE = 1879048228i32; +pub const DEBUG_FLR_REQUESTED_IRQL: DEBUG_FLR_PARAM_TYPE = 514i32; +pub const DEBUG_FLR_RESERVED: DEBUG_FLR_PARAM_TYPE = 1i32; +pub const DEBUG_FLR_RESOURCE_CALL_TYPE: DEBUG_FLR_PARAM_TYPE = 4352i32; +pub const DEBUG_FLR_RESOURCE_CALL_TYPE_STR: DEBUG_FLR_PARAM_TYPE = 4353i32; +pub const DEBUG_FLR_SCM: DEBUG_FLR_PARAM_TYPE = 20992i32; +pub const DEBUG_FLR_SCM_BLACKBOX: DEBUG_FLR_PARAM_TYPE = 21232i32; +pub const DEBUG_FLR_SCM_BLACKBOX_ENTRY: DEBUG_FLR_PARAM_TYPE = 21233i32; +pub const DEBUG_FLR_SCM_BLACKBOX_ENTRY_CONTROLCODE: DEBUG_FLR_PARAM_TYPE = 21234i32; +pub const DEBUG_FLR_SCM_BLACKBOX_ENTRY_SERVICENAME: DEBUG_FLR_PARAM_TYPE = 21236i32; +pub const DEBUG_FLR_SCM_BLACKBOX_ENTRY_STARTTIME: DEBUG_FLR_PARAM_TYPE = 21235i32; +pub const DEBUG_FLR_SEARCH_HANG: DEBUG_FLR_PARAM_TYPE = 1048614i32; +pub const DEBUG_FLR_SECURITY_COOKIES: DEBUG_FLR_PARAM_TYPE = 4105i32; +pub const DEBUG_FLR_SERVICE: DEBUG_FLR_PARAM_TYPE = 20480i32; +pub const DEBUG_FLR_SERVICETABLE_MODIFIED: DEBUG_FLR_PARAM_TYPE = 12371i32; +pub const DEBUG_FLR_SERVICE_ANALYSIS: DEBUG_FLR_PARAM_TYPE = 1146880i32; +pub const DEBUG_FLR_SERVICE_DEPENDONGROUP: DEBUG_FLR_PARAM_TYPE = 20486i32; +pub const DEBUG_FLR_SERVICE_DEPENDONSERVICE: DEBUG_FLR_PARAM_TYPE = 20485i32; +pub const DEBUG_FLR_SERVICE_DESCRIPTION: DEBUG_FLR_PARAM_TYPE = 20484i32; +pub const DEBUG_FLR_SERVICE_DISPLAYNAME: DEBUG_FLR_PARAM_TYPE = 20483i32; +pub const DEBUG_FLR_SERVICE_GROUP: DEBUG_FLR_PARAM_TYPE = 20482i32; +pub const DEBUG_FLR_SERVICE_NAME: DEBUG_FLR_PARAM_TYPE = 20481i32; +pub const DEBUG_FLR_SHOW_ERRORLOG: DEBUG_FLR_PARAM_TYPE = 8207i32; +pub const DEBUG_FLR_SHOW_LCIE_ISO_DATA: DEBUG_FLR_PARAM_TYPE = 1048619i32; +pub const DEBUG_FLR_SIMULTANEOUS_TELSVC_INSTANCES: DEBUG_FLR_PARAM_TYPE = 1879048223i32; +pub const DEBUG_FLR_SIMULTANEOUS_TELWP_INSTANCES: DEBUG_FLR_PARAM_TYPE = 1879048224i32; +pub const DEBUG_FLR_SINGLE_BIT_ERROR: DEBUG_FLR_PARAM_TYPE = 8203i32; +pub const DEBUG_FLR_SINGLE_BIT_PFN_PAGE_ERROR: DEBUG_FLR_PARAM_TYPE = 8213i32; +pub const DEBUG_FLR_SKIP_CORRUPT_MODULE_DETECTION: DEBUG_FLR_PARAM_TYPE = 8235i32; +pub const DEBUG_FLR_SKIP_MODULE_SPECIFIC_BUCKET_INFO: DEBUG_FLR_PARAM_TYPE = 65588i32; +pub const DEBUG_FLR_SKIP_STACK_ANALYSIS: DEBUG_FLR_PARAM_TYPE = 8217i32; +pub const DEBUG_FLR_SM_BUFFER_HASH: DEBUG_FLR_PARAM_TYPE = 1342177286i32; +pub const DEBUG_FLR_SM_COMPRESSION_FORMAT: DEBUG_FLR_PARAM_TYPE = 1342177280i32; +pub const DEBUG_FLR_SM_ONEBIT_SOLUTION_COUNT: DEBUG_FLR_PARAM_TYPE = 1342177287i32; +pub const DEBUG_FLR_SM_SOURCE_OFFSET: DEBUG_FLR_PARAM_TYPE = 1342177283i32; +pub const DEBUG_FLR_SM_SOURCE_PFN1: DEBUG_FLR_PARAM_TYPE = 1342177281i32; +pub const DEBUG_FLR_SM_SOURCE_PFN2: DEBUG_FLR_PARAM_TYPE = 1342177282i32; +pub const DEBUG_FLR_SM_SOURCE_SIZE: DEBUG_FLR_PARAM_TYPE = 1342177284i32; +pub const DEBUG_FLR_SM_TARGET_PFN: DEBUG_FLR_PARAM_TYPE = 1342177285i32; +pub const DEBUG_FLR_SOLUTION_ID: DEBUG_FLR_PARAM_TYPE = 12293i32; +pub const DEBUG_FLR_SOLUTION_TYPE: DEBUG_FLR_PARAM_TYPE = 12295i32; +pub const DEBUG_FLR_SPECIAL_POOL_CORRUPTION_TYPE: DEBUG_FLR_PARAM_TYPE = 1025i32; +pub const DEBUG_FLR_STACK: DEBUG_FLR_PARAM_TYPE = 2097152i32; +pub const DEBUG_FLR_STACKHASH_ANALYSIS: DEBUG_FLR_PARAM_TYPE = 1138688i32; +pub const DEBUG_FLR_STACKUSAGE_FUNCTION: DEBUG_FLR_PARAM_TYPE = 12363i32; +pub const DEBUG_FLR_STACKUSAGE_FUNCTION_SIZE: DEBUG_FLR_PARAM_TYPE = 12364i32; +pub const DEBUG_FLR_STACKUSAGE_IMAGE: DEBUG_FLR_PARAM_TYPE = 12361i32; +pub const DEBUG_FLR_STACKUSAGE_IMAGE_SIZE: DEBUG_FLR_PARAM_TYPE = 12362i32; +pub const DEBUG_FLR_STACKUSAGE_RECURSION_COUNT: DEBUG_FLR_PARAM_TYPE = 12365i32; +pub const DEBUG_FLR_STACK_COMMAND: DEBUG_FLR_PARAM_TYPE = 65540i32; +pub const DEBUG_FLR_STACK_FRAME: DEBUG_FLR_PARAM_TYPE = 2097155i32; +pub const DEBUG_FLR_STACK_FRAMES: DEBUG_FLR_PARAM_TYPE = 2097212i32; +pub const DEBUG_FLR_STACK_FRAME_FLAGS: DEBUG_FLR_PARAM_TYPE = 2097163i32; +pub const DEBUG_FLR_STACK_FRAME_FUNCTION: DEBUG_FLR_PARAM_TYPE = 2097162i32; +pub const DEBUG_FLR_STACK_FRAME_IMAGE: DEBUG_FLR_PARAM_TYPE = 2097161i32; +pub const DEBUG_FLR_STACK_FRAME_INSTRUCTION: DEBUG_FLR_PARAM_TYPE = 2097157i32; +pub const DEBUG_FLR_STACK_FRAME_MODULE: DEBUG_FLR_PARAM_TYPE = 2097160i32; +pub const DEBUG_FLR_STACK_FRAME_MODULE_BASE: DEBUG_FLR_PARAM_TYPE = 2097224i32; +pub const DEBUG_FLR_STACK_FRAME_NUMBER: DEBUG_FLR_PARAM_TYPE = 2097156i32; +pub const DEBUG_FLR_STACK_FRAME_SRC: DEBUG_FLR_PARAM_TYPE = 2097225i32; +pub const DEBUG_FLR_STACK_FRAME_SYMBOL: DEBUG_FLR_PARAM_TYPE = 2097158i32; +pub const DEBUG_FLR_STACK_FRAME_SYMBOL_OFFSET: DEBUG_FLR_PARAM_TYPE = 2097159i32; +pub const DEBUG_FLR_STACK_OVERFLOW: DEBUG_FLR_PARAM_TYPE = 12301i32; +pub const DEBUG_FLR_STACK_POINTER_ERROR: DEBUG_FLR_PARAM_TYPE = 12302i32; +pub const DEBUG_FLR_STACK_POINTER_MISALIGNED: DEBUG_FLR_PARAM_TYPE = 12304i32; +pub const DEBUG_FLR_STACK_POINTER_ONEBIT_ERROR: DEBUG_FLR_PARAM_TYPE = 12303i32; +pub const DEBUG_FLR_STACK_SHA1_HASH_M: DEBUG_FLR_PARAM_TYPE = 2097221i32; +pub const DEBUG_FLR_STACK_SHA1_HASH_MF: DEBUG_FLR_PARAM_TYPE = 2097219i32; +pub const DEBUG_FLR_STACK_SHA1_HASH_MFO: DEBUG_FLR_PARAM_TYPE = 2097220i32; +pub const DEBUG_FLR_STACK_TEXT: DEBUG_FLR_PARAM_TYPE = 65541i32; +pub const DEBUG_FLR_STATUS_CODE: DEBUG_FLR_PARAM_TYPE = 4102i32; +pub const DEBUG_FLR_STORAGE: DEBUG_FLR_PARAM_TYPE = 29696i32; +pub const DEBUG_FLR_STORAGE_BLACKBOX: DEBUG_FLR_PARAM_TYPE = 29936i32; +pub const DEBUG_FLR_STORAGE_ISSUEDESCSTRING: DEBUG_FLR_PARAM_TYPE = 29700i32; +pub const DEBUG_FLR_STORAGE_MFGID: DEBUG_FLR_PARAM_TYPE = 29699i32; +pub const DEBUG_FLR_STORAGE_MODEL: DEBUG_FLR_PARAM_TYPE = 29698i32; +pub const DEBUG_FLR_STORAGE_ORGID: DEBUG_FLR_PARAM_TYPE = 29697i32; +pub const DEBUG_FLR_STORAGE_PRIVATE_DATASIZE: DEBUG_FLR_PARAM_TYPE = 29706i32; +pub const DEBUG_FLR_STORAGE_PRIVATE_OFFSET: DEBUG_FLR_PARAM_TYPE = 29705i32; +pub const DEBUG_FLR_STORAGE_PRIVATE_TOTSIZE: DEBUG_FLR_PARAM_TYPE = 29704i32; +pub const DEBUG_FLR_STORAGE_PUBLIC_DATASIZE: DEBUG_FLR_PARAM_TYPE = 29703i32; +pub const DEBUG_FLR_STORAGE_PUBLIC_OFFSET: DEBUG_FLR_PARAM_TYPE = 29702i32; +pub const DEBUG_FLR_STORAGE_PUBLIC_TOTSIZE: DEBUG_FLR_PARAM_TYPE = 29701i32; +pub const DEBUG_FLR_STORAGE_REASON: DEBUG_FLR_PARAM_TYPE = 29708i32; +pub const DEBUG_FLR_STORAGE_TOTALSIZE: DEBUG_FLR_PARAM_TYPE = 29707i32; +pub const DEBUG_FLR_STORE_DEVELOPER_NAME: DEBUG_FLR_PARAM_TYPE = 1610612743i32; +pub const DEBUG_FLR_STORE_IS_MICROSOFT_PRODUCT: DEBUG_FLR_PARAM_TYPE = 1610612754i32; +pub const DEBUG_FLR_STORE_LEGACY_PARENT_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = 1610612747i32; +pub const DEBUG_FLR_STORE_LEGACY_WINDOWS_PHONE_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = 1610612749i32; +pub const DEBUG_FLR_STORE_LEGACY_WINDOWS_STORE_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = 1610612748i32; +pub const DEBUG_FLR_STORE_LEGACY_XBOX_360_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = 1610612751i32; +pub const DEBUG_FLR_STORE_LEGACY_XBOX_ONE_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = 1610612750i32; +pub const DEBUG_FLR_STORE_PACKAGE_FAMILY_NAME: DEBUG_FLR_PARAM_TYPE = 1610612744i32; +pub const DEBUG_FLR_STORE_PACKAGE_IDENTITY_NAME: DEBUG_FLR_PARAM_TYPE = 1610612745i32; +pub const DEBUG_FLR_STORE_PREFERRED_SKU_ID: DEBUG_FLR_PARAM_TYPE = 1610612753i32; +pub const DEBUG_FLR_STORE_PRIMARY_PARENT_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = 1610612746i32; +pub const DEBUG_FLR_STORE_PRODUCT_DESCRIPTION: DEBUG_FLR_PARAM_TYPE = 1610612738i32; +pub const DEBUG_FLR_STORE_PRODUCT_DISPLAY_NAME: DEBUG_FLR_PARAM_TYPE = 1610612737i32; +pub const DEBUG_FLR_STORE_PRODUCT_EXTENDED_NAME: DEBUG_FLR_PARAM_TYPE = 1610612739i32; +pub const DEBUG_FLR_STORE_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = 1610612736i32; +pub const DEBUG_FLR_STORE_PUBLISHER_CERTIFICATE_NAME: DEBUG_FLR_PARAM_TYPE = 1610612742i32; +pub const DEBUG_FLR_STORE_PUBLISHER_ID: DEBUG_FLR_PARAM_TYPE = 1610612740i32; +pub const DEBUG_FLR_STORE_PUBLISHER_NAME: DEBUG_FLR_PARAM_TYPE = 1610612741i32; +pub const DEBUG_FLR_STORE_URL_APP: DEBUG_FLR_PARAM_TYPE = 1610612755i32; +pub const DEBUG_FLR_STORE_URL_APPHEALTH: DEBUG_FLR_PARAM_TYPE = 1610612756i32; +pub const DEBUG_FLR_STORE_XBOX_TITLE_ID: DEBUG_FLR_PARAM_TYPE = 1610612752i32; +pub const DEBUG_FLR_STREAM_ANALYSIS: DEBUG_FLR_PARAM_TYPE = 1130496i32; +pub const DEBUG_FLR_SUSPECT_CODE_PATH_HASH: DEBUG_FLR_PARAM_TYPE = 1048586i32; +pub const DEBUG_FLR_SVCHOST: DEBUG_FLR_PARAM_TYPE = 20736i32; +pub const DEBUG_FLR_SVCHOST_GROUP: DEBUG_FLR_PARAM_TYPE = 20737i32; +pub const DEBUG_FLR_SVCHOST_IMAGEPATH: DEBUG_FLR_PARAM_TYPE = 20738i32; +pub const DEBUG_FLR_SVCHOST_SERVICEDLL: DEBUG_FLR_PARAM_TYPE = 20739i32; +pub const DEBUG_FLR_SWITCH_PROCESS_CONTEXT: DEBUG_FLR_PARAM_TYPE = 8223i32; +pub const DEBUG_FLR_SYMBOL_FROM_RAW_STACK_ADDRESS: DEBUG_FLR_PARAM_TYPE = -2147483643i32; +pub const DEBUG_FLR_SYMBOL_NAME: DEBUG_FLR_PARAM_TYPE = 65538i32; +pub const DEBUG_FLR_SYMBOL_ON_RAW_STACK: DEBUG_FLR_PARAM_TYPE = 4104i32; +pub const DEBUG_FLR_SYMBOL_ROUTINE_NAME: DEBUG_FLR_PARAM_TYPE = 65580i32; +pub const DEBUG_FLR_SYMBOL_STACK_INDEX: DEBUG_FLR_PARAM_TYPE = 4103i32; +pub const DEBUG_FLR_SYSINFO_BASEBOARD_MANUFACTURER: DEBUG_FLR_PARAM_TYPE = 17156i32; +pub const DEBUG_FLR_SYSINFO_BASEBOARD_PRODUCT: DEBUG_FLR_PARAM_TYPE = 17157i32; +pub const DEBUG_FLR_SYSINFO_BASEBOARD_VERSION: DEBUG_FLR_PARAM_TYPE = 17158i32; +pub const DEBUG_FLR_SYSINFO_BIOS_DATE: DEBUG_FLR_PARAM_TYPE = 17161i32; +pub const DEBUG_FLR_SYSINFO_BIOS_VENDOR: DEBUG_FLR_PARAM_TYPE = 17159i32; +pub const DEBUG_FLR_SYSINFO_BIOS_VERSION: DEBUG_FLR_PARAM_TYPE = 17160i32; +pub const DEBUG_FLR_SYSINFO_SYSTEM_MANUFACTURER: DEBUG_FLR_PARAM_TYPE = 17152i32; +pub const DEBUG_FLR_SYSINFO_SYSTEM_PRODUCT: DEBUG_FLR_PARAM_TYPE = 17153i32; +pub const DEBUG_FLR_SYSINFO_SYSTEM_SKU: DEBUG_FLR_PARAM_TYPE = 17154i32; +pub const DEBUG_FLR_SYSINFO_SYSTEM_VERSION: DEBUG_FLR_PARAM_TYPE = 17155i32; +pub const DEBUG_FLR_SYSTEM_LOCALE_deprecated: DEBUG_FLR_PARAM_TYPE = 12298i32; +pub const DEBUG_FLR_SYSXML_CHECKSUM: DEBUG_FLR_PARAM_TYPE = 16897i32; +pub const DEBUG_FLR_SYSXML_LOCALEID: DEBUG_FLR_PARAM_TYPE = 16896i32; +pub const DEBUG_FLR_TARGET_MODE: DEBUG_FLR_PARAM_TYPE = 4107i32; +pub const DEBUG_FLR_TARGET_TIME: DEBUG_FLR_PARAM_TYPE = 8250i32; +pub const DEBUG_FLR_TESTRESULTGUID: DEBUG_FLR_PARAM_TYPE = -268435455i32; +pub const DEBUG_FLR_TESTRESULTSERVER: DEBUG_FLR_PARAM_TYPE = -268435456i32; +pub const DEBUG_FLR_THREADPOOL_WAITER: DEBUG_FLR_PARAM_TYPE = 4106i32; +pub const DEBUG_FLR_THREAD_ATTRIBUTES: DEBUG_FLR_PARAM_TYPE = 1048577i32; +pub const DEBUG_FLR_TIMELINE_ANALYSIS: DEBUG_FLR_PARAM_TYPE = 1126400i32; +pub const DEBUG_FLR_TIMELINE_TIMES: DEBUG_FLR_PARAM_TYPE = 1126401i32; +pub const DEBUG_FLR_TRAP_FRAME: DEBUG_FLR_PARAM_TYPE = -1073741822i32; +pub const DEBUG_FLR_TRAP_FRAME_RECURSION: DEBUG_FLR_PARAM_TYPE = 12300i32; +pub const DEBUG_FLR_TRIAGER_OS_BUILD_NAME: DEBUG_FLR_PARAM_TYPE = 12328i32; +pub const DEBUG_FLR_TSS: DEBUG_FLR_PARAM_TYPE = -1073741821i32; +pub const DEBUG_FLR_TWO_BIT_ERROR: DEBUG_FLR_PARAM_TYPE = 8204i32; +pub const DEBUG_FLR_ULS_SCRIPT_EXCEPTION: DEBUG_FLR_PARAM_TYPE = 1048617i32; +pub const DEBUG_FLR_UNALIGNED_STACK_POINTER: DEBUG_FLR_PARAM_TYPE = 12290i32; +pub const DEBUG_FLR_UNKNOWN: DEBUG_FAILURE_TYPE = 0i32; +pub const DEBUG_FLR_UNKNOWN_MODULE: DEBUG_FLR_PARAM_TYPE = 8201i32; +pub const DEBUG_FLR_UNRESPONSIVE_UI_FOLLOWUP_NAME: DEBUG_FLR_PARAM_TYPE = 65573i32; +pub const DEBUG_FLR_UNRESPONSIVE_UI_PROBLEM_CLASS: DEBUG_FLR_PARAM_TYPE = 1048581i32; +pub const DEBUG_FLR_UNRESPONSIVE_UI_PROBLEM_CLASS_DATA: DEBUG_FLR_PARAM_TYPE = 1048582i32; +pub const DEBUG_FLR_UNRESPONSIVE_UI_STACK: DEBUG_FLR_PARAM_TYPE = 65574i32; +pub const DEBUG_FLR_UNRESPONSIVE_UI_SYMBOL_NAME: DEBUG_FLR_PARAM_TYPE = 65572i32; +pub const DEBUG_FLR_UNRESPONSIVE_UI_THREAD: DEBUG_FLR_PARAM_TYPE = -1073741819i32; +pub const DEBUG_FLR_UNUSED001: DEBUG_FLR_PARAM_TYPE = 8197i32; +pub const DEBUG_FLR_URLS: DEBUG_FLR_PARAM_TYPE = 1048610i32; +pub const DEBUG_FLR_URLS_DISCOVERED: DEBUG_FLR_PARAM_TYPE = 1048609i32; +pub const DEBUG_FLR_URL_ENTRY: DEBUG_FLR_PARAM_TYPE = 1048611i32; +pub const DEBUG_FLR_URL_LCIE_ENTRY: DEBUG_FLR_PARAM_TYPE = 1048620i32; +pub const DEBUG_FLR_URL_URLMON_ENTRY: DEBUG_FLR_PARAM_TYPE = 1048621i32; +pub const DEBUG_FLR_URL_XMLHTTPREQ_SYNC_ENTRY: DEBUG_FLR_PARAM_TYPE = 1048622i32; +pub const DEBUG_FLR_USBPORT_OCADATA: DEBUG_FLR_PARAM_TYPE = 20i32; +pub const DEBUG_FLR_USER: DEBUG_FAILURE_TYPE = 2i32; +pub const DEBUG_FLR_USERBREAK_PEB_PAGEDOUT: DEBUG_FLR_PARAM_TYPE = 8225i32; +pub const DEBUG_FLR_USERMODE_DATA: DEBUG_FLR_PARAM_TYPE = 1048576i32; +pub const DEBUG_FLR_USER_GLOBAL_ATTRIBUTES: DEBUG_FLR_PARAM_TYPE = 3153920i32; +pub const DEBUG_FLR_USER_LCID: DEBUG_FLR_PARAM_TYPE = 1052690i32; +pub const DEBUG_FLR_USER_LCID_STR: DEBUG_FLR_PARAM_TYPE = 1052698i32; +pub const DEBUG_FLR_USER_MODE_BUCKET: DEBUG_FLR_PARAM_TYPE = 65614i32; +pub const DEBUG_FLR_USER_MODE_BUCKET_EVENTTYPE: DEBUG_FLR_PARAM_TYPE = 65616i32; +pub const DEBUG_FLR_USER_MODE_BUCKET_INDEX: DEBUG_FLR_PARAM_TYPE = 65615i32; +pub const DEBUG_FLR_USER_MODE_BUCKET_P0: DEBUG_FLR_PARAM_TYPE = 65619i32; +pub const DEBUG_FLR_USER_MODE_BUCKET_P1: DEBUG_FLR_PARAM_TYPE = 65620i32; +pub const DEBUG_FLR_USER_MODE_BUCKET_P2: DEBUG_FLR_PARAM_TYPE = 65621i32; +pub const DEBUG_FLR_USER_MODE_BUCKET_P3: DEBUG_FLR_PARAM_TYPE = 65622i32; +pub const DEBUG_FLR_USER_MODE_BUCKET_P4: DEBUG_FLR_PARAM_TYPE = 65623i32; +pub const DEBUG_FLR_USER_MODE_BUCKET_P5: DEBUG_FLR_PARAM_TYPE = 65624i32; +pub const DEBUG_FLR_USER_MODE_BUCKET_P6: DEBUG_FLR_PARAM_TYPE = 65625i32; +pub const DEBUG_FLR_USER_MODE_BUCKET_P7: DEBUG_FLR_PARAM_TYPE = 65626i32; +pub const DEBUG_FLR_USER_MODE_BUCKET_REPORTCREATIONTIME: DEBUG_FLR_PARAM_TYPE = 65618i32; +pub const DEBUG_FLR_USER_MODE_BUCKET_REPORTGUID: DEBUG_FLR_PARAM_TYPE = 65617i32; +pub const DEBUG_FLR_USER_MODE_BUCKET_STRING: DEBUG_FLR_PARAM_TYPE = 65627i32; +pub const DEBUG_FLR_USER_NAME: DEBUG_FLR_PARAM_TYPE = 65548i32; +pub const DEBUG_FLR_USER_PROBLEM_CLASSES: DEBUG_FLR_PARAM_TYPE = 3162112i32; +pub const DEBUG_FLR_USER_THREAD_ATTRIBUTES: DEBUG_FLR_PARAM_TYPE = 3158016i32; +pub const DEBUG_FLR_USE_DEFAULT_CONTEXT: DEBUG_FLR_PARAM_TYPE = 8221i32; +pub const DEBUG_FLR_VERIFIER_DRIVER_ENTRY: DEBUG_FLR_PARAM_TYPE = 263i32; +pub const DEBUG_FLR_VERIFIER_FOUND_DEADLOCK: DEBUG_FLR_PARAM_TYPE = 26i32; +pub const DEBUG_FLR_VERIFIER_STOP: DEBUG_FLR_PARAM_TYPE = 8224i32; +pub const DEBUG_FLR_VIDEO_TDR_CONTEXT: DEBUG_FLR_PARAM_TYPE = 262i32; +pub const DEBUG_FLR_VIRTUAL_MACHINE: DEBUG_FLR_PARAM_TYPE = 17162i32; +pub const DEBUG_FLR_WAIT_CHAIN_COMMAND: DEBUG_FLR_PARAM_TYPE = 1048598i32; +pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_00: DEBUG_FLR_PARAM_TYPE = 16648i32; +pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_01: DEBUG_FLR_PARAM_TYPE = 16649i32; +pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_02: DEBUG_FLR_PARAM_TYPE = 16650i32; +pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_03: DEBUG_FLR_PARAM_TYPE = 16651i32; +pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_04: DEBUG_FLR_PARAM_TYPE = 16652i32; +pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_05: DEBUG_FLR_PARAM_TYPE = 16653i32; +pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_06: DEBUG_FLR_PARAM_TYPE = 16654i32; +pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_07: DEBUG_FLR_PARAM_TYPE = 16655i32; +pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_08: DEBUG_FLR_PARAM_TYPE = 16656i32; +pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_09: DEBUG_FLR_PARAM_TYPE = 16657i32; +pub const DEBUG_FLR_WATSON_GENERIC_EVENT_NAME: DEBUG_FLR_PARAM_TYPE = 16647i32; +pub const DEBUG_FLR_WATSON_IBUCKET: DEBUG_FLR_PARAM_TYPE = 16644i32; +pub const DEBUG_FLR_WATSON_IBUCKETTABLE_S1_RESP: DEBUG_FLR_PARAM_TYPE = 1048613i32; +pub const DEBUG_FLR_WATSON_IBUCKET_S1_RESP: DEBUG_FLR_PARAM_TYPE = 1048612i32; +pub const DEBUG_FLR_WATSON_MODULE: DEBUG_FLR_PARAM_TYPE = 16640i32; +pub const DEBUG_FLR_WATSON_MODULE_OFFSET: DEBUG_FLR_PARAM_TYPE = 16642i32; +pub const DEBUG_FLR_WATSON_MODULE_TIMESTAMP: DEBUG_FLR_PARAM_TYPE = 16645i32; +pub const DEBUG_FLR_WATSON_MODULE_VERSION: DEBUG_FLR_PARAM_TYPE = 16641i32; +pub const DEBUG_FLR_WATSON_PROCESS_TIMESTAMP: DEBUG_FLR_PARAM_TYPE = 16646i32; +pub const DEBUG_FLR_WATSON_PROCESS_VERSION: DEBUG_FLR_PARAM_TYPE = 16643i32; +pub const DEBUG_FLR_WCT_XML_AVAILABLE: DEBUG_FLR_PARAM_TYPE = 1048591i32; +pub const DEBUG_FLR_WERCOLLECTION_DEFAULTCOLLECTION_FAILURE: DEBUG_FLR_PARAM_TYPE = -268435438i32; +pub const DEBUG_FLR_WERCOLLECTION_MINIDUMP_WRITE_FAILURE: DEBUG_FLR_PARAM_TYPE = -268435439i32; +pub const DEBUG_FLR_WERCOLLECTION_PROCESSHEAPDUMP_REQUEST_FAILURE: DEBUG_FLR_PARAM_TYPE = -268435440i32; +pub const DEBUG_FLR_WERCOLLECTION_PROCESSTERMINATED: DEBUG_FLR_PARAM_TYPE = -268435441i32; +pub const DEBUG_FLR_WER_DATA_COLLECTION_INFO: DEBUG_FLR_PARAM_TYPE = 1048615i32; +pub const DEBUG_FLR_WER_MACHINE_ID: DEBUG_FLR_PARAM_TYPE = 1048616i32; +pub const DEBUG_FLR_WHEA_ERROR_RECORD: DEBUG_FLR_PARAM_TYPE = 25i32; +pub const DEBUG_FLR_WINLOGON_BLACKBOX: DEBUG_FLR_PARAM_TYPE = -268435432i32; +pub const DEBUG_FLR_WMI_QUERY_DATA: DEBUG_FLR_PARAM_TYPE = 3149824i32; +pub const DEBUG_FLR_WORKER_ROUTINE: DEBUG_FLR_PARAM_TYPE = 5i32; +pub const DEBUG_FLR_WORK_ITEM: DEBUG_FLR_PARAM_TYPE = 6i32; +pub const DEBUG_FLR_WORK_QUEUE_ITEM: DEBUG_FLR_PARAM_TYPE = 21i32; +pub const DEBUG_FLR_WQL_EVENTLOG_INFO: DEBUG_FLR_PARAM_TYPE = 16899i32; +pub const DEBUG_FLR_WQL_EVENT_COUNT: DEBUG_FLR_PARAM_TYPE = 16898i32; +pub const DEBUG_FLR_WRITE_ADDRESS: DEBUG_FLR_PARAM_TYPE = 15i32; +pub const DEBUG_FLR_WRONG_SYMBOLS: DEBUG_FLR_PARAM_TYPE = 8195i32; +pub const DEBUG_FLR_WRONG_SYMBOLS_SIZE: DEBUG_FLR_PARAM_TYPE = 8247i32; +pub const DEBUG_FLR_WRONG_SYMBOLS_TIMESTAMP: DEBUG_FLR_PARAM_TYPE = 8246i32; +pub const DEBUG_FLR_XBOX_LIVE_ENVIRONMENT: DEBUG_FLR_PARAM_TYPE = 12368i32; +pub const DEBUG_FLR_XBOX_SYSTEM_CRASHTIME: DEBUG_FLR_PARAM_TYPE = 12367i32; +pub const DEBUG_FLR_XBOX_SYSTEM_UPTIME: DEBUG_FLR_PARAM_TYPE = 12366i32; +pub const DEBUG_FLR_XCS_PATH: DEBUG_FLR_PARAM_TYPE = 1048603i32; +pub const DEBUG_FLR_XDV_HELP_LINK: DEBUG_FLR_PARAM_TYPE = -1073741811i32; +pub const DEBUG_FLR_XDV_RULE_INFO: DEBUG_FLR_PARAM_TYPE = -1073741810i32; +pub const DEBUG_FLR_XDV_STATE_VARIABLE: DEBUG_FLR_PARAM_TYPE = -1073741812i32; +pub const DEBUG_FLR_XDV_VIOLATED_CONDITION: DEBUG_FLR_PARAM_TYPE = -1073741813i32; +pub const DEBUG_FLR_XHCI_FIRMWARE_VERSION: DEBUG_FLR_PARAM_TYPE = 65590i32; +pub const DEBUG_FLR_XML_APPLICATION_NAME: DEBUG_FLR_PARAM_TYPE = 2097231i32; +pub const DEBUG_FLR_XML_ATTRIBUTE: DEBUG_FLR_PARAM_TYPE = 2097194i32; +pub const DEBUG_FLR_XML_ATTRIBUTE_D1VALUE: DEBUG_FLR_PARAM_TYPE = 2097197i32; +pub const DEBUG_FLR_XML_ATTRIBUTE_D2VALUE: DEBUG_FLR_PARAM_TYPE = 2097198i32; +pub const DEBUG_FLR_XML_ATTRIBUTE_DOVALUE: DEBUG_FLR_PARAM_TYPE = 2097199i32; +pub const DEBUG_FLR_XML_ATTRIBUTE_FRAME_NUMBER: DEBUG_FLR_PARAM_TYPE = 2097201i32; +pub const DEBUG_FLR_XML_ATTRIBUTE_LIST: DEBUG_FLR_PARAM_TYPE = 2097193i32; +pub const DEBUG_FLR_XML_ATTRIBUTE_NAME: DEBUG_FLR_PARAM_TYPE = 2097195i32; +pub const DEBUG_FLR_XML_ATTRIBUTE_THREAD_INDEX: DEBUG_FLR_PARAM_TYPE = 2097202i32; +pub const DEBUG_FLR_XML_ATTRIBUTE_VALUE: DEBUG_FLR_PARAM_TYPE = 2097196i32; +pub const DEBUG_FLR_XML_ATTRIBUTE_VALUE_TYPE: DEBUG_FLR_PARAM_TYPE = 2097200i32; +pub const DEBUG_FLR_XML_ENCODED_OFFSETS: DEBUG_FLR_PARAM_TYPE = 2097213i32; +pub const DEBUG_FLR_XML_EVENTTYPE: DEBUG_FLR_PARAM_TYPE = 2097235i32; +pub const DEBUG_FLR_XML_GLOBALATTRIBUTE_LIST: DEBUG_FLR_PARAM_TYPE = 2097192i32; +pub const DEBUG_FLR_XML_MODERN_ASYNC_REQUEST_OUTSTANDING: DEBUG_FLR_PARAM_TYPE = 2097234i32; +pub const DEBUG_FLR_XML_MODULE_INFO: DEBUG_FLR_PARAM_TYPE = 2097169i32; +pub const DEBUG_FLR_XML_MODULE_INFO_BASE: DEBUG_FLR_PARAM_TYPE = 2097186i32; +pub const DEBUG_FLR_XML_MODULE_INFO_CHECKSUM: DEBUG_FLR_PARAM_TYPE = 2097174i32; +pub const DEBUG_FLR_XML_MODULE_INFO_COMPANY_NAME: DEBUG_FLR_PARAM_TYPE = 2097182i32; +pub const DEBUG_FLR_XML_MODULE_INFO_DRIVER_GROUP: DEBUG_FLR_PARAM_TYPE = 2097251i32; +pub const DEBUG_FLR_XML_MODULE_INFO_FILE_DESCRIPTION: DEBUG_FLR_PARAM_TYPE = 2097183i32; +pub const DEBUG_FLR_XML_MODULE_INFO_FILE_FLAGS: DEBUG_FLR_PARAM_TYPE = 2097223i32; +pub const DEBUG_FLR_XML_MODULE_INFO_FIXED_FILE_VER: DEBUG_FLR_PARAM_TYPE = 2097178i32; +pub const DEBUG_FLR_XML_MODULE_INFO_FIXED_PROD_VER: DEBUG_FLR_PARAM_TYPE = 2097179i32; +pub const DEBUG_FLR_XML_MODULE_INFO_IMAGE_NAME: DEBUG_FLR_PARAM_TYPE = 2097172i32; +pub const DEBUG_FLR_XML_MODULE_INFO_IMAGE_PATH: DEBUG_FLR_PARAM_TYPE = 2097173i32; +pub const DEBUG_FLR_XML_MODULE_INFO_INDEX: DEBUG_FLR_PARAM_TYPE = 2097170i32; +pub const DEBUG_FLR_XML_MODULE_INFO_INTERNAL_NAME: DEBUG_FLR_PARAM_TYPE = 2097184i32; +pub const DEBUG_FLR_XML_MODULE_INFO_NAME: DEBUG_FLR_PARAM_TYPE = 2097171i32; +pub const DEBUG_FLR_XML_MODULE_INFO_ON_STACK: DEBUG_FLR_PARAM_TYPE = 2097177i32; +pub const DEBUG_FLR_XML_MODULE_INFO_ORIG_FILE_NAME: DEBUG_FLR_PARAM_TYPE = 2097185i32; +pub const DEBUG_FLR_XML_MODULE_INFO_PRODUCT_NAME: DEBUG_FLR_PARAM_TYPE = 2097188i32; +pub const DEBUG_FLR_XML_MODULE_INFO_SIZE: DEBUG_FLR_PARAM_TYPE = 2097187i32; +pub const DEBUG_FLR_XML_MODULE_INFO_STRING_FILE_VER: DEBUG_FLR_PARAM_TYPE = 2097180i32; +pub const DEBUG_FLR_XML_MODULE_INFO_STRING_PROD_VER: DEBUG_FLR_PARAM_TYPE = 2097181i32; +pub const DEBUG_FLR_XML_MODULE_INFO_SYMBOL_TYPE: DEBUG_FLR_PARAM_TYPE = 2097222i32; +pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_IMAGE_DETAIL: DEBUG_FLR_PARAM_TYPE = 2097245i32; +pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_IMAGE_ERROR: DEBUG_FLR_PARAM_TYPE = 2097244i32; +pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_IMAGE_SEC: DEBUG_FLR_PARAM_TYPE = 2097246i32; +pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_IMAGE_STATUS: DEBUG_FLR_PARAM_TYPE = 2097243i32; +pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_PDB_DETAIL: DEBUG_FLR_PARAM_TYPE = 2097249i32; +pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_PDB_ERROR: DEBUG_FLR_PARAM_TYPE = 2097248i32; +pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_PDB_SEC: DEBUG_FLR_PARAM_TYPE = 2097250i32; +pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_PDB_STATUS: DEBUG_FLR_PARAM_TYPE = 2097247i32; +pub const DEBUG_FLR_XML_MODULE_INFO_TIMESTAMP: DEBUG_FLR_PARAM_TYPE = 2097175i32; +pub const DEBUG_FLR_XML_MODULE_INFO_UNLOADED: DEBUG_FLR_PARAM_TYPE = 2097176i32; +pub const DEBUG_FLR_XML_MODULE_LIST: DEBUG_FLR_PARAM_TYPE = 2097154i32; +pub const DEBUG_FLR_XML_PACKAGE_MONIKER: DEBUG_FLR_PARAM_TYPE = 2097232i32; +pub const DEBUG_FLR_XML_PACKAGE_NAME: DEBUG_FLR_PARAM_TYPE = 2097236i32; +pub const DEBUG_FLR_XML_PACKAGE_RELATIVE_APPLICATION_ID: DEBUG_FLR_PARAM_TYPE = 2097233i32; +pub const DEBUG_FLR_XML_PACKAGE_VERSION: DEBUG_FLR_PARAM_TYPE = 2097237i32; +pub const DEBUG_FLR_XML_PROBLEMCLASS: DEBUG_FLR_PARAM_TYPE = 2097204i32; +pub const DEBUG_FLR_XML_PROBLEMCLASS_FRAME_NUMBER: DEBUG_FLR_PARAM_TYPE = 2097208i32; +pub const DEBUG_FLR_XML_PROBLEMCLASS_LIST: DEBUG_FLR_PARAM_TYPE = 2097203i32; +pub const DEBUG_FLR_XML_PROBLEMCLASS_NAME: DEBUG_FLR_PARAM_TYPE = 2097205i32; +pub const DEBUG_FLR_XML_PROBLEMCLASS_THREAD_INDEX: DEBUG_FLR_PARAM_TYPE = 2097209i32; +pub const DEBUG_FLR_XML_PROBLEMCLASS_VALUE: DEBUG_FLR_PARAM_TYPE = 2097206i32; +pub const DEBUG_FLR_XML_PROBLEMCLASS_VALUE_TYPE: DEBUG_FLR_PARAM_TYPE = 2097207i32; +pub const DEBUG_FLR_XML_STACK_FRAME_TRIAGE_STATUS: DEBUG_FLR_PARAM_TYPE = 2097210i32; +pub const DEBUG_FLR_XML_SYSTEMINFO: DEBUG_FLR_PARAM_TYPE = 2097226i32; +pub const DEBUG_FLR_XML_SYSTEMINFO_SYSTEMMANUFACTURER: DEBUG_FLR_PARAM_TYPE = 2097227i32; +pub const DEBUG_FLR_XML_SYSTEMINFO_SYSTEMMARKER: DEBUG_FLR_PARAM_TYPE = 2097229i32; +pub const DEBUG_FLR_XML_SYSTEMINFO_SYSTEMMODEL: DEBUG_FLR_PARAM_TYPE = 2097228i32; +pub const DEBUG_FLR_XPROC_DUMP_AVAILABLE: DEBUG_FLR_PARAM_TYPE = 1048592i32; +pub const DEBUG_FLR_XPROC_HANG: DEBUG_FLR_PARAM_TYPE = 1048588i32; +pub const DEBUG_FLR_ZEROED_STACK: DEBUG_FLR_PARAM_TYPE = 8194i32; +pub const DEBUG_FORMAT_CAB_SECONDARY_ALL_IMAGES: u32 = 268435456u32; +pub const DEBUG_FORMAT_CAB_SECONDARY_FILES: u32 = 1073741824u32; +pub const DEBUG_FORMAT_DEFAULT: u32 = 0u32; +pub const DEBUG_FORMAT_NO_OVERWRITE: u32 = 2147483648u32; +pub const DEBUG_FORMAT_USER_SMALL_ADD_AVX_XSTATE_CONTEXT: u32 = 131072u32; +pub const DEBUG_FORMAT_USER_SMALL_CODE_SEGMENTS: u32 = 4096u32; +pub const DEBUG_FORMAT_USER_SMALL_DATA_SEGMENTS: u32 = 16u32; +pub const DEBUG_FORMAT_USER_SMALL_FILTER_MEMORY: u32 = 32u32; +pub const DEBUG_FORMAT_USER_SMALL_FILTER_PATHS: u32 = 64u32; +pub const DEBUG_FORMAT_USER_SMALL_FILTER_TRIAGE: u32 = 65536u32; +pub const DEBUG_FORMAT_USER_SMALL_FULL_AUXILIARY_STATE: u32 = 16384u32; +pub const DEBUG_FORMAT_USER_SMALL_FULL_MEMORY: u32 = 1u32; +pub const DEBUG_FORMAT_USER_SMALL_FULL_MEMORY_INFO: u32 = 1024u32; +pub const DEBUG_FORMAT_USER_SMALL_HANDLE_DATA: u32 = 2u32; +pub const DEBUG_FORMAT_USER_SMALL_IGNORE_INACCESSIBLE_MEM: u32 = 134217728u32; +pub const DEBUG_FORMAT_USER_SMALL_INDIRECT_MEMORY: u32 = 8u32; +pub const DEBUG_FORMAT_USER_SMALL_IPT_TRACE: u32 = 262144u32; +pub const DEBUG_FORMAT_USER_SMALL_MODULE_HEADERS: u32 = 32768u32; +pub const DEBUG_FORMAT_USER_SMALL_NO_AUXILIARY_STATE: u32 = 8192u32; +pub const DEBUG_FORMAT_USER_SMALL_NO_OPTIONAL_DATA: u32 = 512u32; +pub const DEBUG_FORMAT_USER_SMALL_PRIVATE_READ_WRITE_MEMORY: u32 = 256u32; +pub const DEBUG_FORMAT_USER_SMALL_PROCESS_THREAD_DATA: u32 = 128u32; +pub const DEBUG_FORMAT_USER_SMALL_SCAN_PARTIAL_PAGES: u32 = 268435456u32; +pub const DEBUG_FORMAT_USER_SMALL_THREAD_INFO: u32 = 2048u32; +pub const DEBUG_FORMAT_USER_SMALL_UNLOADED_MODULES: u32 = 4u32; +pub const DEBUG_FORMAT_WRITE_CAB: u32 = 536870912u32; +pub const DEBUG_FRAME_DEFAULT: u32 = 0u32; +pub const DEBUG_FRAME_IGNORE_INLINE: u32 = 1u32; +pub const DEBUG_GETFNENT_DEFAULT: u32 = 0u32; +pub const DEBUG_GETFNENT_RAW_ENTRY_ONLY: u32 = 1u32; +pub const DEBUG_GETMOD_DEFAULT: u32 = 0u32; +pub const DEBUG_GETMOD_NO_LOADED_MODULES: u32 = 1u32; +pub const DEBUG_GETMOD_NO_UNLOADED_MODULES: u32 = 2u32; +pub const DEBUG_GET_PROC_DEFAULT: u32 = 0u32; +pub const DEBUG_GET_PROC_FULL_MATCH: u32 = 1u32; +pub const DEBUG_GET_PROC_ONLY_MATCH: u32 = 2u32; +pub const DEBUG_GET_PROC_SERVICE_NAME: u32 = 4u32; +pub const DEBUG_GET_TEXT_COMPLETIONS_IS_DOT_COMMAND: u32 = 1u32; +pub const DEBUG_GET_TEXT_COMPLETIONS_IS_EXTENSION_COMMAND: u32 = 2u32; +pub const DEBUG_GET_TEXT_COMPLETIONS_IS_SYMBOL: u32 = 4u32; +pub const DEBUG_GET_TEXT_COMPLETIONS_NO_DOT_COMMANDS: u32 = 1u32; +pub const DEBUG_GET_TEXT_COMPLETIONS_NO_EXTENSION_COMMANDS: u32 = 2u32; +pub const DEBUG_GET_TEXT_COMPLETIONS_NO_SYMBOLS: u32 = 4u32; +pub const DEBUG_GSEL_ALLOW_HIGHER: u32 = 4u32; +pub const DEBUG_GSEL_ALLOW_LOWER: u32 = 2u32; +pub const DEBUG_GSEL_DEFAULT: u32 = 0u32; +pub const DEBUG_GSEL_INLINE_CALLSITE: u32 = 16u32; +pub const DEBUG_GSEL_NEAREST_ONLY: u32 = 8u32; +pub const DEBUG_GSEL_NO_SYMBOL_LOADS: u32 = 1u32; +pub const DEBUG_HANDLE_DATA_TYPE_ALL_HANDLE_OPERATIONS: u32 = 10u32; +pub const DEBUG_HANDLE_DATA_TYPE_BASIC: u32 = 0u32; +pub const DEBUG_HANDLE_DATA_TYPE_HANDLE_COUNT: u32 = 3u32; +pub const DEBUG_HANDLE_DATA_TYPE_MINI_EVENT_1: u32 = 13u32; +pub const DEBUG_HANDLE_DATA_TYPE_MINI_MUTANT_1: u32 = 7u32; +pub const DEBUG_HANDLE_DATA_TYPE_MINI_MUTANT_2: u32 = 8u32; +pub const DEBUG_HANDLE_DATA_TYPE_MINI_PROCESS_1: u32 = 11u32; +pub const DEBUG_HANDLE_DATA_TYPE_MINI_PROCESS_2: u32 = 12u32; +pub const DEBUG_HANDLE_DATA_TYPE_MINI_SECTION_1: u32 = 14u32; +pub const DEBUG_HANDLE_DATA_TYPE_MINI_SEMAPHORE_1: u32 = 15u32; +pub const DEBUG_HANDLE_DATA_TYPE_MINI_THREAD_1: u32 = 6u32; +pub const DEBUG_HANDLE_DATA_TYPE_OBJECT_NAME: u32 = 2u32; +pub const DEBUG_HANDLE_DATA_TYPE_OBJECT_NAME_WIDE: u32 = 5u32; +pub const DEBUG_HANDLE_DATA_TYPE_PER_HANDLE_OPERATIONS: u32 = 9u32; +pub const DEBUG_HANDLE_DATA_TYPE_TYPE_NAME: u32 = 1u32; +pub const DEBUG_HANDLE_DATA_TYPE_TYPE_NAME_WIDE: u32 = 4u32; +pub const DEBUG_INTERRUPT_ACTIVE: u32 = 0u32; +pub const DEBUG_INTERRUPT_EXIT: u32 = 2u32; +pub const DEBUG_INTERRUPT_PASSIVE: u32 = 1u32; +pub const DEBUG_IOUTPUT_ADDR_TRANSLATE: u32 = 134217728u32; +pub const DEBUG_IOUTPUT_BREAKPOINT: u32 = 536870912u32; +pub const DEBUG_IOUTPUT_EVENT: u32 = 268435456u32; +pub const DEBUG_IOUTPUT_KD_PROTOCOL: u32 = 2147483648u32; +pub const DEBUG_IOUTPUT_REMOTING: u32 = 1073741824u32; +pub const DEBUG_KERNEL_ACTIVE_DUMP: u32 = 1030u32; +pub const DEBUG_KERNEL_CONNECTION: u32 = 0u32; +pub const DEBUG_KERNEL_DUMP: u32 = 1025u32; +pub const DEBUG_KERNEL_EXDI_DRIVER: u32 = 2u32; +pub const DEBUG_KERNEL_FULL_DUMP: u32 = 1026u32; +pub const DEBUG_KERNEL_IDNA: u32 = 3u32; +pub const DEBUG_KERNEL_INSTALL_DRIVER: u32 = 4u32; +pub const DEBUG_KERNEL_LOCAL: u32 = 1u32; +pub const DEBUG_KERNEL_REPT: u32 = 5u32; +pub const DEBUG_KERNEL_SMALL_DUMP: u32 = 1024u32; +pub const DEBUG_KERNEL_TRACE_LOG: u32 = 1028u32; +pub const DEBUG_KNOWN_STRUCT_GET_NAMES: u32 = 1u32; +pub const DEBUG_KNOWN_STRUCT_GET_SINGLE_LINE_OUTPUT: u32 = 2u32; +pub const DEBUG_KNOWN_STRUCT_SUPPRESS_TYPE_NAME: u32 = 3u32; +pub const DEBUG_LEVEL_ASSEMBLY: u32 = 1u32; +pub const DEBUG_LEVEL_SOURCE: u32 = 0u32; +pub const DEBUG_LIVE_USER_NON_INVASIVE: u32 = 33u32; +pub const DEBUG_LOG_APPEND: u32 = 1u32; +pub const DEBUG_LOG_DEFAULT: u32 = 0u32; +pub const DEBUG_LOG_DML: u32 = 4u32; +pub const DEBUG_LOG_UNICODE: u32 = 2u32; +pub const DEBUG_MANAGED_ALLOWED: u32 = 1u32; +pub const DEBUG_MANAGED_DISABLED: u32 = 0u32; +pub const DEBUG_MANAGED_DLL_LOADED: u32 = 2u32; +pub const DEBUG_MANRESET_DEFAULT: u32 = 0u32; +pub const DEBUG_MANRESET_LOAD_DLL: u32 = 1u32; +pub const DEBUG_MANSTR_LOADED_SUPPORT_DLL: u32 = 1u32; +pub const DEBUG_MANSTR_LOAD_STATUS: u32 = 2u32; +pub const DEBUG_MANSTR_NONE: u32 = 0u32; +pub const DEBUG_MODNAME_IMAGE: u32 = 0u32; +pub const DEBUG_MODNAME_LOADED_IMAGE: u32 = 2u32; +pub const DEBUG_MODNAME_MAPPED_IMAGE: u32 = 4u32; +pub const DEBUG_MODNAME_MODULE: u32 = 1u32; +pub const DEBUG_MODNAME_SYMBOL_FILE: u32 = 3u32; +pub const DEBUG_MODULE_EXE_MODULE: u32 = 4u32; +pub const DEBUG_MODULE_EXPLICIT: u32 = 8u32; +pub const DEBUG_MODULE_LOADED: u32 = 0u32; +pub const DEBUG_MODULE_SECONDARY: u32 = 16u32; +pub const DEBUG_MODULE_SYM_BAD_CHECKSUM: u32 = 65536u32; +pub const DEBUG_MODULE_SYNTHETIC: u32 = 32u32; +pub const DEBUG_MODULE_UNLOADED: u32 = 1u32; +pub const DEBUG_MODULE_USER_MODE: u32 = 2u32; +pub const DEBUG_NOTIFY_SESSION_ACCESSIBLE: u32 = 2u32; +pub const DEBUG_NOTIFY_SESSION_ACTIVE: u32 = 0u32; +pub const DEBUG_NOTIFY_SESSION_INACCESSIBLE: u32 = 3u32; +pub const DEBUG_NOTIFY_SESSION_INACTIVE: u32 = 1u32; +pub const DEBUG_OFFSINFO_VIRTUAL_SOURCE: u32 = 1u32; +pub const DEBUG_OUTCBF_COMBINED_EXPLICIT_FLUSH: u32 = 1u32; +pub const DEBUG_OUTCBF_DML_HAS_SPECIAL_CHARACTERS: u32 = 4u32; +pub const DEBUG_OUTCBF_DML_HAS_TAGS: u32 = 2u32; +pub const DEBUG_OUTCBI_ANY_FORMAT: u32 = 6u32; +pub const DEBUG_OUTCBI_DML: u32 = 4u32; +pub const DEBUG_OUTCBI_EXPLICIT_FLUSH: u32 = 1u32; +pub const DEBUG_OUTCBI_TEXT: u32 = 2u32; +pub const DEBUG_OUTCB_DML: u32 = 1u32; +pub const DEBUG_OUTCB_EXPLICIT_FLUSH: u32 = 2u32; +pub const DEBUG_OUTCB_TEXT: u32 = 0u32; +pub const DEBUG_OUTCTL_ALL_CLIENTS: u32 = 1u32; +pub const DEBUG_OUTCTL_ALL_OTHER_CLIENTS: u32 = 2u32; +pub const DEBUG_OUTCTL_AMBIENT: u32 = 4294967295u32; +pub const DEBUG_OUTCTL_AMBIENT_DML: u32 = 4294967294u32; +pub const DEBUG_OUTCTL_AMBIENT_TEXT: u32 = 4294967295u32; +pub const DEBUG_OUTCTL_DML: u32 = 32u32; +pub const DEBUG_OUTCTL_IGNORE: u32 = 3u32; +pub const DEBUG_OUTCTL_LOG_ONLY: u32 = 4u32; +pub const DEBUG_OUTCTL_NOT_LOGGED: u32 = 8u32; +pub const DEBUG_OUTCTL_OVERRIDE_MASK: u32 = 16u32; +pub const DEBUG_OUTCTL_SEND_MASK: u32 = 7u32; +pub const DEBUG_OUTCTL_THIS_CLIENT: u32 = 0u32; +pub const DEBUG_OUTPUT_DEBUGGEE: u32 = 128u32; +pub const DEBUG_OUTPUT_DEBUGGEE_PROMPT: u32 = 256u32; +pub const DEBUG_OUTPUT_ERROR: u32 = 2u32; +pub const DEBUG_OUTPUT_EXTENSION_WARNING: u32 = 64u32; +pub const DEBUG_OUTPUT_IDENTITY_DEFAULT: u32 = 0u32; +pub const DEBUG_OUTPUT_NAME_END: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("**NAME**"); +pub const DEBUG_OUTPUT_NAME_END_T: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("**NAME**"); +pub const DEBUG_OUTPUT_NAME_END_WIDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("**NAME**"); +pub const DEBUG_OUTPUT_NORMAL: u32 = 1u32; +pub const DEBUG_OUTPUT_OFFSET_END: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("**OFF**"); +pub const DEBUG_OUTPUT_OFFSET_END_T: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("**OFF**"); +pub const DEBUG_OUTPUT_OFFSET_END_WIDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("**OFF**"); +pub const DEBUG_OUTPUT_PROMPT: u32 = 16u32; +pub const DEBUG_OUTPUT_PROMPT_REGISTERS: u32 = 32u32; +pub const DEBUG_OUTPUT_STATUS: u32 = 1024u32; +pub const DEBUG_OUTPUT_SYMBOLS: u32 = 512u32; +pub const DEBUG_OUTPUT_SYMBOLS_DEFAULT: u32 = 0u32; +pub const DEBUG_OUTPUT_SYMBOLS_NO_NAMES: u32 = 1u32; +pub const DEBUG_OUTPUT_SYMBOLS_NO_OFFSETS: u32 = 2u32; +pub const DEBUG_OUTPUT_SYMBOLS_NO_TYPES: u32 = 16u32; +pub const DEBUG_OUTPUT_SYMBOLS_NO_VALUES: u32 = 4u32; +pub const DEBUG_OUTPUT_TYPE_END: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("**TYPE**"); +pub const DEBUG_OUTPUT_TYPE_END_T: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("**TYPE**"); +pub const DEBUG_OUTPUT_TYPE_END_WIDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("**TYPE**"); +pub const DEBUG_OUTPUT_VALUE_END: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("**VALUE**"); +pub const DEBUG_OUTPUT_VALUE_END_T: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("**VALUE**"); +pub const DEBUG_OUTPUT_VALUE_END_WIDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("**VALUE**"); +pub const DEBUG_OUTPUT_VERBOSE: u32 = 8u32; +pub const DEBUG_OUTPUT_WARNING: u32 = 4u32; +pub const DEBUG_OUTPUT_XML: u32 = 2048u32; +pub const DEBUG_OUTSYM_ALLOW_DISPLACEMENT: u32 = 4u32; +pub const DEBUG_OUTSYM_DEFAULT: u32 = 0u32; +pub const DEBUG_OUTSYM_FORCE_OFFSET: u32 = 1u32; +pub const DEBUG_OUTSYM_SOURCE_LINE: u32 = 2u32; +pub const DEBUG_OUTTYPE_ADDRESS_AT_END: u32 = 131072u32; +pub const DEBUG_OUTTYPE_ADDRESS_OF_FIELD: u32 = 65536u32; +pub const DEBUG_OUTTYPE_BLOCK_RECURSE: u32 = 2097152u32; +pub const DEBUG_OUTTYPE_COMPACT_OUTPUT: u32 = 8u32; +pub const DEBUG_OUTTYPE_DEFAULT: u32 = 0u32; +pub const DEBUG_OUTTYPE_NO_INDENT: u32 = 1u32; +pub const DEBUG_OUTTYPE_NO_OFFSET: u32 = 2u32; +pub const DEBUG_OUTTYPE_VERBOSE: u32 = 4u32; +pub const DEBUG_OUT_TEXT_REPL_DEFAULT: u32 = 0u32; +pub const DEBUG_PHYSICAL_CACHED: u32 = 1u32; +pub const DEBUG_PHYSICAL_DEFAULT: u32 = 0u32; +pub const DEBUG_PHYSICAL_UNCACHED: u32 = 2u32; +pub const DEBUG_PHYSICAL_WRITE_COMBINED: u32 = 3u32; +pub const DEBUG_PROCESS_DETACH_ON_EXIT: u32 = 1u32; +pub const DEBUG_PROCESS_ONLY_THIS_PROCESS: u32 = 2u32; +pub const DEBUG_PROC_DESC_DEFAULT: u32 = 0u32; +pub const DEBUG_PROC_DESC_NO_COMMAND_LINE: u32 = 8u32; +pub const DEBUG_PROC_DESC_NO_MTS_PACKAGES: u32 = 4u32; +pub const DEBUG_PROC_DESC_NO_PATHS: u32 = 1u32; +pub const DEBUG_PROC_DESC_NO_SERVICES: u32 = 2u32; +pub const DEBUG_PROC_DESC_NO_SESSION_ID: u32 = 16u32; +pub const DEBUG_PROC_DESC_NO_USER_NAME: u32 = 32u32; +pub const DEBUG_PROC_DESC_WITH_ARCHITECTURE: u32 = 128u32; +pub const DEBUG_PROC_DESC_WITH_PACKAGEFAMILY: u32 = 64u32; +pub const DEBUG_REGISTERS_ALL: u32 = 7u32; +pub const DEBUG_REGISTERS_DEFAULT: u32 = 0u32; +pub const DEBUG_REGISTERS_FLOAT: u32 = 4u32; +pub const DEBUG_REGISTERS_INT32: u32 = 1u32; +pub const DEBUG_REGISTERS_INT64: u32 = 2u32; +pub const DEBUG_REGISTER_SUB_REGISTER: u32 = 1u32; +pub const DEBUG_REGSRC_DEBUGGEE: u32 = 0u32; +pub const DEBUG_REGSRC_EXPLICIT: u32 = 1u32; +pub const DEBUG_REGSRC_FRAME: u32 = 2u32; +pub const DEBUG_REQUEST_ADD_CACHED_SYMBOL_INFO: u32 = 16u32; +pub const DEBUG_REQUEST_CLOSE_TOKEN: u32 = 30u32; +pub const DEBUG_REQUEST_CURRENT_OUTPUT_CALLBACKS_ARE_DML_AWARE: u32 = 19u32; +pub const DEBUG_REQUEST_DUPLICATE_TOKEN: u32 = 28u32; +pub const DEBUG_REQUEST_EXT_TYPED_DATA_ANSI: u32 = 12u32; +pub const DEBUG_REQUEST_GET_ADDITIONAL_CREATE_OPTIONS: u32 = 4u32; +pub const DEBUG_REQUEST_GET_CACHED_SYMBOL_INFO: u32 = 15u32; +pub const DEBUG_REQUEST_GET_CAPTURED_EVENT_CODE_OFFSET: u32 = 10u32; +pub const DEBUG_REQUEST_GET_DUMP_HEADER: u32 = 21u32; +pub const DEBUG_REQUEST_GET_EXTENSION_SEARCH_PATH_WIDE: u32 = 13u32; +pub const DEBUG_REQUEST_GET_IMAGE_ARCHITECTURE: u32 = 39u32; +pub const DEBUG_REQUEST_GET_INSTRUMENTATION_VERSION: u32 = 37u32; +pub const DEBUG_REQUEST_GET_MODULE_ARCHITECTURE: u32 = 38u32; +pub const DEBUG_REQUEST_GET_OFFSET_UNWIND_INFORMATION: u32 = 20u32; +pub const DEBUG_REQUEST_GET_TEXT_COMPLETIONS_ANSI: u32 = 18u32; +pub const DEBUG_REQUEST_GET_TEXT_COMPLETIONS_WIDE: u32 = 14u32; +pub const DEBUG_REQUEST_GET_WIN32_MAJOR_MINOR_VERSIONS: u32 = 6u32; +pub const DEBUG_REQUEST_INLINE_QUERY: u32 = 35u32; +pub const DEBUG_REQUEST_MIDORI: u32 = 23u32; +pub const DEBUG_REQUEST_MISC_INFORMATION: u32 = 25u32; +pub const DEBUG_REQUEST_OPEN_PROCESS_TOKEN: u32 = 26u32; +pub const DEBUG_REQUEST_OPEN_THREAD_TOKEN: u32 = 27u32; +pub const DEBUG_REQUEST_PROCESS_DESCRIPTORS: u32 = 24u32; +pub const DEBUG_REQUEST_QUERY_INFO_TOKEN: u32 = 29u32; +pub const DEBUG_REQUEST_READ_CAPTURED_EVENT_CODE_STREAM: u32 = 11u32; +pub const DEBUG_REQUEST_READ_USER_MINIDUMP_STREAM: u32 = 7u32; +pub const DEBUG_REQUEST_REMOVE_CACHED_SYMBOL_INFO: u32 = 17u32; +pub const DEBUG_REQUEST_RESUME_THREAD: u32 = 34u32; +pub const DEBUG_REQUEST_SET_ADDITIONAL_CREATE_OPTIONS: u32 = 5u32; +pub const DEBUG_REQUEST_SET_DUMP_HEADER: u32 = 22u32; +pub const DEBUG_REQUEST_SET_LOCAL_IMPLICIT_COMMAND_LINE: u32 = 9u32; +pub const DEBUG_REQUEST_SOURCE_PATH_HAS_SOURCE_SERVER: u32 = 0u32; +pub const DEBUG_REQUEST_TARGET_CAN_DETACH: u32 = 8u32; +pub const DEBUG_REQUEST_TARGET_EXCEPTION_CONTEXT: u32 = 1u32; +pub const DEBUG_REQUEST_TARGET_EXCEPTION_RECORD: u32 = 3u32; +pub const DEBUG_REQUEST_TARGET_EXCEPTION_THREAD: u32 = 2u32; +pub const DEBUG_REQUEST_TL_INSTRUMENTATION_AWARE: u32 = 36u32; +pub const DEBUG_REQUEST_WOW_MODULE: u32 = 32u32; +pub const DEBUG_REQUEST_WOW_PROCESS: u32 = 31u32; +pub const DEBUG_SCOPE_GROUP_ALL: u32 = 3u32; +pub const DEBUG_SCOPE_GROUP_ARGUMENTS: u32 = 1u32; +pub const DEBUG_SCOPE_GROUP_BY_DATAMODEL: u32 = 4u32; +pub const DEBUG_SCOPE_GROUP_LOCALS: u32 = 2u32; +pub const DEBUG_SERVERS_ALL: u32 = 3u32; +pub const DEBUG_SERVERS_DEBUGGER: u32 = 1u32; +pub const DEBUG_SERVERS_PROCESS: u32 = 2u32; +pub const DEBUG_SESSION_ACTIVE: u32 = 0u32; +pub const DEBUG_SESSION_END: u32 = 4u32; +pub const DEBUG_SESSION_END_SESSION_ACTIVE_DETACH: u32 = 2u32; +pub const DEBUG_SESSION_END_SESSION_ACTIVE_TERMINATE: u32 = 1u32; +pub const DEBUG_SESSION_END_SESSION_PASSIVE: u32 = 3u32; +pub const DEBUG_SESSION_FAILURE: u32 = 7u32; +pub const DEBUG_SESSION_HIBERNATE: u32 = 6u32; +pub const DEBUG_SESSION_REBOOT: u32 = 5u32; +pub const DEBUG_SOURCE_IS_STATEMENT: u32 = 1u32; +pub const DEBUG_SRCFILE_SYMBOL_CHECKSUMINFO: u32 = 2u32; +pub const DEBUG_SRCFILE_SYMBOL_TOKEN: u32 = 0u32; +pub const DEBUG_SRCFILE_SYMBOL_TOKEN_SOURCE_COMMAND_WIDE: u32 = 1u32; +pub const DEBUG_STACK_ARGUMENTS: u32 = 1u32; +pub const DEBUG_STACK_COLUMN_NAMES: u32 = 16u32; +pub const DEBUG_STACK_DML: u32 = 2048u32; +pub const DEBUG_STACK_FRAME_ADDRESSES: u32 = 8u32; +pub const DEBUG_STACK_FRAME_ADDRESSES_RA_ONLY: u32 = 256u32; +pub const DEBUG_STACK_FRAME_ARCH: u32 = 16384u32; +pub const DEBUG_STACK_FRAME_MEMORY_USAGE: u32 = 512u32; +pub const DEBUG_STACK_FRAME_NUMBERS: u32 = 64u32; +pub const DEBUG_STACK_FRAME_OFFSETS: u32 = 4096u32; +pub const DEBUG_STACK_FUNCTION_INFO: u32 = 2u32; +pub const DEBUG_STACK_NONVOLATILE_REGISTERS: u32 = 32u32; +pub const DEBUG_STACK_PARAMETERS: u32 = 128u32; +pub const DEBUG_STACK_PARAMETERS_NEWLINE: u32 = 1024u32; +pub const DEBUG_STACK_PROVIDER: u32 = 8192u32; +pub const DEBUG_STACK_SOURCE_LINE: u32 = 4u32; +pub const DEBUG_STATUS_BREAK: u32 = 6u32; +pub const DEBUG_STATUS_GO: u32 = 1u32; +pub const DEBUG_STATUS_GO_HANDLED: u32 = 2u32; +pub const DEBUG_STATUS_GO_NOT_HANDLED: u32 = 3u32; +pub const DEBUG_STATUS_IGNORE_EVENT: u32 = 9u32; +pub const DEBUG_STATUS_INSIDE_WAIT: u64 = 4294967296u64; +pub const DEBUG_STATUS_MASK: u32 = 31u32; +pub const DEBUG_STATUS_NO_CHANGE: u32 = 0u32; +pub const DEBUG_STATUS_NO_DEBUGGEE: u32 = 7u32; +pub const DEBUG_STATUS_OUT_OF_SYNC: u32 = 15u32; +pub const DEBUG_STATUS_RESTART_REQUESTED: u32 = 10u32; +pub const DEBUG_STATUS_REVERSE_GO: u32 = 11u32; +pub const DEBUG_STATUS_REVERSE_STEP_BRANCH: u32 = 12u32; +pub const DEBUG_STATUS_REVERSE_STEP_INTO: u32 = 14u32; +pub const DEBUG_STATUS_REVERSE_STEP_OVER: u32 = 13u32; +pub const DEBUG_STATUS_STEP_BRANCH: u32 = 8u32; +pub const DEBUG_STATUS_STEP_INTO: u32 = 5u32; +pub const DEBUG_STATUS_STEP_OVER: u32 = 4u32; +pub const DEBUG_STATUS_TIMEOUT: u32 = 17u32; +pub const DEBUG_STATUS_WAIT_INPUT: u32 = 16u32; +pub const DEBUG_STATUS_WAIT_TIMEOUT: u64 = 8589934592u64; +pub const DEBUG_SYMBOL_EXPANDED: u32 = 16u32; +pub const DEBUG_SYMBOL_EXPANSION_LEVEL_MASK: u32 = 15u32; +pub const DEBUG_SYMBOL_IS_ARGUMENT: u32 = 256u32; +pub const DEBUG_SYMBOL_IS_ARRAY: u32 = 64u32; +pub const DEBUG_SYMBOL_IS_FLOAT: u32 = 128u32; +pub const DEBUG_SYMBOL_IS_LOCAL: u32 = 512u32; +pub const DEBUG_SYMBOL_READ_ONLY: u32 = 32u32; +pub const DEBUG_SYMENT_IS_CODE: u32 = 1u32; +pub const DEBUG_SYMENT_IS_DATA: u32 = 2u32; +pub const DEBUG_SYMENT_IS_LOCAL: u32 = 8u32; +pub const DEBUG_SYMENT_IS_MANAGED: u32 = 16u32; +pub const DEBUG_SYMENT_IS_PARAMETER: u32 = 4u32; +pub const DEBUG_SYMENT_IS_SYNTHETIC: u32 = 32u32; +pub const DEBUG_SYMINFO_BREAKPOINT_SOURCE_LINE: u32 = 0u32; +pub const DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS: u32 = 3u32; +pub const DEBUG_SYMINFO_GET_SYMBOL_NAME_BY_OFFSET_AND_TAG_WIDE: u32 = 2u32; +pub const DEBUG_SYMINFO_IMAGEHLP_MODULEW64: u32 = 1u32; +pub const DEBUG_SYMTYPE_CODEVIEW: u32 = 2u32; +pub const DEBUG_SYMTYPE_COFF: u32 = 1u32; +pub const DEBUG_SYMTYPE_DEFERRED: u32 = 5u32; +pub const DEBUG_SYMTYPE_DIA: u32 = 7u32; +pub const DEBUG_SYMTYPE_EXPORT: u32 = 4u32; +pub const DEBUG_SYMTYPE_NONE: u32 = 0u32; +pub const DEBUG_SYMTYPE_PDB: u32 = 3u32; +pub const DEBUG_SYMTYPE_SYM: u32 = 6u32; +pub const DEBUG_SYSOBJINFO_CURRENT_PROCESS_COOKIE: u32 = 2u32; +pub const DEBUG_SYSOBJINFO_THREAD_BASIC_INFORMATION: u32 = 0u32; +pub const DEBUG_SYSOBJINFO_THREAD_NAME_WIDE: u32 = 1u32; +pub const DEBUG_SYSVERSTR_BUILD: u32 = 1u32; +pub const DEBUG_SYSVERSTR_SERVICE_PACK: u32 = 0u32; +pub const DEBUG_TBINFO_AFFINITY: u32 = 32u32; +pub const DEBUG_TBINFO_ALL: u32 = 63u32; +pub const DEBUG_TBINFO_EXIT_STATUS: u32 = 1u32; +pub const DEBUG_TBINFO_PRIORITY: u32 = 4u32; +pub const DEBUG_TBINFO_PRIORITY_CLASS: u32 = 2u32; +pub const DEBUG_TBINFO_START_OFFSET: u32 = 16u32; +pub const DEBUG_TBINFO_TIMES: u32 = 8u32; +pub const DEBUG_TYPED_DATA_IS_IN_MEMORY: u32 = 1u32; +pub const DEBUG_TYPED_DATA_PHYSICAL_CACHED: u32 = 4u32; +pub const DEBUG_TYPED_DATA_PHYSICAL_DEFAULT: u32 = 2u32; +pub const DEBUG_TYPED_DATA_PHYSICAL_MEMORY: u32 = 14u32; +pub const DEBUG_TYPED_DATA_PHYSICAL_UNCACHED: u32 = 6u32; +pub const DEBUG_TYPED_DATA_PHYSICAL_WRITE_COMBINED: u32 = 8u32; +pub const DEBUG_TYPEOPTS_FORCERADIX_OUTPUT: u32 = 4u32; +pub const DEBUG_TYPEOPTS_LONGSTATUS_DISPLAY: u32 = 2u32; +pub const DEBUG_TYPEOPTS_MATCH_MAXSIZE: u32 = 8u32; +pub const DEBUG_TYPEOPTS_UNICODE_DISPLAY: u32 = 1u32; +pub const DEBUG_USER_WINDOWS_DUMP: u32 = 1025u32; +pub const DEBUG_USER_WINDOWS_DUMP_WINDOWS_CE: u32 = 1029u32; +pub const DEBUG_USER_WINDOWS_IDNA: u32 = 2u32; +pub const DEBUG_USER_WINDOWS_PROCESS: u32 = 0u32; +pub const DEBUG_USER_WINDOWS_PROCESS_SERVER: u32 = 1u32; +pub const DEBUG_USER_WINDOWS_REPT: u32 = 3u32; +pub const DEBUG_USER_WINDOWS_SMALL_DUMP: u32 = 1024u32; +pub const DEBUG_VALUE_FLOAT128: u32 = 9u32; +pub const DEBUG_VALUE_FLOAT32: u32 = 5u32; +pub const DEBUG_VALUE_FLOAT64: u32 = 6u32; +pub const DEBUG_VALUE_FLOAT80: u32 = 7u32; +pub const DEBUG_VALUE_FLOAT82: u32 = 8u32; +pub const DEBUG_VALUE_INT16: u32 = 2u32; +pub const DEBUG_VALUE_INT32: u32 = 3u32; +pub const DEBUG_VALUE_INT64: u32 = 4u32; +pub const DEBUG_VALUE_INT8: u32 = 1u32; +pub const DEBUG_VALUE_INVALID: u32 = 0u32; +pub const DEBUG_VALUE_TYPES: u32 = 12u32; +pub const DEBUG_VALUE_VECTOR128: u32 = 11u32; +pub const DEBUG_VALUE_VECTOR64: u32 = 10u32; +pub const DEBUG_VSEARCH_DEFAULT: u32 = 0u32; +pub const DEBUG_VSEARCH_WRITABLE_ONLY: u32 = 1u32; +pub const DEBUG_VSOURCE_DEBUGGEE: u32 = 1u32; +pub const DEBUG_VSOURCE_DUMP_WITHOUT_MEMINFO: u32 = 3u32; +pub const DEBUG_VSOURCE_INVALID: u32 = 0u32; +pub const DEBUG_VSOURCE_MAPPED_IMAGE: u32 = 2u32; +pub const DEBUG_WAIT_DEFAULT: u32 = 0u32; +pub const DISK_READ_0_BYTES: TANALYZE_RETURN = 3i32; +pub const DISK_WRITE: TANALYZE_RETURN = 4i32; +pub const DUMP_HANDLE_FLAG_CID_TABLE: u32 = 32u32; +pub const DUMP_HANDLE_FLAG_KERNEL_TABLE: u32 = 16u32; +pub const DUMP_HANDLE_FLAG_PRINT_FREE_ENTRY: u32 = 4u32; +pub const DUMP_HANDLE_FLAG_PRINT_OBJECT: u32 = 2u32; +pub const DbgPoolRegionMax: DEBUG_POOL_REGION = 6i32; +pub const DbgPoolRegionNonPaged: DEBUG_POOL_REGION = 3i32; +pub const DbgPoolRegionNonPagedExpansion: DEBUG_POOL_REGION = 4i32; +pub const DbgPoolRegionPaged: DEBUG_POOL_REGION = 2i32; +pub const DbgPoolRegionSessionPaged: DEBUG_POOL_REGION = 5i32; +pub const DbgPoolRegionSpecial: DEBUG_POOL_REGION = 1i32; +pub const DbgPoolRegionUnknown: DEBUG_POOL_REGION = 0i32; +pub const ERROR_DBG_CANCELLED: u32 = 3221226695u32; +pub const ERROR_DBG_TIMEOUT: u32 = 3221226932u32; +pub const EXIT_ON_CONTROLC: u32 = 8u32; +pub const EXIT_STATUS: TANALYZE_RETURN = 2i32; +pub const EXTDLL_DATA_QUERY_BUILD_BINDIR: u32 = 1u32; +pub const EXTDLL_DATA_QUERY_BUILD_BINDIR_SYMSRV: u32 = 11u32; +pub const EXTDLL_DATA_QUERY_BUILD_SYMDIR: u32 = 2u32; +pub const EXTDLL_DATA_QUERY_BUILD_SYMDIR_SYMSRV: u32 = 12u32; +pub const EXTDLL_DATA_QUERY_BUILD_WOW64BINDIR: u32 = 4u32; +pub const EXTDLL_DATA_QUERY_BUILD_WOW64BINDIR_SYMSRV: u32 = 14u32; +pub const EXTDLL_DATA_QUERY_BUILD_WOW64SYMDIR: u32 = 3u32; +pub const EXTDLL_DATA_QUERY_BUILD_WOW64SYMDIR_SYMSRV: u32 = 13u32; +pub const EXT_ANALYZER_FLAG_ID: u32 = 2u32; +pub const EXT_ANALYZER_FLAG_MOD: u32 = 1u32; +pub const EXT_API_VERSION_NUMBER: u32 = 5u32; +pub const EXT_API_VERSION_NUMBER32: u32 = 5u32; +pub const EXT_API_VERSION_NUMBER64: u32 = 6u32; +pub const EXT_FIND_FILE_ALLOW_GIVEN_PATH: u32 = 1u32; +pub const EXT_TDF_PHYSICAL_CACHED: u32 = 4u32; +pub const EXT_TDF_PHYSICAL_DEFAULT: u32 = 2u32; +pub const EXT_TDF_PHYSICAL_MEMORY: u32 = 14u32; +pub const EXT_TDF_PHYSICAL_UNCACHED: u32 = 6u32; +pub const EXT_TDF_PHYSICAL_WRITE_COMBINED: u32 = 8u32; +pub const EXT_TDOP_COPY: EXT_TDOP = 0i32; +pub const EXT_TDOP_COUNT: EXT_TDOP = 19i32; +pub const EXT_TDOP_EVALUATE: EXT_TDOP = 5i32; +pub const EXT_TDOP_GET_ARRAY_ELEMENT: EXT_TDOP = 12i32; +pub const EXT_TDOP_GET_DEREFERENCE: EXT_TDOP = 13i32; +pub const EXT_TDOP_GET_FIELD: EXT_TDOP = 4i32; +pub const EXT_TDOP_GET_FIELD_OFFSET: EXT_TDOP = 11i32; +pub const EXT_TDOP_GET_POINTER_TO: EXT_TDOP = 16i32; +pub const EXT_TDOP_GET_TYPE_NAME: EXT_TDOP = 6i32; +pub const EXT_TDOP_GET_TYPE_SIZE: EXT_TDOP = 14i32; +pub const EXT_TDOP_HAS_FIELD: EXT_TDOP = 10i32; +pub const EXT_TDOP_OUTPUT_FULL_VALUE: EXT_TDOP = 9i32; +pub const EXT_TDOP_OUTPUT_SIMPLE_VALUE: EXT_TDOP = 8i32; +pub const EXT_TDOP_OUTPUT_TYPE_DEFINITION: EXT_TDOP = 15i32; +pub const EXT_TDOP_OUTPUT_TYPE_NAME: EXT_TDOP = 7i32; +pub const EXT_TDOP_RELEASE: EXT_TDOP = 1i32; +pub const EXT_TDOP_SET_FROM_EXPR: EXT_TDOP = 2i32; +pub const EXT_TDOP_SET_FROM_TYPE_ID_AND_U64: EXT_TDOP = 17i32; +pub const EXT_TDOP_SET_FROM_U64_EXPR: EXT_TDOP = 3i32; +pub const EXT_TDOP_SET_PTR_FROM_TYPE_ID_AND_U64: EXT_TDOP = 18i32; +pub const ErrorClassError: ErrorClass = 1i32; +pub const ErrorClassWarning: ErrorClass = 0i32; +pub const FAILURE_ANALYSIS_ASSUME_HANG: u32 = 4u32; +pub const FAILURE_ANALYSIS_AUTOBUG_PROCESSING: u32 = 64u32; +pub const FAILURE_ANALYSIS_AUTOSET_SYMPATH: u32 = 16384u32; +pub const FAILURE_ANALYSIS_CALLSTACK_XML: u32 = 256u32; +pub const FAILURE_ANALYSIS_CALLSTACK_XML_FULL_SOURCE_INFO: u32 = 16777216u32; +pub const FAILURE_ANALYSIS_CREATE_INSTANCE: u32 = 1048576u32; +pub const FAILURE_ANALYSIS_EXCEPTION_AS_HANG: u32 = 32u32; +pub const FAILURE_ANALYSIS_HEAP_CORRUPTION_BLAME_FUNCTION: u32 = 33554432u32; +pub const FAILURE_ANALYSIS_IGNORE_BREAKIN: u32 = 8u32; +pub const FAILURE_ANALYSIS_LIVE_DEBUG_HOLD_CHECK: u32 = 2097152u32; +pub const FAILURE_ANALYSIS_MODULE_INFO_XML: u32 = 4096u32; +pub const FAILURE_ANALYSIS_MULTI_TARGET: u32 = 131072u32; +pub const FAILURE_ANALYSIS_NO_DB_LOOKUP: u32 = 1u32; +pub const FAILURE_ANALYSIS_NO_IMAGE_CORRUPTION: u32 = 8192u32; +pub const FAILURE_ANALYSIS_PERMIT_HEAP_ACCESS_VIOLATIONS: u32 = 67108864u32; +pub const FAILURE_ANALYSIS_REGISTRY_DATA: u32 = 512u32; +pub const FAILURE_ANALYSIS_SET_FAILURE_CONTEXT: u32 = 16u32; +pub const FAILURE_ANALYSIS_SHOW_SOURCE: u32 = 262144u32; +pub const FAILURE_ANALYSIS_SHOW_WCT_STACKS: u32 = 524288u32; +pub const FAILURE_ANALYSIS_USER_ATTRIBUTES: u32 = 2048u32; +pub const FAILURE_ANALYSIS_USER_ATTRIBUTES_ALL: u32 = 32768u32; +pub const FAILURE_ANALYSIS_USER_ATTRIBUTES_FRAMES: u32 = 65536u32; +pub const FAILURE_ANALYSIS_VERBOSE: u32 = 2u32; +pub const FAILURE_ANALYSIS_WMI_QUERY_DATA: u32 = 1024u32; +pub const FAILURE_ANALYSIS_XML_FILE_OUTPUT: u32 = 4194304u32; +pub const FAILURE_ANALYSIS_XML_OUTPUT: u32 = 128u32; +pub const FAILURE_ANALYSIS_XSD_VERIFY: u32 = 8388608u32; +pub const FAILURE_ANALYSIS_XSLT_FILE_INPUT: u32 = 268435456u32; +pub const FAILURE_ANALYSIS_XSLT_FILE_OUTPUT: u32 = 536870912u32; +pub const FA_PLUGIN_INITIALIZATION: FA_EXTENSION_PLUGIN_PHASE = 1i32; +pub const FA_PLUGIN_POST_BUCKETING: FA_EXTENSION_PLUGIN_PHASE = 8i32; +pub const FA_PLUGIN_PRE_BUCKETING: FA_EXTENSION_PLUGIN_PHASE = 4i32; +pub const FA_PLUGIN_STACK_ANALYSIS: FA_EXTENSION_PLUGIN_PHASE = 2i32; +pub const FIELDS_DID_NOT_MATCH: u32 = 4u32; +pub const FormatBSTRString: PreferredFormat = 8i32; +pub const FormatEnumNameOnly: PreferredFormat = 12i32; +pub const FormatEscapedStringWithQuote: PreferredFormat = 13i32; +pub const FormatHString: PreferredFormat = 10i32; +pub const FormatNone: PreferredFormat = 0i32; +pub const FormatQuotedHString: PreferredFormat = 9i32; +pub const FormatQuotedString: PreferredFormat = 2i32; +pub const FormatQuotedUTF32String: PreferredFormat = 15i32; +pub const FormatQuotedUTF8String: PreferredFormat = 6i32; +pub const FormatQuotedUnicodeString: PreferredFormat = 4i32; +pub const FormatRaw: PreferredFormat = 11i32; +pub const FormatSingleCharacter: PreferredFormat = 1i32; +pub const FormatString: PreferredFormat = 3i32; +pub const FormatUTF32String: PreferredFormat = 14i32; +pub const FormatUTF8String: PreferredFormat = 7i32; +pub const FormatUnicodeString: PreferredFormat = 5i32; +pub const IG_DISASSEMBLE_BUFFER: u32 = 44u32; +pub const IG_DUMP_SYMBOL_INFO: u32 = 22u32; +pub const IG_FIND_FILE: u32 = 40u32; +pub const IG_GET_ANY_MODULE_IN_RANGE: u32 = 45u32; +pub const IG_GET_BUS_DATA: u32 = 20u32; +pub const IG_GET_CACHE_SIZE: u32 = 32u32; +pub const IG_GET_CLR_DATA_INTERFACE: u32 = 38u32; +pub const IG_GET_CONTEXT_EX: u32 = 48u32; +pub const IG_GET_CURRENT_PROCESS: u32 = 26u32; +pub const IG_GET_CURRENT_PROCESS_HANDLE: u32 = 28u32; +pub const IG_GET_CURRENT_THREAD: u32 = 25u32; +pub const IG_GET_DEBUGGER_DATA: u32 = 14u32; +pub const IG_GET_EXCEPTION_RECORD: u32 = 18u32; +pub const IG_GET_EXPRESSION_EX: u32 = 30u32; +pub const IG_GET_INPUT_LINE: u32 = 29u32; +pub const IG_GET_KERNEL_VERSION: u32 = 15u32; +pub const IG_GET_PEB_ADDRESS: u32 = 129u32; +pub const IG_GET_SET_SYMPATH: u32 = 17u32; +pub const IG_GET_TEB_ADDRESS: u32 = 128u32; +pub const IG_GET_THREAD_OS_INFO: u32 = 37u32; +pub const IG_GET_TYPE_SIZE: u32 = 27u32; +pub const IG_IS_PTR64: u32 = 19u32; +pub const IG_KD_CONTEXT: u32 = 1u32; +pub const IG_KSTACK_HELP: u32 = 10u32; +pub const IG_LOWMEM_CHECK: u32 = 23u32; +pub const IG_MATCH_PATTERN_A: u32 = 39u32; +pub const IG_OBSOLETE_PLACEHOLDER_36: u32 = 36u32; +pub const IG_PHYSICAL_TO_VIRTUAL: u32 = 47u32; +pub const IG_POINTER_SEARCH_PHYSICAL: u32 = 35u32; +pub const IG_QUERY_TARGET_INTERFACE: u32 = 42u32; +pub const IG_READ_CONTROL_SPACE: u32 = 2u32; +pub const IG_READ_IO_SPACE: u32 = 4u32; +pub const IG_READ_IO_SPACE_EX: u32 = 8u32; +pub const IG_READ_MSR: u32 = 12u32; +pub const IG_READ_PHYSICAL: u32 = 6u32; +pub const IG_READ_PHYSICAL_WITH_FLAGS: u32 = 33u32; +pub const IG_RELOAD_SYMBOLS: u32 = 16u32; +pub const IG_SEARCH_MEMORY: u32 = 24u32; +pub const IG_SET_BUS_DATA: u32 = 21u32; +pub const IG_SET_THREAD: u32 = 11u32; +pub const IG_TRANSLATE_VIRTUAL_TO_PHYSICAL: u32 = 31u32; +pub const IG_TYPED_DATA: u32 = 43u32; +pub const IG_TYPED_DATA_OBSOLETE: u32 = 41u32; +pub const IG_VIRTUAL_TO_PHYSICAL: u32 = 46u32; +pub const IG_WRITE_CONTROL_SPACE: u32 = 3u32; +pub const IG_WRITE_IO_SPACE: u32 = 5u32; +pub const IG_WRITE_IO_SPACE_EX: u32 = 9u32; +pub const IG_WRITE_MSR: u32 = 13u32; +pub const IG_WRITE_PHYSICAL: u32 = 7u32; +pub const IG_WRITE_PHYSICAL_WITH_FLAGS: u32 = 34u32; +pub const INCORRECT_VERSION_INFO: u32 = 7u32; +pub const INSUFFICIENT_SPACE_TO_COPY: u32 = 10u32; +pub const Identical: SignatureComparison = 4i32; +pub const IntrinsicBool: IntrinsicKind = 1i32; +pub const IntrinsicChar: IntrinsicKind = 2i32; +pub const IntrinsicChar16: IntrinsicKind = 10i32; +pub const IntrinsicChar32: IntrinsicKind = 11i32; +pub const IntrinsicFloat: IntrinsicKind = 8i32; +pub const IntrinsicHRESULT: IntrinsicKind = 9i32; +pub const IntrinsicInt: IntrinsicKind = 4i32; +pub const IntrinsicLong: IntrinsicKind = 6i32; +pub const IntrinsicUInt: IntrinsicKind = 5i32; +pub const IntrinsicULong: IntrinsicKind = 7i32; +pub const IntrinsicVoid: IntrinsicKind = 0i32; +pub const IntrinsicWChar: IntrinsicKind = 3i32; +pub const KDEXTS_LOCK_CALLBACKROUTINE_DEFINED: u32 = 2u32; +pub const KD_SECONDARY_VERSION_AMD64_CONTEXT: u32 = 2u32; +pub const KD_SECONDARY_VERSION_AMD64_OBSOLETE_CONTEXT_1: u32 = 0u32; +pub const KD_SECONDARY_VERSION_AMD64_OBSOLETE_CONTEXT_2: u32 = 1u32; +pub const KD_SECONDARY_VERSION_DEFAULT: u32 = 0u32; +pub const LanguageAssembly: LanguageKind = 3i32; +pub const LanguageC: LanguageKind = 1i32; +pub const LanguageCPP: LanguageKind = 2i32; +pub const LanguageUnknown: LanguageKind = 0i32; +pub const LessSpecific: SignatureComparison = 2i32; +pub const LocationConstant: LocationKind = 2i32; +pub const LocationMember: LocationKind = 0i32; +pub const LocationNone: LocationKind = 3i32; +pub const LocationStatic: LocationKind = 1i32; +pub const MAX_STACK_IN_BYTES: u32 = 4096u32; +pub const MEMORY_READ_ERROR: u32 = 1u32; +pub const MODULE_ORDERS_LOADTIME: u32 = 268435456u32; +pub const MODULE_ORDERS_MASK: u32 = 4026531840u32; +pub const MODULE_ORDERS_MODULENAME: u32 = 536870912u32; +pub const MoreSpecific: SignatureComparison = 3i32; +pub const NO_TYPE: TANALYZE_RETURN = 0i32; +pub const NT_STATUS_CODE: TANALYZE_RETURN = 5i32; +pub const NULL_FIELD_NAME: u32 = 6u32; +pub const NULL_SYM_DUMP_PARAM: u32 = 5u32; +pub const ObjectContext: ModelObjectKind = 1i32; +pub const ObjectError: ModelObjectKind = 6i32; +pub const ObjectIntrinsic: ModelObjectKind = 7i32; +pub const ObjectKeyReference: ModelObjectKind = 9i32; +pub const ObjectMethod: ModelObjectKind = 8i32; +pub const ObjectNoValue: ModelObjectKind = 5i32; +pub const ObjectPropertyAccessor: ModelObjectKind = 0i32; +pub const ObjectSynthetic: ModelObjectKind = 4i32; +pub const ObjectTargetObject: ModelObjectKind = 2i32; +pub const ObjectTargetObjectReference: ModelObjectKind = 3i32; +pub const PHYS_FLAG_CACHED: u32 = 1u32; +pub const PHYS_FLAG_DEFAULT: u32 = 0u32; +pub const PHYS_FLAG_UNCACHED: u32 = 2u32; +pub const PHYS_FLAG_WRITE_COMBINED: u32 = 3u32; +pub const PROCESS_END: TANALYZE_RETURN = 1i32; +pub const PTR_SEARCH_NO_SYMBOL_CHECK: u32 = 2147483648u32; +pub const PTR_SEARCH_PHYS_ALL_HITS: u32 = 1u32; +pub const PTR_SEARCH_PHYS_PTE: u32 = 2u32; +pub const PTR_SEARCH_PHYS_RANGE_CHECK_ONLY: u32 = 4u32; +pub const PTR_SEARCH_PHYS_SIZE_SHIFT: u32 = 3u32; +pub const PointerCXHat: PointerKind = 3i32; +pub const PointerManagedReference: PointerKind = 4i32; +pub const PointerRValueReference: PointerKind = 2i32; +pub const PointerReference: PointerKind = 1i32; +pub const PointerStandard: PointerKind = 0i32; +pub const RawSearchNoBases: RawSearchFlags = 1i32; +pub const RawSearchNone: RawSearchFlags = 0i32; +pub const STACK_FRAME_TYPE_IGNORE: u32 = 255u32; +pub const STACK_FRAME_TYPE_INIT: u32 = 0u32; +pub const STACK_FRAME_TYPE_INLINE: u32 = 2u32; +pub const STACK_FRAME_TYPE_RA: u32 = 128u32; +pub const STACK_FRAME_TYPE_STACK: u32 = 1u32; +pub const SYMBOL_TYPE_INDEX_NOT_FOUND: u32 = 2u32; +pub const SYMBOL_TYPE_INFO_NOT_FOUND: u32 = 3u32; +pub const ScriptDebugAsyncBreak: ScriptDebugEvent = 3i32; +pub const ScriptDebugBreak: ScriptDebugState = 3i32; +pub const ScriptDebugBreakpoint: ScriptDebugEvent = 0i32; +pub const ScriptDebugEventFilterAbort: ScriptDebugEventFilter = 3i32; +pub const ScriptDebugEventFilterEntry: ScriptDebugEventFilter = 0i32; +pub const ScriptDebugEventFilterException: ScriptDebugEventFilter = 1i32; +pub const ScriptDebugEventFilterUnhandledException: ScriptDebugEventFilter = 2i32; +pub const ScriptDebugException: ScriptDebugEvent = 2i32; +pub const ScriptDebugExecuting: ScriptDebugState = 2i32; +pub const ScriptDebugNoDebugger: ScriptDebugState = 0i32; +pub const ScriptDebugNotExecuting: ScriptDebugState = 1i32; +pub const ScriptDebugStep: ScriptDebugEvent = 1i32; +pub const ScriptExecutionNormal: ScriptExecutionKind = 0i32; +pub const ScriptExecutionStepIn: ScriptExecutionKind = 1i32; +pub const ScriptExecutionStepOut: ScriptExecutionKind = 2i32; +pub const ScriptExecutionStepOver: ScriptExecutionKind = 3i32; +pub const ScriptRename: ScriptChangeKind = 0i32; +pub const Symbol: SymbolKind = 0i32; +pub const SymbolBaseClass: SymbolKind = 6i32; +pub const SymbolConstant: SymbolKind = 4i32; +pub const SymbolData: SymbolKind = 5i32; +pub const SymbolField: SymbolKind = 3i32; +pub const SymbolFunction: SymbolKind = 8i32; +pub const SymbolModule: SymbolKind = 1i32; +pub const SymbolPublic: SymbolKind = 7i32; +pub const SymbolSearchCaseInsensitive: SymbolSearchOptions = 2i32; +pub const SymbolSearchCompletion: SymbolSearchOptions = 1i32; +pub const SymbolSearchNone: SymbolSearchOptions = 0i32; +pub const SymbolType: SymbolKind = 2i32; +pub const TRIAGE_FOLLOWUP_DEFAULT: u32 = 2u32; +pub const TRIAGE_FOLLOWUP_FAIL: u32 = 0u32; +pub const TRIAGE_FOLLOWUP_IGNORE: u32 = 1u32; +pub const TRIAGE_FOLLOWUP_SUCCESS: u32 = 3u32; +pub const TypeArray: TypeKind = 3i32; +pub const TypeEnum: TypeKind = 6i32; +pub const TypeExtendedArray: TypeKind = 8i32; +pub const TypeFunction: TypeKind = 4i32; +pub const TypeIntrinsic: TypeKind = 7i32; +pub const TypeMemberPointer: TypeKind = 2i32; +pub const TypePointer: TypeKind = 1i32; +pub const TypeTypedef: TypeKind = 5i32; +pub const TypeUDT: TypeKind = 0i32; +pub const UNAVAILABLE_ERROR: u32 = 12u32; +pub const Unrelated: SignatureComparison = 0i32; +pub const VarArgsCStyle: VarArgsKind = 1i32; +pub const VarArgsNone: VarArgsKind = 0i32; +pub const WDBGEXTS_ADDRESS_DEFAULT: u32 = 0u32; +pub const WDBGEXTS_ADDRESS_RESERVED0: u32 = 2147483648u32; +pub const WDBGEXTS_ADDRESS_SEG16: u32 = 1u32; +pub const WDBGEXTS_ADDRESS_SEG32: u32 = 2u32; +pub const WIN_95: OS_TYPE = 0i32; +pub const WIN_98: OS_TYPE = 1i32; +pub const WIN_ME: OS_TYPE = 2i32; +pub const WIN_NT4: OS_TYPE = 3i32; +pub const WIN_NT5: OS_TYPE = 4i32; +pub const WIN_NT5_1: OS_TYPE = 5i32; +pub const WIN_NT5_2: OS_TYPE = 6i32; +pub const WIN_NT6_0: OS_TYPE = 7i32; +pub const WIN_NT6_1: OS_TYPE = 8i32; +pub const WIN_UNDEFINED: OS_TYPE = 255i32; +pub const _EXTSAPI_VER_: u32 = 10u32; +pub type CallingConventionKind = i32; +pub type DBGKD_MAJOR_TYPES = i32; +pub type DEBUG_FAILURE_TYPE = i32; +pub type DEBUG_FLR_PARAM_TYPE = i32; +pub type DEBUG_POOL_REGION = i32; +pub type EXT_TDOP = i32; +pub type ErrorClass = i32; +pub type FA_ENTRY_TYPE = i32; +pub type FA_EXTENSION_PLUGIN_PHASE = i32; +pub type IntrinsicKind = i32; +pub type LanguageKind = i32; +pub type LocationKind = i32; +pub type ModelObjectKind = i32; +pub type OS_TYPE = i32; +pub type PointerKind = i32; +pub type PreferredFormat = i32; +pub type RawSearchFlags = i32; +pub type ScriptChangeKind = i32; +pub type ScriptDebugEvent = i32; +pub type ScriptDebugEventFilter = i32; +pub type ScriptDebugState = i32; +pub type ScriptExecutionKind = i32; +pub type SignatureComparison = i32; +pub type SymbolKind = i32; +pub type SymbolSearchOptions = i32; +pub type TANALYZE_RETURN = i32; +pub type TypeKind = i32; +pub type VarArgsKind = i32; +#[repr(C)] +pub struct ArrayDimension { + pub LowerBound: i64, + pub Length: u64, + pub Stride: u64, +} +impl ::core::marker::Copy for ArrayDimension {} +impl ::core::clone::Clone for ArrayDimension { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BUSDATA { + pub BusDataType: u32, + pub BusNumber: u32, + pub SlotNumber: u32, + pub Buffer: *mut ::core::ffi::c_void, + pub Offset: u32, + pub Length: u32, +} +impl ::core::marker::Copy for BUSDATA {} +impl ::core::clone::Clone for BUSDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CKCL_DATA { + pub NextLogEvent: *mut ::core::ffi::c_void, + pub TAnalyzeString: ::windows_sys::core::PSTR, + pub TAnalyzeReturnType: TANALYZE_RETURN, +} +impl ::core::marker::Copy for CKCL_DATA {} +impl ::core::clone::Clone for CKCL_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CKCL_LISTHEAD { + pub LogEventListHead: *mut CKCL_DATA, + pub Heap: super::super::super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CKCL_LISTHEAD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CKCL_LISTHEAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CPU_INFO { + pub Type: u32, + pub NumCPUs: u32, + pub CurrentProc: u32, + pub ProcInfo: [DEBUG_PROCESSOR_IDENTIFICATION_ALL; 2048], + pub Mhz: u32, +} +impl ::core::marker::Copy for CPU_INFO {} +impl ::core::clone::Clone for CPU_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CPU_INFO_v1 { + pub Type: u32, + pub NumCPUs: u32, + pub CurrentProc: u32, + pub ProcInfo: [DEBUG_PROCESSOR_IDENTIFICATION_ALL; 32], + pub Mhz: u32, +} +impl ::core::marker::Copy for CPU_INFO_v1 {} +impl ::core::clone::Clone for CPU_INFO_v1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CPU_INFO_v2 { + pub Type: u32, + pub NumCPUs: u32, + pub CurrentProc: u32, + pub ProcInfo: [DEBUG_PROCESSOR_IDENTIFICATION_ALL; 1280], + pub Mhz: u32, +} +impl ::core::marker::Copy for CPU_INFO_v2 {} +impl ::core::clone::Clone for CPU_INFO_v2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct DBGKD_DEBUG_DATA_HEADER32 { + pub List: super::super::super::Kernel::LIST_ENTRY32, + pub OwnerTag: u32, + pub Size: u32, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for DBGKD_DEBUG_DATA_HEADER32 {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for DBGKD_DEBUG_DATA_HEADER32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct DBGKD_DEBUG_DATA_HEADER64 { + pub List: super::super::super::Kernel::LIST_ENTRY64, + pub OwnerTag: u32, + pub Size: u32, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for DBGKD_DEBUG_DATA_HEADER64 {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for DBGKD_DEBUG_DATA_HEADER64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DBGKD_GET_VERSION32 { + pub MajorVersion: u16, + pub MinorVersion: u16, + pub ProtocolVersion: u16, + pub Flags: u16, + pub KernBase: u32, + pub PsLoadedModuleList: u32, + pub MachineType: u16, + pub ThCallbackStack: u16, + pub NextCallback: u16, + pub FramePointer: u16, + pub KiCallUserMode: u32, + pub KeUserCallbackDispatcher: u32, + pub BreakpointWithStatus: u32, + pub DebuggerDataList: u32, +} +impl ::core::marker::Copy for DBGKD_GET_VERSION32 {} +impl ::core::clone::Clone for DBGKD_GET_VERSION32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DBGKD_GET_VERSION64 { + pub MajorVersion: u16, + pub MinorVersion: u16, + pub ProtocolVersion: u8, + pub KdSecondaryVersion: u8, + pub Flags: u16, + pub MachineType: u16, + pub MaxPacketType: u8, + pub MaxStateChange: u8, + pub MaxManipulate: u8, + pub Simulation: u8, + pub Unused: [u16; 1], + pub KernBase: u64, + pub PsLoadedModuleList: u64, + pub DebuggerDataList: u64, +} +impl ::core::marker::Copy for DBGKD_GET_VERSION64 {} +impl ::core::clone::Clone for DBGKD_GET_VERSION64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DBG_THREAD_ATTRIBUTES { + pub ThreadIndex: u32, + pub ProcessID: u64, + pub ThreadID: u64, + pub AttributeBits: u64, + pub BoolBits: u32, + pub BlockedOnPID: u64, + pub BlockedOnTID: u64, + pub CritSecAddress: u64, + pub Timeout_msec: u32, + pub StringData: [u8; 100], + pub SymName: [u8; 100], +} +impl ::core::marker::Copy for DBG_THREAD_ATTRIBUTES {} +impl ::core::clone::Clone for DBG_THREAD_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_ANALYSIS_PROCESSOR_INFO { + pub SizeOfStruct: u32, + pub Model: u32, + pub Family: u32, + pub Stepping: u32, + pub Architecture: u32, + pub Revision: u32, + pub CurrentClockSpeed: u32, + pub CurrentVoltage: u32, + pub MaxClockSpeed: u32, + pub ProcessorType: u32, + pub DeviceID: [u8; 32], + pub Manufacturer: [u8; 64], + pub Name: [u8; 64], + pub Version: [u8; 64], + pub Description: [u8; 64], +} +impl ::core::marker::Copy for DEBUG_ANALYSIS_PROCESSOR_INFO {} +impl ::core::clone::Clone for DEBUG_ANALYSIS_PROCESSOR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_BREAKPOINT_PARAMETERS { + pub Offset: u64, + pub Id: u32, + pub BreakType: u32, + pub ProcType: u32, + pub Flags: u32, + pub DataSize: u32, + pub DataAccessType: u32, + pub PassCount: u32, + pub CurrentPassCount: u32, + pub MatchThread: u32, + pub CommandSize: u32, + pub OffsetExpressionSize: u32, +} +impl ::core::marker::Copy for DEBUG_BREAKPOINT_PARAMETERS {} +impl ::core::clone::Clone for DEBUG_BREAKPOINT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_CACHED_SYMBOL_INFO { + pub ModBase: u64, + pub Arg1: u64, + pub Arg2: u64, + pub Id: u32, + pub Arg3: u32, +} +impl ::core::marker::Copy for DEBUG_CACHED_SYMBOL_INFO {} +impl ::core::clone::Clone for DEBUG_CACHED_SYMBOL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_CLIENT_CONTEXT { + pub cbSize: u32, + pub eClient: u32, +} +impl ::core::marker::Copy for DEBUG_CLIENT_CONTEXT {} +impl ::core::clone::Clone for DEBUG_CLIENT_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_CPU_MICROCODE_VERSION { + pub SizeOfStruct: u32, + pub CachedSignature: i64, + pub InitialSignature: i64, + pub ProcessorModel: u32, + pub ProcessorFamily: u32, + pub ProcessorStepping: u32, + pub ProcessorArchRev: u32, +} +impl ::core::marker::Copy for DEBUG_CPU_MICROCODE_VERSION {} +impl ::core::clone::Clone for DEBUG_CPU_MICROCODE_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_CPU_SPEED_INFO { + pub SizeOfStruct: u32, + pub CurrentSpeed: u32, + pub RatedSpeed: u32, + pub NameString: [u16; 256], +} +impl ::core::marker::Copy for DEBUG_CPU_SPEED_INFO {} +impl ::core::clone::Clone for DEBUG_CPU_SPEED_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_CREATE_PROCESS_OPTIONS { + pub CreateFlags: u32, + pub EngCreateFlags: u32, + pub VerifierFlags: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for DEBUG_CREATE_PROCESS_OPTIONS {} +impl ::core::clone::Clone for DEBUG_CREATE_PROCESS_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_DECODE_ERROR { + pub SizeOfStruct: u32, + pub Code: u32, + pub TreatAsStatus: super::super::super::super::Foundation::BOOL, + pub Source: [u8; 64], + pub Message: [u8; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_DECODE_ERROR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_DECODE_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_DEVICE_OBJECT_INFO { + pub SizeOfStruct: u32, + pub DevObjAddress: u64, + pub ReferenceCount: u32, + pub QBusy: super::super::super::super::Foundation::BOOL, + pub DriverObject: u64, + pub CurrentIrp: u64, + pub DevExtension: u64, + pub DevObjExtension: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_DEVICE_OBJECT_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_DEVICE_OBJECT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_DRIVER_OBJECT_INFO { + pub SizeOfStruct: u32, + pub DriverSize: u32, + pub DriverObjAddress: u64, + pub DriverStart: u64, + pub DriverExtension: u64, + pub DeviceObject: u64, + pub DriverName: DEBUG_DRIVER_OBJECT_INFO_0, +} +impl ::core::marker::Copy for DEBUG_DRIVER_OBJECT_INFO {} +impl ::core::clone::Clone for DEBUG_DRIVER_OBJECT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_DRIVER_OBJECT_INFO_0 { + pub Length: u16, + pub MaximumLength: u16, + pub Buffer: u64, +} +impl ::core::marker::Copy for DEBUG_DRIVER_OBJECT_INFO_0 {} +impl ::core::clone::Clone for DEBUG_DRIVER_OBJECT_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_EVENT_CONTEXT { + pub Size: u32, + pub ProcessEngineId: u32, + pub ThreadEngineId: u32, + pub FrameEngineId: u32, +} +impl ::core::marker::Copy for DEBUG_EVENT_CONTEXT {} +impl ::core::clone::Clone for DEBUG_EVENT_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_EXCEPTION_FILTER_PARAMETERS { + pub ExecutionOption: u32, + pub ContinueOption: u32, + pub TextSize: u32, + pub CommandSize: u32, + pub SecondCommandSize: u32, + pub ExceptionCode: u32, +} +impl ::core::marker::Copy for DEBUG_EXCEPTION_FILTER_PARAMETERS {} +impl ::core::clone::Clone for DEBUG_EXCEPTION_FILTER_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_GET_TEXT_COMPLETIONS_IN { + pub Flags: u32, + pub MatchCountLimit: u32, + pub Reserved: [u64; 3], +} +impl ::core::marker::Copy for DEBUG_GET_TEXT_COMPLETIONS_IN {} +impl ::core::clone::Clone for DEBUG_GET_TEXT_COMPLETIONS_IN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_GET_TEXT_COMPLETIONS_OUT { + pub Flags: u32, + pub ReplaceIndex: u32, + pub MatchCount: u32, + pub Reserved1: u32, + pub Reserved2: [u64; 2], +} +impl ::core::marker::Copy for DEBUG_GET_TEXT_COMPLETIONS_OUT {} +impl ::core::clone::Clone for DEBUG_GET_TEXT_COMPLETIONS_OUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_HANDLE_DATA_BASIC { + pub TypeNameSize: u32, + pub ObjectNameSize: u32, + pub Attributes: u32, + pub GrantedAccess: u32, + pub HandleCount: u32, + pub PointerCount: u32, +} +impl ::core::marker::Copy for DEBUG_HANDLE_DATA_BASIC {} +impl ::core::clone::Clone for DEBUG_HANDLE_DATA_BASIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_IRP_INFO { + pub SizeOfStruct: u32, + pub IrpAddress: u64, + pub IoStatus: u32, + pub StackCount: u32, + pub CurrentLocation: u32, + pub MdlAddress: u64, + pub Thread: u64, + pub CancelRoutine: u64, + pub CurrentStack: DEBUG_IRP_STACK_INFO, + pub Stack: [DEBUG_IRP_STACK_INFO; 10], +} +impl ::core::marker::Copy for DEBUG_IRP_INFO {} +impl ::core::clone::Clone for DEBUG_IRP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_IRP_STACK_INFO { + pub Major: u8, + pub Minor: u8, + pub DeviceObject: u64, + pub FileObject: u64, + pub CompletionRoutine: u64, + pub StackAddress: u64, +} +impl ::core::marker::Copy for DEBUG_IRP_STACK_INFO {} +impl ::core::clone::Clone for DEBUG_IRP_STACK_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_LAST_EVENT_INFO_BREAKPOINT { + pub Id: u32, +} +impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_BREAKPOINT {} +impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_BREAKPOINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_LAST_EVENT_INFO_EXCEPTION { + pub ExceptionRecord: super::EXCEPTION_RECORD64, + pub FirstChance: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_EXCEPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_EXCEPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_LAST_EVENT_INFO_EXIT_PROCESS { + pub ExitCode: u32, +} +impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {} +impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_LAST_EVENT_INFO_EXIT_THREAD { + pub ExitCode: u32, +} +impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {} +impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_EXIT_THREAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_LAST_EVENT_INFO_LOAD_MODULE { + pub Base: u64, +} +impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {} +impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_LOAD_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION { + pub Kind: u32, + pub DataSize: u32, + pub Address: u64, +} +impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {} +impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR { + pub Error: u32, + pub Level: u32, +} +impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {} +impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE { + pub Base: u64, +} +impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {} +impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_MODULE_AND_ID { + pub ModuleBase: u64, + pub Id: u64, +} +impl ::core::marker::Copy for DEBUG_MODULE_AND_ID {} +impl ::core::clone::Clone for DEBUG_MODULE_AND_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_MODULE_PARAMETERS { + pub Base: u64, + pub Size: u32, + pub TimeDateStamp: u32, + pub Checksum: u32, + pub Flags: u32, + pub SymbolType: u32, + pub ImageNameSize: u32, + pub ModuleNameSize: u32, + pub LoadedImageNameSize: u32, + pub SymbolFileNameSize: u32, + pub MappedImageNameSize: u32, + pub Reserved: [u64; 2], +} +impl ::core::marker::Copy for DEBUG_MODULE_PARAMETERS {} +impl ::core::clone::Clone for DEBUG_MODULE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_OFFSET_REGION { + pub Base: u64, + pub Size: u64, +} +impl ::core::marker::Copy for DEBUG_OFFSET_REGION {} +impl ::core::clone::Clone for DEBUG_OFFSET_REGION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_PNP_TRIAGE_INFO { + pub SizeOfStruct: u32, + pub Lock_Address: u64, + pub Lock_ActiveCount: i32, + pub Lock_ContentionCount: u32, + pub Lock_NumberOfExclusiveWaiters: u32, + pub Lock_NumberOfSharedWaiters: u32, + pub Lock_Flag: u16, + pub TriagedThread: u64, + pub ThreadCount: i32, + pub TriagedThread_WaitTime: u64, +} +impl ::core::marker::Copy for DEBUG_PNP_TRIAGE_INFO {} +impl ::core::clone::Clone for DEBUG_PNP_TRIAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_POOLTAG_DESCRIPTION { + pub SizeOfStruct: u32, + pub PoolTag: u32, + pub Description: [u8; 260], + pub Binary: [u8; 32], + pub Owner: [u8; 32], +} +impl ::core::marker::Copy for DEBUG_POOLTAG_DESCRIPTION {} +impl ::core::clone::Clone for DEBUG_POOLTAG_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_POOL_DATA { + pub SizeofStruct: u32, + pub PoolBlock: u64, + pub Pool: u64, + pub PreviousSize: u32, + pub Size: u32, + pub PoolTag: u32, + pub ProcessBilled: u64, + pub Anonymous: DEBUG_POOL_DATA_0, + pub Reserved2: [u64; 4], + pub PoolTagDescription: [u8; 64], +} +impl ::core::marker::Copy for DEBUG_POOL_DATA {} +impl ::core::clone::Clone for DEBUG_POOL_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DEBUG_POOL_DATA_0 { + pub Anonymous: DEBUG_POOL_DATA_0_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for DEBUG_POOL_DATA_0 {} +impl ::core::clone::Clone for DEBUG_POOL_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_POOL_DATA_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DEBUG_POOL_DATA_0_0 {} +impl ::core::clone::Clone for DEBUG_POOL_DATA_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DEBUG_PROCESSOR_IDENTIFICATION_ALL { + pub Alpha: DEBUG_PROCESSOR_IDENTIFICATION_ALPHA, + pub Amd64: DEBUG_PROCESSOR_IDENTIFICATION_AMD64, + pub Ia64: DEBUG_PROCESSOR_IDENTIFICATION_IA64, + pub X86: DEBUG_PROCESSOR_IDENTIFICATION_X86, + pub Arm: DEBUG_PROCESSOR_IDENTIFICATION_ARM, + pub Arm64: DEBUG_PROCESSOR_IDENTIFICATION_ARM64, +} +impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_ALL {} +impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_ALL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_PROCESSOR_IDENTIFICATION_ALPHA { + pub Type: u32, + pub Revision: u32, +} +impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {} +impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_PROCESSOR_IDENTIFICATION_AMD64 { + pub Family: u32, + pub Model: u32, + pub Stepping: u32, + pub VendorString: [u8; 16], +} +impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {} +impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_PROCESSOR_IDENTIFICATION_ARM { + pub Model: u32, + pub Revision: u32, + pub VendorString: [u8; 16], +} +impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_ARM {} +impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_ARM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_PROCESSOR_IDENTIFICATION_ARM64 { + pub Model: u32, + pub Revision: u32, + pub VendorString: [u8; 16], +} +impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {} +impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_PROCESSOR_IDENTIFICATION_IA64 { + pub Model: u32, + pub Revision: u32, + pub Family: u32, + pub ArchRev: u32, + pub VendorString: [u8; 16], +} +impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {} +impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_IA64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_PROCESSOR_IDENTIFICATION_X86 { + pub Family: u32, + pub Model: u32, + pub Stepping: u32, + pub VendorString: [u8; 16], +} +impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_X86 {} +impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_X86 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_READ_USER_MINIDUMP_STREAM { + pub StreamType: u32, + pub Flags: u32, + pub Offset: u64, + pub Buffer: *mut ::core::ffi::c_void, + pub BufferSize: u32, + pub BufferUsed: u32, +} +impl ::core::marker::Copy for DEBUG_READ_USER_MINIDUMP_STREAM {} +impl ::core::clone::Clone for DEBUG_READ_USER_MINIDUMP_STREAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_REGISTER_DESCRIPTION { + pub Type: u32, + pub Flags: u32, + pub SubregMaster: u32, + pub SubregLength: u32, + pub SubregMask: u64, + pub SubregShift: u32, + pub Reserved0: u32, +} +impl ::core::marker::Copy for DEBUG_REGISTER_DESCRIPTION {} +impl ::core::clone::Clone for DEBUG_REGISTER_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_SMBIOS_INFO { + pub SizeOfStruct: u32, + pub SmbiosMajorVersion: u8, + pub SmbiosMinorVersion: u8, + pub DMIVersion: u8, + pub TableSize: u32, + pub BiosMajorRelease: u8, + pub BiosMinorRelease: u8, + pub FirmwareMajorRelease: u8, + pub FirmwareMinorRelease: u8, + pub BaseBoardManufacturer: [u8; 64], + pub BaseBoardProduct: [u8; 64], + pub BaseBoardVersion: [u8; 64], + pub BiosReleaseDate: [u8; 64], + pub BiosVendor: [u8; 64], + pub BiosVersion: [u8; 64], + pub SystemFamily: [u8; 64], + pub SystemManufacturer: [u8; 64], + pub SystemProductName: [u8; 64], + pub SystemSKU: [u8; 64], + pub SystemVersion: [u8; 64], +} +impl ::core::marker::Copy for DEBUG_SMBIOS_INFO {} +impl ::core::clone::Clone for DEBUG_SMBIOS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_SPECIFIC_FILTER_PARAMETERS { + pub ExecutionOption: u32, + pub ContinueOption: u32, + pub TextSize: u32, + pub CommandSize: u32, + pub ArgumentSize: u32, +} +impl ::core::marker::Copy for DEBUG_SPECIFIC_FILTER_PARAMETERS {} +impl ::core::clone::Clone for DEBUG_SPECIFIC_FILTER_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_STACK_FRAME { + pub InstructionOffset: u64, + pub ReturnOffset: u64, + pub FrameOffset: u64, + pub StackOffset: u64, + pub FuncTableEntry: u64, + pub Params: [u64; 4], + pub Reserved: [u64; 6], + pub Virtual: super::super::super::super::Foundation::BOOL, + pub FrameNumber: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_STACK_FRAME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_STACK_FRAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_STACK_FRAME_EX { + pub InstructionOffset: u64, + pub ReturnOffset: u64, + pub FrameOffset: u64, + pub StackOffset: u64, + pub FuncTableEntry: u64, + pub Params: [u64; 4], + pub Reserved: [u64; 6], + pub Virtual: super::super::super::super::Foundation::BOOL, + pub FrameNumber: u32, + pub InlineFrameContext: u32, + pub Reserved1: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_STACK_FRAME_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_STACK_FRAME_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_SYMBOL_ENTRY { + pub ModuleBase: u64, + pub Offset: u64, + pub Id: u64, + pub Arg64: u64, + pub Size: u32, + pub Flags: u32, + pub TypeId: u32, + pub NameSize: u32, + pub Token: u32, + pub Tag: u32, + pub Arg32: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for DEBUG_SYMBOL_ENTRY {} +impl ::core::clone::Clone for DEBUG_SYMBOL_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_SYMBOL_PARAMETERS { + pub Module: u64, + pub TypeId: u32, + pub ParentSymbol: u32, + pub SubElements: u32, + pub Flags: u32, + pub Reserved: u64, +} +impl ::core::marker::Copy for DEBUG_SYMBOL_PARAMETERS {} +impl ::core::clone::Clone for DEBUG_SYMBOL_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_SYMBOL_SOURCE_ENTRY { + pub ModuleBase: u64, + pub Offset: u64, + pub FileNameId: u64, + pub EngineInternal: u64, + pub Size: u32, + pub Flags: u32, + pub FileNameSize: u32, + pub StartLine: u32, + pub EndLine: u32, + pub StartColumn: u32, + pub EndColumn: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for DEBUG_SYMBOL_SOURCE_ENTRY {} +impl ::core::clone::Clone for DEBUG_SYMBOL_SOURCE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_THREAD_BASIC_INFORMATION { + pub Valid: u32, + pub ExitStatus: u32, + pub PriorityClass: u32, + pub Priority: u32, + pub CreateTime: u64, + pub ExitTime: u64, + pub KernelTime: u64, + pub UserTime: u64, + pub StartOffset: u64, + pub Affinity: u64, +} +impl ::core::marker::Copy for DEBUG_THREAD_BASIC_INFORMATION {} +impl ::core::clone::Clone for DEBUG_THREAD_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_TRIAGE_FOLLOWUP_INFO { + pub SizeOfStruct: u32, + pub OwnerNameSize: u32, + pub OwnerName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DEBUG_TRIAGE_FOLLOWUP_INFO {} +impl ::core::clone::Clone for DEBUG_TRIAGE_FOLLOWUP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_TRIAGE_FOLLOWUP_INFO_2 { + pub SizeOfStruct: u32, + pub OwnerNameSize: u32, + pub OwnerName: ::windows_sys::core::PSTR, + pub FeaturePathSize: u32, + pub FeaturePath: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for DEBUG_TRIAGE_FOLLOWUP_INFO_2 {} +impl ::core::clone::Clone for DEBUG_TRIAGE_FOLLOWUP_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEBUG_TYPED_DATA { + pub ModBase: u64, + pub Offset: u64, + pub EngineHandle: u64, + pub Data: u64, + pub Size: u32, + pub Flags: u32, + pub TypeId: u32, + pub BaseTypeId: u32, + pub Tag: u32, + pub Register: u32, + pub Internal: [u64; 9], +} +impl ::core::marker::Copy for DEBUG_TYPED_DATA {} +impl ::core::clone::Clone for DEBUG_TYPED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_VALUE { + pub Anonymous: DEBUG_VALUE_0, + pub TailOfRawBytes: u32, + pub Type: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_VALUE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DEBUG_VALUE_0 { + pub I8: u8, + pub I16: u16, + pub I32: u32, + pub Anonymous: DEBUG_VALUE_0_0, + pub F32: f32, + pub F64: f64, + pub F80Bytes: [u8; 10], + pub F82Bytes: [u8; 11], + pub F128Bytes: [u8; 16], + pub VI8: [u8; 16], + pub VI16: [u16; 8], + pub VI32: [u32; 4], + pub VI64: [u64; 2], + pub VF32: [f32; 4], + pub VF64: [f64; 2], + pub I64Parts32: DEBUG_VALUE_0_2, + pub F128Parts64: DEBUG_VALUE_0_1, + pub RawBytes: [u8; 24], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_VALUE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_VALUE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_VALUE_0_0 { + pub I64: u64, + pub Nat: super::super::super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_VALUE_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_VALUE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_VALUE_0_1 { + pub LowPart: u64, + pub HighPart: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_VALUE_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_VALUE_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUG_VALUE_0_2 { + pub LowPart: u32, + pub HighPart: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUG_VALUE_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUG_VALUE_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXTSTACKTRACE { + pub FramePointer: u32, + pub ProgramCounter: u32, + pub ReturnAddress: u32, + pub Args: [u32; 4], +} +impl ::core::marker::Copy for EXTSTACKTRACE {} +impl ::core::clone::Clone for EXTSTACKTRACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXTSTACKTRACE32 { + pub FramePointer: u32, + pub ProgramCounter: u32, + pub ReturnAddress: u32, + pub Args: [u32; 4], +} +impl ::core::marker::Copy for EXTSTACKTRACE32 {} +impl ::core::clone::Clone for EXTSTACKTRACE32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXTSTACKTRACE64 { + pub FramePointer: u64, + pub ProgramCounter: u64, + pub ReturnAddress: u64, + pub Args: [u64; 4], +} +impl ::core::marker::Copy for EXTSTACKTRACE64 {} +impl ::core::clone::Clone for EXTSTACKTRACE64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXT_API_VERSION { + pub MajorVersion: u16, + pub MinorVersion: u16, + pub Revision: u16, + pub Reserved: u16, +} +impl ::core::marker::Copy for EXT_API_VERSION {} +impl ::core::clone::Clone for EXT_API_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXT_CAB_XML_DATA { + pub SizeOfStruct: u32, + pub XmlObjectTag: ::windows_sys::core::PCWSTR, + pub NumSubTags: u32, + pub SubTags: [EXT_CAB_XML_DATA_0; 1], +} +impl ::core::marker::Copy for EXT_CAB_XML_DATA {} +impl ::core::clone::Clone for EXT_CAB_XML_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXT_CAB_XML_DATA_0 { + pub SubTag: ::windows_sys::core::PCWSTR, + pub MatchPattern: ::windows_sys::core::PCWSTR, + pub ReturnText: ::windows_sys::core::PWSTR, + pub ReturnTextSize: u32, + pub _bitfield: u32, + pub Reserved2: u32, +} +impl ::core::marker::Copy for EXT_CAB_XML_DATA_0 {} +impl ::core::clone::Clone for EXT_CAB_XML_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EXT_FIND_FILE { + pub FileName: ::windows_sys::core::PCWSTR, + pub IndexedSize: u64, + pub ImageTimeDateStamp: u32, + pub ImageCheckSum: u32, + pub ExtraInfo: *mut ::core::ffi::c_void, + pub ExtraInfoSize: u32, + pub Flags: u32, + pub FileMapping: *mut ::core::ffi::c_void, + pub FileMappingSize: u64, + pub FileHandle: super::super::super::super::Foundation::HANDLE, + pub FoundFileName: ::windows_sys::core::PWSTR, + pub FoundFileNameChars: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EXT_FIND_FILE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EXT_FIND_FILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXT_MATCH_PATTERN_A { + pub Str: ::windows_sys::core::PCSTR, + pub Pattern: ::windows_sys::core::PCSTR, + pub CaseSensitive: u32, +} +impl ::core::marker::Copy for EXT_MATCH_PATTERN_A {} +impl ::core::clone::Clone for EXT_MATCH_PATTERN_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXT_TYPED_DATA { + pub Operation: EXT_TDOP, + pub Flags: u32, + pub InData: DEBUG_TYPED_DATA, + pub OutData: DEBUG_TYPED_DATA, + pub InStrIndex: u32, + pub In32: u32, + pub Out32: u32, + pub In64: u64, + pub Out64: u64, + pub StrBufferIndex: u32, + pub StrBufferChars: u32, + pub StrCharsNeeded: u32, + pub DataBufferIndex: u32, + pub DataBufferBytes: u32, + pub DataBytesNeeded: u32, + pub Status: ::windows_sys::core::HRESULT, + pub Reserved: [u64; 8], +} +impl ::core::marker::Copy for EXT_TYPED_DATA {} +impl ::core::clone::Clone for EXT_TYPED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FA_ENTRY { + pub Tag: DEBUG_FLR_PARAM_TYPE, + pub FullSize: u16, + pub DataSize: u16, +} +impl ::core::marker::Copy for FA_ENTRY {} +impl ::core::clone::Clone for FA_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FIELD_INFO { + pub fName: *mut u8, + pub printName: *mut u8, + pub size: u32, + pub fOptions: u32, + pub address: u64, + pub Anonymous: FIELD_INFO_0, + pub TypeId: u32, + pub FieldOffset: u32, + pub BufferSize: u32, + pub BitField: FIELD_INFO_1, + pub _bitfield: u32, +} +impl ::core::marker::Copy for FIELD_INFO {} +impl ::core::clone::Clone for FIELD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FIELD_INFO_0 { + pub fieldCallBack: *mut ::core::ffi::c_void, + pub pBuffer: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for FIELD_INFO_0 {} +impl ::core::clone::Clone for FIELD_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FIELD_INFO_1 { + pub Position: u16, + pub Size: u16, +} +impl ::core::marker::Copy for FIELD_INFO_1 {} +impl ::core::clone::Clone for FIELD_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_CONTEXT_EX { + pub Status: u32, + pub ContextSize: u32, + pub pContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for GET_CONTEXT_EX {} +impl ::core::clone::Clone for GET_CONTEXT_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_CURRENT_PROCESS_ADDRESS { + pub Processor: u32, + pub CurrentThread: u64, + pub Address: u64, +} +impl ::core::marker::Copy for GET_CURRENT_PROCESS_ADDRESS {} +impl ::core::clone::Clone for GET_CURRENT_PROCESS_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_CURRENT_THREAD_ADDRESS { + pub Processor: u32, + pub Address: u64, +} +impl ::core::marker::Copy for GET_CURRENT_THREAD_ADDRESS {} +impl ::core::clone::Clone for GET_CURRENT_THREAD_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_EXPRESSION_EX { + pub Expression: ::windows_sys::core::PCSTR, + pub Remainder: ::windows_sys::core::PCSTR, + pub Value: u64, +} +impl ::core::marker::Copy for GET_EXPRESSION_EX {} +impl ::core::clone::Clone for GET_EXPRESSION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_INPUT_LINE { + pub Prompt: ::windows_sys::core::PCSTR, + pub Buffer: ::windows_sys::core::PSTR, + pub BufferSize: u32, + pub InputSize: u32, +} +impl ::core::marker::Copy for GET_INPUT_LINE {} +impl ::core::clone::Clone for GET_INPUT_LINE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_PEB_ADDRESS { + pub CurrentThread: u64, + pub Address: u64, +} +impl ::core::marker::Copy for GET_PEB_ADDRESS {} +impl ::core::clone::Clone for GET_PEB_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_SET_SYMPATH { + pub Args: ::windows_sys::core::PCSTR, + pub Result: ::windows_sys::core::PSTR, + pub Length: i32, +} +impl ::core::marker::Copy for GET_SET_SYMPATH {} +impl ::core::clone::Clone for GET_SET_SYMPATH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_TEB_ADDRESS { + pub Address: u64, +} +impl ::core::marker::Copy for GET_TEB_ADDRESS {} +impl ::core::clone::Clone for GET_TEB_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union INLINE_FRAME_CONTEXT { + pub ContextValue: u32, + pub Anonymous: INLINE_FRAME_CONTEXT_0, +} +impl ::core::marker::Copy for INLINE_FRAME_CONTEXT {} +impl ::core::clone::Clone for INLINE_FRAME_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INLINE_FRAME_CONTEXT_0 { + pub FrameId: u8, + pub FrameType: u8, + pub FrameSignature: u16, +} +impl ::core::marker::Copy for INLINE_FRAME_CONTEXT_0 {} +impl ::core::clone::Clone for INLINE_FRAME_CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOSPACE { + pub Address: u32, + pub Length: u32, + pub Data: u32, +} +impl ::core::marker::Copy for IOSPACE {} +impl ::core::clone::Clone for IOSPACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOSPACE32 { + pub Address: u32, + pub Length: u32, + pub Data: u32, +} +impl ::core::marker::Copy for IOSPACE32 {} +impl ::core::clone::Clone for IOSPACE32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOSPACE64 { + pub Address: u64, + pub Length: u32, + pub Data: u32, +} +impl ::core::marker::Copy for IOSPACE64 {} +impl ::core::clone::Clone for IOSPACE64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOSPACE_EX { + pub Address: u32, + pub Length: u32, + pub Data: u32, + pub InterfaceType: u32, + pub BusNumber: u32, + pub AddressSpace: u32, +} +impl ::core::marker::Copy for IOSPACE_EX {} +impl ::core::clone::Clone for IOSPACE_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOSPACE_EX32 { + pub Address: u32, + pub Length: u32, + pub Data: u32, + pub InterfaceType: u32, + pub BusNumber: u32, + pub AddressSpace: u32, +} +impl ::core::marker::Copy for IOSPACE_EX32 {} +impl ::core::clone::Clone for IOSPACE_EX32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IOSPACE_EX64 { + pub Address: u64, + pub Length: u32, + pub Data: u32, + pub InterfaceType: u32, + pub BusNumber: u32, + pub AddressSpace: u32, +} +impl ::core::marker::Copy for IOSPACE_EX64 {} +impl ::core::clone::Clone for IOSPACE_EX64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct KDDEBUGGER_DATA32 { + pub Header: DBGKD_DEBUG_DATA_HEADER32, + pub KernBase: u32, + pub BreakpointWithStatus: u32, + pub SavedContext: u32, + pub ThCallbackStack: u16, + pub NextCallback: u16, + pub FramePointer: u16, + pub _bitfield: u16, + pub KiCallUserMode: u32, + pub KeUserCallbackDispatcher: u32, + pub PsLoadedModuleList: u32, + pub PsActiveProcessHead: u32, + pub PspCidTable: u32, + pub ExpSystemResourcesList: u32, + pub ExpPagedPoolDescriptor: u32, + pub ExpNumberOfPagedPools: u32, + pub KeTimeIncrement: u32, + pub KeBugCheckCallbackListHead: u32, + pub KiBugcheckData: u32, + pub IopErrorLogListHead: u32, + pub ObpRootDirectoryObject: u32, + pub ObpTypeObjectType: u32, + pub MmSystemCacheStart: u32, + pub MmSystemCacheEnd: u32, + pub MmSystemCacheWs: u32, + pub MmPfnDatabase: u32, + pub MmSystemPtesStart: u32, + pub MmSystemPtesEnd: u32, + pub MmSubsectionBase: u32, + pub MmNumberOfPagingFiles: u32, + pub MmLowestPhysicalPage: u32, + pub MmHighestPhysicalPage: u32, + pub MmNumberOfPhysicalPages: u32, + pub MmMaximumNonPagedPoolInBytes: u32, + pub MmNonPagedSystemStart: u32, + pub MmNonPagedPoolStart: u32, + pub MmNonPagedPoolEnd: u32, + pub MmPagedPoolStart: u32, + pub MmPagedPoolEnd: u32, + pub MmPagedPoolInformation: u32, + pub MmPageSize: u32, + pub MmSizeOfPagedPoolInBytes: u32, + pub MmTotalCommitLimit: u32, + pub MmTotalCommittedPages: u32, + pub MmSharedCommit: u32, + pub MmDriverCommit: u32, + pub MmProcessCommit: u32, + pub MmPagedPoolCommit: u32, + pub MmExtendedCommit: u32, + pub MmZeroedPageListHead: u32, + pub MmFreePageListHead: u32, + pub MmStandbyPageListHead: u32, + pub MmModifiedPageListHead: u32, + pub MmModifiedNoWritePageListHead: u32, + pub MmAvailablePages: u32, + pub MmResidentAvailablePages: u32, + pub PoolTrackTable: u32, + pub NonPagedPoolDescriptor: u32, + pub MmHighestUserAddress: u32, + pub MmSystemRangeStart: u32, + pub MmUserProbeAddress: u32, + pub KdPrintCircularBuffer: u32, + pub KdPrintCircularBufferEnd: u32, + pub KdPrintWritePointer: u32, + pub KdPrintRolloverCount: u32, + pub MmLoadedUserImageList: u32, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for KDDEBUGGER_DATA32 {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for KDDEBUGGER_DATA32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct KDDEBUGGER_DATA64 { + pub Header: DBGKD_DEBUG_DATA_HEADER64, + pub KernBase: u64, + pub BreakpointWithStatus: u64, + pub SavedContext: u64, + pub ThCallbackStack: u16, + pub NextCallback: u16, + pub FramePointer: u16, + pub _bitfield: u16, + pub KiCallUserMode: u64, + pub KeUserCallbackDispatcher: u64, + pub PsLoadedModuleList: u64, + pub PsActiveProcessHead: u64, + pub PspCidTable: u64, + pub ExpSystemResourcesList: u64, + pub ExpPagedPoolDescriptor: u64, + pub ExpNumberOfPagedPools: u64, + pub KeTimeIncrement: u64, + pub KeBugCheckCallbackListHead: u64, + pub KiBugcheckData: u64, + pub IopErrorLogListHead: u64, + pub ObpRootDirectoryObject: u64, + pub ObpTypeObjectType: u64, + pub MmSystemCacheStart: u64, + pub MmSystemCacheEnd: u64, + pub MmSystemCacheWs: u64, + pub MmPfnDatabase: u64, + pub MmSystemPtesStart: u64, + pub MmSystemPtesEnd: u64, + pub MmSubsectionBase: u64, + pub MmNumberOfPagingFiles: u64, + pub MmLowestPhysicalPage: u64, + pub MmHighestPhysicalPage: u64, + pub MmNumberOfPhysicalPages: u64, + pub MmMaximumNonPagedPoolInBytes: u64, + pub MmNonPagedSystemStart: u64, + pub MmNonPagedPoolStart: u64, + pub MmNonPagedPoolEnd: u64, + pub MmPagedPoolStart: u64, + pub MmPagedPoolEnd: u64, + pub MmPagedPoolInformation: u64, + pub MmPageSize: u64, + pub MmSizeOfPagedPoolInBytes: u64, + pub MmTotalCommitLimit: u64, + pub MmTotalCommittedPages: u64, + pub MmSharedCommit: u64, + pub MmDriverCommit: u64, + pub MmProcessCommit: u64, + pub MmPagedPoolCommit: u64, + pub MmExtendedCommit: u64, + pub MmZeroedPageListHead: u64, + pub MmFreePageListHead: u64, + pub MmStandbyPageListHead: u64, + pub MmModifiedPageListHead: u64, + pub MmModifiedNoWritePageListHead: u64, + pub MmAvailablePages: u64, + pub MmResidentAvailablePages: u64, + pub PoolTrackTable: u64, + pub NonPagedPoolDescriptor: u64, + pub MmHighestUserAddress: u64, + pub MmSystemRangeStart: u64, + pub MmUserProbeAddress: u64, + pub KdPrintCircularBuffer: u64, + pub KdPrintCircularBufferEnd: u64, + pub KdPrintWritePointer: u64, + pub KdPrintRolloverCount: u64, + pub MmLoadedUserImageList: u64, + pub NtBuildLab: u64, + pub KiNormalSystemCall: u64, + pub KiProcessorBlock: u64, + pub MmUnloadedDrivers: u64, + pub MmLastUnloadedDriver: u64, + pub MmTriageActionTaken: u64, + pub MmSpecialPoolTag: u64, + pub KernelVerifier: u64, + pub MmVerifierData: u64, + pub MmAllocatedNonPagedPool: u64, + pub MmPeakCommitment: u64, + pub MmTotalCommitLimitMaximum: u64, + pub CmNtCSDVersion: u64, + pub MmPhysicalMemoryBlock: u64, + pub MmSessionBase: u64, + pub MmSessionSize: u64, + pub MmSystemParentTablePage: u64, + pub MmVirtualTranslationBase: u64, + pub OffsetKThreadNextProcessor: u16, + pub OffsetKThreadTeb: u16, + pub OffsetKThreadKernelStack: u16, + pub OffsetKThreadInitialStack: u16, + pub OffsetKThreadApcProcess: u16, + pub OffsetKThreadState: u16, + pub OffsetKThreadBStore: u16, + pub OffsetKThreadBStoreLimit: u16, + pub SizeEProcess: u16, + pub OffsetEprocessPeb: u16, + pub OffsetEprocessParentCID: u16, + pub OffsetEprocessDirectoryTableBase: u16, + pub SizePrcb: u16, + pub OffsetPrcbDpcRoutine: u16, + pub OffsetPrcbCurrentThread: u16, + pub OffsetPrcbMhz: u16, + pub OffsetPrcbCpuType: u16, + pub OffsetPrcbVendorString: u16, + pub OffsetPrcbProcStateContext: u16, + pub OffsetPrcbNumber: u16, + pub SizeEThread: u16, + pub L1tfHighPhysicalBitIndex: u8, + pub L1tfSwizzleBitIndex: u8, + pub Padding0: u32, + pub KdPrintCircularBufferPtr: u64, + pub KdPrintBufferSize: u64, + pub KeLoaderBlock: u64, + pub SizePcr: u16, + pub OffsetPcrSelfPcr: u16, + pub OffsetPcrCurrentPrcb: u16, + pub OffsetPcrContainedPrcb: u16, + pub OffsetPcrInitialBStore: u16, + pub OffsetPcrBStoreLimit: u16, + pub OffsetPcrInitialStack: u16, + pub OffsetPcrStackLimit: u16, + pub OffsetPrcbPcrPage: u16, + pub OffsetPrcbProcStateSpecialReg: u16, + pub GdtR0Code: u16, + pub GdtR0Data: u16, + pub GdtR0Pcr: u16, + pub GdtR3Code: u16, + pub GdtR3Data: u16, + pub GdtR3Teb: u16, + pub GdtLdt: u16, + pub GdtTss: u16, + pub Gdt64R3CmCode: u16, + pub Gdt64R3CmTeb: u16, + pub IopNumTriageDumpDataBlocks: u64, + pub IopTriageDumpDataBlocks: u64, + pub VfCrashDataBlock: u64, + pub MmBadPagesDetected: u64, + pub MmZeroedPageSingleBitErrorsDetected: u64, + pub EtwpDebuggerData: u64, + pub OffsetPrcbContext: u16, + pub OffsetPrcbMaxBreakpoints: u16, + pub OffsetPrcbMaxWatchpoints: u16, + pub OffsetKThreadStackLimit: u32, + pub OffsetKThreadStackBase: u32, + pub OffsetKThreadQueueListEntry: u32, + pub OffsetEThreadIrpList: u32, + pub OffsetPrcbIdleThread: u16, + pub OffsetPrcbNormalDpcState: u16, + pub OffsetPrcbDpcStack: u16, + pub OffsetPrcbIsrStack: u16, + pub SizeKDPC_STACK_FRAME: u16, + pub OffsetKPriQueueThreadListHead: u16, + pub OffsetKThreadWaitReason: u16, + pub Padding1: u16, + pub PteBase: u64, + pub RetpolineStubFunctionTable: u64, + pub RetpolineStubFunctionTableSize: u32, + pub RetpolineStubOffset: u32, + pub RetpolineStubSize: u32, + pub OffsetEProcessMmHotPatchContext: u16, + pub OffsetKThreadShadowStackLimit: u32, + pub OffsetKThreadShadowStackBase: u32, + pub ShadowStackEnabled: u64, + pub PointerAuthMask: u64, + pub OffsetPrcbExceptionStack: u16, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for KDDEBUGGER_DATA64 {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for KDDEBUGGER_DATA64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KDEXTS_LOCK_INFO { + pub SizeOfStruct: u32, + pub Address: u64, + pub OwningThread: u64, + pub ExclusiveOwned: super::super::super::super::Foundation::BOOL, + pub NumOwners: u32, + pub ContentionCount: u32, + pub NumExclusiveWaiters: u32, + pub NumSharedWaiters: u32, + pub pOwnerThreads: *mut u64, + pub pWaiterThreads: *mut u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KDEXTS_LOCK_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KDEXTS_LOCK_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KDEXTS_PTE_INFO { + pub SizeOfStruct: u32, + pub VirtualAddress: u64, + pub PpeAddress: u64, + pub PdeAddress: u64, + pub PteAddress: u64, + pub Pfn: u64, + pub Levels: u64, + pub _bitfield1: u32, + pub _bitfield2: u32, +} +impl ::core::marker::Copy for KDEXTS_PTE_INFO {} +impl ::core::clone::Clone for KDEXTS_PTE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KDEXT_FILELOCK_OWNER { + pub Sizeofstruct: u32, + pub FileObject: u64, + pub OwnerThread: u64, + pub WaitIrp: u64, + pub DeviceObject: u64, + pub BlockingDirver: [u8; 32], +} +impl ::core::marker::Copy for KDEXT_FILELOCK_OWNER {} +impl ::core::clone::Clone for KDEXT_FILELOCK_OWNER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct KDEXT_HANDLE_INFORMATION { + pub HandleTableEntry: u64, + pub Handle: u64, + pub Object: u64, + pub ObjectBody: u64, + pub GrantedAccess: u64, + pub HandleAttributes: u32, + pub PagedOut: super::super::super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for KDEXT_HANDLE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for KDEXT_HANDLE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KDEXT_PROCESS_FIND_PARAMS { + pub SizeofStruct: u32, + pub Pid: u32, + pub Session: u32, + pub ImageName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for KDEXT_PROCESS_FIND_PARAMS {} +impl ::core::clone::Clone for KDEXT_PROCESS_FIND_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KDEXT_THREAD_FIND_PARAMS { + pub SizeofStruct: u32, + pub StackPointer: u64, + pub Cid: u32, + pub Thread: u64, +} +impl ::core::marker::Copy for KDEXT_THREAD_FIND_PARAMS {} +impl ::core::clone::Clone for KDEXT_THREAD_FIND_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct Location { + pub HostDefined: u64, + pub Offset: u64, +} +impl ::core::marker::Copy for Location {} +impl ::core::clone::Clone for Location { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OS_INFO { + pub MajorVer: u32, + pub MinorVer: u32, + pub Build: u32, + pub BuildQfe: u32, + pub ProductType: u32, + pub Suite: u32, + pub Revision: u32, + pub s: OS_INFO_0, + pub SrvPackNumber: u32, + pub ServicePackBuild: u32, + pub Architecture: u32, + pub Lcid: u32, + pub Name: [u8; 64], + pub FullName: [u8; 256], + pub Language: [u8; 30], + pub BuildVersion: [u8; 64], + pub ServicePackString: [u8; 64], +} +impl ::core::marker::Copy for OS_INFO {} +impl ::core::clone::Clone for OS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OS_INFO_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for OS_INFO_0 {} +impl ::core::clone::Clone for OS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OS_INFO_v1 { + pub Type: OS_TYPE, + pub Anonymous: OS_INFO_v1_0, + pub ProductType: u32, + pub Suite: u32, + pub s: OS_INFO_v1_1, + pub SrvPackNumber: u32, + pub Language: [u8; 30], + pub OsString: [u8; 64], + pub ServicePackString: [u8; 64], +} +impl ::core::marker::Copy for OS_INFO_v1 {} +impl ::core::clone::Clone for OS_INFO_v1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union OS_INFO_v1_0 { + pub Version: OS_INFO_v1_0_0, + pub Ver64: u64, +} +impl ::core::marker::Copy for OS_INFO_v1_0 {} +impl ::core::clone::Clone for OS_INFO_v1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OS_INFO_v1_0_0 { + pub Major: u32, + pub Minor: u32, +} +impl ::core::marker::Copy for OS_INFO_v1_0_0 {} +impl ::core::clone::Clone for OS_INFO_v1_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OS_INFO_v1_1 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for OS_INFO_v1_1 {} +impl ::core::clone::Clone for OS_INFO_v1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL { + pub Address: u64, + pub BufLen: u32, + pub Buf: [u8; 1], +} +impl ::core::marker::Copy for PHYSICAL {} +impl ::core::clone::Clone for PHYSICAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL_TO_VIRTUAL { + pub Status: u32, + pub Size: u32, + pub PdeAddress: u64, +} +impl ::core::marker::Copy for PHYSICAL_TO_VIRTUAL {} +impl ::core::clone::Clone for PHYSICAL_TO_VIRTUAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL_WITH_FLAGS { + pub Address: u64, + pub BufLen: u32, + pub Flags: u32, + pub Buf: [u8; 1], +} +impl ::core::marker::Copy for PHYSICAL_WITH_FLAGS {} +impl ::core::clone::Clone for PHYSICAL_WITH_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POINTER_SEARCH_PHYSICAL { + pub Offset: u64, + pub Length: u64, + pub PointerMin: u64, + pub PointerMax: u64, + pub Flags: u32, + pub MatchOffsets: *mut u64, + pub MatchOffsetsSize: u32, + pub MatchOffsetsCount: u32, +} +impl ::core::marker::Copy for POINTER_SEARCH_PHYSICAL {} +impl ::core::clone::Clone for POINTER_SEARCH_PHYSICAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSORINFO { + pub Processor: u16, + pub NumberProcessors: u16, +} +impl ::core::marker::Copy for PROCESSORINFO {} +impl ::core::clone::Clone for PROCESSORINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_COMMIT_USAGE { + pub ImageFileName: [u8; 16], + pub ClientId: u64, + pub ProcessAddress: u64, + pub CommitCharge: u64, + pub SharedCommitCharge: u64, + pub ReleasedCommitDebt: u64, + pub Reserved: u64, +} +impl ::core::marker::Copy for PROCESS_COMMIT_USAGE {} +impl ::core::clone::Clone for PROCESS_COMMIT_USAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_NAME_ENTRY { + pub ProcessId: u32, + pub NameOffset: u32, + pub NameSize: u32, + pub NextEntry: u32, +} +impl ::core::marker::Copy for PROCESS_NAME_ENTRY {} +impl ::core::clone::Clone for PROCESS_NAME_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READCONTROLSPACE { + pub Processor: u16, + pub Address: u32, + pub BufLen: u32, + pub Buf: [u8; 1], +} +impl ::core::marker::Copy for READCONTROLSPACE {} +impl ::core::clone::Clone for READCONTROLSPACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READCONTROLSPACE32 { + pub Processor: u16, + pub Address: u32, + pub BufLen: u32, + pub Buf: [u8; 1], +} +impl ::core::marker::Copy for READCONTROLSPACE32 {} +impl ::core::clone::Clone for READCONTROLSPACE32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READCONTROLSPACE64 { + pub Processor: u16, + pub Address: u64, + pub BufLen: u32, + pub Buf: [u8; 1], +} +impl ::core::marker::Copy for READCONTROLSPACE64 {} +impl ::core::clone::Clone for READCONTROLSPACE64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READ_WRITE_MSR { + pub Msr: u32, + pub Value: i64, +} +impl ::core::marker::Copy for READ_WRITE_MSR {} +impl ::core::clone::Clone for READ_WRITE_MSR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEARCHMEMORY { + pub SearchAddress: u64, + pub SearchLength: u64, + pub FoundAddress: u64, + pub PatternLength: u32, + pub Pattern: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SEARCHMEMORY {} +impl ::core::clone::Clone for SEARCHMEMORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STACK_SRC_INFO { + pub ImagePath: ::windows_sys::core::PCWSTR, + pub ModuleName: ::windows_sys::core::PCWSTR, + pub Function: ::windows_sys::core::PCWSTR, + pub Displacement: u32, + pub Row: u32, + pub Column: u32, +} +impl ::core::marker::Copy for STACK_SRC_INFO {} +impl ::core::clone::Clone for STACK_SRC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STACK_SYM_FRAME_INFO { + pub StackFrameEx: DEBUG_STACK_FRAME_EX, + pub SrcInfo: STACK_SRC_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STACK_SYM_FRAME_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STACK_SYM_FRAME_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYMBOL_INFO_EX { + pub SizeOfStruct: u32, + pub TypeOfInfo: u32, + pub Offset: u64, + pub Line: u32, + pub Displacement: u32, + pub Reserved: [u32; 4], +} +impl ::core::marker::Copy for SYMBOL_INFO_EX {} +impl ::core::clone::Clone for SYMBOL_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYM_DUMP_PARAM { + pub size: u32, + pub sName: *mut u8, + pub Options: u32, + pub addr: u64, + pub listLink: *mut FIELD_INFO, + pub Anonymous: SYM_DUMP_PARAM_0, + pub CallbackRoutine: PSYM_DUMP_FIELD_CALLBACK, + pub nFields: u32, + pub Fields: *mut FIELD_INFO, + pub ModBase: u64, + pub TypeId: u32, + pub TypeSize: u32, + pub BufferSize: u32, + pub _bitfield: u32, +} +impl ::core::marker::Copy for SYM_DUMP_PARAM {} +impl ::core::clone::Clone for SYM_DUMP_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SYM_DUMP_PARAM_0 { + pub Context: *mut ::core::ffi::c_void, + pub pBuffer: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SYM_DUMP_PARAM_0 {} +impl ::core::clone::Clone for SYM_DUMP_PARAM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ScriptDebugEventInformation { + pub DebugEvent: ScriptDebugEvent, + pub EventPosition: ScriptDebugPosition, + pub EventSpanEnd: ScriptDebugPosition, + pub u: ScriptDebugEventInformation_0, +} +impl ::core::marker::Copy for ScriptDebugEventInformation {} +impl ::core::clone::Clone for ScriptDebugEventInformation { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union ScriptDebugEventInformation_0 { + pub ExceptionInformation: ScriptDebugEventInformation_0_1, + pub BreakpointInformation: ScriptDebugEventInformation_0_0, +} +impl ::core::marker::Copy for ScriptDebugEventInformation_0 {} +impl ::core::clone::Clone for ScriptDebugEventInformation_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ScriptDebugEventInformation_0_0 { + pub BreakpointId: u64, +} +impl ::core::marker::Copy for ScriptDebugEventInformation_0_0 {} +impl ::core::clone::Clone for ScriptDebugEventInformation_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ScriptDebugEventInformation_0_1 { + pub IsUncaught: u8, +} +impl ::core::marker::Copy for ScriptDebugEventInformation_0_1 {} +impl ::core::clone::Clone for ScriptDebugEventInformation_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ScriptDebugPosition { + pub Line: u32, + pub Column: u32, +} +impl ::core::marker::Copy for ScriptDebugPosition {} +impl ::core::clone::Clone for ScriptDebugPosition { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TARGET_DEBUG_INFO { + pub SizeOfStruct: u32, + pub EntryDate: u64, + pub DebugeeClass: u32, + pub SysUpTime: u64, + pub AppUpTime: u64, + pub CrashTime: u64, + pub OsInfo: OS_INFO, + pub Cpu: CPU_INFO, + pub DumpFile: [u8; 260], +} +impl ::core::marker::Copy for TARGET_DEBUG_INFO {} +impl ::core::clone::Clone for TARGET_DEBUG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TARGET_DEBUG_INFO_v1 { + pub SizeOfStruct: u32, + pub Id: u64, + pub Source: u64, + pub EntryDate: u64, + pub SysUpTime: u64, + pub AppUpTime: u64, + pub CrashTime: u64, + pub Mode: u64, + pub OsInfo: OS_INFO_v1, + pub Cpu: CPU_INFO_v1, + pub DumpFile: [u8; 260], + pub FailureData: *mut ::core::ffi::c_void, + pub StackTr: [u8; 4096], +} +impl ::core::marker::Copy for TARGET_DEBUG_INFO_v1 {} +impl ::core::clone::Clone for TARGET_DEBUG_INFO_v1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TARGET_DEBUG_INFO_v2 { + pub SizeOfStruct: u32, + pub EntryDate: u64, + pub DebugeeClass: u32, + pub SysUpTime: u64, + pub AppUpTime: u64, + pub CrashTime: u64, + pub OsInfo: OS_INFO, + pub Cpu: CPU_INFO_v2, + pub DumpFile: [u8; 260], +} +impl ::core::marker::Copy for TARGET_DEBUG_INFO_v2 {} +impl ::core::clone::Clone for TARGET_DEBUG_INFO_v2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSLATE_VIRTUAL_TO_PHYSICAL { + pub Virtual: u64, + pub Physical: u64, +} +impl ::core::marker::Copy for TRANSLATE_VIRTUAL_TO_PHYSICAL {} +impl ::core::clone::Clone for TRANSLATE_VIRTUAL_TO_PHYSICAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_TO_PHYSICAL { + pub Status: u32, + pub Size: u32, + pub PdeAddress: u64, + pub Virtual: u64, + pub Physical: u64, +} +impl ::core::marker::Copy for VIRTUAL_TO_PHYSICAL {} +impl ::core::clone::Clone for VIRTUAL_TO_PHYSICAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WDBGEXTS_CLR_DATA_INTERFACE { + pub Iid: *const ::windows_sys::core::GUID, + pub Iface: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WDBGEXTS_CLR_DATA_INTERFACE {} +impl ::core::clone::Clone for WDBGEXTS_CLR_DATA_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WDBGEXTS_DISASSEMBLE_BUFFER { + pub InOffset: u64, + pub OutOffset: u64, + pub AddrFlags: u32, + pub FormatFlags: u32, + pub DataBufferBytes: u32, + pub DisasmBufferChars: u32, + pub DataBuffer: *mut ::core::ffi::c_void, + pub DisasmBuffer: ::windows_sys::core::PWSTR, + pub Reserved0: [u64; 3], +} +impl ::core::marker::Copy for WDBGEXTS_DISASSEMBLE_BUFFER {} +impl ::core::clone::Clone for WDBGEXTS_DISASSEMBLE_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WDBGEXTS_MODULE_IN_RANGE { + pub Start: u64, + pub End: u64, + pub FoundModBase: u64, + pub FoundModSize: u32, +} +impl ::core::marker::Copy for WDBGEXTS_MODULE_IN_RANGE {} +impl ::core::clone::Clone for WDBGEXTS_MODULE_IN_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WDBGEXTS_QUERY_INTERFACE { + pub Iid: *const ::windows_sys::core::GUID, + pub Iface: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WDBGEXTS_QUERY_INTERFACE {} +impl ::core::clone::Clone for WDBGEXTS_QUERY_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WDBGEXTS_THREAD_OS_INFO { + pub ThreadId: u32, + pub ExitStatus: u32, + pub PriorityClass: u32, + pub Priority: u32, + pub CreateTime: u64, + pub ExitTime: u64, + pub KernelTime: u64, + pub UserTime: u64, + pub StartOffset: u64, + pub Affinity: u64, +} +impl ::core::marker::Copy for WDBGEXTS_THREAD_OS_INFO {} +impl ::core::clone::Clone for WDBGEXTS_THREAD_OS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct WINDBG_EXTENSION_APIS { + pub nSize: u32, + pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE, + pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION, + pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL, + pub lpDisasmRoutine: PWINDBG_DISASM, + pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C, + pub lpReadProcessMemoryRoutine: PWINDBG_READ_PROCESS_MEMORY_ROUTINE, + pub lpWriteProcessMemoryRoutine: PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE, + pub lpGetThreadContextRoutine: PWINDBG_GET_THREAD_CONTEXT_ROUTINE, + pub lpSetThreadContextRoutine: PWINDBG_SET_THREAD_CONTEXT_ROUTINE, + pub lpIoctlRoutine: PWINDBG_IOCTL_ROUTINE, + pub lpStackTraceRoutine: PWINDBG_STACKTRACE_ROUTINE, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for WINDBG_EXTENSION_APIS {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for WINDBG_EXTENSION_APIS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct WINDBG_EXTENSION_APIS32 { + pub nSize: u32, + pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE, + pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION32, + pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL32, + pub lpDisasmRoutine: PWINDBG_DISASM32, + pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C, + pub lpReadProcessMemoryRoutine: PWINDBG_READ_PROCESS_MEMORY_ROUTINE32, + pub lpWriteProcessMemoryRoutine: PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE32, + pub lpGetThreadContextRoutine: PWINDBG_GET_THREAD_CONTEXT_ROUTINE, + pub lpSetThreadContextRoutine: PWINDBG_SET_THREAD_CONTEXT_ROUTINE, + pub lpIoctlRoutine: PWINDBG_IOCTL_ROUTINE, + pub lpStackTraceRoutine: PWINDBG_STACKTRACE_ROUTINE32, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for WINDBG_EXTENSION_APIS32 {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for WINDBG_EXTENSION_APIS32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct WINDBG_EXTENSION_APIS64 { + pub nSize: u32, + pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE, + pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION64, + pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL64, + pub lpDisasmRoutine: PWINDBG_DISASM64, + pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C, + pub lpReadProcessMemoryRoutine: PWINDBG_READ_PROCESS_MEMORY_ROUTINE64, + pub lpWriteProcessMemoryRoutine: PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE64, + pub lpGetThreadContextRoutine: PWINDBG_GET_THREAD_CONTEXT_ROUTINE, + pub lpSetThreadContextRoutine: PWINDBG_SET_THREAD_CONTEXT_ROUTINE, + pub lpIoctlRoutine: PWINDBG_IOCTL_ROUTINE, + pub lpStackTraceRoutine: PWINDBG_STACKTRACE_ROUTINE64, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for WINDBG_EXTENSION_APIS64 {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for WINDBG_EXTENSION_APIS64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINDBG_OLDKD_EXTENSION_APIS { + pub nSize: u32, + pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE, + pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION32, + pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL32, + pub lpDisasmRoutine: PWINDBG_DISASM32, + pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C, + pub lpReadVirtualMemRoutine: PWINDBG_READ_PROCESS_MEMORY_ROUTINE32, + pub lpWriteVirtualMemRoutine: PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE32, + pub lpReadPhysicalMemRoutine: PWINDBG_OLDKD_READ_PHYSICAL_MEMORY, + pub lpWritePhysicalMemRoutine: PWINDBG_OLDKD_WRITE_PHYSICAL_MEMORY, +} +impl ::core::marker::Copy for WINDBG_OLDKD_EXTENSION_APIS {} +impl ::core::clone::Clone for WINDBG_OLDKD_EXTENSION_APIS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINDBG_OLD_EXTENSION_APIS { + pub nSize: u32, + pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE, + pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION, + pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL, + pub lpDisasmRoutine: PWINDBG_DISASM, + pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C, +} +impl ::core::marker::Copy for WINDBG_OLD_EXTENSION_APIS {} +impl ::core::clone::Clone for WINDBG_OLD_EXTENSION_APIS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XML_DRIVER_NODE_INFO { + pub FileName: [u8; 64], + pub FileSize: u64, + pub CreationDate: u64, + pub Version: [u8; 64], + pub Manufacturer: [u8; 260], + pub ProductName: [u8; 260], + pub Group: [u8; 260], + pub Altitude: [u8; 260], +} +impl ::core::marker::Copy for XML_DRIVER_NODE_INFO {} +impl ::core::clone::Clone for XML_DRIVER_NODE_INFO { + fn clone(&self) -> Self { + *self + } +} +pub type ENTRY_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type EXTDLL_ITERATERTLBALANCEDNODES = ::core::option::Option ()>; +pub type EXTDLL_QUERYDATABYTAG = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type EXTDLL_QUERYDATABYTAGEX = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type EXTS_JOB_PROCESS_CALLBACK = ::core::option::Option super::super::super::super::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type EXTS_TABLE_ENTRY_CALLBACK = ::core::option::Option super::super::super::super::Foundation::BOOLEAN>; +pub type EXT_ANALYSIS_PLUGIN = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type EXT_ANALYZER = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type EXT_DECODE_ERROR = ::core::option::Option ()>; +pub type EXT_GET_DEBUG_FAILURE_ANALYSIS = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type EXT_GET_ENVIRONMENT_VARIABLE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type EXT_GET_FAILURE_ANALYSIS = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type EXT_GET_FA_ENTRIES_DATA = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type EXT_GET_HANDLE_TRACE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type EXT_RELOAD_TRIAGER = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type EXT_TARGET_INFO = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type EXT_TRIAGE_FOLLOWUP = ::core::option::Option u32>; +pub type EXT_XML_DATA = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KDEXTS_LOCK_CALLBACKROUTINE = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type KDEXT_DUMP_HANDLE_CALLBACK = ::core::option::Option super::super::super::super::Foundation::BOOLEAN>; +pub type PDEBUG_EXTENSION_CALL = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PDEBUG_EXTENSION_CANUNLOAD = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PDEBUG_EXTENSION_INITIALIZE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PDEBUG_EXTENSION_KNOWN_STRUCT = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PDEBUG_EXTENSION_KNOWN_STRUCT_EX = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PDEBUG_EXTENSION_NOTIFY = ::core::option::Option ()>; +pub type PDEBUG_EXTENSION_PROVIDE_VALUE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PDEBUG_EXTENSION_QUERY_VALUE_NAMES = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PDEBUG_EXTENSION_UNINITIALIZE = ::core::option::Option ()>; +pub type PDEBUG_EXTENSION_UNLOAD = ::core::option::Option ()>; +pub type PDEBUG_STACK_PROVIDER_BEGINTHREADSTACKRECONSTRUCTION = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PDEBUG_STACK_PROVIDER_ENDTHREADSTACKRECONSTRUCTION = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDEBUG_STACK_PROVIDER_FREESTACKSYMFRAMES = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDEBUG_STACK_PROVIDER_RECONSTRUCTSTACK = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PENUMERATE_HANDLES = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PENUMERATE_HASH_TABLE = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PENUMERATE_JOB_PROCESSES = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PENUMERATE_SYSTEM_LOCKS = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PFIND_FILELOCK_OWNERINFO = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PFIND_MATCHING_PROCESS = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PFIND_MATCHING_THREAD = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PGET_CPU_MICROCODE_VERSION = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PGET_CPU_PSPEED_INFO = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGET_DEVICE_OBJECT_INFO = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PGET_DRIVER_OBJECT_INFO = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PGET_FULL_IMAGE_NAME = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PGET_IRP_INFO = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PGET_PNP_TRIAGE_INFO = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PGET_POOL_DATA = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PGET_POOL_REGION = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PGET_POOL_TAG_DESCRIPTION = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PGET_PROCESS_COMMIT = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PGET_SMBIOS_INFO = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PKDEXTS_GET_PTE_INFO = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PSYM_DUMP_FIELD_CALLBACK = ::core::option::Option u32>; +pub type PWINDBG_CHECK_CONTROL_C = ::core::option::Option u32>; +pub type PWINDBG_CHECK_VERSION = ::core::option::Option u32>; +pub type PWINDBG_DISASM = ::core::option::Option u32>; +pub type PWINDBG_DISASM32 = ::core::option::Option u32>; +pub type PWINDBG_DISASM64 = ::core::option::Option u32>; +pub type PWINDBG_EXTENSION_API_VERSION = ::core::option::Option *mut EXT_API_VERSION>; +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub type PWINDBG_EXTENSION_DLL_INIT = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub type PWINDBG_EXTENSION_DLL_INIT32 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub type PWINDBG_EXTENSION_DLL_INIT64 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWINDBG_EXTENSION_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWINDBG_EXTENSION_ROUTINE32 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWINDBG_EXTENSION_ROUTINE64 = ::core::option::Option ()>; +pub type PWINDBG_GET_EXPRESSION = ::core::option::Option usize>; +pub type PWINDBG_GET_EXPRESSION32 = ::core::option::Option u32>; +pub type PWINDBG_GET_EXPRESSION64 = ::core::option::Option u64>; +pub type PWINDBG_GET_SYMBOL = ::core::option::Option ()>; +pub type PWINDBG_GET_SYMBOL32 = ::core::option::Option ()>; +pub type PWINDBG_GET_SYMBOL64 = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub type PWINDBG_GET_THREAD_CONTEXT_ROUTINE = ::core::option::Option u32>; +pub type PWINDBG_IOCTL_ROUTINE = ::core::option::Option u32>; +pub type PWINDBG_OLDKD_EXTENSION_ROUTINE = ::core::option::Option ()>; +pub type PWINDBG_OLDKD_READ_PHYSICAL_MEMORY = ::core::option::Option u32>; +pub type PWINDBG_OLDKD_WRITE_PHYSICAL_MEMORY = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub type PWINDBG_OLD_EXTENSION_ROUTINE = ::core::option::Option ()>; +pub type PWINDBG_OUTPUT_ROUTINE = ::core::option::Option ()>; +pub type PWINDBG_READ_PROCESS_MEMORY_ROUTINE = ::core::option::Option u32>; +pub type PWINDBG_READ_PROCESS_MEMORY_ROUTINE32 = ::core::option::Option u32>; +pub type PWINDBG_READ_PROCESS_MEMORY_ROUTINE64 = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub type PWINDBG_SET_THREAD_CONTEXT_ROUTINE = ::core::option::Option u32>; +pub type PWINDBG_STACKTRACE_ROUTINE = ::core::option::Option u32>; +pub type PWINDBG_STACKTRACE_ROUTINE32 = ::core::option::Option u32>; +pub type PWINDBG_STACKTRACE_ROUTINE64 = ::core::option::Option u32>; +pub type PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE = ::core::option::Option u32>; +pub type PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE32 = ::core::option::Option u32>; +pub type PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE64 = ::core::option::Option u32>; +pub type fnDebugFailureAnalysisCreateInstance = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Debug/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Debug/mod.rs new file mode 100644 index 000000000..a02d21c5a --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Debug/mod.rs @@ -0,0 +1,7868 @@ +#[cfg(feature = "Win32_System_Diagnostics_Debug_Extensions")] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`"] +pub mod Extensions; +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn AddVectoredContinueHandler(first : u32, handler : PVECTORED_EXCEPTION_HANDLER) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn AddVectoredExceptionHandler(first : u32, handler : PVECTORED_EXCEPTION_HANDLER) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Beep(dwfreq : u32, dwduration : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BindImage(imagename : ::windows_sys::core::PCSTR, dllpath : ::windows_sys::core::PCSTR, symbolpath : ::windows_sys::core::PCSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BindImageEx(flags : u32, imagename : ::windows_sys::core::PCSTR, dllpath : ::windows_sys::core::PCSTR, symbolpath : ::windows_sys::core::PCSTR, statusroutine : PIMAGEHLP_STATUS_ROUTINE) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckRemoteDebuggerPresent(hprocess : super::super::super::Foundation:: HANDLE, pbdebuggerpresent : *mut super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_SystemInformation")] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_System_SystemInformation\"`"] fn CheckSumMappedFile(baseaddress : *const ::core::ffi::c_void, filelength : u32, headersum : *mut u32, checksum : *mut u32) -> *mut IMAGE_NT_HEADERS64); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_SystemInformation")] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_System_SystemInformation\"`"] fn CheckSumMappedFile(baseaddress : *const ::core::ffi::c_void, filelength : u32, headersum : *mut u32, checksum : *mut u32) -> *mut IMAGE_NT_HEADERS32); +::windows_targets::link!("advapi32.dll" "system" fn CloseThreadWaitChainSession(wcthandle : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ContinueDebugEvent(dwprocessid : u32, dwthreadid : u32, dwcontinuestatus : super::super::super::Foundation:: NTSTATUS) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn CopyContext(destination : *mut CONTEXT, contextflags : CONTEXT_FLAGS, source : *const CONTEXT) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DbgHelpCreateUserDump(filename : ::windows_sys::core::PCSTR, callback : PDBGHELP_CREATE_USER_DUMP_CALLBACK, userdata : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DbgHelpCreateUserDumpW(filename : ::windows_sys::core::PCWSTR, callback : PDBGHELP_CREATE_USER_DUMP_CALLBACK, userdata : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DebugActiveProcess(dwprocessid : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DebugActiveProcessStop(dwprocessid : u32) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn DebugBreak() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DebugBreakProcess(process : super::super::super::Foundation:: HANDLE) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DebugSetProcessKillOnExit(killonexit : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn DecodePointer(ptr : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-util-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DecodeRemotePointer(processhandle : super::super::super::Foundation:: HANDLE, ptr : *const ::core::ffi::c_void, decodedptr : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn DecodeSystemPointer(ptr : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +::windows_targets::link!("kernel32.dll" "system" fn EncodePointer(ptr : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-util-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EncodeRemotePointer(processhandle : super::super::super::Foundation:: HANDLE, ptr : *const ::core::ffi::c_void, encodedptr : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn EncodeSystemPointer(ptr : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDirTree(hprocess : super::super::super::Foundation:: HANDLE, rootpath : ::windows_sys::core::PCSTR, inputpathname : ::windows_sys::core::PCSTR, outputpathbuffer : ::windows_sys::core::PSTR, cb : PENUMDIRTREE_CALLBACK, data : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDirTreeW(hprocess : super::super::super::Foundation:: HANDLE, rootpath : ::windows_sys::core::PCWSTR, inputpathname : ::windows_sys::core::PCWSTR, outputpathbuffer : ::windows_sys::core::PWSTR, cb : PENUMDIRTREE_CALLBACKW, data : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumerateLoadedModules(hprocess : super::super::super::Foundation:: HANDLE, enumloadedmodulescallback : PENUMLOADED_MODULES_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumerateLoadedModules64(hprocess : super::super::super::Foundation:: HANDLE, enumloadedmodulescallback : PENUMLOADED_MODULES_CALLBACK64, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumerateLoadedModulesEx(hprocess : super::super::super::Foundation:: HANDLE, enumloadedmodulescallback : PENUMLOADED_MODULES_CALLBACK64, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumerateLoadedModulesExW(hprocess : super::super::super::Foundation:: HANDLE, enumloadedmodulescallback : PENUMLOADED_MODULES_CALLBACKW64, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumerateLoadedModulesW64(hprocess : super::super::super::Foundation:: HANDLE, enumloadedmodulescallback : PENUMLOADED_MODULES_CALLBACKW64, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn FatalAppExitA(uaction : u32, lpmessagetext : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn FatalAppExitW(uaction : u32, lpmessagetext : ::windows_sys::core::PCWSTR) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn FatalExit(exitcode : i32) -> !); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindDebugInfoFile(filename : ::windows_sys::core::PCSTR, symbolpath : ::windows_sys::core::PCSTR, debugfilepath : ::windows_sys::core::PSTR) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindDebugInfoFileEx(filename : ::windows_sys::core::PCSTR, symbolpath : ::windows_sys::core::PCSTR, debugfilepath : ::windows_sys::core::PSTR, callback : PFIND_DEBUG_FILE_CALLBACK, callerdata : *const ::core::ffi::c_void) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindDebugInfoFileExW(filename : ::windows_sys::core::PCWSTR, symbolpath : ::windows_sys::core::PCWSTR, debugfilepath : ::windows_sys::core::PWSTR, callback : PFIND_DEBUG_FILE_CALLBACKW, callerdata : *const ::core::ffi::c_void) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindExecutableImage(filename : ::windows_sys::core::PCSTR, symbolpath : ::windows_sys::core::PCSTR, imagefilepath : ::windows_sys::core::PSTR) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindExecutableImageEx(filename : ::windows_sys::core::PCSTR, symbolpath : ::windows_sys::core::PCSTR, imagefilepath : ::windows_sys::core::PSTR, callback : PFIND_EXE_FILE_CALLBACK, callerdata : *const ::core::ffi::c_void) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindExecutableImageExW(filename : ::windows_sys::core::PCWSTR, symbolpath : ::windows_sys::core::PCWSTR, imagefilepath : ::windows_sys::core::PWSTR, callback : PFIND_EXE_FILE_CALLBACKW, callerdata : *const ::core::ffi::c_void) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFileInPath(hprocess : super::super::super::Foundation:: HANDLE, searchpatha : ::windows_sys::core::PCSTR, filename : ::windows_sys::core::PCSTR, id : *const ::core::ffi::c_void, two : u32, three : u32, flags : u32, filepath : ::windows_sys::core::PSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindFileInSearchPath(hprocess : super::super::super::Foundation:: HANDLE, searchpatha : ::windows_sys::core::PCSTR, filename : ::windows_sys::core::PCSTR, one : u32, two : u32, three : u32, filepath : ::windows_sys::core::PSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlushInstructionCache(hprocess : super::super::super::Foundation:: HANDLE, lpbaseaddress : *const ::core::ffi::c_void, dwsize : usize) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn FormatMessageA(dwflags : FORMAT_MESSAGE_OPTIONS, lpsource : *const ::core::ffi::c_void, dwmessageid : u32, dwlanguageid : u32, lpbuffer : ::windows_sys::core::PSTR, nsize : u32, arguments : *const *const i8) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn FormatMessageW(dwflags : FORMAT_MESSAGE_OPTIONS, lpsource : *const ::core::ffi::c_void, dwmessageid : u32, dwlanguageid : u32, lpbuffer : ::windows_sys::core::PWSTR, nsize : u32, arguments : *const *const i8) -> u32); +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +::windows_targets::link!("kernel32.dll" "system" fn GetEnabledXStateFeatures() -> u64); +::windows_targets::link!("kernel32.dll" "system" fn GetErrorMode() -> u32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`"] fn GetImageConfigInformation(loadedimage : *const LOADED_IMAGE, imageconfiginformation : *mut IMAGE_LOAD_CONFIG_DIRECTORY64) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`"] fn GetImageConfigInformation(loadedimage : *const LOADED_IMAGE, imageconfiginformation : *mut IMAGE_LOAD_CONFIG_DIRECTORY32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`"] fn GetImageUnusedHeaderBytes(loadedimage : *const LOADED_IMAGE, sizeunusedheaderbytes : *mut u32) -> u32); +::windows_targets::link!("dbghelp.dll" "system" fn GetSymLoadError() -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn GetThreadContext(hthread : super::super::super::Foundation:: HANDLE, lpcontext : *mut CONTEXT) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetThreadErrorMode() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThreadSelectorEntry(hthread : super::super::super::Foundation:: HANDLE, dwselector : u32, lpselectorentry : *mut LDT_ENTRY) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThreadWaitChain(wcthandle : *const ::core::ffi::c_void, context : usize, flags : WAIT_CHAIN_THREAD_OPTIONS, threadid : u32, nodecount : *mut u32, nodeinfoarray : *mut WAITCHAIN_NODE_INFO, iscycle : *mut super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTimestampForLoadedLibrary(module : super::super::super::Foundation:: HMODULE) -> u32); +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn GetXStateFeaturesMask(context : *const CONTEXT, featuremask : *mut u64) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_WinTrust"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_WinTrust\"`"] fn ImageAddCertificate(filehandle : super::super::super::Foundation:: HANDLE, certificate : *const super::super::super::Security::WinTrust:: WIN_CERTIFICATE, index : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageDirectoryEntryToData(base : *const ::core::ffi::c_void, mappedasimage : super::super::super::Foundation:: BOOLEAN, directoryentry : IMAGE_DIRECTORY_ENTRY, size : *mut u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageDirectoryEntryToDataEx(base : *const ::core::ffi::c_void, mappedasimage : super::super::super::Foundation:: BOOLEAN, directoryentry : IMAGE_DIRECTORY_ENTRY, size : *mut u32, foundheader : *mut *mut IMAGE_SECTION_HEADER) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageEnumerateCertificates(filehandle : super::super::super::Foundation:: HANDLE, typefilter : u16, certificatecount : *mut u32, indices : *mut u32, indexcount : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_WinTrust"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_WinTrust\"`"] fn ImageGetCertificateData(filehandle : super::super::super::Foundation:: HANDLE, certificateindex : u32, certificate : *mut super::super::super::Security::WinTrust:: WIN_CERTIFICATE, requiredlength : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_WinTrust"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_WinTrust\"`"] fn ImageGetCertificateHeader(filehandle : super::super::super::Foundation:: HANDLE, certificateindex : u32, certificateheader : *mut super::super::super::Security::WinTrust:: WIN_CERTIFICATE) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageGetDigestStream(filehandle : super::super::super::Foundation:: HANDLE, digestlevel : u32, digestfunction : DIGEST_FUNCTION, digesthandle : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`"] fn ImageLoad(dllname : ::windows_sys::core::PCSTR, dllpath : ::windows_sys::core::PCSTR) -> *mut LOADED_IMAGE); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_SystemInformation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_System_SystemInformation\"`"] fn ImageNtHeader(base : *const ::core::ffi::c_void) -> *mut IMAGE_NT_HEADERS64); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_SystemInformation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_System_SystemInformation\"`"] fn ImageNtHeader(base : *const ::core::ffi::c_void) -> *mut IMAGE_NT_HEADERS32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageRemoveCertificate(filehandle : super::super::super::Foundation:: HANDLE, index : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_SystemInformation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_System_SystemInformation\"`"] fn ImageRvaToSection(ntheaders : *const IMAGE_NT_HEADERS64, base : *const ::core::ffi::c_void, rva : u32) -> *mut IMAGE_SECTION_HEADER); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_SystemInformation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_System_SystemInformation\"`"] fn ImageRvaToSection(ntheaders : *const IMAGE_NT_HEADERS32, base : *const ::core::ffi::c_void, rva : u32) -> *mut IMAGE_SECTION_HEADER); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_SystemInformation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_System_SystemInformation\"`"] fn ImageRvaToVa(ntheaders : *const IMAGE_NT_HEADERS64, base : *const ::core::ffi::c_void, rva : u32, lastrvasection : *const *const IMAGE_SECTION_HEADER) -> *mut ::core::ffi::c_void); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_SystemInformation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_System_SystemInformation\"`"] fn ImageRvaToVa(ntheaders : *const IMAGE_NT_HEADERS32, base : *const ::core::ffi::c_void, rva : u32, lastrvasection : *const *const IMAGE_SECTION_HEADER) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`"] fn ImageUnload(loadedimage : *mut LOADED_IMAGE) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("dbghelp.dll" "system" fn ImagehlpApiVersion() -> *mut API_VERSION); +::windows_targets::link!("dbghelp.dll" "system" fn ImagehlpApiVersionEx(appversion : *const API_VERSION) -> *mut API_VERSION); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn InitializeContext(buffer : *mut ::core::ffi::c_void, contextflags : CONTEXT_FLAGS, context : *mut *mut CONTEXT, contextlength : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn InitializeContext2(buffer : *mut ::core::ffi::c_void, contextflags : CONTEXT_FLAGS, context : *mut *mut CONTEXT, contextlength : *mut u32, xstatecompactionmask : u64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsDebuggerPresent() -> super::super::super::Foundation:: BOOL); +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn LocateXStateFeature(context : *const CONTEXT, featureid : u32, length : *mut u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MakeSureDirectoryPathExists(dirpath : ::windows_sys::core::PCSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`"] fn MapAndLoad(imagename : ::windows_sys::core::PCSTR, dllpath : ::windows_sys::core::PCSTR, loadedimage : *mut LOADED_IMAGE, dotdll : super::super::super::Foundation:: BOOL, readonly : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("imagehlp.dll" "system" fn MapFileAndCheckSumA(filename : ::windows_sys::core::PCSTR, headersum : *mut u32, checksum : *mut u32) -> u32); +::windows_targets::link!("imagehlp.dll" "system" fn MapFileAndCheckSumW(filename : ::windows_sys::core::PCWSTR, headersum : *mut u32, checksum : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn MessageBeep(utype : super::super::super::UI::WindowsAndMessaging:: MESSAGEBOX_STYLE) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MiniDumpReadDumpStream(baseofdump : *const ::core::ffi::c_void, streamnumber : u32, dir : *mut *mut MINIDUMP_DIRECTORY, streampointer : *mut *mut ::core::ffi::c_void, streamsize : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Memory\"`"] fn MiniDumpWriteDump(hprocess : super::super::super::Foundation:: HANDLE, processid : u32, hfile : super::super::super::Foundation:: HANDLE, dumptype : MINIDUMP_TYPE, exceptionparam : *const MINIDUMP_EXCEPTION_INFORMATION, userstreamparam : *const MINIDUMP_USER_STREAM_INFORMATION, callbackparam : *const MINIDUMP_CALLBACK_INFORMATION) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenThreadWaitChainSession(flags : OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS, callback : PWAITCHAINCALLBACK) -> *mut ::core::ffi::c_void); +::windows_targets::link!("kernel32.dll" "system" fn OutputDebugStringA(lpoutputstring : ::windows_sys::core::PCSTR) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn OutputDebugStringW(lpoutputstring : ::windows_sys::core::PCWSTR) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn RaiseException(dwexceptioncode : u32, dwexceptionflags : u32, nnumberofarguments : u32, lparguments : *const usize) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RaiseFailFastException(pexceptionrecord : *const EXCEPTION_RECORD, pcontextrecord : *const CONTEXT, dwflags : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RangeMapAddPeImageSections(rmaphandle : *const ::core::ffi::c_void, imagename : ::windows_sys::core::PCWSTR, mappedimage : *const ::core::ffi::c_void, mappingbytes : u32, imagebase : u64, usertag : u64, mappingflags : u32) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("dbghelp.dll" "system" fn RangeMapCreate() -> *mut ::core::ffi::c_void); +::windows_targets::link!("dbghelp.dll" "system" fn RangeMapFree(rmaphandle : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RangeMapRead(rmaphandle : *const ::core::ffi::c_void, offset : u64, buffer : *mut ::core::ffi::c_void, requestbytes : u32, flags : u32, donebytes : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RangeMapRemove(rmaphandle : *const ::core::ffi::c_void, usertag : u64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RangeMapWrite(rmaphandle : *const ::core::ffi::c_void, offset : u64, buffer : *const ::core::ffi::c_void, requestbytes : u32, flags : u32, donebytes : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReBaseImage(currentimagename : ::windows_sys::core::PCSTR, symbolpath : ::windows_sys::core::PCSTR, frebase : super::super::super::Foundation:: BOOL, frebasesysfileok : super::super::super::Foundation:: BOOL, fgoingdown : super::super::super::Foundation:: BOOL, checkimagesize : u32, oldimagesize : *mut u32, oldimagebase : *mut usize, newimagesize : *mut u32, newimagebase : *mut usize, timestamp : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReBaseImage64(currentimagename : ::windows_sys::core::PCSTR, symbolpath : ::windows_sys::core::PCSTR, frebase : super::super::super::Foundation:: BOOL, frebasesysfileok : super::super::super::Foundation:: BOOL, fgoingdown : super::super::super::Foundation:: BOOL, checkimagesize : u32, oldimagesize : *mut u32, oldimagebase : *mut u64, newimagesize : *mut u32, newimagebase : *mut u64, timestamp : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadProcessMemory(hprocess : super::super::super::Foundation:: HANDLE, lpbaseaddress : *const ::core::ffi::c_void, lpbuffer : *mut ::core::ffi::c_void, nsize : usize, lpnumberofbytesread : *mut usize) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn RegisterWaitChainCOMCallback(callstatecallback : PCOGETCALLSTATE, activationstatecallback : PCOGETACTIVATIONSTATE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveInvalidModuleList(hprocess : super::super::super::Foundation:: HANDLE) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn RemoveVectoredContinueHandler(handle : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn RemoveVectoredExceptionHandler(handle : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReportSymbolLoadSummary(hprocess : super::super::super::Foundation:: HANDLE, ploadmodule : ::windows_sys::core::PCWSTR, psymboldata : *const DBGHELP_DATA_REPORT_STRUCT) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "aarch64")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlAddFunctionTable(functiontable : *const IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, entrycount : u32, baseaddress : usize) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlAddFunctionTable(functiontable : *const IMAGE_RUNTIME_FUNCTION_ENTRY, entrycount : u32, baseaddress : u64) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(target_arch = "aarch64")] +::windows_targets::link!("ntdll.dll" "system" fn RtlAddGrowableFunctionTable(dynamictable : *mut *mut ::core::ffi::c_void, functiontable : *const IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, entrycount : u32, maximumentrycount : u32, rangebase : usize, rangeend : usize) -> u32); +#[cfg(target_arch = "x86_64")] +::windows_targets::link!("ntdll.dll" "system" fn RtlAddGrowableFunctionTable(dynamictable : *mut *mut ::core::ffi::c_void, functiontable : *const IMAGE_RUNTIME_FUNCTION_ENTRY, entrycount : u32, maximumentrycount : u32, rangebase : usize, rangeend : usize) -> u32); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlCaptureContext(contextrecord : *mut CONTEXT) -> ()); +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlCaptureContext2(contextrecord : *mut CONTEXT) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn RtlCaptureStackBackTrace(framestoskip : u32, framestocapture : u32, backtrace : *mut *mut ::core::ffi::c_void, backtracehash : *mut u32) -> u16); +#[cfg(target_arch = "aarch64")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDeleteFunctionTable(functiontable : *const IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlDeleteFunctionTable(functiontable : *const IMAGE_RUNTIME_FUNCTION_ENTRY) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ntdll.dll" "system" fn RtlDeleteGrowableFunctionTable(dynamictable : *const ::core::ffi::c_void) -> ()); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ntdll.dll" "system" fn RtlGrowFunctionTable(dynamictable : *mut ::core::ffi::c_void, newentrycount : u32) -> ()); +#[cfg(target_arch = "aarch64")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlInstallFunctionTableCallback(tableidentifier : u64, baseaddress : u64, length : u32, callback : PGET_RUNTIME_FUNCTION_CALLBACK, context : *const ::core::ffi::c_void, outofprocesscallbackdll : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlInstallFunctionTableCallback(tableidentifier : u64, baseaddress : u64, length : u32, callback : PGET_RUNTIME_FUNCTION_CALLBACK, context : *const ::core::ffi::c_void, outofprocesscallbackdll : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(target_arch = "aarch64")] +::windows_targets::link!("kernel32.dll" "system" fn RtlLookupFunctionEntry(controlpc : usize, imagebase : *mut usize, historytable : *mut UNWIND_HISTORY_TABLE) -> *mut IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY); +#[cfg(target_arch = "x86_64")] +::windows_targets::link!("kernel32.dll" "system" fn RtlLookupFunctionEntry(controlpc : u64, imagebase : *mut u64, historytable : *mut UNWIND_HISTORY_TABLE) -> *mut IMAGE_RUNTIME_FUNCTION_ENTRY); +::windows_targets::link!("kernel32.dll" "system" fn RtlPcToFileHeader(pcvalue : *const ::core::ffi::c_void, baseofimage : *mut *mut ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlRaiseException(exceptionrecord : *const EXCEPTION_RECORD) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlRestoreContext(contextrecord : *const CONTEXT, exceptionrecord : *const EXCEPTION_RECORD) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlUnwind(targetframe : *const ::core::ffi::c_void, targetip : *const ::core::ffi::c_void, exceptionrecord : *const EXCEPTION_RECORD, returnvalue : *const ::core::ffi::c_void) -> ()); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlUnwindEx(targetframe : *const ::core::ffi::c_void, targetip : *const ::core::ffi::c_void, exceptionrecord : *const EXCEPTION_RECORD, returnvalue : *const ::core::ffi::c_void, contextrecord : *const CONTEXT, historytable : *const UNWIND_HISTORY_TABLE) -> ()); +#[cfg(target_arch = "aarch64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlVirtualUnwind(handlertype : RTL_VIRTUAL_UNWIND_HANDLER_TYPE, imagebase : usize, controlpc : usize, functionentry : *const IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, contextrecord : *mut CONTEXT, handlerdata : *mut *mut ::core::ffi::c_void, establisherframe : *mut usize, contextpointers : *mut KNONVOLATILE_CONTEXT_POINTERS_ARM64) -> super::super::Kernel:: EXCEPTION_ROUTINE); +#[cfg(target_arch = "x86_64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlVirtualUnwind(handlertype : RTL_VIRTUAL_UNWIND_HANDLER_TYPE, imagebase : u64, controlpc : u64, functionentry : *const IMAGE_RUNTIME_FUNCTION_ENTRY, contextrecord : *mut CONTEXT, handlerdata : *mut *mut ::core::ffi::c_void, establisherframe : *mut u64, contextpointers : *mut KNONVOLATILE_CONTEXT_POINTERS) -> super::super::Kernel:: EXCEPTION_ROUTINE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SearchTreeForFile(rootpath : ::windows_sys::core::PCSTR, inputpathname : ::windows_sys::core::PCSTR, outputpathbuffer : ::windows_sys::core::PSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SearchTreeForFileW(rootpath : ::windows_sys::core::PCWSTR, inputpathname : ::windows_sys::core::PCWSTR, outputpathbuffer : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("dbghelp.dll" "system" fn SetCheckUserInterruptShared(lpstartaddress : LPCALL_BACK_USER_INTERRUPT_ROUTINE) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn SetErrorMode(umode : THREAD_ERROR_MODE) -> u32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`"] fn SetImageConfigInformation(loadedimage : *mut LOADED_IMAGE, imageconfiginformation : *const IMAGE_LOAD_CONFIG_DIRECTORY64) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`"] fn SetImageConfigInformation(loadedimage : *mut LOADED_IMAGE, imageconfiginformation : *const IMAGE_LOAD_CONFIG_DIRECTORY32) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("dbghelp.dll" "system" fn SetSymLoadError(error : u32) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn SetThreadContext(hthread : super::super::super::Foundation:: HANDLE, lpcontext : *const CONTEXT) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadErrorMode(dwnewmode : THREAD_ERROR_MODE, lpoldmode : *mut THREAD_ERROR_MODE) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn SetUnhandledExceptionFilter(lptoplevelexceptionfilter : LPTOP_LEVEL_EXCEPTION_FILTER) -> LPTOP_LEVEL_EXCEPTION_FILTER); +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn SetXStateFeaturesMask(context : *mut CONTEXT, featuremask : u64) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StackWalk(machinetype : u32, hprocess : super::super::super::Foundation:: HANDLE, hthread : super::super::super::Foundation:: HANDLE, stackframe : *mut STACKFRAME, contextrecord : *mut ::core::ffi::c_void, readmemoryroutine : PREAD_PROCESS_MEMORY_ROUTINE, functiontableaccessroutine : PFUNCTION_TABLE_ACCESS_ROUTINE, getmodulebaseroutine : PGET_MODULE_BASE_ROUTINE, translateaddress : PTRANSLATE_ADDRESS_ROUTINE) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StackWalk2(machinetype : u32, hprocess : super::super::super::Foundation:: HANDLE, hthread : super::super::super::Foundation:: HANDLE, stackframe : *mut STACKFRAME_EX, contextrecord : *mut ::core::ffi::c_void, readmemoryroutine : PREAD_PROCESS_MEMORY_ROUTINE64, functiontableaccessroutine : PFUNCTION_TABLE_ACCESS_ROUTINE64, getmodulebaseroutine : PGET_MODULE_BASE_ROUTINE64, translateaddress : PTRANSLATE_ADDRESS_ROUTINE64, gettargetattributevalue : PGET_TARGET_ATTRIBUTE_VALUE64, flags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StackWalk64(machinetype : u32, hprocess : super::super::super::Foundation:: HANDLE, hthread : super::super::super::Foundation:: HANDLE, stackframe : *mut STACKFRAME64, contextrecord : *mut ::core::ffi::c_void, readmemoryroutine : PREAD_PROCESS_MEMORY_ROUTINE64, functiontableaccessroutine : PFUNCTION_TABLE_ACCESS_ROUTINE64, getmodulebaseroutine : PGET_MODULE_BASE_ROUTINE64, translateaddress : PTRANSLATE_ADDRESS_ROUTINE64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StackWalkEx(machinetype : u32, hprocess : super::super::super::Foundation:: HANDLE, hthread : super::super::super::Foundation:: HANDLE, stackframe : *mut STACKFRAME_EX, contextrecord : *mut ::core::ffi::c_void, readmemoryroutine : PREAD_PROCESS_MEMORY_ROUTINE64, functiontableaccessroutine : PFUNCTION_TABLE_ACCESS_ROUTINE64, getmodulebaseroutine : PGET_MODULE_BASE_ROUTINE64, translateaddress : PTRANSLATE_ADDRESS_ROUTINE64, flags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymAddSourceStream(hprocess : super::super::super::Foundation:: HANDLE, base : u64, streamfile : ::windows_sys::core::PCSTR, buffer : *const u8, size : usize) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymAddSourceStreamA(hprocess : super::super::super::Foundation:: HANDLE, base : u64, streamfile : ::windows_sys::core::PCSTR, buffer : *const u8, size : usize) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymAddSourceStreamW(hprocess : super::super::super::Foundation:: HANDLE, base : u64, filespec : ::windows_sys::core::PCWSTR, buffer : *const u8, size : usize) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymAddSymbol(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, name : ::windows_sys::core::PCSTR, address : u64, size : u32, flags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymAddSymbolW(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, name : ::windows_sys::core::PCWSTR, address : u64, size : u32, flags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymAddrIncludeInlineTrace(hprocess : super::super::super::Foundation:: HANDLE, address : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymCleanup(hprocess : super::super::super::Foundation:: HANDLE) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymCompareInlineTrace(hprocess : super::super::super::Foundation:: HANDLE, address1 : u64, inlinecontext1 : u32, retaddress1 : u64, address2 : u64, retaddress2 : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymDeleteSymbol(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, name : ::windows_sys::core::PCSTR, address : u64, flags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymDeleteSymbolW(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, name : ::windows_sys::core::PCWSTR, address : u64, flags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumLines(hprocess : super::super::super::Foundation:: HANDLE, base : u64, obj : ::windows_sys::core::PCSTR, file : ::windows_sys::core::PCSTR, enumlinescallback : PSYM_ENUMLINES_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumLinesW(hprocess : super::super::super::Foundation:: HANDLE, base : u64, obj : ::windows_sys::core::PCWSTR, file : ::windows_sys::core::PCWSTR, enumlinescallback : PSYM_ENUMLINES_CALLBACKW, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumProcesses(enumprocessescallback : PSYM_ENUMPROCESSES_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumSourceFileTokens(hprocess : super::super::super::Foundation:: HANDLE, base : u64, callback : PENUMSOURCEFILETOKENSCALLBACK) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumSourceFiles(hprocess : super::super::super::Foundation:: HANDLE, modbase : u64, mask : ::windows_sys::core::PCSTR, cbsrcfiles : PSYM_ENUMSOURCEFILES_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumSourceFilesW(hprocess : super::super::super::Foundation:: HANDLE, modbase : u64, mask : ::windows_sys::core::PCWSTR, cbsrcfiles : PSYM_ENUMSOURCEFILES_CALLBACKW, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumSourceLines(hprocess : super::super::super::Foundation:: HANDLE, base : u64, obj : ::windows_sys::core::PCSTR, file : ::windows_sys::core::PCSTR, line : u32, flags : u32, enumlinescallback : PSYM_ENUMLINES_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumSourceLinesW(hprocess : super::super::super::Foundation:: HANDLE, base : u64, obj : ::windows_sys::core::PCWSTR, file : ::windows_sys::core::PCWSTR, line : u32, flags : u32, enumlinescallback : PSYM_ENUMLINES_CALLBACKW, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumSym(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, enumsymbolscallback : PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumSymbols(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, mask : ::windows_sys::core::PCSTR, enumsymbolscallback : PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumSymbolsEx(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, mask : ::windows_sys::core::PCSTR, enumsymbolscallback : PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext : *const ::core::ffi::c_void, options : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumSymbolsExW(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, mask : ::windows_sys::core::PCWSTR, enumsymbolscallback : PSYM_ENUMERATESYMBOLS_CALLBACKW, usercontext : *const ::core::ffi::c_void, options : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumSymbolsForAddr(hprocess : super::super::super::Foundation:: HANDLE, address : u64, enumsymbolscallback : PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumSymbolsForAddrW(hprocess : super::super::super::Foundation:: HANDLE, address : u64, enumsymbolscallback : PSYM_ENUMERATESYMBOLS_CALLBACKW, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumSymbolsW(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, mask : ::windows_sys::core::PCWSTR, enumsymbolscallback : PSYM_ENUMERATESYMBOLS_CALLBACKW, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumTypes(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, enumsymbolscallback : PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumTypesByName(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, mask : ::windows_sys::core::PCSTR, enumsymbolscallback : PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumTypesByNameW(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, mask : ::windows_sys::core::PCWSTR, enumsymbolscallback : PSYM_ENUMERATESYMBOLS_CALLBACKW, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumTypesW(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, enumsymbolscallback : PSYM_ENUMERATESYMBOLS_CALLBACKW, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumerateModules(hprocess : super::super::super::Foundation:: HANDLE, enummodulescallback : PSYM_ENUMMODULES_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumerateModules64(hprocess : super::super::super::Foundation:: HANDLE, enummodulescallback : PSYM_ENUMMODULES_CALLBACK64, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumerateModulesW64(hprocess : super::super::super::Foundation:: HANDLE, enummodulescallback : PSYM_ENUMMODULES_CALLBACKW64, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumerateSymbols(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u32, enumsymbolscallback : PSYM_ENUMSYMBOLS_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumerateSymbols64(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, enumsymbolscallback : PSYM_ENUMSYMBOLS_CALLBACK64, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumerateSymbolsW(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u32, enumsymbolscallback : PSYM_ENUMSYMBOLS_CALLBACKW, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymEnumerateSymbolsW64(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, enumsymbolscallback : PSYM_ENUMSYMBOLS_CALLBACK64W, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFindDebugInfoFile(hprocess : super::super::super::Foundation:: HANDLE, filename : ::windows_sys::core::PCSTR, debugfilepath : ::windows_sys::core::PSTR, callback : PFIND_DEBUG_FILE_CALLBACK, callerdata : *const ::core::ffi::c_void) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFindDebugInfoFileW(hprocess : super::super::super::Foundation:: HANDLE, filename : ::windows_sys::core::PCWSTR, debugfilepath : ::windows_sys::core::PWSTR, callback : PFIND_DEBUG_FILE_CALLBACKW, callerdata : *const ::core::ffi::c_void) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFindExecutableImage(hprocess : super::super::super::Foundation:: HANDLE, filename : ::windows_sys::core::PCSTR, imagefilepath : ::windows_sys::core::PSTR, callback : PFIND_EXE_FILE_CALLBACK, callerdata : *const ::core::ffi::c_void) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFindExecutableImageW(hprocess : super::super::super::Foundation:: HANDLE, filename : ::windows_sys::core::PCWSTR, imagefilepath : ::windows_sys::core::PWSTR, callback : PFIND_EXE_FILE_CALLBACKW, callerdata : *const ::core::ffi::c_void) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFindFileInPath(hprocess : super::super::super::Foundation:: HANDLE, searchpatha : ::windows_sys::core::PCSTR, filename : ::windows_sys::core::PCSTR, id : *const ::core::ffi::c_void, two : u32, three : u32, flags : SYM_FIND_ID_OPTION, foundfile : ::windows_sys::core::PSTR, callback : PFINDFILEINPATHCALLBACK, context : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFindFileInPathW(hprocess : super::super::super::Foundation:: HANDLE, searchpatha : ::windows_sys::core::PCWSTR, filename : ::windows_sys::core::PCWSTR, id : *const ::core::ffi::c_void, two : u32, three : u32, flags : SYM_FIND_ID_OPTION, foundfile : ::windows_sys::core::PWSTR, callback : PFINDFILEINPATHCALLBACKW, context : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFromAddr(hprocess : super::super::super::Foundation:: HANDLE, address : u64, displacement : *mut u64, symbol : *mut SYMBOL_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFromAddrW(hprocess : super::super::super::Foundation:: HANDLE, address : u64, displacement : *mut u64, symbol : *mut SYMBOL_INFOW) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFromIndex(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, index : u32, symbol : *mut SYMBOL_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFromIndexW(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, index : u32, symbol : *mut SYMBOL_INFOW) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFromInlineContext(hprocess : super::super::super::Foundation:: HANDLE, address : u64, inlinecontext : u32, displacement : *mut u64, symbol : *mut SYMBOL_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFromInlineContextW(hprocess : super::super::super::Foundation:: HANDLE, address : u64, inlinecontext : u32, displacement : *mut u64, symbol : *mut SYMBOL_INFOW) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFromName(hprocess : super::super::super::Foundation:: HANDLE, name : ::windows_sys::core::PCSTR, symbol : *mut SYMBOL_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFromNameW(hprocess : super::super::super::Foundation:: HANDLE, name : ::windows_sys::core::PCWSTR, symbol : *mut SYMBOL_INFOW) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFromToken(hprocess : super::super::super::Foundation:: HANDLE, base : u64, token : u32, symbol : *mut SYMBOL_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFromTokenW(hprocess : super::super::super::Foundation:: HANDLE, base : u64, token : u32, symbol : *mut SYMBOL_INFOW) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFunctionTableAccess(hprocess : super::super::super::Foundation:: HANDLE, addrbase : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFunctionTableAccess64(hprocess : super::super::super::Foundation:: HANDLE, addrbase : u64) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymFunctionTableAccess64AccessRoutines(hprocess : super::super::super::Foundation:: HANDLE, addrbase : u64, readmemoryroutine : PREAD_PROCESS_MEMORY_ROUTINE64, getmodulebaseroutine : PGET_MODULE_BASE_ROUTINE64) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetExtendedOption(option : IMAGEHLP_EXTENDED_OPTIONS) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetFileLineOffsets64(hprocess : super::super::super::Foundation:: HANDLE, modulename : ::windows_sys::core::PCSTR, filename : ::windows_sys::core::PCSTR, buffer : *mut u64, bufferlines : u32) -> u32); +::windows_targets::link!("dbghelp.dll" "system" fn SymGetHomeDirectory(r#type : u32, dir : ::windows_sys::core::PSTR, size : usize) -> ::windows_sys::core::PSTR); +::windows_targets::link!("dbghelp.dll" "system" fn SymGetHomeDirectoryW(r#type : u32, dir : ::windows_sys::core::PWSTR, size : usize) -> ::windows_sys::core::PWSTR); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLineFromAddr(hprocess : super::super::super::Foundation:: HANDLE, dwaddr : u32, pdwdisplacement : *mut u32, line : *mut IMAGEHLP_LINE) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLineFromAddr64(hprocess : super::super::super::Foundation:: HANDLE, qwaddr : u64, pdwdisplacement : *mut u32, line64 : *mut IMAGEHLP_LINE64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLineFromAddrW64(hprocess : super::super::super::Foundation:: HANDLE, dwaddr : u64, pdwdisplacement : *mut u32, line : *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLineFromInlineContext(hprocess : super::super::super::Foundation:: HANDLE, qwaddr : u64, inlinecontext : u32, qwmodulebaseaddress : u64, pdwdisplacement : *mut u32, line64 : *mut IMAGEHLP_LINE64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLineFromInlineContextW(hprocess : super::super::super::Foundation:: HANDLE, dwaddr : u64, inlinecontext : u32, qwmodulebaseaddress : u64, pdwdisplacement : *mut u32, line : *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLineFromName(hprocess : super::super::super::Foundation:: HANDLE, modulename : ::windows_sys::core::PCSTR, filename : ::windows_sys::core::PCSTR, dwlinenumber : u32, pldisplacement : *mut i32, line : *mut IMAGEHLP_LINE) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLineFromName64(hprocess : super::super::super::Foundation:: HANDLE, modulename : ::windows_sys::core::PCSTR, filename : ::windows_sys::core::PCSTR, dwlinenumber : u32, pldisplacement : *mut i32, line : *mut IMAGEHLP_LINE64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLineFromNameW64(hprocess : super::super::super::Foundation:: HANDLE, modulename : ::windows_sys::core::PCWSTR, filename : ::windows_sys::core::PCWSTR, dwlinenumber : u32, pldisplacement : *mut i32, line : *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLineNext(hprocess : super::super::super::Foundation:: HANDLE, line : *mut IMAGEHLP_LINE) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLineNext64(hprocess : super::super::super::Foundation:: HANDLE, line : *mut IMAGEHLP_LINE64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLineNextW64(hprocess : super::super::super::Foundation:: HANDLE, line : *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLinePrev(hprocess : super::super::super::Foundation:: HANDLE, line : *mut IMAGEHLP_LINE) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLinePrev64(hprocess : super::super::super::Foundation:: HANDLE, line : *mut IMAGEHLP_LINE64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetLinePrevW64(hprocess : super::super::super::Foundation:: HANDLE, line : *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetModuleBase(hprocess : super::super::super::Foundation:: HANDLE, dwaddr : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetModuleBase64(hprocess : super::super::super::Foundation:: HANDLE, qwaddr : u64) -> u64); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetModuleInfo(hprocess : super::super::super::Foundation:: HANDLE, dwaddr : u32, moduleinfo : *mut IMAGEHLP_MODULE) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetModuleInfo64(hprocess : super::super::super::Foundation:: HANDLE, qwaddr : u64, moduleinfo : *mut IMAGEHLP_MODULE64) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetModuleInfoW(hprocess : super::super::super::Foundation:: HANDLE, dwaddr : u32, moduleinfo : *mut IMAGEHLP_MODULEW) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetModuleInfoW64(hprocess : super::super::super::Foundation:: HANDLE, qwaddr : u64, moduleinfo : *mut IMAGEHLP_MODULEW64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetOmaps(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, omapto : *mut *mut OMAP, comapto : *mut u64, omapfrom : *mut *mut OMAP, comapfrom : *mut u64) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("dbghelp.dll" "system" fn SymGetOptions() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetScope(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, index : u32, symbol : *mut SYMBOL_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetScopeW(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, index : u32, symbol : *mut SYMBOL_INFOW) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSearchPath(hprocess : super::super::super::Foundation:: HANDLE, searchpatha : ::windows_sys::core::PSTR, searchpathlength : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSearchPathW(hprocess : super::super::super::Foundation:: HANDLE, searchpatha : ::windows_sys::core::PWSTR, searchpathlength : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceFile(hprocess : super::super::super::Foundation:: HANDLE, base : u64, params : ::windows_sys::core::PCSTR, filespec : ::windows_sys::core::PCSTR, filepath : ::windows_sys::core::PSTR, size : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceFileChecksum(hprocess : super::super::super::Foundation:: HANDLE, base : u64, filespec : ::windows_sys::core::PCSTR, pchecksumtype : *mut u32, pchecksum : *mut u8, checksumsize : u32, pactualbyteswritten : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceFileChecksumW(hprocess : super::super::super::Foundation:: HANDLE, base : u64, filespec : ::windows_sys::core::PCWSTR, pchecksumtype : *mut u32, pchecksum : *mut u8, checksumsize : u32, pactualbyteswritten : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceFileFromToken(hprocess : super::super::super::Foundation:: HANDLE, token : *const ::core::ffi::c_void, params : ::windows_sys::core::PCSTR, filepath : ::windows_sys::core::PSTR, size : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceFileFromTokenByTokenName(hprocess : super::super::super::Foundation:: HANDLE, token : *const ::core::ffi::c_void, tokenname : ::windows_sys::core::PCSTR, params : ::windows_sys::core::PCSTR, filepath : ::windows_sys::core::PSTR, size : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceFileFromTokenByTokenNameW(hprocess : super::super::super::Foundation:: HANDLE, token : *const ::core::ffi::c_void, tokenname : ::windows_sys::core::PCWSTR, params : ::windows_sys::core::PCWSTR, filepath : ::windows_sys::core::PWSTR, size : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceFileFromTokenW(hprocess : super::super::super::Foundation:: HANDLE, token : *const ::core::ffi::c_void, params : ::windows_sys::core::PCWSTR, filepath : ::windows_sys::core::PWSTR, size : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceFileToken(hprocess : super::super::super::Foundation:: HANDLE, base : u64, filespec : ::windows_sys::core::PCSTR, token : *mut *mut ::core::ffi::c_void, size : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceFileTokenByTokenName(hprocess : super::super::super::Foundation:: HANDLE, base : u64, filespec : ::windows_sys::core::PCSTR, tokenname : ::windows_sys::core::PCSTR, tokenparameters : ::windows_sys::core::PCSTR, token : *mut *mut ::core::ffi::c_void, size : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceFileTokenByTokenNameW(hprocess : super::super::super::Foundation:: HANDLE, base : u64, filespec : ::windows_sys::core::PCWSTR, tokenname : ::windows_sys::core::PCWSTR, tokenparameters : ::windows_sys::core::PCWSTR, token : *mut *mut ::core::ffi::c_void, size : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceFileTokenW(hprocess : super::super::super::Foundation:: HANDLE, base : u64, filespec : ::windows_sys::core::PCWSTR, token : *mut *mut ::core::ffi::c_void, size : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceFileW(hprocess : super::super::super::Foundation:: HANDLE, base : u64, params : ::windows_sys::core::PCWSTR, filespec : ::windows_sys::core::PCWSTR, filepath : ::windows_sys::core::PWSTR, size : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceVarFromToken(hprocess : super::super::super::Foundation:: HANDLE, token : *const ::core::ffi::c_void, params : ::windows_sys::core::PCSTR, varname : ::windows_sys::core::PCSTR, value : ::windows_sys::core::PSTR, size : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSourceVarFromTokenW(hprocess : super::super::super::Foundation:: HANDLE, token : *const ::core::ffi::c_void, params : ::windows_sys::core::PCWSTR, varname : ::windows_sys::core::PCWSTR, value : ::windows_sys::core::PWSTR, size : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSymFromAddr(hprocess : super::super::super::Foundation:: HANDLE, dwaddr : u32, pdwdisplacement : *mut u32, symbol : *mut IMAGEHLP_SYMBOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSymFromAddr64(hprocess : super::super::super::Foundation:: HANDLE, qwaddr : u64, pdwdisplacement : *mut u64, symbol : *mut IMAGEHLP_SYMBOL64) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSymFromName(hprocess : super::super::super::Foundation:: HANDLE, name : ::windows_sys::core::PCSTR, symbol : *mut IMAGEHLP_SYMBOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSymFromName64(hprocess : super::super::super::Foundation:: HANDLE, name : ::windows_sys::core::PCSTR, symbol : *mut IMAGEHLP_SYMBOL64) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSymNext(hprocess : super::super::super::Foundation:: HANDLE, symbol : *mut IMAGEHLP_SYMBOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSymNext64(hprocess : super::super::super::Foundation:: HANDLE, symbol : *mut IMAGEHLP_SYMBOL64) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSymPrev(hprocess : super::super::super::Foundation:: HANDLE, symbol : *mut IMAGEHLP_SYMBOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSymPrev64(hprocess : super::super::super::Foundation:: HANDLE, symbol : *mut IMAGEHLP_SYMBOL64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSymbolFile(hprocess : super::super::super::Foundation:: HANDLE, sympath : ::windows_sys::core::PCSTR, imagefile : ::windows_sys::core::PCSTR, r#type : u32, symbolfile : ::windows_sys::core::PSTR, csymbolfile : usize, dbgfile : ::windows_sys::core::PSTR, cdbgfile : usize) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetSymbolFileW(hprocess : super::super::super::Foundation:: HANDLE, sympath : ::windows_sys::core::PCWSTR, imagefile : ::windows_sys::core::PCWSTR, r#type : u32, symbolfile : ::windows_sys::core::PWSTR, csymbolfile : usize, dbgfile : ::windows_sys::core::PWSTR, cdbgfile : usize) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetTypeFromName(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, name : ::windows_sys::core::PCSTR, symbol : *mut SYMBOL_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetTypeFromNameW(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, name : ::windows_sys::core::PCWSTR, symbol : *mut SYMBOL_INFOW) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetTypeInfo(hprocess : super::super::super::Foundation:: HANDLE, modbase : u64, typeid : u32, gettype : IMAGEHLP_SYMBOL_TYPE_INFO, pinfo : *mut ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetTypeInfoEx(hprocess : super::super::super::Foundation:: HANDLE, modbase : u64, params : *mut IMAGEHLP_GET_TYPE_INFO_PARAMS) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymGetUnwindInfo(hprocess : super::super::super::Foundation:: HANDLE, address : u64, buffer : *mut ::core::ffi::c_void, size : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymInitialize(hprocess : super::super::super::Foundation:: HANDLE, usersearchpath : ::windows_sys::core::PCSTR, finvadeprocess : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymInitializeW(hprocess : super::super::super::Foundation:: HANDLE, usersearchpath : ::windows_sys::core::PCWSTR, finvadeprocess : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymLoadModule(hprocess : super::super::super::Foundation:: HANDLE, hfile : super::super::super::Foundation:: HANDLE, imagename : ::windows_sys::core::PCSTR, modulename : ::windows_sys::core::PCSTR, baseofdll : u32, sizeofdll : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymLoadModule64(hprocess : super::super::super::Foundation:: HANDLE, hfile : super::super::super::Foundation:: HANDLE, imagename : ::windows_sys::core::PCSTR, modulename : ::windows_sys::core::PCSTR, baseofdll : u64, sizeofdll : u32) -> u64); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymLoadModuleEx(hprocess : super::super::super::Foundation:: HANDLE, hfile : super::super::super::Foundation:: HANDLE, imagename : ::windows_sys::core::PCSTR, modulename : ::windows_sys::core::PCSTR, baseofdll : u64, dllsize : u32, data : *const MODLOAD_DATA, flags : SYM_LOAD_FLAGS) -> u64); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymLoadModuleExW(hprocess : super::super::super::Foundation:: HANDLE, hfile : super::super::super::Foundation:: HANDLE, imagename : ::windows_sys::core::PCWSTR, modulename : ::windows_sys::core::PCWSTR, baseofdll : u64, dllsize : u32, data : *const MODLOAD_DATA, flags : SYM_LOAD_FLAGS) -> u64); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymMatchFileName(filename : ::windows_sys::core::PCSTR, r#match : ::windows_sys::core::PCSTR, filenamestop : *mut ::windows_sys::core::PSTR, matchstop : *mut ::windows_sys::core::PSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymMatchFileNameW(filename : ::windows_sys::core::PCWSTR, r#match : ::windows_sys::core::PCWSTR, filenamestop : *mut ::windows_sys::core::PWSTR, matchstop : *mut ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymMatchString(string : ::windows_sys::core::PCSTR, expression : ::windows_sys::core::PCSTR, fcase : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymMatchStringA(string : ::windows_sys::core::PCSTR, expression : ::windows_sys::core::PCSTR, fcase : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymMatchStringW(string : ::windows_sys::core::PCWSTR, expression : ::windows_sys::core::PCWSTR, fcase : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymNext(hprocess : super::super::super::Foundation:: HANDLE, si : *mut SYMBOL_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymNextW(hprocess : super::super::super::Foundation:: HANDLE, siw : *mut SYMBOL_INFOW) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymPrev(hprocess : super::super::super::Foundation:: HANDLE, si : *mut SYMBOL_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymPrevW(hprocess : super::super::super::Foundation:: HANDLE, siw : *mut SYMBOL_INFOW) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymQueryInlineTrace(hprocess : super::super::super::Foundation:: HANDLE, startaddress : u64, startcontext : u32, startretaddress : u64, curaddress : u64, curcontext : *mut u32, curframeindex : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymRefreshModuleList(hprocess : super::super::super::Foundation:: HANDLE) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymRegisterCallback(hprocess : super::super::super::Foundation:: HANDLE, callbackfunction : PSYMBOL_REGISTERED_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymRegisterCallback64(hprocess : super::super::super::Foundation:: HANDLE, callbackfunction : PSYMBOL_REGISTERED_CALLBACK64, usercontext : u64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymRegisterCallbackW64(hprocess : super::super::super::Foundation:: HANDLE, callbackfunction : PSYMBOL_REGISTERED_CALLBACK64, usercontext : u64) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymRegisterFunctionEntryCallback(hprocess : super::super::super::Foundation:: HANDLE, callbackfunction : PSYMBOL_FUNCENTRY_CALLBACK, usercontext : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymRegisterFunctionEntryCallback64(hprocess : super::super::super::Foundation:: HANDLE, callbackfunction : PSYMBOL_FUNCENTRY_CALLBACK64, usercontext : u64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSearch(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, index : u32, symtag : u32, mask : ::windows_sys::core::PCSTR, address : u64, enumsymbolscallback : PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext : *const ::core::ffi::c_void, options : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSearchW(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, index : u32, symtag : u32, mask : ::windows_sys::core::PCWSTR, address : u64, enumsymbolscallback : PSYM_ENUMERATESYMBOLS_CALLBACKW, usercontext : *const ::core::ffi::c_void, options : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSetContext(hprocess : super::super::super::Foundation:: HANDLE, stackframe : *const IMAGEHLP_STACK_FRAME, context : *const ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSetExtendedOption(option : IMAGEHLP_EXTENDED_OPTIONS, value : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSetHomeDirectory(hprocess : super::super::super::Foundation:: HANDLE, dir : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSetHomeDirectoryW(hprocess : super::super::super::Foundation:: HANDLE, dir : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("dbghelp.dll" "system" fn SymSetOptions(symoptions : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSetParentWindow(hwnd : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSetScopeFromAddr(hprocess : super::super::super::Foundation:: HANDLE, address : u64) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSetScopeFromIndex(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64, index : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSetScopeFromInlineContext(hprocess : super::super::super::Foundation:: HANDLE, address : u64, inlinecontext : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSetSearchPath(hprocess : super::super::super::Foundation:: HANDLE, searchpatha : ::windows_sys::core::PCSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSetSearchPathW(hprocess : super::super::super::Foundation:: HANDLE, searchpatha : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvDeltaName(hprocess : super::super::super::Foundation:: HANDLE, sympath : ::windows_sys::core::PCSTR, r#type : ::windows_sys::core::PCSTR, file1 : ::windows_sys::core::PCSTR, file2 : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PCSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvDeltaNameW(hprocess : super::super::super::Foundation:: HANDLE, sympath : ::windows_sys::core::PCWSTR, r#type : ::windows_sys::core::PCWSTR, file1 : ::windows_sys::core::PCWSTR, file2 : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PCWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvGetFileIndexInfo(file : ::windows_sys::core::PCSTR, info : *mut SYMSRV_INDEX_INFO, flags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvGetFileIndexInfoW(file : ::windows_sys::core::PCWSTR, info : *mut SYMSRV_INDEX_INFOW, flags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvGetFileIndexString(hprocess : super::super::super::Foundation:: HANDLE, srvpath : ::windows_sys::core::PCSTR, file : ::windows_sys::core::PCSTR, index : ::windows_sys::core::PSTR, size : usize, flags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvGetFileIndexStringW(hprocess : super::super::super::Foundation:: HANDLE, srvpath : ::windows_sys::core::PCWSTR, file : ::windows_sys::core::PCWSTR, index : ::windows_sys::core::PWSTR, size : usize, flags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvGetFileIndexes(file : ::windows_sys::core::PCSTR, id : *mut ::windows_sys::core::GUID, val1 : *mut u32, val2 : *mut u32, flags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvGetFileIndexesW(file : ::windows_sys::core::PCWSTR, id : *mut ::windows_sys::core::GUID, val1 : *mut u32, val2 : *mut u32, flags : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvGetSupplement(hprocess : super::super::super::Foundation:: HANDLE, sympath : ::windows_sys::core::PCSTR, node : ::windows_sys::core::PCSTR, file : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PCSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvGetSupplementW(hprocess : super::super::super::Foundation:: HANDLE, sympath : ::windows_sys::core::PCWSTR, node : ::windows_sys::core::PCWSTR, file : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PCWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvIsStore(hprocess : super::super::super::Foundation:: HANDLE, path : ::windows_sys::core::PCSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvIsStoreW(hprocess : super::super::super::Foundation:: HANDLE, path : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvStoreFile(hprocess : super::super::super::Foundation:: HANDLE, srvpath : ::windows_sys::core::PCSTR, file : ::windows_sys::core::PCSTR, flags : SYM_SRV_STORE_FILE_FLAGS) -> ::windows_sys::core::PCSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvStoreFileW(hprocess : super::super::super::Foundation:: HANDLE, srvpath : ::windows_sys::core::PCWSTR, file : ::windows_sys::core::PCWSTR, flags : SYM_SRV_STORE_FILE_FLAGS) -> ::windows_sys::core::PCWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvStoreSupplement(hprocess : super::super::super::Foundation:: HANDLE, srvpath : ::windows_sys::core::PCSTR, node : ::windows_sys::core::PCSTR, file : ::windows_sys::core::PCSTR, flags : u32) -> ::windows_sys::core::PCSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymSrvStoreSupplementW(hprocess : super::super::super::Foundation:: HANDLE, sympath : ::windows_sys::core::PCWSTR, node : ::windows_sys::core::PCWSTR, file : ::windows_sys::core::PCWSTR, flags : u32) -> ::windows_sys::core::PCWSTR); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymUnDName(sym : *const IMAGEHLP_SYMBOL, undecname : ::windows_sys::core::PSTR, undecnamelength : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymUnDName64(sym : *const IMAGEHLP_SYMBOL64, undecname : ::windows_sys::core::PSTR, undecnamelength : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymUnloadModule(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dbghelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SymUnloadModule64(hprocess : super::super::super::Foundation:: HANDLE, baseofdll : u64) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-core-errorhandling-l1-1-3.dll" "system" fn TerminateProcessOnMemoryExhaustion(failedallocationsize : usize) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TouchFileTimes(filehandle : super::super::super::Foundation:: HANDLE, psystemtime : *const super::super::super::Foundation:: SYSTEMTIME) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("dbghelp.dll" "system" fn UnDecorateSymbolName(name : ::windows_sys::core::PCSTR, outputstring : ::windows_sys::core::PSTR, maxstringlength : u32, flags : u32) -> u32); +::windows_targets::link!("dbghelp.dll" "system" fn UnDecorateSymbolNameW(name : ::windows_sys::core::PCWSTR, outputstring : ::windows_sys::core::PWSTR, maxstringlength : u32, flags : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`"] fn UnMapAndLoad(loadedimage : *mut LOADED_IMAGE) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn UnhandledExceptionFilter(exceptioninfo : *const EXCEPTION_POINTERS) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn UpdateDebugInfoFile(imagefilename : ::windows_sys::core::PCSTR, symbolpath : ::windows_sys::core::PCSTR, debugfilepath : ::windows_sys::core::PSTR, ntheaders : *const IMAGE_NT_HEADERS32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("imagehlp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn UpdateDebugInfoFileEx(imagefilename : ::windows_sys::core::PCSTR, symbolpath : ::windows_sys::core::PCSTR, debugfilepath : ::windows_sys::core::PSTR, ntheaders : *const IMAGE_NT_HEADERS32, oldchecksum : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] fn WaitForDebugEvent(lpdebugevent : *mut DEBUG_EVENT, dwmilliseconds : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] fn WaitForDebugEventEx(lpdebugevent : *mut DEBUG_EVENT, dwmilliseconds : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Wow64GetThreadContext(hthread : super::super::super::Foundation:: HANDLE, lpcontext : *mut WOW64_CONTEXT) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Wow64GetThreadSelectorEntry(hthread : super::super::super::Foundation:: HANDLE, dwselector : u32, lpselectorentry : *mut WOW64_LDT_ENTRY) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Wow64SetThreadContext(hthread : super::super::super::Foundation:: HANDLE, lpcontext : *const WOW64_CONTEXT) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteProcessMemory(hprocess : super::super::super::Foundation:: HANDLE, lpbaseaddress : *const ::core::ffi::c_void, lpbuffer : *const ::core::ffi::c_void, nsize : usize, lpnumberofbyteswritten : *mut usize) -> super::super::super::Foundation:: BOOL); +pub type IDebugExtendedProperty = *mut ::core::ffi::c_void; +pub type IDebugProperty = *mut ::core::ffi::c_void; +pub type IDebugPropertyEnumType_All = *mut ::core::ffi::c_void; +pub type IDebugPropertyEnumType_Arguments = *mut ::core::ffi::c_void; +pub type IDebugPropertyEnumType_Locals = *mut ::core::ffi::c_void; +pub type IDebugPropertyEnumType_LocalsPlusArgs = *mut ::core::ffi::c_void; +pub type IDebugPropertyEnumType_Registers = *mut ::core::ffi::c_void; +pub type IEnumDebugExtendedPropertyInfo = *mut ::core::ffi::c_void; +pub type IEnumDebugPropertyInfo = *mut ::core::ffi::c_void; +pub type IObjectSafety = *mut ::core::ffi::c_void; +pub type IPerPropertyBrowsing2 = *mut ::core::ffi::c_void; +pub const ABNORMAL_RESET_DETECTED: BUGCHECK_ERROR = 327u32; +pub const ACPI_BIOS_ERROR: BUGCHECK_ERROR = 165u32; +pub const ACPI_BIOS_FATAL_ERROR: BUGCHECK_ERROR = 224u32; +pub const ACPI_DRIVER_INTERNAL: BUGCHECK_ERROR = 163u32; +pub const ACPI_FIRMWARE_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = 464u32; +pub const ACTIVE_EX_WORKER_THREAD_TERMINATION: BUGCHECK_ERROR = 233u32; +pub const AGP_GART_CORRUPTION: BUGCHECK_ERROR = 261u32; +pub const AGP_ILLEGALLY_REPROGRAMMED: BUGCHECK_ERROR = 262u32; +pub const AGP_INTERNAL: BUGCHECK_ERROR = 277u32; +pub const AGP_INVALID_ACCESS: BUGCHECK_ERROR = 260u32; +pub const APC_INDEX_MISMATCH: BUGCHECK_ERROR = 1u32; +pub const API_VERSION_NUMBER: u32 = 12u32; +pub const APP_TAGGING_INITIALIZATION_FAILED: BUGCHECK_ERROR = 266u32; +pub const ASSIGN_DRIVE_LETTERS_FAILED: BUGCHECK_ERROR = 114u32; +pub const ATDISK_DRIVER_INTERNAL: BUGCHECK_ERROR = 66u32; +pub const ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY: BUGCHECK_ERROR = 252u32; +pub const ATTEMPTED_SWITCH_FROM_DPC: BUGCHECK_ERROR = 184u32; +pub const ATTEMPTED_WRITE_TO_CM_PROTECTED_STORAGE: BUGCHECK_ERROR = 284u32; +pub const ATTEMPTED_WRITE_TO_READONLY_MEMORY: BUGCHECK_ERROR = 190u32; +pub const AUDIT_FAILURE: BUGCHECK_ERROR = 134u32; +pub const AZURE_DEVICE_FW_DUMP: BUGCHECK_ERROR = 482u32; +pub const AddrMode1616: ADDRESS_MODE = 0i32; +pub const AddrMode1632: ADDRESS_MODE = 1i32; +pub const AddrModeFlat: ADDRESS_MODE = 3i32; +pub const AddrModeReal: ADDRESS_MODE = 2i32; +pub const BAD_EXHANDLE: BUGCHECK_ERROR = 167u32; +pub const BAD_OBJECT_HEADER: BUGCHECK_ERROR = 393u32; +pub const BAD_POOL_CALLER: BUGCHECK_ERROR = 194u32; +pub const BAD_POOL_HEADER: BUGCHECK_ERROR = 25u32; +pub const BAD_SYSTEM_CONFIG_INFO: BUGCHECK_ERROR = 116u32; +pub const BC_BLUETOOTH_VERIFIER_FAULT: BUGCHECK_ERROR = 3070u32; +pub const BC_BTHMINI_VERIFIER_FAULT: BUGCHECK_ERROR = 3071u32; +pub const BGI_DETECTED_VIOLATION: BUGCHECK_ERROR = 177u32; +pub const BIND_ALL_IMAGES: u32 = 4u32; +pub const BIND_CACHE_IMPORT_DLLS: u32 = 8u32; +pub const BIND_NO_BOUND_IMPORTS: u32 = 1u32; +pub const BIND_NO_UPDATE: u32 = 2u32; +pub const BIND_REPORT_64BIT_VA: u32 = 16u32; +pub const BITLOCKER_FATAL_ERROR: BUGCHECK_ERROR = 288u32; +pub const BLUETOOTH_ERROR_RECOVERY_LIVEDUMP: BUGCHECK_ERROR = 422u32; +pub const BOOTING_IN_SAFEMODE_DSREPAIR: BUGCHECK_ERROR = 170u32; +pub const BOOTING_IN_SAFEMODE_MINIMAL: BUGCHECK_ERROR = 168u32; +pub const BOOTING_IN_SAFEMODE_NETWORK: BUGCHECK_ERROR = 169u32; +pub const BOOTLOG_ENABLED: BUGCHECK_ERROR = 183u32; +pub const BOOTLOG_LOADED: BUGCHECK_ERROR = 181u32; +pub const BOOTLOG_NOT_LOADED: BUGCHECK_ERROR = 182u32; +pub const BOOTPROC_INITIALIZATION_FAILED: BUGCHECK_ERROR = 110u32; +pub const BOUND_IMAGE_UNSUPPORTED: BUGCHECK_ERROR = 151u32; +pub const BREAKAWAY_CABLE_TRANSITION: BUGCHECK_ERROR = 483u32; +pub const BUGCHECK_CONTEXT_MODIFIER: BUGCHECK_ERROR = 2147483648u32; +pub const BUGCODE_ID_DRIVER: BUGCHECK_ERROR = 210u32; +pub const BUGCODE_MBBADAPTER_DRIVER: BUGCHECK_ERROR = 477u32; +pub const BUGCODE_NDIS_DRIVER: BUGCHECK_ERROR = 124u32; +pub const BUGCODE_NDIS_DRIVER_LIVE_DUMP: BUGCHECK_ERROR = 350u32; +pub const BUGCODE_NETADAPTER_DRIVER: BUGCHECK_ERROR = 414u32; +pub const BUGCODE_USB3_DRIVER: BUGCHECK_ERROR = 324u32; +pub const BUGCODE_USB_DRIVER: BUGCHECK_ERROR = 254u32; +pub const BUGCODE_WIFIADAPTER_DRIVER: BUGCHECK_ERROR = 478u32; +pub const BindExpandFileHeaders: IMAGEHLP_STATUS_REASON = 10i32; +pub const BindForwarder: IMAGEHLP_STATUS_REASON = 7i32; +pub const BindForwarder32: IMAGEHLP_STATUS_REASON = 16i32; +pub const BindForwarder64: IMAGEHLP_STATUS_REASON = 17i32; +pub const BindForwarderNOT: IMAGEHLP_STATUS_REASON = 8i32; +pub const BindForwarderNOT32: IMAGEHLP_STATUS_REASON = 18i32; +pub const BindForwarderNOT64: IMAGEHLP_STATUS_REASON = 19i32; +pub const BindImageComplete: IMAGEHLP_STATUS_REASON = 11i32; +pub const BindImageModified: IMAGEHLP_STATUS_REASON = 9i32; +pub const BindImportModule: IMAGEHLP_STATUS_REASON = 5i32; +pub const BindImportModuleFailed: IMAGEHLP_STATUS_REASON = 3i32; +pub const BindImportProcedure: IMAGEHLP_STATUS_REASON = 6i32; +pub const BindImportProcedure32: IMAGEHLP_STATUS_REASON = 14i32; +pub const BindImportProcedure64: IMAGEHLP_STATUS_REASON = 15i32; +pub const BindImportProcedureFailed: IMAGEHLP_STATUS_REASON = 4i32; +pub const BindMismatchedSymbols: IMAGEHLP_STATUS_REASON = 12i32; +pub const BindNoRoomInImage: IMAGEHLP_STATUS_REASON = 2i32; +pub const BindOutOfMemory: IMAGEHLP_STATUS_REASON = 0i32; +pub const BindRvaToVaFailed: IMAGEHLP_STATUS_REASON = 1i32; +pub const BindSymbolsNotUpdated: IMAGEHLP_STATUS_REASON = 13i32; +pub const CACHE_INITIALIZATION_FAILED: BUGCHECK_ERROR = 102u32; +pub const CACHE_MANAGER: BUGCHECK_ERROR = 52u32; +pub const CALL_HAS_NOT_RETURNED_WATCHDOG_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = 419u32; +pub const CANCEL_STATE_IN_COMPLETED_IRP: BUGCHECK_ERROR = 72u32; +pub const CANNOT_WRITE_CONFIGURATION: BUGCHECK_ERROR = 117u32; +pub const CBA_CHECK_ARM_MACHINE_THUMB_TYPE_OVERRIDE: u32 = 2147483648u32; +pub const CBA_CHECK_ENGOPT_DISALLOW_NETWORK_PATHS: u32 = 1879048192u32; +pub const CBA_DEBUG_INFO: u32 = 268435456u32; +pub const CBA_DEFERRED_SYMBOL_LOAD_CANCEL: u32 = 7u32; +pub const CBA_DEFERRED_SYMBOL_LOAD_COMPLETE: u32 = 2u32; +pub const CBA_DEFERRED_SYMBOL_LOAD_FAILURE: u32 = 3u32; +pub const CBA_DEFERRED_SYMBOL_LOAD_PARTIAL: u32 = 32u32; +pub const CBA_DEFERRED_SYMBOL_LOAD_START: u32 = 1u32; +pub const CBA_DUPLICATE_SYMBOL: u32 = 5u32; +pub const CBA_ENGINE_PRESENT: u32 = 1610612736u32; +pub const CBA_EVENT: u32 = 16u32; +pub const CBA_MAP_JIT_SYMBOL: u32 = 2684354560u32; +pub const CBA_READ_MEMORY: u32 = 6u32; +pub const CBA_SET_OPTIONS: u32 = 8u32; +pub const CBA_SRCSRV_EVENT: u32 = 1073741824u32; +pub const CBA_SRCSRV_INFO: u32 = 536870912u32; +pub const CBA_SYMBOLS_UNLOADED: u32 = 4u32; +pub const CBA_UPDATE_STATUS_BAR: u32 = 1342177280u32; +pub const CBA_XML_LOG: u32 = 2415919104u32; +pub const CDFS_FILE_SYSTEM: BUGCHECK_ERROR = 38u32; +pub const CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO: u32 = 4u32; +pub const CERT_PE_IMAGE_DIGEST_DEBUG_INFO: u32 = 1u32; +pub const CERT_PE_IMAGE_DIGEST_NON_PE_INFO: u32 = 8u32; +pub const CERT_PE_IMAGE_DIGEST_RESOURCES: u32 = 2u32; +pub const CERT_SECTION_TYPE_ANY: u32 = 255u32; +pub const CHECKSUM_MAPVIEW_FAILURE: u32 = 3u32; +pub const CHECKSUM_MAP_FAILURE: u32 = 2u32; +pub const CHECKSUM_OPEN_FAILURE: u32 = 1u32; +pub const CHECKSUM_SUCCESS: u32 = 0u32; +pub const CHECKSUM_UNICODE_FAILURE: u32 = 4u32; +pub const CHIPSET_DETECTED_ERROR: BUGCHECK_ERROR = 185u32; +pub const CID_HANDLE_CREATION: BUGCHECK_ERROR = 22u32; +pub const CID_HANDLE_DELETION: BUGCHECK_ERROR = 23u32; +pub const CLOCK_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = 257u32; +pub const CLUSTER_CLUSPORT_STATUS_IO_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = 377u32; +pub const CLUSTER_CSVFS_LIVEDUMP: BUGCHECK_ERROR = 392u32; +pub const CLUSTER_CSV_CLUSSVC_DISCONNECT_WATCHDOG: BUGCHECK_ERROR = 368u32; +pub const CLUSTER_CSV_CLUSTER_WATCHDOG_LIVEDUMP: BUGCHECK_ERROR = 363u32; +pub const CLUSTER_CSV_SNAPSHOT_DEVICE_INFO_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = 359u32; +pub const CLUSTER_CSV_STATE_TRANSITION_INTERVAL_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = 367u32; +pub const CLUSTER_CSV_STATE_TRANSITION_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = 360u32; +pub const CLUSTER_CSV_STATUS_IO_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = 357u32; +pub const CLUSTER_CSV_VOLUME_ARRIVAL_LIVEDUMP: BUGCHECK_ERROR = 361u32; +pub const CLUSTER_CSV_VOLUME_REMOVAL_LIVEDUMP: BUGCHECK_ERROR = 362u32; +pub const CLUSTER_RESOURCE_CALL_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = 358u32; +pub const CLUSTER_SVHDX_LIVEDUMP: BUGCHECK_ERROR = 413u32; +pub const CNSS_FILE_SYSTEM_FILTER: BUGCHECK_ERROR = 164u32; +pub const CONFIG_INITIALIZATION_FAILED: BUGCHECK_ERROR = 103u32; +pub const CONFIG_LIST_FAILED: BUGCHECK_ERROR = 115u32; +pub const CONNECTED_STANDBY_WATCHDOG_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = 351u32; +pub const CONTEXT_ALL_AMD64: CONTEXT_FLAGS = 1048607u32; +pub const CONTEXT_ALL_ARM: CONTEXT_FLAGS = 2097167u32; +pub const CONTEXT_ALL_ARM64: CONTEXT_FLAGS = 4194335u32; +pub const CONTEXT_ALL_X86: CONTEXT_FLAGS = 65599u32; +pub const CONTEXT_AMD64: CONTEXT_FLAGS = 1048576u32; +pub const CONTEXT_ARM: CONTEXT_FLAGS = 2097152u32; +pub const CONTEXT_ARM64: CONTEXT_FLAGS = 4194304u32; +pub const CONTEXT_CONTROL_AMD64: CONTEXT_FLAGS = 1048577u32; +pub const CONTEXT_CONTROL_ARM: CONTEXT_FLAGS = 2097153u32; +pub const CONTEXT_CONTROL_ARM64: CONTEXT_FLAGS = 4194305u32; +pub const CONTEXT_CONTROL_X86: CONTEXT_FLAGS = 65537u32; +pub const CONTEXT_DEBUG_REGISTERS_AMD64: CONTEXT_FLAGS = 1048592u32; +pub const CONTEXT_DEBUG_REGISTERS_ARM: CONTEXT_FLAGS = 2097160u32; +pub const CONTEXT_DEBUG_REGISTERS_ARM64: CONTEXT_FLAGS = 4194312u32; +pub const CONTEXT_DEBUG_REGISTERS_X86: CONTEXT_FLAGS = 65552u32; +pub const CONTEXT_EXCEPTION_ACTIVE_AMD64: CONTEXT_FLAGS = 134217728u32; +pub const CONTEXT_EXCEPTION_ACTIVE_ARM: CONTEXT_FLAGS = 134217728u32; +pub const CONTEXT_EXCEPTION_ACTIVE_ARM64: CONTEXT_FLAGS = 134217728u32; +pub const CONTEXT_EXCEPTION_ACTIVE_X86: CONTEXT_FLAGS = 134217728u32; +pub const CONTEXT_EXCEPTION_REPORTING_AMD64: CONTEXT_FLAGS = 2147483648u32; +pub const CONTEXT_EXCEPTION_REPORTING_ARM: CONTEXT_FLAGS = 2147483648u32; +pub const CONTEXT_EXCEPTION_REPORTING_ARM64: CONTEXT_FLAGS = 2147483648u32; +pub const CONTEXT_EXCEPTION_REPORTING_X86: CONTEXT_FLAGS = 2147483648u32; +pub const CONTEXT_EXCEPTION_REQUEST_AMD64: CONTEXT_FLAGS = 1073741824u32; +pub const CONTEXT_EXCEPTION_REQUEST_ARM: CONTEXT_FLAGS = 1073741824u32; +pub const CONTEXT_EXCEPTION_REQUEST_ARM64: CONTEXT_FLAGS = 1073741824u32; +pub const CONTEXT_EXCEPTION_REQUEST_X86: CONTEXT_FLAGS = 1073741824u32; +pub const CONTEXT_EXTENDED_REGISTERS_X86: CONTEXT_FLAGS = 65568u32; +pub const CONTEXT_FLOATING_POINT_AMD64: CONTEXT_FLAGS = 1048584u32; +pub const CONTEXT_FLOATING_POINT_ARM: CONTEXT_FLAGS = 2097156u32; +pub const CONTEXT_FLOATING_POINT_ARM64: CONTEXT_FLAGS = 4194308u32; +pub const CONTEXT_FLOATING_POINT_X86: CONTEXT_FLAGS = 65544u32; +pub const CONTEXT_FULL_AMD64: CONTEXT_FLAGS = 1048587u32; +pub const CONTEXT_FULL_ARM: CONTEXT_FLAGS = 2097159u32; +pub const CONTEXT_FULL_ARM64: CONTEXT_FLAGS = 4194311u32; +pub const CONTEXT_FULL_X86: CONTEXT_FLAGS = 65543u32; +pub const CONTEXT_INTEGER_AMD64: CONTEXT_FLAGS = 1048578u32; +pub const CONTEXT_INTEGER_ARM: CONTEXT_FLAGS = 2097154u32; +pub const CONTEXT_INTEGER_ARM64: CONTEXT_FLAGS = 4194306u32; +pub const CONTEXT_INTEGER_X86: CONTEXT_FLAGS = 65538u32; +pub const CONTEXT_KERNEL_CET_AMD64: CONTEXT_FLAGS = 1048704u32; +pub const CONTEXT_KERNEL_DEBUGGER_AMD64: CONTEXT_FLAGS = 67108864u32; +pub const CONTEXT_RET_TO_GUEST_ARM64: CONTEXT_FLAGS = 1073741824u32; +pub const CONTEXT_SEGMENTS_AMD64: CONTEXT_FLAGS = 1048580u32; +pub const CONTEXT_SEGMENTS_X86: CONTEXT_FLAGS = 65540u32; +pub const CONTEXT_SERVICE_ACTIVE_AMD64: CONTEXT_FLAGS = 268435456u32; +pub const CONTEXT_SERVICE_ACTIVE_ARM: CONTEXT_FLAGS = 268435456u32; +pub const CONTEXT_SERVICE_ACTIVE_ARM64: CONTEXT_FLAGS = 268435456u32; +pub const CONTEXT_SERVICE_ACTIVE_X86: CONTEXT_FLAGS = 268435456u32; +pub const CONTEXT_UNWOUND_TO_CALL_AMD64: CONTEXT_FLAGS = 536870912u32; +pub const CONTEXT_UNWOUND_TO_CALL_ARM: CONTEXT_FLAGS = 536870912u32; +pub const CONTEXT_UNWOUND_TO_CALL_ARM64: CONTEXT_FLAGS = 536870912u32; +pub const CONTEXT_X18_ARM64: CONTEXT_FLAGS = 4194320u32; +pub const CONTEXT_X86: CONTEXT_FLAGS = 65536u32; +pub const CONTEXT_XSTATE_AMD64: CONTEXT_FLAGS = 1048640u32; +pub const CONTEXT_XSTATE_X86: CONTEXT_FLAGS = 65600u32; +pub const COREMSGCALL_INTERNAL_ERROR: BUGCHECK_ERROR = 371u32; +pub const COREMSG_INTERNAL_ERROR: BUGCHECK_ERROR = 372u32; +pub const CORRUPT_ACCESS_TOKEN: BUGCHECK_ERROR = 40u32; +pub const CRASHDUMP_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = 486u32; +pub const CREATE_DELETE_LOCK_NOT_LOCKED: BUGCHECK_ERROR = 20u32; +pub const CREATE_PROCESS_DEBUG_EVENT: DEBUG_EVENT_CODE = 3u32; +pub const CREATE_THREAD_DEBUG_EVENT: DEBUG_EVENT_CODE = 2u32; +pub const CRITICAL_INITIALIZATION_FAILURE: BUGCHECK_ERROR = 317u32; +pub const CRITICAL_OBJECT_TERMINATION: BUGCHECK_ERROR = 244u32; +pub const CRITICAL_PROCESS_DIED: BUGCHECK_ERROR = 239u32; +pub const CRITICAL_SERVICE_FAILED: BUGCHECK_ERROR = 90u32; +pub const CRITICAL_STRUCTURE_CORRUPTION: BUGCHECK_ERROR = 265u32; +pub const CRYPTO_LIBRARY_INTERNAL_ERROR: BUGCHECK_ERROR = 369u32; +pub const CRYPTO_SELF_TEST_FAILURE: BUGCHECK_ERROR = 291u32; +pub const CancelCallback: MINIDUMP_CALLBACK_TYPE = 6i32; +pub const CommentStreamA: MINIDUMP_STREAM_TYPE = 10i32; +pub const CommentStreamW: MINIDUMP_STREAM_TYPE = 11i32; +pub const DAM_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = 491u32; +pub const DATA_BUS_ERROR: BUGCHECK_ERROR = 46u32; +pub const DATA_COHERENCY_EXCEPTION: BUGCHECK_ERROR = 85u32; +pub const DBGPROP_ATTRIB_ACCESS_FINAL: DBGPROP_ATTRIB_FLAGS = 32768i32; +pub const DBGPROP_ATTRIB_ACCESS_PRIVATE: DBGPROP_ATTRIB_FLAGS = 8192i32; +pub const DBGPROP_ATTRIB_ACCESS_PROTECTED: DBGPROP_ATTRIB_FLAGS = 16384i32; +pub const DBGPROP_ATTRIB_ACCESS_PUBLIC: DBGPROP_ATTRIB_FLAGS = 4096i32; +pub const DBGPROP_ATTRIB_FRAME_INCATCHBLOCK: DBGPROP_ATTRIB_FLAGS = 33554432i32; +pub const DBGPROP_ATTRIB_FRAME_INFINALLYBLOCK: DBGPROP_ATTRIB_FLAGS = 67108864i32; +pub const DBGPROP_ATTRIB_FRAME_INTRYBLOCK: DBGPROP_ATTRIB_FLAGS = 16777216i32; +pub const DBGPROP_ATTRIB_HAS_EXTENDED_ATTRIBS: DBGPROP_ATTRIB_FLAGS = 8388608i32; +pub const DBGPROP_ATTRIB_NO_ATTRIB: DBGPROP_ATTRIB_FLAGS = 0i32; +pub const DBGPROP_ATTRIB_STORAGE_FIELD: DBGPROP_ATTRIB_FLAGS = 262144i32; +pub const DBGPROP_ATTRIB_STORAGE_GLOBAL: DBGPROP_ATTRIB_FLAGS = 65536i32; +pub const DBGPROP_ATTRIB_STORAGE_STATIC: DBGPROP_ATTRIB_FLAGS = 131072i32; +pub const DBGPROP_ATTRIB_STORAGE_VIRTUAL: DBGPROP_ATTRIB_FLAGS = 524288i32; +pub const DBGPROP_ATTRIB_TYPE_IS_CONSTANT: DBGPROP_ATTRIB_FLAGS = 1048576i32; +pub const DBGPROP_ATTRIB_TYPE_IS_SYNCHRONIZED: DBGPROP_ATTRIB_FLAGS = 2097152i32; +pub const DBGPROP_ATTRIB_TYPE_IS_VOLATILE: DBGPROP_ATTRIB_FLAGS = 4194304i32; +pub const DBGPROP_ATTRIB_VALUE_IS_EVENT: DBGPROP_ATTRIB_FLAGS = 512i32; +pub const DBGPROP_ATTRIB_VALUE_IS_EXPANDABLE: DBGPROP_ATTRIB_FLAGS = 16i32; +pub const DBGPROP_ATTRIB_VALUE_IS_FAKE: DBGPROP_ATTRIB_FLAGS = 32i32; +pub const DBGPROP_ATTRIB_VALUE_IS_INVALID: DBGPROP_ATTRIB_FLAGS = 8i32; +pub const DBGPROP_ATTRIB_VALUE_IS_METHOD: DBGPROP_ATTRIB_FLAGS = 256i32; +pub const DBGPROP_ATTRIB_VALUE_IS_RAW_STRING: DBGPROP_ATTRIB_FLAGS = 1024i32; +pub const DBGPROP_ATTRIB_VALUE_IS_RETURN_VALUE: DBGPROP_ATTRIB_FLAGS = 134217728i32; +pub const DBGPROP_ATTRIB_VALUE_PENDING_MUTATION: DBGPROP_ATTRIB_FLAGS = 268435456i32; +pub const DBGPROP_ATTRIB_VALUE_READONLY: DBGPROP_ATTRIB_FLAGS = 2048i32; +pub const DBGPROP_INFO_ATTRIBUTES: DBGPROP_INFO = 8i32; +pub const DBGPROP_INFO_AUTOEXPAND: DBGPROP_INFO = 134217728i32; +pub const DBGPROP_INFO_BEAUTIFY: DBGPROP_INFO = 33554432i32; +pub const DBGPROP_INFO_CALLTOSTRING: DBGPROP_INFO = 67108864i32; +pub const DBGPROP_INFO_DEBUGPROP: DBGPROP_INFO = 16i32; +pub const DBGPROP_INFO_FULLNAME: DBGPROP_INFO = 32i32; +pub const DBGPROP_INFO_NAME: DBGPROP_INFO = 1i32; +pub const DBGPROP_INFO_TYPE: DBGPROP_INFO = 2i32; +pub const DBGPROP_INFO_VALUE: DBGPROP_INFO = 4i32; +pub const DBHHEADER_CVMISC: MODLOAD_DATA_TYPE = 2u32; +pub const DBHHEADER_DEBUGDIRS: MODLOAD_DATA_TYPE = 1u32; +pub const DBHHEADER_PDBGUID: u32 = 3u32; +pub const DEREF_UNKNOWN_LOGON_SESSION: BUGCHECK_ERROR = 70u32; +pub const DEVICE_DIAGNOSTIC_LOG_LIVEDUMP: BUGCHECK_ERROR = 481u32; +pub const DEVICE_QUEUE_NOT_BUSY: BUGCHECK_ERROR = 2u32; +pub const DEVICE_REFERENCE_COUNT_NOT_ZERO: BUGCHECK_ERROR = 54u32; +pub const DFSC_FILE_SYSTEM: BUGCHECK_ERROR = 267u32; +pub const DFS_FILE_SYSTEM: BUGCHECK_ERROR = 130u32; +pub const DIRECTED_FX_TRANSITION_LIVEDUMP: BUGCHECK_ERROR = 425u32; +pub const DIRTY_MAPPED_PAGES_CONGESTION: BUGCHECK_ERROR = 235u32; +pub const DIRTY_NOWRITE_PAGES_CONGESTION: BUGCHECK_ERROR = 253u32; +pub const DISORDERLY_SHUTDOWN: BUGCHECK_ERROR = 243u32; +pub const DMA_COMMON_BUFFER_VECTOR_ERROR: BUGCHECK_ERROR = 476u32; +pub const DMP_CONTEXT_RECORD_SIZE_32: u32 = 1200u32; +pub const DMP_CONTEXT_RECORD_SIZE_64: u32 = 3000u32; +pub const DMP_HEADER_COMMENT_SIZE: u32 = 128u32; +pub const DMP_PHYSICAL_MEMORY_BLOCK_SIZE_32: u32 = 700u32; +pub const DMP_PHYSICAL_MEMORY_BLOCK_SIZE_64: u32 = 700u32; +pub const DMP_RESERVED_0_SIZE_32: u32 = 1760u32; +pub const DMP_RESERVED_0_SIZE_64: u32 = 4008u32; +pub const DMP_RESERVED_2_SIZE_32: u32 = 16u32; +pub const DMP_RESERVED_3_SIZE_32: u32 = 56u32; +pub const DPC_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = 258u32; +pub const DPC_WATCHDOG_VIOLATION: BUGCHECK_ERROR = 307u32; +pub const DRIPS_SW_HW_DIVERGENCE_LIVEDUMP: BUGCHECK_ERROR = 420u32; +pub const DRIVER_CAUGHT_MODIFYING_FREED_POOL: BUGCHECK_ERROR = 198u32; +pub const DRIVER_CORRUPTED_EXPOOL: BUGCHECK_ERROR = 197u32; +pub const DRIVER_CORRUPTED_MMPOOL: BUGCHECK_ERROR = 208u32; +pub const DRIVER_CORRUPTED_SYSPTES: BUGCHECK_ERROR = 219u32; +pub const DRIVER_INVALID_CRUNTIME_PARAMETER: BUGCHECK_ERROR = 272u32; +pub const DRIVER_INVALID_STACK_ACCESS: BUGCHECK_ERROR = 220u32; +pub const DRIVER_IRQL_NOT_LESS_OR_EQUAL: BUGCHECK_ERROR = 209u32; +pub const DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS: BUGCHECK_ERROR = 203u32; +pub const DRIVER_OVERRAN_STACK_BUFFER: BUGCHECK_ERROR = 247u32; +pub const DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION: BUGCHECK_ERROR = 214u32; +pub const DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION_M: BUGCHECK_ERROR = 268435670u32; +pub const DRIVER_PAGE_FAULT_IN_FREED_SPECIAL_POOL: BUGCHECK_ERROR = 213u32; +pub const DRIVER_PNP_WATCHDOG: BUGCHECK_ERROR = 469u32; +pub const DRIVER_PORTION_MUST_BE_NONPAGED: BUGCHECK_ERROR = 211u32; +pub const DRIVER_POWER_STATE_FAILURE: BUGCHECK_ERROR = 159u32; +pub const DRIVER_RETURNED_HOLDING_CANCEL_LOCK: BUGCHECK_ERROR = 283u32; +pub const DRIVER_RETURNED_STATUS_REPARSE_FOR_VOLUME_OPEN: BUGCHECK_ERROR = 249u32; +pub const DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS: BUGCHECK_ERROR = 206u32; +pub const DRIVER_UNMAPPING_INVALID_VIEW: BUGCHECK_ERROR = 215u32; +pub const DRIVER_USED_EXCESSIVE_PTES: BUGCHECK_ERROR = 216u32; +pub const DRIVER_VERIFIER_DETECTED_VIOLATION: BUGCHECK_ERROR = 196u32; +pub const DRIVER_VERIFIER_DETECTED_VIOLATION_LIVEDUMP: BUGCHECK_ERROR = 452u32; +pub const DRIVER_VERIFIER_DMA_VIOLATION: BUGCHECK_ERROR = 230u32; +pub const DRIVER_VERIFIER_IOMANAGER_VIOLATION: BUGCHECK_ERROR = 201u32; +pub const DRIVER_VERIFIER_TRACKING_LIVE_DUMP: BUGCHECK_ERROR = 485u32; +pub const DRIVER_VIOLATION: BUGCHECK_ERROR = 289u32; +pub const DRIVE_EXTENDER: BUGCHECK_ERROR = 308u32; +pub const DSLFLAG_MISMATCHED_DBG: u32 = 2u32; +pub const DSLFLAG_MISMATCHED_PDB: u32 = 1u32; +pub const DUMP_SUMMARY_VALID_CURRENT_USER_VA: u32 = 2u32; +pub const DUMP_SUMMARY_VALID_KERNEL_VA: u32 = 1u32; +pub const DUMP_TYPE_AUTOMATIC: DUMP_TYPE = 7i32; +pub const DUMP_TYPE_BITMAP_FULL: DUMP_TYPE = 5i32; +pub const DUMP_TYPE_BITMAP_KERNEL: DUMP_TYPE = 6i32; +pub const DUMP_TYPE_FULL: DUMP_TYPE = 1i32; +pub const DUMP_TYPE_HEADER: DUMP_TYPE = 3i32; +pub const DUMP_TYPE_INVALID: DUMP_TYPE = -1i32; +pub const DUMP_TYPE_SUMMARY: DUMP_TYPE = 2i32; +pub const DUMP_TYPE_TRIAGE: DUMP_TYPE = 4i32; +pub const DUMP_TYPE_UNKNOWN: DUMP_TYPE = 0i32; +pub const DYNAMIC_ADD_PROCESSOR_MISMATCH: BUGCHECK_ERROR = 304u32; +pub const EFS_FATAL_ERROR: BUGCHECK_ERROR = 471u32; +pub const ELAM_DRIVER_DETECTED_FATAL_ERROR: BUGCHECK_ERROR = 376u32; +pub const EMPTY_THREAD_REAPER_LIST: BUGCHECK_ERROR = 19u32; +pub const EM_INITIALIZATION_ERROR: BUGCHECK_ERROR = 282u32; +pub const END_OF_NT_EVALUATION_PERIOD: BUGCHECK_ERROR = 152u32; +pub const ERESOURCE_INVALID_RELEASE: BUGCHECK_ERROR = 366u32; +pub const ERRATA_WORKAROUND_UNSUCCESSFUL: BUGCHECK_ERROR = 318u32; +pub const ERROR_IMAGE_NOT_STRIPPED: u32 = 34816u32; +pub const ERROR_NO_DBG_POINTER: u32 = 34817u32; +pub const ERROR_NO_PDB_POINTER: u32 = 34818u32; +pub const ESLFLAG_FULLPATH: u32 = 1u32; +pub const ESLFLAG_INLINE_SITE: u32 = 16u32; +pub const ESLFLAG_NEAREST: u32 = 2u32; +pub const ESLFLAG_NEXT: u32 = 8u32; +pub const ESLFLAG_PREV: u32 = 4u32; +pub const EVENT_SRCSPEW: u32 = 100u32; +pub const EVENT_SRCSPEW_END: u32 = 199u32; +pub const EVENT_SRCSPEW_START: u32 = 100u32; +pub const EVENT_TRACING_FATAL_ERROR: BUGCHECK_ERROR = 285u32; +pub const EXCEPTION_DEBUG_EVENT: DEBUG_EVENT_CODE = 1u32; +pub const EXCEPTION_ON_INVALID_STACK: BUGCHECK_ERROR = 426u32; +pub const EXCEPTION_SCOPE_INVALID: BUGCHECK_ERROR = 333u32; +pub const EXFAT_FILE_SYSTEM: BUGCHECK_ERROR = 300u32; +pub const EXIT_PROCESS_DEBUG_EVENT: DEBUG_EVENT_CODE = 5u32; +pub const EXIT_THREAD_DEBUG_EVENT: DEBUG_EVENT_CODE = 4u32; +pub const EXRESOURCE_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = 460u32; +pub const EXT_OUTPUT_VER: u32 = 1u32; +pub const EX_PROP_INFO_DEBUGEXTPROP: EX_PROP_INFO_FLAGS = 4096i32; +pub const EX_PROP_INFO_ID: EX_PROP_INFO_FLAGS = 256i32; +pub const EX_PROP_INFO_LOCKBYTES: EX_PROP_INFO_FLAGS = 2048i32; +pub const EX_PROP_INFO_NTYPE: EX_PROP_INFO_FLAGS = 512i32; +pub const EX_PROP_INFO_NVALUE: EX_PROP_INFO_FLAGS = 1024i32; +pub const ExceptionStream: MINIDUMP_STREAM_TYPE = 6i32; +pub const FACILITY_AAF: FACILITY_CODE = 18u32; +pub const FACILITY_ACCELERATOR: FACILITY_CODE = 1536u32; +pub const FACILITY_ACS: FACILITY_CODE = 20u32; +pub const FACILITY_ACTION_QUEUE: FACILITY_CODE = 44u32; +pub const FACILITY_AUDCLNT: FACILITY_CODE = 2185u32; +pub const FACILITY_AUDIO: FACILITY_CODE = 102u32; +pub const FACILITY_AUDIOSTREAMING: FACILITY_CODE = 1094u32; +pub const FACILITY_BACKGROUNDCOPY: FACILITY_CODE = 32u32; +pub const FACILITY_BCD: FACILITY_CODE = 57u32; +pub const FACILITY_BLB: FACILITY_CODE = 120u32; +pub const FACILITY_BLBUI: FACILITY_CODE = 128u32; +pub const FACILITY_BLB_CLI: FACILITY_CODE = 121u32; +pub const FACILITY_BLUETOOTH_ATT: FACILITY_CODE = 101u32; +pub const FACILITY_CERT: FACILITY_CODE = 11u32; +pub const FACILITY_CMI: FACILITY_CODE = 54u32; +pub const FACILITY_COMPLUS: FACILITY_CODE = 17u32; +pub const FACILITY_CONFIGURATION: FACILITY_CODE = 33u32; +pub const FACILITY_CONTROL: FACILITY_CODE = 10u32; +pub const FACILITY_DAF: FACILITY_CODE = 100u32; +pub const FACILITY_DEBUGGERS: FACILITY_CODE = 176u32; +pub const FACILITY_DEFRAG: FACILITY_CODE = 2304u32; +pub const FACILITY_DELIVERY_OPTIMIZATION: FACILITY_CODE = 208u32; +pub const FACILITY_DEPLOYMENT_SERVICES_BINLSVC: FACILITY_CODE = 261u32; +pub const FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER: FACILITY_CODE = 293u32; +pub const FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING: FACILITY_CODE = 278u32; +pub const FACILITY_DEPLOYMENT_SERVICES_IMAGING: FACILITY_CODE = 258u32; +pub const FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT: FACILITY_CODE = 259u32; +pub const FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT: FACILITY_CODE = 290u32; +pub const FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER: FACILITY_CODE = 289u32; +pub const FACILITY_DEPLOYMENT_SERVICES_PXE: FACILITY_CODE = 263u32; +pub const FACILITY_DEPLOYMENT_SERVICES_SERVER: FACILITY_CODE = 257u32; +pub const FACILITY_DEPLOYMENT_SERVICES_TFTP: FACILITY_CODE = 264u32; +pub const FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT: FACILITY_CODE = 272u32; +pub const FACILITY_DEPLOYMENT_SERVICES_UTIL: FACILITY_CODE = 260u32; +pub const FACILITY_DEVICE_UPDATE_AGENT: FACILITY_CODE = 135u32; +pub const FACILITY_DIRECT2D: FACILITY_CODE = 2201u32; +pub const FACILITY_DIRECT3D10: FACILITY_CODE = 2169u32; +pub const FACILITY_DIRECT3D11: FACILITY_CODE = 2172u32; +pub const FACILITY_DIRECT3D11_DEBUG: FACILITY_CODE = 2173u32; +pub const FACILITY_DIRECT3D12: FACILITY_CODE = 2174u32; +pub const FACILITY_DIRECT3D12_DEBUG: FACILITY_CODE = 2175u32; +pub const FACILITY_DIRECTMUSIC: FACILITY_CODE = 2168u32; +pub const FACILITY_DIRECTORYSERVICE: FACILITY_CODE = 37u32; +pub const FACILITY_DISPATCH: FACILITY_CODE = 2u32; +pub const FACILITY_DLS: FACILITY_CODE = 153u32; +pub const FACILITY_DMSERVER: FACILITY_CODE = 256u32; +pub const FACILITY_DPLAY: FACILITY_CODE = 21u32; +pub const FACILITY_DRVSERVICING: FACILITY_CODE = 136u32; +pub const FACILITY_DXCORE: FACILITY_CODE = 2176u32; +pub const FACILITY_DXGI: FACILITY_CODE = 2170u32; +pub const FACILITY_DXGI_DDI: FACILITY_CODE = 2171u32; +pub const FACILITY_EAP: FACILITY_CODE = 66u32; +pub const FACILITY_EAS: FACILITY_CODE = 85u32; +pub const FACILITY_FVE: FACILITY_CODE = 49u32; +pub const FACILITY_FWP: FACILITY_CODE = 50u32; +pub const FACILITY_GAME: FACILITY_CODE = 2340u32; +pub const FACILITY_GRAPHICS: FACILITY_CODE = 38u32; +pub const FACILITY_HSP_SERVICES: FACILITY_CODE = 296u32; +pub const FACILITY_HSP_SOFTWARE: FACILITY_CODE = 297u32; +pub const FACILITY_HTTP: FACILITY_CODE = 25u32; +pub const FACILITY_INPUT: FACILITY_CODE = 64u32; +pub const FACILITY_INTERNET: FACILITY_CODE = 12u32; +pub const FACILITY_IORING: FACILITY_CODE = 70u32; +pub const FACILITY_ITF: FACILITY_CODE = 4u32; +pub const FACILITY_JSCRIPT: FACILITY_CODE = 2306u32; +pub const FACILITY_LEAP: FACILITY_CODE = 2184u32; +pub const FACILITY_LINGUISTIC_SERVICES: FACILITY_CODE = 305u32; +pub const FACILITY_MBN: FACILITY_CODE = 84u32; +pub const FACILITY_MEDIASERVER: FACILITY_CODE = 13u32; +pub const FACILITY_METADIRECTORY: FACILITY_CODE = 35u32; +pub const FACILITY_MOBILE: FACILITY_CODE = 1793u32; +pub const FACILITY_MSMQ: FACILITY_CODE = 14u32; +pub const FACILITY_NAP: FACILITY_CODE = 39u32; +pub const FACILITY_NDIS: FACILITY_CODE = 52u32; +pub const FACILITY_NT_BIT: FACILITY_CODE = 268435456u32; +pub const FACILITY_NULL: FACILITY_CODE = 0u32; +pub const FACILITY_OCP_UPDATE_AGENT: FACILITY_CODE = 173u32; +pub const FACILITY_ONLINE_ID: FACILITY_CODE = 134u32; +pub const FACILITY_OPC: FACILITY_CODE = 81u32; +pub const FACILITY_P2P: FACILITY_CODE = 99u32; +pub const FACILITY_P2P_INT: FACILITY_CODE = 98u32; +pub const FACILITY_PARSE: FACILITY_CODE = 113u32; +pub const FACILITY_PIDGENX: FACILITY_CODE = 2561u32; +pub const FACILITY_PIX: FACILITY_CODE = 2748u32; +pub const FACILITY_PLA: FACILITY_CODE = 48u32; +pub const FACILITY_POWERSHELL: FACILITY_CODE = 84u32; +pub const FACILITY_PRESENTATION: FACILITY_CODE = 2177u32; +pub const FACILITY_QUIC: FACILITY_CODE = 65u32; +pub const FACILITY_RAS: FACILITY_CODE = 83u32; +pub const FACILITY_RESTORE: FACILITY_CODE = 256u32; +pub const FACILITY_RPC: FACILITY_CODE = 1u32; +pub const FACILITY_SCARD: FACILITY_CODE = 16u32; +pub const FACILITY_SCRIPT: FACILITY_CODE = 112u32; +pub const FACILITY_SDIAG: FACILITY_CODE = 60u32; +pub const FACILITY_SECURITY: FACILITY_CODE = 9u32; +pub const FACILITY_SERVICE_FABRIC: FACILITY_CODE = 1968u32; +pub const FACILITY_SETUPAPI: FACILITY_CODE = 15u32; +pub const FACILITY_SHELL: FACILITY_CODE = 39u32; +pub const FACILITY_SOS: FACILITY_CODE = 160u32; +pub const FACILITY_SPP: FACILITY_CODE = 256u32; +pub const FACILITY_SQLITE: FACILITY_CODE = 1967u32; +pub const FACILITY_SSPI: FACILITY_CODE = 9u32; +pub const FACILITY_STATEREPOSITORY: FACILITY_CODE = 103u32; +pub const FACILITY_STATE_MANAGEMENT: FACILITY_CODE = 34u32; +pub const FACILITY_STORAGE: FACILITY_CODE = 3u32; +pub const FACILITY_SXS: FACILITY_CODE = 23u32; +pub const FACILITY_SYNCENGINE: FACILITY_CODE = 2050u32; +pub const FACILITY_TIERING: FACILITY_CODE = 131u32; +pub const FACILITY_TPM_SERVICES: FACILITY_CODE = 40u32; +pub const FACILITY_TPM_SOFTWARE: FACILITY_CODE = 41u32; +pub const FACILITY_TTD: FACILITY_CODE = 1490u32; +pub const FACILITY_UI: FACILITY_CODE = 42u32; +pub const FACILITY_UMI: FACILITY_CODE = 22u32; +pub const FACILITY_URT: FACILITY_CODE = 19u32; +pub const FACILITY_USERMODE_COMMONLOG: FACILITY_CODE = 26u32; +pub const FACILITY_USERMODE_FILTER_MANAGER: FACILITY_CODE = 31u32; +pub const FACILITY_USERMODE_HNS: FACILITY_CODE = 59u32; +pub const FACILITY_USERMODE_HYPERVISOR: FACILITY_CODE = 53u32; +pub const FACILITY_USERMODE_LICENSING: FACILITY_CODE = 234u32; +pub const FACILITY_USERMODE_SDBUS: FACILITY_CODE = 2305u32; +pub const FACILITY_USERMODE_SPACES: FACILITY_CODE = 231u32; +pub const FACILITY_USERMODE_VHD: FACILITY_CODE = 58u32; +pub const FACILITY_USERMODE_VIRTUALIZATION: FACILITY_CODE = 55u32; +pub const FACILITY_USERMODE_VOLMGR: FACILITY_CODE = 56u32; +pub const FACILITY_USERMODE_VOLSNAP: FACILITY_CODE = 130u32; +pub const FACILITY_USER_MODE_SECURITY_CORE: FACILITY_CODE = 232u32; +pub const FACILITY_USN: FACILITY_CODE = 129u32; +pub const FACILITY_UTC: FACILITY_CODE = 1989u32; +pub const FACILITY_VISUALCPP: FACILITY_CODE = 109u32; +pub const FACILITY_WEB: FACILITY_CODE = 885u32; +pub const FACILITY_WEBSERVICES: FACILITY_CODE = 61u32; +pub const FACILITY_WEB_SOCKET: FACILITY_CODE = 886u32; +pub const FACILITY_WEP: FACILITY_CODE = 2049u32; +pub const FACILITY_WER: FACILITY_CODE = 27u32; +pub const FACILITY_WIA: FACILITY_CODE = 33u32; +pub const FACILITY_WIN32: FACILITY_CODE = 7u32; +pub const FACILITY_WINCODEC_DWRITE_DWM: FACILITY_CODE = 2200u32; +pub const FACILITY_WINDOWS: FACILITY_CODE = 8u32; +pub const FACILITY_WINDOWSUPDATE: FACILITY_CODE = 36u32; +pub const FACILITY_WINDOWS_CE: FACILITY_CODE = 24u32; +pub const FACILITY_WINDOWS_DEFENDER: FACILITY_CODE = 80u32; +pub const FACILITY_WINDOWS_SETUP: FACILITY_CODE = 48u32; +pub const FACILITY_WINDOWS_STORE: FACILITY_CODE = 63u32; +pub const FACILITY_WINML: FACILITY_CODE = 2192u32; +pub const FACILITY_WINPE: FACILITY_CODE = 61u32; +pub const FACILITY_WINRM: FACILITY_CODE = 51u32; +pub const FACILITY_WMAAECMA: FACILITY_CODE = 1996u32; +pub const FACILITY_WPN: FACILITY_CODE = 62u32; +pub const FACILITY_WSBAPP: FACILITY_CODE = 122u32; +pub const FACILITY_WSB_ONLINE: FACILITY_CODE = 133u32; +pub const FACILITY_XAML: FACILITY_CODE = 43u32; +pub const FACILITY_XBOX: FACILITY_CODE = 2339u32; +pub const FACILITY_XPS: FACILITY_CODE = 82u32; +pub const FAST_ERESOURCE_PRECONDITION_VIOLATION: BUGCHECK_ERROR = 454u32; +pub const FATAL_ABNORMAL_RESET_ERROR: BUGCHECK_ERROR = 332u32; +pub const FATAL_UNHANDLED_HARD_ERROR: BUGCHECK_ERROR = 76u32; +pub const FAT_FILE_SYSTEM: BUGCHECK_ERROR = 35u32; +pub const FAULTY_HARDWARE_CORRUPTED_PAGE: BUGCHECK_ERROR = 299u32; +pub const FILE_INITIALIZATION_FAILED: BUGCHECK_ERROR = 104u32; +pub const FILE_SYSTEM: BUGCHECK_ERROR = 34u32; +pub const FLAG_ENGINE_PRESENT: u32 = 4u32; +pub const FLAG_ENGOPT_DISALLOW_NETWORK_PATHS: u32 = 8u32; +pub const FLAG_OVERRIDE_ARM_MACHINE_TYPE: u32 = 16u32; +pub const FLOPPY_INTERNAL_ERROR: BUGCHECK_ERROR = 55u32; +pub const FLTMGR_FILE_SYSTEM: BUGCHECK_ERROR = 245u32; +pub const FORMAT_MESSAGE_ALLOCATE_BUFFER: FORMAT_MESSAGE_OPTIONS = 256u32; +pub const FORMAT_MESSAGE_ARGUMENT_ARRAY: FORMAT_MESSAGE_OPTIONS = 8192u32; +pub const FORMAT_MESSAGE_FROM_HMODULE: FORMAT_MESSAGE_OPTIONS = 2048u32; +pub const FORMAT_MESSAGE_FROM_STRING: FORMAT_MESSAGE_OPTIONS = 1024u32; +pub const FORMAT_MESSAGE_FROM_SYSTEM: FORMAT_MESSAGE_OPTIONS = 4096u32; +pub const FORMAT_MESSAGE_IGNORE_INSERTS: FORMAT_MESSAGE_OPTIONS = 512u32; +pub const FP_EMULATION_ERROR: BUGCHECK_ERROR = 166u32; +pub const FSRTL_EXTRA_CREATE_PARAMETER_VIOLATION: BUGCHECK_ERROR = 268u32; +pub const FunctionTableStream: MINIDUMP_STREAM_TYPE = 13i32; +pub const GPIO_CONTROLLER_DRIVER_ERROR: BUGCHECK_ERROR = 312u32; +pub const HAL1_INITIALIZATION_FAILED: BUGCHECK_ERROR = 97u32; +pub const HAL_BLOCKED_PROCESSOR_INTERNAL_ERROR: BUGCHECK_ERROR = 474u32; +pub const HAL_ILLEGAL_IOMMU_PAGE_FAULT: BUGCHECK_ERROR = 345u32; +pub const HAL_INITIALIZATION_FAILED: BUGCHECK_ERROR = 92u32; +pub const HAL_IOMMU_INTERNAL_ERROR: BUGCHECK_ERROR = 473u32; +pub const HAL_MEMORY_ALLOCATION: BUGCHECK_ERROR = 172u32; +pub const HANDLE_ERROR_ON_CRITICAL_THREAD: BUGCHECK_ERROR = 493u32; +pub const HANDLE_LIVE_DUMP: BUGCHECK_ERROR = 492u32; +pub const HARDWARE_INTERRUPT_STORM: BUGCHECK_ERROR = 242u32; +pub const HARDWARE_PROFILE_DOCKED_STRING: BUGCHECK_ERROR = 1073807362u32; +pub const HARDWARE_PROFILE_UNDOCKED_STRING: BUGCHECK_ERROR = 1073807361u32; +pub const HARDWARE_PROFILE_UNKNOWN_STRING: BUGCHECK_ERROR = 1073807363u32; +pub const HARDWARE_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = 463u32; +pub const HTTP_DRIVER_CORRUPTED: BUGCHECK_ERROR = 250u32; +pub const HYPERGUARD_INITIALIZATION_FAILURE: BUGCHECK_ERROR = 383u32; +pub const HYPERGUARD_VIOLATION: BUGCHECK_ERROR = 396u32; +pub const HYPERVISOR_ERROR: BUGCHECK_ERROR = 131073u32; +pub const HandleDataStream: MINIDUMP_STREAM_TYPE = 12i32; +pub const HandleOperationListStream: MINIDUMP_STREAM_TYPE = 18i32; +pub const ILLEGAL_ATS_INITIALIZATION: BUGCHECK_ERROR = 489u32; +pub const ILLEGAL_IOMMU_PAGE_FAULT: BUGCHECK_ERROR = 344u32; +pub const IMAGEHLP_GET_TYPE_INFO_CHILDREN: IMAGEHLP_GET_TYPE_INFO_FLAGS = 2u32; +pub const IMAGEHLP_GET_TYPE_INFO_UNCACHED: IMAGEHLP_GET_TYPE_INFO_FLAGS = 1u32; +pub const IMAGEHLP_MODULE_REGION_ADDITIONAL: u32 = 4u32; +pub const IMAGEHLP_MODULE_REGION_ALL: u32 = 255u32; +pub const IMAGEHLP_MODULE_REGION_DLLBASE: u32 = 1u32; +pub const IMAGEHLP_MODULE_REGION_DLLRANGE: u32 = 2u32; +pub const IMAGEHLP_MODULE_REGION_JIT: u32 = 8u32; +pub const IMAGEHLP_RMAP_BIG_ENDIAN: u32 = 2u32; +pub const IMAGEHLP_RMAP_FIXUP_ARM64X: u32 = 268435456u32; +pub const IMAGEHLP_RMAP_FIXUP_IMAGEBASE: u32 = 2147483648u32; +pub const IMAGEHLP_RMAP_IGNORE_MISCOMPARE: u32 = 4u32; +pub const IMAGEHLP_RMAP_LOAD_RW_DATA_SECTIONS: u32 = 536870912u32; +pub const IMAGEHLP_RMAP_MAPPED_FLAT: u32 = 1u32; +pub const IMAGEHLP_RMAP_OMIT_SHARED_RW_DATA_SECTIONS: u32 = 1073741824u32; +pub const IMAGEHLP_SYMBOL_FUNCTION: u32 = 2048u32; +pub const IMAGEHLP_SYMBOL_INFO_CONSTANT: u32 = 256u32; +pub const IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE: u32 = 32u32; +pub const IMAGEHLP_SYMBOL_INFO_LOCAL: u32 = 128u32; +pub const IMAGEHLP_SYMBOL_INFO_PARAMETER: u32 = 64u32; +pub const IMAGEHLP_SYMBOL_INFO_REGISTER: u32 = 8u32; +pub const IMAGEHLP_SYMBOL_INFO_REGRELATIVE: u32 = 16u32; +pub const IMAGEHLP_SYMBOL_INFO_TLSRELATIVE: u32 = 16384u32; +pub const IMAGEHLP_SYMBOL_INFO_VALUEPRESENT: u32 = 1u32; +pub const IMAGEHLP_SYMBOL_THUNK: u32 = 8192u32; +pub const IMAGEHLP_SYMBOL_TYPE_INFO_MAX: IMAGEHLP_SYMBOL_TYPE_INFO = 35i32; +pub const IMAGEHLP_SYMBOL_VIRTUAL: u32 = 4096u32; +pub const IMAGE_DEBUG_TYPE_BORLAND: IMAGE_DEBUG_TYPE = 9u32; +pub const IMAGE_DEBUG_TYPE_CODEVIEW: IMAGE_DEBUG_TYPE = 2u32; +pub const IMAGE_DEBUG_TYPE_COFF: IMAGE_DEBUG_TYPE = 1u32; +pub const IMAGE_DEBUG_TYPE_EXCEPTION: IMAGE_DEBUG_TYPE = 5u32; +pub const IMAGE_DEBUG_TYPE_FIXUP: IMAGE_DEBUG_TYPE = 6u32; +pub const IMAGE_DEBUG_TYPE_FPO: IMAGE_DEBUG_TYPE = 3u32; +pub const IMAGE_DEBUG_TYPE_MISC: IMAGE_DEBUG_TYPE = 4u32; +pub const IMAGE_DEBUG_TYPE_UNKNOWN: IMAGE_DEBUG_TYPE = 0u32; +pub const IMAGE_DIRECTORY_ENTRY_ARCHITECTURE: IMAGE_DIRECTORY_ENTRY = 7u16; +pub const IMAGE_DIRECTORY_ENTRY_BASERELOC: IMAGE_DIRECTORY_ENTRY = 5u16; +pub const IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT: IMAGE_DIRECTORY_ENTRY = 11u16; +pub const IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR: IMAGE_DIRECTORY_ENTRY = 14u16; +pub const IMAGE_DIRECTORY_ENTRY_DEBUG: IMAGE_DIRECTORY_ENTRY = 6u16; +pub const IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT: IMAGE_DIRECTORY_ENTRY = 13u16; +pub const IMAGE_DIRECTORY_ENTRY_EXCEPTION: IMAGE_DIRECTORY_ENTRY = 3u16; +pub const IMAGE_DIRECTORY_ENTRY_EXPORT: IMAGE_DIRECTORY_ENTRY = 0u16; +pub const IMAGE_DIRECTORY_ENTRY_GLOBALPTR: IMAGE_DIRECTORY_ENTRY = 8u16; +pub const IMAGE_DIRECTORY_ENTRY_IAT: IMAGE_DIRECTORY_ENTRY = 12u16; +pub const IMAGE_DIRECTORY_ENTRY_IMPORT: IMAGE_DIRECTORY_ENTRY = 1u16; +pub const IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG: IMAGE_DIRECTORY_ENTRY = 10u16; +pub const IMAGE_DIRECTORY_ENTRY_RESOURCE: IMAGE_DIRECTORY_ENTRY = 2u16; +pub const IMAGE_DIRECTORY_ENTRY_SECURITY: IMAGE_DIRECTORY_ENTRY = 4u16; +pub const IMAGE_DIRECTORY_ENTRY_TLS: IMAGE_DIRECTORY_ENTRY = 9u16; +pub const IMAGE_DLLCHARACTERISTICS_APPCONTAINER: IMAGE_DLL_CHARACTERISTICS = 4096u16; +pub const IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE: IMAGE_DLL_CHARACTERISTICS = 64u16; +pub const IMAGE_DLLCHARACTERISTICS_EX_CET_COMPAT: IMAGE_DLL_CHARACTERISTICS = 1u16; +pub const IMAGE_DLLCHARACTERISTICS_EX_CET_COMPAT_STRICT_MODE: IMAGE_DLL_CHARACTERISTICS = 2u16; +pub const IMAGE_DLLCHARACTERISTICS_EX_CET_DYNAMIC_APIS_ALLOW_IN_PROC: IMAGE_DLL_CHARACTERISTICS = 8u16; +pub const IMAGE_DLLCHARACTERISTICS_EX_CET_RESERVED_1: IMAGE_DLL_CHARACTERISTICS = 16u16; +pub const IMAGE_DLLCHARACTERISTICS_EX_CET_RESERVED_2: IMAGE_DLL_CHARACTERISTICS = 32u16; +pub const IMAGE_DLLCHARACTERISTICS_EX_CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE: IMAGE_DLL_CHARACTERISTICS = 4u16; +pub const IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY: IMAGE_DLL_CHARACTERISTICS = 128u16; +pub const IMAGE_DLLCHARACTERISTICS_GUARD_CF: IMAGE_DLL_CHARACTERISTICS = 16384u16; +pub const IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA: IMAGE_DLL_CHARACTERISTICS = 32u16; +pub const IMAGE_DLLCHARACTERISTICS_NO_BIND: IMAGE_DLL_CHARACTERISTICS = 2048u16; +pub const IMAGE_DLLCHARACTERISTICS_NO_ISOLATION: IMAGE_DLL_CHARACTERISTICS = 512u16; +pub const IMAGE_DLLCHARACTERISTICS_NO_SEH: IMAGE_DLL_CHARACTERISTICS = 1024u16; +pub const IMAGE_DLLCHARACTERISTICS_NX_COMPAT: IMAGE_DLL_CHARACTERISTICS = 256u16; +pub const IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE: IMAGE_DLL_CHARACTERISTICS = 32768u16; +pub const IMAGE_DLLCHARACTERISTICS_WDM_DRIVER: IMAGE_DLL_CHARACTERISTICS = 8192u16; +pub const IMAGE_FILE_32BIT_MACHINE: IMAGE_FILE_CHARACTERISTICS = 256u16; +pub const IMAGE_FILE_32BIT_MACHINE2: IMAGE_FILE_CHARACTERISTICS2 = 256u32; +pub const IMAGE_FILE_AGGRESIVE_WS_TRIM: IMAGE_FILE_CHARACTERISTICS = 16u16; +pub const IMAGE_FILE_AGGRESIVE_WS_TRIM2: IMAGE_FILE_CHARACTERISTICS2 = 16u32; +pub const IMAGE_FILE_BYTES_REVERSED_HI: IMAGE_FILE_CHARACTERISTICS = 32768u16; +pub const IMAGE_FILE_BYTES_REVERSED_HI_2: IMAGE_FILE_CHARACTERISTICS2 = 32768u32; +pub const IMAGE_FILE_BYTES_REVERSED_LO: IMAGE_FILE_CHARACTERISTICS = 128u16; +pub const IMAGE_FILE_BYTES_REVERSED_LO2: IMAGE_FILE_CHARACTERISTICS2 = 128u32; +pub const IMAGE_FILE_DEBUG_STRIPPED: IMAGE_FILE_CHARACTERISTICS = 512u16; +pub const IMAGE_FILE_DEBUG_STRIPPED2: IMAGE_FILE_CHARACTERISTICS2 = 512u32; +pub const IMAGE_FILE_DLL: IMAGE_FILE_CHARACTERISTICS = 8192u16; +pub const IMAGE_FILE_DLL_2: IMAGE_FILE_CHARACTERISTICS2 = 8192u32; +pub const IMAGE_FILE_EXECUTABLE_IMAGE: IMAGE_FILE_CHARACTERISTICS = 2u16; +pub const IMAGE_FILE_EXECUTABLE_IMAGE2: IMAGE_FILE_CHARACTERISTICS2 = 2u32; +pub const IMAGE_FILE_LARGE_ADDRESS_AWARE: IMAGE_FILE_CHARACTERISTICS = 32u16; +pub const IMAGE_FILE_LARGE_ADDRESS_AWARE2: IMAGE_FILE_CHARACTERISTICS2 = 32u32; +pub const IMAGE_FILE_LINE_NUMS_STRIPPED: IMAGE_FILE_CHARACTERISTICS = 4u16; +pub const IMAGE_FILE_LINE_NUMS_STRIPPED2: IMAGE_FILE_CHARACTERISTICS2 = 4u32; +pub const IMAGE_FILE_LOCAL_SYMS_STRIPPED: IMAGE_FILE_CHARACTERISTICS = 8u16; +pub const IMAGE_FILE_LOCAL_SYMS_STRIPPED2: IMAGE_FILE_CHARACTERISTICS2 = 8u32; +pub const IMAGE_FILE_NET_RUN_FROM_SWAP: IMAGE_FILE_CHARACTERISTICS = 2048u16; +pub const IMAGE_FILE_NET_RUN_FROM_SWAP2: IMAGE_FILE_CHARACTERISTICS2 = 2048u32; +pub const IMAGE_FILE_RELOCS_STRIPPED: IMAGE_FILE_CHARACTERISTICS = 1u16; +pub const IMAGE_FILE_RELOCS_STRIPPED2: IMAGE_FILE_CHARACTERISTICS2 = 1u32; +pub const IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP: IMAGE_FILE_CHARACTERISTICS = 1024u16; +pub const IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP2: IMAGE_FILE_CHARACTERISTICS2 = 1024u32; +pub const IMAGE_FILE_SYSTEM: IMAGE_FILE_CHARACTERISTICS = 4096u16; +pub const IMAGE_FILE_SYSTEM_2: IMAGE_FILE_CHARACTERISTICS2 = 4096u32; +pub const IMAGE_FILE_UP_SYSTEM_ONLY: IMAGE_FILE_CHARACTERISTICS = 16384u16; +pub const IMAGE_FILE_UP_SYSTEM_ONLY_2: IMAGE_FILE_CHARACTERISTICS2 = 16384u32; +pub const IMAGE_NT_OPTIONAL_HDR32_MAGIC: IMAGE_OPTIONAL_HEADER_MAGIC = 267u16; +pub const IMAGE_NT_OPTIONAL_HDR64_MAGIC: IMAGE_OPTIONAL_HEADER_MAGIC = 523u16; +pub const IMAGE_NT_OPTIONAL_HDR_MAGIC: IMAGE_OPTIONAL_HEADER_MAGIC = 523u16; +pub const IMAGE_ROM_OPTIONAL_HDR_MAGIC: IMAGE_OPTIONAL_HEADER_MAGIC = 263u16; +pub const IMAGE_SCN_ALIGN_1024BYTES: IMAGE_SECTION_CHARACTERISTICS = 11534336u32; +pub const IMAGE_SCN_ALIGN_128BYTES: IMAGE_SECTION_CHARACTERISTICS = 8388608u32; +pub const IMAGE_SCN_ALIGN_16BYTES: IMAGE_SECTION_CHARACTERISTICS = 5242880u32; +pub const IMAGE_SCN_ALIGN_1BYTES: IMAGE_SECTION_CHARACTERISTICS = 1048576u32; +pub const IMAGE_SCN_ALIGN_2048BYTES: IMAGE_SECTION_CHARACTERISTICS = 12582912u32; +pub const IMAGE_SCN_ALIGN_256BYTES: IMAGE_SECTION_CHARACTERISTICS = 9437184u32; +pub const IMAGE_SCN_ALIGN_2BYTES: IMAGE_SECTION_CHARACTERISTICS = 2097152u32; +pub const IMAGE_SCN_ALIGN_32BYTES: IMAGE_SECTION_CHARACTERISTICS = 6291456u32; +pub const IMAGE_SCN_ALIGN_4096BYTES: IMAGE_SECTION_CHARACTERISTICS = 13631488u32; +pub const IMAGE_SCN_ALIGN_4BYTES: IMAGE_SECTION_CHARACTERISTICS = 3145728u32; +pub const IMAGE_SCN_ALIGN_512BYTES: IMAGE_SECTION_CHARACTERISTICS = 10485760u32; +pub const IMAGE_SCN_ALIGN_64BYTES: IMAGE_SECTION_CHARACTERISTICS = 7340032u32; +pub const IMAGE_SCN_ALIGN_8192BYTES: IMAGE_SECTION_CHARACTERISTICS = 14680064u32; +pub const IMAGE_SCN_ALIGN_8BYTES: IMAGE_SECTION_CHARACTERISTICS = 4194304u32; +pub const IMAGE_SCN_ALIGN_MASK: IMAGE_SECTION_CHARACTERISTICS = 15728640u32; +pub const IMAGE_SCN_CNT_CODE: IMAGE_SECTION_CHARACTERISTICS = 32u32; +pub const IMAGE_SCN_CNT_INITIALIZED_DATA: IMAGE_SECTION_CHARACTERISTICS = 64u32; +pub const IMAGE_SCN_CNT_UNINITIALIZED_DATA: IMAGE_SECTION_CHARACTERISTICS = 128u32; +pub const IMAGE_SCN_GPREL: IMAGE_SECTION_CHARACTERISTICS = 32768u32; +pub const IMAGE_SCN_LNK_COMDAT: IMAGE_SECTION_CHARACTERISTICS = 4096u32; +pub const IMAGE_SCN_LNK_INFO: IMAGE_SECTION_CHARACTERISTICS = 512u32; +pub const IMAGE_SCN_LNK_NRELOC_OVFL: IMAGE_SECTION_CHARACTERISTICS = 16777216u32; +pub const IMAGE_SCN_LNK_OTHER: IMAGE_SECTION_CHARACTERISTICS = 256u32; +pub const IMAGE_SCN_LNK_REMOVE: IMAGE_SECTION_CHARACTERISTICS = 2048u32; +pub const IMAGE_SCN_MEM_16BIT: IMAGE_SECTION_CHARACTERISTICS = 131072u32; +pub const IMAGE_SCN_MEM_DISCARDABLE: IMAGE_SECTION_CHARACTERISTICS = 33554432u32; +pub const IMAGE_SCN_MEM_EXECUTE: IMAGE_SECTION_CHARACTERISTICS = 536870912u32; +pub const IMAGE_SCN_MEM_FARDATA: IMAGE_SECTION_CHARACTERISTICS = 32768u32; +pub const IMAGE_SCN_MEM_LOCKED: IMAGE_SECTION_CHARACTERISTICS = 262144u32; +pub const IMAGE_SCN_MEM_NOT_CACHED: IMAGE_SECTION_CHARACTERISTICS = 67108864u32; +pub const IMAGE_SCN_MEM_NOT_PAGED: IMAGE_SECTION_CHARACTERISTICS = 134217728u32; +pub const IMAGE_SCN_MEM_PRELOAD: IMAGE_SECTION_CHARACTERISTICS = 524288u32; +pub const IMAGE_SCN_MEM_PURGEABLE: IMAGE_SECTION_CHARACTERISTICS = 131072u32; +pub const IMAGE_SCN_MEM_READ: IMAGE_SECTION_CHARACTERISTICS = 1073741824u32; +pub const IMAGE_SCN_MEM_SHARED: IMAGE_SECTION_CHARACTERISTICS = 268435456u32; +pub const IMAGE_SCN_MEM_WRITE: IMAGE_SECTION_CHARACTERISTICS = 2147483648u32; +pub const IMAGE_SCN_NO_DEFER_SPEC_EXC: IMAGE_SECTION_CHARACTERISTICS = 16384u32; +pub const IMAGE_SCN_SCALE_INDEX: IMAGE_SECTION_CHARACTERISTICS = 1u32; +pub const IMAGE_SCN_TYPE_NO_PAD: IMAGE_SECTION_CHARACTERISTICS = 8u32; +pub const IMAGE_SUBSYSTEM_EFI_APPLICATION: IMAGE_SUBSYSTEM = 10u16; +pub const IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER: IMAGE_SUBSYSTEM = 11u16; +pub const IMAGE_SUBSYSTEM_EFI_ROM: IMAGE_SUBSYSTEM = 13u16; +pub const IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER: IMAGE_SUBSYSTEM = 12u16; +pub const IMAGE_SUBSYSTEM_NATIVE: IMAGE_SUBSYSTEM = 1u16; +pub const IMAGE_SUBSYSTEM_NATIVE_WINDOWS: IMAGE_SUBSYSTEM = 8u16; +pub const IMAGE_SUBSYSTEM_OS2_CUI: IMAGE_SUBSYSTEM = 5u16; +pub const IMAGE_SUBSYSTEM_POSIX_CUI: IMAGE_SUBSYSTEM = 7u16; +pub const IMAGE_SUBSYSTEM_UNKNOWN: IMAGE_SUBSYSTEM = 0u16; +pub const IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION: IMAGE_SUBSYSTEM = 16u16; +pub const IMAGE_SUBSYSTEM_WINDOWS_CE_GUI: IMAGE_SUBSYSTEM = 9u16; +pub const IMAGE_SUBSYSTEM_WINDOWS_CUI: IMAGE_SUBSYSTEM = 3u16; +pub const IMAGE_SUBSYSTEM_WINDOWS_GUI: IMAGE_SUBSYSTEM = 2u16; +pub const IMAGE_SUBSYSTEM_XBOX: IMAGE_SUBSYSTEM = 14u16; +pub const IMAGE_SUBSYSTEM_XBOX_CODE_CATALOG: IMAGE_SUBSYSTEM = 17u16; +pub const IMPERSONATING_WORKER_THREAD: BUGCHECK_ERROR = 223u32; +pub const INACCESSIBLE_BOOT_DEVICE: BUGCHECK_ERROR = 123u32; +pub const INCONSISTENT_IRP: BUGCHECK_ERROR = 42u32; +pub const INLINE_FRAME_CONTEXT_IGNORE: u32 = 4294967295u32; +pub const INLINE_FRAME_CONTEXT_INIT: u32 = 0u32; +pub const INSTALL_MORE_MEMORY: BUGCHECK_ERROR = 125u32; +pub const INSTRUCTION_BUS_ERROR: BUGCHECK_ERROR = 47u32; +pub const INSTRUCTION_COHERENCY_EXCEPTION: BUGCHECK_ERROR = 86u32; +pub const INSUFFICIENT_SYSTEM_MAP_REGS: BUGCHECK_ERROR = 69u32; +pub const INTERFACESAFE_FOR_UNTRUSTED_CALLER: u32 = 1u32; +pub const INTERFACESAFE_FOR_UNTRUSTED_DATA: u32 = 2u32; +pub const INTERFACE_USES_DISPEX: u32 = 4u32; +pub const INTERFACE_USES_SECURITY_MANAGER: u32 = 8u32; +pub const INTERNAL_POWER_ERROR: BUGCHECK_ERROR = 160u32; +pub const INTERRUPT_EXCEPTION_NOT_HANDLED: BUGCHECK_ERROR = 61u32; +pub const INTERRUPT_UNWIND_ATTEMPTED: BUGCHECK_ERROR = 60u32; +pub const INVALID_AFFINITY_SET: BUGCHECK_ERROR = 3u32; +pub const INVALID_ALTERNATE_SYSTEM_CALL_HANDLER_REGISTRATION: BUGCHECK_ERROR = 480u32; +pub const INVALID_CALLBACK_STACK_ADDRESS: BUGCHECK_ERROR = 461u32; +pub const INVALID_CANCEL_OF_FILE_OPEN: BUGCHECK_ERROR = 232u32; +pub const INVALID_DATA_ACCESS_TRAP: BUGCHECK_ERROR = 4u32; +pub const INVALID_DRIVER_HANDLE: BUGCHECK_ERROR = 287u32; +pub const INVALID_EXTENDED_PROCESSOR_STATE: BUGCHECK_ERROR = 305u32; +pub const INVALID_FLOATING_POINT_STATE: BUGCHECK_ERROR = 231u32; +pub const INVALID_HIBERNATED_STATE: BUGCHECK_ERROR = 189u32; +pub const INVALID_IO_BOOST_STATE: BUGCHECK_ERROR = 316u32; +pub const INVALID_KERNEL_HANDLE: BUGCHECK_ERROR = 147u32; +pub const INVALID_KERNEL_STACK_ADDRESS: BUGCHECK_ERROR = 462u32; +pub const INVALID_MDL_RANGE: BUGCHECK_ERROR = 302u32; +pub const INVALID_PROCESS_ATTACH_ATTEMPT: BUGCHECK_ERROR = 5u32; +pub const INVALID_PROCESS_DETACH_ATTEMPT: BUGCHECK_ERROR = 6u32; +pub const INVALID_PUSH_LOCK_FLAGS: BUGCHECK_ERROR = 338u32; +pub const INVALID_REGION_OR_SEGMENT: BUGCHECK_ERROR = 153u32; +pub const INVALID_RUNDOWN_PROTECTION_FLAGS: BUGCHECK_ERROR = 364u32; +pub const INVALID_SILO_DETACH: BUGCHECK_ERROR = 459u32; +pub const INVALID_SLOT_ALLOCATOR_FLAGS: BUGCHECK_ERROR = 365u32; +pub const INVALID_SOFTWARE_INTERRUPT: BUGCHECK_ERROR = 7u32; +pub const INVALID_THREAD_AFFINITY_STATE: BUGCHECK_ERROR = 488u32; +pub const INVALID_WORK_QUEUE_ITEM: BUGCHECK_ERROR = 150u32; +pub const IO1_INITIALIZATION_FAILED: BUGCHECK_ERROR = 105u32; +pub const IOCTL_IPMI_INTERNAL_RECORD_SEL_EVENT: u32 = 2232320u32; +pub const IORING: BUGCHECK_ERROR = 499u32; +pub const IO_OBJECT_INVALID: BUGCHECK_ERROR = 328u32; +pub const IO_THREADPOOL_DEADLOCK_LIVEDUMP: BUGCHECK_ERROR = 453u32; +pub const IPI_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = 475u32; +pub const IPMI_IOCTL_INDEX: u32 = 1024u32; +pub const IPMI_OS_SEL_RECORD_MASK: u32 = 65535u32; +pub const IPMI_OS_SEL_RECORD_VERSION: u32 = 1u32; +pub const IPMI_OS_SEL_RECORD_VERSION_1: u32 = 1u32; +pub const IRQL_GT_ZERO_AT_SYSTEM_SERVICE: BUGCHECK_ERROR = 74u32; +pub const IRQL_NOT_DISPATCH_LEVEL: BUGCHECK_ERROR = 8u32; +pub const IRQL_NOT_GREATER_OR_EQUAL: BUGCHECK_ERROR = 9u32; +pub const IRQL_NOT_LESS_OR_EQUAL: BUGCHECK_ERROR = 10u32; +pub const IRQL_UNEXPECTED_VALUE: BUGCHECK_ERROR = 200u32; +pub const IncludeModuleCallback: MINIDUMP_CALLBACK_TYPE = 4i32; +pub const IncludeThreadCallback: MINIDUMP_CALLBACK_TYPE = 3i32; +pub const IncludeVmRegionCallback: MINIDUMP_CALLBACK_TYPE = 10i32; +pub const IoFinishCallback: MINIDUMP_CALLBACK_TYPE = 13i32; +pub const IoStartCallback: MINIDUMP_CALLBACK_TYPE = 11i32; +pub const IoWriteAllCallback: MINIDUMP_CALLBACK_TYPE = 12i32; +pub const IpmiOsSelRecordTypeBugcheckData: IPMI_OS_SEL_RECORD_TYPE = 9i32; +pub const IpmiOsSelRecordTypeBugcheckRecovery: IPMI_OS_SEL_RECORD_TYPE = 8i32; +pub const IpmiOsSelRecordTypeDriver: IPMI_OS_SEL_RECORD_TYPE = 7i32; +pub const IpmiOsSelRecordTypeMax: IPMI_OS_SEL_RECORD_TYPE = 10i32; +pub const IpmiOsSelRecordTypeOther: IPMI_OS_SEL_RECORD_TYPE = 1i32; +pub const IpmiOsSelRecordTypeRaw: IPMI_OS_SEL_RECORD_TYPE = 6i32; +pub const IpmiOsSelRecordTypeWhea: IPMI_OS_SEL_RECORD_TYPE = 0i32; +pub const IpmiOsSelRecordTypeWheaErrorNmi: IPMI_OS_SEL_RECORD_TYPE = 4i32; +pub const IpmiOsSelRecordTypeWheaErrorOther: IPMI_OS_SEL_RECORD_TYPE = 5i32; +pub const IpmiOsSelRecordTypeWheaErrorPci: IPMI_OS_SEL_RECORD_TYPE = 3i32; +pub const IpmiOsSelRecordTypeWheaErrorXpfMca: IPMI_OS_SEL_RECORD_TYPE = 2i32; +pub const IptTraceStream: MINIDUMP_STREAM_TYPE = 23i32; +pub const IsProcessSnapshotCallback: MINIDUMP_CALLBACK_TYPE = 16i32; +pub const JavaScriptDataStream: MINIDUMP_STREAM_TYPE = 20i32; +pub const KASAN_ENLIGHTENMENT_VIOLATION: BUGCHECK_ERROR = 497u32; +pub const KASAN_ILLEGAL_ACCESS: BUGCHECK_ERROR = 498u32; +pub const KERNEL_APC_PENDING_DURING_EXIT: BUGCHECK_ERROR = 32u32; +pub const KERNEL_AUTO_BOOST_INVALID_LOCK_RELEASE: BUGCHECK_ERROR = 354u32; +pub const KERNEL_AUTO_BOOST_LOCK_ACQUISITION_WITH_RAISED_IRQL: BUGCHECK_ERROR = 402u32; +pub const KERNEL_CFG_INIT_FAILURE: BUGCHECK_ERROR = 1058u32; +pub const KERNEL_DATA_INPAGE_ERROR: BUGCHECK_ERROR = 122u32; +pub const KERNEL_EXPAND_STACK_ACTIVE: BUGCHECK_ERROR = 263u32; +pub const KERNEL_LOCK_ENTRY_LEAKED_ON_THREAD_TERMINATION: BUGCHECK_ERROR = 339u32; +pub const KERNEL_MODE_EXCEPTION_NOT_HANDLED: BUGCHECK_ERROR = 142u32; +pub const KERNEL_MODE_EXCEPTION_NOT_HANDLED_M: BUGCHECK_ERROR = 268435598u32; +pub const KERNEL_MODE_HEAP_CORRUPTION: BUGCHECK_ERROR = 314u32; +pub const KERNEL_PARTITION_REFERENCE_VIOLATION: BUGCHECK_ERROR = 398u32; +pub const KERNEL_SECURITY_CHECK_FAILURE: BUGCHECK_ERROR = 313u32; +pub const KERNEL_STACK_INPAGE_ERROR: BUGCHECK_ERROR = 119u32; +pub const KERNEL_STACK_LOCKED_AT_EXIT: BUGCHECK_ERROR = 148u32; +pub const KERNEL_STORAGE_SLOT_IN_USE: BUGCHECK_ERROR = 409u32; +pub const KERNEL_THREAD_PRIORITY_FLOOR_VIOLATION: BUGCHECK_ERROR = 343u32; +pub const KERNEL_WMI_INTERNAL: BUGCHECK_ERROR = 330u32; +pub const KMODE_EXCEPTION_NOT_HANDLED: BUGCHECK_ERROR = 30u32; +pub const KernelMinidumpStatusCallback: MINIDUMP_CALLBACK_TYPE = 8i32; +pub const LAST_CHANCE_CALLED_FROM_KMODE: BUGCHECK_ERROR = 21u32; +pub const LIVE_SYSTEM_DUMP: BUGCHECK_ERROR = 353u32; +pub const LM_SERVER_INTERNAL_ERROR: BUGCHECK_ERROR = 84u32; +pub const LOADER_BLOCK_MISMATCH: BUGCHECK_ERROR = 256u32; +pub const LOADER_ROLLBACK_DETECTED: BUGCHECK_ERROR = 406u32; +pub const LOAD_DLL_DEBUG_EVENT: DEBUG_EVENT_CODE = 6u32; +pub const LOCKED_PAGES_TRACKER_CORRUPTION: BUGCHECK_ERROR = 217u32; +pub const LPC_INITIALIZATION_FAILED: BUGCHECK_ERROR = 106u32; +pub const LastReservedStream: MINIDUMP_STREAM_TYPE = 65535i32; +pub const MACHINE_CHECK_EXCEPTION: BUGCHECK_ERROR = 156u32; +pub const MAILSLOT_FILE_SYSTEM: BUGCHECK_ERROR = 82u32; +pub const MANUALLY_INITIATED_BLACKSCREEN_HOTKEY_LIVE_DUMP: BUGCHECK_ERROR = 8648u32; +pub const MANUALLY_INITIATED_CRASH: BUGCHECK_ERROR = 226u32; +pub const MANUALLY_INITIATED_CRASH1: BUGCHECK_ERROR = 3735936685u32; +pub const MANUALLY_INITIATED_POWER_BUTTON_HOLD: BUGCHECK_ERROR = 456u32; +pub const MANUALLY_INITIATED_POWER_BUTTON_HOLD_LIVE_DUMP: BUGCHECK_ERROR = 4552u32; +pub const MAXIMUM_WAIT_OBJECTS_EXCEEDED: BUGCHECK_ERROR = 12u32; +pub const MAX_SYM_NAME: u32 = 2000u32; +pub const MBR_CHECKSUM_MISMATCH: BUGCHECK_ERROR = 139u32; +pub const MDL_CACHE: BUGCHECK_ERROR = 500u32; +pub const MEMORY1_INITIALIZATION_FAILED: BUGCHECK_ERROR = 101u32; +pub const MEMORY_IMAGE_CORRUPT: BUGCHECK_ERROR = 162u32; +pub const MEMORY_MANAGEMENT: BUGCHECK_ERROR = 26u32; +pub const MICROCODE_REVISION_MISMATCH: BUGCHECK_ERROR = 382u32; +pub const MINIDUMP_MISC1_PROCESSOR_POWER_INFO: u32 = 4u32; +pub const MINIDUMP_MISC1_PROCESS_ID: MINIDUMP_MISC_INFO_FLAGS = 1u32; +pub const MINIDUMP_MISC1_PROCESS_TIMES: MINIDUMP_MISC_INFO_FLAGS = 2u32; +pub const MINIDUMP_MISC3_PROCESS_EXECUTE_FLAGS: u32 = 32u32; +pub const MINIDUMP_MISC3_PROCESS_INTEGRITY: u32 = 16u32; +pub const MINIDUMP_MISC3_PROTECTED_PROCESS: u32 = 128u32; +pub const MINIDUMP_MISC3_TIMEZONE: u32 = 64u32; +pub const MINIDUMP_MISC4_BUILDSTRING: u32 = 256u32; +pub const MINIDUMP_MISC5_PROCESS_COOKIE: u32 = 512u32; +pub const MINIDUMP_PROCESS_VM_COUNTERS: u32 = 1u32; +pub const MINIDUMP_PROCESS_VM_COUNTERS_EX: u32 = 4u32; +pub const MINIDUMP_PROCESS_VM_COUNTERS_EX2: u32 = 8u32; +pub const MINIDUMP_PROCESS_VM_COUNTERS_JOB: u32 = 16u32; +pub const MINIDUMP_PROCESS_VM_COUNTERS_VIRTUALSIZE: u32 = 2u32; +pub const MINIDUMP_SYSMEMINFO1_BASICPERF: u32 = 2u32; +pub const MINIDUMP_SYSMEMINFO1_FILECACHE_TRANSITIONREPURPOSECOUNT_FLAGS: u32 = 1u32; +pub const MINIDUMP_SYSMEMINFO1_PERF_CCTOTALDIRTYPAGES_CCDIRTYPAGETHRESHOLD: u32 = 4u32; +pub const MINIDUMP_SYSMEMINFO1_PERF_RESIDENTAVAILABLEPAGES_SHAREDCOMMITPAGES: u32 = 8u32; +pub const MINIDUMP_THREAD_INFO_ERROR_THREAD: MINIDUMP_THREAD_INFO_DUMP_FLAGS = 1u32; +pub const MINIDUMP_THREAD_INFO_EXITED_THREAD: MINIDUMP_THREAD_INFO_DUMP_FLAGS = 4u32; +pub const MINIDUMP_THREAD_INFO_INVALID_CONTEXT: MINIDUMP_THREAD_INFO_DUMP_FLAGS = 16u32; +pub const MINIDUMP_THREAD_INFO_INVALID_INFO: MINIDUMP_THREAD_INFO_DUMP_FLAGS = 8u32; +pub const MINIDUMP_THREAD_INFO_INVALID_TEB: MINIDUMP_THREAD_INFO_DUMP_FLAGS = 32u32; +pub const MINIDUMP_THREAD_INFO_WRITING_THREAD: MINIDUMP_THREAD_INFO_DUMP_FLAGS = 2u32; +pub const MINIDUMP_VERSION: u32 = 42899u32; +pub const MISALIGNED_POINTER_PARAMETER: BUGCHECK_ERROR = 502u32; +pub const MISMATCHED_HAL: BUGCHECK_ERROR = 121u32; +pub const MPSDRV_QUERY_USER: BUGCHECK_ERROR = 1073742318u32; +pub const MSRPC_STATE_VIOLATION: BUGCHECK_ERROR = 274u32; +pub const MUI_NO_VALID_SYSTEM_LANGUAGE: BUGCHECK_ERROR = 298u32; +pub const MULTIPLE_IRP_COMPLETE_REQUESTS: BUGCHECK_ERROR = 68u32; +pub const MULTIPROCESSOR_CONFIGURATION_NOT_SUPPORTED: BUGCHECK_ERROR = 62u32; +pub const MUP_FILE_SYSTEM: BUGCHECK_ERROR = 259u32; +pub const MUST_SUCCEED_POOL_EMPTY: BUGCHECK_ERROR = 65u32; +pub const MUTEX_ALREADY_OWNED: BUGCHECK_ERROR = 191u32; +pub const MUTEX_LEVEL_NUMBER_VIOLATION: BUGCHECK_ERROR = 13u32; +pub const Memory64ListStream: MINIDUMP_STREAM_TYPE = 9i32; +pub const MemoryCallback: MINIDUMP_CALLBACK_TYPE = 5i32; +pub const MemoryInfoListStream: MINIDUMP_STREAM_TYPE = 16i32; +pub const MemoryListStream: MINIDUMP_STREAM_TYPE = 5i32; +pub const MiniDumpFilterMemory: MINIDUMP_TYPE = 8i32; +pub const MiniDumpFilterModulePaths: MINIDUMP_TYPE = 128i32; +pub const MiniDumpFilterTriage: MINIDUMP_TYPE = 1048576i32; +pub const MiniDumpFilterWriteCombinedMemory: MINIDUMP_TYPE = 16777216i32; +pub const MiniDumpIgnoreInaccessibleMemory: MINIDUMP_TYPE = 131072i32; +pub const MiniDumpNormal: MINIDUMP_TYPE = 0i32; +pub const MiniDumpScanInaccessiblePartialPages: MINIDUMP_TYPE = 8388608i32; +pub const MiniDumpScanMemory: MINIDUMP_TYPE = 16i32; +pub const MiniDumpValidTypeFlags: MINIDUMP_TYPE = 33554431i32; +pub const MiniDumpWithAvxXStateContext: MINIDUMP_TYPE = 2097152i32; +pub const MiniDumpWithCodeSegs: MINIDUMP_TYPE = 8192i32; +pub const MiniDumpWithDataSegs: MINIDUMP_TYPE = 1i32; +pub const MiniDumpWithFullAuxiliaryState: MINIDUMP_TYPE = 32768i32; +pub const MiniDumpWithFullMemory: MINIDUMP_TYPE = 2i32; +pub const MiniDumpWithFullMemoryInfo: MINIDUMP_TYPE = 2048i32; +pub const MiniDumpWithHandleData: MINIDUMP_TYPE = 4i32; +pub const MiniDumpWithIndirectlyReferencedMemory: MINIDUMP_TYPE = 64i32; +pub const MiniDumpWithIptTrace: MINIDUMP_TYPE = 4194304i32; +pub const MiniDumpWithModuleHeaders: MINIDUMP_TYPE = 524288i32; +pub const MiniDumpWithPrivateReadWriteMemory: MINIDUMP_TYPE = 512i32; +pub const MiniDumpWithPrivateWriteCopyMemory: MINIDUMP_TYPE = 65536i32; +pub const MiniDumpWithProcessThreadData: MINIDUMP_TYPE = 256i32; +pub const MiniDumpWithThreadInfo: MINIDUMP_TYPE = 4096i32; +pub const MiniDumpWithTokenInformation: MINIDUMP_TYPE = 262144i32; +pub const MiniDumpWithUnloadedModules: MINIDUMP_TYPE = 32i32; +pub const MiniDumpWithoutAuxiliaryState: MINIDUMP_TYPE = 16384i32; +pub const MiniDumpWithoutOptionalData: MINIDUMP_TYPE = 1024i32; +pub const MiniEventInformation1: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = 6i32; +pub const MiniHandleObjectInformationNone: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = 0i32; +pub const MiniHandleObjectInformationTypeMax: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = 9i32; +pub const MiniMutantInformation1: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = 2i32; +pub const MiniMutantInformation2: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = 3i32; +pub const MiniProcessInformation1: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = 4i32; +pub const MiniProcessInformation2: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = 5i32; +pub const MiniSecondaryValidFlags: MINIDUMP_SECONDARY_FLAGS = 1i32; +pub const MiniSecondaryWithoutPowerInfo: MINIDUMP_SECONDARY_FLAGS = 1i32; +pub const MiniSectionInformation1: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = 7i32; +pub const MiniSemaphoreInformation1: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = 8i32; +pub const MiniThreadInformation1: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = 1i32; +pub const MiscInfoStream: MINIDUMP_STREAM_TYPE = 15i32; +pub const ModuleCallback: MINIDUMP_CALLBACK_TYPE = 0i32; +pub const ModuleListStream: MINIDUMP_STREAM_TYPE = 4i32; +pub const ModuleReferencedByMemory: MODULE_WRITE_FLAGS = 16i32; +pub const ModuleWriteCodeSegs: MODULE_WRITE_FLAGS = 64i32; +pub const ModuleWriteCvRecord: MODULE_WRITE_FLAGS = 8i32; +pub const ModuleWriteDataSeg: MODULE_WRITE_FLAGS = 2i32; +pub const ModuleWriteMiscRecord: MODULE_WRITE_FLAGS = 4i32; +pub const ModuleWriteModule: MODULE_WRITE_FLAGS = 1i32; +pub const ModuleWriteTlsData: MODULE_WRITE_FLAGS = 32i32; +pub const NDIS_INTERNAL_ERROR: BUGCHECK_ERROR = 79u32; +pub const NDIS_NET_BUFFER_LIST_INFO_ILLEGALLY_TRANSFERRED: BUGCHECK_ERROR = 326u32; +pub const NETIO_INVALID_POOL_CALLER: BUGCHECK_ERROR = 294u32; +pub const NETWORK_BOOT_DUPLICATE_ADDRESS: BUGCHECK_ERROR = 188u32; +pub const NETWORK_BOOT_INITIALIZATION_FAILED: BUGCHECK_ERROR = 187u32; +pub const NMI_HARDWARE_FAILURE: BUGCHECK_ERROR = 128u32; +pub const NMR_INVALID_STATE: BUGCHECK_ERROR = 293u32; +pub const NO_BOOT_DEVICE: BUGCHECK_ERROR = 83u32; +pub const NO_EXCEPTION_HANDLING_SUPPORT: BUGCHECK_ERROR = 11u32; +pub const NO_MORE_IRP_STACK_LOCATIONS: BUGCHECK_ERROR = 53u32; +pub const NO_MORE_SYSTEM_PTES: BUGCHECK_ERROR = 63u32; +pub const NO_PAGES_AVAILABLE: BUGCHECK_ERROR = 77u32; +pub const NO_SPIN_LOCK_AVAILABLE: BUGCHECK_ERROR = 29u32; +pub const NO_SUCH_PARTITION: BUGCHECK_ERROR = 67u32; +pub const NO_USER_MODE_CONTEXT: BUGCHECK_ERROR = 14u32; +pub const NPFS_FILE_SYSTEM: BUGCHECK_ERROR = 37u32; +pub const NTFS_FILE_SYSTEM: BUGCHECK_ERROR = 36u32; +pub const NTHV_GUEST_ERROR: BUGCHECK_ERROR = 280u32; +pub const NUM_SSRVOPTS: u32 = 32u32; +pub const NumSymTypes: SYM_TYPE = 9i32; +pub const OBJECT1_INITIALIZATION_FAILED: BUGCHECK_ERROR = 98u32; +pub const OBJECT_ATTRIB_ACCESS_FINAL: OBJECT_ATTRIB_FLAGS = 32768i32; +pub const OBJECT_ATTRIB_ACCESS_PRIVATE: OBJECT_ATTRIB_FLAGS = 8192i32; +pub const OBJECT_ATTRIB_ACCESS_PROTECTED: OBJECT_ATTRIB_FLAGS = 16384i32; +pub const OBJECT_ATTRIB_ACCESS_PUBLIC: OBJECT_ATTRIB_FLAGS = 4096i32; +pub const OBJECT_ATTRIB_HAS_EXTENDED_ATTRIBS: OBJECT_ATTRIB_FLAGS = 8388608i32; +pub const OBJECT_ATTRIB_IS_CLASS: OBJECT_ATTRIB_FLAGS = 16777216i32; +pub const OBJECT_ATTRIB_IS_FUNCTION: OBJECT_ATTRIB_FLAGS = 33554432i32; +pub const OBJECT_ATTRIB_IS_INHERITED: OBJECT_ATTRIB_FLAGS = 1073741824i32; +pub const OBJECT_ATTRIB_IS_INTERFACE: OBJECT_ATTRIB_FLAGS = -2147483648i32; +pub const OBJECT_ATTRIB_IS_MACRO: OBJECT_ATTRIB_FLAGS = 268435456i32; +pub const OBJECT_ATTRIB_IS_PROPERTY: OBJECT_ATTRIB_FLAGS = 134217728i32; +pub const OBJECT_ATTRIB_IS_TYPE: OBJECT_ATTRIB_FLAGS = 536870912i32; +pub const OBJECT_ATTRIB_IS_VARIABLE: OBJECT_ATTRIB_FLAGS = 67108864i32; +pub const OBJECT_ATTRIB_NO_ATTRIB: OBJECT_ATTRIB_FLAGS = 0i32; +pub const OBJECT_ATTRIB_NO_NAME: OBJECT_ATTRIB_FLAGS = 1i32; +pub const OBJECT_ATTRIB_NO_TYPE: OBJECT_ATTRIB_FLAGS = 2i32; +pub const OBJECT_ATTRIB_NO_VALUE: OBJECT_ATTRIB_FLAGS = 4i32; +pub const OBJECT_ATTRIB_OBJECT_IS_EXPANDABLE: OBJECT_ATTRIB_FLAGS = 112i32; +pub const OBJECT_ATTRIB_SLOT_IS_CATEGORY: OBJECT_ATTRIB_FLAGS = 1024i32; +pub const OBJECT_ATTRIB_STORAGE_FIELD: OBJECT_ATTRIB_FLAGS = 262144i32; +pub const OBJECT_ATTRIB_STORAGE_GLOBAL: OBJECT_ATTRIB_FLAGS = 65536i32; +pub const OBJECT_ATTRIB_STORAGE_STATIC: OBJECT_ATTRIB_FLAGS = 131072i32; +pub const OBJECT_ATTRIB_STORAGE_VIRTUAL: OBJECT_ATTRIB_FLAGS = 524288i32; +pub const OBJECT_ATTRIB_TYPE_HAS_CODE: OBJECT_ATTRIB_FLAGS = 512i32; +pub const OBJECT_ATTRIB_TYPE_IS_CONSTANT: OBJECT_ATTRIB_FLAGS = 1048576i32; +pub const OBJECT_ATTRIB_TYPE_IS_EXPANDABLE: OBJECT_ATTRIB_FLAGS = 256i32; +pub const OBJECT_ATTRIB_TYPE_IS_OBJECT: OBJECT_ATTRIB_FLAGS = 256i32; +pub const OBJECT_ATTRIB_TYPE_IS_SYNCHRONIZED: OBJECT_ATTRIB_FLAGS = 2097152i32; +pub const OBJECT_ATTRIB_TYPE_IS_VOLATILE: OBJECT_ATTRIB_FLAGS = 4194304i32; +pub const OBJECT_ATTRIB_VALUE_HAS_CODE: OBJECT_ATTRIB_FLAGS = 128i32; +pub const OBJECT_ATTRIB_VALUE_IS_CUSTOM: OBJECT_ATTRIB_FLAGS = 64i32; +pub const OBJECT_ATTRIB_VALUE_IS_ENUM: OBJECT_ATTRIB_FLAGS = 32i32; +pub const OBJECT_ATTRIB_VALUE_IS_INVALID: OBJECT_ATTRIB_FLAGS = 8i32; +pub const OBJECT_ATTRIB_VALUE_IS_OBJECT: OBJECT_ATTRIB_FLAGS = 16i32; +pub const OBJECT_ATTRIB_VALUE_READONLY: OBJECT_ATTRIB_FLAGS = 2048i32; +pub const OBJECT_INITIALIZATION_FAILED: BUGCHECK_ERROR = 94u32; +pub const OFS_FILE_SYSTEM: BUGCHECK_ERROR = 131u32; +pub const OS_DATA_TAMPERING: BUGCHECK_ERROR = 341u32; +pub const OUTPUT_DEBUG_STRING_EVENT: DEBUG_EVENT_CODE = 8u32; +pub const PAGE_FAULT_BEYOND_END_OF_ALLOCATION: BUGCHECK_ERROR = 205u32; +pub const PAGE_FAULT_IN_FREED_SPECIAL_POOL: BUGCHECK_ERROR = 204u32; +pub const PAGE_FAULT_IN_NONPAGED_AREA: BUGCHECK_ERROR = 80u32; +pub const PAGE_FAULT_IN_NONPAGED_AREA_M: BUGCHECK_ERROR = 268435536u32; +pub const PAGE_FAULT_WITH_INTERRUPTS_OFF: BUGCHECK_ERROR = 73u32; +pub const PAGE_NOT_ZERO: BUGCHECK_ERROR = 295u32; +pub const PANIC_STACK_SWITCH: BUGCHECK_ERROR = 43u32; +pub const PASSIVE_INTERRUPT_ERROR: BUGCHECK_ERROR = 315u32; +pub const PCI_BUS_DRIVER_INTERNAL: BUGCHECK_ERROR = 161u32; +pub const PCI_CONFIG_SPACE_ACCESS_FAILURE: BUGCHECK_ERROR = 192u32; +pub const PCI_VERIFIER_DETECTED_VIOLATION: BUGCHECK_ERROR = 246u32; +pub const PDC_LOCK_WATCHDOG_LIVEDUMP: BUGCHECK_ERROR = 380u32; +pub const PDC_PRIVILEGE_CHECK_LIVEDUMP: BUGCHECK_ERROR = 415u32; +pub const PDC_UNEXPECTED_REVOCATION_LIVEDUMP: BUGCHECK_ERROR = 381u32; +pub const PDC_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = 335u32; +pub const PDC_WATCHDOG_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = 348u32; +pub const PFN_LIST_CORRUPT: BUGCHECK_ERROR = 78u32; +pub const PFN_REFERENCE_COUNT: BUGCHECK_ERROR = 28u32; +pub const PFN_SHARE_COUNT: BUGCHECK_ERROR = 27u32; +pub const PF_DETECTED_CORRUPTION: BUGCHECK_ERROR = 401u32; +pub const PHASE0_EXCEPTION: BUGCHECK_ERROR = 120u32; +pub const PHASE0_INITIALIZATION_FAILED: BUGCHECK_ERROR = 49u32; +pub const PHASE1_INITIALIZATION_FAILED: BUGCHECK_ERROR = 50u32; +pub const PINBALL_FILE_SYSTEM: BUGCHECK_ERROR = 89u32; +pub const PNP_DETECTED_FATAL_ERROR: BUGCHECK_ERROR = 202u32; +pub const PNP_INTERNAL_ERROR: BUGCHECK_ERROR = 149u32; +pub const POOL_CORRUPTION_IN_FILE_AREA: BUGCHECK_ERROR = 222u32; +pub const PORT_DRIVER_INTERNAL: BUGCHECK_ERROR = 44u32; +pub const POWER_FAILURE_SIMULATE: BUGCHECK_ERROR = 229u32; +pub const PP0_INITIALIZATION_FAILED: BUGCHECK_ERROR = 143u32; +pub const PP1_INITIALIZATION_FAILED: BUGCHECK_ERROR = 144u32; +pub const PREVIOUS_FATAL_ABNORMAL_RESET_ERROR: BUGCHECK_ERROR = 373u32; +pub const PROCESS1_INITIALIZATION_FAILED: BUGCHECK_ERROR = 107u32; +pub const PROCESSOR_DRIVER_INTERNAL: BUGCHECK_ERROR = 323u32; +pub const PROCESSOR_START_TIMEOUT: BUGCHECK_ERROR = 479u32; +pub const PROCESS_HAS_LOCKED_PAGES: BUGCHECK_ERROR = 118u32; +pub const PROCESS_INITIALIZATION_FAILED: BUGCHECK_ERROR = 96u32; +pub const PROFILER_CONFIGURATION_ILLEGAL: BUGCHECK_ERROR = 379u32; +pub const PROP_INFO_ATTRIBUTES: PROP_INFO_FLAGS = 8i32; +pub const PROP_INFO_AUTOEXPAND: PROP_INFO_FLAGS = 134217728i32; +pub const PROP_INFO_DEBUGPROP: PROP_INFO_FLAGS = 16i32; +pub const PROP_INFO_FULLNAME: PROP_INFO_FLAGS = 32i32; +pub const PROP_INFO_NAME: PROP_INFO_FLAGS = 1i32; +pub const PROP_INFO_TYPE: PROP_INFO_FLAGS = 2i32; +pub const PROP_INFO_VALUE: PROP_INFO_FLAGS = 4i32; +pub const ProcessVmCountersStream: MINIDUMP_STREAM_TYPE = 22i32; +pub const QUOTA_UNDERFLOW: BUGCHECK_ERROR = 33u32; +pub const RAMDISK_BOOT_INITIALIZATION_FAILED: BUGCHECK_ERROR = 248u32; +pub const RDR_FILE_SYSTEM: BUGCHECK_ERROR = 39u32; +pub const RECOM_DRIVER: BUGCHECK_ERROR = 132u32; +pub const RECURSIVE_MACHINE_CHECK: BUGCHECK_ERROR = 251u32; +pub const RECURSIVE_NMI: BUGCHECK_ERROR = 273u32; +pub const REFERENCE_BY_POINTER: BUGCHECK_ERROR = 24u32; +pub const REFMON_INITIALIZATION_FAILED: BUGCHECK_ERROR = 108u32; +pub const REFS_FILE_SYSTEM: BUGCHECK_ERROR = 329u32; +pub const REF_UNKNOWN_LOGON_SESSION: BUGCHECK_ERROR = 71u32; +pub const REGISTRY_CALLBACK_DRIVER_EXCEPTION: BUGCHECK_ERROR = 319u32; +pub const REGISTRY_ERROR: BUGCHECK_ERROR = 81u32; +pub const REGISTRY_FILTER_DRIVER_EXCEPTION: BUGCHECK_ERROR = 309u32; +pub const REGISTRY_LIVE_DUMP: BUGCHECK_ERROR = 487u32; +pub const RESERVE_QUEUE_OVERFLOW: BUGCHECK_ERROR = 255u32; +pub const RESOURCE_NOT_OWNED: BUGCHECK_ERROR = 227u32; +pub const RESOURCE_OWNER_POINTER_INVALID: BUGCHECK_ERROR = 306u32; +pub const RESTORE_LAST_ERROR_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestoreLastError"); +pub const RESTORE_LAST_ERROR_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("RestoreLastError"); +pub const RESTORE_LAST_ERROR_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestoreLastError"); +pub const RIP_EVENT: DEBUG_EVENT_CODE = 9u32; +pub const ReadMemoryFailureCallback: MINIDUMP_CALLBACK_TYPE = 14i32; +pub const RemoveMemoryCallback: MINIDUMP_CALLBACK_TYPE = 9i32; +pub const ReservedStream0: MINIDUMP_STREAM_TYPE = 1i32; +pub const ReservedStream1: MINIDUMP_STREAM_TYPE = 2i32; +pub const SAVER_ACCOUNTPROVSVCINITFAILURE: BUGCHECK_ERROR = 61461u32; +pub const SAVER_APPBARDISMISSAL: BUGCHECK_ERROR = 61454u32; +pub const SAVER_APPLISTUNREACHABLE: BUGCHECK_ERROR = 61456u32; +pub const SAVER_AUDIODRIVERHANG: BUGCHECK_ERROR = 62464u32; +pub const SAVER_AUXILIARYFULLDUMP: BUGCHECK_ERROR = 61460u32; +pub const SAVER_BATTERYPULLOUT: BUGCHECK_ERROR = 62720u32; +pub const SAVER_BLANKSCREEN: BUGCHECK_ERROR = 61442u32; +pub const SAVER_CALLDISMISSAL: BUGCHECK_ERROR = 61453u32; +pub const SAVER_CAPTURESERVICE: BUGCHECK_ERROR = 63488u32; +pub const SAVER_CHROMEPROCESSCRASH: BUGCHECK_ERROR = 61450u32; +pub const SAVER_DEVICEUPDATEUNSPECIFIED: BUGCHECK_ERROR = 62208u32; +pub const SAVER_GRAPHICS: BUGCHECK_ERROR = 61448u32; +pub const SAVER_INPUT: BUGCHECK_ERROR = 61443u32; +pub const SAVER_MEDIACORETESTHANG: BUGCHECK_ERROR = 62976u32; +pub const SAVER_MTBFCOMMANDHANG: BUGCHECK_ERROR = 61697u32; +pub const SAVER_MTBFCOMMANDTIMEOUT: BUGCHECK_ERROR = 789u32; +pub const SAVER_MTBFIOERROR: BUGCHECK_ERROR = 61699u32; +pub const SAVER_MTBFPASSBUGCHECK: BUGCHECK_ERROR = 61698u32; +pub const SAVER_NAVIGATIONMODEL: BUGCHECK_ERROR = 61446u32; +pub const SAVER_NAVSERVERTIMEOUT: BUGCHECK_ERROR = 61449u32; +pub const SAVER_NONRESPONSIVEPROCESS: BUGCHECK_ERROR = 404u32; +pub const SAVER_NOTIFICATIONDISMISSAL: BUGCHECK_ERROR = 61451u32; +pub const SAVER_OUTOFMEMORY: BUGCHECK_ERROR = 61447u32; +pub const SAVER_RENDERMOBILEUIOOM: BUGCHECK_ERROR = 61953u32; +pub const SAVER_RENDERTHREADHANG: BUGCHECK_ERROR = 61952u32; +pub const SAVER_REPORTNOTIFICATIONFAILURE: BUGCHECK_ERROR = 61457u32; +pub const SAVER_RESOURCEMANAGEMENT: BUGCHECK_ERROR = 63232u32; +pub const SAVER_RILADAPTATIONCRASH: BUGCHECK_ERROR = 61455u32; +pub const SAVER_RPCFAILURE: BUGCHECK_ERROR = 61459u32; +pub const SAVER_SICKAPPLICATION: BUGCHECK_ERROR = 34918u32; +pub const SAVER_SPEECHDISMISSAL: BUGCHECK_ERROR = 61452u32; +pub const SAVER_STARTNOTVISIBLE: BUGCHECK_ERROR = 61445u32; +pub const SAVER_UNEXPECTEDSHUTDOWN: BUGCHECK_ERROR = 61458u32; +pub const SAVER_UNSPECIFIED: BUGCHECK_ERROR = 61440u32; +pub const SAVER_WAITFORSHELLREADY: BUGCHECK_ERROR = 63744u32; +pub const SAVER_WATCHDOG: BUGCHECK_ERROR = 61444u32; +pub const SCSI_DISK_DRIVER_INTERNAL: BUGCHECK_ERROR = 45u32; +pub const SCSI_VERIFIER_DETECTED_VIOLATION: BUGCHECK_ERROR = 241u32; +pub const SDBUS_INTERNAL_ERROR: BUGCHECK_ERROR = 346u32; +pub const SECURE_BOOT_VIOLATION: BUGCHECK_ERROR = 325u32; +pub const SECURE_FAULT_UNHANDLED: BUGCHECK_ERROR = 397u32; +pub const SECURE_KERNEL_ERROR: BUGCHECK_ERROR = 395u32; +pub const SECURE_PCI_CONFIG_SPACE_ACCESS_VIOLATION: BUGCHECK_ERROR = 490u32; +pub const SECURITY1_INITIALIZATION_FAILED: BUGCHECK_ERROR = 99u32; +pub const SECURITY_INITIALIZATION_FAILED: BUGCHECK_ERROR = 95u32; +pub const SECURITY_SYSTEM: BUGCHECK_ERROR = 41u32; +pub const SEM_ALL_ERRORS: THREAD_ERROR_MODE = 0u32; +pub const SEM_FAILCRITICALERRORS: THREAD_ERROR_MODE = 1u32; +pub const SEM_NOALIGNMENTFAULTEXCEPT: THREAD_ERROR_MODE = 4u32; +pub const SEM_NOGPFAULTERRORBOX: THREAD_ERROR_MODE = 2u32; +pub const SEM_NOOPENFILEERRORBOX: THREAD_ERROR_MODE = 32768u32; +pub const SERIAL_DRIVER_INTERNAL: BUGCHECK_ERROR = 56u32; +pub const SESSION1_INITIALIZATION_FAILED: BUGCHECK_ERROR = 109u32; +pub const SESSION_HAS_VALID_POOL_ON_EXIT: BUGCHECK_ERROR = 171u32; +pub const SESSION_HAS_VALID_SPECIAL_POOL_ON_EXIT: BUGCHECK_ERROR = 236u32; +pub const SESSION_HAS_VALID_VIEWS_ON_EXIT: BUGCHECK_ERROR = 186u32; +pub const SETUP_FAILURE: BUGCHECK_ERROR = 133u32; +pub const SET_ENV_VAR_FAILED: BUGCHECK_ERROR = 91u32; +pub const SET_OF_INVALID_CONTEXT: BUGCHECK_ERROR = 48u32; +pub const SHARED_RESOURCE_CONV_ERROR: BUGCHECK_ERROR = 31u32; +pub const SILO_CORRUPT: BUGCHECK_ERROR = 394u32; +pub const SLE_ERROR: RIP_INFO_TYPE = 1u32; +pub const SLE_MINORERROR: RIP_INFO_TYPE = 2u32; +pub const SLE_WARNING: RIP_INFO_TYPE = 3u32; +pub const SLMFLAG_ALT_INDEX: SYM_LOAD_FLAGS = 2u32; +pub const SLMFLAG_NONE: SYM_LOAD_FLAGS = 0u32; +pub const SLMFLAG_NO_SYMBOLS: SYM_LOAD_FLAGS = 4u32; +pub const SLMFLAG_VIRTUAL: SYM_LOAD_FLAGS = 1u32; +pub const SMB_REDIRECTOR_LIVEDUMP: BUGCHECK_ERROR = 423u32; +pub const SMB_SERVER_LIVEDUMP: BUGCHECK_ERROR = 405u32; +pub const SOC_CRITICAL_DEVICE_REMOVED: BUGCHECK_ERROR = 334u32; +pub const SOC_SUBSYSTEM_FAILURE: BUGCHECK_ERROR = 331u32; +pub const SOC_SUBSYSTEM_FAILURE_LIVEDUMP: BUGCHECK_ERROR = 349u32; +pub const SOFT_RESTART_FATAL_ERROR: BUGCHECK_ERROR = 112u32; +pub const SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION: BUGCHECK_ERROR = 193u32; +pub const SPIN_LOCK_ALREADY_OWNED: BUGCHECK_ERROR = 15u32; +pub const SPIN_LOCK_INIT_FAILURE: BUGCHECK_ERROR = 129u32; +pub const SPIN_LOCK_NOT_OWNED: BUGCHECK_ERROR = 16u32; +pub const SPLITSYM_EXTRACT_ALL: u32 = 2u32; +pub const SPLITSYM_REMOVE_PRIVATE: u32 = 1u32; +pub const SPLITSYM_SYMBOLPATH_IS_SRC: u32 = 4u32; +pub const SSRVACTION_CHECKSUMSTATUS: u32 = 8u32; +pub const SSRVACTION_EVENT: u32 = 3u32; +pub const SSRVACTION_EVENTW: u32 = 4u32; +pub const SSRVACTION_HTTPSTATUS: u32 = 6u32; +pub const SSRVACTION_QUERYCANCEL: u32 = 2u32; +pub const SSRVACTION_SIZE: u32 = 5u32; +pub const SSRVACTION_TRACE: u32 = 1u32; +pub const SSRVACTION_XMLOUTPUT: u32 = 7u32; +pub const SSRVOPT_CALLBACK: u32 = 1u32; +pub const SSRVOPT_CALLBACKW: u32 = 65536u32; +pub const SSRVOPT_DISABLE_PING_HOST: u32 = 67108864u32; +pub const SSRVOPT_DISABLE_TIMEOUT: u32 = 134217728u32; +pub const SSRVOPT_DONT_UNCOMPRESS: u32 = 33554432u32; +pub const SSRVOPT_DOWNSTREAM_STORE: u32 = 8192u32; +pub const SSRVOPT_DWORD: SYM_FIND_ID_OPTION = 2u32; +pub const SSRVOPT_DWORDPTR: SYM_FIND_ID_OPTION = 4u32; +pub const SSRVOPT_ENABLE_COMM_MSG: u32 = 268435456u32; +pub const SSRVOPT_FAVOR_COMPRESSED: u32 = 2097152u32; +pub const SSRVOPT_FLAT_DEFAULT_STORE: u32 = 131072u32; +pub const SSRVOPT_GETPATH: u32 = 64u32; +pub const SSRVOPT_GUIDPTR: SYM_FIND_ID_OPTION = 8u32; +pub const SSRVOPT_MAX: u32 = 2147483648u32; +pub const SSRVOPT_MESSAGE: u32 = 524288u32; +pub const SSRVOPT_NOCOPY: u32 = 64u32; +pub const SSRVOPT_OLDGUIDPTR: u32 = 16u32; +pub const SSRVOPT_OVERWRITE: u32 = 16384u32; +pub const SSRVOPT_PARAMTYPE: u32 = 256u32; +pub const SSRVOPT_PARENTWIN: u32 = 128u32; +pub const SSRVOPT_PROXY: u32 = 4096u32; +pub const SSRVOPT_PROXYW: u32 = 262144u32; +pub const SSRVOPT_RESETTOU: u32 = 32768u32; +pub const SSRVOPT_RETRY_APP_HANG: u32 = 2147483648u32; +pub const SSRVOPT_SECURE: u32 = 512u32; +pub const SSRVOPT_SERVICE: u32 = 1048576u32; +pub const SSRVOPT_SETCONTEXT: u32 = 2048u32; +pub const SSRVOPT_STRING: u32 = 4194304u32; +pub const SSRVOPT_TRACE: u32 = 1024u32; +pub const SSRVOPT_UNATTENDED: u32 = 32u32; +pub const SSRVOPT_URI_FILTER: u32 = 536870912u32; +pub const SSRVOPT_URI_TIERS: u32 = 1073741824u32; +pub const SSRVOPT_WINHTTP: u32 = 8388608u32; +pub const SSRVOPT_WININET: u32 = 16777216u32; +pub const SSRVURI_ALL: u32 = 255u32; +pub const SSRVURI_COMPRESSED: u32 = 2u32; +pub const SSRVURI_FILEPTR: u32 = 4u32; +pub const SSRVURI_HTTP_COMPRESSED: u32 = 2u32; +pub const SSRVURI_HTTP_FILEPTR: u32 = 4u32; +pub const SSRVURI_HTTP_MASK: u32 = 15u32; +pub const SSRVURI_HTTP_NORMAL: u32 = 1u32; +pub const SSRVURI_NORMAL: u32 = 1u32; +pub const SSRVURI_UNC_COMPRESSED: u32 = 32u32; +pub const SSRVURI_UNC_FILEPTR: u32 = 64u32; +pub const SSRVURI_UNC_MASK: u32 = 240u32; +pub const SSRVURI_UNC_NORMAL: u32 = 16u32; +pub const STORAGE_DEVICE_ABNORMALITY_DETECTED: BUGCHECK_ERROR = 320u32; +pub const STORAGE_MINIPORT_ERROR: BUGCHECK_ERROR = 240u32; +pub const STORE_DATA_STRUCTURE_CORRUPTION: BUGCHECK_ERROR = 455u32; +pub const STREAMS_INTERNAL_ERROR: BUGCHECK_ERROR = 75u32; +pub const SYMBOLIC_INITIALIZATION_FAILED: BUGCHECK_ERROR = 100u32; +pub const SYMENUM_OPTIONS_DEFAULT: u32 = 1u32; +pub const SYMENUM_OPTIONS_INLINE: u32 = 2u32; +pub const SYMFLAG_CLR_TOKEN: SYMBOL_INFO_FLAGS = 262144u32; +pub const SYMFLAG_CONSTANT: SYMBOL_INFO_FLAGS = 256u32; +pub const SYMFLAG_EXPORT: SYMBOL_INFO_FLAGS = 512u32; +pub const SYMFLAG_FIXUP_ARM64X: u32 = 16777216u32; +pub const SYMFLAG_FORWARDER: SYMBOL_INFO_FLAGS = 1024u32; +pub const SYMFLAG_FRAMEREL: SYMBOL_INFO_FLAGS = 32u32; +pub const SYMFLAG_FUNCTION: SYMBOL_INFO_FLAGS = 2048u32; +pub const SYMFLAG_FUNC_NO_RETURN: u32 = 1048576u32; +pub const SYMFLAG_GLOBAL: u32 = 33554432u32; +pub const SYMFLAG_ILREL: SYMBOL_INFO_FLAGS = 65536u32; +pub const SYMFLAG_LOCAL: SYMBOL_INFO_FLAGS = 128u32; +pub const SYMFLAG_METADATA: SYMBOL_INFO_FLAGS = 131072u32; +pub const SYMFLAG_NULL: u32 = 524288u32; +pub const SYMFLAG_PARAMETER: SYMBOL_INFO_FLAGS = 64u32; +pub const SYMFLAG_PUBLIC_CODE: u32 = 4194304u32; +pub const SYMFLAG_REGISTER: SYMBOL_INFO_FLAGS = 8u32; +pub const SYMFLAG_REGREL: SYMBOL_INFO_FLAGS = 16u32; +pub const SYMFLAG_REGREL_ALIASINDIR: u32 = 8388608u32; +pub const SYMFLAG_RESET: u32 = 2147483648u32; +pub const SYMFLAG_SLOT: SYMBOL_INFO_FLAGS = 32768u32; +pub const SYMFLAG_SYNTHETIC_ZEROBASE: u32 = 2097152u32; +pub const SYMFLAG_THUNK: SYMBOL_INFO_FLAGS = 8192u32; +pub const SYMFLAG_TLSREL: SYMBOL_INFO_FLAGS = 16384u32; +pub const SYMFLAG_VALUEPRESENT: SYMBOL_INFO_FLAGS = 1u32; +pub const SYMFLAG_VIRTUAL: SYMBOL_INFO_FLAGS = 4096u32; +pub const SYMF_CONSTANT: u32 = 256u32; +pub const SYMF_EXPORT: u32 = 512u32; +pub const SYMF_FORWARDER: u32 = 1024u32; +pub const SYMF_FRAMEREL: u32 = 32u32; +pub const SYMF_FUNCTION: u32 = 2048u32; +pub const SYMF_LOCAL: u32 = 128u32; +pub const SYMF_OMAP_GENERATED: u32 = 1u32; +pub const SYMF_OMAP_MODIFIED: u32 = 2u32; +pub const SYMF_PARAMETER: u32 = 64u32; +pub const SYMF_REGISTER: u32 = 8u32; +pub const SYMF_REGREL: u32 = 16u32; +pub const SYMF_THUNK: u32 = 8192u32; +pub const SYMF_TLSREL: u32 = 16384u32; +pub const SYMF_VIRTUAL: u32 = 4096u32; +pub const SYMOPT_ALLOW_ABSOLUTE_SYMBOLS: u32 = 2048u32; +pub const SYMOPT_ALLOW_ZERO_ADDRESS: u32 = 16777216u32; +pub const SYMOPT_AUTO_PUBLICS: u32 = 65536u32; +pub const SYMOPT_CASE_INSENSITIVE: u32 = 1u32; +pub const SYMOPT_DEBUG: u32 = 2147483648u32; +pub const SYMOPT_DEFERRED_LOADS: u32 = 4u32; +pub const SYMOPT_DISABLE_FAST_SYMBOLS: u32 = 268435456u32; +pub const SYMOPT_DISABLE_SRVSTAR_ON_STARTUP: u32 = 1073741824u32; +pub const SYMOPT_DISABLE_SYMSRV_AUTODETECT: u32 = 33554432u32; +pub const SYMOPT_DISABLE_SYMSRV_TIMEOUT: u32 = 536870912u32; +pub const SYMOPT_EXACT_SYMBOLS: u32 = 1024u32; +pub const SYMOPT_EX_DISABLEACCESSTIMEUPDATE: IMAGEHLP_EXTENDED_OPTIONS = 0i32; +pub const SYMOPT_EX_LASTVALIDDEBUGDIRECTORY: IMAGEHLP_EXTENDED_OPTIONS = 1i32; +pub const SYMOPT_EX_MAX: IMAGEHLP_EXTENDED_OPTIONS = 4i32; +pub const SYMOPT_EX_NEVERLOADSYMBOLS: IMAGEHLP_EXTENDED_OPTIONS = 3i32; +pub const SYMOPT_EX_NOIMPLICITPATTERNSEARCH: IMAGEHLP_EXTENDED_OPTIONS = 2i32; +pub const SYMOPT_FAIL_CRITICAL_ERRORS: u32 = 512u32; +pub const SYMOPT_FAVOR_COMPRESSED: u32 = 8388608u32; +pub const SYMOPT_FLAT_DIRECTORY: u32 = 4194304u32; +pub const SYMOPT_IGNORE_CVREC: u32 = 128u32; +pub const SYMOPT_IGNORE_IMAGEDIR: u32 = 2097152u32; +pub const SYMOPT_IGNORE_NT_SYMPATH: u32 = 4096u32; +pub const SYMOPT_INCLUDE_32BIT_MODULES: u32 = 8192u32; +pub const SYMOPT_LOAD_ANYTHING: u32 = 64u32; +pub const SYMOPT_LOAD_LINES: u32 = 16u32; +pub const SYMOPT_NO_CPP: u32 = 8u32; +pub const SYMOPT_NO_IMAGE_SEARCH: u32 = 131072u32; +pub const SYMOPT_NO_PROMPTS: u32 = 524288u32; +pub const SYMOPT_NO_PUBLICS: u32 = 32768u32; +pub const SYMOPT_NO_UNQUALIFIED_LOADS: u32 = 256u32; +pub const SYMOPT_OMAP_FIND_NEAREST: u32 = 32u32; +pub const SYMOPT_OVERWRITE: u32 = 1048576u32; +pub const SYMOPT_PUBLICS_ONLY: u32 = 16384u32; +pub const SYMOPT_READONLY_CACHE: u32 = 67108864u32; +pub const SYMOPT_SECURE: u32 = 262144u32; +pub const SYMOPT_SYMPATH_LAST: u32 = 134217728u32; +pub const SYMOPT_UNDNAME: u32 = 2u32; +pub const SYMSEARCH_ALLITEMS: u32 = 8u32; +pub const SYMSEARCH_GLOBALSONLY: u32 = 4u32; +pub const SYMSEARCH_MASKOBJS: u32 = 1u32; +pub const SYMSEARCH_RECURSE: u32 = 2u32; +pub const SYMSRV_VERSION: u32 = 2u32; +pub const SYMSTOREOPT_ALT_INDEX: u32 = 16u32; +pub const SYMSTOREOPT_COMPRESS: SYM_SRV_STORE_FILE_FLAGS = 1u32; +pub const SYMSTOREOPT_OVERWRITE: SYM_SRV_STORE_FILE_FLAGS = 2u32; +pub const SYMSTOREOPT_PASS_IF_EXISTS: SYM_SRV_STORE_FILE_FLAGS = 64u32; +pub const SYMSTOREOPT_POINTER: SYM_SRV_STORE_FILE_FLAGS = 8u32; +pub const SYMSTOREOPT_RETURNINDEX: SYM_SRV_STORE_FILE_FLAGS = 4u32; +pub const SYMSTOREOPT_UNICODE: u32 = 32u32; +pub const SYM_INLINE_COMP_DIFFERENT: u32 = 5u32; +pub const SYM_INLINE_COMP_ERROR: u32 = 0u32; +pub const SYM_INLINE_COMP_IDENTICAL: u32 = 1u32; +pub const SYM_INLINE_COMP_STEPIN: u32 = 2u32; +pub const SYM_INLINE_COMP_STEPOUT: u32 = 3u32; +pub const SYM_INLINE_COMP_STEPOVER: u32 = 4u32; +pub const SYM_STKWALK_DEFAULT: u32 = 0u32; +pub const SYM_STKWALK_FORCE_FRAMEPTR: u32 = 1u32; +pub const SYM_STKWALK_ZEROEXTEND_PTRS: u32 = 2u32; +pub const SYNTHETIC_EXCEPTION_UNHANDLED: BUGCHECK_ERROR = 399u32; +pub const SYNTHETIC_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = 458u32; +pub const SYSTEM_EXIT_OWNED_MUTEX: BUGCHECK_ERROR = 57u32; +pub const SYSTEM_IMAGE_BAD_SIGNATURE: BUGCHECK_ERROR = 195u32; +pub const SYSTEM_LICENSE_VIOLATION: BUGCHECK_ERROR = 154u32; +pub const SYSTEM_PTE_MISUSE: BUGCHECK_ERROR = 218u32; +pub const SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD: BUGCHECK_ERROR = 212u32; +pub const SYSTEM_SERVICE_EXCEPTION: BUGCHECK_ERROR = 59u32; +pub const SYSTEM_THREAD_EXCEPTION_NOT_HANDLED: BUGCHECK_ERROR = 126u32; +pub const SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M: BUGCHECK_ERROR = 268435582u32; +pub const SYSTEM_UNWIND_PREVIOUS_USER: BUGCHECK_ERROR = 58u32; +pub const SecondaryFlagsCallback: MINIDUMP_CALLBACK_TYPE = 15i32; +pub const SymCoff: SYM_TYPE = 1i32; +pub const SymCv: SYM_TYPE = 2i32; +pub const SymDeferred: SYM_TYPE = 5i32; +pub const SymDia: SYM_TYPE = 7i32; +pub const SymExport: SYM_TYPE = 4i32; +pub const SymNone: SYM_TYPE = 0i32; +pub const SymPdb: SYM_TYPE = 3i32; +pub const SymSym: SYM_TYPE = 6i32; +pub const SymVirtual: SYM_TYPE = 8i32; +pub const SystemInfoStream: MINIDUMP_STREAM_TYPE = 7i32; +pub const SystemMemoryInfoStream: MINIDUMP_STREAM_TYPE = 21i32; +pub const TARGET_ATTRIBUTE_PACMASK: u32 = 1u32; +pub const TARGET_MDL_TOO_SMALL: BUGCHECK_ERROR = 64u32; +pub const TCPIP_AOAC_NIC_ACTIVE_REFERENCE_LEAK: BUGCHECK_ERROR = 336u32; +pub const TELEMETRY_ASSERTS_LIVEDUMP: BUGCHECK_ERROR = 465u32; +pub const TERMINAL_SERVER_DRIVER_MADE_INCORRECT_MEMORY_REFERENCE: BUGCHECK_ERROR = 207u32; +pub const THIRD_PARTY_FILE_SYSTEM_FAILURE: BUGCHECK_ERROR = 264u32; +pub const THREAD_NOT_MUTEX_OWNER: BUGCHECK_ERROR = 17u32; +pub const THREAD_STUCK_IN_DEVICE_DRIVER: BUGCHECK_ERROR = 234u32; +pub const THREAD_STUCK_IN_DEVICE_DRIVER_M: BUGCHECK_ERROR = 268435690u32; +pub const THREAD_TERMINATE_HELD_MUTEX: BUGCHECK_ERROR = 1073741962u32; +pub const TIMER_OR_DPC_INVALID: BUGCHECK_ERROR = 199u32; +pub const TI_FINDCHILDREN: IMAGEHLP_SYMBOL_TYPE_INFO = 7i32; +pub const TI_GET_ADDRESS: IMAGEHLP_SYMBOL_TYPE_INFO = 22i32; +pub const TI_GET_ADDRESSOFFSET: IMAGEHLP_SYMBOL_TYPE_INFO = 9i32; +pub const TI_GET_ARRAYINDEXTYPEID: IMAGEHLP_SYMBOL_TYPE_INFO = 6i32; +pub const TI_GET_BASETYPE: IMAGEHLP_SYMBOL_TYPE_INFO = 5i32; +pub const TI_GET_BITPOSITION: IMAGEHLP_SYMBOL_TYPE_INFO = 14i32; +pub const TI_GET_CALLING_CONVENTION: IMAGEHLP_SYMBOL_TYPE_INFO = 26i32; +pub const TI_GET_CHILDRENCOUNT: IMAGEHLP_SYMBOL_TYPE_INFO = 13i32; +pub const TI_GET_CLASSPARENTID: IMAGEHLP_SYMBOL_TYPE_INFO = 18i32; +pub const TI_GET_COUNT: IMAGEHLP_SYMBOL_TYPE_INFO = 12i32; +pub const TI_GET_DATAKIND: IMAGEHLP_SYMBOL_TYPE_INFO = 8i32; +pub const TI_GET_INDIRECTVIRTUALBASECLASS: IMAGEHLP_SYMBOL_TYPE_INFO = 32i32; +pub const TI_GET_IS_REFERENCE: IMAGEHLP_SYMBOL_TYPE_INFO = 31i32; +pub const TI_GET_LENGTH: IMAGEHLP_SYMBOL_TYPE_INFO = 2i32; +pub const TI_GET_LEXICALPARENT: IMAGEHLP_SYMBOL_TYPE_INFO = 21i32; +pub const TI_GET_NESTED: IMAGEHLP_SYMBOL_TYPE_INFO = 19i32; +pub const TI_GET_OBJECTPOINTERTYPE: IMAGEHLP_SYMBOL_TYPE_INFO = 34i32; +pub const TI_GET_OFFSET: IMAGEHLP_SYMBOL_TYPE_INFO = 10i32; +pub const TI_GET_SYMINDEX: IMAGEHLP_SYMBOL_TYPE_INFO = 20i32; +pub const TI_GET_SYMNAME: IMAGEHLP_SYMBOL_TYPE_INFO = 1i32; +pub const TI_GET_SYMTAG: IMAGEHLP_SYMBOL_TYPE_INFO = 0i32; +pub const TI_GET_THISADJUST: IMAGEHLP_SYMBOL_TYPE_INFO = 23i32; +pub const TI_GET_TYPE: IMAGEHLP_SYMBOL_TYPE_INFO = 3i32; +pub const TI_GET_TYPEID: IMAGEHLP_SYMBOL_TYPE_INFO = 4i32; +pub const TI_GET_UDTKIND: IMAGEHLP_SYMBOL_TYPE_INFO = 24i32; +pub const TI_GET_VALUE: IMAGEHLP_SYMBOL_TYPE_INFO = 11i32; +pub const TI_GET_VIRTUALBASECLASS: IMAGEHLP_SYMBOL_TYPE_INFO = 15i32; +pub const TI_GET_VIRTUALBASEDISPINDEX: IMAGEHLP_SYMBOL_TYPE_INFO = 30i32; +pub const TI_GET_VIRTUALBASEOFFSET: IMAGEHLP_SYMBOL_TYPE_INFO = 29i32; +pub const TI_GET_VIRTUALBASEPOINTEROFFSET: IMAGEHLP_SYMBOL_TYPE_INFO = 17i32; +pub const TI_GET_VIRTUALBASETABLETYPE: IMAGEHLP_SYMBOL_TYPE_INFO = 33i32; +pub const TI_GET_VIRTUALTABLESHAPEID: IMAGEHLP_SYMBOL_TYPE_INFO = 16i32; +pub const TI_GTIEX_REQS_VALID: IMAGEHLP_SYMBOL_TYPE_INFO = 28i32; +pub const TI_IS_CLOSE_EQUIV_TO: IMAGEHLP_SYMBOL_TYPE_INFO = 27i32; +pub const TI_IS_EQUIV_TO: IMAGEHLP_SYMBOL_TYPE_INFO = 25i32; +pub const TOO_MANY_RECURSIVE_FAULTS: BUGCHECK_ERROR = 286u32; +pub const TRAP_CAUSE_UNKNOWN: BUGCHECK_ERROR = 18u32; +pub const TTM_FATAL_ERROR: BUGCHECK_ERROR = 411u32; +pub const TTM_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = 416u32; +pub const ThreadCallback: MINIDUMP_CALLBACK_TYPE = 1i32; +pub const ThreadExCallback: MINIDUMP_CALLBACK_TYPE = 2i32; +pub const ThreadExListStream: MINIDUMP_STREAM_TYPE = 8i32; +pub const ThreadInfoListStream: MINIDUMP_STREAM_TYPE = 17i32; +pub const ThreadListStream: MINIDUMP_STREAM_TYPE = 3i32; +pub const ThreadNamesStream: MINIDUMP_STREAM_TYPE = 24i32; +pub const ThreadWriteBackingStore: THREAD_WRITE_FLAGS = 8i32; +pub const ThreadWriteContext: THREAD_WRITE_FLAGS = 4i32; +pub const ThreadWriteInstructionWindow: THREAD_WRITE_FLAGS = 16i32; +pub const ThreadWriteStack: THREAD_WRITE_FLAGS = 2i32; +pub const ThreadWriteThread: THREAD_WRITE_FLAGS = 1i32; +pub const ThreadWriteThreadData: THREAD_WRITE_FLAGS = 32i32; +pub const ThreadWriteThreadInfo: THREAD_WRITE_FLAGS = 64i32; +pub const TokenStream: MINIDUMP_STREAM_TYPE = 19i32; +pub const UCMUCSI_FAILURE: BUGCHECK_ERROR = 472u32; +pub const UCMUCSI_LIVEDUMP: BUGCHECK_ERROR = 468u32; +pub const UDFS_FILE_SYSTEM: BUGCHECK_ERROR = 155u32; +pub const UFX_LIVEDUMP: BUGCHECK_ERROR = 408u32; +pub const UNDNAME_32_BIT_DECODE: u32 = 2048u32; +pub const UNDNAME_COMPLETE: u32 = 0u32; +pub const UNDNAME_NAME_ONLY: u32 = 4096u32; +pub const UNDNAME_NO_ACCESS_SPECIFIERS: u32 = 128u32; +pub const UNDNAME_NO_ALLOCATION_LANGUAGE: u32 = 16u32; +pub const UNDNAME_NO_ALLOCATION_MODEL: u32 = 8u32; +pub const UNDNAME_NO_ARGUMENTS: u32 = 8192u32; +pub const UNDNAME_NO_CV_THISTYPE: u32 = 64u32; +pub const UNDNAME_NO_FUNCTION_RETURNS: u32 = 4u32; +pub const UNDNAME_NO_LEADING_UNDERSCORES: u32 = 1u32; +pub const UNDNAME_NO_MEMBER_TYPE: u32 = 512u32; +pub const UNDNAME_NO_MS_KEYWORDS: u32 = 2u32; +pub const UNDNAME_NO_MS_THISTYPE: u32 = 32u32; +pub const UNDNAME_NO_RETURN_UDT_MODEL: u32 = 1024u32; +pub const UNDNAME_NO_SPECIAL_SYMS: u32 = 16384u32; +pub const UNDNAME_NO_THISTYPE: u32 = 96u32; +pub const UNDNAME_NO_THROW_SIGNATURES: u32 = 256u32; +pub const UNEXPECTED_INITIALIZATION_CALL: BUGCHECK_ERROR = 51u32; +pub const UNEXPECTED_KERNEL_MODE_TRAP: BUGCHECK_ERROR = 127u32; +pub const UNEXPECTED_KERNEL_MODE_TRAP_M: BUGCHECK_ERROR = 268435583u32; +pub const UNEXPECTED_STORE_EXCEPTION: BUGCHECK_ERROR = 340u32; +pub const UNLOAD_DLL_DEBUG_EVENT: DEBUG_EVENT_CODE = 7u32; +pub const UNMOUNTABLE_BOOT_VOLUME: BUGCHECK_ERROR = 237u32; +pub const UNSUPPORTED_INSTRUCTION_MODE: BUGCHECK_ERROR = 337u32; +pub const UNSUPPORTED_PROCESSOR: BUGCHECK_ERROR = 93u32; +pub const UNWIND_ON_INVALID_STACK: BUGCHECK_ERROR = 427u32; +pub const UNW_FLAG_CHAININFO: RTL_VIRTUAL_UNWIND_HANDLER_TYPE = 4u32; +pub const UNW_FLAG_EHANDLER: RTL_VIRTUAL_UNWIND_HANDLER_TYPE = 1u32; +pub const UNW_FLAG_NHANDLER: RTL_VIRTUAL_UNWIND_HANDLER_TYPE = 0u32; +pub const UNW_FLAG_UHANDLER: RTL_VIRTUAL_UNWIND_HANDLER_TYPE = 2u32; +pub const UP_DRIVER_ON_MP_SYSTEM: BUGCHECK_ERROR = 146u32; +pub const USB4_HARDWARE_VIOLATION: BUGCHECK_ERROR = 496u32; +pub const USB_DRIPS_BLOCKER_SURPRISE_REMOVAL_LIVEDUMP: BUGCHECK_ERROR = 421u32; +pub const USER_MODE_HEALTH_MONITOR: BUGCHECK_ERROR = 158u32; +pub const USER_MODE_HEALTH_MONITOR_LIVEDUMP: BUGCHECK_ERROR = 457u32; +pub const UnloadedModuleListStream: MINIDUMP_STREAM_TYPE = 14i32; +pub const UnusedStream: MINIDUMP_STREAM_TYPE = 0i32; +pub const VER_PLATFORM_WIN32_NT: VER_PLATFORM = 2u32; +pub const VER_PLATFORM_WIN32_WINDOWS: VER_PLATFORM = 1u32; +pub const VER_PLATFORM_WIN32s: VER_PLATFORM = 0u32; +pub const VHD_BOOT_HOST_VOLUME_NOT_ENOUGH_SPACE: BUGCHECK_ERROR = 310u32; +pub const VHD_BOOT_INITIALIZATION_FAILED: BUGCHECK_ERROR = 303u32; +pub const VIDEO_DRIVER_DEBUG_REPORT_REQUEST: BUGCHECK_ERROR = 1073741997u32; +pub const VIDEO_DRIVER_INIT_FAILURE: BUGCHECK_ERROR = 180u32; +pub const VIDEO_DWMINIT_TIMEOUT_FALLBACK_BDD: BUGCHECK_ERROR = 391u32; +pub const VIDEO_DXGKRNL_BLACK_SCREEN_LIVEDUMP: BUGCHECK_ERROR = 424u32; +pub const VIDEO_DXGKRNL_FATAL_ERROR: BUGCHECK_ERROR = 275u32; +pub const VIDEO_DXGKRNL_LIVEDUMP: BUGCHECK_ERROR = 403u32; +pub const VIDEO_DXGKRNL_SYSMM_FATAL_ERROR: BUGCHECK_ERROR = 484u32; +pub const VIDEO_ENGINE_TIMEOUT_DETECTED: BUGCHECK_ERROR = 321u32; +pub const VIDEO_MEMORY_MANAGEMENT_INTERNAL: BUGCHECK_ERROR = 270u32; +pub const VIDEO_MINIPORT_BLACK_SCREEN_LIVEDUMP: BUGCHECK_ERROR = 440u32; +pub const VIDEO_MINIPORT_FAILED_LIVEDUMP: BUGCHECK_ERROR = 432u32; +pub const VIDEO_SCHEDULER_INTERNAL_ERROR: BUGCHECK_ERROR = 281u32; +pub const VIDEO_SHADOW_DRIVER_FATAL_ERROR: BUGCHECK_ERROR = 276u32; +pub const VIDEO_TDR_APPLICATION_BLOCKED: BUGCHECK_ERROR = 322u32; +pub const VIDEO_TDR_FAILURE: BUGCHECK_ERROR = 278u32; +pub const VIDEO_TDR_TIMEOUT_DETECTED: BUGCHECK_ERROR = 279u32; +pub const VMBUS_LIVEDUMP: BUGCHECK_ERROR = 1073742319u32; +pub const VOLMGRX_INTERNAL_ERROR: BUGCHECK_ERROR = 88u32; +pub const VOLSNAP_OVERLAPPED_TABLE_ACCESS: BUGCHECK_ERROR = 301u32; +pub const VSL_INITIALIZATION_FAILED: BUGCHECK_ERROR = 111u32; +pub const VmPostReadCallback: MINIDUMP_CALLBACK_TYPE = 20i32; +pub const VmPreReadCallback: MINIDUMP_CALLBACK_TYPE = 19i32; +pub const VmQueryCallback: MINIDUMP_CALLBACK_TYPE = 18i32; +pub const VmStartCallback: MINIDUMP_CALLBACK_TYPE = 17i32; +pub const WCT_ASYNC_OPEN_FLAG: OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS = 1u32; +pub const WCT_MAX_NODE_COUNT: u32 = 16u32; +pub const WCT_NETWORK_IO_FLAG: u32 = 8u32; +pub const WCT_OBJNAME_LENGTH: u32 = 128u32; +pub const WCT_OUT_OF_PROC_COM_FLAG: WAIT_CHAIN_THREAD_OPTIONS = 2u32; +pub const WCT_OUT_OF_PROC_CS_FLAG: WAIT_CHAIN_THREAD_OPTIONS = 4u32; +pub const WCT_OUT_OF_PROC_FLAG: WAIT_CHAIN_THREAD_OPTIONS = 1u32; +pub const WDF_VIOLATION: BUGCHECK_ERROR = 269u32; +pub const WFP_INVALID_OPERATION: BUGCHECK_ERROR = 467u32; +pub const WHEA_BAD_PAGE_LIST_LOCATION: u32 = 15u32; +pub const WHEA_BAD_PAGE_LIST_MAX_SIZE: u32 = 14u32; +pub const WHEA_CMCI_THRESHOLD_COUNT: u32 = 10u32; +pub const WHEA_CMCI_THRESHOLD_POLL_COUNT: u32 = 12u32; +pub const WHEA_CMCI_THRESHOLD_TIME: u32 = 11u32; +pub const WHEA_DEVICE_DRIVER_BUFFER_SET_MAX: u32 = 1u32; +pub const WHEA_DEVICE_DRIVER_BUFFER_SET_MIN: u32 = 1u32; +pub const WHEA_DEVICE_DRIVER_BUFFER_SET_V1: u32 = 1u32; +pub const WHEA_DEVICE_DRIVER_CONFIG_MAX: u32 = 2u32; +pub const WHEA_DEVICE_DRIVER_CONFIG_MIN: u32 = 1u32; +pub const WHEA_DEVICE_DRIVER_CONFIG_V1: u32 = 1u32; +pub const WHEA_DEVICE_DRIVER_CONFIG_V2: u32 = 2u32; +pub const WHEA_DISABLE_DUMMY_WRITE: u32 = 6u32; +pub const WHEA_DISABLE_OFFLINE: u32 = 0u32; +pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_AERBRIDGE: u32 = 8u32; +pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_AERENDPOINT: u32 = 7u32; +pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_AERROOTPORT: u32 = 6u32; +pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_GENERIC: u32 = 9u32; +pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_GENERIC_V2: u32 = 10u32; +pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_IPFCMC: u32 = 4u32; +pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_IPFCPE: u32 = 5u32; +pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_IPFMCA: u32 = 3u32; +pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_XPFCMC: u32 = 1u32; +pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_XPFMCE: u32 = 0u32; +pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_XPFNMI: u32 = 2u32; +pub const WHEA_ERROR_SOURCE_DESCRIPTOR_VERSION_10: u32 = 10u32; +pub const WHEA_ERROR_SOURCE_DESCRIPTOR_VERSION_11: u32 = 11u32; +pub const WHEA_ERROR_SOURCE_FLAG_DEFAULTSOURCE: u32 = 2147483648u32; +pub const WHEA_ERROR_SOURCE_FLAG_FIRMWAREFIRST: u32 = 1u32; +pub const WHEA_ERROR_SOURCE_FLAG_GHES_ASSIST: u32 = 4u32; +pub const WHEA_ERROR_SOURCE_FLAG_GLOBAL: u32 = 2u32; +pub const WHEA_ERROR_SOURCE_INVALID_RELATED_SOURCE: u32 = 65535u32; +pub const WHEA_INTERNAL_ERROR: BUGCHECK_ERROR = 290u32; +pub const WHEA_MAX_MC_BANKS: u32 = 32u32; +pub const WHEA_MEM_PERSISTOFFLINE: u32 = 1u32; +pub const WHEA_MEM_PFA_DISABLE: u32 = 2u32; +pub const WHEA_MEM_PFA_PAGECOUNT: u32 = 3u32; +pub const WHEA_MEM_PFA_THRESHOLD: u32 = 4u32; +pub const WHEA_MEM_PFA_TIMEOUT: u32 = 5u32; +pub const WHEA_NOTIFICATION_TYPE_ARMV8_SEA: u32 = 8u32; +pub const WHEA_NOTIFICATION_TYPE_ARMV8_SEI: u32 = 9u32; +pub const WHEA_NOTIFICATION_TYPE_CMCI: u32 = 5u32; +pub const WHEA_NOTIFICATION_TYPE_EXTERNALINTERRUPT: u32 = 1u32; +pub const WHEA_NOTIFICATION_TYPE_EXTERNALINTERRUPT_GSIV: u32 = 10u32; +pub const WHEA_NOTIFICATION_TYPE_GPIO_SIGNAL: u32 = 7u32; +pub const WHEA_NOTIFICATION_TYPE_LOCALINTERRUPT: u32 = 2u32; +pub const WHEA_NOTIFICATION_TYPE_MCE: u32 = 6u32; +pub const WHEA_NOTIFICATION_TYPE_NMI: u32 = 4u32; +pub const WHEA_NOTIFICATION_TYPE_POLLED: u32 = 0u32; +pub const WHEA_NOTIFICATION_TYPE_SCI: u32 = 3u32; +pub const WHEA_NOTIFICATION_TYPE_SDEI: u32 = 11u32; +pub const WHEA_NOTIFY_ALL_OFFLINES: u32 = 16u32; +pub const WHEA_PENDING_PAGE_LIST_SZ: u32 = 13u32; +pub const WHEA_RESTORE_CMCI_ATTEMPTS: u32 = 8u32; +pub const WHEA_RESTORE_CMCI_ENABLED: u32 = 7u32; +pub const WHEA_RESTORE_CMCI_ERR_LIMIT: u32 = 9u32; +pub const WHEA_ROW_FAIL_CHECK_ENABLE: u32 = 18u32; +pub const WHEA_ROW_FAIL_CHECK_EXTENT: u32 = 17u32; +pub const WHEA_ROW_FAIL_CHECK_THRESHOLD: u32 = 19u32; +pub const WHEA_UNCORRECTABLE_ERROR: BUGCHECK_ERROR = 292u32; +pub const WHEA_XPF_MC_BANK_STATUSFORMAT_AMD64MCA: u32 = 2u32; +pub const WHEA_XPF_MC_BANK_STATUSFORMAT_IA32MCA: u32 = 0u32; +pub const WHEA_XPF_MC_BANK_STATUSFORMAT_Intel64MCA: u32 = 1u32; +pub const WIN32K_ATOMIC_CHECK_FAILURE: BUGCHECK_ERROR = 352u32; +pub const WIN32K_CALLOUT_WATCHDOG_BUGCHECK: BUGCHECK_ERROR = 418u32; +pub const WIN32K_CALLOUT_WATCHDOG_LIVEDUMP: BUGCHECK_ERROR = 417u32; +pub const WIN32K_CRITICAL_FAILURE: BUGCHECK_ERROR = 356u32; +pub const WIN32K_CRITICAL_FAILURE_LIVEDUMP: BUGCHECK_ERROR = 400u32; +pub const WIN32K_HANDLE_MANAGER: BUGCHECK_ERROR = 311u32; +pub const WIN32K_INIT_OR_RIT_FAILURE: BUGCHECK_ERROR = 145u32; +pub const WIN32K_POWER_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = 412u32; +pub const WIN32K_SECURITY_FAILURE: BUGCHECK_ERROR = 407u32; +pub const WINDOWS_NT_BANNER: BUGCHECK_ERROR = 1073741950u32; +pub const WINDOWS_NT_CSD_STRING: BUGCHECK_ERROR = 1073741959u32; +pub const WINDOWS_NT_INFO_STRING: BUGCHECK_ERROR = 1073741960u32; +pub const WINDOWS_NT_INFO_STRING_PLURAL: BUGCHECK_ERROR = 1073741981u32; +pub const WINDOWS_NT_MP_STRING: BUGCHECK_ERROR = 1073741961u32; +pub const WINDOWS_NT_RC_STRING: BUGCHECK_ERROR = 1073741982u32; +pub const WINLOGON_FATAL_ERROR: BUGCHECK_ERROR = 3221226010u32; +pub const WINSOCK_DETECTED_HUNG_CLOSESOCKET_LIVEDUMP: BUGCHECK_ERROR = 342u32; +pub const WORKER_INVALID: BUGCHECK_ERROR = 228u32; +pub const WORKER_THREAD_INVALID_STATE: BUGCHECK_ERROR = 466u32; +pub const WORKER_THREAD_RETURNED_AT_BAD_IRQL: BUGCHECK_ERROR = 225u32; +pub const WORKER_THREAD_RETURNED_WHILE_ATTACHED_TO_SILO: BUGCHECK_ERROR = 410u32; +pub const WORKER_THREAD_RETURNED_WITH_BAD_IO_PRIORITY: BUGCHECK_ERROR = 296u32; +pub const WORKER_THREAD_RETURNED_WITH_BAD_PAGING_IO_PRIORITY: BUGCHECK_ERROR = 297u32; +pub const WORKER_THREAD_RETURNED_WITH_NON_DEFAULT_WORKLOAD_CLASS: BUGCHECK_ERROR = 470u32; +pub const WORKER_THREAD_RETURNED_WITH_SYSTEM_PAGE_PRIORITY_ACTIVE: BUGCHECK_ERROR = 347u32; +pub const WORKER_THREAD_TEST_CONDITION: BUGCHECK_ERROR = 355u32; +pub const WOW64_CONTEXT_ALL: WOW64_CONTEXT_FLAGS = 65599u32; +pub const WOW64_CONTEXT_CONTROL: WOW64_CONTEXT_FLAGS = 65537u32; +pub const WOW64_CONTEXT_DEBUG_REGISTERS: WOW64_CONTEXT_FLAGS = 65552u32; +pub const WOW64_CONTEXT_EXCEPTION_ACTIVE: WOW64_CONTEXT_FLAGS = 134217728u32; +pub const WOW64_CONTEXT_EXCEPTION_REPORTING: WOW64_CONTEXT_FLAGS = 2147483648u32; +pub const WOW64_CONTEXT_EXCEPTION_REQUEST: WOW64_CONTEXT_FLAGS = 1073741824u32; +pub const WOW64_CONTEXT_EXTENDED_REGISTERS: WOW64_CONTEXT_FLAGS = 65568u32; +pub const WOW64_CONTEXT_FLOATING_POINT: WOW64_CONTEXT_FLAGS = 65544u32; +pub const WOW64_CONTEXT_FULL: WOW64_CONTEXT_FLAGS = 65543u32; +pub const WOW64_CONTEXT_INTEGER: WOW64_CONTEXT_FLAGS = 65538u32; +pub const WOW64_CONTEXT_SEGMENTS: WOW64_CONTEXT_FLAGS = 65540u32; +pub const WOW64_CONTEXT_SERVICE_ACTIVE: WOW64_CONTEXT_FLAGS = 268435456u32; +pub const WOW64_CONTEXT_X86: WOW64_CONTEXT_FLAGS = 65536u32; +pub const WOW64_CONTEXT_XSTATE: WOW64_CONTEXT_FLAGS = 65600u32; +pub const WOW64_MAXIMUM_SUPPORTED_EXTENSION: u32 = 512u32; +pub const WOW64_SIZE_OF_80387_REGISTERS: u32 = 80u32; +pub const WVR_LIVEDUMP_APP_IO_TIMEOUT: BUGCHECK_ERROR = 387u32; +pub const WVR_LIVEDUMP_CRITICAL_ERROR: BUGCHECK_ERROR = 390u32; +pub const WVR_LIVEDUMP_MANUALLY_INITIATED: BUGCHECK_ERROR = 388u32; +pub const WVR_LIVEDUMP_RECOVERY_IOCONTEXT_TIMEOUT: BUGCHECK_ERROR = 386u32; +pub const WVR_LIVEDUMP_REPLICATION_IOCONTEXT_TIMEOUT: BUGCHECK_ERROR = 384u32; +pub const WVR_LIVEDUMP_STATE_FAILURE: BUGCHECK_ERROR = 389u32; +pub const WVR_LIVEDUMP_STATE_TRANSITION_TIMEOUT: BUGCHECK_ERROR = 385u32; +pub const WctAlpcType: WCT_OBJECT_TYPE = 4i32; +pub const WctComActivationType: WCT_OBJECT_TYPE = 9i32; +pub const WctComType: WCT_OBJECT_TYPE = 5i32; +pub const WctCriticalSectionType: WCT_OBJECT_TYPE = 1i32; +pub const WctMaxType: WCT_OBJECT_TYPE = 13i32; +pub const WctMutexType: WCT_OBJECT_TYPE = 3i32; +pub const WctProcessWaitType: WCT_OBJECT_TYPE = 7i32; +pub const WctSendMessageType: WCT_OBJECT_TYPE = 2i32; +pub const WctSmbIoType: WCT_OBJECT_TYPE = 12i32; +pub const WctSocketIoType: WCT_OBJECT_TYPE = 11i32; +pub const WctStatusAbandoned: WCT_OBJECT_STATUS = 8i32; +pub const WctStatusBlocked: WCT_OBJECT_STATUS = 3i32; +pub const WctStatusError: WCT_OBJECT_STATUS = 10i32; +pub const WctStatusMax: WCT_OBJECT_STATUS = 11i32; +pub const WctStatusNoAccess: WCT_OBJECT_STATUS = 1i32; +pub const WctStatusNotOwned: WCT_OBJECT_STATUS = 7i32; +pub const WctStatusOwned: WCT_OBJECT_STATUS = 6i32; +pub const WctStatusPidOnly: WCT_OBJECT_STATUS = 4i32; +pub const WctStatusPidOnlyRpcss: WCT_OBJECT_STATUS = 5i32; +pub const WctStatusRunning: WCT_OBJECT_STATUS = 2i32; +pub const WctStatusUnknown: WCT_OBJECT_STATUS = 9i32; +pub const WctThreadType: WCT_OBJECT_TYPE = 8i32; +pub const WctThreadWaitType: WCT_OBJECT_TYPE = 6i32; +pub const WctUnknownType: WCT_OBJECT_TYPE = 10i32; +pub const WheaErrSrcStateRemovePending: WHEA_ERROR_SOURCE_STATE = 4i32; +pub const WheaErrSrcStateRemoved: WHEA_ERROR_SOURCE_STATE = 3i32; +pub const WheaErrSrcStateStarted: WHEA_ERROR_SOURCE_STATE = 2i32; +pub const WheaErrSrcStateStopped: WHEA_ERROR_SOURCE_STATE = 1i32; +pub const WheaErrSrcTypeBMC: WHEA_ERROR_SOURCE_TYPE = 14i32; +pub const WheaErrSrcTypeBOOT: WHEA_ERROR_SOURCE_TYPE = 7i32; +pub const WheaErrSrcTypeCMC: WHEA_ERROR_SOURCE_TYPE = 1i32; +pub const WheaErrSrcTypeCPE: WHEA_ERROR_SOURCE_TYPE = 2i32; +pub const WheaErrSrcTypeDeviceDriver: WHEA_ERROR_SOURCE_TYPE = 16i32; +pub const WheaErrSrcTypeGeneric: WHEA_ERROR_SOURCE_TYPE = 5i32; +pub const WheaErrSrcTypeGenericV2: WHEA_ERROR_SOURCE_TYPE = 12i32; +pub const WheaErrSrcTypeINIT: WHEA_ERROR_SOURCE_TYPE = 6i32; +pub const WheaErrSrcTypeIPFCMC: WHEA_ERROR_SOURCE_TYPE = 10i32; +pub const WheaErrSrcTypeIPFCPE: WHEA_ERROR_SOURCE_TYPE = 11i32; +pub const WheaErrSrcTypeIPFMCA: WHEA_ERROR_SOURCE_TYPE = 9i32; +pub const WheaErrSrcTypeMCE: WHEA_ERROR_SOURCE_TYPE = 0i32; +pub const WheaErrSrcTypeMax: WHEA_ERROR_SOURCE_TYPE = 19i32; +pub const WheaErrSrcTypeNMI: WHEA_ERROR_SOURCE_TYPE = 3i32; +pub const WheaErrSrcTypePCIe: WHEA_ERROR_SOURCE_TYPE = 4i32; +pub const WheaErrSrcTypePMEM: WHEA_ERROR_SOURCE_TYPE = 15i32; +pub const WheaErrSrcTypeSCIGeneric: WHEA_ERROR_SOURCE_TYPE = 8i32; +pub const WheaErrSrcTypeSCIGenericV2: WHEA_ERROR_SOURCE_TYPE = 13i32; +pub const WheaErrSrcTypeSea: WHEA_ERROR_SOURCE_TYPE = 17i32; +pub const WheaErrSrcTypeSei: WHEA_ERROR_SOURCE_TYPE = 18i32; +pub const WriteKernelMinidumpCallback: MINIDUMP_CALLBACK_TYPE = 7i32; +pub const XBOX_360_SYSTEM_CRASH: BUGCHECK_ERROR = 864u32; +pub const XBOX_360_SYSTEM_CRASH_RESERVED: BUGCHECK_ERROR = 1056u32; +pub const XBOX_CORRUPTED_IMAGE: BUGCHECK_ERROR = 855u32; +pub const XBOX_CORRUPTED_IMAGE_BASE: BUGCHECK_ERROR = 857u32; +pub const XBOX_INVERTED_FUNCTION_TABLE_OVERFLOW: BUGCHECK_ERROR = 856u32; +pub const XBOX_MANUALLY_INITIATED_CRASH: BUGCHECK_ERROR = 196614u32; +pub const XBOX_SECURITY_FAILUE: BUGCHECK_ERROR = 1057u32; +pub const XBOX_SHUTDOWN_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = 859u32; +pub const XBOX_VMCTRL_CS_TIMEOUT: BUGCHECK_ERROR = 854u32; +pub const XBOX_XDS_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = 858u32; +pub const XNS_INTERNAL_ERROR: BUGCHECK_ERROR = 87u32; +pub const ceStreamBucketParameters: MINIDUMP_STREAM_TYPE = 32778i32; +pub const ceStreamDiagnosisList: MINIDUMP_STREAM_TYPE = 32780i32; +pub const ceStreamException: MINIDUMP_STREAM_TYPE = 32770i32; +pub const ceStreamMemoryPhysicalList: MINIDUMP_STREAM_TYPE = 32777i32; +pub const ceStreamMemoryVirtualList: MINIDUMP_STREAM_TYPE = 32776i32; +pub const ceStreamModuleList: MINIDUMP_STREAM_TYPE = 32771i32; +pub const ceStreamNull: MINIDUMP_STREAM_TYPE = 32768i32; +pub const ceStreamProcessList: MINIDUMP_STREAM_TYPE = 32772i32; +pub const ceStreamProcessModuleMap: MINIDUMP_STREAM_TYPE = 32779i32; +pub const ceStreamSystemInfo: MINIDUMP_STREAM_TYPE = 32769i32; +pub const ceStreamThreadCallStackList: MINIDUMP_STREAM_TYPE = 32775i32; +pub const ceStreamThreadContextList: MINIDUMP_STREAM_TYPE = 32774i32; +pub const ceStreamThreadList: MINIDUMP_STREAM_TYPE = 32773i32; +pub const hdBase: IMAGEHLP_HD_TYPE = 0i32; +pub const hdMax: IMAGEHLP_HD_TYPE = 3i32; +pub const hdSrc: IMAGEHLP_HD_TYPE = 2i32; +pub const hdSym: IMAGEHLP_HD_TYPE = 1i32; +pub const sevAttn: IMAGEHLP_CBA_EVENT_SEVERITY = 2u32; +pub const sevFatal: IMAGEHLP_CBA_EVENT_SEVERITY = 3u32; +pub const sevInfo: IMAGEHLP_CBA_EVENT_SEVERITY = 0u32; +pub const sevMax: i32 = 4i32; +pub const sevProblem: IMAGEHLP_CBA_EVENT_SEVERITY = 1u32; +pub const sfDbg: IMAGEHLP_SF_TYPE = 1i32; +pub const sfImage: IMAGEHLP_SF_TYPE = 0i32; +pub const sfMax: IMAGEHLP_SF_TYPE = 4i32; +pub const sfMpd: IMAGEHLP_SF_TYPE = 3i32; +pub const sfPdb: IMAGEHLP_SF_TYPE = 2i32; +pub type ADDRESS_MODE = i32; +pub type BUGCHECK_ERROR = u32; +pub type CONTEXT_FLAGS = u32; +pub type DBGPROP_ATTRIB_FLAGS = i32; +pub type DBGPROP_INFO = i32; +pub type DEBUG_EVENT_CODE = u32; +pub type DUMP_TYPE = i32; +pub type EX_PROP_INFO_FLAGS = i32; +pub type FACILITY_CODE = u32; +pub type FORMAT_MESSAGE_OPTIONS = u32; +pub type IMAGEHLP_CBA_EVENT_SEVERITY = u32; +pub type IMAGEHLP_EXTENDED_OPTIONS = i32; +pub type IMAGEHLP_GET_TYPE_INFO_FLAGS = u32; +pub type IMAGEHLP_HD_TYPE = i32; +pub type IMAGEHLP_SF_TYPE = i32; +pub type IMAGEHLP_STATUS_REASON = i32; +pub type IMAGEHLP_SYMBOL_TYPE_INFO = i32; +pub type IMAGE_DEBUG_TYPE = u32; +pub type IMAGE_DIRECTORY_ENTRY = u16; +pub type IMAGE_DLL_CHARACTERISTICS = u16; +pub type IMAGE_FILE_CHARACTERISTICS = u16; +pub type IMAGE_FILE_CHARACTERISTICS2 = u32; +pub type IMAGE_OPTIONAL_HEADER_MAGIC = u16; +pub type IMAGE_SECTION_CHARACTERISTICS = u32; +pub type IMAGE_SUBSYSTEM = u16; +pub type IPMI_OS_SEL_RECORD_TYPE = i32; +pub type MINIDUMP_CALLBACK_TYPE = i32; +pub type MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = i32; +pub type MINIDUMP_MISC_INFO_FLAGS = u32; +pub type MINIDUMP_SECONDARY_FLAGS = i32; +pub type MINIDUMP_STREAM_TYPE = i32; +pub type MINIDUMP_THREAD_INFO_DUMP_FLAGS = u32; +pub type MINIDUMP_TYPE = i32; +pub type MODLOAD_DATA_TYPE = u32; +pub type MODULE_WRITE_FLAGS = i32; +pub type OBJECT_ATTRIB_FLAGS = i32; +pub type OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS = u32; +pub type PROP_INFO_FLAGS = i32; +pub type RIP_INFO_TYPE = u32; +pub type RTL_VIRTUAL_UNWIND_HANDLER_TYPE = u32; +pub type SYMBOL_INFO_FLAGS = u32; +pub type SYM_FIND_ID_OPTION = u32; +pub type SYM_LOAD_FLAGS = u32; +pub type SYM_SRV_STORE_FILE_FLAGS = u32; +pub type SYM_TYPE = i32; +pub type THREAD_ERROR_MODE = u32; +pub type THREAD_WRITE_FLAGS = i32; +pub type VER_PLATFORM = u32; +pub type WAIT_CHAIN_THREAD_OPTIONS = u32; +pub type WCT_OBJECT_STATUS = i32; +pub type WCT_OBJECT_TYPE = i32; +pub type WHEA_ERROR_SOURCE_STATE = i32; +pub type WHEA_ERROR_SOURCE_TYPE = i32; +pub type WOW64_CONTEXT_FLAGS = u32; +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct ADDRESS { + pub Offset: u32, + pub Segment: u16, + pub Mode: ADDRESS_MODE, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for ADDRESS {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADDRESS64 { + pub Offset: u64, + pub Segment: u16, + pub Mode: ADDRESS_MODE, +} +impl ::core::marker::Copy for ADDRESS64 {} +impl ::core::clone::Clone for ADDRESS64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union AER_BRIDGE_DESCRIPTOR_FLAGS { + pub Anonymous: AER_BRIDGE_DESCRIPTOR_FLAGS_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for AER_BRIDGE_DESCRIPTOR_FLAGS {} +impl ::core::clone::Clone for AER_BRIDGE_DESCRIPTOR_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct AER_BRIDGE_DESCRIPTOR_FLAGS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for AER_BRIDGE_DESCRIPTOR_FLAGS_0 {} +impl ::core::clone::Clone for AER_BRIDGE_DESCRIPTOR_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union AER_ENDPOINT_DESCRIPTOR_FLAGS { + pub Anonymous: AER_ENDPOINT_DESCRIPTOR_FLAGS_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for AER_ENDPOINT_DESCRIPTOR_FLAGS {} +impl ::core::clone::Clone for AER_ENDPOINT_DESCRIPTOR_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct AER_ENDPOINT_DESCRIPTOR_FLAGS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for AER_ENDPOINT_DESCRIPTOR_FLAGS_0 {} +impl ::core::clone::Clone for AER_ENDPOINT_DESCRIPTOR_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union AER_ROOTPORT_DESCRIPTOR_FLAGS { + pub Anonymous: AER_ROOTPORT_DESCRIPTOR_FLAGS_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for AER_ROOTPORT_DESCRIPTOR_FLAGS {} +impl ::core::clone::Clone for AER_ROOTPORT_DESCRIPTOR_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct AER_ROOTPORT_DESCRIPTOR_FLAGS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for AER_ROOTPORT_DESCRIPTOR_FLAGS_0 {} +impl ::core::clone::Clone for AER_ROOTPORT_DESCRIPTOR_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct APC_CALLBACK_DATA { + pub Parameter: usize, + pub ContextRecord: *mut CONTEXT, + pub Reserved0: usize, + pub Reserved1: usize, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for APC_CALLBACK_DATA {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for APC_CALLBACK_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct API_VERSION { + pub MajorVersion: u16, + pub MinorVersion: u16, + pub Revision: u16, + pub Reserved: u16, +} +impl ::core::marker::Copy for API_VERSION {} +impl ::core::clone::Clone for API_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +pub struct ARM64_NT_CONTEXT { + pub ContextFlags: u32, + pub Cpsr: u32, + pub Anonymous: ARM64_NT_CONTEXT_0, + pub Sp: u64, + pub Pc: u64, + pub V: [ARM64_NT_NEON128; 32], + pub Fpcr: u32, + pub Fpsr: u32, + pub Bcr: [u32; 8], + pub Bvr: [u64; 8], + pub Wcr: [u32; 2], + pub Wvr: [u64; 2], +} +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +impl ::core::marker::Copy for ARM64_NT_CONTEXT {} +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +impl ::core::clone::Clone for ARM64_NT_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +pub union ARM64_NT_CONTEXT_0 { + pub Anonymous: ARM64_NT_CONTEXT_0_0, + pub X: [u64; 31], +} +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +impl ::core::marker::Copy for ARM64_NT_CONTEXT_0 {} +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +impl ::core::clone::Clone for ARM64_NT_CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +pub struct ARM64_NT_CONTEXT_0_0 { + pub X0: u64, + pub X1: u64, + pub X2: u64, + pub X3: u64, + pub X4: u64, + pub X5: u64, + pub X6: u64, + pub X7: u64, + pub X8: u64, + pub X9: u64, + pub X10: u64, + pub X11: u64, + pub X12: u64, + pub X13: u64, + pub X14: u64, + pub X15: u64, + pub X16: u64, + pub X17: u64, + pub X18: u64, + pub X19: u64, + pub X20: u64, + pub X21: u64, + pub X22: u64, + pub X23: u64, + pub X24: u64, + pub X25: u64, + pub X26: u64, + pub X27: u64, + pub X28: u64, + pub Fp: u64, + pub Lr: u64, +} +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +impl ::core::marker::Copy for ARM64_NT_CONTEXT_0_0 {} +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +impl ::core::clone::Clone for ARM64_NT_CONTEXT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union ARM64_NT_NEON128 { + pub Anonymous: ARM64_NT_NEON128_0, + pub D: [f64; 2], + pub S: [f32; 4], + pub H: [u16; 8], + pub B: [u8; 16], +} +impl ::core::marker::Copy for ARM64_NT_NEON128 {} +impl ::core::clone::Clone for ARM64_NT_NEON128 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ARM64_NT_NEON128_0 { + pub Low: u64, + pub High: i64, +} +impl ::core::marker::Copy for ARM64_NT_NEON128_0 {} +impl ::core::clone::Clone for ARM64_NT_NEON128_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "aarch64")] +#[cfg(feature = "Win32_System_Kernel")] +pub struct CONTEXT { + pub ContextFlags: CONTEXT_FLAGS, + pub Cpsr: u32, + pub Anonymous: CONTEXT_0, + pub Sp: u64, + pub Pc: u64, + pub V: [ARM64_NT_NEON128; 32], + pub Fpcr: u32, + pub Fpsr: u32, + pub Bcr: [u32; 8], + pub Bvr: [u64; 8], + pub Wcr: [u32; 2], + pub Wvr: [u64; 2], +} +#[cfg(target_arch = "aarch64")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for CONTEXT {} +#[cfg(target_arch = "aarch64")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "aarch64")] +#[cfg(feature = "Win32_System_Kernel")] +pub union CONTEXT_0 { + pub Anonymous: CONTEXT_0_0, + pub X: [u64; 31], +} +#[cfg(target_arch = "aarch64")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for CONTEXT_0 {} +#[cfg(target_arch = "aarch64")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "aarch64")] +#[cfg(feature = "Win32_System_Kernel")] +pub struct CONTEXT_0_0 { + pub X0: u64, + pub X1: u64, + pub X2: u64, + pub X3: u64, + pub X4: u64, + pub X5: u64, + pub X6: u64, + pub X7: u64, + pub X8: u64, + pub X9: u64, + pub X10: u64, + pub X11: u64, + pub X12: u64, + pub X13: u64, + pub X14: u64, + pub X15: u64, + pub X16: u64, + pub X17: u64, + pub X18: u64, + pub X19: u64, + pub X20: u64, + pub X21: u64, + pub X22: u64, + pub X23: u64, + pub X24: u64, + pub X25: u64, + pub X26: u64, + pub X27: u64, + pub X28: u64, + pub Fp: u64, + pub Lr: u64, +} +#[cfg(target_arch = "aarch64")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for CONTEXT_0_0 {} +#[cfg(target_arch = "aarch64")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for CONTEXT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_System_Kernel")] +pub struct CONTEXT { + pub P1Home: u64, + pub P2Home: u64, + pub P3Home: u64, + pub P4Home: u64, + pub P5Home: u64, + pub P6Home: u64, + pub ContextFlags: CONTEXT_FLAGS, + pub MxCsr: u32, + pub SegCs: u16, + pub SegDs: u16, + pub SegEs: u16, + pub SegFs: u16, + pub SegGs: u16, + pub SegSs: u16, + pub EFlags: u32, + pub Dr0: u64, + pub Dr1: u64, + pub Dr2: u64, + pub Dr3: u64, + pub Dr6: u64, + pub Dr7: u64, + pub Rax: u64, + pub Rcx: u64, + pub Rdx: u64, + pub Rbx: u64, + pub Rsp: u64, + pub Rbp: u64, + pub Rsi: u64, + pub Rdi: u64, + pub R8: u64, + pub R9: u64, + pub R10: u64, + pub R11: u64, + pub R12: u64, + pub R13: u64, + pub R14: u64, + pub R15: u64, + pub Rip: u64, + pub Anonymous: CONTEXT_0, + pub VectorRegister: [M128A; 26], + pub VectorControl: u64, + pub DebugControl: u64, + pub LastBranchToRip: u64, + pub LastBranchFromRip: u64, + pub LastExceptionToRip: u64, + pub LastExceptionFromRip: u64, +} +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for CONTEXT {} +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_System_Kernel")] +pub union CONTEXT_0 { + pub FltSave: XSAVE_FORMAT, + pub Anonymous: CONTEXT_0_0, +} +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for CONTEXT_0 {} +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_System_Kernel")] +pub struct CONTEXT_0_0 { + pub Header: [M128A; 2], + pub Legacy: [M128A; 8], + pub Xmm0: M128A, + pub Xmm1: M128A, + pub Xmm2: M128A, + pub Xmm3: M128A, + pub Xmm4: M128A, + pub Xmm5: M128A, + pub Xmm6: M128A, + pub Xmm7: M128A, + pub Xmm8: M128A, + pub Xmm9: M128A, + pub Xmm10: M128A, + pub Xmm11: M128A, + pub Xmm12: M128A, + pub Xmm13: M128A, + pub Xmm14: M128A, + pub Xmm15: M128A, +} +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for CONTEXT_0_0 {} +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for CONTEXT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Kernel")] +pub struct CONTEXT { + pub ContextFlags: CONTEXT_FLAGS, + pub Dr0: u32, + pub Dr1: u32, + pub Dr2: u32, + pub Dr3: u32, + pub Dr6: u32, + pub Dr7: u32, + pub FloatSave: super::super::Kernel::FLOATING_SAVE_AREA, + pub SegGs: u32, + pub SegFs: u32, + pub SegEs: u32, + pub SegDs: u32, + pub Edi: u32, + pub Esi: u32, + pub Ebx: u32, + pub Edx: u32, + pub Ecx: u32, + pub Eax: u32, + pub Ebp: u32, + pub Eip: u32, + pub SegCs: u32, + pub EFlags: u32, + pub Esp: u32, + pub SegSs: u32, + pub ExtendedRegisters: [u8; 512], +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for CONTEXT {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CPU_INFORMATION { + pub X86CpuInfo: CPU_INFORMATION_1, + pub OtherCpuInfo: CPU_INFORMATION_0, +} +impl ::core::marker::Copy for CPU_INFORMATION {} +impl ::core::clone::Clone for CPU_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct CPU_INFORMATION_0 { + pub ProcessorFeatures: [u64; 2], +} +impl ::core::marker::Copy for CPU_INFORMATION_0 {} +impl ::core::clone::Clone for CPU_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CPU_INFORMATION_1 { + pub VendorId: [u32; 3], + pub VersionInformation: u32, + pub FeatureInformation: u32, + pub AMDExtendedCpuFeatures: u32, +} +impl ::core::marker::Copy for CPU_INFORMATION_1 {} +impl ::core::clone::Clone for CPU_INFORMATION_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +pub struct CREATE_PROCESS_DEBUG_INFO { + pub hFile: super::super::super::Foundation::HANDLE, + pub hProcess: super::super::super::Foundation::HANDLE, + pub hThread: super::super::super::Foundation::HANDLE, + pub lpBaseOfImage: *mut ::core::ffi::c_void, + pub dwDebugInfoFileOffset: u32, + pub nDebugInfoSize: u32, + pub lpThreadLocalBase: *mut ::core::ffi::c_void, + pub lpStartAddress: super::super::Threading::LPTHREAD_START_ROUTINE, + pub lpImageName: *mut ::core::ffi::c_void, + pub fUnicode: u16, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +impl ::core::marker::Copy for CREATE_PROCESS_DEBUG_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +impl ::core::clone::Clone for CREATE_PROCESS_DEBUG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +pub struct CREATE_THREAD_DEBUG_INFO { + pub hThread: super::super::super::Foundation::HANDLE, + pub lpThreadLocalBase: *mut ::core::ffi::c_void, + pub lpStartAddress: super::super::Threading::LPTHREAD_START_ROUTINE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +impl ::core::marker::Copy for CREATE_THREAD_DEBUG_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +impl ::core::clone::Clone for CREATE_THREAD_DEBUG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DBGHELP_DATA_REPORT_STRUCT { + pub pBinPathNonExist: ::windows_sys::core::PCWSTR, + pub pSymbolPathNonExist: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for DBGHELP_DATA_REPORT_STRUCT {} +impl ::core::clone::Clone for DBGHELP_DATA_REPORT_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +pub struct DEBUG_EVENT { + pub dwDebugEventCode: DEBUG_EVENT_CODE, + pub dwProcessId: u32, + pub dwThreadId: u32, + pub u: DEBUG_EVENT_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +impl ::core::marker::Copy for DEBUG_EVENT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +impl ::core::clone::Clone for DEBUG_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +pub union DEBUG_EVENT_0 { + pub Exception: EXCEPTION_DEBUG_INFO, + pub CreateThread: CREATE_THREAD_DEBUG_INFO, + pub CreateProcessInfo: CREATE_PROCESS_DEBUG_INFO, + pub ExitThread: EXIT_THREAD_DEBUG_INFO, + pub ExitProcess: EXIT_PROCESS_DEBUG_INFO, + pub LoadDll: LOAD_DLL_DEBUG_INFO, + pub UnloadDll: UNLOAD_DLL_DEBUG_INFO, + pub DebugString: OUTPUT_DEBUG_STRING_INFO, + pub RipInfo: RIP_INFO, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +impl ::core::marker::Copy for DEBUG_EVENT_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +impl ::core::clone::Clone for DEBUG_EVENT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "aarch64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_CONTEXT { + pub ControlPc: usize, + pub ImageBase: usize, + pub FunctionEntry: *mut IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, + pub EstablisherFrame: usize, + pub TargetPc: usize, + pub ContextRecord: *mut CONTEXT, + pub LanguageHandler: super::super::Kernel::EXCEPTION_ROUTINE, + pub HandlerData: *mut ::core::ffi::c_void, + pub HistoryTable: *mut UNWIND_HISTORY_TABLE, + pub ScopeIndex: u32, + pub ControlPcIsUnwound: super::super::super::Foundation::BOOLEAN, + pub NonVolatileRegisters: *mut u8, +} +#[cfg(target_arch = "aarch64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_CONTEXT {} +#[cfg(target_arch = "aarch64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "x86_64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct DISPATCHER_CONTEXT { + pub ControlPc: u64, + pub ImageBase: u64, + pub FunctionEntry: *mut IMAGE_RUNTIME_FUNCTION_ENTRY, + pub EstablisherFrame: u64, + pub TargetIp: u64, + pub ContextRecord: *mut CONTEXT, + pub LanguageHandler: super::super::Kernel::EXCEPTION_ROUTINE, + pub HandlerData: *mut ::core::ffi::c_void, + pub HistoryTable: *mut UNWIND_HISTORY_TABLE, + pub ScopeIndex: u32, + pub Fill0: u32, +} +#[cfg(target_arch = "x86_64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for DISPATCHER_CONTEXT {} +#[cfg(target_arch = "x86_64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for DISPATCHER_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DUMP_FILE_ATTRIBUTES { + pub Anonymous: DUMP_FILE_ATTRIBUTES_0, + pub Attributes: u32, +} +impl ::core::marker::Copy for DUMP_FILE_ATTRIBUTES {} +impl ::core::clone::Clone for DUMP_FILE_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DUMP_FILE_ATTRIBUTES_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DUMP_FILE_ATTRIBUTES_0 {} +impl ::core::clone::Clone for DUMP_FILE_ATTRIBUTES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DUMP_HEADER32 { + pub Signature: u32, + pub ValidDump: u32, + pub MajorVersion: u32, + pub MinorVersion: u32, + pub DirectoryTableBase: u32, + pub PfnDataBase: u32, + pub PsLoadedModuleList: u32, + pub PsActiveProcessHead: u32, + pub MachineImageType: u32, + pub NumberProcessors: u32, + pub BugCheckCode: u32, + pub BugCheckParameter1: u32, + pub BugCheckParameter2: u32, + pub BugCheckParameter3: u32, + pub BugCheckParameter4: u32, + pub VersionUser: [u8; 32], + pub PaeEnabled: u8, + pub KdSecondaryVersion: u8, + pub Spare3: [u8; 2], + pub KdDebuggerDataBlock: u32, + pub Anonymous: DUMP_HEADER32_0, + pub ContextRecord: [u8; 1200], + pub Exception: EXCEPTION_RECORD32, + pub Comment: [u8; 128], + pub Attributes: DUMP_FILE_ATTRIBUTES, + pub BootId: u32, + pub _reserved0: [u8; 1760], + pub DumpType: u32, + pub MiniDumpFields: u32, + pub SecondaryDataState: u32, + pub ProductType: u32, + pub SuiteMask: u32, + pub WriterStatus: u32, + pub RequiredDumpSpace: i64, + pub _reserved2: [u8; 16], + pub SystemUpTime: i64, + pub SystemTime: i64, + pub _reserved3: [u8; 56], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DUMP_HEADER32 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DUMP_HEADER32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DUMP_HEADER32_0 { + pub PhysicalMemoryBlock: PHYSICAL_MEMORY_DESCRIPTOR32, + pub PhysicalMemoryBlockBuffer: [u8; 700], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DUMP_HEADER32_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DUMP_HEADER32_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DUMP_HEADER64 { + pub Signature: u32, + pub ValidDump: u32, + pub MajorVersion: u32, + pub MinorVersion: u32, + pub DirectoryTableBase: u64, + pub PfnDataBase: u64, + pub PsLoadedModuleList: u64, + pub PsActiveProcessHead: u64, + pub MachineImageType: u32, + pub NumberProcessors: u32, + pub BugCheckCode: u32, + pub BugCheckParameter1: u64, + pub BugCheckParameter2: u64, + pub BugCheckParameter3: u64, + pub BugCheckParameter4: u64, + pub VersionUser: [u8; 32], + pub KdDebuggerDataBlock: u64, + pub Anonymous: DUMP_HEADER64_0, + pub ContextRecord: [u8; 3000], + pub Exception: EXCEPTION_RECORD64, + pub DumpType: u32, + pub RequiredDumpSpace: i64, + pub SystemTime: i64, + pub Comment: [u8; 128], + pub SystemUpTime: i64, + pub MiniDumpFields: u32, + pub SecondaryDataState: u32, + pub ProductType: u32, + pub SuiteMask: u32, + pub WriterStatus: u32, + pub Unused1: u8, + pub KdSecondaryVersion: u8, + pub Unused: [u8; 2], + pub Attributes: DUMP_FILE_ATTRIBUTES, + pub BootId: u32, + pub _reserved0: [u8; 4008], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DUMP_HEADER64 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DUMP_HEADER64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DUMP_HEADER64_0 { + pub PhysicalMemoryBlock: PHYSICAL_MEMORY_DESCRIPTOR64, + pub PhysicalMemoryBlockBuffer: [u8; 700], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DUMP_HEADER64_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DUMP_HEADER64_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DebugPropertyInfo { + pub m_dwValidFields: u32, + pub m_bstrName: ::windows_sys::core::BSTR, + pub m_bstrType: ::windows_sys::core::BSTR, + pub m_bstrValue: ::windows_sys::core::BSTR, + pub m_bstrFullName: ::windows_sys::core::BSTR, + pub m_dwAttrib: u32, + pub m_pDebugProp: IDebugProperty, +} +impl ::core::marker::Copy for DebugPropertyInfo {} +impl ::core::clone::Clone for DebugPropertyInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EXCEPTION_DEBUG_INFO { + pub ExceptionRecord: EXCEPTION_RECORD, + pub dwFirstChance: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EXCEPTION_DEBUG_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EXCEPTION_DEBUG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct EXCEPTION_POINTERS { + pub ExceptionRecord: *mut EXCEPTION_RECORD, + pub ContextRecord: *mut CONTEXT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for EXCEPTION_POINTERS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for EXCEPTION_POINTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EXCEPTION_RECORD { + pub ExceptionCode: super::super::super::Foundation::NTSTATUS, + pub ExceptionFlags: u32, + pub ExceptionRecord: *mut EXCEPTION_RECORD, + pub ExceptionAddress: *mut ::core::ffi::c_void, + pub NumberParameters: u32, + pub ExceptionInformation: [usize; 15], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EXCEPTION_RECORD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EXCEPTION_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EXCEPTION_RECORD32 { + pub ExceptionCode: super::super::super::Foundation::NTSTATUS, + pub ExceptionFlags: u32, + pub ExceptionRecord: u32, + pub ExceptionAddress: u32, + pub NumberParameters: u32, + pub ExceptionInformation: [u32; 15], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EXCEPTION_RECORD32 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EXCEPTION_RECORD32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EXCEPTION_RECORD64 { + pub ExceptionCode: super::super::super::Foundation::NTSTATUS, + pub ExceptionFlags: u32, + pub ExceptionRecord: u64, + pub ExceptionAddress: u64, + pub NumberParameters: u32, + pub __unusedAlignment: u32, + pub ExceptionInformation: [u64; 15], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EXCEPTION_RECORD64 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EXCEPTION_RECORD64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXIT_PROCESS_DEBUG_INFO { + pub dwExitCode: u32, +} +impl ::core::marker::Copy for EXIT_PROCESS_DEBUG_INFO {} +impl ::core::clone::Clone for EXIT_PROCESS_DEBUG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXIT_THREAD_DEBUG_INFO { + pub dwExitCode: u32, +} +impl ::core::marker::Copy for EXIT_THREAD_DEBUG_INFO {} +impl ::core::clone::Clone for EXIT_THREAD_DEBUG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct ExtendedDebugPropertyInfo { + pub dwValidFields: u32, + pub pszName: ::windows_sys::core::PWSTR, + pub pszType: ::windows_sys::core::PWSTR, + pub pszValue: ::windows_sys::core::PWSTR, + pub pszFullName: ::windows_sys::core::PWSTR, + pub dwAttrib: u32, + pub pDebugProp: IDebugProperty, + pub nDISPID: u32, + pub nType: u32, + pub varValue: super::super::Variant::VARIANT, + pub plbValue: super::super::Com::StructuredStorage::ILockBytes, + pub pDebugExtProp: IDebugExtendedProperty, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for ExtendedDebugPropertyInfo {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for ExtendedDebugPropertyInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FPO_DATA { + pub ulOffStart: u32, + pub cbProcSize: u32, + pub cdwLocals: u32, + pub cdwParams: u16, + pub _bitfield: u16, +} +impl ::core::marker::Copy for FPO_DATA {} +impl ::core::clone::Clone for FPO_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGEHLP_CBA_EVENT { + pub severity: IMAGEHLP_CBA_EVENT_SEVERITY, + pub code: u32, + pub desc: ::windows_sys::core::PSTR, + pub object: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for IMAGEHLP_CBA_EVENT {} +impl ::core::clone::Clone for IMAGEHLP_CBA_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGEHLP_CBA_EVENTW { + pub severity: IMAGEHLP_CBA_EVENT_SEVERITY, + pub code: u32, + pub desc: ::windows_sys::core::PCWSTR, + pub object: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for IMAGEHLP_CBA_EVENTW {} +impl ::core::clone::Clone for IMAGEHLP_CBA_EVENTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGEHLP_CBA_READ_MEMORY { + pub addr: u64, + pub buf: *mut ::core::ffi::c_void, + pub bytes: u32, + pub bytesread: *mut u32, +} +impl ::core::marker::Copy for IMAGEHLP_CBA_READ_MEMORY {} +impl ::core::clone::Clone for IMAGEHLP_CBA_READ_MEMORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct IMAGEHLP_DEFERRED_SYMBOL_LOAD { + pub SizeOfStruct: u32, + pub BaseOfImage: u32, + pub CheckSum: u32, + pub TimeDateStamp: u32, + pub FileName: [u8; 260], + pub Reparse: super::super::super::Foundation::BOOLEAN, + pub hFile: super::super::super::Foundation::HANDLE, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMAGEHLP_DEFERRED_SYMBOL_LOAD {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMAGEHLP_DEFERRED_SYMBOL_LOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMAGEHLP_DEFERRED_SYMBOL_LOAD64 { + pub SizeOfStruct: u32, + pub BaseOfImage: u64, + pub CheckSum: u32, + pub TimeDateStamp: u32, + pub FileName: [u8; 260], + pub Reparse: super::super::super::Foundation::BOOLEAN, + pub hFile: super::super::super::Foundation::HANDLE, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMAGEHLP_DEFERRED_SYMBOL_LOAD64 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMAGEHLP_DEFERRED_SYMBOL_LOAD64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMAGEHLP_DEFERRED_SYMBOL_LOADW64 { + pub SizeOfStruct: u32, + pub BaseOfImage: u64, + pub CheckSum: u32, + pub TimeDateStamp: u32, + pub FileName: [u16; 261], + pub Reparse: super::super::super::Foundation::BOOLEAN, + pub hFile: super::super::super::Foundation::HANDLE, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMAGEHLP_DEFERRED_SYMBOL_LOADW64 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMAGEHLP_DEFERRED_SYMBOL_LOADW64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct IMAGEHLP_DUPLICATE_SYMBOL { + pub SizeOfStruct: u32, + pub NumberOfDups: u32, + pub Symbol: *mut IMAGEHLP_SYMBOL, + pub SelectedSymbol: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for IMAGEHLP_DUPLICATE_SYMBOL {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for IMAGEHLP_DUPLICATE_SYMBOL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGEHLP_DUPLICATE_SYMBOL64 { + pub SizeOfStruct: u32, + pub NumberOfDups: u32, + pub Symbol: *mut IMAGEHLP_SYMBOL64, + pub SelectedSymbol: u32, +} +impl ::core::marker::Copy for IMAGEHLP_DUPLICATE_SYMBOL64 {} +impl ::core::clone::Clone for IMAGEHLP_DUPLICATE_SYMBOL64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGEHLP_GET_TYPE_INFO_PARAMS { + pub SizeOfStruct: u32, + pub Flags: IMAGEHLP_GET_TYPE_INFO_FLAGS, + pub NumIds: u32, + pub TypeIds: *mut u32, + pub TagFilter: u64, + pub NumReqs: u32, + pub ReqKinds: *mut IMAGEHLP_SYMBOL_TYPE_INFO, + pub ReqOffsets: *mut usize, + pub ReqSizes: *mut u32, + pub ReqStride: usize, + pub BufferSize: usize, + pub Buffer: *mut ::core::ffi::c_void, + pub EntriesMatched: u32, + pub EntriesFilled: u32, + pub TagsFound: u64, + pub AllReqsValid: u64, + pub NumReqsValid: u32, + pub ReqsValid: *mut u64, +} +impl ::core::marker::Copy for IMAGEHLP_GET_TYPE_INFO_PARAMS {} +impl ::core::clone::Clone for IMAGEHLP_GET_TYPE_INFO_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGEHLP_JIT_SYMBOLMAP { + pub SizeOfStruct: u32, + pub Address: u64, + pub BaseOfImage: u64, +} +impl ::core::marker::Copy for IMAGEHLP_JIT_SYMBOLMAP {} +impl ::core::clone::Clone for IMAGEHLP_JIT_SYMBOLMAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct IMAGEHLP_LINE { + pub SizeOfStruct: u32, + pub Key: *mut ::core::ffi::c_void, + pub LineNumber: u32, + pub FileName: ::windows_sys::core::PSTR, + pub Address: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for IMAGEHLP_LINE {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for IMAGEHLP_LINE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGEHLP_LINE64 { + pub SizeOfStruct: u32, + pub Key: *mut ::core::ffi::c_void, + pub LineNumber: u32, + pub FileName: ::windows_sys::core::PSTR, + pub Address: u64, +} +impl ::core::marker::Copy for IMAGEHLP_LINE64 {} +impl ::core::clone::Clone for IMAGEHLP_LINE64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct IMAGEHLP_LINEW { + pub SizeOfStruct: u32, + pub Key: *mut ::core::ffi::c_void, + pub LineNumber: u32, + pub FileName: ::windows_sys::core::PSTR, + pub Address: u64, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for IMAGEHLP_LINEW {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for IMAGEHLP_LINEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGEHLP_LINEW64 { + pub SizeOfStruct: u32, + pub Key: *mut ::core::ffi::c_void, + pub LineNumber: u32, + pub FileName: ::windows_sys::core::PWSTR, + pub Address: u64, +} +impl ::core::marker::Copy for IMAGEHLP_LINEW64 {} +impl ::core::clone::Clone for IMAGEHLP_LINEW64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct IMAGEHLP_MODULE { + pub SizeOfStruct: u32, + pub BaseOfImage: u32, + pub ImageSize: u32, + pub TimeDateStamp: u32, + pub CheckSum: u32, + pub NumSyms: u32, + pub SymType: SYM_TYPE, + pub ModuleName: [u8; 32], + pub ImageName: [u8; 256], + pub LoadedImageName: [u8; 256], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for IMAGEHLP_MODULE {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for IMAGEHLP_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMAGEHLP_MODULE64 { + pub SizeOfStruct: u32, + pub BaseOfImage: u64, + pub ImageSize: u32, + pub TimeDateStamp: u32, + pub CheckSum: u32, + pub NumSyms: u32, + pub SymType: SYM_TYPE, + pub ModuleName: [u8; 32], + pub ImageName: [u8; 256], + pub LoadedImageName: [u8; 256], + pub LoadedPdbName: [u8; 256], + pub CVSig: u32, + pub CVData: [u8; 780], + pub PdbSig: u32, + pub PdbSig70: ::windows_sys::core::GUID, + pub PdbAge: u32, + pub PdbUnmatched: super::super::super::Foundation::BOOL, + pub DbgUnmatched: super::super::super::Foundation::BOOL, + pub LineNumbers: super::super::super::Foundation::BOOL, + pub GlobalSymbols: super::super::super::Foundation::BOOL, + pub TypeInfo: super::super::super::Foundation::BOOL, + pub SourceIndexed: super::super::super::Foundation::BOOL, + pub Publics: super::super::super::Foundation::BOOL, + pub MachineType: u32, + pub Reserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMAGEHLP_MODULE64 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMAGEHLP_MODULE64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMAGEHLP_MODULE64_EX { + pub Module: IMAGEHLP_MODULE64, + pub RegionFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMAGEHLP_MODULE64_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMAGEHLP_MODULE64_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct IMAGEHLP_MODULEW { + pub SizeOfStruct: u32, + pub BaseOfImage: u32, + pub ImageSize: u32, + pub TimeDateStamp: u32, + pub CheckSum: u32, + pub NumSyms: u32, + pub SymType: SYM_TYPE, + pub ModuleName: [u16; 32], + pub ImageName: [u16; 256], + pub LoadedImageName: [u16; 256], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for IMAGEHLP_MODULEW {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for IMAGEHLP_MODULEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMAGEHLP_MODULEW64 { + pub SizeOfStruct: u32, + pub BaseOfImage: u64, + pub ImageSize: u32, + pub TimeDateStamp: u32, + pub CheckSum: u32, + pub NumSyms: u32, + pub SymType: SYM_TYPE, + pub ModuleName: [u16; 32], + pub ImageName: [u16; 256], + pub LoadedImageName: [u16; 256], + pub LoadedPdbName: [u16; 256], + pub CVSig: u32, + pub CVData: [u16; 780], + pub PdbSig: u32, + pub PdbSig70: ::windows_sys::core::GUID, + pub PdbAge: u32, + pub PdbUnmatched: super::super::super::Foundation::BOOL, + pub DbgUnmatched: super::super::super::Foundation::BOOL, + pub LineNumbers: super::super::super::Foundation::BOOL, + pub GlobalSymbols: super::super::super::Foundation::BOOL, + pub TypeInfo: super::super::super::Foundation::BOOL, + pub SourceIndexed: super::super::super::Foundation::BOOL, + pub Publics: super::super::super::Foundation::BOOL, + pub MachineType: u32, + pub Reserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMAGEHLP_MODULEW64 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMAGEHLP_MODULEW64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMAGEHLP_MODULEW64_EX { + pub Module: IMAGEHLP_MODULEW64, + pub RegionFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMAGEHLP_MODULEW64_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMAGEHLP_MODULEW64_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMAGEHLP_STACK_FRAME { + pub InstructionOffset: u64, + pub ReturnOffset: u64, + pub FrameOffset: u64, + pub StackOffset: u64, + pub BackingStoreOffset: u64, + pub FuncTableEntry: u64, + pub Params: [u64; 4], + pub Reserved: [u64; 5], + pub Virtual: super::super::super::Foundation::BOOL, + pub Reserved2: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMAGEHLP_STACK_FRAME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMAGEHLP_STACK_FRAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct IMAGEHLP_SYMBOL { + pub SizeOfStruct: u32, + pub Address: u32, + pub Size: u32, + pub Flags: u32, + pub MaxNameLength: u32, + pub Name: [u8; 1], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for IMAGEHLP_SYMBOL {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for IMAGEHLP_SYMBOL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGEHLP_SYMBOL64 { + pub SizeOfStruct: u32, + pub Address: u64, + pub Size: u32, + pub Flags: u32, + pub MaxNameLength: u32, + pub Name: [u8; 1], +} +impl ::core::marker::Copy for IMAGEHLP_SYMBOL64 {} +impl ::core::clone::Clone for IMAGEHLP_SYMBOL64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGEHLP_SYMBOL64_PACKAGE { + pub sym: IMAGEHLP_SYMBOL64, + pub name: [u8; 2001], +} +impl ::core::marker::Copy for IMAGEHLP_SYMBOL64_PACKAGE {} +impl ::core::clone::Clone for IMAGEHLP_SYMBOL64_PACKAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct IMAGEHLP_SYMBOLW { + pub SizeOfStruct: u32, + pub Address: u32, + pub Size: u32, + pub Flags: u32, + pub MaxNameLength: u32, + pub Name: [u16; 1], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for IMAGEHLP_SYMBOLW {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for IMAGEHLP_SYMBOLW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGEHLP_SYMBOLW64 { + pub SizeOfStruct: u32, + pub Address: u64, + pub Size: u32, + pub Flags: u32, + pub MaxNameLength: u32, + pub Name: [u16; 1], +} +impl ::core::marker::Copy for IMAGEHLP_SYMBOLW64 {} +impl ::core::clone::Clone for IMAGEHLP_SYMBOLW64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGEHLP_SYMBOLW64_PACKAGE { + pub sym: IMAGEHLP_SYMBOLW64, + pub name: [u16; 2001], +} +impl ::core::marker::Copy for IMAGEHLP_SYMBOLW64_PACKAGE {} +impl ::core::clone::Clone for IMAGEHLP_SYMBOLW64_PACKAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct IMAGEHLP_SYMBOLW_PACKAGE { + pub sym: IMAGEHLP_SYMBOLW, + pub name: [u16; 2001], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for IMAGEHLP_SYMBOLW_PACKAGE {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for IMAGEHLP_SYMBOLW_PACKAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct IMAGEHLP_SYMBOL_PACKAGE { + pub sym: IMAGEHLP_SYMBOL, + pub name: [u8; 2001], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for IMAGEHLP_SYMBOL_PACKAGE {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for IMAGEHLP_SYMBOL_PACKAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGEHLP_SYMBOL_SRC { + pub sizeofstruct: u32, + pub r#type: u32, + pub file: [u8; 260], +} +impl ::core::marker::Copy for IMAGEHLP_SYMBOL_SRC {} +impl ::core::clone::Clone for IMAGEHLP_SYMBOL_SRC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY { + pub BeginAddress: u32, + pub Anonymous: IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0, +} +impl ::core::marker::Copy for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {} +impl ::core::clone::Clone for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0 { + pub UnwindData: u32, + pub Anonymous: IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0, +} +impl ::core::marker::Copy for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0 {} +impl ::core::clone::Clone for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0 {} +impl ::core::clone::Clone for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_COFF_SYMBOLS_HEADER { + pub NumberOfSymbols: u32, + pub LvaToFirstSymbol: u32, + pub NumberOfLinenumbers: u32, + pub LvaToFirstLinenumber: u32, + pub RvaToFirstByteOfCode: u32, + pub RvaToLastByteOfCode: u32, + pub RvaToFirstByteOfData: u32, + pub RvaToLastByteOfData: u32, +} +impl ::core::marker::Copy for IMAGE_COFF_SYMBOLS_HEADER {} +impl ::core::clone::Clone for IMAGE_COFF_SYMBOLS_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_COR20_HEADER { + pub cb: u32, + pub MajorRuntimeVersion: u16, + pub MinorRuntimeVersion: u16, + pub MetaData: IMAGE_DATA_DIRECTORY, + pub Flags: u32, + pub Anonymous: IMAGE_COR20_HEADER_0, + pub Resources: IMAGE_DATA_DIRECTORY, + pub StrongNameSignature: IMAGE_DATA_DIRECTORY, + pub CodeManagerTable: IMAGE_DATA_DIRECTORY, + pub VTableFixups: IMAGE_DATA_DIRECTORY, + pub ExportAddressTableJumps: IMAGE_DATA_DIRECTORY, + pub ManagedNativeHeader: IMAGE_DATA_DIRECTORY, +} +impl ::core::marker::Copy for IMAGE_COR20_HEADER {} +impl ::core::clone::Clone for IMAGE_COR20_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_COR20_HEADER_0 { + pub EntryPointToken: u32, + pub EntryPointRVA: u32, +} +impl ::core::marker::Copy for IMAGE_COR20_HEADER_0 {} +impl ::core::clone::Clone for IMAGE_COR20_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_DATA_DIRECTORY { + pub VirtualAddress: u32, + pub Size: u32, +} +impl ::core::marker::Copy for IMAGE_DATA_DIRECTORY {} +impl ::core::clone::Clone for IMAGE_DATA_DIRECTORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_DEBUG_DIRECTORY { + pub Characteristics: u32, + pub TimeDateStamp: u32, + pub MajorVersion: u16, + pub MinorVersion: u16, + pub Type: IMAGE_DEBUG_TYPE, + pub SizeOfData: u32, + pub AddressOfRawData: u32, + pub PointerToRawData: u32, +} +impl ::core::marker::Copy for IMAGE_DEBUG_DIRECTORY {} +impl ::core::clone::Clone for IMAGE_DEBUG_DIRECTORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct IMAGE_DEBUG_INFORMATION { + pub List: super::super::Kernel::LIST_ENTRY, + pub ReservedSize: u32, + pub ReservedMappedBase: *mut ::core::ffi::c_void, + pub ReservedMachine: u16, + pub ReservedCharacteristics: u16, + pub ReservedCheckSum: u32, + pub ImageBase: u32, + pub SizeOfImage: u32, + pub ReservedNumberOfSections: u32, + pub ReservedSections: *mut IMAGE_SECTION_HEADER, + pub ReservedExportedNamesSize: u32, + pub ReservedExportedNames: ::windows_sys::core::PSTR, + pub ReservedNumberOfFunctionTableEntries: u32, + pub ReservedFunctionTableEntries: *mut IMAGE_FUNCTION_ENTRY, + pub ReservedLowestFunctionStartingAddress: u32, + pub ReservedHighestFunctionEndingAddress: u32, + pub ReservedNumberOfFpoTableEntries: u32, + pub ReservedFpoTableEntries: *mut FPO_DATA, + pub SizeOfCoffSymbols: u32, + pub CoffSymbols: *mut IMAGE_COFF_SYMBOLS_HEADER, + pub ReservedSizeOfCodeViewSymbols: u32, + pub ReservedCodeViewSymbols: *mut ::core::ffi::c_void, + pub ImageFilePath: ::windows_sys::core::PSTR, + pub ImageFileName: ::windows_sys::core::PSTR, + pub ReservedDebugFilePath: ::windows_sys::core::PSTR, + pub ReservedTimeDateStamp: u32, + pub ReservedRomImage: super::super::super::Foundation::BOOL, + pub ReservedDebugDirectory: *mut IMAGE_DEBUG_DIRECTORY, + pub ReservedNumberOfDebugDirectories: u32, + pub ReservedOriginalFunctionTableBaseAddress: u32, + pub Reserved: [u32; 2], +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for IMAGE_DEBUG_INFORMATION {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for IMAGE_DEBUG_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_SystemInformation\"`"] +#[cfg(feature = "Win32_System_SystemInformation")] +pub struct IMAGE_FILE_HEADER { + pub Machine: super::super::SystemInformation::IMAGE_FILE_MACHINE, + pub NumberOfSections: u16, + pub TimeDateStamp: u32, + pub PointerToSymbolTable: u32, + pub NumberOfSymbols: u32, + pub SizeOfOptionalHeader: u16, + pub Characteristics: IMAGE_FILE_CHARACTERISTICS, +} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::marker::Copy for IMAGE_FILE_HEADER {} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::clone::Clone for IMAGE_FILE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_FUNCTION_ENTRY { + pub StartingAddress: u32, + pub EndingAddress: u32, + pub EndOfPrologue: u32, +} +impl ::core::marker::Copy for IMAGE_FUNCTION_ENTRY {} +impl ::core::clone::Clone for IMAGE_FUNCTION_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct IMAGE_FUNCTION_ENTRY64 { + pub StartingAddress: u64, + pub EndingAddress: u64, + pub Anonymous: IMAGE_FUNCTION_ENTRY64_0, +} +impl ::core::marker::Copy for IMAGE_FUNCTION_ENTRY64 {} +impl ::core::clone::Clone for IMAGE_FUNCTION_ENTRY64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub union IMAGE_FUNCTION_ENTRY64_0 { + pub EndOfPrologue: u64, + pub UnwindInfoAddress: u64, +} +impl ::core::marker::Copy for IMAGE_FUNCTION_ENTRY64_0 {} +impl ::core::clone::Clone for IMAGE_FUNCTION_ENTRY64_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_LOAD_CONFIG_CODE_INTEGRITY { + pub Flags: u16, + pub Catalog: u16, + pub CatalogOffset: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for IMAGE_LOAD_CONFIG_CODE_INTEGRITY {} +impl ::core::clone::Clone for IMAGE_LOAD_CONFIG_CODE_INTEGRITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_LOAD_CONFIG_DIRECTORY32 { + pub Size: u32, + pub TimeDateStamp: u32, + pub MajorVersion: u16, + pub MinorVersion: u16, + pub GlobalFlagsClear: u32, + pub GlobalFlagsSet: u32, + pub CriticalSectionDefaultTimeout: u32, + pub DeCommitFreeBlockThreshold: u32, + pub DeCommitTotalFreeThreshold: u32, + pub LockPrefixTable: u32, + pub MaximumAllocationSize: u32, + pub VirtualMemoryThreshold: u32, + pub ProcessHeapFlags: u32, + pub ProcessAffinityMask: u32, + pub CSDVersion: u16, + pub DependentLoadFlags: u16, + pub EditList: u32, + pub SecurityCookie: u32, + pub SEHandlerTable: u32, + pub SEHandlerCount: u32, + pub GuardCFCheckFunctionPointer: u32, + pub GuardCFDispatchFunctionPointer: u32, + pub GuardCFFunctionTable: u32, + pub GuardCFFunctionCount: u32, + pub GuardFlags: u32, + pub CodeIntegrity: IMAGE_LOAD_CONFIG_CODE_INTEGRITY, + pub GuardAddressTakenIatEntryTable: u32, + pub GuardAddressTakenIatEntryCount: u32, + pub GuardLongJumpTargetTable: u32, + pub GuardLongJumpTargetCount: u32, + pub DynamicValueRelocTable: u32, + pub CHPEMetadataPointer: u32, + pub GuardRFFailureRoutine: u32, + pub GuardRFFailureRoutineFunctionPointer: u32, + pub DynamicValueRelocTableOffset: u32, + pub DynamicValueRelocTableSection: u16, + pub Reserved2: u16, + pub GuardRFVerifyStackPointerFunctionPointer: u32, + pub HotPatchTableOffset: u32, + pub Reserved3: u32, + pub EnclaveConfigurationPointer: u32, + pub VolatileMetadataPointer: u32, + pub GuardEHContinuationTable: u32, + pub GuardEHContinuationCount: u32, + pub GuardXFGCheckFunctionPointer: u32, + pub GuardXFGDispatchFunctionPointer: u32, + pub GuardXFGTableDispatchFunctionPointer: u32, + pub CastGuardOsDeterminedFailureMode: u32, + pub GuardMemcpyFunctionPointer: u32, +} +impl ::core::marker::Copy for IMAGE_LOAD_CONFIG_DIRECTORY32 {} +impl ::core::clone::Clone for IMAGE_LOAD_CONFIG_DIRECTORY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct IMAGE_LOAD_CONFIG_DIRECTORY64 { + pub Size: u32, + pub TimeDateStamp: u32, + pub MajorVersion: u16, + pub MinorVersion: u16, + pub GlobalFlagsClear: u32, + pub GlobalFlagsSet: u32, + pub CriticalSectionDefaultTimeout: u32, + pub DeCommitFreeBlockThreshold: u64, + pub DeCommitTotalFreeThreshold: u64, + pub LockPrefixTable: u64, + pub MaximumAllocationSize: u64, + pub VirtualMemoryThreshold: u64, + pub ProcessAffinityMask: u64, + pub ProcessHeapFlags: u32, + pub CSDVersion: u16, + pub DependentLoadFlags: u16, + pub EditList: u64, + pub SecurityCookie: u64, + pub SEHandlerTable: u64, + pub SEHandlerCount: u64, + pub GuardCFCheckFunctionPointer: u64, + pub GuardCFDispatchFunctionPointer: u64, + pub GuardCFFunctionTable: u64, + pub GuardCFFunctionCount: u64, + pub GuardFlags: u32, + pub CodeIntegrity: IMAGE_LOAD_CONFIG_CODE_INTEGRITY, + pub GuardAddressTakenIatEntryTable: u64, + pub GuardAddressTakenIatEntryCount: u64, + pub GuardLongJumpTargetTable: u64, + pub GuardLongJumpTargetCount: u64, + pub DynamicValueRelocTable: u64, + pub CHPEMetadataPointer: u64, + pub GuardRFFailureRoutine: u64, + pub GuardRFFailureRoutineFunctionPointer: u64, + pub DynamicValueRelocTableOffset: u32, + pub DynamicValueRelocTableSection: u16, + pub Reserved2: u16, + pub GuardRFVerifyStackPointerFunctionPointer: u64, + pub HotPatchTableOffset: u32, + pub Reserved3: u32, + pub EnclaveConfigurationPointer: u64, + pub VolatileMetadataPointer: u64, + pub GuardEHContinuationTable: u64, + pub GuardEHContinuationCount: u64, + pub GuardXFGCheckFunctionPointer: u64, + pub GuardXFGDispatchFunctionPointer: u64, + pub GuardXFGTableDispatchFunctionPointer: u64, + pub CastGuardOsDeterminedFailureMode: u64, + pub GuardMemcpyFunctionPointer: u64, +} +impl ::core::marker::Copy for IMAGE_LOAD_CONFIG_DIRECTORY64 {} +impl ::core::clone::Clone for IMAGE_LOAD_CONFIG_DIRECTORY64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_SystemInformation\"`"] +#[cfg(feature = "Win32_System_SystemInformation")] +pub struct IMAGE_NT_HEADERS32 { + pub Signature: u32, + pub FileHeader: IMAGE_FILE_HEADER, + pub OptionalHeader: IMAGE_OPTIONAL_HEADER32, +} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::marker::Copy for IMAGE_NT_HEADERS32 {} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::clone::Clone for IMAGE_NT_HEADERS32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_SystemInformation\"`"] +#[cfg(feature = "Win32_System_SystemInformation")] +pub struct IMAGE_NT_HEADERS64 { + pub Signature: u32, + pub FileHeader: IMAGE_FILE_HEADER, + pub OptionalHeader: IMAGE_OPTIONAL_HEADER64, +} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::marker::Copy for IMAGE_NT_HEADERS64 {} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::clone::Clone for IMAGE_NT_HEADERS64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_OPTIONAL_HEADER32 { + pub Magic: IMAGE_OPTIONAL_HEADER_MAGIC, + pub MajorLinkerVersion: u8, + pub MinorLinkerVersion: u8, + pub SizeOfCode: u32, + pub SizeOfInitializedData: u32, + pub SizeOfUninitializedData: u32, + pub AddressOfEntryPoint: u32, + pub BaseOfCode: u32, + pub BaseOfData: u32, + pub ImageBase: u32, + pub SectionAlignment: u32, + pub FileAlignment: u32, + pub MajorOperatingSystemVersion: u16, + pub MinorOperatingSystemVersion: u16, + pub MajorImageVersion: u16, + pub MinorImageVersion: u16, + pub MajorSubsystemVersion: u16, + pub MinorSubsystemVersion: u16, + pub Win32VersionValue: u32, + pub SizeOfImage: u32, + pub SizeOfHeaders: u32, + pub CheckSum: u32, + pub Subsystem: IMAGE_SUBSYSTEM, + pub DllCharacteristics: IMAGE_DLL_CHARACTERISTICS, + pub SizeOfStackReserve: u32, + pub SizeOfStackCommit: u32, + pub SizeOfHeapReserve: u32, + pub SizeOfHeapCommit: u32, + pub LoaderFlags: u32, + pub NumberOfRvaAndSizes: u32, + pub DataDirectory: [IMAGE_DATA_DIRECTORY; 16], +} +impl ::core::marker::Copy for IMAGE_OPTIONAL_HEADER32 {} +impl ::core::clone::Clone for IMAGE_OPTIONAL_HEADER32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct IMAGE_OPTIONAL_HEADER64 { + pub Magic: IMAGE_OPTIONAL_HEADER_MAGIC, + pub MajorLinkerVersion: u8, + pub MinorLinkerVersion: u8, + pub SizeOfCode: u32, + pub SizeOfInitializedData: u32, + pub SizeOfUninitializedData: u32, + pub AddressOfEntryPoint: u32, + pub BaseOfCode: u32, + pub ImageBase: u64, + pub SectionAlignment: u32, + pub FileAlignment: u32, + pub MajorOperatingSystemVersion: u16, + pub MinorOperatingSystemVersion: u16, + pub MajorImageVersion: u16, + pub MinorImageVersion: u16, + pub MajorSubsystemVersion: u16, + pub MinorSubsystemVersion: u16, + pub Win32VersionValue: u32, + pub SizeOfImage: u32, + pub SizeOfHeaders: u32, + pub CheckSum: u32, + pub Subsystem: IMAGE_SUBSYSTEM, + pub DllCharacteristics: IMAGE_DLL_CHARACTERISTICS, + pub SizeOfStackReserve: u64, + pub SizeOfStackCommit: u64, + pub SizeOfHeapReserve: u64, + pub SizeOfHeapCommit: u64, + pub LoaderFlags: u32, + pub NumberOfRvaAndSizes: u32, + pub DataDirectory: [IMAGE_DATA_DIRECTORY; 16], +} +impl ::core::marker::Copy for IMAGE_OPTIONAL_HEADER64 {} +impl ::core::clone::Clone for IMAGE_OPTIONAL_HEADER64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_SystemInformation\"`"] +#[cfg(feature = "Win32_System_SystemInformation")] +pub struct IMAGE_ROM_HEADERS { + pub FileHeader: IMAGE_FILE_HEADER, + pub OptionalHeader: IMAGE_ROM_OPTIONAL_HEADER, +} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::marker::Copy for IMAGE_ROM_HEADERS {} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::clone::Clone for IMAGE_ROM_HEADERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_ROM_OPTIONAL_HEADER { + pub Magic: u16, + pub MajorLinkerVersion: u8, + pub MinorLinkerVersion: u8, + pub SizeOfCode: u32, + pub SizeOfInitializedData: u32, + pub SizeOfUninitializedData: u32, + pub AddressOfEntryPoint: u32, + pub BaseOfCode: u32, + pub BaseOfData: u32, + pub BaseOfBss: u32, + pub GprMask: u32, + pub CprMask: [u32; 4], + pub GpValue: u32, +} +impl ::core::marker::Copy for IMAGE_ROM_OPTIONAL_HEADER {} +impl ::core::clone::Clone for IMAGE_ROM_OPTIONAL_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_RUNTIME_FUNCTION_ENTRY { + pub BeginAddress: u32, + pub EndAddress: u32, + pub Anonymous: IMAGE_RUNTIME_FUNCTION_ENTRY_0, +} +impl ::core::marker::Copy for IMAGE_RUNTIME_FUNCTION_ENTRY {} +impl ::core::clone::Clone for IMAGE_RUNTIME_FUNCTION_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_RUNTIME_FUNCTION_ENTRY_0 { + pub UnwindInfoAddress: u32, + pub UnwindData: u32, +} +impl ::core::marker::Copy for IMAGE_RUNTIME_FUNCTION_ENTRY_0 {} +impl ::core::clone::Clone for IMAGE_RUNTIME_FUNCTION_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_SECTION_HEADER { + pub Name: [u8; 8], + pub Misc: IMAGE_SECTION_HEADER_0, + pub VirtualAddress: u32, + pub SizeOfRawData: u32, + pub PointerToRawData: u32, + pub PointerToRelocations: u32, + pub PointerToLinenumbers: u32, + pub NumberOfRelocations: u16, + pub NumberOfLinenumbers: u16, + pub Characteristics: IMAGE_SECTION_CHARACTERISTICS, +} +impl ::core::marker::Copy for IMAGE_SECTION_HEADER {} +impl ::core::clone::Clone for IMAGE_SECTION_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_SECTION_HEADER_0 { + pub PhysicalAddress: u32, + pub VirtualSize: u32, +} +impl ::core::marker::Copy for IMAGE_SECTION_HEADER_0 {} +impl ::core::clone::Clone for IMAGE_SECTION_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IPMI_OS_SEL_RECORD { + pub Signature: u32, + pub Version: u32, + pub Length: u32, + pub RecordType: IPMI_OS_SEL_RECORD_TYPE, + pub DataLength: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for IPMI_OS_SEL_RECORD {} +impl ::core::clone::Clone for IPMI_OS_SEL_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct KDHELP { + pub Thread: u32, + pub ThCallbackStack: u32, + pub NextCallback: u32, + pub FramePointer: u32, + pub KiCallUserMode: u32, + pub KeUserCallbackDispatcher: u32, + pub SystemRangeStart: u32, + pub ThCallbackBStore: u32, + pub KiUserExceptionDispatcher: u32, + pub StackBase: u32, + pub StackLimit: u32, + pub Reserved: [u32; 5], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for KDHELP {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for KDHELP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KDHELP64 { + pub Thread: u64, + pub ThCallbackStack: u32, + pub ThCallbackBStore: u32, + pub NextCallback: u32, + pub FramePointer: u32, + pub KiCallUserMode: u64, + pub KeUserCallbackDispatcher: u64, + pub SystemRangeStart: u64, + pub KiUserExceptionDispatcher: u64, + pub StackBase: u64, + pub StackLimit: u64, + pub BuildVersion: u32, + pub RetpolineStubFunctionTableSize: u32, + pub RetpolineStubFunctionTable: u64, + pub RetpolineStubOffset: u32, + pub RetpolineStubSize: u32, + pub Reserved0: [u64; 2], +} +impl ::core::marker::Copy for KDHELP64 {} +impl ::core::clone::Clone for KDHELP64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86_64")] +pub struct KNONVOLATILE_CONTEXT_POINTERS { + pub Anonymous1: KNONVOLATILE_CONTEXT_POINTERS_0, + pub Anonymous2: KNONVOLATILE_CONTEXT_POINTERS_1, +} +#[cfg(target_arch = "x86_64")] +impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS {} +#[cfg(target_arch = "x86_64")] +impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86_64")] +pub union KNONVOLATILE_CONTEXT_POINTERS_0 { + pub FloatingContext: [*mut M128A; 16], + pub Anonymous: KNONVOLATILE_CONTEXT_POINTERS_0_0, +} +#[cfg(target_arch = "x86_64")] +impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS_0 {} +#[cfg(target_arch = "x86_64")] +impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86_64")] +pub struct KNONVOLATILE_CONTEXT_POINTERS_0_0 { + pub Xmm0: *mut M128A, + pub Xmm1: *mut M128A, + pub Xmm2: *mut M128A, + pub Xmm3: *mut M128A, + pub Xmm4: *mut M128A, + pub Xmm5: *mut M128A, + pub Xmm6: *mut M128A, + pub Xmm7: *mut M128A, + pub Xmm8: *mut M128A, + pub Xmm9: *mut M128A, + pub Xmm10: *mut M128A, + pub Xmm11: *mut M128A, + pub Xmm12: *mut M128A, + pub Xmm13: *mut M128A, + pub Xmm14: *mut M128A, + pub Xmm15: *mut M128A, +} +#[cfg(target_arch = "x86_64")] +impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS_0_0 {} +#[cfg(target_arch = "x86_64")] +impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86_64")] +pub union KNONVOLATILE_CONTEXT_POINTERS_1 { + pub IntegerContext: [*mut u64; 16], + pub Anonymous: KNONVOLATILE_CONTEXT_POINTERS_1_0, +} +#[cfg(target_arch = "x86_64")] +impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS_1 {} +#[cfg(target_arch = "x86_64")] +impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86_64")] +pub struct KNONVOLATILE_CONTEXT_POINTERS_1_0 { + pub Rax: *mut u64, + pub Rcx: *mut u64, + pub Rdx: *mut u64, + pub Rbx: *mut u64, + pub Rsp: *mut u64, + pub Rbp: *mut u64, + pub Rsi: *mut u64, + pub Rdi: *mut u64, + pub R8: *mut u64, + pub R9: *mut u64, + pub R10: *mut u64, + pub R11: *mut u64, + pub R12: *mut u64, + pub R13: *mut u64, + pub R14: *mut u64, + pub R15: *mut u64, +} +#[cfg(target_arch = "x86_64")] +impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS_1_0 {} +#[cfg(target_arch = "x86_64")] +impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct KNONVOLATILE_CONTEXT_POINTERS { + pub Dummy: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "aarch64")] +pub struct KNONVOLATILE_CONTEXT_POINTERS_ARM64 { + pub X19: *mut u64, + pub X20: *mut u64, + pub X21: *mut u64, + pub X22: *mut u64, + pub X23: *mut u64, + pub X24: *mut u64, + pub X25: *mut u64, + pub X26: *mut u64, + pub X27: *mut u64, + pub X28: *mut u64, + pub Fp: *mut u64, + pub Lr: *mut u64, + pub D8: *mut u64, + pub D9: *mut u64, + pub D10: *mut u64, + pub D11: *mut u64, + pub D12: *mut u64, + pub D13: *mut u64, + pub D14: *mut u64, + pub D15: *mut u64, +} +#[cfg(target_arch = "aarch64")] +impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS_ARM64 {} +#[cfg(target_arch = "aarch64")] +impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS_ARM64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDT_ENTRY { + pub LimitLow: u16, + pub BaseLow: u16, + pub HighWord: LDT_ENTRY_0, +} +impl ::core::marker::Copy for LDT_ENTRY {} +impl ::core::clone::Clone for LDT_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union LDT_ENTRY_0 { + pub Bytes: LDT_ENTRY_0_1, + pub Bits: LDT_ENTRY_0_0, +} +impl ::core::marker::Copy for LDT_ENTRY_0 {} +impl ::core::clone::Clone for LDT_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDT_ENTRY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for LDT_ENTRY_0_0 {} +impl ::core::clone::Clone for LDT_ENTRY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LDT_ENTRY_0_1 { + pub BaseMid: u8, + pub Flags1: u8, + pub Flags2: u8, + pub BaseHi: u8, +} +impl ::core::marker::Copy for LDT_ENTRY_0_1 {} +impl ::core::clone::Clone for LDT_ENTRY_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +pub struct LOADED_IMAGE { + pub ModuleName: ::windows_sys::core::PSTR, + pub hFile: super::super::super::Foundation::HANDLE, + pub MappedAddress: *mut u8, + pub FileHeader: *mut IMAGE_NT_HEADERS64, + pub LastRvaSection: *mut IMAGE_SECTION_HEADER, + pub NumberOfSections: u32, + pub Sections: *mut IMAGE_SECTION_HEADER, + pub Characteristics: IMAGE_FILE_CHARACTERISTICS2, + pub fSystemImage: super::super::super::Foundation::BOOLEAN, + pub fDOSImage: super::super::super::Foundation::BOOLEAN, + pub fReadOnly: super::super::super::Foundation::BOOLEAN, + pub Version: u8, + pub Links: super::super::Kernel::LIST_ENTRY, + pub SizeOfImage: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +impl ::core::marker::Copy for LOADED_IMAGE {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +impl ::core::clone::Clone for LOADED_IMAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +pub struct LOADED_IMAGE { + pub ModuleName: ::windows_sys::core::PSTR, + pub hFile: super::super::super::Foundation::HANDLE, + pub MappedAddress: *mut u8, + pub FileHeader: *mut IMAGE_NT_HEADERS32, + pub LastRvaSection: *mut IMAGE_SECTION_HEADER, + pub NumberOfSections: u32, + pub Sections: *mut IMAGE_SECTION_HEADER, + pub Characteristics: IMAGE_FILE_CHARACTERISTICS2, + pub fSystemImage: super::super::super::Foundation::BOOLEAN, + pub fDOSImage: super::super::super::Foundation::BOOLEAN, + pub fReadOnly: super::super::super::Foundation::BOOLEAN, + pub Version: u8, + pub Links: super::super::Kernel::LIST_ENTRY, + pub SizeOfImage: u32, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +impl ::core::marker::Copy for LOADED_IMAGE {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] +impl ::core::clone::Clone for LOADED_IMAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LOAD_DLL_DEBUG_INFO { + pub hFile: super::super::super::Foundation::HANDLE, + pub lpBaseOfDll: *mut ::core::ffi::c_void, + pub dwDebugInfoFileOffset: u32, + pub nDebugInfoSize: u32, + pub lpImageName: *mut ::core::ffi::c_void, + pub fUnicode: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LOAD_DLL_DEBUG_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LOAD_DLL_DEBUG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct M128A { + pub Low: u64, + pub High: i64, +} +impl ::core::marker::Copy for M128A {} +impl ::core::clone::Clone for M128A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Memory\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))] +pub struct MINIDUMP_CALLBACK_INFORMATION { + pub CallbackRoutine: MINIDUMP_CALLBACK_ROUTINE, + pub CallbackParam: *mut ::core::ffi::c_void, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))] +impl ::core::marker::Copy for MINIDUMP_CALLBACK_INFORMATION {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))] +impl ::core::clone::Clone for MINIDUMP_CALLBACK_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Memory\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))] +pub struct MINIDUMP_CALLBACK_INFORMATION { + pub CallbackRoutine: MINIDUMP_CALLBACK_ROUTINE, + pub CallbackParam: *mut ::core::ffi::c_void, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))] +impl ::core::marker::Copy for MINIDUMP_CALLBACK_INFORMATION {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))] +impl ::core::clone::Clone for MINIDUMP_CALLBACK_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))] +pub struct MINIDUMP_CALLBACK_INPUT { + pub ProcessId: u32, + pub ProcessHandle: super::super::super::Foundation::HANDLE, + pub CallbackType: u32, + pub Anonymous: MINIDUMP_CALLBACK_INPUT_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for MINIDUMP_CALLBACK_INPUT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for MINIDUMP_CALLBACK_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))] +pub union MINIDUMP_CALLBACK_INPUT_0 { + pub Status: ::windows_sys::core::HRESULT, + pub Thread: MINIDUMP_THREAD_CALLBACK, + pub ThreadEx: MINIDUMP_THREAD_EX_CALLBACK, + pub Module: MINIDUMP_MODULE_CALLBACK, + pub IncludeThread: MINIDUMP_INCLUDE_THREAD_CALLBACK, + pub IncludeModule: MINIDUMP_INCLUDE_MODULE_CALLBACK, + pub Io: MINIDUMP_IO_CALLBACK, + pub ReadMemoryFailure: MINIDUMP_READ_MEMORY_FAILURE_CALLBACK, + pub SecondaryFlags: u32, + pub VmQuery: MINIDUMP_VM_QUERY_CALLBACK, + pub VmPreRead: MINIDUMP_VM_PRE_READ_CALLBACK, + pub VmPostRead: MINIDUMP_VM_POST_READ_CALLBACK, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for MINIDUMP_CALLBACK_INPUT_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for MINIDUMP_CALLBACK_INPUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +pub struct MINIDUMP_CALLBACK_OUTPUT { + pub Anonymous: MINIDUMP_CALLBACK_OUTPUT_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +pub union MINIDUMP_CALLBACK_OUTPUT_0 { + pub ModuleWriteFlags: u32, + pub ThreadWriteFlags: u32, + pub SecondaryFlags: u32, + pub Anonymous1: MINIDUMP_CALLBACK_OUTPUT_0_0, + pub Anonymous2: MINIDUMP_CALLBACK_OUTPUT_0_1, + pub Handle: super::super::super::Foundation::HANDLE, + pub Anonymous3: MINIDUMP_CALLBACK_OUTPUT_0_2, + pub Anonymous4: MINIDUMP_CALLBACK_OUTPUT_0_3, + pub Anonymous5: MINIDUMP_CALLBACK_OUTPUT_0_4, + pub Status: ::windows_sys::core::HRESULT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +pub struct MINIDUMP_CALLBACK_OUTPUT_0_0 { + pub MemoryBase: u64, + pub MemorySize: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +pub struct MINIDUMP_CALLBACK_OUTPUT_0_1 { + pub CheckCancel: super::super::super::Foundation::BOOL, + pub Cancel: super::super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT_0_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +pub struct MINIDUMP_CALLBACK_OUTPUT_0_2 { + pub VmRegion: MINIDUMP_MEMORY_INFO, + pub Continue: super::super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT_0_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +pub struct MINIDUMP_CALLBACK_OUTPUT_0_3 { + pub VmQueryStatus: ::windows_sys::core::HRESULT, + pub VmQueryResult: MINIDUMP_MEMORY_INFO, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT_0_3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +pub struct MINIDUMP_CALLBACK_OUTPUT_0_4 { + pub VmReadStatus: ::windows_sys::core::HRESULT, + pub VmReadBytesCompleted: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT_0_4 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_DIRECTORY { + pub StreamType: u32, + pub Location: MINIDUMP_LOCATION_DESCRIPTOR, +} +impl ::core::marker::Copy for MINIDUMP_DIRECTORY {} +impl ::core::clone::Clone for MINIDUMP_DIRECTORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_EXCEPTION { + pub ExceptionCode: u32, + pub ExceptionFlags: u32, + pub ExceptionRecord: u64, + pub ExceptionAddress: u64, + pub NumberParameters: u32, + pub __unusedAlignment: u32, + pub ExceptionInformation: [u64; 15], +} +impl ::core::marker::Copy for MINIDUMP_EXCEPTION {} +impl ::core::clone::Clone for MINIDUMP_EXCEPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct MINIDUMP_EXCEPTION_INFORMATION { + pub ThreadId: u32, + pub ExceptionPointers: *mut EXCEPTION_POINTERS, + pub ClientPointers: super::super::super::Foundation::BOOL, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for MINIDUMP_EXCEPTION_INFORMATION {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for MINIDUMP_EXCEPTION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct MINIDUMP_EXCEPTION_INFORMATION { + pub ThreadId: u32, + pub ExceptionPointers: *mut EXCEPTION_POINTERS, + pub ClientPointers: super::super::super::Foundation::BOOL, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for MINIDUMP_EXCEPTION_INFORMATION {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for MINIDUMP_EXCEPTION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MINIDUMP_EXCEPTION_INFORMATION64 { + pub ThreadId: u32, + pub ExceptionRecord: u64, + pub ContextRecord: u64, + pub ClientPointers: super::super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MINIDUMP_EXCEPTION_INFORMATION64 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MINIDUMP_EXCEPTION_INFORMATION64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_EXCEPTION_STREAM { + pub ThreadId: u32, + pub __alignment: u32, + pub ExceptionRecord: MINIDUMP_EXCEPTION, + pub ThreadContext: MINIDUMP_LOCATION_DESCRIPTOR, +} +impl ::core::marker::Copy for MINIDUMP_EXCEPTION_STREAM {} +impl ::core::clone::Clone for MINIDUMP_EXCEPTION_STREAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_FUNCTION_TABLE_DESCRIPTOR { + pub MinimumAddress: u64, + pub MaximumAddress: u64, + pub BaseAddress: u64, + pub EntryCount: u32, + pub SizeOfAlignPad: u32, +} +impl ::core::marker::Copy for MINIDUMP_FUNCTION_TABLE_DESCRIPTOR {} +impl ::core::clone::Clone for MINIDUMP_FUNCTION_TABLE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_FUNCTION_TABLE_STREAM { + pub SizeOfHeader: u32, + pub SizeOfDescriptor: u32, + pub SizeOfNativeDescriptor: u32, + pub SizeOfFunctionEntry: u32, + pub NumberOfDescriptors: u32, + pub SizeOfAlignPad: u32, +} +impl ::core::marker::Copy for MINIDUMP_FUNCTION_TABLE_STREAM {} +impl ::core::clone::Clone for MINIDUMP_FUNCTION_TABLE_STREAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_HANDLE_DATA_STREAM { + pub SizeOfHeader: u32, + pub SizeOfDescriptor: u32, + pub NumberOfDescriptors: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for MINIDUMP_HANDLE_DATA_STREAM {} +impl ::core::clone::Clone for MINIDUMP_HANDLE_DATA_STREAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_HANDLE_DESCRIPTOR { + pub Handle: u64, + pub TypeNameRva: u32, + pub ObjectNameRva: u32, + pub Attributes: u32, + pub GrantedAccess: u32, + pub HandleCount: u32, + pub PointerCount: u32, +} +impl ::core::marker::Copy for MINIDUMP_HANDLE_DESCRIPTOR {} +impl ::core::clone::Clone for MINIDUMP_HANDLE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_HANDLE_DESCRIPTOR_2 { + pub Handle: u64, + pub TypeNameRva: u32, + pub ObjectNameRva: u32, + pub Attributes: u32, + pub GrantedAccess: u32, + pub HandleCount: u32, + pub PointerCount: u32, + pub ObjectInfoRva: u32, + pub Reserved0: u32, +} +impl ::core::marker::Copy for MINIDUMP_HANDLE_DESCRIPTOR_2 {} +impl ::core::clone::Clone for MINIDUMP_HANDLE_DESCRIPTOR_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_HANDLE_OBJECT_INFORMATION { + pub NextInfoRva: u32, + pub InfoType: u32, + pub SizeOfInfo: u32, +} +impl ::core::marker::Copy for MINIDUMP_HANDLE_OBJECT_INFORMATION {} +impl ::core::clone::Clone for MINIDUMP_HANDLE_OBJECT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_HANDLE_OPERATION_LIST { + pub SizeOfHeader: u32, + pub SizeOfEntry: u32, + pub NumberOfEntries: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for MINIDUMP_HANDLE_OPERATION_LIST {} +impl ::core::clone::Clone for MINIDUMP_HANDLE_OPERATION_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_HEADER { + pub Signature: u32, + pub Version: u32, + pub NumberOfStreams: u32, + pub StreamDirectoryRva: u32, + pub CheckSum: u32, + pub Anonymous: MINIDUMP_HEADER_0, + pub Flags: u64, +} +impl ::core::marker::Copy for MINIDUMP_HEADER {} +impl ::core::clone::Clone for MINIDUMP_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MINIDUMP_HEADER_0 { + pub Reserved: u32, + pub TimeDateStamp: u32, +} +impl ::core::marker::Copy for MINIDUMP_HEADER_0 {} +impl ::core::clone::Clone for MINIDUMP_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_INCLUDE_MODULE_CALLBACK { + pub BaseOfImage: u64, +} +impl ::core::marker::Copy for MINIDUMP_INCLUDE_MODULE_CALLBACK {} +impl ::core::clone::Clone for MINIDUMP_INCLUDE_MODULE_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_INCLUDE_THREAD_CALLBACK { + pub ThreadId: u32, +} +impl ::core::marker::Copy for MINIDUMP_INCLUDE_THREAD_CALLBACK {} +impl ::core::clone::Clone for MINIDUMP_INCLUDE_THREAD_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MINIDUMP_IO_CALLBACK { + pub Handle: super::super::super::Foundation::HANDLE, + pub Offset: u64, + pub Buffer: *mut ::core::ffi::c_void, + pub BufferBytes: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MINIDUMP_IO_CALLBACK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MINIDUMP_IO_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_LOCATION_DESCRIPTOR { + pub DataSize: u32, + pub Rva: u32, +} +impl ::core::marker::Copy for MINIDUMP_LOCATION_DESCRIPTOR {} +impl ::core::clone::Clone for MINIDUMP_LOCATION_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_LOCATION_DESCRIPTOR64 { + pub DataSize: u64, + pub Rva: u64, +} +impl ::core::marker::Copy for MINIDUMP_LOCATION_DESCRIPTOR64 {} +impl ::core::clone::Clone for MINIDUMP_LOCATION_DESCRIPTOR64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_MEMORY64_LIST { + pub NumberOfMemoryRanges: u64, + pub BaseRva: u64, + pub MemoryRanges: [MINIDUMP_MEMORY_DESCRIPTOR64; 1], +} +impl ::core::marker::Copy for MINIDUMP_MEMORY64_LIST {} +impl ::core::clone::Clone for MINIDUMP_MEMORY64_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_MEMORY_DESCRIPTOR { + pub StartOfMemoryRange: u64, + pub Memory: MINIDUMP_LOCATION_DESCRIPTOR, +} +impl ::core::marker::Copy for MINIDUMP_MEMORY_DESCRIPTOR {} +impl ::core::clone::Clone for MINIDUMP_MEMORY_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_MEMORY_DESCRIPTOR64 { + pub StartOfMemoryRange: u64, + pub DataSize: u64, +} +impl ::core::marker::Copy for MINIDUMP_MEMORY_DESCRIPTOR64 {} +impl ::core::clone::Clone for MINIDUMP_MEMORY_DESCRIPTOR64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_System_Memory\"`"] +#[cfg(feature = "Win32_System_Memory")] +pub struct MINIDUMP_MEMORY_INFO { + pub BaseAddress: u64, + pub AllocationBase: u64, + pub AllocationProtect: u32, + pub __alignment1: u32, + pub RegionSize: u64, + pub State: super::super::Memory::VIRTUAL_ALLOCATION_TYPE, + pub Protect: u32, + pub Type: u32, + pub __alignment2: u32, +} +#[cfg(feature = "Win32_System_Memory")] +impl ::core::marker::Copy for MINIDUMP_MEMORY_INFO {} +#[cfg(feature = "Win32_System_Memory")] +impl ::core::clone::Clone for MINIDUMP_MEMORY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_MEMORY_INFO_LIST { + pub SizeOfHeader: u32, + pub SizeOfEntry: u32, + pub NumberOfEntries: u64, +} +impl ::core::marker::Copy for MINIDUMP_MEMORY_INFO_LIST {} +impl ::core::clone::Clone for MINIDUMP_MEMORY_INFO_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_MEMORY_LIST { + pub NumberOfMemoryRanges: u32, + pub MemoryRanges: [MINIDUMP_MEMORY_DESCRIPTOR; 1], +} +impl ::core::marker::Copy for MINIDUMP_MEMORY_LIST {} +impl ::core::clone::Clone for MINIDUMP_MEMORY_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_MISC_INFO { + pub SizeOfInfo: u32, + pub Flags1: MINIDUMP_MISC_INFO_FLAGS, + pub ProcessId: u32, + pub ProcessCreateTime: u32, + pub ProcessUserTime: u32, + pub ProcessKernelTime: u32, +} +impl ::core::marker::Copy for MINIDUMP_MISC_INFO {} +impl ::core::clone::Clone for MINIDUMP_MISC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_MISC_INFO_2 { + pub SizeOfInfo: u32, + pub Flags1: u32, + pub ProcessId: u32, + pub ProcessCreateTime: u32, + pub ProcessUserTime: u32, + pub ProcessKernelTime: u32, + pub ProcessorMaxMhz: u32, + pub ProcessorCurrentMhz: u32, + pub ProcessorMhzLimit: u32, + pub ProcessorMaxIdleState: u32, + pub ProcessorCurrentIdleState: u32, +} +impl ::core::marker::Copy for MINIDUMP_MISC_INFO_2 {} +impl ::core::clone::Clone for MINIDUMP_MISC_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct MINIDUMP_MISC_INFO_3 { + pub SizeOfInfo: u32, + pub Flags1: u32, + pub ProcessId: u32, + pub ProcessCreateTime: u32, + pub ProcessUserTime: u32, + pub ProcessKernelTime: u32, + pub ProcessorMaxMhz: u32, + pub ProcessorCurrentMhz: u32, + pub ProcessorMhzLimit: u32, + pub ProcessorMaxIdleState: u32, + pub ProcessorCurrentIdleState: u32, + pub ProcessIntegrityLevel: u32, + pub ProcessExecuteFlags: u32, + pub ProtectedProcess: u32, + pub TimeZoneId: u32, + pub TimeZone: super::super::Time::TIME_ZONE_INFORMATION, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for MINIDUMP_MISC_INFO_3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for MINIDUMP_MISC_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct MINIDUMP_MISC_INFO_4 { + pub SizeOfInfo: u32, + pub Flags1: u32, + pub ProcessId: u32, + pub ProcessCreateTime: u32, + pub ProcessUserTime: u32, + pub ProcessKernelTime: u32, + pub ProcessorMaxMhz: u32, + pub ProcessorCurrentMhz: u32, + pub ProcessorMhzLimit: u32, + pub ProcessorMaxIdleState: u32, + pub ProcessorCurrentIdleState: u32, + pub ProcessIntegrityLevel: u32, + pub ProcessExecuteFlags: u32, + pub ProtectedProcess: u32, + pub TimeZoneId: u32, + pub TimeZone: super::super::Time::TIME_ZONE_INFORMATION, + pub BuildString: [u16; 260], + pub DbgBldStr: [u16; 40], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for MINIDUMP_MISC_INFO_4 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for MINIDUMP_MISC_INFO_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct MINIDUMP_MISC_INFO_5 { + pub SizeOfInfo: u32, + pub Flags1: u32, + pub ProcessId: u32, + pub ProcessCreateTime: u32, + pub ProcessUserTime: u32, + pub ProcessKernelTime: u32, + pub ProcessorMaxMhz: u32, + pub ProcessorCurrentMhz: u32, + pub ProcessorMhzLimit: u32, + pub ProcessorMaxIdleState: u32, + pub ProcessorCurrentIdleState: u32, + pub ProcessIntegrityLevel: u32, + pub ProcessExecuteFlags: u32, + pub ProtectedProcess: u32, + pub TimeZoneId: u32, + pub TimeZone: super::super::Time::TIME_ZONE_INFORMATION, + pub BuildString: [u16; 260], + pub DbgBldStr: [u16; 40], + pub XStateData: XSTATE_CONFIG_FEATURE_MSC_INFO, + pub ProcessCookie: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for MINIDUMP_MISC_INFO_5 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for MINIDUMP_MISC_INFO_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct MINIDUMP_MODULE { + pub BaseOfImage: u64, + pub SizeOfImage: u32, + pub CheckSum: u32, + pub TimeDateStamp: u32, + pub ModuleNameRva: u32, + pub VersionInfo: super::super::super::Storage::FileSystem::VS_FIXEDFILEINFO, + pub CvRecord: MINIDUMP_LOCATION_DESCRIPTOR, + pub MiscRecord: MINIDUMP_LOCATION_DESCRIPTOR, + pub Reserved0: u64, + pub Reserved1: u64, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for MINIDUMP_MODULE {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for MINIDUMP_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct MINIDUMP_MODULE_CALLBACK { + pub FullPath: ::windows_sys::core::PWSTR, + pub BaseOfImage: u64, + pub SizeOfImage: u32, + pub CheckSum: u32, + pub TimeDateStamp: u32, + pub VersionInfo: super::super::super::Storage::FileSystem::VS_FIXEDFILEINFO, + pub CvRecord: *mut ::core::ffi::c_void, + pub SizeOfCvRecord: u32, + pub MiscRecord: *mut ::core::ffi::c_void, + pub SizeOfMiscRecord: u32, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for MINIDUMP_MODULE_CALLBACK {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for MINIDUMP_MODULE_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct MINIDUMP_MODULE_LIST { + pub NumberOfModules: u32, + pub Modules: [MINIDUMP_MODULE; 1], +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for MINIDUMP_MODULE_LIST {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for MINIDUMP_MODULE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_PROCESS_VM_COUNTERS_1 { + pub Revision: u16, + pub PageFaultCount: u32, + pub PeakWorkingSetSize: u64, + pub WorkingSetSize: u64, + pub QuotaPeakPagedPoolUsage: u64, + pub QuotaPagedPoolUsage: u64, + pub QuotaPeakNonPagedPoolUsage: u64, + pub QuotaNonPagedPoolUsage: u64, + pub PagefileUsage: u64, + pub PeakPagefileUsage: u64, + pub PrivateUsage: u64, +} +impl ::core::marker::Copy for MINIDUMP_PROCESS_VM_COUNTERS_1 {} +impl ::core::clone::Clone for MINIDUMP_PROCESS_VM_COUNTERS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_PROCESS_VM_COUNTERS_2 { + pub Revision: u16, + pub Flags: u16, + pub PageFaultCount: u32, + pub PeakWorkingSetSize: u64, + pub WorkingSetSize: u64, + pub QuotaPeakPagedPoolUsage: u64, + pub QuotaPagedPoolUsage: u64, + pub QuotaPeakNonPagedPoolUsage: u64, + pub QuotaNonPagedPoolUsage: u64, + pub PagefileUsage: u64, + pub PeakPagefileUsage: u64, + pub PeakVirtualSize: u64, + pub VirtualSize: u64, + pub PrivateUsage: u64, + pub PrivateWorkingSetSize: u64, + pub SharedCommitUsage: u64, + pub JobSharedCommitUsage: u64, + pub JobPrivateCommitUsage: u64, + pub JobPeakPrivateCommitUsage: u64, + pub JobPrivateCommitLimit: u64, + pub JobTotalCommitLimit: u64, +} +impl ::core::marker::Copy for MINIDUMP_PROCESS_VM_COUNTERS_2 {} +impl ::core::clone::Clone for MINIDUMP_PROCESS_VM_COUNTERS_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_READ_MEMORY_FAILURE_CALLBACK { + pub Offset: u64, + pub Bytes: u32, + pub FailureStatus: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for MINIDUMP_READ_MEMORY_FAILURE_CALLBACK {} +impl ::core::clone::Clone for MINIDUMP_READ_MEMORY_FAILURE_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_STRING { + pub Length: u32, + pub Buffer: [u16; 1], +} +impl ::core::marker::Copy for MINIDUMP_STRING {} +impl ::core::clone::Clone for MINIDUMP_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_SYSTEM_BASIC_INFORMATION { + pub TimerResolution: u32, + pub PageSize: u32, + pub NumberOfPhysicalPages: u32, + pub LowestPhysicalPageNumber: u32, + pub HighestPhysicalPageNumber: u32, + pub AllocationGranularity: u32, + pub MinimumUserModeAddress: u64, + pub MaximumUserModeAddress: u64, + pub ActiveProcessorsAffinityMask: u64, + pub NumberOfProcessors: u32, +} +impl ::core::marker::Copy for MINIDUMP_SYSTEM_BASIC_INFORMATION {} +impl ::core::clone::Clone for MINIDUMP_SYSTEM_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION { + pub AvailablePages: u64, + pub CommittedPages: u64, + pub CommitLimit: u64, + pub PeakCommitment: u64, +} +impl ::core::marker::Copy for MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION {} +impl ::core::clone::Clone for MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_SYSTEM_FILECACHE_INFORMATION { + pub CurrentSize: u64, + pub PeakSize: u64, + pub PageFaultCount: u32, + pub MinimumWorkingSet: u64, + pub MaximumWorkingSet: u64, + pub CurrentSizeIncludingTransitionInPages: u64, + pub PeakSizeIncludingTransitionInPages: u64, + pub TransitionRePurposeCount: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for MINIDUMP_SYSTEM_FILECACHE_INFORMATION {} +impl ::core::clone::Clone for MINIDUMP_SYSTEM_FILECACHE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_System_SystemInformation\"`"] +#[cfg(feature = "Win32_System_SystemInformation")] +pub struct MINIDUMP_SYSTEM_INFO { + pub ProcessorArchitecture: super::super::SystemInformation::PROCESSOR_ARCHITECTURE, + pub ProcessorLevel: u16, + pub ProcessorRevision: u16, + pub Anonymous1: MINIDUMP_SYSTEM_INFO_0, + pub MajorVersion: u32, + pub MinorVersion: u32, + pub BuildNumber: u32, + pub PlatformId: VER_PLATFORM, + pub CSDVersionRva: u32, + pub Anonymous2: MINIDUMP_SYSTEM_INFO_1, + pub Cpu: CPU_INFORMATION, +} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::marker::Copy for MINIDUMP_SYSTEM_INFO {} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::clone::Clone for MINIDUMP_SYSTEM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_SystemInformation\"`"] +#[cfg(feature = "Win32_System_SystemInformation")] +pub union MINIDUMP_SYSTEM_INFO_0 { + pub Reserved0: u16, + pub Anonymous: MINIDUMP_SYSTEM_INFO_0_0, +} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::marker::Copy for MINIDUMP_SYSTEM_INFO_0 {} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::clone::Clone for MINIDUMP_SYSTEM_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_SystemInformation\"`"] +#[cfg(feature = "Win32_System_SystemInformation")] +pub struct MINIDUMP_SYSTEM_INFO_0_0 { + pub NumberOfProcessors: u8, + pub ProductType: u8, +} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::marker::Copy for MINIDUMP_SYSTEM_INFO_0_0 {} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::clone::Clone for MINIDUMP_SYSTEM_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_SystemInformation\"`"] +#[cfg(feature = "Win32_System_SystemInformation")] +pub union MINIDUMP_SYSTEM_INFO_1 { + pub Reserved1: u32, + pub Anonymous: MINIDUMP_SYSTEM_INFO_1_0, +} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::marker::Copy for MINIDUMP_SYSTEM_INFO_1 {} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::clone::Clone for MINIDUMP_SYSTEM_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_SystemInformation\"`"] +#[cfg(feature = "Win32_System_SystemInformation")] +pub struct MINIDUMP_SYSTEM_INFO_1_0 { + pub SuiteMask: u16, + pub Reserved2: u16, +} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::marker::Copy for MINIDUMP_SYSTEM_INFO_1_0 {} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::clone::Clone for MINIDUMP_SYSTEM_INFO_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_SYSTEM_MEMORY_INFO_1 { + pub Revision: u16, + pub Flags: u16, + pub BasicInfo: MINIDUMP_SYSTEM_BASIC_INFORMATION, + pub FileCacheInfo: MINIDUMP_SYSTEM_FILECACHE_INFORMATION, + pub BasicPerfInfo: MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION, + pub PerfInfo: MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION, +} +impl ::core::marker::Copy for MINIDUMP_SYSTEM_MEMORY_INFO_1 {} +impl ::core::clone::Clone for MINIDUMP_SYSTEM_MEMORY_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION { + pub IdleProcessTime: u64, + pub IoReadTransferCount: u64, + pub IoWriteTransferCount: u64, + pub IoOtherTransferCount: u64, + pub IoReadOperationCount: u32, + pub IoWriteOperationCount: u32, + pub IoOtherOperationCount: u32, + pub AvailablePages: u32, + pub CommittedPages: u32, + pub CommitLimit: u32, + pub PeakCommitment: u32, + pub PageFaultCount: u32, + pub CopyOnWriteCount: u32, + pub TransitionCount: u32, + pub CacheTransitionCount: u32, + pub DemandZeroCount: u32, + pub PageReadCount: u32, + pub PageReadIoCount: u32, + pub CacheReadCount: u32, + pub CacheIoCount: u32, + pub DirtyPagesWriteCount: u32, + pub DirtyWriteIoCount: u32, + pub MappedPagesWriteCount: u32, + pub MappedWriteIoCount: u32, + pub PagedPoolPages: u32, + pub NonPagedPoolPages: u32, + pub PagedPoolAllocs: u32, + pub PagedPoolFrees: u32, + pub NonPagedPoolAllocs: u32, + pub NonPagedPoolFrees: u32, + pub FreeSystemPtes: u32, + pub ResidentSystemCodePage: u32, + pub TotalSystemDriverPages: u32, + pub TotalSystemCodePages: u32, + pub NonPagedPoolLookasideHits: u32, + pub PagedPoolLookasideHits: u32, + pub AvailablePagedPoolPages: u32, + pub ResidentSystemCachePage: u32, + pub ResidentPagedPoolPage: u32, + pub ResidentSystemDriverPage: u32, + pub CcFastReadNoWait: u32, + pub CcFastReadWait: u32, + pub CcFastReadResourceMiss: u32, + pub CcFastReadNotPossible: u32, + pub CcFastMdlReadNoWait: u32, + pub CcFastMdlReadWait: u32, + pub CcFastMdlReadResourceMiss: u32, + pub CcFastMdlReadNotPossible: u32, + pub CcMapDataNoWait: u32, + pub CcMapDataWait: u32, + pub CcMapDataNoWaitMiss: u32, + pub CcMapDataWaitMiss: u32, + pub CcPinMappedDataCount: u32, + pub CcPinReadNoWait: u32, + pub CcPinReadWait: u32, + pub CcPinReadNoWaitMiss: u32, + pub CcPinReadWaitMiss: u32, + pub CcCopyReadNoWait: u32, + pub CcCopyReadWait: u32, + pub CcCopyReadNoWaitMiss: u32, + pub CcCopyReadWaitMiss: u32, + pub CcMdlReadNoWait: u32, + pub CcMdlReadWait: u32, + pub CcMdlReadNoWaitMiss: u32, + pub CcMdlReadWaitMiss: u32, + pub CcReadAheadIos: u32, + pub CcLazyWriteIos: u32, + pub CcLazyWritePages: u32, + pub CcDataFlushes: u32, + pub CcDataPages: u32, + pub ContextSwitches: u32, + pub FirstLevelTbFills: u32, + pub SecondLevelTbFills: u32, + pub SystemCalls: u32, + pub CcTotalDirtyPages: u64, + pub CcDirtyPageThreshold: u64, + pub ResidentAvailablePages: i64, + pub SharedCommittedPages: u64, +} +impl ::core::marker::Copy for MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION {} +impl ::core::clone::Clone for MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_THREAD { + pub ThreadId: u32, + pub SuspendCount: u32, + pub PriorityClass: u32, + pub Priority: u32, + pub Teb: u64, + pub Stack: MINIDUMP_MEMORY_DESCRIPTOR, + pub ThreadContext: MINIDUMP_LOCATION_DESCRIPTOR, +} +impl ::core::marker::Copy for MINIDUMP_THREAD {} +impl ::core::clone::Clone for MINIDUMP_THREAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "aarch64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct MINIDUMP_THREAD_CALLBACK { + pub ThreadId: u32, + pub ThreadHandle: super::super::super::Foundation::HANDLE, + pub Pad: u32, + pub Context: CONTEXT, + pub SizeOfContext: u32, + pub StackBase: u64, + pub StackEnd: u64, +} +#[cfg(target_arch = "aarch64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for MINIDUMP_THREAD_CALLBACK {} +#[cfg(target_arch = "aarch64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for MINIDUMP_THREAD_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct MINIDUMP_THREAD_CALLBACK { + pub ThreadId: u32, + pub ThreadHandle: super::super::super::Foundation::HANDLE, + pub Context: CONTEXT, + pub SizeOfContext: u32, + pub StackBase: u64, + pub StackEnd: u64, +} +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for MINIDUMP_THREAD_CALLBACK {} +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for MINIDUMP_THREAD_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_THREAD_EX { + pub ThreadId: u32, + pub SuspendCount: u32, + pub PriorityClass: u32, + pub Priority: u32, + pub Teb: u64, + pub Stack: MINIDUMP_MEMORY_DESCRIPTOR, + pub ThreadContext: MINIDUMP_LOCATION_DESCRIPTOR, + pub BackingStore: MINIDUMP_MEMORY_DESCRIPTOR, +} +impl ::core::marker::Copy for MINIDUMP_THREAD_EX {} +impl ::core::clone::Clone for MINIDUMP_THREAD_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "aarch64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct MINIDUMP_THREAD_EX_CALLBACK { + pub ThreadId: u32, + pub ThreadHandle: super::super::super::Foundation::HANDLE, + pub Pad: u32, + pub Context: CONTEXT, + pub SizeOfContext: u32, + pub StackBase: u64, + pub StackEnd: u64, + pub BackingStoreBase: u64, + pub BackingStoreEnd: u64, +} +#[cfg(target_arch = "aarch64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for MINIDUMP_THREAD_EX_CALLBACK {} +#[cfg(target_arch = "aarch64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for MINIDUMP_THREAD_EX_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct MINIDUMP_THREAD_EX_CALLBACK { + pub ThreadId: u32, + pub ThreadHandle: super::super::super::Foundation::HANDLE, + pub Context: CONTEXT, + pub SizeOfContext: u32, + pub StackBase: u64, + pub StackEnd: u64, + pub BackingStoreBase: u64, + pub BackingStoreEnd: u64, +} +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for MINIDUMP_THREAD_EX_CALLBACK {} +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for MINIDUMP_THREAD_EX_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_THREAD_EX_LIST { + pub NumberOfThreads: u32, + pub Threads: [MINIDUMP_THREAD_EX; 1], +} +impl ::core::marker::Copy for MINIDUMP_THREAD_EX_LIST {} +impl ::core::clone::Clone for MINIDUMP_THREAD_EX_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_THREAD_INFO { + pub ThreadId: u32, + pub DumpFlags: MINIDUMP_THREAD_INFO_DUMP_FLAGS, + pub DumpError: u32, + pub ExitStatus: u32, + pub CreateTime: u64, + pub ExitTime: u64, + pub KernelTime: u64, + pub UserTime: u64, + pub StartAddress: u64, + pub Affinity: u64, +} +impl ::core::marker::Copy for MINIDUMP_THREAD_INFO {} +impl ::core::clone::Clone for MINIDUMP_THREAD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_THREAD_INFO_LIST { + pub SizeOfHeader: u32, + pub SizeOfEntry: u32, + pub NumberOfEntries: u32, +} +impl ::core::marker::Copy for MINIDUMP_THREAD_INFO_LIST {} +impl ::core::clone::Clone for MINIDUMP_THREAD_INFO_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_THREAD_LIST { + pub NumberOfThreads: u32, + pub Threads: [MINIDUMP_THREAD; 1], +} +impl ::core::marker::Copy for MINIDUMP_THREAD_LIST {} +impl ::core::clone::Clone for MINIDUMP_THREAD_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_THREAD_NAME { + pub ThreadId: u32, + pub RvaOfThreadName: u64, +} +impl ::core::marker::Copy for MINIDUMP_THREAD_NAME {} +impl ::core::clone::Clone for MINIDUMP_THREAD_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_THREAD_NAME_LIST { + pub NumberOfThreadNames: u32, + pub ThreadNames: [MINIDUMP_THREAD_NAME; 1], +} +impl ::core::marker::Copy for MINIDUMP_THREAD_NAME_LIST {} +impl ::core::clone::Clone for MINIDUMP_THREAD_NAME_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_TOKEN_INFO_HEADER { + pub TokenSize: u32, + pub TokenId: u32, + pub TokenHandle: u64, +} +impl ::core::marker::Copy for MINIDUMP_TOKEN_INFO_HEADER {} +impl ::core::clone::Clone for MINIDUMP_TOKEN_INFO_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_TOKEN_INFO_LIST { + pub TokenListSize: u32, + pub TokenListEntries: u32, + pub ListHeaderSize: u32, + pub ElementHeaderSize: u32, +} +impl ::core::marker::Copy for MINIDUMP_TOKEN_INFO_LIST {} +impl ::core::clone::Clone for MINIDUMP_TOKEN_INFO_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_UNLOADED_MODULE { + pub BaseOfImage: u64, + pub SizeOfImage: u32, + pub CheckSum: u32, + pub TimeDateStamp: u32, + pub ModuleNameRva: u32, +} +impl ::core::marker::Copy for MINIDUMP_UNLOADED_MODULE {} +impl ::core::clone::Clone for MINIDUMP_UNLOADED_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_UNLOADED_MODULE_LIST { + pub SizeOfHeader: u32, + pub SizeOfEntry: u32, + pub NumberOfEntries: u32, +} +impl ::core::marker::Copy for MINIDUMP_UNLOADED_MODULE_LIST {} +impl ::core::clone::Clone for MINIDUMP_UNLOADED_MODULE_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_USER_RECORD { + pub Type: u32, + pub Memory: MINIDUMP_LOCATION_DESCRIPTOR, +} +impl ::core::marker::Copy for MINIDUMP_USER_RECORD {} +impl ::core::clone::Clone for MINIDUMP_USER_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct MINIDUMP_USER_STREAM { + pub Type: u32, + pub BufferSize: u32, + pub Buffer: *mut ::core::ffi::c_void, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for MINIDUMP_USER_STREAM {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for MINIDUMP_USER_STREAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct MINIDUMP_USER_STREAM { + pub Type: u32, + pub BufferSize: u32, + pub Buffer: *mut ::core::ffi::c_void, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for MINIDUMP_USER_STREAM {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for MINIDUMP_USER_STREAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct MINIDUMP_USER_STREAM_INFORMATION { + pub UserStreamCount: u32, + pub UserStreamArray: *mut MINIDUMP_USER_STREAM, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for MINIDUMP_USER_STREAM_INFORMATION {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for MINIDUMP_USER_STREAM_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct MINIDUMP_USER_STREAM_INFORMATION { + pub UserStreamCount: u32, + pub UserStreamArray: *mut MINIDUMP_USER_STREAM, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for MINIDUMP_USER_STREAM_INFORMATION {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for MINIDUMP_USER_STREAM_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_VM_POST_READ_CALLBACK { + pub Offset: u64, + pub Buffer: *mut ::core::ffi::c_void, + pub Size: u32, + pub Completed: u32, + pub Status: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for MINIDUMP_VM_POST_READ_CALLBACK {} +impl ::core::clone::Clone for MINIDUMP_VM_POST_READ_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_VM_PRE_READ_CALLBACK { + pub Offset: u64, + pub Buffer: *mut ::core::ffi::c_void, + pub Size: u32, +} +impl ::core::marker::Copy for MINIDUMP_VM_PRE_READ_CALLBACK {} +impl ::core::clone::Clone for MINIDUMP_VM_PRE_READ_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct MINIDUMP_VM_QUERY_CALLBACK { + pub Offset: u64, +} +impl ::core::marker::Copy for MINIDUMP_VM_QUERY_CALLBACK {} +impl ::core::clone::Clone for MINIDUMP_VM_QUERY_CALLBACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MODLOAD_CVMISC { + pub oCV: u32, + pub cCV: usize, + pub oMisc: u32, + pub cMisc: usize, + pub dtImage: u32, + pub cImage: u32, +} +impl ::core::marker::Copy for MODLOAD_CVMISC {} +impl ::core::clone::Clone for MODLOAD_CVMISC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MODLOAD_DATA { + pub ssize: u32, + pub ssig: MODLOAD_DATA_TYPE, + pub data: *mut ::core::ffi::c_void, + pub size: u32, + pub flags: u32, +} +impl ::core::marker::Copy for MODLOAD_DATA {} +impl ::core::clone::Clone for MODLOAD_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MODLOAD_PDBGUID_PDBAGE { + pub PdbGuid: ::windows_sys::core::GUID, + pub PdbAge: u32, +} +impl ::core::marker::Copy for MODLOAD_PDBGUID_PDBAGE {} +impl ::core::clone::Clone for MODLOAD_PDBGUID_PDBAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MODULE_TYPE_INFO { + pub dataLength: u16, + pub leaf: u16, + pub data: [u8; 1], +} +impl ::core::marker::Copy for MODULE_TYPE_INFO {} +impl ::core::clone::Clone for MODULE_TYPE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OMAP { + pub rva: u32, + pub rvaTo: u32, +} +impl ::core::marker::Copy for OMAP {} +impl ::core::clone::Clone for OMAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OUTPUT_DEBUG_STRING_INFO { + pub lpDebugStringData: ::windows_sys::core::PSTR, + pub fUnicode: u16, + pub nDebugStringLength: u16, +} +impl ::core::marker::Copy for OUTPUT_DEBUG_STRING_INFO {} +impl ::core::clone::Clone for OUTPUT_DEBUG_STRING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL_MEMORY_DESCRIPTOR32 { + pub NumberOfRuns: u32, + pub NumberOfPages: u32, + pub Run: [PHYSICAL_MEMORY_RUN32; 1], +} +impl ::core::marker::Copy for PHYSICAL_MEMORY_DESCRIPTOR32 {} +impl ::core::clone::Clone for PHYSICAL_MEMORY_DESCRIPTOR32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL_MEMORY_DESCRIPTOR64 { + pub NumberOfRuns: u32, + pub NumberOfPages: u64, + pub Run: [PHYSICAL_MEMORY_RUN64; 1], +} +impl ::core::marker::Copy for PHYSICAL_MEMORY_DESCRIPTOR64 {} +impl ::core::clone::Clone for PHYSICAL_MEMORY_DESCRIPTOR64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL_MEMORY_RUN32 { + pub BasePage: u32, + pub PageCount: u32, +} +impl ::core::marker::Copy for PHYSICAL_MEMORY_RUN32 {} +impl ::core::clone::Clone for PHYSICAL_MEMORY_RUN32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL_MEMORY_RUN64 { + pub BasePage: u64, + pub PageCount: u64, +} +impl ::core::marker::Copy for PHYSICAL_MEMORY_RUN64 {} +impl ::core::clone::Clone for PHYSICAL_MEMORY_RUN64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RIP_INFO { + pub dwError: u32, + pub dwType: RIP_INFO_TYPE, +} +impl ::core::marker::Copy for RIP_INFO {} +impl ::core::clone::Clone for RIP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOURCEFILE { + pub ModBase: u64, + pub FileName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for SOURCEFILE {} +impl ::core::clone::Clone for SOURCEFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOURCEFILEW { + pub ModBase: u64, + pub FileName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SOURCEFILEW {} +impl ::core::clone::Clone for SOURCEFILEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SRCCODEINFO { + pub SizeOfStruct: u32, + pub Key: *mut ::core::ffi::c_void, + pub ModBase: u64, + pub Obj: [u8; 261], + pub FileName: [u8; 261], + pub LineNumber: u32, + pub Address: u64, +} +impl ::core::marker::Copy for SRCCODEINFO {} +impl ::core::clone::Clone for SRCCODEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SRCCODEINFOW { + pub SizeOfStruct: u32, + pub Key: *mut ::core::ffi::c_void, + pub ModBase: u64, + pub Obj: [u16; 261], + pub FileName: [u16; 261], + pub LineNumber: u32, + pub Address: u64, +} +impl ::core::marker::Copy for SRCCODEINFOW {} +impl ::core::clone::Clone for SRCCODEINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct STACKFRAME { + pub AddrPC: ADDRESS, + pub AddrReturn: ADDRESS, + pub AddrFrame: ADDRESS, + pub AddrStack: ADDRESS, + pub FuncTableEntry: *mut ::core::ffi::c_void, + pub Params: [u32; 4], + pub Far: super::super::super::Foundation::BOOL, + pub Virtual: super::super::super::Foundation::BOOL, + pub Reserved: [u32; 3], + pub KdHelp: KDHELP, + pub AddrBStore: ADDRESS, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STACKFRAME {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STACKFRAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STACKFRAME64 { + pub AddrPC: ADDRESS64, + pub AddrReturn: ADDRESS64, + pub AddrFrame: ADDRESS64, + pub AddrStack: ADDRESS64, + pub AddrBStore: ADDRESS64, + pub FuncTableEntry: *mut ::core::ffi::c_void, + pub Params: [u64; 4], + pub Far: super::super::super::Foundation::BOOL, + pub Virtual: super::super::super::Foundation::BOOL, + pub Reserved: [u64; 3], + pub KdHelp: KDHELP64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STACKFRAME64 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STACKFRAME64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STACKFRAME_EX { + pub AddrPC: ADDRESS64, + pub AddrReturn: ADDRESS64, + pub AddrFrame: ADDRESS64, + pub AddrStack: ADDRESS64, + pub AddrBStore: ADDRESS64, + pub FuncTableEntry: *mut ::core::ffi::c_void, + pub Params: [u64; 4], + pub Far: super::super::super::Foundation::BOOL, + pub Virtual: super::super::super::Foundation::BOOL, + pub Reserved: [u64; 3], + pub KdHelp: KDHELP64, + pub StackFrameSize: u32, + pub InlineFrameContext: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STACKFRAME_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STACKFRAME_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYMBOL_INFO { + pub SizeOfStruct: u32, + pub TypeIndex: u32, + pub Reserved: [u64; 2], + pub Index: u32, + pub Size: u32, + pub ModBase: u64, + pub Flags: SYMBOL_INFO_FLAGS, + pub Value: u64, + pub Address: u64, + pub Register: u32, + pub Scope: u32, + pub Tag: u32, + pub NameLen: u32, + pub MaxNameLen: u32, + pub Name: [u8; 1], +} +impl ::core::marker::Copy for SYMBOL_INFO {} +impl ::core::clone::Clone for SYMBOL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYMBOL_INFOW { + pub SizeOfStruct: u32, + pub TypeIndex: u32, + pub Reserved: [u64; 2], + pub Index: u32, + pub Size: u32, + pub ModBase: u64, + pub Flags: SYMBOL_INFO_FLAGS, + pub Value: u64, + pub Address: u64, + pub Register: u32, + pub Scope: u32, + pub Tag: u32, + pub NameLen: u32, + pub MaxNameLen: u32, + pub Name: [u16; 1], +} +impl ::core::marker::Copy for SYMBOL_INFOW {} +impl ::core::clone::Clone for SYMBOL_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYMBOL_INFO_PACKAGE { + pub si: SYMBOL_INFO, + pub name: [u8; 2001], +} +impl ::core::marker::Copy for SYMBOL_INFO_PACKAGE {} +impl ::core::clone::Clone for SYMBOL_INFO_PACKAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYMBOL_INFO_PACKAGEW { + pub si: SYMBOL_INFOW, + pub name: [u16; 2001], +} +impl ::core::marker::Copy for SYMBOL_INFO_PACKAGEW {} +impl ::core::clone::Clone for SYMBOL_INFO_PACKAGEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYMSRV_EXTENDED_OUTPUT_DATA { + pub sizeOfStruct: u32, + pub version: u32, + pub filePtrMsg: [u16; 261], +} +impl ::core::marker::Copy for SYMSRV_EXTENDED_OUTPUT_DATA {} +impl ::core::clone::Clone for SYMSRV_EXTENDED_OUTPUT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SYMSRV_INDEX_INFO { + pub sizeofstruct: u32, + pub file: [u8; 261], + pub stripped: super::super::super::Foundation::BOOL, + pub timestamp: u32, + pub size: u32, + pub dbgfile: [u8; 261], + pub pdbfile: [u8; 261], + pub guid: ::windows_sys::core::GUID, + pub sig: u32, + pub age: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SYMSRV_INDEX_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SYMSRV_INDEX_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SYMSRV_INDEX_INFOW { + pub sizeofstruct: u32, + pub file: [u16; 261], + pub stripped: super::super::super::Foundation::BOOL, + pub timestamp: u32, + pub size: u32, + pub dbgfile: [u16; 261], + pub pdbfile: [u16; 261], + pub guid: ::windows_sys::core::GUID, + pub sig: u32, + pub age: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SYMSRV_INDEX_INFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SYMSRV_INDEX_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TI_FINDCHILDREN_PARAMS { + pub Count: u32, + pub Start: u32, + pub ChildId: [u32; 1], +} +impl ::core::marker::Copy for TI_FINDCHILDREN_PARAMS {} +impl ::core::clone::Clone for TI_FINDCHILDREN_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UNLOAD_DLL_DEBUG_INFO { + pub lpBaseOfDll: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for UNLOAD_DLL_DEBUG_INFO {} +impl ::core::clone::Clone for UNLOAD_DLL_DEBUG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct UNWIND_HISTORY_TABLE { + pub Count: u32, + pub LocalHint: u8, + pub GlobalHint: u8, + pub Search: u8, + pub Once: u8, + pub LowAddress: usize, + pub HighAddress: usize, + pub Entry: [UNWIND_HISTORY_TABLE_ENTRY; 12], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for UNWIND_HISTORY_TABLE {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for UNWIND_HISTORY_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "aarch64")] +pub struct UNWIND_HISTORY_TABLE_ENTRY { + pub ImageBase: usize, + pub FunctionEntry: *mut IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, +} +#[cfg(target_arch = "aarch64")] +impl ::core::marker::Copy for UNWIND_HISTORY_TABLE_ENTRY {} +#[cfg(target_arch = "aarch64")] +impl ::core::clone::Clone for UNWIND_HISTORY_TABLE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86_64")] +pub struct UNWIND_HISTORY_TABLE_ENTRY { + pub ImageBase: usize, + pub FunctionEntry: *mut IMAGE_RUNTIME_FUNCTION_ENTRY, +} +#[cfg(target_arch = "x86_64")] +impl ::core::marker::Copy for UNWIND_HISTORY_TABLE_ENTRY {} +#[cfg(target_arch = "x86_64")] +impl ::core::clone::Clone for UNWIND_HISTORY_TABLE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WAITCHAIN_NODE_INFO { + pub ObjectType: WCT_OBJECT_TYPE, + pub ObjectStatus: WCT_OBJECT_STATUS, + pub Anonymous: WAITCHAIN_NODE_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WAITCHAIN_NODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WAITCHAIN_NODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WAITCHAIN_NODE_INFO_0 { + pub LockObject: WAITCHAIN_NODE_INFO_0_0, + pub ThreadObject: WAITCHAIN_NODE_INFO_0_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WAITCHAIN_NODE_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WAITCHAIN_NODE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WAITCHAIN_NODE_INFO_0_0 { + pub ObjectName: [u16; 128], + pub Timeout: i64, + pub Alertable: super::super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WAITCHAIN_NODE_INFO_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WAITCHAIN_NODE_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WAITCHAIN_NODE_INFO_0_1 { + pub ProcessId: u32, + pub ThreadId: u32, + pub WaitTime: u32, + pub ContextSwitches: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WAITCHAIN_NODE_INFO_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WAITCHAIN_NODE_INFO_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_AER_BRIDGE_DESCRIPTOR { + pub Type: u16, + pub Enabled: super::super::super::Foundation::BOOLEAN, + pub Reserved: u8, + pub BusNumber: u32, + pub Slot: WHEA_PCI_SLOT_NUMBER, + pub DeviceControl: u16, + pub Flags: AER_BRIDGE_DESCRIPTOR_FLAGS, + pub UncorrectableErrorMask: u32, + pub UncorrectableErrorSeverity: u32, + pub CorrectableErrorMask: u32, + pub AdvancedCapsAndControl: u32, + pub SecondaryUncorrectableErrorMask: u32, + pub SecondaryUncorrectableErrorSev: u32, + pub SecondaryCapsAndControl: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_AER_BRIDGE_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_AER_BRIDGE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_AER_ENDPOINT_DESCRIPTOR { + pub Type: u16, + pub Enabled: super::super::super::Foundation::BOOLEAN, + pub Reserved: u8, + pub BusNumber: u32, + pub Slot: WHEA_PCI_SLOT_NUMBER, + pub DeviceControl: u16, + pub Flags: AER_ENDPOINT_DESCRIPTOR_FLAGS, + pub UncorrectableErrorMask: u32, + pub UncorrectableErrorSeverity: u32, + pub CorrectableErrorMask: u32, + pub AdvancedCapsAndControl: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_AER_ENDPOINT_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_AER_ENDPOINT_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_AER_ROOTPORT_DESCRIPTOR { + pub Type: u16, + pub Enabled: super::super::super::Foundation::BOOLEAN, + pub Reserved: u8, + pub BusNumber: u32, + pub Slot: WHEA_PCI_SLOT_NUMBER, + pub DeviceControl: u16, + pub Flags: AER_ROOTPORT_DESCRIPTOR_FLAGS, + pub UncorrectableErrorMask: u32, + pub UncorrectableErrorSeverity: u32, + pub CorrectableErrorMask: u32, + pub AdvancedCapsAndControl: u32, + pub RootErrorCommand: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_AER_ROOTPORT_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_AER_ROOTPORT_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_DEVICE_DRIVER_DESCRIPTOR { + pub Type: u16, + pub Enabled: super::super::super::Foundation::BOOLEAN, + pub Reserved: u8, + pub SourceGuid: ::windows_sys::core::GUID, + pub LogTag: u16, + pub Reserved2: u16, + pub PacketLength: u32, + pub PacketCount: u32, + pub PacketBuffer: *mut u8, + pub Config: WHEA_ERROR_SOURCE_CONFIGURATION_DD, + pub CreatorId: ::windows_sys::core::GUID, + pub PartitionId: ::windows_sys::core::GUID, + pub MaxSectionDataLength: u32, + pub MaxSectionsPerRecord: u32, + pub PacketStateBuffer: *mut u8, + pub OpenHandles: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_DEVICE_DRIVER_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_DEVICE_DRIVER_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_DRIVER_BUFFER_SET { + pub Version: u32, + pub Data: *mut u8, + pub DataSize: u32, + pub SectionTypeGuid: *mut ::windows_sys::core::GUID, + pub SectionFriendlyName: *mut u8, + pub Flags: *mut u8, +} +impl ::core::marker::Copy for WHEA_DRIVER_BUFFER_SET {} +impl ::core::clone::Clone for WHEA_DRIVER_BUFFER_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_ERROR_SOURCE_CONFIGURATION_DD { + pub Initialize: WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER, + pub Uninitialize: WHEA_ERROR_SOURCE_UNINITIALIZE_DEVICE_DRIVER, + pub Correct: WHEA_ERROR_SOURCE_CORRECT_DEVICE_DRIVER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_ERROR_SOURCE_CONFIGURATION_DD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_ERROR_SOURCE_CONFIGURATION_DD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER { + pub Version: u32, + pub SourceGuid: ::windows_sys::core::GUID, + pub LogTag: u16, + pub Reserved: [u8; 6], + pub Initialize: WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER, + pub Uninitialize: WHEA_ERROR_SOURCE_UNINITIALIZE_DEVICE_DRIVER, + pub MaxSectionDataLength: u32, + pub MaxSectionsPerReport: u32, + pub CreatorId: ::windows_sys::core::GUID, + pub PartitionId: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER_V1 { + pub Version: u32, + pub SourceGuid: ::windows_sys::core::GUID, + pub LogTag: u16, + pub Reserved: [u8; 6], + pub Initialize: WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER, + pub Uninitialize: WHEA_ERROR_SOURCE_UNINITIALIZE_DEVICE_DRIVER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER_V1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_ERROR_SOURCE_DESCRIPTOR { + pub Length: u32, + pub Version: u32, + pub Type: WHEA_ERROR_SOURCE_TYPE, + pub State: WHEA_ERROR_SOURCE_STATE, + pub MaxRawDataLength: u32, + pub NumRecordsToPreallocate: u32, + pub MaxSectionsPerRecord: u32, + pub ErrorSourceId: u32, + pub PlatformErrorSourceId: u32, + pub Flags: u32, + pub Info: WHEA_ERROR_SOURCE_DESCRIPTOR_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_ERROR_SOURCE_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_ERROR_SOURCE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WHEA_ERROR_SOURCE_DESCRIPTOR_0 { + pub XpfMceDescriptor: WHEA_XPF_MCE_DESCRIPTOR, + pub XpfCmcDescriptor: WHEA_XPF_CMC_DESCRIPTOR, + pub XpfNmiDescriptor: WHEA_XPF_NMI_DESCRIPTOR, + pub IpfMcaDescriptor: WHEA_IPF_MCA_DESCRIPTOR, + pub IpfCmcDescriptor: WHEA_IPF_CMC_DESCRIPTOR, + pub IpfCpeDescriptor: WHEA_IPF_CPE_DESCRIPTOR, + pub AerRootportDescriptor: WHEA_AER_ROOTPORT_DESCRIPTOR, + pub AerEndpointDescriptor: WHEA_AER_ENDPOINT_DESCRIPTOR, + pub AerBridgeDescriptor: WHEA_AER_BRIDGE_DESCRIPTOR, + pub GenErrDescriptor: WHEA_GENERIC_ERROR_DESCRIPTOR, + pub GenErrDescriptorV2: WHEA_GENERIC_ERROR_DESCRIPTOR_V2, + pub DeviceDriverDescriptor: WHEA_DEVICE_DRIVER_DESCRIPTOR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_ERROR_SOURCE_DESCRIPTOR_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_ERROR_SOURCE_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_GENERIC_ERROR_DESCRIPTOR { + pub Type: u16, + pub Reserved: u8, + pub Enabled: u8, + pub ErrStatusBlockLength: u32, + pub RelatedErrorSourceId: u32, + pub ErrStatusAddressSpaceID: u8, + pub ErrStatusAddressBitWidth: u8, + pub ErrStatusAddressBitOffset: u8, + pub ErrStatusAddressAccessSize: u8, + pub ErrStatusAddress: i64, + pub Notify: WHEA_NOTIFICATION_DESCRIPTOR, +} +impl ::core::marker::Copy for WHEA_GENERIC_ERROR_DESCRIPTOR {} +impl ::core::clone::Clone for WHEA_GENERIC_ERROR_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_GENERIC_ERROR_DESCRIPTOR_V2 { + pub Type: u16, + pub Reserved: u8, + pub Enabled: u8, + pub ErrStatusBlockLength: u32, + pub RelatedErrorSourceId: u32, + pub ErrStatusAddressSpaceID: u8, + pub ErrStatusAddressBitWidth: u8, + pub ErrStatusAddressBitOffset: u8, + pub ErrStatusAddressAccessSize: u8, + pub ErrStatusAddress: i64, + pub Notify: WHEA_NOTIFICATION_DESCRIPTOR, + pub ReadAckAddressSpaceID: u8, + pub ReadAckAddressBitWidth: u8, + pub ReadAckAddressBitOffset: u8, + pub ReadAckAddressAccessSize: u8, + pub ReadAckAddress: i64, + pub ReadAckPreserveMask: u64, + pub ReadAckWriteMask: u64, +} +impl ::core::marker::Copy for WHEA_GENERIC_ERROR_DESCRIPTOR_V2 {} +impl ::core::clone::Clone for WHEA_GENERIC_ERROR_DESCRIPTOR_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_IPF_CMC_DESCRIPTOR { + pub Type: u16, + pub Enabled: u8, + pub Reserved: u8, +} +impl ::core::marker::Copy for WHEA_IPF_CMC_DESCRIPTOR {} +impl ::core::clone::Clone for WHEA_IPF_CMC_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_IPF_CPE_DESCRIPTOR { + pub Type: u16, + pub Enabled: u8, + pub Reserved: u8, +} +impl ::core::marker::Copy for WHEA_IPF_CPE_DESCRIPTOR {} +impl ::core::clone::Clone for WHEA_IPF_CPE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_IPF_MCA_DESCRIPTOR { + pub Type: u16, + pub Enabled: u8, + pub Reserved: u8, +} +impl ::core::marker::Copy for WHEA_IPF_MCA_DESCRIPTOR {} +impl ::core::clone::Clone for WHEA_IPF_MCA_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_NOTIFICATION_DESCRIPTOR { + pub Type: u8, + pub Length: u8, + pub Flags: WHEA_NOTIFICATION_FLAGS, + pub u: WHEA_NOTIFICATION_DESCRIPTOR_0, +} +impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR {} +impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHEA_NOTIFICATION_DESCRIPTOR_0 { + pub Polled: WHEA_NOTIFICATION_DESCRIPTOR_0_4, + pub Interrupt: WHEA_NOTIFICATION_DESCRIPTOR_0_1, + pub LocalInterrupt: WHEA_NOTIFICATION_DESCRIPTOR_0_2, + pub Sci: WHEA_NOTIFICATION_DESCRIPTOR_0_5, + pub Nmi: WHEA_NOTIFICATION_DESCRIPTOR_0_3, + pub Sea: WHEA_NOTIFICATION_DESCRIPTOR_0_6, + pub Sei: WHEA_NOTIFICATION_DESCRIPTOR_0_7, + pub Gsiv: WHEA_NOTIFICATION_DESCRIPTOR_0_0, +} +impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0 {} +impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_0 { + pub PollInterval: u32, + pub Vector: u32, + pub SwitchToPollingThreshold: u32, + pub SwitchToPollingWindow: u32, + pub ErrorThreshold: u32, + pub ErrorThresholdWindow: u32, +} +impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_0 {} +impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_1 { + pub PollInterval: u32, + pub Vector: u32, + pub SwitchToPollingThreshold: u32, + pub SwitchToPollingWindow: u32, + pub ErrorThreshold: u32, + pub ErrorThresholdWindow: u32, +} +impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_1 {} +impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_2 { + pub PollInterval: u32, + pub Vector: u32, + pub SwitchToPollingThreshold: u32, + pub SwitchToPollingWindow: u32, + pub ErrorThreshold: u32, + pub ErrorThresholdWindow: u32, +} +impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_2 {} +impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_3 { + pub PollInterval: u32, + pub Vector: u32, + pub SwitchToPollingThreshold: u32, + pub SwitchToPollingWindow: u32, + pub ErrorThreshold: u32, + pub ErrorThresholdWindow: u32, +} +impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_3 {} +impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_4 { + pub PollInterval: u32, +} +impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_4 {} +impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_5 { + pub PollInterval: u32, + pub Vector: u32, + pub SwitchToPollingThreshold: u32, + pub SwitchToPollingWindow: u32, + pub ErrorThreshold: u32, + pub ErrorThresholdWindow: u32, +} +impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_5 {} +impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_6 { + pub PollInterval: u32, + pub Vector: u32, + pub SwitchToPollingThreshold: u32, + pub SwitchToPollingWindow: u32, + pub ErrorThreshold: u32, + pub ErrorThresholdWindow: u32, +} +impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_6 {} +impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_7 { + pub PollInterval: u32, + pub Vector: u32, + pub SwitchToPollingThreshold: u32, + pub SwitchToPollingWindow: u32, + pub ErrorThreshold: u32, + pub ErrorThresholdWindow: u32, +} +impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_7 {} +impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_NOTIFICATION_FLAGS { + pub Anonymous: WHEA_NOTIFICATION_FLAGS_0, + pub AsUSHORT: u16, +} +impl ::core::marker::Copy for WHEA_NOTIFICATION_FLAGS {} +impl ::core::clone::Clone for WHEA_NOTIFICATION_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_NOTIFICATION_FLAGS_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for WHEA_NOTIFICATION_FLAGS_0 {} +impl ::core::clone::Clone for WHEA_NOTIFICATION_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHEA_PCI_SLOT_NUMBER { + pub u: WHEA_PCI_SLOT_NUMBER_0, +} +impl ::core::marker::Copy for WHEA_PCI_SLOT_NUMBER {} +impl ::core::clone::Clone for WHEA_PCI_SLOT_NUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WHEA_PCI_SLOT_NUMBER_0 { + pub bits: WHEA_PCI_SLOT_NUMBER_0_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for WHEA_PCI_SLOT_NUMBER_0 {} +impl ::core::clone::Clone for WHEA_PCI_SLOT_NUMBER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WHEA_PCI_SLOT_NUMBER_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHEA_PCI_SLOT_NUMBER_0_0 {} +impl ::core::clone::Clone for WHEA_PCI_SLOT_NUMBER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_XPF_CMC_DESCRIPTOR { + pub Type: u16, + pub Enabled: super::super::super::Foundation::BOOLEAN, + pub NumberOfBanks: u8, + pub Reserved: u32, + pub Notify: WHEA_NOTIFICATION_DESCRIPTOR, + pub Banks: [WHEA_XPF_MC_BANK_DESCRIPTOR; 32], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_XPF_CMC_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_XPF_CMC_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_XPF_MCE_DESCRIPTOR { + pub Type: u16, + pub Enabled: u8, + pub NumberOfBanks: u8, + pub Flags: XPF_MCE_FLAGS, + pub MCG_Capability: u64, + pub MCG_GlobalControl: u64, + pub Banks: [WHEA_XPF_MC_BANK_DESCRIPTOR; 32], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_XPF_MCE_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_XPF_MCE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_XPF_MC_BANK_DESCRIPTOR { + pub BankNumber: u8, + pub ClearOnInitialization: super::super::super::Foundation::BOOLEAN, + pub StatusDataFormat: u8, + pub Flags: XPF_MC_BANK_FLAGS, + pub ControlMsr: u32, + pub StatusMsr: u32, + pub AddressMsr: u32, + pub MiscMsr: u32, + pub ControlData: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_XPF_MC_BANK_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_XPF_MC_BANK_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHEA_XPF_NMI_DESCRIPTOR { + pub Type: u16, + pub Enabled: super::super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHEA_XPF_NMI_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHEA_XPF_NMI_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WOW64_CONTEXT { + pub ContextFlags: WOW64_CONTEXT_FLAGS, + pub Dr0: u32, + pub Dr1: u32, + pub Dr2: u32, + pub Dr3: u32, + pub Dr6: u32, + pub Dr7: u32, + pub FloatSave: WOW64_FLOATING_SAVE_AREA, + pub SegGs: u32, + pub SegFs: u32, + pub SegEs: u32, + pub SegDs: u32, + pub Edi: u32, + pub Esi: u32, + pub Ebx: u32, + pub Edx: u32, + pub Ecx: u32, + pub Eax: u32, + pub Ebp: u32, + pub Eip: u32, + pub SegCs: u32, + pub EFlags: u32, + pub Esp: u32, + pub SegSs: u32, + pub ExtendedRegisters: [u8; 512], +} +impl ::core::marker::Copy for WOW64_CONTEXT {} +impl ::core::clone::Clone for WOW64_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WOW64_DESCRIPTOR_TABLE_ENTRY { + pub Selector: u32, + pub Descriptor: WOW64_LDT_ENTRY, +} +impl ::core::marker::Copy for WOW64_DESCRIPTOR_TABLE_ENTRY {} +impl ::core::clone::Clone for WOW64_DESCRIPTOR_TABLE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WOW64_FLOATING_SAVE_AREA { + pub ControlWord: u32, + pub StatusWord: u32, + pub TagWord: u32, + pub ErrorOffset: u32, + pub ErrorSelector: u32, + pub DataOffset: u32, + pub DataSelector: u32, + pub RegisterArea: [u8; 80], + pub Cr0NpxState: u32, +} +impl ::core::marker::Copy for WOW64_FLOATING_SAVE_AREA {} +impl ::core::clone::Clone for WOW64_FLOATING_SAVE_AREA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WOW64_LDT_ENTRY { + pub LimitLow: u16, + pub BaseLow: u16, + pub HighWord: WOW64_LDT_ENTRY_0, +} +impl ::core::marker::Copy for WOW64_LDT_ENTRY {} +impl ::core::clone::Clone for WOW64_LDT_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WOW64_LDT_ENTRY_0 { + pub Bytes: WOW64_LDT_ENTRY_0_1, + pub Bits: WOW64_LDT_ENTRY_0_0, +} +impl ::core::marker::Copy for WOW64_LDT_ENTRY_0 {} +impl ::core::clone::Clone for WOW64_LDT_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WOW64_LDT_ENTRY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WOW64_LDT_ENTRY_0_0 {} +impl ::core::clone::Clone for WOW64_LDT_ENTRY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WOW64_LDT_ENTRY_0_1 { + pub BaseMid: u8, + pub Flags1: u8, + pub Flags2: u8, + pub BaseHi: u8, +} +impl ::core::marker::Copy for WOW64_LDT_ENTRY_0_1 {} +impl ::core::clone::Clone for WOW64_LDT_ENTRY_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union XPF_MCE_FLAGS { + pub Anonymous: XPF_MCE_FLAGS_0, + pub AsULONG: u32, +} +impl ::core::marker::Copy for XPF_MCE_FLAGS {} +impl ::core::clone::Clone for XPF_MCE_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct XPF_MCE_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for XPF_MCE_FLAGS_0 {} +impl ::core::clone::Clone for XPF_MCE_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union XPF_MC_BANK_FLAGS { + pub Anonymous: XPF_MC_BANK_FLAGS_0, + pub AsUCHAR: u8, +} +impl ::core::marker::Copy for XPF_MC_BANK_FLAGS {} +impl ::core::clone::Clone for XPF_MC_BANK_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XPF_MC_BANK_FLAGS_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for XPF_MC_BANK_FLAGS_0 {} +impl ::core::clone::Clone for XPF_MC_BANK_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XSAVE_AREA { + pub LegacyState: XSAVE_FORMAT, + pub Header: XSAVE_AREA_HEADER, +} +impl ::core::marker::Copy for XSAVE_AREA {} +impl ::core::clone::Clone for XSAVE_AREA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XSAVE_AREA_HEADER { + pub Mask: u64, + pub CompactionMask: u64, + pub Reserved2: [u64; 6], +} +impl ::core::marker::Copy for XSAVE_AREA_HEADER {} +impl ::core::clone::Clone for XSAVE_AREA_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct XSAVE_FORMAT { + pub ControlWord: u16, + pub StatusWord: u16, + pub TagWord: u8, + pub Reserved1: u8, + pub ErrorOpcode: u16, + pub ErrorOffset: u32, + pub ErrorSelector: u16, + pub Reserved2: u16, + pub DataOffset: u32, + pub DataSelector: u16, + pub Reserved3: u16, + pub MxCsr: u32, + pub MxCsr_Mask: u32, + pub FloatRegisters: [M128A; 8], + pub XmmRegisters: [M128A; 16], + pub Reserved4: [u8; 96], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for XSAVE_FORMAT {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for XSAVE_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct XSAVE_FORMAT { + pub ControlWord: u16, + pub StatusWord: u16, + pub TagWord: u8, + pub Reserved1: u8, + pub ErrorOpcode: u16, + pub ErrorOffset: u32, + pub ErrorSelector: u16, + pub Reserved2: u16, + pub DataOffset: u32, + pub DataSelector: u16, + pub Reserved3: u16, + pub MxCsr: u32, + pub MxCsr_Mask: u32, + pub FloatRegisters: [M128A; 8], + pub XmmRegisters: [M128A; 8], + pub Reserved4: [u8; 224], +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for XSAVE_FORMAT {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for XSAVE_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XSTATE_CONFIGURATION { + pub EnabledFeatures: u64, + pub EnabledVolatileFeatures: u64, + pub Size: u32, + pub Anonymous: XSTATE_CONFIGURATION_0, + pub Features: [XSTATE_FEATURE; 64], + pub EnabledSupervisorFeatures: u64, + pub AlignedFeatures: u64, + pub AllFeatureSize: u32, + pub AllFeatures: [u32; 64], + pub EnabledUserVisibleSupervisorFeatures: u64, + pub ExtendedFeatureDisableFeatures: u64, + pub AllNonLargeFeatureSize: u32, + pub Spare: u32, +} +impl ::core::marker::Copy for XSTATE_CONFIGURATION {} +impl ::core::clone::Clone for XSTATE_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union XSTATE_CONFIGURATION_0 { + pub ControlFlags: u32, + pub Anonymous: XSTATE_CONFIGURATION_0_0, +} +impl ::core::marker::Copy for XSTATE_CONFIGURATION_0 {} +impl ::core::clone::Clone for XSTATE_CONFIGURATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XSTATE_CONFIGURATION_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for XSTATE_CONFIGURATION_0_0 {} +impl ::core::clone::Clone for XSTATE_CONFIGURATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct XSTATE_CONFIG_FEATURE_MSC_INFO { + pub SizeOfInfo: u32, + pub ContextSize: u32, + pub EnabledFeatures: u64, + pub Features: [XSTATE_FEATURE; 64], +} +impl ::core::marker::Copy for XSTATE_CONFIG_FEATURE_MSC_INFO {} +impl ::core::clone::Clone for XSTATE_CONFIG_FEATURE_MSC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct XSTATE_CONTEXT { + pub Mask: u64, + pub Length: u32, + pub Reserved1: u32, + pub Area: *mut XSAVE_AREA, + pub Buffer: *mut ::core::ffi::c_void, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for XSTATE_CONTEXT {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for XSTATE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct XSTATE_CONTEXT { + pub Mask: u64, + pub Length: u32, + pub Reserved1: u32, + pub Area: *mut XSAVE_AREA, + pub Reserved2: u32, + pub Buffer: *mut ::core::ffi::c_void, + pub Reserved3: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for XSTATE_CONTEXT {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for XSTATE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XSTATE_FEATURE { + pub Offset: u32, + pub Size: u32, +} +impl ::core::marker::Copy for XSTATE_FEATURE {} +impl ::core::clone::Clone for XSTATE_FEATURE { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DIGEST_FUNCTION = ::core::option::Option super::super::super::Foundation::BOOL>; +pub type LPCALL_BACK_USER_INTERRUPT_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub type LPTOP_LEVEL_EXCEPTION_FILTER = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Memory\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))] +pub type MINIDUMP_CALLBACK_ROUTINE = ::core::option::Option super::super::super::Foundation::BOOL>; +pub type PCOGETACTIVATIONSTATE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PCOGETCALLSTATE = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PDBGHELP_CREATE_USER_DUMP_CALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PENUMDIRTREE_CALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PENUMDIRTREE_CALLBACKW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub type PENUMLOADED_MODULES_CALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PENUMLOADED_MODULES_CALLBACK64 = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PENUMLOADED_MODULES_CALLBACKW64 = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PENUMSOURCEFILETOKENSCALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFINDFILEINPATHCALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFINDFILEINPATHCALLBACKW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFIND_DEBUG_FILE_CALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFIND_DEBUG_FILE_CALLBACKW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFIND_EXE_FILE_CALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFIND_EXE_FILE_CALLBACKW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub type PFUNCTION_TABLE_ACCESS_ROUTINE = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFUNCTION_TABLE_ACCESS_ROUTINE64 = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub type PGET_MODULE_BASE_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGET_MODULE_BASE_ROUTINE64 = ::core::option::Option u64>; +#[cfg(target_arch = "aarch64")] +pub type PGET_RUNTIME_FUNCTION_CALLBACK = ::core::option::Option *mut IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY>; +#[cfg(target_arch = "x86_64")] +pub type PGET_RUNTIME_FUNCTION_CALLBACK = ::core::option::Option *mut IMAGE_RUNTIME_FUNCTION_ENTRY>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGET_TARGET_ATTRIBUTE_VALUE64 = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIMAGEHLP_STATUS_ROUTINE = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIMAGEHLP_STATUS_ROUTINE32 = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIMAGEHLP_STATUS_ROUTINE64 = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub type PREAD_PROCESS_MEMORY_ROUTINE = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREAD_PROCESS_MEMORY_ROUTINE64 = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERBYINDEXPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERBYINDEXPROCA = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERBYINDEXPROCW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERCALLBACKPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERCLOSEPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERDELTANAME = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERDELTANAMEW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERGETINDEXSTRING = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERGETINDEXSTRINGW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERGETOPTIONDATAPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +pub type PSYMBOLSERVERGETOPTIONSPROC = ::core::option::Option usize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERGETSUPPLEMENT = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERGETSUPPLEMENTW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERGETVERSION = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERISSTORE = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERISSTOREW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERMESSAGEPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVEROPENPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERPINGPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERPINGPROCA = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERPINGPROCW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERPINGPROCWEX = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERPROCA = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERPROCW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERSETHTTPAUTHHEADER = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERSETOPTIONSPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERSETOPTIONSWPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERSTOREFILE = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERSTOREFILEW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERSTORESUPPLEMENT = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERSTORESUPPLEMENTW = ::core::option::Option super::super::super::Foundation::BOOL>; +pub type PSYMBOLSERVERVERSION = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOLSERVERWEXPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOL_FUNCENTRY_CALLBACK = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOL_FUNCENTRY_CALLBACK64 = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOL_REGISTERED_CALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYMBOL_REGISTERED_CALLBACK64 = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMERATESYMBOLS_CALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMERATESYMBOLS_CALLBACKW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMLINES_CALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMLINES_CALLBACKW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMMODULES_CALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMMODULES_CALLBACK64 = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMMODULES_CALLBACKW64 = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMPROCESSES_CALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMSOURCEFILES_CALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMSOURCEFILES_CALLBACKW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMSYMBOLS_CALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMSYMBOLS_CALLBACK64 = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMSYMBOLS_CALLBACK64W = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub type PSYM_ENUMSYMBOLS_CALLBACKW = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub type PTRANSLATE_ADDRESS_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PTRANSLATE_ADDRESS_ROUTINE64 = ::core::option::Option u64>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub type PVECTORED_EXCEPTION_HANDLER = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWAITCHAINCALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SYMADDSOURCESTREAM = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SYMADDSOURCESTREAMA = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WHEA_ERROR_SOURCE_CORRECT_DEVICE_DRIVER = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER = ::core::option::Option super::super::super::Foundation::NTSTATUS>; +pub type WHEA_ERROR_SOURCE_UNINITIALIZE_DEVICE_DRIVER = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Etw/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Etw/mod.rs new file mode 100644 index 000000000..efb643a56 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/Etw/mod.rs @@ -0,0 +1,3000 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseTrace(tracehandle : PROCESSTRACE_HANDLE) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ControlTraceA(tracehandle : CONTROLTRACE_HANDLE, instancename : ::windows_sys::core::PCSTR, properties : *mut EVENT_TRACE_PROPERTIES, controlcode : EVENT_TRACE_CONTROL) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ControlTraceW(tracehandle : CONTROLTRACE_HANDLE, instancename : ::windows_sys::core::PCWSTR, properties : *mut EVENT_TRACE_PROPERTIES, controlcode : EVENT_TRACE_CONTROL) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateTraceInstanceId(reghandle : super::super::super::Foundation:: HANDLE, instinfo : *mut EVENT_INSTANCE_INFO) -> super::super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("advapi32.dll" "system" fn CveEventWrite(cveid : ::windows_sys::core::PCWSTR, additionaldetails : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableTrace(enable : u32, enableflag : u32, enablelevel : u32, controlguid : *const ::windows_sys::core::GUID, tracehandle : CONTROLTRACE_HANDLE) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableTraceEx(providerid : *const ::windows_sys::core::GUID, sourceid : *const ::windows_sys::core::GUID, tracehandle : CONTROLTRACE_HANDLE, isenabled : u32, level : u8, matchanykeyword : u64, matchallkeyword : u64, enableproperty : u32, enablefilterdesc : *const EVENT_FILTER_DESCRIPTOR) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableTraceEx2(tracehandle : CONTROLTRACE_HANDLE, providerid : *const ::windows_sys::core::GUID, controlcode : u32, level : u8, matchanykeyword : u64, matchallkeyword : u64, timeout : u32, enableparameters : *const ENABLE_TRACE_PARAMETERS) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumerateTraceGuids(guidpropertiesarray : *mut *mut TRACE_GUID_PROPERTIES, propertyarraycount : u32, guidcount : *mut u32) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumerateTraceGuidsEx(tracequeryinfoclass : TRACE_QUERY_INFO_CLASS, inbuffer : *const ::core::ffi::c_void, inbuffersize : u32, outbuffer : *mut ::core::ffi::c_void, outbuffersize : u32, returnlength : *mut u32) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EventAccessControl(guid : *const ::windows_sys::core::GUID, operation : u32, sid : super::super::super::Foundation:: PSID, rights : u32, allowordeny : super::super::super::Foundation:: BOOLEAN) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn EventAccessQuery(guid : *const ::windows_sys::core::GUID, buffer : super::super::super::Security:: PSECURITY_DESCRIPTOR, buffersize : *mut u32) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn EventAccessRemove(guid : *const ::windows_sys::core::GUID) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn EventActivityIdControl(controlcode : u32, activityid : *mut ::windows_sys::core::GUID) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EventEnabled(reghandle : u64, eventdescriptor : *const EVENT_DESCRIPTOR) -> super::super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EventProviderEnabled(reghandle : u64, level : u8, keyword : u64) -> super::super::super::Foundation:: BOOLEAN); +::windows_targets::link!("advapi32.dll" "system" fn EventRegister(providerid : *const ::windows_sys::core::GUID, enablecallback : PENABLECALLBACK, callbackcontext : *const ::core::ffi::c_void, reghandle : *mut u64) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn EventSetInformation(reghandle : u64, informationclass : EVENT_INFO_CLASS, eventinformation : *const ::core::ffi::c_void, informationlength : u32) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn EventUnregister(reghandle : u64) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn EventWrite(reghandle : u64, eventdescriptor : *const EVENT_DESCRIPTOR, userdatacount : u32, userdata : *const EVENT_DATA_DESCRIPTOR) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn EventWriteEx(reghandle : u64, eventdescriptor : *const EVENT_DESCRIPTOR, filter : u64, flags : u32, activityid : *const ::windows_sys::core::GUID, relatedactivityid : *const ::windows_sys::core::GUID, userdatacount : u32, userdata : *const EVENT_DATA_DESCRIPTOR) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn EventWriteString(reghandle : u64, level : u8, keyword : u64, string : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn EventWriteTransfer(reghandle : u64, eventdescriptor : *const EVENT_DESCRIPTOR, activityid : *const ::windows_sys::core::GUID, relatedactivityid : *const ::windows_sys::core::GUID, userdatacount : u32, userdata : *const EVENT_DATA_DESCRIPTOR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlushTraceA(tracehandle : CONTROLTRACE_HANDLE, instancename : ::windows_sys::core::PCSTR, properties : *mut EVENT_TRACE_PROPERTIES) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlushTraceW(tracehandle : CONTROLTRACE_HANDLE, instancename : ::windows_sys::core::PCWSTR, properties : *mut EVENT_TRACE_PROPERTIES) -> super::super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("advapi32.dll" "system" fn GetTraceEnableFlags(tracehandle : u64) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn GetTraceEnableLevel(tracehandle : u64) -> u8); +::windows_targets::link!("advapi32.dll" "system" fn GetTraceLoggerHandle(buffer : *const ::core::ffi::c_void) -> u64); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] fn OpenTraceA(logfile : *mut EVENT_TRACE_LOGFILEA) -> PROCESSTRACE_HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] fn OpenTraceFromBufferStream(options : *const ETW_OPEN_TRACE_OPTIONS, buffercompletioncallback : PETW_BUFFER_COMPLETION_CALLBACK, buffercompletioncontext : *const ::core::ffi::c_void) -> u64); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] fn OpenTraceFromFile(logfilename : ::windows_sys::core::PCWSTR, options : *const ETW_OPEN_TRACE_OPTIONS, logfileheader : *mut TRACE_LOGFILE_HEADER) -> u64); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] fn OpenTraceFromRealTimeLogger(loggername : ::windows_sys::core::PCWSTR, options : *const ETW_OPEN_TRACE_OPTIONS, logfileheader : *mut TRACE_LOGFILE_HEADER) -> u64); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] fn OpenTraceFromRealTimeLoggerWithAllocationOptions(loggername : ::windows_sys::core::PCWSTR, options : *const ETW_OPEN_TRACE_OPTIONS, allocationsize : usize, memorypartitionhandle : super::super::super::Foundation:: HANDLE, logfileheader : *mut TRACE_LOGFILE_HEADER) -> u64); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] fn OpenTraceW(logfile : *mut EVENT_TRACE_LOGFILEW) -> PROCESSTRACE_HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ProcessTrace(handlearray : *const PROCESSTRACE_HANDLE, handlecount : u32, starttime : *const super::super::super::Foundation:: FILETIME, endtime : *const super::super::super::Foundation:: FILETIME) -> super::super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("advapi32.dll" "system" fn ProcessTraceAddBufferToBufferStream(tracehandle : u64, buffer : *const ETW_BUFFER_HEADER, buffersize : u32) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn ProcessTraceBufferDecrementReference(buffer : *const ETW_BUFFER_HEADER) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn ProcessTraceBufferIncrementReference(tracehandle : u64, buffer : *const ETW_BUFFER_HEADER) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryAllTracesA(propertyarray : *mut *mut EVENT_TRACE_PROPERTIES, propertyarraycount : u32, loggercount : *mut u32) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryAllTracesW(propertyarray : *mut *mut EVENT_TRACE_PROPERTIES, propertyarraycount : u32, loggercount : *mut u32) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryTraceA(tracehandle : CONTROLTRACE_HANDLE, instancename : ::windows_sys::core::PCSTR, properties : *mut EVENT_TRACE_PROPERTIES) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryTraceProcessingHandle(processinghandle : PROCESSTRACE_HANDLE, informationclass : ETW_PROCESS_HANDLE_INFO_TYPE, inbuffer : *const ::core::ffi::c_void, inbuffersize : u32, outbuffer : *mut ::core::ffi::c_void, outbuffersize : u32, returnlength : *mut u32) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryTraceW(tracehandle : CONTROLTRACE_HANDLE, instancename : ::windows_sys::core::PCWSTR, properties : *mut EVENT_TRACE_PROPERTIES) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterTraceGuidsA(requestaddress : WMIDPREQUEST, requestcontext : *const ::core::ffi::c_void, controlguid : *const ::windows_sys::core::GUID, guidcount : u32, traceguidreg : *const TRACE_GUID_REGISTRATION, mofimagepath : ::windows_sys::core::PCSTR, mofresourcename : ::windows_sys::core::PCSTR, registrationhandle : *mut u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterTraceGuidsW(requestaddress : WMIDPREQUEST, requestcontext : *const ::core::ffi::c_void, controlguid : *const ::windows_sys::core::GUID, guidcount : u32, traceguidreg : *const TRACE_GUID_REGISTRATION, mofimagepath : ::windows_sys::core::PCWSTR, mofresourcename : ::windows_sys::core::PCWSTR, registrationhandle : *mut u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveTraceCallback(pguid : *const ::windows_sys::core::GUID) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetTraceCallback(pguid : *const ::windows_sys::core::GUID, eventcallback : PEVENT_CALLBACK) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StartTraceA(tracehandle : *mut CONTROLTRACE_HANDLE, instancename : ::windows_sys::core::PCSTR, properties : *mut EVENT_TRACE_PROPERTIES) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StartTraceW(tracehandle : *mut CONTROLTRACE_HANDLE, instancename : ::windows_sys::core::PCWSTR, properties : *mut EVENT_TRACE_PROPERTIES) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StopTraceA(tracehandle : CONTROLTRACE_HANDLE, instancename : ::windows_sys::core::PCSTR, properties : *mut EVENT_TRACE_PROPERTIES) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StopTraceW(tracehandle : CONTROLTRACE_HANDLE, instancename : ::windows_sys::core::PCWSTR, properties : *mut EVENT_TRACE_PROPERTIES) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TdhAggregatePayloadFilters(payloadfiltercount : u32, payloadfilterptrs : *const *const ::core::ffi::c_void, eventmatchallflags : *const super::super::super::Foundation:: BOOLEAN, eventfilterdescriptor : *mut EVENT_FILTER_DESCRIPTOR) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhCleanupPayloadEventFilterDescriptor(eventfilterdescriptor : *mut EVENT_FILTER_DESCRIPTOR) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhCloseDecodingHandle(handle : TDH_HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TdhCreatePayloadFilter(providerguid : *const ::windows_sys::core::GUID, eventdescriptor : *const EVENT_DESCRIPTOR, eventmatchany : super::super::super::Foundation:: BOOLEAN, payloadpredicatecount : u32, payloadpredicates : *const PAYLOAD_FILTER_PREDICATE, payloadfilter : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhDeletePayloadFilter(payloadfilter : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhEnumerateManifestProviderEvents(providerguid : *const ::windows_sys::core::GUID, buffer : *mut PROVIDER_EVENT_INFO, buffersize : *mut u32) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhEnumerateProviderFieldInformation(pguid : *const ::windows_sys::core::GUID, eventfieldtype : EVENT_FIELD_TYPE, pbuffer : *mut PROVIDER_FIELD_INFOARRAY, pbuffersize : *mut u32) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhEnumerateProviderFilters(guid : *const ::windows_sys::core::GUID, tdhcontextcount : u32, tdhcontext : *const TDH_CONTEXT, filtercount : *mut u32, buffer : *mut *mut PROVIDER_FILTER_INFO, buffersize : *mut u32) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhEnumerateProviders(pbuffer : *mut PROVIDER_ENUMERATION_INFO, pbuffersize : *mut u32) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhEnumerateProvidersForDecodingSource(filter : DECODING_SOURCE, buffer : *mut PROVIDER_ENUMERATION_INFO, buffersize : u32, bufferrequired : *mut u32) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhFormatProperty(eventinfo : *const TRACE_EVENT_INFO, mapinfo : *const EVENT_MAP_INFO, pointersize : u32, propertyintype : u16, propertyouttype : u16, propertylength : u16, userdatalength : u16, userdata : *const u8, buffersize : *mut u32, buffer : ::windows_sys::core::PWSTR, userdataconsumed : *mut u16) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhGetDecodingParameter(handle : TDH_HANDLE, tdhcontext : *mut TDH_CONTEXT) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhGetEventInformation(event : *const EVENT_RECORD, tdhcontextcount : u32, tdhcontext : *const TDH_CONTEXT, buffer : *mut TRACE_EVENT_INFO, buffersize : *mut u32) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhGetEventMapInformation(pevent : *const EVENT_RECORD, pmapname : ::windows_sys::core::PCWSTR, pbuffer : *mut EVENT_MAP_INFO, pbuffersize : *mut u32) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhGetManifestEventInformation(providerguid : *const ::windows_sys::core::GUID, eventdescriptor : *const EVENT_DESCRIPTOR, buffer : *mut TRACE_EVENT_INFO, buffersize : *mut u32) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhGetProperty(pevent : *const EVENT_RECORD, tdhcontextcount : u32, ptdhcontext : *const TDH_CONTEXT, propertydatacount : u32, ppropertydata : *const PROPERTY_DATA_DESCRIPTOR, buffersize : u32, pbuffer : *mut u8) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhGetPropertySize(pevent : *const EVENT_RECORD, tdhcontextcount : u32, ptdhcontext : *const TDH_CONTEXT, propertydatacount : u32, ppropertydata : *const PROPERTY_DATA_DESCRIPTOR, ppropertysize : *mut u32) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhGetWppMessage(handle : TDH_HANDLE, eventrecord : *const EVENT_RECORD, buffersize : *mut u32, buffer : *mut u8) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhGetWppProperty(handle : TDH_HANDLE, eventrecord : *const EVENT_RECORD, propertyname : ::windows_sys::core::PCWSTR, buffersize : *mut u32, buffer : *mut u8) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhLoadManifest(manifest : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhLoadManifestFromBinary(binarypath : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhLoadManifestFromMemory(pdata : *const ::core::ffi::c_void, cbdata : u32) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhOpenDecodingHandle(handle : *mut TDH_HANDLE) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhQueryProviderFieldInformation(pguid : *const ::windows_sys::core::GUID, eventfieldvalue : u64, eventfieldtype : EVENT_FIELD_TYPE, pbuffer : *mut PROVIDER_FIELD_INFOARRAY, pbuffersize : *mut u32) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhSetDecodingParameter(handle : TDH_HANDLE, tdhcontext : *const TDH_CONTEXT) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhUnloadManifest(manifest : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("tdh.dll" "system" fn TdhUnloadManifestFromMemory(pdata : *const ::core::ffi::c_void, cbdata : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TraceEvent(tracehandle : u64, eventtrace : *const EVENT_TRACE_HEADER) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TraceEventInstance(tracehandle : u64, eventtrace : *const EVENT_INSTANCE_HEADER, instinfo : *const EVENT_INSTANCE_INFO, parentinstinfo : *const EVENT_INSTANCE_INFO) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TraceMessage(loggerhandle : u64, messageflags : TRACE_MESSAGE_FLAGS, messageguid : *const ::windows_sys::core::GUID, messagenumber : u16, ...) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TraceMessageVa(loggerhandle : u64, messageflags : TRACE_MESSAGE_FLAGS, messageguid : *const ::windows_sys::core::GUID, messagenumber : u16, messagearglist : *const i8) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TraceQueryInformation(sessionhandle : CONTROLTRACE_HANDLE, informationclass : TRACE_QUERY_INFO_CLASS, traceinformation : *mut ::core::ffi::c_void, informationlength : u32, returnlength : *mut u32) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TraceSetInformation(sessionhandle : CONTROLTRACE_HANDLE, informationclass : TRACE_QUERY_INFO_CLASS, traceinformation : *const ::core::ffi::c_void, informationlength : u32) -> super::super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("advapi32.dll" "system" fn UnregisterTraceGuids(registrationhandle : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdateTraceA(tracehandle : CONTROLTRACE_HANDLE, instancename : ::windows_sys::core::PCSTR, properties : *mut EVENT_TRACE_PROPERTIES) -> super::super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdateTraceW(tracehandle : CONTROLTRACE_HANDLE, instancename : ::windows_sys::core::PCWSTR, properties : *mut EVENT_TRACE_PROPERTIES) -> super::super::super::Foundation:: WIN32_ERROR); +pub type ITraceEvent = *mut ::core::ffi::c_void; +pub type ITraceEventCallback = *mut ::core::ffi::c_void; +pub type ITraceRelogger = *mut ::core::ffi::c_void; +pub const ALPCGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x45d8cccd_539f_4b72_a8b7_5c683142609a); +pub const CLSID_TraceRelogger: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b40792d_05ff_44c4_9058_f440c71f17d4); +pub const CTraceRelogger: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b40792d_05ff_44c4_9058_f440c71f17d4); +pub const DIAG_LOGGER_NAMEA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("DiagLog"); +pub const DIAG_LOGGER_NAMEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiagLog"); +pub const DecodingSourceMax: DECODING_SOURCE = 4i32; +pub const DecodingSourceTlg: DECODING_SOURCE = 3i32; +pub const DecodingSourceWPP: DECODING_SOURCE = 2i32; +pub const DecodingSourceWbem: DECODING_SOURCE = 1i32; +pub const DecodingSourceXMLFile: DECODING_SOURCE = 0i32; +pub const DefaultTraceSecurityGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0811c1af_7a07_4a06_82ed_869455cdf713); +pub const DiskIoGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d6fa8d4_fe05_11d0_9dda_00c04fd7ba7c); +pub const ENABLE_TRACE_PARAMETERS_VERSION: u32 = 1u32; +pub const ENABLE_TRACE_PARAMETERS_VERSION_2: u32 = 2u32; +pub const ETW_ASCIICHAR_TYPE_VALUE: u32 = 102u32; +pub const ETW_ASCIISTRING_TYPE_VALUE: u32 = 103u32; +pub const ETW_BOOLEAN_TYPE_VALUE: u32 = 14u32; +pub const ETW_BOOL_TYPE_VALUE: u32 = 108u32; +pub const ETW_BYTE_TYPE_VALUE: u32 = 4u32; +pub const ETW_CHAR_TYPE_VALUE: u32 = 11u32; +pub const ETW_COUNTED_ANSISTRING_TYPE_VALUE: u32 = 109u32; +pub const ETW_COUNTED_STRING_TYPE_VALUE: u32 = 104u32; +pub const ETW_DATETIME_TYPE_VALUE: u32 = 119u32; +pub const ETW_DECIMAL_TYPE_VALUE: u32 = 15u32; +pub const ETW_DOUBLE_TYPE_VALUE: u32 = 13u32; +pub const ETW_GUID_TYPE_VALUE: u32 = 101u32; +pub const ETW_HIDDEN_TYPE_VALUE: u32 = 107u32; +pub const ETW_INT16_TYPE_VALUE: u32 = 5u32; +pub const ETW_INT32_TYPE_VALUE: u32 = 7u32; +pub const ETW_INT64_TYPE_VALUE: u32 = 9u32; +pub const ETW_NON_NULL_TERMINATED_STRING_TYPE_VALUE: u32 = 112u32; +pub const ETW_NULL_TYPE_VALUE: u32 = 0u32; +pub const ETW_OBJECT_TYPE_VALUE: u32 = 1u32; +pub const ETW_POINTER_TYPE_VALUE: u32 = 105u32; +pub const ETW_PROCESS_TRACE_MODE_NONE: ETW_PROCESS_TRACE_MODES = 0i32; +pub const ETW_PROCESS_TRACE_MODE_RAW_TIMESTAMP: ETW_PROCESS_TRACE_MODES = 1i32; +pub const ETW_PTVECTOR_TYPE_VALUE: u32 = 117u32; +pub const ETW_REDUCED_ANSISTRING_TYPE_VALUE: u32 = 113u32; +pub const ETW_REDUCED_STRING_TYPE_VALUE: u32 = 114u32; +pub const ETW_REFRENCE_TYPE_VALUE: u32 = 120u32; +pub const ETW_REVERSED_COUNTED_ANSISTRING_TYPE_VALUE: u32 = 111u32; +pub const ETW_REVERSED_COUNTED_STRING_TYPE_VALUE: u32 = 110u32; +pub const ETW_SBYTE_TYPE_VALUE: u32 = 3u32; +pub const ETW_SID_TYPE_VALUE: u32 = 115u32; +pub const ETW_SINGLE_TYPE_VALUE: u32 = 12u32; +pub const ETW_SIZET_TYPE_VALUE: u32 = 106u32; +pub const ETW_STRING_TYPE_VALUE: u32 = 2u32; +pub const ETW_UINT16_TYPE_VALUE: u32 = 6u32; +pub const ETW_UINT32_TYPE_VALUE: u32 = 8u32; +pub const ETW_UINT64_TYPE_VALUE: u32 = 10u32; +pub const ETW_VARIANT_TYPE_VALUE: u32 = 116u32; +pub const ETW_WMITIME_TYPE_VALUE: u32 = 118u32; +pub const EVENTMAP_ENTRY_VALUETYPE_STRING: MAP_VALUETYPE = 1i32; +pub const EVENTMAP_ENTRY_VALUETYPE_ULONG: MAP_VALUETYPE = 0i32; +pub const EVENTMAP_INFO_FLAG_MANIFEST_BITMAP: MAP_FLAGS = 2i32; +pub const EVENTMAP_INFO_FLAG_MANIFEST_PATTERNMAP: MAP_FLAGS = 4i32; +pub const EVENTMAP_INFO_FLAG_MANIFEST_VALUEMAP: MAP_FLAGS = 1i32; +pub const EVENTMAP_INFO_FLAG_WBEM_BITMAP: MAP_FLAGS = 16i32; +pub const EVENTMAP_INFO_FLAG_WBEM_FLAG: MAP_FLAGS = 32i32; +pub const EVENTMAP_INFO_FLAG_WBEM_NO_MAP: MAP_FLAGS = 64i32; +pub const EVENTMAP_INFO_FLAG_WBEM_VALUEMAP: MAP_FLAGS = 8i32; +pub const EVENT_ACTIVITY_CTRL_CREATE_ID: u32 = 3u32; +pub const EVENT_ACTIVITY_CTRL_CREATE_SET_ID: u32 = 5u32; +pub const EVENT_ACTIVITY_CTRL_GET_ID: u32 = 1u32; +pub const EVENT_ACTIVITY_CTRL_GET_SET_ID: u32 = 4u32; +pub const EVENT_ACTIVITY_CTRL_SET_ID: u32 = 2u32; +pub const EVENT_CONTROL_CODE_CAPTURE_STATE: ENABLECALLBACK_ENABLED_STATE = 2u32; +pub const EVENT_CONTROL_CODE_DISABLE_PROVIDER: ENABLECALLBACK_ENABLED_STATE = 0u32; +pub const EVENT_CONTROL_CODE_ENABLE_PROVIDER: ENABLECALLBACK_ENABLED_STATE = 1u32; +pub const EVENT_DATA_DESCRIPTOR_TYPE_EVENT_METADATA: u32 = 1u32; +pub const EVENT_DATA_DESCRIPTOR_TYPE_NONE: u32 = 0u32; +pub const EVENT_DATA_DESCRIPTOR_TYPE_PROVIDER_METADATA: u32 = 2u32; +pub const EVENT_DATA_DESCRIPTOR_TYPE_TIMESTAMP_OVERRIDE: u32 = 3u32; +pub const EVENT_ENABLE_PROPERTY_ENABLE_KEYWORD_0: u32 = 64u32; +pub const EVENT_ENABLE_PROPERTY_ENABLE_SILOS: u32 = 1024u32; +pub const EVENT_ENABLE_PROPERTY_EVENT_KEY: u32 = 256u32; +pub const EVENT_ENABLE_PROPERTY_EXCLUDE_INPRIVATE: u32 = 512u32; +pub const EVENT_ENABLE_PROPERTY_IGNORE_KEYWORD_0: u32 = 16u32; +pub const EVENT_ENABLE_PROPERTY_PROCESS_START_KEY: u32 = 128u32; +pub const EVENT_ENABLE_PROPERTY_PROVIDER_GROUP: u32 = 32u32; +pub const EVENT_ENABLE_PROPERTY_PSM_KEY: u32 = 8u32; +pub const EVENT_ENABLE_PROPERTY_SID: u32 = 1u32; +pub const EVENT_ENABLE_PROPERTY_SOURCE_CONTAINER_TRACKING: u32 = 2048u32; +pub const EVENT_ENABLE_PROPERTY_STACK_TRACE: u32 = 4u32; +pub const EVENT_ENABLE_PROPERTY_TS_ID: u32 = 2u32; +pub const EVENT_FILTER_TYPE_CONTAINER: u32 = 2147516416u32; +pub const EVENT_FILTER_TYPE_EVENT_ID: u32 = 2147484160u32; +pub const EVENT_FILTER_TYPE_EVENT_NAME: u32 = 2147484672u32; +pub const EVENT_FILTER_TYPE_EXECUTABLE_NAME: u32 = 2147483656u32; +pub const EVENT_FILTER_TYPE_NONE: u32 = 0u32; +pub const EVENT_FILTER_TYPE_PACKAGE_APP_ID: u32 = 2147483680u32; +pub const EVENT_FILTER_TYPE_PACKAGE_ID: u32 = 2147483664u32; +pub const EVENT_FILTER_TYPE_PAYLOAD: u32 = 2147483904u32; +pub const EVENT_FILTER_TYPE_PID: u32 = 2147483652u32; +pub const EVENT_FILTER_TYPE_SCHEMATIZED: u32 = 2147483648u32; +pub const EVENT_FILTER_TYPE_STACKWALK: u32 = 2147487744u32; +pub const EVENT_FILTER_TYPE_STACKWALK_LEVEL_KW: u32 = 2147500032u32; +pub const EVENT_FILTER_TYPE_STACKWALK_NAME: u32 = 2147491840u32; +pub const EVENT_FILTER_TYPE_SYSTEM_FLAGS: u32 = 2147483649u32; +pub const EVENT_FILTER_TYPE_TRACEHANDLE: u32 = 2147483650u32; +pub const EVENT_HEADER_EXT_TYPE_CONTAINER_ID: u32 = 16u32; +pub const EVENT_HEADER_EXT_TYPE_CONTROL_GUID: u32 = 14u32; +pub const EVENT_HEADER_EXT_TYPE_EVENT_KEY: u32 = 10u32; +pub const EVENT_HEADER_EXT_TYPE_EVENT_SCHEMA_TL: u32 = 11u32; +pub const EVENT_HEADER_EXT_TYPE_INSTANCE_INFO: u32 = 4u32; +pub const EVENT_HEADER_EXT_TYPE_MAX: u32 = 19u32; +pub const EVENT_HEADER_EXT_TYPE_PEBS_INDEX: u32 = 7u32; +pub const EVENT_HEADER_EXT_TYPE_PMC_COUNTERS: u32 = 8u32; +pub const EVENT_HEADER_EXT_TYPE_PROCESS_START_KEY: u32 = 13u32; +pub const EVENT_HEADER_EXT_TYPE_PROV_TRAITS: u32 = 12u32; +pub const EVENT_HEADER_EXT_TYPE_PSM_KEY: u32 = 9u32; +pub const EVENT_HEADER_EXT_TYPE_QPC_DELTA: u32 = 15u32; +pub const EVENT_HEADER_EXT_TYPE_RELATED_ACTIVITYID: u32 = 1u32; +pub const EVENT_HEADER_EXT_TYPE_SID: u32 = 2u32; +pub const EVENT_HEADER_EXT_TYPE_STACK_KEY32: u32 = 17u32; +pub const EVENT_HEADER_EXT_TYPE_STACK_KEY64: u32 = 18u32; +pub const EVENT_HEADER_EXT_TYPE_STACK_TRACE32: u32 = 5u32; +pub const EVENT_HEADER_EXT_TYPE_STACK_TRACE64: u32 = 6u32; +pub const EVENT_HEADER_EXT_TYPE_TS_ID: u32 = 3u32; +pub const EVENT_HEADER_FLAG_32_BIT_HEADER: u32 = 32u32; +pub const EVENT_HEADER_FLAG_64_BIT_HEADER: u32 = 64u32; +pub const EVENT_HEADER_FLAG_CLASSIC_HEADER: u32 = 256u32; +pub const EVENT_HEADER_FLAG_DECODE_GUID: u32 = 128u32; +pub const EVENT_HEADER_FLAG_EXTENDED_INFO: u32 = 1u32; +pub const EVENT_HEADER_FLAG_NO_CPUTIME: u32 = 16u32; +pub const EVENT_HEADER_FLAG_PRIVATE_SESSION: u32 = 2u32; +pub const EVENT_HEADER_FLAG_PROCESSOR_INDEX: u32 = 512u32; +pub const EVENT_HEADER_FLAG_STRING_ONLY: u32 = 4u32; +pub const EVENT_HEADER_FLAG_TRACE_MESSAGE: u32 = 8u32; +pub const EVENT_HEADER_PROPERTY_FORWARDED_XML: u32 = 2u32; +pub const EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG: u32 = 4u32; +pub const EVENT_HEADER_PROPERTY_RELOGGABLE: u32 = 8u32; +pub const EVENT_HEADER_PROPERTY_XML: u32 = 1u32; +pub const EVENT_LOGGER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EventLog"); +pub const EVENT_LOGGER_NAMEA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("EventLog"); +pub const EVENT_LOGGER_NAMEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EventLog"); +pub const EVENT_MAX_LEVEL: u32 = 255u32; +pub const EVENT_MIN_LEVEL: u32 = 0u32; +pub const EVENT_TRACE_ADDTO_TRIAGE_DUMP: u32 = 2147483648u32; +pub const EVENT_TRACE_ADD_HEADER_MODE: u32 = 4096u32; +pub const EVENT_TRACE_BUFFERING_MODE: u32 = 1024u32; +pub const EVENT_TRACE_COMPRESSED_MODE: u32 = 67108864u32; +pub const EVENT_TRACE_CONTROL_CONVERT_TO_REALTIME: u32 = 5u32; +pub const EVENT_TRACE_CONTROL_FLUSH: EVENT_TRACE_CONTROL = 3u32; +pub const EVENT_TRACE_CONTROL_INCREMENT_FILE: u32 = 4u32; +pub const EVENT_TRACE_CONTROL_QUERY: EVENT_TRACE_CONTROL = 0u32; +pub const EVENT_TRACE_CONTROL_STOP: EVENT_TRACE_CONTROL = 1u32; +pub const EVENT_TRACE_CONTROL_UPDATE: EVENT_TRACE_CONTROL = 2u32; +pub const EVENT_TRACE_DELAY_OPEN_FILE_MODE: u32 = 512u32; +pub const EVENT_TRACE_FILE_MODE_APPEND: u32 = 4u32; +pub const EVENT_TRACE_FILE_MODE_CIRCULAR: u32 = 2u32; +pub const EVENT_TRACE_FILE_MODE_NEWFILE: u32 = 8u32; +pub const EVENT_TRACE_FILE_MODE_NONE: u32 = 0u32; +pub const EVENT_TRACE_FILE_MODE_PREALLOCATE: u32 = 32u32; +pub const EVENT_TRACE_FILE_MODE_SEQUENTIAL: u32 = 1u32; +pub const EVENT_TRACE_FLAG_ALPC: EVENT_TRACE_FLAG = 1048576u32; +pub const EVENT_TRACE_FLAG_CSWITCH: EVENT_TRACE_FLAG = 16u32; +pub const EVENT_TRACE_FLAG_DBGPRINT: EVENT_TRACE_FLAG = 262144u32; +pub const EVENT_TRACE_FLAG_DEBUG_EVENTS: u32 = 4194304u32; +pub const EVENT_TRACE_FLAG_DISK_FILE_IO: EVENT_TRACE_FLAG = 512u32; +pub const EVENT_TRACE_FLAG_DISK_IO: EVENT_TRACE_FLAG = 256u32; +pub const EVENT_TRACE_FLAG_DISK_IO_INIT: EVENT_TRACE_FLAG = 1024u32; +pub const EVENT_TRACE_FLAG_DISPATCHER: EVENT_TRACE_FLAG = 2048u32; +pub const EVENT_TRACE_FLAG_DPC: EVENT_TRACE_FLAG = 32u32; +pub const EVENT_TRACE_FLAG_DRIVER: EVENT_TRACE_FLAG = 8388608u32; +pub const EVENT_TRACE_FLAG_ENABLE_RESERVE: u32 = 536870912u32; +pub const EVENT_TRACE_FLAG_EXTENSION: u32 = 2147483648u32; +pub const EVENT_TRACE_FLAG_FILE_IO: EVENT_TRACE_FLAG = 33554432u32; +pub const EVENT_TRACE_FLAG_FILE_IO_INIT: EVENT_TRACE_FLAG = 67108864u32; +pub const EVENT_TRACE_FLAG_FORWARD_WMI: u32 = 1073741824u32; +pub const EVENT_TRACE_FLAG_IMAGE_LOAD: EVENT_TRACE_FLAG = 4u32; +pub const EVENT_TRACE_FLAG_INTERRUPT: EVENT_TRACE_FLAG = 64u32; +pub const EVENT_TRACE_FLAG_JOB: EVENT_TRACE_FLAG = 524288u32; +pub const EVENT_TRACE_FLAG_MEMORY_HARD_FAULTS: EVENT_TRACE_FLAG = 8192u32; +pub const EVENT_TRACE_FLAG_MEMORY_PAGE_FAULTS: EVENT_TRACE_FLAG = 4096u32; +pub const EVENT_TRACE_FLAG_NETWORK_TCPIP: EVENT_TRACE_FLAG = 65536u32; +pub const EVENT_TRACE_FLAG_NO_SYSCONFIG: EVENT_TRACE_FLAG = 268435456u32; +pub const EVENT_TRACE_FLAG_PROCESS: EVENT_TRACE_FLAG = 1u32; +pub const EVENT_TRACE_FLAG_PROCESS_COUNTERS: EVENT_TRACE_FLAG = 8u32; +pub const EVENT_TRACE_FLAG_PROFILE: EVENT_TRACE_FLAG = 16777216u32; +pub const EVENT_TRACE_FLAG_REGISTRY: EVENT_TRACE_FLAG = 131072u32; +pub const EVENT_TRACE_FLAG_SPLIT_IO: EVENT_TRACE_FLAG = 2097152u32; +pub const EVENT_TRACE_FLAG_SYSTEMCALL: EVENT_TRACE_FLAG = 128u32; +pub const EVENT_TRACE_FLAG_THREAD: EVENT_TRACE_FLAG = 2u32; +pub const EVENT_TRACE_FLAG_VAMAP: EVENT_TRACE_FLAG = 32768u32; +pub const EVENT_TRACE_FLAG_VIRTUAL_ALLOC: EVENT_TRACE_FLAG = 16384u32; +pub const EVENT_TRACE_INDEPENDENT_SESSION_MODE: u32 = 134217728u32; +pub const EVENT_TRACE_MODE_RESERVED: u32 = 1048576u32; +pub const EVENT_TRACE_NONSTOPPABLE_MODE: u32 = 64u32; +pub const EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING: u32 = 268435456u32; +pub const EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN: u32 = 8388608u32; +pub const EVENT_TRACE_PRIVATE_IN_PROC: u32 = 131072u32; +pub const EVENT_TRACE_PRIVATE_LOGGER_MODE: u32 = 2048u32; +pub const EVENT_TRACE_REAL_TIME_MODE: u32 = 256u32; +pub const EVENT_TRACE_RELOG_MODE: u32 = 65536u32; +pub const EVENT_TRACE_SECURE_MODE: u32 = 128u32; +pub const EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN: u32 = 4194304u32; +pub const EVENT_TRACE_SYSTEM_LOGGER_MODE: u32 = 33554432u32; +pub const EVENT_TRACE_TYPE_ACCEPT: u32 = 15u32; +pub const EVENT_TRACE_TYPE_ACKDUP: u32 = 22u32; +pub const EVENT_TRACE_TYPE_ACKFULL: u32 = 20u32; +pub const EVENT_TRACE_TYPE_ACKPART: u32 = 21u32; +pub const EVENT_TRACE_TYPE_CHECKPOINT: u32 = 8u32; +pub const EVENT_TRACE_TYPE_CONFIG: u32 = 11u32; +pub const EVENT_TRACE_TYPE_CONFIG_BOOT: u32 = 37u32; +pub const EVENT_TRACE_TYPE_CONFIG_CI_INFO: u32 = 29u32; +pub const EVENT_TRACE_TYPE_CONFIG_CPU: u32 = 10u32; +pub const EVENT_TRACE_TYPE_CONFIG_DEFRAG: u32 = 31u32; +pub const EVENT_TRACE_TYPE_CONFIG_DEVICEFAMILY: u32 = 33u32; +pub const EVENT_TRACE_TYPE_CONFIG_DPI: u32 = 28u32; +pub const EVENT_TRACE_TYPE_CONFIG_FLIGHTID: u32 = 34u32; +pub const EVENT_TRACE_TYPE_CONFIG_IDECHANNEL: u32 = 23u32; +pub const EVENT_TRACE_TYPE_CONFIG_IRQ: u32 = 21u32; +pub const EVENT_TRACE_TYPE_CONFIG_LOGICALDISK: u32 = 12u32; +pub const EVENT_TRACE_TYPE_CONFIG_MACHINEID: u32 = 30u32; +pub const EVENT_TRACE_TYPE_CONFIG_MOBILEPLATFORM: u32 = 32u32; +pub const EVENT_TRACE_TYPE_CONFIG_NETINFO: u32 = 17u32; +pub const EVENT_TRACE_TYPE_CONFIG_NIC: u32 = 13u32; +pub const EVENT_TRACE_TYPE_CONFIG_NUMANODE: u32 = 24u32; +pub const EVENT_TRACE_TYPE_CONFIG_OPTICALMEDIA: u32 = 18u32; +pub const EVENT_TRACE_TYPE_CONFIG_PHYSICALDISK: u32 = 11u32; +pub const EVENT_TRACE_TYPE_CONFIG_PHYSICALDISK_EX: u32 = 19u32; +pub const EVENT_TRACE_TYPE_CONFIG_PLATFORM: u32 = 25u32; +pub const EVENT_TRACE_TYPE_CONFIG_PNP: u32 = 22u32; +pub const EVENT_TRACE_TYPE_CONFIG_POWER: u32 = 16u32; +pub const EVENT_TRACE_TYPE_CONFIG_PROCESSOR: u32 = 35u32; +pub const EVENT_TRACE_TYPE_CONFIG_PROCESSORGROUP: u32 = 26u32; +pub const EVENT_TRACE_TYPE_CONFIG_PROCESSORNUMBER: u32 = 27u32; +pub const EVENT_TRACE_TYPE_CONFIG_SERVICES: u32 = 15u32; +pub const EVENT_TRACE_TYPE_CONFIG_VIDEO: u32 = 14u32; +pub const EVENT_TRACE_TYPE_CONFIG_VIRTUALIZATION: u32 = 36u32; +pub const EVENT_TRACE_TYPE_CONNECT: u32 = 12u32; +pub const EVENT_TRACE_TYPE_CONNFAIL: u32 = 17u32; +pub const EVENT_TRACE_TYPE_COPY_ARP: u32 = 19u32; +pub const EVENT_TRACE_TYPE_COPY_TCP: u32 = 18u32; +pub const EVENT_TRACE_TYPE_DBGID_RSDS: u32 = 64u32; +pub const EVENT_TRACE_TYPE_DC_END: u32 = 4u32; +pub const EVENT_TRACE_TYPE_DC_START: u32 = 3u32; +pub const EVENT_TRACE_TYPE_DEQUEUE: u32 = 7u32; +pub const EVENT_TRACE_TYPE_DISCONNECT: u32 = 13u32; +pub const EVENT_TRACE_TYPE_END: u32 = 2u32; +pub const EVENT_TRACE_TYPE_EXTENSION: u32 = 5u32; +pub const EVENT_TRACE_TYPE_FLT_POSTOP_COMPLETION: u32 = 99u32; +pub const EVENT_TRACE_TYPE_FLT_POSTOP_FAILURE: u32 = 101u32; +pub const EVENT_TRACE_TYPE_FLT_POSTOP_INIT: u32 = 97u32; +pub const EVENT_TRACE_TYPE_FLT_PREOP_COMPLETION: u32 = 98u32; +pub const EVENT_TRACE_TYPE_FLT_PREOP_FAILURE: u32 = 100u32; +pub const EVENT_TRACE_TYPE_FLT_PREOP_INIT: u32 = 96u32; +pub const EVENT_TRACE_TYPE_GUIDMAP: u32 = 10u32; +pub const EVENT_TRACE_TYPE_INFO: u32 = 0u32; +pub const EVENT_TRACE_TYPE_IO_FLUSH: u32 = 14u32; +pub const EVENT_TRACE_TYPE_IO_FLUSH_INIT: u32 = 15u32; +pub const EVENT_TRACE_TYPE_IO_READ: u32 = 10u32; +pub const EVENT_TRACE_TYPE_IO_READ_INIT: u32 = 12u32; +pub const EVENT_TRACE_TYPE_IO_REDIRECTED_INIT: u32 = 16u32; +pub const EVENT_TRACE_TYPE_IO_WRITE: u32 = 11u32; +pub const EVENT_TRACE_TYPE_IO_WRITE_INIT: u32 = 13u32; +pub const EVENT_TRACE_TYPE_LOAD: u32 = 10u32; +pub const EVENT_TRACE_TYPE_MM_AV: u32 = 15u32; +pub const EVENT_TRACE_TYPE_MM_COW: u32 = 12u32; +pub const EVENT_TRACE_TYPE_MM_DZF: u32 = 11u32; +pub const EVENT_TRACE_TYPE_MM_GPF: u32 = 13u32; +pub const EVENT_TRACE_TYPE_MM_HPF: u32 = 14u32; +pub const EVENT_TRACE_TYPE_MM_TF: u32 = 10u32; +pub const EVENT_TRACE_TYPE_OPTICAL_IO_FLUSH: u32 = 57u32; +pub const EVENT_TRACE_TYPE_OPTICAL_IO_FLUSH_INIT: u32 = 60u32; +pub const EVENT_TRACE_TYPE_OPTICAL_IO_READ: u32 = 55u32; +pub const EVENT_TRACE_TYPE_OPTICAL_IO_READ_INIT: u32 = 58u32; +pub const EVENT_TRACE_TYPE_OPTICAL_IO_WRITE: u32 = 56u32; +pub const EVENT_TRACE_TYPE_OPTICAL_IO_WRITE_INIT: u32 = 59u32; +pub const EVENT_TRACE_TYPE_RECEIVE: u32 = 11u32; +pub const EVENT_TRACE_TYPE_RECONNECT: u32 = 16u32; +pub const EVENT_TRACE_TYPE_REGCLOSE: u32 = 27u32; +pub const EVENT_TRACE_TYPE_REGCOMMIT: u32 = 30u32; +pub const EVENT_TRACE_TYPE_REGCREATE: u32 = 10u32; +pub const EVENT_TRACE_TYPE_REGDELETE: u32 = 12u32; +pub const EVENT_TRACE_TYPE_REGDELETEVALUE: u32 = 15u32; +pub const EVENT_TRACE_TYPE_REGENUMERATEKEY: u32 = 17u32; +pub const EVENT_TRACE_TYPE_REGENUMERATEVALUEKEY: u32 = 18u32; +pub const EVENT_TRACE_TYPE_REGFLUSH: u32 = 21u32; +pub const EVENT_TRACE_TYPE_REGKCBCREATE: u32 = 22u32; +pub const EVENT_TRACE_TYPE_REGKCBDELETE: u32 = 23u32; +pub const EVENT_TRACE_TYPE_REGKCBRUNDOWNBEGIN: u32 = 24u32; +pub const EVENT_TRACE_TYPE_REGKCBRUNDOWNEND: u32 = 25u32; +pub const EVENT_TRACE_TYPE_REGMOUNTHIVE: u32 = 33u32; +pub const EVENT_TRACE_TYPE_REGOPEN: u32 = 11u32; +pub const EVENT_TRACE_TYPE_REGPREPARE: u32 = 31u32; +pub const EVENT_TRACE_TYPE_REGQUERY: u32 = 13u32; +pub const EVENT_TRACE_TYPE_REGQUERYMULTIPLEVALUE: u32 = 19u32; +pub const EVENT_TRACE_TYPE_REGQUERYSECURITY: u32 = 29u32; +pub const EVENT_TRACE_TYPE_REGQUERYVALUE: u32 = 16u32; +pub const EVENT_TRACE_TYPE_REGROLLBACK: u32 = 32u32; +pub const EVENT_TRACE_TYPE_REGSETINFORMATION: u32 = 20u32; +pub const EVENT_TRACE_TYPE_REGSETSECURITY: u32 = 28u32; +pub const EVENT_TRACE_TYPE_REGSETVALUE: u32 = 14u32; +pub const EVENT_TRACE_TYPE_REGVIRTUALIZE: u32 = 26u32; +pub const EVENT_TRACE_TYPE_REPLY: u32 = 6u32; +pub const EVENT_TRACE_TYPE_RESUME: u32 = 7u32; +pub const EVENT_TRACE_TYPE_RETRANSMIT: u32 = 14u32; +pub const EVENT_TRACE_TYPE_SECURITY: u32 = 13u32; +pub const EVENT_TRACE_TYPE_SEND: u32 = 10u32; +pub const EVENT_TRACE_TYPE_SIDINFO: u32 = 12u32; +pub const EVENT_TRACE_TYPE_START: u32 = 1u32; +pub const EVENT_TRACE_TYPE_STOP: u32 = 2u32; +pub const EVENT_TRACE_TYPE_SUSPEND: u32 = 8u32; +pub const EVENT_TRACE_TYPE_TERMINATE: u32 = 11u32; +pub const EVENT_TRACE_TYPE_WINEVT_RECEIVE: u32 = 240u32; +pub const EVENT_TRACE_TYPE_WINEVT_SEND: u32 = 9u32; +pub const EVENT_TRACE_USE_GLOBAL_SEQUENCE: u32 = 16384u32; +pub const EVENT_TRACE_USE_KBYTES_FOR_SIZE: u32 = 8192u32; +pub const EVENT_TRACE_USE_LOCAL_SEQUENCE: u32 = 32768u32; +pub const EVENT_TRACE_USE_NOCPUTIME: u32 = 2u32; +pub const EVENT_TRACE_USE_PAGED_MEMORY: u32 = 16777216u32; +pub const EVENT_TRACE_USE_PROCTIME: u32 = 1u32; +pub const EVENT_WRITE_FLAG_INPRIVATE: u32 = 2u32; +pub const EVENT_WRITE_FLAG_NO_FAULTING: u32 = 1u32; +pub const EtwCompressionModeNoDisable: ETW_COMPRESSION_RESUMPTION_MODE = 1i32; +pub const EtwCompressionModeNoRestart: ETW_COMPRESSION_RESUMPTION_MODE = 2i32; +pub const EtwCompressionModeRestart: ETW_COMPRESSION_RESUMPTION_MODE = 0i32; +pub const EtwPmcOwnerFree: ETW_PMC_COUNTER_OWNER_TYPE = 0i32; +pub const EtwPmcOwnerTagged: ETW_PMC_COUNTER_OWNER_TYPE = 2i32; +pub const EtwPmcOwnerTaggedWithSource: ETW_PMC_COUNTER_OWNER_TYPE = 3i32; +pub const EtwPmcOwnerUntagged: ETW_PMC_COUNTER_OWNER_TYPE = 1i32; +pub const EtwProviderTraitDecodeGuid: ETW_PROVIDER_TRAIT_TYPE = 2i32; +pub const EtwProviderTraitTypeGroup: ETW_PROVIDER_TRAIT_TYPE = 1i32; +pub const EtwProviderTraitTypeMax: ETW_PROVIDER_TRAIT_TYPE = 3i32; +pub const EtwQueryLastDroppedTimes: ETW_PROCESS_HANDLE_INFO_TYPE = 3i32; +pub const EtwQueryLogFileHeader: ETW_PROCESS_HANDLE_INFO_TYPE = 4i32; +pub const EtwQueryPartitionInformation: ETW_PROCESS_HANDLE_INFO_TYPE = 1i32; +pub const EtwQueryPartitionInformationV2: ETW_PROCESS_HANDLE_INFO_TYPE = 2i32; +pub const EtwQueryProcessHandleInfoMax: ETW_PROCESS_HANDLE_INFO_TYPE = 5i32; +pub const EventChannelInformation: EVENT_FIELD_TYPE = 2i32; +pub const EventInformationMax: EVENT_FIELD_TYPE = 5i32; +pub const EventKeywordInformation: EVENT_FIELD_TYPE = 0i32; +pub const EventLevelInformation: EVENT_FIELD_TYPE = 1i32; +pub const EventOpcodeInformation: EVENT_FIELD_TYPE = 4i32; +pub const EventProviderBinaryTrackInfo: EVENT_INFO_CLASS = 0i32; +pub const EventProviderSetReserved1: EVENT_INFO_CLASS = 1i32; +pub const EventProviderSetTraits: EVENT_INFO_CLASS = 2i32; +pub const EventProviderUseDescriptorType: EVENT_INFO_CLASS = 3i32; +pub const EventSecurityAddDACL: EVENTSECURITYOPERATION = 2i32; +pub const EventSecurityAddSACL: EVENTSECURITYOPERATION = 3i32; +pub const EventSecurityMax: EVENTSECURITYOPERATION = 4i32; +pub const EventSecuritySetDACL: EVENTSECURITYOPERATION = 0i32; +pub const EventSecuritySetSACL: EVENTSECURITYOPERATION = 1i32; +pub const EventTaskInformation: EVENT_FIELD_TYPE = 3i32; +pub const EventTraceConfigGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x01853a65_418f_4f36_aefc_dc0f1d2fd235); +pub const EventTraceGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x68fdd900_4a3e_11d1_84f4_0000f80464e3); +pub const FileIoGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x90cbdc39_4a3e_11d1_84f4_0000f80464e3); +pub const GLOBAL_LOGGER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GlobalLogger"); +pub const GLOBAL_LOGGER_NAMEA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("GlobalLogger"); +pub const GLOBAL_LOGGER_NAMEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GlobalLogger"); +pub const ImageLoadGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2cb15d1d_5fc1_11d2_abe1_00a0c911f518); +pub const KERNEL_LOGGER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NT Kernel Logger"); +pub const KERNEL_LOGGER_NAMEA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("NT Kernel Logger"); +pub const KERNEL_LOGGER_NAMEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NT Kernel Logger"); +pub const MAX_EVENT_DATA_DESCRIPTORS: u32 = 128u32; +pub const MAX_EVENT_FILTERS_COUNT: u32 = 13u32; +pub const MAX_EVENT_FILTER_DATA_SIZE: u32 = 1024u32; +pub const MAX_EVENT_FILTER_EVENT_ID_COUNT: u32 = 64u32; +pub const MAX_EVENT_FILTER_EVENT_NAME_SIZE: u32 = 4096u32; +pub const MAX_EVENT_FILTER_PAYLOAD_SIZE: u32 = 4096u32; +pub const MAX_EVENT_FILTER_PID_COUNT: u32 = 8u32; +pub const MAX_MOF_FIELDS: u32 = 16u32; +pub const MAX_PAYLOAD_PREDICATES: u32 = 8u32; +pub const MaxEventInfo: EVENT_INFO_CLASS = 4i32; +pub const MaxTraceSetInfoClass: TRACE_QUERY_INFO_CLASS = 28i32; +pub const PAYLOADFIELD_BETWEEN: PAYLOAD_OPERATOR = 6i32; +pub const PAYLOADFIELD_CONTAINS: PAYLOAD_OPERATOR = 20i32; +pub const PAYLOADFIELD_DOESNTCONTAIN: PAYLOAD_OPERATOR = 21i32; +pub const PAYLOADFIELD_EQ: PAYLOAD_OPERATOR = 0i32; +pub const PAYLOADFIELD_GE: PAYLOAD_OPERATOR = 5i32; +pub const PAYLOADFIELD_GT: PAYLOAD_OPERATOR = 3i32; +pub const PAYLOADFIELD_INVALID: PAYLOAD_OPERATOR = 32i32; +pub const PAYLOADFIELD_IS: PAYLOAD_OPERATOR = 30i32; +pub const PAYLOADFIELD_ISNOT: PAYLOAD_OPERATOR = 31i32; +pub const PAYLOADFIELD_LE: PAYLOAD_OPERATOR = 2i32; +pub const PAYLOADFIELD_LT: PAYLOAD_OPERATOR = 4i32; +pub const PAYLOADFIELD_MODULO: PAYLOAD_OPERATOR = 8i32; +pub const PAYLOADFIELD_NE: PAYLOAD_OPERATOR = 1i32; +pub const PAYLOADFIELD_NOTBETWEEN: PAYLOAD_OPERATOR = 7i32; +pub const PROCESS_TRACE_MODE_EVENT_RECORD: u32 = 268435456u32; +pub const PROCESS_TRACE_MODE_RAW_TIMESTAMP: u32 = 4096u32; +pub const PROCESS_TRACE_MODE_REAL_TIME: u32 = 256u32; +pub const PageFaultGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d6fa8d3_fe05_11d0_9dda_00c04fd7ba7c); +pub const PerfInfoGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xce1dbfb4_137e_4da6_87b0_3f59aa102cbc); +pub const PrivateLoggerNotificationGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3595ab5c_042a_4c8e_b942_2d059bfeb1b1); +pub const ProcessGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d6fa8d0_fe05_11d0_9dda_00c04fd7ba7c); +pub const PropertyHasCustomSchema: PROPERTY_FLAGS = 128i32; +pub const PropertyHasTags: PROPERTY_FLAGS = 64i32; +pub const PropertyParamCount: PROPERTY_FLAGS = 4i32; +pub const PropertyParamFixedCount: PROPERTY_FLAGS = 32i32; +pub const PropertyParamFixedLength: PROPERTY_FLAGS = 16i32; +pub const PropertyParamLength: PROPERTY_FLAGS = 2i32; +pub const PropertyStruct: PROPERTY_FLAGS = 1i32; +pub const PropertyWBEMXmlFragment: PROPERTY_FLAGS = 8i32; +pub const RegistryGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae53722e_c863_11d2_8659_00c04fa321a1); +pub const SYSTEM_ALPC_KW_GENERAL: u64 = 1u64; +pub const SYSTEM_CONFIG_KW_GRAPHICS: u64 = 2u64; +pub const SYSTEM_CONFIG_KW_NETWORK: u64 = 8u64; +pub const SYSTEM_CONFIG_KW_OPTICAL: u64 = 64u64; +pub const SYSTEM_CONFIG_KW_PNP: u64 = 32u64; +pub const SYSTEM_CONFIG_KW_SERVICES: u64 = 16u64; +pub const SYSTEM_CONFIG_KW_STORAGE: u64 = 4u64; +pub const SYSTEM_CONFIG_KW_SYSTEM: u64 = 1u64; +pub const SYSTEM_CPU_KW_CACHE_FLUSH: u64 = 2u64; +pub const SYSTEM_CPU_KW_CONFIG: u64 = 1u64; +pub const SYSTEM_CPU_KW_SPEC_CONTROL: u64 = 4u64; +pub const SYSTEM_EVENT_TYPE: u32 = 1u32; +pub const SYSTEM_HYPERVISOR_KW_CALLOUTS: u64 = 2u64; +pub const SYSTEM_HYPERVISOR_KW_PROFILE: u64 = 1u64; +pub const SYSTEM_HYPERVISOR_KW_VTL_CHANGE: u64 = 4u64; +pub const SYSTEM_INTERRUPT_KW_CLOCK_INTERRUPT: u64 = 2u64; +pub const SYSTEM_INTERRUPT_KW_DPC: u64 = 4u64; +pub const SYSTEM_INTERRUPT_KW_DPC_QUEUE: u64 = 8u64; +pub const SYSTEM_INTERRUPT_KW_GENERAL: u64 = 1u64; +pub const SYSTEM_INTERRUPT_KW_IPI: u64 = 64u64; +pub const SYSTEM_INTERRUPT_KW_WDF_DPC: u64 = 16u64; +pub const SYSTEM_INTERRUPT_KW_WDF_INTERRUPT: u64 = 32u64; +pub const SYSTEM_IOFILTER_KW_FAILURE: u64 = 8u64; +pub const SYSTEM_IOFILTER_KW_FASTIO: u64 = 4u64; +pub const SYSTEM_IOFILTER_KW_GENERAL: u64 = 1u64; +pub const SYSTEM_IOFILTER_KW_INIT: u64 = 2u64; +pub const SYSTEM_IO_KW_CC: u64 = 256u64; +pub const SYSTEM_IO_KW_DISK: u64 = 1u64; +pub const SYSTEM_IO_KW_DISK_INIT: u64 = 2u64; +pub const SYSTEM_IO_KW_DRIVERS: u64 = 128u64; +pub const SYSTEM_IO_KW_FILE: u64 = 16u64; +pub const SYSTEM_IO_KW_FILENAME: u64 = 4u64; +pub const SYSTEM_IO_KW_NETWORK: u64 = 512u64; +pub const SYSTEM_IO_KW_OPTICAL: u64 = 32u64; +pub const SYSTEM_IO_KW_OPTICAL_INIT: u64 = 64u64; +pub const SYSTEM_IO_KW_SPLIT: u64 = 8u64; +pub const SYSTEM_LOCK_KW_SPINLOCK: u64 = 1u64; +pub const SYSTEM_LOCK_KW_SPINLOCK_COUNTERS: u64 = 2u64; +pub const SYSTEM_LOCK_KW_SYNC_OBJECTS: u64 = 4u64; +pub const SYSTEM_MEMORY_KW_ALL_FAULTS: u64 = 4u64; +pub const SYSTEM_MEMORY_KW_CONTMEM_GEN: u64 = 512u64; +pub const SYSTEM_MEMORY_KW_FOOTPRINT: u64 = 2048u64; +pub const SYSTEM_MEMORY_KW_GENERAL: u64 = 1u64; +pub const SYSTEM_MEMORY_KW_HARD_FAULTS: u64 = 2u64; +pub const SYSTEM_MEMORY_KW_HEAP: u64 = 128u64; +pub const SYSTEM_MEMORY_KW_MEMINFO: u64 = 16u64; +pub const SYSTEM_MEMORY_KW_MEMINFO_WS: u64 = 64u64; +pub const SYSTEM_MEMORY_KW_NONTRADEABLE: u64 = 32768u64; +pub const SYSTEM_MEMORY_KW_PFSECTION: u64 = 32u64; +pub const SYSTEM_MEMORY_KW_POOL: u64 = 8u64; +pub const SYSTEM_MEMORY_KW_REFSET: u64 = 8192u64; +pub const SYSTEM_MEMORY_KW_SESSION: u64 = 4096u64; +pub const SYSTEM_MEMORY_KW_VAMAP: u64 = 16384u64; +pub const SYSTEM_MEMORY_KW_VIRTUAL_ALLOC: u64 = 1024u64; +pub const SYSTEM_MEMORY_KW_WS: u64 = 256u64; +pub const SYSTEM_MEMORY_POOL_FILTER_ID: u32 = 1u32; +pub const SYSTEM_OBJECT_KW_GENERAL: u64 = 1u64; +pub const SYSTEM_OBJECT_KW_HANDLE: u64 = 2u64; +pub const SYSTEM_POWER_KW_GENERAL: u64 = 1u64; +pub const SYSTEM_POWER_KW_HIBER_RUNDOWN: u64 = 2u64; +pub const SYSTEM_POWER_KW_IDLE_SELECTION: u64 = 8u64; +pub const SYSTEM_POWER_KW_PPM_EXIT_LATENCY: u64 = 16u64; +pub const SYSTEM_POWER_KW_PROCESSOR_IDLE: u64 = 4u64; +pub const SYSTEM_PROCESS_KW_DBGPRINT: u64 = 256u64; +pub const SYSTEM_PROCESS_KW_DEBUG_EVENTS: u64 = 128u64; +pub const SYSTEM_PROCESS_KW_FREEZE: u64 = 4u64; +pub const SYSTEM_PROCESS_KW_GENERAL: u64 = 1u64; +pub const SYSTEM_PROCESS_KW_INSWAP: u64 = 2u64; +pub const SYSTEM_PROCESS_KW_JOB: u64 = 512u64; +pub const SYSTEM_PROCESS_KW_LOADER: u64 = 4096u64; +pub const SYSTEM_PROCESS_KW_PERF_COUNTER: u64 = 8u64; +pub const SYSTEM_PROCESS_KW_THREAD: u64 = 2048u64; +pub const SYSTEM_PROCESS_KW_WAKE_COUNTER: u64 = 16u64; +pub const SYSTEM_PROCESS_KW_WAKE_DROP: u64 = 32u64; +pub const SYSTEM_PROCESS_KW_WAKE_EVENT: u64 = 64u64; +pub const SYSTEM_PROCESS_KW_WORKER_THREAD: u64 = 1024u64; +pub const SYSTEM_PROFILE_KW_GENERAL: u64 = 1u64; +pub const SYSTEM_PROFILE_KW_PMC_PROFILE: u64 = 2u64; +pub const SYSTEM_REGISTRY_KW_GENERAL: u64 = 1u64; +pub const SYSTEM_REGISTRY_KW_HIVE: u64 = 2u64; +pub const SYSTEM_REGISTRY_KW_NOTIFICATION: u64 = 4u64; +pub const SYSTEM_SCHEDULER_KW_AFFINITY: u64 = 64u64; +pub const SYSTEM_SCHEDULER_KW_ANTI_STARVATION: u64 = 16u64; +pub const SYSTEM_SCHEDULER_KW_COMPACT_CSWITCH: u64 = 1024u64; +pub const SYSTEM_SCHEDULER_KW_CONTEXT_SWITCH: u64 = 512u64; +pub const SYSTEM_SCHEDULER_KW_DISPATCHER: u64 = 2u64; +pub const SYSTEM_SCHEDULER_KW_IDEAL_PROCESSOR: u64 = 256u64; +pub const SYSTEM_SCHEDULER_KW_KERNEL_QUEUE: u64 = 4u64; +pub const SYSTEM_SCHEDULER_KW_LOAD_BALANCER: u64 = 32u64; +pub const SYSTEM_SCHEDULER_KW_PRIORITY: u64 = 128u64; +pub const SYSTEM_SCHEDULER_KW_SHOULD_YIELD: u64 = 8u64; +pub const SYSTEM_SCHEDULER_KW_XSCHEDULER: u64 = 1u64; +pub const SYSTEM_SYSCALL_KW_GENERAL: u64 = 1u64; +pub const SYSTEM_TIMER_KW_CLOCK_TIMER: u64 = 2u64; +pub const SYSTEM_TIMER_KW_GENERAL: u64 = 1u64; +pub const SplitIoGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd837ca92_12b9_44a5_ad6a_3a65b3578aa8); +pub const SystemAlpcProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfcb9baaf_e529_4980_92e9_ced1a6aadfdf); +pub const SystemConfigProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfef3a8b6_318d_4b67_a96a_3b0f6b8f18fe); +pub const SystemCpuProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6c5265f_eae8_4650_aae4_9d48603d8510); +pub const SystemHypervisorProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbafa072a_918a_4bed_b622_bc152097098f); +pub const SystemInterruptProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd4bbee17_b545_4888_858b_744169015b25); +pub const SystemIoFilterProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfbd09363_9e22_4661_b8bf_e7a34b535b8c); +pub const SystemIoProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d5c43e3_0f1c_4202_b817_174c0070dc79); +pub const SystemLockProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x721ddfd3_dacc_4e1e_b26a_a2cb31d4705a); +pub const SystemMemoryProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x82958ca9_b6cd_47f8_a3a8_03ae85a4bc24); +pub const SystemObjectProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfebd7460_3d1d_47eb_af49_c9eeb1e146f2); +pub const SystemPowerProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc134884a_32d5_4488_80e5_14ed7abb8269); +pub const SystemProcessProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x151f55dc_467d_471f_83b5_5f889d46ff66); +pub const SystemProfileProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbfeb0324_1cee_496f_a409_2ac2b48a6322); +pub const SystemRegistryProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x16156bd9_fab4_4cfa_a232_89d1099058e3); +pub const SystemSchedulerProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x599a2a76_4d91_4910_9ac7_7d33f2e97a6c); +pub const SystemSyscallProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x434286f7_6f1b_45bb_b37e_95f623046c7c); +pub const SystemTimerProviderGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4f061568_e215_499f_ab2e_eda0ae890a5b); +pub const SystemTraceControlGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9e814aad_3204_11d2_9a82_006008a86939); +pub const TDH_CONTEXT_MAXIMUM: TDH_CONTEXT_TYPE = 5i32; +pub const TDH_CONTEXT_PDB_PATH: TDH_CONTEXT_TYPE = 4i32; +pub const TDH_CONTEXT_POINTERSIZE: TDH_CONTEXT_TYPE = 3i32; +pub const TDH_CONTEXT_WPP_GMT: TDH_CONTEXT_TYPE = 2i32; +pub const TDH_CONTEXT_WPP_TMFFILE: TDH_CONTEXT_TYPE = 0i32; +pub const TDH_CONTEXT_WPP_TMFSEARCHPATH: TDH_CONTEXT_TYPE = 1i32; +pub const TDH_INTYPE_ANSICHAR: _TDH_IN_TYPE = 307i32; +pub const TDH_INTYPE_ANSISTRING: _TDH_IN_TYPE = 2i32; +pub const TDH_INTYPE_BINARY: _TDH_IN_TYPE = 14i32; +pub const TDH_INTYPE_BOOLEAN: _TDH_IN_TYPE = 13i32; +pub const TDH_INTYPE_COUNTEDANSISTRING: _TDH_IN_TYPE = 301i32; +pub const TDH_INTYPE_COUNTEDSTRING: _TDH_IN_TYPE = 300i32; +pub const TDH_INTYPE_DOUBLE: _TDH_IN_TYPE = 12i32; +pub const TDH_INTYPE_FILETIME: _TDH_IN_TYPE = 17i32; +pub const TDH_INTYPE_FLOAT: _TDH_IN_TYPE = 11i32; +pub const TDH_INTYPE_GUID: _TDH_IN_TYPE = 15i32; +pub const TDH_INTYPE_HEXDUMP: _TDH_IN_TYPE = 309i32; +pub const TDH_INTYPE_HEXINT32: _TDH_IN_TYPE = 20i32; +pub const TDH_INTYPE_HEXINT64: _TDH_IN_TYPE = 21i32; +pub const TDH_INTYPE_INT16: _TDH_IN_TYPE = 5i32; +pub const TDH_INTYPE_INT32: _TDH_IN_TYPE = 7i32; +pub const TDH_INTYPE_INT64: _TDH_IN_TYPE = 9i32; +pub const TDH_INTYPE_INT8: _TDH_IN_TYPE = 3i32; +pub const TDH_INTYPE_MANIFEST_COUNTEDANSISTRING: _TDH_IN_TYPE = 23i32; +pub const TDH_INTYPE_MANIFEST_COUNTEDBINARY: _TDH_IN_TYPE = 25i32; +pub const TDH_INTYPE_MANIFEST_COUNTEDSTRING: _TDH_IN_TYPE = 22i32; +pub const TDH_INTYPE_NONNULLTERMINATEDANSISTRING: _TDH_IN_TYPE = 305i32; +pub const TDH_INTYPE_NONNULLTERMINATEDSTRING: _TDH_IN_TYPE = 304i32; +pub const TDH_INTYPE_NULL: _TDH_IN_TYPE = 0i32; +pub const TDH_INTYPE_POINTER: _TDH_IN_TYPE = 16i32; +pub const TDH_INTYPE_RESERVED24: _TDH_IN_TYPE = 24i32; +pub const TDH_INTYPE_REVERSEDCOUNTEDANSISTRING: _TDH_IN_TYPE = 303i32; +pub const TDH_INTYPE_REVERSEDCOUNTEDSTRING: _TDH_IN_TYPE = 302i32; +pub const TDH_INTYPE_SID: _TDH_IN_TYPE = 19i32; +pub const TDH_INTYPE_SIZET: _TDH_IN_TYPE = 308i32; +pub const TDH_INTYPE_SYSTEMTIME: _TDH_IN_TYPE = 18i32; +pub const TDH_INTYPE_UINT16: _TDH_IN_TYPE = 6i32; +pub const TDH_INTYPE_UINT32: _TDH_IN_TYPE = 8i32; +pub const TDH_INTYPE_UINT64: _TDH_IN_TYPE = 10i32; +pub const TDH_INTYPE_UINT8: _TDH_IN_TYPE = 4i32; +pub const TDH_INTYPE_UNICODECHAR: _TDH_IN_TYPE = 306i32; +pub const TDH_INTYPE_UNICODESTRING: _TDH_IN_TYPE = 1i32; +pub const TDH_INTYPE_WBEMSID: _TDH_IN_TYPE = 310i32; +pub const TDH_OUTTYPE_BOOLEAN: _TDH_OUT_TYPE = 13i32; +pub const TDH_OUTTYPE_BYTE: _TDH_OUT_TYPE = 3i32; +pub const TDH_OUTTYPE_CIMDATETIME: _TDH_OUT_TYPE = 26i32; +pub const TDH_OUTTYPE_CODE_POINTER: _TDH_OUT_TYPE = 37i32; +pub const TDH_OUTTYPE_CULTURE_INSENSITIVE_DATETIME: _TDH_OUT_TYPE = 33i32; +pub const TDH_OUTTYPE_DATETIME: _TDH_OUT_TYPE = 2i32; +pub const TDH_OUTTYPE_DATETIME_UTC: _TDH_OUT_TYPE = 38i32; +pub const TDH_OUTTYPE_DOUBLE: _TDH_OUT_TYPE = 12i32; +pub const TDH_OUTTYPE_ERRORCODE: _TDH_OUT_TYPE = 29i32; +pub const TDH_OUTTYPE_ETWTIME: _TDH_OUT_TYPE = 27i32; +pub const TDH_OUTTYPE_FLOAT: _TDH_OUT_TYPE = 11i32; +pub const TDH_OUTTYPE_GUID: _TDH_OUT_TYPE = 14i32; +pub const TDH_OUTTYPE_HEXBINARY: _TDH_OUT_TYPE = 15i32; +pub const TDH_OUTTYPE_HEXINT16: _TDH_OUT_TYPE = 17i32; +pub const TDH_OUTTYPE_HEXINT32: _TDH_OUT_TYPE = 18i32; +pub const TDH_OUTTYPE_HEXINT64: _TDH_OUT_TYPE = 19i32; +pub const TDH_OUTTYPE_HEXINT8: _TDH_OUT_TYPE = 16i32; +pub const TDH_OUTTYPE_HRESULT: _TDH_OUT_TYPE = 32i32; +pub const TDH_OUTTYPE_INT: _TDH_OUT_TYPE = 7i32; +pub const TDH_OUTTYPE_IPV4: _TDH_OUT_TYPE = 23i32; +pub const TDH_OUTTYPE_IPV6: _TDH_OUT_TYPE = 24i32; +pub const TDH_OUTTYPE_JSON: _TDH_OUT_TYPE = 34i32; +pub const TDH_OUTTYPE_LONG: _TDH_OUT_TYPE = 9i32; +pub const TDH_OUTTYPE_NOPRINT: _TDH_OUT_TYPE = 301i32; +pub const TDH_OUTTYPE_NTSTATUS: _TDH_OUT_TYPE = 31i32; +pub const TDH_OUTTYPE_NULL: _TDH_OUT_TYPE = 0i32; +pub const TDH_OUTTYPE_PID: _TDH_OUT_TYPE = 20i32; +pub const TDH_OUTTYPE_PKCS7_WITH_TYPE_INFO: _TDH_OUT_TYPE = 36i32; +pub const TDH_OUTTYPE_PORT: _TDH_OUT_TYPE = 22i32; +pub const TDH_OUTTYPE_REDUCEDSTRING: _TDH_OUT_TYPE = 300i32; +pub const TDH_OUTTYPE_SHORT: _TDH_OUT_TYPE = 5i32; +pub const TDH_OUTTYPE_SOCKETADDRESS: _TDH_OUT_TYPE = 25i32; +pub const TDH_OUTTYPE_STRING: _TDH_OUT_TYPE = 1i32; +pub const TDH_OUTTYPE_TID: _TDH_OUT_TYPE = 21i32; +pub const TDH_OUTTYPE_UNSIGNEDBYTE: _TDH_OUT_TYPE = 4i32; +pub const TDH_OUTTYPE_UNSIGNEDINT: _TDH_OUT_TYPE = 8i32; +pub const TDH_OUTTYPE_UNSIGNEDLONG: _TDH_OUT_TYPE = 10i32; +pub const TDH_OUTTYPE_UNSIGNEDSHORT: _TDH_OUT_TYPE = 6i32; +pub const TDH_OUTTYPE_UTF8: _TDH_OUT_TYPE = 35i32; +pub const TDH_OUTTYPE_WIN32ERROR: _TDH_OUT_TYPE = 30i32; +pub const TDH_OUTTYPE_XML: _TDH_OUT_TYPE = 28i32; +pub const TEMPLATE_CONTROL_GUID: TEMPLATE_FLAGS = 4i32; +pub const TEMPLATE_EVENT_DATA: TEMPLATE_FLAGS = 1i32; +pub const TEMPLATE_USER_DATA: TEMPLATE_FLAGS = 2i32; +pub const TRACELOG_ACCESS_KERNEL_LOGGER: u32 = 256u32; +pub const TRACELOG_ACCESS_REALTIME: u32 = 1024u32; +pub const TRACELOG_CREATE_INPROC: u32 = 512u32; +pub const TRACELOG_CREATE_ONDISK: u32 = 64u32; +pub const TRACELOG_CREATE_REALTIME: u32 = 32u32; +pub const TRACELOG_GUID_ENABLE: u32 = 128u32; +pub const TRACELOG_JOIN_GROUP: u32 = 4096u32; +pub const TRACELOG_LOG_EVENT: u32 = 512u32; +pub const TRACELOG_REGISTER_GUIDS: u32 = 2048u32; +pub const TRACE_HEADER_FLAG_LOG_WNODE: u32 = 262144u32; +pub const TRACE_HEADER_FLAG_TRACED_GUID: u32 = 131072u32; +pub const TRACE_HEADER_FLAG_USE_GUID_PTR: u32 = 524288u32; +pub const TRACE_HEADER_FLAG_USE_MOF_PTR: u32 = 1048576u32; +pub const TRACE_HEADER_FLAG_USE_TIMESTAMP: u32 = 512u32; +pub const TRACE_LEVEL_CRITICAL: u32 = 1u32; +pub const TRACE_LEVEL_ERROR: u32 = 2u32; +pub const TRACE_LEVEL_FATAL: u32 = 1u32; +pub const TRACE_LEVEL_INFORMATION: u32 = 4u32; +pub const TRACE_LEVEL_NONE: u32 = 0u32; +pub const TRACE_LEVEL_RESERVED6: u32 = 6u32; +pub const TRACE_LEVEL_RESERVED7: u32 = 7u32; +pub const TRACE_LEVEL_RESERVED8: u32 = 8u32; +pub const TRACE_LEVEL_RESERVED9: u32 = 9u32; +pub const TRACE_LEVEL_VERBOSE: u32 = 5u32; +pub const TRACE_LEVEL_WARNING: u32 = 3u32; +pub const TRACE_MESSAGE_COMPONENTID: TRACE_MESSAGE_FLAGS = 4u32; +pub const TRACE_MESSAGE_FLAG_MASK: u32 = 65535u32; +pub const TRACE_MESSAGE_GUID: TRACE_MESSAGE_FLAGS = 2u32; +pub const TRACE_MESSAGE_PERFORMANCE_TIMESTAMP: u32 = 16u32; +pub const TRACE_MESSAGE_POINTER32: u32 = 64u32; +pub const TRACE_MESSAGE_POINTER64: u32 = 128u32; +pub const TRACE_MESSAGE_SEQUENCE: TRACE_MESSAGE_FLAGS = 1u32; +pub const TRACE_MESSAGE_SYSTEMINFO: TRACE_MESSAGE_FLAGS = 32u32; +pub const TRACE_MESSAGE_TIMESTAMP: TRACE_MESSAGE_FLAGS = 8u32; +pub const TRACE_PROVIDER_FLAG_LEGACY: u32 = 1u32; +pub const TRACE_PROVIDER_FLAG_PRE_ENABLE: u32 = 2u32; +pub const TcpIpGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9a280ac0_c8e0_11d1_84e2_00c04fb998a2); +pub const ThreadGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d6fa8d1_fe05_11d0_9dda_00c04fd7ba7c); +pub const TraceDisallowListQuery: TRACE_QUERY_INFO_CLASS = 14i32; +pub const TraceGroupQueryInfo: TRACE_QUERY_INFO_CLASS = 13i32; +pub const TraceGroupQueryList: TRACE_QUERY_INFO_CLASS = 12i32; +pub const TraceGuidQueryInfo: TRACE_QUERY_INFO_CLASS = 1i32; +pub const TraceGuidQueryList: TRACE_QUERY_INFO_CLASS = 0i32; +pub const TraceGuidQueryProcess: TRACE_QUERY_INFO_CLASS = 2i32; +pub const TraceInfoReserved15: TRACE_QUERY_INFO_CLASS = 15i32; +pub const TraceLbrConfigurationInfo: TRACE_QUERY_INFO_CLASS = 20i32; +pub const TraceLbrEventListInfo: TRACE_QUERY_INFO_CLASS = 21i32; +pub const TraceMaxLoggersQuery: TRACE_QUERY_INFO_CLASS = 19i32; +pub const TraceMaxPmcCounterQuery: TRACE_QUERY_INFO_CLASS = 22i32; +pub const TracePeriodicCaptureStateInfo: TRACE_QUERY_INFO_CLASS = 17i32; +pub const TracePeriodicCaptureStateListInfo: TRACE_QUERY_INFO_CLASS = 16i32; +pub const TracePmcCounterListInfo: TRACE_QUERY_INFO_CLASS = 9i32; +pub const TracePmcCounterOwners: TRACE_QUERY_INFO_CLASS = 25i32; +pub const TracePmcEventListInfo: TRACE_QUERY_INFO_CLASS = 8i32; +pub const TracePmcSessionInformation: TRACE_QUERY_INFO_CLASS = 27i32; +pub const TraceProfileSourceConfigInfo: TRACE_QUERY_INFO_CLASS = 6i32; +pub const TraceProfileSourceListInfo: TRACE_QUERY_INFO_CLASS = 7i32; +pub const TraceProviderBinaryTracking: TRACE_QUERY_INFO_CLASS = 18i32; +pub const TraceSampledProfileIntervalInfo: TRACE_QUERY_INFO_CLASS = 5i32; +pub const TraceSetDisallowList: TRACE_QUERY_INFO_CLASS = 10i32; +pub const TraceStackCachingInfo: TRACE_QUERY_INFO_CLASS = 24i32; +pub const TraceStackTracingInfo: TRACE_QUERY_INFO_CLASS = 3i32; +pub const TraceStreamCount: TRACE_QUERY_INFO_CLASS = 23i32; +pub const TraceSystemTraceEnableFlagsInfo: TRACE_QUERY_INFO_CLASS = 4i32; +pub const TraceUnifiedStackCachingInfo: TRACE_QUERY_INFO_CLASS = 26i32; +pub const TraceVersionInfo: TRACE_QUERY_INFO_CLASS = 11i32; +pub const UdpIpGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbf3a50c5_a9c9_4988_a005_2df0b7c80f80); +pub const WMIGUID_EXECUTE: u32 = 16u32; +pub const WMIGUID_NOTIFICATION: u32 = 4u32; +pub const WMIGUID_QUERY: u32 = 1u32; +pub const WMIGUID_READ_DESCRIPTION: u32 = 8u32; +pub const WMIGUID_SET: u32 = 2u32; +pub const WMIREG_FLAG_EVENT_ONLY_GUID: u32 = 64u32; +pub const WMIREG_FLAG_EXPENSIVE: u32 = 1u32; +pub const WMIREG_FLAG_INSTANCE_BASENAME: u32 = 8u32; +pub const WMIREG_FLAG_INSTANCE_LIST: u32 = 4u32; +pub const WMIREG_FLAG_INSTANCE_PDO: u32 = 32u32; +pub const WMIREG_FLAG_REMOVE_GUID: u32 = 65536u32; +pub const WMIREG_FLAG_RESERVED1: u32 = 131072u32; +pub const WMIREG_FLAG_RESERVED2: u32 = 262144u32; +pub const WMIREG_FLAG_TRACED_GUID: u32 = 524288u32; +pub const WMIREG_FLAG_TRACE_CONTROL_GUID: u32 = 4096u32; +pub const WMI_CAPTURE_STATE: WMIDPREQUESTCODE = 10i32; +pub const WMI_DISABLE_COLLECTION: WMIDPREQUESTCODE = 7i32; +pub const WMI_DISABLE_EVENTS: WMIDPREQUESTCODE = 5i32; +pub const WMI_ENABLE_COLLECTION: WMIDPREQUESTCODE = 6i32; +pub const WMI_ENABLE_EVENTS: WMIDPREQUESTCODE = 4i32; +pub const WMI_EXECUTE_METHOD: WMIDPREQUESTCODE = 9i32; +pub const WMI_GET_ALL_DATA: WMIDPREQUESTCODE = 0i32; +pub const WMI_GET_SINGLE_INSTANCE: WMIDPREQUESTCODE = 1i32; +pub const WMI_GLOBAL_LOGGER_ID: u32 = 1u32; +pub const WMI_GUIDTYPE_DATA: u32 = 2u32; +pub const WMI_GUIDTYPE_EVENT: u32 = 3u32; +pub const WMI_GUIDTYPE_TRACE: u32 = 1u32; +pub const WMI_GUIDTYPE_TRACECONTROL: u32 = 0u32; +pub const WMI_REGINFO: WMIDPREQUESTCODE = 8i32; +pub const WMI_SET_SINGLE_INSTANCE: WMIDPREQUESTCODE = 2i32; +pub const WMI_SET_SINGLE_ITEM: WMIDPREQUESTCODE = 3i32; +pub const WNODE_FLAG_ALL_DATA: u32 = 1u32; +pub const WNODE_FLAG_ANSI_INSTANCENAMES: u32 = 16384u32; +pub const WNODE_FLAG_EVENT_ITEM: u32 = 8u32; +pub const WNODE_FLAG_EVENT_REFERENCE: u32 = 8192u32; +pub const WNODE_FLAG_FIXED_INSTANCE_SIZE: u32 = 16u32; +pub const WNODE_FLAG_INSTANCES_SAME: u32 = 64u32; +pub const WNODE_FLAG_INTERNAL: u32 = 256u32; +pub const WNODE_FLAG_LOG_WNODE: u32 = 262144u32; +pub const WNODE_FLAG_METHOD_ITEM: u32 = 32768u32; +pub const WNODE_FLAG_NO_HEADER: u32 = 2097152u32; +pub const WNODE_FLAG_PDO_INSTANCE_NAMES: u32 = 65536u32; +pub const WNODE_FLAG_PERSIST_EVENT: u32 = 1024u32; +pub const WNODE_FLAG_SEND_DATA_BLOCK: u32 = 4194304u32; +pub const WNODE_FLAG_SEVERITY_MASK: u32 = 4278190080u32; +pub const WNODE_FLAG_SINGLE_INSTANCE: u32 = 2u32; +pub const WNODE_FLAG_SINGLE_ITEM: u32 = 4u32; +pub const WNODE_FLAG_STATIC_INSTANCE_NAMES: u32 = 128u32; +pub const WNODE_FLAG_TOO_SMALL: u32 = 32u32; +pub const WNODE_FLAG_TRACED_GUID: u32 = 131072u32; +pub const WNODE_FLAG_USE_GUID_PTR: u32 = 524288u32; +pub const WNODE_FLAG_USE_MOF_PTR: u32 = 1048576u32; +pub const WNODE_FLAG_USE_TIMESTAMP: u32 = 512u32; +pub const WNODE_FLAG_VERSIONED_PROPERTIES: u32 = 8388608u32; +pub type DECODING_SOURCE = i32; +pub type ENABLECALLBACK_ENABLED_STATE = u32; +pub type ETW_COMPRESSION_RESUMPTION_MODE = i32; +pub type ETW_PMC_COUNTER_OWNER_TYPE = i32; +pub type ETW_PROCESS_HANDLE_INFO_TYPE = i32; +pub type ETW_PROCESS_TRACE_MODES = i32; +pub type ETW_PROVIDER_TRAIT_TYPE = i32; +pub type EVENTSECURITYOPERATION = i32; +pub type EVENT_FIELD_TYPE = i32; +pub type EVENT_INFO_CLASS = i32; +pub type EVENT_TRACE_CONTROL = u32; +pub type EVENT_TRACE_FLAG = u32; +pub type MAP_FLAGS = i32; +pub type MAP_VALUETYPE = i32; +pub type PAYLOAD_OPERATOR = i32; +pub type PROPERTY_FLAGS = i32; +pub type TDH_CONTEXT_TYPE = i32; +pub type TEMPLATE_FLAGS = i32; +pub type TRACE_MESSAGE_FLAGS = u32; +pub type TRACE_QUERY_INFO_CLASS = i32; +pub type WMIDPREQUESTCODE = i32; +pub type _TDH_IN_TYPE = i32; +pub type _TDH_OUT_TYPE = i32; +#[repr(C)] +pub struct CLASSIC_EVENT_ID { + pub EventGuid: ::windows_sys::core::GUID, + pub Type: u8, + pub Reserved: [u8; 7], +} +impl ::core::marker::Copy for CLASSIC_EVENT_ID {} +impl ::core::clone::Clone for CLASSIC_EVENT_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONTROLTRACE_HANDLE { + pub Value: u64, +} +impl ::core::marker::Copy for CONTROLTRACE_HANDLE {} +impl ::core::clone::Clone for CONTROLTRACE_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENABLE_TRACE_PARAMETERS { + pub Version: u32, + pub EnableProperty: u32, + pub ControlFlags: u32, + pub SourceId: ::windows_sys::core::GUID, + pub EnableFilterDesc: *mut EVENT_FILTER_DESCRIPTOR, + pub FilterDescCount: u32, +} +impl ::core::marker::Copy for ENABLE_TRACE_PARAMETERS {} +impl ::core::clone::Clone for ENABLE_TRACE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENABLE_TRACE_PARAMETERS_V1 { + pub Version: u32, + pub EnableProperty: u32, + pub ControlFlags: u32, + pub SourceId: ::windows_sys::core::GUID, + pub EnableFilterDesc: *mut EVENT_FILTER_DESCRIPTOR, +} +impl ::core::marker::Copy for ENABLE_TRACE_PARAMETERS_V1 {} +impl ::core::clone::Clone for ENABLE_TRACE_PARAMETERS_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct ETW_BUFFER_CALLBACK_INFORMATION { + pub TraceHandle: u64, + pub LogfileHeader: *const TRACE_LOGFILE_HEADER, + pub BuffersRead: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for ETW_BUFFER_CALLBACK_INFORMATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for ETW_BUFFER_CALLBACK_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ETW_BUFFER_CONTEXT { + pub Anonymous: ETW_BUFFER_CONTEXT_0, + pub LoggerId: u16, +} +impl ::core::marker::Copy for ETW_BUFFER_CONTEXT {} +impl ::core::clone::Clone for ETW_BUFFER_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union ETW_BUFFER_CONTEXT_0 { + pub Anonymous: ETW_BUFFER_CONTEXT_0_0, + pub ProcessorIndex: u16, +} +impl ::core::marker::Copy for ETW_BUFFER_CONTEXT_0 {} +impl ::core::clone::Clone for ETW_BUFFER_CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ETW_BUFFER_CONTEXT_0_0 { + pub ProcessorNumber: u8, + pub Alignment: u8, +} +impl ::core::marker::Copy for ETW_BUFFER_CONTEXT_0_0 {} +impl ::core::clone::Clone for ETW_BUFFER_CONTEXT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ETW_BUFFER_HEADER { + pub Reserved1: [u32; 4], + pub TimeStamp: i64, + pub Reserved2: [u32; 4], + pub ClientContext: ETW_BUFFER_CONTEXT, + pub Reserved3: u32, + pub FilledBytes: u32, + pub Reserved4: [u32; 5], +} +impl ::core::marker::Copy for ETW_BUFFER_HEADER {} +impl ::core::clone::Clone for ETW_BUFFER_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct ETW_OPEN_TRACE_OPTIONS { + pub ProcessTraceModes: ETW_PROCESS_TRACE_MODES, + pub EventCallback: PEVENT_RECORD_CALLBACK, + pub EventCallbackContext: *mut ::core::ffi::c_void, + pub BufferCallback: PETW_BUFFER_CALLBACK, + pub BufferCallbackContext: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for ETW_OPEN_TRACE_OPTIONS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for ETW_OPEN_TRACE_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ETW_PMC_COUNTER_OWNER { + pub OwnerType: ETW_PMC_COUNTER_OWNER_TYPE, + pub ProfileSource: u32, + pub OwnerTag: u32, +} +impl ::core::marker::Copy for ETW_PMC_COUNTER_OWNER {} +impl ::core::clone::Clone for ETW_PMC_COUNTER_OWNER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ETW_PMC_COUNTER_OWNERSHIP_STATUS { + pub ProcessorNumber: u32, + pub NumberOfCounters: u32, + pub CounterOwners: [ETW_PMC_COUNTER_OWNER; 1], +} +impl ::core::marker::Copy for ETW_PMC_COUNTER_OWNERSHIP_STATUS {} +impl ::core::clone::Clone for ETW_PMC_COUNTER_OWNERSHIP_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ETW_PMC_SESSION_INFO { + pub NextEntryOffset: u32, + pub LoggerId: u16, + pub Reserved: u16, + pub ProfileSourceCount: u32, + pub HookIdCount: u32, +} +impl ::core::marker::Copy for ETW_PMC_SESSION_INFO {} +impl ::core::clone::Clone for ETW_PMC_SESSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ETW_TRACE_PARTITION_INFORMATION { + pub PartitionId: ::windows_sys::core::GUID, + pub ParentId: ::windows_sys::core::GUID, + pub QpcOffsetFromRoot: i64, + pub PartitionType: u32, +} +impl ::core::marker::Copy for ETW_TRACE_PARTITION_INFORMATION {} +impl ::core::clone::Clone for ETW_TRACE_PARTITION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ETW_TRACE_PARTITION_INFORMATION_V2 { + pub QpcOffsetFromRoot: i64, + pub PartitionType: u32, + pub PartitionId: ::windows_sys::core::PWSTR, + pub ParentId: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for ETW_TRACE_PARTITION_INFORMATION_V2 {} +impl ::core::clone::Clone for ETW_TRACE_PARTITION_INFORMATION_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_DATA_DESCRIPTOR { + pub Ptr: u64, + pub Size: u32, + pub Anonymous: EVENT_DATA_DESCRIPTOR_0, +} +impl ::core::marker::Copy for EVENT_DATA_DESCRIPTOR {} +impl ::core::clone::Clone for EVENT_DATA_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_DATA_DESCRIPTOR_0 { + pub Reserved: u32, + pub Anonymous: EVENT_DATA_DESCRIPTOR_0_0, +} +impl ::core::marker::Copy for EVENT_DATA_DESCRIPTOR_0 {} +impl ::core::clone::Clone for EVENT_DATA_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_DATA_DESCRIPTOR_0_0 { + pub Type: u8, + pub Reserved1: u8, + pub Reserved2: u16, +} +impl ::core::marker::Copy for EVENT_DATA_DESCRIPTOR_0_0 {} +impl ::core::clone::Clone for EVENT_DATA_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_DESCRIPTOR { + pub Id: u16, + pub Version: u8, + pub Channel: u8, + pub Level: u8, + pub Opcode: u8, + pub Task: u16, + pub Keyword: u64, +} +impl ::core::marker::Copy for EVENT_DESCRIPTOR {} +impl ::core::clone::Clone for EVENT_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_EXTENDED_ITEM_EVENT_KEY { + pub Key: u64, +} +impl ::core::marker::Copy for EVENT_EXTENDED_ITEM_EVENT_KEY {} +impl ::core::clone::Clone for EVENT_EXTENDED_ITEM_EVENT_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_EXTENDED_ITEM_INSTANCE { + pub InstanceId: u32, + pub ParentInstanceId: u32, + pub ParentGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for EVENT_EXTENDED_ITEM_INSTANCE {} +impl ::core::clone::Clone for EVENT_EXTENDED_ITEM_INSTANCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_EXTENDED_ITEM_PEBS_INDEX { + pub PebsIndex: u64, +} +impl ::core::marker::Copy for EVENT_EXTENDED_ITEM_PEBS_INDEX {} +impl ::core::clone::Clone for EVENT_EXTENDED_ITEM_PEBS_INDEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_EXTENDED_ITEM_PMC_COUNTERS { + pub Counter: [u64; 1], +} +impl ::core::marker::Copy for EVENT_EXTENDED_ITEM_PMC_COUNTERS {} +impl ::core::clone::Clone for EVENT_EXTENDED_ITEM_PMC_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_EXTENDED_ITEM_PROCESS_START_KEY { + pub ProcessStartKey: u64, +} +impl ::core::marker::Copy for EVENT_EXTENDED_ITEM_PROCESS_START_KEY {} +impl ::core::clone::Clone for EVENT_EXTENDED_ITEM_PROCESS_START_KEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_EXTENDED_ITEM_RELATED_ACTIVITYID { + pub RelatedActivityId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for EVENT_EXTENDED_ITEM_RELATED_ACTIVITYID {} +impl ::core::clone::Clone for EVENT_EXTENDED_ITEM_RELATED_ACTIVITYID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_EXTENDED_ITEM_STACK_KEY32 { + pub MatchId: u64, + pub StackKey: u32, + pub Padding: u32, +} +impl ::core::marker::Copy for EVENT_EXTENDED_ITEM_STACK_KEY32 {} +impl ::core::clone::Clone for EVENT_EXTENDED_ITEM_STACK_KEY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_EXTENDED_ITEM_STACK_KEY64 { + pub MatchId: u64, + pub StackKey: u64, +} +impl ::core::marker::Copy for EVENT_EXTENDED_ITEM_STACK_KEY64 {} +impl ::core::clone::Clone for EVENT_EXTENDED_ITEM_STACK_KEY64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_EXTENDED_ITEM_STACK_TRACE32 { + pub MatchId: u64, + pub Address: [u32; 1], +} +impl ::core::marker::Copy for EVENT_EXTENDED_ITEM_STACK_TRACE32 {} +impl ::core::clone::Clone for EVENT_EXTENDED_ITEM_STACK_TRACE32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_EXTENDED_ITEM_STACK_TRACE64 { + pub MatchId: u64, + pub Address: [u64; 1], +} +impl ::core::marker::Copy for EVENT_EXTENDED_ITEM_STACK_TRACE64 {} +impl ::core::clone::Clone for EVENT_EXTENDED_ITEM_STACK_TRACE64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_EXTENDED_ITEM_TS_ID { + pub SessionId: u32, +} +impl ::core::marker::Copy for EVENT_EXTENDED_ITEM_TS_ID {} +impl ::core::clone::Clone for EVENT_EXTENDED_ITEM_TS_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_FILTER_DESCRIPTOR { + pub Ptr: u64, + pub Size: u32, + pub Type: u32, +} +impl ::core::marker::Copy for EVENT_FILTER_DESCRIPTOR {} +impl ::core::clone::Clone for EVENT_FILTER_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EVENT_FILTER_EVENT_ID { + pub FilterIn: super::super::super::Foundation::BOOLEAN, + pub Reserved: u8, + pub Count: u16, + pub Events: [u16; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVENT_FILTER_EVENT_ID {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVENT_FILTER_EVENT_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EVENT_FILTER_EVENT_NAME { + pub MatchAnyKeyword: u64, + pub MatchAllKeyword: u64, + pub Level: u8, + pub FilterIn: super::super::super::Foundation::BOOLEAN, + pub NameCount: u16, + pub Names: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVENT_FILTER_EVENT_NAME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVENT_FILTER_EVENT_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_FILTER_HEADER { + pub Id: u16, + pub Version: u8, + pub Reserved: [u8; 5], + pub InstanceId: u64, + pub Size: u32, + pub NextOffset: u32, +} +impl ::core::marker::Copy for EVENT_FILTER_HEADER {} +impl ::core::clone::Clone for EVENT_FILTER_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EVENT_FILTER_LEVEL_KW { + pub MatchAnyKeyword: u64, + pub MatchAllKeyword: u64, + pub Level: u8, + pub FilterIn: super::super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVENT_FILTER_LEVEL_KW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVENT_FILTER_LEVEL_KW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_HEADER { + pub Size: u16, + pub HeaderType: u16, + pub Flags: u16, + pub EventProperty: u16, + pub ThreadId: u32, + pub ProcessId: u32, + pub TimeStamp: i64, + pub ProviderId: ::windows_sys::core::GUID, + pub EventDescriptor: EVENT_DESCRIPTOR, + pub Anonymous: EVENT_HEADER_0, + pub ActivityId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for EVENT_HEADER {} +impl ::core::clone::Clone for EVENT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_HEADER_0 { + pub Anonymous: EVENT_HEADER_0_0, + pub ProcessorTime: u64, +} +impl ::core::marker::Copy for EVENT_HEADER_0 {} +impl ::core::clone::Clone for EVENT_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_HEADER_0_0 { + pub KernelTime: u32, + pub UserTime: u32, +} +impl ::core::marker::Copy for EVENT_HEADER_0_0 {} +impl ::core::clone::Clone for EVENT_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_HEADER_EXTENDED_DATA_ITEM { + pub Reserved1: u16, + pub ExtType: u16, + pub Anonymous: EVENT_HEADER_EXTENDED_DATA_ITEM_0, + pub DataSize: u16, + pub DataPtr: u64, +} +impl ::core::marker::Copy for EVENT_HEADER_EXTENDED_DATA_ITEM {} +impl ::core::clone::Clone for EVENT_HEADER_EXTENDED_DATA_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_HEADER_EXTENDED_DATA_ITEM_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for EVENT_HEADER_EXTENDED_DATA_ITEM_0 {} +impl ::core::clone::Clone for EVENT_HEADER_EXTENDED_DATA_ITEM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_INSTANCE_HEADER { + pub Size: u16, + pub Anonymous1: EVENT_INSTANCE_HEADER_0, + pub Anonymous2: EVENT_INSTANCE_HEADER_1, + pub ThreadId: u32, + pub ProcessId: u32, + pub TimeStamp: i64, + pub RegHandle: u64, + pub InstanceId: u32, + pub ParentInstanceId: u32, + pub Anonymous3: EVENT_INSTANCE_HEADER_2, + pub ParentRegHandle: u64, +} +impl ::core::marker::Copy for EVENT_INSTANCE_HEADER {} +impl ::core::clone::Clone for EVENT_INSTANCE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_INSTANCE_HEADER_0 { + pub FieldTypeFlags: u16, + pub Anonymous: EVENT_INSTANCE_HEADER_0_0, +} +impl ::core::marker::Copy for EVENT_INSTANCE_HEADER_0 {} +impl ::core::clone::Clone for EVENT_INSTANCE_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_INSTANCE_HEADER_0_0 { + pub HeaderType: u8, + pub MarkerFlags: u8, +} +impl ::core::marker::Copy for EVENT_INSTANCE_HEADER_0_0 {} +impl ::core::clone::Clone for EVENT_INSTANCE_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_INSTANCE_HEADER_1 { + pub Version: u32, + pub Class: EVENT_INSTANCE_HEADER_1_0, +} +impl ::core::marker::Copy for EVENT_INSTANCE_HEADER_1 {} +impl ::core::clone::Clone for EVENT_INSTANCE_HEADER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_INSTANCE_HEADER_1_0 { + pub Type: u8, + pub Level: u8, + pub Version: u16, +} +impl ::core::marker::Copy for EVENT_INSTANCE_HEADER_1_0 {} +impl ::core::clone::Clone for EVENT_INSTANCE_HEADER_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_INSTANCE_HEADER_2 { + pub Anonymous1: EVENT_INSTANCE_HEADER_2_0, + pub ProcessorTime: u64, + pub Anonymous2: EVENT_INSTANCE_HEADER_2_1, +} +impl ::core::marker::Copy for EVENT_INSTANCE_HEADER_2 {} +impl ::core::clone::Clone for EVENT_INSTANCE_HEADER_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_INSTANCE_HEADER_2_0 { + pub KernelTime: u32, + pub UserTime: u32, +} +impl ::core::marker::Copy for EVENT_INSTANCE_HEADER_2_0 {} +impl ::core::clone::Clone for EVENT_INSTANCE_HEADER_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_INSTANCE_HEADER_2_1 { + pub EventId: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for EVENT_INSTANCE_HEADER_2_1 {} +impl ::core::clone::Clone for EVENT_INSTANCE_HEADER_2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EVENT_INSTANCE_INFO { + pub RegHandle: super::super::super::Foundation::HANDLE, + pub InstanceId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVENT_INSTANCE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVENT_INSTANCE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_MAP_ENTRY { + pub OutputOffset: u32, + pub Anonymous: EVENT_MAP_ENTRY_0, +} +impl ::core::marker::Copy for EVENT_MAP_ENTRY {} +impl ::core::clone::Clone for EVENT_MAP_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_MAP_ENTRY_0 { + pub Value: u32, + pub InputOffset: u32, +} +impl ::core::marker::Copy for EVENT_MAP_ENTRY_0 {} +impl ::core::clone::Clone for EVENT_MAP_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_MAP_INFO { + pub NameOffset: u32, + pub Flag: MAP_FLAGS, + pub EntryCount: u32, + pub Anonymous: EVENT_MAP_INFO_0, + pub MapEntryArray: [EVENT_MAP_ENTRY; 1], +} +impl ::core::marker::Copy for EVENT_MAP_INFO {} +impl ::core::clone::Clone for EVENT_MAP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_MAP_INFO_0 { + pub MapEntryValueType: MAP_VALUETYPE, + pub FormatStringOffset: u32, +} +impl ::core::marker::Copy for EVENT_MAP_INFO_0 {} +impl ::core::clone::Clone for EVENT_MAP_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_PROPERTY_INFO { + pub Flags: PROPERTY_FLAGS, + pub NameOffset: u32, + pub Anonymous1: EVENT_PROPERTY_INFO_0, + pub Anonymous2: EVENT_PROPERTY_INFO_1, + pub Anonymous3: EVENT_PROPERTY_INFO_2, + pub Anonymous4: EVENT_PROPERTY_INFO_3, +} +impl ::core::marker::Copy for EVENT_PROPERTY_INFO {} +impl ::core::clone::Clone for EVENT_PROPERTY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_PROPERTY_INFO_0 { + pub nonStructType: EVENT_PROPERTY_INFO_0_1, + pub structType: EVENT_PROPERTY_INFO_0_2, + pub customSchemaType: EVENT_PROPERTY_INFO_0_0, +} +impl ::core::marker::Copy for EVENT_PROPERTY_INFO_0 {} +impl ::core::clone::Clone for EVENT_PROPERTY_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_PROPERTY_INFO_0_0 { + pub InType: u16, + pub OutType: u16, + pub CustomSchemaOffset: u32, +} +impl ::core::marker::Copy for EVENT_PROPERTY_INFO_0_0 {} +impl ::core::clone::Clone for EVENT_PROPERTY_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_PROPERTY_INFO_0_1 { + pub InType: u16, + pub OutType: u16, + pub MapNameOffset: u32, +} +impl ::core::marker::Copy for EVENT_PROPERTY_INFO_0_1 {} +impl ::core::clone::Clone for EVENT_PROPERTY_INFO_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_PROPERTY_INFO_0_2 { + pub StructStartIndex: u16, + pub NumOfStructMembers: u16, + pub padding: u32, +} +impl ::core::marker::Copy for EVENT_PROPERTY_INFO_0_2 {} +impl ::core::clone::Clone for EVENT_PROPERTY_INFO_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_PROPERTY_INFO_1 { + pub count: u16, + pub countPropertyIndex: u16, +} +impl ::core::marker::Copy for EVENT_PROPERTY_INFO_1 {} +impl ::core::clone::Clone for EVENT_PROPERTY_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_PROPERTY_INFO_2 { + pub length: u16, + pub lengthPropertyIndex: u16, +} +impl ::core::marker::Copy for EVENT_PROPERTY_INFO_2 {} +impl ::core::clone::Clone for EVENT_PROPERTY_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_PROPERTY_INFO_3 { + pub Reserved: u32, + pub Anonymous: EVENT_PROPERTY_INFO_3_0, +} +impl ::core::marker::Copy for EVENT_PROPERTY_INFO_3 {} +impl ::core::clone::Clone for EVENT_PROPERTY_INFO_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_PROPERTY_INFO_3_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for EVENT_PROPERTY_INFO_3_0 {} +impl ::core::clone::Clone for EVENT_PROPERTY_INFO_3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_RECORD { + pub EventHeader: EVENT_HEADER, + pub BufferContext: ETW_BUFFER_CONTEXT, + pub ExtendedDataCount: u16, + pub UserDataLength: u16, + pub ExtendedData: *mut EVENT_HEADER_EXTENDED_DATA_ITEM, + pub UserData: *mut ::core::ffi::c_void, + pub UserContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for EVENT_RECORD {} +impl ::core::clone::Clone for EVENT_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_TRACE { + pub Header: EVENT_TRACE_HEADER, + pub InstanceId: u32, + pub ParentInstanceId: u32, + pub ParentGuid: ::windows_sys::core::GUID, + pub MofData: *mut ::core::ffi::c_void, + pub MofLength: u32, + pub Anonymous: EVENT_TRACE_0, +} +impl ::core::marker::Copy for EVENT_TRACE {} +impl ::core::clone::Clone for EVENT_TRACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_TRACE_0 { + pub ClientContext: u32, + pub BufferContext: ETW_BUFFER_CONTEXT, +} +impl ::core::marker::Copy for EVENT_TRACE_0 {} +impl ::core::clone::Clone for EVENT_TRACE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_TRACE_HEADER { + pub Size: u16, + pub Anonymous1: EVENT_TRACE_HEADER_0, + pub Anonymous2: EVENT_TRACE_HEADER_1, + pub ThreadId: u32, + pub ProcessId: u32, + pub TimeStamp: i64, + pub Anonymous3: EVENT_TRACE_HEADER_2, + pub Anonymous4: EVENT_TRACE_HEADER_3, +} +impl ::core::marker::Copy for EVENT_TRACE_HEADER {} +impl ::core::clone::Clone for EVENT_TRACE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_TRACE_HEADER_0 { + pub FieldTypeFlags: u16, + pub Anonymous: EVENT_TRACE_HEADER_0_0, +} +impl ::core::marker::Copy for EVENT_TRACE_HEADER_0 {} +impl ::core::clone::Clone for EVENT_TRACE_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_TRACE_HEADER_0_0 { + pub HeaderType: u8, + pub MarkerFlags: u8, +} +impl ::core::marker::Copy for EVENT_TRACE_HEADER_0_0 {} +impl ::core::clone::Clone for EVENT_TRACE_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_TRACE_HEADER_1 { + pub Version: u32, + pub Class: EVENT_TRACE_HEADER_1_0, +} +impl ::core::marker::Copy for EVENT_TRACE_HEADER_1 {} +impl ::core::clone::Clone for EVENT_TRACE_HEADER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_TRACE_HEADER_1_0 { + pub Type: u8, + pub Level: u8, + pub Version: u16, +} +impl ::core::marker::Copy for EVENT_TRACE_HEADER_1_0 {} +impl ::core::clone::Clone for EVENT_TRACE_HEADER_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_TRACE_HEADER_2 { + pub Guid: ::windows_sys::core::GUID, + pub GuidPtr: u64, +} +impl ::core::marker::Copy for EVENT_TRACE_HEADER_2 {} +impl ::core::clone::Clone for EVENT_TRACE_HEADER_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union EVENT_TRACE_HEADER_3 { + pub Anonymous1: EVENT_TRACE_HEADER_3_0, + pub ProcessorTime: u64, + pub Anonymous2: EVENT_TRACE_HEADER_3_1, +} +impl ::core::marker::Copy for EVENT_TRACE_HEADER_3 {} +impl ::core::clone::Clone for EVENT_TRACE_HEADER_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_TRACE_HEADER_3_0 { + pub KernelTime: u32, + pub UserTime: u32, +} +impl ::core::marker::Copy for EVENT_TRACE_HEADER_3_0 {} +impl ::core::clone::Clone for EVENT_TRACE_HEADER_3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENT_TRACE_HEADER_3_1 { + pub ClientContext: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for EVENT_TRACE_HEADER_3_1 {} +impl ::core::clone::Clone for EVENT_TRACE_HEADER_3_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct EVENT_TRACE_LOGFILEA { + pub LogFileName: ::windows_sys::core::PSTR, + pub LoggerName: ::windows_sys::core::PSTR, + pub CurrentTime: i64, + pub BuffersRead: u32, + pub Anonymous1: EVENT_TRACE_LOGFILEA_0, + pub CurrentEvent: EVENT_TRACE, + pub LogfileHeader: TRACE_LOGFILE_HEADER, + pub BufferCallback: PEVENT_TRACE_BUFFER_CALLBACKA, + pub BufferSize: u32, + pub Filled: u32, + pub EventsLost: u32, + pub Anonymous2: EVENT_TRACE_LOGFILEA_1, + pub IsKernelTrace: u32, + pub Context: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for EVENT_TRACE_LOGFILEA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for EVENT_TRACE_LOGFILEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub union EVENT_TRACE_LOGFILEA_0 { + pub LogFileMode: u32, + pub ProcessTraceMode: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for EVENT_TRACE_LOGFILEA_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for EVENT_TRACE_LOGFILEA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub union EVENT_TRACE_LOGFILEA_1 { + pub EventCallback: PEVENT_CALLBACK, + pub EventRecordCallback: PEVENT_RECORD_CALLBACK, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for EVENT_TRACE_LOGFILEA_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for EVENT_TRACE_LOGFILEA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct EVENT_TRACE_LOGFILEW { + pub LogFileName: ::windows_sys::core::PWSTR, + pub LoggerName: ::windows_sys::core::PWSTR, + pub CurrentTime: i64, + pub BuffersRead: u32, + pub Anonymous1: EVENT_TRACE_LOGFILEW_0, + pub CurrentEvent: EVENT_TRACE, + pub LogfileHeader: TRACE_LOGFILE_HEADER, + pub BufferCallback: PEVENT_TRACE_BUFFER_CALLBACKW, + pub BufferSize: u32, + pub Filled: u32, + pub EventsLost: u32, + pub Anonymous2: EVENT_TRACE_LOGFILEW_1, + pub IsKernelTrace: u32, + pub Context: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for EVENT_TRACE_LOGFILEW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for EVENT_TRACE_LOGFILEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub union EVENT_TRACE_LOGFILEW_0 { + pub LogFileMode: u32, + pub ProcessTraceMode: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for EVENT_TRACE_LOGFILEW_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for EVENT_TRACE_LOGFILEW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub union EVENT_TRACE_LOGFILEW_1 { + pub EventCallback: PEVENT_CALLBACK, + pub EventRecordCallback: PEVENT_RECORD_CALLBACK, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for EVENT_TRACE_LOGFILEW_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for EVENT_TRACE_LOGFILEW_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EVENT_TRACE_PROPERTIES { + pub Wnode: WNODE_HEADER, + pub BufferSize: u32, + pub MinimumBuffers: u32, + pub MaximumBuffers: u32, + pub MaximumFileSize: u32, + pub LogFileMode: u32, + pub FlushTimer: u32, + pub EnableFlags: EVENT_TRACE_FLAG, + pub Anonymous: EVENT_TRACE_PROPERTIES_0, + pub NumberOfBuffers: u32, + pub FreeBuffers: u32, + pub EventsLost: u32, + pub BuffersWritten: u32, + pub LogBuffersLost: u32, + pub RealTimeBuffersLost: u32, + pub LoggerThreadId: super::super::super::Foundation::HANDLE, + pub LogFileNameOffset: u32, + pub LoggerNameOffset: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVENT_TRACE_PROPERTIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVENT_TRACE_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union EVENT_TRACE_PROPERTIES_0 { + pub AgeLimit: i32, + pub FlushThreshold: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVENT_TRACE_PROPERTIES_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVENT_TRACE_PROPERTIES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EVENT_TRACE_PROPERTIES_V2 { + pub Wnode: WNODE_HEADER, + pub BufferSize: u32, + pub MinimumBuffers: u32, + pub MaximumBuffers: u32, + pub MaximumFileSize: u32, + pub LogFileMode: u32, + pub FlushTimer: u32, + pub EnableFlags: EVENT_TRACE_FLAG, + pub Anonymous1: EVENT_TRACE_PROPERTIES_V2_0, + pub NumberOfBuffers: u32, + pub FreeBuffers: u32, + pub EventsLost: u32, + pub BuffersWritten: u32, + pub LogBuffersLost: u32, + pub RealTimeBuffersLost: u32, + pub LoggerThreadId: super::super::super::Foundation::HANDLE, + pub LogFileNameOffset: u32, + pub LoggerNameOffset: u32, + pub Anonymous2: EVENT_TRACE_PROPERTIES_V2_1, + pub FilterDescCount: u32, + pub FilterDesc: *mut EVENT_FILTER_DESCRIPTOR, + pub Anonymous3: EVENT_TRACE_PROPERTIES_V2_2, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVENT_TRACE_PROPERTIES_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVENT_TRACE_PROPERTIES_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union EVENT_TRACE_PROPERTIES_V2_0 { + pub AgeLimit: i32, + pub FlushThreshold: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVENT_TRACE_PROPERTIES_V2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVENT_TRACE_PROPERTIES_V2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union EVENT_TRACE_PROPERTIES_V2_1 { + pub Anonymous: EVENT_TRACE_PROPERTIES_V2_1_0, + pub V2Control: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVENT_TRACE_PROPERTIES_V2_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVENT_TRACE_PROPERTIES_V2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EVENT_TRACE_PROPERTIES_V2_1_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVENT_TRACE_PROPERTIES_V2_1_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVENT_TRACE_PROPERTIES_V2_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union EVENT_TRACE_PROPERTIES_V2_2 { + pub Anonymous: EVENT_TRACE_PROPERTIES_V2_2_0, + pub V2Options: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVENT_TRACE_PROPERTIES_V2_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVENT_TRACE_PROPERTIES_V2_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EVENT_TRACE_PROPERTIES_V2_2_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVENT_TRACE_PROPERTIES_V2_2_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVENT_TRACE_PROPERTIES_V2_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MOF_FIELD { + pub DataPtr: u64, + pub Length: u32, + pub DataType: u32, +} +impl ::core::marker::Copy for MOF_FIELD {} +impl ::core::clone::Clone for MOF_FIELD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OFFSETINSTANCEDATAANDLENGTH { + pub OffsetInstanceData: u32, + pub LengthInstanceData: u32, +} +impl ::core::marker::Copy for OFFSETINSTANCEDATAANDLENGTH {} +impl ::core::clone::Clone for OFFSETINSTANCEDATAANDLENGTH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PAYLOAD_FILTER_PREDICATE { + pub FieldName: ::windows_sys::core::PWSTR, + pub CompareOp: u16, + pub Value: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PAYLOAD_FILTER_PREDICATE {} +impl ::core::clone::Clone for PAYLOAD_FILTER_PREDICATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSTRACE_HANDLE { + pub Value: u64, +} +impl ::core::marker::Copy for PROCESSTRACE_HANDLE {} +impl ::core::clone::Clone for PROCESSTRACE_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROFILE_SOURCE_INFO { + pub NextEntryOffset: u32, + pub Source: u32, + pub MinInterval: u32, + pub MaxInterval: u32, + pub Reserved: u64, + pub Description: [u16; 1], +} +impl ::core::marker::Copy for PROFILE_SOURCE_INFO {} +impl ::core::clone::Clone for PROFILE_SOURCE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROPERTY_DATA_DESCRIPTOR { + pub PropertyName: u64, + pub ArrayIndex: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for PROPERTY_DATA_DESCRIPTOR {} +impl ::core::clone::Clone for PROPERTY_DATA_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROVIDER_ENUMERATION_INFO { + pub NumberOfProviders: u32, + pub Reserved: u32, + pub TraceProviderInfoArray: [TRACE_PROVIDER_INFO; 1], +} +impl ::core::marker::Copy for PROVIDER_ENUMERATION_INFO {} +impl ::core::clone::Clone for PROVIDER_ENUMERATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROVIDER_EVENT_INFO { + pub NumberOfEvents: u32, + pub Reserved: u32, + pub EventDescriptorsArray: [EVENT_DESCRIPTOR; 1], +} +impl ::core::marker::Copy for PROVIDER_EVENT_INFO {} +impl ::core::clone::Clone for PROVIDER_EVENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROVIDER_FIELD_INFO { + pub NameOffset: u32, + pub DescriptionOffset: u32, + pub Value: u64, +} +impl ::core::marker::Copy for PROVIDER_FIELD_INFO {} +impl ::core::clone::Clone for PROVIDER_FIELD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROVIDER_FIELD_INFOARRAY { + pub NumberOfElements: u32, + pub FieldType: EVENT_FIELD_TYPE, + pub FieldInfoArray: [PROVIDER_FIELD_INFO; 1], +} +impl ::core::marker::Copy for PROVIDER_FIELD_INFOARRAY {} +impl ::core::clone::Clone for PROVIDER_FIELD_INFOARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROVIDER_FILTER_INFO { + pub Id: u8, + pub Version: u8, + pub MessageOffset: u32, + pub Reserved: u32, + pub PropertyCount: u32, + pub EventPropertyInfoArray: [EVENT_PROPERTY_INFO; 1], +} +impl ::core::marker::Copy for PROVIDER_FILTER_INFO {} +impl ::core::clone::Clone for PROVIDER_FILTER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RELOGSTREAM_HANDLE { + pub Value: u64, +} +impl ::core::marker::Copy for RELOGSTREAM_HANDLE {} +impl ::core::clone::Clone for RELOGSTREAM_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TDH_CONTEXT { + pub ParameterValue: u64, + pub ParameterType: TDH_CONTEXT_TYPE, + pub ParameterSize: u32, +} +impl ::core::marker::Copy for TDH_CONTEXT {} +impl ::core::clone::Clone for TDH_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +pub type TDH_HANDLE = isize; +#[repr(C)] +pub struct TRACE_ENABLE_INFO { + pub IsEnabled: u32, + pub Level: u8, + pub Reserved1: u8, + pub LoggerId: u16, + pub EnableProperty: u32, + pub Reserved2: u32, + pub MatchAnyKeyword: u64, + pub MatchAllKeyword: u64, +} +impl ::core::marker::Copy for TRACE_ENABLE_INFO {} +impl ::core::clone::Clone for TRACE_ENABLE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRACE_EVENT_INFO { + pub ProviderGuid: ::windows_sys::core::GUID, + pub EventGuid: ::windows_sys::core::GUID, + pub EventDescriptor: EVENT_DESCRIPTOR, + pub DecodingSource: DECODING_SOURCE, + pub ProviderNameOffset: u32, + pub LevelNameOffset: u32, + pub ChannelNameOffset: u32, + pub KeywordsNameOffset: u32, + pub TaskNameOffset: u32, + pub OpcodeNameOffset: u32, + pub EventMessageOffset: u32, + pub ProviderMessageOffset: u32, + pub BinaryXMLOffset: u32, + pub BinaryXMLSize: u32, + pub Anonymous1: TRACE_EVENT_INFO_0, + pub Anonymous2: TRACE_EVENT_INFO_1, + pub PropertyCount: u32, + pub TopLevelPropertyCount: u32, + pub Anonymous3: TRACE_EVENT_INFO_2, + pub EventPropertyInfoArray: [EVENT_PROPERTY_INFO; 1], +} +impl ::core::marker::Copy for TRACE_EVENT_INFO {} +impl ::core::clone::Clone for TRACE_EVENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union TRACE_EVENT_INFO_0 { + pub EventNameOffset: u32, + pub ActivityIDNameOffset: u32, +} +impl ::core::marker::Copy for TRACE_EVENT_INFO_0 {} +impl ::core::clone::Clone for TRACE_EVENT_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union TRACE_EVENT_INFO_1 { + pub EventAttributesOffset: u32, + pub RelatedActivityIDNameOffset: u32, +} +impl ::core::marker::Copy for TRACE_EVENT_INFO_1 {} +impl ::core::clone::Clone for TRACE_EVENT_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union TRACE_EVENT_INFO_2 { + pub Flags: TEMPLATE_FLAGS, + pub Anonymous: TRACE_EVENT_INFO_2_0, +} +impl ::core::marker::Copy for TRACE_EVENT_INFO_2 {} +impl ::core::clone::Clone for TRACE_EVENT_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRACE_EVENT_INFO_2_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for TRACE_EVENT_INFO_2_0 {} +impl ::core::clone::Clone for TRACE_EVENT_INFO_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRACE_GUID_INFO { + pub InstanceCount: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for TRACE_GUID_INFO {} +impl ::core::clone::Clone for TRACE_GUID_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRACE_GUID_PROPERTIES { + pub Guid: ::windows_sys::core::GUID, + pub GuidType: u32, + pub LoggerId: u32, + pub EnableLevel: u32, + pub EnableFlags: u32, + pub IsEnable: super::super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRACE_GUID_PROPERTIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRACE_GUID_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRACE_GUID_REGISTRATION { + pub Guid: *const ::windows_sys::core::GUID, + pub RegHandle: super::super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRACE_GUID_REGISTRATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRACE_GUID_REGISTRATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct TRACE_LOGFILE_HEADER { + pub BufferSize: u32, + pub Anonymous1: TRACE_LOGFILE_HEADER_0, + pub ProviderVersion: u32, + pub NumberOfProcessors: u32, + pub EndTime: i64, + pub TimerResolution: u32, + pub MaximumFileSize: u32, + pub LogFileMode: u32, + pub BuffersWritten: u32, + pub Anonymous2: TRACE_LOGFILE_HEADER_1, + pub LoggerName: ::windows_sys::core::PWSTR, + pub LogFileName: ::windows_sys::core::PWSTR, + pub TimeZone: super::super::Time::TIME_ZONE_INFORMATION, + pub BootTime: i64, + pub PerfFreq: i64, + pub StartTime: i64, + pub ReservedFlags: u32, + pub BuffersLost: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub union TRACE_LOGFILE_HEADER_0 { + pub Version: u32, + pub VersionDetail: TRACE_LOGFILE_HEADER_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct TRACE_LOGFILE_HEADER_0_0 { + pub MajorVersion: u8, + pub MinorVersion: u8, + pub SubVersion: u8, + pub SubMinorVersion: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub union TRACE_LOGFILE_HEADER_1 { + pub LogInstanceGuid: ::windows_sys::core::GUID, + pub Anonymous: TRACE_LOGFILE_HEADER_1_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct TRACE_LOGFILE_HEADER_1_0 { + pub StartBuffers: u32, + pub PointerSize: u32, + pub EventsLost: u32, + pub CpuSpeedInMHz: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER_1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct TRACE_LOGFILE_HEADER32 { + pub BufferSize: u32, + pub Anonymous1: TRACE_LOGFILE_HEADER32_0, + pub ProviderVersion: u32, + pub NumberOfProcessors: u32, + pub EndTime: i64, + pub TimerResolution: u32, + pub MaximumFileSize: u32, + pub LogFileMode: u32, + pub BuffersWritten: u32, + pub Anonymous2: TRACE_LOGFILE_HEADER32_1, + pub LoggerName: u32, + pub LogFileName: u32, + pub TimeZone: super::super::Time::TIME_ZONE_INFORMATION, + pub BootTime: i64, + pub PerfFreq: i64, + pub StartTime: i64, + pub ReservedFlags: u32, + pub BuffersLost: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER32 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub union TRACE_LOGFILE_HEADER32_0 { + pub Version: u32, + pub VersionDetail: TRACE_LOGFILE_HEADER32_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER32_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER32_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct TRACE_LOGFILE_HEADER32_0_0 { + pub MajorVersion: u8, + pub MinorVersion: u8, + pub SubVersion: u8, + pub SubMinorVersion: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER32_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER32_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub union TRACE_LOGFILE_HEADER32_1 { + pub LogInstanceGuid: ::windows_sys::core::GUID, + pub Anonymous: TRACE_LOGFILE_HEADER32_1_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER32_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER32_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct TRACE_LOGFILE_HEADER32_1_0 { + pub StartBuffers: u32, + pub PointerSize: u32, + pub EventsLost: u32, + pub CpuSpeedInMHz: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER32_1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER32_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct TRACE_LOGFILE_HEADER64 { + pub BufferSize: u32, + pub Anonymous1: TRACE_LOGFILE_HEADER64_0, + pub ProviderVersion: u32, + pub NumberOfProcessors: u32, + pub EndTime: i64, + pub TimerResolution: u32, + pub MaximumFileSize: u32, + pub LogFileMode: u32, + pub BuffersWritten: u32, + pub Anonymous2: TRACE_LOGFILE_HEADER64_1, + pub LoggerName: u64, + pub LogFileName: u64, + pub TimeZone: super::super::Time::TIME_ZONE_INFORMATION, + pub BootTime: i64, + pub PerfFreq: i64, + pub StartTime: i64, + pub ReservedFlags: u32, + pub BuffersLost: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER64 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub union TRACE_LOGFILE_HEADER64_0 { + pub Version: u32, + pub VersionDetail: TRACE_LOGFILE_HEADER64_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER64_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER64_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct TRACE_LOGFILE_HEADER64_0_0 { + pub MajorVersion: u8, + pub MinorVersion: u8, + pub SubVersion: u8, + pub SubMinorVersion: u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER64_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER64_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub union TRACE_LOGFILE_HEADER64_1 { + pub LogInstanceGuid: ::windows_sys::core::GUID, + pub Anonymous: TRACE_LOGFILE_HEADER64_1_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER64_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER64_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub struct TRACE_LOGFILE_HEADER64_1_0 { + pub StartBuffers: u32, + pub PointerSize: u32, + pub EventsLost: u32, + pub CpuSpeedInMHz: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::marker::Copy for TRACE_LOGFILE_HEADER64_1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +impl ::core::clone::Clone for TRACE_LOGFILE_HEADER64_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRACE_PERIODIC_CAPTURE_STATE_INFO { + pub CaptureStateFrequencyInSeconds: u32, + pub ProviderCount: u16, + pub Reserved: u16, +} +impl ::core::marker::Copy for TRACE_PERIODIC_CAPTURE_STATE_INFO {} +impl ::core::clone::Clone for TRACE_PERIODIC_CAPTURE_STATE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRACE_PROFILE_INTERVAL { + pub Source: u32, + pub Interval: u32, +} +impl ::core::marker::Copy for TRACE_PROFILE_INTERVAL {} +impl ::core::clone::Clone for TRACE_PROFILE_INTERVAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRACE_PROVIDER_INFO { + pub ProviderGuid: ::windows_sys::core::GUID, + pub SchemaSource: u32, + pub ProviderNameOffset: u32, +} +impl ::core::marker::Copy for TRACE_PROVIDER_INFO {} +impl ::core::clone::Clone for TRACE_PROVIDER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRACE_PROVIDER_INSTANCE_INFO { + pub NextOffset: u32, + pub EnableCount: u32, + pub Pid: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for TRACE_PROVIDER_INSTANCE_INFO {} +impl ::core::clone::Clone for TRACE_PROVIDER_INSTANCE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRACE_STACK_CACHING_INFO { + pub Enabled: super::super::super::Foundation::BOOLEAN, + pub CacheSize: u32, + pub BucketCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRACE_STACK_CACHING_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRACE_STACK_CACHING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRACE_VERSION_INFO { + pub EtwTraceProcessingVersion: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for TRACE_VERSION_INFO {} +impl ::core::clone::Clone for TRACE_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WMIREGGUIDW { + pub Guid: ::windows_sys::core::GUID, + pub Flags: u32, + pub InstanceCount: u32, + pub Anonymous: WMIREGGUIDW_0, +} +impl ::core::marker::Copy for WMIREGGUIDW {} +impl ::core::clone::Clone for WMIREGGUIDW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WMIREGGUIDW_0 { + pub InstanceNameList: u32, + pub BaseNameOffset: u32, + pub Pdo: usize, + pub InstanceInfo: usize, +} +impl ::core::marker::Copy for WMIREGGUIDW_0 {} +impl ::core::clone::Clone for WMIREGGUIDW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WMIREGINFOW { + pub BufferSize: u32, + pub NextWmiRegInfo: u32, + pub RegistryPath: u32, + pub MofResourceName: u32, + pub GuidCount: u32, + pub WmiRegGuid: [WMIREGGUIDW; 1], +} +impl ::core::marker::Copy for WMIREGINFOW {} +impl ::core::clone::Clone for WMIREGINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WNODE_ALL_DATA { + pub WnodeHeader: WNODE_HEADER, + pub DataBlockOffset: u32, + pub InstanceCount: u32, + pub OffsetInstanceNameOffsets: u32, + pub Anonymous: WNODE_ALL_DATA_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNODE_ALL_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNODE_ALL_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WNODE_ALL_DATA_0 { + pub FixedInstanceSize: u32, + pub OffsetInstanceDataAndLength: [OFFSETINSTANCEDATAANDLENGTH; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNODE_ALL_DATA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNODE_ALL_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WNODE_EVENT_ITEM { + pub WnodeHeader: WNODE_HEADER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNODE_EVENT_ITEM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNODE_EVENT_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WNODE_EVENT_REFERENCE { + pub WnodeHeader: WNODE_HEADER, + pub TargetGuid: ::windows_sys::core::GUID, + pub TargetDataBlockSize: u32, + pub Anonymous: WNODE_EVENT_REFERENCE_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNODE_EVENT_REFERENCE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNODE_EVENT_REFERENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WNODE_EVENT_REFERENCE_0 { + pub TargetInstanceIndex: u32, + pub TargetInstanceName: [u16; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNODE_EVENT_REFERENCE_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNODE_EVENT_REFERENCE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WNODE_HEADER { + pub BufferSize: u32, + pub ProviderId: u32, + pub Anonymous1: WNODE_HEADER_0, + pub Anonymous2: WNODE_HEADER_1, + pub Guid: ::windows_sys::core::GUID, + pub ClientContext: u32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNODE_HEADER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNODE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WNODE_HEADER_0 { + pub HistoricalContext: u64, + pub Anonymous: WNODE_HEADER_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNODE_HEADER_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNODE_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WNODE_HEADER_0_0 { + pub Version: u32, + pub Linkage: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNODE_HEADER_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNODE_HEADER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WNODE_HEADER_1 { + pub CountLost: u32, + pub KernelHandle: super::super::super::Foundation::HANDLE, + pub TimeStamp: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNODE_HEADER_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNODE_HEADER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WNODE_METHOD_ITEM { + pub WnodeHeader: WNODE_HEADER, + pub OffsetInstanceName: u32, + pub InstanceIndex: u32, + pub MethodId: u32, + pub DataBlockOffset: u32, + pub SizeDataBlock: u32, + pub VariableData: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNODE_METHOD_ITEM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNODE_METHOD_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WNODE_SINGLE_INSTANCE { + pub WnodeHeader: WNODE_HEADER, + pub OffsetInstanceName: u32, + pub InstanceIndex: u32, + pub DataBlockOffset: u32, + pub SizeDataBlock: u32, + pub VariableData: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNODE_SINGLE_INSTANCE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNODE_SINGLE_INSTANCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WNODE_SINGLE_ITEM { + pub WnodeHeader: WNODE_HEADER, + pub OffsetInstanceName: u32, + pub InstanceIndex: u32, + pub ItemId: u32, + pub DataBlockOffset: u32, + pub SizeDataItem: u32, + pub VariableData: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNODE_SINGLE_ITEM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNODE_SINGLE_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WNODE_TOO_SMALL { + pub WnodeHeader: WNODE_HEADER, + pub SizeNeeded: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WNODE_TOO_SMALL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WNODE_TOO_SMALL { + fn clone(&self) -> Self { + *self + } +} +pub type PENABLECALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub type PETW_BUFFER_CALLBACK = ::core::option::Option super::super::super::Foundation::BOOL>; +pub type PETW_BUFFER_COMPLETION_CALLBACK = ::core::option::Option ()>; +pub type PEVENT_CALLBACK = ::core::option::Option ()>; +pub type PEVENT_RECORD_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub type PEVENT_TRACE_BUFFER_CALLBACKA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Time\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))] +pub type PEVENT_TRACE_BUFFER_CALLBACKW = ::core::option::Option u32>; +pub type WMIDPREQUEST = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/ProcessSnapshotting/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/ProcessSnapshotting/mod.rs new file mode 100644 index 000000000..cfd2f251e --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/ProcessSnapshotting/mod.rs @@ -0,0 +1,446 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PssCaptureSnapshot(processhandle : super::super::super::Foundation:: HANDLE, captureflags : PSS_CAPTURE_FLAGS, threadcontextflags : u32, snapshothandle : *mut HPSS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PssDuplicateSnapshot(sourceprocesshandle : super::super::super::Foundation:: HANDLE, snapshothandle : HPSS, targetprocesshandle : super::super::super::Foundation:: HANDLE, targetsnapshothandle : *mut HPSS, flags : PSS_DUPLICATE_FLAGS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PssFreeSnapshot(processhandle : super::super::super::Foundation:: HANDLE, snapshothandle : HPSS) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn PssQuerySnapshot(snapshothandle : HPSS, informationclass : PSS_QUERY_INFORMATION_CLASS, buffer : *mut ::core::ffi::c_void, bufferlength : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn PssWalkMarkerCreate(allocator : *const PSS_ALLOCATOR, walkmarkerhandle : *mut HPSSWALK) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn PssWalkMarkerFree(walkmarkerhandle : HPSSWALK) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn PssWalkMarkerGetPosition(walkmarkerhandle : HPSSWALK, position : *mut usize) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn PssWalkMarkerSeekToBeginning(walkmarkerhandle : HPSSWALK) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn PssWalkMarkerSetPosition(walkmarkerhandle : HPSSWALK, position : usize) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn PssWalkSnapshot(snapshothandle : HPSS, informationclass : PSS_WALK_INFORMATION_CLASS, walkmarkerhandle : HPSSWALK, buffer : *mut ::core::ffi::c_void, bufferlength : u32) -> u32); +pub const PSS_CAPTURE_HANDLES: PSS_CAPTURE_FLAGS = 4u32; +pub const PSS_CAPTURE_HANDLE_BASIC_INFORMATION: PSS_CAPTURE_FLAGS = 16u32; +pub const PSS_CAPTURE_HANDLE_NAME_INFORMATION: PSS_CAPTURE_FLAGS = 8u32; +pub const PSS_CAPTURE_HANDLE_TRACE: PSS_CAPTURE_FLAGS = 64u32; +pub const PSS_CAPTURE_HANDLE_TYPE_SPECIFIC_INFORMATION: PSS_CAPTURE_FLAGS = 32u32; +pub const PSS_CAPTURE_IPT_TRACE: PSS_CAPTURE_FLAGS = 8192u32; +pub const PSS_CAPTURE_NONE: PSS_CAPTURE_FLAGS = 0u32; +pub const PSS_CAPTURE_RESERVED_00000002: PSS_CAPTURE_FLAGS = 2u32; +pub const PSS_CAPTURE_RESERVED_00000400: PSS_CAPTURE_FLAGS = 1024u32; +pub const PSS_CAPTURE_RESERVED_00004000: PSS_CAPTURE_FLAGS = 16384u32; +pub const PSS_CAPTURE_THREADS: PSS_CAPTURE_FLAGS = 128u32; +pub const PSS_CAPTURE_THREAD_CONTEXT: PSS_CAPTURE_FLAGS = 256u32; +pub const PSS_CAPTURE_THREAD_CONTEXT_EXTENDED: PSS_CAPTURE_FLAGS = 512u32; +pub const PSS_CAPTURE_VA_CLONE: PSS_CAPTURE_FLAGS = 1u32; +pub const PSS_CAPTURE_VA_SPACE: PSS_CAPTURE_FLAGS = 2048u32; +pub const PSS_CAPTURE_VA_SPACE_SECTION_INFORMATION: PSS_CAPTURE_FLAGS = 4096u32; +pub const PSS_CREATE_BREAKAWAY: PSS_CAPTURE_FLAGS = 134217728u32; +pub const PSS_CREATE_BREAKAWAY_OPTIONAL: PSS_CAPTURE_FLAGS = 67108864u32; +pub const PSS_CREATE_FORCE_BREAKAWAY: PSS_CAPTURE_FLAGS = 268435456u32; +pub const PSS_CREATE_MEASURE_PERFORMANCE: PSS_CAPTURE_FLAGS = 1073741824u32; +pub const PSS_CREATE_RELEASE_SECTION: PSS_CAPTURE_FLAGS = 2147483648u32; +pub const PSS_CREATE_USE_VM_ALLOCATIONS: PSS_CAPTURE_FLAGS = 536870912u32; +pub const PSS_DUPLICATE_CLOSE_SOURCE: PSS_DUPLICATE_FLAGS = 1i32; +pub const PSS_DUPLICATE_NONE: PSS_DUPLICATE_FLAGS = 0i32; +pub const PSS_HANDLE_HAVE_BASIC_INFORMATION: PSS_HANDLE_FLAGS = 4i32; +pub const PSS_HANDLE_HAVE_NAME: PSS_HANDLE_FLAGS = 2i32; +pub const PSS_HANDLE_HAVE_TYPE: PSS_HANDLE_FLAGS = 1i32; +pub const PSS_HANDLE_HAVE_TYPE_SPECIFIC_INFORMATION: PSS_HANDLE_FLAGS = 8i32; +pub const PSS_HANDLE_NONE: PSS_HANDLE_FLAGS = 0i32; +pub const PSS_OBJECT_TYPE_EVENT: PSS_OBJECT_TYPE = 4i32; +pub const PSS_OBJECT_TYPE_MUTANT: PSS_OBJECT_TYPE = 3i32; +pub const PSS_OBJECT_TYPE_PROCESS: PSS_OBJECT_TYPE = 1i32; +pub const PSS_OBJECT_TYPE_SECTION: PSS_OBJECT_TYPE = 5i32; +pub const PSS_OBJECT_TYPE_SEMAPHORE: PSS_OBJECT_TYPE = 6i32; +pub const PSS_OBJECT_TYPE_THREAD: PSS_OBJECT_TYPE = 2i32; +pub const PSS_OBJECT_TYPE_UNKNOWN: PSS_OBJECT_TYPE = 0i32; +pub const PSS_PERF_RESOLUTION: u32 = 1000000u32; +pub const PSS_PROCESS_FLAGS_FROZEN: PSS_PROCESS_FLAGS = 16i32; +pub const PSS_PROCESS_FLAGS_NONE: PSS_PROCESS_FLAGS = 0i32; +pub const PSS_PROCESS_FLAGS_PROTECTED: PSS_PROCESS_FLAGS = 1i32; +pub const PSS_PROCESS_FLAGS_RESERVED_03: PSS_PROCESS_FLAGS = 4i32; +pub const PSS_PROCESS_FLAGS_RESERVED_04: PSS_PROCESS_FLAGS = 8i32; +pub const PSS_PROCESS_FLAGS_WOW64: PSS_PROCESS_FLAGS = 2i32; +pub const PSS_QUERY_AUXILIARY_PAGES_INFORMATION: PSS_QUERY_INFORMATION_CLASS = 2i32; +pub const PSS_QUERY_HANDLE_INFORMATION: PSS_QUERY_INFORMATION_CLASS = 4i32; +pub const PSS_QUERY_HANDLE_TRACE_INFORMATION: PSS_QUERY_INFORMATION_CLASS = 6i32; +pub const PSS_QUERY_PERFORMANCE_COUNTERS: PSS_QUERY_INFORMATION_CLASS = 7i32; +pub const PSS_QUERY_PROCESS_INFORMATION: PSS_QUERY_INFORMATION_CLASS = 0i32; +pub const PSS_QUERY_THREAD_INFORMATION: PSS_QUERY_INFORMATION_CLASS = 5i32; +pub const PSS_QUERY_VA_CLONE_INFORMATION: PSS_QUERY_INFORMATION_CLASS = 1i32; +pub const PSS_QUERY_VA_SPACE_INFORMATION: PSS_QUERY_INFORMATION_CLASS = 3i32; +pub const PSS_THREAD_FLAGS_NONE: PSS_THREAD_FLAGS = 0i32; +pub const PSS_THREAD_FLAGS_TERMINATED: PSS_THREAD_FLAGS = 1i32; +pub const PSS_WALK_AUXILIARY_PAGES: PSS_WALK_INFORMATION_CLASS = 0i32; +pub const PSS_WALK_HANDLES: PSS_WALK_INFORMATION_CLASS = 2i32; +pub const PSS_WALK_THREADS: PSS_WALK_INFORMATION_CLASS = 3i32; +pub const PSS_WALK_VA_SPACE: PSS_WALK_INFORMATION_CLASS = 1i32; +pub type PSS_CAPTURE_FLAGS = u32; +pub type PSS_DUPLICATE_FLAGS = i32; +pub type PSS_HANDLE_FLAGS = i32; +pub type PSS_OBJECT_TYPE = i32; +pub type PSS_PROCESS_FLAGS = i32; +pub type PSS_QUERY_INFORMATION_CLASS = i32; +pub type PSS_THREAD_FLAGS = i32; +pub type PSS_WALK_INFORMATION_CLASS = i32; +pub type HPSS = isize; +pub type HPSSWALK = isize; +#[repr(C)] +pub struct PSS_ALLOCATOR { + pub Context: *mut ::core::ffi::c_void, + pub AllocRoutine: isize, + pub FreeRoutine: isize, +} +impl ::core::marker::Copy for PSS_ALLOCATOR {} +impl ::core::clone::Clone for PSS_ALLOCATOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSS_AUXILIARY_PAGES_INFORMATION { + pub AuxPagesCaptured: u32, +} +impl ::core::marker::Copy for PSS_AUXILIARY_PAGES_INFORMATION {} +impl ::core::clone::Clone for PSS_AUXILIARY_PAGES_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +pub struct PSS_AUXILIARY_PAGE_ENTRY { + pub Address: *mut ::core::ffi::c_void, + pub BasicInformation: super::super::Memory::MEMORY_BASIC_INFORMATION, + pub CaptureTime: super::super::super::Foundation::FILETIME, + pub PageContents: *mut ::core::ffi::c_void, + pub PageSize: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::marker::Copy for PSS_AUXILIARY_PAGE_ENTRY {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +impl ::core::clone::Clone for PSS_AUXILIARY_PAGE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PSS_HANDLE_ENTRY { + pub Handle: super::super::super::Foundation::HANDLE, + pub Flags: PSS_HANDLE_FLAGS, + pub ObjectType: PSS_OBJECT_TYPE, + pub CaptureTime: super::super::super::Foundation::FILETIME, + pub Attributes: u32, + pub GrantedAccess: u32, + pub HandleCount: u32, + pub PointerCount: u32, + pub PagedPoolCharge: u32, + pub NonPagedPoolCharge: u32, + pub CreationTime: super::super::super::Foundation::FILETIME, + pub TypeNameLength: u16, + pub TypeName: ::windows_sys::core::PCWSTR, + pub ObjectNameLength: u16, + pub ObjectName: ::windows_sys::core::PCWSTR, + pub TypeSpecificInformation: PSS_HANDLE_ENTRY_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSS_HANDLE_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSS_HANDLE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union PSS_HANDLE_ENTRY_0 { + pub Process: PSS_HANDLE_ENTRY_0_2, + pub Thread: PSS_HANDLE_ENTRY_0_5, + pub Mutant: PSS_HANDLE_ENTRY_0_1, + pub Event: PSS_HANDLE_ENTRY_0_0, + pub Section: PSS_HANDLE_ENTRY_0_3, + pub Semaphore: PSS_HANDLE_ENTRY_0_4, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSS_HANDLE_ENTRY_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSS_HANDLE_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PSS_HANDLE_ENTRY_0_0 { + pub ManualReset: super::super::super::Foundation::BOOL, + pub Signaled: super::super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSS_HANDLE_ENTRY_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSS_HANDLE_ENTRY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PSS_HANDLE_ENTRY_0_1 { + pub CurrentCount: i32, + pub Abandoned: super::super::super::Foundation::BOOL, + pub OwnerProcessId: u32, + pub OwnerThreadId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSS_HANDLE_ENTRY_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSS_HANDLE_ENTRY_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PSS_HANDLE_ENTRY_0_2 { + pub ExitStatus: u32, + pub PebBaseAddress: *mut ::core::ffi::c_void, + pub AffinityMask: usize, + pub BasePriority: i32, + pub ProcessId: u32, + pub ParentProcessId: u32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSS_HANDLE_ENTRY_0_2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSS_HANDLE_ENTRY_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PSS_HANDLE_ENTRY_0_3 { + pub BaseAddress: *mut ::core::ffi::c_void, + pub AllocationAttributes: u32, + pub MaximumSize: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSS_HANDLE_ENTRY_0_3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSS_HANDLE_ENTRY_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PSS_HANDLE_ENTRY_0_4 { + pub CurrentCount: i32, + pub MaximumCount: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSS_HANDLE_ENTRY_0_4 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSS_HANDLE_ENTRY_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PSS_HANDLE_ENTRY_0_5 { + pub ExitStatus: u32, + pub TebBaseAddress: *mut ::core::ffi::c_void, + pub ProcessId: u32, + pub ThreadId: u32, + pub AffinityMask: usize, + pub Priority: i32, + pub BasePriority: i32, + pub Win32StartAddress: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSS_HANDLE_ENTRY_0_5 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSS_HANDLE_ENTRY_0_5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSS_HANDLE_INFORMATION { + pub HandlesCaptured: u32, +} +impl ::core::marker::Copy for PSS_HANDLE_INFORMATION {} +impl ::core::clone::Clone for PSS_HANDLE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PSS_HANDLE_TRACE_INFORMATION { + pub SectionHandle: super::super::super::Foundation::HANDLE, + pub Size: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSS_HANDLE_TRACE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSS_HANDLE_TRACE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSS_PERFORMANCE_COUNTERS { + pub TotalCycleCount: u64, + pub TotalWallClockPeriod: u64, + pub VaCloneCycleCount: u64, + pub VaCloneWallClockPeriod: u64, + pub VaSpaceCycleCount: u64, + pub VaSpaceWallClockPeriod: u64, + pub AuxPagesCycleCount: u64, + pub AuxPagesWallClockPeriod: u64, + pub HandlesCycleCount: u64, + pub HandlesWallClockPeriod: u64, + pub ThreadsCycleCount: u64, + pub ThreadsWallClockPeriod: u64, +} +impl ::core::marker::Copy for PSS_PERFORMANCE_COUNTERS {} +impl ::core::clone::Clone for PSS_PERFORMANCE_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PSS_PROCESS_INFORMATION { + pub ExitStatus: u32, + pub PebBaseAddress: *mut ::core::ffi::c_void, + pub AffinityMask: usize, + pub BasePriority: i32, + pub ProcessId: u32, + pub ParentProcessId: u32, + pub Flags: PSS_PROCESS_FLAGS, + pub CreateTime: super::super::super::Foundation::FILETIME, + pub ExitTime: super::super::super::Foundation::FILETIME, + pub KernelTime: super::super::super::Foundation::FILETIME, + pub UserTime: super::super::super::Foundation::FILETIME, + pub PriorityClass: u32, + pub PeakVirtualSize: usize, + pub VirtualSize: usize, + pub PageFaultCount: u32, + pub PeakWorkingSetSize: usize, + pub WorkingSetSize: usize, + pub QuotaPeakPagedPoolUsage: usize, + pub QuotaPagedPoolUsage: usize, + pub QuotaPeakNonPagedPoolUsage: usize, + pub QuotaNonPagedPoolUsage: usize, + pub PagefileUsage: usize, + pub PeakPagefileUsage: usize, + pub PrivateUsage: usize, + pub ExecuteFlags: u32, + pub ImageFileName: [u16; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSS_PROCESS_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSS_PROCESS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub struct PSS_THREAD_ENTRY { + pub ExitStatus: u32, + pub TebBaseAddress: *mut ::core::ffi::c_void, + pub ProcessId: u32, + pub ThreadId: u32, + pub AffinityMask: usize, + pub Priority: i32, + pub BasePriority: i32, + pub LastSyscallFirstArgument: *mut ::core::ffi::c_void, + pub LastSyscallNumber: u16, + pub CreateTime: super::super::super::Foundation::FILETIME, + pub ExitTime: super::super::super::Foundation::FILETIME, + pub KernelTime: super::super::super::Foundation::FILETIME, + pub UserTime: super::super::super::Foundation::FILETIME, + pub Win32StartAddress: *mut ::core::ffi::c_void, + pub CaptureTime: super::super::super::Foundation::FILETIME, + pub Flags: PSS_THREAD_FLAGS, + pub SuspendCount: u16, + pub SizeOfContextRecord: u16, + pub ContextRecord: *mut super::Debug::CONTEXT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for PSS_THREAD_ENTRY {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for PSS_THREAD_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSS_THREAD_INFORMATION { + pub ThreadsCaptured: u32, + pub ContextLength: u32, +} +impl ::core::marker::Copy for PSS_THREAD_INFORMATION {} +impl ::core::clone::Clone for PSS_THREAD_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PSS_VA_CLONE_INFORMATION { + pub VaCloneHandle: super::super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSS_VA_CLONE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSS_VA_CLONE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSS_VA_SPACE_ENTRY { + pub BaseAddress: *mut ::core::ffi::c_void, + pub AllocationBase: *mut ::core::ffi::c_void, + pub AllocationProtect: u32, + pub RegionSize: usize, + pub State: u32, + pub Protect: u32, + pub Type: u32, + pub TimeDateStamp: u32, + pub SizeOfImage: u32, + pub ImageBase: *mut ::core::ffi::c_void, + pub CheckSum: u32, + pub MappedFileNameLength: u16, + pub MappedFileName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for PSS_VA_SPACE_ENTRY {} +impl ::core::clone::Clone for PSS_VA_SPACE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSS_VA_SPACE_INFORMATION { + pub RegionCount: u32, +} +impl ::core::marker::Copy for PSS_VA_SPACE_INFORMATION {} +impl ::core::clone::Clone for PSS_VA_SPACE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/ToolHelp/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/ToolHelp/mod.rs new file mode 100644 index 000000000..501933eee --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/ToolHelp/mod.rs @@ -0,0 +1,182 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateToolhelp32Snapshot(dwflags : CREATE_TOOLHELP_SNAPSHOT_FLAGS, th32processid : u32) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Heap32First(lphe : *mut HEAPENTRY32, th32processid : u32, th32heapid : usize) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Heap32ListFirst(hsnapshot : super::super::super::Foundation:: HANDLE, lphl : *mut HEAPLIST32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Heap32ListNext(hsnapshot : super::super::super::Foundation:: HANDLE, lphl : *mut HEAPLIST32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Heap32Next(lphe : *mut HEAPENTRY32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Module32First(hsnapshot : super::super::super::Foundation:: HANDLE, lpme : *mut MODULEENTRY32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Module32FirstW(hsnapshot : super::super::super::Foundation:: HANDLE, lpme : *mut MODULEENTRY32W) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Module32Next(hsnapshot : super::super::super::Foundation:: HANDLE, lpme : *mut MODULEENTRY32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Module32NextW(hsnapshot : super::super::super::Foundation:: HANDLE, lpme : *mut MODULEENTRY32W) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Process32First(hsnapshot : super::super::super::Foundation:: HANDLE, lppe : *mut PROCESSENTRY32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Process32FirstW(hsnapshot : super::super::super::Foundation:: HANDLE, lppe : *mut PROCESSENTRY32W) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Process32Next(hsnapshot : super::super::super::Foundation:: HANDLE, lppe : *mut PROCESSENTRY32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Process32NextW(hsnapshot : super::super::super::Foundation:: HANDLE, lppe : *mut PROCESSENTRY32W) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Thread32First(hsnapshot : super::super::super::Foundation:: HANDLE, lpte : *mut THREADENTRY32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Thread32Next(hsnapshot : super::super::super::Foundation:: HANDLE, lpte : *mut THREADENTRY32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Toolhelp32ReadProcessMemory(th32processid : u32, lpbaseaddress : *const ::core::ffi::c_void, lpbuffer : *mut ::core::ffi::c_void, cbread : usize, lpnumberofbytesread : *mut usize) -> super::super::super::Foundation:: BOOL); +pub const HF32_DEFAULT: u32 = 1u32; +pub const HF32_SHARED: u32 = 2u32; +pub const LF32_FIXED: HEAPENTRY32_FLAGS = 1u32; +pub const LF32_FREE: HEAPENTRY32_FLAGS = 2u32; +pub const LF32_MOVEABLE: HEAPENTRY32_FLAGS = 4u32; +pub const MAX_MODULE_NAME32: u32 = 255u32; +pub const TH32CS_INHERIT: CREATE_TOOLHELP_SNAPSHOT_FLAGS = 2147483648u32; +pub const TH32CS_SNAPALL: CREATE_TOOLHELP_SNAPSHOT_FLAGS = 15u32; +pub const TH32CS_SNAPHEAPLIST: CREATE_TOOLHELP_SNAPSHOT_FLAGS = 1u32; +pub const TH32CS_SNAPMODULE: CREATE_TOOLHELP_SNAPSHOT_FLAGS = 8u32; +pub const TH32CS_SNAPMODULE32: CREATE_TOOLHELP_SNAPSHOT_FLAGS = 16u32; +pub const TH32CS_SNAPPROCESS: CREATE_TOOLHELP_SNAPSHOT_FLAGS = 2u32; +pub const TH32CS_SNAPTHREAD: CREATE_TOOLHELP_SNAPSHOT_FLAGS = 4u32; +pub type CREATE_TOOLHELP_SNAPSHOT_FLAGS = u32; +pub type HEAPENTRY32_FLAGS = u32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HEAPENTRY32 { + pub dwSize: usize, + pub hHandle: super::super::super::Foundation::HANDLE, + pub dwAddress: usize, + pub dwBlockSize: usize, + pub dwFlags: HEAPENTRY32_FLAGS, + pub dwLockCount: u32, + pub dwResvd: u32, + pub th32ProcessID: u32, + pub th32HeapID: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HEAPENTRY32 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HEAPENTRY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HEAPLIST32 { + pub dwSize: usize, + pub th32ProcessID: u32, + pub th32HeapID: usize, + pub dwFlags: u32, +} +impl ::core::marker::Copy for HEAPLIST32 {} +impl ::core::clone::Clone for HEAPLIST32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MODULEENTRY32 { + pub dwSize: u32, + pub th32ModuleID: u32, + pub th32ProcessID: u32, + pub GlblcntUsage: u32, + pub ProccntUsage: u32, + pub modBaseAddr: *mut u8, + pub modBaseSize: u32, + pub hModule: super::super::super::Foundation::HMODULE, + pub szModule: [u8; 256], + pub szExePath: [u8; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MODULEENTRY32 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MODULEENTRY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MODULEENTRY32W { + pub dwSize: u32, + pub th32ModuleID: u32, + pub th32ProcessID: u32, + pub GlblcntUsage: u32, + pub ProccntUsage: u32, + pub modBaseAddr: *mut u8, + pub modBaseSize: u32, + pub hModule: super::super::super::Foundation::HMODULE, + pub szModule: [u16; 256], + pub szExePath: [u16; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MODULEENTRY32W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MODULEENTRY32W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSENTRY32 { + pub dwSize: u32, + pub cntUsage: u32, + pub th32ProcessID: u32, + pub th32DefaultHeapID: usize, + pub th32ModuleID: u32, + pub cntThreads: u32, + pub th32ParentProcessID: u32, + pub pcPriClassBase: i32, + pub dwFlags: u32, + pub szExeFile: [u8; 260], +} +impl ::core::marker::Copy for PROCESSENTRY32 {} +impl ::core::clone::Clone for PROCESSENTRY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSENTRY32W { + pub dwSize: u32, + pub cntUsage: u32, + pub th32ProcessID: u32, + pub th32DefaultHeapID: usize, + pub th32ModuleID: u32, + pub cntThreads: u32, + pub th32ParentProcessID: u32, + pub pcPriClassBase: i32, + pub dwFlags: u32, + pub szExeFile: [u16; 260], +} +impl ::core::marker::Copy for PROCESSENTRY32W {} +impl ::core::clone::Clone for PROCESSENTRY32W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct THREADENTRY32 { + pub dwSize: u32, + pub cntUsage: u32, + pub th32ThreadID: u32, + pub th32OwnerProcessID: u32, + pub tpBasePri: i32, + pub tpDeltaPri: i32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for THREADENTRY32 {} +impl ::core::clone::Clone for THREADENTRY32 { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/mod.rs new file mode 100644 index 000000000..8cee42fd4 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Diagnostics/mod.rs @@ -0,0 +1,15 @@ +#[cfg(feature = "Win32_System_Diagnostics_Ceip")] +#[doc = "Required features: `\"Win32_System_Diagnostics_Ceip\"`"] +pub mod Ceip; +#[cfg(feature = "Win32_System_Diagnostics_Debug")] +#[doc = "Required features: `\"Win32_System_Diagnostics_Debug\"`"] +pub mod Debug; +#[cfg(feature = "Win32_System_Diagnostics_Etw")] +#[doc = "Required features: `\"Win32_System_Diagnostics_Etw\"`"] +pub mod Etw; +#[cfg(feature = "Win32_System_Diagnostics_ProcessSnapshotting")] +#[doc = "Required features: `\"Win32_System_Diagnostics_ProcessSnapshotting\"`"] +pub mod ProcessSnapshotting; +#[cfg(feature = "Win32_System_Diagnostics_ToolHelp")] +#[doc = "Required features: `\"Win32_System_Diagnostics_ToolHelp\"`"] +pub mod ToolHelp; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/DistributedTransactionCoordinator/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/DistributedTransactionCoordinator/mod.rs new file mode 100644 index 000000000..402f59601 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/DistributedTransactionCoordinator/mod.rs @@ -0,0 +1,423 @@ +::windows_targets::link!("xolehlp.dll" "cdecl" fn DtcGetTransactionManager(i_pszhost : ::windows_sys::core::PCSTR, i_psztmname : ::windows_sys::core::PCSTR, i_riid : *const ::windows_sys::core::GUID, i_dwreserved1 : u32, i_wcbreserved2 : u16, i_pvreserved2 : *const ::core::ffi::c_void, o_ppvobject : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("xolehlp.dll" "cdecl" fn DtcGetTransactionManagerC(i_pszhost : ::windows_sys::core::PCSTR, i_psztmname : ::windows_sys::core::PCSTR, i_riid : *const ::windows_sys::core::GUID, i_dwreserved1 : u32, i_wcbreserved2 : u16, i_pvreserved2 : *const ::core::ffi::c_void, o_ppvobject : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("xolehlp.dll" "cdecl" fn DtcGetTransactionManagerExA(i_pszhost : ::windows_sys::core::PCSTR, i_psztmname : ::windows_sys::core::PCSTR, i_riid : *const ::windows_sys::core::GUID, i_grfoptions : u32, i_pvconfigparams : *mut ::core::ffi::c_void, o_ppvobject : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("xolehlp.dll" "cdecl" fn DtcGetTransactionManagerExW(i_pwszhost : ::windows_sys::core::PCWSTR, i_pwsztmname : ::windows_sys::core::PCWSTR, i_riid : *const ::windows_sys::core::GUID, i_grfoptions : u32, i_pvconfigparams : *mut ::core::ffi::c_void, o_ppvobject : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +pub type IDtcLuConfigure = *mut ::core::ffi::c_void; +pub type IDtcLuRecovery = *mut ::core::ffi::c_void; +pub type IDtcLuRecoveryFactory = *mut ::core::ffi::c_void; +pub type IDtcLuRecoveryInitiatedByDtc = *mut ::core::ffi::c_void; +pub type IDtcLuRecoveryInitiatedByDtcStatusWork = *mut ::core::ffi::c_void; +pub type IDtcLuRecoveryInitiatedByDtcTransWork = *mut ::core::ffi::c_void; +pub type IDtcLuRecoveryInitiatedByLu = *mut ::core::ffi::c_void; +pub type IDtcLuRecoveryInitiatedByLuWork = *mut ::core::ffi::c_void; +pub type IDtcLuRmEnlistment = *mut ::core::ffi::c_void; +pub type IDtcLuRmEnlistmentFactory = *mut ::core::ffi::c_void; +pub type IDtcLuRmEnlistmentSink = *mut ::core::ffi::c_void; +pub type IDtcLuSubordinateDtc = *mut ::core::ffi::c_void; +pub type IDtcLuSubordinateDtcFactory = *mut ::core::ffi::c_void; +pub type IDtcLuSubordinateDtcSink = *mut ::core::ffi::c_void; +pub type IDtcNetworkAccessConfig = *mut ::core::ffi::c_void; +pub type IDtcNetworkAccessConfig2 = *mut ::core::ffi::c_void; +pub type IDtcNetworkAccessConfig3 = *mut ::core::ffi::c_void; +pub type IDtcToXaHelper = *mut ::core::ffi::c_void; +pub type IDtcToXaHelperFactory = *mut ::core::ffi::c_void; +pub type IDtcToXaHelperSinglePipe = *mut ::core::ffi::c_void; +pub type IDtcToXaMapper = *mut ::core::ffi::c_void; +pub type IGetDispenser = *mut ::core::ffi::c_void; +pub type IKernelTransaction = *mut ::core::ffi::c_void; +pub type ILastResourceManager = *mut ::core::ffi::c_void; +pub type IPrepareInfo = *mut ::core::ffi::c_void; +pub type IPrepareInfo2 = *mut ::core::ffi::c_void; +pub type IRMHelper = *mut ::core::ffi::c_void; +pub type IResourceManager = *mut ::core::ffi::c_void; +pub type IResourceManager2 = *mut ::core::ffi::c_void; +pub type IResourceManagerFactory = *mut ::core::ffi::c_void; +pub type IResourceManagerFactory2 = *mut ::core::ffi::c_void; +pub type IResourceManagerRejoinable = *mut ::core::ffi::c_void; +pub type IResourceManagerSink = *mut ::core::ffi::c_void; +pub type ITipHelper = *mut ::core::ffi::c_void; +pub type ITipPullSink = *mut ::core::ffi::c_void; +pub type ITipTransaction = *mut ::core::ffi::c_void; +pub type ITmNodeName = *mut ::core::ffi::c_void; +pub type ITransaction = *mut ::core::ffi::c_void; +pub type ITransaction2 = *mut ::core::ffi::c_void; +pub type ITransactionCloner = *mut ::core::ffi::c_void; +pub type ITransactionDispenser = *mut ::core::ffi::c_void; +pub type ITransactionEnlistmentAsync = *mut ::core::ffi::c_void; +pub type ITransactionExport = *mut ::core::ffi::c_void; +pub type ITransactionExportFactory = *mut ::core::ffi::c_void; +pub type ITransactionImport = *mut ::core::ffi::c_void; +pub type ITransactionImportWhereabouts = *mut ::core::ffi::c_void; +pub type ITransactionLastEnlistmentAsync = *mut ::core::ffi::c_void; +pub type ITransactionLastResourceAsync = *mut ::core::ffi::c_void; +pub type ITransactionOptions = *mut ::core::ffi::c_void; +pub type ITransactionOutcomeEvents = *mut ::core::ffi::c_void; +pub type ITransactionPhase0EnlistmentAsync = *mut ::core::ffi::c_void; +pub type ITransactionPhase0Factory = *mut ::core::ffi::c_void; +pub type ITransactionPhase0NotifyAsync = *mut ::core::ffi::c_void; +pub type ITransactionReceiver = *mut ::core::ffi::c_void; +pub type ITransactionReceiverFactory = *mut ::core::ffi::c_void; +pub type ITransactionResource = *mut ::core::ffi::c_void; +pub type ITransactionResourceAsync = *mut ::core::ffi::c_void; +pub type ITransactionTransmitter = *mut ::core::ffi::c_void; +pub type ITransactionTransmitterFactory = *mut ::core::ffi::c_void; +pub type ITransactionVoterBallotAsync2 = *mut ::core::ffi::c_void; +pub type ITransactionVoterFactory2 = *mut ::core::ffi::c_void; +pub type ITransactionVoterNotifyAsync2 = *mut ::core::ffi::c_void; +pub type IXAConfig = *mut ::core::ffi::c_void; +pub type IXAObtainRMInfo = *mut ::core::ffi::c_void; +pub type IXATransLookup = *mut ::core::ffi::c_void; +pub type IXATransLookup2 = *mut ::core::ffi::c_void; +pub const CLSID_MSDtcTransaction: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x39f8d76b_0928_11d1_97df_00c04fb9618a); +pub const CLSID_MSDtcTransactionManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5b18ab61_091d_11d1_97df_00c04fb9618a); +pub const CLUSTERRESOURCE_APPLICATIONTYPE: APPLICATIONTYPE = 1i32; +pub const DTCINITIATEDRECOVERYWORK_CHECKLUSTATUS: DTCINITIATEDRECOVERYWORK = 1i32; +pub const DTCINITIATEDRECOVERYWORK_TMDOWN: DTCINITIATEDRECOVERYWORK = 3i32; +pub const DTCINITIATEDRECOVERYWORK_TRANS: DTCINITIATEDRECOVERYWORK = 2i32; +pub const DTCINSTALL_E_CLIENT_ALREADY_INSTALLED: i32 = 384i32; +pub const DTCINSTALL_E_SERVER_ALREADY_INSTALLED: i32 = 385i32; +pub const DTCLUCOMPARESTATESCONFIRMATION_CONFIRM: DTCLUCOMPARESTATESCONFIRMATION = 1i32; +pub const DTCLUCOMPARESTATESCONFIRMATION_PROTOCOL: DTCLUCOMPARESTATESCONFIRMATION = 2i32; +pub const DTCLUCOMPARESTATESERROR_PROTOCOL: DTCLUCOMPARESTATESERROR = 1i32; +pub const DTCLUCOMPARESTATESRESPONSE_OK: DTCLUCOMPARESTATESRESPONSE = 1i32; +pub const DTCLUCOMPARESTATESRESPONSE_PROTOCOL: DTCLUCOMPARESTATESRESPONSE = 2i32; +pub const DTCLUCOMPARESTATE_COMMITTED: DTCLUCOMPARESTATE = 1i32; +pub const DTCLUCOMPARESTATE_HEURISTICCOMMITTED: DTCLUCOMPARESTATE = 2i32; +pub const DTCLUCOMPARESTATE_HEURISTICMIXED: DTCLUCOMPARESTATE = 3i32; +pub const DTCLUCOMPARESTATE_HEURISTICRESET: DTCLUCOMPARESTATE = 4i32; +pub const DTCLUCOMPARESTATE_INDOUBT: DTCLUCOMPARESTATE = 5i32; +pub const DTCLUCOMPARESTATE_RESET: DTCLUCOMPARESTATE = 6i32; +pub const DTCLUXLNCONFIRMATION_COLDWARMMISMATCH: DTCLUXLNCONFIRMATION = 3i32; +pub const DTCLUXLNCONFIRMATION_CONFIRM: DTCLUXLNCONFIRMATION = 1i32; +pub const DTCLUXLNCONFIRMATION_LOGNAMEMISMATCH: DTCLUXLNCONFIRMATION = 2i32; +pub const DTCLUXLNCONFIRMATION_OBSOLETE: DTCLUXLNCONFIRMATION = 4i32; +pub const DTCLUXLNERROR_COLDWARMMISMATCH: DTCLUXLNERROR = 3i32; +pub const DTCLUXLNERROR_LOGNAMEMISMATCH: DTCLUXLNERROR = 2i32; +pub const DTCLUXLNERROR_PROTOCOL: DTCLUXLNERROR = 1i32; +pub const DTCLUXLNRESPONSE_COLDWARMMISMATCH: DTCLUXLNRESPONSE = 4i32; +pub const DTCLUXLNRESPONSE_LOGNAMEMISMATCH: DTCLUXLNRESPONSE = 3i32; +pub const DTCLUXLNRESPONSE_OK_SENDCONFIRMATION: DTCLUXLNRESPONSE = 2i32; +pub const DTCLUXLNRESPONSE_OK_SENDOURXLNBACK: DTCLUXLNRESPONSE = 1i32; +pub const DTCLUXLN_COLD: DTCLUXLN = 1i32; +pub const DTCLUXLN_WARM: DTCLUXLN = 2i32; +pub const DTC_INSTALL_OVERWRITE_CLIENT: u32 = 1u32; +pub const DTC_INSTALL_OVERWRITE_SERVER: u32 = 2u32; +pub const DTC_STATUS_CONTINUING: DTC_STATUS_ = 5i32; +pub const DTC_STATUS_E_CANTCONTROL: DTC_STATUS_ = 8i32; +pub const DTC_STATUS_FAILED: DTC_STATUS_ = 9i32; +pub const DTC_STATUS_PAUSED: DTC_STATUS_ = 4i32; +pub const DTC_STATUS_PAUSING: DTC_STATUS_ = 3i32; +pub const DTC_STATUS_STARTED: DTC_STATUS_ = 2i32; +pub const DTC_STATUS_STARTING: DTC_STATUS_ = 1i32; +pub const DTC_STATUS_STOPPED: DTC_STATUS_ = 7i32; +pub const DTC_STATUS_STOPPING: DTC_STATUS_ = 6i32; +pub const DTC_STATUS_UNKNOWN: DTC_STATUS_ = 0i32; +pub const INCOMING_AUTHENTICATION_REQUIRED: AUTHENTICATION_LEVEL = 1i32; +pub const ISOFLAG_OPTIMISTIC: ISOFLAG = 16i32; +pub const ISOFLAG_READONLY: ISOFLAG = 32i32; +pub const ISOFLAG_RETAIN_ABORT: ISOFLAG = 8i32; +pub const ISOFLAG_RETAIN_ABORT_DC: ISOFLAG = 4i32; +pub const ISOFLAG_RETAIN_ABORT_NO: ISOFLAG = 12i32; +pub const ISOFLAG_RETAIN_BOTH: ISOFLAG = 10i32; +pub const ISOFLAG_RETAIN_COMMIT: ISOFLAG = 2i32; +pub const ISOFLAG_RETAIN_COMMIT_DC: ISOFLAG = 1i32; +pub const ISOFLAG_RETAIN_COMMIT_NO: ISOFLAG = 3i32; +pub const ISOFLAG_RETAIN_DONTCARE: ISOFLAG = 5i32; +pub const ISOFLAG_RETAIN_NONE: ISOFLAG = 15i32; +pub const ISOLATIONLEVEL_BROWSE: ISOLATIONLEVEL = 256i32; +pub const ISOLATIONLEVEL_CHAOS: ISOLATIONLEVEL = 16i32; +pub const ISOLATIONLEVEL_CURSORSTABILITY: ISOLATIONLEVEL = 4096i32; +pub const ISOLATIONLEVEL_ISOLATED: ISOLATIONLEVEL = 1048576i32; +pub const ISOLATIONLEVEL_READCOMMITTED: ISOLATIONLEVEL = 4096i32; +pub const ISOLATIONLEVEL_READUNCOMMITTED: ISOLATIONLEVEL = 256i32; +pub const ISOLATIONLEVEL_REPEATABLEREAD: ISOLATIONLEVEL = 65536i32; +pub const ISOLATIONLEVEL_SERIALIZABLE: ISOLATIONLEVEL = 1048576i32; +pub const ISOLATIONLEVEL_UNSPECIFIED: ISOLATIONLEVEL = -1i32; +pub const LOCAL_APPLICATIONTYPE: APPLICATIONTYPE = 0i32; +pub const MAXBQUALSIZE: u32 = 64u32; +pub const MAXGTRIDSIZE: u32 = 64u32; +pub const MAXINFOSIZE: u32 = 256u32; +pub const MAX_TRAN_DESC: TX_MISC_CONSTANTS = 40i32; +pub const MUTUAL_AUTHENTICATION_REQUIRED: AUTHENTICATION_LEVEL = 2i32; +pub const NO_AUTHENTICATION_REQUIRED: AUTHENTICATION_LEVEL = 0i32; +pub const OLE_TM_CONFIG_VERSION_1: u32 = 1u32; +pub const OLE_TM_CONFIG_VERSION_2: u32 = 2u32; +pub const OLE_TM_FLAG_INTERNAL_TO_TM: u32 = 1073741824u32; +pub const OLE_TM_FLAG_NOAGILERECOVERY: u32 = 2u32; +pub const OLE_TM_FLAG_NODEMANDSTART: u32 = 1u32; +pub const OLE_TM_FLAG_NONE: u32 = 0u32; +pub const OLE_TM_FLAG_QUERY_SERVICE_LOCKSTATUS: u32 = 2147483648u32; +pub const RMNAMESZ: u32 = 32u32; +pub const TMASYNC: i32 = -2147483648i32; +pub const TMENDRSCAN: i32 = 8388608i32; +pub const TMER_INVAL: i32 = -2i32; +pub const TMER_PROTO: i32 = -3i32; +pub const TMER_TMERR: i32 = -1i32; +pub const TMFAIL: i32 = 536870912i32; +pub const TMJOIN: i32 = 2097152i32; +pub const TMMIGRATE: i32 = 1048576i32; +pub const TMMULTIPLE: i32 = 4194304i32; +pub const TMNOFLAGS: i32 = 0i32; +pub const TMNOMIGRATE: i32 = 2i32; +pub const TMNOWAIT: i32 = 268435456i32; +pub const TMONEPHASE: i32 = 1073741824i32; +pub const TMREGISTER: i32 = 1i32; +pub const TMRESUME: i32 = 134217728i32; +pub const TMSTARTRSCAN: i32 = 16777216i32; +pub const TMSUCCESS: i32 = 67108864i32; +pub const TMSUSPEND: i32 = 33554432i32; +pub const TMUSEASYNC: i32 = 4i32; +pub const TM_JOIN: u32 = 2u32; +pub const TM_OK: u32 = 0u32; +pub const TM_RESUME: u32 = 1u32; +pub const XACTCONST_TIMEOUTINFINITE: XACTCONST = 0i32; +pub const XACTHEURISTIC_ABORT: XACTHEURISTIC = 1i32; +pub const XACTHEURISTIC_COMMIT: XACTHEURISTIC = 2i32; +pub const XACTHEURISTIC_DAMAGE: XACTHEURISTIC = 3i32; +pub const XACTHEURISTIC_DANGER: XACTHEURISTIC = 4i32; +pub const XACTRM_NOREADONLYPREPARES: XACTRM = 2i32; +pub const XACTRM_OPTIMISTICLASTWINS: XACTRM = 1i32; +pub const XACTSTAT_ABORTED: XACTSTAT = 512i32; +pub const XACTSTAT_ABORTING: XACTSTAT = 256i32; +pub const XACTSTAT_ALL: XACTSTAT = 524287i32; +pub const XACTSTAT_CLOSED: XACTSTAT = 262144i32; +pub const XACTSTAT_COMMITRETAINING: XACTSTAT = 128i32; +pub const XACTSTAT_COMMITTED: XACTSTAT = 1024i32; +pub const XACTSTAT_COMMITTING: XACTSTAT = 64i32; +pub const XACTSTAT_FORCED_ABORT: XACTSTAT = 32768i32; +pub const XACTSTAT_FORCED_COMMIT: XACTSTAT = 65536i32; +pub const XACTSTAT_HEURISTIC_ABORT: XACTSTAT = 2048i32; +pub const XACTSTAT_HEURISTIC_COMMIT: XACTSTAT = 4096i32; +pub const XACTSTAT_HEURISTIC_DAMAGE: XACTSTAT = 8192i32; +pub const XACTSTAT_HEURISTIC_DANGER: XACTSTAT = 16384i32; +pub const XACTSTAT_INDOUBT: XACTSTAT = 131072i32; +pub const XACTSTAT_NONE: XACTSTAT = 0i32; +pub const XACTSTAT_NOTPREPARED: XACTSTAT = 524227i32; +pub const XACTSTAT_OPEN: XACTSTAT = 3i32; +pub const XACTSTAT_OPENNORMAL: XACTSTAT = 1i32; +pub const XACTSTAT_OPENREFUSED: XACTSTAT = 2i32; +pub const XACTSTAT_PREPARED: XACTSTAT = 8i32; +pub const XACTSTAT_PREPARERETAINED: XACTSTAT = 32i32; +pub const XACTSTAT_PREPARERETAINING: XACTSTAT = 16i32; +pub const XACTSTAT_PREPARING: XACTSTAT = 4i32; +pub const XACTTC_ASYNC: XACTTC = 4i32; +pub const XACTTC_ASYNC_PHASEONE: XACTTC = 4i32; +pub const XACTTC_NONE: XACTTC = 0i32; +pub const XACTTC_SYNC: XACTTC = 2i32; +pub const XACTTC_SYNC_PHASEONE: XACTTC = 1i32; +pub const XACTTC_SYNC_PHASETWO: XACTTC = 2i32; +pub const XACT_E_CONNECTION_REQUEST_DENIED: XACT_DTC_CONSTANTS = -2147168000i32; +pub const XACT_E_DUPLICATE_GUID: XACT_DTC_CONSTANTS = -2147167998i32; +pub const XACT_E_DUPLICATE_LU: XACT_DTC_CONSTANTS = -2147167991i32; +pub const XACT_E_DUPLICATE_TRANSID: XACT_DTC_CONSTANTS = -2147167989i32; +pub const XACT_E_LRMRECOVERYALREADYDONE: XACT_DTC_CONSTANTS = -2147167982i32; +pub const XACT_E_LU_BUSY: XACT_DTC_CONSTANTS = -2147167988i32; +pub const XACT_E_LU_DOWN: XACT_DTC_CONSTANTS = -2147167986i32; +pub const XACT_E_LU_NOT_CONNECTED: XACT_DTC_CONSTANTS = -2147167990i32; +pub const XACT_E_LU_NOT_FOUND: XACT_DTC_CONSTANTS = -2147167992i32; +pub const XACT_E_LU_NO_RECOVERY_PROCESS: XACT_DTC_CONSTANTS = -2147167987i32; +pub const XACT_E_LU_RECOVERING: XACT_DTC_CONSTANTS = -2147167985i32; +pub const XACT_E_LU_RECOVERY_MISMATCH: XACT_DTC_CONSTANTS = -2147167984i32; +pub const XACT_E_NOLASTRESOURCEINTERFACE: XACT_DTC_CONSTANTS = -2147167981i32; +pub const XACT_E_NOTSINGLEPHASE: XACT_DTC_CONSTANTS = -2147167997i32; +pub const XACT_E_PROTOCOL: XACT_DTC_CONSTANTS = -2147167995i32; +pub const XACT_E_RECOVERYALREADYDONE: XACT_DTC_CONSTANTS = -2147167996i32; +pub const XACT_E_RECOVERY_FAILED: XACT_DTC_CONSTANTS = -2147167993i32; +pub const XACT_E_RM_FAILURE: XACT_DTC_CONSTANTS = -2147167994i32; +pub const XACT_E_RM_UNAVAILABLE: XACT_DTC_CONSTANTS = -2147167983i32; +pub const XACT_E_TOOMANY_ENLISTMENTS: XACT_DTC_CONSTANTS = -2147167999i32; +pub const XACT_OK_NONOTIFY: XACT_DTC_CONSTANTS = 315649i32; +pub const XACT_S_NONOTIFY: XACT_DTC_CONSTANTS = 315648i32; +pub const XAER_ASYNC: i32 = -2i32; +pub const XAER_DUPID: i32 = -8i32; +pub const XAER_INVAL: i32 = -5i32; +pub const XAER_NOTA: i32 = -4i32; +pub const XAER_OUTSIDE: i32 = -9i32; +pub const XAER_PROTO: i32 = -6i32; +pub const XAER_RMERR: i32 = -3i32; +pub const XAER_RMFAIL: i32 = -7i32; +pub const XA_FMTID_DTC: u32 = 4478019u32; +pub const XA_FMTID_DTC_VER1: u32 = 21255235u32; +pub const XA_HEURCOM: u32 = 7u32; +pub const XA_HEURHAZ: u32 = 8u32; +pub const XA_HEURMIX: u32 = 5u32; +pub const XA_HEURRB: u32 = 6u32; +pub const XA_NOMIGRATE: u32 = 9u32; +pub const XA_OK: u32 = 0u32; +pub const XA_RBBASE: u32 = 100u32; +pub const XA_RBCOMMFAIL: u32 = 101u32; +pub const XA_RBDEADLOCK: u32 = 102u32; +pub const XA_RBEND: u32 = 107u32; +pub const XA_RBINTEGRITY: u32 = 103u32; +pub const XA_RBOTHER: u32 = 104u32; +pub const XA_RBPROTO: u32 = 105u32; +pub const XA_RBROLLBACK: u32 = 100u32; +pub const XA_RBTIMEOUT: u32 = 106u32; +pub const XA_RBTRANSIENT: u32 = 107u32; +pub const XA_RDONLY: u32 = 3u32; +pub const XA_RETRY: u32 = 4u32; +pub const XA_SWITCH_F_DTC: u32 = 1u32; +pub const XIDDATASIZE: u32 = 128u32; +pub const dwUSER_MS_SQLSERVER: XACT_DTC_CONSTANTS = 65535i32; +pub type APPLICATIONTYPE = i32; +pub type AUTHENTICATION_LEVEL = i32; +pub type DTCINITIATEDRECOVERYWORK = i32; +pub type DTCLUCOMPARESTATE = i32; +pub type DTCLUCOMPARESTATESCONFIRMATION = i32; +pub type DTCLUCOMPARESTATESERROR = i32; +pub type DTCLUCOMPARESTATESRESPONSE = i32; +pub type DTCLUXLN = i32; +pub type DTCLUXLNCONFIRMATION = i32; +pub type DTCLUXLNERROR = i32; +pub type DTCLUXLNRESPONSE = i32; +pub type DTC_STATUS_ = i32; +pub type ISOFLAG = i32; +pub type ISOLATIONLEVEL = i32; +pub type TX_MISC_CONSTANTS = i32; +pub type XACTCONST = i32; +pub type XACTHEURISTIC = i32; +pub type XACTRM = i32; +pub type XACTSTAT = i32; +pub type XACTTC = i32; +pub type XACT_DTC_CONSTANTS = i32; +#[repr(C)] +pub struct BOID { + pub rgb: [u8; 16], +} +impl ::core::marker::Copy for BOID {} +impl ::core::clone::Clone for BOID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OLE_TM_CONFIG_PARAMS_V1 { + pub dwVersion: u32, + pub dwcConcurrencyHint: u32, +} +impl ::core::marker::Copy for OLE_TM_CONFIG_PARAMS_V1 {} +impl ::core::clone::Clone for OLE_TM_CONFIG_PARAMS_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OLE_TM_CONFIG_PARAMS_V2 { + pub dwVersion: u32, + pub dwcConcurrencyHint: u32, + pub applicationType: APPLICATIONTYPE, + pub clusterResourceId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for OLE_TM_CONFIG_PARAMS_V2 {} +impl ::core::clone::Clone for OLE_TM_CONFIG_PARAMS_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROXY_CONFIG_PARAMS { + pub wcThreadsMax: u16, +} +impl ::core::marker::Copy for PROXY_CONFIG_PARAMS {} +impl ::core::clone::Clone for PROXY_CONFIG_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XACTOPT { + pub ulTimeout: u32, + pub szDescription: [u8; 40], +} +impl ::core::marker::Copy for XACTOPT {} +impl ::core::clone::Clone for XACTOPT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct XACTSTATS { + pub cOpen: u32, + pub cCommitting: u32, + pub cCommitted: u32, + pub cAborting: u32, + pub cAborted: u32, + pub cInDoubt: u32, + pub cHeuristicDecision: u32, + pub timeTransactionsUp: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for XACTSTATS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for XACTSTATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XACTTRANSINFO { + pub uow: BOID, + pub isoLevel: i32, + pub isoFlags: u32, + pub grfTCSupported: u32, + pub grfRMSupported: u32, + pub grfTCSupportedRetaining: u32, + pub grfRMSupportedRetaining: u32, +} +impl ::core::marker::Copy for XACTTRANSINFO {} +impl ::core::clone::Clone for XACTTRANSINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XID { + pub formatID: i32, + pub gtrid_length: i32, + pub bqual_length: i32, + pub data: [u8; 128], +} +impl ::core::marker::Copy for XID {} +impl ::core::clone::Clone for XID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct xa_switch_t { + pub name: [u8; 32], + pub flags: i32, + pub version: i32, + pub xa_open_entry: isize, + pub xa_close_entry: isize, + pub xa_start_entry: isize, + pub xa_end_entry: isize, + pub xa_rollback_entry: isize, + pub xa_prepare_entry: isize, + pub xa_commit_entry: isize, + pub xa_recover_entry: isize, + pub xa_forget_entry: isize, + pub xa_complete_entry: isize, +} +impl ::core::marker::Copy for xa_switch_t {} +impl ::core::clone::Clone for xa_switch_t { + fn clone(&self) -> Self { + *self + } +} +pub type DTC_GET_TRANSACTION_MANAGER = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type DTC_GET_TRANSACTION_MANAGER_EX_A = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type DTC_GET_TRANSACTION_MANAGER_EX_W = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type DTC_INSTALL_CLIENT = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type XA_CLOSE_EPT = ::core::option::Option i32>; +pub type XA_COMMIT_EPT = ::core::option::Option i32>; +pub type XA_COMPLETE_EPT = ::core::option::Option i32>; +pub type XA_END_EPT = ::core::option::Option i32>; +pub type XA_FORGET_EPT = ::core::option::Option i32>; +pub type XA_OPEN_EPT = ::core::option::Option i32>; +pub type XA_PREPARE_EPT = ::core::option::Option i32>; +pub type XA_RECOVER_EPT = ::core::option::Option i32>; +pub type XA_ROLLBACK_EPT = ::core::option::Option i32>; +pub type XA_START_EPT = ::core::option::Option i32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Environment/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Environment/mod.rs new file mode 100644 index 000000000..71aaebd73 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Environment/mod.rs @@ -0,0 +1,279 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vertdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CallEnclave(lproutine : isize, lpparameter : *const ::core::ffi::c_void, fwaitforthread : super::super::Foundation:: BOOL, lpreturnvalue : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateEnclave(hprocess : super::super::Foundation:: HANDLE, lpaddress : *const ::core::ffi::c_void, dwsize : usize, dwinitialcommitment : usize, flenclavetype : u32, lpenclaveinformation : *const ::core::ffi::c_void, dwinfolength : u32, lpenclaveerror : *mut u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateEnvironmentBlock(lpenvironment : *mut *mut ::core::ffi::c_void, htoken : super::super::Foundation:: HANDLE, binherit : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-enclave-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteEnclave(lpaddress : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DestroyEnvironmentBlock(lpenvironment : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("vertdll.dll" "system" fn EnclaveGetAttestationReport(enclavedata : *const u8, report : *mut ::core::ffi::c_void, buffersize : u32, outputsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vertdll.dll" "system" fn EnclaveGetEnclaveInformation(informationsize : u32, enclaveinformation : *mut ENCLAVE_INFORMATION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vertdll.dll" "system" fn EnclaveSealData(datatoencrypt : *const ::core::ffi::c_void, datatoencryptsize : u32, identitypolicy : ENCLAVE_SEALING_IDENTITY_POLICY, runtimepolicy : u32, protectedblob : *mut ::core::ffi::c_void, buffersize : u32, protectedblobsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vertdll.dll" "system" fn EnclaveUnsealData(protectedblob : *const ::core::ffi::c_void, protectedblobsize : u32, decrypteddata : *mut ::core::ffi::c_void, buffersize : u32, decrypteddatasize : *mut u32, sealingidentity : *mut ENCLAVE_IDENTITY, unsealingflags : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vertdll.dll" "system" fn EnclaveVerifyAttestationReport(enclavetype : u32, report : *const ::core::ffi::c_void, reportsize : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn ExpandEnvironmentStringsA(lpsrc : ::windows_sys::core::PCSTR, lpdst : ::windows_sys::core::PSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExpandEnvironmentStringsForUserA(htoken : super::super::Foundation:: HANDLE, lpsrc : ::windows_sys::core::PCSTR, lpdest : ::windows_sys::core::PSTR, dwsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExpandEnvironmentStringsForUserW(htoken : super::super::Foundation:: HANDLE, lpsrc : ::windows_sys::core::PCWSTR, lpdest : ::windows_sys::core::PWSTR, dwsize : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn ExpandEnvironmentStringsW(lpsrc : ::windows_sys::core::PCWSTR, lpdst : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeEnvironmentStringsA(penv : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeEnvironmentStringsW(penv : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetCommandLineA() -> ::windows_sys::core::PCSTR); +::windows_targets::link!("kernel32.dll" "system" fn GetCommandLineW() -> ::windows_sys::core::PCWSTR); +::windows_targets::link!("kernel32.dll" "system" fn GetCurrentDirectoryA(nbufferlength : u32, lpbuffer : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetCurrentDirectoryW(nbufferlength : u32, lpbuffer : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetEnvironmentStrings() -> ::windows_sys::core::PSTR); +::windows_targets::link!("kernel32.dll" "system" fn GetEnvironmentStringsW() -> ::windows_sys::core::PWSTR); +::windows_targets::link!("kernel32.dll" "system" fn GetEnvironmentVariableA(lpname : ::windows_sys::core::PCSTR, lpbuffer : ::windows_sys::core::PSTR, nsize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetEnvironmentVariableW(lpname : ::windows_sys::core::PCWSTR, lpbuffer : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitializeEnclave(hprocess : super::super::Foundation:: HANDLE, lpaddress : *const ::core::ffi::c_void, lpenclaveinformation : *const ::core::ffi::c_void, dwinfolength : u32, lpenclaveerror : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsEnclaveTypeSupported(flenclavetype : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadEnclaveData(hprocess : super::super::Foundation:: HANDLE, lpaddress : *const ::core::ffi::c_void, lpbuffer : *const ::core::ffi::c_void, nsize : usize, flprotect : u32, lppageinformation : *const ::core::ffi::c_void, dwinfolength : u32, lpnumberofbyteswritten : *mut usize, lpenclaveerror : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-enclave-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadEnclaveImageA(lpenclaveaddress : *const ::core::ffi::c_void, lpimagename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-enclave-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadEnclaveImageW(lpenclaveaddress : *const ::core::ffi::c_void, lpimagename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NeedCurrentDirectoryForExePathA(exename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NeedCurrentDirectoryForExePathW(exename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCurrentDirectoryA(lppathname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCurrentDirectoryW(lppathname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetEnvironmentStringsW(newenvironment : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetEnvironmentVariableA(lpname : ::windows_sys::core::PCSTR, lpvalue : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetEnvironmentVariableW(lpname : ::windows_sys::core::PCWSTR, lpvalue : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vertdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TerminateEnclave(lpaddress : *const ::core::ffi::c_void, fwait : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +pub const ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE: u32 = 4u32; +pub const ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED: u32 = 2u32; +pub const ENCLAVE_FLAG_FULL_DEBUG_ENABLED: u32 = 1u32; +pub const ENCLAVE_IDENTITY_POLICY_SEAL_EXACT_CODE: ENCLAVE_SEALING_IDENTITY_POLICY = 1i32; +pub const ENCLAVE_IDENTITY_POLICY_SEAL_INVALID: ENCLAVE_SEALING_IDENTITY_POLICY = 0i32; +pub const ENCLAVE_IDENTITY_POLICY_SEAL_SAME_AUTHOR: ENCLAVE_SEALING_IDENTITY_POLICY = 5i32; +pub const ENCLAVE_IDENTITY_POLICY_SEAL_SAME_FAMILY: ENCLAVE_SEALING_IDENTITY_POLICY = 4i32; +pub const ENCLAVE_IDENTITY_POLICY_SEAL_SAME_IMAGE: ENCLAVE_SEALING_IDENTITY_POLICY = 3i32; +pub const ENCLAVE_IDENTITY_POLICY_SEAL_SAME_PRIMARY_CODE: ENCLAVE_SEALING_IDENTITY_POLICY = 2i32; +pub const ENCLAVE_REPORT_DATA_LENGTH: u32 = 64u32; +pub const ENCLAVE_RUNTIME_POLICY_ALLOW_DYNAMIC_DEBUG: u32 = 2u32; +pub const ENCLAVE_RUNTIME_POLICY_ALLOW_FULL_DEBUG: u32 = 1u32; +pub const ENCLAVE_UNSEAL_FLAG_STALE_KEY: u32 = 1u32; +pub const ENCLAVE_VBS_BASIC_KEY_FLAG_DEBUG_KEY: u32 = 8u32; +pub const ENCLAVE_VBS_BASIC_KEY_FLAG_FAMILY_ID: u32 = 2u32; +pub const ENCLAVE_VBS_BASIC_KEY_FLAG_IMAGE_ID: u32 = 4u32; +pub const ENCLAVE_VBS_BASIC_KEY_FLAG_MEASUREMENT: u32 = 1u32; +pub const VBS_ENCLAVE_REPORT_PKG_HEADER_VERSION_CURRENT: u32 = 1u32; +pub const VBS_ENCLAVE_REPORT_SIGNATURE_SCHEME_SHA256_RSA_PSS_SHA256: u32 = 1u32; +pub const VBS_ENCLAVE_REPORT_VERSION_CURRENT: u32 = 1u32; +pub const VBS_ENCLAVE_VARDATA_INVALID: u32 = 0u32; +pub const VBS_ENCLAVE_VARDATA_MODULE: u32 = 1u32; +pub type ENCLAVE_SEALING_IDENTITY_POLICY = i32; +#[repr(C, packed(1))] +pub struct ENCLAVE_IDENTITY { + pub OwnerId: [u8; 32], + pub UniqueId: [u8; 32], + pub AuthorId: [u8; 32], + pub FamilyId: [u8; 16], + pub ImageId: [u8; 16], + pub EnclaveSvn: u32, + pub SecureKernelSvn: u32, + pub PlatformSvn: u32, + pub Flags: u32, + pub SigningLevel: u32, + pub EnclaveType: u32, +} +impl ::core::marker::Copy for ENCLAVE_IDENTITY {} +impl ::core::clone::Clone for ENCLAVE_IDENTITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENCLAVE_INFORMATION { + pub EnclaveType: u32, + pub Reserved: u32, + pub BaseAddress: *mut ::core::ffi::c_void, + pub Size: usize, + pub Identity: ENCLAVE_IDENTITY, +} +impl ::core::marker::Copy for ENCLAVE_INFORMATION {} +impl ::core::clone::Clone for ENCLAVE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENCLAVE_VBS_BASIC_KEY_REQUEST { + pub RequestSize: u32, + pub Flags: u32, + pub EnclaveSVN: u32, + pub SystemKeyID: u32, + pub CurrentSystemKeyID: u32, +} +impl ::core::marker::Copy for ENCLAVE_VBS_BASIC_KEY_REQUEST {} +impl ::core::clone::Clone for ENCLAVE_VBS_BASIC_KEY_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBS_BASIC_ENCLAVE_EXCEPTION_AMD64 { + pub ExceptionCode: u32, + pub NumberParameters: u32, + pub ExceptionInformation: [usize; 3], + pub ExceptionRAX: usize, + pub ExceptionRCX: usize, + pub ExceptionRIP: usize, + pub ExceptionRFLAGS: usize, + pub ExceptionRSP: usize, +} +impl ::core::marker::Copy for VBS_BASIC_ENCLAVE_EXCEPTION_AMD64 {} +impl ::core::clone::Clone for VBS_BASIC_ENCLAVE_EXCEPTION_AMD64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBS_BASIC_ENCLAVE_SYSCALL_PAGE { + pub ReturnFromEnclave: VBS_BASIC_ENCLAVE_BASIC_CALL_RETURN_FROM_ENCLAVE, + pub ReturnFromException: VBS_BASIC_ENCLAVE_BASIC_CALL_RETURN_FROM_EXCEPTION, + pub TerminateThread: VBS_BASIC_ENCLAVE_BASIC_CALL_TERMINATE_THREAD, + pub InterruptThread: VBS_BASIC_ENCLAVE_BASIC_CALL_INTERRUPT_THREAD, + pub CommitPages: VBS_BASIC_ENCLAVE_BASIC_CALL_COMMIT_PAGES, + pub DecommitPages: VBS_BASIC_ENCLAVE_BASIC_CALL_DECOMMIT_PAGES, + pub ProtectPages: VBS_BASIC_ENCLAVE_BASIC_CALL_PROTECT_PAGES, + pub CreateThread: VBS_BASIC_ENCLAVE_BASIC_CALL_CREATE_THREAD, + pub GetEnclaveInformation: VBS_BASIC_ENCLAVE_BASIC_CALL_GET_ENCLAVE_INFORMATION, + pub GenerateKey: VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_KEY, + pub GenerateReport: VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_REPORT, + pub VerifyReport: VBS_BASIC_ENCLAVE_BASIC_CALL_VERIFY_REPORT, + pub GenerateRandomData: VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_RANDOM_DATA, +} +impl ::core::marker::Copy for VBS_BASIC_ENCLAVE_SYSCALL_PAGE {} +impl ::core::clone::Clone for VBS_BASIC_ENCLAVE_SYSCALL_PAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR32 { + pub ThreadContext: [u32; 4], + pub EntryPoint: u32, + pub StackPointer: u32, + pub ExceptionEntryPoint: u32, + pub ExceptionStack: u32, + pub ExceptionActive: u32, +} +impl ::core::marker::Copy for VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR32 {} +impl ::core::clone::Clone for VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR64 { + pub ThreadContext: [u64; 4], + pub EntryPoint: u64, + pub StackPointer: u64, + pub ExceptionEntryPoint: u64, + pub ExceptionStack: u64, + pub ExceptionActive: u32, +} +impl ::core::marker::Copy for VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR64 {} +impl ::core::clone::Clone for VBS_BASIC_ENCLAVE_THREAD_DESCRIPTOR64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct VBS_ENCLAVE_REPORT { + pub ReportSize: u32, + pub ReportVersion: u32, + pub EnclaveData: [u8; 64], + pub EnclaveIdentity: ENCLAVE_IDENTITY, +} +impl ::core::marker::Copy for VBS_ENCLAVE_REPORT {} +impl ::core::clone::Clone for VBS_ENCLAVE_REPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct VBS_ENCLAVE_REPORT_MODULE { + pub Header: VBS_ENCLAVE_REPORT_VARDATA_HEADER, + pub UniqueId: [u8; 32], + pub AuthorId: [u8; 32], + pub FamilyId: [u8; 16], + pub ImageId: [u8; 16], + pub Svn: u32, + pub ModuleName: [u16; 1], +} +impl ::core::marker::Copy for VBS_ENCLAVE_REPORT_MODULE {} +impl ::core::clone::Clone for VBS_ENCLAVE_REPORT_MODULE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct VBS_ENCLAVE_REPORT_PKG_HEADER { + pub PackageSize: u32, + pub Version: u32, + pub SignatureScheme: u32, + pub SignedStatementSize: u32, + pub SignatureSize: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for VBS_ENCLAVE_REPORT_PKG_HEADER {} +impl ::core::clone::Clone for VBS_ENCLAVE_REPORT_PKG_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct VBS_ENCLAVE_REPORT_VARDATA_HEADER { + pub DataType: u32, + pub Size: u32, +} +impl ::core::marker::Copy for VBS_ENCLAVE_REPORT_VARDATA_HEADER {} +impl ::core::clone::Clone for VBS_ENCLAVE_REPORT_VARDATA_HEADER { + fn clone(&self) -> Self { + *self + } +} +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_COMMIT_PAGES = ::core::option::Option i32>; +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_CREATE_THREAD = ::core::option::Option i32>; +#[cfg(target_arch = "x86")] +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_CREATE_THREAD = ::core::option::Option i32>; +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_DECOMMIT_PAGES = ::core::option::Option i32>; +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_KEY = ::core::option::Option i32>; +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_RANDOM_DATA = ::core::option::Option i32>; +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_GENERATE_REPORT = ::core::option::Option i32>; +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_GET_ENCLAVE_INFORMATION = ::core::option::Option i32>; +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_INTERRUPT_THREAD = ::core::option::Option i32>; +#[cfg(target_arch = "x86")] +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_INTERRUPT_THREAD = ::core::option::Option i32>; +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_PROTECT_PAGES = ::core::option::Option i32>; +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_RETURN_FROM_ENCLAVE = ::core::option::Option ()>; +#[cfg(target_arch = "x86_64")] +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_RETURN_FROM_EXCEPTION = ::core::option::Option i32>; +#[cfg(any(target_arch = "aarch64", target_arch = "x86"))] +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_RETURN_FROM_EXCEPTION = ::core::option::Option i32>; +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_TERMINATE_THREAD = ::core::option::Option i32>; +#[cfg(target_arch = "x86")] +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_TERMINATE_THREAD = ::core::option::Option i32>; +pub type VBS_BASIC_ENCLAVE_BASIC_CALL_VERIFY_REPORT = ::core::option::Option i32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/ErrorReporting/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/ErrorReporting/mod.rs new file mode 100644 index 000000000..9ba0dc795 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/ErrorReporting/mod.rs @@ -0,0 +1,523 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("faultrep.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddERExcludedApplicationA(szapplication : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("faultrep.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddERExcludedApplicationW(wszapplication : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +::windows_targets::link!("faultrep.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] fn ReportFault(pep : *const super::Diagnostics::Debug:: EXCEPTION_POINTERS, dwopt : u32) -> EFaultRepRetVal); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wer.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WerAddExcludedApplication(pwzexename : ::windows_sys::core::PCWSTR, ballusers : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wer.dll" "system" fn WerFreeString(pwszstr : ::windows_sys::core::PCWSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WerGetFlags(hprocess : super::super::Foundation:: HANDLE, pdwflags : *mut WER_FAULT_REPORTING) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerRegisterAdditionalProcess(processid : u32, captureextrainfoforthreadid : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerRegisterAppLocalDump(localappdatarelativepath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerRegisterCustomMetadata(key : ::windows_sys::core::PCWSTR, value : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerRegisterExcludedMemoryBlock(address : *const ::core::ffi::c_void, size : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerRegisterFile(pwzfile : ::windows_sys::core::PCWSTR, regfiletype : WER_REGISTER_FILE_TYPE, dwflags : WER_FILE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerRegisterMemoryBlock(pvaddress : *const ::core::ffi::c_void, dwsize : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerRegisterRuntimeExceptionModule(pwszoutofprocesscallbackdll : ::windows_sys::core::PCWSTR, pcontext : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wer.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WerRemoveExcludedApplication(pwzexename : ::windows_sys::core::PCWSTR, ballusers : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +::windows_targets::link!("wer.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] fn WerReportAddDump(hreporthandle : HREPORT, hprocess : super::super::Foundation:: HANDLE, hthread : super::super::Foundation:: HANDLE, dumptype : WER_DUMP_TYPE, pexceptionparam : *const WER_EXCEPTION_INFORMATION, pdumpcustomoptions : *const WER_DUMP_CUSTOM_OPTIONS, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wer.dll" "system" fn WerReportAddFile(hreporthandle : HREPORT, pwzpath : ::windows_sys::core::PCWSTR, repfiletype : WER_FILE_TYPE, dwfileflags : WER_FILE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wer.dll" "system" fn WerReportCloseHandle(hreporthandle : HREPORT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wer.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WerReportCreate(pwzeventtype : ::windows_sys::core::PCWSTR, reptype : WER_REPORT_TYPE, preportinformation : *const WER_REPORT_INFORMATION, phreporthandle : *mut HREPORT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("faultrep.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WerReportHang(hwndhungapp : super::super::Foundation:: HWND, pwzhungapplicationname : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wer.dll" "system" fn WerReportSetParameter(hreporthandle : HREPORT, dwparamid : u32, pwzname : ::windows_sys::core::PCWSTR, pwzvalue : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wer.dll" "system" fn WerReportSetUIOption(hreporthandle : HREPORT, repuitypeid : WER_REPORT_UI, pwzvalue : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wer.dll" "system" fn WerReportSubmit(hreporthandle : HREPORT, consent : WER_CONSENT, dwflags : WER_SUBMIT_FLAGS, psubmitresult : *mut WER_SUBMIT_RESULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerSetFlags(dwflags : WER_FAULT_REPORTING) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wer.dll" "system" fn WerStoreClose(hreportstore : HREPORTSTORE) -> ()); +::windows_targets::link!("wer.dll" "system" fn WerStoreGetFirstReportKey(hreportstore : HREPORTSTORE, ppszreportkey : *mut ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wer.dll" "system" fn WerStoreGetNextReportKey(hreportstore : HREPORTSTORE, ppszreportkey : *mut ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wer.dll" "system" fn WerStoreGetReportCount(hreportstore : HREPORTSTORE, pdwreportcount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wer.dll" "system" fn WerStoreGetSizeOnDisk(hreportstore : HREPORTSTORE, pqwsizeinbytes : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wer.dll" "system" fn WerStoreOpen(repstoretype : REPORT_STORE_TYPES, phreportstore : *mut HREPORTSTORE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wer.dll" "system" fn WerStorePurge() -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wer.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WerStoreQueryReportMetadataV1(hreportstore : HREPORTSTORE, pszreportkey : ::windows_sys::core::PCWSTR, preportmetadata : *mut WER_REPORT_METADATA_V1) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wer.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WerStoreQueryReportMetadataV2(hreportstore : HREPORTSTORE, pszreportkey : ::windows_sys::core::PCWSTR, preportmetadata : *mut WER_REPORT_METADATA_V2) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wer.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WerStoreQueryReportMetadataV3(hreportstore : HREPORTSTORE, pszreportkey : ::windows_sys::core::PCWSTR, preportmetadata : *mut WER_REPORT_METADATA_V3) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wer.dll" "system" fn WerStoreUploadReport(hreportstore : HREPORTSTORE, pszreportkey : ::windows_sys::core::PCWSTR, dwflags : u32, psubmitresult : *mut WER_SUBMIT_RESULT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerUnregisterAdditionalProcess(processid : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerUnregisterAppLocalDump() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerUnregisterCustomMetadata(key : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerUnregisterExcludedMemoryBlock(address : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerUnregisterFile(pwzfilepath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerUnregisterMemoryBlock(pvaddress : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn WerUnregisterRuntimeExceptionModule(pwszoutofprocesscallbackdll : ::windows_sys::core::PCWSTR, pcontext : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +pub const APPCRASH_EVENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("APPCRASH"); +pub const E_STORE_INVALID: REPORT_STORE_TYPES = 4i32; +pub const E_STORE_MACHINE_ARCHIVE: REPORT_STORE_TYPES = 2i32; +pub const E_STORE_MACHINE_QUEUE: REPORT_STORE_TYPES = 3i32; +pub const E_STORE_USER_ARCHIVE: REPORT_STORE_TYPES = 0i32; +pub const E_STORE_USER_QUEUE: REPORT_STORE_TYPES = 1i32; +pub const PACKAGED_APPCRASH_EVENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MoAppCrash"); +pub const WER_DUMP_AUXILIARY: u32 = 2u32; +pub const WER_DUMP_MASK_START: u32 = 1u32; +pub const WER_DUMP_NOHEAP_ONQUEUE: u32 = 1u32; +pub const WER_FAULT_REPORTING_ALWAYS_SHOW_UI: WER_FAULT_REPORTING = 16u32; +pub const WER_FAULT_REPORTING_CRITICAL: u32 = 512u32; +pub const WER_FAULT_REPORTING_DISABLE_SNAPSHOT_CRASH: u32 = 128u32; +pub const WER_FAULT_REPORTING_DISABLE_SNAPSHOT_HANG: u32 = 256u32; +pub const WER_FAULT_REPORTING_DURABLE: u32 = 1024u32; +pub const WER_FAULT_REPORTING_FLAG_DISABLE_THREAD_SUSPENSION: WER_FAULT_REPORTING = 4u32; +pub const WER_FAULT_REPORTING_FLAG_NOHEAP: WER_FAULT_REPORTING = 1u32; +pub const WER_FAULT_REPORTING_FLAG_NO_HEAP_ON_QUEUE: u32 = 64u32; +pub const WER_FAULT_REPORTING_FLAG_QUEUE: WER_FAULT_REPORTING = 2u32; +pub const WER_FAULT_REPORTING_FLAG_QUEUE_UPLOAD: WER_FAULT_REPORTING = 8u32; +pub const WER_FAULT_REPORTING_NO_UI: u32 = 32u32; +pub const WER_FILE_ANONYMOUS_DATA: WER_FILE = 2u32; +pub const WER_FILE_COMPRESSED: u32 = 4u32; +pub const WER_FILE_DELETE_WHEN_DONE: WER_FILE = 1u32; +pub const WER_MAX_APPLICATION_NAME_LENGTH: u32 = 128u32; +pub const WER_MAX_BUCKET_ID_STRING_LENGTH: u32 = 260u32; +pub const WER_MAX_DESCRIPTION_LENGTH: u32 = 512u32; +pub const WER_MAX_EVENT_NAME_LENGTH: u32 = 64u32; +pub const WER_MAX_FRIENDLY_EVENT_NAME_LENGTH: u32 = 128u32; +pub const WER_MAX_LOCAL_DUMP_SUBPATH_LENGTH: u32 = 64u32; +pub const WER_MAX_PARAM_COUNT: u32 = 10u32; +pub const WER_MAX_PARAM_LENGTH: u32 = 260u32; +pub const WER_MAX_PREFERRED_MODULES: u32 = 128u32; +pub const WER_MAX_PREFERRED_MODULES_BUFFER: u32 = 256u32; +pub const WER_MAX_REGISTERED_DUMPCOLLECTION: u32 = 4u32; +pub const WER_MAX_REGISTERED_ENTRIES: u32 = 512u32; +pub const WER_MAX_REGISTERED_METADATA: u32 = 8u32; +pub const WER_MAX_REGISTERED_RUNTIME_EXCEPTION_MODULES: u32 = 16u32; +pub const WER_MAX_SIGNATURE_NAME_LENGTH: u32 = 128u32; +pub const WER_MAX_TOTAL_PARAM_LENGTH: u32 = 1720u32; +pub const WER_METADATA_KEY_MAX_LENGTH: u32 = 64u32; +pub const WER_METADATA_VALUE_MAX_LENGTH: u32 = 128u32; +pub const WER_P0: u32 = 0u32; +pub const WER_P1: u32 = 1u32; +pub const WER_P2: u32 = 2u32; +pub const WER_P3: u32 = 3u32; +pub const WER_P4: u32 = 4u32; +pub const WER_P5: u32 = 5u32; +pub const WER_P6: u32 = 6u32; +pub const WER_P7: u32 = 7u32; +pub const WER_P8: u32 = 8u32; +pub const WER_P9: u32 = 9u32; +pub const WER_RUNTIME_EXCEPTION_DEBUGGER_LAUNCH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("OutOfProcessExceptionEventDebuggerLaunchCallback"); +pub const WER_RUNTIME_EXCEPTION_EVENT_FUNCTION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("OutOfProcessExceptionEventCallback"); +pub const WER_RUNTIME_EXCEPTION_EVENT_SIGNATURE_FUNCTION: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("OutOfProcessExceptionEventSignatureCallback"); +pub const WER_SUBMIT_ADD_REGISTERED_DATA: WER_SUBMIT_FLAGS = 16u32; +pub const WER_SUBMIT_ARCHIVE_PARAMETERS_ONLY: WER_SUBMIT_FLAGS = 4096u32; +pub const WER_SUBMIT_BYPASS_DATA_THROTTLING: WER_SUBMIT_FLAGS = 2048u32; +pub const WER_SUBMIT_BYPASS_NETWORK_COST_THROTTLING: u32 = 32768u32; +pub const WER_SUBMIT_BYPASS_POWER_THROTTLING: u32 = 16384u32; +pub const WER_SUBMIT_HONOR_RECOVERY: WER_SUBMIT_FLAGS = 1u32; +pub const WER_SUBMIT_HONOR_RESTART: WER_SUBMIT_FLAGS = 2u32; +pub const WER_SUBMIT_NO_ARCHIVE: WER_SUBMIT_FLAGS = 256u32; +pub const WER_SUBMIT_NO_CLOSE_UI: WER_SUBMIT_FLAGS = 64u32; +pub const WER_SUBMIT_NO_QUEUE: WER_SUBMIT_FLAGS = 128u32; +pub const WER_SUBMIT_OUTOFPROCESS: WER_SUBMIT_FLAGS = 32u32; +pub const WER_SUBMIT_OUTOFPROCESS_ASYNC: WER_SUBMIT_FLAGS = 1024u32; +pub const WER_SUBMIT_QUEUE: WER_SUBMIT_FLAGS = 4u32; +pub const WER_SUBMIT_REPORT_MACHINE_ID: WER_SUBMIT_FLAGS = 8192u32; +pub const WER_SUBMIT_SHOW_DEBUG: WER_SUBMIT_FLAGS = 8u32; +pub const WER_SUBMIT_START_MINIMIZED: WER_SUBMIT_FLAGS = 512u32; +pub const WerConsentAlwaysPrompt: WER_CONSENT = 4i32; +pub const WerConsentApproved: WER_CONSENT = 2i32; +pub const WerConsentDenied: WER_CONSENT = 3i32; +pub const WerConsentMax: WER_CONSENT = 5i32; +pub const WerConsentNotAsked: WER_CONSENT = 1i32; +pub const WerCustomAction: WER_SUBMIT_RESULT = 9i32; +pub const WerDisabled: WER_SUBMIT_RESULT = 5i32; +pub const WerDisabledQueue: WER_SUBMIT_RESULT = 7i32; +pub const WerDumpTypeHeapDump: WER_DUMP_TYPE = 3i32; +pub const WerDumpTypeMax: WER_DUMP_TYPE = 5i32; +pub const WerDumpTypeMicroDump: WER_DUMP_TYPE = 1i32; +pub const WerDumpTypeMiniDump: WER_DUMP_TYPE = 2i32; +pub const WerDumpTypeNone: WER_DUMP_TYPE = 0i32; +pub const WerDumpTypeTriageDump: WER_DUMP_TYPE = 4i32; +pub const WerFileTypeAuxiliaryDump: WER_FILE_TYPE = 8i32; +pub const WerFileTypeCustomDump: WER_FILE_TYPE = 7i32; +pub const WerFileTypeEtlTrace: WER_FILE_TYPE = 9i32; +pub const WerFileTypeHeapdump: WER_FILE_TYPE = 3i32; +pub const WerFileTypeMax: WER_FILE_TYPE = 10i32; +pub const WerFileTypeMicrodump: WER_FILE_TYPE = 1i32; +pub const WerFileTypeMinidump: WER_FILE_TYPE = 2i32; +pub const WerFileTypeOther: WER_FILE_TYPE = 5i32; +pub const WerFileTypeTriagedump: WER_FILE_TYPE = 6i32; +pub const WerFileTypeUserDocument: WER_FILE_TYPE = 4i32; +pub const WerRegFileTypeMax: WER_REGISTER_FILE_TYPE = 3i32; +pub const WerRegFileTypeOther: WER_REGISTER_FILE_TYPE = 2i32; +pub const WerRegFileTypeUserDocument: WER_REGISTER_FILE_TYPE = 1i32; +pub const WerReportApplicationCrash: WER_REPORT_TYPE = 2i32; +pub const WerReportApplicationHang: WER_REPORT_TYPE = 3i32; +pub const WerReportAsync: WER_SUBMIT_RESULT = 8i32; +pub const WerReportCancelled: WER_SUBMIT_RESULT = 6i32; +pub const WerReportCritical: WER_REPORT_TYPE = 1i32; +pub const WerReportDebug: WER_SUBMIT_RESULT = 3i32; +pub const WerReportFailed: WER_SUBMIT_RESULT = 4i32; +pub const WerReportInvalid: WER_REPORT_TYPE = 5i32; +pub const WerReportKernel: WER_REPORT_TYPE = 4i32; +pub const WerReportNonCritical: WER_REPORT_TYPE = 0i32; +pub const WerReportQueued: WER_SUBMIT_RESULT = 1i32; +pub const WerReportUploaded: WER_SUBMIT_RESULT = 2i32; +pub const WerReportUploadedCab: WER_SUBMIT_RESULT = 11i32; +pub const WerStorageLocationNotFound: WER_SUBMIT_RESULT = 12i32; +pub const WerSubmitResultMax: WER_SUBMIT_RESULT = 13i32; +pub const WerThrottled: WER_SUBMIT_RESULT = 10i32; +pub const WerUIAdditionalDataDlgHeader: WER_REPORT_UI = 1i32; +pub const WerUICloseDlgBody: WER_REPORT_UI = 9i32; +pub const WerUICloseDlgButtonText: WER_REPORT_UI = 10i32; +pub const WerUICloseDlgHeader: WER_REPORT_UI = 8i32; +pub const WerUICloseText: WER_REPORT_UI = 7i32; +pub const WerUIConsentDlgBody: WER_REPORT_UI = 4i32; +pub const WerUIConsentDlgHeader: WER_REPORT_UI = 3i32; +pub const WerUIIconFilePath: WER_REPORT_UI = 2i32; +pub const WerUIMax: WER_REPORT_UI = 11i32; +pub const WerUIOfflineSolutionCheckText: WER_REPORT_UI = 6i32; +pub const WerUIOnlineSolutionCheckText: WER_REPORT_UI = 5i32; +pub const frrvErr: EFaultRepRetVal = 3i32; +pub const frrvErrAnotherInstance: EFaultRepRetVal = 8i32; +pub const frrvErrDoubleFault: EFaultRepRetVal = 10i32; +pub const frrvErrNoDW: EFaultRepRetVal = 4i32; +pub const frrvErrNoMemory: EFaultRepRetVal = 9i32; +pub const frrvErrTimeout: EFaultRepRetVal = 5i32; +pub const frrvLaunchDebugger: EFaultRepRetVal = 6i32; +pub const frrvOk: EFaultRepRetVal = 0i32; +pub const frrvOkHeadless: EFaultRepRetVal = 7i32; +pub const frrvOkManifest: EFaultRepRetVal = 1i32; +pub const frrvOkQueued: EFaultRepRetVal = 2i32; +pub type EFaultRepRetVal = i32; +pub type REPORT_STORE_TYPES = i32; +pub type WER_CONSENT = i32; +pub type WER_DUMP_TYPE = i32; +pub type WER_FAULT_REPORTING = u32; +pub type WER_FILE = u32; +pub type WER_FILE_TYPE = i32; +pub type WER_REGISTER_FILE_TYPE = i32; +pub type WER_REPORT_TYPE = i32; +pub type WER_REPORT_UI = i32; +pub type WER_SUBMIT_FLAGS = u32; +pub type WER_SUBMIT_RESULT = i32; +pub type HREPORT = isize; +pub type HREPORTSTORE = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WER_DUMP_CUSTOM_OPTIONS { + pub dwSize: u32, + pub dwMask: u32, + pub dwDumpFlags: u32, + pub bOnlyThisThread: super::super::Foundation::BOOL, + pub dwExceptionThreadFlags: u32, + pub dwOtherThreadFlags: u32, + pub dwExceptionThreadExFlags: u32, + pub dwOtherThreadExFlags: u32, + pub dwPreferredModuleFlags: u32, + pub dwOtherModuleFlags: u32, + pub wzPreferredModuleList: [u16; 256], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WER_DUMP_CUSTOM_OPTIONS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WER_DUMP_CUSTOM_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WER_DUMP_CUSTOM_OPTIONS_V2 { + pub dwSize: u32, + pub dwMask: u32, + pub dwDumpFlags: u32, + pub bOnlyThisThread: super::super::Foundation::BOOL, + pub dwExceptionThreadFlags: u32, + pub dwOtherThreadFlags: u32, + pub dwExceptionThreadExFlags: u32, + pub dwOtherThreadExFlags: u32, + pub dwPreferredModuleFlags: u32, + pub dwOtherModuleFlags: u32, + pub wzPreferredModuleList: [u16; 256], + pub dwPreferredModuleResetFlags: u32, + pub dwOtherModuleResetFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WER_DUMP_CUSTOM_OPTIONS_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WER_DUMP_CUSTOM_OPTIONS_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WER_DUMP_CUSTOM_OPTIONS_V3 { + pub dwSize: u32, + pub dwMask: u32, + pub dwDumpFlags: u32, + pub bOnlyThisThread: super::super::Foundation::BOOL, + pub dwExceptionThreadFlags: u32, + pub dwOtherThreadFlags: u32, + pub dwExceptionThreadExFlags: u32, + pub dwOtherThreadExFlags: u32, + pub dwPreferredModuleFlags: u32, + pub dwOtherModuleFlags: u32, + pub wzPreferredModuleList: [u16; 256], + pub dwPreferredModuleResetFlags: u32, + pub dwOtherModuleResetFlags: u32, + pub pvDumpKey: *mut ::core::ffi::c_void, + pub hSnapshot: super::super::Foundation::HANDLE, + pub dwThreadID: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WER_DUMP_CUSTOM_OPTIONS_V3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WER_DUMP_CUSTOM_OPTIONS_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub struct WER_EXCEPTION_INFORMATION { + pub pExceptionPointers: *mut super::Diagnostics::Debug::EXCEPTION_POINTERS, + pub bClientPointers: super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for WER_EXCEPTION_INFORMATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for WER_EXCEPTION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WER_REPORT_INFORMATION { + pub dwSize: u32, + pub hProcess: super::super::Foundation::HANDLE, + pub wzConsentKey: [u16; 64], + pub wzFriendlyEventName: [u16; 128], + pub wzApplicationName: [u16; 128], + pub wzApplicationPath: [u16; 260], + pub wzDescription: [u16; 512], + pub hwndParent: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WER_REPORT_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WER_REPORT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WER_REPORT_INFORMATION_V3 { + pub dwSize: u32, + pub hProcess: super::super::Foundation::HANDLE, + pub wzConsentKey: [u16; 64], + pub wzFriendlyEventName: [u16; 128], + pub wzApplicationName: [u16; 128], + pub wzApplicationPath: [u16; 260], + pub wzDescription: [u16; 512], + pub hwndParent: super::super::Foundation::HWND, + pub wzNamespacePartner: [u16; 64], + pub wzNamespaceGroup: [u16; 64], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WER_REPORT_INFORMATION_V3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WER_REPORT_INFORMATION_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WER_REPORT_INFORMATION_V4 { + pub dwSize: u32, + pub hProcess: super::super::Foundation::HANDLE, + pub wzConsentKey: [u16; 64], + pub wzFriendlyEventName: [u16; 128], + pub wzApplicationName: [u16; 128], + pub wzApplicationPath: [u16; 260], + pub wzDescription: [u16; 512], + pub hwndParent: super::super::Foundation::HWND, + pub wzNamespacePartner: [u16; 64], + pub wzNamespaceGroup: [u16; 64], + pub rgbApplicationIdentity: [u8; 16], + pub hSnapshot: super::super::Foundation::HANDLE, + pub hDeleteFilesImpersonationToken: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WER_REPORT_INFORMATION_V4 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WER_REPORT_INFORMATION_V4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WER_REPORT_INFORMATION_V5 { + pub dwSize: u32, + pub hProcess: super::super::Foundation::HANDLE, + pub wzConsentKey: [u16; 64], + pub wzFriendlyEventName: [u16; 128], + pub wzApplicationName: [u16; 128], + pub wzApplicationPath: [u16; 260], + pub wzDescription: [u16; 512], + pub hwndParent: super::super::Foundation::HWND, + pub wzNamespacePartner: [u16; 64], + pub wzNamespaceGroup: [u16; 64], + pub rgbApplicationIdentity: [u8; 16], + pub hSnapshot: super::super::Foundation::HANDLE, + pub hDeleteFilesImpersonationToken: super::super::Foundation::HANDLE, + pub submitResultMax: WER_SUBMIT_RESULT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WER_REPORT_INFORMATION_V5 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WER_REPORT_INFORMATION_V5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WER_REPORT_METADATA_V1 { + pub Signature: WER_REPORT_SIGNATURE, + pub BucketId: ::windows_sys::core::GUID, + pub ReportId: ::windows_sys::core::GUID, + pub CreationTime: super::super::Foundation::FILETIME, + pub SizeInBytes: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WER_REPORT_METADATA_V1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WER_REPORT_METADATA_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WER_REPORT_METADATA_V2 { + pub Signature: WER_REPORT_SIGNATURE, + pub BucketId: ::windows_sys::core::GUID, + pub ReportId: ::windows_sys::core::GUID, + pub CreationTime: super::super::Foundation::FILETIME, + pub SizeInBytes: u64, + pub CabId: [u16; 260], + pub ReportStatus: u32, + pub ReportIntegratorId: ::windows_sys::core::GUID, + pub NumberOfFiles: u32, + pub SizeOfFileNames: u32, + pub FileNames: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WER_REPORT_METADATA_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WER_REPORT_METADATA_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WER_REPORT_METADATA_V3 { + pub Signature: WER_REPORT_SIGNATURE, + pub BucketId: ::windows_sys::core::GUID, + pub ReportId: ::windows_sys::core::GUID, + pub CreationTime: super::super::Foundation::FILETIME, + pub SizeInBytes: u64, + pub CabId: [u16; 260], + pub ReportStatus: u32, + pub ReportIntegratorId: ::windows_sys::core::GUID, + pub NumberOfFiles: u32, + pub SizeOfFileNames: u32, + pub FileNames: ::windows_sys::core::PWSTR, + pub FriendlyEventName: [u16; 128], + pub ApplicationName: [u16; 128], + pub ApplicationPath: [u16; 260], + pub Description: [u16; 512], + pub BucketIdString: [u16; 260], + pub LegacyBucketId: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WER_REPORT_METADATA_V3 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WER_REPORT_METADATA_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WER_REPORT_PARAMETER { + pub Name: [u16; 129], + pub Value: [u16; 260], +} +impl ::core::marker::Copy for WER_REPORT_PARAMETER {} +impl ::core::clone::Clone for WER_REPORT_PARAMETER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WER_REPORT_SIGNATURE { + pub EventName: [u16; 65], + pub Parameters: [WER_REPORT_PARAMETER; 10], +} +impl ::core::marker::Copy for WER_REPORT_SIGNATURE {} +impl ::core::clone::Clone for WER_REPORT_SIGNATURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub struct WER_RUNTIME_EXCEPTION_INFORMATION { + pub dwSize: u32, + pub hProcess: super::super::Foundation::HANDLE, + pub hThread: super::super::Foundation::HANDLE, + pub exceptionRecord: super::Diagnostics::Debug::EXCEPTION_RECORD, + pub context: super::Diagnostics::Debug::CONTEXT, + pub pwszReportId: ::windows_sys::core::PCWSTR, + pub bIsFatal: super::super::Foundation::BOOL, + pub dwReserved: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for WER_RUNTIME_EXCEPTION_INFORMATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for WER_RUNTIME_EXCEPTION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub type PFN_WER_RUNTIME_EXCEPTION_DEBUGGER_LAUNCH = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub type PFN_WER_RUNTIME_EXCEPTION_EVENT = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub type PFN_WER_RUNTIME_EXCEPTION_EVENT_SIGNATURE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type pfn_ADDEREXCLUDEDAPPLICATIONA = ::core::option::Option EFaultRepRetVal>; +pub type pfn_ADDEREXCLUDEDAPPLICATIONW = ::core::option::Option EFaultRepRetVal>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub type pfn_REPORTFAULT = ::core::option::Option EFaultRepRetVal>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/EventCollector/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/EventCollector/mod.rs new file mode 100644 index 000000000..9f6862533 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/EventCollector/mod.rs @@ -0,0 +1,148 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wecapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EcClose(object : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wecapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EcDeleteSubscription(subscriptionname : ::windows_sys::core::PCWSTR, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wecapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EcEnumNextSubscription(subscriptionenum : isize, subscriptionnamebuffersize : u32, subscriptionnamebuffer : ::windows_sys::core::PWSTR, subscriptionnamebufferused : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wecapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EcGetObjectArrayProperty(objectarray : isize, propertyid : EC_SUBSCRIPTION_PROPERTY_ID, arrayindex : u32, flags : u32, propertyvaluebuffersize : u32, propertyvaluebuffer : *mut EC_VARIANT, propertyvaluebufferused : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wecapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EcGetObjectArraySize(objectarray : isize, objectarraysize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wecapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EcGetSubscriptionProperty(subscription : isize, propertyid : EC_SUBSCRIPTION_PROPERTY_ID, flags : u32, propertyvaluebuffersize : u32, propertyvaluebuffer : *mut EC_VARIANT, propertyvaluebufferused : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wecapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EcGetSubscriptionRunTimeStatus(subscriptionname : ::windows_sys::core::PCWSTR, statusinfoid : EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID, eventsourcename : ::windows_sys::core::PCWSTR, flags : u32, statusvaluebuffersize : u32, statusvaluebuffer : *mut EC_VARIANT, statusvaluebufferused : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wecapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EcInsertObjectArrayElement(objectarray : isize, arrayindex : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wecapi.dll" "system" fn EcOpenSubscription(subscriptionname : ::windows_sys::core::PCWSTR, accessmask : u32, flags : u32) -> isize); +::windows_targets::link!("wecapi.dll" "system" fn EcOpenSubscriptionEnum(flags : u32) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wecapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EcRemoveObjectArrayElement(objectarray : isize, arrayindex : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wecapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EcRetrySubscription(subscriptionname : ::windows_sys::core::PCWSTR, eventsourcename : ::windows_sys::core::PCWSTR, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wecapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EcSaveSubscription(subscription : isize, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wecapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EcSetObjectArrayProperty(objectarray : isize, propertyid : EC_SUBSCRIPTION_PROPERTY_ID, arrayindex : u32, flags : u32, propertyvalue : *mut EC_VARIANT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wecapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EcSetSubscriptionProperty(subscription : isize, propertyid : EC_SUBSCRIPTION_PROPERTY_ID, flags : u32, propertyvalue : *mut EC_VARIANT) -> super::super::Foundation:: BOOL); +pub const EC_CREATE_NEW: u32 = 1u32; +pub const EC_OPEN_ALWAYS: u32 = 0u32; +pub const EC_OPEN_EXISTING: u32 = 2u32; +pub const EC_READ_ACCESS: u32 = 1u32; +pub const EC_VARIANT_TYPE_ARRAY: u32 = 128u32; +pub const EC_VARIANT_TYPE_MASK: u32 = 127u32; +pub const EC_WRITE_ACCESS: u32 = 2u32; +pub const EcConfigurationModeCustom: EC_SUBSCRIPTION_CONFIGURATION_MODE = 1i32; +pub const EcConfigurationModeMinBandwidth: EC_SUBSCRIPTION_CONFIGURATION_MODE = 3i32; +pub const EcConfigurationModeMinLatency: EC_SUBSCRIPTION_CONFIGURATION_MODE = 2i32; +pub const EcConfigurationModeNormal: EC_SUBSCRIPTION_CONFIGURATION_MODE = 0i32; +pub const EcContentFormatEvents: EC_SUBSCRIPTION_CONTENT_FORMAT = 1i32; +pub const EcContentFormatRenderedText: EC_SUBSCRIPTION_CONTENT_FORMAT = 2i32; +pub const EcDeliveryModePull: EC_SUBSCRIPTION_DELIVERY_MODE = 1i32; +pub const EcDeliveryModePush: EC_SUBSCRIPTION_DELIVERY_MODE = 2i32; +pub const EcRuntimeStatusActiveStatusActive: EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS = 2i32; +pub const EcRuntimeStatusActiveStatusDisabled: EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS = 1i32; +pub const EcRuntimeStatusActiveStatusInactive: EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS = 3i32; +pub const EcRuntimeStatusActiveStatusTrying: EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS = 4i32; +pub const EcSubscriptionAllowedIssuerCAs: EC_SUBSCRIPTION_PROPERTY_ID = 28i32; +pub const EcSubscriptionAllowedSourceDomainComputers: EC_SUBSCRIPTION_PROPERTY_ID = 31i32; +pub const EcSubscriptionAllowedSubjects: EC_SUBSCRIPTION_PROPERTY_ID = 29i32; +pub const EcSubscriptionCommonPassword: EC_SUBSCRIPTION_PROPERTY_ID = 23i32; +pub const EcSubscriptionCommonUserName: EC_SUBSCRIPTION_PROPERTY_ID = 22i32; +pub const EcSubscriptionConfigurationMode: EC_SUBSCRIPTION_PROPERTY_ID = 8i32; +pub const EcSubscriptionContentFormat: EC_SUBSCRIPTION_PROPERTY_ID = 18i32; +pub const EcSubscriptionCredBasic: EC_SUBSCRIPTION_CREDENTIALS_TYPE = 3i32; +pub const EcSubscriptionCredDefault: EC_SUBSCRIPTION_CREDENTIALS_TYPE = 0i32; +pub const EcSubscriptionCredDigest: EC_SUBSCRIPTION_CREDENTIALS_TYPE = 2i32; +pub const EcSubscriptionCredLocalMachine: EC_SUBSCRIPTION_CREDENTIALS_TYPE = 4i32; +pub const EcSubscriptionCredNegotiate: EC_SUBSCRIPTION_CREDENTIALS_TYPE = 1i32; +pub const EcSubscriptionCredentialsType: EC_SUBSCRIPTION_PROPERTY_ID = 21i32; +pub const EcSubscriptionDeliveryMaxItems: EC_SUBSCRIPTION_PROPERTY_ID = 14i32; +pub const EcSubscriptionDeliveryMaxLatencyTime: EC_SUBSCRIPTION_PROPERTY_ID = 15i32; +pub const EcSubscriptionDeliveryMode: EC_SUBSCRIPTION_PROPERTY_ID = 13i32; +pub const EcSubscriptionDeniedSubjects: EC_SUBSCRIPTION_PROPERTY_ID = 30i32; +pub const EcSubscriptionDescription: EC_SUBSCRIPTION_PROPERTY_ID = 6i32; +pub const EcSubscriptionDialect: EC_SUBSCRIPTION_PROPERTY_ID = 26i32; +pub const EcSubscriptionEnabled: EC_SUBSCRIPTION_PROPERTY_ID = 0i32; +pub const EcSubscriptionEventSourceAddress: EC_SUBSCRIPTION_PROPERTY_ID = 2i32; +pub const EcSubscriptionEventSourceEnabled: EC_SUBSCRIPTION_PROPERTY_ID = 3i32; +pub const EcSubscriptionEventSourcePassword: EC_SUBSCRIPTION_PROPERTY_ID = 5i32; +pub const EcSubscriptionEventSourceUserName: EC_SUBSCRIPTION_PROPERTY_ID = 4i32; +pub const EcSubscriptionEventSources: EC_SUBSCRIPTION_PROPERTY_ID = 1i32; +pub const EcSubscriptionExpires: EC_SUBSCRIPTION_PROPERTY_ID = 9i32; +pub const EcSubscriptionHeartbeatInterval: EC_SUBSCRIPTION_PROPERTY_ID = 16i32; +pub const EcSubscriptionHostName: EC_SUBSCRIPTION_PROPERTY_ID = 24i32; +pub const EcSubscriptionLocale: EC_SUBSCRIPTION_PROPERTY_ID = 17i32; +pub const EcSubscriptionLogFile: EC_SUBSCRIPTION_PROPERTY_ID = 19i32; +pub const EcSubscriptionPropertyIdEND: EC_SUBSCRIPTION_PROPERTY_ID = 32i32; +pub const EcSubscriptionPublisherName: EC_SUBSCRIPTION_PROPERTY_ID = 20i32; +pub const EcSubscriptionQuery: EC_SUBSCRIPTION_PROPERTY_ID = 10i32; +pub const EcSubscriptionReadExistingEvents: EC_SUBSCRIPTION_PROPERTY_ID = 25i32; +pub const EcSubscriptionRunTimeStatusActive: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID = 0i32; +pub const EcSubscriptionRunTimeStatusEventSources: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID = 5i32; +pub const EcSubscriptionRunTimeStatusInfoIdEND: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID = 7i32; +pub const EcSubscriptionRunTimeStatusLastError: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID = 1i32; +pub const EcSubscriptionRunTimeStatusLastErrorMessage: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID = 2i32; +pub const EcSubscriptionRunTimeStatusLastErrorTime: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID = 3i32; +pub const EcSubscriptionRunTimeStatusLastHeartbeatTime: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID = 6i32; +pub const EcSubscriptionRunTimeStatusNextRetryTime: EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID = 4i32; +pub const EcSubscriptionTransportName: EC_SUBSCRIPTION_PROPERTY_ID = 11i32; +pub const EcSubscriptionTransportPort: EC_SUBSCRIPTION_PROPERTY_ID = 12i32; +pub const EcSubscriptionType: EC_SUBSCRIPTION_PROPERTY_ID = 27i32; +pub const EcSubscriptionTypeCollectorInitiated: EC_SUBSCRIPTION_TYPE = 1i32; +pub const EcSubscriptionTypeSourceInitiated: EC_SUBSCRIPTION_TYPE = 0i32; +pub const EcSubscriptionURI: EC_SUBSCRIPTION_PROPERTY_ID = 7i32; +pub const EcVarObjectArrayPropertyHandle: EC_VARIANT_TYPE = 5i32; +pub const EcVarTypeBoolean: EC_VARIANT_TYPE = 1i32; +pub const EcVarTypeDateTime: EC_VARIANT_TYPE = 3i32; +pub const EcVarTypeNull: EC_VARIANT_TYPE = 0i32; +pub const EcVarTypeString: EC_VARIANT_TYPE = 4i32; +pub const EcVarTypeUInt32: EC_VARIANT_TYPE = 2i32; +pub type EC_SUBSCRIPTION_CONFIGURATION_MODE = i32; +pub type EC_SUBSCRIPTION_CONTENT_FORMAT = i32; +pub type EC_SUBSCRIPTION_CREDENTIALS_TYPE = i32; +pub type EC_SUBSCRIPTION_DELIVERY_MODE = i32; +pub type EC_SUBSCRIPTION_PROPERTY_ID = i32; +pub type EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS = i32; +pub type EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID = i32; +pub type EC_SUBSCRIPTION_TYPE = i32; +pub type EC_VARIANT_TYPE = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EC_VARIANT { + pub Anonymous: EC_VARIANT_0, + pub Count: u32, + pub Type: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EC_VARIANT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EC_VARIANT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union EC_VARIANT_0 { + pub BooleanVal: super::super::Foundation::BOOL, + pub UInt32Val: u32, + pub DateTimeVal: u64, + pub StringVal: ::windows_sys::core::PCWSTR, + pub BinaryVal: *mut u8, + pub BooleanArr: *mut super::super::Foundation::BOOL, + pub Int32Arr: *mut i32, + pub StringArr: *mut ::windows_sys::core::PWSTR, + pub PropertyHandleVal: isize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EC_VARIANT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EC_VARIANT_0 { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/EventLog/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/EventLog/mod.rs new file mode 100644 index 000000000..1f53746ce --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/EventLog/mod.rs @@ -0,0 +1,447 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BackupEventLogA(heventlog : super::super::Foundation:: HANDLE, lpbackupfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BackupEventLogW(heventlog : super::super::Foundation:: HANDLE, lpbackupfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClearEventLogA(heventlog : super::super::Foundation:: HANDLE, lpbackupfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClearEventLogW(heventlog : super::super::Foundation:: HANDLE, lpbackupfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseEventLog(heventlog : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeregisterEventSource(heventlog : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtArchiveExportedLog(session : EVT_HANDLE, logfilepath : ::windows_sys::core::PCWSTR, locale : u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtCancel(object : EVT_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtClearLog(session : EVT_HANDLE, channelpath : ::windows_sys::core::PCWSTR, targetfilepath : ::windows_sys::core::PCWSTR, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtClose(object : EVT_HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wevtapi.dll" "system" fn EvtCreateBookmark(bookmarkxml : ::windows_sys::core::PCWSTR) -> EVT_HANDLE); +::windows_targets::link!("wevtapi.dll" "system" fn EvtCreateRenderContext(valuepathscount : u32, valuepaths : *const ::windows_sys::core::PCWSTR, flags : u32) -> EVT_HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtExportLog(session : EVT_HANDLE, path : ::windows_sys::core::PCWSTR, query : ::windows_sys::core::PCWSTR, targetfilepath : ::windows_sys::core::PCWSTR, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtFormatMessage(publishermetadata : EVT_HANDLE, event : EVT_HANDLE, messageid : u32, valuecount : u32, values : *const EVT_VARIANT, flags : u32, buffersize : u32, buffer : ::windows_sys::core::PWSTR, bufferused : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtGetChannelConfigProperty(channelconfig : EVT_HANDLE, propertyid : EVT_CHANNEL_CONFIG_PROPERTY_ID, flags : u32, propertyvaluebuffersize : u32, propertyvaluebuffer : *mut EVT_VARIANT, propertyvaluebufferused : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtGetEventInfo(event : EVT_HANDLE, propertyid : EVT_EVENT_PROPERTY_ID, propertyvaluebuffersize : u32, propertyvaluebuffer : *mut EVT_VARIANT, propertyvaluebufferused : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtGetEventMetadataProperty(eventmetadata : EVT_HANDLE, propertyid : EVT_EVENT_METADATA_PROPERTY_ID, flags : u32, eventmetadatapropertybuffersize : u32, eventmetadatapropertybuffer : *mut EVT_VARIANT, eventmetadatapropertybufferused : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wevtapi.dll" "system" fn EvtGetExtendedStatus(buffersize : u32, buffer : ::windows_sys::core::PWSTR, bufferused : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtGetLogInfo(log : EVT_HANDLE, propertyid : EVT_LOG_PROPERTY_ID, propertyvaluebuffersize : u32, propertyvaluebuffer : *mut EVT_VARIANT, propertyvaluebufferused : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtGetObjectArrayProperty(objectarray : isize, propertyid : u32, arrayindex : u32, flags : u32, propertyvaluebuffersize : u32, propertyvaluebuffer : *mut EVT_VARIANT, propertyvaluebufferused : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtGetObjectArraySize(objectarray : isize, objectarraysize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtGetPublisherMetadataProperty(publishermetadata : EVT_HANDLE, propertyid : EVT_PUBLISHER_METADATA_PROPERTY_ID, flags : u32, publishermetadatapropertybuffersize : u32, publishermetadatapropertybuffer : *mut EVT_VARIANT, publishermetadatapropertybufferused : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtGetQueryInfo(queryorsubscription : EVT_HANDLE, propertyid : EVT_QUERY_PROPERTY_ID, propertyvaluebuffersize : u32, propertyvaluebuffer : *mut EVT_VARIANT, propertyvaluebufferused : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtNext(resultset : EVT_HANDLE, eventssize : u32, events : *mut isize, timeout : u32, flags : u32, returned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtNextChannelPath(channelenum : EVT_HANDLE, channelpathbuffersize : u32, channelpathbuffer : ::windows_sys::core::PWSTR, channelpathbufferused : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wevtapi.dll" "system" fn EvtNextEventMetadata(eventmetadataenum : EVT_HANDLE, flags : u32) -> EVT_HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtNextPublisherId(publisherenum : EVT_HANDLE, publisheridbuffersize : u32, publisheridbuffer : ::windows_sys::core::PWSTR, publisheridbufferused : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wevtapi.dll" "system" fn EvtOpenChannelConfig(session : EVT_HANDLE, channelpath : ::windows_sys::core::PCWSTR, flags : u32) -> EVT_HANDLE); +::windows_targets::link!("wevtapi.dll" "system" fn EvtOpenChannelEnum(session : EVT_HANDLE, flags : u32) -> EVT_HANDLE); +::windows_targets::link!("wevtapi.dll" "system" fn EvtOpenEventMetadataEnum(publishermetadata : EVT_HANDLE, flags : u32) -> EVT_HANDLE); +::windows_targets::link!("wevtapi.dll" "system" fn EvtOpenLog(session : EVT_HANDLE, path : ::windows_sys::core::PCWSTR, flags : u32) -> EVT_HANDLE); +::windows_targets::link!("wevtapi.dll" "system" fn EvtOpenPublisherEnum(session : EVT_HANDLE, flags : u32) -> EVT_HANDLE); +::windows_targets::link!("wevtapi.dll" "system" fn EvtOpenPublisherMetadata(session : EVT_HANDLE, publisherid : ::windows_sys::core::PCWSTR, logfilepath : ::windows_sys::core::PCWSTR, locale : u32, flags : u32) -> EVT_HANDLE); +::windows_targets::link!("wevtapi.dll" "system" fn EvtOpenSession(loginclass : EVT_LOGIN_CLASS, login : *const ::core::ffi::c_void, timeout : u32, flags : u32) -> EVT_HANDLE); +::windows_targets::link!("wevtapi.dll" "system" fn EvtQuery(session : EVT_HANDLE, path : ::windows_sys::core::PCWSTR, query : ::windows_sys::core::PCWSTR, flags : u32) -> EVT_HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtRender(context : EVT_HANDLE, fragment : EVT_HANDLE, flags : u32, buffersize : u32, buffer : *mut ::core::ffi::c_void, bufferused : *mut u32, propertycount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtSaveChannelConfig(channelconfig : EVT_HANDLE, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtSeek(resultset : EVT_HANDLE, position : i64, bookmark : EVT_HANDLE, timeout : u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtSetChannelConfigProperty(channelconfig : EVT_HANDLE, propertyid : EVT_CHANNEL_CONFIG_PROPERTY_ID, flags : u32, propertyvalue : *const EVT_VARIANT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtSubscribe(session : EVT_HANDLE, signalevent : super::super::Foundation:: HANDLE, channelpath : ::windows_sys::core::PCWSTR, query : ::windows_sys::core::PCWSTR, bookmark : EVT_HANDLE, context : *const ::core::ffi::c_void, callback : EVT_SUBSCRIBE_CALLBACK, flags : u32) -> EVT_HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wevtapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvtUpdateBookmark(bookmark : EVT_HANDLE, event : EVT_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetEventLogInformation(heventlog : super::super::Foundation:: HANDLE, dwinfolevel : u32, lpbuffer : *mut ::core::ffi::c_void, cbbufsize : u32, pcbbytesneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNumberOfEventLogRecords(heventlog : super::super::Foundation:: HANDLE, numberofrecords : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetOldestEventLogRecord(heventlog : super::super::Foundation:: HANDLE, oldestrecord : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NotifyChangeEventLog(heventlog : super::super::Foundation:: HANDLE, hevent : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenBackupEventLogA(lpuncservername : ::windows_sys::core::PCSTR, lpfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenBackupEventLogW(lpuncservername : ::windows_sys::core::PCWSTR, lpfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenEventLogA(lpuncservername : ::windows_sys::core::PCSTR, lpsourcename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenEventLogW(lpuncservername : ::windows_sys::core::PCWSTR, lpsourcename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadEventLogA(heventlog : super::super::Foundation:: HANDLE, dwreadflags : READ_EVENT_LOG_READ_FLAGS, dwrecordoffset : u32, lpbuffer : *mut ::core::ffi::c_void, nnumberofbytestoread : u32, pnbytesread : *mut u32, pnminnumberofbytesneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadEventLogW(heventlog : super::super::Foundation:: HANDLE, dwreadflags : READ_EVENT_LOG_READ_FLAGS, dwrecordoffset : u32, lpbuffer : *mut ::core::ffi::c_void, nnumberofbytestoread : u32, pnbytesread : *mut u32, pnminnumberofbytesneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterEventSourceA(lpuncservername : ::windows_sys::core::PCSTR, lpsourcename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterEventSourceW(lpuncservername : ::windows_sys::core::PCWSTR, lpsourcename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReportEventA(heventlog : super::super::Foundation:: HANDLE, wtype : REPORT_EVENT_TYPE, wcategory : u16, dweventid : u32, lpusersid : super::super::Foundation:: PSID, wnumstrings : u16, dwdatasize : u32, lpstrings : *const ::windows_sys::core::PCSTR, lprawdata : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReportEventW(heventlog : super::super::Foundation:: HANDLE, wtype : REPORT_EVENT_TYPE, wcategory : u16, dweventid : u32, lpusersid : super::super::Foundation:: PSID, wnumstrings : u16, dwdatasize : u32, lpstrings : *const ::windows_sys::core::PCWSTR, lprawdata : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +pub const EVENTLOG_AUDIT_FAILURE: REPORT_EVENT_TYPE = 16u16; +pub const EVENTLOG_AUDIT_SUCCESS: REPORT_EVENT_TYPE = 8u16; +pub const EVENTLOG_ERROR_TYPE: REPORT_EVENT_TYPE = 1u16; +pub const EVENTLOG_INFORMATION_TYPE: REPORT_EVENT_TYPE = 4u16; +pub const EVENTLOG_SEEK_READ: READ_EVENT_LOG_READ_FLAGS = 2u32; +pub const EVENTLOG_SEQUENTIAL_READ: READ_EVENT_LOG_READ_FLAGS = 1u32; +pub const EVENTLOG_SUCCESS: REPORT_EVENT_TYPE = 0u16; +pub const EVENTLOG_WARNING_TYPE: REPORT_EVENT_TYPE = 2u16; +pub const EVT_ALL_ACCESS: u32 = 7u32; +pub const EVT_CLEAR_ACCESS: u32 = 4u32; +pub const EVT_READ_ACCESS: u32 = 1u32; +pub const EVT_VARIANT_TYPE_ARRAY: u32 = 128u32; +pub const EVT_VARIANT_TYPE_MASK: u32 = 127u32; +pub const EVT_WRITE_ACCESS: u32 = 2u32; +pub const EventMetadataEventChannel: EVT_EVENT_METADATA_PROPERTY_ID = 2i32; +pub const EventMetadataEventID: EVT_EVENT_METADATA_PROPERTY_ID = 0i32; +pub const EventMetadataEventKeyword: EVT_EVENT_METADATA_PROPERTY_ID = 6i32; +pub const EventMetadataEventLevel: EVT_EVENT_METADATA_PROPERTY_ID = 3i32; +pub const EventMetadataEventMessageID: EVT_EVENT_METADATA_PROPERTY_ID = 7i32; +pub const EventMetadataEventOpcode: EVT_EVENT_METADATA_PROPERTY_ID = 4i32; +pub const EventMetadataEventTask: EVT_EVENT_METADATA_PROPERTY_ID = 5i32; +pub const EventMetadataEventTemplate: EVT_EVENT_METADATA_PROPERTY_ID = 8i32; +pub const EventMetadataEventVersion: EVT_EVENT_METADATA_PROPERTY_ID = 1i32; +pub const EvtChannelClockTypeQPC: EVT_CHANNEL_CLOCK_TYPE = 1i32; +pub const EvtChannelClockTypeSystemTime: EVT_CHANNEL_CLOCK_TYPE = 0i32; +pub const EvtChannelConfigAccess: EVT_CHANNEL_CONFIG_PROPERTY_ID = 5i32; +pub const EvtChannelConfigClassicEventlog: EVT_CHANNEL_CONFIG_PROPERTY_ID = 4i32; +pub const EvtChannelConfigEnabled: EVT_CHANNEL_CONFIG_PROPERTY_ID = 0i32; +pub const EvtChannelConfigIsolation: EVT_CHANNEL_CONFIG_PROPERTY_ID = 1i32; +pub const EvtChannelConfigOwningPublisher: EVT_CHANNEL_CONFIG_PROPERTY_ID = 3i32; +pub const EvtChannelConfigPropertyIdEND: EVT_CHANNEL_CONFIG_PROPERTY_ID = 21i32; +pub const EvtChannelConfigType: EVT_CHANNEL_CONFIG_PROPERTY_ID = 2i32; +pub const EvtChannelIsolationTypeApplication: EVT_CHANNEL_ISOLATION_TYPE = 0i32; +pub const EvtChannelIsolationTypeCustom: EVT_CHANNEL_ISOLATION_TYPE = 2i32; +pub const EvtChannelIsolationTypeSystem: EVT_CHANNEL_ISOLATION_TYPE = 1i32; +pub const EvtChannelLoggingConfigAutoBackup: EVT_CHANNEL_CONFIG_PROPERTY_ID = 7i32; +pub const EvtChannelLoggingConfigLogFilePath: EVT_CHANNEL_CONFIG_PROPERTY_ID = 9i32; +pub const EvtChannelLoggingConfigMaxSize: EVT_CHANNEL_CONFIG_PROPERTY_ID = 8i32; +pub const EvtChannelLoggingConfigRetention: EVT_CHANNEL_CONFIG_PROPERTY_ID = 6i32; +pub const EvtChannelPublisherList: EVT_CHANNEL_CONFIG_PROPERTY_ID = 19i32; +pub const EvtChannelPublishingConfigBufferSize: EVT_CHANNEL_CONFIG_PROPERTY_ID = 13i32; +pub const EvtChannelPublishingConfigClockType: EVT_CHANNEL_CONFIG_PROPERTY_ID = 17i32; +pub const EvtChannelPublishingConfigControlGuid: EVT_CHANNEL_CONFIG_PROPERTY_ID = 12i32; +pub const EvtChannelPublishingConfigFileMax: EVT_CHANNEL_CONFIG_PROPERTY_ID = 20i32; +pub const EvtChannelPublishingConfigKeywords: EVT_CHANNEL_CONFIG_PROPERTY_ID = 11i32; +pub const EvtChannelPublishingConfigLatency: EVT_CHANNEL_CONFIG_PROPERTY_ID = 16i32; +pub const EvtChannelPublishingConfigLevel: EVT_CHANNEL_CONFIG_PROPERTY_ID = 10i32; +pub const EvtChannelPublishingConfigMaxBuffers: EVT_CHANNEL_CONFIG_PROPERTY_ID = 15i32; +pub const EvtChannelPublishingConfigMinBuffers: EVT_CHANNEL_CONFIG_PROPERTY_ID = 14i32; +pub const EvtChannelPublishingConfigSidType: EVT_CHANNEL_CONFIG_PROPERTY_ID = 18i32; +pub const EvtChannelReferenceImported: EVT_CHANNEL_REFERENCE_FLAGS = 1u32; +pub const EvtChannelSidTypeNone: EVT_CHANNEL_SID_TYPE = 0i32; +pub const EvtChannelSidTypePublishing: EVT_CHANNEL_SID_TYPE = 1i32; +pub const EvtChannelTypeAdmin: EVT_CHANNEL_TYPE = 0i32; +pub const EvtChannelTypeAnalytic: EVT_CHANNEL_TYPE = 2i32; +pub const EvtChannelTypeDebug: EVT_CHANNEL_TYPE = 3i32; +pub const EvtChannelTypeOperational: EVT_CHANNEL_TYPE = 1i32; +pub const EvtEventMetadataPropertyIdEND: EVT_EVENT_METADATA_PROPERTY_ID = 9i32; +pub const EvtEventPath: EVT_EVENT_PROPERTY_ID = 1i32; +pub const EvtEventPropertyIdEND: EVT_EVENT_PROPERTY_ID = 2i32; +pub const EvtEventQueryIDs: EVT_EVENT_PROPERTY_ID = 0i32; +pub const EvtExportLogChannelPath: EVT_EXPORTLOG_FLAGS = 1u32; +pub const EvtExportLogFilePath: EVT_EXPORTLOG_FLAGS = 2u32; +pub const EvtExportLogOverwrite: EVT_EXPORTLOG_FLAGS = 8192u32; +pub const EvtExportLogTolerateQueryErrors: EVT_EXPORTLOG_FLAGS = 4096u32; +pub const EvtFormatMessageChannel: EVT_FORMAT_MESSAGE_FLAGS = 6u32; +pub const EvtFormatMessageEvent: EVT_FORMAT_MESSAGE_FLAGS = 1u32; +pub const EvtFormatMessageId: EVT_FORMAT_MESSAGE_FLAGS = 8u32; +pub const EvtFormatMessageKeyword: EVT_FORMAT_MESSAGE_FLAGS = 5u32; +pub const EvtFormatMessageLevel: EVT_FORMAT_MESSAGE_FLAGS = 2u32; +pub const EvtFormatMessageOpcode: EVT_FORMAT_MESSAGE_FLAGS = 4u32; +pub const EvtFormatMessageProvider: EVT_FORMAT_MESSAGE_FLAGS = 7u32; +pub const EvtFormatMessageTask: EVT_FORMAT_MESSAGE_FLAGS = 3u32; +pub const EvtFormatMessageXml: EVT_FORMAT_MESSAGE_FLAGS = 9u32; +pub const EvtLogAttributes: EVT_LOG_PROPERTY_ID = 4i32; +pub const EvtLogCreationTime: EVT_LOG_PROPERTY_ID = 0i32; +pub const EvtLogFileSize: EVT_LOG_PROPERTY_ID = 3i32; +pub const EvtLogFull: EVT_LOG_PROPERTY_ID = 7i32; +pub const EvtLogLastAccessTime: EVT_LOG_PROPERTY_ID = 1i32; +pub const EvtLogLastWriteTime: EVT_LOG_PROPERTY_ID = 2i32; +pub const EvtLogNumberOfLogRecords: EVT_LOG_PROPERTY_ID = 5i32; +pub const EvtLogOldestRecordNumber: EVT_LOG_PROPERTY_ID = 6i32; +pub const EvtOpenChannelPath: EVT_OPEN_LOG_FLAGS = 1u32; +pub const EvtOpenFilePath: EVT_OPEN_LOG_FLAGS = 2u32; +pub const EvtPublisherMetadataChannelReferenceFlags: EVT_PUBLISHER_METADATA_PROPERTY_ID = 10i32; +pub const EvtPublisherMetadataChannelReferenceID: EVT_PUBLISHER_METADATA_PROPERTY_ID = 9i32; +pub const EvtPublisherMetadataChannelReferenceIndex: EVT_PUBLISHER_METADATA_PROPERTY_ID = 8i32; +pub const EvtPublisherMetadataChannelReferenceMessageID: EVT_PUBLISHER_METADATA_PROPERTY_ID = 11i32; +pub const EvtPublisherMetadataChannelReferencePath: EVT_PUBLISHER_METADATA_PROPERTY_ID = 7i32; +pub const EvtPublisherMetadataChannelReferences: EVT_PUBLISHER_METADATA_PROPERTY_ID = 6i32; +pub const EvtPublisherMetadataHelpLink: EVT_PUBLISHER_METADATA_PROPERTY_ID = 4i32; +pub const EvtPublisherMetadataKeywordMessageID: EVT_PUBLISHER_METADATA_PROPERTY_ID = 28i32; +pub const EvtPublisherMetadataKeywordName: EVT_PUBLISHER_METADATA_PROPERTY_ID = 26i32; +pub const EvtPublisherMetadataKeywordValue: EVT_PUBLISHER_METADATA_PROPERTY_ID = 27i32; +pub const EvtPublisherMetadataKeywords: EVT_PUBLISHER_METADATA_PROPERTY_ID = 25i32; +pub const EvtPublisherMetadataLevelMessageID: EVT_PUBLISHER_METADATA_PROPERTY_ID = 15i32; +pub const EvtPublisherMetadataLevelName: EVT_PUBLISHER_METADATA_PROPERTY_ID = 13i32; +pub const EvtPublisherMetadataLevelValue: EVT_PUBLISHER_METADATA_PROPERTY_ID = 14i32; +pub const EvtPublisherMetadataLevels: EVT_PUBLISHER_METADATA_PROPERTY_ID = 12i32; +pub const EvtPublisherMetadataMessageFilePath: EVT_PUBLISHER_METADATA_PROPERTY_ID = 3i32; +pub const EvtPublisherMetadataOpcodeMessageID: EVT_PUBLISHER_METADATA_PROPERTY_ID = 24i32; +pub const EvtPublisherMetadataOpcodeName: EVT_PUBLISHER_METADATA_PROPERTY_ID = 22i32; +pub const EvtPublisherMetadataOpcodeValue: EVT_PUBLISHER_METADATA_PROPERTY_ID = 23i32; +pub const EvtPublisherMetadataOpcodes: EVT_PUBLISHER_METADATA_PROPERTY_ID = 21i32; +pub const EvtPublisherMetadataParameterFilePath: EVT_PUBLISHER_METADATA_PROPERTY_ID = 2i32; +pub const EvtPublisherMetadataPropertyIdEND: EVT_PUBLISHER_METADATA_PROPERTY_ID = 29i32; +pub const EvtPublisherMetadataPublisherGuid: EVT_PUBLISHER_METADATA_PROPERTY_ID = 0i32; +pub const EvtPublisherMetadataPublisherMessageID: EVT_PUBLISHER_METADATA_PROPERTY_ID = 5i32; +pub const EvtPublisherMetadataResourceFilePath: EVT_PUBLISHER_METADATA_PROPERTY_ID = 1i32; +pub const EvtPublisherMetadataTaskEventGuid: EVT_PUBLISHER_METADATA_PROPERTY_ID = 18i32; +pub const EvtPublisherMetadataTaskMessageID: EVT_PUBLISHER_METADATA_PROPERTY_ID = 20i32; +pub const EvtPublisherMetadataTaskName: EVT_PUBLISHER_METADATA_PROPERTY_ID = 17i32; +pub const EvtPublisherMetadataTaskValue: EVT_PUBLISHER_METADATA_PROPERTY_ID = 19i32; +pub const EvtPublisherMetadataTasks: EVT_PUBLISHER_METADATA_PROPERTY_ID = 16i32; +pub const EvtQueryChannelPath: EVT_QUERY_FLAGS = 1u32; +pub const EvtQueryFilePath: EVT_QUERY_FLAGS = 2u32; +pub const EvtQueryForwardDirection: EVT_QUERY_FLAGS = 256u32; +pub const EvtQueryNames: EVT_QUERY_PROPERTY_ID = 0i32; +pub const EvtQueryPropertyIdEND: EVT_QUERY_PROPERTY_ID = 2i32; +pub const EvtQueryReverseDirection: EVT_QUERY_FLAGS = 512u32; +pub const EvtQueryStatuses: EVT_QUERY_PROPERTY_ID = 1i32; +pub const EvtQueryTolerateQueryErrors: EVT_QUERY_FLAGS = 4096u32; +pub const EvtRenderBookmark: EVT_RENDER_FLAGS = 2u32; +pub const EvtRenderContextSystem: EVT_RENDER_CONTEXT_FLAGS = 1u32; +pub const EvtRenderContextUser: EVT_RENDER_CONTEXT_FLAGS = 2u32; +pub const EvtRenderContextValues: EVT_RENDER_CONTEXT_FLAGS = 0u32; +pub const EvtRenderEventValues: EVT_RENDER_FLAGS = 0u32; +pub const EvtRenderEventXml: EVT_RENDER_FLAGS = 1u32; +pub const EvtRpcLogin: EVT_LOGIN_CLASS = 1i32; +pub const EvtRpcLoginAuthDefault: EVT_RPC_LOGIN_FLAGS = 0u32; +pub const EvtRpcLoginAuthKerberos: EVT_RPC_LOGIN_FLAGS = 2u32; +pub const EvtRpcLoginAuthNTLM: EVT_RPC_LOGIN_FLAGS = 3u32; +pub const EvtRpcLoginAuthNegotiate: EVT_RPC_LOGIN_FLAGS = 1u32; +pub const EvtSeekOriginMask: EVT_SEEK_FLAGS = 7u32; +pub const EvtSeekRelativeToBookmark: EVT_SEEK_FLAGS = 4u32; +pub const EvtSeekRelativeToCurrent: EVT_SEEK_FLAGS = 3u32; +pub const EvtSeekRelativeToFirst: EVT_SEEK_FLAGS = 1u32; +pub const EvtSeekRelativeToLast: EVT_SEEK_FLAGS = 2u32; +pub const EvtSeekStrict: EVT_SEEK_FLAGS = 65536u32; +pub const EvtSubscribeActionDeliver: EVT_SUBSCRIBE_NOTIFY_ACTION = 1i32; +pub const EvtSubscribeActionError: EVT_SUBSCRIBE_NOTIFY_ACTION = 0i32; +pub const EvtSubscribeOriginMask: EVT_SUBSCRIBE_FLAGS = 3u32; +pub const EvtSubscribeStartAfterBookmark: EVT_SUBSCRIBE_FLAGS = 3u32; +pub const EvtSubscribeStartAtOldestRecord: EVT_SUBSCRIBE_FLAGS = 2u32; +pub const EvtSubscribeStrict: EVT_SUBSCRIBE_FLAGS = 65536u32; +pub const EvtSubscribeToFutureEvents: EVT_SUBSCRIBE_FLAGS = 1u32; +pub const EvtSubscribeTolerateQueryErrors: EVT_SUBSCRIBE_FLAGS = 4096u32; +pub const EvtSystemActivityID: EVT_SYSTEM_PROPERTY_ID = 10i32; +pub const EvtSystemChannel: EVT_SYSTEM_PROPERTY_ID = 14i32; +pub const EvtSystemComputer: EVT_SYSTEM_PROPERTY_ID = 15i32; +pub const EvtSystemEventID: EVT_SYSTEM_PROPERTY_ID = 2i32; +pub const EvtSystemEventRecordId: EVT_SYSTEM_PROPERTY_ID = 9i32; +pub const EvtSystemKeywords: EVT_SYSTEM_PROPERTY_ID = 7i32; +pub const EvtSystemLevel: EVT_SYSTEM_PROPERTY_ID = 4i32; +pub const EvtSystemOpcode: EVT_SYSTEM_PROPERTY_ID = 6i32; +pub const EvtSystemProcessID: EVT_SYSTEM_PROPERTY_ID = 12i32; +pub const EvtSystemPropertyIdEND: EVT_SYSTEM_PROPERTY_ID = 18i32; +pub const EvtSystemProviderGuid: EVT_SYSTEM_PROPERTY_ID = 1i32; +pub const EvtSystemProviderName: EVT_SYSTEM_PROPERTY_ID = 0i32; +pub const EvtSystemQualifiers: EVT_SYSTEM_PROPERTY_ID = 3i32; +pub const EvtSystemRelatedActivityID: EVT_SYSTEM_PROPERTY_ID = 11i32; +pub const EvtSystemTask: EVT_SYSTEM_PROPERTY_ID = 5i32; +pub const EvtSystemThreadID: EVT_SYSTEM_PROPERTY_ID = 13i32; +pub const EvtSystemTimeCreated: EVT_SYSTEM_PROPERTY_ID = 8i32; +pub const EvtSystemUserID: EVT_SYSTEM_PROPERTY_ID = 16i32; +pub const EvtSystemVersion: EVT_SYSTEM_PROPERTY_ID = 17i32; +pub const EvtVarTypeAnsiString: EVT_VARIANT_TYPE = 2i32; +pub const EvtVarTypeBinary: EVT_VARIANT_TYPE = 14i32; +pub const EvtVarTypeBoolean: EVT_VARIANT_TYPE = 13i32; +pub const EvtVarTypeByte: EVT_VARIANT_TYPE = 4i32; +pub const EvtVarTypeDouble: EVT_VARIANT_TYPE = 12i32; +pub const EvtVarTypeEvtHandle: EVT_VARIANT_TYPE = 32i32; +pub const EvtVarTypeEvtXml: EVT_VARIANT_TYPE = 35i32; +pub const EvtVarTypeFileTime: EVT_VARIANT_TYPE = 17i32; +pub const EvtVarTypeGuid: EVT_VARIANT_TYPE = 15i32; +pub const EvtVarTypeHexInt32: EVT_VARIANT_TYPE = 20i32; +pub const EvtVarTypeHexInt64: EVT_VARIANT_TYPE = 21i32; +pub const EvtVarTypeInt16: EVT_VARIANT_TYPE = 5i32; +pub const EvtVarTypeInt32: EVT_VARIANT_TYPE = 7i32; +pub const EvtVarTypeInt64: EVT_VARIANT_TYPE = 9i32; +pub const EvtVarTypeNull: EVT_VARIANT_TYPE = 0i32; +pub const EvtVarTypeSByte: EVT_VARIANT_TYPE = 3i32; +pub const EvtVarTypeSid: EVT_VARIANT_TYPE = 19i32; +pub const EvtVarTypeSingle: EVT_VARIANT_TYPE = 11i32; +pub const EvtVarTypeSizeT: EVT_VARIANT_TYPE = 16i32; +pub const EvtVarTypeString: EVT_VARIANT_TYPE = 1i32; +pub const EvtVarTypeSysTime: EVT_VARIANT_TYPE = 18i32; +pub const EvtVarTypeUInt16: EVT_VARIANT_TYPE = 6i32; +pub const EvtVarTypeUInt32: EVT_VARIANT_TYPE = 8i32; +pub const EvtVarTypeUInt64: EVT_VARIANT_TYPE = 10i32; +pub type EVT_CHANNEL_CLOCK_TYPE = i32; +pub type EVT_CHANNEL_CONFIG_PROPERTY_ID = i32; +pub type EVT_CHANNEL_ISOLATION_TYPE = i32; +pub type EVT_CHANNEL_REFERENCE_FLAGS = u32; +pub type EVT_CHANNEL_SID_TYPE = i32; +pub type EVT_CHANNEL_TYPE = i32; +pub type EVT_EVENT_METADATA_PROPERTY_ID = i32; +pub type EVT_EVENT_PROPERTY_ID = i32; +pub type EVT_EXPORTLOG_FLAGS = u32; +pub type EVT_FORMAT_MESSAGE_FLAGS = u32; +pub type EVT_LOGIN_CLASS = i32; +pub type EVT_LOG_PROPERTY_ID = i32; +pub type EVT_OPEN_LOG_FLAGS = u32; +pub type EVT_PUBLISHER_METADATA_PROPERTY_ID = i32; +pub type EVT_QUERY_FLAGS = u32; +pub type EVT_QUERY_PROPERTY_ID = i32; +pub type EVT_RENDER_CONTEXT_FLAGS = u32; +pub type EVT_RENDER_FLAGS = u32; +pub type EVT_RPC_LOGIN_FLAGS = u32; +pub type EVT_SEEK_FLAGS = u32; +pub type EVT_SUBSCRIBE_FLAGS = u32; +pub type EVT_SUBSCRIBE_NOTIFY_ACTION = i32; +pub type EVT_SYSTEM_PROPERTY_ID = i32; +pub type EVT_VARIANT_TYPE = i32; +pub type READ_EVENT_LOG_READ_FLAGS = u32; +pub type REPORT_EVENT_TYPE = u16; +#[repr(C)] +pub struct EVENTLOGRECORD { + pub Length: u32, + pub Reserved: u32, + pub RecordNumber: u32, + pub TimeGenerated: u32, + pub TimeWritten: u32, + pub EventID: u32, + pub EventType: REPORT_EVENT_TYPE, + pub NumStrings: u16, + pub EventCategory: u16, + pub ReservedFlags: u16, + pub ClosingRecordNumber: u32, + pub StringOffset: u32, + pub UserSidLength: u32, + pub UserSidOffset: u32, + pub DataLength: u32, + pub DataOffset: u32, +} +impl ::core::marker::Copy for EVENTLOGRECORD {} +impl ::core::clone::Clone for EVENTLOGRECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENTLOG_FULL_INFORMATION { + pub dwFull: u32, +} +impl ::core::marker::Copy for EVENTLOG_FULL_INFORMATION {} +impl ::core::clone::Clone for EVENTLOG_FULL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EVENTSFORLOGFILE { + pub ulSize: u32, + pub szLogicalLogFile: [u16; 256], + pub ulNumRecords: u32, + pub pEventLogRecords: [EVENTLOGRECORD; 1], +} +impl ::core::marker::Copy for EVENTSFORLOGFILE {} +impl ::core::clone::Clone for EVENTSFORLOGFILE { + fn clone(&self) -> Self { + *self + } +} +pub type EVT_HANDLE = isize; +#[repr(C)] +pub struct EVT_RPC_LOGIN { + pub Server: ::windows_sys::core::PWSTR, + pub User: ::windows_sys::core::PWSTR, + pub Domain: ::windows_sys::core::PWSTR, + pub Password: ::windows_sys::core::PWSTR, + pub Flags: u32, +} +impl ::core::marker::Copy for EVT_RPC_LOGIN {} +impl ::core::clone::Clone for EVT_RPC_LOGIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EVT_VARIANT { + pub Anonymous: EVT_VARIANT_0, + pub Count: u32, + pub Type: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVT_VARIANT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVT_VARIANT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union EVT_VARIANT_0 { + pub BooleanVal: super::super::Foundation::BOOL, + pub SByteVal: i8, + pub Int16Val: i16, + pub Int32Val: i32, + pub Int64Val: i64, + pub ByteVal: u8, + pub UInt16Val: u16, + pub UInt32Val: u32, + pub UInt64Val: u64, + pub SingleVal: f32, + pub DoubleVal: f64, + pub FileTimeVal: u64, + pub SysTimeVal: *mut super::super::Foundation::SYSTEMTIME, + pub GuidVal: *mut ::windows_sys::core::GUID, + pub StringVal: ::windows_sys::core::PCWSTR, + pub AnsiStringVal: ::windows_sys::core::PCSTR, + pub BinaryVal: *mut u8, + pub SidVal: super::super::Foundation::PSID, + pub SizeTVal: usize, + pub BooleanArr: *mut super::super::Foundation::BOOL, + pub SByteArr: *mut i8, + pub Int16Arr: *mut i16, + pub Int32Arr: *mut i32, + pub Int64Arr: *mut i64, + pub ByteArr: *mut u8, + pub UInt16Arr: *mut u16, + pub UInt32Arr: *mut u32, + pub UInt64Arr: *mut u64, + pub SingleArr: *mut f32, + pub DoubleArr: *mut f64, + pub FileTimeArr: *mut super::super::Foundation::FILETIME, + pub SysTimeArr: *mut super::super::Foundation::SYSTEMTIME, + pub GuidArr: *mut ::windows_sys::core::GUID, + pub StringArr: *mut ::windows_sys::core::PWSTR, + pub AnsiStringArr: *mut ::windows_sys::core::PSTR, + pub SidArr: *mut super::super::Foundation::PSID, + pub SizeTArr: *mut usize, + pub EvtHandleVal: EVT_HANDLE, + pub XmlVal: ::windows_sys::core::PCWSTR, + pub XmlValArr: *const ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVT_VARIANT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVT_VARIANT_0 { + fn clone(&self) -> Self { + *self + } +} +pub type EVT_SUBSCRIBE_CALLBACK = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/EventNotificationService/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/EventNotificationService/mod.rs new file mode 100644 index 000000000..b9c271562 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/EventNotificationService/mod.rs @@ -0,0 +1,52 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("sensapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsDestinationReachableA(lpszdestination : ::windows_sys::core::PCSTR, lpqocinfo : *mut QOCINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("sensapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsDestinationReachableW(lpszdestination : ::windows_sys::core::PCWSTR, lpqocinfo : *mut QOCINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("sensapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsNetworkAlive(lpdwflags : *mut u32) -> super::super::Foundation:: BOOL); +pub type ISensLogon = *mut ::core::ffi::c_void; +pub type ISensLogon2 = *mut ::core::ffi::c_void; +pub type ISensNetwork = *mut ::core::ffi::c_void; +pub type ISensOnNow = *mut ::core::ffi::c_void; +pub const CONNECTION_AOL: u32 = 4u32; +pub const CONNECTION_LAN: SENS_CONNECTION_TYPE = 0u32; +pub const CONNECTION_WAN: SENS_CONNECTION_TYPE = 1u32; +pub const NETWORK_ALIVE_AOL: u32 = 4u32; +pub const NETWORK_ALIVE_INTERNET: u32 = 8u32; +pub const NETWORK_ALIVE_LAN: u32 = 1u32; +pub const NETWORK_ALIVE_WAN: u32 = 2u32; +pub const SENS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd597cafe_5b9f_11d1_8dd2_00aa004abd5e); +pub const SENSGUID_EVENTCLASS_LOGON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd5978630_5b9f_11d1_8dd2_00aa004abd5e); +pub const SENSGUID_EVENTCLASS_LOGON2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd5978650_5b9f_11d1_8dd2_00aa004abd5e); +pub const SENSGUID_EVENTCLASS_NETWORK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd5978620_5b9f_11d1_8dd2_00aa004abd5e); +pub const SENSGUID_EVENTCLASS_ONNOW: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd5978640_5b9f_11d1_8dd2_00aa004abd5e); +pub const SENSGUID_PUBLISHER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5fee1bd6_5b9b_11d1_8dd2_00aa004abd5e); +pub const SENSGUID_SUBSCRIBER_LCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd3938ab0_5b9d_11d1_8dd2_00aa004abd5e); +pub const SENSGUID_SUBSCRIBER_WININET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd3938ab5_5b9d_11d1_8dd2_00aa004abd5e); +pub type SENS_CONNECTION_TYPE = u32; +#[repr(C)] +pub struct QOCINFO { + pub dwSize: u32, + pub dwFlags: u32, + pub dwInSpeed: u32, + pub dwOutSpeed: u32, +} +impl ::core::marker::Copy for QOCINFO {} +impl ::core::clone::Clone for QOCINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SENS_QOCINFO { + pub dwSize: u32, + pub dwFlags: u32, + pub dwOutSpeed: u32, + pub dwInSpeed: u32, +} +impl ::core::marker::Copy for SENS_QOCINFO {} +impl ::core::clone::Clone for SENS_QOCINFO { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/GroupPolicy/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/GroupPolicy/mod.rs new file mode 100644 index 000000000..dab0e5758 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/GroupPolicy/mod.rs @@ -0,0 +1,569 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gpedit.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BrowseForGPO(lpbrowseinfo : *mut GPOBROWSEINFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("advapi32.dll" "system" fn CommandLineFromMsiDescriptor(descriptor : ::windows_sys::core::PCWSTR, commandline : ::windows_sys::core::PWSTR, commandlinelength : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gpedit.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateGPOLink(lpgpo : ::windows_sys::core::PCWSTR, lpcontainer : ::windows_sys::core::PCWSTR, fhighpriority : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("gpedit.dll" "system" fn DeleteAllGPOLinks(lpcontainer : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("gpedit.dll" "system" fn DeleteGPOLink(lpgpo : ::windows_sys::core::PCWSTR, lpcontainer : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnterCriticalPolicySection(bmachine : super::super::Foundation:: BOOL) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("gpedit.dll" "system" fn ExportRSoPData(lpnamespace : ::windows_sys::core::PCWSTR, lpfilename : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeGPOListA(pgpolist : *const GROUP_POLICY_OBJECTA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeGPOListW(pgpolist : *const GROUP_POLICY_OBJECTW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GenerateGPNotification(bmachine : super::super::Foundation:: BOOL, lpwszmgmtproduct : ::windows_sys::core::PCWSTR, dwmgmtproductoptions : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAppliedGPOListA(dwflags : u32, pmachinename : ::windows_sys::core::PCSTR, psiduser : super::super::Foundation:: PSID, pguidextension : *const ::windows_sys::core::GUID, ppgpolist : *mut *mut GROUP_POLICY_OBJECTA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAppliedGPOListW(dwflags : u32, pmachinename : ::windows_sys::core::PCWSTR, psiduser : super::super::Foundation:: PSID, pguidextension : *const ::windows_sys::core::GUID, ppgpolist : *mut *mut GROUP_POLICY_OBJECTW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetGPOListA(htoken : super::super::Foundation:: HANDLE, lpname : ::windows_sys::core::PCSTR, lphostname : ::windows_sys::core::PCSTR, lpcomputername : ::windows_sys::core::PCSTR, dwflags : u32, pgpolist : *mut *mut GROUP_POLICY_OBJECTA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetGPOListW(htoken : super::super::Foundation:: HANDLE, lpname : ::windows_sys::core::PCWSTR, lphostname : ::windows_sys::core::PCWSTR, lpcomputername : ::windows_sys::core::PCWSTR, dwflags : u32, pgpolist : *mut *mut GROUP_POLICY_OBJECTW) -> super::super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn GetLocalManagedApplicationData(productcode : ::windows_sys::core::PCWSTR, displayname : *mut ::windows_sys::core::PWSTR, supporturl : *mut ::windows_sys::core::PWSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLocalManagedApplications(buserapps : super::super::Foundation:: BOOL, pdwapps : *mut u32, prglocalapps : *mut *mut LOCALMANAGEDAPPLICATION) -> u32); +#[cfg(feature = "Win32_UI_Shell")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell\"`"] fn GetManagedApplicationCategories(dwreserved : u32, pappcategory : *mut super::super::UI::Shell:: APPCATEGORYINFOLIST) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetManagedApplications(pcategory : *const ::windows_sys::core::GUID, dwqueryflags : u32, dwinfolevel : u32, pdwapps : *mut u32, prgmanagedapps : *mut *mut MANAGEDAPPLICATION) -> u32); +::windows_targets::link!("gpedit.dll" "system" fn ImportRSoPData(lpnamespace : ::windows_sys::core::PCWSTR, lpfilename : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("advapi32.dll" "system" fn InstallApplication(pinstallinfo : *const INSTALLDATA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LeaveCriticalPolicySection(hsection : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("userenv.dll" "system" fn ProcessGroupPolicyCompleted(extensionid : *const ::windows_sys::core::GUID, pasynchandle : usize, dwstatus : u32) -> u32); +::windows_targets::link!("userenv.dll" "system" fn ProcessGroupPolicyCompletedEx(extensionid : *const ::windows_sys::core::GUID, pasynchandle : usize, dwstatus : u32, rsopstatus : ::windows_sys::core::HRESULT) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RefreshPolicy(bmachine : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RefreshPolicyEx(bmachine : super::super::Foundation:: BOOL, dwoptions : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterGPNotification(hevent : super::super::Foundation:: HANDLE, bmachine : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RsopAccessCheckByType(psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR, pprincipalselfsid : super::super::Foundation:: PSID, prsoptoken : *const ::core::ffi::c_void, dwdesiredaccessmask : u32, pobjecttypelist : *const super::super::Security:: OBJECT_TYPE_LIST, objecttypelistlength : u32, pgenericmapping : *const super::super::Security:: GENERIC_MAPPING, pprivilegeset : *const super::super::Security:: PRIVILEGE_SET, pdwprivilegesetlength : *const u32, pdwgrantedaccessmask : *mut u32, pbaccessstatus : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RsopFileAccessCheck(pszfilename : ::windows_sys::core::PCWSTR, prsoptoken : *const ::core::ffi::c_void, dwdesiredaccessmask : u32, pdwgrantedaccessmask : *mut u32, pbaccessstatus : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Wmi")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_System_Wmi\"`"] fn RsopResetPolicySettingStatus(dwflags : u32, pservices : super::Wmi:: IWbemServices, psettinginstance : super::Wmi:: IWbemClassObject) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Wmi"))] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Wmi\"`"] fn RsopSetPolicySettingStatus(dwflags : u32, pservices : super::Wmi:: IWbemServices, psettinginstance : super::Wmi:: IWbemClassObject, ninfo : u32, pstatus : *const POLICYSETTINGSTATUSINFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("advapi32.dll" "system" fn UninstallApplication(productcode : ::windows_sys::core::PCWSTR, dwstatus : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterGPNotification(hevent : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +pub type IGPEInformation = *mut ::core::ffi::c_void; +pub type IGPM = *mut ::core::ffi::c_void; +pub type IGPM2 = *mut ::core::ffi::c_void; +pub type IGPMAsyncCancel = *mut ::core::ffi::c_void; +pub type IGPMAsyncProgress = *mut ::core::ffi::c_void; +pub type IGPMBackup = *mut ::core::ffi::c_void; +pub type IGPMBackupCollection = *mut ::core::ffi::c_void; +pub type IGPMBackupDir = *mut ::core::ffi::c_void; +pub type IGPMBackupDirEx = *mut ::core::ffi::c_void; +pub type IGPMCSECollection = *mut ::core::ffi::c_void; +pub type IGPMClientSideExtension = *mut ::core::ffi::c_void; +pub type IGPMConstants = *mut ::core::ffi::c_void; +pub type IGPMConstants2 = *mut ::core::ffi::c_void; +pub type IGPMDomain = *mut ::core::ffi::c_void; +pub type IGPMDomain2 = *mut ::core::ffi::c_void; +pub type IGPMDomain3 = *mut ::core::ffi::c_void; +pub type IGPMGPO = *mut ::core::ffi::c_void; +pub type IGPMGPO2 = *mut ::core::ffi::c_void; +pub type IGPMGPO3 = *mut ::core::ffi::c_void; +pub type IGPMGPOCollection = *mut ::core::ffi::c_void; +pub type IGPMGPOLink = *mut ::core::ffi::c_void; +pub type IGPMGPOLinksCollection = *mut ::core::ffi::c_void; +pub type IGPMMapEntry = *mut ::core::ffi::c_void; +pub type IGPMMapEntryCollection = *mut ::core::ffi::c_void; +pub type IGPMMigrationTable = *mut ::core::ffi::c_void; +pub type IGPMPermission = *mut ::core::ffi::c_void; +pub type IGPMRSOP = *mut ::core::ffi::c_void; +pub type IGPMResult = *mut ::core::ffi::c_void; +pub type IGPMSOM = *mut ::core::ffi::c_void; +pub type IGPMSOMCollection = *mut ::core::ffi::c_void; +pub type IGPMSearchCriteria = *mut ::core::ffi::c_void; +pub type IGPMSecurityInfo = *mut ::core::ffi::c_void; +pub type IGPMSitesContainer = *mut ::core::ffi::c_void; +pub type IGPMStarterGPO = *mut ::core::ffi::c_void; +pub type IGPMStarterGPOBackup = *mut ::core::ffi::c_void; +pub type IGPMStarterGPOBackupCollection = *mut ::core::ffi::c_void; +pub type IGPMStarterGPOCollection = *mut ::core::ffi::c_void; +pub type IGPMStatusMessage = *mut ::core::ffi::c_void; +pub type IGPMStatusMsgCollection = *mut ::core::ffi::c_void; +pub type IGPMTrustee = *mut ::core::ffi::c_void; +pub type IGPMWMIFilter = *mut ::core::ffi::c_void; +pub type IGPMWMIFilterCollection = *mut ::core::ffi::c_void; +pub type IGroupPolicyObject = *mut ::core::ffi::c_void; +pub type IRSOPInformation = *mut ::core::ffi::c_void; +pub const ABSENT: APPSTATE = 0i32; +pub const ADMXCOMMENTS_EXTENSION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6c5a2a86_9eb3_42b9_aa83_a7371ba011b9); +pub const APPNAME: INSTALLSPECTYPE = 1i32; +pub const ASSIGNED: APPSTATE = 1i32; +pub const CLSID_GPESnapIn: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8fc0b734_a0e1_11d1_a7d3_0000f87571e3); +pub const CLSID_GroupPolicyObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xea502722_a23d_11d1_a7d3_0000f87571e3); +pub const CLSID_RSOPSnapIn: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6dc3804b_7212_458d_adb0_9a07e2ae1fa2); +pub const COMCLASS: INSTALLSPECTYPE = 4i32; +pub const FILEEXT: INSTALLSPECTYPE = 2i32; +pub const FLAG_ASSUME_COMP_WQLFILTER_TRUE: u32 = 33554432u32; +pub const FLAG_ASSUME_SLOW_LINK: u32 = 536870912u32; +pub const FLAG_ASSUME_USER_WQLFILTER_TRUE: u32 = 67108864u32; +pub const FLAG_FORCE_CREATENAMESPACE: u32 = 4u32; +pub const FLAG_LOOPBACK_MERGE: u32 = 268435456u32; +pub const FLAG_LOOPBACK_REPLACE: u32 = 134217728u32; +pub const FLAG_NO_COMPUTER: u32 = 2u32; +pub const FLAG_NO_CSE_INVOKE: u32 = 1073741824u32; +pub const FLAG_NO_GPO_FILTER: u32 = 2147483648u32; +pub const FLAG_NO_USER: u32 = 1u32; +pub const FLAG_PLANNING_MODE: u32 = 16777216u32; +pub const GPC_BLOCK_POLICY: u32 = 1u32; +pub const GPHintDomain: GROUP_POLICY_HINT_TYPE = 3i32; +pub const GPHintMachine: GROUP_POLICY_HINT_TYPE = 1i32; +pub const GPHintOrganizationalUnit: GROUP_POLICY_HINT_TYPE = 4i32; +pub const GPHintSite: GROUP_POLICY_HINT_TYPE = 2i32; +pub const GPHintUnknown: GROUP_POLICY_HINT_TYPE = 0i32; +pub const GPLinkDomain: GPO_LINK = 3i32; +pub const GPLinkMachine: GPO_LINK = 1i32; +pub const GPLinkOrganizationalUnit: GPO_LINK = 4i32; +pub const GPLinkSite: GPO_LINK = 2i32; +pub const GPLinkUnknown: GPO_LINK = 0i32; +pub const GPM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf5694708_88fe_4b35_babf_e56162d5fbc8); +pub const GPMAsyncCancel: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x372796a9_76ec_479d_ad6c_556318ed5f9d); +pub const GPMBackup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xed1a54b8_5efa_482a_93c0_8ad86f0d68c3); +pub const GPMBackupCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeb8f035b_70db_4a9f_9676_37c25994e9dc); +pub const GPMBackupDir: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfce4a59d_0f21_4afa_b859_e6d0c62cd10c); +pub const GPMBackupDirEx: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe8c0988a_cf03_4c5b_8be2_2aa9ad32aada); +pub const GPMCSECollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf92b828_2d44_4b61_b10a_b327afd42da8); +pub const GPMClientSideExtension: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc1a2e70e_659c_4b1a_940b_f88b0af9c8a4); +pub const GPMConstants: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3855e880_cd9e_4d0c_9eaf_1579283a1888); +pub const GPMDomain: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x710901be_1050_4cb1_838a_c5cff259e183); +pub const GPMGPO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd2ce2994_59b5_4064_b581_4d68486a16c4); +pub const GPMGPOCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7a057325_832d_4de3_a41f_c780436a4e09); +pub const GPMGPOLink: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc1df9880_5303_42c6_8a3c_0488e1bf7364); +pub const GPMGPOLinksCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf6ed581a_49a5_47e2_b771_fd8dc02b6259); +pub const GPMMapEntry: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8c975253_5431_4471_b35d_0626c928258a); +pub const GPMMapEntryCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cf75d5b_a3a1_4c55_b4fe_9e149c41f66d); +pub const GPMMigrationTable: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x55af4043_2a06_4f72_abef_631b44079c76); +pub const GPMPermission: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5871a40a_e9c0_46ec_913e_944ef9225a94); +pub const GPMRSOP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x489b0caf_9ec2_4eb7_91f5_b6f71d43da8c); +pub const GPMResult: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x92101ac0_9287_4206_a3b2_4bdb73d225f6); +pub const GPMSOM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x32d93fac_450e_44cf_829c_8b22ff6bdae1); +pub const GPMSOMCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x24c1f147_3720_4f5b_a9c3_06b4e4f931d2); +pub const GPMSearchCriteria: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x17aaca26_5ce0_44fa_8cc0_5259e6483566); +pub const GPMSecurityInfo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x547a5e8f_9162_4516_a4df_9ddb9686d846); +pub const GPMSitesContainer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x229f5c42_852c_4b30_945f_c522be9bd386); +pub const GPMStarterGPOBackup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x389e400a_d8ef_455b_a861_5f9ca34a6a02); +pub const GPMStarterGPOBackupCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe75ea59d_1aeb_4cb5_a78a_281daa582406); +pub const GPMStarterGPOCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x82f8aa8b_49ba_43b2_956e_3397f9b94c3a); +pub const GPMStatusMessage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4b77cc94_d255_409b_bc62_370881715a19); +pub const GPMStatusMsgCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2824e4be_4bcc_4cac_9e60_0e3ed7f12496); +pub const GPMTemplate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecf1d454_71da_4e2f_a8c0_8185465911d9); +pub const GPMTrustee: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc54a700d_19b6_4211_bcb0_e8e2475e471e); +pub const GPMWMIFilter: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x626745d8_0dea_4062_bf60_cfc5b1ca1286); +pub const GPMWMIFilterCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x74dc6d28_e820_47d6_a0b8_f08d93d7fa33); +pub const GPM_DONOTUSE_W2KDC: u32 = 2u32; +pub const GPM_DONOT_VALIDATEDC: u32 = 1u32; +pub const GPM_MIGRATIONTABLE_ONLY: u32 = 1u32; +pub const GPM_PROCESS_SECURITY: u32 = 2u32; +pub const GPM_USE_ANYDC: u32 = 1u32; +pub const GPM_USE_PDC: u32 = 0u32; +pub const GPOTypeDS: GROUP_POLICY_OBJECT_TYPE = 2i32; +pub const GPOTypeLocal: GROUP_POLICY_OBJECT_TYPE = 0i32; +pub const GPOTypeLocalGroup: GROUP_POLICY_OBJECT_TYPE = 4i32; +pub const GPOTypeLocalUser: GROUP_POLICY_OBJECT_TYPE = 3i32; +pub const GPOTypeRemote: GROUP_POLICY_OBJECT_TYPE = 1i32; +pub const GPO_BROWSE_DISABLENEW: u32 = 1u32; +pub const GPO_BROWSE_INITTOALL: u32 = 16u32; +pub const GPO_BROWSE_NOCOMPUTERS: u32 = 2u32; +pub const GPO_BROWSE_NODSGPOS: u32 = 4u32; +pub const GPO_BROWSE_NOUSERGPOS: u32 = 32u32; +pub const GPO_BROWSE_OPENBUTTON: u32 = 8u32; +pub const GPO_BROWSE_SENDAPPLYONEDIT: u32 = 64u32; +pub const GPO_FLAG_DISABLE: u32 = 1u32; +pub const GPO_FLAG_FORCE: u32 = 2u32; +pub const GPO_INFO_FLAG_ASYNC_FOREGROUND: u32 = 4096u32; +pub const GPO_INFO_FLAG_BACKGROUND: u32 = 16u32; +pub const GPO_INFO_FLAG_FORCED_REFRESH: u32 = 1024u32; +pub const GPO_INFO_FLAG_LINKTRANSITION: u32 = 256u32; +pub const GPO_INFO_FLAG_LOGRSOP_TRANSITION: u32 = 512u32; +pub const GPO_INFO_FLAG_MACHINE: u32 = 1u32; +pub const GPO_INFO_FLAG_NOCHANGES: u32 = 128u32; +pub const GPO_INFO_FLAG_SAFEMODE_BOOT: u32 = 2048u32; +pub const GPO_INFO_FLAG_SLOWLINK: u32 = 32u32; +pub const GPO_INFO_FLAG_VERBOSE: u32 = 64u32; +pub const GPO_LIST_FLAG_MACHINE: u32 = 1u32; +pub const GPO_LIST_FLAG_NO_SECURITYFILTERS: u32 = 8u32; +pub const GPO_LIST_FLAG_NO_WMIFILTERS: u32 = 4u32; +pub const GPO_LIST_FLAG_SITEONLY: u32 = 2u32; +pub const GPO_OPEN_LOAD_REGISTRY: GPO_OPEN_FLAGS = 1u32; +pub const GPO_OPEN_READ_ONLY: GPO_OPEN_FLAGS = 2u32; +pub const GPO_OPTION_DISABLE_MACHINE: GPO_OPTIONS = 2u32; +pub const GPO_OPTION_DISABLE_USER: GPO_OPTIONS = 1u32; +pub const GPO_SECTION_MACHINE: GPO_SECTION = 2u32; +pub const GPO_SECTION_ROOT: GPO_SECTION = 0u32; +pub const GPO_SECTION_USER: GPO_SECTION = 1u32; +pub const GP_DLLNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DllName"); +pub const GP_ENABLEASYNCHRONOUSPROCESSING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableAsynchronousProcessing"); +pub const GP_MAXNOGPOLISTCHANGESINTERVAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxNoGPOListChangesInterval"); +pub const GP_NOBACKGROUNDPOLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoBackgroundPolicy"); +pub const GP_NOGPOLISTCHANGES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoGPOListChanges"); +pub const GP_NOMACHINEPOLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoMachinePolicy"); +pub const GP_NOSLOWLINK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoSlowLink"); +pub const GP_NOTIFYLINKTRANSITION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NotifyLinkTransition"); +pub const GP_NOUSERPOLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoUserPolicy"); +pub const GP_PERUSERLOCALSETTINGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PerUserLocalSettings"); +pub const GP_PROCESSGROUPPOLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProcessGroupPolicy"); +pub const GP_REQUIRESSUCCESSFULREGISTRY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RequiresSuccessfulRegistry"); +pub const GROUP_POLICY_TRIGGER_EVENT_PROVIDER_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbd2f4252_5e1e_49fc_9a30_f3978ad89ee2); +pub const LOCALSTATE_ASSIGNED: u32 = 1u32; +pub const LOCALSTATE_ORPHANED: u32 = 32u32; +pub const LOCALSTATE_POLICYREMOVE_ORPHAN: u32 = 8u32; +pub const LOCALSTATE_POLICYREMOVE_UNINSTALL: u32 = 16u32; +pub const LOCALSTATE_PUBLISHED: u32 = 2u32; +pub const LOCALSTATE_UNINSTALLED: u32 = 64u32; +pub const LOCALSTATE_UNINSTALL_UNMANAGED: u32 = 4u32; +pub const MACHINE_POLICY_PRESENT_TRIGGER_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x659fcae6_5bdb_4da9_b1ff_ca2a178d46e0); +pub const MANAGED_APPS_FROMCATEGORY: u32 = 2u32; +pub const MANAGED_APPS_INFOLEVEL_DEFAULT: u32 = 65536u32; +pub const MANAGED_APPS_USERAPPLICATIONS: u32 = 1u32; +pub const MANAGED_APPTYPE_SETUPEXE: u32 = 2u32; +pub const MANAGED_APPTYPE_UNSUPPORTED: u32 = 3u32; +pub const MANAGED_APPTYPE_WINDOWSINSTALLER: u32 = 1u32; +pub const NODEID_Machine: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8fc0b737_a0e1_11d1_a7d3_0000f87571e3); +pub const NODEID_MachineSWSettings: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8fc0b73a_a0e1_11d1_a7d3_0000f87571e3); +pub const NODEID_RSOPMachine: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbd4c1a2e_0b7a_4a62_a6b0_c0577539c97e); +pub const NODEID_RSOPMachineSWSettings: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a76273e_eb8e_45db_94c5_25663a5f2c1a); +pub const NODEID_RSOPUser: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xab87364f_0cec_4cd8_9bf8_898f34628fb8); +pub const NODEID_RSOPUserSWSettings: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe52c5ce3_fd27_4402_84de_d9a5f2858910); +pub const NODEID_User: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8fc0b738_a0e1_11d1_a7d3_0000f87571e3); +pub const NODEID_UserSWSettings: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8fc0b73c_a0e1_11d1_a7d3_0000f87571e3); +pub const PI_APPLYPOLICY: u32 = 2u32; +pub const PI_NOUI: u32 = 1u32; +pub const PROGID: INSTALLSPECTYPE = 3i32; +pub const PT_MANDATORY: u32 = 4u32; +pub const PT_ROAMING: u32 = 2u32; +pub const PT_ROAMING_PREEXISTING: u32 = 8u32; +pub const PT_TEMPORARY: u32 = 1u32; +pub const PUBLISHED: APPSTATE = 2i32; +pub const REGISTRY_EXTENSION_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x35378eac_683f_11d2_a89a_00c04fbbcfa2); +pub const RP_FORCE: u32 = 1u32; +pub const RP_SYNC: u32 = 2u32; +pub const RSOPApplied: SETTINGSTATUS = 1i32; +pub const RSOPFailed: SETTINGSTATUS = 3i32; +pub const RSOPIgnored: SETTINGSTATUS = 2i32; +pub const RSOPSubsettingFailed: SETTINGSTATUS = 4i32; +pub const RSOPUnspecified: SETTINGSTATUS = 0i32; +pub const RSOP_COMPUTER_ACCESS_DENIED: u32 = 2u32; +pub const RSOP_INFO_FLAG_DIAGNOSTIC_MODE: u32 = 1u32; +pub const RSOP_NO_COMPUTER: u32 = 65536u32; +pub const RSOP_NO_USER: u32 = 131072u32; +pub const RSOP_PLANNING_ASSUME_COMP_WQLFILTER_TRUE: u32 = 16u32; +pub const RSOP_PLANNING_ASSUME_LOOPBACK_MERGE: u32 = 2u32; +pub const RSOP_PLANNING_ASSUME_LOOPBACK_REPLACE: u32 = 4u32; +pub const RSOP_PLANNING_ASSUME_SLOW_LINK: u32 = 1u32; +pub const RSOP_PLANNING_ASSUME_USER_WQLFILTER_TRUE: u32 = 8u32; +pub const RSOP_TEMPNAMESPACE_EXISTS: u32 = 4u32; +pub const RSOP_USER_ACCESS_DENIED: u32 = 1u32; +pub const USER_POLICY_PRESENT_TRIGGER_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x54fb46c8_f089_464c_b1fd_59d1b62c3b50); +pub const backupMostRecent: GPMSearchProperty = 9i32; +pub const gpoComputerExtensions: GPMSearchProperty = 5i32; +pub const gpoDisplayName: GPMSearchProperty = 2i32; +pub const gpoDomain: GPMSearchProperty = 8i32; +pub const gpoEffectivePermissions: GPMSearchProperty = 1i32; +pub const gpoID: GPMSearchProperty = 4i32; +pub const gpoPermissions: GPMSearchProperty = 0i32; +pub const gpoUserExtensions: GPMSearchProperty = 6i32; +pub const gpoWMIFilter: GPMSearchProperty = 3i32; +pub const opContains: GPMSearchOperation = 1i32; +pub const opDestinationByRelativeName: GPMDestinationOption = 2i32; +pub const opDestinationNone: GPMDestinationOption = 1i32; +pub const opDestinationSameAsSource: GPMDestinationOption = 0i32; +pub const opDestinationSet: GPMDestinationOption = 3i32; +pub const opEquals: GPMSearchOperation = 0i32; +pub const opNotContains: GPMSearchOperation = 2i32; +pub const opNotEquals: GPMSearchOperation = 3i32; +pub const opReportComments: GPMReportingOptions = 1i32; +pub const opReportLegacy: GPMReportingOptions = 0i32; +pub const permGPOApply: GPMPermissionType = 65536i32; +pub const permGPOCustom: GPMPermissionType = 65795i32; +pub const permGPOEdit: GPMPermissionType = 65793i32; +pub const permGPOEditSecurityAndDelete: GPMPermissionType = 65794i32; +pub const permGPORead: GPMPermissionType = 65792i32; +pub const permSOMGPOCreate: GPMPermissionType = 1049600i32; +pub const permSOMLink: GPMPermissionType = 1835008i32; +pub const permSOMLogging: GPMPermissionType = 1573120i32; +pub const permSOMPlanning: GPMPermissionType = 1573376i32; +pub const permSOMStarterGPOCreate: GPMPermissionType = 1049856i32; +pub const permSOMWMICreate: GPMPermissionType = 1049344i32; +pub const permSOMWMIFullControl: GPMPermissionType = 1049345i32; +pub const permStarterGPOCustom: GPMPermissionType = 197891i32; +pub const permStarterGPOEdit: GPMPermissionType = 197889i32; +pub const permStarterGPOFullControl: GPMPermissionType = 197890i32; +pub const permStarterGPORead: GPMPermissionType = 197888i32; +pub const permWMIFilterCustom: GPMPermissionType = 131074i32; +pub const permWMIFilterEdit: GPMPermissionType = 131072i32; +pub const permWMIFilterFullControl: GPMPermissionType = 131073i32; +pub const repClientHealthRefreshXML: GPMReportType = 5i32; +pub const repClientHealthXML: GPMReportType = 4i32; +pub const repHTML: GPMReportType = 1i32; +pub const repInfraRefreshXML: GPMReportType = 3i32; +pub const repInfraXML: GPMReportType = 2i32; +pub const repXML: GPMReportType = 0i32; +pub const rsopLogging: GPMRSOPMode = 2i32; +pub const rsopPlanning: GPMRSOPMode = 1i32; +pub const rsopUnknown: GPMRSOPMode = 0i32; +pub const somDomain: GPMSOMType = 1i32; +pub const somLinks: GPMSearchProperty = 7i32; +pub const somOU: GPMSOMType = 2i32; +pub const somSite: GPMSOMType = 0i32; +pub const starterGPODisplayName: GPMSearchProperty = 12i32; +pub const starterGPODomain: GPMSearchProperty = 14i32; +pub const starterGPOEffectivePermissions: GPMSearchProperty = 11i32; +pub const starterGPOID: GPMSearchProperty = 13i32; +pub const starterGPOPermissions: GPMSearchProperty = 10i32; +pub const typeComputer: GPMEntryType = 1i32; +pub const typeCustom: GPMStarterGPOType = 1i32; +pub const typeGPO: GPMBackupType = 0i32; +pub const typeGlobalGroup: GPMEntryType = 3i32; +pub const typeLocalGroup: GPMEntryType = 2i32; +pub const typeStarterGPO: GPMBackupType = 1i32; +pub const typeSystem: GPMStarterGPOType = 0i32; +pub const typeUNCPath: GPMEntryType = 5i32; +pub const typeUniversalGroup: GPMEntryType = 4i32; +pub const typeUnknown: GPMEntryType = 6i32; +pub const typeUser: GPMEntryType = 0i32; +pub type APPSTATE = i32; +pub type GPMBackupType = i32; +pub type GPMDestinationOption = i32; +pub type GPMEntryType = i32; +pub type GPMPermissionType = i32; +pub type GPMRSOPMode = i32; +pub type GPMReportType = i32; +pub type GPMReportingOptions = i32; +pub type GPMSOMType = i32; +pub type GPMSearchOperation = i32; +pub type GPMSearchProperty = i32; +pub type GPMStarterGPOType = i32; +pub type GPO_LINK = i32; +pub type GPO_OPEN_FLAGS = u32; +pub type GPO_OPTIONS = u32; +pub type GPO_SECTION = u32; +pub type GROUP_POLICY_HINT_TYPE = i32; +pub type GROUP_POLICY_OBJECT_TYPE = i32; +pub type INSTALLSPECTYPE = i32; +pub type SETTINGSTATUS = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GPOBROWSEINFO { + pub dwSize: u32, + pub dwFlags: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub lpTitle: ::windows_sys::core::PWSTR, + pub lpInitialOU: ::windows_sys::core::PWSTR, + pub lpDSPath: ::windows_sys::core::PWSTR, + pub dwDSPathSize: u32, + pub lpName: ::windows_sys::core::PWSTR, + pub dwNameSize: u32, + pub gpoType: GROUP_POLICY_OBJECT_TYPE, + pub gpoHint: GROUP_POLICY_HINT_TYPE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GPOBROWSEINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GPOBROWSEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GROUP_POLICY_OBJECTA { + pub dwOptions: u32, + pub dwVersion: u32, + pub lpDSPath: ::windows_sys::core::PSTR, + pub lpFileSysPath: ::windows_sys::core::PSTR, + pub lpDisplayName: ::windows_sys::core::PSTR, + pub szGPOName: [u8; 50], + pub GPOLink: GPO_LINK, + pub lParam: super::super::Foundation::LPARAM, + pub pNext: *mut GROUP_POLICY_OBJECTA, + pub pPrev: *mut GROUP_POLICY_OBJECTA, + pub lpExtensions: ::windows_sys::core::PSTR, + pub lParam2: super::super::Foundation::LPARAM, + pub lpLink: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GROUP_POLICY_OBJECTA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GROUP_POLICY_OBJECTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GROUP_POLICY_OBJECTW { + pub dwOptions: u32, + pub dwVersion: u32, + pub lpDSPath: ::windows_sys::core::PWSTR, + pub lpFileSysPath: ::windows_sys::core::PWSTR, + pub lpDisplayName: ::windows_sys::core::PWSTR, + pub szGPOName: [u16; 50], + pub GPOLink: GPO_LINK, + pub lParam: super::super::Foundation::LPARAM, + pub pNext: *mut GROUP_POLICY_OBJECTW, + pub pPrev: *mut GROUP_POLICY_OBJECTW, + pub lpExtensions: ::windows_sys::core::PWSTR, + pub lParam2: super::super::Foundation::LPARAM, + pub lpLink: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GROUP_POLICY_OBJECTW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GROUP_POLICY_OBJECTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INSTALLDATA { + pub Type: INSTALLSPECTYPE, + pub Spec: INSTALLSPEC, +} +impl ::core::marker::Copy for INSTALLDATA {} +impl ::core::clone::Clone for INSTALLDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union INSTALLSPEC { + pub AppName: INSTALLSPEC_0, + pub FileExt: ::windows_sys::core::PWSTR, + pub ProgId: ::windows_sys::core::PWSTR, + pub COMClass: INSTALLSPEC_1, +} +impl ::core::marker::Copy for INSTALLSPEC {} +impl ::core::clone::Clone for INSTALLSPEC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INSTALLSPEC_0 { + pub Name: ::windows_sys::core::PWSTR, + pub GPOId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for INSTALLSPEC_0 {} +impl ::core::clone::Clone for INSTALLSPEC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INSTALLSPEC_1 { + pub Clsid: ::windows_sys::core::GUID, + pub ClsCtx: u32, +} +impl ::core::marker::Copy for INSTALLSPEC_1 {} +impl ::core::clone::Clone for INSTALLSPEC_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOCALMANAGEDAPPLICATION { + pub pszDeploymentName: ::windows_sys::core::PWSTR, + pub pszPolicyName: ::windows_sys::core::PWSTR, + pub pszProductId: ::windows_sys::core::PWSTR, + pub dwState: u32, +} +impl ::core::marker::Copy for LOCALMANAGEDAPPLICATION {} +impl ::core::clone::Clone for LOCALMANAGEDAPPLICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MANAGEDAPPLICATION { + pub pszPackageName: ::windows_sys::core::PWSTR, + pub pszPublisher: ::windows_sys::core::PWSTR, + pub dwVersionHi: u32, + pub dwVersionLo: u32, + pub dwRevision: u32, + pub GpoId: ::windows_sys::core::GUID, + pub pszPolicyName: ::windows_sys::core::PWSTR, + pub ProductId: ::windows_sys::core::GUID, + pub Language: u16, + pub pszOwner: ::windows_sys::core::PWSTR, + pub pszCompany: ::windows_sys::core::PWSTR, + pub pszComments: ::windows_sys::core::PWSTR, + pub pszContact: ::windows_sys::core::PWSTR, + pub pszSupportUrl: ::windows_sys::core::PWSTR, + pub dwPathType: u32, + pub bInstalled: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MANAGEDAPPLICATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MANAGEDAPPLICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POLICYSETTINGSTATUSINFO { + pub szKey: ::windows_sys::core::PWSTR, + pub szEventSource: ::windows_sys::core::PWSTR, + pub szEventLogName: ::windows_sys::core::PWSTR, + pub dwEventID: u32, + pub dwErrorCode: u32, + pub status: SETTINGSTATUS, + pub timeLogged: super::super::Foundation::SYSTEMTIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POLICYSETTINGSTATUSINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POLICYSETTINGSTATUSINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Wmi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Wmi"))] +pub struct RSOP_TARGET { + pub pwszAccountName: ::windows_sys::core::PWSTR, + pub pwszNewSOM: ::windows_sys::core::PWSTR, + pub psaSecurityGroups: *mut super::Com::SAFEARRAY, + pub pRsopToken: *mut ::core::ffi::c_void, + pub pGPOList: *mut GROUP_POLICY_OBJECTA, + pub pWbemServices: super::Wmi::IWbemServices, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Wmi"))] +impl ::core::marker::Copy for RSOP_TARGET {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Wmi"))] +impl ::core::clone::Clone for RSOP_TARGET { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Wmi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Wmi"))] +pub type PFNGENERATEGROUPPOLICY = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub type PFNPROCESSGROUPPOLICY = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`, `\"Win32_System_Wmi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_System_Wmi"))] +pub type PFNPROCESSGROUPPOLICYEX = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNSTATUSMESSAGECALLBACK = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/HostCompute/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/HostCompute/mod.rs new file mode 100644 index 000000000..1cd156241 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/HostCompute/mod.rs @@ -0,0 +1 @@ +pub type HCS_CALLBACK = isize; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/HostComputeNetwork/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/HostComputeNetwork/mod.rs new file mode 100644 index 000000000..4e2e7afd5 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/HostComputeNetwork/mod.rs @@ -0,0 +1,99 @@ +::windows_targets::link!("computenetwork.dll" "system" fn HcnCloseEndpoint(endpoint : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnCloseGuestNetworkService(guestnetworkservice : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnCloseLoadBalancer(loadbalancer : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnCloseNamespace(namespace : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnCloseNetwork(network : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnCreateEndpoint(network : *const ::core::ffi::c_void, id : *const ::windows_sys::core::GUID, settings : ::windows_sys::core::PCWSTR, endpoint : *mut *mut ::core::ffi::c_void, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnCreateGuestNetworkService(id : *const ::windows_sys::core::GUID, settings : ::windows_sys::core::PCWSTR, guestnetworkservice : *mut *mut ::core::ffi::c_void, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnCreateLoadBalancer(id : *const ::windows_sys::core::GUID, settings : ::windows_sys::core::PCWSTR, loadbalancer : *mut *mut ::core::ffi::c_void, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnCreateNamespace(id : *const ::windows_sys::core::GUID, settings : ::windows_sys::core::PCWSTR, namespace : *mut *mut ::core::ffi::c_void, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnCreateNetwork(id : *const ::windows_sys::core::GUID, settings : ::windows_sys::core::PCWSTR, network : *mut *mut ::core::ffi::c_void, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnDeleteEndpoint(id : *const ::windows_sys::core::GUID, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnDeleteGuestNetworkService(id : *const ::windows_sys::core::GUID, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnDeleteLoadBalancer(id : *const ::windows_sys::core::GUID, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnDeleteNamespace(id : *const ::windows_sys::core::GUID, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnDeleteNetwork(id : *const ::windows_sys::core::GUID, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnEnumerateEndpoints(query : ::windows_sys::core::PCWSTR, endpoints : *mut ::windows_sys::core::PWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnEnumerateGuestNetworkPortReservations(returncount : *mut u32, portentries : *mut *mut HCN_PORT_RANGE_ENTRY) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnEnumerateLoadBalancers(query : ::windows_sys::core::PCWSTR, loadbalancer : *mut ::windows_sys::core::PWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnEnumerateNamespaces(query : ::windows_sys::core::PCWSTR, namespaces : *mut ::windows_sys::core::PWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnEnumerateNetworks(query : ::windows_sys::core::PCWSTR, networks : *mut ::windows_sys::core::PWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnFreeGuestNetworkPortReservations(portentries : *mut HCN_PORT_RANGE_ENTRY) -> ()); +::windows_targets::link!("computenetwork.dll" "system" fn HcnModifyEndpoint(endpoint : *const ::core::ffi::c_void, settings : ::windows_sys::core::PCWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnModifyGuestNetworkService(guestnetworkservice : *const ::core::ffi::c_void, settings : ::windows_sys::core::PCWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnModifyLoadBalancer(loadbalancer : *const ::core::ffi::c_void, settings : ::windows_sys::core::PCWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnModifyNamespace(namespace : *const ::core::ffi::c_void, settings : ::windows_sys::core::PCWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnModifyNetwork(network : *const ::core::ffi::c_void, settings : ::windows_sys::core::PCWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnOpenEndpoint(id : *const ::windows_sys::core::GUID, endpoint : *mut *mut ::core::ffi::c_void, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnOpenLoadBalancer(id : *const ::windows_sys::core::GUID, loadbalancer : *mut *mut ::core::ffi::c_void, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnOpenNamespace(id : *const ::windows_sys::core::GUID, namespace : *mut *mut ::core::ffi::c_void, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnOpenNetwork(id : *const ::windows_sys::core::GUID, network : *mut *mut ::core::ffi::c_void, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnQueryEndpointAddresses(endpoint : *const ::core::ffi::c_void, query : ::windows_sys::core::PCWSTR, addresses : *mut ::windows_sys::core::PWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnQueryEndpointProperties(endpoint : *const ::core::ffi::c_void, query : ::windows_sys::core::PCWSTR, properties : *mut ::windows_sys::core::PWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnQueryEndpointStats(endpoint : *const ::core::ffi::c_void, query : ::windows_sys::core::PCWSTR, stats : *mut ::windows_sys::core::PWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnQueryLoadBalancerProperties(loadbalancer : *const ::core::ffi::c_void, query : ::windows_sys::core::PCWSTR, properties : *mut ::windows_sys::core::PWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnQueryNamespaceProperties(namespace : *const ::core::ffi::c_void, query : ::windows_sys::core::PCWSTR, properties : *mut ::windows_sys::core::PWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnQueryNetworkProperties(network : *const ::core::ffi::c_void, query : ::windows_sys::core::PCWSTR, properties : *mut ::windows_sys::core::PWSTR, errorrecord : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnRegisterGuestNetworkServiceCallback(guestnetworkservice : *const ::core::ffi::c_void, callback : HCN_NOTIFICATION_CALLBACK, context : *const ::core::ffi::c_void, callbackhandle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnRegisterServiceCallback(callback : HCN_NOTIFICATION_CALLBACK, context : *const ::core::ffi::c_void, callbackhandle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("computenetwork.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HcnReleaseGuestNetworkServicePortReservationHandle(portreservationhandle : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("computenetwork.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HcnReserveGuestNetworkServicePort(guestnetworkservice : *const ::core::ffi::c_void, protocol : HCN_PORT_PROTOCOL, access : HCN_PORT_ACCESS, port : u16, portreservationhandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("computenetwork.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HcnReserveGuestNetworkServicePortRange(guestnetworkservice : *const ::core::ffi::c_void, portcount : u16, portrangereservation : *mut HCN_PORT_RANGE_RESERVATION, portreservationhandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnUnregisterGuestNetworkServiceCallback(callbackhandle : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computenetwork.dll" "system" fn HcnUnregisterServiceCallback(callbackhandle : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +pub const HCN_PORT_ACCESS_EXCLUSIVE: HCN_PORT_ACCESS = 1i32; +pub const HCN_PORT_ACCESS_SHARED: HCN_PORT_ACCESS = 2i32; +pub const HCN_PORT_PROTOCOL_BOTH: HCN_PORT_PROTOCOL = 3i32; +pub const HCN_PORT_PROTOCOL_TCP: HCN_PORT_PROTOCOL = 1i32; +pub const HCN_PORT_PROTOCOL_UDP: HCN_PORT_PROTOCOL = 2i32; +pub const HcnNotificationFlagsReserved: HCN_NOTIFICATIONS = -268435456i32; +pub const HcnNotificationGuestNetworkServiceCreate: HCN_NOTIFICATIONS = 7i32; +pub const HcnNotificationGuestNetworkServiceDelete: HCN_NOTIFICATIONS = 8i32; +pub const HcnNotificationGuestNetworkServiceInterfaceStateChanged: HCN_NOTIFICATIONS = 18i32; +pub const HcnNotificationGuestNetworkServiceStateChanged: HCN_NOTIFICATIONS = 17i32; +pub const HcnNotificationInvalid: HCN_NOTIFICATIONS = 0i32; +pub const HcnNotificationNamespaceCreate: HCN_NOTIFICATIONS = 5i32; +pub const HcnNotificationNamespaceDelete: HCN_NOTIFICATIONS = 6i32; +pub const HcnNotificationNetworkCreate: HCN_NOTIFICATIONS = 2i32; +pub const HcnNotificationNetworkDelete: HCN_NOTIFICATIONS = 4i32; +pub const HcnNotificationNetworkEndpointAttached: HCN_NOTIFICATIONS = 9i32; +pub const HcnNotificationNetworkEndpointDetached: HCN_NOTIFICATIONS = 16i32; +pub const HcnNotificationNetworkPreCreate: HCN_NOTIFICATIONS = 1i32; +pub const HcnNotificationNetworkPreDelete: HCN_NOTIFICATIONS = 3i32; +pub const HcnNotificationServiceDisconnect: HCN_NOTIFICATIONS = 16777216i32; +pub type HCN_NOTIFICATIONS = i32; +pub type HCN_PORT_ACCESS = i32; +pub type HCN_PORT_PROTOCOL = i32; +#[repr(C)] +pub struct HCN_PORT_RANGE_ENTRY { + pub OwningPartitionId: ::windows_sys::core::GUID, + pub TargetPartitionId: ::windows_sys::core::GUID, + pub Protocol: HCN_PORT_PROTOCOL, + pub Priority: u64, + pub ReservationType: u32, + pub SharingFlags: u32, + pub DeliveryMode: u32, + pub StartingPort: u16, + pub EndingPort: u16, +} +impl ::core::marker::Copy for HCN_PORT_RANGE_ENTRY {} +impl ::core::clone::Clone for HCN_PORT_RANGE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HCN_PORT_RANGE_RESERVATION { + pub startingPort: u16, + pub endingPort: u16, +} +impl ::core::marker::Copy for HCN_PORT_RANGE_RESERVATION {} +impl ::core::clone::Clone for HCN_PORT_RANGE_RESERVATION { + fn clone(&self) -> Self { + *self + } +} +pub type HCN_NOTIFICATION_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/HostComputeSystem/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/HostComputeSystem/mod.rs new file mode 100644 index 000000000..cf5b97bbb --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/HostComputeSystem/mod.rs @@ -0,0 +1,200 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("computecore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HcsAddResourceToOperation(operation : HCS_OPERATION, r#type : HCS_RESOURCE_TYPE, uri : ::windows_sys::core::PCWSTR, handle : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computestorage.dll" "system" fn HcsAttachLayerStorageFilter(layerpath : ::windows_sys::core::PCWSTR, layerdata : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsCancelOperation(operation : HCS_OPERATION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsCloseComputeSystem(computesystem : HCS_SYSTEM) -> ()); +::windows_targets::link!("computecore.dll" "system" fn HcsCloseOperation(operation : HCS_OPERATION) -> ()); +::windows_targets::link!("computecore.dll" "system" fn HcsCloseProcess(process : HCS_PROCESS) -> ()); +::windows_targets::link!("computecore.dll" "system" fn HcsCrashComputeSystem(computesystem : HCS_SYSTEM, operation : HCS_OPERATION, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("computecore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn HcsCreateComputeSystem(id : ::windows_sys::core::PCWSTR, configuration : ::windows_sys::core::PCWSTR, operation : HCS_OPERATION, securitydescriptor : *const super::super::Security:: SECURITY_DESCRIPTOR, computesystem : *mut HCS_SYSTEM) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsCreateComputeSystemInNamespace(idnamespace : ::windows_sys::core::PCWSTR, id : ::windows_sys::core::PCWSTR, configuration : ::windows_sys::core::PCWSTR, operation : HCS_OPERATION, options : *const HCS_CREATE_OPTIONS, computesystem : *mut HCS_SYSTEM) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsCreateEmptyGuestStateFile(gueststatefilepath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsCreateEmptyRuntimeStateFile(runtimestatefilepath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsCreateOperation(context : *const ::core::ffi::c_void, callback : HCS_OPERATION_COMPLETION) -> HCS_OPERATION); +::windows_targets::link!("computecore.dll" "system" fn HcsCreateOperationWithNotifications(eventtypes : HCS_OPERATION_OPTIONS, context : *const ::core::ffi::c_void, callback : HCS_EVENT_CALLBACK) -> HCS_OPERATION); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("computecore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn HcsCreateProcess(computesystem : HCS_SYSTEM, processparameters : ::windows_sys::core::PCWSTR, operation : HCS_OPERATION, securitydescriptor : *const super::super::Security:: SECURITY_DESCRIPTOR, process : *mut HCS_PROCESS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computestorage.dll" "system" fn HcsDestroyLayer(layerpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computestorage.dll" "system" fn HcsDetachLayerStorageFilter(layerpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsEnumerateComputeSystems(query : ::windows_sys::core::PCWSTR, operation : HCS_OPERATION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsEnumerateComputeSystemsInNamespace(idnamespace : ::windows_sys::core::PCWSTR, query : ::windows_sys::core::PCWSTR, operation : HCS_OPERATION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computestorage.dll" "system" fn HcsExportLayer(layerpath : ::windows_sys::core::PCWSTR, exportfolderpath : ::windows_sys::core::PCWSTR, layerdata : ::windows_sys::core::PCWSTR, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computestorage.dll" "system" fn HcsExportLegacyWritableLayer(writablelayermountpath : ::windows_sys::core::PCWSTR, writablelayerfolderpath : ::windows_sys::core::PCWSTR, exportfolderpath : ::windows_sys::core::PCWSTR, layerdata : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("computestorage.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HcsFormatWritableLayerVhd(vhdhandle : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsGetComputeSystemFromOperation(operation : HCS_OPERATION) -> HCS_SYSTEM); +::windows_targets::link!("computecore.dll" "system" fn HcsGetComputeSystemProperties(computesystem : HCS_SYSTEM, operation : HCS_OPERATION, propertyquery : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("computestorage.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HcsGetLayerVhdMountPath(vhdhandle : super::super::Foundation:: HANDLE, mountpath : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsGetOperationContext(operation : HCS_OPERATION) -> *mut ::core::ffi::c_void); +::windows_targets::link!("computecore.dll" "system" fn HcsGetOperationId(operation : HCS_OPERATION) -> u64); +::windows_targets::link!("computecore.dll" "system" fn HcsGetOperationResult(operation : HCS_OPERATION, resultdocument : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("computecore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HcsGetOperationResultAndProcessInfo(operation : HCS_OPERATION, processinformation : *mut HCS_PROCESS_INFORMATION, resultdocument : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsGetOperationType(operation : HCS_OPERATION) -> HCS_OPERATION_TYPE); +::windows_targets::link!("computecore.dll" "system" fn HcsGetProcessFromOperation(operation : HCS_OPERATION) -> HCS_PROCESS); +::windows_targets::link!("computecore.dll" "system" fn HcsGetProcessInfo(process : HCS_PROCESS, operation : HCS_OPERATION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsGetProcessProperties(process : HCS_PROCESS, operation : HCS_OPERATION, propertyquery : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsGetProcessorCompatibilityFromSavedState(runtimefilename : ::windows_sys::core::PCWSTR, processorfeaturesstring : *mut ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsGetServiceProperties(propertyquery : ::windows_sys::core::PCWSTR, result : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsGrantVmAccess(vmid : ::windows_sys::core::PCWSTR, filepath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsGrantVmGroupAccess(filepath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computestorage.dll" "system" fn HcsImportLayer(layerpath : ::windows_sys::core::PCWSTR, sourcefolderpath : ::windows_sys::core::PCWSTR, layerdata : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computestorage.dll" "system" fn HcsInitializeLegacyWritableLayer(writablelayermountpath : ::windows_sys::core::PCWSTR, writablelayerfolderpath : ::windows_sys::core::PCWSTR, layerdata : ::windows_sys::core::PCWSTR, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computestorage.dll" "system" fn HcsInitializeWritableLayer(writablelayerpath : ::windows_sys::core::PCWSTR, layerdata : ::windows_sys::core::PCWSTR, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("computecore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HcsModifyComputeSystem(computesystem : HCS_SYSTEM, operation : HCS_OPERATION, configuration : ::windows_sys::core::PCWSTR, identity : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsModifyProcess(process : HCS_PROCESS, operation : HCS_OPERATION, settings : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsModifyServiceSettings(settings : ::windows_sys::core::PCWSTR, result : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsOpenComputeSystem(id : ::windows_sys::core::PCWSTR, requestedaccess : u32, computesystem : *mut HCS_SYSTEM) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsOpenComputeSystemInNamespace(idnamespace : ::windows_sys::core::PCWSTR, id : ::windows_sys::core::PCWSTR, requestedaccess : u32, computesystem : *mut HCS_SYSTEM) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsOpenProcess(computesystem : HCS_SYSTEM, processid : u32, requestedaccess : u32, process : *mut HCS_PROCESS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsPauseComputeSystem(computesystem : HCS_SYSTEM, operation : HCS_OPERATION, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsResumeComputeSystem(computesystem : HCS_SYSTEM, operation : HCS_OPERATION, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsRevokeVmAccess(vmid : ::windows_sys::core::PCWSTR, filepath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsRevokeVmGroupAccess(filepath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsSaveComputeSystem(computesystem : HCS_SYSTEM, operation : HCS_OPERATION, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsSetComputeSystemCallback(computesystem : HCS_SYSTEM, callbackoptions : HCS_EVENT_OPTIONS, context : *const ::core::ffi::c_void, callback : HCS_EVENT_CALLBACK) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsSetOperationCallback(operation : HCS_OPERATION, context : *const ::core::ffi::c_void, callback : HCS_OPERATION_COMPLETION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsSetOperationContext(operation : HCS_OPERATION, context : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsSetProcessCallback(process : HCS_PROCESS, callbackoptions : HCS_EVENT_OPTIONS, context : *const ::core::ffi::c_void, callback : HCS_EVENT_CALLBACK) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("computestorage.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HcsSetupBaseOSLayer(layerpath : ::windows_sys::core::PCWSTR, vhdhandle : super::super::Foundation:: HANDLE, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computestorage.dll" "system" fn HcsSetupBaseOSVolume(layerpath : ::windows_sys::core::PCWSTR, volumepath : ::windows_sys::core::PCWSTR, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsShutDownComputeSystem(computesystem : HCS_SYSTEM, operation : HCS_OPERATION, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsSignalProcess(process : HCS_PROCESS, operation : HCS_OPERATION, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsStartComputeSystem(computesystem : HCS_SYSTEM, operation : HCS_OPERATION, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsSubmitWerReport(settings : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsTerminateComputeSystem(computesystem : HCS_SYSTEM, operation : HCS_OPERATION, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsTerminateProcess(process : HCS_PROCESS, operation : HCS_OPERATION, options : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsWaitForComputeSystemExit(computesystem : HCS_SYSTEM, timeoutms : u32, result : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsWaitForOperationResult(operation : HCS_OPERATION, timeoutms : u32, resultdocument : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("computecore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HcsWaitForOperationResultAndProcessInfo(operation : HCS_OPERATION, timeoutms : u32, processinformation : *mut HCS_PROCESS_INFORMATION, resultdocument : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("computecore.dll" "system" fn HcsWaitForProcessExit(computesystem : HCS_PROCESS, timeoutms : u32, result : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +pub const HcsCreateOptions_1: HCS_CREATE_OPTIONS = 65536i32; +pub const HcsEventGroupOperationInfo: HCS_EVENT_TYPE = -1073741823i32; +pub const HcsEventGroupVmLifecycle: HCS_EVENT_TYPE = -2147483646i32; +pub const HcsEventInvalid: HCS_EVENT_TYPE = 0i32; +pub const HcsEventOperationCallback: HCS_EVENT_TYPE = 16777216i32; +pub const HcsEventOptionEnableOperationCallbacks: HCS_EVENT_OPTIONS = 1i32; +pub const HcsEventOptionEnableVmLifecycle: HCS_EVENT_OPTIONS = 2i32; +pub const HcsEventOptionNone: HCS_EVENT_OPTIONS = 0i32; +pub const HcsEventProcessExited: HCS_EVENT_TYPE = 65536i32; +pub const HcsEventServiceDisconnect: HCS_EVENT_TYPE = 33554432i32; +pub const HcsEventSystemCrashInitiated: HCS_EVENT_TYPE = 2i32; +pub const HcsEventSystemCrashReport: HCS_EVENT_TYPE = 3i32; +pub const HcsEventSystemExited: HCS_EVENT_TYPE = 1i32; +pub const HcsEventSystemGuestConnectionClosed: HCS_EVENT_TYPE = 6i32; +pub const HcsEventSystemRdpEnhancedModeStateChanged: HCS_EVENT_TYPE = 4i32; +pub const HcsEventSystemSiloJobCreated: HCS_EVENT_TYPE = 5i32; +pub const HcsNotificationFlagFailure: HCS_NOTIFICATION_FLAGS = -2147483648i32; +pub const HcsNotificationFlagSuccess: HCS_NOTIFICATION_FLAGS = 0i32; +pub const HcsNotificationFlagsReserved: HCS_NOTIFICATIONS = -268435456i32; +pub const HcsNotificationInvalid: HCS_NOTIFICATIONS = 0i32; +pub const HcsNotificationOperationProgressUpdate: HCS_NOTIFICATIONS = 256i32; +pub const HcsNotificationProcessExited: HCS_NOTIFICATIONS = 65536i32; +pub const HcsNotificationServiceDisconnect: HCS_NOTIFICATIONS = 16777216i32; +pub const HcsNotificationSystemCrashInitiated: HCS_NOTIFICATIONS = 13i32; +pub const HcsNotificationSystemCrashReport: HCS_NOTIFICATIONS = 6i32; +pub const HcsNotificationSystemCreateCompleted: HCS_NOTIFICATIONS = 2i32; +pub const HcsNotificationSystemExited: HCS_NOTIFICATIONS = 1i32; +pub const HcsNotificationSystemGetPropertiesCompleted: HCS_NOTIFICATIONS = 11i32; +pub const HcsNotificationSystemGuestConnectionClosed: HCS_NOTIFICATIONS = 14i32; +pub const HcsNotificationSystemModifyCompleted: HCS_NOTIFICATIONS = 12i32; +pub const HcsNotificationSystemOperationCompletion: HCS_NOTIFICATIONS = 15i32; +pub const HcsNotificationSystemPassThru: HCS_NOTIFICATIONS = 16i32; +pub const HcsNotificationSystemPauseCompleted: HCS_NOTIFICATIONS = 4i32; +pub const HcsNotificationSystemRdpEnhancedModeStateChanged: HCS_NOTIFICATIONS = 9i32; +pub const HcsNotificationSystemResumeCompleted: HCS_NOTIFICATIONS = 5i32; +pub const HcsNotificationSystemSaveCompleted: HCS_NOTIFICATIONS = 8i32; +pub const HcsNotificationSystemShutdownCompleted: HCS_NOTIFICATIONS = 10i32; +pub const HcsNotificationSystemShutdownFailed: HCS_NOTIFICATIONS = 10i32; +pub const HcsNotificationSystemSiloJobCreated: HCS_NOTIFICATIONS = 7i32; +pub const HcsNotificationSystemStartCompleted: HCS_NOTIFICATIONS = 3i32; +pub const HcsOperationOptionNone: HCS_OPERATION_OPTIONS = 0i32; +pub const HcsOperationOptionProgressUpdate: HCS_OPERATION_OPTIONS = 1i32; +pub const HcsOperationTypeCrash: HCS_OPERATION_TYPE = 15i32; +pub const HcsOperationTypeCreate: HCS_OPERATION_TYPE = 1i32; +pub const HcsOperationTypeCreateProcess: HCS_OPERATION_TYPE = 10i32; +pub const HcsOperationTypeEnumerate: HCS_OPERATION_TYPE = 0i32; +pub const HcsOperationTypeGetProcessInfo: HCS_OPERATION_TYPE = 12i32; +pub const HcsOperationTypeGetProcessProperties: HCS_OPERATION_TYPE = 13i32; +pub const HcsOperationTypeGetProperties: HCS_OPERATION_TYPE = 9i32; +pub const HcsOperationTypeModify: HCS_OPERATION_TYPE = 8i32; +pub const HcsOperationTypeModifyProcess: HCS_OPERATION_TYPE = 14i32; +pub const HcsOperationTypeNone: HCS_OPERATION_TYPE = -1i32; +pub const HcsOperationTypePause: HCS_OPERATION_TYPE = 4i32; +pub const HcsOperationTypeResume: HCS_OPERATION_TYPE = 5i32; +pub const HcsOperationTypeSave: HCS_OPERATION_TYPE = 6i32; +pub const HcsOperationTypeShutdown: HCS_OPERATION_TYPE = 3i32; +pub const HcsOperationTypeSignalProcess: HCS_OPERATION_TYPE = 11i32; +pub const HcsOperationTypeStart: HCS_OPERATION_TYPE = 2i32; +pub const HcsOperationTypeTerminate: HCS_OPERATION_TYPE = 7i32; +pub const HcsResourceTypeFile: HCS_RESOURCE_TYPE = 1i32; +pub const HcsResourceTypeJob: HCS_RESOURCE_TYPE = 2i32; +pub const HcsResourceTypeNone: HCS_RESOURCE_TYPE = 0i32; +pub type HCS_CREATE_OPTIONS = i32; +pub type HCS_EVENT_OPTIONS = i32; +pub type HCS_EVENT_TYPE = i32; +pub type HCS_NOTIFICATIONS = i32; +pub type HCS_NOTIFICATION_FLAGS = i32; +pub type HCS_OPERATION_OPTIONS = i32; +pub type HCS_OPERATION_TYPE = i32; +pub type HCS_RESOURCE_TYPE = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct HCS_CREATE_OPTIONS_1 { + pub Version: HCS_CREATE_OPTIONS, + pub UserToken: super::super::Foundation::HANDLE, + pub SecurityDescriptor: *mut super::super::Security::SECURITY_DESCRIPTOR, + pub CallbackOptions: HCS_EVENT_OPTIONS, + pub CallbackContext: *mut ::core::ffi::c_void, + pub Callback: HCS_EVENT_CALLBACK, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for HCS_CREATE_OPTIONS_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for HCS_CREATE_OPTIONS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HCS_EVENT { + pub Type: HCS_EVENT_TYPE, + pub EventData: ::windows_sys::core::PCWSTR, + pub Operation: HCS_OPERATION, +} +impl ::core::marker::Copy for HCS_EVENT {} +impl ::core::clone::Clone for HCS_EVENT { + fn clone(&self) -> Self { + *self + } +} +pub type HCS_OPERATION = isize; +pub type HCS_PROCESS = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HCS_PROCESS_INFORMATION { + pub ProcessId: u32, + pub Reserved: u32, + pub StdInput: super::super::Foundation::HANDLE, + pub StdOutput: super::super::Foundation::HANDLE, + pub StdError: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HCS_PROCESS_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HCS_PROCESS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +pub type HCS_SYSTEM = isize; +pub type HCS_EVENT_CALLBACK = ::core::option::Option ()>; +pub type HCS_NOTIFICATION_CALLBACK = ::core::option::Option ()>; +pub type HCS_OPERATION_COMPLETION = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Hypervisor/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Hypervisor/mod.rs new file mode 100644 index 000000000..597a4edd5 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Hypervisor/mod.rs @@ -0,0 +1,2796 @@ +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn ApplyGuestMemoryFix(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, virtualaddress : u64, fixbuffer : *const ::core::ffi::c_void, fixbuffersize : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn ApplyPendingSavedStateFileReplayLog(vmrsfile : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn CallStackUnwind(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, imageinfo : *const MODULE_INFO, imageinfocount : u32, framecount : u32, callstack : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindSavedStateSymbolFieldInType(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, typename : ::windows_sys::core::PCSTR, fieldname : ::windows_sys::core::PCWSTR, offset : *mut u32, found : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn ForceActiveVirtualTrustLevel(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, virtualtrustlevel : u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn ForceArchitecture(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, architecture : VIRTUAL_PROCESSOR_ARCH) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ForceNestedHostMode(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, hostmode : super::super::Foundation:: BOOL, oldmode : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn ForcePagingMode(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, pagingmode : PAGING_MODE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GetActiveVirtualTrustLevel(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, virtualtrustlevel : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GetArchitecture(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, architecture : *mut VIRTUAL_PROCESSOR_ARCH) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GetEnabledVirtualTrustLevels(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, virtualtrustlevels : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GetGuestEnabledVirtualTrustLevels(vmsavedstatedumphandle : *mut ::core::ffi::c_void, virtualtrustlevels : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GetGuestOsInfo(vmsavedstatedumphandle : *mut ::core::ffi::c_void, virtualtrustlevel : u8, guestosinfo : *mut GUEST_OS_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GetGuestPhysicalMemoryChunks(vmsavedstatedumphandle : *mut ::core::ffi::c_void, memorychunkpagesize : *mut u64, memorychunks : *mut GPA_MEMORY_CHUNK, memorychunkcount : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GetGuestRawSavedMemorySize(vmsavedstatedumphandle : *mut ::core::ffi::c_void, guestrawsavedmemorysize : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GetMemoryBlockCacheLimit(vmsavedstatedumphandle : *mut ::core::ffi::c_void, memoryblockcachelimit : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNestedVirtualizationMode(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, enabled : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GetPagingMode(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, pagingmode : *mut PAGING_MODE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GetRegisterValue(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, registerid : u32, registervalue : *mut VIRTUAL_PROCESSOR_REGISTER) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GetSavedStateSymbolFieldInfo(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, typename : ::windows_sys::core::PCSTR, typefieldinfomap : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSavedStateSymbolProviderHandle(vmsavedstatedumphandle : *mut ::core::ffi::c_void) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GetSavedStateSymbolTypeSize(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, typename : ::windows_sys::core::PCSTR, size : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GetVpCount(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpcount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GuestPhysicalAddressToRawSavedMemoryOffset(vmsavedstatedumphandle : *mut ::core::ffi::c_void, physicaladdress : u64, rawsavedmemoryoffset : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn GuestVirtualAddressToPhysicalAddress(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, virtualaddress : u64, physicaladdress : *mut u64, unmappedregionsize : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmdevicehost.dll" "system" fn HdvCreateDeviceInstance(devicehosthandle : *const ::core::ffi::c_void, devicetype : HDV_DEVICE_TYPE, deviceclassid : *const ::windows_sys::core::GUID, deviceinstanceid : *const ::windows_sys::core::GUID, deviceinterface : *const ::core::ffi::c_void, devicecontext : *const ::core::ffi::c_void, devicehandle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vmdevicehost.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HdvCreateGuestMemoryAperture(requestor : *const ::core::ffi::c_void, guestphysicaladdress : u64, bytecount : u32, writeprotected : super::super::Foundation:: BOOL, mappedaddress : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vmdevicehost.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HdvCreateSectionBackedMmioRange(requestor : *const ::core::ffi::c_void, barindex : HDV_PCI_BAR_SELECTOR, offsetinpages : u64, lengthinpages : u64, mappingflags : HDV_MMIO_MAPPING_FLAGS, sectionhandle : super::super::Foundation:: HANDLE, sectionoffsetinpages : u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmdevicehost.dll" "system" fn HdvDeliverGuestInterrupt(requestor : *const ::core::ffi::c_void, msiaddress : u64, msidata : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmdevicehost.dll" "system" fn HdvDestroyGuestMemoryAperture(requestor : *const ::core::ffi::c_void, mappedaddress : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmdevicehost.dll" "system" fn HdvDestroySectionBackedMmioRange(requestor : *const ::core::ffi::c_void, barindex : HDV_PCI_BAR_SELECTOR, offsetinpages : u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_HostComputeSystem")] +::windows_targets::link!("vmdevicehost.dll" "system" #[doc = "Required features: `\"Win32_System_HostComputeSystem\"`"] fn HdvInitializeDeviceHost(computesystem : super::HostComputeSystem:: HCS_SYSTEM, devicehosthandle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_HostComputeSystem")] +::windows_targets::link!("vmdevicehost.dll" "system" #[doc = "Required features: `\"Win32_System_HostComputeSystem\"`"] fn HdvInitializeDeviceHostEx(computesystem : super::HostComputeSystem:: HCS_SYSTEM, flags : HDV_DEVICE_HOST_FLAGS, devicehosthandle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmdevicehost.dll" "system" fn HdvReadGuestMemory(requestor : *const ::core::ffi::c_void, guestphysicaladdress : u64, bytecount : u32, buffer : *mut u8) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vmdevicehost.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HdvRegisterDoorbell(requestor : *const ::core::ffi::c_void, barindex : HDV_PCI_BAR_SELECTOR, baroffset : u64, triggervalue : u64, flags : u64, doorbellevent : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmdevicehost.dll" "system" fn HdvTeardownDeviceHost(devicehosthandle : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmdevicehost.dll" "system" fn HdvUnregisterDoorbell(requestor : *const ::core::ffi::c_void, barindex : HDV_PCI_BAR_SELECTOR, baroffset : u64, triggervalue : u64, flags : u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmdevicehost.dll" "system" fn HdvWriteGuestMemory(requestor : *const ::core::ffi::c_void, guestphysicaladdress : u64, bytecount : u32, buffer : *const u8) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InKernelSpace(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, inkernelspace : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsActiveVirtualTrustLevelEnabled(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, activevirtualtrustlevelenabled : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsNestedVirtualizationEnabled(vmsavedstatedumphandle : *mut ::core::ffi::c_void, enabled : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn LoadSavedStateFile(vmrsfile : ::windows_sys::core::PCWSTR, vmsavedstatedumphandle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn LoadSavedStateFiles(binfile : ::windows_sys::core::PCWSTR, vsvfile : ::windows_sys::core::PCWSTR, vmsavedstatedumphandle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn LoadSavedStateModuleSymbols(vmsavedstatedumphandle : *mut ::core::ffi::c_void, imagename : ::windows_sys::core::PCSTR, modulename : ::windows_sys::core::PCSTR, baseaddress : u64, sizeofbase : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn LoadSavedStateModuleSymbolsEx(vmsavedstatedumphandle : *mut ::core::ffi::c_void, imagename : ::windows_sys::core::PCSTR, imagetimestamp : u32, modulename : ::windows_sys::core::PCSTR, baseaddress : u64, sizeofbase : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadSavedStateSymbolProvider(vmsavedstatedumphandle : *mut ::core::ffi::c_void, usersymbols : ::windows_sys::core::PCWSTR, force : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn LocateSavedStateFiles(vmname : ::windows_sys::core::PCWSTR, snapshotname : ::windows_sys::core::PCWSTR, binpath : *mut ::windows_sys::core::PWSTR, vsvpath : *mut ::windows_sys::core::PWSTR, vmrspath : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn ReadGuestPhysicalAddress(vmsavedstatedumphandle : *mut ::core::ffi::c_void, physicaladdress : u64, buffer : *mut ::core::ffi::c_void, buffersize : u32, bytesread : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn ReadGuestRawSavedMemory(vmsavedstatedumphandle : *mut ::core::ffi::c_void, rawsavedmemoryoffset : u64, buffer : *mut ::core::ffi::c_void, buffersize : u32, bytesread : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn ReadSavedStateGlobalVariable(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, globalname : ::windows_sys::core::PCSTR, buffer : *mut ::core::ffi::c_void, buffersize : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn ReleaseSavedStateFiles(vmsavedstatedumphandle : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn ReleaseSavedStateSymbolProvider(vmsavedstatedumphandle : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn ResolveSavedStateGlobalVariableAddress(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, globalname : ::windows_sys::core::PCSTR, virtualaddress : *mut u64, size : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ScanMemoryForDosImages(vmsavedstatedumphandle : *mut ::core::ffi::c_void, vpid : u32, startaddress : u64, endaddress : u64, callbackcontext : *mut ::core::ffi::c_void, foundimagecallback : FOUND_IMAGE_CALLBACK, standaloneaddress : *const u64, standaloneaddresscount : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn SetMemoryBlockCacheLimit(vmsavedstatedumphandle : *mut ::core::ffi::c_void, memoryblockcachelimit : u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("vmsavedstatedumpprovider.dll" "system" fn SetSavedStateSymbolProviderDebugInfoCallback(vmsavedstatedumphandle : *mut ::core::ffi::c_void, callback : GUEST_SYMBOLS_PROVIDER_DEBUG_INFO_CALLBACK) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhvplatform.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WHvAcceptPartitionMigration(migrationhandle : super::super::Foundation:: HANDLE, partition : *mut WHV_PARTITION_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvAdviseGpaRange(partition : WHV_PARTITION_HANDLE, gparanges : *const WHV_MEMORY_RANGE_ENTRY, gparangescount : u32, advice : WHV_ADVISE_GPA_RANGE_CODE, advicebuffer : *const ::core::ffi::c_void, advicebuffersizeinbytes : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhvplatform.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WHvAllocateVpciResource(providerid : *const ::windows_sys::core::GUID, flags : WHV_ALLOCATE_VPCI_RESOURCE_FLAGS, resourcedescriptor : *const ::core::ffi::c_void, resourcedescriptorsizeinbytes : u32, vpciresource : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvCancelPartitionMigration(partition : WHV_PARTITION_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvCancelRunVirtualProcessor(partition : WHV_PARTITION_HANDLE, vpindex : u32, flags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvCompletePartitionMigration(partition : WHV_PARTITION_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhvplatform.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WHvCreateNotificationPort(partition : WHV_PARTITION_HANDLE, parameters : *const WHV_NOTIFICATION_PORT_PARAMETERS, eventhandle : super::super::Foundation:: HANDLE, porthandle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvCreatePartition(partition : *mut WHV_PARTITION_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhvplatform.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WHvCreateTrigger(partition : WHV_PARTITION_HANDLE, parameters : *const WHV_TRIGGER_PARAMETERS, triggerhandle : *mut *mut ::core::ffi::c_void, eventhandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvCreateVirtualProcessor(partition : WHV_PARTITION_HANDLE, vpindex : u32, flags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvCreateVirtualProcessor2(partition : WHV_PARTITION_HANDLE, vpindex : u32, properties : *const WHV_VIRTUAL_PROCESSOR_PROPERTY, propertycount : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhvplatform.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WHvCreateVpciDevice(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64, vpciresource : super::super::Foundation:: HANDLE, flags : WHV_CREATE_VPCI_DEVICE_FLAGS, notificationeventhandle : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvDeleteNotificationPort(partition : WHV_PARTITION_HANDLE, porthandle : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvDeletePartition(partition : WHV_PARTITION_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvDeleteTrigger(partition : WHV_PARTITION_HANDLE, triggerhandle : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvDeleteVirtualProcessor(partition : WHV_PARTITION_HANDLE, vpindex : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvDeleteVpciDevice(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvemulation.dll" "system" fn WHvEmulatorCreateEmulator(callbacks : *const WHV_EMULATOR_CALLBACKS, emulator : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvemulation.dll" "system" fn WHvEmulatorDestroyEmulator(emulator : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvemulation.dll" "system" fn WHvEmulatorTryIoEmulation(emulator : *const ::core::ffi::c_void, context : *const ::core::ffi::c_void, vpcontext : *const WHV_VP_EXIT_CONTEXT, ioinstructioncontext : *const WHV_X64_IO_PORT_ACCESS_CONTEXT, emulatorreturnstatus : *mut WHV_EMULATOR_STATUS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvemulation.dll" "system" fn WHvEmulatorTryMmioEmulation(emulator : *const ::core::ffi::c_void, context : *const ::core::ffi::c_void, vpcontext : *const WHV_VP_EXIT_CONTEXT, mmioinstructioncontext : *const WHV_MEMORY_ACCESS_CONTEXT, emulatorreturnstatus : *mut WHV_EMULATOR_STATUS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetCapability(capabilitycode : WHV_CAPABILITY_CODE, capabilitybuffer : *mut ::core::ffi::c_void, capabilitybuffersizeinbytes : u32, writtensizeinbytes : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetInterruptTargetVpSet(partition : WHV_PARTITION_HANDLE, destination : u64, destinationmode : WHV_INTERRUPT_DESTINATION_MODE, targetvps : *mut u32, vpcount : u32, targetvpcount : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetPartitionCounters(partition : WHV_PARTITION_HANDLE, counterset : WHV_PARTITION_COUNTER_SET, buffer : *mut ::core::ffi::c_void, buffersizeinbytes : u32, byteswritten : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetPartitionProperty(partition : WHV_PARTITION_HANDLE, propertycode : WHV_PARTITION_PROPERTY_CODE, propertybuffer : *mut ::core::ffi::c_void, propertybuffersizeinbytes : u32, writtensizeinbytes : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetVirtualProcessorCounters(partition : WHV_PARTITION_HANDLE, vpindex : u32, counterset : WHV_PROCESSOR_COUNTER_SET, buffer : *mut ::core::ffi::c_void, buffersizeinbytes : u32, byteswritten : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetVirtualProcessorCpuidOutput(partition : WHV_PARTITION_HANDLE, vpindex : u32, eax : u32, ecx : u32, cpuidoutput : *mut WHV_CPUID_OUTPUT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetVirtualProcessorInterruptControllerState(partition : WHV_PARTITION_HANDLE, vpindex : u32, state : *mut ::core::ffi::c_void, statesize : u32, writtensize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetVirtualProcessorInterruptControllerState2(partition : WHV_PARTITION_HANDLE, vpindex : u32, state : *mut ::core::ffi::c_void, statesize : u32, writtensize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetVirtualProcessorRegisters(partition : WHV_PARTITION_HANDLE, vpindex : u32, registernames : *const WHV_REGISTER_NAME, registercount : u32, registervalues : *mut WHV_REGISTER_VALUE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetVirtualProcessorState(partition : WHV_PARTITION_HANDLE, vpindex : u32, statetype : WHV_VIRTUAL_PROCESSOR_STATE_TYPE, buffer : *mut ::core::ffi::c_void, buffersizeinbytes : u32, byteswritten : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetVirtualProcessorXsaveState(partition : WHV_PARTITION_HANDLE, vpindex : u32, buffer : *mut ::core::ffi::c_void, buffersizeinbytes : u32, byteswritten : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetVpciDeviceInterruptTarget(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64, index : u32, multimessagenumber : u32, target : *mut WHV_VPCI_INTERRUPT_TARGET, targetsizeinbytes : u32, byteswritten : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetVpciDeviceNotification(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64, notification : *mut WHV_VPCI_DEVICE_NOTIFICATION, notificationsizeinbytes : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvGetVpciDeviceProperty(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64, propertycode : WHV_VPCI_DEVICE_PROPERTY_CODE, propertybuffer : *mut ::core::ffi::c_void, propertybuffersizeinbytes : u32, writtensizeinbytes : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvMapGpaRange(partition : WHV_PARTITION_HANDLE, sourceaddress : *const ::core::ffi::c_void, guestaddress : u64, sizeinbytes : u64, flags : WHV_MAP_GPA_RANGE_FLAGS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhvplatform.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WHvMapGpaRange2(partition : WHV_PARTITION_HANDLE, process : super::super::Foundation:: HANDLE, sourceaddress : *const ::core::ffi::c_void, guestaddress : u64, sizeinbytes : u64, flags : WHV_MAP_GPA_RANGE_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvMapVpciDeviceInterrupt(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64, index : u32, messagecount : u32, target : *const WHV_VPCI_INTERRUPT_TARGET, msiaddress : *mut u64, msidata : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvMapVpciDeviceMmioRanges(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64, mappingcount : *mut u32, mappings : *mut *mut WHV_VPCI_MMIO_MAPPING) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvPostVirtualProcessorSynicMessage(partition : WHV_PARTITION_HANDLE, vpindex : u32, sintindex : u32, message : *const ::core::ffi::c_void, messagesizeinbytes : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvQueryGpaRangeDirtyBitmap(partition : WHV_PARTITION_HANDLE, guestaddress : u64, rangesizeinbytes : u64, bitmap : *mut u64, bitmapsizeinbytes : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvReadGpaRange(partition : WHV_PARTITION_HANDLE, vpindex : u32, guestaddress : u64, controls : WHV_ACCESS_GPA_CONTROLS, data : *mut ::core::ffi::c_void, datasizeinbytes : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvReadVpciDeviceRegister(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64, register : *const WHV_VPCI_DEVICE_REGISTER, data : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhvplatform.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WHvRegisterPartitionDoorbellEvent(partition : WHV_PARTITION_HANDLE, matchdata : *const WHV_DOORBELL_MATCH_DATA, eventhandle : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvRequestInterrupt(partition : WHV_PARTITION_HANDLE, interrupt : *const WHV_INTERRUPT_CONTROL, interruptcontrolsize : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvRequestVpciDeviceInterrupt(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64, msiaddress : u64, msidata : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvResetPartition(partition : WHV_PARTITION_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvResumePartitionTime(partition : WHV_PARTITION_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvRetargetVpciDeviceInterrupt(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64, msiaddress : u64, msidata : u32, target : *const WHV_VPCI_INTERRUPT_TARGET) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvRunVirtualProcessor(partition : WHV_PARTITION_HANDLE, vpindex : u32, exitcontext : *mut ::core::ffi::c_void, exitcontextsizeinbytes : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvSetNotificationPortProperty(partition : WHV_PARTITION_HANDLE, porthandle : *const ::core::ffi::c_void, propertycode : WHV_NOTIFICATION_PORT_PROPERTY_CODE, propertyvalue : u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvSetPartitionProperty(partition : WHV_PARTITION_HANDLE, propertycode : WHV_PARTITION_PROPERTY_CODE, propertybuffer : *const ::core::ffi::c_void, propertybuffersizeinbytes : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvSetVirtualProcessorInterruptControllerState(partition : WHV_PARTITION_HANDLE, vpindex : u32, state : *const ::core::ffi::c_void, statesize : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvSetVirtualProcessorInterruptControllerState2(partition : WHV_PARTITION_HANDLE, vpindex : u32, state : *const ::core::ffi::c_void, statesize : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvSetVirtualProcessorRegisters(partition : WHV_PARTITION_HANDLE, vpindex : u32, registernames : *const WHV_REGISTER_NAME, registercount : u32, registervalues : *const WHV_REGISTER_VALUE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvSetVirtualProcessorState(partition : WHV_PARTITION_HANDLE, vpindex : u32, statetype : WHV_VIRTUAL_PROCESSOR_STATE_TYPE, buffer : *const ::core::ffi::c_void, buffersizeinbytes : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvSetVirtualProcessorXsaveState(partition : WHV_PARTITION_HANDLE, vpindex : u32, buffer : *const ::core::ffi::c_void, buffersizeinbytes : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Power")] +::windows_targets::link!("winhvplatform.dll" "system" #[doc = "Required features: `\"Win32_System_Power\"`"] fn WHvSetVpciDevicePowerState(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64, powerstate : super::Power:: DEVICE_POWER_STATE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvSetupPartition(partition : WHV_PARTITION_HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhvplatform.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WHvSignalVirtualProcessorSynicEvent(partition : WHV_PARTITION_HANDLE, synicevent : WHV_SYNIC_EVENT_PARAMETERS, newlysignaled : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("winhvplatform.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WHvStartPartitionMigration(partition : WHV_PARTITION_HANDLE, migrationhandle : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvSuspendPartitionTime(partition : WHV_PARTITION_HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvTranslateGva(partition : WHV_PARTITION_HANDLE, vpindex : u32, gva : u64, translateflags : WHV_TRANSLATE_GVA_FLAGS, translationresult : *mut WHV_TRANSLATE_GVA_RESULT, gpa : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvUnmapGpaRange(partition : WHV_PARTITION_HANDLE, guestaddress : u64, sizeinbytes : u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvUnmapVpciDeviceInterrupt(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64, index : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvUnmapVpciDeviceMmioRanges(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvUnregisterPartitionDoorbellEvent(partition : WHV_PARTITION_HANDLE, matchdata : *const WHV_DOORBELL_MATCH_DATA) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvUpdateTriggerParameters(partition : WHV_PARTITION_HANDLE, parameters : *const WHV_TRIGGER_PARAMETERS, triggerhandle : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvWriteGpaRange(partition : WHV_PARTITION_HANDLE, vpindex : u32, guestaddress : u64, controls : WHV_ACCESS_GPA_CONTROLS, data : *const ::core::ffi::c_void, datasizeinbytes : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("winhvplatform.dll" "system" fn WHvWriteVpciDeviceRegister(partition : WHV_PARTITION_HANDLE, logicaldeviceid : u64, register : *const WHV_VPCI_DEVICE_REGISTER, data : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +pub const ARM64_RegisterActlrEl1: REGISTER_ID = 145i32; +pub const ARM64_RegisterAmairEl1: REGISTER_ID = 148i32; +pub const ARM64_RegisterCntkctlEl1: REGISTER_ID = 155i32; +pub const ARM64_RegisterCntvCtlEl0: REGISTER_ID = 157i32; +pub const ARM64_RegisterCntvCvalEl0: REGISTER_ID = 156i32; +pub const ARM64_RegisterContextIdrEl1: REGISTER_ID = 152i32; +pub const ARM64_RegisterCpacrEl1: REGISTER_ID = 153i32; +pub const ARM64_RegisterCpsr: REGISTER_ID = 101i32; +pub const ARM64_RegisterCsselrEl1: REGISTER_ID = 154i32; +pub const ARM64_RegisterElrEl1: REGISTER_ID = 140i32; +pub const ARM64_RegisterEsrEl1: REGISTER_ID = 136i32; +pub const ARM64_RegisterFarEl1: REGISTER_ID = 138i32; +pub const ARM64_RegisterFpControl: REGISTER_ID = 135i32; +pub const ARM64_RegisterFpStatus: REGISTER_ID = 134i32; +pub const ARM64_RegisterMairEl1: REGISTER_ID = 147i32; +pub const ARM64_RegisterMax: REGISTER_ID = 158i32; +pub const ARM64_RegisterParEl1: REGISTER_ID = 139i32; +pub const ARM64_RegisterPc: REGISTER_ID = 98i32; +pub const ARM64_RegisterQ0: REGISTER_ID = 102i32; +pub const ARM64_RegisterQ1: REGISTER_ID = 103i32; +pub const ARM64_RegisterQ10: REGISTER_ID = 112i32; +pub const ARM64_RegisterQ11: REGISTER_ID = 113i32; +pub const ARM64_RegisterQ12: REGISTER_ID = 114i32; +pub const ARM64_RegisterQ13: REGISTER_ID = 115i32; +pub const ARM64_RegisterQ14: REGISTER_ID = 116i32; +pub const ARM64_RegisterQ15: REGISTER_ID = 117i32; +pub const ARM64_RegisterQ16: REGISTER_ID = 118i32; +pub const ARM64_RegisterQ17: REGISTER_ID = 119i32; +pub const ARM64_RegisterQ18: REGISTER_ID = 120i32; +pub const ARM64_RegisterQ19: REGISTER_ID = 121i32; +pub const ARM64_RegisterQ2: REGISTER_ID = 104i32; +pub const ARM64_RegisterQ20: REGISTER_ID = 122i32; +pub const ARM64_RegisterQ21: REGISTER_ID = 123i32; +pub const ARM64_RegisterQ22: REGISTER_ID = 124i32; +pub const ARM64_RegisterQ23: REGISTER_ID = 125i32; +pub const ARM64_RegisterQ24: REGISTER_ID = 126i32; +pub const ARM64_RegisterQ25: REGISTER_ID = 127i32; +pub const ARM64_RegisterQ26: REGISTER_ID = 128i32; +pub const ARM64_RegisterQ27: REGISTER_ID = 129i32; +pub const ARM64_RegisterQ28: REGISTER_ID = 130i32; +pub const ARM64_RegisterQ29: REGISTER_ID = 131i32; +pub const ARM64_RegisterQ3: REGISTER_ID = 105i32; +pub const ARM64_RegisterQ30: REGISTER_ID = 132i32; +pub const ARM64_RegisterQ31: REGISTER_ID = 133i32; +pub const ARM64_RegisterQ4: REGISTER_ID = 106i32; +pub const ARM64_RegisterQ5: REGISTER_ID = 107i32; +pub const ARM64_RegisterQ6: REGISTER_ID = 108i32; +pub const ARM64_RegisterQ7: REGISTER_ID = 109i32; +pub const ARM64_RegisterQ8: REGISTER_ID = 110i32; +pub const ARM64_RegisterQ9: REGISTER_ID = 111i32; +pub const ARM64_RegisterSctlrEl1: REGISTER_ID = 144i32; +pub const ARM64_RegisterSpEl0: REGISTER_ID = 99i32; +pub const ARM64_RegisterSpEl1: REGISTER_ID = 100i32; +pub const ARM64_RegisterSpsrEl1: REGISTER_ID = 137i32; +pub const ARM64_RegisterTcrEl1: REGISTER_ID = 146i32; +pub const ARM64_RegisterTpidrEl0: REGISTER_ID = 149i32; +pub const ARM64_RegisterTpidrEl1: REGISTER_ID = 151i32; +pub const ARM64_RegisterTpidrroEl0: REGISTER_ID = 150i32; +pub const ARM64_RegisterTtbr0El1: REGISTER_ID = 141i32; +pub const ARM64_RegisterTtbr1El1: REGISTER_ID = 142i32; +pub const ARM64_RegisterVbarEl1: REGISTER_ID = 143i32; +pub const ARM64_RegisterX0: REGISTER_ID = 67i32; +pub const ARM64_RegisterX1: REGISTER_ID = 68i32; +pub const ARM64_RegisterX10: REGISTER_ID = 77i32; +pub const ARM64_RegisterX11: REGISTER_ID = 78i32; +pub const ARM64_RegisterX12: REGISTER_ID = 79i32; +pub const ARM64_RegisterX13: REGISTER_ID = 80i32; +pub const ARM64_RegisterX14: REGISTER_ID = 81i32; +pub const ARM64_RegisterX15: REGISTER_ID = 82i32; +pub const ARM64_RegisterX16: REGISTER_ID = 83i32; +pub const ARM64_RegisterX17: REGISTER_ID = 84i32; +pub const ARM64_RegisterX18: REGISTER_ID = 85i32; +pub const ARM64_RegisterX19: REGISTER_ID = 86i32; +pub const ARM64_RegisterX2: REGISTER_ID = 69i32; +pub const ARM64_RegisterX20: REGISTER_ID = 87i32; +pub const ARM64_RegisterX21: REGISTER_ID = 88i32; +pub const ARM64_RegisterX22: REGISTER_ID = 89i32; +pub const ARM64_RegisterX23: REGISTER_ID = 90i32; +pub const ARM64_RegisterX24: REGISTER_ID = 91i32; +pub const ARM64_RegisterX25: REGISTER_ID = 92i32; +pub const ARM64_RegisterX26: REGISTER_ID = 93i32; +pub const ARM64_RegisterX27: REGISTER_ID = 94i32; +pub const ARM64_RegisterX28: REGISTER_ID = 95i32; +pub const ARM64_RegisterX3: REGISTER_ID = 70i32; +pub const ARM64_RegisterX4: REGISTER_ID = 71i32; +pub const ARM64_RegisterX5: REGISTER_ID = 72i32; +pub const ARM64_RegisterX6: REGISTER_ID = 73i32; +pub const ARM64_RegisterX7: REGISTER_ID = 74i32; +pub const ARM64_RegisterX8: REGISTER_ID = 75i32; +pub const ARM64_RegisterX9: REGISTER_ID = 76i32; +pub const ARM64_RegisterXFp: REGISTER_ID = 96i32; +pub const ARM64_RegisterXLr: REGISTER_ID = 97i32; +pub const Arch_Armv8: VIRTUAL_PROCESSOR_ARCH = 3i32; +pub const Arch_Unknown: VIRTUAL_PROCESSOR_ARCH = 0i32; +pub const Arch_x64: VIRTUAL_PROCESSOR_ARCH = 2i32; +pub const Arch_x86: VIRTUAL_PROCESSOR_ARCH = 1i32; +pub const GUID_DEVINTERFACE_VM_GENCOUNTER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3ff2c92b_6598_4e60_8e1c_0ccf4927e319); +pub const GuestOsMicrosoftMSDOS: GUEST_OS_MICROSOFT_IDS = 1i32; +pub const GuestOsMicrosoftUndefined: GUEST_OS_MICROSOFT_IDS = 0i32; +pub const GuestOsMicrosoftWindows3x: GUEST_OS_MICROSOFT_IDS = 2i32; +pub const GuestOsMicrosoftWindows9x: GUEST_OS_MICROSOFT_IDS = 3i32; +pub const GuestOsMicrosoftWindowsCE: GUEST_OS_MICROSOFT_IDS = 5i32; +pub const GuestOsMicrosoftWindowsNT: GUEST_OS_MICROSOFT_IDS = 4i32; +pub const GuestOsOpenSourceFreeBSD: GUEST_OS_OPENSOURCE_IDS = 2i32; +pub const GuestOsOpenSourceIllumos: GUEST_OS_OPENSOURCE_IDS = 4i32; +pub const GuestOsOpenSourceLinux: GUEST_OS_OPENSOURCE_IDS = 1i32; +pub const GuestOsOpenSourceUndefined: GUEST_OS_OPENSOURCE_IDS = 0i32; +pub const GuestOsOpenSourceXen: GUEST_OS_OPENSOURCE_IDS = 3i32; +pub const GuestOsVendorHPE: GUEST_OS_VENDOR = 2i32; +pub const GuestOsVendorLANCOM: GUEST_OS_VENDOR = 512i32; +pub const GuestOsVendorMicrosoft: GUEST_OS_VENDOR = 1i32; +pub const GuestOsVendorUndefined: GUEST_OS_VENDOR = 0i32; +pub const HDV_DOORBELL_FLAG_TRIGGER_ANY_VALUE: HDV_DOORBELL_FLAGS = -2147483648i32; +pub const HDV_DOORBELL_FLAG_TRIGGER_SIZE_ANY: HDV_DOORBELL_FLAGS = 0i32; +pub const HDV_DOORBELL_FLAG_TRIGGER_SIZE_BYTE: HDV_DOORBELL_FLAGS = 1i32; +pub const HDV_DOORBELL_FLAG_TRIGGER_SIZE_DWORD: HDV_DOORBELL_FLAGS = 3i32; +pub const HDV_DOORBELL_FLAG_TRIGGER_SIZE_QWORD: HDV_DOORBELL_FLAGS = 4i32; +pub const HDV_DOORBELL_FLAG_TRIGGER_SIZE_WORD: HDV_DOORBELL_FLAGS = 2i32; +pub const HDV_PCI_BAR0: HDV_PCI_BAR_SELECTOR = 0i32; +pub const HDV_PCI_BAR1: HDV_PCI_BAR_SELECTOR = 1i32; +pub const HDV_PCI_BAR2: HDV_PCI_BAR_SELECTOR = 2i32; +pub const HDV_PCI_BAR3: HDV_PCI_BAR_SELECTOR = 3i32; +pub const HDV_PCI_BAR4: HDV_PCI_BAR_SELECTOR = 4i32; +pub const HDV_PCI_BAR5: HDV_PCI_BAR_SELECTOR = 5i32; +pub const HDV_PCI_BAR_COUNT: u32 = 6u32; +pub const HVSOCKET_ADDRESS_FLAG_PASSTHRU: u32 = 1u32; +pub const HVSOCKET_CONNECTED_SUSPEND: u32 = 4u32; +pub const HVSOCKET_CONNECT_TIMEOUT: u32 = 1u32; +pub const HVSOCKET_CONNECT_TIMEOUT_MAX: u32 = 300000u32; +pub const HVSOCKET_HIGH_VTL: u32 = 8u32; +pub const HV_GUID_BROADCAST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xffffffff_ffff_ffff_ffff_ffffffffffff); +pub const HV_GUID_CHILDREN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x90db8b89_0d35_4f79_8ce9_49ea0ac8b7cd); +pub const HV_GUID_LOOPBACK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe0e16197_dd56_4a10_9195_5ee7a155a838); +pub const HV_GUID_PARENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa42e7cda_d03f_480c_9cc2_a4de20abb878); +pub const HV_GUID_SILOHOST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36bd0c5c_7276_4223_88ba_7d03b654c568); +pub const HV_GUID_VSOCK_TEMPLATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_facb_11e6_bd58_64006a7986d3); +pub const HV_GUID_ZERO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000000); +pub const HV_PROTOCOL_RAW: u32 = 1u32; +pub const HdvDeviceHostFlagInitializeComSecurity: HDV_DEVICE_HOST_FLAGS = 1i32; +pub const HdvDeviceHostFlagNone: HDV_DEVICE_HOST_FLAGS = 0i32; +pub const HdvDeviceTypePCI: HDV_DEVICE_TYPE = 1i32; +pub const HdvDeviceTypeUndefined: HDV_DEVICE_TYPE = 0i32; +pub const HdvMmioMappingFlagExecutable: HDV_MMIO_MAPPING_FLAGS = 2i32; +pub const HdvMmioMappingFlagNone: HDV_MMIO_MAPPING_FLAGS = 0i32; +pub const HdvMmioMappingFlagWriteable: HDV_MMIO_MAPPING_FLAGS = 1i32; +pub const HdvPciDeviceInterfaceVersion1: HDV_PCI_INTERFACE_VERSION = 1i32; +pub const HdvPciDeviceInterfaceVersionInvalid: HDV_PCI_INTERFACE_VERSION = 0i32; +pub const IOCTL_VMGENCOUNTER_READ: u32 = 3325956u32; +pub const Paging_32Bit: PAGING_MODE = 2i32; +pub const Paging_Armv8: PAGING_MODE = 5i32; +pub const Paging_Invalid: PAGING_MODE = 0i32; +pub const Paging_Long: PAGING_MODE = 4i32; +pub const Paging_NonPaged: PAGING_MODE = 1i32; +pub const Paging_Pae: PAGING_MODE = 3i32; +pub const ProcessorVendor_Amd: VIRTUAL_PROCESSOR_VENDOR = 1i32; +pub const ProcessorVendor_Arm: VIRTUAL_PROCESSOR_VENDOR = 4i32; +pub const ProcessorVendor_Hygon: VIRTUAL_PROCESSOR_VENDOR = 3i32; +pub const ProcessorVendor_Intel: VIRTUAL_PROCESSOR_VENDOR = 2i32; +pub const ProcessorVendor_Unknown: VIRTUAL_PROCESSOR_VENDOR = 0i32; +pub const VM_GENCOUNTER_SYMBOLIC_LINK_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\VmGenerationCounter"); +pub const WHV_ANY_VP: u32 = 4294967295u32; +pub const WHV_HYPERCALL_CONTEXT_MAX_XMM_REGISTERS: u32 = 6u32; +pub const WHV_MAX_DEVICE_ID_SIZE_IN_CHARS: u32 = 200u32; +pub const WHV_PROCESSOR_FEATURES_BANKS_COUNT: u32 = 2u32; +pub const WHV_READ_WRITE_GPA_RANGE_MAX_SIZE: u32 = 16u32; +pub const WHV_SYNIC_MESSAGE_SIZE: u32 = 256u32; +pub const WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS_COUNT: u32 = 1u32; +pub const WHV_VPCI_TYPE0_BAR_COUNT: u32 = 6u32; +pub const WHvAdviseGpaRangeCodePin: WHV_ADVISE_GPA_RANGE_CODE = 1i32; +pub const WHvAdviseGpaRangeCodePopulate: WHV_ADVISE_GPA_RANGE_CODE = 0i32; +pub const WHvAdviseGpaRangeCodeUnpin: WHV_ADVISE_GPA_RANGE_CODE = 2i32; +pub const WHvAllocateVpciResourceFlagAllowDirectP2P: WHV_ALLOCATE_VPCI_RESOURCE_FLAGS = 1i32; +pub const WHvAllocateVpciResourceFlagNone: WHV_ALLOCATE_VPCI_RESOURCE_FLAGS = 0i32; +pub const WHvCacheTypeUncached: WHV_CACHE_TYPE = 0i32; +pub const WHvCacheTypeWriteBack: WHV_CACHE_TYPE = 6i32; +pub const WHvCacheTypeWriteCombining: WHV_CACHE_TYPE = 1i32; +pub const WHvCacheTypeWriteThrough: WHV_CACHE_TYPE = 4i32; +pub const WHvCapabilityCodeExceptionExitBitmap: WHV_CAPABILITY_CODE = 3i32; +pub const WHvCapabilityCodeExtendedVmExits: WHV_CAPABILITY_CODE = 2i32; +pub const WHvCapabilityCodeFeatures: WHV_CAPABILITY_CODE = 1i32; +pub const WHvCapabilityCodeGpaRangePopulateFlags: WHV_CAPABILITY_CODE = 5i32; +pub const WHvCapabilityCodeHypervisorPresent: WHV_CAPABILITY_CODE = 0i32; +pub const WHvCapabilityCodeInterruptClockFrequency: WHV_CAPABILITY_CODE = 4101i32; +pub const WHvCapabilityCodeProcessorClFlushSize: WHV_CAPABILITY_CODE = 4098i32; +pub const WHvCapabilityCodeProcessorClockFrequency: WHV_CAPABILITY_CODE = 4100i32; +pub const WHvCapabilityCodeProcessorFeatures: WHV_CAPABILITY_CODE = 4097i32; +pub const WHvCapabilityCodeProcessorFeaturesBanks: WHV_CAPABILITY_CODE = 4102i32; +pub const WHvCapabilityCodeProcessorFrequencyCap: WHV_CAPABILITY_CODE = 4103i32; +pub const WHvCapabilityCodeProcessorPerfmonFeatures: WHV_CAPABILITY_CODE = 4105i32; +pub const WHvCapabilityCodeProcessorVendor: WHV_CAPABILITY_CODE = 4096i32; +pub const WHvCapabilityCodeProcessorXsaveFeatures: WHV_CAPABILITY_CODE = 4099i32; +pub const WHvCapabilityCodeSchedulerFeatures: WHV_CAPABILITY_CODE = 6i32; +pub const WHvCapabilityCodeSyntheticProcessorFeaturesBanks: WHV_CAPABILITY_CODE = 4104i32; +pub const WHvCapabilityCodeX64MsrExitBitmap: WHV_CAPABILITY_CODE = 4i32; +pub const WHvCreateVpciDeviceFlagNone: WHV_CREATE_VPCI_DEVICE_FLAGS = 0i32; +pub const WHvCreateVpciDeviceFlagPhysicallyBacked: WHV_CREATE_VPCI_DEVICE_FLAGS = 1i32; +pub const WHvCreateVpciDeviceFlagUseLogicalInterrupts: WHV_CREATE_VPCI_DEVICE_FLAGS = 2i32; +pub const WHvMapGpaRangeFlagExecute: WHV_MAP_GPA_RANGE_FLAGS = 4i32; +pub const WHvMapGpaRangeFlagNone: WHV_MAP_GPA_RANGE_FLAGS = 0i32; +pub const WHvMapGpaRangeFlagRead: WHV_MAP_GPA_RANGE_FLAGS = 1i32; +pub const WHvMapGpaRangeFlagTrackDirtyPages: WHV_MAP_GPA_RANGE_FLAGS = 8i32; +pub const WHvMapGpaRangeFlagWrite: WHV_MAP_GPA_RANGE_FLAGS = 2i32; +pub const WHvMemoryAccessExecute: WHV_MEMORY_ACCESS_TYPE = 2i32; +pub const WHvMemoryAccessRead: WHV_MEMORY_ACCESS_TYPE = 0i32; +pub const WHvMemoryAccessWrite: WHV_MEMORY_ACCESS_TYPE = 1i32; +pub const WHvMsrActionArchitectureDefault: WHV_MSR_ACTION = 0i32; +pub const WHvMsrActionExit: WHV_MSR_ACTION = 2i32; +pub const WHvMsrActionIgnoreWriteReadZero: WHV_MSR_ACTION = 1i32; +pub const WHvNotificationPortPropertyPreferredTargetDuration: WHV_NOTIFICATION_PORT_PROPERTY_CODE = 5i32; +pub const WHvNotificationPortPropertyPreferredTargetVp: WHV_NOTIFICATION_PORT_PROPERTY_CODE = 1i32; +pub const WHvNotificationPortTypeDoorbell: WHV_NOTIFICATION_PORT_TYPE = 4i32; +pub const WHvNotificationPortTypeEvent: WHV_NOTIFICATION_PORT_TYPE = 2i32; +pub const WHvPartitionCounterSetMemory: WHV_PARTITION_COUNTER_SET = 0i32; +pub const WHvPartitionPropertyCodeAllowDeviceAssignment: WHV_PARTITION_PROPERTY_CODE = 12i32; +pub const WHvPartitionPropertyCodeApicRemoteReadSupport: WHV_PARTITION_PROPERTY_CODE = 4105i32; +pub const WHvPartitionPropertyCodeCpuCap: WHV_PARTITION_PROPERTY_CODE = 8i32; +pub const WHvPartitionPropertyCodeCpuGroupId: WHV_PARTITION_PROPERTY_CODE = 10i32; +pub const WHvPartitionPropertyCodeCpuReserve: WHV_PARTITION_PROPERTY_CODE = 7i32; +pub const WHvPartitionPropertyCodeCpuWeight: WHV_PARTITION_PROPERTY_CODE = 9i32; +pub const WHvPartitionPropertyCodeCpuidExitList: WHV_PARTITION_PROPERTY_CODE = 4099i32; +pub const WHvPartitionPropertyCodeCpuidResultList: WHV_PARTITION_PROPERTY_CODE = 4100i32; +pub const WHvPartitionPropertyCodeCpuidResultList2: WHV_PARTITION_PROPERTY_CODE = 4109i32; +pub const WHvPartitionPropertyCodeDisableSmt: WHV_PARTITION_PROPERTY_CODE = 13i32; +pub const WHvPartitionPropertyCodeExceptionExitBitmap: WHV_PARTITION_PROPERTY_CODE = 2i32; +pub const WHvPartitionPropertyCodeExtendedVmExits: WHV_PARTITION_PROPERTY_CODE = 1i32; +pub const WHvPartitionPropertyCodeInterruptClockFrequency: WHV_PARTITION_PROPERTY_CODE = 4104i32; +pub const WHvPartitionPropertyCodeLocalApicEmulationMode: WHV_PARTITION_PROPERTY_CODE = 4101i32; +pub const WHvPartitionPropertyCodeMsrActionList: WHV_PARTITION_PROPERTY_CODE = 4111i32; +pub const WHvPartitionPropertyCodeNestedVirtualization: WHV_PARTITION_PROPERTY_CODE = 4i32; +pub const WHvPartitionPropertyCodePrimaryNumaNode: WHV_PARTITION_PROPERTY_CODE = 6i32; +pub const WHvPartitionPropertyCodeProcessorClFlushSize: WHV_PARTITION_PROPERTY_CODE = 4098i32; +pub const WHvPartitionPropertyCodeProcessorClockFrequency: WHV_PARTITION_PROPERTY_CODE = 4103i32; +pub const WHvPartitionPropertyCodeProcessorCount: WHV_PARTITION_PROPERTY_CODE = 8191i32; +pub const WHvPartitionPropertyCodeProcessorFeatures: WHV_PARTITION_PROPERTY_CODE = 4097i32; +pub const WHvPartitionPropertyCodeProcessorFeaturesBanks: WHV_PARTITION_PROPERTY_CODE = 4106i32; +pub const WHvPartitionPropertyCodeProcessorFrequencyCap: WHV_PARTITION_PROPERTY_CODE = 11i32; +pub const WHvPartitionPropertyCodeProcessorPerfmonFeatures: WHV_PARTITION_PROPERTY_CODE = 4110i32; +pub const WHvPartitionPropertyCodeProcessorXsaveFeatures: WHV_PARTITION_PROPERTY_CODE = 4102i32; +pub const WHvPartitionPropertyCodeReferenceTime: WHV_PARTITION_PROPERTY_CODE = 4107i32; +pub const WHvPartitionPropertyCodeSeparateSecurityDomain: WHV_PARTITION_PROPERTY_CODE = 3i32; +pub const WHvPartitionPropertyCodeSyntheticProcessorFeaturesBanks: WHV_PARTITION_PROPERTY_CODE = 4108i32; +pub const WHvPartitionPropertyCodeUnimplementedMsrAction: WHV_PARTITION_PROPERTY_CODE = 4112i32; +pub const WHvPartitionPropertyCodeX64MsrExitBitmap: WHV_PARTITION_PROPERTY_CODE = 5i32; +pub const WHvProcessorCounterSetApic: WHV_PROCESSOR_COUNTER_SET = 3i32; +pub const WHvProcessorCounterSetEvents: WHV_PROCESSOR_COUNTER_SET = 2i32; +pub const WHvProcessorCounterSetIntercepts: WHV_PROCESSOR_COUNTER_SET = 1i32; +pub const WHvProcessorCounterSetRuntime: WHV_PROCESSOR_COUNTER_SET = 0i32; +pub const WHvProcessorCounterSetSyntheticFeatures: WHV_PROCESSOR_COUNTER_SET = 4i32; +pub const WHvProcessorVendorAmd: WHV_PROCESSOR_VENDOR = 0i32; +pub const WHvProcessorVendorHygon: WHV_PROCESSOR_VENDOR = 2i32; +pub const WHvProcessorVendorIntel: WHV_PROCESSOR_VENDOR = 1i32; +pub const WHvRegisterEom: WHV_REGISTER_NAME = 16404i32; +pub const WHvRegisterGuestOsId: WHV_REGISTER_NAME = 20482i32; +pub const WHvRegisterInternalActivityState: WHV_REGISTER_NAME = -2147483643i32; +pub const WHvRegisterInterruptState: WHV_REGISTER_NAME = -2147483647i32; +pub const WHvRegisterPendingEvent: WHV_REGISTER_NAME = -2147483646i32; +pub const WHvRegisterPendingInterruption: WHV_REGISTER_NAME = -2147483648i32; +pub const WHvRegisterReferenceTsc: WHV_REGISTER_NAME = 20503i32; +pub const WHvRegisterReferenceTscSequence: WHV_REGISTER_NAME = 20506i32; +pub const WHvRegisterScontrol: WHV_REGISTER_NAME = 16400i32; +pub const WHvRegisterSiefp: WHV_REGISTER_NAME = 16402i32; +pub const WHvRegisterSimp: WHV_REGISTER_NAME = 16403i32; +pub const WHvRegisterSint0: WHV_REGISTER_NAME = 16384i32; +pub const WHvRegisterSint1: WHV_REGISTER_NAME = 16385i32; +pub const WHvRegisterSint10: WHV_REGISTER_NAME = 16394i32; +pub const WHvRegisterSint11: WHV_REGISTER_NAME = 16395i32; +pub const WHvRegisterSint12: WHV_REGISTER_NAME = 16396i32; +pub const WHvRegisterSint13: WHV_REGISTER_NAME = 16397i32; +pub const WHvRegisterSint14: WHV_REGISTER_NAME = 16398i32; +pub const WHvRegisterSint15: WHV_REGISTER_NAME = 16399i32; +pub const WHvRegisterSint2: WHV_REGISTER_NAME = 16386i32; +pub const WHvRegisterSint3: WHV_REGISTER_NAME = 16387i32; +pub const WHvRegisterSint4: WHV_REGISTER_NAME = 16388i32; +pub const WHvRegisterSint5: WHV_REGISTER_NAME = 16389i32; +pub const WHvRegisterSint6: WHV_REGISTER_NAME = 16390i32; +pub const WHvRegisterSint7: WHV_REGISTER_NAME = 16391i32; +pub const WHvRegisterSint8: WHV_REGISTER_NAME = 16392i32; +pub const WHvRegisterSint9: WHV_REGISTER_NAME = 16393i32; +pub const WHvRegisterSversion: WHV_REGISTER_NAME = 16401i32; +pub const WHvRegisterVpAssistPage: WHV_REGISTER_NAME = 20499i32; +pub const WHvRegisterVpRuntime: WHV_REGISTER_NAME = 20480i32; +pub const WHvRunVpCancelReasonUser: WHV_RUN_VP_CANCEL_REASON = 0i32; +pub const WHvRunVpExitReasonCanceled: WHV_RUN_VP_EXIT_REASON = 8193i32; +pub const WHvRunVpExitReasonException: WHV_RUN_VP_EXIT_REASON = 4098i32; +pub const WHvRunVpExitReasonHypercall: WHV_RUN_VP_EXIT_REASON = 4101i32; +pub const WHvRunVpExitReasonInvalidVpRegisterValue: WHV_RUN_VP_EXIT_REASON = 5i32; +pub const WHvRunVpExitReasonMemoryAccess: WHV_RUN_VP_EXIT_REASON = 1i32; +pub const WHvRunVpExitReasonNone: WHV_RUN_VP_EXIT_REASON = 0i32; +pub const WHvRunVpExitReasonSynicSintDeliverable: WHV_RUN_VP_EXIT_REASON = 10i32; +pub const WHvRunVpExitReasonUnrecoverableException: WHV_RUN_VP_EXIT_REASON = 4i32; +pub const WHvRunVpExitReasonUnsupportedFeature: WHV_RUN_VP_EXIT_REASON = 6i32; +pub const WHvRunVpExitReasonX64ApicEoi: WHV_RUN_VP_EXIT_REASON = 9i32; +pub const WHvRunVpExitReasonX64ApicInitSipiTrap: WHV_RUN_VP_EXIT_REASON = 4102i32; +pub const WHvRunVpExitReasonX64ApicSmiTrap: WHV_RUN_VP_EXIT_REASON = 4100i32; +pub const WHvRunVpExitReasonX64ApicWriteTrap: WHV_RUN_VP_EXIT_REASON = 4103i32; +pub const WHvRunVpExitReasonX64Cpuid: WHV_RUN_VP_EXIT_REASON = 4097i32; +pub const WHvRunVpExitReasonX64Halt: WHV_RUN_VP_EXIT_REASON = 8i32; +pub const WHvRunVpExitReasonX64InterruptWindow: WHV_RUN_VP_EXIT_REASON = 7i32; +pub const WHvRunVpExitReasonX64IoPortAccess: WHV_RUN_VP_EXIT_REASON = 2i32; +pub const WHvRunVpExitReasonX64MsrAccess: WHV_RUN_VP_EXIT_REASON = 4096i32; +pub const WHvRunVpExitReasonX64Rdtsc: WHV_RUN_VP_EXIT_REASON = 4099i32; +pub const WHvTranslateGvaFlagEnforceSmap: WHV_TRANSLATE_GVA_FLAGS = 256i32; +pub const WHvTranslateGvaFlagNone: WHV_TRANSLATE_GVA_FLAGS = 0i32; +pub const WHvTranslateGvaFlagOverrideSmap: WHV_TRANSLATE_GVA_FLAGS = 512i32; +pub const WHvTranslateGvaFlagPrivilegeExempt: WHV_TRANSLATE_GVA_FLAGS = 8i32; +pub const WHvTranslateGvaFlagSetPageTableBits: WHV_TRANSLATE_GVA_FLAGS = 16i32; +pub const WHvTranslateGvaFlagValidateExecute: WHV_TRANSLATE_GVA_FLAGS = 4i32; +pub const WHvTranslateGvaFlagValidateRead: WHV_TRANSLATE_GVA_FLAGS = 1i32; +pub const WHvTranslateGvaFlagValidateWrite: WHV_TRANSLATE_GVA_FLAGS = 2i32; +pub const WHvTranslateGvaResultGpaIllegalOverlayAccess: WHV_TRANSLATE_GVA_RESULT_CODE = 7i32; +pub const WHvTranslateGvaResultGpaNoReadAccess: WHV_TRANSLATE_GVA_RESULT_CODE = 5i32; +pub const WHvTranslateGvaResultGpaNoWriteAccess: WHV_TRANSLATE_GVA_RESULT_CODE = 6i32; +pub const WHvTranslateGvaResultGpaUnmapped: WHV_TRANSLATE_GVA_RESULT_CODE = 4i32; +pub const WHvTranslateGvaResultIntercept: WHV_TRANSLATE_GVA_RESULT_CODE = 8i32; +pub const WHvTranslateGvaResultInvalidPageTableFlags: WHV_TRANSLATE_GVA_RESULT_CODE = 3i32; +pub const WHvTranslateGvaResultPageNotPresent: WHV_TRANSLATE_GVA_RESULT_CODE = 1i32; +pub const WHvTranslateGvaResultPrivilegeViolation: WHV_TRANSLATE_GVA_RESULT_CODE = 2i32; +pub const WHvTranslateGvaResultSuccess: WHV_TRANSLATE_GVA_RESULT_CODE = 0i32; +pub const WHvTriggerTypeDeviceInterrupt: WHV_TRIGGER_TYPE = 2i32; +pub const WHvTriggerTypeInterrupt: WHV_TRIGGER_TYPE = 0i32; +pub const WHvTriggerTypeSynicEvent: WHV_TRIGGER_TYPE = 1i32; +pub const WHvUnsupportedFeatureIntercept: WHV_X64_UNSUPPORTED_FEATURE_CODE = 1i32; +pub const WHvUnsupportedFeatureTaskSwitchTss: WHV_X64_UNSUPPORTED_FEATURE_CODE = 2i32; +pub const WHvVirtualProcessorPropertyCodeNumaNode: WHV_VIRTUAL_PROCESSOR_PROPERTY_CODE = 0i32; +pub const WHvVirtualProcessorStateTypeInterruptControllerState2: WHV_VIRTUAL_PROCESSOR_STATE_TYPE = 4096i32; +pub const WHvVirtualProcessorStateTypeSynicEventFlagPage: WHV_VIRTUAL_PROCESSOR_STATE_TYPE = 1i32; +pub const WHvVirtualProcessorStateTypeSynicMessagePage: WHV_VIRTUAL_PROCESSOR_STATE_TYPE = 0i32; +pub const WHvVirtualProcessorStateTypeSynicTimerState: WHV_VIRTUAL_PROCESSOR_STATE_TYPE = 2i32; +pub const WHvVirtualProcessorStateTypeXsaveState: WHV_VIRTUAL_PROCESSOR_STATE_TYPE = 4097i32; +pub const WHvVpciBar0: WHV_VPCI_DEVICE_REGISTER_SPACE = 0i32; +pub const WHvVpciBar1: WHV_VPCI_DEVICE_REGISTER_SPACE = 1i32; +pub const WHvVpciBar2: WHV_VPCI_DEVICE_REGISTER_SPACE = 2i32; +pub const WHvVpciBar3: WHV_VPCI_DEVICE_REGISTER_SPACE = 3i32; +pub const WHvVpciBar4: WHV_VPCI_DEVICE_REGISTER_SPACE = 4i32; +pub const WHvVpciBar5: WHV_VPCI_DEVICE_REGISTER_SPACE = 5i32; +pub const WHvVpciConfigSpace: WHV_VPCI_DEVICE_REGISTER_SPACE = -1i32; +pub const WHvVpciDeviceNotificationMmioRemapping: WHV_VPCI_DEVICE_NOTIFICATION_TYPE = 1i32; +pub const WHvVpciDeviceNotificationSurpriseRemoval: WHV_VPCI_DEVICE_NOTIFICATION_TYPE = 2i32; +pub const WHvVpciDeviceNotificationUndefined: WHV_VPCI_DEVICE_NOTIFICATION_TYPE = 0i32; +pub const WHvVpciDevicePropertyCodeHardwareIDs: WHV_VPCI_DEVICE_PROPERTY_CODE = 1i32; +pub const WHvVpciDevicePropertyCodeProbedBARs: WHV_VPCI_DEVICE_PROPERTY_CODE = 2i32; +pub const WHvVpciDevicePropertyCodeUndefined: WHV_VPCI_DEVICE_PROPERTY_CODE = 0i32; +pub const WHvVpciInterruptTargetFlagMulticast: WHV_VPCI_INTERRUPT_TARGET_FLAGS = 1i32; +pub const WHvVpciInterruptTargetFlagNone: WHV_VPCI_INTERRUPT_TARGET_FLAGS = 0i32; +pub const WHvVpciMmioRangeFlagReadAccess: WHV_VPCI_MMIO_RANGE_FLAGS = 1i32; +pub const WHvVpciMmioRangeFlagWriteAccess: WHV_VPCI_MMIO_RANGE_FLAGS = 2i32; +pub const WHvX64ApicWriteTypeDfr: WHV_X64_APIC_WRITE_TYPE = 224i32; +pub const WHvX64ApicWriteTypeLdr: WHV_X64_APIC_WRITE_TYPE = 208i32; +pub const WHvX64ApicWriteTypeLint0: WHV_X64_APIC_WRITE_TYPE = 848i32; +pub const WHvX64ApicWriteTypeLint1: WHV_X64_APIC_WRITE_TYPE = 864i32; +pub const WHvX64ApicWriteTypeSvr: WHV_X64_APIC_WRITE_TYPE = 240i32; +pub const WHvX64CpuidResult2FlagSubleafSpecific: WHV_X64_CPUID_RESULT2_FLAGS = 1i32; +pub const WHvX64CpuidResult2FlagVpSpecific: WHV_X64_CPUID_RESULT2_FLAGS = 2i32; +pub const WHvX64ExceptionTypeAlignmentCheckFault: WHV_EXCEPTION_TYPE = 17i32; +pub const WHvX64ExceptionTypeBoundRangeFault: WHV_EXCEPTION_TYPE = 5i32; +pub const WHvX64ExceptionTypeBreakpointTrap: WHV_EXCEPTION_TYPE = 3i32; +pub const WHvX64ExceptionTypeDebugTrapOrFault: WHV_EXCEPTION_TYPE = 1i32; +pub const WHvX64ExceptionTypeDeviceNotAvailableFault: WHV_EXCEPTION_TYPE = 7i32; +pub const WHvX64ExceptionTypeDivideErrorFault: WHV_EXCEPTION_TYPE = 0i32; +pub const WHvX64ExceptionTypeDoubleFaultAbort: WHV_EXCEPTION_TYPE = 8i32; +pub const WHvX64ExceptionTypeFloatingPointErrorFault: WHV_EXCEPTION_TYPE = 16i32; +pub const WHvX64ExceptionTypeGeneralProtectionFault: WHV_EXCEPTION_TYPE = 13i32; +pub const WHvX64ExceptionTypeInvalidOpcodeFault: WHV_EXCEPTION_TYPE = 6i32; +pub const WHvX64ExceptionTypeInvalidTaskStateSegmentFault: WHV_EXCEPTION_TYPE = 10i32; +pub const WHvX64ExceptionTypeMachineCheckAbort: WHV_EXCEPTION_TYPE = 18i32; +pub const WHvX64ExceptionTypeOverflowTrap: WHV_EXCEPTION_TYPE = 4i32; +pub const WHvX64ExceptionTypePageFault: WHV_EXCEPTION_TYPE = 14i32; +pub const WHvX64ExceptionTypeSegmentNotPresentFault: WHV_EXCEPTION_TYPE = 11i32; +pub const WHvX64ExceptionTypeSimdFloatingPointFault: WHV_EXCEPTION_TYPE = 19i32; +pub const WHvX64ExceptionTypeStackFault: WHV_EXCEPTION_TYPE = 12i32; +pub const WHvX64InterruptDestinationModeLogical: WHV_INTERRUPT_DESTINATION_MODE = 1i32; +pub const WHvX64InterruptDestinationModePhysical: WHV_INTERRUPT_DESTINATION_MODE = 0i32; +pub const WHvX64InterruptTriggerModeEdge: WHV_INTERRUPT_TRIGGER_MODE = 0i32; +pub const WHvX64InterruptTriggerModeLevel: WHV_INTERRUPT_TRIGGER_MODE = 1i32; +pub const WHvX64InterruptTypeFixed: WHV_INTERRUPT_TYPE = 0i32; +pub const WHvX64InterruptTypeInit: WHV_INTERRUPT_TYPE = 5i32; +pub const WHvX64InterruptTypeLocalInt1: WHV_INTERRUPT_TYPE = 9i32; +pub const WHvX64InterruptTypeLowestPriority: WHV_INTERRUPT_TYPE = 1i32; +pub const WHvX64InterruptTypeNmi: WHV_INTERRUPT_TYPE = 4i32; +pub const WHvX64InterruptTypeSipi: WHV_INTERRUPT_TYPE = 6i32; +pub const WHvX64LocalApicEmulationModeNone: WHV_X64_LOCAL_APIC_EMULATION_MODE = 0i32; +pub const WHvX64LocalApicEmulationModeX2Apic: WHV_X64_LOCAL_APIC_EMULATION_MODE = 2i32; +pub const WHvX64LocalApicEmulationModeXApic: WHV_X64_LOCAL_APIC_EMULATION_MODE = 1i32; +pub const WHvX64PendingEventException: WHV_X64_PENDING_EVENT_TYPE = 0i32; +pub const WHvX64PendingEventExtInt: WHV_X64_PENDING_EVENT_TYPE = 5i32; +pub const WHvX64PendingException: WHV_X64_PENDING_INTERRUPTION_TYPE = 3i32; +pub const WHvX64PendingInterrupt: WHV_X64_PENDING_INTERRUPTION_TYPE = 0i32; +pub const WHvX64PendingNmi: WHV_X64_PENDING_INTERRUPTION_TYPE = 2i32; +pub const WHvX64RegisterACount: WHV_REGISTER_NAME = 8319i32; +pub const WHvX64RegisterApicBase: WHV_REGISTER_NAME = 8195i32; +pub const WHvX64RegisterApicCurrentCount: WHV_REGISTER_NAME = 12345i32; +pub const WHvX64RegisterApicDivide: WHV_REGISTER_NAME = 12350i32; +pub const WHvX64RegisterApicEoi: WHV_REGISTER_NAME = 12299i32; +pub const WHvX64RegisterApicEse: WHV_REGISTER_NAME = 12328i32; +pub const WHvX64RegisterApicIcr: WHV_REGISTER_NAME = 12336i32; +pub const WHvX64RegisterApicId: WHV_REGISTER_NAME = 12290i32; +pub const WHvX64RegisterApicInitCount: WHV_REGISTER_NAME = 12344i32; +pub const WHvX64RegisterApicIrr0: WHV_REGISTER_NAME = 12320i32; +pub const WHvX64RegisterApicIrr1: WHV_REGISTER_NAME = 12321i32; +pub const WHvX64RegisterApicIrr2: WHV_REGISTER_NAME = 12322i32; +pub const WHvX64RegisterApicIrr3: WHV_REGISTER_NAME = 12323i32; +pub const WHvX64RegisterApicIrr4: WHV_REGISTER_NAME = 12324i32; +pub const WHvX64RegisterApicIrr5: WHV_REGISTER_NAME = 12325i32; +pub const WHvX64RegisterApicIrr6: WHV_REGISTER_NAME = 12326i32; +pub const WHvX64RegisterApicIrr7: WHV_REGISTER_NAME = 12327i32; +pub const WHvX64RegisterApicIsr0: WHV_REGISTER_NAME = 12304i32; +pub const WHvX64RegisterApicIsr1: WHV_REGISTER_NAME = 12305i32; +pub const WHvX64RegisterApicIsr2: WHV_REGISTER_NAME = 12306i32; +pub const WHvX64RegisterApicIsr3: WHV_REGISTER_NAME = 12307i32; +pub const WHvX64RegisterApicIsr4: WHV_REGISTER_NAME = 12308i32; +pub const WHvX64RegisterApicIsr5: WHV_REGISTER_NAME = 12309i32; +pub const WHvX64RegisterApicIsr6: WHV_REGISTER_NAME = 12310i32; +pub const WHvX64RegisterApicIsr7: WHV_REGISTER_NAME = 12311i32; +pub const WHvX64RegisterApicLdr: WHV_REGISTER_NAME = 12301i32; +pub const WHvX64RegisterApicLvtError: WHV_REGISTER_NAME = 12343i32; +pub const WHvX64RegisterApicLvtLint0: WHV_REGISTER_NAME = 12341i32; +pub const WHvX64RegisterApicLvtLint1: WHV_REGISTER_NAME = 12342i32; +pub const WHvX64RegisterApicLvtPerfmon: WHV_REGISTER_NAME = 12340i32; +pub const WHvX64RegisterApicLvtThermal: WHV_REGISTER_NAME = 12339i32; +pub const WHvX64RegisterApicLvtTimer: WHV_REGISTER_NAME = 12338i32; +pub const WHvX64RegisterApicPpr: WHV_REGISTER_NAME = 12298i32; +pub const WHvX64RegisterApicSelfIpi: WHV_REGISTER_NAME = 12351i32; +pub const WHvX64RegisterApicSpurious: WHV_REGISTER_NAME = 12303i32; +pub const WHvX64RegisterApicTmr0: WHV_REGISTER_NAME = 12312i32; +pub const WHvX64RegisterApicTmr1: WHV_REGISTER_NAME = 12313i32; +pub const WHvX64RegisterApicTmr2: WHV_REGISTER_NAME = 12314i32; +pub const WHvX64RegisterApicTmr3: WHV_REGISTER_NAME = 12315i32; +pub const WHvX64RegisterApicTmr4: WHV_REGISTER_NAME = 12316i32; +pub const WHvX64RegisterApicTmr5: WHV_REGISTER_NAME = 12317i32; +pub const WHvX64RegisterApicTmr6: WHV_REGISTER_NAME = 12318i32; +pub const WHvX64RegisterApicTmr7: WHV_REGISTER_NAME = 12319i32; +pub const WHvX64RegisterApicTpr: WHV_REGISTER_NAME = 12296i32; +pub const WHvX64RegisterApicVersion: WHV_REGISTER_NAME = 12291i32; +pub const WHvX64RegisterBndcfgs: WHV_REGISTER_NAME = 8316i32; +pub const WHvX64RegisterCr0: WHV_REGISTER_NAME = 28i32; +pub const WHvX64RegisterCr2: WHV_REGISTER_NAME = 29i32; +pub const WHvX64RegisterCr3: WHV_REGISTER_NAME = 30i32; +pub const WHvX64RegisterCr4: WHV_REGISTER_NAME = 31i32; +pub const WHvX64RegisterCr8: WHV_REGISTER_NAME = 32i32; +pub const WHvX64RegisterCs: WHV_REGISTER_NAME = 19i32; +pub const WHvX64RegisterCstar: WHV_REGISTER_NAME = 8202i32; +pub const WHvX64RegisterDeliverabilityNotifications: WHV_REGISTER_NAME = -2147483644i32; +pub const WHvX64RegisterDr0: WHV_REGISTER_NAME = 33i32; +pub const WHvX64RegisterDr1: WHV_REGISTER_NAME = 34i32; +pub const WHvX64RegisterDr2: WHV_REGISTER_NAME = 35i32; +pub const WHvX64RegisterDr3: WHV_REGISTER_NAME = 36i32; +pub const WHvX64RegisterDr6: WHV_REGISTER_NAME = 37i32; +pub const WHvX64RegisterDr7: WHV_REGISTER_NAME = 38i32; +pub const WHvX64RegisterDs: WHV_REGISTER_NAME = 21i32; +pub const WHvX64RegisterEfer: WHV_REGISTER_NAME = 8193i32; +pub const WHvX64RegisterEs: WHV_REGISTER_NAME = 18i32; +pub const WHvX64RegisterFpControlStatus: WHV_REGISTER_NAME = 4120i32; +pub const WHvX64RegisterFpMmx0: WHV_REGISTER_NAME = 4112i32; +pub const WHvX64RegisterFpMmx1: WHV_REGISTER_NAME = 4113i32; +pub const WHvX64RegisterFpMmx2: WHV_REGISTER_NAME = 4114i32; +pub const WHvX64RegisterFpMmx3: WHV_REGISTER_NAME = 4115i32; +pub const WHvX64RegisterFpMmx4: WHV_REGISTER_NAME = 4116i32; +pub const WHvX64RegisterFpMmx5: WHV_REGISTER_NAME = 4117i32; +pub const WHvX64RegisterFpMmx6: WHV_REGISTER_NAME = 4118i32; +pub const WHvX64RegisterFpMmx7: WHV_REGISTER_NAME = 4119i32; +pub const WHvX64RegisterFs: WHV_REGISTER_NAME = 22i32; +pub const WHvX64RegisterGdtr: WHV_REGISTER_NAME = 27i32; +pub const WHvX64RegisterGs: WHV_REGISTER_NAME = 23i32; +pub const WHvX64RegisterHypercall: WHV_REGISTER_NAME = 20481i32; +pub const WHvX64RegisterIdtr: WHV_REGISTER_NAME = 26i32; +pub const WHvX64RegisterInitialApicId: WHV_REGISTER_NAME = 8204i32; +pub const WHvX64RegisterInterruptSspTableAddr: WHV_REGISTER_NAME = 8339i32; +pub const WHvX64RegisterKernelGsBase: WHV_REGISTER_NAME = 8194i32; +pub const WHvX64RegisterLdtr: WHV_REGISTER_NAME = 24i32; +pub const WHvX64RegisterLstar: WHV_REGISTER_NAME = 8201i32; +pub const WHvX64RegisterMCount: WHV_REGISTER_NAME = 8318i32; +pub const WHvX64RegisterMsrMtrrCap: WHV_REGISTER_NAME = 8205i32; +pub const WHvX64RegisterMsrMtrrDefType: WHV_REGISTER_NAME = 8206i32; +pub const WHvX64RegisterMsrMtrrFix16k80000: WHV_REGISTER_NAME = 8305i32; +pub const WHvX64RegisterMsrMtrrFix16kA0000: WHV_REGISTER_NAME = 8306i32; +pub const WHvX64RegisterMsrMtrrFix4kC0000: WHV_REGISTER_NAME = 8307i32; +pub const WHvX64RegisterMsrMtrrFix4kC8000: WHV_REGISTER_NAME = 8308i32; +pub const WHvX64RegisterMsrMtrrFix4kD0000: WHV_REGISTER_NAME = 8309i32; +pub const WHvX64RegisterMsrMtrrFix4kD8000: WHV_REGISTER_NAME = 8310i32; +pub const WHvX64RegisterMsrMtrrFix4kE0000: WHV_REGISTER_NAME = 8311i32; +pub const WHvX64RegisterMsrMtrrFix4kE8000: WHV_REGISTER_NAME = 8312i32; +pub const WHvX64RegisterMsrMtrrFix4kF0000: WHV_REGISTER_NAME = 8313i32; +pub const WHvX64RegisterMsrMtrrFix4kF8000: WHV_REGISTER_NAME = 8314i32; +pub const WHvX64RegisterMsrMtrrFix64k00000: WHV_REGISTER_NAME = 8304i32; +pub const WHvX64RegisterMsrMtrrPhysBase0: WHV_REGISTER_NAME = 8208i32; +pub const WHvX64RegisterMsrMtrrPhysBase1: WHV_REGISTER_NAME = 8209i32; +pub const WHvX64RegisterMsrMtrrPhysBase2: WHV_REGISTER_NAME = 8210i32; +pub const WHvX64RegisterMsrMtrrPhysBase3: WHV_REGISTER_NAME = 8211i32; +pub const WHvX64RegisterMsrMtrrPhysBase4: WHV_REGISTER_NAME = 8212i32; +pub const WHvX64RegisterMsrMtrrPhysBase5: WHV_REGISTER_NAME = 8213i32; +pub const WHvX64RegisterMsrMtrrPhysBase6: WHV_REGISTER_NAME = 8214i32; +pub const WHvX64RegisterMsrMtrrPhysBase7: WHV_REGISTER_NAME = 8215i32; +pub const WHvX64RegisterMsrMtrrPhysBase8: WHV_REGISTER_NAME = 8216i32; +pub const WHvX64RegisterMsrMtrrPhysBase9: WHV_REGISTER_NAME = 8217i32; +pub const WHvX64RegisterMsrMtrrPhysBaseA: WHV_REGISTER_NAME = 8218i32; +pub const WHvX64RegisterMsrMtrrPhysBaseB: WHV_REGISTER_NAME = 8219i32; +pub const WHvX64RegisterMsrMtrrPhysBaseC: WHV_REGISTER_NAME = 8220i32; +pub const WHvX64RegisterMsrMtrrPhysBaseD: WHV_REGISTER_NAME = 8221i32; +pub const WHvX64RegisterMsrMtrrPhysBaseE: WHV_REGISTER_NAME = 8222i32; +pub const WHvX64RegisterMsrMtrrPhysBaseF: WHV_REGISTER_NAME = 8223i32; +pub const WHvX64RegisterMsrMtrrPhysMask0: WHV_REGISTER_NAME = 8256i32; +pub const WHvX64RegisterMsrMtrrPhysMask1: WHV_REGISTER_NAME = 8257i32; +pub const WHvX64RegisterMsrMtrrPhysMask2: WHV_REGISTER_NAME = 8258i32; +pub const WHvX64RegisterMsrMtrrPhysMask3: WHV_REGISTER_NAME = 8259i32; +pub const WHvX64RegisterMsrMtrrPhysMask4: WHV_REGISTER_NAME = 8260i32; +pub const WHvX64RegisterMsrMtrrPhysMask5: WHV_REGISTER_NAME = 8261i32; +pub const WHvX64RegisterMsrMtrrPhysMask6: WHV_REGISTER_NAME = 8262i32; +pub const WHvX64RegisterMsrMtrrPhysMask7: WHV_REGISTER_NAME = 8263i32; +pub const WHvX64RegisterMsrMtrrPhysMask8: WHV_REGISTER_NAME = 8264i32; +pub const WHvX64RegisterMsrMtrrPhysMask9: WHV_REGISTER_NAME = 8265i32; +pub const WHvX64RegisterMsrMtrrPhysMaskA: WHV_REGISTER_NAME = 8266i32; +pub const WHvX64RegisterMsrMtrrPhysMaskB: WHV_REGISTER_NAME = 8267i32; +pub const WHvX64RegisterMsrMtrrPhysMaskC: WHV_REGISTER_NAME = 8268i32; +pub const WHvX64RegisterMsrMtrrPhysMaskD: WHV_REGISTER_NAME = 8269i32; +pub const WHvX64RegisterMsrMtrrPhysMaskE: WHV_REGISTER_NAME = 8270i32; +pub const WHvX64RegisterMsrMtrrPhysMaskF: WHV_REGISTER_NAME = 8271i32; +pub const WHvX64RegisterPat: WHV_REGISTER_NAME = 8196i32; +pub const WHvX64RegisterPendingDebugException: WHV_REGISTER_NAME = -2147483642i32; +pub const WHvX64RegisterPl0Ssp: WHV_REGISTER_NAME = 8335i32; +pub const WHvX64RegisterPl1Ssp: WHV_REGISTER_NAME = 8336i32; +pub const WHvX64RegisterPl2Ssp: WHV_REGISTER_NAME = 8337i32; +pub const WHvX64RegisterPl3Ssp: WHV_REGISTER_NAME = 8338i32; +pub const WHvX64RegisterPredCmd: WHV_REGISTER_NAME = 8325i32; +pub const WHvX64RegisterR10: WHV_REGISTER_NAME = 10i32; +pub const WHvX64RegisterR11: WHV_REGISTER_NAME = 11i32; +pub const WHvX64RegisterR12: WHV_REGISTER_NAME = 12i32; +pub const WHvX64RegisterR13: WHV_REGISTER_NAME = 13i32; +pub const WHvX64RegisterR14: WHV_REGISTER_NAME = 14i32; +pub const WHvX64RegisterR15: WHV_REGISTER_NAME = 15i32; +pub const WHvX64RegisterR8: WHV_REGISTER_NAME = 8i32; +pub const WHvX64RegisterR9: WHV_REGISTER_NAME = 9i32; +pub const WHvX64RegisterRax: WHV_REGISTER_NAME = 0i32; +pub const WHvX64RegisterRbp: WHV_REGISTER_NAME = 5i32; +pub const WHvX64RegisterRbx: WHV_REGISTER_NAME = 3i32; +pub const WHvX64RegisterRcx: WHV_REGISTER_NAME = 1i32; +pub const WHvX64RegisterRdi: WHV_REGISTER_NAME = 7i32; +pub const WHvX64RegisterRdx: WHV_REGISTER_NAME = 2i32; +pub const WHvX64RegisterRflags: WHV_REGISTER_NAME = 17i32; +pub const WHvX64RegisterRip: WHV_REGISTER_NAME = 16i32; +pub const WHvX64RegisterRsi: WHV_REGISTER_NAME = 6i32; +pub const WHvX64RegisterRsp: WHV_REGISTER_NAME = 4i32; +pub const WHvX64RegisterSCet: WHV_REGISTER_NAME = 8333i32; +pub const WHvX64RegisterSfmask: WHV_REGISTER_NAME = 8203i32; +pub const WHvX64RegisterSpecCtrl: WHV_REGISTER_NAME = 8324i32; +pub const WHvX64RegisterSs: WHV_REGISTER_NAME = 20i32; +pub const WHvX64RegisterSsp: WHV_REGISTER_NAME = 8334i32; +pub const WHvX64RegisterStar: WHV_REGISTER_NAME = 8200i32; +pub const WHvX64RegisterSysenterCs: WHV_REGISTER_NAME = 8197i32; +pub const WHvX64RegisterSysenterEip: WHV_REGISTER_NAME = 8198i32; +pub const WHvX64RegisterSysenterEsp: WHV_REGISTER_NAME = 8199i32; +pub const WHvX64RegisterTr: WHV_REGISTER_NAME = 25i32; +pub const WHvX64RegisterTsc: WHV_REGISTER_NAME = 8192i32; +pub const WHvX64RegisterTscAdjust: WHV_REGISTER_NAME = 8342i32; +pub const WHvX64RegisterTscAux: WHV_REGISTER_NAME = 8315i32; +pub const WHvX64RegisterTscDeadline: WHV_REGISTER_NAME = 8341i32; +pub const WHvX64RegisterTscVirtualOffset: WHV_REGISTER_NAME = 8327i32; +pub const WHvX64RegisterTsxCtrl: WHV_REGISTER_NAME = 8328i32; +pub const WHvX64RegisterUCet: WHV_REGISTER_NAME = 8332i32; +pub const WHvX64RegisterUmwaitControl: WHV_REGISTER_NAME = 8344i32; +pub const WHvX64RegisterVirtualCr0: WHV_REGISTER_NAME = 40i32; +pub const WHvX64RegisterVirtualCr3: WHV_REGISTER_NAME = 41i32; +pub const WHvX64RegisterVirtualCr4: WHV_REGISTER_NAME = 42i32; +pub const WHvX64RegisterVirtualCr8: WHV_REGISTER_NAME = 43i32; +pub const WHvX64RegisterXCr0: WHV_REGISTER_NAME = 39i32; +pub const WHvX64RegisterXfd: WHV_REGISTER_NAME = 8345i32; +pub const WHvX64RegisterXfdErr: WHV_REGISTER_NAME = 8346i32; +pub const WHvX64RegisterXmm0: WHV_REGISTER_NAME = 4096i32; +pub const WHvX64RegisterXmm1: WHV_REGISTER_NAME = 4097i32; +pub const WHvX64RegisterXmm10: WHV_REGISTER_NAME = 4106i32; +pub const WHvX64RegisterXmm11: WHV_REGISTER_NAME = 4107i32; +pub const WHvX64RegisterXmm12: WHV_REGISTER_NAME = 4108i32; +pub const WHvX64RegisterXmm13: WHV_REGISTER_NAME = 4109i32; +pub const WHvX64RegisterXmm14: WHV_REGISTER_NAME = 4110i32; +pub const WHvX64RegisterXmm15: WHV_REGISTER_NAME = 4111i32; +pub const WHvX64RegisterXmm2: WHV_REGISTER_NAME = 4098i32; +pub const WHvX64RegisterXmm3: WHV_REGISTER_NAME = 4099i32; +pub const WHvX64RegisterXmm4: WHV_REGISTER_NAME = 4100i32; +pub const WHvX64RegisterXmm5: WHV_REGISTER_NAME = 4101i32; +pub const WHvX64RegisterXmm6: WHV_REGISTER_NAME = 4102i32; +pub const WHvX64RegisterXmm7: WHV_REGISTER_NAME = 4103i32; +pub const WHvX64RegisterXmm8: WHV_REGISTER_NAME = 4104i32; +pub const WHvX64RegisterXmm9: WHV_REGISTER_NAME = 4105i32; +pub const WHvX64RegisterXmmControlStatus: WHV_REGISTER_NAME = 4121i32; +pub const WHvX64RegisterXss: WHV_REGISTER_NAME = 8331i32; +pub const X64_RegisterCr0: REGISTER_ID = 44i32; +pub const X64_RegisterCr2: REGISTER_ID = 45i32; +pub const X64_RegisterCr3: REGISTER_ID = 46i32; +pub const X64_RegisterCr4: REGISTER_ID = 47i32; +pub const X64_RegisterCr8: REGISTER_ID = 48i32; +pub const X64_RegisterCs: REGISTER_ID = 57i32; +pub const X64_RegisterDr0: REGISTER_ID = 50i32; +pub const X64_RegisterDr1: REGISTER_ID = 51i32; +pub const X64_RegisterDr2: REGISTER_ID = 52i32; +pub const X64_RegisterDr3: REGISTER_ID = 53i32; +pub const X64_RegisterDr6: REGISTER_ID = 54i32; +pub const X64_RegisterDr7: REGISTER_ID = 55i32; +pub const X64_RegisterDs: REGISTER_ID = 59i32; +pub const X64_RegisterEfer: REGISTER_ID = 49i32; +pub const X64_RegisterEs: REGISTER_ID = 56i32; +pub const X64_RegisterFpControlStatus: REGISTER_ID = 42i32; +pub const X64_RegisterFpMmx0: REGISTER_ID = 34i32; +pub const X64_RegisterFpMmx1: REGISTER_ID = 35i32; +pub const X64_RegisterFpMmx2: REGISTER_ID = 36i32; +pub const X64_RegisterFpMmx3: REGISTER_ID = 37i32; +pub const X64_RegisterFpMmx4: REGISTER_ID = 38i32; +pub const X64_RegisterFpMmx5: REGISTER_ID = 39i32; +pub const X64_RegisterFpMmx6: REGISTER_ID = 40i32; +pub const X64_RegisterFpMmx7: REGISTER_ID = 41i32; +pub const X64_RegisterFs: REGISTER_ID = 60i32; +pub const X64_RegisterGdtr: REGISTER_ID = 65i32; +pub const X64_RegisterGs: REGISTER_ID = 61i32; +pub const X64_RegisterIdtr: REGISTER_ID = 64i32; +pub const X64_RegisterLdtr: REGISTER_ID = 62i32; +pub const X64_RegisterMax: REGISTER_ID = 66i32; +pub const X64_RegisterR10: REGISTER_ID = 10i32; +pub const X64_RegisterR11: REGISTER_ID = 11i32; +pub const X64_RegisterR12: REGISTER_ID = 12i32; +pub const X64_RegisterR13: REGISTER_ID = 13i32; +pub const X64_RegisterR14: REGISTER_ID = 14i32; +pub const X64_RegisterR15: REGISTER_ID = 15i32; +pub const X64_RegisterR8: REGISTER_ID = 8i32; +pub const X64_RegisterR9: REGISTER_ID = 9i32; +pub const X64_RegisterRFlags: REGISTER_ID = 17i32; +pub const X64_RegisterRax: REGISTER_ID = 0i32; +pub const X64_RegisterRbp: REGISTER_ID = 5i32; +pub const X64_RegisterRbx: REGISTER_ID = 3i32; +pub const X64_RegisterRcx: REGISTER_ID = 1i32; +pub const X64_RegisterRdi: REGISTER_ID = 7i32; +pub const X64_RegisterRdx: REGISTER_ID = 2i32; +pub const X64_RegisterRip: REGISTER_ID = 16i32; +pub const X64_RegisterRsi: REGISTER_ID = 6i32; +pub const X64_RegisterRsp: REGISTER_ID = 4i32; +pub const X64_RegisterSs: REGISTER_ID = 58i32; +pub const X64_RegisterTr: REGISTER_ID = 63i32; +pub const X64_RegisterXmm0: REGISTER_ID = 18i32; +pub const X64_RegisterXmm1: REGISTER_ID = 19i32; +pub const X64_RegisterXmm10: REGISTER_ID = 28i32; +pub const X64_RegisterXmm11: REGISTER_ID = 29i32; +pub const X64_RegisterXmm12: REGISTER_ID = 30i32; +pub const X64_RegisterXmm13: REGISTER_ID = 31i32; +pub const X64_RegisterXmm14: REGISTER_ID = 32i32; +pub const X64_RegisterXmm15: REGISTER_ID = 33i32; +pub const X64_RegisterXmm2: REGISTER_ID = 20i32; +pub const X64_RegisterXmm3: REGISTER_ID = 21i32; +pub const X64_RegisterXmm4: REGISTER_ID = 22i32; +pub const X64_RegisterXmm5: REGISTER_ID = 23i32; +pub const X64_RegisterXmm6: REGISTER_ID = 24i32; +pub const X64_RegisterXmm7: REGISTER_ID = 25i32; +pub const X64_RegisterXmm8: REGISTER_ID = 26i32; +pub const X64_RegisterXmm9: REGISTER_ID = 27i32; +pub const X64_RegisterXmmControlStatus: REGISTER_ID = 43i32; +pub type GUEST_OS_MICROSOFT_IDS = i32; +pub type GUEST_OS_OPENSOURCE_IDS = i32; +pub type GUEST_OS_VENDOR = i32; +pub type HDV_DEVICE_HOST_FLAGS = i32; +pub type HDV_DEVICE_TYPE = i32; +pub type HDV_DOORBELL_FLAGS = i32; +pub type HDV_MMIO_MAPPING_FLAGS = i32; +pub type HDV_PCI_BAR_SELECTOR = i32; +pub type HDV_PCI_INTERFACE_VERSION = i32; +pub type PAGING_MODE = i32; +pub type REGISTER_ID = i32; +pub type VIRTUAL_PROCESSOR_ARCH = i32; +pub type VIRTUAL_PROCESSOR_VENDOR = i32; +pub type WHV_ADVISE_GPA_RANGE_CODE = i32; +pub type WHV_ALLOCATE_VPCI_RESOURCE_FLAGS = i32; +pub type WHV_CACHE_TYPE = i32; +pub type WHV_CAPABILITY_CODE = i32; +pub type WHV_CREATE_VPCI_DEVICE_FLAGS = i32; +pub type WHV_EXCEPTION_TYPE = i32; +pub type WHV_INTERRUPT_DESTINATION_MODE = i32; +pub type WHV_INTERRUPT_TRIGGER_MODE = i32; +pub type WHV_INTERRUPT_TYPE = i32; +pub type WHV_MAP_GPA_RANGE_FLAGS = i32; +pub type WHV_MEMORY_ACCESS_TYPE = i32; +pub type WHV_MSR_ACTION = i32; +pub type WHV_NOTIFICATION_PORT_PROPERTY_CODE = i32; +pub type WHV_NOTIFICATION_PORT_TYPE = i32; +pub type WHV_PARTITION_COUNTER_SET = i32; +pub type WHV_PARTITION_PROPERTY_CODE = i32; +pub type WHV_PROCESSOR_COUNTER_SET = i32; +pub type WHV_PROCESSOR_VENDOR = i32; +pub type WHV_REGISTER_NAME = i32; +pub type WHV_RUN_VP_CANCEL_REASON = i32; +pub type WHV_RUN_VP_EXIT_REASON = i32; +pub type WHV_TRANSLATE_GVA_FLAGS = i32; +pub type WHV_TRANSLATE_GVA_RESULT_CODE = i32; +pub type WHV_TRIGGER_TYPE = i32; +pub type WHV_VIRTUAL_PROCESSOR_PROPERTY_CODE = i32; +pub type WHV_VIRTUAL_PROCESSOR_STATE_TYPE = i32; +pub type WHV_VPCI_DEVICE_NOTIFICATION_TYPE = i32; +pub type WHV_VPCI_DEVICE_PROPERTY_CODE = i32; +pub type WHV_VPCI_DEVICE_REGISTER_SPACE = i32; +pub type WHV_VPCI_INTERRUPT_TARGET_FLAGS = i32; +pub type WHV_VPCI_MMIO_RANGE_FLAGS = i32; +pub type WHV_X64_APIC_WRITE_TYPE = i32; +pub type WHV_X64_CPUID_RESULT2_FLAGS = i32; +pub type WHV_X64_LOCAL_APIC_EMULATION_MODE = i32; +pub type WHV_X64_PENDING_EVENT_TYPE = i32; +pub type WHV_X64_PENDING_INTERRUPTION_TYPE = i32; +pub type WHV_X64_UNSUPPORTED_FEATURE_CODE = i32; +#[repr(C)] +pub struct DOS_IMAGE_INFO { + pub PdbName: ::windows_sys::core::PCSTR, + pub ImageBaseAddress: u64, + pub ImageSize: u32, + pub Timestamp: u32, +} +impl ::core::marker::Copy for DOS_IMAGE_INFO {} +impl ::core::clone::Clone for DOS_IMAGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GPA_MEMORY_CHUNK { + pub GuestPhysicalStartPageIndex: u64, + pub PageCount: u64, +} +impl ::core::marker::Copy for GPA_MEMORY_CHUNK {} +impl ::core::clone::Clone for GPA_MEMORY_CHUNK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union GUEST_OS_INFO { + pub AsUINT64: u64, + pub ClosedSource: GUEST_OS_INFO_0, + pub OpenSource: GUEST_OS_INFO_1, +} +impl ::core::marker::Copy for GUEST_OS_INFO {} +impl ::core::clone::Clone for GUEST_OS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GUEST_OS_INFO_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for GUEST_OS_INFO_0 {} +impl ::core::clone::Clone for GUEST_OS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GUEST_OS_INFO_1 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for GUEST_OS_INFO_1 {} +impl ::core::clone::Clone for GUEST_OS_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HDV_PCI_DEVICE_INTERFACE { + pub Version: HDV_PCI_INTERFACE_VERSION, + pub Initialize: HDV_PCI_DEVICE_INITIALIZE, + pub Teardown: HDV_PCI_DEVICE_TEARDOWN, + pub SetConfiguration: HDV_PCI_DEVICE_SET_CONFIGURATION, + pub GetDetails: HDV_PCI_DEVICE_GET_DETAILS, + pub Start: HDV_PCI_DEVICE_START, + pub Stop: HDV_PCI_DEVICE_STOP, + pub ReadConfigSpace: HDV_PCI_READ_CONFIG_SPACE, + pub WriteConfigSpace: HDV_PCI_WRITE_CONFIG_SPACE, + pub ReadInterceptedMemory: HDV_PCI_READ_INTERCEPTED_MEMORY, + pub WriteInterceptedMemory: HDV_PCI_WRITE_INTERCEPTED_MEMORY, +} +impl ::core::marker::Copy for HDV_PCI_DEVICE_INTERFACE {} +impl ::core::clone::Clone for HDV_PCI_DEVICE_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HDV_PCI_PNP_ID { + pub VendorID: u16, + pub DeviceID: u16, + pub RevisionID: u8, + pub ProgIf: u8, + pub SubClass: u8, + pub BaseClass: u8, + pub SubVendorID: u16, + pub SubSystemID: u16, +} +impl ::core::marker::Copy for HDV_PCI_PNP_ID {} +impl ::core::clone::Clone for HDV_PCI_PNP_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HVSOCKET_ADDRESS_INFO { + pub SystemId: ::windows_sys::core::GUID, + pub VirtualMachineId: ::windows_sys::core::GUID, + pub SiloId: ::windows_sys::core::GUID, + pub Flags: u32, +} +impl ::core::marker::Copy for HVSOCKET_ADDRESS_INFO {} +impl ::core::clone::Clone for HVSOCKET_ADDRESS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MODULE_INFO { + pub ProcessImageName: ::windows_sys::core::PCSTR, + pub Image: DOS_IMAGE_INFO, +} +impl ::core::marker::Copy for MODULE_INFO {} +impl ::core::clone::Clone for MODULE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct SOCKADDR_HV { + pub Family: super::super::Networking::WinSock::ADDRESS_FAMILY, + pub Reserved: u16, + pub VmId: ::windows_sys::core::GUID, + pub ServiceId: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for SOCKADDR_HV {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for SOCKADDR_HV { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VIRTUAL_PROCESSOR_REGISTER { + pub Reg64: u64, + pub Reg32: u32, + pub Reg16: u16, + pub Reg8: u8, + pub Reg128: VIRTUAL_PROCESSOR_REGISTER_0, + pub X64: VIRTUAL_PROCESSOR_REGISTER_1, +} +impl ::core::marker::Copy for VIRTUAL_PROCESSOR_REGISTER {} +impl ::core::clone::Clone for VIRTUAL_PROCESSOR_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_PROCESSOR_REGISTER_0 { + pub Low64: u64, + pub High64: u64, +} +impl ::core::marker::Copy for VIRTUAL_PROCESSOR_REGISTER_0 {} +impl ::core::clone::Clone for VIRTUAL_PROCESSOR_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VIRTUAL_PROCESSOR_REGISTER_1 { + pub Segment: VIRTUAL_PROCESSOR_REGISTER_1_1, + pub Table: VIRTUAL_PROCESSOR_REGISTER_1_2, + pub FpControlStatus: VIRTUAL_PROCESSOR_REGISTER_1_0, + pub XmmControlStatus: VIRTUAL_PROCESSOR_REGISTER_1_3, +} +impl ::core::marker::Copy for VIRTUAL_PROCESSOR_REGISTER_1 {} +impl ::core::clone::Clone for VIRTUAL_PROCESSOR_REGISTER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_PROCESSOR_REGISTER_1_0 { + pub FpControl: u16, + pub FpStatus: u16, + pub FpTag: u8, + pub Reserved: u8, + pub LastFpOp: u16, + pub Anonymous: VIRTUAL_PROCESSOR_REGISTER_1_0_0, +} +impl ::core::marker::Copy for VIRTUAL_PROCESSOR_REGISTER_1_0 {} +impl ::core::clone::Clone for VIRTUAL_PROCESSOR_REGISTER_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VIRTUAL_PROCESSOR_REGISTER_1_0_0 { + pub LastFpRip: u64, + pub Anonymous: VIRTUAL_PROCESSOR_REGISTER_1_0_0_0, +} +impl ::core::marker::Copy for VIRTUAL_PROCESSOR_REGISTER_1_0_0 {} +impl ::core::clone::Clone for VIRTUAL_PROCESSOR_REGISTER_1_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_PROCESSOR_REGISTER_1_0_0_0 { + pub LastFpEip: u32, + pub LastFpCs: u16, +} +impl ::core::marker::Copy for VIRTUAL_PROCESSOR_REGISTER_1_0_0_0 {} +impl ::core::clone::Clone for VIRTUAL_PROCESSOR_REGISTER_1_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_PROCESSOR_REGISTER_1_1 { + pub Base: u64, + pub Limit: u32, + pub Selector: u16, + pub Anonymous: VIRTUAL_PROCESSOR_REGISTER_1_1_0, +} +impl ::core::marker::Copy for VIRTUAL_PROCESSOR_REGISTER_1_1 {} +impl ::core::clone::Clone for VIRTUAL_PROCESSOR_REGISTER_1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VIRTUAL_PROCESSOR_REGISTER_1_1_0 { + pub Attributes: u16, + pub Anonymous: VIRTUAL_PROCESSOR_REGISTER_1_1_0_0, +} +impl ::core::marker::Copy for VIRTUAL_PROCESSOR_REGISTER_1_1_0 {} +impl ::core::clone::Clone for VIRTUAL_PROCESSOR_REGISTER_1_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_PROCESSOR_REGISTER_1_1_0_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for VIRTUAL_PROCESSOR_REGISTER_1_1_0_0 {} +impl ::core::clone::Clone for VIRTUAL_PROCESSOR_REGISTER_1_1_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_PROCESSOR_REGISTER_1_2 { + pub Limit: u16, + pub Base: u64, +} +impl ::core::marker::Copy for VIRTUAL_PROCESSOR_REGISTER_1_2 {} +impl ::core::clone::Clone for VIRTUAL_PROCESSOR_REGISTER_1_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_PROCESSOR_REGISTER_1_3 { + pub Anonymous: VIRTUAL_PROCESSOR_REGISTER_1_3_0, + pub XmmStatusControl: u32, + pub XmmStatusControlMask: u32, +} +impl ::core::marker::Copy for VIRTUAL_PROCESSOR_REGISTER_1_3 {} +impl ::core::clone::Clone for VIRTUAL_PROCESSOR_REGISTER_1_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union VIRTUAL_PROCESSOR_REGISTER_1_3_0 { + pub LastFpRdp: u64, + pub Anonymous: VIRTUAL_PROCESSOR_REGISTER_1_3_0_0, +} +impl ::core::marker::Copy for VIRTUAL_PROCESSOR_REGISTER_1_3_0 {} +impl ::core::clone::Clone for VIRTUAL_PROCESSOR_REGISTER_1_3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_PROCESSOR_REGISTER_1_3_0_0 { + pub LastFpDp: u32, + pub LastFpDs: u16, +} +impl ::core::marker::Copy for VIRTUAL_PROCESSOR_REGISTER_1_3_0_0 {} +impl ::core::clone::Clone for VIRTUAL_PROCESSOR_REGISTER_1_3_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VM_GENCOUNTER { + pub GenerationCount: u64, + pub GenerationCountHigh: u64, +} +impl ::core::marker::Copy for VM_GENCOUNTER {} +impl ::core::clone::Clone for VM_GENCOUNTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_ACCESS_GPA_CONTROLS { + pub AsUINT64: u64, + pub Anonymous: WHV_ACCESS_GPA_CONTROLS_0, +} +impl ::core::marker::Copy for WHV_ACCESS_GPA_CONTROLS {} +impl ::core::clone::Clone for WHV_ACCESS_GPA_CONTROLS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_ACCESS_GPA_CONTROLS_0 { + pub CacheType: WHV_CACHE_TYPE, + pub Reserved: u32, +} +impl ::core::marker::Copy for WHV_ACCESS_GPA_CONTROLS_0 {} +impl ::core::clone::Clone for WHV_ACCESS_GPA_CONTROLS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_ADVISE_GPA_RANGE { + pub Populate: WHV_ADVISE_GPA_RANGE_POPULATE, +} +impl ::core::marker::Copy for WHV_ADVISE_GPA_RANGE {} +impl ::core::clone::Clone for WHV_ADVISE_GPA_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_ADVISE_GPA_RANGE_POPULATE { + pub Flags: WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS, + pub AccessType: WHV_MEMORY_ACCESS_TYPE, +} +impl ::core::marker::Copy for WHV_ADVISE_GPA_RANGE_POPULATE {} +impl ::core::clone::Clone for WHV_ADVISE_GPA_RANGE_POPULATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS { + pub AsUINT32: u32, + pub Anonymous: WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS_0, +} +impl ::core::marker::Copy for WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS {} +impl ::core::clone::Clone for WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS_0 {} +impl ::core::clone::Clone for WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WHV_CAPABILITY { + pub HypervisorPresent: super::super::Foundation::BOOL, + pub Features: WHV_CAPABILITY_FEATURES, + pub ExtendedVmExits: WHV_EXTENDED_VM_EXITS, + pub ProcessorVendor: WHV_PROCESSOR_VENDOR, + pub ProcessorFeatures: WHV_PROCESSOR_FEATURES, + pub SyntheticProcessorFeaturesBanks: WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS, + pub ProcessorXsaveFeatures: WHV_PROCESSOR_XSAVE_FEATURES, + pub ProcessorClFlushSize: u8, + pub ExceptionExitBitmap: u64, + pub X64MsrExitBitmap: WHV_X64_MSR_EXIT_BITMAP, + pub ProcessorClockFrequency: u64, + pub InterruptClockFrequency: u64, + pub ProcessorFeaturesBanks: WHV_PROCESSOR_FEATURES_BANKS, + pub GpaRangePopulateFlags: WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS, + pub ProcessorFrequencyCap: WHV_CAPABILITY_PROCESSOR_FREQUENCY_CAP, + pub ProcessorPerfmonFeatures: WHV_PROCESSOR_PERFMON_FEATURES, + pub SchedulerFeatures: WHV_SCHEDULER_FEATURES, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHV_CAPABILITY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHV_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_CAPABILITY_FEATURES { + pub Anonymous: WHV_CAPABILITY_FEATURES_0, + pub AsUINT64: u64, +} +impl ::core::marker::Copy for WHV_CAPABILITY_FEATURES {} +impl ::core::clone::Clone for WHV_CAPABILITY_FEATURES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_CAPABILITY_FEATURES_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_CAPABILITY_FEATURES_0 {} +impl ::core::clone::Clone for WHV_CAPABILITY_FEATURES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_CAPABILITY_PROCESSOR_FREQUENCY_CAP { + pub _bitfield: u32, + pub HighestFrequencyMhz: u32, + pub NominalFrequencyMhz: u32, + pub LowestFrequencyMhz: u32, + pub FrequencyStepMhz: u32, +} +impl ::core::marker::Copy for WHV_CAPABILITY_PROCESSOR_FREQUENCY_CAP {} +impl ::core::clone::Clone for WHV_CAPABILITY_PROCESSOR_FREQUENCY_CAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_CPUID_OUTPUT { + pub Eax: u32, + pub Ebx: u32, + pub Ecx: u32, + pub Edx: u32, +} +impl ::core::marker::Copy for WHV_CPUID_OUTPUT {} +impl ::core::clone::Clone for WHV_CPUID_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_DOORBELL_MATCH_DATA { + pub GuestAddress: u64, + pub Value: u64, + pub Length: u32, + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHV_DOORBELL_MATCH_DATA {} +impl ::core::clone::Clone for WHV_DOORBELL_MATCH_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_EMULATOR_CALLBACKS { + pub Size: u32, + pub Reserved: u32, + pub WHvEmulatorIoPortCallback: WHV_EMULATOR_IO_PORT_CALLBACK, + pub WHvEmulatorMemoryCallback: WHV_EMULATOR_MEMORY_CALLBACK, + pub WHvEmulatorGetVirtualProcessorRegisters: WHV_EMULATOR_GET_VIRTUAL_PROCESSOR_REGISTERS_CALLBACK, + pub WHvEmulatorSetVirtualProcessorRegisters: WHV_EMULATOR_SET_VIRTUAL_PROCESSOR_REGISTERS_CALLBACK, + pub WHvEmulatorTranslateGvaPage: WHV_EMULATOR_TRANSLATE_GVA_PAGE_CALLBACK, +} +impl ::core::marker::Copy for WHV_EMULATOR_CALLBACKS {} +impl ::core::clone::Clone for WHV_EMULATOR_CALLBACKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_EMULATOR_IO_ACCESS_INFO { + pub Direction: u8, + pub Port: u16, + pub AccessSize: u16, + pub Data: u32, +} +impl ::core::marker::Copy for WHV_EMULATOR_IO_ACCESS_INFO {} +impl ::core::clone::Clone for WHV_EMULATOR_IO_ACCESS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_EMULATOR_MEMORY_ACCESS_INFO { + pub GpaAddress: u64, + pub Direction: u8, + pub AccessSize: u8, + pub Data: [u8; 8], +} +impl ::core::marker::Copy for WHV_EMULATOR_MEMORY_ACCESS_INFO {} +impl ::core::clone::Clone for WHV_EMULATOR_MEMORY_ACCESS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_EMULATOR_STATUS { + pub Anonymous: WHV_EMULATOR_STATUS_0, + pub AsUINT32: u32, +} +impl ::core::marker::Copy for WHV_EMULATOR_STATUS {} +impl ::core::clone::Clone for WHV_EMULATOR_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_EMULATOR_STATUS_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHV_EMULATOR_STATUS_0 {} +impl ::core::clone::Clone for WHV_EMULATOR_STATUS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_EXTENDED_VM_EXITS { + pub Anonymous: WHV_EXTENDED_VM_EXITS_0, + pub AsUINT64: u64, +} +impl ::core::marker::Copy for WHV_EXTENDED_VM_EXITS {} +impl ::core::clone::Clone for WHV_EXTENDED_VM_EXITS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_EXTENDED_VM_EXITS_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_EXTENDED_VM_EXITS_0 {} +impl ::core::clone::Clone for WHV_EXTENDED_VM_EXITS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_HYPERCALL_CONTEXT { + pub Rax: u64, + pub Rbx: u64, + pub Rcx: u64, + pub Rdx: u64, + pub R8: u64, + pub Rsi: u64, + pub Rdi: u64, + pub Reserved0: u64, + pub XmmRegisters: [WHV_UINT128; 6], + pub Reserved1: [u64; 2], +} +impl ::core::marker::Copy for WHV_HYPERCALL_CONTEXT {} +impl ::core::clone::Clone for WHV_HYPERCALL_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_INTERNAL_ACTIVITY_REGISTER { + pub Anonymous: WHV_INTERNAL_ACTIVITY_REGISTER_0, + pub AsUINT64: u64, +} +impl ::core::marker::Copy for WHV_INTERNAL_ACTIVITY_REGISTER {} +impl ::core::clone::Clone for WHV_INTERNAL_ACTIVITY_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_INTERNAL_ACTIVITY_REGISTER_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_INTERNAL_ACTIVITY_REGISTER_0 {} +impl ::core::clone::Clone for WHV_INTERNAL_ACTIVITY_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_INTERRUPT_CONTROL { + pub _bitfield: u64, + pub Destination: u32, + pub Vector: u32, +} +impl ::core::marker::Copy for WHV_INTERRUPT_CONTROL {} +impl ::core::clone::Clone for WHV_INTERRUPT_CONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_MEMORY_ACCESS_CONTEXT { + pub InstructionByteCount: u8, + pub Reserved: [u8; 3], + pub InstructionBytes: [u8; 16], + pub AccessInfo: WHV_MEMORY_ACCESS_INFO, + pub Gpa: u64, + pub Gva: u64, +} +impl ::core::marker::Copy for WHV_MEMORY_ACCESS_CONTEXT {} +impl ::core::clone::Clone for WHV_MEMORY_ACCESS_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_MEMORY_ACCESS_INFO { + pub Anonymous: WHV_MEMORY_ACCESS_INFO_0, + pub AsUINT32: u32, +} +impl ::core::marker::Copy for WHV_MEMORY_ACCESS_INFO {} +impl ::core::clone::Clone for WHV_MEMORY_ACCESS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_MEMORY_ACCESS_INFO_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHV_MEMORY_ACCESS_INFO_0 {} +impl ::core::clone::Clone for WHV_MEMORY_ACCESS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_MEMORY_RANGE_ENTRY { + pub GuestAddress: u64, + pub SizeInBytes: u64, +} +impl ::core::marker::Copy for WHV_MEMORY_RANGE_ENTRY {} +impl ::core::clone::Clone for WHV_MEMORY_RANGE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_MSR_ACTION_ENTRY { + pub Index: u32, + pub ReadAction: u8, + pub WriteAction: u8, + pub Reserved: u16, +} +impl ::core::marker::Copy for WHV_MSR_ACTION_ENTRY {} +impl ::core::clone::Clone for WHV_MSR_ACTION_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_NOTIFICATION_PORT_PARAMETERS { + pub NotificationPortType: WHV_NOTIFICATION_PORT_TYPE, + pub Reserved: u32, + pub Anonymous: WHV_NOTIFICATION_PORT_PARAMETERS_0, +} +impl ::core::marker::Copy for WHV_NOTIFICATION_PORT_PARAMETERS {} +impl ::core::clone::Clone for WHV_NOTIFICATION_PORT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_NOTIFICATION_PORT_PARAMETERS_0 { + pub Doorbell: WHV_DOORBELL_MATCH_DATA, + pub Event: WHV_NOTIFICATION_PORT_PARAMETERS_0_0, +} +impl ::core::marker::Copy for WHV_NOTIFICATION_PORT_PARAMETERS_0 {} +impl ::core::clone::Clone for WHV_NOTIFICATION_PORT_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_NOTIFICATION_PORT_PARAMETERS_0_0 { + pub ConnectionId: u32, +} +impl ::core::marker::Copy for WHV_NOTIFICATION_PORT_PARAMETERS_0_0 {} +impl ::core::clone::Clone for WHV_NOTIFICATION_PORT_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +pub type WHV_PARTITION_HANDLE = isize; +#[repr(C)] +pub struct WHV_PARTITION_MEMORY_COUNTERS { + pub Mapped4KPageCount: u64, + pub Mapped2MPageCount: u64, + pub Mapped1GPageCount: u64, +} +impl ::core::marker::Copy for WHV_PARTITION_MEMORY_COUNTERS {} +impl ::core::clone::Clone for WHV_PARTITION_MEMORY_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WHV_PARTITION_PROPERTY { + pub ExtendedVmExits: WHV_EXTENDED_VM_EXITS, + pub ProcessorFeatures: WHV_PROCESSOR_FEATURES, + pub SyntheticProcessorFeaturesBanks: WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS, + pub ProcessorXsaveFeatures: WHV_PROCESSOR_XSAVE_FEATURES, + pub ProcessorClFlushSize: u8, + pub ProcessorCount: u32, + pub CpuidExitList: [u32; 1], + pub CpuidResultList: [WHV_X64_CPUID_RESULT; 1], + pub CpuidResultList2: [WHV_X64_CPUID_RESULT2; 1], + pub MsrActionList: [WHV_MSR_ACTION_ENTRY; 1], + pub UnimplementedMsrAction: WHV_MSR_ACTION, + pub ExceptionExitBitmap: u64, + pub LocalApicEmulationMode: WHV_X64_LOCAL_APIC_EMULATION_MODE, + pub SeparateSecurityDomain: super::super::Foundation::BOOL, + pub NestedVirtualization: super::super::Foundation::BOOL, + pub X64MsrExitBitmap: WHV_X64_MSR_EXIT_BITMAP, + pub ProcessorClockFrequency: u64, + pub InterruptClockFrequency: u64, + pub ApicRemoteRead: super::super::Foundation::BOOL, + pub ProcessorFeaturesBanks: WHV_PROCESSOR_FEATURES_BANKS, + pub ReferenceTime: u64, + pub PrimaryNumaNode: u16, + pub CpuReserve: u32, + pub CpuCap: u32, + pub CpuWeight: u32, + pub CpuGroupId: u64, + pub ProcessorFrequencyCap: u32, + pub AllowDeviceAssignment: super::super::Foundation::BOOL, + pub ProcessorPerfmonFeatures: WHV_PROCESSOR_PERFMON_FEATURES, + pub DisableSmt: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHV_PARTITION_PROPERTY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHV_PARTITION_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_PROCESSOR_APIC_COUNTERS { + pub MmioAccessCount: u64, + pub EoiAccessCount: u64, + pub TprAccessCount: u64, + pub SentIpiCount: u64, + pub SelfIpiCount: u64, +} +impl ::core::marker::Copy for WHV_PROCESSOR_APIC_COUNTERS {} +impl ::core::clone::Clone for WHV_PROCESSOR_APIC_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_PROCESSOR_EVENT_COUNTERS { + pub PageFaultCount: u64, + pub ExceptionCount: u64, + pub InterruptCount: u64, +} +impl ::core::marker::Copy for WHV_PROCESSOR_EVENT_COUNTERS {} +impl ::core::clone::Clone for WHV_PROCESSOR_EVENT_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_PROCESSOR_FEATURES { + pub Anonymous: WHV_PROCESSOR_FEATURES_0, + pub AsUINT64: u64, +} +impl ::core::marker::Copy for WHV_PROCESSOR_FEATURES {} +impl ::core::clone::Clone for WHV_PROCESSOR_FEATURES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_PROCESSOR_FEATURES_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_PROCESSOR_FEATURES_0 {} +impl ::core::clone::Clone for WHV_PROCESSOR_FEATURES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_PROCESSOR_FEATURES1 { + pub Anonymous: WHV_PROCESSOR_FEATURES1_0, + pub AsUINT64: u64, +} +impl ::core::marker::Copy for WHV_PROCESSOR_FEATURES1 {} +impl ::core::clone::Clone for WHV_PROCESSOR_FEATURES1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_PROCESSOR_FEATURES1_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_PROCESSOR_FEATURES1_0 {} +impl ::core::clone::Clone for WHV_PROCESSOR_FEATURES1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_PROCESSOR_FEATURES_BANKS { + pub BanksCount: u32, + pub Reserved0: u32, + pub Anonymous: WHV_PROCESSOR_FEATURES_BANKS_0, +} +impl ::core::marker::Copy for WHV_PROCESSOR_FEATURES_BANKS {} +impl ::core::clone::Clone for WHV_PROCESSOR_FEATURES_BANKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_PROCESSOR_FEATURES_BANKS_0 { + pub Anonymous: WHV_PROCESSOR_FEATURES_BANKS_0_0, + pub AsUINT64: [u64; 2], +} +impl ::core::marker::Copy for WHV_PROCESSOR_FEATURES_BANKS_0 {} +impl ::core::clone::Clone for WHV_PROCESSOR_FEATURES_BANKS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_PROCESSOR_FEATURES_BANKS_0_0 { + pub Bank0: WHV_PROCESSOR_FEATURES, + pub Bank1: WHV_PROCESSOR_FEATURES1, +} +impl ::core::marker::Copy for WHV_PROCESSOR_FEATURES_BANKS_0_0 {} +impl ::core::clone::Clone for WHV_PROCESSOR_FEATURES_BANKS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_PROCESSOR_INTERCEPT_COUNTER { + pub Count: u64, + pub Time100ns: u64, +} +impl ::core::marker::Copy for WHV_PROCESSOR_INTERCEPT_COUNTER {} +impl ::core::clone::Clone for WHV_PROCESSOR_INTERCEPT_COUNTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_PROCESSOR_INTERCEPT_COUNTERS { + pub PageInvalidations: WHV_PROCESSOR_INTERCEPT_COUNTER, + pub ControlRegisterAccesses: WHV_PROCESSOR_INTERCEPT_COUNTER, + pub IoInstructions: WHV_PROCESSOR_INTERCEPT_COUNTER, + pub HaltInstructions: WHV_PROCESSOR_INTERCEPT_COUNTER, + pub CpuidInstructions: WHV_PROCESSOR_INTERCEPT_COUNTER, + pub MsrAccesses: WHV_PROCESSOR_INTERCEPT_COUNTER, + pub OtherIntercepts: WHV_PROCESSOR_INTERCEPT_COUNTER, + pub PendingInterrupts: WHV_PROCESSOR_INTERCEPT_COUNTER, + pub EmulatedInstructions: WHV_PROCESSOR_INTERCEPT_COUNTER, + pub DebugRegisterAccesses: WHV_PROCESSOR_INTERCEPT_COUNTER, + pub PageFaultIntercepts: WHV_PROCESSOR_INTERCEPT_COUNTER, + pub NestedPageFaultIntercepts: WHV_PROCESSOR_INTERCEPT_COUNTER, + pub Hypercalls: WHV_PROCESSOR_INTERCEPT_COUNTER, + pub RdpmcInstructions: WHV_PROCESSOR_INTERCEPT_COUNTER, +} +impl ::core::marker::Copy for WHV_PROCESSOR_INTERCEPT_COUNTERS {} +impl ::core::clone::Clone for WHV_PROCESSOR_INTERCEPT_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_PROCESSOR_PERFMON_FEATURES { + pub Anonymous: WHV_PROCESSOR_PERFMON_FEATURES_0, + pub AsUINT64: u64, +} +impl ::core::marker::Copy for WHV_PROCESSOR_PERFMON_FEATURES {} +impl ::core::clone::Clone for WHV_PROCESSOR_PERFMON_FEATURES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_PROCESSOR_PERFMON_FEATURES_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_PROCESSOR_PERFMON_FEATURES_0 {} +impl ::core::clone::Clone for WHV_PROCESSOR_PERFMON_FEATURES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_PROCESSOR_RUNTIME_COUNTERS { + pub TotalRuntime100ns: u64, + pub HypervisorRuntime100ns: u64, +} +impl ::core::marker::Copy for WHV_PROCESSOR_RUNTIME_COUNTERS {} +impl ::core::clone::Clone for WHV_PROCESSOR_RUNTIME_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_PROCESSOR_SYNTHETIC_FEATURES_COUNTERS { + pub SyntheticInterruptsCount: u64, + pub LongSpinWaitHypercallsCount: u64, + pub OtherHypercallsCount: u64, + pub SyntheticInterruptHypercallsCount: u64, + pub VirtualInterruptHypercallsCount: u64, + pub VirtualMmuHypercallsCount: u64, +} +impl ::core::marker::Copy for WHV_PROCESSOR_SYNTHETIC_FEATURES_COUNTERS {} +impl ::core::clone::Clone for WHV_PROCESSOR_SYNTHETIC_FEATURES_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_PROCESSOR_XSAVE_FEATURES { + pub Anonymous: WHV_PROCESSOR_XSAVE_FEATURES_0, + pub AsUINT64: u64, +} +impl ::core::marker::Copy for WHV_PROCESSOR_XSAVE_FEATURES {} +impl ::core::clone::Clone for WHV_PROCESSOR_XSAVE_FEATURES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_PROCESSOR_XSAVE_FEATURES_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_PROCESSOR_XSAVE_FEATURES_0 {} +impl ::core::clone::Clone for WHV_PROCESSOR_XSAVE_FEATURES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_REGISTER_VALUE { + pub Reg128: WHV_UINT128, + pub Reg64: u64, + pub Reg32: u32, + pub Reg16: u16, + pub Reg8: u8, + pub Fp: WHV_X64_FP_REGISTER, + pub FpControlStatus: WHV_X64_FP_CONTROL_STATUS_REGISTER, + pub XmmControlStatus: WHV_X64_XMM_CONTROL_STATUS_REGISTER, + pub Segment: WHV_X64_SEGMENT_REGISTER, + pub Table: WHV_X64_TABLE_REGISTER, + pub InterruptState: WHV_X64_INTERRUPT_STATE_REGISTER, + pub PendingInterruption: WHV_X64_PENDING_INTERRUPTION_REGISTER, + pub DeliverabilityNotifications: WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER, + pub ExceptionEvent: WHV_X64_PENDING_EXCEPTION_EVENT, + pub ExtIntEvent: WHV_X64_PENDING_EXT_INT_EVENT, + pub InternalActivity: WHV_INTERNAL_ACTIVITY_REGISTER, + pub PendingDebugException: WHV_X64_PENDING_DEBUG_EXCEPTION, +} +impl ::core::marker::Copy for WHV_REGISTER_VALUE {} +impl ::core::clone::Clone for WHV_REGISTER_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_RUN_VP_CANCELED_CONTEXT { + pub CancelReason: WHV_RUN_VP_CANCEL_REASON, +} +impl ::core::marker::Copy for WHV_RUN_VP_CANCELED_CONTEXT {} +impl ::core::clone::Clone for WHV_RUN_VP_CANCELED_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_RUN_VP_EXIT_CONTEXT { + pub ExitReason: WHV_RUN_VP_EXIT_REASON, + pub Reserved: u32, + pub VpContext: WHV_VP_EXIT_CONTEXT, + pub Anonymous: WHV_RUN_VP_EXIT_CONTEXT_0, +} +impl ::core::marker::Copy for WHV_RUN_VP_EXIT_CONTEXT {} +impl ::core::clone::Clone for WHV_RUN_VP_EXIT_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_RUN_VP_EXIT_CONTEXT_0 { + pub MemoryAccess: WHV_MEMORY_ACCESS_CONTEXT, + pub IoPortAccess: WHV_X64_IO_PORT_ACCESS_CONTEXT, + pub MsrAccess: WHV_X64_MSR_ACCESS_CONTEXT, + pub CpuidAccess: WHV_X64_CPUID_ACCESS_CONTEXT, + pub VpException: WHV_VP_EXCEPTION_CONTEXT, + pub InterruptWindow: WHV_X64_INTERRUPTION_DELIVERABLE_CONTEXT, + pub UnsupportedFeature: WHV_X64_UNSUPPORTED_FEATURE_CONTEXT, + pub CancelReason: WHV_RUN_VP_CANCELED_CONTEXT, + pub ApicEoi: WHV_X64_APIC_EOI_CONTEXT, + pub ReadTsc: WHV_X64_RDTSC_CONTEXT, + pub ApicSmi: WHV_X64_APIC_SMI_CONTEXT, + pub Hypercall: WHV_HYPERCALL_CONTEXT, + pub ApicInitSipi: WHV_X64_APIC_INIT_SIPI_CONTEXT, + pub ApicWrite: WHV_X64_APIC_WRITE_CONTEXT, + pub SynicSintDeliverable: WHV_SYNIC_SINT_DELIVERABLE_CONTEXT, +} +impl ::core::marker::Copy for WHV_RUN_VP_EXIT_CONTEXT_0 {} +impl ::core::clone::Clone for WHV_RUN_VP_EXIT_CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_SCHEDULER_FEATURES { + pub Anonymous: WHV_SCHEDULER_FEATURES_0, + pub AsUINT64: u64, +} +impl ::core::marker::Copy for WHV_SCHEDULER_FEATURES {} +impl ::core::clone::Clone for WHV_SCHEDULER_FEATURES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_SCHEDULER_FEATURES_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_SCHEDULER_FEATURES_0 {} +impl ::core::clone::Clone for WHV_SCHEDULER_FEATURES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WHV_SRIOV_RESOURCE_DESCRIPTOR { + pub PnpInstanceId: [u16; 200], + pub VirtualFunctionId: super::super::Foundation::LUID, + pub VirtualFunctionIndex: u16, + pub Reserved: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WHV_SRIOV_RESOURCE_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WHV_SRIOV_RESOURCE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_SYNIC_EVENT_PARAMETERS { + pub VpIndex: u32, + pub TargetSint: u8, + pub Reserved: u8, + pub FlagNumber: u16, +} +impl ::core::marker::Copy for WHV_SYNIC_EVENT_PARAMETERS {} +impl ::core::clone::Clone for WHV_SYNIC_EVENT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_SYNIC_SINT_DELIVERABLE_CONTEXT { + pub DeliverableSints: u16, + pub Reserved1: u16, + pub Reserved2: u32, +} +impl ::core::marker::Copy for WHV_SYNIC_SINT_DELIVERABLE_CONTEXT {} +impl ::core::clone::Clone for WHV_SYNIC_SINT_DELIVERABLE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_SYNTHETIC_PROCESSOR_FEATURES { + pub Anonymous: WHV_SYNTHETIC_PROCESSOR_FEATURES_0, + pub AsUINT64: u64, +} +impl ::core::marker::Copy for WHV_SYNTHETIC_PROCESSOR_FEATURES {} +impl ::core::clone::Clone for WHV_SYNTHETIC_PROCESSOR_FEATURES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_SYNTHETIC_PROCESSOR_FEATURES_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_SYNTHETIC_PROCESSOR_FEATURES_0 {} +impl ::core::clone::Clone for WHV_SYNTHETIC_PROCESSOR_FEATURES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS { + pub BanksCount: u32, + pub Reserved0: u32, + pub Anonymous: WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS_0, +} +impl ::core::marker::Copy for WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS {} +impl ::core::clone::Clone for WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS_0 { + pub Anonymous: WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS_0_0, + pub AsUINT64: [u64; 1], +} +impl ::core::marker::Copy for WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS_0 {} +impl ::core::clone::Clone for WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS_0_0 { + pub Bank0: WHV_SYNTHETIC_PROCESSOR_FEATURES, +} +impl ::core::marker::Copy for WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS_0_0 {} +impl ::core::clone::Clone for WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_TRANSLATE_GVA_RESULT { + pub ResultCode: WHV_TRANSLATE_GVA_RESULT_CODE, + pub Reserved: u32, +} +impl ::core::marker::Copy for WHV_TRANSLATE_GVA_RESULT {} +impl ::core::clone::Clone for WHV_TRANSLATE_GVA_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_TRIGGER_PARAMETERS { + pub TriggerType: WHV_TRIGGER_TYPE, + pub Reserved: u32, + pub Anonymous: WHV_TRIGGER_PARAMETERS_0, +} +impl ::core::marker::Copy for WHV_TRIGGER_PARAMETERS {} +impl ::core::clone::Clone for WHV_TRIGGER_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_TRIGGER_PARAMETERS_0 { + pub Interrupt: WHV_INTERRUPT_CONTROL, + pub SynicEvent: WHV_SYNIC_EVENT_PARAMETERS, + pub DeviceInterrupt: WHV_TRIGGER_PARAMETERS_0_0, +} +impl ::core::marker::Copy for WHV_TRIGGER_PARAMETERS_0 {} +impl ::core::clone::Clone for WHV_TRIGGER_PARAMETERS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_TRIGGER_PARAMETERS_0_0 { + pub LogicalDeviceId: u64, + pub MsiAddress: u64, + pub MsiData: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for WHV_TRIGGER_PARAMETERS_0_0 {} +impl ::core::clone::Clone for WHV_TRIGGER_PARAMETERS_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_UINT128 { + pub Anonymous: WHV_UINT128_0, + pub Dword: [u32; 4], +} +impl ::core::marker::Copy for WHV_UINT128 {} +impl ::core::clone::Clone for WHV_UINT128 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_UINT128_0 { + pub Low64: u64, + pub High64: u64, +} +impl ::core::marker::Copy for WHV_UINT128_0 {} +impl ::core::clone::Clone for WHV_UINT128_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_VIRTUAL_PROCESSOR_PROPERTY { + pub PropertyCode: WHV_VIRTUAL_PROCESSOR_PROPERTY_CODE, + pub Reserved: u32, + pub Anonymous: WHV_VIRTUAL_PROCESSOR_PROPERTY_0, +} +impl ::core::marker::Copy for WHV_VIRTUAL_PROCESSOR_PROPERTY {} +impl ::core::clone::Clone for WHV_VIRTUAL_PROCESSOR_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_VIRTUAL_PROCESSOR_PROPERTY_0 { + pub NumaNode: u16, + pub Padding: u64, +} +impl ::core::marker::Copy for WHV_VIRTUAL_PROCESSOR_PROPERTY_0 {} +impl ::core::clone::Clone for WHV_VIRTUAL_PROCESSOR_PROPERTY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_VPCI_DEVICE_NOTIFICATION { + pub NotificationType: WHV_VPCI_DEVICE_NOTIFICATION_TYPE, + pub Reserved1: u32, + pub Anonymous: WHV_VPCI_DEVICE_NOTIFICATION_0, +} +impl ::core::marker::Copy for WHV_VPCI_DEVICE_NOTIFICATION {} +impl ::core::clone::Clone for WHV_VPCI_DEVICE_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_VPCI_DEVICE_NOTIFICATION_0 { + pub Reserved2: u64, +} +impl ::core::marker::Copy for WHV_VPCI_DEVICE_NOTIFICATION_0 {} +impl ::core::clone::Clone for WHV_VPCI_DEVICE_NOTIFICATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_VPCI_DEVICE_REGISTER { + pub Location: WHV_VPCI_DEVICE_REGISTER_SPACE, + pub SizeInBytes: u32, + pub OffsetInBytes: u64, +} +impl ::core::marker::Copy for WHV_VPCI_DEVICE_REGISTER {} +impl ::core::clone::Clone for WHV_VPCI_DEVICE_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_VPCI_HARDWARE_IDS { + pub VendorID: u16, + pub DeviceID: u16, + pub RevisionID: u8, + pub ProgIf: u8, + pub SubClass: u8, + pub BaseClass: u8, + pub SubVendorID: u16, + pub SubSystemID: u16, +} +impl ::core::marker::Copy for WHV_VPCI_HARDWARE_IDS {} +impl ::core::clone::Clone for WHV_VPCI_HARDWARE_IDS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_VPCI_INTERRUPT_TARGET { + pub Vector: u32, + pub Flags: WHV_VPCI_INTERRUPT_TARGET_FLAGS, + pub ProcessorCount: u32, + pub Processors: [u32; 1], +} +impl ::core::marker::Copy for WHV_VPCI_INTERRUPT_TARGET {} +impl ::core::clone::Clone for WHV_VPCI_INTERRUPT_TARGET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_VPCI_MMIO_MAPPING { + pub Location: WHV_VPCI_DEVICE_REGISTER_SPACE, + pub Flags: WHV_VPCI_MMIO_RANGE_FLAGS, + pub SizeInBytes: u64, + pub OffsetInBytes: u64, + pub VirtualAddress: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WHV_VPCI_MMIO_MAPPING {} +impl ::core::clone::Clone for WHV_VPCI_MMIO_MAPPING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_VPCI_PROBED_BARS { + pub Value: [u32; 6], +} +impl ::core::marker::Copy for WHV_VPCI_PROBED_BARS {} +impl ::core::clone::Clone for WHV_VPCI_PROBED_BARS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_VP_EXCEPTION_CONTEXT { + pub InstructionByteCount: u8, + pub Reserved: [u8; 3], + pub InstructionBytes: [u8; 16], + pub ExceptionInfo: WHV_VP_EXCEPTION_INFO, + pub ExceptionType: u8, + pub Reserved2: [u8; 3], + pub ErrorCode: u32, + pub ExceptionParameter: u64, +} +impl ::core::marker::Copy for WHV_VP_EXCEPTION_CONTEXT {} +impl ::core::clone::Clone for WHV_VP_EXCEPTION_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_VP_EXCEPTION_INFO { + pub Anonymous: WHV_VP_EXCEPTION_INFO_0, + pub AsUINT32: u32, +} +impl ::core::marker::Copy for WHV_VP_EXCEPTION_INFO {} +impl ::core::clone::Clone for WHV_VP_EXCEPTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_VP_EXCEPTION_INFO_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHV_VP_EXCEPTION_INFO_0 {} +impl ::core::clone::Clone for WHV_VP_EXCEPTION_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_VP_EXIT_CONTEXT { + pub ExecutionState: WHV_X64_VP_EXECUTION_STATE, + pub _bitfield: u8, + pub Reserved: u8, + pub Reserved2: u32, + pub Cs: WHV_X64_SEGMENT_REGISTER, + pub Rip: u64, + pub Rflags: u64, +} +impl ::core::marker::Copy for WHV_VP_EXIT_CONTEXT {} +impl ::core::clone::Clone for WHV_VP_EXIT_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_APIC_EOI_CONTEXT { + pub InterruptVector: u32, +} +impl ::core::marker::Copy for WHV_X64_APIC_EOI_CONTEXT {} +impl ::core::clone::Clone for WHV_X64_APIC_EOI_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_APIC_INIT_SIPI_CONTEXT { + pub ApicIcr: u64, +} +impl ::core::marker::Copy for WHV_X64_APIC_INIT_SIPI_CONTEXT {} +impl ::core::clone::Clone for WHV_X64_APIC_INIT_SIPI_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_APIC_SMI_CONTEXT { + pub ApicIcr: u64, +} +impl ::core::marker::Copy for WHV_X64_APIC_SMI_CONTEXT {} +impl ::core::clone::Clone for WHV_X64_APIC_SMI_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_APIC_WRITE_CONTEXT { + pub Type: WHV_X64_APIC_WRITE_TYPE, + pub Reserved: u32, + pub WriteValue: u64, +} +impl ::core::marker::Copy for WHV_X64_APIC_WRITE_CONTEXT {} +impl ::core::clone::Clone for WHV_X64_APIC_WRITE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_CPUID_ACCESS_CONTEXT { + pub Rax: u64, + pub Rcx: u64, + pub Rdx: u64, + pub Rbx: u64, + pub DefaultResultRax: u64, + pub DefaultResultRcx: u64, + pub DefaultResultRdx: u64, + pub DefaultResultRbx: u64, +} +impl ::core::marker::Copy for WHV_X64_CPUID_ACCESS_CONTEXT {} +impl ::core::clone::Clone for WHV_X64_CPUID_ACCESS_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_CPUID_RESULT { + pub Function: u32, + pub Reserved: [u32; 3], + pub Eax: u32, + pub Ebx: u32, + pub Ecx: u32, + pub Edx: u32, +} +impl ::core::marker::Copy for WHV_X64_CPUID_RESULT {} +impl ::core::clone::Clone for WHV_X64_CPUID_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_CPUID_RESULT2 { + pub Function: u32, + pub Index: u32, + pub VpIndex: u32, + pub Flags: WHV_X64_CPUID_RESULT2_FLAGS, + pub Output: WHV_CPUID_OUTPUT, + pub Mask: WHV_CPUID_OUTPUT, +} +impl ::core::marker::Copy for WHV_X64_CPUID_RESULT2 {} +impl ::core::clone::Clone for WHV_X64_CPUID_RESULT2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER { + pub Anonymous: WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER_0, + pub AsUINT64: u64, +} +impl ::core::marker::Copy for WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER {} +impl ::core::clone::Clone for WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER_0 {} +impl ::core::clone::Clone for WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_FP_CONTROL_STATUS_REGISTER { + pub Anonymous: WHV_X64_FP_CONTROL_STATUS_REGISTER_0, + pub AsUINT128: WHV_UINT128, +} +impl ::core::marker::Copy for WHV_X64_FP_CONTROL_STATUS_REGISTER {} +impl ::core::clone::Clone for WHV_X64_FP_CONTROL_STATUS_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_FP_CONTROL_STATUS_REGISTER_0 { + pub FpControl: u16, + pub FpStatus: u16, + pub FpTag: u8, + pub Reserved: u8, + pub LastFpOp: u16, + pub Anonymous: WHV_X64_FP_CONTROL_STATUS_REGISTER_0_0, +} +impl ::core::marker::Copy for WHV_X64_FP_CONTROL_STATUS_REGISTER_0 {} +impl ::core::clone::Clone for WHV_X64_FP_CONTROL_STATUS_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_FP_CONTROL_STATUS_REGISTER_0_0 { + pub LastFpRip: u64, + pub Anonymous: WHV_X64_FP_CONTROL_STATUS_REGISTER_0_0_0, +} +impl ::core::marker::Copy for WHV_X64_FP_CONTROL_STATUS_REGISTER_0_0 {} +impl ::core::clone::Clone for WHV_X64_FP_CONTROL_STATUS_REGISTER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_FP_CONTROL_STATUS_REGISTER_0_0_0 { + pub LastFpEip: u32, + pub LastFpCs: u16, + pub Reserved2: u16, +} +impl ::core::marker::Copy for WHV_X64_FP_CONTROL_STATUS_REGISTER_0_0_0 {} +impl ::core::clone::Clone for WHV_X64_FP_CONTROL_STATUS_REGISTER_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_FP_REGISTER { + pub Anonymous: WHV_X64_FP_REGISTER_0, + pub AsUINT128: WHV_UINT128, +} +impl ::core::marker::Copy for WHV_X64_FP_REGISTER {} +impl ::core::clone::Clone for WHV_X64_FP_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_FP_REGISTER_0 { + pub Mantissa: u64, + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_X64_FP_REGISTER_0 {} +impl ::core::clone::Clone for WHV_X64_FP_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_INTERRUPTION_DELIVERABLE_CONTEXT { + pub DeliverableType: WHV_X64_PENDING_INTERRUPTION_TYPE, +} +impl ::core::marker::Copy for WHV_X64_INTERRUPTION_DELIVERABLE_CONTEXT {} +impl ::core::clone::Clone for WHV_X64_INTERRUPTION_DELIVERABLE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_INTERRUPT_STATE_REGISTER { + pub Anonymous: WHV_X64_INTERRUPT_STATE_REGISTER_0, + pub AsUINT64: u64, +} +impl ::core::marker::Copy for WHV_X64_INTERRUPT_STATE_REGISTER {} +impl ::core::clone::Clone for WHV_X64_INTERRUPT_STATE_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_INTERRUPT_STATE_REGISTER_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_X64_INTERRUPT_STATE_REGISTER_0 {} +impl ::core::clone::Clone for WHV_X64_INTERRUPT_STATE_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_IO_PORT_ACCESS_CONTEXT { + pub InstructionByteCount: u8, + pub Reserved: [u8; 3], + pub InstructionBytes: [u8; 16], + pub AccessInfo: WHV_X64_IO_PORT_ACCESS_INFO, + pub PortNumber: u16, + pub Reserved2: [u16; 3], + pub Rax: u64, + pub Rcx: u64, + pub Rsi: u64, + pub Rdi: u64, + pub Ds: WHV_X64_SEGMENT_REGISTER, + pub Es: WHV_X64_SEGMENT_REGISTER, +} +impl ::core::marker::Copy for WHV_X64_IO_PORT_ACCESS_CONTEXT {} +impl ::core::clone::Clone for WHV_X64_IO_PORT_ACCESS_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_IO_PORT_ACCESS_INFO { + pub Anonymous: WHV_X64_IO_PORT_ACCESS_INFO_0, + pub AsUINT32: u32, +} +impl ::core::marker::Copy for WHV_X64_IO_PORT_ACCESS_INFO {} +impl ::core::clone::Clone for WHV_X64_IO_PORT_ACCESS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_IO_PORT_ACCESS_INFO_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHV_X64_IO_PORT_ACCESS_INFO_0 {} +impl ::core::clone::Clone for WHV_X64_IO_PORT_ACCESS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_MSR_ACCESS_CONTEXT { + pub AccessInfo: WHV_X64_MSR_ACCESS_INFO, + pub MsrNumber: u32, + pub Rax: u64, + pub Rdx: u64, +} +impl ::core::marker::Copy for WHV_X64_MSR_ACCESS_CONTEXT {} +impl ::core::clone::Clone for WHV_X64_MSR_ACCESS_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_MSR_ACCESS_INFO { + pub Anonymous: WHV_X64_MSR_ACCESS_INFO_0, + pub AsUINT32: u32, +} +impl ::core::marker::Copy for WHV_X64_MSR_ACCESS_INFO {} +impl ::core::clone::Clone for WHV_X64_MSR_ACCESS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_MSR_ACCESS_INFO_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WHV_X64_MSR_ACCESS_INFO_0 {} +impl ::core::clone::Clone for WHV_X64_MSR_ACCESS_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_MSR_EXIT_BITMAP { + pub AsUINT64: u64, + pub Anonymous: WHV_X64_MSR_EXIT_BITMAP_0, +} +impl ::core::marker::Copy for WHV_X64_MSR_EXIT_BITMAP {} +impl ::core::clone::Clone for WHV_X64_MSR_EXIT_BITMAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_MSR_EXIT_BITMAP_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_X64_MSR_EXIT_BITMAP_0 {} +impl ::core::clone::Clone for WHV_X64_MSR_EXIT_BITMAP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_PENDING_DEBUG_EXCEPTION { + pub AsUINT64: u64, + pub Anonymous: WHV_X64_PENDING_DEBUG_EXCEPTION_0, +} +impl ::core::marker::Copy for WHV_X64_PENDING_DEBUG_EXCEPTION {} +impl ::core::clone::Clone for WHV_X64_PENDING_DEBUG_EXCEPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_PENDING_DEBUG_EXCEPTION_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_X64_PENDING_DEBUG_EXCEPTION_0 {} +impl ::core::clone::Clone for WHV_X64_PENDING_DEBUG_EXCEPTION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_PENDING_EXCEPTION_EVENT { + pub Anonymous: WHV_X64_PENDING_EXCEPTION_EVENT_0, + pub AsUINT128: WHV_UINT128, +} +impl ::core::marker::Copy for WHV_X64_PENDING_EXCEPTION_EVENT {} +impl ::core::clone::Clone for WHV_X64_PENDING_EXCEPTION_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_PENDING_EXCEPTION_EVENT_0 { + pub _bitfield: u32, + pub ErrorCode: u32, + pub ExceptionParameter: u64, +} +impl ::core::marker::Copy for WHV_X64_PENDING_EXCEPTION_EVENT_0 {} +impl ::core::clone::Clone for WHV_X64_PENDING_EXCEPTION_EVENT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_PENDING_EXT_INT_EVENT { + pub Anonymous: WHV_X64_PENDING_EXT_INT_EVENT_0, + pub AsUINT128: WHV_UINT128, +} +impl ::core::marker::Copy for WHV_X64_PENDING_EXT_INT_EVENT {} +impl ::core::clone::Clone for WHV_X64_PENDING_EXT_INT_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_PENDING_EXT_INT_EVENT_0 { + pub _bitfield: u64, + pub Reserved2: u64, +} +impl ::core::marker::Copy for WHV_X64_PENDING_EXT_INT_EVENT_0 {} +impl ::core::clone::Clone for WHV_X64_PENDING_EXT_INT_EVENT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_PENDING_INTERRUPTION_REGISTER { + pub Anonymous: WHV_X64_PENDING_INTERRUPTION_REGISTER_0, + pub AsUINT64: u64, +} +impl ::core::marker::Copy for WHV_X64_PENDING_INTERRUPTION_REGISTER {} +impl ::core::clone::Clone for WHV_X64_PENDING_INTERRUPTION_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_PENDING_INTERRUPTION_REGISTER_0 { + pub _bitfield: u32, + pub ErrorCode: u32, +} +impl ::core::marker::Copy for WHV_X64_PENDING_INTERRUPTION_REGISTER_0 {} +impl ::core::clone::Clone for WHV_X64_PENDING_INTERRUPTION_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_RDTSC_CONTEXT { + pub TscAux: u64, + pub VirtualOffset: u64, + pub Tsc: u64, + pub ReferenceTime: u64, + pub RdtscInfo: WHV_X64_RDTSC_INFO, +} +impl ::core::marker::Copy for WHV_X64_RDTSC_CONTEXT {} +impl ::core::clone::Clone for WHV_X64_RDTSC_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_RDTSC_INFO { + pub Anonymous: WHV_X64_RDTSC_INFO_0, + pub AsUINT64: u64, +} +impl ::core::marker::Copy for WHV_X64_RDTSC_INFO {} +impl ::core::clone::Clone for WHV_X64_RDTSC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_RDTSC_INFO_0 { + pub _bitfield: u64, +} +impl ::core::marker::Copy for WHV_X64_RDTSC_INFO_0 {} +impl ::core::clone::Clone for WHV_X64_RDTSC_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_SEGMENT_REGISTER { + pub Base: u64, + pub Limit: u32, + pub Selector: u16, + pub Anonymous: WHV_X64_SEGMENT_REGISTER_0, +} +impl ::core::marker::Copy for WHV_X64_SEGMENT_REGISTER {} +impl ::core::clone::Clone for WHV_X64_SEGMENT_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_SEGMENT_REGISTER_0 { + pub Anonymous: WHV_X64_SEGMENT_REGISTER_0_0, + pub Attributes: u16, +} +impl ::core::marker::Copy for WHV_X64_SEGMENT_REGISTER_0 {} +impl ::core::clone::Clone for WHV_X64_SEGMENT_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_SEGMENT_REGISTER_0_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for WHV_X64_SEGMENT_REGISTER_0_0 {} +impl ::core::clone::Clone for WHV_X64_SEGMENT_REGISTER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_TABLE_REGISTER { + pub Pad: [u16; 3], + pub Limit: u16, + pub Base: u64, +} +impl ::core::marker::Copy for WHV_X64_TABLE_REGISTER {} +impl ::core::clone::Clone for WHV_X64_TABLE_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_UNSUPPORTED_FEATURE_CONTEXT { + pub FeatureCode: WHV_X64_UNSUPPORTED_FEATURE_CODE, + pub Reserved: u32, + pub FeatureParameter: u64, +} +impl ::core::marker::Copy for WHV_X64_UNSUPPORTED_FEATURE_CONTEXT {} +impl ::core::clone::Clone for WHV_X64_UNSUPPORTED_FEATURE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_VP_EXECUTION_STATE { + pub Anonymous: WHV_X64_VP_EXECUTION_STATE_0, + pub AsUINT16: u16, +} +impl ::core::marker::Copy for WHV_X64_VP_EXECUTION_STATE {} +impl ::core::clone::Clone for WHV_X64_VP_EXECUTION_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_VP_EXECUTION_STATE_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for WHV_X64_VP_EXECUTION_STATE_0 {} +impl ::core::clone::Clone for WHV_X64_VP_EXECUTION_STATE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_XMM_CONTROL_STATUS_REGISTER { + pub Anonymous: WHV_X64_XMM_CONTROL_STATUS_REGISTER_0, + pub AsUINT128: WHV_UINT128, +} +impl ::core::marker::Copy for WHV_X64_XMM_CONTROL_STATUS_REGISTER {} +impl ::core::clone::Clone for WHV_X64_XMM_CONTROL_STATUS_REGISTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_XMM_CONTROL_STATUS_REGISTER_0 { + pub Anonymous: WHV_X64_XMM_CONTROL_STATUS_REGISTER_0_0, + pub XmmStatusControl: u32, + pub XmmStatusControlMask: u32, +} +impl ::core::marker::Copy for WHV_X64_XMM_CONTROL_STATUS_REGISTER_0 {} +impl ::core::clone::Clone for WHV_X64_XMM_CONTROL_STATUS_REGISTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WHV_X64_XMM_CONTROL_STATUS_REGISTER_0_0 { + pub LastFpRdp: u64, + pub Anonymous: WHV_X64_XMM_CONTROL_STATUS_REGISTER_0_0_0, +} +impl ::core::marker::Copy for WHV_X64_XMM_CONTROL_STATUS_REGISTER_0_0 {} +impl ::core::clone::Clone for WHV_X64_XMM_CONTROL_STATUS_REGISTER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WHV_X64_XMM_CONTROL_STATUS_REGISTER_0_0_0 { + pub LastFpDp: u32, + pub LastFpDs: u16, + pub Reserved: u16, +} +impl ::core::marker::Copy for WHV_X64_XMM_CONTROL_STATUS_REGISTER_0_0_0 {} +impl ::core::clone::Clone for WHV_X64_XMM_CONTROL_STATUS_REGISTER_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type FOUND_IMAGE_CALLBACK = ::core::option::Option super::super::Foundation::BOOL>; +pub type GUEST_SYMBOLS_PROVIDER_DEBUG_INFO_CALLBACK = ::core::option::Option ()>; +pub type HDV_PCI_DEVICE_GET_DETAILS = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type HDV_PCI_DEVICE_INITIALIZE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type HDV_PCI_DEVICE_SET_CONFIGURATION = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type HDV_PCI_DEVICE_START = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type HDV_PCI_DEVICE_STOP = ::core::option::Option ()>; +pub type HDV_PCI_DEVICE_TEARDOWN = ::core::option::Option ()>; +pub type HDV_PCI_READ_CONFIG_SPACE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type HDV_PCI_READ_INTERCEPTED_MEMORY = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type HDV_PCI_WRITE_CONFIG_SPACE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type HDV_PCI_WRITE_INTERCEPTED_MEMORY = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WHV_EMULATOR_GET_VIRTUAL_PROCESSOR_REGISTERS_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WHV_EMULATOR_IO_PORT_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WHV_EMULATOR_MEMORY_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WHV_EMULATOR_SET_VIRTUAL_PROCESSOR_REGISTERS_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type WHV_EMULATOR_TRANSLATE_GVA_PAGE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/IO/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/IO/mod.rs new file mode 100644 index 000000000..46fbabd0c --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/IO/mod.rs @@ -0,0 +1,122 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BindIoCompletionCallback(filehandle : super::super::Foundation:: HANDLE, function : LPOVERLAPPED_COMPLETION_ROUTINE, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CancelIo(hfile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CancelIoEx(hfile : super::super::Foundation:: HANDLE, lpoverlapped : *const OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CancelSynchronousIo(hthread : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateIoCompletionPort(filehandle : super::super::Foundation:: HANDLE, existingcompletionport : super::super::Foundation:: HANDLE, completionkey : usize, numberofconcurrentthreads : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeviceIoControl(hdevice : super::super::Foundation:: HANDLE, dwiocontrolcode : u32, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32, lpoverlapped : *mut OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetOverlappedResult(hfile : super::super::Foundation:: HANDLE, lpoverlapped : *const OVERLAPPED, lpnumberofbytestransferred : *mut u32, bwait : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetOverlappedResultEx(hfile : super::super::Foundation:: HANDLE, lpoverlapped : *const OVERLAPPED, lpnumberofbytestransferred : *mut u32, dwmilliseconds : u32, balertable : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetQueuedCompletionStatus(completionport : super::super::Foundation:: HANDLE, lpnumberofbytestransferred : *mut u32, lpcompletionkey : *mut usize, lpoverlapped : *mut *mut OVERLAPPED, dwmilliseconds : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetQueuedCompletionStatusEx(completionport : super::super::Foundation:: HANDLE, lpcompletionportentries : *mut OVERLAPPED_ENTRY, ulcount : u32, ulnumentriesremoved : *mut u32, dwmilliseconds : u32, falertable : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PostQueuedCompletionStatus(completionport : super::super::Foundation:: HANDLE, dwnumberofbytestransferred : u32, dwcompletionkey : usize, lpoverlapped : *const OVERLAPPED) -> super::super::Foundation:: BOOL); +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IO_STATUS_BLOCK { + pub Anonymous: IO_STATUS_BLOCK_0, + pub Information: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IO_STATUS_BLOCK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IO_STATUS_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union IO_STATUS_BLOCK_0 { + pub Status: super::super::Foundation::NTSTATUS, + pub Pointer: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IO_STATUS_BLOCK_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IO_STATUS_BLOCK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OVERLAPPED { + pub Internal: usize, + pub InternalHigh: usize, + pub Anonymous: OVERLAPPED_0, + pub hEvent: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OVERLAPPED {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OVERLAPPED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union OVERLAPPED_0 { + pub Anonymous: OVERLAPPED_0_0, + pub Pointer: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OVERLAPPED_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OVERLAPPED_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OVERLAPPED_0_0 { + pub Offset: u32, + pub OffsetHigh: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OVERLAPPED_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OVERLAPPED_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OVERLAPPED_ENTRY { + pub lpCompletionKey: usize, + pub lpOverlapped: *mut OVERLAPPED, + pub Internal: usize, + pub dwNumberOfBytesTransferred: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OVERLAPPED_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OVERLAPPED_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPOVERLAPPED_COMPLETION_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PIO_APC_ROUTINE = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Iis/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Iis/mod.rs new file mode 100644 index 000000000..b435e8f3a --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Iis/mod.rs @@ -0,0 +1,1712 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rpcproxy.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetExtensionVersion(pver : *mut HSE_VERSION_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rpcproxy.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFilterVersion(pver : *mut HTTP_FILTER_VERSION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rpcproxy.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpExtensionProc(pecb : *const EXTENSION_CONTROL_BLOCK) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rpcproxy.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HttpFilterProc(pfc : *mut HTTP_FILTER_CONTEXT, notificationtype : u32, pvnotification : *mut ::core::ffi::c_void) -> u32); +pub type AsyncIFtpAuthenticationProvider = *mut ::core::ffi::c_void; +pub type AsyncIFtpAuthorizationProvider = *mut ::core::ffi::c_void; +pub type AsyncIFtpHomeDirectoryProvider = *mut ::core::ffi::c_void; +pub type AsyncIFtpLogProvider = *mut ::core::ffi::c_void; +pub type AsyncIFtpPostprocessProvider = *mut ::core::ffi::c_void; +pub type AsyncIFtpPreprocessProvider = *mut ::core::ffi::c_void; +pub type AsyncIFtpRoleProvider = *mut ::core::ffi::c_void; +pub type AsyncIMSAdminBaseSinkW = *mut ::core::ffi::c_void; +pub type IADMEXT = *mut ::core::ffi::c_void; +pub type IFtpAuthenticationProvider = *mut ::core::ffi::c_void; +pub type IFtpAuthorizationProvider = *mut ::core::ffi::c_void; +pub type IFtpHomeDirectoryProvider = *mut ::core::ffi::c_void; +pub type IFtpLogProvider = *mut ::core::ffi::c_void; +pub type IFtpPostprocessProvider = *mut ::core::ffi::c_void; +pub type IFtpPreprocessProvider = *mut ::core::ffi::c_void; +pub type IFtpProviderConstruct = *mut ::core::ffi::c_void; +pub type IFtpRoleProvider = *mut ::core::ffi::c_void; +pub type IMSAdminBase2W = *mut ::core::ffi::c_void; +pub type IMSAdminBase3W = *mut ::core::ffi::c_void; +pub type IMSAdminBaseSinkW = *mut ::core::ffi::c_void; +pub type IMSAdminBaseW = *mut ::core::ffi::c_void; +pub type IMSImpExpHelpW = *mut ::core::ffi::c_void; +pub const ADMINDATA_MAX_NAME_LEN: u32 = 256u32; +pub const ALL_METADATA: METADATATYPES = 0i32; +pub const APPCTR_MD_ID_BEGIN_RESERVED: u32 = 57344u32; +pub const APPCTR_MD_ID_END_RESERVED: u32 = 61439u32; +pub const APPSTATUS_NOTDEFINED: u32 = 2u32; +pub const APPSTATUS_RUNNING: u32 = 1u32; +pub const APPSTATUS_STOPPED: u32 = 0u32; +pub const ASP_MD_ID_BEGIN_RESERVED: u32 = 28672u32; +pub const ASP_MD_ID_END_RESERVED: u32 = 29951u32; +pub const ASP_MD_SERVER_BASE: u32 = 7000u32; +pub const ASP_MD_UT_APP: u32 = 101u32; +pub const BINARY_METADATA: METADATATYPES = 3i32; +pub const CLSID_IImgCtx: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f3d6_98b5_11cf_bb82_00aa00bdce0b); +pub const CLSID_IisServiceControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe8fb8621_588f_11d2_9d61_00c04f79c5fe); +pub const CLSID_MSAdminBase_W: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa9e69610_b80d_11d0_b9b9_00a0c922e750); +pub const CLSID_Request: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x920c25d0_25d9_11d0_a55f_00a0c90c2091); +pub const CLSID_Response: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x46e19ba0_25dd_11d0_a55f_00a0c90c2091); +pub const CLSID_ScriptingContext: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd97a6da0_a868_11cf_83ae_11b0c90c2bd8); +pub const CLSID_Server: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa506d160_25e0_11d0_a55f_00a0c90c2091); +pub const CLSID_Session: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x509f8f20_25de_11d0_a55f_00a0c90c2091); +pub const CLSID_WamAdmin: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x61738644_f196_11d0_9953_00c04fd919c1); +pub const DISPID_HTTPREQUEST_ABORT: u32 = 12u32; +pub const DISPID_HTTPREQUEST_BASE: u32 = 1u32; +pub const DISPID_HTTPREQUEST_GETALLRESPONSEHEADERS: u32 = 4u32; +pub const DISPID_HTTPREQUEST_GETRESPONSEHEADER: u32 = 3u32; +pub const DISPID_HTTPREQUEST_OPEN: u32 = 1u32; +pub const DISPID_HTTPREQUEST_OPTION: u32 = 6u32; +pub const DISPID_HTTPREQUEST_RESPONSEBODY: u32 = 10u32; +pub const DISPID_HTTPREQUEST_RESPONSESTREAM: u32 = 11u32; +pub const DISPID_HTTPREQUEST_RESPONSETEXT: u32 = 9u32; +pub const DISPID_HTTPREQUEST_SEND: u32 = 5u32; +pub const DISPID_HTTPREQUEST_SETAUTOLOGONPOLICY: u32 = 18u32; +pub const DISPID_HTTPREQUEST_SETCLIENTCERTIFICATE: u32 = 17u32; +pub const DISPID_HTTPREQUEST_SETCREDENTIALS: u32 = 14u32; +pub const DISPID_HTTPREQUEST_SETPROXY: u32 = 13u32; +pub const DISPID_HTTPREQUEST_SETREQUESTHEADER: u32 = 2u32; +pub const DISPID_HTTPREQUEST_SETTIMEOUTS: u32 = 16u32; +pub const DISPID_HTTPREQUEST_STATUS: u32 = 7u32; +pub const DISPID_HTTPREQUEST_STATUSTEXT: u32 = 8u32; +pub const DISPID_HTTPREQUEST_WAITFORRESPONSE: u32 = 15u32; +pub const DWN_COLORMODE: u32 = 63u32; +pub const DWN_DOWNLOADONLY: u32 = 64u32; +pub const DWN_FORCEDITHER: u32 = 128u32; +pub const DWN_MIRRORIMAGE: u32 = 512u32; +pub const DWN_RAWIMAGE: u32 = 256u32; +pub const DWORD_METADATA: METADATATYPES = 1i32; +pub const EXPANDSZ_METADATA: METADATATYPES = 4i32; +pub const FP_MD_ID_BEGIN_RESERVED: u32 = 32768u32; +pub const FP_MD_ID_END_RESERVED: u32 = 36863u32; +pub const FTP_ACCESS_NONE: FTP_ACCESS = 0i32; +pub const FTP_ACCESS_READ: FTP_ACCESS = 1i32; +pub const FTP_ACCESS_READ_WRITE: FTP_ACCESS = 3i32; +pub const FTP_ACCESS_WRITE: FTP_ACCESS = 2i32; +pub const FTP_PROCESS_CLOSE_SESSION: FTP_PROCESS_STATUS = 1i32; +pub const FTP_PROCESS_CONTINUE: FTP_PROCESS_STATUS = 0i32; +pub const FTP_PROCESS_REJECT_COMMAND: FTP_PROCESS_STATUS = 3i32; +pub const FTP_PROCESS_TERMINATE_SESSION: FTP_PROCESS_STATUS = 2i32; +pub const FtpProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x70bdc667_33b2_45f0_ac52_c3ca46f7a656); +pub const GUID_IIS_ALL_TRACE_PROVIDERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000000); +pub const GUID_IIS_ASPNET_TRACE_PROVIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaff081fe_0247_4275_9c4e_021f3dc1da35); +pub const GUID_IIS_ASP_TRACE_TRACE_PROVIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x06b94d9a_b15e_456e_a4ef_37c984a2cb4b); +pub const GUID_IIS_ISAPI_TRACE_PROVIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa1c2040e_8840_4c31_ba11_9871031a19ea); +pub const GUID_IIS_WWW_GLOBAL_TRACE_PROVIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd55d3bc9_cba9_44df_827e_132d3a4596c2); +pub const GUID_IIS_WWW_SERVER_TRACE_PROVIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3a2a4e84_4c21_4981_ae10_3fda0d9b0f83); +pub const GUID_IIS_WWW_SERVER_V2_TRACE_PROVIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xde4649c9_15e8_4fea_9d85_1cdda520c334); +pub const HSE_APPEND_LOG_PARAMETER: u32 = 1003u32; +pub const HSE_APP_FLAG_IN_PROCESS: u32 = 0u32; +pub const HSE_APP_FLAG_ISOLATED_OOP: u32 = 1u32; +pub const HSE_APP_FLAG_POOLED_OOP: u32 = 2u32; +pub const HSE_EXEC_URL_DISABLE_CUSTOM_ERROR: u32 = 32u32; +pub const HSE_EXEC_URL_HTTP_CACHE_ELIGIBLE: u32 = 128u32; +pub const HSE_EXEC_URL_IGNORE_CURRENT_INTERCEPTOR: u32 = 4u32; +pub const HSE_EXEC_URL_IGNORE_VALIDATION_AND_RANGE: u32 = 16u32; +pub const HSE_EXEC_URL_NO_HEADERS: u32 = 2u32; +pub const HSE_EXEC_URL_SSI_CMD: u32 = 64u32; +pub const HSE_IO_ASYNC: u32 = 2u32; +pub const HSE_IO_CACHE_RESPONSE: u32 = 32u32; +pub const HSE_IO_DISCONNECT_AFTER_SEND: u32 = 4u32; +pub const HSE_IO_FINAL_SEND: u32 = 16u32; +pub const HSE_IO_NODELAY: u32 = 4096u32; +pub const HSE_IO_SEND_HEADERS: u32 = 8u32; +pub const HSE_IO_SYNC: u32 = 1u32; +pub const HSE_IO_TRY_SKIP_CUSTOM_ERRORS: u32 = 64u32; +pub const HSE_LOG_BUFFER_LEN: u32 = 80u32; +pub const HSE_MAX_EXT_DLL_NAME_LEN: u32 = 256u32; +pub const HSE_REQ_ABORTIVE_CLOSE: u32 = 1014u32; +pub const HSE_REQ_ASYNC_READ_CLIENT: u32 = 1010u32; +pub const HSE_REQ_BASE: u32 = 0u32; +pub const HSE_REQ_CANCEL_IO: u32 = 1049u32; +pub const HSE_REQ_CLOSE_CONNECTION: u32 = 1017u32; +pub const HSE_REQ_DONE_WITH_SESSION: u32 = 4u32; +pub const HSE_REQ_END_RESERVED: u32 = 1000u32; +pub const HSE_REQ_EXEC_UNICODE_URL: u32 = 1025u32; +pub const HSE_REQ_EXEC_URL: u32 = 1026u32; +pub const HSE_REQ_GET_ANONYMOUS_TOKEN: u32 = 1038u32; +pub const HSE_REQ_GET_CACHE_INVALIDATION_CALLBACK: u32 = 1040u32; +pub const HSE_REQ_GET_CERT_INFO_EX: u32 = 1015u32; +pub const HSE_REQ_GET_CHANNEL_BINDING_TOKEN: u32 = 1050u32; +pub const HSE_REQ_GET_CONFIG_OBJECT: u32 = 1046u32; +pub const HSE_REQ_GET_EXEC_URL_STATUS: u32 = 1027u32; +pub const HSE_REQ_GET_IMPERSONATION_TOKEN: u32 = 1011u32; +pub const HSE_REQ_GET_PROTOCOL_MANAGER_CUSTOM_INTERFACE_CALLBACK: u32 = 1048u32; +pub const HSE_REQ_GET_SSPI_INFO: u32 = 1002u32; +pub const HSE_REQ_GET_TRACE_INFO: u32 = 1042u32; +pub const HSE_REQ_GET_TRACE_INFO_EX: u32 = 1044u32; +pub const HSE_REQ_GET_UNICODE_ANONYMOUS_TOKEN: u32 = 1041u32; +pub const HSE_REQ_GET_WORKER_PROCESS_SETTINGS: u32 = 1047u32; +pub const HSE_REQ_IO_COMPLETION: u32 = 1005u32; +pub const HSE_REQ_IS_CONNECTED: u32 = 1018u32; +pub const HSE_REQ_IS_IN_PROCESS: u32 = 1030u32; +pub const HSE_REQ_IS_KEEP_CONN: u32 = 1008u32; +pub const HSE_REQ_MAP_UNICODE_URL_TO_PATH: u32 = 1023u32; +pub const HSE_REQ_MAP_UNICODE_URL_TO_PATH_EX: u32 = 1024u32; +pub const HSE_REQ_MAP_URL_TO_PATH: u32 = 1001u32; +pub const HSE_REQ_MAP_URL_TO_PATH_EX: u32 = 1012u32; +pub const HSE_REQ_NORMALIZE_URL: u32 = 1033u32; +pub const HSE_REQ_RAISE_TRACE_EVENT: u32 = 1045u32; +pub const HSE_REQ_REFRESH_ISAPI_ACL: u32 = 1007u32; +pub const HSE_REQ_REPORT_UNHEALTHY: u32 = 1032u32; +pub const HSE_REQ_SEND_CUSTOM_ERROR: u32 = 1028u32; +pub const HSE_REQ_SEND_RESPONSE_HEADER: u32 = 3u32; +pub const HSE_REQ_SEND_RESPONSE_HEADER_EX: u32 = 1016u32; +pub const HSE_REQ_SEND_URL: u32 = 2u32; +pub const HSE_REQ_SEND_URL_REDIRECT_RESP: u32 = 1u32; +pub const HSE_REQ_SET_FLUSH_FLAG: u32 = 1043u32; +pub const HSE_REQ_TRANSMIT_FILE: u32 = 1006u32; +pub const HSE_REQ_VECTOR_SEND: u32 = 1037u32; +pub const HSE_STATUS_ERROR: u32 = 4u32; +pub const HSE_STATUS_PENDING: u32 = 3u32; +pub const HSE_STATUS_SUCCESS: u32 = 1u32; +pub const HSE_STATUS_SUCCESS_AND_KEEP_CONN: u32 = 2u32; +pub const HSE_TERM_ADVISORY_UNLOAD: u32 = 1u32; +pub const HSE_TERM_MUST_UNLOAD: u32 = 2u32; +pub const HSE_URL_FLAGS_DONT_CACHE: u32 = 16u32; +pub const HSE_URL_FLAGS_EXECUTE: u32 = 4u32; +pub const HSE_URL_FLAGS_MAP_CERT: u32 = 128u32; +pub const HSE_URL_FLAGS_MASK: u32 = 1023u32; +pub const HSE_URL_FLAGS_NEGO_CERT: u32 = 32u32; +pub const HSE_URL_FLAGS_READ: u32 = 1u32; +pub const HSE_URL_FLAGS_REQUIRE_CERT: u32 = 64u32; +pub const HSE_URL_FLAGS_SCRIPT: u32 = 512u32; +pub const HSE_URL_FLAGS_SSL: u32 = 8u32; +pub const HSE_URL_FLAGS_SSL128: u32 = 256u32; +pub const HSE_URL_FLAGS_WRITE: u32 = 2u32; +pub const HSE_VECTOR_ELEMENT_TYPE_FILE_HANDLE: u32 = 1u32; +pub const HSE_VECTOR_ELEMENT_TYPE_MEMORY_BUFFER: u32 = 0u32; +pub const HSE_VERSION_MAJOR: u32 = 8u32; +pub const HSE_VERSION_MINOR: u32 = 0u32; +pub const HTTP_TRACE_EVENT_FLAG_STATIC_DESCRIPTIVE_FIELDS: u32 = 1u32; +pub const HTTP_TRACE_LEVEL_END: u32 = 7u32; +pub const HTTP_TRACE_LEVEL_START: u32 = 6u32; +pub const HTTP_TRACE_TYPE_BOOL: HTTP_TRACE_TYPE = 11i32; +pub const HTTP_TRACE_TYPE_BYTE: HTTP_TRACE_TYPE = 17i32; +pub const HTTP_TRACE_TYPE_CHAR: HTTP_TRACE_TYPE = 16i32; +pub const HTTP_TRACE_TYPE_LONG: HTTP_TRACE_TYPE = 3i32; +pub const HTTP_TRACE_TYPE_LONGLONG: HTTP_TRACE_TYPE = 20i32; +pub const HTTP_TRACE_TYPE_LPCGUID: HTTP_TRACE_TYPE = 72i32; +pub const HTTP_TRACE_TYPE_LPCSTR: HTTP_TRACE_TYPE = 30i32; +pub const HTTP_TRACE_TYPE_LPCWSTR: HTTP_TRACE_TYPE = 31i32; +pub const HTTP_TRACE_TYPE_SHORT: HTTP_TRACE_TYPE = 2i32; +pub const HTTP_TRACE_TYPE_ULONG: HTTP_TRACE_TYPE = 19i32; +pub const HTTP_TRACE_TYPE_ULONGLONG: HTTP_TRACE_TYPE = 21i32; +pub const HTTP_TRACE_TYPE_USHORT: HTTP_TRACE_TYPE = 18i32; +pub const IISADMIN_EXTENSIONS_CLSID_MD_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LM/IISADMIN/EXTENSIONS/DCOMCLSIDS"); +pub const IISADMIN_EXTENSIONS_CLSID_MD_KEYA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("LM/IISADMIN/EXTENSIONS/DCOMCLSIDS"); +pub const IISADMIN_EXTENSIONS_CLSID_MD_KEYW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LM/IISADMIN/EXTENSIONS/DCOMCLSIDS"); +pub const IISADMIN_EXTENSIONS_REG_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SOFTWARE\\Microsoft\\InetStp\\Extensions"); +pub const IISADMIN_EXTENSIONS_REG_KEYA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SOFTWARE\\Microsoft\\InetStp\\Extensions"); +pub const IISADMIN_EXTENSIONS_REG_KEYW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SOFTWARE\\Microsoft\\InetStp\\Extensions"); +pub const IIS_CLASS_CERTMAPPER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsCertMapper"); +pub const IIS_CLASS_CERTMAPPER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsCertMapper"); +pub const IIS_CLASS_COMPRESS_SCHEME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsCompressionScheme"); +pub const IIS_CLASS_COMPRESS_SCHEMES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsCompressionSchemes"); +pub const IIS_CLASS_COMPRESS_SCHEMES_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsCompressionSchemes"); +pub const IIS_CLASS_COMPRESS_SCHEME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsCompressionScheme"); +pub const IIS_CLASS_COMPUTER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsComputer"); +pub const IIS_CLASS_COMPUTER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsComputer"); +pub const IIS_CLASS_FILTER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsFilter"); +pub const IIS_CLASS_FILTERS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsFilters"); +pub const IIS_CLASS_FILTERS_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsFilters"); +pub const IIS_CLASS_FILTER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsFilter"); +pub const IIS_CLASS_FTP_INFO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsFtpInfo"); +pub const IIS_CLASS_FTP_INFO_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsFtpInfo"); +pub const IIS_CLASS_FTP_SERVER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsFtpServer"); +pub const IIS_CLASS_FTP_SERVER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsFtpServer"); +pub const IIS_CLASS_FTP_SERVICE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsFtpService"); +pub const IIS_CLASS_FTP_SERVICE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsFtpService"); +pub const IIS_CLASS_FTP_VDIR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsFtpVirtualDir"); +pub const IIS_CLASS_FTP_VDIR_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsFtpVirtualDir"); +pub const IIS_CLASS_LOG_MODULE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsLogModule"); +pub const IIS_CLASS_LOG_MODULES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsLogModules"); +pub const IIS_CLASS_LOG_MODULES_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsLogModules"); +pub const IIS_CLASS_LOG_MODULE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsLogModule"); +pub const IIS_CLASS_MIMEMAP: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsMimeMap"); +pub const IIS_CLASS_MIMEMAP_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsMimeMap"); +pub const IIS_CLASS_WEB_DIR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsWebDirectory"); +pub const IIS_CLASS_WEB_DIR_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsWebDirectory"); +pub const IIS_CLASS_WEB_FILE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsWebFile"); +pub const IIS_CLASS_WEB_FILE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsWebFile"); +pub const IIS_CLASS_WEB_INFO: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsWebInfo"); +pub const IIS_CLASS_WEB_INFO_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsWebInfo"); +pub const IIS_CLASS_WEB_SERVER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsWebServer"); +pub const IIS_CLASS_WEB_SERVER_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsWebServer"); +pub const IIS_CLASS_WEB_SERVICE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsWebService"); +pub const IIS_CLASS_WEB_SERVICE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsWebService"); +pub const IIS_CLASS_WEB_VDIR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIsWebVirtualDir"); +pub const IIS_CLASS_WEB_VDIR_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IIsWebVirtualDir"); +pub const IIS_MD_ADSI_METAID_BEGIN: u32 = 130000u32; +pub const IIS_MD_ADSI_SCHEMA_PATH_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("/Schema"); +pub const IIS_MD_ADSI_SCHEMA_PATH_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("/Schema"); +pub const IIS_MD_APPPOOL_BASE: u32 = 9000u32; +pub const IIS_MD_APP_BASE: u32 = 9100u32; +pub const IIS_MD_FILE_PROP_BASE: u32 = 6000u32; +pub const IIS_MD_FTP_BASE: u32 = 5000u32; +pub const IIS_MD_GLOBAL_BASE: u32 = 9200u32; +pub const IIS_MD_HTTP_BASE: u32 = 2000u32; +pub const IIS_MD_ID_BEGIN_RESERVED: u32 = 1u32; +pub const IIS_MD_ID_END_RESERVED: u32 = 32767u32; +pub const IIS_MD_INSTANCE_ROOT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Root"); +pub const IIS_MD_ISAPI_FILTERS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("/Filters"); +pub const IIS_MD_LOCAL_MACHINE_PATH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("LM"); +pub const IIS_MD_LOGCUSTOM_BASE: u32 = 4500u32; +pub const IIS_MD_LOGCUSTOM_LAST: u32 = 4508u32; +pub const IIS_MD_LOG_BASE: u32 = 4000u32; +pub const IIS_MD_LOG_LAST: u32 = 4015u32; +pub const IIS_MD_SERVER_BASE: u32 = 1000u32; +pub const IIS_MD_SSL_BASE: u32 = 5500u32; +pub const IIS_MD_SVC_INFO_PATH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Info"); +pub const IIS_MD_UT_END_RESERVED: u32 = 2000u32; +pub const IIS_MD_UT_FILE: u32 = 2u32; +pub const IIS_MD_UT_SERVER: u32 = 1u32; +pub const IIS_MD_UT_WAM: u32 = 100u32; +pub const IIS_MD_VR_BASE: u32 = 3000u32; +pub const IIS_WEBSOCKET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("websockets"); +pub const IIS_WEBSOCKET_SERVER_VARIABLE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IIS_WEBSOCK"); +pub const IMAP_MD_ID_BEGIN_RESERVED: u32 = 49152u32; +pub const IMAP_MD_ID_END_RESERVED: u32 = 53247u32; +pub const IMGANIM_ANIMATED: u32 = 268435456u32; +pub const IMGANIM_MASK: u32 = 268435456u32; +pub const IMGBITS_MASK: u32 = 234881024u32; +pub const IMGBITS_NONE: u32 = 33554432u32; +pub const IMGBITS_PARTIAL: u32 = 67108864u32; +pub const IMGBITS_TOTAL: u32 = 134217728u32; +pub const IMGCHG_ANIMATE: u32 = 8u32; +pub const IMGCHG_COMPLETE: u32 = 4u32; +pub const IMGCHG_MASK: u32 = 15u32; +pub const IMGCHG_SIZE: u32 = 1u32; +pub const IMGCHG_VIEW: u32 = 2u32; +pub const IMGLOAD_COMPLETE: u32 = 16777216u32; +pub const IMGLOAD_ERROR: u32 = 8388608u32; +pub const IMGLOAD_LOADING: u32 = 2097152u32; +pub const IMGLOAD_MASK: u32 = 32505856u32; +pub const IMGLOAD_NOTLOADED: u32 = 1048576u32; +pub const IMGLOAD_STOPPED: u32 = 4194304u32; +pub const IMGTRANS_MASK: u32 = 536870912u32; +pub const IMGTRANS_OPAQUE: u32 = 536870912u32; +pub const INVALID_END_METADATA: METADATATYPES = 6i32; +pub const LIBID_ASPTypeLibrary: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd97a6da0_a85c_11cf_83ae_00a0c90c2bd8); +pub const LIBID_IISRSTALib: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe8fb8614_588f_11d2_9d61_00c04f79c5fe); +pub const LIBID_WAMREGLib: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x29822aa8_f302_11d0_9953_00c04fd919c1); +pub const MB_DONT_IMPERSONATE: u32 = 9033u32; +pub const MD_ACCESS_EXECUTE: u32 = 4u32; +pub const MD_ACCESS_MAP_CERT: u32 = 128u32; +pub const MD_ACCESS_MASK: u32 = 65535u32; +pub const MD_ACCESS_NEGO_CERT: u32 = 32u32; +pub const MD_ACCESS_NO_PHYSICAL_DIR: u32 = 32768u32; +pub const MD_ACCESS_NO_REMOTE_EXECUTE: u32 = 8192u32; +pub const MD_ACCESS_NO_REMOTE_READ: u32 = 4096u32; +pub const MD_ACCESS_NO_REMOTE_SCRIPT: u32 = 16384u32; +pub const MD_ACCESS_NO_REMOTE_WRITE: u32 = 1024u32; +pub const MD_ACCESS_PERM: u32 = 6016u32; +pub const MD_ACCESS_READ: u32 = 1u32; +pub const MD_ACCESS_REQUIRE_CERT: u32 = 64u32; +pub const MD_ACCESS_SCRIPT: u32 = 512u32; +pub const MD_ACCESS_SOURCE: u32 = 16u32; +pub const MD_ACCESS_SSL: u32 = 8u32; +pub const MD_ACCESS_SSL128: u32 = 256u32; +pub const MD_ACCESS_WRITE: u32 = 2u32; +pub const MD_ACR_ENUM_KEYS: u32 = 8u32; +pub const MD_ACR_READ: u32 = 1u32; +pub const MD_ACR_RESTRICTED_WRITE: u32 = 32u32; +pub const MD_ACR_UNSECURE_PROPS_READ: u32 = 128u32; +pub const MD_ACR_WRITE: u32 = 2u32; +pub const MD_ACR_WRITE_DAC: u32 = 262144u32; +pub const MD_ADMIN_ACL: u32 = 6027u32; +pub const MD_ADMIN_INSTANCE: u32 = 2115u32; +pub const MD_ADV_CACHE_TTL: u32 = 2064u32; +pub const MD_ADV_NOTIFY_PWD_EXP_IN_DAYS: u32 = 2063u32; +pub const MD_AD_CONNECTIONS_PASSWORD: u32 = 5015u32; +pub const MD_AD_CONNECTIONS_USERNAME: u32 = 5014u32; +pub const MD_ALLOW_ANONYMOUS: u32 = 5005u32; +pub const MD_ALLOW_KEEPALIVES: u32 = 6038u32; +pub const MD_ALLOW_PATH_INFO_FOR_SCRIPT_MAPPINGS: u32 = 2095u32; +pub const MD_ALLOW_REPLACE_ON_RENAME: u32 = 5009u32; +pub const MD_ANONYMOUS_ONLY: u32 = 5006u32; +pub const MD_ANONYMOUS_PWD: u32 = 6021u32; +pub const MD_ANONYMOUS_USER_NAME: u32 = 6020u32; +pub const MD_ANONYMOUS_USE_SUBAUTH: u32 = 6022u32; +pub const MD_APPPOOL_32_BIT_APP_ON_WIN64: u32 = 9040u32; +pub const MD_APPPOOL_ALLOW_TRANSIENT_REGISTRATION: u32 = 9202u32; +pub const MD_APPPOOL_APPPOOL_ID: u32 = 9201u32; +pub const MD_APPPOOL_AUTO_SHUTDOWN_EXE: u32 = 9035u32; +pub const MD_APPPOOL_AUTO_SHUTDOWN_PARAMS: u32 = 9036u32; +pub const MD_APPPOOL_AUTO_START: u32 = 9028u32; +pub const MD_APPPOOL_COMMAND: u32 = 9026u32; +pub const MD_APPPOOL_COMMAND_START: u32 = 1u32; +pub const MD_APPPOOL_COMMAND_STOP: u32 = 2u32; +pub const MD_APPPOOL_DISALLOW_OVERLAPPING_ROTATION: u32 = 9015u32; +pub const MD_APPPOOL_DISALLOW_ROTATION_ON_CONFIG_CHANGE: u32 = 9018u32; +pub const MD_APPPOOL_EMULATION_ON_WINARM64: u32 = 9043u32; +pub const MD_APPPOOL_IDENTITY_TYPE: u32 = 9021u32; +pub const MD_APPPOOL_IDENTITY_TYPE_LOCALSERVICE: u32 = 1u32; +pub const MD_APPPOOL_IDENTITY_TYPE_LOCALSYSTEM: u32 = 0u32; +pub const MD_APPPOOL_IDENTITY_TYPE_NETWORKSERVICE: u32 = 2u32; +pub const MD_APPPOOL_IDENTITY_TYPE_SPECIFICUSER: u32 = 3u32; +pub const MD_APPPOOL_IDLE_TIMEOUT: u32 = 9005u32; +pub const MD_APPPOOL_MANAGED_PIPELINE_MODE: u32 = 9041u32; +pub const MD_APPPOOL_MANAGED_RUNTIME_VERSION: u32 = 9039u32; +pub const MD_APPPOOL_MAX_PROCESS_COUNT: u32 = 9003u32; +pub const MD_APPPOOL_ORPHAN_ACTION_EXE: u32 = 9031u32; +pub const MD_APPPOOL_ORPHAN_ACTION_PARAMS: u32 = 9032u32; +pub const MD_APPPOOL_ORPHAN_PROCESSES_FOR_DEBUGGING: u32 = 9009u32; +pub const MD_APPPOOL_PERIODIC_RESTART_CONNECTIONS: u32 = 9104u32; +pub const MD_APPPOOL_PERIODIC_RESTART_MEMORY: u32 = 9024u32; +pub const MD_APPPOOL_PERIODIC_RESTART_PRIVATE_MEMORY: u32 = 9038u32; +pub const MD_APPPOOL_PERIODIC_RESTART_REQUEST_COUNT: u32 = 9002u32; +pub const MD_APPPOOL_PERIODIC_RESTART_SCHEDULE: u32 = 9020u32; +pub const MD_APPPOOL_PERIODIC_RESTART_TIME: u32 = 9001u32; +pub const MD_APPPOOL_PINGING_ENABLED: u32 = 9004u32; +pub const MD_APPPOOL_PING_INTERVAL: u32 = 9013u32; +pub const MD_APPPOOL_PING_RESPONSE_TIMELIMIT: u32 = 9014u32; +pub const MD_APPPOOL_RAPID_FAIL_PROTECTION_ENABLED: u32 = 9006u32; +pub const MD_APPPOOL_SHUTDOWN_TIMELIMIT: u32 = 9012u32; +pub const MD_APPPOOL_SMP_AFFINITIZED: u32 = 9007u32; +pub const MD_APPPOOL_SMP_AFFINITIZED_PROCESSOR_MASK: u32 = 9008u32; +pub const MD_APPPOOL_STARTUP_TIMELIMIT: u32 = 9011u32; +pub const MD_APPPOOL_STATE: u32 = 9027u32; +pub const MD_APPPOOL_STATE_STARTED: u32 = 2u32; +pub const MD_APPPOOL_STATE_STARTING: u32 = 1u32; +pub const MD_APPPOOL_STATE_STOPPED: u32 = 4u32; +pub const MD_APPPOOL_STATE_STOPPING: u32 = 3u32; +pub const MD_APPPOOL_UL_APPPOOL_QUEUE_LENGTH: u32 = 9017u32; +pub const MD_APP_ALLOW_TRANSIENT_REGISTRATION: u32 = 9102u32; +pub const MD_APP_APPPOOL_ID: u32 = 9101u32; +pub const MD_APP_AUTO_START: u32 = 9103u32; +pub const MD_APP_DEPENDENCIES: u32 = 2167u32; +pub const MD_APP_FRIENDLY_NAME: u32 = 2102u32; +pub const MD_APP_ISOLATED: u32 = 2104u32; +pub const MD_APP_OOP_RECOVER_LIMIT: u32 = 2110u32; +pub const MD_APP_PACKAGE_ID: u32 = 2106u32; +pub const MD_APP_PACKAGE_NAME: u32 = 2107u32; +pub const MD_APP_PERIODIC_RESTART_REQUESTS: u32 = 2112u32; +pub const MD_APP_PERIODIC_RESTART_SCHEDULE: u32 = 2113u32; +pub const MD_APP_PERIODIC_RESTART_TIME: u32 = 2111u32; +pub const MD_APP_POOL_LOG_EVENT_ON_PROCESSMODEL: u32 = 9042u32; +pub const MD_APP_POOL_LOG_EVENT_ON_RECYCLE: u32 = 9037u32; +pub const MD_APP_POOL_PROCESSMODEL_IDLE_TIMEOUT: u32 = 1u32; +pub const MD_APP_POOL_RECYCLE_CONFIG_CHANGE: u32 = 64u32; +pub const MD_APP_POOL_RECYCLE_ISAPI_UNHEALTHY: u32 = 16u32; +pub const MD_APP_POOL_RECYCLE_MEMORY: u32 = 8u32; +pub const MD_APP_POOL_RECYCLE_ON_DEMAND: u32 = 32u32; +pub const MD_APP_POOL_RECYCLE_PRIVATE_MEMORY: u32 = 128u32; +pub const MD_APP_POOL_RECYCLE_REQUESTS: u32 = 2u32; +pub const MD_APP_POOL_RECYCLE_SCHEDULE: u32 = 4u32; +pub const MD_APP_POOL_RECYCLE_TIME: u32 = 1u32; +pub const MD_APP_ROOT: u32 = 2103u32; +pub const MD_APP_SHUTDOWN_TIME_LIMIT: u32 = 2114u32; +pub const MD_APP_TRACE_URL_LIST: u32 = 2118u32; +pub const MD_APP_WAM_CLSID: u32 = 2105u32; +pub const MD_ASP_ALLOWOUTOFPROCCMPNTS: u32 = 7014u32; +pub const MD_ASP_ALLOWOUTOFPROCCOMPONENTS: u32 = 7014u32; +pub const MD_ASP_ALLOWSESSIONSTATE: u32 = 7011u32; +pub const MD_ASP_BUFFERINGON: u32 = 7000u32; +pub const MD_ASP_BUFFER_LIMIT: u32 = 7052u32; +pub const MD_ASP_CALCLINENUMBER: u32 = 7050u32; +pub const MD_ASP_CODEPAGE: u32 = 7016u32; +pub const MD_ASP_DISKTEMPLATECACHEDIRECTORY: u32 = 7036u32; +pub const MD_ASP_ENABLEAPPLICATIONRESTART: u32 = 7027u32; +pub const MD_ASP_ENABLEASPHTMLFALLBACK: u32 = 7021u32; +pub const MD_ASP_ENABLECHUNKEDENCODING: u32 = 7022u32; +pub const MD_ASP_ENABLECLIENTDEBUG: u32 = 7019u32; +pub const MD_ASP_ENABLEPARENTPATHS: u32 = 7008u32; +pub const MD_ASP_ENABLESERVERDEBUG: u32 = 7018u32; +pub const MD_ASP_ENABLETYPELIBCACHE: u32 = 7023u32; +pub const MD_ASP_ERRORSTONTLOG: u32 = 7024u32; +pub const MD_ASP_EXCEPTIONCATCHENABLE: u32 = 7015u32; +pub const MD_ASP_EXECUTEINMTA: u32 = 7041u32; +pub const MD_ASP_ID_LAST: u32 = 7053u32; +pub const MD_ASP_KEEPSESSIONIDSECURE: u32 = 7043u32; +pub const MD_ASP_LCID: u32 = 7042u32; +pub const MD_ASP_LOGERRORREQUESTS: u32 = 7001u32; +pub const MD_ASP_MAXDISKTEMPLATECACHEFILES: u32 = 7040u32; +pub const MD_ASP_MAXREQUESTENTITY: u32 = 7053u32; +pub const MD_ASP_MAX_REQUEST_ENTITY_ALLOWED: u32 = 7053u32; +pub const MD_ASP_MEMFREEFACTOR: u32 = 7009u32; +pub const MD_ASP_MINUSEDBLOCKS: u32 = 7010u32; +pub const MD_ASP_PROCESSORTHREADMAX: u32 = 7025u32; +pub const MD_ASP_QUEUECONNECTIONTESTTIME: u32 = 7028u32; +pub const MD_ASP_QUEUETIMEOUT: u32 = 7013u32; +pub const MD_ASP_REQEUSTQUEUEMAX: u32 = 7026u32; +pub const MD_ASP_RUN_ONEND_ANON: u32 = 7051u32; +pub const MD_ASP_SCRIPTENGINECACHEMAX: u32 = 7005u32; +pub const MD_ASP_SCRIPTERRORMESSAGE: u32 = 7003u32; +pub const MD_ASP_SCRIPTERRORSSENTTOBROWSER: u32 = 7002u32; +pub const MD_ASP_SCRIPTFILECACHESIZE: u32 = 7004u32; +pub const MD_ASP_SCRIPTLANGUAGE: u32 = 7012u32; +pub const MD_ASP_SCRIPTLANGUAGELIST: u32 = 7017u32; +pub const MD_ASP_SCRIPTTIMEOUT: u32 = 7006u32; +pub const MD_ASP_SERVICE_ENABLE_SXS: u32 = 2u32; +pub const MD_ASP_SERVICE_ENABLE_TRACKER: u32 = 1u32; +pub const MD_ASP_SERVICE_FLAGS: u32 = 7044u32; +pub const MD_ASP_SERVICE_FLAG_FUSION: u32 = 7046u32; +pub const MD_ASP_SERVICE_FLAG_PARTITIONS: u32 = 7047u32; +pub const MD_ASP_SERVICE_FLAG_TRACKER: u32 = 7045u32; +pub const MD_ASP_SERVICE_PARTITION_ID: u32 = 7048u32; +pub const MD_ASP_SERVICE_SXS_NAME: u32 = 7049u32; +pub const MD_ASP_SERVICE_USE_PARTITION: u32 = 4u32; +pub const MD_ASP_SESSIONMAX: u32 = 7029u32; +pub const MD_ASP_SESSIONTIMEOUT: u32 = 7007u32; +pub const MD_ASP_THREADGATEENABLED: u32 = 7030u32; +pub const MD_ASP_THREADGATELOADHIGH: u32 = 7035u32; +pub const MD_ASP_THREADGATELOADLOW: u32 = 7034u32; +pub const MD_ASP_THREADGATESLEEPDELAY: u32 = 7032u32; +pub const MD_ASP_THREADGATESLEEPMAX: u32 = 7033u32; +pub const MD_ASP_THREADGATETIMESLICE: u32 = 7031u32; +pub const MD_ASP_TRACKTHREADINGMODEL: u32 = 7020u32; +pub const MD_AUTHORIZATION: u32 = 6000u32; +pub const MD_AUTHORIZATION_PERSISTENCE: u32 = 6031u32; +pub const MD_AUTH_ADVNOTIFY_DISABLE: u32 = 4u32; +pub const MD_AUTH_ANONYMOUS: u32 = 1u32; +pub const MD_AUTH_BASIC: u32 = 2u32; +pub const MD_AUTH_CHANGE_DISABLE: u32 = 2u32; +pub const MD_AUTH_CHANGE_FLAGS: u32 = 2068u32; +pub const MD_AUTH_CHANGE_UNSECURE: u32 = 1u32; +pub const MD_AUTH_CHANGE_URL: u32 = 2060u32; +pub const MD_AUTH_EXPIRED_UNSECUREURL: u32 = 2067u32; +pub const MD_AUTH_EXPIRED_URL: u32 = 2061u32; +pub const MD_AUTH_MD5: u32 = 16u32; +pub const MD_AUTH_NT: u32 = 4u32; +pub const MD_AUTH_PASSPORT: u32 = 64u32; +pub const MD_AUTH_SINGLEREQUEST: u32 = 64u32; +pub const MD_AUTH_SINGLEREQUESTALWAYSIFPROXY: u32 = 256u32; +pub const MD_AUTH_SINGLEREQUESTIFPROXY: u32 = 128u32; +pub const MD_BACKUP_FORCE_BACKUP: u32 = 4u32; +pub const MD_BACKUP_HIGHEST_VERSION: u32 = 4294967294u32; +pub const MD_BACKUP_MAX_LEN: u32 = 100u32; +pub const MD_BACKUP_MAX_VERSION: u32 = 9999u32; +pub const MD_BACKUP_NEXT_VERSION: u32 = 4294967295u32; +pub const MD_BACKUP_OVERWRITE: u32 = 1u32; +pub const MD_BACKUP_SAVE_FIRST: u32 = 2u32; +pub const MD_BANNER_MESSAGE: u32 = 5011u32; +pub const MD_BINDINGS: u32 = 2022u32; +pub const MD_CACHE_EXTENSIONS: u32 = 6034u32; +pub const MD_CAL_AUTH_RESERVE_TIMEOUT: u32 = 2131u32; +pub const MD_CAL_SSL_RESERVE_TIMEOUT: u32 = 2132u32; +pub const MD_CAL_VC_PER_CONNECT: u32 = 2130u32; +pub const MD_CAL_W3_ERROR: u32 = 2133u32; +pub const MD_CC_MAX_AGE: u32 = 6042u32; +pub const MD_CC_NO_CACHE: u32 = 6041u32; +pub const MD_CC_OTHER: u32 = 6043u32; +pub const MD_CENTRAL_W3C_LOGGING_ENABLED: u32 = 2119u32; +pub const MD_CERT_CACHE_RETRIEVAL_ONLY: u32 = 2u32; +pub const MD_CERT_CHECK_REVOCATION_FRESHNESS_TIME: u32 = 4u32; +pub const MD_CERT_NO_REVOC_CHECK: u32 = 1u32; +pub const MD_CERT_NO_USAGE_CHECK: u32 = 65536u32; +pub const MD_CGI_RESTRICTION_LIST: u32 = 2164u32; +pub const MD_CHANGE_TYPE_ADD_OBJECT: u32 = 2u32; +pub const MD_CHANGE_TYPE_DELETE_DATA: u32 = 8u32; +pub const MD_CHANGE_TYPE_DELETE_OBJECT: u32 = 1u32; +pub const MD_CHANGE_TYPE_RENAME_OBJECT: u32 = 16u32; +pub const MD_CHANGE_TYPE_RESTORE: u32 = 32u32; +pub const MD_CHANGE_TYPE_SET_DATA: u32 = 4u32; +pub const MD_COMMENTS: u32 = 9990u32; +pub const MD_CONNECTION_TIMEOUT: u32 = 1013u32; +pub const MD_CPU_ACTION: u32 = 9022u32; +pub const MD_CPU_APP_ENABLED: u32 = 2141u32; +pub const MD_CPU_CGI_ENABLED: u32 = 2140u32; +pub const MD_CPU_CGI_LIMIT: u32 = 2148u32; +pub const MD_CPU_DISABLE_ALL_LOGGING: u32 = 0u32; +pub const MD_CPU_ENABLE_ACTIVE_PROCS: u32 = 64u32; +pub const MD_CPU_ENABLE_ALL_PROC_LOGGING: u32 = 1u32; +pub const MD_CPU_ENABLE_APP_LOGGING: u32 = 4u32; +pub const MD_CPU_ENABLE_CGI_LOGGING: u32 = 2u32; +pub const MD_CPU_ENABLE_EVENT: u32 = 1u32; +pub const MD_CPU_ENABLE_KERNEL_TIME: u32 = 8u32; +pub const MD_CPU_ENABLE_LOGGING: u32 = 2147483648u32; +pub const MD_CPU_ENABLE_PAGE_FAULTS: u32 = 16u32; +pub const MD_CPU_ENABLE_PROC_TYPE: u32 = 2u32; +pub const MD_CPU_ENABLE_TERMINATED_PROCS: u32 = 128u32; +pub const MD_CPU_ENABLE_TOTAL_PROCS: u32 = 32u32; +pub const MD_CPU_ENABLE_USER_TIME: u32 = 4u32; +pub const MD_CPU_KILL_W3WP: u32 = 1u32; +pub const MD_CPU_LIMIT: u32 = 9023u32; +pub const MD_CPU_LIMITS_ENABLED: u32 = 2143u32; +pub const MD_CPU_LIMIT_LOGEVENT: u32 = 2149u32; +pub const MD_CPU_LIMIT_PAUSE: u32 = 2152u32; +pub const MD_CPU_LIMIT_PRIORITY: u32 = 2150u32; +pub const MD_CPU_LIMIT_PROCSTOP: u32 = 2151u32; +pub const MD_CPU_LOGGING_INTERVAL: u32 = 2145u32; +pub const MD_CPU_LOGGING_MASK: u32 = 4507u32; +pub const MD_CPU_LOGGING_OPTIONS: u32 = 2146u32; +pub const MD_CPU_NO_ACTION: u32 = 0u32; +pub const MD_CPU_RESET_INTERVAL: u32 = 2144u32; +pub const MD_CPU_THROTTLE: u32 = 3u32; +pub const MD_CPU_TRACE: u32 = 2u32; +pub const MD_CREATE_PROCESS_AS_USER: u32 = 6035u32; +pub const MD_CREATE_PROC_NEW_CONSOLE: u32 = 6036u32; +pub const MD_CUSTOM_DEPLOYMENT_DATA: u32 = 6055u32; +pub const MD_CUSTOM_ERROR: u32 = 6008u32; +pub const MD_CUSTOM_ERROR_DESC: u32 = 2120u32; +pub const MD_DEFAULT_BACKUP_LOCATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MDBackUp"); +pub const MD_DEFAULT_LOAD_FILE: u32 = 6006u32; +pub const MD_DEFAULT_LOGON_DOMAIN: u32 = 6012u32; +pub const MD_DEMAND_START_THRESHOLD: u32 = 9207u32; +pub const MD_DIRBROW_ENABLED: u32 = 2147483648u32; +pub const MD_DIRBROW_LOADDEFAULT: u32 = 1073741824u32; +pub const MD_DIRBROW_LONG_DATE: u32 = 32u32; +pub const MD_DIRBROW_SHOW_DATE: u32 = 2u32; +pub const MD_DIRBROW_SHOW_EXTENSION: u32 = 16u32; +pub const MD_DIRBROW_SHOW_SIZE: u32 = 8u32; +pub const MD_DIRBROW_SHOW_TIME: u32 = 4u32; +pub const MD_DIRECTORY_BROWSING: u32 = 6005u32; +pub const MD_DISABLE_SOCKET_POOLING: u32 = 1029u32; +pub const MD_DONT_LOG: u32 = 6023u32; +pub const MD_DOWNLEVEL_ADMIN_INSTANCE: u32 = 1021u32; +pub const MD_DO_REVERSE_DNS: u32 = 6029u32; +pub const MD_ENABLEDPROTOCOLS: u32 = 2023u32; +pub const MD_ENABLE_URL_AUTHORIZATION: u32 = 6048u32; +pub const MD_ERROR_CANNOT_REMOVE_SECURE_ATTRIBUTE: i32 = -2146646008i32; +pub const MD_ERROR_DATA_NOT_FOUND: i32 = -2146646015i32; +pub const MD_ERROR_IISAO_INVALID_SCHEMA: i32 = -2146646000i32; +pub const MD_ERROR_INVALID_VERSION: i32 = -2146646014i32; +pub const MD_ERROR_NOT_INITIALIZED: i32 = -2146646016i32; +pub const MD_ERROR_NO_SESSION_KEY: i32 = -2146645987i32; +pub const MD_ERROR_READ_METABASE_FILE: i32 = -2146645991i32; +pub const MD_ERROR_SECURE_CHANNEL_FAILURE: i32 = -2146646010i32; +pub const MD_ERROR_SUB400_INVALID_CONTENT_LENGTH: u32 = 7u32; +pub const MD_ERROR_SUB400_INVALID_DEPTH: u32 = 2u32; +pub const MD_ERROR_SUB400_INVALID_DESTINATION: u32 = 1u32; +pub const MD_ERROR_SUB400_INVALID_IF: u32 = 3u32; +pub const MD_ERROR_SUB400_INVALID_LOCK_TOKEN: u32 = 9u32; +pub const MD_ERROR_SUB400_INVALID_OVERWRITE: u32 = 4u32; +pub const MD_ERROR_SUB400_INVALID_REQUEST_BODY: u32 = 6u32; +pub const MD_ERROR_SUB400_INVALID_TIMEOUT: u32 = 8u32; +pub const MD_ERROR_SUB400_INVALID_TRANSLATE: u32 = 5u32; +pub const MD_ERROR_SUB400_INVALID_WEBSOCKET_REQUEST: u32 = 11u32; +pub const MD_ERROR_SUB400_INVALID_XFF_HEADER: u32 = 10u32; +pub const MD_ERROR_SUB401_APPLICATION: u32 = 5u32; +pub const MD_ERROR_SUB401_FILTER: u32 = 4u32; +pub const MD_ERROR_SUB401_LOGON: u32 = 1u32; +pub const MD_ERROR_SUB401_LOGON_ACL: u32 = 3u32; +pub const MD_ERROR_SUB401_LOGON_CONFIG: u32 = 2u32; +pub const MD_ERROR_SUB401_URLAUTH_POLICY: u32 = 7u32; +pub const MD_ERROR_SUB403_ADDR_REJECT: u32 = 6u32; +pub const MD_ERROR_SUB403_APPPOOL_DENIED: u32 = 18u32; +pub const MD_ERROR_SUB403_CAL_EXCEEDED: u32 = 15u32; +pub const MD_ERROR_SUB403_CERT_BAD: u32 = 16u32; +pub const MD_ERROR_SUB403_CERT_REQUIRED: u32 = 7u32; +pub const MD_ERROR_SUB403_CERT_REVOKED: u32 = 13u32; +pub const MD_ERROR_SUB403_CERT_TIME_INVALID: u32 = 17u32; +pub const MD_ERROR_SUB403_DIR_LIST_DENIED: u32 = 14u32; +pub const MD_ERROR_SUB403_EXECUTE_ACCESS_DENIED: u32 = 1u32; +pub const MD_ERROR_SUB403_INFINITE_DEPTH_DENIED: u32 = 22u32; +pub const MD_ERROR_SUB403_INSUFFICIENT_PRIVILEGE_FOR_CGI: u32 = 19u32; +pub const MD_ERROR_SUB403_INVALID_CNFG: u32 = 10u32; +pub const MD_ERROR_SUB403_LOCK_TOKEN_REQUIRED: u32 = 23u32; +pub const MD_ERROR_SUB403_MAPPER_DENY_ACCESS: u32 = 12u32; +pub const MD_ERROR_SUB403_PASSPORT_LOGIN_FAILURE: u32 = 20u32; +pub const MD_ERROR_SUB403_PWD_CHANGE: u32 = 11u32; +pub const MD_ERROR_SUB403_READ_ACCESS_DENIED: u32 = 2u32; +pub const MD_ERROR_SUB403_SITE_ACCESS_DENIED: u32 = 8u32; +pub const MD_ERROR_SUB403_SOURCE_ACCESS_DENIED: u32 = 21u32; +pub const MD_ERROR_SUB403_SSL128_REQUIRED: u32 = 5u32; +pub const MD_ERROR_SUB403_SSL_REQUIRED: u32 = 4u32; +pub const MD_ERROR_SUB403_TOO_MANY_USERS: u32 = 9u32; +pub const MD_ERROR_SUB403_VALIDATION_FAILURE: u32 = 24u32; +pub const MD_ERROR_SUB403_WRITE_ACCESS_DENIED: u32 = 3u32; +pub const MD_ERROR_SUB404_DENIED_BY_FILTERING_RULE: u32 = 19u32; +pub const MD_ERROR_SUB404_DENIED_BY_MIMEMAP: u32 = 3u32; +pub const MD_ERROR_SUB404_DENIED_BY_POLICY: u32 = 2u32; +pub const MD_ERROR_SUB404_FILE_ATTRIBUTE_HIDDEN: u32 = 9u32; +pub const MD_ERROR_SUB404_FILE_EXTENSION_DENIED: u32 = 7u32; +pub const MD_ERROR_SUB404_HIDDEN_SEGMENT: u32 = 8u32; +pub const MD_ERROR_SUB404_NO_HANDLER: u32 = 4u32; +pub const MD_ERROR_SUB404_PRECONDITIONED_HANDLER: u32 = 17u32; +pub const MD_ERROR_SUB404_QUERY_STRING_SEQUENCE_DENIED: u32 = 18u32; +pub const MD_ERROR_SUB404_QUERY_STRING_TOO_LONG: u32 = 15u32; +pub const MD_ERROR_SUB404_SITE_NOT_FOUND: u32 = 1u32; +pub const MD_ERROR_SUB404_STATICFILE_DAV: u32 = 16u32; +pub const MD_ERROR_SUB404_TOO_MANY_URL_SEGMENTS: u32 = 20u32; +pub const MD_ERROR_SUB404_URL_DOUBLE_ESCAPED: u32 = 11u32; +pub const MD_ERROR_SUB404_URL_HAS_HIGH_BIT_CHARS: u32 = 12u32; +pub const MD_ERROR_SUB404_URL_SEQUENCE_DENIED: u32 = 5u32; +pub const MD_ERROR_SUB404_URL_TOO_LONG: u32 = 14u32; +pub const MD_ERROR_SUB404_VERB_DENIED: u32 = 6u32; +pub const MD_ERROR_SUB413_CONTENT_LENGTH_TOO_LARGE: u32 = 1u32; +pub const MD_ERROR_SUB423_LOCK_TOKEN_SUBMITTED: u32 = 1u32; +pub const MD_ERROR_SUB423_NO_CONFLICTING_LOCK: u32 = 2u32; +pub const MD_ERROR_SUB500_ASPNET_HANDLERS: u32 = 23u32; +pub const MD_ERROR_SUB500_ASPNET_IMPERSONATION: u32 = 24u32; +pub const MD_ERROR_SUB500_ASPNET_MODULES: u32 = 22u32; +pub const MD_ERROR_SUB500_BAD_METADATA: u32 = 19u32; +pub const MD_ERROR_SUB500_HANDLERS_MODULE: u32 = 21u32; +pub const MD_ERROR_SUB500_UNC_ACCESS: u32 = 16u32; +pub const MD_ERROR_SUB500_URLAUTH_NO_SCOPE: u32 = 20u32; +pub const MD_ERROR_SUB500_URLAUTH_NO_STORE: u32 = 17u32; +pub const MD_ERROR_SUB500_URLAUTH_STORE_ERROR: u32 = 18u32; +pub const MD_ERROR_SUB502_ARR_CONNECTION_ERROR: u32 = 3u32; +pub const MD_ERROR_SUB502_ARR_NO_SERVER: u32 = 4u32; +pub const MD_ERROR_SUB502_PREMATURE_EXIT: u32 = 2u32; +pub const MD_ERROR_SUB502_TIMEOUT: u32 = 1u32; +pub const MD_ERROR_SUB503_APP_CONCURRENT: u32 = 2u32; +pub const MD_ERROR_SUB503_ASPNET_QUEUE_FULL: u32 = 3u32; +pub const MD_ERROR_SUB503_CONNECTION_LIMIT: u32 = 5u32; +pub const MD_ERROR_SUB503_CPU_LIMIT: u32 = 1u32; +pub const MD_ERROR_SUB503_FASTCGI_QUEUE_FULL: u32 = 4u32; +pub const MD_EXIT_MESSAGE: u32 = 5001u32; +pub const MD_EXPORT_INHERITED: u32 = 1u32; +pub const MD_EXPORT_NODE_ONLY: u32 = 2u32; +pub const MD_EXTLOG_BYTES_RECV: u32 = 8192u32; +pub const MD_EXTLOG_BYTES_SENT: u32 = 4096u32; +pub const MD_EXTLOG_CLIENT_IP: u32 = 4u32; +pub const MD_EXTLOG_COMPUTER_NAME: u32 = 32u32; +pub const MD_EXTLOG_COOKIE: u32 = 131072u32; +pub const MD_EXTLOG_DATE: u32 = 1u32; +pub const MD_EXTLOG_HOST: u32 = 1048576u32; +pub const MD_EXTLOG_HTTP_STATUS: u32 = 1024u32; +pub const MD_EXTLOG_HTTP_SUB_STATUS: u32 = 2097152u32; +pub const MD_EXTLOG_METHOD: u32 = 128u32; +pub const MD_EXTLOG_PROTOCOL_VERSION: u32 = 524288u32; +pub const MD_EXTLOG_REFERER: u32 = 262144u32; +pub const MD_EXTLOG_SERVER_IP: u32 = 64u32; +pub const MD_EXTLOG_SERVER_PORT: u32 = 32768u32; +pub const MD_EXTLOG_SITE_NAME: u32 = 16u32; +pub const MD_EXTLOG_TIME: u32 = 2u32; +pub const MD_EXTLOG_TIME_TAKEN: u32 = 16384u32; +pub const MD_EXTLOG_URI_QUERY: u32 = 512u32; +pub const MD_EXTLOG_URI_STEM: u32 = 256u32; +pub const MD_EXTLOG_USERNAME: u32 = 8u32; +pub const MD_EXTLOG_USER_AGENT: u32 = 65536u32; +pub const MD_EXTLOG_WIN32_STATUS: u32 = 2048u32; +pub const MD_FILTER_DESCRIPTION: u32 = 2045u32; +pub const MD_FILTER_ENABLED: u32 = 2043u32; +pub const MD_FILTER_ENABLE_CACHE: u32 = 2046u32; +pub const MD_FILTER_FLAGS: u32 = 2044u32; +pub const MD_FILTER_IMAGE_PATH: u32 = 2041u32; +pub const MD_FILTER_LOAD_ORDER: u32 = 2040u32; +pub const MD_FILTER_STATE: u32 = 2042u32; +pub const MD_FILTER_STATE_LOADED: u32 = 1u32; +pub const MD_FILTER_STATE_UNLOADED: u32 = 4u32; +pub const MD_FOOTER_DOCUMENT: u32 = 6009u32; +pub const MD_FOOTER_ENABLED: u32 = 6010u32; +pub const MD_FRONTPAGE_WEB: u32 = 2072u32; +pub const MD_FTPS_128_BITS: u32 = 5053u32; +pub const MD_FTPS_ALLOW_CCC: u32 = 5054u32; +pub const MD_FTPS_SECURE_ANONYMOUS: u32 = 5052u32; +pub const MD_FTPS_SECURE_CONTROL_CHANNEL: u32 = 5050u32; +pub const MD_FTPS_SECURE_DATA_CHANNEL: u32 = 5051u32; +pub const MD_FTP_KEEP_PARTIAL_UPLOADS: u32 = 5019u32; +pub const MD_FTP_LOG_IN_UTF_8: u32 = 5013u32; +pub const MD_FTP_PASV_RESPONSE_IP: u32 = 5018u32; +pub const MD_FTP_UTF8_FILE_NAMES: u32 = 5020u32; +pub const MD_GLOBAL_BINARY_LOGGING_ENABLED: u32 = 4016u32; +pub const MD_GLOBAL_BINSCHEMATIMESTAMP: u32 = 9991u32; +pub const MD_GLOBAL_CHANGE_NUMBER: u32 = 9997u32; +pub const MD_GLOBAL_EDIT_WHILE_RUNNING_MAJOR_VERSION_NUMBER: u32 = 9994u32; +pub const MD_GLOBAL_EDIT_WHILE_RUNNING_MINOR_VERSION_NUMBER: u32 = 9993u32; +pub const MD_GLOBAL_LOG_IN_UTF_8: u32 = 9206u32; +pub const MD_GLOBAL_SESSIONKEY: u32 = 9999u32; +pub const MD_GLOBAL_STANDARD_APP_MODE_ENABLED: u32 = 9203u32; +pub const MD_GLOBAL_XMLSCHEMATIMESTAMP: u32 = 9992u32; +pub const MD_GREETING_MESSAGE: u32 = 5002u32; +pub const MD_HC_CACHE_CONTROL_HEADER: u32 = 2211u32; +pub const MD_HC_COMPRESSION_BUFFER_SIZE: u32 = 2223u32; +pub const MD_HC_COMPRESSION_DIRECTORY: u32 = 2210u32; +pub const MD_HC_COMPRESSION_DLL: u32 = 2237u32; +pub const MD_HC_CREATE_FLAGS: u32 = 2243u32; +pub const MD_HC_DO_DISK_SPACE_LIMITING: u32 = 2216u32; +pub const MD_HC_DO_DYNAMIC_COMPRESSION: u32 = 2213u32; +pub const MD_HC_DO_NAMESPACE_DYNAMIC_COMPRESSION: u32 = 2255u32; +pub const MD_HC_DO_NAMESPACE_STATIC_COMPRESSION: u32 = 2256u32; +pub const MD_HC_DO_ON_DEMAND_COMPRESSION: u32 = 2215u32; +pub const MD_HC_DO_STATIC_COMPRESSION: u32 = 2214u32; +pub const MD_HC_DYNAMIC_COMPRESSION_LEVEL: u32 = 2241u32; +pub const MD_HC_EXPIRES_HEADER: u32 = 2212u32; +pub const MD_HC_FILES_DELETED_PER_DISK_FREE: u32 = 2225u32; +pub const MD_HC_FILE_EXTENSIONS: u32 = 2238u32; +pub const MD_HC_IO_BUFFER_SIZE: u32 = 2222u32; +pub const MD_HC_MAX_DISK_SPACE_USAGE: u32 = 2221u32; +pub const MD_HC_MAX_QUEUE_LENGTH: u32 = 2224u32; +pub const MD_HC_MIME_TYPE: u32 = 2239u32; +pub const MD_HC_MIN_FILE_SIZE_FOR_COMP: u32 = 2226u32; +pub const MD_HC_NO_COMPRESSION_FOR_HTTP_10: u32 = 2217u32; +pub const MD_HC_NO_COMPRESSION_FOR_PROXIES: u32 = 2218u32; +pub const MD_HC_NO_COMPRESSION_FOR_RANGE: u32 = 2219u32; +pub const MD_HC_ON_DEMAND_COMP_LEVEL: u32 = 2242u32; +pub const MD_HC_PRIORITY: u32 = 2240u32; +pub const MD_HC_SCRIPT_FILE_EXTENSIONS: u32 = 2244u32; +pub const MD_HC_SEND_CACHE_HEADERS: u32 = 2220u32; +pub const MD_HEADER_WAIT_TIMEOUT: u32 = 9204u32; +pub const MD_HISTORY_LATEST: u32 = 1u32; +pub const MD_HTTPERRORS_EXISTING_RESPONSE: u32 = 6056u32; +pub const MD_HTTP_CUSTOM: u32 = 6004u32; +pub const MD_HTTP_EXPIRES: u32 = 6002u32; +pub const MD_HTTP_FORWARDER_CUSTOM: u32 = 6054u32; +pub const MD_HTTP_PICS: u32 = 6003u32; +pub const MD_HTTP_REDIRECT: u32 = 6011u32; +pub const MD_IISADMIN_EXTENSIONS: u32 = 1028u32; +pub const MD_IMPORT_INHERITED: u32 = 1u32; +pub const MD_IMPORT_MERGE: u32 = 4u32; +pub const MD_IMPORT_NODE_ONLY: u32 = 2u32; +pub const MD_INSERT_PATH_STRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("<%INSERT_PATH%>"); +pub const MD_INSERT_PATH_STRINGA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("<%INSERT_PATH%>"); +pub const MD_IN_PROCESS_ISAPI_APPS: u32 = 2073u32; +pub const MD_IP_SEC: u32 = 6019u32; +pub const MD_ISAPI_RESTRICTION_LIST: u32 = 2163u32; +pub const MD_IS_CONTENT_INDEXED: u32 = 6039u32; +pub const MD_KEY_TYPE: u32 = 1002u32; +pub const MD_LEVELS_TO_SCAN: u32 = 1022u32; +pub const MD_LOAD_BALANCER_CAPABILITIES: u32 = 9034u32; +pub const MD_LOAD_BALANCER_CAPABILITIES_BASIC: u32 = 1u32; +pub const MD_LOAD_BALANCER_CAPABILITIES_SOPHISTICATED: u32 = 2u32; +pub const MD_LOCATION: u32 = 9989u32; +pub const MD_LOGCUSTOM_DATATYPE_DOUBLE: u32 = 5u32; +pub const MD_LOGCUSTOM_DATATYPE_FLOAT: u32 = 4u32; +pub const MD_LOGCUSTOM_DATATYPE_INT: u32 = 0u32; +pub const MD_LOGCUSTOM_DATATYPE_LONG: u32 = 2u32; +pub const MD_LOGCUSTOM_DATATYPE_LPSTR: u32 = 6u32; +pub const MD_LOGCUSTOM_DATATYPE_LPWSTR: u32 = 7u32; +pub const MD_LOGCUSTOM_DATATYPE_UINT: u32 = 1u32; +pub const MD_LOGCUSTOM_DATATYPE_ULONG: u32 = 3u32; +pub const MD_LOGCUSTOM_PROPERTY_DATATYPE: u32 = 4505u32; +pub const MD_LOGCUSTOM_PROPERTY_HEADER: u32 = 4502u32; +pub const MD_LOGCUSTOM_PROPERTY_ID: u32 = 4503u32; +pub const MD_LOGCUSTOM_PROPERTY_MASK: u32 = 4504u32; +pub const MD_LOGCUSTOM_PROPERTY_NAME: u32 = 4501u32; +pub const MD_LOGCUSTOM_PROPERTY_NODE_ID: u32 = 4508u32; +pub const MD_LOGCUSTOM_SERVICES_STRING: u32 = 4506u32; +pub const MD_LOGEXT_FIELD_MASK: u32 = 4013u32; +pub const MD_LOGEXT_FIELD_MASK2: u32 = 4014u32; +pub const MD_LOGFILE_DIRECTORY: u32 = 4001u32; +pub const MD_LOGFILE_LOCALTIME_ROLLOVER: u32 = 4015u32; +pub const MD_LOGFILE_PERIOD: u32 = 4003u32; +pub const MD_LOGFILE_PERIOD_DAILY: u32 = 1u32; +pub const MD_LOGFILE_PERIOD_HOURLY: u32 = 4u32; +pub const MD_LOGFILE_PERIOD_MAXSIZE: u32 = 0u32; +pub const MD_LOGFILE_PERIOD_MONTHLY: u32 = 3u32; +pub const MD_LOGFILE_PERIOD_NONE: u32 = 0u32; +pub const MD_LOGFILE_PERIOD_WEEKLY: u32 = 2u32; +pub const MD_LOGFILE_TRUNCATE_SIZE: u32 = 4004u32; +pub const MD_LOGON_BATCH: u32 = 1u32; +pub const MD_LOGON_INTERACTIVE: u32 = 0u32; +pub const MD_LOGON_METHOD: u32 = 6013u32; +pub const MD_LOGON_NETWORK: u32 = 2u32; +pub const MD_LOGON_NETWORK_CLEARTEXT: u32 = 3u32; +pub const MD_LOGSQL_DATA_SOURCES: u32 = 4007u32; +pub const MD_LOGSQL_PASSWORD: u32 = 4010u32; +pub const MD_LOGSQL_TABLE_NAME: u32 = 4008u32; +pub const MD_LOGSQL_USER_NAME: u32 = 4009u32; +pub const MD_LOG_ANONYMOUS: u32 = 5007u32; +pub const MD_LOG_NONANONYMOUS: u32 = 5008u32; +pub const MD_LOG_PLUGINS_AVAILABLE: u32 = 4012u32; +pub const MD_LOG_PLUGIN_MOD_ID: u32 = 4005u32; +pub const MD_LOG_PLUGIN_ORDER: u32 = 4011u32; +pub const MD_LOG_PLUGIN_UI_ID: u32 = 4006u32; +pub const MD_LOG_TYPE: u32 = 4000u32; +pub const MD_LOG_TYPE_DISABLED: u32 = 0u32; +pub const MD_LOG_TYPE_ENABLED: u32 = 1u32; +pub const MD_LOG_UNUSED1: u32 = 4002u32; +pub const MD_MAX_BANDWIDTH: u32 = 1000u32; +pub const MD_MAX_BANDWIDTH_BLOCKED: u32 = 1003u32; +pub const MD_MAX_CHANGE_ENTRIES: u32 = 100u32; +pub const MD_MAX_CLIENTS_MESSAGE: u32 = 5003u32; +pub const MD_MAX_CONNECTIONS: u32 = 1014u32; +pub const MD_MAX_ENDPOINT_CONNECTIONS: u32 = 1024u32; +pub const MD_MAX_ERROR_FILES: u32 = 9988u32; +pub const MD_MAX_GLOBAL_BANDWIDTH: u32 = 9201u32; +pub const MD_MAX_GLOBAL_CONNECTIONS: u32 = 9202u32; +pub const MD_MAX_REQUEST_ENTITY_ALLOWED: u32 = 6051u32; +pub const MD_MD_SERVER_SS_AUTH_MAPPING: u32 = 2200u32; +pub const MD_METADATA_ID_REGISTRATION: u32 = 1030u32; +pub const MD_MIME_MAP: u32 = 6015u32; +pub const MD_MIN_FILE_BYTES_PER_SEC: u32 = 9205u32; +pub const MD_MSDOS_DIR_OUTPUT: u32 = 5004u32; +pub const MD_NETLOGON_WKS_DNS: u32 = 2u32; +pub const MD_NETLOGON_WKS_IP: u32 = 1u32; +pub const MD_NETLOGON_WKS_NONE: u32 = 0u32; +pub const MD_NET_LOGON_WKS: u32 = 2065u32; +pub const MD_NOTIFEXAUTH_NTLMSSL: u32 = 1u32; +pub const MD_NOTIFY_ACCESS_DENIED: u32 = 2048u32; +pub const MD_NOTIFY_AUTHENTICATION: u32 = 8192u32; +pub const MD_NOTIFY_AUTH_COMPLETE: u32 = 67108864u32; +pub const MD_NOTIFY_END_OF_NET_SESSION: u32 = 256u32; +pub const MD_NOTIFY_END_OF_REQUEST: u32 = 128u32; +pub const MD_NOTIFY_LOG: u32 = 512u32; +pub const MD_NOTIFY_NONSECURE_PORT: u32 = 2u32; +pub const MD_NOTIFY_ORDER_DEFAULT: u32 = 131072u32; +pub const MD_NOTIFY_ORDER_HIGH: u32 = 524288u32; +pub const MD_NOTIFY_ORDER_LOW: u32 = 131072u32; +pub const MD_NOTIFY_ORDER_MEDIUM: u32 = 262144u32; +pub const MD_NOTIFY_PREPROC_HEADERS: u32 = 16384u32; +pub const MD_NOTIFY_READ_RAW_DATA: u32 = 32768u32; +pub const MD_NOTIFY_SECURE_PORT: u32 = 1u32; +pub const MD_NOTIFY_SEND_RAW_DATA: u32 = 1024u32; +pub const MD_NOTIFY_SEND_RESPONSE: u32 = 64u32; +pub const MD_NOTIFY_URL_MAP: u32 = 4096u32; +pub const MD_NOT_DELETABLE: u32 = 2116u32; +pub const MD_NTAUTHENTICATION_PROVIDERS: u32 = 6032u32; +pub const MD_PASSIVE_PORT_RANGE: u32 = 5016u32; +pub const MD_PASSPORT_NEED_MAPPING: u32 = 2u32; +pub const MD_PASSPORT_NO_MAPPING: u32 = 0u32; +pub const MD_PASSPORT_REQUIRE_AD_MAPPING: u32 = 6052u32; +pub const MD_PASSPORT_TRY_MAPPING: u32 = 1u32; +pub const MD_POOL_IDC_TIMEOUT: u32 = 6037u32; +pub const MD_PROCESS_NTCR_IF_LOGGED_ON: u32 = 2070u32; +pub const MD_PUT_READ_SIZE: u32 = 6046u32; +pub const MD_RAPID_FAIL_PROTECTION_INTERVAL: u32 = 9029u32; +pub const MD_RAPID_FAIL_PROTECTION_MAX_CRASHES: u32 = 9030u32; +pub const MD_REALM: u32 = 6001u32; +pub const MD_REDIRECT_HEADERS: u32 = 6044u32; +pub const MD_RESTRICTION_LIST_CUSTOM_DESC: u32 = 2165u32; +pub const MD_ROOT_ENABLE_EDIT_WHILE_RUNNING: u32 = 9998u32; +pub const MD_ROOT_ENABLE_HISTORY: u32 = 9996u32; +pub const MD_ROOT_MAX_HISTORY_FILES: u32 = 9995u32; +pub const MD_SCHEMA_METAID: u32 = 1004u32; +pub const MD_SCRIPTMAPFLAG_ALLOWED_ON_READ_DIR: u32 = 1u32; +pub const MD_SCRIPTMAPFLAG_CHECK_PATH_INFO: u32 = 4u32; +pub const MD_SCRIPTMAPFLAG_SCRIPT: u32 = 1u32; +pub const MD_SCRIPT_MAPS: u32 = 6014u32; +pub const MD_SCRIPT_TIMEOUT: u32 = 6033u32; +pub const MD_SECURE_BINDINGS: u32 = 2021u32; +pub const MD_SECURITY_SETUP_REQUIRED: u32 = 2166u32; +pub const MD_SERVER_AUTOSTART: u32 = 1017u32; +pub const MD_SERVER_BINDINGS: u32 = 1023u32; +pub const MD_SERVER_COMMAND: u32 = 1012u32; +pub const MD_SERVER_COMMAND_CONTINUE: u32 = 4u32; +pub const MD_SERVER_COMMAND_PAUSE: u32 = 3u32; +pub const MD_SERVER_COMMAND_START: u32 = 1u32; +pub const MD_SERVER_COMMAND_STOP: u32 = 2u32; +pub const MD_SERVER_COMMENT: u32 = 1015u32; +pub const MD_SERVER_CONFIGURATION_INFO: u32 = 1027u32; +pub const MD_SERVER_CONFIG_ALLOW_ENCRYPT: u32 = 4u32; +pub const MD_SERVER_CONFIG_AUTO_PW_SYNC: u32 = 8u32; +pub const MD_SERVER_CONFIG_SSL_128: u32 = 2u32; +pub const MD_SERVER_CONFIG_SSL_40: u32 = 1u32; +pub const MD_SERVER_LISTEN_BACKLOG: u32 = 1019u32; +pub const MD_SERVER_LISTEN_TIMEOUT: u32 = 1020u32; +pub const MD_SERVER_SIZE: u32 = 1018u32; +pub const MD_SERVER_SIZE_LARGE: u32 = 2u32; +pub const MD_SERVER_SIZE_MEDIUM: u32 = 1u32; +pub const MD_SERVER_SIZE_SMALL: u32 = 0u32; +pub const MD_SERVER_STATE: u32 = 1016u32; +pub const MD_SERVER_STATE_CONTINUING: u32 = 7u32; +pub const MD_SERVER_STATE_PAUSED: u32 = 6u32; +pub const MD_SERVER_STATE_PAUSING: u32 = 5u32; +pub const MD_SERVER_STATE_STARTED: u32 = 2u32; +pub const MD_SERVER_STATE_STARTING: u32 = 1u32; +pub const MD_SERVER_STATE_STOPPED: u32 = 4u32; +pub const MD_SERVER_STATE_STOPPING: u32 = 3u32; +pub const MD_SET_HOST_NAME: u32 = 2154u32; +pub const MD_SHOW_4_DIGIT_YEAR: u32 = 5010u32; +pub const MD_SSI_EXEC_DISABLED: u32 = 6028u32; +pub const MD_SSL_ACCESS_PERM: u32 = 6030u32; +pub const MD_SSL_ALWAYS_NEGO_CLIENT_CERT: u32 = 5521u32; +pub const MD_SSL_KEY_PASSWORD: u32 = 5502u32; +pub const MD_SSL_KEY_REQUEST: u32 = 5503u32; +pub const MD_SSL_PRIVATE_KEY: u32 = 5501u32; +pub const MD_SSL_PUBLIC_KEY: u32 = 5500u32; +pub const MD_SSL_USE_DS_MAPPER: u32 = 5519u32; +pub const MD_STOP_LISTENING: u32 = 9987u32; +pub const MD_SUPPRESS_DEFAULT_BANNER: u32 = 5017u32; +pub const MD_UPLOAD_READAHEAD_SIZE: u32 = 6045u32; +pub const MD_URL_AUTHORIZATION_IMPERSONATION_LEVEL: u32 = 6053u32; +pub const MD_URL_AUTHORIZATION_SCOPE_NAME: u32 = 6050u32; +pub const MD_URL_AUTHORIZATION_STORE_NAME: u32 = 6049u32; +pub const MD_USER_ISOLATION: u32 = 5012u32; +pub const MD_USER_ISOLATION_AD: u32 = 2u32; +pub const MD_USER_ISOLATION_BASIC: u32 = 1u32; +pub const MD_USER_ISOLATION_LAST: u32 = 2u32; +pub const MD_USER_ISOLATION_NONE: u32 = 0u32; +pub const MD_USE_DIGEST_SSP: u32 = 6047u32; +pub const MD_USE_HOST_NAME: u32 = 2066u32; +pub const MD_VR_IGNORE_TRANSLATE: u32 = 3008u32; +pub const MD_VR_NO_CACHE: u32 = 3007u32; +pub const MD_VR_PASSTHROUGH: u32 = 3006u32; +pub const MD_VR_PASSWORD: u32 = 3003u32; +pub const MD_VR_PATH: u32 = 3001u32; +pub const MD_VR_USERNAME: u32 = 3002u32; +pub const MD_WAM_PWD: u32 = 7502u32; +pub const MD_WAM_USER_NAME: u32 = 7501u32; +pub const MD_WARNING_DUP_NAME: i32 = 837636i32; +pub const MD_WARNING_INVALID_DATA: i32 = 837637i32; +pub const MD_WARNING_PATH_NOT_FOUND: i32 = 837635i32; +pub const MD_WARNING_PATH_NOT_INSERTED: i32 = 837639i32; +pub const MD_WARNING_SAVE_FAILED: i32 = 837641i32; +pub const MD_WEBDAV_MAX_ATTRIBUTES_PER_ELEMENT: u32 = 8501u32; +pub const MD_WEB_SVC_EXT_RESTRICTION_LIST: u32 = 2168u32; +pub const MD_WIN32_ERROR: u32 = 1099u32; +pub const METADATA_DONT_EXPAND: u32 = 512u32; +pub const METADATA_INHERIT: u32 = 1u32; +pub const METADATA_INSERT_PATH: u32 = 64u32; +pub const METADATA_ISINHERITED: u32 = 32u32; +pub const METADATA_LOCAL_MACHINE_ONLY: u32 = 128u32; +pub const METADATA_MASTER_ROOT_HANDLE: u32 = 0u32; +pub const METADATA_MAX_NAME_LEN: u32 = 256u32; +pub const METADATA_NON_SECURE_ONLY: u32 = 256u32; +pub const METADATA_NO_ATTRIBUTES: u32 = 0u32; +pub const METADATA_PARTIAL_PATH: u32 = 2u32; +pub const METADATA_PERMISSION_READ: u32 = 1u32; +pub const METADATA_PERMISSION_WRITE: u32 = 2u32; +pub const METADATA_REFERENCE: u32 = 8u32; +pub const METADATA_SECURE: u32 = 4u32; +pub const METADATA_VOLATILE: u32 = 16u32; +pub const MSCS_MD_ID_BEGIN_RESERVED: u32 = 53248u32; +pub const MSCS_MD_ID_END_RESERVED: u32 = 57343u32; +pub const MULTISZ_METADATA: METADATATYPES = 5i32; +pub const NNTP_MD_ID_BEGIN_RESERVED: u32 = 45056u32; +pub const NNTP_MD_ID_END_RESERVED: u32 = 49151u32; +pub const POP3_MD_ID_BEGIN_RESERVED: u32 = 40960u32; +pub const POP3_MD_ID_END_RESERVED: u32 = 45055u32; +pub const SF_DENIED_APPLICATION: u32 = 8u32; +pub const SF_DENIED_BY_CONFIG: u32 = 65536u32; +pub const SF_DENIED_FILTER: u32 = 4u32; +pub const SF_DENIED_LOGON: u32 = 1u32; +pub const SF_DENIED_RESOURCE: u32 = 2u32; +pub const SF_MAX_AUTH_TYPE: u32 = 33u32; +pub const SF_MAX_FILTER_DESC_LEN: u32 = 257u32; +pub const SF_MAX_PASSWORD: u32 = 257u32; +pub const SF_MAX_USERNAME: u32 = 257u32; +pub const SF_NOTIFY_ACCESS_DENIED: u32 = 2048u32; +pub const SF_NOTIFY_AUTHENTICATION: u32 = 8192u32; +pub const SF_NOTIFY_AUTH_COMPLETE: u32 = 67108864u32; +pub const SF_NOTIFY_END_OF_NET_SESSION: u32 = 256u32; +pub const SF_NOTIFY_END_OF_REQUEST: u32 = 128u32; +pub const SF_NOTIFY_LOG: u32 = 512u32; +pub const SF_NOTIFY_NONSECURE_PORT: u32 = 2u32; +pub const SF_NOTIFY_ORDER_DEFAULT: u32 = 131072u32; +pub const SF_NOTIFY_ORDER_HIGH: u32 = 524288u32; +pub const SF_NOTIFY_ORDER_LOW: u32 = 131072u32; +pub const SF_NOTIFY_ORDER_MEDIUM: u32 = 262144u32; +pub const SF_NOTIFY_PREPROC_HEADERS: u32 = 16384u32; +pub const SF_NOTIFY_READ_RAW_DATA: u32 = 32768u32; +pub const SF_NOTIFY_SECURE_PORT: u32 = 1u32; +pub const SF_NOTIFY_SEND_RAW_DATA: u32 = 1024u32; +pub const SF_NOTIFY_SEND_RESPONSE: u32 = 64u32; +pub const SF_NOTIFY_URL_MAP: u32 = 4096u32; +pub const SF_PROPERTY_INSTANCE_NUM_ID: SF_PROPERTY_IIS = 1i32; +pub const SF_PROPERTY_SSL_CTXT: SF_PROPERTY_IIS = 0i32; +pub const SF_REQ_ADD_HEADERS_ON_DENIAL: SF_REQ_TYPE = 1i32; +pub const SF_REQ_DISABLE_NOTIFICATIONS: SF_REQ_TYPE = 8i32; +pub const SF_REQ_GET_CONNID: SF_REQ_TYPE = 4i32; +pub const SF_REQ_GET_PROPERTY: SF_REQ_TYPE = 6i32; +pub const SF_REQ_NORMALIZE_URL: SF_REQ_TYPE = 7i32; +pub const SF_REQ_SEND_RESPONSE_HEADER: SF_REQ_TYPE = 0i32; +pub const SF_REQ_SET_CERTIFICATE_INFO: SF_REQ_TYPE = 5i32; +pub const SF_REQ_SET_NEXT_READ_SIZE: SF_REQ_TYPE = 2i32; +pub const SF_REQ_SET_PROXY_INFO: SF_REQ_TYPE = 3i32; +pub const SF_STATUS_REQ_ERROR: SF_STATUS_TYPE = 134217732i32; +pub const SF_STATUS_REQ_FINISHED: SF_STATUS_TYPE = 134217728i32; +pub const SF_STATUS_REQ_FINISHED_KEEP_CONN: SF_STATUS_TYPE = 134217729i32; +pub const SF_STATUS_REQ_HANDLED_NOTIFICATION: SF_STATUS_TYPE = 134217731i32; +pub const SF_STATUS_REQ_NEXT_NOTIFICATION: SF_STATUS_TYPE = 134217730i32; +pub const SF_STATUS_REQ_READ_NEXT: SF_STATUS_TYPE = 134217733i32; +pub const SMTP_MD_ID_BEGIN_RESERVED: u32 = 36864u32; +pub const SMTP_MD_ID_END_RESERVED: u32 = 40959u32; +pub const STRING_METADATA: METADATATYPES = 2i32; +pub const USER_MD_ID_BASE_RESERVED: u32 = 65535u32; +pub const WAM_MD_ID_BEGIN_RESERVED: u32 = 29952u32; +pub const WAM_MD_ID_END_RESERVED: u32 = 32767u32; +pub const WAM_MD_SERVER_BASE: u32 = 7500u32; +pub const WEBDAV_MD_SERVER_BASE: u32 = 8500u32; +pub const WEB_CORE_ACTIVATE_DLL_ENTRY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WebCoreActivate"); +pub const WEB_CORE_DLL_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("hwebcore.dll"); +pub const WEB_CORE_SET_METADATA_DLL_ENTRY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WebCoreSetMetadata"); +pub const WEB_CORE_SHUTDOWN_DLL_ENTRY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WebCoreShutdown"); +pub type FTP_ACCESS = i32; +pub type FTP_PROCESS_STATUS = i32; +pub type HTTP_TRACE_TYPE = i32; +pub type METADATATYPES = i32; +pub type SF_PROPERTY_IIS = i32; +pub type SF_REQ_TYPE = i32; +pub type SF_STATUS_TYPE = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +pub struct CERT_CONTEXT_EX { + pub CertContext: super::super::Security::Cryptography::CERT_CONTEXT, + pub cbAllocated: u32, + pub dwCertificateFlags: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::marker::Copy for CERT_CONTEXT_EX {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +impl ::core::clone::Clone for CERT_CONTEXT_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONFIGURATION_ENTRY { + pub bstrKey: ::windows_sys::core::BSTR, + pub bstrValue: ::windows_sys::core::BSTR, +} +impl ::core::marker::Copy for CONFIGURATION_ENTRY {} +impl ::core::clone::Clone for CONFIGURATION_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EXTENSION_CONTROL_BLOCK { + pub cbSize: u32, + pub dwVersion: u32, + pub ConnID: HCONN, + pub dwHttpStatusCode: u32, + pub lpszLogData: [u8; 80], + pub lpszMethod: ::windows_sys::core::PSTR, + pub lpszQueryString: ::windows_sys::core::PSTR, + pub lpszPathInfo: ::windows_sys::core::PSTR, + pub lpszPathTranslated: ::windows_sys::core::PSTR, + pub cbTotalBytes: u32, + pub cbAvailable: u32, + pub lpbData: *mut u8, + pub lpszContentType: ::windows_sys::core::PSTR, + pub GetServerVariable: PFN_IIS_GETSERVERVARIABLE, + pub WriteClient: PFN_IIS_WRITECLIENT, + pub ReadClient: PFN_IIS_READCLIENT, + pub ServerSupportFunction: PFN_IIS_SERVERSUPPORTFUNCTION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EXTENSION_CONTROL_BLOCK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EXTENSION_CONTROL_BLOCK { + fn clone(&self) -> Self { + *self + } +} +pub type HCONN = *mut ::core::ffi::c_void; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HSE_CUSTOM_ERROR_INFO { + pub pszStatus: ::windows_sys::core::PSTR, + pub uHttpSubError: u16, + pub fAsync: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HSE_CUSTOM_ERROR_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HSE_CUSTOM_ERROR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HSE_EXEC_UNICODE_URL_INFO { + pub pszUrl: ::windows_sys::core::PWSTR, + pub pszMethod: ::windows_sys::core::PSTR, + pub pszChildHeaders: ::windows_sys::core::PSTR, + pub pUserInfo: *mut HSE_EXEC_UNICODE_URL_USER_INFO, + pub pEntity: *mut HSE_EXEC_URL_ENTITY_INFO, + pub dwExecUrlFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HSE_EXEC_UNICODE_URL_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HSE_EXEC_UNICODE_URL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HSE_EXEC_UNICODE_URL_USER_INFO { + pub hImpersonationToken: super::super::Foundation::HANDLE, + pub pszCustomUserName: ::windows_sys::core::PWSTR, + pub pszCustomAuthType: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HSE_EXEC_UNICODE_URL_USER_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HSE_EXEC_UNICODE_URL_USER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HSE_EXEC_URL_ENTITY_INFO { + pub cbAvailable: u32, + pub lpbData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for HSE_EXEC_URL_ENTITY_INFO {} +impl ::core::clone::Clone for HSE_EXEC_URL_ENTITY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HSE_EXEC_URL_INFO { + pub pszUrl: ::windows_sys::core::PSTR, + pub pszMethod: ::windows_sys::core::PSTR, + pub pszChildHeaders: ::windows_sys::core::PSTR, + pub pUserInfo: *mut HSE_EXEC_URL_USER_INFO, + pub pEntity: *mut HSE_EXEC_URL_ENTITY_INFO, + pub dwExecUrlFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HSE_EXEC_URL_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HSE_EXEC_URL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HSE_EXEC_URL_STATUS { + pub uHttpStatusCode: u16, + pub uHttpSubStatus: u16, + pub dwWin32Error: u32, +} +impl ::core::marker::Copy for HSE_EXEC_URL_STATUS {} +impl ::core::clone::Clone for HSE_EXEC_URL_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HSE_EXEC_URL_USER_INFO { + pub hImpersonationToken: super::super::Foundation::HANDLE, + pub pszCustomUserName: ::windows_sys::core::PSTR, + pub pszCustomAuthType: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HSE_EXEC_URL_USER_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HSE_EXEC_URL_USER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HSE_RESPONSE_VECTOR { + pub dwFlags: u32, + pub pszStatus: ::windows_sys::core::PSTR, + pub pszHeaders: ::windows_sys::core::PSTR, + pub nElementCount: u32, + pub lpElementArray: *mut HSE_VECTOR_ELEMENT, +} +impl ::core::marker::Copy for HSE_RESPONSE_VECTOR {} +impl ::core::clone::Clone for HSE_RESPONSE_VECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HSE_SEND_HEADER_EX_INFO { + pub pszStatus: ::windows_sys::core::PCSTR, + pub pszHeader: ::windows_sys::core::PCSTR, + pub cchStatus: u32, + pub cchHeader: u32, + pub fKeepConn: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HSE_SEND_HEADER_EX_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HSE_SEND_HEADER_EX_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HSE_TF_INFO { + pub pfnHseIO: PFN_HSE_IO_COMPLETION, + pub pContext: *mut ::core::ffi::c_void, + pub hFile: super::super::Foundation::HANDLE, + pub pszStatusCode: ::windows_sys::core::PCSTR, + pub BytesToWrite: u32, + pub Offset: u32, + pub pHead: *mut ::core::ffi::c_void, + pub HeadLength: u32, + pub pTail: *mut ::core::ffi::c_void, + pub TailLength: u32, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HSE_TF_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HSE_TF_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HSE_TRACE_INFO { + pub fTraceRequest: super::super::Foundation::BOOL, + pub TraceContextId: [u8; 16], + pub dwReserved1: u32, + pub dwReserved2: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HSE_TRACE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HSE_TRACE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HSE_UNICODE_URL_MAPEX_INFO { + pub lpszPath: [u16; 260], + pub dwFlags: u32, + pub cchMatchingPath: u32, + pub cchMatchingURL: u32, +} +impl ::core::marker::Copy for HSE_UNICODE_URL_MAPEX_INFO {} +impl ::core::clone::Clone for HSE_UNICODE_URL_MAPEX_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HSE_URL_MAPEX_INFO { + pub lpszPath: [u8; 260], + pub dwFlags: u32, + pub cchMatchingPath: u32, + pub cchMatchingURL: u32, + pub dwReserved1: u32, + pub dwReserved2: u32, +} +impl ::core::marker::Copy for HSE_URL_MAPEX_INFO {} +impl ::core::clone::Clone for HSE_URL_MAPEX_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HSE_VECTOR_ELEMENT { + pub ElementType: u32, + pub pvContext: *mut ::core::ffi::c_void, + pub cbOffset: u64, + pub cbSize: u64, +} +impl ::core::marker::Copy for HSE_VECTOR_ELEMENT {} +impl ::core::clone::Clone for HSE_VECTOR_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HSE_VERSION_INFO { + pub dwExtensionVersion: u32, + pub lpszExtensionDesc: [u8; 256], +} +impl ::core::marker::Copy for HSE_VERSION_INFO {} +impl ::core::clone::Clone for HSE_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_FILTER_ACCESS_DENIED { + pub pszURL: ::windows_sys::core::PCSTR, + pub pszPhysicalPath: ::windows_sys::core::PCSTR, + pub dwReason: u32, +} +impl ::core::marker::Copy for HTTP_FILTER_ACCESS_DENIED {} +impl ::core::clone::Clone for HTTP_FILTER_ACCESS_DENIED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_FILTER_AUTHENT { + pub pszUser: ::windows_sys::core::PSTR, + pub cbUserBuff: u32, + pub pszPassword: ::windows_sys::core::PSTR, + pub cbPasswordBuff: u32, +} +impl ::core::marker::Copy for HTTP_FILTER_AUTHENT {} +impl ::core::clone::Clone for HTTP_FILTER_AUTHENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_FILTER_AUTH_COMPLETE_INFO { + pub GetHeader: isize, + pub SetHeader: isize, + pub AddHeader: isize, + pub GetUserToken: isize, + pub HttpStatus: u32, + pub fResetAuth: super::super::Foundation::BOOL, + pub dwReserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_FILTER_AUTH_COMPLETE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_FILTER_AUTH_COMPLETE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_FILTER_CONTEXT { + pub cbSize: u32, + pub Revision: u32, + pub ServerContext: *mut ::core::ffi::c_void, + pub ulReserved: u32, + pub fIsSecurePort: super::super::Foundation::BOOL, + pub pFilterContext: *mut ::core::ffi::c_void, + pub GetServerVariable: isize, + pub AddResponseHeaders: isize, + pub WriteClient: isize, + pub AllocMem: isize, + pub ServerSupportFunction: isize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_FILTER_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_FILTER_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_FILTER_LOG { + pub pszClientHostName: ::windows_sys::core::PCSTR, + pub pszClientUserName: ::windows_sys::core::PCSTR, + pub pszServerName: ::windows_sys::core::PCSTR, + pub pszOperation: ::windows_sys::core::PCSTR, + pub pszTarget: ::windows_sys::core::PCSTR, + pub pszParameters: ::windows_sys::core::PCSTR, + pub dwHttpStatus: u32, + pub dwWin32Status: u32, + pub dwBytesSent: u32, + pub dwBytesRecvd: u32, + pub msTimeForProcessing: u32, +} +impl ::core::marker::Copy for HTTP_FILTER_LOG {} +impl ::core::clone::Clone for HTTP_FILTER_LOG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_FILTER_PREPROC_HEADERS { + pub GetHeader: isize, + pub SetHeader: isize, + pub AddHeader: isize, + pub HttpStatus: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for HTTP_FILTER_PREPROC_HEADERS {} +impl ::core::clone::Clone for HTTP_FILTER_PREPROC_HEADERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_FILTER_RAW_DATA { + pub pvInData: *mut ::core::ffi::c_void, + pub cbInData: u32, + pub cbInBuffer: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for HTTP_FILTER_RAW_DATA {} +impl ::core::clone::Clone for HTTP_FILTER_RAW_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_FILTER_URL_MAP { + pub pszURL: ::windows_sys::core::PCSTR, + pub pszPhysicalPath: ::windows_sys::core::PSTR, + pub cbPathBuff: u32, +} +impl ::core::marker::Copy for HTTP_FILTER_URL_MAP {} +impl ::core::clone::Clone for HTTP_FILTER_URL_MAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_FILTER_URL_MAP_EX { + pub pszURL: ::windows_sys::core::PCSTR, + pub pszPhysicalPath: ::windows_sys::core::PSTR, + pub cbPathBuff: u32, + pub dwFlags: u32, + pub cchMatchingPath: u32, + pub cchMatchingURL: u32, + pub pszScriptMapEntry: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for HTTP_FILTER_URL_MAP_EX {} +impl ::core::clone::Clone for HTTP_FILTER_URL_MAP_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_FILTER_VERSION { + pub dwServerFilterVersion: u32, + pub dwFilterVersion: u32, + pub lpszFilterDesc: [u8; 257], + pub dwFlags: u32, +} +impl ::core::marker::Copy for HTTP_FILTER_VERSION {} +impl ::core::clone::Clone for HTTP_FILTER_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HTTP_TRACE_CONFIGURATION { + pub pProviderGuid: *const ::windows_sys::core::GUID, + pub dwAreas: u32, + pub dwVerbosity: u32, + pub fProviderEnabled: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HTTP_TRACE_CONFIGURATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HTTP_TRACE_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_TRACE_EVENT { + pub pProviderGuid: *const ::windows_sys::core::GUID, + pub dwArea: u32, + pub pAreaGuid: *const ::windows_sys::core::GUID, + pub dwEvent: u32, + pub pszEventName: ::windows_sys::core::PCWSTR, + pub dwEventVersion: u32, + pub dwVerbosity: u32, + pub pActivityGuid: *const ::windows_sys::core::GUID, + pub pRelatedActivityGuid: *const ::windows_sys::core::GUID, + pub dwTimeStamp: u32, + pub dwFlags: u32, + pub cEventItems: u32, + pub pEventItems: *mut HTTP_TRACE_EVENT_ITEM, +} +impl ::core::marker::Copy for HTTP_TRACE_EVENT {} +impl ::core::clone::Clone for HTTP_TRACE_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HTTP_TRACE_EVENT_ITEM { + pub pszName: ::windows_sys::core::PCWSTR, + pub dwDataType: HTTP_TRACE_TYPE, + pub pbData: *mut u8, + pub cbData: u32, + pub pszDataDescription: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for HTTP_TRACE_EVENT_ITEM {} +impl ::core::clone::Clone for HTTP_TRACE_EVENT_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOGGING_PARAMETERS { + pub pszSessionId: ::windows_sys::core::PCWSTR, + pub pszSiteName: ::windows_sys::core::PCWSTR, + pub pszUserName: ::windows_sys::core::PCWSTR, + pub pszHostName: ::windows_sys::core::PCWSTR, + pub pszRemoteIpAddress: ::windows_sys::core::PCWSTR, + pub dwRemoteIpPort: u32, + pub pszLocalIpAddress: ::windows_sys::core::PCWSTR, + pub dwLocalIpPort: u32, + pub BytesSent: u64, + pub BytesReceived: u64, + pub pszCommand: ::windows_sys::core::PCWSTR, + pub pszCommandParameters: ::windows_sys::core::PCWSTR, + pub pszFullPath: ::windows_sys::core::PCWSTR, + pub dwElapsedMilliseconds: u32, + pub FtpStatus: u32, + pub FtpSubStatus: u32, + pub hrStatus: ::windows_sys::core::HRESULT, + pub pszInformation: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for LOGGING_PARAMETERS {} +impl ::core::clone::Clone for LOGGING_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MD_CHANGE_OBJECT_W { + pub pszMDPath: ::windows_sys::core::PWSTR, + pub dwMDChangeType: u32, + pub dwMDNumDataIDs: u32, + pub pdwMDDataIDs: *mut u32, +} +impl ::core::marker::Copy for MD_CHANGE_OBJECT_W {} +impl ::core::clone::Clone for MD_CHANGE_OBJECT_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct METADATA_GETALL_INTERNAL_RECORD { + pub dwMDIdentifier: u32, + pub dwMDAttributes: u32, + pub dwMDUserType: u32, + pub dwMDDataType: u32, + pub dwMDDataLen: u32, + pub Anonymous: METADATA_GETALL_INTERNAL_RECORD_0, + pub dwMDDataTag: u32, +} +impl ::core::marker::Copy for METADATA_GETALL_INTERNAL_RECORD {} +impl ::core::clone::Clone for METADATA_GETALL_INTERNAL_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union METADATA_GETALL_INTERNAL_RECORD_0 { + pub dwMDDataOffset: usize, + pub pbMDData: *mut u8, +} +impl ::core::marker::Copy for METADATA_GETALL_INTERNAL_RECORD_0 {} +impl ::core::clone::Clone for METADATA_GETALL_INTERNAL_RECORD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct METADATA_GETALL_RECORD { + pub dwMDIdentifier: u32, + pub dwMDAttributes: u32, + pub dwMDUserType: u32, + pub dwMDDataType: u32, + pub dwMDDataLen: u32, + pub dwMDDataOffset: u32, + pub dwMDDataTag: u32, +} +impl ::core::marker::Copy for METADATA_GETALL_RECORD {} +impl ::core::clone::Clone for METADATA_GETALL_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct METADATA_HANDLE_INFO { + pub dwMDPermissions: u32, + pub dwMDSystemChangeNumber: u32, +} +impl ::core::marker::Copy for METADATA_HANDLE_INFO {} +impl ::core::clone::Clone for METADATA_HANDLE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct METADATA_RECORD { + pub dwMDIdentifier: u32, + pub dwMDAttributes: u32, + pub dwMDUserType: u32, + pub dwMDDataType: u32, + pub dwMDDataLen: u32, + pub pbMDData: *mut u8, + pub dwMDDataTag: u32, +} +impl ::core::marker::Copy for METADATA_RECORD {} +impl ::core::clone::Clone for METADATA_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POST_PROCESS_PARAMETERS { + pub pszSessionId: ::windows_sys::core::PCWSTR, + pub pszSiteName: ::windows_sys::core::PCWSTR, + pub pszUserName: ::windows_sys::core::PCWSTR, + pub pszHostName: ::windows_sys::core::PCWSTR, + pub pszRemoteIpAddress: ::windows_sys::core::PCWSTR, + pub dwRemoteIpPort: u32, + pub pszLocalIpAddress: ::windows_sys::core::PCWSTR, + pub dwLocalIpPort: u32, + pub BytesSent: u64, + pub BytesReceived: u64, + pub pszCommand: ::windows_sys::core::PCWSTR, + pub pszCommandParameters: ::windows_sys::core::PCWSTR, + pub pszFullPath: ::windows_sys::core::PCWSTR, + pub pszPhysicalPath: ::windows_sys::core::PCWSTR, + pub FtpStatus: u32, + pub FtpSubStatus: u32, + pub hrStatus: ::windows_sys::core::HRESULT, + pub SessionStartTime: super::super::Foundation::FILETIME, + pub BytesSentPerSession: u64, + pub BytesReceivedPerSession: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POST_PROCESS_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POST_PROCESS_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PRE_PROCESS_PARAMETERS { + pub pszSessionId: ::windows_sys::core::PCWSTR, + pub pszSiteName: ::windows_sys::core::PCWSTR, + pub pszUserName: ::windows_sys::core::PCWSTR, + pub pszHostName: ::windows_sys::core::PCWSTR, + pub pszRemoteIpAddress: ::windows_sys::core::PCWSTR, + pub dwRemoteIpPort: u32, + pub pszLocalIpAddress: ::windows_sys::core::PCWSTR, + pub dwLocalIpPort: u32, + pub pszCommand: ::windows_sys::core::PCWSTR, + pub pszCommandParameters: ::windows_sys::core::PCWSTR, + pub SessionStartTime: super::super::Foundation::FILETIME, + pub BytesSentPerSession: u64, + pub BytesReceivedPerSession: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PRE_PROCESS_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PRE_PROCESS_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_GETEXTENSIONVERSION = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_HSE_CACHE_INVALIDATION_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PFN_HSE_GET_PROTOCOL_MANAGER_CUSTOM_INTERFACE_CALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_HSE_IO_COMPLETION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_HTTPEXTENSIONPROC = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_IIS_GETSERVERVARIABLE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_IIS_READCLIENT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_IIS_SERVERSUPPORTFUNCTION = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_IIS_WRITECLIENT = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFN_TERMINATEEXTENSION = ::core::option::Option super::super::Foundation::BOOL>; +pub type PFN_WEB_CORE_ACTIVATE = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PFN_WEB_CORE_SET_METADATA_DLL_ENTRY = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PFN_WEB_CORE_SHUTDOWN = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Ioctl/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Ioctl/mod.rs new file mode 100644 index 000000000..ff887a77b --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Ioctl/mod.rs @@ -0,0 +1,9136 @@ +pub const ABL_5_WO: STORAGE_MEDIA_TYPE = 64i32; +pub const ADR_1: STORAGE_MEDIA_TYPE = 90i32; +pub const ADR_2: STORAGE_MEDIA_TYPE = 91i32; +pub const AIT1_8mm: STORAGE_MEDIA_TYPE = 38i32; +pub const AIT_8mm: STORAGE_MEDIA_TYPE = 89i32; +pub const AME_8mm: STORAGE_MEDIA_TYPE = 37i32; +pub const ASSERT_ALTERNATE: u32 = 9u32; +pub const ASSERT_PRIMARY: u32 = 8u32; +pub const ATAPI_ID_CMD: u32 = 161u32; +pub const AVATAR_F2: STORAGE_MEDIA_TYPE = 78i32; +pub const AllElements: ELEMENT_TYPE = 0i32; +pub const AtaDataTypeIdentify: STORAGE_PROTOCOL_ATA_DATA_TYPE = 1i32; +pub const AtaDataTypeLogPage: STORAGE_PROTOCOL_ATA_DATA_TYPE = 2i32; +pub const AtaDataTypeUnknown: STORAGE_PROTOCOL_ATA_DATA_TYPE = 0i32; +pub const CAP_ATAPI_ID_CMD: u32 = 2u32; +pub const CAP_ATA_ID_CMD: u32 = 1u32; +pub const CAP_SMART_CMD: u32 = 4u32; +pub const CDB_SIZE: u32 = 16u32; +pub const CD_R: STORAGE_MEDIA_TYPE = 52i32; +pub const CD_ROM: STORAGE_MEDIA_TYPE = 51i32; +pub const CD_RW: STORAGE_MEDIA_TYPE = 53i32; +pub const CHANGER_BAR_CODE_SCANNER_INSTALLED: CHANGER_FEATURES = 1u32; +pub const CHANGER_CARTRIDGE_MAGAZINE: CHANGER_FEATURES = 256u32; +pub const CHANGER_CLEANER_ACCESS_NOT_VALID: CHANGER_FEATURES = 262144u32; +pub const CHANGER_CLEANER_AUTODISMOUNT: GET_CHANGER_PARAMETERS_FEATURES1 = 2147483652u32; +pub const CHANGER_CLEANER_OPS_NOT_SUPPORTED: GET_CHANGER_PARAMETERS_FEATURES1 = 2147483712u32; +pub const CHANGER_CLEANER_SLOT: CHANGER_FEATURES = 64u32; +pub const CHANGER_CLOSE_IEPORT: CHANGER_FEATURES = 4u32; +pub const CHANGER_DEVICE_REINITIALIZE_CAPABLE: CHANGER_FEATURES = 134217728u32; +pub const CHANGER_DRIVE_CLEANING_REQUIRED: CHANGER_FEATURES = 65536u32; +pub const CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS: CHANGER_FEATURES = 536870912u32; +pub const CHANGER_EXCHANGE_MEDIA: CHANGER_FEATURES = 32u32; +pub const CHANGER_IEPORT_USER_CONTROL_CLOSE: GET_CHANGER_PARAMETERS_FEATURES1 = 2147483904u32; +pub const CHANGER_IEPORT_USER_CONTROL_OPEN: GET_CHANGER_PARAMETERS_FEATURES1 = 2147483776u32; +pub const CHANGER_INIT_ELEM_STAT_WITH_RANGE: CHANGER_FEATURES = 2u32; +pub const CHANGER_KEYPAD_ENABLE_DISABLE: CHANGER_FEATURES = 268435456u32; +pub const CHANGER_LOCK_UNLOCK: CHANGER_FEATURES = 128u32; +pub const CHANGER_MEDIUM_FLIP: CHANGER_FEATURES = 512u32; +pub const CHANGER_MOVE_EXTENDS_IEPORT: GET_CHANGER_PARAMETERS_FEATURES1 = 2147484160u32; +pub const CHANGER_MOVE_RETRACTS_IEPORT: GET_CHANGER_PARAMETERS_FEATURES1 = 2147484672u32; +pub const CHANGER_OPEN_IEPORT: CHANGER_FEATURES = 8u32; +pub const CHANGER_POSITION_TO_ELEMENT: CHANGER_FEATURES = 1024u32; +pub const CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE: GET_CHANGER_PARAMETERS_FEATURES1 = 2147483650u32; +pub const CHANGER_PREDISMOUNT_ALIGN_TO_SLOT: GET_CHANGER_PARAMETERS_FEATURES1 = 2147483649u32; +pub const CHANGER_PREDISMOUNT_EJECT_REQUIRED: CHANGER_FEATURES = 131072u32; +pub const CHANGER_PREMOUNT_EJECT_REQUIRED: CHANGER_FEATURES = 524288u32; +pub const CHANGER_REPORT_IEPORT_STATE: CHANGER_FEATURES = 2048u32; +pub const CHANGER_RESERVED_BIT: u32 = 2147483648u32; +pub const CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR: GET_CHANGER_PARAMETERS_FEATURES1 = 2147483680u32; +pub const CHANGER_SERIAL_NUMBER_VALID: CHANGER_FEATURES = 67108864u32; +pub const CHANGER_SLOTS_USE_TRAYS: GET_CHANGER_PARAMETERS_FEATURES1 = 2147483664u32; +pub const CHANGER_STATUS_NON_VOLATILE: CHANGER_FEATURES = 16u32; +pub const CHANGER_STORAGE_DRIVE: CHANGER_FEATURES = 4096u32; +pub const CHANGER_STORAGE_IEPORT: CHANGER_FEATURES = 8192u32; +pub const CHANGER_STORAGE_SLOT: CHANGER_FEATURES = 16384u32; +pub const CHANGER_STORAGE_TRANSPORT: CHANGER_FEATURES = 32768u32; +pub const CHANGER_TO_DRIVE: u32 = 8u32; +pub const CHANGER_TO_IEPORT: u32 = 4u32; +pub const CHANGER_TO_SLOT: u32 = 2u32; +pub const CHANGER_TO_TRANSPORT: u32 = 1u32; +pub const CHANGER_TRUE_EXCHANGE_CAPABLE: GET_CHANGER_PARAMETERS_FEATURES1 = 2147483656u32; +pub const CHANGER_VOLUME_ASSERT: CHANGER_FEATURES = 4194304u32; +pub const CHANGER_VOLUME_IDENTIFICATION: CHANGER_FEATURES = 1048576u32; +pub const CHANGER_VOLUME_REPLACE: CHANGER_FEATURES = 8388608u32; +pub const CHANGER_VOLUME_SEARCH: CHANGER_FEATURES = 2097152u32; +pub const CHANGER_VOLUME_UNDEFINE: CHANGER_FEATURES = 16777216u32; +pub const CHECKSUM_TYPE_CRC32: u32 = 1u32; +pub const CHECKSUM_TYPE_CRC64: u32 = 2u32; +pub const CHECKSUM_TYPE_ECC: u32 = 3u32; +pub const CHECKSUM_TYPE_FIRST_UNUSED_TYPE: u32 = 4u32; +pub const CHECKSUM_TYPE_NONE: u32 = 0u32; +pub const CHECKSUM_TYPE_UNCHANGED: i32 = -1i32; +pub const CLEANER_CARTRIDGE: STORAGE_MEDIA_TYPE = 50i32; +pub const CONTAINER_ROOT_INFO_FLAG_BIND_DO_NOT_MAP_NAME: u32 = 256u32; +pub const CONTAINER_ROOT_INFO_FLAG_BIND_EXCEPTION_ROOT: u32 = 128u32; +pub const CONTAINER_ROOT_INFO_FLAG_BIND_ROOT: u32 = 32u32; +pub const CONTAINER_ROOT_INFO_FLAG_BIND_TARGET_ROOT: u32 = 64u32; +pub const CONTAINER_ROOT_INFO_FLAG_LAYER_ROOT: u32 = 2u32; +pub const CONTAINER_ROOT_INFO_FLAG_SCRATCH_ROOT: u32 = 1u32; +pub const CONTAINER_ROOT_INFO_FLAG_UNION_LAYER_ROOT: u32 = 512u32; +pub const CONTAINER_ROOT_INFO_FLAG_VIRTUALIZATION_EXCEPTION_ROOT: u32 = 16u32; +pub const CONTAINER_ROOT_INFO_FLAG_VIRTUALIZATION_ROOT: u32 = 4u32; +pub const CONTAINER_ROOT_INFO_FLAG_VIRTUALIZATION_TARGET_ROOT: u32 = 8u32; +pub const CONTAINER_ROOT_INFO_VALID_FLAGS: u32 = 1023u32; +pub const CONTAINER_VOLUME_STATE_HOSTING_CONTAINER: u32 = 1u32; +pub const COPYFILE_SIS_FLAGS: u32 = 3u32; +pub const COPYFILE_SIS_LINK: u32 = 1u32; +pub const COPYFILE_SIS_REPLACE: u32 = 2u32; +pub const CSV_INVALID_DEVICE_NUMBER: u32 = 4294967295u32; +pub const CSV_MGMTLOCK_CHECK_VOLUME_REDIRECTED: u32 = 1u32; +pub const CSV_QUERY_MDS_PATH_FLAG_CSV_DIRECT_IO_ENABLED: u32 = 2u32; +pub const CSV_QUERY_MDS_PATH_FLAG_SMB_BYPASS_CSV_ENABLED: u32 = 4u32; +pub const CSV_QUERY_MDS_PATH_FLAG_STORAGE_ON_THIS_NODE_IS_CONNECTED: u32 = 1u32; +pub const CSV_QUERY_MDS_PATH_V2_VERSION_1: u32 = 1u32; +pub const CYGNET_12_WO: STORAGE_MEDIA_TYPE = 69i32; +pub const ChangerDoor: ELEMENT_TYPE = 5i32; +pub const ChangerDrive: ELEMENT_TYPE = 4i32; +pub const ChangerIEPort: ELEMENT_TYPE = 3i32; +pub const ChangerKeypad: ELEMENT_TYPE = 6i32; +pub const ChangerMaxElement: ELEMENT_TYPE = 7i32; +pub const ChangerSlot: ELEMENT_TYPE = 2i32; +pub const ChangerTransport: ELEMENT_TYPE = 1i32; +pub const CsvControlDisableCaching: CSV_CONTROL_OP = 19i32; +pub const CsvControlEnableCaching: CSV_CONTROL_OP = 20i32; +pub const CsvControlEnableUSNRangeModificationTracking: CSV_CONTROL_OP = 13i32; +pub const CsvControlGetCsvFsMdsPathV2: CSV_CONTROL_OP = 18i32; +pub const CsvControlMarkHandleLocalVolumeMount: CSV_CONTROL_OP = 14i32; +pub const CsvControlQueryFileRevision: CSV_CONTROL_OP = 6i32; +pub const CsvControlQueryFileRevisionFileId128: CSV_CONTROL_OP = 9i32; +pub const CsvControlQueryMdsPath: CSV_CONTROL_OP = 8i32; +pub const CsvControlQueryMdsPathNoPause: CSV_CONTROL_OP = 23i32; +pub const CsvControlQueryRedirectState: CSV_CONTROL_OP = 4i32; +pub const CsvControlQueryVolumeId: CSV_CONTROL_OP = 25i32; +pub const CsvControlQueryVolumeRedirectState: CSV_CONTROL_OP = 10i32; +pub const CsvControlSetVolumeId: CSV_CONTROL_OP = 24i32; +pub const CsvControlStartForceDFO: CSV_CONTROL_OP = 21i32; +pub const CsvControlStartRedirectFile: CSV_CONTROL_OP = 2i32; +pub const CsvControlStopForceDFO: CSV_CONTROL_OP = 22i32; +pub const CsvControlStopRedirectFile: CSV_CONTROL_OP = 3i32; +pub const CsvControlUnmarkHandleLocalVolumeMount: CSV_CONTROL_OP = 15i32; +pub const CsvFsDiskConnectivityAllNodes: CSVFS_DISK_CONNECTIVITY = 3i32; +pub const CsvFsDiskConnectivityMdsNodeOnly: CSVFS_DISK_CONNECTIVITY = 1i32; +pub const CsvFsDiskConnectivityNone: CSVFS_DISK_CONNECTIVITY = 0i32; +pub const CsvFsDiskConnectivitySubsetOfNodes: CSVFS_DISK_CONNECTIVITY = 2i32; +pub const DAX_ALLOC_ALIGNMENT_FLAG_FALLBACK_SPECIFIED: u32 = 2u32; +pub const DAX_ALLOC_ALIGNMENT_FLAG_MANDATORY: u32 = 1u32; +pub const DDS_4mm: STORAGE_MEDIA_TYPE = 32i32; +pub const DDUMP_FLAG_DATA_READ_FROM_DEVICE: u32 = 1u32; +pub const DEVICEDUMP_CAP_PRIVATE_SECTION: u32 = 1u32; +pub const DEVICEDUMP_CAP_RESTRICTED_SECTION: u32 = 2u32; +pub const DEVICEDUMP_MAX_IDSTRING: u32 = 32u32; +pub const DEVICEDUMP_STRUCTURE_VERSION_V1: u32 = 1u32; +pub const DEVICE_DATA_SET_LBP_STATE_PARAMETERS_VERSION_V1: u32 = 1u32; +pub const DEVICE_DSM_FLAG_ALLOCATION_CONSOLIDATEABLE_ONLY: u32 = 1073741824u32; +pub const DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE: u32 = 1u32; +pub const DEVICE_DSM_FLAG_PHYSICAL_ADDRESSES_OMIT_TOTAL_RANGES: u32 = 268435456u32; +pub const DEVICE_DSM_FLAG_REPAIR_INPUT_TOPOLOGY_ID_PRESENT: u32 = 1073741824u32; +pub const DEVICE_DSM_FLAG_REPAIR_OUTPUT_PARITY_EXTENT: u32 = 536870912u32; +pub const DEVICE_DSM_FLAG_SCRUB_OUTPUT_PARITY_EXTENT: u32 = 536870912u32; +pub const DEVICE_DSM_FLAG_SCRUB_SKIP_IN_SYNC: u32 = 268435456u32; +pub const DEVICE_DSM_FLAG_TRIM_BYPASS_RZAT: u32 = 1073741824u32; +pub const DEVICE_DSM_FLAG_TRIM_NOT_FS_ALLOCATED: u32 = 2147483648u32; +pub const DEVICE_DSM_NOTIFY_FLAG_BEGIN: u32 = 1u32; +pub const DEVICE_DSM_NOTIFY_FLAG_END: u32 = 2u32; +pub const DEVICE_DSM_PARAMETERS_V1: u32 = 1u32; +pub const DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT_V1: u32 = 1u32; +pub const DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT_VERSION_V1: u32 = 1u32; +pub const DEVICE_DSM_RANGE_ERROR_INFO_VERSION_V1: u32 = 1u32; +pub const DEVICE_DSM_RANGE_ERROR_OUTPUT_V1: u32 = 1u32; +pub const DEVICE_STORAGE_NO_ERRORS: u32 = 1u32; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Storage_Disk_Number: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d1ebee8_0803_4774_9842_b77db50265e9), pid: 5 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Storage_Gpt_Name: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d1ebee8_0803_4774_9842_b77db50265e9), pid: 9 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Storage_Gpt_Type: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d1ebee8_0803_4774_9842_b77db50265e9), pid: 8 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Storage_Mbr_Type: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d1ebee8_0803_4774_9842_b77db50265e9), pid: 7 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Storage_Partition_Number: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d1ebee8_0803_4774_9842_b77db50265e9), pid: 6 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Storage_Portable: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d1ebee8_0803_4774_9842_b77db50265e9), pid: 2 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Storage_Removable_Media: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d1ebee8_0803_4774_9842_b77db50265e9), pid: 3 }; +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const DEVPKEY_Storage_System_Critical: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x4d1ebee8_0803_4774_9842_b77db50265e9), pid: 4 }; +pub const DISABLE_SMART: u32 = 217u32; +pub const DISK_ATTRIBUTE_OFFLINE: u64 = 1u64; +pub const DISK_ATTRIBUTE_READ_ONLY: u64 = 2u64; +pub const DISK_BINNING: u32 = 3u32; +pub const DISK_LOGGING_DUMP: u32 = 2u32; +pub const DISK_LOGGING_START: u32 = 0u32; +pub const DISK_LOGGING_STOP: u32 = 1u32; +pub const DLT: STORAGE_MEDIA_TYPE = 39i32; +pub const DMI: STORAGE_MEDIA_TYPE = 48i32; +pub const DST_L: STORAGE_MEDIA_TYPE = 82i32; +pub const DST_M: STORAGE_MEDIA_TYPE = 81i32; +pub const DST_S: STORAGE_MEDIA_TYPE = 80i32; +pub const DUPLICATE_EXTENTS_DATA_EX_ASYNC: u32 = 2u32; +pub const DUPLICATE_EXTENTS_DATA_EX_SOURCE_ATOMIC: u32 = 1u32; +pub const DVD_R: STORAGE_MEDIA_TYPE = 55i32; +pub const DVD_RAM: STORAGE_MEDIA_TYPE = 88i32; +pub const DVD_ROM: STORAGE_MEDIA_TYPE = 54i32; +pub const DVD_RW: STORAGE_MEDIA_TYPE = 56i32; +pub const DV_6mm: STORAGE_MEDIA_TYPE = 47i32; +pub const DetectExInt13: DETECTION_TYPE = 2i32; +pub const DetectInt13: DETECTION_TYPE = 1i32; +pub const DetectNone: DETECTION_TYPE = 0i32; +pub const DeviceCurrentInternalStatusData: DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE = 2i32; +pub const DeviceCurrentInternalStatusDataHeader: DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE = 1i32; +pub const DeviceDsmActionFlag_NonDestructive: u32 = 2147483648u32; +pub const DeviceInternalStatusDataRequestTypeUndefined: DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE = 0i32; +pub const DeviceProblemCHMError: CHANGER_DEVICE_PROBLEM_TYPE = 2i32; +pub const DeviceProblemCHMMoveError: CHANGER_DEVICE_PROBLEM_TYPE = 6i32; +pub const DeviceProblemCHMZeroError: CHANGER_DEVICE_PROBLEM_TYPE = 7i32; +pub const DeviceProblemCalibrationError: CHANGER_DEVICE_PROBLEM_TYPE = 4i32; +pub const DeviceProblemCartridgeEjectError: CHANGER_DEVICE_PROBLEM_TYPE = 11i32; +pub const DeviceProblemCartridgeInsertError: CHANGER_DEVICE_PROBLEM_TYPE = 8i32; +pub const DeviceProblemDoorOpen: CHANGER_DEVICE_PROBLEM_TYPE = 3i32; +pub const DeviceProblemDriveError: CHANGER_DEVICE_PROBLEM_TYPE = 13i32; +pub const DeviceProblemGripperError: CHANGER_DEVICE_PROBLEM_TYPE = 12i32; +pub const DeviceProblemHardware: CHANGER_DEVICE_PROBLEM_TYPE = 1i32; +pub const DeviceProblemNone: CHANGER_DEVICE_PROBLEM_TYPE = 0i32; +pub const DeviceProblemPositionError: CHANGER_DEVICE_PROBLEM_TYPE = 9i32; +pub const DeviceProblemSensorError: CHANGER_DEVICE_PROBLEM_TYPE = 10i32; +pub const DeviceProblemTargetFailure: CHANGER_DEVICE_PROBLEM_TYPE = 5i32; +pub const DeviceSavedInternalStatusData: DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE = 4i32; +pub const DeviceSavedInternalStatusDataHeader: DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE = 3i32; +pub const DeviceStatusDataSet1: DEVICE_INTERNAL_STATUS_DATA_SET = 1i32; +pub const DeviceStatusDataSet2: DEVICE_INTERNAL_STATUS_DATA_SET = 2i32; +pub const DeviceStatusDataSet3: DEVICE_INTERNAL_STATUS_DATA_SET = 3i32; +pub const DeviceStatusDataSet4: DEVICE_INTERNAL_STATUS_DATA_SET = 4i32; +pub const DeviceStatusDataSetMax: DEVICE_INTERNAL_STATUS_DATA_SET = 5i32; +pub const DeviceStatusDataSetUndefined: DEVICE_INTERNAL_STATUS_DATA_SET = 0i32; +pub const DiskHealthHealthy: STORAGE_DISK_HEALTH_STATUS = 3i32; +pub const DiskHealthMax: STORAGE_DISK_HEALTH_STATUS = 4i32; +pub const DiskHealthUnhealthy: STORAGE_DISK_HEALTH_STATUS = 1i32; +pub const DiskHealthUnknown: STORAGE_DISK_HEALTH_STATUS = 0i32; +pub const DiskHealthWarning: STORAGE_DISK_HEALTH_STATUS = 2i32; +pub const DiskOpReasonBackgroundOperation: STORAGE_OPERATIONAL_STATUS_REASON = 12i32; +pub const DiskOpReasonComponent: STORAGE_OPERATIONAL_STATUS_REASON = 10i32; +pub const DiskOpReasonConfiguration: STORAGE_OPERATIONAL_STATUS_REASON = 7i32; +pub const DiskOpReasonDataPersistenceLossImminent: STORAGE_OPERATIONAL_STATUS_REASON = 18i32; +pub const DiskOpReasonDeviceController: STORAGE_OPERATIONAL_STATUS_REASON = 8i32; +pub const DiskOpReasonDisabledByPlatform: STORAGE_OPERATIONAL_STATUS_REASON = 16i32; +pub const DiskOpReasonEnergySource: STORAGE_OPERATIONAL_STATUS_REASON = 6i32; +pub const DiskOpReasonHealthCheck: STORAGE_OPERATIONAL_STATUS_REASON = 14i32; +pub const DiskOpReasonInvalidFirmware: STORAGE_OPERATIONAL_STATUS_REASON = 13i32; +pub const DiskOpReasonIo: STORAGE_OPERATIONAL_STATUS_REASON = 3i32; +pub const DiskOpReasonLostData: STORAGE_OPERATIONAL_STATUS_REASON = 5i32; +pub const DiskOpReasonLostDataPersistence: STORAGE_OPERATIONAL_STATUS_REASON = 15i32; +pub const DiskOpReasonLostWritePersistence: STORAGE_OPERATIONAL_STATUS_REASON = 17i32; +pub const DiskOpReasonMax: STORAGE_OPERATIONAL_STATUS_REASON = 20i32; +pub const DiskOpReasonMedia: STORAGE_OPERATIONAL_STATUS_REASON = 2i32; +pub const DiskOpReasonMediaController: STORAGE_OPERATIONAL_STATUS_REASON = 9i32; +pub const DiskOpReasonNVDIMM_N: STORAGE_OPERATIONAL_STATUS_REASON = 11i32; +pub const DiskOpReasonScsiSenseCode: STORAGE_OPERATIONAL_STATUS_REASON = 1i32; +pub const DiskOpReasonThresholdExceeded: STORAGE_OPERATIONAL_STATUS_REASON = 4i32; +pub const DiskOpReasonUnknown: STORAGE_OPERATIONAL_STATUS_REASON = 0i32; +pub const DiskOpReasonWritePersistenceLossImminent: STORAGE_OPERATIONAL_STATUS_REASON = 19i32; +pub const DiskOpStatusHardwareError: STORAGE_DISK_OPERATIONAL_STATUS = 5i32; +pub const DiskOpStatusInService: STORAGE_DISK_OPERATIONAL_STATUS = 4i32; +pub const DiskOpStatusMissing: STORAGE_DISK_OPERATIONAL_STATUS = 8i32; +pub const DiskOpStatusNone: STORAGE_DISK_OPERATIONAL_STATUS = 0i32; +pub const DiskOpStatusNotUsable: STORAGE_DISK_OPERATIONAL_STATUS = 6i32; +pub const DiskOpStatusOk: STORAGE_DISK_OPERATIONAL_STATUS = 2i32; +pub const DiskOpStatusPredictingFailure: STORAGE_DISK_OPERATIONAL_STATUS = 3i32; +pub const DiskOpStatusTransientError: STORAGE_DISK_OPERATIONAL_STATUS = 7i32; +pub const DiskOpStatusUnknown: STORAGE_DISK_OPERATIONAL_STATUS = 1i32; +pub const EFS_TRACKED_OFFSET_HEADER_FLAG: u32 = 1u32; +pub const ELEMENT_STATUS_ACCESS: CHANGER_ELEMENT_STATUS_FLAGS = 8u32; +pub const ELEMENT_STATUS_AVOLTAG: CHANGER_ELEMENT_STATUS_FLAGS = 536870912u32; +pub const ELEMENT_STATUS_EXCEPT: CHANGER_ELEMENT_STATUS_FLAGS = 4u32; +pub const ELEMENT_STATUS_EXENAB: CHANGER_ELEMENT_STATUS_FLAGS = 16u32; +pub const ELEMENT_STATUS_FULL: CHANGER_ELEMENT_STATUS_FLAGS = 1u32; +pub const ELEMENT_STATUS_ID_VALID: CHANGER_ELEMENT_STATUS_FLAGS = 8192u32; +pub const ELEMENT_STATUS_IMPEXP: CHANGER_ELEMENT_STATUS_FLAGS = 2u32; +pub const ELEMENT_STATUS_INENAB: CHANGER_ELEMENT_STATUS_FLAGS = 32u32; +pub const ELEMENT_STATUS_INVERT: CHANGER_ELEMENT_STATUS_FLAGS = 4194304u32; +pub const ELEMENT_STATUS_LUN_VALID: CHANGER_ELEMENT_STATUS_FLAGS = 4096u32; +pub const ELEMENT_STATUS_NOT_BUS: CHANGER_ELEMENT_STATUS_FLAGS = 32768u32; +pub const ELEMENT_STATUS_PRODUCT_DATA: CHANGER_ELEMENT_STATUS_FLAGS = 64u32; +pub const ELEMENT_STATUS_PVOLTAG: CHANGER_ELEMENT_STATUS_FLAGS = 268435456u32; +pub const ELEMENT_STATUS_SVALID: CHANGER_ELEMENT_STATUS_FLAGS = 8388608u32; +pub const ENABLE_DISABLE_AUTOSAVE: u32 = 210u32; +pub const ENABLE_DISABLE_AUTO_OFFLINE: u32 = 219u32; +pub const ENABLE_SMART: u32 = 216u32; +pub const ENCRYPTED_DATA_INFO_SPARSE_FILE: u32 = 1u32; +pub const ENCRYPTION_FORMAT_DEFAULT: u32 = 1u32; +pub const ERROR_DRIVE_NOT_INSTALLED: u32 = 8u32; +pub const ERROR_HISTORY_DIRECTORY_ENTRY_DEFAULT_COUNT: u32 = 8u32; +pub const ERROR_INIT_STATUS_NEEDED: u32 = 17u32; +pub const ERROR_LABEL_QUESTIONABLE: u32 = 2u32; +pub const ERROR_LABEL_UNREADABLE: u32 = 1u32; +pub const ERROR_SLOT_NOT_PRESENT: u32 = 4u32; +pub const ERROR_TRAY_MALFUNCTION: u32 = 16u32; +pub const ERROR_UNHANDLED_ERROR: u32 = 4294967295u32; +pub const EXECUTE_OFFLINE_DIAGS: u32 = 212u32; +pub const EXTEND_IEPORT: u32 = 2u32; +pub const EqualPriority: DISK_CACHE_RETENTION_PRIORITY = 0i32; +pub const F3_120M_512: MEDIA_TYPE = 13i32; +pub const F3_128Mb_512: MEDIA_TYPE = 20i32; +pub const F3_1Pt23_1024: MEDIA_TYPE = 18i32; +pub const F3_1Pt2_512: MEDIA_TYPE = 17i32; +pub const F3_1Pt44_512: MEDIA_TYPE = 2i32; +pub const F3_200Mb_512: MEDIA_TYPE = 23i32; +pub const F3_20Pt8_512: MEDIA_TYPE = 4i32; +pub const F3_230Mb_512: MEDIA_TYPE = 21i32; +pub const F3_240M_512: MEDIA_TYPE = 24i32; +pub const F3_2Pt88_512: MEDIA_TYPE = 3i32; +pub const F3_32M_512: MEDIA_TYPE = 25i32; +pub const F3_640_512: MEDIA_TYPE = 14i32; +pub const F3_720_512: MEDIA_TYPE = 5i32; +pub const F5_160_512: MEDIA_TYPE = 10i32; +pub const F5_180_512: MEDIA_TYPE = 9i32; +pub const F5_1Pt23_1024: MEDIA_TYPE = 19i32; +pub const F5_1Pt2_512: MEDIA_TYPE = 1i32; +pub const F5_320_1024: MEDIA_TYPE = 8i32; +pub const F5_320_512: MEDIA_TYPE = 7i32; +pub const F5_360_512: MEDIA_TYPE = 6i32; +pub const F5_640_512: MEDIA_TYPE = 15i32; +pub const F5_720_512: MEDIA_TYPE = 16i32; +pub const F8_256_128: MEDIA_TYPE = 22i32; +pub const FILESYSTEM_STATISTICS_TYPE_EXFAT: FILESYSTEM_STATISTICS_TYPE = 3u16; +pub const FILESYSTEM_STATISTICS_TYPE_FAT: FILESYSTEM_STATISTICS_TYPE = 2u16; +pub const FILESYSTEM_STATISTICS_TYPE_NTFS: FILESYSTEM_STATISTICS_TYPE = 1u16; +pub const FILESYSTEM_STATISTICS_TYPE_REFS: u32 = 4u32; +pub const FILE_ANY_ACCESS: u32 = 0u32; +pub const FILE_CLEAR_ENCRYPTION: u32 = 2u32; +pub const FILE_DEVICE_8042_PORT: u32 = 39u32; +pub const FILE_DEVICE_ACPI: u32 = 50u32; +pub const FILE_DEVICE_BATTERY: u32 = 41u32; +pub const FILE_DEVICE_BEEP: u32 = 1u32; +pub const FILE_DEVICE_BIOMETRIC: u32 = 68u32; +pub const FILE_DEVICE_BLUETOOTH: u32 = 65u32; +pub const FILE_DEVICE_BUS_EXTENDER: u32 = 42u32; +pub const FILE_DEVICE_CD_ROM_FILE_SYSTEM: u32 = 3u32; +pub const FILE_DEVICE_CHANGER: u32 = 48u32; +pub const FILE_DEVICE_CONSOLE: u32 = 80u32; +pub const FILE_DEVICE_CONTROLLER: u32 = 4u32; +pub const FILE_DEVICE_CRYPT_PROVIDER: u32 = 63u32; +pub const FILE_DEVICE_DATALINK: u32 = 5u32; +pub const FILE_DEVICE_DEVAPI: u32 = 71u32; +pub const FILE_DEVICE_DFS: u32 = 6u32; +pub const FILE_DEVICE_DFS_FILE_SYSTEM: u32 = 53u32; +pub const FILE_DEVICE_DFS_VOLUME: u32 = 54u32; +pub const FILE_DEVICE_DISK_FILE_SYSTEM: u32 = 8u32; +pub const FILE_DEVICE_EHSTOR: u32 = 70u32; +pub const FILE_DEVICE_EVENT_COLLECTOR: u32 = 95u32; +pub const FILE_DEVICE_FILE_SYSTEM: u32 = 9u32; +pub const FILE_DEVICE_FIPS: u32 = 58u32; +pub const FILE_DEVICE_FULLSCREEN_VIDEO: u32 = 52u32; +pub const FILE_DEVICE_GPIO: u32 = 72u32; +pub const FILE_DEVICE_HOLOGRAPHIC: u32 = 91u32; +pub const FILE_DEVICE_INFINIBAND: u32 = 59u32; +pub const FILE_DEVICE_INPORT_PORT: u32 = 10u32; +pub const FILE_DEVICE_KEYBOARD: u32 = 11u32; +pub const FILE_DEVICE_KS: u32 = 47u32; +pub const FILE_DEVICE_KSEC: u32 = 57u32; +pub const FILE_DEVICE_MAILSLOT: u32 = 12u32; +pub const FILE_DEVICE_MASS_STORAGE: u32 = 45u32; +pub const FILE_DEVICE_MIDI_IN: u32 = 13u32; +pub const FILE_DEVICE_MIDI_OUT: u32 = 14u32; +pub const FILE_DEVICE_MODEM: u32 = 43u32; +pub const FILE_DEVICE_MOUSE: u32 = 15u32; +pub const FILE_DEVICE_MT_COMPOSITE: u32 = 66u32; +pub const FILE_DEVICE_MT_TRANSPORT: u32 = 67u32; +pub const FILE_DEVICE_MULTI_UNC_PROVIDER: u32 = 16u32; +pub const FILE_DEVICE_NAMED_PIPE: u32 = 17u32; +pub const FILE_DEVICE_NETWORK: u32 = 18u32; +pub const FILE_DEVICE_NETWORK_BROWSER: u32 = 19u32; +pub const FILE_DEVICE_NETWORK_FILE_SYSTEM: u32 = 20u32; +pub const FILE_DEVICE_NETWORK_REDIRECTOR: u32 = 40u32; +pub const FILE_DEVICE_NFP: u32 = 81u32; +pub const FILE_DEVICE_NULL: u32 = 21u32; +pub const FILE_DEVICE_NVDIMM: u32 = 90u32; +pub const FILE_DEVICE_PARALLEL_PORT: u32 = 22u32; +pub const FILE_DEVICE_PERSISTENT_MEMORY: u32 = 89u32; +pub const FILE_DEVICE_PHYSICAL_NETCARD: u32 = 23u32; +pub const FILE_DEVICE_PMI: u32 = 69u32; +pub const FILE_DEVICE_POINT_OF_SERVICE: u32 = 84u32; +pub const FILE_DEVICE_PRINTER: u32 = 24u32; +pub const FILE_DEVICE_PRM: u32 = 94u32; +pub const FILE_DEVICE_SCANNER: u32 = 25u32; +pub const FILE_DEVICE_SCREEN: u32 = 28u32; +pub const FILE_DEVICE_SDFXHCI: u32 = 92u32; +pub const FILE_DEVICE_SERENUM: u32 = 55u32; +pub const FILE_DEVICE_SERIAL_MOUSE_PORT: u32 = 26u32; +pub const FILE_DEVICE_SERIAL_PORT: u32 = 27u32; +pub const FILE_DEVICE_SMB: u32 = 46u32; +pub const FILE_DEVICE_SOUND: u32 = 29u32; +pub const FILE_DEVICE_SOUNDWIRE: u32 = 97u32; +pub const FILE_DEVICE_STORAGE_REPLICATION: u32 = 85u32; +pub const FILE_DEVICE_STREAMS: u32 = 30u32; +pub const FILE_DEVICE_SYSENV: u32 = 82u32; +pub const FILE_DEVICE_TAPE_FILE_SYSTEM: u32 = 32u32; +pub const FILE_DEVICE_TERMSRV: u32 = 56u32; +pub const FILE_DEVICE_TRANSPORT: u32 = 33u32; +pub const FILE_DEVICE_TRUST_ENV: u32 = 86u32; +pub const FILE_DEVICE_UCM: u32 = 87u32; +pub const FILE_DEVICE_UCMTCPCI: u32 = 88u32; +pub const FILE_DEVICE_UCMUCSI: u32 = 93u32; +pub const FILE_DEVICE_UNKNOWN: u32 = 34u32; +pub const FILE_DEVICE_USB4: u32 = 96u32; +pub const FILE_DEVICE_USBEX: u32 = 73u32; +pub const FILE_DEVICE_VDM: u32 = 44u32; +pub const FILE_DEVICE_VIDEO: u32 = 35u32; +pub const FILE_DEVICE_VIRTUAL_BLOCK: u32 = 83u32; +pub const FILE_DEVICE_VIRTUAL_DISK: u32 = 36u32; +pub const FILE_DEVICE_VMBUS: u32 = 62u32; +pub const FILE_DEVICE_WAVE_IN: u32 = 37u32; +pub const FILE_DEVICE_WAVE_OUT: u32 = 38u32; +pub const FILE_DEVICE_WPD: u32 = 64u32; +pub const FILE_INITIATE_REPAIR_HINT1_ATTRIBUTE_NON_RESIDENT: u64 = 137438953472u64; +pub const FILE_INITIATE_REPAIR_HINT1_ATTRIBUTE_NOT_FOUND: u64 = 4096u64; +pub const FILE_INITIATE_REPAIR_HINT1_ATTRIBUTE_TOO_SMALL: u64 = 68719476736u64; +pub const FILE_INITIATE_REPAIR_HINT1_CLUSTERS_ALREADY_IN_USE: u64 = 32768u64; +pub const FILE_INITIATE_REPAIR_HINT1_DENY_DEFRAG: u64 = 274877906944u64; +pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_IS_BASE_RECORD: u64 = 524288u64; +pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_NOT_BASE_RECORD: u64 = 8u64; +pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_NOT_EXIST: u64 = 4u64; +pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_NOT_IN_USE: u64 = 1u64; +pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_NOT_ORPHAN: u64 = 262144u64; +pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_REUSED: u64 = 2u64; +pub const FILE_INITIATE_REPAIR_HINT1_INDEX_ENTRY_MISMATCH: u64 = 1099511627776u64; +pub const FILE_INITIATE_REPAIR_HINT1_INVALID_ARRAY_LENGTH_COUNT: u64 = 1048576u64; +pub const FILE_INITIATE_REPAIR_HINT1_INVALID_LCN: u64 = 4294967296u64; +pub const FILE_INITIATE_REPAIR_HINT1_INVALID_ORPHAN_RECOVERY_NAME: u64 = 2199023255552u64; +pub const FILE_INITIATE_REPAIR_HINT1_INVALID_PARENT: u64 = 8388608u64; +pub const FILE_INITIATE_REPAIR_HINT1_INVALID_RUN_LENGTH: u64 = 131072u64; +pub const FILE_INITIATE_REPAIR_HINT1_INVALID_VCN: u64 = 8589934592u64; +pub const FILE_INITIATE_REPAIR_HINT1_LCN_NOT_EXIST: u64 = 65536u64; +pub const FILE_INITIATE_REPAIR_HINT1_MULTIPLE_FILE_NAME_ATTRIBUTES: u64 = 4398046511104u64; +pub const FILE_INITIATE_REPAIR_HINT1_NAME_CONFLICT: u64 = 17179869184u64; +pub const FILE_INITIATE_REPAIR_HINT1_NOTHING_WRONG: u64 = 2048u64; +pub const FILE_INITIATE_REPAIR_HINT1_NOT_IMPLEMENTED: u64 = 32u64; +pub const FILE_INITIATE_REPAIR_HINT1_ORPHAN: u64 = 34359738368u64; +pub const FILE_INITIATE_REPAIR_HINT1_ORPHAN_GENERATED: u64 = 512u64; +pub const FILE_INITIATE_REPAIR_HINT1_OUT_OF_GENERIC_NAMES: u64 = 1073741824u64; +pub const FILE_INITIATE_REPAIR_HINT1_OUT_OF_RESOURCE: u64 = 2147483648u64; +pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_NOT_BASE_RECORD: u64 = 134217728u64; +pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_NOT_EXIST: u64 = 67108864u64; +pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_NOT_INDEX: u64 = 268435456u64; +pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_NOT_IN_USE: u64 = 16777216u64; +pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_REUSED: u64 = 33554432u64; +pub const FILE_INITIATE_REPAIR_HINT1_POTENTIAL_CROSSLINK: u64 = 8192u64; +pub const FILE_INITIATE_REPAIR_HINT1_PREVIOUS_PARENT_STILL_VALID: u64 = 549755813888u64; +pub const FILE_INITIATE_REPAIR_HINT1_RECURSIVELY_CORRUPTED: u64 = 256u64; +pub const FILE_INITIATE_REPAIR_HINT1_REPAIRED: u64 = 1024u64; +pub const FILE_INITIATE_REPAIR_HINT1_REPAIR_DISABLED: u64 = 128u64; +pub const FILE_INITIATE_REPAIR_HINT1_SID_MISMATCH: u64 = 4194304u64; +pub const FILE_INITIATE_REPAIR_HINT1_SID_VALID: u64 = 2097152u64; +pub const FILE_INITIATE_REPAIR_HINT1_STALE_INFORMATION: u64 = 16384u64; +pub const FILE_INITIATE_REPAIR_HINT1_SYSTEM_FILE: u64 = 16u64; +pub const FILE_INITIATE_REPAIR_HINT1_UNABLE_TO_REPAIR: u64 = 64u64; +pub const FILE_INITIATE_REPAIR_HINT1_VALID_INDEX_ENTRY: u64 = 536870912u64; +pub const FILE_LAYOUT_NAME_ENTRY_DOS: u32 = 2u32; +pub const FILE_LAYOUT_NAME_ENTRY_PRIMARY: u32 = 1u32; +pub const FILE_PREFETCH_TYPE_FOR_CREATE: u32 = 1u32; +pub const FILE_PREFETCH_TYPE_FOR_CREATE_EX: u32 = 3u32; +pub const FILE_PREFETCH_TYPE_FOR_DIRENUM: u32 = 2u32; +pub const FILE_PREFETCH_TYPE_FOR_DIRENUM_EX: u32 = 4u32; +pub const FILE_PREFETCH_TYPE_MAX: u32 = 4u32; +pub const FILE_PROVIDER_COMPRESSION_MAXIMUM: u32 = 4u32; +pub const FILE_PROVIDER_CURRENT_VERSION: u32 = 1u32; +pub const FILE_PROVIDER_FLAG_COMPRESS_ON_WRITE: u32 = 1u32; +pub const FILE_PROVIDER_SINGLE_FILE: u32 = 1u32; +pub const FILE_READ_ACCESS: u32 = 1u32; +pub const FILE_REGION_USAGE_HUGE_PAGE_ALIGNMENT: u32 = 16u32; +pub const FILE_REGION_USAGE_LARGE_PAGE_ALIGNMENT: u32 = 8u32; +pub const FILE_REGION_USAGE_OTHER_PAGE_ALIGNMENT: u32 = 4u32; +pub const FILE_REGION_USAGE_QUERY_ALIGNMENT: u32 = 8u32; +pub const FILE_REGION_USAGE_VALID_CACHED_DATA: u32 = 1u32; +pub const FILE_REGION_USAGE_VALID_NONCACHED_DATA: u32 = 2u32; +pub const FILE_SET_ENCRYPTION: u32 = 1u32; +pub const FILE_SPECIAL_ACCESS: u32 = 0u32; +pub const FILE_STORAGE_TIER_DESCRIPTION_LENGTH: u32 = 512u32; +pub const FILE_STORAGE_TIER_FLAG_NO_SEEK_PENALTY: FILE_STORAGE_TIER_FLAGS = 131072u32; +pub const FILE_STORAGE_TIER_FLAG_PARITY: u32 = 8388608u32; +pub const FILE_STORAGE_TIER_FLAG_READ_CACHE: u32 = 4194304u32; +pub const FILE_STORAGE_TIER_FLAG_SMR: u32 = 16777216u32; +pub const FILE_STORAGE_TIER_FLAG_WRITE_BACK_CACHE: u32 = 2097152u32; +pub const FILE_STORAGE_TIER_NAME_LENGTH: u32 = 256u32; +pub const FILE_TYPE_NOTIFICATION_FLAG_USAGE_BEGIN: u32 = 1u32; +pub const FILE_TYPE_NOTIFICATION_FLAG_USAGE_END: u32 = 2u32; +pub const FILE_TYPE_NOTIFICATION_GUID_CRASHDUMP_FILE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9d453eb7_d2a6_4dbd_a2e3_fbd0ed9109a9); +pub const FILE_TYPE_NOTIFICATION_GUID_HIBERNATION_FILE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb7624d64_b9a3_4cf8_8011_5b86c940e7b7); +pub const FILE_TYPE_NOTIFICATION_GUID_PAGE_FILE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0d0a64a1_38fc_4db8_9fe7_3f4352cd7c5c); +pub const FILE_WRITE_ACCESS: u32 = 2u32; +pub const FILE_ZERO_DATA_INFORMATION_FLAG_PRESERVE_CACHED_DATA: u32 = 1u32; +pub const FLAG_USN_TRACK_MODIFIED_RANGES_ENABLE: u32 = 1u32; +pub const FSBPIO_INFL_None: FS_BPIO_INFLAGS = 0i32; +pub const FSBPIO_INFL_SKIP_STORAGE_STACK_QUERY: FS_BPIO_INFLAGS = 1i32; +pub const FSBPIO_OUTFL_COMPATIBLE_STORAGE_DRIVER: FS_BPIO_OUTFLAGS = 8i32; +pub const FSBPIO_OUTFL_FILTER_ATTACH_BLOCKED: FS_BPIO_OUTFLAGS = 4i32; +pub const FSBPIO_OUTFL_None: FS_BPIO_OUTFLAGS = 0i32; +pub const FSBPIO_OUTFL_STREAM_BYPASS_PAUSED: FS_BPIO_OUTFLAGS = 2i32; +pub const FSBPIO_OUTFL_VOLUME_STACK_BYPASS_PAUSED: FS_BPIO_OUTFLAGS = 1i32; +pub const FSCTL_ADD_OVERLAY: u32 = 623408u32; +pub const FSCTL_ADVANCE_FILE_ID: u32 = 590532u32; +pub const FSCTL_ALLOW_EXTENDED_DASD_IO: u32 = 589955u32; +pub const FSCTL_CLEAN_VOLUME_METADATA: u32 = 590716u32; +pub const FSCTL_CORRUPTION_HANDLING: u32 = 590432u32; +pub const FSCTL_CREATE_LCN_WEAK_REFERENCE: u32 = 590944u32; +pub const FSCTL_CREATE_OR_GET_OBJECT_ID: u32 = 590016u32; +pub const FSCTL_CREATE_USN_JOURNAL: u32 = 590055u32; +pub const FSCTL_CSC_INTERNAL: u32 = 590255u32; +pub const FSCTL_CSV_CONTROL: u32 = 590548u32; +pub const FSCTL_CSV_GET_VOLUME_NAME_FOR_VOLUME_MOUNT_POINT: u32 = 590420u32; +pub const FSCTL_CSV_GET_VOLUME_PATH_NAME: u32 = 590416u32; +pub const FSCTL_CSV_GET_VOLUME_PATH_NAMES_FOR_VOLUME_NAME: u32 = 590424u32; +pub const FSCTL_CSV_H_BREAKING_SYNC_TUNNEL_REQUEST: u32 = 590564u32; +pub const FSCTL_CSV_INTERNAL: u32 = 590444u32; +pub const FSCTL_CSV_MGMT_LOCK: u32 = 590524u32; +pub const FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICS: u32 = 590528u32; +pub const FSCTL_CSV_QUERY_VETO_FILE_DIRECT_IO: u32 = 590540u32; +pub const FSCTL_CSV_SYNC_TUNNEL_REQUEST: u32 = 590536u32; +pub const FSCTL_CSV_TUNNEL_REQUEST: u32 = 590404u32; +pub const FSCTL_DELETE_CORRUPTED_REFS_CONTAINER: u32 = 590836u32; +pub const FSCTL_DELETE_EXTERNAL_BACKING: u32 = 590612u32; +pub const FSCTL_DELETE_LCN_WEAK_REFERENCE: u32 = 590948u32; +pub const FSCTL_DELETE_LCN_WEAK_REFERENCES: u32 = 590956u32; +pub const FSCTL_DELETE_OBJECT_ID: u32 = 589984u32; +pub const FSCTL_DELETE_REPARSE_POINT: u32 = 589996u32; +pub const FSCTL_DELETE_USN_JOURNAL: u32 = 590072u32; +pub const FSCTL_DFSR_SET_GHOST_HANDLE_STATE: u32 = 590264u32; +pub const FSCTL_DISABLE_LOCAL_BUFFERING: u32 = 590520u32; +pub const FSCTL_DISMOUNT_VOLUME: u32 = 589856u32; +pub const FSCTL_DUPLICATE_CLUSTER: u32 = 590940u32; +pub const FSCTL_DUPLICATE_EXTENTS_TO_FILE: u32 = 623428u32; +pub const FSCTL_DUPLICATE_EXTENTS_TO_FILE_EX: u32 = 623592u32; +pub const FSCTL_ENABLE_PER_IO_FLAGS: u32 = 590892u32; +pub const FSCTL_ENABLE_UPGRADE: u32 = 622800u32; +pub const FSCTL_ENCRYPTION_FSCTL_IO: u32 = 590043u32; +pub const FSCTL_ENCRYPTION_KEY_CONTROL: u32 = 590852u32; +pub const FSCTL_ENUM_EXTERNAL_BACKING: u32 = 590616u32; +pub const FSCTL_ENUM_OVERLAY: u32 = 590623u32; +pub const FSCTL_ENUM_USN_DATA: u32 = 590003u32; +pub const FSCTL_EXTEND_VOLUME: u32 = 590064u32; +pub const FSCTL_FILESYSTEM_GET_STATISTICS: u32 = 589920u32; +pub const FSCTL_FILESYSTEM_GET_STATISTICS_EX: u32 = 590732u32; +pub const FSCTL_FILE_LEVEL_TRIM: u32 = 623112u32; +pub const FSCTL_FILE_PREFETCH: u32 = 590112u32; +pub const FSCTL_FILE_TYPE_NOTIFICATION: u32 = 590340u32; +pub const FSCTL_FIND_FILES_BY_SID: u32 = 589967u32; +pub const FSCTL_GET_BOOT_AREA_INFO: u32 = 590384u32; +pub const FSCTL_GET_COMPRESSION: u32 = 589884u32; +pub const FSCTL_GET_EXTERNAL_BACKING: u32 = 590608u32; +pub const FSCTL_GET_FILTER_FILE_IDENTIFIER: u32 = 590788u32; +pub const FSCTL_GET_INTEGRITY_INFORMATION: u32 = 590460u32; +pub const FSCTL_GET_NTFS_FILE_RECORD: u32 = 589928u32; +pub const FSCTL_GET_NTFS_VOLUME_DATA: u32 = 589924u32; +pub const FSCTL_GET_OBJECT_ID: u32 = 589980u32; +pub const FSCTL_GET_REFS_VOLUME_DATA: u32 = 590552u32; +pub const FSCTL_GET_REPAIR: u32 = 590236u32; +pub const FSCTL_GET_REPARSE_POINT: u32 = 589992u32; +pub const FSCTL_GET_RETRIEVAL_POINTERS: u32 = 589939u32; +pub const FSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT: u32 = 590803u32; +pub const FSCTL_GET_RETRIEVAL_POINTER_BASE: u32 = 590388u32; +pub const FSCTL_GET_RETRIEVAL_POINTER_COUNT: u32 = 590891u32; +pub const FSCTL_GET_VOLUME_BITMAP: u32 = 589935u32; +pub const FSCTL_GET_WOF_VERSION: u32 = 590696u32; +pub const FSCTL_GHOST_FILE_EXTENTS: u32 = 623532u32; +pub const FSCTL_HCS_ASYNC_TUNNEL_REQUEST: u32 = 590704u32; +pub const FSCTL_HCS_SYNC_NO_WRITE_TUNNEL_REQUEST: u32 = 590776u32; +pub const FSCTL_HCS_SYNC_TUNNEL_REQUEST: u32 = 590700u32; +pub const FSCTL_INITIATE_FILE_METADATA_OPTIMIZATION: u32 = 590684u32; +pub const FSCTL_INITIATE_REPAIR: u32 = 590248u32; +pub const FSCTL_INTEGRITY_FLAG_CHECKSUM_ENFORCEMENT_OFF: u32 = 1u32; +pub const FSCTL_INVALIDATE_VOLUMES: u32 = 589908u32; +pub const FSCTL_IS_CSV_FILE: u32 = 590408u32; +pub const FSCTL_IS_FILE_ON_CSV_VOLUME: u32 = 590428u32; +pub const FSCTL_IS_PATHNAME_VALID: u32 = 589868u32; +pub const FSCTL_IS_VOLUME_DIRTY: u32 = 589944u32; +pub const FSCTL_IS_VOLUME_MOUNTED: u32 = 589864u32; +pub const FSCTL_IS_VOLUME_OWNED_BYCSVFS: u32 = 590456u32; +pub const FSCTL_LMR_QUERY_INFO: u32 = 590968u32; +pub const FSCTL_LOCK_VOLUME: u32 = 589848u32; +pub const FSCTL_LOOKUP_STREAM_FROM_CLUSTER: u32 = 590332u32; +pub const FSCTL_MAKE_MEDIA_COMPATIBLE: u32 = 622896u32; +pub const FSCTL_MANAGE_BYPASS_IO: u32 = 590920u32; +pub const FSCTL_MARK_AS_SYSTEM_HIVE: u32 = 589903u32; +pub const FSCTL_MARK_HANDLE: u32 = 590076u32; +pub const FSCTL_MARK_VOLUME_DIRTY: u32 = 589872u32; +pub const FSCTL_MOVE_FILE: u32 = 589940u32; +pub const FSCTL_NOTIFY_DATA_CHANGE: u32 = 590844u32; +pub const FSCTL_NOTIFY_STORAGE_SPACE_ALLOCATION: u32 = 590748u32; +pub const FSCTL_OFFLOAD_READ: u32 = 606820u32; +pub const FSCTL_OFFLOAD_WRITE: u32 = 623208u32; +pub const FSCTL_OPBATCH_ACK_CLOSE_PENDING: u32 = 589840u32; +pub const FSCTL_OPLOCK_BREAK_ACKNOWLEDGE: u32 = 589836u32; +pub const FSCTL_OPLOCK_BREAK_ACK_NO_2: u32 = 589904u32; +pub const FSCTL_OPLOCK_BREAK_NOTIFY: u32 = 589844u32; +pub const FSCTL_QUERY_ALLOCATED_RANGES: u32 = 606415u32; +pub const FSCTL_QUERY_ASYNC_DUPLICATE_EXTENTS_STATUS: u32 = 590896u32; +pub const FSCTL_QUERY_BAD_RANGES: u32 = 590828u32; +pub const FSCTL_QUERY_DEPENDENT_VOLUME: u32 = 590320u32; +pub const FSCTL_QUERY_DIRECT_ACCESS_EXTENTS: u32 = 590747u32; +pub const FSCTL_QUERY_DIRECT_IMAGE_ORIGINAL_BASE: u32 = 590756u32; +pub const FSCTL_QUERY_EXTENT_READ_CACHE_INFO: u32 = 590711u32; +pub const FSCTL_QUERY_FAT_BPB: u32 = 589912u32; +pub const FSCTL_QUERY_FILE_LAYOUT: u32 = 590455u32; +pub const FSCTL_QUERY_FILE_METADATA_OPTIMIZATION: u32 = 590688u32; +pub const FSCTL_QUERY_FILE_REGIONS: u32 = 590468u32; +pub const FSCTL_QUERY_FILE_SYSTEM_RECOGNITION: u32 = 590412u32; +pub const FSCTL_QUERY_GHOSTED_FILE_EXTENTS: u32 = 590768u32; +pub const FSCTL_QUERY_LCN_WEAK_REFERENCE: u32 = 590952u32; +pub const FSCTL_QUERY_ON_DISK_VOLUME_INFO: u32 = 590140u32; +pub const FSCTL_QUERY_PAGEFILE_ENCRYPTION: u32 = 590312u32; +pub const FSCTL_QUERY_PERSISTENT_VOLUME_STATE: u32 = 590396u32; +pub const FSCTL_QUERY_REFS_SMR_VOLUME_INFO: u32 = 590812u32; +pub const FSCTL_QUERY_REFS_VOLUME_COUNTER_INFO: u32 = 590715u32; +pub const FSCTL_QUERY_REGION_INFO: u32 = 590576u32; +pub const FSCTL_QUERY_RETRIEVAL_POINTERS: u32 = 589883u32; +pub const FSCTL_QUERY_SHARED_VIRTUAL_DISK_SUPPORT: u32 = 590592u32; +pub const FSCTL_QUERY_SPARING_INFO: u32 = 590136u32; +pub const FSCTL_QUERY_STORAGE_CLASSES: u32 = 590572u32; +pub const FSCTL_QUERY_USN_JOURNAL: u32 = 590068u32; +pub const FSCTL_QUERY_VOLUME_CONTAINER_STATE: u32 = 590736u32; +pub const FSCTL_QUERY_VOLUME_NUMA_INFO: u32 = 590804u32; +pub const FSCTL_READ_FILE_USN_DATA: u32 = 590059u32; +pub const FSCTL_READ_FROM_PLEX: u32 = 606494u32; +pub const FSCTL_READ_RAW_ENCRYPTED: u32 = 590051u32; +pub const FSCTL_READ_UNPRIVILEGED_USN_JOURNAL: u32 = 590763u32; +pub const FSCTL_READ_USN_JOURNAL: u32 = 590011u32; +pub const FSCTL_REARRANGE_FILE: u32 = 640032u32; +pub const FSCTL_RECALL_FILE: u32 = 590103u32; +pub const FSCTL_REFS_DEALLOCATE_RANGES: u32 = 590808u32; +pub const FSCTL_REFS_DEALLOCATE_RANGES_EX: u32 = 590924u32; +pub const FSCTL_REFS_QUERY_VOLUME_COMPRESSION_INFO: u32 = 590936u32; +pub const FSCTL_REFS_QUERY_VOLUME_DEDUP_INFO: u32 = 590964u32; +pub const FSCTL_REFS_SET_VOLUME_COMPRESSION_INFO: u32 = 590932u32; +pub const FSCTL_REFS_SET_VOLUME_DEDUP_INFO: u32 = 590960u32; +pub const FSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT: u32 = 590912u32; +pub const FSCTL_REMOVE_OVERLAY: u32 = 623412u32; +pub const FSCTL_REPAIR_COPIES: u32 = 639668u32; +pub const FSCTL_REQUEST_BATCH_OPLOCK: u32 = 589832u32; +pub const FSCTL_REQUEST_FILTER_OPLOCK: u32 = 589916u32; +pub const FSCTL_REQUEST_OPLOCK: u32 = 590400u32; +pub const FSCTL_REQUEST_OPLOCK_LEVEL_1: u32 = 589824u32; +pub const FSCTL_REQUEST_OPLOCK_LEVEL_2: u32 = 589828u32; +pub const FSCTL_RESET_VOLUME_ALLOCATION_HINTS: u32 = 590316u32; +pub const FSCTL_RKF_INTERNAL: u32 = 590511u32; +pub const FSCTL_SCRUB_DATA: u32 = 590512u32; +pub const FSCTL_SCRUB_UNDISCOVERABLE_ID: u32 = 590840u32; +pub const FSCTL_SD_GLOBAL_CHANGE: u32 = 590324u32; +pub const FSCTL_SECURITY_ID_CHECK: u32 = 606391u32; +pub const FSCTL_SET_BOOTLOADER_ACCESSED: u32 = 589903u32; +pub const FSCTL_SET_CACHED_RUNS_STATE: u32 = 590928u32; +pub const FSCTL_SET_COMPRESSION: u32 = 639040u32; +pub const FSCTL_SET_DAX_ALLOC_ALIGNMENT_HINT: u32 = 590832u32; +pub const FSCTL_SET_DEFECT_MANAGEMENT: u32 = 622900u32; +pub const FSCTL_SET_ENCRYPTION: u32 = 590039u32; +pub const FSCTL_SET_EXTERNAL_BACKING: u32 = 590604u32; +pub const FSCTL_SET_INTEGRITY_INFORMATION: u32 = 639616u32; +pub const FSCTL_SET_INTEGRITY_INFORMATION_EX: u32 = 590720u32; +pub const FSCTL_SET_LAYER_ROOT: u32 = 590740u32; +pub const FSCTL_SET_OBJECT_ID: u32 = 589976u32; +pub const FSCTL_SET_OBJECT_ID_EXTENDED: u32 = 590012u32; +pub const FSCTL_SET_PERSISTENT_VOLUME_STATE: u32 = 590392u32; +pub const FSCTL_SET_PURGE_FAILURE_MODE: u32 = 590448u32; +pub const FSCTL_SET_REFS_FILE_STRICTLY_SEQUENTIAL: u32 = 590820u32; +pub const FSCTL_SET_REFS_SMR_VOLUME_GC_PARAMETERS: u32 = 590816u32; +pub const FSCTL_SET_REPAIR: u32 = 590232u32; +pub const FSCTL_SET_REPARSE_POINT: u32 = 589988u32; +pub const FSCTL_SET_REPARSE_POINT_EX: u32 = 590860u32; +pub const FSCTL_SET_SHORT_NAME_BEHAVIOR: u32 = 590260u32; +pub const FSCTL_SET_SPARSE: u32 = 590020u32; +pub const FSCTL_SET_VOLUME_COMPRESSION_STATE: u32 = 590144u32; +pub const FSCTL_SET_ZERO_DATA: u32 = 622792u32; +pub const FSCTL_SET_ZERO_ON_DEALLOCATION: u32 = 590228u32; +pub const FSCTL_SHRINK_VOLUME: u32 = 590256u32; +pub const FSCTL_SHUFFLE_FILE: u32 = 639808u32; +pub const FSCTL_SIS_COPYFILE: u32 = 590080u32; +pub const FSCTL_SIS_LINK_FILES: u32 = 639236u32; +pub const FSCTL_SMB_SHARE_FLUSH_AND_PURGE: u32 = 590908u32; +pub const FSCTL_SPARSE_OVERALLOCATE: u32 = 590668u32; +pub const FSCTL_SSDI_STORAGE_REQUEST: u32 = 590752u32; +pub const FSCTL_START_VIRTUALIZATION_INSTANCE: u32 = 590784u32; +pub const FSCTL_START_VIRTUALIZATION_INSTANCE_EX: u32 = 590848u32; +pub const FSCTL_STORAGE_QOS_CONTROL: u32 = 590672u32; +pub const FSCTL_STREAMS_ASSOCIATE_ID: u32 = 590792u32; +pub const FSCTL_STREAMS_QUERY_ID: u32 = 590796u32; +pub const FSCTL_STREAMS_QUERY_PARAMETERS: u32 = 590788u32; +pub const FSCTL_SUSPEND_OVERLAY: u32 = 590724u32; +pub const FSCTL_SVHDX_ASYNC_TUNNEL_REQUEST: u32 = 590692u32; +pub const FSCTL_SVHDX_SET_INITIATOR_INFORMATION: u32 = 590600u32; +pub const FSCTL_SVHDX_SYNC_TUNNEL_REQUEST: u32 = 590596u32; +pub const FSCTL_TXFS_CREATE_MINIVERSION: u32 = 622972u32; +pub const FSCTL_TXFS_CREATE_SECONDARY_RM: u32 = 622952u32; +pub const FSCTL_TXFS_GET_METADATA_INFO: u32 = 606572u32; +pub const FSCTL_TXFS_GET_TRANSACTED_VERSION: u32 = 606576u32; +pub const FSCTL_TXFS_LIST_TRANSACTIONS: u32 = 606692u32; +pub const FSCTL_TXFS_LIST_TRANSACTION_LOCKED_FILES: u32 = 606688u32; +pub const FSCTL_TXFS_MODIFY_RM: u32 = 622916u32; +pub const FSCTL_TXFS_QUERY_RM_INFORMATION: u32 = 606536u32; +pub const FSCTL_TXFS_READ_BACKUP_INFORMATION: u32 = 606560u32; +pub const FSCTL_TXFS_READ_BACKUP_INFORMATION2: u32 = 590328u32; +pub const FSCTL_TXFS_ROLLFORWARD_REDO: u32 = 622928u32; +pub const FSCTL_TXFS_ROLLFORWARD_UNDO: u32 = 622932u32; +pub const FSCTL_TXFS_SAVEPOINT_INFORMATION: u32 = 622968u32; +pub const FSCTL_TXFS_SHUTDOWN_RM: u32 = 622940u32; +pub const FSCTL_TXFS_START_RM: u32 = 622936u32; +pub const FSCTL_TXFS_TRANSACTION_ACTIVE: u32 = 606604u32; +pub const FSCTL_TXFS_WRITE_BACKUP_INFORMATION: u32 = 622948u32; +pub const FSCTL_TXFS_WRITE_BACKUP_INFORMATION2: u32 = 590336u32; +pub const FSCTL_UNLOCK_VOLUME: u32 = 589852u32; +pub const FSCTL_UNMAP_SPACE: u32 = 590772u32; +pub const FSCTL_UPDATE_OVERLAY: u32 = 623416u32; +pub const FSCTL_USN_TRACK_MODIFIED_RANGES: u32 = 590580u32; +pub const FSCTL_VIRTUAL_STORAGE_PASSTHROUGH: u32 = 590884u32; +pub const FSCTL_VIRTUAL_STORAGE_QUERY_PROPERTY: u32 = 590728u32; +pub const FSCTL_VIRTUAL_STORAGE_SET_BEHAVIOR: u32 = 590856u32; +pub const FSCTL_WAIT_FOR_REPAIR: u32 = 590240u32; +pub const FSCTL_WRITE_RAW_ENCRYPTED: u32 = 590047u32; +pub const FSCTL_WRITE_USN_CLOSE_RECORD: u32 = 590063u32; +pub const FSCTL_WRITE_USN_REASON: u32 = 590544u32; +pub const FS_BPIO_OP_DISABLE: FS_BPIO_OPERATIONS = 2i32; +pub const FS_BPIO_OP_ENABLE: FS_BPIO_OPERATIONS = 1i32; +pub const FS_BPIO_OP_GET_INFO: FS_BPIO_OPERATIONS = 8i32; +pub const FS_BPIO_OP_MAX_OPERATION: FS_BPIO_OPERATIONS = 9i32; +pub const FS_BPIO_OP_QUERY: FS_BPIO_OPERATIONS = 3i32; +pub const FS_BPIO_OP_STREAM_PAUSE: FS_BPIO_OPERATIONS = 6i32; +pub const FS_BPIO_OP_STREAM_RESUME: FS_BPIO_OPERATIONS = 7i32; +pub const FS_BPIO_OP_VOLUME_STACK_PAUSE: FS_BPIO_OPERATIONS = 4i32; +pub const FS_BPIO_OP_VOLUME_STACK_RESUME: FS_BPIO_OPERATIONS = 5i32; +pub const FW_ISSUEID_NO_ISSUE: u32 = 0u32; +pub const FW_ISSUEID_UNKNOWN: u32 = 4294967295u32; +pub const FileSnapStateInactive: DUPLICATE_EXTENTS_STATE = 0i32; +pub const FileSnapStateSource: DUPLICATE_EXTENTS_STATE = 1i32; +pub const FileSnapStateTarget: DUPLICATE_EXTENTS_STATE = 2i32; +pub const FileStorageTierClassCapacity: FILE_STORAGE_TIER_CLASS = 1i32; +pub const FileStorageTierClassMax: FILE_STORAGE_TIER_CLASS = 3i32; +pub const FileStorageTierClassPerformance: FILE_STORAGE_TIER_CLASS = 2i32; +pub const FileStorageTierClassUnspecified: FILE_STORAGE_TIER_CLASS = 0i32; +pub const FileStorageTierMediaTypeDisk: FILE_STORAGE_TIER_MEDIA_TYPE = 1i32; +pub const FileStorageTierMediaTypeMax: FILE_STORAGE_TIER_MEDIA_TYPE = 5i32; +pub const FileStorageTierMediaTypeScm: FILE_STORAGE_TIER_MEDIA_TYPE = 4i32; +pub const FileStorageTierMediaTypeSsd: FILE_STORAGE_TIER_MEDIA_TYPE = 2i32; +pub const FileStorageTierMediaTypeUnspecified: FILE_STORAGE_TIER_MEDIA_TYPE = 0i32; +pub const FixedMedia: MEDIA_TYPE = 12i32; +pub const FormFactor1_8: STORAGE_DEVICE_FORM_FACTOR = 3i32; +pub const FormFactor1_8Less: STORAGE_DEVICE_FORM_FACTOR = 4i32; +pub const FormFactor2_5: STORAGE_DEVICE_FORM_FACTOR = 2i32; +pub const FormFactor3_5: STORAGE_DEVICE_FORM_FACTOR = 1i32; +pub const FormFactorDimm: STORAGE_DEVICE_FORM_FACTOR = 10i32; +pub const FormFactorEmbedded: STORAGE_DEVICE_FORM_FACTOR = 5i32; +pub const FormFactorM_2: STORAGE_DEVICE_FORM_FACTOR = 8i32; +pub const FormFactorMemoryCard: STORAGE_DEVICE_FORM_FACTOR = 6i32; +pub const FormFactorPCIeBoard: STORAGE_DEVICE_FORM_FACTOR = 9i32; +pub const FormFactorUnknown: STORAGE_DEVICE_FORM_FACTOR = 0i32; +pub const FormFactormSata: STORAGE_DEVICE_FORM_FACTOR = 7i32; +pub const GET_VOLUME_BITMAP_FLAG_MASK_METADATA: u32 = 1u32; +pub const GPT_ATTRIBUTE_LEGACY_BIOS_BOOTABLE: u64 = 4u64; +pub const GPT_ATTRIBUTE_NO_BLOCK_IO_PROTOCOL: u64 = 2u64; +pub const GPT_ATTRIBUTE_PLATFORM_REQUIRED: GPT_ATTRIBUTES = 1u64; +pub const GPT_BASIC_DATA_ATTRIBUTE_DAX: u64 = 288230376151711744u64; +pub const GPT_BASIC_DATA_ATTRIBUTE_HIDDEN: GPT_ATTRIBUTES = 4611686018427387904u64; +pub const GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER: GPT_ATTRIBUTES = 9223372036854775808u64; +pub const GPT_BASIC_DATA_ATTRIBUTE_OFFLINE: u64 = 576460752303423488u64; +pub const GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY: GPT_ATTRIBUTES = 1152921504606846976u64; +pub const GPT_BASIC_DATA_ATTRIBUTE_SERVICE: u64 = 144115188075855872u64; +pub const GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY: GPT_ATTRIBUTES = 2305843009213693952u64; +pub const GPT_SPACES_ATTRIBUTE_NO_METADATA: u64 = 9223372036854775808u64; +pub const GUID_DEVICEDUMP_DRIVER_STORAGE_PORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xda82441d_7142_4bc1_b844_0807c5a4b67f); +pub const GUID_DEVICEDUMP_STORAGE_DEVICE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd8e2592f_1aab_4d56_a746_1f7585df40f4); +pub const GUID_DEVINTERFACE_CDCHANGER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53f56312_b6bf_11d0_94f2_00a0c91efb8b); +pub const GUID_DEVINTERFACE_CDROM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53f56308_b6bf_11d0_94f2_00a0c91efb8b); +pub const GUID_DEVINTERFACE_COMPORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x86e0d1e0_8089_11d0_9ce4_08003e301f73); +pub const GUID_DEVINTERFACE_DISK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53f56307_b6bf_11d0_94f2_00a0c91efb8b); +pub const GUID_DEVINTERFACE_FLOPPY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53f56311_b6bf_11d0_94f2_00a0c91efb8b); +pub const GUID_DEVINTERFACE_HIDDEN_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f108a28_9833_4b3b_b780_2c6b5fa5c062); +pub const GUID_DEVINTERFACE_MEDIUMCHANGER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53f56310_b6bf_11d0_94f2_00a0c91efb8b); +pub const GUID_DEVINTERFACE_PARTITION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53f5630a_b6bf_11d0_94f2_00a0c91efb8b); +pub const GUID_DEVINTERFACE_SCM_PHYSICAL_DEVICE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4283609d_4dc2_43be_bbb4_4f15dfce2c61); +pub const GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d36e978_e325_11ce_bfc1_08002be10318); +pub const GUID_DEVINTERFACE_SERVICE_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6ead3d82_25ec_46bc_b7fd_c1f0df8f5037); +pub const GUID_DEVINTERFACE_SES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1790c9ec_47d5_4df3_b5af_9adf3cf23e48); +pub const GUID_DEVINTERFACE_STORAGEPORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2accfe60_c130_11d2_b082_00a0c91efb8b); +pub const GUID_DEVINTERFACE_TAPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53f5630b_b6bf_11d0_94f2_00a0c91efb8b); +pub const GUID_DEVINTERFACE_UNIFIED_ACCESS_RPMB: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x27447c21_bcc3_4d07_a05b_a3395bb4eee7); +pub const GUID_DEVINTERFACE_VMLUN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f416619_9f29_42a5_b20b_37e219ca02b0); +pub const GUID_DEVINTERFACE_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53f5630d_b6bf_11d0_94f2_00a0c91efb8b); +pub const GUID_DEVINTERFACE_WRITEONCEDISK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53f5630c_b6bf_11d0_94f2_00a0c91efb8b); +pub const GUID_DEVINTERFACE_ZNSDISK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb87941c5_ffdb_43c7_b6b1_20b632f0b109); +pub const GUID_SCM_PD_HEALTH_NOTIFICATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9da2d386_72f5_4ee3_8155_eca0678e3b06); +pub const GUID_SCM_PD_PASSTHROUGH_INVDIMM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4309ac30_0d11_11e4_9191_0800200c9a66); +pub const HIST_NO_OF_BUCKETS: u32 = 24u32; +pub const HITACHI_12_WO: STORAGE_MEDIA_TYPE = 68i32; +pub const HealthStatusDisabled: STORAGE_COMPONENT_HEALTH_STATUS = 4i32; +pub const HealthStatusFailed: STORAGE_COMPONENT_HEALTH_STATUS = 5i32; +pub const HealthStatusNormal: STORAGE_COMPONENT_HEALTH_STATUS = 1i32; +pub const HealthStatusThrottled: STORAGE_COMPONENT_HEALTH_STATUS = 2i32; +pub const HealthStatusUnknown: STORAGE_COMPONENT_HEALTH_STATUS = 0i32; +pub const HealthStatusWarning: STORAGE_COMPONENT_HEALTH_STATUS = 3i32; +pub const IBM_3480: STORAGE_MEDIA_TYPE = 41i32; +pub const IBM_3490E: STORAGE_MEDIA_TYPE = 42i32; +pub const IBM_Magstar_3590: STORAGE_MEDIA_TYPE = 43i32; +pub const IBM_Magstar_MP: STORAGE_MEDIA_TYPE = 44i32; +pub const IDENTIFY_BUFFER_SIZE: u32 = 512u32; +pub const ID_CMD: u32 = 236u32; +pub const IOCTL_CHANGER_BASE: u32 = 48u32; +pub const IOCTL_CHANGER_EXCHANGE_MEDIUM: u32 = 3162144u32; +pub const IOCTL_CHANGER_GET_ELEMENT_STATUS: u32 = 3194900u32; +pub const IOCTL_CHANGER_GET_PARAMETERS: u32 = 3162112u32; +pub const IOCTL_CHANGER_GET_PRODUCT_DATA: u32 = 3162120u32; +pub const IOCTL_CHANGER_GET_STATUS: u32 = 3162116u32; +pub const IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS: u32 = 3162136u32; +pub const IOCTL_CHANGER_MOVE_MEDIUM: u32 = 3162148u32; +pub const IOCTL_CHANGER_QUERY_VOLUME_TAGS: u32 = 3194924u32; +pub const IOCTL_CHANGER_REINITIALIZE_TRANSPORT: u32 = 3162152u32; +pub const IOCTL_CHANGER_SET_ACCESS: u32 = 3194896u32; +pub const IOCTL_CHANGER_SET_POSITION: u32 = 3162140u32; +pub const IOCTL_DISK_BASE: u32 = 7u32; +pub const IOCTL_DISK_CHECK_VERIFY: u32 = 477184u32; +pub const IOCTL_DISK_CONTROLLER_NUMBER: u32 = 458820u32; +pub const IOCTL_DISK_CREATE_DISK: u32 = 507992u32; +pub const IOCTL_DISK_DELETE_DRIVE_LAYOUT: u32 = 508160u32; +pub const IOCTL_DISK_EJECT_MEDIA: u32 = 477192u32; +pub const IOCTL_DISK_FIND_NEW_DEVICES: u32 = 477208u32; +pub const IOCTL_DISK_FORMAT_DRIVE: u32 = 508876u32; +pub const IOCTL_DISK_FORMAT_TRACKS: u32 = 507928u32; +pub const IOCTL_DISK_FORMAT_TRACKS_EX: u32 = 507948u32; +pub const IOCTL_DISK_GET_CACHE_INFORMATION: u32 = 475348u32; +pub const IOCTL_DISK_GET_DISK_ATTRIBUTES: u32 = 458992u32; +pub const IOCTL_DISK_GET_DRIVE_GEOMETRY: u32 = 458752u32; +pub const IOCTL_DISK_GET_DRIVE_GEOMETRY_EX: u32 = 458912u32; +pub const IOCTL_DISK_GET_DRIVE_LAYOUT: u32 = 475148u32; +pub const IOCTL_DISK_GET_DRIVE_LAYOUT_EX: u32 = 458832u32; +pub const IOCTL_DISK_GET_LENGTH_INFO: u32 = 475228u32; +pub const IOCTL_DISK_GET_MEDIA_TYPES: u32 = 461824u32; +pub const IOCTL_DISK_GET_PARTITION_INFO: u32 = 475140u32; +pub const IOCTL_DISK_GET_PARTITION_INFO_EX: u32 = 458824u32; +pub const IOCTL_DISK_GET_WRITE_CACHE_STATE: u32 = 475356u32; +pub const IOCTL_DISK_GROW_PARTITION: u32 = 508112u32; +pub const IOCTL_DISK_HISTOGRAM_DATA: u32 = 458804u32; +pub const IOCTL_DISK_HISTOGRAM_RESET: u32 = 458808u32; +pub const IOCTL_DISK_HISTOGRAM_STRUCTURE: u32 = 458800u32; +pub const IOCTL_DISK_IS_WRITABLE: u32 = 458788u32; +pub const IOCTL_DISK_LOAD_MEDIA: u32 = 477196u32; +pub const IOCTL_DISK_LOGGING: u32 = 458792u32; +pub const IOCTL_DISK_MEDIA_REMOVAL: u32 = 477188u32; +pub const IOCTL_DISK_PERFORMANCE: u32 = 458784u32; +pub const IOCTL_DISK_PERFORMANCE_OFF: u32 = 458848u32; +pub const IOCTL_DISK_REASSIGN_BLOCKS: u32 = 507932u32; +pub const IOCTL_DISK_REASSIGN_BLOCKS_EX: u32 = 508068u32; +pub const IOCTL_DISK_RELEASE: u32 = 477204u32; +pub const IOCTL_DISK_REQUEST_DATA: u32 = 458816u32; +pub const IOCTL_DISK_REQUEST_STRUCTURE: u32 = 458812u32; +pub const IOCTL_DISK_RESERVE: u32 = 477200u32; +pub const IOCTL_DISK_RESET_SNAPSHOT_INFO: u32 = 508432u32; +pub const IOCTL_DISK_SENSE_DEVICE: u32 = 459744u32; +pub const IOCTL_DISK_SET_CACHE_INFORMATION: u32 = 508120u32; +pub const IOCTL_DISK_SET_DISK_ATTRIBUTES: u32 = 508148u32; +pub const IOCTL_DISK_SET_DRIVE_LAYOUT: u32 = 507920u32; +pub const IOCTL_DISK_SET_DRIVE_LAYOUT_EX: u32 = 507988u32; +pub const IOCTL_DISK_SET_PARTITION_INFO: u32 = 507912u32; +pub const IOCTL_DISK_SET_PARTITION_INFO_EX: u32 = 507980u32; +pub const IOCTL_DISK_UPDATE_DRIVE_SIZE: u32 = 508104u32; +pub const IOCTL_DISK_UPDATE_PROPERTIES: u32 = 459072u32; +pub const IOCTL_DISK_VERIFY: u32 = 458772u32; +pub const IOCTL_SCMBUS_BASE: u32 = 89u32; +pub const IOCTL_SCMBUS_DEVICE_FUNCTION_BASE: u32 = 0u32; +pub const IOCTL_SCM_BUS_GET_LOGICAL_DEVICES: u32 = 5832704u32; +pub const IOCTL_SCM_BUS_GET_PHYSICAL_DEVICES: u32 = 5832708u32; +pub const IOCTL_SCM_BUS_GET_REGIONS: u32 = 5832712u32; +pub const IOCTL_SCM_BUS_QUERY_PROPERTY: u32 = 5832716u32; +pub const IOCTL_SCM_BUS_REFRESH_NAMESPACE: u32 = 5832728u32; +pub const IOCTL_SCM_BUS_RUNTIME_FW_ACTIVATE: u32 = 5865488u32; +pub const IOCTL_SCM_BUS_SET_PROPERTY: u32 = 5865492u32; +pub const IOCTL_SCM_LD_GET_INTERLEAVE_SET: u32 = 5835776u32; +pub const IOCTL_SCM_LOGICAL_DEVICE_FUNCTION_BASE: u32 = 768u32; +pub const IOCTL_SCM_PD_FIRMWARE_ACTIVATE: u32 = 5871624u32; +pub const IOCTL_SCM_PD_FIRMWARE_DOWNLOAD: u32 = 5871620u32; +pub const IOCTL_SCM_PD_PASSTHROUGH: u32 = 5888012u32; +pub const IOCTL_SCM_PD_QUERY_PROPERTY: u32 = 5838848u32; +pub const IOCTL_SCM_PD_REINITIALIZE_MEDIA: u32 = 5871636u32; +pub const IOCTL_SCM_PD_SET_PROPERTY: u32 = 5871640u32; +pub const IOCTL_SCM_PD_UPDATE_MANAGEMENT_STATUS: u32 = 5838864u32; +pub const IOCTL_SCM_PHYSICAL_DEVICE_FUNCTION_BASE: u32 = 1536u32; +pub const IOCTL_SERENUM_EXPOSE_HARDWARE: u32 = 3604992u32; +pub const IOCTL_SERENUM_GET_PORT_NAME: u32 = 3605004u32; +pub const IOCTL_SERENUM_PORT_DESC: u32 = 3605000u32; +pub const IOCTL_SERENUM_REMOVE_HARDWARE: u32 = 3604996u32; +pub const IOCTL_SERIAL_LSRMST_INSERT: u32 = 1769596u32; +pub const IOCTL_STORAGE_ALLOCATE_BC_STREAM: u32 = 3004420u32; +pub const IOCTL_STORAGE_ATTRIBUTE_MANAGEMENT: u32 = 3005596u32; +pub const IOCTL_STORAGE_BASE: u32 = 45u32; +pub const IOCTL_STORAGE_BC_VERSION: u32 = 1u32; +pub const IOCTL_STORAGE_BREAK_RESERVATION: u32 = 2969620u32; +pub const IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT: u32 = 2955392u32; +pub const IOCTL_STORAGE_CHECK_VERIFY: u32 = 2967552u32; +pub const IOCTL_STORAGE_CHECK_VERIFY2: u32 = 2951168u32; +pub const IOCTL_STORAGE_DEVICE_POWER_CAP: u32 = 2956436u32; +pub const IOCTL_STORAGE_DEVICE_TELEMETRY_NOTIFY: u32 = 3002820u32; +pub const IOCTL_STORAGE_DEVICE_TELEMETRY_QUERY_CAPS: u32 = 3002824u32; +pub const IOCTL_STORAGE_DIAGNOSTIC: u32 = 2956448u32; +pub const IOCTL_STORAGE_EJECTION_CONTROL: u32 = 2951488u32; +pub const IOCTL_STORAGE_EJECT_MEDIA: u32 = 2967560u32; +pub const IOCTL_STORAGE_ENABLE_IDLE_POWER: u32 = 2956416u32; +pub const IOCTL_STORAGE_EVENT_NOTIFICATION: u32 = 2956432u32; +pub const IOCTL_STORAGE_FAILURE_PREDICTION_CONFIG: u32 = 2953476u32; +pub const IOCTL_STORAGE_FIND_NEW_DEVICES: u32 = 2967576u32; +pub const IOCTL_STORAGE_FIRMWARE_ACTIVATE: u32 = 3005448u32; +pub const IOCTL_STORAGE_FIRMWARE_DOWNLOAD: u32 = 3005444u32; +pub const IOCTL_STORAGE_FIRMWARE_GET_INFO: u32 = 2956288u32; +pub const IOCTL_STORAGE_FREE_BC_STREAM: u32 = 3004424u32; +pub const IOCTL_STORAGE_GET_BC_PROPERTIES: u32 = 2971648u32; +pub const IOCTL_STORAGE_GET_COUNTERS: u32 = 2953480u32; +pub const IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG: u32 = 2956484u32; +pub const IOCTL_STORAGE_GET_DEVICE_NUMBER: u32 = 2953344u32; +pub const IOCTL_STORAGE_GET_DEVICE_NUMBER_EX: u32 = 2953348u32; +pub const IOCTL_STORAGE_GET_DEVICE_TELEMETRY: u32 = 3002816u32; +pub const IOCTL_STORAGE_GET_DEVICE_TELEMETRY_RAW: u32 = 3002828u32; +pub const IOCTL_STORAGE_GET_HOTPLUG_INFO: u32 = 2952212u32; +pub const IOCTL_STORAGE_GET_IDLE_POWERUP_REASON: u32 = 2956420u32; +pub const IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES: u32 = 2970632u32; +pub const IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER: u32 = 2952208u32; +pub const IOCTL_STORAGE_GET_MEDIA_TYPES: u32 = 2952192u32; +pub const IOCTL_STORAGE_GET_MEDIA_TYPES_EX: u32 = 2952196u32; +pub const IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS: u32 = 2956452u32; +pub const IOCTL_STORAGE_LOAD_MEDIA: u32 = 2967564u32; +pub const IOCTL_STORAGE_LOAD_MEDIA2: u32 = 2951180u32; +pub const IOCTL_STORAGE_MANAGE_BYPASS_IO: u32 = 2951360u32; +pub const IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES: u32 = 2987012u32; +pub const IOCTL_STORAGE_MCN_CONTROL: u32 = 2951492u32; +pub const IOCTL_STORAGE_MEDIA_REMOVAL: u32 = 2967556u32; +pub const IOCTL_STORAGE_PERSISTENT_RESERVE_IN: u32 = 2969624u32; +pub const IOCTL_STORAGE_PERSISTENT_RESERVE_OUT: u32 = 3002396u32; +pub const IOCTL_STORAGE_POWER_ACTIVE: u32 = 2956424u32; +pub const IOCTL_STORAGE_POWER_IDLE: u32 = 2956428u32; +pub const IOCTL_STORAGE_PREDICT_FAILURE: u32 = 2953472u32; +pub const IOCTL_STORAGE_PROTOCOL_COMMAND: u32 = 3003328u32; +pub const IOCTL_STORAGE_QUERY_PROPERTY: u32 = 2954240u32; +pub const IOCTL_STORAGE_READ_CAPACITY: u32 = 2969920u32; +pub const IOCTL_STORAGE_REINITIALIZE_MEDIA: u32 = 2987584u32; +pub const IOCTL_STORAGE_RELEASE: u32 = 2967572u32; +pub const IOCTL_STORAGE_REMOVE_ELEMENT_AND_TRUNCATE: u32 = 2956480u32; +pub const IOCTL_STORAGE_RESERVE: u32 = 2967568u32; +pub const IOCTL_STORAGE_RESET_BUS: u32 = 2969600u32; +pub const IOCTL_STORAGE_RESET_DEVICE: u32 = 2969604u32; +pub const IOCTL_STORAGE_RPMB_COMMAND: u32 = 2956440u32; +pub const IOCTL_STORAGE_SET_HOTPLUG_INFO: u32 = 3001368u32; +pub const IOCTL_STORAGE_SET_PROPERTY: u32 = 2987004u32; +pub const IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD: u32 = 3002880u32; +pub const IOCTL_STORAGE_START_DATA_INTEGRITY_CHECK: u32 = 3004548u32; +pub const IOCTL_STORAGE_STOP_DATA_INTEGRITY_CHECK: u32 = 3004552u32; +pub const IOMEGA_JAZ: STORAGE_MEDIA_TYPE = 74i32; +pub const IOMEGA_ZIP: STORAGE_MEDIA_TYPE = 73i32; +pub const KODAK_14_WO: STORAGE_MEDIA_TYPE = 70i32; +pub const KeepPrefetchedData: DISK_CACHE_RETENTION_PRIORITY = 1i32; +pub const KeepReadData: DISK_CACHE_RETENTION_PRIORITY = 2i32; +pub const LMRQuerySessionInfo: LMR_QUERY_INFO_CLASS = 1i32; +pub const LOCK_ELEMENT: u32 = 0u32; +pub const LOCK_UNLOCK_DOOR: u32 = 2u32; +pub const LOCK_UNLOCK_IEPORT: u32 = 1u32; +pub const LOCK_UNLOCK_KEYPAD: u32 = 4u32; +pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_DATA: u32 = 16777216u32; +pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_INDEX: u32 = 33554432u32; +pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_MASK: u32 = 4278190080u32; +pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_SYSTEM: u32 = 50331648u32; +pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_DENY_DEFRAG_SET: u32 = 2u32; +pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_FS_SYSTEM_FILE: u32 = 4u32; +pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_PAGE_FILE: u32 = 1u32; +pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_TXF_SYSTEM_FILE: u32 = 8u32; +pub const LTO_Accelis: STORAGE_MEDIA_TYPE = 87i32; +pub const LTO_Ultrium: STORAGE_MEDIA_TYPE = 86i32; +pub const MARK_HANDLE_CLOUD_SYNC: u32 = 2048u32; +pub const MARK_HANDLE_DISABLE_FILE_METADATA_OPTIMIZATION: u32 = 4096u32; +pub const MARK_HANDLE_ENABLE_CPU_CACHE: u32 = 268435456u32; +pub const MARK_HANDLE_ENABLE_USN_SOURCE_ON_PAGING_IO: u32 = 8192u32; +pub const MARK_HANDLE_FILTER_METADATA: u32 = 512u32; +pub const MARK_HANDLE_NOT_READ_COPY: u32 = 256u32; +pub const MARK_HANDLE_NOT_REALTIME: u32 = 64u32; +pub const MARK_HANDLE_NOT_TXF_SYSTEM_LOG: u32 = 8u32; +pub const MARK_HANDLE_PROTECT_CLUSTERS: u32 = 1u32; +pub const MARK_HANDLE_READ_COPY: u32 = 128u32; +pub const MARK_HANDLE_REALTIME: u32 = 32u32; +pub const MARK_HANDLE_RETURN_PURGE_FAILURE: u32 = 1024u32; +pub const MARK_HANDLE_SKIP_COHERENCY_SYNC_DISALLOW_WRITES: u32 = 16384u32; +pub const MARK_HANDLE_SUPPRESS_VOLUME_OPEN_FLUSH: u32 = 32768u32; +pub const MARK_HANDLE_TXF_SYSTEM_LOG: u32 = 4u32; +pub const MAXIMUM_ENCRYPTION_VALUE: u32 = 4u32; +pub const MAX_FW_BUCKET_ID_LENGTH: u32 = 132u32; +pub const MAX_INTERFACE_CODES: u32 = 8u32; +pub const MAX_VOLUME_ID_SIZE: u32 = 36u32; +pub const MAX_VOLUME_TEMPLATE_SIZE: u32 = 40u32; +pub const MEDIA_CURRENTLY_MOUNTED: u32 = 2147483648u32; +pub const MEDIA_ERASEABLE: u32 = 1u32; +pub const MEDIA_READ_ONLY: u32 = 4u32; +pub const MEDIA_READ_WRITE: u32 = 8u32; +pub const MEDIA_WRITE_ONCE: u32 = 2u32; +pub const MEDIA_WRITE_PROTECTED: u32 = 256u32; +pub const METHOD_BUFFERED: u32 = 0u32; +pub const METHOD_DIRECT_FROM_HARDWARE: u32 = 2u32; +pub const METHOD_DIRECT_TO_HARDWARE: u32 = 1u32; +pub const METHOD_IN_DIRECT: u32 = 1u32; +pub const METHOD_NEITHER: u32 = 3u32; +pub const METHOD_OUT_DIRECT: u32 = 2u32; +pub const MO_3_RW: STORAGE_MEDIA_TYPE = 57i32; +pub const MO_5_LIMDOW: STORAGE_MEDIA_TYPE = 60i32; +pub const MO_5_RW: STORAGE_MEDIA_TYPE = 59i32; +pub const MO_5_WO: STORAGE_MEDIA_TYPE = 58i32; +pub const MO_NFR_525: STORAGE_MEDIA_TYPE = 71i32; +pub const MP2_8mm: STORAGE_MEDIA_TYPE = 79i32; +pub const MP_8mm: STORAGE_MEDIA_TYPE = 36i32; +pub const MiniQic: STORAGE_MEDIA_TYPE = 33i32; +pub const NCTP: STORAGE_MEDIA_TYPE = 40i32; +pub const NIKON_12_RW: STORAGE_MEDIA_TYPE = 72i32; +pub const NVMeDataTypeFeature: STORAGE_PROTOCOL_NVME_DATA_TYPE = 3i32; +pub const NVMeDataTypeIdentify: STORAGE_PROTOCOL_NVME_DATA_TYPE = 1i32; +pub const NVMeDataTypeLogPage: STORAGE_PROTOCOL_NVME_DATA_TYPE = 2i32; +pub const NVMeDataTypeUnknown: STORAGE_PROTOCOL_NVME_DATA_TYPE = 0i32; +pub const OBSOLETE_DISK_GET_WRITE_CACHE_STATE: u32 = 475356u32; +pub const OBSOLETE_IOCTL_STORAGE_RESET_BUS: u32 = 3002368u32; +pub const OBSOLETE_IOCTL_STORAGE_RESET_DEVICE: u32 = 3002372u32; +pub const OFFLOAD_READ_FLAG_ALL_ZERO_BEYOND_CURRENT_RANGE: u32 = 1u32; +pub const OPLOCK_LEVEL_CACHE_HANDLE: u32 = 2u32; +pub const OPLOCK_LEVEL_CACHE_READ: u32 = 1u32; +pub const OPLOCK_LEVEL_CACHE_WRITE: u32 = 4u32; +pub const PARTIITON_OS_DATA: u32 = 41u32; +pub const PARTITION_BSP: u32 = 43u32; +pub const PARTITION_DM: u32 = 84u32; +pub const PARTITION_DPP: u32 = 44u32; +pub const PARTITION_ENTRY_UNUSED: u32 = 0u32; +pub const PARTITION_EXTENDED: u32 = 5u32; +pub const PARTITION_EZDRIVE: u32 = 85u32; +pub const PARTITION_FAT32: u32 = 11u32; +pub const PARTITION_FAT32_XINT13: u32 = 12u32; +pub const PARTITION_FAT_12: u32 = 1u32; +pub const PARTITION_FAT_16: u32 = 4u32; +pub const PARTITION_GPT: u32 = 238u32; +pub const PARTITION_HUGE: u32 = 6u32; +pub const PARTITION_IFS: u32 = 7u32; +pub const PARTITION_LDM: u32 = 66u32; +pub const PARTITION_MAIN_OS: u32 = 40u32; +pub const PARTITION_MSFT_RECOVERY: u32 = 39u32; +pub const PARTITION_NTFT: u32 = 128u32; +pub const PARTITION_OS2BOOTMGR: u32 = 10u32; +pub const PARTITION_PREP: u32 = 65u32; +pub const PARTITION_PRE_INSTALLED: u32 = 42u32; +pub const PARTITION_SPACES: u32 = 231u32; +pub const PARTITION_SPACES_DATA: u32 = 215u32; +pub const PARTITION_STYLE_GPT: PARTITION_STYLE = 1i32; +pub const PARTITION_STYLE_MBR: PARTITION_STYLE = 0i32; +pub const PARTITION_STYLE_RAW: PARTITION_STYLE = 2i32; +pub const PARTITION_SYSTEM: u32 = 239u32; +pub const PARTITION_UNIX: u32 = 99u32; +pub const PARTITION_WINDOWS_SYSTEM: u32 = 45u32; +pub const PARTITION_XENIX_1: u32 = 2u32; +pub const PARTITION_XENIX_2: u32 = 3u32; +pub const PARTITION_XINT13: u32 = 14u32; +pub const PARTITION_XINT13_EXTENDED: u32 = 15u32; +pub const PC_5_RW: STORAGE_MEDIA_TYPE = 62i32; +pub const PC_5_WO: STORAGE_MEDIA_TYPE = 61i32; +pub const PD_5_RW: STORAGE_MEDIA_TYPE = 63i32; +pub const PERSISTENT_VOLUME_STATE_BACKED_BY_WIM: u32 = 64u32; +pub const PERSISTENT_VOLUME_STATE_CHKDSK_RAN_ONCE: u32 = 1024u32; +pub const PERSISTENT_VOLUME_STATE_CONTAINS_BACKING_WIM: u32 = 32u32; +pub const PERSISTENT_VOLUME_STATE_DAX_FORMATTED: u32 = 4096u32; +pub const PERSISTENT_VOLUME_STATE_GLOBAL_METADATA_NO_SEEK_PENALTY: u32 = 4u32; +pub const PERSISTENT_VOLUME_STATE_LOCAL_METADATA_NO_SEEK_PENALTY: u32 = 8u32; +pub const PERSISTENT_VOLUME_STATE_MODIFIED_BY_CHKDSK: u32 = 2048u32; +pub const PERSISTENT_VOLUME_STATE_NO_HEAT_GATHERING: u32 = 16u32; +pub const PERSISTENT_VOLUME_STATE_NO_WRITE_AUTO_TIERING: u32 = 128u32; +pub const PERSISTENT_VOLUME_STATE_REALLOCATE_ALL_DATA_WRITES: u32 = 512u32; +pub const PERSISTENT_VOLUME_STATE_SHORT_NAME_CREATION_DISABLED: u32 = 1u32; +pub const PERSISTENT_VOLUME_STATE_TXF_DISABLED: u32 = 256u32; +pub const PERSISTENT_VOLUME_STATE_VOLUME_SCRUB_DISABLED: u32 = 2u32; +pub const PHILIPS_12_WO: STORAGE_MEDIA_TYPE = 67i32; +pub const PINNACLE_APEX_5_RW: STORAGE_MEDIA_TYPE = 65i32; +pub const PRODUCT_ID_LENGTH: u32 = 16u32; +pub const PROJFS_PROTOCOL_VERSION: u32 = 3u32; +pub const PropertyExistsQuery: STORAGE_QUERY_TYPE = 1i32; +pub const PropertyExistsSet: STORAGE_SET_TYPE = 1i32; +pub const PropertyMaskQuery: STORAGE_QUERY_TYPE = 2i32; +pub const PropertyQueryMaxDefined: STORAGE_QUERY_TYPE = 3i32; +pub const PropertySetMaxDefined: STORAGE_SET_TYPE = 2i32; +pub const PropertyStandardQuery: STORAGE_QUERY_TYPE = 0i32; +pub const PropertyStandardSet: STORAGE_SET_TYPE = 0i32; +pub const ProtocolTypeAta: STORAGE_PROTOCOL_TYPE = 2i32; +pub const ProtocolTypeMaxReserved: STORAGE_PROTOCOL_TYPE = 127i32; +pub const ProtocolTypeNvme: STORAGE_PROTOCOL_TYPE = 3i32; +pub const ProtocolTypeProprietary: STORAGE_PROTOCOL_TYPE = 126i32; +pub const ProtocolTypeScsi: STORAGE_PROTOCOL_TYPE = 1i32; +pub const ProtocolTypeSd: STORAGE_PROTOCOL_TYPE = 4i32; +pub const ProtocolTypeUfs: STORAGE_PROTOCOL_TYPE = 5i32; +pub const ProtocolTypeUnknown: STORAGE_PROTOCOL_TYPE = 0i32; +pub const QIC: STORAGE_MEDIA_TYPE = 35i32; +pub const QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_GUEST_VOLUMES: u32 = 2u32; +pub const QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_HOST_VOLUMES: u32 = 1u32; +pub const QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS: QUERY_FILE_LAYOUT_FILTER_TYPE = 1i32; +pub const QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID: QUERY_FILE_LAYOUT_FILTER_TYPE = 2i32; +pub const QUERY_FILE_LAYOUT_FILTER_TYPE_NONE: QUERY_FILE_LAYOUT_FILTER_TYPE = 0i32; +pub const QUERY_FILE_LAYOUT_FILTER_TYPE_STORAGE_RESERVE_ID: QUERY_FILE_LAYOUT_FILTER_TYPE = 3i32; +pub const QUERY_FILE_LAYOUT_INCLUDE_EXTENTS: u32 = 8u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_EXTRA_INFO: u32 = 16u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_FILES_WITH_DSC_ATTRIBUTE: u32 = 4096u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_FULL_PATH_IN_NAMES: u32 = 64u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_NAMES: u32 = 2u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_ONLY_FILES_WITH_SPECIFIC_ATTRIBUTES: u32 = 2048u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_STREAMS: u32 = 4u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_STREAMS_WITH_NO_CLUSTERS_ALLOCATED: u32 = 32u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION: u32 = 128u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_DATA_ATTRIBUTE: u32 = 8192u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_DSC_ATTRIBUTE: u32 = 256u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_EA_ATTRIBUTE: u32 = 32768u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_EFS_ATTRIBUTE: u32 = 1024u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_REPARSE_ATTRIBUTE: u32 = 16384u32; +pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_TXF_ATTRIBUTE: u32 = 512u32; +pub const QUERY_FILE_LAYOUT_NUM_FILTER_TYPES: QUERY_FILE_LAYOUT_FILTER_TYPE = 4i32; +pub const QUERY_FILE_LAYOUT_REPARSE_DATA_INVALID: u32 = 1u32; +pub const QUERY_FILE_LAYOUT_REPARSE_TAG_INVALID: u32 = 2u32; +pub const QUERY_FILE_LAYOUT_RESTART: u32 = 1u32; +pub const QUERY_FILE_LAYOUT_SINGLE_INSTANCED: u32 = 1u32; +pub const QUERY_STORAGE_CLASSES_FLAGS_MEASURE_READ: u32 = 1073741824u32; +pub const QUERY_STORAGE_CLASSES_FLAGS_MEASURE_WRITE: u32 = 2147483648u32; +pub const QUERY_STORAGE_CLASSES_FLAGS_NO_DEFRAG_VOLUME: u32 = 536870912u32; +pub const READ_ATTRIBUTES: u32 = 208u32; +pub const READ_ATTRIBUTE_BUFFER_SIZE: u32 = 512u32; +pub const READ_COMPRESSION_INFO_VALID: u32 = 32u32; +pub const READ_COPY_NUMBER_BYPASS_CACHE_FLAG: u32 = 256u32; +pub const READ_COPY_NUMBER_KEY: u32 = 1380142592u32; +pub const READ_THRESHOLDS: u32 = 209u32; +pub const READ_THRESHOLD_BUFFER_SIZE: u32 = 512u32; +pub const RECOVERED_READS_VALID: u32 = 4u32; +pub const RECOVERED_WRITES_VALID: u32 = 1u32; +pub const REFS_SMR_VOLUME_GC_PARAMETERS_VERSION_V1: u32 = 1u32; +pub const REFS_SMR_VOLUME_INFO_OUTPUT_VERSION_V0: u32 = 0u32; +pub const REFS_SMR_VOLUME_INFO_OUTPUT_VERSION_V1: u32 = 1u32; +pub const REPLACE_ALTERNATE: u32 = 11u32; +pub const REPLACE_PRIMARY: u32 = 10u32; +pub const REQUEST_OPLOCK_CURRENT_VERSION: u32 = 1u32; +pub const REQUEST_OPLOCK_INPUT_FLAG_ACK: u32 = 2u32; +pub const REQUEST_OPLOCK_INPUT_FLAG_COMPLETE_ACK_ON_CLOSE: u32 = 4u32; +pub const REQUEST_OPLOCK_INPUT_FLAG_REQUEST: u32 = 1u32; +pub const REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED: u32 = 1u32; +pub const REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED: u32 = 2u32; +pub const RETRACT_IEPORT: u32 = 3u32; +pub const RETURN_SMART_STATUS: u32 = 218u32; +pub const REVISION_LENGTH: u32 = 4u32; +pub const RemovableMedia: MEDIA_TYPE = 11i32; +pub const RequestLocation: BIN_TYPES = 1i32; +pub const RequestSize: BIN_TYPES = 0i32; +pub const SAIT: STORAGE_MEDIA_TYPE = 93i32; +pub const SAVE_ATTRIBUTE_VALUES: u32 = 211u32; +pub const SCM_MAX_SYMLINK_LEN_IN_CHARS: u32 = 256u32; +pub const SCM_PD_FIRMWARE_LAST_DOWNLOAD: u32 = 1u32; +pub const SCM_PD_FIRMWARE_REVISION_LENGTH_BYTES: u32 = 32u32; +pub const SCM_PD_MAX_OPERATIONAL_STATUS: u32 = 16u32; +pub const SCM_PD_PROPERTY_NAME_LENGTH_IN_CHARS: u32 = 128u32; +pub const SD_GLOBAL_CHANGE_TYPE_ENUM_SDS: u32 = 131072u32; +pub const SD_GLOBAL_CHANGE_TYPE_MACHINE_SID: u32 = 1u32; +pub const SD_GLOBAL_CHANGE_TYPE_QUERY_STATS: u32 = 65536u32; +pub const SEARCH_ALL: u32 = 0u32; +pub const SEARCH_ALL_NO_SEQ: u32 = 4u32; +pub const SEARCH_ALTERNATE: u32 = 2u32; +pub const SEARCH_ALT_NO_SEQ: u32 = 6u32; +pub const SEARCH_PRIMARY: u32 = 1u32; +pub const SEARCH_PRI_NO_SEQ: u32 = 5u32; +pub const SERIAL_IOC_FCR_DMA_MODE: u32 = 8u32; +pub const SERIAL_IOC_FCR_FIFO_ENABLE: u32 = 1u32; +pub const SERIAL_IOC_FCR_RCVR_RESET: u32 = 2u32; +pub const SERIAL_IOC_FCR_RCVR_TRIGGER_LSB: u32 = 64u32; +pub const SERIAL_IOC_FCR_RCVR_TRIGGER_MSB: u32 = 128u32; +pub const SERIAL_IOC_FCR_RES1: u32 = 16u32; +pub const SERIAL_IOC_FCR_RES2: u32 = 32u32; +pub const SERIAL_IOC_FCR_XMIT_RESET: u32 = 4u32; +pub const SERIAL_IOC_MCR_DTR: u32 = 1u32; +pub const SERIAL_IOC_MCR_LOOP: u32 = 16u32; +pub const SERIAL_IOC_MCR_OUT1: u32 = 4u32; +pub const SERIAL_IOC_MCR_OUT2: u32 = 8u32; +pub const SERIAL_IOC_MCR_RTS: u32 = 2u32; +pub const SERIAL_NUMBER_LENGTH: u32 = 32u32; +pub const SET_PURGE_FAILURE_MODE_DISABLED: u32 = 2u32; +pub const SET_PURGE_FAILURE_MODE_ENABLED: u32 = 1u32; +pub const SET_REPAIR_DISABLED_AND_BUGCHECK_ON_CORRUPT: u32 = 16u32; +pub const SET_REPAIR_ENABLED: u32 = 1u32; +pub const SET_REPAIR_VALID_MASK: u32 = 25u32; +pub const SET_REPAIR_WARN_ABOUT_DATA_LOSS: u32 = 8u32; +pub const SMART_ABORT_OFFLINE_SELFTEST: u32 = 127u32; +pub const SMART_CMD: u32 = 176u32; +pub const SMART_CYL_HI: u32 = 194u32; +pub const SMART_CYL_LOW: u32 = 79u32; +pub const SMART_ERROR_NO_MEM: u32 = 7u32; +pub const SMART_EXTENDED_SELFTEST_CAPTIVE: u32 = 130u32; +pub const SMART_EXTENDED_SELFTEST_OFFLINE: u32 = 2u32; +pub const SMART_GET_VERSION: u32 = 475264u32; +pub const SMART_IDE_ERROR: u32 = 1u32; +pub const SMART_INVALID_BUFFER: u32 = 4u32; +pub const SMART_INVALID_COMMAND: u32 = 3u32; +pub const SMART_INVALID_DRIVE: u32 = 5u32; +pub const SMART_INVALID_FLAG: u32 = 2u32; +pub const SMART_INVALID_IOCTL: u32 = 6u32; +pub const SMART_INVALID_REGISTER: u32 = 8u32; +pub const SMART_LOG_SECTOR_SIZE: u32 = 512u32; +pub const SMART_NOT_SUPPORTED: u32 = 9u32; +pub const SMART_NO_ERROR: u32 = 0u32; +pub const SMART_NO_IDE_DEVICE: u32 = 10u32; +pub const SMART_OFFLINE_ROUTINE_OFFLINE: u32 = 0u32; +pub const SMART_RCV_DRIVE_DATA: u32 = 508040u32; +pub const SMART_RCV_DRIVE_DATA_EX: u32 = 458892u32; +pub const SMART_READ_LOG: u32 = 213u32; +pub const SMART_SEND_DRIVE_COMMAND: u32 = 508036u32; +pub const SMART_SHORT_SELFTEST_CAPTIVE: u32 = 129u32; +pub const SMART_SHORT_SELFTEST_OFFLINE: u32 = 1u32; +pub const SMART_WRITE_LOG: u32 = 214u32; +pub const SONY_12_WO: STORAGE_MEDIA_TYPE = 66i32; +pub const SONY_D2: STORAGE_MEDIA_TYPE = 49i32; +pub const SONY_DTF: STORAGE_MEDIA_TYPE = 46i32; +pub const SPACES_TRACKED_OFFSET_HEADER_FLAG: u32 = 2u32; +pub const SRB_TYPE_SCSI_REQUEST_BLOCK: u32 = 0u32; +pub const SRB_TYPE_STORAGE_REQUEST_BLOCK: u32 = 1u32; +pub const STK_9840: STORAGE_MEDIA_TYPE = 85i32; +pub const STK_9940: STORAGE_MEDIA_TYPE = 92i32; +pub const STK_DATA_D3: STORAGE_MEDIA_TYPE = 45i32; +pub const STORAGE_ADAPTER_SERIAL_NUMBER_V1_MAX_LENGTH: u32 = 128u32; +pub const STORAGE_ADDRESS_TYPE_BTL8: u32 = 0u32; +pub const STORAGE_ATTRIBUTE_ASYNC_EVENT_NOTIFICATION: u32 = 16u32; +pub const STORAGE_ATTRIBUTE_BLOCK_IO: u32 = 2u32; +pub const STORAGE_ATTRIBUTE_BYTE_ADDRESSABLE_IO: u32 = 1u32; +pub const STORAGE_ATTRIBUTE_DYNAMIC_PERSISTENCE: u32 = 4u32; +pub const STORAGE_ATTRIBUTE_PERF_SIZE_INDEPENDENT: u32 = 32u32; +pub const STORAGE_ATTRIBUTE_VOLATILE: u32 = 8u32; +pub const STORAGE_COMPONENT_ROLE_CACHE: u32 = 1u32; +pub const STORAGE_COMPONENT_ROLE_DATA: u32 = 4u32; +pub const STORAGE_COMPONENT_ROLE_TIERING: u32 = 2u32; +pub const STORAGE_CRASH_TELEMETRY_REGKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Registry\\Machine\\System\\CurrentControlSet\\Control\\CrashControl\\StorageTelemetry"); +pub const STORAGE_CRYPTO_CAPABILITY_VERSION_1: u32 = 1u32; +pub const STORAGE_CRYPTO_DESCRIPTOR_VERSION_1: u32 = 1u32; +pub const STORAGE_DEVICE_FLAGS_PAGE_83_DEVICEGUID: u32 = 4u32; +pub const STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_CONFLICT: u32 = 1u32; +pub const STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_NOHWID: u32 = 2u32; +pub const STORAGE_DEVICE_MAX_OPERATIONAL_STATUS: u32 = 16u32; +pub const STORAGE_DEVICE_NUMA_NODE_UNKNOWN: u32 = 4294967295u32; +pub const STORAGE_DEVICE_POWER_CAP_VERSION_V1: u32 = 1u32; +pub const STORAGE_DEVICE_TELEMETRY_REGKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Storage\\StorageTelemetry"); +pub const STORAGE_DIAGNOSTIC_FLAG_ADAPTER_REQUEST: u32 = 1u32; +pub const STORAGE_EVENT_DEVICE_OPERATION: u64 = 4u64; +pub const STORAGE_EVENT_DEVICE_STATUS: u64 = 2u64; +pub const STORAGE_EVENT_MEDIA_STATUS: u64 = 1u64; +pub const STORAGE_EVENT_NOTIFICATION_VERSION_V1: u32 = 1u32; +pub const STORAGE_FAILURE_PREDICTION_CONFIG_V1: u32 = 1u32; +pub const STORAGE_HW_FIRMWARE_INVALID_SLOT: u32 = 255u32; +pub const STORAGE_HW_FIRMWARE_REQUEST_FLAG_CONTROLLER: u32 = 1u32; +pub const STORAGE_HW_FIRMWARE_REQUEST_FLAG_FIRST_SEGMENT: u32 = 4u32; +pub const STORAGE_HW_FIRMWARE_REQUEST_FLAG_LAST_SEGMENT: u32 = 2u32; +pub const STORAGE_HW_FIRMWARE_REQUEST_FLAG_REPLACE_EXISTING_IMAGE: u32 = 1073741824u32; +pub const STORAGE_HW_FIRMWARE_REQUEST_FLAG_SWITCH_TO_EXISTING_FIRMWARE: u32 = 2147483648u32; +pub const STORAGE_HW_FIRMWARE_REVISION_LENGTH: u32 = 16u32; +pub const STORAGE_IDLE_POWERUP_REASON_VERSION_V1: u32 = 1u32; +pub const STORAGE_OFFLOAD_MAX_TOKEN_LENGTH: u32 = 512u32; +pub const STORAGE_OFFLOAD_READ_RANGE_TRUNCATED: u32 = 1u32; +pub const STORAGE_OFFLOAD_TOKEN_ID_LENGTH: u32 = 504u32; +pub const STORAGE_OFFLOAD_TOKEN_INVALID: u32 = 2u32; +pub const STORAGE_OFFLOAD_TOKEN_TYPE_ZERO_DATA: u32 = 4294901761u32; +pub const STORAGE_OFFLOAD_WRITE_RANGE_TRUNCATED: u32 = 1u32; +pub const STORAGE_PRIORITY_HINT_SUPPORTED: u32 = 1u32; +pub const STORAGE_PROTOCOL_COMMAND_FLAG_ADAPTER_REQUEST: u32 = 2147483648u32; +pub const STORAGE_PROTOCOL_COMMAND_LENGTH_NVME: u32 = 64u32; +pub const STORAGE_PROTOCOL_SPECIFIC_NVME_ADMIN_COMMAND: u32 = 1u32; +pub const STORAGE_PROTOCOL_SPECIFIC_NVME_NVM_COMMAND: u32 = 2u32; +pub const STORAGE_PROTOCOL_STATUS_BUSY: u32 = 5u32; +pub const STORAGE_PROTOCOL_STATUS_DATA_OVERRUN: u32 = 6u32; +pub const STORAGE_PROTOCOL_STATUS_ERROR: u32 = 2u32; +pub const STORAGE_PROTOCOL_STATUS_INSUFFICIENT_RESOURCES: u32 = 7u32; +pub const STORAGE_PROTOCOL_STATUS_INVALID_REQUEST: u32 = 3u32; +pub const STORAGE_PROTOCOL_STATUS_NOT_SUPPORTED: u32 = 255u32; +pub const STORAGE_PROTOCOL_STATUS_NO_DEVICE: u32 = 4u32; +pub const STORAGE_PROTOCOL_STATUS_PENDING: u32 = 0u32; +pub const STORAGE_PROTOCOL_STATUS_SUCCESS: u32 = 1u32; +pub const STORAGE_PROTOCOL_STATUS_THROTTLED_REQUEST: u32 = 8u32; +pub const STORAGE_PROTOCOL_STRUCTURE_VERSION: u32 = 1u32; +pub const STORAGE_RPMB_DESCRIPTOR_VERSION_1: u32 = 1u32; +pub const STORAGE_RPMB_MINIMUM_RELIABLE_WRITE_SIZE: u32 = 512u32; +pub const STORAGE_SUPPORTED_FEATURES_BYPASS_IO: u32 = 1u32; +pub const STORAGE_SUPPORTED_FEATURES_MASK: u32 = 1u32; +pub const STORAGE_TEMPERATURE_THRESHOLD_FLAG_ADAPTER_REQUEST: u32 = 1u32; +pub const STORAGE_TEMPERATURE_VALUE_NOT_REPORTED: u32 = 32768u32; +pub const STORAGE_TIER_DESCRIPTION_LENGTH: u32 = 512u32; +pub const STORAGE_TIER_FLAG_NO_SEEK_PENALTY: u32 = 131072u32; +pub const STORAGE_TIER_FLAG_PARITY: u32 = 8388608u32; +pub const STORAGE_TIER_FLAG_READ_CACHE: u32 = 4194304u32; +pub const STORAGE_TIER_FLAG_SMR: u32 = 16777216u32; +pub const STORAGE_TIER_FLAG_WRITE_BACK_CACHE: u32 = 2097152u32; +pub const STORAGE_TIER_NAME_LENGTH: u32 = 256u32; +pub const STORATTRIBUTE_MANAGEMENT_STATE: u32 = 1u32; +pub const STORATTRIBUTE_NONE: u32 = 0u32; +pub const STREAMS_ASSOCIATE_ID_CLEAR: u32 = 1u32; +pub const STREAMS_ASSOCIATE_ID_SET: u32 = 2u32; +pub const STREAMS_INVALID_ID: u32 = 0u32; +pub const STREAMS_MAX_ID: u32 = 65535u32; +pub const STREAM_CLEAR_ENCRYPTION: u32 = 4u32; +pub const STREAM_EXTENT_ENTRY_ALL_EXTENTS: u32 = 2u32; +pub const STREAM_EXTENT_ENTRY_AS_RETRIEVAL_POINTERS: u32 = 1u32; +pub const STREAM_LAYOUT_ENTRY_HAS_INFORMATION: u32 = 16u32; +pub const STREAM_LAYOUT_ENTRY_IMMOVABLE: u32 = 1u32; +pub const STREAM_LAYOUT_ENTRY_NO_CLUSTERS_ALLOCATED: u32 = 8u32; +pub const STREAM_LAYOUT_ENTRY_PINNED: u32 = 2u32; +pub const STREAM_LAYOUT_ENTRY_RESIDENT: u32 = 4u32; +pub const STREAM_SET_ENCRYPTION: u32 = 3u32; +pub const SYQUEST_EZ135: STORAGE_MEDIA_TYPE = 75i32; +pub const SYQUEST_EZFLYER: STORAGE_MEDIA_TYPE = 76i32; +pub const SYQUEST_SYJET: STORAGE_MEDIA_TYPE = 77i32; +pub const ScmBusFirmwareActivationState_Armed: SCM_BUS_FIRMWARE_ACTIVATION_STATE = 1i32; +pub const ScmBusFirmwareActivationState_Busy: SCM_BUS_FIRMWARE_ACTIVATION_STATE = 2i32; +pub const ScmBusFirmwareActivationState_Idle: SCM_BUS_FIRMWARE_ACTIVATION_STATE = 0i32; +pub const ScmBusProperty_DedicatedMemoryInfo: SCM_BUS_PROPERTY_ID = 1i32; +pub const ScmBusProperty_DedicatedMemoryState: SCM_BUS_PROPERTY_ID = 2i32; +pub const ScmBusProperty_Max: SCM_BUS_PROPERTY_ID = 3i32; +pub const ScmBusProperty_RuntimeFwActivationInfo: SCM_BUS_PROPERTY_ID = 0i32; +pub const ScmBusQuery_Descriptor: SCM_BUS_QUERY_TYPE = 0i32; +pub const ScmBusQuery_IsSupported: SCM_BUS_QUERY_TYPE = 1i32; +pub const ScmBusQuery_Max: SCM_BUS_QUERY_TYPE = 2i32; +pub const ScmBusSet_Descriptor: SCM_BUS_SET_TYPE = 0i32; +pub const ScmBusSet_IsSupported: SCM_BUS_SET_TYPE = 1i32; +pub const ScmBusSet_Max: SCM_BUS_SET_TYPE = 2i32; +pub const ScmPdFirmwareActivationState_Armed: SCM_PD_FIRMWARE_ACTIVATION_STATE = 1i32; +pub const ScmPdFirmwareActivationState_Busy: SCM_PD_FIRMWARE_ACTIVATION_STATE = 2i32; +pub const ScmPdFirmwareActivationState_Idle: SCM_PD_FIRMWARE_ACTIVATION_STATE = 0i32; +pub const ScmPdLastFwActivaitonStatus_ActivationInProgress: SCM_PD_LAST_FW_ACTIVATION_STATUS = 4i32; +pub const ScmPdLastFwActivaitonStatus_FwUnsupported: SCM_PD_LAST_FW_ACTIVATION_STATUS = 6i32; +pub const ScmPdLastFwActivaitonStatus_Retry: SCM_PD_LAST_FW_ACTIVATION_STATUS = 5i32; +pub const ScmPdLastFwActivaitonStatus_UnknownError: SCM_PD_LAST_FW_ACTIVATION_STATUS = 7i32; +pub const ScmPdLastFwActivationStatus_ColdRebootRequired: SCM_PD_LAST_FW_ACTIVATION_STATUS = 3i32; +pub const ScmPdLastFwActivationStatus_FwNotFound: SCM_PD_LAST_FW_ACTIVATION_STATUS = 2i32; +pub const ScmPdLastFwActivationStatus_None: SCM_PD_LAST_FW_ACTIVATION_STATUS = 0i32; +pub const ScmPdLastFwActivationStatus_Success: SCM_PD_LAST_FW_ACTIVATION_STATUS = 1i32; +pub const ScmPhysicalDeviceHealth_Healthy: SCM_PD_HEALTH_STATUS = 3i32; +pub const ScmPhysicalDeviceHealth_Max: SCM_PD_HEALTH_STATUS = 4i32; +pub const ScmPhysicalDeviceHealth_Unhealthy: SCM_PD_HEALTH_STATUS = 1i32; +pub const ScmPhysicalDeviceHealth_Unknown: SCM_PD_HEALTH_STATUS = 0i32; +pub const ScmPhysicalDeviceHealth_Warning: SCM_PD_HEALTH_STATUS = 2i32; +pub const ScmPhysicalDeviceOpReason_BackgroundOperation: SCM_PD_OPERATIONAL_STATUS_REASON = 9i32; +pub const ScmPhysicalDeviceOpReason_Component: SCM_PD_OPERATIONAL_STATUS_REASON = 8i32; +pub const ScmPhysicalDeviceOpReason_Configuration: SCM_PD_OPERATIONAL_STATUS_REASON = 5i32; +pub const ScmPhysicalDeviceOpReason_DataPersistenceLossImminent: SCM_PD_OPERATIONAL_STATUS_REASON = 17i32; +pub const ScmPhysicalDeviceOpReason_DeviceController: SCM_PD_OPERATIONAL_STATUS_REASON = 6i32; +pub const ScmPhysicalDeviceOpReason_DisabledByPlatform: SCM_PD_OPERATIONAL_STATUS_REASON = 13i32; +pub const ScmPhysicalDeviceOpReason_EnergySource: SCM_PD_OPERATIONAL_STATUS_REASON = 4i32; +pub const ScmPhysicalDeviceOpReason_ExcessiveTemperature: SCM_PD_OPERATIONAL_STATUS_REASON = 21i32; +pub const ScmPhysicalDeviceOpReason_FatalError: SCM_PD_OPERATIONAL_STATUS_REASON = 16i32; +pub const ScmPhysicalDeviceOpReason_HealthCheck: SCM_PD_OPERATIONAL_STATUS_REASON = 11i32; +pub const ScmPhysicalDeviceOpReason_InternalFailure: SCM_PD_OPERATIONAL_STATUS_REASON = 22i32; +pub const ScmPhysicalDeviceOpReason_InvalidFirmware: SCM_PD_OPERATIONAL_STATUS_REASON = 10i32; +pub const ScmPhysicalDeviceOpReason_LostData: SCM_PD_OPERATIONAL_STATUS_REASON = 3i32; +pub const ScmPhysicalDeviceOpReason_LostDataPersistence: SCM_PD_OPERATIONAL_STATUS_REASON = 12i32; +pub const ScmPhysicalDeviceOpReason_LostWritePersistence: SCM_PD_OPERATIONAL_STATUS_REASON = 15i32; +pub const ScmPhysicalDeviceOpReason_Max: SCM_PD_OPERATIONAL_STATUS_REASON = 23i32; +pub const ScmPhysicalDeviceOpReason_Media: SCM_PD_OPERATIONAL_STATUS_REASON = 1i32; +pub const ScmPhysicalDeviceOpReason_MediaController: SCM_PD_OPERATIONAL_STATUS_REASON = 7i32; +pub const ScmPhysicalDeviceOpReason_MediaRemainingSpareBlock: SCM_PD_OPERATIONAL_STATUS_REASON = 19i32; +pub const ScmPhysicalDeviceOpReason_PerformanceDegradation: SCM_PD_OPERATIONAL_STATUS_REASON = 20i32; +pub const ScmPhysicalDeviceOpReason_PermanentError: SCM_PD_OPERATIONAL_STATUS_REASON = 14i32; +pub const ScmPhysicalDeviceOpReason_ThresholdExceeded: SCM_PD_OPERATIONAL_STATUS_REASON = 2i32; +pub const ScmPhysicalDeviceOpReason_Unknown: SCM_PD_OPERATIONAL_STATUS_REASON = 0i32; +pub const ScmPhysicalDeviceOpReason_WritePersistenceLossImminent: SCM_PD_OPERATIONAL_STATUS_REASON = 18i32; +pub const ScmPhysicalDeviceOpStatus_HardwareError: SCM_PD_OPERATIONAL_STATUS = 4i32; +pub const ScmPhysicalDeviceOpStatus_InService: SCM_PD_OPERATIONAL_STATUS = 3i32; +pub const ScmPhysicalDeviceOpStatus_Max: SCM_PD_OPERATIONAL_STATUS = 8i32; +pub const ScmPhysicalDeviceOpStatus_Missing: SCM_PD_OPERATIONAL_STATUS = 7i32; +pub const ScmPhysicalDeviceOpStatus_NotUsable: SCM_PD_OPERATIONAL_STATUS = 5i32; +pub const ScmPhysicalDeviceOpStatus_Ok: SCM_PD_OPERATIONAL_STATUS = 1i32; +pub const ScmPhysicalDeviceOpStatus_PredictingFailure: SCM_PD_OPERATIONAL_STATUS = 2i32; +pub const ScmPhysicalDeviceOpStatus_TransientError: SCM_PD_OPERATIONAL_STATUS = 6i32; +pub const ScmPhysicalDeviceOpStatus_Unknown: SCM_PD_OPERATIONAL_STATUS = 0i32; +pub const ScmPhysicalDeviceProperty_DeviceHandle: SCM_PD_PROPERTY_ID = 5i32; +pub const ScmPhysicalDeviceProperty_DeviceInfo: SCM_PD_PROPERTY_ID = 0i32; +pub const ScmPhysicalDeviceProperty_DeviceSpecificInfo: SCM_PD_PROPERTY_ID = 4i32; +pub const ScmPhysicalDeviceProperty_FirmwareInfo: SCM_PD_PROPERTY_ID = 2i32; +pub const ScmPhysicalDeviceProperty_FruIdString: SCM_PD_PROPERTY_ID = 6i32; +pub const ScmPhysicalDeviceProperty_LocationString: SCM_PD_PROPERTY_ID = 3i32; +pub const ScmPhysicalDeviceProperty_ManagementStatus: SCM_PD_PROPERTY_ID = 1i32; +pub const ScmPhysicalDeviceProperty_Max: SCM_PD_PROPERTY_ID = 9i32; +pub const ScmPhysicalDeviceProperty_RuntimeFwActivationArmState: SCM_PD_PROPERTY_ID = 8i32; +pub const ScmPhysicalDeviceProperty_RuntimeFwActivationInfo: SCM_PD_PROPERTY_ID = 7i32; +pub const ScmPhysicalDeviceQuery_Descriptor: SCM_PD_QUERY_TYPE = 0i32; +pub const ScmPhysicalDeviceQuery_IsSupported: SCM_PD_QUERY_TYPE = 1i32; +pub const ScmPhysicalDeviceQuery_Max: SCM_PD_QUERY_TYPE = 2i32; +pub const ScmPhysicalDeviceReinit_ColdBootNeeded: SCM_PD_MEDIA_REINITIALIZATION_STATUS = 2i32; +pub const ScmPhysicalDeviceReinit_Max: SCM_PD_MEDIA_REINITIALIZATION_STATUS = 3i32; +pub const ScmPhysicalDeviceReinit_RebootNeeded: SCM_PD_MEDIA_REINITIALIZATION_STATUS = 1i32; +pub const ScmPhysicalDeviceReinit_Success: SCM_PD_MEDIA_REINITIALIZATION_STATUS = 0i32; +pub const ScmPhysicalDeviceSet_Descriptor: SCM_PD_SET_TYPE = 0i32; +pub const ScmPhysicalDeviceSet_IsSupported: SCM_PD_SET_TYPE = 1i32; +pub const ScmPhysicalDeviceSet_Max: SCM_PD_SET_TYPE = 2i32; +pub const ScmRegionFlagLabel: SCM_REGION_FLAG = 1i32; +pub const ScmRegionFlagNone: SCM_REGION_FLAG = 0i32; +pub const ShrinkAbort: SHRINK_VOLUME_REQUEST_TYPES = 3i32; +pub const ShrinkCommit: SHRINK_VOLUME_REQUEST_TYPES = 2i32; +pub const ShrinkPrepare: SHRINK_VOLUME_REQUEST_TYPES = 1i32; +pub const SmrGcActionPause: REFS_SMR_VOLUME_GC_ACTION = 3i32; +pub const SmrGcActionStart: REFS_SMR_VOLUME_GC_ACTION = 1i32; +pub const SmrGcActionStartFullSpeed: REFS_SMR_VOLUME_GC_ACTION = 2i32; +pub const SmrGcActionStop: REFS_SMR_VOLUME_GC_ACTION = 4i32; +pub const SmrGcMethodCompaction: REFS_SMR_VOLUME_GC_METHOD = 1i32; +pub const SmrGcMethodCompression: REFS_SMR_VOLUME_GC_METHOD = 2i32; +pub const SmrGcMethodRotation: REFS_SMR_VOLUME_GC_METHOD = 3i32; +pub const SmrGcStateActive: REFS_SMR_VOLUME_GC_STATE = 2i32; +pub const SmrGcStateActiveFullSpeed: REFS_SMR_VOLUME_GC_STATE = 3i32; +pub const SmrGcStateInactive: REFS_SMR_VOLUME_GC_STATE = 0i32; +pub const SmrGcStatePaused: REFS_SMR_VOLUME_GC_STATE = 1i32; +pub const StorAttributeMgmt_ClearAttribute: STORAGE_ATTRIBUTE_MGMT_ACTION = 0i32; +pub const StorAttributeMgmt_ResetAttribute: STORAGE_ATTRIBUTE_MGMT_ACTION = 2i32; +pub const StorAttributeMgmt_SetAttribute: STORAGE_ATTRIBUTE_MGMT_ACTION = 1i32; +pub const StorRpmbAuthenticatedDeviceConfigRead: STORAGE_RPMB_COMMAND_TYPE = 7i32; +pub const StorRpmbAuthenticatedDeviceConfigWrite: STORAGE_RPMB_COMMAND_TYPE = 6i32; +pub const StorRpmbAuthenticatedRead: STORAGE_RPMB_COMMAND_TYPE = 4i32; +pub const StorRpmbAuthenticatedWrite: STORAGE_RPMB_COMMAND_TYPE = 3i32; +pub const StorRpmbProgramAuthKey: STORAGE_RPMB_COMMAND_TYPE = 1i32; +pub const StorRpmbQueryWriteCounter: STORAGE_RPMB_COMMAND_TYPE = 2i32; +pub const StorRpmbReadResultRequest: STORAGE_RPMB_COMMAND_TYPE = 5i32; +pub const StorageAccessAlignmentProperty: STORAGE_PROPERTY_ID = 6i32; +pub const StorageAdapterCryptoProperty: STORAGE_PROPERTY_ID = 17i32; +pub const StorageAdapterPhysicalTopologyProperty: STORAGE_PROPERTY_ID = 53i32; +pub const StorageAdapterProperty: STORAGE_PROPERTY_ID = 1i32; +pub const StorageAdapterProtocolSpecificProperty: STORAGE_PROPERTY_ID = 49i32; +pub const StorageAdapterRpmbProperty: STORAGE_PROPERTY_ID = 16i32; +pub const StorageAdapterSerialNumberProperty: STORAGE_PROPERTY_ID = 57i32; +pub const StorageAdapterTemperatureProperty: STORAGE_PROPERTY_ID = 51i32; +pub const StorageCounterTypeFlushLatency100NSMax: STORAGE_COUNTER_TYPE = 20i32; +pub const StorageCounterTypeLoadUnloadCycleCount: STORAGE_COUNTER_TYPE = 12i32; +pub const StorageCounterTypeLoadUnloadCycleCountMax: STORAGE_COUNTER_TYPE = 13i32; +pub const StorageCounterTypeManufactureDate: STORAGE_COUNTER_TYPE = 9i32; +pub const StorageCounterTypeMax: STORAGE_COUNTER_TYPE = 21i32; +pub const StorageCounterTypePowerOnHours: STORAGE_COUNTER_TYPE = 17i32; +pub const StorageCounterTypeReadErrorsCorrected: STORAGE_COUNTER_TYPE = 4i32; +pub const StorageCounterTypeReadErrorsTotal: STORAGE_COUNTER_TYPE = 3i32; +pub const StorageCounterTypeReadErrorsUncorrected: STORAGE_COUNTER_TYPE = 5i32; +pub const StorageCounterTypeReadLatency100NSMax: STORAGE_COUNTER_TYPE = 18i32; +pub const StorageCounterTypeStartStopCycleCount: STORAGE_COUNTER_TYPE = 10i32; +pub const StorageCounterTypeStartStopCycleCountMax: STORAGE_COUNTER_TYPE = 11i32; +pub const StorageCounterTypeTemperatureCelsius: STORAGE_COUNTER_TYPE = 1i32; +pub const StorageCounterTypeTemperatureCelsiusMax: STORAGE_COUNTER_TYPE = 2i32; +pub const StorageCounterTypeUnknown: STORAGE_COUNTER_TYPE = 0i32; +pub const StorageCounterTypeWearPercentage: STORAGE_COUNTER_TYPE = 14i32; +pub const StorageCounterTypeWearPercentageMax: STORAGE_COUNTER_TYPE = 16i32; +pub const StorageCounterTypeWearPercentageWarning: STORAGE_COUNTER_TYPE = 15i32; +pub const StorageCounterTypeWriteErrorsCorrected: STORAGE_COUNTER_TYPE = 7i32; +pub const StorageCounterTypeWriteErrorsTotal: STORAGE_COUNTER_TYPE = 6i32; +pub const StorageCounterTypeWriteErrorsUncorrected: STORAGE_COUNTER_TYPE = 8i32; +pub const StorageCounterTypeWriteLatency100NSMax: STORAGE_COUNTER_TYPE = 19i32; +pub const StorageCryptoAlgorithmAESECB: STORAGE_CRYPTO_ALGORITHM_ID = 3i32; +pub const StorageCryptoAlgorithmBitlockerAESCBC: STORAGE_CRYPTO_ALGORITHM_ID = 2i32; +pub const StorageCryptoAlgorithmESSIVAESCBC: STORAGE_CRYPTO_ALGORITHM_ID = 4i32; +pub const StorageCryptoAlgorithmMax: STORAGE_CRYPTO_ALGORITHM_ID = 5i32; +pub const StorageCryptoAlgorithmUnknown: STORAGE_CRYPTO_ALGORITHM_ID = 0i32; +pub const StorageCryptoAlgorithmXTSAES: STORAGE_CRYPTO_ALGORITHM_ID = 1i32; +pub const StorageCryptoKeySize128Bits: STORAGE_CRYPTO_KEY_SIZE = 1i32; +pub const StorageCryptoKeySize192Bits: STORAGE_CRYPTO_KEY_SIZE = 2i32; +pub const StorageCryptoKeySize256Bits: STORAGE_CRYPTO_KEY_SIZE = 3i32; +pub const StorageCryptoKeySize512Bits: STORAGE_CRYPTO_KEY_SIZE = 4i32; +pub const StorageCryptoKeySizeUnknown: STORAGE_CRYPTO_KEY_SIZE = 0i32; +pub const StorageDeviceAttributesProperty: STORAGE_PROPERTY_ID = 55i32; +pub const StorageDeviceCopyOffloadProperty: STORAGE_PROPERTY_ID = 13i32; +pub const StorageDeviceDeviceTelemetryProperty: STORAGE_PROPERTY_ID = 10i32; +pub const StorageDeviceEnduranceProperty: STORAGE_PROPERTY_ID = 62i32; +pub const StorageDeviceIdProperty: STORAGE_PROPERTY_ID = 2i32; +pub const StorageDeviceIoCapabilityProperty: STORAGE_PROPERTY_ID = 48i32; +pub const StorageDeviceLBProvisioningProperty: STORAGE_PROPERTY_ID = 11i32; +pub const StorageDeviceLedStateProperty: STORAGE_PROPERTY_ID = 63i32; +pub const StorageDeviceLocationProperty: STORAGE_PROPERTY_ID = 58i32; +pub const StorageDeviceManagementStatus: STORAGE_PROPERTY_ID = 56i32; +pub const StorageDeviceMediumProductType: STORAGE_PROPERTY_ID = 15i32; +pub const StorageDeviceNumaProperty: STORAGE_PROPERTY_ID = 59i32; +pub const StorageDevicePhysicalTopologyProperty: STORAGE_PROPERTY_ID = 54i32; +pub const StorageDevicePowerCapUnitsMilliwatts: STORAGE_DEVICE_POWER_CAP_UNITS = 1i32; +pub const StorageDevicePowerCapUnitsPercent: STORAGE_DEVICE_POWER_CAP_UNITS = 0i32; +pub const StorageDevicePowerProperty: STORAGE_PROPERTY_ID = 12i32; +pub const StorageDeviceProperty: STORAGE_PROPERTY_ID = 0i32; +pub const StorageDeviceProtocolSpecificProperty: STORAGE_PROPERTY_ID = 50i32; +pub const StorageDeviceResiliencyProperty: STORAGE_PROPERTY_ID = 14i32; +pub const StorageDeviceSeekPenaltyProperty: STORAGE_PROPERTY_ID = 7i32; +pub const StorageDeviceSelfEncryptionProperty: STORAGE_PROPERTY_ID = 64i32; +pub const StorageDeviceTemperatureProperty: STORAGE_PROPERTY_ID = 52i32; +pub const StorageDeviceTrimProperty: STORAGE_PROPERTY_ID = 8i32; +pub const StorageDeviceUniqueIdProperty: STORAGE_PROPERTY_ID = 3i32; +pub const StorageDeviceUnsafeShutdownCount: STORAGE_PROPERTY_ID = 61i32; +pub const StorageDeviceWriteAggregationProperty: STORAGE_PROPERTY_ID = 9i32; +pub const StorageDeviceWriteCacheProperty: STORAGE_PROPERTY_ID = 4i32; +pub const StorageDeviceZonedDeviceProperty: STORAGE_PROPERTY_ID = 60i32; +pub const StorageDiagnosticLevelDefault: STORAGE_DIAGNOSTIC_LEVEL = 0i32; +pub const StorageDiagnosticLevelMax: STORAGE_DIAGNOSTIC_LEVEL = 1i32; +pub const StorageDiagnosticTargetTypeHbaFirmware: STORAGE_DIAGNOSTIC_TARGET_TYPE = 3i32; +pub const StorageDiagnosticTargetTypeMax: STORAGE_DIAGNOSTIC_TARGET_TYPE = 4i32; +pub const StorageDiagnosticTargetTypeMiniport: STORAGE_DIAGNOSTIC_TARGET_TYPE = 2i32; +pub const StorageDiagnosticTargetTypePort: STORAGE_DIAGNOSTIC_TARGET_TYPE = 1i32; +pub const StorageDiagnosticTargetTypeUndefined: STORAGE_DIAGNOSTIC_TARGET_TYPE = 0i32; +pub const StorageEncryptionTypeEDrive: STORAGE_ENCRYPTION_TYPE = 1i32; +pub const StorageEncryptionTypeTcgOpal: STORAGE_ENCRYPTION_TYPE = 2i32; +pub const StorageEncryptionTypeUnknown: STORAGE_ENCRYPTION_TYPE = 0i32; +pub const StorageFruIdProperty: STORAGE_PROPERTY_ID = 65i32; +pub const StorageIdAssocDevice: STORAGE_ASSOCIATION_TYPE = 0i32; +pub const StorageIdAssocPort: STORAGE_ASSOCIATION_TYPE = 1i32; +pub const StorageIdAssocTarget: STORAGE_ASSOCIATION_TYPE = 2i32; +pub const StorageIdCodeSetAscii: STORAGE_IDENTIFIER_CODE_SET = 2i32; +pub const StorageIdCodeSetBinary: STORAGE_IDENTIFIER_CODE_SET = 1i32; +pub const StorageIdCodeSetReserved: STORAGE_IDENTIFIER_CODE_SET = 0i32; +pub const StorageIdCodeSetUtf8: STORAGE_IDENTIFIER_CODE_SET = 3i32; +pub const StorageIdNAAFormatIEEEERegisteredExtended: STORAGE_ID_NAA_FORMAT = 5i32; +pub const StorageIdNAAFormatIEEEExtended: STORAGE_ID_NAA_FORMAT = 2i32; +pub const StorageIdNAAFormatIEEERegistered: STORAGE_ID_NAA_FORMAT = 3i32; +pub const StorageIdTypeEUI64: STORAGE_IDENTIFIER_TYPE = 2i32; +pub const StorageIdTypeFCPHName: STORAGE_IDENTIFIER_TYPE = 3i32; +pub const StorageIdTypeLogicalUnitGroup: STORAGE_IDENTIFIER_TYPE = 6i32; +pub const StorageIdTypeMD5LogicalUnitIdentifier: STORAGE_IDENTIFIER_TYPE = 7i32; +pub const StorageIdTypePortRelative: STORAGE_IDENTIFIER_TYPE = 4i32; +pub const StorageIdTypeScsiNameString: STORAGE_IDENTIFIER_TYPE = 8i32; +pub const StorageIdTypeTargetPortGroup: STORAGE_IDENTIFIER_TYPE = 5i32; +pub const StorageIdTypeVendorId: STORAGE_IDENTIFIER_TYPE = 1i32; +pub const StorageIdTypeVendorSpecific: STORAGE_IDENTIFIER_TYPE = 0i32; +pub const StorageMiniportProperty: STORAGE_PROPERTY_ID = 5i32; +pub const StoragePortCodeSetATAport: STORAGE_PORT_CODE_SET = 4i32; +pub const StoragePortCodeSetReserved: STORAGE_PORT_CODE_SET = 0i32; +pub const StoragePortCodeSetSBP2port: STORAGE_PORT_CODE_SET = 6i32; +pub const StoragePortCodeSetSCSIport: STORAGE_PORT_CODE_SET = 2i32; +pub const StoragePortCodeSetSDport: STORAGE_PORT_CODE_SET = 7i32; +pub const StoragePortCodeSetSpaceport: STORAGE_PORT_CODE_SET = 3i32; +pub const StoragePortCodeSetStorport: STORAGE_PORT_CODE_SET = 1i32; +pub const StoragePortCodeSetUSBport: STORAGE_PORT_CODE_SET = 5i32; +pub const StoragePowerupDeviceAttention: STORAGE_POWERUP_REASON_TYPE = 2i32; +pub const StoragePowerupIO: STORAGE_POWERUP_REASON_TYPE = 1i32; +pub const StoragePowerupUnknown: STORAGE_POWERUP_REASON_TYPE = 0i32; +pub const StorageReserveIdHard: STORAGE_RESERVE_ID = 1i32; +pub const StorageReserveIdMax: STORAGE_RESERVE_ID = 4i32; +pub const StorageReserveIdNone: STORAGE_RESERVE_ID = 0i32; +pub const StorageReserveIdSoft: STORAGE_RESERVE_ID = 2i32; +pub const StorageReserveIdUpdateScratch: STORAGE_RESERVE_ID = 3i32; +pub const StorageRpmbFrameTypeMax: STORAGE_RPMB_FRAME_TYPE = 2i32; +pub const StorageRpmbFrameTypeStandard: STORAGE_RPMB_FRAME_TYPE = 1i32; +pub const StorageRpmbFrameTypeUnknown: STORAGE_RPMB_FRAME_TYPE = 0i32; +pub const StorageSanitizeMethodBlockErase: STORAGE_SANITIZE_METHOD = 1i32; +pub const StorageSanitizeMethodCryptoErase: STORAGE_SANITIZE_METHOD = 2i32; +pub const StorageSanitizeMethodDefault: STORAGE_SANITIZE_METHOD = 0i32; +pub const StorageTierClassCapacity: STORAGE_TIER_CLASS = 1i32; +pub const StorageTierClassMax: STORAGE_TIER_CLASS = 3i32; +pub const StorageTierClassPerformance: STORAGE_TIER_CLASS = 2i32; +pub const StorageTierClassUnspecified: STORAGE_TIER_CLASS = 0i32; +pub const StorageTierMediaTypeDisk: STORAGE_TIER_MEDIA_TYPE = 1i32; +pub const StorageTierMediaTypeMax: STORAGE_TIER_MEDIA_TYPE = 5i32; +pub const StorageTierMediaTypeScm: STORAGE_TIER_MEDIA_TYPE = 4i32; +pub const StorageTierMediaTypeSsd: STORAGE_TIER_MEDIA_TYPE = 2i32; +pub const StorageTierMediaTypeUnspecified: STORAGE_TIER_MEDIA_TYPE = 0i32; +pub const TAPE_RESET_STATISTICS: i32 = 2i32; +pub const TAPE_RETURN_ENV_INFO: i32 = 1i32; +pub const TAPE_RETURN_STATISTICS: i32 = 0i32; +pub const TCCollectionApplicationRequested: DEVICEDUMP_COLLECTION_TYPEIDE_NOTIFICATION_TYPE = 2i32; +pub const TCCollectionBugCheck: DEVICEDUMP_COLLECTION_TYPEIDE_NOTIFICATION_TYPE = 1i32; +pub const TCCollectionDeviceRequested: DEVICEDUMP_COLLECTION_TYPEIDE_NOTIFICATION_TYPE = 3i32; +pub const TC_DEVICEDUMP_SUBSECTION_DESC_LENGTH: u32 = 16u32; +pub const TC_PUBLIC_DATA_TYPE_ATAGP: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ATAGPLogPages"); +pub const TC_PUBLIC_DATA_TYPE_ATASMART: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ATASMARTPages"); +pub const TC_PUBLIC_DEVICEDUMP_CONTENT_GPLOG: u32 = 2u32; +pub const TC_PUBLIC_DEVICEDUMP_CONTENT_GPLOG_MAX: u32 = 16u32; +pub const TC_PUBLIC_DEVICEDUMP_CONTENT_SMART: u32 = 1u32; +pub const TELEMETRY_COMMAND_SIZE: u32 = 16u32; +pub const TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_CREATED: u32 = 1u32; +pub const TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_DELETED: u32 = 2u32; +pub const TXFS_LOGGING_MODE_FULL: u32 = 2u32; +pub const TXFS_LOGGING_MODE_SIMPLE: u32 = 1u32; +pub const TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START: TXFS_RMF_LAGS = 32768u32; +pub const TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE: TXFS_RMF_LAGS = 4096u32; +pub const TXFS_RM_FLAG_GROW_LOG: TXFS_RMF_LAGS = 1024u32; +pub const TXFS_RM_FLAG_LOGGING_MODE: TXFS_RMF_LAGS = 1u32; +pub const TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE: TXFS_RMF_LAGS = 64u32; +pub const TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX: TXFS_RMF_LAGS = 4u32; +pub const TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN: TXFS_RMF_LAGS = 8u32; +pub const TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS: TXFS_RMF_LAGS = 16u32; +pub const TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT: TXFS_RMF_LAGS = 32u32; +pub const TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX: TXFS_RMF_LAGS = 128u32; +pub const TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN: TXFS_RMF_LAGS = 256u32; +pub const TXFS_RM_FLAG_PREFER_AVAILABILITY: TXFS_RMF_LAGS = 131072u32; +pub const TXFS_RM_FLAG_PREFER_CONSISTENCY: TXFS_RMF_LAGS = 65536u32; +pub const TXFS_RM_FLAG_PRESERVE_CHANGES: TXFS_RMF_LAGS = 8192u32; +pub const TXFS_RM_FLAG_RENAME_RM: TXFS_RMF_LAGS = 2u32; +pub const TXFS_RM_FLAG_RESET_RM_AT_NEXT_START: TXFS_RMF_LAGS = 16384u32; +pub const TXFS_RM_FLAG_SHRINK_LOG: TXFS_RMF_LAGS = 2048u32; +pub const TXFS_RM_STATE_ACTIVE: u32 = 2u32; +pub const TXFS_RM_STATE_NOT_STARTED: u32 = 0u32; +pub const TXFS_RM_STATE_SHUTTING_DOWN: u32 = 3u32; +pub const TXFS_RM_STATE_STARTING: u32 = 1u32; +pub const TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN: u32 = 1u32; +pub const TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK: u32 = 2u32; +pub const TXFS_SAVEPOINT_CLEAR: u32 = 4u32; +pub const TXFS_SAVEPOINT_CLEAR_ALL: u32 = 16u32; +pub const TXFS_SAVEPOINT_ROLLBACK: u32 = 2u32; +pub const TXFS_SAVEPOINT_SET: u32 = 1u32; +pub const TXFS_START_RM_FLAG_LOGGING_MODE: u32 = 1024u32; +pub const TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE: u32 = 32u32; +pub const TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX: u32 = 1u32; +pub const TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN: u32 = 2u32; +pub const TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE: u32 = 4u32; +pub const TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS: u32 = 8u32; +pub const TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT: u32 = 16u32; +pub const TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX: u32 = 64u32; +pub const TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN: u32 = 128u32; +pub const TXFS_START_RM_FLAG_PREFER_AVAILABILITY: u32 = 8192u32; +pub const TXFS_START_RM_FLAG_PREFER_CONSISTENCY: u32 = 4096u32; +pub const TXFS_START_RM_FLAG_PRESERVE_CHANGES: u32 = 2048u32; +pub const TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT: u32 = 512u32; +pub const TXFS_TRANSACTED_VERSION_NONTRANSACTED: u32 = 4294967294u32; +pub const TXFS_TRANSACTED_VERSION_UNCOMMITTED: u32 = 4294967295u32; +pub const TXFS_TRANSACTION_STATE_ACTIVE: u32 = 1u32; +pub const TXFS_TRANSACTION_STATE_NONE: u32 = 0u32; +pub const TXFS_TRANSACTION_STATE_NOTACTIVE: u32 = 3u32; +pub const TXFS_TRANSACTION_STATE_PREPARED: u32 = 2u32; +pub const Travan: STORAGE_MEDIA_TYPE = 34i32; +pub const UNDEFINE_ALTERNATE: u32 = 13u32; +pub const UNDEFINE_PRIMARY: u32 = 12u32; +pub const UNLOCK_ELEMENT: u32 = 1u32; +pub const UNRECOVERED_READS_VALID: u32 = 8u32; +pub const UNRECOVERED_WRITES_VALID: u32 = 2u32; +pub const USN_DELETE_FLAG_DELETE: USN_DELETE_FLAGS = 1u32; +pub const USN_DELETE_FLAG_NOTIFY: USN_DELETE_FLAGS = 2u32; +pub const USN_DELETE_VALID_FLAGS: u32 = 3u32; +pub const USN_PAGE_SIZE: u32 = 4096u32; +pub const USN_REASON_BASIC_INFO_CHANGE: u32 = 32768u32; +pub const USN_REASON_CLOSE: u32 = 2147483648u32; +pub const USN_REASON_COMPRESSION_CHANGE: u32 = 131072u32; +pub const USN_REASON_DATA_EXTEND: u32 = 2u32; +pub const USN_REASON_DATA_OVERWRITE: u32 = 1u32; +pub const USN_REASON_DATA_TRUNCATION: u32 = 4u32; +pub const USN_REASON_DESIRED_STORAGE_CLASS_CHANGE: u32 = 16777216u32; +pub const USN_REASON_EA_CHANGE: u32 = 1024u32; +pub const USN_REASON_ENCRYPTION_CHANGE: u32 = 262144u32; +pub const USN_REASON_FILE_CREATE: u32 = 256u32; +pub const USN_REASON_FILE_DELETE: u32 = 512u32; +pub const USN_REASON_HARD_LINK_CHANGE: u32 = 65536u32; +pub const USN_REASON_INDEXABLE_CHANGE: u32 = 16384u32; +pub const USN_REASON_INTEGRITY_CHANGE: u32 = 8388608u32; +pub const USN_REASON_NAMED_DATA_EXTEND: u32 = 32u32; +pub const USN_REASON_NAMED_DATA_OVERWRITE: u32 = 16u32; +pub const USN_REASON_NAMED_DATA_TRUNCATION: u32 = 64u32; +pub const USN_REASON_OBJECT_ID_CHANGE: u32 = 524288u32; +pub const USN_REASON_RENAME_NEW_NAME: u32 = 8192u32; +pub const USN_REASON_RENAME_OLD_NAME: u32 = 4096u32; +pub const USN_REASON_REPARSE_POINT_CHANGE: u32 = 1048576u32; +pub const USN_REASON_SECURITY_CHANGE: u32 = 2048u32; +pub const USN_REASON_STREAM_CHANGE: u32 = 2097152u32; +pub const USN_REASON_TRANSACTED_CHANGE: u32 = 4194304u32; +pub const USN_SOURCE_AUXILIARY_DATA: USN_SOURCE_INFO_ID = 2u32; +pub const USN_SOURCE_CLIENT_REPLICATION_MANAGEMENT: USN_SOURCE_INFO_ID = 8u32; +pub const USN_SOURCE_DATA_MANAGEMENT: USN_SOURCE_INFO_ID = 1u32; +pub const USN_SOURCE_REPLICATION_MANAGEMENT: USN_SOURCE_INFO_ID = 4u32; +pub const UfsDataTypeMax: STORAGE_PROTOCOL_UFS_DATA_TYPE = 6i32; +pub const UfsDataTypeQueryAttribute: STORAGE_PROTOCOL_UFS_DATA_TYPE = 2i32; +pub const UfsDataTypeQueryDescriptor: STORAGE_PROTOCOL_UFS_DATA_TYPE = 1i32; +pub const UfsDataTypeQueryDmeAttribute: STORAGE_PROTOCOL_UFS_DATA_TYPE = 4i32; +pub const UfsDataTypeQueryDmePeerAttribute: STORAGE_PROTOCOL_UFS_DATA_TYPE = 5i32; +pub const UfsDataTypeQueryFlag: STORAGE_PROTOCOL_UFS_DATA_TYPE = 3i32; +pub const UfsDataTypeUnknown: STORAGE_PROTOCOL_UFS_DATA_TYPE = 0i32; +pub const Unknown: MEDIA_TYPE = 0i32; +pub const VALID_NTFT: u32 = 192u32; +pub const VENDOR_ID_LENGTH: u32 = 8u32; +pub const VOLUME_IS_DIRTY: u32 = 1u32; +pub const VOLUME_SESSION_OPEN: u32 = 4u32; +pub const VOLUME_UPGRADE_SCHEDULED: u32 = 2u32; +pub const VXATape: STORAGE_MEDIA_TYPE = 94i32; +pub const VXATape_1: STORAGE_MEDIA_TYPE = 83i32; +pub const VXATape_2: STORAGE_MEDIA_TYPE = 84i32; +pub const VirtualStorageBehaviorCacheWriteBack: VIRTUAL_STORAGE_BEHAVIOR_CODE = 2i32; +pub const VirtualStorageBehaviorCacheWriteThrough: VIRTUAL_STORAGE_BEHAVIOR_CODE = 1i32; +pub const VirtualStorageBehaviorRestartIoProcessing: VIRTUAL_STORAGE_BEHAVIOR_CODE = 4i32; +pub const VirtualStorageBehaviorStopIoProcessing: VIRTUAL_STORAGE_BEHAVIOR_CODE = 3i32; +pub const VirtualStorageBehaviorUndefined: VIRTUAL_STORAGE_BEHAVIOR_CODE = 0i32; +pub const WIM_PROVIDER_CURRENT_VERSION: u32 = 1u32; +pub const WIM_PROVIDER_EXTERNAL_FLAG_NOT_ACTIVE: u32 = 1u32; +pub const WIM_PROVIDER_EXTERNAL_FLAG_SUSPENDED: u32 = 2u32; +pub const WMI_DISK_GEOMETRY_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25007f51_57c2_11d1_a528_00a0c9062910); +pub const WOF_CURRENT_VERSION: u32 = 1u32; +pub const WOF_PROVIDER_CLOUD: u32 = 3u32; +pub const WRITE_COMPRESSION_INFO_VALID: u32 = 16u32; +pub const WriteCacheChangeUnknown: WRITE_CACHE_CHANGE = 0i32; +pub const WriteCacheChangeable: WRITE_CACHE_CHANGE = 2i32; +pub const WriteCacheDisabled: WRITE_CACHE_ENABLE = 1i32; +pub const WriteCacheEnableUnknown: WRITE_CACHE_ENABLE = 0i32; +pub const WriteCacheEnabled: WRITE_CACHE_ENABLE = 2i32; +pub const WriteCacheNotChangeable: WRITE_CACHE_CHANGE = 1i32; +pub const WriteCacheTypeNone: WRITE_CACHE_TYPE = 1i32; +pub const WriteCacheTypeUnknown: WRITE_CACHE_TYPE = 0i32; +pub const WriteCacheTypeWriteBack: WRITE_CACHE_TYPE = 2i32; +pub const WriteCacheTypeWriteThrough: WRITE_CACHE_TYPE = 3i32; +pub const WriteThroughNotSupported: WRITE_THROUGH = 1i32; +pub const WriteThroughSupported: WRITE_THROUGH = 2i32; +pub const WriteThroughUnknown: WRITE_THROUGH = 0i32; +pub const ZoneConditionClosed: STORAGE_ZONE_CONDITION = 4i32; +pub const ZoneConditionConventional: STORAGE_ZONE_CONDITION = 0i32; +pub const ZoneConditionEmpty: STORAGE_ZONE_CONDITION = 1i32; +pub const ZoneConditionExplicitlyOpened: STORAGE_ZONE_CONDITION = 3i32; +pub const ZoneConditionFull: STORAGE_ZONE_CONDITION = 14i32; +pub const ZoneConditionImplicitlyOpened: STORAGE_ZONE_CONDITION = 2i32; +pub const ZoneConditionOffline: STORAGE_ZONE_CONDITION = 15i32; +pub const ZoneConditionReadOnly: STORAGE_ZONE_CONDITION = 13i32; +pub const ZoneTypeConventional: STORAGE_ZONE_TYPES = 1i32; +pub const ZoneTypeMax: STORAGE_ZONE_TYPES = 4i32; +pub const ZoneTypeSequentialWritePreferred: STORAGE_ZONE_TYPES = 3i32; +pub const ZoneTypeSequentialWriteRequired: STORAGE_ZONE_TYPES = 2i32; +pub const ZoneTypeUnknown: STORAGE_ZONE_TYPES = 0i32; +pub const ZonedDeviceTypeDeviceManaged: STORAGE_ZONED_DEVICE_TYPES = 3i32; +pub const ZonedDeviceTypeHostAware: STORAGE_ZONED_DEVICE_TYPES = 2i32; +pub const ZonedDeviceTypeHostManaged: STORAGE_ZONED_DEVICE_TYPES = 1i32; +pub const ZonedDeviceTypeUnknown: STORAGE_ZONED_DEVICE_TYPES = 0i32; +pub const ZonesAttributeTypeAndLengthMayDifferent: STORAGE_ZONES_ATTRIBUTES = 0i32; +pub const ZonesAttributeTypeMayDifferentLengthSame: STORAGE_ZONES_ATTRIBUTES = 3i32; +pub const ZonesAttributeTypeSameLastZoneLengthDifferent: STORAGE_ZONES_ATTRIBUTES = 2i32; +pub const ZonesAttributeTypeSameLengthSame: STORAGE_ZONES_ATTRIBUTES = 1i32; +pub type BIN_TYPES = i32; +pub type CHANGER_DEVICE_PROBLEM_TYPE = i32; +pub type CHANGER_ELEMENT_STATUS_FLAGS = u32; +pub type CHANGER_FEATURES = u32; +pub type CSVFS_DISK_CONNECTIVITY = i32; +pub type CSV_CONTROL_OP = i32; +pub type DETECTION_TYPE = i32; +pub type DEVICEDUMP_COLLECTION_TYPEIDE_NOTIFICATION_TYPE = i32; +pub type DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE = i32; +pub type DEVICE_INTERNAL_STATUS_DATA_SET = i32; +pub type DISK_CACHE_RETENTION_PRIORITY = i32; +pub type DUPLICATE_EXTENTS_STATE = i32; +pub type ELEMENT_TYPE = i32; +pub type FILESYSTEM_STATISTICS_TYPE = u16; +pub type FILE_STORAGE_TIER_CLASS = i32; +pub type FILE_STORAGE_TIER_FLAGS = u32; +pub type FILE_STORAGE_TIER_MEDIA_TYPE = i32; +pub type FS_BPIO_INFLAGS = i32; +pub type FS_BPIO_OPERATIONS = i32; +pub type FS_BPIO_OUTFLAGS = i32; +pub type GET_CHANGER_PARAMETERS_FEATURES1 = u32; +pub type GPT_ATTRIBUTES = u64; +pub type LMR_QUERY_INFO_CLASS = i32; +pub type MEDIA_TYPE = i32; +pub type PARTITION_STYLE = i32; +pub type QUERY_FILE_LAYOUT_FILTER_TYPE = i32; +pub type REFS_SMR_VOLUME_GC_ACTION = i32; +pub type REFS_SMR_VOLUME_GC_METHOD = i32; +pub type REFS_SMR_VOLUME_GC_STATE = i32; +pub type SCM_BUS_FIRMWARE_ACTIVATION_STATE = i32; +pub type SCM_BUS_PROPERTY_ID = i32; +pub type SCM_BUS_QUERY_TYPE = i32; +pub type SCM_BUS_SET_TYPE = i32; +pub type SCM_PD_FIRMWARE_ACTIVATION_STATE = i32; +pub type SCM_PD_HEALTH_STATUS = i32; +pub type SCM_PD_LAST_FW_ACTIVATION_STATUS = i32; +pub type SCM_PD_MEDIA_REINITIALIZATION_STATUS = i32; +pub type SCM_PD_OPERATIONAL_STATUS = i32; +pub type SCM_PD_OPERATIONAL_STATUS_REASON = i32; +pub type SCM_PD_PROPERTY_ID = i32; +pub type SCM_PD_QUERY_TYPE = i32; +pub type SCM_PD_SET_TYPE = i32; +pub type SCM_REGION_FLAG = i32; +pub type SHRINK_VOLUME_REQUEST_TYPES = i32; +pub type STORAGE_ASSOCIATION_TYPE = i32; +pub type STORAGE_ATTRIBUTE_MGMT_ACTION = i32; +pub type STORAGE_COMPONENT_HEALTH_STATUS = i32; +pub type STORAGE_COUNTER_TYPE = i32; +pub type STORAGE_CRYPTO_ALGORITHM_ID = i32; +pub type STORAGE_CRYPTO_KEY_SIZE = i32; +pub type STORAGE_DEVICE_FORM_FACTOR = i32; +pub type STORAGE_DEVICE_POWER_CAP_UNITS = i32; +pub type STORAGE_DIAGNOSTIC_LEVEL = i32; +pub type STORAGE_DIAGNOSTIC_TARGET_TYPE = i32; +pub type STORAGE_DISK_HEALTH_STATUS = i32; +pub type STORAGE_DISK_OPERATIONAL_STATUS = i32; +pub type STORAGE_ENCRYPTION_TYPE = i32; +pub type STORAGE_IDENTIFIER_CODE_SET = i32; +pub type STORAGE_IDENTIFIER_TYPE = i32; +pub type STORAGE_ID_NAA_FORMAT = i32; +pub type STORAGE_MEDIA_TYPE = i32; +pub type STORAGE_OPERATIONAL_STATUS_REASON = i32; +pub type STORAGE_PORT_CODE_SET = i32; +pub type STORAGE_POWERUP_REASON_TYPE = i32; +pub type STORAGE_PROPERTY_ID = i32; +pub type STORAGE_PROTOCOL_ATA_DATA_TYPE = i32; +pub type STORAGE_PROTOCOL_NVME_DATA_TYPE = i32; +pub type STORAGE_PROTOCOL_TYPE = i32; +pub type STORAGE_PROTOCOL_UFS_DATA_TYPE = i32; +pub type STORAGE_QUERY_TYPE = i32; +pub type STORAGE_RESERVE_ID = i32; +pub type STORAGE_RPMB_COMMAND_TYPE = i32; +pub type STORAGE_RPMB_FRAME_TYPE = i32; +pub type STORAGE_SANITIZE_METHOD = i32; +pub type STORAGE_SET_TYPE = i32; +pub type STORAGE_TIER_CLASS = i32; +pub type STORAGE_TIER_MEDIA_TYPE = i32; +pub type STORAGE_ZONED_DEVICE_TYPES = i32; +pub type STORAGE_ZONES_ATTRIBUTES = i32; +pub type STORAGE_ZONE_CONDITION = i32; +pub type STORAGE_ZONE_TYPES = i32; +pub type TXFS_RMF_LAGS = u32; +pub type USN_DELETE_FLAGS = u32; +pub type USN_SOURCE_INFO_ID = u32; +pub type VIRTUAL_STORAGE_BEHAVIOR_CODE = i32; +pub type WRITE_CACHE_CHANGE = i32; +pub type WRITE_CACHE_ENABLE = i32; +pub type WRITE_CACHE_TYPE = i32; +pub type WRITE_THROUGH = i32; +#[repr(C)] +pub struct ASYNC_DUPLICATE_EXTENTS_STATUS { + pub Version: u32, + pub State: DUPLICATE_EXTENTS_STATE, + pub SourceFileOffset: u64, + pub TargetFileOffset: u64, + pub ByteCount: u64, + pub BytesDuplicated: u64, +} +impl ::core::marker::Copy for ASYNC_DUPLICATE_EXTENTS_STATUS {} +impl ::core::clone::Clone for ASYNC_DUPLICATE_EXTENTS_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BIN_COUNT { + pub BinRange: BIN_RANGE, + pub BinCount: u32, +} +impl ::core::marker::Copy for BIN_COUNT {} +impl ::core::clone::Clone for BIN_COUNT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BIN_RANGE { + pub StartValue: i64, + pub Length: i64, +} +impl ::core::marker::Copy for BIN_RANGE {} +impl ::core::clone::Clone for BIN_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BIN_RESULTS { + pub NumberOfBins: u32, + pub BinCounts: [BIN_COUNT; 1], +} +impl ::core::marker::Copy for BIN_RESULTS {} +impl ::core::clone::Clone for BIN_RESULTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BOOT_AREA_INFO { + pub BootSectorCount: u32, + pub BootSectors: [BOOT_AREA_INFO_0; 2], +} +impl ::core::marker::Copy for BOOT_AREA_INFO {} +impl ::core::clone::Clone for BOOT_AREA_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BOOT_AREA_INFO_0 { + pub Offset: i64, +} +impl ::core::marker::Copy for BOOT_AREA_INFO_0 {} +impl ::core::clone::Clone for BOOT_AREA_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BULK_SECURITY_TEST_DATA { + pub DesiredAccess: u32, + pub SecurityIds: [u32; 1], +} +impl ::core::marker::Copy for BULK_SECURITY_TEST_DATA {} +impl ::core::clone::Clone for BULK_SECURITY_TEST_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CHANGER_ELEMENT { + pub ElementType: ELEMENT_TYPE, + pub ElementAddress: u32, +} +impl ::core::marker::Copy for CHANGER_ELEMENT {} +impl ::core::clone::Clone for CHANGER_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CHANGER_ELEMENT_LIST { + pub Element: CHANGER_ELEMENT, + pub NumberOfElements: u32, +} +impl ::core::marker::Copy for CHANGER_ELEMENT_LIST {} +impl ::core::clone::Clone for CHANGER_ELEMENT_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CHANGER_ELEMENT_STATUS { + pub Element: CHANGER_ELEMENT, + pub SrcElementAddress: CHANGER_ELEMENT, + pub Flags: CHANGER_ELEMENT_STATUS_FLAGS, + pub ExceptionCode: u32, + pub TargetId: u8, + pub Lun: u8, + pub Reserved: u16, + pub PrimaryVolumeID: [u8; 36], + pub AlternateVolumeID: [u8; 36], +} +impl ::core::marker::Copy for CHANGER_ELEMENT_STATUS {} +impl ::core::clone::Clone for CHANGER_ELEMENT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CHANGER_ELEMENT_STATUS_EX { + pub Element: CHANGER_ELEMENT, + pub SrcElementAddress: CHANGER_ELEMENT, + pub Flags: CHANGER_ELEMENT_STATUS_FLAGS, + pub ExceptionCode: u32, + pub TargetId: u8, + pub Lun: u8, + pub Reserved: u16, + pub PrimaryVolumeID: [u8; 36], + pub AlternateVolumeID: [u8; 36], + pub VendorIdentification: [u8; 8], + pub ProductIdentification: [u8; 16], + pub SerialNumber: [u8; 32], +} +impl ::core::marker::Copy for CHANGER_ELEMENT_STATUS_EX {} +impl ::core::clone::Clone for CHANGER_ELEMENT_STATUS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CHANGER_EXCHANGE_MEDIUM { + pub Transport: CHANGER_ELEMENT, + pub Source: CHANGER_ELEMENT, + pub Destination1: CHANGER_ELEMENT, + pub Destination2: CHANGER_ELEMENT, + pub Flip1: super::super::Foundation::BOOLEAN, + pub Flip2: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CHANGER_EXCHANGE_MEDIUM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CHANGER_EXCHANGE_MEDIUM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CHANGER_INITIALIZE_ELEMENT_STATUS { + pub ElementList: CHANGER_ELEMENT_LIST, + pub BarCodeScan: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CHANGER_INITIALIZE_ELEMENT_STATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CHANGER_INITIALIZE_ELEMENT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CHANGER_MOVE_MEDIUM { + pub Transport: CHANGER_ELEMENT, + pub Source: CHANGER_ELEMENT, + pub Destination: CHANGER_ELEMENT, + pub Flip: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CHANGER_MOVE_MEDIUM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CHANGER_MOVE_MEDIUM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CHANGER_PRODUCT_DATA { + pub VendorId: [u8; 8], + pub ProductId: [u8; 16], + pub Revision: [u8; 4], + pub SerialNumber: [u8; 32], + pub DeviceType: u8, +} +impl ::core::marker::Copy for CHANGER_PRODUCT_DATA {} +impl ::core::clone::Clone for CHANGER_PRODUCT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CHANGER_READ_ELEMENT_STATUS { + pub ElementList: CHANGER_ELEMENT_LIST, + pub VolumeTagInfo: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CHANGER_READ_ELEMENT_STATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CHANGER_READ_ELEMENT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CHANGER_SEND_VOLUME_TAG_INFORMATION { + pub StartingElement: CHANGER_ELEMENT, + pub ActionCode: u32, + pub VolumeIDTemplate: [u8; 40], +} +impl ::core::marker::Copy for CHANGER_SEND_VOLUME_TAG_INFORMATION {} +impl ::core::clone::Clone for CHANGER_SEND_VOLUME_TAG_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CHANGER_SET_ACCESS { + pub Element: CHANGER_ELEMENT, + pub Control: u32, +} +impl ::core::marker::Copy for CHANGER_SET_ACCESS {} +impl ::core::clone::Clone for CHANGER_SET_ACCESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CHANGER_SET_POSITION { + pub Transport: CHANGER_ELEMENT, + pub Destination: CHANGER_ELEMENT, + pub Flip: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CHANGER_SET_POSITION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CHANGER_SET_POSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLASS_MEDIA_CHANGE_CONTEXT { + pub MediaChangeCount: u32, + pub NewState: u32, +} +impl ::core::marker::Copy for CLASS_MEDIA_CHANGE_CONTEXT {} +impl ::core::clone::Clone for CLASS_MEDIA_CHANGE_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLUSTER_RANGE { + pub StartingCluster: i64, + pub ClusterCount: i64, +} +impl ::core::marker::Copy for CLUSTER_RANGE {} +impl ::core::clone::Clone for CLUSTER_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONTAINER_ROOT_INFO_INPUT { + pub Flags: u32, +} +impl ::core::marker::Copy for CONTAINER_ROOT_INFO_INPUT {} +impl ::core::clone::Clone for CONTAINER_ROOT_INFO_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONTAINER_ROOT_INFO_OUTPUT { + pub ContainerRootIdLength: u16, + pub ContainerRootId: [u8; 1], +} +impl ::core::marker::Copy for CONTAINER_ROOT_INFO_OUTPUT {} +impl ::core::clone::Clone for CONTAINER_ROOT_INFO_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONTAINER_VOLUME_STATE { + pub Flags: u32, +} +impl ::core::marker::Copy for CONTAINER_VOLUME_STATE {} +impl ::core::clone::Clone for CONTAINER_VOLUME_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREATE_DISK { + pub PartitionStyle: PARTITION_STYLE, + pub Anonymous: CREATE_DISK_0, +} +impl ::core::marker::Copy for CREATE_DISK {} +impl ::core::clone::Clone for CREATE_DISK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CREATE_DISK_0 { + pub Mbr: CREATE_DISK_MBR, + pub Gpt: CREATE_DISK_GPT, +} +impl ::core::marker::Copy for CREATE_DISK_0 {} +impl ::core::clone::Clone for CREATE_DISK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREATE_DISK_GPT { + pub DiskId: ::windows_sys::core::GUID, + pub MaxPartitionCount: u32, +} +impl ::core::marker::Copy for CREATE_DISK_GPT {} +impl ::core::clone::Clone for CREATE_DISK_GPT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREATE_DISK_MBR { + pub Signature: u32, +} +impl ::core::marker::Copy for CREATE_DISK_MBR {} +impl ::core::clone::Clone for CREATE_DISK_MBR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREATE_USN_JOURNAL_DATA { + pub MaximumSize: u64, + pub AllocationDelta: u64, +} +impl ::core::marker::Copy for CREATE_USN_JOURNAL_DATA {} +impl ::core::clone::Clone for CREATE_USN_JOURNAL_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CSV_CONTROL_PARAM { + pub Operation: CSV_CONTROL_OP, + pub Unused: i64, +} +impl ::core::marker::Copy for CSV_CONTROL_PARAM {} +impl ::core::clone::Clone for CSV_CONTROL_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CSV_IS_OWNED_BY_CSVFS { + pub OwnedByCSVFS: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CSV_IS_OWNED_BY_CSVFS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CSV_IS_OWNED_BY_CSVFS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CSV_MGMT_LOCK { + pub Flags: u32, +} +impl ::core::marker::Copy for CSV_MGMT_LOCK {} +impl ::core::clone::Clone for CSV_MGMT_LOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CSV_NAMESPACE_INFO { + pub Version: u32, + pub DeviceNumber: u32, + pub StartingOffset: i64, + pub SectorSize: u32, +} +impl ::core::marker::Copy for CSV_NAMESPACE_INFO {} +impl ::core::clone::Clone for CSV_NAMESPACE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CSV_QUERY_FILE_REVISION { + pub FileId: i64, + pub FileRevision: [i64; 3], +} +impl ::core::marker::Copy for CSV_QUERY_FILE_REVISION {} +impl ::core::clone::Clone for CSV_QUERY_FILE_REVISION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct CSV_QUERY_FILE_REVISION_FILE_ID_128 { + pub FileId: super::super::Storage::FileSystem::FILE_ID_128, + pub FileRevision: [i64; 3], +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for CSV_QUERY_FILE_REVISION_FILE_ID_128 {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for CSV_QUERY_FILE_REVISION_FILE_ID_128 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CSV_QUERY_MDS_PATH { + pub MdsNodeId: u32, + pub DsNodeId: u32, + pub PathLength: u32, + pub Path: [u16; 1], +} +impl ::core::marker::Copy for CSV_QUERY_MDS_PATH {} +impl ::core::clone::Clone for CSV_QUERY_MDS_PATH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CSV_QUERY_MDS_PATH_V2 { + pub Version: i64, + pub RequiredSize: u32, + pub MdsNodeId: u32, + pub DsNodeId: u32, + pub Flags: u32, + pub DiskConnectivity: CSVFS_DISK_CONNECTIVITY, + pub VolumeId: ::windows_sys::core::GUID, + pub IpAddressOffset: u32, + pub IpAddressLength: u32, + pub PathOffset: u32, + pub PathLength: u32, +} +impl ::core::marker::Copy for CSV_QUERY_MDS_PATH_V2 {} +impl ::core::clone::Clone for CSV_QUERY_MDS_PATH_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CSV_QUERY_REDIRECT_STATE { + pub MdsNodeId: u32, + pub DsNodeId: u32, + pub FileRedirected: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CSV_QUERY_REDIRECT_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CSV_QUERY_REDIRECT_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT { + pub VetoedFromAltitudeIntegral: u64, + pub VetoedFromAltitudeDecimal: u64, + pub Reason: [u16; 256], +} +impl ::core::marker::Copy for CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT {} +impl ::core::clone::Clone for CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CSV_QUERY_VOLUME_ID { + pub VolumeId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for CSV_QUERY_VOLUME_ID {} +impl ::core::clone::Clone for CSV_QUERY_VOLUME_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CSV_QUERY_VOLUME_REDIRECT_STATE { + pub MdsNodeId: u32, + pub DsNodeId: u32, + pub IsDiskConnected: super::super::Foundation::BOOLEAN, + pub ClusterEnableDirectIo: super::super::Foundation::BOOLEAN, + pub DiskConnectivity: CSVFS_DISK_CONNECTIVITY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CSV_QUERY_VOLUME_REDIRECT_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CSV_QUERY_VOLUME_REDIRECT_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CSV_SET_VOLUME_ID { + pub VolumeId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for CSV_SET_VOLUME_ID {} +impl ::core::clone::Clone for CSV_SET_VOLUME_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DECRYPTION_STATUS_BUFFER { + pub NoEncryptedStreams: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DECRYPTION_STATUS_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DECRYPTION_STATUS_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DELETE_USN_JOURNAL_DATA { + pub UsnJournalID: u64, + pub DeleteFlags: USN_DELETE_FLAGS, +} +impl ::core::marker::Copy for DELETE_USN_JOURNAL_DATA {} +impl ::core::clone::Clone for DELETE_USN_JOURNAL_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVICEDUMP_PRIVATE_SUBSECTION { + pub dwFlags: u32, + pub GPLogId: GP_LOG_PAGE_DESCRIPTOR, + pub bData: [u8; 1], +} +impl ::core::marker::Copy for DEVICEDUMP_PRIVATE_SUBSECTION {} +impl ::core::clone::Clone for DEVICEDUMP_PRIVATE_SUBSECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVICEDUMP_PUBLIC_SUBSECTION { + pub dwFlags: u32, + pub GPLogTable: [GP_LOG_PAGE_DESCRIPTOR; 16], + pub szDescription: [u8; 16], + pub bData: [u8; 1], +} +impl ::core::marker::Copy for DEVICEDUMP_PUBLIC_SUBSECTION {} +impl ::core::clone::Clone for DEVICEDUMP_PUBLIC_SUBSECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICEDUMP_RESTRICTED_SUBSECTION { + pub bData: [u8; 1], +} +impl ::core::marker::Copy for DEVICEDUMP_RESTRICTED_SUBSECTION {} +impl ::core::clone::Clone for DEVICEDUMP_RESTRICTED_SUBSECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVICEDUMP_SECTION_HEADER { + pub guidDeviceDataId: ::windows_sys::core::GUID, + pub sOrganizationID: [u8; 16], + pub dwFirmwareRevision: u32, + pub sModelNumber: [u8; 32], + pub szDeviceManufacturingID: [u8; 32], + pub dwFlags: u32, + pub bRestrictedPrivateDataVersion: u32, + pub dwFirmwareIssueId: u32, + pub szIssueDescriptionString: [u8; 132], +} +impl ::core::marker::Copy for DEVICEDUMP_SECTION_HEADER {} +impl ::core::clone::Clone for DEVICEDUMP_SECTION_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVICEDUMP_STORAGEDEVICE_DATA { + pub Descriptor: DEVICEDUMP_STRUCTURE_VERSION, + pub SectionHeader: DEVICEDUMP_SECTION_HEADER, + pub dwBufferSize: u32, + pub dwReasonForCollection: u32, + pub PublicData: DEVICEDUMP_SUBSECTION_POINTER, + pub RestrictedData: DEVICEDUMP_SUBSECTION_POINTER, + pub PrivateData: DEVICEDUMP_SUBSECTION_POINTER, +} +impl ::core::marker::Copy for DEVICEDUMP_STORAGEDEVICE_DATA {} +impl ::core::clone::Clone for DEVICEDUMP_STORAGEDEVICE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP { + pub Descriptor: DEVICEDUMP_STRUCTURE_VERSION, + pub dwReasonForCollection: u32, + pub cDriverName: [u8; 16], + pub uiNumRecords: u32, + pub RecordArray: [DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD; 1], +} +impl ::core::marker::Copy for DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP {} +impl ::core::clone::Clone for DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD { + pub Cdb: [u8; 16], + pub Command: [u8; 16], + pub StartTime: u64, + pub EndTime: u64, + pub OperationStatus: u32, + pub OperationError: u32, + pub StackSpecific: DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0, +} +impl ::core::marker::Copy for DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD {} +impl ::core::clone::Clone for DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0 { + pub ExternalStack: DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0_1, + pub AtaPort: DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0_0, + pub StorPort: DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0_2, +} +impl ::core::marker::Copy for DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0 {} +impl ::core::clone::Clone for DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0_0 { + pub dwAtaPortSpecific: u32, +} +impl ::core::marker::Copy for DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0_0 {} +impl ::core::clone::Clone for DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0_1 { + pub dwReserved: u32, +} +impl ::core::marker::Copy for DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0_1 {} +impl ::core::clone::Clone for DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0_2 { + pub SrbTag: u32, +} +impl ::core::marker::Copy for DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0_2 {} +impl ::core::clone::Clone for DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVICEDUMP_STRUCTURE_VERSION { + pub dwSignature: u32, + pub dwVersion: u32, + pub dwSize: u32, +} +impl ::core::marker::Copy for DEVICEDUMP_STRUCTURE_VERSION {} +impl ::core::clone::Clone for DEVICEDUMP_STRUCTURE_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DEVICEDUMP_SUBSECTION_POINTER { + pub dwSize: u32, + pub dwFlags: u32, + pub dwOffset: u32, +} +impl ::core::marker::Copy for DEVICEDUMP_SUBSECTION_POINTER {} +impl ::core::clone::Clone for DEVICEDUMP_SUBSECTION_POINTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_COPY_OFFLOAD_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub MaximumTokenLifetime: u32, + pub DefaultTokenLifetime: u32, + pub MaximumTransferSize: u64, + pub OptimalTransferCount: u64, + pub MaximumDataDescriptors: u32, + pub MaximumTransferLengthPerDescriptor: u32, + pub OptimalTransferLengthPerDescriptor: u32, + pub OptimalTransferLengthGranularity: u16, + pub Reserved: [u8; 2], +} +impl ::core::marker::Copy for DEVICE_COPY_OFFLOAD_DESCRIPTOR {} +impl ::core::clone::Clone for DEVICE_COPY_OFFLOAD_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DATA_SET_LBP_STATE_PARAMETERS { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub OutputVersion: u32, +} +impl ::core::marker::Copy for DEVICE_DATA_SET_LBP_STATE_PARAMETERS {} +impl ::core::clone::Clone for DEVICE_DATA_SET_LBP_STATE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DATA_SET_LB_PROVISIONING_STATE { + pub Size: u32, + pub Version: u32, + pub SlabSizeInBytes: u64, + pub SlabOffsetDeltaInBytes: u32, + pub SlabAllocationBitMapBitCount: u32, + pub SlabAllocationBitMapLength: u32, + pub SlabAllocationBitMap: [u32; 1], +} +impl ::core::marker::Copy for DEVICE_DATA_SET_LB_PROVISIONING_STATE {} +impl ::core::clone::Clone for DEVICE_DATA_SET_LB_PROVISIONING_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 { + pub Size: u32, + pub Version: u32, + pub SlabSizeInBytes: u64, + pub SlabOffsetDeltaInBytes: u64, + pub SlabAllocationBitMapBitCount: u32, + pub SlabAllocationBitMapLength: u32, + pub SlabAllocationBitMap: [u32; 1], +} +impl ::core::marker::Copy for DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 {} +impl ::core::clone::Clone for DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DATA_SET_RANGE { + pub StartingOffset: i64, + pub LengthInBytes: u64, +} +impl ::core::marker::Copy for DEVICE_DATA_SET_RANGE {} +impl ::core::clone::Clone for DEVICE_DATA_SET_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DATA_SET_REPAIR_OUTPUT { + pub ParityExtent: DEVICE_DATA_SET_RANGE, +} +impl ::core::marker::Copy for DEVICE_DATA_SET_REPAIR_OUTPUT {} +impl ::core::clone::Clone for DEVICE_DATA_SET_REPAIR_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DATA_SET_REPAIR_PARAMETERS { + pub NumberOfRepairCopies: u32, + pub SourceCopy: u32, + pub RepairCopies: [u32; 1], +} +impl ::core::marker::Copy for DEVICE_DATA_SET_REPAIR_PARAMETERS {} +impl ::core::clone::Clone for DEVICE_DATA_SET_REPAIR_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DATA_SET_SCRUB_EX_OUTPUT { + pub BytesProcessed: u64, + pub BytesRepaired: u64, + pub BytesFailed: u64, + pub ParityExtent: DEVICE_DATA_SET_RANGE, + pub BytesScrubbed: u64, +} +impl ::core::marker::Copy for DEVICE_DATA_SET_SCRUB_EX_OUTPUT {} +impl ::core::clone::Clone for DEVICE_DATA_SET_SCRUB_EX_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DATA_SET_SCRUB_OUTPUT { + pub BytesProcessed: u64, + pub BytesRepaired: u64, + pub BytesFailed: u64, +} +impl ::core::marker::Copy for DEVICE_DATA_SET_SCRUB_OUTPUT {} +impl ::core::clone::Clone for DEVICE_DATA_SET_SCRUB_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT { + pub TopologyRangeBytes: u64, + pub TopologyId: [u8; 16], +} +impl ::core::marker::Copy for DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT {} +impl ::core::clone::Clone for DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DSM_CONVERSION_OUTPUT { + pub Version: u32, + pub Source: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for DEVICE_DSM_CONVERSION_OUTPUT {} +impl ::core::clone::Clone for DEVICE_DSM_CONVERSION_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVICE_DSM_DEFINITION { + pub Action: u32, + pub SingleRange: super::super::Foundation::BOOLEAN, + pub ParameterBlockAlignment: u32, + pub ParameterBlockLength: u32, + pub HasOutput: super::super::Foundation::BOOLEAN, + pub OutputBlockAlignment: u32, + pub OutputBlockLength: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVICE_DSM_DEFINITION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVICE_DSM_DEFINITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DSM_FREE_SPACE_OUTPUT { + pub Version: u32, + pub FreeSpace: u64, +} +impl ::core::marker::Copy for DEVICE_DSM_FREE_SPACE_OUTPUT {} +impl ::core::clone::Clone for DEVICE_DSM_FREE_SPACE_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DSM_LOST_QUERY_OUTPUT { + pub Version: u32, + pub Size: u32, + pub Alignment: u64, + pub NumberOfBits: u32, + pub BitMap: [u32; 1], +} +impl ::core::marker::Copy for DEVICE_DSM_LOST_QUERY_OUTPUT {} +impl ::core::clone::Clone for DEVICE_DSM_LOST_QUERY_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DSM_LOST_QUERY_PARAMETERS { + pub Version: u32, + pub Granularity: u64, +} +impl ::core::marker::Copy for DEVICE_DSM_LOST_QUERY_PARAMETERS {} +impl ::core::clone::Clone for DEVICE_DSM_LOST_QUERY_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DSM_NOTIFICATION_PARAMETERS { + pub Size: u32, + pub Flags: u32, + pub NumFileTypeIDs: u32, + pub FileTypeID: [::windows_sys::core::GUID; 1], +} +impl ::core::marker::Copy for DEVICE_DSM_NOTIFICATION_PARAMETERS {} +impl ::core::clone::Clone for DEVICE_DSM_NOTIFICATION_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS { + pub Size: u32, + pub TargetPriority: u8, + pub Reserved: [u8; 3], +} +impl ::core::marker::Copy for DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS {} +impl ::core::clone::Clone for DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DSM_OFFLOAD_READ_PARAMETERS { + pub Flags: u32, + pub TimeToLive: u32, + pub Reserved: [u32; 2], +} +impl ::core::marker::Copy for DEVICE_DSM_OFFLOAD_READ_PARAMETERS {} +impl ::core::clone::Clone for DEVICE_DSM_OFFLOAD_READ_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS { + pub Flags: u32, + pub Reserved: u32, + pub TokenOffset: u64, + pub Token: STORAGE_OFFLOAD_TOKEN, +} +impl ::core::marker::Copy for DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS {} +impl ::core::clone::Clone for DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT { + pub Version: u32, + pub Flags: u32, + pub TotalNumberOfRanges: u32, + pub NumberOfRangesReturned: u32, + pub Ranges: [DEVICE_STORAGE_ADDRESS_RANGE; 1], +} +impl ::core::marker::Copy for DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT {} +impl ::core::clone::Clone for DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DSM_RANGE_ERROR_INFO { + pub Version: u32, + pub Flags: u32, + pub TotalNumberOfRanges: u32, + pub NumberOfRangesReturned: u32, + pub Ranges: [DEVICE_STORAGE_RANGE_ATTRIBUTES; 1], +} +impl ::core::marker::Copy for DEVICE_DSM_RANGE_ERROR_INFO {} +impl ::core::clone::Clone for DEVICE_DSM_RANGE_ERROR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVICE_DSM_REPORT_ZONES_DATA { + pub Size: u32, + pub ZoneCount: u32, + pub Attributes: STORAGE_ZONES_ATTRIBUTES, + pub Reserved0: u32, + pub ZoneDescriptors: [STORAGE_ZONE_DESCRIPTOR; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVICE_DSM_REPORT_ZONES_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVICE_DSM_REPORT_ZONES_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DSM_REPORT_ZONES_PARAMETERS { + pub Size: u32, + pub ReportOption: u8, + pub Partial: u8, + pub Reserved: [u8; 2], +} +impl ::core::marker::Copy for DEVICE_DSM_REPORT_ZONES_PARAMETERS {} +impl ::core::clone::Clone for DEVICE_DSM_REPORT_ZONES_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DSM_TIERING_QUERY_INPUT { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub NumberOfTierIds: u32, + pub TierIds: [::windows_sys::core::GUID; 1], +} +impl ::core::marker::Copy for DEVICE_DSM_TIERING_QUERY_INPUT {} +impl ::core::clone::Clone for DEVICE_DSM_TIERING_QUERY_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_DSM_TIERING_QUERY_OUTPUT { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub Reserved: u32, + pub Alignment: u64, + pub TotalNumberOfRegions: u32, + pub NumberOfRegionsReturned: u32, + pub Regions: [STORAGE_TIER_REGION; 1], +} +impl ::core::marker::Copy for DEVICE_DSM_TIERING_QUERY_OUTPUT {} +impl ::core::clone::Clone for DEVICE_DSM_TIERING_QUERY_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_INTERNAL_STATUS_DATA { + pub Version: u32, + pub Size: u32, + pub T10VendorId: u64, + pub DataSet1Length: u32, + pub DataSet2Length: u32, + pub DataSet3Length: u32, + pub DataSet4Length: u32, + pub StatusDataVersion: u8, + pub Reserved: [u8; 3], + pub ReasonIdentifier: [u8; 128], + pub StatusDataLength: u32, + pub StatusData: [u8; 1], +} +impl ::core::marker::Copy for DEVICE_INTERNAL_STATUS_DATA {} +impl ::core::clone::Clone for DEVICE_INTERNAL_STATUS_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_LB_PROVISIONING_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub _bitfield: u8, + pub Reserved1: [u8; 7], + pub OptimalUnmapGranularity: u64, + pub UnmapGranularityAlignment: u64, + pub MaxUnmapLbaCount: u32, + pub MaxUnmapBlockDescriptorCount: u32, +} +impl ::core::marker::Copy for DEVICE_LB_PROVISIONING_DESCRIPTOR {} +impl ::core::clone::Clone for DEVICE_LB_PROVISIONING_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_LOCATION { + pub Socket: u32, + pub Slot: u32, + pub Adapter: u32, + pub Port: u32, + pub Anonymous: DEVICE_LOCATION_0, +} +impl ::core::marker::Copy for DEVICE_LOCATION {} +impl ::core::clone::Clone for DEVICE_LOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DEVICE_LOCATION_0 { + pub Anonymous1: DEVICE_LOCATION_0_0, + pub Anonymous2: DEVICE_LOCATION_0_1, +} +impl ::core::marker::Copy for DEVICE_LOCATION_0 {} +impl ::core::clone::Clone for DEVICE_LOCATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_LOCATION_0_0 { + pub Channel: u32, + pub Device: u32, +} +impl ::core::marker::Copy for DEVICE_LOCATION_0_0 {} +impl ::core::clone::Clone for DEVICE_LOCATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_LOCATION_0_1 { + pub Target: u32, + pub Lun: u32, +} +impl ::core::marker::Copy for DEVICE_LOCATION_0_1 {} +impl ::core::clone::Clone for DEVICE_LOCATION_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_MANAGE_DATA_SET_ATTRIBUTES { + pub Size: u32, + pub Action: u32, + pub Flags: u32, + pub ParameterBlockOffset: u32, + pub ParameterBlockLength: u32, + pub DataSetRangesOffset: u32, + pub DataSetRangesLength: u32, +} +impl ::core::marker::Copy for DEVICE_MANAGE_DATA_SET_ATTRIBUTES {} +impl ::core::clone::Clone for DEVICE_MANAGE_DATA_SET_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT { + pub Size: u32, + pub Action: u32, + pub Flags: u32, + pub OperationStatus: u32, + pub ExtendedError: u32, + pub TargetDetailedError: u32, + pub ReservedStatus: u32, + pub OutputBlockOffset: u32, + pub OutputBlockLength: u32, +} +impl ::core::marker::Copy for DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT {} +impl ::core::clone::Clone for DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct DEVICE_MEDIA_INFO { + pub DeviceSpecific: DEVICE_MEDIA_INFO_0, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for DEVICE_MEDIA_INFO {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for DEVICE_MEDIA_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub union DEVICE_MEDIA_INFO_0 { + pub DiskInfo: DEVICE_MEDIA_INFO_0_0, + pub RemovableDiskInfo: DEVICE_MEDIA_INFO_0_1, + pub TapeInfo: DEVICE_MEDIA_INFO_0_2, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for DEVICE_MEDIA_INFO_0 {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for DEVICE_MEDIA_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct DEVICE_MEDIA_INFO_0_0 { + pub Cylinders: i64, + pub MediaType: STORAGE_MEDIA_TYPE, + pub TracksPerCylinder: u32, + pub SectorsPerTrack: u32, + pub BytesPerSector: u32, + pub NumberMediaSides: u32, + pub MediaCharacteristics: u32, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for DEVICE_MEDIA_INFO_0_0 {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for DEVICE_MEDIA_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct DEVICE_MEDIA_INFO_0_1 { + pub Cylinders: i64, + pub MediaType: STORAGE_MEDIA_TYPE, + pub TracksPerCylinder: u32, + pub SectorsPerTrack: u32, + pub BytesPerSector: u32, + pub NumberMediaSides: u32, + pub MediaCharacteristics: u32, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for DEVICE_MEDIA_INFO_0_1 {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for DEVICE_MEDIA_INFO_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct DEVICE_MEDIA_INFO_0_2 { + pub MediaType: STORAGE_MEDIA_TYPE, + pub MediaCharacteristics: u32, + pub CurrentBlockSize: u32, + pub BusType: super::super::Storage::FileSystem::STORAGE_BUS_TYPE, + pub BusSpecificData: DEVICE_MEDIA_INFO_0_2_0, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for DEVICE_MEDIA_INFO_0_2 {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for DEVICE_MEDIA_INFO_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub union DEVICE_MEDIA_INFO_0_2_0 { + pub ScsiInformation: DEVICE_MEDIA_INFO_0_2_0_0, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for DEVICE_MEDIA_INFO_0_2_0 {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for DEVICE_MEDIA_INFO_0_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct DEVICE_MEDIA_INFO_0_2_0_0 { + pub MediumType: u8, + pub DensityCode: u8, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for DEVICE_MEDIA_INFO_0_2_0_0 {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for DEVICE_MEDIA_INFO_0_2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVICE_POWER_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub DeviceAttentionSupported: super::super::Foundation::BOOLEAN, + pub AsynchronousNotificationSupported: super::super::Foundation::BOOLEAN, + pub IdlePowerManagementEnabled: super::super::Foundation::BOOLEAN, + pub D3ColdEnabled: super::super::Foundation::BOOLEAN, + pub D3ColdSupported: super::super::Foundation::BOOLEAN, + pub NoVerifyDuringIdlePower: super::super::Foundation::BOOLEAN, + pub Reserved: [u8; 2], + pub IdleTimeoutInMS: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVICE_POWER_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVICE_POWER_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVICE_SEEK_PENALTY_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub IncursSeekPenalty: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVICE_SEEK_PENALTY_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVICE_SEEK_PENALTY_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_STORAGE_ADDRESS_RANGE { + pub StartAddress: i64, + pub LengthInBytes: u64, +} +impl ::core::marker::Copy for DEVICE_STORAGE_ADDRESS_RANGE {} +impl ::core::clone::Clone for DEVICE_STORAGE_ADDRESS_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_STORAGE_RANGE_ATTRIBUTES { + pub LengthInBytes: u64, + pub Anonymous: DEVICE_STORAGE_RANGE_ATTRIBUTES_0, + pub Reserved: u32, +} +impl ::core::marker::Copy for DEVICE_STORAGE_RANGE_ATTRIBUTES {} +impl ::core::clone::Clone for DEVICE_STORAGE_RANGE_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DEVICE_STORAGE_RANGE_ATTRIBUTES_0 { + pub AllFlags: u32, + pub Anonymous: DEVICE_STORAGE_RANGE_ATTRIBUTES_0_0, +} +impl ::core::marker::Copy for DEVICE_STORAGE_RANGE_ATTRIBUTES_0 {} +impl ::core::clone::Clone for DEVICE_STORAGE_RANGE_ATTRIBUTES_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_STORAGE_RANGE_ATTRIBUTES_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for DEVICE_STORAGE_RANGE_ATTRIBUTES_0_0 {} +impl ::core::clone::Clone for DEVICE_STORAGE_RANGE_ATTRIBUTES_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVICE_TRIM_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub TrimEnabled: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVICE_TRIM_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVICE_TRIM_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEVICE_WRITE_AGGREGATION_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub BenefitsFromWriteAggregation: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEVICE_WRITE_AGGREGATION_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEVICE_WRITE_AGGREGATION_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISK_CACHE_INFORMATION { + pub ParametersSavable: super::super::Foundation::BOOLEAN, + pub ReadCacheEnabled: super::super::Foundation::BOOLEAN, + pub WriteCacheEnabled: super::super::Foundation::BOOLEAN, + pub ReadRetentionPriority: DISK_CACHE_RETENTION_PRIORITY, + pub WriteRetentionPriority: DISK_CACHE_RETENTION_PRIORITY, + pub DisablePrefetchTransferLength: u16, + pub PrefetchScalar: super::super::Foundation::BOOLEAN, + pub Anonymous: DISK_CACHE_INFORMATION_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISK_CACHE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISK_CACHE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DISK_CACHE_INFORMATION_0 { + pub ScalarPrefetch: DISK_CACHE_INFORMATION_0_1, + pub BlockPrefetch: DISK_CACHE_INFORMATION_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISK_CACHE_INFORMATION_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISK_CACHE_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISK_CACHE_INFORMATION_0_0 { + pub Minimum: u16, + pub Maximum: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISK_CACHE_INFORMATION_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISK_CACHE_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISK_CACHE_INFORMATION_0_1 { + pub Minimum: u16, + pub Maximum: u16, + pub MaximumBlocks: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISK_CACHE_INFORMATION_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISK_CACHE_INFORMATION_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_CONTROLLER_NUMBER { + pub ControllerNumber: u32, + pub DiskNumber: u32, +} +impl ::core::marker::Copy for DISK_CONTROLLER_NUMBER {} +impl ::core::clone::Clone for DISK_CONTROLLER_NUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_DETECTION_INFO { + pub SizeOfDetectInfo: u32, + pub DetectionType: DETECTION_TYPE, + pub Anonymous: DISK_DETECTION_INFO_0, +} +impl ::core::marker::Copy for DISK_DETECTION_INFO {} +impl ::core::clone::Clone for DISK_DETECTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DISK_DETECTION_INFO_0 { + pub Anonymous: DISK_DETECTION_INFO_0_0, +} +impl ::core::marker::Copy for DISK_DETECTION_INFO_0 {} +impl ::core::clone::Clone for DISK_DETECTION_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_DETECTION_INFO_0_0 { + pub Int13: DISK_INT13_INFO, + pub ExInt13: DISK_EX_INT13_INFO, +} +impl ::core::marker::Copy for DISK_DETECTION_INFO_0_0 {} +impl ::core::clone::Clone for DISK_DETECTION_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_EXTENT { + pub DiskNumber: u32, + pub StartingOffset: i64, + pub ExtentLength: i64, +} +impl ::core::marker::Copy for DISK_EXTENT {} +impl ::core::clone::Clone for DISK_EXTENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_EX_INT13_INFO { + pub ExBufferSize: u16, + pub ExFlags: u16, + pub ExCylinders: u32, + pub ExHeads: u32, + pub ExSectorsPerTrack: u32, + pub ExSectorsPerDrive: u64, + pub ExSectorSize: u16, + pub ExReserved: u16, +} +impl ::core::marker::Copy for DISK_EX_INT13_INFO {} +impl ::core::clone::Clone for DISK_EX_INT13_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_GEOMETRY { + pub Cylinders: i64, + pub MediaType: MEDIA_TYPE, + pub TracksPerCylinder: u32, + pub SectorsPerTrack: u32, + pub BytesPerSector: u32, +} +impl ::core::marker::Copy for DISK_GEOMETRY {} +impl ::core::clone::Clone for DISK_GEOMETRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_GEOMETRY_EX { + pub Geometry: DISK_GEOMETRY, + pub DiskSize: i64, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for DISK_GEOMETRY_EX {} +impl ::core::clone::Clone for DISK_GEOMETRY_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_GROW_PARTITION { + pub PartitionNumber: u32, + pub BytesToGrow: i64, +} +impl ::core::marker::Copy for DISK_GROW_PARTITION {} +impl ::core::clone::Clone for DISK_GROW_PARTITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_HISTOGRAM { + pub DiskSize: i64, + pub Start: i64, + pub End: i64, + pub Average: i64, + pub AverageRead: i64, + pub AverageWrite: i64, + pub Granularity: u32, + pub Size: u32, + pub ReadCount: u32, + pub WriteCount: u32, + pub Histogram: *mut HISTOGRAM_BUCKET, +} +impl ::core::marker::Copy for DISK_HISTOGRAM {} +impl ::core::clone::Clone for DISK_HISTOGRAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_INT13_INFO { + pub DriveSelect: u16, + pub MaxCylinders: u32, + pub SectorsPerTrack: u16, + pub MaxHeads: u16, + pub NumberDrives: u16, +} +impl ::core::marker::Copy for DISK_INT13_INFO {} +impl ::core::clone::Clone for DISK_INT13_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_LOGGING { + pub Function: u8, + pub BufferAddress: *mut ::core::ffi::c_void, + pub BufferSize: u32, +} +impl ::core::marker::Copy for DISK_LOGGING {} +impl ::core::clone::Clone for DISK_LOGGING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_PARTITION_INFO { + pub SizeOfPartitionInfo: u32, + pub PartitionStyle: PARTITION_STYLE, + pub Anonymous: DISK_PARTITION_INFO_0, +} +impl ::core::marker::Copy for DISK_PARTITION_INFO {} +impl ::core::clone::Clone for DISK_PARTITION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DISK_PARTITION_INFO_0 { + pub Mbr: DISK_PARTITION_INFO_0_1, + pub Gpt: DISK_PARTITION_INFO_0_0, +} +impl ::core::marker::Copy for DISK_PARTITION_INFO_0 {} +impl ::core::clone::Clone for DISK_PARTITION_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_PARTITION_INFO_0_0 { + pub DiskId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for DISK_PARTITION_INFO_0_0 {} +impl ::core::clone::Clone for DISK_PARTITION_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_PARTITION_INFO_0_1 { + pub Signature: u32, + pub CheckSum: u32, +} +impl ::core::marker::Copy for DISK_PARTITION_INFO_0_1 {} +impl ::core::clone::Clone for DISK_PARTITION_INFO_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_PERFORMANCE { + pub BytesRead: i64, + pub BytesWritten: i64, + pub ReadTime: i64, + pub WriteTime: i64, + pub IdleTime: i64, + pub ReadCount: u32, + pub WriteCount: u32, + pub QueueDepth: u32, + pub SplitCount: u32, + pub QueryTime: i64, + pub StorageDeviceNumber: u32, + pub StorageManagerName: [u16; 8], +} +impl ::core::marker::Copy for DISK_PERFORMANCE {} +impl ::core::clone::Clone for DISK_PERFORMANCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DISK_RECORD { + pub ByteOffset: i64, + pub StartTime: i64, + pub EndTime: i64, + pub VirtualAddress: *mut ::core::ffi::c_void, + pub NumberOfBytes: u32, + pub DeviceNumber: u8, + pub ReadRequest: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DISK_RECORD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DISK_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DRIVERSTATUS { + pub bDriverError: u8, + pub bIDEError: u8, + pub bReserved: [u8; 2], + pub dwReserved: [u32; 2], +} +impl ::core::marker::Copy for DRIVERSTATUS {} +impl ::core::clone::Clone for DRIVERSTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DRIVE_LAYOUT_INFORMATION { + pub PartitionCount: u32, + pub Signature: u32, + pub PartitionEntry: [PARTITION_INFORMATION; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRIVE_LAYOUT_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRIVE_LAYOUT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DRIVE_LAYOUT_INFORMATION_EX { + pub PartitionStyle: u32, + pub PartitionCount: u32, + pub Anonymous: DRIVE_LAYOUT_INFORMATION_EX_0, + pub PartitionEntry: [PARTITION_INFORMATION_EX; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRIVE_LAYOUT_INFORMATION_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRIVE_LAYOUT_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union DRIVE_LAYOUT_INFORMATION_EX_0 { + pub Mbr: DRIVE_LAYOUT_INFORMATION_MBR, + pub Gpt: DRIVE_LAYOUT_INFORMATION_GPT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRIVE_LAYOUT_INFORMATION_EX_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRIVE_LAYOUT_INFORMATION_EX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVE_LAYOUT_INFORMATION_GPT { + pub DiskId: ::windows_sys::core::GUID, + pub StartingUsableOffset: i64, + pub UsableLength: i64, + pub MaxPartitionCount: u32, +} +impl ::core::marker::Copy for DRIVE_LAYOUT_INFORMATION_GPT {} +impl ::core::clone::Clone for DRIVE_LAYOUT_INFORMATION_GPT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DRIVE_LAYOUT_INFORMATION_MBR { + pub Signature: u32, + pub CheckSum: u32, +} +impl ::core::marker::Copy for DRIVE_LAYOUT_INFORMATION_MBR {} +impl ::core::clone::Clone for DRIVE_LAYOUT_INFORMATION_MBR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DUPLICATE_EXTENTS_DATA { + pub FileHandle: super::super::Foundation::HANDLE, + pub SourceFileOffset: i64, + pub TargetFileOffset: i64, + pub ByteCount: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DUPLICATE_EXTENTS_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DUPLICATE_EXTENTS_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DUPLICATE_EXTENTS_DATA32 { + pub FileHandle: u32, + pub SourceFileOffset: i64, + pub TargetFileOffset: i64, + pub ByteCount: i64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DUPLICATE_EXTENTS_DATA32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DUPLICATE_EXTENTS_DATA32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DUPLICATE_EXTENTS_DATA_EX { + pub Size: usize, + pub FileHandle: super::super::Foundation::HANDLE, + pub SourceFileOffset: i64, + pub TargetFileOffset: i64, + pub ByteCount: i64, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DUPLICATE_EXTENTS_DATA_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DUPLICATE_EXTENTS_DATA_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DUPLICATE_EXTENTS_DATA_EX32 { + pub Size: u32, + pub FileHandle: u32, + pub SourceFileOffset: i64, + pub TargetFileOffset: i64, + pub ByteCount: i64, + pub Flags: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DUPLICATE_EXTENTS_DATA_EX32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DUPLICATE_EXTENTS_DATA_EX32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENCRYPTED_DATA_INFO { + pub StartingFileOffset: u64, + pub OutputBufferOffset: u32, + pub BytesWithinFileSize: u32, + pub BytesWithinValidDataLength: u32, + pub CompressionFormat: u16, + pub DataUnitShift: u8, + pub ChunkShift: u8, + pub ClusterShift: u8, + pub EncryptionFormat: u8, + pub NumberOfDataBlocks: u16, + pub DataBlockSize: [u32; 1], +} +impl ::core::marker::Copy for ENCRYPTED_DATA_INFO {} +impl ::core::clone::Clone for ENCRYPTED_DATA_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENCRYPTION_BUFFER { + pub EncryptionOperation: u32, + pub Private: [u8; 1], +} +impl ::core::marker::Copy for ENCRYPTION_BUFFER {} +impl ::core::clone::Clone for ENCRYPTION_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENCRYPTION_KEY_CTRL_INPUT { + pub HeaderSize: u32, + pub StructureSize: u32, + pub KeyOffset: u16, + pub KeySize: u16, + pub DplLock: u32, + pub DplUserId: u64, + pub DplCredentialId: u64, +} +impl ::core::marker::Copy for ENCRYPTION_KEY_CTRL_INPUT {} +impl ::core::clone::Clone for ENCRYPTION_KEY_CTRL_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXFAT_STATISTICS { + pub CreateHits: u32, + pub SuccessfulCreates: u32, + pub FailedCreates: u32, + pub NonCachedReads: u32, + pub NonCachedReadBytes: u32, + pub NonCachedWrites: u32, + pub NonCachedWriteBytes: u32, + pub NonCachedDiskReads: u32, + pub NonCachedDiskWrites: u32, +} +impl ::core::marker::Copy for EXFAT_STATISTICS {} +impl ::core::clone::Clone for EXFAT_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXTENDED_ENCRYPTED_DATA_INFO { + pub ExtendedCode: u32, + pub Length: u32, + pub Flags: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for EXTENDED_ENCRYPTED_DATA_INFO {} +impl ::core::clone::Clone for EXTENDED_ENCRYPTED_DATA_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FAT_STATISTICS { + pub CreateHits: u32, + pub SuccessfulCreates: u32, + pub FailedCreates: u32, + pub NonCachedReads: u32, + pub NonCachedReadBytes: u32, + pub NonCachedWrites: u32, + pub NonCachedWriteBytes: u32, + pub NonCachedDiskReads: u32, + pub NonCachedDiskWrites: u32, +} +impl ::core::marker::Copy for FAT_STATISTICS {} +impl ::core::clone::Clone for FAT_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILESYSTEM_STATISTICS { + pub FileSystemType: FILESYSTEM_STATISTICS_TYPE, + pub Version: u16, + pub SizeOfCompleteStructure: u32, + pub UserFileReads: u32, + pub UserFileReadBytes: u32, + pub UserDiskReads: u32, + pub UserFileWrites: u32, + pub UserFileWriteBytes: u32, + pub UserDiskWrites: u32, + pub MetaDataReads: u32, + pub MetaDataReadBytes: u32, + pub MetaDataDiskReads: u32, + pub MetaDataWrites: u32, + pub MetaDataWriteBytes: u32, + pub MetaDataDiskWrites: u32, +} +impl ::core::marker::Copy for FILESYSTEM_STATISTICS {} +impl ::core::clone::Clone for FILESYSTEM_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILESYSTEM_STATISTICS_EX { + pub FileSystemType: FILESYSTEM_STATISTICS_TYPE, + pub Version: u16, + pub SizeOfCompleteStructure: u32, + pub UserFileReads: u64, + pub UserFileReadBytes: u64, + pub UserDiskReads: u64, + pub UserFileWrites: u64, + pub UserFileWriteBytes: u64, + pub UserDiskWrites: u64, + pub MetaDataReads: u64, + pub MetaDataReadBytes: u64, + pub MetaDataDiskReads: u64, + pub MetaDataWrites: u64, + pub MetaDataWriteBytes: u64, + pub MetaDataDiskWrites: u64, +} +impl ::core::marker::Copy for FILESYSTEM_STATISTICS_EX {} +impl ::core::clone::Clone for FILESYSTEM_STATISTICS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ALLOCATED_RANGE_BUFFER { + pub FileOffset: i64, + pub Length: i64, +} +impl ::core::marker::Copy for FILE_ALLOCATED_RANGE_BUFFER {} +impl ::core::clone::Clone for FILE_ALLOCATED_RANGE_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_DESIRED_STORAGE_CLASS_INFORMATION { + pub Class: FILE_STORAGE_TIER_CLASS, + pub Flags: u32, +} +impl ::core::marker::Copy for FILE_DESIRED_STORAGE_CLASS_INFORMATION {} +impl ::core::clone::Clone for FILE_DESIRED_STORAGE_CLASS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_FS_PERSISTENT_VOLUME_INFORMATION { + pub VolumeFlags: u32, + pub FlagMask: u32, + pub Version: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for FILE_FS_PERSISTENT_VOLUME_INFORMATION {} +impl ::core::clone::Clone for FILE_FS_PERSISTENT_VOLUME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_INITIATE_REPAIR_OUTPUT_BUFFER { + pub Hint1: u64, + pub Hint2: u64, + pub Clsn: u64, + pub Status: u32, +} +impl ::core::marker::Copy for FILE_INITIATE_REPAIR_OUTPUT_BUFFER {} +impl ::core::clone::Clone for FILE_INITIATE_REPAIR_OUTPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_LAYOUT_ENTRY { + pub Version: u32, + pub NextFileOffset: u32, + pub Flags: u32, + pub FileAttributes: u32, + pub FileReferenceNumber: u64, + pub FirstNameOffset: u32, + pub FirstStreamOffset: u32, + pub ExtraInfoOffset: u32, + pub ExtraInfoLength: u32, +} +impl ::core::marker::Copy for FILE_LAYOUT_ENTRY {} +impl ::core::clone::Clone for FILE_LAYOUT_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_LAYOUT_INFO_ENTRY { + pub BasicInformation: FILE_LAYOUT_INFO_ENTRY_0, + pub OwnerId: u32, + pub SecurityId: u32, + pub Usn: i64, + pub StorageReserveId: STORAGE_RESERVE_ID, +} +impl ::core::marker::Copy for FILE_LAYOUT_INFO_ENTRY {} +impl ::core::clone::Clone for FILE_LAYOUT_INFO_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_LAYOUT_INFO_ENTRY_0 { + pub CreationTime: i64, + pub LastAccessTime: i64, + pub LastWriteTime: i64, + pub ChangeTime: i64, + pub FileAttributes: u32, +} +impl ::core::marker::Copy for FILE_LAYOUT_INFO_ENTRY_0 {} +impl ::core::clone::Clone for FILE_LAYOUT_INFO_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_LAYOUT_NAME_ENTRY { + pub NextNameOffset: u32, + pub Flags: u32, + pub ParentFileReferenceNumber: u64, + pub FileNameLength: u32, + pub Reserved: u32, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_LAYOUT_NAME_ENTRY {} +impl ::core::clone::Clone for FILE_LAYOUT_NAME_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_LEVEL_TRIM { + pub Key: u32, + pub NumRanges: u32, + pub Ranges: [FILE_LEVEL_TRIM_RANGE; 1], +} +impl ::core::marker::Copy for FILE_LEVEL_TRIM {} +impl ::core::clone::Clone for FILE_LEVEL_TRIM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_LEVEL_TRIM_OUTPUT { + pub NumRangesProcessed: u32, +} +impl ::core::marker::Copy for FILE_LEVEL_TRIM_OUTPUT {} +impl ::core::clone::Clone for FILE_LEVEL_TRIM_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_LEVEL_TRIM_RANGE { + pub Offset: u64, + pub Length: u64, +} +impl ::core::marker::Copy for FILE_LEVEL_TRIM_RANGE {} +impl ::core::clone::Clone for FILE_LEVEL_TRIM_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_MAKE_COMPATIBLE_BUFFER { + pub CloseDisc: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_MAKE_COMPATIBLE_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_MAKE_COMPATIBLE_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_OBJECTID_BUFFER { + pub ObjectId: [u8; 16], + pub Anonymous: FILE_OBJECTID_BUFFER_0, +} +impl ::core::marker::Copy for FILE_OBJECTID_BUFFER {} +impl ::core::clone::Clone for FILE_OBJECTID_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FILE_OBJECTID_BUFFER_0 { + pub Anonymous: FILE_OBJECTID_BUFFER_0_0, + pub ExtendedInfo: [u8; 48], +} +impl ::core::marker::Copy for FILE_OBJECTID_BUFFER_0 {} +impl ::core::clone::Clone for FILE_OBJECTID_BUFFER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_OBJECTID_BUFFER_0_0 { + pub BirthVolumeId: [u8; 16], + pub BirthObjectId: [u8; 16], + pub DomainId: [u8; 16], +} +impl ::core::marker::Copy for FILE_OBJECTID_BUFFER_0_0 {} +impl ::core::clone::Clone for FILE_OBJECTID_BUFFER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PREFETCH { + pub Type: u32, + pub Count: u32, + pub Prefetch: [u64; 1], +} +impl ::core::marker::Copy for FILE_PREFETCH {} +impl ::core::clone::Clone for FILE_PREFETCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PREFETCH_EX { + pub Type: u32, + pub Count: u32, + pub Context: *mut ::core::ffi::c_void, + pub Prefetch: [u64; 1], +} +impl ::core::marker::Copy for FILE_PREFETCH_EX {} +impl ::core::clone::Clone for FILE_PREFETCH_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PROVIDER_EXTERNAL_INFO_V0 { + pub Version: u32, + pub Algorithm: u32, +} +impl ::core::marker::Copy for FILE_PROVIDER_EXTERNAL_INFO_V0 {} +impl ::core::clone::Clone for FILE_PROVIDER_EXTERNAL_INFO_V0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_PROVIDER_EXTERNAL_INFO_V1 { + pub Version: u32, + pub Algorithm: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for FILE_PROVIDER_EXTERNAL_INFO_V1 {} +impl ::core::clone::Clone for FILE_PROVIDER_EXTERNAL_INFO_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_QUERY_ON_DISK_VOL_INFO_BUFFER { + pub DirectoryCount: i64, + pub FileCount: i64, + pub FsFormatMajVersion: u16, + pub FsFormatMinVersion: u16, + pub FsFormatName: [u16; 12], + pub FormatTime: i64, + pub LastUpdateTime: i64, + pub CopyrightInfo: [u16; 34], + pub AbstractInfo: [u16; 34], + pub FormattingImplementationInfo: [u16; 34], + pub LastModifyingImplementationInfo: [u16; 34], +} +impl ::core::marker::Copy for FILE_QUERY_ON_DISK_VOL_INFO_BUFFER {} +impl ::core::clone::Clone for FILE_QUERY_ON_DISK_VOL_INFO_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_QUERY_SPARING_BUFFER { + pub SparingUnitBytes: u32, + pub SoftwareSparing: super::super::Foundation::BOOLEAN, + pub TotalSpareBlocks: u32, + pub FreeSpareBlocks: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_QUERY_SPARING_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_QUERY_SPARING_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REFERENCE_RANGE { + pub StartingFileReferenceNumber: u64, + pub EndingFileReferenceNumber: u64, +} +impl ::core::marker::Copy for FILE_REFERENCE_RANGE {} +impl ::core::clone::Clone for FILE_REFERENCE_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REGION_INFO { + pub FileOffset: i64, + pub Length: i64, + pub Usage: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for FILE_REGION_INFO {} +impl ::core::clone::Clone for FILE_REGION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REGION_INPUT { + pub FileOffset: i64, + pub Length: i64, + pub DesiredUsage: u32, +} +impl ::core::marker::Copy for FILE_REGION_INPUT {} +impl ::core::clone::Clone for FILE_REGION_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_REGION_OUTPUT { + pub Flags: u32, + pub TotalRegionEntryCount: u32, + pub RegionEntryCount: u32, + pub Reserved: u32, + pub Region: [FILE_REGION_INFO; 1], +} +impl ::core::marker::Copy for FILE_REGION_OUTPUT {} +impl ::core::clone::Clone for FILE_REGION_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_SET_DEFECT_MGMT_BUFFER { + pub Disable: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_SET_DEFECT_MGMT_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_SET_DEFECT_MGMT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILE_SET_SPARSE_BUFFER { + pub SetSparse: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILE_SET_SPARSE_BUFFER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILE_SET_SPARSE_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_STORAGE_TIER { + pub Id: ::windows_sys::core::GUID, + pub Name: [u16; 256], + pub Description: [u16; 256], + pub Flags: u64, + pub ProvisionedCapacity: u64, + pub MediaType: FILE_STORAGE_TIER_MEDIA_TYPE, + pub Class: FILE_STORAGE_TIER_CLASS, +} +impl ::core::marker::Copy for FILE_STORAGE_TIER {} +impl ::core::clone::Clone for FILE_STORAGE_TIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_STORAGE_TIER_REGION { + pub TierId: ::windows_sys::core::GUID, + pub Offset: u64, + pub Length: u64, +} +impl ::core::marker::Copy for FILE_STORAGE_TIER_REGION {} +impl ::core::clone::Clone for FILE_STORAGE_TIER_REGION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_SYSTEM_RECOGNITION_INFORMATION { + pub FileSystem: [u8; 9], +} +impl ::core::marker::Copy for FILE_SYSTEM_RECOGNITION_INFORMATION {} +impl ::core::clone::Clone for FILE_SYSTEM_RECOGNITION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_TYPE_NOTIFICATION_INPUT { + pub Flags: u32, + pub NumFileTypeIDs: u32, + pub FileTypeID: [::windows_sys::core::GUID; 1], +} +impl ::core::marker::Copy for FILE_TYPE_NOTIFICATION_INPUT {} +impl ::core::clone::Clone for FILE_TYPE_NOTIFICATION_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ZERO_DATA_INFORMATION { + pub FileOffset: i64, + pub BeyondFinalZero: i64, +} +impl ::core::marker::Copy for FILE_ZERO_DATA_INFORMATION {} +impl ::core::clone::Clone for FILE_ZERO_DATA_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_ZERO_DATA_INFORMATION_EX { + pub FileOffset: i64, + pub BeyondFinalZero: i64, + pub Flags: u32, +} +impl ::core::marker::Copy for FILE_ZERO_DATA_INFORMATION_EX {} +impl ::core::clone::Clone for FILE_ZERO_DATA_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Security\"`"] +#[cfg(feature = "Win32_Security")] +pub struct FIND_BY_SID_DATA { + pub Restart: u32, + pub Sid: super::super::Security::SID, +} +#[cfg(feature = "Win32_Security")] +impl ::core::marker::Copy for FIND_BY_SID_DATA {} +#[cfg(feature = "Win32_Security")] +impl ::core::clone::Clone for FIND_BY_SID_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FIND_BY_SID_OUTPUT { + pub NextEntryOffset: u32, + pub FileIndex: u32, + pub FileNameLength: u32, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FIND_BY_SID_OUTPUT {} +impl ::core::clone::Clone for FIND_BY_SID_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FORMAT_EX_PARAMETERS { + pub MediaType: MEDIA_TYPE, + pub StartCylinderNumber: u32, + pub EndCylinderNumber: u32, + pub StartHeadNumber: u32, + pub EndHeadNumber: u32, + pub FormatGapLength: u16, + pub SectorsPerTrack: u16, + pub SectorNumber: [u16; 1], +} +impl ::core::marker::Copy for FORMAT_EX_PARAMETERS {} +impl ::core::clone::Clone for FORMAT_EX_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FORMAT_PARAMETERS { + pub MediaType: MEDIA_TYPE, + pub StartCylinderNumber: u32, + pub EndCylinderNumber: u32, + pub StartHeadNumber: u32, + pub EndHeadNumber: u32, +} +impl ::core::marker::Copy for FORMAT_PARAMETERS {} +impl ::core::clone::Clone for FORMAT_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_GET_INTEGRITY_INFORMATION_BUFFER { + pub ChecksumAlgorithm: u16, + pub Reserved: u16, + pub Flags: u32, + pub ChecksumChunkSizeInBytes: u32, + pub ClusterSizeInBytes: u32, +} +impl ::core::marker::Copy for FSCTL_GET_INTEGRITY_INFORMATION_BUFFER {} +impl ::core::clone::Clone for FSCTL_GET_INTEGRITY_INFORMATION_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_OFFLOAD_READ_INPUT { + pub Size: u32, + pub Flags: u32, + pub TokenTimeToLive: u32, + pub Reserved: u32, + pub FileOffset: u64, + pub CopyLength: u64, +} +impl ::core::marker::Copy for FSCTL_OFFLOAD_READ_INPUT {} +impl ::core::clone::Clone for FSCTL_OFFLOAD_READ_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_OFFLOAD_READ_OUTPUT { + pub Size: u32, + pub Flags: u32, + pub TransferLength: u64, + pub Token: [u8; 512], +} +impl ::core::marker::Copy for FSCTL_OFFLOAD_READ_OUTPUT {} +impl ::core::clone::Clone for FSCTL_OFFLOAD_READ_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_OFFLOAD_WRITE_INPUT { + pub Size: u32, + pub Flags: u32, + pub FileOffset: u64, + pub CopyLength: u64, + pub TransferOffset: u64, + pub Token: [u8; 512], +} +impl ::core::marker::Copy for FSCTL_OFFLOAD_WRITE_INPUT {} +impl ::core::clone::Clone for FSCTL_OFFLOAD_WRITE_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_OFFLOAD_WRITE_OUTPUT { + pub Size: u32, + pub Flags: u32, + pub LengthWritten: u64, +} +impl ::core::marker::Copy for FSCTL_OFFLOAD_WRITE_OUTPUT {} +impl ::core::clone::Clone for FSCTL_OFFLOAD_WRITE_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_QUERY_FAT_BPB_BUFFER { + pub First0x24BytesOfBootSector: [u8; 36], +} +impl ::core::marker::Copy for FSCTL_QUERY_FAT_BPB_BUFFER {} +impl ::core::clone::Clone for FSCTL_QUERY_FAT_BPB_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_QUERY_REGION_INFO_INPUT { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub NumberOfTierIds: u32, + pub TierIds: [::windows_sys::core::GUID; 1], +} +impl ::core::marker::Copy for FSCTL_QUERY_REGION_INFO_INPUT {} +impl ::core::clone::Clone for FSCTL_QUERY_REGION_INFO_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_QUERY_REGION_INFO_OUTPUT { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub Reserved: u32, + pub Alignment: u64, + pub TotalNumberOfRegions: u32, + pub NumberOfRegionsReturned: u32, + pub Regions: [FILE_STORAGE_TIER_REGION; 1], +} +impl ::core::marker::Copy for FSCTL_QUERY_REGION_INFO_OUTPUT {} +impl ::core::clone::Clone for FSCTL_QUERY_REGION_INFO_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_QUERY_STORAGE_CLASSES_OUTPUT { + pub Version: u32, + pub Size: u32, + pub Flags: FILE_STORAGE_TIER_FLAGS, + pub TotalNumberOfTiers: u32, + pub NumberOfTiersReturned: u32, + pub Tiers: [FILE_STORAGE_TIER; 1], +} +impl ::core::marker::Copy for FSCTL_QUERY_STORAGE_CLASSES_OUTPUT {} +impl ::core::clone::Clone for FSCTL_QUERY_STORAGE_CLASSES_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_SET_INTEGRITY_INFORMATION_BUFFER { + pub ChecksumAlgorithm: u16, + pub Reserved: u16, + pub Flags: u32, +} +impl ::core::marker::Copy for FSCTL_SET_INTEGRITY_INFORMATION_BUFFER {} +impl ::core::clone::Clone for FSCTL_SET_INTEGRITY_INFORMATION_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX { + pub EnableIntegrity: u8, + pub KeepIntegrityStateUnchanged: u8, + pub Reserved: u16, + pub Flags: u32, + pub Version: u8, + pub Reserved2: [u8; 7], +} +impl ::core::marker::Copy for FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX {} +impl ::core::clone::Clone for FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FS_BPIO_INFO { + pub ActiveBypassIoCount: u32, + pub StorageDriverNameLen: u16, + pub StorageDriverName: [u16; 32], +} +impl ::core::marker::Copy for FS_BPIO_INFO {} +impl ::core::clone::Clone for FS_BPIO_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FS_BPIO_INPUT { + pub Operation: FS_BPIO_OPERATIONS, + pub InFlags: FS_BPIO_INFLAGS, + pub Reserved1: u64, + pub Reserved2: u64, +} +impl ::core::marker::Copy for FS_BPIO_INPUT {} +impl ::core::clone::Clone for FS_BPIO_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FS_BPIO_OUTPUT { + pub Operation: FS_BPIO_OPERATIONS, + pub OutFlags: FS_BPIO_OUTFLAGS, + pub Reserved1: u64, + pub Reserved2: u64, + pub Anonymous: FS_BPIO_OUTPUT_0, +} +impl ::core::marker::Copy for FS_BPIO_OUTPUT {} +impl ::core::clone::Clone for FS_BPIO_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FS_BPIO_OUTPUT_0 { + pub Enable: FS_BPIO_RESULTS, + pub Query: FS_BPIO_RESULTS, + pub VolumeStackResume: FS_BPIO_RESULTS, + pub StreamResume: FS_BPIO_RESULTS, + pub GetInfo: FS_BPIO_INFO, +} +impl ::core::marker::Copy for FS_BPIO_OUTPUT_0 {} +impl ::core::clone::Clone for FS_BPIO_OUTPUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FS_BPIO_RESULTS { + pub OpStatus: u32, + pub FailingDriverNameLen: u16, + pub FailingDriverName: [u16; 32], + pub FailureReasonLen: u16, + pub FailureReason: [u16; 128], +} +impl ::core::marker::Copy for FS_BPIO_RESULTS {} +impl ::core::clone::Clone for FS_BPIO_RESULTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct GETVERSIONINPARAMS { + pub bVersion: u8, + pub bRevision: u8, + pub bReserved: u8, + pub bIDEDeviceMap: u8, + pub fCapabilities: u32, + pub dwReserved: [u32; 4], +} +impl ::core::marker::Copy for GETVERSIONINPARAMS {} +impl ::core::clone::Clone for GETVERSIONINPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_CHANGER_PARAMETERS { + pub Size: u32, + pub NumberTransportElements: u16, + pub NumberStorageElements: u16, + pub NumberCleanerSlots: u16, + pub NumberIEElements: u16, + pub NumberDataTransferElements: u16, + pub NumberOfDoors: u16, + pub FirstSlotNumber: u16, + pub FirstDriveNumber: u16, + pub FirstTransportNumber: u16, + pub FirstIEPortNumber: u16, + pub FirstCleanerSlotAddress: u16, + pub MagazineSize: u16, + pub DriveCleanTimeout: u32, + pub Features0: CHANGER_FEATURES, + pub Features1: GET_CHANGER_PARAMETERS_FEATURES1, + pub MoveFromTransport: u8, + pub MoveFromSlot: u8, + pub MoveFromIePort: u8, + pub MoveFromDrive: u8, + pub ExchangeFromTransport: u8, + pub ExchangeFromSlot: u8, + pub ExchangeFromIePort: u8, + pub ExchangeFromDrive: u8, + pub LockUnlockCapabilities: u8, + pub PositionCapabilities: u8, + pub Reserved1: [u8; 2], + pub Reserved2: [u32; 2], +} +impl ::core::marker::Copy for GET_CHANGER_PARAMETERS {} +impl ::core::clone::Clone for GET_CHANGER_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST { + pub Version: u32, + pub Size: u32, + pub RequestDataType: DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE, + pub RequestDataSet: DEVICE_INTERNAL_STATUS_DATA_SET, +} +impl ::core::marker::Copy for GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST {} +impl ::core::clone::Clone for GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_DISK_ATTRIBUTES { + pub Version: u32, + pub Reserved1: u32, + pub Attributes: u64, +} +impl ::core::marker::Copy for GET_DISK_ATTRIBUTES {} +impl ::core::clone::Clone for GET_DISK_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_FILTER_FILE_IDENTIFIER_INPUT { + pub AltitudeLength: u16, + pub Altitude: [u16; 1], +} +impl ::core::marker::Copy for GET_FILTER_FILE_IDENTIFIER_INPUT {} +impl ::core::clone::Clone for GET_FILTER_FILE_IDENTIFIER_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_FILTER_FILE_IDENTIFIER_OUTPUT { + pub FilterFileIdentifierLength: u16, + pub FilterFileIdentifier: [u8; 1], +} +impl ::core::marker::Copy for GET_FILTER_FILE_IDENTIFIER_OUTPUT {} +impl ::core::clone::Clone for GET_FILTER_FILE_IDENTIFIER_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GET_LENGTH_INFORMATION { + pub Length: i64, +} +impl ::core::marker::Copy for GET_LENGTH_INFORMATION {} +impl ::core::clone::Clone for GET_LENGTH_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct GET_MEDIA_TYPES { + pub DeviceType: u32, + pub MediaInfoCount: u32, + pub MediaInfo: [DEVICE_MEDIA_INFO; 1], +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for GET_MEDIA_TYPES {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for GET_MEDIA_TYPES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct GP_LOG_PAGE_DESCRIPTOR { + pub LogAddress: u16, + pub LogSectors: u16, +} +impl ::core::marker::Copy for GP_LOG_PAGE_DESCRIPTOR {} +impl ::core::clone::Clone for GP_LOG_PAGE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HISTOGRAM_BUCKET { + pub Reads: u32, + pub Writes: u32, +} +impl ::core::marker::Copy for HISTOGRAM_BUCKET {} +impl ::core::clone::Clone for HISTOGRAM_BUCKET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IDEREGS { + pub bFeaturesReg: u8, + pub bSectorCountReg: u8, + pub bSectorNumberReg: u8, + pub bCylLowReg: u8, + pub bCylHighReg: u8, + pub bDriveHeadReg: u8, + pub bCommandReg: u8, + pub bReserved: u8, +} +impl ::core::marker::Copy for IDEREGS {} +impl ::core::clone::Clone for IDEREGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_IRP_EXT_TRACK_OFFSET_HEADER { + pub Validation: u16, + pub Flags: u16, + pub TrackedOffsetCallback: PIO_IRP_EXT_PROCESS_TRACKED_OFFSET_CALLBACK, +} +impl ::core::marker::Copy for IO_IRP_EXT_TRACK_OFFSET_HEADER {} +impl ::core::clone::Clone for IO_IRP_EXT_TRACK_OFFSET_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LMR_QUERY_INFO_PARAM { + pub Operation: LMR_QUERY_INFO_CLASS, +} +impl ::core::marker::Copy for LMR_QUERY_INFO_PARAM {} +impl ::core::clone::Clone for LMR_QUERY_INFO_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LMR_QUERY_SESSION_INFO { + pub SessionId: u64, +} +impl ::core::marker::Copy for LMR_QUERY_SESSION_INFO {} +impl ::core::clone::Clone for LMR_QUERY_SESSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOOKUP_STREAM_FROM_CLUSTER_ENTRY { + pub OffsetToNext: u32, + pub Flags: u32, + pub Reserved: i64, + pub Cluster: i64, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for LOOKUP_STREAM_FROM_CLUSTER_ENTRY {} +impl ::core::clone::Clone for LOOKUP_STREAM_FROM_CLUSTER_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOOKUP_STREAM_FROM_CLUSTER_INPUT { + pub Flags: u32, + pub NumberOfClusters: u32, + pub Cluster: [i64; 1], +} +impl ::core::marker::Copy for LOOKUP_STREAM_FROM_CLUSTER_INPUT {} +impl ::core::clone::Clone for LOOKUP_STREAM_FROM_CLUSTER_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LOOKUP_STREAM_FROM_CLUSTER_OUTPUT { + pub Offset: u32, + pub NumberOfMatches: u32, + pub BufferSizeRequired: u32, +} +impl ::core::marker::Copy for LOOKUP_STREAM_FROM_CLUSTER_OUTPUT {} +impl ::core::clone::Clone for LOOKUP_STREAM_FROM_CLUSTER_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MARK_HANDLE_INFO { + pub Anonymous: MARK_HANDLE_INFO_0, + pub VolumeHandle: super::super::Foundation::HANDLE, + pub HandleInfo: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MARK_HANDLE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MARK_HANDLE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union MARK_HANDLE_INFO_0 { + pub UsnSourceInfo: u32, + pub CopyNumber: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MARK_HANDLE_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MARK_HANDLE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct MARK_HANDLE_INFO32 { + pub Anonymous: MARK_HANDLE_INFO32_0, + pub VolumeHandle: u32, + pub HandleInfo: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for MARK_HANDLE_INFO32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for MARK_HANDLE_INFO32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub union MARK_HANDLE_INFO32_0 { + pub UsnSourceInfo: u32, + pub CopyNumber: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for MARK_HANDLE_INFO32_0 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for MARK_HANDLE_INFO32_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MFT_ENUM_DATA_V0 { + pub StartFileReferenceNumber: u64, + pub LowUsn: i64, + pub HighUsn: i64, +} +impl ::core::marker::Copy for MFT_ENUM_DATA_V0 {} +impl ::core::clone::Clone for MFT_ENUM_DATA_V0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MFT_ENUM_DATA_V1 { + pub StartFileReferenceNumber: u64, + pub LowUsn: i64, + pub HighUsn: i64, + pub MinMajorVersion: u16, + pub MaxMajorVersion: u16, +} +impl ::core::marker::Copy for MFT_ENUM_DATA_V1 {} +impl ::core::clone::Clone for MFT_ENUM_DATA_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MOVE_FILE_DATA { + pub FileHandle: super::super::Foundation::HANDLE, + pub StartingVcn: i64, + pub StartingLcn: i64, + pub ClusterCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MOVE_FILE_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MOVE_FILE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct MOVE_FILE_DATA32 { + pub FileHandle: u32, + pub StartingVcn: i64, + pub StartingLcn: i64, + pub ClusterCount: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for MOVE_FILE_DATA32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for MOVE_FILE_DATA32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MOVE_FILE_RECORD_DATA { + pub FileHandle: super::super::Foundation::HANDLE, + pub SourceFileRecord: i64, + pub TargetFileRecord: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MOVE_FILE_RECORD_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MOVE_FILE_RECORD_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_EXTENDED_VOLUME_DATA { + pub ByteCount: u32, + pub MajorVersion: u16, + pub MinorVersion: u16, + pub BytesPerPhysicalSector: u32, + pub LfsMajorVersion: u16, + pub LfsMinorVersion: u16, + pub MaxDeviceTrimExtentCount: u32, + pub MaxDeviceTrimByteCount: u32, + pub MaxVolumeTrimExtentCount: u32, + pub MaxVolumeTrimByteCount: u32, +} +impl ::core::marker::Copy for NTFS_EXTENDED_VOLUME_DATA {} +impl ::core::clone::Clone for NTFS_EXTENDED_VOLUME_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_FILE_RECORD_INPUT_BUFFER { + pub FileReferenceNumber: i64, +} +impl ::core::marker::Copy for NTFS_FILE_RECORD_INPUT_BUFFER {} +impl ::core::clone::Clone for NTFS_FILE_RECORD_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_FILE_RECORD_OUTPUT_BUFFER { + pub FileReferenceNumber: i64, + pub FileRecordLength: u32, + pub FileRecordBuffer: [u8; 1], +} +impl ::core::marker::Copy for NTFS_FILE_RECORD_OUTPUT_BUFFER {} +impl ::core::clone::Clone for NTFS_FILE_RECORD_OUTPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_STATISTICS { + pub LogFileFullExceptions: u32, + pub OtherExceptions: u32, + pub MftReads: u32, + pub MftReadBytes: u32, + pub MftWrites: u32, + pub MftWriteBytes: u32, + pub MftWritesUserLevel: NTFS_STATISTICS_4, + pub MftWritesFlushForLogFileFull: u16, + pub MftWritesLazyWriter: u16, + pub MftWritesUserRequest: u16, + pub Mft2Writes: u32, + pub Mft2WriteBytes: u32, + pub Mft2WritesUserLevel: NTFS_STATISTICS_2, + pub Mft2WritesFlushForLogFileFull: u16, + pub Mft2WritesLazyWriter: u16, + pub Mft2WritesUserRequest: u16, + pub RootIndexReads: u32, + pub RootIndexReadBytes: u32, + pub RootIndexWrites: u32, + pub RootIndexWriteBytes: u32, + pub BitmapReads: u32, + pub BitmapReadBytes: u32, + pub BitmapWrites: u32, + pub BitmapWriteBytes: u32, + pub BitmapWritesFlushForLogFileFull: u16, + pub BitmapWritesLazyWriter: u16, + pub BitmapWritesUserRequest: u16, + pub BitmapWritesUserLevel: NTFS_STATISTICS_1, + pub MftBitmapReads: u32, + pub MftBitmapReadBytes: u32, + pub MftBitmapWrites: u32, + pub MftBitmapWriteBytes: u32, + pub MftBitmapWritesFlushForLogFileFull: u16, + pub MftBitmapWritesLazyWriter: u16, + pub MftBitmapWritesUserRequest: u16, + pub MftBitmapWritesUserLevel: NTFS_STATISTICS_3, + pub UserIndexReads: u32, + pub UserIndexReadBytes: u32, + pub UserIndexWrites: u32, + pub UserIndexWriteBytes: u32, + pub LogFileReads: u32, + pub LogFileReadBytes: u32, + pub LogFileWrites: u32, + pub LogFileWriteBytes: u32, + pub Allocate: NTFS_STATISTICS_0, + pub DiskResourcesExhausted: u32, +} +impl ::core::marker::Copy for NTFS_STATISTICS {} +impl ::core::clone::Clone for NTFS_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_STATISTICS_0 { + pub Calls: u32, + pub Clusters: u32, + pub Hints: u32, + pub RunsReturned: u32, + pub HintsHonored: u32, + pub HintsClusters: u32, + pub Cache: u32, + pub CacheClusters: u32, + pub CacheMiss: u32, + pub CacheMissClusters: u32, +} +impl ::core::marker::Copy for NTFS_STATISTICS_0 {} +impl ::core::clone::Clone for NTFS_STATISTICS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_STATISTICS_1 { + pub Write: u16, + pub Create: u16, + pub SetInfo: u16, +} +impl ::core::marker::Copy for NTFS_STATISTICS_1 {} +impl ::core::clone::Clone for NTFS_STATISTICS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_STATISTICS_2 { + pub Write: u16, + pub Create: u16, + pub SetInfo: u16, + pub Flush: u16, +} +impl ::core::marker::Copy for NTFS_STATISTICS_2 {} +impl ::core::clone::Clone for NTFS_STATISTICS_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_STATISTICS_3 { + pub Write: u16, + pub Create: u16, + pub SetInfo: u16, + pub Flush: u16, +} +impl ::core::marker::Copy for NTFS_STATISTICS_3 {} +impl ::core::clone::Clone for NTFS_STATISTICS_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_STATISTICS_4 { + pub Write: u16, + pub Create: u16, + pub SetInfo: u16, + pub Flush: u16, +} +impl ::core::marker::Copy for NTFS_STATISTICS_4 {} +impl ::core::clone::Clone for NTFS_STATISTICS_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_STATISTICS_EX { + pub LogFileFullExceptions: u32, + pub OtherExceptions: u32, + pub MftReads: u64, + pub MftReadBytes: u64, + pub MftWrites: u64, + pub MftWriteBytes: u64, + pub MftWritesUserLevel: NTFS_STATISTICS_EX_4, + pub MftWritesFlushForLogFileFull: u32, + pub MftWritesLazyWriter: u32, + pub MftWritesUserRequest: u32, + pub Mft2Writes: u64, + pub Mft2WriteBytes: u64, + pub Mft2WritesUserLevel: NTFS_STATISTICS_EX_2, + pub Mft2WritesFlushForLogFileFull: u32, + pub Mft2WritesLazyWriter: u32, + pub Mft2WritesUserRequest: u32, + pub RootIndexReads: u64, + pub RootIndexReadBytes: u64, + pub RootIndexWrites: u64, + pub RootIndexWriteBytes: u64, + pub BitmapReads: u64, + pub BitmapReadBytes: u64, + pub BitmapWrites: u64, + pub BitmapWriteBytes: u64, + pub BitmapWritesFlushForLogFileFull: u32, + pub BitmapWritesLazyWriter: u32, + pub BitmapWritesUserRequest: u32, + pub BitmapWritesUserLevel: NTFS_STATISTICS_EX_1, + pub MftBitmapReads: u64, + pub MftBitmapReadBytes: u64, + pub MftBitmapWrites: u64, + pub MftBitmapWriteBytes: u64, + pub MftBitmapWritesFlushForLogFileFull: u32, + pub MftBitmapWritesLazyWriter: u32, + pub MftBitmapWritesUserRequest: u32, + pub MftBitmapWritesUserLevel: NTFS_STATISTICS_EX_3, + pub UserIndexReads: u64, + pub UserIndexReadBytes: u64, + pub UserIndexWrites: u64, + pub UserIndexWriteBytes: u64, + pub LogFileReads: u64, + pub LogFileReadBytes: u64, + pub LogFileWrites: u64, + pub LogFileWriteBytes: u64, + pub Allocate: NTFS_STATISTICS_EX_0, + pub DiskResourcesExhausted: u32, + pub VolumeTrimCount: u64, + pub VolumeTrimTime: u64, + pub VolumeTrimByteCount: u64, + pub FileLevelTrimCount: u64, + pub FileLevelTrimTime: u64, + pub FileLevelTrimByteCount: u64, + pub VolumeTrimSkippedCount: u64, + pub VolumeTrimSkippedByteCount: u64, + pub NtfsFillStatInfoFromMftRecordCalledCount: u64, + pub NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount: u64, + pub NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount: u64, +} +impl ::core::marker::Copy for NTFS_STATISTICS_EX {} +impl ::core::clone::Clone for NTFS_STATISTICS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_STATISTICS_EX_0 { + pub Calls: u32, + pub RunsReturned: u32, + pub Hints: u32, + pub HintsHonored: u32, + pub Cache: u32, + pub CacheMiss: u32, + pub Clusters: u64, + pub HintsClusters: u64, + pub CacheClusters: u64, + pub CacheMissClusters: u64, +} +impl ::core::marker::Copy for NTFS_STATISTICS_EX_0 {} +impl ::core::clone::Clone for NTFS_STATISTICS_EX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_STATISTICS_EX_1 { + pub Write: u32, + pub Create: u32, + pub SetInfo: u32, + pub Flush: u32, +} +impl ::core::marker::Copy for NTFS_STATISTICS_EX_1 {} +impl ::core::clone::Clone for NTFS_STATISTICS_EX_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_STATISTICS_EX_2 { + pub Write: u32, + pub Create: u32, + pub SetInfo: u32, + pub Flush: u32, +} +impl ::core::marker::Copy for NTFS_STATISTICS_EX_2 {} +impl ::core::clone::Clone for NTFS_STATISTICS_EX_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_STATISTICS_EX_3 { + pub Write: u32, + pub Create: u32, + pub SetInfo: u32, + pub Flush: u32, +} +impl ::core::marker::Copy for NTFS_STATISTICS_EX_3 {} +impl ::core::clone::Clone for NTFS_STATISTICS_EX_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_STATISTICS_EX_4 { + pub Write: u32, + pub Create: u32, + pub SetInfo: u32, + pub Flush: u32, +} +impl ::core::marker::Copy for NTFS_STATISTICS_EX_4 {} +impl ::core::clone::Clone for NTFS_STATISTICS_EX_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NTFS_VOLUME_DATA_BUFFER { + pub VolumeSerialNumber: i64, + pub NumberSectors: i64, + pub TotalClusters: i64, + pub FreeClusters: i64, + pub TotalReserved: i64, + pub BytesPerSector: u32, + pub BytesPerCluster: u32, + pub BytesPerFileRecordSegment: u32, + pub ClustersPerFileRecordSegment: u32, + pub MftValidDataLength: i64, + pub MftStartLcn: i64, + pub Mft2StartLcn: i64, + pub MftZoneStart: i64, + pub MftZoneEnd: i64, +} +impl ::core::marker::Copy for NTFS_VOLUME_DATA_BUFFER {} +impl ::core::clone::Clone for NTFS_VOLUME_DATA_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PARTITION_INFORMATION { + pub StartingOffset: i64, + pub PartitionLength: i64, + pub HiddenSectors: u32, + pub PartitionNumber: u32, + pub PartitionType: u8, + pub BootIndicator: super::super::Foundation::BOOLEAN, + pub RecognizedPartition: super::super::Foundation::BOOLEAN, + pub RewritePartition: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PARTITION_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PARTITION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PARTITION_INFORMATION_EX { + pub PartitionStyle: PARTITION_STYLE, + pub StartingOffset: i64, + pub PartitionLength: i64, + pub PartitionNumber: u32, + pub RewritePartition: super::super::Foundation::BOOLEAN, + pub IsServicePartition: super::super::Foundation::BOOLEAN, + pub Anonymous: PARTITION_INFORMATION_EX_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PARTITION_INFORMATION_EX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PARTITION_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union PARTITION_INFORMATION_EX_0 { + pub Mbr: PARTITION_INFORMATION_MBR, + pub Gpt: PARTITION_INFORMATION_GPT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PARTITION_INFORMATION_EX_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PARTITION_INFORMATION_EX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PARTITION_INFORMATION_GPT { + pub PartitionType: ::windows_sys::core::GUID, + pub PartitionId: ::windows_sys::core::GUID, + pub Attributes: GPT_ATTRIBUTES, + pub Name: [u16; 36], +} +impl ::core::marker::Copy for PARTITION_INFORMATION_GPT {} +impl ::core::clone::Clone for PARTITION_INFORMATION_GPT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PARTITION_INFORMATION_MBR { + pub PartitionType: u8, + pub BootIndicator: super::super::Foundation::BOOLEAN, + pub RecognizedPartition: super::super::Foundation::BOOLEAN, + pub HiddenSectors: u32, + pub PartitionId: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PARTITION_INFORMATION_MBR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PARTITION_INFORMATION_MBR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PATHNAME_BUFFER { + pub PathNameLength: u32, + pub Name: [u16; 1], +} +impl ::core::marker::Copy for PATHNAME_BUFFER {} +impl ::core::clone::Clone for PATHNAME_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_BIN { + pub NumberOfBins: u32, + pub TypeOfBin: u32, + pub BinsRanges: [BIN_RANGE; 1], +} +impl ::core::marker::Copy for PERF_BIN {} +impl ::core::clone::Clone for PERF_BIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERSISTENT_RESERVE_COMMAND { + pub Version: u32, + pub Size: u32, + pub Anonymous: PERSISTENT_RESERVE_COMMAND_0, +} +impl ::core::marker::Copy for PERSISTENT_RESERVE_COMMAND {} +impl ::core::clone::Clone for PERSISTENT_RESERVE_COMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PERSISTENT_RESERVE_COMMAND_0 { + pub PR_IN: PERSISTENT_RESERVE_COMMAND_0_0, + pub PR_OUT: PERSISTENT_RESERVE_COMMAND_0_1, +} +impl ::core::marker::Copy for PERSISTENT_RESERVE_COMMAND_0 {} +impl ::core::clone::Clone for PERSISTENT_RESERVE_COMMAND_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERSISTENT_RESERVE_COMMAND_0_0 { + pub _bitfield: u8, + pub AllocationLength: u16, +} +impl ::core::marker::Copy for PERSISTENT_RESERVE_COMMAND_0_0 {} +impl ::core::clone::Clone for PERSISTENT_RESERVE_COMMAND_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERSISTENT_RESERVE_COMMAND_0_1 { + pub _bitfield1: u8, + pub _bitfield2: u8, + pub ParameterList: [u8; 1], +} +impl ::core::marker::Copy for PERSISTENT_RESERVE_COMMAND_0_1 {} +impl ::core::clone::Clone for PERSISTENT_RESERVE_COMMAND_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL_ELEMENT_STATUS { + pub Version: u32, + pub Size: u32, + pub DescriptorCount: u32, + pub ReturnedDescriptorCount: u32, + pub ElementIdentifierBeingDepoped: u32, + pub Reserved: u32, + pub Descriptors: [PHYSICAL_ELEMENT_STATUS_DESCRIPTOR; 1], +} +impl ::core::marker::Copy for PHYSICAL_ELEMENT_STATUS {} +impl ::core::clone::Clone for PHYSICAL_ELEMENT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL_ELEMENT_STATUS_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub ElementIdentifier: u32, + pub PhysicalElementType: u8, + pub PhysicalElementHealth: u8, + pub Reserved1: [u8; 2], + pub AssociatedCapacity: u64, + pub Reserved2: [u32; 4], +} +impl ::core::marker::Copy for PHYSICAL_ELEMENT_STATUS_DESCRIPTOR {} +impl ::core::clone::Clone for PHYSICAL_ELEMENT_STATUS_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PHYSICAL_ELEMENT_STATUS_REQUEST { + pub Version: u32, + pub Size: u32, + pub StartingElement: u32, + pub Filter: u8, + pub ReportType: u8, + pub Reserved: [u8; 2], +} +impl ::core::marker::Copy for PHYSICAL_ELEMENT_STATUS_REQUEST {} +impl ::core::clone::Clone for PHYSICAL_ELEMENT_STATUS_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PLEX_READ_DATA_REQUEST { + pub ByteOffset: i64, + pub ByteLength: u32, + pub PlexNumber: u32, +} +impl ::core::marker::Copy for PLEX_READ_DATA_REQUEST {} +impl ::core::clone::Clone for PLEX_READ_DATA_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PREVENT_MEDIA_REMOVAL { + pub PreventMediaRemoval: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PREVENT_MEDIA_REMOVAL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PREVENT_MEDIA_REMOVAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_BAD_RANGES_INPUT { + pub Flags: u32, + pub NumRanges: u32, + pub Ranges: [QUERY_BAD_RANGES_INPUT_RANGE; 1], +} +impl ::core::marker::Copy for QUERY_BAD_RANGES_INPUT {} +impl ::core::clone::Clone for QUERY_BAD_RANGES_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_BAD_RANGES_INPUT_RANGE { + pub StartOffset: u64, + pub LengthInBytes: u64, +} +impl ::core::marker::Copy for QUERY_BAD_RANGES_INPUT_RANGE {} +impl ::core::clone::Clone for QUERY_BAD_RANGES_INPUT_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_BAD_RANGES_OUTPUT { + pub Flags: u32, + pub NumBadRanges: u32, + pub NextOffsetToLookUp: u64, + pub BadRanges: [QUERY_BAD_RANGES_OUTPUT_RANGE; 1], +} +impl ::core::marker::Copy for QUERY_BAD_RANGES_OUTPUT {} +impl ::core::clone::Clone for QUERY_BAD_RANGES_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_BAD_RANGES_OUTPUT_RANGE { + pub Flags: u32, + pub Reserved: u32, + pub StartOffset: u64, + pub LengthInBytes: u64, +} +impl ::core::marker::Copy for QUERY_BAD_RANGES_OUTPUT_RANGE {} +impl ::core::clone::Clone for QUERY_BAD_RANGES_OUTPUT_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_FILE_LAYOUT_INPUT { + pub Anonymous: QUERY_FILE_LAYOUT_INPUT_0, + pub Flags: u32, + pub FilterType: QUERY_FILE_LAYOUT_FILTER_TYPE, + pub Reserved: u32, + pub Filter: QUERY_FILE_LAYOUT_INPUT_1, +} +impl ::core::marker::Copy for QUERY_FILE_LAYOUT_INPUT {} +impl ::core::clone::Clone for QUERY_FILE_LAYOUT_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union QUERY_FILE_LAYOUT_INPUT_0 { + pub FilterEntryCount: u32, + pub NumberOfPairs: u32, +} +impl ::core::marker::Copy for QUERY_FILE_LAYOUT_INPUT_0 {} +impl ::core::clone::Clone for QUERY_FILE_LAYOUT_INPUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union QUERY_FILE_LAYOUT_INPUT_1 { + pub ClusterRanges: [CLUSTER_RANGE; 1], + pub FileReferenceRanges: [FILE_REFERENCE_RANGE; 1], + pub StorageReserveIds: [STORAGE_RESERVE_ID; 1], +} +impl ::core::marker::Copy for QUERY_FILE_LAYOUT_INPUT_1 {} +impl ::core::clone::Clone for QUERY_FILE_LAYOUT_INPUT_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_FILE_LAYOUT_OUTPUT { + pub FileEntryCount: u32, + pub FirstFileOffset: u32, + pub Flags: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for QUERY_FILE_LAYOUT_OUTPUT {} +impl ::core::clone::Clone for QUERY_FILE_LAYOUT_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READ_ELEMENT_ADDRESS_INFO { + pub NumberOfElements: u32, + pub ElementStatus: [CHANGER_ELEMENT_STATUS; 1], +} +impl ::core::marker::Copy for READ_ELEMENT_ADDRESS_INFO {} +impl ::core::clone::Clone for READ_ELEMENT_ADDRESS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READ_FILE_USN_DATA { + pub MinMajorVersion: u16, + pub MaxMajorVersion: u16, +} +impl ::core::marker::Copy for READ_FILE_USN_DATA {} +impl ::core::clone::Clone for READ_FILE_USN_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READ_USN_JOURNAL_DATA_V0 { + pub StartUsn: i64, + pub ReasonMask: u32, + pub ReturnOnlyOnClose: u32, + pub Timeout: u64, + pub BytesToWaitFor: u64, + pub UsnJournalID: u64, +} +impl ::core::marker::Copy for READ_USN_JOURNAL_DATA_V0 {} +impl ::core::clone::Clone for READ_USN_JOURNAL_DATA_V0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct READ_USN_JOURNAL_DATA_V1 { + pub StartUsn: i64, + pub ReasonMask: u32, + pub ReturnOnlyOnClose: u32, + pub Timeout: u64, + pub BytesToWaitFor: u64, + pub UsnJournalID: u64, + pub MinMajorVersion: u16, + pub MaxMajorVersion: u16, +} +impl ::core::marker::Copy for READ_USN_JOURNAL_DATA_V1 {} +impl ::core::clone::Clone for READ_USN_JOURNAL_DATA_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REASSIGN_BLOCKS { + pub Reserved: u16, + pub Count: u16, + pub BlockNumber: [u32; 1], +} +impl ::core::marker::Copy for REASSIGN_BLOCKS {} +impl ::core::clone::Clone for REASSIGN_BLOCKS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct REASSIGN_BLOCKS_EX { + pub Reserved: u16, + pub Count: u16, + pub BlockNumber: [i64; 1], +} +impl ::core::marker::Copy for REASSIGN_BLOCKS_EX {} +impl ::core::clone::Clone for REASSIGN_BLOCKS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_SMR_VOLUME_GC_PARAMETERS { + pub Version: u32, + pub Flags: u32, + pub Action: REFS_SMR_VOLUME_GC_ACTION, + pub Method: REFS_SMR_VOLUME_GC_METHOD, + pub IoGranularity: u32, + pub CompressionFormat: u32, + pub Unused: [u64; 8], +} +impl ::core::marker::Copy for REFS_SMR_VOLUME_GC_PARAMETERS {} +impl ::core::clone::Clone for REFS_SMR_VOLUME_GC_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_SMR_VOLUME_INFO_OUTPUT { + pub Version: u32, + pub Flags: u32, + pub SizeOfRandomlyWritableTier: i64, + pub FreeSpaceInRandomlyWritableTier: i64, + pub SizeofSMRTier: i64, + pub FreeSpaceInSMRTier: i64, + pub UsableFreeSpaceInSMRTier: i64, + pub VolumeGcState: REFS_SMR_VOLUME_GC_STATE, + pub VolumeGcLastStatus: u32, + pub CurrentGcBandFillPercentage: u32, + pub Unused: [u64; 6], +} +impl ::core::marker::Copy for REFS_SMR_VOLUME_INFO_OUTPUT {} +impl ::core::clone::Clone for REFS_SMR_VOLUME_INFO_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REFS_VOLUME_DATA_BUFFER { + pub ByteCount: u32, + pub MajorVersion: u32, + pub MinorVersion: u32, + pub BytesPerPhysicalSector: u32, + pub VolumeSerialNumber: i64, + pub NumberSectors: i64, + pub TotalClusters: i64, + pub FreeClusters: i64, + pub TotalReserved: i64, + pub BytesPerSector: u32, + pub BytesPerCluster: u32, + pub MaximumSizeOfResidentFile: i64, + pub FastTierDataFillRatio: u16, + pub SlowTierDataFillRatio: u16, + pub DestagesFastTierToSlowTierRate: u32, + pub Reserved: [i64; 9], +} +impl ::core::marker::Copy for REFS_VOLUME_DATA_BUFFER {} +impl ::core::clone::Clone for REFS_VOLUME_DATA_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REMOVE_ELEMENT_AND_TRUNCATE_REQUEST { + pub Version: u32, + pub Size: u32, + pub RequestCapacity: u64, + pub ElementIdentifier: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for REMOVE_ELEMENT_AND_TRUNCATE_REQUEST {} +impl ::core::clone::Clone for REMOVE_ELEMENT_AND_TRUNCATE_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPAIR_COPIES_INPUT { + pub Size: u32, + pub Flags: u32, + pub FileOffset: i64, + pub Length: u32, + pub SourceCopy: u32, + pub NumberOfRepairCopies: u32, + pub RepairCopies: [u32; 1], +} +impl ::core::marker::Copy for REPAIR_COPIES_INPUT {} +impl ::core::clone::Clone for REPAIR_COPIES_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REPAIR_COPIES_OUTPUT { + pub Size: u32, + pub Status: u32, + pub ResumeFileOffset: i64, +} +impl ::core::marker::Copy for REPAIR_COPIES_OUTPUT {} +impl ::core::clone::Clone for REPAIR_COPIES_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REQUEST_OPLOCK_INPUT_BUFFER { + pub StructureVersion: u16, + pub StructureLength: u16, + pub RequestedOplockLevel: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for REQUEST_OPLOCK_INPUT_BUFFER {} +impl ::core::clone::Clone for REQUEST_OPLOCK_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REQUEST_OPLOCK_OUTPUT_BUFFER { + pub StructureVersion: u16, + pub StructureLength: u16, + pub OriginalOplockLevel: u32, + pub NewOplockLevel: u32, + pub Flags: u32, + pub AccessMode: u32, + pub ShareMode: u16, +} +impl ::core::marker::Copy for REQUEST_OPLOCK_OUTPUT_BUFFER {} +impl ::core::clone::Clone for REQUEST_OPLOCK_OUTPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REQUEST_RAW_ENCRYPTED_DATA { + pub FileOffset: i64, + pub Length: u32, +} +impl ::core::marker::Copy for REQUEST_RAW_ENCRYPTED_DATA {} +impl ::core::clone::Clone for REQUEST_RAW_ENCRYPTED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER { + pub ExtentCount: u32, + pub StartingVcn: i64, + pub Extents: [RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER_0; 1], +} +impl ::core::marker::Copy for RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER {} +impl ::core::clone::Clone for RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER_0 { + pub NextVcn: i64, + pub Lcn: i64, + pub ReferenceCount: u32, +} +impl ::core::marker::Copy for RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER_0 {} +impl ::core::clone::Clone for RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RETRIEVAL_POINTERS_BUFFER { + pub ExtentCount: u32, + pub StartingVcn: i64, + pub Extents: [RETRIEVAL_POINTERS_BUFFER_0; 1], +} +impl ::core::marker::Copy for RETRIEVAL_POINTERS_BUFFER {} +impl ::core::clone::Clone for RETRIEVAL_POINTERS_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RETRIEVAL_POINTERS_BUFFER_0 { + pub NextVcn: i64, + pub Lcn: i64, +} +impl ::core::marker::Copy for RETRIEVAL_POINTERS_BUFFER_0 {} +impl ::core::clone::Clone for RETRIEVAL_POINTERS_BUFFER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RETRIEVAL_POINTER_BASE { + pub FileAreaOffset: i64, +} +impl ::core::marker::Copy for RETRIEVAL_POINTER_BASE {} +impl ::core::clone::Clone for RETRIEVAL_POINTER_BASE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RETRIEVAL_POINTER_COUNT { + pub ExtentCount: u32, +} +impl ::core::marker::Copy for RETRIEVAL_POINTER_COUNT {} +impl ::core::clone::Clone for RETRIEVAL_POINTER_COUNT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO { + pub Version: u32, + pub Size: u32, + pub DeviceCount: u32, + pub Devices: [SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO; 1], +} +impl ::core::marker::Copy for SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO {} +impl ::core::clone::Clone for SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO { + pub DeviceGuid: ::windows_sys::core::GUID, + pub DeviceNumber: u32, + pub Flags: SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO_0, + pub DeviceSize: u64, +} +impl ::core::marker::Copy for SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO {} +impl ::core::clone::Clone for SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO_0 {} +impl ::core::clone::Clone for SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SCM_BUS_DEDICATED_MEMORY_STATE { + pub ActivateState: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SCM_BUS_DEDICATED_MEMORY_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SCM_BUS_DEDICATED_MEMORY_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_BUS_PROPERTY_QUERY { + pub Version: u32, + pub Size: u32, + pub PropertyId: SCM_BUS_PROPERTY_ID, + pub QueryType: SCM_BUS_QUERY_TYPE, + pub AdditionalParameters: [u8; 1], +} +impl ::core::marker::Copy for SCM_BUS_PROPERTY_QUERY {} +impl ::core::clone::Clone for SCM_BUS_PROPERTY_QUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_BUS_PROPERTY_SET { + pub Version: u32, + pub Size: u32, + pub PropertyId: SCM_BUS_PROPERTY_ID, + pub SetType: SCM_BUS_SET_TYPE, + pub AdditionalParameters: [u8; 1], +} +impl ::core::marker::Copy for SCM_BUS_PROPERTY_SET {} +impl ::core::clone::Clone for SCM_BUS_PROPERTY_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SCM_BUS_RUNTIME_FW_ACTIVATION_INFO { + pub Version: u32, + pub Size: u32, + pub RuntimeFwActivationSupported: super::super::Foundation::BOOLEAN, + pub FirmwareActivationState: SCM_BUS_FIRMWARE_ACTIVATION_STATE, + pub FirmwareActivationCapability: SCM_BUS_RUNTIME_FW_ACTIVATION_INFO_0, + pub EstimatedFirmwareActivationTimeInUSecs: u64, + pub EstimatedProcessorAccessQuiesceTimeInUSecs: u64, + pub EstimatedIOAccessQuiesceTimeInUSecs: u64, + pub PlatformSupportedMaxIOAccessQuiesceTimeInUSecs: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SCM_BUS_RUNTIME_FW_ACTIVATION_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SCM_BUS_RUNTIME_FW_ACTIVATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SCM_BUS_RUNTIME_FW_ACTIVATION_INFO_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SCM_BUS_RUNTIME_FW_ACTIVATION_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SCM_BUS_RUNTIME_FW_ACTIVATION_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_INTERLEAVED_PD_INFO { + pub DeviceHandle: u32, + pub DeviceGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for SCM_INTERLEAVED_PD_INFO {} +impl ::core::clone::Clone for SCM_INTERLEAVED_PD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_LD_INTERLEAVE_SET_INFO { + pub Version: u32, + pub Size: u32, + pub InterleaveSetSize: u32, + pub InterleaveSet: [SCM_INTERLEAVED_PD_INFO; 1], +} +impl ::core::marker::Copy for SCM_LD_INTERLEAVE_SET_INFO {} +impl ::core::clone::Clone for SCM_LD_INTERLEAVE_SET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_LOGICAL_DEVICES { + pub Version: u32, + pub Size: u32, + pub DeviceCount: u32, + pub Devices: [SCM_LOGICAL_DEVICE_INSTANCE; 1], +} +impl ::core::marker::Copy for SCM_LOGICAL_DEVICES {} +impl ::core::clone::Clone for SCM_LOGICAL_DEVICES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_LOGICAL_DEVICE_INSTANCE { + pub Version: u32, + pub Size: u32, + pub DeviceGuid: ::windows_sys::core::GUID, + pub SymbolicLink: [u16; 256], +} +impl ::core::marker::Copy for SCM_LOGICAL_DEVICE_INSTANCE {} +impl ::core::clone::Clone for SCM_LOGICAL_DEVICE_INSTANCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_DESCRIPTOR_HEADER { + pub Version: u32, + pub Size: u32, +} +impl ::core::marker::Copy for SCM_PD_DESCRIPTOR_HEADER {} +impl ::core::clone::Clone for SCM_PD_DESCRIPTOR_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_DEVICE_HANDLE { + pub Version: u32, + pub Size: u32, + pub DeviceGuid: ::windows_sys::core::GUID, + pub DeviceHandle: u32, +} +impl ::core::marker::Copy for SCM_PD_DEVICE_HANDLE {} +impl ::core::clone::Clone for SCM_PD_DEVICE_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_DEVICE_INFO { + pub Version: u32, + pub Size: u32, + pub DeviceGuid: ::windows_sys::core::GUID, + pub UnsafeShutdownCount: u32, + pub PersistentMemorySizeInBytes: u64, + pub VolatileMemorySizeInBytes: u64, + pub TotalMemorySizeInBytes: u64, + pub SlotNumber: u32, + pub DeviceHandle: u32, + pub PhysicalId: u16, + pub NumberOfFormatInterfaceCodes: u8, + pub FormatInterfaceCodes: [u16; 8], + pub VendorId: u32, + pub ProductId: u32, + pub SubsystemDeviceId: u32, + pub SubsystemVendorId: u32, + pub ManufacturingLocation: u8, + pub ManufacturingWeek: u8, + pub ManufacturingYear: u8, + pub SerialNumber4Byte: u32, + pub SerialNumberLengthInChars: u32, + pub SerialNumber: [u8; 1], +} +impl ::core::marker::Copy for SCM_PD_DEVICE_INFO {} +impl ::core::clone::Clone for SCM_PD_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_DEVICE_SPECIFIC_INFO { + pub Version: u32, + pub Size: u32, + pub NumberOfProperties: u32, + pub DeviceSpecificProperties: [SCM_PD_DEVICE_SPECIFIC_PROPERTY; 1], +} +impl ::core::marker::Copy for SCM_PD_DEVICE_SPECIFIC_INFO {} +impl ::core::clone::Clone for SCM_PD_DEVICE_SPECIFIC_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_DEVICE_SPECIFIC_PROPERTY { + pub Name: [u16; 128], + pub Value: i64, +} +impl ::core::marker::Copy for SCM_PD_DEVICE_SPECIFIC_PROPERTY {} +impl ::core::clone::Clone for SCM_PD_DEVICE_SPECIFIC_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_FIRMWARE_ACTIVATE { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub Slot: u8, +} +impl ::core::marker::Copy for SCM_PD_FIRMWARE_ACTIVATE {} +impl ::core::clone::Clone for SCM_PD_FIRMWARE_ACTIVATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_FIRMWARE_DOWNLOAD { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub Slot: u8, + pub Reserved: [u8; 3], + pub Offset: u64, + pub FirmwareImageSizeInBytes: u32, + pub FirmwareImage: [u8; 1], +} +impl ::core::marker::Copy for SCM_PD_FIRMWARE_DOWNLOAD {} +impl ::core::clone::Clone for SCM_PD_FIRMWARE_DOWNLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_FIRMWARE_INFO { + pub Version: u32, + pub Size: u32, + pub ActiveSlot: u8, + pub NextActiveSlot: u8, + pub SlotCount: u8, + pub Slots: [SCM_PD_FIRMWARE_SLOT_INFO; 1], +} +impl ::core::marker::Copy for SCM_PD_FIRMWARE_INFO {} +impl ::core::clone::Clone for SCM_PD_FIRMWARE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_FIRMWARE_SLOT_INFO { + pub Version: u32, + pub Size: u32, + pub SlotNumber: u8, + pub _bitfield: u8, + pub Reserved1: [u8; 6], + pub Revision: [u8; 32], +} +impl ::core::marker::Copy for SCM_PD_FIRMWARE_SLOT_INFO {} +impl ::core::clone::Clone for SCM_PD_FIRMWARE_SLOT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_FRU_ID_STRING { + pub Version: u32, + pub Size: u32, + pub IdentifierSize: u32, + pub Identifier: [u8; 1], +} +impl ::core::marker::Copy for SCM_PD_FRU_ID_STRING {} +impl ::core::clone::Clone for SCM_PD_FRU_ID_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_HEALTH_NOTIFICATION_DATA { + pub DeviceGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for SCM_PD_HEALTH_NOTIFICATION_DATA {} +impl ::core::clone::Clone for SCM_PD_HEALTH_NOTIFICATION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_LOCATION_STRING { + pub Version: u32, + pub Size: u32, + pub Location: [u16; 1], +} +impl ::core::marker::Copy for SCM_PD_LOCATION_STRING {} +impl ::core::clone::Clone for SCM_PD_LOCATION_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_MANAGEMENT_STATUS { + pub Version: u32, + pub Size: u32, + pub Health: SCM_PD_HEALTH_STATUS, + pub NumberOfOperationalStatus: u32, + pub NumberOfAdditionalReasons: u32, + pub OperationalStatus: [SCM_PD_OPERATIONAL_STATUS; 16], + pub AdditionalReasons: [SCM_PD_OPERATIONAL_STATUS_REASON; 1], +} +impl ::core::marker::Copy for SCM_PD_MANAGEMENT_STATUS {} +impl ::core::clone::Clone for SCM_PD_MANAGEMENT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_PASSTHROUGH_INPUT { + pub Version: u32, + pub Size: u32, + pub ProtocolGuid: ::windows_sys::core::GUID, + pub DataSize: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for SCM_PD_PASSTHROUGH_INPUT {} +impl ::core::clone::Clone for SCM_PD_PASSTHROUGH_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_PASSTHROUGH_INVDIMM_INPUT { + pub Opcode: u32, + pub OpcodeParametersLength: u32, + pub OpcodeParameters: [u8; 1], +} +impl ::core::marker::Copy for SCM_PD_PASSTHROUGH_INVDIMM_INPUT {} +impl ::core::clone::Clone for SCM_PD_PASSTHROUGH_INVDIMM_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT { + pub GeneralStatus: u16, + pub ExtendedStatus: u16, + pub OutputDataLength: u32, + pub OutputData: [u8; 1], +} +impl ::core::marker::Copy for SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT {} +impl ::core::clone::Clone for SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_PASSTHROUGH_OUTPUT { + pub Version: u32, + pub Size: u32, + pub ProtocolGuid: ::windows_sys::core::GUID, + pub DataSize: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for SCM_PD_PASSTHROUGH_OUTPUT {} +impl ::core::clone::Clone for SCM_PD_PASSTHROUGH_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_PROPERTY_QUERY { + pub Version: u32, + pub Size: u32, + pub PropertyId: SCM_PD_PROPERTY_ID, + pub QueryType: SCM_PD_QUERY_TYPE, + pub AdditionalParameters: [u8; 1], +} +impl ::core::marker::Copy for SCM_PD_PROPERTY_QUERY {} +impl ::core::clone::Clone for SCM_PD_PROPERTY_QUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_PROPERTY_SET { + pub Version: u32, + pub Size: u32, + pub PropertyId: SCM_PD_PROPERTY_ID, + pub SetType: SCM_PD_SET_TYPE, + pub AdditionalParameters: [u8; 1], +} +impl ::core::marker::Copy for SCM_PD_PROPERTY_SET {} +impl ::core::clone::Clone for SCM_PD_PROPERTY_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_REINITIALIZE_MEDIA_INPUT { + pub Version: u32, + pub Size: u32, + pub Options: SCM_PD_REINITIALIZE_MEDIA_INPUT_0, +} +impl ::core::marker::Copy for SCM_PD_REINITIALIZE_MEDIA_INPUT {} +impl ::core::clone::Clone for SCM_PD_REINITIALIZE_MEDIA_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_REINITIALIZE_MEDIA_INPUT_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for SCM_PD_REINITIALIZE_MEDIA_INPUT_0 {} +impl ::core::clone::Clone for SCM_PD_REINITIALIZE_MEDIA_INPUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_REINITIALIZE_MEDIA_OUTPUT { + pub Version: u32, + pub Size: u32, + pub Status: SCM_PD_MEDIA_REINITIALIZATION_STATUS, +} +impl ::core::marker::Copy for SCM_PD_REINITIALIZE_MEDIA_OUTPUT {} +impl ::core::clone::Clone for SCM_PD_REINITIALIZE_MEDIA_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE { + pub ArmState: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PD_RUNTIME_FW_ACTIVATION_INFO { + pub Version: u32, + pub Size: u32, + pub LastFirmwareActivationStatus: SCM_PD_LAST_FW_ACTIVATION_STATUS, + pub FirmwareActivationState: SCM_PD_FIRMWARE_ACTIVATION_STATE, +} +impl ::core::marker::Copy for SCM_PD_RUNTIME_FW_ACTIVATION_INFO {} +impl ::core::clone::Clone for SCM_PD_RUNTIME_FW_ACTIVATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PHYSICAL_DEVICES { + pub Version: u32, + pub Size: u32, + pub DeviceCount: u32, + pub Devices: [SCM_PHYSICAL_DEVICE_INSTANCE; 1], +} +impl ::core::marker::Copy for SCM_PHYSICAL_DEVICES {} +impl ::core::clone::Clone for SCM_PHYSICAL_DEVICES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_PHYSICAL_DEVICE_INSTANCE { + pub Version: u32, + pub Size: u32, + pub NfitHandle: u32, + pub SymbolicLink: [u16; 256], +} +impl ::core::marker::Copy for SCM_PHYSICAL_DEVICE_INSTANCE {} +impl ::core::clone::Clone for SCM_PHYSICAL_DEVICE_INSTANCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_REGION { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub NfitHandle: u32, + pub LogicalDeviceGuid: ::windows_sys::core::GUID, + pub AddressRangeType: ::windows_sys::core::GUID, + pub AssociatedId: u32, + pub Length: u64, + pub StartingDPA: u64, + pub BaseSPA: u64, + pub SPAOffset: u64, + pub RegionOffset: u64, +} +impl ::core::marker::Copy for SCM_REGION {} +impl ::core::clone::Clone for SCM_REGION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCM_REGIONS { + pub Version: u32, + pub Size: u32, + pub RegionCount: u32, + pub Regions: [SCM_REGION; 1], +} +impl ::core::marker::Copy for SCM_REGIONS {} +impl ::core::clone::Clone for SCM_REGIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SD_CHANGE_MACHINE_SID_INPUT { + pub CurrentMachineSIDOffset: u16, + pub CurrentMachineSIDLength: u16, + pub NewMachineSIDOffset: u16, + pub NewMachineSIDLength: u16, +} +impl ::core::marker::Copy for SD_CHANGE_MACHINE_SID_INPUT {} +impl ::core::clone::Clone for SD_CHANGE_MACHINE_SID_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SD_CHANGE_MACHINE_SID_OUTPUT { + pub NumSDChangedSuccess: u64, + pub NumSDChangedFail: u64, + pub NumSDUnused: u64, + pub NumSDTotal: u64, + pub NumMftSDChangedSuccess: u64, + pub NumMftSDChangedFail: u64, + pub NumMftSDTotal: u64, +} +impl ::core::marker::Copy for SD_CHANGE_MACHINE_SID_OUTPUT {} +impl ::core::clone::Clone for SD_CHANGE_MACHINE_SID_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SD_ENUM_SDS_ENTRY { + pub Hash: u32, + pub SecurityId: u32, + pub Offset: u64, + pub Length: u32, + pub Descriptor: [u8; 1], +} +impl ::core::marker::Copy for SD_ENUM_SDS_ENTRY {} +impl ::core::clone::Clone for SD_ENUM_SDS_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SD_ENUM_SDS_INPUT { + pub StartingOffset: u64, + pub MaxSDEntriesToReturn: u64, +} +impl ::core::marker::Copy for SD_ENUM_SDS_INPUT {} +impl ::core::clone::Clone for SD_ENUM_SDS_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SD_ENUM_SDS_OUTPUT { + pub NextOffset: u64, + pub NumSDEntriesReturned: u64, + pub NumSDBytesReturned: u64, + pub SDEntry: [SD_ENUM_SDS_ENTRY; 1], +} +impl ::core::marker::Copy for SD_ENUM_SDS_OUTPUT {} +impl ::core::clone::Clone for SD_ENUM_SDS_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SD_GLOBAL_CHANGE_INPUT { + pub Flags: u32, + pub ChangeType: u32, + pub Anonymous: SD_GLOBAL_CHANGE_INPUT_0, +} +impl ::core::marker::Copy for SD_GLOBAL_CHANGE_INPUT {} +impl ::core::clone::Clone for SD_GLOBAL_CHANGE_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SD_GLOBAL_CHANGE_INPUT_0 { + pub SdChange: SD_CHANGE_MACHINE_SID_INPUT, + pub SdQueryStats: SD_QUERY_STATS_INPUT, + pub SdEnumSds: SD_ENUM_SDS_INPUT, +} +impl ::core::marker::Copy for SD_GLOBAL_CHANGE_INPUT_0 {} +impl ::core::clone::Clone for SD_GLOBAL_CHANGE_INPUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SD_GLOBAL_CHANGE_OUTPUT { + pub Flags: u32, + pub ChangeType: u32, + pub Anonymous: SD_GLOBAL_CHANGE_OUTPUT_0, +} +impl ::core::marker::Copy for SD_GLOBAL_CHANGE_OUTPUT {} +impl ::core::clone::Clone for SD_GLOBAL_CHANGE_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SD_GLOBAL_CHANGE_OUTPUT_0 { + pub SdChange: SD_CHANGE_MACHINE_SID_OUTPUT, + pub SdQueryStats: SD_QUERY_STATS_OUTPUT, + pub SdEnumSds: SD_ENUM_SDS_OUTPUT, +} +impl ::core::marker::Copy for SD_GLOBAL_CHANGE_OUTPUT_0 {} +impl ::core::clone::Clone for SD_GLOBAL_CHANGE_OUTPUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SD_QUERY_STATS_INPUT { + pub Reserved: u32, +} +impl ::core::marker::Copy for SD_QUERY_STATS_INPUT {} +impl ::core::clone::Clone for SD_QUERY_STATS_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SD_QUERY_STATS_OUTPUT { + pub SdsStreamSize: u64, + pub SdsAllocationSize: u64, + pub SiiStreamSize: u64, + pub SiiAllocationSize: u64, + pub SdhStreamSize: u64, + pub SdhAllocationSize: u64, + pub NumSDTotal: u64, + pub NumSDUnused: u64, +} +impl ::core::marker::Copy for SD_QUERY_STATS_OUTPUT {} +impl ::core::clone::Clone for SD_QUERY_STATS_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SENDCMDINPARAMS { + pub cBufferSize: u32, + pub irDriveRegs: IDEREGS, + pub bDriveNumber: u8, + pub bReserved: [u8; 3], + pub dwReserved: [u32; 4], + pub bBuffer: [u8; 1], +} +impl ::core::marker::Copy for SENDCMDINPARAMS {} +impl ::core::clone::Clone for SENDCMDINPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SENDCMDOUTPARAMS { + pub cBufferSize: u32, + pub DriverStatus: DRIVERSTATUS, + pub bBuffer: [u8; 1], +} +impl ::core::marker::Copy for SENDCMDOUTPARAMS {} +impl ::core::clone::Clone for SENDCMDOUTPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT { + pub Flags: u32, + pub AlignmentShift: u32, + pub FileOffsetToAlign: u64, + pub FallbackAlignmentShift: u32, +} +impl ::core::marker::Copy for SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT {} +impl ::core::clone::Clone for SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SET_DISK_ATTRIBUTES { + pub Version: u32, + pub Persist: super::super::Foundation::BOOLEAN, + pub Reserved1: [u8; 3], + pub Attributes: u64, + pub AttributesMask: u64, + pub Reserved2: [u32; 4], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SET_DISK_ATTRIBUTES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SET_DISK_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SET_PARTITION_INFORMATION { + pub PartitionType: u8, +} +impl ::core::marker::Copy for SET_PARTITION_INFORMATION {} +impl ::core::clone::Clone for SET_PARTITION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SET_PARTITION_INFORMATION_EX { + pub PartitionStyle: PARTITION_STYLE, + pub Anonymous: SET_PARTITION_INFORMATION_EX_0, +} +impl ::core::marker::Copy for SET_PARTITION_INFORMATION_EX {} +impl ::core::clone::Clone for SET_PARTITION_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SET_PARTITION_INFORMATION_EX_0 { + pub Mbr: SET_PARTITION_INFORMATION, + pub Gpt: PARTITION_INFORMATION_GPT, +} +impl ::core::marker::Copy for SET_PARTITION_INFORMATION_EX_0 {} +impl ::core::clone::Clone for SET_PARTITION_INFORMATION_EX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SET_PURGE_FAILURE_MODE_INPUT { + pub Flags: u32, +} +impl ::core::marker::Copy for SET_PURGE_FAILURE_MODE_INPUT {} +impl ::core::clone::Clone for SET_PURGE_FAILURE_MODE_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHRINK_VOLUME_INFORMATION { + pub ShrinkRequestType: SHRINK_VOLUME_REQUEST_TYPES, + pub Flags: u64, + pub NewNumberOfSectors: i64, +} +impl ::core::marker::Copy for SHRINK_VOLUME_INFORMATION {} +impl ::core::clone::Clone for SHRINK_VOLUME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SI_COPYFILE { + pub SourceFileNameLength: u32, + pub DestinationFileNameLength: u32, + pub Flags: u32, + pub FileNameBuffer: [u16; 1], +} +impl ::core::marker::Copy for SI_COPYFILE {} +impl ::core::clone::Clone for SI_COPYFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SMB_SHARE_FLUSH_AND_PURGE_INPUT { + pub Version: u16, +} +impl ::core::marker::Copy for SMB_SHARE_FLUSH_AND_PURGE_INPUT {} +impl ::core::clone::Clone for SMB_SHARE_FLUSH_AND_PURGE_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SMB_SHARE_FLUSH_AND_PURGE_OUTPUT { + pub cEntriesPurged: u32, +} +impl ::core::marker::Copy for SMB_SHARE_FLUSH_AND_PURGE_OUTPUT {} +impl ::core::clone::Clone for SMB_SHARE_FLUSH_AND_PURGE_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STARTING_LCN_INPUT_BUFFER { + pub StartingLcn: i64, +} +impl ::core::marker::Copy for STARTING_LCN_INPUT_BUFFER {} +impl ::core::clone::Clone for STARTING_LCN_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STARTING_LCN_INPUT_BUFFER_EX { + pub StartingLcn: i64, + pub Flags: u32, +} +impl ::core::marker::Copy for STARTING_LCN_INPUT_BUFFER_EX {} +impl ::core::clone::Clone for STARTING_LCN_INPUT_BUFFER_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STARTING_VCN_INPUT_BUFFER { + pub StartingVcn: i64, +} +impl ::core::marker::Copy for STARTING_VCN_INPUT_BUFFER {} +impl ::core::clone::Clone for STARTING_VCN_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub BytesPerCacheLine: u32, + pub BytesOffsetForCacheAlignment: u32, + pub BytesPerLogicalSector: u32, + pub BytesPerPhysicalSector: u32, + pub BytesOffsetForSectorAlignment: u32, +} +impl ::core::marker::Copy for STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_ADAPTER_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub MaximumTransferLength: u32, + pub MaximumPhysicalPages: u32, + pub AlignmentMask: u32, + pub AdapterUsesPio: super::super::Foundation::BOOLEAN, + pub AdapterScansDown: super::super::Foundation::BOOLEAN, + pub CommandQueueing: super::super::Foundation::BOOLEAN, + pub AcceleratedTransfer: super::super::Foundation::BOOLEAN, + pub BusType: u8, + pub BusMajorVersion: u16, + pub BusMinorVersion: u16, + pub SrbType: u8, + pub AddressType: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_ADAPTER_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_ADAPTER_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_ADAPTER_SERIAL_NUMBER { + pub Version: u32, + pub Size: u32, + pub SerialNumber: [u16; 128], +} +impl ::core::marker::Copy for STORAGE_ADAPTER_SERIAL_NUMBER {} +impl ::core::clone::Clone for STORAGE_ADAPTER_SERIAL_NUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_ALLOCATE_BC_STREAM_INPUT { + pub Version: u32, + pub RequestsPerPeriod: u32, + pub Period: u32, + pub RetryFailures: super::super::Foundation::BOOLEAN, + pub Discardable: super::super::Foundation::BOOLEAN, + pub Reserved1: [super::super::Foundation::BOOLEAN; 2], + pub AccessType: u32, + pub AccessMode: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_ALLOCATE_BC_STREAM_INPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_ALLOCATE_BC_STREAM_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_ALLOCATE_BC_STREAM_OUTPUT { + pub RequestSize: u64, + pub NumOutStandingRequests: u32, +} +impl ::core::marker::Copy for STORAGE_ALLOCATE_BC_STREAM_OUTPUT {} +impl ::core::clone::Clone for STORAGE_ALLOCATE_BC_STREAM_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_ATTRIBUTE_MGMT { + pub Version: u32, + pub Size: u32, + pub Action: STORAGE_ATTRIBUTE_MGMT_ACTION, + pub Attribute: u32, +} +impl ::core::marker::Copy for STORAGE_ATTRIBUTE_MGMT {} +impl ::core::clone::Clone for STORAGE_ATTRIBUTE_MGMT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_BREAK_RESERVATION_REQUEST { + pub Length: u32, + pub _unused: u8, + pub PathId: u8, + pub TargetId: u8, + pub Lun: u8, +} +impl ::core::marker::Copy for STORAGE_BREAK_RESERVATION_REQUEST {} +impl ::core::clone::Clone for STORAGE_BREAK_RESERVATION_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_BUS_RESET_REQUEST { + pub PathId: u8, +} +impl ::core::marker::Copy for STORAGE_BUS_RESET_REQUEST {} +impl ::core::clone::Clone for STORAGE_BUS_RESET_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_COUNTER { + pub Type: STORAGE_COUNTER_TYPE, + pub Value: STORAGE_COUNTER_0, +} +impl ::core::marker::Copy for STORAGE_COUNTER {} +impl ::core::clone::Clone for STORAGE_COUNTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union STORAGE_COUNTER_0 { + pub ManufactureDate: STORAGE_COUNTER_0_0, + pub AsUlonglong: u64, +} +impl ::core::marker::Copy for STORAGE_COUNTER_0 {} +impl ::core::clone::Clone for STORAGE_COUNTER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_COUNTER_0_0 { + pub Week: u32, + pub Year: u32, +} +impl ::core::marker::Copy for STORAGE_COUNTER_0_0 {} +impl ::core::clone::Clone for STORAGE_COUNTER_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_COUNTERS { + pub Version: u32, + pub Size: u32, + pub NumberOfCounters: u32, + pub Counters: [STORAGE_COUNTER; 1], +} +impl ::core::marker::Copy for STORAGE_COUNTERS {} +impl ::core::clone::Clone for STORAGE_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_CRYPTO_CAPABILITY { + pub Version: u32, + pub Size: u32, + pub CryptoCapabilityIndex: u32, + pub AlgorithmId: STORAGE_CRYPTO_ALGORITHM_ID, + pub KeySize: STORAGE_CRYPTO_KEY_SIZE, + pub DataUnitSizeBitmask: u32, +} +impl ::core::marker::Copy for STORAGE_CRYPTO_CAPABILITY {} +impl ::core::clone::Clone for STORAGE_CRYPTO_CAPABILITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_CRYPTO_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub NumKeysSupported: u32, + pub NumCryptoCapabilities: u32, + pub CryptoCapabilities: [STORAGE_CRYPTO_CAPABILITY; 1], +} +impl ::core::marker::Copy for STORAGE_CRYPTO_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_CRYPTO_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DESCRIPTOR_HEADER { + pub Version: u32, + pub Size: u32, +} +impl ::core::marker::Copy for STORAGE_DESCRIPTOR_HEADER {} +impl ::core::clone::Clone for STORAGE_DESCRIPTOR_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub Attributes: u64, +} +impl ::core::marker::Copy for STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +pub struct STORAGE_DEVICE_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub DeviceType: u8, + pub DeviceTypeModifier: u8, + pub RemovableMedia: super::super::Foundation::BOOLEAN, + pub CommandQueueing: super::super::Foundation::BOOLEAN, + pub VendorIdOffset: u32, + pub ProductIdOffset: u32, + pub ProductRevisionOffset: u32, + pub SerialNumberOffset: u32, + pub BusType: super::super::Storage::FileSystem::STORAGE_BUS_TYPE, + pub RawPropertiesLength: u32, + pub RawDeviceProperties: [u8; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::marker::Copy for STORAGE_DEVICE_DESCRIPTOR {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +impl ::core::clone::Clone for STORAGE_DEVICE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub NumberOfFaultDomains: u32, + pub FaultDomainIds: [::windows_sys::core::GUID; 1], +} +impl ::core::marker::Copy for STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_ID_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub NumberOfIdentifiers: u32, + pub Identifiers: [u8; 1], +} +impl ::core::marker::Copy for STORAGE_DEVICE_ID_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_DEVICE_ID_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub LunMaxIoCount: u32, + pub AdapterMaxIoCount: u32, +} +impl ::core::marker::Copy for STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_LED_STATE_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub State: u64, +} +impl ::core::marker::Copy for STORAGE_DEVICE_LED_STATE_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_DEVICE_LED_STATE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_LOCATION_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub Location: DEVICE_LOCATION, + pub StringOffset: u32, +} +impl ::core::marker::Copy for STORAGE_DEVICE_LOCATION_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_DEVICE_LOCATION_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_MANAGEMENT_STATUS { + pub Version: u32, + pub Size: u32, + pub Health: STORAGE_DISK_HEALTH_STATUS, + pub NumberOfOperationalStatus: u32, + pub NumberOfAdditionalReasons: u32, + pub OperationalStatus: [STORAGE_DISK_OPERATIONAL_STATUS; 16], + pub AdditionalReasons: [STORAGE_OPERATIONAL_REASON; 1], +} +impl ::core::marker::Copy for STORAGE_DEVICE_MANAGEMENT_STATUS {} +impl ::core::clone::Clone for STORAGE_DEVICE_MANAGEMENT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_NUMA_PROPERTY { + pub Version: u32, + pub Size: u32, + pub NumaNode: u32, +} +impl ::core::marker::Copy for STORAGE_DEVICE_NUMA_PROPERTY {} +impl ::core::clone::Clone for STORAGE_DEVICE_NUMA_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_NUMBER { + pub DeviceType: u32, + pub DeviceNumber: u32, + pub PartitionNumber: u32, +} +impl ::core::marker::Copy for STORAGE_DEVICE_NUMBER {} +impl ::core::clone::Clone for STORAGE_DEVICE_NUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_NUMBERS { + pub Version: u32, + pub Size: u32, + pub NumberOfDevices: u32, + pub Devices: [STORAGE_DEVICE_NUMBER; 1], +} +impl ::core::marker::Copy for STORAGE_DEVICE_NUMBERS {} +impl ::core::clone::Clone for STORAGE_DEVICE_NUMBERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_NUMBER_EX { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub DeviceType: u32, + pub DeviceNumber: u32, + pub DeviceGuid: ::windows_sys::core::GUID, + pub PartitionNumber: u32, +} +impl ::core::marker::Copy for STORAGE_DEVICE_NUMBER_EX {} +impl ::core::clone::Clone for STORAGE_DEVICE_NUMBER_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_POWER_CAP { + pub Version: u32, + pub Size: u32, + pub Units: STORAGE_DEVICE_POWER_CAP_UNITS, + pub MaxPower: u64, +} +impl ::core::marker::Copy for STORAGE_DEVICE_POWER_CAP {} +impl ::core::clone::Clone for STORAGE_DEVICE_POWER_CAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_RESILIENCY_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub NameOffset: u32, + pub NumberOfLogicalCopies: u32, + pub NumberOfPhysicalCopies: u32, + pub PhysicalDiskRedundancy: u32, + pub NumberOfColumns: u32, + pub Interleave: u32, +} +impl ::core::marker::Copy for STORAGE_DEVICE_RESILIENCY_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_DEVICE_RESILIENCY_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY { + pub Version: u32, + pub Size: u32, + pub SupportsSelfEncryption: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY_V2 { + pub Version: u32, + pub Size: u32, + pub SupportsSelfEncryption: super::super::Foundation::BOOLEAN, + pub EncryptionType: STORAGE_ENCRYPTION_TYPE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY_V2 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_TIERING_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub TotalNumberOfTiers: u32, + pub NumberOfTiersReturned: u32, + pub Tiers: [STORAGE_TIER; 1], +} +impl ::core::marker::Copy for STORAGE_DEVICE_TIERING_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_DEVICE_TIERING_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT { + pub Version: u32, + pub Size: u32, + pub UnsafeShutdownCount: u32, +} +impl ::core::marker::Copy for STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT {} +impl ::core::clone::Clone for STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DIAGNOSTIC_DATA { + pub Version: u32, + pub Size: u32, + pub ProviderId: ::windows_sys::core::GUID, + pub BufferSize: u32, + pub Reserved: u32, + pub DiagnosticDataBuffer: [u8; 1], +} +impl ::core::marker::Copy for STORAGE_DIAGNOSTIC_DATA {} +impl ::core::clone::Clone for STORAGE_DIAGNOSTIC_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_DIAGNOSTIC_REQUEST { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub TargetType: STORAGE_DIAGNOSTIC_TARGET_TYPE, + pub Level: STORAGE_DIAGNOSTIC_LEVEL, +} +impl ::core::marker::Copy for STORAGE_DIAGNOSTIC_REQUEST {} +impl ::core::clone::Clone for STORAGE_DIAGNOSTIC_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_EVENT_NOTIFICATION { + pub Version: u32, + pub Size: u32, + pub Events: u64, +} +impl ::core::marker::Copy for STORAGE_EVENT_NOTIFICATION {} +impl ::core::clone::Clone for STORAGE_EVENT_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_FAILURE_PREDICTION_CONFIG { + pub Version: u32, + pub Size: u32, + pub Set: super::super::Foundation::BOOLEAN, + pub Enabled: super::super::Foundation::BOOLEAN, + pub Reserved: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_FAILURE_PREDICTION_CONFIG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_FAILURE_PREDICTION_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_FRU_ID_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub IdentifierSize: u32, + pub Identifier: [u8; 1], +} +impl ::core::marker::Copy for STORAGE_FRU_ID_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_FRU_ID_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_GET_BC_PROPERTIES_OUTPUT { + pub MaximumRequestsPerPeriod: u32, + pub MinimumPeriod: u32, + pub MaximumRequestSize: u64, + pub EstimatedTimePerRequest: u32, + pub NumOutStandingRequests: u32, + pub RequestSize: u64, +} +impl ::core::marker::Copy for STORAGE_GET_BC_PROPERTIES_OUTPUT {} +impl ::core::clone::Clone for STORAGE_GET_BC_PROPERTIES_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_HOTPLUG_INFO { + pub Size: u32, + pub MediaRemovable: super::super::Foundation::BOOLEAN, + pub MediaHotplug: super::super::Foundation::BOOLEAN, + pub DeviceHotplug: super::super::Foundation::BOOLEAN, + pub WriteCacheEnableOverride: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_HOTPLUG_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_HOTPLUG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub EnduranceInfo: STORAGE_HW_ENDURANCE_INFO, +} +impl ::core::marker::Copy for STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_HW_ENDURANCE_INFO { + pub ValidFields: u32, + pub GroupId: u32, + pub Flags: STORAGE_HW_ENDURANCE_INFO_0, + pub LifePercentage: u32, + pub BytesReadCount: [u8; 16], + pub ByteWriteCount: [u8; 16], +} +impl ::core::marker::Copy for STORAGE_HW_ENDURANCE_INFO {} +impl ::core::clone::Clone for STORAGE_HW_ENDURANCE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_HW_ENDURANCE_INFO_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for STORAGE_HW_ENDURANCE_INFO_0 {} +impl ::core::clone::Clone for STORAGE_HW_ENDURANCE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_HW_FIRMWARE_ACTIVATE { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub Slot: u8, + pub Reserved0: [u8; 3], +} +impl ::core::marker::Copy for STORAGE_HW_FIRMWARE_ACTIVATE {} +impl ::core::clone::Clone for STORAGE_HW_FIRMWARE_ACTIVATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_HW_FIRMWARE_DOWNLOAD { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub Slot: u8, + pub Reserved: [u8; 3], + pub Offset: u64, + pub BufferSize: u64, + pub ImageBuffer: [u8; 1], +} +impl ::core::marker::Copy for STORAGE_HW_FIRMWARE_DOWNLOAD {} +impl ::core::clone::Clone for STORAGE_HW_FIRMWARE_DOWNLOAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_HW_FIRMWARE_DOWNLOAD_V2 { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub Slot: u8, + pub Reserved: [u8; 3], + pub Offset: u64, + pub BufferSize: u64, + pub ImageSize: u32, + pub Reserved2: u32, + pub ImageBuffer: [u8; 1], +} +impl ::core::marker::Copy for STORAGE_HW_FIRMWARE_DOWNLOAD_V2 {} +impl ::core::clone::Clone for STORAGE_HW_FIRMWARE_DOWNLOAD_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_HW_FIRMWARE_INFO { + pub Version: u32, + pub Size: u32, + pub _bitfield: u8, + pub SlotCount: u8, + pub ActiveSlot: u8, + pub PendingActivateSlot: u8, + pub FirmwareShared: super::super::Foundation::BOOLEAN, + pub Reserved: [u8; 3], + pub ImagePayloadAlignment: u32, + pub ImagePayloadMaxSize: u32, + pub Slot: [STORAGE_HW_FIRMWARE_SLOT_INFO; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_HW_FIRMWARE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_HW_FIRMWARE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_HW_FIRMWARE_INFO_QUERY { + pub Version: u32, + pub Size: u32, + pub Flags: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for STORAGE_HW_FIRMWARE_INFO_QUERY {} +impl ::core::clone::Clone for STORAGE_HW_FIRMWARE_INFO_QUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_HW_FIRMWARE_SLOT_INFO { + pub Version: u32, + pub Size: u32, + pub SlotNumber: u8, + pub _bitfield: u8, + pub Reserved1: [u8; 6], + pub Revision: [u8; 16], +} +impl ::core::marker::Copy for STORAGE_HW_FIRMWARE_SLOT_INFO {} +impl ::core::clone::Clone for STORAGE_HW_FIRMWARE_SLOT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_IDENTIFIER { + pub CodeSet: STORAGE_IDENTIFIER_CODE_SET, + pub Type: STORAGE_IDENTIFIER_TYPE, + pub IdentifierSize: u16, + pub NextOffset: u16, + pub Association: STORAGE_ASSOCIATION_TYPE, + pub Identifier: [u8; 1], +} +impl ::core::marker::Copy for STORAGE_IDENTIFIER {} +impl ::core::clone::Clone for STORAGE_IDENTIFIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_IDLE_POWER { + pub Version: u32, + pub Size: u32, + pub _bitfield: u32, + pub D3IdleTimeout: u32, +} +impl ::core::marker::Copy for STORAGE_IDLE_POWER {} +impl ::core::clone::Clone for STORAGE_IDLE_POWER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_IDLE_POWERUP_REASON { + pub Version: u32, + pub Size: u32, + pub PowerupReason: STORAGE_POWERUP_REASON_TYPE, +} +impl ::core::marker::Copy for STORAGE_IDLE_POWERUP_REASON {} +impl ::core::clone::Clone for STORAGE_IDLE_POWERUP_REASON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_LB_PROVISIONING_MAP_RESOURCES { + pub Size: u32, + pub Version: u32, + pub _bitfield1: u8, + pub Reserved1: [u8; 3], + pub _bitfield2: u8, + pub Reserved3: [u8; 3], + pub AvailableMappingResources: u64, + pub UsedMappingResources: u64, +} +impl ::core::marker::Copy for STORAGE_LB_PROVISIONING_MAP_RESOURCES {} +impl ::core::clone::Clone for STORAGE_LB_PROVISIONING_MAP_RESOURCES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_MEDIA_SERIAL_NUMBER_DATA { + pub Reserved: u16, + pub SerialNumberLength: u16, + pub SerialNumber: [u8; 1], +} +impl ::core::marker::Copy for STORAGE_MEDIA_SERIAL_NUMBER_DATA {} +impl ::core::clone::Clone for STORAGE_MEDIA_SERIAL_NUMBER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub MediumProductType: u32, +} +impl ::core::marker::Copy for STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_MINIPORT_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub Portdriver: STORAGE_PORT_CODE_SET, + pub LUNResetSupported: super::super::Foundation::BOOLEAN, + pub TargetResetSupported: super::super::Foundation::BOOLEAN, + pub IoTimeoutValue: u16, + pub ExtraIoInfoSupported: super::super::Foundation::BOOLEAN, + pub Flags: STORAGE_MINIPORT_DESCRIPTOR_0, + pub Reserved0: [u8; 2], + pub Reserved1: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_MINIPORT_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_MINIPORT_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union STORAGE_MINIPORT_DESCRIPTOR_0 { + pub Anonymous: STORAGE_MINIPORT_DESCRIPTOR_0_0, + pub AsBYTE: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_MINIPORT_DESCRIPTOR_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_MINIPORT_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_MINIPORT_DESCRIPTOR_0_0 { + pub _bitfield: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_MINIPORT_DESCRIPTOR_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_MINIPORT_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_OFFLOAD_READ_OUTPUT { + pub OffloadReadFlags: u32, + pub Reserved: u32, + pub LengthProtected: u64, + pub TokenLength: u32, + pub Token: STORAGE_OFFLOAD_TOKEN, +} +impl ::core::marker::Copy for STORAGE_OFFLOAD_READ_OUTPUT {} +impl ::core::clone::Clone for STORAGE_OFFLOAD_READ_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_OFFLOAD_TOKEN { + pub TokenType: [u8; 4], + pub Reserved: [u8; 2], + pub TokenIdLength: [u8; 2], + pub Anonymous: STORAGE_OFFLOAD_TOKEN_0, +} +impl ::core::marker::Copy for STORAGE_OFFLOAD_TOKEN {} +impl ::core::clone::Clone for STORAGE_OFFLOAD_TOKEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union STORAGE_OFFLOAD_TOKEN_0 { + pub StorageOffloadZeroDataToken: STORAGE_OFFLOAD_TOKEN_0_0, + pub Token: [u8; 504], +} +impl ::core::marker::Copy for STORAGE_OFFLOAD_TOKEN_0 {} +impl ::core::clone::Clone for STORAGE_OFFLOAD_TOKEN_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_OFFLOAD_TOKEN_0_0 { + pub Reserved2: [u8; 504], +} +impl ::core::marker::Copy for STORAGE_OFFLOAD_TOKEN_0_0 {} +impl ::core::clone::Clone for STORAGE_OFFLOAD_TOKEN_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_OFFLOAD_WRITE_OUTPUT { + pub OffloadWriteFlags: u32, + pub Reserved: u32, + pub LengthCopied: u64, +} +impl ::core::marker::Copy for STORAGE_OFFLOAD_WRITE_OUTPUT {} +impl ::core::clone::Clone for STORAGE_OFFLOAD_WRITE_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_OPERATIONAL_REASON { + pub Version: u32, + pub Size: u32, + pub Reason: STORAGE_OPERATIONAL_STATUS_REASON, + pub RawBytes: STORAGE_OPERATIONAL_REASON_0, +} +impl ::core::marker::Copy for STORAGE_OPERATIONAL_REASON {} +impl ::core::clone::Clone for STORAGE_OPERATIONAL_REASON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union STORAGE_OPERATIONAL_REASON_0 { + pub ScsiSenseKey: STORAGE_OPERATIONAL_REASON_0_1, + pub NVDIMM_N: STORAGE_OPERATIONAL_REASON_0_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for STORAGE_OPERATIONAL_REASON_0 {} +impl ::core::clone::Clone for STORAGE_OPERATIONAL_REASON_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_OPERATIONAL_REASON_0_0 { + pub CriticalHealth: u8, + pub ModuleHealth: [u8; 2], + pub ErrorThresholdStatus: u8, +} +impl ::core::marker::Copy for STORAGE_OPERATIONAL_REASON_0_0 {} +impl ::core::clone::Clone for STORAGE_OPERATIONAL_REASON_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_OPERATIONAL_REASON_0_1 { + pub SenseKey: u8, + pub ASC: u8, + pub ASCQ: u8, + pub Reserved: u8, +} +impl ::core::marker::Copy for STORAGE_OPERATIONAL_REASON_0_1 {} +impl ::core::clone::Clone for STORAGE_OPERATIONAL_REASON_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_PHYSICAL_ADAPTER_DATA { + pub AdapterId: u32, + pub HealthStatus: STORAGE_COMPONENT_HEALTH_STATUS, + pub CommandProtocol: STORAGE_PROTOCOL_TYPE, + pub SpecVersion: STORAGE_SPEC_VERSION, + pub Vendor: [u8; 8], + pub Model: [u8; 40], + pub FirmwareRevision: [u8; 16], + pub PhysicalLocation: [u8; 32], + pub ExpanderConnected: super::super::Foundation::BOOLEAN, + pub Reserved0: [u8; 3], + pub Reserved1: [u32; 3], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_PHYSICAL_ADAPTER_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_PHYSICAL_ADAPTER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_PHYSICAL_DEVICE_DATA { + pub DeviceId: u32, + pub Role: u32, + pub HealthStatus: STORAGE_COMPONENT_HEALTH_STATUS, + pub CommandProtocol: STORAGE_PROTOCOL_TYPE, + pub SpecVersion: STORAGE_SPEC_VERSION, + pub FormFactor: STORAGE_DEVICE_FORM_FACTOR, + pub Vendor: [u8; 8], + pub Model: [u8; 40], + pub FirmwareRevision: [u8; 16], + pub Capacity: u64, + pub PhysicalLocation: [u8; 32], + pub Reserved: [u32; 2], +} +impl ::core::marker::Copy for STORAGE_PHYSICAL_DEVICE_DATA {} +impl ::core::clone::Clone for STORAGE_PHYSICAL_DEVICE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_PHYSICAL_NODE_DATA { + pub NodeId: u32, + pub AdapterCount: u32, + pub AdapterDataLength: u32, + pub AdapterDataOffset: u32, + pub DeviceCount: u32, + pub DeviceDataLength: u32, + pub DeviceDataOffset: u32, + pub Reserved: [u32; 3], +} +impl ::core::marker::Copy for STORAGE_PHYSICAL_NODE_DATA {} +impl ::core::clone::Clone for STORAGE_PHYSICAL_NODE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub NodeCount: u32, + pub Reserved: u32, + pub Node: [STORAGE_PHYSICAL_NODE_DATA; 1], +} +impl ::core::marker::Copy for STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_PREDICT_FAILURE { + pub PredictFailure: u32, + pub VendorSpecific: [u8; 512], +} +impl ::core::marker::Copy for STORAGE_PREDICT_FAILURE {} +impl ::core::clone::Clone for STORAGE_PREDICT_FAILURE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_PRIORITY_HINT_SUPPORT { + pub SupportFlags: u32, +} +impl ::core::marker::Copy for STORAGE_PRIORITY_HINT_SUPPORT {} +impl ::core::clone::Clone for STORAGE_PRIORITY_HINT_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_PROPERTY_QUERY { + pub PropertyId: STORAGE_PROPERTY_ID, + pub QueryType: STORAGE_QUERY_TYPE, + pub AdditionalParameters: [u8; 1], +} +impl ::core::marker::Copy for STORAGE_PROPERTY_QUERY {} +impl ::core::clone::Clone for STORAGE_PROPERTY_QUERY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_PROPERTY_SET { + pub PropertyId: STORAGE_PROPERTY_ID, + pub SetType: STORAGE_SET_TYPE, + pub AdditionalParameters: [u8; 1], +} +impl ::core::marker::Copy for STORAGE_PROPERTY_SET {} +impl ::core::clone::Clone for STORAGE_PROPERTY_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_PROTOCOL_COMMAND { + pub Version: u32, + pub Length: u32, + pub ProtocolType: STORAGE_PROTOCOL_TYPE, + pub Flags: u32, + pub ReturnStatus: u32, + pub ErrorCode: u32, + pub CommandLength: u32, + pub ErrorInfoLength: u32, + pub DataToDeviceTransferLength: u32, + pub DataFromDeviceTransferLength: u32, + pub TimeOutValue: u32, + pub ErrorInfoOffset: u32, + pub DataToDeviceBufferOffset: u32, + pub DataFromDeviceBufferOffset: u32, + pub CommandSpecific: u32, + pub Reserved0: u32, + pub FixedProtocolReturnData: u32, + pub Reserved1: [u32; 3], + pub Command: [u8; 1], +} +impl ::core::marker::Copy for STORAGE_PROTOCOL_COMMAND {} +impl ::core::clone::Clone for STORAGE_PROTOCOL_COMMAND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_PROTOCOL_DATA_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub ProtocolSpecificData: STORAGE_PROTOCOL_SPECIFIC_DATA, +} +impl ::core::marker::Copy for STORAGE_PROTOCOL_DATA_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_PROTOCOL_DATA_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT { + pub Version: u32, + pub Size: u32, + pub ProtocolSpecificData: STORAGE_PROTOCOL_SPECIFIC_DATA_EXT, +} +impl ::core::marker::Copy for STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT {} +impl ::core::clone::Clone for STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE { + pub Anonymous: STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE {} +impl ::core::clone::Clone for STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE_0 {} +impl ::core::clone::Clone for STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_PROTOCOL_SPECIFIC_DATA { + pub ProtocolType: STORAGE_PROTOCOL_TYPE, + pub DataType: u32, + pub ProtocolDataRequestValue: u32, + pub ProtocolDataRequestSubValue: u32, + pub ProtocolDataOffset: u32, + pub ProtocolDataLength: u32, + pub FixedProtocolReturnData: u32, + pub ProtocolDataRequestSubValue2: u32, + pub ProtocolDataRequestSubValue3: u32, + pub ProtocolDataRequestSubValue4: u32, +} +impl ::core::marker::Copy for STORAGE_PROTOCOL_SPECIFIC_DATA {} +impl ::core::clone::Clone for STORAGE_PROTOCOL_SPECIFIC_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_PROTOCOL_SPECIFIC_DATA_EXT { + pub ProtocolType: STORAGE_PROTOCOL_TYPE, + pub DataType: u32, + pub ProtocolDataValue: u32, + pub ProtocolDataSubValue: u32, + pub ProtocolDataOffset: u32, + pub ProtocolDataLength: u32, + pub FixedProtocolReturnData: u32, + pub ProtocolDataSubValue2: u32, + pub ProtocolDataSubValue3: u32, + pub ProtocolDataSubValue4: u32, + pub ProtocolDataSubValue5: u32, + pub Reserved: [u32; 5], +} +impl ::core::marker::Copy for STORAGE_PROTOCOL_SPECIFIC_DATA_EXT {} +impl ::core::clone::Clone for STORAGE_PROTOCOL_SPECIFIC_DATA_EXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_Vhd\"`"] +#[cfg(feature = "Win32_Storage_Vhd")] +pub struct STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY { + pub EntryLength: u32, + pub DependencyTypeFlags: u32, + pub ProviderSpecificFlags: u32, + pub VirtualStorageType: super::super::Storage::Vhd::VIRTUAL_STORAGE_TYPE, +} +#[cfg(feature = "Win32_Storage_Vhd")] +impl ::core::marker::Copy for STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY {} +#[cfg(feature = "Win32_Storage_Vhd")] +impl ::core::clone::Clone for STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_Vhd\"`"] +#[cfg(feature = "Win32_Storage_Vhd")] +pub struct STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY { + pub EntryLength: u32, + pub DependencyTypeFlags: u32, + pub ProviderSpecificFlags: u32, + pub VirtualStorageType: super::super::Storage::Vhd::VIRTUAL_STORAGE_TYPE, + pub AncestorLevel: u32, + pub HostVolumeNameOffset: u32, + pub HostVolumeNameSize: u32, + pub DependentVolumeNameOffset: u32, + pub DependentVolumeNameSize: u32, + pub RelativePathOffset: u32, + pub RelativePathSize: u32, + pub DependentDeviceNameOffset: u32, + pub DependentDeviceNameSize: u32, +} +#[cfg(feature = "Win32_Storage_Vhd")] +impl ::core::marker::Copy for STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY {} +#[cfg(feature = "Win32_Storage_Vhd")] +impl ::core::clone::Clone for STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST { + pub RequestLevel: u32, + pub RequestFlags: u32, +} +impl ::core::marker::Copy for STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST {} +impl ::core::clone::Clone for STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_Vhd\"`"] +#[cfg(feature = "Win32_Storage_Vhd")] +pub struct STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE { + pub ResponseLevel: u32, + pub NumberEntries: u32, + pub Anonymous: STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE_0, +} +#[cfg(feature = "Win32_Storage_Vhd")] +impl ::core::marker::Copy for STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE {} +#[cfg(feature = "Win32_Storage_Vhd")] +impl ::core::clone::Clone for STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_Vhd\"`"] +#[cfg(feature = "Win32_Storage_Vhd")] +pub union STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE_0 { + pub Lev1Depends: [STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY; 1], + pub Lev2Depends: [STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY; 1], +} +#[cfg(feature = "Win32_Storage_Vhd")] +impl ::core::marker::Copy for STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE_0 {} +#[cfg(feature = "Win32_Storage_Vhd")] +impl ::core::clone::Clone for STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_READ_CAPACITY { + pub Version: u32, + pub Size: u32, + pub BlockLength: u32, + pub NumberOfBlocks: i64, + pub DiskLength: i64, +} +impl ::core::marker::Copy for STORAGE_READ_CAPACITY {} +impl ::core::clone::Clone for STORAGE_READ_CAPACITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_REINITIALIZE_MEDIA { + pub Version: u32, + pub Size: u32, + pub TimeoutInSeconds: u32, + pub SanitizeOption: STORAGE_REINITIALIZE_MEDIA_0, +} +impl ::core::marker::Copy for STORAGE_REINITIALIZE_MEDIA {} +impl ::core::clone::Clone for STORAGE_REINITIALIZE_MEDIA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_REINITIALIZE_MEDIA_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for STORAGE_REINITIALIZE_MEDIA_0 {} +impl ::core::clone::Clone for STORAGE_REINITIALIZE_MEDIA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_RPMB_DATA_FRAME { + pub Stuff: [u8; 196], + pub KeyOrMAC: [u8; 32], + pub Data: [u8; 256], + pub Nonce: [u8; 16], + pub WriteCounter: [u8; 4], + pub Address: [u8; 2], + pub BlockCount: [u8; 2], + pub OperationResult: [u8; 2], + pub RequestOrResponseType: [u8; 2], +} +impl ::core::marker::Copy for STORAGE_RPMB_DATA_FRAME {} +impl ::core::clone::Clone for STORAGE_RPMB_DATA_FRAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_RPMB_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub SizeInBytes: u32, + pub MaxReliableWriteSizeInBytes: u32, + pub FrameFormat: STORAGE_RPMB_FRAME_TYPE, +} +impl ::core::marker::Copy for STORAGE_RPMB_DESCRIPTOR {} +impl ::core::clone::Clone for STORAGE_RPMB_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union STORAGE_SPEC_VERSION { + pub Anonymous: STORAGE_SPEC_VERSION_0, + pub AsUlong: u32, +} +impl ::core::marker::Copy for STORAGE_SPEC_VERSION {} +impl ::core::clone::Clone for STORAGE_SPEC_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_SPEC_VERSION_0 { + pub MinorVersion: STORAGE_SPEC_VERSION_0_0, + pub MajorVersion: u16, +} +impl ::core::marker::Copy for STORAGE_SPEC_VERSION_0 {} +impl ::core::clone::Clone for STORAGE_SPEC_VERSION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union STORAGE_SPEC_VERSION_0_0 { + pub Anonymous: STORAGE_SPEC_VERSION_0_0_0, + pub AsUshort: u16, +} +impl ::core::marker::Copy for STORAGE_SPEC_VERSION_0_0 {} +impl ::core::clone::Clone for STORAGE_SPEC_VERSION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_SPEC_VERSION_0_0_0 { + pub SubMinor: u8, + pub Minor: u8, +} +impl ::core::marker::Copy for STORAGE_SPEC_VERSION_0_0_0 {} +impl ::core::clone::Clone for STORAGE_SPEC_VERSION_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_TEMPERATURE_DATA_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub CriticalTemperature: i16, + pub WarningTemperature: i16, + pub InfoCount: u16, + pub Reserved0: [u8; 2], + pub Reserved1: [u32; 2], + pub TemperatureInfo: [STORAGE_TEMPERATURE_INFO; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_TEMPERATURE_DATA_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_TEMPERATURE_DATA_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_TEMPERATURE_INFO { + pub Index: u16, + pub Temperature: i16, + pub OverThreshold: i16, + pub UnderThreshold: i16, + pub OverThresholdChangable: super::super::Foundation::BOOLEAN, + pub UnderThresholdChangable: super::super::Foundation::BOOLEAN, + pub EventGenerated: super::super::Foundation::BOOLEAN, + pub Reserved0: u8, + pub Reserved1: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_TEMPERATURE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_TEMPERATURE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_TEMPERATURE_THRESHOLD { + pub Version: u32, + pub Size: u32, + pub Flags: u16, + pub Index: u16, + pub Threshold: i16, + pub OverThreshold: super::super::Foundation::BOOLEAN, + pub Reserved: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_TEMPERATURE_THRESHOLD {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_TEMPERATURE_THRESHOLD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_TIER { + pub Id: ::windows_sys::core::GUID, + pub Name: [u16; 256], + pub Description: [u16; 256], + pub Flags: u64, + pub ProvisionedCapacity: u64, + pub MediaType: STORAGE_TIER_MEDIA_TYPE, + pub Class: STORAGE_TIER_CLASS, +} +impl ::core::marker::Copy for STORAGE_TIER {} +impl ::core::clone::Clone for STORAGE_TIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_TIER_REGION { + pub TierId: ::windows_sys::core::GUID, + pub Offset: u64, + pub Length: u64, +} +impl ::core::marker::Copy for STORAGE_TIER_REGION {} +impl ::core::clone::Clone for STORAGE_TIER_REGION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_WRITE_CACHE_PROPERTY { + pub Version: u32, + pub Size: u32, + pub WriteCacheType: WRITE_CACHE_TYPE, + pub WriteCacheEnabled: WRITE_CACHE_ENABLE, + pub WriteCacheChangeable: WRITE_CACHE_CHANGE, + pub WriteThroughSupported: WRITE_THROUGH, + pub FlushCacheSupported: super::super::Foundation::BOOLEAN, + pub UserDefinedPowerProtection: super::super::Foundation::BOOLEAN, + pub NVCacheEnabled: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_WRITE_CACHE_PROPERTY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_WRITE_CACHE_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_ZONED_DEVICE_DESCRIPTOR { + pub Version: u32, + pub Size: u32, + pub DeviceType: STORAGE_ZONED_DEVICE_TYPES, + pub ZoneCount: u32, + pub ZoneAttributes: STORAGE_ZONED_DEVICE_DESCRIPTOR_0, + pub ZoneGroupCount: u32, + pub ZoneGroup: [STORAGE_ZONE_GROUP; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_ZONED_DEVICE_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_ZONED_DEVICE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union STORAGE_ZONED_DEVICE_DESCRIPTOR_0 { + pub SequentialRequiredZone: STORAGE_ZONED_DEVICE_DESCRIPTOR_0_1, + pub SequentialPreferredZone: STORAGE_ZONED_DEVICE_DESCRIPTOR_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_ZONED_DEVICE_DESCRIPTOR_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_ZONED_DEVICE_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_ZONED_DEVICE_DESCRIPTOR_0_0 { + pub OptimalOpenZoneCount: u32, + pub Reserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_ZONED_DEVICE_DESCRIPTOR_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_ZONED_DEVICE_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_ZONED_DEVICE_DESCRIPTOR_0_1 { + pub MaxOpenZoneCount: u32, + pub UnrestrictedRead: super::super::Foundation::BOOLEAN, + pub Reserved: [u8; 3], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_ZONED_DEVICE_DESCRIPTOR_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_ZONED_DEVICE_DESCRIPTOR_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STORAGE_ZONE_DESCRIPTOR { + pub Size: u32, + pub ZoneType: STORAGE_ZONE_TYPES, + pub ZoneCondition: STORAGE_ZONE_CONDITION, + pub ResetWritePointerRecommend: super::super::Foundation::BOOLEAN, + pub Reserved0: [u8; 3], + pub ZoneSize: u64, + pub WritePointerOffset: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STORAGE_ZONE_DESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STORAGE_ZONE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STORAGE_ZONE_GROUP { + pub ZoneCount: u32, + pub ZoneType: STORAGE_ZONE_TYPES, + pub ZoneSize: u64, +} +impl ::core::marker::Copy for STORAGE_ZONE_GROUP {} +impl ::core::clone::Clone for STORAGE_ZONE_GROUP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STREAMS_ASSOCIATE_ID_INPUT_BUFFER { + pub Flags: u32, + pub StreamId: u32, +} +impl ::core::marker::Copy for STREAMS_ASSOCIATE_ID_INPUT_BUFFER {} +impl ::core::clone::Clone for STREAMS_ASSOCIATE_ID_INPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STREAMS_QUERY_ID_OUTPUT_BUFFER { + pub StreamId: u32, +} +impl ::core::marker::Copy for STREAMS_QUERY_ID_OUTPUT_BUFFER {} +impl ::core::clone::Clone for STREAMS_QUERY_ID_OUTPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER { + pub OptimalWriteSize: u32, + pub StreamGranularitySize: u32, + pub StreamIdMin: u32, + pub StreamIdMax: u32, +} +impl ::core::marker::Copy for STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER {} +impl ::core::clone::Clone for STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STREAM_EXTENT_ENTRY { + pub Flags: u32, + pub ExtentInformation: STREAM_EXTENT_ENTRY_0, +} +impl ::core::marker::Copy for STREAM_EXTENT_ENTRY {} +impl ::core::clone::Clone for STREAM_EXTENT_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union STREAM_EXTENT_ENTRY_0 { + pub RetrievalPointers: RETRIEVAL_POINTERS_BUFFER, +} +impl ::core::marker::Copy for STREAM_EXTENT_ENTRY_0 {} +impl ::core::clone::Clone for STREAM_EXTENT_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STREAM_INFORMATION_ENTRY { + pub Version: u32, + pub Flags: u32, + pub StreamInformation: STREAM_INFORMATION_ENTRY_0, +} +impl ::core::marker::Copy for STREAM_INFORMATION_ENTRY {} +impl ::core::clone::Clone for STREAM_INFORMATION_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union STREAM_INFORMATION_ENTRY_0 { + pub DesiredStorageClass: STREAM_INFORMATION_ENTRY_0_1, + pub DataStream: STREAM_INFORMATION_ENTRY_0_0, + pub Reparse: STREAM_INFORMATION_ENTRY_0_3, + pub Ea: STREAM_INFORMATION_ENTRY_0_2, +} +impl ::core::marker::Copy for STREAM_INFORMATION_ENTRY_0 {} +impl ::core::clone::Clone for STREAM_INFORMATION_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STREAM_INFORMATION_ENTRY_0_0 { + pub Length: u16, + pub Flags: u16, + pub Reserved: u32, + pub Vdl: u64, +} +impl ::core::marker::Copy for STREAM_INFORMATION_ENTRY_0_0 {} +impl ::core::clone::Clone for STREAM_INFORMATION_ENTRY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STREAM_INFORMATION_ENTRY_0_1 { + pub Class: FILE_STORAGE_TIER_CLASS, + pub Flags: u32, +} +impl ::core::marker::Copy for STREAM_INFORMATION_ENTRY_0_1 {} +impl ::core::clone::Clone for STREAM_INFORMATION_ENTRY_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STREAM_INFORMATION_ENTRY_0_2 { + pub Length: u16, + pub Flags: u16, + pub EaSize: u32, + pub EaInformationOffset: u32, +} +impl ::core::marker::Copy for STREAM_INFORMATION_ENTRY_0_2 {} +impl ::core::clone::Clone for STREAM_INFORMATION_ENTRY_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STREAM_INFORMATION_ENTRY_0_3 { + pub Length: u16, + pub Flags: u16, + pub ReparseDataSize: u32, + pub ReparseDataOffset: u32, +} +impl ::core::marker::Copy for STREAM_INFORMATION_ENTRY_0_3 {} +impl ::core::clone::Clone for STREAM_INFORMATION_ENTRY_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STREAM_LAYOUT_ENTRY { + pub Version: u32, + pub NextStreamOffset: u32, + pub Flags: u32, + pub ExtentInformationOffset: u32, + pub AllocationSize: i64, + pub EndOfFile: i64, + pub StreamInformationOffset: u32, + pub AttributeTypeCode: u32, + pub AttributeFlags: u32, + pub StreamIdentifierLength: u32, + pub StreamIdentifier: [u16; 1], +} +impl ::core::marker::Copy for STREAM_LAYOUT_ENTRY {} +impl ::core::clone::Clone for STREAM_LAYOUT_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TAPE_GET_STATISTICS { + pub Operation: u32, +} +impl ::core::marker::Copy for TAPE_GET_STATISTICS {} +impl ::core::clone::Clone for TAPE_GET_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TAPE_STATISTICS { + pub Version: u32, + pub Flags: u32, + pub RecoveredWrites: i64, + pub UnrecoveredWrites: i64, + pub RecoveredReads: i64, + pub UnrecoveredReads: i64, + pub CompressionRatioReads: u8, + pub CompressionRatioWrites: u8, +} +impl ::core::marker::Copy for TAPE_STATISTICS {} +impl ::core::clone::Clone for TAPE_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_CREATE_MINIVERSION_INFO { + pub StructureVersion: u16, + pub StructureLength: u16, + pub BaseVersion: u32, + pub MiniVersion: u16, +} +impl ::core::marker::Copy for TXFS_CREATE_MINIVERSION_INFO {} +impl ::core::clone::Clone for TXFS_CREATE_MINIVERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_GET_METADATA_INFO_OUT { + pub TxfFileId: TXFS_GET_METADATA_INFO_OUT_0, + pub LockingTransaction: ::windows_sys::core::GUID, + pub LastLsn: u64, + pub TransactionState: u32, +} +impl ::core::marker::Copy for TXFS_GET_METADATA_INFO_OUT {} +impl ::core::clone::Clone for TXFS_GET_METADATA_INFO_OUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_GET_METADATA_INFO_OUT_0 { + pub LowPart: i64, + pub HighPart: i64, +} +impl ::core::marker::Copy for TXFS_GET_METADATA_INFO_OUT_0 {} +impl ::core::clone::Clone for TXFS_GET_METADATA_INFO_OUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_GET_TRANSACTED_VERSION { + pub ThisBaseVersion: u32, + pub LatestVersion: u32, + pub ThisMiniVersion: u16, + pub FirstMiniVersion: u16, + pub LatestMiniVersion: u16, +} +impl ::core::marker::Copy for TXFS_GET_TRANSACTED_VERSION {} +impl ::core::clone::Clone for TXFS_GET_TRANSACTED_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_LIST_TRANSACTIONS { + pub NumberOfTransactions: u64, + pub BufferSizeRequired: u64, +} +impl ::core::marker::Copy for TXFS_LIST_TRANSACTIONS {} +impl ::core::clone::Clone for TXFS_LIST_TRANSACTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_LIST_TRANSACTIONS_ENTRY { + pub TransactionId: ::windows_sys::core::GUID, + pub TransactionState: u32, + pub Reserved1: u32, + pub Reserved2: u32, + pub Reserved3: i64, +} +impl ::core::marker::Copy for TXFS_LIST_TRANSACTIONS_ENTRY {} +impl ::core::clone::Clone for TXFS_LIST_TRANSACTIONS_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_LIST_TRANSACTION_LOCKED_FILES { + pub KtmTransaction: ::windows_sys::core::GUID, + pub NumberOfFiles: u64, + pub BufferSizeRequired: u64, + pub Offset: u64, +} +impl ::core::marker::Copy for TXFS_LIST_TRANSACTION_LOCKED_FILES {} +impl ::core::clone::Clone for TXFS_LIST_TRANSACTION_LOCKED_FILES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY { + pub Offset: u64, + pub NameFlags: u32, + pub FileId: i64, + pub Reserved1: u32, + pub Reserved2: u32, + pub Reserved3: i64, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY {} +impl ::core::clone::Clone for TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_MODIFY_RM { + pub Flags: TXFS_RMF_LAGS, + pub LogContainerCountMax: u32, + pub LogContainerCountMin: u32, + pub LogContainerCount: u32, + pub LogGrowthIncrement: u32, + pub LogAutoShrinkPercentage: u32, + pub Reserved: u64, + pub LoggingMode: u16, +} +impl ::core::marker::Copy for TXFS_MODIFY_RM {} +impl ::core::clone::Clone for TXFS_MODIFY_RM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_QUERY_RM_INFORMATION { + pub BytesRequired: u32, + pub TailLsn: u64, + pub CurrentLsn: u64, + pub ArchiveTailLsn: u64, + pub LogContainerSize: u64, + pub HighestVirtualClock: i64, + pub LogContainerCount: u32, + pub LogContainerCountMax: u32, + pub LogContainerCountMin: u32, + pub LogGrowthIncrement: u32, + pub LogAutoShrinkPercentage: u32, + pub Flags: TXFS_RMF_LAGS, + pub LoggingMode: u16, + pub Reserved: u16, + pub RmState: u32, + pub LogCapacity: u64, + pub LogFree: u64, + pub TopsSize: u64, + pub TopsUsed: u64, + pub TransactionCount: u64, + pub OnePCCount: u64, + pub TwoPCCount: u64, + pub NumberLogFileFull: u64, + pub OldestTransactionAge: u64, + pub RMName: ::windows_sys::core::GUID, + pub TmLogPathOffset: u32, +} +impl ::core::marker::Copy for TXFS_QUERY_RM_INFORMATION {} +impl ::core::clone::Clone for TXFS_QUERY_RM_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_READ_BACKUP_INFORMATION_OUT { + pub Anonymous: TXFS_READ_BACKUP_INFORMATION_OUT_0, +} +impl ::core::marker::Copy for TXFS_READ_BACKUP_INFORMATION_OUT {} +impl ::core::clone::Clone for TXFS_READ_BACKUP_INFORMATION_OUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union TXFS_READ_BACKUP_INFORMATION_OUT_0 { + pub BufferLength: u32, + pub Buffer: [u8; 1], +} +impl ::core::marker::Copy for TXFS_READ_BACKUP_INFORMATION_OUT_0 {} +impl ::core::clone::Clone for TXFS_READ_BACKUP_INFORMATION_OUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_ROLLFORWARD_REDO_INFORMATION { + pub LastVirtualClock: i64, + pub LastRedoLsn: u64, + pub HighestRecoveryLsn: u64, + pub Flags: u32, +} +impl ::core::marker::Copy for TXFS_ROLLFORWARD_REDO_INFORMATION {} +impl ::core::clone::Clone for TXFS_ROLLFORWARD_REDO_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TXFS_SAVEPOINT_INFORMATION { + pub KtmTransaction: super::super::Foundation::HANDLE, + pub ActionCode: u32, + pub SavepointId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TXFS_SAVEPOINT_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TXFS_SAVEPOINT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_START_RM_INFORMATION { + pub Flags: u32, + pub LogContainerSize: u64, + pub LogContainerCountMin: u32, + pub LogContainerCountMax: u32, + pub LogGrowthIncrement: u32, + pub LogAutoShrinkPercentage: u32, + pub TmLogPathOffset: u32, + pub TmLogPathLength: u16, + pub LoggingMode: u16, + pub LogPathLength: u16, + pub Reserved: u16, + pub LogPath: [u16; 1], +} +impl ::core::marker::Copy for TXFS_START_RM_INFORMATION {} +impl ::core::clone::Clone for TXFS_START_RM_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TXFS_TRANSACTION_ACTIVE_INFO { + pub TransactionsActiveAtSnapshot: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TXFS_TRANSACTION_ACTIVE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TXFS_TRANSACTION_ACTIVE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TXFS_WRITE_BACKUP_INFORMATION { + pub Buffer: [u8; 1], +} +impl ::core::marker::Copy for TXFS_WRITE_BACKUP_INFORMATION {} +impl ::core::clone::Clone for TXFS_WRITE_BACKUP_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USN_JOURNAL_DATA_V0 { + pub UsnJournalID: u64, + pub FirstUsn: i64, + pub NextUsn: i64, + pub LowestValidUsn: i64, + pub MaxUsn: i64, + pub MaximumSize: u64, + pub AllocationDelta: u64, +} +impl ::core::marker::Copy for USN_JOURNAL_DATA_V0 {} +impl ::core::clone::Clone for USN_JOURNAL_DATA_V0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USN_JOURNAL_DATA_V1 { + pub UsnJournalID: u64, + pub FirstUsn: i64, + pub NextUsn: i64, + pub LowestValidUsn: i64, + pub MaxUsn: i64, + pub MaximumSize: u64, + pub AllocationDelta: u64, + pub MinSupportedMajorVersion: u16, + pub MaxSupportedMajorVersion: u16, +} +impl ::core::marker::Copy for USN_JOURNAL_DATA_V1 {} +impl ::core::clone::Clone for USN_JOURNAL_DATA_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USN_JOURNAL_DATA_V2 { + pub UsnJournalID: u64, + pub FirstUsn: i64, + pub NextUsn: i64, + pub LowestValidUsn: i64, + pub MaxUsn: i64, + pub MaximumSize: u64, + pub AllocationDelta: u64, + pub MinSupportedMajorVersion: u16, + pub MaxSupportedMajorVersion: u16, + pub Flags: u32, + pub RangeTrackChunkSize: u64, + pub RangeTrackFileSizeThreshold: i64, +} +impl ::core::marker::Copy for USN_JOURNAL_DATA_V2 {} +impl ::core::clone::Clone for USN_JOURNAL_DATA_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USN_RANGE_TRACK_OUTPUT { + pub Usn: i64, +} +impl ::core::marker::Copy for USN_RANGE_TRACK_OUTPUT {} +impl ::core::clone::Clone for USN_RANGE_TRACK_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USN_RECORD_COMMON_HEADER { + pub RecordLength: u32, + pub MajorVersion: u16, + pub MinorVersion: u16, +} +impl ::core::marker::Copy for USN_RECORD_COMMON_HEADER {} +impl ::core::clone::Clone for USN_RECORD_COMMON_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USN_RECORD_EXTENT { + pub Offset: i64, + pub Length: i64, +} +impl ::core::marker::Copy for USN_RECORD_EXTENT {} +impl ::core::clone::Clone for USN_RECORD_EXTENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub union USN_RECORD_UNION { + pub Header: USN_RECORD_COMMON_HEADER, + pub V2: USN_RECORD_V2, + pub V3: USN_RECORD_V3, + pub V4: USN_RECORD_V4, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for USN_RECORD_UNION {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for USN_RECORD_UNION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USN_RECORD_V2 { + pub RecordLength: u32, + pub MajorVersion: u16, + pub MinorVersion: u16, + pub FileReferenceNumber: u64, + pub ParentFileReferenceNumber: u64, + pub Usn: i64, + pub TimeStamp: i64, + pub Reason: u32, + pub SourceInfo: u32, + pub SecurityId: u32, + pub FileAttributes: u32, + pub FileNameLength: u16, + pub FileNameOffset: u16, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for USN_RECORD_V2 {} +impl ::core::clone::Clone for USN_RECORD_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct USN_RECORD_V3 { + pub RecordLength: u32, + pub MajorVersion: u16, + pub MinorVersion: u16, + pub FileReferenceNumber: super::super::Storage::FileSystem::FILE_ID_128, + pub ParentFileReferenceNumber: super::super::Storage::FileSystem::FILE_ID_128, + pub Usn: i64, + pub TimeStamp: i64, + pub Reason: u32, + pub SourceInfo: u32, + pub SecurityId: u32, + pub FileAttributes: u32, + pub FileNameLength: u16, + pub FileNameOffset: u16, + pub FileName: [u16; 1], +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for USN_RECORD_V3 {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for USN_RECORD_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct USN_RECORD_V4 { + pub Header: USN_RECORD_COMMON_HEADER, + pub FileReferenceNumber: super::super::Storage::FileSystem::FILE_ID_128, + pub ParentFileReferenceNumber: super::super::Storage::FileSystem::FILE_ID_128, + pub Usn: i64, + pub Reason: u32, + pub SourceInfo: USN_SOURCE_INFO_ID, + pub RemainingExtents: u32, + pub NumberOfExtents: u16, + pub ExtentSize: u16, + pub Extents: [USN_RECORD_EXTENT; 1], +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for USN_RECORD_V4 {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for USN_RECORD_V4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USN_TRACK_MODIFIED_RANGES { + pub Flags: u32, + pub Unused: u32, + pub ChunkSize: u64, + pub FileSizeThreshold: i64, +} +impl ::core::marker::Copy for USN_TRACK_MODIFIED_RANGES {} +impl ::core::clone::Clone for USN_TRACK_MODIFIED_RANGES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VERIFY_INFORMATION { + pub StartingOffset: i64, + pub Length: u32, +} +impl ::core::marker::Copy for VERIFY_INFORMATION {} +impl ::core::clone::Clone for VERIFY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUALIZATION_INSTANCE_INFO_INPUT { + pub NumberOfWorkerThreads: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for VIRTUALIZATION_INSTANCE_INFO_INPUT {} +impl ::core::clone::Clone for VIRTUALIZATION_INSTANCE_INFO_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUALIZATION_INSTANCE_INFO_INPUT_EX { + pub HeaderSize: u16, + pub Flags: u32, + pub NotificationInfoSize: u32, + pub NotificationInfoOffset: u16, + pub ProviderMajorVersion: u16, +} +impl ::core::marker::Copy for VIRTUALIZATION_INSTANCE_INFO_INPUT_EX {} +impl ::core::clone::Clone for VIRTUALIZATION_INSTANCE_INFO_INPUT_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUALIZATION_INSTANCE_INFO_OUTPUT { + pub VirtualizationInstanceID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for VIRTUALIZATION_INSTANCE_INFO_OUTPUT {} +impl ::core::clone::Clone for VIRTUALIZATION_INSTANCE_INFO_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT { + pub Size: u32, + pub BehaviorCode: VIRTUAL_STORAGE_BEHAVIOR_CODE, +} +impl ::core::marker::Copy for VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT {} +impl ::core::clone::Clone for VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_BITMAP_BUFFER { + pub StartingLcn: i64, + pub BitmapSize: i64, + pub Buffer: [u8; 1], +} +impl ::core::marker::Copy for VOLUME_BITMAP_BUFFER {} +impl ::core::clone::Clone for VOLUME_BITMAP_BUFFER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_DISK_EXTENTS { + pub NumberOfDiskExtents: u32, + pub Extents: [DISK_EXTENT; 1], +} +impl ::core::marker::Copy for VOLUME_DISK_EXTENTS {} +impl ::core::clone::Clone for VOLUME_DISK_EXTENTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VOLUME_GET_GPT_ATTRIBUTES_INFORMATION { + pub GptAttributes: u64, +} +impl ::core::marker::Copy for VOLUME_GET_GPT_ATTRIBUTES_INFORMATION {} +impl ::core::clone::Clone for VOLUME_GET_GPT_ATTRIBUTES_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIM_PROVIDER_ADD_OVERLAY_INPUT { + pub WimType: u32, + pub WimIndex: u32, + pub WimFileNameOffset: u32, + pub WimFileNameLength: u32, +} +impl ::core::marker::Copy for WIM_PROVIDER_ADD_OVERLAY_INPUT {} +impl ::core::clone::Clone for WIM_PROVIDER_ADD_OVERLAY_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIM_PROVIDER_EXTERNAL_INFO { + pub Version: u32, + pub Flags: u32, + pub DataSourceId: i64, + pub ResourceHash: [u8; 20], +} +impl ::core::marker::Copy for WIM_PROVIDER_EXTERNAL_INFO {} +impl ::core::clone::Clone for WIM_PROVIDER_EXTERNAL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIM_PROVIDER_OVERLAY_ENTRY { + pub NextEntryOffset: u32, + pub DataSourceId: i64, + pub WimGuid: ::windows_sys::core::GUID, + pub WimFileNameOffset: u32, + pub WimType: u32, + pub WimIndex: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for WIM_PROVIDER_OVERLAY_ENTRY {} +impl ::core::clone::Clone for WIM_PROVIDER_OVERLAY_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIM_PROVIDER_REMOVE_OVERLAY_INPUT { + pub DataSourceId: i64, +} +impl ::core::marker::Copy for WIM_PROVIDER_REMOVE_OVERLAY_INPUT {} +impl ::core::clone::Clone for WIM_PROVIDER_REMOVE_OVERLAY_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIM_PROVIDER_SUSPEND_OVERLAY_INPUT { + pub DataSourceId: i64, +} +impl ::core::marker::Copy for WIM_PROVIDER_SUSPEND_OVERLAY_INPUT {} +impl ::core::clone::Clone for WIM_PROVIDER_SUSPEND_OVERLAY_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIM_PROVIDER_UPDATE_OVERLAY_INPUT { + pub DataSourceId: i64, + pub WimFileNameOffset: u32, + pub WimFileNameLength: u32, +} +impl ::core::marker::Copy for WIM_PROVIDER_UPDATE_OVERLAY_INPUT {} +impl ::core::clone::Clone for WIM_PROVIDER_UPDATE_OVERLAY_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_FileSystem\"`"] +#[cfg(feature = "Win32_Storage_FileSystem")] +pub struct WOF_EXTERNAL_FILE_ID { + pub FileId: super::super::Storage::FileSystem::FILE_ID_128, +} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::marker::Copy for WOF_EXTERNAL_FILE_ID {} +#[cfg(feature = "Win32_Storage_FileSystem")] +impl ::core::clone::Clone for WOF_EXTERNAL_FILE_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WOF_EXTERNAL_INFO { + pub Version: u32, + pub Provider: u32, +} +impl ::core::marker::Copy for WOF_EXTERNAL_INFO {} +impl ::core::clone::Clone for WOF_EXTERNAL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WOF_VERSION_INFO { + pub WofVersion: u32, +} +impl ::core::marker::Copy for WOF_VERSION_INFO {} +impl ::core::clone::Clone for WOF_VERSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WRITE_USN_REASON_INPUT { + pub Flags: u32, + pub UsnReasonToWrite: u32, +} +impl ::core::marker::Copy for WRITE_USN_REASON_INPUT {} +impl ::core::clone::Clone for WRITE_USN_REASON_INPUT { + fn clone(&self) -> Self { + *self + } +} +pub type PIO_IRP_EXT_PROCESS_TRACKED_OFFSET_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/JobObjects/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/JobObjects/mod.rs new file mode 100644 index 000000000..c6afbc159 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/JobObjects/mod.rs @@ -0,0 +1,617 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AssignProcessToJobObject(hjob : super::super::Foundation:: HANDLE, hprocess : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateJobObjectA(lpjobattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lpname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateJobObjectW(lpjobattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lpname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateJobSet(numjob : u32, userjobset : *const JOB_SET_ARRAY, flags : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn FreeMemoryJobObject(buffer : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsProcessInJob(processhandle : super::super::Foundation:: HANDLE, jobhandle : super::super::Foundation:: HANDLE, result : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenJobObjectA(dwdesiredaccess : u32, binherithandle : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenJobObjectW(dwdesiredaccess : u32, binherithandle : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryInformationJobObject(hjob : super::super::Foundation:: HANDLE, jobobjectinformationclass : JOBOBJECTINFOCLASS, lpjobobjectinformation : *mut ::core::ffi::c_void, cbjobobjectinformationlength : u32, lpreturnlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryIoRateControlInformationJobObject(hjob : super::super::Foundation:: HANDLE, volumename : ::windows_sys::core::PCWSTR, infoblocks : *mut *mut JOBOBJECT_IO_RATE_CONTROL_INFORMATION, infoblockcount : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetInformationJobObject(hjob : super::super::Foundation:: HANDLE, jobobjectinformationclass : JOBOBJECTINFOCLASS, lpjobobjectinformation : *const ::core::ffi::c_void, cbjobobjectinformationlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetIoRateControlInformationJobObject(hjob : super::super::Foundation:: HANDLE, ioratecontrolinfo : *const JOBOBJECT_IO_RATE_CONTROL_INFORMATION) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TerminateJobObject(hjob : super::super::Foundation:: HANDLE, uexitcode : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UserHandleGrantAccess(huserhandle : super::super::Foundation:: HANDLE, hjob : super::super::Foundation:: HANDLE, bgrant : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +pub const JOBOBJECT_IO_ATTRIBUTION_CONTROL_DISABLE: JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = 2i32; +pub const JOBOBJECT_IO_ATTRIBUTION_CONTROL_ENABLE: JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = 1i32; +pub const JOBOBJECT_IO_ATTRIBUTION_CONTROL_VALID_FLAGS: JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = 3i32; +pub const JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS: JOB_OBJECT_LIMIT = 255u32; +pub const JOB_OBJECT_CPU_RATE_CONTROL_ENABLE: JOB_OBJECT_CPU_RATE_CONTROL = 1u32; +pub const JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP: JOB_OBJECT_CPU_RATE_CONTROL = 4u32; +pub const JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE: JOB_OBJECT_CPU_RATE_CONTROL = 16u32; +pub const JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY: JOB_OBJECT_CPU_RATE_CONTROL = 8u32; +pub const JOB_OBJECT_CPU_RATE_CONTROL_VALID_FLAGS: JOB_OBJECT_CPU_RATE_CONTROL = 31u32; +pub const JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED: JOB_OBJECT_CPU_RATE_CONTROL = 2u32; +pub const JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS: JOB_OBJECT_LIMIT = 32767u32; +pub const JOB_OBJECT_IO_RATE_CONTROL_ENABLE: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 1i32; +pub const JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ALL: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 4i32; +pub const JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ON_SOFT_CAP: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 8i32; +pub const JOB_OBJECT_IO_RATE_CONTROL_STANDALONE_VOLUME: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 2i32; +pub const JOB_OBJECT_IO_RATE_CONTROL_VALID_FLAGS: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 15i32; +pub const JOB_OBJECT_LIMIT_ACTIVE_PROCESS: JOB_OBJECT_LIMIT = 8u32; +pub const JOB_OBJECT_LIMIT_AFFINITY: JOB_OBJECT_LIMIT = 16u32; +pub const JOB_OBJECT_LIMIT_BREAKAWAY_OK: JOB_OBJECT_LIMIT = 2048u32; +pub const JOB_OBJECT_LIMIT_CPU_RATE_CONTROL: JOB_OBJECT_LIMIT = 262144u32; +pub const JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION: JOB_OBJECT_LIMIT = 1024u32; +pub const JOB_OBJECT_LIMIT_IO_RATE_CONTROL: JOB_OBJECT_LIMIT = 524288u32; +pub const JOB_OBJECT_LIMIT_JOB_MEMORY: JOB_OBJECT_LIMIT = 512u32; +pub const JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH: JOB_OBJECT_LIMIT = 512u32; +pub const JOB_OBJECT_LIMIT_JOB_MEMORY_LOW: JOB_OBJECT_LIMIT = 32768u32; +pub const JOB_OBJECT_LIMIT_JOB_READ_BYTES: JOB_OBJECT_LIMIT = 65536u32; +pub const JOB_OBJECT_LIMIT_JOB_TIME: JOB_OBJECT_LIMIT = 4u32; +pub const JOB_OBJECT_LIMIT_JOB_WRITE_BYTES: JOB_OBJECT_LIMIT = 131072u32; +pub const JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE: JOB_OBJECT_LIMIT = 8192u32; +pub const JOB_OBJECT_LIMIT_NET_RATE_CONTROL: JOB_OBJECT_LIMIT = 1048576u32; +pub const JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME: JOB_OBJECT_LIMIT = 64u32; +pub const JOB_OBJECT_LIMIT_PRIORITY_CLASS: JOB_OBJECT_LIMIT = 32u32; +pub const JOB_OBJECT_LIMIT_PROCESS_MEMORY: JOB_OBJECT_LIMIT = 256u32; +pub const JOB_OBJECT_LIMIT_PROCESS_TIME: JOB_OBJECT_LIMIT = 2u32; +pub const JOB_OBJECT_LIMIT_RATE_CONTROL: JOB_OBJECT_LIMIT = 262144u32; +pub const JOB_OBJECT_LIMIT_SCHEDULING_CLASS: JOB_OBJECT_LIMIT = 128u32; +pub const JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK: JOB_OBJECT_LIMIT = 4096u32; +pub const JOB_OBJECT_LIMIT_SUBSET_AFFINITY: JOB_OBJECT_LIMIT = 16384u32; +pub const JOB_OBJECT_LIMIT_VALID_FLAGS: JOB_OBJECT_LIMIT = 524287u32; +pub const JOB_OBJECT_LIMIT_WORKINGSET: JOB_OBJECT_LIMIT = 1u32; +pub const JOB_OBJECT_NET_RATE_CONTROL_DSCP_TAG: JOB_OBJECT_NET_RATE_CONTROL_FLAGS = 4i32; +pub const JOB_OBJECT_NET_RATE_CONTROL_ENABLE: JOB_OBJECT_NET_RATE_CONTROL_FLAGS = 1i32; +pub const JOB_OBJECT_NET_RATE_CONTROL_MAX_BANDWIDTH: JOB_OBJECT_NET_RATE_CONTROL_FLAGS = 2i32; +pub const JOB_OBJECT_NET_RATE_CONTROL_VALID_FLAGS: JOB_OBJECT_NET_RATE_CONTROL_FLAGS = 7i32; +pub const JOB_OBJECT_NOTIFICATION_LIMIT_VALID_FLAGS: JOB_OBJECT_LIMIT = 2064900u32; +pub const JOB_OBJECT_POST_AT_END_OF_JOB: JOB_OBJECT_TERMINATE_AT_END_ACTION = 1u32; +pub const JOB_OBJECT_SECURITY_FILTER_TOKENS: JOB_OBJECT_SECURITY = 8u32; +pub const JOB_OBJECT_SECURITY_NO_ADMIN: JOB_OBJECT_SECURITY = 1u32; +pub const JOB_OBJECT_SECURITY_ONLY_TOKEN: JOB_OBJECT_SECURITY = 4u32; +pub const JOB_OBJECT_SECURITY_RESTRICTED_TOKEN: JOB_OBJECT_SECURITY = 2u32; +pub const JOB_OBJECT_SECURITY_VALID_FLAGS: JOB_OBJECT_SECURITY = 15u32; +pub const JOB_OBJECT_TERMINATE_AT_END_OF_JOB: JOB_OBJECT_TERMINATE_AT_END_ACTION = 0u32; +pub const JOB_OBJECT_UILIMIT_DESKTOP: JOB_OBJECT_UILIMIT = 64u32; +pub const JOB_OBJECT_UILIMIT_DISPLAYSETTINGS: JOB_OBJECT_UILIMIT = 16u32; +pub const JOB_OBJECT_UILIMIT_EXITWINDOWS: JOB_OBJECT_UILIMIT = 128u32; +pub const JOB_OBJECT_UILIMIT_GLOBALATOMS: JOB_OBJECT_UILIMIT = 32u32; +pub const JOB_OBJECT_UILIMIT_HANDLES: JOB_OBJECT_UILIMIT = 1u32; +pub const JOB_OBJECT_UILIMIT_NONE: JOB_OBJECT_UILIMIT = 0u32; +pub const JOB_OBJECT_UILIMIT_READCLIPBOARD: JOB_OBJECT_UILIMIT = 2u32; +pub const JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS: JOB_OBJECT_UILIMIT = 8u32; +pub const JOB_OBJECT_UILIMIT_WRITECLIPBOARD: JOB_OBJECT_UILIMIT = 4u32; +pub const JobObjectAssociateCompletionPortInformation: JOBOBJECTINFOCLASS = 7i32; +pub const JobObjectBasicAccountingInformation: JOBOBJECTINFOCLASS = 1i32; +pub const JobObjectBasicAndIoAccountingInformation: JOBOBJECTINFOCLASS = 8i32; +pub const JobObjectBasicLimitInformation: JOBOBJECTINFOCLASS = 2i32; +pub const JobObjectBasicProcessIdList: JOBOBJECTINFOCLASS = 3i32; +pub const JobObjectBasicUIRestrictions: JOBOBJECTINFOCLASS = 4i32; +pub const JobObjectCompletionCounter: JOBOBJECTINFOCLASS = 17i32; +pub const JobObjectCompletionFilter: JOBOBJECTINFOCLASS = 16i32; +pub const JobObjectCpuRateControlInformation: JOBOBJECTINFOCLASS = 15i32; +pub const JobObjectCreateSilo: JOBOBJECTINFOCLASS = 35i32; +pub const JobObjectEndOfJobTimeInformation: JOBOBJECTINFOCLASS = 6i32; +pub const JobObjectExtendedLimitInformation: JOBOBJECTINFOCLASS = 9i32; +pub const JobObjectGroupInformation: JOBOBJECTINFOCLASS = 11i32; +pub const JobObjectGroupInformationEx: JOBOBJECTINFOCLASS = 14i32; +pub const JobObjectJobSetInformation: JOBOBJECTINFOCLASS = 10i32; +pub const JobObjectLimitViolationInformation: JOBOBJECTINFOCLASS = 13i32; +pub const JobObjectLimitViolationInformation2: JOBOBJECTINFOCLASS = 34i32; +pub const JobObjectNetRateControlInformation: JOBOBJECTINFOCLASS = 32i32; +pub const JobObjectNotificationLimitInformation: JOBOBJECTINFOCLASS = 12i32; +pub const JobObjectNotificationLimitInformation2: JOBOBJECTINFOCLASS = 33i32; +pub const JobObjectReserved10Information: JOBOBJECTINFOCLASS = 27i32; +pub const JobObjectReserved11Information: JOBOBJECTINFOCLASS = 28i32; +pub const JobObjectReserved12Information: JOBOBJECTINFOCLASS = 29i32; +pub const JobObjectReserved13Information: JOBOBJECTINFOCLASS = 30i32; +pub const JobObjectReserved14Information: JOBOBJECTINFOCLASS = 31i32; +pub const JobObjectReserved15Information: JOBOBJECTINFOCLASS = 37i32; +pub const JobObjectReserved16Information: JOBOBJECTINFOCLASS = 38i32; +pub const JobObjectReserved17Information: JOBOBJECTINFOCLASS = 39i32; +pub const JobObjectReserved18Information: JOBOBJECTINFOCLASS = 40i32; +pub const JobObjectReserved19Information: JOBOBJECTINFOCLASS = 41i32; +pub const JobObjectReserved1Information: JOBOBJECTINFOCLASS = 18i32; +pub const JobObjectReserved20Information: JOBOBJECTINFOCLASS = 42i32; +pub const JobObjectReserved21Information: JOBOBJECTINFOCLASS = 43i32; +pub const JobObjectReserved22Information: JOBOBJECTINFOCLASS = 44i32; +pub const JobObjectReserved23Information: JOBOBJECTINFOCLASS = 45i32; +pub const JobObjectReserved24Information: JOBOBJECTINFOCLASS = 46i32; +pub const JobObjectReserved25Information: JOBOBJECTINFOCLASS = 47i32; +pub const JobObjectReserved26Information: JOBOBJECTINFOCLASS = 48i32; +pub const JobObjectReserved27Information: JOBOBJECTINFOCLASS = 49i32; +pub const JobObjectReserved2Information: JOBOBJECTINFOCLASS = 19i32; +pub const JobObjectReserved3Information: JOBOBJECTINFOCLASS = 20i32; +pub const JobObjectReserved4Information: JOBOBJECTINFOCLASS = 21i32; +pub const JobObjectReserved5Information: JOBOBJECTINFOCLASS = 22i32; +pub const JobObjectReserved6Information: JOBOBJECTINFOCLASS = 23i32; +pub const JobObjectReserved7Information: JOBOBJECTINFOCLASS = 24i32; +pub const JobObjectReserved8Information: JOBOBJECTINFOCLASS = 25i32; +pub const JobObjectReserved9Information: JOBOBJECTINFOCLASS = 26i32; +pub const JobObjectSecurityLimitInformation: JOBOBJECTINFOCLASS = 5i32; +pub const JobObjectSiloBasicInformation: JOBOBJECTINFOCLASS = 36i32; +pub const MaxJobObjectInfoClass: JOBOBJECTINFOCLASS = 50i32; +pub const ToleranceHigh: JOBOBJECT_RATE_CONTROL_TOLERANCE = 3i32; +pub const ToleranceIntervalLong: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = 3i32; +pub const ToleranceIntervalMedium: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = 2i32; +pub const ToleranceIntervalShort: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = 1i32; +pub const ToleranceLow: JOBOBJECT_RATE_CONTROL_TOLERANCE = 1i32; +pub const ToleranceMedium: JOBOBJECT_RATE_CONTROL_TOLERANCE = 2i32; +pub type JOBOBJECTINFOCLASS = i32; +pub type JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = i32; +pub type JOBOBJECT_RATE_CONTROL_TOLERANCE = i32; +pub type JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = i32; +pub type JOB_OBJECT_CPU_RATE_CONTROL = u32; +pub type JOB_OBJECT_IO_RATE_CONTROL_FLAGS = i32; +pub type JOB_OBJECT_LIMIT = u32; +pub type JOB_OBJECT_NET_RATE_CONTROL_FLAGS = i32; +pub type JOB_OBJECT_SECURITY = u32; +pub type JOB_OBJECT_TERMINATE_AT_END_ACTION = u32; +pub type JOB_OBJECT_UILIMIT = u32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct JOBOBJECT_ASSOCIATE_COMPLETION_PORT { + pub CompletionKey: *mut ::core::ffi::c_void, + pub CompletionPort: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for JOBOBJECT_ASSOCIATE_COMPLETION_PORT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for JOBOBJECT_ASSOCIATE_COMPLETION_PORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { + pub TotalUserTime: i64, + pub TotalKernelTime: i64, + pub ThisPeriodTotalUserTime: i64, + pub ThisPeriodTotalKernelTime: i64, + pub TotalPageFaultCount: u32, + pub TotalProcesses: u32, + pub ActiveProcesses: u32, + pub TotalTerminatedProcesses: u32, +} +impl ::core::marker::Copy for JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {} +impl ::core::clone::Clone for JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Threading\"`"] +#[cfg(feature = "Win32_System_Threading")] +pub struct JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { + pub BasicInfo: JOBOBJECT_BASIC_ACCOUNTING_INFORMATION, + pub IoInfo: super::Threading::IO_COUNTERS, +} +#[cfg(feature = "Win32_System_Threading")] +impl ::core::marker::Copy for JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {} +#[cfg(feature = "Win32_System_Threading")] +impl ::core::clone::Clone for JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_BASIC_LIMIT_INFORMATION { + pub PerProcessUserTimeLimit: i64, + pub PerJobUserTimeLimit: i64, + pub LimitFlags: JOB_OBJECT_LIMIT, + pub MinimumWorkingSetSize: usize, + pub MaximumWorkingSetSize: usize, + pub ActiveProcessLimit: u32, + pub Affinity: usize, + pub PriorityClass: u32, + pub SchedulingClass: u32, +} +impl ::core::marker::Copy for JOBOBJECT_BASIC_LIMIT_INFORMATION {} +impl ::core::clone::Clone for JOBOBJECT_BASIC_LIMIT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_BASIC_PROCESS_ID_LIST { + pub NumberOfAssignedProcesses: u32, + pub NumberOfProcessIdsInList: u32, + pub ProcessIdList: [usize; 1], +} +impl ::core::marker::Copy for JOBOBJECT_BASIC_PROCESS_ID_LIST {} +impl ::core::clone::Clone for JOBOBJECT_BASIC_PROCESS_ID_LIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_BASIC_UI_RESTRICTIONS { + pub UIRestrictionsClass: JOB_OBJECT_UILIMIT, +} +impl ::core::marker::Copy for JOBOBJECT_BASIC_UI_RESTRICTIONS {} +impl ::core::clone::Clone for JOBOBJECT_BASIC_UI_RESTRICTIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_CPU_RATE_CONTROL_INFORMATION { + pub ControlFlags: JOB_OBJECT_CPU_RATE_CONTROL, + pub Anonymous: JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0, +} +impl ::core::marker::Copy for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {} +impl ::core::clone::Clone for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0 { + pub CpuRate: u32, + pub Weight: u32, + pub Anonymous: JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0, +} +impl ::core::marker::Copy for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0 {} +impl ::core::clone::Clone for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 { + pub MinRate: u16, + pub MaxRate: u16, +} +impl ::core::marker::Copy for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 {} +impl ::core::clone::Clone for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_END_OF_JOB_TIME_INFORMATION { + pub EndOfJobTimeAction: JOB_OBJECT_TERMINATE_AT_END_ACTION, +} +impl ::core::marker::Copy for JOBOBJECT_END_OF_JOB_TIME_INFORMATION {} +impl ::core::clone::Clone for JOBOBJECT_END_OF_JOB_TIME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Threading\"`"] +#[cfg(feature = "Win32_System_Threading")] +pub struct JOBOBJECT_EXTENDED_LIMIT_INFORMATION { + pub BasicLimitInformation: JOBOBJECT_BASIC_LIMIT_INFORMATION, + pub IoInfo: super::Threading::IO_COUNTERS, + pub ProcessMemoryLimit: usize, + pub JobMemoryLimit: usize, + pub PeakProcessMemoryUsed: usize, + pub PeakJobMemoryUsed: usize, +} +#[cfg(feature = "Win32_System_Threading")] +impl ::core::marker::Copy for JOBOBJECT_EXTENDED_LIMIT_INFORMATION {} +#[cfg(feature = "Win32_System_Threading")] +impl ::core::clone::Clone for JOBOBJECT_EXTENDED_LIMIT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_IO_ATTRIBUTION_INFORMATION { + pub ControlFlags: u32, + pub ReadStats: JOBOBJECT_IO_ATTRIBUTION_STATS, + pub WriteStats: JOBOBJECT_IO_ATTRIBUTION_STATS, +} +impl ::core::marker::Copy for JOBOBJECT_IO_ATTRIBUTION_INFORMATION {} +impl ::core::clone::Clone for JOBOBJECT_IO_ATTRIBUTION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_IO_ATTRIBUTION_STATS { + pub IoCount: usize, + pub TotalNonOverlappedQueueTime: u64, + pub TotalNonOverlappedServiceTime: u64, + pub TotalSize: u64, +} +impl ::core::marker::Copy for JOBOBJECT_IO_ATTRIBUTION_STATS {} +impl ::core::clone::Clone for JOBOBJECT_IO_ATTRIBUTION_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION { + pub MaxIops: i64, + pub MaxBandwidth: i64, + pub ReservationIops: i64, + pub VolumeName: ::windows_sys::core::PCWSTR, + pub BaseIoSize: u32, + pub ControlFlags: u32, +} +impl ::core::marker::Copy for JOBOBJECT_IO_RATE_CONTROL_INFORMATION {} +impl ::core::clone::Clone for JOBOBJECT_IO_RATE_CONTROL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V1 { + pub MaxIops: i64, + pub MaxBandwidth: i64, + pub ReservationIops: i64, + pub VolumeName: ::windows_sys::core::PWSTR, + pub BaseIoSize: u32, + pub ControlFlags: JOB_OBJECT_IO_RATE_CONTROL_FLAGS, + pub VolumeNameLength: u16, +} +impl ::core::marker::Copy for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V1 {} +impl ::core::clone::Clone for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 { + pub MaxIops: i64, + pub MaxBandwidth: i64, + pub ReservationIops: i64, + pub VolumeName: ::windows_sys::core::PWSTR, + pub BaseIoSize: u32, + pub ControlFlags: JOB_OBJECT_IO_RATE_CONTROL_FLAGS, + pub VolumeNameLength: u16, + pub CriticalReservationIops: i64, + pub ReservationBandwidth: i64, + pub CriticalReservationBandwidth: i64, + pub MaxTimePercent: i64, + pub ReservationTimePercent: i64, + pub CriticalReservationTimePercent: i64, +} +impl ::core::marker::Copy for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {} +impl ::core::clone::Clone for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 { + pub MaxIops: i64, + pub MaxBandwidth: i64, + pub ReservationIops: i64, + pub VolumeName: ::windows_sys::core::PWSTR, + pub BaseIoSize: u32, + pub ControlFlags: JOB_OBJECT_IO_RATE_CONTROL_FLAGS, + pub VolumeNameLength: u16, + pub CriticalReservationIops: i64, + pub ReservationBandwidth: i64, + pub CriticalReservationBandwidth: i64, + pub MaxTimePercent: i64, + pub ReservationTimePercent: i64, + pub CriticalReservationTimePercent: i64, + pub SoftMaxIops: i64, + pub SoftMaxBandwidth: i64, + pub SoftMaxTimePercent: i64, + pub LimitExcessNotifyIops: i64, + pub LimitExcessNotifyBandwidth: i64, + pub LimitExcessNotifyTimePercent: i64, +} +impl ::core::marker::Copy for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {} +impl ::core::clone::Clone for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_JOBSET_INFORMATION { + pub MemberLevel: u32, +} +impl ::core::marker::Copy for JOBOBJECT_JOBSET_INFORMATION {} +impl ::core::clone::Clone for JOBOBJECT_JOBSET_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_LIMIT_VIOLATION_INFORMATION { + pub LimitFlags: JOB_OBJECT_LIMIT, + pub ViolationLimitFlags: JOB_OBJECT_LIMIT, + pub IoReadBytes: u64, + pub IoReadBytesLimit: u64, + pub IoWriteBytes: u64, + pub IoWriteBytesLimit: u64, + pub PerJobUserTime: i64, + pub PerJobUserTimeLimit: i64, + pub JobMemory: u64, + pub JobMemoryLimit: u64, + pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE, + pub RateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE, +} +impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION {} +impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 { + pub LimitFlags: JOB_OBJECT_LIMIT, + pub ViolationLimitFlags: JOB_OBJECT_LIMIT, + pub IoReadBytes: u64, + pub IoReadBytesLimit: u64, + pub IoWriteBytes: u64, + pub IoWriteBytesLimit: u64, + pub PerJobUserTime: i64, + pub PerJobUserTimeLimit: i64, + pub JobMemory: u64, + pub Anonymous1: JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0, + pub Anonymous2: JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1, + pub Anonymous3: JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2, + pub JobLowMemoryLimit: u64, + pub IoRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE, + pub IoRateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE, + pub NetRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE, + pub NetRateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE, +} +impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 {} +impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0 { + pub JobHighMemoryLimit: u64, + pub JobMemoryLimit: u64, +} +impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0 {} +impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1 { + pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE, + pub CpuRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE, +} +impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1 {} +impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2 { + pub RateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE, + pub CpuRateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE, +} +impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2 {} +impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_NET_RATE_CONTROL_INFORMATION { + pub MaxBandwidth: u64, + pub ControlFlags: JOB_OBJECT_NET_RATE_CONTROL_FLAGS, + pub DscpTag: u8, +} +impl ::core::marker::Copy for JOBOBJECT_NET_RATE_CONTROL_INFORMATION {} +impl ::core::clone::Clone for JOBOBJECT_NET_RATE_CONTROL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION { + pub IoReadBytesLimit: u64, + pub IoWriteBytesLimit: u64, + pub PerJobUserTimeLimit: i64, + pub JobMemoryLimit: u64, + pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE, + pub RateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL, + pub LimitFlags: JOB_OBJECT_LIMIT, +} +impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {} +impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 { + pub IoReadBytesLimit: u64, + pub IoWriteBytesLimit: u64, + pub PerJobUserTimeLimit: i64, + pub Anonymous1: JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0, + pub Anonymous2: JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1, + pub Anonymous3: JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2, + pub LimitFlags: JOB_OBJECT_LIMIT, + pub IoRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE, + pub JobLowMemoryLimit: u64, + pub IoRateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL, + pub NetRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE, + pub NetRateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL, +} +impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 {} +impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0 { + pub JobHighMemoryLimit: u64, + pub JobMemoryLimit: u64, +} +impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0 {} +impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1 { + pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE, + pub CpuRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE, +} +impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1 {} +impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2 { + pub RateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL, + pub CpuRateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL, +} +impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2 {} +impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct JOBOBJECT_SECURITY_LIMIT_INFORMATION { + pub SecurityLimitFlags: JOB_OBJECT_SECURITY, + pub JobToken: super::super::Foundation::HANDLE, + pub SidsToDisable: *mut super::super::Security::TOKEN_GROUPS, + pub PrivilegesToDelete: *mut super::super::Security::TOKEN_PRIVILEGES, + pub RestrictedSids: *mut super::super::Security::TOKEN_GROUPS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for JOBOBJECT_SECURITY_LIMIT_INFORMATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for JOBOBJECT_SECURITY_LIMIT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct JOB_SET_ARRAY { + pub JobHandle: super::super::Foundation::HANDLE, + pub MemberLevel: u32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for JOB_SET_ARRAY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for JOB_SET_ARRAY { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Js/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Js/mod.rs new file mode 100644 index 000000000..2ea4162f6 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Js/mod.rs @@ -0,0 +1,161 @@ +::windows_targets::link!("chakra.dll" "system" fn JsAddRef(r#ref : *const ::core::ffi::c_void, count : *mut u32) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsBoolToBoolean(value : u8, booleanvalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsBooleanToBool(value : *const ::core::ffi::c_void, boolvalue : *mut bool) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsCallFunction(function : *const ::core::ffi::c_void, arguments : *const *const ::core::ffi::c_void, argumentcount : u16, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsCollectGarbage(runtime : *const ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsConstructObject(function : *const ::core::ffi::c_void, arguments : *const *const ::core::ffi::c_void, argumentcount : u16, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsConvertValueToBoolean(value : *const ::core::ffi::c_void, booleanvalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsConvertValueToNumber(value : *const ::core::ffi::c_void, numbervalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsConvertValueToObject(value : *const ::core::ffi::c_void, object : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsConvertValueToString(value : *const ::core::ffi::c_void, stringvalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsCreateArray(length : u32, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Diagnostics_Debug_ActiveScript")] +::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug_ActiveScript\"`"] fn JsCreateContext(runtime : *const ::core::ffi::c_void, debugapplication : super::Diagnostics::Debug::ActiveScript:: IDebugApplication64, newcontext : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Diagnostics_Debug_ActiveScript")] +::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug_ActiveScript\"`"] fn JsCreateContext(runtime : *const ::core::ffi::c_void, debugapplication : super::Diagnostics::Debug::ActiveScript:: IDebugApplication32, newcontext : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsCreateError(message : *const ::core::ffi::c_void, error : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsCreateExternalObject(data : *const ::core::ffi::c_void, finalizecallback : JsFinalizeCallback, object : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsCreateFunction(nativefunction : JsNativeFunction, callbackstate : *const ::core::ffi::c_void, function : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsCreateObject(object : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsCreateRangeError(message : *const ::core::ffi::c_void, error : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsCreateReferenceError(message : *const ::core::ffi::c_void, error : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsCreateRuntime(attributes : JsRuntimeAttributes, runtimeversion : JsRuntimeVersion, threadservice : JsThreadServiceCallback, runtime : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsCreateSyntaxError(message : *const ::core::ffi::c_void, error : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsCreateTypeError(message : *const ::core::ffi::c_void, error : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsCreateURIError(message : *const ::core::ffi::c_void, error : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsDefineProperty(object : *const ::core::ffi::c_void, propertyid : *const ::core::ffi::c_void, propertydescriptor : *const ::core::ffi::c_void, result : *mut bool) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsDeleteIndexedProperty(object : *const ::core::ffi::c_void, index : *const ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsDeleteProperty(object : *const ::core::ffi::c_void, propertyid : *const ::core::ffi::c_void, usestrictrules : u8, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsDisableRuntimeExecution(runtime : *const ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsDisposeRuntime(runtime : *const ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsDoubleToNumber(doublevalue : f64, value : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsEnableRuntimeExecution(runtime : *const ::core::ffi::c_void) -> JsErrorCode); +#[cfg(feature = "Win32_System_Diagnostics_Debug_ActiveScript")] +::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug_ActiveScript\"`"] fn JsEnumerateHeap(enumerator : *mut super::Diagnostics::Debug::ActiveScript:: IActiveScriptProfilerHeapEnum) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsEquals(object1 : *const ::core::ffi::c_void, object2 : *const ::core::ffi::c_void, result : *mut bool) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetAndClearException(exception : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetCurrentContext(currentcontext : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetExtensionAllowed(object : *const ::core::ffi::c_void, value : *mut bool) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetExternalData(object : *const ::core::ffi::c_void, externaldata : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetFalseValue(falsevalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetGlobalObject(globalobject : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetIndexedProperty(object : *const ::core::ffi::c_void, index : *const ::core::ffi::c_void, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetNullValue(nullvalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetOwnPropertyDescriptor(object : *const ::core::ffi::c_void, propertyid : *const ::core::ffi::c_void, propertydescriptor : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetOwnPropertyNames(object : *const ::core::ffi::c_void, propertynames : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetProperty(object : *const ::core::ffi::c_void, propertyid : *const ::core::ffi::c_void, value : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetPropertyIdFromName(name : ::windows_sys::core::PCWSTR, propertyid : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetPropertyNameFromId(propertyid : *const ::core::ffi::c_void, name : *mut *mut u16) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetPrototype(object : *const ::core::ffi::c_void, prototypeobject : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetRuntime(context : *const ::core::ffi::c_void, runtime : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetRuntimeMemoryLimit(runtime : *const ::core::ffi::c_void, memorylimit : *mut usize) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetRuntimeMemoryUsage(runtime : *const ::core::ffi::c_void, memoryusage : *mut usize) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetStringLength(stringvalue : *const ::core::ffi::c_void, length : *mut i32) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetTrueValue(truevalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetUndefinedValue(undefinedvalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsGetValueType(value : *const ::core::ffi::c_void, r#type : *mut JsValueType) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsHasException(hasexception : *mut bool) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsHasExternalData(object : *const ::core::ffi::c_void, value : *mut bool) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsHasIndexedProperty(object : *const ::core::ffi::c_void, index : *const ::core::ffi::c_void, result : *mut bool) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsHasProperty(object : *const ::core::ffi::c_void, propertyid : *const ::core::ffi::c_void, hasproperty : *mut bool) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsIdle(nextidletick : *mut u32) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsIntToNumber(intvalue : i32, value : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsIsEnumeratingHeap(isenumeratingheap : *mut bool) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsIsRuntimeExecutionDisabled(runtime : *const ::core::ffi::c_void, isdisabled : *mut bool) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsNumberToDouble(value : *const ::core::ffi::c_void, doublevalue : *mut f64) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsParseScript(script : ::windows_sys::core::PCWSTR, sourcecontext : usize, sourceurl : ::windows_sys::core::PCWSTR, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsParseSerializedScript(script : ::windows_sys::core::PCWSTR, buffer : *const u8, sourcecontext : usize, sourceurl : ::windows_sys::core::PCWSTR, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsPointerToString(stringvalue : ::windows_sys::core::PCWSTR, stringlength : usize, value : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsPreventExtension(object : *const ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsRelease(r#ref : *const ::core::ffi::c_void, count : *mut u32) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsRunScript(script : ::windows_sys::core::PCWSTR, sourcecontext : usize, sourceurl : ::windows_sys::core::PCWSTR, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsRunSerializedScript(script : ::windows_sys::core::PCWSTR, buffer : *const u8, sourcecontext : usize, sourceurl : ::windows_sys::core::PCWSTR, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsSerializeScript(script : ::windows_sys::core::PCWSTR, buffer : *mut u8, buffersize : *mut u32) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsSetCurrentContext(context : *const ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsSetException(exception : *const ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsSetExternalData(object : *const ::core::ffi::c_void, externaldata : *const ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsSetIndexedProperty(object : *const ::core::ffi::c_void, index : *const ::core::ffi::c_void, value : *const ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsSetProperty(object : *const ::core::ffi::c_void, propertyid : *const ::core::ffi::c_void, value : *const ::core::ffi::c_void, usestrictrules : u8) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsSetPrototype(object : *const ::core::ffi::c_void, prototypeobject : *const ::core::ffi::c_void) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsSetRuntimeBeforeCollectCallback(runtime : *const ::core::ffi::c_void, callbackstate : *const ::core::ffi::c_void, beforecollectcallback : JsBeforeCollectCallback) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsSetRuntimeMemoryAllocationCallback(runtime : *const ::core::ffi::c_void, callbackstate : *const ::core::ffi::c_void, allocationcallback : JsMemoryAllocationCallback) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsSetRuntimeMemoryLimit(runtime : *const ::core::ffi::c_void, memorylimit : usize) -> JsErrorCode); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Diagnostics_Debug_ActiveScript")] +::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug_ActiveScript\"`"] fn JsStartDebugging(debugapplication : super::Diagnostics::Debug::ActiveScript:: IDebugApplication64) -> JsErrorCode); +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Diagnostics_Debug_ActiveScript")] +::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug_ActiveScript\"`"] fn JsStartDebugging(debugapplication : super::Diagnostics::Debug::ActiveScript:: IDebugApplication32) -> JsErrorCode); +#[cfg(feature = "Win32_System_Diagnostics_Debug_ActiveScript")] +::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug_ActiveScript\"`"] fn JsStartProfiling(callback : super::Diagnostics::Debug::ActiveScript:: IActiveScriptProfilerCallback, eventmask : super::Diagnostics::Debug::ActiveScript:: PROFILER_EVENT_MASK, context : u32) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsStopProfiling(reason : ::windows_sys::core::HRESULT) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsStrictEquals(object1 : *const ::core::ffi::c_void, object2 : *const ::core::ffi::c_void, result : *mut bool) -> JsErrorCode); +::windows_targets::link!("chakra.dll" "system" fn JsStringToPointer(value : *const ::core::ffi::c_void, stringvalue : *mut *mut u16, stringlength : *mut usize) -> JsErrorCode); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn JsValueToVariant(object : *const ::core::ffi::c_void, variant : *mut super::Variant:: VARIANT) -> JsErrorCode); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn JsVariantToValue(variant : *const super::Variant:: VARIANT, value : *mut *mut ::core::ffi::c_void) -> JsErrorCode); +pub const JS_SOURCE_CONTEXT_NONE: u64 = 18446744073709551615u64; +pub const JsArray: JsValueType = 8i32; +pub const JsBoolean: JsValueType = 4i32; +pub const JsError: JsValueType = 7i32; +pub const JsErrorAlreadyDebuggingContext: JsErrorCode = 65552u32; +pub const JsErrorAlreadyProfilingContext: JsErrorCode = 65553u32; +pub const JsErrorArgumentNotObject: JsErrorCode = 65548u32; +pub const JsErrorBadSerializedScript: JsErrorCode = 65544u32; +pub const JsErrorCannotDisableExecution: JsErrorCode = 65546u32; +pub const JsErrorCannotSerializeDebugScript: JsErrorCode = 65551u32; +pub const JsErrorCategoryEngine: JsErrorCode = 131072u32; +pub const JsErrorCategoryFatal: JsErrorCode = 262144u32; +pub const JsErrorCategoryScript: JsErrorCode = 196608u32; +pub const JsErrorCategoryUsage: JsErrorCode = 65536u32; +pub const JsErrorFatal: JsErrorCode = 262145u32; +pub const JsErrorHeapEnumInProgress: JsErrorCode = 65547u32; +pub const JsErrorIdleNotEnabled: JsErrorCode = 65554u32; +pub const JsErrorInDisabledState: JsErrorCode = 65545u32; +pub const JsErrorInExceptionState: JsErrorCode = 65540u32; +pub const JsErrorInProfileCallback: JsErrorCode = 65549u32; +pub const JsErrorInThreadServiceCallback: JsErrorCode = 65550u32; +pub const JsErrorInvalidArgument: JsErrorCode = 65537u32; +pub const JsErrorNoCurrentContext: JsErrorCode = 65539u32; +pub const JsErrorNotImplemented: JsErrorCode = 65541u32; +pub const JsErrorNullArgument: JsErrorCode = 65538u32; +pub const JsErrorOutOfMemory: JsErrorCode = 131073u32; +pub const JsErrorRuntimeInUse: JsErrorCode = 65543u32; +pub const JsErrorScriptCompile: JsErrorCode = 196610u32; +pub const JsErrorScriptEvalDisabled: JsErrorCode = 196612u32; +pub const JsErrorScriptException: JsErrorCode = 196609u32; +pub const JsErrorScriptTerminated: JsErrorCode = 196611u32; +pub const JsErrorWrongThread: JsErrorCode = 65542u32; +pub const JsFunction: JsValueType = 6i32; +pub const JsMemoryAllocate: JsMemoryEventType = 0i32; +pub const JsMemoryFailure: JsMemoryEventType = 2i32; +pub const JsMemoryFree: JsMemoryEventType = 1i32; +pub const JsNoError: JsErrorCode = 0u32; +pub const JsNull: JsValueType = 1i32; +pub const JsNumber: JsValueType = 2i32; +pub const JsObject: JsValueType = 5i32; +pub const JsRuntimeAttributeAllowScriptInterrupt: JsRuntimeAttributes = 2i32; +pub const JsRuntimeAttributeDisableBackgroundWork: JsRuntimeAttributes = 1i32; +pub const JsRuntimeAttributeDisableEval: JsRuntimeAttributes = 16i32; +pub const JsRuntimeAttributeDisableNativeCodeGeneration: JsRuntimeAttributes = 8i32; +pub const JsRuntimeAttributeEnableIdleProcessing: JsRuntimeAttributes = 4i32; +pub const JsRuntimeAttributeNone: JsRuntimeAttributes = 0i32; +pub const JsRuntimeVersion10: JsRuntimeVersion = 0i32; +pub const JsRuntimeVersion11: JsRuntimeVersion = 1i32; +pub const JsRuntimeVersionEdge: JsRuntimeVersion = -1i32; +pub const JsString: JsValueType = 3i32; +pub const JsUndefined: JsValueType = 0i32; +pub type JsErrorCode = u32; +pub type JsMemoryEventType = i32; +pub type JsRuntimeAttributes = i32; +pub type JsRuntimeVersion = i32; +pub type JsValueType = i32; +pub type JsBackgroundWorkItemCallback = ::core::option::Option ()>; +pub type JsBeforeCollectCallback = ::core::option::Option ()>; +pub type JsFinalizeCallback = ::core::option::Option ()>; +pub type JsMemoryAllocationCallback = ::core::option::Option bool>; +pub type JsNativeFunction = ::core::option::Option *mut ::core::ffi::c_void>; +pub type JsThreadServiceCallback = ::core::option::Option bool>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Kernel/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Kernel/mod.rs new file mode 100644 index 000000000..dc2363a63 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Kernel/mod.rs @@ -0,0 +1,485 @@ +::windows_targets::link!("ntdll.dll" "system" fn RtlFirstEntrySList(listhead : *const SLIST_HEADER) -> *mut SLIST_ENTRY); +::windows_targets::link!("ntdll.dll" "system" fn RtlInitializeSListHead(listhead : *mut SLIST_HEADER) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlInterlockedFlushSList(listhead : *mut SLIST_HEADER) -> *mut SLIST_ENTRY); +::windows_targets::link!("ntdll.dll" "system" fn RtlInterlockedPopEntrySList(listhead : *mut SLIST_HEADER) -> *mut SLIST_ENTRY); +::windows_targets::link!("ntdll.dll" "system" fn RtlInterlockedPushEntrySList(listhead : *mut SLIST_HEADER, listentry : *mut SLIST_ENTRY) -> *mut SLIST_ENTRY); +::windows_targets::link!("ntdll.dll" "system" fn RtlInterlockedPushListSListEx(listhead : *mut SLIST_HEADER, list : *mut SLIST_ENTRY, listend : *mut SLIST_ENTRY, count : u32) -> *mut SLIST_ENTRY); +::windows_targets::link!("ntdll.dll" "system" fn RtlQueryDepthSList(listhead : *const SLIST_HEADER) -> u16); +pub const BackOffice: SUITE_TYPE = 2i32; +pub const Blade: SUITE_TYPE = 10i32; +pub const CommunicationServer: SUITE_TYPE = 3i32; +pub const ComputeServer: SUITE_TYPE = 14i32; +pub const DEFAULT_COMPARTMENT_ID: COMPARTMENT_ID = 1i32; +pub const DataCenter: SUITE_TYPE = 7i32; +pub const EmbeddedNT: SUITE_TYPE = 6i32; +pub const EmbeddedRestricted: SUITE_TYPE = 11i32; +pub const Enterprise: SUITE_TYPE = 1i32; +pub const ExceptionCollidedUnwind: EXCEPTION_DISPOSITION = 3i32; +pub const ExceptionContinueExecution: EXCEPTION_DISPOSITION = 0i32; +pub const ExceptionContinueSearch: EXCEPTION_DISPOSITION = 1i32; +pub const ExceptionNestedException: EXCEPTION_DISPOSITION = 2i32; +pub const MAXUCHAR: u32 = 255u32; +pub const MAXULONG: u32 = 4294967295u32; +pub const MAXUSHORT: u32 = 65535u32; +pub const MaxSuiteType: SUITE_TYPE = 18i32; +pub const MultiUserTS: SUITE_TYPE = 17i32; +pub const NULL64: u32 = 0u32; +pub const NotificationEvent: EVENT_TYPE = 0i32; +pub const NotificationTimer: TIMER_TYPE = 0i32; +pub const NtProductLanManNt: NT_PRODUCT_TYPE = 2i32; +pub const NtProductServer: NT_PRODUCT_TYPE = 3i32; +pub const NtProductWinNt: NT_PRODUCT_TYPE = 1i32; +pub const OBJ_CASE_INSENSITIVE: i32 = 64i32; +pub const OBJ_DONT_REPARSE: i32 = 4096i32; +pub const OBJ_EXCLUSIVE: i32 = 32i32; +pub const OBJ_FORCE_ACCESS_CHECK: i32 = 1024i32; +pub const OBJ_HANDLE_TAGBITS: i32 = 3i32; +pub const OBJ_IGNORE_IMPERSONATED_DEVICEMAP: i32 = 2048i32; +pub const OBJ_INHERIT: i32 = 2i32; +pub const OBJ_KERNEL_HANDLE: i32 = 512i32; +pub const OBJ_OPENIF: i32 = 128i32; +pub const OBJ_OPENLINK: i32 = 256i32; +pub const OBJ_PERMANENT: i32 = 16i32; +pub const OBJ_VALID_ATTRIBUTES: i32 = 8178i32; +pub const Personal: SUITE_TYPE = 9i32; +pub const PhoneNT: SUITE_TYPE = 16i32; +pub const RTL_BALANCED_NODE_RESERVED_PARENT_MASK: u32 = 3u32; +pub const SecurityAppliance: SUITE_TYPE = 12i32; +pub const SingleUserTS: SUITE_TYPE = 8i32; +pub const SmallBusiness: SUITE_TYPE = 0i32; +pub const SmallBusinessRestricted: SUITE_TYPE = 5i32; +pub const StorageServer: SUITE_TYPE = 13i32; +pub const SynchronizationEvent: EVENT_TYPE = 1i32; +pub const SynchronizationTimer: TIMER_TYPE = 1i32; +pub const TerminalServer: SUITE_TYPE = 4i32; +pub const UNSPECIFIED_COMPARTMENT_ID: COMPARTMENT_ID = 0i32; +pub const WHServer: SUITE_TYPE = 15i32; +pub const WaitAll: WAIT_TYPE = 0i32; +pub const WaitAny: WAIT_TYPE = 1i32; +pub const WaitDequeue: WAIT_TYPE = 3i32; +pub const WaitDpc: WAIT_TYPE = 4i32; +pub const WaitNotification: WAIT_TYPE = 2i32; +pub type COMPARTMENT_ID = i32; +pub type EVENT_TYPE = i32; +pub type EXCEPTION_DISPOSITION = i32; +pub type NT_PRODUCT_TYPE = i32; +pub type SUITE_TYPE = i32; +pub type TIMER_TYPE = i32; +pub type WAIT_TYPE = i32; +#[repr(C)] +pub struct CSTRING { + pub Length: u16, + pub MaximumLength: u16, + pub Buffer: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for CSTRING {} +impl ::core::clone::Clone for CSTRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub struct EXCEPTION_REGISTRATION_RECORD { + pub Next: *mut EXCEPTION_REGISTRATION_RECORD, + pub Handler: EXCEPTION_ROUTINE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::marker::Copy for EXCEPTION_REGISTRATION_RECORD {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::clone::Clone for EXCEPTION_REGISTRATION_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct FLOATING_SAVE_AREA { + pub ControlWord: u32, + pub StatusWord: u32, + pub TagWord: u32, + pub ErrorOffset: u32, + pub ErrorSelector: u32, + pub DataOffset: u32, + pub DataSelector: u32, + pub RegisterArea: [u8; 80], + pub Cr0NpxState: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for FLOATING_SAVE_AREA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for FLOATING_SAVE_AREA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct FLOATING_SAVE_AREA { + pub ControlWord: u32, + pub StatusWord: u32, + pub TagWord: u32, + pub ErrorOffset: u32, + pub ErrorSelector: u32, + pub DataOffset: u32, + pub DataSelector: u32, + pub RegisterArea: [u8; 80], + pub Spare0: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for FLOATING_SAVE_AREA {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for FLOATING_SAVE_AREA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LIST_ENTRY { + pub Flink: *mut LIST_ENTRY, + pub Blink: *mut LIST_ENTRY, +} +impl ::core::marker::Copy for LIST_ENTRY {} +impl ::core::clone::Clone for LIST_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LIST_ENTRY32 { + pub Flink: u32, + pub Blink: u32, +} +impl ::core::marker::Copy for LIST_ENTRY32 {} +impl ::core::clone::Clone for LIST_ENTRY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LIST_ENTRY64 { + pub Flink: u64, + pub Blink: u64, +} +impl ::core::marker::Copy for LIST_ENTRY64 {} +impl ::core::clone::Clone for LIST_ENTRY64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub struct NT_TIB { + pub ExceptionList: *mut EXCEPTION_REGISTRATION_RECORD, + pub StackBase: *mut ::core::ffi::c_void, + pub StackLimit: *mut ::core::ffi::c_void, + pub SubSystemTib: *mut ::core::ffi::c_void, + pub Anonymous: NT_TIB_0, + pub ArbitraryUserPointer: *mut ::core::ffi::c_void, + pub Self_: *mut NT_TIB, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::marker::Copy for NT_TIB {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::clone::Clone for NT_TIB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub union NT_TIB_0 { + pub FiberData: *mut ::core::ffi::c_void, + pub Version: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::marker::Copy for NT_TIB_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +impl ::core::clone::Clone for NT_TIB_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OBJECTID { + pub Lineage: ::windows_sys::core::GUID, + pub Uniquifier: u32, +} +impl ::core::marker::Copy for OBJECTID {} +impl ::core::clone::Clone for OBJECTID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSOR_NUMBER { + pub Group: u16, + pub Number: u8, + pub Reserved: u8, +} +impl ::core::marker::Copy for PROCESSOR_NUMBER {} +impl ::core::clone::Clone for PROCESSOR_NUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUAD { + pub Anonymous: QUAD_0, +} +impl ::core::marker::Copy for QUAD {} +impl ::core::clone::Clone for QUAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union QUAD_0 { + pub UseThisFieldToCopy: i64, + pub DoNotUseThisField: f64, +} +impl ::core::marker::Copy for QUAD_0 {} +impl ::core::clone::Clone for QUAD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTL_BALANCED_NODE { + pub Anonymous1: RTL_BALANCED_NODE_0, + pub Anonymous2: RTL_BALANCED_NODE_1, +} +impl ::core::marker::Copy for RTL_BALANCED_NODE {} +impl ::core::clone::Clone for RTL_BALANCED_NODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union RTL_BALANCED_NODE_0 { + pub Children: [*mut RTL_BALANCED_NODE; 2], + pub Anonymous: RTL_BALANCED_NODE_0_0, +} +impl ::core::marker::Copy for RTL_BALANCED_NODE_0 {} +impl ::core::clone::Clone for RTL_BALANCED_NODE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RTL_BALANCED_NODE_0_0 { + pub Left: *mut RTL_BALANCED_NODE, + pub Right: *mut RTL_BALANCED_NODE, +} +impl ::core::marker::Copy for RTL_BALANCED_NODE_0_0 {} +impl ::core::clone::Clone for RTL_BALANCED_NODE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union RTL_BALANCED_NODE_1 { + pub _bitfield: u8, + pub ParentValue: usize, +} +impl ::core::marker::Copy for RTL_BALANCED_NODE_1 {} +impl ::core::clone::Clone for RTL_BALANCED_NODE_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SINGLE_LIST_ENTRY { + pub Next: *mut SINGLE_LIST_ENTRY, +} +impl ::core::marker::Copy for SINGLE_LIST_ENTRY {} +impl ::core::clone::Clone for SINGLE_LIST_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SINGLE_LIST_ENTRY32 { + pub Next: u32, +} +impl ::core::marker::Copy for SINGLE_LIST_ENTRY32 {} +impl ::core::clone::Clone for SINGLE_LIST_ENTRY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SLIST_ENTRY { + pub Next: *mut SLIST_ENTRY, +} +impl ::core::marker::Copy for SLIST_ENTRY {} +impl ::core::clone::Clone for SLIST_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "aarch64")] +pub union SLIST_HEADER { + pub Anonymous: SLIST_HEADER_0, + pub HeaderArm64: SLIST_HEADER_1, +} +#[cfg(target_arch = "aarch64")] +impl ::core::marker::Copy for SLIST_HEADER {} +#[cfg(target_arch = "aarch64")] +impl ::core::clone::Clone for SLIST_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "aarch64")] +pub struct SLIST_HEADER_0 { + pub Alignment: u64, + pub Region: u64, +} +#[cfg(target_arch = "aarch64")] +impl ::core::marker::Copy for SLIST_HEADER_0 {} +#[cfg(target_arch = "aarch64")] +impl ::core::clone::Clone for SLIST_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "aarch64")] +pub struct SLIST_HEADER_1 { + pub _bitfield1: u64, + pub _bitfield2: u64, +} +#[cfg(target_arch = "aarch64")] +impl ::core::marker::Copy for SLIST_HEADER_1 {} +#[cfg(target_arch = "aarch64")] +impl ::core::clone::Clone for SLIST_HEADER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86_64")] +pub union SLIST_HEADER { + pub Anonymous: SLIST_HEADER_0, + pub HeaderX64: SLIST_HEADER_1, +} +#[cfg(target_arch = "x86_64")] +impl ::core::marker::Copy for SLIST_HEADER {} +#[cfg(target_arch = "x86_64")] +impl ::core::clone::Clone for SLIST_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86_64")] +pub struct SLIST_HEADER_0 { + pub Alignment: u64, + pub Region: u64, +} +#[cfg(target_arch = "x86_64")] +impl ::core::marker::Copy for SLIST_HEADER_0 {} +#[cfg(target_arch = "x86_64")] +impl ::core::clone::Clone for SLIST_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86_64")] +pub struct SLIST_HEADER_1 { + pub _bitfield1: u64, + pub _bitfield2: u64, +} +#[cfg(target_arch = "x86_64")] +impl ::core::marker::Copy for SLIST_HEADER_1 {} +#[cfg(target_arch = "x86_64")] +impl ::core::clone::Clone for SLIST_HEADER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub union SLIST_HEADER { + pub Alignment: u64, + pub Anonymous: SLIST_HEADER_0, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SLIST_HEADER {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SLIST_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct SLIST_HEADER_0 { + pub Next: SINGLE_LIST_ENTRY, + pub Depth: u16, + pub CpuId: u16, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SLIST_HEADER_0 {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SLIST_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STRING { + pub Length: u16, + pub MaximumLength: u16, + pub Buffer: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for STRING {} +impl ::core::clone::Clone for STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STRING32 { + pub Length: u16, + pub MaximumLength: u16, + pub Buffer: u32, +} +impl ::core::marker::Copy for STRING32 {} +impl ::core::clone::Clone for STRING32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STRING64 { + pub Length: u16, + pub MaximumLength: u16, + pub Buffer: u64, +} +impl ::core::marker::Copy for STRING64 {} +impl ::core::clone::Clone for STRING64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WNF_STATE_NAME { + pub Data: [u32; 2], +} +impl ::core::marker::Copy for WNF_STATE_NAME {} +impl ::core::clone::Clone for WNF_STATE_NAME { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type EXCEPTION_ROUTINE = ::core::option::Option EXCEPTION_DISPOSITION>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/LibraryLoader/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/LibraryLoader/mod.rs new file mode 100644 index 000000000..c090e0ec7 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/LibraryLoader/mod.rs @@ -0,0 +1,181 @@ +::windows_targets::link!("kernel32.dll" "system" fn AddDllDirectory(newdirectory : ::windows_sys::core::PCWSTR) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BeginUpdateResourceA(pfilename : ::windows_sys::core::PCSTR, bdeleteexistingresources : super::super::Foundation:: BOOL) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BeginUpdateResourceW(pfilename : ::windows_sys::core::PCWSTR, bdeleteexistingresources : super::super::Foundation:: BOOL) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DisableThreadLibraryCalls(hlibmodule : super::super::Foundation:: HMODULE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EndUpdateResourceA(hupdate : super::super::Foundation:: HANDLE, fdiscard : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EndUpdateResourceW(hupdate : super::super::Foundation:: HANDLE, fdiscard : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumResourceLanguagesA(hmodule : super::super::Foundation:: HMODULE, lptype : ::windows_sys::core::PCSTR, lpname : ::windows_sys::core::PCSTR, lpenumfunc : ENUMRESLANGPROCA, lparam : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumResourceLanguagesExA(hmodule : super::super::Foundation:: HMODULE, lptype : ::windows_sys::core::PCSTR, lpname : ::windows_sys::core::PCSTR, lpenumfunc : ENUMRESLANGPROCA, lparam : isize, dwflags : u32, langid : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumResourceLanguagesExW(hmodule : super::super::Foundation:: HMODULE, lptype : ::windows_sys::core::PCWSTR, lpname : ::windows_sys::core::PCWSTR, lpenumfunc : ENUMRESLANGPROCW, lparam : isize, dwflags : u32, langid : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumResourceLanguagesW(hmodule : super::super::Foundation:: HMODULE, lptype : ::windows_sys::core::PCWSTR, lpname : ::windows_sys::core::PCWSTR, lpenumfunc : ENUMRESLANGPROCW, lparam : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumResourceNamesA(hmodule : super::super::Foundation:: HMODULE, lptype : ::windows_sys::core::PCSTR, lpenumfunc : ENUMRESNAMEPROCA, lparam : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumResourceNamesExA(hmodule : super::super::Foundation:: HMODULE, lptype : ::windows_sys::core::PCSTR, lpenumfunc : ENUMRESNAMEPROCA, lparam : isize, dwflags : u32, langid : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumResourceNamesExW(hmodule : super::super::Foundation:: HMODULE, lptype : ::windows_sys::core::PCWSTR, lpenumfunc : ENUMRESNAMEPROCW, lparam : isize, dwflags : u32, langid : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumResourceNamesW(hmodule : super::super::Foundation:: HMODULE, lptype : ::windows_sys::core::PCWSTR, lpenumfunc : ENUMRESNAMEPROCW, lparam : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumResourceTypesA(hmodule : super::super::Foundation:: HMODULE, lpenumfunc : ENUMRESTYPEPROCA, lparam : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumResourceTypesExA(hmodule : super::super::Foundation:: HMODULE, lpenumfunc : ENUMRESTYPEPROCA, lparam : isize, dwflags : u32, langid : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumResourceTypesExW(hmodule : super::super::Foundation:: HMODULE, lpenumfunc : ENUMRESTYPEPROCW, lparam : isize, dwflags : u32, langid : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumResourceTypesW(hmodule : super::super::Foundation:: HMODULE, lpenumfunc : ENUMRESTYPEPROCW, lparam : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindResourceA(hmodule : super::super::Foundation:: HMODULE, lpname : ::windows_sys::core::PCSTR, lptype : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HRSRC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindResourceExA(hmodule : super::super::Foundation:: HMODULE, lptype : ::windows_sys::core::PCSTR, lpname : ::windows_sys::core::PCSTR, wlanguage : u16) -> super::super::Foundation:: HRSRC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindResourceExW(hmodule : super::super::Foundation:: HMODULE, lptype : ::windows_sys::core::PCWSTR, lpname : ::windows_sys::core::PCWSTR, wlanguage : u16) -> super::super::Foundation:: HRSRC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindResourceW(hmodule : super::super::Foundation:: HMODULE, lpname : ::windows_sys::core::PCWSTR, lptype : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HRSRC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeLibraryAndExitThread(hlibmodule : super::super::Foundation:: HMODULE, dwexitcode : u32) -> !); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeResource(hresdata : super::super::Foundation:: HGLOBAL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetDllDirectoryA(nbufferlength : u32, lpbuffer : ::windows_sys::core::PSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetDllDirectoryW(nbufferlength : u32, lpbuffer : ::windows_sys::core::PWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetModuleFileNameA(hmodule : super::super::Foundation:: HMODULE, lpfilename : ::windows_sys::core::PSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetModuleFileNameW(hmodule : super::super::Foundation:: HMODULE, lpfilename : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetModuleHandleA(lpmodulename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HMODULE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetModuleHandleExA(dwflags : u32, lpmodulename : ::windows_sys::core::PCSTR, phmodule : *mut super::super::Foundation:: HMODULE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetModuleHandleExW(dwflags : u32, lpmodulename : ::windows_sys::core::PCWSTR, phmodule : *mut super::super::Foundation:: HMODULE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetModuleHandleW(lpmodulename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HMODULE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcAddress(hmodule : super::super::Foundation:: HMODULE, lpprocname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: FARPROC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadLibraryA(lplibfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HMODULE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadLibraryExA(lplibfilename : ::windows_sys::core::PCSTR, hfile : super::super::Foundation:: HANDLE, dwflags : LOAD_LIBRARY_FLAGS) -> super::super::Foundation:: HMODULE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadLibraryExW(lplibfilename : ::windows_sys::core::PCWSTR, hfile : super::super::Foundation:: HANDLE, dwflags : LOAD_LIBRARY_FLAGS) -> super::super::Foundation:: HMODULE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadLibraryW(lplibfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HMODULE); +::windows_targets::link!("kernel32.dll" "system" fn LoadModule(lpmodulename : ::windows_sys::core::PCSTR, lpparameterblock : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadPackagedLibrary(lpwlibfilename : ::windows_sys::core::PCWSTR, reserved : u32) -> super::super::Foundation:: HMODULE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadResource(hmodule : super::super::Foundation:: HMODULE, hresinfo : super::super::Foundation:: HRSRC) -> super::super::Foundation:: HGLOBAL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LockResource(hresdata : super::super::Foundation:: HGLOBAL) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveDllDirectory(cookie : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDefaultDllDirectories(directoryflags : LOAD_LIBRARY_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDllDirectoryA(lppathname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDllDirectoryW(lppathname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SizeofResource(hmodule : super::super::Foundation:: HMODULE, hresinfo : super::super::Foundation:: HRSRC) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdateResourceA(hupdate : super::super::Foundation:: HANDLE, lptype : ::windows_sys::core::PCSTR, lpname : ::windows_sys::core::PCSTR, wlanguage : u16, lpdata : *const ::core::ffi::c_void, cb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdateResourceW(hupdate : super::super::Foundation:: HANDLE, lptype : ::windows_sys::core::PCWSTR, lpname : ::windows_sys::core::PCWSTR, wlanguage : u16, lpdata : *const ::core::ffi::c_void, cb : u32) -> super::super::Foundation:: BOOL); +pub const CURRENT_IMPORT_REDIRECTION_VERSION: u32 = 1u32; +pub const DONT_RESOLVE_DLL_REFERENCES: LOAD_LIBRARY_FLAGS = 1u32; +pub const FIND_RESOURCE_DIRECTORY_LANGUAGES: u32 = 1024u32; +pub const FIND_RESOURCE_DIRECTORY_NAMES: u32 = 512u32; +pub const FIND_RESOURCE_DIRECTORY_TYPES: u32 = 256u32; +pub const GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS: u32 = 4u32; +pub const GET_MODULE_HANDLE_EX_FLAG_PIN: u32 = 1u32; +pub const GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT: u32 = 2u32; +pub const LOAD_IGNORE_CODE_AUTHZ_LEVEL: LOAD_LIBRARY_FLAGS = 16u32; +pub const LOAD_LIBRARY_AS_DATAFILE: LOAD_LIBRARY_FLAGS = 2u32; +pub const LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE: LOAD_LIBRARY_FLAGS = 64u32; +pub const LOAD_LIBRARY_AS_IMAGE_RESOURCE: LOAD_LIBRARY_FLAGS = 32u32; +pub const LOAD_LIBRARY_OS_INTEGRITY_CONTINUITY: u32 = 32768u32; +pub const LOAD_LIBRARY_REQUIRE_SIGNED_TARGET: LOAD_LIBRARY_FLAGS = 128u32; +pub const LOAD_LIBRARY_SAFE_CURRENT_DIRS: LOAD_LIBRARY_FLAGS = 8192u32; +pub const LOAD_LIBRARY_SEARCH_APPLICATION_DIR: LOAD_LIBRARY_FLAGS = 512u32; +pub const LOAD_LIBRARY_SEARCH_DEFAULT_DIRS: LOAD_LIBRARY_FLAGS = 4096u32; +pub const LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR: LOAD_LIBRARY_FLAGS = 256u32; +pub const LOAD_LIBRARY_SEARCH_SYSTEM32: LOAD_LIBRARY_FLAGS = 2048u32; +pub const LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER: LOAD_LIBRARY_FLAGS = 16384u32; +pub const LOAD_LIBRARY_SEARCH_USER_DIRS: LOAD_LIBRARY_FLAGS = 1024u32; +pub const LOAD_WITH_ALTERED_SEARCH_PATH: LOAD_LIBRARY_FLAGS = 8u32; +pub const RESOURCE_ENUM_LN: u32 = 1u32; +pub const RESOURCE_ENUM_MODULE_EXACT: u32 = 16u32; +pub const RESOURCE_ENUM_MUI: u32 = 2u32; +pub const RESOURCE_ENUM_MUI_SYSTEM: u32 = 4u32; +pub const RESOURCE_ENUM_VALIDATE: u32 = 8u32; +pub const SUPPORT_LANG_NUMBER: u32 = 32u32; +pub type LOAD_LIBRARY_FLAGS = u32; +#[repr(C)] +pub struct ENUMUILANG { + pub NumOfEnumUILang: u32, + pub SizeOfEnumUIBuffer: u32, + pub pEnumUIBuffer: *mut u16, +} +impl ::core::marker::Copy for ENUMUILANG {} +impl ::core::clone::Clone for ENUMUILANG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REDIRECTION_DESCRIPTOR { + pub Version: u32, + pub FunctionCount: u32, + pub Redirections: *mut REDIRECTION_FUNCTION_DESCRIPTOR, +} +impl ::core::marker::Copy for REDIRECTION_DESCRIPTOR {} +impl ::core::clone::Clone for REDIRECTION_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REDIRECTION_FUNCTION_DESCRIPTOR { + pub DllName: ::windows_sys::core::PCSTR, + pub FunctionName: ::windows_sys::core::PCSTR, + pub RedirectionTarget: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for REDIRECTION_FUNCTION_DESCRIPTOR {} +impl ::core::clone::Clone for REDIRECTION_FUNCTION_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ENUMRESLANGPROCA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ENUMRESLANGPROCW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ENUMRESNAMEPROCA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ENUMRESNAMEPROCW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ENUMRESTYPEPROCA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ENUMRESTYPEPROCW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGET_MODULE_HANDLE_EXA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PGET_MODULE_HANDLE_EXW = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Mailslots/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Mailslots/mod.rs new file mode 100644 index 000000000..d5f1849de --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Mailslots/mod.rs @@ -0,0 +1,8 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateMailslotA(lpname : ::windows_sys::core::PCSTR, nmaxmessagesize : u32, lreadtimeout : u32, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateMailslotW(lpname : ::windows_sys::core::PCWSTR, nmaxmessagesize : u32, lreadtimeout : u32, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMailslotInfo(hmailslot : super::super::Foundation:: HANDLE, lpmaxmessagesize : *mut u32, lpnextsize : *mut u32, lpmessagecount : *mut u32, lpreadtimeout : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMailslotInfo(hmailslot : super::super::Foundation:: HANDLE, lreadtimeout : u32) -> super::super::Foundation:: BOOL); diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Mapi/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Mapi/mod.rs new file mode 100644 index 000000000..d55cfa25d --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Mapi/mod.rs @@ -0,0 +1,185 @@ +::windows_targets::link!("mapi32.dll" "system" fn MAPIFreeBuffer(pv : *mut ::core::ffi::c_void) -> u32); +pub const MAPI_AB_NOMODIFY: u32 = 1024u32; +pub const MAPI_BCC: u32 = 3u32; +pub const MAPI_BODY_AS_FILE: u32 = 512u32; +pub const MAPI_CC: u32 = 2u32; +pub const MAPI_DIALOG: u32 = 8u32; +pub const MAPI_ENVELOPE_ONLY: u32 = 64u32; +pub const MAPI_EXTENDED: u32 = 32u32; +pub const MAPI_E_ACCESS_DENIED: u32 = 6u32; +pub const MAPI_E_AMBIGUOUS_RECIPIENT: u32 = 21u32; +pub const MAPI_E_AMBIG_RECIP: u32 = 21u32; +pub const MAPI_E_ATTACHMENT_NOT_FOUND: u32 = 11u32; +pub const MAPI_E_ATTACHMENT_OPEN_FAILURE: u32 = 12u32; +pub const MAPI_E_ATTACHMENT_TOO_LARGE: u32 = 28u32; +pub const MAPI_E_ATTACHMENT_WRITE_FAILURE: u32 = 13u32; +pub const MAPI_E_BAD_RECIPTYPE: u32 = 15u32; +pub const MAPI_E_DISK_FULL: u32 = 4u32; +pub const MAPI_E_FAILURE: u32 = 2u32; +pub const MAPI_E_INSUFFICIENT_MEMORY: u32 = 5u32; +pub const MAPI_E_INVALID_EDITFIELDS: u32 = 24u32; +pub const MAPI_E_INVALID_MESSAGE: u32 = 17u32; +pub const MAPI_E_INVALID_RECIPS: u32 = 25u32; +pub const MAPI_E_INVALID_SESSION: u32 = 19u32; +pub const MAPI_E_LOGIN_FAILURE: u32 = 3u32; +pub const MAPI_E_LOGON_FAILURE: u32 = 3u32; +pub const MAPI_E_MESSAGE_IN_USE: u32 = 22u32; +pub const MAPI_E_NETWORK_FAILURE: u32 = 23u32; +pub const MAPI_E_NOT_SUPPORTED: u32 = 26u32; +pub const MAPI_E_NO_MESSAGES: u32 = 16u32; +pub const MAPI_E_TEXT_TOO_LARGE: u32 = 18u32; +pub const MAPI_E_TOO_MANY_FILES: u32 = 9u32; +pub const MAPI_E_TOO_MANY_RECIPIENTS: u32 = 10u32; +pub const MAPI_E_TOO_MANY_SESSIONS: u32 = 8u32; +pub const MAPI_E_TYPE_NOT_SUPPORTED: u32 = 20u32; +pub const MAPI_E_UNICODE_NOT_SUPPORTED: u32 = 27u32; +pub const MAPI_E_UNKNOWN_RECIPIENT: u32 = 14u32; +pub const MAPI_E_USER_ABORT: u32 = 1u32; +pub const MAPI_FORCE_DOWNLOAD: u32 = 4096u32; +pub const MAPI_FORCE_UNICODE: u32 = 262144u32; +pub const MAPI_GUARANTEE_FIFO: u32 = 256u32; +pub const MAPI_LOGON_UI: u32 = 1u32; +pub const MAPI_LONG_MSGID: u32 = 16384u32; +pub const MAPI_NEW_SESSION: u32 = 2u32; +pub const MAPI_OLE: u32 = 1u32; +pub const MAPI_OLE_STATIC: u32 = 2u32; +pub const MAPI_ORIG: u32 = 0u32; +pub const MAPI_PASSWORD_UI: u32 = 131072u32; +pub const MAPI_PEEK: u32 = 128u32; +pub const MAPI_RECEIPT_REQUESTED: u32 = 2u32; +pub const MAPI_SENT: u32 = 4u32; +pub const MAPI_SUPPRESS_ATTACH: u32 = 2048u32; +pub const MAPI_TO: u32 = 1u32; +pub const MAPI_UNREAD: u32 = 1u32; +pub const MAPI_UNREAD_ONLY: u32 = 32u32; +pub const MAPI_USER_ABORT: u32 = 1u32; +pub const SUCCESS_SUCCESS: u32 = 0u32; +#[repr(C)] +pub struct MapiFileDesc { + pub ulReserved: u32, + pub flFlags: u32, + pub nPosition: u32, + pub lpszPathName: ::windows_sys::core::PSTR, + pub lpszFileName: ::windows_sys::core::PSTR, + pub lpFileType: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for MapiFileDesc {} +impl ::core::clone::Clone for MapiFileDesc { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MapiFileDescW { + pub ulReserved: u32, + pub flFlags: u32, + pub nPosition: u32, + pub lpszPathName: ::windows_sys::core::PWSTR, + pub lpszFileName: ::windows_sys::core::PWSTR, + pub lpFileType: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for MapiFileDescW {} +impl ::core::clone::Clone for MapiFileDescW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MapiFileTagExt { + pub ulReserved: u32, + pub cbTag: u32, + pub lpTag: *mut u8, + pub cbEncoding: u32, + pub lpEncoding: *mut u8, +} +impl ::core::marker::Copy for MapiFileTagExt {} +impl ::core::clone::Clone for MapiFileTagExt { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MapiMessage { + pub ulReserved: u32, + pub lpszSubject: ::windows_sys::core::PSTR, + pub lpszNoteText: ::windows_sys::core::PSTR, + pub lpszMessageType: ::windows_sys::core::PSTR, + pub lpszDateReceived: ::windows_sys::core::PSTR, + pub lpszConversationID: ::windows_sys::core::PSTR, + pub flFlags: u32, + pub lpOriginator: *mut MapiRecipDesc, + pub nRecipCount: u32, + pub lpRecips: *mut MapiRecipDesc, + pub nFileCount: u32, + pub lpFiles: *mut MapiFileDesc, +} +impl ::core::marker::Copy for MapiMessage {} +impl ::core::clone::Clone for MapiMessage { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MapiMessageW { + pub ulReserved: u32, + pub lpszSubject: ::windows_sys::core::PWSTR, + pub lpszNoteText: ::windows_sys::core::PWSTR, + pub lpszMessageType: ::windows_sys::core::PWSTR, + pub lpszDateReceived: ::windows_sys::core::PWSTR, + pub lpszConversationID: ::windows_sys::core::PWSTR, + pub flFlags: u32, + pub lpOriginator: *mut MapiRecipDescW, + pub nRecipCount: u32, + pub lpRecips: *mut MapiRecipDescW, + pub nFileCount: u32, + pub lpFiles: *mut MapiFileDescW, +} +impl ::core::marker::Copy for MapiMessageW {} +impl ::core::clone::Clone for MapiMessageW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MapiRecipDesc { + pub ulReserved: u32, + pub ulRecipClass: u32, + pub lpszName: ::windows_sys::core::PSTR, + pub lpszAddress: ::windows_sys::core::PSTR, + pub ulEIDSize: u32, + pub lpEntryID: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for MapiRecipDesc {} +impl ::core::clone::Clone for MapiRecipDesc { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MapiRecipDescW { + pub ulReserved: u32, + pub ulRecipClass: u32, + pub lpszName: ::windows_sys::core::PWSTR, + pub lpszAddress: ::windows_sys::core::PWSTR, + pub ulEIDSize: u32, + pub lpEntryID: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for MapiRecipDescW {} +impl ::core::clone::Clone for MapiRecipDescW { + fn clone(&self) -> Self { + *self + } +} +pub type LPMAPIADDRESS = ::core::option::Option u32>; +pub type LPMAPIDELETEMAIL = ::core::option::Option u32>; +pub type LPMAPIDETAILS = ::core::option::Option u32>; +pub type LPMAPIFINDNEXT = ::core::option::Option u32>; +pub type LPMAPIFREEBUFFER = ::core::option::Option u32>; +pub type LPMAPILOGOFF = ::core::option::Option u32>; +pub type LPMAPILOGON = ::core::option::Option u32>; +pub type LPMAPIREADMAIL = ::core::option::Option u32>; +pub type LPMAPIRESOLVENAME = ::core::option::Option u32>; +pub type LPMAPISAVEMAIL = ::core::option::Option u32>; +pub type LPMAPISENDDOCUMENTS = ::core::option::Option u32>; +pub type LPMAPISENDMAIL = ::core::option::Option u32>; +pub type LPMAPISENDMAILW = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Memory/NonVolatile/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Memory/NonVolatile/mod.rs new file mode 100644 index 000000000..8d407dda8 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Memory/NonVolatile/mod.rs @@ -0,0 +1,25 @@ +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ntdll.dll" "system" fn RtlDrainNonVolatileFlush(nvtoken : *const ::core::ffi::c_void) -> u32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ntdll.dll" "system" fn RtlFillNonVolatileMemory(nvtoken : *const ::core::ffi::c_void, nvdestination : *mut ::core::ffi::c_void, size : usize, value : u8, flags : u32) -> u32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ntdll.dll" "system" fn RtlFlushNonVolatileMemory(nvtoken : *const ::core::ffi::c_void, nvbuffer : *const ::core::ffi::c_void, size : usize, flags : u32) -> u32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ntdll.dll" "system" fn RtlFlushNonVolatileMemoryRanges(nvtoken : *const ::core::ffi::c_void, nvranges : *const NV_MEMORY_RANGE, numranges : usize, flags : u32) -> u32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ntdll.dll" "system" fn RtlFreeNonVolatileToken(nvtoken : *const ::core::ffi::c_void) -> u32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ntdll.dll" "system" fn RtlGetNonVolatileToken(nvbuffer : *const ::core::ffi::c_void, size : usize, nvtoken : *mut *mut ::core::ffi::c_void) -> u32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("ntdll.dll" "system" fn RtlWriteNonVolatileMemory(nvtoken : *const ::core::ffi::c_void, nvdestination : *mut ::core::ffi::c_void, source : *const ::core::ffi::c_void, size : usize, flags : u32) -> u32); +#[repr(C)] +pub struct NV_MEMORY_RANGE { + pub BaseAddress: *mut ::core::ffi::c_void, + pub Length: usize, +} +impl ::core::marker::Copy for NV_MEMORY_RANGE {} +impl ::core::clone::Clone for NV_MEMORY_RANGE { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Memory/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Memory/mod.rs new file mode 100644 index 000000000..bff55f288 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Memory/mod.rs @@ -0,0 +1,694 @@ +#[cfg(feature = "Win32_System_Memory_NonVolatile")] +#[doc = "Required features: `\"Win32_System_Memory_NonVolatile\"`"] +pub mod NonVolatile; +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddSecureMemoryCacheCallback(pfncallback : PSECURE_MEMORY_CACHE_CALLBACK) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllocateUserPhysicalPages(hprocess : super::super::Foundation:: HANDLE, numberofpages : *mut usize, pagearray : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-8.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllocateUserPhysicalPages2(objecthandle : super::super::Foundation:: HANDLE, numberofpages : *mut usize, pagearray : *mut usize, extendedparameters : *mut MEM_EXTENDED_PARAMETER, extendedparametercount : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllocateUserPhysicalPagesNuma(hprocess : super::super::Foundation:: HANDLE, numberofpages : *mut usize, pagearray : *mut usize, nndpreferred : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("api-ms-win-core-memory-l1-1-7.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateFileMapping2(file : super::super::Foundation:: HANDLE, securityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, desiredaccess : u32, pageprotection : PAGE_PROTECTION_FLAGS, allocationattributes : u32, maximumsize : u64, name : ::windows_sys::core::PCWSTR, extendedparameters : *mut MEM_EXTENDED_PARAMETER, parametercount : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateFileMappingA(hfile : super::super::Foundation:: HANDLE, lpfilemappingattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, flprotect : PAGE_PROTECTION_FLAGS, dwmaximumsizehigh : u32, dwmaximumsizelow : u32, lpname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateFileMappingFromApp(hfile : super::super::Foundation:: HANDLE, securityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, pageprotection : PAGE_PROTECTION_FLAGS, maximumsize : u64, name : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateFileMappingNumaA(hfile : super::super::Foundation:: HANDLE, lpfilemappingattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, flprotect : PAGE_PROTECTION_FLAGS, dwmaximumsizehigh : u32, dwmaximumsizelow : u32, lpname : ::windows_sys::core::PCSTR, nndpreferred : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateFileMappingNumaW(hfile : super::super::Foundation:: HANDLE, lpfilemappingattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, flprotect : PAGE_PROTECTION_FLAGS, dwmaximumsizehigh : u32, dwmaximumsizelow : u32, lpname : ::windows_sys::core::PCWSTR, nndpreferred : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateFileMappingW(hfile : super::super::Foundation:: HANDLE, lpfilemappingattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, flprotect : PAGE_PROTECTION_FLAGS, dwmaximumsizehigh : u32, dwmaximumsizelow : u32, lpname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateMemoryResourceNotification(notificationtype : MEMORY_RESOURCE_NOTIFICATION_TYPE) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("kernel32.dll" "system" fn DiscardVirtualMemory(virtualaddress : *mut ::core::ffi::c_void, size : usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlushViewOfFile(lpbaseaddress : *const ::core::ffi::c_void, dwnumberofbytestoflush : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeUserPhysicalPages(hprocess : super::super::Foundation:: HANDLE, numberofpages : *mut usize, pagearray : *const usize) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetLargePageMinimum() -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMemoryErrorHandlingCapabilities(capabilities : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessHeap() -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessHeaps(numberofheaps : u32, processheaps : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessWorkingSetSizeEx(hprocess : super::super::Foundation:: HANDLE, lpminimumworkingsetsize : *mut usize, lpmaximumworkingsetsize : *mut usize, flags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemFileCacheSize(lpminimumfilecachesize : *mut usize, lpmaximumfilecachesize : *mut usize, lpflags : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetWriteWatch(dwflags : u32, lpbaseaddress : *const ::core::ffi::c_void, dwregionsize : usize, lpaddresses : *mut *mut ::core::ffi::c_void, lpdwcount : *mut usize, lpdwgranularity : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GlobalAlloc(uflags : GLOBAL_ALLOC_FLAGS, dwbytes : usize) -> super::super::Foundation:: HGLOBAL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GlobalFlags(hmem : super::super::Foundation:: HGLOBAL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GlobalHandle(pmem : *const ::core::ffi::c_void) -> super::super::Foundation:: HGLOBAL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GlobalLock(hmem : super::super::Foundation:: HGLOBAL) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GlobalReAlloc(hmem : super::super::Foundation:: HGLOBAL, dwbytes : usize, uflags : u32) -> super::super::Foundation:: HGLOBAL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GlobalSize(hmem : super::super::Foundation:: HGLOBAL) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GlobalUnlock(hmem : super::super::Foundation:: HGLOBAL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapAlloc(hheap : super::super::Foundation:: HANDLE, dwflags : HEAP_FLAGS, dwbytes : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapCompact(hheap : super::super::Foundation:: HANDLE, dwflags : HEAP_FLAGS) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapCreate(floptions : HEAP_FLAGS, dwinitialsize : usize, dwmaximumsize : usize) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapDestroy(hheap : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapFree(hheap : super::super::Foundation:: HANDLE, dwflags : HEAP_FLAGS, lpmem : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapLock(hheap : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapQueryInformation(heaphandle : super::super::Foundation:: HANDLE, heapinformationclass : HEAP_INFORMATION_CLASS, heapinformation : *mut ::core::ffi::c_void, heapinformationlength : usize, returnlength : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapReAlloc(hheap : super::super::Foundation:: HANDLE, dwflags : HEAP_FLAGS, lpmem : *const ::core::ffi::c_void, dwbytes : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapSetInformation(heaphandle : super::super::Foundation:: HANDLE, heapinformationclass : HEAP_INFORMATION_CLASS, heapinformation : *const ::core::ffi::c_void, heapinformationlength : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapSize(hheap : super::super::Foundation:: HANDLE, dwflags : HEAP_FLAGS, lpmem : *const ::core::ffi::c_void) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapSummary(hheap : super::super::Foundation:: HANDLE, dwflags : u32, lpsummary : *mut HEAP_SUMMARY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapUnlock(hheap : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapValidate(hheap : super::super::Foundation:: HANDLE, dwflags : HEAP_FLAGS, lpmem : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HeapWalk(hheap : super::super::Foundation:: HANDLE, lpentry : *mut PROCESS_HEAP_ENTRY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsBadCodePtr(lpfn : super::super::Foundation:: FARPROC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsBadReadPtr(lp : *const ::core::ffi::c_void, ucb : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsBadStringPtrA(lpsz : ::windows_sys::core::PCSTR, ucchmax : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsBadStringPtrW(lpsz : ::windows_sys::core::PCWSTR, ucchmax : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsBadWritePtr(lp : *const ::core::ffi::c_void, ucb : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LocalAlloc(uflags : LOCAL_ALLOC_FLAGS, ubytes : usize) -> super::super::Foundation:: HLOCAL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LocalFlags(hmem : super::super::Foundation:: HLOCAL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LocalHandle(pmem : *const ::core::ffi::c_void) -> super::super::Foundation:: HLOCAL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LocalLock(hmem : super::super::Foundation:: HLOCAL) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LocalReAlloc(hmem : super::super::Foundation:: HLOCAL, ubytes : usize, uflags : u32) -> super::super::Foundation:: HLOCAL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LocalSize(hmem : super::super::Foundation:: HLOCAL) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LocalUnlock(hmem : super::super::Foundation:: HLOCAL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MapUserPhysicalPages(virtualaddress : *const ::core::ffi::c_void, numberofpages : usize, pagearray : *const usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MapUserPhysicalPagesScatter(virtualaddresses : *const *const ::core::ffi::c_void, numberofpages : usize, pagearray : *const usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MapViewOfFile(hfilemappingobject : super::super::Foundation:: HANDLE, dwdesiredaccess : FILE_MAP, dwfileoffsethigh : u32, dwfileoffsetlow : u32, dwnumberofbytestomap : usize) -> MEMORY_MAPPED_VIEW_ADDRESS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-6.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MapViewOfFile3(filemapping : super::super::Foundation:: HANDLE, process : super::super::Foundation:: HANDLE, baseaddress : *const ::core::ffi::c_void, offset : u64, viewsize : usize, allocationtype : VIRTUAL_ALLOCATION_TYPE, pageprotection : u32, extendedparameters : *mut MEM_EXTENDED_PARAMETER, parametercount : u32) -> MEMORY_MAPPED_VIEW_ADDRESS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-6.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MapViewOfFile3FromApp(filemapping : super::super::Foundation:: HANDLE, process : super::super::Foundation:: HANDLE, baseaddress : *const ::core::ffi::c_void, offset : u64, viewsize : usize, allocationtype : VIRTUAL_ALLOCATION_TYPE, pageprotection : u32, extendedparameters : *mut MEM_EXTENDED_PARAMETER, parametercount : u32) -> MEMORY_MAPPED_VIEW_ADDRESS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MapViewOfFileEx(hfilemappingobject : super::super::Foundation:: HANDLE, dwdesiredaccess : FILE_MAP, dwfileoffsethigh : u32, dwfileoffsetlow : u32, dwnumberofbytestomap : usize, lpbaseaddress : *const ::core::ffi::c_void) -> MEMORY_MAPPED_VIEW_ADDRESS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MapViewOfFileExNuma(hfilemappingobject : super::super::Foundation:: HANDLE, dwdesiredaccess : FILE_MAP, dwfileoffsethigh : u32, dwfileoffsetlow : u32, dwnumberofbytestomap : usize, lpbaseaddress : *const ::core::ffi::c_void, nndpreferred : u32) -> MEMORY_MAPPED_VIEW_ADDRESS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MapViewOfFileFromApp(hfilemappingobject : super::super::Foundation:: HANDLE, desiredaccess : FILE_MAP, fileoffset : u64, numberofbytestomap : usize) -> MEMORY_MAPPED_VIEW_ADDRESS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-5.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MapViewOfFileNuma2(filemappinghandle : super::super::Foundation:: HANDLE, processhandle : super::super::Foundation:: HANDLE, offset : u64, baseaddress : *const ::core::ffi::c_void, viewsize : usize, allocationtype : u32, pageprotection : u32, preferrednode : u32) -> MEMORY_MAPPED_VIEW_ADDRESS); +::windows_targets::link!("kernel32.dll" "system" fn OfferVirtualMemory(virtualaddress : *mut ::core::ffi::c_void, size : usize, priority : OFFER_PRIORITY) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-8.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenDedicatedMemoryPartition(partition : super::super::Foundation:: HANDLE, dedicatedmemorytypeid : u64, desiredaccess : u32, inherithandle : super::super::Foundation:: BOOL) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenFileMappingA(dwdesiredaccess : u32, binherithandle : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-3.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenFileMappingFromApp(desiredaccess : u32, inherithandle : super::super::Foundation:: BOOL, name : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenFileMappingW(dwdesiredaccess : u32, binherithandle : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PrefetchVirtualMemory(hprocess : super::super::Foundation:: HANDLE, numberofentries : usize, virtualaddresses : *const WIN32_MEMORY_RANGE_ENTRY, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryMemoryResourceNotification(resourcenotificationhandle : super::super::Foundation:: HANDLE, resourcestate : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-8.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryPartitionInformation(partition : super::super::Foundation:: HANDLE, partitioninformationclass : WIN32_MEMORY_PARTITION_INFORMATION_CLASS, partitioninformation : *mut ::core::ffi::c_void, partitioninformationlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryVirtualMemoryInformation(process : super::super::Foundation:: HANDLE, virtualaddress : *const ::core::ffi::c_void, memoryinformationclass : WIN32_MEMORY_INFORMATION_CLASS, memoryinformation : *mut ::core::ffi::c_void, memoryinformationsize : usize, returnsize : *mut usize) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn ReclaimVirtualMemory(virtualaddress : *const ::core::ffi::c_void, size : usize) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn RegisterBadMemoryNotification(callback : PBAD_MEMORY_CALLBACK_ROUTINE) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveSecureMemoryCacheCallback(pfncallback : PSECURE_MEMORY_CACHE_CALLBACK) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn ResetWriteWatch(lpbaseaddress : *const ::core::ffi::c_void, dwregionsize : usize) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn RtlCompareMemory(source1 : *const ::core::ffi::c_void, source2 : *const ::core::ffi::c_void, length : usize) -> usize); +::windows_targets::link!("ntdll.dll" "system" fn RtlCrc32(buffer : *const ::core::ffi::c_void, size : usize, initialcrc : u32) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlCrc64(buffer : *const ::core::ffi::c_void, size : usize, initialcrc : u64) -> u64); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlIsZeroMemory(buffer : *const ::core::ffi::c_void, length : usize) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-3.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessValidCallTargets(hprocess : super::super::Foundation:: HANDLE, virtualaddress : *const ::core::ffi::c_void, regionsize : usize, numberofoffsets : u32, offsetinformation : *mut CFG_CALL_TARGET_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-7.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessValidCallTargetsForMappedView(process : super::super::Foundation:: HANDLE, virtualaddress : *const ::core::ffi::c_void, regionsize : usize, numberofoffsets : u32, offsetinformation : *mut CFG_CALL_TARGET_INFO, section : super::super::Foundation:: HANDLE, expectedfileoffset : u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessWorkingSetSizeEx(hprocess : super::super::Foundation:: HANDLE, dwminimumworkingsetsize : usize, dwmaximumworkingsetsize : usize, flags : SETPROCESSWORKINGSETSIZEEX_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSystemFileCacheSize(minimumfilecachesize : usize, maximumfilecachesize : usize, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnmapViewOfFile(lpbaseaddress : MEMORY_MAPPED_VIEW_ADDRESS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-5.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnmapViewOfFile2(process : super::super::Foundation:: HANDLE, baseaddress : MEMORY_MAPPED_VIEW_ADDRESS, unmapflags : UNMAP_VIEW_OF_FILE_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnmapViewOfFileEx(baseaddress : MEMORY_MAPPED_VIEW_ADDRESS, unmapflags : UNMAP_VIEW_OF_FILE_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterBadMemoryNotification(registrationhandle : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn VirtualAlloc(lpaddress : *const ::core::ffi::c_void, dwsize : usize, flallocationtype : VIRTUAL_ALLOCATION_TYPE, flprotect : PAGE_PROTECTION_FLAGS) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-6.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VirtualAlloc2(process : super::super::Foundation:: HANDLE, baseaddress : *const ::core::ffi::c_void, size : usize, allocationtype : VIRTUAL_ALLOCATION_TYPE, pageprotection : u32, extendedparameters : *mut MEM_EXTENDED_PARAMETER, parametercount : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-6.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VirtualAlloc2FromApp(process : super::super::Foundation:: HANDLE, baseaddress : *const ::core::ffi::c_void, size : usize, allocationtype : VIRTUAL_ALLOCATION_TYPE, pageprotection : u32, extendedparameters : *mut MEM_EXTENDED_PARAMETER, parametercount : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VirtualAllocEx(hprocess : super::super::Foundation:: HANDLE, lpaddress : *const ::core::ffi::c_void, dwsize : usize, flallocationtype : VIRTUAL_ALLOCATION_TYPE, flprotect : PAGE_PROTECTION_FLAGS) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VirtualAllocExNuma(hprocess : super::super::Foundation:: HANDLE, lpaddress : *const ::core::ffi::c_void, dwsize : usize, flallocationtype : VIRTUAL_ALLOCATION_TYPE, flprotect : u32, nndpreferred : u32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("api-ms-win-core-memory-l1-1-3.dll" "system" fn VirtualAllocFromApp(baseaddress : *const ::core::ffi::c_void, size : usize, allocationtype : VIRTUAL_ALLOCATION_TYPE, protection : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VirtualFree(lpaddress : *mut ::core::ffi::c_void, dwsize : usize, dwfreetype : VIRTUAL_FREE_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VirtualFreeEx(hprocess : super::super::Foundation:: HANDLE, lpaddress : *mut ::core::ffi::c_void, dwsize : usize, dwfreetype : VIRTUAL_FREE_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VirtualLock(lpaddress : *const ::core::ffi::c_void, dwsize : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VirtualProtect(lpaddress : *const ::core::ffi::c_void, dwsize : usize, flnewprotect : PAGE_PROTECTION_FLAGS, lpfloldprotect : *mut PAGE_PROTECTION_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VirtualProtectEx(hprocess : super::super::Foundation:: HANDLE, lpaddress : *const ::core::ffi::c_void, dwsize : usize, flnewprotect : PAGE_PROTECTION_FLAGS, lpfloldprotect : *mut PAGE_PROTECTION_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-3.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VirtualProtectFromApp(address : *const ::core::ffi::c_void, size : usize, newprotection : u32, oldprotection : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn VirtualQuery(lpaddress : *const ::core::ffi::c_void, lpbuffer : *mut MEMORY_BASIC_INFORMATION, dwlength : usize) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VirtualQueryEx(hprocess : super::super::Foundation:: HANDLE, lpaddress : *const ::core::ffi::c_void, lpbuffer : *mut MEMORY_BASIC_INFORMATION, dwlength : usize) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VirtualUnlock(lpaddress : *const ::core::ffi::c_void, dwsize : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-memory-l1-1-5.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VirtualUnlockEx(process : super::super::Foundation:: HANDLE, address : *const ::core::ffi::c_void, size : usize) -> super::super::Foundation:: BOOL); +pub const FILE_CACHE_MAX_HARD_DISABLE: u32 = 2u32; +pub const FILE_CACHE_MAX_HARD_ENABLE: u32 = 1u32; +pub const FILE_CACHE_MIN_HARD_DISABLE: u32 = 8u32; +pub const FILE_CACHE_MIN_HARD_ENABLE: u32 = 4u32; +pub const FILE_MAP_ALL_ACCESS: FILE_MAP = 983071u32; +pub const FILE_MAP_COPY: FILE_MAP = 1u32; +pub const FILE_MAP_EXECUTE: FILE_MAP = 32u32; +pub const FILE_MAP_LARGE_PAGES: FILE_MAP = 536870912u32; +pub const FILE_MAP_READ: FILE_MAP = 4u32; +pub const FILE_MAP_RESERVE: FILE_MAP = 2147483648u32; +pub const FILE_MAP_TARGETS_INVALID: FILE_MAP = 1073741824u32; +pub const FILE_MAP_WRITE: FILE_MAP = 2u32; +pub const GHND: GLOBAL_ALLOC_FLAGS = 66u32; +pub const GMEM_FIXED: GLOBAL_ALLOC_FLAGS = 0u32; +pub const GMEM_MOVEABLE: GLOBAL_ALLOC_FLAGS = 2u32; +pub const GMEM_ZEROINIT: GLOBAL_ALLOC_FLAGS = 64u32; +pub const GPTR: GLOBAL_ALLOC_FLAGS = 64u32; +pub const HEAP_CREATE_ALIGN_16: HEAP_FLAGS = 65536u32; +pub const HEAP_CREATE_ENABLE_EXECUTE: HEAP_FLAGS = 262144u32; +pub const HEAP_CREATE_ENABLE_TRACING: HEAP_FLAGS = 131072u32; +pub const HEAP_CREATE_HARDENED: HEAP_FLAGS = 512u32; +pub const HEAP_CREATE_SEGMENT_HEAP: HEAP_FLAGS = 256u32; +pub const HEAP_DISABLE_COALESCE_ON_FREE: HEAP_FLAGS = 128u32; +pub const HEAP_FREE_CHECKING_ENABLED: HEAP_FLAGS = 64u32; +pub const HEAP_GENERATE_EXCEPTIONS: HEAP_FLAGS = 4u32; +pub const HEAP_GROWABLE: HEAP_FLAGS = 2u32; +pub const HEAP_MAXIMUM_TAG: HEAP_FLAGS = 4095u32; +pub const HEAP_NONE: HEAP_FLAGS = 0u32; +pub const HEAP_NO_SERIALIZE: HEAP_FLAGS = 1u32; +pub const HEAP_PSEUDO_TAG_FLAG: HEAP_FLAGS = 32768u32; +pub const HEAP_REALLOC_IN_PLACE_ONLY: HEAP_FLAGS = 16u32; +pub const HEAP_TAG_SHIFT: HEAP_FLAGS = 18u32; +pub const HEAP_TAIL_CHECKING_ENABLED: HEAP_FLAGS = 32u32; +pub const HEAP_ZERO_MEMORY: HEAP_FLAGS = 8u32; +pub const HeapCompatibilityInformation: HEAP_INFORMATION_CLASS = 0i32; +pub const HeapEnableTerminationOnCorruption: HEAP_INFORMATION_CLASS = 1i32; +pub const HeapOptimizeResources: HEAP_INFORMATION_CLASS = 3i32; +pub const HeapTag: HEAP_INFORMATION_CLASS = 7i32; +pub const HighMemoryResourceNotification: MEMORY_RESOURCE_NOTIFICATION_TYPE = 1i32; +pub const LHND: LOCAL_ALLOC_FLAGS = 66u32; +pub const LMEM_FIXED: LOCAL_ALLOC_FLAGS = 0u32; +pub const LMEM_MOVEABLE: LOCAL_ALLOC_FLAGS = 2u32; +pub const LMEM_ZEROINIT: LOCAL_ALLOC_FLAGS = 64u32; +pub const LPTR: LOCAL_ALLOC_FLAGS = 64u32; +pub const LowMemoryResourceNotification: MEMORY_RESOURCE_NOTIFICATION_TYPE = 0i32; +pub const MEHC_PATROL_SCRUBBER_PRESENT: u32 = 1u32; +pub const MEM_COMMIT: VIRTUAL_ALLOCATION_TYPE = 4096u32; +pub const MEM_DECOMMIT: VIRTUAL_FREE_TYPE = 16384u32; +pub const MEM_FREE: VIRTUAL_ALLOCATION_TYPE = 65536u32; +pub const MEM_IMAGE: PAGE_TYPE = 16777216u32; +pub const MEM_LARGE_PAGES: VIRTUAL_ALLOCATION_TYPE = 536870912u32; +pub const MEM_MAPPED: PAGE_TYPE = 262144u32; +pub const MEM_PRESERVE_PLACEHOLDER: UNMAP_VIEW_OF_FILE_FLAGS = 2u32; +pub const MEM_PRIVATE: PAGE_TYPE = 131072u32; +pub const MEM_RELEASE: VIRTUAL_FREE_TYPE = 32768u32; +pub const MEM_REPLACE_PLACEHOLDER: VIRTUAL_ALLOCATION_TYPE = 16384u32; +pub const MEM_RESERVE: VIRTUAL_ALLOCATION_TYPE = 8192u32; +pub const MEM_RESERVE_PLACEHOLDER: VIRTUAL_ALLOCATION_TYPE = 262144u32; +pub const MEM_RESET: VIRTUAL_ALLOCATION_TYPE = 524288u32; +pub const MEM_RESET_UNDO: VIRTUAL_ALLOCATION_TYPE = 16777216u32; +pub const MEM_UNMAP_NONE: UNMAP_VIEW_OF_FILE_FLAGS = 0u32; +pub const MEM_UNMAP_WITH_TRANSIENT_BOOST: UNMAP_VIEW_OF_FILE_FLAGS = 1u32; +pub const MemDedicatedAttributeMax: MEM_DEDICATED_ATTRIBUTE_TYPE = 4i32; +pub const MemDedicatedAttributeReadBandwidth: MEM_DEDICATED_ATTRIBUTE_TYPE = 0i32; +pub const MemDedicatedAttributeReadLatency: MEM_DEDICATED_ATTRIBUTE_TYPE = 1i32; +pub const MemDedicatedAttributeWriteBandwidth: MEM_DEDICATED_ATTRIBUTE_TYPE = 2i32; +pub const MemDedicatedAttributeWriteLatency: MEM_DEDICATED_ATTRIBUTE_TYPE = 3i32; +pub const MemExtendedParameterAddressRequirements: MEM_EXTENDED_PARAMETER_TYPE = 1i32; +pub const MemExtendedParameterAttributeFlags: MEM_EXTENDED_PARAMETER_TYPE = 5i32; +pub const MemExtendedParameterImageMachine: MEM_EXTENDED_PARAMETER_TYPE = 6i32; +pub const MemExtendedParameterInvalidType: MEM_EXTENDED_PARAMETER_TYPE = 0i32; +pub const MemExtendedParameterMax: MEM_EXTENDED_PARAMETER_TYPE = 7i32; +pub const MemExtendedParameterNumaNode: MEM_EXTENDED_PARAMETER_TYPE = 2i32; +pub const MemExtendedParameterPartitionHandle: MEM_EXTENDED_PARAMETER_TYPE = 3i32; +pub const MemExtendedParameterUserPhysicalHandle: MEM_EXTENDED_PARAMETER_TYPE = 4i32; +pub const MemSectionExtendedParameterInvalidType: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 0i32; +pub const MemSectionExtendedParameterMax: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 4i32; +pub const MemSectionExtendedParameterNumaNode: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 2i32; +pub const MemSectionExtendedParameterSigningLevel: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 3i32; +pub const MemSectionExtendedParameterUserPhysicalFlags: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 1i32; +pub const MemoryPartitionDedicatedMemoryInfo: WIN32_MEMORY_PARTITION_INFORMATION_CLASS = 1i32; +pub const MemoryPartitionInfo: WIN32_MEMORY_PARTITION_INFORMATION_CLASS = 0i32; +pub const MemoryRegionInfo: WIN32_MEMORY_INFORMATION_CLASS = 0i32; +pub const NONZEROLHND: LOCAL_ALLOC_FLAGS = 2u32; +pub const NONZEROLPTR: LOCAL_ALLOC_FLAGS = 0u32; +pub const PAGE_ENCLAVE_DECOMMIT: PAGE_PROTECTION_FLAGS = 268435456u32; +pub const PAGE_ENCLAVE_MASK: PAGE_PROTECTION_FLAGS = 268435456u32; +pub const PAGE_ENCLAVE_SS_FIRST: PAGE_PROTECTION_FLAGS = 268435457u32; +pub const PAGE_ENCLAVE_SS_REST: PAGE_PROTECTION_FLAGS = 268435458u32; +pub const PAGE_ENCLAVE_THREAD_CONTROL: PAGE_PROTECTION_FLAGS = 2147483648u32; +pub const PAGE_ENCLAVE_UNVALIDATED: PAGE_PROTECTION_FLAGS = 536870912u32; +pub const PAGE_EXECUTE: PAGE_PROTECTION_FLAGS = 16u32; +pub const PAGE_EXECUTE_READ: PAGE_PROTECTION_FLAGS = 32u32; +pub const PAGE_EXECUTE_READWRITE: PAGE_PROTECTION_FLAGS = 64u32; +pub const PAGE_EXECUTE_WRITECOPY: PAGE_PROTECTION_FLAGS = 128u32; +pub const PAGE_GRAPHICS_COHERENT: PAGE_PROTECTION_FLAGS = 131072u32; +pub const PAGE_GRAPHICS_EXECUTE: PAGE_PROTECTION_FLAGS = 16384u32; +pub const PAGE_GRAPHICS_EXECUTE_READ: PAGE_PROTECTION_FLAGS = 32768u32; +pub const PAGE_GRAPHICS_EXECUTE_READWRITE: PAGE_PROTECTION_FLAGS = 65536u32; +pub const PAGE_GRAPHICS_NOACCESS: PAGE_PROTECTION_FLAGS = 2048u32; +pub const PAGE_GRAPHICS_NOCACHE: PAGE_PROTECTION_FLAGS = 262144u32; +pub const PAGE_GRAPHICS_READONLY: PAGE_PROTECTION_FLAGS = 4096u32; +pub const PAGE_GRAPHICS_READWRITE: PAGE_PROTECTION_FLAGS = 8192u32; +pub const PAGE_GUARD: PAGE_PROTECTION_FLAGS = 256u32; +pub const PAGE_NOACCESS: PAGE_PROTECTION_FLAGS = 1u32; +pub const PAGE_NOCACHE: PAGE_PROTECTION_FLAGS = 512u32; +pub const PAGE_READONLY: PAGE_PROTECTION_FLAGS = 2u32; +pub const PAGE_READWRITE: PAGE_PROTECTION_FLAGS = 4u32; +pub const PAGE_REVERT_TO_FILE_MAP: PAGE_PROTECTION_FLAGS = 2147483648u32; +pub const PAGE_TARGETS_INVALID: PAGE_PROTECTION_FLAGS = 1073741824u32; +pub const PAGE_TARGETS_NO_UPDATE: PAGE_PROTECTION_FLAGS = 1073741824u32; +pub const PAGE_WRITECOMBINE: PAGE_PROTECTION_FLAGS = 1024u32; +pub const PAGE_WRITECOPY: PAGE_PROTECTION_FLAGS = 8u32; +pub const QUOTA_LIMITS_HARDWS_MAX_DISABLE: SETPROCESSWORKINGSETSIZEEX_FLAGS = 8u32; +pub const QUOTA_LIMITS_HARDWS_MAX_ENABLE: SETPROCESSWORKINGSETSIZEEX_FLAGS = 4u32; +pub const QUOTA_LIMITS_HARDWS_MIN_DISABLE: SETPROCESSWORKINGSETSIZEEX_FLAGS = 2u32; +pub const QUOTA_LIMITS_HARDWS_MIN_ENABLE: SETPROCESSWORKINGSETSIZEEX_FLAGS = 1u32; +pub const SECTION_ALL_ACCESS: SECTION_FLAGS = 983071u32; +pub const SECTION_EXTEND_SIZE: SECTION_FLAGS = 16u32; +pub const SECTION_MAP_EXECUTE: SECTION_FLAGS = 8u32; +pub const SECTION_MAP_EXECUTE_EXPLICIT: SECTION_FLAGS = 32u32; +pub const SECTION_MAP_READ: SECTION_FLAGS = 4u32; +pub const SECTION_MAP_WRITE: SECTION_FLAGS = 2u32; +pub const SECTION_QUERY: SECTION_FLAGS = 1u32; +pub const SEC_64K_PAGES: PAGE_PROTECTION_FLAGS = 524288u32; +pub const SEC_COMMIT: PAGE_PROTECTION_FLAGS = 134217728u32; +pub const SEC_FILE: PAGE_PROTECTION_FLAGS = 8388608u32; +pub const SEC_IMAGE: PAGE_PROTECTION_FLAGS = 16777216u32; +pub const SEC_IMAGE_NO_EXECUTE: PAGE_PROTECTION_FLAGS = 285212672u32; +pub const SEC_LARGE_PAGES: PAGE_PROTECTION_FLAGS = 2147483648u32; +pub const SEC_NOCACHE: PAGE_PROTECTION_FLAGS = 268435456u32; +pub const SEC_PARTITION_OWNER_HANDLE: PAGE_PROTECTION_FLAGS = 262144u32; +pub const SEC_PROTECTED_IMAGE: PAGE_PROTECTION_FLAGS = 33554432u32; +pub const SEC_RESERVE: PAGE_PROTECTION_FLAGS = 67108864u32; +pub const SEC_WRITECOMBINE: PAGE_PROTECTION_FLAGS = 1073741824u32; +pub const VmOfferPriorityBelowNormal: OFFER_PRIORITY = 3i32; +pub const VmOfferPriorityLow: OFFER_PRIORITY = 2i32; +pub const VmOfferPriorityNormal: OFFER_PRIORITY = 4i32; +pub const VmOfferPriorityVeryLow: OFFER_PRIORITY = 1i32; +pub type FILE_MAP = u32; +pub type GLOBAL_ALLOC_FLAGS = u32; +pub type HEAP_FLAGS = u32; +pub type HEAP_INFORMATION_CLASS = i32; +pub type LOCAL_ALLOC_FLAGS = u32; +pub type MEMORY_RESOURCE_NOTIFICATION_TYPE = i32; +pub type MEM_DEDICATED_ATTRIBUTE_TYPE = i32; +pub type MEM_EXTENDED_PARAMETER_TYPE = i32; +pub type MEM_SECTION_EXTENDED_PARAMETER_TYPE = i32; +pub type OFFER_PRIORITY = i32; +pub type PAGE_PROTECTION_FLAGS = u32; +pub type PAGE_TYPE = u32; +pub type SECTION_FLAGS = u32; +pub type SETPROCESSWORKINGSETSIZEEX_FLAGS = u32; +pub type UNMAP_VIEW_OF_FILE_FLAGS = u32; +pub type VIRTUAL_ALLOCATION_TYPE = u32; +pub type VIRTUAL_FREE_TYPE = u32; +pub type WIN32_MEMORY_INFORMATION_CLASS = i32; +pub type WIN32_MEMORY_PARTITION_INFORMATION_CLASS = i32; +pub type AtlThunkData_t = isize; +#[repr(C)] +pub struct CFG_CALL_TARGET_INFO { + pub Offset: usize, + pub Flags: usize, +} +impl ::core::marker::Copy for CFG_CALL_TARGET_INFO {} +impl ::core::clone::Clone for CFG_CALL_TARGET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HEAP_SUMMARY { + pub cb: u32, + pub cbAllocated: usize, + pub cbCommitted: usize, + pub cbReserved: usize, + pub cbMaxReserve: usize, +} +impl ::core::marker::Copy for HEAP_SUMMARY {} +impl ::core::clone::Clone for HEAP_SUMMARY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct MEMORY_BASIC_INFORMATION { + pub BaseAddress: *mut ::core::ffi::c_void, + pub AllocationBase: *mut ::core::ffi::c_void, + pub AllocationProtect: PAGE_PROTECTION_FLAGS, + pub PartitionId: u16, + pub RegionSize: usize, + pub State: VIRTUAL_ALLOCATION_TYPE, + pub Protect: PAGE_PROTECTION_FLAGS, + pub Type: PAGE_TYPE, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for MEMORY_BASIC_INFORMATION {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for MEMORY_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct MEMORY_BASIC_INFORMATION { + pub BaseAddress: *mut ::core::ffi::c_void, + pub AllocationBase: *mut ::core::ffi::c_void, + pub AllocationProtect: PAGE_PROTECTION_FLAGS, + pub RegionSize: usize, + pub State: VIRTUAL_ALLOCATION_TYPE, + pub Protect: PAGE_PROTECTION_FLAGS, + pub Type: PAGE_TYPE, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for MEMORY_BASIC_INFORMATION {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for MEMORY_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MEMORY_BASIC_INFORMATION32 { + pub BaseAddress: u32, + pub AllocationBase: u32, + pub AllocationProtect: PAGE_PROTECTION_FLAGS, + pub RegionSize: u32, + pub State: VIRTUAL_ALLOCATION_TYPE, + pub Protect: PAGE_PROTECTION_FLAGS, + pub Type: PAGE_TYPE, +} +impl ::core::marker::Copy for MEMORY_BASIC_INFORMATION32 {} +impl ::core::clone::Clone for MEMORY_BASIC_INFORMATION32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MEMORY_BASIC_INFORMATION64 { + pub BaseAddress: u64, + pub AllocationBase: u64, + pub AllocationProtect: PAGE_PROTECTION_FLAGS, + pub __alignment1: u32, + pub RegionSize: u64, + pub State: VIRTUAL_ALLOCATION_TYPE, + pub Protect: PAGE_PROTECTION_FLAGS, + pub Type: PAGE_TYPE, + pub __alignment2: u32, +} +impl ::core::marker::Copy for MEMORY_BASIC_INFORMATION64 {} +impl ::core::clone::Clone for MEMORY_BASIC_INFORMATION64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MEMORY_MAPPED_VIEW_ADDRESS { + pub Value: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for MEMORY_MAPPED_VIEW_ADDRESS {} +impl ::core::clone::Clone for MEMORY_MAPPED_VIEW_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE { + pub Type: MEM_DEDICATED_ATTRIBUTE_TYPE, + pub Reserved: u32, + pub Value: u64, +} +impl ::core::marker::Copy for MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE {} +impl ::core::clone::Clone for MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION { + pub NextEntryOffset: u32, + pub SizeOfInformation: u32, + pub Flags: u32, + pub AttributesOffset: u32, + pub AttributeCount: u32, + pub Reserved: u32, + pub TypeId: u64, +} +impl ::core::marker::Copy for MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION {} +impl ::core::clone::Clone for MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MEM_ADDRESS_REQUIREMENTS { + pub LowestStartingAddress: *mut ::core::ffi::c_void, + pub HighestEndingAddress: *mut ::core::ffi::c_void, + pub Alignment: usize, +} +impl ::core::marker::Copy for MEM_ADDRESS_REQUIREMENTS {} +impl ::core::clone::Clone for MEM_ADDRESS_REQUIREMENTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MEM_EXTENDED_PARAMETER { + pub Anonymous1: MEM_EXTENDED_PARAMETER_0, + pub Anonymous2: MEM_EXTENDED_PARAMETER_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MEM_EXTENDED_PARAMETER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MEM_EXTENDED_PARAMETER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MEM_EXTENDED_PARAMETER_0 { + pub _bitfield: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MEM_EXTENDED_PARAMETER_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MEM_EXTENDED_PARAMETER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union MEM_EXTENDED_PARAMETER_1 { + pub ULong64: u64, + pub Pointer: *mut ::core::ffi::c_void, + pub Size: usize, + pub Handle: super::super::Foundation::HANDLE, + pub ULong: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MEM_EXTENDED_PARAMETER_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MEM_EXTENDED_PARAMETER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_HEAP_ENTRY { + pub lpData: *mut ::core::ffi::c_void, + pub cbData: u32, + pub cbOverhead: u8, + pub iRegionIndex: u8, + pub wFlags: u16, + pub Anonymous: PROCESS_HEAP_ENTRY_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_HEAP_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_HEAP_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union PROCESS_HEAP_ENTRY_0 { + pub Block: PROCESS_HEAP_ENTRY_0_0, + pub Region: PROCESS_HEAP_ENTRY_0_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_HEAP_ENTRY_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_HEAP_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_HEAP_ENTRY_0_0 { + pub hMem: super::super::Foundation::HANDLE, + pub dwReserved: [u32; 3], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_HEAP_ENTRY_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_HEAP_ENTRY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_HEAP_ENTRY_0_1 { + pub dwCommittedSize: u32, + pub dwUnCommittedSize: u32, + pub lpFirstBlock: *mut ::core::ffi::c_void, + pub lpLastBlock: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_HEAP_ENTRY_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_HEAP_ENTRY_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIN32_MEMORY_PARTITION_INFORMATION { + pub Flags: u32, + pub NumaNode: u32, + pub Channel: u32, + pub NumberOfNumaNodes: u32, + pub ResidentAvailablePages: u64, + pub CommittedPages: u64, + pub CommitLimit: u64, + pub PeakCommitment: u64, + pub TotalNumberOfPages: u64, + pub AvailablePages: u64, + pub ZeroPages: u64, + pub FreePages: u64, + pub StandbyPages: u64, + pub Reserved: [u64; 16], + pub MaximumCommitLimit: u64, + pub Reserved2: u64, + pub PartitionId: u32, +} +impl ::core::marker::Copy for WIN32_MEMORY_PARTITION_INFORMATION {} +impl ::core::clone::Clone for WIN32_MEMORY_PARTITION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIN32_MEMORY_RANGE_ENTRY { + pub VirtualAddress: *mut ::core::ffi::c_void, + pub NumberOfBytes: usize, +} +impl ::core::marker::Copy for WIN32_MEMORY_RANGE_ENTRY {} +impl ::core::clone::Clone for WIN32_MEMORY_RANGE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIN32_MEMORY_REGION_INFORMATION { + pub AllocationBase: *mut ::core::ffi::c_void, + pub AllocationProtect: u32, + pub Anonymous: WIN32_MEMORY_REGION_INFORMATION_0, + pub RegionSize: usize, + pub CommitSize: usize, +} +impl ::core::marker::Copy for WIN32_MEMORY_REGION_INFORMATION {} +impl ::core::clone::Clone for WIN32_MEMORY_REGION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WIN32_MEMORY_REGION_INFORMATION_0 { + pub Flags: u32, + pub Anonymous: WIN32_MEMORY_REGION_INFORMATION_0_0, +} +impl ::core::marker::Copy for WIN32_MEMORY_REGION_INFORMATION_0 {} +impl ::core::clone::Clone for WIN32_MEMORY_REGION_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WIN32_MEMORY_REGION_INFORMATION_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for WIN32_MEMORY_REGION_INFORMATION_0_0 {} +impl ::core::clone::Clone for WIN32_MEMORY_REGION_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +pub type PBAD_MEMORY_CALLBACK_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PSECURE_MEMORY_CACHE_CALLBACK = ::core::option::Option super::super::Foundation::BOOLEAN>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/MessageQueuing/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/MessageQueuing/mod.rs new file mode 100644 index 000000000..9f7e7f301 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/MessageQueuing/mod.rs @@ -0,0 +1,841 @@ +::windows_targets::link!("mqrt.dll" "system" fn MQADsPathToFormatName(lpwcsadspath : ::windows_sys::core::PCWSTR, lpwcsformatname : ::windows_sys::core::PWSTR, lpdwformatnamelength : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_DistributedTransactionCoordinator")] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_System_DistributedTransactionCoordinator\"`"] fn MQBeginTransaction(pptransaction : *mut super::DistributedTransactionCoordinator:: ITransaction) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MQCloseCursor(hcursor : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mqrt.dll" "system" fn MQCloseQueue(hqueue : isize) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MQCreateCursor(hqueue : isize, phcursor : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn MQCreateQueue(psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR, pqueueprops : *mut MQQUEUEPROPS, lpwcsformatname : ::windows_sys::core::PWSTR, lpdwformatnamelength : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mqrt.dll" "system" fn MQDeleteQueue(lpwcsformatname : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mqrt.dll" "system" fn MQFreeMemory(pvmemory : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MQFreeSecurityContext(hsecuritycontext : super::super::Foundation:: HANDLE) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn MQGetMachineProperties(lpwcsmachinename : ::windows_sys::core::PCWSTR, pguidmachineid : *const ::windows_sys::core::GUID, pqmprops : *mut MQQMPROPS) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn MQGetOverlappedResult(lpoverlapped : *const super::IO:: OVERLAPPED) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn MQGetPrivateComputerInformation(lpwcscomputername : ::windows_sys::core::PCWSTR, pprivateprops : *mut MQPRIVATEPROPS) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn MQGetQueueProperties(lpwcsformatname : ::windows_sys::core::PCWSTR, pqueueprops : *mut MQQUEUEPROPS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn MQGetQueueSecurity(lpwcsformatname : ::windows_sys::core::PCWSTR, requestedinformation : u32, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR, nlength : u32, lpnlengthneeded : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MQGetSecurityContext(lpcertbuffer : *const ::core::ffi::c_void, dwcertbufferlength : u32, phsecuritycontext : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MQGetSecurityContextEx(lpcertbuffer : *const ::core::ffi::c_void, dwcertbufferlength : u32, phsecuritycontext : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mqrt.dll" "system" fn MQHandleToFormatName(hqueue : isize, lpwcsformatname : ::windows_sys::core::PWSTR, lpdwformatnamelength : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mqrt.dll" "system" fn MQInstanceToFormatName(pguid : *const ::windows_sys::core::GUID, lpwcsformatname : ::windows_sys::core::PWSTR, lpdwformatnamelength : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn MQLocateBegin(lpwcscontext : ::windows_sys::core::PCWSTR, prestriction : *const MQRESTRICTION, pcolumns : *const MQCOLUMNSET, psort : *const MQSORTSET, phenum : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MQLocateEnd(henum : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn MQLocateNext(henum : super::super::Foundation:: HANDLE, pcprops : *mut u32, apropvar : *mut super::Com::StructuredStorage:: PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MQMarkMessageRejected(hqueue : super::super::Foundation:: HANDLE, ulllookupid : u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mqrt.dll" "system" fn MQMgmtAction(pcomputername : ::windows_sys::core::PCWSTR, pobjectname : ::windows_sys::core::PCWSTR, paction : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn MQMgmtGetInfo(pcomputername : ::windows_sys::core::PCWSTR, pobjectname : ::windows_sys::core::PCWSTR, pmgmtprops : *mut MQMGMTPROPS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_DistributedTransactionCoordinator")] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_System_DistributedTransactionCoordinator\"`"] fn MQMoveMessage(hsourcequeue : isize, hdestinationqueue : isize, ulllookupid : u64, ptransaction : super::DistributedTransactionCoordinator:: ITransaction) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mqrt.dll" "system" fn MQOpenQueue(lpwcsformatname : ::windows_sys::core::PCWSTR, dwaccess : u32, dwsharemode : u32, phqueue : *mut isize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mqrt.dll" "system" fn MQPathNameToFormatName(lpwcspathname : ::windows_sys::core::PCWSTR, lpwcsformatname : ::windows_sys::core::PWSTR, lpdwformatnamelength : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mqrt.dll" "system" fn MQPurgeQueue(hqueue : isize) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_DistributedTransactionCoordinator", feature = "Win32_System_IO", feature = "Win32_System_Variant"))] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_DistributedTransactionCoordinator\"`, `\"Win32_System_IO\"`, `\"Win32_System_Variant\"`"] fn MQReceiveMessage(hsource : isize, dwtimeout : u32, dwaction : u32, pmessageprops : *mut MQMSGPROPS, lpoverlapped : *mut super::IO:: OVERLAPPED, fnreceivecallback : PMQRECEIVECALLBACK, hcursor : super::super::Foundation:: HANDLE, ptransaction : super::DistributedTransactionCoordinator:: ITransaction) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_DistributedTransactionCoordinator", feature = "Win32_System_IO", feature = "Win32_System_Variant"))] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_DistributedTransactionCoordinator\"`, `\"Win32_System_IO\"`, `\"Win32_System_Variant\"`"] fn MQReceiveMessageByLookupId(hsource : isize, ulllookupid : u64, dwlookupaction : u32, pmessageprops : *mut MQMSGPROPS, lpoverlapped : *mut super::IO:: OVERLAPPED, fnreceivecallback : PMQRECEIVECALLBACK, ptransaction : super::DistributedTransactionCoordinator:: ITransaction) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mqrt.dll" "system" fn MQRegisterCertificate(dwflags : u32, lpcertbuffer : *const ::core::ffi::c_void, dwcertbufferlength : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_DistributedTransactionCoordinator", feature = "Win32_System_Variant"))] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_DistributedTransactionCoordinator\"`, `\"Win32_System_Variant\"`"] fn MQSendMessage(hdestinationqueue : isize, pmessageprops : *const MQMSGPROPS, ptransaction : super::DistributedTransactionCoordinator:: ITransaction) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn MQSetQueueProperties(lpwcsformatname : ::windows_sys::core::PCWSTR, pqueueprops : *mut MQQUEUEPROPS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("mqrt.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn MQSetQueueSecurity(lpwcsformatname : ::windows_sys::core::PCWSTR, securityinformation : super::super::Security:: OBJECT_SECURITY_INFORMATION, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR) -> ::windows_sys::core::HRESULT); +pub type IMSMQApplication = *mut ::core::ffi::c_void; +pub type IMSMQApplication2 = *mut ::core::ffi::c_void; +pub type IMSMQApplication3 = *mut ::core::ffi::c_void; +pub type IMSMQCollection = *mut ::core::ffi::c_void; +pub type IMSMQCoordinatedTransactionDispenser = *mut ::core::ffi::c_void; +pub type IMSMQCoordinatedTransactionDispenser2 = *mut ::core::ffi::c_void; +pub type IMSMQCoordinatedTransactionDispenser3 = *mut ::core::ffi::c_void; +pub type IMSMQDestination = *mut ::core::ffi::c_void; +pub type IMSMQEvent = *mut ::core::ffi::c_void; +pub type IMSMQEvent2 = *mut ::core::ffi::c_void; +pub type IMSMQEvent3 = *mut ::core::ffi::c_void; +pub type IMSMQManagement = *mut ::core::ffi::c_void; +pub type IMSMQMessage = *mut ::core::ffi::c_void; +pub type IMSMQMessage2 = *mut ::core::ffi::c_void; +pub type IMSMQMessage3 = *mut ::core::ffi::c_void; +pub type IMSMQMessage4 = *mut ::core::ffi::c_void; +pub type IMSMQOutgoingQueueManagement = *mut ::core::ffi::c_void; +pub type IMSMQPrivateDestination = *mut ::core::ffi::c_void; +pub type IMSMQPrivateEvent = *mut ::core::ffi::c_void; +pub type IMSMQQuery = *mut ::core::ffi::c_void; +pub type IMSMQQuery2 = *mut ::core::ffi::c_void; +pub type IMSMQQuery3 = *mut ::core::ffi::c_void; +pub type IMSMQQuery4 = *mut ::core::ffi::c_void; +pub type IMSMQQueue = *mut ::core::ffi::c_void; +pub type IMSMQQueue2 = *mut ::core::ffi::c_void; +pub type IMSMQQueue3 = *mut ::core::ffi::c_void; +pub type IMSMQQueue4 = *mut ::core::ffi::c_void; +pub type IMSMQQueueInfo = *mut ::core::ffi::c_void; +pub type IMSMQQueueInfo2 = *mut ::core::ffi::c_void; +pub type IMSMQQueueInfo3 = *mut ::core::ffi::c_void; +pub type IMSMQQueueInfo4 = *mut ::core::ffi::c_void; +pub type IMSMQQueueInfos = *mut ::core::ffi::c_void; +pub type IMSMQQueueInfos2 = *mut ::core::ffi::c_void; +pub type IMSMQQueueInfos3 = *mut ::core::ffi::c_void; +pub type IMSMQQueueInfos4 = *mut ::core::ffi::c_void; +pub type IMSMQQueueManagement = *mut ::core::ffi::c_void; +pub type IMSMQTransaction = *mut ::core::ffi::c_void; +pub type IMSMQTransaction2 = *mut ::core::ffi::c_void; +pub type IMSMQTransaction3 = *mut ::core::ffi::c_void; +pub type IMSMQTransactionDispenser = *mut ::core::ffi::c_void; +pub type IMSMQTransactionDispenser2 = *mut ::core::ffi::c_void; +pub type IMSMQTransactionDispenser3 = *mut ::core::ffi::c_void; +pub type _DMSMQEventEvents = *mut ::core::ffi::c_void; +pub const DEFAULT_M_ACKNOWLEDGE: MQDEFAULT = 0i32; +pub const DEFAULT_M_APPSPECIFIC: MQDEFAULT = 0i32; +pub const DEFAULT_M_AUTH_LEVEL: MQDEFAULT = 0i32; +pub const DEFAULT_M_DELIVERY: MQDEFAULT = 0i32; +pub const DEFAULT_M_JOURNAL: MQDEFAULT = 0i32; +pub const DEFAULT_M_LOOKUPID: MQDEFAULT = 0i32; +pub const DEFAULT_M_PRIORITY: MQDEFAULT = 3i32; +pub const DEFAULT_M_PRIV_LEVEL: MQDEFAULT = 0i32; +pub const DEFAULT_M_SENDERID_TYPE: MQDEFAULT = 1i32; +pub const DEFAULT_Q_AUTHENTICATE: MQDEFAULT = 0i32; +pub const DEFAULT_Q_BASEPRIORITY: MQDEFAULT = 0i32; +pub const DEFAULT_Q_JOURNAL: MQDEFAULT = 0i32; +pub const DEFAULT_Q_JOURNAL_QUOTA: MQDEFAULT = -1i32; +pub const DEFAULT_Q_PRIV_LEVEL: MQDEFAULT = 1i32; +pub const DEFAULT_Q_QUOTA: MQDEFAULT = -1i32; +pub const DEFAULT_Q_TRANSACTION: MQDEFAULT = 0i32; +pub const LONG_LIVED: u32 = 4294967294u32; +pub const MACHINE_ACTION_CONNECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CONNECT"); +pub const MACHINE_ACTION_DISCONNECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DISCONNECT"); +pub const MACHINE_ACTION_TIDY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TIDY"); +pub const MGMT_QUEUE_CORRECT_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("YES"); +pub const MGMT_QUEUE_FOREIGN_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("YES"); +pub const MGMT_QUEUE_INCORRECT_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NO"); +pub const MGMT_QUEUE_LOCAL_LOCATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LOCAL"); +pub const MGMT_QUEUE_NOT_FOREIGN_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NO"); +pub const MGMT_QUEUE_NOT_TRANSACTIONAL_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NO"); +pub const MGMT_QUEUE_REMOTE_LOCATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("REMOTE"); +pub const MGMT_QUEUE_STATE_CONNECTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CONNECTED"); +pub const MGMT_QUEUE_STATE_DISCONNECTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DISCONNECTED"); +pub const MGMT_QUEUE_STATE_DISCONNECTING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DISCONNECTING"); +pub const MGMT_QUEUE_STATE_LOCAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LOCAL CONNECTION"); +pub const MGMT_QUEUE_STATE_LOCKED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LOCKED"); +pub const MGMT_QUEUE_STATE_NEED_VALIDATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NEED VALIDATION"); +pub const MGMT_QUEUE_STATE_NONACTIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("INACTIVE"); +pub const MGMT_QUEUE_STATE_ONHOLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ONHOLD"); +pub const MGMT_QUEUE_STATE_WAITING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WAITING"); +pub const MGMT_QUEUE_TRANSACTIONAL_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("YES"); +pub const MGMT_QUEUE_TYPE_CONNECTOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CONNECTOR"); +pub const MGMT_QUEUE_TYPE_MACHINE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MACHINE"); +pub const MGMT_QUEUE_TYPE_MULTICAST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MULTICAST"); +pub const MGMT_QUEUE_TYPE_PRIVATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PRIVATE"); +pub const MGMT_QUEUE_TYPE_PUBLIC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PUBLIC"); +pub const MGMT_QUEUE_UNKNOWN_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UNKNOWN"); +pub const MO_MACHINE_TOKEN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MACHINE"); +pub const MO_QUEUE_TOKEN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("QUEUE"); +pub const MQCERT_REGISTER_ALWAYS: MQCERT_REGISTER = 1i32; +pub const MQCERT_REGISTER_IF_NOT_EXIST: MQCERT_REGISTER = 2i32; +pub const MQCONN_BIND_SOCKET_FAILURE: MQConnectionState = -2147483645i32; +pub const MQCONN_CONNECT_SOCKET_FAILURE: MQConnectionState = -2147483644i32; +pub const MQCONN_CREATE_SOCKET_FAILURE: MQConnectionState = -2147483646i32; +pub const MQCONN_ESTABLISH_PACKET_RECEIVED: MQConnectionState = 1i32; +pub const MQCONN_INVALID_SERVER_CERT: MQConnectionState = -2147483639i32; +pub const MQCONN_LIMIT_REACHED: MQConnectionState = -2147483638i32; +pub const MQCONN_NAME_RESOLUTION_FAILURE: MQConnectionState = -2147483640i32; +pub const MQCONN_NOFAILURE: MQConnectionState = 0i32; +pub const MQCONN_NOT_READY: MQConnectionState = -2147483641i32; +pub const MQCONN_OUT_OF_MEMORY: MQConnectionState = -2147483635i32; +pub const MQCONN_PING_FAILURE: MQConnectionState = -2147483647i32; +pub const MQCONN_READY: MQConnectionState = 2i32; +pub const MQCONN_REFUSED_BY_OTHER_SIDE: MQConnectionState = -2147483637i32; +pub const MQCONN_ROUTING_FAILURE: MQConnectionState = -2147483636i32; +pub const MQCONN_SEND_FAILURE: MQConnectionState = -2147483642i32; +pub const MQCONN_TCP_NOT_ENABLED: MQConnectionState = -2147483643i32; +pub const MQCONN_UNKNOWN_FAILURE: MQConnectionState = -2147483648i32; +pub const MQMSG_ACKNOWLEDGMENT_FULL_REACH_QUEUE: MQMSGACKNOWLEDGEMENT = 5i32; +pub const MQMSG_ACKNOWLEDGMENT_FULL_RECEIVE: MQMSGACKNOWLEDGEMENT = 14i32; +pub const MQMSG_ACKNOWLEDGMENT_NACK_REACH_QUEUE: MQMSGACKNOWLEDGEMENT = 4i32; +pub const MQMSG_ACKNOWLEDGMENT_NACK_RECEIVE: MQMSGACKNOWLEDGEMENT = 12i32; +pub const MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL: MQMSGACKNOWLEDGEMENT = 4i32; +pub const MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE: MQMSGACKNOWLEDGEMENT = 8i32; +pub const MQMSG_ACKNOWLEDGMENT_NONE: MQMSGACKNOWLEDGEMENT = 0i32; +pub const MQMSG_ACKNOWLEDGMENT_POS_ARRIVAL: MQMSGACKNOWLEDGEMENT = 1i32; +pub const MQMSG_ACKNOWLEDGMENT_POS_RECEIVE: MQMSGACKNOWLEDGEMENT = 2i32; +pub const MQMSG_AUTHENTICATED_QM_MESSAGE: u32 = 11u32; +pub const MQMSG_AUTHENTICATED_SIG10: MQMSGAUTHENTICATION = 1i32; +pub const MQMSG_AUTHENTICATED_SIG20: MQMSGAUTHENTICATION = 3i32; +pub const MQMSG_AUTHENTICATED_SIG30: MQMSGAUTHENTICATION = 5i32; +pub const MQMSG_AUTHENTICATED_SIGXML: MQMSGAUTHENTICATION = 9i32; +pub const MQMSG_AUTHENTICATION_NOT_REQUESTED: MQMSGAUTHENTICATION = 0i32; +pub const MQMSG_AUTHENTICATION_REQUESTED: MQMSGAUTHENTICATION = 1i32; +pub const MQMSG_AUTHENTICATION_REQUESTED_EX: MQMSGAUTHENTICATION = 3i32; +pub const MQMSG_AUTH_LEVEL_ALWAYS: MQMSGAUTHLEVEL = 1i32; +pub const MQMSG_AUTH_LEVEL_MSMQ10: MQMSGAUTHLEVEL = 2i32; +pub const MQMSG_AUTH_LEVEL_MSMQ20: MQMSGAUTHLEVEL = 4i32; +pub const MQMSG_AUTH_LEVEL_NONE: MQMSGAUTHLEVEL = 0i32; +pub const MQMSG_AUTH_LEVEL_SIG10: MQMSGAUTHLEVEL = 2i32; +pub const MQMSG_AUTH_LEVEL_SIG20: MQMSGAUTHLEVEL = 4i32; +pub const MQMSG_AUTH_LEVEL_SIG30: MQMSGAUTHLEVEL = 8i32; +pub const MQMSG_CALG_DES: MQCALG = 26113i32; +pub const MQMSG_CALG_DSS_SIGN: MQCALG = 8704i32; +pub const MQMSG_CALG_MAC: MQCALG = 32773i32; +pub const MQMSG_CALG_MD2: MQCALG = 32769i32; +pub const MQMSG_CALG_MD4: MQCALG = 32770i32; +pub const MQMSG_CALG_MD5: MQCALG = 32771i32; +pub const MQMSG_CALG_RC2: MQCALG = 26114i32; +pub const MQMSG_CALG_RC4: MQCALG = 26625i32; +pub const MQMSG_CALG_RSA_KEYX: MQCALG = 41984i32; +pub const MQMSG_CALG_RSA_SIGN: MQCALG = 9216i32; +pub const MQMSG_CALG_SEAL: MQCALG = 26626i32; +pub const MQMSG_CALG_SHA: MQCALG = 32772i32; +pub const MQMSG_CALG_SHA1: MQCALG = 32772i32; +pub const MQMSG_CLASS_ACK_REACH_QUEUE: MQMSGCLASS = 2i32; +pub const MQMSG_CLASS_ACK_RECEIVE: MQMSGCLASS = 16384i32; +pub const MQMSG_CLASS_NACK_ACCESS_DENIED: MQMSGCLASS = 32772i32; +pub const MQMSG_CLASS_NACK_BAD_DST_Q: MQMSGCLASS = 32768i32; +pub const MQMSG_CLASS_NACK_BAD_ENCRYPTION: MQMSGCLASS = 32775i32; +pub const MQMSG_CLASS_NACK_BAD_SIGNATURE: MQMSGCLASS = 32774i32; +pub const MQMSG_CLASS_NACK_COULD_NOT_ENCRYPT: MQMSGCLASS = 32776i32; +pub const MQMSG_CLASS_NACK_HOP_COUNT_EXCEEDED: MQMSGCLASS = 32773i32; +pub const MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_MSG: MQMSGCLASS = 32778i32; +pub const MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_Q: MQMSGCLASS = 32777i32; +pub const MQMSG_CLASS_NACK_PURGED: MQMSGCLASS = 32769i32; +pub const MQMSG_CLASS_NACK_Q_DELETED: MQMSGCLASS = 49152i32; +pub const MQMSG_CLASS_NACK_Q_EXCEED_QUOTA: MQMSGCLASS = 32771i32; +pub const MQMSG_CLASS_NACK_Q_PURGED: MQMSGCLASS = 49153i32; +pub const MQMSG_CLASS_NACK_REACH_QUEUE_TIMEOUT: MQMSGCLASS = 32770i32; +pub const MQMSG_CLASS_NACK_RECEIVE_TIMEOUT: MQMSGCLASS = 49154i32; +pub const MQMSG_CLASS_NACK_RECEIVE_TIMEOUT_AT_SENDER: MQMSGCLASS = 49155i32; +pub const MQMSG_CLASS_NACK_SOURCE_COMPUTER_GUID_CHANGED: MQMSGCLASS = 32780i32; +pub const MQMSG_CLASS_NACK_UNSUPPORTED_CRYPTO_PROVIDER: MQMSGCLASS = 32779i32; +pub const MQMSG_CLASS_NORMAL: MQMSGCLASS = 0i32; +pub const MQMSG_CLASS_REPORT: MQMSGCLASS = 1i32; +pub const MQMSG_CORRELATIONID_SIZE: MQMSGIDSIZE = 20i32; +pub const MQMSG_CURRENT: MQMSGCURSOR = 1i32; +pub const MQMSG_DEADLETTER: MQMSGJOURNAL = 1i32; +pub const MQMSG_DELIVERY_EXPRESS: MQMSGDELIVERY = 0i32; +pub const MQMSG_DELIVERY_RECOVERABLE: MQMSGDELIVERY = 1i32; +pub const MQMSG_FIRST: MQMSGCURSOR = 0i32; +pub const MQMSG_FIRST_IN_XACT: u32 = 1u32; +pub const MQMSG_JOURNAL: MQMSGJOURNAL = 2i32; +pub const MQMSG_JOURNAL_NONE: MQMSGJOURNAL = 0i32; +pub const MQMSG_LAST_IN_XACT: u32 = 1u32; +pub const MQMSG_MSGID_SIZE: MQMSGIDSIZE = 20i32; +pub const MQMSG_NEXT: MQMSGCURSOR = 2i32; +pub const MQMSG_NOT_FIRST_IN_XACT: u32 = 0u32; +pub const MQMSG_NOT_LAST_IN_XACT: u32 = 0u32; +pub const MQMSG_PRIV_LEVEL_BODY_AES: u32 = 5u32; +pub const MQMSG_PRIV_LEVEL_BODY_BASE: MQMSGPRIVLEVEL = 1i32; +pub const MQMSG_PRIV_LEVEL_BODY_ENHANCED: MQMSGPRIVLEVEL = 3i32; +pub const MQMSG_PRIV_LEVEL_NONE: MQMSGPRIVLEVEL = 0i32; +pub const MQMSG_SENDERID_TYPE_NONE: MQMSGSENDERIDTYPE = 0i32; +pub const MQMSG_SENDERID_TYPE_SID: MQMSGSENDERIDTYPE = 1i32; +pub const MQMSG_SEND_ROUTE_TO_REPORT_QUEUE: MQMSGTRACE = 1i32; +pub const MQMSG_TRACE_NONE: MQMSGTRACE = 0i32; +pub const MQMSG_XACTID_SIZE: MQMSGIDSIZE = 20i32; +pub const MQSEC_CHANGE_QUEUE_PERMISSIONS: MQQUEUEACCESSMASK = 262144u32; +pub const MQSEC_DELETE_JOURNAL_MESSAGE: MQQUEUEACCESSMASK = 8u32; +pub const MQSEC_DELETE_MESSAGE: MQQUEUEACCESSMASK = 1u32; +pub const MQSEC_DELETE_QUEUE: MQQUEUEACCESSMASK = 65536u32; +pub const MQSEC_GET_QUEUE_PERMISSIONS: MQQUEUEACCESSMASK = 131072u32; +pub const MQSEC_GET_QUEUE_PROPERTIES: MQQUEUEACCESSMASK = 32u32; +pub const MQSEC_PEEK_MESSAGE: MQQUEUEACCESSMASK = 2u32; +pub const MQSEC_QUEUE_GENERIC_ALL: MQQUEUEACCESSMASK = 983103u32; +pub const MQSEC_QUEUE_GENERIC_EXECUTE: MQQUEUEACCESSMASK = 0u32; +pub const MQSEC_QUEUE_GENERIC_READ: MQQUEUEACCESSMASK = 131115u32; +pub const MQSEC_QUEUE_GENERIC_WRITE: MQQUEUEACCESSMASK = 131108u32; +pub const MQSEC_RECEIVE_JOURNAL_MESSAGE: MQQUEUEACCESSMASK = 10u32; +pub const MQSEC_RECEIVE_MESSAGE: MQQUEUEACCESSMASK = 3u32; +pub const MQSEC_SET_QUEUE_PROPERTIES: MQQUEUEACCESSMASK = 16u32; +pub const MQSEC_TAKE_QUEUE_OWNERSHIP: MQQUEUEACCESSMASK = 524288u32; +pub const MQSEC_WRITE_MESSAGE: MQQUEUEACCESSMASK = 4u32; +pub const MQ_ACTION_PEEK_CURRENT: u32 = 2147483648u32; +pub const MQ_ACTION_PEEK_NEXT: u32 = 2147483649u32; +pub const MQ_ACTION_RECEIVE: u32 = 0u32; +pub const MQ_ADMIN_ACCESS: MQACCESS = 128i32; +pub const MQ_AUTHENTICATE: MQAUTHENTICATE = 1i32; +pub const MQ_AUTHENTICATE_NONE: MQAUTHENTICATE = 0i32; +pub const MQ_CORRUPTED_QUEUE_WAS_DELETED: MQERROR = -1072824216i32; +pub const MQ_DENY_NONE: MQSHARE = 0i32; +pub const MQ_DENY_RECEIVE_SHARE: MQSHARE = 1i32; +pub const MQ_ERROR: MQERROR = -1072824319i32; +pub const MQ_ERROR_ACCESS_DENIED: MQERROR = -1072824283i32; +pub const MQ_ERROR_BAD_SECURITY_CONTEXT: MQERROR = -1072824267i32; +pub const MQ_ERROR_BAD_XML_FORMAT: MQERROR = -1072824174i32; +pub const MQ_ERROR_BUFFER_OVERFLOW: MQERROR = -1072824294i32; +pub const MQ_ERROR_CANNOT_CREATE_CERT_STORE: MQERROR = -1072824209i32; +pub const MQ_ERROR_CANNOT_CREATE_HASH_EX: MQERROR = -1072824191i32; +pub const MQ_ERROR_CANNOT_CREATE_ON_GC: MQERROR = -1072824201i32; +pub const MQ_ERROR_CANNOT_CREATE_PSC_OBJECTS: MQERROR = -1072824171i32; +pub const MQ_ERROR_CANNOT_DELETE_PSC_OBJECTS: MQERROR = -1072824189i32; +pub const MQ_ERROR_CANNOT_GET_DN: MQERROR = -1072824194i32; +pub const MQ_ERROR_CANNOT_GRANT_ADD_GUID: MQERROR = -1072824206i32; +pub const MQ_ERROR_CANNOT_HASH_DATA_EX: MQERROR = -1072824193i32; +pub const MQ_ERROR_CANNOT_IMPERSONATE_CLIENT: MQERROR = -1072824284i32; +pub const MQ_ERROR_CANNOT_JOIN_DOMAIN: MQERROR = -1072824202i32; +pub const MQ_ERROR_CANNOT_LOAD_MQAD: MQERROR = -1072824187i32; +pub const MQ_ERROR_CANNOT_LOAD_MQDSSRV: MQERROR = -1072824186i32; +pub const MQ_ERROR_CANNOT_LOAD_MSMQOCM: MQERROR = -1072824205i32; +pub const MQ_ERROR_CANNOT_OPEN_CERT_STORE: MQERROR = -1072824208i32; +pub const MQ_ERROR_CANNOT_SET_CRYPTO_SEC_DESCR: MQERROR = -1072824212i32; +pub const MQ_ERROR_CANNOT_SIGN_DATA_EX: MQERROR = -1072824192i32; +pub const MQ_ERROR_CANNOT_UPDATE_PSC_OBJECTS: MQERROR = -1072824170i32; +pub const MQ_ERROR_CANT_CREATE_CERT_STORE: MQERROR = -1072824209i32; +pub const MQ_ERROR_CANT_OPEN_CERT_STORE: MQERROR = -1072824208i32; +pub const MQ_ERROR_CANT_RESOLVE_SITES: MQERROR = -1072824183i32; +pub const MQ_ERROR_CERTIFICATE_NOT_PROVIDED: MQERROR = -1072824211i32; +pub const MQ_ERROR_COMPUTER_DOES_NOT_SUPPORT_ENCRYPTION: MQERROR = -1072824269i32; +pub const MQ_ERROR_CORRUPTED_INTERNAL_CERTIFICATE: MQERROR = -1072824275i32; +pub const MQ_ERROR_CORRUPTED_PERSONAL_CERT_STORE: MQERROR = -1072824271i32; +pub const MQ_ERROR_CORRUPTED_SECURITY_DATA: MQERROR = -1072824272i32; +pub const MQ_ERROR_COULD_NOT_GET_ACCOUNT_INFO: MQERROR = -1072824265i32; +pub const MQ_ERROR_COULD_NOT_GET_USER_SID: MQERROR = -1072824266i32; +pub const MQ_ERROR_DELETE_CN_IN_USE: MQERROR = -1072824248i32; +pub const MQ_ERROR_DEPEND_WKS_LICENSE_OVERFLOW: MQERROR = -1072824217i32; +pub const MQ_ERROR_DS_BIND_ROOT_FOREST: MQERROR = -1072824177i32; +pub const MQ_ERROR_DS_ERROR: MQERROR = -1072824253i32; +pub const MQ_ERROR_DS_IS_FULL: MQERROR = -1072824254i32; +pub const MQ_ERROR_DS_LOCAL_USER: MQERROR = -1072824176i32; +pub const MQ_ERROR_DTC_CONNECT: MQERROR = -1072824244i32; +pub const MQ_ERROR_ENCRYPTION_PROVIDER_NOT_SUPPORTED: MQERROR = -1072824213i32; +pub const MQ_ERROR_FAIL_VERIFY_SIGNATURE_EX: MQERROR = -1072824190i32; +pub const MQ_ERROR_FORMATNAME_BUFFER_TOO_SMALL: MQERROR = -1072824289i32; +pub const MQ_ERROR_GC_NEEDED: MQERROR = -1072824178i32; +pub const MQ_ERROR_GUID_NOT_MATCHING: MQERROR = -1072824200i32; +pub const MQ_ERROR_ILLEGAL_CONTEXT: MQERROR = -1072824229i32; +pub const MQ_ERROR_ILLEGAL_CURSOR_ACTION: MQERROR = -1072824292i32; +pub const MQ_ERROR_ILLEGAL_ENTERPRISE_OPERATION: MQERROR = -1072824207i32; +pub const MQ_ERROR_ILLEGAL_FORMATNAME: MQERROR = -1072824290i32; +pub const MQ_ERROR_ILLEGAL_MQCOLUMNS: MQERROR = -1072824264i32; +pub const MQ_ERROR_ILLEGAL_MQPRIVATEPROPS: MQERROR = -1072824197i32; +pub const MQ_ERROR_ILLEGAL_MQQMPROPS: MQERROR = -1072824255i32; +pub const MQ_ERROR_ILLEGAL_MQQUEUEPROPS: MQERROR = -1072824259i32; +pub const MQ_ERROR_ILLEGAL_OPERATION: MQERROR = -1072824220i32; +pub const MQ_ERROR_ILLEGAL_PROPERTY_SIZE: MQERROR = -1072824261i32; +pub const MQ_ERROR_ILLEGAL_PROPERTY_VALUE: MQERROR = -1072824296i32; +pub const MQ_ERROR_ILLEGAL_PROPERTY_VT: MQERROR = -1072824295i32; +pub const MQ_ERROR_ILLEGAL_PROPID: MQERROR = -1072824263i32; +pub const MQ_ERROR_ILLEGAL_QUEUE_PATHNAME: MQERROR = -1072824300i32; +pub const MQ_ERROR_ILLEGAL_RELATION: MQERROR = -1072824262i32; +pub const MQ_ERROR_ILLEGAL_RESTRICTION_PROPID: MQERROR = -1072824260i32; +pub const MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR: MQERROR = -1072824287i32; +pub const MQ_ERROR_ILLEGAL_SORT: MQERROR = -1072824304i32; +pub const MQ_ERROR_ILLEGAL_SORT_PROPID: MQERROR = -1072824228i32; +pub const MQ_ERROR_ILLEGAL_USER: MQERROR = -1072824303i32; +pub const MQ_ERROR_INSUFFICIENT_PROPERTIES: MQERROR = -1072824257i32; +pub const MQ_ERROR_INSUFFICIENT_RESOURCES: MQERROR = -1072824281i32; +pub const MQ_ERROR_INTERNAL_USER_CERT_EXIST: MQERROR = -1072824274i32; +pub const MQ_ERROR_INVALID_CERTIFICATE: MQERROR = -1072824276i32; +pub const MQ_ERROR_INVALID_HANDLE: MQERROR = -1072824313i32; +pub const MQ_ERROR_INVALID_OWNER: MQERROR = -1072824252i32; +pub const MQ_ERROR_INVALID_PARAMETER: MQERROR = -1072824314i32; +pub const MQ_ERROR_IO_TIMEOUT: MQERROR = -1072824293i32; +pub const MQ_ERROR_LABEL_BUFFER_TOO_SMALL: MQERROR = -1072824226i32; +pub const MQ_ERROR_LABEL_TOO_LONG: MQERROR = -1072824227i32; +pub const MQ_ERROR_MACHINE_EXISTS: MQERROR = -1072824256i32; +pub const MQ_ERROR_MACHINE_NOT_FOUND: MQERROR = -1072824307i32; +pub const MQ_ERROR_MESSAGE_ALREADY_RECEIVED: MQERROR = -1072824291i32; +pub const MQ_ERROR_MESSAGE_LOCKED_UNDER_TRANSACTION: ::windows_sys::core::HRESULT = -1072824164i32; +pub const MQ_ERROR_MESSAGE_NOT_AUTHENTICATED: ::windows_sys::core::HRESULT = -1072824165i32; +pub const MQ_ERROR_MESSAGE_NOT_FOUND: MQERROR = -1072824184i32; +pub const MQ_ERROR_MESSAGE_STORAGE_FAILED: MQERROR = -1072824278i32; +pub const MQ_ERROR_MISSING_CONNECTOR_TYPE: MQERROR = -1072824235i32; +pub const MQ_ERROR_MQIS_READONLY_MODE: MQERROR = -1072824224i32; +pub const MQ_ERROR_MQIS_SERVER_EMPTY: MQERROR = -1072824225i32; +pub const MQ_ERROR_MULTI_SORT_KEYS: MQERROR = -1072824179i32; +pub const MQ_ERROR_NOT_A_CORRECT_OBJECT_CLASS: MQERROR = -1072824180i32; +pub const MQ_ERROR_NOT_SUPPORTED_BY_DEPENDENT_CLIENTS: MQERROR = -1072824182i32; +pub const MQ_ERROR_NO_DS: MQERROR = -1072824301i32; +pub const MQ_ERROR_NO_ENTRY_POINT_MSMQOCM: MQERROR = -1072824204i32; +pub const MQ_ERROR_NO_GC_IN_DOMAIN: MQERROR = -1072824196i32; +pub const MQ_ERROR_NO_INTERNAL_USER_CERT: MQERROR = -1072824273i32; +pub const MQ_ERROR_NO_MQUSER_OU: MQERROR = -1072824188i32; +pub const MQ_ERROR_NO_MSMQ_SERVERS_ON_DC: MQERROR = -1072824203i32; +pub const MQ_ERROR_NO_MSMQ_SERVERS_ON_GC: MQERROR = -1072824195i32; +pub const MQ_ERROR_NO_RESPONSE_FROM_OBJECT_SERVER: MQERROR = -1072824247i32; +pub const MQ_ERROR_OBJECT_SERVER_NOT_AVAILABLE: MQERROR = -1072824246i32; +pub const MQ_ERROR_OPERATION_CANCELLED: MQERROR = -1072824312i32; +pub const MQ_ERROR_OPERATION_NOT_SUPPORTED_BY_REMOTE_COMPUTER: MQERROR = -1072824181i32; +pub const MQ_ERROR_PRIVILEGE_NOT_HELD: MQERROR = -1072824282i32; +pub const MQ_ERROR_PROPERTIES_CONFLICT: MQERROR = -1072824185i32; +pub const MQ_ERROR_PROPERTY: MQERROR = -1072824318i32; +pub const MQ_ERROR_PROPERTY_NOTALLOWED: MQERROR = -1072824258i32; +pub const MQ_ERROR_PROV_NAME_BUFFER_TOO_SMALL: MQERROR = -1072824221i32; +pub const MQ_ERROR_PUBLIC_KEY_DOES_NOT_EXIST: MQERROR = -1072824198i32; +pub const MQ_ERROR_PUBLIC_KEY_NOT_FOUND: MQERROR = -1072824199i32; +pub const MQ_ERROR_QUEUE_DELETED: MQERROR = -1072824230i32; +pub const MQ_ERROR_QUEUE_EXISTS: MQERROR = -1072824315i32; +pub const MQ_ERROR_QUEUE_NOT_ACTIVE: MQERROR = -1072824316i32; +pub const MQ_ERROR_QUEUE_NOT_AVAILABLE: MQERROR = -1072824245i32; +pub const MQ_ERROR_QUEUE_NOT_FOUND: MQERROR = -1072824317i32; +pub const MQ_ERROR_Q_ADS_PROPERTY_NOT_SUPPORTED: MQERROR = -1072824175i32; +pub const MQ_ERROR_Q_DNS_PROPERTY_NOT_SUPPORTED: MQERROR = -1072824210i32; +pub const MQ_ERROR_REMOTE_MACHINE_NOT_AVAILABLE: MQERROR = -1072824215i32; +pub const MQ_ERROR_RESOLVE_ADDRESS: ::windows_sys::core::HRESULT = -1072824167i32; +pub const MQ_ERROR_RESULT_BUFFER_TOO_SMALL: MQERROR = -1072824250i32; +pub const MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL: MQERROR = -1072824285i32; +pub const MQ_ERROR_SENDERID_BUFFER_TOO_SMALL: MQERROR = -1072824286i32; +pub const MQ_ERROR_SENDER_CERT_BUFFER_TOO_SMALL: MQERROR = -1072824277i32; +pub const MQ_ERROR_SERVICE_NOT_AVAILABLE: MQERROR = -1072824309i32; +pub const MQ_ERROR_SHARING_VIOLATION: MQERROR = -1072824311i32; +pub const MQ_ERROR_SIGNATURE_BUFFER_TOO_SMALL: MQERROR = -1072824222i32; +pub const MQ_ERROR_STALE_HANDLE: MQERROR = -1072824234i32; +pub const MQ_ERROR_SYMM_KEY_BUFFER_TOO_SMALL: MQERROR = -1072824223i32; +pub const MQ_ERROR_TOO_MANY_PROPERTIES: ::windows_sys::core::HRESULT = -1072824166i32; +pub const MQ_ERROR_TRANSACTION_ENLIST: MQERROR = -1072824232i32; +pub const MQ_ERROR_TRANSACTION_IMPORT: MQERROR = -1072824242i32; +pub const MQ_ERROR_TRANSACTION_SEQUENCE: MQERROR = -1072824239i32; +pub const MQ_ERROR_TRANSACTION_USAGE: MQERROR = -1072824240i32; +pub const MQ_ERROR_UNINITIALIZED_OBJECT: MQERROR = -1072824172i32; +pub const MQ_ERROR_UNSUPPORTED_ACCESS_MODE: MQERROR = -1072824251i32; +pub const MQ_ERROR_UNSUPPORTED_CLASS: MQERROR = -1072824173i32; +pub const MQ_ERROR_UNSUPPORTED_FORMATNAME_OPERATION: MQERROR = -1072824288i32; +pub const MQ_ERROR_UNSUPPORTED_OPERATION: MQERROR = -1072824214i32; +pub const MQ_ERROR_USER_BUFFER_TOO_SMALL: MQERROR = -1072824280i32; +pub const MQ_ERROR_WKS_CANT_SERVE_CLIENT: MQERROR = -1072824218i32; +pub const MQ_ERROR_WRITE_NOT_ALLOWED: MQERROR = -1072824219i32; +pub const MQ_INFORMATION_DUPLICATE_PROPERTY: MQWARNING = 1074659333i32; +pub const MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL: MQWARNING = 1074659337i32; +pub const MQ_INFORMATION_ILLEGAL_PROPERTY: MQWARNING = 1074659330i32; +pub const MQ_INFORMATION_INTERNAL_USER_CERT_EXIST: MQWARNING = 1074659338i32; +pub const MQ_INFORMATION_OPERATION_PENDING: MQWARNING = 1074659334i32; +pub const MQ_INFORMATION_OWNER_IGNORED: MQWARNING = 1074659339i32; +pub const MQ_INFORMATION_PROPERTY: MQWARNING = 1074659329i32; +pub const MQ_INFORMATION_PROPERTY_IGNORED: MQWARNING = 1074659331i32; +pub const MQ_INFORMATION_UNSUPPORTED_PROPERTY: MQWARNING = 1074659332i32; +pub const MQ_JOURNAL: MQJOURNAL = 1i32; +pub const MQ_JOURNAL_NONE: MQJOURNAL = 0i32; +pub const MQ_LOOKUP_PEEK_CURRENT: u32 = 1073741840u32; +pub const MQ_LOOKUP_PEEK_FIRST: u32 = 1073741844u32; +pub const MQ_LOOKUP_PEEK_LAST: u32 = 1073741848u32; +pub const MQ_LOOKUP_PEEK_NEXT: u32 = 1073741841u32; +pub const MQ_LOOKUP_PEEK_PREV: u32 = 1073741842u32; +pub const MQ_LOOKUP_RECEIVE_ALLOW_PEEK: u32 = 1073742112u32; +pub const MQ_LOOKUP_RECEIVE_CURRENT: u32 = 1073741856u32; +pub const MQ_LOOKUP_RECEIVE_FIRST: u32 = 1073741860u32; +pub const MQ_LOOKUP_RECEIVE_LAST: u32 = 1073741864u32; +pub const MQ_LOOKUP_RECEIVE_NEXT: u32 = 1073741857u32; +pub const MQ_LOOKUP_RECEIVE_PREV: u32 = 1073741858u32; +pub const MQ_MAX_MSG_LABEL_LEN: MQMSGMAX = 249i32; +pub const MQ_MAX_PRIORITY: MQPRIORITY = 7i32; +pub const MQ_MAX_Q_LABEL_LEN: MQMAX = 124i32; +pub const MQ_MAX_Q_NAME_LEN: MQMAX = 124i32; +pub const MQ_MIN_PRIORITY: MQPRIORITY = 0i32; +pub const MQ_MOVE_ACCESS: u32 = 4u32; +pub const MQ_MTS_TRANSACTION: MQTRANSACTION = 1i32; +pub const MQ_NO_TRANSACTION: MQTRANSACTION = 0i32; +pub const MQ_OK: ::windows_sys::core::HRESULT = 0i32; +pub const MQ_PEEK_ACCESS: MQACCESS = 32i32; +pub const MQ_PRIV_LEVEL_BODY: MQPRIVLEVEL = 2i32; +pub const MQ_PRIV_LEVEL_NONE: MQPRIVLEVEL = 0i32; +pub const MQ_PRIV_LEVEL_OPTIONAL: MQPRIVLEVEL = 1i32; +pub const MQ_QTYPE_REPORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x55ee8f32_cce9_11cf_b108_0020afd61ce9); +pub const MQ_QTYPE_TEST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x55ee8f33_cce9_11cf_b108_0020afd61ce9); +pub const MQ_QUEUE_STATE_CONNECTED: QUEUE_STATE = 6i32; +pub const MQ_QUEUE_STATE_DISCONNECTED: QUEUE_STATE = 1i32; +pub const MQ_QUEUE_STATE_DISCONNECTING: QUEUE_STATE = 7i32; +pub const MQ_QUEUE_STATE_LOCAL_CONNECTION: QUEUE_STATE = 0i32; +pub const MQ_QUEUE_STATE_LOCKED: QUEUE_STATE = 8i32; +pub const MQ_QUEUE_STATE_NEEDVALIDATE: QUEUE_STATE = 3i32; +pub const MQ_QUEUE_STATE_NONACTIVE: QUEUE_STATE = 5i32; +pub const MQ_QUEUE_STATE_ONHOLD: QUEUE_STATE = 4i32; +pub const MQ_QUEUE_STATE_WAITING: QUEUE_STATE = 2i32; +pub const MQ_RECEIVE_ACCESS: MQACCESS = 1i32; +pub const MQ_SEND_ACCESS: MQACCESS = 2i32; +pub const MQ_SINGLE_MESSAGE: MQTRANSACTION = 3i32; +pub const MQ_STATUS_FOREIGN: FOREIGN_STATUS = 0i32; +pub const MQ_STATUS_NOT_FOREIGN: FOREIGN_STATUS = 1i32; +pub const MQ_STATUS_UNKNOWN: FOREIGN_STATUS = 2i32; +pub const MQ_TRANSACTIONAL: MQTRANSACTIONAL = 1i32; +pub const MQ_TRANSACTIONAL_NONE: MQTRANSACTIONAL = 0i32; +pub const MQ_TYPE_CONNECTOR: QUEUE_TYPE = 3i32; +pub const MQ_TYPE_MACHINE: QUEUE_TYPE = 2i32; +pub const MQ_TYPE_MULTICAST: QUEUE_TYPE = 4i32; +pub const MQ_TYPE_PRIVATE: QUEUE_TYPE = 1i32; +pub const MQ_TYPE_PUBLIC: QUEUE_TYPE = 0i32; +pub const MQ_XACT_STATUS_NOT_XACT: XACT_STATUS = 1i32; +pub const MQ_XACT_STATUS_UNKNOWN: XACT_STATUS = 2i32; +pub const MQ_XACT_STATUS_XACT: XACT_STATUS = 0i32; +pub const MQ_XA_TRANSACTION: MQTRANSACTION = 2i32; +pub const MSMQApplication: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7d6e086_dccd_11d0_aa4b_0060970debae); +pub const MSMQCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf72b9031_2f0c_43e8_924e_e6052cdc493f); +pub const MSMQCoordinatedTransactionDispenser: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7d6e082_dccd_11d0_aa4b_0060970debae); +pub const MSMQDestination: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeba96b18_2168_11d3_898c_00e02c074f6b); +pub const MSMQEvent: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7d6e07a_dccd_11d0_aa4b_0060970debae); +pub const MSMQManagement: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x39ce96fe_f4c5_4484_a143_4c2d5d324229); +pub const MSMQMessage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7d6e075_dccd_11d0_aa4b_0060970debae); +pub const MSMQOutgoingQueueManagement: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0188401c_247a_4fed_99c6_bf14119d7055); +pub const MSMQQuery: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7d6e073_dccd_11d0_aa4b_0060970debae); +pub const MSMQQueue: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7d6e079_dccd_11d0_aa4b_0060970debae); +pub const MSMQQueueInfo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7d6e07c_dccd_11d0_aa4b_0060970debae); +pub const MSMQQueueInfos: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7d6e07e_dccd_11d0_aa4b_0060970debae); +pub const MSMQQueueManagement: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33b6d07e_f27d_42fa_b2d7_bf82e11e9374); +pub const MSMQTransaction: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7d6e080_dccd_11d0_aa4b_0060970debae); +pub const MSMQTransactionDispenser: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7d6e084_dccd_11d0_aa4b_0060970debae); +pub const MSMQ_CONNECTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CONNECTED"); +pub const MSMQ_DISCONNECTED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DISCONNECTED"); +pub const PREQ: u32 = 4u32; +pub const PRGE: u32 = 3u32; +pub const PRGT: u32 = 2u32; +pub const PRLE: u32 = 1u32; +pub const PRLT: u32 = 0u32; +pub const PRNE: u32 = 5u32; +pub const PROPID_MGMT_MSMQ_ACTIVEQUEUES: u32 = 1u32; +pub const PROPID_MGMT_MSMQ_BASE: u32 = 0u32; +pub const PROPID_MGMT_MSMQ_BYTES_IN_ALL_QUEUES: u32 = 6u32; +pub const PROPID_MGMT_MSMQ_CONNECTED: u32 = 4u32; +pub const PROPID_MGMT_MSMQ_DSSERVER: u32 = 3u32; +pub const PROPID_MGMT_MSMQ_PRIVATEQ: u32 = 2u32; +pub const PROPID_MGMT_MSMQ_TYPE: u32 = 5u32; +pub const PROPID_MGMT_QUEUE_BASE: u32 = 0u32; +pub const PROPID_MGMT_QUEUE_BYTES_IN_JOURNAL: u32 = 10u32; +pub const PROPID_MGMT_QUEUE_BYTES_IN_QUEUE: u32 = 8u32; +pub const PROPID_MGMT_QUEUE_CONNECTION_HISTORY: u32 = 25u32; +pub const PROPID_MGMT_QUEUE_EOD_FIRST_NON_ACK: u32 = 16u32; +pub const PROPID_MGMT_QUEUE_EOD_LAST_ACK: u32 = 13u32; +pub const PROPID_MGMT_QUEUE_EOD_LAST_ACK_COUNT: u32 = 15u32; +pub const PROPID_MGMT_QUEUE_EOD_LAST_ACK_TIME: u32 = 14u32; +pub const PROPID_MGMT_QUEUE_EOD_LAST_NON_ACK: u32 = 17u32; +pub const PROPID_MGMT_QUEUE_EOD_NEXT_SEQ: u32 = 18u32; +pub const PROPID_MGMT_QUEUE_EOD_NO_ACK_COUNT: u32 = 20u32; +pub const PROPID_MGMT_QUEUE_EOD_NO_READ_COUNT: u32 = 19u32; +pub const PROPID_MGMT_QUEUE_EOD_RESEND_COUNT: u32 = 23u32; +pub const PROPID_MGMT_QUEUE_EOD_RESEND_INTERVAL: u32 = 22u32; +pub const PROPID_MGMT_QUEUE_EOD_RESEND_TIME: u32 = 21u32; +pub const PROPID_MGMT_QUEUE_EOD_SOURCE_INFO: u32 = 24u32; +pub const PROPID_MGMT_QUEUE_FOREIGN: u32 = 6u32; +pub const PROPID_MGMT_QUEUE_FORMATNAME: u32 = 2u32; +pub const PROPID_MGMT_QUEUE_JOURNAL_MESSAGE_COUNT: u32 = 9u32; +pub const PROPID_MGMT_QUEUE_JOURNAL_USED_QUOTA: u32 = 10u32; +pub const PROPID_MGMT_QUEUE_LOCATION: u32 = 4u32; +pub const PROPID_MGMT_QUEUE_MESSAGE_COUNT: u32 = 7u32; +pub const PROPID_MGMT_QUEUE_NEXTHOPS: u32 = 12u32; +pub const PROPID_MGMT_QUEUE_PATHNAME: u32 = 1u32; +pub const PROPID_MGMT_QUEUE_STATE: u32 = 11u32; +pub const PROPID_MGMT_QUEUE_SUBQUEUE_COUNT: u32 = 26u32; +pub const PROPID_MGMT_QUEUE_SUBQUEUE_NAMES: u32 = 27u32; +pub const PROPID_MGMT_QUEUE_TYPE: u32 = 3u32; +pub const PROPID_MGMT_QUEUE_USED_QUOTA: u32 = 8u32; +pub const PROPID_MGMT_QUEUE_XACT: u32 = 5u32; +pub const PROPID_M_ABORT_COUNT: u32 = 69u32; +pub const PROPID_M_ACKNOWLEDGE: u32 = 6u32; +pub const PROPID_M_ADMIN_QUEUE: u32 = 17u32; +pub const PROPID_M_ADMIN_QUEUE_LEN: u32 = 18u32; +pub const PROPID_M_APPSPECIFIC: u32 = 8u32; +pub const PROPID_M_ARRIVEDTIME: u32 = 32u32; +pub const PROPID_M_AUTHENTICATED: u32 = 25u32; +pub const PROPID_M_AUTHENTICATED_EX: u32 = 53u32; +pub const PROPID_M_AUTH_LEVEL: u32 = 24u32; +pub const PROPID_M_BASE: u32 = 0u32; +pub const PROPID_M_BODY: u32 = 9u32; +pub const PROPID_M_BODY_SIZE: u32 = 10u32; +pub const PROPID_M_BODY_TYPE: u32 = 42u32; +pub const PROPID_M_CLASS: u32 = 1u32; +pub const PROPID_M_COMPOUND_MESSAGE: u32 = 63u32; +pub const PROPID_M_COMPOUND_MESSAGE_SIZE: u32 = 64u32; +pub const PROPID_M_CONNECTOR_TYPE: u32 = 38u32; +pub const PROPID_M_CORRELATIONID: u32 = 3u32; +pub const PROPID_M_CORRELATIONID_SIZE: u32 = 20u32; +pub const PROPID_M_DEADLETTER_QUEUE: u32 = 67u32; +pub const PROPID_M_DEADLETTER_QUEUE_LEN: u32 = 68u32; +pub const PROPID_M_DELIVERY: u32 = 5u32; +pub const PROPID_M_DEST_FORMAT_NAME: u32 = 58u32; +pub const PROPID_M_DEST_FORMAT_NAME_LEN: u32 = 59u32; +pub const PROPID_M_DEST_QUEUE: u32 = 33u32; +pub const PROPID_M_DEST_QUEUE_LEN: u32 = 34u32; +pub const PROPID_M_DEST_SYMM_KEY: u32 = 43u32; +pub const PROPID_M_DEST_SYMM_KEY_LEN: u32 = 44u32; +pub const PROPID_M_ENCRYPTION_ALG: u32 = 27u32; +pub const PROPID_M_EXTENSION: u32 = 35u32; +pub const PROPID_M_EXTENSION_LEN: u32 = 36u32; +pub const PROPID_M_FIRST_IN_XACT: u32 = 50u32; +pub const PROPID_M_HASH_ALG: u32 = 26u32; +pub const PROPID_M_JOURNAL: u32 = 7u32; +pub const PROPID_M_LABEL: u32 = 11u32; +pub const PROPID_M_LABEL_LEN: u32 = 12u32; +pub const PROPID_M_LAST_IN_XACT: u32 = 51u32; +pub const PROPID_M_LAST_MOVE_TIME: u32 = 75u32; +pub const PROPID_M_LOOKUPID: u32 = 60u32; +pub const PROPID_M_MOVE_COUNT: u32 = 70u32; +pub const PROPID_M_MSGID: u32 = 2u32; +pub const PROPID_M_MSGID_SIZE: u32 = 20u32; +pub const PROPID_M_PRIORITY: u32 = 4u32; +pub const PROPID_M_PRIV_LEVEL: u32 = 23u32; +pub const PROPID_M_PROV_NAME: u32 = 48u32; +pub const PROPID_M_PROV_NAME_LEN: u32 = 49u32; +pub const PROPID_M_PROV_TYPE: u32 = 47u32; +pub const PROPID_M_RESP_FORMAT_NAME: u32 = 54u32; +pub const PROPID_M_RESP_FORMAT_NAME_LEN: u32 = 55u32; +pub const PROPID_M_RESP_QUEUE: u32 = 15u32; +pub const PROPID_M_RESP_QUEUE_LEN: u32 = 16u32; +pub const PROPID_M_SECURITY_CONTEXT: u32 = 37u32; +pub const PROPID_M_SENDERID: u32 = 20u32; +pub const PROPID_M_SENDERID_LEN: u32 = 21u32; +pub const PROPID_M_SENDERID_TYPE: u32 = 22u32; +pub const PROPID_M_SENDER_CERT: u32 = 28u32; +pub const PROPID_M_SENDER_CERT_LEN: u32 = 29u32; +pub const PROPID_M_SENTTIME: u32 = 31u32; +pub const PROPID_M_SIGNATURE: u32 = 45u32; +pub const PROPID_M_SIGNATURE_LEN: u32 = 46u32; +pub const PROPID_M_SOAP_BODY: u32 = 66u32; +pub const PROPID_M_SOAP_ENVELOPE: u32 = 61u32; +pub const PROPID_M_SOAP_ENVELOPE_LEN: u32 = 62u32; +pub const PROPID_M_SOAP_HEADER: u32 = 65u32; +pub const PROPID_M_SRC_MACHINE_ID: u32 = 30u32; +pub const PROPID_M_TIME_TO_BE_RECEIVED: u32 = 14u32; +pub const PROPID_M_TIME_TO_REACH_QUEUE: u32 = 13u32; +pub const PROPID_M_TRACE: u32 = 41u32; +pub const PROPID_M_VERSION: u32 = 19u32; +pub const PROPID_M_XACTID: u32 = 52u32; +pub const PROPID_M_XACTID_SIZE: u32 = 20u32; +pub const PROPID_M_XACT_STATUS_QUEUE: u32 = 39u32; +pub const PROPID_M_XACT_STATUS_QUEUE_LEN: u32 = 40u32; +pub const PROPID_PC_BASE: u32 = 5800u32; +pub const PROPID_PC_DS_ENABLED: u32 = 5802u32; +pub const PROPID_PC_VERSION: u32 = 5801u32; +pub const PROPID_QM_BASE: u32 = 200u32; +pub const PROPID_QM_CONNECTION: u32 = 204u32; +pub const PROPID_QM_ENCRYPTION_PK: u32 = 205u32; +pub const PROPID_QM_ENCRYPTION_PK_AES: u32 = 244u32; +pub const PROPID_QM_ENCRYPTION_PK_BASE: u32 = 231u32; +pub const PROPID_QM_ENCRYPTION_PK_ENHANCED: u32 = 232u32; +pub const PROPID_QM_MACHINE_ID: u32 = 202u32; +pub const PROPID_QM_PATHNAME: u32 = 203u32; +pub const PROPID_QM_PATHNAME_DNS: u32 = 233u32; +pub const PROPID_QM_SITE_ID: u32 = 201u32; +pub const PROPID_Q_ADS_PATH: u32 = 126u32; +pub const PROPID_Q_AUTHENTICATE: u32 = 111u32; +pub const PROPID_Q_BASE: u32 = 100u32; +pub const PROPID_Q_BASEPRIORITY: u32 = 106u32; +pub const PROPID_Q_CREATE_TIME: u32 = 109u32; +pub const PROPID_Q_INSTANCE: u32 = 101u32; +pub const PROPID_Q_JOURNAL: u32 = 104u32; +pub const PROPID_Q_JOURNAL_QUOTA: u32 = 107u32; +pub const PROPID_Q_LABEL: u32 = 108u32; +pub const PROPID_Q_MODIFY_TIME: u32 = 110u32; +pub const PROPID_Q_MULTICAST_ADDRESS: u32 = 125u32; +pub const PROPID_Q_PATHNAME: u32 = 103u32; +pub const PROPID_Q_PATHNAME_DNS: u32 = 124u32; +pub const PROPID_Q_PRIV_LEVEL: u32 = 112u32; +pub const PROPID_Q_QUOTA: u32 = 105u32; +pub const PROPID_Q_TRANSACTION: u32 = 113u32; +pub const PROPID_Q_TYPE: u32 = 102u32; +pub const QUERY_SORTASCEND: u32 = 0u32; +pub const QUERY_SORTDESCEND: u32 = 1u32; +pub const QUEUE_ACTION_EOD_RESEND: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EOD_RESEND"); +pub const QUEUE_ACTION_PAUSE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PAUSE"); +pub const QUEUE_ACTION_RESUME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RESUME"); +pub const REL_EQ: RELOPS = 1i32; +pub const REL_GE: RELOPS = 6i32; +pub const REL_GT: RELOPS = 4i32; +pub const REL_LE: RELOPS = 5i32; +pub const REL_LT: RELOPS = 3i32; +pub const REL_NEQ: RELOPS = 2i32; +pub const REL_NOP: RELOPS = 0i32; +pub type FOREIGN_STATUS = i32; +pub type MQACCESS = i32; +pub type MQAUTHENTICATE = i32; +pub type MQCALG = i32; +pub type MQCERT_REGISTER = i32; +pub type MQConnectionState = i32; +pub type MQDEFAULT = i32; +pub type MQERROR = i32; +pub type MQJOURNAL = i32; +pub type MQMAX = i32; +pub type MQMSGACKNOWLEDGEMENT = i32; +pub type MQMSGAUTHENTICATION = i32; +pub type MQMSGAUTHLEVEL = i32; +pub type MQMSGCLASS = i32; +pub type MQMSGCURSOR = i32; +pub type MQMSGDELIVERY = i32; +pub type MQMSGIDSIZE = i32; +pub type MQMSGJOURNAL = i32; +pub type MQMSGMAX = i32; +pub type MQMSGPRIVLEVEL = i32; +pub type MQMSGSENDERIDTYPE = i32; +pub type MQMSGTRACE = i32; +pub type MQPRIORITY = i32; +pub type MQPRIVLEVEL = i32; +pub type MQQUEUEACCESSMASK = u32; +pub type MQSHARE = i32; +pub type MQTRANSACTION = i32; +pub type MQTRANSACTIONAL = i32; +pub type MQWARNING = i32; +pub type QUEUE_STATE = i32; +pub type QUEUE_TYPE = i32; +pub type RELOPS = i32; +pub type XACT_STATUS = i32; +#[repr(C)] +pub struct MQCOLUMNSET { + pub cCol: u32, + pub aCol: *mut u32, +} +impl ::core::marker::Copy for MQCOLUMNSET {} +impl ::core::clone::Clone for MQCOLUMNSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct MQMGMTPROPS { + pub cProp: u32, + pub aPropID: *mut u32, + pub aPropVar: *mut super::Com::StructuredStorage::PROPVARIANT, + pub aStatus: *mut ::windows_sys::core::HRESULT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for MQMGMTPROPS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for MQMGMTPROPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct MQMSGPROPS { + pub cProp: u32, + pub aPropID: *mut u32, + pub aPropVar: *mut super::Com::StructuredStorage::PROPVARIANT, + pub aStatus: *mut ::windows_sys::core::HRESULT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for MQMSGPROPS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for MQMSGPROPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct MQPRIVATEPROPS { + pub cProp: u32, + pub aPropID: *mut u32, + pub aPropVar: *mut super::Com::StructuredStorage::PROPVARIANT, + pub aStatus: *mut ::windows_sys::core::HRESULT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for MQPRIVATEPROPS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for MQPRIVATEPROPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct MQPROPERTYRESTRICTION { + pub rel: u32, + pub prop: u32, + pub prval: super::Com::StructuredStorage::PROPVARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for MQPROPERTYRESTRICTION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for MQPROPERTYRESTRICTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct MQQMPROPS { + pub cProp: u32, + pub aPropID: *mut u32, + pub aPropVar: *mut super::Com::StructuredStorage::PROPVARIANT, + pub aStatus: *mut ::windows_sys::core::HRESULT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for MQQMPROPS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for MQQMPROPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct MQQUEUEPROPS { + pub cProp: u32, + pub aPropID: *mut u32, + pub aPropVar: *mut super::Com::StructuredStorage::PROPVARIANT, + pub aStatus: *mut ::windows_sys::core::HRESULT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for MQQUEUEPROPS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for MQQUEUEPROPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct MQRESTRICTION { + pub cRes: u32, + pub paPropRes: *mut MQPROPERTYRESTRICTION, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for MQRESTRICTION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for MQRESTRICTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MQSORTKEY { + pub propColumn: u32, + pub dwOrder: u32, +} +impl ::core::marker::Copy for MQSORTKEY {} +impl ::core::clone::Clone for MQSORTKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MQSORTSET { + pub cCol: u32, + pub aCol: *mut MQSORTKEY, +} +impl ::core::marker::Copy for MQSORTSET {} +impl ::core::clone::Clone for MQSORTSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEQUENCE_INFO { + pub SeqID: i64, + pub SeqNo: u32, + pub PrevNo: u32, +} +impl ::core::marker::Copy for SEQUENCE_INFO {} +impl ::core::clone::Clone for SEQUENCE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_IO\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_IO", feature = "Win32_System_Variant"))] +pub type PMQRECEIVECALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/MixedReality/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/MixedReality/mod.rs new file mode 100644 index 000000000..fbef2a4c7 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/MixedReality/mod.rs @@ -0,0 +1,24 @@ +pub const PERCEPTIONFIELD_StateStream_TimeStamps: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaa886119_f32f_49bf_92ca_f9ddf784d297); +#[repr(C)] +pub struct PERCEPTION_PAYLOAD_FIELD { + pub FieldId: ::windows_sys::core::GUID, + pub OffsetInBytes: u32, + pub SizeInBytes: u32, +} +impl ::core::marker::Copy for PERCEPTION_PAYLOAD_FIELD {} +impl ::core::clone::Clone for PERCEPTION_PAYLOAD_FIELD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERCEPTION_STATE_STREAM_TIMESTAMPS { + pub InputTimestampInQpcCounts: i64, + pub AvailableTimestampInQpcCounts: i64, +} +impl ::core::marker::Copy for PERCEPTION_STATE_STREAM_TIMESTAMPS {} +impl ::core::clone::Clone for PERCEPTION_STATE_STREAM_TIMESTAMPS { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Ole/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Ole/mod.rs new file mode 100644 index 000000000..fa25a5722 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Ole/mod.rs @@ -0,0 +1,3354 @@ +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn BstrFromVector(psa : *const super::Com:: SAFEARRAY, pbstr : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn ClearCustData(pcustdata : *mut super::Com:: CUSTDATA) -> ()); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn CreateDispTypeInfo(pidata : *mut INTERFACEDATA, lcid : u32, pptinfo : *mut super::Com:: ITypeInfo) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn CreateErrorInfo(pperrinfo : *mut ICreateErrorInfo) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn CreateOleAdviseHolder(ppoaholder : *mut IOleAdviseHolder) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn CreateStdDispatch(punkouter : ::windows_sys::core::IUnknown, pvthis : *mut ::core::ffi::c_void, ptinfo : super::Com:: ITypeInfo, ppunkstddisp : *mut ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn CreateTypeLib(syskind : super::Com:: SYSKIND, szfile : ::windows_sys::core::PCWSTR, ppctlib : *mut ICreateTypeLib) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn CreateTypeLib2(syskind : super::Com:: SYSKIND, szfile : ::windows_sys::core::PCWSTR, ppctlib : *mut ICreateTypeLib2) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn DispCallFunc(pvinstance : *const ::core::ffi::c_void, ovft : usize, cc : super::Com:: CALLCONV, vtreturn : super::Variant:: VARENUM, cactuals : u32, prgvt : *const u16, prgpvarg : *const *const super::Variant:: VARIANT, pvargresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn DispGetIDsOfNames(ptinfo : super::Com:: ITypeInfo, rgsznames : *const ::windows_sys::core::PCWSTR, cnames : u32, rgdispid : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn DispGetParam(pdispparams : *const super::Com:: DISPPARAMS, position : u32, vttarg : super::Variant:: VARENUM, pvarresult : *mut super::Variant:: VARIANT, puargerr : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn DispInvoke(_this : *mut ::core::ffi::c_void, ptinfo : super::Com:: ITypeInfo, dispidmember : i32, wflags : u16, pparams : *mut super::Com:: DISPPARAMS, pvarresult : *mut super::Variant:: VARIANT, pexcepinfo : *mut super::Com:: EXCEPINFO, puargerr : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn DoDragDrop(pdataobj : super::Com:: IDataObject, pdropsource : IDropSource, dwokeffects : DROPEFFECT, pdweffect : *mut DROPEFFECT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn GetActiveObject(rclsid : *const ::windows_sys::core::GUID, pvreserved : *mut ::core::ffi::c_void, ppunk : *mut ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn GetAltMonthNames(lcid : u32, prgp : *mut *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn GetRecordInfoFromGuids(rguidtypelib : *const ::windows_sys::core::GUID, uvermajor : u32, uverminor : u32, lcid : u32, rguidtypeinfo : *const ::windows_sys::core::GUID, pprecinfo : *mut IRecordInfo) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn GetRecordInfoFromTypeInfo(ptypeinfo : super::Com:: ITypeInfo, pprecinfo : *mut IRecordInfo) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HRGN_UserFree(param0 : *const u32, param1 : *const super::super::Graphics::Gdi:: HRGN) -> ()); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("api-ms-win-core-marshal-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HRGN_UserFree64(param0 : *const u32, param1 : *const super::super::Graphics::Gdi:: HRGN) -> ()); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HRGN_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::Graphics::Gdi:: HRGN) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("api-ms-win-core-marshal-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HRGN_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::Graphics::Gdi:: HRGN) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HRGN_UserSize(param0 : *const u32, param1 : u32, param2 : *const super::super::Graphics::Gdi:: HRGN) -> u32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("api-ms-win-core-marshal-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HRGN_UserSize64(param0 : *const u32, param1 : u32, param2 : *const super::super::Graphics::Gdi:: HRGN) -> u32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HRGN_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::Graphics::Gdi:: HRGN) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("api-ms-win-core-marshal-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HRGN_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::Graphics::Gdi:: HRGN) -> *mut u8); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn IsAccelerator(haccel : super::super::UI::WindowsAndMessaging:: HACCEL, caccelentries : i32, lpmsg : *const super::super::UI::WindowsAndMessaging:: MSG, lpwcmd : *mut u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn LHashValOfNameSys(syskind : super::Com:: SYSKIND, lcid : u32, szname : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn LHashValOfNameSysA(syskind : super::Com:: SYSKIND, lcid : u32, szname : ::windows_sys::core::PCSTR) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn LoadRegTypeLib(rguid : *const ::windows_sys::core::GUID, wvermajor : u16, wverminor : u16, lcid : u32, pptlib : *mut super::Com:: ITypeLib) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn LoadTypeLib(szfile : ::windows_sys::core::PCWSTR, pptlib : *mut super::Com:: ITypeLib) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn LoadTypeLibEx(szfile : ::windows_sys::core::PCWSTR, regkind : REGKIND, pptlib : *mut super::Com:: ITypeLib) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn OaBuildVersion() -> u32); +::windows_targets::link!("oleaut32.dll" "system" fn OaEnablePerUserTLibRegistration() -> ()); +::windows_targets::link!("ole32.dll" "system" fn OleBuildVersion() -> u32); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleCreate(rclsid : *const ::windows_sys::core::GUID, riid : *const ::windows_sys::core::GUID, renderopt : u32, pformatetc : *const super::Com:: FORMATETC, pclientsite : IOleClientSite, pstg : super::Com::StructuredStorage:: IStorage, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn OleCreateDefaultHandler(clsid : *const ::windows_sys::core::GUID, punkouter : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, lplpobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn OleCreateEmbeddingHelper(clsid : *const ::windows_sys::core::GUID, punkouter : ::windows_sys::core::IUnknown, flags : EMBDHLP_FLAGS, pcf : super::Com:: IClassFactory, riid : *const ::windows_sys::core::GUID, lplpobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleCreateEx(rclsid : *const ::windows_sys::core::GUID, riid : *const ::windows_sys::core::GUID, dwflags : OLECREATE, renderopt : u32, cformats : u32, rgadvf : *const u32, rgformatetc : *const super::Com:: FORMATETC, lpadvisesink : super::Com:: IAdviseSink, rgdwconnection : *mut u32, pclientsite : IOleClientSite, pstg : super::Com::StructuredStorage:: IStorage, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn OleCreateFontIndirect(lpfontdesc : *const FONTDESC, riid : *const ::windows_sys::core::GUID, lplpvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleCreateFromData(psrcdataobj : super::Com:: IDataObject, riid : *const ::windows_sys::core::GUID, renderopt : u32, pformatetc : *const super::Com:: FORMATETC, pclientsite : IOleClientSite, pstg : super::Com::StructuredStorage:: IStorage, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleCreateFromDataEx(psrcdataobj : super::Com:: IDataObject, riid : *const ::windows_sys::core::GUID, dwflags : OLECREATE, renderopt : u32, cformats : u32, rgadvf : *const u32, rgformatetc : *const super::Com:: FORMATETC, lpadvisesink : super::Com:: IAdviseSink, rgdwconnection : *mut u32, pclientsite : IOleClientSite, pstg : super::Com::StructuredStorage:: IStorage, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleCreateFromFile(rclsid : *const ::windows_sys::core::GUID, lpszfilename : ::windows_sys::core::PCWSTR, riid : *const ::windows_sys::core::GUID, renderopt : u32, lpformatetc : *const super::Com:: FORMATETC, pclientsite : IOleClientSite, pstg : super::Com::StructuredStorage:: IStorage, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleCreateFromFileEx(rclsid : *const ::windows_sys::core::GUID, lpszfilename : ::windows_sys::core::PCWSTR, riid : *const ::windows_sys::core::GUID, dwflags : OLECREATE, renderopt : u32, cformats : u32, rgadvf : *const u32, rgformatetc : *const super::Com:: FORMATETC, lpadvisesink : super::Com:: IAdviseSink, rgdwconnection : *mut u32, pclientsite : IOleClientSite, pstg : super::Com::StructuredStorage:: IStorage, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleCreateLink(pmklinksrc : super::Com:: IMoniker, riid : *const ::windows_sys::core::GUID, renderopt : u32, lpformatetc : *const super::Com:: FORMATETC, pclientsite : IOleClientSite, pstg : super::Com::StructuredStorage:: IStorage, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleCreateLinkEx(pmklinksrc : super::Com:: IMoniker, riid : *const ::windows_sys::core::GUID, dwflags : OLECREATE, renderopt : u32, cformats : u32, rgadvf : *const u32, rgformatetc : *const super::Com:: FORMATETC, lpadvisesink : super::Com:: IAdviseSink, rgdwconnection : *mut u32, pclientsite : IOleClientSite, pstg : super::Com::StructuredStorage:: IStorage, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleCreateLinkFromData(psrcdataobj : super::Com:: IDataObject, riid : *const ::windows_sys::core::GUID, renderopt : u32, pformatetc : *const super::Com:: FORMATETC, pclientsite : IOleClientSite, pstg : super::Com::StructuredStorage:: IStorage, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleCreateLinkFromDataEx(psrcdataobj : super::Com:: IDataObject, riid : *const ::windows_sys::core::GUID, dwflags : OLECREATE, renderopt : u32, cformats : u32, rgadvf : *const u32, rgformatetc : *const super::Com:: FORMATETC, lpadvisesink : super::Com:: IAdviseSink, rgdwconnection : *mut u32, pclientsite : IOleClientSite, pstg : super::Com::StructuredStorage:: IStorage, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleCreateLinkToFile(lpszfilename : ::windows_sys::core::PCWSTR, riid : *const ::windows_sys::core::GUID, renderopt : u32, lpformatetc : *const super::Com:: FORMATETC, pclientsite : IOleClientSite, pstg : super::Com::StructuredStorage:: IStorage, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleCreateLinkToFileEx(lpszfilename : ::windows_sys::core::PCWSTR, riid : *const ::windows_sys::core::GUID, dwflags : OLECREATE, renderopt : u32, cformats : u32, rgadvf : *const u32, rgformatetc : *const super::Com:: FORMATETC, lpadvisesink : super::Com:: IAdviseSink, rgdwconnection : *mut u32, pclientsite : IOleClientSite, pstg : super::Com::StructuredStorage:: IStorage, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn OleCreateMenuDescriptor(hmenucombined : super::super::UI::WindowsAndMessaging:: HMENU, lpmenuwidths : *const OLEMENUGROUPWIDTHS) -> isize); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn OleCreatePictureIndirect(lppictdesc : *const PICTDESC, riid : *const ::windows_sys::core::GUID, fown : super::super::Foundation:: BOOL, lplpvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleCreatePropertyFrame(hwndowner : super::super::Foundation:: HWND, x : u32, y : u32, lpszcaption : ::windows_sys::core::PCWSTR, cobjects : u32, ppunk : *const ::windows_sys::core::IUnknown, cpages : u32, ppageclsid : *const ::windows_sys::core::GUID, lcid : u32, dwreserved : u32, pvreserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleCreatePropertyFrameIndirect(lpparams : *const OCPFIPARAMS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleCreateStaticFromData(psrcdataobj : super::Com:: IDataObject, iid : *const ::windows_sys::core::GUID, renderopt : u32, pformatetc : *const super::Com:: FORMATETC, pclientsite : IOleClientSite, pstg : super::Com::StructuredStorage:: IStorage, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn OleDestroyMenuDescriptor(holemenu : isize) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleDoAutoConvert(pstg : super::Com::StructuredStorage:: IStorage, pclsidnew : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn OleDraw(punknown : ::windows_sys::core::IUnknown, dwaspect : u32, hdcdraw : super::super::Graphics::Gdi:: HDC, lprcbounds : *const super::super::Foundation:: RECT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`"] fn OleDuplicateData(hsrc : super::super::Foundation:: HANDLE, cfformat : CLIPBOARD_FORMAT, uiflags : super::Memory:: GLOBAL_ALLOC_FLAGS) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("ole32.dll" "system" fn OleFlushClipboard() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn OleGetAutoConvert(clsidold : *const ::windows_sys::core::GUID, pclsidnew : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn OleGetClipboard(ppdataobj : *mut super::Com:: IDataObject) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn OleGetClipboardWithEnterpriseInfo(dataobject : *mut super::Com:: IDataObject, dataenterpriseid : *mut ::windows_sys::core::PWSTR, sourcedescription : *mut ::windows_sys::core::PWSTR, targetdescription : *mut ::windows_sys::core::PWSTR, datadescription : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleGetIconOfClass(rclsid : *const ::windows_sys::core::GUID, lpszlabel : ::windows_sys::core::PCWSTR, fusetypeaslabel : super::super::Foundation:: BOOL) -> super::super::Foundation:: HGLOBAL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleGetIconOfFile(lpszpath : ::windows_sys::core::PCWSTR, fusefileaslabel : super::super::Foundation:: BOOL) -> super::super::Foundation:: HGLOBAL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn OleIconToCursor(hinstexe : super::super::Foundation:: HINSTANCE, hicon : super::super::UI::WindowsAndMessaging:: HICON) -> super::super::UI::WindowsAndMessaging:: HCURSOR); +::windows_targets::link!("ole32.dll" "system" fn OleInitialize(pvreserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn OleIsCurrentClipboard(pdataobj : super::Com:: IDataObject) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleIsRunning(pobject : IOleObject) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn OleLoad(pstg : super::Com::StructuredStorage:: IStorage, riid : *const ::windows_sys::core::GUID, pclientsite : IOleClientSite, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn OleLoadFromStream(pstm : super::Com:: IStream, iidinterface : *const ::windows_sys::core::GUID, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn OleLoadPicture(lpstream : super::Com:: IStream, lsize : i32, frunmode : super::super::Foundation:: BOOL, riid : *const ::windows_sys::core::GUID, lplpvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn OleLoadPictureEx(lpstream : super::Com:: IStream, lsize : i32, frunmode : super::super::Foundation:: BOOL, riid : *const ::windows_sys::core::GUID, xsizedesired : u32, ysizedesired : u32, dwflags : LOAD_PICTURE_FLAGS, lplpvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn OleLoadPictureFile(varfilename : super::Variant:: VARIANT, lplpdisppicture : *mut super::Com:: IDispatch) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn OleLoadPictureFileEx(varfilename : super::Variant:: VARIANT, xsizedesired : u32, ysizedesired : u32, dwflags : LOAD_PICTURE_FLAGS, lplpdisppicture : *mut super::Com:: IDispatch) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn OleLoadPicturePath(szurlorpath : ::windows_sys::core::PCWSTR, punkcaller : ::windows_sys::core::IUnknown, dwreserved : u32, clrreserved : u32, riid : *const ::windows_sys::core::GUID, ppvret : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleLockRunning(punknown : ::windows_sys::core::IUnknown, flock : super::super::Foundation:: BOOL, flastunlockcloses : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn OleMetafilePictFromIconAndLabel(hicon : super::super::UI::WindowsAndMessaging:: HICON, lpszlabel : ::windows_sys::core::PCWSTR, lpszsourcefile : ::windows_sys::core::PCWSTR, iiconindex : u32) -> super::super::Foundation:: HGLOBAL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleNoteObjectVisible(punknown : ::windows_sys::core::IUnknown, fvisible : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn OleQueryCreateFromData(psrcdataobject : super::Com:: IDataObject) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn OleQueryLinkFromData(psrcdataobject : super::Com:: IDataObject) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn OleRegEnumFormatEtc(clsid : *const ::windows_sys::core::GUID, dwdirection : u32, ppenum : *mut super::Com:: IEnumFORMATETC) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn OleRegEnumVerbs(clsid : *const ::windows_sys::core::GUID, ppenum : *mut IEnumOLEVERB) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn OleRegGetMiscStatus(clsid : *const ::windows_sys::core::GUID, dwaspect : u32, pdwstatus : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn OleRegGetUserType(clsid : *const ::windows_sys::core::GUID, dwformoftype : u32, pszusertype : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn OleRun(punknown : ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn OleSave(pps : super::Com::StructuredStorage:: IPersistStorage, pstg : super::Com::StructuredStorage:: IStorage, fsameasload : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn OleSavePictureFile(lpdisppicture : super::Com:: IDispatch, bstrfilename : ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn OleSaveToStream(ppstm : super::Com:: IPersistStream, pstm : super::Com:: IStream) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ole32.dll" "system" fn OleSetAutoConvert(clsidold : *const ::windows_sys::core::GUID, clsidnew : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn OleSetClipboard(pdataobj : super::Com:: IDataObject) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleSetContainedObject(punknown : ::windows_sys::core::IUnknown, fcontained : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleSetMenuDescriptor(holemenu : isize, hwndframe : super::super::Foundation:: HWND, hwndactiveobject : super::super::Foundation:: HWND, lpframe : IOleInPlaceFrame, lpactiveobj : IOleInPlaceActiveObject) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn OleTranslateAccelerator(lpframe : IOleInPlaceFrame, lpframeinfo : *const OLEINPLACEFRAMEINFO, lpmsg : *const super::super::UI::WindowsAndMessaging:: MSG) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn OleTranslateColor(clr : u32, hpal : super::super::Graphics::Gdi:: HPALETTE, lpcolorref : *mut super::super::Foundation:: COLORREF) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn OleUIAddVerbMenuA(lpoleobj : IOleObject, lpszshorttype : ::windows_sys::core::PCSTR, hmenu : super::super::UI::WindowsAndMessaging:: HMENU, upos : u32, uidverbmin : u32, uidverbmax : u32, baddconvert : super::super::Foundation:: BOOL, idconvert : u32, lphmenu : *mut super::super::UI::WindowsAndMessaging:: HMENU) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn OleUIAddVerbMenuW(lpoleobj : IOleObject, lpszshorttype : ::windows_sys::core::PCWSTR, hmenu : super::super::UI::WindowsAndMessaging:: HMENU, upos : u32, uidverbmin : u32, uidverbmax : u32, baddconvert : super::super::Foundation:: BOOL, idconvert : u32, lphmenu : *mut super::super::UI::WindowsAndMessaging:: HMENU) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media"))] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Media\"`"] fn OleUIBusyA(param0 : *const OLEUIBUSYA) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media"))] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Media\"`"] fn OleUIBusyW(param0 : *const OLEUIBUSYW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleUICanConvertOrActivateAs(rclsid : *const ::windows_sys::core::GUID, fislinkedobject : super::super::Foundation:: BOOL, wformat : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleUIChangeIconA(param0 : *const OLEUICHANGEICONA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleUIChangeIconW(param0 : *const OLEUICHANGEICONW) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls_Dialogs"))] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls_Dialogs\"`"] fn OleUIChangeSourceA(param0 : *const OLEUICHANGESOURCEA) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls_Dialogs"))] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls_Dialogs\"`"] fn OleUIChangeSourceW(param0 : *const OLEUICHANGESOURCEW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleUIConvertA(param0 : *const OLEUICONVERTA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleUIConvertW(param0 : *const OLEUICONVERTW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleUIEditLinksA(param0 : *const OLEUIEDITLINKSA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleUIEditLinksW(param0 : *const OLEUIEDITLINKSW) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn OleUIInsertObjectA(param0 : *const OLEUIINSERTOBJECTA) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn OleUIInsertObjectW(param0 : *const OLEUIINSERTOBJECTW) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn OleUIObjectPropertiesA(param0 : *const OLEUIOBJECTPROPSA) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn OleUIObjectPropertiesW(param0 : *const OLEUIOBJECTPROPSW) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn OleUIPasteSpecialA(param0 : *const OLEUIPASTESPECIALA) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn OleUIPasteSpecialW(param0 : *const OLEUIPASTESPECIALW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oledlg.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleUIPromptUserA(ntemplate : i32, hwndparent : super::super::Foundation:: HWND, ...) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oledlg.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleUIPromptUserW(ntemplate : i32, hwndparent : super::super::Foundation:: HWND, ...) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleUIUpdateLinksA(lpoleuilinkcntr : IOleUILinkContainerA, hwndparent : super::super::Foundation:: HWND, lpsztitle : ::windows_sys::core::PCSTR, clinks : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oledlg.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OleUIUpdateLinksW(lpoleuilinkcntr : IOleUILinkContainerW, hwndparent : super::super::Foundation:: HWND, lpsztitle : ::windows_sys::core::PCWSTR, clinks : i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("ole32.dll" "system" fn OleUninitialize() -> ()); +::windows_targets::link!("oleaut32.dll" "system" fn QueryPathOfRegTypeLib(guid : *const ::windows_sys::core::GUID, wmaj : u16, wmin : u16, lcid : u32, lpbstrpathname : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn RegisterActiveObject(punk : ::windows_sys::core::IUnknown, rclsid : *const ::windows_sys::core::GUID, dwflags : ACTIVEOBJECT_FLAGS, pdwregister : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterDragDrop(hwnd : super::super::Foundation:: HWND, pdroptarget : IDropTarget) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn RegisterTypeLib(ptlib : super::Com:: ITypeLib, szfullpath : ::windows_sys::core::PCWSTR, szhelpdir : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn RegisterTypeLibForUser(ptlib : super::Com:: ITypeLib, szfullpath : ::windows_sys::core::PCWSTR, szhelpdir : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn ReleaseStgMedium(param0 : *mut super::Com:: STGMEDIUM) -> ()); +::windows_targets::link!("oleaut32.dll" "system" fn RevokeActiveObject(dwregister : u32, pvreserved : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RevokeDragDrop(hwnd : super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayAccessData(psa : *const super::Com:: SAFEARRAY, ppvdata : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayAddRef(psa : *const super::Com:: SAFEARRAY, ppdatatorelease : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayAllocData(psa : *const super::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayAllocDescriptor(cdims : u32, ppsaout : *mut *mut super::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn SafeArrayAllocDescriptorEx(vt : super::Variant:: VARENUM, cdims : u32, ppsaout : *mut *mut super::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayCopy(psa : *const super::Com:: SAFEARRAY, ppsaout : *mut *mut super::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayCopyData(psasource : *const super::Com:: SAFEARRAY, psatarget : *const super::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn SafeArrayCreate(vt : super::Variant:: VARENUM, cdims : u32, rgsabound : *const super::Com:: SAFEARRAYBOUND) -> *mut super::Com:: SAFEARRAY); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn SafeArrayCreateEx(vt : super::Variant:: VARENUM, cdims : u32, rgsabound : *const super::Com:: SAFEARRAYBOUND, pvextra : *const ::core::ffi::c_void) -> *mut super::Com:: SAFEARRAY); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn SafeArrayCreateVector(vt : super::Variant:: VARENUM, llbound : i32, celements : u32) -> *mut super::Com:: SAFEARRAY); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn SafeArrayCreateVectorEx(vt : super::Variant:: VARENUM, llbound : i32, celements : u32, pvextra : *const ::core::ffi::c_void) -> *mut super::Com:: SAFEARRAY); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayDestroy(psa : *const super::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayDestroyData(psa : *const super::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayDestroyDescriptor(psa : *const super::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayGetDim(psa : *const super::Com:: SAFEARRAY) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayGetElement(psa : *const super::Com:: SAFEARRAY, rgindices : *const i32, pv : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayGetElemsize(psa : *const super::Com:: SAFEARRAY) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayGetIID(psa : *const super::Com:: SAFEARRAY, pguid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayGetLBound(psa : *const super::Com:: SAFEARRAY, ndim : u32, pllbound : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayGetRecordInfo(psa : *const super::Com:: SAFEARRAY, prinfo : *mut IRecordInfo) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayGetUBound(psa : *const super::Com:: SAFEARRAY, ndim : u32, plubound : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn SafeArrayGetVartype(psa : *const super::Com:: SAFEARRAY, pvt : *mut super::Variant:: VARENUM) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayLock(psa : *const super::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayPtrOfIndex(psa : *const super::Com:: SAFEARRAY, rgindices : *const i32, ppvdata : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayPutElement(psa : *const super::Com:: SAFEARRAY, rgindices : *const i32, pv : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayRedim(psa : *mut super::Com:: SAFEARRAY, psaboundnew : *const super::Com:: SAFEARRAYBOUND) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn SafeArrayReleaseData(pdata : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayReleaseDescriptor(psa : *const super::Com:: SAFEARRAY) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArraySetIID(psa : *const super::Com:: SAFEARRAY, guid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArraySetRecordInfo(psa : *const super::Com:: SAFEARRAY, prinfo : IRecordInfo) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayUnaccessData(psa : *const super::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SafeArrayUnlock(psa : *const super::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn UnRegisterTypeLib(libid : *const ::windows_sys::core::GUID, wvermajor : u16, wverminor : u16, lcid : u32, syskind : super::Com:: SYSKIND) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn UnRegisterTypeLibForUser(libid : *const ::windows_sys::core::GUID, wmajorvernum : u16, wminorvernum : u16, lcid : u32, syskind : super::Com:: SYSKIND) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarAbs(pvarin : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarAdd(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarAnd(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn VarBoolFromCy(cyin : super::Com:: CY, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBoolFromDate(datein : f64, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBoolFromDec(pdecin : *const super::super::Foundation:: DECIMAL, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn VarBoolFromDisp(pdispin : super::Com:: IDispatch, lcid : u32, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBoolFromI1(cin : u8, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBoolFromI2(sin : i16, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBoolFromI4(lin : i32, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBoolFromI8(i64in : i64, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBoolFromR4(fltin : f32, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBoolFromR8(dblin : f64, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBoolFromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBoolFromUI1(bin : u8, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBoolFromUI2(uiin : u16, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBoolFromUI4(ulin : u32, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBoolFromUI8(i64in : u64, pboolout : *mut super::super::Foundation:: VARIANT_BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarBstrCat(bstrleft : ::windows_sys::core::BSTR, bstrright : ::windows_sys::core::BSTR, pbstrresult : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarBstrCmp(bstrleft : ::windows_sys::core::BSTR, bstrright : ::windows_sys::core::BSTR, lcid : u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBstrFromBool(boolin : super::super::Foundation:: VARIANT_BOOL, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarBstrFromCy(cyin : super::Com:: CY, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarBstrFromDate(datein : f64, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarBstrFromDec(pdecin : *const super::super::Foundation:: DECIMAL, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarBstrFromDisp(pdispin : super::Com:: IDispatch, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarBstrFromI1(cin : u8, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarBstrFromI2(ival : i16, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarBstrFromI4(lin : i32, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarBstrFromI8(i64in : i64, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarBstrFromR4(fltin : f32, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarBstrFromR8(dblin : f64, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarBstrFromUI1(bval : u8, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarBstrFromUI2(uiin : u16, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarBstrFromUI4(ulin : u32, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarBstrFromUI8(ui64in : u64, lcid : u32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarCat(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarCmp(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, lcid : u32, dwflags : u32) -> VARCMP); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyAbs(cyin : super::Com:: CY, pcyresult : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyAdd(cyleft : super::Com:: CY, cyright : super::Com:: CY, pcyresult : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyCmp(cyleft : super::Com:: CY, cyright : super::Com:: CY) -> VARCMP); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyCmpR8(cyleft : super::Com:: CY, dblright : f64) -> VARCMP); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFix(cyin : super::Com:: CY, pcyresult : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn VarCyFromBool(boolin : super::super::Foundation:: VARIANT_BOOL, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFromDate(datein : f64, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn VarCyFromDec(pdecin : *const super::super::Foundation:: DECIMAL, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFromDisp(pdispin : super::Com:: IDispatch, lcid : u32, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFromI1(cin : u8, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFromI2(sin : i16, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFromI4(lin : i32, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFromI8(i64in : i64, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFromR4(fltin : f32, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFromR8(dblin : f64, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFromUI1(bin : u8, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFromUI2(uiin : u16, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFromUI4(ulin : u32, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyFromUI8(ui64in : u64, pcyout : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyInt(cyin : super::Com:: CY, pcyresult : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyMul(cyleft : super::Com:: CY, cyright : super::Com:: CY, pcyresult : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyMulI4(cyleft : super::Com:: CY, lright : i32, pcyresult : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyMulI8(cyleft : super::Com:: CY, lright : i64, pcyresult : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyNeg(cyin : super::Com:: CY, pcyresult : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCyRound(cyin : super::Com:: CY, cdecimals : i32, pcyresult : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarCySub(cyleft : super::Com:: CY, cyright : super::Com:: CY, pcyresult : *mut super::Com:: CY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDateFromBool(boolin : super::super::Foundation:: VARIANT_BOOL, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarDateFromCy(cyin : super::Com:: CY, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDateFromDec(pdecin : *const super::super::Foundation:: DECIMAL, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarDateFromDisp(pdispin : super::Com:: IDispatch, lcid : u32, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarDateFromI1(cin : u8, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarDateFromI2(sin : i16, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarDateFromI4(lin : i32, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarDateFromI8(i64in : i64, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarDateFromR4(fltin : f32, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarDateFromR8(dblin : f64, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarDateFromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarDateFromUI1(bin : u8, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarDateFromUI2(uiin : u16, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarDateFromUI4(ulin : u32, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarDateFromUI8(ui64in : u64, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDateFromUdate(pudatein : *const UDATE, dwflags : u32, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDateFromUdateEx(pudatein : *const UDATE, lcid : u32, dwflags : u32, pdateout : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecAbs(pdecin : *const super::super::Foundation:: DECIMAL, pdecresult : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecAdd(pdecleft : *const super::super::Foundation:: DECIMAL, pdecright : *const super::super::Foundation:: DECIMAL, pdecresult : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecCmp(pdecleft : *const super::super::Foundation:: DECIMAL, pdecright : *const super::super::Foundation:: DECIMAL) -> VARCMP); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecCmpR8(pdecleft : *const super::super::Foundation:: DECIMAL, dblright : f64) -> VARCMP); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecDiv(pdecleft : *const super::super::Foundation:: DECIMAL, pdecright : *const super::super::Foundation:: DECIMAL, pdecresult : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFix(pdecin : *const super::super::Foundation:: DECIMAL, pdecresult : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFromBool(boolin : super::super::Foundation:: VARIANT_BOOL, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn VarDecFromCy(cyin : super::Com:: CY, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFromDate(datein : f64, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn VarDecFromDisp(pdispin : super::Com:: IDispatch, lcid : u32, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFromI1(cin : u8, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFromI2(uiin : i16, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFromI4(lin : i32, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFromI8(i64in : i64, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFromR4(fltin : f32, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFromR8(dblin : f64, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFromUI1(bin : u8, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFromUI2(uiin : u16, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFromUI4(ulin : u32, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecFromUI8(ui64in : u64, pdecout : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecInt(pdecin : *const super::super::Foundation:: DECIMAL, pdecresult : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecMul(pdecleft : *const super::super::Foundation:: DECIMAL, pdecright : *const super::super::Foundation:: DECIMAL, pdecresult : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecNeg(pdecin : *const super::super::Foundation:: DECIMAL, pdecresult : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecRound(pdecin : *const super::super::Foundation:: DECIMAL, cdecimals : i32, pdecresult : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarDecSub(pdecleft : *const super::super::Foundation:: DECIMAL, pdecright : *const super::super::Foundation:: DECIMAL, pdecresult : *mut super::super::Foundation:: DECIMAL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarDiv(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarEqv(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarFix(pvarin : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarFormat(pvarin : *const super::Variant:: VARIANT, pstrformat : ::windows_sys::core::PCWSTR, ifirstday : VARFORMAT_FIRST_DAY, ifirstweek : VARFORMAT_FIRST_WEEK, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarFormatCurrency(pvarin : *const super::Variant:: VARIANT, inumdig : i32, iinclead : i32, iuseparens : i32, igroup : i32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarFormatDateTime(pvarin : *const super::Variant:: VARIANT, inamedformat : VARFORMAT_NAMED_FORMAT, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarFormatFromTokens(pvarin : *const super::Variant:: VARIANT, pstrformat : ::windows_sys::core::PCWSTR, pbtokcur : *const u8, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR, lcid : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarFormatNumber(pvarin : *const super::Variant:: VARIANT, inumdig : i32, iinclead : VARFORMAT_LEADING_DIGIT, iuseparens : VARFORMAT_PARENTHESES, igroup : VARFORMAT_GROUP, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarFormatPercent(pvarin : *const super::Variant:: VARIANT, inumdig : i32, iinclead : VARFORMAT_LEADING_DIGIT, iuseparens : VARFORMAT_PARENTHESES, igroup : VARFORMAT_GROUP, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarI1FromBool(boolin : super::super::Foundation:: VARIANT_BOOL, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarI1FromCy(cyin : super::Com:: CY, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI1FromDate(datein : f64, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarI1FromDec(pdecin : *const super::super::Foundation:: DECIMAL, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarI1FromDisp(pdispin : super::Com:: IDispatch, lcid : u32, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI1FromI2(uiin : i16, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI1FromI4(lin : i32, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI1FromI8(i64in : i64, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI1FromR4(fltin : f32, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI1FromR8(dblin : f64, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI1FromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI1FromUI1(bin : u8, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI1FromUI2(uiin : u16, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI1FromUI4(ulin : u32, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI1FromUI8(i64in : u64, pcout : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarI2FromBool(boolin : super::super::Foundation:: VARIANT_BOOL, psout : *mut i16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarI2FromCy(cyin : super::Com:: CY, psout : *mut i16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI2FromDate(datein : f64, psout : *mut i16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarI2FromDec(pdecin : *const super::super::Foundation:: DECIMAL, psout : *mut i16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarI2FromDisp(pdispin : super::Com:: IDispatch, lcid : u32, psout : *mut i16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI2FromI1(cin : u8, psout : *mut i16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI2FromI4(lin : i32, psout : *mut i16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI2FromI8(i64in : i64, psout : *mut i16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI2FromR4(fltin : f32, psout : *mut i16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI2FromR8(dblin : f64, psout : *mut i16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI2FromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, psout : *mut i16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI2FromUI1(bin : u8, psout : *mut i16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI2FromUI2(uiin : u16, psout : *mut i16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI2FromUI4(ulin : u32, psout : *mut i16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI2FromUI8(ui64in : u64, psout : *mut i16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarI4FromBool(boolin : super::super::Foundation:: VARIANT_BOOL, plout : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarI4FromCy(cyin : super::Com:: CY, plout : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI4FromDate(datein : f64, plout : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarI4FromDec(pdecin : *const super::super::Foundation:: DECIMAL, plout : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarI4FromDisp(pdispin : super::Com:: IDispatch, lcid : u32, plout : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI4FromI1(cin : u8, plout : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI4FromI2(sin : i16, plout : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI4FromI8(i64in : i64, plout : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI4FromR4(fltin : f32, plout : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI4FromR8(dblin : f64, plout : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI4FromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, plout : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI4FromUI1(bin : u8, plout : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI4FromUI2(uiin : u16, plout : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI4FromUI4(ulin : u32, plout : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI4FromUI8(ui64in : u64, plout : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarI8FromBool(boolin : super::super::Foundation:: VARIANT_BOOL, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarI8FromCy(cyin : super::Com:: CY, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI8FromDate(datein : f64, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarI8FromDec(pdecin : *const super::super::Foundation:: DECIMAL, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarI8FromDisp(pdispin : super::Com:: IDispatch, lcid : u32, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI8FromI1(cin : u8, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI8FromI2(sin : i16, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI8FromR4(fltin : f32, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI8FromR8(dblin : f64, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI8FromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI8FromUI1(bin : u8, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI8FromUI2(uiin : u16, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI8FromUI4(ulin : u32, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarI8FromUI8(ui64in : u64, pi64out : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarIdiv(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarImp(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarInt(pvarin : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarMod(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarMonthName(imonth : i32, fabbrev : i32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarMul(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarNeg(pvarin : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarNot(pvarin : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarNumFromParseNum(pnumprs : *const NUMPARSE, rgbdig : *const u8, dwvtbits : u32, pvar : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarOr(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarParseNumFromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, pnumprs : *mut NUMPARSE, rgbdig : *mut u8) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarPow(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR4CmpR8(fltleft : f32, dblright : f64) -> VARCMP); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarR4FromBool(boolin : super::super::Foundation:: VARIANT_BOOL, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarR4FromCy(cyin : super::Com:: CY, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR4FromDate(datein : f64, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarR4FromDec(pdecin : *const super::super::Foundation:: DECIMAL, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarR4FromDisp(pdispin : super::Com:: IDispatch, lcid : u32, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR4FromI1(cin : u8, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR4FromI2(sin : i16, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR4FromI4(lin : i32, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR4FromI8(i64in : i64, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR4FromR8(dblin : f64, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR4FromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR4FromUI1(bin : u8, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR4FromUI2(uiin : u16, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR4FromUI4(ulin : u32, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR4FromUI8(ui64in : u64, pfltout : *mut f32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarR8FromBool(boolin : super::super::Foundation:: VARIANT_BOOL, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarR8FromCy(cyin : super::Com:: CY, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR8FromDate(datein : f64, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarR8FromDec(pdecin : *const super::super::Foundation:: DECIMAL, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarR8FromDisp(pdispin : super::Com:: IDispatch, lcid : u32, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR8FromI1(cin : u8, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR8FromI2(sin : i16, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR8FromI4(lin : i32, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR8FromI8(i64in : i64, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR8FromR4(fltin : f32, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR8FromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR8FromUI1(bin : u8, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR8FromUI2(uiin : u16, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR8FromUI4(ulin : u32, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR8FromUI8(ui64in : u64, pdblout : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR8Pow(dblleft : f64, dblright : f64, pdblresult : *mut f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarR8Round(dblin : f64, cdecimals : i32, pdblresult : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarRound(pvarin : *const super::Variant:: VARIANT, cdecimals : i32, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarSub(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarTokenizeFormatString(pstrformat : ::windows_sys::core::PCWSTR, rgbtok : *mut u8, cbtok : i32, ifirstday : VARFORMAT_FIRST_DAY, ifirstweek : VARFORMAT_FIRST_WEEK, lcid : u32, pcbactual : *const i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarUI1FromBool(boolin : super::super::Foundation:: VARIANT_BOOL, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarUI1FromCy(cyin : super::Com:: CY, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI1FromDate(datein : f64, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarUI1FromDec(pdecin : *const super::super::Foundation:: DECIMAL, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarUI1FromDisp(pdispin : super::Com:: IDispatch, lcid : u32, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI1FromI1(cin : u8, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI1FromI2(sin : i16, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI1FromI4(lin : i32, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI1FromI8(i64in : i64, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI1FromR4(fltin : f32, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI1FromR8(dblin : f64, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI1FromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI1FromUI2(uiin : u16, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI1FromUI4(ulin : u32, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI1FromUI8(ui64in : u64, pbout : *mut u8) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarUI2FromBool(boolin : super::super::Foundation:: VARIANT_BOOL, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarUI2FromCy(cyin : super::Com:: CY, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI2FromDate(datein : f64, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarUI2FromDec(pdecin : *const super::super::Foundation:: DECIMAL, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarUI2FromDisp(pdispin : super::Com:: IDispatch, lcid : u32, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI2FromI1(cin : u8, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI2FromI2(uiin : i16, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI2FromI4(lin : i32, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI2FromI8(i64in : i64, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI2FromR4(fltin : f32, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI2FromR8(dblin : f64, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI2FromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI2FromUI1(bin : u8, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI2FromUI4(ulin : u32, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI2FromUI8(i64in : u64, puiout : *mut u16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarUI4FromBool(boolin : super::super::Foundation:: VARIANT_BOOL, pulout : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarUI4FromCy(cyin : super::Com:: CY, pulout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI4FromDate(datein : f64, pulout : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarUI4FromDec(pdecin : *const super::super::Foundation:: DECIMAL, pulout : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarUI4FromDisp(pdispin : super::Com:: IDispatch, lcid : u32, pulout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI4FromI1(cin : u8, pulout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI4FromI2(uiin : i16, pulout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI4FromI4(lin : i32, pulout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI4FromI8(i64in : i64, plout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI4FromR4(fltin : f32, pulout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI4FromR8(dblin : f64, pulout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI4FromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, pulout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI4FromUI1(bin : u8, pulout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI4FromUI2(uiin : u16, pulout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI4FromUI8(ui64in : u64, plout : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarUI8FromBool(boolin : super::super::Foundation:: VARIANT_BOOL, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarUI8FromCy(cyin : super::Com:: CY, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI8FromDate(datein : f64, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarUI8FromDec(pdecin : *const super::super::Foundation:: DECIMAL, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VarUI8FromDisp(pdispin : super::Com:: IDispatch, lcid : u32, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI8FromI1(cin : u8, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI8FromI2(sin : i16, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI8FromI8(ui64in : i64, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI8FromR4(fltin : f32, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI8FromR8(dblin : f64, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI8FromStr(strin : ::windows_sys::core::PCWSTR, lcid : u32, dwflags : u32, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI8FromUI1(bin : u8, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI8FromUI2(uiin : u16, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarUI8FromUI4(ulin : u32, pi64out : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VarUdateFromDate(datein : f64, dwflags : u32, pudateout : *mut UDATE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleaut32.dll" "system" fn VarWeekdayName(iweekday : i32, fabbrev : i32, ifirstday : i32, dwflags : u32, pbstrout : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] fn VarXor(pvarleft : *const super::Variant:: VARIANT, pvarright : *const super::Variant:: VARIANT, pvarresult : *mut super::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn VectorFromBstr(bstr : ::windows_sys::core::BSTR, ppsa : *mut *mut super::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +pub type IAdviseSinkEx = *mut ::core::ffi::c_void; +pub type ICanHandleException = *mut ::core::ffi::c_void; +pub type IClassFactory2 = *mut ::core::ffi::c_void; +pub type IContinue = *mut ::core::ffi::c_void; +pub type IContinueCallback = *mut ::core::ffi::c_void; +pub type ICreateErrorInfo = *mut ::core::ffi::c_void; +pub type ICreateTypeInfo = *mut ::core::ffi::c_void; +pub type ICreateTypeInfo2 = *mut ::core::ffi::c_void; +pub type ICreateTypeLib = *mut ::core::ffi::c_void; +pub type ICreateTypeLib2 = *mut ::core::ffi::c_void; +pub type IDispError = *mut ::core::ffi::c_void; +pub type IDispatchEx = *mut ::core::ffi::c_void; +pub type IDropSource = *mut ::core::ffi::c_void; +pub type IDropSourceNotify = *mut ::core::ffi::c_void; +pub type IDropTarget = *mut ::core::ffi::c_void; +pub type IEnterpriseDropTarget = *mut ::core::ffi::c_void; +pub type IEnumOLEVERB = *mut ::core::ffi::c_void; +pub type IEnumOleDocumentViews = *mut ::core::ffi::c_void; +pub type IEnumOleUndoUnits = *mut ::core::ffi::c_void; +pub type IEnumVARIANT = *mut ::core::ffi::c_void; +pub type IFont = *mut ::core::ffi::c_void; +pub type IFontDisp = *mut ::core::ffi::c_void; +pub type IFontEventsDisp = *mut ::core::ffi::c_void; +pub type IGetOleObject = *mut ::core::ffi::c_void; +pub type IGetVBAObject = *mut ::core::ffi::c_void; +pub type IObjectIdentity = *mut ::core::ffi::c_void; +pub type IObjectWithSite = *mut ::core::ffi::c_void; +pub type IOleAdviseHolder = *mut ::core::ffi::c_void; +pub type IOleCache = *mut ::core::ffi::c_void; +pub type IOleCache2 = *mut ::core::ffi::c_void; +pub type IOleCacheControl = *mut ::core::ffi::c_void; +pub type IOleClientSite = *mut ::core::ffi::c_void; +pub type IOleCommandTarget = *mut ::core::ffi::c_void; +pub type IOleContainer = *mut ::core::ffi::c_void; +pub type IOleControl = *mut ::core::ffi::c_void; +pub type IOleControlSite = *mut ::core::ffi::c_void; +pub type IOleDocument = *mut ::core::ffi::c_void; +pub type IOleDocumentSite = *mut ::core::ffi::c_void; +pub type IOleDocumentView = *mut ::core::ffi::c_void; +pub type IOleInPlaceActiveObject = *mut ::core::ffi::c_void; +pub type IOleInPlaceFrame = *mut ::core::ffi::c_void; +pub type IOleInPlaceObject = *mut ::core::ffi::c_void; +pub type IOleInPlaceObjectWindowless = *mut ::core::ffi::c_void; +pub type IOleInPlaceSite = *mut ::core::ffi::c_void; +pub type IOleInPlaceSiteEx = *mut ::core::ffi::c_void; +pub type IOleInPlaceSiteWindowless = *mut ::core::ffi::c_void; +pub type IOleInPlaceUIWindow = *mut ::core::ffi::c_void; +pub type IOleItemContainer = *mut ::core::ffi::c_void; +pub type IOleLink = *mut ::core::ffi::c_void; +pub type IOleObject = *mut ::core::ffi::c_void; +pub type IOleParentUndoUnit = *mut ::core::ffi::c_void; +pub type IOleUILinkContainerA = *mut ::core::ffi::c_void; +pub type IOleUILinkContainerW = *mut ::core::ffi::c_void; +pub type IOleUILinkInfoA = *mut ::core::ffi::c_void; +pub type IOleUILinkInfoW = *mut ::core::ffi::c_void; +pub type IOleUIObjInfoA = *mut ::core::ffi::c_void; +pub type IOleUIObjInfoW = *mut ::core::ffi::c_void; +pub type IOleUndoManager = *mut ::core::ffi::c_void; +pub type IOleUndoUnit = *mut ::core::ffi::c_void; +pub type IOleWindow = *mut ::core::ffi::c_void; +pub type IParseDisplayName = *mut ::core::ffi::c_void; +pub type IPerPropertyBrowsing = *mut ::core::ffi::c_void; +pub type IPersistPropertyBag = *mut ::core::ffi::c_void; +pub type IPersistPropertyBag2 = *mut ::core::ffi::c_void; +pub type IPicture = *mut ::core::ffi::c_void; +pub type IPicture2 = *mut ::core::ffi::c_void; +pub type IPictureDisp = *mut ::core::ffi::c_void; +pub type IPointerInactive = *mut ::core::ffi::c_void; +pub type IPrint = *mut ::core::ffi::c_void; +pub type IPropertyNotifySink = *mut ::core::ffi::c_void; +pub type IPropertyPage = *mut ::core::ffi::c_void; +pub type IPropertyPage2 = *mut ::core::ffi::c_void; +pub type IPropertyPageSite = *mut ::core::ffi::c_void; +pub type IProtectFocus = *mut ::core::ffi::c_void; +pub type IProtectedModeMenuServices = *mut ::core::ffi::c_void; +pub type IProvideClassInfo = *mut ::core::ffi::c_void; +pub type IProvideClassInfo2 = *mut ::core::ffi::c_void; +pub type IProvideMultipleClassInfo = *mut ::core::ffi::c_void; +pub type IProvideRuntimeContext = *mut ::core::ffi::c_void; +pub type IQuickActivate = *mut ::core::ffi::c_void; +pub type IRecordInfo = *mut ::core::ffi::c_void; +pub type ISimpleFrameSite = *mut ::core::ffi::c_void; +pub type ISpecifyPropertyPages = *mut ::core::ffi::c_void; +pub type ITypeChangeEvents = *mut ::core::ffi::c_void; +pub type ITypeFactory = *mut ::core::ffi::c_void; +pub type ITypeMarshal = *mut ::core::ffi::c_void; +pub type IVBFormat = *mut ::core::ffi::c_void; +pub type IVBGetControl = *mut ::core::ffi::c_void; +pub type IVariantChangeType = *mut ::core::ffi::c_void; +pub type IViewObject = *mut ::core::ffi::c_void; +pub type IViewObject2 = *mut ::core::ffi::c_void; +pub type IViewObjectEx = *mut ::core::ffi::c_void; +pub type IZoomEvents = *mut ::core::ffi::c_void; +pub const ACTIVATE_WINDOWLESS: ACTIVATEFLAGS = 1i32; +pub const ACTIVEOBJECT_STRONG: ACTIVEOBJECT_FLAGS = 0u32; +pub const ACTIVEOBJECT_WEAK: ACTIVEOBJECT_FLAGS = 1u32; +pub const BINDSPEED_IMMEDIATE: BINDSPEED = 3i32; +pub const BINDSPEED_INDEFINITE: BINDSPEED = 1i32; +pub const BINDSPEED_MODERATE: BINDSPEED = 2i32; +pub const BZ_DISABLECANCELBUTTON: BUSY_DIALOG_FLAGS = 1u32; +pub const BZ_DISABLERETRYBUTTON: BUSY_DIALOG_FLAGS = 4u32; +pub const BZ_DISABLESWITCHTOBUTTON: BUSY_DIALOG_FLAGS = 2u32; +pub const BZ_NOTRESPONDINGDIALOG: BUSY_DIALOG_FLAGS = 8u32; +pub const CF_BITMAP: CLIPBOARD_FORMAT = 2u16; +pub const CF_CONVERTONLY: UI_CONVERT_FLAGS = 256u32; +pub const CF_DIB: CLIPBOARD_FORMAT = 8u16; +pub const CF_DIBV5: CLIPBOARD_FORMAT = 17u16; +pub const CF_DIF: CLIPBOARD_FORMAT = 5u16; +pub const CF_DISABLEACTIVATEAS: UI_CONVERT_FLAGS = 64u32; +pub const CF_DISABLEDISPLAYASICON: UI_CONVERT_FLAGS = 32u32; +pub const CF_DSPBITMAP: CLIPBOARD_FORMAT = 130u16; +pub const CF_DSPENHMETAFILE: CLIPBOARD_FORMAT = 142u16; +pub const CF_DSPMETAFILEPICT: CLIPBOARD_FORMAT = 131u16; +pub const CF_DSPTEXT: CLIPBOARD_FORMAT = 129u16; +pub const CF_ENHMETAFILE: CLIPBOARD_FORMAT = 14u16; +pub const CF_GDIOBJFIRST: CLIPBOARD_FORMAT = 768u16; +pub const CF_GDIOBJLAST: CLIPBOARD_FORMAT = 1023u16; +pub const CF_HDROP: CLIPBOARD_FORMAT = 15u16; +pub const CF_HIDECHANGEICON: UI_CONVERT_FLAGS = 128u32; +pub const CF_LOCALE: CLIPBOARD_FORMAT = 16u16; +pub const CF_MAX: CLIPBOARD_FORMAT = 18u16; +pub const CF_METAFILEPICT: CLIPBOARD_FORMAT = 3u16; +pub const CF_OEMTEXT: CLIPBOARD_FORMAT = 7u16; +pub const CF_OWNERDISPLAY: CLIPBOARD_FORMAT = 128u16; +pub const CF_PALETTE: CLIPBOARD_FORMAT = 9u16; +pub const CF_PENDATA: CLIPBOARD_FORMAT = 10u16; +pub const CF_PRIVATEFIRST: CLIPBOARD_FORMAT = 512u16; +pub const CF_PRIVATELAST: CLIPBOARD_FORMAT = 767u16; +pub const CF_RIFF: CLIPBOARD_FORMAT = 11u16; +pub const CF_SELECTACTIVATEAS: UI_CONVERT_FLAGS = 16u32; +pub const CF_SELECTCONVERTTO: UI_CONVERT_FLAGS = 8u32; +pub const CF_SETACTIVATEDEFAULT: UI_CONVERT_FLAGS = 4u32; +pub const CF_SETCONVERTDEFAULT: UI_CONVERT_FLAGS = 2u32; +pub const CF_SHOWHELPBUTTON: UI_CONVERT_FLAGS = 1u32; +pub const CF_SYLK: CLIPBOARD_FORMAT = 4u16; +pub const CF_TEXT: CLIPBOARD_FORMAT = 1u16; +pub const CF_TIFF: CLIPBOARD_FORMAT = 6u16; +pub const CF_UNICODETEXT: CLIPBOARD_FORMAT = 13u16; +pub const CF_WAVE: CLIPBOARD_FORMAT = 12u16; +pub const CHANGEKIND_ADDMEMBER: CHANGEKIND = 0i32; +pub const CHANGEKIND_CHANGEFAILED: CHANGEKIND = 6i32; +pub const CHANGEKIND_DELETEMEMBER: CHANGEKIND = 1i32; +pub const CHANGEKIND_GENERAL: CHANGEKIND = 4i32; +pub const CHANGEKIND_INVALIDATE: CHANGEKIND = 5i32; +pub const CHANGEKIND_MAX: CHANGEKIND = 7i32; +pub const CHANGEKIND_SETDOCUMENTATION: CHANGEKIND = 3i32; +pub const CHANGEKIND_SETNAMES: CHANGEKIND = 2i32; +pub const CIF_SELECTCURRENT: CHANGE_ICON_FLAGS = 2u32; +pub const CIF_SELECTDEFAULT: CHANGE_ICON_FLAGS = 4u32; +pub const CIF_SELECTFROMFILE: CHANGE_ICON_FLAGS = 8u32; +pub const CIF_SHOWHELP: CHANGE_ICON_FLAGS = 1u32; +pub const CIF_USEICONEXE: CHANGE_ICON_FLAGS = 16u32; +pub const CLSID_CColorPropPage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0be35201_8f91_11ce_9de3_00aa004bb851); +pub const CLSID_CFontPropPage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0be35200_8f91_11ce_9de3_00aa004bb851); +pub const CLSID_CPicturePropPage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0be35202_8f91_11ce_9de3_00aa004bb851); +pub const CLSID_ConvertVBX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb8f0822_0164_101b_84ed_08002b2ec713); +pub const CLSID_PersistPropset: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb8f0821_0164_101b_84ed_08002b2ec713); +pub const CLSID_StdFont: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0be35203_8f91_11ce_9de3_00aa004bb851); +pub const CLSID_StdPicture: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0be35204_8f91_11ce_9de3_00aa004bb851); +pub const CONNECT_E_ADVISELIMIT: ::windows_sys::core::HRESULT = -2147220991i32; +pub const CONNECT_E_CANNOTCONNECT: ::windows_sys::core::HRESULT = -2147220990i32; +pub const CONNECT_E_FIRST: i32 = -2147220992i32; +pub const CONNECT_E_LAST: ::windows_sys::core::HRESULT = -2147220977i32; +pub const CONNECT_E_NOCONNECTION: ::windows_sys::core::HRESULT = -2147220992i32; +pub const CONNECT_E_OVERRIDDEN: ::windows_sys::core::HRESULT = -2147220989i32; +pub const CONNECT_S_FIRST: ::windows_sys::core::HRESULT = 262656i32; +pub const CONNECT_S_LAST: ::windows_sys::core::HRESULT = 262671i32; +pub const CSF_EXPLORER: CHANGE_SOURCE_FLAGS = 8u32; +pub const CSF_ONLYGETSOURCE: CHANGE_SOURCE_FLAGS = 4u32; +pub const CSF_SHOWHELP: CHANGE_SOURCE_FLAGS = 1u32; +pub const CSF_VALIDSOURCE: CHANGE_SOURCE_FLAGS = 2u32; +pub const CTL_E_ILLEGALFUNCTIONCALL: i32 = -2146828283i32; +pub const CTRLINFO_EATS_ESCAPE: CTRLINFO = 2i32; +pub const CTRLINFO_EATS_RETURN: CTRLINFO = 1i32; +pub const DD_DEFDRAGDELAY: u32 = 200u32; +pub const DD_DEFDRAGMINDIST: u32 = 2u32; +pub const DD_DEFSCROLLDELAY: u32 = 50u32; +pub const DD_DEFSCROLLINSET: u32 = 11u32; +pub const DD_DEFSCROLLINTERVAL: u32 = 50u32; +pub const DISCARDCACHE_NOSAVE: DISCARDCACHE = 1i32; +pub const DISCARDCACHE_SAVEIFDIRTY: DISCARDCACHE = 0i32; +pub const DISPATCH_CONSTRUCT: u32 = 16384u32; +pub const DISPID_ABOUTBOX: i32 = -552i32; +pub const DISPID_ACCELERATOR: i32 = -543i32; +pub const DISPID_ADDITEM: i32 = -553i32; +pub const DISPID_AMBIENT_APPEARANCE: i32 = -716i32; +pub const DISPID_AMBIENT_AUTOCLIP: i32 = -715i32; +pub const DISPID_AMBIENT_BACKCOLOR: i32 = -701i32; +pub const DISPID_AMBIENT_CHARSET: i32 = -727i32; +pub const DISPID_AMBIENT_CODEPAGE: i32 = -725i32; +pub const DISPID_AMBIENT_DISPLAYASDEFAULT: i32 = -713i32; +pub const DISPID_AMBIENT_DISPLAYNAME: i32 = -702i32; +pub const DISPID_AMBIENT_FONT: i32 = -703i32; +pub const DISPID_AMBIENT_FORECOLOR: i32 = -704i32; +pub const DISPID_AMBIENT_LOCALEID: i32 = -705i32; +pub const DISPID_AMBIENT_MESSAGEREFLECT: i32 = -706i32; +pub const DISPID_AMBIENT_PALETTE: i32 = -726i32; +pub const DISPID_AMBIENT_RIGHTTOLEFT: i32 = -732i32; +pub const DISPID_AMBIENT_SCALEUNITS: i32 = -707i32; +pub const DISPID_AMBIENT_SHOWGRABHANDLES: i32 = -711i32; +pub const DISPID_AMBIENT_SHOWHATCHING: i32 = -712i32; +pub const DISPID_AMBIENT_SUPPORTSMNEMONICS: i32 = -714i32; +pub const DISPID_AMBIENT_TEXTALIGN: i32 = -708i32; +pub const DISPID_AMBIENT_TOPTOBOTTOM: i32 = -733i32; +pub const DISPID_AMBIENT_TRANSFERPRIORITY: i32 = -728i32; +pub const DISPID_AMBIENT_UIDEAD: i32 = -710i32; +pub const DISPID_AMBIENT_USERMODE: i32 = -709i32; +pub const DISPID_APPEARANCE: i32 = -520i32; +pub const DISPID_AUTOSIZE: i32 = -500i32; +pub const DISPID_BACKCOLOR: i32 = -501i32; +pub const DISPID_BACKSTYLE: i32 = -502i32; +pub const DISPID_BORDERCOLOR: i32 = -503i32; +pub const DISPID_BORDERSTYLE: i32 = -504i32; +pub const DISPID_BORDERVISIBLE: i32 = -519i32; +pub const DISPID_BORDERWIDTH: i32 = -505i32; +pub const DISPID_CAPTION: i32 = -518i32; +pub const DISPID_CLEAR: i32 = -554i32; +pub const DISPID_CLICK: i32 = -600i32; +pub const DISPID_CLICK_VALUE: i32 = -610i32; +pub const DISPID_COLLECT: i32 = -8i32; +pub const DISPID_COLUMN: i32 = -529i32; +pub const DISPID_CONSTRUCTOR: i32 = -6i32; +pub const DISPID_DBLCLICK: i32 = -601i32; +pub const DISPID_DESTRUCTOR: i32 = -7i32; +pub const DISPID_DISPLAYSTYLE: i32 = -540i32; +pub const DISPID_DOCLICK: i32 = -551i32; +pub const DISPID_DRAWMODE: i32 = -507i32; +pub const DISPID_DRAWSTYLE: i32 = -508i32; +pub const DISPID_DRAWWIDTH: i32 = -509i32; +pub const DISPID_Delete: i32 = -801i32; +pub const DISPID_ENABLED: i32 = -514i32; +pub const DISPID_ENTERKEYBEHAVIOR: i32 = -544i32; +pub const DISPID_ERROREVENT: i32 = -608i32; +pub const DISPID_EVALUATE: i32 = -5i32; +pub const DISPID_FILLCOLOR: i32 = -510i32; +pub const DISPID_FILLSTYLE: i32 = -511i32; +pub const DISPID_FONT: i32 = -512i32; +pub const DISPID_FONT_BOLD: u32 = 3u32; +pub const DISPID_FONT_CHANGED: u32 = 9u32; +pub const DISPID_FONT_CHARSET: u32 = 8u32; +pub const DISPID_FONT_ITALIC: u32 = 4u32; +pub const DISPID_FONT_NAME: u32 = 0u32; +pub const DISPID_FONT_SIZE: u32 = 2u32; +pub const DISPID_FONT_STRIKE: u32 = 6u32; +pub const DISPID_FONT_UNDER: u32 = 5u32; +pub const DISPID_FONT_WEIGHT: u32 = 7u32; +pub const DISPID_FORECOLOR: i32 = -513i32; +pub const DISPID_GROUPNAME: i32 = -541i32; +pub const DISPID_HWND: i32 = -515i32; +pub const DISPID_IMEMODE: i32 = -542i32; +pub const DISPID_KEYDOWN: i32 = -602i32; +pub const DISPID_KEYPRESS: i32 = -603i32; +pub const DISPID_KEYUP: i32 = -604i32; +pub const DISPID_LIST: i32 = -528i32; +pub const DISPID_LISTCOUNT: i32 = -531i32; +pub const DISPID_LISTINDEX: i32 = -526i32; +pub const DISPID_MAXLENGTH: i32 = -533i32; +pub const DISPID_MOUSEDOWN: i32 = -605i32; +pub const DISPID_MOUSEICON: i32 = -522i32; +pub const DISPID_MOUSEMOVE: i32 = -606i32; +pub const DISPID_MOUSEPOINTER: i32 = -521i32; +pub const DISPID_MOUSEUP: i32 = -607i32; +pub const DISPID_MULTILINE: i32 = -537i32; +pub const DISPID_MULTISELECT: i32 = -532i32; +pub const DISPID_NEWENUM: i32 = -4i32; +pub const DISPID_NUMBEROFCOLUMNS: i32 = -539i32; +pub const DISPID_NUMBEROFROWS: i32 = -538i32; +pub const DISPID_Name: i32 = -800i32; +pub const DISPID_Object: i32 = -802i32; +pub const DISPID_PASSWORDCHAR: i32 = -534i32; +pub const DISPID_PICTURE: i32 = -523i32; +pub const DISPID_PICT_HANDLE: u32 = 0u32; +pub const DISPID_PICT_HEIGHT: u32 = 5u32; +pub const DISPID_PICT_HPAL: u32 = 2u32; +pub const DISPID_PICT_RENDER: u32 = 6u32; +pub const DISPID_PICT_TYPE: u32 = 3u32; +pub const DISPID_PICT_WIDTH: u32 = 4u32; +pub const DISPID_PROPERTYPUT: i32 = -3i32; +pub const DISPID_Parent: i32 = -803i32; +pub const DISPID_READYSTATE: i32 = -525i32; +pub const DISPID_READYSTATECHANGE: i32 = -609i32; +pub const DISPID_REFRESH: i32 = -550i32; +pub const DISPID_REMOVEITEM: i32 = -555i32; +pub const DISPID_RIGHTTOLEFT: i32 = -611i32; +pub const DISPID_SCROLLBARS: i32 = -535i32; +pub const DISPID_SELECTED: i32 = -527i32; +pub const DISPID_SELLENGTH: i32 = -548i32; +pub const DISPID_SELSTART: i32 = -547i32; +pub const DISPID_SELTEXT: i32 = -546i32; +pub const DISPID_STARTENUM: i32 = -1i32; +pub const DISPID_TABKEYBEHAVIOR: i32 = -545i32; +pub const DISPID_TABSTOP: i32 = -516i32; +pub const DISPID_TEXT: i32 = -517i32; +pub const DISPID_THIS: i32 = -613i32; +pub const DISPID_TOPTOBOTTOM: i32 = -612i32; +pub const DISPID_UNKNOWN: i32 = -1i32; +pub const DISPID_VALID: i32 = -524i32; +pub const DISPID_VALUE: u32 = 0u32; +pub const DISPID_WORDWRAP: i32 = -536i32; +pub const DOCMISC_CANCREATEMULTIPLEVIEWS: DOCMISC = 1i32; +pub const DOCMISC_CANTOPENEDIT: DOCMISC = 4i32; +pub const DOCMISC_NOFILESUPPORT: DOCMISC = 8i32; +pub const DOCMISC_SUPPORTCOMPLEXRECTANGLES: DOCMISC = 2i32; +pub const DROPEFFECT_COPY: DROPEFFECT = 1u32; +pub const DROPEFFECT_LINK: DROPEFFECT = 4u32; +pub const DROPEFFECT_MOVE: DROPEFFECT = 2u32; +pub const DROPEFFECT_NONE: DROPEFFECT = 0u32; +pub const DROPEFFECT_SCROLL: DROPEFFECT = 2147483648u32; +pub const DVASPECTINFOFLAG_CANOPTIMIZE: DVASPECTINFOFLAG = 1i32; +pub const DVEXTENT_CONTENT: DVEXTENTMODE = 0i32; +pub const DVEXTENT_INTEGRAL: DVEXTENTMODE = 1i32; +pub const ELF_DISABLECANCELLINK: EDIT_LINKS_FLAGS = 16u32; +pub const ELF_DISABLECHANGESOURCE: EDIT_LINKS_FLAGS = 8u32; +pub const ELF_DISABLEOPENSOURCE: EDIT_LINKS_FLAGS = 4u32; +pub const ELF_DISABLEUPDATENOW: EDIT_LINKS_FLAGS = 2u32; +pub const ELF_SHOWHELP: EDIT_LINKS_FLAGS = 1u32; +pub const EMBDHLP_CREATENOW: EMBDHLP_FLAGS = 0u32; +pub const EMBDHLP_DELAYCREATE: EMBDHLP_FLAGS = 65536u32; +pub const EMBDHLP_INPROC_HANDLER: EMBDHLP_FLAGS = 0u32; +pub const EMBDHLP_INPROC_SERVER: EMBDHLP_FLAGS = 1u32; +pub const GCW_WCH_SIBLING: ENUM_CONTROLS_WHICH_FLAGS = 1u32; +pub const GC_WCH_ALL: ENUM_CONTROLS_WHICH_FLAGS = 4u32; +pub const GC_WCH_CONTAINED: ENUM_CONTROLS_WHICH_FLAGS = 3u32; +pub const GC_WCH_CONTAINER: ENUM_CONTROLS_WHICH_FLAGS = 2u32; +pub const GC_WCH_FONLYAFTER: ENUM_CONTROLS_WHICH_FLAGS = 268435456u32; +pub const GC_WCH_FONLYBEFORE: ENUM_CONTROLS_WHICH_FLAGS = 536870912u32; +pub const GC_WCH_FREVERSEDIR: ENUM_CONTROLS_WHICH_FLAGS = 134217728u32; +pub const GC_WCH_FSELECTED: ENUM_CONTROLS_WHICH_FLAGS = 1073741824u32; +pub const GC_WCH_SIBLING: i32 = 1i32; +pub const GUIDKIND_DEFAULT_SOURCE_DISP_IID: GUIDKIND = 1i32; +pub const GUID_CHECKVALUEEXCLUSIVE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6650430c_be0f_101a_8bbb_00aa00300cab); +pub const GUID_COLOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504301_be0f_101a_8bbb_00aa00300cab); +pub const GUID_FONTBOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6650430f_be0f_101a_8bbb_00aa00300cab); +pub const GUID_FONTITALIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504310_be0f_101a_8bbb_00aa00300cab); +pub const GUID_FONTNAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6650430d_be0f_101a_8bbb_00aa00300cab); +pub const GUID_FONTSIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6650430e_be0f_101a_8bbb_00aa00300cab); +pub const GUID_FONTSTRIKETHROUGH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504312_be0f_101a_8bbb_00aa00300cab); +pub const GUID_FONTUNDERSCORE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504311_be0f_101a_8bbb_00aa00300cab); +pub const GUID_HANDLE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504313_be0f_101a_8bbb_00aa00300cab); +pub const GUID_HIMETRIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504300_be0f_101a_8bbb_00aa00300cab); +pub const GUID_OPTIONVALUEEXCLUSIVE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6650430b_be0f_101a_8bbb_00aa00300cab); +pub const GUID_TRISTATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6650430a_be0f_101a_8bbb_00aa00300cab); +pub const GUID_XPOS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504306_be0f_101a_8bbb_00aa00300cab); +pub const GUID_XPOSPIXEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504302_be0f_101a_8bbb_00aa00300cab); +pub const GUID_XSIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504308_be0f_101a_8bbb_00aa00300cab); +pub const GUID_XSIZEPIXEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504304_be0f_101a_8bbb_00aa00300cab); +pub const GUID_YPOS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504307_be0f_101a_8bbb_00aa00300cab); +pub const GUID_YPOSPIXEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504303_be0f_101a_8bbb_00aa00300cab); +pub const GUID_YSIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504309_be0f_101a_8bbb_00aa00300cab); +pub const GUID_YSIZEPIXEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66504305_be0f_101a_8bbb_00aa00300cab); +pub const HITRESULT_CLOSE: HITRESULT = 2i32; +pub const HITRESULT_HIT: HITRESULT = 3i32; +pub const HITRESULT_OUTSIDE: HITRESULT = 0i32; +pub const HITRESULT_TRANSPARENT: HITRESULT = 1i32; +pub const IDC_BZ_ICON: u32 = 601u32; +pub const IDC_BZ_MESSAGE1: u32 = 602u32; +pub const IDC_BZ_RETRY: u32 = 600u32; +pub const IDC_BZ_SWITCHTO: u32 = 604u32; +pub const IDC_CI_BROWSE: u32 = 130u32; +pub const IDC_CI_CURRENT: u32 = 121u32; +pub const IDC_CI_CURRENTICON: u32 = 122u32; +pub const IDC_CI_DEFAULT: u32 = 123u32; +pub const IDC_CI_DEFAULTICON: u32 = 124u32; +pub const IDC_CI_FROMFILE: u32 = 125u32; +pub const IDC_CI_FROMFILEEDIT: u32 = 126u32; +pub const IDC_CI_GROUP: u32 = 120u32; +pub const IDC_CI_ICONDISPLAY: u32 = 131u32; +pub const IDC_CI_ICONLIST: u32 = 127u32; +pub const IDC_CI_LABEL: u32 = 128u32; +pub const IDC_CI_LABELEDIT: u32 = 129u32; +pub const IDC_CV_ACTIVATEAS: u32 = 156u32; +pub const IDC_CV_ACTIVATELIST: u32 = 154u32; +pub const IDC_CV_CHANGEICON: u32 = 153u32; +pub const IDC_CV_CONVERTLIST: u32 = 158u32; +pub const IDC_CV_CONVERTTO: u32 = 155u32; +pub const IDC_CV_DISPLAYASICON: u32 = 152u32; +pub const IDC_CV_ICONDISPLAY: u32 = 165u32; +pub const IDC_CV_OBJECTTYPE: u32 = 150u32; +pub const IDC_CV_RESULTTEXT: u32 = 157u32; +pub const IDC_EL_AUTOMATIC: u32 = 202u32; +pub const IDC_EL_CANCELLINK: u32 = 209u32; +pub const IDC_EL_CHANGESOURCE: u32 = 201u32; +pub const IDC_EL_COL1: u32 = 220u32; +pub const IDC_EL_COL2: u32 = 221u32; +pub const IDC_EL_COL3: u32 = 222u32; +pub const IDC_EL_LINKSLISTBOX: u32 = 206u32; +pub const IDC_EL_LINKSOURCE: u32 = 216u32; +pub const IDC_EL_LINKTYPE: u32 = 217u32; +pub const IDC_EL_MANUAL: u32 = 212u32; +pub const IDC_EL_OPENSOURCE: u32 = 211u32; +pub const IDC_EL_UPDATENOW: u32 = 210u32; +pub const IDC_GP_CONVERT: u32 = 1013u32; +pub const IDC_GP_OBJECTICON: u32 = 1014u32; +pub const IDC_GP_OBJECTLOCATION: u32 = 1022u32; +pub const IDC_GP_OBJECTNAME: u32 = 1009u32; +pub const IDC_GP_OBJECTSIZE: u32 = 1011u32; +pub const IDC_GP_OBJECTTYPE: u32 = 1010u32; +pub const IDC_IO_ADDCONTROL: u32 = 2115u32; +pub const IDC_IO_CHANGEICON: u32 = 2105u32; +pub const IDC_IO_CONTROLTYPELIST: u32 = 2116u32; +pub const IDC_IO_CREATEFROMFILE: u32 = 2101u32; +pub const IDC_IO_CREATENEW: u32 = 2100u32; +pub const IDC_IO_DISPLAYASICON: u32 = 2104u32; +pub const IDC_IO_FILE: u32 = 2106u32; +pub const IDC_IO_FILEDISPLAY: u32 = 2107u32; +pub const IDC_IO_FILETEXT: u32 = 2112u32; +pub const IDC_IO_FILETYPE: u32 = 2113u32; +pub const IDC_IO_ICONDISPLAY: u32 = 2110u32; +pub const IDC_IO_INSERTCONTROL: u32 = 2114u32; +pub const IDC_IO_LINKFILE: u32 = 2102u32; +pub const IDC_IO_OBJECTTYPELIST: u32 = 2103u32; +pub const IDC_IO_OBJECTTYPETEXT: u32 = 2111u32; +pub const IDC_IO_RESULTIMAGE: u32 = 2108u32; +pub const IDC_IO_RESULTTEXT: u32 = 2109u32; +pub const IDC_LP_AUTOMATIC: u32 = 1016u32; +pub const IDC_LP_BREAKLINK: u32 = 1008u32; +pub const IDC_LP_CHANGESOURCE: u32 = 1015u32; +pub const IDC_LP_DATE: u32 = 1018u32; +pub const IDC_LP_LINKSOURCE: u32 = 1012u32; +pub const IDC_LP_MANUAL: u32 = 1017u32; +pub const IDC_LP_OPENSOURCE: u32 = 1006u32; +pub const IDC_LP_TIME: u32 = 1019u32; +pub const IDC_LP_UPDATENOW: u32 = 1007u32; +pub const IDC_OLEUIHELP: u32 = 99u32; +pub const IDC_PS_CHANGEICON: u32 = 508u32; +pub const IDC_PS_DISPLAYASICON: u32 = 506u32; +pub const IDC_PS_DISPLAYLIST: u32 = 505u32; +pub const IDC_PS_ICONDISPLAY: u32 = 507u32; +pub const IDC_PS_PASTE: u32 = 500u32; +pub const IDC_PS_PASTELINK: u32 = 501u32; +pub const IDC_PS_PASTELINKLIST: u32 = 504u32; +pub const IDC_PS_PASTELIST: u32 = 503u32; +pub const IDC_PS_RESULTIMAGE: u32 = 509u32; +pub const IDC_PS_RESULTTEXT: u32 = 510u32; +pub const IDC_PS_SOURCETEXT: u32 = 502u32; +pub const IDC_PU_CONVERT: u32 = 902u32; +pub const IDC_PU_ICON: u32 = 908u32; +pub const IDC_PU_LINKS: u32 = 900u32; +pub const IDC_PU_TEXT: u32 = 901u32; +pub const IDC_UL_METER: u32 = 1029u32; +pub const IDC_UL_PERCENT: u32 = 1031u32; +pub const IDC_UL_PROGRESS: u32 = 1032u32; +pub const IDC_UL_STOP: u32 = 1030u32; +pub const IDC_VP_ASICON: u32 = 1003u32; +pub const IDC_VP_CHANGEICON: u32 = 1001u32; +pub const IDC_VP_EDITABLE: u32 = 1002u32; +pub const IDC_VP_ICONDISPLAY: u32 = 1021u32; +pub const IDC_VP_PERCENT: u32 = 1000u32; +pub const IDC_VP_RELATIVE: u32 = 1005u32; +pub const IDC_VP_RESULTIMAGE: u32 = 1033u32; +pub const IDC_VP_SCALETXT: u32 = 1034u32; +pub const IDC_VP_SPIN: u32 = 1006u32; +pub const IDD_BUSY: u32 = 1006u32; +pub const IDD_CANNOTUPDATELINK: u32 = 1008u32; +pub const IDD_CHANGEICON: u32 = 1001u32; +pub const IDD_CHANGEICONBROWSE: u32 = 1011u32; +pub const IDD_CHANGESOURCE: u32 = 1009u32; +pub const IDD_CHANGESOURCE4: u32 = 1013u32; +pub const IDD_CONVERT: u32 = 1002u32; +pub const IDD_CONVERT4: u32 = 1103u32; +pub const IDD_CONVERTONLY: u32 = 1012u32; +pub const IDD_CONVERTONLY4: u32 = 1104u32; +pub const IDD_EDITLINKS: u32 = 1004u32; +pub const IDD_EDITLINKS4: u32 = 1105u32; +pub const IDD_GNRLPROPS: u32 = 1100u32; +pub const IDD_GNRLPROPS4: u32 = 1106u32; +pub const IDD_INSERTFILEBROWSE: u32 = 1010u32; +pub const IDD_INSERTOBJECT: u32 = 1000u32; +pub const IDD_LINKPROPS: u32 = 1102u32; +pub const IDD_LINKPROPS4: u32 = 1107u32; +pub const IDD_LINKSOURCEUNAVAILABLE: u32 = 1020u32; +pub const IDD_LINKTYPECHANGED: u32 = 1022u32; +pub const IDD_LINKTYPECHANGEDA: u32 = 1026u32; +pub const IDD_LINKTYPECHANGEDW: u32 = 1022u32; +pub const IDD_OUTOFMEMORY: u32 = 1024u32; +pub const IDD_PASTESPECIAL: u32 = 1003u32; +pub const IDD_PASTESPECIAL4: u32 = 1108u32; +pub const IDD_SERVERNOTFOUND: u32 = 1023u32; +pub const IDD_SERVERNOTREG: u32 = 1021u32; +pub const IDD_SERVERNOTREGA: u32 = 1025u32; +pub const IDD_SERVERNOTREGW: u32 = 1021u32; +pub const IDD_UPDATELINKS: u32 = 1007u32; +pub const IDD_VIEWPROPS: u32 = 1101u32; +pub const ID_BROWSE_ADDCONTROL: u32 = 3u32; +pub const ID_BROWSE_CHANGEICON: u32 = 1u32; +pub const ID_BROWSE_CHANGESOURCE: u32 = 4u32; +pub const ID_BROWSE_INSERTFILE: u32 = 2u32; +pub const ID_DEFAULTINST: i32 = -2i32; +pub const IGNOREMIME_PROMPT: IGNOREMIME = 1i32; +pub const IGNOREMIME_TEXT: IGNOREMIME = 2i32; +pub const INSTALL_SCOPE_INVALID: u32 = 0u32; +pub const INSTALL_SCOPE_MACHINE: u32 = 1u32; +pub const INSTALL_SCOPE_USER: u32 = 2u32; +pub const IOF_CHECKDISPLAYASICON: INSERT_OBJECT_FLAGS = 16u32; +pub const IOF_CHECKLINK: INSERT_OBJECT_FLAGS = 8u32; +pub const IOF_CREATEFILEOBJECT: INSERT_OBJECT_FLAGS = 64u32; +pub const IOF_CREATELINKOBJECT: INSERT_OBJECT_FLAGS = 128u32; +pub const IOF_CREATENEWOBJECT: INSERT_OBJECT_FLAGS = 32u32; +pub const IOF_DISABLEDISPLAYASICON: INSERT_OBJECT_FLAGS = 1024u32; +pub const IOF_DISABLELINK: INSERT_OBJECT_FLAGS = 256u32; +pub const IOF_HIDECHANGEICON: INSERT_OBJECT_FLAGS = 2048u32; +pub const IOF_SELECTCREATECONTROL: INSERT_OBJECT_FLAGS = 8192u32; +pub const IOF_SELECTCREATEFROMFILE: INSERT_OBJECT_FLAGS = 4u32; +pub const IOF_SELECTCREATENEW: INSERT_OBJECT_FLAGS = 2u32; +pub const IOF_SHOWHELP: INSERT_OBJECT_FLAGS = 1u32; +pub const IOF_SHOWINSERTCONTROL: INSERT_OBJECT_FLAGS = 4096u32; +pub const IOF_VERIFYSERVERSEXIST: INSERT_OBJECT_FLAGS = 512u32; +pub const KEYMOD_ALT: KEYMODIFIERS = 4u32; +pub const KEYMOD_CONTROL: KEYMODIFIERS = 2u32; +pub const KEYMOD_SHIFT: KEYMODIFIERS = 1u32; +pub const LIBFLAG_FCONTROL: LIBFLAGS = 2i32; +pub const LIBFLAG_FHASDISKIMAGE: LIBFLAGS = 8i32; +pub const LIBFLAG_FHIDDEN: LIBFLAGS = 4i32; +pub const LIBFLAG_FRESTRICTED: LIBFLAGS = 1i32; +pub const LOAD_TLB_AS_32BIT: u32 = 32u32; +pub const LOAD_TLB_AS_64BIT: u32 = 64u32; +pub const LOCALE_USE_NLS: u32 = 268435456u32; +pub const LP_COLOR: LOAD_PICTURE_FLAGS = 4u32; +pub const LP_DEFAULT: LOAD_PICTURE_FLAGS = 0u32; +pub const LP_MONOCHROME: LOAD_PICTURE_FLAGS = 1u32; +pub const LP_VGACOLOR: LOAD_PICTURE_FLAGS = 2u32; +pub const MEDIAPLAYBACK_PAUSE: MEDIAPLAYBACK_STATE = 1i32; +pub const MEDIAPLAYBACK_PAUSE_AND_SUSPEND: MEDIAPLAYBACK_STATE = 2i32; +pub const MEDIAPLAYBACK_RESUME: MEDIAPLAYBACK_STATE = 0i32; +pub const MEDIAPLAYBACK_RESUME_FROM_SUSPEND: MEDIAPLAYBACK_STATE = 3i32; +pub const MEMBERID_NIL: i32 = -1i32; +pub const MK_ALT: u32 = 32u32; +pub const MSOCMDERR_E_CANCELED: i32 = -2147221245i32; +pub const MSOCMDERR_E_DISABLED: i32 = -2147221247i32; +pub const MSOCMDERR_E_FIRST: i32 = -2147221248i32; +pub const MSOCMDERR_E_NOHELP: i32 = -2147221246i32; +pub const MSOCMDERR_E_NOTSUPPORTED: i32 = -2147221248i32; +pub const MSOCMDERR_E_UNKNOWNGROUP: i32 = -2147221244i32; +pub const MULTICLASSINFO_GETIIDPRIMARY: MULTICLASSINFO_FLAGS = 4u32; +pub const MULTICLASSINFO_GETIIDSOURCE: MULTICLASSINFO_FLAGS = 8u32; +pub const MULTICLASSINFO_GETNUMRESERVEDDISPIDS: MULTICLASSINFO_FLAGS = 2u32; +pub const MULTICLASSINFO_GETTYPEINFO: MULTICLASSINFO_FLAGS = 1u32; +pub const NUMPRS_CURRENCY: NUMPARSE_FLAGS = 1024u32; +pub const NUMPRS_DECIMAL: NUMPARSE_FLAGS = 256u32; +pub const NUMPRS_EXPONENT: NUMPARSE_FLAGS = 2048u32; +pub const NUMPRS_HEX_OCT: NUMPARSE_FLAGS = 64u32; +pub const NUMPRS_INEXACT: NUMPARSE_FLAGS = 131072u32; +pub const NUMPRS_LEADING_MINUS: NUMPARSE_FLAGS = 16u32; +pub const NUMPRS_LEADING_PLUS: NUMPARSE_FLAGS = 4u32; +pub const NUMPRS_LEADING_WHITE: NUMPARSE_FLAGS = 1u32; +pub const NUMPRS_NEG: NUMPARSE_FLAGS = 65536u32; +pub const NUMPRS_PARENS: NUMPARSE_FLAGS = 128u32; +pub const NUMPRS_STD: NUMPARSE_FLAGS = 8191u32; +pub const NUMPRS_THOUSANDS: NUMPARSE_FLAGS = 512u32; +pub const NUMPRS_TRAILING_MINUS: NUMPARSE_FLAGS = 32u32; +pub const NUMPRS_TRAILING_PLUS: NUMPARSE_FLAGS = 8u32; +pub const NUMPRS_TRAILING_WHITE: NUMPARSE_FLAGS = 2u32; +pub const NUMPRS_USE_ALL: NUMPARSE_FLAGS = 4096u32; +pub const OCM__BASE: u32 = 8192u32; +pub const OF_GET: u32 = 2u32; +pub const OF_HANDLER: u32 = 4u32; +pub const OF_SET: u32 = 1u32; +pub const OLECLOSE_NOSAVE: OLECLOSE = 1i32; +pub const OLECLOSE_PROMPTSAVE: OLECLOSE = 2i32; +pub const OLECLOSE_SAVEIFDIRTY: OLECLOSE = 0i32; +pub const OLECMDARGINDEX_ACTIVEXINSTALL_CLSID: u32 = 2u32; +pub const OLECMDARGINDEX_ACTIVEXINSTALL_DISPLAYNAME: u32 = 1u32; +pub const OLECMDARGINDEX_ACTIVEXINSTALL_INSTALLSCOPE: u32 = 3u32; +pub const OLECMDARGINDEX_ACTIVEXINSTALL_PUBLISHER: u32 = 0u32; +pub const OLECMDARGINDEX_ACTIVEXINSTALL_SOURCEURL: u32 = 4u32; +pub const OLECMDARGINDEX_SHOWPAGEACTIONMENU_HWND: u32 = 0u32; +pub const OLECMDARGINDEX_SHOWPAGEACTIONMENU_X: u32 = 1u32; +pub const OLECMDARGINDEX_SHOWPAGEACTIONMENU_Y: u32 = 2u32; +pub const OLECMDERR_E_CANCELED: ::windows_sys::core::HRESULT = -2147221245i32; +pub const OLECMDERR_E_DISABLED: ::windows_sys::core::HRESULT = -2147221247i32; +pub const OLECMDERR_E_FIRST: ::windows_sys::core::HRESULT = -2147221248i32; +pub const OLECMDERR_E_NOHELP: ::windows_sys::core::HRESULT = -2147221246i32; +pub const OLECMDERR_E_NOTSUPPORTED: i32 = -2147221248i32; +pub const OLECMDERR_E_UNKNOWNGROUP: ::windows_sys::core::HRESULT = -2147221244i32; +pub const OLECMDEXECOPT_DODEFAULT: OLECMDEXECOPT = 0i32; +pub const OLECMDEXECOPT_DONTPROMPTUSER: OLECMDEXECOPT = 2i32; +pub const OLECMDEXECOPT_PROMPTUSER: OLECMDEXECOPT = 1i32; +pub const OLECMDEXECOPT_SHOWHELP: OLECMDEXECOPT = 3i32; +pub const OLECMDF_DEFHIDEONCTXTMENU: OLECMDF = 32i32; +pub const OLECMDF_ENABLED: OLECMDF = 2i32; +pub const OLECMDF_INVISIBLE: OLECMDF = 16i32; +pub const OLECMDF_LATCHED: OLECMDF = 4i32; +pub const OLECMDF_NINCHED: OLECMDF = 8i32; +pub const OLECMDF_SUPPORTED: OLECMDF = 1i32; +pub const OLECMDIDF_BROWSERSTATE_BLOCKEDVERSION: OLECMDID_BROWSERSTATEFLAG = 64i32; +pub const OLECMDIDF_BROWSERSTATE_DESKTOPHTMLDIALOG: OLECMDID_BROWSERSTATEFLAG = 32i32; +pub const OLECMDIDF_BROWSERSTATE_EXTENSIONSOFF: OLECMDID_BROWSERSTATEFLAG = 1i32; +pub const OLECMDIDF_BROWSERSTATE_IESECURITY: OLECMDID_BROWSERSTATEFLAG = 2i32; +pub const OLECMDIDF_BROWSERSTATE_PROTECTEDMODE_OFF: OLECMDID_BROWSERSTATEFLAG = 4i32; +pub const OLECMDIDF_BROWSERSTATE_REQUIRESACTIVEX: OLECMDID_BROWSERSTATEFLAG = 16i32; +pub const OLECMDIDF_BROWSERSTATE_RESET: OLECMDID_BROWSERSTATEFLAG = 8i32; +pub const OLECMDIDF_OPTICAL_ZOOM_NOLAYOUT: OLECMDID_OPTICAL_ZOOMFLAG = 16i32; +pub const OLECMDIDF_OPTICAL_ZOOM_NOPERSIST: OLECMDID_OPTICAL_ZOOMFLAG = 1i32; +pub const OLECMDIDF_OPTICAL_ZOOM_NOTRANSIENT: OLECMDID_OPTICAL_ZOOMFLAG = 32i32; +pub const OLECMDIDF_OPTICAL_ZOOM_RELOADFORNEWTAB: OLECMDID_OPTICAL_ZOOMFLAG = 64i32; +pub const OLECMDIDF_PAGEACTION_ACTIVEXDISALLOW: OLECMDID_PAGEACTIONFLAG = 16i32; +pub const OLECMDIDF_PAGEACTION_ACTIVEXINSTALL: OLECMDID_PAGEACTIONFLAG = 2i32; +pub const OLECMDIDF_PAGEACTION_ACTIVEXTRUSTFAIL: OLECMDID_PAGEACTIONFLAG = 4i32; +pub const OLECMDIDF_PAGEACTION_ACTIVEXUNSAFE: OLECMDID_PAGEACTIONFLAG = 32i32; +pub const OLECMDIDF_PAGEACTION_ACTIVEXUSERAPPROVAL: OLECMDID_PAGEACTIONFLAG = 262144i32; +pub const OLECMDIDF_PAGEACTION_ACTIVEXUSERDISABLE: OLECMDID_PAGEACTIONFLAG = 8i32; +pub const OLECMDIDF_PAGEACTION_ACTIVEX_EPM_INCOMPATIBLE: OLECMDID_PAGEACTIONFLAG = 16777216i32; +pub const OLECMDIDF_PAGEACTION_EXTENSION_COMPAT_BLOCKED: OLECMDID_PAGEACTIONFLAG = 268435456i32; +pub const OLECMDIDF_PAGEACTION_FILEDOWNLOAD: OLECMDID_PAGEACTIONFLAG = 1i32; +pub const OLECMDIDF_PAGEACTION_GENERIC_STATE: OLECMDID_PAGEACTIONFLAG = 1073741824i32; +pub const OLECMDIDF_PAGEACTION_INTRANETZONEREQUEST: OLECMDID_PAGEACTIONFLAG = 2097152i32; +pub const OLECMDIDF_PAGEACTION_INVALID_CERT: OLECMDID_PAGEACTIONFLAG = 1048576i32; +pub const OLECMDIDF_PAGEACTION_LOCALMACHINE: OLECMDID_PAGEACTIONFLAG = 128i32; +pub const OLECMDIDF_PAGEACTION_MIMETEXTPLAIN: OLECMDID_PAGEACTIONFLAG = 256i32; +pub const OLECMDIDF_PAGEACTION_MIXEDCONTENT: OLECMDID_PAGEACTIONFLAG = 524288i32; +pub const OLECMDIDF_PAGEACTION_NORESETACTIVEX: OLECMDID_PAGEACTIONFLAG = 536870912i32; +pub const OLECMDIDF_PAGEACTION_POPUPALLOWED: OLECMDID_PAGEACTIONFLAG = 65536i32; +pub const OLECMDIDF_PAGEACTION_POPUPWINDOW: OLECMDID_PAGEACTIONFLAG = 64i32; +pub const OLECMDIDF_PAGEACTION_PROTLOCKDOWNDENY: OLECMDID_PAGEACTIONFLAG = 32768i32; +pub const OLECMDIDF_PAGEACTION_PROTLOCKDOWNINTERNET: OLECMDID_PAGEACTIONFLAG = 8192i32; +pub const OLECMDIDF_PAGEACTION_PROTLOCKDOWNINTRANET: OLECMDID_PAGEACTIONFLAG = 4096i32; +pub const OLECMDIDF_PAGEACTION_PROTLOCKDOWNLOCALMACHINE: OLECMDID_PAGEACTIONFLAG = 1024i32; +pub const OLECMDIDF_PAGEACTION_PROTLOCKDOWNRESTRICTED: OLECMDID_PAGEACTIONFLAG = 16384i32; +pub const OLECMDIDF_PAGEACTION_PROTLOCKDOWNTRUSTED: OLECMDID_PAGEACTIONFLAG = 2048i32; +pub const OLECMDIDF_PAGEACTION_RESET: OLECMDID_PAGEACTIONFLAG = -2147483648i32; +pub const OLECMDIDF_PAGEACTION_SCRIPTNAVIGATE: OLECMDID_PAGEACTIONFLAG = 512i32; +pub const OLECMDIDF_PAGEACTION_SCRIPTNAVIGATE_ACTIVEXINSTALL: OLECMDID_PAGEACTIONFLAG = 512i32; +pub const OLECMDIDF_PAGEACTION_SCRIPTNAVIGATE_ACTIVEXUSERAPPROVAL: OLECMDID_PAGEACTIONFLAG = 33554432i32; +pub const OLECMDIDF_PAGEACTION_SCRIPTPROMPT: OLECMDID_PAGEACTIONFLAG = 131072i32; +pub const OLECMDIDF_PAGEACTION_SPOOFABLEIDNHOST: OLECMDID_PAGEACTIONFLAG = 8388608i32; +pub const OLECMDIDF_PAGEACTION_WPCBLOCKED: OLECMDID_PAGEACTIONFLAG = 67108864i32; +pub const OLECMDIDF_PAGEACTION_WPCBLOCKED_ACTIVEX: OLECMDID_PAGEACTIONFLAG = 134217728i32; +pub const OLECMDIDF_PAGEACTION_XSSFILTERED: OLECMDID_PAGEACTIONFLAG = 4194304i32; +pub const OLECMDIDF_REFRESH_CLEARUSERINPUT: OLECMDID_REFRESHFLAG = 4096i32; +pub const OLECMDIDF_REFRESH_COMPLETELY: OLECMDID_REFRESHFLAG = 3i32; +pub const OLECMDIDF_REFRESH_CONTINUE: OLECMDID_REFRESHFLAG = 2i32; +pub const OLECMDIDF_REFRESH_IFEXPIRED: OLECMDID_REFRESHFLAG = 1i32; +pub const OLECMDIDF_REFRESH_LEVELMASK: OLECMDID_REFRESHFLAG = 255i32; +pub const OLECMDIDF_REFRESH_NORMAL: OLECMDID_REFRESHFLAG = 0i32; +pub const OLECMDIDF_REFRESH_NO_CACHE: OLECMDID_REFRESHFLAG = 4i32; +pub const OLECMDIDF_REFRESH_PAGEACTION_ACTIVEXINSTALL: OLECMDID_REFRESHFLAG = 65536i32; +pub const OLECMDIDF_REFRESH_PAGEACTION_ALLOW_VERSION: OLECMDID_REFRESHFLAG = 134217728i32; +pub const OLECMDIDF_REFRESH_PAGEACTION_FILEDOWNLOAD: OLECMDID_REFRESHFLAG = 131072i32; +pub const OLECMDIDF_REFRESH_PAGEACTION_INVALID_CERT: OLECMDID_REFRESHFLAG = 67108864i32; +pub const OLECMDIDF_REFRESH_PAGEACTION_LOCALMACHINE: OLECMDID_REFRESHFLAG = 262144i32; +pub const OLECMDIDF_REFRESH_PAGEACTION_MIXEDCONTENT: OLECMDID_REFRESHFLAG = 33554432i32; +pub const OLECMDIDF_REFRESH_PAGEACTION_POPUPWINDOW: OLECMDID_REFRESHFLAG = 524288i32; +pub const OLECMDIDF_REFRESH_PAGEACTION_PROTLOCKDOWNINTERNET: OLECMDID_REFRESHFLAG = 8388608i32; +pub const OLECMDIDF_REFRESH_PAGEACTION_PROTLOCKDOWNINTRANET: OLECMDID_REFRESHFLAG = 4194304i32; +pub const OLECMDIDF_REFRESH_PAGEACTION_PROTLOCKDOWNLOCALMACHINE: OLECMDID_REFRESHFLAG = 1048576i32; +pub const OLECMDIDF_REFRESH_PAGEACTION_PROTLOCKDOWNRESTRICTED: OLECMDID_REFRESHFLAG = 16777216i32; +pub const OLECMDIDF_REFRESH_PAGEACTION_PROTLOCKDOWNTRUSTED: OLECMDID_REFRESHFLAG = 2097152i32; +pub const OLECMDIDF_REFRESH_PROMPTIFOFFLINE: OLECMDID_REFRESHFLAG = 8192i32; +pub const OLECMDIDF_REFRESH_RELOAD: OLECMDID_REFRESHFLAG = 5i32; +pub const OLECMDIDF_REFRESH_SKIPBEFOREUNLOADEVENT: OLECMDID_REFRESHFLAG = 32768i32; +pub const OLECMDIDF_REFRESH_THROUGHSCRIPT: OLECMDID_REFRESHFLAG = 16384i32; +pub const OLECMDIDF_VIEWPORTMODE_EXCLUDE_VISUAL_BOTTOM: OLECMDID_VIEWPORT_MODE_FLAG = 2i32; +pub const OLECMDIDF_VIEWPORTMODE_EXCLUDE_VISUAL_BOTTOM_VALID: OLECMDID_VIEWPORT_MODE_FLAG = 131072i32; +pub const OLECMDIDF_VIEWPORTMODE_FIXED_LAYOUT_WIDTH: OLECMDID_VIEWPORT_MODE_FLAG = 1i32; +pub const OLECMDIDF_VIEWPORTMODE_FIXED_LAYOUT_WIDTH_VALID: OLECMDID_VIEWPORT_MODE_FLAG = 65536i32; +pub const OLECMDIDF_WINDOWSTATE_ENABLED: OLECMDID_WINDOWSTATE_FLAG = 2i32; +pub const OLECMDIDF_WINDOWSTATE_ENABLED_VALID: OLECMDID_WINDOWSTATE_FLAG = 131072i32; +pub const OLECMDIDF_WINDOWSTATE_USERVISIBLE: OLECMDID_WINDOWSTATE_FLAG = 1i32; +pub const OLECMDIDF_WINDOWSTATE_USERVISIBLE_VALID: OLECMDID_WINDOWSTATE_FLAG = 65536i32; +pub const OLECMDID_ACTIVEXINSTALLSCOPE: OLECMDID = 66i32; +pub const OLECMDID_ADDTRAVELENTRY: OLECMDID = 60i32; +pub const OLECMDID_ALLOWUILESSSAVEAS: OLECMDID = 46i32; +pub const OLECMDID_CLEARSELECTION: OLECMDID = 18i32; +pub const OLECMDID_CLOSE: OLECMDID = 45i32; +pub const OLECMDID_COPY: OLECMDID = 12i32; +pub const OLECMDID_CUT: OLECMDID = 11i32; +pub const OLECMDID_DELETE: OLECMDID = 33i32; +pub const OLECMDID_DONTDOWNLOADCSS: OLECMDID = 47i32; +pub const OLECMDID_ENABLE_INTERACTION: OLECMDID = 36i32; +pub const OLECMDID_ENABLE_VISIBILITY: OLECMDID = 77i32; +pub const OLECMDID_EXITFULLSCREEN: OLECMDID = 81i32; +pub const OLECMDID_FIND: OLECMDID = 32i32; +pub const OLECMDID_FOCUSVIEWCONTROLS: OLECMDID = 57i32; +pub const OLECMDID_FOCUSVIEWCONTROLSQUERY: OLECMDID = 58i32; +pub const OLECMDID_GETPRINTTEMPLATE: OLECMDID = 52i32; +pub const OLECMDID_GETUSERSCALABLE: OLECMDID = 75i32; +pub const OLECMDID_GETZOOMRANGE: OLECMDID = 20i32; +pub const OLECMDID_HIDETOOLBARS: OLECMDID = 24i32; +pub const OLECMDID_HTTPEQUIV: OLECMDID = 34i32; +pub const OLECMDID_HTTPEQUIV_DONE: OLECMDID = 35i32; +pub const OLECMDID_LAYOUT_VIEWPORT_WIDTH: OLECMDID = 71i32; +pub const OLECMDID_MEDIA_PLAYBACK: OLECMDID = 78i32; +pub const OLECMDID_NEW: OLECMDID = 2i32; +pub const OLECMDID_ONBEFOREUNLOAD: OLECMDID = 83i32; +pub const OLECMDID_ONTOOLBARACTIVATED: OLECMDID = 31i32; +pub const OLECMDID_ONUNLOAD: OLECMDID = 37i32; +pub const OLECMDID_OPEN: OLECMDID = 1i32; +pub const OLECMDID_OPTICAL_GETZOOMRANGE: OLECMDID = 64i32; +pub const OLECMDID_OPTICAL_ZOOM: OLECMDID = 63i32; +pub const OLECMDID_PAGEACTIONBLOCKED: OLECMDID = 55i32; +pub const OLECMDID_PAGEACTIONUIQUERY: OLECMDID = 56i32; +pub const OLECMDID_PAGEAVAILABLE: OLECMDID = 74i32; +pub const OLECMDID_PAGESETUP: OLECMDID = 8i32; +pub const OLECMDID_PASTE: OLECMDID = 13i32; +pub const OLECMDID_PASTESPECIAL: OLECMDID = 14i32; +pub const OLECMDID_POPSTATEEVENT: OLECMDID = 69i32; +pub const OLECMDID_PREREFRESH: OLECMDID = 39i32; +pub const OLECMDID_PRINT: OLECMDID = 6i32; +pub const OLECMDID_PRINT2: OLECMDID = 49i32; +pub const OLECMDID_PRINTPREVIEW: OLECMDID = 7i32; +pub const OLECMDID_PRINTPREVIEW2: OLECMDID = 50i32; +pub const OLECMDID_PROPERTIES: OLECMDID = 10i32; +pub const OLECMDID_PROPERTYBAG2: OLECMDID = 38i32; +pub const OLECMDID_REDO: OLECMDID = 16i32; +pub const OLECMDID_REFRESH: OLECMDID = 22i32; +pub const OLECMDID_SAVE: OLECMDID = 3i32; +pub const OLECMDID_SAVEAS: OLECMDID = 4i32; +pub const OLECMDID_SAVECOPYAS: OLECMDID = 5i32; +pub const OLECMDID_SCROLLCOMPLETE: OLECMDID = 82i32; +pub const OLECMDID_SELECTALL: OLECMDID = 17i32; +pub const OLECMDID_SETDOWNLOADSTATE: OLECMDID = 29i32; +pub const OLECMDID_SETFAVICON: OLECMDID = 79i32; +pub const OLECMDID_SETPRINTTEMPLATE: OLECMDID = 51i32; +pub const OLECMDID_SETPROGRESSMAX: OLECMDID = 25i32; +pub const OLECMDID_SETPROGRESSPOS: OLECMDID = 26i32; +pub const OLECMDID_SETPROGRESSTEXT: OLECMDID = 27i32; +pub const OLECMDID_SETTITLE: OLECMDID = 28i32; +pub const OLECMDID_SET_HOST_FULLSCREENMODE: OLECMDID = 80i32; +pub const OLECMDID_SHOWFIND: OLECMDID = 42i32; +pub const OLECMDID_SHOWMESSAGE: OLECMDID = 41i32; +pub const OLECMDID_SHOWMESSAGE_BLOCKABLE: OLECMDID = 84i32; +pub const OLECMDID_SHOWPAGEACTIONMENU: OLECMDID = 59i32; +pub const OLECMDID_SHOWPAGESETUP: OLECMDID = 43i32; +pub const OLECMDID_SHOWPRINT: OLECMDID = 44i32; +pub const OLECMDID_SHOWSCRIPTERROR: OLECMDID = 40i32; +pub const OLECMDID_SHOWTASKDLG: OLECMDID = 68i32; +pub const OLECMDID_SHOWTASKDLG_BLOCKABLE: OLECMDID = 85i32; +pub const OLECMDID_SPELL: OLECMDID = 9i32; +pub const OLECMDID_STOP: OLECMDID = 23i32; +pub const OLECMDID_STOPDOWNLOAD: OLECMDID = 30i32; +pub const OLECMDID_UNDO: OLECMDID = 15i32; +pub const OLECMDID_UPDATEBACKFORWARDSTATE: OLECMDID = 62i32; +pub const OLECMDID_UPDATECOMMANDS: OLECMDID = 21i32; +pub const OLECMDID_UPDATEPAGESTATUS: OLECMDID = 48i32; +pub const OLECMDID_UPDATETRAVELENTRY: OLECMDID = 61i32; +pub const OLECMDID_UPDATETRAVELENTRY_DATARECOVERY: OLECMDID = 67i32; +pub const OLECMDID_UPDATE_CARET: OLECMDID = 76i32; +pub const OLECMDID_USER_OPTICAL_ZOOM: OLECMDID = 73i32; +pub const OLECMDID_VIEWPORT_MODE: OLECMDID = 70i32; +pub const OLECMDID_VISUAL_VIEWPORT_EXCLUDE_BOTTOM: OLECMDID = 72i32; +pub const OLECMDID_WINDOWSTATECHANGED: OLECMDID = 65i32; +pub const OLECMDID_ZOOM: OLECMDID = 19i32; +pub const OLECMDTEXTF_NAME: OLECMDTEXTF = 1i32; +pub const OLECMDTEXTF_NONE: OLECMDTEXTF = 0i32; +pub const OLECMDTEXTF_STATUS: OLECMDTEXTF = 2i32; +pub const OLECMD_TASKDLGID_ONBEFOREUNLOAD: u32 = 1u32; +pub const OLECONTF_EMBEDDINGS: OLECONTF = 1i32; +pub const OLECONTF_LINKS: OLECONTF = 2i32; +pub const OLECONTF_ONLYIFRUNNING: OLECONTF = 16i32; +pub const OLECONTF_ONLYUSER: OLECONTF = 8i32; +pub const OLECONTF_OTHERS: OLECONTF = 4i32; +pub const OLECREATE_LEAVERUNNING: OLECREATE = 1u32; +pub const OLECREATE_ZERO: OLECREATE = 0u32; +pub const OLEDC_NODRAW: OLEDCFLAGS = 1i32; +pub const OLEDC_OFFSCREEN: OLEDCFLAGS = 4i32; +pub const OLEDC_PAINTBKGND: OLEDCFLAGS = 2i32; +pub const OLEGETMONIKER_FORCEASSIGN: OLEGETMONIKER = 2i32; +pub const OLEGETMONIKER_ONLYIFTHERE: OLEGETMONIKER = 1i32; +pub const OLEGETMONIKER_TEMPFORUSER: OLEGETMONIKER = 4i32; +pub const OLEGETMONIKER_UNASSIGN: OLEGETMONIKER = 3i32; +pub const OLEIVERB_DISCARDUNDOSTATE: OLEIVERB = -6i32; +pub const OLEIVERB_HIDE: OLEIVERB = -3i32; +pub const OLEIVERB_INPLACEACTIVATE: OLEIVERB = -5i32; +pub const OLEIVERB_OPEN: OLEIVERB = -2i32; +pub const OLEIVERB_PRIMARY: OLEIVERB = 0i32; +pub const OLEIVERB_PROPERTIES: i32 = -7i32; +pub const OLEIVERB_SHOW: OLEIVERB = -1i32; +pub const OLEIVERB_UIACTIVATE: OLEIVERB = -4i32; +pub const OLELINKBIND_EVENIFCLASSDIFF: OLELINKBIND = 1i32; +pub const OLEMISC_ACTIVATEWHENVISIBLE: OLEMISC = 256i32; +pub const OLEMISC_ACTSLIKEBUTTON: OLEMISC = 4096i32; +pub const OLEMISC_ACTSLIKELABEL: OLEMISC = 8192i32; +pub const OLEMISC_ALIGNABLE: OLEMISC = 32768i32; +pub const OLEMISC_ALWAYSRUN: OLEMISC = 2048i32; +pub const OLEMISC_CANLINKBYOLE1: OLEMISC = 32i32; +pub const OLEMISC_CANTLINKINSIDE: OLEMISC = 16i32; +pub const OLEMISC_IGNOREACTIVATEWHENVISIBLE: OLEMISC = 524288i32; +pub const OLEMISC_IMEMODE: OLEMISC = 262144i32; +pub const OLEMISC_INSERTNOTREPLACE: OLEMISC = 4i32; +pub const OLEMISC_INSIDEOUT: OLEMISC = 128i32; +pub const OLEMISC_INVISIBLEATRUNTIME: OLEMISC = 1024i32; +pub const OLEMISC_ISLINKOBJECT: OLEMISC = 64i32; +pub const OLEMISC_NOUIACTIVATE: OLEMISC = 16384i32; +pub const OLEMISC_ONLYICONIC: OLEMISC = 2i32; +pub const OLEMISC_RECOMPOSEONRESIZE: OLEMISC = 1i32; +pub const OLEMISC_RENDERINGISDEVICEINDEPENDENT: OLEMISC = 512i32; +pub const OLEMISC_SETCLIENTSITEFIRST: OLEMISC = 131072i32; +pub const OLEMISC_SIMPLEFRAME: OLEMISC = 65536i32; +pub const OLEMISC_STATIC: OLEMISC = 8i32; +pub const OLEMISC_SUPPORTSMULTILEVELUNDO: OLEMISC = 2097152i32; +pub const OLEMISC_WANTSTOMENUMERGE: OLEMISC = 1048576i32; +pub const OLERENDER_ASIS: OLERENDER = 3i32; +pub const OLERENDER_DRAW: OLERENDER = 1i32; +pub const OLERENDER_FORMAT: OLERENDER = 2i32; +pub const OLERENDER_NONE: OLERENDER = 0i32; +pub const OLESTDDELIM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\"); +pub const OLEUIPASTE_ENABLEICON: OLEUIPASTEFLAG = 2048i32; +pub const OLEUIPASTE_LINKANYTYPE: OLEUIPASTEFLAG = 1024i32; +pub const OLEUIPASTE_LINKTYPE1: OLEUIPASTEFLAG = 1i32; +pub const OLEUIPASTE_LINKTYPE2: OLEUIPASTEFLAG = 2i32; +pub const OLEUIPASTE_LINKTYPE3: OLEUIPASTEFLAG = 4i32; +pub const OLEUIPASTE_LINKTYPE4: OLEUIPASTEFLAG = 8i32; +pub const OLEUIPASTE_LINKTYPE5: OLEUIPASTEFLAG = 16i32; +pub const OLEUIPASTE_LINKTYPE6: OLEUIPASTEFLAG = 32i32; +pub const OLEUIPASTE_LINKTYPE7: OLEUIPASTEFLAG = 64i32; +pub const OLEUIPASTE_LINKTYPE8: OLEUIPASTEFLAG = 128i32; +pub const OLEUIPASTE_PASTE: OLEUIPASTEFLAG = 512i32; +pub const OLEUIPASTE_PASTEONLY: OLEUIPASTEFLAG = 0i32; +pub const OLEUI_BZERR_HTASKINVALID: u32 = 116u32; +pub const OLEUI_BZ_CALLUNBLOCKED: u32 = 119u32; +pub const OLEUI_BZ_RETRYSELECTED: u32 = 118u32; +pub const OLEUI_BZ_SWITCHTOSELECTED: u32 = 117u32; +pub const OLEUI_CANCEL: u32 = 2u32; +pub const OLEUI_CIERR_MUSTHAVECLSID: u32 = 116u32; +pub const OLEUI_CIERR_MUSTHAVECURRENTMETAFILE: u32 = 117u32; +pub const OLEUI_CIERR_SZICONEXEINVALID: u32 = 118u32; +pub const OLEUI_CSERR_FROMNOTNULL: u32 = 118u32; +pub const OLEUI_CSERR_LINKCNTRINVALID: u32 = 117u32; +pub const OLEUI_CSERR_LINKCNTRNULL: u32 = 116u32; +pub const OLEUI_CSERR_SOURCEINVALID: u32 = 121u32; +pub const OLEUI_CSERR_SOURCENULL: u32 = 120u32; +pub const OLEUI_CSERR_SOURCEPARSEERROR: u32 = 122u32; +pub const OLEUI_CSERR_SOURCEPARSERROR: u32 = 122u32; +pub const OLEUI_CSERR_TONOTNULL: u32 = 119u32; +pub const OLEUI_CTERR_CBFORMATINVALID: u32 = 119u32; +pub const OLEUI_CTERR_CLASSIDINVALID: u32 = 117u32; +pub const OLEUI_CTERR_DVASPECTINVALID: u32 = 118u32; +pub const OLEUI_CTERR_HMETAPICTINVALID: u32 = 120u32; +pub const OLEUI_CTERR_STRINGINVALID: u32 = 121u32; +pub const OLEUI_ELERR_LINKCNTRINVALID: u32 = 117u32; +pub const OLEUI_ELERR_LINKCNTRNULL: u32 = 116u32; +pub const OLEUI_ERR_CBSTRUCTINCORRECT: u32 = 103u32; +pub const OLEUI_ERR_DIALOGFAILURE: u32 = 112u32; +pub const OLEUI_ERR_FINDTEMPLATEFAILURE: u32 = 110u32; +pub const OLEUI_ERR_GLOBALMEMALLOC: u32 = 114u32; +pub const OLEUI_ERR_HINSTANCEINVALID: u32 = 107u32; +pub const OLEUI_ERR_HRESOURCEINVALID: u32 = 109u32; +pub const OLEUI_ERR_HWNDOWNERINVALID: u32 = 104u32; +pub const OLEUI_ERR_LOADSTRING: u32 = 115u32; +pub const OLEUI_ERR_LOADTEMPLATEFAILURE: u32 = 111u32; +pub const OLEUI_ERR_LOCALMEMALLOC: u32 = 113u32; +pub const OLEUI_ERR_LPFNHOOKINVALID: u32 = 106u32; +pub const OLEUI_ERR_LPSZCAPTIONINVALID: u32 = 105u32; +pub const OLEUI_ERR_LPSZTEMPLATEINVALID: u32 = 108u32; +pub const OLEUI_ERR_OLEMEMALLOC: u32 = 100u32; +pub const OLEUI_ERR_STANDARDMAX: u32 = 116u32; +pub const OLEUI_ERR_STANDARDMIN: u32 = 100u32; +pub const OLEUI_ERR_STRUCTUREINVALID: u32 = 102u32; +pub const OLEUI_ERR_STRUCTURENULL: u32 = 101u32; +pub const OLEUI_FALSE: u32 = 0u32; +pub const OLEUI_GPERR_CBFORMATINVALID: u32 = 130u32; +pub const OLEUI_GPERR_CLASSIDINVALID: u32 = 128u32; +pub const OLEUI_GPERR_LPCLSIDEXCLUDEINVALID: u32 = 129u32; +pub const OLEUI_GPERR_STRINGINVALID: u32 = 127u32; +pub const OLEUI_IOERR_ARRLINKTYPESINVALID: u32 = 118u32; +pub const OLEUI_IOERR_ARRPASTEENTRIESINVALID: u32 = 117u32; +pub const OLEUI_IOERR_CCHFILEINVALID: u32 = 125u32; +pub const OLEUI_IOERR_HICONINVALID: u32 = 118u32; +pub const OLEUI_IOERR_LPCLSIDEXCLUDEINVALID: u32 = 124u32; +pub const OLEUI_IOERR_LPFORMATETCINVALID: u32 = 119u32; +pub const OLEUI_IOERR_LPIOLECLIENTSITEINVALID: u32 = 121u32; +pub const OLEUI_IOERR_LPISTORAGEINVALID: u32 = 122u32; +pub const OLEUI_IOERR_LPSZFILEINVALID: u32 = 116u32; +pub const OLEUI_IOERR_LPSZLABELINVALID: u32 = 117u32; +pub const OLEUI_IOERR_PPVOBJINVALID: u32 = 120u32; +pub const OLEUI_IOERR_SCODEHASERROR: u32 = 123u32; +pub const OLEUI_IOERR_SRCDATAOBJECTINVALID: u32 = 116u32; +pub const OLEUI_LPERR_LINKCNTRINVALID: u32 = 134u32; +pub const OLEUI_LPERR_LINKCNTRNULL: u32 = 133u32; +pub const OLEUI_OK: u32 = 1u32; +pub const OLEUI_OPERR_DLGPROCNOTNULL: u32 = 125u32; +pub const OLEUI_OPERR_INVALIDPAGES: u32 = 123u32; +pub const OLEUI_OPERR_LINKINFOINVALID: u32 = 137u32; +pub const OLEUI_OPERR_LPARAMNOTZERO: u32 = 126u32; +pub const OLEUI_OPERR_NOTSUPPORTED: u32 = 124u32; +pub const OLEUI_OPERR_OBJINFOINVALID: u32 = 136u32; +pub const OLEUI_OPERR_PAGESINCORRECT: u32 = 122u32; +pub const OLEUI_OPERR_PROPERTYSHEET: u32 = 135u32; +pub const OLEUI_OPERR_PROPSHEETINVALID: u32 = 119u32; +pub const OLEUI_OPERR_PROPSHEETNULL: u32 = 118u32; +pub const OLEUI_OPERR_PROPSINVALID: u32 = 121u32; +pub const OLEUI_OPERR_SUBPROPINVALID: u32 = 117u32; +pub const OLEUI_OPERR_SUBPROPNULL: u32 = 116u32; +pub const OLEUI_OPERR_SUPPROP: u32 = 120u32; +pub const OLEUI_PSERR_CLIPBOARDCHANGED: u32 = 119u32; +pub const OLEUI_PSERR_GETCLIPBOARDFAILED: u32 = 120u32; +pub const OLEUI_QUERY_GETCLASSID: u32 = 65280u32; +pub const OLEUI_QUERY_LINKBROKEN: u32 = 65281u32; +pub const OLEUI_SUCCESS: u32 = 1u32; +pub const OLEUI_VPERR_DVASPECTINVALID: u32 = 132u32; +pub const OLEUI_VPERR_METAPICTINVALID: u32 = 131u32; +pub const OLEUPDATE_ALWAYS: OLEUPDATE = 1i32; +pub const OLEUPDATE_ONCALL: OLEUPDATE = 3i32; +pub const OLEVERBATTRIB_NEVERDIRTIES: OLEVERBATTRIB = 1i32; +pub const OLEVERBATTRIB_ONCONTAINERMENU: OLEVERBATTRIB = 2i32; +pub const OLEVERB_PRIMARY: u32 = 0u32; +pub const OLEWHICHMK_CONTAINER: OLEWHICHMK = 1i32; +pub const OLEWHICHMK_OBJFULL: OLEWHICHMK = 3i32; +pub const OLEWHICHMK_OBJREL: OLEWHICHMK = 2i32; +pub const OPF_DISABLECONVERT: OBJECT_PROPERTIES_FLAGS = 8u32; +pub const OPF_NOFILLDEFAULT: OBJECT_PROPERTIES_FLAGS = 2u32; +pub const OPF_OBJECTISLINK: OBJECT_PROPERTIES_FLAGS = 1u32; +pub const OPF_SHOWHELP: OBJECT_PROPERTIES_FLAGS = 4u32; +pub const OT_EMBEDDED: i32 = 2i32; +pub const OT_LINK: i32 = 1i32; +pub const OT_STATIC: i32 = 3i32; +pub const PAGEACTION_UI_DEFAULT: PAGEACTION_UI = 0i32; +pub const PAGEACTION_UI_MODAL: PAGEACTION_UI = 1i32; +pub const PAGEACTION_UI_MODELESS: PAGEACTION_UI = 2i32; +pub const PAGEACTION_UI_SILENT: PAGEACTION_UI = 3i32; +pub const PARAMFLAG_FHASCUSTDATA: PARAMFLAGS = 64u16; +pub const PARAMFLAG_FHASDEFAULT: PARAMFLAGS = 32u16; +pub const PARAMFLAG_FIN: PARAMFLAGS = 1u16; +pub const PARAMFLAG_FLCID: PARAMFLAGS = 4u16; +pub const PARAMFLAG_FOPT: PARAMFLAGS = 16u16; +pub const PARAMFLAG_FOUT: PARAMFLAGS = 2u16; +pub const PARAMFLAG_FRETVAL: PARAMFLAGS = 8u16; +pub const PARAMFLAG_NONE: PARAMFLAGS = 0u16; +pub const PERPROP_E_FIRST: i32 = -2147220992i32; +pub const PERPROP_E_LAST: ::windows_sys::core::HRESULT = -2147220977i32; +pub const PERPROP_E_NOPAGEAVAILABLE: ::windows_sys::core::HRESULT = -2147220992i32; +pub const PERPROP_S_FIRST: ::windows_sys::core::HRESULT = 262656i32; +pub const PERPROP_S_LAST: ::windows_sys::core::HRESULT = 262671i32; +pub const PICTURE_SCALABLE: PICTUREATTRIBUTES = 1i32; +pub const PICTURE_TRANSPARENT: PICTUREATTRIBUTES = 2i32; +pub const PICTYPE_BITMAP: PICTYPE = 1i16; +pub const PICTYPE_ENHMETAFILE: PICTYPE = 4i16; +pub const PICTYPE_ICON: PICTYPE = 3i16; +pub const PICTYPE_METAFILE: PICTYPE = 2i16; +pub const PICTYPE_NONE: PICTYPE = 0i16; +pub const PICTYPE_UNINITIALIZED: PICTYPE = -1i16; +pub const POINTERINACTIVE_ACTIVATEONDRAG: POINTERINACTIVE = 4i32; +pub const POINTERINACTIVE_ACTIVATEONENTRY: POINTERINACTIVE = 1i32; +pub const POINTERINACTIVE_DEACTIVATEONLEAVE: POINTERINACTIVE = 2i32; +pub const PRINTFLAG_DONTACTUALLYPRINT: PRINTFLAG = 16i32; +pub const PRINTFLAG_FORCEPROPERTIES: PRINTFLAG = 32i32; +pub const PRINTFLAG_MAYBOTHERUSER: PRINTFLAG = 1i32; +pub const PRINTFLAG_PRINTTOFILE: PRINTFLAG = 64i32; +pub const PRINTFLAG_PROMPTUSER: PRINTFLAG = 2i32; +pub const PRINTFLAG_RECOMPOSETODEVICE: PRINTFLAG = 8i32; +pub const PRINTFLAG_USERMAYCHANGEPRINTER: PRINTFLAG = 4i32; +pub const PROPBAG2_TYPE_DATA: PROPBAG2_TYPE = 1i32; +pub const PROPBAG2_TYPE_MONIKER: PROPBAG2_TYPE = 6i32; +pub const PROPBAG2_TYPE_OBJECT: PROPBAG2_TYPE = 3i32; +pub const PROPBAG2_TYPE_STORAGE: PROPBAG2_TYPE = 5i32; +pub const PROPBAG2_TYPE_STREAM: PROPBAG2_TYPE = 4i32; +pub const PROPBAG2_TYPE_UNDEFINED: PROPBAG2_TYPE = 0i32; +pub const PROPBAG2_TYPE_URL: PROPBAG2_TYPE = 2i32; +pub const PROPPAGESTATUS_CLEAN: PROPPAGESTATUS = 4i32; +pub const PROPPAGESTATUS_DIRTY: PROPPAGESTATUS = 1i32; +pub const PROPPAGESTATUS_VALIDATE: PROPPAGESTATUS = 2i32; +pub const PROP_HWND_CHGICONDLG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HWND_CIDLG"); +pub const PSF_CHECKDISPLAYASICON: PASTE_SPECIAL_FLAGS = 8u32; +pub const PSF_DISABLEDISPLAYASICON: PASTE_SPECIAL_FLAGS = 16u32; +pub const PSF_HIDECHANGEICON: PASTE_SPECIAL_FLAGS = 32u32; +pub const PSF_NOREFRESHDATAOBJECT: PASTE_SPECIAL_FLAGS = 128u32; +pub const PSF_SELECTPASTE: PASTE_SPECIAL_FLAGS = 2u32; +pub const PSF_SELECTPASTELINK: PASTE_SPECIAL_FLAGS = 4u32; +pub const PSF_SHOWHELP: PASTE_SPECIAL_FLAGS = 1u32; +pub const PSF_STAYONCLIPBOARDCHANGE: PASTE_SPECIAL_FLAGS = 64u32; +pub const PS_MAXLINKTYPES: u32 = 8u32; +pub const QACONTAINER_AUTOCLIP: QACONTAINERFLAGS = 32i32; +pub const QACONTAINER_DISPLAYASDEFAULT: QACONTAINERFLAGS = 8i32; +pub const QACONTAINER_MESSAGEREFLECT: QACONTAINERFLAGS = 64i32; +pub const QACONTAINER_SHOWGRABHANDLES: QACONTAINERFLAGS = 2i32; +pub const QACONTAINER_SHOWHATCHING: QACONTAINERFLAGS = 1i32; +pub const QACONTAINER_SUPPORTSMNEMONICS: QACONTAINERFLAGS = 128i32; +pub const QACONTAINER_UIDEAD: QACONTAINERFLAGS = 16i32; +pub const QACONTAINER_USERMODE: QACONTAINERFLAGS = 4i32; +pub const READYSTATE_COMPLETE: READYSTATE = 4i32; +pub const READYSTATE_INTERACTIVE: READYSTATE = 3i32; +pub const READYSTATE_LOADED: READYSTATE = 2i32; +pub const READYSTATE_LOADING: READYSTATE = 1i32; +pub const READYSTATE_UNINITIALIZED: READYSTATE = 0i32; +pub const REGKIND_DEFAULT: REGKIND = 0i32; +pub const REGKIND_NONE: REGKIND = 2i32; +pub const REGKIND_REGISTER: REGKIND = 1i32; +pub const SELFREG_E_CLASS: ::windows_sys::core::HRESULT = -2147220991i32; +pub const SELFREG_E_FIRST: i32 = -2147220992i32; +pub const SELFREG_E_LAST: ::windows_sys::core::HRESULT = -2147220977i32; +pub const SELFREG_E_TYPELIB: ::windows_sys::core::HRESULT = -2147220992i32; +pub const SELFREG_S_FIRST: ::windows_sys::core::HRESULT = 262656i32; +pub const SELFREG_S_LAST: ::windows_sys::core::HRESULT = 262671i32; +pub const SF_BSTR: SF_TYPE = 8i32; +pub const SF_DISPATCH: SF_TYPE = 9i32; +pub const SF_ERROR: SF_TYPE = 10i32; +pub const SF_HAVEIID: SF_TYPE = 32781i32; +pub const SF_I1: SF_TYPE = 16i32; +pub const SF_I2: SF_TYPE = 2i32; +pub const SF_I4: SF_TYPE = 3i32; +pub const SF_I8: SF_TYPE = 20i32; +pub const SF_RECORD: SF_TYPE = 36i32; +pub const SF_UNKNOWN: SF_TYPE = 13i32; +pub const SF_VARIANT: SF_TYPE = 12i32; +pub const SID_GetCaller: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4717cc40_bcb9_11d0_9336_00a0c90dcaa9); +pub const SID_ProvideRuntimeContext: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x74a5040c_dd0c_48f0_ac85_194c3259180a); +pub const SID_VariantConversion: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1f101481_bccd_11d0_9336_00a0c90dcaa9); +pub const STDOLE2_LCID: u32 = 0u32; +pub const STDOLE2_MAJORVERNUM: u32 = 2u32; +pub const STDOLE2_MINORVERNUM: u32 = 0u32; +pub const STDOLE_LCID: u32 = 0u32; +pub const STDOLE_MAJORVERNUM: u32 = 1u32; +pub const STDOLE_MINORVERNUM: u32 = 0u32; +pub const STDOLE_TLB: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("stdole2.tlb"); +pub const STDTYPE_TLB: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("stdole2.tlb"); +pub const SZOLEUI_MSG_ADDCONTROL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OLEUI_MSG_ADDCONTROL"); +pub const SZOLEUI_MSG_BROWSE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OLEUI_MSG_BROWSE"); +pub const SZOLEUI_MSG_BROWSE_OFN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OLEUI_MSG_BROWSE_OFN"); +pub const SZOLEUI_MSG_CHANGEICON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OLEUI_MSG_CHANGEICON"); +pub const SZOLEUI_MSG_CHANGESOURCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OLEUI_MSG_CHANGESOURCE"); +pub const SZOLEUI_MSG_CLOSEBUSYDIALOG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OLEUI_MSG_CLOSEBUSYDIALOG"); +pub const SZOLEUI_MSG_CONVERT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OLEUI_MSG_CONVERT"); +pub const SZOLEUI_MSG_ENDDIALOG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OLEUI_MSG_ENDDIALOG"); +pub const SZOLEUI_MSG_HELP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OLEUI_MSG_HELP"); +pub const TIFLAGS_EXTENDDISPATCHONLY: u32 = 1u32; +pub const TYPEFLAG_FAGGREGATABLE: TYPEFLAGS = 1024i32; +pub const TYPEFLAG_FAPPOBJECT: TYPEFLAGS = 1i32; +pub const TYPEFLAG_FCANCREATE: TYPEFLAGS = 2i32; +pub const TYPEFLAG_FCONTROL: TYPEFLAGS = 32i32; +pub const TYPEFLAG_FDISPATCHABLE: TYPEFLAGS = 4096i32; +pub const TYPEFLAG_FDUAL: TYPEFLAGS = 64i32; +pub const TYPEFLAG_FHIDDEN: TYPEFLAGS = 16i32; +pub const TYPEFLAG_FLICENSED: TYPEFLAGS = 4i32; +pub const TYPEFLAG_FNONEXTENSIBLE: TYPEFLAGS = 128i32; +pub const TYPEFLAG_FOLEAUTOMATION: TYPEFLAGS = 256i32; +pub const TYPEFLAG_FPREDECLID: TYPEFLAGS = 8i32; +pub const TYPEFLAG_FPROXY: TYPEFLAGS = 16384i32; +pub const TYPEFLAG_FREPLACEABLE: TYPEFLAGS = 2048i32; +pub const TYPEFLAG_FRESTRICTED: TYPEFLAGS = 512i32; +pub const TYPEFLAG_FREVERSEBIND: TYPEFLAGS = 8192i32; +pub const UAS_BLOCKED: UASFLAGS = 1i32; +pub const UAS_MASK: UASFLAGS = 3i32; +pub const UAS_NOPARENTENABLE: UASFLAGS = 2i32; +pub const UAS_NORMAL: UASFLAGS = 0i32; +pub const UPDFCACHE_ALL: UPDFCACHE_FLAGS = 2147483647u32; +pub const UPDFCACHE_ALLBUTNODATACACHE: UPDFCACHE_FLAGS = 2147483646u32; +pub const UPDFCACHE_IFBLANK: UPDFCACHE_FLAGS = 16u32; +pub const UPDFCACHE_IFBLANKORONSAVECACHE: UPDFCACHE_FLAGS = 18u32; +pub const UPDFCACHE_NODATACACHE: UPDFCACHE_FLAGS = 1u32; +pub const UPDFCACHE_NORMALCACHE: UPDFCACHE_FLAGS = 8u32; +pub const UPDFCACHE_ONLYIFBLANK: UPDFCACHE_FLAGS = 2147483648u32; +pub const UPDFCACHE_ONSAVECACHE: UPDFCACHE_FLAGS = 2u32; +pub const UPDFCACHE_ONSTOPCACHE: UPDFCACHE_FLAGS = 4u32; +pub const USERCLASSTYPE_APPNAME: USERCLASSTYPE = 3i32; +pub const USERCLASSTYPE_FULL: USERCLASSTYPE = 1i32; +pub const USERCLASSTYPE_SHORT: USERCLASSTYPE = 2i32; +pub const VARCMP_EQ: VARCMP = 1u32; +pub const VARCMP_GT: VARCMP = 2u32; +pub const VARCMP_LT: VARCMP = 0u32; +pub const VARCMP_NULL: VARCMP = 3u32; +pub const VARFORMAT_FIRST_DAY_FRIDAY: VARFORMAT_FIRST_DAY = 5i32; +pub const VARFORMAT_FIRST_DAY_MONDAY: VARFORMAT_FIRST_DAY = 1i32; +pub const VARFORMAT_FIRST_DAY_SATURDAY: VARFORMAT_FIRST_DAY = 6i32; +pub const VARFORMAT_FIRST_DAY_SUNDAY: VARFORMAT_FIRST_DAY = 7i32; +pub const VARFORMAT_FIRST_DAY_SYSTEMDEFAULT: VARFORMAT_FIRST_DAY = 0i32; +pub const VARFORMAT_FIRST_DAY_THURSDAY: VARFORMAT_FIRST_DAY = 4i32; +pub const VARFORMAT_FIRST_DAY_TUESDAY: VARFORMAT_FIRST_DAY = 2i32; +pub const VARFORMAT_FIRST_DAY_WEDNESDAY: VARFORMAT_FIRST_DAY = 3i32; +pub const VARFORMAT_FIRST_WEEK_CONTAINS_JANUARY_FIRST: VARFORMAT_FIRST_WEEK = 1i32; +pub const VARFORMAT_FIRST_WEEK_HAS_SEVEN_DAYS: VARFORMAT_FIRST_WEEK = 3i32; +pub const VARFORMAT_FIRST_WEEK_LARGER_HALF_IN_CURRENT_YEAR: VARFORMAT_FIRST_WEEK = 2i32; +pub const VARFORMAT_FIRST_WEEK_SYSTEMDEFAULT: VARFORMAT_FIRST_WEEK = 0i32; +pub const VARFORMAT_GROUP_NOTTHOUSANDS: VARFORMAT_GROUP = 0i32; +pub const VARFORMAT_GROUP_SYSTEMDEFAULT: VARFORMAT_GROUP = -2i32; +pub const VARFORMAT_GROUP_THOUSANDS: VARFORMAT_GROUP = -1i32; +pub const VARFORMAT_LEADING_DIGIT_INCLUDED: VARFORMAT_LEADING_DIGIT = -1i32; +pub const VARFORMAT_LEADING_DIGIT_NOTINCLUDED: VARFORMAT_LEADING_DIGIT = 0i32; +pub const VARFORMAT_LEADING_DIGIT_SYSTEMDEFAULT: VARFORMAT_LEADING_DIGIT = -2i32; +pub const VARFORMAT_NAMED_FORMAT_GENERALDATE: VARFORMAT_NAMED_FORMAT = 0i32; +pub const VARFORMAT_NAMED_FORMAT_LONGDATE: VARFORMAT_NAMED_FORMAT = 1i32; +pub const VARFORMAT_NAMED_FORMAT_LONGTIME: VARFORMAT_NAMED_FORMAT = 3i32; +pub const VARFORMAT_NAMED_FORMAT_SHORTDATE: VARFORMAT_NAMED_FORMAT = 2i32; +pub const VARFORMAT_NAMED_FORMAT_SHORTTIME: VARFORMAT_NAMED_FORMAT = 4i32; +pub const VARFORMAT_PARENTHESES_NOTUSED: VARFORMAT_PARENTHESES = 0i32; +pub const VARFORMAT_PARENTHESES_SYSTEMDEFAULT: VARFORMAT_PARENTHESES = -2i32; +pub const VARFORMAT_PARENTHESES_USED: VARFORMAT_PARENTHESES = -1i32; +pub const VAR_CALENDAR_GREGORIAN: u32 = 256u32; +pub const VAR_CALENDAR_HIJRI: u32 = 8u32; +pub const VAR_CALENDAR_THAI: u32 = 128u32; +pub const VAR_DATEVALUEONLY: u32 = 2u32; +pub const VAR_FORMAT_NOSUBSTITUTE: u32 = 32u32; +pub const VAR_FOURDIGITYEARS: u32 = 64u32; +pub const VAR_LOCALBOOL: u32 = 16u32; +pub const VAR_TIMEVALUEONLY: u32 = 1u32; +pub const VAR_VALIDDATE: u32 = 4u32; +pub const VIEWSTATUS_3DSURFACE: VIEWSTATUS = 32i32; +pub const VIEWSTATUS_DVASPECTOPAQUE: VIEWSTATUS = 4i32; +pub const VIEWSTATUS_DVASPECTTRANSPARENT: VIEWSTATUS = 8i32; +pub const VIEWSTATUS_OPAQUE: VIEWSTATUS = 1i32; +pub const VIEWSTATUS_SOLIDBKGND: VIEWSTATUS = 2i32; +pub const VIEWSTATUS_SURFACE: VIEWSTATUS = 16i32; +pub const VPF_DISABLERELATIVE: VIEW_OBJECT_PROPERTIES_FLAGS = 2u32; +pub const VPF_DISABLESCALE: VIEW_OBJECT_PROPERTIES_FLAGS = 4u32; +pub const VPF_SELECTRELATIVE: VIEW_OBJECT_PROPERTIES_FLAGS = 1u32; +pub const VTDATEGRE_MAX: u32 = 2958465u32; +pub const VTDATEGRE_MIN: i32 = -657434i32; +pub const VT_BLOB_PROPSET: u32 = 75u32; +pub const VT_STORED_PROPSET: u32 = 74u32; +pub const VT_STREAMED_PROPSET: u32 = 73u32; +pub const VT_VERBOSE_ENUM: u32 = 76u32; +pub const WIN32: u32 = 100u32; +pub const WPCSETTING_FILEDOWNLOAD_BLOCKED: WPCSETTING = 2i32; +pub const WPCSETTING_LOGGING_ENABLED: WPCSETTING = 1i32; +pub const XFORMCOORDS_CONTAINERTOHIMETRIC: XFORMCOORDS = 8i32; +pub const XFORMCOORDS_EVENTCOMPAT: XFORMCOORDS = 16i32; +pub const XFORMCOORDS_HIMETRICTOCONTAINER: XFORMCOORDS = 4i32; +pub const XFORMCOORDS_POSITION: XFORMCOORDS = 1i32; +pub const XFORMCOORDS_SIZE: XFORMCOORDS = 2i32; +pub const fdexEnumAll: i32 = 2i32; +pub const fdexEnumDefault: i32 = 1i32; +pub const fdexNameCaseInsensitive: i32 = 8i32; +pub const fdexNameCaseSensitive: i32 = 1i32; +pub const fdexNameEnsure: i32 = 2i32; +pub const fdexNameImplicit: i32 = 4i32; +pub const fdexNameInternal: i32 = 16i32; +pub const fdexNameNoDynamicProperties: i32 = 32i32; +pub const fdexPropCanCall: FDEX_PROP_FLAGS = 256u32; +pub const fdexPropCanConstruct: FDEX_PROP_FLAGS = 1024u32; +pub const fdexPropCanGet: FDEX_PROP_FLAGS = 1u32; +pub const fdexPropCanPut: FDEX_PROP_FLAGS = 4u32; +pub const fdexPropCanPutRef: FDEX_PROP_FLAGS = 16u32; +pub const fdexPropCanSourceEvents: FDEX_PROP_FLAGS = 4096u32; +pub const fdexPropCannotCall: FDEX_PROP_FLAGS = 512u32; +pub const fdexPropCannotConstruct: FDEX_PROP_FLAGS = 2048u32; +pub const fdexPropCannotGet: FDEX_PROP_FLAGS = 2u32; +pub const fdexPropCannotPut: FDEX_PROP_FLAGS = 8u32; +pub const fdexPropCannotPutRef: FDEX_PROP_FLAGS = 32u32; +pub const fdexPropCannotSourceEvents: FDEX_PROP_FLAGS = 8192u32; +pub const fdexPropDynamicType: FDEX_PROP_FLAGS = 128u32; +pub const fdexPropNoSideEffects: FDEX_PROP_FLAGS = 64u32; +pub const triChecked: OLE_TRISTATE = 1i32; +pub const triGray: OLE_TRISTATE = 2i32; +pub const triUnchecked: OLE_TRISTATE = 0i32; +pub type ACTIVATEFLAGS = i32; +pub type ACTIVEOBJECT_FLAGS = u32; +pub type BINDSPEED = i32; +pub type BUSY_DIALOG_FLAGS = u32; +pub type CHANGEKIND = i32; +pub type CHANGE_ICON_FLAGS = u32; +pub type CHANGE_SOURCE_FLAGS = u32; +pub type CLIPBOARD_FORMAT = u16; +pub type CTRLINFO = i32; +pub type DISCARDCACHE = i32; +pub type DOCMISC = i32; +pub type DROPEFFECT = u32; +pub type DVASPECTINFOFLAG = i32; +pub type DVEXTENTMODE = i32; +pub type EDIT_LINKS_FLAGS = u32; +pub type EMBDHLP_FLAGS = u32; +pub type ENUM_CONTROLS_WHICH_FLAGS = u32; +pub type FDEX_PROP_FLAGS = u32; +pub type GUIDKIND = i32; +pub type HITRESULT = i32; +pub type IGNOREMIME = i32; +pub type INSERT_OBJECT_FLAGS = u32; +pub type KEYMODIFIERS = u32; +pub type LIBFLAGS = i32; +pub type LOAD_PICTURE_FLAGS = u32; +pub type MEDIAPLAYBACK_STATE = i32; +pub type MULTICLASSINFO_FLAGS = u32; +pub type NUMPARSE_FLAGS = u32; +pub type OBJECT_PROPERTIES_FLAGS = u32; +pub type OLECLOSE = i32; +pub type OLECMDEXECOPT = i32; +pub type OLECMDF = i32; +pub type OLECMDID = i32; +pub type OLECMDID_BROWSERSTATEFLAG = i32; +pub type OLECMDID_OPTICAL_ZOOMFLAG = i32; +pub type OLECMDID_PAGEACTIONFLAG = i32; +pub type OLECMDID_REFRESHFLAG = i32; +pub type OLECMDID_VIEWPORT_MODE_FLAG = i32; +pub type OLECMDID_WINDOWSTATE_FLAG = i32; +pub type OLECMDTEXTF = i32; +pub type OLECONTF = i32; +pub type OLECREATE = u32; +pub type OLEDCFLAGS = i32; +pub type OLEGETMONIKER = i32; +pub type OLEIVERB = i32; +pub type OLELINKBIND = i32; +pub type OLEMISC = i32; +pub type OLERENDER = i32; +pub type OLEUIPASTEFLAG = i32; +pub type OLEUPDATE = i32; +pub type OLEVERBATTRIB = i32; +pub type OLEWHICHMK = i32; +pub type OLE_TRISTATE = i32; +pub type PAGEACTION_UI = i32; +pub type PARAMFLAGS = u16; +pub type PASTE_SPECIAL_FLAGS = u32; +pub type PICTUREATTRIBUTES = i32; +pub type PICTYPE = i16; +pub type POINTERINACTIVE = i32; +pub type PRINTFLAG = i32; +pub type PROPBAG2_TYPE = i32; +pub type PROPPAGESTATUS = i32; +pub type QACONTAINERFLAGS = i32; +pub type READYSTATE = i32; +pub type REGKIND = i32; +pub type SF_TYPE = i32; +pub type TYPEFLAGS = i32; +pub type UASFLAGS = i32; +pub type UI_CONVERT_FLAGS = u32; +pub type UPDFCACHE_FLAGS = u32; +pub type USERCLASSTYPE = i32; +pub type VARCMP = u32; +pub type VARFORMAT_FIRST_DAY = i32; +pub type VARFORMAT_FIRST_WEEK = i32; +pub type VARFORMAT_GROUP = i32; +pub type VARFORMAT_LEADING_DIGIT = i32; +pub type VARFORMAT_NAMED_FORMAT = i32; +pub type VARFORMAT_PARENTHESES = i32; +pub type VIEWSTATUS = i32; +pub type VIEW_OBJECT_PROPERTIES_FLAGS = u32; +pub type WPCSETTING = i32; +pub type XFORMCOORDS = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +pub struct ARRAYDESC { + pub tdescElem: super::Com::TYPEDESC, + pub cDims: u16, + pub rgbounds: [super::Com::SAFEARRAYBOUND; 1], +} +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for ARRAYDESC {} +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for ARRAYDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CADWORD { + pub cElems: u32, + pub pElems: *mut u32, +} +impl ::core::marker::Copy for CADWORD {} +impl ::core::clone::Clone for CADWORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CALPOLESTR { + pub cElems: u32, + pub pElems: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CALPOLESTR {} +impl ::core::clone::Clone for CALPOLESTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CAUUID { + pub cElems: u32, + pub pElems: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for CAUUID {} +impl ::core::clone::Clone for CAUUID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLEANLOCALSTORAGE { + pub pInterface: ::windows_sys::core::IUnknown, + pub pStorage: *mut ::core::ffi::c_void, + pub flags: u32, +} +impl ::core::marker::Copy for CLEANLOCALSTORAGE {} +impl ::core::clone::Clone for CLEANLOCALSTORAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct CONTROLINFO { + pub cb: u32, + pub hAccel: super::super::UI::WindowsAndMessaging::HACCEL, + pub cAccel: u16, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for CONTROLINFO {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for CONTROLINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DVASPECTINFO { + pub cb: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for DVASPECTINFO {} +impl ::core::clone::Clone for DVASPECTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DVEXTENTINFO { + pub cb: u32, + pub dwExtentMode: u32, + pub sizelProposed: super::super::Foundation::SIZE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DVEXTENTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DVEXTENTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct FONTDESC { + pub cbSizeofstruct: u32, + pub lpstrName: ::windows_sys::core::PWSTR, + pub cySize: super::Com::CY, + pub sWeight: i16, + pub sCharset: i16, + pub fItalic: super::super::Foundation::BOOL, + pub fUnderline: super::super::Foundation::BOOL, + pub fStrikethrough: super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for FONTDESC {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for FONTDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +pub struct INTERFACEDATA { + pub pmethdata: *mut METHODDATA, + pub cMembers: u32, +} +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for INTERFACEDATA {} +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for INTERFACEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LICINFO { + pub cbLicInfo: i32, + pub fRuntimeKeyAvail: super::super::Foundation::BOOL, + pub fLicVerified: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LICINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LICINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +pub struct METHODDATA { + pub szName: ::windows_sys::core::PWSTR, + pub ppdata: *mut PARAMDATA, + pub dispid: i32, + pub iMeth: u32, + pub cc: super::Com::CALLCONV, + pub cArgs: u32, + pub wFlags: u16, + pub vtReturn: super::Variant::VARENUM, +} +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for METHODDATA {} +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for METHODDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NUMPARSE { + pub cDig: i32, + pub dwInFlags: NUMPARSE_FLAGS, + pub dwOutFlags: NUMPARSE_FLAGS, + pub cchUsed: i32, + pub nBaseShift: i32, + pub nPwr10: i32, +} +impl ::core::marker::Copy for NUMPARSE {} +impl ::core::clone::Clone for NUMPARSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OBJECTDESCRIPTOR { + pub cbSize: u32, + pub clsid: ::windows_sys::core::GUID, + pub dwDrawAspect: u32, + pub sizel: super::super::Foundation::SIZE, + pub pointl: super::super::Foundation::POINTL, + pub dwStatus: u32, + pub dwFullUserTypeName: u32, + pub dwSrcOfCopy: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OBJECTDESCRIPTOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OBJECTDESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OCPFIPARAMS { + pub cbStructSize: u32, + pub hWndOwner: super::super::Foundation::HWND, + pub x: i32, + pub y: i32, + pub lpszCaption: ::windows_sys::core::PCWSTR, + pub cObjects: u32, + pub lplpUnk: *mut ::windows_sys::core::IUnknown, + pub cPages: u32, + pub lpPages: *mut ::windows_sys::core::GUID, + pub lcid: u32, + pub dispidInitialProperty: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OCPFIPARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OCPFIPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OLECMD { + pub cmdID: u32, + pub cmdf: u32, +} +impl ::core::marker::Copy for OLECMD {} +impl ::core::clone::Clone for OLECMD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OLECMDTEXT { + pub cmdtextf: u32, + pub cwActual: u32, + pub cwBuf: u32, + pub rgwz: [u16; 1], +} +impl ::core::marker::Copy for OLECMDTEXT {} +impl ::core::clone::Clone for OLECMDTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct OLEINPLACEFRAMEINFO { + pub cb: u32, + pub fMDIApp: super::super::Foundation::BOOL, + pub hwndFrame: super::super::Foundation::HWND, + pub haccel: super::super::UI::WindowsAndMessaging::HACCEL, + pub cAccelEntries: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OLEINPLACEFRAMEINFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OLEINPLACEFRAMEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OLEMENUGROUPWIDTHS { + pub width: [i32; 6], +} +impl ::core::marker::Copy for OLEMENUGROUPWIDTHS {} +impl ::core::clone::Clone for OLEMENUGROUPWIDTHS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Media\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media"))] +pub struct OLEUIBUSYA { + pub cbStruct: u32, + pub dwFlags: BUSY_DIALOG_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCSTR, + pub hResource: super::super::Foundation::HRSRC, + pub hTask: super::super::Media::HTASK, + pub lphWndDialog: *mut super::super::Foundation::HWND, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media"))] +impl ::core::marker::Copy for OLEUIBUSYA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media"))] +impl ::core::clone::Clone for OLEUIBUSYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Media\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media"))] +pub struct OLEUIBUSYW { + pub cbStruct: u32, + pub dwFlags: BUSY_DIALOG_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCWSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCWSTR, + pub hResource: super::super::Foundation::HRSRC, + pub hTask: super::super::Media::HTASK, + pub lphWndDialog: *mut super::super::Foundation::HWND, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media"))] +impl ::core::marker::Copy for OLEUIBUSYW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media"))] +impl ::core::clone::Clone for OLEUIBUSYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OLEUICHANGEICONA { + pub cbStruct: u32, + pub dwFlags: CHANGE_ICON_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCSTR, + pub hResource: super::super::Foundation::HRSRC, + pub hMetaPict: super::super::Foundation::HGLOBAL, + pub clsid: ::windows_sys::core::GUID, + pub szIconExe: [u8; 260], + pub cchIconExe: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OLEUICHANGEICONA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OLEUICHANGEICONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OLEUICHANGEICONW { + pub cbStruct: u32, + pub dwFlags: CHANGE_ICON_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCWSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCWSTR, + pub hResource: super::super::Foundation::HRSRC, + pub hMetaPict: super::super::Foundation::HGLOBAL, + pub clsid: ::windows_sys::core::GUID, + pub szIconExe: [u16; 260], + pub cchIconExe: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OLEUICHANGEICONW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OLEUICHANGEICONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls_Dialogs\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls_Dialogs"))] +pub struct OLEUICHANGESOURCEA { + pub cbStruct: u32, + pub dwFlags: CHANGE_SOURCE_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCSTR, + pub hResource: super::super::Foundation::HRSRC, + pub lpOFN: *mut super::super::UI::Controls::Dialogs::OPENFILENAMEA, + pub dwReserved1: [u32; 4], + pub lpOleUILinkContainer: IOleUILinkContainerA, + pub dwLink: u32, + pub lpszDisplayName: ::windows_sys::core::PSTR, + pub nFileLength: u32, + pub lpszFrom: ::windows_sys::core::PSTR, + pub lpszTo: ::windows_sys::core::PSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls_Dialogs"))] +impl ::core::marker::Copy for OLEUICHANGESOURCEA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls_Dialogs"))] +impl ::core::clone::Clone for OLEUICHANGESOURCEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls_Dialogs\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls_Dialogs"))] +pub struct OLEUICHANGESOURCEW { + pub cbStruct: u32, + pub dwFlags: CHANGE_SOURCE_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCWSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCWSTR, + pub hResource: super::super::Foundation::HRSRC, + pub lpOFN: *mut super::super::UI::Controls::Dialogs::OPENFILENAMEW, + pub dwReserved1: [u32; 4], + pub lpOleUILinkContainer: IOleUILinkContainerW, + pub dwLink: u32, + pub lpszDisplayName: ::windows_sys::core::PWSTR, + pub nFileLength: u32, + pub lpszFrom: ::windows_sys::core::PWSTR, + pub lpszTo: ::windows_sys::core::PWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls_Dialogs"))] +impl ::core::marker::Copy for OLEUICHANGESOURCEW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls_Dialogs"))] +impl ::core::clone::Clone for OLEUICHANGESOURCEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OLEUICONVERTA { + pub cbStruct: u32, + pub dwFlags: UI_CONVERT_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCSTR, + pub hResource: super::super::Foundation::HRSRC, + pub clsid: ::windows_sys::core::GUID, + pub clsidConvertDefault: ::windows_sys::core::GUID, + pub clsidActivateDefault: ::windows_sys::core::GUID, + pub clsidNew: ::windows_sys::core::GUID, + pub dvAspect: u32, + pub wFormat: u16, + pub fIsLinkedObject: super::super::Foundation::BOOL, + pub hMetaPict: super::super::Foundation::HGLOBAL, + pub lpszUserType: ::windows_sys::core::PSTR, + pub fObjectsIconChanged: super::super::Foundation::BOOL, + pub lpszDefLabel: ::windows_sys::core::PSTR, + pub cClsidExclude: u32, + pub lpClsidExclude: *mut ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OLEUICONVERTA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OLEUICONVERTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OLEUICONVERTW { + pub cbStruct: u32, + pub dwFlags: UI_CONVERT_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCWSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCWSTR, + pub hResource: super::super::Foundation::HRSRC, + pub clsid: ::windows_sys::core::GUID, + pub clsidConvertDefault: ::windows_sys::core::GUID, + pub clsidActivateDefault: ::windows_sys::core::GUID, + pub clsidNew: ::windows_sys::core::GUID, + pub dvAspect: u32, + pub wFormat: u16, + pub fIsLinkedObject: super::super::Foundation::BOOL, + pub hMetaPict: super::super::Foundation::HGLOBAL, + pub lpszUserType: ::windows_sys::core::PWSTR, + pub fObjectsIconChanged: super::super::Foundation::BOOL, + pub lpszDefLabel: ::windows_sys::core::PWSTR, + pub cClsidExclude: u32, + pub lpClsidExclude: *mut ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OLEUICONVERTW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OLEUICONVERTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OLEUIEDITLINKSA { + pub cbStruct: u32, + pub dwFlags: EDIT_LINKS_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCSTR, + pub hResource: super::super::Foundation::HRSRC, + pub lpOleUILinkContainer: IOleUILinkContainerA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OLEUIEDITLINKSA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OLEUIEDITLINKSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct OLEUIEDITLINKSW { + pub cbStruct: u32, + pub dwFlags: EDIT_LINKS_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCWSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCWSTR, + pub hResource: super::super::Foundation::HRSRC, + pub lpOleUILinkContainer: IOleUILinkContainerW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OLEUIEDITLINKSW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OLEUIEDITLINKSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct OLEUIGNRLPROPSA { + pub cbStruct: u32, + pub dwFlags: u32, + pub dwReserved1: [u32; 2], + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub dwReserved2: [u32; 3], + pub lpOP: *mut OLEUIOBJECTPROPSA, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OLEUIGNRLPROPSA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OLEUIGNRLPROPSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct OLEUIGNRLPROPSW { + pub cbStruct: u32, + pub dwFlags: u32, + pub dwReserved1: [u32; 2], + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub dwReserved2: [u32; 3], + pub lpOP: *mut OLEUIOBJECTPROPSW, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OLEUIGNRLPROPSW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OLEUIGNRLPROPSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +pub struct OLEUIINSERTOBJECTA { + pub cbStruct: u32, + pub dwFlags: INSERT_OBJECT_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCSTR, + pub hResource: super::super::Foundation::HRSRC, + pub clsid: ::windows_sys::core::GUID, + pub lpszFile: ::windows_sys::core::PSTR, + pub cchFile: u32, + pub cClsidExclude: u32, + pub lpClsidExclude: *mut ::windows_sys::core::GUID, + pub iid: ::windows_sys::core::GUID, + pub oleRender: u32, + pub lpFormatEtc: *mut super::Com::FORMATETC, + pub lpIOleClientSite: IOleClientSite, + pub lpIStorage: super::Com::StructuredStorage::IStorage, + pub ppvObj: *mut *mut ::core::ffi::c_void, + pub sc: i32, + pub hMetaPict: super::super::Foundation::HGLOBAL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::marker::Copy for OLEUIINSERTOBJECTA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::clone::Clone for OLEUIINSERTOBJECTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +pub struct OLEUIINSERTOBJECTW { + pub cbStruct: u32, + pub dwFlags: INSERT_OBJECT_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCWSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCWSTR, + pub hResource: super::super::Foundation::HRSRC, + pub clsid: ::windows_sys::core::GUID, + pub lpszFile: ::windows_sys::core::PWSTR, + pub cchFile: u32, + pub cClsidExclude: u32, + pub lpClsidExclude: *mut ::windows_sys::core::GUID, + pub iid: ::windows_sys::core::GUID, + pub oleRender: u32, + pub lpFormatEtc: *mut super::Com::FORMATETC, + pub lpIOleClientSite: IOleClientSite, + pub lpIStorage: super::Com::StructuredStorage::IStorage, + pub ppvObj: *mut *mut ::core::ffi::c_void, + pub sc: i32, + pub hMetaPict: super::super::Foundation::HGLOBAL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::marker::Copy for OLEUIINSERTOBJECTW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::clone::Clone for OLEUIINSERTOBJECTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct OLEUILINKPROPSA { + pub cbStruct: u32, + pub dwFlags: u32, + pub dwReserved1: [u32; 2], + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub dwReserved2: [u32; 3], + pub lpOP: *mut OLEUIOBJECTPROPSA, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OLEUILINKPROPSA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OLEUILINKPROPSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct OLEUILINKPROPSW { + pub cbStruct: u32, + pub dwFlags: u32, + pub dwReserved1: [u32; 2], + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub dwReserved2: [u32; 3], + pub lpOP: *mut OLEUIOBJECTPROPSW, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OLEUILINKPROPSW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OLEUILINKPROPSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct OLEUIOBJECTPROPSA { + pub cbStruct: u32, + pub dwFlags: OBJECT_PROPERTIES_FLAGS, + pub lpPS: *mut super::super::UI::Controls::PROPSHEETHEADERA_V2, + pub dwObject: u32, + pub lpObjInfo: IOleUIObjInfoA, + pub dwLink: u32, + pub lpLinkInfo: IOleUILinkInfoA, + pub lpGP: *mut OLEUIGNRLPROPSA, + pub lpVP: *mut OLEUIVIEWPROPSA, + pub lpLP: *mut OLEUILINKPROPSA, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OLEUIOBJECTPROPSA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OLEUIOBJECTPROPSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct OLEUIOBJECTPROPSW { + pub cbStruct: u32, + pub dwFlags: OBJECT_PROPERTIES_FLAGS, + pub lpPS: *mut super::super::UI::Controls::PROPSHEETHEADERW_V2, + pub dwObject: u32, + pub lpObjInfo: IOleUIObjInfoW, + pub dwLink: u32, + pub lpLinkInfo: IOleUILinkInfoW, + pub lpGP: *mut OLEUIGNRLPROPSW, + pub lpVP: *mut OLEUIVIEWPROPSW, + pub lpLP: *mut OLEUILINKPROPSW, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OLEUIOBJECTPROPSW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OLEUIOBJECTPROPSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct OLEUIPASTEENTRYA { + pub fmtetc: super::Com::FORMATETC, + pub lpstrFormatName: ::windows_sys::core::PCSTR, + pub lpstrResultText: ::windows_sys::core::PCSTR, + pub dwFlags: u32, + pub dwScratchSpace: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for OLEUIPASTEENTRYA {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for OLEUIPASTEENTRYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct OLEUIPASTEENTRYW { + pub fmtetc: super::Com::FORMATETC, + pub lpstrFormatName: ::windows_sys::core::PCWSTR, + pub lpstrResultText: ::windows_sys::core::PCWSTR, + pub dwFlags: u32, + pub dwScratchSpace: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for OLEUIPASTEENTRYW {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for OLEUIPASTEENTRYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct OLEUIPASTESPECIALA { + pub cbStruct: u32, + pub dwFlags: PASTE_SPECIAL_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCSTR, + pub hResource: super::super::Foundation::HRSRC, + pub lpSrcDataObj: super::Com::IDataObject, + pub arrPasteEntries: *mut OLEUIPASTEENTRYA, + pub cPasteEntries: i32, + pub arrLinkTypes: *mut u32, + pub cLinkTypes: i32, + pub cClsidExclude: u32, + pub lpClsidExclude: *mut ::windows_sys::core::GUID, + pub nSelectedIndex: i32, + pub fLink: super::super::Foundation::BOOL, + pub hMetaPict: super::super::Foundation::HGLOBAL, + pub sizel: super::super::Foundation::SIZE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for OLEUIPASTESPECIALA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for OLEUIPASTESPECIALA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct OLEUIPASTESPECIALW { + pub cbStruct: u32, + pub dwFlags: PASTE_SPECIAL_FLAGS, + pub hWndOwner: super::super::Foundation::HWND, + pub lpszCaption: ::windows_sys::core::PCWSTR, + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszTemplate: ::windows_sys::core::PCWSTR, + pub hResource: super::super::Foundation::HRSRC, + pub lpSrcDataObj: super::Com::IDataObject, + pub arrPasteEntries: *mut OLEUIPASTEENTRYW, + pub cPasteEntries: i32, + pub arrLinkTypes: *mut u32, + pub cLinkTypes: i32, + pub cClsidExclude: u32, + pub lpClsidExclude: *mut ::windows_sys::core::GUID, + pub nSelectedIndex: i32, + pub fLink: super::super::Foundation::BOOL, + pub hMetaPict: super::super::Foundation::HGLOBAL, + pub sizel: super::super::Foundation::SIZE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for OLEUIPASTESPECIALW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for OLEUIPASTESPECIALW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct OLEUIVIEWPROPSA { + pub cbStruct: u32, + pub dwFlags: VIEW_OBJECT_PROPERTIES_FLAGS, + pub dwReserved1: [u32; 2], + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub dwReserved2: [u32; 3], + pub lpOP: *mut OLEUIOBJECTPROPSA, + pub nScaleMin: i32, + pub nScaleMax: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OLEUIVIEWPROPSA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OLEUIVIEWPROPSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct OLEUIVIEWPROPSW { + pub cbStruct: u32, + pub dwFlags: VIEW_OBJECT_PROPERTIES_FLAGS, + pub dwReserved1: [u32; 2], + pub lpfnHook: LPFNOLEUIHOOK, + pub lCustData: super::super::Foundation::LPARAM, + pub dwReserved2: [u32; 3], + pub lpOP: *mut OLEUIOBJECTPROPSW, + pub nScaleMin: i32, + pub nScaleMax: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for OLEUIVIEWPROPSW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for OLEUIVIEWPROPSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct OLEVERB { + pub lVerb: OLEIVERB, + pub lpszVerbName: ::windows_sys::core::PWSTR, + pub fuFlags: super::super::UI::WindowsAndMessaging::MENU_ITEM_FLAGS, + pub grfAttribs: u32, +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for OLEVERB {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for OLEVERB { + fn clone(&self) -> Self { + *self + } +} +pub type OLE_HANDLE = u32; +#[repr(C)] +pub struct PAGERANGE { + pub nFromPage: i32, + pub nToPage: i32, +} +impl ::core::marker::Copy for PAGERANGE {} +impl ::core::clone::Clone for PAGERANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PAGESET { + pub cbStruct: u32, + pub fOddPages: super::super::Foundation::BOOL, + pub fEvenPages: super::super::Foundation::BOOL, + pub cPageRange: u32, + pub rgPages: [PAGERANGE; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PAGESET {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PAGESET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Variant\"`"] +#[cfg(feature = "Win32_System_Variant")] +pub struct PARAMDATA { + pub szName: ::windows_sys::core::PWSTR, + pub vt: super::Variant::VARENUM, +} +#[cfg(feature = "Win32_System_Variant")] +impl ::core::marker::Copy for PARAMDATA {} +#[cfg(feature = "Win32_System_Variant")] +impl ::core::clone::Clone for PARAMDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +pub struct PARAMDESC { + pub pparamdescex: *mut PARAMDESCEX, + pub wParamFlags: PARAMFLAGS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for PARAMDESC {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for PARAMDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +pub struct PARAMDESCEX { + pub cBytes: u32, + pub varDefaultValue: super::Variant::VARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for PARAMDESCEX {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for PARAMDESCEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PICTDESC { + pub cbSizeofstruct: u32, + pub picType: u32, + pub Anonymous: PICTDESC_0, +} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PICTDESC {} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PICTDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PICTDESC_0 { + pub bmp: PICTDESC_0_0, + pub wmf: PICTDESC_0_3, + pub icon: PICTDESC_0_2, + pub emf: PICTDESC_0_1, +} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PICTDESC_0 {} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PICTDESC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PICTDESC_0_0 { + pub hbitmap: super::super::Graphics::Gdi::HBITMAP, + pub hpal: super::super::Graphics::Gdi::HPALETTE, +} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PICTDESC_0_0 {} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PICTDESC_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PICTDESC_0_1 { + pub hemf: super::super::Graphics::Gdi::HENHMETAFILE, +} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PICTDESC_0_1 {} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PICTDESC_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PICTDESC_0_2 { + pub hicon: super::super::UI::WindowsAndMessaging::HICON, +} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PICTDESC_0_2 {} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PICTDESC_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PICTDESC_0_3 { + pub hmeta: super::super::Graphics::Gdi::HMETAFILE, + pub xExt: i32, + pub yExt: i32, +} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PICTDESC_0_3 {} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PICTDESC_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POINTF { + pub x: f32, + pub y: f32, +} +impl ::core::marker::Copy for POINTF {} +impl ::core::clone::Clone for POINTF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROPPAGEINFO { + pub cb: u32, + pub pszTitle: ::windows_sys::core::PWSTR, + pub size: super::super::Foundation::SIZE, + pub pszDocString: ::windows_sys::core::PWSTR, + pub pszHelpFile: ::windows_sys::core::PWSTR, + pub dwHelpContext: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROPPAGEINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROPPAGEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))] +pub struct QACONTAINER { + pub cbSize: u32, + pub pClientSite: IOleClientSite, + pub pAdviseSink: IAdviseSinkEx, + pub pPropertyNotifySink: IPropertyNotifySink, + pub pUnkEventSink: ::windows_sys::core::IUnknown, + pub dwAmbientFlags: u32, + pub colorFore: u32, + pub colorBack: u32, + pub pFont: IFont, + pub pUndoMgr: IOleUndoManager, + pub dwAppearance: u32, + pub lcid: i32, + pub hpal: super::super::Graphics::Gdi::HPALETTE, + pub pBindHost: super::Com::IBindHost, + pub pOleControlSite: IOleControlSite, + pub pServiceProvider: super::Com::IServiceProvider, +} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for QACONTAINER {} +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for QACONTAINER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QACONTROL { + pub cbSize: u32, + pub dwMiscStatus: u32, + pub dwViewStatus: u32, + pub dwEventCookie: u32, + pub dwPropNotifyCookie: u32, + pub dwPointerActivationPolicy: u32, +} +impl ::core::marker::Copy for QACONTROL {} +impl ::core::clone::Clone for QACONTROL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SAFEARRAYUNION { + pub sfType: u32, + pub u: SAFEARRAYUNION_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SAFEARRAYUNION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SAFEARRAYUNION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub union SAFEARRAYUNION_0 { + pub BstrStr: SAFEARR_BSTR, + pub UnknownStr: SAFEARR_UNKNOWN, + pub DispatchStr: SAFEARR_DISPATCH, + pub VariantStr: SAFEARR_VARIANT, + pub RecordStr: SAFEARR_BRECORD, + pub HaveIidStr: SAFEARR_HAVEIID, + pub ByteStr: super::Com::BYTE_SIZEDARR, + pub WordStr: super::Com::WORD_SIZEDARR, + pub LongStr: super::Com::DWORD_SIZEDARR, + pub HyperStr: super::Com::HYPER_SIZEDARR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SAFEARRAYUNION_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SAFEARRAYUNION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SAFEARR_BRECORD { + pub Size: u32, + pub aRecord: *mut *mut _wireBRECORD, +} +impl ::core::marker::Copy for SAFEARR_BRECORD {} +impl ::core::clone::Clone for SAFEARR_BRECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct SAFEARR_BSTR { + pub Size: u32, + pub aBstr: *mut *mut super::Com::FLAGGED_WORD_BLOB, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for SAFEARR_BSTR {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for SAFEARR_BSTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct SAFEARR_DISPATCH { + pub Size: u32, + pub apDispatch: *mut super::Com::IDispatch, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for SAFEARR_DISPATCH {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for SAFEARR_DISPATCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SAFEARR_HAVEIID { + pub Size: u32, + pub apUnknown: *mut ::windows_sys::core::IUnknown, + pub iid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for SAFEARR_HAVEIID {} +impl ::core::clone::Clone for SAFEARR_HAVEIID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SAFEARR_UNKNOWN { + pub Size: u32, + pub apUnknown: *mut ::windows_sys::core::IUnknown, +} +impl ::core::marker::Copy for SAFEARR_UNKNOWN {} +impl ::core::clone::Clone for SAFEARR_UNKNOWN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SAFEARR_VARIANT { + pub Size: u32, + pub aVariant: *mut *mut _wireVARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SAFEARR_VARIANT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SAFEARR_VARIANT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct UDATE { + pub st: super::super::Foundation::SYSTEMTIME, + pub wDayOfYear: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for UDATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for UDATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _wireBRECORD { + pub fFlags: u32, + pub clSize: u32, + pub pRecInfo: IRecordInfo, + pub pRecord: *mut u8, +} +impl ::core::marker::Copy for _wireBRECORD {} +impl ::core::clone::Clone for _wireBRECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct _wireSAFEARRAY { + pub cDims: u16, + pub fFeatures: u16, + pub cbElements: u32, + pub cLocks: u32, + pub uArrayStructs: SAFEARRAYUNION, + pub rgsabound: [super::Com::SAFEARRAYBOUND; 1], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for _wireSAFEARRAY {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for _wireSAFEARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct _wireVARIANT { + pub clSize: u32, + pub rpcReserved: u32, + pub vt: u16, + pub wReserved1: u16, + pub wReserved2: u16, + pub wReserved3: u16, + pub Anonymous: _wireVARIANT_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for _wireVARIANT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for _wireVARIANT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub union _wireVARIANT_0 { + pub llVal: i64, + pub lVal: i32, + pub bVal: u8, + pub iVal: i16, + pub fltVal: f32, + pub dblVal: f64, + pub boolVal: super::super::Foundation::VARIANT_BOOL, + pub scode: i32, + pub cyVal: super::Com::CY, + pub date: f64, + pub bstrVal: *mut super::Com::FLAGGED_WORD_BLOB, + pub punkVal: ::windows_sys::core::IUnknown, + pub pdispVal: super::Com::IDispatch, + pub parray: *mut *mut _wireSAFEARRAY, + pub brecVal: *mut _wireBRECORD, + pub pbVal: *mut u8, + pub piVal: *mut i16, + pub plVal: *mut i32, + pub pllVal: *mut i64, + pub pfltVal: *mut f32, + pub pdblVal: *mut f64, + pub pboolVal: *mut super::super::Foundation::VARIANT_BOOL, + pub pscode: *mut i32, + pub pcyVal: *mut super::Com::CY, + pub pdate: *mut f64, + pub pbstrVal: *mut *mut super::Com::FLAGGED_WORD_BLOB, + pub ppunkVal: *mut ::windows_sys::core::IUnknown, + pub ppdispVal: *mut super::Com::IDispatch, + pub pparray: *mut *mut *mut _wireSAFEARRAY, + pub pvarVal: *mut *mut _wireVARIANT, + pub cVal: u8, + pub uiVal: u16, + pub ulVal: u32, + pub ullVal: u64, + pub intVal: i32, + pub uintVal: u32, + pub decVal: super::super::Foundation::DECIMAL, + pub pdecVal: *mut super::super::Foundation::DECIMAL, + pub pcVal: ::windows_sys::core::PSTR, + pub puiVal: *mut u16, + pub pulVal: *mut u32, + pub pullVal: *mut u64, + pub pintVal: *mut i32, + pub puintVal: *mut u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for _wireVARIANT_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for _wireVARIANT_0 { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFNOLEUIHOOK = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/PasswordManagement/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/PasswordManagement/mod.rs new file mode 100644 index 000000000..dac213f7d --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/PasswordManagement/mod.rs @@ -0,0 +1,44 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MSChapSrvChangePassword(servername : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, lmoldpresent : super::super::Foundation:: BOOLEAN, lmoldowfpassword : *const LM_OWF_PASSWORD, lmnewowfpassword : *const LM_OWF_PASSWORD, ntoldowfpassword : *const LM_OWF_PASSWORD, ntnewowfpassword : *const LM_OWF_PASSWORD) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MSChapSrvChangePassword2(servername : ::windows_sys::core::PCWSTR, username : ::windows_sys::core::PCWSTR, newpasswordencryptedwitholdnt : *const SAMPR_ENCRYPTED_USER_PASSWORD, oldntowfpasswordencryptedwithnewnt : *const ENCRYPTED_LM_OWF_PASSWORD, lmpresent : super::super::Foundation:: BOOLEAN, newpasswordencryptedwitholdlm : *const SAMPR_ENCRYPTED_USER_PASSWORD, oldlmowfpasswordencryptedwithnewlmornt : *const ENCRYPTED_LM_OWF_PASSWORD) -> u32); +#[repr(C)] +pub struct CYPHER_BLOCK { + pub data: [u8; 8], +} +impl ::core::marker::Copy for CYPHER_BLOCK {} +impl ::core::clone::Clone for CYPHER_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENCRYPTED_LM_OWF_PASSWORD { + pub data: [CYPHER_BLOCK; 2], +} +impl ::core::marker::Copy for ENCRYPTED_LM_OWF_PASSWORD {} +impl ::core::clone::Clone for ENCRYPTED_LM_OWF_PASSWORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LM_OWF_PASSWORD { + pub data: [CYPHER_BLOCK; 2], +} +impl ::core::marker::Copy for LM_OWF_PASSWORD {} +impl ::core::clone::Clone for LM_OWF_PASSWORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SAMPR_ENCRYPTED_USER_PASSWORD { + pub Buffer: [u8; 516], +} +impl ::core::marker::Copy for SAMPR_ENCRYPTED_USER_PASSWORD {} +impl ::core::clone::Clone for SAMPR_ENCRYPTED_USER_PASSWORD { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Performance/HardwareCounterProfiling/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Performance/HardwareCounterProfiling/mod.rs new file mode 100644 index 000000000..82c7a2cd2 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Performance/HardwareCounterProfiling/mod.rs @@ -0,0 +1,41 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DisableThreadProfiling(performancedatahandle : super::super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableThreadProfiling(threadhandle : super::super::super::Foundation:: HANDLE, flags : u32, hardwarecounters : u64, performancedatahandle : *mut super::super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryThreadProfiling(threadhandle : super::super::super::Foundation:: HANDLE, enabled : *mut super::super::super::Foundation:: BOOLEAN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadThreadProfilingData(performancedatahandle : super::super::super::Foundation:: HANDLE, flags : u32, performancedata : *mut PERFORMANCE_DATA) -> u32); +pub const MaxHardwareCounterType: HARDWARE_COUNTER_TYPE = 1i32; +pub const PMCCounter: HARDWARE_COUNTER_TYPE = 0i32; +pub type HARDWARE_COUNTER_TYPE = i32; +#[repr(C)] +pub struct HARDWARE_COUNTER_DATA { + pub Type: HARDWARE_COUNTER_TYPE, + pub Reserved: u32, + pub Value: u64, +} +impl ::core::marker::Copy for HARDWARE_COUNTER_DATA {} +impl ::core::clone::Clone for HARDWARE_COUNTER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERFORMANCE_DATA { + pub Size: u16, + pub Version: u8, + pub HwCountersCount: u8, + pub ContextSwitchCount: u32, + pub WaitReasonBitMap: u64, + pub CycleTime: u64, + pub RetryCount: u32, + pub Reserved: u32, + pub HwCounters: [HARDWARE_COUNTER_DATA; 16], +} +impl ::core::marker::Copy for PERFORMANCE_DATA {} +impl ::core::clone::Clone for PERFORMANCE_DATA { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Performance/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Performance/mod.rs new file mode 100644 index 000000000..9db1b23f7 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Performance/mod.rs @@ -0,0 +1,1523 @@ +#[cfg(feature = "Win32_System_Performance_HardwareCounterProfiling")] +#[doc = "Required features: `\"Win32_System_Performance_HardwareCounterProfiling\"`"] +pub mod HardwareCounterProfiling; +::windows_targets::link!("loadperf.dll" "system" fn BackupPerfRegistryToFileW(szfilename : ::windows_sys::core::PCWSTR, szcommentstring : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("loadperf.dll" "system" fn InstallPerfDllA(szcomputername : ::windows_sys::core::PCSTR, lpinifile : ::windows_sys::core::PCSTR, dwflags : usize) -> u32); +::windows_targets::link!("loadperf.dll" "system" fn InstallPerfDllW(szcomputername : ::windows_sys::core::PCWSTR, lpinifile : ::windows_sys::core::PCWSTR, dwflags : usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("loadperf.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadPerfCounterTextStringsA(lpcommandline : ::windows_sys::core::PCSTR, bquietmodearg : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("loadperf.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadPerfCounterTextStringsW(lpcommandline : ::windows_sys::core::PCWSTR, bquietmodearg : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhAddCounterA(hquery : isize, szfullcounterpath : ::windows_sys::core::PCSTR, dwuserdata : usize, phcounter : *mut isize) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhAddCounterW(hquery : isize, szfullcounterpath : ::windows_sys::core::PCWSTR, dwuserdata : usize, phcounter : *mut isize) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhAddEnglishCounterA(hquery : isize, szfullcounterpath : ::windows_sys::core::PCSTR, dwuserdata : usize, phcounter : *mut isize) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhAddEnglishCounterW(hquery : isize, szfullcounterpath : ::windows_sys::core::PCWSTR, dwuserdata : usize, phcounter : *mut isize) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhBindInputDataSourceA(phdatasource : *mut isize, logfilenamelist : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhBindInputDataSourceW(phdatasource : *mut isize, logfilenamelist : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhBrowseCountersA(pbrowsedlgdata : *const PDH_BROWSE_DLG_CONFIG_A) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhBrowseCountersHA(pbrowsedlgdata : *const PDH_BROWSE_DLG_CONFIG_HA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhBrowseCountersHW(pbrowsedlgdata : *const PDH_BROWSE_DLG_CONFIG_HW) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhBrowseCountersW(pbrowsedlgdata : *const PDH_BROWSE_DLG_CONFIG_W) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhCalculateCounterFromRawValue(hcounter : isize, dwformat : PDH_FMT, rawvalue1 : *const PDH_RAW_COUNTER, rawvalue2 : *const PDH_RAW_COUNTER, fmtvalue : *mut PDH_FMT_COUNTERVALUE) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhCloseLog(hlog : isize, dwflags : u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhCloseQuery(hquery : isize) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhCollectQueryData(hquery : isize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhCollectQueryDataEx(hquery : isize, dwintervaltime : u32, hnewdataevent : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhCollectQueryDataWithTime(hquery : isize, plltimestamp : *mut i64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhComputeCounterStatistics(hcounter : isize, dwformat : PDH_FMT, dwfirstentry : u32, dwnumentries : u32, lprawvaluearray : *const PDH_RAW_COUNTER, data : *mut PDH_STATISTICS) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhConnectMachineA(szmachinename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhConnectMachineW(szmachinename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhCreateSQLTablesA(szdatasource : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhCreateSQLTablesW(szdatasource : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhEnumLogSetNamesA(szdatasource : ::windows_sys::core::PCSTR, mszdatasetnamelist : ::windows_sys::core::PSTR, pcchbufferlength : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhEnumLogSetNamesW(szdatasource : ::windows_sys::core::PCWSTR, mszdatasetnamelist : ::windows_sys::core::PWSTR, pcchbufferlength : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhEnumMachinesA(szdatasource : ::windows_sys::core::PCSTR, mszmachinelist : ::windows_sys::core::PSTR, pcchbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhEnumMachinesHA(hdatasource : isize, mszmachinelist : ::windows_sys::core::PSTR, pcchbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhEnumMachinesHW(hdatasource : isize, mszmachinelist : ::windows_sys::core::PWSTR, pcchbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhEnumMachinesW(szdatasource : ::windows_sys::core::PCWSTR, mszmachinelist : ::windows_sys::core::PWSTR, pcchbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhEnumObjectItemsA(szdatasource : ::windows_sys::core::PCSTR, szmachinename : ::windows_sys::core::PCSTR, szobjectname : ::windows_sys::core::PCSTR, mszcounterlist : ::windows_sys::core::PSTR, pcchcounterlistlength : *mut u32, mszinstancelist : ::windows_sys::core::PSTR, pcchinstancelistlength : *mut u32, dwdetaillevel : PERF_DETAIL, dwflags : u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhEnumObjectItemsHA(hdatasource : isize, szmachinename : ::windows_sys::core::PCSTR, szobjectname : ::windows_sys::core::PCSTR, mszcounterlist : ::windows_sys::core::PSTR, pcchcounterlistlength : *mut u32, mszinstancelist : ::windows_sys::core::PSTR, pcchinstancelistlength : *mut u32, dwdetaillevel : PERF_DETAIL, dwflags : u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhEnumObjectItemsHW(hdatasource : isize, szmachinename : ::windows_sys::core::PCWSTR, szobjectname : ::windows_sys::core::PCWSTR, mszcounterlist : ::windows_sys::core::PWSTR, pcchcounterlistlength : *mut u32, mszinstancelist : ::windows_sys::core::PWSTR, pcchinstancelistlength : *mut u32, dwdetaillevel : PERF_DETAIL, dwflags : u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhEnumObjectItemsW(szdatasource : ::windows_sys::core::PCWSTR, szmachinename : ::windows_sys::core::PCWSTR, szobjectname : ::windows_sys::core::PCWSTR, mszcounterlist : ::windows_sys::core::PWSTR, pcchcounterlistlength : *mut u32, mszinstancelist : ::windows_sys::core::PWSTR, pcchinstancelistlength : *mut u32, dwdetaillevel : PERF_DETAIL, dwflags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhEnumObjectsA(szdatasource : ::windows_sys::core::PCSTR, szmachinename : ::windows_sys::core::PCSTR, mszobjectlist : ::windows_sys::core::PSTR, pcchbuffersize : *mut u32, dwdetaillevel : PERF_DETAIL, brefresh : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhEnumObjectsHA(hdatasource : isize, szmachinename : ::windows_sys::core::PCSTR, mszobjectlist : ::windows_sys::core::PSTR, pcchbuffersize : *mut u32, dwdetaillevel : PERF_DETAIL, brefresh : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhEnumObjectsHW(hdatasource : isize, szmachinename : ::windows_sys::core::PCWSTR, mszobjectlist : ::windows_sys::core::PWSTR, pcchbuffersize : *mut u32, dwdetaillevel : PERF_DETAIL, brefresh : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhEnumObjectsW(szdatasource : ::windows_sys::core::PCWSTR, szmachinename : ::windows_sys::core::PCWSTR, mszobjectlist : ::windows_sys::core::PWSTR, pcchbuffersize : *mut u32, dwdetaillevel : PERF_DETAIL, brefresh : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhExpandCounterPathA(szwildcardpath : ::windows_sys::core::PCSTR, mszexpandedpathlist : ::windows_sys::core::PSTR, pcchpathlistlength : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhExpandCounterPathW(szwildcardpath : ::windows_sys::core::PCWSTR, mszexpandedpathlist : ::windows_sys::core::PWSTR, pcchpathlistlength : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhExpandWildCardPathA(szdatasource : ::windows_sys::core::PCSTR, szwildcardpath : ::windows_sys::core::PCSTR, mszexpandedpathlist : ::windows_sys::core::PSTR, pcchpathlistlength : *mut u32, dwflags : u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhExpandWildCardPathHA(hdatasource : isize, szwildcardpath : ::windows_sys::core::PCSTR, mszexpandedpathlist : ::windows_sys::core::PSTR, pcchpathlistlength : *mut u32, dwflags : u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhExpandWildCardPathHW(hdatasource : isize, szwildcardpath : ::windows_sys::core::PCWSTR, mszexpandedpathlist : ::windows_sys::core::PWSTR, pcchpathlistlength : *mut u32, dwflags : u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhExpandWildCardPathW(szdatasource : ::windows_sys::core::PCWSTR, szwildcardpath : ::windows_sys::core::PCWSTR, mszexpandedpathlist : ::windows_sys::core::PWSTR, pcchpathlistlength : *mut u32, dwflags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhFormatFromRawValue(dwcountertype : u32, dwformat : PDH_FMT, ptimebase : *const i64, prawvalue1 : *const PDH_RAW_COUNTER, prawvalue2 : *const PDH_RAW_COUNTER, pfmtvalue : *mut PDH_FMT_COUNTERVALUE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhGetCounterInfoA(hcounter : isize, bretrieveexplaintext : super::super::Foundation:: BOOLEAN, pdwbuffersize : *mut u32, lpbuffer : *mut PDH_COUNTER_INFO_A) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhGetCounterInfoW(hcounter : isize, bretrieveexplaintext : super::super::Foundation:: BOOLEAN, pdwbuffersize : *mut u32, lpbuffer : *mut PDH_COUNTER_INFO_W) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetCounterTimeBase(hcounter : isize, ptimebase : *mut i64) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetDataSourceTimeRangeA(szdatasource : ::windows_sys::core::PCSTR, pdwnumentries : *mut u32, pinfo : *mut PDH_TIME_INFO, pdwbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetDataSourceTimeRangeH(hdatasource : isize, pdwnumentries : *mut u32, pinfo : *mut PDH_TIME_INFO, pdwbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetDataSourceTimeRangeW(szdatasource : ::windows_sys::core::PCWSTR, pdwnumentries : *mut u32, pinfo : *mut PDH_TIME_INFO, pdwbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetDefaultPerfCounterA(szdatasource : ::windows_sys::core::PCSTR, szmachinename : ::windows_sys::core::PCSTR, szobjectname : ::windows_sys::core::PCSTR, szdefaultcountername : ::windows_sys::core::PSTR, pcchbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetDefaultPerfCounterHA(hdatasource : isize, szmachinename : ::windows_sys::core::PCSTR, szobjectname : ::windows_sys::core::PCSTR, szdefaultcountername : ::windows_sys::core::PSTR, pcchbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetDefaultPerfCounterHW(hdatasource : isize, szmachinename : ::windows_sys::core::PCWSTR, szobjectname : ::windows_sys::core::PCWSTR, szdefaultcountername : ::windows_sys::core::PWSTR, pcchbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetDefaultPerfCounterW(szdatasource : ::windows_sys::core::PCWSTR, szmachinename : ::windows_sys::core::PCWSTR, szobjectname : ::windows_sys::core::PCWSTR, szdefaultcountername : ::windows_sys::core::PWSTR, pcchbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetDefaultPerfObjectA(szdatasource : ::windows_sys::core::PCSTR, szmachinename : ::windows_sys::core::PCSTR, szdefaultobjectname : ::windows_sys::core::PSTR, pcchbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetDefaultPerfObjectHA(hdatasource : isize, szmachinename : ::windows_sys::core::PCSTR, szdefaultobjectname : ::windows_sys::core::PSTR, pcchbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetDefaultPerfObjectHW(hdatasource : isize, szmachinename : ::windows_sys::core::PCWSTR, szdefaultobjectname : ::windows_sys::core::PWSTR, pcchbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetDefaultPerfObjectW(szdatasource : ::windows_sys::core::PCWSTR, szmachinename : ::windows_sys::core::PCWSTR, szdefaultobjectname : ::windows_sys::core::PWSTR, pcchbuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetDllVersion(lpdwversion : *mut PDH_DLL_VERSION) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetFormattedCounterArrayA(hcounter : isize, dwformat : PDH_FMT, lpdwbuffersize : *mut u32, lpdwitemcount : *mut u32, itembuffer : *mut PDH_FMT_COUNTERVALUE_ITEM_A) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetFormattedCounterArrayW(hcounter : isize, dwformat : PDH_FMT, lpdwbuffersize : *mut u32, lpdwitemcount : *mut u32, itembuffer : *mut PDH_FMT_COUNTERVALUE_ITEM_W) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetFormattedCounterValue(hcounter : isize, dwformat : PDH_FMT, lpdwtype : *mut u32, pvalue : *mut PDH_FMT_COUNTERVALUE) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetLogFileSize(hlog : isize, llsize : *mut i64) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhGetLogSetGUID(hlog : isize, pguid : *mut ::windows_sys::core::GUID, prunid : *mut i32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhGetRawCounterArrayA(hcounter : isize, lpdwbuffersize : *mut u32, lpdwitemcount : *mut u32, itembuffer : *mut PDH_RAW_COUNTER_ITEM_A) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhGetRawCounterArrayW(hcounter : isize, lpdwbuffersize : *mut u32, lpdwitemcount : *mut u32, itembuffer : *mut PDH_RAW_COUNTER_ITEM_W) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhGetRawCounterValue(hcounter : isize, lpdwtype : *mut u32, pvalue : *mut PDH_RAW_COUNTER) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhIsRealTimeQuery(hquery : isize) -> super::super::Foundation:: BOOL); +::windows_targets::link!("pdh.dll" "system" fn PdhLookupPerfIndexByNameA(szmachinename : ::windows_sys::core::PCSTR, sznamebuffer : ::windows_sys::core::PCSTR, pdwindex : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhLookupPerfIndexByNameW(szmachinename : ::windows_sys::core::PCWSTR, sznamebuffer : ::windows_sys::core::PCWSTR, pdwindex : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhLookupPerfNameByIndexA(szmachinename : ::windows_sys::core::PCSTR, dwnameindex : u32, sznamebuffer : ::windows_sys::core::PSTR, pcchnamebuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhLookupPerfNameByIndexW(szmachinename : ::windows_sys::core::PCWSTR, dwnameindex : u32, sznamebuffer : ::windows_sys::core::PWSTR, pcchnamebuffersize : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhMakeCounterPathA(pcounterpathelements : *const PDH_COUNTER_PATH_ELEMENTS_A, szfullpathbuffer : ::windows_sys::core::PSTR, pcchbuffersize : *mut u32, dwflags : PDH_PATH_FLAGS) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhMakeCounterPathW(pcounterpathelements : *const PDH_COUNTER_PATH_ELEMENTS_W, szfullpathbuffer : ::windows_sys::core::PWSTR, pcchbuffersize : *mut u32, dwflags : PDH_PATH_FLAGS) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhOpenLogA(szlogfilename : ::windows_sys::core::PCSTR, dwaccessflags : PDH_LOG, lpdwlogtype : *mut PDH_LOG_TYPE, hquery : isize, dwmaxsize : u32, szusercaption : ::windows_sys::core::PCSTR, phlog : *mut isize) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhOpenLogW(szlogfilename : ::windows_sys::core::PCWSTR, dwaccessflags : PDH_LOG, lpdwlogtype : *mut PDH_LOG_TYPE, hquery : isize, dwmaxsize : u32, szusercaption : ::windows_sys::core::PCWSTR, phlog : *mut isize) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhOpenQueryA(szdatasource : ::windows_sys::core::PCSTR, dwuserdata : usize, phquery : *mut isize) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhOpenQueryH(hdatasource : isize, dwuserdata : usize, phquery : *mut isize) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhOpenQueryW(szdatasource : ::windows_sys::core::PCWSTR, dwuserdata : usize, phquery : *mut isize) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhParseCounterPathA(szfullpathbuffer : ::windows_sys::core::PCSTR, pcounterpathelements : *mut PDH_COUNTER_PATH_ELEMENTS_A, pdwbuffersize : *mut u32, dwflags : u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhParseCounterPathW(szfullpathbuffer : ::windows_sys::core::PCWSTR, pcounterpathelements : *mut PDH_COUNTER_PATH_ELEMENTS_W, pdwbuffersize : *mut u32, dwflags : u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhParseInstanceNameA(szinstancestring : ::windows_sys::core::PCSTR, szinstancename : ::windows_sys::core::PSTR, pcchinstancenamelength : *mut u32, szparentname : ::windows_sys::core::PSTR, pcchparentnamelength : *mut u32, lpindex : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhParseInstanceNameW(szinstancestring : ::windows_sys::core::PCWSTR, szinstancename : ::windows_sys::core::PWSTR, pcchinstancenamelength : *mut u32, szparentname : ::windows_sys::core::PWSTR, pcchparentnamelength : *mut u32, lpindex : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhReadRawLogRecord(hlog : isize, ftrecord : super::super::Foundation:: FILETIME, prawlogrecord : *mut PDH_RAW_LOG_RECORD, pdwbufferlength : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhRemoveCounter(hcounter : isize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhSelectDataSourceA(hwndowner : super::super::Foundation:: HWND, dwflags : PDH_SELECT_DATA_SOURCE_FLAGS, szdatasource : ::windows_sys::core::PSTR, pcchbufferlength : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("pdh.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PdhSelectDataSourceW(hwndowner : super::super::Foundation:: HWND, dwflags : PDH_SELECT_DATA_SOURCE_FLAGS, szdatasource : ::windows_sys::core::PWSTR, pcchbufferlength : *mut u32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhSetCounterScaleFactor(hcounter : isize, lfactor : i32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhSetDefaultRealTimeDataSource(dwdatasourceid : REAL_TIME_DATA_SOURCE_ID_FLAGS) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhSetLogSetRunID(hlog : isize, runid : i32) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhSetQueryTimeRange(hquery : isize, pinfo : *const PDH_TIME_INFO) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhUpdateLogA(hlog : isize, szuserstring : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhUpdateLogFileCatalog(hlog : isize) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhUpdateLogW(hlog : isize, szuserstring : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhValidatePathA(szfullpathbuffer : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhValidatePathExA(hdatasource : isize, szfullpathbuffer : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhValidatePathExW(hdatasource : isize, szfullpathbuffer : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhValidatePathW(szfullpathbuffer : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhVerifySQLDBA(szdatasource : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("pdh.dll" "system" fn PdhVerifySQLDBW(szdatasource : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfAddCounters(hquery : super::super::Foundation:: HANDLE, pcounters : *mut PERF_COUNTER_IDENTIFIER, cbcounters : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfCloseQueryHandle(hquery : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfCreateInstance(providerhandle : super::super::Foundation:: HANDLE, countersetguid : *const ::windows_sys::core::GUID, name : ::windows_sys::core::PCWSTR, id : u32) -> *mut PERF_COUNTERSET_INSTANCE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfDecrementULongCounterValue(provider : super::super::Foundation:: HANDLE, instance : *mut PERF_COUNTERSET_INSTANCE, counterid : u32, value : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfDecrementULongLongCounterValue(provider : super::super::Foundation:: HANDLE, instance : *mut PERF_COUNTERSET_INSTANCE, counterid : u32, value : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfDeleteCounters(hquery : super::super::Foundation:: HANDLE, pcounters : *mut PERF_COUNTER_IDENTIFIER, cbcounters : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfDeleteInstance(provider : super::super::Foundation:: HANDLE, instanceblock : *const PERF_COUNTERSET_INSTANCE) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn PerfEnumerateCounterSet(szmachine : ::windows_sys::core::PCWSTR, pcountersetids : *mut ::windows_sys::core::GUID, ccountersetids : u32, pccountersetidsactual : *mut u32) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn PerfEnumerateCounterSetInstances(szmachine : ::windows_sys::core::PCWSTR, pcountersetid : *const ::windows_sys::core::GUID, pinstances : *mut PERF_INSTANCE_HEADER, cbinstances : u32, pcbinstancesactual : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfIncrementULongCounterValue(provider : super::super::Foundation:: HANDLE, instance : *mut PERF_COUNTERSET_INSTANCE, counterid : u32, value : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfIncrementULongLongCounterValue(provider : super::super::Foundation:: HANDLE, instance : *mut PERF_COUNTERSET_INSTANCE, counterid : u32, value : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfOpenQueryHandle(szmachine : ::windows_sys::core::PCWSTR, phquery : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfQueryCounterData(hquery : super::super::Foundation:: HANDLE, pcounterblock : *mut PERF_DATA_HEADER, cbcounterblock : u32, pcbcounterblockactual : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfQueryCounterInfo(hquery : super::super::Foundation:: HANDLE, pcounters : *mut PERF_COUNTER_IDENTIFIER, cbcounters : u32, pcbcountersactual : *mut u32) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn PerfQueryCounterSetRegistrationInfo(szmachine : ::windows_sys::core::PCWSTR, pcountersetid : *const ::windows_sys::core::GUID, requestcode : PerfRegInfoType, requestlangid : u32, pbreginfo : *mut u8, cbreginfo : u32, pcbreginfoactual : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfQueryInstance(providerhandle : super::super::Foundation:: HANDLE, countersetguid : *const ::windows_sys::core::GUID, name : ::windows_sys::core::PCWSTR, id : u32) -> *mut PERF_COUNTERSET_INSTANCE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfSetCounterRefValue(provider : super::super::Foundation:: HANDLE, instance : *mut PERF_COUNTERSET_INSTANCE, counterid : u32, address : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfSetCounterSetInfo(providerhandle : super::super::Foundation:: HANDLE, template : *mut PERF_COUNTERSET_INFO, templatesize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfSetULongCounterValue(provider : super::super::Foundation:: HANDLE, instance : *mut PERF_COUNTERSET_INSTANCE, counterid : u32, value : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfSetULongLongCounterValue(provider : super::super::Foundation:: HANDLE, instance : *mut PERF_COUNTERSET_INSTANCE, counterid : u32, value : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfStartProvider(providerguid : *const ::windows_sys::core::GUID, controlcallback : PERFLIBREQUEST, phprovider : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfStartProviderEx(providerguid : *const ::windows_sys::core::GUID, providercontext : *const PERF_PROVIDER_CONTEXT, provider : *mut super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PerfStopProvider(providerhandle : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryPerformanceCounter(lpperformancecount : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryPerformanceFrequency(lpfrequency : *mut i64) -> super::super::Foundation:: BOOL); +::windows_targets::link!("loadperf.dll" "system" fn RestorePerfRegistryFromFileW(szfilename : ::windows_sys::core::PCWSTR, szlangid : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("loadperf.dll" "system" fn SetServiceAsTrustedA(szreserved : ::windows_sys::core::PCSTR, szservicename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("loadperf.dll" "system" fn SetServiceAsTrustedW(szreserved : ::windows_sys::core::PCWSTR, szservicename : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("loadperf.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnloadPerfCounterTextStringsA(lpcommandline : ::windows_sys::core::PCSTR, bquietmodearg : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("loadperf.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnloadPerfCounterTextStringsW(lpcommandline : ::windows_sys::core::PCWSTR, bquietmodearg : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("loadperf.dll" "system" fn UpdatePerfNameFilesA(sznewctrfilepath : ::windows_sys::core::PCSTR, sznewhlpfilepath : ::windows_sys::core::PCSTR, szlanguageid : ::windows_sys::core::PCSTR, dwflags : usize) -> u32); +::windows_targets::link!("loadperf.dll" "system" fn UpdatePerfNameFilesW(sznewctrfilepath : ::windows_sys::core::PCWSTR, sznewhlpfilepath : ::windows_sys::core::PCWSTR, szlanguageid : ::windows_sys::core::PCWSTR, dwflags : usize) -> u32); +pub type DICounterItem = *mut ::core::ffi::c_void; +pub type DILogFileItem = *mut ::core::ffi::c_void; +pub type DISystemMonitor = *mut ::core::ffi::c_void; +pub type DISystemMonitorEvents = *mut ::core::ffi::c_void; +pub type DISystemMonitorInternal = *mut ::core::ffi::c_void; +pub type IAlertDataCollector = *mut ::core::ffi::c_void; +pub type IApiTracingDataCollector = *mut ::core::ffi::c_void; +pub type IConfigurationDataCollector = *mut ::core::ffi::c_void; +pub type ICounterItem = *mut ::core::ffi::c_void; +pub type ICounterItem2 = *mut ::core::ffi::c_void; +pub type ICounters = *mut ::core::ffi::c_void; +pub type IDataCollector = *mut ::core::ffi::c_void; +pub type IDataCollectorCollection = *mut ::core::ffi::c_void; +pub type IDataCollectorSet = *mut ::core::ffi::c_void; +pub type IDataCollectorSetCollection = *mut ::core::ffi::c_void; +pub type IDataManager = *mut ::core::ffi::c_void; +pub type IFolderAction = *mut ::core::ffi::c_void; +pub type IFolderActionCollection = *mut ::core::ffi::c_void; +pub type ILogFileItem = *mut ::core::ffi::c_void; +pub type ILogFiles = *mut ::core::ffi::c_void; +pub type IPerformanceCounterDataCollector = *mut ::core::ffi::c_void; +pub type ISchedule = *mut ::core::ffi::c_void; +pub type IScheduleCollection = *mut ::core::ffi::c_void; +pub type ISystemMonitor = *mut ::core::ffi::c_void; +pub type ISystemMonitor2 = *mut ::core::ffi::c_void; +pub type ISystemMonitorEvents = *mut ::core::ffi::c_void; +pub type ITraceDataCollector = *mut ::core::ffi::c_void; +pub type ITraceDataProvider = *mut ::core::ffi::c_void; +pub type ITraceDataProviderCollection = *mut ::core::ffi::c_void; +pub type IValueMap = *mut ::core::ffi::c_void; +pub type IValueMapItem = *mut ::core::ffi::c_void; +pub type _ICounterItemUnion = *mut ::core::ffi::c_void; +pub type _ISystemMonitorUnion = *mut ::core::ffi::c_void; +pub const AppearPropPage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe49741e9_93a8_4ab1_8e96_bf4482282e9c); +pub const BootTraceSession: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837538_098b_11d8_9414_505054503030); +pub const BootTraceSessionCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837539_098b_11d8_9414_505054503030); +pub const CounterItem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc4d2d8e0_d1dd_11ce_940f_008029004348); +pub const CounterItem2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43196c62_c31f_4ce3_a02e_79efe0f6a525); +pub const CounterPropPage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf948561_ede8_11ce_941e_008029004347); +pub const Counters: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb2b066d2_2aac_11cf_942f_008029004347); +pub const DATA_SOURCE_REGISTRY: REAL_TIME_DATA_SOURCE_ID_FLAGS = 1u32; +pub const DATA_SOURCE_WBEM: REAL_TIME_DATA_SOURCE_ID_FLAGS = 4u32; +pub const DIID_DICounterItem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc08c4ff2_0e2e_11cf_942c_008029004347); +pub const DIID_DILogFileItem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8d093ffc_f777_4917_82d1_833fbc54c58f); +pub const DIID_DISystemMonitor: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13d73d81_c32e_11cf_9398_00aa00a3ddea); +pub const DIID_DISystemMonitorEvents: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x84979930_4ab3_11cf_943a_008029004347); +pub const DIID_DISystemMonitorInternal: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x194eb242_c32c_11cf_9398_00aa00a3ddea); +pub const DataCollectorSet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837521_098b_11d8_9414_505054503030); +pub const DataCollectorSetCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837525_098b_11d8_9414_505054503030); +pub const GeneralPropPage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc3e5d3d2_1a03_11cf_942d_008029004347); +pub const GraphPropPage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc3e5d3d3_1a03_11cf_942d_008029004347); +pub const H_WBEM_DATASOURCE: i32 = -1i32; +pub const LIBID_SystemMonitor: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1b773e42_2509_11cf_942f_008029004347); +pub const LegacyDataCollectorSet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837526_098b_11d8_9414_505054503030); +pub const LegacyDataCollectorSetCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837527_098b_11d8_9414_505054503030); +pub const LegacyTraceSession: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837528_098b_11d8_9414_505054503030); +pub const LegacyTraceSessionCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837529_098b_11d8_9414_505054503030); +pub const LogFileItem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x16ec5be8_df93_4237_94e4_9ee918111d71); +pub const LogFiles: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2735d9fd_f6b9_4f19_a5d9_e2d068584bc5); +pub const MAX_COUNTER_PATH: u32 = 256u32; +pub const MAX_PERF_OBJECTS_IN_QUERY_FUNCTION: i32 = 64i32; +pub const PDH_ACCESS_DENIED: u32 = 3221228507u32; +pub const PDH_ASYNC_QUERY_TIMEOUT: u32 = 2147485659u32; +pub const PDH_BINARY_LOG_CORRUPT: u32 = 3221228535u32; +pub const PDH_CALC_NEGATIVE_DENOMINATOR: u32 = 2147485654u32; +pub const PDH_CALC_NEGATIVE_TIMEBASE: u32 = 2147485655u32; +pub const PDH_CALC_NEGATIVE_VALUE: u32 = 2147485656u32; +pub const PDH_CANNOT_CONNECT_MACHINE: u32 = 3221228483u32; +pub const PDH_CANNOT_CONNECT_WMI_SERVER: u32 = 3221228520u32; +pub const PDH_CANNOT_READ_NAME_STRINGS: u32 = 3221228488u32; +pub const PDH_CANNOT_SET_DEFAULT_REALTIME_DATASOURCE: u32 = 2147485660u32; +pub const PDH_COUNTER_ALREADY_IN_QUERY: u32 = 3221228534u32; +pub const PDH_CSTATUS_BAD_COUNTERNAME: u32 = 3221228480u32; +pub const PDH_CSTATUS_INVALID_DATA: u32 = 3221228474u32; +pub const PDH_CSTATUS_ITEM_NOT_VALIDATED: u32 = 2147485651u32; +pub const PDH_CSTATUS_NEW_DATA: u32 = 1u32; +pub const PDH_CSTATUS_NO_COUNTER: u32 = 3221228473u32; +pub const PDH_CSTATUS_NO_COUNTERNAME: u32 = 3221228479u32; +pub const PDH_CSTATUS_NO_INSTANCE: u32 = 2147485649u32; +pub const PDH_CSTATUS_NO_MACHINE: u32 = 2147485648u32; +pub const PDH_CSTATUS_NO_OBJECT: u32 = 3221228472u32; +pub const PDH_CSTATUS_VALID_DATA: u32 = 0u32; +pub const PDH_CVERSION_WIN50: PDH_DLL_VERSION = 1280u32; +pub const PDH_DATA_SOURCE_IS_LOG_FILE: u32 = 3221228494u32; +pub const PDH_DATA_SOURCE_IS_REAL_TIME: u32 = 3221228495u32; +pub const PDH_DIALOG_CANCELLED: u32 = 2147485657u32; +pub const PDH_END_OF_LOG_FILE: u32 = 2147485658u32; +pub const PDH_ENTRY_NOT_IN_LOG_FILE: u32 = 3221228493u32; +pub const PDH_FILE_ALREADY_EXISTS: u32 = 3221228498u32; +pub const PDH_FILE_NOT_FOUND: u32 = 3221228497u32; +pub const PDH_FLAGS_FILE_BROWSER_ONLY: PDH_SELECT_DATA_SOURCE_FLAGS = 1u32; +pub const PDH_FLAGS_NONE: PDH_SELECT_DATA_SOURCE_FLAGS = 0u32; +pub const PDH_FMT_DOUBLE: PDH_FMT = 512u32; +pub const PDH_FMT_LARGE: PDH_FMT = 1024u32; +pub const PDH_FMT_LONG: PDH_FMT = 256u32; +pub const PDH_FUNCTION_NOT_FOUND: u32 = 3221228478u32; +pub const PDH_INCORRECT_APPEND_TIME: u32 = 3221228539u32; +pub const PDH_INSUFFICIENT_BUFFER: u32 = 3221228482u32; +pub const PDH_INVALID_ARGUMENT: u32 = 3221228477u32; +pub const PDH_INVALID_BUFFER: u32 = 3221228481u32; +pub const PDH_INVALID_DATA: u32 = 3221228486u32; +pub const PDH_INVALID_DATASOURCE: u32 = 3221228509u32; +pub const PDH_INVALID_HANDLE: u32 = 3221228476u32; +pub const PDH_INVALID_INSTANCE: u32 = 3221228485u32; +pub const PDH_INVALID_PATH: u32 = 3221228484u32; +pub const PDH_INVALID_SQLDB: u32 = 3221228510u32; +pub const PDH_INVALID_SQL_LOG_FORMAT: u32 = 3221228533u32; +pub const PDH_LOGSVC_NOT_OPENED: u32 = 3221228505u32; +pub const PDH_LOGSVC_QUERY_NOT_FOUND: u32 = 3221228504u32; +pub const PDH_LOG_FILE_CREATE_ERROR: u32 = 3221228489u32; +pub const PDH_LOG_FILE_OPEN_ERROR: u32 = 3221228490u32; +pub const PDH_LOG_FILE_TOO_SMALL: u32 = 3221228508u32; +pub const PDH_LOG_READ_ACCESS: PDH_LOG = 65536u32; +pub const PDH_LOG_SAMPLE_TOO_SMALL: u32 = 3221228536u32; +pub const PDH_LOG_TYPE_BINARY: PDH_LOG_TYPE = 8u32; +pub const PDH_LOG_TYPE_CSV: PDH_LOG_TYPE = 1u32; +pub const PDH_LOG_TYPE_NOT_FOUND: u32 = 3221228491u32; +pub const PDH_LOG_TYPE_PERFMON: PDH_LOG_TYPE = 6u32; +pub const PDH_LOG_TYPE_RETIRED_BIN: u32 = 3u32; +pub const PDH_LOG_TYPE_SQL: PDH_LOG_TYPE = 7u32; +pub const PDH_LOG_TYPE_TRACE_GENERIC: u32 = 5u32; +pub const PDH_LOG_TYPE_TRACE_KERNEL: u32 = 4u32; +pub const PDH_LOG_TYPE_TSV: PDH_LOG_TYPE = 2u32; +pub const PDH_LOG_TYPE_UNDEFINED: PDH_LOG_TYPE = 0u32; +pub const PDH_LOG_UPDATE_ACCESS: PDH_LOG = 262144u32; +pub const PDH_LOG_WRITE_ACCESS: PDH_LOG = 131072u32; +pub const PDH_MAX_COUNTER_NAME: u32 = 1024u32; +pub const PDH_MAX_COUNTER_PATH: u32 = 2048u32; +pub const PDH_MAX_DATASOURCE_PATH: u32 = 1024u32; +pub const PDH_MAX_INSTANCE_NAME: u32 = 1024u32; +pub const PDH_MAX_SCALE: i32 = 7i32; +pub const PDH_MEMORY_ALLOCATION_FAILURE: u32 = 3221228475u32; +pub const PDH_MIN_SCALE: i32 = -7i32; +pub const PDH_MORE_DATA: u32 = 2147485650u32; +pub const PDH_NOEXPANDCOUNTERS: u32 = 1u32; +pub const PDH_NOEXPANDINSTANCES: u32 = 2u32; +pub const PDH_NOT_IMPLEMENTED: u32 = 3221228499u32; +pub const PDH_NO_COUNTERS: u32 = 3221228511u32; +pub const PDH_NO_DATA: u32 = 2147485653u32; +pub const PDH_NO_DIALOG_DATA: u32 = 3221228487u32; +pub const PDH_NO_MORE_DATA: u32 = 3221228492u32; +pub const PDH_OS_EARLIER_VERSION: u32 = 3221228538u32; +pub const PDH_OS_LATER_VERSION: u32 = 3221228537u32; +pub const PDH_PATH_WBEM_INPUT: PDH_PATH_FLAGS = 2u32; +pub const PDH_PATH_WBEM_NONE: PDH_PATH_FLAGS = 0u32; +pub const PDH_PATH_WBEM_RESULT: PDH_PATH_FLAGS = 1u32; +pub const PDH_PLA_COLLECTION_ALREADY_RUNNING: u32 = 3221228521u32; +pub const PDH_PLA_COLLECTION_NOT_FOUND: u32 = 3221228523u32; +pub const PDH_PLA_ERROR_ALREADY_EXISTS: u32 = 3221228526u32; +pub const PDH_PLA_ERROR_FILEPATH: u32 = 3221228528u32; +pub const PDH_PLA_ERROR_NAME_TOO_LONG: u32 = 3221228532u32; +pub const PDH_PLA_ERROR_NOSTART: u32 = 3221228525u32; +pub const PDH_PLA_ERROR_SCHEDULE_ELAPSED: u32 = 3221228524u32; +pub const PDH_PLA_ERROR_SCHEDULE_OVERLAP: u32 = 3221228522u32; +pub const PDH_PLA_ERROR_TYPE_MISMATCH: u32 = 3221228527u32; +pub const PDH_PLA_SERVICE_ERROR: u32 = 3221228529u32; +pub const PDH_PLA_VALIDATION_ERROR: u32 = 3221228530u32; +pub const PDH_PLA_VALIDATION_WARNING: u32 = 2147486707u32; +pub const PDH_QUERY_PERF_DATA_TIMEOUT: u32 = 3221228542u32; +pub const PDH_REFRESHCOUNTERS: u32 = 4u32; +pub const PDH_RETRY: u32 = 2147485652u32; +pub const PDH_SQL_ALLOCCON_FAILED: u32 = 3221228513u32; +pub const PDH_SQL_ALLOC_FAILED: u32 = 3221228512u32; +pub const PDH_SQL_ALTER_DETAIL_FAILED: u32 = 3221228541u32; +pub const PDH_SQL_BIND_FAILED: u32 = 3221228519u32; +pub const PDH_SQL_CONNECT_FAILED: u32 = 3221228518u32; +pub const PDH_SQL_EXEC_DIRECT_FAILED: u32 = 3221228514u32; +pub const PDH_SQL_FETCH_FAILED: u32 = 3221228515u32; +pub const PDH_SQL_MORE_RESULTS_FAILED: u32 = 3221228517u32; +pub const PDH_SQL_ROWCOUNT_FAILED: u32 = 3221228516u32; +pub const PDH_STRING_NOT_FOUND: u32 = 3221228500u32; +pub const PDH_UNABLE_MAP_NAME_FILES: u32 = 2147486677u32; +pub const PDH_UNABLE_READ_LOG_HEADER: u32 = 3221228496u32; +pub const PDH_UNKNOWN_LOGSVC_COMMAND: u32 = 3221228503u32; +pub const PDH_UNKNOWN_LOG_FORMAT: u32 = 3221228502u32; +pub const PDH_UNMATCHED_APPEND_COUNTER: u32 = 3221228540u32; +pub const PDH_VERSION: PDH_DLL_VERSION = 1283u32; +pub const PDH_WBEM_ERROR: u32 = 3221228506u32; +pub const PERF_ADD_COUNTER: u32 = 1u32; +pub const PERF_AGGREGATE_AVG: PERF_COUNTER_AGGREGATE_FUNC = 2u32; +pub const PERF_AGGREGATE_INSTANCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_Total"); +pub const PERF_AGGREGATE_MAX: u32 = 4u32; +pub const PERF_AGGREGATE_MIN: PERF_COUNTER_AGGREGATE_FUNC = 3u32; +pub const PERF_AGGREGATE_TOTAL: PERF_COUNTER_AGGREGATE_FUNC = 1u32; +pub const PERF_AGGREGATE_UNDEFINED: PERF_COUNTER_AGGREGATE_FUNC = 0u32; +pub const PERF_ATTRIB_BY_REFERENCE: u64 = 1u64; +pub const PERF_ATTRIB_DISPLAY_AS_HEX: u64 = 16u64; +pub const PERF_ATTRIB_DISPLAY_AS_REAL: u64 = 8u64; +pub const PERF_ATTRIB_NO_DISPLAYABLE: u64 = 2u64; +pub const PERF_ATTRIB_NO_GROUP_SEPARATOR: u64 = 4u64; +pub const PERF_COLLECT_END: u32 = 6u32; +pub const PERF_COLLECT_START: u32 = 5u32; +pub const PERF_COUNTERSET: PerfCounterDataType = 6i32; +pub const PERF_COUNTERSET_FLAG_AGGREGATE: u32 = 4u32; +pub const PERF_COUNTERSET_FLAG_HISTORY: u32 = 8u32; +pub const PERF_COUNTERSET_FLAG_INSTANCE: u32 = 16u32; +pub const PERF_COUNTERSET_FLAG_MULTIPLE: u32 = 2u32; +pub const PERF_COUNTERSET_MULTI_INSTANCES: u32 = 2u32; +pub const PERF_COUNTERSET_SINGLE_AGGREGATE: u32 = 4u32; +pub const PERF_COUNTERSET_SINGLE_INSTANCE: u32 = 0u32; +pub const PERF_COUNTER_BASE: u32 = 196608u32; +pub const PERF_COUNTER_ELAPSED: u32 = 262144u32; +pub const PERF_COUNTER_FRACTION: u32 = 131072u32; +pub const PERF_COUNTER_HISTOGRAM: u32 = 393216u32; +pub const PERF_COUNTER_HISTOGRAM_TYPE: u32 = 2147483648u32; +pub const PERF_COUNTER_PRECISION: u32 = 458752u32; +pub const PERF_COUNTER_QUEUELEN: u32 = 327680u32; +pub const PERF_COUNTER_RATE: u32 = 65536u32; +pub const PERF_COUNTER_VALUE: u32 = 0u32; +pub const PERF_DATA_REVISION: u32 = 1u32; +pub const PERF_DATA_VERSION: u32 = 1u32; +pub const PERF_DELTA_BASE: u32 = 8388608u32; +pub const PERF_DELTA_COUNTER: u32 = 4194304u32; +pub const PERF_DETAIL_ADVANCED: PERF_DETAIL = 200u32; +pub const PERF_DETAIL_EXPERT: PERF_DETAIL = 300u32; +pub const PERF_DETAIL_NOVICE: PERF_DETAIL = 100u32; +pub const PERF_DETAIL_WIZARD: PERF_DETAIL = 400u32; +pub const PERF_DISPLAY_NOSHOW: u32 = 1073741824u32; +pub const PERF_DISPLAY_NO_SUFFIX: u32 = 0u32; +pub const PERF_DISPLAY_PERCENT: u32 = 536870912u32; +pub const PERF_DISPLAY_PER_SEC: u32 = 268435456u32; +pub const PERF_DISPLAY_SECONDS: u32 = 805306368u32; +pub const PERF_ENUM_INSTANCES: u32 = 3u32; +pub const PERF_ERROR_RETURN: PerfCounterDataType = 0i32; +pub const PERF_FILTER: u32 = 9u32; +pub const PERF_INVERSE_COUNTER: u32 = 16777216u32; +pub const PERF_MAX_INSTANCE_NAME: u32 = 1024u32; +pub const PERF_METADATA_MULTIPLE_INSTANCES: i32 = -2i32; +pub const PERF_METADATA_NO_INSTANCES: i32 = -3i32; +pub const PERF_MULTIPLE_COUNTERS: PerfCounterDataType = 2i32; +pub const PERF_MULTIPLE_INSTANCES: PerfCounterDataType = 4i32; +pub const PERF_MULTI_COUNTER: u32 = 33554432u32; +pub const PERF_NO_INSTANCES: i32 = -1i32; +pub const PERF_NO_UNIQUE_ID: i32 = -1i32; +pub const PERF_NUMBER_DECIMAL: u32 = 65536u32; +pub const PERF_NUMBER_DEC_1000: u32 = 131072u32; +pub const PERF_NUMBER_HEX: u32 = 0u32; +pub const PERF_OBJECT_TIMER: u32 = 2097152u32; +pub const PERF_PROVIDER_DRIVER: u32 = 2u32; +pub const PERF_PROVIDER_KERNEL_MODE: u32 = 1u32; +pub const PERF_PROVIDER_USER_MODE: u32 = 0u32; +pub const PERF_REG_COUNTERSET_ENGLISH_NAME: PerfRegInfoType = 9i32; +pub const PERF_REG_COUNTERSET_HELP_STRING: PerfRegInfoType = 4i32; +pub const PERF_REG_COUNTERSET_NAME_STRING: PerfRegInfoType = 3i32; +pub const PERF_REG_COUNTERSET_STRUCT: PerfRegInfoType = 1i32; +pub const PERF_REG_COUNTER_ENGLISH_NAMES: PerfRegInfoType = 10i32; +pub const PERF_REG_COUNTER_HELP_STRINGS: PerfRegInfoType = 6i32; +pub const PERF_REG_COUNTER_NAME_STRINGS: PerfRegInfoType = 5i32; +pub const PERF_REG_COUNTER_STRUCT: PerfRegInfoType = 2i32; +pub const PERF_REG_PROVIDER_GUID: PerfRegInfoType = 8i32; +pub const PERF_REG_PROVIDER_NAME: PerfRegInfoType = 7i32; +pub const PERF_REMOVE_COUNTER: u32 = 2u32; +pub const PERF_SINGLE_COUNTER: PerfCounterDataType = 1i32; +pub const PERF_SIZE_DWORD: u32 = 0u32; +pub const PERF_SIZE_LARGE: u32 = 256u32; +pub const PERF_SIZE_VARIABLE_LEN: u32 = 768u32; +pub const PERF_SIZE_ZERO: u32 = 512u32; +pub const PERF_TEXT_ASCII: u32 = 65536u32; +pub const PERF_TEXT_UNICODE: u32 = 0u32; +pub const PERF_TIMER_100NS: u32 = 1048576u32; +pub const PERF_TIMER_TICK: u32 = 0u32; +pub const PERF_TYPE_COUNTER: u32 = 1024u32; +pub const PERF_TYPE_NUMBER: u32 = 0u32; +pub const PERF_TYPE_TEXT: u32 = 2048u32; +pub const PERF_TYPE_ZERO: u32 = 3072u32; +pub const PERF_WILDCARD_COUNTER: u32 = 4294967295u32; +pub const PERF_WILDCARD_INSTANCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("*"); +pub const PLAL_ALERT_CMD_LINE_A_NAME: u32 = 512u32; +pub const PLAL_ALERT_CMD_LINE_C_NAME: u32 = 1024u32; +pub const PLAL_ALERT_CMD_LINE_D_TIME: u32 = 2048u32; +pub const PLAL_ALERT_CMD_LINE_L_VAL: u32 = 4096u32; +pub const PLAL_ALERT_CMD_LINE_MASK: u32 = 32512u32; +pub const PLAL_ALERT_CMD_LINE_M_VAL: u32 = 8192u32; +pub const PLAL_ALERT_CMD_LINE_SINGLE: u32 = 256u32; +pub const PLAL_ALERT_CMD_LINE_U_TEXT: u32 = 16384u32; +pub const PLA_CAPABILITY_AUTOLOGGER: u32 = 32u32; +pub const PLA_CAPABILITY_LEGACY_SESSION: u32 = 8u32; +pub const PLA_CAPABILITY_LEGACY_SVC: u32 = 16u32; +pub const PLA_CAPABILITY_LOCAL: u32 = 268435456u32; +pub const PLA_CAPABILITY_V1_SESSION: u32 = 2u32; +pub const PLA_CAPABILITY_V1_SVC: u32 = 1u32; +pub const PLA_CAPABILITY_V1_SYSTEM: u32 = 4u32; +pub const S_PDH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04d66358_c4a1_419b_8023_23b73902de2c); +pub const ServerDataCollectorSet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837531_098b_11d8_9414_505054503030); +pub const ServerDataCollectorSetCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837532_098b_11d8_9414_505054503030); +pub const SourcePropPage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cf32aa1_7571_11d0_93c4_00aa00a3ddea); +pub const SystemDataCollectorSet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837546_098b_11d8_9414_505054503030); +pub const SystemDataCollectorSetCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837547_098b_11d8_9414_505054503030); +pub const SystemMonitor: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc4d2d8e0_d1dd_11ce_940f_008029004347); +pub const SystemMonitor2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f30578c_5f38_4612_acfe_6ed04c7b7af8); +pub const TraceDataProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837513_098b_11d8_9414_505054503030); +pub const TraceDataProviderCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837511_098b_11d8_9414_505054503030); +pub const TraceSession: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0383751c_098b_11d8_9414_505054503030); +pub const TraceSessionCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03837530_098b_11d8_9414_505054503030); +pub const WINPERF_LOG_DEBUG: u32 = 2u32; +pub const WINPERF_LOG_NONE: u32 = 0u32; +pub const WINPERF_LOG_USER: u32 = 1u32; +pub const WINPERF_LOG_VERBOSE: u32 = 3u32; +pub const plaAlert: DataCollectorType = 3i32; +pub const plaApiTrace: DataCollectorType = 4i32; +pub const plaBinary: FileFormat = 3i32; +pub const plaBoth: StreamMode = 3i32; +pub const plaBuffering: StreamMode = 4i32; +pub const plaCommaSeparated: FileFormat = 0i32; +pub const plaCompiling: DataCollectorSetStatus = 2i32; +pub const plaComputer: AutoPathFormat = 2i32; +pub const plaConfiguration: DataCollectorType = 2i32; +pub const plaCreateCab: FolderActionSteps = 1i32; +pub const plaCreateHtml: DataManagerSteps = 4i32; +pub const plaCreateNew: CommitMode = 1i32; +pub const plaCreateOrModify: CommitMode = 3i32; +pub const plaCreateReport: DataManagerSteps = 1i32; +pub const plaCycle: ClockType = 3i32; +pub const plaDeleteCab: FolderActionSteps = 8i32; +pub const plaDeleteData: FolderActionSteps = 2i32; +pub const plaDeleteLargest: ResourcePolicy = 0i32; +pub const plaDeleteOldest: ResourcePolicy = 1i32; +pub const plaDeleteReport: FolderActionSteps = 16i32; +pub const plaEveryday: WeekDays = 127i32; +pub const plaFile: StreamMode = 1i32; +pub const plaFlag: ValueMapType = 2i32; +pub const plaFlagArray: ValueMapType = 3i32; +pub const plaFlushTrace: CommitMode = 32i32; +pub const plaFolderActions: DataManagerSteps = 8i32; +pub const plaFriday: WeekDays = 32i32; +pub const plaIndex: ValueMapType = 1i32; +pub const plaModify: CommitMode = 2i32; +pub const plaMonday: WeekDays = 2i32; +pub const plaMonthDayHour: AutoPathFormat = 256i32; +pub const plaMonthDayHourMinute: AutoPathFormat = 16384i32; +pub const plaNone: AutoPathFormat = 0i32; +pub const plaPattern: AutoPathFormat = 1i32; +pub const plaPending: DataCollectorSetStatus = 3i32; +pub const plaPerformance: ClockType = 1i32; +pub const plaPerformanceCounter: DataCollectorType = 0i32; +pub const plaRealTime: StreamMode = 2i32; +pub const plaResourceFreeing: DataManagerSteps = 16i32; +pub const plaRunOnce: WeekDays = 0i32; +pub const plaRunRules: DataManagerSteps = 2i32; +pub const plaRunning: DataCollectorSetStatus = 1i32; +pub const plaSaturday: WeekDays = 64i32; +pub const plaSendCab: FolderActionSteps = 4i32; +pub const plaSerialNumber: AutoPathFormat = 512i32; +pub const plaSql: FileFormat = 2i32; +pub const plaStopped: DataCollectorSetStatus = 0i32; +pub const plaSunday: WeekDays = 1i32; +pub const plaSystem: ClockType = 2i32; +pub const plaTabSeparated: FileFormat = 1i32; +pub const plaThursday: WeekDays = 16i32; +pub const plaTimeStamp: ClockType = 0i32; +pub const plaTrace: DataCollectorType = 1i32; +pub const plaTuesday: WeekDays = 4i32; +pub const plaUndefined: DataCollectorSetStatus = 4i32; +pub const plaUpdateRunningInstance: CommitMode = 16i32; +pub const plaValidateOnly: CommitMode = 4096i32; +pub const plaValidation: ValueMapType = 4i32; +pub const plaWednesday: WeekDays = 8i32; +pub const plaYearDayOfYear: AutoPathFormat = 1024i32; +pub const plaYearMonth: AutoPathFormat = 2048i32; +pub const plaYearMonthDay: AutoPathFormat = 4096i32; +pub const plaYearMonthDayHour: AutoPathFormat = 8192i32; +pub const sysmonAverage: ReportValueTypeConstants = 2i32; +pub const sysmonBatchAddCounters: SysmonBatchReason = 2i32; +pub const sysmonBatchAddFiles: SysmonBatchReason = 1i32; +pub const sysmonBatchAddFilesAutoCounters: SysmonBatchReason = 3i32; +pub const sysmonBatchNone: SysmonBatchReason = 0i32; +pub const sysmonChartArea: DisplayTypeConstants = 4i32; +pub const sysmonChartStackedArea: DisplayTypeConstants = 5i32; +pub const sysmonCurrentActivity: DataSourceTypeConstants = 1i32; +pub const sysmonCurrentValue: ReportValueTypeConstants = 1i32; +pub const sysmonDataAvg: SysmonDataType = 1i32; +pub const sysmonDataCount: SysmonDataType = 5i32; +pub const sysmonDataMax: SysmonDataType = 3i32; +pub const sysmonDataMin: SysmonDataType = 2i32; +pub const sysmonDataTime: SysmonDataType = 4i32; +pub const sysmonDefaultValue: ReportValueTypeConstants = 0i32; +pub const sysmonFileBlg: SysmonFileType = 5i32; +pub const sysmonFileCsv: SysmonFileType = 3i32; +pub const sysmonFileGif: SysmonFileType = 7i32; +pub const sysmonFileHtml: SysmonFileType = 1i32; +pub const sysmonFileReport: SysmonFileType = 2i32; +pub const sysmonFileRetiredBlg: SysmonFileType = 6i32; +pub const sysmonFileTsv: SysmonFileType = 4i32; +pub const sysmonHistogram: DisplayTypeConstants = 2i32; +pub const sysmonLineGraph: DisplayTypeConstants = 1i32; +pub const sysmonLogFiles: DataSourceTypeConstants = 2i32; +pub const sysmonMaximum: ReportValueTypeConstants = 4i32; +pub const sysmonMinimum: ReportValueTypeConstants = 3i32; +pub const sysmonNullDataSource: DataSourceTypeConstants = -1i32; +pub const sysmonReport: DisplayTypeConstants = 3i32; +pub const sysmonSqlLog: DataSourceTypeConstants = 3i32; +pub type AutoPathFormat = i32; +pub type ClockType = i32; +pub type CommitMode = i32; +pub type DataCollectorSetStatus = i32; +pub type DataCollectorType = i32; +pub type DataManagerSteps = i32; +pub type DataSourceTypeConstants = i32; +pub type DisplayTypeConstants = i32; +pub type FileFormat = i32; +pub type FolderActionSteps = i32; +pub type PDH_DLL_VERSION = u32; +pub type PDH_FMT = u32; +pub type PDH_LOG = u32; +pub type PDH_LOG_TYPE = u32; +pub type PDH_PATH_FLAGS = u32; +pub type PDH_SELECT_DATA_SOURCE_FLAGS = u32; +pub type PERF_COUNTER_AGGREGATE_FUNC = u32; +pub type PERF_DETAIL = u32; +pub type PerfCounterDataType = i32; +pub type PerfRegInfoType = i32; +pub type REAL_TIME_DATA_SOURCE_ID_FLAGS = u32; +pub type ReportValueTypeConstants = i32; +pub type ResourcePolicy = i32; +pub type StreamMode = i32; +pub type SysmonBatchReason = i32; +pub type SysmonDataType = i32; +pub type SysmonFileType = i32; +pub type ValueMapType = i32; +pub type WeekDays = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PDH_BROWSE_DLG_CONFIG_A { + pub _bitfield: u32, + pub hWndOwner: super::super::Foundation::HWND, + pub szDataSource: ::windows_sys::core::PSTR, + pub szReturnPathBuffer: ::windows_sys::core::PSTR, + pub cchReturnPathLength: u32, + pub pCallBack: CounterPathCallBack, + pub dwCallBackArg: usize, + pub CallBackStatus: i32, + pub dwDefaultDetailLevel: PERF_DETAIL, + pub szDialogBoxCaption: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_BROWSE_DLG_CONFIG_A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_BROWSE_DLG_CONFIG_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PDH_BROWSE_DLG_CONFIG_HA { + pub _bitfield: u32, + pub hWndOwner: super::super::Foundation::HWND, + pub hDataSource: isize, + pub szReturnPathBuffer: ::windows_sys::core::PSTR, + pub cchReturnPathLength: u32, + pub pCallBack: CounterPathCallBack, + pub dwCallBackArg: usize, + pub CallBackStatus: i32, + pub dwDefaultDetailLevel: PERF_DETAIL, + pub szDialogBoxCaption: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_BROWSE_DLG_CONFIG_HA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_BROWSE_DLG_CONFIG_HA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PDH_BROWSE_DLG_CONFIG_HW { + pub _bitfield: u32, + pub hWndOwner: super::super::Foundation::HWND, + pub hDataSource: isize, + pub szReturnPathBuffer: ::windows_sys::core::PWSTR, + pub cchReturnPathLength: u32, + pub pCallBack: CounterPathCallBack, + pub dwCallBackArg: usize, + pub CallBackStatus: i32, + pub dwDefaultDetailLevel: PERF_DETAIL, + pub szDialogBoxCaption: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_BROWSE_DLG_CONFIG_HW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_BROWSE_DLG_CONFIG_HW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PDH_BROWSE_DLG_CONFIG_W { + pub _bitfield: u32, + pub hWndOwner: super::super::Foundation::HWND, + pub szDataSource: ::windows_sys::core::PWSTR, + pub szReturnPathBuffer: ::windows_sys::core::PWSTR, + pub cchReturnPathLength: u32, + pub pCallBack: CounterPathCallBack, + pub dwCallBackArg: usize, + pub CallBackStatus: i32, + pub dwDefaultDetailLevel: PERF_DETAIL, + pub szDialogBoxCaption: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_BROWSE_DLG_CONFIG_W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_BROWSE_DLG_CONFIG_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_COUNTER_INFO_A { + pub dwLength: u32, + pub dwType: u32, + pub CVersion: u32, + pub CStatus: u32, + pub lScale: i32, + pub lDefaultScale: i32, + pub dwUserData: usize, + pub dwQueryUserData: usize, + pub szFullPath: ::windows_sys::core::PSTR, + pub Anonymous: PDH_COUNTER_INFO_A_0, + pub szExplainText: ::windows_sys::core::PSTR, + pub DataBuffer: [u32; 1], +} +impl ::core::marker::Copy for PDH_COUNTER_INFO_A {} +impl ::core::clone::Clone for PDH_COUNTER_INFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PDH_COUNTER_INFO_A_0 { + pub DataItemPath: PDH_DATA_ITEM_PATH_ELEMENTS_A, + pub CounterPath: PDH_COUNTER_PATH_ELEMENTS_A, + pub Anonymous: PDH_COUNTER_INFO_A_0_0, +} +impl ::core::marker::Copy for PDH_COUNTER_INFO_A_0 {} +impl ::core::clone::Clone for PDH_COUNTER_INFO_A_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_COUNTER_INFO_A_0_0 { + pub szMachineName: ::windows_sys::core::PSTR, + pub szObjectName: ::windows_sys::core::PSTR, + pub szInstanceName: ::windows_sys::core::PSTR, + pub szParentInstance: ::windows_sys::core::PSTR, + pub dwInstanceIndex: u32, + pub szCounterName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for PDH_COUNTER_INFO_A_0_0 {} +impl ::core::clone::Clone for PDH_COUNTER_INFO_A_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_COUNTER_INFO_W { + pub dwLength: u32, + pub dwType: u32, + pub CVersion: u32, + pub CStatus: u32, + pub lScale: i32, + pub lDefaultScale: i32, + pub dwUserData: usize, + pub dwQueryUserData: usize, + pub szFullPath: ::windows_sys::core::PWSTR, + pub Anonymous: PDH_COUNTER_INFO_W_0, + pub szExplainText: ::windows_sys::core::PWSTR, + pub DataBuffer: [u32; 1], +} +impl ::core::marker::Copy for PDH_COUNTER_INFO_W {} +impl ::core::clone::Clone for PDH_COUNTER_INFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PDH_COUNTER_INFO_W_0 { + pub DataItemPath: PDH_DATA_ITEM_PATH_ELEMENTS_W, + pub CounterPath: PDH_COUNTER_PATH_ELEMENTS_W, + pub Anonymous: PDH_COUNTER_INFO_W_0_0, +} +impl ::core::marker::Copy for PDH_COUNTER_INFO_W_0 {} +impl ::core::clone::Clone for PDH_COUNTER_INFO_W_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_COUNTER_INFO_W_0_0 { + pub szMachineName: ::windows_sys::core::PWSTR, + pub szObjectName: ::windows_sys::core::PWSTR, + pub szInstanceName: ::windows_sys::core::PWSTR, + pub szParentInstance: ::windows_sys::core::PWSTR, + pub dwInstanceIndex: u32, + pub szCounterName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PDH_COUNTER_INFO_W_0_0 {} +impl ::core::clone::Clone for PDH_COUNTER_INFO_W_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_COUNTER_PATH_ELEMENTS_A { + pub szMachineName: ::windows_sys::core::PSTR, + pub szObjectName: ::windows_sys::core::PSTR, + pub szInstanceName: ::windows_sys::core::PSTR, + pub szParentInstance: ::windows_sys::core::PSTR, + pub dwInstanceIndex: u32, + pub szCounterName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for PDH_COUNTER_PATH_ELEMENTS_A {} +impl ::core::clone::Clone for PDH_COUNTER_PATH_ELEMENTS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_COUNTER_PATH_ELEMENTS_W { + pub szMachineName: ::windows_sys::core::PWSTR, + pub szObjectName: ::windows_sys::core::PWSTR, + pub szInstanceName: ::windows_sys::core::PWSTR, + pub szParentInstance: ::windows_sys::core::PWSTR, + pub dwInstanceIndex: u32, + pub szCounterName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PDH_COUNTER_PATH_ELEMENTS_W {} +impl ::core::clone::Clone for PDH_COUNTER_PATH_ELEMENTS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_DATA_ITEM_PATH_ELEMENTS_A { + pub szMachineName: ::windows_sys::core::PSTR, + pub ObjectGUID: ::windows_sys::core::GUID, + pub dwItemId: u32, + pub szInstanceName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for PDH_DATA_ITEM_PATH_ELEMENTS_A {} +impl ::core::clone::Clone for PDH_DATA_ITEM_PATH_ELEMENTS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_DATA_ITEM_PATH_ELEMENTS_W { + pub szMachineName: ::windows_sys::core::PWSTR, + pub ObjectGUID: ::windows_sys::core::GUID, + pub dwItemId: u32, + pub szInstanceName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for PDH_DATA_ITEM_PATH_ELEMENTS_W {} +impl ::core::clone::Clone for PDH_DATA_ITEM_PATH_ELEMENTS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_FMT_COUNTERVALUE { + pub CStatus: u32, + pub Anonymous: PDH_FMT_COUNTERVALUE_0, +} +impl ::core::marker::Copy for PDH_FMT_COUNTERVALUE {} +impl ::core::clone::Clone for PDH_FMT_COUNTERVALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PDH_FMT_COUNTERVALUE_0 { + pub longValue: i32, + pub doubleValue: f64, + pub largeValue: i64, + pub AnsiStringValue: ::windows_sys::core::PCSTR, + pub WideStringValue: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for PDH_FMT_COUNTERVALUE_0 {} +impl ::core::clone::Clone for PDH_FMT_COUNTERVALUE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_FMT_COUNTERVALUE_ITEM_A { + pub szName: ::windows_sys::core::PSTR, + pub FmtValue: PDH_FMT_COUNTERVALUE, +} +impl ::core::marker::Copy for PDH_FMT_COUNTERVALUE_ITEM_A {} +impl ::core::clone::Clone for PDH_FMT_COUNTERVALUE_ITEM_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_FMT_COUNTERVALUE_ITEM_W { + pub szName: ::windows_sys::core::PWSTR, + pub FmtValue: PDH_FMT_COUNTERVALUE, +} +impl ::core::marker::Copy for PDH_FMT_COUNTERVALUE_ITEM_W {} +impl ::core::clone::Clone for PDH_FMT_COUNTERVALUE_ITEM_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PDH_LOG_SERVICE_QUERY_INFO_A { + pub dwSize: u32, + pub dwFlags: u32, + pub dwLogQuota: u32, + pub szLogFileCaption: ::windows_sys::core::PSTR, + pub szDefaultDir: ::windows_sys::core::PSTR, + pub szBaseFileName: ::windows_sys::core::PSTR, + pub dwFileType: u32, + pub dwReserved: u32, + pub Anonymous: PDH_LOG_SERVICE_QUERY_INFO_A_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_LOG_SERVICE_QUERY_INFO_A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_LOG_SERVICE_QUERY_INFO_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union PDH_LOG_SERVICE_QUERY_INFO_A_0 { + pub Anonymous1: PDH_LOG_SERVICE_QUERY_INFO_A_0_0, + pub Anonymous2: PDH_LOG_SERVICE_QUERY_INFO_A_0_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_LOG_SERVICE_QUERY_INFO_A_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_LOG_SERVICE_QUERY_INFO_A_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PDH_LOG_SERVICE_QUERY_INFO_A_0_0 { + pub PdlAutoNameInterval: u32, + pub PdlAutoNameUnits: u32, + pub PdlCommandFilename: ::windows_sys::core::PSTR, + pub PdlCounterList: ::windows_sys::core::PSTR, + pub PdlAutoNameFormat: u32, + pub PdlSampleInterval: u32, + pub PdlLogStartTime: super::super::Foundation::FILETIME, + pub PdlLogEndTime: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_LOG_SERVICE_QUERY_INFO_A_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_LOG_SERVICE_QUERY_INFO_A_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PDH_LOG_SERVICE_QUERY_INFO_A_0_1 { + pub TlNumberOfBuffers: u32, + pub TlMinimumBuffers: u32, + pub TlMaximumBuffers: u32, + pub TlFreeBuffers: u32, + pub TlBufferSize: u32, + pub TlEventsLost: u32, + pub TlLoggerThreadId: u32, + pub TlBuffersWritten: u32, + pub TlLogHandle: u32, + pub TlLogFileName: ::windows_sys::core::PSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_LOG_SERVICE_QUERY_INFO_A_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_LOG_SERVICE_QUERY_INFO_A_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PDH_LOG_SERVICE_QUERY_INFO_W { + pub dwSize: u32, + pub dwFlags: u32, + pub dwLogQuota: u32, + pub szLogFileCaption: ::windows_sys::core::PWSTR, + pub szDefaultDir: ::windows_sys::core::PWSTR, + pub szBaseFileName: ::windows_sys::core::PWSTR, + pub dwFileType: u32, + pub dwReserved: u32, + pub Anonymous: PDH_LOG_SERVICE_QUERY_INFO_W_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_LOG_SERVICE_QUERY_INFO_W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_LOG_SERVICE_QUERY_INFO_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union PDH_LOG_SERVICE_QUERY_INFO_W_0 { + pub Anonymous1: PDH_LOG_SERVICE_QUERY_INFO_W_0_0, + pub Anonymous2: PDH_LOG_SERVICE_QUERY_INFO_W_0_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_LOG_SERVICE_QUERY_INFO_W_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_LOG_SERVICE_QUERY_INFO_W_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PDH_LOG_SERVICE_QUERY_INFO_W_0_0 { + pub PdlAutoNameInterval: u32, + pub PdlAutoNameUnits: u32, + pub PdlCommandFilename: ::windows_sys::core::PWSTR, + pub PdlCounterList: ::windows_sys::core::PWSTR, + pub PdlAutoNameFormat: u32, + pub PdlSampleInterval: u32, + pub PdlLogStartTime: super::super::Foundation::FILETIME, + pub PdlLogEndTime: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_LOG_SERVICE_QUERY_INFO_W_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_LOG_SERVICE_QUERY_INFO_W_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PDH_LOG_SERVICE_QUERY_INFO_W_0_1 { + pub TlNumberOfBuffers: u32, + pub TlMinimumBuffers: u32, + pub TlMaximumBuffers: u32, + pub TlFreeBuffers: u32, + pub TlBufferSize: u32, + pub TlEventsLost: u32, + pub TlLoggerThreadId: u32, + pub TlBuffersWritten: u32, + pub TlLogHandle: u32, + pub TlLogFileName: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_LOG_SERVICE_QUERY_INFO_W_0_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_LOG_SERVICE_QUERY_INFO_W_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PDH_RAW_COUNTER { + pub CStatus: u32, + pub TimeStamp: super::super::Foundation::FILETIME, + pub FirstValue: i64, + pub SecondValue: i64, + pub MultiCount: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_RAW_COUNTER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_RAW_COUNTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PDH_RAW_COUNTER_ITEM_A { + pub szName: ::windows_sys::core::PSTR, + pub RawValue: PDH_RAW_COUNTER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_RAW_COUNTER_ITEM_A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_RAW_COUNTER_ITEM_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PDH_RAW_COUNTER_ITEM_W { + pub szName: ::windows_sys::core::PWSTR, + pub RawValue: PDH_RAW_COUNTER, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PDH_RAW_COUNTER_ITEM_W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PDH_RAW_COUNTER_ITEM_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_RAW_LOG_RECORD { + pub dwStructureSize: u32, + pub dwRecordType: PDH_LOG_TYPE, + pub dwItems: u32, + pub RawBytes: [u8; 1], +} +impl ::core::marker::Copy for PDH_RAW_LOG_RECORD {} +impl ::core::clone::Clone for PDH_RAW_LOG_RECORD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_STATISTICS { + pub dwFormat: u32, + pub count: u32, + pub min: PDH_FMT_COUNTERVALUE, + pub max: PDH_FMT_COUNTERVALUE, + pub mean: PDH_FMT_COUNTERVALUE, +} +impl ::core::marker::Copy for PDH_STATISTICS {} +impl ::core::clone::Clone for PDH_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PDH_TIME_INFO { + pub StartTime: i64, + pub EndTime: i64, + pub SampleCount: u32, +} +impl ::core::marker::Copy for PDH_TIME_INFO {} +impl ::core::clone::Clone for PDH_TIME_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_COUNTERSET_INFO { + pub CounterSetGuid: ::windows_sys::core::GUID, + pub ProviderGuid: ::windows_sys::core::GUID, + pub NumCounters: u32, + pub InstanceType: u32, +} +impl ::core::marker::Copy for PERF_COUNTERSET_INFO {} +impl ::core::clone::Clone for PERF_COUNTERSET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_COUNTERSET_INSTANCE { + pub CounterSetGuid: ::windows_sys::core::GUID, + pub dwSize: u32, + pub InstanceId: u32, + pub InstanceNameOffset: u32, + pub InstanceNameSize: u32, +} +impl ::core::marker::Copy for PERF_COUNTERSET_INSTANCE {} +impl ::core::clone::Clone for PERF_COUNTERSET_INSTANCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_COUNTERSET_REG_INFO { + pub CounterSetGuid: ::windows_sys::core::GUID, + pub CounterSetType: u32, + pub DetailLevel: u32, + pub NumCounters: u32, + pub InstanceType: u32, +} +impl ::core::marker::Copy for PERF_COUNTERSET_REG_INFO {} +impl ::core::clone::Clone for PERF_COUNTERSET_REG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_COUNTER_BLOCK { + pub ByteLength: u32, +} +impl ::core::marker::Copy for PERF_COUNTER_BLOCK {} +impl ::core::clone::Clone for PERF_COUNTER_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_COUNTER_DATA { + pub dwDataSize: u32, + pub dwSize: u32, +} +impl ::core::marker::Copy for PERF_COUNTER_DATA {} +impl ::core::clone::Clone for PERF_COUNTER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct PERF_COUNTER_DEFINITION { + pub ByteLength: u32, + pub CounterNameTitleIndex: u32, + pub CounterNameTitle: u32, + pub CounterHelpTitleIndex: u32, + pub CounterHelpTitle: u32, + pub DefaultScale: i32, + pub DetailLevel: u32, + pub CounterType: u32, + pub CounterSize: u32, + pub CounterOffset: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for PERF_COUNTER_DEFINITION {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for PERF_COUNTER_DEFINITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct PERF_COUNTER_DEFINITION { + pub ByteLength: u32, + pub CounterNameTitleIndex: u32, + pub CounterNameTitle: ::windows_sys::core::PWSTR, + pub CounterHelpTitleIndex: u32, + pub CounterHelpTitle: ::windows_sys::core::PWSTR, + pub DefaultScale: i32, + pub DetailLevel: u32, + pub CounterType: u32, + pub CounterSize: u32, + pub CounterOffset: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for PERF_COUNTER_DEFINITION {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for PERF_COUNTER_DEFINITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_COUNTER_HEADER { + pub dwStatus: u32, + pub dwType: PerfCounterDataType, + pub dwSize: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for PERF_COUNTER_HEADER {} +impl ::core::clone::Clone for PERF_COUNTER_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_COUNTER_IDENTIFIER { + pub CounterSetGuid: ::windows_sys::core::GUID, + pub Status: u32, + pub Size: u32, + pub CounterId: u32, + pub InstanceId: u32, + pub Index: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for PERF_COUNTER_IDENTIFIER {} +impl ::core::clone::Clone for PERF_COUNTER_IDENTIFIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_COUNTER_IDENTITY { + pub CounterSetGuid: ::windows_sys::core::GUID, + pub BufferSize: u32, + pub CounterId: u32, + pub InstanceId: u32, + pub MachineOffset: u32, + pub NameOffset: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for PERF_COUNTER_IDENTITY {} +impl ::core::clone::Clone for PERF_COUNTER_IDENTITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_COUNTER_INFO { + pub CounterId: u32, + pub Type: u32, + pub Attrib: u64, + pub Size: u32, + pub DetailLevel: u32, + pub Scale: i32, + pub Offset: u32, +} +impl ::core::marker::Copy for PERF_COUNTER_INFO {} +impl ::core::clone::Clone for PERF_COUNTER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_COUNTER_REG_INFO { + pub CounterId: u32, + pub Type: u32, + pub Attrib: u64, + pub DetailLevel: u32, + pub DefaultScale: i32, + pub BaseCounterId: u32, + pub PerfTimeId: u32, + pub PerfFreqId: u32, + pub MultiId: u32, + pub AggregateFunc: PERF_COUNTER_AGGREGATE_FUNC, + pub Reserved: u32, +} +impl ::core::marker::Copy for PERF_COUNTER_REG_INFO {} +impl ::core::clone::Clone for PERF_COUNTER_REG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PERF_DATA_BLOCK { + pub Signature: [u16; 4], + pub LittleEndian: u32, + pub Version: u32, + pub Revision: u32, + pub TotalByteLength: u32, + pub HeaderLength: u32, + pub NumObjectTypes: u32, + pub DefaultObject: i32, + pub SystemTime: super::super::Foundation::SYSTEMTIME, + pub PerfTime: i64, + pub PerfFreq: i64, + pub PerfTime100nSec: i64, + pub SystemNameLength: u32, + pub SystemNameOffset: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PERF_DATA_BLOCK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PERF_DATA_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PERF_DATA_HEADER { + pub dwTotalSize: u32, + pub dwNumCounters: u32, + pub PerfTimeStamp: i64, + pub PerfTime100NSec: i64, + pub PerfFreq: i64, + pub SystemTime: super::super::Foundation::SYSTEMTIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PERF_DATA_HEADER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PERF_DATA_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_INSTANCE_DEFINITION { + pub ByteLength: u32, + pub ParentObjectTitleIndex: u32, + pub ParentObjectInstance: u32, + pub UniqueID: i32, + pub NameOffset: u32, + pub NameLength: u32, +} +impl ::core::marker::Copy for PERF_INSTANCE_DEFINITION {} +impl ::core::clone::Clone for PERF_INSTANCE_DEFINITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_INSTANCE_HEADER { + pub Size: u32, + pub InstanceId: u32, +} +impl ::core::marker::Copy for PERF_INSTANCE_HEADER {} +impl ::core::clone::Clone for PERF_INSTANCE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_MULTI_COUNTERS { + pub dwSize: u32, + pub dwCounters: u32, +} +impl ::core::marker::Copy for PERF_MULTI_COUNTERS {} +impl ::core::clone::Clone for PERF_MULTI_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_MULTI_INSTANCES { + pub dwTotalSize: u32, + pub dwInstances: u32, +} +impl ::core::marker::Copy for PERF_MULTI_INSTANCES {} +impl ::core::clone::Clone for PERF_MULTI_INSTANCES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct PERF_OBJECT_TYPE { + pub TotalByteLength: u32, + pub DefinitionLength: u32, + pub HeaderLength: u32, + pub ObjectNameTitleIndex: u32, + pub ObjectNameTitle: u32, + pub ObjectHelpTitleIndex: u32, + pub ObjectHelpTitle: u32, + pub DetailLevel: u32, + pub NumCounters: u32, + pub DefaultCounter: i32, + pub NumInstances: i32, + pub CodePage: u32, + pub PerfTime: i64, + pub PerfFreq: i64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for PERF_OBJECT_TYPE {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for PERF_OBJECT_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct PERF_OBJECT_TYPE { + pub TotalByteLength: u32, + pub DefinitionLength: u32, + pub HeaderLength: u32, + pub ObjectNameTitleIndex: u32, + pub ObjectNameTitle: ::windows_sys::core::PWSTR, + pub ObjectHelpTitleIndex: u32, + pub ObjectHelpTitle: ::windows_sys::core::PWSTR, + pub DetailLevel: u32, + pub NumCounters: u32, + pub DefaultCounter: i32, + pub NumInstances: i32, + pub CodePage: u32, + pub PerfTime: i64, + pub PerfFreq: i64, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for PERF_OBJECT_TYPE {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for PERF_OBJECT_TYPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_PROVIDER_CONTEXT { + pub ContextSize: u32, + pub Reserved: u32, + pub ControlCallback: PERFLIBREQUEST, + pub MemAllocRoutine: PERF_MEM_ALLOC, + pub MemFreeRoutine: PERF_MEM_FREE, + pub pMemContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for PERF_PROVIDER_CONTEXT {} +impl ::core::clone::Clone for PERF_PROVIDER_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_STRING_BUFFER_HEADER { + pub dwSize: u32, + pub dwCounters: u32, +} +impl ::core::marker::Copy for PERF_STRING_BUFFER_HEADER {} +impl ::core::clone::Clone for PERF_STRING_BUFFER_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERF_STRING_COUNTER_HEADER { + pub dwCounterId: u32, + pub dwOffset: u32, +} +impl ::core::marker::Copy for PERF_STRING_COUNTER_HEADER {} +impl ::core::clone::Clone for PERF_STRING_COUNTER_HEADER { + fn clone(&self) -> Self { + *self + } +} +pub type CounterPathCallBack = ::core::option::Option i32>; +pub type PERFLIBREQUEST = ::core::option::Option u32>; +pub type PERF_MEM_ALLOC = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PERF_MEM_FREE = ::core::option::Option ()>; +pub type PLA_CABEXTRACT_CALLBACK = ::core::option::Option ()>; +pub type PM_CLOSE_PROC = ::core::option::Option u32>; +pub type PM_COLLECT_PROC = ::core::option::Option u32>; +pub type PM_OPEN_PROC = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Pipes/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Pipes/mod.rs new file mode 100644 index 000000000..8c37d671a --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Pipes/mod.rs @@ -0,0 +1,59 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CallNamedPipeA(lpnamedpipename : ::windows_sys::core::PCSTR, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesread : *mut u32, ntimeout : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CallNamedPipeW(lpnamedpipename : ::windows_sys::core::PCWSTR, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesread : *mut u32, ntimeout : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn ConnectNamedPipe(hnamedpipe : super::super::Foundation:: HANDLE, lpoverlapped : *mut super::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`"] fn CreateNamedPipeA(lpname : ::windows_sys::core::PCSTR, dwopenmode : super::super::Storage::FileSystem:: FILE_FLAGS_AND_ATTRIBUTES, dwpipemode : NAMED_PIPE_MODE, nmaxinstances : u32, noutbuffersize : u32, ninbuffersize : u32, ndefaulttimeout : u32, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_Storage_FileSystem\"`"] fn CreateNamedPipeW(lpname : ::windows_sys::core::PCWSTR, dwopenmode : super::super::Storage::FileSystem:: FILE_FLAGS_AND_ATTRIBUTES, dwpipemode : NAMED_PIPE_MODE, nmaxinstances : u32, noutbuffersize : u32, ninbuffersize : u32, ndefaulttimeout : u32, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreatePipe(hreadpipe : *mut super::super::Foundation:: HANDLE, hwritepipe : *mut super::super::Foundation:: HANDLE, lppipeattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, nsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DisconnectNamedPipe(hnamedpipe : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNamedPipeClientComputerNameA(pipe : super::super::Foundation:: HANDLE, clientcomputername : ::windows_sys::core::PSTR, clientcomputernamelength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNamedPipeClientComputerNameW(pipe : super::super::Foundation:: HANDLE, clientcomputername : ::windows_sys::core::PWSTR, clientcomputernamelength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNamedPipeClientProcessId(pipe : super::super::Foundation:: HANDLE, clientprocessid : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNamedPipeClientSessionId(pipe : super::super::Foundation:: HANDLE, clientsessionid : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNamedPipeHandleStateA(hnamedpipe : super::super::Foundation:: HANDLE, lpstate : *mut NAMED_PIPE_MODE, lpcurinstances : *mut u32, lpmaxcollectioncount : *mut u32, lpcollectdatatimeout : *mut u32, lpusername : ::windows_sys::core::PSTR, nmaxusernamesize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNamedPipeHandleStateW(hnamedpipe : super::super::Foundation:: HANDLE, lpstate : *mut NAMED_PIPE_MODE, lpcurinstances : *mut u32, lpmaxcollectioncount : *mut u32, lpcollectdatatimeout : *mut u32, lpusername : ::windows_sys::core::PWSTR, nmaxusernamesize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNamedPipeInfo(hnamedpipe : super::super::Foundation:: HANDLE, lpflags : *mut NAMED_PIPE_MODE, lpoutbuffersize : *mut u32, lpinbuffersize : *mut u32, lpmaxinstances : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNamedPipeServerProcessId(pipe : super::super::Foundation:: HANDLE, serverprocessid : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNamedPipeServerSessionId(pipe : super::super::Foundation:: HANDLE, serversessionid : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImpersonateNamedPipeClient(hnamedpipe : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeekNamedPipe(hnamedpipe : super::super::Foundation:: HANDLE, lpbuffer : *mut ::core::ffi::c_void, nbuffersize : u32, lpbytesread : *mut u32, lptotalbytesavail : *mut u32, lpbytesleftthismessage : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetNamedPipeHandleState(hnamedpipe : super::super::Foundation:: HANDLE, lpmode : *const NAMED_PIPE_MODE, lpmaxcollectioncount : *const u32, lpcollectdatatimeout : *const u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn TransactNamedPipe(hnamedpipe : super::super::Foundation:: HANDLE, lpinbuffer : *const ::core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut ::core::ffi::c_void, noutbuffersize : u32, lpbytesread : *mut u32, lpoverlapped : *mut super::IO:: OVERLAPPED) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitNamedPipeA(lpnamedpipename : ::windows_sys::core::PCSTR, ntimeout : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitNamedPipeW(lpnamedpipename : ::windows_sys::core::PCWSTR, ntimeout : u32) -> super::super::Foundation:: BOOL); +pub const NMPWAIT_NOWAIT: u32 = 1u32; +pub const NMPWAIT_USE_DEFAULT_WAIT: u32 = 0u32; +pub const NMPWAIT_WAIT_FOREVER: u32 = 4294967295u32; +pub const PIPE_ACCEPT_REMOTE_CLIENTS: NAMED_PIPE_MODE = 0u32; +pub const PIPE_CLIENT_END: NAMED_PIPE_MODE = 0u32; +pub const PIPE_NOWAIT: NAMED_PIPE_MODE = 1u32; +pub const PIPE_READMODE_BYTE: NAMED_PIPE_MODE = 0u32; +pub const PIPE_READMODE_MESSAGE: NAMED_PIPE_MODE = 2u32; +pub const PIPE_REJECT_REMOTE_CLIENTS: NAMED_PIPE_MODE = 8u32; +pub const PIPE_SERVER_END: NAMED_PIPE_MODE = 1u32; +pub const PIPE_TYPE_BYTE: NAMED_PIPE_MODE = 0u32; +pub const PIPE_TYPE_MESSAGE: NAMED_PIPE_MODE = 4u32; +pub const PIPE_UNLIMITED_INSTANCES: u32 = 255u32; +pub const PIPE_WAIT: NAMED_PIPE_MODE = 0u32; +pub type NAMED_PIPE_MODE = u32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Power/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Power/mod.rs new file mode 100644 index 000000000..bdf547750 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Power/mod.rs @@ -0,0 +1,1899 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CallNtPowerInformation(informationlevel : POWER_INFORMATION_LEVEL, inputbuffer : *const ::core::ffi::c_void, inputbufferlength : u32, outputbuffer : *mut ::core::ffi::c_void, outputbufferlength : u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CanUserWritePwrScheme() -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeletePwrScheme(uiid : u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DevicePowerClose() -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DevicePowerEnumDevices(queryindex : u32, queryinterpretationflags : u32, queryflags : u32, preturnbuffer : *mut u8, pbuffersize : *mut u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DevicePowerOpen(debugmask : u32) -> super::super::Foundation:: BOOLEAN); +::windows_targets::link!("powrprof.dll" "system" fn DevicePowerSetDeviceState(devicedescription : ::windows_sys::core::PCWSTR, setflags : u32, setdata : *const ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPwrSchemes(lpfn : PWRSCHEMESENUMPROC, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetActivePwrScheme(puiid : *mut u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentPowerPolicies(pglobalpowerpolicy : *mut GLOBAL_POWER_POLICY, ppowerpolicy : *mut POWER_POLICY) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDevicePowerState(hdevice : super::super::Foundation:: HANDLE, pfon : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPwrCapabilities(lpspc : *mut SYSTEM_POWER_CAPABILITIES) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPwrDiskSpindownRange(puimax : *mut u32, puimin : *mut u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemPowerStatus(lpsystempowerstatus : *mut SYSTEM_POWER_STATUS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsAdminOverrideActive(papp : *const ADMINISTRATOR_POWER_POLICY) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsPwrHibernateAllowed() -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsPwrShutdownAllowed() -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsPwrSuspendAllowed() -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsSystemResumeAutomatic() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PowerCanRestoreIndividualDefaultPowerScheme(schemeguid : *const ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PowerClearRequest(powerrequest : super::super::Foundation:: HANDLE, requesttype : POWER_REQUEST_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerCreatePossibleSetting(rootsystempowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, possiblesettingindex : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] fn PowerCreateRequest(context : *const super::Threading:: REASON_CONTEXT) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerCreateSetting(rootsystempowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerDeleteScheme(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("powrprof.dll" "system" fn PowerDeterminePlatformRole() -> POWER_PLATFORM_ROLE); +::windows_targets::link!("powrprof.dll" "system" fn PowerDeterminePlatformRoleEx(version : POWER_PLATFORM_ROLE_VERSION) -> POWER_PLATFORM_ROLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerDuplicateScheme(rootpowerkey : super::Registry:: HKEY, sourceschemeguid : *const ::windows_sys::core::GUID, destinationschemeguid : *mut *mut ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerEnumerate(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, accessflags : POWER_DATA_ACCESSOR, index : u32, buffer : *mut u8, buffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerGetActiveScheme(userrootpowerkey : super::Registry:: HKEY, activepolicyguid : *mut *mut ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerImportPowerScheme(rootpowerkey : super::Registry:: HKEY, importfilenamepath : ::windows_sys::core::PCWSTR, destinationschemeguid : *mut *mut ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PowerIsSettingRangeDefined(subkeyguid : *const ::windows_sys::core::GUID, settingguid : *const ::windows_sys::core::GUID) -> super::super::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerOpenSystemPowerKey(phsystempowerkey : *mut super::Registry:: HKEY, access : u32, openexisting : super::super::Foundation:: BOOL) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerOpenUserPowerKey(phuserpowerkey : *mut super::Registry:: HKEY, access : u32, openexisting : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn PowerReadACDefaultIndex(rootpowerkey : super::Registry:: HKEY, schemepersonalityguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, acdefaultindex : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerReadACValue(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, r#type : *mut u32, buffer : *mut u8, buffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn PowerReadACValueIndex(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, acvalueindex : *mut u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn PowerReadDCDefaultIndex(rootpowerkey : super::Registry:: HKEY, schemepersonalityguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, dcdefaultindex : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerReadDCValue(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, r#type : *mut u32, buffer : *mut u8, buffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn PowerReadDCValueIndex(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, dcvalueindex : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerReadDescription(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, buffer : *mut u8, buffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerReadFriendlyName(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, buffer : *mut u8, buffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerReadIconResourceSpecifier(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, buffer : *mut u8, buffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerReadPossibleDescription(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, possiblesettingindex : u32, buffer : *mut u8, buffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerReadPossibleFriendlyName(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, possiblesettingindex : u32, buffer : *mut u8, buffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerReadPossibleValue(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, r#type : *mut u32, possiblesettingindex : u32, buffer : *mut u8, buffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("powrprof.dll" "system" fn PowerReadSettingAttributes(subgroupguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerReadValueIncrement(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, valueincrement : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerReadValueMax(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, valuemaximum : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerReadValueMin(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, valueminimum : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerReadValueUnitsSpecifier(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, buffer : *mut u8, buffersize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("powrprof.dll" "system" fn PowerRegisterForEffectivePowerModeNotifications(version : u32, callback : EFFECTIVE_POWER_MODE_CALLBACK, context : *const ::core::ffi::c_void, registrationhandle : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn PowerRegisterSuspendResumeNotification(flags : super::super::UI::WindowsAndMessaging:: REGISTER_NOTIFICATION_FLAGS, recipient : super::super::Foundation:: HANDLE, registrationhandle : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PowerRemovePowerSetting(powersettingsubkeyguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("powrprof.dll" "system" fn PowerReplaceDefaultPowerSchemes() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PowerReportThermalEvent(event : *const THERMAL_EVENT) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PowerRestoreDefaultPowerSchemes() -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PowerRestoreIndividualDefaultPowerScheme(schemeguid : *const ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerSetActiveScheme(userrootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PowerSetRequest(powerrequest : super::super::Foundation:: HANDLE, requesttype : POWER_REQUEST_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PowerSettingAccessCheck(accessflags : POWER_DATA_ACCESSOR, powerguid : *const ::windows_sys::core::GUID) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerSettingAccessCheckEx(accessflags : POWER_DATA_ACCESSOR, powerguid : *const ::windows_sys::core::GUID, accesstype : super::Registry:: REG_SAM_FLAGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn PowerSettingRegisterNotification(settingguid : *const ::windows_sys::core::GUID, flags : super::super::UI::WindowsAndMessaging:: REGISTER_NOTIFICATION_FLAGS, recipient : super::super::Foundation:: HANDLE, registrationhandle : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PowerSettingUnregisterNotification(registrationhandle : HPOWERNOTIFY) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("powrprof.dll" "system" fn PowerUnregisterFromEffectivePowerModeNotifications(registrationhandle : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PowerUnregisterSuspendResumeNotification(registrationhandle : HPOWERNOTIFY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn PowerWriteACDefaultIndex(rootsystempowerkey : super::Registry:: HKEY, schemepersonalityguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, defaultacindex : u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn PowerWriteACValueIndex(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, acvalueindex : u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn PowerWriteDCDefaultIndex(rootsystempowerkey : super::Registry:: HKEY, schemepersonalityguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, defaultdcindex : u32) -> u32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn PowerWriteDCValueIndex(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, dcvalueindex : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerWriteDescription(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, buffer : *const u8, buffersize : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerWriteFriendlyName(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, buffer : *const u8, buffersize : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerWriteIconResourceSpecifier(rootpowerkey : super::Registry:: HKEY, schemeguid : *const ::windows_sys::core::GUID, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, buffer : *const u8, buffersize : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerWritePossibleDescription(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, possiblesettingindex : u32, buffer : *const u8, buffersize : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerWritePossibleFriendlyName(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, possiblesettingindex : u32, buffer : *const u8, buffersize : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerWritePossibleValue(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, r#type : u32, possiblesettingindex : u32, buffer : *const u8, buffersize : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PowerWriteSettingAttributes(subgroupguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, attributes : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerWriteValueIncrement(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, valueincrement : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerWriteValueMax(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, valuemaximum : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerWriteValueMin(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, valueminimum : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn PowerWriteValueUnitsSpecifier(rootpowerkey : super::Registry:: HKEY, subgroupofpowersettingsguid : *const ::windows_sys::core::GUID, powersettingguid : *const ::windows_sys::core::GUID, buffer : *const u8, buffersize : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadGlobalPwrPolicy(pglobalpowerpolicy : *const GLOBAL_POWER_POLICY) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadProcessorPwrScheme(uiid : u32, pmachineprocessorpowerpolicy : *mut MACHINE_PROCESSOR_POWER_POLICY) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadPwrScheme(uiid : u32, ppowerpolicy : *mut POWER_POLICY) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterPowerSettingNotification(hrecipient : super::super::Foundation:: HANDLE, powersettingguid : *const ::windows_sys::core::GUID, flags : u32) -> HPOWERNOTIFY); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn RegisterSuspendResumeNotification(hrecipient : super::super::Foundation:: HANDLE, flags : super::super::UI::WindowsAndMessaging:: REGISTER_NOTIFICATION_FLAGS) -> HPOWERNOTIFY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RequestWakeupLatency(latency : LATENCY_TIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetActivePwrScheme(uiid : u32, pglobalpowerpolicy : *const GLOBAL_POWER_POLICY, ppowerpolicy : *const POWER_POLICY) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSuspendState(bhibernate : super::super::Foundation:: BOOLEAN, bforce : super::super::Foundation:: BOOLEAN, bwakeupeventsdisabled : super::super::Foundation:: BOOLEAN) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSystemPowerState(fsuspend : super::super::Foundation:: BOOL, fforce : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn SetThreadExecutionState(esflags : EXECUTION_STATE) -> EXECUTION_STATE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterPowerSettingNotification(handle : HPOWERNOTIFY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterSuspendResumeNotification(handle : HPOWERNOTIFY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ValidatePowerPolicies(pglobalpowerpolicy : *mut GLOBAL_POWER_POLICY, ppowerpolicy : *mut POWER_POLICY) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteGlobalPwrPolicy(pglobalpowerpolicy : *const GLOBAL_POWER_POLICY) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteProcessorPwrScheme(uiid : u32, pmachineprocessorpowerpolicy : *const MACHINE_PROCESSOR_POWER_POLICY) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("powrprof.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WritePwrScheme(puiid : *const u32, lpszschemename : ::windows_sys::core::PCWSTR, lpszdescription : ::windows_sys::core::PCWSTR, lpscheme : *const POWER_POLICY) -> super::super::Foundation:: BOOLEAN); +pub const ACCESS_ACTIVE_OVERLAY_SCHEME: POWER_DATA_ACCESSOR = 27i32; +pub const ACCESS_ACTIVE_SCHEME: POWER_DATA_ACCESSOR = 19i32; +pub const ACCESS_AC_POWER_SETTING_INDEX: POWER_DATA_ACCESSOR = 0i32; +pub const ACCESS_AC_POWER_SETTING_MAX: POWER_DATA_ACCESSOR = 21i32; +pub const ACCESS_AC_POWER_SETTING_MIN: POWER_DATA_ACCESSOR = 23i32; +pub const ACCESS_ATTRIBUTES: POWER_DATA_ACCESSOR = 15i32; +pub const ACCESS_CREATE_SCHEME: POWER_DATA_ACCESSOR = 20i32; +pub const ACCESS_DC_POWER_SETTING_INDEX: POWER_DATA_ACCESSOR = 1i32; +pub const ACCESS_DC_POWER_SETTING_MAX: POWER_DATA_ACCESSOR = 22i32; +pub const ACCESS_DC_POWER_SETTING_MIN: POWER_DATA_ACCESSOR = 24i32; +pub const ACCESS_DEFAULT_AC_POWER_SETTING: POWER_DATA_ACCESSOR = 7i32; +pub const ACCESS_DEFAULT_DC_POWER_SETTING: POWER_DATA_ACCESSOR = 8i32; +pub const ACCESS_DEFAULT_SECURITY_DESCRIPTOR: POWER_DATA_ACCESSOR = 14i32; +pub const ACCESS_DESCRIPTION: POWER_DATA_ACCESSOR = 3i32; +pub const ACCESS_FRIENDLY_NAME: POWER_DATA_ACCESSOR = 2i32; +pub const ACCESS_ICON_RESOURCE: POWER_DATA_ACCESSOR = 13i32; +pub const ACCESS_INDIVIDUAL_SETTING: POWER_DATA_ACCESSOR = 18i32; +pub const ACCESS_OVERLAY_SCHEME: POWER_DATA_ACCESSOR = 26i32; +pub const ACCESS_POSSIBLE_POWER_SETTING: POWER_DATA_ACCESSOR = 4i32; +pub const ACCESS_POSSIBLE_POWER_SETTING_DESCRIPTION: POWER_DATA_ACCESSOR = 6i32; +pub const ACCESS_POSSIBLE_POWER_SETTING_FRIENDLY_NAME: POWER_DATA_ACCESSOR = 5i32; +pub const ACCESS_POSSIBLE_VALUE_INCREMENT: POWER_DATA_ACCESSOR = 11i32; +pub const ACCESS_POSSIBLE_VALUE_MAX: POWER_DATA_ACCESSOR = 10i32; +pub const ACCESS_POSSIBLE_VALUE_MIN: POWER_DATA_ACCESSOR = 9i32; +pub const ACCESS_POSSIBLE_VALUE_UNITS: POWER_DATA_ACCESSOR = 12i32; +pub const ACCESS_PROFILE: POWER_DATA_ACCESSOR = 25i32; +pub const ACCESS_SCHEME: POWER_DATA_ACCESSOR = 16i32; +pub const ACCESS_SUBGROUP: POWER_DATA_ACCESSOR = 17i32; +pub const ACPI_TIME_ADJUST_DAYLIGHT: u32 = 1u32; +pub const ACPI_TIME_IN_DAYLIGHT: u32 = 2u32; +pub const ACPI_TIME_ZONE_UNKNOWN: u32 = 2047u32; +pub const ACTIVE_COOLING: u32 = 0u32; +pub const ALTITUDE_GROUP_POLICY: POWER_SETTING_ALTITUDE = 0i32; +pub const ALTITUDE_INTERNAL_OVERRIDE: POWER_SETTING_ALTITUDE = 5i32; +pub const ALTITUDE_OEM_CUSTOMIZATION: POWER_SETTING_ALTITUDE = 4i32; +pub const ALTITUDE_OS_DEFAULT: POWER_SETTING_ALTITUDE = 6i32; +pub const ALTITUDE_PROVISIONING: POWER_SETTING_ALTITUDE = 3i32; +pub const ALTITUDE_RUNTIME_OVERRIDE: POWER_SETTING_ALTITUDE = 2i32; +pub const ALTITUDE_USER: POWER_SETTING_ALTITUDE = 1i32; +pub const AcpiTimeResolutionMax: ACPI_TIME_RESOLUTION = 2i32; +pub const AcpiTimeResolutionMilliseconds: ACPI_TIME_RESOLUTION = 0i32; +pub const AcpiTimeResolutionSeconds: ACPI_TIME_RESOLUTION = 1i32; +pub const AdministratorPowerPolicy: POWER_INFORMATION_LEVEL = 9i32; +pub const BATTERY_CAPACITY_RELATIVE: u32 = 1073741824u32; +pub const BATTERY_CHARGING: u32 = 4u32; +pub const BATTERY_CLASS_MAJOR_VERSION: u32 = 1u32; +pub const BATTERY_CLASS_MINOR_VERSION: u32 = 0u32; +pub const BATTERY_CLASS_MINOR_VERSION_1: u32 = 1u32; +pub const BATTERY_CRITICAL: u32 = 8u32; +pub const BATTERY_CYCLE_COUNT_WMI_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xef98db24_0014_4c25_a50b_c724ae5cd371); +pub const BATTERY_DISCHARGING: u32 = 2u32; +pub const BATTERY_FULL_CHARGED_CAPACITY_WMI_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x40b40565_96f7_4435_8694_97e0e4395905); +pub const BATTERY_IS_SHORT_TERM: u32 = 536870912u32; +pub const BATTERY_MINIPORT_UPDATE_DATA_VER_1: u32 = 1u32; +pub const BATTERY_MINIPORT_UPDATE_DATA_VER_2: u32 = 2u32; +pub const BATTERY_POWER_ON_LINE: u32 = 1u32; +pub const BATTERY_RUNTIME_WMI_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x535a3767_1ac2_49bc_a077_3f7a02e40aec); +pub const BATTERY_SEALED: u32 = 268435456u32; +pub const BATTERY_SET_CHARGER_ID_SUPPORTED: u32 = 8u32; +pub const BATTERY_SET_CHARGE_SUPPORTED: u32 = 1u32; +pub const BATTERY_SET_CHARGINGSOURCE_SUPPORTED: u32 = 4u32; +pub const BATTERY_SET_DISCHARGE_SUPPORTED: u32 = 2u32; +pub const BATTERY_STATIC_DATA_WMI_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x05e1e463_e4e2_4ea9_80cb_9bd4b3ca0655); +pub const BATTERY_STATUS_CHANGE_WMI_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcddfa0c3_7c5b_4e43_a034_059fa5b84364); +pub const BATTERY_STATUS_WMI_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfc4670d1_ebbf_416e_87ce_374a4ebc111a); +pub const BATTERY_SYSTEM_BATTERY: u32 = 2147483648u32; +pub const BATTERY_TAG_CHANGE_WMI_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5e1f6e19_8786_4d23_94fc_9e746bd5d888); +pub const BATTERY_TAG_INVALID: u32 = 0u32; +pub const BATTERY_TEMPERATURE_WMI_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1a52a14d_adce_4a44_9a3e_c8d8f15ff2c2); +pub const BATTERY_UNKNOWN_CAPACITY: u32 = 4294967295u32; +pub const BATTERY_UNKNOWN_CURRENT: u32 = 4294967295u32; +pub const BATTERY_UNKNOWN_RATE: u32 = 2147483648u32; +pub const BATTERY_UNKNOWN_TIME: u32 = 4294967295u32; +pub const BATTERY_UNKNOWN_VOLTAGE: u32 = 4294967295u32; +pub const BATTERY_USB_CHARGER_STATUS_FN_DEFAULT_USB: u32 = 1u32; +pub const BATTERY_USB_CHARGER_STATUS_UCM_PD: u32 = 2u32; +pub const BatteryCharge: BATTERY_SET_INFORMATION_LEVEL = 1i32; +pub const BatteryChargerId: BATTERY_SET_INFORMATION_LEVEL = 4i32; +pub const BatteryChargerStatus: BATTERY_SET_INFORMATION_LEVEL = 5i32; +pub const BatteryChargingSource: BATTERY_SET_INFORMATION_LEVEL = 3i32; +pub const BatteryChargingSourceType_AC: BATTERY_CHARGING_SOURCE_TYPE = 1i32; +pub const BatteryChargingSourceType_Max: BATTERY_CHARGING_SOURCE_TYPE = 4i32; +pub const BatteryChargingSourceType_USB: BATTERY_CHARGING_SOURCE_TYPE = 2i32; +pub const BatteryChargingSourceType_Wireless: BATTERY_CHARGING_SOURCE_TYPE = 3i32; +pub const BatteryCriticalBias: BATTERY_SET_INFORMATION_LEVEL = 0i32; +pub const BatteryDeviceName: BATTERY_QUERY_INFORMATION_LEVEL = 4i32; +pub const BatteryDeviceState: POWER_INFORMATION_LEVEL = 86i32; +pub const BatteryDischarge: BATTERY_SET_INFORMATION_LEVEL = 2i32; +pub const BatteryEstimatedTime: BATTERY_QUERY_INFORMATION_LEVEL = 3i32; +pub const BatteryGranularityInformation: BATTERY_QUERY_INFORMATION_LEVEL = 1i32; +pub const BatteryInformation: BATTERY_QUERY_INFORMATION_LEVEL = 0i32; +pub const BatteryManufactureDate: BATTERY_QUERY_INFORMATION_LEVEL = 5i32; +pub const BatteryManufactureName: BATTERY_QUERY_INFORMATION_LEVEL = 6i32; +pub const BatterySerialNumber: BATTERY_QUERY_INFORMATION_LEVEL = 8i32; +pub const BatteryTemperature: BATTERY_QUERY_INFORMATION_LEVEL = 2i32; +pub const BatteryUniqueID: BATTERY_QUERY_INFORMATION_LEVEL = 7i32; +pub const BlackBoxRecorderDirectAccessBuffer: POWER_INFORMATION_LEVEL = 97i32; +pub const CsDeviceNotification: POWER_INFORMATION_LEVEL = 74i32; +pub const DEVICEPOWER_AND_OPERATION: u32 = 1073741824u32; +pub const DEVICEPOWER_CLEAR_WAKEENABLED: u32 = 2u32; +pub const DEVICEPOWER_FILTER_DEVICES_PRESENT: u32 = 536870912u32; +pub const DEVICEPOWER_FILTER_HARDWARE: u32 = 268435456u32; +pub const DEVICEPOWER_FILTER_ON_NAME: u32 = 33554432u32; +pub const DEVICEPOWER_FILTER_WAKEENABLED: u32 = 134217728u32; +pub const DEVICEPOWER_FILTER_WAKEPROGRAMMABLE: u32 = 67108864u32; +pub const DEVICEPOWER_HARDWAREID: u32 = 2147483648u32; +pub const DEVICEPOWER_SET_WAKEENABLED: u32 = 1u32; +pub const DisplayBurst: POWER_INFORMATION_LEVEL = 77i32; +pub const EFFECTIVE_POWER_MODE_V1: u32 = 1u32; +pub const EFFECTIVE_POWER_MODE_V2: u32 = 2u32; +pub const EMI_NAME_MAX: u32 = 16u32; +pub const EMI_VERSION_V1: u32 = 1u32; +pub const EMI_VERSION_V2: u32 = 2u32; +pub const ES_AWAYMODE_REQUIRED: EXECUTION_STATE = 64u32; +pub const ES_CONTINUOUS: EXECUTION_STATE = 2147483648u32; +pub const ES_DISPLAY_REQUIRED: EXECUTION_STATE = 2u32; +pub const ES_SYSTEM_REQUIRED: EXECUTION_STATE = 1u32; +pub const ES_USER_PRESENT: EXECUTION_STATE = 4u32; +pub const EffectivePowerModeBalanced: EFFECTIVE_POWER_MODE = 2i32; +pub const EffectivePowerModeBatterySaver: EFFECTIVE_POWER_MODE = 0i32; +pub const EffectivePowerModeBetterBattery: EFFECTIVE_POWER_MODE = 1i32; +pub const EffectivePowerModeGameMode: EFFECTIVE_POWER_MODE = 5i32; +pub const EffectivePowerModeHighPerformance: EFFECTIVE_POWER_MODE = 3i32; +pub const EffectivePowerModeMaxPerformance: EFFECTIVE_POWER_MODE = 4i32; +pub const EffectivePowerModeMixedReality: EFFECTIVE_POWER_MODE = 6i32; +pub const EmiMeasurementUnitPicowattHours: EMI_MEASUREMENT_UNIT = 0i32; +pub const EnableMultiBatteryDisplay: u32 = 2u32; +pub const EnablePasswordLogon: u32 = 4u32; +pub const EnableSysTrayBatteryMeter: u32 = 1u32; +pub const EnableVideoDimDisplay: u32 = 16u32; +pub const EnableWakeOnRing: u32 = 8u32; +pub const EnergyTrackerCreate: POWER_INFORMATION_LEVEL = 92i32; +pub const EnergyTrackerQuery: POWER_INFORMATION_LEVEL = 93i32; +pub const ExitLatencySamplingPercentage: POWER_INFORMATION_LEVEL = 78i32; +pub const FirmwareTableInformationRegistered: POWER_INFORMATION_LEVEL = 69i32; +pub const GUID_CLASS_INPUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d1e55b2_f16f_11cf_88cb_001111000030); +pub const GUID_DEVICE_ACPI_TIME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x97f99bf6_4497_4f18_bb22_4b9fb2fbef9c); +pub const GUID_DEVICE_APPLICATIONLAUNCH_BUTTON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x629758ee_986e_4d9e_8e47_de27f8ab054d); +pub const GUID_DEVICE_BATTERY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x72631e54_78a4_11d0_bcf7_00aa00b7b32a); +pub const GUID_DEVICE_ENERGY_METER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x45bd8344_7ed6_49cf_a440_c276c933b053); +pub const GUID_DEVICE_FAN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x05ecd13d_81da_4a2a_8a4c_524f23dd4dc9); +pub const GUID_DEVICE_LID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4afa3d52_74a7_11d0_be5e_00a0c9062857); +pub const GUID_DEVICE_MEMORY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3fd0f03d_92e0_45fb_b75c_5ed8ffb01021); +pub const GUID_DEVICE_MESSAGE_INDICATOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcd48a365_fa94_4ce2_a232_a1b764e5d8b4); +pub const GUID_DEVICE_PROCESSOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x97fadb10_4e33_40ae_359c_8bef029dbdd0); +pub const GUID_DEVICE_SYS_BUTTON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4afa3d53_74a7_11d0_be5e_00a0c9062857); +pub const GUID_DEVICE_THERMAL_ZONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4afa3d51_74a7_11d0_be5e_00a0c9062857); +pub const GUID_DEVINTERFACE_THERMAL_COOLING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdbe4373d_3c81_40cb_ace4_e0e5d05f0c9f); +pub const GUID_DEVINTERFACE_THERMAL_MANAGER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x927ec093_69a4_4bc0_bd02_711664714463); +pub const GetPowerRequestList: POWER_INFORMATION_LEVEL = 45i32; +pub const GetPowerSettingValue: POWER_INFORMATION_LEVEL = 59i32; +pub const GroupPark: POWER_INFORMATION_LEVEL = 48i32; +pub const IOCTL_ACPI_GET_REAL_TIME: u32 = 2703888u32; +pub const IOCTL_ACPI_SET_REAL_TIME: u32 = 2720276u32; +pub const IOCTL_BATTERY_CHARGING_SOURCE_CHANGE: u32 = 2703440u32; +pub const IOCTL_BATTERY_QUERY_INFORMATION: u32 = 2703428u32; +pub const IOCTL_BATTERY_QUERY_STATUS: u32 = 2703436u32; +pub const IOCTL_BATTERY_QUERY_TAG: u32 = 2703424u32; +pub const IOCTL_BATTERY_SET_INFORMATION: u32 = 2719816u32; +pub const IOCTL_EMI_GET_MEASUREMENT: u32 = 2244620u32; +pub const IOCTL_EMI_GET_METADATA: u32 = 2244616u32; +pub const IOCTL_EMI_GET_METADATA_SIZE: u32 = 2244612u32; +pub const IOCTL_EMI_GET_VERSION: u32 = 2244608u32; +pub const IOCTL_GET_ACPI_TIME_AND_ALARM_CAPABILITIES: u32 = 2703900u32; +pub const IOCTL_GET_PROCESSOR_OBJ_INFO: u32 = 2703744u32; +pub const IOCTL_GET_SYS_BUTTON_CAPS: u32 = 2703680u32; +pub const IOCTL_GET_SYS_BUTTON_EVENT: u32 = 2703684u32; +pub const IOCTL_GET_WAKE_ALARM_POLICY: u32 = 2736652u32; +pub const IOCTL_GET_WAKE_ALARM_SYSTEM_POWERSTATE: u32 = 2703896u32; +pub const IOCTL_GET_WAKE_ALARM_VALUE: u32 = 2736648u32; +pub const IOCTL_NOTIFY_SWITCH_EVENT: u32 = 2703616u32; +pub const IOCTL_QUERY_LID: u32 = 2703552u32; +pub const IOCTL_RUN_ACTIVE_COOLING_METHOD: u32 = 2719880u32; +pub const IOCTL_SET_SYS_MESSAGE_INDICATOR: u32 = 2720192u32; +pub const IOCTL_SET_WAKE_ALARM_POLICY: u32 = 2720260u32; +pub const IOCTL_SET_WAKE_ALARM_VALUE: u32 = 2720256u32; +pub const IOCTL_THERMAL_QUERY_INFORMATION: u32 = 2703488u32; +pub const IOCTL_THERMAL_READ_POLICY: u32 = 2703508u32; +pub const IOCTL_THERMAL_READ_TEMPERATURE: u32 = 2703504u32; +pub const IOCTL_THERMAL_SET_COOLING_POLICY: u32 = 2719876u32; +pub const IOCTL_THERMAL_SET_PASSIVE_LIMIT: u32 = 2719884u32; +pub const IdleResiliency: POWER_INFORMATION_LEVEL = 60i32; +pub const LT_DONT_CARE: LATENCY_TIME = 0i32; +pub const LT_LOWEST_LATENCY: LATENCY_TIME = 1i32; +pub const LastResumePerformance: POWER_INFORMATION_LEVEL = 76i32; +pub const LastSleepTime: POWER_INFORMATION_LEVEL = 15i32; +pub const LastWakeTime: POWER_INFORMATION_LEVEL = 14i32; +pub const LogicalProcessorIdling: POWER_INFORMATION_LEVEL = 56i32; +pub const MAX_ACTIVE_COOLING_LEVELS: u32 = 10u32; +pub const MAX_BATTERY_STRING_SIZE: u32 = 128u32; +pub const MonitorCapabilities: POWER_INFORMATION_LEVEL = 40i32; +pub const MonitorInvocation: POWER_INFORMATION_LEVEL = 68i32; +pub const MonitorRequestReasonAcDcDisplayBurst: POWER_MONITOR_REQUEST_REASON = 5i32; +pub const MonitorRequestReasonAcDcDisplayBurstSuppressed: POWER_MONITOR_REQUEST_REASON = 28i32; +pub const MonitorRequestReasonBatteryCountChange: POWER_MONITOR_REQUEST_REASON = 16i32; +pub const MonitorRequestReasonBatteryCountChangeSuppressed: POWER_MONITOR_REQUEST_REASON = 49i32; +pub const MonitorRequestReasonBatteryPreCritical: POWER_MONITOR_REQUEST_REASON = 53i32; +pub const MonitorRequestReasonBuiltinPanel: POWER_MONITOR_REQUEST_REASON = 47i32; +pub const MonitorRequestReasonDP: POWER_MONITOR_REQUEST_REASON = 19i32; +pub const MonitorRequestReasonDim: POWER_MONITOR_REQUEST_REASON = 46i32; +pub const MonitorRequestReasonDirectedDrips: POWER_MONITOR_REQUEST_REASON = 45i32; +pub const MonitorRequestReasonDisplayRequiredUnDim: POWER_MONITOR_REQUEST_REASON = 48i32; +pub const MonitorRequestReasonFullWake: POWER_MONITOR_REQUEST_REASON = 9i32; +pub const MonitorRequestReasonGracePeriod: POWER_MONITOR_REQUEST_REASON = 17i32; +pub const MonitorRequestReasonIdleTimeout: POWER_MONITOR_REQUEST_REASON = 12i32; +pub const MonitorRequestReasonLid: POWER_MONITOR_REQUEST_REASON = 15i32; +pub const MonitorRequestReasonMax: POWER_MONITOR_REQUEST_REASON = 55i32; +pub const MonitorRequestReasonNearProximity: POWER_MONITOR_REQUEST_REASON = 22i32; +pub const MonitorRequestReasonPdcSignal: POWER_MONITOR_REQUEST_REASON = 27i32; +pub const MonitorRequestReasonPdcSignalFingerprint: POWER_MONITOR_REQUEST_REASON = 44i32; +pub const MonitorRequestReasonPdcSignalHeyCortana: POWER_MONITOR_REQUEST_REASON = 42i32; +pub const MonitorRequestReasonPdcSignalHolographicShell: POWER_MONITOR_REQUEST_REASON = 43i32; +pub const MonitorRequestReasonPdcSignalSensorsHumanPresence: POWER_MONITOR_REQUEST_REASON = 52i32; +pub const MonitorRequestReasonPdcSignalWindowsMobilePwrNotif: POWER_MONITOR_REQUEST_REASON = 40i32; +pub const MonitorRequestReasonPdcSignalWindowsMobileShell: POWER_MONITOR_REQUEST_REASON = 41i32; +pub const MonitorRequestReasonPnP: POWER_MONITOR_REQUEST_REASON = 18i32; +pub const MonitorRequestReasonPoSetSystemState: POWER_MONITOR_REQUEST_REASON = 7i32; +pub const MonitorRequestReasonPolicyChange: POWER_MONITOR_REQUEST_REASON = 13i32; +pub const MonitorRequestReasonPowerButton: POWER_MONITOR_REQUEST_REASON = 1i32; +pub const MonitorRequestReasonRemoteConnection: POWER_MONITOR_REQUEST_REASON = 2i32; +pub const MonitorRequestReasonResumeModernStandby: POWER_MONITOR_REQUEST_REASON = 50i32; +pub const MonitorRequestReasonResumePdc: POWER_MONITOR_REQUEST_REASON = 24i32; +pub const MonitorRequestReasonResumeS4: POWER_MONITOR_REQUEST_REASON = 25i32; +pub const MonitorRequestReasonScMonitorpower: POWER_MONITOR_REQUEST_REASON = 3i32; +pub const MonitorRequestReasonScreenOffRequest: POWER_MONITOR_REQUEST_REASON = 11i32; +pub const MonitorRequestReasonSessionUnlock: POWER_MONITOR_REQUEST_REASON = 10i32; +pub const MonitorRequestReasonSetThreadExecutionState: POWER_MONITOR_REQUEST_REASON = 8i32; +pub const MonitorRequestReasonSleepButton: POWER_MONITOR_REQUEST_REASON = 14i32; +pub const MonitorRequestReasonSxTransition: POWER_MONITOR_REQUEST_REASON = 20i32; +pub const MonitorRequestReasonSystemIdle: POWER_MONITOR_REQUEST_REASON = 21i32; +pub const MonitorRequestReasonSystemStateEntered: POWER_MONITOR_REQUEST_REASON = 29i32; +pub const MonitorRequestReasonTerminal: POWER_MONITOR_REQUEST_REASON = 26i32; +pub const MonitorRequestReasonTerminalInit: POWER_MONITOR_REQUEST_REASON = 51i32; +pub const MonitorRequestReasonThermalStandby: POWER_MONITOR_REQUEST_REASON = 23i32; +pub const MonitorRequestReasonUnknown: POWER_MONITOR_REQUEST_REASON = 0i32; +pub const MonitorRequestReasonUserDisplayBurst: POWER_MONITOR_REQUEST_REASON = 6i32; +pub const MonitorRequestReasonUserInput: POWER_MONITOR_REQUEST_REASON = 4i32; +pub const MonitorRequestReasonUserInputAccelerometer: POWER_MONITOR_REQUEST_REASON = 35i32; +pub const MonitorRequestReasonUserInputHid: POWER_MONITOR_REQUEST_REASON = 36i32; +pub const MonitorRequestReasonUserInputInitialization: POWER_MONITOR_REQUEST_REASON = 39i32; +pub const MonitorRequestReasonUserInputKeyboard: POWER_MONITOR_REQUEST_REASON = 31i32; +pub const MonitorRequestReasonUserInputMouse: POWER_MONITOR_REQUEST_REASON = 32i32; +pub const MonitorRequestReasonUserInputPen: POWER_MONITOR_REQUEST_REASON = 34i32; +pub const MonitorRequestReasonUserInputPoUserPresent: POWER_MONITOR_REQUEST_REASON = 37i32; +pub const MonitorRequestReasonUserInputSessionSwitch: POWER_MONITOR_REQUEST_REASON = 38i32; +pub const MonitorRequestReasonUserInputTouch: POWER_MONITOR_REQUEST_REASON = 54i32; +pub const MonitorRequestReasonUserInputTouchpad: POWER_MONITOR_REQUEST_REASON = 33i32; +pub const MonitorRequestReasonWinrt: POWER_MONITOR_REQUEST_REASON = 30i32; +pub const MonitorRequestTypeOff: POWER_MONITOR_REQUEST_TYPE = 0i32; +pub const MonitorRequestTypeOnAndPresent: POWER_MONITOR_REQUEST_TYPE = 1i32; +pub const MonitorRequestTypeToggleOn: POWER_MONITOR_REQUEST_TYPE = 2i32; +pub const NotifyUserModeLegacyPowerEvent: POWER_INFORMATION_LEVEL = 47i32; +pub const NotifyUserPowerSetting: POWER_INFORMATION_LEVEL = 26i32; +pub const PASSIVE_COOLING: u32 = 1u32; +pub const PDCAP_S0_SUPPORTED: u32 = 65536u32; +pub const PDCAP_S1_SUPPORTED: u32 = 131072u32; +pub const PDCAP_S2_SUPPORTED: u32 = 262144u32; +pub const PDCAP_S3_SUPPORTED: u32 = 524288u32; +pub const PDCAP_S4_SUPPORTED: u32 = 16777216u32; +pub const PDCAP_S5_SUPPORTED: u32 = 33554432u32; +pub const PDCAP_WAKE_FROM_S0_SUPPORTED: u32 = 1048576u32; +pub const PDCAP_WAKE_FROM_S1_SUPPORTED: u32 = 2097152u32; +pub const PDCAP_WAKE_FROM_S2_SUPPORTED: u32 = 4194304u32; +pub const PDCAP_WAKE_FROM_S3_SUPPORTED: u32 = 8388608u32; +pub const POWER_ATTRIBUTE_HIDE: u32 = 1u32; +pub const POWER_ATTRIBUTE_SHOW_AOAC: u32 = 2u32; +pub const POWER_FORCE_TRIGGER_RESET: POWER_ACTION_POLICY_EVENT_CODE = 2147483648u32; +pub const POWER_LEVEL_USER_NOTIFY_EXEC: POWER_ACTION_POLICY_EVENT_CODE = 4u32; +pub const POWER_LEVEL_USER_NOTIFY_SOUND: POWER_ACTION_POLICY_EVENT_CODE = 2u32; +pub const POWER_LEVEL_USER_NOTIFY_TEXT: POWER_ACTION_POLICY_EVENT_CODE = 1u32; +pub const POWER_PLATFORM_ROLE_V1: POWER_PLATFORM_ROLE_VERSION = 1u32; +pub const POWER_PLATFORM_ROLE_V2: POWER_PLATFORM_ROLE_VERSION = 2u32; +pub const POWER_USER_NOTIFY_BUTTON: POWER_ACTION_POLICY_EVENT_CODE = 8u32; +pub const POWER_USER_NOTIFY_SHUTDOWN: POWER_ACTION_POLICY_EVENT_CODE = 16u32; +pub const PO_TZ_ACTIVE: POWER_COOLING_MODE = 0u16; +pub const PO_TZ_INVALID_MODE: POWER_COOLING_MODE = 2u16; +pub const PO_TZ_PASSIVE: POWER_COOLING_MODE = 1u16; +pub const PPM_FIRMWARE_ACPI1C2: u32 = 1u32; +pub const PPM_FIRMWARE_ACPI1C3: u32 = 2u32; +pub const PPM_FIRMWARE_ACPI1TSTATES: u32 = 4u32; +pub const PPM_FIRMWARE_CPC: u32 = 262144u32; +pub const PPM_FIRMWARE_CSD: u32 = 16u32; +pub const PPM_FIRMWARE_CST: u32 = 8u32; +pub const PPM_FIRMWARE_LPI: u32 = 524288u32; +pub const PPM_FIRMWARE_OSC: u32 = 65536u32; +pub const PPM_FIRMWARE_PCCH: u32 = 16384u32; +pub const PPM_FIRMWARE_PCCP: u32 = 32768u32; +pub const PPM_FIRMWARE_PCT: u32 = 32u32; +pub const PPM_FIRMWARE_PDC: u32 = 131072u32; +pub const PPM_FIRMWARE_PPC: u32 = 256u32; +pub const PPM_FIRMWARE_PSD: u32 = 512u32; +pub const PPM_FIRMWARE_PSS: u32 = 64u32; +pub const PPM_FIRMWARE_PTC: u32 = 1024u32; +pub const PPM_FIRMWARE_TPC: u32 = 4096u32; +pub const PPM_FIRMWARE_TSD: u32 = 8192u32; +pub const PPM_FIRMWARE_TSS: u32 = 2048u32; +pub const PPM_FIRMWARE_XPSS: u32 = 128u32; +pub const PPM_IDLESTATES_DATA_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba138e10_e250_4ad7_8616_cf1a7ad410e7); +pub const PPM_IDLESTATE_CHANGE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4838fe4f_f71c_4e51_9ecc_8430a7ac4c6c); +pub const PPM_IDLE_ACCOUNTING_EX_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd67abd39_81f8_4a5e_8152_72e31ec912ee); +pub const PPM_IDLE_ACCOUNTING_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe2a26f78_ae07_4ee0_a30f_ce54f55a94cd); +pub const PPM_IDLE_IMPLEMENTATION_CSTATES: u32 = 1u32; +pub const PPM_IDLE_IMPLEMENTATION_LPISTATES: u32 = 4u32; +pub const PPM_IDLE_IMPLEMENTATION_MICROPEP: u32 = 3u32; +pub const PPM_IDLE_IMPLEMENTATION_NONE: u32 = 0u32; +pub const PPM_IDLE_IMPLEMENTATION_PEP: u32 = 2u32; +pub const PPM_PERFMON_PERFSTATE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7fd18652_0cfe_40d2_b0a1_0b066a87759e); +pub const PPM_PERFORMANCE_IMPLEMENTATION_CPPC: u32 = 3u32; +pub const PPM_PERFORMANCE_IMPLEMENTATION_NONE: u32 = 0u32; +pub const PPM_PERFORMANCE_IMPLEMENTATION_PCCV1: u32 = 2u32; +pub const PPM_PERFORMANCE_IMPLEMENTATION_PEP: u32 = 4u32; +pub const PPM_PERFORMANCE_IMPLEMENTATION_PSTATES: u32 = 1u32; +pub const PPM_PERFSTATES_DATA_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5708cc20_7d40_4bf4_b4aa_2b01338d0126); +pub const PPM_PERFSTATE_CHANGE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa5b32ddd_7f39_4abc_b892_900e43b59ebb); +pub const PPM_PERFSTATE_DOMAIN_CHANGE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x995e6b7f_d653_497a_b978_36a30c29bf01); +pub const PPM_THERMALCONSTRAINT_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa852c2c8_1a4c_423b_8c2c_f30d82931a88); +pub const PPM_THERMAL_POLICY_CHANGE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x48f377b8_6880_4c7b_8bdc_380176c6654d); +#[doc = "Required features: `\"Win32_Devices_Properties\"`"] +#[cfg(feature = "Win32_Devices_Properties")] +pub const PROCESSOR_NUMBER_PKEY: super::super::Devices::Properties::DEVPROPKEY = super::super::Devices::Properties::DEVPROPKEY { fmtid: ::windows_sys::core::GUID::from_u128(0x5724c81d_d5af_4c1f_a103_a06e28f204c6), pid: 1 }; +pub const PdcInvocation: POWER_INFORMATION_LEVEL = 67i32; +pub const PhysicalPowerButtonPress: POWER_INFORMATION_LEVEL = 90i32; +pub const PlatformIdleStates: POWER_INFORMATION_LEVEL = 80i32; +pub const PlatformIdleVeto: POWER_INFORMATION_LEVEL = 82i32; +pub const PlatformInformation: POWER_INFORMATION_LEVEL = 66i32; +pub const PlatformRole: POWER_INFORMATION_LEVEL = 75i32; +pub const PlatformRoleAppliancePC: POWER_PLATFORM_ROLE = 6i32; +pub const PlatformRoleDesktop: POWER_PLATFORM_ROLE = 1i32; +pub const PlatformRoleEnterpriseServer: POWER_PLATFORM_ROLE = 4i32; +pub const PlatformRoleMaximum: POWER_PLATFORM_ROLE = 9i32; +pub const PlatformRoleMobile: POWER_PLATFORM_ROLE = 2i32; +pub const PlatformRolePerformanceServer: POWER_PLATFORM_ROLE = 7i32; +pub const PlatformRoleSOHOServer: POWER_PLATFORM_ROLE = 5i32; +pub const PlatformRoleSlate: POWER_PLATFORM_ROLE = 8i32; +pub const PlatformRoleUnspecified: POWER_PLATFORM_ROLE = 0i32; +pub const PlatformRoleWorkstation: POWER_PLATFORM_ROLE = 3i32; +pub const PlmPowerRequestCreate: POWER_INFORMATION_LEVEL = 72i32; +pub const PoAc: SYSTEM_POWER_CONDITION = 0i32; +pub const PoConditionMaximum: SYSTEM_POWER_CONDITION = 3i32; +pub const PoDc: SYSTEM_POWER_CONDITION = 1i32; +pub const PoHot: SYSTEM_POWER_CONDITION = 2i32; +pub const PowerActionDisplayOff: POWER_ACTION = 8i32; +pub const PowerActionHibernate: POWER_ACTION = 3i32; +pub const PowerActionNone: POWER_ACTION = 0i32; +pub const PowerActionReserved: POWER_ACTION = 1i32; +pub const PowerActionShutdown: POWER_ACTION = 4i32; +pub const PowerActionShutdownOff: POWER_ACTION = 6i32; +pub const PowerActionShutdownReset: POWER_ACTION = 5i32; +pub const PowerActionSleep: POWER_ACTION = 2i32; +pub const PowerActionWarmEject: POWER_ACTION = 7i32; +pub const PowerDeviceD0: DEVICE_POWER_STATE = 1i32; +pub const PowerDeviceD1: DEVICE_POWER_STATE = 2i32; +pub const PowerDeviceD2: DEVICE_POWER_STATE = 3i32; +pub const PowerDeviceD3: DEVICE_POWER_STATE = 4i32; +pub const PowerDeviceMaximum: DEVICE_POWER_STATE = 5i32; +pub const PowerDeviceUnspecified: DEVICE_POWER_STATE = 0i32; +pub const PowerInformationInternal: POWER_INFORMATION_LEVEL = 87i32; +pub const PowerInformationLevelMaximum: POWER_INFORMATION_LEVEL = 98i32; +pub const PowerInformationLevelUnused0: POWER_INFORMATION_LEVEL = 27i32; +pub const PowerRequestAction: POWER_INFORMATION_LEVEL = 44i32; +pub const PowerRequestActionInternal: POWER_INFORMATION_LEVEL = 85i32; +pub const PowerRequestAwayModeRequired: POWER_REQUEST_TYPE = 2i32; +pub const PowerRequestCreate: POWER_INFORMATION_LEVEL = 43i32; +pub const PowerRequestDisplayRequired: POWER_REQUEST_TYPE = 0i32; +pub const PowerRequestExecutionRequired: POWER_REQUEST_TYPE = 3i32; +pub const PowerRequestSystemRequired: POWER_REQUEST_TYPE = 1i32; +pub const PowerSettingNotificationName: POWER_INFORMATION_LEVEL = 58i32; +pub const PowerShutdownNotification: POWER_INFORMATION_LEVEL = 39i32; +pub const PowerSystemHibernate: SYSTEM_POWER_STATE = 5i32; +pub const PowerSystemMaximum: SYSTEM_POWER_STATE = 7i32; +pub const PowerSystemShutdown: SYSTEM_POWER_STATE = 6i32; +pub const PowerSystemSleeping1: SYSTEM_POWER_STATE = 2i32; +pub const PowerSystemSleeping2: SYSTEM_POWER_STATE = 3i32; +pub const PowerSystemSleeping3: SYSTEM_POWER_STATE = 4i32; +pub const PowerSystemUnspecified: SYSTEM_POWER_STATE = 0i32; +pub const PowerSystemWorking: SYSTEM_POWER_STATE = 1i32; +pub const PowerUserInactive: USER_ACTIVITY_PRESENCE = 2i32; +pub const PowerUserInvalid: USER_ACTIVITY_PRESENCE = 3i32; +pub const PowerUserMaximum: USER_ACTIVITY_PRESENCE = 3i32; +pub const PowerUserNotPresent: USER_ACTIVITY_PRESENCE = 1i32; +pub const PowerUserPresent: USER_ACTIVITY_PRESENCE = 0i32; +pub const ProcessorCap: POWER_INFORMATION_LEVEL = 34i32; +pub const ProcessorIdleDomains: POWER_INFORMATION_LEVEL = 49i32; +pub const ProcessorIdleStates: POWER_INFORMATION_LEVEL = 33i32; +pub const ProcessorIdleStatesHv: POWER_INFORMATION_LEVEL = 52i32; +pub const ProcessorIdleVeto: POWER_INFORMATION_LEVEL = 81i32; +pub const ProcessorInformation: POWER_INFORMATION_LEVEL = 11i32; +pub const ProcessorInformationEx: POWER_INFORMATION_LEVEL = 46i32; +pub const ProcessorLoad: POWER_INFORMATION_LEVEL = 38i32; +pub const ProcessorPerfCapHv: POWER_INFORMATION_LEVEL = 54i32; +pub const ProcessorPerfStates: POWER_INFORMATION_LEVEL = 32i32; +pub const ProcessorPerfStatesHv: POWER_INFORMATION_LEVEL = 53i32; +pub const ProcessorPowerPolicyAc: POWER_INFORMATION_LEVEL = 18i32; +pub const ProcessorPowerPolicyCurrent: POWER_INFORMATION_LEVEL = 22i32; +pub const ProcessorPowerPolicyDc: POWER_INFORMATION_LEVEL = 19i32; +pub const ProcessorSetIdle: POWER_INFORMATION_LEVEL = 55i32; +pub const ProcessorStateHandler: POWER_INFORMATION_LEVEL = 7i32; +pub const ProcessorStateHandler2: POWER_INFORMATION_LEVEL = 13i32; +pub const QueryPotentialDripsConstraint: POWER_INFORMATION_LEVEL = 91i32; +pub const RegisterSpmPowerSettings: POWER_INFORMATION_LEVEL = 79i32; +pub const SYS_BUTTON_LID: u32 = 4u32; +pub const SYS_BUTTON_LID_CHANGED: u32 = 524288u32; +pub const SYS_BUTTON_LID_CLOSED: u32 = 131072u32; +pub const SYS_BUTTON_LID_INITIAL: u32 = 262144u32; +pub const SYS_BUTTON_LID_OPEN: u32 = 65536u32; +pub const SYS_BUTTON_LID_STATE_MASK: u32 = 196608u32; +pub const SYS_BUTTON_POWER: u32 = 1u32; +pub const SYS_BUTTON_SLEEP: u32 = 2u32; +pub const SYS_BUTTON_WAKE: u32 = 2147483648u32; +pub const ScreenOff: POWER_INFORMATION_LEVEL = 73i32; +pub const SendSuspendResumeNotification: POWER_INFORMATION_LEVEL = 96i32; +pub const SessionAllowExternalDmaDevices: POWER_INFORMATION_LEVEL = 95i32; +pub const SessionConnectNotification: POWER_INFORMATION_LEVEL = 62i32; +pub const SessionDisplayState: POWER_INFORMATION_LEVEL = 42i32; +pub const SessionLockState: POWER_INFORMATION_LEVEL = 64i32; +pub const SessionPowerCleanup: POWER_INFORMATION_LEVEL = 63i32; +pub const SessionPowerInit: POWER_INFORMATION_LEVEL = 41i32; +pub const SessionRITState: POWER_INFORMATION_LEVEL = 61i32; +pub const SetPowerSettingValue: POWER_INFORMATION_LEVEL = 25i32; +pub const SetShutdownSelectedTime: POWER_INFORMATION_LEVEL = 70i32; +pub const SuspendResumeInvocation: POWER_INFORMATION_LEVEL = 71i32; +pub const SystemBatteryState: POWER_INFORMATION_LEVEL = 5i32; +pub const SystemBatteryStatePrecise: POWER_INFORMATION_LEVEL = 83i32; +pub const SystemExecutionState: POWER_INFORMATION_LEVEL = 16i32; +pub const SystemHiberFileInformation: POWER_INFORMATION_LEVEL = 36i32; +pub const SystemHiberFileSize: POWER_INFORMATION_LEVEL = 51i32; +pub const SystemHiberFileType: POWER_INFORMATION_LEVEL = 89i32; +pub const SystemHiberbootState: POWER_INFORMATION_LEVEL = 65i32; +pub const SystemMonitorHiberBootPowerOff: POWER_INFORMATION_LEVEL = 28i32; +pub const SystemPowerCapabilities: POWER_INFORMATION_LEVEL = 4i32; +pub const SystemPowerInformation: POWER_INFORMATION_LEVEL = 12i32; +pub const SystemPowerLoggingEntry: POWER_INFORMATION_LEVEL = 24i32; +pub const SystemPowerPolicyAc: POWER_INFORMATION_LEVEL = 0i32; +pub const SystemPowerPolicyCurrent: POWER_INFORMATION_LEVEL = 8i32; +pub const SystemPowerPolicyDc: POWER_INFORMATION_LEVEL = 1i32; +pub const SystemPowerStateHandler: POWER_INFORMATION_LEVEL = 6i32; +pub const SystemPowerStateLogging: POWER_INFORMATION_LEVEL = 23i32; +pub const SystemPowerStateNotifyHandler: POWER_INFORMATION_LEVEL = 17i32; +pub const SystemReserveHiberFile: POWER_INFORMATION_LEVEL = 10i32; +pub const SystemVideoState: POWER_INFORMATION_LEVEL = 29i32; +pub const SystemWakeSource: POWER_INFORMATION_LEVEL = 35i32; +pub const THERMAL_COOLING_INTERFACE_VERSION: u32 = 1u32; +pub const THERMAL_DEVICE_INTERFACE_VERSION: u32 = 1u32; +pub const THERMAL_EVENT_VERSION: u32 = 1u32; +pub const THERMAL_POLICY_VERSION_1: u32 = 1u32; +pub const THERMAL_POLICY_VERSION_2: u32 = 2u32; +pub const TZ_ACTIVATION_REASON_CURRENT: u32 = 2u32; +pub const TZ_ACTIVATION_REASON_THERMAL: u32 = 1u32; +pub const ThermalEvent: POWER_INFORMATION_LEVEL = 84i32; +pub const ThermalStandby: POWER_INFORMATION_LEVEL = 88i32; +pub const TraceApplicationPowerMessage: POWER_INFORMATION_LEVEL = 30i32; +pub const TraceApplicationPowerMessageEnd: POWER_INFORMATION_LEVEL = 31i32; +pub const TraceServicePowerMessage: POWER_INFORMATION_LEVEL = 37i32; +pub const UNKNOWN_CAPACITY: u32 = 4294967295u32; +pub const UNKNOWN_CURRENT: u32 = 4294967295u32; +pub const UNKNOWN_RATE: u32 = 2147483648u32; +pub const UNKNOWN_VOLTAGE: u32 = 4294967295u32; +pub const UpdateBlackBoxRecorder: POWER_INFORMATION_LEVEL = 94i32; +pub const UsbChargerPort_Legacy: USB_CHARGER_PORT = 0i32; +pub const UsbChargerPort_Max: USB_CHARGER_PORT = 2i32; +pub const UsbChargerPort_TypeC: USB_CHARGER_PORT = 1i32; +pub const UserNotPresent: POWER_USER_PRESENCE_TYPE = 0i32; +pub const UserPresence: POWER_INFORMATION_LEVEL = 57i32; +pub const UserPresent: POWER_USER_PRESENCE_TYPE = 1i32; +pub const UserUnknown: POWER_USER_PRESENCE_TYPE = 255i32; +pub const VerifyProcessorPowerPolicyAc: POWER_INFORMATION_LEVEL = 20i32; +pub const VerifyProcessorPowerPolicyDc: POWER_INFORMATION_LEVEL = 21i32; +pub const VerifySystemPolicyAc: POWER_INFORMATION_LEVEL = 2i32; +pub const VerifySystemPolicyDc: POWER_INFORMATION_LEVEL = 3i32; +pub const WakeTimerList: POWER_INFORMATION_LEVEL = 50i32; +pub type ACPI_TIME_RESOLUTION = i32; +pub type BATTERY_CHARGING_SOURCE_TYPE = i32; +pub type BATTERY_QUERY_INFORMATION_LEVEL = i32; +pub type BATTERY_SET_INFORMATION_LEVEL = i32; +pub type DEVICE_POWER_STATE = i32; +pub type EFFECTIVE_POWER_MODE = i32; +pub type EMI_MEASUREMENT_UNIT = i32; +pub type EXECUTION_STATE = u32; +pub type LATENCY_TIME = i32; +pub type POWER_ACTION = i32; +pub type POWER_ACTION_POLICY_EVENT_CODE = u32; +pub type POWER_COOLING_MODE = u16; +pub type POWER_DATA_ACCESSOR = i32; +pub type POWER_INFORMATION_LEVEL = i32; +pub type POWER_MONITOR_REQUEST_REASON = i32; +pub type POWER_MONITOR_REQUEST_TYPE = i32; +pub type POWER_PLATFORM_ROLE = i32; +pub type POWER_PLATFORM_ROLE_VERSION = u32; +pub type POWER_REQUEST_TYPE = i32; +pub type POWER_SETTING_ALTITUDE = i32; +pub type POWER_USER_PRESENCE_TYPE = i32; +pub type SYSTEM_POWER_CONDITION = i32; +pub type SYSTEM_POWER_STATE = i32; +pub type USB_CHARGER_PORT = i32; +pub type USER_ACTIVITY_PRESENCE = i32; +#[repr(C)] +pub struct ACPI_REAL_TIME { + pub Year: u16, + pub Month: u8, + pub Day: u8, + pub Hour: u8, + pub Minute: u8, + pub Second: u8, + pub Valid: u8, + pub Milliseconds: u16, + pub TimeZone: i16, + pub DayLight: u8, + pub Reserved1: [u8; 3], +} +impl ::core::marker::Copy for ACPI_REAL_TIME {} +impl ::core::clone::Clone for ACPI_REAL_TIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ACPI_TIME_AND_ALARM_CAPABILITIES { + pub AcWakeSupported: super::super::Foundation::BOOLEAN, + pub DcWakeSupported: super::super::Foundation::BOOLEAN, + pub S4AcWakeSupported: super::super::Foundation::BOOLEAN, + pub S4DcWakeSupported: super::super::Foundation::BOOLEAN, + pub S5AcWakeSupported: super::super::Foundation::BOOLEAN, + pub S5DcWakeSupported: super::super::Foundation::BOOLEAN, + pub S4S5WakeStatusSupported: super::super::Foundation::BOOLEAN, + pub DeepestWakeSystemState: u32, + pub RealTimeFeaturesSupported: super::super::Foundation::BOOLEAN, + pub RealTimeResolution: ACPI_TIME_RESOLUTION, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ACPI_TIME_AND_ALARM_CAPABILITIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ACPI_TIME_AND_ALARM_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ADMINISTRATOR_POWER_POLICY { + pub MinSleep: SYSTEM_POWER_STATE, + pub MaxSleep: SYSTEM_POWER_STATE, + pub MinVideoTimeout: u32, + pub MaxVideoTimeout: u32, + pub MinSpindownTimeout: u32, + pub MaxSpindownTimeout: u32, +} +impl ::core::marker::Copy for ADMINISTRATOR_POWER_POLICY {} +impl ::core::clone::Clone for ADMINISTRATOR_POWER_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BATTERY_CHARGER_STATUS { + pub Type: BATTERY_CHARGING_SOURCE_TYPE, + pub VaData: [u32; 1], +} +impl ::core::marker::Copy for BATTERY_CHARGER_STATUS {} +impl ::core::clone::Clone for BATTERY_CHARGER_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BATTERY_CHARGING_SOURCE { + pub Type: BATTERY_CHARGING_SOURCE_TYPE, + pub MaxCurrent: u32, +} +impl ::core::marker::Copy for BATTERY_CHARGING_SOURCE {} +impl ::core::clone::Clone for BATTERY_CHARGING_SOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BATTERY_CHARGING_SOURCE_INFORMATION { + pub Type: BATTERY_CHARGING_SOURCE_TYPE, + pub SourceOnline: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BATTERY_CHARGING_SOURCE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BATTERY_CHARGING_SOURCE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BATTERY_INFORMATION { + pub Capabilities: u32, + pub Technology: u8, + pub Reserved: [u8; 3], + pub Chemistry: [u8; 4], + pub DesignedCapacity: u32, + pub FullChargedCapacity: u32, + pub DefaultAlert1: u32, + pub DefaultAlert2: u32, + pub CriticalBias: u32, + pub CycleCount: u32, +} +impl ::core::marker::Copy for BATTERY_INFORMATION {} +impl ::core::clone::Clone for BATTERY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BATTERY_MANUFACTURE_DATE { + pub Day: u8, + pub Month: u8, + pub Year: u16, +} +impl ::core::marker::Copy for BATTERY_MANUFACTURE_DATE {} +impl ::core::clone::Clone for BATTERY_MANUFACTURE_DATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BATTERY_QUERY_INFORMATION { + pub BatteryTag: u32, + pub InformationLevel: BATTERY_QUERY_INFORMATION_LEVEL, + pub AtRate: u32, +} +impl ::core::marker::Copy for BATTERY_QUERY_INFORMATION {} +impl ::core::clone::Clone for BATTERY_QUERY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BATTERY_REPORTING_SCALE { + pub Granularity: u32, + pub Capacity: u32, +} +impl ::core::marker::Copy for BATTERY_REPORTING_SCALE {} +impl ::core::clone::Clone for BATTERY_REPORTING_SCALE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BATTERY_SET_INFORMATION { + pub BatteryTag: u32, + pub InformationLevel: BATTERY_SET_INFORMATION_LEVEL, + pub Buffer: [u8; 1], +} +impl ::core::marker::Copy for BATTERY_SET_INFORMATION {} +impl ::core::clone::Clone for BATTERY_SET_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BATTERY_STATUS { + pub PowerState: u32, + pub Capacity: u32, + pub Voltage: u32, + pub Rate: i32, +} +impl ::core::marker::Copy for BATTERY_STATUS {} +impl ::core::clone::Clone for BATTERY_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BATTERY_USB_CHARGER_STATUS { + pub Type: BATTERY_CHARGING_SOURCE_TYPE, + pub Reserved: u32, + pub Flags: u32, + pub MaxCurrent: u32, + pub Voltage: u32, + pub PortType: USB_CHARGER_PORT, + pub PortId: u64, + pub PowerSourceInformation: *mut ::core::ffi::c_void, + pub OemCharger: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for BATTERY_USB_CHARGER_STATUS {} +impl ::core::clone::Clone for BATTERY_USB_CHARGER_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BATTERY_WAIT_STATUS { + pub BatteryTag: u32, + pub Timeout: u32, + pub PowerState: u32, + pub LowCapacity: u32, + pub HighCapacity: u32, +} +impl ::core::marker::Copy for BATTERY_WAIT_STATUS {} +impl ::core::clone::Clone for BATTERY_WAIT_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_POWER_DATA { + pub PD_Size: u32, + pub PD_MostRecentPowerState: DEVICE_POWER_STATE, + pub PD_Capabilities: u32, + pub PD_D1Latency: u32, + pub PD_D2Latency: u32, + pub PD_D3Latency: u32, + pub PD_PowerStateMapping: [DEVICE_POWER_STATE; 7], + pub PD_DeepestSystemWake: SYSTEM_POWER_STATE, +} +impl ::core::marker::Copy for CM_POWER_DATA {} +impl ::core::clone::Clone for CM_POWER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_NOTIFY_SUBSCRIBE_PARAMETERS { + pub Callback: PDEVICE_NOTIFY_CALLBACK_ROUTINE, + pub Context: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for DEVICE_NOTIFY_SUBSCRIBE_PARAMETERS {} +impl ::core::clone::Clone for DEVICE_NOTIFY_SUBSCRIBE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMI_CHANNEL_MEASUREMENT_DATA { + pub AbsoluteEnergy: u64, + pub AbsoluteTime: u64, +} +impl ::core::marker::Copy for EMI_CHANNEL_MEASUREMENT_DATA {} +impl ::core::clone::Clone for EMI_CHANNEL_MEASUREMENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMI_CHANNEL_V2 { + pub MeasurementUnit: EMI_MEASUREMENT_UNIT, + pub ChannelNameSize: u16, + pub ChannelName: [u16; 1], +} +impl ::core::marker::Copy for EMI_CHANNEL_V2 {} +impl ::core::clone::Clone for EMI_CHANNEL_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMI_MEASUREMENT_DATA_V2 { + pub ChannelData: [EMI_CHANNEL_MEASUREMENT_DATA; 1], +} +impl ::core::marker::Copy for EMI_MEASUREMENT_DATA_V2 {} +impl ::core::clone::Clone for EMI_MEASUREMENT_DATA_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMI_METADATA_SIZE { + pub MetadataSize: u32, +} +impl ::core::marker::Copy for EMI_METADATA_SIZE {} +impl ::core::clone::Clone for EMI_METADATA_SIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMI_METADATA_V1 { + pub MeasurementUnit: EMI_MEASUREMENT_UNIT, + pub HardwareOEM: [u16; 16], + pub HardwareModel: [u16; 16], + pub HardwareRevision: u16, + pub MeteredHardwareNameSize: u16, + pub MeteredHardwareName: [u16; 1], +} +impl ::core::marker::Copy for EMI_METADATA_V1 {} +impl ::core::clone::Clone for EMI_METADATA_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMI_METADATA_V2 { + pub HardwareOEM: [u16; 16], + pub HardwareModel: [u16; 16], + pub HardwareRevision: u16, + pub ChannelCount: u16, + pub Channels: [EMI_CHANNEL_V2; 1], +} +impl ::core::marker::Copy for EMI_METADATA_V2 {} +impl ::core::clone::Clone for EMI_METADATA_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EMI_VERSION { + pub EmiVersion: u16, +} +impl ::core::marker::Copy for EMI_VERSION {} +impl ::core::clone::Clone for EMI_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GLOBAL_MACHINE_POWER_POLICY { + pub Revision: u32, + pub LidOpenWakeAc: SYSTEM_POWER_STATE, + pub LidOpenWakeDc: SYSTEM_POWER_STATE, + pub BroadcastCapacityResolution: u32, +} +impl ::core::marker::Copy for GLOBAL_MACHINE_POWER_POLICY {} +impl ::core::clone::Clone for GLOBAL_MACHINE_POWER_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GLOBAL_POWER_POLICY { + pub user: GLOBAL_USER_POWER_POLICY, + pub mach: GLOBAL_MACHINE_POWER_POLICY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GLOBAL_POWER_POLICY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GLOBAL_POWER_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GLOBAL_USER_POWER_POLICY { + pub Revision: u32, + pub PowerButtonAc: POWER_ACTION_POLICY, + pub PowerButtonDc: POWER_ACTION_POLICY, + pub SleepButtonAc: POWER_ACTION_POLICY, + pub SleepButtonDc: POWER_ACTION_POLICY, + pub LidCloseAc: POWER_ACTION_POLICY, + pub LidCloseDc: POWER_ACTION_POLICY, + pub DischargePolicy: [SYSTEM_POWER_LEVEL; 4], + pub GlobalFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GLOBAL_USER_POWER_POLICY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GLOBAL_USER_POWER_POLICY { + fn clone(&self) -> Self { + *self + } +} +pub type HPOWERNOTIFY = isize; +#[repr(C)] +pub struct MACHINE_POWER_POLICY { + pub Revision: u32, + pub MinSleepAc: SYSTEM_POWER_STATE, + pub MinSleepDc: SYSTEM_POWER_STATE, + pub ReducedLatencySleepAc: SYSTEM_POWER_STATE, + pub ReducedLatencySleepDc: SYSTEM_POWER_STATE, + pub DozeTimeoutAc: u32, + pub DozeTimeoutDc: u32, + pub DozeS4TimeoutAc: u32, + pub DozeS4TimeoutDc: u32, + pub MinThrottleAc: u8, + pub MinThrottleDc: u8, + pub pad1: [u8; 2], + pub OverThrottledAc: POWER_ACTION_POLICY, + pub OverThrottledDc: POWER_ACTION_POLICY, +} +impl ::core::marker::Copy for MACHINE_POWER_POLICY {} +impl ::core::clone::Clone for MACHINE_POWER_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MACHINE_PROCESSOR_POWER_POLICY { + pub Revision: u32, + pub ProcessorPolicyAc: PROCESSOR_POWER_POLICY, + pub ProcessorPolicyDc: PROCESSOR_POWER_POLICY, +} +impl ::core::marker::Copy for MACHINE_PROCESSOR_POWER_POLICY {} +impl ::core::clone::Clone for MACHINE_PROCESSOR_POWER_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POWERBROADCAST_SETTING { + pub PowerSetting: ::windows_sys::core::GUID, + pub DataLength: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for POWERBROADCAST_SETTING {} +impl ::core::clone::Clone for POWERBROADCAST_SETTING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POWER_ACTION_POLICY { + pub Action: POWER_ACTION, + pub Flags: u32, + pub EventCode: POWER_ACTION_POLICY_EVENT_CODE, +} +impl ::core::marker::Copy for POWER_ACTION_POLICY {} +impl ::core::clone::Clone for POWER_ACTION_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POWER_IDLE_RESILIENCY { + pub CoalescingTimeout: u32, + pub IdleResiliencyPeriod: u32, +} +impl ::core::marker::Copy for POWER_IDLE_RESILIENCY {} +impl ::core::clone::Clone for POWER_IDLE_RESILIENCY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POWER_MONITOR_INVOCATION { + pub Console: super::super::Foundation::BOOLEAN, + pub RequestReason: POWER_MONITOR_REQUEST_REASON, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POWER_MONITOR_INVOCATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POWER_MONITOR_INVOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POWER_PLATFORM_INFORMATION { + pub AoAc: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POWER_PLATFORM_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POWER_PLATFORM_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POWER_POLICY { + pub user: USER_POWER_POLICY, + pub mach: MACHINE_POWER_POLICY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POWER_POLICY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POWER_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES { + pub IsAllowed: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POWER_SESSION_CONNECT { + pub Connected: super::super::Foundation::BOOLEAN, + pub Console: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POWER_SESSION_CONNECT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POWER_SESSION_CONNECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POWER_SESSION_RIT_STATE { + pub Active: super::super::Foundation::BOOLEAN, + pub LastInputTime: u64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POWER_SESSION_RIT_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POWER_SESSION_RIT_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POWER_SESSION_TIMEOUTS { + pub InputTimeout: u32, + pub DisplayTimeout: u32, +} +impl ::core::marker::Copy for POWER_SESSION_TIMEOUTS {} +impl ::core::clone::Clone for POWER_SESSION_TIMEOUTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct POWER_SESSION_WINLOGON { + pub SessionId: u32, + pub Console: super::super::Foundation::BOOLEAN, + pub Locked: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for POWER_SESSION_WINLOGON {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for POWER_SESSION_WINLOGON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POWER_USER_PRESENCE { + pub UserPresence: POWER_USER_PRESENCE_TYPE, +} +impl ::core::marker::Copy for POWER_USER_PRESENCE {} +impl ::core::clone::Clone for POWER_USER_PRESENCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_IDLESTATE_EVENT { + pub NewState: u32, + pub OldState: u32, + pub Processors: u64, +} +impl ::core::marker::Copy for PPM_IDLESTATE_EVENT {} +impl ::core::clone::Clone for PPM_IDLESTATE_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_IDLE_ACCOUNTING { + pub StateCount: u32, + pub TotalTransitions: u32, + pub ResetCount: u32, + pub StartTime: u64, + pub State: [PPM_IDLE_STATE_ACCOUNTING; 1], +} +impl ::core::marker::Copy for PPM_IDLE_ACCOUNTING {} +impl ::core::clone::Clone for PPM_IDLE_ACCOUNTING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_IDLE_ACCOUNTING_EX { + pub StateCount: u32, + pub TotalTransitions: u32, + pub ResetCount: u32, + pub AbortCount: u32, + pub StartTime: u64, + pub State: [PPM_IDLE_STATE_ACCOUNTING_EX; 1], +} +impl ::core::marker::Copy for PPM_IDLE_ACCOUNTING_EX {} +impl ::core::clone::Clone for PPM_IDLE_ACCOUNTING_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_IDLE_STATE_ACCOUNTING { + pub IdleTransitions: u32, + pub FailedTransitions: u32, + pub InvalidBucketIndex: u32, + pub TotalTime: u64, + pub IdleTimeBuckets: [u32; 6], +} +impl ::core::marker::Copy for PPM_IDLE_STATE_ACCOUNTING {} +impl ::core::clone::Clone for PPM_IDLE_STATE_ACCOUNTING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_IDLE_STATE_ACCOUNTING_EX { + pub TotalTime: u64, + pub IdleTransitions: u32, + pub FailedTransitions: u32, + pub InvalidBucketIndex: u32, + pub MinTimeUs: u32, + pub MaxTimeUs: u32, + pub CancelledTransitions: u32, + pub IdleTimeBuckets: [PPM_IDLE_STATE_BUCKET_EX; 16], +} +impl ::core::marker::Copy for PPM_IDLE_STATE_ACCOUNTING_EX {} +impl ::core::clone::Clone for PPM_IDLE_STATE_ACCOUNTING_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_IDLE_STATE_BUCKET_EX { + pub TotalTimeUs: u64, + pub MinTimeUs: u32, + pub MaxTimeUs: u32, + pub Count: u32, +} +impl ::core::marker::Copy for PPM_IDLE_STATE_BUCKET_EX {} +impl ::core::clone::Clone for PPM_IDLE_STATE_BUCKET_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_PERFSTATE_DOMAIN_EVENT { + pub State: u32, + pub Latency: u32, + pub Speed: u32, + pub Processors: u64, +} +impl ::core::marker::Copy for PPM_PERFSTATE_DOMAIN_EVENT {} +impl ::core::clone::Clone for PPM_PERFSTATE_DOMAIN_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_PERFSTATE_EVENT { + pub State: u32, + pub Status: u32, + pub Latency: u32, + pub Speed: u32, + pub Processor: u32, +} +impl ::core::marker::Copy for PPM_PERFSTATE_EVENT {} +impl ::core::clone::Clone for PPM_PERFSTATE_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_THERMALCHANGE_EVENT { + pub ThermalConstraint: u32, + pub Processors: u64, +} +impl ::core::marker::Copy for PPM_THERMALCHANGE_EVENT {} +impl ::core::clone::Clone for PPM_THERMALCHANGE_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_THERMAL_POLICY_EVENT { + pub Mode: u8, + pub Processors: u64, +} +impl ::core::marker::Copy for PPM_THERMAL_POLICY_EVENT {} +impl ::core::clone::Clone for PPM_THERMAL_POLICY_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_WMI_IDLE_STATE { + pub Latency: u32, + pub Power: u32, + pub TimeCheck: u32, + pub PromotePercent: u8, + pub DemotePercent: u8, + pub StateType: u8, + pub Reserved: u8, + pub StateFlags: u32, + pub Context: u32, + pub IdleHandler: u32, + pub Reserved1: u32, +} +impl ::core::marker::Copy for PPM_WMI_IDLE_STATE {} +impl ::core::clone::Clone for PPM_WMI_IDLE_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_WMI_IDLE_STATES { + pub Type: u32, + pub Count: u32, + pub TargetState: u32, + pub OldState: u32, + pub TargetProcessors: u64, + pub State: [PPM_WMI_IDLE_STATE; 1], +} +impl ::core::marker::Copy for PPM_WMI_IDLE_STATES {} +impl ::core::clone::Clone for PPM_WMI_IDLE_STATES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_WMI_IDLE_STATES_EX { + pub Type: u32, + pub Count: u32, + pub TargetState: u32, + pub OldState: u32, + pub TargetProcessors: *mut ::core::ffi::c_void, + pub State: [PPM_WMI_IDLE_STATE; 1], +} +impl ::core::marker::Copy for PPM_WMI_IDLE_STATES_EX {} +impl ::core::clone::Clone for PPM_WMI_IDLE_STATES_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_WMI_LEGACY_PERFSTATE { + pub Frequency: u32, + pub Flags: u32, + pub PercentFrequency: u32, +} +impl ::core::marker::Copy for PPM_WMI_LEGACY_PERFSTATE {} +impl ::core::clone::Clone for PPM_WMI_LEGACY_PERFSTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_WMI_PERF_STATE { + pub Frequency: u32, + pub Power: u32, + pub PercentFrequency: u8, + pub IncreaseLevel: u8, + pub DecreaseLevel: u8, + pub Type: u8, + pub IncreaseTime: u32, + pub DecreaseTime: u32, + pub Control: u64, + pub Status: u64, + pub HitCount: u32, + pub Reserved1: u32, + pub Reserved2: u64, + pub Reserved3: u64, +} +impl ::core::marker::Copy for PPM_WMI_PERF_STATE {} +impl ::core::clone::Clone for PPM_WMI_PERF_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_WMI_PERF_STATES { + pub Count: u32, + pub MaxFrequency: u32, + pub CurrentState: u32, + pub MaxPerfState: u32, + pub MinPerfState: u32, + pub LowestPerfState: u32, + pub ThermalConstraint: u32, + pub BusyAdjThreshold: u8, + pub PolicyType: u8, + pub Type: u8, + pub Reserved: u8, + pub TimerInterval: u32, + pub TargetProcessors: u64, + pub PStateHandler: u32, + pub PStateContext: u32, + pub TStateHandler: u32, + pub TStateContext: u32, + pub FeedbackHandler: u32, + pub Reserved1: u32, + pub Reserved2: u64, + pub State: [PPM_WMI_PERF_STATE; 1], +} +impl ::core::marker::Copy for PPM_WMI_PERF_STATES {} +impl ::core::clone::Clone for PPM_WMI_PERF_STATES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PPM_WMI_PERF_STATES_EX { + pub Count: u32, + pub MaxFrequency: u32, + pub CurrentState: u32, + pub MaxPerfState: u32, + pub MinPerfState: u32, + pub LowestPerfState: u32, + pub ThermalConstraint: u32, + pub BusyAdjThreshold: u8, + pub PolicyType: u8, + pub Type: u8, + pub Reserved: u8, + pub TimerInterval: u32, + pub TargetProcessors: *mut ::core::ffi::c_void, + pub PStateHandler: u32, + pub PStateContext: u32, + pub TStateHandler: u32, + pub TStateContext: u32, + pub FeedbackHandler: u32, + pub Reserved1: u32, + pub Reserved2: u64, + pub State: [PPM_WMI_PERF_STATE; 1], +} +impl ::core::marker::Copy for PPM_WMI_PERF_STATES_EX {} +impl ::core::clone::Clone for PPM_WMI_PERF_STATES_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSOR_OBJECT_INFO { + pub PhysicalID: u32, + pub PBlkAddress: u32, + pub PBlkLength: u8, +} +impl ::core::marker::Copy for PROCESSOR_OBJECT_INFO {} +impl ::core::clone::Clone for PROCESSOR_OBJECT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSOR_OBJECT_INFO_EX { + pub PhysicalID: u32, + pub PBlkAddress: u32, + pub PBlkLength: u8, + pub InitialApicId: u32, +} +impl ::core::marker::Copy for PROCESSOR_OBJECT_INFO_EX {} +impl ::core::clone::Clone for PROCESSOR_OBJECT_INFO_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSOR_POWER_INFORMATION { + pub Number: u32, + pub MaxMhz: u32, + pub CurrentMhz: u32, + pub MhzLimit: u32, + pub MaxIdleState: u32, + pub CurrentIdleState: u32, +} +impl ::core::marker::Copy for PROCESSOR_POWER_INFORMATION {} +impl ::core::clone::Clone for PROCESSOR_POWER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSOR_POWER_POLICY { + pub Revision: u32, + pub DynamicThrottle: u8, + pub Spare: [u8; 3], + pub _bitfield: u32, + pub PolicyCount: u32, + pub Policy: [PROCESSOR_POWER_POLICY_INFO; 3], +} +impl ::core::marker::Copy for PROCESSOR_POWER_POLICY {} +impl ::core::clone::Clone for PROCESSOR_POWER_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSOR_POWER_POLICY_INFO { + pub TimeCheck: u32, + pub DemoteLimit: u32, + pub PromoteLimit: u32, + pub DemotePercent: u8, + pub PromotePercent: u8, + pub Spare: [u8; 2], + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESSOR_POWER_POLICY_INFO {} +impl ::core::clone::Clone for PROCESSOR_POWER_POLICY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RESUME_PERFORMANCE { + pub PostTimeMs: u32, + pub TotalResumeTimeMs: u64, + pub ResumeCompleteTimestamp: u64, +} +impl ::core::marker::Copy for RESUME_PERFORMANCE {} +impl ::core::clone::Clone for RESUME_PERFORMANCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SET_POWER_SETTING_VALUE { + pub Version: u32, + pub Guid: ::windows_sys::core::GUID, + pub PowerCondition: SYSTEM_POWER_CONDITION, + pub DataLength: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for SET_POWER_SETTING_VALUE {} +impl ::core::clone::Clone for SET_POWER_SETTING_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SYSTEM_BATTERY_STATE { + pub AcOnLine: super::super::Foundation::BOOLEAN, + pub BatteryPresent: super::super::Foundation::BOOLEAN, + pub Charging: super::super::Foundation::BOOLEAN, + pub Discharging: super::super::Foundation::BOOLEAN, + pub Spare1: [super::super::Foundation::BOOLEAN; 3], + pub Tag: u8, + pub MaxCapacity: u32, + pub RemainingCapacity: u32, + pub Rate: u32, + pub EstimatedTime: u32, + pub DefaultAlert1: u32, + pub DefaultAlert2: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SYSTEM_BATTERY_STATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SYSTEM_BATTERY_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SYSTEM_POWER_CAPABILITIES { + pub PowerButtonPresent: super::super::Foundation::BOOLEAN, + pub SleepButtonPresent: super::super::Foundation::BOOLEAN, + pub LidPresent: super::super::Foundation::BOOLEAN, + pub SystemS1: super::super::Foundation::BOOLEAN, + pub SystemS2: super::super::Foundation::BOOLEAN, + pub SystemS3: super::super::Foundation::BOOLEAN, + pub SystemS4: super::super::Foundation::BOOLEAN, + pub SystemS5: super::super::Foundation::BOOLEAN, + pub HiberFilePresent: super::super::Foundation::BOOLEAN, + pub FullWake: super::super::Foundation::BOOLEAN, + pub VideoDimPresent: super::super::Foundation::BOOLEAN, + pub ApmPresent: super::super::Foundation::BOOLEAN, + pub UpsPresent: super::super::Foundation::BOOLEAN, + pub ThermalControl: super::super::Foundation::BOOLEAN, + pub ProcessorThrottle: super::super::Foundation::BOOLEAN, + pub ProcessorMinThrottle: u8, + pub ProcessorMaxThrottle: u8, + pub FastSystemS4: super::super::Foundation::BOOLEAN, + pub Hiberboot: super::super::Foundation::BOOLEAN, + pub WakeAlarmPresent: super::super::Foundation::BOOLEAN, + pub AoAc: super::super::Foundation::BOOLEAN, + pub DiskSpinDown: super::super::Foundation::BOOLEAN, + pub HiberFileType: u8, + pub AoAcConnectivitySupported: super::super::Foundation::BOOLEAN, + pub spare3: [u8; 6], + pub SystemBatteriesPresent: super::super::Foundation::BOOLEAN, + pub BatteriesAreShortTerm: super::super::Foundation::BOOLEAN, + pub BatteryScale: [BATTERY_REPORTING_SCALE; 3], + pub AcOnLineWake: SYSTEM_POWER_STATE, + pub SoftLidWake: SYSTEM_POWER_STATE, + pub RtcWake: SYSTEM_POWER_STATE, + pub MinDeviceWakeState: SYSTEM_POWER_STATE, + pub DefaultLowLatencyWake: SYSTEM_POWER_STATE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SYSTEM_POWER_CAPABILITIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SYSTEM_POWER_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_POWER_INFORMATION { + pub MaxIdlenessAllowed: u32, + pub Idleness: u32, + pub TimeRemaining: u32, + pub CoolingMode: POWER_COOLING_MODE, +} +impl ::core::marker::Copy for SYSTEM_POWER_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_POWER_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SYSTEM_POWER_LEVEL { + pub Enable: super::super::Foundation::BOOLEAN, + pub Spare: [u8; 3], + pub BatteryLevel: u32, + pub PowerPolicy: POWER_ACTION_POLICY, + pub MinSystemState: SYSTEM_POWER_STATE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SYSTEM_POWER_LEVEL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SYSTEM_POWER_LEVEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SYSTEM_POWER_POLICY { + pub Revision: u32, + pub PowerButton: POWER_ACTION_POLICY, + pub SleepButton: POWER_ACTION_POLICY, + pub LidClose: POWER_ACTION_POLICY, + pub LidOpenWake: SYSTEM_POWER_STATE, + pub Reserved: u32, + pub Idle: POWER_ACTION_POLICY, + pub IdleTimeout: u32, + pub IdleSensitivity: u8, + pub DynamicThrottle: u8, + pub Spare2: [u8; 2], + pub MinSleep: SYSTEM_POWER_STATE, + pub MaxSleep: SYSTEM_POWER_STATE, + pub ReducedLatencySleep: SYSTEM_POWER_STATE, + pub WinLogonFlags: u32, + pub Spare3: u32, + pub DozeS4Timeout: u32, + pub BroadcastCapacityResolution: u32, + pub DischargePolicy: [SYSTEM_POWER_LEVEL; 4], + pub VideoTimeout: u32, + pub VideoDimDisplay: super::super::Foundation::BOOLEAN, + pub VideoReserved: [u32; 3], + pub SpindownTimeout: u32, + pub OptimizeForPower: super::super::Foundation::BOOLEAN, + pub FanThrottleTolerance: u8, + pub ForcedThrottle: u8, + pub MinThrottle: u8, + pub OverThrottled: POWER_ACTION_POLICY, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SYSTEM_POWER_POLICY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SYSTEM_POWER_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_POWER_STATUS { + pub ACLineStatus: u8, + pub BatteryFlag: u8, + pub BatteryLifePercent: u8, + pub SystemStatusFlag: u8, + pub BatteryLifeTime: u32, + pub BatteryFullLifeTime: u32, +} +impl ::core::marker::Copy for SYSTEM_POWER_STATUS {} +impl ::core::clone::Clone for SYSTEM_POWER_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct THERMAL_EVENT { + pub Version: u32, + pub Size: u32, + pub Type: u32, + pub Temperature: u32, + pub TripPointTemperature: u32, + pub Initiator: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for THERMAL_EVENT {} +impl ::core::clone::Clone for THERMAL_EVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct THERMAL_INFORMATION { + pub ThermalStamp: u32, + pub ThermalConstant1: u32, + pub ThermalConstant2: u32, + pub Processors: usize, + pub SamplingPeriod: u32, + pub CurrentTemperature: u32, + pub PassiveTripPoint: u32, + pub CriticalTripPoint: u32, + pub ActiveTripPointCount: u8, + pub ActiveTripPoint: [u32; 10], +} +impl ::core::marker::Copy for THERMAL_INFORMATION {} +impl ::core::clone::Clone for THERMAL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct THERMAL_POLICY { + pub Version: u32, + pub WaitForUpdate: super::super::Foundation::BOOLEAN, + pub Hibernate: super::super::Foundation::BOOLEAN, + pub Critical: super::super::Foundation::BOOLEAN, + pub ThermalStandby: super::super::Foundation::BOOLEAN, + pub ActivationReasons: u32, + pub PassiveLimit: u32, + pub ActiveLevel: u32, + pub OverThrottled: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for THERMAL_POLICY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for THERMAL_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct THERMAL_WAIT_READ { + pub Timeout: u32, + pub LowTemperature: u32, + pub HighTemperature: u32, +} +impl ::core::marker::Copy for THERMAL_WAIT_READ {} +impl ::core::clone::Clone for THERMAL_WAIT_READ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USER_POWER_POLICY { + pub Revision: u32, + pub IdleAc: POWER_ACTION_POLICY, + pub IdleDc: POWER_ACTION_POLICY, + pub IdleTimeoutAc: u32, + pub IdleTimeoutDc: u32, + pub IdleSensitivityAc: u8, + pub IdleSensitivityDc: u8, + pub ThrottlePolicyAc: u8, + pub ThrottlePolicyDc: u8, + pub MaxSleepAc: SYSTEM_POWER_STATE, + pub MaxSleepDc: SYSTEM_POWER_STATE, + pub Reserved: [u32; 2], + pub VideoTimeoutAc: u32, + pub VideoTimeoutDc: u32, + pub SpindownTimeoutAc: u32, + pub SpindownTimeoutDc: u32, + pub OptimizeForPowerAc: super::super::Foundation::BOOLEAN, + pub OptimizeForPowerDc: super::super::Foundation::BOOLEAN, + pub FanThrottleToleranceAc: u8, + pub FanThrottleToleranceDc: u8, + pub ForcedThrottleAc: u8, + pub ForcedThrottleDc: u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USER_POWER_POLICY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USER_POWER_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WAKE_ALARM_INFORMATION { + pub TimerIdentifier: u32, + pub Timeout: u32, +} +impl ::core::marker::Copy for WAKE_ALARM_INFORMATION {} +impl ::core::clone::Clone for WAKE_ALARM_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +pub type EFFECTIVE_POWER_MODE_CALLBACK = ::core::option::Option ()>; +pub type PDEVICE_NOTIFY_CALLBACK_ROUTINE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWRSCHEMESENUMPROC = ::core::option::Option super::super::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWRSCHEMESENUMPROC_V1 = ::core::option::Option super::super::Foundation::BOOLEAN>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/ProcessStatus/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/ProcessStatus/mod.rs new file mode 100644 index 000000000..1cdfa5052 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/ProcessStatus/mod.rs @@ -0,0 +1,308 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EmptyWorkingSet(hprocess : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDeviceDrivers(lpimagebase : *mut *mut ::core::ffi::c_void, cb : u32, lpcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPageFilesA(pcallbackroutine : PENUM_PAGE_FILE_CALLBACKA, pcontext : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPageFilesW(pcallbackroutine : PENUM_PAGE_FILE_CALLBACKW, pcontext : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumProcessModules(hprocess : super::super::Foundation:: HANDLE, lphmodule : *mut super::super::Foundation:: HMODULE, cb : u32, lpcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumProcessModulesEx(hprocess : super::super::Foundation:: HANDLE, lphmodule : *mut super::super::Foundation:: HMODULE, cb : u32, lpcbneeded : *mut u32, dwfilterflag : ENUM_PROCESS_MODULES_EX_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumProcesses(lpidprocess : *mut u32, cb : u32, lpcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("psapi.dll" "system" fn GetDeviceDriverBaseNameA(imagebase : *const ::core::ffi::c_void, lpfilename : ::windows_sys::core::PSTR, nsize : u32) -> u32); +::windows_targets::link!("psapi.dll" "system" fn GetDeviceDriverBaseNameW(imagebase : *const ::core::ffi::c_void, lpbasename : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +::windows_targets::link!("psapi.dll" "system" fn GetDeviceDriverFileNameA(imagebase : *const ::core::ffi::c_void, lpfilename : ::windows_sys::core::PSTR, nsize : u32) -> u32); +::windows_targets::link!("psapi.dll" "system" fn GetDeviceDriverFileNameW(imagebase : *const ::core::ffi::c_void, lpfilename : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMappedFileNameA(hprocess : super::super::Foundation:: HANDLE, lpv : *const ::core::ffi::c_void, lpfilename : ::windows_sys::core::PSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMappedFileNameW(hprocess : super::super::Foundation:: HANDLE, lpv : *const ::core::ffi::c_void, lpfilename : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetModuleBaseNameA(hprocess : super::super::Foundation:: HANDLE, hmodule : super::super::Foundation:: HMODULE, lpbasename : ::windows_sys::core::PSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetModuleBaseNameW(hprocess : super::super::Foundation:: HANDLE, hmodule : super::super::Foundation:: HMODULE, lpbasename : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetModuleFileNameExA(hprocess : super::super::Foundation:: HANDLE, hmodule : super::super::Foundation:: HMODULE, lpfilename : ::windows_sys::core::PSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetModuleFileNameExW(hprocess : super::super::Foundation:: HANDLE, hmodule : super::super::Foundation:: HMODULE, lpfilename : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetModuleInformation(hprocess : super::super::Foundation:: HANDLE, hmodule : super::super::Foundation:: HMODULE, lpmodinfo : *mut MODULEINFO, cb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPerformanceInfo(pperformanceinformation : *mut PERFORMANCE_INFORMATION, cb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessImageFileNameA(hprocess : super::super::Foundation:: HANDLE, lpimagefilename : ::windows_sys::core::PSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessImageFileNameW(hprocess : super::super::Foundation:: HANDLE, lpimagefilename : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessMemoryInfo(process : super::super::Foundation:: HANDLE, ppsmemcounters : *mut PROCESS_MEMORY_COUNTERS, cb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWsChanges(hprocess : super::super::Foundation:: HANDLE, lpwatchinfo : *mut PSAPI_WS_WATCH_INFORMATION, cb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWsChangesEx(hprocess : super::super::Foundation:: HANDLE, lpwatchinfoex : *mut PSAPI_WS_WATCH_INFORMATION_EX, cb : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitializeProcessForWsWatch(hprocess : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32EmptyWorkingSet(hprocess : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32EnumDeviceDrivers(lpimagebase : *mut *mut ::core::ffi::c_void, cb : u32, lpcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32EnumPageFilesA(pcallbackroutine : PENUM_PAGE_FILE_CALLBACKA, pcontext : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32EnumPageFilesW(pcallbackroutine : PENUM_PAGE_FILE_CALLBACKW, pcontext : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32EnumProcessModules(hprocess : super::super::Foundation:: HANDLE, lphmodule : *mut super::super::Foundation:: HMODULE, cb : u32, lpcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32EnumProcessModulesEx(hprocess : super::super::Foundation:: HANDLE, lphmodule : *mut super::super::Foundation:: HMODULE, cb : u32, lpcbneeded : *mut u32, dwfilterflag : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32EnumProcesses(lpidprocess : *mut u32, cb : u32, lpcbneeded : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn K32GetDeviceDriverBaseNameA(imagebase : *const ::core::ffi::c_void, lpfilename : ::windows_sys::core::PSTR, nsize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn K32GetDeviceDriverBaseNameW(imagebase : *const ::core::ffi::c_void, lpbasename : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn K32GetDeviceDriverFileNameA(imagebase : *const ::core::ffi::c_void, lpfilename : ::windows_sys::core::PSTR, nsize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn K32GetDeviceDriverFileNameW(imagebase : *const ::core::ffi::c_void, lpfilename : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32GetMappedFileNameA(hprocess : super::super::Foundation:: HANDLE, lpv : *const ::core::ffi::c_void, lpfilename : ::windows_sys::core::PSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32GetMappedFileNameW(hprocess : super::super::Foundation:: HANDLE, lpv : *const ::core::ffi::c_void, lpfilename : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32GetModuleBaseNameA(hprocess : super::super::Foundation:: HANDLE, hmodule : super::super::Foundation:: HMODULE, lpbasename : ::windows_sys::core::PSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32GetModuleBaseNameW(hprocess : super::super::Foundation:: HANDLE, hmodule : super::super::Foundation:: HMODULE, lpbasename : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32GetModuleFileNameExA(hprocess : super::super::Foundation:: HANDLE, hmodule : super::super::Foundation:: HMODULE, lpfilename : ::windows_sys::core::PSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32GetModuleFileNameExW(hprocess : super::super::Foundation:: HANDLE, hmodule : super::super::Foundation:: HMODULE, lpfilename : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32GetModuleInformation(hprocess : super::super::Foundation:: HANDLE, hmodule : super::super::Foundation:: HMODULE, lpmodinfo : *mut MODULEINFO, cb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32GetPerformanceInfo(pperformanceinformation : *mut PERFORMANCE_INFORMATION, cb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32GetProcessImageFileNameA(hprocess : super::super::Foundation:: HANDLE, lpimagefilename : ::windows_sys::core::PSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32GetProcessImageFileNameW(hprocess : super::super::Foundation:: HANDLE, lpimagefilename : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32GetProcessMemoryInfo(process : super::super::Foundation:: HANDLE, ppsmemcounters : *mut PROCESS_MEMORY_COUNTERS, cb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32GetWsChanges(hprocess : super::super::Foundation:: HANDLE, lpwatchinfo : *mut PSAPI_WS_WATCH_INFORMATION, cb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32GetWsChangesEx(hprocess : super::super::Foundation:: HANDLE, lpwatchinfoex : *mut PSAPI_WS_WATCH_INFORMATION_EX, cb : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32InitializeProcessForWsWatch(hprocess : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32QueryWorkingSet(hprocess : super::super::Foundation:: HANDLE, pv : *mut ::core::ffi::c_void, cb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn K32QueryWorkingSetEx(hprocess : super::super::Foundation:: HANDLE, pv : *mut ::core::ffi::c_void, cb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryWorkingSet(hprocess : super::super::Foundation:: HANDLE, pv : *mut ::core::ffi::c_void, cb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("psapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryWorkingSetEx(hprocess : super::super::Foundation:: HANDLE, pv : *mut ::core::ffi::c_void, cb : u32) -> super::super::Foundation:: BOOL); +pub const LIST_MODULES_32BIT: ENUM_PROCESS_MODULES_EX_FLAGS = 1u32; +pub const LIST_MODULES_64BIT: ENUM_PROCESS_MODULES_EX_FLAGS = 2u32; +pub const LIST_MODULES_ALL: ENUM_PROCESS_MODULES_EX_FLAGS = 3u32; +pub const LIST_MODULES_DEFAULT: ENUM_PROCESS_MODULES_EX_FLAGS = 0u32; +pub const PSAPI_VERSION: u32 = 2u32; +pub type ENUM_PROCESS_MODULES_EX_FLAGS = u32; +#[repr(C)] +pub struct ENUM_PAGE_FILE_INFORMATION { + pub cb: u32, + pub Reserved: u32, + pub TotalSize: usize, + pub TotalInUse: usize, + pub PeakUsage: usize, +} +impl ::core::marker::Copy for ENUM_PAGE_FILE_INFORMATION {} +impl ::core::clone::Clone for ENUM_PAGE_FILE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MODULEINFO { + pub lpBaseOfDll: *mut ::core::ffi::c_void, + pub SizeOfImage: u32, + pub EntryPoint: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for MODULEINFO {} +impl ::core::clone::Clone for MODULEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PERFORMANCE_INFORMATION { + pub cb: u32, + pub CommitTotal: usize, + pub CommitLimit: usize, + pub CommitPeak: usize, + pub PhysicalTotal: usize, + pub PhysicalAvailable: usize, + pub SystemCache: usize, + pub KernelTotal: usize, + pub KernelPaged: usize, + pub KernelNonpaged: usize, + pub PageSize: usize, + pub HandleCount: u32, + pub ProcessCount: u32, + pub ThreadCount: u32, +} +impl ::core::marker::Copy for PERFORMANCE_INFORMATION {} +impl ::core::clone::Clone for PERFORMANCE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MEMORY_COUNTERS { + pub cb: u32, + pub PageFaultCount: u32, + pub PeakWorkingSetSize: usize, + pub WorkingSetSize: usize, + pub QuotaPeakPagedPoolUsage: usize, + pub QuotaPagedPoolUsage: usize, + pub QuotaPeakNonPagedPoolUsage: usize, + pub QuotaNonPagedPoolUsage: usize, + pub PagefileUsage: usize, + pub PeakPagefileUsage: usize, +} +impl ::core::marker::Copy for PROCESS_MEMORY_COUNTERS {} +impl ::core::clone::Clone for PROCESS_MEMORY_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MEMORY_COUNTERS_EX { + pub cb: u32, + pub PageFaultCount: u32, + pub PeakWorkingSetSize: usize, + pub WorkingSetSize: usize, + pub QuotaPeakPagedPoolUsage: usize, + pub QuotaPagedPoolUsage: usize, + pub QuotaPeakNonPagedPoolUsage: usize, + pub QuotaNonPagedPoolUsage: usize, + pub PagefileUsage: usize, + pub PeakPagefileUsage: usize, + pub PrivateUsage: usize, +} +impl ::core::marker::Copy for PROCESS_MEMORY_COUNTERS_EX {} +impl ::core::clone::Clone for PROCESS_MEMORY_COUNTERS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PSAPI_WORKING_SET_BLOCK { + pub Flags: usize, + pub Anonymous: PSAPI_WORKING_SET_BLOCK_0, +} +impl ::core::marker::Copy for PSAPI_WORKING_SET_BLOCK {} +impl ::core::clone::Clone for PSAPI_WORKING_SET_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSAPI_WORKING_SET_BLOCK_0 { + pub _bitfield: usize, +} +impl ::core::marker::Copy for PSAPI_WORKING_SET_BLOCK_0 {} +impl ::core::clone::Clone for PSAPI_WORKING_SET_BLOCK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PSAPI_WORKING_SET_EX_BLOCK { + pub Flags: usize, + pub Anonymous: PSAPI_WORKING_SET_EX_BLOCK_0, +} +impl ::core::marker::Copy for PSAPI_WORKING_SET_EX_BLOCK {} +impl ::core::clone::Clone for PSAPI_WORKING_SET_EX_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PSAPI_WORKING_SET_EX_BLOCK_0 { + pub Anonymous: PSAPI_WORKING_SET_EX_BLOCK_0_0, + pub Invalid: PSAPI_WORKING_SET_EX_BLOCK_0_1, +} +impl ::core::marker::Copy for PSAPI_WORKING_SET_EX_BLOCK_0 {} +impl ::core::clone::Clone for PSAPI_WORKING_SET_EX_BLOCK_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSAPI_WORKING_SET_EX_BLOCK_0_0 { + pub _bitfield: usize, +} +impl ::core::marker::Copy for PSAPI_WORKING_SET_EX_BLOCK_0_0 {} +impl ::core::clone::Clone for PSAPI_WORKING_SET_EX_BLOCK_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSAPI_WORKING_SET_EX_BLOCK_0_1 { + pub _bitfield: usize, +} +impl ::core::marker::Copy for PSAPI_WORKING_SET_EX_BLOCK_0_1 {} +impl ::core::clone::Clone for PSAPI_WORKING_SET_EX_BLOCK_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSAPI_WORKING_SET_EX_INFORMATION { + pub VirtualAddress: *mut ::core::ffi::c_void, + pub VirtualAttributes: PSAPI_WORKING_SET_EX_BLOCK, +} +impl ::core::marker::Copy for PSAPI_WORKING_SET_EX_INFORMATION {} +impl ::core::clone::Clone for PSAPI_WORKING_SET_EX_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSAPI_WORKING_SET_INFORMATION { + pub NumberOfEntries: usize, + pub WorkingSetInfo: [PSAPI_WORKING_SET_BLOCK; 1], +} +impl ::core::marker::Copy for PSAPI_WORKING_SET_INFORMATION {} +impl ::core::clone::Clone for PSAPI_WORKING_SET_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSAPI_WS_WATCH_INFORMATION { + pub FaultingPc: *mut ::core::ffi::c_void, + pub FaultingVa: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for PSAPI_WS_WATCH_INFORMATION {} +impl ::core::clone::Clone for PSAPI_WS_WATCH_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PSAPI_WS_WATCH_INFORMATION_EX { + pub BasicInfo: PSAPI_WS_WATCH_INFORMATION, + pub FaultingThreadId: usize, + pub Flags: usize, +} +impl ::core::marker::Copy for PSAPI_WS_WATCH_INFORMATION_EX {} +impl ::core::clone::Clone for PSAPI_WS_WATCH_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PENUM_PAGE_FILE_CALLBACKA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PENUM_PAGE_FILE_CALLBACKW = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Recovery/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Recovery/mod.rs new file mode 100644 index 000000000..398bf8efc --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Recovery/mod.rs @@ -0,0 +1,18 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplicationRecoveryFinished(bsuccess : super::super::Foundation:: BOOL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApplicationRecoveryInProgress(pbcancelled : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`"] fn GetApplicationRecoveryCallback(hprocess : super::super::Foundation:: HANDLE, precoverycallback : *mut super::WindowsProgramming:: APPLICATION_RECOVERY_CALLBACK, ppvparameter : *mut *mut ::core::ffi::c_void, pdwpinginterval : *mut u32, pdwflags : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetApplicationRestartSettings(hprocess : super::super::Foundation:: HANDLE, pwzcommandline : ::windows_sys::core::PWSTR, pcchsize : *mut u32, pdwflags : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_WindowsProgramming")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_System_WindowsProgramming\"`"] fn RegisterApplicationRecoveryCallback(precoveycallback : super::WindowsProgramming:: APPLICATION_RECOVERY_CALLBACK, pvparameter : *const ::core::ffi::c_void, dwpinginterval : u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn RegisterApplicationRestart(pwzcommandline : ::windows_sys::core::PCWSTR, dwflags : REGISTER_APPLICATION_RESTART_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn UnregisterApplicationRecoveryCallback() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn UnregisterApplicationRestart() -> ::windows_sys::core::HRESULT); +pub const RESTART_NO_CRASH: REGISTER_APPLICATION_RESTART_FLAGS = 1u32; +pub const RESTART_NO_HANG: REGISTER_APPLICATION_RESTART_FLAGS = 2u32; +pub const RESTART_NO_PATCH: REGISTER_APPLICATION_RESTART_FLAGS = 4u32; +pub const RESTART_NO_REBOOT: REGISTER_APPLICATION_RESTART_FLAGS = 8u32; +pub type REGISTER_APPLICATION_RESTART_FLAGS = u32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Registry/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Registry/mod.rs new file mode 100644 index 000000000..5e3a29e01 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Registry/mod.rs @@ -0,0 +1,1240 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-state-helpers-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRegistryValueWithFallbackW(hkeyprimary : HKEY, pwszprimarysubkey : ::windows_sys::core::PCWSTR, hkeyfallback : HKEY, pwszfallbacksubkey : ::windows_sys::core::PCWSTR, pwszvalue : ::windows_sys::core::PCWSTR, dwflags : u32, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, cbdatain : u32, pcbdataout : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegCloseKey(hkey : HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegConnectRegistryA(lpmachinename : ::windows_sys::core::PCSTR, hkey : HKEY, phkresult : *mut HKEY) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("advapi32.dll" "system" fn RegConnectRegistryExA(lpmachinename : ::windows_sys::core::PCSTR, hkey : HKEY, flags : u32, phkresult : *mut HKEY) -> i32); +::windows_targets::link!("advapi32.dll" "system" fn RegConnectRegistryExW(lpmachinename : ::windows_sys::core::PCWSTR, hkey : HKEY, flags : u32, phkresult : *mut HKEY) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegConnectRegistryW(lpmachinename : ::windows_sys::core::PCWSTR, hkey : HKEY, phkresult : *mut HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegCopyTreeA(hkeysrc : HKEY, lpsubkey : ::windows_sys::core::PCSTR, hkeydest : HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegCopyTreeW(hkeysrc : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, hkeydest : HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegCreateKeyA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, phkresult : *mut HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RegCreateKeyExA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, reserved : u32, lpclass : ::windows_sys::core::PCSTR, dwoptions : REG_OPEN_CREATE_OPTIONS, samdesired : REG_SAM_FLAGS, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, phkresult : *mut HKEY, lpdwdisposition : *mut REG_CREATE_KEY_DISPOSITION) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RegCreateKeyExW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, reserved : u32, lpclass : ::windows_sys::core::PCWSTR, dwoptions : REG_OPEN_CREATE_OPTIONS, samdesired : REG_SAM_FLAGS, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, phkresult : *mut HKEY, lpdwdisposition : *mut REG_CREATE_KEY_DISPOSITION) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RegCreateKeyTransactedA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, reserved : u32, lpclass : ::windows_sys::core::PCSTR, dwoptions : REG_OPEN_CREATE_OPTIONS, samdesired : REG_SAM_FLAGS, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, phkresult : *mut HKEY, lpdwdisposition : *mut REG_CREATE_KEY_DISPOSITION, htransaction : super::super::Foundation:: HANDLE, pextendedparemeter : *const ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RegCreateKeyTransactedW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, reserved : u32, lpclass : ::windows_sys::core::PCWSTR, dwoptions : REG_OPEN_CREATE_OPTIONS, samdesired : REG_SAM_FLAGS, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, phkresult : *mut HKEY, lpdwdisposition : *mut REG_CREATE_KEY_DISPOSITION, htransaction : super::super::Foundation:: HANDLE, pextendedparemeter : *const ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegCreateKeyW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, phkresult : *mut HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDeleteKeyA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDeleteKeyExA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, samdesired : u32, reserved : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDeleteKeyExW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, samdesired : u32, reserved : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDeleteKeyTransactedA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, samdesired : u32, reserved : u32, htransaction : super::super::Foundation:: HANDLE, pextendedparameter : *const ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDeleteKeyTransactedW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, samdesired : u32, reserved : u32, htransaction : super::super::Foundation:: HANDLE, pextendedparameter : *const ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDeleteKeyValueA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, lpvaluename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDeleteKeyValueW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, lpvaluename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDeleteKeyW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDeleteTreeA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDeleteTreeW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDeleteValueA(hkey : HKEY, lpvaluename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDeleteValueW(hkey : HKEY, lpvaluename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDisablePredefinedCache() -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDisablePredefinedCacheEx() -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegDisableReflectionKey(hbase : HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegEnableReflectionKey(hbase : HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegEnumKeyA(hkey : HKEY, dwindex : u32, lpname : ::windows_sys::core::PSTR, cchname : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegEnumKeyExA(hkey : HKEY, dwindex : u32, lpname : ::windows_sys::core::PSTR, lpcchname : *mut u32, lpreserved : *const u32, lpclass : ::windows_sys::core::PSTR, lpcchclass : *mut u32, lpftlastwritetime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegEnumKeyExW(hkey : HKEY, dwindex : u32, lpname : ::windows_sys::core::PWSTR, lpcchname : *mut u32, lpreserved : *const u32, lpclass : ::windows_sys::core::PWSTR, lpcchclass : *mut u32, lpftlastwritetime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegEnumKeyW(hkey : HKEY, dwindex : u32, lpname : ::windows_sys::core::PWSTR, cchname : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegEnumValueA(hkey : HKEY, dwindex : u32, lpvaluename : ::windows_sys::core::PSTR, lpcchvaluename : *mut u32, lpreserved : *const u32, lptype : *mut u32, lpdata : *mut u8, lpcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegEnumValueW(hkey : HKEY, dwindex : u32, lpvaluename : ::windows_sys::core::PWSTR, lpcchvaluename : *mut u32, lpreserved : *const u32, lptype : *mut u32, lpdata : *mut u8, lpcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegFlushKey(hkey : HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RegGetKeySecurity(hkey : HKEY, securityinformation : super::super::Security:: OBJECT_SECURITY_INFORMATION, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR, lpcbsecuritydescriptor : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegGetValueA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, lpvalue : ::windows_sys::core::PCSTR, dwflags : REG_ROUTINE_FLAGS, pdwtype : *mut REG_VALUE_TYPE, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegGetValueW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, lpvalue : ::windows_sys::core::PCWSTR, dwflags : REG_ROUTINE_FLAGS, pdwtype : *mut REG_VALUE_TYPE, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegLoadAppKeyA(lpfile : ::windows_sys::core::PCSTR, phkresult : *mut HKEY, samdesired : u32, dwoptions : u32, reserved : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegLoadAppKeyW(lpfile : ::windows_sys::core::PCWSTR, phkresult : *mut HKEY, samdesired : u32, dwoptions : u32, reserved : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegLoadKeyA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, lpfile : ::windows_sys::core::PCSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegLoadKeyW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, lpfile : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegLoadMUIStringA(hkey : HKEY, pszvalue : ::windows_sys::core::PCSTR, pszoutbuf : ::windows_sys::core::PSTR, cboutbuf : u32, pcbdata : *mut u32, flags : u32, pszdirectory : ::windows_sys::core::PCSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegLoadMUIStringW(hkey : HKEY, pszvalue : ::windows_sys::core::PCWSTR, pszoutbuf : ::windows_sys::core::PWSTR, cboutbuf : u32, pcbdata : *mut u32, flags : u32, pszdirectory : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegNotifyChangeKeyValue(hkey : HKEY, bwatchsubtree : super::super::Foundation:: BOOL, dwnotifyfilter : REG_NOTIFY_FILTER, hevent : super::super::Foundation:: HANDLE, fasynchronous : super::super::Foundation:: BOOL) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegOpenCurrentUser(samdesired : u32, phkresult : *mut HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegOpenKeyA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, phkresult : *mut HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegOpenKeyExA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, uloptions : u32, samdesired : REG_SAM_FLAGS, phkresult : *mut HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegOpenKeyExW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, uloptions : u32, samdesired : REG_SAM_FLAGS, phkresult : *mut HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegOpenKeyTransactedA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, uloptions : u32, samdesired : REG_SAM_FLAGS, phkresult : *mut HKEY, htransaction : super::super::Foundation:: HANDLE, pextendedparemeter : *const ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegOpenKeyTransactedW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, uloptions : u32, samdesired : REG_SAM_FLAGS, phkresult : *mut HKEY, htransaction : super::super::Foundation:: HANDLE, pextendedparemeter : *const ::core::ffi::c_void) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegOpenKeyW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, phkresult : *mut HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegOpenUserClassesRoot(htoken : super::super::Foundation:: HANDLE, dwoptions : u32, samdesired : u32, phkresult : *mut HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegOverridePredefKey(hkey : HKEY, hnewhkey : HKEY) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegQueryInfoKeyA(hkey : HKEY, lpclass : ::windows_sys::core::PSTR, lpcchclass : *mut u32, lpreserved : *const u32, lpcsubkeys : *mut u32, lpcbmaxsubkeylen : *mut u32, lpcbmaxclasslen : *mut u32, lpcvalues : *mut u32, lpcbmaxvaluenamelen : *mut u32, lpcbmaxvaluelen : *mut u32, lpcbsecuritydescriptor : *mut u32, lpftlastwritetime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegQueryInfoKeyW(hkey : HKEY, lpclass : ::windows_sys::core::PWSTR, lpcchclass : *mut u32, lpreserved : *const u32, lpcsubkeys : *mut u32, lpcbmaxsubkeylen : *mut u32, lpcbmaxclasslen : *mut u32, lpcvalues : *mut u32, lpcbmaxvaluenamelen : *mut u32, lpcbmaxvaluelen : *mut u32, lpcbsecuritydescriptor : *mut u32, lpftlastwritetime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegQueryMultipleValuesA(hkey : HKEY, val_list : *mut VALENTA, num_vals : u32, lpvaluebuf : ::windows_sys::core::PSTR, ldwtotsize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegQueryMultipleValuesW(hkey : HKEY, val_list : *mut VALENTW, num_vals : u32, lpvaluebuf : ::windows_sys::core::PWSTR, ldwtotsize : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegQueryReflectionKey(hbase : HKEY, bisreflectiondisabled : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegQueryValueA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, lpdata : ::windows_sys::core::PSTR, lpcbdata : *mut i32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegQueryValueExA(hkey : HKEY, lpvaluename : ::windows_sys::core::PCSTR, lpreserved : *const u32, lptype : *mut REG_VALUE_TYPE, lpdata : *mut u8, lpcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegQueryValueExW(hkey : HKEY, lpvaluename : ::windows_sys::core::PCWSTR, lpreserved : *const u32, lptype : *mut REG_VALUE_TYPE, lpdata : *mut u8, lpcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegQueryValueW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, lpdata : ::windows_sys::core::PWSTR, lpcbdata : *mut i32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegRenameKey(hkey : HKEY, lpsubkeyname : ::windows_sys::core::PCWSTR, lpnewkeyname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegReplaceKeyA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, lpnewfile : ::windows_sys::core::PCSTR, lpoldfile : ::windows_sys::core::PCSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegReplaceKeyW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, lpnewfile : ::windows_sys::core::PCWSTR, lpoldfile : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegRestoreKeyA(hkey : HKEY, lpfile : ::windows_sys::core::PCSTR, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegRestoreKeyW(hkey : HKEY, lpfile : ::windows_sys::core::PCWSTR, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RegSaveKeyA(hkey : HKEY, lpfile : ::windows_sys::core::PCSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RegSaveKeyExA(hkey : HKEY, lpfile : ::windows_sys::core::PCSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, flags : REG_SAVE_FORMAT) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RegSaveKeyExW(hkey : HKEY, lpfile : ::windows_sys::core::PCWSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, flags : REG_SAVE_FORMAT) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RegSaveKeyW(hkey : HKEY, lpfile : ::windows_sys::core::PCWSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn RegSetKeySecurity(hkey : HKEY, securityinformation : super::super::Security:: OBJECT_SECURITY_INFORMATION, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegSetKeyValueA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, lpvaluename : ::windows_sys::core::PCSTR, dwtype : u32, lpdata : *const ::core::ffi::c_void, cbdata : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegSetKeyValueW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, lpvaluename : ::windows_sys::core::PCWSTR, dwtype : u32, lpdata : *const ::core::ffi::c_void, cbdata : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegSetValueA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR, dwtype : REG_VALUE_TYPE, lpdata : ::windows_sys::core::PCSTR, cbdata : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegSetValueExA(hkey : HKEY, lpvaluename : ::windows_sys::core::PCSTR, reserved : u32, dwtype : REG_VALUE_TYPE, lpdata : *const u8, cbdata : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegSetValueExW(hkey : HKEY, lpvaluename : ::windows_sys::core::PCWSTR, reserved : u32, dwtype : REG_VALUE_TYPE, lpdata : *const u8, cbdata : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegSetValueW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR, dwtype : REG_VALUE_TYPE, lpdata : ::windows_sys::core::PCWSTR, cbdata : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegUnLoadKeyA(hkey : HKEY, lpsubkey : ::windows_sys::core::PCSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegUnLoadKeyW(hkey : HKEY, lpsubkey : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +pub const AGP_FLAG_NO_1X_RATE: i32 = 1i32; +pub const AGP_FLAG_NO_2X_RATE: i32 = 2i32; +pub const AGP_FLAG_NO_4X_RATE: i32 = 4i32; +pub const AGP_FLAG_NO_8X_RATE: i32 = 8i32; +pub const AGP_FLAG_NO_FW_ENABLE: i32 = 512i32; +pub const AGP_FLAG_NO_SBA_ENABLE: i32 = 256i32; +pub const AGP_FLAG_REVERSE_INITIALIZATION: i32 = 128i32; +pub const AGP_FLAG_SPECIAL_RESERVE: i32 = 1015808i32; +pub const AGP_FLAG_SPECIAL_TARGET: i32 = 1048575i32; +pub const APMMENUSUSPEND_DISABLED: u32 = 0u32; +pub const APMMENUSUSPEND_ENABLED: u32 = 1u32; +pub const APMMENUSUSPEND_NOCHANGE: u32 = 128u32; +pub const APMMENUSUSPEND_UNDOCKED: u32 = 2u32; +pub const APMTIMEOUT_DISABLED: u32 = 0u32; +pub const BIF_RAWDEVICENEEDSDRIVER: u32 = 2u32; +pub const BIF_SHOWSIMILARDRIVERS: u32 = 1u32; +pub const CONFIGFLAG_BOOT_DEVICE: u32 = 262144u32; +pub const CONFIGFLAG_CANTSTOPACHILD: u32 = 128u32; +pub const CONFIGFLAG_DISABLED: u32 = 1u32; +pub const CONFIGFLAG_FAILEDINSTALL: u32 = 64u32; +pub const CONFIGFLAG_FINISHINSTALL_ACTION: u32 = 131072u32; +pub const CONFIGFLAG_FINISHINSTALL_UI: u32 = 65536u32; +pub const CONFIGFLAG_FINISH_INSTALL: u32 = 1024u32; +pub const CONFIGFLAG_IGNORE_BOOT_LC: u32 = 8u32; +pub const CONFIGFLAG_MANUAL_INSTALL: u32 = 4u32; +pub const CONFIGFLAG_NEEDS_CLASS_CONFIG: u32 = 524288u32; +pub const CONFIGFLAG_NEEDS_FORCED_CONFIG: u32 = 2048u32; +pub const CONFIGFLAG_NETBOOT_CARD: u32 = 4096u32; +pub const CONFIGFLAG_NET_BOOT: u32 = 16u32; +pub const CONFIGFLAG_NOREMOVEEXIT: u32 = 512u32; +pub const CONFIGFLAG_OKREMOVEROM: u32 = 256u32; +pub const CONFIGFLAG_PARTIAL_LOG_CONF: u32 = 8192u32; +pub const CONFIGFLAG_REINSTALL: u32 = 32u32; +pub const CONFIGFLAG_REMOVED: u32 = 2u32; +pub const CONFIGFLAG_SUPPRESS_SURPRISE: u32 = 16384u32; +pub const CONFIGFLAG_VERIFY_HARDWARE: u32 = 32768u32; +pub const CSCONFIGFLAG_BITS: u32 = 7u32; +pub const CSCONFIGFLAG_DISABLED: u32 = 1u32; +pub const CSCONFIGFLAG_DO_NOT_CREATE: u32 = 2u32; +pub const CSCONFIGFLAG_DO_NOT_START: u32 = 4u32; +pub const DMSTATEFLAG_APPLYTOALL: u32 = 1u32; +pub const DOSOPTF_ALWAYSUSE: i32 = 4i32; +pub const DOSOPTF_DEFAULT: i32 = 1i32; +pub const DOSOPTF_INDOSSTART: i32 = 64i32; +pub const DOSOPTF_MULTIPLE: i32 = 128i32; +pub const DOSOPTF_NEEDSETUP: i32 = 32i32; +pub const DOSOPTF_PROVIDESUMB: i32 = 16i32; +pub const DOSOPTF_SUPPORTED: i32 = 2i32; +pub const DOSOPTF_USESPMODE: i32 = 8i32; +pub const DOSOPTGF_DEFCLEAN: i32 = 1i32; +pub const DRIVERSIGN_BLOCKING: u32 = 2u32; +pub const DRIVERSIGN_NONE: u32 = 0u32; +pub const DRIVERSIGN_WARNING: u32 = 1u32; +pub const DTRESULTFIX: u32 = 1u32; +pub const DTRESULTOK: u32 = 0u32; +pub const DTRESULTPART: u32 = 3u32; +pub const DTRESULTPROB: u32 = 2u32; +pub const EISAFLAG_NO_IO_MERGE: u32 = 1u32; +pub const EISAFLAG_SLOT_IO_FIRST: u32 = 2u32; +pub const EISA_NO_MAX_FUNCTION: u32 = 255u32; +pub const HKEY_CLASSES_ROOT: HKEY = -2147483648i32 as _; +pub const HKEY_CURRENT_CONFIG: HKEY = -2147483643i32 as _; +pub const HKEY_CURRENT_USER: HKEY = -2147483647i32 as _; +pub const HKEY_CURRENT_USER_LOCAL_SETTINGS: HKEY = -2147483641i32 as _; +pub const HKEY_DYN_DATA: HKEY = -2147483642i32 as _; +pub const HKEY_LOCAL_MACHINE: HKEY = -2147483646i32 as _; +pub const HKEY_PERFORMANCE_DATA: HKEY = -2147483644i32 as _; +pub const HKEY_PERFORMANCE_NLSTEXT: HKEY = -2147483552i32 as _; +pub const HKEY_PERFORMANCE_TEXT: HKEY = -2147483568i32 as _; +pub const HKEY_USERS: HKEY = -2147483645i32 as _; +pub const IT_COMPACT: u32 = 0u32; +pub const IT_CUSTOM: u32 = 3u32; +pub const IT_PORTABLE: u32 = 2u32; +pub const IT_TYPICAL: u32 = 1u32; +pub const KEY_ALL_ACCESS: REG_SAM_FLAGS = 983103u32; +pub const KEY_CREATE_LINK: REG_SAM_FLAGS = 32u32; +pub const KEY_CREATE_SUB_KEY: REG_SAM_FLAGS = 4u32; +pub const KEY_ENUMERATE_SUB_KEYS: REG_SAM_FLAGS = 8u32; +pub const KEY_EXECUTE: REG_SAM_FLAGS = 131097u32; +pub const KEY_NOTIFY: REG_SAM_FLAGS = 16u32; +pub const KEY_QUERY_VALUE: REG_SAM_FLAGS = 1u32; +pub const KEY_READ: REG_SAM_FLAGS = 131097u32; +pub const KEY_SET_VALUE: REG_SAM_FLAGS = 2u32; +pub const KEY_WOW64_32KEY: REG_SAM_FLAGS = 512u32; +pub const KEY_WOW64_64KEY: REG_SAM_FLAGS = 256u32; +pub const KEY_WOW64_RES: REG_SAM_FLAGS = 768u32; +pub const KEY_WRITE: REG_SAM_FLAGS = 131078u32; +pub const LASTGOOD_OPERATION: u32 = 255u32; +pub const LASTGOOD_OPERATION_DELETE: u32 = 1u32; +pub const LASTGOOD_OPERATION_NOPOSTPROC: u32 = 0u32; +pub const MF_FLAGS_CREATE_BUT_NO_SHOW_DISABLED: u32 = 8u32; +pub const MF_FLAGS_EVEN_IF_NO_RESOURCE: u32 = 1u32; +pub const MF_FLAGS_FILL_IN_UNKNOWN_RESOURCE: u32 = 4u32; +pub const MF_FLAGS_NO_CREATE_IF_NO_RESOURCE: u32 = 2u32; +pub const NUM_EISA_RANGES: u32 = 4u32; +pub const NUM_RESOURCE_MAP: u32 = 256u32; +pub const PCIC_DEFAULT_IRQMASK: u32 = 20152u32; +pub const PCIC_DEFAULT_NUMSOCKETS: u32 = 0u32; +pub const PCI_OPTIONS_USE_BIOS: i32 = 1i32; +pub const PCI_OPTIONS_USE_IRQ_STEERING: i32 = 2i32; +pub const PCMCIA_DEF_MEMBEGIN: u32 = 786432u32; +pub const PCMCIA_DEF_MEMEND: u32 = 16777215u32; +pub const PCMCIA_DEF_MEMLEN: u32 = 4096u32; +pub const PCMCIA_DEF_MIN_REGION: u32 = 65536u32; +pub const PCMCIA_OPT_AUTOMEM: i32 = 4i32; +pub const PCMCIA_OPT_HAVE_SOCKET: i32 = 1i32; +pub const PCMCIA_OPT_NO_APMREMOVE: i32 = 32i32; +pub const PCMCIA_OPT_NO_AUDIO: i32 = 16i32; +pub const PCMCIA_OPT_NO_SOUND: i32 = 8i32; +pub const PIR_OPTION_DEFAULT: u32 = 15u32; +pub const PIR_OPTION_ENABLED: u32 = 1u32; +pub const PIR_OPTION_MSSPEC: u32 = 4u32; +pub const PIR_OPTION_REALMODE: u32 = 8u32; +pub const PIR_OPTION_REGISTRY: u32 = 2u32; +pub const PIR_STATUS_DISABLED: u32 = 2u32; +pub const PIR_STATUS_ENABLED: u32 = 1u32; +pub const PIR_STATUS_ERROR: u32 = 0u32; +pub const PIR_STATUS_MAX: u32 = 3u32; +pub const PIR_STATUS_MINIPORT_COMPATIBLE: u32 = 1u32; +pub const PIR_STATUS_MINIPORT_ERROR: u32 = 4u32; +pub const PIR_STATUS_MINIPORT_INVALID: u32 = 7u32; +pub const PIR_STATUS_MINIPORT_MAX: u32 = 8u32; +pub const PIR_STATUS_MINIPORT_NOKEY: u32 = 5u32; +pub const PIR_STATUS_MINIPORT_NONE: u32 = 3u32; +pub const PIR_STATUS_MINIPORT_NORMAL: u32 = 0u32; +pub const PIR_STATUS_MINIPORT_OVERRIDE: u32 = 2u32; +pub const PIR_STATUS_MINIPORT_SUCCESS: u32 = 6u32; +pub const PIR_STATUS_TABLE_BAD: u32 = 5u32; +pub const PIR_STATUS_TABLE_ERROR: u32 = 4u32; +pub const PIR_STATUS_TABLE_MAX: u32 = 7u32; +pub const PIR_STATUS_TABLE_MSSPEC: u32 = 1u32; +pub const PIR_STATUS_TABLE_NONE: u32 = 3u32; +pub const PIR_STATUS_TABLE_REALMODE: u32 = 2u32; +pub const PIR_STATUS_TABLE_REGISTRY: u32 = 0u32; +pub const PIR_STATUS_TABLE_SUCCESS: u32 = 6u32; +pub const PROVIDER_KEEPS_VALUE_LENGTH: u32 = 1u32; +pub const REGDF_CONFLICTDMA: u32 = 524288u32; +pub const REGDF_CONFLICTIO: u32 = 65536u32; +pub const REGDF_CONFLICTIRQ: u32 = 262144u32; +pub const REGDF_CONFLICTMEM: u32 = 131072u32; +pub const REGDF_GENFORCEDCONFIG: u32 = 32u32; +pub const REGDF_MAPIRQ2TO9: u32 = 1048576u32; +pub const REGDF_NEEDFULLCONFIG: u32 = 16u32; +pub const REGDF_NODETCONFIG: u32 = 32768u32; +pub const REGDF_NOTDETDMA: u32 = 8u32; +pub const REGDF_NOTDETIO: u32 = 1u32; +pub const REGDF_NOTDETIRQ: u32 = 4u32; +pub const REGDF_NOTDETMEM: u32 = 2u32; +pub const REGDF_NOTVERIFIED: u32 = 2147483648u32; +pub const REGSTR_DATA_NETOS_IPX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IPX"); +pub const REGSTR_DATA_NETOS_NDIS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NDIS"); +pub const REGSTR_DATA_NETOS_ODI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ODI"); +pub const REGSTR_DEFAULT_INSTANCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("0000"); +pub const REGSTR_KEY_ACPIENUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ACPI"); +pub const REGSTR_KEY_APM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("*PNP0C05"); +pub const REGSTR_KEY_BIOSENUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BIOS"); +pub const REGSTR_KEY_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Class"); +pub const REGSTR_KEY_CONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Config"); +pub const REGSTR_KEY_CONTROL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Control"); +pub const REGSTR_KEY_CRASHES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Crashes"); +pub const REGSTR_KEY_CURRENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Current"); +pub const REGSTR_KEY_CURRENT_ENV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Windows 4.0"); +pub const REGSTR_KEY_DANGERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Dangers"); +pub const REGSTR_KEY_DEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Default"); +pub const REGSTR_KEY_DETMODVARS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DetModVars"); +pub const REGSTR_KEY_DEVICEPARAMETERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Device Parameters"); +pub const REGSTR_KEY_DEVICE_PROPERTIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Properties"); +pub const REGSTR_KEY_DISPLAY_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Display"); +pub const REGSTR_KEY_DOSOPTCDROM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CD-ROM"); +pub const REGSTR_KEY_DOSOPTMOUSE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MOUSE"); +pub const REGSTR_KEY_DRIVERPARAMETERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Driver Parameters"); +pub const REGSTR_KEY_DRIVERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Drivers"); +pub const REGSTR_KEY_EBDAUTOEXECBATKEYBOARD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EBDAutoexecBatKeyboard"); +pub const REGSTR_KEY_EBDAUTOEXECBATLOCAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EBDAutoexecBatLocale"); +pub const REGSTR_KEY_EBDCONFIGSYSKEYBOARD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EBDConfigSysKeyboard"); +pub const REGSTR_KEY_EBDCONFIGSYSLOCAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EBDConfigSysLocale"); +pub const REGSTR_KEY_EBDFILESKEYBOARD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EBDFilesKeyboard"); +pub const REGSTR_KEY_EBDFILESLOCAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EBDFilesLocale"); +pub const REGSTR_KEY_EISAENUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EISA"); +pub const REGSTR_KEY_ENUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Enum"); +pub const REGSTR_KEY_EXPLORER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Explorer"); +pub const REGSTR_KEY_FILTERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Filters"); +pub const REGSTR_KEY_INIUPDATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IniUpdate"); +pub const REGSTR_KEY_ISAENUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ISAPnP"); +pub const REGSTR_KEY_JOYCURR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentJoystickSettings"); +pub const REGSTR_KEY_JOYSETTINGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("JoystickSettings"); +pub const REGSTR_KEY_KEYBOARD_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Keyboard"); +pub const REGSTR_KEY_KNOWNDOCKINGSTATES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Hardware Profiles"); +pub const REGSTR_KEY_LOGCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogConfig"); +pub const REGSTR_KEY_LOGON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Logon"); +pub const REGSTR_KEY_LOWER_FILTER_LEVEL_DEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("*Lower"); +pub const REGSTR_KEY_MEDIA_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MEDIA"); +pub const REGSTR_KEY_MODEM_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Modem"); +pub const REGSTR_KEY_MODES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Modes"); +pub const REGSTR_KEY_MONITOR_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Monitor"); +pub const REGSTR_KEY_MOUSE_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Mouse"); +pub const REGSTR_KEY_NDISINFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NDISInfo"); +pub const REGSTR_KEY_NETWORK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Network"); +pub const REGSTR_KEY_NETWORKPROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\NetworkProvider"); +pub const REGSTR_KEY_NETWORK_PERSISTENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Persistent"); +pub const REGSTR_KEY_NETWORK_RECENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Recent"); +pub const REGSTR_KEY_OVERRIDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Override"); +pub const REGSTR_KEY_PCIENUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCI"); +pub const REGSTR_KEY_PCMCIA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCMCIA\\"); +pub const REGSTR_KEY_PCMCIAENUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCMCIA"); +pub const REGSTR_KEY_PCMCIA_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCMCIA"); +pub const REGSTR_KEY_PCMTD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MTD-"); +pub const REGSTR_KEY_PCUNKNOWN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UNKNOWN_MANUFACTURER"); +pub const REGSTR_KEY_POL_COMPUTERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Computers"); +pub const REGSTR_KEY_POL_DEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(".default"); +pub const REGSTR_KEY_POL_USERGROUPDATA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GroupData\\UserGroups\\Priority"); +pub const REGSTR_KEY_POL_USERGROUPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UserGroups"); +pub const REGSTR_KEY_POL_USERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Users"); +pub const REGSTR_KEY_PORTS_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ports"); +pub const REGSTR_KEY_PRINTERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Printers"); +pub const REGSTR_KEY_PRINT_PROC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Print Processors"); +pub const REGSTR_KEY_ROOTENUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Root"); +pub const REGSTR_KEY_RUNHISTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RunHistory"); +pub const REGSTR_KEY_SCSI_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCSIAdapter"); +pub const REGSTR_KEY_SETUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Setup"); +pub const REGSTR_KEY_SHARES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Network\\LanMan"); +pub const REGSTR_KEY_SYSTEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System"); +pub const REGSTR_KEY_SYSTEMBOARD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("*PNP0C01"); +pub const REGSTR_KEY_UPPER_FILTER_LEVEL_DEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("*Upper"); +pub const REGSTR_KEY_USER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("User"); +pub const REGSTR_KEY_VPOWERDENUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VPOWERD"); +pub const REGSTR_KEY_WINOLDAPP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WinOldApp"); +pub const REGSTR_MACHTYPE_ATT_PC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AT&T PC"); +pub const REGSTR_MACHTYPE_HP_VECTRA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HP Vectra"); +pub const REGSTR_MACHTYPE_IBMPC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PC"); +pub const REGSTR_MACHTYPE_IBMPCAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PC/AT"); +pub const REGSTR_MACHTYPE_IBMPCCONV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PC Convertible"); +pub const REGSTR_MACHTYPE_IBMPCJR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PCjr"); +pub const REGSTR_MACHTYPE_IBMPCXT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PC/XT"); +pub const REGSTR_MACHTYPE_IBMPCXT_286: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PC/XT 286"); +pub const REGSTR_MACHTYPE_IBMPS1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/1"); +pub const REGSTR_MACHTYPE_IBMPS2_25: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/2-25"); +pub const REGSTR_MACHTYPE_IBMPS2_30: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/2-30"); +pub const REGSTR_MACHTYPE_IBMPS2_30_286: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/2-30 286"); +pub const REGSTR_MACHTYPE_IBMPS2_50: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/2-50"); +pub const REGSTR_MACHTYPE_IBMPS2_50Z: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/2-50Z"); +pub const REGSTR_MACHTYPE_IBMPS2_55SX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/2-55SX"); +pub const REGSTR_MACHTYPE_IBMPS2_60: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/2-60"); +pub const REGSTR_MACHTYPE_IBMPS2_65SX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/2-65SX"); +pub const REGSTR_MACHTYPE_IBMPS2_70: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/2-70"); +pub const REGSTR_MACHTYPE_IBMPS2_70_80: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/2-70/80"); +pub const REGSTR_MACHTYPE_IBMPS2_80: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/2-80"); +pub const REGSTR_MACHTYPE_IBMPS2_90: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/2-90"); +pub const REGSTR_MACHTYPE_IBMPS2_P70: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IBM PS/2-P70"); +pub const REGSTR_MACHTYPE_PHOENIX_PCAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Phoenix PC/AT Compatible"); +pub const REGSTR_MACHTYPE_UNKNOWN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Unknown"); +pub const REGSTR_MACHTYPE_ZENITH_PC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Zenith PC"); +pub const REGSTR_MAX_VALUE_LENGTH: u32 = 256u32; +pub const REGSTR_PATH_ADDRARB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\Arbitrators\\AddrArb"); +pub const REGSTR_PATH_AEDEBUG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug"); +pub const REGSTR_PATH_APPEARANCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Control Panel\\Appearance"); +pub const REGSTR_PATH_APPPATCH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\SessionManager\\AppPatches"); +pub const REGSTR_PATH_APPPATHS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\App Paths"); +pub const REGSTR_PATH_BIOSINFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\BiosInfo"); +pub const REGSTR_PATH_BUSINFORMATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\PnP\\BusInformation"); +pub const REGSTR_PATH_CDFS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\FileSystem\\CDFS"); +pub const REGSTR_PATH_CHECKBADAPPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\SessionManager\\CheckBadApps"); +pub const REGSTR_PATH_CHECKBADAPPS400: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\SessionManager\\CheckBadApps400"); +pub const REGSTR_PATH_CHECKDISK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive"); +pub const REGSTR_PATH_CHECKDISKSET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Settings"); +pub const REGSTR_PATH_CHECKDISKUDRVS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoUnknownDDErrDrvs"); +pub const REGSTR_PATH_CHECKVERDLLS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\SessionManager\\CheckVerDLLs"); +pub const REGSTR_PATH_CHILD_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Child"); +pub const REGSTR_PATH_CHKLASTCHECK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive\\LastCheck"); +pub const REGSTR_PATH_CHKLASTSURFAN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive\\LastSurfaceAnalysis"); +pub const REGSTR_PATH_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\Class"); +pub const REGSTR_PATH_CLASS_NT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\Class"); +pub const REGSTR_PATH_CODEPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\Nls\\Codepage"); +pub const REGSTR_PATH_CODEVICEINSTALLERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\CoDeviceInstallers"); +pub const REGSTR_PATH_COLORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Control Panel\\Colors"); +pub const REGSTR_PATH_COMPUTRNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\ComputerName\\ComputerName"); +pub const REGSTR_PATH_CONTROLPANEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Control Panel"); +pub const REGSTR_PATH_CONTROLSFOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Controls Folder"); +pub const REGSTR_PATH_CRITICALDEVICEDATABASE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\CriticalDeviceDatabase"); +pub const REGSTR_PATH_CURRENTCONTROLSET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet"); +pub const REGSTR_PATH_CURRENT_CONTROL_SET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control"); +pub const REGSTR_PATH_CURSORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Control Panel\\Cursors"); +pub const REGSTR_PATH_CVNETWORK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Network"); +pub const REGSTR_PATH_DESKTOP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Control Panel\\Desktop"); +pub const REGSTR_PATH_DETECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Detect"); +pub const REGSTR_PATH_DEVICEINSTALLER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Device Installer"); +pub const REGSTR_PATH_DEVICE_CLASSES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\DeviceClasses"); +pub const REGSTR_PATH_DIFX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\DIFX"); +pub const REGSTR_PATH_DISPLAYSETTINGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Display\\Settings"); +pub const REGSTR_PATH_DMAARB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\Arbitrators\\DMAArb"); +pub const REGSTR_PATH_DRIVERSIGN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Driver Signing"); +pub const REGSTR_PATH_DRIVERSIGN_POLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Policies\\Microsoft\\Windows NT\\Driver Signing"); +pub const REGSTR_PATH_ENUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Enum"); +pub const REGSTR_PATH_ENVIRONMENTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\Print\\Environments"); +pub const REGSTR_PATH_EVENTLABELS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AppEvents\\EventLabels"); +pub const REGSTR_PATH_EXPLORER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer"); +pub const REGSTR_PATH_FAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Fault"); +pub const REGSTR_PATH_FILESYSTEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\FileSystem"); +pub const REGSTR_PATH_FILESYSTEM_NOVOLTRACK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\FileSystem\\NoVolTrack"); +pub const REGSTR_PATH_FLOATINGPOINTPROCESSOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HARDWARE\\DESCRIPTION\\System\\FloatingPointProcessor"); +pub const REGSTR_PATH_FLOATINGPOINTPROCESSOR0: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HARDWARE\\DESCRIPTION\\System\\FloatingPointProcessor\\0"); +pub const REGSTR_PATH_FONTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Display\\Fonts"); +pub const REGSTR_PATH_GRPCONV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\GrpConv"); +pub const REGSTR_PATH_HACKINIFILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\SessionManager\\HackIniFiles"); +pub const REGSTR_PATH_HWPROFILES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Hardware Profiles"); +pub const REGSTR_PATH_HWPROFILESCURRENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Hardware Profiles\\Current"); +pub const REGSTR_PATH_ICONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Control Panel\\Icons"); +pub const REGSTR_PATH_IDCONFIGDB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\IDConfigDB"); +pub const REGSTR_PATH_INSTALLEDFILES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\InstalledFiles"); +pub const REGSTR_PATH_IOARB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\Arbitrators\\IOArb"); +pub const REGSTR_PATH_IOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\VxD\\IOS"); +pub const REGSTR_PATH_IRQARB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\Arbitrators\\IRQArb"); +pub const REGSTR_PATH_KEYBOARD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Control Panel\\Keyboard"); +pub const REGSTR_PATH_KNOWN16DLLS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\SessionManager\\Known16DLLs"); +pub const REGSTR_PATH_KNOWNDLLS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\SessionManager\\KnownDLLs"); +pub const REGSTR_PATH_KNOWNVXDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\SessionManager\\KnownVxDs"); +pub const REGSTR_PATH_LASTBACKUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastBackup"); +pub const REGSTR_PATH_LASTCHECK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastCheck"); +pub const REGSTR_PATH_LASTGOOD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\LastKnownGoodRecovery\\LastGood"); +pub const REGSTR_PATH_LASTGOODTMP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\LastKnownGoodRecovery\\LastGood.Tmp"); +pub const REGSTR_PATH_LASTOPTIMIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastOptimize"); +pub const REGSTR_PATH_LOOKSCHEMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Control Panel\\Appearance\\Schemes"); +pub const REGSTR_PATH_METRICS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Control Panel\\Desktop\\WindowMetrics"); +pub const REGSTR_PATH_MONITORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\Print\\Monitors"); +pub const REGSTR_PATH_MOUSE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Control Panel\\Mouse"); +pub const REGSTR_PATH_MSDOSOPTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\MS-DOSOptions"); +pub const REGSTR_PATH_MULTIMEDIA_AUDIO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Multimedia\\Audio"); +pub const REGSTR_PATH_MULTI_FUNCTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MF"); +pub const REGSTR_PATH_NCPSERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\NcpServer\\Parameters"); +pub const REGSTR_PATH_NETEQUIV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Network\\Equivalent"); +pub const REGSTR_PATH_NETWORK_USERSETTINGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Network"); +pub const REGSTR_PATH_NEWDOSBOX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\MS-DOSSpecialConfig"); +pub const REGSTR_PATH_NONDRIVERSIGN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Non-Driver Signing"); +pub const REGSTR_PATH_NONDRIVERSIGN_POLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Policies\\Microsoft\\Windows NT\\Non-Driver Signing"); +pub const REGSTR_PATH_NOSUGGMSDOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\NoMSDOSWarn"); +pub const REGSTR_PATH_NT_CURRENTVERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows NT\\CurrentVersion"); +pub const REGSTR_PATH_NWREDIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\VxD\\NWREDIR"); +pub const REGSTR_PATH_PCIIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\Pnp\\PciIrqRouting"); +pub const REGSTR_PATH_PER_HW_ID_STORAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows NT\\CurrentVersion\\PerHwIdStorage"); +pub const REGSTR_PATH_PIFCONVERT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\PIFConvert"); +pub const REGSTR_PATH_POLICIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Policies"); +pub const REGSTR_PATH_PRINT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\Print"); +pub const REGSTR_PATH_PRINTERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\Print\\Printers"); +pub const REGSTR_PATH_PROPERTYSYSTEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\PropertySystem"); +pub const REGSTR_PATH_PROVIDERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\Print\\Providers"); +pub const REGSTR_PATH_PWDPROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\PwdProvider"); +pub const REGSTR_PATH_REALMODENET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Network\\Real Mode Net"); +pub const REGSTR_PATH_REINSTALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Reinstall"); +pub const REGSTR_PATH_RELIABILITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Reliability"); +pub const REGSTR_PATH_RELIABILITY_POLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Policies\\Microsoft\\Windows NT\\Reliability"); +pub const REGSTR_PATH_RELIABILITY_POLICY_REPORTSNAPSHOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReportSnapshot"); +pub const REGSTR_PATH_RELIABILITY_POLICY_SHUTDOWNREASONUI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShutdownReasonUI"); +pub const REGSTR_PATH_RELIABILITY_POLICY_SNAPSHOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Snapshot"); +pub const REGSTR_PATH_ROOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Enum\\Root"); +pub const REGSTR_PATH_RUN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Run"); +pub const REGSTR_PATH_RUNONCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce"); +pub const REGSTR_PATH_RUNONCEEX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\RunOnceEx"); +pub const REGSTR_PATH_RUNSERVICES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\RunServices"); +pub const REGSTR_PATH_RUNSERVICESONCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\RunServicesOnce"); +pub const REGSTR_PATH_SCHEMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AppEvents\\Schemes"); +pub const REGSTR_PATH_SCREENSAVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Control Panel\\Desktop"); +pub const REGSTR_PATH_SERVICES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services"); +pub const REGSTR_PATH_SETUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion"); +pub const REGSTR_PATH_SHUTDOWN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\Shutdown"); +pub const REGSTR_PATH_SOUND: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Control Panel\\Sound"); +pub const REGSTR_PATH_SYSTEMENUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Enum"); +pub const REGSTR_PATH_SYSTRAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\SysTray"); +pub const REGSTR_PATH_TIMEZONE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\TimeZoneInformation"); +pub const REGSTR_PATH_UNINSTALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall"); +pub const REGSTR_PATH_UPDATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\Update"); +pub const REGSTR_PATH_VCOMM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\VxD\\VCOMM"); +pub const REGSTR_PATH_VMM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\VxD\\VMM"); +pub const REGSTR_PATH_VMM32FILES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\VMM32Files"); +pub const REGSTR_PATH_VNETSUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\VxD\\VNETSUP"); +pub const REGSTR_PATH_VOLUMECACHE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\VolumeCaches"); +pub const REGSTR_PATH_VPOWERD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\VxD\\VPOWERD"); +pub const REGSTR_PATH_VXD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\VxD"); +pub const REGSTR_PATH_WARNVERDLLS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\SessionManager\\WarnVerDLLs"); +pub const REGSTR_PATH_WINBOOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\WinBoot"); +pub const REGSTR_PATH_WINDOWSAPPLETS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Applets"); +pub const REGSTR_PATH_WINLOGON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\Winlogon"); +pub const REGSTR_PATH_WMI_SECURITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\Wmi\\Security"); +pub const REGSTR_PCI_DUAL_IDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCIDualIDE"); +pub const REGSTR_PCI_OPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Options"); +pub const REGSTR_VALUE_DEFAULTLOC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UseDefaultNetLocation"); +pub const REGSTR_VALUE_ENABLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Enable"); +pub const REGSTR_VALUE_LOWPOWERACTIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScreenSaveLowPowerActive"); +pub const REGSTR_VALUE_LOWPOWERTIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScreenSaveLowPowerTimeout"); +pub const REGSTR_VALUE_NETPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NetworkPath"); +pub const REGSTR_VALUE_POWEROFFACTIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScreenSavePowerOffActive"); +pub const REGSTR_VALUE_POWEROFFTIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScreenSavePowerOffTimeout"); +pub const REGSTR_VALUE_SCRPASSWORD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScreenSave_Data"); +pub const REGSTR_VALUE_USESCRPASSWORD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScreenSaveUsePassword"); +pub const REGSTR_VALUE_VERBOSE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Verbose"); +pub const REGSTR_VAL_ACDRIVESPINDOWN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ACDriveSpinDown"); +pub const REGSTR_VAL_ACSPINDOWNPREVIOUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ACSpinDownPrevious"); +pub const REGSTR_VAL_ACTIVESERVICE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ActiveService"); +pub const REGSTR_VAL_ADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Address"); +pub const REGSTR_VAL_AEDEBUG_AUTO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Auto"); +pub const REGSTR_VAL_AEDEBUG_DEBUGGER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Debugger"); +pub const REGSTR_VAL_ALPHANUMPWDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AlphanumPwds"); +pub const REGSTR_VAL_APISUPPORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("APISupport"); +pub const REGSTR_VAL_APMACTIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("APMACTimeout"); +pub const REGSTR_VAL_APMBATTIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("APMBatTimeout"); +pub const REGSTR_VAL_APMBIOSVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("APMBiosVer"); +pub const REGSTR_VAL_APMFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("APMFlags"); +pub const REGSTR_VAL_APMMENUSUSPEND: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("APMMenuSuspend"); +pub const REGSTR_VAL_APMSHUTDOWNPOWER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("APMShutDownPower"); +pub const REGSTR_VAL_APPINSTPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AppInstallPath"); +pub const REGSTR_VAL_ASKFORCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AskForConfig"); +pub const REGSTR_VAL_ASKFORCONFIGFUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AskForConfigFunc"); +pub const REGSTR_VAL_ASYNCFILECOMMIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AsyncFileCommit"); +pub const REGSTR_VAL_AUDIO_BITMAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("bitmap"); +pub const REGSTR_VAL_AUDIO_ICON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("icon"); +pub const REGSTR_VAL_AUTHENT_AGENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AuthenticatingAgent"); +pub const REGSTR_VAL_AUTOEXEC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Autoexec.Bat"); +pub const REGSTR_VAL_AUTOINSNOTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoInsertNotification"); +pub const REGSTR_VAL_AUTOLOGON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoLogon"); +pub const REGSTR_VAL_AUTOMOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoMountDrives"); +pub const REGSTR_VAL_AUTOSTART: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoStart"); +pub const REGSTR_VAL_BASICPROPERTIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BasicProperties"); +pub const REGSTR_VAL_BASICPROPERTIES_32: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BasicProperties32"); +pub const REGSTR_VAL_BATDRIVESPINDOWN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BatDriveSpinDown"); +pub const REGSTR_VAL_BATSPINDOWNPREVIOUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BatSpinDownPrevious"); +pub const REGSTR_VAL_BEHAVIOR_ON_FAILED_VERIFY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BehaviorOnFailedVerify"); +pub const REGSTR_VAL_BIOSDATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BIOSDate"); +pub const REGSTR_VAL_BIOSNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BIOSName"); +pub const REGSTR_VAL_BIOSVERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BIOSVersion"); +pub const REGSTR_VAL_BITSPERPIXEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BitsPerPixel"); +pub const REGSTR_VAL_BOOTCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BootConfig"); +pub const REGSTR_VAL_BOOTCOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BootCount"); +pub const REGSTR_VAL_BOOTDIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BootDir"); +pub const REGSTR_VAL_BPP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BPP"); +pub const REGSTR_VAL_BT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("6005BT"); +pub const REGSTR_VAL_BUFFAGETIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BufferAgeTimeout"); +pub const REGSTR_VAL_BUFFIDLETIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BufferIdleTimeout"); +pub const REGSTR_VAL_BUSTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BusType"); +pub const REGSTR_VAL_CAPABILITIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Capabilities"); +pub const REGSTR_VAL_CARDSPECIFIC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CardSpecific"); +pub const REGSTR_VAL_CDCACHESIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CacheSize"); +pub const REGSTR_VAL_CDCOMPATNAMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSCDEXCompatNames"); +pub const REGSTR_VAL_CDEXTERRORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExtendedErrors"); +pub const REGSTR_VAL_CDNOREADAHEAD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoReadAhead"); +pub const REGSTR_VAL_CDPREFETCH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Prefetch"); +pub const REGSTR_VAL_CDPREFETCHTAIL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrefetchTail"); +pub const REGSTR_VAL_CDRAWCACHE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawCache"); +pub const REGSTR_VAL_CDROM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GenCD"); +pub const REGSTR_VAL_CDROMCLASSNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CDROM"); +pub const REGSTR_VAL_CDSHOWVERSIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShowVersions"); +pub const REGSTR_VAL_CDSVDSENSE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SVDSense"); +pub const REGSTR_VAL_CHECKSUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentChecksum"); +pub const REGSTR_VAL_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Class"); +pub const REGSTR_VAL_CLASSDESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClassDesc"); +pub const REGSTR_VAL_CLASSGUID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ClassGUID"); +pub const REGSTR_VAL_CMDRIVFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CMDrivFlags"); +pub const REGSTR_VAL_CMENUMFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CMEnumFlags"); +pub const REGSTR_VAL_COINSTALLERS_32: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CoInstallers32"); +pub const REGSTR_VAL_COMINFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ComInfo"); +pub const REGSTR_VAL_COMMENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Comment"); +pub const REGSTR_VAL_COMPATIBLEIDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CompatibleIDs"); +pub const REGSTR_VAL_COMPRESSIONMETHOD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CompressionAlgorithm"); +pub const REGSTR_VAL_COMPRESSIONTHRESHOLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CompressionThreshold"); +pub const REGSTR_VAL_COMPUTERNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ComputerName"); +pub const REGSTR_VAL_COMPUTRNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ComputerName"); +pub const REGSTR_VAL_COMVERIFYBASE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("COMVerifyBase"); +pub const REGSTR_VAL_CONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConfigPath"); +pub const REGSTR_VAL_CONFIGFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConfigFlags"); +pub const REGSTR_VAL_CONFIGMG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CONFIGMG"); +pub const REGSTR_VAL_CONFIGSYS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Config.Sys"); +pub const REGSTR_VAL_CONNECTION_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConnectionType"); +pub const REGSTR_VAL_CONTAINERID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ContainerID"); +pub const REGSTR_VAL_CONTIGFILEALLOC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ContigFileAllocSize"); +pub const REGSTR_VAL_CONVMEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConvMem"); +pub const REGSTR_VAL_CPU: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CPU"); +pub const REGSTR_VAL_CRASHFUNCS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CrashFuncs"); +pub const REGSTR_VAL_CSCONFIGFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CSConfigFlags"); +pub const REGSTR_VAL_CURCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentConfig"); +pub const REGSTR_VAL_CURDRVLET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentDriveLetterAssignment"); +pub const REGSTR_VAL_CURRENTCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentConfig"); +pub const REGSTR_VAL_CURRENT_BUILD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentBuildNumber"); +pub const REGSTR_VAL_CURRENT_CSDVERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CSDVersion"); +pub const REGSTR_VAL_CURRENT_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentType"); +pub const REGSTR_VAL_CURRENT_USER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Current User"); +pub const REGSTR_VAL_CURRENT_VERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentVersion"); +pub const REGSTR_VAL_CUSTOMCOLORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CustomColors"); +pub const REGSTR_VAL_CUSTOM_PROPERTY_CACHE_DATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CustomPropertyCacheDate"); +pub const REGSTR_VAL_CUSTOM_PROPERTY_HW_ID_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CustomPropertyHwIdKey"); +pub const REGSTR_VAL_DEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Default"); +pub const REGSTR_VAL_DETCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DetConfig"); +pub const REGSTR_VAL_DETECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Detect"); +pub const REGSTR_VAL_DETECTFUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DetectFunc"); +pub const REGSTR_VAL_DETFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DetFlags"); +pub const REGSTR_VAL_DETFUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DetFunc"); +pub const REGSTR_VAL_DEVDESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceDesc"); +pub const REGSTR_VAL_DEVICEDRIVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceDriver"); +pub const REGSTR_VAL_DEVICEPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DevicePath"); +pub const REGSTR_VAL_DEVICE_CHARACTERISTICS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceCharacteristics"); +pub const REGSTR_VAL_DEVICE_EXCLUSIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Exclusive"); +pub const REGSTR_VAL_DEVICE_INSTANCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceInstance"); +pub const REGSTR_VAL_DEVICE_SECURITY_DESCRIPTOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Security"); +pub const REGSTR_VAL_DEVICE_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceType"); +pub const REGSTR_VAL_DEVLOADER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DevLoader"); +pub const REGSTR_VAL_DEVTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceType"); +pub const REGSTR_VAL_DIRECTHOST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DirectHost"); +pub const REGSTR_VAL_DIRTYSHUTDOWN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DirtyShutdown"); +pub const REGSTR_VAL_DIRTYSHUTDOWNTIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DirtyShutdownTime"); +pub const REGSTR_VAL_DISABLECOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableCount"); +pub const REGSTR_VAL_DISABLEPWDCACHING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisablePwdCaching"); +pub const REGSTR_VAL_DISABLEREGTOOLS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableRegistryTools"); +pub const REGSTR_VAL_DISCONNECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Disconnect"); +pub const REGSTR_VAL_DISK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GenDisk"); +pub const REGSTR_VAL_DISKCLASSNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DiskDrive"); +pub const REGSTR_VAL_DISPCPL_NOAPPEARANCEPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoDispAppearancePage"); +pub const REGSTR_VAL_DISPCPL_NOBACKGROUNDPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoDispBackgroundPage"); +pub const REGSTR_VAL_DISPCPL_NODISPCPL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoDispCPL"); +pub const REGSTR_VAL_DISPCPL_NOSCRSAVPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoDispScrSavPage"); +pub const REGSTR_VAL_DISPCPL_NOSETTINGSPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoDispSettingsPage"); +pub const REGSTR_VAL_DISPLAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("display"); +pub const REGSTR_VAL_DISPLAYFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisplayFlags"); +pub const REGSTR_VAL_DOCKED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentDockedState"); +pub const REGSTR_VAL_DOCKSTATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DockState"); +pub const REGSTR_VAL_DOES_POLLING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PollingSupportNeeded"); +pub const REGSTR_VAL_DONTLOADIFCONFLICT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DontLoadIfConflict"); +pub const REGSTR_VAL_DONTUSEMEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DontAllocLastMem"); +pub const REGSTR_VAL_DOSCP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCP"); +pub const REGSTR_VAL_DOSOPTFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Flags"); +pub const REGSTR_VAL_DOSOPTGLOBALFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GlobalFlags"); +pub const REGSTR_VAL_DOSOPTTIP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TipText"); +pub const REGSTR_VAL_DOSPAGER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DOSPager"); +pub const REGSTR_VAL_DOS_SPOOL_MASK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DOSSpoolMask"); +pub const REGSTR_VAL_DOUBLEBUFFER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DoubleBuffer"); +pub const REGSTR_VAL_DPI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("dpi"); +pub const REGSTR_VAL_DPILOGICALX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DPILogicalX"); +pub const REGSTR_VAL_DPILOGICALY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DPILogicalY"); +pub const REGSTR_VAL_DPIPHYSICALX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DPIPhysicalX"); +pub const REGSTR_VAL_DPIPHYSICALY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DPIPhysicalY"); +pub const REGSTR_VAL_DPMS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DPMS"); +pub const REGSTR_VAL_DRIVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Driver"); +pub const REGSTR_VAL_DRIVERCACHEPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverCachePath"); +pub const REGSTR_VAL_DRIVERDATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverDate"); +pub const REGSTR_VAL_DRIVERDATEDATA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverDateData"); +pub const REGSTR_VAL_DRIVERVERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverVersion"); +pub const REGSTR_VAL_DRIVESPINDOWN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriveSpinDown"); +pub const REGSTR_VAL_DRIVEWRITEBEHIND: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriveWriteBehind"); +pub const REGSTR_VAL_DRIVE_SPINDOWN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoDispSpinDown"); +pub const REGSTR_VAL_DRV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("drv"); +pub const REGSTR_VAL_DRVDESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DriverDesc"); +pub const REGSTR_VAL_DYNAMIC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Dynamic"); +pub const REGSTR_VAL_EISA_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EISAFlags"); +pub const REGSTR_VAL_EISA_FUNCTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EISAFunctions"); +pub const REGSTR_VAL_EISA_FUNCTIONS_MASK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EISAFunctionsMask"); +pub const REGSTR_VAL_EISA_RANGES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EISARanges"); +pub const REGSTR_VAL_EISA_SIMULATE_INT15: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EISASimulateInt15"); +pub const REGSTR_VAL_EJECT_PRIORITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EjectPriority"); +pub const REGSTR_VAL_ENABLEINTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableInts"); +pub const REGSTR_VAL_ENUMERATOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Enumerator"); +pub const REGSTR_VAL_ENUMPROPPAGES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnumPropPages"); +pub const REGSTR_VAL_ENUMPROPPAGES_32: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnumPropPages32"); +pub const REGSTR_VAL_ESDI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ESDI\\"); +pub const REGSTR_VAL_EXISTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Exists"); +pub const REGSTR_VAL_EXTMEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExtMem"); +pub const REGSTR_VAL_FAULT_LOGFILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LogFile"); +pub const REGSTR_VAL_FIFODEPTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FIFODepth"); +pub const REGSTR_VAL_FILESHARING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileSharing"); +pub const REGSTR_VAL_FIRSTINSTALLDATETIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FirstInstallDateTime"); +pub const REGSTR_VAL_FIRSTNETDRIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FirstNetworkDrive"); +pub const REGSTR_VAL_FLOP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FLOP\\"); +pub const REGSTR_VAL_FLOPPY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FLOPPY"); +pub const REGSTR_VAL_FONTSIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FontSize"); +pub const REGSTR_VAL_FORCECL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ForceChangeLine"); +pub const REGSTR_VAL_FORCEDCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ForcedConfig"); +pub const REGSTR_VAL_FORCEFIFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ForceFIFO"); +pub const REGSTR_VAL_FORCELOAD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ForceLoadPD"); +pub const REGSTR_VAL_FORCEPMIO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ForcePMIO"); +pub const REGSTR_VAL_FORCEREBOOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ForceReboot"); +pub const REGSTR_VAL_FORCERMIO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ForceRMIO"); +pub const REGSTR_VAL_FREESPACERATIO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FreeSpaceRatio"); +pub const REGSTR_VAL_FRIENDLYNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FriendlyName"); +pub const REGSTR_VAL_FSFILTERCLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FSFilterClass"); +pub const REGSTR_VAL_FULLTRACE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FullTrace"); +pub const REGSTR_VAL_FUNCDESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FunctionDesc"); +pub const REGSTR_VAL_GAPTIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GapTime"); +pub const REGSTR_VAL_GRB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("grb"); +pub const REGSTR_VAL_HARDWAREID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HardwareID"); +pub const REGSTR_VAL_HIDESHAREPWDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HideSharePwds"); +pub const REGSTR_VAL_HRES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HRes"); +pub const REGSTR_VAL_HWDETECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HardwareDetect"); +pub const REGSTR_VAL_HWMECHANISM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HWMechanism"); +pub const REGSTR_VAL_HWREV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HWRevision"); +pub const REGSTR_VAL_ID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CurrentID"); +pub const REGSTR_VAL_IDE_FORCE_SERIALIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ForceSerialization"); +pub const REGSTR_VAL_IDE_NO_SERIALIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IDENoSerialize"); +pub const REGSTR_VAL_INFNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InfName"); +pub const REGSTR_VAL_INFPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InfPath"); +pub const REGSTR_VAL_INFSECTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InfSection"); +pub const REGSTR_VAL_INFSECTIONEXT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InfSectionExt"); +pub const REGSTR_VAL_INHIBITRESULTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InhibitResults"); +pub const REGSTR_VAL_INSICON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Icon"); +pub const REGSTR_VAL_INSTALLER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Installer"); +pub const REGSTR_VAL_INSTALLER_32: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Installer32"); +pub const REGSTR_VAL_INSTALLTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InstallType"); +pub const REGSTR_VAL_INT13: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Int13"); +pub const REGSTR_VAL_ISAPNP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ISAPNP"); +pub const REGSTR_VAL_ISAPNP_RDP_OVERRIDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RDPOverRide"); +pub const REGSTR_VAL_JOYCALLOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("JoystickCallout"); +pub const REGSTR_VAL_JOYNCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Joystick%dConfiguration"); +pub const REGSTR_VAL_JOYNOEMCALLOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Joystick%dOEMCallout"); +pub const REGSTR_VAL_JOYNOEMNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Joystick%dOEMName"); +pub const REGSTR_VAL_JOYOEMCAL1: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCal1"); +pub const REGSTR_VAL_JOYOEMCAL10: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCal10"); +pub const REGSTR_VAL_JOYOEMCAL11: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCal11"); +pub const REGSTR_VAL_JOYOEMCAL12: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCal12"); +pub const REGSTR_VAL_JOYOEMCAL2: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCal2"); +pub const REGSTR_VAL_JOYOEMCAL3: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCal3"); +pub const REGSTR_VAL_JOYOEMCAL4: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCal4"); +pub const REGSTR_VAL_JOYOEMCAL5: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCal5"); +pub const REGSTR_VAL_JOYOEMCAL6: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCal6"); +pub const REGSTR_VAL_JOYOEMCAL7: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCal7"); +pub const REGSTR_VAL_JOYOEMCAL8: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCal8"); +pub const REGSTR_VAL_JOYOEMCAL9: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCal9"); +pub const REGSTR_VAL_JOYOEMCALCAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCalCap"); +pub const REGSTR_VAL_JOYOEMCALLOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCallout"); +pub const REGSTR_VAL_JOYOEMCALWINCAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMCalWinCap"); +pub const REGSTR_VAL_JOYOEMDATA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMData"); +pub const REGSTR_VAL_JOYOEMNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMName"); +pub const REGSTR_VAL_JOYOEMPOVLABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMPOVLabel"); +pub const REGSTR_VAL_JOYOEMRLABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMRLabel"); +pub const REGSTR_VAL_JOYOEMTESTBUTTONCAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMTestButtonCap"); +pub const REGSTR_VAL_JOYOEMTESTBUTTONDESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMTestButtonDesc"); +pub const REGSTR_VAL_JOYOEMTESTMOVECAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMTestMoveCap"); +pub const REGSTR_VAL_JOYOEMTESTMOVEDESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMTestMoveDesc"); +pub const REGSTR_VAL_JOYOEMTESTWINCAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMTestWinCap"); +pub const REGSTR_VAL_JOYOEMULABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMULabel"); +pub const REGSTR_VAL_JOYOEMVLABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMVLabel"); +pub const REGSTR_VAL_JOYOEMXYLABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMXYLabel"); +pub const REGSTR_VAL_JOYOEMZLABEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OEMZLabel"); +pub const REGSTR_VAL_JOYUSERVALUES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("JoystickUserValues"); +pub const REGSTR_VAL_LASTALIVEBT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastAliveBT"); +pub const REGSTR_VAL_LASTALIVEINTERVAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TimeStampInterval"); +pub const REGSTR_VAL_LASTALIVEPMPOLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastAlivePMPolicy"); +pub const REGSTR_VAL_LASTALIVESTAMP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastAliveStamp"); +pub const REGSTR_VAL_LASTALIVESTAMPFORCED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastAliveStampForced"); +pub const REGSTR_VAL_LASTALIVESTAMPINTERVAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastAliveStampInterval"); +pub const REGSTR_VAL_LASTALIVESTAMPPOLICYINTERVAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastAliveStampPolicyInterval"); +pub const REGSTR_VAL_LASTALIVEUPTIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastAliveUptime"); +pub const REGSTR_VAL_LASTBOOTPMDRVS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastBootPMDrvs"); +pub const REGSTR_VAL_LASTCOMPUTERNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastComputerName"); +pub const REGSTR_VAL_LASTPCIBUSNUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastPCIBusNum"); +pub const REGSTR_VAL_LAST_UPDATE_TIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LastUpdateTime"); +pub const REGSTR_VAL_LEGALNOTICECAPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LegalNoticeCaption"); +pub const REGSTR_VAL_LEGALNOTICETEXT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LegalNoticeText"); +pub const REGSTR_VAL_LICENSINGINFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LicensingInfo"); +pub const REGSTR_VAL_LINKED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Linked"); +pub const REGSTR_VAL_LOADHI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LoadHi"); +pub const REGSTR_VAL_LOADRMDRIVERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LoadRMDrivers"); +pub const REGSTR_VAL_LOCATION_INFORMATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LocationInformation"); +pub const REGSTR_VAL_LOCATION_INFORMATION_OVERRIDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LocationInformationOverride"); +pub const REGSTR_VAL_LOWERFILTERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LowerFilters"); +pub const REGSTR_VAL_LOWER_FILTER_DEFAULT_LEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LowerFilterDefaultLevel"); +pub const REGSTR_VAL_LOWER_FILTER_LEVELS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LowerFilterLevels"); +pub const REGSTR_VAL_MACHINETYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MachineType"); +pub const REGSTR_VAL_MANUFACTURER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Manufacturer"); +pub const REGSTR_VAL_MAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Map"); +pub const REGSTR_VAL_MATCHINGDEVID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MatchingDeviceId"); +pub const REGSTR_VAL_MAXCONNECTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxConnections"); +pub const REGSTR_VAL_MAXLIP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxLIP"); +pub const REGSTR_VAL_MAXRES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxResolution"); +pub const REGSTR_VAL_MAXRETRY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MaxRetry"); +pub const REGSTR_VAL_MAX_HCID_LEN: u32 = 1024u32; +pub const REGSTR_VAL_MEDIA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MediaPath"); +pub const REGSTR_VAL_MFG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Mfg"); +pub const REGSTR_VAL_MF_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MFFlags"); +pub const REGSTR_VAL_MINIPORT_STAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MiniportStatus"); +pub const REGSTR_VAL_MINPWDLEN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MinPwdLen"); +pub const REGSTR_VAL_MINRETRY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MinRetry"); +pub const REGSTR_VAL_MODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Mode"); +pub const REGSTR_VAL_MODEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Model"); +pub const REGSTR_VAL_MSDOSMODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSDOSMode"); +pub const REGSTR_VAL_MSDOSMODEDISCARD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Discard"); +pub const REGSTR_VAL_MUSTBEVALIDATED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MustBeValidated"); +pub const REGSTR_VAL_NAMECACHECOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NameCache"); +pub const REGSTR_VAL_NAMENUMERICTAIL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NameNumericTail"); +pub const REGSTR_VAL_NCP_BROWSEMASTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BrowseMaster"); +pub const REGSTR_VAL_NCP_USEPEERBROWSING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Use_PeerBrowsing"); +pub const REGSTR_VAL_NCP_USESAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Use_Sap"); +pub const REGSTR_VAL_NDP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NDP"); +pub const REGSTR_VAL_NETCARD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Netcard"); +pub const REGSTR_VAL_NETCLEAN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NetClean"); +pub const REGSTR_VAL_NETOSTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NetOSType"); +pub const REGSTR_VAL_NETSETUP_DISABLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoNetSetup"); +pub const REGSTR_VAL_NETSETUP_NOCONFIGPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoNetSetupConfigPage"); +pub const REGSTR_VAL_NETSETUP_NOIDPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoNetSetupIDPage"); +pub const REGSTR_VAL_NETSETUP_NOSECURITYPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoNetSetupSecurityPage"); +pub const REGSTR_VAL_NOCMOSORFDPT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoCMOSorFDPT"); +pub const REGSTR_VAL_NODISPLAYCLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoDisplayClass"); +pub const REGSTR_VAL_NOENTIRENETWORK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoEntireNetwork"); +pub const REGSTR_VAL_NOFILESHARING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoFileSharing"); +pub const REGSTR_VAL_NOFILESHARINGCTRL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoFileSharingControl"); +pub const REGSTR_VAL_NOIDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoIDE"); +pub const REGSTR_VAL_NOINSTALLCLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoInstallClass"); +pub const REGSTR_VAL_NONSTANDARD_ATAPI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NonStandardATAPI"); +pub const REGSTR_VAL_NOPRINTSHARING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoPrintSharing"); +pub const REGSTR_VAL_NOPRINTSHARINGCTRL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoPrintSharingControl"); +pub const REGSTR_VAL_NOUSECLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoUseClass"); +pub const REGSTR_VAL_NOWORKGROUPCONTENTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoWorkgroupContents"); +pub const REGSTR_VAL_OLDMSDOSVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OldMSDOSVer"); +pub const REGSTR_VAL_OLDWINDIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OldWinDir"); +pub const REGSTR_VAL_OPTIMIZESFN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("OptimizeSFN"); +pub const REGSTR_VAL_OPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Options"); +pub const REGSTR_VAL_OPTORDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Order"); +pub const REGSTR_VAL_P1284MDL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Model"); +pub const REGSTR_VAL_P1284MFG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Manufacturer"); +pub const REGSTR_VAL_PATHCACHECOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PathCache"); +pub const REGSTR_VAL_PCCARD_POWER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnablePowerManagement"); +pub const REGSTR_VAL_PCI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCI"); +pub const REGSTR_VAL_PCIBIOSVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCIBIOSVer"); +pub const REGSTR_VAL_PCICIRQMAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCICIRQMap"); +pub const REGSTR_VAL_PCICOPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCICOptions"); +pub const REGSTR_VAL_PCMCIA_ALLOC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AllocMemWin"); +pub const REGSTR_VAL_PCMCIA_ATAD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ATADelay"); +pub const REGSTR_VAL_PCMCIA_MEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Memory"); +pub const REGSTR_VAL_PCMCIA_OPT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Options"); +pub const REGSTR_VAL_PCMCIA_SIZ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MinRegionSize"); +pub const REGSTR_VAL_PCMTDRIVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MTD"); +pub const REGSTR_VAL_PCSSDRIVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Driver"); +pub const REGSTR_VAL_PHYSICALDEVICEOBJECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PhysicalDeviceObject"); +pub const REGSTR_VAL_PMODE_INT13: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PModeInt13"); +pub const REGSTR_VAL_PNPBIOSVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PnPBIOSVer"); +pub const REGSTR_VAL_PNPSTRUCOFFSET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PnPStrucOffset"); +pub const REGSTR_VAL_POLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Policy"); +pub const REGSTR_VAL_POLLING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Polling"); +pub const REGSTR_VAL_PORTNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PortName"); +pub const REGSTR_VAL_PORTSUBCLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PortSubClass"); +pub const REGSTR_VAL_PREFREDIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PreferredRedir"); +pub const REGSTR_VAL_PRESERVECASE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PreserveCase"); +pub const REGSTR_VAL_PRESERVELONGNAMES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PreserveLongNames"); +pub const REGSTR_VAL_PRINTERS_HIDETABS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoPrinterTabs"); +pub const REGSTR_VAL_PRINTERS_MASK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintersMask"); +pub const REGSTR_VAL_PRINTERS_NOADD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoAddPrinter"); +pub const REGSTR_VAL_PRINTERS_NODELETE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoDeletePrinter"); +pub const REGSTR_VAL_PRINTSHARING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrintSharing"); +pub const REGSTR_VAL_PRIORITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Priority"); +pub const REGSTR_VAL_PRIVATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Private"); +pub const REGSTR_VAL_PRIVATEFUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrivateFunc"); +pub const REGSTR_VAL_PRIVATEPROBLEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrivateProblem"); +pub const REGSTR_VAL_PRODUCTID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProductId"); +pub const REGSTR_VAL_PRODUCTTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProductType"); +pub const REGSTR_VAL_PROFILEFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProfileFlags"); +pub const REGSTR_VAL_PROPERTIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Properties"); +pub const REGSTR_VAL_PROTINIPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProtIniPath"); +pub const REGSTR_VAL_PROVIDER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProviderName"); +pub const REGSTR_VAL_PWDEXPIRATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PwdExpiration"); +pub const REGSTR_VAL_PWDPROVIDER_CHANGEORDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChangeOrder"); +pub const REGSTR_VAL_PWDPROVIDER_CHANGEPWD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChangePassword"); +pub const REGSTR_VAL_PWDPROVIDER_CHANGEPWDHWND: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ChangePasswordHwnd"); +pub const REGSTR_VAL_PWDPROVIDER_DESC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const REGSTR_VAL_PWDPROVIDER_GETPWDSTATUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GetPasswordStatus"); +pub const REGSTR_VAL_PWDPROVIDER_ISNP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NetworkProvider"); +pub const REGSTR_VAL_PWDPROVIDER_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProviderPath"); +pub const REGSTR_VAL_RDINTTHRESHOLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RDIntThreshold"); +pub const REGSTR_VAL_READAHEADTHRESHOLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReadAheadThreshold"); +pub const REGSTR_VAL_READCACHING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReadCaching"); +pub const REGSTR_VAL_REALNETSTART: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RealNetStart"); +pub const REGSTR_VAL_REASONCODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReasonCode"); +pub const REGSTR_VAL_REFRESHRATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RefreshRate"); +pub const REGSTR_VAL_REGITEMDELETEMESSAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Removal Message"); +pub const REGSTR_VAL_REGORGANIZATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RegisteredOrganization"); +pub const REGSTR_VAL_REGOWNER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RegisteredOwner"); +pub const REGSTR_VAL_REINSTALL_DEVICEINSTANCEIDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceInstanceIds"); +pub const REGSTR_VAL_REINSTALL_DISPLAYNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisplayName"); +pub const REGSTR_VAL_REINSTALL_STRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReinstallString"); +pub const REGSTR_VAL_REMOTE_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RemotePath"); +pub const REGSTR_VAL_REMOVABLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Removable"); +pub const REGSTR_VAL_REMOVAL_POLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RemovalPolicy"); +pub const REGSTR_VAL_REMOVEROMOKAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RemoveRomOkay"); +pub const REGSTR_VAL_REMOVEROMOKAYFUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RemoveRomOkayFunc"); +pub const REGSTR_VAL_RESERVED_DEVNODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HTREE\\RESERVED\\0"); +pub const REGSTR_VAL_RESOLUTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Resolution"); +pub const REGSTR_VAL_RESOURCES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Resources"); +pub const REGSTR_VAL_RESOURCE_MAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResourceMap"); +pub const REGSTR_VAL_RESOURCE_PICKER_EXCEPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResourcePickerExceptions"); +pub const REGSTR_VAL_RESOURCE_PICKER_TAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResourcePickerTags"); +pub const REGSTR_VAL_RESTRICTRUN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RestrictRun"); +pub const REGSTR_VAL_RESUMERESET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ResumeReset"); +pub const REGSTR_VAL_REVISION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Revision"); +pub const REGSTR_VAL_REVLEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RevisionLevel"); +pub const REGSTR_VAL_ROOT_DEVNODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HTREE\\ROOT\\0"); +pub const REGSTR_VAL_RUNLOGINSCRIPT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProcessLoginScript"); +pub const REGSTR_VAL_SCANNER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCANNER"); +pub const REGSTR_VAL_SCAN_ONLY_FIRST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScanOnlyFirstDrive"); +pub const REGSTR_VAL_SCSI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCSI\\"); +pub const REGSTR_VAL_SCSILUN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCSILUN"); +pub const REGSTR_VAL_SCSITID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCSITargetID"); +pub const REGSTR_VAL_SEARCHMODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SearchMode"); +pub const REGSTR_VAL_SEARCHOPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SearchOptions"); +pub const REGSTR_VAL_SECCPL_NOADMINPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoAdminPage"); +pub const REGSTR_VAL_SECCPL_NOPROFILEPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoProfilePage"); +pub const REGSTR_VAL_SECCPL_NOPWDPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoPwdPage"); +pub const REGSTR_VAL_SECCPL_NOSECCPL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoSecCPL"); +pub const REGSTR_VAL_SERVICE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Service"); +pub const REGSTR_VAL_SETUPFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SetupFlags"); +pub const REGSTR_VAL_SETUPMACHINETYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SetupMachineType"); +pub const REGSTR_VAL_SETUPN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SetupN"); +pub const REGSTR_VAL_SETUPNPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SetupNPath"); +pub const REGSTR_VAL_SETUPPROGRAMRAN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SetupProgramRan"); +pub const REGSTR_VAL_SHARES_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Flags"); +pub const REGSTR_VAL_SHARES_PATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Path"); +pub const REGSTR_VAL_SHARES_REMARK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Remark"); +pub const REGSTR_VAL_SHARES_RO_PASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Parm2"); +pub const REGSTR_VAL_SHARES_RW_PASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Parm1"); +pub const REGSTR_VAL_SHARES_TYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Type"); +pub const REGSTR_VAL_SHARE_IRQ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ForceIRQSharing"); +pub const REGSTR_VAL_SHELLVERSION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShellVersion"); +pub const REGSTR_VAL_SHOWDOTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShowDots"); +pub const REGSTR_VAL_SHOWREASONUI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShutdownReasonUI"); +pub const REGSTR_VAL_SHUTDOWNREASON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShutdownReason"); +pub const REGSTR_VAL_SHUTDOWNREASON_CODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShutdownReasonCode"); +pub const REGSTR_VAL_SHUTDOWNREASON_COMMENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShutdownReasonComment"); +pub const REGSTR_VAL_SHUTDOWNREASON_PROCESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShutdownReasonProcess"); +pub const REGSTR_VAL_SHUTDOWNREASON_USERNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShutdownReasonUserName"); +pub const REGSTR_VAL_SHUTDOWN_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShutdownFlags"); +pub const REGSTR_VAL_SHUTDOWN_IGNORE_PREDEFINED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShutdownIgnorePredefinedReasons"); +pub const REGSTR_VAL_SHUTDOWN_STATE_SNAPSHOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShutdownStateSnapshot"); +pub const REGSTR_VAL_SILENTINSTALL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SilentInstall"); +pub const REGSTR_VAL_SLSUPPORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SLSupport"); +pub const REGSTR_VAL_SOFTCOMPATMODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SoftCompatMode"); +pub const REGSTR_VAL_SRCPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SourcePath"); +pub const REGSTR_VAL_SRVNAMECACHE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServerNameCache"); +pub const REGSTR_VAL_SRVNAMECACHECOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServerNameCacheMax"); +pub const REGSTR_VAL_SRVNAMECACHENETPROV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServerNameCacheNumNets"); +pub const REGSTR_VAL_START_ON_BOOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StartOnBoot"); +pub const REGSTR_VAL_STAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Status"); +pub const REGSTR_VAL_STATICDRIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StaticDrive"); +pub const REGSTR_VAL_STATICVXD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StaticVxD"); +pub const REGSTR_VAL_STDDOSOPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StdOption"); +pub const REGSTR_VAL_SUBMODEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Submodel"); +pub const REGSTR_VAL_SUPPORTBURST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SupportBurst"); +pub const REGSTR_VAL_SUPPORTLFN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SupportLFN"); +pub const REGSTR_VAL_SUPPORTTUNNELLING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SupportTunnelling"); +pub const REGSTR_VAL_SYMBOLIC_LINK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SymbolicLink"); +pub const REGSTR_VAL_SYNCDATAXFER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SyncDataXfer"); +pub const REGSTR_VAL_SYSDM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysDM"); +pub const REGSTR_VAL_SYSDMFUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysDMFunc"); +pub const REGSTR_VAL_SYSTEMCPL_NOCONFIGPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoConfigPage"); +pub const REGSTR_VAL_SYSTEMCPL_NODEVMGRPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoDevMgrPage"); +pub const REGSTR_VAL_SYSTEMCPL_NOFILESYSPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoFileSysPage"); +pub const REGSTR_VAL_SYSTEMCPL_NOVIRTMEMPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoVirtMemPage"); +pub const REGSTR_VAL_SYSTEMROOT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SystemRoot"); +pub const REGSTR_VAL_SYSTRAYBATFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PowerFlags"); +pub const REGSTR_VAL_SYSTRAYPCCARDFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PCMCIAFlags"); +pub const REGSTR_VAL_SYSTRAYSVCS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Services"); +pub const REGSTR_VAL_TABLE_STAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TableStatus"); +pub const REGSTR_VAL_TAPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TAPE"); +pub const REGSTR_VAL_TRANSITION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Transition"); +pub const REGSTR_VAL_TRANSPORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Transport"); +pub const REGSTR_VAL_TZACTBIAS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ActiveTimeBias"); +pub const REGSTR_VAL_TZBIAS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Bias"); +pub const REGSTR_VAL_TZDLTBIAS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DaylightBias"); +pub const REGSTR_VAL_TZDLTFLAG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DaylightFlag"); +pub const REGSTR_VAL_TZDLTNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DaylightName"); +pub const REGSTR_VAL_TZDLTSTART: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DaylightStart"); +pub const REGSTR_VAL_TZNOAUTOTIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableAutoDaylightTimeSet"); +pub const REGSTR_VAL_TZNOCHANGEEND: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoChangeEnd"); +pub const REGSTR_VAL_TZNOCHANGESTART: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoChangeStart"); +pub const REGSTR_VAL_TZSTDBIAS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StandardBias"); +pub const REGSTR_VAL_TZSTDNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StandardName"); +pub const REGSTR_VAL_TZSTDSTART: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("StandardStart"); +pub const REGSTR_VAL_UI_NUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UINumber"); +pub const REGSTR_VAL_UI_NUMBER_DESC_FORMAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UINumberDescFormat"); +pub const REGSTR_VAL_UNDOCK_WITHOUT_LOGON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UndockWithoutLogon"); +pub const REGSTR_VAL_UNINSTALLER_COMMANDLINE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UninstallString"); +pub const REGSTR_VAL_UNINSTALLER_DISPLAYNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisplayName"); +pub const REGSTR_VAL_UPGRADE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Upgrade"); +pub const REGSTR_VAL_UPPERFILTERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UpperFilters"); +pub const REGSTR_VAL_UPPER_FILTER_DEFAULT_LEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UpperFilterDefaultLevel"); +pub const REGSTR_VAL_UPPER_FILTER_LEVELS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UpperFilterLevels"); +pub const REGSTR_VAL_USERSETTINGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AdapterSettings"); +pub const REGSTR_VAL_USER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UserName"); +pub const REGSTR_VAL_USRDRVLET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UserDriveLetterAssignment"); +pub const REGSTR_VAL_VDD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("vdd"); +pub const REGSTR_VAL_VER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Ver"); +pub const REGSTR_VAL_VERIFYKEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VerifyKey"); +pub const REGSTR_VAL_VIRTUALHDIRQ: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VirtualHDIRQ"); +pub const REGSTR_VAL_VOLIDLETIMEOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VolumeIdleTimeout"); +pub const REGSTR_VAL_VPOWERDFLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Flags"); +pub const REGSTR_VAL_VRES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VRes"); +pub const REGSTR_VAL_VXDGROUPS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VXDGroups"); +pub const REGSTR_VAL_WAITFORUNDOCK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WaitForUndock"); +pub const REGSTR_VAL_WAITFORUNDOCKFUNC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WaitForUndockFunc"); +pub const REGSTR_VAL_WIN31FILESYSTEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Win31FileSystem"); +pub const REGSTR_VAL_WIN31PROVIDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Win31Provider"); +pub const REGSTR_VAL_WINBOOTDIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WinbootDir"); +pub const REGSTR_VAL_WINCP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ACP"); +pub const REGSTR_VAL_WINDIR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WinDir"); +pub const REGSTR_VAL_WINOLDAPP_DISABLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Disabled"); +pub const REGSTR_VAL_WINOLDAPP_NOREALMODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoRealMode"); +pub const REGSTR_VAL_WORKGROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Workgroup"); +pub const REGSTR_VAL_WRAPPER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Wrapper"); +pub const REGSTR_VAL_WRINTTHRESHOLD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WRIntThreshold"); +pub const REGSTR_VAL_WRKGRP_FORCEMAPPING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WrkgrpForceMapping"); +pub const REGSTR_VAL_WRKGRP_REQUIRED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WrkgrpRequired"); +pub const REG_BINARY: REG_VALUE_TYPE = 3u32; +pub const REG_CREATED_NEW_KEY: REG_CREATE_KEY_DISPOSITION = 1u32; +pub const REG_DWORD: REG_VALUE_TYPE = 4u32; +pub const REG_DWORD_BIG_ENDIAN: REG_VALUE_TYPE = 5u32; +pub const REG_DWORD_LITTLE_ENDIAN: REG_VALUE_TYPE = 4u32; +pub const REG_EXPAND_SZ: REG_VALUE_TYPE = 2u32; +pub const REG_FORCE_RESTORE: REG_RESTORE_KEY_FLAGS = 8i32; +pub const REG_FULL_RESOURCE_DESCRIPTOR: REG_VALUE_TYPE = 9u32; +pub const REG_KEY_INSTDEV: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Installed"); +pub const REG_LATEST_FORMAT: REG_SAVE_FORMAT = 2u32; +pub const REG_LINK: REG_VALUE_TYPE = 6u32; +pub const REG_MUI_STRING_TRUNCATE: u32 = 1u32; +pub const REG_MULTI_SZ: REG_VALUE_TYPE = 7u32; +pub const REG_NONE: REG_VALUE_TYPE = 0u32; +pub const REG_NOTIFY_CHANGE_ATTRIBUTES: REG_NOTIFY_FILTER = 2u32; +pub const REG_NOTIFY_CHANGE_LAST_SET: REG_NOTIFY_FILTER = 4u32; +pub const REG_NOTIFY_CHANGE_NAME: REG_NOTIFY_FILTER = 1u32; +pub const REG_NOTIFY_CHANGE_SECURITY: REG_NOTIFY_FILTER = 8u32; +pub const REG_NOTIFY_THREAD_AGNOSTIC: REG_NOTIFY_FILTER = 268435456u32; +pub const REG_NO_COMPRESSION: REG_SAVE_FORMAT = 4u32; +pub const REG_OPENED_EXISTING_KEY: REG_CREATE_KEY_DISPOSITION = 2u32; +pub const REG_OPTION_BACKUP_RESTORE: REG_OPEN_CREATE_OPTIONS = 4u32; +pub const REG_OPTION_CREATE_LINK: REG_OPEN_CREATE_OPTIONS = 2u32; +pub const REG_OPTION_DONT_VIRTUALIZE: REG_OPEN_CREATE_OPTIONS = 16u32; +pub const REG_OPTION_NON_VOLATILE: REG_OPEN_CREATE_OPTIONS = 0u32; +pub const REG_OPTION_OPEN_LINK: REG_OPEN_CREATE_OPTIONS = 8u32; +pub const REG_OPTION_RESERVED: REG_OPEN_CREATE_OPTIONS = 0u32; +pub const REG_OPTION_VOLATILE: REG_OPEN_CREATE_OPTIONS = 1u32; +pub const REG_PROCESS_APPKEY: u32 = 1u32; +pub const REG_QWORD: REG_VALUE_TYPE = 11u32; +pub const REG_QWORD_LITTLE_ENDIAN: REG_VALUE_TYPE = 11u32; +pub const REG_RESOURCE_LIST: REG_VALUE_TYPE = 8u32; +pub const REG_RESOURCE_REQUIREMENTS_LIST: REG_VALUE_TYPE = 10u32; +pub const REG_SECURE_CONNECTION: u32 = 1u32; +pub const REG_STANDARD_FORMAT: REG_SAVE_FORMAT = 1u32; +pub const REG_SZ: REG_VALUE_TYPE = 1u32; +pub const REG_USE_CURRENT_SECURITY_CONTEXT: u32 = 2u32; +pub const REG_WHOLE_HIVE_VOLATILE: REG_RESTORE_KEY_FLAGS = 1i32; +pub const RRF_NOEXPAND: REG_ROUTINE_FLAGS = 268435456u32; +pub const RRF_RT_ANY: REG_ROUTINE_FLAGS = 65535u32; +pub const RRF_RT_DWORD: REG_ROUTINE_FLAGS = 24u32; +pub const RRF_RT_QWORD: REG_ROUTINE_FLAGS = 72u32; +pub const RRF_RT_REG_BINARY: REG_ROUTINE_FLAGS = 8u32; +pub const RRF_RT_REG_DWORD: REG_ROUTINE_FLAGS = 16u32; +pub const RRF_RT_REG_EXPAND_SZ: REG_ROUTINE_FLAGS = 4u32; +pub const RRF_RT_REG_MULTI_SZ: REG_ROUTINE_FLAGS = 32u32; +pub const RRF_RT_REG_NONE: REG_ROUTINE_FLAGS = 1u32; +pub const RRF_RT_REG_QWORD: REG_ROUTINE_FLAGS = 64u32; +pub const RRF_RT_REG_SZ: REG_ROUTINE_FLAGS = 2u32; +pub const RRF_SUBKEY_WOW6432KEY: REG_ROUTINE_FLAGS = 131072u32; +pub const RRF_SUBKEY_WOW6464KEY: REG_ROUTINE_FLAGS = 65536u32; +pub const RRF_WOW64_MASK: REG_ROUTINE_FLAGS = 196608u32; +pub const RRF_ZEROONFAILURE: REG_ROUTINE_FLAGS = 536870912u32; +pub const SUF_BATCHINF: i32 = 4i32; +pub const SUF_CLEAN: i32 = 8i32; +pub const SUF_EXPRESS: i32 = 2i32; +pub const SUF_FIRSTTIME: i32 = 1i32; +pub const SUF_INSETUP: i32 = 16i32; +pub const SUF_NETHDBOOT: i32 = 64i32; +pub const SUF_NETRPLBOOT: i32 = 128i32; +pub const SUF_NETSETUP: i32 = 32i32; +pub const SUF_SBSCOPYOK: i32 = 256i32; +pub const VPDF_DISABLEPWRMGMT: u32 = 1u32; +pub const VPDF_DISABLEPWRSTATUSPOLL: u32 = 8u32; +pub const VPDF_DISABLERINGRESUME: u32 = 16u32; +pub const VPDF_FORCEAPM10MODE: u32 = 2u32; +pub const VPDF_SHOWMULTIBATT: u32 = 32u32; +pub const VPDF_SKIPINTELSLCHECK: u32 = 4u32; +pub type REG_CREATE_KEY_DISPOSITION = u32; +pub type REG_NOTIFY_FILTER = u32; +pub type REG_OPEN_CREATE_OPTIONS = u32; +pub type REG_RESTORE_KEY_FLAGS = i32; +pub type REG_ROUTINE_FLAGS = u32; +pub type REG_SAM_FLAGS = u32; +pub type REG_SAVE_FORMAT = u32; +pub type REG_VALUE_TYPE = u32; +#[repr(C)] +pub struct DSKTLSYSTEMTIME { + pub wYear: u16, + pub wMonth: u16, + pub wDayOfWeek: u16, + pub wDay: u16, + pub wHour: u16, + pub wMinute: u16, + pub wSecond: u16, + pub wMilliseconds: u16, + pub wResult: u16, +} +impl ::core::marker::Copy for DSKTLSYSTEMTIME {} +impl ::core::clone::Clone for DSKTLSYSTEMTIME { + fn clone(&self) -> Self { + *self + } +} +pub type HKEY = isize; +#[repr(C)] +pub struct PVALUEA { + pub pv_valuename: ::windows_sys::core::PSTR, + pub pv_valuelen: i32, + pub pv_value_context: *mut ::core::ffi::c_void, + pub pv_type: u32, +} +impl ::core::marker::Copy for PVALUEA {} +impl ::core::clone::Clone for PVALUEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PVALUEW { + pub pv_valuename: ::windows_sys::core::PWSTR, + pub pv_valuelen: i32, + pub pv_value_context: *mut ::core::ffi::c_void, + pub pv_type: u32, +} +impl ::core::marker::Copy for PVALUEW {} +impl ::core::clone::Clone for PVALUEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REG_PROVIDER { + pub pi_R0_1val: PQUERYHANDLER, + pub pi_R0_allvals: PQUERYHANDLER, + pub pi_R3_1val: PQUERYHANDLER, + pub pi_R3_allvals: PQUERYHANDLER, + pub pi_flags: u32, + pub pi_key_context: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for REG_PROVIDER {} +impl ::core::clone::Clone for REG_PROVIDER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VALENTA { + pub ve_valuename: ::windows_sys::core::PSTR, + pub ve_valuelen: u32, + pub ve_valueptr: usize, + pub ve_type: REG_VALUE_TYPE, +} +impl ::core::marker::Copy for VALENTA {} +impl ::core::clone::Clone for VALENTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VALENTW { + pub ve_valuename: ::windows_sys::core::PWSTR, + pub ve_valuelen: u32, + pub ve_valueptr: usize, + pub ve_type: REG_VALUE_TYPE, +} +impl ::core::marker::Copy for VALENTW {} +impl ::core::clone::Clone for VALENTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct val_context { + pub valuelen: i32, + pub value_context: *mut ::core::ffi::c_void, + pub val_buff_ptr: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for val_context {} +impl ::core::clone::Clone for val_context { + fn clone(&self) -> Self { + *self + } +} +pub type PQUERYHANDLER = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/RemoteDesktop/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/RemoteDesktop/mod.rs new file mode 100644 index 000000000..e585619e5 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/RemoteDesktop/mod.rs @@ -0,0 +1,2478 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ProcessIdToSessionId(dwprocessid : u32, psessionid : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSCloseServer(hserver : super::super::Foundation:: HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSConnectSessionA(logonid : u32, targetlogonid : u32, ppassword : ::windows_sys::core::PCSTR, bwait : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSConnectSessionW(logonid : u32, targetlogonid : u32, ppassword : ::windows_sys::core::PCWSTR, bwait : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSCreateListenerA(hserver : super::super::Foundation:: HANDLE, preserved : *const ::core::ffi::c_void, reserved : u32, plistenername : ::windows_sys::core::PCSTR, pbuffer : *const WTSLISTENERCONFIGA, flag : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSCreateListenerW(hserver : super::super::Foundation:: HANDLE, preserved : *const ::core::ffi::c_void, reserved : u32, plistenername : ::windows_sys::core::PCWSTR, pbuffer : *const WTSLISTENERCONFIGW, flag : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSDisconnectSession(hserver : super::super::Foundation:: HANDLE, sessionid : u32, bwait : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSEnableChildSessions(benable : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSEnumerateListenersA(hserver : super::super::Foundation:: HANDLE, preserved : *const ::core::ffi::c_void, reserved : u32, plisteners : *mut *mut i8, pcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSEnumerateListenersW(hserver : super::super::Foundation:: HANDLE, preserved : *const ::core::ffi::c_void, reserved : u32, plisteners : *mut *mut u16, pcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSEnumerateProcessesA(hserver : super::super::Foundation:: HANDLE, reserved : u32, version : u32, ppprocessinfo : *mut *mut WTS_PROCESS_INFOA, pcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSEnumerateProcessesExA(hserver : super::super::Foundation:: HANDLE, plevel : *mut u32, sessionid : u32, ppprocessinfo : *mut ::windows_sys::core::PSTR, pcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSEnumerateProcessesExW(hserver : super::super::Foundation:: HANDLE, plevel : *mut u32, sessionid : u32, ppprocessinfo : *mut ::windows_sys::core::PWSTR, pcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSEnumerateProcessesW(hserver : super::super::Foundation:: HANDLE, reserved : u32, version : u32, ppprocessinfo : *mut *mut WTS_PROCESS_INFOW, pcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSEnumerateServersA(pdomainname : ::windows_sys::core::PCSTR, reserved : u32, version : u32, ppserverinfo : *mut *mut WTS_SERVER_INFOA, pcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSEnumerateServersW(pdomainname : ::windows_sys::core::PCWSTR, reserved : u32, version : u32, ppserverinfo : *mut *mut WTS_SERVER_INFOW, pcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSEnumerateSessionsA(hserver : super::super::Foundation:: HANDLE, reserved : u32, version : u32, ppsessioninfo : *mut *mut WTS_SESSION_INFOA, pcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSEnumerateSessionsExA(hserver : super::super::Foundation:: HANDLE, plevel : *mut u32, filter : u32, ppsessioninfo : *mut *mut WTS_SESSION_INFO_1A, pcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSEnumerateSessionsExW(hserver : super::super::Foundation:: HANDLE, plevel : *mut u32, filter : u32, ppsessioninfo : *mut *mut WTS_SESSION_INFO_1W, pcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSEnumerateSessionsW(hserver : super::super::Foundation:: HANDLE, reserved : u32, version : u32, ppsessioninfo : *mut *mut WTS_SESSION_INFOW, pcount : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("wtsapi32.dll" "system" fn WTSFreeMemory(pmemory : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSFreeMemoryExA(wtstypeclass : WTS_TYPE_CLASS, pmemory : *const ::core::ffi::c_void, numberofentries : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSFreeMemoryExW(wtstypeclass : WTS_TYPE_CLASS, pmemory : *const ::core::ffi::c_void, numberofentries : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn WTSGetActiveConsoleSessionId() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSGetChildSessionId(psessionid : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn WTSGetListenerSecurityA(hserver : super::super::Foundation:: HANDLE, preserved : *const ::core::ffi::c_void, reserved : u32, plistenername : ::windows_sys::core::PCSTR, securityinformation : super::super::Security:: OBJECT_SECURITY_INFORMATION, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR, nlength : u32, lpnlengthneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn WTSGetListenerSecurityW(hserver : super::super::Foundation:: HANDLE, preserved : *const ::core::ffi::c_void, reserved : u32, plistenername : ::windows_sys::core::PCWSTR, securityinformation : super::super::Security:: OBJECT_SECURITY_INFORMATION, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR, nlength : u32, lpnlengthneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSIsChildSessionsEnabled(pbenabled : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSLogoffSession(hserver : super::super::Foundation:: HANDLE, sessionid : u32, bwait : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSOpenServerA(pservername : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSOpenServerExA(pservername : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSOpenServerExW(pservername : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSOpenServerW(pservername : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSQueryListenerConfigA(hserver : super::super::Foundation:: HANDLE, preserved : *const ::core::ffi::c_void, reserved : u32, plistenername : ::windows_sys::core::PCSTR, pbuffer : *mut WTSLISTENERCONFIGA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSQueryListenerConfigW(hserver : super::super::Foundation:: HANDLE, preserved : *const ::core::ffi::c_void, reserved : u32, plistenername : ::windows_sys::core::PCWSTR, pbuffer : *mut WTSLISTENERCONFIGW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSQuerySessionInformationA(hserver : super::super::Foundation:: HANDLE, sessionid : u32, wtsinfoclass : WTS_INFO_CLASS, ppbuffer : *mut ::windows_sys::core::PSTR, pbytesreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSQuerySessionInformationW(hserver : super::super::Foundation:: HANDLE, sessionid : u32, wtsinfoclass : WTS_INFO_CLASS, ppbuffer : *mut ::windows_sys::core::PWSTR, pbytesreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSQueryUserConfigA(pservername : ::windows_sys::core::PCSTR, pusername : ::windows_sys::core::PCSTR, wtsconfigclass : WTS_CONFIG_CLASS, ppbuffer : *mut ::windows_sys::core::PSTR, pbytesreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSQueryUserConfigW(pservername : ::windows_sys::core::PCWSTR, pusername : ::windows_sys::core::PCWSTR, wtsconfigclass : WTS_CONFIG_CLASS, ppbuffer : *mut ::windows_sys::core::PWSTR, pbytesreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSQueryUserToken(sessionid : u32, phtoken : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSRegisterSessionNotification(hwnd : super::super::Foundation:: HWND, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSRegisterSessionNotificationEx(hserver : super::super::Foundation:: HANDLE, hwnd : super::super::Foundation:: HWND, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn WTSSendMessageA(hserver : super::super::Foundation:: HANDLE, sessionid : u32, ptitle : ::windows_sys::core::PCSTR, titlelength : u32, pmessage : ::windows_sys::core::PCSTR, messagelength : u32, style : super::super::UI::WindowsAndMessaging:: MESSAGEBOX_STYLE, timeout : u32, presponse : *mut super::super::UI::WindowsAndMessaging:: MESSAGEBOX_RESULT, bwait : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn WTSSendMessageW(hserver : super::super::Foundation:: HANDLE, sessionid : u32, ptitle : ::windows_sys::core::PCWSTR, titlelength : u32, pmessage : ::windows_sys::core::PCWSTR, messagelength : u32, style : super::super::UI::WindowsAndMessaging:: MESSAGEBOX_STYLE, timeout : u32, presponse : *mut super::super::UI::WindowsAndMessaging:: MESSAGEBOX_RESULT, bwait : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn WTSSetListenerSecurityA(hserver : super::super::Foundation:: HANDLE, preserved : *const ::core::ffi::c_void, reserved : u32, plistenername : ::windows_sys::core::PCSTR, securityinformation : super::super::Security:: OBJECT_SECURITY_INFORMATION, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn WTSSetListenerSecurityW(hserver : super::super::Foundation:: HANDLE, preserved : *const ::core::ffi::c_void, reserved : u32, plistenername : ::windows_sys::core::PCWSTR, securityinformation : super::super::Security:: OBJECT_SECURITY_INFORMATION, psecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSSetRenderHint(prenderhintid : *mut u64, hwndowner : super::super::Foundation:: HWND, renderhinttype : u32, cbhintdatalength : u32, phintdata : *const u8) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSSetUserConfigA(pservername : ::windows_sys::core::PCSTR, pusername : ::windows_sys::core::PCSTR, wtsconfigclass : WTS_CONFIG_CLASS, pbuffer : ::windows_sys::core::PCSTR, datalength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSSetUserConfigW(pservername : ::windows_sys::core::PCWSTR, pusername : ::windows_sys::core::PCWSTR, wtsconfigclass : WTS_CONFIG_CLASS, pbuffer : ::windows_sys::core::PCWSTR, datalength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSShutdownSystem(hserver : super::super::Foundation:: HANDLE, shutdownflag : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSStartRemoteControlSessionA(ptargetservername : ::windows_sys::core::PCSTR, targetlogonid : u32, hotkeyvk : u8, hotkeymodifiers : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSStartRemoteControlSessionW(ptargetservername : ::windows_sys::core::PCWSTR, targetlogonid : u32, hotkeyvk : u8, hotkeymodifiers : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSStopRemoteControlSession(logonid : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSTerminateProcess(hserver : super::super::Foundation:: HANDLE, processid : u32, exitcode : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSUnRegisterSessionNotification(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSUnRegisterSessionNotificationEx(hserver : super::super::Foundation:: HANDLE, hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSVirtualChannelClose(hchannelhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSVirtualChannelOpen(hserver : super::super::Foundation:: HANDLE, sessionid : u32, pvirtualname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSVirtualChannelOpenEx(sessionid : u32, pvirtualname : ::windows_sys::core::PCSTR, flags : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSVirtualChannelPurgeInput(hchannelhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSVirtualChannelPurgeOutput(hchannelhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSVirtualChannelQuery(hchannelhandle : super::super::Foundation:: HANDLE, param1 : WTS_VIRTUAL_CLASS, ppbuffer : *mut *mut ::core::ffi::c_void, pbytesreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSVirtualChannelRead(hchannelhandle : super::super::Foundation:: HANDLE, timeout : u32, buffer : ::windows_sys::core::PSTR, buffersize : u32, pbytesread : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSVirtualChannelWrite(hchannelhandle : super::super::Foundation:: HANDLE, buffer : ::windows_sys::core::PCSTR, length : u32, pbyteswritten : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wtsapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WTSWaitSystemEvent(hserver : super::super::Foundation:: HANDLE, eventmask : u32, peventflags : *mut u32) -> super::super::Foundation:: BOOL); +pub type IADsTSUserEx = *mut ::core::ffi::c_void; +pub type IAudioDeviceEndpoint = *mut ::core::ffi::c_void; +pub type IAudioEndpoint = *mut ::core::ffi::c_void; +pub type IAudioEndpointControl = *mut ::core::ffi::c_void; +pub type IAudioEndpointRT = *mut ::core::ffi::c_void; +pub type IAudioInputEndpointRT = *mut ::core::ffi::c_void; +pub type IAudioOutputEndpointRT = *mut ::core::ffi::c_void; +pub type IRemoteDesktopClient = *mut ::core::ffi::c_void; +pub type IRemoteDesktopClientActions = *mut ::core::ffi::c_void; +pub type IRemoteDesktopClientSettings = *mut ::core::ffi::c_void; +pub type IRemoteDesktopClientTouchPointer = *mut ::core::ffi::c_void; +pub type IRemoteSystemAdditionalInfoProvider = *mut ::core::ffi::c_void; +pub type ITSGAccountingEngine = *mut ::core::ffi::c_void; +pub type ITSGAuthenticateUserSink = *mut ::core::ffi::c_void; +pub type ITSGAuthenticationEngine = *mut ::core::ffi::c_void; +pub type ITSGAuthorizeConnectionSink = *mut ::core::ffi::c_void; +pub type ITSGAuthorizeResourceSink = *mut ::core::ffi::c_void; +pub type ITSGPolicyEngine = *mut ::core::ffi::c_void; +pub type ITsSbBaseNotifySink = *mut ::core::ffi::c_void; +pub type ITsSbClientConnection = *mut ::core::ffi::c_void; +pub type ITsSbClientConnectionPropertySet = *mut ::core::ffi::c_void; +pub type ITsSbEnvironment = *mut ::core::ffi::c_void; +pub type ITsSbEnvironmentPropertySet = *mut ::core::ffi::c_void; +pub type ITsSbFilterPluginStore = *mut ::core::ffi::c_void; +pub type ITsSbGenericNotifySink = *mut ::core::ffi::c_void; +pub type ITsSbGlobalStore = *mut ::core::ffi::c_void; +pub type ITsSbLoadBalanceResult = *mut ::core::ffi::c_void; +pub type ITsSbLoadBalancing = *mut ::core::ffi::c_void; +pub type ITsSbLoadBalancingNotifySink = *mut ::core::ffi::c_void; +pub type ITsSbOrchestration = *mut ::core::ffi::c_void; +pub type ITsSbOrchestrationNotifySink = *mut ::core::ffi::c_void; +pub type ITsSbPlacement = *mut ::core::ffi::c_void; +pub type ITsSbPlacementNotifySink = *mut ::core::ffi::c_void; +pub type ITsSbPlugin = *mut ::core::ffi::c_void; +pub type ITsSbPluginNotifySink = *mut ::core::ffi::c_void; +pub type ITsSbPluginPropertySet = *mut ::core::ffi::c_void; +pub type ITsSbPropertySet = *mut ::core::ffi::c_void; +pub type ITsSbProvider = *mut ::core::ffi::c_void; +pub type ITsSbProvisioning = *mut ::core::ffi::c_void; +pub type ITsSbProvisioningPluginNotifySink = *mut ::core::ffi::c_void; +pub type ITsSbResourceNotification = *mut ::core::ffi::c_void; +pub type ITsSbResourceNotificationEx = *mut ::core::ffi::c_void; +pub type ITsSbResourcePlugin = *mut ::core::ffi::c_void; +pub type ITsSbResourcePluginStore = *mut ::core::ffi::c_void; +pub type ITsSbServiceNotification = *mut ::core::ffi::c_void; +pub type ITsSbSession = *mut ::core::ffi::c_void; +pub type ITsSbTarget = *mut ::core::ffi::c_void; +pub type ITsSbTargetPropertySet = *mut ::core::ffi::c_void; +pub type ITsSbTaskInfo = *mut ::core::ffi::c_void; +pub type ITsSbTaskPlugin = *mut ::core::ffi::c_void; +pub type ITsSbTaskPluginNotifySink = *mut ::core::ffi::c_void; +pub type IWRdsEnhancedFastReconnectArbitrator = *mut ::core::ffi::c_void; +pub type IWRdsGraphicsChannel = *mut ::core::ffi::c_void; +pub type IWRdsGraphicsChannelEvents = *mut ::core::ffi::c_void; +pub type IWRdsGraphicsChannelManager = *mut ::core::ffi::c_void; +pub type IWRdsProtocolConnection = *mut ::core::ffi::c_void; +pub type IWRdsProtocolConnectionCallback = *mut ::core::ffi::c_void; +pub type IWRdsProtocolConnectionSettings = *mut ::core::ffi::c_void; +pub type IWRdsProtocolLicenseConnection = *mut ::core::ffi::c_void; +pub type IWRdsProtocolListener = *mut ::core::ffi::c_void; +pub type IWRdsProtocolListenerCallback = *mut ::core::ffi::c_void; +pub type IWRdsProtocolLogonErrorRedirector = *mut ::core::ffi::c_void; +pub type IWRdsProtocolManager = *mut ::core::ffi::c_void; +pub type IWRdsProtocolSettings = *mut ::core::ffi::c_void; +pub type IWRdsProtocolShadowCallback = *mut ::core::ffi::c_void; +pub type IWRdsProtocolShadowConnection = *mut ::core::ffi::c_void; +pub type IWRdsWddmIddProps = *mut ::core::ffi::c_void; +pub type IWTSBitmapRenderService = *mut ::core::ffi::c_void; +pub type IWTSBitmapRenderer = *mut ::core::ffi::c_void; +pub type IWTSBitmapRendererCallback = *mut ::core::ffi::c_void; +pub type IWTSListener = *mut ::core::ffi::c_void; +pub type IWTSListenerCallback = *mut ::core::ffi::c_void; +pub type IWTSPlugin = *mut ::core::ffi::c_void; +pub type IWTSPluginServiceProvider = *mut ::core::ffi::c_void; +pub type IWTSProtocolConnection = *mut ::core::ffi::c_void; +pub type IWTSProtocolConnectionCallback = *mut ::core::ffi::c_void; +pub type IWTSProtocolLicenseConnection = *mut ::core::ffi::c_void; +pub type IWTSProtocolListener = *mut ::core::ffi::c_void; +pub type IWTSProtocolListenerCallback = *mut ::core::ffi::c_void; +pub type IWTSProtocolLogonErrorRedirector = *mut ::core::ffi::c_void; +pub type IWTSProtocolManager = *mut ::core::ffi::c_void; +pub type IWTSProtocolShadowCallback = *mut ::core::ffi::c_void; +pub type IWTSProtocolShadowConnection = *mut ::core::ffi::c_void; +pub type IWTSSBPlugin = *mut ::core::ffi::c_void; +pub type IWTSVirtualChannel = *mut ::core::ffi::c_void; +pub type IWTSVirtualChannelCallback = *mut ::core::ffi::c_void; +pub type IWTSVirtualChannelManager = *mut ::core::ffi::c_void; +pub type IWorkspace = *mut ::core::ffi::c_void; +pub type IWorkspace2 = *mut ::core::ffi::c_void; +pub type IWorkspace3 = *mut ::core::ffi::c_void; +pub type IWorkspaceClientExt = *mut ::core::ffi::c_void; +pub type IWorkspaceRegistration = *mut ::core::ffi::c_void; +pub type IWorkspaceRegistration2 = *mut ::core::ffi::c_void; +pub type IWorkspaceReportMessage = *mut ::core::ffi::c_void; +pub type IWorkspaceResTypeRegistry = *mut ::core::ffi::c_void; +pub type IWorkspaceScriptable = *mut ::core::ffi::c_void; +pub type IWorkspaceScriptable2 = *mut ::core::ffi::c_void; +pub type IWorkspaceScriptable3 = *mut ::core::ffi::c_void; +pub type ItsPubPlugin = *mut ::core::ffi::c_void; +pub type ItsPubPlugin2 = *mut ::core::ffi::c_void; +pub type _ITSWkspEvents = *mut ::core::ffi::c_void; +pub const AA_AUTH_ANY: AAAuthSchemes = 6i32; +pub const AA_AUTH_BASIC: AAAuthSchemes = 1i32; +pub const AA_AUTH_CONID: AAAuthSchemes = 10i32; +pub const AA_AUTH_COOKIE: AAAuthSchemes = 7i32; +pub const AA_AUTH_DIGEST: AAAuthSchemes = 8i32; +pub const AA_AUTH_LOGGEDONCREDENTIALS: AAAuthSchemes = 4i32; +pub const AA_AUTH_MAX: AAAuthSchemes = 12i32; +pub const AA_AUTH_MIN: AAAuthSchemes = 0i32; +pub const AA_AUTH_NEGOTIATE: AAAuthSchemes = 5i32; +pub const AA_AUTH_NTLM: AAAuthSchemes = 2i32; +pub const AA_AUTH_ORGID: AAAuthSchemes = 9i32; +pub const AA_AUTH_SC: AAAuthSchemes = 3i32; +pub const AA_AUTH_SSPI_NTLM: AAAuthSchemes = 11i32; +pub const AA_MAIN_SESSION_CLOSED: AAAccountingDataType = 3i32; +pub const AA_MAIN_SESSION_CREATION: AAAccountingDataType = 0i32; +pub const AA_SUB_SESSION_CLOSED: AAAccountingDataType = 2i32; +pub const AA_SUB_SESSION_CREATION: AAAccountingDataType = 1i32; +pub const AA_TRUSTEDUSER_TRUSTEDCLIENT: AATrustClassID = 2i32; +pub const AA_TRUSTEDUSER_UNTRUSTEDCLIENT: AATrustClassID = 1i32; +pub const AA_UNTRUSTED: AATrustClassID = 0i32; +pub const ACQUIRE_TARGET_LOCK_TIMEOUT: u32 = 300000u32; +pub const ADsTSUserEx: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe2e9cae6_1e7b_4b8e_babd_e9bf6292ac29); +pub const AllowOnlySDRServers: PolicyAttributeType = 7i32; +pub const CHANNEL_BUFFER_SIZE: u32 = 65535u32; +pub const CHANNEL_CHUNK_LENGTH: u32 = 1600u32; +pub const CHANNEL_EVENT_CONNECTED: u32 = 1u32; +pub const CHANNEL_EVENT_DATA_RECEIVED: u32 = 10u32; +pub const CHANNEL_EVENT_DISCONNECTED: u32 = 3u32; +pub const CHANNEL_EVENT_INITIALIZED: u32 = 0u32; +pub const CHANNEL_EVENT_TERMINATED: u32 = 4u32; +pub const CHANNEL_EVENT_V1_CONNECTED: u32 = 2u32; +pub const CHANNEL_EVENT_WRITE_CANCELLED: u32 = 12u32; +pub const CHANNEL_EVENT_WRITE_COMPLETE: u32 = 11u32; +pub const CHANNEL_FLAG_FAIL: u32 = 256u32; +pub const CHANNEL_FLAG_FIRST: u32 = 1u32; +pub const CHANNEL_FLAG_LAST: u32 = 2u32; +pub const CHANNEL_FLAG_MIDDLE: u32 = 0u32; +pub const CHANNEL_MAX_COUNT: u32 = 30u32; +pub const CHANNEL_NAME_LEN: u32 = 7u32; +pub const CHANNEL_OPTION_COMPRESS: u32 = 4194304u32; +pub const CHANNEL_OPTION_COMPRESS_RDP: u32 = 8388608u32; +pub const CHANNEL_OPTION_ENCRYPT_CS: u32 = 268435456u32; +pub const CHANNEL_OPTION_ENCRYPT_RDP: u32 = 1073741824u32; +pub const CHANNEL_OPTION_ENCRYPT_SC: u32 = 536870912u32; +pub const CHANNEL_OPTION_INITIALIZED: u32 = 2147483648u32; +pub const CHANNEL_OPTION_PRI_HIGH: u32 = 134217728u32; +pub const CHANNEL_OPTION_PRI_LOW: u32 = 33554432u32; +pub const CHANNEL_OPTION_PRI_MED: u32 = 67108864u32; +pub const CHANNEL_OPTION_REMOTE_CONTROL_PERSISTENT: u32 = 1048576u32; +pub const CHANNEL_OPTION_SHOW_PROTOCOL: u32 = 2097152u32; +pub const CHANNEL_RC_ALREADY_CONNECTED: u32 = 3u32; +pub const CHANNEL_RC_ALREADY_INITIALIZED: u32 = 1u32; +pub const CHANNEL_RC_ALREADY_OPEN: u32 = 14u32; +pub const CHANNEL_RC_BAD_CHANNEL: u32 = 6u32; +pub const CHANNEL_RC_BAD_CHANNEL_HANDLE: u32 = 7u32; +pub const CHANNEL_RC_BAD_INIT_HANDLE: u32 = 9u32; +pub const CHANNEL_RC_BAD_PROC: u32 = 11u32; +pub const CHANNEL_RC_INITIALIZATION_ERROR: u32 = 20u32; +pub const CHANNEL_RC_INVALID_INSTANCE: u32 = 18u32; +pub const CHANNEL_RC_NOT_CONNECTED: u32 = 4u32; +pub const CHANNEL_RC_NOT_INITIALIZED: u32 = 2u32; +pub const CHANNEL_RC_NOT_IN_VIRTUALCHANNELENTRY: u32 = 15u32; +pub const CHANNEL_RC_NOT_OPEN: u32 = 10u32; +pub const CHANNEL_RC_NO_BUFFER: u32 = 8u32; +pub const CHANNEL_RC_NO_MEMORY: u32 = 12u32; +pub const CHANNEL_RC_NULL_DATA: u32 = 16u32; +pub const CHANNEL_RC_OK: u32 = 0u32; +pub const CHANNEL_RC_TOO_MANY_CHANNELS: u32 = 5u32; +pub const CHANNEL_RC_UNKNOWN_CHANNEL_NAME: u32 = 13u32; +pub const CHANNEL_RC_UNSUPPORTED_VERSION: u32 = 19u32; +pub const CHANNEL_RC_ZERO_LENGTH: u32 = 17u32; +pub const CLIENTADDRESS_LENGTH: u32 = 30u32; +pub const CLIENTNAME_LENGTH: u32 = 20u32; +pub const CLIENT_MESSAGE_CONNECTION_ERROR: CLIENT_MESSAGE_TYPE = 2i32; +pub const CLIENT_MESSAGE_CONNECTION_INVALID: CLIENT_MESSAGE_TYPE = 0i32; +pub const CLIENT_MESSAGE_CONNECTION_STATUS: CLIENT_MESSAGE_TYPE = 1i32; +pub const CONNECTION_PROPERTY_CURSOR_BLINK_DISABLED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4b150580_fea4_4d3c_9de4_7433a66618f7); +pub const CONNECTION_PROPERTY_IDLE_TIME_WARNING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x693f7ff5_0c4e_4d17_b8e0_1f70325e5d58); +pub const CONNECTION_REQUEST_CANCELLED: CONNECTION_CHANGE_NOTIFICATION = 5i32; +pub const CONNECTION_REQUEST_FAILED: CONNECTION_CHANGE_NOTIFICATION = 2i32; +pub const CONNECTION_REQUEST_INVALID: CONNECTION_CHANGE_NOTIFICATION = 0i32; +pub const CONNECTION_REQUEST_LB_COMPLETED: CONNECTION_CHANGE_NOTIFICATION = 6i32; +pub const CONNECTION_REQUEST_ORCH_COMPLETED: CONNECTION_CHANGE_NOTIFICATION = 8i32; +pub const CONNECTION_REQUEST_PENDING: CONNECTION_CHANGE_NOTIFICATION = 1i32; +pub const CONNECTION_REQUEST_QUERY_PL_COMPLETED: CONNECTION_CHANGE_NOTIFICATION = 7i32; +pub const CONNECTION_REQUEST_SUCCEEDED: CONNECTION_CHANGE_NOTIFICATION = 4i32; +pub const CONNECTION_REQUEST_TIMEDOUT: CONNECTION_CHANGE_NOTIFICATION = 3i32; +pub const ClipboardRedirectionDisabled: PolicyAttributeType = 5i32; +pub const DISPID_AX_ADMINMESSAGERECEIVED: u32 = 760u32; +pub const DISPID_AX_AUTORECONNECTED: u32 = 756u32; +pub const DISPID_AX_AUTORECONNECTING: u32 = 755u32; +pub const DISPID_AX_CONNECTED: u32 = 751u32; +pub const DISPID_AX_CONNECTING: u32 = 750u32; +pub const DISPID_AX_DIALOGDISMISSED: u32 = 758u32; +pub const DISPID_AX_DIALOGDISPLAYING: u32 = 757u32; +pub const DISPID_AX_DISCONNECTED: u32 = 753u32; +pub const DISPID_AX_KEYCOMBINATIONPRESSED: u32 = 761u32; +pub const DISPID_AX_LOGINCOMPLETED: u32 = 752u32; +pub const DISPID_AX_NETWORKSTATUSCHANGED: u32 = 759u32; +pub const DISPID_AX_REMOTEDESKTOPSIZECHANGED: u32 = 762u32; +pub const DISPID_AX_STATUSCHANGED: u32 = 754u32; +pub const DISPID_AX_TOUCHPOINTERCURSORMOVED: u32 = 800u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_APPLY_SETTINGS: u32 = 722u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_ATTACH_EVENT: u32 = 706u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_CONNECT: u32 = 701u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_DELETE_SAVED_CREDENTIALS: u32 = 704u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_DETACH_EVENT: u32 = 707u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_DISCONNECT: u32 = 702u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_EXECUTE_REMOTE_ACTION: u32 = 732u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_GET_RDPPROPERTY: u32 = 721u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_GET_SNAPSHOT: u32 = 733u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_RECONNECT: u32 = 703u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_RESUME_SCREEN_UPDATES: u32 = 731u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_RETRIEVE_SETTINGS: u32 = 723u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_SET_RDPPROPERTY: u32 = 720u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_SUSPEND_SCREEN_UPDATES: u32 = 730u32; +pub const DISPID_METHOD_REMOTEDESKTOPCLIENT_UPDATE_SESSION_DISPLAYSETTINGS: u32 = 705u32; +pub const DISPID_PROP_REMOTEDESKTOPCLIENT_ACTIONS: u32 = 711u32; +pub const DISPID_PROP_REMOTEDESKTOPCLIENT_SETTINGS: u32 = 710u32; +pub const DISPID_PROP_REMOTEDESKTOPCLIENT_TOUCHPOINTER_ENABLED: u32 = 740u32; +pub const DISPID_PROP_REMOTEDESKTOPCLIENT_TOUCHPOINTER_EVENTSENABLED: u32 = 741u32; +pub const DISPID_PROP_REMOTEDESKTOPCLIENT_TOUCHPOINTER_POINTERSPEED: u32 = 742u32; +pub const DISPID_PROP_REMOTEDESKTOPCLIENT_TOUCH_POINTER: u32 = 712u32; +pub const DOMAIN_LENGTH: u32 = 17u32; +pub const DisableAllRedirections: PolicyAttributeType = 1i32; +pub const DriveRedirectionDisabled: PolicyAttributeType = 2i32; +pub const EnableAllRedirections: PolicyAttributeType = 0i32; +pub const FARM: TARGET_TYPE = 1i32; +pub const FORCE_REJOIN: u32 = 2u32; +pub const FORCE_REJOIN_IN_CLUSTERMODE: u32 = 3u32; +pub const KEEP_EXISTING_SESSIONS: u32 = 8u32; +pub const KeyCombinationDown: KeyCombinationType = 4i32; +pub const KeyCombinationHome: KeyCombinationType = 0i32; +pub const KeyCombinationLeft: KeyCombinationType = 1i32; +pub const KeyCombinationRight: KeyCombinationType = 3i32; +pub const KeyCombinationScroll: KeyCombinationType = 5i32; +pub const KeyCombinationUp: KeyCombinationType = 2i32; +pub const LOAD_BALANCING_PLUGIN: PLUGIN_TYPE = 4i32; +pub const MAX_DATE_TIME_LENGTH: u32 = 56u32; +pub const MAX_ELAPSED_TIME_LENGTH: u32 = 15u32; +pub const MAX_POLICY_ATTRIBUTES: u32 = 20u32; +pub const MaxAppName_Len: u32 = 256u32; +pub const MaxDomainName_Len: u32 = 256u32; +pub const MaxFQDN_Len: u32 = 256u32; +pub const MaxFarm_Len: u32 = 256u32; +pub const MaxNetBiosName_Len: u32 = 16u32; +pub const MaxNumOfExposed_IPs: u32 = 12u32; +pub const MaxUserName_Len: u32 = 104u32; +pub const NONFARM: TARGET_TYPE = 2i32; +pub const NOTIFY_FOR_ALL_SESSIONS: u32 = 1u32; +pub const NOTIFY_FOR_THIS_SESSION: u32 = 0u32; +pub const ORCHESTRATION_PLUGIN: PLUGIN_TYPE = 16i32; +pub const OWNER_MS_TS_PLUGIN: TARGET_OWNER = 1i32; +pub const OWNER_MS_VM_PLUGIN: TARGET_OWNER = 2i32; +pub const OWNER_UNKNOWN: TARGET_OWNER = 0i32; +pub const PLACEMENT_PLUGIN: PLUGIN_TYPE = 8i32; +pub const PLUGIN_CAPABILITY_EXTERNAL_REDIRECTION: u32 = 1u32; +pub const POLICY_PLUGIN: PLUGIN_TYPE = 1i32; +pub const POSITION_CONTINUOUS: AE_POSITION_FLAGS = 2i32; +pub const POSITION_DISCONTINUOUS: AE_POSITION_FLAGS = 1i32; +pub const POSITION_INVALID: AE_POSITION_FLAGS = 0i32; +pub const POSITION_QPC_ERROR: AE_POSITION_FLAGS = 4i32; +pub const PRODUCTINFO_COMPANYNAME_LENGTH: u32 = 256u32; +pub const PRODUCTINFO_PRODUCTID_LENGTH: u32 = 4u32; +pub const PROPERTY_DYNAMIC_TIME_ZONE_INFORMATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cdfd28e_d0b9_4c1f_a5eb_6d1f6c6535b9); +pub const PROPERTY_TYPE_ENABLE_UNIVERSAL_APPS_FOR_CUSTOM_SHELL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xed2c3fda_338d_4d3f_81a3_e767310d908e); +pub const PROPERTY_TYPE_GET_FAST_RECONNECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6212d757_0043_4862_99c3_9f3059ac2a3b); +pub const PROPERTY_TYPE_GET_FAST_RECONNECT_USER_SID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x197c427a_0135_4b6d_9c5e_e6579a0ab625); +pub const PROVISIONING_PLUGIN: PLUGIN_TYPE = 32i32; +pub const PasswordEncodingUTF16BE: PasswordEncodingType = 2i32; +pub const PasswordEncodingUTF16LE: PasswordEncodingType = 1i32; +pub const PasswordEncodingUTF8: PasswordEncodingType = 0i32; +pub const PnpRedirectionDisabled: PolicyAttributeType = 6i32; +pub const PortRedirectionDisabled: PolicyAttributeType = 4i32; +pub const PrinterRedirectionDisabled: PolicyAttributeType = 3i32; +pub const RDCLIENT_BITMAP_RENDER_SERVICE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe4cc08cb_942e_4b19_8504_bd5a89a747f5); +pub const RDV_TASK_STATUS_APPLYING: RDV_TASK_STATUS = 3i32; +pub const RDV_TASK_STATUS_DOWNLOADING: RDV_TASK_STATUS = 2i32; +pub const RDV_TASK_STATUS_FAILED: RDV_TASK_STATUS = 7i32; +pub const RDV_TASK_STATUS_REBOOTED: RDV_TASK_STATUS = 5i32; +pub const RDV_TASK_STATUS_REBOOTING: RDV_TASK_STATUS = 4i32; +pub const RDV_TASK_STATUS_SEARCHING: RDV_TASK_STATUS = 1i32; +pub const RDV_TASK_STATUS_SUCCESS: RDV_TASK_STATUS = 6i32; +pub const RDV_TASK_STATUS_TIMEOUT: RDV_TASK_STATUS = 8i32; +pub const RDV_TASK_STATUS_UNKNOWN: RDV_TASK_STATUS = 0i32; +pub const RD_FARM_AUTO_PERSONAL_RDSH: RD_FARM_TYPE = 5i32; +pub const RD_FARM_AUTO_PERSONAL_VM: RD_FARM_TYPE = 3i32; +pub const RD_FARM_MANUAL_PERSONAL_RDSH: RD_FARM_TYPE = 4i32; +pub const RD_FARM_MANUAL_PERSONAL_VM: RD_FARM_TYPE = 2i32; +pub const RD_FARM_RDSH: RD_FARM_TYPE = 0i32; +pub const RD_FARM_TEMP_VM: RD_FARM_TYPE = 1i32; +pub const RD_FARM_TYPE_UNKNOWN: RD_FARM_TYPE = -1i32; +pub const REMOTECONTROL_KBDALT_HOTKEY: u32 = 4u32; +pub const REMOTECONTROL_KBDCTRL_HOTKEY: u32 = 2u32; +pub const REMOTECONTROL_KBDSHIFT_HOTKEY: u32 = 1u32; +pub const RENDER_HINT_CLEAR: u32 = 0u32; +pub const RENDER_HINT_MAPPEDWINDOW: u32 = 2u32; +pub const RENDER_HINT_VIDEO: u32 = 1u32; +pub const RESERVED_FOR_LEGACY: u32 = 4u32; +pub const RESOURCE_PLUGIN: PLUGIN_TYPE = 2i32; +pub const RFX_CLIENT_ID_LENGTH: u32 = 32u32; +pub const RFX_GFX_MAX_SUPPORTED_MONITORS: u32 = 16u32; +pub const RFX_GFX_MSG_PREFIX: u32 = 48u32; +pub const RFX_GFX_MSG_PREFIX_MASK: u32 = 48u32; +pub const RFX_RDP_MSG_PREFIX: u32 = 0u32; +pub const RemoteActionAppSwitch: RemoteActionType = 4i32; +pub const RemoteActionAppbar: RemoteActionType = 1i32; +pub const RemoteActionCharms: RemoteActionType = 0i32; +pub const RemoteActionSnap: RemoteActionType = 2i32; +pub const RemoteActionStartScreen: RemoteActionType = 3i32; +pub const SB_SYNCH_CONFLICT_MAX_WRITE_ATTEMPTS: u32 = 100u32; +pub const SESSION_TIMEOUT_ACTION_DISCONNECT: SESSION_TIMEOUT_ACTION_TYPE = 0i32; +pub const SESSION_TIMEOUT_ACTION_SILENT_REAUTH: SESSION_TIMEOUT_ACTION_TYPE = 1i32; +pub const SINGLE_SESSION: u32 = 1u32; +pub const STATE_ACTIVE: TSSESSION_STATE = 0i32; +pub const STATE_CONNECTED: TSSESSION_STATE = 1i32; +pub const STATE_CONNECTQUERY: TSSESSION_STATE = 2i32; +pub const STATE_DISCONNECTED: TSSESSION_STATE = 4i32; +pub const STATE_DOWN: TSSESSION_STATE = 8i32; +pub const STATE_IDLE: TSSESSION_STATE = 5i32; +pub const STATE_INIT: TSSESSION_STATE = 9i32; +pub const STATE_INVALID: TSSESSION_STATE = -1i32; +pub const STATE_LISTEN: TSSESSION_STATE = 6i32; +pub const STATE_MAX: TSSESSION_STATE = 10i32; +pub const STATE_RESET: TSSESSION_STATE = 7i32; +pub const STATE_SHADOW: TSSESSION_STATE = 3i32; +pub const SnapshotEncodingDataUri: SnapshotEncodingType = 0i32; +pub const SnapshotFormatBmp: SnapshotFormatType = 2i32; +pub const SnapshotFormatJpeg: SnapshotFormatType = 1i32; +pub const SnapshotFormatPng: SnapshotFormatType = 0i32; +pub const TARGET_CHANGE_UNSPEC: TARGET_CHANGE_TYPE = 1i32; +pub const TARGET_CHECKED_OUT: TARGET_STATE = 6i32; +pub const TARGET_DOWN: TARGET_STATE = 4i32; +pub const TARGET_EXTERNALIP_CHANGED: TARGET_CHANGE_TYPE = 2i32; +pub const TARGET_FARM_MEMBERSHIP_CHANGED: TARGET_CHANGE_TYPE = 1024i32; +pub const TARGET_HIBERNATED: TARGET_STATE = 5i32; +pub const TARGET_IDLE: TARGET_CHANGE_TYPE = 64i32; +pub const TARGET_INITIALIZING: TARGET_STATE = 2i32; +pub const TARGET_INTERNALIP_CHANGED: TARGET_CHANGE_TYPE = 4i32; +pub const TARGET_INUSE: TARGET_CHANGE_TYPE = 256i32; +pub const TARGET_INVALID: TARGET_STATE = 8i32; +pub const TARGET_JOINED: TARGET_CHANGE_TYPE = 8i32; +pub const TARGET_MAXSTATE: TARGET_STATE = 11i32; +pub const TARGET_PATCH_COMPLETED: TARGET_PATCH_STATE = 3i32; +pub const TARGET_PATCH_FAILED: TARGET_PATCH_STATE = 4i32; +pub const TARGET_PATCH_IN_PROGRESS: TARGET_PATCH_STATE = 2i32; +pub const TARGET_PATCH_NOT_STARTED: TARGET_PATCH_STATE = 1i32; +pub const TARGET_PATCH_STATE_CHANGED: TARGET_CHANGE_TYPE = 512i32; +pub const TARGET_PATCH_UNKNOWN: TARGET_PATCH_STATE = 0i32; +pub const TARGET_PENDING: TARGET_CHANGE_TYPE = 128i32; +pub const TARGET_REMOVED: TARGET_CHANGE_TYPE = 16i32; +pub const TARGET_RUNNING: TARGET_STATE = 3i32; +pub const TARGET_STARTING: TARGET_STATE = 9i32; +pub const TARGET_STATE_CHANGED: TARGET_CHANGE_TYPE = 32i32; +pub const TARGET_STOPPED: TARGET_STATE = 7i32; +pub const TARGET_STOPPING: TARGET_STATE = 10i32; +pub const TARGET_UNKNOWN: TARGET_STATE = 1i32; +pub const TASK_PLUGIN: PLUGIN_TYPE = 64i32; +pub const TSPUB_PLUGIN_PD_ASSIGNMENT_EXISTING: TSPUB_PLUGIN_PD_ASSIGNMENT_TYPE = 1i32; +pub const TSPUB_PLUGIN_PD_ASSIGNMENT_NEW: TSPUB_PLUGIN_PD_ASSIGNMENT_TYPE = 0i32; +pub const TSPUB_PLUGIN_PD_QUERY_EXISTING: TSPUB_PLUGIN_PD_RESOLUTION_TYPE = 1i32; +pub const TSPUB_PLUGIN_PD_QUERY_OR_CREATE: TSPUB_PLUGIN_PD_RESOLUTION_TYPE = 0i32; +pub const TSSB_NOTIFY_CONNECTION_REQUEST_CHANGE: TSSB_NOTIFICATION_TYPE = 4i32; +pub const TSSB_NOTIFY_INVALID: TSSB_NOTIFICATION_TYPE = 0i32; +pub const TSSB_NOTIFY_SESSION_CHANGE: TSSB_NOTIFICATION_TYPE = 2i32; +pub const TSSB_NOTIFY_TARGET_CHANGE: TSSB_NOTIFICATION_TYPE = 1i32; +pub const TSSD_ADDR_IPv4: TSSD_AddrV46Type = 4i32; +pub const TSSD_ADDR_IPv6: TSSD_AddrV46Type = 6i32; +pub const TSSD_ADDR_UNDEFINED: TSSD_AddrV46Type = 0i32; +pub const TSUserExInterfaces: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0910dd01_df8c_11d1_ae27_00c04fa35813); +pub const TS_SB_SORT_BY_NAME: TS_SB_SORT_BY = 1i32; +pub const TS_SB_SORT_BY_NONE: TS_SB_SORT_BY = 0i32; +pub const TS_SB_SORT_BY_PROP: TS_SB_SORT_BY = 2i32; +pub const TS_VC_LISTENER_STATIC_CHANNEL: u32 = 1u32; +pub const UNKNOWN: TARGET_TYPE = 0i32; +pub const UNKNOWN_PLUGIN: PLUGIN_TYPE = 0i32; +pub const USERNAME_LENGTH: u32 = 20u32; +pub const VALIDATIONINFORMATION_HARDWAREID_LENGTH: u32 = 20u32; +pub const VALIDATIONINFORMATION_LICENSE_LENGTH: u32 = 16384u32; +pub const VIRTUAL_CHANNEL_VERSION_WIN2000: u32 = 1u32; +pub const VM_HOST_STATUS_INIT_COMPLETE: VM_HOST_NOTIFY_STATUS = 2i32; +pub const VM_HOST_STATUS_INIT_FAILED: VM_HOST_NOTIFY_STATUS = 3i32; +pub const VM_HOST_STATUS_INIT_IN_PROGRESS: VM_HOST_NOTIFY_STATUS = 1i32; +pub const VM_HOST_STATUS_INIT_PENDING: VM_HOST_NOTIFY_STATUS = 0i32; +pub const VM_NOTIFY_STATUS_CANCELED: VM_NOTIFY_STATUS = 4i32; +pub const VM_NOTIFY_STATUS_COMPLETE: VM_NOTIFY_STATUS = 2i32; +pub const VM_NOTIFY_STATUS_FAILED: VM_NOTIFY_STATUS = 3i32; +pub const VM_NOTIFY_STATUS_IN_PROGRESS: VM_NOTIFY_STATUS = 1i32; +pub const VM_NOTIFY_STATUS_PENDING: VM_NOTIFY_STATUS = 0i32; +pub const WINSTATIONNAME_LENGTH: u32 = 32u32; +pub const WKS_FLAG_CLEAR_CREDS_ON_LAST_RESOURCE: u32 = 1u32; +pub const WKS_FLAG_CREDS_AUTHENTICATED: u32 = 4u32; +pub const WKS_FLAG_PASSWORD_ENCRYPTED: u32 = 2u32; +pub const WRDS_CLIENTADDRESS_LENGTH: u32 = 30u32; +pub const WRDS_CLIENTNAME_LENGTH: u32 = 20u32; +pub const WRDS_CLIENT_PRODUCT_ID_LENGTH: u32 = 32u32; +pub const WRDS_CONNECTION_SETTING_LEVEL_1: WRDS_CONNECTION_SETTING_LEVEL = 1i32; +pub const WRDS_CONNECTION_SETTING_LEVEL_INVALID: WRDS_CONNECTION_SETTING_LEVEL = 0i32; +pub const WRDS_DEVICE_NAME_LENGTH: u32 = 19u32; +pub const WRDS_DIRECTORY_LENGTH: u32 = 256u32; +pub const WRDS_DOMAIN_LENGTH: u32 = 255u32; +pub const WRDS_DRIVER_NAME_LENGTH: u32 = 8u32; +pub const WRDS_IMEFILENAME_LENGTH: u32 = 32u32; +pub const WRDS_INITIALPROGRAM_LENGTH: u32 = 256u32; +pub const WRDS_KEY_EXCHANGE_ALG_DH: u32 = 2u32; +pub const WRDS_KEY_EXCHANGE_ALG_RSA: u32 = 1u32; +pub const WRDS_LICENSE_PREAMBLE_VERSION: u32 = 3u32; +pub const WRDS_LICENSE_PROTOCOL_VERSION: u32 = 65536u32; +pub const WRDS_LISTENER_SETTING_LEVEL_1: WRDS_LISTENER_SETTING_LEVEL = 1i32; +pub const WRDS_LISTENER_SETTING_LEVEL_INVALID: WRDS_LISTENER_SETTING_LEVEL = 0i32; +pub const WRDS_MAX_CACHE_RESERVED: u32 = 20u32; +pub const WRDS_MAX_COUNTERS: u32 = 100u32; +pub const WRDS_MAX_DISPLAY_IOCTL_DATA: u32 = 256u32; +pub const WRDS_MAX_PROTOCOL_CACHE: u32 = 4u32; +pub const WRDS_MAX_RESERVED: u32 = 100u32; +pub const WRDS_PASSWORD_LENGTH: u32 = 255u32; +pub const WRDS_PERF_DISABLE_CURSORSETTINGS: u32 = 64u32; +pub const WRDS_PERF_DISABLE_CURSOR_SHADOW: u32 = 32u32; +pub const WRDS_PERF_DISABLE_FULLWINDOWDRAG: u32 = 2u32; +pub const WRDS_PERF_DISABLE_MENUANIMATIONS: u32 = 4u32; +pub const WRDS_PERF_DISABLE_NOTHING: u32 = 0u32; +pub const WRDS_PERF_DISABLE_THEMING: u32 = 8u32; +pub const WRDS_PERF_DISABLE_WALLPAPER: u32 = 1u32; +pub const WRDS_PERF_ENABLE_DESKTOP_COMPOSITION: u32 = 256u32; +pub const WRDS_PERF_ENABLE_ENHANCED_GRAPHICS: u32 = 16u32; +pub const WRDS_PERF_ENABLE_FONT_SMOOTHING: u32 = 128u32; +pub const WRDS_PROTOCOL_NAME_LENGTH: u32 = 8u32; +pub const WRDS_SERVICE_ID_GRAPHICS_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd2993f4d_02cf_4280_8c48_1624b44f8706); +pub const WRDS_SETTING_LEVEL_1: WRDS_SETTING_LEVEL = 1i32; +pub const WRDS_SETTING_LEVEL_INVALID: WRDS_SETTING_LEVEL = 0i32; +pub const WRDS_SETTING_STATUS_DISABLED: WRDS_SETTING_STATUS = 0i32; +pub const WRDS_SETTING_STATUS_ENABLED: WRDS_SETTING_STATUS = 1i32; +pub const WRDS_SETTING_STATUS_NOTAPPLICABLE: WRDS_SETTING_STATUS = -1i32; +pub const WRDS_SETTING_STATUS_NOTCONFIGURED: WRDS_SETTING_STATUS = 2i32; +pub const WRDS_SETTING_TYPE_INVALID: WRDS_SETTING_TYPE = 0i32; +pub const WRDS_SETTING_TYPE_MACHINE: WRDS_SETTING_TYPE = 1i32; +pub const WRDS_SETTING_TYPE_SAM: WRDS_SETTING_TYPE = 3i32; +pub const WRDS_SETTING_TYPE_USER: WRDS_SETTING_TYPE = 2i32; +pub const WRDS_USERNAME_LENGTH: u32 = 255u32; +pub const WRDS_VALUE_TYPE_BINARY: u32 = 3u32; +pub const WRDS_VALUE_TYPE_GUID: u32 = 4u32; +pub const WRDS_VALUE_TYPE_STRING: u32 = 2u32; +pub const WRDS_VALUE_TYPE_ULONG: u32 = 1u32; +pub const WRdsGraphicsChannelType_BestEffortDelivery: WRdsGraphicsChannelType = 1i32; +pub const WRdsGraphicsChannelType_GuaranteedDelivery: WRdsGraphicsChannelType = 0i32; +pub const WRdsGraphicsChannels_LossyChannelMaxMessageSize: u32 = 988u32; +pub const WTSActive: WTS_CONNECTSTATE_CLASS = 0i32; +pub const WTSApplicationName: WTS_INFO_CLASS = 1i32; +pub const WTSClientAddress: WTS_INFO_CLASS = 14i32; +pub const WTSClientBuildNumber: WTS_INFO_CLASS = 9i32; +pub const WTSClientDirectory: WTS_INFO_CLASS = 11i32; +pub const WTSClientDisplay: WTS_INFO_CLASS = 15i32; +pub const WTSClientHardwareId: WTS_INFO_CLASS = 13i32; +pub const WTSClientInfo: WTS_INFO_CLASS = 23i32; +pub const WTSClientName: WTS_INFO_CLASS = 10i32; +pub const WTSClientProductId: WTS_INFO_CLASS = 12i32; +pub const WTSClientProtocolType: WTS_INFO_CLASS = 16i32; +pub const WTSConfigInfo: WTS_INFO_CLASS = 26i32; +pub const WTSConnectQuery: WTS_CONNECTSTATE_CLASS = 2i32; +pub const WTSConnectState: WTS_INFO_CLASS = 8i32; +pub const WTSConnected: WTS_CONNECTSTATE_CLASS = 1i32; +pub const WTSDisconnected: WTS_CONNECTSTATE_CLASS = 4i32; +pub const WTSDomainName: WTS_INFO_CLASS = 7i32; +pub const WTSDown: WTS_CONNECTSTATE_CLASS = 8i32; +pub const WTSIdle: WTS_CONNECTSTATE_CLASS = 5i32; +pub const WTSIdleTime: WTS_INFO_CLASS = 17i32; +pub const WTSIncomingBytes: WTS_INFO_CLASS = 19i32; +pub const WTSIncomingFrames: WTS_INFO_CLASS = 21i32; +pub const WTSInit: WTS_CONNECTSTATE_CLASS = 9i32; +pub const WTSInitialProgram: WTS_INFO_CLASS = 0i32; +pub const WTSIsRemoteSession: WTS_INFO_CLASS = 29i32; +pub const WTSListen: WTS_CONNECTSTATE_CLASS = 6i32; +pub const WTSLogonTime: WTS_INFO_CLASS = 18i32; +pub const WTSOEMId: WTS_INFO_CLASS = 3i32; +pub const WTSOutgoingBytes: WTS_INFO_CLASS = 20i32; +pub const WTSOutgoingFrames: WTS_INFO_CLASS = 22i32; +pub const WTSReset: WTS_CONNECTSTATE_CLASS = 7i32; +pub const WTSSBX_ADDRESS_FAMILY_AF_INET: WTSSBX_ADDRESS_FAMILY = 1i32; +pub const WTSSBX_ADDRESS_FAMILY_AF_INET6: WTSSBX_ADDRESS_FAMILY = 2i32; +pub const WTSSBX_ADDRESS_FAMILY_AF_IPX: WTSSBX_ADDRESS_FAMILY = 3i32; +pub const WTSSBX_ADDRESS_FAMILY_AF_NETBIOS: WTSSBX_ADDRESS_FAMILY = 4i32; +pub const WTSSBX_ADDRESS_FAMILY_AF_UNSPEC: WTSSBX_ADDRESS_FAMILY = 0i32; +pub const WTSSBX_MACHINE_DRAIN_OFF: WTSSBX_MACHINE_DRAIN = 1i32; +pub const WTSSBX_MACHINE_DRAIN_ON: WTSSBX_MACHINE_DRAIN = 2i32; +pub const WTSSBX_MACHINE_DRAIN_UNSPEC: WTSSBX_MACHINE_DRAIN = 0i32; +pub const WTSSBX_MACHINE_SESSION_MODE_MULTIPLE: WTSSBX_MACHINE_SESSION_MODE = 2i32; +pub const WTSSBX_MACHINE_SESSION_MODE_SINGLE: WTSSBX_MACHINE_SESSION_MODE = 1i32; +pub const WTSSBX_MACHINE_SESSION_MODE_UNSPEC: WTSSBX_MACHINE_SESSION_MODE = 0i32; +pub const WTSSBX_MACHINE_STATE_READY: WTSSBX_MACHINE_STATE = 1i32; +pub const WTSSBX_MACHINE_STATE_SYNCHRONIZING: WTSSBX_MACHINE_STATE = 2i32; +pub const WTSSBX_MACHINE_STATE_UNSPEC: WTSSBX_MACHINE_STATE = 0i32; +pub const WTSSBX_NOTIFICATION_ADDED: WTSSBX_NOTIFICATION_TYPE = 4i32; +pub const WTSSBX_NOTIFICATION_CHANGED: WTSSBX_NOTIFICATION_TYPE = 2i32; +pub const WTSSBX_NOTIFICATION_REMOVED: WTSSBX_NOTIFICATION_TYPE = 1i32; +pub const WTSSBX_NOTIFICATION_RESYNC: WTSSBX_NOTIFICATION_TYPE = 8i32; +pub const WTSSBX_SESSION_STATE_ACTIVE: WTSSBX_SESSION_STATE = 1i32; +pub const WTSSBX_SESSION_STATE_DISCONNECTED: WTSSBX_SESSION_STATE = 2i32; +pub const WTSSBX_SESSION_STATE_UNSPEC: WTSSBX_SESSION_STATE = 0i32; +pub const WTSSessionAddressV4: WTS_INFO_CLASS = 28i32; +pub const WTSSessionId: WTS_INFO_CLASS = 4i32; +pub const WTSSessionInfo: WTS_INFO_CLASS = 24i32; +pub const WTSSessionInfoEx: WTS_INFO_CLASS = 25i32; +pub const WTSShadow: WTS_CONNECTSTATE_CLASS = 3i32; +pub const WTSTypeProcessInfoLevel0: WTS_TYPE_CLASS = 0i32; +pub const WTSTypeProcessInfoLevel1: WTS_TYPE_CLASS = 1i32; +pub const WTSTypeSessionInfoLevel1: WTS_TYPE_CLASS = 2i32; +pub const WTSUserConfigBrokenTimeoutSettings: WTS_CONFIG_CLASS = 10i32; +pub const WTSUserConfigInitialProgram: WTS_CONFIG_CLASS = 0i32; +pub const WTSUserConfigModemCallbackPhoneNumber: WTS_CONFIG_CLASS = 13i32; +pub const WTSUserConfigModemCallbackSettings: WTS_CONFIG_CLASS = 12i32; +pub const WTSUserConfigReconnectSettings: WTS_CONFIG_CLASS = 11i32; +pub const WTSUserConfigShadowingSettings: WTS_CONFIG_CLASS = 14i32; +pub const WTSUserConfigSourceSAM: WTS_CONFIG_SOURCE = 0i32; +pub const WTSUserConfigTerminalServerHomeDir: WTS_CONFIG_CLASS = 16i32; +pub const WTSUserConfigTerminalServerHomeDirDrive: WTS_CONFIG_CLASS = 17i32; +pub const WTSUserConfigTerminalServerProfilePath: WTS_CONFIG_CLASS = 15i32; +pub const WTSUserConfigTimeoutSettingsConnections: WTS_CONFIG_CLASS = 4i32; +pub const WTSUserConfigTimeoutSettingsDisconnections: WTS_CONFIG_CLASS = 5i32; +pub const WTSUserConfigTimeoutSettingsIdle: WTS_CONFIG_CLASS = 6i32; +pub const WTSUserConfigUser: WTS_CONFIG_CLASS = 19i32; +pub const WTSUserConfigWorkingDirectory: WTS_CONFIG_CLASS = 1i32; +pub const WTSUserConfigfAllowLogonTerminalServer: WTS_CONFIG_CLASS = 3i32; +pub const WTSUserConfigfDeviceClientDefaultPrinter: WTS_CONFIG_CLASS = 9i32; +pub const WTSUserConfigfDeviceClientDrives: WTS_CONFIG_CLASS = 7i32; +pub const WTSUserConfigfDeviceClientPrinters: WTS_CONFIG_CLASS = 8i32; +pub const WTSUserConfigfInheritInitialProgram: WTS_CONFIG_CLASS = 2i32; +pub const WTSUserConfigfTerminalServerRemoteHomeDir: WTS_CONFIG_CLASS = 18i32; +pub const WTSUserName: WTS_INFO_CLASS = 5i32; +pub const WTSValidationInfo: WTS_INFO_CLASS = 27i32; +pub const WTSVirtualClientData: WTS_VIRTUAL_CLASS = 0i32; +pub const WTSVirtualFileHandle: WTS_VIRTUAL_CLASS = 1i32; +pub const WTSWinStationName: WTS_INFO_CLASS = 6i32; +pub const WTSWorkingDirectory: WTS_INFO_CLASS = 2i32; +pub const WTS_CERT_TYPE_INVALID: WTS_CERT_TYPE = 0i32; +pub const WTS_CERT_TYPE_PROPRIETORY: WTS_CERT_TYPE = 1i32; +pub const WTS_CERT_TYPE_X509: WTS_CERT_TYPE = 2i32; +pub const WTS_CHANNEL_OPTION_DYNAMIC: u32 = 1u32; +pub const WTS_CHANNEL_OPTION_DYNAMIC_NO_COMPRESS: u32 = 8u32; +pub const WTS_CHANNEL_OPTION_DYNAMIC_PRI_HIGH: u32 = 4u32; +pub const WTS_CHANNEL_OPTION_DYNAMIC_PRI_LOW: u32 = 0u32; +pub const WTS_CHANNEL_OPTION_DYNAMIC_PRI_MED: u32 = 2u32; +pub const WTS_CHANNEL_OPTION_DYNAMIC_PRI_REAL: u32 = 6u32; +pub const WTS_CLIENTADDRESS_LENGTH: u32 = 30u32; +pub const WTS_CLIENTNAME_LENGTH: u32 = 20u32; +pub const WTS_CLIENT_PRODUCT_ID_LENGTH: u32 = 32u32; +pub const WTS_COMMENT_LENGTH: u32 = 60u32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const WTS_CURRENT_SERVER: super::super::Foundation::HANDLE = 0i32 as _; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const WTS_CURRENT_SERVER_HANDLE: super::super::Foundation::HANDLE = 0i32 as _; +pub const WTS_CURRENT_SERVER_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!(""); +pub const WTS_CURRENT_SESSION: u32 = 4294967295u32; +pub const WTS_DEVICE_NAME_LENGTH: u32 = 19u32; +pub const WTS_DIRECTORY_LENGTH: u32 = 256u32; +pub const WTS_DOMAIN_LENGTH: u32 = 255u32; +pub const WTS_DRAIN_IN_DRAIN: WTS_RCM_DRAIN_STATE = 1i32; +pub const WTS_DRAIN_NOT_IN_DRAIN: WTS_RCM_DRAIN_STATE = 2i32; +pub const WTS_DRAIN_STATE_NONE: WTS_RCM_DRAIN_STATE = 0i32; +pub const WTS_DRIVER_NAME_LENGTH: u32 = 8u32; +pub const WTS_DRIVE_LENGTH: u32 = 3u32; +pub const WTS_EVENT_ALL: u32 = 2147483647u32; +pub const WTS_EVENT_CONNECT: u32 = 8u32; +pub const WTS_EVENT_CREATE: u32 = 1u32; +pub const WTS_EVENT_DELETE: u32 = 2u32; +pub const WTS_EVENT_DISCONNECT: u32 = 16u32; +pub const WTS_EVENT_FLUSH: u32 = 2147483648u32; +pub const WTS_EVENT_LICENSE: u32 = 256u32; +pub const WTS_EVENT_LOGOFF: u32 = 64u32; +pub const WTS_EVENT_LOGON: u32 = 32u32; +pub const WTS_EVENT_NONE: u32 = 0u32; +pub const WTS_EVENT_RENAME: u32 = 4u32; +pub const WTS_EVENT_STATECHANGE: u32 = 128u32; +pub const WTS_IMEFILENAME_LENGTH: u32 = 32u32; +pub const WTS_INITIALPROGRAM_LENGTH: u32 = 256u32; +pub const WTS_KEY_EXCHANGE_ALG_DH: u32 = 2u32; +pub const WTS_KEY_EXCHANGE_ALG_RSA: u32 = 1u32; +pub const WTS_LICENSE_PREAMBLE_VERSION: u32 = 3u32; +pub const WTS_LICENSE_PROTOCOL_VERSION: u32 = 65536u32; +pub const WTS_LISTENER_CREATE: u32 = 1u32; +pub const WTS_LISTENER_NAME_LENGTH: u32 = 32u32; +pub const WTS_LISTENER_UPDATE: u32 = 16u32; +pub const WTS_LOGON_ERR_HANDLED_DONT_SHOW: WTS_LOGON_ERROR_REDIRECTOR_RESPONSE = 3i32; +pub const WTS_LOGON_ERR_HANDLED_DONT_SHOW_START_OVER: WTS_LOGON_ERROR_REDIRECTOR_RESPONSE = 4i32; +pub const WTS_LOGON_ERR_HANDLED_SHOW: WTS_LOGON_ERROR_REDIRECTOR_RESPONSE = 2i32; +pub const WTS_LOGON_ERR_INVALID: WTS_LOGON_ERROR_REDIRECTOR_RESPONSE = 0i32; +pub const WTS_LOGON_ERR_NOT_HANDLED: WTS_LOGON_ERROR_REDIRECTOR_RESPONSE = 1i32; +pub const WTS_MAX_CACHE_RESERVED: u32 = 20u32; +pub const WTS_MAX_COUNTERS: u32 = 100u32; +pub const WTS_MAX_DISPLAY_IOCTL_DATA: u32 = 256u32; +pub const WTS_MAX_PROTOCOL_CACHE: u32 = 4u32; +pub const WTS_MAX_RESERVED: u32 = 100u32; +pub const WTS_PASSWORD_LENGTH: u32 = 255u32; +pub const WTS_PERF_DISABLE_CURSORSETTINGS: u32 = 64u32; +pub const WTS_PERF_DISABLE_CURSOR_SHADOW: u32 = 32u32; +pub const WTS_PERF_DISABLE_FULLWINDOWDRAG: u32 = 2u32; +pub const WTS_PERF_DISABLE_MENUANIMATIONS: u32 = 4u32; +pub const WTS_PERF_DISABLE_NOTHING: u32 = 0u32; +pub const WTS_PERF_DISABLE_THEMING: u32 = 8u32; +pub const WTS_PERF_DISABLE_WALLPAPER: u32 = 1u32; +pub const WTS_PERF_ENABLE_DESKTOP_COMPOSITION: u32 = 256u32; +pub const WTS_PERF_ENABLE_ENHANCED_GRAPHICS: u32 = 16u32; +pub const WTS_PERF_ENABLE_FONT_SMOOTHING: u32 = 128u32; +pub const WTS_PROCESS_INFO_LEVEL_0: u32 = 0u32; +pub const WTS_PROCESS_INFO_LEVEL_1: u32 = 1u32; +pub const WTS_PROPERTY_DEFAULT_CONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DefaultConfig"); +pub const WTS_PROTOCOL_NAME_LENGTH: u32 = 8u32; +pub const WTS_PROTOCOL_TYPE_CONSOLE: u32 = 0u32; +pub const WTS_PROTOCOL_TYPE_ICA: u32 = 1u32; +pub const WTS_PROTOCOL_TYPE_RDP: u32 = 2u32; +pub const WTS_QUERY_ALLOWED_INITIAL_APP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc77d1b30_5be1_4c6b_a0e1_bd6d2e5c9fcc); +pub const WTS_QUERY_AUDIOENUM_DLL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9bf4fa97_c883_4c2a_80ab_5a39c9af00db); +pub const WTS_QUERY_LOGON_SCREEN_SIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8b8e0fe7_0804_4a0e_b279_8660b1df0049); +pub const WTS_QUERY_MF_FORMAT_SUPPORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x41869ad0_6332_4dc8_95d5_db749e2f1d94); +pub const WTS_SECURITY_ALL_ACCESS: WTS_SECURITY_FLAGS = 983999u32; +pub const WTS_SECURITY_CONNECT: WTS_SECURITY_FLAGS = 256u32; +pub const WTS_SECURITY_CURRENT_GUEST_ACCESS: WTS_SECURITY_FLAGS = 72u32; +pub const WTS_SECURITY_CURRENT_USER_ACCESS: WTS_SECURITY_FLAGS = 590u32; +pub const WTS_SECURITY_DISCONNECT: WTS_SECURITY_FLAGS = 512u32; +pub const WTS_SECURITY_GUEST_ACCESS: WTS_SECURITY_FLAGS = 32u32; +pub const WTS_SECURITY_LOGOFF: WTS_SECURITY_FLAGS = 64u32; +pub const WTS_SECURITY_LOGON: WTS_SECURITY_FLAGS = 32u32; +pub const WTS_SECURITY_MESSAGE: WTS_SECURITY_FLAGS = 128u32; +pub const WTS_SECURITY_QUERY_INFORMATION: WTS_SECURITY_FLAGS = 1u32; +pub const WTS_SECURITY_REMOTE_CONTROL: WTS_SECURITY_FLAGS = 16u32; +pub const WTS_SECURITY_RESET: WTS_SECURITY_FLAGS = 4u32; +pub const WTS_SECURITY_SET_INFORMATION: WTS_SECURITY_FLAGS = 2u32; +pub const WTS_SECURITY_USER_ACCESS: WTS_SECURITY_FLAGS = 329u32; +pub const WTS_SECURITY_VIRTUAL_CHANNELS: WTS_SECURITY_FLAGS = 8u32; +pub const WTS_SERVICE_NONE: WTS_RCM_SERVICE_STATE = 0i32; +pub const WTS_SERVICE_START: WTS_RCM_SERVICE_STATE = 1i32; +pub const WTS_SERVICE_STOP: WTS_RCM_SERVICE_STATE = 2i32; +pub const WTS_SESSIONSTATE_LOCK: u32 = 0u32; +pub const WTS_SESSIONSTATE_UNKNOWN: u32 = 4294967295u32; +pub const WTS_SESSIONSTATE_UNLOCK: u32 = 1u32; +pub const WTS_USERNAME_LENGTH: u32 = 255u32; +pub const WTS_VALUE_TYPE_BINARY: u32 = 3u32; +pub const WTS_VALUE_TYPE_GUID: u32 = 4u32; +pub const WTS_VALUE_TYPE_STRING: u32 = 2u32; +pub const WTS_VALUE_TYPE_ULONG: u32 = 1u32; +pub const WTS_WSD_FASTREBOOT: u32 = 16u32; +pub const WTS_WSD_LOGOFF: u32 = 1u32; +pub const WTS_WSD_POWEROFF: u32 = 8u32; +pub const WTS_WSD_REBOOT: u32 = 4u32; +pub const WTS_WSD_SHUTDOWN: u32 = 2u32; +pub const Workspace: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4f1dfca6_3aad_48e1_8406_4bc21a501d7c); +pub type AAAccountingDataType = i32; +pub type AAAuthSchemes = i32; +pub type AATrustClassID = i32; +pub type AE_POSITION_FLAGS = i32; +pub type CLIENT_MESSAGE_TYPE = i32; +pub type CONNECTION_CHANGE_NOTIFICATION = i32; +pub type KeyCombinationType = i32; +pub type PLUGIN_TYPE = i32; +pub type PasswordEncodingType = i32; +pub type PolicyAttributeType = i32; +pub type RDV_TASK_STATUS = i32; +pub type RD_FARM_TYPE = i32; +pub type RemoteActionType = i32; +pub type SESSION_TIMEOUT_ACTION_TYPE = i32; +pub type SnapshotEncodingType = i32; +pub type SnapshotFormatType = i32; +pub type TARGET_CHANGE_TYPE = i32; +pub type TARGET_OWNER = i32; +pub type TARGET_PATCH_STATE = i32; +pub type TARGET_STATE = i32; +pub type TARGET_TYPE = i32; +pub type TSPUB_PLUGIN_PD_ASSIGNMENT_TYPE = i32; +pub type TSPUB_PLUGIN_PD_RESOLUTION_TYPE = i32; +pub type TSSB_NOTIFICATION_TYPE = i32; +pub type TSSD_AddrV46Type = i32; +pub type TSSESSION_STATE = i32; +pub type TS_SB_SORT_BY = i32; +pub type VM_HOST_NOTIFY_STATUS = i32; +pub type VM_NOTIFY_STATUS = i32; +pub type WRDS_CONNECTION_SETTING_LEVEL = i32; +pub type WRDS_LISTENER_SETTING_LEVEL = i32; +pub type WRDS_SETTING_LEVEL = i32; +pub type WRDS_SETTING_STATUS = i32; +pub type WRDS_SETTING_TYPE = i32; +pub type WRdsGraphicsChannelType = i32; +pub type WTSSBX_ADDRESS_FAMILY = i32; +pub type WTSSBX_MACHINE_DRAIN = i32; +pub type WTSSBX_MACHINE_SESSION_MODE = i32; +pub type WTSSBX_MACHINE_STATE = i32; +pub type WTSSBX_NOTIFICATION_TYPE = i32; +pub type WTSSBX_SESSION_STATE = i32; +pub type WTS_CERT_TYPE = i32; +pub type WTS_CONFIG_CLASS = i32; +pub type WTS_CONFIG_SOURCE = i32; +pub type WTS_CONNECTSTATE_CLASS = i32; +pub type WTS_INFO_CLASS = i32; +pub type WTS_LOGON_ERROR_REDIRECTOR_RESPONSE = i32; +pub type WTS_RCM_DRAIN_STATE = i32; +pub type WTS_RCM_SERVICE_STATE = i32; +pub type WTS_SECURITY_FLAGS = u32; +pub type WTS_TYPE_CLASS = i32; +pub type WTS_VIRTUAL_CLASS = i32; +#[repr(C)] +pub struct AAAccountingData { + pub userName: ::windows_sys::core::BSTR, + pub clientName: ::windows_sys::core::BSTR, + pub authType: AAAuthSchemes, + pub resourceName: ::windows_sys::core::BSTR, + pub portNumber: i32, + pub protocolName: ::windows_sys::core::BSTR, + pub numberOfBytesReceived: i32, + pub numberOfBytesTransfered: i32, + pub reasonForDisconnect: ::windows_sys::core::BSTR, + pub mainSessionId: ::windows_sys::core::GUID, + pub subSessionId: i32, +} +impl ::core::marker::Copy for AAAccountingData {} +impl ::core::clone::Clone for AAAccountingData { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AE_CURRENT_POSITION { + pub u64DevicePosition: u64, + pub u64StreamPosition: u64, + pub u64PaddingFrames: u64, + pub hnsQPCPosition: i64, + pub f32FramesPerSecond: f32, + pub Flag: AE_POSITION_FLAGS, +} +impl ::core::marker::Copy for AE_CURRENT_POSITION {} +impl ::core::clone::Clone for AE_CURRENT_POSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BITMAP_RENDERER_STATISTICS { + pub dwFramesDelivered: u32, + pub dwFramesDropped: u32, +} +impl ::core::marker::Copy for BITMAP_RENDERER_STATISTICS {} +impl ::core::clone::Clone for BITMAP_RENDERER_STATISTICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CHANNEL_DEF { + pub name: [u8; 8], + pub options: u32, +} +impl ::core::marker::Copy for CHANNEL_DEF {} +impl ::core::clone::Clone for CHANNEL_DEF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CHANNEL_ENTRY_POINTS { + pub cbSize: u32, + pub protocolVersion: u32, + pub pVirtualChannelInit: PVIRTUALCHANNELINIT, + pub pVirtualChannelOpen: PVIRTUALCHANNELOPEN, + pub pVirtualChannelClose: PVIRTUALCHANNELCLOSE, + pub pVirtualChannelWrite: PVIRTUALCHANNELWRITE, +} +impl ::core::marker::Copy for CHANNEL_ENTRY_POINTS {} +impl ::core::clone::Clone for CHANNEL_ENTRY_POINTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CHANNEL_PDU_HEADER { + pub length: u32, + pub flags: u32, +} +impl ::core::marker::Copy for CHANNEL_PDU_HEADER {} +impl ::core::clone::Clone for CHANNEL_PDU_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CLIENT_DISPLAY { + pub HorizontalResolution: u32, + pub VerticalResolution: u32, + pub ColorDepth: u32, +} +impl ::core::marker::Copy for CLIENT_DISPLAY {} +impl ::core::clone::Clone for CLIENT_DISPLAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRODUCT_INFOA { + pub CompanyName: [u8; 256], + pub ProductID: [u8; 4], +} +impl ::core::marker::Copy for PRODUCT_INFOA {} +impl ::core::clone::Clone for PRODUCT_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PRODUCT_INFOW { + pub CompanyName: [u16; 256], + pub ProductID: [u16; 4], +} +impl ::core::marker::Copy for PRODUCT_INFOW {} +impl ::core::clone::Clone for PRODUCT_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RFX_GFX_MONITOR_INFO { + pub left: i32, + pub top: i32, + pub right: i32, + pub bottom: i32, + pub physicalWidth: u32, + pub physicalHeight: u32, + pub orientation: u32, + pub primary: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RFX_GFX_MONITOR_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RFX_GFX_MONITOR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RFX_GFX_MSG_CLIENT_DESKTOP_INFO_REQUEST { + pub channelHdr: RFX_GFX_MSG_HEADER, +} +impl ::core::marker::Copy for RFX_GFX_MSG_CLIENT_DESKTOP_INFO_REQUEST {} +impl ::core::clone::Clone for RFX_GFX_MSG_CLIENT_DESKTOP_INFO_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RFX_GFX_MSG_CLIENT_DESKTOP_INFO_RESPONSE { + pub channelHdr: RFX_GFX_MSG_HEADER, + pub reserved: u32, + pub monitorCount: u32, + pub MonitorData: [RFX_GFX_MONITOR_INFO; 16], + pub clientUniqueId: [u16; 32], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RFX_GFX_MSG_CLIENT_DESKTOP_INFO_RESPONSE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RFX_GFX_MSG_CLIENT_DESKTOP_INFO_RESPONSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RFX_GFX_MSG_DESKTOP_CONFIG_CHANGE_CONFIRM { + pub channelHdr: RFX_GFX_MSG_HEADER, +} +impl ::core::marker::Copy for RFX_GFX_MSG_DESKTOP_CONFIG_CHANGE_CONFIRM {} +impl ::core::clone::Clone for RFX_GFX_MSG_DESKTOP_CONFIG_CHANGE_CONFIRM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct RFX_GFX_MSG_DESKTOP_CONFIG_CHANGE_NOTIFY { + pub channelHdr: RFX_GFX_MSG_HEADER, + pub ulWidth: u32, + pub ulHeight: u32, + pub ulBpp: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for RFX_GFX_MSG_DESKTOP_CONFIG_CHANGE_NOTIFY {} +impl ::core::clone::Clone for RFX_GFX_MSG_DESKTOP_CONFIG_CHANGE_NOTIFY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct RFX_GFX_MSG_DESKTOP_INPUT_RESET { + pub channelHdr: RFX_GFX_MSG_HEADER, + pub ulWidth: u32, + pub ulHeight: u32, +} +impl ::core::marker::Copy for RFX_GFX_MSG_DESKTOP_INPUT_RESET {} +impl ::core::clone::Clone for RFX_GFX_MSG_DESKTOP_INPUT_RESET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RFX_GFX_MSG_DESKTOP_RESEND_REQUEST { + pub channelHdr: RFX_GFX_MSG_HEADER, + pub RedrawRect: RFX_GFX_RECT, +} +impl ::core::marker::Copy for RFX_GFX_MSG_DESKTOP_RESEND_REQUEST {} +impl ::core::clone::Clone for RFX_GFX_MSG_DESKTOP_RESEND_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct RFX_GFX_MSG_DISCONNECT_NOTIFY { + pub channelHdr: RFX_GFX_MSG_HEADER, + pub DisconnectReason: u32, +} +impl ::core::marker::Copy for RFX_GFX_MSG_DISCONNECT_NOTIFY {} +impl ::core::clone::Clone for RFX_GFX_MSG_DISCONNECT_NOTIFY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct RFX_GFX_MSG_HEADER { + pub uMSGType: u16, + pub cbSize: u16, +} +impl ::core::marker::Copy for RFX_GFX_MSG_HEADER {} +impl ::core::clone::Clone for RFX_GFX_MSG_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RFX_GFX_MSG_RDP_DATA { + pub channelHdr: RFX_GFX_MSG_HEADER, + pub rdpData: [u8; 1], +} +impl ::core::marker::Copy for RFX_GFX_MSG_RDP_DATA {} +impl ::core::clone::Clone for RFX_GFX_MSG_RDP_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct RFX_GFX_RECT { + pub left: i32, + pub top: i32, + pub right: i32, + pub bottom: i32, +} +impl ::core::marker::Copy for RFX_GFX_RECT {} +impl ::core::clone::Clone for RFX_GFX_RECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TSSD_ConnectionPoint { + pub ServerAddressB: [u8; 16], + pub AddressType: TSSD_AddrV46Type, + pub PortNumber: u16, + pub AddressScope: u32, +} +impl ::core::marker::Copy for TSSD_ConnectionPoint {} +impl ::core::clone::Clone for TSSD_ConnectionPoint { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VM_NOTIFY_ENTRY { + pub VmName: [u16; 128], + pub VmHost: [u16; 128], +} +impl ::core::marker::Copy for VM_NOTIFY_ENTRY {} +impl ::core::clone::Clone for VM_NOTIFY_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VM_NOTIFY_INFO { + pub dwNumEntries: u32, + pub ppVmEntries: *mut *mut VM_NOTIFY_ENTRY, +} +impl ::core::marker::Copy for VM_NOTIFY_INFO {} +impl ::core::clone::Clone for VM_NOTIFY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VM_PATCH_INFO { + pub dwNumEntries: u32, + pub pVmNames: *mut ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for VM_PATCH_INFO {} +impl ::core::clone::Clone for VM_PATCH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WRDS_CONNECTION_SETTING { + pub WRdsConnectionSettings1: WRDS_CONNECTION_SETTINGS_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WRDS_CONNECTION_SETTING {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WRDS_CONNECTION_SETTING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WRDS_CONNECTION_SETTINGS { + pub WRdsConnectionSettingLevel: WRDS_CONNECTION_SETTING_LEVEL, + pub WRdsConnectionSetting: WRDS_CONNECTION_SETTING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WRDS_CONNECTION_SETTINGS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WRDS_CONNECTION_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WRDS_CONNECTION_SETTINGS_1 { + pub fInheritInitialProgram: super::super::Foundation::BOOLEAN, + pub fInheritColorDepth: super::super::Foundation::BOOLEAN, + pub fHideTitleBar: super::super::Foundation::BOOLEAN, + pub fInheritAutoLogon: super::super::Foundation::BOOLEAN, + pub fMaximizeShell: super::super::Foundation::BOOLEAN, + pub fDisablePNP: super::super::Foundation::BOOLEAN, + pub fPasswordIsScPin: super::super::Foundation::BOOLEAN, + pub fPromptForPassword: super::super::Foundation::BOOLEAN, + pub fDisableCpm: super::super::Foundation::BOOLEAN, + pub fDisableCdm: super::super::Foundation::BOOLEAN, + pub fDisableCcm: super::super::Foundation::BOOLEAN, + pub fDisableLPT: super::super::Foundation::BOOLEAN, + pub fDisableClip: super::super::Foundation::BOOLEAN, + pub fResetBroken: super::super::Foundation::BOOLEAN, + pub fDisableEncryption: super::super::Foundation::BOOLEAN, + pub fDisableAutoReconnect: super::super::Foundation::BOOLEAN, + pub fDisableCtrlAltDel: super::super::Foundation::BOOLEAN, + pub fDoubleClickDetect: super::super::Foundation::BOOLEAN, + pub fEnableWindowsKey: super::super::Foundation::BOOLEAN, + pub fUsingSavedCreds: super::super::Foundation::BOOLEAN, + pub fMouse: super::super::Foundation::BOOLEAN, + pub fNoAudioPlayback: super::super::Foundation::BOOLEAN, + pub fRemoteConsoleAudio: super::super::Foundation::BOOLEAN, + pub EncryptionLevel: u8, + pub ColorDepth: u16, + pub ProtocolType: u16, + pub HRes: u16, + pub VRes: u16, + pub ClientProductId: u16, + pub OutBufCountHost: u16, + pub OutBufCountClient: u16, + pub OutBufLength: u16, + pub KeyboardLayout: u32, + pub MaxConnectionTime: u32, + pub MaxDisconnectionTime: u32, + pub MaxIdleTime: u32, + pub PerformanceFlags: u32, + pub KeyboardType: u32, + pub KeyboardSubType: u32, + pub KeyboardFunctionKey: u32, + pub ActiveInputLocale: u32, + pub SerialNumber: u32, + pub ClientAddressFamily: u32, + pub ClientBuildNumber: u32, + pub ClientSessionId: u32, + pub WorkDirectory: [u16; 257], + pub InitialProgram: [u16; 257], + pub UserName: [u16; 256], + pub Domain: [u16; 256], + pub Password: [u16; 256], + pub ProtocolName: [u16; 9], + pub DisplayDriverName: [u16; 9], + pub DisplayDeviceName: [u16; 20], + pub imeFileName: [u16; 33], + pub AudioDriverName: [u16; 9], + pub ClientName: [u16; 21], + pub ClientAddress: [u16; 31], + pub ClientDirectory: [u16; 257], + pub ClientDigProductId: [u16; 33], + pub ClientSockAddress: WTS_SOCKADDR, + pub ClientTimeZone: WTS_TIME_ZONE_INFORMATION, + pub WRdsListenerSettings: WRDS_LISTENER_SETTINGS, + pub EventLogActivityId: ::windows_sys::core::GUID, + pub ContextSize: u32, + pub ContextData: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WRDS_CONNECTION_SETTINGS_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WRDS_CONNECTION_SETTINGS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WRDS_DYNAMIC_TIME_ZONE_INFORMATION { + pub Bias: i32, + pub StandardName: [u16; 32], + pub StandardDate: WTS_SYSTEMTIME, + pub StandardBias: i32, + pub DaylightName: [u16; 32], + pub DaylightDate: WTS_SYSTEMTIME, + pub DaylightBias: i32, + pub TimeZoneKeyName: [u16; 128], + pub DynamicDaylightTimeDisabled: u16, +} +impl ::core::marker::Copy for WRDS_DYNAMIC_TIME_ZONE_INFORMATION {} +impl ::core::clone::Clone for WRDS_DYNAMIC_TIME_ZONE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WRDS_LISTENER_SETTING { + pub WRdsListenerSettings1: WRDS_LISTENER_SETTINGS_1, +} +impl ::core::marker::Copy for WRDS_LISTENER_SETTING {} +impl ::core::clone::Clone for WRDS_LISTENER_SETTING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WRDS_LISTENER_SETTINGS { + pub WRdsListenerSettingLevel: WRDS_LISTENER_SETTING_LEVEL, + pub WRdsListenerSetting: WRDS_LISTENER_SETTING, +} +impl ::core::marker::Copy for WRDS_LISTENER_SETTINGS {} +impl ::core::clone::Clone for WRDS_LISTENER_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WRDS_LISTENER_SETTINGS_1 { + pub MaxProtocolListenerConnectionCount: u32, + pub SecurityDescriptorSize: u32, + pub pSecurityDescriptor: *mut u8, +} +impl ::core::marker::Copy for WRDS_LISTENER_SETTINGS_1 {} +impl ::core::clone::Clone for WRDS_LISTENER_SETTINGS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union WRDS_SETTING { + pub WRdsSettings1: WRDS_SETTINGS_1, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WRDS_SETTING {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WRDS_SETTING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WRDS_SETTINGS { + pub WRdsSettingType: WRDS_SETTING_TYPE, + pub WRdsSettingLevel: WRDS_SETTING_LEVEL, + pub WRdsSetting: WRDS_SETTING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WRDS_SETTINGS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WRDS_SETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WRDS_SETTINGS_1 { + pub WRdsDisableClipStatus: WRDS_SETTING_STATUS, + pub WRdsDisableClipValue: u32, + pub WRdsDisableLPTStatus: WRDS_SETTING_STATUS, + pub WRdsDisableLPTValue: u32, + pub WRdsDisableCcmStatus: WRDS_SETTING_STATUS, + pub WRdsDisableCcmValue: u32, + pub WRdsDisableCdmStatus: WRDS_SETTING_STATUS, + pub WRdsDisableCdmValue: u32, + pub WRdsDisableCpmStatus: WRDS_SETTING_STATUS, + pub WRdsDisableCpmValue: u32, + pub WRdsDisablePnpStatus: WRDS_SETTING_STATUS, + pub WRdsDisablePnpValue: u32, + pub WRdsEncryptionLevelStatus: WRDS_SETTING_STATUS, + pub WRdsEncryptionValue: u32, + pub WRdsColorDepthStatus: WRDS_SETTING_STATUS, + pub WRdsColorDepthValue: u32, + pub WRdsDisableAutoReconnecetStatus: WRDS_SETTING_STATUS, + pub WRdsDisableAutoReconnecetValue: u32, + pub WRdsDisableEncryptionStatus: WRDS_SETTING_STATUS, + pub WRdsDisableEncryptionValue: u32, + pub WRdsResetBrokenStatus: WRDS_SETTING_STATUS, + pub WRdsResetBrokenValue: u32, + pub WRdsMaxIdleTimeStatus: WRDS_SETTING_STATUS, + pub WRdsMaxIdleTimeValue: u32, + pub WRdsMaxDisconnectTimeStatus: WRDS_SETTING_STATUS, + pub WRdsMaxDisconnectTimeValue: u32, + pub WRdsMaxConnectTimeStatus: WRDS_SETTING_STATUS, + pub WRdsMaxConnectTimeValue: u32, + pub WRdsKeepAliveStatus: WRDS_SETTING_STATUS, + pub WRdsKeepAliveStartValue: super::super::Foundation::BOOLEAN, + pub WRdsKeepAliveIntervalValue: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WRDS_SETTINGS_1 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WRDS_SETTINGS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSCLIENTA { + pub ClientName: [u8; 21], + pub Domain: [u8; 18], + pub UserName: [u8; 21], + pub WorkDirectory: [u8; 261], + pub InitialProgram: [u8; 261], + pub EncryptionLevel: u8, + pub ClientAddressFamily: u32, + pub ClientAddress: [u16; 31], + pub HRes: u16, + pub VRes: u16, + pub ColorDepth: u16, + pub ClientDirectory: [u8; 261], + pub ClientBuildNumber: u32, + pub ClientHardwareId: u32, + pub ClientProductId: u16, + pub OutBufCountHost: u16, + pub OutBufCountClient: u16, + pub OutBufLength: u16, + pub DeviceId: [u8; 261], +} +impl ::core::marker::Copy for WTSCLIENTA {} +impl ::core::clone::Clone for WTSCLIENTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSCLIENTW { + pub ClientName: [u16; 21], + pub Domain: [u16; 18], + pub UserName: [u16; 21], + pub WorkDirectory: [u16; 261], + pub InitialProgram: [u16; 261], + pub EncryptionLevel: u8, + pub ClientAddressFamily: u32, + pub ClientAddress: [u16; 31], + pub HRes: u16, + pub VRes: u16, + pub ColorDepth: u16, + pub ClientDirectory: [u16; 261], + pub ClientBuildNumber: u32, + pub ClientHardwareId: u32, + pub ClientProductId: u16, + pub OutBufCountHost: u16, + pub OutBufCountClient: u16, + pub OutBufLength: u16, + pub DeviceId: [u16; 261], +} +impl ::core::marker::Copy for WTSCLIENTW {} +impl ::core::clone::Clone for WTSCLIENTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSCONFIGINFOA { + pub version: u32, + pub fConnectClientDrivesAtLogon: u32, + pub fConnectPrinterAtLogon: u32, + pub fDisablePrinterRedirection: u32, + pub fDisableDefaultMainClientPrinter: u32, + pub ShadowSettings: u32, + pub LogonUserName: [u8; 21], + pub LogonDomain: [u8; 18], + pub WorkDirectory: [u8; 261], + pub InitialProgram: [u8; 261], + pub ApplicationName: [u8; 261], +} +impl ::core::marker::Copy for WTSCONFIGINFOA {} +impl ::core::clone::Clone for WTSCONFIGINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSCONFIGINFOW { + pub version: u32, + pub fConnectClientDrivesAtLogon: u32, + pub fConnectPrinterAtLogon: u32, + pub fDisablePrinterRedirection: u32, + pub fDisableDefaultMainClientPrinter: u32, + pub ShadowSettings: u32, + pub LogonUserName: [u16; 21], + pub LogonDomain: [u16; 18], + pub WorkDirectory: [u16; 261], + pub InitialProgram: [u16; 261], + pub ApplicationName: [u16; 261], +} +impl ::core::marker::Copy for WTSCONFIGINFOW {} +impl ::core::clone::Clone for WTSCONFIGINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSINFOA { + pub State: WTS_CONNECTSTATE_CLASS, + pub SessionId: u32, + pub IncomingBytes: u32, + pub OutgoingBytes: u32, + pub IncomingFrames: u32, + pub OutgoingFrames: u32, + pub IncomingCompressedBytes: u32, + pub OutgoingCompressedBy: u32, + pub WinStationName: [u8; 32], + pub Domain: [u8; 17], + pub UserName: [u8; 21], + pub ConnectTime: i64, + pub DisconnectTime: i64, + pub LastInputTime: i64, + pub LogonTime: i64, + pub CurrentTime: i64, +} +impl ::core::marker::Copy for WTSINFOA {} +impl ::core::clone::Clone for WTSINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSINFOEXA { + pub Level: u32, + pub Data: WTSINFOEX_LEVEL_A, +} +impl ::core::marker::Copy for WTSINFOEXA {} +impl ::core::clone::Clone for WTSINFOEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSINFOEXW { + pub Level: u32, + pub Data: WTSINFOEX_LEVEL_W, +} +impl ::core::marker::Copy for WTSINFOEXW {} +impl ::core::clone::Clone for WTSINFOEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSINFOEX_LEVEL1_A { + pub SessionId: u32, + pub SessionState: WTS_CONNECTSTATE_CLASS, + pub SessionFlags: i32, + pub WinStationName: [u8; 33], + pub UserName: [u8; 21], + pub DomainName: [u8; 18], + pub LogonTime: i64, + pub ConnectTime: i64, + pub DisconnectTime: i64, + pub LastInputTime: i64, + pub CurrentTime: i64, + pub IncomingBytes: u32, + pub OutgoingBytes: u32, + pub IncomingFrames: u32, + pub OutgoingFrames: u32, + pub IncomingCompressedBytes: u32, + pub OutgoingCompressedBytes: u32, +} +impl ::core::marker::Copy for WTSINFOEX_LEVEL1_A {} +impl ::core::clone::Clone for WTSINFOEX_LEVEL1_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSINFOEX_LEVEL1_W { + pub SessionId: u32, + pub SessionState: WTS_CONNECTSTATE_CLASS, + pub SessionFlags: i32, + pub WinStationName: [u16; 33], + pub UserName: [u16; 21], + pub DomainName: [u16; 18], + pub LogonTime: i64, + pub ConnectTime: i64, + pub DisconnectTime: i64, + pub LastInputTime: i64, + pub CurrentTime: i64, + pub IncomingBytes: u32, + pub OutgoingBytes: u32, + pub IncomingFrames: u32, + pub OutgoingFrames: u32, + pub IncomingCompressedBytes: u32, + pub OutgoingCompressedBytes: u32, +} +impl ::core::marker::Copy for WTSINFOEX_LEVEL1_W {} +impl ::core::clone::Clone for WTSINFOEX_LEVEL1_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WTSINFOEX_LEVEL_A { + pub WTSInfoExLevel1: WTSINFOEX_LEVEL1_A, +} +impl ::core::marker::Copy for WTSINFOEX_LEVEL_A {} +impl ::core::clone::Clone for WTSINFOEX_LEVEL_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WTSINFOEX_LEVEL_W { + pub WTSInfoExLevel1: WTSINFOEX_LEVEL1_W, +} +impl ::core::marker::Copy for WTSINFOEX_LEVEL_W {} +impl ::core::clone::Clone for WTSINFOEX_LEVEL_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSINFOW { + pub State: WTS_CONNECTSTATE_CLASS, + pub SessionId: u32, + pub IncomingBytes: u32, + pub OutgoingBytes: u32, + pub IncomingFrames: u32, + pub OutgoingFrames: u32, + pub IncomingCompressedBytes: u32, + pub OutgoingCompressedBytes: u32, + pub WinStationName: [u16; 32], + pub Domain: [u16; 17], + pub UserName: [u16; 21], + pub ConnectTime: i64, + pub DisconnectTime: i64, + pub LastInputTime: i64, + pub LogonTime: i64, + pub CurrentTime: i64, +} +impl ::core::marker::Copy for WTSINFOW {} +impl ::core::clone::Clone for WTSINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSLISTENERCONFIGA { + pub version: u32, + pub fEnableListener: u32, + pub MaxConnectionCount: u32, + pub fPromptForPassword: u32, + pub fInheritColorDepth: u32, + pub ColorDepth: u32, + pub fInheritBrokenTimeoutSettings: u32, + pub BrokenTimeoutSettings: u32, + pub fDisablePrinterRedirection: u32, + pub fDisableDriveRedirection: u32, + pub fDisableComPortRedirection: u32, + pub fDisableLPTPortRedirection: u32, + pub fDisableClipboardRedirection: u32, + pub fDisableAudioRedirection: u32, + pub fDisablePNPRedirection: u32, + pub fDisableDefaultMainClientPrinter: u32, + pub LanAdapter: u32, + pub PortNumber: u32, + pub fInheritShadowSettings: u32, + pub ShadowSettings: u32, + pub TimeoutSettingsConnection: u32, + pub TimeoutSettingsDisconnection: u32, + pub TimeoutSettingsIdle: u32, + pub SecurityLayer: u32, + pub MinEncryptionLevel: u32, + pub UserAuthentication: u32, + pub Comment: [u8; 61], + pub LogonUserName: [u8; 21], + pub LogonDomain: [u8; 18], + pub WorkDirectory: [u8; 261], + pub InitialProgram: [u8; 261], +} +impl ::core::marker::Copy for WTSLISTENERCONFIGA {} +impl ::core::clone::Clone for WTSLISTENERCONFIGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSLISTENERCONFIGW { + pub version: u32, + pub fEnableListener: u32, + pub MaxConnectionCount: u32, + pub fPromptForPassword: u32, + pub fInheritColorDepth: u32, + pub ColorDepth: u32, + pub fInheritBrokenTimeoutSettings: u32, + pub BrokenTimeoutSettings: u32, + pub fDisablePrinterRedirection: u32, + pub fDisableDriveRedirection: u32, + pub fDisableComPortRedirection: u32, + pub fDisableLPTPortRedirection: u32, + pub fDisableClipboardRedirection: u32, + pub fDisableAudioRedirection: u32, + pub fDisablePNPRedirection: u32, + pub fDisableDefaultMainClientPrinter: u32, + pub LanAdapter: u32, + pub PortNumber: u32, + pub fInheritShadowSettings: u32, + pub ShadowSettings: u32, + pub TimeoutSettingsConnection: u32, + pub TimeoutSettingsDisconnection: u32, + pub TimeoutSettingsIdle: u32, + pub SecurityLayer: u32, + pub MinEncryptionLevel: u32, + pub UserAuthentication: u32, + pub Comment: [u16; 61], + pub LogonUserName: [u16; 21], + pub LogonDomain: [u16; 18], + pub WorkDirectory: [u16; 261], + pub InitialProgram: [u16; 261], +} +impl ::core::marker::Copy for WTSLISTENERCONFIGW {} +impl ::core::clone::Clone for WTSLISTENERCONFIGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSSBX_IP_ADDRESS { + pub AddressFamily: WTSSBX_ADDRESS_FAMILY, + pub Address: [u8; 16], + pub PortNumber: u16, + pub dwScope: u32, +} +impl ::core::marker::Copy for WTSSBX_IP_ADDRESS {} +impl ::core::clone::Clone for WTSSBX_IP_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSSBX_MACHINE_CONNECT_INFO { + pub wczMachineFQDN: [u16; 257], + pub wczMachineNetBiosName: [u16; 17], + pub dwNumOfIPAddr: u32, + pub IPaddr: [WTSSBX_IP_ADDRESS; 12], +} +impl ::core::marker::Copy for WTSSBX_MACHINE_CONNECT_INFO {} +impl ::core::clone::Clone for WTSSBX_MACHINE_CONNECT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSSBX_MACHINE_INFO { + pub ClientConnectInfo: WTSSBX_MACHINE_CONNECT_INFO, + pub wczFarmName: [u16; 257], + pub InternalIPAddress: WTSSBX_IP_ADDRESS, + pub dwMaxSessionsLimit: u32, + pub ServerWeight: u32, + pub SingleSessionMode: WTSSBX_MACHINE_SESSION_MODE, + pub InDrain: WTSSBX_MACHINE_DRAIN, + pub MachineState: WTSSBX_MACHINE_STATE, +} +impl ::core::marker::Copy for WTSSBX_MACHINE_INFO {} +impl ::core::clone::Clone for WTSSBX_MACHINE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WTSSBX_SESSION_INFO { + pub wszUserName: [u16; 105], + pub wszDomainName: [u16; 257], + pub ApplicationType: [u16; 257], + pub dwSessionId: u32, + pub CreateTime: super::super::Foundation::FILETIME, + pub DisconnectTime: super::super::Foundation::FILETIME, + pub SessionState: WTSSBX_SESSION_STATE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WTSSBX_SESSION_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WTSSBX_SESSION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSSESSION_NOTIFICATION { + pub cbSize: u32, + pub dwSessionId: u32, +} +impl ::core::marker::Copy for WTSSESSION_NOTIFICATION {} +impl ::core::clone::Clone for WTSSESSION_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSUSERCONFIGA { + pub Source: u32, + pub InheritInitialProgram: u32, + pub AllowLogonTerminalServer: u32, + pub TimeoutSettingsConnections: u32, + pub TimeoutSettingsDisconnections: u32, + pub TimeoutSettingsIdle: u32, + pub DeviceClientDrives: u32, + pub DeviceClientPrinters: u32, + pub ClientDefaultPrinter: u32, + pub BrokenTimeoutSettings: u32, + pub ReconnectSettings: u32, + pub ShadowingSettings: u32, + pub TerminalServerRemoteHomeDir: u32, + pub InitialProgram: [u8; 261], + pub WorkDirectory: [u8; 261], + pub TerminalServerProfilePath: [u8; 261], + pub TerminalServerHomeDir: [u8; 261], + pub TerminalServerHomeDirDrive: [u8; 4], +} +impl ::core::marker::Copy for WTSUSERCONFIGA {} +impl ::core::clone::Clone for WTSUSERCONFIGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTSUSERCONFIGW { + pub Source: u32, + pub InheritInitialProgram: u32, + pub AllowLogonTerminalServer: u32, + pub TimeoutSettingsConnections: u32, + pub TimeoutSettingsDisconnections: u32, + pub TimeoutSettingsIdle: u32, + pub DeviceClientDrives: u32, + pub DeviceClientPrinters: u32, + pub ClientDefaultPrinter: u32, + pub BrokenTimeoutSettings: u32, + pub ReconnectSettings: u32, + pub ShadowingSettings: u32, + pub TerminalServerRemoteHomeDir: u32, + pub InitialProgram: [u16; 261], + pub WorkDirectory: [u16; 261], + pub TerminalServerProfilePath: [u16; 261], + pub TerminalServerHomeDir: [u16; 261], + pub TerminalServerHomeDirDrive: [u16; 4], +} +impl ::core::marker::Copy for WTSUSERCONFIGW {} +impl ::core::clone::Clone for WTSUSERCONFIGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_CACHE_STATS { + pub Specific: u32, + pub Data: WTS_CACHE_STATS_UN, + pub ProtocolType: u16, + pub Length: u16, +} +impl ::core::marker::Copy for WTS_CACHE_STATS {} +impl ::core::clone::Clone for WTS_CACHE_STATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WTS_CACHE_STATS_UN { + pub ProtocolCache: [WTS_PROTOCOL_CACHE; 4], + pub TShareCacheStats: u32, + pub Reserved: [u32; 20], +} +impl ::core::marker::Copy for WTS_CACHE_STATS_UN {} +impl ::core::clone::Clone for WTS_CACHE_STATS_UN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_CLIENT_ADDRESS { + pub AddressFamily: u32, + pub Address: [u8; 20], +} +impl ::core::marker::Copy for WTS_CLIENT_ADDRESS {} +impl ::core::clone::Clone for WTS_CLIENT_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WTS_CLIENT_DATA { + pub fDisableCtrlAltDel: super::super::Foundation::BOOLEAN, + pub fDoubleClickDetect: super::super::Foundation::BOOLEAN, + pub fEnableWindowsKey: super::super::Foundation::BOOLEAN, + pub fHideTitleBar: super::super::Foundation::BOOLEAN, + pub fInheritAutoLogon: super::super::Foundation::BOOL, + pub fPromptForPassword: super::super::Foundation::BOOLEAN, + pub fUsingSavedCreds: super::super::Foundation::BOOLEAN, + pub Domain: [u16; 256], + pub UserName: [u16; 256], + pub Password: [u16; 256], + pub fPasswordIsScPin: super::super::Foundation::BOOLEAN, + pub fInheritInitialProgram: super::super::Foundation::BOOL, + pub WorkDirectory: [u16; 257], + pub InitialProgram: [u16; 257], + pub fMaximizeShell: super::super::Foundation::BOOLEAN, + pub EncryptionLevel: u8, + pub PerformanceFlags: u32, + pub ProtocolName: [u16; 9], + pub ProtocolType: u16, + pub fInheritColorDepth: super::super::Foundation::BOOL, + pub HRes: u16, + pub VRes: u16, + pub ColorDepth: u16, + pub DisplayDriverName: [u16; 9], + pub DisplayDeviceName: [u16; 20], + pub fMouse: super::super::Foundation::BOOLEAN, + pub KeyboardLayout: u32, + pub KeyboardType: u32, + pub KeyboardSubType: u32, + pub KeyboardFunctionKey: u32, + pub imeFileName: [u16; 33], + pub ActiveInputLocale: u32, + pub fNoAudioPlayback: super::super::Foundation::BOOLEAN, + pub fRemoteConsoleAudio: super::super::Foundation::BOOLEAN, + pub AudioDriverName: [u16; 9], + pub ClientTimeZone: WTS_TIME_ZONE_INFORMATION, + pub ClientName: [u16; 21], + pub SerialNumber: u32, + pub ClientAddressFamily: u32, + pub ClientAddress: [u16; 31], + pub ClientSockAddress: WTS_SOCKADDR, + pub ClientDirectory: [u16; 257], + pub ClientBuildNumber: u32, + pub ClientProductId: u16, + pub OutBufCountHost: u16, + pub OutBufCountClient: u16, + pub OutBufLength: u16, + pub ClientSessionId: u32, + pub ClientDigProductId: [u16; 33], + pub fDisableCpm: super::super::Foundation::BOOLEAN, + pub fDisableCdm: super::super::Foundation::BOOLEAN, + pub fDisableCcm: super::super::Foundation::BOOLEAN, + pub fDisableLPT: super::super::Foundation::BOOLEAN, + pub fDisableClip: super::super::Foundation::BOOLEAN, + pub fDisablePNP: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WTS_CLIENT_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WTS_CLIENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_CLIENT_DISPLAY { + pub HorizontalResolution: u32, + pub VerticalResolution: u32, + pub ColorDepth: u32, +} +impl ::core::marker::Copy for WTS_CLIENT_DISPLAY {} +impl ::core::clone::Clone for WTS_CLIENT_DISPLAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_DISPLAY_IOCTL { + pub pDisplayIOCtlData: [u8; 256], + pub cbDisplayIOCtlData: u32, +} +impl ::core::marker::Copy for WTS_DISPLAY_IOCTL {} +impl ::core::clone::Clone for WTS_DISPLAY_IOCTL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WTS_LICENSE_CAPABILITIES { + pub KeyExchangeAlg: u32, + pub ProtocolVer: u32, + pub fAuthenticateServer: super::super::Foundation::BOOL, + pub CertType: WTS_CERT_TYPE, + pub cbClientName: u32, + pub rgbClientName: [u8; 42], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WTS_LICENSE_CAPABILITIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WTS_LICENSE_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WTS_POLICY_DATA { + pub fDisableEncryption: super::super::Foundation::BOOLEAN, + pub fDisableAutoReconnect: super::super::Foundation::BOOLEAN, + pub ColorDepth: u32, + pub MinEncryptionLevel: u8, + pub fDisableCpm: super::super::Foundation::BOOLEAN, + pub fDisableCdm: super::super::Foundation::BOOLEAN, + pub fDisableCcm: super::super::Foundation::BOOLEAN, + pub fDisableLPT: super::super::Foundation::BOOLEAN, + pub fDisableClip: super::super::Foundation::BOOLEAN, + pub fDisablePNPRedir: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WTS_POLICY_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WTS_POLICY_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WTS_PROCESS_INFOA { + pub SessionId: u32, + pub ProcessId: u32, + pub pProcessName: ::windows_sys::core::PSTR, + pub pUserSid: super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WTS_PROCESS_INFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WTS_PROCESS_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WTS_PROCESS_INFOW { + pub SessionId: u32, + pub ProcessId: u32, + pub pProcessName: ::windows_sys::core::PWSTR, + pub pUserSid: super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WTS_PROCESS_INFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WTS_PROCESS_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WTS_PROCESS_INFO_EXA { + pub SessionId: u32, + pub ProcessId: u32, + pub pProcessName: ::windows_sys::core::PSTR, + pub pUserSid: super::super::Foundation::PSID, + pub NumberOfThreads: u32, + pub HandleCount: u32, + pub PagefileUsage: u32, + pub PeakPagefileUsage: u32, + pub WorkingSetSize: u32, + pub PeakWorkingSetSize: u32, + pub UserTime: i64, + pub KernelTime: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WTS_PROCESS_INFO_EXA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WTS_PROCESS_INFO_EXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WTS_PROCESS_INFO_EXW { + pub SessionId: u32, + pub ProcessId: u32, + pub pProcessName: ::windows_sys::core::PWSTR, + pub pUserSid: super::super::Foundation::PSID, + pub NumberOfThreads: u32, + pub HandleCount: u32, + pub PagefileUsage: u32, + pub PeakPagefileUsage: u32, + pub WorkingSetSize: u32, + pub PeakWorkingSetSize: u32, + pub UserTime: i64, + pub KernelTime: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WTS_PROCESS_INFO_EXW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WTS_PROCESS_INFO_EXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_PROPERTY_VALUE { + pub Type: u16, + pub u: WTS_PROPERTY_VALUE_0, +} +impl ::core::marker::Copy for WTS_PROPERTY_VALUE {} +impl ::core::clone::Clone for WTS_PROPERTY_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WTS_PROPERTY_VALUE_0 { + pub ulVal: u32, + pub strVal: WTS_PROPERTY_VALUE_0_1, + pub bVal: WTS_PROPERTY_VALUE_0_0, + pub guidVal: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for WTS_PROPERTY_VALUE_0 {} +impl ::core::clone::Clone for WTS_PROPERTY_VALUE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_PROPERTY_VALUE_0_0 { + pub size: u32, + pub pbVal: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for WTS_PROPERTY_VALUE_0_0 {} +impl ::core::clone::Clone for WTS_PROPERTY_VALUE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_PROPERTY_VALUE_0_1 { + pub size: u32, + pub pstrVal: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WTS_PROPERTY_VALUE_0_1 {} +impl ::core::clone::Clone for WTS_PROPERTY_VALUE_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_PROTOCOL_CACHE { + pub CacheReads: u32, + pub CacheHits: u32, +} +impl ::core::marker::Copy for WTS_PROTOCOL_CACHE {} +impl ::core::clone::Clone for WTS_PROTOCOL_CACHE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_PROTOCOL_COUNTERS { + pub WdBytes: u32, + pub WdFrames: u32, + pub WaitForOutBuf: u32, + pub Frames: u32, + pub Bytes: u32, + pub CompressedBytes: u32, + pub CompressFlushes: u32, + pub Errors: u32, + pub Timeouts: u32, + pub AsyncFramingError: u32, + pub AsyncOverrunError: u32, + pub AsyncOverflowError: u32, + pub AsyncParityError: u32, + pub TdErrors: u32, + pub ProtocolType: u16, + pub Length: u16, + pub Specific: u16, + pub Reserved: [u32; 100], +} +impl ::core::marker::Copy for WTS_PROTOCOL_COUNTERS {} +impl ::core::clone::Clone for WTS_PROTOCOL_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_PROTOCOL_STATUS { + pub Output: WTS_PROTOCOL_COUNTERS, + pub Input: WTS_PROTOCOL_COUNTERS, + pub Cache: WTS_CACHE_STATS, + pub AsyncSignal: u32, + pub AsyncSignalMask: u32, + pub Counters: [i64; 100], +} +impl ::core::marker::Copy for WTS_PROTOCOL_STATUS {} +impl ::core::clone::Clone for WTS_PROTOCOL_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SERVER_INFOA { + pub pServerName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for WTS_SERVER_INFOA {} +impl ::core::clone::Clone for WTS_SERVER_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SERVER_INFOW { + pub pServerName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WTS_SERVER_INFOW {} +impl ::core::clone::Clone for WTS_SERVER_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SERVICE_STATE { + pub RcmServiceState: WTS_RCM_SERVICE_STATE, + pub RcmDrainState: WTS_RCM_DRAIN_STATE, +} +impl ::core::marker::Copy for WTS_SERVICE_STATE {} +impl ::core::clone::Clone for WTS_SERVICE_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SESSION_ADDRESS { + pub AddressFamily: u32, + pub Address: [u8; 20], +} +impl ::core::marker::Copy for WTS_SESSION_ADDRESS {} +impl ::core::clone::Clone for WTS_SESSION_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SESSION_ID { + pub SessionUniqueGuid: ::windows_sys::core::GUID, + pub SessionId: u32, +} +impl ::core::marker::Copy for WTS_SESSION_ID {} +impl ::core::clone::Clone for WTS_SESSION_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SESSION_INFOA { + pub SessionId: u32, + pub pWinStationName: ::windows_sys::core::PSTR, + pub State: WTS_CONNECTSTATE_CLASS, +} +impl ::core::marker::Copy for WTS_SESSION_INFOA {} +impl ::core::clone::Clone for WTS_SESSION_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SESSION_INFOW { + pub SessionId: u32, + pub pWinStationName: ::windows_sys::core::PWSTR, + pub State: WTS_CONNECTSTATE_CLASS, +} +impl ::core::marker::Copy for WTS_SESSION_INFOW {} +impl ::core::clone::Clone for WTS_SESSION_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SESSION_INFO_1A { + pub ExecEnvId: u32, + pub State: WTS_CONNECTSTATE_CLASS, + pub SessionId: u32, + pub pSessionName: ::windows_sys::core::PSTR, + pub pHostName: ::windows_sys::core::PSTR, + pub pUserName: ::windows_sys::core::PSTR, + pub pDomainName: ::windows_sys::core::PSTR, + pub pFarmName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for WTS_SESSION_INFO_1A {} +impl ::core::clone::Clone for WTS_SESSION_INFO_1A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SESSION_INFO_1W { + pub ExecEnvId: u32, + pub State: WTS_CONNECTSTATE_CLASS, + pub SessionId: u32, + pub pSessionName: ::windows_sys::core::PWSTR, + pub pHostName: ::windows_sys::core::PWSTR, + pub pUserName: ::windows_sys::core::PWSTR, + pub pDomainName: ::windows_sys::core::PWSTR, + pub pFarmName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WTS_SESSION_INFO_1W {} +impl ::core::clone::Clone for WTS_SESSION_INFO_1W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SMALL_RECT { + pub Left: i16, + pub Top: i16, + pub Right: i16, + pub Bottom: i16, +} +impl ::core::marker::Copy for WTS_SMALL_RECT {} +impl ::core::clone::Clone for WTS_SMALL_RECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SOCKADDR { + pub sin_family: u16, + pub u: WTS_SOCKADDR_0, +} +impl ::core::marker::Copy for WTS_SOCKADDR {} +impl ::core::clone::Clone for WTS_SOCKADDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WTS_SOCKADDR_0 { + pub ipv4: WTS_SOCKADDR_0_0, + pub ipv6: WTS_SOCKADDR_0_1, +} +impl ::core::marker::Copy for WTS_SOCKADDR_0 {} +impl ::core::clone::Clone for WTS_SOCKADDR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SOCKADDR_0_0 { + pub sin_port: u16, + pub IN_ADDR: u32, + pub sin_zero: [u8; 8], +} +impl ::core::marker::Copy for WTS_SOCKADDR_0_0 {} +impl ::core::clone::Clone for WTS_SOCKADDR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SOCKADDR_0_1 { + pub sin6_port: u16, + pub sin6_flowinfo: u32, + pub sin6_addr: [u16; 8], + pub sin6_scope_id: u32, +} +impl ::core::marker::Copy for WTS_SOCKADDR_0_1 {} +impl ::core::clone::Clone for WTS_SOCKADDR_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_SYSTEMTIME { + pub wYear: u16, + pub wMonth: u16, + pub wDayOfWeek: u16, + pub wDay: u16, + pub wHour: u16, + pub wMinute: u16, + pub wSecond: u16, + pub wMilliseconds: u16, +} +impl ::core::marker::Copy for WTS_SYSTEMTIME {} +impl ::core::clone::Clone for WTS_SYSTEMTIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_TIME_ZONE_INFORMATION { + pub Bias: i32, + pub StandardName: [u16; 32], + pub StandardDate: WTS_SYSTEMTIME, + pub StandardBias: i32, + pub DaylightName: [u16; 32], + pub DaylightDate: WTS_SYSTEMTIME, + pub DaylightBias: i32, +} +impl ::core::marker::Copy for WTS_TIME_ZONE_INFORMATION {} +impl ::core::clone::Clone for WTS_TIME_ZONE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_USER_CREDENTIAL { + pub UserName: [u16; 256], + pub Password: [u16; 256], + pub Domain: [u16; 256], +} +impl ::core::marker::Copy for WTS_USER_CREDENTIAL {} +impl ::core::clone::Clone for WTS_USER_CREDENTIAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_USER_DATA { + pub WorkDirectory: [u16; 257], + pub InitialProgram: [u16; 257], + pub UserTimeZone: WTS_TIME_ZONE_INFORMATION, +} +impl ::core::marker::Copy for WTS_USER_DATA {} +impl ::core::clone::Clone for WTS_USER_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_VALIDATION_INFORMATIONA { + pub ProductInfo: PRODUCT_INFOA, + pub License: [u8; 16384], + pub LicenseLength: u32, + pub HardwareID: [u8; 20], + pub HardwareIDLength: u32, +} +impl ::core::marker::Copy for WTS_VALIDATION_INFORMATIONA {} +impl ::core::clone::Clone for WTS_VALIDATION_INFORMATIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_VALIDATION_INFORMATIONW { + pub ProductInfo: PRODUCT_INFOW, + pub License: [u8; 16384], + pub LicenseLength: u32, + pub HardwareID: [u8; 20], + pub HardwareIDLength: u32, +} +impl ::core::marker::Copy for WTS_VALIDATION_INFORMATIONW {} +impl ::core::clone::Clone for WTS_VALIDATION_INFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct pluginResource { + pub alias: [u16; 256], + pub name: [u16; 256], + pub resourceFileContents: ::windows_sys::core::PWSTR, + pub fileExtension: [u16; 256], + pub resourcePluginType: [u16; 256], + pub isDiscoverable: u8, + pub resourceType: i32, + pub pceIconSize: u32, + pub iconContents: *mut u8, + pub pcePluginBlobSize: u32, + pub blobContents: *mut u8, +} +impl ::core::marker::Copy for pluginResource {} +impl ::core::clone::Clone for pluginResource { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct pluginResource2 { + pub resourceV1: pluginResource, + pub pceFileAssocListSize: u32, + pub fileAssocList: *mut pluginResource2FileAssociation, + pub securityDescriptor: ::windows_sys::core::PWSTR, + pub pceFolderListSize: u32, + pub folderList: *mut *mut u16, +} +impl ::core::marker::Copy for pluginResource2 {} +impl ::core::clone::Clone for pluginResource2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct pluginResource2FileAssociation { + pub extName: [u16; 256], + pub primaryHandler: u8, + pub pceIconSize: u32, + pub iconContents: *mut u8, +} +impl ::core::marker::Copy for pluginResource2FileAssociation {} +impl ::core::clone::Clone for pluginResource2FileAssociation { + fn clone(&self) -> Self { + *self + } +} +pub type PCHANNEL_INIT_EVENT_FN = ::core::option::Option ()>; +pub type PCHANNEL_OPEN_EVENT_FN = ::core::option::Option ()>; +pub type PVIRTUALCHANNELCLOSE = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PVIRTUALCHANNELENTRY = ::core::option::Option super::super::Foundation::BOOL>; +pub type PVIRTUALCHANNELINIT = ::core::option::Option u32>; +pub type PVIRTUALCHANNELOPEN = ::core::option::Option u32>; +pub type PVIRTUALCHANNELWRITE = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/RemoteManagement/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/RemoteManagement/mod.rs new file mode 100644 index 000000000..e947f586a --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/RemoteManagement/mod.rs @@ -0,0 +1,1178 @@ +::windows_targets::link!("wsmsvc.dll" "system" fn WSManCloseCommand(commandhandle : WSMAN_COMMAND_HANDLE, flags : u32, r#async : *const WSMAN_SHELL_ASYNC) -> ()); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManCloseOperation(operationhandle : WSMAN_OPERATION_HANDLE, flags : u32) -> u32); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManCloseSession(session : WSMAN_SESSION_HANDLE, flags : u32) -> u32); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManCloseShell(shellhandle : WSMAN_SHELL_HANDLE, flags : u32, r#async : *const WSMAN_SHELL_ASYNC) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManConnectShell(session : WSMAN_SESSION_HANDLE, flags : u32, resourceuri : ::windows_sys::core::PCWSTR, shellid : ::windows_sys::core::PCWSTR, options : *const WSMAN_OPTION_SET, connectxml : *const WSMAN_DATA, r#async : *const WSMAN_SHELL_ASYNC, shell : *mut WSMAN_SHELL_HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManConnectShellCommand(shell : WSMAN_SHELL_HANDLE, flags : u32, commandid : ::windows_sys::core::PCWSTR, options : *const WSMAN_OPTION_SET, connectxml : *const WSMAN_DATA, r#async : *const WSMAN_SHELL_ASYNC, command : *mut WSMAN_COMMAND_HANDLE) -> ()); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManCreateSession(apihandle : WSMAN_API_HANDLE, connection : ::windows_sys::core::PCWSTR, flags : u32, serverauthenticationcredentials : *const WSMAN_AUTHENTICATION_CREDENTIALS, proxyinfo : *const WSMAN_PROXY_INFO, session : *mut WSMAN_SESSION_HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManCreateShell(session : WSMAN_SESSION_HANDLE, flags : u32, resourceuri : ::windows_sys::core::PCWSTR, startupinfo : *const WSMAN_SHELL_STARTUP_INFO_V11, options : *const WSMAN_OPTION_SET, createxml : *const WSMAN_DATA, r#async : *const WSMAN_SHELL_ASYNC, shell : *mut WSMAN_SHELL_HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManCreateShellEx(session : WSMAN_SESSION_HANDLE, flags : u32, resourceuri : ::windows_sys::core::PCWSTR, shellid : ::windows_sys::core::PCWSTR, startupinfo : *const WSMAN_SHELL_STARTUP_INFO_V11, options : *const WSMAN_OPTION_SET, createxml : *const WSMAN_DATA, r#async : *const WSMAN_SHELL_ASYNC, shell : *mut WSMAN_SHELL_HANDLE) -> ()); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManDeinitialize(apihandle : WSMAN_API_HANDLE, flags : u32) -> u32); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManDisconnectShell(shell : WSMAN_SHELL_HANDLE, flags : u32, disconnectinfo : *const WSMAN_SHELL_DISCONNECT_INFO, r#async : *const WSMAN_SHELL_ASYNC) -> ()); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManGetErrorMessage(apihandle : WSMAN_API_HANDLE, flags : u32, languagecode : ::windows_sys::core::PCWSTR, errorcode : u32, messagelength : u32, message : ::windows_sys::core::PWSTR, messagelengthused : *mut u32) -> u32); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManGetSessionOptionAsDword(session : WSMAN_SESSION_HANDLE, option : WSManSessionOption, value : *mut u32) -> u32); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManGetSessionOptionAsString(session : WSMAN_SESSION_HANDLE, option : WSManSessionOption, stringlength : u32, string : ::windows_sys::core::PWSTR, stringlengthused : *mut u32) -> u32); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManInitialize(flags : u32, apihandle : *mut WSMAN_API_HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManPluginAuthzOperationComplete(senderdetails : *const WSMAN_SENDER_DETAILS, flags : u32, userauthorizationcontext : *const ::core::ffi::c_void, errorcode : u32, extendederrorinformation : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManPluginAuthzQueryQuotaComplete(senderdetails : *const WSMAN_SENDER_DETAILS, flags : u32, quota : *const WSMAN_AUTHZ_QUOTA, errorcode : u32, extendederrorinformation : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManPluginAuthzUserComplete(senderdetails : *const WSMAN_SENDER_DETAILS, flags : u32, userauthorizationcontext : *const ::core::ffi::c_void, impersonationtoken : super::super::Foundation:: HANDLE, userisadministrator : super::super::Foundation:: BOOL, errorcode : u32, extendederrorinformation : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManPluginFreeRequestDetails(requestdetails : *const WSMAN_PLUGIN_REQUEST) -> u32); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManPluginGetConfiguration(plugincontext : *const ::core::ffi::c_void, flags : u32, data : *mut WSMAN_DATA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManPluginGetOperationParameters(requestdetails : *const WSMAN_PLUGIN_REQUEST, flags : u32, data : *mut WSMAN_DATA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManPluginOperationComplete(requestdetails : *const WSMAN_PLUGIN_REQUEST, flags : u32, errorcode : u32, extendedinformation : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManPluginReceiveResult(requestdetails : *const WSMAN_PLUGIN_REQUEST, flags : u32, stream : ::windows_sys::core::PCWSTR, streamresult : *const WSMAN_DATA, commandstate : ::windows_sys::core::PCWSTR, exitcode : u32) -> u32); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManPluginReportCompletion(plugincontext : *const ::core::ffi::c_void, flags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManPluginReportContext(requestdetails : *const WSMAN_PLUGIN_REQUEST, flags : u32, context : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManReceiveShellOutput(shell : WSMAN_SHELL_HANDLE, command : WSMAN_COMMAND_HANDLE, flags : u32, desiredstreamset : *const WSMAN_STREAM_ID_SET, r#async : *const WSMAN_SHELL_ASYNC, receiveoperation : *mut WSMAN_OPERATION_HANDLE) -> ()); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManReconnectShell(shell : WSMAN_SHELL_HANDLE, flags : u32, r#async : *const WSMAN_SHELL_ASYNC) -> ()); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManReconnectShellCommand(commandhandle : WSMAN_COMMAND_HANDLE, flags : u32, r#async : *const WSMAN_SHELL_ASYNC) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManRunShellCommand(shell : WSMAN_SHELL_HANDLE, flags : u32, commandline : ::windows_sys::core::PCWSTR, args : *const WSMAN_COMMAND_ARG_SET, options : *const WSMAN_OPTION_SET, r#async : *const WSMAN_SHELL_ASYNC, command : *mut WSMAN_COMMAND_HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManRunShellCommandEx(shell : WSMAN_SHELL_HANDLE, flags : u32, commandid : ::windows_sys::core::PCWSTR, commandline : ::windows_sys::core::PCWSTR, args : *const WSMAN_COMMAND_ARG_SET, options : *const WSMAN_OPTION_SET, r#async : *const WSMAN_SHELL_ASYNC, command : *mut WSMAN_COMMAND_HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wsmsvc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WSManSendShellInput(shell : WSMAN_SHELL_HANDLE, command : WSMAN_COMMAND_HANDLE, flags : u32, streamid : ::windows_sys::core::PCWSTR, streamdata : *const WSMAN_DATA, endofstream : super::super::Foundation:: BOOL, r#async : *const WSMAN_SHELL_ASYNC, sendoperation : *mut WSMAN_OPERATION_HANDLE) -> ()); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManSetSessionOption(session : WSMAN_SESSION_HANDLE, option : WSManSessionOption, data : *const WSMAN_DATA) -> u32); +::windows_targets::link!("wsmsvc.dll" "system" fn WSManSignalShell(shell : WSMAN_SHELL_HANDLE, command : WSMAN_COMMAND_HANDLE, flags : u32, code : ::windows_sys::core::PCWSTR, r#async : *const WSMAN_SHELL_ASYNC, signaloperation : *mut WSMAN_OPERATION_HANDLE) -> ()); +pub type IWSMan = *mut ::core::ffi::c_void; +pub type IWSManConnectionOptions = *mut ::core::ffi::c_void; +pub type IWSManConnectionOptionsEx = *mut ::core::ffi::c_void; +pub type IWSManConnectionOptionsEx2 = *mut ::core::ffi::c_void; +pub type IWSManEnumerator = *mut ::core::ffi::c_void; +pub type IWSManEx = *mut ::core::ffi::c_void; +pub type IWSManEx2 = *mut ::core::ffi::c_void; +pub type IWSManEx3 = *mut ::core::ffi::c_void; +pub type IWSManInternal = *mut ::core::ffi::c_void; +pub type IWSManResourceLocator = *mut ::core::ffi::c_void; +pub type IWSManResourceLocatorInternal = *mut ::core::ffi::c_void; +pub type IWSManSession = *mut ::core::ffi::c_void; +pub const ERROR_REDIRECT_LOCATION_INVALID: u32 = 2150859191u32; +pub const ERROR_REDIRECT_LOCATION_TOO_LONG: u32 = 2150859190u32; +pub const ERROR_SERVICE_CBT_HARDENING_INVALID: u32 = 2150859192u32; +pub const ERROR_WINRS_CLIENT_CLOSERECEIVEHANDLE_NULL_PARAM: u32 = 2150859058u32; +pub const ERROR_WINRS_CLIENT_CLOSESENDHANDLE_NULL_PARAM: u32 = 2150859061u32; +pub const ERROR_WINRS_CLIENT_CLOSESHELL_NULL_PARAM: u32 = 2150859050u32; +pub const ERROR_WINRS_CLIENT_CREATESHELL_NULL_PARAM: u32 = 2150859049u32; +pub const ERROR_WINRS_CLIENT_FREECREATESHELLRESULT_NULL_PARAM: u32 = 2150859051u32; +pub const ERROR_WINRS_CLIENT_FREEPULLRESULT_NULL_PARAM: u32 = 2150859056u32; +pub const ERROR_WINRS_CLIENT_FREERUNCOMMANDRESULT_NULL_PARAM: u32 = 2150859053u32; +pub const ERROR_WINRS_CLIENT_GET_NULL_PARAM: u32 = 2150859062u32; +pub const ERROR_WINRS_CLIENT_INVALID_FLAG: u32 = 2150859040u32; +pub const ERROR_WINRS_CLIENT_NULL_PARAM: u32 = 2150859041u32; +pub const ERROR_WINRS_CLIENT_PULL_NULL_PARAM: u32 = 2150859057u32; +pub const ERROR_WINRS_CLIENT_PUSH_NULL_PARAM: u32 = 2150859060u32; +pub const ERROR_WINRS_CLIENT_RECEIVE_NULL_PARAM: u32 = 2150859055u32; +pub const ERROR_WINRS_CLIENT_RUNCOMMAND_NULL_PARAM: u32 = 2150859052u32; +pub const ERROR_WINRS_CLIENT_SEND_NULL_PARAM: u32 = 2150859059u32; +pub const ERROR_WINRS_CLIENT_SIGNAL_NULL_PARAM: u32 = 2150859054u32; +pub const ERROR_WINRS_CODE_PAGE_NOT_SUPPORTED: u32 = 2150859072u32; +pub const ERROR_WINRS_CONNECT_RESPONSE_BAD_BODY: u32 = 2150859211u32; +pub const ERROR_WINRS_IDLETIMEOUT_OUTOFBOUNDS: u32 = 2150859250u32; +pub const ERROR_WINRS_RECEIVE_IN_PROGRESS: u32 = 2150859047u32; +pub const ERROR_WINRS_RECEIVE_NO_RESPONSE_DATA: u32 = 2150859048u32; +pub const ERROR_WINRS_SHELLCOMMAND_CLIENTID_NOT_VALID: u32 = 2150859220u32; +pub const ERROR_WINRS_SHELLCOMMAND_CLIENTID_RESOURCE_CONFLICT: u32 = 2150859222u32; +pub const ERROR_WINRS_SHELLCOMMAND_DISCONNECT_OPERATION_NOT_VALID: u32 = 2150859224u32; +pub const ERROR_WINRS_SHELLCOMMAND_RECONNECT_OPERATION_NOT_VALID: u32 = 2150859219u32; +pub const ERROR_WINRS_SHELL_CLIENTID_NOT_VALID: u32 = 2150859221u32; +pub const ERROR_WINRS_SHELL_CLIENTID_RESOURCE_CONFLICT: u32 = 2150859223u32; +pub const ERROR_WINRS_SHELL_CLIENTSESSIONID_MISMATCH: u32 = 2150859206u32; +pub const ERROR_WINRS_SHELL_CONNECTED_TO_DIFFERENT_CLIENT: u32 = 2150859213u32; +pub const ERROR_WINRS_SHELL_DISCONNECTED: u32 = 2150859204u32; +pub const ERROR_WINRS_SHELL_DISCONNECT_NOT_SUPPORTED: u32 = 2150859205u32; +pub const ERROR_WINRS_SHELL_DISCONNECT_OPERATION_NOT_GRACEFUL: u32 = 2150859214u32; +pub const ERROR_WINRS_SHELL_DISCONNECT_OPERATION_NOT_VALID: u32 = 2150859215u32; +pub const ERROR_WINRS_SHELL_RECONNECT_OPERATION_NOT_VALID: u32 = 2150859216u32; +pub const ERROR_WINRS_SHELL_URI_INVALID: u32 = 2150859099u32; +pub const ERROR_WSMAN_ACK_NOT_SUPPORTED: u32 = 2150858853u32; +pub const ERROR_WSMAN_ACTION_MISMATCH: u32 = 2150858801u32; +pub const ERROR_WSMAN_ACTION_NOT_SUPPORTED: u32 = 2150858771u32; +pub const ERROR_WSMAN_ADDOBJECT_MISSING_EPR: u32 = 2150859045u32; +pub const ERROR_WSMAN_ADDOBJECT_MISSING_OBJECT: u32 = 2150859044u32; +pub const ERROR_WSMAN_ALREADY_EXISTS: u32 = 2150858803u32; +pub const ERROR_WSMAN_AMBIGUOUS_SELECTORS: u32 = 2150858846u32; +pub const ERROR_WSMAN_AUTHENTICATION_INVALID_FLAG: u32 = 2150859077u32; +pub const ERROR_WSMAN_AUTHORIZATION_MODE_NOT_SUPPORTED: u32 = 2150858852u32; +pub const ERROR_WSMAN_BAD_METHOD: u32 = 2150858868u32; +pub const ERROR_WSMAN_BATCHSIZE_TOO_SMALL: u32 = 2150858919u32; +pub const ERROR_WSMAN_BATCH_COMPLETE: u32 = 2150858756u32; +pub const ERROR_WSMAN_BOOKMARKS_NOT_SUPPORTED: u32 = 2150858859u32; +pub const ERROR_WSMAN_BOOKMARK_EXPIRED: u32 = 2150858832u32; +pub const ERROR_WSMAN_CANNOT_CHANGE_KEYS: u32 = 2150858989u32; +pub const ERROR_WSMAN_CANNOT_DECRYPT: u32 = 2150859001u32; +pub const ERROR_WSMAN_CANNOT_PROCESS_FILTER: u32 = 2150859042u32; +pub const ERROR_WSMAN_CANNOT_USE_ALLOW_NEGOTIATE_IMPLICIT_CREDENTIALS_FOR_HTTP: u32 = 2150859184u32; +pub const ERROR_WSMAN_CANNOT_USE_CERTIFICATES_FOR_HTTP: u32 = 2150858968u32; +pub const ERROR_WSMAN_CANNOT_USE_PROXY_SETTINGS_FOR_CREDSSP: u32 = 2150859187u32; +pub const ERROR_WSMAN_CANNOT_USE_PROXY_SETTINGS_FOR_HTTP: u32 = 2150859185u32; +pub const ERROR_WSMAN_CANNOT_USE_PROXY_SETTINGS_FOR_KERBEROS: u32 = 2150859186u32; +pub const ERROR_WSMAN_CERTMAPPING_CONFIGLIMIT_EXCEEDED: u32 = 2150859091u32; +pub const ERROR_WSMAN_CERTMAPPING_CREDENTIAL_MANAGEMENT_FAILIED: u32 = 2150859262u32; +pub const ERROR_WSMAN_CERTMAPPING_INVALIDISSUERKEY: u32 = 2150859106u32; +pub const ERROR_WSMAN_CERTMAPPING_INVALIDSUBJECTKEY: u32 = 2150859105u32; +pub const ERROR_WSMAN_CERTMAPPING_INVALIDUSERCREDENTIALS: u32 = 2150859092u32; +pub const ERROR_WSMAN_CERTMAPPING_PASSWORDBLANK: u32 = 2150859115u32; +pub const ERROR_WSMAN_CERTMAPPING_PASSWORDTOOLONG: u32 = 2150859114u32; +pub const ERROR_WSMAN_CERTMAPPING_PASSWORDUSERTUPLE: u32 = 2150859116u32; +pub const ERROR_WSMAN_CERT_INVALID_USAGE: u32 = 2150858990u32; +pub const ERROR_WSMAN_CERT_INVALID_USAGE_CLIENT: u32 = 2150859093u32; +pub const ERROR_WSMAN_CERT_MISSING_AUTH_FLAG: u32 = 2150859094u32; +pub const ERROR_WSMAN_CERT_MULTIPLE_CREDENTIALS_FLAG: u32 = 2150859095u32; +pub const ERROR_WSMAN_CERT_NOT_FOUND: u32 = 2150858882u32; +pub const ERROR_WSMAN_CERT_THUMBPRINT_BLANK: u32 = 2150858983u32; +pub const ERROR_WSMAN_CERT_THUMBPRINT_NOT_BLANK: u32 = 2150858982u32; +pub const ERROR_WSMAN_CHARACTER_SET: u32 = 2150858828u32; +pub const ERROR_WSMAN_CLIENT_ALLOWFRESHCREDENTIALS: u32 = 2150859171u32; +pub const ERROR_WSMAN_CLIENT_ALLOWFRESHCREDENTIALS_NTLMONLY: u32 = 2150859172u32; +pub const ERROR_WSMAN_CLIENT_BASIC_AUTHENTICATION_DISABLED: u32 = 2150858975u32; +pub const ERROR_WSMAN_CLIENT_BATCH_ITEMS_TOO_SMALL: u32 = 2150858946u32; +pub const ERROR_WSMAN_CLIENT_BLANK_ACTION_URI: u32 = 2150858948u32; +pub const ERROR_WSMAN_CLIENT_BLANK_INPUT_XML: u32 = 2150858945u32; +pub const ERROR_WSMAN_CLIENT_BLANK_URI: u32 = 2150858943u32; +pub const ERROR_WSMAN_CLIENT_CERTIFICATES_AUTHENTICATION_DISABLED: u32 = 2150858979u32; +pub const ERROR_WSMAN_CLIENT_CERT_NEEDED: u32 = 2150858932u32; +pub const ERROR_WSMAN_CLIENT_CERT_UNKNOWN_LOCATION: u32 = 2150858934u32; +pub const ERROR_WSMAN_CLIENT_CERT_UNKNOWN_TYPE: u32 = 2150858933u32; +pub const ERROR_WSMAN_CLIENT_CERT_UNNEEDED_CREDS: u32 = 2150858927u32; +pub const ERROR_WSMAN_CLIENT_CERT_UNNEEDED_USERNAME: u32 = 2150858929u32; +pub const ERROR_WSMAN_CLIENT_CLOSECOMMAND_NULL_PARAM: u32 = 2150859135u32; +pub const ERROR_WSMAN_CLIENT_CLOSESHELL_NULL_PARAM: u32 = 2150859134u32; +pub const ERROR_WSMAN_CLIENT_COMPRESSION_INVALID_OPTION: u32 = 2150858957u32; +pub const ERROR_WSMAN_CLIENT_CONNECTCOMMAND_NULL_PARAM: u32 = 2150859210u32; +pub const ERROR_WSMAN_CLIENT_CONNECTSHELL_NULL_PARAM: u32 = 2150859209u32; +pub const ERROR_WSMAN_CLIENT_CONSTRUCTERROR_NULL_PARAM: u32 = 2150858965u32; +pub const ERROR_WSMAN_CLIENT_CREATESESSION_NULL_PARAM: u32 = 2150858938u32; +pub const ERROR_WSMAN_CLIENT_CREATESHELL_NAME_INVALID: u32 = 2150859202u32; +pub const ERROR_WSMAN_CLIENT_CREATESHELL_NULL_PARAM: u32 = 2150859130u32; +pub const ERROR_WSMAN_CLIENT_CREDENTIALS_FLAG_NEEDED: u32 = 2150858931u32; +pub const ERROR_WSMAN_CLIENT_CREDENTIALS_FOR_DEFAULT_AUTHENTICATION: u32 = 2150859078u32; +pub const ERROR_WSMAN_CLIENT_CREDENTIALS_FOR_PROXY_AUTHENTICATION: u32 = 2150859163u32; +pub const ERROR_WSMAN_CLIENT_CREDENTIALS_NEEDED: u32 = 2150858930u32; +pub const ERROR_WSMAN_CLIENT_CREDSSP_AUTHENTICATION_DISABLED: u32 = 2150859170u32; +pub const ERROR_WSMAN_CLIENT_DECODEOBJECT_NULL_PARAM: u32 = 2150858961u32; +pub const ERROR_WSMAN_CLIENT_DELIVERENDSUBSCRIPTION_NULL_PARAM: u32 = 2150858958u32; +pub const ERROR_WSMAN_CLIENT_DELIVEREVENTS_NULL_PARAM: u32 = 2150858959u32; +pub const ERROR_WSMAN_CLIENT_DIGEST_AUTHENTICATION_DISABLED: u32 = 2150858976u32; +pub const ERROR_WSMAN_CLIENT_DISABLE_LOOPBACK_WITH_EXPLICIT_CREDENTIALS: u32 = 2150859073u32; +pub const ERROR_WSMAN_CLIENT_DISCONNECTSHELL_NULL_PARAM: u32 = 2150859207u32; +pub const ERROR_WSMAN_CLIENT_ENCODEOBJECT_NULL_PARAM: u32 = 2150858962u32; +pub const ERROR_WSMAN_CLIENT_ENUMERATE_NULL_PARAM: u32 = 2150858939u32; +pub const ERROR_WSMAN_CLIENT_ENUMERATORADDEVENT_NULL_PARAM: u32 = 2150859043u32; +pub const ERROR_WSMAN_CLIENT_ENUMERATORADDOBJECT_NULL_PARAM: u32 = 2150858963u32; +pub const ERROR_WSMAN_CLIENT_ENUMERATORNEXTOBJECT_NULL_PARAM: u32 = 2150858964u32; +pub const ERROR_WSMAN_CLIENT_ENUM_RECEIVED_TOO_MANY_ITEMS: u32 = 2150859075u32; +pub const ERROR_WSMAN_CLIENT_GETBOOKMARK_NULL_PARAM: u32 = 2150858960u32; +pub const ERROR_WSMAN_CLIENT_GETERRORMESSAGE_NULL_PARAM: u32 = 2150859158u32; +pub const ERROR_WSMAN_CLIENT_GETSESSIONOPTION_DWORD_INVALID_PARAM: u32 = 2150859167u32; +pub const ERROR_WSMAN_CLIENT_GETSESSIONOPTION_DWORD_NULL_PARAM: u32 = 2150859166u32; +pub const ERROR_WSMAN_CLIENT_GETSESSIONOPTION_INVALID_PARAM: u32 = 2150859129u32; +pub const ERROR_WSMAN_CLIENT_GETSESSIONOPTION_STRING_INVALID_PARAM: u32 = 2150859168u32; +pub const ERROR_WSMAN_CLIENT_INITIALIZE_NULL_PARAM: u32 = 2150859124u32; +pub const ERROR_WSMAN_CLIENT_INVALID_CERT: u32 = 2150858935u32; +pub const ERROR_WSMAN_CLIENT_INVALID_CERT_DNS_OR_UPN: u32 = 2150859080u32; +pub const ERROR_WSMAN_CLIENT_INVALID_CLOSE_COMMAND_FLAG: u32 = 2150859133u32; +pub const ERROR_WSMAN_CLIENT_INVALID_CLOSE_SHELL_FLAG: u32 = 2150859132u32; +pub const ERROR_WSMAN_CLIENT_INVALID_CREATE_SHELL_FLAG: u32 = 2150859131u32; +pub const ERROR_WSMAN_CLIENT_INVALID_DEINIT_APPLICATION_FLAG: u32 = 2150859126u32; +pub const ERROR_WSMAN_CLIENT_INVALID_DELIVERY_RETRY: u32 = 2150859108u32; +pub const ERROR_WSMAN_CLIENT_INVALID_DISABLE_LOOPBACK: u32 = 2150859074u32; +pub const ERROR_WSMAN_CLIENT_INVALID_DISCONNECT_SHELL_FLAG: u32 = 2150859226u32; +pub const ERROR_WSMAN_CLIENT_INVALID_FLAG: u32 = 2150858924u32; +pub const ERROR_WSMAN_CLIENT_INVALID_GETERRORMESSAGE_FLAG: u32 = 2150859160u32; +pub const ERROR_WSMAN_CLIENT_INVALID_INIT_APPLICATION_FLAG: u32 = 2150859125u32; +pub const ERROR_WSMAN_CLIENT_INVALID_LANGUAGE_CODE: u32 = 2150859159u32; +pub const ERROR_WSMAN_CLIENT_INVALID_LOCALE: u32 = 2150859156u32; +pub const ERROR_WSMAN_CLIENT_INVALID_RECEIVE_SHELL_FLAG: u32 = 2150859150u32; +pub const ERROR_WSMAN_CLIENT_INVALID_RESOURCE_LOCATOR: u32 = 2150858944u32; +pub const ERROR_WSMAN_CLIENT_INVALID_RUNCOMMAND_FLAG: u32 = 2150859137u32; +pub const ERROR_WSMAN_CLIENT_INVALID_SEND_SHELL_FLAG: u32 = 2150859145u32; +pub const ERROR_WSMAN_CLIENT_INVALID_SEND_SHELL_PARAMETER: u32 = 2150859146u32; +pub const ERROR_WSMAN_CLIENT_INVALID_SHELL_COMMAND_PAIR: u32 = 2150859227u32; +pub const ERROR_WSMAN_CLIENT_INVALID_SIGNAL_SHELL_FLAG: u32 = 2150859143u32; +pub const ERROR_WSMAN_CLIENT_INVALID_UI_LANGUAGE: u32 = 2150859157u32; +pub const ERROR_WSMAN_CLIENT_KERBEROS_AUTHENTICATION_DISABLED: u32 = 2150858978u32; +pub const ERROR_WSMAN_CLIENT_LOCAL_INVALID_CONNECTION_OPTIONS: u32 = 2150858937u32; +pub const ERROR_WSMAN_CLIENT_LOCAL_INVALID_CREDS: u32 = 2150858936u32; +pub const ERROR_WSMAN_CLIENT_MAX_CHARS_TOO_SMALL: u32 = 2150858947u32; +pub const ERROR_WSMAN_CLIENT_MISSING_EXPIRATION: u32 = 2150858953u32; +pub const ERROR_WSMAN_CLIENT_MULTIPLE_AUTH_FLAGS: u32 = 2150858925u32; +pub const ERROR_WSMAN_CLIENT_MULTIPLE_DELIVERY_MODES: u32 = 2150858950u32; +pub const ERROR_WSMAN_CLIENT_MULTIPLE_ENUM_MODE_FLAGS: u32 = 2150859039u32; +pub const ERROR_WSMAN_CLIENT_MULTIPLE_ENVELOPE_POLICIES: u32 = 2150858951u32; +pub const ERROR_WSMAN_CLIENT_MULTIPLE_PROXY_AUTH_FLAGS: u32 = 2150859188u32; +pub const ERROR_WSMAN_CLIENT_NEGOTIATE_AUTHENTICATION_DISABLED: u32 = 2150858977u32; +pub const ERROR_WSMAN_CLIENT_NO_HANDLE: u32 = 2150858942u32; +pub const ERROR_WSMAN_CLIENT_NO_SOURCES: u32 = 2150859111u32; +pub const ERROR_WSMAN_CLIENT_NULL_ISSUERS: u32 = 2150859110u32; +pub const ERROR_WSMAN_CLIENT_NULL_PUBLISHERS: u32 = 2150859109u32; +pub const ERROR_WSMAN_CLIENT_NULL_RESULT_PARAM: u32 = 2150858941u32; +pub const ERROR_WSMAN_CLIENT_PULL_INVALID_FLAGS: u32 = 2150858954u32; +pub const ERROR_WSMAN_CLIENT_PUSH_HOST_TOO_LONG: u32 = 2150858956u32; +pub const ERROR_WSMAN_CLIENT_PUSH_UNSUPPORTED_TRANSPORT: u32 = 2150858955u32; +pub const ERROR_WSMAN_CLIENT_RECEIVE_NULL_PARAM: u32 = 2150859148u32; +pub const ERROR_WSMAN_CLIENT_RECONNECTSHELLCOMMAND_NULL_PARAM: u32 = 2150859218u32; +pub const ERROR_WSMAN_CLIENT_RECONNECTSHELL_NULL_PARAM: u32 = 2150859208u32; +pub const ERROR_WSMAN_CLIENT_RUNCOMMAND_NOTCOMPLETED: u32 = 2150859138u32; +pub const ERROR_WSMAN_CLIENT_RUNCOMMAND_NULL_PARAM: u32 = 2150859136u32; +pub const ERROR_WSMAN_CLIENT_SEND_NULL_PARAM: u32 = 2150859144u32; +pub const ERROR_WSMAN_CLIENT_SESSION_UNUSABLE: u32 = 2150859258u32; +pub const ERROR_WSMAN_CLIENT_SETSESSIONOPTION_INVALID_PARAM: u32 = 2150859128u32; +pub const ERROR_WSMAN_CLIENT_SETSESSIONOPTION_NULL_PARAM: u32 = 2150859127u32; +pub const ERROR_WSMAN_CLIENT_SIGNAL_NULL_PARAM: u32 = 2150859142u32; +pub const ERROR_WSMAN_CLIENT_SPN_WRONG_AUTH: u32 = 2150858926u32; +pub const ERROR_WSMAN_CLIENT_SUBSCRIBE_NULL_PARAM: u32 = 2150858940u32; +pub const ERROR_WSMAN_CLIENT_UNENCRYPTED_DISABLED: u32 = 2150858974u32; +pub const ERROR_WSMAN_CLIENT_UNENCRYPTED_HTTP_ONLY: u32 = 2150858967u32; +pub const ERROR_WSMAN_CLIENT_UNKNOWN_EXPIRATION_TYPE: u32 = 2150858952u32; +pub const ERROR_WSMAN_CLIENT_USERNAME_AND_PASSWORD_NEEDED: u32 = 2150859079u32; +pub const ERROR_WSMAN_CLIENT_USERNAME_PASSWORD_NEEDED: u32 = 2150858928u32; +pub const ERROR_WSMAN_CLIENT_WORKGROUP_NO_KERBEROS: u32 = 2150859020u32; +pub const ERROR_WSMAN_CLIENT_ZERO_HEARTBEAT: u32 = 2150858949u32; +pub const ERROR_WSMAN_COMMAND_ALREADY_CLOSED: u32 = 2150859087u32; +pub const ERROR_WSMAN_COMMAND_TERMINATED: u32 = 2150859212u32; +pub const ERROR_WSMAN_CONCURRENCY: u32 = 2150858802u32; +pub const ERROR_WSMAN_CONFIG_CANNOT_CHANGE_CERTMAPPING_KEYS: u32 = 2150859122u32; +pub const ERROR_WSMAN_CONFIG_CANNOT_CHANGE_GPO_CONTROLLED_SETTING: u32 = 2150858890u32; +pub const ERROR_WSMAN_CONFIG_CANNOT_CHANGE_MUTUAL: u32 = 2150858885u32; +pub const ERROR_WSMAN_CONFIG_CANNOT_SHARE_SSL_CONFIG: u32 = 2150858984u32; +pub const ERROR_WSMAN_CONFIG_CERT_CN_DOES_NOT_MATCH_HOSTNAME: u32 = 2150858985u32; +pub const ERROR_WSMAN_CONFIG_CORRUPTED: u32 = 2150858757u32; +pub const ERROR_WSMAN_CONFIG_GROUP_POLICY_CHANGE_NOTIFICATION_SUBSCRIPTION_FAILED: u32 = 2150859217u32; +pub const ERROR_WSMAN_CONFIG_HOSTNAME_CHANGE_WITHOUT_CERT: u32 = 2150858986u32; +pub const ERROR_WSMAN_CONFIG_PORT_INVALID: u32 = 2150858972u32; +pub const ERROR_WSMAN_CONFIG_READONLY_PROPERTY: u32 = 2150859071u32; +pub const ERROR_WSMAN_CONFIG_SHELLURI_INVALID_OPERATION_ON_KEY: u32 = 2150859119u32; +pub const ERROR_WSMAN_CONFIG_SHELLURI_INVALID_PROCESSPATH: u32 = 2150859098u32; +pub const ERROR_WSMAN_CONFIG_SHELL_URI_CMDSHELLURI_NOTPERMITTED: u32 = 2150859097u32; +pub const ERROR_WSMAN_CONFIG_SHELL_URI_INVALID: u32 = 2150859096u32; +pub const ERROR_WSMAN_CONFIG_THUMBPRINT_SHOULD_BE_EMPTY: u32 = 2150858987u32; +pub const ERROR_WSMAN_CONNECTIONSTR_INVALID: u32 = 2150858969u32; +pub const ERROR_WSMAN_CONNECTOR_GET: u32 = 2150858873u32; +pub const ERROR_WSMAN_CREATESHELL_NULL_ENVIRONMENT_VARIABLE_NAME: u32 = 2150859081u32; +pub const ERROR_WSMAN_CREATESHELL_NULL_STREAMID: u32 = 2150859083u32; +pub const ERROR_WSMAN_CREATESHELL_RUNAS_FAILED: u32 = 2150859231u32; +pub const ERROR_WSMAN_CREATE_RESPONSE_NO_EPR: u32 = 2150858992u32; +pub const ERROR_WSMAN_CREDSSP_USERNAME_PASSWORD_NEEDED: u32 = 2150859169u32; +pub const ERROR_WSMAN_CREDS_PASSED_WITH_NO_AUTH_FLAG: u32 = 2150858923u32; +pub const ERROR_WSMAN_CUSTOMREMOTESHELL_DEPRECATED: u32 = 2150859196u32; +pub const ERROR_WSMAN_DEFAULTAUTH_IPADDRESS: u32 = 2150859195u32; +pub const ERROR_WSMAN_DELIVERY_REFUSED: u32 = 2150858804u32; +pub const ERROR_WSMAN_DELIVERY_RETRIES_NOT_SUPPORTED: u32 = 2150858857u32; +pub const ERROR_WSMAN_DELIVER_IN_PROGRESS: u32 = 2150858821u32; +pub const ERROR_WSMAN_DEPRECATED_CONFIG_SETTING: u32 = 2150859182u32; +pub const ERROR_WSMAN_DESERIALIZE_CLASS: u32 = 2150859244u32; +pub const ERROR_WSMAN_DESTINATION_INVALID: u32 = 2150859256u32; +pub const ERROR_WSMAN_DESTINATION_UNREACHABLE: u32 = 2150858770u32; +pub const ERROR_WSMAN_DIFFERENT_AUTHZ_TOKEN: u32 = 2150859177u32; +pub const ERROR_WSMAN_DIFFERENT_CIM_SELECTOR: u32 = 2150859067u32; +pub const ERROR_WSMAN_DUPLICATE_SELECTORS: u32 = 2150858847u32; +pub const ERROR_WSMAN_ENCODING_LIMIT: u32 = 2150858805u32; +pub const ERROR_WSMAN_ENCODING_TYPE: u32 = 2150859033u32; +pub const ERROR_WSMAN_ENDPOINT_UNAVAILABLE: u32 = 2150858772u32; +pub const ERROR_WSMAN_ENDPOINT_UNAVAILABLE_INVALID_VALUE: u32 = 2150859034u32; +pub const ERROR_WSMAN_ENUMERATE_CANNOT_PROCESS_FILTER: u32 = 2150858778u32; +pub const ERROR_WSMAN_ENUMERATE_FILTERING_NOT_SUPPORTED: u32 = 2150858776u32; +pub const ERROR_WSMAN_ENUMERATE_FILTER_DIALECT_REQUESTED_UNAVAILABLE: u32 = 2150858777u32; +pub const ERROR_WSMAN_ENUMERATE_INVALID_ENUMERATION_CONTEXT: u32 = 2150858779u32; +pub const ERROR_WSMAN_ENUMERATE_INVALID_EXPIRATION_TIME: u32 = 2150858774u32; +pub const ERROR_WSMAN_ENUMERATE_SHELLCOMAMNDS_FILTER_EXPECTED: u32 = 2150859200u32; +pub const ERROR_WSMAN_ENUMERATE_SHELLCOMMANDS_EPRS_NOTSUPPORTED: u32 = 2150859201u32; +pub const ERROR_WSMAN_ENUMERATE_TIMED_OUT: u32 = 2150858780u32; +pub const ERROR_WSMAN_ENUMERATE_UNABLE_TO_RENEW: u32 = 2150858781u32; +pub const ERROR_WSMAN_ENUMERATE_UNSUPPORTED_EXPIRATION_TIME: u32 = 2150858775u32; +pub const ERROR_WSMAN_ENUMERATE_UNSUPPORTED_EXPIRATION_TYPE: u32 = 2150859036u32; +pub const ERROR_WSMAN_ENUMERATE_WMI_INVALID_KEY: u32 = 2150859016u32; +pub const ERROR_WSMAN_ENUMERATION_CLOSED: u32 = 2150858759u32; +pub const ERROR_WSMAN_ENUMERATION_INITIALIZING: u32 = 2150858872u32; +pub const ERROR_WSMAN_ENUMERATION_INVALID: u32 = 2150858884u32; +pub const ERROR_WSMAN_ENUMERATION_MODE_UNSUPPORTED: u32 = 2150858886u32; +pub const ERROR_WSMAN_ENVELOPE_TOO_LARGE: u32 = 2150858790u32; +pub const ERROR_WSMAN_EPR_NESTING_EXCEEDED: u32 = 2150858879u32; +pub const ERROR_WSMAN_EVENTING_CONCURRENT_CLIENT_RECEIVE: u32 = 2150858891u32; +pub const ERROR_WSMAN_EVENTING_DELIVERYFAILED_FROMSOURCE: u32 = 2150858908u32; +pub const ERROR_WSMAN_EVENTING_DELIVERY_MODE_REQUESTED_INVALID: u32 = 2150858920u32; +pub const ERROR_WSMAN_EVENTING_DELIVERY_MODE_REQUESTED_UNAVAILABLE: u32 = 2150858782u32; +pub const ERROR_WSMAN_EVENTING_FAST_SENDER: u32 = 2150858892u32; +pub const ERROR_WSMAN_EVENTING_FILTERING_NOT_SUPPORTED: u32 = 2150858785u32; +pub const ERROR_WSMAN_EVENTING_FILTERING_REQUESTED_UNAVAILABLE: u32 = 2150858786u32; +pub const ERROR_WSMAN_EVENTING_INCOMPATIBLE_BATCHPARAMS_AND_DELIVERYMODE: u32 = 2150858900u32; +pub const ERROR_WSMAN_EVENTING_INSECURE_PUSHSUBSCRIPTION_CONNECTION: u32 = 2150858893u32; +pub const ERROR_WSMAN_EVENTING_INVALID_ENCODING_IN_DELIVERY: u32 = 2150859255u32; +pub const ERROR_WSMAN_EVENTING_INVALID_ENDTO_ADDRESSS: u32 = 2150858902u32; +pub const ERROR_WSMAN_EVENTING_INVALID_EVENTSOURCE: u32 = 2150858894u32; +pub const ERROR_WSMAN_EVENTING_INVALID_EXPIRATION_TIME: u32 = 2150858783u32; +pub const ERROR_WSMAN_EVENTING_INVALID_HEARTBEAT: u32 = 2150858916u32; +pub const ERROR_WSMAN_EVENTING_INVALID_INCOMING_EVENT_PACKET_HEADER: u32 = 2150858903u32; +pub const ERROR_WSMAN_EVENTING_INVALID_LOCALE_IN_DELIVERY: u32 = 2150858915u32; +pub const ERROR_WSMAN_EVENTING_INVALID_MESSAGE: u32 = 2150858789u32; +pub const ERROR_WSMAN_EVENTING_INVALID_NOTIFYTO_ADDRESSS: u32 = 2150858914u32; +pub const ERROR_WSMAN_EVENTING_LOOPBACK_TESTFAILED: u32 = 2150858901u32; +pub const ERROR_WSMAN_EVENTING_MISSING_LOCALE_IN_DELIVERY: u32 = 2150859028u32; +pub const ERROR_WSMAN_EVENTING_MISSING_NOTIFYTO: u32 = 2150858912u32; +pub const ERROR_WSMAN_EVENTING_MISSING_NOTIFYTO_ADDRESSS: u32 = 2150858913u32; +pub const ERROR_WSMAN_EVENTING_NOMATCHING_LISTENER: u32 = 2150858895u32; +pub const ERROR_WSMAN_EVENTING_NONDOMAINJOINED_COLLECTOR: u32 = 2150859070u32; +pub const ERROR_WSMAN_EVENTING_NONDOMAINJOINED_PUBLISHER: u32 = 2150859069u32; +pub const ERROR_WSMAN_EVENTING_PUSH_SUBSCRIPTION_NOACTIVATE_EVENTSOURCE: u32 = 2150859263u32; +pub const ERROR_WSMAN_EVENTING_SOURCE_UNABLE_TO_PROCESS: u32 = 2150858787u32; +pub const ERROR_WSMAN_EVENTING_SUBSCRIPTIONCLOSED_BYREMOTESERVICE: u32 = 2150858907u32; +pub const ERROR_WSMAN_EVENTING_SUBSCRIPTION_CANCELLED_BYSOURCE: u32 = 2150858910u32; +pub const ERROR_WSMAN_EVENTING_UNABLE_TO_RENEW: u32 = 2150858788u32; +pub const ERROR_WSMAN_EVENTING_UNSUPPORTED_EXPIRATION_TYPE: u32 = 2150858784u32; +pub const ERROR_WSMAN_EXPIRATION_TIME_NOT_SUPPORTED: u32 = 2150858856u32; +pub const ERROR_WSMAN_EXPLICIT_CREDENTIALS_REQUIRED: u32 = 2150858981u32; +pub const ERROR_WSMAN_FAILED_AUTHENTICATION: u32 = 2150858806u32; +pub const ERROR_WSMAN_FEATURE_DEPRECATED: u32 = 2150859197u32; +pub const ERROR_WSMAN_FILE_NOT_PRESENT: u32 = 2150859154u32; +pub const ERROR_WSMAN_FILTERING_REQUIRED: u32 = 2150858831u32; +pub const ERROR_WSMAN_FILTERING_REQUIRED_NOT_SUPPORTED: u32 = 2150858864u32; +pub const ERROR_WSMAN_FORMAT_MISMATCH_NOT_SUPPORTED: u32 = 2150858866u32; +pub const ERROR_WSMAN_FORMAT_SECURITY_TOKEN_NOT_SUPPORTED: u32 = 2150858867u32; +pub const ERROR_WSMAN_FRAGMENT_DIALECT_REQUESTED_UNAVAILABLE: u32 = 2150858896u32; +pub const ERROR_WSMAN_FRAGMENT_TRANSFER_NOT_SUPPORTED: u32 = 2150858871u32; +pub const ERROR_WSMAN_GETCLASS: u32 = 2150859245u32; +pub const ERROR_WSMAN_HEARTBEATS_NOT_SUPPORTED: u32 = 2150858858u32; +pub const ERROR_WSMAN_HTML_ERROR: u32 = 2150859123u32; +pub const ERROR_WSMAN_HTTP_CONTENT_TYPE_MISSMATCH_RESPONSE_DATA: u32 = 2150859000u32; +pub const ERROR_WSMAN_HTTP_INVALID_CONTENT_TYPE_IN_RESPONSE_DATA: u32 = 2150858999u32; +pub const ERROR_WSMAN_HTTP_NOT_FOUND_STATUS: u32 = 2150859027u32; +pub const ERROR_WSMAN_HTTP_NO_RESPONSE_DATA: u32 = 2150858997u32; +pub const ERROR_WSMAN_HTTP_REQUEST_TOO_LARGE_STATUS: u32 = 2150859025u32; +pub const ERROR_WSMAN_HTTP_SERVICE_UNAVAILABLE_STATUS: u32 = 2150859026u32; +pub const ERROR_WSMAN_HTTP_STATUS_BAD_REQUEST: u32 = 2150859121u32; +pub const ERROR_WSMAN_HTTP_STATUS_SERVER_ERROR: u32 = 2150859120u32; +pub const ERROR_WSMAN_IISCONFIGURATION_READ_FAILED: u32 = 2150859155u32; +pub const ERROR_WSMAN_INCOMPATIBLE_EPR: u32 = 2150858807u32; +pub const ERROR_WSMAN_INEXISTENT_MAC_ADDRESS: u32 = 2150858875u32; +pub const ERROR_WSMAN_INSECURE_ADDRESS_NOT_SUPPORTED: u32 = 2150858865u32; +pub const ERROR_WSMAN_INSUFFCIENT_SELECTORS: u32 = 2150858842u32; +pub const ERROR_WSMAN_INSUFFICIENT_METADATA_FOR_BASIC: u32 = 2150859251u32; +pub const ERROR_WSMAN_INVALID_ACTIONURI: u32 = 2150858753u32; +pub const ERROR_WSMAN_INVALID_BATCH_PARAMETER: u32 = 2150858799u32; +pub const ERROR_WSMAN_INVALID_BATCH_SETTINGS_PARAMETER: u32 = 2150859021u32; +pub const ERROR_WSMAN_INVALID_BOOKMARK: u32 = 2150858808u32; +pub const ERROR_WSMAN_INVALID_CHARACTERS_IN_RESPONSE: u32 = 2150859018u32; +pub const ERROR_WSMAN_INVALID_CONFIGSDDL_URL: u32 = 2150859199u32; +pub const ERROR_WSMAN_INVALID_CONNECTIONRETRY: u32 = 2150859103u32; +pub const ERROR_WSMAN_INVALID_FILEPATH: u32 = 2150859153u32; +pub const ERROR_WSMAN_INVALID_FILTER_XML: u32 = 2150859015u32; +pub const ERROR_WSMAN_INVALID_FRAGMENT_DIALECT: u32 = 2150858898u32; +pub const ERROR_WSMAN_INVALID_FRAGMENT_PATH: u32 = 2150858899u32; +pub const ERROR_WSMAN_INVALID_FRAGMENT_PATH_BLANK: u32 = 2150859017u32; +pub const ERROR_WSMAN_INVALID_HEADER: u32 = 2150859035u32; +pub const ERROR_WSMAN_INVALID_HOSTNAME_PATTERN: u32 = 2150858911u32; +pub const ERROR_WSMAN_INVALID_IPFILTER: u32 = 2150858988u32; +pub const ERROR_WSMAN_INVALID_KEY: u32 = 2150858820u32; +pub const ERROR_WSMAN_INVALID_LITERAL_URI: u32 = 2150859252u32; +pub const ERROR_WSMAN_INVALID_MESSAGE_INFORMATION_HEADER: u32 = 2150858767u32; +pub const ERROR_WSMAN_INVALID_OPTIONS: u32 = 2150858809u32; +pub const ERROR_WSMAN_INVALID_OPTIONSET: u32 = 2150859140u32; +pub const ERROR_WSMAN_INVALID_OPTION_NO_PROXY_SERVER: u32 = 2150859165u32; +pub const ERROR_WSMAN_INVALID_PARAMETER: u32 = 2150858810u32; +pub const ERROR_WSMAN_INVALID_PARAMETER_NAME: u32 = 2150858837u32; +pub const ERROR_WSMAN_INVALID_PROPOSED_ID: u32 = 2150858798u32; +pub const ERROR_WSMAN_INVALID_PROVIDER_RESPONSE: u32 = 2150859117u32; +pub const ERROR_WSMAN_INVALID_PUBLISHERS_TYPE: u32 = 2150859107u32; +pub const ERROR_WSMAN_INVALID_REDIRECT_ERROR: u32 = 2150859189u32; +pub const ERROR_WSMAN_INVALID_REPRESENTATION: u32 = 2150858773u32; +pub const ERROR_WSMAN_INVALID_RESOURCE_URI: u32 = 2150858811u32; +pub const ERROR_WSMAN_INVALID_RESUMPTION_CONTEXT: u32 = 2150858792u32; +pub const ERROR_WSMAN_INVALID_SECURITY_DESCRIPTOR: u32 = 2150859100u32; +pub const ERROR_WSMAN_INVALID_SELECTORS: u32 = 2150858813u32; +pub const ERROR_WSMAN_INVALID_SELECTOR_NAME: u32 = 2150859032u32; +pub const ERROR_WSMAN_INVALID_SELECTOR_VALUE: u32 = 2150858845u32; +pub const ERROR_WSMAN_INVALID_SOAP_BODY: u32 = 2150858791u32; +pub const ERROR_WSMAN_INVALID_SUBSCRIBE_OBJECT: u32 = 2150859112u32; +pub const ERROR_WSMAN_INVALID_SUBSCRIPTION_MANAGER: u32 = 2150859006u32; +pub const ERROR_WSMAN_INVALID_SYSTEM: u32 = 2150858812u32; +pub const ERROR_WSMAN_INVALID_TARGET_RESOURCEURI: u32 = 2150858849u32; +pub const ERROR_WSMAN_INVALID_TARGET_SELECTORS: u32 = 2150858848u32; +pub const ERROR_WSMAN_INVALID_TARGET_SYSTEM: u32 = 2150858850u32; +pub const ERROR_WSMAN_INVALID_TIMEOUT_HEADER: u32 = 2150858881u32; +pub const ERROR_WSMAN_INVALID_URI: u32 = 2150858754u32; +pub const ERROR_WSMAN_INVALID_URI_WMI_ENUM_WQL: u32 = 2150859003u32; +pub const ERROR_WSMAN_INVALID_URI_WMI_SINGLETON: u32 = 2150859002u32; +pub const ERROR_WSMAN_INVALID_USESSL_PARAM: u32 = 2150859198u32; +pub const ERROR_WSMAN_INVALID_XML: u32 = 2150858819u32; +pub const ERROR_WSMAN_INVALID_XML_FRAGMENT: u32 = 2150858841u32; +pub const ERROR_WSMAN_INVALID_XML_MISSING_VALUES: u32 = 2150858839u32; +pub const ERROR_WSMAN_INVALID_XML_NAMESPACE: u32 = 2150858840u32; +pub const ERROR_WSMAN_INVALID_XML_RUNAS_DISABLED: u32 = 2150859232u32; +pub const ERROR_WSMAN_INVALID_XML_VALUES: u32 = 2150858838u32; +pub const ERROR_WSMAN_KERBEROS_IPADDRESS: u32 = 2150859019u32; +pub const ERROR_WSMAN_LISTENER_ADDRESS_INVALID: u32 = 2150858889u32; +pub const ERROR_WSMAN_LOCALE_NOT_SUPPORTED: u32 = 2150858855u32; +pub const ERROR_WSMAN_MACHINE_OPTION_REQUIRED: u32 = 2150858917u32; +pub const ERROR_WSMAN_MAXENVELOPE_POLICY_NOT_SUPPORTED: u32 = 2150858863u32; +pub const ERROR_WSMAN_MAXENVELOPE_SIZE_NOT_SUPPORTED: u32 = 2150858862u32; +pub const ERROR_WSMAN_MAXITEMS_NOT_SUPPORTED: u32 = 2150858860u32; +pub const ERROR_WSMAN_MAXTIME_NOT_SUPPORTED: u32 = 2150858861u32; +pub const ERROR_WSMAN_MAX_ELEMENTS_NOT_SUPPORTED: u32 = 2150859037u32; +pub const ERROR_WSMAN_MAX_ENVELOPE_SIZE: u32 = 2150858823u32; +pub const ERROR_WSMAN_MAX_ENVELOPE_SIZE_EXCEEDED: u32 = 2150858824u32; +pub const ERROR_WSMAN_MESSAGE_INFORMATION_HEADER_REQUIRED: u32 = 2150858769u32; +pub const ERROR_WSMAN_METADATA_REDIRECT: u32 = 2150858814u32; +pub const ERROR_WSMAN_MIN_ENVELOPE_SIZE: u32 = 2150858878u32; +pub const ERROR_WSMAN_MISSING_CLASSNAME: u32 = 2150859254u32; +pub const ERROR_WSMAN_MISSING_FRAGMENT_PATH: u32 = 2150858897u32; +pub const ERROR_WSMAN_MULTIPLE_CREDENTIALS: u32 = 2150859076u32; +pub const ERROR_WSMAN_MUSTUNDERSTAND_ON_LOCALE_UNSUPPORTED: u32 = 2150858887u32; +pub const ERROR_WSMAN_MUTUAL_AUTH_FAILED: u32 = 2150859248u32; +pub const ERROR_WSMAN_NAME_NOT_RESOLVED: u32 = 2150859193u32; +pub const ERROR_WSMAN_NETWORK_TIMEDOUT: u32 = 2150859046u32; +pub const ERROR_WSMAN_NEW_DESERIALIZER: u32 = 2150859243u32; +pub const ERROR_WSMAN_NEW_SESSION: u32 = 2150859246u32; +pub const ERROR_WSMAN_NON_PULL_SUBSCRIPTION_NOT_SUPPORTED: u32 = 2150859007u32; +pub const ERROR_WSMAN_NO_ACK: u32 = 2150858800u32; +pub const ERROR_WSMAN_NO_CERTMAPPING_OPERATION_FOR_LOCAL_SESSION: u32 = 2150859090u32; +pub const ERROR_WSMAN_NO_COMMANDID: u32 = 2150859141u32; +pub const ERROR_WSMAN_NO_COMMAND_RESPONSE: u32 = 2150859139u32; +pub const ERROR_WSMAN_NO_DHCP_ADDRESSES: u32 = 2150858877u32; +pub const ERROR_WSMAN_NO_IDENTIFY_FOR_LOCAL_SESSION: u32 = 2150859004u32; +pub const ERROR_WSMAN_NO_PUSH_SUBSCRIPTION_FOR_LOCAL_SESSION: u32 = 2150859005u32; +pub const ERROR_WSMAN_NO_RECEIVE_RESPONSE: u32 = 2150859151u32; +pub const ERROR_WSMAN_NO_UNICAST_ADDRESSES: u32 = 2150858876u32; +pub const ERROR_WSMAN_NULL_KEY: u32 = 2150859247u32; +pub const ERROR_WSMAN_OBJECTONLY_INVALID: u32 = 2150859253u32; +pub const ERROR_WSMAN_OPERATION_TIMEDOUT: u32 = 2150858793u32; +pub const ERROR_WSMAN_OPERATION_TIMEOUT_NOT_SUPPORTED: u32 = 2150858854u32; +pub const ERROR_WSMAN_OPTIONS_INVALID_NAME: u32 = 2150858834u32; +pub const ERROR_WSMAN_OPTIONS_INVALID_VALUE: u32 = 2150858835u32; +pub const ERROR_WSMAN_OPTIONS_NOT_SUPPORTED: u32 = 2150858833u32; +pub const ERROR_WSMAN_OPTION_LIMIT: u32 = 2150858827u32; +pub const ERROR_WSMAN_PARAMETER_TYPE_MISMATCH: u32 = 2150858836u32; +pub const ERROR_WSMAN_PLUGIN_CONFIGURATION_CORRUPTED: u32 = 2150859152u32; +pub const ERROR_WSMAN_PLUGIN_FAILED: u32 = 2150858883u32; +pub const ERROR_WSMAN_POLICY_CANNOT_COMPLY: u32 = 2150859102u32; +pub const ERROR_WSMAN_POLICY_CORRUPTED: u32 = 2150858888u32; +pub const ERROR_WSMAN_POLICY_TOO_COMPLEX: u32 = 2150859101u32; +pub const ERROR_WSMAN_POLYMORPHISM_MODE_UNSUPPORTED: u32 = 2150859063u32; +pub const ERROR_WSMAN_PORT_INVALID: u32 = 2150858971u32; +pub const ERROR_WSMAN_PROVIDER_FAILURE: u32 = 2150858755u32; +pub const ERROR_WSMAN_PROVIDER_LOAD_FAILED: u32 = 2150858906u32; +pub const ERROR_WSMAN_PROVSYS_NOT_SUPPORTED: u32 = 2150858921u32; +pub const ERROR_WSMAN_PROXY_ACCESS_TYPE: u32 = 2150859164u32; +pub const ERROR_WSMAN_PROXY_AUTHENTICATION_INVALID_FLAG: u32 = 2150859162u32; +pub const ERROR_WSMAN_PUBLIC_FIREWALL_PROFILE_ACTIVE: u32 = 2150859113u32; +pub const ERROR_WSMAN_PULL_IN_PROGRESS: u32 = 2150858758u32; +pub const ERROR_WSMAN_PULL_PARAMS_NOT_SAME_AS_ENUM: u32 = 2150859181u32; +pub const ERROR_WSMAN_PUSHSUBSCRIPTION_INVALIDUSERACCOUNT: u32 = 2150859068u32; +pub const ERROR_WSMAN_PUSH_SUBSCRIPTION_CONFIG_INVALID: u32 = 2150858922u32; +pub const ERROR_WSMAN_QUICK_CONFIG_FAILED_CERT_REQUIRED: u32 = 2150859029u32; +pub const ERROR_WSMAN_QUICK_CONFIG_FIREWALL_EXCEPTIONS_DISALLOWED: u32 = 2150859030u32; +pub const ERROR_WSMAN_QUICK_CONFIG_LOCAL_POLICY_CHANGE_DISALLOWED: u32 = 2150859031u32; +pub const ERROR_WSMAN_QUOTA_LIMIT: u32 = 2150858815u32; +pub const ERROR_WSMAN_QUOTA_MAX_COMMANDS_PER_SHELL_PPQ: u32 = 2150859241u32; +pub const ERROR_WSMAN_QUOTA_MAX_OPERATIONS: u32 = 2150859174u32; +pub const ERROR_WSMAN_QUOTA_MAX_OPERATIONS_USER_PPQ: u32 = 2150859240u32; +pub const ERROR_WSMAN_QUOTA_MAX_PLUGINOPERATIONS_PPQ: u32 = 2150859239u32; +pub const ERROR_WSMAN_QUOTA_MAX_PLUGINSHELLS_PPQ: u32 = 2150859238u32; +pub const ERROR_WSMAN_QUOTA_MAX_SHELLS: u32 = 2150859173u32; +pub const ERROR_WSMAN_QUOTA_MAX_SHELLS_PPQ: u32 = 2150859236u32; +pub const ERROR_WSMAN_QUOTA_MAX_SHELLUSERS: u32 = 2150859179u32; +pub const ERROR_WSMAN_QUOTA_MAX_USERS_PPQ: u32 = 2150859237u32; +pub const ERROR_WSMAN_QUOTA_MIN_REQUIREMENT_NOT_AVAILABLE_PPQ: u32 = 2150859242u32; +pub const ERROR_WSMAN_QUOTA_SYSTEM: u32 = 2150859176u32; +pub const ERROR_WSMAN_QUOTA_USER: u32 = 2150859175u32; +pub const ERROR_WSMAN_REDIRECT_LOCATION_NOT_AVAILABLE: u32 = 2150859178u32; +pub const ERROR_WSMAN_REDIRECT_REQUESTED: u32 = 2150859161u32; +pub const ERROR_WSMAN_REMOTESHELLS_NOT_ALLOWED: u32 = 2150859180u32; +pub const ERROR_WSMAN_REMOTE_CIMPATH_NOT_SUPPORTED: u32 = 2150859009u32; +pub const ERROR_WSMAN_REMOTE_CONNECTION_NOT_ALLOWED: u32 = 2150859235u32; +pub const ERROR_WSMAN_RENAME_FAILURE: u32 = 2150858816u32; +pub const ERROR_WSMAN_REQUEST_INIT_ERROR: u32 = 2150858880u32; +pub const ERROR_WSMAN_REQUEST_NOT_SUPPORTED_AT_SERVICE: u32 = 2150859064u32; +pub const ERROR_WSMAN_RESOURCE_NOT_FOUND: u32 = 2150858752u32; +pub const ERROR_WSMAN_RESPONSE_INVALID_ENUMERATION_CONTEXT: u32 = 2150858993u32; +pub const ERROR_WSMAN_RESPONSE_INVALID_MESSAGE_INFORMATION_HEADER: u32 = 2150858995u32; +pub const ERROR_WSMAN_RESPONSE_INVALID_SOAP_FAULT: u32 = 2150858998u32; +pub const ERROR_WSMAN_RESPONSE_NO_RESULTS: u32 = 2150858991u32; +pub const ERROR_WSMAN_RESPONSE_NO_SOAP_HEADER_BODY: u32 = 2150858996u32; +pub const ERROR_WSMAN_RESPONSE_NO_XML_FRAGMENT_WRAPPER: u32 = 2150858994u32; +pub const ERROR_WSMAN_RESUMPTION_NOT_SUPPORTED: u32 = 2150858794u32; +pub const ERROR_WSMAN_RESUMPTION_TYPE_NOT_SUPPORTED: u32 = 2150858795u32; +pub const ERROR_WSMAN_RUNASUSER_MANAGEDACCOUNT_LOGON_FAILED: u32 = 2150859261u32; +pub const ERROR_WSMAN_RUNAS_INVALIDUSERCREDENTIALS: u32 = 2150859203u32; +pub const ERROR_WSMAN_RUNSHELLCOMMAND_NULL_ARGUMENT: u32 = 2150859086u32; +pub const ERROR_WSMAN_SCHEMA_VALIDATION_ERROR: u32 = 2150858817u32; +pub const ERROR_WSMAN_SECURITY_UNMAPPED: u32 = 2150858909u32; +pub const ERROR_WSMAN_SELECTOR_LIMIT: u32 = 2150858826u32; +pub const ERROR_WSMAN_SELECTOR_TYPEMISMATCH: u32 = 2150858844u32; +pub const ERROR_WSMAN_SEMANTICCALLBACK_TIMEDOUT: u32 = 2150859228u32; +pub const ERROR_WSMAN_SENDHEARBEAT_EMPTY_ENUMERATOR: u32 = 2150858973u32; +pub const ERROR_WSMAN_SENDSHELLINPUT_INVALID_STREAMID_INDEX: u32 = 2150859088u32; +pub const ERROR_WSMAN_SERVER_DESTINATION_LOCALHOST: u32 = 2150859022u32; +pub const ERROR_WSMAN_SERVER_ENVELOPE_LIMIT: u32 = 2150858825u32; +pub const ERROR_WSMAN_SERVER_NONPULLSUBSCRIBE_NULL_PARAM: u32 = 2150858966u32; +pub const ERROR_WSMAN_SERVER_NOT_TRUSTED: u32 = 2150858980u32; +pub const ERROR_WSMAN_SERVICE_REMOTE_ACCESS_DISABLED: u32 = 2150859229u32; +pub const ERROR_WSMAN_SERVICE_STREAM_DISCONNECTED: u32 = 2150859230u32; +pub const ERROR_WSMAN_SESSION_ALREADY_CLOSED: u32 = 2150858904u32; +pub const ERROR_WSMAN_SHELL_ALREADY_CLOSED: u32 = 2150859082u32; +pub const ERROR_WSMAN_SHELL_INVALID_COMMAND_HANDLE: u32 = 2150859085u32; +pub const ERROR_WSMAN_SHELL_INVALID_DESIRED_STREAMS: u32 = 2150859149u32; +pub const ERROR_WSMAN_SHELL_INVALID_INPUT_STREAM: u32 = 2150859147u32; +pub const ERROR_WSMAN_SHELL_INVALID_SHELL_HANDLE: u32 = 2150859084u32; +pub const ERROR_WSMAN_SHELL_NOT_INITIALIZED: u32 = 2150859118u32; +pub const ERROR_WSMAN_SHELL_SYNCHRONOUS_NOT_SUPPORTED: u32 = 2150859089u32; +pub const ERROR_WSMAN_SOAP_DATA_ENCODING_UNKNOWN: u32 = 2150858766u32; +pub const ERROR_WSMAN_SOAP_FAULT_MUST_UNDERSTAND: u32 = 2150858768u32; +pub const ERROR_WSMAN_SOAP_VERSION_MISMATCH: u32 = 2150858765u32; +pub const ERROR_WSMAN_SSL_CONNECTION_ABORTED: u32 = 2150859194u32; +pub const ERROR_WSMAN_SUBSCRIBE_WMI_INVALID_KEY: u32 = 2150859225u32; +pub const ERROR_WSMAN_SUBSCRIPTION_CLIENT_DID_NOT_CALL_WITHIN_HEARTBEAT: u32 = 2150858762u32; +pub const ERROR_WSMAN_SUBSCRIPTION_CLOSED: u32 = 2150858760u32; +pub const ERROR_WSMAN_SUBSCRIPTION_CLOSE_IN_PROGRESS: u32 = 2150858761u32; +pub const ERROR_WSMAN_SUBSCRIPTION_LISTENER_NOLONGERVALID: u32 = 2150858905u32; +pub const ERROR_WSMAN_SUBSCRIPTION_NO_HEARTBEAT: u32 = 2150858763u32; +pub const ERROR_WSMAN_SYSTEM_NOT_FOUND: u32 = 2150858822u32; +pub const ERROR_WSMAN_TARGET_ALREADY_EXISTS: u32 = 2150858851u32; +pub const ERROR_WSMAN_TRANSPORT_NOT_SUPPORTED: u32 = 2150858970u32; +pub const ERROR_WSMAN_UNEXPECTED_SELECTORS: u32 = 2150858843u32; +pub const ERROR_WSMAN_UNKNOWN_HTTP_STATUS_RETURNED: u32 = 2150859023u32; +pub const ERROR_WSMAN_UNREPORTABLE_SUCCESS: u32 = 2150858829u32; +pub const ERROR_WSMAN_UNSUPPORTED_ADDRESSING_MODE: u32 = 2150858870u32; +pub const ERROR_WSMAN_UNSUPPORTED_ENCODING: u32 = 2150858796u32; +pub const ERROR_WSMAN_UNSUPPORTED_FEATURE: u32 = 2150858818u32; +pub const ERROR_WSMAN_UNSUPPORTED_FEATURE_IDENTIFY: u32 = 2150859257u32; +pub const ERROR_WSMAN_UNSUPPORTED_FEATURE_OPTIONS: u32 = 2150858918u32; +pub const ERROR_WSMAN_UNSUPPORTED_HTTP_STATUS_REDIRECT: u32 = 2150859024u32; +pub const ERROR_WSMAN_UNSUPPORTED_MEDIA: u32 = 2150858869u32; +pub const ERROR_WSMAN_UNSUPPORTED_OCTETTYPE: u32 = 2150859249u32; +pub const ERROR_WSMAN_UNSUPPORTED_TIMEOUT: u32 = 2150858764u32; +pub const ERROR_WSMAN_UNSUPPORTED_TYPE: u32 = 2150859234u32; +pub const ERROR_WSMAN_URISECURITY_INVALIDURIKEY: u32 = 2150859104u32; +pub const ERROR_WSMAN_URI_LIMIT: u32 = 2150858797u32; +pub const ERROR_WSMAN_URI_NON_DMTF_CLASS: u32 = 2150859065u32; +pub const ERROR_WSMAN_URI_QUERY_STRING_SYNTAX_ERROR: u32 = 2150858874u32; +pub const ERROR_WSMAN_URI_SECURITY_URI: u32 = 2150859183u32; +pub const ERROR_WSMAN_URI_WRONG_DMTF_VERSION: u32 = 2150859066u32; +pub const ERROR_WSMAN_VIRTUALACCOUNT_NOTSUPPORTED: u32 = 2150859259u32; +pub const ERROR_WSMAN_VIRTUALACCOUNT_NOTSUPPORTED_DOWNLEVEL: u32 = 2150859260u32; +pub const ERROR_WSMAN_WHITESPACE: u32 = 2150858830u32; +pub const ERROR_WSMAN_WMI_CANNOT_CONNECT_ACCESS_DENIED: u32 = 2150859014u32; +pub const ERROR_WSMAN_WMI_INVALID_VALUE: u32 = 2150859011u32; +pub const ERROR_WSMAN_WMI_MAX_NESTED: u32 = 2150859008u32; +pub const ERROR_WSMAN_WMI_PROVIDER_ACCESS_DENIED: u32 = 2150859013u32; +pub const ERROR_WSMAN_WMI_PROVIDER_INVALID_PARAMETER: u32 = 2150859038u32; +pub const ERROR_WSMAN_WMI_PROVIDER_NOT_CAPABLE: u32 = 2150859010u32; +pub const ERROR_WSMAN_WMI_SVC_ACCESS_DENIED: u32 = 2150859012u32; +pub const ERROR_WSMAN_WRONG_METADATA: u32 = 2150859233u32; +pub const WSMAN_CMDSHELL_OPTION_CODEPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WINRS_CODEPAGE"); +pub const WSMAN_CMDSHELL_OPTION_CONSOLEMODE_STDIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WINRS_CONSOLEMODE_STDIN"); +pub const WSMAN_CMDSHELL_OPTION_SKIP_CMD_SHELL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WINRS_SKIP_CMD_SHELL"); +pub const WSMAN_DATA_NONE: WSManDataType = 0i32; +pub const WSMAN_DATA_TYPE_BINARY: WSManDataType = 2i32; +pub const WSMAN_DATA_TYPE_DWORD: WSManDataType = 4i32; +pub const WSMAN_DATA_TYPE_TEXT: WSManDataType = 1i32; +pub const WSMAN_DEFAULT_TIMEOUT_MS: u32 = 60000u32; +pub const WSMAN_FLAG_AUTH_BASIC: WSManAuthenticationFlags = 8i32; +pub const WSMAN_FLAG_AUTH_CLIENT_CERTIFICATE: WSManAuthenticationFlags = 32i32; +pub const WSMAN_FLAG_AUTH_CREDSSP: WSManAuthenticationFlags = 128i32; +pub const WSMAN_FLAG_AUTH_DIGEST: WSManAuthenticationFlags = 2i32; +pub const WSMAN_FLAG_AUTH_KERBEROS: WSManAuthenticationFlags = 16i32; +pub const WSMAN_FLAG_AUTH_NEGOTIATE: WSManAuthenticationFlags = 4i32; +pub const WSMAN_FLAG_CALLBACK_END_OF_OPERATION: WSManCallbackFlags = 1i32; +pub const WSMAN_FLAG_CALLBACK_END_OF_STREAM: WSManCallbackFlags = 8i32; +pub const WSMAN_FLAG_CALLBACK_NETWORK_FAILURE_DETECTED: WSManCallbackFlags = 256i32; +pub const WSMAN_FLAG_CALLBACK_RECEIVE_DELAY_STREAM_REQUEST_PROCESSED: WSManCallbackFlags = 8192i32; +pub const WSMAN_FLAG_CALLBACK_RECONNECTED_AFTER_NETWORK_FAILURE: WSManCallbackFlags = 1024i32; +pub const WSMAN_FLAG_CALLBACK_RETRYING_AFTER_NETWORK_FAILURE: WSManCallbackFlags = 512i32; +pub const WSMAN_FLAG_CALLBACK_RETRY_ABORTED_DUE_TO_INTERNAL_ERROR: WSManCallbackFlags = 4096i32; +pub const WSMAN_FLAG_CALLBACK_SHELL_AUTODISCONNECTED: WSManCallbackFlags = 64i32; +pub const WSMAN_FLAG_CALLBACK_SHELL_AUTODISCONNECTING: WSManCallbackFlags = 2048i32; +pub const WSMAN_FLAG_CALLBACK_SHELL_SUPPORTS_DISCONNECT: WSManCallbackFlags = 32i32; +pub const WSMAN_FLAG_DEFAULT_AUTHENTICATION: WSManAuthenticationFlags = 0i32; +pub const WSMAN_FLAG_DELETE_SERVER_SESSION: WSManShellFlag = 2i32; +pub const WSMAN_FLAG_NO_AUTHENTICATION: WSManAuthenticationFlags = 1i32; +pub const WSMAN_FLAG_NO_COMPRESSION: WSManShellFlag = 1i32; +pub const WSMAN_FLAG_RECEIVE_DELAY_OUTPUT_STREAM: WSManShellFlag = 16i32; +pub const WSMAN_FLAG_RECEIVE_FLUSH: u32 = 2u32; +pub const WSMAN_FLAG_RECEIVE_RESULT_DATA_BOUNDARY: u32 = 4u32; +pub const WSMAN_FLAG_RECEIVE_RESULT_NO_MORE_DATA: u32 = 1u32; +pub const WSMAN_FLAG_REQUESTED_API_VERSION_1_0: u32 = 0u32; +pub const WSMAN_FLAG_REQUESTED_API_VERSION_1_1: u32 = 1u32; +pub const WSMAN_FLAG_SEND_NO_MORE_DATA: u32 = 1u32; +pub const WSMAN_FLAG_SERVER_BUFFERING_MODE_BLOCK: WSManShellFlag = 8i32; +pub const WSMAN_FLAG_SERVER_BUFFERING_MODE_DROP: WSManShellFlag = 4i32; +pub const WSMAN_OPERATION_INFOV1: u32 = 0u32; +pub const WSMAN_OPERATION_INFOV2: u32 = 2864434397u32; +pub const WSMAN_OPTION_ALLOW_NEGOTIATE_IMPLICIT_CREDENTIALS: WSManSessionOption = 32i32; +pub const WSMAN_OPTION_DEFAULT_OPERATION_TIMEOUTMS: WSManSessionOption = 1i32; +pub const WSMAN_OPTION_ENABLE_SPN_SERVER_PORT: WSManSessionOption = 22i32; +pub const WSMAN_OPTION_LOCALE: WSManSessionOption = 25i32; +pub const WSMAN_OPTION_MACHINE_ID: WSManSessionOption = 23i32; +pub const WSMAN_OPTION_MAX_ENVELOPE_SIZE_KB: WSManSessionOption = 28i32; +pub const WSMAN_OPTION_MAX_RETRY_TIME: WSManSessionOption = 11i32; +pub const WSMAN_OPTION_PROXY_AUTO_DETECT: WSManProxyAccessType = 4i32; +pub const WSMAN_OPTION_PROXY_IE_PROXY_CONFIG: WSManProxyAccessType = 1i32; +pub const WSMAN_OPTION_PROXY_NO_PROXY_SERVER: WSManProxyAccessType = 8i32; +pub const WSMAN_OPTION_PROXY_WINHTTP_PROXY_CONFIG: WSManProxyAccessType = 2i32; +pub const WSMAN_OPTION_REDIRECT_LOCATION: WSManSessionOption = 30i32; +pub const WSMAN_OPTION_SHELL_MAX_DATA_SIZE_PER_MESSAGE_KB: WSManSessionOption = 29i32; +pub const WSMAN_OPTION_SKIP_CA_CHECK: WSManSessionOption = 18i32; +pub const WSMAN_OPTION_SKIP_CN_CHECK: WSManSessionOption = 19i32; +pub const WSMAN_OPTION_SKIP_REVOCATION_CHECK: WSManSessionOption = 31i32; +pub const WSMAN_OPTION_TIMEOUTMS_CLOSE_SHELL: WSManSessionOption = 17i32; +pub const WSMAN_OPTION_TIMEOUTMS_CREATE_SHELL: WSManSessionOption = 12i32; +pub const WSMAN_OPTION_TIMEOUTMS_RECEIVE_SHELL_OUTPUT: WSManSessionOption = 14i32; +pub const WSMAN_OPTION_TIMEOUTMS_RUN_SHELL_COMMAND: WSManSessionOption = 13i32; +pub const WSMAN_OPTION_TIMEOUTMS_SEND_SHELL_INPUT: WSManSessionOption = 15i32; +pub const WSMAN_OPTION_TIMEOUTMS_SIGNAL_SHELL: WSManSessionOption = 16i32; +pub const WSMAN_OPTION_UI_LANGUAGE: WSManSessionOption = 26i32; +pub const WSMAN_OPTION_UNENCRYPTED_MESSAGES: WSManSessionOption = 20i32; +pub const WSMAN_OPTION_USE_INTEARACTIVE_TOKEN: WSManSessionOption = 34i32; +pub const WSMAN_OPTION_USE_SSL: WSManSessionOption = 33i32; +pub const WSMAN_OPTION_UTF16: WSManSessionOption = 21i32; +pub const WSMAN_PLUGIN_PARAMS_AUTORESTART: u32 = 3u32; +pub const WSMAN_PLUGIN_PARAMS_GET_REQUESTED_DATA_LOCALE: u32 = 6u32; +pub const WSMAN_PLUGIN_PARAMS_GET_REQUESTED_LOCALE: u32 = 5u32; +pub const WSMAN_PLUGIN_PARAMS_HOSTIDLETIMEOUTSECONDS: u32 = 4u32; +pub const WSMAN_PLUGIN_PARAMS_LARGEST_RESULT_SIZE: u32 = 4u32; +pub const WSMAN_PLUGIN_PARAMS_MAX_ENVELOPE_SIZE: u32 = 1u32; +pub const WSMAN_PLUGIN_PARAMS_NAME: u32 = 5u32; +pub const WSMAN_PLUGIN_PARAMS_REMAINING_RESULT_SIZE: u32 = 3u32; +pub const WSMAN_PLUGIN_PARAMS_RUNAS_USER: u32 = 2u32; +pub const WSMAN_PLUGIN_PARAMS_SHAREDHOST: u32 = 1u32; +pub const WSMAN_PLUGIN_PARAMS_TIMEOUT: u32 = 2u32; +pub const WSMAN_PLUGIN_SHUTDOWN_IDLETIMEOUT_ELAPSED: u32 = 4u32; +pub const WSMAN_PLUGIN_SHUTDOWN_IISHOST: u32 = 3u32; +pub const WSMAN_PLUGIN_SHUTDOWN_SERVICE: u32 = 2u32; +pub const WSMAN_PLUGIN_SHUTDOWN_SYSTEM: u32 = 1u32; +pub const WSMAN_PLUGIN_STARTUP_AUTORESTARTED_CRASH: u32 = 2u32; +pub const WSMAN_PLUGIN_STARTUP_AUTORESTARTED_REBOOT: u32 = 1u32; +pub const WSMAN_PLUGIN_STARTUP_REQUEST_RECEIVED: u32 = 0u32; +pub const WSMAN_SHELL_NS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("http://schemas.microsoft.com/wbem/wsman/1/windows/shell"); +pub const WSMAN_SHELL_OPTION_NOPROFILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WINRS_NOPROFILE"); +pub const WSMAN_STREAM_ID_STDERR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("stderr"); +pub const WSMAN_STREAM_ID_STDIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("stdin"); +pub const WSMAN_STREAM_ID_STDOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("stdout"); +pub const WSMan: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbced617b_ec03_420b_8508_977dc7a686bd); +pub const WSManFlagAllowNegotiateImplicitCredentials: WSManSessionFlags = 67108864i32; +pub const WSManFlagAssociatedInstance: WSManEnumFlags = 0i32; +pub const WSManFlagAssociationInstance: WSManEnumFlags = 128i32; +pub const WSManFlagCredUsernamePassword: WSManSessionFlags = 4096i32; +pub const WSManFlagEnableSPNServerPort: WSManSessionFlags = 4194304i32; +pub const WSManFlagHierarchyDeep: WSManEnumFlags = 0i32; +pub const WSManFlagHierarchyDeepBasePropsOnly: WSManEnumFlags = 64i32; +pub const WSManFlagHierarchyShallow: WSManEnumFlags = 32i32; +pub const WSManFlagNoEncryption: WSManSessionFlags = 1048576i32; +pub const WSManFlagNonXmlText: WSManEnumFlags = 1i32; +pub const WSManFlagProxyAuthenticationUseBasic: WSManProxyAuthenticationFlags = 2i32; +pub const WSManFlagProxyAuthenticationUseDigest: WSManProxyAuthenticationFlags = 4i32; +pub const WSManFlagProxyAuthenticationUseNegotiate: WSManProxyAuthenticationFlags = 1i32; +pub const WSManFlagReturnEPR: WSManEnumFlags = 2i32; +pub const WSManFlagReturnObject: WSManEnumFlags = 0i32; +pub const WSManFlagReturnObjectAndEPR: WSManEnumFlags = 4i32; +pub const WSManFlagSkipCACheck: WSManSessionFlags = 8192i32; +pub const WSManFlagSkipCNCheck: WSManSessionFlags = 16384i32; +pub const WSManFlagSkipRevocationCheck: WSManSessionFlags = 33554432i32; +pub const WSManFlagUTF16: WSManSessionFlags = 8388608i32; +pub const WSManFlagUTF8: WSManSessionFlags = 1i32; +pub const WSManFlagUseBasic: WSManSessionFlags = 262144i32; +pub const WSManFlagUseClientCertificate: WSManSessionFlags = 2097152i32; +pub const WSManFlagUseCredSsp: WSManSessionFlags = 16777216i32; +pub const WSManFlagUseDigest: WSManSessionFlags = 65536i32; +pub const WSManFlagUseKerberos: WSManSessionFlags = 524288i32; +pub const WSManFlagUseNegotiate: WSManSessionFlags = 131072i32; +pub const WSManFlagUseNoAuthentication: WSManSessionFlags = 32768i32; +pub const WSManFlagUseSsl: WSManSessionFlags = 134217728i32; +pub const WSManInternal: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7de087a5_5dcb_4df7_bb12_0924ad8fbd9a); +pub const WSManProxyAutoDetect: WSManProxyAccessTypeFlags = 4i32; +pub const WSManProxyIEConfig: WSManProxyAccessTypeFlags = 1i32; +pub const WSManProxyNoProxyServer: WSManProxyAccessTypeFlags = 8i32; +pub const WSManProxyWinHttpConfig: WSManProxyAccessTypeFlags = 2i32; +pub type WSManAuthenticationFlags = i32; +pub type WSManCallbackFlags = i32; +pub type WSManDataType = i32; +pub type WSManEnumFlags = i32; +pub type WSManProxyAccessType = i32; +pub type WSManProxyAccessTypeFlags = i32; +pub type WSManProxyAuthenticationFlags = i32; +pub type WSManSessionFlags = i32; +pub type WSManSessionOption = i32; +pub type WSManShellFlag = i32; +pub type WSMAN_API_HANDLE = isize; +#[repr(C)] +pub struct WSMAN_AUTHENTICATION_CREDENTIALS { + pub authenticationMechanism: u32, + pub Anonymous: WSMAN_AUTHENTICATION_CREDENTIALS_0, +} +impl ::core::marker::Copy for WSMAN_AUTHENTICATION_CREDENTIALS {} +impl ::core::clone::Clone for WSMAN_AUTHENTICATION_CREDENTIALS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WSMAN_AUTHENTICATION_CREDENTIALS_0 { + pub userAccount: WSMAN_USERNAME_PASSWORD_CREDS, + pub certificateThumbprint: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSMAN_AUTHENTICATION_CREDENTIALS_0 {} +impl ::core::clone::Clone for WSMAN_AUTHENTICATION_CREDENTIALS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_AUTHZ_QUOTA { + pub maxAllowedConcurrentShells: u32, + pub maxAllowedConcurrentOperations: u32, + pub timeslotSize: u32, + pub maxAllowedOperationsPerTimeslot: u32, +} +impl ::core::marker::Copy for WSMAN_AUTHZ_QUOTA {} +impl ::core::clone::Clone for WSMAN_AUTHZ_QUOTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_CERTIFICATE_DETAILS { + pub subject: ::windows_sys::core::PCWSTR, + pub issuerName: ::windows_sys::core::PCWSTR, + pub issuerThumbprint: ::windows_sys::core::PCWSTR, + pub subjectName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSMAN_CERTIFICATE_DETAILS {} +impl ::core::clone::Clone for WSMAN_CERTIFICATE_DETAILS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_COMMAND_ARG_SET { + pub argsCount: u32, + pub args: *const ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSMAN_COMMAND_ARG_SET {} +impl ::core::clone::Clone for WSMAN_COMMAND_ARG_SET { + fn clone(&self) -> Self { + *self + } +} +pub type WSMAN_COMMAND_HANDLE = isize; +#[repr(C)] +pub struct WSMAN_CONNECT_DATA { + pub data: WSMAN_DATA, +} +impl ::core::marker::Copy for WSMAN_CONNECT_DATA {} +impl ::core::clone::Clone for WSMAN_CONNECT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_CREATE_SHELL_DATA { + pub data: WSMAN_DATA, +} +impl ::core::marker::Copy for WSMAN_CREATE_SHELL_DATA {} +impl ::core::clone::Clone for WSMAN_CREATE_SHELL_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_DATA { + pub r#type: WSManDataType, + pub Anonymous: WSMAN_DATA_0, +} +impl ::core::marker::Copy for WSMAN_DATA {} +impl ::core::clone::Clone for WSMAN_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WSMAN_DATA_0 { + pub text: WSMAN_DATA_TEXT, + pub binaryData: WSMAN_DATA_BINARY, + pub number: u32, +} +impl ::core::marker::Copy for WSMAN_DATA_0 {} +impl ::core::clone::Clone for WSMAN_DATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_DATA_BINARY { + pub dataLength: u32, + pub data: *mut u8, +} +impl ::core::marker::Copy for WSMAN_DATA_BINARY {} +impl ::core::clone::Clone for WSMAN_DATA_BINARY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_DATA_TEXT { + pub bufferLength: u32, + pub buffer: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSMAN_DATA_TEXT {} +impl ::core::clone::Clone for WSMAN_DATA_TEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_ENVIRONMENT_VARIABLE { + pub name: ::windows_sys::core::PCWSTR, + pub value: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSMAN_ENVIRONMENT_VARIABLE {} +impl ::core::clone::Clone for WSMAN_ENVIRONMENT_VARIABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_ENVIRONMENT_VARIABLE_SET { + pub varsCount: u32, + pub vars: *mut WSMAN_ENVIRONMENT_VARIABLE, +} +impl ::core::marker::Copy for WSMAN_ENVIRONMENT_VARIABLE_SET {} +impl ::core::clone::Clone for WSMAN_ENVIRONMENT_VARIABLE_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_ERROR { + pub code: u32, + pub errorDetail: ::windows_sys::core::PCWSTR, + pub language: ::windows_sys::core::PCWSTR, + pub machineName: ::windows_sys::core::PCWSTR, + pub pluginName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSMAN_ERROR {} +impl ::core::clone::Clone for WSMAN_ERROR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_FILTER { + pub filter: ::windows_sys::core::PCWSTR, + pub dialect: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSMAN_FILTER {} +impl ::core::clone::Clone for WSMAN_FILTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_FRAGMENT { + pub path: ::windows_sys::core::PCWSTR, + pub dialect: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSMAN_FRAGMENT {} +impl ::core::clone::Clone for WSMAN_FRAGMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_KEY { + pub key: ::windows_sys::core::PCWSTR, + pub value: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSMAN_KEY {} +impl ::core::clone::Clone for WSMAN_KEY { + fn clone(&self) -> Self { + *self + } +} +pub type WSMAN_OPERATION_HANDLE = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSMAN_OPERATION_INFO { + pub fragment: WSMAN_FRAGMENT, + pub filter: WSMAN_FILTER, + pub selectorSet: WSMAN_SELECTOR_SET, + pub optionSet: WSMAN_OPTION_SET, + pub reserved: *mut ::core::ffi::c_void, + pub version: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSMAN_OPERATION_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSMAN_OPERATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSMAN_OPERATION_INFOEX { + pub fragment: WSMAN_FRAGMENT, + pub filter: WSMAN_FILTER, + pub selectorSet: WSMAN_SELECTOR_SET, + pub optionSet: WSMAN_OPTION_SETEX, + pub version: u32, + pub uiLocale: ::windows_sys::core::PCWSTR, + pub dataLocale: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSMAN_OPERATION_INFOEX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSMAN_OPERATION_INFOEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSMAN_OPTION { + pub name: ::windows_sys::core::PCWSTR, + pub value: ::windows_sys::core::PCWSTR, + pub mustComply: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSMAN_OPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSMAN_OPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSMAN_OPTION_SET { + pub optionsCount: u32, + pub options: *mut WSMAN_OPTION, + pub optionsMustUnderstand: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSMAN_OPTION_SET {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSMAN_OPTION_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSMAN_OPTION_SETEX { + pub optionsCount: u32, + pub options: *mut WSMAN_OPTION, + pub optionsMustUnderstand: super::super::Foundation::BOOL, + pub optionTypes: *const ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSMAN_OPTION_SETEX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSMAN_OPTION_SETEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSMAN_PLUGIN_REQUEST { + pub senderDetails: *mut WSMAN_SENDER_DETAILS, + pub locale: ::windows_sys::core::PCWSTR, + pub resourceUri: ::windows_sys::core::PCWSTR, + pub operationInfo: *mut WSMAN_OPERATION_INFO, + pub shutdownNotification: super::super::Foundation::BOOL, + pub shutdownNotificationHandle: super::super::Foundation::HANDLE, + pub dataLocale: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSMAN_PLUGIN_REQUEST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSMAN_PLUGIN_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_PROXY_INFO { + pub accessType: u32, + pub authenticationCredentials: WSMAN_AUTHENTICATION_CREDENTIALS, +} +impl ::core::marker::Copy for WSMAN_PROXY_INFO {} +impl ::core::clone::Clone for WSMAN_PROXY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_RECEIVE_DATA_RESULT { + pub streamId: ::windows_sys::core::PCWSTR, + pub streamData: WSMAN_DATA, + pub commandState: ::windows_sys::core::PCWSTR, + pub exitCode: u32, +} +impl ::core::marker::Copy for WSMAN_RECEIVE_DATA_RESULT {} +impl ::core::clone::Clone for WSMAN_RECEIVE_DATA_RESULT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union WSMAN_RESPONSE_DATA { + pub receiveData: WSMAN_RECEIVE_DATA_RESULT, + pub connectData: WSMAN_CONNECT_DATA, + pub createData: WSMAN_CREATE_SHELL_DATA, +} +impl ::core::marker::Copy for WSMAN_RESPONSE_DATA {} +impl ::core::clone::Clone for WSMAN_RESPONSE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_SELECTOR_SET { + pub numberKeys: u32, + pub keys: *mut WSMAN_KEY, +} +impl ::core::marker::Copy for WSMAN_SELECTOR_SET {} +impl ::core::clone::Clone for WSMAN_SELECTOR_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WSMAN_SENDER_DETAILS { + pub senderName: ::windows_sys::core::PCWSTR, + pub authenticationMechanism: ::windows_sys::core::PCWSTR, + pub certificateDetails: *mut WSMAN_CERTIFICATE_DETAILS, + pub clientToken: super::super::Foundation::HANDLE, + pub httpURL: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WSMAN_SENDER_DETAILS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WSMAN_SENDER_DETAILS { + fn clone(&self) -> Self { + *self + } +} +pub type WSMAN_SESSION_HANDLE = isize; +#[repr(C)] +pub struct WSMAN_SHELL_ASYNC { + pub operationContext: *mut ::core::ffi::c_void, + pub completionFunction: WSMAN_SHELL_COMPLETION_FUNCTION, +} +impl ::core::marker::Copy for WSMAN_SHELL_ASYNC {} +impl ::core::clone::Clone for WSMAN_SHELL_ASYNC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_SHELL_DISCONNECT_INFO { + pub idleTimeoutMs: u32, +} +impl ::core::marker::Copy for WSMAN_SHELL_DISCONNECT_INFO {} +impl ::core::clone::Clone for WSMAN_SHELL_DISCONNECT_INFO { + fn clone(&self) -> Self { + *self + } +} +pub type WSMAN_SHELL_HANDLE = isize; +#[repr(C)] +pub struct WSMAN_SHELL_STARTUP_INFO_V10 { + pub inputStreamSet: *mut WSMAN_STREAM_ID_SET, + pub outputStreamSet: *mut WSMAN_STREAM_ID_SET, + pub idleTimeoutMs: u32, + pub workingDirectory: ::windows_sys::core::PCWSTR, + pub variableSet: *mut WSMAN_ENVIRONMENT_VARIABLE_SET, +} +impl ::core::marker::Copy for WSMAN_SHELL_STARTUP_INFO_V10 {} +impl ::core::clone::Clone for WSMAN_SHELL_STARTUP_INFO_V10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_SHELL_STARTUP_INFO_V11 { + pub Base: WSMAN_SHELL_STARTUP_INFO_V10, + pub name: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSMAN_SHELL_STARTUP_INFO_V11 {} +impl ::core::clone::Clone for WSMAN_SHELL_STARTUP_INFO_V11 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_STREAM_ID_SET { + pub streamIDsCount: u32, + pub streamIDs: *const ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSMAN_STREAM_ID_SET {} +impl ::core::clone::Clone for WSMAN_STREAM_ID_SET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WSMAN_USERNAME_PASSWORD_CREDS { + pub username: ::windows_sys::core::PCWSTR, + pub password: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for WSMAN_USERNAME_PASSWORD_CREDS {} +impl ::core::clone::Clone for WSMAN_USERNAME_PASSWORD_CREDS { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WSMAN_PLUGIN_AUTHORIZE_OPERATION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WSMAN_PLUGIN_AUTHORIZE_QUERY_QUOTA = ::core::option::Option ()>; +pub type WSMAN_PLUGIN_AUTHORIZE_RELEASE_CONTEXT = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WSMAN_PLUGIN_AUTHORIZE_USER = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WSMAN_PLUGIN_COMMAND = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WSMAN_PLUGIN_CONNECT = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WSMAN_PLUGIN_RECEIVE = ::core::option::Option ()>; +pub type WSMAN_PLUGIN_RELEASE_COMMAND_CONTEXT = ::core::option::Option ()>; +pub type WSMAN_PLUGIN_RELEASE_SHELL_CONTEXT = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WSMAN_PLUGIN_SEND = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WSMAN_PLUGIN_SHELL = ::core::option::Option ()>; +pub type WSMAN_PLUGIN_SHUTDOWN = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WSMAN_PLUGIN_SIGNAL = ::core::option::Option ()>; +pub type WSMAN_PLUGIN_STARTUP = ::core::option::Option u32>; +pub type WSMAN_SHELL_COMPLETION_FUNCTION = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/RestartManager/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/RestartManager/mod.rs new file mode 100644 index 000000000..a3a7894f8 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/RestartManager/mod.rs @@ -0,0 +1,133 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rstrtmgr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RmAddFilter(dwsessionhandle : u32, strmodulename : ::windows_sys::core::PCWSTR, pprocess : *const RM_UNIQUE_PROCESS, strserviceshortname : ::windows_sys::core::PCWSTR, filteraction : RM_FILTER_ACTION) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rstrtmgr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RmCancelCurrentTask(dwsessionhandle : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rstrtmgr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RmEndSession(dwsessionhandle : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rstrtmgr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RmGetFilterList(dwsessionhandle : u32, pbfilterbuf : *mut u8, cbfilterbuf : u32, cbfilterbufneeded : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rstrtmgr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RmGetList(dwsessionhandle : u32, pnprocinfoneeded : *mut u32, pnprocinfo : *mut u32, rgaffectedapps : *mut RM_PROCESS_INFO, lpdwrebootreasons : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rstrtmgr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RmJoinSession(psessionhandle : *mut u32, strsessionkey : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rstrtmgr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RmRegisterResources(dwsessionhandle : u32, nfiles : u32, rgsfilenames : *const ::windows_sys::core::PCWSTR, napplications : u32, rgapplications : *const RM_UNIQUE_PROCESS, nservices : u32, rgsservicenames : *const ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rstrtmgr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RmRemoveFilter(dwsessionhandle : u32, strmodulename : ::windows_sys::core::PCWSTR, pprocess : *const RM_UNIQUE_PROCESS, strserviceshortname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rstrtmgr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RmRestart(dwsessionhandle : u32, dwrestartflags : u32, fnstatus : RM_WRITE_STATUS_CALLBACK) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rstrtmgr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RmShutdown(dwsessionhandle : u32, lactionflags : u32, fnstatus : RM_WRITE_STATUS_CALLBACK) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rstrtmgr.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RmStartSession(psessionhandle : *mut u32, dwsessionflags : u32, strsessionkey : ::windows_sys::core::PWSTR) -> super::super::Foundation:: WIN32_ERROR); +pub const CCH_RM_MAX_APP_NAME: u32 = 255u32; +pub const CCH_RM_MAX_SVC_NAME: u32 = 63u32; +pub const CCH_RM_SESSION_KEY: u32 = 32u32; +pub const RM_INVALID_PROCESS: i32 = -1i32; +pub const RM_INVALID_TS_SESSION: i32 = -1i32; +pub const RmConsole: RM_APP_TYPE = 5i32; +pub const RmCritical: RM_APP_TYPE = 1000i32; +pub const RmExplorer: RM_APP_TYPE = 4i32; +pub const RmFilterTriggerFile: RM_FILTER_TRIGGER = 1i32; +pub const RmFilterTriggerInvalid: RM_FILTER_TRIGGER = 0i32; +pub const RmFilterTriggerProcess: RM_FILTER_TRIGGER = 2i32; +pub const RmFilterTriggerService: RM_FILTER_TRIGGER = 3i32; +pub const RmForceShutdown: RM_SHUTDOWN_TYPE = 1i32; +pub const RmInvalidFilterAction: RM_FILTER_ACTION = 0i32; +pub const RmMainWindow: RM_APP_TYPE = 1i32; +pub const RmNoRestart: RM_FILTER_ACTION = 1i32; +pub const RmNoShutdown: RM_FILTER_ACTION = 2i32; +pub const RmOtherWindow: RM_APP_TYPE = 2i32; +pub const RmRebootReasonCriticalProcess: RM_REBOOT_REASON = 4i32; +pub const RmRebootReasonCriticalService: RM_REBOOT_REASON = 8i32; +pub const RmRebootReasonDetectedSelf: RM_REBOOT_REASON = 16i32; +pub const RmRebootReasonNone: RM_REBOOT_REASON = 0i32; +pub const RmRebootReasonPermissionDenied: RM_REBOOT_REASON = 1i32; +pub const RmRebootReasonSessionMismatch: RM_REBOOT_REASON = 2i32; +pub const RmService: RM_APP_TYPE = 3i32; +pub const RmShutdownOnlyRegistered: RM_SHUTDOWN_TYPE = 16i32; +pub const RmStatusErrorOnRestart: RM_APP_STATUS = 32i32; +pub const RmStatusErrorOnStop: RM_APP_STATUS = 16i32; +pub const RmStatusRestartMasked: RM_APP_STATUS = 128i32; +pub const RmStatusRestarted: RM_APP_STATUS = 8i32; +pub const RmStatusRunning: RM_APP_STATUS = 1i32; +pub const RmStatusShutdownMasked: RM_APP_STATUS = 64i32; +pub const RmStatusStopped: RM_APP_STATUS = 2i32; +pub const RmStatusStoppedOther: RM_APP_STATUS = 4i32; +pub const RmStatusUnknown: RM_APP_STATUS = 0i32; +pub const RmUnknownApp: RM_APP_TYPE = 0i32; +pub type RM_APP_STATUS = i32; +pub type RM_APP_TYPE = i32; +pub type RM_FILTER_ACTION = i32; +pub type RM_FILTER_TRIGGER = i32; +pub type RM_REBOOT_REASON = i32; +pub type RM_SHUTDOWN_TYPE = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RM_FILTER_INFO { + pub FilterAction: RM_FILTER_ACTION, + pub FilterTrigger: RM_FILTER_TRIGGER, + pub cbNextOffset: u32, + pub Anonymous: RM_FILTER_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RM_FILTER_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RM_FILTER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union RM_FILTER_INFO_0 { + pub strFilename: ::windows_sys::core::PWSTR, + pub Process: RM_UNIQUE_PROCESS, + pub strServiceShortName: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RM_FILTER_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RM_FILTER_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RM_PROCESS_INFO { + pub Process: RM_UNIQUE_PROCESS, + pub strAppName: [u16; 256], + pub strServiceShortName: [u16; 64], + pub ApplicationType: RM_APP_TYPE, + pub AppStatus: u32, + pub TSSessionId: u32, + pub bRestartable: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RM_PROCESS_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RM_PROCESS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RM_UNIQUE_PROCESS { + pub dwProcessId: u32, + pub ProcessStartTime: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RM_UNIQUE_PROCESS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RM_UNIQUE_PROCESS { + fn clone(&self) -> Self { + *self + } +} +pub type RM_WRITE_STATUS_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Restore/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Restore/mod.rs new file mode 100644 index 000000000..7575de185 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Restore/mod.rs @@ -0,0 +1,96 @@ +::windows_targets::link!("srclient.dll" "system" fn SRRemoveRestorePoint(dwrpnum : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("sfc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SRSetRestorePointA(prestoreptspec : *const RESTOREPOINTINFOA, psmgrstatus : *mut STATEMGRSTATUS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("sfc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SRSetRestorePointW(prestoreptspec : *const RESTOREPOINTINFOW, psmgrstatus : *mut STATEMGRSTATUS) -> super::super::Foundation:: BOOL); +pub const ACCESSIBILITY_SETTING: u32 = 3u32; +pub const APPLICATION_INSTALL: RESTOREPOINTINFO_TYPE = 0u32; +pub const APPLICATION_RUN: u32 = 5u32; +pub const APPLICATION_UNINSTALL: RESTOREPOINTINFO_TYPE = 1u32; +pub const BACKUP: u32 = 15u32; +pub const BACKUP_RECOVERY: u32 = 14u32; +pub const BEGIN_NESTED_SYSTEM_CHANGE: RESTOREPOINTINFO_EVENT_TYPE = 102u32; +pub const BEGIN_NESTED_SYSTEM_CHANGE_NORP: u32 = 104u32; +pub const BEGIN_SYSTEM_CHANGE: RESTOREPOINTINFO_EVENT_TYPE = 100u32; +pub const CANCELLED_OPERATION: RESTOREPOINTINFO_TYPE = 13u32; +pub const CHECKPOINT: u32 = 7u32; +pub const CRITICAL_UPDATE: u32 = 18u32; +pub const DESKTOP_SETTING: u32 = 2u32; +pub const DEVICE_DRIVER_INSTALL: RESTOREPOINTINFO_TYPE = 10u32; +pub const END_NESTED_SYSTEM_CHANGE: RESTOREPOINTINFO_EVENT_TYPE = 103u32; +pub const END_SYSTEM_CHANGE: RESTOREPOINTINFO_EVENT_TYPE = 101u32; +pub const FIRSTRUN: u32 = 11u32; +pub const MANUAL_CHECKPOINT: u32 = 16u32; +pub const MAX_DESC: u32 = 64u32; +pub const MAX_DESC_W: u32 = 256u32; +pub const MAX_EVENT: u32 = 104u32; +pub const MAX_RPT: u32 = 18u32; +pub const MIN_EVENT: u32 = 100u32; +pub const MIN_RPT: u32 = 0u32; +pub const MODIFY_SETTINGS: RESTOREPOINTINFO_TYPE = 12u32; +pub const OE_SETTING: u32 = 4u32; +pub const RESTORE: u32 = 6u32; +pub const WINDOWS_BOOT: u32 = 9u32; +pub const WINDOWS_SHUTDOWN: u32 = 8u32; +pub const WINDOWS_UPDATE: u32 = 17u32; +pub type RESTOREPOINTINFO_EVENT_TYPE = u32; +pub type RESTOREPOINTINFO_TYPE = u32; +#[repr(C, packed(1))] +pub struct RESTOREPOINTINFOA { + pub dwEventType: RESTOREPOINTINFO_EVENT_TYPE, + pub dwRestorePtType: RESTOREPOINTINFO_TYPE, + pub llSequenceNumber: i64, + pub szDescription: [u8; 64], +} +impl ::core::marker::Copy for RESTOREPOINTINFOA {} +impl ::core::clone::Clone for RESTOREPOINTINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RESTOREPOINTINFOEX { + pub ftCreation: super::super::Foundation::FILETIME, + pub dwEventType: u32, + pub dwRestorePtType: u32, + pub dwRPNum: u32, + pub szDescription: [u16; 256], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RESTOREPOINTINFOEX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RESTOREPOINTINFOEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct RESTOREPOINTINFOW { + pub dwEventType: RESTOREPOINTINFO_EVENT_TYPE, + pub dwRestorePtType: RESTOREPOINTINFO_TYPE, + pub llSequenceNumber: i64, + pub szDescription: [u16; 256], +} +impl ::core::marker::Copy for RESTOREPOINTINFOW {} +impl ::core::clone::Clone for RESTOREPOINTINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STATEMGRSTATUS { + pub nStatus: super::super::Foundation::WIN32_ERROR, + pub llSequenceNumber: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STATEMGRSTATUS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STATEMGRSTATUS { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Rpc/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Rpc/mod.rs new file mode 100644 index 000000000..9d39f0356 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Rpc/mod.rs @@ -0,0 +1,3822 @@ +::windows_targets::link!("rpcrt4.dll" "system" fn DceErrorInqTextA(rpcstatus : RPC_STATUS, errortext : ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn DceErrorInqTextW(rpcstatus : RPC_STATUS, errortext : ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn IUnknown_AddRef_Proxy(this : ::windows_sys::core::IUnknown) -> u32); +::windows_targets::link!("rpcrt4.dll" "system" fn IUnknown_QueryInterface_Proxy(this : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, ppvobject : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rpcrt4.dll" "system" fn IUnknown_Release_Proxy(this : ::windows_sys::core::IUnknown) -> u32); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcAllocate(size : u32) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn I_RpcAsyncAbortCall(pasync : *const RPC_ASYNC_STATE, exceptioncode : u32) -> RPC_STATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn I_RpcAsyncSetHandle(message : *const RPC_MESSAGE, pasync : *const RPC_ASYNC_STATE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingCopy(sourcebinding : *mut ::core::ffi::c_void, destinationbinding : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingCreateNP(servername : ::windows_sys::core::PCWSTR, servicename : ::windows_sys::core::PCWSTR, networkoptions : ::windows_sys::core::PCWSTR, binding : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingHandleToAsyncHandle(binding : *mut ::core::ffi::c_void, asynchandle : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn I_RpcBindingInqClientTokenAttributes(binding : *const ::core::ffi::c_void, tokenid : *mut super::super::Foundation:: LUID, authenticationid : *mut super::super::Foundation:: LUID, modifiedid : *mut super::super::Foundation:: LUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingInqDynamicEndpointA(binding : *const ::core::ffi::c_void, dynamicendpoint : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingInqDynamicEndpointW(binding : *const ::core::ffi::c_void, dynamicendpoint : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingInqLocalClientPID(binding : *mut ::core::ffi::c_void, pid : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingInqMarshalledTargetInfo(binding : *const ::core::ffi::c_void, marshalledtargetinfosize : *mut u32, marshalledtargetinfo : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingInqSecurityContext(binding : *mut ::core::ffi::c_void, securitycontexthandle : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingInqSecurityContextKeyInfo(binding : *const ::core::ffi::c_void, keyinfo : *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingInqTransportType(binding : *mut ::core::ffi::c_void, r#type : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingInqWireIdForSnego(binding : *const ::core::ffi::c_void, wireid : *mut u8) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingIsClientLocal(bindinghandle : *mut ::core::ffi::c_void, clientlocalflag : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingIsServerLocal(binding : *const ::core::ffi::c_void, serverlocalflag : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingSetPrivateOption(hbinding : *const ::core::ffi::c_void, option : u32, optionvalue : usize) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcBindingToStaticStringBindingW(binding : *mut ::core::ffi::c_void, stringbinding : *mut *mut u16) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcClearMutex(mutex : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcDeleteMutex(mutex : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcExceptionFilter(exceptioncode : u32) -> i32); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcFree(object : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcFreeBuffer(message : *mut RPC_MESSAGE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcFreePipeBuffer(message : *mut RPC_MESSAGE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcGetBuffer(message : *mut RPC_MESSAGE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcGetBufferWithObject(message : *mut RPC_MESSAGE, objectuuid : *mut ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcGetCurrentCallHandle() -> *mut ::core::ffi::c_void); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcGetDefaultSD(ppsecuritydescriptor : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcGetExtendedError() -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcIfInqTransferSyntaxes(rpcifhandle : *mut ::core::ffi::c_void, transfersyntaxes : *mut RPC_TRANSFER_SYNTAX, transfersyntaxsize : u32, transfersyntaxcount : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcMapWin32Status(status : RPC_STATUS) -> i32); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcMgmtEnableDedicatedThreadPool() -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcNegotiateTransferSyntax(message : *mut RPC_MESSAGE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcNsBindingSetEntryNameA(binding : *const ::core::ffi::c_void, entrynamesyntax : u32, entryname : ::windows_sys::core::PCSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcNsBindingSetEntryNameW(binding : *const ::core::ffi::c_void, entrynamesyntax : u32, entryname : ::windows_sys::core::PCWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn I_RpcNsGetBuffer(message : *mut RPC_MESSAGE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcNsInterfaceExported(entrynamesyntax : u32, entryname : *const u16, rpcinterfaceinformation : *const RPC_SERVER_INTERFACE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcNsInterfaceUnexported(entrynamesyntax : u32, entryname : *mut u16, rpcinterfaceinformation : *mut RPC_SERVER_INTERFACE) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn I_RpcNsRaiseException(message : *mut RPC_MESSAGE, status : RPC_STATUS) -> ()); +::windows_targets::link!("rpcns4.dll" "system" fn I_RpcNsSendReceive(message : *mut RPC_MESSAGE, handle : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcOpenClientProcess(binding : *const ::core::ffi::c_void, desiredaccess : u32, clientprocess : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcPauseExecution(milliseconds : u32) -> ()); +::windows_targets::link!("rpcns4.dll" "system" fn I_RpcReBindBuffer(message : *mut RPC_MESSAGE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcReallocPipeBuffer(message : *const RPC_MESSAGE, newsize : u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcReceive(message : *mut RPC_MESSAGE, size : u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcRecordCalloutFailure(rpcstatus : RPC_STATUS, calloutstate : *mut RDR_CALLOUT_STATE, dllname : *mut u16) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcRequestMutex(mutex : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcSend(message : *mut RPC_MESSAGE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcSendReceive(message : *mut RPC_MESSAGE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerCheckClientRestriction(context : *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerDisableExceptionFilter() -> i32); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerGetAssociationID(binding : *const ::core::ffi::c_void, associationid : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerInqAddressChangeFn() -> *mut RPC_ADDRESS_CHANGE_FN); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerInqLocalConnAddress(binding : *mut ::core::ffi::c_void, buffer : *mut ::core::ffi::c_void, buffersize : *mut u32, addressformat : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerInqRemoteConnAddress(binding : *mut ::core::ffi::c_void, buffer : *mut ::core::ffi::c_void, buffersize : *mut u32, addressformat : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerInqTransportType(r#type : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerRegisterForwardFunction(pforwardfunction : *mut RPC_FORWARD_FUNCTION) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerSetAddressChangeFn(paddresschangefn : *mut RPC_ADDRESS_CHANGE_FN) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerStartService(protseq : ::windows_sys::core::PCWSTR, endpoint : ::windows_sys::core::PCWSTR, ifspec : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerSubscribeForDisconnectNotification(binding : *const ::core::ffi::c_void, hevent : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerSubscribeForDisconnectNotification2(binding : *const ::core::ffi::c_void, hevent : *const ::core::ffi::c_void, subscriptionid : *mut ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerUnsubscribeForDisconnectNotification(binding : *const ::core::ffi::c_void, subscriptionid : ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerUseProtseq2A(networkaddress : ::windows_sys::core::PCSTR, protseq : ::windows_sys::core::PCSTR, maxcalls : u32, securitydescriptor : *const ::core::ffi::c_void, policy : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerUseProtseq2W(networkaddress : ::windows_sys::core::PCWSTR, protseq : ::windows_sys::core::PCWSTR, maxcalls : u32, securitydescriptor : *const ::core::ffi::c_void, policy : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerUseProtseqEp2A(networkaddress : ::windows_sys::core::PCSTR, protseq : ::windows_sys::core::PCSTR, maxcalls : u32, endpoint : ::windows_sys::core::PCSTR, securitydescriptor : *const ::core::ffi::c_void, policy : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcServerUseProtseqEp2W(networkaddress : ::windows_sys::core::PCWSTR, protseq : ::windows_sys::core::PCWSTR, maxcalls : u32, endpoint : ::windows_sys::core::PCWSTR, securitydescriptor : *const ::core::ffi::c_void, policy : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcSessionStrictContextHandle() -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcSsDontSerializeContext() -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcSystemHandleTypeSpecificWork(handle : *mut ::core::ffi::c_void, actualtype : u8, idltype : u8, marshaldirection : LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_RpcTurnOnEEInfoPropagation() -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn I_UuidCreate(uuid : *mut ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn MesBufferHandleReset(handle : *const ::core::ffi::c_void, handlestyle : u32, operation : MIDL_ES_CODE, pbuffer : *const *const i8, buffersize : u32, pencodedsize : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn MesDecodeBufferHandleCreate(buffer : ::windows_sys::core::PCSTR, buffersize : u32, phandle : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn MesDecodeIncrementalHandleCreate(userstate : *mut ::core::ffi::c_void, readfn : MIDL_ES_READ, phandle : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn MesEncodeDynBufferHandleCreate(pbuffer : *mut *mut i8, pencodedsize : *mut u32, phandle : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn MesEncodeFixedBufferHandleCreate(pbuffer : ::windows_sys::core::PSTR, buffersize : u32, pencodedsize : *mut u32, phandle : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn MesEncodeIncrementalHandleCreate(userstate : *mut ::core::ffi::c_void, allocfn : MIDL_ES_ALLOC, writefn : MIDL_ES_WRITE, phandle : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn MesHandleFree(handle : *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn MesIncrementalHandleReset(handle : *mut ::core::ffi::c_void, userstate : *mut ::core::ffi::c_void, allocfn : MIDL_ES_ALLOC, writefn : MIDL_ES_WRITE, readfn : MIDL_ES_READ, operation : MIDL_ES_CODE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn MesInqProcEncodingId(handle : *mut ::core::ffi::c_void, pinterfaceid : *mut RPC_SYNTAX_IDENTIFIER, pprocnum : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn NDRCContextBinding(ccontext : isize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("rpcrt4.dll" "system" fn NDRCContextMarshall(ccontext : isize, pbuff : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn NDRCContextUnmarshall(pccontext : *mut isize, hbinding : *const ::core::ffi::c_void, pbuff : *const ::core::ffi::c_void, datarepresentation : u32) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn NDRSContextMarshall(ccontext : *const NDR_SCONTEXT, pbuff : *mut ::core::ffi::c_void, userrundownin : NDR_RUNDOWN) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn NDRSContextMarshall2(bindinghandle : *const ::core::ffi::c_void, ccontext : *const NDR_SCONTEXT, pbuff : *mut ::core::ffi::c_void, userrundownin : NDR_RUNDOWN, ctxguard : *const ::core::ffi::c_void, flags : u32) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn NDRSContextMarshallEx(bindinghandle : *const ::core::ffi::c_void, ccontext : *const NDR_SCONTEXT, pbuff : *mut ::core::ffi::c_void, userrundownin : NDR_RUNDOWN) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn NDRSContextUnmarshall(pbuff : *const ::core::ffi::c_void, datarepresentation : u32) -> *mut NDR_SCONTEXT); +::windows_targets::link!("rpcrt4.dll" "system" fn NDRSContextUnmarshall2(bindinghandle : *const ::core::ffi::c_void, pbuff : *const ::core::ffi::c_void, datarepresentation : u32, ctxguard : *const ::core::ffi::c_void, flags : u32) -> *mut NDR_SCONTEXT); +::windows_targets::link!("rpcrt4.dll" "system" fn NDRSContextUnmarshallEx(bindinghandle : *const ::core::ffi::c_void, pbuff : *const ::core::ffi::c_void, datarepresentation : u32) -> *mut NDR_SCONTEXT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "cdecl" #[doc = "Required features: `\"Win32_System_Com\"`"] fn Ndr64AsyncClientCall(pproxyinfo : *mut MIDL_STUBLESS_PROXY_INFO, nprocnum : u32, preturnvalue : *mut ::core::ffi::c_void, ...) -> CLIENT_CALL_RETURN); +::windows_targets::link!("rpcrt4.dll" "system" fn Ndr64AsyncServerCall64(prpcmsg : *mut RPC_MESSAGE) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn Ndr64AsyncServerCallAll(prpcmsg : *mut RPC_MESSAGE) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "cdecl" #[doc = "Required features: `\"Win32_System_Com\"`"] fn Ndr64DcomAsyncClientCall(pproxyinfo : *mut MIDL_STUBLESS_PROXY_INFO, nprocnum : u32, preturnvalue : *mut ::core::ffi::c_void, ...) -> CLIENT_CALL_RETURN); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn Ndr64DcomAsyncStubCall(pthis : super::Com:: IRpcStubBuffer, pchannel : super::Com:: IRpcChannelBuffer, prpcmsg : *mut RPC_MESSAGE, pdwstubphase : *mut u32) -> i32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrAllocate(pstubmsg : *mut MIDL_STUB_MESSAGE, len : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "cdecl" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrAsyncClientCall(pstubdescriptor : *mut MIDL_STUB_DESC, pformat : *mut u8, ...) -> CLIENT_CALL_RETURN); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrAsyncServerCall(prpcmsg : *mut RPC_MESSAGE) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrByteCountPointerBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrByteCountPointerFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrByteCountPointerMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrByteCountPointerUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrClearOutParameters(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8, argaddr : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "cdecl" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrClientCall2(pstubdescriptor : *mut MIDL_STUB_DESC, pformat : *mut u8, ...) -> CLIENT_CALL_RETURN); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "cdecl" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrClientCall3(pproxyinfo : *mut MIDL_STUBLESS_PROXY_INFO, nprocnum : u32, preturnvalue : *mut ::core::ffi::c_void, ...) -> CLIENT_CALL_RETURN); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrClientContextMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, contexthandle : isize, fcheck : i32) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrClientContextUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pcontexthandle : *mut isize, bindhandle : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrClientInitialize(prpcmsg : *mut RPC_MESSAGE, pstubmsg : *mut MIDL_STUB_MESSAGE, pstubdescriptor : *mut MIDL_STUB_DESC, procnum : u32) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrClientInitializeNew(prpcmsg : *mut RPC_MESSAGE, pstubmsg : *mut MIDL_STUB_MESSAGE, pstubdescriptor : *mut MIDL_STUB_DESC, procnum : u32) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrComplexArrayBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrComplexArrayFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrComplexArrayMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrComplexArrayMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrComplexArrayUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrComplexStructBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrComplexStructFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrComplexStructMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrComplexStructMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrComplexStructUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantArrayBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantArrayFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantArrayMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantArrayMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantArrayUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantStringBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantStringMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantStringMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantStringUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantStructBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantStructFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantStructMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantStructMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantStructUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantVaryingArrayBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantVaryingArrayFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantVaryingArrayMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantVaryingArrayMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantVaryingArrayUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantVaryingStructBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantVaryingStructFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantVaryingStructMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantVaryingStructMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConformantVaryingStructUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrContextHandleInitialize(pstubmsg : *const MIDL_STUB_MESSAGE, pformat : *const u8) -> *mut NDR_SCONTEXT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrContextHandleSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConvert(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrConvert2(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8, numberparams : i32) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrCorrelationFree(pstubmsg : *mut MIDL_STUB_MESSAGE) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrCorrelationInitialize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut ::core::ffi::c_void, cachesize : u32, flags : u32) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrCorrelationPass(pstubmsg : *mut MIDL_STUB_MESSAGE) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrCreateServerInterfaceFromStub(pstub : super::Com:: IRpcStubBuffer, pserverif : *mut RPC_SERVER_INTERFACE) -> RPC_STATUS); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "cdecl" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrDcomAsyncClientCall(pstubdescriptor : *mut MIDL_STUB_DESC, pformat : *mut u8, ...) -> CLIENT_CALL_RETURN); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrDcomAsyncStubCall(pthis : super::Com:: IRpcStubBuffer, pchannel : super::Com:: IRpcChannelBuffer, prpcmsg : *mut RPC_MESSAGE, pdwstubphase : *mut u32) -> i32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrEncapsulatedUnionBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrEncapsulatedUnionFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrEncapsulatedUnionMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrEncapsulatedUnionMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrEncapsulatedUnionUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrFixedArrayBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrFixedArrayFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrFixedArrayMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrFixedArrayMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrFixedArrayUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrFreeBuffer(pstubmsg : *mut MIDL_STUB_MESSAGE) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrFullPointerXlatFree(pxlattables : *mut FULL_PTR_XLAT_TABLES) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrFullPointerXlatInit(numberofpointers : u32, xlatside : XLAT_SIDE) -> *mut FULL_PTR_XLAT_TABLES); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrGetBuffer(pstubmsg : *mut MIDL_STUB_MESSAGE, bufferlength : u32, handle : *mut ::core::ffi::c_void) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrGetDcomProtocolVersion(pstubmsg : *mut MIDL_STUB_MESSAGE, pversion : *mut RPC_VERSION) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrGetUserMarshalInfo(pflags : *const u32, informationlevel : u32, pmarshalinfo : *mut NDR_USER_MARSHAL_INFO) -> RPC_STATUS); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrInterfacePointerBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrInterfacePointerFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrInterfacePointerMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrInterfacePointerMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrInterfacePointerUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMapCommAndFaultStatus(pstubmsg : *mut MIDL_STUB_MESSAGE, pcommstatus : *mut u32, pfaultstatus : *mut u32, status : RPC_STATUS) -> RPC_STATUS); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "cdecl" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesProcEncodeDecode(handle : *mut ::core::ffi::c_void, pstubdesc : *const MIDL_STUB_DESC, pformatstring : *mut u8, ...) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "cdecl" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesProcEncodeDecode2(handle : *mut ::core::ffi::c_void, pstubdesc : *const MIDL_STUB_DESC, pformatstring : *mut u8, ...) -> CLIENT_CALL_RETURN); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "cdecl" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesProcEncodeDecode3(handle : *mut ::core::ffi::c_void, pproxyinfo : *const MIDL_STUBLESS_PROXY_INFO, nprocnum : u32, preturnvalue : *mut ::core::ffi::c_void, ...) -> CLIENT_CALL_RETURN); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrMesSimpleTypeAlignSize(param0 : *mut ::core::ffi::c_void) -> usize); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesSimpleTypeAlignSizeAll(handle : *mut ::core::ffi::c_void, pproxyinfo : *const MIDL_STUBLESS_PROXY_INFO) -> usize); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrMesSimpleTypeDecode(handle : *mut ::core::ffi::c_void, pobject : *mut ::core::ffi::c_void, size : i16) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesSimpleTypeDecodeAll(handle : *mut ::core::ffi::c_void, pproxyinfo : *const MIDL_STUBLESS_PROXY_INFO, pobject : *mut ::core::ffi::c_void, size : i16) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesSimpleTypeEncode(handle : *mut ::core::ffi::c_void, pstubdesc : *const MIDL_STUB_DESC, pobject : *const ::core::ffi::c_void, size : i16) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesSimpleTypeEncodeAll(handle : *mut ::core::ffi::c_void, pproxyinfo : *const MIDL_STUBLESS_PROXY_INFO, pobject : *const ::core::ffi::c_void, size : i16) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesTypeAlignSize(handle : *mut ::core::ffi::c_void, pstubdesc : *const MIDL_STUB_DESC, pformatstring : *mut u8, pobject : *const ::core::ffi::c_void) -> usize); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesTypeAlignSize2(handle : *mut ::core::ffi::c_void, ppicklinginfo : *const MIDL_TYPE_PICKLING_INFO, pstubdesc : *const MIDL_STUB_DESC, pformatstring : *mut u8, pobject : *const ::core::ffi::c_void) -> usize); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesTypeAlignSize3(handle : *mut ::core::ffi::c_void, ppicklinginfo : *const MIDL_TYPE_PICKLING_INFO, pproxyinfo : *const MIDL_STUBLESS_PROXY_INFO, arrtypeoffset : *const *const u32, ntypeindex : u32, pobject : *const ::core::ffi::c_void) -> usize); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesTypeDecode(handle : *mut ::core::ffi::c_void, pstubdesc : *const MIDL_STUB_DESC, pformatstring : *mut u8, pobject : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesTypeDecode2(handle : *mut ::core::ffi::c_void, ppicklinginfo : *const MIDL_TYPE_PICKLING_INFO, pstubdesc : *const MIDL_STUB_DESC, pformatstring : *mut u8, pobject : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesTypeDecode3(handle : *mut ::core::ffi::c_void, ppicklinginfo : *const MIDL_TYPE_PICKLING_INFO, pproxyinfo : *const MIDL_STUBLESS_PROXY_INFO, arrtypeoffset : *const *const u32, ntypeindex : u32, pobject : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesTypeEncode(handle : *mut ::core::ffi::c_void, pstubdesc : *const MIDL_STUB_DESC, pformatstring : *mut u8, pobject : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesTypeEncode2(handle : *mut ::core::ffi::c_void, ppicklinginfo : *const MIDL_TYPE_PICKLING_INFO, pstubdesc : *const MIDL_STUB_DESC, pformatstring : *mut u8, pobject : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesTypeEncode3(handle : *mut ::core::ffi::c_void, ppicklinginfo : *const MIDL_TYPE_PICKLING_INFO, pproxyinfo : *const MIDL_STUBLESS_PROXY_INFO, arrtypeoffset : *const *const u32, ntypeindex : u32, pobject : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesTypeFree2(handle : *mut ::core::ffi::c_void, ppicklinginfo : *const MIDL_TYPE_PICKLING_INFO, pstubdesc : *const MIDL_STUB_DESC, pformatstring : *mut u8, pobject : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrMesTypeFree3(handle : *mut ::core::ffi::c_void, ppicklinginfo : *const MIDL_TYPE_PICKLING_INFO, pproxyinfo : *const MIDL_STUBLESS_PROXY_INFO, arrtypeoffset : *const *const u32, ntypeindex : u32, pobject : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrNonConformantStringBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrNonConformantStringMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrNonConformantStringMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrNonConformantStringUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrNonEncapsulatedUnionBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrNonEncapsulatedUnionFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrNonEncapsulatedUnionMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrNonEncapsulatedUnionMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrNonEncapsulatedUnionUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrNsGetBuffer(pstubmsg : *mut MIDL_STUB_MESSAGE, bufferlength : u32, handle : *mut ::core::ffi::c_void) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrNsSendReceive(pstubmsg : *mut MIDL_STUB_MESSAGE, pbufferend : *mut u8, pautohandle : *mut *mut ::core::ffi::c_void) -> *mut u8); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrOleAllocate(size : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrOleFree(nodetofree : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrPartialIgnoreClientBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrPartialIgnoreClientMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrPartialIgnoreServerInitialize(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut ::core::ffi::c_void, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrPartialIgnoreServerUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrPointerBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrPointerFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrPointerMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrPointerMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrPointerUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrRangeUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrRpcSmClientAllocate(size : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrRpcSmClientFree(nodetofree : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrRpcSmSetClientToOsf(pmessage : *mut MIDL_STUB_MESSAGE) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrRpcSsDefaultAllocate(size : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrRpcSsDefaultFree(nodetofree : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrRpcSsDisableAllocate(pmessage : *mut MIDL_STUB_MESSAGE) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrRpcSsEnableAllocate(pmessage : *mut MIDL_STUB_MESSAGE) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrSendReceive(pstubmsg : *mut MIDL_STUB_MESSAGE, pbufferend : *mut u8) -> *mut u8); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrServerCall2(prpcmsg : *mut RPC_MESSAGE) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrServerCallAll(prpcmsg : *mut RPC_MESSAGE) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrServerCallNdr64(prpcmsg : *mut RPC_MESSAGE) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrServerContextMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, contexthandle : *mut NDR_SCONTEXT, rundownroutine : NDR_RUNDOWN) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrServerContextNewMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, contexthandle : *mut NDR_SCONTEXT, rundownroutine : NDR_RUNDOWN, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrServerContextNewUnmarshall(pstubmsg : *const MIDL_STUB_MESSAGE, pformat : *const u8) -> *mut NDR_SCONTEXT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrServerContextUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE) -> *mut NDR_SCONTEXT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrServerInitialize(prpcmsg : *mut RPC_MESSAGE, pstubmsg : *mut MIDL_STUB_MESSAGE, pstubdescriptor : *mut MIDL_STUB_DESC) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrServerInitializeMarshall(prpcmsg : *mut RPC_MESSAGE, pstubmsg : *mut MIDL_STUB_MESSAGE) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrServerInitializeNew(prpcmsg : *mut RPC_MESSAGE, pstubmsg : *mut MIDL_STUB_MESSAGE, pstubdescriptor : *mut MIDL_STUB_DESC) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrServerInitializePartial(prpcmsg : *mut RPC_MESSAGE, pstubmsg : *mut MIDL_STUB_MESSAGE, pstubdescriptor : *mut MIDL_STUB_DESC, requestedbuffersize : u32) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrServerInitializeUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pstubdescriptor : *mut MIDL_STUB_DESC, prpcmsg : *mut RPC_MESSAGE) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrSimpleStructBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrSimpleStructFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrSimpleStructMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrSimpleStructMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrSimpleStructUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrSimpleTypeMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, formatchar : u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrSimpleTypeUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, formatchar : u8) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrStubCall2(pthis : *mut ::core::ffi::c_void, pchannel : *mut ::core::ffi::c_void, prpcmsg : *mut RPC_MESSAGE, pdwstubphase : *mut u32) -> i32); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrStubCall3(pthis : *mut ::core::ffi::c_void, pchannel : *mut ::core::ffi::c_void, prpcmsg : *mut RPC_MESSAGE, pdwstubphase : *mut u32) -> i32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrUserMarshalBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrUserMarshalFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrUserMarshalMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrUserMarshalMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +::windows_targets::link!("rpcrt4.dll" "system" fn NdrUserMarshalSimpleTypeConvert(pflags : *mut u32, pbuffer : *mut u8, formatchar : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrUserMarshalUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrVaryingArrayBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrVaryingArrayFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrVaryingArrayMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrVaryingArrayMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrVaryingArrayUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrXmitOrRepAsBufferSize(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrXmitOrRepAsFree(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> ()); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrXmitOrRepAsMarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, pmemory : *mut u8, pformat : *mut u8) -> *mut u8); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrXmitOrRepAsMemorySize(pstubmsg : *mut MIDL_STUB_MESSAGE, pformat : *mut u8) -> u32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn NdrXmitOrRepAsUnmarshall(pstubmsg : *mut MIDL_STUB_MESSAGE, ppmemory : *mut *mut u8, pformat : *mut u8, fmustalloc : u8) -> *mut u8); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn RpcAsyncAbortCall(pasync : *mut RPC_ASYNC_STATE, exceptioncode : u32) -> RPC_STATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn RpcAsyncCancelCall(pasync : *mut RPC_ASYNC_STATE, fabort : super::super::Foundation:: BOOL) -> RPC_STATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn RpcAsyncCompleteCall(pasync : *mut RPC_ASYNC_STATE, reply : *mut ::core::ffi::c_void) -> RPC_STATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn RpcAsyncGetCallStatus(pasync : *const RPC_ASYNC_STATE) -> RPC_STATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn RpcAsyncInitializeHandle(pasync : *mut RPC_ASYNC_STATE, size : u32) -> RPC_STATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn RpcAsyncRegisterInfo(pasync : *const RPC_ASYNC_STATE) -> RPC_STATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn RpcBindingBind(pasync : *const RPC_ASYNC_STATE, binding : *const ::core::ffi::c_void, ifspec : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingCopy(sourcebinding : *const ::core::ffi::c_void, destinationbinding : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn RpcBindingCreateA(template : *const RPC_BINDING_HANDLE_TEMPLATE_V1_A, security : *const RPC_BINDING_HANDLE_SECURITY_V1_A, options : *const RPC_BINDING_HANDLE_OPTIONS_V1, binding : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn RpcBindingCreateW(template : *const RPC_BINDING_HANDLE_TEMPLATE_V1_W, security : *const RPC_BINDING_HANDLE_SECURITY_V1_W, options : *const RPC_BINDING_HANDLE_OPTIONS_V1, binding : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingFree(binding : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingFromStringBindingA(stringbinding : ::windows_sys::core::PCSTR, binding : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingFromStringBindingW(stringbinding : ::windows_sys::core::PCWSTR, binding : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingInqAuthClientA(clientbinding : *const ::core::ffi::c_void, privs : *mut *mut ::core::ffi::c_void, serverprincname : *mut ::windows_sys::core::PSTR, authnlevel : *mut u32, authnsvc : *mut u32, authzsvc : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingInqAuthClientExA(clientbinding : *const ::core::ffi::c_void, privs : *mut *mut ::core::ffi::c_void, serverprincname : *mut ::windows_sys::core::PSTR, authnlevel : *mut u32, authnsvc : *mut u32, authzsvc : *mut u32, flags : u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingInqAuthClientExW(clientbinding : *const ::core::ffi::c_void, privs : *mut *mut ::core::ffi::c_void, serverprincname : *mut ::windows_sys::core::PWSTR, authnlevel : *mut u32, authnsvc : *mut u32, authzsvc : *mut u32, flags : u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingInqAuthClientW(clientbinding : *const ::core::ffi::c_void, privs : *mut *mut ::core::ffi::c_void, serverprincname : *mut ::windows_sys::core::PWSTR, authnlevel : *mut u32, authnsvc : *mut u32, authzsvc : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingInqAuthInfoA(binding : *const ::core::ffi::c_void, serverprincname : *mut ::windows_sys::core::PSTR, authnlevel : *mut u32, authnsvc : *mut u32, authidentity : *mut *mut ::core::ffi::c_void, authzsvc : *mut u32) -> RPC_STATUS); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn RpcBindingInqAuthInfoExA(binding : *const ::core::ffi::c_void, serverprincname : *mut ::windows_sys::core::PSTR, authnlevel : *mut u32, authnsvc : *mut u32, authidentity : *mut *mut ::core::ffi::c_void, authzsvc : *mut u32, rpcqosversion : u32, securityqos : *mut RPC_SECURITY_QOS) -> RPC_STATUS); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn RpcBindingInqAuthInfoExW(binding : *const ::core::ffi::c_void, serverprincname : *mut ::windows_sys::core::PWSTR, authnlevel : *mut u32, authnsvc : *mut u32, authidentity : *mut *mut ::core::ffi::c_void, authzsvc : *mut u32, rpcqosversion : u32, securityqos : *mut RPC_SECURITY_QOS) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingInqAuthInfoW(binding : *const ::core::ffi::c_void, serverprincname : *mut ::windows_sys::core::PWSTR, authnlevel : *mut u32, authnsvc : *mut u32, authidentity : *mut *mut ::core::ffi::c_void, authzsvc : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingInqMaxCalls(binding : *const ::core::ffi::c_void, maxcalls : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingInqObject(binding : *const ::core::ffi::c_void, objectuuid : *mut ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingInqOption(hbinding : *const ::core::ffi::c_void, option : u32, poptionvalue : *mut usize) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingReset(binding : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingServerFromClient(clientbinding : *const ::core::ffi::c_void, serverbinding : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingSetAuthInfoA(binding : *const ::core::ffi::c_void, serverprincname : ::windows_sys::core::PCSTR, authnlevel : u32, authnsvc : u32, authidentity : *const ::core::ffi::c_void, authzsvc : u32) -> RPC_STATUS); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn RpcBindingSetAuthInfoExA(binding : *const ::core::ffi::c_void, serverprincname : ::windows_sys::core::PCSTR, authnlevel : u32, authnsvc : u32, authidentity : *const ::core::ffi::c_void, authzsvc : u32, securityqos : *const RPC_SECURITY_QOS) -> RPC_STATUS); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn RpcBindingSetAuthInfoExW(binding : *const ::core::ffi::c_void, serverprincname : ::windows_sys::core::PCWSTR, authnlevel : u32, authnsvc : u32, authidentity : *const ::core::ffi::c_void, authzsvc : u32, securityqos : *const RPC_SECURITY_QOS) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingSetAuthInfoW(binding : *const ::core::ffi::c_void, serverprincname : ::windows_sys::core::PCWSTR, authnlevel : u32, authnsvc : u32, authidentity : *const ::core::ffi::c_void, authzsvc : u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingSetObject(binding : *const ::core::ffi::c_void, objectuuid : *const ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingSetOption(hbinding : *const ::core::ffi::c_void, option : u32, optionvalue : usize) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingToStringBindingA(binding : *const ::core::ffi::c_void, stringbinding : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingToStringBindingW(binding : *const ::core::ffi::c_void, stringbinding : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingUnbind(binding : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcBindingVectorFree(bindingvector : *mut *mut RPC_BINDING_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcCancelThread(thread : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcCancelThreadEx(thread : *const ::core::ffi::c_void, timeout : i32) -> RPC_STATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn RpcCertGeneratePrincipalNameA(context : *const super::super::Security::Cryptography:: CERT_CONTEXT, flags : u32, pbuffer : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`"] fn RpcCertGeneratePrincipalNameW(context : *const super::super::Security::Cryptography:: CERT_CONTEXT, flags : u32, pbuffer : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcEpRegisterA(ifspec : *const ::core::ffi::c_void, bindingvector : *const RPC_BINDING_VECTOR, uuidvector : *const UUID_VECTOR, annotation : ::windows_sys::core::PCSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcEpRegisterNoReplaceA(ifspec : *const ::core::ffi::c_void, bindingvector : *const RPC_BINDING_VECTOR, uuidvector : *const UUID_VECTOR, annotation : ::windows_sys::core::PCSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcEpRegisterNoReplaceW(ifspec : *const ::core::ffi::c_void, bindingvector : *const RPC_BINDING_VECTOR, uuidvector : *const UUID_VECTOR, annotation : ::windows_sys::core::PCWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcEpRegisterW(ifspec : *const ::core::ffi::c_void, bindingvector : *const RPC_BINDING_VECTOR, uuidvector : *const UUID_VECTOR, annotation : ::windows_sys::core::PCWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcEpResolveBinding(binding : *const ::core::ffi::c_void, ifspec : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcEpUnregister(ifspec : *const ::core::ffi::c_void, bindingvector : *const RPC_BINDING_VECTOR, uuidvector : *const UUID_VECTOR) -> RPC_STATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RpcErrorAddRecord(errorinfo : *const RPC_EXTENDED_ERROR_INFO) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcErrorClearInformation() -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcErrorEndEnumeration(enumhandle : *mut RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RpcErrorGetNextRecord(enumhandle : *const RPC_ERROR_ENUM_HANDLE, copystrings : super::super::Foundation:: BOOL, errorinfo : *mut RPC_EXTENDED_ERROR_INFO) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcErrorGetNumberOfRecords(enumhandle : *const RPC_ERROR_ENUM_HANDLE, records : *mut i32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcErrorLoadErrorInfo(errorblob : *const ::core::ffi::c_void, blobsize : usize, enumhandle : *mut RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcErrorResetEnumeration(enumhandle : *mut RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcErrorSaveErrorInfo(enumhandle : *const RPC_ERROR_ENUM_HANDLE, errorblob : *mut *mut ::core::ffi::c_void, blobsize : *mut usize) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcErrorStartEnumeration(enumhandle : *mut RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcExceptionFilter(exceptioncode : u32) -> i32); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcFreeAuthorizationContext(pauthzclientcontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RpcGetAuthorizationContextForClient(clientbinding : *const ::core::ffi::c_void, impersonateonreturn : super::super::Foundation:: BOOL, reserved1 : *const ::core::ffi::c_void, pexpirationtime : *const i64, reserved2 : super::super::Foundation:: LUID, reserved3 : u32, reserved4 : *const ::core::ffi::c_void, pauthzclientcontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcIfIdVectorFree(ifidvector : *mut *mut RPC_IF_ID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcIfInqId(rpcifhandle : *const ::core::ffi::c_void, rpcifid : *mut RPC_IF_ID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcImpersonateClient(bindinghandle : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcImpersonateClient2(bindinghandle : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcImpersonateClientContainer(bindinghandle : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtEnableIdleCleanup() -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtEpEltInqBegin(epbinding : *const ::core::ffi::c_void, inquirytype : u32, ifid : *const RPC_IF_ID, versoption : u32, objectuuid : *const ::windows_sys::core::GUID, inquirycontext : *mut *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtEpEltInqDone(inquirycontext : *mut *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtEpEltInqNextA(inquirycontext : *const *const ::core::ffi::c_void, ifid : *mut RPC_IF_ID, binding : *mut *mut ::core::ffi::c_void, objectuuid : *mut ::windows_sys::core::GUID, annotation : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtEpEltInqNextW(inquirycontext : *const *const ::core::ffi::c_void, ifid : *mut RPC_IF_ID, binding : *mut *mut ::core::ffi::c_void, objectuuid : *mut ::windows_sys::core::GUID, annotation : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtEpUnregister(epbinding : *const ::core::ffi::c_void, ifid : *const RPC_IF_ID, binding : *const ::core::ffi::c_void, objectuuid : *const ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtInqComTimeout(binding : *const ::core::ffi::c_void, timeout : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtInqDefaultProtectLevel(authnsvc : u32, authnlevel : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtInqIfIds(binding : *const ::core::ffi::c_void, ifidvector : *mut *mut RPC_IF_ID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtInqServerPrincNameA(binding : *const ::core::ffi::c_void, authnsvc : u32, serverprincname : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtInqServerPrincNameW(binding : *const ::core::ffi::c_void, authnsvc : u32, serverprincname : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtInqStats(binding : *const ::core::ffi::c_void, statistics : *mut *mut RPC_STATS_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtIsServerListening(binding : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtSetAuthorizationFn(authorizationfn : RPC_MGMT_AUTHORIZATION_FN) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtSetCancelTimeout(timeout : i32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtSetComTimeout(binding : *const ::core::ffi::c_void, timeout : u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtSetServerStackSize(threadstacksize : u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtStatsVectorFree(statsvector : *mut *mut RPC_STATS_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtStopServerListening(binding : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcMgmtWaitServerListen() -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcNetworkInqProtseqsA(protseqvector : *mut *mut RPC_PROTSEQ_VECTORA) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcNetworkInqProtseqsW(protseqvector : *mut *mut RPC_PROTSEQ_VECTORW) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcNetworkIsProtseqValidA(protseq : ::windows_sys::core::PCSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcNetworkIsProtseqValidW(protseq : ::windows_sys::core::PCWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingExportA(entrynamesyntax : u32, entryname : ::windows_sys::core::PCSTR, ifspec : *const ::core::ffi::c_void, bindingvec : *const RPC_BINDING_VECTOR, objectuuidvec : *const UUID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingExportPnPA(entrynamesyntax : u32, entryname : ::windows_sys::core::PCSTR, ifspec : *const ::core::ffi::c_void, objectvector : *const UUID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingExportPnPW(entrynamesyntax : u32, entryname : ::windows_sys::core::PCWSTR, ifspec : *const ::core::ffi::c_void, objectvector : *const UUID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingExportW(entrynamesyntax : u32, entryname : ::windows_sys::core::PCWSTR, ifspec : *const ::core::ffi::c_void, bindingvec : *const RPC_BINDING_VECTOR, objectuuidvec : *const UUID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingImportBeginA(entrynamesyntax : u32, entryname : ::windows_sys::core::PCSTR, ifspec : *const ::core::ffi::c_void, objuuid : *const ::windows_sys::core::GUID, importcontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingImportBeginW(entrynamesyntax : u32, entryname : ::windows_sys::core::PCWSTR, ifspec : *const ::core::ffi::c_void, objuuid : *const ::windows_sys::core::GUID, importcontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingImportDone(importcontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingImportNext(importcontext : *mut ::core::ffi::c_void, binding : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcNsBindingInqEntryNameA(binding : *const ::core::ffi::c_void, entrynamesyntax : u32, entryname : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcNsBindingInqEntryNameW(binding : *const ::core::ffi::c_void, entrynamesyntax : u32, entryname : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingLookupBeginA(entrynamesyntax : u32, entryname : ::windows_sys::core::PCSTR, ifspec : *const ::core::ffi::c_void, objuuid : *const ::windows_sys::core::GUID, bindingmaxcount : u32, lookupcontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingLookupBeginW(entrynamesyntax : u32, entryname : ::windows_sys::core::PCWSTR, ifspec : *const ::core::ffi::c_void, objuuid : *const ::windows_sys::core::GUID, bindingmaxcount : u32, lookupcontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingLookupDone(lookupcontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingLookupNext(lookupcontext : *mut ::core::ffi::c_void, bindingvec : *mut *mut RPC_BINDING_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingSelect(bindingvec : *mut RPC_BINDING_VECTOR, binding : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingUnexportA(entrynamesyntax : u32, entryname : ::windows_sys::core::PCSTR, ifspec : *const ::core::ffi::c_void, objectuuidvec : *const UUID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingUnexportPnPA(entrynamesyntax : u32, entryname : ::windows_sys::core::PCSTR, ifspec : *const ::core::ffi::c_void, objectvector : *const UUID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingUnexportPnPW(entrynamesyntax : u32, entryname : ::windows_sys::core::PCWSTR, ifspec : *const ::core::ffi::c_void, objectvector : *const UUID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsBindingUnexportW(entrynamesyntax : u32, entryname : ::windows_sys::core::PCWSTR, ifspec : *const ::core::ffi::c_void, objectuuidvec : *const UUID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsEntryExpandNameA(entrynamesyntax : u32, entryname : ::windows_sys::core::PCSTR, expandedname : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsEntryExpandNameW(entrynamesyntax : u32, entryname : ::windows_sys::core::PCWSTR, expandedname : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsEntryObjectInqBeginA(entrynamesyntax : u32, entryname : ::windows_sys::core::PCSTR, inquirycontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsEntryObjectInqBeginW(entrynamesyntax : u32, entryname : ::windows_sys::core::PCWSTR, inquirycontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsEntryObjectInqDone(inquirycontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsEntryObjectInqNext(inquirycontext : *mut ::core::ffi::c_void, objuuid : *mut ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsGroupDeleteA(groupnamesyntax : GROUP_NAME_SYNTAX, groupname : ::windows_sys::core::PCSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsGroupDeleteW(groupnamesyntax : GROUP_NAME_SYNTAX, groupname : ::windows_sys::core::PCWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsGroupMbrAddA(groupnamesyntax : u32, groupname : ::windows_sys::core::PCSTR, membernamesyntax : u32, membername : ::windows_sys::core::PCSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsGroupMbrAddW(groupnamesyntax : u32, groupname : ::windows_sys::core::PCWSTR, membernamesyntax : u32, membername : ::windows_sys::core::PCWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsGroupMbrInqBeginA(groupnamesyntax : u32, groupname : ::windows_sys::core::PCSTR, membernamesyntax : u32, inquirycontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsGroupMbrInqBeginW(groupnamesyntax : u32, groupname : ::windows_sys::core::PCWSTR, membernamesyntax : u32, inquirycontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsGroupMbrInqDone(inquirycontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsGroupMbrInqNextA(inquirycontext : *mut ::core::ffi::c_void, membername : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsGroupMbrInqNextW(inquirycontext : *mut ::core::ffi::c_void, membername : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsGroupMbrRemoveA(groupnamesyntax : u32, groupname : ::windows_sys::core::PCSTR, membernamesyntax : u32, membername : ::windows_sys::core::PCSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsGroupMbrRemoveW(groupnamesyntax : u32, groupname : ::windows_sys::core::PCWSTR, membernamesyntax : u32, membername : ::windows_sys::core::PCWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsMgmtBindingUnexportA(entrynamesyntax : u32, entryname : ::windows_sys::core::PCSTR, ifid : *const RPC_IF_ID, versoption : u32, objectuuidvec : *const UUID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsMgmtBindingUnexportW(entrynamesyntax : u32, entryname : ::windows_sys::core::PCWSTR, ifid : *const RPC_IF_ID, versoption : u32, objectuuidvec : *const UUID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsMgmtEntryCreateA(entrynamesyntax : u32, entryname : ::windows_sys::core::PCSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsMgmtEntryCreateW(entrynamesyntax : u32, entryname : ::windows_sys::core::PCWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsMgmtEntryDeleteA(entrynamesyntax : u32, entryname : ::windows_sys::core::PCSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsMgmtEntryDeleteW(entrynamesyntax : u32, entryname : ::windows_sys::core::PCWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsMgmtEntryInqIfIdsA(entrynamesyntax : u32, entryname : ::windows_sys::core::PCSTR, ifidvec : *mut *mut RPC_IF_ID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsMgmtEntryInqIfIdsW(entrynamesyntax : u32, entryname : ::windows_sys::core::PCWSTR, ifidvec : *mut *mut RPC_IF_ID_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsMgmtHandleSetExpAge(nshandle : *mut ::core::ffi::c_void, expirationage : u32) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsMgmtInqExpAge(expirationage : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsMgmtSetExpAge(expirationage : u32) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsProfileDeleteA(profilenamesyntax : u32, profilename : ::windows_sys::core::PCSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsProfileDeleteW(profilenamesyntax : u32, profilename : ::windows_sys::core::PCWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsProfileEltAddA(profilenamesyntax : u32, profilename : ::windows_sys::core::PCSTR, ifid : *const RPC_IF_ID, membernamesyntax : u32, membername : ::windows_sys::core::PCSTR, priority : u32, annotation : ::windows_sys::core::PCSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsProfileEltAddW(profilenamesyntax : u32, profilename : ::windows_sys::core::PCWSTR, ifid : *const RPC_IF_ID, membernamesyntax : u32, membername : ::windows_sys::core::PCWSTR, priority : u32, annotation : ::windows_sys::core::PCWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsProfileEltInqBeginA(profilenamesyntax : u32, profilename : ::windows_sys::core::PCSTR, inquirytype : u32, ifid : *const RPC_IF_ID, versoption : u32, membernamesyntax : u32, membername : ::windows_sys::core::PCSTR, inquirycontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsProfileEltInqBeginW(profilenamesyntax : u32, profilename : ::windows_sys::core::PCWSTR, inquirytype : u32, ifid : *const RPC_IF_ID, versoption : u32, membernamesyntax : u32, membername : ::windows_sys::core::PCWSTR, inquirycontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsProfileEltInqDone(inquirycontext : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsProfileEltInqNextA(inquirycontext : *const ::core::ffi::c_void, ifid : *mut RPC_IF_ID, membername : *mut ::windows_sys::core::PSTR, priority : *mut u32, annotation : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsProfileEltInqNextW(inquirycontext : *const ::core::ffi::c_void, ifid : *mut RPC_IF_ID, membername : *mut ::windows_sys::core::PWSTR, priority : *mut u32, annotation : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsProfileEltRemoveA(profilenamesyntax : u32, profilename : ::windows_sys::core::PCSTR, ifid : *const RPC_IF_ID, membernamesyntax : u32, membername : ::windows_sys::core::PCSTR) -> RPC_STATUS); +::windows_targets::link!("rpcns4.dll" "system" fn RpcNsProfileEltRemoveW(profilenamesyntax : u32, profilename : ::windows_sys::core::PCWSTR, ifid : *const RPC_IF_ID, membernamesyntax : u32, membername : ::windows_sys::core::PCWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcObjectInqType(objuuid : *const ::windows_sys::core::GUID, typeuuid : *mut ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcObjectSetInqFn(inquiryfn : RPC_OBJECT_INQ_FN) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcObjectSetType(objuuid : *const ::windows_sys::core::GUID, typeuuid : *const ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcProtseqVectorFreeA(protseqvector : *mut *mut RPC_PROTSEQ_VECTORA) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcProtseqVectorFreeW(protseqvector : *mut *mut RPC_PROTSEQ_VECTORW) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcRaiseException(exception : RPC_STATUS) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcRevertContainerImpersonation() -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcRevertToSelf() -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcRevertToSelfEx(bindinghandle : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerCompleteSecurityCallback(bindinghandle : *const ::core::ffi::c_void, status : RPC_STATUS) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInqBindingHandle(binding : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInqBindings(bindingvector : *mut *mut RPC_BINDING_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInqBindingsEx(securitydescriptor : *const ::core::ffi::c_void, bindingvector : *mut *mut RPC_BINDING_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInqCallAttributesA(clientbinding : *const ::core::ffi::c_void, rpccallattributes : *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInqCallAttributesW(clientbinding : *const ::core::ffi::c_void, rpccallattributes : *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInqDefaultPrincNameA(authnsvc : u32, princname : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInqDefaultPrincNameW(authnsvc : u32, princname : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInqIf(ifspec : *const ::core::ffi::c_void, mgrtypeuuid : *const ::windows_sys::core::GUID, mgrepv : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInterfaceGroupActivate(ifgroup : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInterfaceGroupClose(ifgroup : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInterfaceGroupCreateA(interfaces : *const RPC_INTERFACE_TEMPLATEA, numifs : u32, endpoints : *const RPC_ENDPOINT_TEMPLATEA, numendpoints : u32, idleperiod : u32, idlecallbackfn : RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN, idlecallbackcontext : *const ::core::ffi::c_void, ifgroup : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInterfaceGroupCreateW(interfaces : *const RPC_INTERFACE_TEMPLATEW, numifs : u32, endpoints : *const RPC_ENDPOINT_TEMPLATEW, numendpoints : u32, idleperiod : u32, idlecallbackfn : RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN, idlecallbackcontext : *const ::core::ffi::c_void, ifgroup : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInterfaceGroupDeactivate(ifgroup : *const ::core::ffi::c_void, forcedeactivation : u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerInterfaceGroupInqBindings(ifgroup : *const ::core::ffi::c_void, bindingvector : *mut *mut RPC_BINDING_VECTOR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerListen(minimumcallthreads : u32, maxcalls : u32, dontwait : u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerRegisterAuthInfoA(serverprincname : ::windows_sys::core::PCSTR, authnsvc : u32, getkeyfn : RPC_AUTH_KEY_RETRIEVAL_FN, arg : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerRegisterAuthInfoW(serverprincname : ::windows_sys::core::PCWSTR, authnsvc : u32, getkeyfn : RPC_AUTH_KEY_RETRIEVAL_FN, arg : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerRegisterIf(ifspec : *const ::core::ffi::c_void, mgrtypeuuid : *const ::windows_sys::core::GUID, mgrepv : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerRegisterIf2(ifspec : *const ::core::ffi::c_void, mgrtypeuuid : *const ::windows_sys::core::GUID, mgrepv : *const ::core::ffi::c_void, flags : u32, maxcalls : u32, maxrpcsize : u32, ifcallbackfn : RPC_IF_CALLBACK_FN) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerRegisterIf3(ifspec : *const ::core::ffi::c_void, mgrtypeuuid : *const ::windows_sys::core::GUID, mgrepv : *const ::core::ffi::c_void, flags : u32, maxcalls : u32, maxrpcsize : u32, ifcallback : RPC_IF_CALLBACK_FN, securitydescriptor : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerRegisterIfEx(ifspec : *const ::core::ffi::c_void, mgrtypeuuid : *const ::windows_sys::core::GUID, mgrepv : *const ::core::ffi::c_void, flags : u32, maxcalls : u32, ifcallback : RPC_IF_CALLBACK_FN) -> RPC_STATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +::windows_targets::link!("rpcrt4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] fn RpcServerSubscribeForNotification(binding : *const ::core::ffi::c_void, notification : RPC_NOTIFICATIONS, notificationtype : RPC_NOTIFICATION_TYPES, notificationinfo : *const RPC_ASYNC_NOTIFICATION_INFO) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerTestCancel(bindinghandle : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUnregisterIf(ifspec : *const ::core::ffi::c_void, mgrtypeuuid : *const ::windows_sys::core::GUID, waitforcallstocomplete : u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUnregisterIfEx(ifspec : *const ::core::ffi::c_void, mgrtypeuuid : *const ::windows_sys::core::GUID, rundowncontexthandles : i32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUnsubscribeForNotification(binding : *const ::core::ffi::c_void, notification : RPC_NOTIFICATIONS, notificationsqueued : *mut u32) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseAllProtseqs(maxcalls : u32, securitydescriptor : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseAllProtseqsEx(maxcalls : u32, securitydescriptor : *const ::core::ffi::c_void, policy : *const RPC_POLICY) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseAllProtseqsIf(maxcalls : u32, ifspec : *const ::core::ffi::c_void, securitydescriptor : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseAllProtseqsIfEx(maxcalls : u32, ifspec : *const ::core::ffi::c_void, securitydescriptor : *const ::core::ffi::c_void, policy : *const RPC_POLICY) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseProtseqA(protseq : ::windows_sys::core::PCSTR, maxcalls : u32, securitydescriptor : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseProtseqEpA(protseq : ::windows_sys::core::PCSTR, maxcalls : u32, endpoint : ::windows_sys::core::PCSTR, securitydescriptor : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseProtseqEpExA(protseq : ::windows_sys::core::PCSTR, maxcalls : u32, endpoint : ::windows_sys::core::PCSTR, securitydescriptor : *const ::core::ffi::c_void, policy : *const RPC_POLICY) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseProtseqEpExW(protseq : ::windows_sys::core::PCWSTR, maxcalls : u32, endpoint : ::windows_sys::core::PCWSTR, securitydescriptor : *const ::core::ffi::c_void, policy : *const RPC_POLICY) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseProtseqEpW(protseq : ::windows_sys::core::PCWSTR, maxcalls : u32, endpoint : ::windows_sys::core::PCWSTR, securitydescriptor : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseProtseqExA(protseq : ::windows_sys::core::PCSTR, maxcalls : u32, securitydescriptor : *const ::core::ffi::c_void, policy : *const RPC_POLICY) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseProtseqExW(protseq : ::windows_sys::core::PCWSTR, maxcalls : u32, securitydescriptor : *const ::core::ffi::c_void, policy : *const RPC_POLICY) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseProtseqIfA(protseq : ::windows_sys::core::PCSTR, maxcalls : u32, ifspec : *const ::core::ffi::c_void, securitydescriptor : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseProtseqIfExA(protseq : ::windows_sys::core::PCSTR, maxcalls : u32, ifspec : *const ::core::ffi::c_void, securitydescriptor : *const ::core::ffi::c_void, policy : *const RPC_POLICY) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseProtseqIfExW(protseq : ::windows_sys::core::PCWSTR, maxcalls : u32, ifspec : *const ::core::ffi::c_void, securitydescriptor : *const ::core::ffi::c_void, policy : *const RPC_POLICY) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseProtseqIfW(protseq : ::windows_sys::core::PCWSTR, maxcalls : u32, ifspec : *const ::core::ffi::c_void, securitydescriptor : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerUseProtseqW(protseq : ::windows_sys::core::PCWSTR, maxcalls : u32, securitydescriptor : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcServerYield() -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSmAllocate(size : usize, pstatus : *mut RPC_STATUS) -> *mut ::core::ffi::c_void); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSmClientFree(pnodetofree : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSmDestroyClientContext(contexthandle : *const *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSmDisableAllocate() -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSmEnableAllocate() -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSmFree(nodetofree : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSmGetThreadHandle(pstatus : *mut RPC_STATUS) -> *mut ::core::ffi::c_void); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSmSetClientAllocFree(clientalloc : RPC_CLIENT_ALLOC, clientfree : RPC_CLIENT_FREE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSmSetThreadHandle(id : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSmSwapClientAllocFree(clientalloc : RPC_CLIENT_ALLOC, clientfree : RPC_CLIENT_FREE, oldclientalloc : *mut RPC_CLIENT_ALLOC, oldclientfree : *mut RPC_CLIENT_FREE) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSsAllocate(size : usize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSsContextLockExclusive(serverbindinghandle : *const ::core::ffi::c_void, usercontext : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSsContextLockShared(serverbindinghandle : *const ::core::ffi::c_void, usercontext : *const ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSsDestroyClientContext(contexthandle : *const *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSsDisableAllocate() -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSsDontSerializeContext() -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSsEnableAllocate() -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSsFree(nodetofree : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSsGetContextBinding(contexthandle : *const ::core::ffi::c_void, binding : *mut *mut ::core::ffi::c_void) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSsGetThreadHandle() -> *mut ::core::ffi::c_void); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSsSetClientAllocFree(clientalloc : RPC_CLIENT_ALLOC, clientfree : RPC_CLIENT_FREE) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSsSetThreadHandle(id : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcSsSwapClientAllocFree(clientalloc : RPC_CLIENT_ALLOC, clientfree : RPC_CLIENT_FREE, oldclientalloc : *mut RPC_CLIENT_ALLOC, oldclientfree : *mut RPC_CLIENT_FREE) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcStringBindingComposeA(objuuid : ::windows_sys::core::PCSTR, protseq : ::windows_sys::core::PCSTR, networkaddr : ::windows_sys::core::PCSTR, endpoint : ::windows_sys::core::PCSTR, options : ::windows_sys::core::PCSTR, stringbinding : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcStringBindingComposeW(objuuid : ::windows_sys::core::PCWSTR, protseq : ::windows_sys::core::PCWSTR, networkaddr : ::windows_sys::core::PCWSTR, endpoint : ::windows_sys::core::PCWSTR, options : ::windows_sys::core::PCWSTR, stringbinding : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcStringBindingParseA(stringbinding : ::windows_sys::core::PCSTR, objuuid : *mut ::windows_sys::core::PSTR, protseq : *mut ::windows_sys::core::PSTR, networkaddr : *mut ::windows_sys::core::PSTR, endpoint : *mut ::windows_sys::core::PSTR, networkoptions : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcStringBindingParseW(stringbinding : ::windows_sys::core::PCWSTR, objuuid : *mut ::windows_sys::core::PWSTR, protseq : *mut ::windows_sys::core::PWSTR, networkaddr : *mut ::windows_sys::core::PWSTR, endpoint : *mut ::windows_sys::core::PWSTR, networkoptions : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcStringFreeA(string : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcStringFreeW(string : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcTestCancel() -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn RpcUserFree(asynchandle : *mut ::core::ffi::c_void, pbuffer : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("rpcrt4.dll" "system" fn UuidCompare(uuid1 : *const ::windows_sys::core::GUID, uuid2 : *const ::windows_sys::core::GUID, status : *mut RPC_STATUS) -> i32); +::windows_targets::link!("rpcrt4.dll" "system" fn UuidCreate(uuid : *mut ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn UuidCreateNil(niluuid : *mut ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn UuidCreateSequential(uuid : *mut ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn UuidEqual(uuid1 : *const ::windows_sys::core::GUID, uuid2 : *const ::windows_sys::core::GUID, status : *mut RPC_STATUS) -> i32); +::windows_targets::link!("rpcrt4.dll" "system" fn UuidFromStringA(stringuuid : ::windows_sys::core::PCSTR, uuid : *mut ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn UuidFromStringW(stringuuid : ::windows_sys::core::PCWSTR, uuid : *mut ::windows_sys::core::GUID) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn UuidHash(uuid : *const ::windows_sys::core::GUID, status : *mut RPC_STATUS) -> u16); +::windows_targets::link!("rpcrt4.dll" "system" fn UuidIsNil(uuid : *const ::windows_sys::core::GUID, status : *mut RPC_STATUS) -> i32); +::windows_targets::link!("rpcrt4.dll" "system" fn UuidToStringA(uuid : *const ::windows_sys::core::GUID, stringuuid : *mut ::windows_sys::core::PSTR) -> RPC_STATUS); +::windows_targets::link!("rpcrt4.dll" "system" fn UuidToStringW(uuid : *const ::windows_sys::core::GUID, stringuuid : *mut ::windows_sys::core::PWSTR) -> RPC_STATUS); +pub const DCE_C_ERROR_STRING_LEN: u32 = 256u32; +pub const EEInfoGCCOM: u32 = 11u32; +pub const EEInfoGCFRS: u32 = 12u32; +pub const EEInfoNextRecordsMissing: u32 = 2u32; +pub const EEInfoPreviousRecordsMissing: u32 = 1u32; +pub const EEInfoUseFileTime: u32 = 4u32; +pub const EPT_S_CANT_CREATE: RPC_STATUS = 1899i32; +pub const EPT_S_CANT_PERFORM_OP: RPC_STATUS = 1752i32; +pub const EPT_S_INVALID_ENTRY: RPC_STATUS = 1751i32; +pub const EPT_S_NOT_REGISTERED: RPC_STATUS = 1753i32; +pub const FC_EXPR_CONST32: EXPR_TOKEN = 1i32; +pub const FC_EXPR_CONST64: EXPR_TOKEN = 2i32; +pub const FC_EXPR_END: EXPR_TOKEN = 6i32; +pub const FC_EXPR_ILLEGAL: EXPR_TOKEN = 0i32; +pub const FC_EXPR_NOOP: EXPR_TOKEN = 5i32; +pub const FC_EXPR_OPER: EXPR_TOKEN = 4i32; +pub const FC_EXPR_START: EXPR_TOKEN = 0i32; +pub const FC_EXPR_VAR: EXPR_TOKEN = 3i32; +pub const IDL_CS_IN_PLACE_CONVERT: IDL_CS_CONVERT = 1i32; +pub const IDL_CS_NEW_BUFFER_CONVERT: IDL_CS_CONVERT = 2i32; +pub const IDL_CS_NO_CONVERT: IDL_CS_CONVERT = 0i32; +pub const INVALID_FRAGMENT_ID: u32 = 0u32; +pub const MES_DECODE: MIDL_ES_CODE = 1i32; +pub const MES_DYNAMIC_BUFFER_HANDLE: MIDL_ES_HANDLE_STYLE = 2i32; +pub const MES_ENCODE: MIDL_ES_CODE = 0i32; +pub const MES_ENCODE_NDR64: MIDL_ES_CODE = 2i32; +pub const MES_FIXED_BUFFER_HANDLE: MIDL_ES_HANDLE_STYLE = 1i32; +pub const MES_INCREMENTAL_HANDLE: MIDL_ES_HANDLE_STYLE = 0i32; +pub const MIDL_WINRT_TYPE_SERIALIZATION_INFO_CURRENT_VERSION: i32 = 1i32; +pub const MarshalDirectionMarshal: LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION = 0i32; +pub const MarshalDirectionUnmarshal: LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION = 1i32; +pub const MaxNumberOfEEInfoParams: u32 = 4u32; +pub const MidlInterceptionInfoVersionOne: i32 = 1i32; +pub const MidlWinrtTypeSerializationInfoVersionOne: i32 = 1i32; +pub const NDR64_FC_AUTO_HANDLE: u32 = 3u32; +pub const NDR64_FC_BIND_GENERIC: u32 = 1u32; +pub const NDR64_FC_BIND_PRIMITIVE: u32 = 2u32; +pub const NDR64_FC_CALLBACK_HANDLE: u32 = 4u32; +pub const NDR64_FC_EXPLICIT_HANDLE: u32 = 0u32; +pub const NDR64_FC_NO_HANDLE: u32 = 5u32; +pub const NDR_CUSTOM_OR_DEFAULT_ALLOCATOR: u32 = 268435456u32; +pub const NDR_DEFAULT_ALLOCATOR: u32 = 536870912u32; +pub const NT351_INTERFACE_SIZE: u32 = 64u32; +pub const PROTOCOL_ADDRESS_CHANGE: RPC_ADDRESS_CHANGE_TYPE = 3i32; +pub const PROTOCOL_LOADED: RPC_ADDRESS_CHANGE_TYPE = 2i32; +pub const PROTOCOL_NOT_LOADED: RPC_ADDRESS_CHANGE_TYPE = 1i32; +pub const PROXY_CALCSIZE: PROXY_PHASE = 0i32; +pub const PROXY_GETBUFFER: PROXY_PHASE = 1i32; +pub const PROXY_MARSHAL: PROXY_PHASE = 2i32; +pub const PROXY_SENDRECEIVE: PROXY_PHASE = 3i32; +pub const PROXY_UNMARSHAL: PROXY_PHASE = 4i32; +pub const RPCFLG_ACCESSIBILITY_BIT1: u32 = 1048576u32; +pub const RPCFLG_ACCESSIBILITY_BIT2: u32 = 2097152u32; +pub const RPCFLG_ACCESS_LOCAL: u32 = 4194304u32; +pub const RPCFLG_ASYNCHRONOUS: u32 = 1073741824u32; +pub const RPCFLG_AUTO_COMPLETE: u32 = 134217728u32; +pub const RPCFLG_HAS_CALLBACK: u32 = 67108864u32; +pub const RPCFLG_HAS_GUARANTEE: u32 = 16u32; +pub const RPCFLG_HAS_MULTI_SYNTAXES: u32 = 33554432u32; +pub const RPCFLG_INPUT_SYNCHRONOUS: u32 = 536870912u32; +pub const RPCFLG_LOCAL_CALL: u32 = 268435456u32; +pub const RPCFLG_MESSAGE: u32 = 16777216u32; +pub const RPCFLG_NDR64_CONTAINS_ARM_LAYOUT: u32 = 67108864u32; +pub const RPCFLG_NON_NDR: u32 = 2147483648u32; +pub const RPCFLG_SENDER_WAITING_FOR_REPLY: u32 = 8388608u32; +pub const RPCFLG_WINRT_REMOTE_ASYNC: u32 = 32u32; +pub const RPCHTTP_RS_ACCESS_1: RPC_HTTP_REDIRECTOR_STAGE = 2i32; +pub const RPCHTTP_RS_ACCESS_2: RPC_HTTP_REDIRECTOR_STAGE = 4i32; +pub const RPCHTTP_RS_INTERFACE: RPC_HTTP_REDIRECTOR_STAGE = 5i32; +pub const RPCHTTP_RS_REDIRECT: RPC_HTTP_REDIRECTOR_STAGE = 1i32; +pub const RPCHTTP_RS_SESSION: RPC_HTTP_REDIRECTOR_STAGE = 3i32; +pub const RPC_BHO_DONTLINGER: RPC_BINDING_HANDLE_OPTIONS_FLAGS = 2u32; +pub const RPC_BHO_EXCLUSIVE_AND_GUARANTEED: u32 = 4u32; +pub const RPC_BHO_NONCAUSAL: RPC_BINDING_HANDLE_OPTIONS_FLAGS = 1u32; +pub const RPC_BHT_OBJECT_UUID_VALID: u32 = 1u32; +pub const RPC_BUFFER_ASYNC: u32 = 32768u32; +pub const RPC_BUFFER_COMPLETE: u32 = 4096u32; +pub const RPC_BUFFER_EXTRA: u32 = 16384u32; +pub const RPC_BUFFER_NONOTIFY: u32 = 65536u32; +pub const RPC_BUFFER_PARTIAL: u32 = 8192u32; +pub const RPC_CALL_ATTRIBUTES_VERSION: u32 = 2u32; +pub const RPC_CALL_STATUS_CANCELLED: u32 = 1u32; +pub const RPC_CALL_STATUS_DISCONNECTED: u32 = 2u32; +pub const RPC_CONTEXT_HANDLE_DEFAULT_FLAGS: u32 = 0u32; +pub const RPC_CONTEXT_HANDLE_DONT_SERIALIZE: u32 = 536870912u32; +pub const RPC_CONTEXT_HANDLE_FLAGS: u32 = 805306368u32; +pub const RPC_CONTEXT_HANDLE_SERIALIZE: u32 = 268435456u32; +pub const RPC_C_AUTHN_CLOUD_AP: u32 = 36u32; +pub const RPC_C_AUTHN_DCE_PRIVATE: u32 = 1u32; +pub const RPC_C_AUTHN_DCE_PUBLIC: u32 = 2u32; +pub const RPC_C_AUTHN_DEC_PUBLIC: u32 = 4u32; +pub const RPC_C_AUTHN_DEFAULT: i32 = -1i32; +pub const RPC_C_AUTHN_DIGEST: u32 = 21u32; +pub const RPC_C_AUTHN_DPA: u32 = 17u32; +pub const RPC_C_AUTHN_GSS_KERBEROS: u32 = 16u32; +pub const RPC_C_AUTHN_GSS_NEGOTIATE: u32 = 9u32; +pub const RPC_C_AUTHN_GSS_SCHANNEL: u32 = 14u32; +pub const RPC_C_AUTHN_INFO_NONE: RPC_C_AUTHN_INFO_TYPE = 0u32; +pub const RPC_C_AUTHN_INFO_TYPE_HTTP: RPC_C_AUTHN_INFO_TYPE = 1u32; +pub const RPC_C_AUTHN_KERNEL: u32 = 20u32; +pub const RPC_C_AUTHN_LIVEXP_SSP: u32 = 35u32; +pub const RPC_C_AUTHN_LIVE_SSP: u32 = 32u32; +pub const RPC_C_AUTHN_MQ: u32 = 100u32; +pub const RPC_C_AUTHN_MSN: u32 = 18u32; +pub const RPC_C_AUTHN_MSONLINE: u32 = 82u32; +pub const RPC_C_AUTHN_NEGO_EXTENDER: u32 = 30u32; +pub const RPC_C_AUTHN_NONE: u32 = 0u32; +pub const RPC_C_AUTHN_PKU2U: u32 = 31u32; +pub const RPC_C_AUTHN_WINNT: u32 = 10u32; +pub const RPC_C_AUTHZ_DCE: u32 = 2u32; +pub const RPC_C_AUTHZ_DEFAULT: u32 = 4294967295u32; +pub const RPC_C_AUTHZ_NAME: u32 = 1u32; +pub const RPC_C_AUTHZ_NONE: u32 = 0u32; +pub const RPC_C_BINDING_DEFAULT_TIMEOUT: u32 = 5u32; +pub const RPC_C_BINDING_INFINITE_TIMEOUT: u32 = 10u32; +pub const RPC_C_BINDING_MAX_TIMEOUT: u32 = 9u32; +pub const RPC_C_BINDING_MIN_TIMEOUT: u32 = 0u32; +pub const RPC_C_BIND_TO_ALL_NICS: u32 = 1u32; +pub const RPC_C_CANCEL_INFINITE_TIMEOUT: i32 = -1i32; +pub const RPC_C_DONT_FAIL: u32 = 4u32; +pub const RPC_C_EP_ALL_ELTS: u32 = 0u32; +pub const RPC_C_EP_MATCH_BY_BOTH: u32 = 3u32; +pub const RPC_C_EP_MATCH_BY_IF: u32 = 1u32; +pub const RPC_C_EP_MATCH_BY_OBJ: u32 = 2u32; +pub const RPC_C_FULL_CERT_CHAIN: u32 = 1u32; +pub const RPC_C_HTTP_AUTHN_SCHEME_BASIC: u32 = 1u32; +pub const RPC_C_HTTP_AUTHN_SCHEME_CERT: u32 = 65536u32; +pub const RPC_C_HTTP_AUTHN_SCHEME_DIGEST: u32 = 8u32; +pub const RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE: u32 = 16u32; +pub const RPC_C_HTTP_AUTHN_SCHEME_NTLM: u32 = 2u32; +pub const RPC_C_HTTP_AUTHN_SCHEME_PASSPORT: u32 = 4u32; +pub const RPC_C_HTTP_AUTHN_TARGET_PROXY: RPC_C_HTTP_AUTHN_TARGET = 2u32; +pub const RPC_C_HTTP_AUTHN_TARGET_SERVER: RPC_C_HTTP_AUTHN_TARGET = 1u32; +pub const RPC_C_HTTP_FLAG_ENABLE_CERT_REVOCATION_CHECK: RPC_C_HTTP_FLAGS = 16u32; +pub const RPC_C_HTTP_FLAG_IGNORE_CERT_CN_INVALID: RPC_C_HTTP_FLAGS = 8u32; +pub const RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME: RPC_C_HTTP_FLAGS = 2u32; +pub const RPC_C_HTTP_FLAG_USE_SSL: RPC_C_HTTP_FLAGS = 1u32; +pub const RPC_C_LISTEN_MAX_CALLS_DEFAULT: u32 = 1234u32; +pub const RPC_C_MGMT_INQ_IF_IDS: u32 = 0u32; +pub const RPC_C_MGMT_INQ_PRINC_NAME: u32 = 1u32; +pub const RPC_C_MGMT_INQ_STATS: u32 = 2u32; +pub const RPC_C_MGMT_IS_SERVER_LISTEN: u32 = 3u32; +pub const RPC_C_MGMT_STOP_SERVER_LISTEN: u32 = 4u32; +pub const RPC_C_MQ_AUTHN_LEVEL_NONE: u32 = 0u32; +pub const RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY: u32 = 8u32; +pub const RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY: u32 = 16u32; +pub const RPC_C_MQ_CLEAR_ON_OPEN: u32 = 2u32; +pub const RPC_C_MQ_EXPRESS: u32 = 0u32; +pub const RPC_C_MQ_JOURNAL_ALWAYS: u32 = 2u32; +pub const RPC_C_MQ_JOURNAL_DEADLETTER: u32 = 1u32; +pub const RPC_C_MQ_JOURNAL_NONE: u32 = 0u32; +pub const RPC_C_MQ_PERMANENT: u32 = 1u32; +pub const RPC_C_MQ_RECOVERABLE: u32 = 1u32; +pub const RPC_C_MQ_TEMPORARY: u32 = 0u32; +pub const RPC_C_MQ_USE_EXISTING_SECURITY: u32 = 4u32; +pub const RPC_C_NOTIFY_ON_SEND_COMPLETE: u32 = 1u32; +pub const RPC_C_NS_DEFAULT_EXP_AGE: i32 = -1i32; +pub const RPC_C_NS_SYNTAX_DCE: GROUP_NAME_SYNTAX = 3u32; +pub const RPC_C_NS_SYNTAX_DEFAULT: GROUP_NAME_SYNTAX = 0u32; +pub const RPC_C_OPT_ASYNC_BLOCK: u32 = 15u32; +pub const RPC_C_OPT_BINDING_NONCAUSAL: u32 = 9u32; +pub const RPC_C_OPT_CALL_TIMEOUT: u32 = 12u32; +pub const RPC_C_OPT_COOKIE_AUTH: u32 = 7u32; +pub const RPC_C_OPT_DONT_LINGER: u32 = 13u32; +pub const RPC_C_OPT_MAX_OPTIONS: u32 = 12u32; +pub const RPC_C_OPT_MQ_ACKNOWLEDGE: u32 = 4u32; +pub const RPC_C_OPT_MQ_AUTHN_LEVEL: u32 = 6u32; +pub const RPC_C_OPT_MQ_AUTHN_SERVICE: u32 = 5u32; +pub const RPC_C_OPT_MQ_DELIVERY: u32 = 1u32; +pub const RPC_C_OPT_MQ_JOURNAL: u32 = 3u32; +pub const RPC_C_OPT_MQ_PRIORITY: u32 = 2u32; +pub const RPC_C_OPT_MQ_TIME_TO_BE_RECEIVED: u32 = 8u32; +pub const RPC_C_OPT_MQ_TIME_TO_REACH_QUEUE: u32 = 7u32; +pub const RPC_C_OPT_OPTIMIZE_TIME: u32 = 16u32; +pub const RPC_C_OPT_PRIVATE_BREAK_ON_SUSPEND: u32 = 3u32; +pub const RPC_C_OPT_PRIVATE_DO_NOT_DISTURB: u32 = 2u32; +pub const RPC_C_OPT_PRIVATE_SUPPRESS_WAKE: u32 = 1u32; +pub const RPC_C_OPT_RESOURCE_TYPE_UUID: u32 = 8u32; +pub const RPC_C_OPT_SECURITY_CALLBACK: u32 = 10u32; +pub const RPC_C_OPT_SESSION_ID: u32 = 6u32; +pub const RPC_C_OPT_TRANS_SEND_BUFFER_SIZE: u32 = 5u32; +pub const RPC_C_OPT_TRUST_PEER: u32 = 14u32; +pub const RPC_C_OPT_UNIQUE_BINDING: u32 = 11u32; +pub const RPC_C_PARM_BUFFER_LENGTH: u32 = 2u32; +pub const RPC_C_PARM_MAX_PACKET_LENGTH: u32 = 1u32; +pub const RPC_C_PROFILE_ALL_ELT: u32 = 1u32; +pub const RPC_C_PROFILE_ALL_ELTS: u32 = 1u32; +pub const RPC_C_PROFILE_DEFAULT_ELT: u32 = 0u32; +pub const RPC_C_PROFILE_MATCH_BY_BOTH: u32 = 4u32; +pub const RPC_C_PROFILE_MATCH_BY_IF: u32 = 2u32; +pub const RPC_C_PROFILE_MATCH_BY_MBR: u32 = 3u32; +pub const RPC_C_PROTSEQ_MAX_REQS_DEFAULT: u32 = 10u32; +pub const RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY: RPC_C_QOS_CAPABILITIES = 4u32; +pub const RPC_C_QOS_CAPABILITIES_DEFAULT: RPC_C_QOS_CAPABILITIES = 0u32; +pub const RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE: RPC_C_QOS_CAPABILITIES = 8u32; +pub const RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT: RPC_C_QOS_CAPABILITIES = 16u32; +pub const RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC: RPC_C_QOS_CAPABILITIES = 2u32; +pub const RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH: RPC_C_QOS_CAPABILITIES = 1u32; +pub const RPC_C_QOS_CAPABILITIES_SCHANNEL_FULL_AUTH_IDENTITY: RPC_C_QOS_CAPABILITIES = 32u32; +pub const RPC_C_QOS_IDENTITY_DYNAMIC: RPC_C_QOS_IDENTITY = 1u32; +pub const RPC_C_QOS_IDENTITY_STATIC: RPC_C_QOS_IDENTITY = 0u32; +pub const RPC_C_RPCHTTP_USE_LOAD_BALANCE: u32 = 8u32; +pub const RPC_C_SECURITY_QOS_VERSION: i32 = 1i32; +pub const RPC_C_SECURITY_QOS_VERSION_1: i32 = 1i32; +pub const RPC_C_SECURITY_QOS_VERSION_2: i32 = 2i32; +pub const RPC_C_SECURITY_QOS_VERSION_3: i32 = 3i32; +pub const RPC_C_SECURITY_QOS_VERSION_4: i32 = 4i32; +pub const RPC_C_SECURITY_QOS_VERSION_5: i32 = 5i32; +pub const RPC_C_STATS_CALLS_IN: u32 = 0u32; +pub const RPC_C_STATS_CALLS_OUT: u32 = 1u32; +pub const RPC_C_STATS_PKTS_IN: u32 = 2u32; +pub const RPC_C_STATS_PKTS_OUT: u32 = 3u32; +pub const RPC_C_TRY_ENFORCE_MAX_CALLS: u32 = 16u32; +pub const RPC_C_USE_INTERNET_PORT: u32 = 1u32; +pub const RPC_C_USE_INTRANET_PORT: u32 = 2u32; +pub const RPC_C_VERS_ALL: u32 = 1u32; +pub const RPC_C_VERS_COMPATIBLE: u32 = 2u32; +pub const RPC_C_VERS_EXACT: u32 = 3u32; +pub const RPC_C_VERS_MAJOR_ONLY: u32 = 4u32; +pub const RPC_C_VERS_UPTO: u32 = 5u32; +pub const RPC_EEINFO_VERSION: u32 = 1u32; +pub const RPC_FLAGS_VALID_BIT: u32 = 32768u32; +pub const RPC_FW_IF_FLAG_DCOM: u32 = 1u32; +pub const RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH: u32 = 16u32; +pub const RPC_IF_ALLOW_LOCAL_ONLY: u32 = 32u32; +pub const RPC_IF_ALLOW_SECURE_ONLY: u32 = 8u32; +pub const RPC_IF_ALLOW_UNKNOWN_AUTHORITY: u32 = 4u32; +pub const RPC_IF_ASYNC_CALLBACK: u32 = 256u32; +pub const RPC_IF_AUTOLISTEN: u32 = 1u32; +pub const RPC_IF_OLE: u32 = 2u32; +pub const RPC_IF_SEC_CACHE_PER_PROC: u32 = 128u32; +pub const RPC_IF_SEC_NO_CACHE: u32 = 64u32; +pub const RPC_INTERFACE_HAS_PIPES: u32 = 1u32; +pub const RPC_NCA_FLAGS_BROADCAST: u32 = 2u32; +pub const RPC_NCA_FLAGS_DEFAULT: u32 = 0u32; +pub const RPC_NCA_FLAGS_IDEMPOTENT: u32 = 1u32; +pub const RPC_NCA_FLAGS_MAYBE: u32 = 4u32; +pub const RPC_PROTSEQ_HTTP: u32 = 4u32; +pub const RPC_PROTSEQ_LRPC: u32 = 3u32; +pub const RPC_PROTSEQ_NMP: u32 = 2u32; +pub const RPC_PROTSEQ_TCP: u32 = 1u32; +pub const RPC_PROXY_CONNECTION_TYPE_IN_PROXY: u32 = 0u32; +pub const RPC_PROXY_CONNECTION_TYPE_OUT_PROXY: u32 = 1u32; +pub const RPC_P_ADDR_FORMAT_TCP_IPV4: u32 = 1u32; +pub const RPC_P_ADDR_FORMAT_TCP_IPV6: u32 = 2u32; +pub const RPC_QUERY_CALL_LOCAL_ADDRESS: u32 = 8u32; +pub const RPC_QUERY_CLIENT_ID: u32 = 128u32; +pub const RPC_QUERY_CLIENT_PID: u32 = 16u32; +pub const RPC_QUERY_CLIENT_PRINCIPAL_NAME: u32 = 4u32; +pub const RPC_QUERY_IS_CLIENT_LOCAL: u32 = 32u32; +pub const RPC_QUERY_NO_AUTH_REQUIRED: u32 = 64u32; +pub const RPC_QUERY_SERVER_PRINCIPAL_NAME: u32 = 2u32; +pub const RPC_SYSTEM_HANDLE_FREE_ALL: u32 = 3u32; +pub const RPC_SYSTEM_HANDLE_FREE_ERROR_ON_CLOSE: u32 = 4u32; +pub const RPC_SYSTEM_HANDLE_FREE_RETRIEVED: u32 = 2u32; +pub const RPC_SYSTEM_HANDLE_FREE_UNRETRIEVED: u32 = 1u32; +pub const RPC_S_ADDRESS_ERROR: RPC_STATUS = 1768i32; +pub const RPC_S_ALREADY_LISTENING: RPC_STATUS = 1713i32; +pub const RPC_S_ALREADY_REGISTERED: RPC_STATUS = 1711i32; +pub const RPC_S_BINDING_HAS_NO_AUTH: RPC_STATUS = 1746i32; +pub const RPC_S_BINDING_INCOMPLETE: RPC_STATUS = 1819i32; +pub const RPC_S_CALL_CANCELLED: RPC_STATUS = 1818i32; +pub const RPC_S_CALL_FAILED: RPC_STATUS = 1726i32; +pub const RPC_S_CALL_FAILED_DNE: RPC_STATUS = 1727i32; +pub const RPC_S_CALL_IN_PROGRESS: RPC_STATUS = 1791i32; +pub const RPC_S_CANNOT_SUPPORT: RPC_STATUS = 1764i32; +pub const RPC_S_CANT_CREATE_ENDPOINT: RPC_STATUS = 1720i32; +pub const RPC_S_COMM_FAILURE: RPC_STATUS = 1820i32; +pub const RPC_S_COOKIE_AUTH_FAILED: RPC_STATUS = 1833i32; +pub const RPC_S_DO_NOT_DISTURB: RPC_STATUS = 1834i32; +pub const RPC_S_DUPLICATE_ENDPOINT: RPC_STATUS = 1740i32; +pub const RPC_S_ENTRY_ALREADY_EXISTS: RPC_STATUS = 1760i32; +pub const RPC_S_ENTRY_NOT_FOUND: RPC_STATUS = 1761i32; +pub const RPC_S_ENTRY_TYPE_MISMATCH: RPC_STATUS = 1922i32; +pub const RPC_S_FP_DIV_ZERO: RPC_STATUS = 1769i32; +pub const RPC_S_FP_OVERFLOW: RPC_STATUS = 1771i32; +pub const RPC_S_FP_UNDERFLOW: RPC_STATUS = 1770i32; +pub const RPC_S_GROUP_MEMBER_NOT_FOUND: RPC_STATUS = 1898i32; +pub const RPC_S_GRP_ELT_NOT_ADDED: RPC_STATUS = 1928i32; +pub const RPC_S_GRP_ELT_NOT_REMOVED: RPC_STATUS = 1929i32; +pub const RPC_S_INCOMPLETE_NAME: RPC_STATUS = 1755i32; +pub const RPC_S_INTERFACE_NOT_EXPORTED: RPC_STATUS = 1924i32; +pub const RPC_S_INTERFACE_NOT_FOUND: RPC_STATUS = 1759i32; +pub const RPC_S_INTERNAL_ERROR: RPC_STATUS = 1766i32; +pub const RPC_S_INVALID_ASYNC_CALL: RPC_STATUS = 1915i32; +pub const RPC_S_INVALID_ASYNC_HANDLE: RPC_STATUS = 1914i32; +pub const RPC_S_INVALID_AUTH_IDENTITY: RPC_STATUS = 1749i32; +pub const RPC_S_INVALID_BINDING: RPC_STATUS = 1702i32; +pub const RPC_S_INVALID_BOUND: RPC_STATUS = 1734i32; +pub const RPC_S_INVALID_ENDPOINT_FORMAT: RPC_STATUS = 1706i32; +pub const RPC_S_INVALID_NAF_ID: RPC_STATUS = 1763i32; +pub const RPC_S_INVALID_NAME_SYNTAX: RPC_STATUS = 1736i32; +pub const RPC_S_INVALID_NETWORK_OPTIONS: RPC_STATUS = 1724i32; +pub const RPC_S_INVALID_NET_ADDR: RPC_STATUS = 1707i32; +pub const RPC_S_INVALID_OBJECT: RPC_STATUS = 1900i32; +pub const RPC_S_INVALID_RPC_PROTSEQ: RPC_STATUS = 1704i32; +pub const RPC_S_INVALID_STRING_BINDING: RPC_STATUS = 1700i32; +pub const RPC_S_INVALID_STRING_UUID: RPC_STATUS = 1705i32; +pub const RPC_S_INVALID_TAG: RPC_STATUS = 1733i32; +pub const RPC_S_INVALID_TIMEOUT: RPC_STATUS = 1709i32; +pub const RPC_S_INVALID_VERS_OPTION: RPC_STATUS = 1756i32; +pub const RPC_S_MAX_CALLS_TOO_SMALL: RPC_STATUS = 1742i32; +pub const RPC_S_NAME_SERVICE_UNAVAILABLE: RPC_STATUS = 1762i32; +pub const RPC_S_NOTHING_TO_EXPORT: RPC_STATUS = 1754i32; +pub const RPC_S_NOT_ALL_OBJS_EXPORTED: RPC_STATUS = 1923i32; +pub const RPC_S_NOT_ALL_OBJS_UNEXPORTED: RPC_STATUS = 1758i32; +pub const RPC_S_NOT_CANCELLED: RPC_STATUS = 1826i32; +pub const RPC_S_NOT_LISTENING: RPC_STATUS = 1715i32; +pub const RPC_S_NOT_RPC_ERROR: RPC_STATUS = 1823i32; +pub const RPC_S_NO_BINDINGS: RPC_STATUS = 1718i32; +pub const RPC_S_NO_CALL_ACTIVE: RPC_STATUS = 1725i32; +pub const RPC_S_NO_CONTEXT_AVAILABLE: RPC_STATUS = 1765i32; +pub const RPC_S_NO_ENDPOINT_FOUND: RPC_STATUS = 1708i32; +pub const RPC_S_NO_ENTRY_NAME: RPC_STATUS = 1735i32; +pub const RPC_S_NO_INTERFACES: RPC_STATUS = 1817i32; +pub const RPC_S_NO_MORE_BINDINGS: RPC_STATUS = 1806i32; +pub const RPC_S_NO_MORE_MEMBERS: RPC_STATUS = 1757i32; +pub const RPC_S_NO_PRINC_NAME: RPC_STATUS = 1822i32; +pub const RPC_S_NO_PROTSEQS: RPC_STATUS = 1719i32; +pub const RPC_S_NO_PROTSEQS_REGISTERED: RPC_STATUS = 1714i32; +pub const RPC_S_OBJECT_NOT_FOUND: RPC_STATUS = 1710i32; +pub const RPC_S_OUT_OF_RESOURCES: RPC_STATUS = 1721i32; +pub const RPC_S_PRF_ELT_NOT_ADDED: RPC_STATUS = 1926i32; +pub const RPC_S_PRF_ELT_NOT_REMOVED: RPC_STATUS = 1927i32; +pub const RPC_S_PROCNUM_OUT_OF_RANGE: RPC_STATUS = 1745i32; +pub const RPC_S_PROFILE_NOT_ADDED: RPC_STATUS = 1925i32; +pub const RPC_S_PROTOCOL_ERROR: RPC_STATUS = 1728i32; +pub const RPC_S_PROTSEQ_NOT_FOUND: RPC_STATUS = 1744i32; +pub const RPC_S_PROTSEQ_NOT_SUPPORTED: RPC_STATUS = 1703i32; +pub const RPC_S_PROXY_ACCESS_DENIED: RPC_STATUS = 1729i32; +pub const RPC_S_SEC_PKG_ERROR: RPC_STATUS = 1825i32; +pub const RPC_S_SEND_INCOMPLETE: RPC_STATUS = 1913i32; +pub const RPC_S_SERVER_TOO_BUSY: RPC_STATUS = 1723i32; +pub const RPC_S_SERVER_UNAVAILABLE: RPC_STATUS = 1722i32; +pub const RPC_S_STRING_TOO_LONG: RPC_STATUS = 1743i32; +pub const RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED: RPC_STATUS = 1835i32; +pub const RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH: RPC_STATUS = 1836i32; +pub const RPC_S_TYPE_ALREADY_REGISTERED: RPC_STATUS = 1712i32; +pub const RPC_S_UNKNOWN_AUTHN_LEVEL: RPC_STATUS = 1748i32; +pub const RPC_S_UNKNOWN_AUTHN_SERVICE: RPC_STATUS = 1747i32; +pub const RPC_S_UNKNOWN_AUTHN_TYPE: RPC_STATUS = 1741i32; +pub const RPC_S_UNKNOWN_AUTHZ_SERVICE: RPC_STATUS = 1750i32; +pub const RPC_S_UNKNOWN_IF: RPC_STATUS = 1717i32; +pub const RPC_S_UNKNOWN_MGR_TYPE: RPC_STATUS = 1716i32; +pub const RPC_S_UNSUPPORTED_AUTHN_LEVEL: RPC_STATUS = 1821i32; +pub const RPC_S_UNSUPPORTED_NAME_SYNTAX: RPC_STATUS = 1737i32; +pub const RPC_S_UNSUPPORTED_TRANS_SYN: RPC_STATUS = 1730i32; +pub const RPC_S_UNSUPPORTED_TYPE: RPC_STATUS = 1732i32; +pub const RPC_S_UUID_LOCAL_ONLY: RPC_STATUS = 1824i32; +pub const RPC_S_UUID_NO_ADDRESS: RPC_STATUS = 1739i32; +pub const RPC_S_WRONG_KIND_OF_BINDING: RPC_STATUS = 1701i32; +pub const RPC_S_ZERO_DIVIDE: RPC_STATUS = 1767i32; +pub const RPC_TYPE_DISCONNECT_EVENT_CONTEXT_HANDLE: u32 = 2147483648u32; +pub const RPC_TYPE_STRICT_CONTEXT_HANDLE: u32 = 1073741824u32; +pub const RpcAttemptedLbsDecisions: RpcPerfCounters = 8i32; +pub const RpcAttemptedLbsMessages: RpcPerfCounters = 10i32; +pub const RpcBackEndConnectionAttempts: RpcPerfCounters = 2i32; +pub const RpcBackEndConnectionFailed: RpcPerfCounters = 3i32; +pub const RpcCallComplete: RPC_ASYNC_EVENT = 0i32; +pub const RpcClientCancel: RPC_ASYNC_EVENT = 4i32; +pub const RpcClientDisconnect: RPC_ASYNC_EVENT = 3i32; +pub const RpcCurrentUniqueUser: RpcPerfCounters = 1i32; +pub const RpcFailedLbsDecisions: RpcPerfCounters = 9i32; +pub const RpcFailedLbsMessages: RpcPerfCounters = 11i32; +pub const RpcIncomingBandwidth: RpcPerfCounters = 6i32; +pub const RpcIncomingConnections: RpcPerfCounters = 5i32; +pub const RpcLastCounter: RpcPerfCounters = 12i32; +pub const RpcNotificationCallCancel: RPC_NOTIFICATIONS = 2i32; +pub const RpcNotificationCallNone: RPC_NOTIFICATIONS = 0i32; +pub const RpcNotificationClientDisconnect: RPC_NOTIFICATIONS = 1i32; +pub const RpcNotificationTypeApc: RPC_NOTIFICATION_TYPES = 2i32; +pub const RpcNotificationTypeCallback: RPC_NOTIFICATION_TYPES = 5i32; +pub const RpcNotificationTypeEvent: RPC_NOTIFICATION_TYPES = 1i32; +pub const RpcNotificationTypeHwnd: RPC_NOTIFICATION_TYPES = 4i32; +pub const RpcNotificationTypeIoc: RPC_NOTIFICATION_TYPES = 3i32; +pub const RpcNotificationTypeNone: RPC_NOTIFICATION_TYPES = 0i32; +pub const RpcOutgoingBandwidth: RpcPerfCounters = 7i32; +pub const RpcReceiveComplete: RPC_ASYNC_EVENT = 2i32; +pub const RpcRequestsPerSecond: RpcPerfCounters = 4i32; +pub const RpcSendComplete: RPC_ASYNC_EVENT = 1i32; +pub const SEC_WINNT_AUTH_IDENTITY_ANSI: SEC_WINNT_AUTH_IDENTITY = 1u32; +pub const SEC_WINNT_AUTH_IDENTITY_UNICODE: SEC_WINNT_AUTH_IDENTITY = 2u32; +pub const STUB_CALL_SERVER: STUB_PHASE = 1i32; +pub const STUB_CALL_SERVER_NO_HRESULT: STUB_PHASE = 3i32; +pub const STUB_MARSHAL: STUB_PHASE = 2i32; +pub const STUB_UNMARSHAL: STUB_PHASE = 0i32; +pub const SYSTEM_HANDLE_COMPOSITION_OBJECT: system_handle_t = 9i32; +pub const SYSTEM_HANDLE_EVENT: system_handle_t = 2i32; +pub const SYSTEM_HANDLE_FILE: system_handle_t = 0i32; +pub const SYSTEM_HANDLE_INVALID: system_handle_t = 255i32; +pub const SYSTEM_HANDLE_JOB: system_handle_t = 11i32; +pub const SYSTEM_HANDLE_MAX: system_handle_t = 12i32; +pub const SYSTEM_HANDLE_MUTEX: system_handle_t = 3i32; +pub const SYSTEM_HANDLE_PIPE: system_handle_t = 12i32; +pub const SYSTEM_HANDLE_PROCESS: system_handle_t = 4i32; +pub const SYSTEM_HANDLE_REG_KEY: system_handle_t = 7i32; +pub const SYSTEM_HANDLE_SECTION: system_handle_t = 6i32; +pub const SYSTEM_HANDLE_SEMAPHORE: system_handle_t = 1i32; +pub const SYSTEM_HANDLE_SOCKET: system_handle_t = 10i32; +pub const SYSTEM_HANDLE_THREAD: system_handle_t = 8i32; +pub const SYSTEM_HANDLE_TOKEN: system_handle_t = 5i32; +pub const TARGET_IS_NT100_OR_LATER: u32 = 1u32; +pub const TARGET_IS_NT1012_OR_LATER: u32 = 1u32; +pub const TARGET_IS_NT102_OR_LATER: u32 = 1u32; +pub const TARGET_IS_NT351_OR_WIN95_OR_LATER: u32 = 1u32; +pub const TARGET_IS_NT40_OR_LATER: u32 = 1u32; +pub const TARGET_IS_NT50_OR_LATER: u32 = 1u32; +pub const TARGET_IS_NT51_OR_LATER: u32 = 1u32; +pub const TARGET_IS_NT60_OR_LATER: u32 = 1u32; +pub const TARGET_IS_NT61_OR_LATER: u32 = 1u32; +pub const TARGET_IS_NT62_OR_LATER: u32 = 1u32; +pub const TARGET_IS_NT63_OR_LATER: u32 = 1u32; +pub const TRANSPORT_TYPE_CN: u32 = 1u32; +pub const TRANSPORT_TYPE_DG: u32 = 2u32; +pub const TRANSPORT_TYPE_LPC: u32 = 4u32; +pub const TRANSPORT_TYPE_WMSG: u32 = 8u32; +pub const USER_CALL_IS_ASYNC: u32 = 256u32; +pub const USER_CALL_NEW_CORRELATION_DESC: u32 = 512u32; +pub const USER_MARSHAL_CB_BUFFER_SIZE: USER_MARSHAL_CB_TYPE = 0i32; +pub const USER_MARSHAL_CB_FREE: USER_MARSHAL_CB_TYPE = 3i32; +pub const USER_MARSHAL_CB_MARSHALL: USER_MARSHAL_CB_TYPE = 1i32; +pub const USER_MARSHAL_CB_UNMARSHALL: USER_MARSHAL_CB_TYPE = 2i32; +pub const USER_MARSHAL_FC_BYTE: u32 = 1u32; +pub const USER_MARSHAL_FC_CHAR: u32 = 2u32; +pub const USER_MARSHAL_FC_DOUBLE: u32 = 12u32; +pub const USER_MARSHAL_FC_FLOAT: u32 = 10u32; +pub const USER_MARSHAL_FC_HYPER: u32 = 11u32; +pub const USER_MARSHAL_FC_LONG: u32 = 8u32; +pub const USER_MARSHAL_FC_SHORT: u32 = 6u32; +pub const USER_MARSHAL_FC_SMALL: u32 = 3u32; +pub const USER_MARSHAL_FC_ULONG: u32 = 9u32; +pub const USER_MARSHAL_FC_USHORT: u32 = 7u32; +pub const USER_MARSHAL_FC_USMALL: u32 = 4u32; +pub const USER_MARSHAL_FC_WCHAR: u32 = 5u32; +pub const XLAT_CLIENT: XLAT_SIDE = 2i32; +pub const XLAT_SERVER: XLAT_SIDE = 1i32; +pub const __RPCPROXY_H_VERSION__: u32 = 477u32; +pub const cbNDRContext: u32 = 20u32; +pub const eeptAnsiString: ExtendedErrorParamTypes = 1i32; +pub const eeptBinary: ExtendedErrorParamTypes = 7i32; +pub const eeptLongVal: ExtendedErrorParamTypes = 3i32; +pub const eeptNone: ExtendedErrorParamTypes = 6i32; +pub const eeptPointerVal: ExtendedErrorParamTypes = 5i32; +pub const eeptShortVal: ExtendedErrorParamTypes = 4i32; +pub const eeptUnicodeString: ExtendedErrorParamTypes = 2i32; +pub const rcclClientUnknownLocality: RpcCallClientLocality = 3i32; +pub const rcclInvalid: RpcCallClientLocality = 0i32; +pub const rcclLocal: RpcCallClientLocality = 1i32; +pub const rcclRemote: RpcCallClientLocality = 2i32; +pub const rctGuaranteed: RpcCallType = 3i32; +pub const rctInvalid: RpcCallType = 0i32; +pub const rctNormal: RpcCallType = 1i32; +pub const rctTraining: RpcCallType = 2i32; +pub const rlafIPv4: RpcLocalAddressFormat = 1i32; +pub const rlafIPv6: RpcLocalAddressFormat = 2i32; +pub const rlafInvalid: RpcLocalAddressFormat = 0i32; +pub type EXPR_TOKEN = i32; +pub type ExtendedErrorParamTypes = i32; +pub type GROUP_NAME_SYNTAX = u32; +pub type IDL_CS_CONVERT = i32; +pub type LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION = i32; +pub type MIDL_ES_CODE = i32; +pub type MIDL_ES_HANDLE_STYLE = i32; +pub type PROXY_PHASE = i32; +pub type RPC_ADDRESS_CHANGE_TYPE = i32; +pub type RPC_ASYNC_EVENT = i32; +pub type RPC_BINDING_HANDLE_OPTIONS_FLAGS = u32; +pub type RPC_C_AUTHN_INFO_TYPE = u32; +pub type RPC_C_HTTP_AUTHN_TARGET = u32; +pub type RPC_C_HTTP_FLAGS = u32; +pub type RPC_C_QOS_CAPABILITIES = u32; +pub type RPC_C_QOS_IDENTITY = u32; +pub type RPC_HTTP_REDIRECTOR_STAGE = i32; +pub type RPC_NOTIFICATIONS = i32; +pub type RPC_NOTIFICATION_TYPES = i32; +pub type RPC_STATUS = i32; +pub type RpcCallClientLocality = i32; +pub type RpcCallType = i32; +pub type RpcLocalAddressFormat = i32; +pub type RpcPerfCounters = i32; +pub type SEC_WINNT_AUTH_IDENTITY = u32; +pub type STUB_PHASE = i32; +pub type USER_MARSHAL_CB_TYPE = i32; +pub type XLAT_SIDE = i32; +pub type system_handle_t = i32; +#[repr(C)] +pub struct ARRAY_INFO { + pub Dimension: i32, + pub BufferConformanceMark: *mut u32, + pub BufferVarianceMark: *mut u32, + pub MaxCountArray: *mut u32, + pub OffsetArray: *mut u32, + pub ActualCountArray: *mut u32, +} +impl ::core::marker::Copy for ARRAY_INFO {} +impl ::core::clone::Clone for ARRAY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BinaryParam { + pub Buffer: *mut ::core::ffi::c_void, + pub Size: i16, +} +impl ::core::marker::Copy for BinaryParam {} +impl ::core::clone::Clone for BinaryParam { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CLIENT_CALL_RETURN { + pub Pointer: *mut ::core::ffi::c_void, + pub Simple: isize, +} +impl ::core::marker::Copy for CLIENT_CALL_RETURN {} +impl ::core::clone::Clone for CLIENT_CALL_RETURN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COMM_FAULT_OFFSETS { + pub CommOffset: i16, + pub FaultOffset: i16, +} +impl ::core::marker::Copy for COMM_FAULT_OFFSETS {} +impl ::core::clone::Clone for COMM_FAULT_OFFSETS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FULL_PTR_XLAT_TABLES { + pub RefIdToPointer: *mut ::core::ffi::c_void, + pub PointerToRefId: *mut ::core::ffi::c_void, + pub NextRefId: u32, + pub XlatSide: XLAT_SIDE, +} +impl ::core::marker::Copy for FULL_PTR_XLAT_TABLES {} +impl ::core::clone::Clone for FULL_PTR_XLAT_TABLES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GENERIC_BINDING_INFO { + pub pObj: *mut ::core::ffi::c_void, + pub Size: u32, + pub pfnBind: GENERIC_BINDING_ROUTINE, + pub pfnUnbind: GENERIC_UNBIND_ROUTINE, +} +impl ::core::marker::Copy for GENERIC_BINDING_INFO {} +impl ::core::clone::Clone for GENERIC_BINDING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GENERIC_BINDING_ROUTINE_PAIR { + pub pfnBind: GENERIC_BINDING_ROUTINE, + pub pfnUnbind: GENERIC_UNBIND_ROUTINE, +} +impl ::core::marker::Copy for GENERIC_BINDING_ROUTINE_PAIR {} +impl ::core::clone::Clone for GENERIC_BINDING_ROUTINE_PAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct I_RpcProxyCallbackInterface { + pub IsValidMachineFn: I_RpcProxyIsValidMachineFn, + pub GetClientAddressFn: I_RpcProxyGetClientAddressFn, + pub GetConnectionTimeoutFn: I_RpcProxyGetConnectionTimeoutFn, + pub PerformCalloutFn: I_RpcPerformCalloutFn, + pub FreeCalloutStateFn: I_RpcFreeCalloutStateFn, + pub GetClientSessionAndResourceUUIDFn: I_RpcProxyGetClientSessionAndResourceUUID, + pub ProxyFilterIfFn: I_RpcProxyFilterIfFn, + pub RpcProxyUpdatePerfCounterFn: I_RpcProxyUpdatePerfCounterFn, + pub RpcProxyUpdatePerfCounterBackendServerFn: I_RpcProxyUpdatePerfCounterBackendServerFn, +} +impl ::core::marker::Copy for I_RpcProxyCallbackInterface {} +impl ::core::clone::Clone for I_RpcProxyCallbackInterface { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MALLOC_FREE_STRUCT { + pub pfnAllocate: isize, + pub pfnFree: isize, +} +impl ::core::marker::Copy for MALLOC_FREE_STRUCT {} +impl ::core::clone::Clone for MALLOC_FREE_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIDL_FORMAT_STRING { + pub Pad: i16, + pub Format: [u8; 1], +} +impl ::core::marker::Copy for MIDL_FORMAT_STRING {} +impl ::core::clone::Clone for MIDL_FORMAT_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIDL_INTERCEPTION_INFO { + pub Version: u32, + pub ProcString: *mut u8, + pub ProcFormatOffsetTable: *const u16, + pub ProcCount: u32, + pub TypeString: *mut u8, +} +impl ::core::marker::Copy for MIDL_INTERCEPTION_INFO {} +impl ::core::clone::Clone for MIDL_INTERCEPTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIDL_INTERFACE_METHOD_PROPERTIES { + pub MethodCount: u16, + pub MethodProperties: *const *const MIDL_METHOD_PROPERTY_MAP, +} +impl ::core::marker::Copy for MIDL_INTERFACE_METHOD_PROPERTIES {} +impl ::core::clone::Clone for MIDL_INTERFACE_METHOD_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIDL_METHOD_PROPERTY { + pub Id: u32, + pub Value: usize, +} +impl ::core::marker::Copy for MIDL_METHOD_PROPERTY {} +impl ::core::clone::Clone for MIDL_METHOD_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIDL_METHOD_PROPERTY_MAP { + pub Count: u32, + pub Properties: *const MIDL_METHOD_PROPERTY, +} +impl ::core::marker::Copy for MIDL_METHOD_PROPERTY_MAP {} +impl ::core::clone::Clone for MIDL_METHOD_PROPERTY_MAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MIDL_SERVER_INFO { + pub pStubDesc: *mut MIDL_STUB_DESC, + pub DispatchTable: *const SERVER_ROUTINE, + pub ProcString: *mut u8, + pub FmtStringOffset: *const u16, + pub ThunkTable: *const STUB_THUNK, + pub pTransferSyntax: *mut RPC_SYNTAX_IDENTIFIER, + pub nCount: usize, + pub pSyntaxInfo: *mut MIDL_SYNTAX_INFO, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MIDL_SERVER_INFO {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MIDL_SERVER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MIDL_STUBLESS_PROXY_INFO { + pub pStubDesc: *mut MIDL_STUB_DESC, + pub ProcFormatString: *mut u8, + pub FormatStringOffset: *const u16, + pub pTransferSyntax: *mut RPC_SYNTAX_IDENTIFIER, + pub nCount: usize, + pub pSyntaxInfo: *mut MIDL_SYNTAX_INFO, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MIDL_STUBLESS_PROXY_INFO {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MIDL_STUBLESS_PROXY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MIDL_STUB_DESC { + pub RpcInterfaceInformation: *mut ::core::ffi::c_void, + pub pfnAllocate: PFN_RPC_ALLOCATE, + pub pfnFree: PFN_RPC_FREE, + pub IMPLICIT_HANDLE_INFO: MIDL_STUB_DESC_0, + pub apfnNdrRundownRoutines: *const NDR_RUNDOWN, + pub aGenericBindingRoutinePairs: *const GENERIC_BINDING_ROUTINE_PAIR, + pub apfnExprEval: *const EXPR_EVAL, + pub aXmitQuintuple: *const XMIT_ROUTINE_QUINTUPLE, + pub pFormatTypes: *const u8, + pub fCheckBounds: i32, + pub Version: u32, + pub pMallocFreeStruct: *mut MALLOC_FREE_STRUCT, + pub MIDLVersion: i32, + pub CommFaultOffsets: *const COMM_FAULT_OFFSETS, + pub aUserMarshalQuadruple: *const USER_MARSHAL_ROUTINE_QUADRUPLE, + pub NotifyRoutineTable: *const NDR_NOTIFY_ROUTINE, + pub mFlags: usize, + pub CsRoutineTables: *const NDR_CS_ROUTINES, + pub ProxyServerInfo: *mut ::core::ffi::c_void, + pub pExprInfo: *const NDR_EXPR_DESC, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MIDL_STUB_DESC {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MIDL_STUB_DESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union MIDL_STUB_DESC_0 { + pub pAutoHandle: *mut *mut ::core::ffi::c_void, + pub pPrimitiveHandle: *mut *mut ::core::ffi::c_void, + pub pGenericBindingInfo: *mut GENERIC_BINDING_INFO, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MIDL_STUB_DESC_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MIDL_STUB_DESC_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MIDL_STUB_MESSAGE { + pub RpcMsg: *mut RPC_MESSAGE, + pub Buffer: *mut u8, + pub BufferStart: *mut u8, + pub BufferEnd: *mut u8, + pub BufferMark: *mut u8, + pub BufferLength: u32, + pub MemorySize: u32, + pub Memory: *mut u8, + pub IsClient: u8, + pub Pad: u8, + pub uFlags2: u16, + pub ReuseBuffer: i32, + pub pAllocAllNodesContext: *mut NDR_ALLOC_ALL_NODES_CONTEXT, + pub pPointerQueueState: *mut NDR_POINTER_QUEUE_STATE, + pub IgnoreEmbeddedPointers: i32, + pub PointerBufferMark: *mut u8, + pub CorrDespIncrement: u8, + pub uFlags: u8, + pub UniquePtrCount: u16, + pub MaxCount: usize, + pub Offset: u32, + pub ActualCount: u32, + pub pfnAllocate: PFN_RPC_ALLOCATE, + pub pfnFree: PFN_RPC_FREE, + pub StackTop: *mut u8, + pub pPresentedType: *mut u8, + pub pTransmitType: *mut u8, + pub SavedHandle: *mut ::core::ffi::c_void, + pub StubDesc: *const MIDL_STUB_DESC, + pub FullPtrXlatTables: *mut FULL_PTR_XLAT_TABLES, + pub FullPtrRefId: u32, + pub PointerLength: u32, + pub _bitfield: i32, + pub dwDestContext: u32, + pub pvDestContext: *mut ::core::ffi::c_void, + pub SavedContextHandles: *mut *mut NDR_SCONTEXT, + pub ParamNumber: i32, + pub pRpcChannelBuffer: super::Com::IRpcChannelBuffer, + pub pArrayInfo: *mut ARRAY_INFO, + pub SizePtrCountArray: *mut u32, + pub SizePtrOffsetArray: *mut u32, + pub SizePtrLengthArray: *mut u32, + pub pArgQueue: *mut ::core::ffi::c_void, + pub dwStubPhase: u32, + pub LowStackMark: *mut ::core::ffi::c_void, + pub pAsyncMsg: PNDR_ASYNC_MESSAGE, + pub pCorrInfo: PNDR_CORRELATION_INFO, + pub pCorrMemory: *mut u8, + pub pMemoryList: *mut ::core::ffi::c_void, + pub pCSInfo: isize, + pub ConformanceMark: *mut u8, + pub VarianceMark: *mut u8, + pub Unused: isize, + pub pContext: *mut _NDR_PROC_CONTEXT, + pub ContextHandleHash: *mut ::core::ffi::c_void, + pub pUserMarshalList: *mut ::core::ffi::c_void, + pub Reserved51_3: isize, + pub Reserved51_4: isize, + pub Reserved51_5: isize, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MIDL_STUB_MESSAGE {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MIDL_STUB_MESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIDL_SYNTAX_INFO { + pub TransferSyntax: RPC_SYNTAX_IDENTIFIER, + pub DispatchTable: *mut RPC_DISPATCH_TABLE, + pub ProcString: *mut u8, + pub FmtStringOffset: *const u16, + pub TypeString: *mut u8, + pub aUserMarshalQuadruple: *const ::core::ffi::c_void, + pub pMethodProperties: *const MIDL_INTERFACE_METHOD_PROPERTIES, + pub pReserved2: usize, +} +impl ::core::marker::Copy for MIDL_SYNTAX_INFO {} +impl ::core::clone::Clone for MIDL_SYNTAX_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MIDL_TYPE_PICKLING_INFO { + pub Version: u32, + pub Flags: u32, + pub Reserved: [usize; 3], +} +impl ::core::marker::Copy for MIDL_TYPE_PICKLING_INFO {} +impl ::core::clone::Clone for MIDL_TYPE_PICKLING_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct MIDL_WINRT_TYPE_SERIALIZATION_INFO { + pub Version: u32, + pub TypeFormatString: *mut u8, + pub FormatStringSize: u16, + pub TypeOffset: u16, + pub StubDesc: *mut MIDL_STUB_DESC, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for MIDL_WINRT_TYPE_SERIALIZATION_INFO {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for MIDL_WINRT_TYPE_SERIALIZATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_ARRAY_ELEMENT_INFO { + pub ElementMemSize: u32, + pub Element: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_ARRAY_ELEMENT_INFO {} +impl ::core::clone::Clone for NDR64_ARRAY_ELEMENT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_ARRAY_FLAGS { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NDR64_ARRAY_FLAGS {} +impl ::core::clone::Clone for NDR64_ARRAY_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NDR64_BINDINGS { + pub Primitive: NDR64_BIND_PRIMITIVE, + pub Generic: NDR64_BIND_GENERIC, + pub Context: NDR64_BIND_CONTEXT, +} +impl ::core::marker::Copy for NDR64_BINDINGS {} +impl ::core::clone::Clone for NDR64_BINDINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_BIND_AND_NOTIFY_EXTENSION { + pub Binding: NDR64_BIND_CONTEXT, + pub NotifyIndex: u16, +} +impl ::core::marker::Copy for NDR64_BIND_AND_NOTIFY_EXTENSION {} +impl ::core::clone::Clone for NDR64_BIND_AND_NOTIFY_EXTENSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_BIND_CONTEXT { + pub HandleType: u8, + pub Flags: u8, + pub StackOffset: u16, + pub RoutineIndex: u8, + pub Ordinal: u8, +} +impl ::core::marker::Copy for NDR64_BIND_CONTEXT {} +impl ::core::clone::Clone for NDR64_BIND_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_BIND_GENERIC { + pub HandleType: u8, + pub Flags: u8, + pub StackOffset: u16, + pub RoutineIndex: u8, + pub Size: u8, +} +impl ::core::marker::Copy for NDR64_BIND_GENERIC {} +impl ::core::clone::Clone for NDR64_BIND_GENERIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_BIND_PRIMITIVE { + pub HandleType: u8, + pub Flags: u8, + pub StackOffset: u16, + pub Reserved: u16, +} +impl ::core::marker::Copy for NDR64_BIND_PRIMITIVE {} +impl ::core::clone::Clone for NDR64_BIND_PRIMITIVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_BOGUS_ARRAY_HEADER_FORMAT { + pub FormatCode: u8, + pub Alignment: u8, + pub Flags: NDR64_ARRAY_FLAGS, + pub NumberDims: u8, + pub NumberElements: u32, + pub Element: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_BOGUS_ARRAY_HEADER_FORMAT {} +impl ::core::clone::Clone for NDR64_BOGUS_ARRAY_HEADER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_BOGUS_STRUCTURE_HEADER_FORMAT { + pub FormatCode: u8, + pub Alignment: u8, + pub Flags: NDR64_STRUCTURE_FLAGS, + pub Reserve: u8, + pub MemorySize: u32, + pub OriginalMemberLayout: *mut ::core::ffi::c_void, + pub OriginalPointerLayout: *mut ::core::ffi::c_void, + pub PointerLayout: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_BOGUS_STRUCTURE_HEADER_FORMAT {} +impl ::core::clone::Clone for NDR64_BOGUS_STRUCTURE_HEADER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_BUFFER_ALIGN_FORMAT { + pub FormatCode: u8, + pub Alignment: u8, + pub Reserved: u16, + pub Reserved2: u32, +} +impl ::core::marker::Copy for NDR64_BUFFER_ALIGN_FORMAT {} +impl ::core::clone::Clone for NDR64_BUFFER_ALIGN_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_CONFORMANT_STRING_FORMAT { + pub Header: NDR64_STRING_HEADER_FORMAT, +} +impl ::core::marker::Copy for NDR64_CONFORMANT_STRING_FORMAT {} +impl ::core::clone::Clone for NDR64_CONFORMANT_STRING_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_CONF_ARRAY_HEADER_FORMAT { + pub FormatCode: u8, + pub Alignment: u8, + pub Flags: NDR64_ARRAY_FLAGS, + pub Reserved: u8, + pub ElementSize: u32, + pub ConfDescriptor: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_CONF_ARRAY_HEADER_FORMAT {} +impl ::core::clone::Clone for NDR64_CONF_ARRAY_HEADER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_CONF_BOGUS_STRUCTURE_HEADER_FORMAT { + pub FormatCode: u8, + pub Alignment: u8, + pub Flags: NDR64_STRUCTURE_FLAGS, + pub Dimensions: u8, + pub MemorySize: u32, + pub OriginalMemberLayout: *mut ::core::ffi::c_void, + pub OriginalPointerLayout: *mut ::core::ffi::c_void, + pub PointerLayout: *mut ::core::ffi::c_void, + pub ConfArrayDescription: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_CONF_BOGUS_STRUCTURE_HEADER_FORMAT {} +impl ::core::clone::Clone for NDR64_CONF_BOGUS_STRUCTURE_HEADER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_CONF_STRUCTURE_HEADER_FORMAT { + pub FormatCode: u8, + pub Alignment: u8, + pub Flags: NDR64_STRUCTURE_FLAGS, + pub Reserve: u8, + pub MemorySize: u32, + pub ArrayDescription: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_CONF_STRUCTURE_HEADER_FORMAT {} +impl ::core::clone::Clone for NDR64_CONF_STRUCTURE_HEADER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_CONF_VAR_ARRAY_HEADER_FORMAT { + pub FormatCode: u8, + pub Alignment: u8, + pub Flags: NDR64_ARRAY_FLAGS, + pub Reserved: u8, + pub ElementSize: u32, + pub ConfDescriptor: *mut ::core::ffi::c_void, + pub VarDescriptor: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_CONF_VAR_ARRAY_HEADER_FORMAT {} +impl ::core::clone::Clone for NDR64_CONF_VAR_ARRAY_HEADER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_CONF_VAR_BOGUS_ARRAY_HEADER_FORMAT { + pub FixedArrayFormat: NDR64_BOGUS_ARRAY_HEADER_FORMAT, + pub ConfDescription: *mut ::core::ffi::c_void, + pub VarDescription: *mut ::core::ffi::c_void, + pub OffsetDescription: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_CONF_VAR_BOGUS_ARRAY_HEADER_FORMAT {} +impl ::core::clone::Clone for NDR64_CONF_VAR_BOGUS_ARRAY_HEADER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_CONSTANT_IID_FORMAT { + pub FormatCode: u8, + pub Flags: u8, + pub Reserved: u16, + pub Guid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NDR64_CONSTANT_IID_FORMAT {} +impl ::core::clone::Clone for NDR64_CONSTANT_IID_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_CONTEXT_HANDLE_FLAGS { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NDR64_CONTEXT_HANDLE_FLAGS {} +impl ::core::clone::Clone for NDR64_CONTEXT_HANDLE_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_CONTEXT_HANDLE_FORMAT { + pub FormatCode: u8, + pub ContextFlags: u8, + pub RundownRoutineIndex: u8, + pub Ordinal: u8, +} +impl ::core::marker::Copy for NDR64_CONTEXT_HANDLE_FORMAT {} +impl ::core::clone::Clone for NDR64_CONTEXT_HANDLE_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_EMBEDDED_COMPLEX_FORMAT { + pub FormatCode: u8, + pub Reserve1: u8, + pub Reserve2: u16, + pub Type: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_EMBEDDED_COMPLEX_FORMAT {} +impl ::core::clone::Clone for NDR64_EMBEDDED_COMPLEX_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_ENCAPSULATED_UNION { + pub FormatCode: u8, + pub Alignment: u8, + pub Flags: u8, + pub SwitchType: u8, + pub MemoryOffset: u32, + pub MemorySize: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for NDR64_ENCAPSULATED_UNION {} +impl ::core::clone::Clone for NDR64_ENCAPSULATED_UNION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_EXPR_CONST32 { + pub ExprType: u8, + pub Reserved: u8, + pub Reserved1: u16, + pub ConstValue: u32, +} +impl ::core::marker::Copy for NDR64_EXPR_CONST32 {} +impl ::core::clone::Clone for NDR64_EXPR_CONST32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_EXPR_CONST64 { + pub ExprType: u8, + pub Reserved: u8, + pub Reserved1: u16, + pub ConstValue: i64, +} +impl ::core::marker::Copy for NDR64_EXPR_CONST64 {} +impl ::core::clone::Clone for NDR64_EXPR_CONST64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_EXPR_NOOP { + pub ExprType: u8, + pub Size: u8, + pub Reserved: u16, +} +impl ::core::marker::Copy for NDR64_EXPR_NOOP {} +impl ::core::clone::Clone for NDR64_EXPR_NOOP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_EXPR_OPERATOR { + pub ExprType: u8, + pub Operator: u8, + pub CastType: u8, + pub Reserved: u8, +} +impl ::core::marker::Copy for NDR64_EXPR_OPERATOR {} +impl ::core::clone::Clone for NDR64_EXPR_OPERATOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_EXPR_VAR { + pub ExprType: u8, + pub VarType: u8, + pub Reserved: u16, + pub Offset: u32, +} +impl ::core::marker::Copy for NDR64_EXPR_VAR {} +impl ::core::clone::Clone for NDR64_EXPR_VAR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_FIXED_REPEAT_FORMAT { + pub RepeatFormat: NDR64_REPEAT_FORMAT, + pub Iterations: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for NDR64_FIXED_REPEAT_FORMAT {} +impl ::core::clone::Clone for NDR64_FIXED_REPEAT_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_FIX_ARRAY_HEADER_FORMAT { + pub FormatCode: u8, + pub Alignment: u8, + pub Flags: NDR64_ARRAY_FLAGS, + pub Reserved: u8, + pub TotalSize: u32, +} +impl ::core::marker::Copy for NDR64_FIX_ARRAY_HEADER_FORMAT {} +impl ::core::clone::Clone for NDR64_FIX_ARRAY_HEADER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_IID_FLAGS { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NDR64_IID_FLAGS {} +impl ::core::clone::Clone for NDR64_IID_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_IID_FORMAT { + pub FormatCode: u8, + pub Flags: u8, + pub Reserved: u16, + pub IIDDescriptor: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_IID_FORMAT {} +impl ::core::clone::Clone for NDR64_IID_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_MEMPAD_FORMAT { + pub FormatCode: u8, + pub Reserve1: u8, + pub MemPad: u16, + pub Reserved2: u32, +} +impl ::core::marker::Copy for NDR64_MEMPAD_FORMAT {} +impl ::core::clone::Clone for NDR64_MEMPAD_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_NON_CONFORMANT_STRING_FORMAT { + pub Header: NDR64_STRING_HEADER_FORMAT, + pub TotalSize: u32, +} +impl ::core::marker::Copy for NDR64_NON_CONFORMANT_STRING_FORMAT {} +impl ::core::clone::Clone for NDR64_NON_CONFORMANT_STRING_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_NON_ENCAPSULATED_UNION { + pub FormatCode: u8, + pub Alignment: u8, + pub Flags: u8, + pub SwitchType: u8, + pub MemorySize: u32, + pub Switch: *mut ::core::ffi::c_void, + pub Reserved: u32, +} +impl ::core::marker::Copy for NDR64_NON_ENCAPSULATED_UNION {} +impl ::core::clone::Clone for NDR64_NON_ENCAPSULATED_UNION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_NO_REPEAT_FORMAT { + pub FormatCode: u8, + pub Flags: u8, + pub Reserved1: u16, + pub Reserved2: u32, +} +impl ::core::marker::Copy for NDR64_NO_REPEAT_FORMAT {} +impl ::core::clone::Clone for NDR64_NO_REPEAT_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_PARAM_FLAGS { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NDR64_PARAM_FLAGS {} +impl ::core::clone::Clone for NDR64_PARAM_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_PARAM_FORMAT { + pub Type: *mut ::core::ffi::c_void, + pub Attributes: NDR64_PARAM_FLAGS, + pub Reserved: u16, + pub StackOffset: u32, +} +impl ::core::marker::Copy for NDR64_PARAM_FORMAT {} +impl ::core::clone::Clone for NDR64_PARAM_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_PIPE_FLAGS { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NDR64_PIPE_FLAGS {} +impl ::core::clone::Clone for NDR64_PIPE_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_PIPE_FORMAT { + pub FormatCode: u8, + pub Flags: u8, + pub Alignment: u8, + pub Reserved: u8, + pub Type: *mut ::core::ffi::c_void, + pub MemorySize: u32, + pub BufferSize: u32, +} +impl ::core::marker::Copy for NDR64_PIPE_FORMAT {} +impl ::core::clone::Clone for NDR64_PIPE_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_POINTER_FORMAT { + pub FormatCode: u8, + pub Flags: u8, + pub Reserved: u16, + pub Pointee: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_POINTER_FORMAT {} +impl ::core::clone::Clone for NDR64_POINTER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_POINTER_INSTANCE_HEADER_FORMAT { + pub Offset: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for NDR64_POINTER_INSTANCE_HEADER_FORMAT {} +impl ::core::clone::Clone for NDR64_POINTER_INSTANCE_HEADER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_POINTER_REPEAT_FLAGS { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NDR64_POINTER_REPEAT_FLAGS {} +impl ::core::clone::Clone for NDR64_POINTER_REPEAT_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_PROC_FLAGS { + pub _bitfield: u32, +} +impl ::core::marker::Copy for NDR64_PROC_FLAGS {} +impl ::core::clone::Clone for NDR64_PROC_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_PROC_FORMAT { + pub Flags: u32, + pub StackSize: u32, + pub ConstantClientBufferSize: u32, + pub ConstantServerBufferSize: u32, + pub RpcFlags: u16, + pub FloatDoubleMask: u16, + pub NumberOfParams: u16, + pub ExtensionSize: u16, +} +impl ::core::marker::Copy for NDR64_PROC_FORMAT {} +impl ::core::clone::Clone for NDR64_PROC_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_RANGED_STRING_FORMAT { + pub Header: NDR64_STRING_HEADER_FORMAT, + pub Reserved: u32, + pub Min: u64, + pub Max: u64, +} +impl ::core::marker::Copy for NDR64_RANGED_STRING_FORMAT {} +impl ::core::clone::Clone for NDR64_RANGED_STRING_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_RANGE_FORMAT { + pub FormatCode: u8, + pub RangeType: u8, + pub Reserved: u16, + pub MinValue: i64, + pub MaxValue: i64, +} +impl ::core::marker::Copy for NDR64_RANGE_FORMAT {} +impl ::core::clone::Clone for NDR64_RANGE_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_RANGE_PIPE_FORMAT { + pub FormatCode: u8, + pub Flags: u8, + pub Alignment: u8, + pub Reserved: u8, + pub Type: *mut ::core::ffi::c_void, + pub MemorySize: u32, + pub BufferSize: u32, + pub MinValue: u32, + pub MaxValue: u32, +} +impl ::core::marker::Copy for NDR64_RANGE_PIPE_FORMAT {} +impl ::core::clone::Clone for NDR64_RANGE_PIPE_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_REPEAT_FORMAT { + pub FormatCode: u8, + pub Flags: NDR64_POINTER_REPEAT_FLAGS, + pub Reserved: u16, + pub Increment: u32, + pub OffsetToArray: u32, + pub NumberOfPointers: u32, +} +impl ::core::marker::Copy for NDR64_REPEAT_FORMAT {} +impl ::core::clone::Clone for NDR64_REPEAT_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_RPC_FLAGS { + pub _bitfield: u16, +} +impl ::core::marker::Copy for NDR64_RPC_FLAGS {} +impl ::core::clone::Clone for NDR64_RPC_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_SIMPLE_MEMBER_FORMAT { + pub FormatCode: u8, + pub Reserved1: u8, + pub Reserved2: u16, + pub Reserved3: u32, +} +impl ::core::marker::Copy for NDR64_SIMPLE_MEMBER_FORMAT {} +impl ::core::clone::Clone for NDR64_SIMPLE_MEMBER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_SIMPLE_REGION_FORMAT { + pub FormatCode: u8, + pub Alignment: u8, + pub RegionSize: u16, + pub Reserved: u32, +} +impl ::core::marker::Copy for NDR64_SIMPLE_REGION_FORMAT {} +impl ::core::clone::Clone for NDR64_SIMPLE_REGION_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_SIZED_CONFORMANT_STRING_FORMAT { + pub Header: NDR64_STRING_HEADER_FORMAT, + pub SizeDescription: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_SIZED_CONFORMANT_STRING_FORMAT {} +impl ::core::clone::Clone for NDR64_SIZED_CONFORMANT_STRING_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_STRING_FLAGS { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NDR64_STRING_FLAGS {} +impl ::core::clone::Clone for NDR64_STRING_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_STRING_HEADER_FORMAT { + pub FormatCode: u8, + pub Flags: NDR64_STRING_FLAGS, + pub ElementSize: u16, +} +impl ::core::marker::Copy for NDR64_STRING_HEADER_FORMAT {} +impl ::core::clone::Clone for NDR64_STRING_HEADER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_STRUCTURE_FLAGS { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NDR64_STRUCTURE_FLAGS {} +impl ::core::clone::Clone for NDR64_STRUCTURE_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_STRUCTURE_HEADER_FORMAT { + pub FormatCode: u8, + pub Alignment: u8, + pub Flags: NDR64_STRUCTURE_FLAGS, + pub Reserve: u8, + pub MemorySize: u32, +} +impl ::core::marker::Copy for NDR64_STRUCTURE_HEADER_FORMAT {} +impl ::core::clone::Clone for NDR64_STRUCTURE_HEADER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_SYSTEM_HANDLE_FORMAT { + pub FormatCode: u8, + pub HandleType: u8, + pub DesiredAccess: u32, +} +impl ::core::marker::Copy for NDR64_SYSTEM_HANDLE_FORMAT {} +impl ::core::clone::Clone for NDR64_SYSTEM_HANDLE_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_TRANSMIT_AS_FLAGS { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NDR64_TRANSMIT_AS_FLAGS {} +impl ::core::clone::Clone for NDR64_TRANSMIT_AS_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_TRANSMIT_AS_FORMAT { + pub FormatCode: u8, + pub Flags: u8, + pub RoutineIndex: u16, + pub TransmittedTypeWireAlignment: u16, + pub MemoryAlignment: u16, + pub PresentedTypeMemorySize: u32, + pub TransmittedTypeBufferSize: u32, + pub TransmittedType: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_TRANSMIT_AS_FORMAT {} +impl ::core::clone::Clone for NDR64_TRANSMIT_AS_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_TYPE_STRICT_CONTEXT_HANDLE { + pub FormatCode: u8, + pub RealFormatCode: u8, + pub Reserved: u16, + pub Type: *mut ::core::ffi::c_void, + pub CtxtFlags: u32, + pub CtxtID: u32, +} +impl ::core::marker::Copy for NDR64_TYPE_STRICT_CONTEXT_HANDLE {} +impl ::core::clone::Clone for NDR64_TYPE_STRICT_CONTEXT_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_UNION_ARM { + pub CaseValue: i64, + pub Type: *mut ::core::ffi::c_void, + pub Reserved: u32, +} +impl ::core::marker::Copy for NDR64_UNION_ARM {} +impl ::core::clone::Clone for NDR64_UNION_ARM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_UNION_ARM_SELECTOR { + pub Reserved1: u8, + pub Alignment: u8, + pub Reserved2: u16, + pub Arms: u32, +} +impl ::core::marker::Copy for NDR64_UNION_ARM_SELECTOR {} +impl ::core::clone::Clone for NDR64_UNION_ARM_SELECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_USER_MARSHAL_FLAGS { + pub _bitfield: u8, +} +impl ::core::marker::Copy for NDR64_USER_MARSHAL_FLAGS {} +impl ::core::clone::Clone for NDR64_USER_MARSHAL_FLAGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_USER_MARSHAL_FORMAT { + pub FormatCode: u8, + pub Flags: u8, + pub RoutineIndex: u16, + pub TransmittedTypeWireAlignment: u16, + pub MemoryAlignment: u16, + pub UserTypeMemorySize: u32, + pub TransmittedTypeBufferSize: u32, + pub TransmittedType: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_USER_MARSHAL_FORMAT {} +impl ::core::clone::Clone for NDR64_USER_MARSHAL_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR64_VAR_ARRAY_HEADER_FORMAT { + pub FormatCode: u8, + pub Alignment: u8, + pub Flags: NDR64_ARRAY_FLAGS, + pub Reserved: u8, + pub TotalSize: u32, + pub ElementSize: u32, + pub VarDescriptor: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR64_VAR_ARRAY_HEADER_FORMAT {} +impl ::core::clone::Clone for NDR64_VAR_ARRAY_HEADER_FORMAT { + fn clone(&self) -> Self { + *self + } +} +pub type NDR_ALLOC_ALL_NODES_CONTEXT = isize; +#[repr(C)] +pub struct NDR_CS_ROUTINES { + pub pSizeConvertRoutines: *mut NDR_CS_SIZE_CONVERT_ROUTINES, + pub pTagGettingRoutines: *mut CS_TAG_GETTING_ROUTINE, +} +impl ::core::marker::Copy for NDR_CS_ROUTINES {} +impl ::core::clone::Clone for NDR_CS_ROUTINES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR_CS_SIZE_CONVERT_ROUTINES { + pub pfnNetSize: CS_TYPE_NET_SIZE_ROUTINE, + pub pfnToNetCs: CS_TYPE_TO_NETCS_ROUTINE, + pub pfnLocalSize: CS_TYPE_LOCAL_SIZE_ROUTINE, + pub pfnFromNetCs: CS_TYPE_FROM_NETCS_ROUTINE, +} +impl ::core::marker::Copy for NDR_CS_SIZE_CONVERT_ROUTINES {} +impl ::core::clone::Clone for NDR_CS_SIZE_CONVERT_ROUTINES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NDR_EXPR_DESC { + pub pOffset: *const u16, + pub pFormatExpr: *mut u8, +} +impl ::core::marker::Copy for NDR_EXPR_DESC {} +impl ::core::clone::Clone for NDR_EXPR_DESC { + fn clone(&self) -> Self { + *self + } +} +pub type NDR_POINTER_QUEUE_STATE = isize; +#[repr(C)] +pub struct NDR_SCONTEXT { + pub pad: [*mut ::core::ffi::c_void; 2], + pub userContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for NDR_SCONTEXT {} +impl ::core::clone::Clone for NDR_SCONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct NDR_USER_MARSHAL_INFO { + pub InformationLevel: u32, + pub Anonymous: NDR_USER_MARSHAL_INFO_0, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for NDR_USER_MARSHAL_INFO {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for NDR_USER_MARSHAL_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union NDR_USER_MARSHAL_INFO_0 { + pub Level1: NDR_USER_MARSHAL_INFO_LEVEL1, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for NDR_USER_MARSHAL_INFO_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for NDR_USER_MARSHAL_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct NDR_USER_MARSHAL_INFO_LEVEL1 { + pub Buffer: *mut ::core::ffi::c_void, + pub BufferSize: u32, + pub pfnAllocate: isize, + pub pfnFree: isize, + pub pRpcChannelBuffer: super::Com::IRpcChannelBuffer, + pub Reserved: [usize; 5], +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for NDR_USER_MARSHAL_INFO_LEVEL1 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for NDR_USER_MARSHAL_INFO_LEVEL1 { + fn clone(&self) -> Self { + *self + } +} +pub type PNDR_ASYNC_MESSAGE = isize; +pub type PNDR_CORRELATION_INFO = isize; +#[repr(C)] +pub struct RDR_CALLOUT_STATE { + pub LastError: RPC_STATUS, + pub LastEEInfo: *mut ::core::ffi::c_void, + pub LastCalledStage: RPC_HTTP_REDIRECTOR_STAGE, + pub ServerName: *mut u16, + pub ServerPort: *mut u16, + pub RemoteUser: *mut u16, + pub AuthType: *mut u16, + pub ResourceTypePresent: u8, + pub SessionIdPresent: u8, + pub InterfacePresent: u8, + pub ResourceType: ::windows_sys::core::GUID, + pub SessionId: ::windows_sys::core::GUID, + pub Interface: RPC_SYNTAX_IDENTIFIER, + pub CertContext: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for RDR_CALLOUT_STATE {} +impl ::core::clone::Clone for RDR_CALLOUT_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub union RPC_ASYNC_NOTIFICATION_INFO { + pub APC: RPC_ASYNC_NOTIFICATION_INFO_0, + pub IOC: RPC_ASYNC_NOTIFICATION_INFO_1, + pub IntPtr: RPC_ASYNC_NOTIFICATION_INFO_2, + pub hEvent: super::super::Foundation::HANDLE, + pub NotificationRoutine: PFN_RPCNOTIFICATION_ROUTINE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for RPC_ASYNC_NOTIFICATION_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for RPC_ASYNC_NOTIFICATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct RPC_ASYNC_NOTIFICATION_INFO_0 { + pub NotificationRoutine: PFN_RPCNOTIFICATION_ROUTINE, + pub hThread: super::super::Foundation::HANDLE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for RPC_ASYNC_NOTIFICATION_INFO_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for RPC_ASYNC_NOTIFICATION_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct RPC_ASYNC_NOTIFICATION_INFO_1 { + pub hIOPort: super::super::Foundation::HANDLE, + pub dwNumberOfBytesTransferred: u32, + pub dwCompletionKey: usize, + pub lpOverlapped: *mut super::IO::OVERLAPPED, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for RPC_ASYNC_NOTIFICATION_INFO_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for RPC_ASYNC_NOTIFICATION_INFO_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct RPC_ASYNC_NOTIFICATION_INFO_2 { + pub hWnd: super::super::Foundation::HWND, + pub Msg: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for RPC_ASYNC_NOTIFICATION_INFO_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for RPC_ASYNC_NOTIFICATION_INFO_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub struct RPC_ASYNC_STATE { + pub Size: u32, + pub Signature: u32, + pub Lock: i32, + pub Flags: u32, + pub StubInfo: *mut ::core::ffi::c_void, + pub UserInfo: *mut ::core::ffi::c_void, + pub RuntimeInfo: *mut ::core::ffi::c_void, + pub Event: RPC_ASYNC_EVENT, + pub NotificationType: RPC_NOTIFICATION_TYPES, + pub u: RPC_ASYNC_NOTIFICATION_INFO, + pub Reserved: [isize; 4], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::marker::Copy for RPC_ASYNC_STATE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +impl ::core::clone::Clone for RPC_ASYNC_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_BINDING_HANDLE_OPTIONS_V1 { + pub Version: u32, + pub Flags: RPC_BINDING_HANDLE_OPTIONS_FLAGS, + pub ComTimeout: u32, + pub CallTimeout: u32, +} +impl ::core::marker::Copy for RPC_BINDING_HANDLE_OPTIONS_V1 {} +impl ::core::clone::Clone for RPC_BINDING_HANDLE_OPTIONS_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct RPC_BINDING_HANDLE_SECURITY_V1_A { + pub Version: u32, + pub ServerPrincName: *mut u8, + pub AuthnLevel: u32, + pub AuthnSvc: u32, + pub AuthIdentity: *mut SEC_WINNT_AUTH_IDENTITY_A, + pub SecurityQos: *mut RPC_SECURITY_QOS, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_BINDING_HANDLE_SECURITY_V1_A {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_BINDING_HANDLE_SECURITY_V1_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct RPC_BINDING_HANDLE_SECURITY_V1_W { + pub Version: u32, + pub ServerPrincName: *mut u16, + pub AuthnLevel: u32, + pub AuthnSvc: u32, + pub AuthIdentity: *mut SEC_WINNT_AUTH_IDENTITY_W, + pub SecurityQos: *mut RPC_SECURITY_QOS, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_BINDING_HANDLE_SECURITY_V1_W {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_BINDING_HANDLE_SECURITY_V1_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_BINDING_HANDLE_TEMPLATE_V1_A { + pub Version: u32, + pub Flags: u32, + pub ProtocolSequence: u32, + pub NetworkAddress: *mut u8, + pub StringEndpoint: *mut u8, + pub u1: RPC_BINDING_HANDLE_TEMPLATE_V1_A_0, + pub ObjectUuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for RPC_BINDING_HANDLE_TEMPLATE_V1_A {} +impl ::core::clone::Clone for RPC_BINDING_HANDLE_TEMPLATE_V1_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union RPC_BINDING_HANDLE_TEMPLATE_V1_A_0 { + pub Reserved: *mut u8, +} +impl ::core::marker::Copy for RPC_BINDING_HANDLE_TEMPLATE_V1_A_0 {} +impl ::core::clone::Clone for RPC_BINDING_HANDLE_TEMPLATE_V1_A_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_BINDING_HANDLE_TEMPLATE_V1_W { + pub Version: u32, + pub Flags: u32, + pub ProtocolSequence: u32, + pub NetworkAddress: *mut u16, + pub StringEndpoint: *mut u16, + pub u1: RPC_BINDING_HANDLE_TEMPLATE_V1_W_0, + pub ObjectUuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for RPC_BINDING_HANDLE_TEMPLATE_V1_W {} +impl ::core::clone::Clone for RPC_BINDING_HANDLE_TEMPLATE_V1_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union RPC_BINDING_HANDLE_TEMPLATE_V1_W_0 { + pub Reserved: *mut u16, +} +impl ::core::marker::Copy for RPC_BINDING_HANDLE_TEMPLATE_V1_W_0 {} +impl ::core::clone::Clone for RPC_BINDING_HANDLE_TEMPLATE_V1_W_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_BINDING_VECTOR { + pub Count: u32, + pub BindingH: [*mut ::core::ffi::c_void; 1], +} +impl ::core::marker::Copy for RPC_BINDING_VECTOR {} +impl ::core::clone::Clone for RPC_BINDING_VECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RPC_CALL_ATTRIBUTES_V1_A { + pub Version: u32, + pub Flags: u32, + pub ServerPrincipalNameBufferLength: u32, + pub ServerPrincipalName: *mut u8, + pub ClientPrincipalNameBufferLength: u32, + pub ClientPrincipalName: *mut u8, + pub AuthenticationLevel: u32, + pub AuthenticationService: u32, + pub NullSession: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RPC_CALL_ATTRIBUTES_V1_A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RPC_CALL_ATTRIBUTES_V1_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RPC_CALL_ATTRIBUTES_V1_W { + pub Version: u32, + pub Flags: u32, + pub ServerPrincipalNameBufferLength: u32, + pub ServerPrincipalName: *mut u16, + pub ClientPrincipalNameBufferLength: u32, + pub ClientPrincipalName: *mut u16, + pub AuthenticationLevel: u32, + pub AuthenticationService: u32, + pub NullSession: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RPC_CALL_ATTRIBUTES_V1_W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RPC_CALL_ATTRIBUTES_V1_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RPC_CALL_ATTRIBUTES_V2_A { + pub Version: u32, + pub Flags: u32, + pub ServerPrincipalNameBufferLength: u32, + pub ServerPrincipalName: *mut u8, + pub ClientPrincipalNameBufferLength: u32, + pub ClientPrincipalName: *mut u8, + pub AuthenticationLevel: u32, + pub AuthenticationService: u32, + pub NullSession: super::super::Foundation::BOOL, + pub KernelModeCaller: super::super::Foundation::BOOL, + pub ProtocolSequence: u32, + pub IsClientLocal: u32, + pub ClientPID: super::super::Foundation::HANDLE, + pub CallStatus: u32, + pub CallType: RpcCallType, + pub CallLocalAddress: *mut RPC_CALL_LOCAL_ADDRESS_V1, + pub OpNum: u16, + pub InterfaceUuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RPC_CALL_ATTRIBUTES_V2_A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RPC_CALL_ATTRIBUTES_V2_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RPC_CALL_ATTRIBUTES_V2_W { + pub Version: u32, + pub Flags: u32, + pub ServerPrincipalNameBufferLength: u32, + pub ServerPrincipalName: *mut u16, + pub ClientPrincipalNameBufferLength: u32, + pub ClientPrincipalName: *mut u16, + pub AuthenticationLevel: u32, + pub AuthenticationService: u32, + pub NullSession: super::super::Foundation::BOOL, + pub KernelModeCaller: super::super::Foundation::BOOL, + pub ProtocolSequence: u32, + pub IsClientLocal: RpcCallClientLocality, + pub ClientPID: super::super::Foundation::HANDLE, + pub CallStatus: u32, + pub CallType: RpcCallType, + pub CallLocalAddress: *mut RPC_CALL_LOCAL_ADDRESS_V1, + pub OpNum: u16, + pub InterfaceUuid: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RPC_CALL_ATTRIBUTES_V2_W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RPC_CALL_ATTRIBUTES_V2_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RPC_CALL_ATTRIBUTES_V3_A { + pub Version: u32, + pub Flags: u32, + pub ServerPrincipalNameBufferLength: u32, + pub ServerPrincipalName: *mut u8, + pub ClientPrincipalNameBufferLength: u32, + pub ClientPrincipalName: *mut u8, + pub AuthenticationLevel: u32, + pub AuthenticationService: u32, + pub NullSession: super::super::Foundation::BOOL, + pub KernelModeCaller: super::super::Foundation::BOOL, + pub ProtocolSequence: u32, + pub IsClientLocal: u32, + pub ClientPID: super::super::Foundation::HANDLE, + pub CallStatus: u32, + pub CallType: RpcCallType, + pub CallLocalAddress: *mut RPC_CALL_LOCAL_ADDRESS_V1, + pub OpNum: u16, + pub InterfaceUuid: ::windows_sys::core::GUID, + pub ClientIdentifierBufferLength: u32, + pub ClientIdentifier: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RPC_CALL_ATTRIBUTES_V3_A {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RPC_CALL_ATTRIBUTES_V3_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RPC_CALL_ATTRIBUTES_V3_W { + pub Version: u32, + pub Flags: u32, + pub ServerPrincipalNameBufferLength: u32, + pub ServerPrincipalName: *mut u16, + pub ClientPrincipalNameBufferLength: u32, + pub ClientPrincipalName: *mut u16, + pub AuthenticationLevel: u32, + pub AuthenticationService: u32, + pub NullSession: super::super::Foundation::BOOL, + pub KernelModeCaller: super::super::Foundation::BOOL, + pub ProtocolSequence: u32, + pub IsClientLocal: RpcCallClientLocality, + pub ClientPID: super::super::Foundation::HANDLE, + pub CallStatus: u32, + pub CallType: RpcCallType, + pub CallLocalAddress: *mut RPC_CALL_LOCAL_ADDRESS_V1, + pub OpNum: u16, + pub InterfaceUuid: ::windows_sys::core::GUID, + pub ClientIdentifierBufferLength: u32, + pub ClientIdentifier: *mut u8, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RPC_CALL_ATTRIBUTES_V3_W {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RPC_CALL_ATTRIBUTES_V3_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_CALL_LOCAL_ADDRESS_V1 { + pub Version: u32, + pub Buffer: *mut ::core::ffi::c_void, + pub BufferSize: u32, + pub AddressFormat: RpcLocalAddressFormat, +} +impl ::core::marker::Copy for RPC_CALL_LOCAL_ADDRESS_V1 {} +impl ::core::clone::Clone for RPC_CALL_LOCAL_ADDRESS_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_CLIENT_INFORMATION1 { + pub UserName: *mut u8, + pub ComputerName: *mut u8, + pub Privilege: u16, + pub AuthFlags: u32, +} +impl ::core::marker::Copy for RPC_CLIENT_INFORMATION1 {} +impl ::core::clone::Clone for RPC_CLIENT_INFORMATION1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_CLIENT_INTERFACE { + pub Length: u32, + pub InterfaceId: RPC_SYNTAX_IDENTIFIER, + pub TransferSyntax: RPC_SYNTAX_IDENTIFIER, + pub DispatchTable: *mut RPC_DISPATCH_TABLE, + pub RpcProtseqEndpointCount: u32, + pub RpcProtseqEndpoint: *mut RPC_PROTSEQ_ENDPOINT, + pub Reserved: usize, + pub InterpreterInfo: *const ::core::ffi::c_void, + pub Flags: u32, +} +impl ::core::marker::Copy for RPC_CLIENT_INTERFACE {} +impl ::core::clone::Clone for RPC_CLIENT_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR { + pub BufferSize: u32, + pub Buffer: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR {} +impl ::core::clone::Clone for RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_DISPATCH_TABLE { + pub DispatchTableCount: u32, + pub DispatchTable: RPC_DISPATCH_FUNCTION, + pub Reserved: isize, +} +impl ::core::marker::Copy for RPC_DISPATCH_TABLE {} +impl ::core::clone::Clone for RPC_DISPATCH_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_EE_INFO_PARAM { + pub ParameterType: ExtendedErrorParamTypes, + pub u: RPC_EE_INFO_PARAM_0, +} +impl ::core::marker::Copy for RPC_EE_INFO_PARAM {} +impl ::core::clone::Clone for RPC_EE_INFO_PARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union RPC_EE_INFO_PARAM_0 { + pub AnsiString: ::windows_sys::core::PSTR, + pub UnicodeString: ::windows_sys::core::PWSTR, + pub LVal: i32, + pub SVal: i16, + pub PVal: u64, + pub BVal: BinaryParam, +} +impl ::core::marker::Copy for RPC_EE_INFO_PARAM_0 {} +impl ::core::clone::Clone for RPC_EE_INFO_PARAM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_ENDPOINT_TEMPLATEA { + pub Version: u32, + pub ProtSeq: ::windows_sys::core::PSTR, + pub Endpoint: ::windows_sys::core::PSTR, + pub SecurityDescriptor: *mut ::core::ffi::c_void, + pub Backlog: u32, +} +impl ::core::marker::Copy for RPC_ENDPOINT_TEMPLATEA {} +impl ::core::clone::Clone for RPC_ENDPOINT_TEMPLATEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_ENDPOINT_TEMPLATEW { + pub Version: u32, + pub ProtSeq: ::windows_sys::core::PWSTR, + pub Endpoint: ::windows_sys::core::PWSTR, + pub SecurityDescriptor: *mut ::core::ffi::c_void, + pub Backlog: u32, +} +impl ::core::marker::Copy for RPC_ENDPOINT_TEMPLATEW {} +impl ::core::clone::Clone for RPC_ENDPOINT_TEMPLATEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_ERROR_ENUM_HANDLE { + pub Signature: u32, + pub CurrentPos: *mut ::core::ffi::c_void, + pub Head: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for RPC_ERROR_ENUM_HANDLE {} +impl ::core::clone::Clone for RPC_ERROR_ENUM_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RPC_EXTENDED_ERROR_INFO { + pub Version: u32, + pub ComputerName: ::windows_sys::core::PWSTR, + pub ProcessID: u32, + pub u: RPC_EXTENDED_ERROR_INFO_0, + pub GeneratingComponent: u32, + pub Status: u32, + pub DetectionLocation: u16, + pub Flags: u16, + pub NumberOfParameters: i32, + pub Parameters: [RPC_EE_INFO_PARAM; 4], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RPC_EXTENDED_ERROR_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RPC_EXTENDED_ERROR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union RPC_EXTENDED_ERROR_INFO_0 { + pub SystemTime: super::super::Foundation::SYSTEMTIME, + pub FileTime: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RPC_EXTENDED_ERROR_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RPC_EXTENDED_ERROR_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_HTTP_TRANSPORT_CREDENTIALS_A { + pub TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_A, + pub Flags: RPC_C_HTTP_FLAGS, + pub AuthenticationTarget: RPC_C_HTTP_AUTHN_TARGET, + pub NumberOfAuthnSchemes: u32, + pub AuthnSchemes: *mut u32, + pub ServerCertificateSubject: *mut u8, +} +impl ::core::marker::Copy for RPC_HTTP_TRANSPORT_CREDENTIALS_A {} +impl ::core::clone::Clone for RPC_HTTP_TRANSPORT_CREDENTIALS_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A { + pub TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_A, + pub Flags: RPC_C_HTTP_FLAGS, + pub AuthenticationTarget: RPC_C_HTTP_AUTHN_TARGET, + pub NumberOfAuthnSchemes: u32, + pub AuthnSchemes: *mut u32, + pub ServerCertificateSubject: *mut u8, + pub ProxyCredentials: *mut SEC_WINNT_AUTH_IDENTITY_A, + pub NumberOfProxyAuthnSchemes: u32, + pub ProxyAuthnSchemes: *mut u32, +} +impl ::core::marker::Copy for RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A {} +impl ::core::clone::Clone for RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W { + pub TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_W, + pub Flags: RPC_C_HTTP_FLAGS, + pub AuthenticationTarget: RPC_C_HTTP_AUTHN_TARGET, + pub NumberOfAuthnSchemes: u32, + pub AuthnSchemes: *mut u32, + pub ServerCertificateSubject: *mut u16, + pub ProxyCredentials: *mut SEC_WINNT_AUTH_IDENTITY_W, + pub NumberOfProxyAuthnSchemes: u32, + pub ProxyAuthnSchemes: *mut u32, +} +impl ::core::marker::Copy for RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W {} +impl ::core::clone::Clone for RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A { + pub TransportCredentials: *mut ::core::ffi::c_void, + pub Flags: RPC_C_HTTP_FLAGS, + pub AuthenticationTarget: RPC_C_HTTP_AUTHN_TARGET, + pub NumberOfAuthnSchemes: u32, + pub AuthnSchemes: *mut u32, + pub ServerCertificateSubject: *mut u8, + pub ProxyCredentials: *mut ::core::ffi::c_void, + pub NumberOfProxyAuthnSchemes: u32, + pub ProxyAuthnSchemes: *mut u32, +} +impl ::core::marker::Copy for RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A {} +impl ::core::clone::Clone for RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W { + pub TransportCredentials: *mut ::core::ffi::c_void, + pub Flags: RPC_C_HTTP_FLAGS, + pub AuthenticationTarget: RPC_C_HTTP_AUTHN_TARGET, + pub NumberOfAuthnSchemes: u32, + pub AuthnSchemes: *mut u32, + pub ServerCertificateSubject: *mut u16, + pub ProxyCredentials: *mut ::core::ffi::c_void, + pub NumberOfProxyAuthnSchemes: u32, + pub ProxyAuthnSchemes: *mut u32, +} +impl ::core::marker::Copy for RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W {} +impl ::core::clone::Clone for RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_HTTP_TRANSPORT_CREDENTIALS_W { + pub TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_W, + pub Flags: RPC_C_HTTP_FLAGS, + pub AuthenticationTarget: RPC_C_HTTP_AUTHN_TARGET, + pub NumberOfAuthnSchemes: u32, + pub AuthnSchemes: *mut u32, + pub ServerCertificateSubject: *mut u16, +} +impl ::core::marker::Copy for RPC_HTTP_TRANSPORT_CREDENTIALS_W {} +impl ::core::clone::Clone for RPC_HTTP_TRANSPORT_CREDENTIALS_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_IF_ID { + pub Uuid: ::windows_sys::core::GUID, + pub VersMajor: u16, + pub VersMinor: u16, +} +impl ::core::marker::Copy for RPC_IF_ID {} +impl ::core::clone::Clone for RPC_IF_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_IF_ID_VECTOR { + pub Count: u32, + pub IfId: [*mut RPC_IF_ID; 1], +} +impl ::core::marker::Copy for RPC_IF_ID_VECTOR {} +impl ::core::clone::Clone for RPC_IF_ID_VECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_IMPORT_CONTEXT_P { + pub LookupContext: *mut ::core::ffi::c_void, + pub ProposedHandle: *mut ::core::ffi::c_void, + pub Bindings: *mut RPC_BINDING_VECTOR, +} +impl ::core::marker::Copy for RPC_IMPORT_CONTEXT_P {} +impl ::core::clone::Clone for RPC_IMPORT_CONTEXT_P { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_INTERFACE_TEMPLATEA { + pub Version: u32, + pub IfSpec: *mut ::core::ffi::c_void, + pub MgrTypeUuid: *mut ::windows_sys::core::GUID, + pub MgrEpv: *mut ::core::ffi::c_void, + pub Flags: u32, + pub MaxCalls: u32, + pub MaxRpcSize: u32, + pub IfCallback: RPC_IF_CALLBACK_FN, + pub UuidVector: *mut UUID_VECTOR, + pub Annotation: ::windows_sys::core::PSTR, + pub SecurityDescriptor: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for RPC_INTERFACE_TEMPLATEA {} +impl ::core::clone::Clone for RPC_INTERFACE_TEMPLATEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_INTERFACE_TEMPLATEW { + pub Version: u32, + pub IfSpec: *mut ::core::ffi::c_void, + pub MgrTypeUuid: *mut ::windows_sys::core::GUID, + pub MgrEpv: *mut ::core::ffi::c_void, + pub Flags: u32, + pub MaxCalls: u32, + pub MaxRpcSize: u32, + pub IfCallback: RPC_IF_CALLBACK_FN, + pub UuidVector: *mut UUID_VECTOR, + pub Annotation: ::windows_sys::core::PWSTR, + pub SecurityDescriptor: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for RPC_INTERFACE_TEMPLATEW {} +impl ::core::clone::Clone for RPC_INTERFACE_TEMPLATEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_MESSAGE { + pub Handle: *mut ::core::ffi::c_void, + pub DataRepresentation: u32, + pub Buffer: *mut ::core::ffi::c_void, + pub BufferLength: u32, + pub ProcNum: u32, + pub TransferSyntax: *mut RPC_SYNTAX_IDENTIFIER, + pub RpcInterfaceInformation: *mut ::core::ffi::c_void, + pub ReservedForRuntime: *mut ::core::ffi::c_void, + pub ManagerEpv: *mut ::core::ffi::c_void, + pub ImportContext: *mut ::core::ffi::c_void, + pub RpcFlags: u32, +} +impl ::core::marker::Copy for RPC_MESSAGE {} +impl ::core::clone::Clone for RPC_MESSAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_POLICY { + pub Length: u32, + pub EndpointFlags: u32, + pub NICFlags: u32, +} +impl ::core::marker::Copy for RPC_POLICY {} +impl ::core::clone::Clone for RPC_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_PROTSEQ_ENDPOINT { + pub RpcProtocolSequence: *mut u8, + pub Endpoint: *mut u8, +} +impl ::core::marker::Copy for RPC_PROTSEQ_ENDPOINT {} +impl ::core::clone::Clone for RPC_PROTSEQ_ENDPOINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_PROTSEQ_VECTORA { + pub Count: u32, + pub Protseq: [*mut u8; 1], +} +impl ::core::marker::Copy for RPC_PROTSEQ_VECTORA {} +impl ::core::clone::Clone for RPC_PROTSEQ_VECTORA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_PROTSEQ_VECTORW { + pub Count: u32, + pub Protseq: [*mut u16; 1], +} +impl ::core::marker::Copy for RPC_PROTSEQ_VECTORW {} +impl ::core::clone::Clone for RPC_PROTSEQ_VECTORW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct RPC_SECURITY_QOS { + pub Version: u32, + pub Capabilities: RPC_C_QOS_CAPABILITIES, + pub IdentityTracking: RPC_C_QOS_IDENTITY, + pub ImpersonationType: super::Com::RPC_C_IMP_LEVEL, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct RPC_SECURITY_QOS_V2_A { + pub Version: u32, + pub Capabilities: RPC_C_QOS_CAPABILITIES, + pub IdentityTracking: RPC_C_QOS_IDENTITY, + pub ImpersonationType: super::Com::RPC_C_IMP_LEVEL, + pub AdditionalSecurityInfoType: RPC_C_AUTHN_INFO_TYPE, + pub u: RPC_SECURITY_QOS_V2_A_0, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V2_A {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V2_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union RPC_SECURITY_QOS_V2_A_0 { + pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V2_A_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V2_A_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct RPC_SECURITY_QOS_V2_W { + pub Version: u32, + pub Capabilities: RPC_C_QOS_CAPABILITIES, + pub IdentityTracking: RPC_C_QOS_IDENTITY, + pub ImpersonationType: super::Com::RPC_C_IMP_LEVEL, + pub AdditionalSecurityInfoType: RPC_C_AUTHN_INFO_TYPE, + pub u: RPC_SECURITY_QOS_V2_W_0, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V2_W {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V2_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union RPC_SECURITY_QOS_V2_W_0 { + pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V2_W_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V2_W_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct RPC_SECURITY_QOS_V3_A { + pub Version: u32, + pub Capabilities: RPC_C_QOS_CAPABILITIES, + pub IdentityTracking: RPC_C_QOS_IDENTITY, + pub ImpersonationType: super::Com::RPC_C_IMP_LEVEL, + pub AdditionalSecurityInfoType: RPC_C_AUTHN_INFO_TYPE, + pub u: RPC_SECURITY_QOS_V3_A_0, + pub Sid: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V3_A {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V3_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union RPC_SECURITY_QOS_V3_A_0 { + pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V3_A_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V3_A_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct RPC_SECURITY_QOS_V3_W { + pub Version: u32, + pub Capabilities: RPC_C_QOS_CAPABILITIES, + pub IdentityTracking: RPC_C_QOS_IDENTITY, + pub ImpersonationType: super::Com::RPC_C_IMP_LEVEL, + pub AdditionalSecurityInfoType: RPC_C_AUTHN_INFO_TYPE, + pub u: RPC_SECURITY_QOS_V3_W_0, + pub Sid: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V3_W {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V3_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union RPC_SECURITY_QOS_V3_W_0 { + pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V3_W_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V3_W_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct RPC_SECURITY_QOS_V4_A { + pub Version: u32, + pub Capabilities: RPC_C_QOS_CAPABILITIES, + pub IdentityTracking: RPC_C_QOS_IDENTITY, + pub ImpersonationType: super::Com::RPC_C_IMP_LEVEL, + pub AdditionalSecurityInfoType: RPC_C_AUTHN_INFO_TYPE, + pub u: RPC_SECURITY_QOS_V4_A_0, + pub Sid: *mut ::core::ffi::c_void, + pub EffectiveOnly: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V4_A {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V4_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union RPC_SECURITY_QOS_V4_A_0 { + pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V4_A_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V4_A_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct RPC_SECURITY_QOS_V4_W { + pub Version: u32, + pub Capabilities: RPC_C_QOS_CAPABILITIES, + pub IdentityTracking: RPC_C_QOS_IDENTITY, + pub ImpersonationType: super::Com::RPC_C_IMP_LEVEL, + pub AdditionalSecurityInfoType: RPC_C_AUTHN_INFO_TYPE, + pub u: RPC_SECURITY_QOS_V4_W_0, + pub Sid: *mut ::core::ffi::c_void, + pub EffectiveOnly: u32, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V4_W {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V4_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union RPC_SECURITY_QOS_V4_W_0 { + pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V4_W_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V4_W_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct RPC_SECURITY_QOS_V5_A { + pub Version: u32, + pub Capabilities: RPC_C_QOS_CAPABILITIES, + pub IdentityTracking: RPC_C_QOS_IDENTITY, + pub ImpersonationType: super::Com::RPC_C_IMP_LEVEL, + pub AdditionalSecurityInfoType: RPC_C_AUTHN_INFO_TYPE, + pub u: RPC_SECURITY_QOS_V5_A_0, + pub Sid: *mut ::core::ffi::c_void, + pub EffectiveOnly: u32, + pub ServerSecurityDescriptor: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V5_A {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V5_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union RPC_SECURITY_QOS_V5_A_0 { + pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V5_A_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V5_A_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct RPC_SECURITY_QOS_V5_W { + pub Version: u32, + pub Capabilities: RPC_C_QOS_CAPABILITIES, + pub IdentityTracking: RPC_C_QOS_IDENTITY, + pub ImpersonationType: super::Com::RPC_C_IMP_LEVEL, + pub AdditionalSecurityInfoType: RPC_C_AUTHN_INFO_TYPE, + pub u: RPC_SECURITY_QOS_V5_W_0, + pub Sid: *mut ::core::ffi::c_void, + pub EffectiveOnly: u32, + pub ServerSecurityDescriptor: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V5_W {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V5_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union RPC_SECURITY_QOS_V5_W_0 { + pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for RPC_SECURITY_QOS_V5_W_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for RPC_SECURITY_QOS_V5_W_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_SEC_CONTEXT_KEY_INFO { + pub EncryptAlgorithm: u32, + pub KeySize: u32, + pub SignatureAlgorithm: u32, +} +impl ::core::marker::Copy for RPC_SEC_CONTEXT_KEY_INFO {} +impl ::core::clone::Clone for RPC_SEC_CONTEXT_KEY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_SERVER_INTERFACE { + pub Length: u32, + pub InterfaceId: RPC_SYNTAX_IDENTIFIER, + pub TransferSyntax: RPC_SYNTAX_IDENTIFIER, + pub DispatchTable: *mut RPC_DISPATCH_TABLE, + pub RpcProtseqEndpointCount: u32, + pub RpcProtseqEndpoint: *mut RPC_PROTSEQ_ENDPOINT, + pub DefaultManagerEpv: *mut ::core::ffi::c_void, + pub InterpreterInfo: *const ::core::ffi::c_void, + pub Flags: u32, +} +impl ::core::marker::Copy for RPC_SERVER_INTERFACE {} +impl ::core::clone::Clone for RPC_SERVER_INTERFACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_STATS_VECTOR { + pub Count: u32, + pub Stats: [u32; 1], +} +impl ::core::marker::Copy for RPC_STATS_VECTOR {} +impl ::core::clone::Clone for RPC_STATS_VECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_SYNTAX_IDENTIFIER { + pub SyntaxGUID: ::windows_sys::core::GUID, + pub SyntaxVersion: RPC_VERSION, +} +impl ::core::marker::Copy for RPC_SYNTAX_IDENTIFIER {} +impl ::core::clone::Clone for RPC_SYNTAX_IDENTIFIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_TRANSFER_SYNTAX { + pub Uuid: ::windows_sys::core::GUID, + pub VersMajor: u16, + pub VersMinor: u16, +} +impl ::core::marker::Copy for RPC_TRANSFER_SYNTAX {} +impl ::core::clone::Clone for RPC_TRANSFER_SYNTAX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RPC_VERSION { + pub MajorVersion: u16, + pub MinorVersion: u16, +} +impl ::core::marker::Copy for RPC_VERSION {} +impl ::core::clone::Clone for RPC_VERSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCONTEXT_QUEUE { + pub NumberOfObjects: u32, + pub ArrayOfObjects: *mut *mut NDR_SCONTEXT, +} +impl ::core::marker::Copy for SCONTEXT_QUEUE {} +impl ::core::clone::Clone for SCONTEXT_QUEUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_WINNT_AUTH_IDENTITY_A { + pub User: *mut u8, + pub UserLength: u32, + pub Domain: *mut u8, + pub DomainLength: u32, + pub Password: *mut u8, + pub PasswordLength: u32, + pub Flags: SEC_WINNT_AUTH_IDENTITY, +} +impl ::core::marker::Copy for SEC_WINNT_AUTH_IDENTITY_A {} +impl ::core::clone::Clone for SEC_WINNT_AUTH_IDENTITY_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEC_WINNT_AUTH_IDENTITY_W { + pub User: *mut u16, + pub UserLength: u32, + pub Domain: *mut u16, + pub DomainLength: u32, + pub Password: *mut u16, + pub PasswordLength: u32, + pub Flags: SEC_WINNT_AUTH_IDENTITY, +} +impl ::core::marker::Copy for SEC_WINNT_AUTH_IDENTITY_W {} +impl ::core::clone::Clone for SEC_WINNT_AUTH_IDENTITY_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct USER_MARSHAL_CB { + pub Flags: u32, + pub pStubMsg: *mut MIDL_STUB_MESSAGE, + pub pReserve: *mut u8, + pub Signature: u32, + pub CBType: USER_MARSHAL_CB_TYPE, + pub pFormat: *mut u8, + pub pTypeFormat: *mut u8, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for USER_MARSHAL_CB {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for USER_MARSHAL_CB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USER_MARSHAL_ROUTINE_QUADRUPLE { + pub pfnBufferSize: USER_MARSHAL_SIZING_ROUTINE, + pub pfnMarshall: USER_MARSHAL_MARSHALLING_ROUTINE, + pub pfnUnmarshall: USER_MARSHAL_UNMARSHALLING_ROUTINE, + pub pfnFree: USER_MARSHAL_FREEING_ROUTINE, +} +impl ::core::marker::Copy for USER_MARSHAL_ROUTINE_QUADRUPLE {} +impl ::core::clone::Clone for USER_MARSHAL_ROUTINE_QUADRUPLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UUID_VECTOR { + pub Count: u32, + pub Uuid: [*mut ::windows_sys::core::GUID; 1], +} +impl ::core::marker::Copy for UUID_VECTOR {} +impl ::core::clone::Clone for UUID_VECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct XMIT_ROUTINE_QUINTUPLE { + pub pfnTranslateToXmit: XMIT_HELPER_ROUTINE, + pub pfnTranslateFromXmit: XMIT_HELPER_ROUTINE, + pub pfnFreeXmit: XMIT_HELPER_ROUTINE, + pub pfnFreeInst: XMIT_HELPER_ROUTINE, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for XMIT_ROUTINE_QUINTUPLE {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for XMIT_ROUTINE_QUINTUPLE { + fn clone(&self) -> Self { + *self + } +} +pub type _NDR_PROC_CONTEXT = isize; +pub type CS_TAG_GETTING_ROUTINE = ::core::option::Option ()>; +pub type CS_TYPE_FROM_NETCS_ROUTINE = ::core::option::Option ()>; +pub type CS_TYPE_LOCAL_SIZE_ROUTINE = ::core::option::Option ()>; +pub type CS_TYPE_NET_SIZE_ROUTINE = ::core::option::Option ()>; +pub type CS_TYPE_TO_NETCS_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub type EXPR_EVAL = ::core::option::Option ()>; +pub type GENERIC_BINDING_ROUTINE = ::core::option::Option *mut ::core::ffi::c_void>; +pub type GENERIC_UNBIND_ROUTINE = ::core::option::Option ()>; +pub type I_RpcFreeCalloutStateFn = ::core::option::Option ()>; +pub type I_RpcPerformCalloutFn = ::core::option::Option RPC_STATUS>; +pub type I_RpcProxyFilterIfFn = ::core::option::Option RPC_STATUS>; +pub type I_RpcProxyGetClientAddressFn = ::core::option::Option RPC_STATUS>; +pub type I_RpcProxyGetClientSessionAndResourceUUID = ::core::option::Option RPC_STATUS>; +pub type I_RpcProxyGetConnectionTimeoutFn = ::core::option::Option RPC_STATUS>; +pub type I_RpcProxyIsValidMachineFn = ::core::option::Option RPC_STATUS>; +pub type I_RpcProxyUpdatePerfCounterBackendServerFn = ::core::option::Option ()>; +pub type I_RpcProxyUpdatePerfCounterFn = ::core::option::Option ()>; +pub type MIDL_ES_ALLOC = ::core::option::Option ()>; +pub type MIDL_ES_READ = ::core::option::Option ()>; +pub type MIDL_ES_WRITE = ::core::option::Option ()>; +pub type NDR_NOTIFY2_ROUTINE = ::core::option::Option ()>; +pub type NDR_NOTIFY_ROUTINE = ::core::option::Option ()>; +pub type NDR_RUNDOWN = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] +pub type PFN_RPCNOTIFICATION_ROUTINE = ::core::option::Option ()>; +pub type PFN_RPC_ALLOCATE = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PFN_RPC_FREE = ::core::option::Option ()>; +pub type PRPC_RUNDOWN = ::core::option::Option ()>; +pub type RPCLT_PDU_FILTER_FUNC = ::core::option::Option ()>; +pub type RPC_ADDRESS_CHANGE_FN = ::core::option::Option ()>; +pub type RPC_AUTH_KEY_RETRIEVAL_FN = ::core::option::Option ()>; +pub type RPC_BLOCKING_FN = ::core::option::Option RPC_STATUS>; +pub type RPC_CLIENT_ALLOC = ::core::option::Option *mut ::core::ffi::c_void>; +pub type RPC_CLIENT_FREE = ::core::option::Option ()>; +pub type RPC_DISPATCH_FUNCTION = ::core::option::Option ()>; +pub type RPC_FORWARD_FUNCTION = ::core::option::Option RPC_STATUS>; +pub type RPC_HTTP_PROXY_FREE_STRING = ::core::option::Option ()>; +pub type RPC_IF_CALLBACK_FN = ::core::option::Option RPC_STATUS>; +pub type RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN = ::core::option::Option ()>; +pub type RPC_MGMT_AUTHORIZATION_FN = ::core::option::Option i32>; +pub type RPC_NEW_HTTP_PROXY_CHANNEL = ::core::option::Option RPC_STATUS>; +pub type RPC_OBJECT_INQ_FN = ::core::option::Option ()>; +pub type RPC_SECURITY_CALLBACK_FN = ::core::option::Option ()>; +pub type RPC_SETFILTER_FUNC = ::core::option::Option ()>; +pub type SERVER_ROUTINE = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub type STUB_THUNK = ::core::option::Option ()>; +pub type USER_MARSHAL_FREEING_ROUTINE = ::core::option::Option ()>; +pub type USER_MARSHAL_MARSHALLING_ROUTINE = ::core::option::Option *mut u8>; +pub type USER_MARSHAL_SIZING_ROUTINE = ::core::option::Option u32>; +pub type USER_MARSHAL_UNMARSHALLING_ROUTINE = ::core::option::Option *mut u8>; +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub type XMIT_HELPER_ROUTINE = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Search/Common/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Search/Common/mod.rs new file mode 100644 index 000000000..8e9f04d91 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Search/Common/mod.rs @@ -0,0 +1,21 @@ +pub const COP_APPLICATION_SPECIFIC: CONDITION_OPERATION = 14i32; +pub const COP_DOSWILDCARDS: CONDITION_OPERATION = 11i32; +pub const COP_EQUAL: CONDITION_OPERATION = 1i32; +pub const COP_GREATERTHAN: CONDITION_OPERATION = 4i32; +pub const COP_GREATERTHANOREQUAL: CONDITION_OPERATION = 6i32; +pub const COP_IMPLICIT: CONDITION_OPERATION = 0i32; +pub const COP_LESSTHAN: CONDITION_OPERATION = 3i32; +pub const COP_LESSTHANOREQUAL: CONDITION_OPERATION = 5i32; +pub const COP_NOTEQUAL: CONDITION_OPERATION = 2i32; +pub const COP_VALUE_CONTAINS: CONDITION_OPERATION = 9i32; +pub const COP_VALUE_ENDSWITH: CONDITION_OPERATION = 8i32; +pub const COP_VALUE_NOTCONTAINS: CONDITION_OPERATION = 10i32; +pub const COP_VALUE_STARTSWITH: CONDITION_OPERATION = 7i32; +pub const COP_WORD_EQUAL: CONDITION_OPERATION = 12i32; +pub const COP_WORD_STARTSWITH: CONDITION_OPERATION = 13i32; +pub const CT_AND_CONDITION: CONDITION_TYPE = 0i32; +pub const CT_LEAF_CONDITION: CONDITION_TYPE = 3i32; +pub const CT_NOT_CONDITION: CONDITION_TYPE = 2i32; +pub const CT_OR_CONDITION: CONDITION_TYPE = 1i32; +pub type CONDITION_OPERATION = i32; +pub type CONDITION_TYPE = i32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Search/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Search/mod.rs new file mode 100644 index 000000000..f37345452 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Search/mod.rs @@ -0,0 +1,7074 @@ +#[cfg(feature = "Win32_System_Search_Common")] +#[doc = "Required features: `\"Win32_System_Search_Common\"`"] +pub mod Common; +::windows_targets::link!("odbc32.dll" "system" fn ODBCGetTryWaitValue() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("odbc32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ODBCSetTryWaitValue(dwvalue : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("odbc32.dll" "system" fn SQLAllocConnect(environmenthandle : *mut ::core::ffi::c_void, connectionhandle : *mut *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLAllocEnv(environmenthandle : *mut *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLAllocHandle(handletype : i16, inputhandle : *mut ::core::ffi::c_void, outputhandle : *mut *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLAllocHandleStd(fhandletype : i16, hinput : *mut ::core::ffi::c_void, phoutput : *mut *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLAllocStmt(connectionhandle : *mut ::core::ffi::c_void, statementhandle : *mut *mut ::core::ffi::c_void) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLBindCol(statementhandle : *mut ::core::ffi::c_void, columnnumber : u16, targettype : i16, targetvalue : *mut ::core::ffi::c_void, bufferlength : i64, strlen_or_ind : *mut i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLBindCol(statementhandle : *mut ::core::ffi::c_void, columnnumber : u16, targettype : i16, targetvalue : *mut ::core::ffi::c_void, bufferlength : i32, strlen_or_ind : *mut i32) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLBindParam(statementhandle : *mut ::core::ffi::c_void, parameternumber : u16, valuetype : i16, parametertype : i16, lengthprecision : u64, parameterscale : i16, parametervalue : *mut ::core::ffi::c_void, strlen_or_ind : *mut i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLBindParam(statementhandle : *mut ::core::ffi::c_void, parameternumber : u16, valuetype : i16, parametertype : i16, lengthprecision : u32, parameterscale : i16, parametervalue : *mut ::core::ffi::c_void, strlen_or_ind : *mut i32) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLBindParameter(hstmt : *mut ::core::ffi::c_void, ipar : u16, fparamtype : i16, fctype : i16, fsqltype : i16, cbcoldef : u64, ibscale : i16, rgbvalue : *mut ::core::ffi::c_void, cbvaluemax : i64, pcbvalue : *mut i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLBindParameter(hstmt : *mut ::core::ffi::c_void, ipar : u16, fparamtype : i16, fctype : i16, fsqltype : i16, cbcoldef : u32, ibscale : i16, rgbvalue : *mut ::core::ffi::c_void, cbvaluemax : i32, pcbvalue : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLBrowseConnect(hdbc : *mut ::core::ffi::c_void, szconnstrin : *const u8, cchconnstrin : i16, szconnstrout : *mut u8, cchconnstroutmax : i16, pcchconnstrout : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLBrowseConnectA(hdbc : *mut ::core::ffi::c_void, szconnstrin : *const u8, cbconnstrin : i16, szconnstrout : *mut u8, cbconnstroutmax : i16, pcbconnstrout : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLBrowseConnectW(hdbc : *mut ::core::ffi::c_void, szconnstrin : *const u16, cchconnstrin : i16, szconnstrout : *mut u16, cchconnstroutmax : i16, pcchconnstrout : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLBulkOperations(statementhandle : *mut ::core::ffi::c_void, operation : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLCancel(statementhandle : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLCancelHandle(handletype : i16, inputhandle : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLCloseCursor(statementhandle : *mut ::core::ffi::c_void) -> i16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("odbcbcp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SQLCloseEnumServers(henumhandle : super::super::Foundation:: HANDLE) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLColAttribute(statementhandle : *mut ::core::ffi::c_void, columnnumber : u16, fieldidentifier : u16, characterattribute : *mut ::core::ffi::c_void, bufferlength : i16, stringlength : *mut i16, numericattribute : *mut i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLColAttribute(statementhandle : *mut ::core::ffi::c_void, columnnumber : u16, fieldidentifier : u16, characterattribute : *mut ::core::ffi::c_void, bufferlength : i16, stringlength : *mut i16, numericattribute : *mut ::core::ffi::c_void) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLColAttributeA(hstmt : *mut ::core::ffi::c_void, icol : i16, ifield : i16, pcharattr : *mut ::core::ffi::c_void, cbcharattrmax : i16, pcbcharattr : *mut i16, pnumattr : *mut i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLColAttributeA(hstmt : *mut ::core::ffi::c_void, icol : i16, ifield : i16, pcharattr : *mut ::core::ffi::c_void, cbcharattrmax : i16, pcbcharattr : *mut i16, pnumattr : *mut ::core::ffi::c_void) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLColAttributeW(hstmt : *mut ::core::ffi::c_void, icol : u16, ifield : u16, pcharattr : *mut ::core::ffi::c_void, cbdescmax : i16, pcbcharattr : *mut i16, pnumattr : *mut i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLColAttributeW(hstmt : *mut ::core::ffi::c_void, icol : u16, ifield : u16, pcharattr : *mut ::core::ffi::c_void, cbdescmax : i16, pcbcharattr : *mut i16, pnumattr : *mut ::core::ffi::c_void) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLColAttributes(hstmt : *mut ::core::ffi::c_void, icol : u16, fdesctype : u16, rgbdesc : *mut ::core::ffi::c_void, cbdescmax : i16, pcbdesc : *mut i16, pfdesc : *mut i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLColAttributes(hstmt : *mut ::core::ffi::c_void, icol : u16, fdesctype : u16, rgbdesc : *mut ::core::ffi::c_void, cbdescmax : i16, pcbdesc : *mut i16, pfdesc : *mut i32) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLColAttributesA(hstmt : *mut ::core::ffi::c_void, icol : u16, fdesctype : u16, rgbdesc : *mut ::core::ffi::c_void, cbdescmax : i16, pcbdesc : *mut i16, pfdesc : *mut i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLColAttributesA(hstmt : *mut ::core::ffi::c_void, icol : u16, fdesctype : u16, rgbdesc : *mut ::core::ffi::c_void, cbdescmax : i16, pcbdesc : *mut i16, pfdesc : *mut i32) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLColAttributesW(hstmt : *mut ::core::ffi::c_void, icol : u16, fdesctype : u16, rgbdesc : *mut ::core::ffi::c_void, cbdescmax : i16, pcbdesc : *mut i16, pfdesc : *mut i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLColAttributesW(hstmt : *mut ::core::ffi::c_void, icol : u16, fdesctype : u16, rgbdesc : *mut ::core::ffi::c_void, cbdescmax : i16, pcbdesc : *mut i16, pfdesc : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLColumnPrivileges(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u8, cchcatalogname : i16, szschemaname : *const u8, cchschemaname : i16, sztablename : *const u8, cchtablename : i16, szcolumnname : *const u8, cchcolumnname : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLColumnPrivilegesA(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u8, cbcatalogname : i16, szschemaname : *const u8, cbschemaname : i16, sztablename : *const u8, cbtablename : i16, szcolumnname : *const u8, cbcolumnname : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLColumnPrivilegesW(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u16, cchcatalogname : i16, szschemaname : *const u16, cchschemaname : i16, sztablename : *const u16, cchtablename : i16, szcolumnname : *const u16, cchcolumnname : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLColumns(statementhandle : *mut ::core::ffi::c_void, catalogname : *const u8, namelength1 : i16, schemaname : *const u8, namelength2 : i16, tablename : *const u8, namelength3 : i16, columnname : *const u8, namelength4 : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLColumnsA(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u8, cbcatalogname : i16, szschemaname : *const u8, cbschemaname : i16, sztablename : *const u8, cbtablename : i16, szcolumnname : *const u8, cbcolumnname : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLColumnsW(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u16, cchcatalogname : i16, szschemaname : *const u16, cchschemaname : i16, sztablename : *const u16, cchtablename : i16, szcolumnname : *const u16, cchcolumnname : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLCompleteAsync(handletype : i16, handle : *mut ::core::ffi::c_void, asyncretcodeptr : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLConnect(connectionhandle : *mut ::core::ffi::c_void, servername : *const u8, namelength1 : i16, username : *const u8, namelength2 : i16, authentication : *const u8, namelength3 : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLConnectA(hdbc : *mut ::core::ffi::c_void, szdsn : *const u8, cbdsn : i16, szuid : *const u8, cbuid : i16, szauthstr : *const u8, cbauthstr : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLConnectW(hdbc : *mut ::core::ffi::c_void, szdsn : *const u16, cchdsn : i16, szuid : *const u16, cchuid : i16, szauthstr : *const u16, cchauthstr : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLCopyDesc(sourcedeschandle : *mut ::core::ffi::c_void, targetdeschandle : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLDataSources(environmenthandle : *mut ::core::ffi::c_void, direction : u16, servername : *mut u8, bufferlength1 : i16, namelength1ptr : *mut i16, description : *mut u8, bufferlength2 : i16, namelength2ptr : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLDataSourcesA(henv : *mut ::core::ffi::c_void, fdirection : u16, szdsn : *mut u8, cbdsnmax : i16, pcbdsn : *mut i16, szdescription : *mut u8, cbdescriptionmax : i16, pcbdescription : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLDataSourcesW(henv : *mut ::core::ffi::c_void, fdirection : u16, szdsn : *mut u16, cchdsnmax : i16, pcchdsn : *mut i16, wszdescription : *mut u16, cchdescriptionmax : i16, pcchdescription : *mut i16) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLDescribeCol(statementhandle : *mut ::core::ffi::c_void, columnnumber : u16, columnname : *mut u8, bufferlength : i16, namelength : *mut i16, datatype : *mut i16, columnsize : *mut u64, decimaldigits : *mut i16, nullable : *mut i16) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLDescribeCol(statementhandle : *mut ::core::ffi::c_void, columnnumber : u16, columnname : *mut u8, bufferlength : i16, namelength : *mut i16, datatype : *mut i16, columnsize : *mut u32, decimaldigits : *mut i16, nullable : *mut i16) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLDescribeColA(hstmt : *mut ::core::ffi::c_void, icol : u16, szcolname : *mut u8, cbcolnamemax : i16, pcbcolname : *mut i16, pfsqltype : *mut i16, pcbcoldef : *mut u64, pibscale : *mut i16, pfnullable : *mut i16) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLDescribeColA(hstmt : *mut ::core::ffi::c_void, icol : u16, szcolname : *mut u8, cbcolnamemax : i16, pcbcolname : *mut i16, pfsqltype : *mut i16, pcbcoldef : *mut u32, pibscale : *mut i16, pfnullable : *mut i16) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLDescribeColW(hstmt : *mut ::core::ffi::c_void, icol : u16, szcolname : *mut u16, cchcolnamemax : i16, pcchcolname : *mut i16, pfsqltype : *mut i16, pcbcoldef : *mut u64, pibscale : *mut i16, pfnullable : *mut i16) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLDescribeColW(hstmt : *mut ::core::ffi::c_void, icol : u16, szcolname : *mut u16, cchcolnamemax : i16, pcchcolname : *mut i16, pfsqltype : *mut i16, pcbcoldef : *mut u32, pibscale : *mut i16, pfnullable : *mut i16) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLDescribeParam(hstmt : *mut ::core::ffi::c_void, ipar : u16, pfsqltype : *mut i16, pcbparamdef : *mut u64, pibscale : *mut i16, pfnullable : *mut i16) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLDescribeParam(hstmt : *mut ::core::ffi::c_void, ipar : u16, pfsqltype : *mut i16, pcbparamdef : *mut u32, pibscale : *mut i16, pfnullable : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLDisconnect(connectionhandle : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLDriverConnect(hdbc : *mut ::core::ffi::c_void, hwnd : isize, szconnstrin : *const u8, cchconnstrin : i16, szconnstrout : *mut u8, cchconnstroutmax : i16, pcchconnstrout : *mut i16, fdrivercompletion : u16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLDriverConnectA(hdbc : *mut ::core::ffi::c_void, hwnd : isize, szconnstrin : *const u8, cbconnstrin : i16, szconnstrout : *mut u8, cbconnstroutmax : i16, pcbconnstrout : *mut i16, fdrivercompletion : u16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLDriverConnectW(hdbc : *mut ::core::ffi::c_void, hwnd : isize, szconnstrin : *const u16, cchconnstrin : i16, szconnstrout : *mut u16, cchconnstroutmax : i16, pcchconnstrout : *mut i16, fdrivercompletion : u16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLDrivers(henv : *mut ::core::ffi::c_void, fdirection : u16, szdriverdesc : *mut u8, cchdriverdescmax : i16, pcchdriverdesc : *mut i16, szdriverattributes : *mut u8, cchdrvrattrmax : i16, pcchdrvrattr : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLDriversA(henv : *mut ::core::ffi::c_void, fdirection : u16, szdriverdesc : *mut u8, cbdriverdescmax : i16, pcbdriverdesc : *mut i16, szdriverattributes : *mut u8, cbdrvrattrmax : i16, pcbdrvrattr : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLDriversW(henv : *mut ::core::ffi::c_void, fdirection : u16, szdriverdesc : *mut u16, cchdriverdescmax : i16, pcchdriverdesc : *mut i16, szdriverattributes : *mut u16, cchdrvrattrmax : i16, pcchdrvrattr : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLEndTran(handletype : i16, handle : *mut ::core::ffi::c_void, completiontype : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLError(environmenthandle : *mut ::core::ffi::c_void, connectionhandle : *mut ::core::ffi::c_void, statementhandle : *mut ::core::ffi::c_void, sqlstate : *mut u8, nativeerror : *mut i32, messagetext : *mut u8, bufferlength : i16, textlength : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLErrorA(henv : *mut ::core::ffi::c_void, hdbc : *mut ::core::ffi::c_void, hstmt : *mut ::core::ffi::c_void, szsqlstate : *mut u8, pfnativeerror : *mut i32, szerrormsg : *mut u8, cberrormsgmax : i16, pcberrormsg : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLErrorW(henv : *mut ::core::ffi::c_void, hdbc : *mut ::core::ffi::c_void, hstmt : *mut ::core::ffi::c_void, wszsqlstate : *mut u16, pfnativeerror : *mut i32, wszerrormsg : *mut u16, ccherrormsgmax : i16, pccherrormsg : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLExecDirect(statementhandle : *mut ::core::ffi::c_void, statementtext : *const u8, textlength : i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLExecDirectA(hstmt : *mut ::core::ffi::c_void, szsqlstr : *const u8, cbsqlstr : i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLExecDirectW(hstmt : *mut ::core::ffi::c_void, szsqlstr : *const u16, textlength : i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLExecute(statementhandle : *mut ::core::ffi::c_void) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLExtendedFetch(hstmt : *mut ::core::ffi::c_void, ffetchtype : u16, irow : i64, pcrow : *mut u64, rgfrowstatus : *mut u16) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLExtendedFetch(hstmt : *mut ::core::ffi::c_void, ffetchtype : u16, irow : i32, pcrow : *mut u32, rgfrowstatus : *mut u16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLFetch(statementhandle : *mut ::core::ffi::c_void) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLFetchScroll(statementhandle : *mut ::core::ffi::c_void, fetchorientation : i16, fetchoffset : i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLFetchScroll(statementhandle : *mut ::core::ffi::c_void, fetchorientation : i16, fetchoffset : i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLForeignKeys(hstmt : *mut ::core::ffi::c_void, szpkcatalogname : *const u8, cchpkcatalogname : i16, szpkschemaname : *const u8, cchpkschemaname : i16, szpktablename : *const u8, cchpktablename : i16, szfkcatalogname : *const u8, cchfkcatalogname : i16, szfkschemaname : *const u8, cchfkschemaname : i16, szfktablename : *const u8, cchfktablename : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLForeignKeysA(hstmt : *mut ::core::ffi::c_void, szpkcatalogname : *const u8, cbpkcatalogname : i16, szpkschemaname : *const u8, cbpkschemaname : i16, szpktablename : *const u8, cbpktablename : i16, szfkcatalogname : *const u8, cbfkcatalogname : i16, szfkschemaname : *const u8, cbfkschemaname : i16, szfktablename : *const u8, cbfktablename : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLForeignKeysW(hstmt : *mut ::core::ffi::c_void, szpkcatalogname : *const u16, cchpkcatalogname : i16, szpkschemaname : *const u16, cchpkschemaname : i16, szpktablename : *const u16, cchpktablename : i16, szfkcatalogname : *const u16, cchfkcatalogname : i16, szfkschemaname : *const u16, cchfkschemaname : i16, szfktablename : *const u16, cchfktablename : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLFreeConnect(connectionhandle : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLFreeEnv(environmenthandle : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLFreeHandle(handletype : i16, handle : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLFreeStmt(statementhandle : *mut ::core::ffi::c_void, option : u16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetConnectAttr(connectionhandle : *mut ::core::ffi::c_void, attribute : i32, value : *mut ::core::ffi::c_void, bufferlength : i32, stringlengthptr : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetConnectAttrA(hdbc : *mut ::core::ffi::c_void, fattribute : i32, rgbvalue : *mut ::core::ffi::c_void, cbvaluemax : i32, pcbvalue : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetConnectAttrW(hdbc : *mut ::core::ffi::c_void, fattribute : i32, rgbvalue : *mut ::core::ffi::c_void, cbvaluemax : i32, pcbvalue : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetConnectOption(connectionhandle : *mut ::core::ffi::c_void, option : u16, value : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetConnectOptionA(hdbc : *mut ::core::ffi::c_void, foption : u16, pvparam : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetConnectOptionW(hdbc : *mut ::core::ffi::c_void, foption : u16, pvparam : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetCursorName(statementhandle : *mut ::core::ffi::c_void, cursorname : *mut u8, bufferlength : i16, namelengthptr : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetCursorNameA(hstmt : *mut ::core::ffi::c_void, szcursor : *mut u8, cbcursormax : i16, pcbcursor : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetCursorNameW(hstmt : *mut ::core::ffi::c_void, szcursor : *mut u16, cchcursormax : i16, pcchcursor : *mut i16) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLGetData(statementhandle : *mut ::core::ffi::c_void, columnnumber : u16, targettype : i16, targetvalue : *mut ::core::ffi::c_void, bufferlength : i64, strlen_or_indptr : *mut i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLGetData(statementhandle : *mut ::core::ffi::c_void, columnnumber : u16, targettype : i16, targetvalue : *mut ::core::ffi::c_void, bufferlength : i32, strlen_or_indptr : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDescField(descriptorhandle : *mut ::core::ffi::c_void, recnumber : i16, fieldidentifier : i16, value : *mut ::core::ffi::c_void, bufferlength : i32, stringlength : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDescFieldA(hdesc : *mut ::core::ffi::c_void, irecord : i16, ifield : i16, rgbvalue : *mut ::core::ffi::c_void, cbbufferlength : i32, stringlength : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDescFieldW(hdesc : *mut ::core::ffi::c_void, irecord : i16, ifield : i16, rgbvalue : *mut ::core::ffi::c_void, cbbufferlength : i32, stringlength : *mut i32) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDescRec(descriptorhandle : *mut ::core::ffi::c_void, recnumber : i16, name : *mut u8, bufferlength : i16, stringlengthptr : *mut i16, typeptr : *mut i16, subtypeptr : *mut i16, lengthptr : *mut i64, precisionptr : *mut i16, scaleptr : *mut i16, nullableptr : *mut i16) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDescRec(descriptorhandle : *mut ::core::ffi::c_void, recnumber : i16, name : *mut u8, bufferlength : i16, stringlengthptr : *mut i16, typeptr : *mut i16, subtypeptr : *mut i16, lengthptr : *mut i32, precisionptr : *mut i16, scaleptr : *mut i16, nullableptr : *mut i16) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDescRecA(hdesc : *mut ::core::ffi::c_void, irecord : i16, szname : *mut u8, cbnamemax : i16, pcbname : *mut i16, pftype : *mut i16, pfsubtype : *mut i16, plength : *mut i64, pprecision : *mut i16, pscale : *mut i16, pnullable : *mut i16) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDescRecA(hdesc : *mut ::core::ffi::c_void, irecord : i16, szname : *mut u8, cbnamemax : i16, pcbname : *mut i16, pftype : *mut i16, pfsubtype : *mut i16, plength : *mut i32, pprecision : *mut i16, pscale : *mut i16, pnullable : *mut i16) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDescRecW(hdesc : *mut ::core::ffi::c_void, irecord : i16, szname : *mut u16, cchnamemax : i16, pcchname : *mut i16, pftype : *mut i16, pfsubtype : *mut i16, plength : *mut i64, pprecision : *mut i16, pscale : *mut i16, pnullable : *mut i16) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDescRecW(hdesc : *mut ::core::ffi::c_void, irecord : i16, szname : *mut u16, cchnamemax : i16, pcchname : *mut i16, pftype : *mut i16, pfsubtype : *mut i16, plength : *mut i32, pprecision : *mut i16, pscale : *mut i16, pnullable : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDiagField(handletype : i16, handle : *mut ::core::ffi::c_void, recnumber : i16, diagidentifier : i16, diaginfo : *mut ::core::ffi::c_void, bufferlength : i16, stringlength : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDiagFieldA(fhandletype : i16, handle : *mut ::core::ffi::c_void, irecord : i16, fdiagfield : i16, rgbdiaginfo : *mut ::core::ffi::c_void, cbdiaginfomax : i16, pcbdiaginfo : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDiagFieldW(fhandletype : i16, handle : *mut ::core::ffi::c_void, irecord : i16, fdiagfield : i16, rgbdiaginfo : *mut ::core::ffi::c_void, cbbufferlength : i16, pcbstringlength : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDiagRec(handletype : i16, handle : *mut ::core::ffi::c_void, recnumber : i16, sqlstate : *mut u8, nativeerror : *mut i32, messagetext : *mut u8, bufferlength : i16, textlength : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDiagRecA(fhandletype : i16, handle : *mut ::core::ffi::c_void, irecord : i16, szsqlstate : *mut u8, pfnativeerror : *mut i32, szerrormsg : *mut u8, cberrormsgmax : i16, pcberrormsg : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetDiagRecW(fhandletype : i16, handle : *mut ::core::ffi::c_void, irecord : i16, szsqlstate : *mut u16, pfnativeerror : *mut i32, szerrormsg : *mut u16, ccherrormsgmax : i16, pccherrormsg : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetEnvAttr(environmenthandle : *mut ::core::ffi::c_void, attribute : i32, value : *mut ::core::ffi::c_void, bufferlength : i32, stringlength : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetFunctions(connectionhandle : *mut ::core::ffi::c_void, functionid : u16, supported : *mut u16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetInfo(connectionhandle : *mut ::core::ffi::c_void, infotype : u16, infovalue : *mut ::core::ffi::c_void, bufferlength : i16, stringlengthptr : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetInfoA(hdbc : *mut ::core::ffi::c_void, finfotype : u16, rgbinfovalue : *mut ::core::ffi::c_void, cbinfovaluemax : i16, pcbinfovalue : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetInfoW(hdbc : *mut ::core::ffi::c_void, finfotype : u16, rgbinfovalue : *mut ::core::ffi::c_void, cbinfovaluemax : i16, pcbinfovalue : *mut i16) -> i16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("odbcbcp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SQLGetNextEnumeration(henumhandle : super::super::Foundation:: HANDLE, prgenumdata : *mut u8, pienumlength : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetStmtAttr(statementhandle : *mut ::core::ffi::c_void, attribute : i32, value : *mut ::core::ffi::c_void, bufferlength : i32, stringlength : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetStmtAttrA(hstmt : *mut ::core::ffi::c_void, fattribute : i32, rgbvalue : *mut ::core::ffi::c_void, cbvaluemax : i32, pcbvalue : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetStmtAttrW(hstmt : *mut ::core::ffi::c_void, fattribute : i32, rgbvalue : *mut ::core::ffi::c_void, cbvaluemax : i32, pcbvalue : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetStmtOption(statementhandle : *mut ::core::ffi::c_void, option : u16, value : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetTypeInfo(statementhandle : *mut ::core::ffi::c_void, datatype : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetTypeInfoA(statementhandle : *mut ::core::ffi::c_void, datatype : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLGetTypeInfoW(statementhandle : *mut ::core::ffi::c_void, datatype : i16) -> i16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("odbcbcp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SQLInitEnumServers(pwchservername : ::windows_sys::core::PCWSTR, pwchinstancename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("odbcbcp.dll" "system" fn SQLLinkedCatalogsA(param0 : *mut ::core::ffi::c_void, param1 : ::windows_sys::core::PCSTR, param2 : i16) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn SQLLinkedCatalogsW(param0 : *mut ::core::ffi::c_void, param1 : ::windows_sys::core::PCWSTR, param2 : i16) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn SQLLinkedServers(param0 : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLMoreResults(hstmt : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLNativeSql(hdbc : *mut ::core::ffi::c_void, szsqlstrin : *const u8, cchsqlstrin : i32, szsqlstr : *mut u8, cchsqlstrmax : i32, pcbsqlstr : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLNativeSqlA(hdbc : *mut ::core::ffi::c_void, szsqlstrin : *const u8, cbsqlstrin : i32, szsqlstr : *mut u8, cbsqlstrmax : i32, pcbsqlstr : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLNativeSqlW(hdbc : *mut ::core::ffi::c_void, szsqlstrin : *const u16, cchsqlstrin : i32, szsqlstr : *mut u16, cchsqlstrmax : i32, pcchsqlstr : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLNumParams(hstmt : *mut ::core::ffi::c_void, pcpar : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLNumResultCols(statementhandle : *mut ::core::ffi::c_void, columncount : *mut i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLParamData(statementhandle : *mut ::core::ffi::c_void, value : *mut *mut ::core::ffi::c_void) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLParamOptions(hstmt : *mut ::core::ffi::c_void, crow : u64, pirow : *mut u64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLParamOptions(hstmt : *mut ::core::ffi::c_void, crow : u32, pirow : *mut u32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLPrepare(statementhandle : *mut ::core::ffi::c_void, statementtext : *const u8, textlength : i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLPrepareA(hstmt : *mut ::core::ffi::c_void, szsqlstr : *const u8, cbsqlstr : i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLPrepareW(hstmt : *mut ::core::ffi::c_void, szsqlstr : *const u16, cchsqlstr : i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLPrimaryKeys(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u8, cchcatalogname : i16, szschemaname : *const u8, cchschemaname : i16, sztablename : *const u8, cchtablename : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLPrimaryKeysA(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u8, cbcatalogname : i16, szschemaname : *const u8, cbschemaname : i16, sztablename : *const u8, cbtablename : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLPrimaryKeysW(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u16, cchcatalogname : i16, szschemaname : *const u16, cchschemaname : i16, sztablename : *const u16, cchtablename : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLProcedureColumns(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u8, cchcatalogname : i16, szschemaname : *const u8, cchschemaname : i16, szprocname : *const u8, cchprocname : i16, szcolumnname : *const u8, cchcolumnname : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLProcedureColumnsA(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u8, cbcatalogname : i16, szschemaname : *const u8, cbschemaname : i16, szprocname : *const u8, cbprocname : i16, szcolumnname : *const u8, cbcolumnname : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLProcedureColumnsW(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u16, cchcatalogname : i16, szschemaname : *const u16, cchschemaname : i16, szprocname : *const u16, cchprocname : i16, szcolumnname : *const u16, cchcolumnname : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLProcedures(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u8, cchcatalogname : i16, szschemaname : *const u8, cchschemaname : i16, szprocname : *const u8, cchprocname : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLProceduresA(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u8, cbcatalogname : i16, szschemaname : *const u8, cbschemaname : i16, szprocname : *const u8, cbprocname : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLProceduresW(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u16, cchcatalogname : i16, szschemaname : *const u16, cchschemaname : i16, szprocname : *const u16, cchprocname : i16) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLPutData(statementhandle : *mut ::core::ffi::c_void, data : *const ::core::ffi::c_void, strlen_or_ind : i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLPutData(statementhandle : *mut ::core::ffi::c_void, data : *const ::core::ffi::c_void, strlen_or_ind : i32) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLRowCount(statementhandle : *const ::core::ffi::c_void, rowcount : *mut i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLRowCount(statementhandle : *const ::core::ffi::c_void, rowcount : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSetConnectAttr(connectionhandle : *mut ::core::ffi::c_void, attribute : i32, value : *const ::core::ffi::c_void, stringlength : i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSetConnectAttrA(hdbc : *mut ::core::ffi::c_void, fattribute : i32, rgbvalue : *const ::core::ffi::c_void, cbvalue : i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSetConnectAttrW(hdbc : *mut ::core::ffi::c_void, fattribute : i32, rgbvalue : *const ::core::ffi::c_void, cbvalue : i32) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetConnectOption(connectionhandle : *mut ::core::ffi::c_void, option : u16, value : u64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetConnectOption(connectionhandle : *mut ::core::ffi::c_void, option : u16, value : u32) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetConnectOptionA(hdbc : *mut ::core::ffi::c_void, foption : u16, vparam : u64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetConnectOptionA(hdbc : *mut ::core::ffi::c_void, foption : u16, vparam : u32) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetConnectOptionW(hdbc : *mut ::core::ffi::c_void, foption : u16, vparam : u64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetConnectOptionW(hdbc : *mut ::core::ffi::c_void, foption : u16, vparam : u32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSetCursorName(statementhandle : *mut ::core::ffi::c_void, cursorname : *const u8, namelength : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSetCursorNameA(hstmt : *mut ::core::ffi::c_void, szcursor : *const u8, cbcursor : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSetCursorNameW(hstmt : *mut ::core::ffi::c_void, szcursor : *const u16, cchcursor : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSetDescField(descriptorhandle : *mut ::core::ffi::c_void, recnumber : i16, fieldidentifier : i16, value : *const ::core::ffi::c_void, bufferlength : i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSetDescFieldW(descriptorhandle : *mut ::core::ffi::c_void, recnumber : i16, fieldidentifier : i16, value : *mut ::core::ffi::c_void, bufferlength : i32) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetDescRec(descriptorhandle : *mut ::core::ffi::c_void, recnumber : i16, r#type : i16, subtype : i16, length : i64, precision : i16, scale : i16, data : *mut ::core::ffi::c_void, stringlength : *mut i64, indicator : *mut i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetDescRec(descriptorhandle : *mut ::core::ffi::c_void, recnumber : i16, r#type : i16, subtype : i16, length : i32, precision : i16, scale : i16, data : *mut ::core::ffi::c_void, stringlength : *mut i32, indicator : *mut i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSetEnvAttr(environmenthandle : *mut ::core::ffi::c_void, attribute : i32, value : *const ::core::ffi::c_void, stringlength : i32) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetParam(statementhandle : *mut ::core::ffi::c_void, parameternumber : u16, valuetype : i16, parametertype : i16, lengthprecision : u64, parameterscale : i16, parametervalue : *const ::core::ffi::c_void, strlen_or_ind : *mut i64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetParam(statementhandle : *mut ::core::ffi::c_void, parameternumber : u16, valuetype : i16, parametertype : i16, lengthprecision : u32, parameterscale : i16, parametervalue : *const ::core::ffi::c_void, strlen_or_ind : *mut i32) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetPos(hstmt : *mut ::core::ffi::c_void, irow : u64, foption : u16, flock : u16) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetPos(hstmt : *mut ::core::ffi::c_void, irow : u16, foption : u16, flock : u16) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetScrollOptions(hstmt : *mut ::core::ffi::c_void, fconcurrency : u16, crowkeyset : i64, crowrowset : u16) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetScrollOptions(hstmt : *mut ::core::ffi::c_void, fconcurrency : u16, crowkeyset : i32, crowrowset : u16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSetStmtAttr(statementhandle : *mut ::core::ffi::c_void, attribute : i32, value : *const ::core::ffi::c_void, stringlength : i32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSetStmtAttrW(hstmt : *mut ::core::ffi::c_void, fattribute : i32, rgbvalue : *mut ::core::ffi::c_void, cbvaluemax : i32) -> i16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetStmtOption(statementhandle : *mut ::core::ffi::c_void, option : u16, value : u64) -> i16); +#[cfg(target_arch = "x86")] +::windows_targets::link!("odbc32.dll" "system" fn SQLSetStmtOption(statementhandle : *mut ::core::ffi::c_void, option : u16, value : u32) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSpecialColumns(statementhandle : *mut ::core::ffi::c_void, identifiertype : u16, catalogname : *const u8, namelength1 : i16, schemaname : *const u8, namelength2 : i16, tablename : *const u8, namelength3 : i16, scope : u16, nullable : u16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSpecialColumnsA(hstmt : *mut ::core::ffi::c_void, fcoltype : u16, szcatalogname : *const u8, cbcatalogname : i16, szschemaname : *const u8, cbschemaname : i16, sztablename : *const u8, cbtablename : i16, fscope : u16, fnullable : u16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLSpecialColumnsW(hstmt : *mut ::core::ffi::c_void, fcoltype : u16, szcatalogname : *const u16, cchcatalogname : i16, szschemaname : *const u16, cchschemaname : i16, sztablename : *const u16, cchtablename : i16, fscope : u16, fnullable : u16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLStatistics(statementhandle : *mut ::core::ffi::c_void, catalogname : *const u8, namelength1 : i16, schemaname : *const u8, namelength2 : i16, tablename : *const u8, namelength3 : i16, unique : u16, reserved : u16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLStatisticsA(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u8, cbcatalogname : i16, szschemaname : *const u8, cbschemaname : i16, sztablename : *const u8, cbtablename : i16, funique : u16, faccuracy : u16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLStatisticsW(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u16, cchcatalogname : i16, szschemaname : *const u16, cchschemaname : i16, sztablename : *const u16, cchtablename : i16, funique : u16, faccuracy : u16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLTablePrivileges(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u8, cchcatalogname : i16, szschemaname : *const u8, cchschemaname : i16, sztablename : *const u8, cchtablename : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLTablePrivilegesA(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u8, cbcatalogname : i16, szschemaname : *const u8, cbschemaname : i16, sztablename : *const u8, cbtablename : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLTablePrivilegesW(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u16, cchcatalogname : i16, szschemaname : *const u16, cchschemaname : i16, sztablename : *const u16, cchtablename : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLTables(statementhandle : *mut ::core::ffi::c_void, catalogname : *const u8, namelength1 : i16, schemaname : *const u8, namelength2 : i16, tablename : *const u8, namelength3 : i16, tabletype : *const u8, namelength4 : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLTablesA(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u8, cbcatalogname : i16, szschemaname : *const u8, cbschemaname : i16, sztablename : *const u8, cbtablename : i16, sztabletype : *const u8, cbtabletype : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLTablesW(hstmt : *mut ::core::ffi::c_void, szcatalogname : *const u16, cchcatalogname : i16, szschemaname : *const u16, cchschemaname : i16, sztablename : *const u16, cchtablename : i16, sztabletype : *const u16, cchtabletype : i16) -> i16); +::windows_targets::link!("odbc32.dll" "system" fn SQLTransact(environmenthandle : *mut ::core::ffi::c_void, connectionhandle : *mut ::core::ffi::c_void, completiontype : u16) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_batch(param0 : *mut ::core::ffi::c_void) -> i32); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_bind(param0 : *mut ::core::ffi::c_void, param1 : *mut u8, param2 : i32, param3 : i32, param4 : *mut u8, param5 : i32, param6 : i32, param7 : i32) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_colfmt(param0 : *mut ::core::ffi::c_void, param1 : i32, param2 : u8, param3 : i32, param4 : i32, param5 : *mut u8, param6 : i32, param7 : i32) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_collen(param0 : *mut ::core::ffi::c_void, param1 : i32, param2 : i32) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_colptr(param0 : *mut ::core::ffi::c_void, param1 : *mut u8, param2 : i32) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_columns(param0 : *mut ::core::ffi::c_void, param1 : i32) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_control(param0 : *mut ::core::ffi::c_void, param1 : i32, param2 : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_done(param0 : *mut ::core::ffi::c_void) -> i32); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_exec(param0 : *mut ::core::ffi::c_void, param1 : *mut i32) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_getcolfmt(param0 : *mut ::core::ffi::c_void, param1 : i32, param2 : i32, param3 : *mut ::core::ffi::c_void, param4 : i32, param5 : *mut i32) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_initA(param0 : *mut ::core::ffi::c_void, param1 : ::windows_sys::core::PCSTR, param2 : ::windows_sys::core::PCSTR, param3 : ::windows_sys::core::PCSTR, param4 : i32) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_initW(param0 : *mut ::core::ffi::c_void, param1 : ::windows_sys::core::PCWSTR, param2 : ::windows_sys::core::PCWSTR, param3 : ::windows_sys::core::PCWSTR, param4 : i32) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_moretext(param0 : *mut ::core::ffi::c_void, param1 : i32, param2 : *mut u8) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_readfmtA(param0 : *mut ::core::ffi::c_void, param1 : ::windows_sys::core::PCSTR) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_readfmtW(param0 : *mut ::core::ffi::c_void, param1 : ::windows_sys::core::PCWSTR) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_sendrow(param0 : *mut ::core::ffi::c_void) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_setcolfmt(param0 : *mut ::core::ffi::c_void, param1 : i32, param2 : i32, param3 : *mut ::core::ffi::c_void, param4 : i32) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_writefmtA(param0 : *mut ::core::ffi::c_void, param1 : ::windows_sys::core::PCSTR) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn bcp_writefmtW(param0 : *mut ::core::ffi::c_void, param1 : ::windows_sys::core::PCWSTR) -> i16); +::windows_targets::link!("odbcbcp.dll" "system" fn dbprtypeA(param0 : i32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("odbcbcp.dll" "system" fn dbprtypeW(param0 : i32) -> ::windows_sys::core::PWSTR); +pub type DataSource = *mut ::core::ffi::c_void; +pub type DataSourceListener = *mut ::core::ffi::c_void; +pub type DataSourceObject = *mut ::core::ffi::c_void; +pub type IAccessor = *mut ::core::ffi::c_void; +pub type IAlterIndex = *mut ::core::ffi::c_void; +pub type IAlterTable = *mut ::core::ffi::c_void; +pub type IBindResource = *mut ::core::ffi::c_void; +pub type IChapteredRowset = *mut ::core::ffi::c_void; +pub type IColumnMapper = *mut ::core::ffi::c_void; +pub type IColumnMapperCreator = *mut ::core::ffi::c_void; +pub type IColumnsInfo = *mut ::core::ffi::c_void; +pub type IColumnsInfo2 = *mut ::core::ffi::c_void; +pub type IColumnsRowset = *mut ::core::ffi::c_void; +pub type ICommand = *mut ::core::ffi::c_void; +pub type ICommandCost = *mut ::core::ffi::c_void; +pub type ICommandPersist = *mut ::core::ffi::c_void; +pub type ICommandPrepare = *mut ::core::ffi::c_void; +pub type ICommandProperties = *mut ::core::ffi::c_void; +pub type ICommandStream = *mut ::core::ffi::c_void; +pub type ICommandText = *mut ::core::ffi::c_void; +pub type ICommandValidate = *mut ::core::ffi::c_void; +pub type ICommandWithParameters = *mut ::core::ffi::c_void; +pub type ICondition = *mut ::core::ffi::c_void; +pub type ICondition2 = *mut ::core::ffi::c_void; +pub type IConditionFactory = *mut ::core::ffi::c_void; +pub type IConditionFactory2 = *mut ::core::ffi::c_void; +pub type IConditionGenerator = *mut ::core::ffi::c_void; +pub type IConvertType = *mut ::core::ffi::c_void; +pub type ICreateRow = *mut ::core::ffi::c_void; +pub type IDBAsynchNotify = *mut ::core::ffi::c_void; +pub type IDBAsynchStatus = *mut ::core::ffi::c_void; +pub type IDBBinderProperties = *mut ::core::ffi::c_void; +pub type IDBCreateCommand = *mut ::core::ffi::c_void; +pub type IDBCreateSession = *mut ::core::ffi::c_void; +pub type IDBDataSourceAdmin = *mut ::core::ffi::c_void; +pub type IDBInfo = *mut ::core::ffi::c_void; +pub type IDBInitialize = *mut ::core::ffi::c_void; +pub type IDBPromptInitialize = *mut ::core::ffi::c_void; +pub type IDBProperties = *mut ::core::ffi::c_void; +pub type IDBSchemaCommand = *mut ::core::ffi::c_void; +pub type IDBSchemaRowset = *mut ::core::ffi::c_void; +pub type IDCInfo = *mut ::core::ffi::c_void; +pub type IDataConvert = *mut ::core::ffi::c_void; +pub type IDataInitialize = *mut ::core::ffi::c_void; +pub type IDataSourceLocator = *mut ::core::ffi::c_void; +pub type IEntity = *mut ::core::ffi::c_void; +pub type IEnumItemProperties = *mut ::core::ffi::c_void; +pub type IEnumSearchRoots = *mut ::core::ffi::c_void; +pub type IEnumSearchScopeRules = *mut ::core::ffi::c_void; +pub type IEnumSubscription = *mut ::core::ffi::c_void; +pub type IErrorLookup = *mut ::core::ffi::c_void; +pub type IErrorRecords = *mut ::core::ffi::c_void; +pub type IGetDataSource = *mut ::core::ffi::c_void; +pub type IGetRow = *mut ::core::ffi::c_void; +pub type IGetSession = *mut ::core::ffi::c_void; +pub type IGetSourceRow = *mut ::core::ffi::c_void; +pub type IIndexDefinition = *mut ::core::ffi::c_void; +pub type IInterval = *mut ::core::ffi::c_void; +pub type ILoadFilter = *mut ::core::ffi::c_void; +pub type ILoadFilterWithPrivateComActivation = *mut ::core::ffi::c_void; +pub type IMDDataset = *mut ::core::ffi::c_void; +pub type IMDFind = *mut ::core::ffi::c_void; +pub type IMDRangeRowset = *mut ::core::ffi::c_void; +pub type IMetaData = *mut ::core::ffi::c_void; +pub type IMultipleResults = *mut ::core::ffi::c_void; +pub type INamedEntity = *mut ::core::ffi::c_void; +pub type INamedEntityCollector = *mut ::core::ffi::c_void; +pub type IObjectAccessControl = *mut ::core::ffi::c_void; +pub type IOpLockStatus = *mut ::core::ffi::c_void; +pub type IOpenRowset = *mut ::core::ffi::c_void; +pub type IParentRowset = *mut ::core::ffi::c_void; +pub type IProtocolHandlerSite = *mut ::core::ffi::c_void; +pub type IProvideMoniker = *mut ::core::ffi::c_void; +pub type IQueryParser = *mut ::core::ffi::c_void; +pub type IQueryParserManager = *mut ::core::ffi::c_void; +pub type IQuerySolution = *mut ::core::ffi::c_void; +pub type IReadData = *mut ::core::ffi::c_void; +pub type IRegisterProvider = *mut ::core::ffi::c_void; +pub type IRelationship = *mut ::core::ffi::c_void; +pub type IRichChunk = *mut ::core::ffi::c_void; +pub type IRow = *mut ::core::ffi::c_void; +pub type IRowChange = *mut ::core::ffi::c_void; +pub type IRowPosition = *mut ::core::ffi::c_void; +pub type IRowPositionChange = *mut ::core::ffi::c_void; +pub type IRowSchemaChange = *mut ::core::ffi::c_void; +pub type IRowset = *mut ::core::ffi::c_void; +pub type IRowsetAsynch = *mut ::core::ffi::c_void; +pub type IRowsetBookmark = *mut ::core::ffi::c_void; +pub type IRowsetChange = *mut ::core::ffi::c_void; +pub type IRowsetChangeExtInfo = *mut ::core::ffi::c_void; +pub type IRowsetChapterMember = *mut ::core::ffi::c_void; +pub type IRowsetCopyRows = *mut ::core::ffi::c_void; +pub type IRowsetCurrentIndex = *mut ::core::ffi::c_void; +pub type IRowsetEvents = *mut ::core::ffi::c_void; +pub type IRowsetExactScroll = *mut ::core::ffi::c_void; +pub type IRowsetFastLoad = *mut ::core::ffi::c_void; +pub type IRowsetFind = *mut ::core::ffi::c_void; +pub type IRowsetIdentity = *mut ::core::ffi::c_void; +pub type IRowsetIndex = *mut ::core::ffi::c_void; +pub type IRowsetInfo = *mut ::core::ffi::c_void; +pub type IRowsetKeys = *mut ::core::ffi::c_void; +pub type IRowsetLocate = *mut ::core::ffi::c_void; +pub type IRowsetNewRowAfter = *mut ::core::ffi::c_void; +pub type IRowsetNextRowset = *mut ::core::ffi::c_void; +pub type IRowsetNotify = *mut ::core::ffi::c_void; +pub type IRowsetPrioritization = *mut ::core::ffi::c_void; +pub type IRowsetQueryStatus = *mut ::core::ffi::c_void; +pub type IRowsetRefresh = *mut ::core::ffi::c_void; +pub type IRowsetResynch = *mut ::core::ffi::c_void; +pub type IRowsetScroll = *mut ::core::ffi::c_void; +pub type IRowsetUpdate = *mut ::core::ffi::c_void; +pub type IRowsetView = *mut ::core::ffi::c_void; +pub type IRowsetWatchAll = *mut ::core::ffi::c_void; +pub type IRowsetWatchNotify = *mut ::core::ffi::c_void; +pub type IRowsetWatchRegion = *mut ::core::ffi::c_void; +pub type IRowsetWithParameters = *mut ::core::ffi::c_void; +pub type ISQLErrorInfo = *mut ::core::ffi::c_void; +pub type ISQLGetDiagField = *mut ::core::ffi::c_void; +pub type ISQLRequestDiagFields = *mut ::core::ffi::c_void; +pub type ISQLServerErrorInfo = *mut ::core::ffi::c_void; +pub type ISchemaLocalizerSupport = *mut ::core::ffi::c_void; +pub type ISchemaLock = *mut ::core::ffi::c_void; +pub type ISchemaProvider = *mut ::core::ffi::c_void; +pub type IScopedOperations = *mut ::core::ffi::c_void; +pub type ISearchCatalogManager = *mut ::core::ffi::c_void; +pub type ISearchCatalogManager2 = *mut ::core::ffi::c_void; +pub type ISearchCrawlScopeManager = *mut ::core::ffi::c_void; +pub type ISearchCrawlScopeManager2 = *mut ::core::ffi::c_void; +pub type ISearchItemsChangedSink = *mut ::core::ffi::c_void; +pub type ISearchLanguageSupport = *mut ::core::ffi::c_void; +pub type ISearchManager = *mut ::core::ffi::c_void; +pub type ISearchManager2 = *mut ::core::ffi::c_void; +pub type ISearchNotifyInlineSite = *mut ::core::ffi::c_void; +pub type ISearchPersistentItemsChangedSink = *mut ::core::ffi::c_void; +pub type ISearchProtocol = *mut ::core::ffi::c_void; +pub type ISearchProtocol2 = *mut ::core::ffi::c_void; +pub type ISearchProtocolThreadContext = *mut ::core::ffi::c_void; +pub type ISearchQueryHelper = *mut ::core::ffi::c_void; +pub type ISearchQueryHits = *mut ::core::ffi::c_void; +pub type ISearchRoot = *mut ::core::ffi::c_void; +pub type ISearchScopeRule = *mut ::core::ffi::c_void; +pub type ISearchViewChangedSink = *mut ::core::ffi::c_void; +pub type ISecurityInfo = *mut ::core::ffi::c_void; +pub type IService = *mut ::core::ffi::c_void; +pub type ISessionProperties = *mut ::core::ffi::c_void; +pub type ISimpleCommandCreator = *mut ::core::ffi::c_void; +pub type ISourcesRowset = *mut ::core::ffi::c_void; +pub type IStemmer = *mut ::core::ffi::c_void; +pub type ISubscriptionItem = *mut ::core::ffi::c_void; +pub type ISubscriptionMgr = *mut ::core::ffi::c_void; +pub type ISubscriptionMgr2 = *mut ::core::ffi::c_void; +pub type ITableCreation = *mut ::core::ffi::c_void; +pub type ITableDefinition = *mut ::core::ffi::c_void; +pub type ITableDefinitionWithConstraints = *mut ::core::ffi::c_void; +pub type ITableRename = *mut ::core::ffi::c_void; +pub type ITokenCollection = *mut ::core::ffi::c_void; +pub type ITransactionJoin = *mut ::core::ffi::c_void; +pub type ITransactionLocal = *mut ::core::ffi::c_void; +pub type ITransactionObject = *mut ::core::ffi::c_void; +pub type ITrusteeAdmin = *mut ::core::ffi::c_void; +pub type ITrusteeGroupAdmin = *mut ::core::ffi::c_void; +pub type IUMS = *mut ::core::ffi::c_void; +pub type IUMSInitialize = *mut ::core::ffi::c_void; +pub type IUrlAccessor = *mut ::core::ffi::c_void; +pub type IUrlAccessor2 = *mut ::core::ffi::c_void; +pub type IUrlAccessor3 = *mut ::core::ffi::c_void; +pub type IUrlAccessor4 = *mut ::core::ffi::c_void; +pub type IViewChapter = *mut ::core::ffi::c_void; +pub type IViewFilter = *mut ::core::ffi::c_void; +pub type IViewRowset = *mut ::core::ffi::c_void; +pub type IViewSort = *mut ::core::ffi::c_void; +pub type IWordBreaker = *mut ::core::ffi::c_void; +pub type IWordFormSink = *mut ::core::ffi::c_void; +pub type IWordSink = *mut ::core::ffi::c_void; +pub type OLEDBSimpleProvider = *mut ::core::ffi::c_void; +pub type OLEDBSimpleProviderListener = *mut ::core::ffi::c_void; +pub const BCP6xFILEFMT: u32 = 9u32; +pub const BCPABORT: u32 = 6u32; +pub const BCPBATCH: u32 = 4u32; +pub const BCPFILECP: u32 = 12u32; +pub const BCPFILECP_ACP: u32 = 0u32; +pub const BCPFILECP_OEMCP: u32 = 1u32; +pub const BCPFILECP_RAW: i32 = -1i32; +pub const BCPFILEFMT: u32 = 15u32; +pub const BCPFIRST: u32 = 2u32; +pub const BCPHINTS: u32 = 11u32; +pub const BCPHINTSA: u32 = 10u32; +pub const BCPHINTSW: u32 = 11u32; +pub const BCPKEEPIDENTITY: u32 = 8u32; +pub const BCPKEEPNULLS: u32 = 5u32; +pub const BCPLAST: u32 = 3u32; +pub const BCPMAXERRS: u32 = 1u32; +pub const BCPODBC: u32 = 7u32; +pub const BCPTEXTFILE: u32 = 14u32; +pub const BCPUNICODEFILE: u32 = 13u32; +pub const BCP_FMT_COLLATION: u32 = 6u32; +pub const BCP_FMT_COLLATION_ID: u32 = 7u32; +pub const BCP_FMT_DATA_LEN: u32 = 3u32; +pub const BCP_FMT_INDICATOR_LEN: u32 = 2u32; +pub const BCP_FMT_SERVER_COL: u32 = 5u32; +pub const BCP_FMT_TERMINATOR: u32 = 4u32; +pub const BCP_FMT_TYPE: u32 = 1u32; +pub const BIO_BINDER: EBindInfoOptions = 1i32; +pub const BMK_DURABILITY_INTRANSACTION: i32 = 1i32; +pub const BMK_DURABILITY_REORGANIZATION: i32 = 3i32; +pub const BMK_DURABILITY_ROWSET: i32 = 0i32; +pub const BMK_DURABILITY_XTRANSACTION: i32 = 2i32; +pub const BUCKET_EXPONENTIAL: u32 = 1u32; +pub const BUCKET_LINEAR: u32 = 0u32; +pub const CASE_REQUIREMENT_ANY: CASE_REQUIREMENT = 0i32; +pub const CASE_REQUIREMENT_UPPER_IF_AQS: CASE_REQUIREMENT = 1i32; +pub const CATALOG_PAUSED_REASON_DELAYED_RECOVERY: CatalogPausedReason = 7i32; +pub const CATALOG_PAUSED_REASON_EXTERNAL: CatalogPausedReason = 9i32; +pub const CATALOG_PAUSED_REASON_HIGH_CPU: CatalogPausedReason = 2i32; +pub const CATALOG_PAUSED_REASON_HIGH_IO: CatalogPausedReason = 1i32; +pub const CATALOG_PAUSED_REASON_HIGH_NTF_RATE: CatalogPausedReason = 3i32; +pub const CATALOG_PAUSED_REASON_LOW_BATTERY: CatalogPausedReason = 4i32; +pub const CATALOG_PAUSED_REASON_LOW_DISK: CatalogPausedReason = 6i32; +pub const CATALOG_PAUSED_REASON_LOW_MEMORY: CatalogPausedReason = 5i32; +pub const CATALOG_PAUSED_REASON_NONE: CatalogPausedReason = 0i32; +pub const CATALOG_PAUSED_REASON_UPGRADING: CatalogPausedReason = 10i32; +pub const CATALOG_PAUSED_REASON_USER_ACTIVE: CatalogPausedReason = 8i32; +pub const CATALOG_STATUS_FULL_CRAWL: CatalogStatus = 3i32; +pub const CATALOG_STATUS_IDLE: CatalogStatus = 0i32; +pub const CATALOG_STATUS_INCREMENTAL_CRAWL: CatalogStatus = 4i32; +pub const CATALOG_STATUS_PAUSED: CatalogStatus = 1i32; +pub const CATALOG_STATUS_PROCESSING_NOTIFICATIONS: CatalogStatus = 5i32; +pub const CATALOG_STATUS_RECOVERING: CatalogStatus = 2i32; +pub const CATALOG_STATUS_SHUTTING_DOWN: CatalogStatus = 6i32; +pub const CATEGORIZE_BUCKETS: u32 = 2u32; +pub const CATEGORIZE_CLUSTER: u32 = 1u32; +pub const CATEGORIZE_RANGE: u32 = 3u32; +pub const CATEGORIZE_UNIQUE: u32 = 0u32; +pub const CATEGORY_COLLATOR: i32 = 2i32; +pub const CATEGORY_GATHERER: i32 = 3i32; +pub const CATEGORY_INDEXER: i32 = 4i32; +pub const CATEGORY_SEARCH: i32 = 1i32; +pub const CDBBMKDISPIDS: u32 = 8u32; +pub const CDBCOLDISPIDS: u32 = 28u32; +pub const CDBSELFDISPIDS: u32 = 8u32; +pub const CERT_E_NOT_FOUND_OR_NO_PERMISSSION: i32 = -2147211263i32; +pub const CHANNEL_AGENT_DYNAMIC_SCHEDULE: CHANNEL_AGENT_FLAGS = 1i32; +pub const CHANNEL_AGENT_PRECACHE_ALL: CHANNEL_AGENT_FLAGS = 4i32; +pub const CHANNEL_AGENT_PRECACHE_SCRNSAVER: CHANNEL_AGENT_FLAGS = 8i32; +pub const CHANNEL_AGENT_PRECACHE_SOME: CHANNEL_AGENT_FLAGS = 2i32; +pub const CI_E_CORRUPT_FWIDX: ::windows_sys::core::HRESULT = -1073473491i32; +pub const CI_E_DIACRITIC_SETTINGS_DIFFER: ::windows_sys::core::HRESULT = -1073473490i32; +pub const CI_E_INCONSISTENT_TRANSACTION: ::windows_sys::core::HRESULT = -1073473486i32; +pub const CI_E_INVALID_CATALOG_LIST_VERSION: ::windows_sys::core::HRESULT = -2147215313i32; +pub const CI_E_MULTIPLE_PROTECTED_USERS_UNSUPPORTED: ::windows_sys::core::HRESULT = -1073473483i32; +pub const CI_E_NO_AUXMETADATA: ::windows_sys::core::HRESULT = -2147215318i32; +pub const CI_E_NO_CATALOG_MANAGER: ::windows_sys::core::HRESULT = -1073473487i32; +pub const CI_E_NO_PROTECTED_USER: ::windows_sys::core::HRESULT = -1073473484i32; +pub const CI_E_PROTECTED_CATALOG_NON_INTERACTIVE_USER: ::windows_sys::core::HRESULT = -1073473481i32; +pub const CI_E_PROTECTED_CATALOG_NOT_AVAILABLE: ::windows_sys::core::HRESULT = -1073473485i32; +pub const CI_E_PROTECTED_CATALOG_SID_MISMATCH: ::windows_sys::core::HRESULT = -1073473482i32; +pub const CI_S_CATALOG_RESET: ::windows_sys::core::HRESULT = 268336i32; +pub const CI_S_CLIENT_REQUESTED_ABORT: ::windows_sys::core::HRESULT = 268331i32; +pub const CI_S_NEW_AUXMETADATA: ::windows_sys::core::HRESULT = 268329i32; +pub const CI_S_RETRY_DOCUMENT: ::windows_sys::core::HRESULT = 268332i32; +pub const CLSID_CISimpleCommandCreator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc7b6c04a_cbb5_11d0_bb4c_00c04fc2f410); +pub const CLSID_DataShapeProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3449a1c8_c56c_11d0_ad72_00c04fc29863); +pub const CLSID_MSDASQL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc8b522cb_5cf3_11ce_ade5_00aa0044773d); +pub const CLSID_MSDASQL_ENUMERATOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc8b522cd_5cf3_11ce_ade5_00aa0044773d); +pub const CLSID_MSPersist: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7c07e0d0_4418_11d2_9212_00c04fbbbfb3); +pub const CLSID_SQLOLEDB: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0c7ff16c_38e3_11d0_97ab_00c04fc2ad98); +pub const CLSID_SQLOLEDB_ENUMERATOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdfa22b8e_e68d_11d0_97e4_00c04fc2ad98); +pub const CLSID_SQLOLEDB_ERROR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc0932c62_38e5_11d0_97ab_00c04fc2ad98); +pub const CLUSIONREASON_DEFAULT: CLUSION_REASON = 1i32; +pub const CLUSIONREASON_GROUPPOLICY: CLUSION_REASON = 3i32; +pub const CLUSIONREASON_UNKNOWNSCOPE: CLUSION_REASON = 0i32; +pub const CLUSIONREASON_USER: CLUSION_REASON = 2i32; +pub const CMDLINE_E_ALREADY_INIT: i32 = -2147216123i32; +pub const CMDLINE_E_NOT_INIT: i32 = -2147216124i32; +pub const CMDLINE_E_NUM_PARAMS: i32 = -2147216122i32; +pub const CMDLINE_E_PARAM_SIZE: i32 = -2147216125i32; +pub const CMDLINE_E_PAREN: i32 = -2147216126i32; +pub const CMDLINE_E_UNEXPECTED: i32 = -2147216127i32; +pub const CM_E_CONNECTIONTIMEOUT: i32 = -2147219963i32; +pub const CM_E_DATASOURCENOTAVAILABLE: i32 = -2147219964i32; +pub const CM_E_INSUFFICIENTBUFFER: i32 = -2147219957i32; +pub const CM_E_INVALIDDATASOURCE: i32 = -2147219959i32; +pub const CM_E_NOQUERYCONNECTIONS: i32 = -2147219965i32; +pub const CM_E_REGISTRY: i32 = -2147219960i32; +pub const CM_E_SERVERNOTFOUND: i32 = -2147219962i32; +pub const CM_E_TIMEOUT: i32 = -2147219958i32; +pub const CM_E_TOOMANYDATASERVERS: i32 = -2147219967i32; +pub const CM_E_TOOMANYDATASOURCES: i32 = -2147219966i32; +pub const CM_S_NODATASERVERS: i32 = 263687i32; +pub const COLL_E_BADRESULT: i32 = -2147220218i32; +pub const COLL_E_BADSEQUENCE: i32 = -2147220223i32; +pub const COLL_E_BUFFERTOOSMALL: i32 = -2147220220i32; +pub const COLL_E_DUPLICATEDBID: i32 = -2147220216i32; +pub const COLL_E_INCOMPATIBLECOLUMNS: i32 = -2147220221i32; +pub const COLL_E_MAXCONNEXCEEDED: i32 = -2147220213i32; +pub const COLL_E_NODEFAULTCATALOG: i32 = -2147220214i32; +pub const COLL_E_NOMOREDATA: i32 = -2147220222i32; +pub const COLL_E_NOSORTCOLUMN: i32 = -2147220217i32; +pub const COLL_E_TOOMANYMERGECOLUMNS: i32 = -2147220215i32; +pub const CONDITION_CREATION_DEFAULT: CONDITION_CREATION_OPTIONS = 0i32; +pub const CONDITION_CREATION_NONE: CONDITION_CREATION_OPTIONS = 0i32; +pub const CONDITION_CREATION_SIMPLIFY: CONDITION_CREATION_OPTIONS = 1i32; +pub const CONDITION_CREATION_USE_CONTENT_LOCALE: CONDITION_CREATION_OPTIONS = 16i32; +pub const CONDITION_CREATION_VECTOR_AND: CONDITION_CREATION_OPTIONS = 2i32; +pub const CONDITION_CREATION_VECTOR_LEAF: CONDITION_CREATION_OPTIONS = 8i32; +pub const CONDITION_CREATION_VECTOR_OR: CONDITION_CREATION_OPTIONS = 4i32; +pub const CONTENT_SOURCE_E_CONTENT_CLASS_READ: i32 = -2147208188i32; +pub const CONTENT_SOURCE_E_CONTENT_SOURCE_COLUMN_TYPE: i32 = -2147208185i32; +pub const CONTENT_SOURCE_E_NULL_CONTENT_CLASS_BSTR: i32 = -2147208186i32; +pub const CONTENT_SOURCE_E_NULL_URI: i32 = -2147208183i32; +pub const CONTENT_SOURCE_E_OUT_OF_RANGE: i32 = -2147208184i32; +pub const CONTENT_SOURCE_E_PROPERTY_MAPPING_BAD_VECTOR_SIZE: i32 = -2147208189i32; +pub const CONTENT_SOURCE_E_PROPERTY_MAPPING_READ: i32 = -2147208191i32; +pub const CONTENT_SOURCE_E_UNEXPECTED_EXCEPTION: i32 = -2147208187i32; +pub const CONTENT_SOURCE_E_UNEXPECTED_NULL_POINTER: i32 = -2147208190i32; +pub const CQUERYDISPIDS: u32 = 11u32; +pub const CQUERYMETADISPIDS: u32 = 10u32; +pub const CQUERYPROPERTY: u32 = 64u32; +pub const CREATESUBS_ADDTOFAVORITES: CREATESUBSCRIPTIONFLAGS = 1i32; +pub const CREATESUBS_FROMFAVORITES: CREATESUBSCRIPTIONFLAGS = 2i32; +pub const CREATESUBS_NOSAVE: CREATESUBSCRIPTIONFLAGS = 8i32; +pub const CREATESUBS_NOUI: CREATESUBSCRIPTIONFLAGS = 4i32; +pub const CREATESUBS_SOFTWAREUPDATE: CREATESUBSCRIPTIONFLAGS = 16i32; +pub const CRESTRICTIONS_DBSCHEMA_ASSERTIONS: u32 = 3u32; +pub const CRESTRICTIONS_DBSCHEMA_CATALOGS: u32 = 1u32; +pub const CRESTRICTIONS_DBSCHEMA_CHARACTER_SETS: u32 = 3u32; +pub const CRESTRICTIONS_DBSCHEMA_CHECK_CONSTRAINTS: u32 = 3u32; +pub const CRESTRICTIONS_DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE: u32 = 6u32; +pub const CRESTRICTIONS_DBSCHEMA_COLLATIONS: u32 = 3u32; +pub const CRESTRICTIONS_DBSCHEMA_COLUMNS: u32 = 4u32; +pub const CRESTRICTIONS_DBSCHEMA_COLUMN_DOMAIN_USAGE: u32 = 4u32; +pub const CRESTRICTIONS_DBSCHEMA_COLUMN_PRIVILEGES: u32 = 6u32; +pub const CRESTRICTIONS_DBSCHEMA_CONSTRAINT_COLUMN_USAGE: u32 = 4u32; +pub const CRESTRICTIONS_DBSCHEMA_CONSTRAINT_TABLE_USAGE: u32 = 3u32; +pub const CRESTRICTIONS_DBSCHEMA_FOREIGN_KEYS: u32 = 6u32; +pub const CRESTRICTIONS_DBSCHEMA_INDEXES: u32 = 5u32; +pub const CRESTRICTIONS_DBSCHEMA_KEY_COLUMN_USAGE: u32 = 7u32; +pub const CRESTRICTIONS_DBSCHEMA_LINKEDSERVERS: u32 = 1u32; +pub const CRESTRICTIONS_DBSCHEMA_OBJECTS: u32 = 1u32; +pub const CRESTRICTIONS_DBSCHEMA_OBJECT_ACTIONS: u32 = 1u32; +pub const CRESTRICTIONS_DBSCHEMA_PRIMARY_KEYS: u32 = 3u32; +pub const CRESTRICTIONS_DBSCHEMA_PROCEDURES: u32 = 4u32; +pub const CRESTRICTIONS_DBSCHEMA_PROCEDURE_COLUMNS: u32 = 4u32; +pub const CRESTRICTIONS_DBSCHEMA_PROCEDURE_PARAMETERS: u32 = 4u32; +pub const CRESTRICTIONS_DBSCHEMA_PROVIDER_TYPES: u32 = 2u32; +pub const CRESTRICTIONS_DBSCHEMA_REFERENTIAL_CONSTRAINTS: u32 = 3u32; +pub const CRESTRICTIONS_DBSCHEMA_SCHEMATA: u32 = 3u32; +pub const CRESTRICTIONS_DBSCHEMA_SQL_LANGUAGES: u32 = 0u32; +pub const CRESTRICTIONS_DBSCHEMA_STATISTICS: u32 = 3u32; +pub const CRESTRICTIONS_DBSCHEMA_TABLES: u32 = 4u32; +pub const CRESTRICTIONS_DBSCHEMA_TABLES_INFO: u32 = 4u32; +pub const CRESTRICTIONS_DBSCHEMA_TABLE_CONSTRAINTS: u32 = 7u32; +pub const CRESTRICTIONS_DBSCHEMA_TABLE_PRIVILEGES: u32 = 5u32; +pub const CRESTRICTIONS_DBSCHEMA_TABLE_STATISTICS: u32 = 7u32; +pub const CRESTRICTIONS_DBSCHEMA_TRANSLATIONS: u32 = 3u32; +pub const CRESTRICTIONS_DBSCHEMA_TRUSTEE: u32 = 4u32; +pub const CRESTRICTIONS_DBSCHEMA_USAGE_PRIVILEGES: u32 = 6u32; +pub const CRESTRICTIONS_DBSCHEMA_VIEWS: u32 = 3u32; +pub const CRESTRICTIONS_DBSCHEMA_VIEW_COLUMN_USAGE: u32 = 3u32; +pub const CRESTRICTIONS_DBSCHEMA_VIEW_TABLE_USAGE: u32 = 3u32; +pub const CRESTRICTIONS_MDSCHEMA_ACTIONS: u32 = 8u32; +pub const CRESTRICTIONS_MDSCHEMA_COMMANDS: u32 = 5u32; +pub const CRESTRICTIONS_MDSCHEMA_CUBES: u32 = 3u32; +pub const CRESTRICTIONS_MDSCHEMA_DIMENSIONS: u32 = 5u32; +pub const CRESTRICTIONS_MDSCHEMA_FUNCTIONS: u32 = 4u32; +pub const CRESTRICTIONS_MDSCHEMA_HIERARCHIES: u32 = 6u32; +pub const CRESTRICTIONS_MDSCHEMA_LEVELS: u32 = 7u32; +pub const CRESTRICTIONS_MDSCHEMA_MEASURES: u32 = 5u32; +pub const CRESTRICTIONS_MDSCHEMA_MEMBERS: u32 = 12u32; +pub const CRESTRICTIONS_MDSCHEMA_PROPERTIES: u32 = 9u32; +pub const CRESTRICTIONS_MDSCHEMA_SETS: u32 = 5u32; +pub const CSTORAGEPROPERTY: u32 = 23u32; +pub const CSearchLanguageSupport: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a68cc80_4337_4dbc_bd27_fbfb1053820b); +pub const CSearchManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7d096c5f_ac08_4f1f_beb7_5c22c517ce39); +pub const CSearchRoot: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30766bd2_ea1c_4f28_bf27_0b44e2f68db7); +pub const CSearchScopeRule: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe63de750_3bd7_4be5_9c84_6b4281988c44); +pub const CompoundCondition: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x116f8d13_101e_4fa5_84d4_ff8279381935); +pub const ConditionFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe03e85b0_7be3_4000_ba98_6c13de9fa486); +pub const DBACCESSOR_INHERITED: DBACCESSORFLAGSENUM = 16i32; +pub const DBACCESSOR_INVALID: DBACCESSORFLAGSENUM = 0i32; +pub const DBACCESSOR_OPTIMIZED: DBACCESSORFLAGSENUM = 8i32; +pub const DBACCESSOR_PARAMETERDATA: DBACCESSORFLAGSENUM = 4i32; +pub const DBACCESSOR_PASSBYREF: DBACCESSORFLAGSENUM = 1i32; +pub const DBACCESSOR_ROWDATA: DBACCESSORFLAGSENUM = 2i32; +pub const DBASYNCHOP_OPEN: DBASYNCHOPENUM = 0i32; +pub const DBASYNCHPHASE_CANCELED: DBASYNCHPHASEENUM = 3i32; +pub const DBASYNCHPHASE_COMPLETE: DBASYNCHPHASEENUM = 2i32; +pub const DBASYNCHPHASE_INITIALIZATION: DBASYNCHPHASEENUM = 0i32; +pub const DBASYNCHPHASE_POPULATION: DBASYNCHPHASEENUM = 1i32; +pub const DBBINDFLAG_HTML: DBBINDFLAGENUM = 1i32; +pub const DBBINDSTATUS_BADBINDINFO: DBBINDSTATUSENUM = 3i32; +pub const DBBINDSTATUS_BADORDINAL: DBBINDSTATUSENUM = 1i32; +pub const DBBINDSTATUS_BADSTORAGEFLAGS: DBBINDSTATUSENUM = 4i32; +pub const DBBINDSTATUS_MULTIPLESTORAGE: DBBINDSTATUSENUM = 6i32; +pub const DBBINDSTATUS_NOINTERFACE: DBBINDSTATUSENUM = 5i32; +pub const DBBINDSTATUS_OK: DBBINDSTATUSENUM = 0i32; +pub const DBBINDSTATUS_UNSUPPORTEDCONVERSION: DBBINDSTATUSENUM = 2i32; +pub const DBBINDURLFLAG_ASYNCHRONOUS: DBBINDURLFLAGENUM = 4096i32; +pub const DBBINDURLFLAG_COLLECTION: DBBINDURLFLAGENUM = 8192i32; +pub const DBBINDURLFLAG_DELAYFETCHCOLUMNS: DBBINDURLFLAGENUM = 32768i32; +pub const DBBINDURLFLAG_DELAYFETCHSTREAM: DBBINDURLFLAGENUM = 16384i32; +pub const DBBINDURLFLAG_ISSTRUCTUREDDOCUMENT: DBBINDURLFLAGENUM = 134217728i32; +pub const DBBINDURLFLAG_OPENIFEXISTS: DBBINDURLFLAGENUM = 33554432i32; +pub const DBBINDURLFLAG_OUTPUT: DBBINDURLFLAGENUM = 8388608i32; +pub const DBBINDURLFLAG_OVERWRITE: DBBINDURLFLAGENUM = 67108864i32; +pub const DBBINDURLFLAG_READ: DBBINDURLFLAGENUM = 1i32; +pub const DBBINDURLFLAG_READWRITE: DBBINDURLFLAGENUM = 3i32; +pub const DBBINDURLFLAG_RECURSIVE: DBBINDURLFLAGENUM = 4194304i32; +pub const DBBINDURLFLAG_SHARE_DENY_NONE: DBBINDURLFLAGENUM = 16i32; +pub const DBBINDURLFLAG_SHARE_DENY_READ: DBBINDURLFLAGENUM = 4i32; +pub const DBBINDURLFLAG_SHARE_DENY_WRITE: DBBINDURLFLAGENUM = 8i32; +pub const DBBINDURLFLAG_SHARE_EXCLUSIVE: DBBINDURLFLAGENUM = 12i32; +pub const DBBINDURLFLAG_WAITFORINIT: DBBINDURLFLAGENUM = 16777216i32; +pub const DBBINDURLFLAG_WRITE: DBBINDURLFLAGENUM = 2i32; +pub const DBBINDURLSTATUS_S_DENYNOTSUPPORTED: DBBINDURLSTATUSENUM = 1i32; +pub const DBBINDURLSTATUS_S_DENYTYPENOTSUPPORTED: DBBINDURLSTATUSENUM = 4i32; +pub const DBBINDURLSTATUS_S_OK: DBBINDURLSTATUSENUM = 0i32; +pub const DBBINDURLSTATUS_S_REDIRECTED: DBBINDURLSTATUSENUM = 8i32; +pub const DBBMKGUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc8b52232_5cf3_11ce_ade5_00aa0044773d); +pub const DBBMK_FIRST: DBBOOKMARK = 1i32; +pub const DBBMK_INVALID: DBBOOKMARK = 0i32; +pub const DBBMK_LAST: DBBOOKMARK = 2i32; +pub const DBCIDGUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0c733a81_2a1c_11ce_ade5_00aa0044773d); +pub const DBCOLUMNDESCFLAGS_CLSID: DBCOLUMNDESCFLAGSENUM = 8i32; +pub const DBCOLUMNDESCFLAGS_COLSIZE: DBCOLUMNDESCFLAGSENUM = 16i32; +pub const DBCOLUMNDESCFLAGS_DBCID: DBCOLUMNDESCFLAGSENUM = 32i32; +pub const DBCOLUMNDESCFLAGS_ITYPEINFO: DBCOLUMNDESCFLAGSENUM = 2i32; +pub const DBCOLUMNDESCFLAGS_PRECISION: DBCOLUMNDESCFLAGSENUM = 128i32; +pub const DBCOLUMNDESCFLAGS_PROPERTIES: DBCOLUMNDESCFLAGSENUM = 4i32; +pub const DBCOLUMNDESCFLAGS_SCALE: DBCOLUMNDESCFLAGSENUM = 256i32; +pub const DBCOLUMNDESCFLAGS_TYPENAME: DBCOLUMNDESCFLAGSENUM = 1i32; +pub const DBCOLUMNDESCFLAGS_WTYPE: DBCOLUMNDESCFLAGSENUM = 64i32; +pub const DBCOLUMNFLAGS_CACHEDEFERRED: DBCOLUMNFLAGSENUM = 4096i32; +pub const DBCOLUMNFLAGS_ISBOOKMARK: DBCOLUMNFLAGSENUM = 1i32; +pub const DBCOLUMNFLAGS_ISCHAPTER: DBCOLUMNFLAGS15ENUM = 8192i32; +pub const DBCOLUMNFLAGS_ISCOLLECTION: DBCOLUMNFLAGSENUM21 = 262144i32; +pub const DBCOLUMNFLAGS_ISDEFAULTSTREAM: DBCOLUMNFLAGSENUM21 = 131072i32; +pub const DBCOLUMNFLAGS_ISFIXEDLENGTH: DBCOLUMNFLAGSENUM = 16i32; +pub const DBCOLUMNFLAGS_ISLONG: DBCOLUMNFLAGSENUM = 128i32; +pub const DBCOLUMNFLAGS_ISNULLABLE: DBCOLUMNFLAGSENUM = 32i32; +pub const DBCOLUMNFLAGS_ISROW: DBCOLUMNFLAGSENUM26 = 2097152i32; +pub const DBCOLUMNFLAGS_ISROWID: DBCOLUMNFLAGSENUM = 256i32; +pub const DBCOLUMNFLAGS_ISROWSET: DBCOLUMNFLAGSENUM26 = 1048576i32; +pub const DBCOLUMNFLAGS_ISROWURL: DBCOLUMNFLAGSENUM21 = 65536i32; +pub const DBCOLUMNFLAGS_ISROWVER: DBCOLUMNFLAGSENUM = 512i32; +pub const DBCOLUMNFLAGS_ISSTREAM: DBCOLUMNFLAGSENUM26 = 524288i32; +pub const DBCOLUMNFLAGS_KEYCOLUMN: DBCOLUMNFLAGSDEPRECATED = 32768i32; +pub const DBCOLUMNFLAGS_MAYBENULL: DBCOLUMNFLAGSENUM = 64i32; +pub const DBCOLUMNFLAGS_MAYDEFER: DBCOLUMNFLAGSENUM = 2i32; +pub const DBCOLUMNFLAGS_RESERVED: DBCOLUMNFLAGSENUM20 = 32768i32; +pub const DBCOLUMNFLAGS_ROWSPECIFICCOLUMN: DBCOLUMNFLAGSENUM26 = 4194304i32; +pub const DBCOLUMNFLAGS_SCALEISNEGATIVE: DBCOLUMNFLAGSENUM20 = 16384i32; +pub const DBCOLUMNFLAGS_WRITE: DBCOLUMNFLAGSENUM = 4i32; +pub const DBCOLUMNFLAGS_WRITEUNKNOWN: DBCOLUMNFLAGSENUM = 8i32; +pub const DBCOMMANDPERSISTFLAG_DEFAULT: DBCOMMANDPERSISTFLAGENUM21 = 0i32; +pub const DBCOMMANDPERSISTFLAG_NOSAVE: DBCOMMANDPERSISTFLAGENUM = 1i32; +pub const DBCOMMANDPERSISTFLAG_PERSISTPROCEDURE: DBCOMMANDPERSISTFLAGENUM21 = 4i32; +pub const DBCOMMANDPERSISTFLAG_PERSISTVIEW: DBCOMMANDPERSISTFLAGENUM21 = 2i32; +pub const DBCOMPAREOPS_BEGINSWITH: DBCOMPAREOPSENUM = 5i32; +pub const DBCOMPAREOPS_CASEINSENSITIVE: DBCOMPAREOPSENUM = 8192i32; +pub const DBCOMPAREOPS_CASESENSITIVE: DBCOMPAREOPSENUM = 4096i32; +pub const DBCOMPAREOPS_CONTAINS: DBCOMPAREOPSENUM = 6i32; +pub const DBCOMPAREOPS_EQ: DBCOMPAREOPSENUM = 2i32; +pub const DBCOMPAREOPS_GE: DBCOMPAREOPSENUM = 3i32; +pub const DBCOMPAREOPS_GT: DBCOMPAREOPSENUM = 4i32; +pub const DBCOMPAREOPS_IGNORE: DBCOMPAREOPSENUM = 8i32; +pub const DBCOMPAREOPS_LE: DBCOMPAREOPSENUM = 1i32; +pub const DBCOMPAREOPS_LT: DBCOMPAREOPSENUM = 0i32; +pub const DBCOMPAREOPS_NE: DBCOMPAREOPSENUM = 7i32; +pub const DBCOMPAREOPS_NOTBEGINSWITH: DBCOMPAREOPSENUM20 = 9i32; +pub const DBCOMPAREOPS_NOTCONTAINS: DBCOMPAREOPSENUM20 = 10i32; +pub const DBCOMPARE_EQ: DBCOMPAREENUM = 1i32; +pub const DBCOMPARE_GT: DBCOMPAREENUM = 2i32; +pub const DBCOMPARE_LT: DBCOMPAREENUM = 0i32; +pub const DBCOMPARE_NE: DBCOMPAREENUM = 3i32; +pub const DBCOMPARE_NOTCOMPARABLE: DBCOMPAREENUM = 4i32; +pub const DBCOMPUTEMODE_COMPUTED: u32 = 1u32; +pub const DBCOMPUTEMODE_DYNAMIC: u32 = 2u32; +pub const DBCOMPUTEMODE_NOTCOMPUTED: u32 = 3u32; +pub const DBCONSTRAINTTYPE_CHECK: DBCONSTRAINTTYPEENUM = 3i32; +pub const DBCONSTRAINTTYPE_FOREIGNKEY: DBCONSTRAINTTYPEENUM = 1i32; +pub const DBCONSTRAINTTYPE_PRIMARYKEY: DBCONSTRAINTTYPEENUM = 2i32; +pub const DBCONSTRAINTTYPE_UNIQUE: DBCONSTRAINTTYPEENUM = 0i32; +pub const DBCONVERTFLAGS_COLUMN: DBCONVERTFLAGSENUM = 0i32; +pub const DBCONVERTFLAGS_FROMVARIANT: DBCONVERTFLAGSENUM20 = 8i32; +pub const DBCONVERTFLAGS_ISFIXEDLENGTH: DBCONVERTFLAGSENUM20 = 4i32; +pub const DBCONVERTFLAGS_ISLONG: DBCONVERTFLAGSENUM20 = 2i32; +pub const DBCONVERTFLAGS_PARAMETER: DBCONVERTFLAGSENUM = 1i32; +pub const DBCOPY_ALLOW_EMULATION: DBCOPYFLAGSENUM = 1024i32; +pub const DBCOPY_ASYNC: DBCOPYFLAGSENUM = 256i32; +pub const DBCOPY_ATOMIC: DBCOPYFLAGSENUM = 4096i32; +pub const DBCOPY_NON_RECURSIVE: DBCOPYFLAGSENUM = 2048i32; +pub const DBCOPY_REPLACE_EXISTING: DBCOPYFLAGSENUM = 512i32; +pub const DBDATACONVERT_DECIMALSCALE: DBDATACONVERTENUM = 8i32; +pub const DBDATACONVERT_DEFAULT: DBDATACONVERTENUM = 0i32; +pub const DBDATACONVERT_DSTISFIXEDLENGTH: DBDATACONVERTENUM = 4i32; +pub const DBDATACONVERT_LENGTHFROMNTS: DBDATACONVERTENUM = 2i32; +pub const DBDATACONVERT_SETDATABEHAVIOR: DBDATACONVERTENUM = 1i32; +pub const DBDEFERRABILITY_DEFERRABLE: DBDEFERRABILITYENUM = 2i32; +pub const DBDEFERRABILITY_DEFERRED: DBDEFERRABILITYENUM = 1i32; +pub const DBDELETE_ASYNC: DBDELETEFLAGSENUM = 256i32; +pub const DBDELETE_ATOMIC: DBDELETEFLAGSENUM = 4096i32; +pub const DBEVENTPHASE_ABOUTTODO: DBEVENTPHASEENUM = 1i32; +pub const DBEVENTPHASE_DIDEVENT: DBEVENTPHASEENUM = 4i32; +pub const DBEVENTPHASE_FAILEDTODO: DBEVENTPHASEENUM = 3i32; +pub const DBEVENTPHASE_OKTODO: DBEVENTPHASEENUM = 0i32; +pub const DBEVENTPHASE_SYNCHAFTER: DBEVENTPHASEENUM = 2i32; +pub const DBEXECLIMITS_ABORT: DBEXECLIMITSENUM = 1i32; +pub const DBEXECLIMITS_STOP: DBEXECLIMITSENUM = 2i32; +pub const DBEXECLIMITS_SUSPEND: DBEXECLIMITSENUM = 3i32; +pub const DBGUID_MSSQLXML: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5d531cb2_e6ed_11d2_b252_00c04f681b71); +pub const DBGUID_ROWDEFAULTSTREAM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0c733ab7_2a1c_11ce_ade5_00aa0044773d); +pub const DBGUID_ROWURL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0c733ab6_2a1c_11ce_ade5_00aa0044773d); +pub const DBGUID_XPATH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xec2a4293_e898_11d2_b1b7_00c04f680c56); +pub const DBINDEX_COL_ORDER_ASC: DBINDEX_COL_ORDERENUM = 0i32; +pub const DBINDEX_COL_ORDER_DESC: DBINDEX_COL_ORDERENUM = 1i32; +pub const DBLITERAL_BINARY_LITERAL: DBLITERALENUM = 1i32; +pub const DBLITERAL_CATALOG_NAME: DBLITERALENUM = 2i32; +pub const DBLITERAL_CATALOG_SEPARATOR: DBLITERALENUM = 3i32; +pub const DBLITERAL_CHAR_LITERAL: DBLITERALENUM = 4i32; +pub const DBLITERAL_COLUMN_ALIAS: DBLITERALENUM = 5i32; +pub const DBLITERAL_COLUMN_NAME: DBLITERALENUM = 6i32; +pub const DBLITERAL_CORRELATION_NAME: DBLITERALENUM = 7i32; +pub const DBLITERAL_CUBE_NAME: DBLITERALENUM20 = 21i32; +pub const DBLITERAL_CURSOR_NAME: DBLITERALENUM = 8i32; +pub const DBLITERAL_DIMENSION_NAME: DBLITERALENUM20 = 22i32; +pub const DBLITERAL_ESCAPE_PERCENT: DBLITERALENUM = 9i32; +pub const DBLITERAL_ESCAPE_PERCENT_SUFFIX: DBLITERALENUM21 = 29i32; +pub const DBLITERAL_ESCAPE_UNDERSCORE: DBLITERALENUM = 10i32; +pub const DBLITERAL_ESCAPE_UNDERSCORE_SUFFIX: DBLITERALENUM21 = 30i32; +pub const DBLITERAL_HIERARCHY_NAME: DBLITERALENUM20 = 23i32; +pub const DBLITERAL_INDEX_NAME: DBLITERALENUM = 11i32; +pub const DBLITERAL_INVALID: DBLITERALENUM = 0i32; +pub const DBLITERAL_LEVEL_NAME: DBLITERALENUM20 = 24i32; +pub const DBLITERAL_LIKE_PERCENT: DBLITERALENUM = 12i32; +pub const DBLITERAL_LIKE_UNDERSCORE: DBLITERALENUM = 13i32; +pub const DBLITERAL_MEMBER_NAME: DBLITERALENUM20 = 25i32; +pub const DBLITERAL_PROCEDURE_NAME: DBLITERALENUM = 14i32; +pub const DBLITERAL_PROPERTY_NAME: DBLITERALENUM20 = 26i32; +pub const DBLITERAL_QUOTE: DBLITERALENUM = 15i32; +pub const DBLITERAL_QUOTE_SUFFIX: DBLITERALENUM20 = 28i32; +pub const DBLITERAL_SCHEMA_NAME: DBLITERALENUM = 16i32; +pub const DBLITERAL_SCHEMA_SEPARATOR: DBLITERALENUM20 = 27i32; +pub const DBLITERAL_TABLE_NAME: DBLITERALENUM = 17i32; +pub const DBLITERAL_TEXT_COMMAND: DBLITERALENUM = 18i32; +pub const DBLITERAL_USER_NAME: DBLITERALENUM = 19i32; +pub const DBLITERAL_VIEW_NAME: DBLITERALENUM = 20i32; +pub const DBMATCHTYPE_FULL: DBMATCHTYPEENUM = 0i32; +pub const DBMATCHTYPE_NONE: DBMATCHTYPEENUM = 1i32; +pub const DBMATCHTYPE_PARTIAL: DBMATCHTYPEENUM = 2i32; +pub const DBMAXCHAR: u32 = 8001u32; +pub const DBMEMOWNER_CLIENTOWNED: DBMEMOWNERENUM = 0i32; +pub const DBMEMOWNER_PROVIDEROWNED: DBMEMOWNERENUM = 1i32; +pub const DBMOVE_ALLOW_EMULATION: DBMOVEFLAGSENUM = 1024i32; +pub const DBMOVE_ASYNC: DBMOVEFLAGSENUM = 256i32; +pub const DBMOVE_ATOMIC: DBMOVEFLAGSENUM = 4096i32; +pub const DBMOVE_DONT_UPDATE_LINKS: DBMOVEFLAGSENUM = 512i32; +pub const DBMOVE_REPLACE_EXISTING: DBMOVEFLAGSENUM = 1i32; +pub const DBPARAMFLAGS_ISINPUT: DBPARAMFLAGSENUM = 1i32; +pub const DBPARAMFLAGS_ISLONG: DBPARAMFLAGSENUM = 128i32; +pub const DBPARAMFLAGS_ISNULLABLE: DBPARAMFLAGSENUM = 64i32; +pub const DBPARAMFLAGS_ISOUTPUT: DBPARAMFLAGSENUM = 2i32; +pub const DBPARAMFLAGS_ISSIGNED: DBPARAMFLAGSENUM = 16i32; +pub const DBPARAMFLAGS_SCALEISNEGATIVE: DBPARAMFLAGSENUM20 = 256i32; +pub const DBPARAMIO_INPUT: DBPARAMIOENUM = 1i32; +pub const DBPARAMIO_NOTPARAM: DBPARAMIOENUM = 0i32; +pub const DBPARAMIO_OUTPUT: DBPARAMIOENUM = 2i32; +pub const DBPARAMTYPE_INPUT: u32 = 1u32; +pub const DBPARAMTYPE_INPUTOUTPUT: u32 = 2u32; +pub const DBPARAMTYPE_OUTPUT: u32 = 3u32; +pub const DBPARAMTYPE_RETURNVALUE: u32 = 4u32; +pub const DBPART_INVALID: DBPARTENUM = 0i32; +pub const DBPART_LENGTH: DBPARTENUM = 2i32; +pub const DBPART_STATUS: DBPARTENUM = 4i32; +pub const DBPART_VALUE: DBPARTENUM = 1i32; +pub const DBPENDINGSTATUS_CHANGED: DBPENDINGSTATUSENUM = 2i32; +pub const DBPENDINGSTATUS_DELETED: DBPENDINGSTATUSENUM = 4i32; +pub const DBPENDINGSTATUS_INVALIDROW: DBPENDINGSTATUSENUM = 16i32; +pub const DBPENDINGSTATUS_NEW: DBPENDINGSTATUSENUM = 1i32; +pub const DBPENDINGSTATUS_UNCHANGED: DBPENDINGSTATUSENUM = 8i32; +pub const DBPOSITION_BOF: DBPOSITIONFLAGSENUM = 2i32; +pub const DBPOSITION_EOF: DBPOSITIONFLAGSENUM = 3i32; +pub const DBPOSITION_NOROW: DBPOSITIONFLAGSENUM = 1i32; +pub const DBPOSITION_OK: DBPOSITIONFLAGSENUM = 0i32; +pub const DBPROMPTOPTIONS_BROWSEONLY: DBPROMPTOPTIONSENUM = 8i32; +pub const DBPROMPTOPTIONS_DISABLESAVEPASSWORD: DBPROMPTOPTIONSENUM = 32i32; +pub const DBPROMPTOPTIONS_DISABLE_PROVIDER_SELECTION: DBPROMPTOPTIONSENUM = 16i32; +pub const DBPROMPTOPTIONS_NONE: DBPROMPTOPTIONSENUM = 0i32; +pub const DBPROMPTOPTIONS_PROPERTYSHEET: DBPROMPTOPTIONSENUM = 2i32; +pub const DBPROMPTOPTIONS_WIZARDSHEET: DBPROMPTOPTIONSENUM = 1i32; +pub const DBPROMPT_COMPLETE: u32 = 2u32; +pub const DBPROMPT_COMPLETEREQUIRED: u32 = 3u32; +pub const DBPROMPT_NOPROMPT: u32 = 4u32; +pub const DBPROMPT_PROMPT: u32 = 1u32; +pub const DBPROPFLAGS_COLUMN: DBPROPFLAGSENUM = 1i32; +pub const DBPROPFLAGS_COLUMNOK: DBPROPFLAGSENUM = 256i32; +pub const DBPROPFLAGS_DATASOURCE: DBPROPFLAGSENUM = 2i32; +pub const DBPROPFLAGS_DATASOURCECREATE: DBPROPFLAGSENUM = 4i32; +pub const DBPROPFLAGS_DATASOURCEINFO: DBPROPFLAGSENUM = 8i32; +pub const DBPROPFLAGS_DBINIT: DBPROPFLAGSENUM = 16i32; +pub const DBPROPFLAGS_INDEX: DBPROPFLAGSENUM = 32i32; +pub const DBPROPFLAGS_NOTSUPPORTED: DBPROPFLAGSENUM = 0i32; +pub const DBPROPFLAGS_PERSIST: u32 = 8192u32; +pub const DBPROPFLAGS_READ: DBPROPFLAGSENUM = 512i32; +pub const DBPROPFLAGS_REQUIRED: DBPROPFLAGSENUM = 2048i32; +pub const DBPROPFLAGS_ROWSET: DBPROPFLAGSENUM = 64i32; +pub const DBPROPFLAGS_SESSION: DBPROPFLAGSENUM = 4096i32; +pub const DBPROPFLAGS_STREAM: DBPROPFLAGSENUM26 = 32768i32; +pub const DBPROPFLAGS_TABLE: DBPROPFLAGSENUM = 128i32; +pub const DBPROPFLAGS_TRUSTEE: DBPROPFLAGSENUM21 = 8192i32; +pub const DBPROPFLAGS_VIEW: DBPROPFLAGSENUM25 = 16384i32; +pub const DBPROPFLAGS_WRITE: DBPROPFLAGSENUM = 1024i32; +pub const DBPROPOPTIONS_OPTIONAL: DBPROPOPTIONSENUM = 1i32; +pub const DBPROPOPTIONS_REQUIRED: DBPROPOPTIONSENUM = 0i32; +pub const DBPROPOPTIONS_SETIFCHEAP: DBPROPOPTIONSENUM = 1i32; +pub const DBPROPSET_MSDAORA8_ROWSET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f06a375_dd6a_43db_b4e0_1fc121e5e62b); +pub const DBPROPSET_MSDAORA_ROWSET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe8cc4cbd_fdff_11d0_b865_00a0c9081c1d); +pub const DBPROPSET_MSDSDBINIT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x55cb91a8_5c7a_11d1_adad_00c04fc29863); +pub const DBPROPSET_MSDSSESSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xedf17536_afbf_11d1_8847_0000f879f98c); +pub const DBPROPSET_PERSIST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d7839a0_5b8e_11d1_a6b3_00a0c9138c66); +pub const DBPROPSET_PROVIDERCONNATTR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x497c60e4_7123_11cf_b171_00aa0057599e); +pub const DBPROPSET_PROVIDERDATASOURCEINFO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x497c60e0_7123_11cf_b171_00aa0057599e); +pub const DBPROPSET_PROVIDERDBINIT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x497c60e2_7123_11cf_b171_00aa0057599e); +pub const DBPROPSET_PROVIDERROWSET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x497c60e1_7123_11cf_b171_00aa0057599e); +pub const DBPROPSET_PROVIDERSTMTATTR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x497c60e3_7123_11cf_b171_00aa0057599e); +pub const DBPROPSET_SQLSERVERCOLUMN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3b63fb5e_3fbb_11d3_9f29_00c04f8ee9dc); +pub const DBPROPSET_SQLSERVERDATASOURCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x28efaee4_2d2c_11d1_9807_00c04fc2ad98); +pub const DBPROPSET_SQLSERVERDATASOURCEINFO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdf10cb94_35f6_11d2_9c54_00c04f7971d3); +pub const DBPROPSET_SQLSERVERDBINIT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5cf4ca10_ef21_11d0_97e7_00c04fc2ad98); +pub const DBPROPSET_SQLSERVERROWSET: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5cf4ca11_ef21_11d0_97e7_00c04fc2ad98); +pub const DBPROPSET_SQLSERVERSESSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x28efaee5_2d2c_11d1_9807_00c04fc2ad98); +pub const DBPROPSET_SQLSERVERSTREAM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9f79c073_8a6d_4bca_a8a8_c9b79a9b962d); +pub const DBPROPSTATUS_BADCOLUMN: DBPROPSTATUSENUM = 4i32; +pub const DBPROPSTATUS_BADOPTION: DBPROPSTATUSENUM = 3i32; +pub const DBPROPSTATUS_BADVALUE: DBPROPSTATUSENUM = 2i32; +pub const DBPROPSTATUS_CONFLICTING: DBPROPSTATUSENUM = 8i32; +pub const DBPROPSTATUS_NOTALLSETTABLE: DBPROPSTATUSENUM = 5i32; +pub const DBPROPSTATUS_NOTAVAILABLE: DBPROPSTATUSENUM21 = 9i32; +pub const DBPROPSTATUS_NOTSET: DBPROPSTATUSENUM = 7i32; +pub const DBPROPSTATUS_NOTSETTABLE: DBPROPSTATUSENUM = 6i32; +pub const DBPROPSTATUS_NOTSUPPORTED: DBPROPSTATUSENUM = 1i32; +pub const DBPROPSTATUS_OK: DBPROPSTATUSENUM = 0i32; +pub const DBPROPVAL_AO_RANDOM: i32 = 2i32; +pub const DBPROPVAL_AO_SEQUENTIAL: i32 = 0i32; +pub const DBPROPVAL_AO_SEQUENTIALSTORAGEOBJECTS: i32 = 1i32; +pub const DBPROPVAL_ASYNCH_BACKGROUNDPOPULATION: i32 = 8i32; +pub const DBPROPVAL_ASYNCH_INITIALIZE: i32 = 1i32; +pub const DBPROPVAL_ASYNCH_POPULATEONDEMAND: i32 = 32i32; +pub const DBPROPVAL_ASYNCH_PREPOPULATE: i32 = 16i32; +pub const DBPROPVAL_ASYNCH_RANDOMPOPULATION: i32 = 4i32; +pub const DBPROPVAL_ASYNCH_SEQUENTIALPOPULATION: i32 = 2i32; +pub const DBPROPVAL_BD_INTRANSACTION: i32 = 1i32; +pub const DBPROPVAL_BD_REORGANIZATION: i32 = 3i32; +pub const DBPROPVAL_BD_ROWSET: i32 = 0i32; +pub const DBPROPVAL_BD_XTRANSACTION: i32 = 2i32; +pub const DBPROPVAL_BI_CROSSROWSET: i32 = 1i32; +pub const DBPROPVAL_BMK_KEY: i32 = 2i32; +pub const DBPROPVAL_BMK_NUMERIC: i32 = 1i32; +pub const DBPROPVAL_BO_NOINDEXUPDATE: i32 = 1i32; +pub const DBPROPVAL_BO_NOLOG: i32 = 0i32; +pub const DBPROPVAL_BO_REFINTEGRITY: i32 = 2i32; +pub const DBPROPVAL_CB_DELETE: i32 = 1i32; +pub const DBPROPVAL_CB_NON_NULL: i32 = 2i32; +pub const DBPROPVAL_CB_NULL: i32 = 1i32; +pub const DBPROPVAL_CB_PRESERVE: i32 = 2i32; +pub const DBPROPVAL_CD_NOTNULL: i32 = 1i32; +pub const DBPROPVAL_CL_END: i32 = 2i32; +pub const DBPROPVAL_CL_START: i32 = 1i32; +pub const DBPROPVAL_CM_TRANSACTIONS: i32 = 1i32; +pub const DBPROPVAL_CO_BEGINSWITH: i32 = 32i32; +pub const DBPROPVAL_CO_CASEINSENSITIVE: i32 = 8i32; +pub const DBPROPVAL_CO_CASESENSITIVE: i32 = 4i32; +pub const DBPROPVAL_CO_CONTAINS: i32 = 16i32; +pub const DBPROPVAL_CO_EQUALITY: i32 = 1i32; +pub const DBPROPVAL_CO_STRING: i32 = 2i32; +pub const DBPROPVAL_CS_COMMUNICATIONFAILURE: i32 = 2i32; +pub const DBPROPVAL_CS_INITIALIZED: i32 = 1i32; +pub const DBPROPVAL_CS_UNINITIALIZED: i32 = 0i32; +pub const DBPROPVAL_CU_DML_STATEMENTS: i32 = 1i32; +pub const DBPROPVAL_CU_INDEX_DEFINITION: i32 = 4i32; +pub const DBPROPVAL_CU_PRIVILEGE_DEFINITION: i32 = 8i32; +pub const DBPROPVAL_CU_TABLE_DEFINITION: i32 = 2i32; +pub const DBPROPVAL_DF_INITIALLY_DEFERRED: u32 = 1u32; +pub const DBPROPVAL_DF_INITIALLY_IMMEDIATE: u32 = 2u32; +pub const DBPROPVAL_DF_NOT_DEFERRABLE: u32 = 3u32; +pub const DBPROPVAL_DST_DOCSOURCE: i32 = 4i32; +pub const DBPROPVAL_DST_MDP: i32 = 2i32; +pub const DBPROPVAL_DST_TDP: i32 = 1i32; +pub const DBPROPVAL_DST_TDPANDMDP: i32 = 3i32; +pub const DBPROPVAL_FU_CATALOG: i32 = 8i32; +pub const DBPROPVAL_FU_COLUMN: i32 = 2i32; +pub const DBPROPVAL_FU_NOT_SUPPORTED: i32 = 1i32; +pub const DBPROPVAL_FU_TABLE: i32 = 4i32; +pub const DBPROPVAL_GB_COLLATE: i32 = 16i32; +pub const DBPROPVAL_GB_CONTAINS_SELECT: i32 = 4i32; +pub const DBPROPVAL_GB_EQUALS_SELECT: i32 = 2i32; +pub const DBPROPVAL_GB_NOT_SUPPORTED: i32 = 1i32; +pub const DBPROPVAL_GB_NO_RELATION: i32 = 8i32; +pub const DBPROPVAL_GU_NOTSUPPORTED: i32 = 1i32; +pub const DBPROPVAL_GU_SUFFIX: i32 = 2i32; +pub const DBPROPVAL_HT_DIFFERENT_CATALOGS: i32 = 1i32; +pub const DBPROPVAL_HT_DIFFERENT_PROVIDERS: i32 = 2i32; +pub const DBPROPVAL_IC_LOWER: i32 = 2i32; +pub const DBPROPVAL_IC_MIXED: i32 = 8i32; +pub const DBPROPVAL_IC_SENSITIVE: i32 = 4i32; +pub const DBPROPVAL_IC_UPPER: i32 = 1i32; +pub const DBPROPVAL_IN_ALLOWNULL: i32 = 0i32; +pub const DBPROPVAL_IN_DISALLOWNULL: i32 = 1i32; +pub const DBPROPVAL_IN_IGNOREANYNULL: i32 = 4i32; +pub const DBPROPVAL_IN_IGNORENULL: i32 = 2i32; +pub const DBPROPVAL_IT_BTREE: i32 = 1i32; +pub const DBPROPVAL_IT_CONTENT: i32 = 3i32; +pub const DBPROPVAL_IT_HASH: i32 = 2i32; +pub const DBPROPVAL_IT_OTHER: i32 = 4i32; +pub const DBPROPVAL_LM_INTENT: i32 = 4i32; +pub const DBPROPVAL_LM_NONE: i32 = 1i32; +pub const DBPROPVAL_LM_READ: i32 = 2i32; +pub const DBPROPVAL_LM_RITE: i32 = 8i32; +pub const DBPROPVAL_LM_SINGLEROW: i32 = 2i32; +pub const DBPROPVAL_MR_CONCURRENT: i32 = 2i32; +pub const DBPROPVAL_MR_NOTSUPPORTED: i32 = 0i32; +pub const DBPROPVAL_MR_SUPPORTED: i32 = 1i32; +pub const DBPROPVAL_NC_END: i32 = 1i32; +pub const DBPROPVAL_NC_HIGH: i32 = 2i32; +pub const DBPROPVAL_NC_LOW: i32 = 4i32; +pub const DBPROPVAL_NC_START: i32 = 8i32; +pub const DBPROPVAL_NP_ABOUTTODO: i32 = 2i32; +pub const DBPROPVAL_NP_DIDEVENT: i32 = 16i32; +pub const DBPROPVAL_NP_FAILEDTODO: i32 = 8i32; +pub const DBPROPVAL_NP_OKTODO: i32 = 1i32; +pub const DBPROPVAL_NP_SYNCHAFTER: i32 = 4i32; +pub const DBPROPVAL_NT_MULTIPLEROWS: i32 = 2i32; +pub const DBPROPVAL_NT_SINGLEROW: i32 = 1i32; +pub const DBPROPVAL_OA_ATEXECUTE: i32 = 2i32; +pub const DBPROPVAL_OA_ATROWRELEASE: i32 = 4i32; +pub const DBPROPVAL_OA_NOTSUPPORTED: i32 = 1i32; +pub const DBPROPVAL_OO_BLOB: i32 = 1i32; +pub const DBPROPVAL_OO_DIRECTBIND: i32 = 16i32; +pub const DBPROPVAL_OO_IPERSIST: i32 = 2i32; +pub const DBPROPVAL_OO_ROWOBJECT: i32 = 4i32; +pub const DBPROPVAL_OO_SCOPED: i32 = 8i32; +pub const DBPROPVAL_OO_SINGLETON: i32 = 32i32; +pub const DBPROPVAL_OP_EQUAL: i32 = 1i32; +pub const DBPROPVAL_OP_RELATIVE: i32 = 2i32; +pub const DBPROPVAL_OP_STRING: i32 = 4i32; +pub const DBPROPVAL_ORS_HISTOGRAM: i32 = 8i32; +pub const DBPROPVAL_ORS_INDEX: i32 = 1i32; +pub const DBPROPVAL_ORS_INTEGRATEDINDEX: i32 = 2i32; +pub const DBPROPVAL_ORS_STOREDPROC: i32 = 4i32; +pub const DBPROPVAL_ORS_TABLE: i32 = 0i32; +pub const DBPROPVAL_OS_AGR_AFTERSESSION: i32 = 8i32; +pub const DBPROPVAL_OS_CLIENTCURSOR: i32 = 4i32; +pub const DBPROPVAL_OS_DISABLEALL: i32 = 0i32; +pub const DBPROPVAL_OS_ENABLEALL: i32 = -1i32; +pub const DBPROPVAL_OS_RESOURCEPOOLING: i32 = 1i32; +pub const DBPROPVAL_OS_TXNENLISTMENT: i32 = 2i32; +pub const DBPROPVAL_PERSIST_ADTG: u32 = 0u32; +pub const DBPROPVAL_PERSIST_XML: u32 = 1u32; +pub const DBPROPVAL_PT_GUID: i32 = 8i32; +pub const DBPROPVAL_PT_GUID_NAME: i32 = 1i32; +pub const DBPROPVAL_PT_GUID_PROPID: i32 = 2i32; +pub const DBPROPVAL_PT_NAME: i32 = 4i32; +pub const DBPROPVAL_PT_PGUID_NAME: i32 = 32i32; +pub const DBPROPVAL_PT_PGUID_PROPID: i32 = 64i32; +pub const DBPROPVAL_PT_PROPID: i32 = 16i32; +pub const DBPROPVAL_RD_RESETALL: i32 = -1i32; +pub const DBPROPVAL_RT_APTMTTHREAD: i32 = 2i32; +pub const DBPROPVAL_RT_FREETHREAD: i32 = 1i32; +pub const DBPROPVAL_RT_SINGLETHREAD: i32 = 4i32; +pub const DBPROPVAL_SQL_ANSI89_IEF: i32 = 8i32; +pub const DBPROPVAL_SQL_ANSI92_ENTRY: i32 = 16i32; +pub const DBPROPVAL_SQL_ANSI92_FULL: i32 = 128i32; +pub const DBPROPVAL_SQL_ANSI92_INTERMEDIATE: i32 = 64i32; +pub const DBPROPVAL_SQL_ESCAPECLAUSES: i32 = 256i32; +pub const DBPROPVAL_SQL_FIPS_TRANSITIONAL: i32 = 32i32; +pub const DBPROPVAL_SQL_NONE: i32 = 0i32; +pub const DBPROPVAL_SQL_ODBC_CORE: i32 = 2i32; +pub const DBPROPVAL_SQL_ODBC_EXTENDED: i32 = 4i32; +pub const DBPROPVAL_SQL_ODBC_MINIMUM: i32 = 1i32; +pub const DBPROPVAL_SQL_SUBMINIMUM: i32 = 512i32; +pub const DBPROPVAL_SQ_COMPARISON: i32 = 2i32; +pub const DBPROPVAL_SQ_CORRELATEDSUBQUERIES: i32 = 1i32; +pub const DBPROPVAL_SQ_EXISTS: i32 = 4i32; +pub const DBPROPVAL_SQ_IN: i32 = 8i32; +pub const DBPROPVAL_SQ_QUANTIFIED: i32 = 16i32; +pub const DBPROPVAL_SQ_TABLE: i32 = 32i32; +pub const DBPROPVAL_SS_ILOCKBYTES: i32 = 8i32; +pub const DBPROPVAL_SS_ISEQUENTIALSTREAM: i32 = 1i32; +pub const DBPROPVAL_SS_ISTORAGE: i32 = 4i32; +pub const DBPROPVAL_SS_ISTREAM: i32 = 2i32; +pub const DBPROPVAL_STGM_CONVERT: u32 = 262144u32; +pub const DBPROPVAL_STGM_DELETEONRELEASE: u32 = 2097152u32; +pub const DBPROPVAL_STGM_DIRECT: u32 = 65536u32; +pub const DBPROPVAL_STGM_FAILIFTHERE: u32 = 524288u32; +pub const DBPROPVAL_STGM_PRIORITY: u32 = 1048576u32; +pub const DBPROPVAL_STGM_TRANSACTED: u32 = 131072u32; +pub const DBPROPVAL_SU_DML_STATEMENTS: i32 = 1i32; +pub const DBPROPVAL_SU_INDEX_DEFINITION: i32 = 4i32; +pub const DBPROPVAL_SU_PRIVILEGE_DEFINITION: i32 = 8i32; +pub const DBPROPVAL_SU_TABLE_DEFINITION: i32 = 2i32; +pub const DBPROPVAL_TC_ALL: i32 = 8i32; +pub const DBPROPVAL_TC_DDL_COMMIT: i32 = 2i32; +pub const DBPROPVAL_TC_DDL_IGNORE: i32 = 4i32; +pub const DBPROPVAL_TC_DDL_LOCK: i32 = 16i32; +pub const DBPROPVAL_TC_DML: i32 = 1i32; +pub const DBPROPVAL_TC_NONE: i32 = 0i32; +pub const DBPROPVAL_TI_BROWSE: i32 = 256i32; +pub const DBPROPVAL_TI_CHAOS: i32 = 16i32; +pub const DBPROPVAL_TI_CURSORSTABILITY: i32 = 4096i32; +pub const DBPROPVAL_TI_ISOLATED: i32 = 1048576i32; +pub const DBPROPVAL_TI_READCOMMITTED: i32 = 4096i32; +pub const DBPROPVAL_TI_READUNCOMMITTED: i32 = 256i32; +pub const DBPROPVAL_TI_REPEATABLEREAD: i32 = 65536i32; +pub const DBPROPVAL_TI_SERIALIZABLE: i32 = 1048576i32; +pub const DBPROPVAL_TR_ABORT: i32 = 16i32; +pub const DBPROPVAL_TR_ABORT_DC: i32 = 8i32; +pub const DBPROPVAL_TR_ABORT_NO: i32 = 32i32; +pub const DBPROPVAL_TR_BOTH: i32 = 128i32; +pub const DBPROPVAL_TR_COMMIT: i32 = 2i32; +pub const DBPROPVAL_TR_COMMIT_DC: i32 = 1i32; +pub const DBPROPVAL_TR_COMMIT_NO: i32 = 4i32; +pub const DBPROPVAL_TR_DONTCARE: i32 = 64i32; +pub const DBPROPVAL_TR_NONE: i32 = 256i32; +pub const DBPROPVAL_TR_OPTIMISTIC: i32 = 512i32; +pub const DBPROPVAL_TS_CARDINALITY: i32 = 1i32; +pub const DBPROPVAL_TS_HISTOGRAM: i32 = 2i32; +pub const DBPROPVAL_UP_CHANGE: i32 = 1i32; +pub const DBPROPVAL_UP_DELETE: i32 = 2i32; +pub const DBPROPVAL_UP_INSERT: i32 = 4i32; +pub const DBPROP_ABORTPRESERVE: DBPROPENUM = 2i32; +pub const DBPROP_ACCESSORDER: DBPROPENUM20 = 231i32; +pub const DBPROP_ACTIVESESSIONS: DBPROPENUM = 3i32; +pub const DBPROP_ALTERCOLUMN: DBPROPENUM20 = 245i32; +pub const DBPROP_APPENDONLY: DBPROPENUM = 187i32; +pub const DBPROP_ASYNCTXNABORT: DBPROPENUM = 168i32; +pub const DBPROP_ASYNCTXNCOMMIT: DBPROPENUM = 4i32; +pub const DBPROP_AUTH_CACHE_AUTHINFO: DBPROPENUM = 5i32; +pub const DBPROP_AUTH_ENCRYPT_PASSWORD: DBPROPENUM = 6i32; +pub const DBPROP_AUTH_INTEGRATED: DBPROPENUM = 7i32; +pub const DBPROP_AUTH_MASK_PASSWORD: DBPROPENUM = 8i32; +pub const DBPROP_AUTH_PASSWORD: DBPROPENUM = 9i32; +pub const DBPROP_AUTH_PERSIST_ENCRYPTED: DBPROPENUM = 10i32; +pub const DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO: DBPROPENUM = 11i32; +pub const DBPROP_AUTH_USERID: DBPROPENUM = 12i32; +pub const DBPROP_BLOCKINGSTORAGEOBJECTS: DBPROPENUM = 13i32; +pub const DBPROP_BOOKMARKINFO: DBPROPENUM20 = 232i32; +pub const DBPROP_BOOKMARKS: DBPROPENUM = 14i32; +pub const DBPROP_BOOKMARKSKIPPED: DBPROPENUM = 15i32; +pub const DBPROP_BOOKMARKTYPE: DBPROPENUM = 16i32; +pub const DBPROP_BYREFACCESSORS: DBPROPENUM = 120i32; +pub const DBPROP_CACHEDEFERRED: DBPROPENUM = 17i32; +pub const DBPROP_CANFETCHBACKWARDS: DBPROPENUM = 18i32; +pub const DBPROP_CANHOLDROWS: DBPROPENUM = 19i32; +pub const DBPROP_CANSCROLLBACKWARDS: DBPROPENUM = 21i32; +pub const DBPROP_CATALOGLOCATION: DBPROPENUM = 22i32; +pub const DBPROP_CATALOGTERM: DBPROPENUM = 23i32; +pub const DBPROP_CATALOGUSAGE: DBPROPENUM = 24i32; +pub const DBPROP_CHANGEINSERTEDROWS: DBPROPENUM = 188i32; +pub const DBPROP_CLIENTCURSOR: DBPROPENUM20 = 260i32; +pub const DBPROP_COLUMNDEFINITION: DBPROPENUM = 32i32; +pub const DBPROP_COLUMNLCID: DBPROPENUM20 = 246i32; +pub const DBPROP_COLUMNRESTRICT: DBPROPENUM = 33i32; +pub const DBPROP_COL_AUTOINCREMENT: DBPROPENUM = 26i32; +pub const DBPROP_COL_DEFAULT: DBPROPENUM = 27i32; +pub const DBPROP_COL_DESCRIPTION: DBPROPENUM = 28i32; +pub const DBPROP_COL_FIXEDLENGTH: DBPROPENUM = 167i32; +pub const DBPROP_COL_INCREMENT: DBPROPENUM25 = 283i32; +pub const DBPROP_COL_ISLONG: DBPROPENUM21 = 281i32; +pub const DBPROP_COL_NULLABLE: DBPROPENUM = 29i32; +pub const DBPROP_COL_PRIMARYKEY: DBPROPENUM = 30i32; +pub const DBPROP_COL_SEED: DBPROPENUM25 = 282i32; +pub const DBPROP_COL_UNIQUE: DBPROPENUM = 31i32; +pub const DBPROP_COMMANDTIMEOUT: DBPROPENUM = 34i32; +pub const DBPROP_COMMITPRESERVE: DBPROPENUM = 35i32; +pub const DBPROP_COMSERVICES: DBPROPENUM25 = 285i32; +pub const DBPROP_CONCATNULLBEHAVIOR: DBPROPENUM = 36i32; +pub const DBPROP_CONNECTIONSTATUS: DBPROPENUM20 = 244i32; +pub const DBPROP_CURRENTCATALOG: DBPROPENUM = 37i32; +pub const DBPROP_DATASOURCENAME: DBPROPENUM = 38i32; +pub const DBPROP_DATASOURCEREADONLY: DBPROPENUM = 39i32; +pub const DBPROP_DATASOURCE_TYPE: DBPROPENUM20 = 251i32; +pub const DBPROP_DBMSNAME: DBPROPENUM = 40i32; +pub const DBPROP_DBMSVER: DBPROPENUM = 41i32; +pub const DBPROP_DEFERRED: DBPROPENUM = 42i32; +pub const DBPROP_DELAYSTORAGEOBJECTS: DBPROPENUM = 43i32; +pub const DBPROP_DSOTHREADMODEL: DBPROPENUM = 169i32; +pub const DBPROP_FILTERCOMPAREOPS: DBPROPENUM15 = 209i32; +pub const DBPROP_FILTEROPS: DBPROPENUMDEPRECATED = 208i32; +pub const DBPROP_FINDCOMPAREOPS: DBPROPENUM15 = 210i32; +pub const DBPROP_GENERATEURL: DBPROPENUM21 = 273i32; +pub const DBPROP_GROUPBY: DBPROPENUM = 44i32; +pub const DBPROP_HCHAPTER: u32 = 4u32; +pub const DBPROP_HETEROGENEOUSTABLES: DBPROPENUM = 45i32; +pub const DBPROP_HIDDENCOLUMNS: DBPROPENUM20 = 258i32; +pub const DBPROP_IAccessor: DBPROPENUM = 121i32; +pub const DBPROP_IBindResource: DBPROPENUM21 = 268i32; +pub const DBPROP_IChapteredRowset: DBPROPENUM15 = 202i32; +pub const DBPROP_IColumnsInfo: DBPROPENUM = 122i32; +pub const DBPROP_IColumnsInfo2: DBPROPENUM21 = 275i32; +pub const DBPROP_IColumnsRowset: DBPROPENUM = 123i32; +pub const DBPROP_ICommandCost: DBPROPENUM25_DEPRECATED = 141i32; +pub const DBPROP_ICommandTree: DBPROPENUM25_DEPRECATED = 142i32; +pub const DBPROP_ICommandValidate: DBPROPENUM25_DEPRECATED = 143i32; +pub const DBPROP_IConnectionPointContainer: DBPROPENUM = 124i32; +pub const DBPROP_IConvertType: DBPROPENUM = 194i32; +pub const DBPROP_ICreateRow: DBPROPENUM21 = 269i32; +pub const DBPROP_IDBAsynchStatus: DBPROPENUM15 = 203i32; +pub const DBPROP_IDBBinderProperties: DBPROPENUM21 = 274i32; +pub const DBPROP_IDBSchemaCommand: DBPROPENUM25_DEPRECATED = 144i32; +pub const DBPROP_IDENTIFIERCASE: DBPROPENUM = 46i32; +pub const DBPROP_IGetRow: DBPROPENUM21 = 266i32; +pub const DBPROP_IGetSession: DBPROPENUM21 = 277i32; +pub const DBPROP_IGetSourceRow: DBPROPENUM21 = 278i32; +pub const DBPROP_ILockBytes: DBPROPENUM = 136i32; +pub const DBPROP_IMMOBILEROWS: DBPROPENUM = 47i32; +pub const DBPROP_IMultipleResults: DBPROPENUM20 = 217i32; +pub const DBPROP_INDEX_AUTOUPDATE: DBPROPENUM = 48i32; +pub const DBPROP_INDEX_CLUSTERED: DBPROPENUM = 49i32; +pub const DBPROP_INDEX_FILLFACTOR: DBPROPENUM = 50i32; +pub const DBPROP_INDEX_INITIALSIZE: DBPROPENUM = 51i32; +pub const DBPROP_INDEX_NULLCOLLATION: DBPROPENUM = 52i32; +pub const DBPROP_INDEX_NULLS: DBPROPENUM = 53i32; +pub const DBPROP_INDEX_PRIMARYKEY: DBPROPENUM = 54i32; +pub const DBPROP_INDEX_SORTBOOKMARKS: DBPROPENUM = 55i32; +pub const DBPROP_INDEX_TEMPINDEX: DBPROPENUM = 163i32; +pub const DBPROP_INDEX_TYPE: DBPROPENUM = 56i32; +pub const DBPROP_INDEX_UNIQUE: DBPROPENUM = 57i32; +pub const DBPROP_INIT_ASYNCH: DBPROPENUM15 = 200i32; +pub const DBPROP_INIT_BINDFLAGS: DBPROPENUM21 = 270i32; +pub const DBPROP_INIT_CATALOG: DBPROPENUM20 = 233i32; +pub const DBPROP_INIT_DATASOURCE: DBPROPENUM = 59i32; +pub const DBPROP_INIT_GENERALTIMEOUT: DBPROPENUM25 = 284i32; +pub const DBPROP_INIT_HWND: DBPROPENUM = 60i32; +pub const DBPROP_INIT_IMPERSONATION_LEVEL: DBPROPENUM = 61i32; +pub const DBPROP_INIT_LCID: DBPROPENUM = 186i32; +pub const DBPROP_INIT_LOCATION: DBPROPENUM = 62i32; +pub const DBPROP_INIT_LOCKOWNER: DBPROPENUM21 = 271i32; +pub const DBPROP_INIT_MODE: DBPROPENUM = 63i32; +pub const DBPROP_INIT_OLEDBSERVICES: DBPROPENUM20 = 248i32; +pub const DBPROP_INIT_PROMPT: DBPROPENUM = 64i32; +pub const DBPROP_INIT_PROTECTION_LEVEL: DBPROPENUM = 65i32; +pub const DBPROP_INIT_PROVIDERSTRING: DBPROPENUM = 160i32; +pub const DBPROP_INIT_TIMEOUT: DBPROPENUM = 66i32; +pub const DBPROP_INTERLEAVEDROWS: u32 = 8u32; +pub const DBPROP_IParentRowset: DBPROPENUM20 = 257i32; +pub const DBPROP_IProvideMoniker: DBPROPENUM25_DEPRECATED = 125i32; +pub const DBPROP_IQuery: DBPROPENUM25_DEPRECATED = 146i32; +pub const DBPROP_IReadData: DBPROPENUM25_DEPRECATED = 147i32; +pub const DBPROP_IRegisterProvider: DBPROPENUM21 = 276i32; +pub const DBPROP_IRow: DBPROPENUM21 = 263i32; +pub const DBPROP_IRowChange: DBPROPENUM21 = 264i32; +pub const DBPROP_IRowSchemaChange: DBPROPENUM21 = 265i32; +pub const DBPROP_IRowset: DBPROPENUM = 126i32; +pub const DBPROP_IRowsetAsynch: DBPROPENUM25_DEPRECATED = 148i32; +pub const DBPROP_IRowsetBookmark: DBPROPENUM26 = 292i32; +pub const DBPROP_IRowsetChange: DBPROPENUM = 127i32; +pub const DBPROP_IRowsetCopyRows: DBPROPENUM25_DEPRECATED = 149i32; +pub const DBPROP_IRowsetCurrentIndex: DBPROPENUM21 = 279i32; +pub const DBPROP_IRowsetExactScroll: DBPROPENUMDEPRECATED = 154i32; +pub const DBPROP_IRowsetFind: DBPROPENUM15 = 204i32; +pub const DBPROP_IRowsetIdentity: DBPROPENUM = 128i32; +pub const DBPROP_IRowsetIndex: DBPROPENUM = 159i32; +pub const DBPROP_IRowsetInfo: DBPROPENUM = 129i32; +pub const DBPROP_IRowsetKeys: DBPROPENUM25_DEPRECATED = 151i32; +pub const DBPROP_IRowsetLocate: DBPROPENUM = 130i32; +pub const DBPROP_IRowsetNewRowAfter: DBPROPENUM25_DEPRECATED = 152i32; +pub const DBPROP_IRowsetNextRowset: DBPROPENUM25_DEPRECATED = 153i32; +pub const DBPROP_IRowsetRefresh: DBPROPENUM20 = 249i32; +pub const DBPROP_IRowsetResynch: DBPROPENUM = 132i32; +pub const DBPROP_IRowsetScroll: DBPROPENUM = 133i32; +pub const DBPROP_IRowsetUpdate: DBPROPENUM = 134i32; +pub const DBPROP_IRowsetView: DBPROPENUM15 = 212i32; +pub const DBPROP_IRowsetWatchAll: DBPROPENUM25_DEPRECATED = 155i32; +pub const DBPROP_IRowsetWatchNotify: DBPROPENUM25_DEPRECATED = 156i32; +pub const DBPROP_IRowsetWatchRegion: DBPROPENUM25_DEPRECATED = 157i32; +pub const DBPROP_IRowsetWithParameters: DBPROPENUM25_DEPRECATED = 158i32; +pub const DBPROP_IScopedOperations: DBPROPENUM21 = 267i32; +pub const DBPROP_ISequentialStream: DBPROPENUM = 137i32; +pub const DBPROP_IStorage: DBPROPENUM = 138i32; +pub const DBPROP_IStream: DBPROPENUM = 139i32; +pub const DBPROP_ISupportErrorInfo: DBPROPENUM = 135i32; +pub const DBPROP_IViewChapter: DBPROPENUM15 = 213i32; +pub const DBPROP_IViewFilter: DBPROPENUM15 = 214i32; +pub const DBPROP_IViewRowset: DBPROPENUM15 = 215i32; +pub const DBPROP_IViewSort: DBPROPENUM15 = 216i32; +pub const DBPROP_LITERALBOOKMARKS: DBPROPENUM = 67i32; +pub const DBPROP_LITERALIDENTITY: DBPROPENUM = 68i32; +pub const DBPROP_LOCKMODE: DBPROPENUM20 = 236i32; +pub const DBPROP_MAINTAINPROPS: u32 = 5u32; +pub const DBPROP_MARSHALLABLE: DBPROPENUMDEPRECATED = 197i32; +pub const DBPROP_MAXINDEXSIZE: DBPROPENUM = 70i32; +pub const DBPROP_MAXOPENCHAPTERS: DBPROPENUM15 = 199i32; +pub const DBPROP_MAXOPENROWS: DBPROPENUM = 71i32; +pub const DBPROP_MAXORSINFILTER: DBPROPENUM15 = 205i32; +pub const DBPROP_MAXPENDINGROWS: DBPROPENUM = 72i32; +pub const DBPROP_MAXROWS: DBPROPENUM = 73i32; +pub const DBPROP_MAXROWSIZE: DBPROPENUM = 74i32; +pub const DBPROP_MAXROWSIZEINCLUDESBLOB: DBPROPENUM = 75i32; +pub const DBPROP_MAXSORTCOLUMNS: DBPROPENUM15 = 206i32; +pub const DBPROP_MAXTABLESINSELECT: DBPROPENUM = 76i32; +pub const DBPROP_MAYWRITECOLUMN: DBPROPENUM = 77i32; +pub const DBPROP_MEMORYUSAGE: DBPROPENUM = 78i32; +pub const DBPROP_MSDAORA8_DETERMINEKEYCOLUMNS: u32 = 2u32; +pub const DBPROP_MSDAORA_DETERMINEKEYCOLUMNS: u32 = 1u32; +pub const DBPROP_MSDS_DBINIT_DATAPROVIDER: MSDSDBINITPROPENUM = 2i32; +pub const DBPROP_MSDS_SESS_UNIQUENAMES: MSDSSESSIONPROPENUM = 2i32; +pub const DBPROP_MULTIPLECONNECTIONS: DBPROPENUM20 = 237i32; +pub const DBPROP_MULTIPLEPARAMSETS: DBPROPENUM = 191i32; +pub const DBPROP_MULTIPLERESULTS: DBPROPENUM = 196i32; +pub const DBPROP_MULTIPLESTORAGEOBJECTS: DBPROPENUM = 80i32; +pub const DBPROP_MULTITABLEUPDATE: DBPROPENUM = 81i32; +pub const DBPROP_NOTIFICATIONGRANULARITY: DBPROPENUM = 198i32; +pub const DBPROP_NOTIFICATIONPHASES: DBPROPENUM = 82i32; +pub const DBPROP_NOTIFYCOLUMNSET: DBPROPENUM = 171i32; +pub const DBPROP_NOTIFYROWDELETE: DBPROPENUM = 173i32; +pub const DBPROP_NOTIFYROWFIRSTCHANGE: DBPROPENUM = 174i32; +pub const DBPROP_NOTIFYROWINSERT: DBPROPENUM = 175i32; +pub const DBPROP_NOTIFYROWRESYNCH: DBPROPENUM = 177i32; +pub const DBPROP_NOTIFYROWSETCHANGED: DBPROPENUM = 211i32; +pub const DBPROP_NOTIFYROWSETFETCHPOSITIONCHANGE: DBPROPENUM = 179i32; +pub const DBPROP_NOTIFYROWSETRELEASE: DBPROPENUM = 178i32; +pub const DBPROP_NOTIFYROWUNDOCHANGE: DBPROPENUM = 180i32; +pub const DBPROP_NOTIFYROWUNDODELETE: DBPROPENUM = 181i32; +pub const DBPROP_NOTIFYROWUNDOINSERT: DBPROPENUM = 182i32; +pub const DBPROP_NOTIFYROWUPDATE: DBPROPENUM = 183i32; +pub const DBPROP_NULLCOLLATION: DBPROPENUM = 83i32; +pub const DBPROP_OLEOBJECTS: DBPROPENUM = 84i32; +pub const DBPROP_OPENROWSETSUPPORT: DBPROPENUM21 = 280i32; +pub const DBPROP_ORDERBYCOLUMNSINSELECT: DBPROPENUM = 85i32; +pub const DBPROP_ORDEREDBOOKMARKS: DBPROPENUM = 86i32; +pub const DBPROP_OTHERINSERT: DBPROPENUM = 87i32; +pub const DBPROP_OTHERUPDATEDELETE: DBPROPENUM = 88i32; +pub const DBPROP_OUTPUTENCODING: DBPROPENUM26 = 287i32; +pub const DBPROP_OUTPUTPARAMETERAVAILABILITY: DBPROPENUM = 184i32; +pub const DBPROP_OUTPUTSTREAM: DBPROPENUM26 = 286i32; +pub const DBPROP_OWNINSERT: DBPROPENUM = 89i32; +pub const DBPROP_OWNUPDATEDELETE: DBPROPENUM = 90i32; +pub const DBPROP_PERSISTENTIDTYPE: DBPROPENUM = 185i32; +pub const DBPROP_PREPAREABORTBEHAVIOR: DBPROPENUM = 91i32; +pub const DBPROP_PREPARECOMMITBEHAVIOR: DBPROPENUM = 92i32; +pub const DBPROP_PROCEDURETERM: DBPROPENUM = 93i32; +pub const DBPROP_PROVIDERFRIENDLYNAME: DBPROPENUM20 = 235i32; +pub const DBPROP_PROVIDERMEMORY: DBPROPENUM20 = 259i32; +pub const DBPROP_PROVIDERNAME: DBPROPENUM = 96i32; +pub const DBPROP_PROVIDEROLEDBVER: DBPROPENUM = 97i32; +pub const DBPROP_PROVIDERVER: DBPROPENUM = 98i32; +pub const DBPROP_PersistFormat: u32 = 2u32; +pub const DBPROP_PersistSchema: u32 = 3u32; +pub const DBPROP_QUICKRESTART: DBPROPENUM = 99i32; +pub const DBPROP_QUOTEDIDENTIFIERCASE: DBPROPENUM = 100i32; +pub const DBPROP_REENTRANTEVENTS: DBPROPENUM = 101i32; +pub const DBPROP_REMOVEDELETED: DBPROPENUM = 102i32; +pub const DBPROP_REPORTMULTIPLECHANGES: DBPROPENUM = 103i32; +pub const DBPROP_RESETDATASOURCE: DBPROPENUM20 = 247i32; +pub const DBPROP_RETURNPENDINGINSERTS: DBPROPENUM = 189i32; +pub const DBPROP_ROWRESTRICT: DBPROPENUM = 104i32; +pub const DBPROP_ROWSETCONVERSIONSONCOMMAND: DBPROPENUM = 192i32; +pub const DBPROP_ROWSET_ASYNCH: DBPROPENUM15 = 201i32; +pub const DBPROP_ROWTHREADMODEL: DBPROPENUM = 105i32; +pub const DBPROP_ROW_BULKOPS: DBPROPENUM20 = 234i32; +pub const DBPROP_SCHEMATERM: DBPROPENUM = 106i32; +pub const DBPROP_SCHEMAUSAGE: DBPROPENUM = 107i32; +pub const DBPROP_SERVERCURSOR: DBPROPENUM = 108i32; +pub const DBPROP_SERVERDATAONINSERT: DBPROPENUM20 = 239i32; +pub const DBPROP_SERVERNAME: DBPROPENUM20 = 250i32; +pub const DBPROP_SESS_AUTOCOMMITISOLEVELS: DBPROPENUM = 190i32; +pub const DBPROP_SKIPROWCOUNTRESULTS: DBPROPENUM26 = 291i32; +pub const DBPROP_SORTONINDEX: DBPROPENUM15 = 207i32; +pub const DBPROP_SQLSUPPORT: DBPROPENUM = 109i32; +pub const DBPROP_STORAGEFLAGS: DBPROPENUM20 = 240i32; +pub const DBPROP_STRONGIDENTITY: DBPROPENUM = 119i32; +pub const DBPROP_STRUCTUREDSTORAGE: DBPROPENUM = 111i32; +pub const DBPROP_SUBQUERIES: DBPROPENUM = 112i32; +pub const DBPROP_SUPPORTEDTXNDDL: DBPROPENUM = 161i32; +pub const DBPROP_SUPPORTEDTXNISOLEVELS: DBPROPENUM = 113i32; +pub const DBPROP_SUPPORTEDTXNISORETAIN: DBPROPENUM = 114i32; +pub const DBPROP_TABLESTATISTICS: DBPROPENUM26 = 288i32; +pub const DBPROP_TABLETERM: DBPROPENUM = 115i32; +pub const DBPROP_TBL_TEMPTABLE: DBPROPENUM = 140i32; +pub const DBPROP_TRANSACTEDOBJECT: DBPROPENUM = 116i32; +pub const DBPROP_TRUSTEE_AUTHENTICATION: DBPROPENUM21 = 242i32; +pub const DBPROP_TRUSTEE_NEWAUTHENTICATION: DBPROPENUM21 = 243i32; +pub const DBPROP_TRUSTEE_USERNAME: DBPROPENUM21 = 241i32; +pub const DBPROP_UNIQUEROWS: DBPROPENUM20 = 238i32; +pub const DBPROP_UPDATABILITY: DBPROPENUM = 117i32; +pub const DBPROP_USERNAME: DBPROPENUM = 118i32; +pub const DBPROP_Unicode: u32 = 6u32; +pub const DBQUERYGUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49691c90_7e17_101a_a91c_08002b2ecda9); +pub const DBRANGE_EXCLUDENULLS: DBRANGEENUM = 4i32; +pub const DBRANGE_EXCLUSIVEEND: DBRANGEENUM = 2i32; +pub const DBRANGE_EXCLUSIVESTART: DBRANGEENUM = 1i32; +pub const DBRANGE_INCLUSIVEEND: DBRANGEENUM = 0i32; +pub const DBRANGE_INCLUSIVESTART: DBRANGEENUM = 0i32; +pub const DBRANGE_MATCH: DBRANGEENUM = 16i32; +pub const DBRANGE_MATCH_N_MASK: DBRANGEENUM20 = 255i32; +pub const DBRANGE_MATCH_N_SHIFT: DBRANGEENUM20 = 24i32; +pub const DBRANGE_PREFIX: DBRANGEENUM = 8i32; +pub const DBREASON_COLUMN_RECALCULATED: DBREASONENUM = 3i32; +pub const DBREASON_COLUMN_SET: DBREASONENUM = 2i32; +pub const DBREASON_ROWPOSITION_CHANGED: DBREASONENUM15 = 15i32; +pub const DBREASON_ROWPOSITION_CHAPTERCHANGED: DBREASONENUM15 = 16i32; +pub const DBREASON_ROWPOSITION_CLEARED: DBREASONENUM15 = 17i32; +pub const DBREASON_ROWSET_CHANGED: DBREASONENUM = 14i32; +pub const DBREASON_ROWSET_FETCHPOSITIONCHANGE: DBREASONENUM = 0i32; +pub const DBREASON_ROWSET_POPULATIONCOMPLETE: DBREASONENUM25 = 20i32; +pub const DBREASON_ROWSET_POPULATIONSTOPPED: DBREASONENUM25 = 21i32; +pub const DBREASON_ROWSET_RELEASE: DBREASONENUM = 1i32; +pub const DBREASON_ROWSET_ROWSADDED: DBREASONENUM25 = 19i32; +pub const DBREASON_ROW_ACTIVATE: DBREASONENUM = 4i32; +pub const DBREASON_ROW_ASYNCHINSERT: DBREASONENUM15 = 18i32; +pub const DBREASON_ROW_DELETE: DBREASONENUM = 6i32; +pub const DBREASON_ROW_FIRSTCHANGE: DBREASONENUM = 7i32; +pub const DBREASON_ROW_INSERT: DBREASONENUM = 8i32; +pub const DBREASON_ROW_RELEASE: DBREASONENUM = 5i32; +pub const DBREASON_ROW_RESYNCH: DBREASONENUM = 9i32; +pub const DBREASON_ROW_UNDOCHANGE: DBREASONENUM = 10i32; +pub const DBREASON_ROW_UNDODELETE: DBREASONENUM = 12i32; +pub const DBREASON_ROW_UNDOINSERT: DBREASONENUM = 11i32; +pub const DBREASON_ROW_UPDATE: DBREASONENUM = 13i32; +pub const DBRESOURCE_CPU: DBRESOURCEKINDENUM = 2i32; +pub const DBRESOURCE_DISK: DBRESOURCEKINDENUM = 4i32; +pub const DBRESOURCE_INVALID: DBRESOURCEKINDENUM = 0i32; +pub const DBRESOURCE_MEMORY: DBRESOURCEKINDENUM = 3i32; +pub const DBRESOURCE_NETWORK: DBRESOURCEKINDENUM = 5i32; +pub const DBRESOURCE_OTHER: DBRESOURCEKINDENUM = 8i32; +pub const DBRESOURCE_RESPONSE: DBRESOURCEKINDENUM = 6i32; +pub const DBRESOURCE_ROWS: DBRESOURCEKINDENUM = 7i32; +pub const DBRESOURCE_TOTAL: DBRESOURCEKINDENUM = 1i32; +pub const DBRESULTFLAG_DEFAULT: DBRESULTFLAGENUM = 0i32; +pub const DBRESULTFLAG_ROW: DBRESULTFLAGENUM = 2i32; +pub const DBRESULTFLAG_ROWSET: DBRESULTFLAGENUM = 1i32; +pub const DBROWCHANGEKIND_COUNT: DBROWCHANGEKINDENUM = 3i32; +pub const DBROWCHANGEKIND_DELETE: DBROWCHANGEKINDENUM = 1i32; +pub const DBROWCHANGEKIND_INSERT: DBROWCHANGEKINDENUM = 0i32; +pub const DBROWCHANGEKIND_UPDATE: DBROWCHANGEKINDENUM = 2i32; +pub const DBROWSTATUS_E_CANCELED: DBROWSTATUSENUM = 4i32; +pub const DBROWSTATUS_E_CANTRELEASE: DBROWSTATUSENUM = 6i32; +pub const DBROWSTATUS_E_CONCURRENCYVIOLATION: DBROWSTATUSENUM = 7i32; +pub const DBROWSTATUS_E_DELETED: DBROWSTATUSENUM = 8i32; +pub const DBROWSTATUS_E_FAIL: DBROWSTATUSENUM = 19i32; +pub const DBROWSTATUS_E_INTEGRITYVIOLATION: DBROWSTATUSENUM = 11i32; +pub const DBROWSTATUS_E_INVALID: DBROWSTATUSENUM = 12i32; +pub const DBROWSTATUS_E_LIMITREACHED: DBROWSTATUSENUM = 17i32; +pub const DBROWSTATUS_E_MAXPENDCHANGESEXCEEDED: DBROWSTATUSENUM = 13i32; +pub const DBROWSTATUS_E_NEWLYINSERTED: DBROWSTATUSENUM = 10i32; +pub const DBROWSTATUS_E_OBJECTOPEN: DBROWSTATUSENUM = 14i32; +pub const DBROWSTATUS_E_OUTOFMEMORY: DBROWSTATUSENUM = 15i32; +pub const DBROWSTATUS_E_PENDINGINSERT: DBROWSTATUSENUM = 9i32; +pub const DBROWSTATUS_E_PERMISSIONDENIED: DBROWSTATUSENUM = 16i32; +pub const DBROWSTATUS_E_SCHEMAVIOLATION: DBROWSTATUSENUM = 18i32; +pub const DBROWSTATUS_S_MULTIPLECHANGES: DBROWSTATUSENUM = 2i32; +pub const DBROWSTATUS_S_NOCHANGE: DBROWSTATUSENUM20 = 20i32; +pub const DBROWSTATUS_S_OK: DBROWSTATUSENUM = 0i32; +pub const DBROWSTATUS_S_PENDINGCHANGES: DBROWSTATUSENUM = 3i32; +pub const DBSCHEMA_LINKEDSERVERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9093caf4_2eac_11d1_9809_00c04fc2ad98); +pub const DBSEEK_AFTER: DBSEEKENUM = 8i32; +pub const DBSEEK_AFTEREQ: DBSEEKENUM = 4i32; +pub const DBSEEK_BEFORE: DBSEEKENUM = 32i32; +pub const DBSEEK_BEFOREEQ: DBSEEKENUM = 16i32; +pub const DBSEEK_FIRSTEQ: DBSEEKENUM = 1i32; +pub const DBSEEK_INVALID: DBSEEKENUM = 0i32; +pub const DBSEEK_LASTEQ: DBSEEKENUM = 2i32; +pub const DBSELFGUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc8b52231_5cf3_11ce_ade5_00aa0044773d); +pub const DBSORT_ASCENDING: DBSORTENUM = 0i32; +pub const DBSORT_DESCENDING: DBSORTENUM = 1i32; +pub const DBSOURCETYPE_BINDER: DBSOURCETYPEENUM25 = 4i32; +pub const DBSOURCETYPE_DATASOURCE: DBSOURCETYPEENUM = 1i32; +pub const DBSOURCETYPE_DATASOURCE_MDP: DBSOURCETYPEENUM20 = 3i32; +pub const DBSOURCETYPE_DATASOURCE_TDP: DBSOURCETYPEENUM20 = 1i32; +pub const DBSOURCETYPE_ENUMERATOR: DBSOURCETYPEENUM = 2i32; +pub const DBSTATUS_E_BADACCESSOR: DBSTATUSENUM = 1i32; +pub const DBSTATUS_E_BADSTATUS: DBSTATUSENUM = 12i32; +pub const DBSTATUS_E_CANCELED: DBSTATUSENUM25 = 27i32; +pub const DBSTATUS_E_CANNOTCOMPLETE: DBSTATUSENUM21 = 20i32; +pub const DBSTATUS_E_CANTCONVERTVALUE: DBSTATUSENUM = 2i32; +pub const DBSTATUS_E_CANTCREATE: DBSTATUSENUM = 7i32; +pub const DBSTATUS_E_DATAOVERFLOW: DBSTATUSENUM = 6i32; +pub const DBSTATUS_E_DOESNOTEXIST: DBSTATUSENUM21 = 16i32; +pub const DBSTATUS_E_INTEGRITYVIOLATION: DBSTATUSENUM = 10i32; +pub const DBSTATUS_E_INVALIDURL: DBSTATUSENUM21 = 17i32; +pub const DBSTATUS_E_NOTCOLLECTION: DBSTATUSENUM25 = 28i32; +pub const DBSTATUS_E_OUTOFSPACE: DBSTATUSENUM21 = 22i32; +pub const DBSTATUS_E_PERMISSIONDENIED: DBSTATUSENUM = 9i32; +pub const DBSTATUS_E_READONLY: DBSTATUSENUM21 = 24i32; +pub const DBSTATUS_E_RESOURCEEXISTS: DBSTATUSENUM21 = 19i32; +pub const DBSTATUS_E_RESOURCELOCKED: DBSTATUSENUM21 = 18i32; +pub const DBSTATUS_E_RESOURCEOUTOFSCOPE: DBSTATUSENUM21 = 25i32; +pub const DBSTATUS_E_SCHEMAVIOLATION: DBSTATUSENUM = 11i32; +pub const DBSTATUS_E_SIGNMISMATCH: DBSTATUSENUM = 5i32; +pub const DBSTATUS_E_UNAVAILABLE: DBSTATUSENUM = 8i32; +pub const DBSTATUS_E_VOLUMENOTFOUND: DBSTATUSENUM21 = 21i32; +pub const DBSTATUS_S_ALREADYEXISTS: DBSTATUSENUM21 = 26i32; +pub const DBSTATUS_S_CANNOTDELETESOURCE: DBSTATUSENUM21 = 23i32; +pub const DBSTATUS_S_DEFAULT: DBSTATUSENUM = 13i32; +pub const DBSTATUS_S_IGNORE: DBSTATUSENUM20 = 15i32; +pub const DBSTATUS_S_ISNULL: DBSTATUSENUM = 3i32; +pub const DBSTATUS_S_OK: DBSTATUSENUM = 0i32; +pub const DBSTATUS_S_ROWSETCOLUMN: DBSTATUSENUM26 = 29i32; +pub const DBSTATUS_S_TRUNCATED: DBSTATUSENUM = 4i32; +pub const DBSTAT_COLUMN_CARDINALITY: DBTABLESTATISTICSTYPE26 = 2i32; +pub const DBSTAT_HISTOGRAM: DBTABLESTATISTICSTYPE26 = 1i32; +pub const DBSTAT_TUPLE_CARDINALITY: DBTABLESTATISTICSTYPE26 = 4i32; +pub const DBTYPE_ARRAY: DBTYPEENUM = 8192i32; +pub const DBTYPE_BOOL: DBTYPEENUM = 11i32; +pub const DBTYPE_BSTR: DBTYPEENUM = 8i32; +pub const DBTYPE_BYREF: DBTYPEENUM = 16384i32; +pub const DBTYPE_BYTES: DBTYPEENUM = 128i32; +pub const DBTYPE_CY: DBTYPEENUM = 6i32; +pub const DBTYPE_DATE: DBTYPEENUM = 7i32; +pub const DBTYPE_DBDATE: DBTYPEENUM = 133i32; +pub const DBTYPE_DBTIME: DBTYPEENUM = 134i32; +pub const DBTYPE_DBTIMESTAMP: DBTYPEENUM = 135i32; +pub const DBTYPE_DECIMAL: DBTYPEENUM = 14i32; +pub const DBTYPE_EMPTY: DBTYPEENUM = 0i32; +pub const DBTYPE_ERROR: DBTYPEENUM = 10i32; +pub const DBTYPE_FILETIME: DBTYPEENUM20 = 64i32; +pub const DBTYPE_GUID: DBTYPEENUM = 72i32; +pub const DBTYPE_HCHAPTER: DBTYPEENUM15 = 136i32; +pub const DBTYPE_I1: DBTYPEENUM = 16i32; +pub const DBTYPE_I2: DBTYPEENUM = 2i32; +pub const DBTYPE_I4: DBTYPEENUM = 3i32; +pub const DBTYPE_I8: DBTYPEENUM = 20i32; +pub const DBTYPE_IDISPATCH: DBTYPEENUM = 9i32; +pub const DBTYPE_IUNKNOWN: DBTYPEENUM = 13i32; +pub const DBTYPE_NULL: DBTYPEENUM = 1i32; +pub const DBTYPE_NUMERIC: DBTYPEENUM = 131i32; +pub const DBTYPE_PROPVARIANT: DBTYPEENUM20 = 138i32; +pub const DBTYPE_R4: DBTYPEENUM = 4i32; +pub const DBTYPE_R8: DBTYPEENUM = 5i32; +pub const DBTYPE_RESERVED: DBTYPEENUM = 32768i32; +pub const DBTYPE_SQLVARIANT: u32 = 144u32; +pub const DBTYPE_STR: DBTYPEENUM = 129i32; +pub const DBTYPE_UDT: DBTYPEENUM = 132i32; +pub const DBTYPE_UI1: DBTYPEENUM = 17i32; +pub const DBTYPE_UI2: DBTYPEENUM = 18i32; +pub const DBTYPE_UI4: DBTYPEENUM = 19i32; +pub const DBTYPE_UI8: DBTYPEENUM = 21i32; +pub const DBTYPE_VARIANT: DBTYPEENUM = 12i32; +pub const DBTYPE_VARNUMERIC: DBTYPEENUM20 = 139i32; +pub const DBTYPE_VECTOR: DBTYPEENUM = 4096i32; +pub const DBTYPE_WSTR: DBTYPEENUM = 130i32; +pub const DBUNIT_BYTE: DBCOSTUNITENUM = 512i32; +pub const DBUNIT_GIGA_BYTE: DBCOSTUNITENUM = 4096i32; +pub const DBUNIT_HOUR: DBCOSTUNITENUM = 256i32; +pub const DBUNIT_INVALID: DBCOSTUNITENUM = 0i32; +pub const DBUNIT_KILO_BYTE: DBCOSTUNITENUM = 1024i32; +pub const DBUNIT_MAXIMUM: DBCOSTUNITENUM = 4i32; +pub const DBUNIT_MEGA_BYTE: DBCOSTUNITENUM = 2048i32; +pub const DBUNIT_MICRO_SECOND: DBCOSTUNITENUM = 16i32; +pub const DBUNIT_MILLI_SECOND: DBCOSTUNITENUM = 32i32; +pub const DBUNIT_MINIMUM: DBCOSTUNITENUM = 8i32; +pub const DBUNIT_MINUTE: DBCOSTUNITENUM = 128i32; +pub const DBUNIT_NUM_LOCKS: DBCOSTUNITENUM = 16384i32; +pub const DBUNIT_NUM_MSGS: DBCOSTUNITENUM = 8192i32; +pub const DBUNIT_NUM_ROWS: DBCOSTUNITENUM = 32768i32; +pub const DBUNIT_OTHER: DBCOSTUNITENUM = 65536i32; +pub const DBUNIT_PERCENT: DBCOSTUNITENUM = 2i32; +pub const DBUNIT_SECOND: DBCOSTUNITENUM = 64i32; +pub const DBUNIT_WEIGHT: DBCOSTUNITENUM = 1i32; +pub const DBUPDELRULE_CASCADE: DBUPDELRULEENUM = 1i32; +pub const DBUPDELRULE_NOACTION: DBUPDELRULEENUM = 0i32; +pub const DBUPDELRULE_SETDEFAULT: DBUPDELRULEENUM = 3i32; +pub const DBUPDELRULE_SETNULL: DBUPDELRULEENUM = 2i32; +pub const DBWATCHMODE_ALL: DBWATCHMODEENUM = 1i32; +pub const DBWATCHMODE_COUNT: DBWATCHMODEENUM = 8i32; +pub const DBWATCHMODE_EXTEND: DBWATCHMODEENUM = 2i32; +pub const DBWATCHMODE_MOVE: DBWATCHMODEENUM = 4i32; +pub const DBWATCHNOTIFY_QUERYDONE: DBWATCHNOTIFYENUM = 2i32; +pub const DBWATCHNOTIFY_QUERYREEXECUTED: DBWATCHNOTIFYENUM = 3i32; +pub const DBWATCHNOTIFY_ROWSCHANGED: DBWATCHNOTIFYENUM = 1i32; +pub const DB_ALL_EXCEPT_LIKE: u32 = 3u32; +pub const DB_BINDFLAGS_COLLECTION: i32 = 16i32; +pub const DB_BINDFLAGS_DELAYFETCHCOLUMNS: i32 = 1i32; +pub const DB_BINDFLAGS_DELAYFETCHSTREAM: i32 = 2i32; +pub const DB_BINDFLAGS_ISSTRUCTUREDDOCUMENT: i32 = 128i32; +pub const DB_BINDFLAGS_OPENIFEXISTS: i32 = 32i32; +pub const DB_BINDFLAGS_OUTPUT: i32 = 8i32; +pub const DB_BINDFLAGS_OVERWRITE: i32 = 64i32; +pub const DB_BINDFLAGS_RECURSIVE: i32 = 4i32; +pub const DB_COLLATION_ASC: u32 = 1u32; +pub const DB_COLLATION_DESC: u32 = 2u32; +pub const DB_COUNTUNAVAILABLE: i32 = -1i32; +pub const DB_E_ABORTLIMITREACHED: ::windows_sys::core::HRESULT = -2147217871i32; +pub const DB_E_ALREADYINITIALIZED: ::windows_sys::core::HRESULT = -2147217838i32; +pub const DB_E_ALTERRESTRICTED: ::windows_sys::core::HRESULT = -2147217763i32; +pub const DB_E_ASYNCNOTSUPPORTED: ::windows_sys::core::HRESULT = -2147217771i32; +pub const DB_E_BADACCESSORFLAGS: ::windows_sys::core::HRESULT = -2147217850i32; +pub const DB_E_BADACCESSORHANDLE: ::windows_sys::core::HRESULT = -2147217920i32; +pub const DB_E_BADACCESSORTYPE: ::windows_sys::core::HRESULT = -2147217845i32; +pub const DB_E_BADBINDINFO: ::windows_sys::core::HRESULT = -2147217912i32; +pub const DB_E_BADBOOKMARK: ::windows_sys::core::HRESULT = -2147217906i32; +pub const DB_E_BADCHAPTER: ::windows_sys::core::HRESULT = -2147217914i32; +pub const DB_E_BADCOLUMNID: ::windows_sys::core::HRESULT = -2147217903i32; +pub const DB_E_BADCOMMANDFLAGS: ::windows_sys::core::HRESULT = -2147217780i32; +pub const DB_E_BADCOMMANDID: ::windows_sys::core::HRESULT = -2147217802i32; +pub const DB_E_BADCOMPAREOP: ::windows_sys::core::HRESULT = -2147217881i32; +pub const DB_E_BADCONSTRAINTFORM: ::windows_sys::core::HRESULT = -2147217800i32; +pub const DB_E_BADCONSTRAINTID: ::windows_sys::core::HRESULT = -2147217781i32; +pub const DB_E_BADCONSTRAINTTYPE: ::windows_sys::core::HRESULT = -2147217801i32; +pub const DB_E_BADCONVERTFLAG: ::windows_sys::core::HRESULT = -2147217828i32; +pub const DB_E_BADCOPY: ::windows_sys::core::HRESULT = -2147217863i32; +pub const DB_E_BADDEFERRABILITY: ::windows_sys::core::HRESULT = -2147217799i32; +pub const DB_E_BADDYNAMICERRORID: ::windows_sys::core::HRESULT = -2147217830i32; +pub const DB_E_BADHRESULT: ::windows_sys::core::HRESULT = -2147217832i32; +pub const DB_E_BADID: i32 = -2147217860i32; +pub const DB_E_BADINDEXID: ::windows_sys::core::HRESULT = -2147217806i32; +pub const DB_E_BADINITSTRING: ::windows_sys::core::HRESULT = -2147217805i32; +pub const DB_E_BADLOCKMODE: ::windows_sys::core::HRESULT = -2147217905i32; +pub const DB_E_BADLOOKUPID: ::windows_sys::core::HRESULT = -2147217831i32; +pub const DB_E_BADMATCHTYPE: ::windows_sys::core::HRESULT = -2147217792i32; +pub const DB_E_BADORDINAL: ::windows_sys::core::HRESULT = -2147217835i32; +pub const DB_E_BADPARAMETERNAME: ::windows_sys::core::HRESULT = -2147217827i32; +pub const DB_E_BADPRECISION: ::windows_sys::core::HRESULT = -2147217862i32; +pub const DB_E_BADPROPERTYVALUE: ::windows_sys::core::HRESULT = -2147217852i32; +pub const DB_E_BADRATIO: ::windows_sys::core::HRESULT = -2147217902i32; +pub const DB_E_BADRECORDNUM: ::windows_sys::core::HRESULT = -2147217854i32; +pub const DB_E_BADREGIONHANDLE: ::windows_sys::core::HRESULT = -2147217878i32; +pub const DB_E_BADROWHANDLE: ::windows_sys::core::HRESULT = -2147217916i32; +pub const DB_E_BADSCALE: ::windows_sys::core::HRESULT = -2147217861i32; +pub const DB_E_BADSOURCEHANDLE: ::windows_sys::core::HRESULT = -2147217840i32; +pub const DB_E_BADSTARTPOSITION: ::windows_sys::core::HRESULT = -2147217890i32; +pub const DB_E_BADSTATUSVALUE: ::windows_sys::core::HRESULT = -2147217880i32; +pub const DB_E_BADSTORAGEFLAG: ::windows_sys::core::HRESULT = -2147217882i32; +pub const DB_E_BADSTORAGEFLAGS: ::windows_sys::core::HRESULT = -2147217849i32; +pub const DB_E_BADTABLEID: ::windows_sys::core::HRESULT = -2147217860i32; +pub const DB_E_BADTYPE: ::windows_sys::core::HRESULT = -2147217859i32; +pub const DB_E_BADTYPENAME: ::windows_sys::core::HRESULT = -2147217872i32; +pub const DB_E_BADUPDATEDELETERULE: ::windows_sys::core::HRESULT = -2147217782i32; +pub const DB_E_BADVALUES: ::windows_sys::core::HRESULT = -2147217901i32; +pub const DB_E_BOGUS: ::windows_sys::core::HRESULT = -2147217665i32; +pub const DB_E_BOOKMARKSKIPPED: ::windows_sys::core::HRESULT = -2147217853i32; +pub const DB_E_BYREFACCESSORNOTSUPPORTED: ::windows_sys::core::HRESULT = -2147217848i32; +pub const DB_E_CANCELED: ::windows_sys::core::HRESULT = -2147217842i32; +pub const DB_E_CANNOTCONNECT: ::windows_sys::core::HRESULT = -2147217770i32; +pub const DB_E_CANNOTFREE: ::windows_sys::core::HRESULT = -2147217894i32; +pub const DB_E_CANNOTRESTART: ::windows_sys::core::HRESULT = -2147217896i32; +pub const DB_E_CANTCANCEL: ::windows_sys::core::HRESULT = -2147217899i32; +pub const DB_E_CANTCONVERTVALUE: ::windows_sys::core::HRESULT = -2147217913i32; +pub const DB_E_CANTFETCHBACKWARDS: ::windows_sys::core::HRESULT = -2147217884i32; +pub const DB_E_CANTFILTER: ::windows_sys::core::HRESULT = -2147217825i32; +pub const DB_E_CANTORDER: ::windows_sys::core::HRESULT = -2147217824i32; +pub const DB_E_CANTSCROLLBACKWARDS: ::windows_sys::core::HRESULT = -2147217879i32; +pub const DB_E_CANTTRANSLATE: ::windows_sys::core::HRESULT = -2147217869i32; +pub const DB_E_CHAPTERNOTRELEASED: ::windows_sys::core::HRESULT = -2147217841i32; +pub const DB_E_COLUMNUNAVAILABLE: ::windows_sys::core::HRESULT = -2147217760i32; +pub const DB_E_COMMANDNOTPERSISTED: ::windows_sys::core::HRESULT = -2147217817i32; +pub const DB_E_CONCURRENCYVIOLATION: ::windows_sys::core::HRESULT = -2147217864i32; +pub const DB_E_COSTLIMIT: ::windows_sys::core::HRESULT = -2147217907i32; +pub const DB_E_DATAOVERFLOW: ::windows_sys::core::HRESULT = -2147217833i32; +pub const DB_E_DELETEDROW: ::windows_sys::core::HRESULT = -2147217885i32; +pub const DB_E_DIALECTNOTSUPPORTED: ::windows_sys::core::HRESULT = -2147217898i32; +pub const DB_E_DROPRESTRICTED: ::windows_sys::core::HRESULT = -2147217776i32; +pub const DB_E_DUPLICATECOLUMNID: ::windows_sys::core::HRESULT = -2147217858i32; +pub const DB_E_DUPLICATECONSTRAINTID: ::windows_sys::core::HRESULT = -2147217767i32; +pub const DB_E_DUPLICATEDATASOURCE: ::windows_sys::core::HRESULT = -2147217897i32; +pub const DB_E_DUPLICATEID: ::windows_sys::core::HRESULT = -2147217816i32; +pub const DB_E_DUPLICATEINDEXID: ::windows_sys::core::HRESULT = -2147217868i32; +pub const DB_E_DUPLICATETABLEID: ::windows_sys::core::HRESULT = -2147217857i32; +pub const DB_E_ERRORSINCOMMAND: ::windows_sys::core::HRESULT = -2147217900i32; +pub const DB_E_ERRORSOCCURRED: ::windows_sys::core::HRESULT = -2147217887i32; +pub const DB_E_GOALREJECTED: ::windows_sys::core::HRESULT = -2147217892i32; +pub const DB_E_INDEXINUSE: ::windows_sys::core::HRESULT = -2147217866i32; +pub const DB_E_INTEGRITYVIOLATION: ::windows_sys::core::HRESULT = -2147217873i32; +pub const DB_E_INVALID: ::windows_sys::core::HRESULT = -2147217851i32; +pub const DB_E_INVALIDTRANSITION: ::windows_sys::core::HRESULT = -2147217876i32; +pub const DB_E_LIMITREJECTED: ::windows_sys::core::HRESULT = -2147217909i32; +pub const DB_E_MAXPENDCHANGESEXCEEDED: ::windows_sys::core::HRESULT = -2147217836i32; +pub const DB_E_MISMATCHEDPROVIDER: ::windows_sys::core::HRESULT = -2147217803i32; +pub const DB_E_MULTIPLESTATEMENTS: ::windows_sys::core::HRESULT = -2147217874i32; +pub const DB_E_MULTIPLESTORAGE: ::windows_sys::core::HRESULT = -2147217826i32; +pub const DB_E_NEWLYINSERTED: ::windows_sys::core::HRESULT = -2147217893i32; +pub const DB_E_NOAGGREGATION: ::windows_sys::core::HRESULT = -2147217886i32; +pub const DB_E_NOCOLUMN: ::windows_sys::core::HRESULT = -2147217819i32; +pub const DB_E_NOCOMMAND: ::windows_sys::core::HRESULT = -2147217908i32; +pub const DB_E_NOCONSTRAINT: ::windows_sys::core::HRESULT = -2147217761i32; +pub const DB_E_NOINDEX: ::windows_sys::core::HRESULT = -2147217867i32; +pub const DB_E_NOLOCALE: ::windows_sys::core::HRESULT = -2147217855i32; +pub const DB_E_NONCONTIGUOUSRANGE: ::windows_sys::core::HRESULT = -2147217877i32; +pub const DB_E_NOPROVIDERSREGISTERED: ::windows_sys::core::HRESULT = -2147217804i32; +pub const DB_E_NOQUERY: ::windows_sys::core::HRESULT = -2147217889i32; +pub const DB_E_NOSOURCEOBJECT: ::windows_sys::core::HRESULT = -2147217775i32; +pub const DB_E_NOSTATISTIC: ::windows_sys::core::HRESULT = -2147217764i32; +pub const DB_E_NOTABLE: ::windows_sys::core::HRESULT = -2147217865i32; +pub const DB_E_NOTAREFERENCECOLUMN: ::windows_sys::core::HRESULT = -2147217910i32; +pub const DB_E_NOTASUBREGION: ::windows_sys::core::HRESULT = -2147217875i32; +pub const DB_E_NOTCOLLECTION: ::windows_sys::core::HRESULT = -2147217773i32; +pub const DB_E_NOTFOUND: ::windows_sys::core::HRESULT = -2147217895i32; +pub const DB_E_NOTPREPARED: ::windows_sys::core::HRESULT = -2147217846i32; +pub const DB_E_NOTREENTRANT: ::windows_sys::core::HRESULT = -2147217888i32; +pub const DB_E_NOTSUPPORTED: ::windows_sys::core::HRESULT = -2147217837i32; +pub const DB_E_NULLACCESSORNOTSUPPORTED: ::windows_sys::core::HRESULT = -2147217847i32; +pub const DB_E_OBJECTCREATIONLIMITREACHED: ::windows_sys::core::HRESULT = -2147217815i32; +pub const DB_E_OBJECTMISMATCH: ::windows_sys::core::HRESULT = -2147217779i32; +pub const DB_E_OBJECTOPEN: ::windows_sys::core::HRESULT = -2147217915i32; +pub const DB_E_OUTOFSPACE: ::windows_sys::core::HRESULT = -2147217766i32; +pub const DB_E_PARAMNOTOPTIONAL: ::windows_sys::core::HRESULT = -2147217904i32; +pub const DB_E_PARAMUNAVAILABLE: ::windows_sys::core::HRESULT = -2147217839i32; +pub const DB_E_PENDINGCHANGES: ::windows_sys::core::HRESULT = -2147217834i32; +pub const DB_E_PENDINGINSERT: ::windows_sys::core::HRESULT = -2147217829i32; +pub const DB_E_READONLY: ::windows_sys::core::HRESULT = -2147217772i32; +pub const DB_E_READONLYACCESSOR: ::windows_sys::core::HRESULT = -2147217918i32; +pub const DB_E_RESOURCEEXISTS: ::windows_sys::core::HRESULT = -2147217768i32; +pub const DB_E_RESOURCELOCKED: ::windows_sys::core::HRESULT = -2147217774i32; +pub const DB_E_RESOURCENOTSUPPORTED: ::windows_sys::core::HRESULT = -2147217762i32; +pub const DB_E_RESOURCEOUTOFSCOPE: ::windows_sys::core::HRESULT = -2147217778i32; +pub const DB_E_ROWLIMITEXCEEDED: ::windows_sys::core::HRESULT = -2147217919i32; +pub const DB_E_ROWSETINCOMMAND: ::windows_sys::core::HRESULT = -2147217870i32; +pub const DB_E_ROWSNOTRELEASED: ::windows_sys::core::HRESULT = -2147217883i32; +pub const DB_E_SCHEMAVIOLATION: ::windows_sys::core::HRESULT = -2147217917i32; +pub const DB_E_TABLEINUSE: ::windows_sys::core::HRESULT = -2147217856i32; +pub const DB_E_TIMEOUT: ::windows_sys::core::HRESULT = -2147217769i32; +pub const DB_E_UNSUPPORTEDCONVERSION: ::windows_sys::core::HRESULT = -2147217891i32; +pub const DB_E_WRITEONLYACCESSOR: ::windows_sys::core::HRESULT = -2147217844i32; +pub const DB_IMP_LEVEL_ANONYMOUS: u32 = 0u32; +pub const DB_IMP_LEVEL_DELEGATE: u32 = 3u32; +pub const DB_IMP_LEVEL_IDENTIFY: u32 = 1u32; +pub const DB_IMP_LEVEL_IMPERSONATE: u32 = 2u32; +pub const DB_IN: u32 = 1u32; +pub const DB_INVALID_HACCESSOR: u32 = 0u32; +pub const DB_INVALID_HCHAPTER: u32 = 0u32; +pub const DB_LIKE_ONLY: u32 = 2u32; +pub const DB_LOCAL_EXCLUSIVE: u32 = 3u32; +pub const DB_LOCAL_SHARED: u32 = 2u32; +pub const DB_MODE_READ: u32 = 1u32; +pub const DB_MODE_READWRITE: u32 = 3u32; +pub const DB_MODE_SHARE_DENY_NONE: u32 = 16u32; +pub const DB_MODE_SHARE_DENY_READ: u32 = 4u32; +pub const DB_MODE_SHARE_DENY_WRITE: u32 = 8u32; +pub const DB_MODE_SHARE_EXCLUSIVE: u32 = 12u32; +pub const DB_MODE_WRITE: u32 = 2u32; +pub const DB_NULLGUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000000); +pub const DB_NULL_HACCESSOR: u32 = 0u32; +pub const DB_NULL_HCHAPTER: u32 = 0u32; +pub const DB_NULL_HROW: u32 = 0u32; +pub const DB_OUT: u32 = 2u32; +pub const DB_PROT_LEVEL_CALL: u32 = 2u32; +pub const DB_PROT_LEVEL_CONNECT: u32 = 1u32; +pub const DB_PROT_LEVEL_NONE: u32 = 0u32; +pub const DB_PROT_LEVEL_PKT: u32 = 3u32; +pub const DB_PROT_LEVEL_PKT_INTEGRITY: u32 = 4u32; +pub const DB_PROT_LEVEL_PKT_PRIVACY: u32 = 5u32; +pub const DB_PT_FUNCTION: u32 = 3u32; +pub const DB_PT_PROCEDURE: u32 = 2u32; +pub const DB_PT_UNKNOWN: u32 = 1u32; +pub const DB_REMOTE: u32 = 1u32; +pub const DB_SEARCHABLE: u32 = 4u32; +pub const DB_SEC_E_AUTH_FAILED: ::windows_sys::core::HRESULT = -2147217843i32; +pub const DB_SEC_E_PERMISSIONDENIED: ::windows_sys::core::HRESULT = -2147217911i32; +pub const DB_SEC_E_SAFEMODE_DENIED: ::windows_sys::core::HRESULT = -2147217765i32; +pub const DB_S_ASYNCHRONOUS: ::windows_sys::core::HRESULT = 265936i32; +pub const DB_S_BADROWHANDLE: ::windows_sys::core::HRESULT = 265939i32; +pub const DB_S_BOOKMARKSKIPPED: ::windows_sys::core::HRESULT = 265923i32; +pub const DB_S_BUFFERFULL: ::windows_sys::core::HRESULT = 265928i32; +pub const DB_S_CANTRELEASE: ::windows_sys::core::HRESULT = 265930i32; +pub const DB_S_COLUMNSCHANGED: ::windows_sys::core::HRESULT = 265937i32; +pub const DB_S_COLUMNTYPEMISMATCH: ::windows_sys::core::HRESULT = 265921i32; +pub const DB_S_COMMANDREEXECUTED: ::windows_sys::core::HRESULT = 265927i32; +pub const DB_S_DELETEDROW: ::windows_sys::core::HRESULT = 265940i32; +pub const DB_S_DIALECTIGNORED: ::windows_sys::core::HRESULT = 265933i32; +pub const DB_S_ENDOFROWSET: ::windows_sys::core::HRESULT = 265926i32; +pub const DB_S_ERRORSOCCURRED: ::windows_sys::core::HRESULT = 265946i32; +pub const DB_S_ERRORSRETURNED: ::windows_sys::core::HRESULT = 265938i32; +pub const DB_S_GOALCHANGED: ::windows_sys::core::HRESULT = 265931i32; +pub const DB_S_LOCKUPGRADED: ::windows_sys::core::HRESULT = 265944i32; +pub const DB_S_MULTIPLECHANGES: ::windows_sys::core::HRESULT = 265948i32; +pub const DB_S_NONEXTROWSET: ::windows_sys::core::HRESULT = 265925i32; +pub const DB_S_NORESULT: ::windows_sys::core::HRESULT = 265929i32; +pub const DB_S_NOROWSPECIFICCOLUMNS: ::windows_sys::core::HRESULT = 265949i32; +pub const DB_S_NOTSINGLETON: ::windows_sys::core::HRESULT = 265943i32; +pub const DB_S_PARAMUNAVAILABLE: ::windows_sys::core::HRESULT = 265947i32; +pub const DB_S_PROPERTIESCHANGED: ::windows_sys::core::HRESULT = 265945i32; +pub const DB_S_ROWLIMITEXCEEDED: ::windows_sys::core::HRESULT = 265920i32; +pub const DB_S_STOPLIMITREACHED: ::windows_sys::core::HRESULT = 265942i32; +pub const DB_S_TOOMANYCHANGES: ::windows_sys::core::HRESULT = 265941i32; +pub const DB_S_TYPEINFOOVERRIDDEN: ::windows_sys::core::HRESULT = 265922i32; +pub const DB_S_UNWANTEDOPERATION: ::windows_sys::core::HRESULT = 265932i32; +pub const DB_S_UNWANTEDPHASE: ::windows_sys::core::HRESULT = 265934i32; +pub const DB_S_UNWANTEDREASON: ::windows_sys::core::HRESULT = 265935i32; +pub const DB_UNSEARCHABLE: u32 = 1u32; +pub const DCINFOTYPE_VERSION: DCINFOTYPEENUM = 1i32; +pub const DELIVERY_AGENT_FLAG_NO_BROADCAST: DELIVERY_AGENT_FLAGS = 4i32; +pub const DELIVERY_AGENT_FLAG_NO_RESTRICTIONS: DELIVERY_AGENT_FLAGS = 8i32; +pub const DELIVERY_AGENT_FLAG_SILENT_DIAL: DELIVERY_AGENT_FLAGS = 16i32; +pub const DISPID_QUERY_ALL: u32 = 6u32; +pub const DISPID_QUERY_HITCOUNT: u32 = 4u32; +pub const DISPID_QUERY_LASTSEENTIME: u32 = 10u32; +pub const DISPID_QUERY_METADATA_PROPDISPID: u32 = 6u32; +pub const DISPID_QUERY_METADATA_PROPGUID: u32 = 5u32; +pub const DISPID_QUERY_METADATA_PROPMODIFIABLE: u32 = 9u32; +pub const DISPID_QUERY_METADATA_PROPNAME: u32 = 7u32; +pub const DISPID_QUERY_METADATA_STORELEVEL: u32 = 8u32; +pub const DISPID_QUERY_METADATA_VROOTAUTOMATIC: u32 = 3u32; +pub const DISPID_QUERY_METADATA_VROOTMANUAL: u32 = 4u32; +pub const DISPID_QUERY_METADATA_VROOTUSED: u32 = 2u32; +pub const DISPID_QUERY_RANK: u32 = 3u32; +pub const DISPID_QUERY_RANKVECTOR: u32 = 2u32; +pub const DISPID_QUERY_REVNAME: u32 = 8u32; +pub const DISPID_QUERY_UNFILTERED: u32 = 7u32; +pub const DISPID_QUERY_VIRTUALPATH: u32 = 9u32; +pub const DISPID_QUERY_WORKID: u32 = 5u32; +pub const DS_E_ALREADYDISABLED: i32 = -2147220447i32; +pub const DS_E_ALREADYENABLED: i32 = -2147220454i32; +pub const DS_E_BADREQUEST: i32 = -2147220475i32; +pub const DS_E_BADRESULT: i32 = -2147220445i32; +pub const DS_E_BADSEQUENCE: i32 = -2147220473i32; +pub const DS_E_BUFFERTOOSMALL: i32 = -2147220449i32; +pub const DS_E_CANNOTREMOVECONCURRENT: i32 = -2147220443i32; +pub const DS_E_CANNOTWRITEREGISTRY: i32 = -2147220444i32; +pub const DS_E_CONFIGBAD: i32 = -2147220470i32; +pub const DS_E_CONFIGNOTRIGHTTYPE: i32 = -2147220456i32; +pub const DS_E_DATANOTPRESENT: i32 = -2147220464i32; +pub const DS_E_DATASOURCENOTAVAILABLE: i32 = -2147220478i32; +pub const DS_E_DATASOURCENOTDISABLED: i32 = -2147220459i32; +pub const DS_E_DUPLICATEID: i32 = -2147220462i32; +pub const DS_E_INDEXDIRECTORY: i32 = -2147220452i32; +pub const DS_E_INVALIDCATALOGNAME: i32 = -2147220457i32; +pub const DS_E_INVALIDDATASOURCE: i32 = -2147220479i32; +pub const DS_E_INVALIDTAGDB: i32 = -2147220458i32; +pub const DS_E_MESSAGETOOLONG: i32 = -2147220472i32; +pub const DS_E_MISSINGCATALOG: i32 = -2147220440i32; +pub const DS_E_NOMOREDATA: i32 = -2147220480i32; +pub const DS_E_PARAMOUTOFRANGE: i32 = -2147220448i32; +pub const DS_E_PROPVERSIONMISMATCH: i32 = -2147220441i32; +pub const DS_E_PROTOCOLVERSION: i32 = -2147220455i32; +pub const DS_E_QUERYCANCELED: i32 = -2147220477i32; +pub const DS_E_QUERYHUNG: i32 = -2147220446i32; +pub const DS_E_REGISTRY: i32 = -2147220460i32; +pub const DS_E_SEARCHCATNAMECOLLISION: i32 = -2147220442i32; +pub const DS_E_SERVERCAPACITY: i32 = -2147220474i32; +pub const DS_E_SERVERERROR: i32 = -2147220471i32; +pub const DS_E_SETSTATUSINPROGRESS: i32 = -2147220463i32; +pub const DS_E_TOOMANYDATASOURCES: i32 = -2147220461i32; +pub const DS_E_UNKNOWNPARAM: i32 = -2147220450i32; +pub const DS_E_UNKNOWNREQUEST: i32 = -2147220476i32; +pub const DS_E_VALUETOOLARGE: i32 = -2147220451i32; +pub const DataLinks: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2206cdb2_19c1_11d1_89e0_00c04fd7a829); +pub const ERROR_FTE: u32 = 13824u32; +pub const ERROR_FTE_CB: u32 = 51968u32; +pub const ERROR_FTE_FD: u32 = 64768u32; +pub const ERROR_SOURCE_CMDLINE: u32 = 5376u32; +pub const ERROR_SOURCE_COLLATOR: u32 = 1280u32; +pub const ERROR_SOURCE_CONNMGR: u32 = 1536u32; +pub const ERROR_SOURCE_CONTENT_SOURCE: u32 = 13312u32; +pub const ERROR_SOURCE_DATASOURCE: u32 = 1024u32; +pub const ERROR_SOURCE_DAV: u32 = 8960u32; +pub const ERROR_SOURCE_EXSTOREPH: u32 = 9984u32; +pub const ERROR_SOURCE_FLTRDMN: u32 = 9216u32; +pub const ERROR_SOURCE_GATHERER: u32 = 3328u32; +pub const ERROR_SOURCE_INDEXER: u32 = 4352u32; +pub const ERROR_SOURCE_MSS: u32 = 8448u32; +pub const ERROR_SOURCE_NETWORKING: u32 = 768u32; +pub const ERROR_SOURCE_NLADMIN: u32 = 6400u32; +pub const ERROR_SOURCE_NOTESPH: u32 = 9728u32; +pub const ERROR_SOURCE_OLEDB_BINDER: u32 = 9472u32; +pub const ERROR_SOURCE_PEOPLE_IMPORT: u32 = 16384u32; +pub const ERROR_SOURCE_PROTHNDLR: u32 = 4608u32; +pub const ERROR_SOURCE_QUERY: u32 = 1792u32; +pub const ERROR_SOURCE_REMOTE_EXSTOREPH: u32 = 13568u32; +pub const ERROR_SOURCE_SCHEMA: u32 = 3072u32; +pub const ERROR_SOURCE_SCRIPTPI: u32 = 8192u32; +pub const ERROR_SOURCE_SECURITY: u32 = 5120u32; +pub const ERROR_SOURCE_SETUP: u32 = 4864u32; +pub const ERROR_SOURCE_SRCH_SCHEMA_CACHE: u32 = 13056u32; +pub const ERROR_SOURCE_XML: u32 = 8704u32; +pub const EVENT_AUDIENCECOMPUTATION_CANNOTSTART: i32 = -1073738223i32; +pub const EVENT_AUTOCAT_CANT_CREATE_FILE_SHARE: i32 = -1073738726i32; +pub const EVENT_AUTOCAT_PERFMON: i32 = -1073738753i32; +pub const EVENT_CONFIG_ERROR: i32 = -1073738821i32; +pub const EVENT_CONFIG_SYNTAX: i32 = -2147482604i32; +pub const EVENT_CRAWL_SCHEDULED: i32 = 1073744884i32; +pub const EVENT_DETAILED_FILTERPOOL_ADD_FAILED: i32 = -1073738719i32; +pub const EVENT_DSS_NOT_ENABLED: i32 = -2147476572i32; +pub const EVENT_ENUMERATE_SESSIONS_FAILED: i32 = -1073738720i32; +pub const EVENT_EXCEPTION: i32 = -1073740815i32; +pub const EVENT_FAILED_CREATE_GATHERER_LOG: i32 = -2147480587i32; +pub const EVENT_FAILED_INITIALIZE_CRAWL: i32 = -1073738765i32; +pub const EVENT_FILTERPOOL_ADD_FAILED: i32 = -1073738722i32; +pub const EVENT_FILTERPOOL_DELETE_FAILED: i32 = -1073738721i32; +pub const EVENT_FILTER_HOST_FORCE_TERMINATE: i32 = -2147473624i32; +pub const EVENT_FILTER_HOST_NOT_INITIALIZED: i32 = -1073738724i32; +pub const EVENT_FILTER_HOST_NOT_TERMINATED: i32 = -1073738723i32; +pub const EVENT_GATHERER_DATASOURCE: i32 = -1073738727i32; +pub const EVENT_GATHERER_PERFMON: i32 = -1073738817i32; +pub const EVENT_GATHERSVC_PERFMON: i32 = -1073738818i32; +pub const EVENT_GATHER_ADVISE_FAILED: i32 = -1073738798i32; +pub const EVENT_GATHER_APP_INIT_FAILED: i32 = -1073738766i32; +pub const EVENT_GATHER_AUTODESCENCODE_INVALID: i32 = -2147480592i32; +pub const EVENT_GATHER_AUTODESCLEN_ADJUSTED: i32 = -2147480603i32; +pub const EVENT_GATHER_BACKUPAPP_COMPLETE: i32 = 3077i32; +pub const EVENT_GATHER_BACKUPAPP_ERROR: i32 = -1073738748i32; +pub const EVENT_GATHER_CANT_CREATE_DOCID: i32 = -1073738793i32; +pub const EVENT_GATHER_CANT_DELETE_DOCID: i32 = -1073738792i32; +pub const EVENT_GATHER_CHECKPOINT_CORRUPT: i32 = -1073738732i32; +pub const EVENT_GATHER_CHECKPOINT_FAILED: i32 = -1073738736i32; +pub const EVENT_GATHER_CHECKPOINT_FILE_MISSING: i32 = -1073738731i32; +pub const EVENT_GATHER_CRAWL_IN_PROGRESS: i32 = -2147480609i32; +pub const EVENT_GATHER_CRAWL_NOT_STARTED: i32 = -2147480625i32; +pub const EVENT_GATHER_CRAWL_SEED_ERROR: i32 = -2147480624i32; +pub const EVENT_GATHER_CRAWL_SEED_FAILED: i32 = -2147480612i32; +pub const EVENT_GATHER_CRAWL_SEED_FAILED_INIT: i32 = -2147480611i32; +pub const EVENT_GATHER_CRITICAL_ERROR: i32 = -1073738799i32; +pub const EVENT_GATHER_DAEMON_TERMINATED: i32 = -2147480570i32; +pub const EVENT_GATHER_DELETING_HISTORY_ITEMS: i32 = -1073738774i32; +pub const EVENT_GATHER_DIRTY_STARTUP: i32 = -2147480576i32; +pub const EVENT_GATHER_DISK_FULL: i32 = -2147480594i32; +pub const EVENT_GATHER_END_ADAPTIVE: i32 = 1073744891i32; +pub const EVENT_GATHER_END_CRAWL: i32 = 1073744842i32; +pub const EVENT_GATHER_END_INCREMENTAL: i32 = 1073744871i32; +pub const EVENT_GATHER_EXCEPTION: i32 = -1073738810i32; +pub const EVENT_GATHER_FLUSH_FAILED: i32 = -1073738737i32; +pub const EVENT_GATHER_FROM_NOT_SET: i32 = -1073738776i32; +pub const EVENT_GATHER_HISTORY_CORRUPTION_DETECTED: i32 = -2147480575i32; +pub const EVENT_GATHER_INTERNAL: i32 = -1073738804i32; +pub const EVENT_GATHER_INVALID_NETWORK_ACCESS_ACCOUNT: i32 = -1073738739i32; +pub const EVENT_GATHER_LOCK_FAILED: i32 = -1073738784i32; +pub const EVENT_GATHER_NO_CRAWL_SEEDS: i32 = -2147480602i32; +pub const EVENT_GATHER_NO_SCHEMA: i32 = -2147480593i32; +pub const EVENT_GATHER_OBJ_INIT_FAILED: i32 = -1073738796i32; +pub const EVENT_GATHER_PLUGINMGR_INIT_FAILED: i32 = -1073738767i32; +pub const EVENT_GATHER_PLUGIN_INIT_FAILED: i32 = -1073738795i32; +pub const EVENT_GATHER_PROTOCOLHANDLER_INIT_FAILED: i32 = -1073738740i32; +pub const EVENT_GATHER_PROTOCOLHANDLER_LOAD_FAILED: i32 = -1073738741i32; +pub const EVENT_GATHER_READ_CHECKPOINT_FAILED: i32 = -1073738733i32; +pub const EVENT_GATHER_RECOVERY_FAILURE: i32 = -1073738222i32; +pub const EVENT_GATHER_REG_MISSING: i32 = -2147480610i32; +pub const EVENT_GATHER_RESET_START: i32 = 1073744865i32; +pub const EVENT_GATHER_RESTOREAPP_COMPLETE: i32 = 3075i32; +pub const EVENT_GATHER_RESTOREAPP_ERROR: i32 = -1073738750i32; +pub const EVENT_GATHER_RESTORE_CHECKPOINT_FAILED: i32 = -1073738734i32; +pub const EVENT_GATHER_RESTORE_COMPLETE: i32 = 3069i32; +pub const EVENT_GATHER_RESTORE_ERROR: i32 = -1073738754i32; +pub const EVENT_GATHER_RESUME: i32 = 1073744868i32; +pub const EVENT_GATHER_SAVE_FAILED: i32 = -1073738735i32; +pub const EVENT_GATHER_SERVICE_INIT: i32 = -1073738794i32; +pub const EVENT_GATHER_START_CRAWL: i32 = 1073744843i32; +pub const EVENT_GATHER_START_CRAWL_IF_RESET: i32 = -2147480595i32; +pub const EVENT_GATHER_START_PAUSE: i32 = -2147480606i32; +pub const EVENT_GATHER_STOP_START: i32 = 1073744876i32; +pub const EVENT_GATHER_SYSTEM_LCID_CHANGED: i32 = -2147480562i32; +pub const EVENT_GATHER_THROTTLE: i32 = 1073744867i32; +pub const EVENT_GATHER_TRANSACTION_FAIL: i32 = -1073738797i32; +pub const EVENT_HASHMAP_INSERT: i32 = -1073738816i32; +pub const EVENT_HASHMAP_UPDATE: i32 = -1073738811i32; +pub const EVENT_INDEXER_ADD_DSS_DISCONNECT: i32 = -2147476585i32; +pub const EVENT_INDEXER_ADD_DSS_FAILED: i32 = -2147476627i32; +pub const EVENT_INDEXER_ADD_DSS_SUCCEEDED: i32 = 7019i32; +pub const EVENT_INDEXER_BUILD_ENDED: i32 = 1073748873i32; +pub const EVENT_INDEXER_BUILD_FAILED: i32 = -1073734797i32; +pub const EVENT_INDEXER_BUILD_START: i32 = 1073748872i32; +pub const EVENT_INDEXER_CI_LOAD_ERROR: i32 = -1073734785i32; +pub const EVENT_INDEXER_DSS_ALREADY_ADDED: i32 = 1073748870i32; +pub const EVENT_INDEXER_DSS_CONTACT_FAILED: i32 = -1073734800i32; +pub const EVENT_INDEXER_DSS_UNABLE_TO_REMOVE: i32 = -1073734755i32; +pub const EVENT_INDEXER_FAIL_TO_CREATE_PER_USER_CATALOG: i32 = -1073731797i32; +pub const EVENT_INDEXER_FAIL_TO_SET_MAX_JETINSTANCE: i32 = -1073731798i32; +pub const EVENT_INDEXER_FAIL_TO_UNLOAD_PER_USER_CATALOG: i32 = -1073731796i32; +pub const EVENT_INDEXER_INIT_ERROR: i32 = -1073734814i32; +pub const EVENT_INDEXER_INVALID_DIRECTORY: i32 = -1073734813i32; +pub const EVENT_INDEXER_LOAD_FAIL: i32 = -1073734781i32; +pub const EVENT_INDEXER_MISSING_APP_DIRECTORY: i32 = -1073734758i32; +pub const EVENT_INDEXER_NEW_PROJECT: i32 = -1073734754i32; +pub const EVENT_INDEXER_NO_SEARCH_SERVERS: i32 = -2147476630i32; +pub const EVENT_INDEXER_OUT_OF_DATABASE_INSTANCE: i32 = -1073731799i32; +pub const EVENT_INDEXER_PAUSED_FOR_DISKFULL: i32 = -1073734811i32; +pub const EVENT_INDEXER_PERFMON: i32 = -1073734760i32; +pub const EVENT_INDEXER_PROPSTORE_INIT_FAILED: i32 = -1073734787i32; +pub const EVENT_INDEXER_PROP_ABORTED: i32 = 1073748899i32; +pub const EVENT_INDEXER_PROP_COMMITTED: i32 = 1073748898i32; +pub const EVENT_INDEXER_PROP_COMMIT_FAILED: i32 = -1073734747i32; +pub const EVENT_INDEXER_PROP_ERROR: i32 = -1073734812i32; +pub const EVENT_INDEXER_PROP_STARTED: i32 = 1073748841i32; +pub const EVENT_INDEXER_PROP_STATE_CORRUPT: i32 = -1073734780i32; +pub const EVENT_INDEXER_PROP_STOPPED: i32 = -2147476633i32; +pub const EVENT_INDEXER_PROP_SUCCEEDED: i32 = 7016i32; +pub const EVENT_INDEXER_REG_ERROR: i32 = -1073734756i32; +pub const EVENT_INDEXER_REG_MISSING: i32 = -1073734796i32; +pub const EVENT_INDEXER_REMOVED_PROJECT: i32 = -1073734753i32; +pub const EVENT_INDEXER_REMOVE_DSS_FAILED: i32 = -1073734801i32; +pub const EVENT_INDEXER_REMOVE_DSS_SUCCEEDED: i32 = 7020i32; +pub const EVENT_INDEXER_RESET_FOR_CORRUPTION: i32 = -1073734784i32; +pub const EVENT_INDEXER_SCHEMA_COPY_ERROR: i32 = -1073734823i32; +pub const EVENT_INDEXER_SHUTDOWN: i32 = 1073748866i32; +pub const EVENT_INDEXER_STARTED: i32 = 1073748824i32; +pub const EVENT_INDEXER_VERIFY_PROP_ACCOUNT: i32 = -1073734768i32; +pub const EVENT_LEARN_COMPILE_FAILED: i32 = -2147480583i32; +pub const EVENT_LEARN_CREATE_DB_FAILED: i32 = -2147480584i32; +pub const EVENT_LEARN_PROPAGATION_COPY_FAILED: i32 = -2147480585i32; +pub const EVENT_LEARN_PROPAGATION_FAILED: i32 = -2147480582i32; +pub const EVENT_LOCAL_GROUPS_CACHE_FLUSHED: i32 = 1073744920i32; +pub const EVENT_LOCAL_GROUP_NOT_EXPANDED: i32 = 1073744919i32; +pub const EVENT_NOTIFICATION_FAILURE: i32 = -1073738745i32; +pub const EVENT_NOTIFICATION_FAILURE_SCOPE_EXCEEDED_LOGGING: i32 = -2147480568i32; +pub const EVENT_NOTIFICATION_RESTORED: i32 = 1073744905i32; +pub const EVENT_NOTIFICATION_RESTORED_SCOPE_EXCEEDED_LOGGING: i32 = -2147480566i32; +pub const EVENT_NOTIFICATION_THREAD_EXIT_FAILED: i32 = -1073738725i32; +pub const EVENT_OUTOFMEMORY: i32 = -1073740817i32; +pub const EVENT_PERF_COUNTERS_ALREADY_EXISTS: i32 = -2147473626i32; +pub const EVENT_PERF_COUNTERS_NOT_LOADED: i32 = -2147473628i32; +pub const EVENT_PERF_COUNTERS_REGISTRY_TROUBLE: i32 = -2147473627i32; +pub const EVENT_PROTOCOL_HOST_FORCE_TERMINATE: i32 = -2147473625i32; +pub const EVENT_REG_VERSION: i32 = -1073738790i32; +pub const EVENT_SSSEARCH_CREATE_PATH_RULES_FAILED: i32 = -2147482634i32; +pub const EVENT_SSSEARCH_CSM_SAVE_FAILED: i32 = -1073740805i32; +pub const EVENT_SSSEARCH_DATAFILES_MOVE_FAILED: i32 = -1073740808i32; +pub const EVENT_SSSEARCH_DATAFILES_MOVE_ROLLBACK_ERRORS: i32 = -2147482630i32; +pub const EVENT_SSSEARCH_DATAFILES_MOVE_SUCCEEDED: i32 = 1073742841i32; +pub const EVENT_SSSEARCH_DROPPED_EVENTS: i32 = -2147482633i32; +pub const EVENT_SSSEARCH_SETUP_CLEANUP_FAILED: i32 = -1073740813i32; +pub const EVENT_SSSEARCH_SETUP_CLEANUP_STARTED: i32 = -2147482640i32; +pub const EVENT_SSSEARCH_SETUP_CLEANUP_SUCCEEDED: i32 = 1073742834i32; +pub const EVENT_SSSEARCH_SETUP_FAILED: i32 = -1073740818i32; +pub const EVENT_SSSEARCH_SETUP_SUCCEEDED: i32 = 1073742829i32; +pub const EVENT_SSSEARCH_STARTED: i32 = 1073742827i32; +pub const EVENT_SSSEARCH_STARTING_SETUP: i32 = 1073742828i32; +pub const EVENT_SSSEARCH_STOPPED: i32 = 1073742837i32; +pub const EVENT_STS_INIT_SECURITY_FAILED: i32 = -2147480554i32; +pub const EVENT_SYSTEM_EXCEPTION: i32 = -2147482595i32; +pub const EVENT_TRANSACTION_READ: i32 = -1073738809i32; +pub const EVENT_TRANSLOG_APPEND: i32 = -1073738814i32; +pub const EVENT_TRANSLOG_CREATE: i32 = -1073738791i32; +pub const EVENT_TRANSLOG_CREATE_TRX: i32 = -1073738815i32; +pub const EVENT_TRANSLOG_UPDATE: i32 = -1073738813i32; +pub const EVENT_UNPRIVILEGED_SERVICE_ACCOUNT: i32 = -2147482596i32; +pub const EVENT_USING_DIFFERENT_WORD_BREAKER: i32 = -2147480580i32; +pub const EVENT_WARNING_CANNOT_UPGRADE_NOISE_FILE: i32 = -2147473634i32; +pub const EVENT_WARNING_CANNOT_UPGRADE_NOISE_FILES: i32 = -2147473635i32; +pub const EVENT_WBREAKER_NOT_LOADED: i32 = -2147480586i32; +pub const EVENT_WIN32_ERROR: i32 = -2147473633i32; +pub const EXCI_E_ACCESS_DENIED: i32 = -2147216990i32; +pub const EXCI_E_BADCONFIG_OR_ACCESSDENIED: i32 = -2147216988i32; +pub const EXCI_E_INVALID_ACCOUNT_INFO: i32 = -2147216984i32; +pub const EXCI_E_INVALID_EXCHANGE_SERVER: i32 = -2147216989i32; +pub const EXCI_E_INVALID_SERVER_CONFIG: i32 = -2147216991i32; +pub const EXCI_E_NOT_ADMIN_OR_WRONG_SITE: i32 = -2147216986i32; +pub const EXCI_E_NO_CONFIG: i32 = -2147216992i32; +pub const EXCI_E_NO_MAPI: i32 = -2147216985i32; +pub const EXCI_E_WRONG_SERVER_OR_ACCT: i32 = -2147216987i32; +pub const EXSTOREPH_E_UNEXPECTED: i32 = -2147211519i32; +pub const EX_ANY: u32 = 0u32; +pub const EX_CMDFATAL: u32 = 20u32; +pub const EX_CONTROL: u32 = 25u32; +pub const EX_DBCORRUPT: u32 = 23u32; +pub const EX_DBFATAL: u32 = 21u32; +pub const EX_DEADLOCK: u32 = 13u32; +pub const EX_HARDWARE: u32 = 24u32; +pub const EX_INFO: u32 = 10u32; +pub const EX_INTOK: u32 = 18u32; +pub const EX_LIMIT: u32 = 19u32; +pub const EX_MAXISEVERITY: u32 = 10u32; +pub const EX_MISSING: u32 = 11u32; +pub const EX_PERMIT: u32 = 14u32; +pub const EX_RESOURCE: u32 = 17u32; +pub const EX_SYNTAX: u32 = 15u32; +pub const EX_TABCORRUPT: u32 = 22u32; +pub const EX_TYPE: u32 = 12u32; +pub const EX_USER: u32 = 16u32; +pub const FAIL: u32 = 0u32; +pub const FF_INDEXCOMPLEXURLS: FOLLOW_FLAGS = 1i32; +pub const FF_SUPPRESSINDEXING: FOLLOW_FLAGS = 2i32; +pub const FLTRDMN_E_CANNOT_DECRYPT_PASSWORD: i32 = -2147212282i32; +pub const FLTRDMN_E_ENCRYPTED_DOCUMENT: i32 = -2147212283i32; +pub const FLTRDMN_E_FILTER_INIT_FAILED: i32 = -2147212284i32; +pub const FLTRDMN_E_QI_FILTER_FAILED: i32 = -2147212286i32; +pub const FLTRDMN_E_UNEXPECTED: i32 = -2147212287i32; +pub const FTE_E_ADMIN_BLOB_CORRUPT: i32 = -2147207676i32; +pub const FTE_E_AFFINITY_MASK: i32 = -2147207651i32; +pub const FTE_E_ALREADY_INITIALIZED: i32 = -2147207604i32; +pub const FTE_E_ANOTHER_STATUS_CHANGE_IS_ALREADY_ACTIVE: i32 = -2147207635i32; +pub const FTE_E_BATCH_ABORTED: i32 = -2147207636i32; +pub const FTE_E_CATALOG_ALREADY_EXISTS: i32 = -2147207656i32; +pub const FTE_E_CATALOG_DOES_NOT_EXIST: i32 = -2147207639i32; +pub const FTE_E_CB_CBID_OUT_OF_BOUND: i32 = -2147169535i32; +pub const FTE_E_CB_NOT_ENOUGH_AVAIL_PHY_MEM: i32 = -2147169534i32; +pub const FTE_E_CB_NOT_ENOUGH_OCC_BUFFER: i32 = -2147169533i32; +pub const FTE_E_CB_OUT_OF_MEMORY: i32 = -2147169536i32; +pub const FTE_E_COM_SIGNATURE_VALIDATION: i32 = -2147207652i32; +pub const FTE_E_CORRUPT_GATHERER_HASH_MAP: i32 = -2147207619i32; +pub const FTE_E_CORRUPT_PROPERTY_STORE: i32 = -2147207622i32; +pub const FTE_E_CORRUPT_WORDLIST: i32 = -2147169532i32; +pub const FTE_E_DATATYPE_MISALIGNMENT: i32 = -2147207605i32; +pub const FTE_E_DEPENDENT_TRAN_FAILED_TO_PERSIST: i32 = -2147207641i32; +pub const FTE_E_DOC_TOO_HUGE: i32 = -2147207606i32; +pub const FTE_E_DUPLICATE_OBJECT: i32 = -2147207644i32; +pub const FTE_E_ERROR_WRITING_REGISTRY: i32 = -2147207674i32; +pub const FTE_E_EXCEEDED_MAX_PLUGINS: i32 = -2147207647i32; +pub const FTE_E_FAILED_TO_CREATE_ACCESSOR: i32 = -2147207625i32; +pub const FTE_E_FAILURE_TO_POST_SETCOMPLETION_STATUS: i32 = -2147207597i32; +pub const FTE_E_FD_DID_NOT_CONNECT: i32 = -2147207660i32; +pub const FTE_E_FD_DOC_TIMEOUT: i32 = -2147156733i32; +pub const FTE_E_FD_DOC_UNEXPECTED_EXIT: i32 = -2147156731i32; +pub const FTE_E_FD_FAILED_TO_LOAD_IFILTER: i32 = -2147156734i32; +pub const FTE_E_FD_FILTER_CAUSED_SHARING_VIOLATION: i32 = -2147156725i32; +pub const FTE_E_FD_IDLE: i32 = -2147207595i32; +pub const FTE_E_FD_IFILTER_INIT_FAILED: i32 = -2147156735i32; +pub const FTE_E_FD_NOISE_NO_IPERSISTSTREAM_ON_TEXT_FILTER: i32 = -2147156729i32; +pub const FTE_E_FD_NOISE_NO_TEXT_FILTER: i32 = -2147156730i32; +pub const FTE_E_FD_NOISE_TEXT_FILTER_INIT_FAILED: i32 = -2147156727i32; +pub const FTE_E_FD_NOISE_TEXT_FILTER_LOAD_FAILED: i32 = -2147156728i32; +pub const FTE_E_FD_NO_IPERSIST_INTERFACE: i32 = -2147156736i32; +pub const FTE_E_FD_OCCURRENCE_OVERFLOW: i32 = -2147156726i32; +pub const FTE_E_FD_OWNERSHIP_OBSOLETE: i32 = -2147207650i32; +pub const FTE_E_FD_SHUTDOWN: i32 = -2147207640i32; +pub const FTE_E_FD_TIMEOUT: i32 = -2147207632i32; +pub const FTE_E_FD_UNEXPECTED_EXIT: i32 = -2147156732i32; +pub const FTE_E_FD_UNRESPONSIVE: i32 = -2147207594i32; +pub const FTE_E_FD_USED_TOO_MUCH_MEMORY: i32 = -2147207603i32; +pub const FTE_E_FILTER_SINGLE_THREADED: i32 = -2147207675i32; +pub const FTE_E_HIGH_MEMORY_PRESSURE: i32 = -2147207601i32; +pub const FTE_E_INVALID_CODEPAGE: i32 = -2147207596i32; +pub const FTE_E_INVALID_DOCID: i32 = -2147207663i32; +pub const FTE_E_INVALID_ISOLATE_ERROR_BATCH: i32 = -2147207600i32; +pub const FTE_E_INVALID_PROG_ID: i32 = -2147207614i32; +pub const FTE_E_INVALID_PROJECT_ID: i32 = -2147207598i32; +pub const FTE_E_INVALID_PROPERTY: i32 = -2147207630i32; +pub const FTE_E_INVALID_TYPE: i32 = -2147207624i32; +pub const FTE_E_KEY_NOT_CACHED: i32 = -2147207618i32; +pub const FTE_E_LIBRARY_NOT_LOADED: i32 = -2147207627i32; +pub const FTE_E_NOT_PROCESSED_DUE_TO_PREVIOUS_ERRORS: i32 = -2147207633i32; +pub const FTE_E_NO_MORE_PROPERTIES: i32 = -2147207629i32; +pub const FTE_E_NO_PLUGINS: i32 = -2147207638i32; +pub const FTE_E_NO_PROPERTY_STORE: i32 = -1073465766i32; +pub const FTE_E_OUT_OF_RANGE: i32 = -2147207623i32; +pub const FTE_E_PATH_TOO_LONG: i32 = -2147207654i32; +pub const FTE_E_PAUSE_EXTERNAL: i32 = -2147207662i32; +pub const FTE_E_PERFMON_FULL: i32 = -2147207626i32; +pub const FTE_E_PERF_NOT_LOADED: i32 = -2147207611i32; +pub const FTE_E_PIPE_DATA_CORRUPTED: i32 = -2147207671i32; +pub const FTE_E_PIPE_NOT_CONNECTED: i32 = -2147207677i32; +pub const FTE_E_PROGID_REQUIRED: i32 = -2147207658i32; +pub const FTE_E_PROJECT_NOT_INITALIZED: i32 = -2147207672i32; +pub const FTE_E_PROJECT_SHUTDOWN: i32 = -2147207673i32; +pub const FTE_E_PROPERTY_STORE_WORKID_NOTVALID: i32 = -2147207621i32; +pub const FTE_E_READONLY_CATALOG: i32 = -2147207612i32; +pub const FTE_E_REDUNDANT_TRAN_FAILURE: i32 = -2147207642i32; +pub const FTE_E_REJECTED_DUE_TO_PROJECT_STATUS: i32 = -2147207661i32; +pub const FTE_E_RESOURCE_SHUTDOWN: i32 = -2147207631i32; +pub const FTE_E_RETRY_HUGE_DOC: i32 = -2147207608i32; +pub const FTE_E_RETRY_SINGLE_DOC_PER_BATCH: i32 = -2147207599i32; +pub const FTE_E_SECRET_NOT_FOUND: i32 = -2147207678i32; +pub const FTE_E_SERIAL_STREAM_CORRUPT: i32 = -2147207613i32; +pub const FTE_E_STACK_CORRUPTED: i32 = -2147207615i32; +pub const FTE_E_STATIC_THREAD_INVALID_ARGUMENTS: i32 = -2147207657i32; +pub const FTE_E_UNEXPECTED_EXIT: i32 = -2147207602i32; +pub const FTE_E_UNKNOWN_FD_TYPE: i32 = -2147207607i32; +pub const FTE_E_UNKNOWN_PLUGIN: i32 = -2147207628i32; +pub const FTE_E_UPGRADE_INTERFACE_ALREADY_INSTANTIATED: i32 = -2147207616i32; +pub const FTE_E_UPGRADE_INTERFACE_ALREADY_SHUTDOWN: i32 = -2147207617i32; +pub const FTE_E_URB_TOO_BIG: i32 = -2147207664i32; +pub const FTE_INVALID_ADMIN_CLIENT: i32 = -2147207653i32; +pub const FTE_S_BEYOND_QUOTA: i32 = 276002i32; +pub const FTE_S_CATALOG_BLOB_MISMATCHED: i32 = 276056i32; +pub const FTE_S_PROPERTY_RESET: i32 = 276057i32; +pub const FTE_S_PROPERTY_STORE_END_OF_ENUMERATION: i32 = 276028i32; +pub const FTE_S_READONLY_CATALOG: i32 = 276038i32; +pub const FTE_S_REDUNDANT: i32 = 276005i32; +pub const FTE_S_RESOURCES_STARTING_TO_GET_LOW: i32 = 275993i32; +pub const FTE_S_RESUME: i32 = 276014i32; +pub const FTE_S_STATUS_CHANGE_REQUEST: i32 = 276011i32; +pub const FTE_S_TRY_TO_FLUSH: i32 = 276055i32; +pub const FilterRegistration: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9e175b8d_f52a_11d8_b9a5_505054503030); +pub const GENERATE_METHOD_PREFIXMATCH: u32 = 1u32; +pub const GENERATE_METHOD_STEMMED: u32 = 2u32; +pub const GHTR_E_INSUFFICIENT_DISK_SPACE: i32 = -2147218037i32; +pub const GHTR_E_LOCAL_SERVER_UNAVAILABLE: i32 = -2147218055i32; +pub const GTHR_E_ADDLINKS_FAILED_WILL_RETRY_PARENT: i32 = -2147217989i32; +pub const GTHR_E_APPLICATION_NOT_FOUND: i32 = -2147218079i32; +pub const GTHR_E_AUTOCAT_UNEXPECTED: i32 = -2147218012i32; +pub const GTHR_E_BACKUP_VALIDATION_FAIL: i32 = -2147217994i32; +pub const GTHR_E_BAD_FILTER_DAEMON: i32 = -2147218119i32; +pub const GTHR_E_BAD_FILTER_HOST: i32 = -2147217993i32; +pub const GTHR_E_CANNOT_ENABLE_CHECKPOINT: i32 = -2147218002i32; +pub const GTHR_E_CANNOT_REMOVE_PLUGINMGR: i32 = -2147218078i32; +pub const GTHR_E_CONFIG_DUP_EXTENSION: i32 = -2147218165i32; +pub const GTHR_E_CONFIG_DUP_PROJECT: i32 = -2147218166i32; +pub const GTHR_E_CONTENT_ID_CONFLICT: i32 = -2147218062i32; +pub const GTHR_E_DIRMON_NOT_INITIALZED: i32 = -2147218019i32; +pub const GTHR_E_DUPLICATE_OBJECT: i32 = -2147218174i32; +pub const GTHR_E_DUPLICATE_PROJECT: i32 = -2147218094i32; +pub const GTHR_E_DUPLICATE_URL: i32 = -2147218163i32; +pub const GTHR_E_DUP_PROPERTY_MAPPING: i32 = -2147218134i32; +pub const GTHR_E_EMPTY_DACL: i32 = -2147218006i32; +pub const GTHR_E_ERROR_INITIALIZING_PERFMON: i32 = -2147218171i32; +pub const GTHR_E_ERROR_OBJECT_NOT_FOUND: i32 = -2147218170i32; +pub const GTHR_E_ERROR_WRITING_REGISTRY: i32 = -2147218172i32; +pub const GTHR_E_FILTERPOOL_NOTFOUND: i32 = -2147217990i32; +pub const GTHR_E_FILTER_FAULT: i32 = -2147218075i32; +pub const GTHR_E_FILTER_INIT: i32 = -2147218130i32; +pub const GTHR_E_FILTER_INTERRUPTED: i32 = -2147218092i32; +pub const GTHR_E_FILTER_INVALID_MESSAGE: i32 = -2147218158i32; +pub const GTHR_E_FILTER_NOT_FOUND: i32 = -2147218154i32; +pub const GTHR_E_FILTER_NO_CODEPAGE: i32 = -2147218123i32; +pub const GTHR_E_FILTER_NO_MORE_THREADS: i32 = -2147218153i32; +pub const GTHR_E_FILTER_PROCESS_TERMINATED: i32 = -2147218159i32; +pub const GTHR_E_FILTER_PROCESS_TERMINATED_QUOTA: i32 = -2147218151i32; +pub const GTHR_E_FILTER_SINGLE_THREADED: i32 = -2147218069i32; +pub const GTHR_E_FOLDER_CRAWLED_BY_ANOTHER_WORKSPACE: i32 = -2147218007i32; +pub const GTHR_E_FORCE_NOTIFICATION_RESET: i32 = -2147218065i32; +pub const GTHR_E_FROM_NOT_SPECIFIED: i32 = -2147218109i32; +pub const GTHR_E_IE_OFFLINE: i32 = -2147218120i32; +pub const GTHR_E_INSUFFICIENT_EXAMPLE_CATEGORIES: i32 = -2147218014i32; +pub const GTHR_E_INSUFFICIENT_EXAMPLE_DOCUMENTS: i32 = -2147218013i32; +pub const GTHR_E_INSUFFICIENT_FEATURE_TERMS: i32 = -2147218015i32; +pub const GTHR_E_INVALIDFUNCTION: i32 = -2147218161i32; +pub const GTHR_E_INVALID_ACCOUNT: i32 = -2147218132i32; +pub const GTHR_E_INVALID_ACCOUNT_SYNTAX: i32 = -2147218129i32; +pub const GTHR_E_INVALID_APPLICATION_NAME: i32 = -2147218077i32; +pub const GTHR_E_INVALID_CALL_FROM_WBREAKER: i32 = -2147218058i32; +pub const GTHR_E_INVALID_DIRECTORY: i32 = -2147218093i32; +pub const GTHR_E_INVALID_EXTENSION: i32 = -2147218107i32; +pub const GTHR_E_INVALID_GROW_FACTOR: i32 = -2147218106i32; +pub const GTHR_E_INVALID_HOST_NAME: i32 = -2147218096i32; +pub const GTHR_E_INVALID_LOG_FILE_NAME: i32 = -2147218103i32; +pub const GTHR_E_INVALID_MAPPING: i32 = -2147218112i32; +pub const GTHR_E_INVALID_PATH: i32 = -2147218124i32; +pub const GTHR_E_INVALID_PATH_EXPRESSION: i32 = -2147218088i32; +pub const GTHR_E_INVALID_PATH_SPEC: i32 = -2147218016i32; +pub const GTHR_E_INVALID_PROJECT_NAME: i32 = -2147218142i32; +pub const GTHR_E_INVALID_PROXY_PORT: i32 = -2147218091i32; +pub const GTHR_E_INVALID_RESOURCE_ID: i32 = -2147218035i32; +pub const GTHR_E_INVALID_RETRIES: i32 = -2147218104i32; +pub const GTHR_E_INVALID_START_ADDRESS: i32 = -2147217998i32; +pub const GTHR_E_INVALID_START_PAGE: i32 = -2147218095i32; +pub const GTHR_E_INVALID_START_PAGE_HOST: i32 = -2147218087i32; +pub const GTHR_E_INVALID_START_PAGE_PATH: i32 = -2147218080i32; +pub const GTHR_E_INVALID_STREAM_LOGS_COUNT: i32 = -2147218108i32; +pub const GTHR_E_INVALID_TIME_OUT: i32 = -2147218105i32; +pub const GTHR_E_JET_BACKUP_ERROR: i32 = -2147218026i32; +pub const GTHR_E_JET_RESTORE_ERROR: i32 = -2147218025i32; +pub const GTHR_E_LOCAL_GROUPS_EXPANSION_INTERNAL_ERROR: i32 = -2147216867i32; +pub const GTHR_E_NAME_TOO_LONG: i32 = -2147218156i32; +pub const GTHR_E_NESTED_HIERARCHICAL_START_ADDRESSES: i32 = -2147218034i32; +pub const GTHR_E_NOFILTERSINK: i32 = -2147218160i32; +pub const GTHR_E_NON_FIXED_DRIVE: i32 = -2147218074i32; +pub const GTHR_E_NOTIFICATION_FILE_SHARE_INFO_NOT_AVAILABLE: i32 = -2147218040i32; +pub const GTHR_E_NOTIFICATION_LOCAL_PATH_MUST_USE_FIXED_DRIVE: i32 = -2147218039i32; +pub const GTHR_E_NOTIFICATION_START_ADDRESS_INVALID: i32 = -2147218042i32; +pub const GTHR_E_NOTIFICATION_START_PAGE: i32 = -2147218137i32; +pub const GTHR_E_NOTIFICATION_TYPE_NOT_SUPPORTED: i32 = -2147218041i32; +pub const GTHR_E_NOTIF_ACCESS_TOKEN_UPDATED: i32 = -2147218020i32; +pub const GTHR_E_NOTIF_BEING_REMOVED: i32 = -2147218018i32; +pub const GTHR_E_NOTIF_EXCESSIVE_THROUGHPUT: i32 = -2147218017i32; +pub const GTHR_E_NO_IDENTITY: i32 = -2147218155i32; +pub const GTHR_E_NO_PRTCLHNLR: i32 = -2147218121i32; +pub const GTHR_E_NTF_CLIENT_NOT_SUBSCRIBED: i32 = -1073476167i32; +pub const GTHR_E_OBJECT_NOT_VALID: i32 = -2147218005i32; +pub const GTHR_E_OUT_OF_DOC_ID: i32 = -2147218138i32; +pub const GTHR_E_PIPE_NOT_CONNECTTED: i32 = -2147217996i32; +pub const GTHR_E_PLUGIN_NOT_REGISTERED: i32 = -2147218021i32; +pub const GTHR_E_PROJECT_NOT_INITIALIZED: i32 = -2147218149i32; +pub const GTHR_E_PROPERTIES_EXCEEDED: i32 = -2147218000i32; +pub const GTHR_E_PROPERTY_LIST_NOT_INITIALIZED: i32 = -2147218057i32; +pub const GTHR_E_PROXY_NAME: i32 = -2147218127i32; +pub const GTHR_E_PRT_HNDLR_PROGID_MISSING: i32 = -2147218152i32; +pub const GTHR_E_RECOVERABLE_EXOLEDB_ERROR: i32 = -2147218060i32; +pub const GTHR_E_RETRY: i32 = -2147218027i32; +pub const GTHR_E_SCHEMA_ERRORS_OCCURRED: i32 = -2147218054i32; +pub const GTHR_E_SCOPES_EXCEEDED: i32 = -2147218001i32; +pub const GTHR_E_SECRET_NOT_FOUND: i32 = -2147218089i32; +pub const GTHR_E_SERVER_UNAVAILABLE: i32 = -2147218126i32; +pub const GTHR_E_SHUTTING_DOWN: i32 = -2147218141i32; +pub const GTHR_E_SINGLE_THREADED_EMBEDDING: i32 = -2147218011i32; +pub const GTHR_E_TIMEOUT: i32 = -2147218053i32; +pub const GTHR_E_TOO_MANY_PLUGINS: i32 = -2147218162i32; +pub const GTHR_E_UNABLE_TO_READ_EXCHANGE_STORE: i32 = -2147218061i32; +pub const GTHR_E_UNABLE_TO_READ_REGISTRY: i32 = -2147218173i32; +pub const GTHR_E_UNKNOWN_PROTOCOL: i32 = -2147218150i32; +pub const GTHR_E_UNSUPPORTED_PROPERTY_TYPE: i32 = -2147218157i32; +pub const GTHR_E_URL_EXCLUDED: i32 = -2147218169i32; +pub const GTHR_E_URL_UNIDENTIFIED: i32 = -2147218067i32; +pub const GTHR_E_USER_AGENT_NOT_SPECIFIED: i32 = -2147218111i32; +pub const GTHR_E_VALUE_NOT_AVAILABLE: i32 = -2147218139i32; +pub const GTHR_S_BAD_FILE_LINK: i32 = 265580i32; +pub const GTHR_S_CANNOT_FILTER: i32 = 265520i32; +pub const GTHR_S_CANNOT_WORDBREAK: i32 = 265638i32; +pub const GTHR_S_CONFIG_HAS_ACCOUNTS: i32 = 265558i32; +pub const GTHR_S_CRAWL_ADAPTIVE: i32 = 265605i32; +pub const GTHR_S_CRAWL_FULL: i32 = 265603i32; +pub const GTHR_S_CRAWL_INCREMENTAL: i32 = 265604i32; +pub const GTHR_S_CRAWL_SCHEDULED: i32 = 265576i32; +pub const GTHR_S_END_PROCESS_LOOP_NOTIFY_QUEUE: i32 = 265584i32; +pub const GTHR_S_END_STD_CHUNKS: i32 = 265508i32; +pub const GTHR_S_MODIFIED_PARTS: i32 = 265592i32; +pub const GTHR_S_NOT_ALL_PARTS: i32 = 265582i32; +pub const GTHR_S_NO_CRAWL_SEEDS: i32 = 265515i32; +pub const GTHR_S_NO_INDEX: i32 = 265616i32; +pub const GTHR_S_OFFICE_CHILD: i32 = 265626i32; +pub const GTHR_S_PAUSE_REASON_BACKOFF: i32 = 265620i32; +pub const GTHR_S_PAUSE_REASON_EXTERNAL: i32 = 265618i32; +pub const GTHR_S_PAUSE_REASON_PROFILE_IMPORT: i32 = 265651i32; +pub const GTHR_S_PAUSE_REASON_UPGRADING: i32 = 265619i32; +pub const GTHR_S_PROB_NOT_MODIFIED: i32 = 265575i32; +pub const GTHR_S_START_FILTER_FROM_BODY: i32 = 265585i32; +pub const GTHR_S_START_FILTER_FROM_PROTOCOL: i32 = 265578i32; +pub const GTHR_S_STATUS_CHANGE_IGNORED: i32 = 265500i32; +pub const GTHR_S_STATUS_END_CRAWL: i32 = 265501i32; +pub const GTHR_S_STATUS_PAUSE: i32 = 265505i32; +pub const GTHR_S_STATUS_RESET: i32 = 265502i32; +pub const GTHR_S_STATUS_RESUME: i32 = 265504i32; +pub const GTHR_S_STATUS_START: i32 = 265526i32; +pub const GTHR_S_STATUS_STOP: i32 = 265523i32; +pub const GTHR_S_STATUS_THROTTLE: i32 = 265503i32; +pub const GTHR_S_TRANSACTION_IGNORED: i32 = 265577i32; +pub const GTHR_S_USE_MIME_FILTER: i32 = 265639i32; +pub const IDENTIFIER_SDK_ERROR: u32 = 268435456u32; +pub const IDENTIFIER_SDK_MASK: u32 = 4026531840u32; +pub const IDS_MON_BUILTIN_PROPERTY: ::windows_sys::core::HRESULT = 264511i32; +pub const IDS_MON_BUILTIN_VIEW: ::windows_sys::core::HRESULT = 264503i32; +pub const IDS_MON_CANNOT_CAST: ::windows_sys::core::HRESULT = 264518i32; +pub const IDS_MON_CANNOT_CONVERT: ::windows_sys::core::HRESULT = 264507i32; +pub const IDS_MON_COLUMN_NOT_DEFINED: ::windows_sys::core::HRESULT = 264502i32; +pub const IDS_MON_DATE_OUT_OF_RANGE: ::windows_sys::core::HRESULT = 264519i32; +pub const IDS_MON_DEFAULT_ERROR: ::windows_sys::core::HRESULT = 264495i32; +pub const IDS_MON_ILLEGAL_PASSTHROUGH: ::windows_sys::core::HRESULT = 264496i32; +pub const IDS_MON_INVALIDSELECT_COALESCE: ::windows_sys::core::HRESULT = 264517i32; +pub const IDS_MON_INVALID_CATALOG: ::windows_sys::core::HRESULT = 264516i32; +pub const IDS_MON_INVALID_IN_GROUP_CLAUSE: ::windows_sys::core::HRESULT = 264520i32; +pub const IDS_MON_MATCH_STRING: ::windows_sys::core::HRESULT = 264513i32; +pub const IDS_MON_NOT_COLUMN_OF_VIEW: ::windows_sys::core::HRESULT = 264510i32; +pub const IDS_MON_ORDINAL_OUT_OF_RANGE: ::windows_sys::core::HRESULT = 264500i32; +pub const IDS_MON_OR_NOT: ::windows_sys::core::HRESULT = 264506i32; +pub const IDS_MON_OUT_OF_MEMORY: ::windows_sys::core::HRESULT = 264504i32; +pub const IDS_MON_OUT_OF_RANGE: ::windows_sys::core::HRESULT = 264508i32; +pub const IDS_MON_PARSE_ERR_1_PARAM: ::windows_sys::core::HRESULT = 264497i32; +pub const IDS_MON_PARSE_ERR_2_PARAM: ::windows_sys::core::HRESULT = 264498i32; +pub const IDS_MON_PROPERTY_NAME_IN_VIEW: ::windows_sys::core::HRESULT = 264514i32; +pub const IDS_MON_RELATIVE_INTERVAL: ::windows_sys::core::HRESULT = 264509i32; +pub const IDS_MON_SELECT_STAR: ::windows_sys::core::HRESULT = 264505i32; +pub const IDS_MON_SEMI_COLON: ::windows_sys::core::HRESULT = 264499i32; +pub const IDS_MON_VIEW_ALREADY_DEFINED: ::windows_sys::core::HRESULT = 264515i32; +pub const IDS_MON_VIEW_NOT_DEFINED: ::windows_sys::core::HRESULT = 264501i32; +pub const IDS_MON_WEIGHT_OUT_OF_RANGE: ::windows_sys::core::HRESULT = 264512i32; +pub const IDX_E_BUILD_IN_PROGRESS: i32 = -2147217147i32; +pub const IDX_E_CATALOG_DISMOUNTED: i32 = -2147217124i32; +pub const IDX_E_CORRUPT_INDEX: i32 = -2147217136i32; +pub const IDX_E_DISKFULL: i32 = -2147217138i32; +pub const IDX_E_DOCUMENT_ABORTED: i32 = -2147217125i32; +pub const IDX_E_DSS_NOT_CONNECTED: i32 = -2147217126i32; +pub const IDX_E_IDXLSTFILE_CORRUPT: i32 = -2147217146i32; +pub const IDX_E_INVALIDTAG: i32 = -2147217151i32; +pub const IDX_E_INVALID_INDEX: i32 = -2147217137i32; +pub const IDX_E_METAFILE_CORRUPT: i32 = -2147217150i32; +pub const IDX_E_NOISELIST_NOTFOUND: i32 = -2147217141i32; +pub const IDX_E_NOT_LOADED: i32 = -2147217129i32; +pub const IDX_E_OBJECT_NOT_FOUND: i32 = -2147217144i32; +pub const IDX_E_PROPSTORE_INIT_FAILED: i32 = -2147217134i32; +pub const IDX_E_PROP_MAJOR_VERSION_MISMATCH: i32 = -2147217128i32; +pub const IDX_E_PROP_MINOR_VERSION_MISMATCH: i32 = -2147217127i32; +pub const IDX_E_PROP_STATE_CORRUPT: i32 = -2147217133i32; +pub const IDX_E_PROP_STOPPED: i32 = -2147217139i32; +pub const IDX_E_REGISTRY_ENTRY: i32 = -2147217145i32; +pub const IDX_E_SEARCH_SERVER_ALREADY_EXISTS: i32 = -2147217148i32; +pub const IDX_E_SEARCH_SERVER_NOT_FOUND: i32 = -2147217143i32; +pub const IDX_E_STEMMER_NOTFOUND: i32 = -2147217140i32; +pub const IDX_E_TOO_MANY_SEARCH_SERVERS: i32 = -2147217149i32; +pub const IDX_E_USE_APPGLOBAL_PROPTABLE: i32 = -2147217120i32; +pub const IDX_E_USE_DEFAULT_CONTENTCLASS: i32 = -2147217121i32; +pub const IDX_E_WB_NOTFOUND: i32 = -2147217142i32; +pub const IDX_S_DSS_NOT_AVAILABLE: i32 = 266525i32; +pub const IDX_S_NO_BUILD_IN_PROGRESS: i32 = 266516i32; +pub const IDX_S_SEARCH_SERVER_ALREADY_EXISTS: i32 = 266517i32; +pub const IDX_S_SEARCH_SERVER_DOES_NOT_EXIST: i32 = 266518i32; +pub const ILK_EXPLICIT_EXCLUDED: INTERVAL_LIMIT_KIND = 1i32; +pub const ILK_EXPLICIT_INCLUDED: INTERVAL_LIMIT_KIND = 0i32; +pub const ILK_NEGATIVE_INFINITY: INTERVAL_LIMIT_KIND = 2i32; +pub const ILK_POSITIVE_INFINITY: INTERVAL_LIMIT_KIND = 3i32; +pub const INET_E_AGENT_CACHE_SIZE_EXCEEDED: ::windows_sys::core::HRESULT = -2146693246i32; +pub const INET_E_AGENT_CONNECTION_FAILED: ::windows_sys::core::HRESULT = -2146693245i32; +pub const INET_E_AGENT_EXCEEDING_CACHE_SIZE: ::windows_sys::core::HRESULT = -2146693232i32; +pub const INET_E_AGENT_MAX_SIZE_EXCEEDED: ::windows_sys::core::HRESULT = -2146693248i32; +pub const INET_E_SCHEDULED_EXCLUDE_RANGE: ::windows_sys::core::HRESULT = -2146693241i32; +pub const INET_E_SCHEDULED_UPDATES_DISABLED: ::windows_sys::core::HRESULT = -2146693244i32; +pub const INET_E_SCHEDULED_UPDATES_RESTRICTED: ::windows_sys::core::HRESULT = -2146693243i32; +pub const INET_E_SCHEDULED_UPDATE_INTERVAL: ::windows_sys::core::HRESULT = -2146693242i32; +pub const INET_S_AGENT_INCREASED_CACHE_SIZE: ::windows_sys::core::HRESULT = 790416i32; +pub const INET_S_AGENT_PART_FAIL: ::windows_sys::core::HRESULT = 790401i32; +pub const Interval: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd957171f_4bf9_4de2_bcd5_c70a7ca55836); +pub const JET_GET_PROP_STORE_ERROR: i32 = -1073732822i32; +pub const JET_INIT_ERROR: i32 = -1073732824i32; +pub const JET_MULTIINSTANCE_DISABLED: i32 = -2147474645i32; +pub const JET_NEW_PROP_STORE_ERROR: i32 = -1073732823i32; +pub const JPS_E_CATALOG_DECSRIPTION_MISSING: i32 = -2147217023i32; +pub const JPS_E_INSUFFICIENT_DATABASE_RESOURCES: i32 = -2147217019i32; +pub const JPS_E_INSUFFICIENT_DATABASE_SESSIONS: i32 = -2147217020i32; +pub const JPS_E_INSUFFICIENT_VERSION_STORAGE: i32 = -2147217021i32; +pub const JPS_E_JET_ERR: i32 = -2147217025i32; +pub const JPS_E_MISSING_INFORMATION: i32 = -2147217022i32; +pub const JPS_E_PROPAGATION_CORRUPTION: i32 = -2147217016i32; +pub const JPS_E_PROPAGATION_FILE: i32 = -2147217017i32; +pub const JPS_E_PROPAGATION_VERSION_MISMATCH: i32 = -2147217015i32; +pub const JPS_E_SCHEMA_ERROR: i32 = -2147217018i32; +pub const JPS_E_SHARING_VIOLATION: i32 = -2147217014i32; +pub const JPS_S_DUPLICATE_DOC_DETECTED: i32 = 266624i32; +pub const KAGPROPVAL_CONCUR_LOCK: u32 = 4u32; +pub const KAGPROPVAL_CONCUR_READ_ONLY: u32 = 8u32; +pub const KAGPROPVAL_CONCUR_ROWVER: u32 = 1u32; +pub const KAGPROPVAL_CONCUR_VALUES: u32 = 2u32; +pub const KAGPROP_ACCESSIBLEPROCEDURES: u32 = 2u32; +pub const KAGPROP_ACCESSIBLETABLES: u32 = 3u32; +pub const KAGPROP_ACTIVESTATEMENTS: u32 = 24u32; +pub const KAGPROP_AUTH_SERVERINTEGRATED: u32 = 3u32; +pub const KAGPROP_AUTH_TRUSTEDCONNECTION: u32 = 2u32; +pub const KAGPROP_BLOBSONFOCURSOR: u32 = 8u32; +pub const KAGPROP_CONCURRENCY: u32 = 7u32; +pub const KAGPROP_CURSOR: u32 = 6u32; +pub const KAGPROP_DRIVERNAME: u32 = 7u32; +pub const KAGPROP_DRIVERODBCVER: u32 = 9u32; +pub const KAGPROP_DRIVERVER: u32 = 8u32; +pub const KAGPROP_FILEUSAGE: u32 = 23u32; +pub const KAGPROP_FORCENOPARAMETERREBIND: u32 = 11u32; +pub const KAGPROP_FORCENOPREPARE: u32 = 12u32; +pub const KAGPROP_FORCENOREEXECUTE: u32 = 13u32; +pub const KAGPROP_FORCESSFIREHOSEMODE: u32 = 10u32; +pub const KAGPROP_INCLUDENONEXACT: u32 = 9u32; +pub const KAGPROP_IRowsetChangeExtInfo: u32 = 5u32; +pub const KAGPROP_LIKEESCAPECLAUSE: u32 = 10u32; +pub const KAGPROP_MARSHALLABLE: u32 = 3u32; +pub const KAGPROP_MAXCOLUMNSINGROUPBY: u32 = 12u32; +pub const KAGPROP_MAXCOLUMNSININDEX: u32 = 13u32; +pub const KAGPROP_MAXCOLUMNSINORDERBY: u32 = 14u32; +pub const KAGPROP_MAXCOLUMNSINSELECT: u32 = 15u32; +pub const KAGPROP_MAXCOLUMNSINTABLE: u32 = 16u32; +pub const KAGPROP_NUMERICFUNCTIONS: u32 = 17u32; +pub const KAGPROP_ODBCSQLCONFORMANCE: u32 = 18u32; +pub const KAGPROP_ODBCSQLOPTIEF: u32 = 4u32; +pub const KAGPROP_OJCAPABILITY: u32 = 5u32; +pub const KAGPROP_OUTERJOINS: u32 = 19u32; +pub const KAGPROP_POSITIONONNEWROW: u32 = 4u32; +pub const KAGPROP_PROCEDURES: u32 = 6u32; +pub const KAGPROP_QUERYBASEDUPDATES: u32 = 2u32; +pub const KAGPROP_SPECIALCHARACTERS: u32 = 11u32; +pub const KAGPROP_STRINGFUNCTIONS: u32 = 20u32; +pub const KAGPROP_SYSTEMFUNCTIONS: u32 = 21u32; +pub const KAGPROP_TIMEDATEFUNCTIONS: u32 = 22u32; +pub const KAGREQDIAGFLAGS_HEADER: KAGREQDIAGFLAGSENUM = 1i32; +pub const KAGREQDIAGFLAGS_RECORD: KAGREQDIAGFLAGSENUM = 2i32; +pub const LOCKMODE_EXCLUSIVE: LOCKMODEENUM = 1i32; +pub const LOCKMODE_INVALID: LOCKMODEENUM = 0i32; +pub const LOCKMODE_SHARED: LOCKMODEENUM = 2i32; +pub const LeafCondition: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x52f15c89_5a17_48e1_bbcd_46a3f89c7cc2); +pub const MAXNAME: u32 = 129u32; +pub const MAXNUMERICLEN: u32 = 16u32; +pub const MAXUSEVERITY: u32 = 18u32; +pub const MAX_QUERY_RANK: u32 = 1000u32; +pub const MDAXIS_CHAPTERS: u32 = 4u32; +pub const MDAXIS_COLUMNS: u32 = 0u32; +pub const MDAXIS_PAGES: u32 = 2u32; +pub const MDAXIS_ROWS: u32 = 1u32; +pub const MDAXIS_SECTIONS: u32 = 3u32; +pub const MDAXIS_SLICERS: u32 = 4294967295u32; +pub const MDDISPINFO_DRILLED_DOWN: u32 = 65536u32; +pub const MDDISPINFO_PARENT_SAME_AS_PREV: u32 = 131072u32; +pub const MDFF_BOLD: u32 = 1u32; +pub const MDFF_ITALIC: u32 = 2u32; +pub const MDFF_STRIKEOUT: u32 = 8u32; +pub const MDFF_UNDERLINE: u32 = 4u32; +pub const MDLEVEL_TYPE_ALL: u32 = 1u32; +pub const MDLEVEL_TYPE_CALCULATED: u32 = 2u32; +pub const MDLEVEL_TYPE_REGULAR: u32 = 0u32; +pub const MDLEVEL_TYPE_RESERVED1: u32 = 8u32; +pub const MDLEVEL_TYPE_TIME: u32 = 4u32; +pub const MDLEVEL_TYPE_TIME_DAYS: u32 = 516u32; +pub const MDLEVEL_TYPE_TIME_HALF_YEAR: u32 = 36u32; +pub const MDLEVEL_TYPE_TIME_HOURS: u32 = 772u32; +pub const MDLEVEL_TYPE_TIME_MINUTES: u32 = 1028u32; +pub const MDLEVEL_TYPE_TIME_MONTHS: u32 = 132u32; +pub const MDLEVEL_TYPE_TIME_QUARTERS: u32 = 68u32; +pub const MDLEVEL_TYPE_TIME_SECONDS: u32 = 2052u32; +pub const MDLEVEL_TYPE_TIME_UNDEFINED: u32 = 4100u32; +pub const MDLEVEL_TYPE_TIME_WEEKS: u32 = 260u32; +pub const MDLEVEL_TYPE_TIME_YEARS: u32 = 20u32; +pub const MDLEVEL_TYPE_UNKNOWN: u32 = 0u32; +pub const MDMEASURE_AGGR_AVG: u32 = 5u32; +pub const MDMEASURE_AGGR_CALCULATED: u32 = 127u32; +pub const MDMEASURE_AGGR_COUNT: u32 = 2u32; +pub const MDMEASURE_AGGR_MAX: u32 = 4u32; +pub const MDMEASURE_AGGR_MIN: u32 = 3u32; +pub const MDMEASURE_AGGR_STD: u32 = 7u32; +pub const MDMEASURE_AGGR_SUM: u32 = 1u32; +pub const MDMEASURE_AGGR_UNKNOWN: u32 = 0u32; +pub const MDMEASURE_AGGR_VAR: u32 = 6u32; +pub const MDMEMBER_TYPE_ALL: u32 = 2u32; +pub const MDMEMBER_TYPE_FORMULA: u32 = 4u32; +pub const MDMEMBER_TYPE_MEASURE: u32 = 3u32; +pub const MDMEMBER_TYPE_REGULAR: u32 = 1u32; +pub const MDMEMBER_TYPE_RESERVE1: u32 = 5u32; +pub const MDMEMBER_TYPE_RESERVE2: u32 = 6u32; +pub const MDMEMBER_TYPE_RESERVE3: u32 = 7u32; +pub const MDMEMBER_TYPE_RESERVE4: u32 = 8u32; +pub const MDMEMBER_TYPE_UNKNOWN: u32 = 0u32; +pub const MDPROPVAL_AU_UNCHANGED: i32 = 1i32; +pub const MDPROPVAL_AU_UNKNOWN: i32 = 2i32; +pub const MDPROPVAL_AU_UNSUPPORTED: i32 = 0i32; +pub const MDPROPVAL_FS_FULL_SUPPORT: i32 = 1i32; +pub const MDPROPVAL_FS_GENERATED_COLUMN: i32 = 2i32; +pub const MDPROPVAL_FS_GENERATED_DIMENSION: i32 = 3i32; +pub const MDPROPVAL_FS_NO_SUPPORT: i32 = 4i32; +pub const MDPROPVAL_MC_SEARCHEDCASE: i32 = 2i32; +pub const MDPROPVAL_MC_SINGLECASE: i32 = 1i32; +pub const MDPROPVAL_MD_AFTER: i32 = 4i32; +pub const MDPROPVAL_MD_BEFORE: i32 = 2i32; +pub const MDPROPVAL_MD_SELF: i32 = 1i32; +pub const MDPROPVAL_MF_CREATE_CALCMEMBERS: i32 = 4i32; +pub const MDPROPVAL_MF_CREATE_NAMEDSETS: i32 = 8i32; +pub const MDPROPVAL_MF_SCOPE_GLOBAL: i32 = 32i32; +pub const MDPROPVAL_MF_SCOPE_SESSION: i32 = 16i32; +pub const MDPROPVAL_MF_WITH_CALCMEMBERS: i32 = 1i32; +pub const MDPROPVAL_MF_WITH_NAMEDSETS: i32 = 2i32; +pub const MDPROPVAL_MJC_IMPLICITCUBE: i32 = 4i32; +pub const MDPROPVAL_MJC_MULTICUBES: i32 = 2i32; +pub const MDPROPVAL_MJC_SINGLECUBE: i32 = 1i32; +pub const MDPROPVAL_MMF_CLOSINGPERIOD: i32 = 8i32; +pub const MDPROPVAL_MMF_COUSIN: i32 = 1i32; +pub const MDPROPVAL_MMF_OPENINGPERIOD: i32 = 4i32; +pub const MDPROPVAL_MMF_PARALLELPERIOD: i32 = 2i32; +pub const MDPROPVAL_MNF_AGGREGATE: i32 = 16i32; +pub const MDPROPVAL_MNF_CORRELATION: i32 = 64i32; +pub const MDPROPVAL_MNF_COVARIANCE: i32 = 32i32; +pub const MDPROPVAL_MNF_DRILLDOWNLEVEL: i32 = 2048i32; +pub const MDPROPVAL_MNF_DRILLDOWNLEVELBOTTOM: i32 = 32768i32; +pub const MDPROPVAL_MNF_DRILLDOWNLEVELTOP: i32 = 16384i32; +pub const MDPROPVAL_MNF_DRILLDOWNMEMBERBOTTOM: i32 = 8192i32; +pub const MDPROPVAL_MNF_DRILLDOWNMEMBERTOP: i32 = 4096i32; +pub const MDPROPVAL_MNF_DRILLUPLEVEL: i32 = 131072i32; +pub const MDPROPVAL_MNF_DRILLUPMEMBER: i32 = 65536i32; +pub const MDPROPVAL_MNF_LINREG2: i32 = 512i32; +pub const MDPROPVAL_MNF_LINREGPOINT: i32 = 1024i32; +pub const MDPROPVAL_MNF_LINREGSLOPE: i32 = 128i32; +pub const MDPROPVAL_MNF_LINREGVARIANCE: i32 = 256i32; +pub const MDPROPVAL_MNF_MEDIAN: i32 = 1i32; +pub const MDPROPVAL_MNF_RANK: i32 = 8i32; +pub const MDPROPVAL_MNF_STDDEV: i32 = 4i32; +pub const MDPROPVAL_MNF_VAR: i32 = 2i32; +pub const MDPROPVAL_MOQ_CATALOG_CUBE: i32 = 2i32; +pub const MDPROPVAL_MOQ_CUBE_DIM: i32 = 8i32; +pub const MDPROPVAL_MOQ_DATASOURCE_CUBE: i32 = 1i32; +pub const MDPROPVAL_MOQ_DIMHIER_LEVEL: i32 = 32i32; +pub const MDPROPVAL_MOQ_DIMHIER_MEMBER: i32 = 256i32; +pub const MDPROPVAL_MOQ_DIM_HIER: i32 = 16i32; +pub const MDPROPVAL_MOQ_LEVEL_MEMBER: i32 = 64i32; +pub const MDPROPVAL_MOQ_MEMBER_MEMBER: i32 = 128i32; +pub const MDPROPVAL_MOQ_OUTERREFERENCE: i32 = 1i32; +pub const MDPROPVAL_MOQ_SCHEMA_CUBE: i32 = 4i32; +pub const MDPROPVAL_MSC_GREATERTHAN: i32 = 2i32; +pub const MDPROPVAL_MSC_GREATERTHANEQUAL: i32 = 8i32; +pub const MDPROPVAL_MSC_LESSTHAN: i32 = 1i32; +pub const MDPROPVAL_MSC_LESSTHANEQUAL: i32 = 4i32; +pub const MDPROPVAL_MSF_BOTTOMPERCENT: i32 = 2i32; +pub const MDPROPVAL_MSF_BOTTOMSUM: i32 = 8i32; +pub const MDPROPVAL_MSF_DRILLDOWNLEVEL: i32 = 2048i32; +pub const MDPROPVAL_MSF_DRILLDOWNLEVELBOTTOM: i32 = 32768i32; +pub const MDPROPVAL_MSF_DRILLDOWNLEVELTOP: i32 = 16384i32; +pub const MDPROPVAL_MSF_DRILLDOWNMEMBBER: i32 = 1024i32; +pub const MDPROPVAL_MSF_DRILLDOWNMEMBERBOTTOM: i32 = 8192i32; +pub const MDPROPVAL_MSF_DRILLDOWNMEMBERTOP: i32 = 4096i32; +pub const MDPROPVAL_MSF_DRILLUPLEVEL: i32 = 131072i32; +pub const MDPROPVAL_MSF_DRILLUPMEMBER: i32 = 65536i32; +pub const MDPROPVAL_MSF_LASTPERIODS: i32 = 32i32; +pub const MDPROPVAL_MSF_MTD: i32 = 256i32; +pub const MDPROPVAL_MSF_PERIODSTODATE: i32 = 16i32; +pub const MDPROPVAL_MSF_QTD: i32 = 128i32; +pub const MDPROPVAL_MSF_TOGGLEDRILLSTATE: i32 = 262144i32; +pub const MDPROPVAL_MSF_TOPPERCENT: i32 = 1i32; +pub const MDPROPVAL_MSF_TOPSUM: i32 = 4i32; +pub const MDPROPVAL_MSF_WTD: i32 = 512i32; +pub const MDPROPVAL_MSF_YTD: i32 = 64i32; +pub const MDPROPVAL_MS_MULTIPLETUPLES: i32 = 1i32; +pub const MDPROPVAL_MS_SINGLETUPLE: i32 = 2i32; +pub const MDPROPVAL_NL_NAMEDLEVELS: i32 = 1i32; +pub const MDPROPVAL_NL_NUMBEREDLEVELS: i32 = 2i32; +pub const MDPROPVAL_NL_SCHEMAONLY: i32 = 4i32; +pub const MDPROPVAL_NME_ALLDIMENSIONS: i32 = 0i32; +pub const MDPROPVAL_NME_MEASURESONLY: i32 = 1i32; +pub const MDPROPVAL_RR_NORANGEROWSET: i32 = 1i32; +pub const MDPROPVAL_RR_READONLY: i32 = 2i32; +pub const MDPROPVAL_RR_UPDATE: i32 = 4i32; +pub const MDPROPVAL_VISUAL_MODE_DEFAULT: i32 = 0i32; +pub const MDPROPVAL_VISUAL_MODE_VISUAL: i32 = 1i32; +pub const MDPROPVAL_VISUAL_MODE_VISUAL_OFF: i32 = 2i32; +pub const MDPROP_AGGREGATECELL_UPDATE: DBPROPENUM20 = 230i32; +pub const MDPROP_AXES: DBPROPENUM20 = 252i32; +pub const MDPROP_CELL: u32 = 2u32; +pub const MDPROP_FLATTENING_SUPPORT: DBPROPENUM20 = 253i32; +pub const MDPROP_MDX_AGGREGATECELL_UPDATE: DBPROPENUM20 = 230i32; +pub const MDPROP_MDX_CASESUPPORT: DBPROPENUM20 = 222i32; +pub const MDPROP_MDX_CUBEQUALIFICATION: DBPROPENUM20 = 219i32; +pub const MDPROP_MDX_DESCFLAGS: DBPROPENUM20 = 225i32; +pub const MDPROP_MDX_FORMULAS: DBPROPENUM20 = 229i32; +pub const MDPROP_MDX_JOINCUBES: DBPROPENUM20 = 254i32; +pub const MDPROP_MDX_MEMBER_FUNCTIONS: DBPROPENUM20 = 227i32; +pub const MDPROP_MDX_NONMEASURE_EXPRESSIONS: DBPROPENUM20 = 262i32; +pub const MDPROP_MDX_NUMERIC_FUNCTIONS: DBPROPENUM20 = 228i32; +pub const MDPROP_MDX_OBJQUALIFICATION: DBPROPENUM20 = 261i32; +pub const MDPROP_MDX_OUTERREFERENCE: DBPROPENUM20 = 220i32; +pub const MDPROP_MDX_QUERYBYPROPERTY: DBPROPENUM20 = 221i32; +pub const MDPROP_MDX_SET_FUNCTIONS: DBPROPENUM20 = 226i32; +pub const MDPROP_MDX_SLICER: DBPROPENUM20 = 218i32; +pub const MDPROP_MDX_STRING_COMPOP: DBPROPENUM20 = 224i32; +pub const MDPROP_MEMBER: u32 = 1u32; +pub const MDPROP_NAMED_LEVELS: DBPROPENUM20 = 255i32; +pub const MDPROP_RANGEROWSET: DBPROPENUM20 = 256i32; +pub const MDPROP_VISUALMODE: DBPROPENUM26 = 293i32; +pub const MDSTATUS_S_CELLEMPTY: DBSTATUSENUM20 = 14i32; +pub const MDTREEOP_ANCESTORS: u32 = 32u32; +pub const MDTREEOP_CHILDREN: u32 = 1u32; +pub const MDTREEOP_DESCENDANTS: u32 = 16u32; +pub const MDTREEOP_PARENT: u32 = 4u32; +pub const MDTREEOP_SELF: u32 = 8u32; +pub const MDTREEOP_SIBLINGS: u32 = 2u32; +pub const MD_DIMTYPE_MEASURE: u32 = 2u32; +pub const MD_DIMTYPE_OTHER: u32 = 3u32; +pub const MD_DIMTYPE_TIME: u32 = 1u32; +pub const MD_DIMTYPE_UNKNOWN: u32 = 0u32; +pub const MD_E_BADCOORDINATE: ::windows_sys::core::HRESULT = -2147217822i32; +pub const MD_E_BADTUPLE: ::windows_sys::core::HRESULT = -2147217823i32; +pub const MD_E_INVALIDAXIS: ::windows_sys::core::HRESULT = -2147217821i32; +pub const MD_E_INVALIDCELLRANGE: ::windows_sys::core::HRESULT = -2147217820i32; +pub const MINFATALERR: u32 = 20u32; +pub const MIN_USER_DATATYPE: u32 = 256u32; +pub const MSDAINITIALIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2206cdb0_19c1_11d1_89e0_00c04fd7a829); +pub const MSDAORA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe8cc4cbe_fdff_11d0_b865_00a0c9081c1d); +pub const MSDAORA8: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f06a373_dd6a_43db_b4e0_1fc121e5e62b); +pub const MSDAORA8_ERROR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f06a374_dd6a_43db_b4e0_1fc121e5e62b); +pub const MSDAORA_ERROR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe8cc4cbf_fdff_11d0_b865_00a0c9081c1d); +pub const MSG_CI_CORRUPT_INDEX_COMPONENT: ::windows_sys::core::HRESULT = 1073745962i32; +pub const MSG_CI_CREATE_SEVER_ITEM_FAILED: ::windows_sys::core::HRESULT = -2147479480i32; +pub const MSG_CI_MASTER_MERGE_ABORTED: ::windows_sys::core::HRESULT = 1073745928i32; +pub const MSG_CI_MASTER_MERGE_ABORTED_LOW_DISK: ::windows_sys::core::HRESULT = 1073745987i32; +pub const MSG_CI_MASTER_MERGE_CANT_RESTART: ::windows_sys::core::HRESULT = -1073737718i32; +pub const MSG_CI_MASTER_MERGE_CANT_START: ::windows_sys::core::HRESULT = -1073737719i32; +pub const MSG_CI_MASTER_MERGE_COMPLETED: ::windows_sys::core::HRESULT = 1073745927i32; +pub const MSG_CI_MASTER_MERGE_REASON_EXPECTED_DOCS: ::windows_sys::core::HRESULT = 1073745990i32; +pub const MSG_CI_MASTER_MERGE_REASON_EXTERNAL: ::windows_sys::core::HRESULT = 1073745988i32; +pub const MSG_CI_MASTER_MERGE_REASON_INDEX_LIMIT: ::windows_sys::core::HRESULT = 1073745989i32; +pub const MSG_CI_MASTER_MERGE_REASON_NUMBER: ::windows_sys::core::HRESULT = 1073745991i32; +pub const MSG_CI_MASTER_MERGE_RESTARTED: ::windows_sys::core::HRESULT = 1073745945i32; +pub const MSG_CI_MASTER_MERGE_STARTED: ::windows_sys::core::HRESULT = 1073745926i32; +pub const MSG_TEST_MESSAGE: i32 = 1074008064i32; +pub const MSS_E_APPALREADYEXISTS: i32 = -2147213054i32; +pub const MSS_E_APPNOTFOUND: i32 = -2147213055i32; +pub const MSS_E_CATALOGALREADYEXISTS: i32 = -2147213050i32; +pub const MSS_E_CATALOGNOTFOUND: i32 = -2147213053i32; +pub const MSS_E_CATALOGSTOPPING: i32 = -2147213052i32; +pub const MSS_E_INVALIDAPPNAME: i32 = -2147213056i32; +pub const MSS_E_UNICODEFILEHEADERMISSING: i32 = -2147213051i32; +pub const MS_PERSIST_PROGID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MSPersist"); +pub const NEC_HIGH: NAMED_ENTITY_CERTAINTY = 2i32; +pub const NEC_LOW: NAMED_ENTITY_CERTAINTY = 0i32; +pub const NEC_MEDIUM: NAMED_ENTITY_CERTAINTY = 1i32; +pub const NET_E_DISCONNECTED: i32 = -2147220733i32; +pub const NET_E_GENERAL: i32 = -2147220736i32; +pub const NET_E_INVALIDPARAMS: i32 = -2147220728i32; +pub const NET_E_OPERATIONINPROGRESS: i32 = -2147220727i32; +pub const NLADMIN_E_BUILD_CATALOG_NOT_INITIALIZED: i32 = -2147215100i32; +pub const NLADMIN_E_DUPLICATE_CATALOG: i32 = -2147215103i32; +pub const NLADMIN_E_FAILED_TO_GIVE_ACCOUNT_PRIVILEGE: i32 = -2147215101i32; +pub const NLADMIN_S_NOT_ALL_BUILD_CATALOGS_INITIALIZED: i32 = 268546i32; +pub const NOTESPH_E_ATTACHMENTS: i32 = -2147211770i32; +pub const NOTESPH_E_DB_ACCESS_DENIED: i32 = -2147211768i32; +pub const NOTESPH_E_FAIL: i32 = -2147211759i32; +pub const NOTESPH_E_ITEM_NOT_FOUND: i32 = -2147211772i32; +pub const NOTESPH_E_NOTESSETUP_ID_MAPPING_ERROR: i32 = -2147211767i32; +pub const NOTESPH_E_NO_NTID: i32 = -2147211769i32; +pub const NOTESPH_E_SERVER_CONFIG: i32 = -2147211771i32; +pub const NOTESPH_E_UNEXPECTED_STATE: i32 = -2147211775i32; +pub const NOTESPH_E_UNSUPPORTED_CONTENT_FIELD_TYPE: i32 = -2147211773i32; +pub const NOTESPH_S_IGNORE_ID: i32 = 271874i32; +pub const NOTESPH_S_LISTKNOWNFIELDS: i32 = 271888i32; +pub const NOT_N_PARSE_ERROR: ::windows_sys::core::HRESULT = 526638i32; +pub const NegationCondition: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8de9c74c_605a_4acd_bee3_2b222aa2d23d); +pub const OCC_INVALID: u32 = 4294967295u32; +pub const ODBCVER: u32 = 896u32; +pub const ODBC_ADD_DSN: u32 = 1u32; +pub const ODBC_ADD_SYS_DSN: u32 = 4u32; +pub const ODBC_BOTH_DSN: u32 = 0u32; +pub const ODBC_CONFIG_DRIVER: u32 = 3u32; +pub const ODBC_CONFIG_DRIVER_MAX: u32 = 100u32; +pub const ODBC_CONFIG_DSN: u32 = 2u32; +pub const ODBC_CONFIG_SYS_DSN: u32 = 5u32; +pub const ODBC_ERROR_COMPONENT_NOT_FOUND: u32 = 6u32; +pub const ODBC_ERROR_CREATE_DSN_FAILED: u32 = 18u32; +pub const ODBC_ERROR_GENERAL_ERR: u32 = 1u32; +pub const ODBC_ERROR_INVALID_BUFF_LEN: u32 = 2u32; +pub const ODBC_ERROR_INVALID_DSN: u32 = 9u32; +pub const ODBC_ERROR_INVALID_HWND: u32 = 3u32; +pub const ODBC_ERROR_INVALID_INF: u32 = 10u32; +pub const ODBC_ERROR_INVALID_KEYWORD_VALUE: u32 = 8u32; +pub const ODBC_ERROR_INVALID_LOG_FILE: u32 = 15u32; +pub const ODBC_ERROR_INVALID_NAME: u32 = 7u32; +pub const ODBC_ERROR_INVALID_PARAM_SEQUENCE: u32 = 14u32; +pub const ODBC_ERROR_INVALID_PATH: u32 = 12u32; +pub const ODBC_ERROR_INVALID_REQUEST_TYPE: u32 = 5u32; +pub const ODBC_ERROR_INVALID_STR: u32 = 4u32; +pub const ODBC_ERROR_LOAD_LIB_FAILED: u32 = 13u32; +pub const ODBC_ERROR_MAX: u32 = 23u32; +pub const ODBC_ERROR_NOTRANINFO: u32 = 23u32; +pub const ODBC_ERROR_OUTPUT_STRING_TRUNCATED: u32 = 22u32; +pub const ODBC_ERROR_OUT_OF_MEM: u32 = 21u32; +pub const ODBC_ERROR_REMOVE_DSN_FAILED: u32 = 20u32; +pub const ODBC_ERROR_REQUEST_FAILED: u32 = 11u32; +pub const ODBC_ERROR_USAGE_UPDATE_FAILED: u32 = 17u32; +pub const ODBC_ERROR_USER_CANCELED: u32 = 16u32; +pub const ODBC_ERROR_WRITING_SYSINFO_FAILED: u32 = 19u32; +pub const ODBC_INSTALL_COMPLETE: u32 = 2u32; +pub const ODBC_INSTALL_DRIVER: u32 = 1u32; +pub const ODBC_INSTALL_INQUIRY: u32 = 1u32; +pub const ODBC_REMOVE_DEFAULT_DSN: u32 = 7u32; +pub const ODBC_REMOVE_DRIVER: u32 = 2u32; +pub const ODBC_REMOVE_DSN: u32 = 3u32; +pub const ODBC_REMOVE_SYS_DSN: u32 = 6u32; +pub const ODBC_SYSTEM_DSN: u32 = 2u32; +pub const ODBC_USER_DSN: u32 = 1u32; +pub const ODBC_VS_FLAG_RETCODE: i32 = 4i32; +pub const ODBC_VS_FLAG_STOP: i32 = 8i32; +pub const ODBC_VS_FLAG_UNICODE_ARG: i32 = 1i32; +pub const ODBC_VS_FLAG_UNICODE_COR: i32 = 2i32; +pub const OLEDBVER: u32 = 624u32; +pub const OLEDB_BINDER_CUSTOM_ERROR: i32 = -2147212032i32; +pub const OSPCOMP_DEFAULT: OSPCOMP = 1i32; +pub const OSPCOMP_EQ: OSPCOMP = 1i32; +pub const OSPCOMP_GE: OSPCOMP = 4i32; +pub const OSPCOMP_GT: OSPCOMP = 5i32; +pub const OSPCOMP_LE: OSPCOMP = 3i32; +pub const OSPCOMP_LT: OSPCOMP = 2i32; +pub const OSPCOMP_NE: OSPCOMP = 6i32; +pub const OSPFIND_CASESENSITIVE: OSPFIND = 2i32; +pub const OSPFIND_DEFAULT: OSPFIND = 0i32; +pub const OSPFIND_UP: OSPFIND = 1i32; +pub const OSPFIND_UPCASESENSITIVE: OSPFIND = 3i32; +pub const OSPFORMAT_DEFAULT: OSPFORMAT = 0i32; +pub const OSPFORMAT_FORMATTED: OSPFORMAT = 1i32; +pub const OSPFORMAT_HTML: OSPFORMAT = 2i32; +pub const OSPFORMAT_RAW: OSPFORMAT = 0i32; +pub const OSPRW_DEFAULT: OSPRW = 1i32; +pub const OSPRW_MIXED: OSPRW = 2i32; +pub const OSPRW_READONLY: OSPRW = 0i32; +pub const OSPRW_READWRITE: OSPRW = 1i32; +pub const OSPXFER_ABORT: OSPXFER = 1i32; +pub const OSPXFER_COMPLETE: OSPXFER = 0i32; +pub const OSPXFER_ERROR: OSPXFER = 2i32; +pub const OSP_IndexLabel: u32 = 0u32; +pub const PDPO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xccb4ec60_b9dc_11d1_ac80_00a0c9034873); +pub const PEOPLE_IMPORT_E_CANONICALURL_TOOLONG: i32 = -2147205110i32; +pub const PEOPLE_IMPORT_E_DATATYPENOTSUPPORTED: i32 = -2147205115i32; +pub const PEOPLE_IMPORT_E_DBCONNFAIL: i32 = -2147205120i32; +pub const PEOPLE_IMPORT_E_DC_NOT_AVAILABLE: i32 = -2147205108i32; +pub const PEOPLE_IMPORT_E_DIRSYNC_NOTREFRESHED: i32 = -2147205103i32; +pub const PEOPLE_IMPORT_E_DIRSYNC_ZERO_COOKIE: i32 = -2147205112i32; +pub const PEOPLE_IMPORT_E_DOMAIN_DISCOVER_FAILED: i32 = -2147205107i32; +pub const PEOPLE_IMPORT_E_DOMAIN_REMOVED: i32 = -2147205105i32; +pub const PEOPLE_IMPORT_E_ENUM_ACCESSDENIED: i32 = -2147205104i32; +pub const PEOPLE_IMPORT_E_FAILTOGETDSDEF: i32 = -2147205118i32; +pub const PEOPLE_IMPORT_E_FAILTOGETDSMAPPING: i32 = -2147205116i32; +pub const PEOPLE_IMPORT_E_FAILTOGETLCID: i32 = -2147205106i32; +pub const PEOPLE_IMPORT_E_LDAPPATH_TOOLONG: i32 = -2147205111i32; +pub const PEOPLE_IMPORT_E_NOCASTINGSUPPORTED: i32 = -2147205114i32; +pub const PEOPLE_IMPORT_E_UPDATE_DIRSYNC_COOKIE: i32 = -2147205113i32; +pub const PEOPLE_IMPORT_E_USERNAME_NOTRESOLVED: i32 = -2147205109i32; +pub const PEOPLE_IMPORT_NODSDEFINED: i32 = -2147205119i32; +pub const PEOPLE_IMPORT_NOMAPPINGDEFINED: i32 = -2147205117i32; +pub const PERM_ALL: ACCESS_MASKENUM = 268435456i32; +pub const PERM_CREATE: ACCESS_MASKENUM = 16384i32; +pub const PERM_DELETE: ACCESS_MASKENUM = 65536i32; +pub const PERM_DROP: ACCESS_MASKENUM = 256i32; +pub const PERM_EXCLUSIVE: ACCESS_MASKENUM = 512i32; +pub const PERM_EXECUTE: ACCESS_MASKENUM = 536870912i32; +pub const PERM_INSERT: ACCESS_MASKENUM = 32768i32; +pub const PERM_MAXIMUM_ALLOWED: ACCESS_MASKENUM = 33554432i32; +pub const PERM_READ: ACCESS_MASKENUM = -2147483648i32; +pub const PERM_READCONTROL: ACCESS_MASKENUM = 131072i32; +pub const PERM_READDESIGN: ACCESS_MASKENUM = 1024i32; +pub const PERM_REFERENCE: ACCESS_MASKENUM = 8192i32; +pub const PERM_UPDATE: ACCESS_MASKENUM = 1073741824i32; +pub const PERM_WITHGRANT: ACCESS_MASKENUM = 4096i32; +pub const PERM_WRITEDESIGN: ACCESS_MASKENUM = 2048i32; +pub const PERM_WRITEOWNER: ACCESS_MASKENUM = 524288i32; +pub const PERM_WRITEPERMISSIONS: ACCESS_MASKENUM = 262144i32; +pub const PRAll: u32 = 256u32; +pub const PRAllBits: u32 = 7u32; +pub const PRAny: u32 = 512u32; +pub const PRIORITIZE_FLAG_IGNOREFAILURECOUNT: PRIORITIZE_FLAGS = 2i32; +pub const PRIORITIZE_FLAG_RETRYFAILEDITEMS: PRIORITIZE_FLAGS = 1i32; +pub const PRIORITY_LEVEL_DEFAULT: PRIORITY_LEVEL = 3i32; +pub const PRIORITY_LEVEL_FOREGROUND: PRIORITY_LEVEL = 0i32; +pub const PRIORITY_LEVEL_HIGH: PRIORITY_LEVEL = 1i32; +pub const PRIORITY_LEVEL_LOW: PRIORITY_LEVEL = 2i32; +pub const PROGID_MSPersist_Version_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSPersist.1"); +pub const PROGID_MSPersist_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSPersist"); +pub const PROPID_DBBMK_BOOKMARK: u32 = 2u32; +pub const PROPID_DBBMK_CHAPTER: u32 = 3u32; +pub const PROPID_DBSELF_SELF: u32 = 2u32; +pub const PROXY_ACCESS_DIRECT: PROXY_ACCESS = 1i32; +pub const PROXY_ACCESS_PRECONFIG: PROXY_ACCESS = 0i32; +pub const PROXY_ACCESS_PROXY: PROXY_ACCESS = 2i32; +pub const PRRE: u32 = 6u32; +pub const PRSomeBits: u32 = 8u32; +pub const PRTH_E_ACCESS_DENIED: u32 = 2147750405u32; +pub const PRTH_E_ACL_IS_READ_NONE: u32 = 2147750417u32; +pub const PRTH_E_ACL_TOO_BIG: u32 = 2147750418u32; +pub const PRTH_E_BAD_REQUEST: u32 = 2147750408u32; +pub const PRTH_E_CANT_TRANSFORM_DENIED_ACE: i32 = -2147216881i32; +pub const PRTH_E_CANT_TRANSFORM_EXTERNAL_ACL: i32 = -2147216882i32; +pub const PRTH_E_COMM_ERROR: u32 = 2147750400u32; +pub const PRTH_E_DATABASE_OPEN_ERROR: i32 = -2147216875i32; +pub const PRTH_E_HTTPS_CERTIFICATE_ERROR: i32 = -2147216861i32; +pub const PRTH_E_HTTPS_REQUIRE_CERTIFICATE: i32 = -2147216860i32; +pub const PRTH_E_HTTP_CANNOT_CONNECT: u32 = 2147750409u32; +pub const PRTH_E_INIT_FAILED: i32 = -2147216872i32; +pub const PRTH_E_INTERNAL_ERROR: i32 = -2147216892i32; +pub const PRTH_E_LOAD_FAILED: i32 = -2147216873i32; +pub const PRTH_E_MIME_EXCLUDED: i32 = -2147216883i32; +pub const PRTH_E_NOT_REDIRECTED: u32 = 2147750407u32; +pub const PRTH_E_NO_PROPERTY: i32 = -2147216877i32; +pub const PRTH_E_OBJ_NOT_FOUND: u32 = 2147750401u32; +pub const PRTH_E_OPLOCK_BROKEN: i32 = -2147216874i32; +pub const PRTH_E_REQUEST_ERROR: u32 = 2147750402u32; +pub const PRTH_E_RETRY: i32 = -2147216885i32; +pub const PRTH_E_SERVER_ERROR: u32 = 2147750406u32; +pub const PRTH_E_TRUNCATED: i32 = -2147216870i32; +pub const PRTH_E_VOLUME_MOUNT_POINT: i32 = -2147216871i32; +pub const PRTH_E_WININET: i32 = -2147216886i32; +pub const PRTH_S_ACL_IS_READ_EVERYONE: u32 = 266768u32; +pub const PRTH_S_MAX_DOWNLOAD: i32 = 266764i32; +pub const PRTH_S_MAX_GROWTH: i32 = 266761i32; +pub const PRTH_S_NOT_ALL_PARTS: u32 = 266779u32; +pub const PRTH_S_NOT_MODIFIED: u32 = 266755u32; +pub const PRTH_S_TRY_IMPERSONATING: i32 = 266789i32; +pub const PRTH_S_USE_ROSEBUD: i32 = 266772i32; +pub const PSGUID_CHARACTERIZATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x560c36c0_503a_11cf_baa1_00004c752a9a); +pub const PSGUID_QUERY_METADATA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x624c9360_93d0_11cf_a787_00004c752752); +pub const PSGUID_STORAGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb725f130_47ef_101a_a5f1_02608c9eebac); +pub const PWPROP_OSPVALUE: u32 = 2u32; +pub const QPMO_APPEND_LCID_TO_LOCALIZED_PATH: QUERY_PARSER_MANAGER_OPTION = 4i32; +pub const QPMO_LOCALIZED_SCHEMA_BINARY_PATH: QUERY_PARSER_MANAGER_OPTION = 3i32; +pub const QPMO_LOCALIZER_SUPPORT: QUERY_PARSER_MANAGER_OPTION = 5i32; +pub const QPMO_PRELOCALIZED_SCHEMA_BINARY_PATH: QUERY_PARSER_MANAGER_OPTION = 1i32; +pub const QPMO_SCHEMA_BINARY_NAME: QUERY_PARSER_MANAGER_OPTION = 0i32; +pub const QPMO_UNLOCALIZED_SCHEMA_BINARY_PATH: QUERY_PARSER_MANAGER_OPTION = 2i32; +pub const QRY_E_COLUMNNOTSEARCHABLE: i32 = -2147219700i32; +pub const QRY_E_COLUMNNOTSORTABLE: i32 = -2147219701i32; +pub const QRY_E_ENGINEFAILED: i32 = -2147219693i32; +pub const QRY_E_INFIXWILDCARD: i32 = -2147219696i32; +pub const QRY_E_INVALIDCATALOG: i32 = -2147219687i32; +pub const QRY_E_INVALIDCOLUMN: i32 = -2147219699i32; +pub const QRY_E_INVALIDINTERVAL: i32 = -2147219682i32; +pub const QRY_E_INVALIDPATH: i32 = -2147219684i32; +pub const QRY_E_INVALIDSCOPES: i32 = -2147219688i32; +pub const QRY_E_LMNOTINITIALIZED: i32 = -2147219683i32; +pub const QRY_E_NOCOLUMNS: i32 = -2147219689i32; +pub const QRY_E_NODATASOURCES: i32 = -2147219703i32; +pub const QRY_E_NOLOGMANAGER: i32 = -2147219681i32; +pub const QRY_E_NULLQUERY: i32 = -2147219691i32; +pub const QRY_E_PREFIXWILDCARD: i32 = -2147219697i32; +pub const QRY_E_QUERYCORRUPT: i32 = -2147219698i32; +pub const QRY_E_QUERYSYNTAX: i32 = -2147219711i32; +pub const QRY_E_SCOPECARDINALIDY: i32 = -2147219686i32; +pub const QRY_E_SEARCHTOOBIG: i32 = -2147219692i32; +pub const QRY_E_STARTHITTOBIG: i32 = -2147219705i32; +pub const QRY_E_TIMEOUT: i32 = -2147219702i32; +pub const QRY_E_TOOMANYCOLUMNS: i32 = -2147219707i32; +pub const QRY_E_TOOMANYDATABASES: i32 = -2147219706i32; +pub const QRY_E_TOOMANYQUERYTERMS: i32 = -2147219704i32; +pub const QRY_E_TYPEMISMATCH: i32 = -2147219710i32; +pub const QRY_E_UNEXPECTED: i32 = -2147219685i32; +pub const QRY_E_UNHANDLEDTYPE: i32 = -2147219709i32; +pub const QRY_E_WILDCARDPREFIXLENGTH: i32 = -2147219695i32; +pub const QRY_S_INEXACTRESULTS: i32 = 263958i32; +pub const QRY_S_NOROWSFOUND: i32 = 263940i32; +pub const QRY_S_TERMIGNORED: i32 = 263954i32; +pub const QUERY_E_AGGREGATE_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2147215847i32; +pub const QUERY_E_ALLNOISE_AND_NO_RELDOC: ::windows_sys::core::HRESULT = -2147215859i32; +pub const QUERY_E_ALLNOISE_AND_NO_RELPROP: ::windows_sys::core::HRESULT = -2147215857i32; +pub const QUERY_E_DUPLICATE_RANGE_NAME: ::windows_sys::core::HRESULT = -2147215845i32; +pub const QUERY_E_INCORRECT_VERSION: ::windows_sys::core::HRESULT = -2147215852i32; +pub const QUERY_E_INVALIDCOALESCE: ::windows_sys::core::HRESULT = -2147215849i32; +pub const QUERY_E_INVALIDSCOPE_COALESCE: ::windows_sys::core::HRESULT = -2147215851i32; +pub const QUERY_E_INVALIDSORT_COALESCE: ::windows_sys::core::HRESULT = -2147215850i32; +pub const QUERY_E_INVALID_DOCUMENT_IDENTIFIER: ::windows_sys::core::HRESULT = -2147215853i32; +pub const QUERY_E_NO_RELDOC: ::windows_sys::core::HRESULT = -2147215858i32; +pub const QUERY_E_NO_RELPROP: ::windows_sys::core::HRESULT = -2147215856i32; +pub const QUERY_E_RELDOC_SYNTAX_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2147215854i32; +pub const QUERY_E_REPEATED_RELDOC: ::windows_sys::core::HRESULT = -2147215855i32; +pub const QUERY_E_TOP_LEVEL_IN_GROUP: ::windows_sys::core::HRESULT = -2147215846i32; +pub const QUERY_E_UPGRADEINPROGRESS: ::windows_sys::core::HRESULT = -2147215848i32; +pub const QUERY_SORTDEFAULT: u32 = 4u32; +pub const QUERY_SORTXASCEND: u32 = 2u32; +pub const QUERY_SORTXDESCEND: u32 = 3u32; +pub const QUERY_VALIDBITS: u32 = 3u32; +pub const QueryParser: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb72f8fd8_0fab_4dd9_bdbf_245a6ce1485b); +pub const QueryParserManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5088b39a_29b4_4d9d_8245_4ee289222f66); +pub const REXSPH_E_DUPLICATE_PROPERTY: i32 = -2147207927i32; +pub const REXSPH_E_INVALID_CALL: i32 = -2147207936i32; +pub const REXSPH_E_MULTIPLE_REDIRECT: i32 = -2147207933i32; +pub const REXSPH_E_NO_PROPERTY_ON_ROW: i32 = -2147207932i32; +pub const REXSPH_E_REDIRECT_ON_SECURITY_UPDATE: i32 = -2147207934i32; +pub const REXSPH_E_TYPE_MISMATCH_ON_READ: i32 = -2147207931i32; +pub const REXSPH_E_UNEXPECTED_DATA_STATUS: i32 = -2147207930i32; +pub const REXSPH_E_UNEXPECTED_FILTER_STATE: i32 = -2147207928i32; +pub const REXSPH_E_UNKNOWN_DATA_TYPE: i32 = -2147207929i32; +pub const REXSPH_S_REDIRECTED: i32 = 275713i32; +pub const ROWSETEVENT_ITEMSTATE_INROWSET: ROWSETEVENT_ITEMSTATE = 1i32; +pub const ROWSETEVENT_ITEMSTATE_NOTINROWSET: ROWSETEVENT_ITEMSTATE = 0i32; +pub const ROWSETEVENT_ITEMSTATE_UNKNOWN: ROWSETEVENT_ITEMSTATE = 2i32; +pub const ROWSETEVENT_TYPE_DATAEXPIRED: ROWSETEVENT_TYPE = 0i32; +pub const ROWSETEVENT_TYPE_FOREGROUNDLOST: ROWSETEVENT_TYPE = 1i32; +pub const ROWSETEVENT_TYPE_SCOPESTATISTICS: ROWSETEVENT_TYPE = 2i32; +pub const RS_COMPLETED: u32 = 2147483648u32; +pub const RS_MAYBOTHERUSER: u32 = 131072u32; +pub const RS_READY: u32 = 1u32; +pub const RS_SUSPENDED: u32 = 2u32; +pub const RS_SUSPENDONIDLE: u32 = 65536u32; +pub const RS_UPDATING: u32 = 4u32; +pub const RTAnd: u32 = 1u32; +pub const RTContent: u32 = 4u32; +pub const RTNatLanguage: u32 = 8u32; +pub const RTNone: u32 = 0u32; +pub const RTNot: u32 = 3u32; +pub const RTOr: u32 = 2u32; +pub const RTProperty: u32 = 5u32; +pub const RTProximity: u32 = 6u32; +pub const RTVector: u32 = 7u32; +pub const RootBinder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xff151822_b0bf_11d1_a80d_000000000000); +pub const SCHEMA_E_ADDSTOPWORDS: i32 = -2147218420i32; +pub const SCHEMA_E_BADATTRIBUTE: i32 = -2147218412i32; +pub const SCHEMA_E_BADCOLUMNNAME: i32 = -2147218414i32; +pub const SCHEMA_E_BADFILENAME: i32 = -2147218411i32; +pub const SCHEMA_E_BADPROPPID: i32 = -2147218413i32; +pub const SCHEMA_E_BADPROPSPEC: i32 = -2147218417i32; +pub const SCHEMA_E_CANNOTCREATEFILE: i32 = -2147218426i32; +pub const SCHEMA_E_CANNOTCREATENOISEWORDFILE: i32 = -2147218421i32; +pub const SCHEMA_E_CANNOTWRITEFILE: i32 = -2147218425i32; +pub const SCHEMA_E_DUPLICATENOISE: i32 = -2147218409i32; +pub const SCHEMA_E_EMPTYFILE: i32 = -2147218424i32; +pub const SCHEMA_E_FILECHANGED: i32 = -2147218415i32; +pub const SCHEMA_E_FILENOTFOUND: i32 = -2147218430i32; +pub const SCHEMA_E_INVALIDDATATYPE: i32 = -2147218422i32; +pub const SCHEMA_E_INVALIDFILETYPE: i32 = -2147218423i32; +pub const SCHEMA_E_INVALIDVALUE: i32 = -2147218418i32; +pub const SCHEMA_E_LOAD_SPECIAL: i32 = -2147218431i32; +pub const SCHEMA_E_NAMEEXISTS: i32 = -2147218419i32; +pub const SCHEMA_E_NESTEDTAG: i32 = -2147218429i32; +pub const SCHEMA_E_NOMORECOLUMNS: i32 = -2147218416i32; +pub const SCHEMA_E_PROPEXISTS: i32 = -2147218410i32; +pub const SCHEMA_E_UNEXPECTEDTAG: i32 = -2147218428i32; +pub const SCHEMA_E_VERSIONMISMATCH: i32 = -2147218427i32; +pub const SCRIPTPI_E_ALREADY_COMPLETED: i32 = -2147213307i32; +pub const SCRIPTPI_E_CANNOT_ALTER_CHUNK: i32 = -2147213308i32; +pub const SCRIPTPI_E_CHUNK_NOT_TEXT: i32 = -2147213312i32; +pub const SCRIPTPI_E_CHUNK_NOT_VALUE: i32 = -2147213309i32; +pub const SCRIPTPI_E_PID_NOT_NAME: i32 = -2147213311i32; +pub const SCRIPTPI_E_PID_NOT_NUMERIC: i32 = -2147213310i32; +pub const SEARCH_ADVANCED_QUERY_SYNTAX: SEARCH_QUERY_SYNTAX = 1i32; +pub const SEARCH_CHANGE_ADD: SEARCH_KIND_OF_CHANGE = 0i32; +pub const SEARCH_CHANGE_DELETE: SEARCH_KIND_OF_CHANGE = 1i32; +pub const SEARCH_CHANGE_MODIFY: SEARCH_KIND_OF_CHANGE = 2i32; +pub const SEARCH_CHANGE_MOVE_RENAME: SEARCH_KIND_OF_CHANGE = 3i32; +pub const SEARCH_CHANGE_SEMANTICS_DIRECTORY: SEARCH_KIND_OF_CHANGE = 262144i32; +pub const SEARCH_CHANGE_SEMANTICS_SHALLOW: SEARCH_KIND_OF_CHANGE = 524288i32; +pub const SEARCH_CHANGE_SEMANTICS_UPDATE_SECURITY: SEARCH_KIND_OF_CHANGE = 4194304i32; +pub const SEARCH_HIGH_PRIORITY: SEARCH_NOTIFICATION_PRIORITY = 1i32; +pub const SEARCH_INDEXING_PHASE_GATHERER: SEARCH_INDEXING_PHASE = 0i32; +pub const SEARCH_INDEXING_PHASE_PERSISTED: SEARCH_INDEXING_PHASE = 2i32; +pub const SEARCH_INDEXING_PHASE_QUERYABLE: SEARCH_INDEXING_PHASE = 1i32; +pub const SEARCH_NATURAL_QUERY_SYNTAX: SEARCH_QUERY_SYNTAX = 2i32; +pub const SEARCH_NORMAL_PRIORITY: SEARCH_NOTIFICATION_PRIORITY = 0i32; +pub const SEARCH_NO_QUERY_SYNTAX: SEARCH_QUERY_SYNTAX = 0i32; +pub const SEARCH_TERM_NO_EXPANSION: SEARCH_TERM_EXPANSION = 0i32; +pub const SEARCH_TERM_PREFIX_ALL: SEARCH_TERM_EXPANSION = 1i32; +pub const SEARCH_TERM_STEM_ALL: SEARCH_TERM_EXPANSION = 2i32; +pub const SEC_E_ACCESSDENIED: i32 = -2147216129i32; +pub const SEC_E_BADTRUSTEEID: ::windows_sys::core::HRESULT = -2147217814i32; +pub const SEC_E_INITFAILED: i32 = -2147216383i32; +pub const SEC_E_INVALIDACCESSENTRY: ::windows_sys::core::HRESULT = -2147217807i32; +pub const SEC_E_INVALIDACCESSENTRYLIST: ::windows_sys::core::HRESULT = -2147217809i32; +pub const SEC_E_INVALIDCONTEXT: i32 = -2147216381i32; +pub const SEC_E_INVALIDOBJECT: ::windows_sys::core::HRESULT = -2147217811i32; +pub const SEC_E_INVALIDOWNER: ::windows_sys::core::HRESULT = -2147217808i32; +pub const SEC_E_NOMEMBERSHIPSUPPORT: ::windows_sys::core::HRESULT = -2147217812i32; +pub const SEC_E_NOOWNER: ::windows_sys::core::HRESULT = -2147217810i32; +pub const SEC_E_NOTINITIALIZED: i32 = -2147216382i32; +pub const SEC_E_NOTRUSTEEID: ::windows_sys::core::HRESULT = -2147217813i32; +pub const SEC_E_PERMISSIONDENIED: i32 = -2147217911i32; +pub const SI_TEMPORARY: u32 = 2147483648u32; +pub const SPS_WS_ERROR: i32 = -2147211753i32; +pub const SQLAOPANY: u32 = 83u32; +pub const SQLAOPAVG: u32 = 79u32; +pub const SQLAOPCNT: u32 = 75u32; +pub const SQLAOPMAX: u32 = 82u32; +pub const SQLAOPMIN: u32 = 81u32; +pub const SQLAOPNOOP: u32 = 86u32; +pub const SQLAOPSTDEV: u32 = 48u32; +pub const SQLAOPSTDEVP: u32 = 49u32; +pub const SQLAOPSUM: u32 = 77u32; +pub const SQLAOPVAR: u32 = 50u32; +pub const SQLAOPVARP: u32 = 51u32; +pub const SQLBIGBINARY: u32 = 173u32; +pub const SQLBIGCHAR: u32 = 175u32; +pub const SQLBIGVARBINARY: u32 = 165u32; +pub const SQLBIGVARCHAR: u32 = 167u32; +pub const SQLBINARY: u32 = 45u32; +pub const SQLBIT: u32 = 50u32; +pub const SQLBITN: u32 = 104u32; +pub const SQLCHARACTER: u32 = 47u32; +pub const SQLDATETIM4: u32 = 58u32; +pub const SQLDATETIME: u32 = 61u32; +pub const SQLDATETIMN: u32 = 111u32; +pub const SQLDECIMAL: u32 = 106u32; +pub const SQLDECIMALN: u32 = 106u32; +pub const SQLFLT4: u32 = 59u32; +pub const SQLFLT8: u32 = 62u32; +pub const SQLFLTN: u32 = 109u32; +pub const SQLIMAGE: u32 = 34u32; +pub const SQLINT1: u32 = 48u32; +pub const SQLINT2: u32 = 52u32; +pub const SQLINT4: u32 = 56u32; +pub const SQLINT8: u32 = 127u32; +pub const SQLINTN: u32 = 38u32; +pub const SQLMONEY: u32 = 60u32; +pub const SQLMONEY4: u32 = 122u32; +pub const SQLMONEYN: u32 = 110u32; +pub const SQLNCHAR: u32 = 239u32; +pub const SQLNTEXT: u32 = 99u32; +pub const SQLNUMERIC: u32 = 108u32; +pub const SQLNUMERICN: u32 = 108u32; +pub const SQLNVARCHAR: u32 = 231u32; +pub const SQLTEXT: u32 = 35u32; +pub const SQLUNIQUEID: u32 = 36u32; +pub const SQLVARBINARY: u32 = 37u32; +pub const SQLVARCHAR: u32 = 39u32; +pub const SQLVARIANT: u32 = 98u32; +pub const SQL_AA_FALSE: i32 = 0i32; +pub const SQL_AA_TRUE: i32 = 1i32; +pub const SQL_ACCESSIBLE_PROCEDURES: u32 = 20u32; +pub const SQL_ACCESSIBLE_TABLES: u32 = 19u32; +pub const SQL_ACCESS_MODE: u32 = 101u32; +pub const SQL_ACTIVE_CONNECTIONS: u32 = 0u32; +pub const SQL_ACTIVE_ENVIRONMENTS: u32 = 116u32; +pub const SQL_ACTIVE_STATEMENTS: u32 = 1u32; +pub const SQL_ADD: u32 = 4u32; +pub const SQL_AD_ADD_CONSTRAINT_DEFERRABLE: i32 = 128i32; +pub const SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED: i32 = 32i32; +pub const SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE: i32 = 64i32; +pub const SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE: i32 = 256i32; +pub const SQL_AD_ADD_DOMAIN_CONSTRAINT: i32 = 2i32; +pub const SQL_AD_ADD_DOMAIN_DEFAULT: i32 = 8i32; +pub const SQL_AD_CONSTRAINT_NAME_DEFINITION: i32 = 1i32; +pub const SQL_AD_DEFAULT: i32 = 1i32; +pub const SQL_AD_DROP_DOMAIN_CONSTRAINT: i32 = 4i32; +pub const SQL_AD_DROP_DOMAIN_DEFAULT: i32 = 16i32; +pub const SQL_AD_OFF: i32 = 0i32; +pub const SQL_AD_ON: i32 = 1i32; +pub const SQL_AF_ALL: i32 = 64i32; +pub const SQL_AF_AVG: i32 = 1i32; +pub const SQL_AF_COUNT: i32 = 2i32; +pub const SQL_AF_DISTINCT: i32 = 32i32; +pub const SQL_AF_MAX: i32 = 4i32; +pub const SQL_AF_MIN: i32 = 8i32; +pub const SQL_AF_SUM: i32 = 16i32; +pub const SQL_AGGREGATE_FUNCTIONS: u32 = 169u32; +pub const SQL_ALL_CATALOGS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("%"); +pub const SQL_ALL_EXCEPT_LIKE: u32 = 2u32; +pub const SQL_ALL_SCHEMAS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("%"); +pub const SQL_ALL_TABLE_TYPES: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("%"); +pub const SQL_ALL_TYPES: u32 = 0u32; +pub const SQL_ALTER_DOMAIN: u32 = 117u32; +pub const SQL_ALTER_TABLE: u32 = 86u32; +pub const SQL_AM_CONNECTION: u32 = 1u32; +pub const SQL_AM_NONE: u32 = 0u32; +pub const SQL_AM_STATEMENT: u32 = 2u32; +pub const SQL_AO_DEFAULT: i32 = 0i32; +pub const SQL_AO_OFF: i32 = 0i32; +pub const SQL_AO_ON: i32 = 1i32; +pub const SQL_APD_TYPE: i32 = -100i32; +pub const SQL_API_ALL_FUNCTIONS: u32 = 0u32; +pub const SQL_API_LOADBYORDINAL: u32 = 199u32; +pub const SQL_API_ODBC3_ALL_FUNCTIONS: u32 = 999u32; +pub const SQL_API_ODBC3_ALL_FUNCTIONS_SIZE: u32 = 250u32; +pub const SQL_API_SQLALLOCCONNECT: u32 = 1u32; +pub const SQL_API_SQLALLOCENV: u32 = 2u32; +pub const SQL_API_SQLALLOCHANDLE: u32 = 1001u32; +pub const SQL_API_SQLALLOCHANDLESTD: u32 = 73u32; +pub const SQL_API_SQLALLOCSTMT: u32 = 3u32; +pub const SQL_API_SQLBINDCOL: u32 = 4u32; +pub const SQL_API_SQLBINDPARAM: u32 = 1002u32; +pub const SQL_API_SQLBINDPARAMETER: u32 = 72u32; +pub const SQL_API_SQLBROWSECONNECT: u32 = 55u32; +pub const SQL_API_SQLBULKOPERATIONS: u32 = 24u32; +pub const SQL_API_SQLCANCEL: u32 = 5u32; +pub const SQL_API_SQLCANCELHANDLE: u32 = 1550u32; +pub const SQL_API_SQLCLOSECURSOR: u32 = 1003u32; +pub const SQL_API_SQLCOLATTRIBUTE: u32 = 6u32; +pub const SQL_API_SQLCOLATTRIBUTES: u32 = 6u32; +pub const SQL_API_SQLCOLUMNPRIVILEGES: u32 = 56u32; +pub const SQL_API_SQLCOLUMNS: u32 = 40u32; +pub const SQL_API_SQLCOMPLETEASYNC: u32 = 1551u32; +pub const SQL_API_SQLCONNECT: u32 = 7u32; +pub const SQL_API_SQLCOPYDESC: u32 = 1004u32; +pub const SQL_API_SQLDATASOURCES: u32 = 57u32; +pub const SQL_API_SQLDESCRIBECOL: u32 = 8u32; +pub const SQL_API_SQLDESCRIBEPARAM: u32 = 58u32; +pub const SQL_API_SQLDISCONNECT: u32 = 9u32; +pub const SQL_API_SQLDRIVERCONNECT: u32 = 41u32; +pub const SQL_API_SQLDRIVERS: u32 = 71u32; +pub const SQL_API_SQLENDTRAN: u32 = 1005u32; +pub const SQL_API_SQLERROR: u32 = 10u32; +pub const SQL_API_SQLEXECDIRECT: u32 = 11u32; +pub const SQL_API_SQLEXECUTE: u32 = 12u32; +pub const SQL_API_SQLEXTENDEDFETCH: u32 = 59u32; +pub const SQL_API_SQLFETCH: u32 = 13u32; +pub const SQL_API_SQLFETCHSCROLL: u32 = 1021u32; +pub const SQL_API_SQLFOREIGNKEYS: u32 = 60u32; +pub const SQL_API_SQLFREECONNECT: u32 = 14u32; +pub const SQL_API_SQLFREEENV: u32 = 15u32; +pub const SQL_API_SQLFREEHANDLE: u32 = 1006u32; +pub const SQL_API_SQLFREESTMT: u32 = 16u32; +pub const SQL_API_SQLGETCONNECTATTR: u32 = 1007u32; +pub const SQL_API_SQLGETCONNECTOPTION: u32 = 42u32; +pub const SQL_API_SQLGETCURSORNAME: u32 = 17u32; +pub const SQL_API_SQLGETDATA: u32 = 43u32; +pub const SQL_API_SQLGETDESCFIELD: u32 = 1008u32; +pub const SQL_API_SQLGETDESCREC: u32 = 1009u32; +pub const SQL_API_SQLGETDIAGFIELD: u32 = 1010u32; +pub const SQL_API_SQLGETDIAGREC: u32 = 1011u32; +pub const SQL_API_SQLGETENVATTR: u32 = 1012u32; +pub const SQL_API_SQLGETFUNCTIONS: u32 = 44u32; +pub const SQL_API_SQLGETINFO: u32 = 45u32; +pub const SQL_API_SQLGETSTMTATTR: u32 = 1014u32; +pub const SQL_API_SQLGETSTMTOPTION: u32 = 46u32; +pub const SQL_API_SQLGETTYPEINFO: u32 = 47u32; +pub const SQL_API_SQLMORERESULTS: u32 = 61u32; +pub const SQL_API_SQLNATIVESQL: u32 = 62u32; +pub const SQL_API_SQLNUMPARAMS: u32 = 63u32; +pub const SQL_API_SQLNUMRESULTCOLS: u32 = 18u32; +pub const SQL_API_SQLPARAMDATA: u32 = 48u32; +pub const SQL_API_SQLPARAMOPTIONS: u32 = 64u32; +pub const SQL_API_SQLPREPARE: u32 = 19u32; +pub const SQL_API_SQLPRIMARYKEYS: u32 = 65u32; +pub const SQL_API_SQLPRIVATEDRIVERS: u32 = 79u32; +pub const SQL_API_SQLPROCEDURECOLUMNS: u32 = 66u32; +pub const SQL_API_SQLPROCEDURES: u32 = 67u32; +pub const SQL_API_SQLPUTDATA: u32 = 49u32; +pub const SQL_API_SQLROWCOUNT: u32 = 20u32; +pub const SQL_API_SQLSETCONNECTATTR: u32 = 1016u32; +pub const SQL_API_SQLSETCONNECTOPTION: u32 = 50u32; +pub const SQL_API_SQLSETCURSORNAME: u32 = 21u32; +pub const SQL_API_SQLSETDESCFIELD: u32 = 1017u32; +pub const SQL_API_SQLSETDESCREC: u32 = 1018u32; +pub const SQL_API_SQLSETENVATTR: u32 = 1019u32; +pub const SQL_API_SQLSETPARAM: u32 = 22u32; +pub const SQL_API_SQLSETPOS: u32 = 68u32; +pub const SQL_API_SQLSETSCROLLOPTIONS: u32 = 69u32; +pub const SQL_API_SQLSETSTMTATTR: u32 = 1020u32; +pub const SQL_API_SQLSETSTMTOPTION: u32 = 51u32; +pub const SQL_API_SQLSPECIALCOLUMNS: u32 = 52u32; +pub const SQL_API_SQLSTATISTICS: u32 = 53u32; +pub const SQL_API_SQLTABLEPRIVILEGES: u32 = 70u32; +pub const SQL_API_SQLTABLES: u32 = 54u32; +pub const SQL_API_SQLTRANSACT: u32 = 23u32; +pub const SQL_ARD_TYPE: i32 = -99i32; +pub const SQL_ASYNC_DBC_CAPABLE: i32 = 1i32; +pub const SQL_ASYNC_DBC_ENABLE_DEFAULT: u32 = 0u32; +pub const SQL_ASYNC_DBC_ENABLE_OFF: u32 = 0u32; +pub const SQL_ASYNC_DBC_ENABLE_ON: u32 = 1u32; +pub const SQL_ASYNC_DBC_FUNCTIONS: u32 = 10023u32; +pub const SQL_ASYNC_DBC_NOT_CAPABLE: i32 = 0i32; +pub const SQL_ASYNC_ENABLE: u32 = 4u32; +pub const SQL_ASYNC_ENABLE_DEFAULT: u32 = 0u32; +pub const SQL_ASYNC_ENABLE_OFF: u32 = 0u32; +pub const SQL_ASYNC_ENABLE_ON: u32 = 1u32; +pub const SQL_ASYNC_MODE: u32 = 10021u32; +pub const SQL_ASYNC_NOTIFICATION: u32 = 10025u32; +pub const SQL_ASYNC_NOTIFICATION_CAPABLE: i32 = 1i32; +pub const SQL_ASYNC_NOTIFICATION_NOT_CAPABLE: i32 = 0i32; +pub const SQL_ATTR_ACCESS_MODE: u32 = 101u32; +pub const SQL_ATTR_ANSI_APP: u32 = 115u32; +pub const SQL_ATTR_APPLICATION_KEY: u32 = 203u32; +pub const SQL_ATTR_APP_PARAM_DESC: u32 = 10011u32; +pub const SQL_ATTR_APP_ROW_DESC: u32 = 10010u32; +pub const SQL_ATTR_ASYNC_DBC_EVENT: u32 = 119u32; +pub const SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE: u32 = 117u32; +pub const SQL_ATTR_ASYNC_DBC_NOTIFICATION_CALLBACK: u32 = 120u32; +pub const SQL_ATTR_ASYNC_DBC_NOTIFICATION_CONTEXT: u32 = 121u32; +pub const SQL_ATTR_ASYNC_ENABLE: u32 = 4u32; +pub const SQL_ATTR_ASYNC_STMT_EVENT: u32 = 29u32; +pub const SQL_ATTR_ASYNC_STMT_NOTIFICATION_CALLBACK: u32 = 30u32; +pub const SQL_ATTR_ASYNC_STMT_NOTIFICATION_CONTEXT: u32 = 31u32; +pub const SQL_ATTR_AUTOCOMMIT: u32 = 102u32; +pub const SQL_ATTR_AUTO_IPD: u32 = 10001u32; +pub const SQL_ATTR_CONCURRENCY: u32 = 7u32; +pub const SQL_ATTR_CONNECTION_DEAD: u32 = 1209u32; +pub const SQL_ATTR_CONNECTION_POOLING: u32 = 201u32; +pub const SQL_ATTR_CONNECTION_TIMEOUT: u32 = 113u32; +pub const SQL_ATTR_CP_MATCH: u32 = 202u32; +pub const SQL_ATTR_CURRENT_CATALOG: u32 = 109u32; +pub const SQL_ATTR_CURSOR_SCROLLABLE: i32 = -1i32; +pub const SQL_ATTR_CURSOR_SENSITIVITY: i32 = -2i32; +pub const SQL_ATTR_CURSOR_TYPE: u32 = 6u32; +pub const SQL_ATTR_DBC_INFO_TOKEN: u32 = 118u32; +pub const SQL_ATTR_DISCONNECT_BEHAVIOR: u32 = 114u32; +pub const SQL_ATTR_ENABLE_AUTO_IPD: u32 = 15u32; +pub const SQL_ATTR_ENLIST_IN_DTC: u32 = 1207u32; +pub const SQL_ATTR_ENLIST_IN_XA: u32 = 1208u32; +pub const SQL_ATTR_FETCH_BOOKMARK_PTR: u32 = 16u32; +pub const SQL_ATTR_IMP_PARAM_DESC: u32 = 10013u32; +pub const SQL_ATTR_IMP_ROW_DESC: u32 = 10012u32; +pub const SQL_ATTR_KEYSET_SIZE: u32 = 8u32; +pub const SQL_ATTR_LOGIN_TIMEOUT: u32 = 103u32; +pub const SQL_ATTR_MAX_LENGTH: u32 = 3u32; +pub const SQL_ATTR_MAX_ROWS: u32 = 1u32; +pub const SQL_ATTR_METADATA_ID: u32 = 10014u32; +pub const SQL_ATTR_NOSCAN: u32 = 2u32; +pub const SQL_ATTR_ODBC_CURSORS: u32 = 110u32; +pub const SQL_ATTR_ODBC_VERSION: u32 = 200u32; +pub const SQL_ATTR_OUTPUT_NTS: u32 = 10001u32; +pub const SQL_ATTR_PACKET_SIZE: u32 = 112u32; +pub const SQL_ATTR_PARAMSET_SIZE: u32 = 22u32; +pub const SQL_ATTR_PARAMS_PROCESSED_PTR: u32 = 21u32; +pub const SQL_ATTR_PARAM_BIND_OFFSET_PTR: u32 = 17u32; +pub const SQL_ATTR_PARAM_BIND_TYPE: u32 = 18u32; +pub const SQL_ATTR_PARAM_OPERATION_PTR: u32 = 19u32; +pub const SQL_ATTR_PARAM_STATUS_PTR: u32 = 20u32; +pub const SQL_ATTR_QUERY_TIMEOUT: u32 = 0u32; +pub const SQL_ATTR_QUIET_MODE: u32 = 111u32; +pub const SQL_ATTR_READONLY: u32 = 0u32; +pub const SQL_ATTR_READWRITE_UNKNOWN: u32 = 2u32; +pub const SQL_ATTR_RESET_CONNECTION: u32 = 116u32; +pub const SQL_ATTR_RETRIEVE_DATA: u32 = 11u32; +pub const SQL_ATTR_ROWS_FETCHED_PTR: u32 = 26u32; +pub const SQL_ATTR_ROW_ARRAY_SIZE: u32 = 27u32; +pub const SQL_ATTR_ROW_BIND_OFFSET_PTR: u32 = 23u32; +pub const SQL_ATTR_ROW_BIND_TYPE: u32 = 5u32; +pub const SQL_ATTR_ROW_NUMBER: u32 = 14u32; +pub const SQL_ATTR_ROW_OPERATION_PTR: u32 = 24u32; +pub const SQL_ATTR_ROW_STATUS_PTR: u32 = 25u32; +pub const SQL_ATTR_SIMULATE_CURSOR: u32 = 10u32; +pub const SQL_ATTR_TRACE: u32 = 104u32; +pub const SQL_ATTR_TRACEFILE: u32 = 105u32; +pub const SQL_ATTR_TRANSLATE_LIB: u32 = 106u32; +pub const SQL_ATTR_TRANSLATE_OPTION: u32 = 107u32; +pub const SQL_ATTR_TXN_ISOLATION: u32 = 108u32; +pub const SQL_ATTR_USE_BOOKMARKS: u32 = 12u32; +pub const SQL_ATTR_WRITE: u32 = 1u32; +pub const SQL_AT_ADD_COLUMN: i32 = 1i32; +pub const SQL_AT_ADD_COLUMN_COLLATION: i32 = 128i32; +pub const SQL_AT_ADD_COLUMN_DEFAULT: i32 = 64i32; +pub const SQL_AT_ADD_COLUMN_SINGLE: i32 = 32i32; +pub const SQL_AT_ADD_CONSTRAINT: i32 = 8i32; +pub const SQL_AT_ADD_TABLE_CONSTRAINT: i32 = 4096i32; +pub const SQL_AT_CONSTRAINT_DEFERRABLE: i32 = 262144i32; +pub const SQL_AT_CONSTRAINT_INITIALLY_DEFERRED: i32 = 65536i32; +pub const SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE: i32 = 131072i32; +pub const SQL_AT_CONSTRAINT_NAME_DEFINITION: i32 = 32768i32; +pub const SQL_AT_CONSTRAINT_NON_DEFERRABLE: i32 = 524288i32; +pub const SQL_AT_DROP_COLUMN: i32 = 2i32; +pub const SQL_AT_DROP_COLUMN_CASCADE: i32 = 1024i32; +pub const SQL_AT_DROP_COLUMN_DEFAULT: i32 = 512i32; +pub const SQL_AT_DROP_COLUMN_RESTRICT: i32 = 2048i32; +pub const SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE: i32 = 8192i32; +pub const SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT: i32 = 16384i32; +pub const SQL_AT_SET_COLUMN_DEFAULT: i32 = 256i32; +pub const SQL_AUTOCOMMIT: u32 = 102u32; +pub const SQL_AUTOCOMMIT_DEFAULT: u32 = 1u32; +pub const SQL_AUTOCOMMIT_OFF: u32 = 0u32; +pub const SQL_AUTOCOMMIT_ON: u32 = 1u32; +pub const SQL_BATCH_ROW_COUNT: u32 = 120u32; +pub const SQL_BATCH_SUPPORT: u32 = 121u32; +pub const SQL_BCP_DEFAULT: i32 = 0i32; +pub const SQL_BCP_OFF: i32 = 0i32; +pub const SQL_BCP_ON: i32 = 1i32; +pub const SQL_BEST_ROWID: u32 = 1u32; +pub const SQL_BIGINT: i32 = -5i32; +pub const SQL_BINARY: i32 = -2i32; +pub const SQL_BIND_BY_COLUMN: u32 = 0u32; +pub const SQL_BIND_TYPE: u32 = 5u32; +pub const SQL_BIND_TYPE_DEFAULT: u32 = 0u32; +pub const SQL_BIT: i32 = -7i32; +pub const SQL_BOOKMARK_PERSISTENCE: u32 = 82u32; +pub const SQL_BP_CLOSE: i32 = 1i32; +pub const SQL_BP_DELETE: i32 = 2i32; +pub const SQL_BP_DROP: i32 = 4i32; +pub const SQL_BP_OTHER_HSTMT: i32 = 32i32; +pub const SQL_BP_SCROLL: i32 = 64i32; +pub const SQL_BP_TRANSACTION: i32 = 8i32; +pub const SQL_BP_UPDATE: i32 = 16i32; +pub const SQL_BRC_EXPLICIT: u32 = 2u32; +pub const SQL_BRC_PROCEDURES: u32 = 1u32; +pub const SQL_BRC_ROLLED_UP: u32 = 4u32; +pub const SQL_BS_ROW_COUNT_EXPLICIT: i32 = 2i32; +pub const SQL_BS_ROW_COUNT_PROC: i32 = 8i32; +pub const SQL_BS_SELECT_EXPLICIT: i32 = 1i32; +pub const SQL_BS_SELECT_PROC: i32 = 4i32; +pub const SQL_CA1_ABSOLUTE: i32 = 2i32; +pub const SQL_CA1_BOOKMARK: i32 = 8i32; +pub const SQL_CA1_BULK_ADD: i32 = 65536i32; +pub const SQL_CA1_BULK_DELETE_BY_BOOKMARK: i32 = 262144i32; +pub const SQL_CA1_BULK_FETCH_BY_BOOKMARK: i32 = 524288i32; +pub const SQL_CA1_BULK_UPDATE_BY_BOOKMARK: i32 = 131072i32; +pub const SQL_CA1_LOCK_EXCLUSIVE: i32 = 128i32; +pub const SQL_CA1_LOCK_NO_CHANGE: i32 = 64i32; +pub const SQL_CA1_LOCK_UNLOCK: i32 = 256i32; +pub const SQL_CA1_NEXT: i32 = 1i32; +pub const SQL_CA1_POSITIONED_DELETE: i32 = 16384i32; +pub const SQL_CA1_POSITIONED_UPDATE: i32 = 8192i32; +pub const SQL_CA1_POS_DELETE: i32 = 2048i32; +pub const SQL_CA1_POS_POSITION: i32 = 512i32; +pub const SQL_CA1_POS_REFRESH: i32 = 4096i32; +pub const SQL_CA1_POS_UPDATE: i32 = 1024i32; +pub const SQL_CA1_RELATIVE: i32 = 4i32; +pub const SQL_CA1_SELECT_FOR_UPDATE: i32 = 32768i32; +pub const SQL_CA2_CRC_APPROXIMATE: i32 = 8192i32; +pub const SQL_CA2_CRC_EXACT: i32 = 4096i32; +pub const SQL_CA2_LOCK_CONCURRENCY: i32 = 2i32; +pub const SQL_CA2_MAX_ROWS_CATALOG: i32 = 2048i32; +pub const SQL_CA2_MAX_ROWS_DELETE: i32 = 512i32; +pub const SQL_CA2_MAX_ROWS_INSERT: i32 = 256i32; +pub const SQL_CA2_MAX_ROWS_SELECT: i32 = 128i32; +pub const SQL_CA2_MAX_ROWS_UPDATE: i32 = 1024i32; +pub const SQL_CA2_OPT_ROWVER_CONCURRENCY: i32 = 4i32; +pub const SQL_CA2_OPT_VALUES_CONCURRENCY: i32 = 8i32; +pub const SQL_CA2_READ_ONLY_CONCURRENCY: i32 = 1i32; +pub const SQL_CA2_SENSITIVITY_ADDITIONS: i32 = 16i32; +pub const SQL_CA2_SENSITIVITY_DELETIONS: i32 = 32i32; +pub const SQL_CA2_SENSITIVITY_UPDATES: i32 = 64i32; +pub const SQL_CA2_SIMULATE_NON_UNIQUE: i32 = 16384i32; +pub const SQL_CA2_SIMULATE_TRY_UNIQUE: i32 = 32768i32; +pub const SQL_CA2_SIMULATE_UNIQUE: i32 = 65536i32; +pub const SQL_CACHE_DATA_NO: i32 = 0i32; +pub const SQL_CACHE_DATA_YES: i32 = 1i32; +pub const SQL_CASCADE: u32 = 0u32; +pub const SQL_CATALOG_LOCATION: u32 = 114u32; +pub const SQL_CATALOG_NAME: u32 = 10003u32; +pub const SQL_CATALOG_NAME_SEPARATOR: u32 = 41u32; +pub const SQL_CATALOG_TERM: u32 = 42u32; +pub const SQL_CATALOG_USAGE: u32 = 92u32; +pub const SQL_CA_CONSTRAINT_DEFERRABLE: i32 = 64i32; +pub const SQL_CA_CONSTRAINT_INITIALLY_DEFERRED: i32 = 16i32; +pub const SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE: i32 = 32i32; +pub const SQL_CA_CONSTRAINT_NON_DEFERRABLE: i32 = 128i32; +pub const SQL_CA_CREATE_ASSERTION: i32 = 1i32; +pub const SQL_CA_SS_BASE: u32 = 1200u32; +pub const SQL_CA_SS_COLUMN_COLLATION: u32 = 1214u32; +pub const SQL_CA_SS_COLUMN_HIDDEN: u32 = 1211u32; +pub const SQL_CA_SS_COLUMN_ID: u32 = 1208u32; +pub const SQL_CA_SS_COLUMN_KEY: u32 = 1212u32; +pub const SQL_CA_SS_COLUMN_OP: u32 = 1209u32; +pub const SQL_CA_SS_COLUMN_ORDER: u32 = 1203u32; +pub const SQL_CA_SS_COLUMN_SIZE: u32 = 1210u32; +pub const SQL_CA_SS_COLUMN_SSTYPE: u32 = 1200u32; +pub const SQL_CA_SS_COLUMN_UTYPE: u32 = 1201u32; +pub const SQL_CA_SS_COLUMN_VARYLEN: u32 = 1204u32; +pub const SQL_CA_SS_COMPUTE_BYLIST: u32 = 1207u32; +pub const SQL_CA_SS_COMPUTE_ID: u32 = 1206u32; +pub const SQL_CA_SS_MAX_USED: u32 = 1218u32; +pub const SQL_CA_SS_NUM_COMPUTES: u32 = 1205u32; +pub const SQL_CA_SS_NUM_ORDERS: u32 = 1202u32; +pub const SQL_CA_SS_VARIANT_SERVER_TYPE: u32 = 1217u32; +pub const SQL_CA_SS_VARIANT_SQL_TYPE: u32 = 1216u32; +pub const SQL_CA_SS_VARIANT_TYPE: u32 = 1215u32; +pub const SQL_CB_CLOSE: u32 = 1u32; +pub const SQL_CB_DELETE: u32 = 0u32; +pub const SQL_CB_NON_NULL: u32 = 1u32; +pub const SQL_CB_NULL: u32 = 0u32; +pub const SQL_CB_PRESERVE: u32 = 2u32; +pub const SQL_CCOL_CREATE_COLLATION: i32 = 1i32; +pub const SQL_CCS_COLLATE_CLAUSE: i32 = 2i32; +pub const SQL_CCS_CREATE_CHARACTER_SET: i32 = 1i32; +pub const SQL_CCS_LIMITED_COLLATION: i32 = 4i32; +pub const SQL_CC_CLOSE: u32 = 1u32; +pub const SQL_CC_DELETE: u32 = 0u32; +pub const SQL_CC_PRESERVE: u32 = 2u32; +pub const SQL_CDO_COLLATION: i32 = 8i32; +pub const SQL_CDO_CONSTRAINT: i32 = 4i32; +pub const SQL_CDO_CONSTRAINT_DEFERRABLE: i32 = 128i32; +pub const SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED: i32 = 32i32; +pub const SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE: i32 = 64i32; +pub const SQL_CDO_CONSTRAINT_NAME_DEFINITION: i32 = 16i32; +pub const SQL_CDO_CONSTRAINT_NON_DEFERRABLE: i32 = 256i32; +pub const SQL_CDO_CREATE_DOMAIN: i32 = 1i32; +pub const SQL_CDO_DEFAULT: i32 = 2i32; +pub const SQL_CD_FALSE: i32 = 0i32; +pub const SQL_CD_TRUE: i32 = 1i32; +pub const SQL_CHAR: u32 = 1u32; +pub const SQL_CLOSE: u32 = 0u32; +pub const SQL_CL_END: u32 = 2u32; +pub const SQL_CL_START: u32 = 1u32; +pub const SQL_CN_ANY: u32 = 2u32; +pub const SQL_CN_DEFAULT: i32 = 1i32; +pub const SQL_CN_DIFFERENT: u32 = 1u32; +pub const SQL_CN_NONE: u32 = 0u32; +pub const SQL_CN_OFF: i32 = 0i32; +pub const SQL_CN_ON: i32 = 1i32; +pub const SQL_CODE_DATE: u32 = 1u32; +pub const SQL_CODE_DAY: u32 = 3u32; +pub const SQL_CODE_DAY_TO_HOUR: u32 = 8u32; +pub const SQL_CODE_DAY_TO_MINUTE: u32 = 9u32; +pub const SQL_CODE_DAY_TO_SECOND: u32 = 10u32; +pub const SQL_CODE_HOUR: u32 = 4u32; +pub const SQL_CODE_HOUR_TO_MINUTE: u32 = 11u32; +pub const SQL_CODE_HOUR_TO_SECOND: u32 = 12u32; +pub const SQL_CODE_MINUTE: u32 = 5u32; +pub const SQL_CODE_MINUTE_TO_SECOND: u32 = 13u32; +pub const SQL_CODE_MONTH: u32 = 2u32; +pub const SQL_CODE_SECOND: u32 = 6u32; +pub const SQL_CODE_TIME: u32 = 2u32; +pub const SQL_CODE_TIMESTAMP: u32 = 3u32; +pub const SQL_CODE_YEAR: u32 = 1u32; +pub const SQL_CODE_YEAR_TO_MONTH: u32 = 7u32; +pub const SQL_COLATT_OPT_MAX: u32 = 18u32; +pub const SQL_COLATT_OPT_MIN: u32 = 0u32; +pub const SQL_COLLATION_SEQ: u32 = 10004u32; +pub const SQL_COLUMN_ALIAS: u32 = 87u32; +pub const SQL_COLUMN_AUTO_INCREMENT: u32 = 11u32; +pub const SQL_COLUMN_CASE_SENSITIVE: u32 = 12u32; +pub const SQL_COLUMN_COUNT: u32 = 0u32; +pub const SQL_COLUMN_DISPLAY_SIZE: u32 = 6u32; +pub const SQL_COLUMN_DRIVER_START: u32 = 1000u32; +pub const SQL_COLUMN_IGNORE: i32 = -6i32; +pub const SQL_COLUMN_LABEL: u32 = 18u32; +pub const SQL_COLUMN_LENGTH: u32 = 3u32; +pub const SQL_COLUMN_MONEY: u32 = 9u32; +pub const SQL_COLUMN_NAME: u32 = 1u32; +pub const SQL_COLUMN_NULLABLE: u32 = 7u32; +pub const SQL_COLUMN_NUMBER_UNKNOWN: i32 = -2i32; +pub const SQL_COLUMN_OWNER_NAME: u32 = 16u32; +pub const SQL_COLUMN_PRECISION: u32 = 4u32; +pub const SQL_COLUMN_QUALIFIER_NAME: u32 = 17u32; +pub const SQL_COLUMN_SCALE: u32 = 5u32; +pub const SQL_COLUMN_SEARCHABLE: u32 = 13u32; +pub const SQL_COLUMN_TABLE_NAME: u32 = 15u32; +pub const SQL_COLUMN_TYPE: u32 = 2u32; +pub const SQL_COLUMN_TYPE_NAME: u32 = 14u32; +pub const SQL_COLUMN_UNSIGNED: u32 = 8u32; +pub const SQL_COLUMN_UPDATABLE: u32 = 10u32; +pub const SQL_COMMIT: u32 = 0u32; +pub const SQL_CONCAT_NULL_BEHAVIOR: u32 = 22u32; +pub const SQL_CONCURRENCY: u32 = 7u32; +pub const SQL_CONCUR_DEFAULT: u32 = 1u32; +pub const SQL_CONCUR_LOCK: u32 = 2u32; +pub const SQL_CONCUR_READ_ONLY: u32 = 1u32; +pub const SQL_CONCUR_ROWVER: u32 = 3u32; +pub const SQL_CONCUR_TIMESTAMP: u32 = 3u32; +pub const SQL_CONCUR_VALUES: u32 = 4u32; +pub const SQL_CONNECT_OPT_DRVR_START: u32 = 1000u32; +pub const SQL_CONN_OPT_MAX: u32 = 112u32; +pub const SQL_CONN_OPT_MIN: u32 = 101u32; +pub const SQL_CONN_POOL_RATING_BEST: u32 = 100u32; +pub const SQL_CONN_POOL_RATING_GOOD_ENOUGH: u32 = 99u32; +pub const SQL_CONN_POOL_RATING_USELESS: u32 = 0u32; +pub const SQL_CONVERT_BIGINT: u32 = 53u32; +pub const SQL_CONVERT_BINARY: u32 = 54u32; +pub const SQL_CONVERT_BIT: u32 = 55u32; +pub const SQL_CONVERT_CHAR: u32 = 56u32; +pub const SQL_CONVERT_DATE: u32 = 57u32; +pub const SQL_CONVERT_DECIMAL: u32 = 58u32; +pub const SQL_CONVERT_DOUBLE: u32 = 59u32; +pub const SQL_CONVERT_FLOAT: u32 = 60u32; +pub const SQL_CONVERT_FUNCTIONS: u32 = 48u32; +pub const SQL_CONVERT_GUID: u32 = 173u32; +pub const SQL_CONVERT_INTEGER: u32 = 61u32; +pub const SQL_CONVERT_INTERVAL_DAY_TIME: u32 = 123u32; +pub const SQL_CONVERT_INTERVAL_YEAR_MONTH: u32 = 124u32; +pub const SQL_CONVERT_LONGVARBINARY: u32 = 71u32; +pub const SQL_CONVERT_LONGVARCHAR: u32 = 62u32; +pub const SQL_CONVERT_NUMERIC: u32 = 63u32; +pub const SQL_CONVERT_REAL: u32 = 64u32; +pub const SQL_CONVERT_SMALLINT: u32 = 65u32; +pub const SQL_CONVERT_TIME: u32 = 66u32; +pub const SQL_CONVERT_TIMESTAMP: u32 = 67u32; +pub const SQL_CONVERT_TINYINT: u32 = 68u32; +pub const SQL_CONVERT_VARBINARY: u32 = 69u32; +pub const SQL_CONVERT_VARCHAR: u32 = 70u32; +pub const SQL_CONVERT_WCHAR: u32 = 122u32; +pub const SQL_CONVERT_WLONGVARCHAR: u32 = 125u32; +pub const SQL_CONVERT_WVARCHAR: u32 = 126u32; +pub const SQL_COPT_SS_ANSI_NPW: u32 = 1218u32; +pub const SQL_COPT_SS_ANSI_OEM: u32 = 1206u32; +pub const SQL_COPT_SS_ATTACHDBFILENAME: u32 = 1221u32; +pub const SQL_COPT_SS_BASE: u32 = 1200u32; +pub const SQL_COPT_SS_BASE_EX: u32 = 1240u32; +pub const SQL_COPT_SS_BCP: u32 = 1219u32; +pub const SQL_COPT_SS_BROWSE_CACHE_DATA: u32 = 1245u32; +pub const SQL_COPT_SS_BROWSE_CONNECT: u32 = 1241u32; +pub const SQL_COPT_SS_BROWSE_SERVER: u32 = 1242u32; +pub const SQL_COPT_SS_CONCAT_NULL: u32 = 1222u32; +pub const SQL_COPT_SS_CONNECTION_DEAD: u32 = 1244u32; +pub const SQL_COPT_SS_ENCRYPT: u32 = 1223u32; +pub const SQL_COPT_SS_EX_MAX_USED: u32 = 1246u32; +pub const SQL_COPT_SS_FALLBACK_CONNECT: u32 = 1210u32; +pub const SQL_COPT_SS_INTEGRATED_SECURITY: u32 = 1203u32; +pub const SQL_COPT_SS_MAX_USED: u32 = 1223u32; +pub const SQL_COPT_SS_PERF_DATA: u32 = 1211u32; +pub const SQL_COPT_SS_PERF_DATA_LOG: u32 = 1212u32; +pub const SQL_COPT_SS_PERF_DATA_LOG_NOW: u32 = 1216u32; +pub const SQL_COPT_SS_PERF_QUERY: u32 = 1215u32; +pub const SQL_COPT_SS_PERF_QUERY_INTERVAL: u32 = 1213u32; +pub const SQL_COPT_SS_PERF_QUERY_LOG: u32 = 1214u32; +pub const SQL_COPT_SS_PRESERVE_CURSORS: u32 = 1204u32; +pub const SQL_COPT_SS_QUOTED_IDENT: u32 = 1217u32; +pub const SQL_COPT_SS_REMOTE_PWD: u32 = 1201u32; +pub const SQL_COPT_SS_RESET_CONNECTION: u32 = 1246u32; +pub const SQL_COPT_SS_TRANSLATE: u32 = 1220u32; +pub const SQL_COPT_SS_USER_DATA: u32 = 1205u32; +pub const SQL_COPT_SS_USE_PROC_FOR_PREP: u32 = 1202u32; +pub const SQL_COPT_SS_WARN_ON_CP_ERROR: u32 = 1243u32; +pub const SQL_CORRELATION_NAME: u32 = 74u32; +pub const SQL_CO_AF: i32 = 2i32; +pub const SQL_CO_DEFAULT: i32 = 0i32; +pub const SQL_CO_FFO: i32 = 1i32; +pub const SQL_CO_FIREHOSE_AF: i32 = 4i32; +pub const SQL_CO_OFF: i32 = 0i32; +pub const SQL_CP_DEFAULT: u32 = 0u32; +pub const SQL_CP_DRIVER_AWARE: u32 = 3u32; +pub const SQL_CP_MATCH_DEFAULT: u32 = 0u32; +pub const SQL_CP_OFF: u32 = 0u32; +pub const SQL_CP_ONE_PER_DRIVER: u32 = 1u32; +pub const SQL_CP_ONE_PER_HENV: u32 = 2u32; +pub const SQL_CP_RELAXED_MATCH: u32 = 1u32; +pub const SQL_CP_STRICT_MATCH: u32 = 0u32; +pub const SQL_CREATE_ASSERTION: u32 = 127u32; +pub const SQL_CREATE_CHARACTER_SET: u32 = 128u32; +pub const SQL_CREATE_COLLATION: u32 = 129u32; +pub const SQL_CREATE_DOMAIN: u32 = 130u32; +pub const SQL_CREATE_SCHEMA: u32 = 131u32; +pub const SQL_CREATE_TABLE: u32 = 132u32; +pub const SQL_CREATE_TRANSLATION: u32 = 133u32; +pub const SQL_CREATE_VIEW: u32 = 134u32; +pub const SQL_CR_CLOSE: u32 = 1u32; +pub const SQL_CR_DELETE: u32 = 0u32; +pub const SQL_CR_PRESERVE: u32 = 2u32; +pub const SQL_CS_AUTHORIZATION: i32 = 2i32; +pub const SQL_CS_CREATE_SCHEMA: i32 = 1i32; +pub const SQL_CS_DEFAULT_CHARACTER_SET: i32 = 4i32; +pub const SQL_CTR_CREATE_TRANSLATION: i32 = 1i32; +pub const SQL_CT_COLUMN_COLLATION: i32 = 2048i32; +pub const SQL_CT_COLUMN_CONSTRAINT: i32 = 512i32; +pub const SQL_CT_COLUMN_DEFAULT: i32 = 1024i32; +pub const SQL_CT_COMMIT_DELETE: i32 = 4i32; +pub const SQL_CT_COMMIT_PRESERVE: i32 = 2i32; +pub const SQL_CT_CONSTRAINT_DEFERRABLE: i32 = 128i32; +pub const SQL_CT_CONSTRAINT_INITIALLY_DEFERRED: i32 = 32i32; +pub const SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE: i32 = 64i32; +pub const SQL_CT_CONSTRAINT_NAME_DEFINITION: i32 = 8192i32; +pub const SQL_CT_CONSTRAINT_NON_DEFERRABLE: i32 = 256i32; +pub const SQL_CT_CREATE_TABLE: i32 = 1i32; +pub const SQL_CT_GLOBAL_TEMPORARY: i32 = 8i32; +pub const SQL_CT_LOCAL_TEMPORARY: i32 = 16i32; +pub const SQL_CT_TABLE_CONSTRAINT: i32 = 4096i32; +pub const SQL_CURRENT_QUALIFIER: u32 = 109u32; +pub const SQL_CURSOR_COMMIT_BEHAVIOR: u32 = 23u32; +pub const SQL_CURSOR_DYNAMIC: u32 = 2u32; +pub const SQL_CURSOR_FAST_FORWARD_ONLY: u32 = 8u32; +pub const SQL_CURSOR_FORWARD_ONLY: u32 = 0u32; +pub const SQL_CURSOR_KEYSET_DRIVEN: u32 = 1u32; +pub const SQL_CURSOR_ROLLBACK_BEHAVIOR: u32 = 24u32; +pub const SQL_CURSOR_SENSITIVITY: u32 = 10001u32; +pub const SQL_CURSOR_STATIC: u32 = 3u32; +pub const SQL_CURSOR_TYPE: u32 = 6u32; +pub const SQL_CURSOR_TYPE_DEFAULT: u32 = 0u32; +pub const SQL_CUR_DEFAULT: u32 = 2u32; +pub const SQL_CUR_USE_DRIVER: u32 = 2u32; +pub const SQL_CUR_USE_IF_NEEDED: u32 = 0u32; +pub const SQL_CUR_USE_ODBC: u32 = 1u32; +pub const SQL_CU_DML_STATEMENTS: i32 = 1i32; +pub const SQL_CU_INDEX_DEFINITION: i32 = 8i32; +pub const SQL_CU_PRIVILEGE_DEFINITION: i32 = 16i32; +pub const SQL_CU_PROCEDURE_INVOCATION: i32 = 2i32; +pub const SQL_CU_TABLE_DEFINITION: i32 = 4i32; +pub const SQL_CVT_BIGINT: i32 = 16384i32; +pub const SQL_CVT_BINARY: i32 = 1024i32; +pub const SQL_CVT_BIT: i32 = 4096i32; +pub const SQL_CVT_CHAR: i32 = 1i32; +pub const SQL_CVT_DATE: i32 = 32768i32; +pub const SQL_CVT_DECIMAL: i32 = 4i32; +pub const SQL_CVT_DOUBLE: i32 = 128i32; +pub const SQL_CVT_FLOAT: i32 = 32i32; +pub const SQL_CVT_GUID: i32 = 16777216i32; +pub const SQL_CVT_INTEGER: i32 = 8i32; +pub const SQL_CVT_INTERVAL_DAY_TIME: i32 = 1048576i32; +pub const SQL_CVT_INTERVAL_YEAR_MONTH: i32 = 524288i32; +pub const SQL_CVT_LONGVARBINARY: i32 = 262144i32; +pub const SQL_CVT_LONGVARCHAR: i32 = 512i32; +pub const SQL_CVT_NUMERIC: i32 = 2i32; +pub const SQL_CVT_REAL: i32 = 64i32; +pub const SQL_CVT_SMALLINT: i32 = 16i32; +pub const SQL_CVT_TIME: i32 = 65536i32; +pub const SQL_CVT_TIMESTAMP: i32 = 131072i32; +pub const SQL_CVT_TINYINT: i32 = 8192i32; +pub const SQL_CVT_VARBINARY: i32 = 2048i32; +pub const SQL_CVT_VARCHAR: i32 = 256i32; +pub const SQL_CVT_WCHAR: i32 = 2097152i32; +pub const SQL_CVT_WLONGVARCHAR: i32 = 4194304i32; +pub const SQL_CVT_WVARCHAR: i32 = 8388608i32; +pub const SQL_CV_CASCADED: i32 = 4i32; +pub const SQL_CV_CHECK_OPTION: i32 = 2i32; +pub const SQL_CV_CREATE_VIEW: i32 = 1i32; +pub const SQL_CV_LOCAL: i32 = 8i32; +pub const SQL_C_BINARY: i32 = -2i32; +pub const SQL_C_BIT: i32 = -7i32; +pub const SQL_C_CHAR: u32 = 1u32; +pub const SQL_C_DATE: u32 = 9u32; +pub const SQL_C_DEFAULT: u32 = 99u32; +pub const SQL_C_DOUBLE: u32 = 8u32; +pub const SQL_C_FLOAT: u32 = 7u32; +pub const SQL_C_GUID: i32 = -11i32; +pub const SQL_C_INTERVAL_DAY: i32 = -83i32; +pub const SQL_C_INTERVAL_DAY_TO_HOUR: i32 = -87i32; +pub const SQL_C_INTERVAL_DAY_TO_MINUTE: i32 = -88i32; +pub const SQL_C_INTERVAL_DAY_TO_SECOND: i32 = -89i32; +pub const SQL_C_INTERVAL_HOUR: i32 = -84i32; +pub const SQL_C_INTERVAL_HOUR_TO_MINUTE: i32 = -90i32; +pub const SQL_C_INTERVAL_HOUR_TO_SECOND: i32 = -91i32; +pub const SQL_C_INTERVAL_MINUTE: i32 = -85i32; +pub const SQL_C_INTERVAL_MINUTE_TO_SECOND: i32 = -92i32; +pub const SQL_C_INTERVAL_MONTH: i32 = -81i32; +pub const SQL_C_INTERVAL_SECOND: i32 = -86i32; +pub const SQL_C_INTERVAL_YEAR: i32 = -80i32; +pub const SQL_C_INTERVAL_YEAR_TO_MONTH: i32 = -82i32; +pub const SQL_C_LONG: u32 = 4u32; +pub const SQL_C_NUMERIC: u32 = 2u32; +pub const SQL_C_SHORT: u32 = 5u32; +pub const SQL_C_TCHAR: i32 = -8i32; +pub const SQL_C_TIME: u32 = 10u32; +pub const SQL_C_TIMESTAMP: u32 = 11u32; +pub const SQL_C_TINYINT: i32 = -6i32; +pub const SQL_C_TYPE_DATE: u32 = 91u32; +pub const SQL_C_TYPE_TIME: u32 = 92u32; +pub const SQL_C_TYPE_TIMESTAMP: u32 = 93u32; +pub const SQL_C_VARBOOKMARK: i32 = -2i32; +pub const SQL_C_WCHAR: i32 = -8i32; +pub const SQL_DATABASE_NAME: u32 = 16u32; +pub const SQL_DATA_AT_EXEC: i32 = -2i32; +pub const SQL_DATA_SOURCE_NAME: u32 = 2u32; +pub const SQL_DATA_SOURCE_READ_ONLY: u32 = 25u32; +pub const SQL_DATE: u32 = 9u32; +pub const SQL_DATETIME: u32 = 9u32; +pub const SQL_DATETIME_LITERALS: u32 = 119u32; +pub const SQL_DATE_LEN: u32 = 10u32; +pub const SQL_DAY: u32 = 3u32; +pub const SQL_DAY_TO_HOUR: u32 = 8u32; +pub const SQL_DAY_TO_MINUTE: u32 = 9u32; +pub const SQL_DAY_TO_SECOND: u32 = 10u32; +pub const SQL_DA_DROP_ASSERTION: i32 = 1i32; +pub const SQL_DBMS_NAME: u32 = 17u32; +pub const SQL_DBMS_VER: u32 = 18u32; +pub const SQL_DB_DEFAULT: u32 = 0u32; +pub const SQL_DB_DISCONNECT: u32 = 1u32; +pub const SQL_DB_RETURN_TO_POOL: u32 = 0u32; +pub const SQL_DCS_DROP_CHARACTER_SET: i32 = 1i32; +pub const SQL_DC_DROP_COLLATION: i32 = 1i32; +pub const SQL_DDL_INDEX: u32 = 170u32; +pub const SQL_DD_CASCADE: i32 = 4i32; +pub const SQL_DD_DROP_DOMAIN: i32 = 1i32; +pub const SQL_DD_RESTRICT: i32 = 2i32; +pub const SQL_DECIMAL: u32 = 3u32; +pub const SQL_DEFAULT: u32 = 99u32; +pub const SQL_DEFAULT_PARAM: i32 = -5i32; +pub const SQL_DEFAULT_TXN_ISOLATION: u32 = 26u32; +pub const SQL_DELETE: u32 = 3u32; +pub const SQL_DELETE_BY_BOOKMARK: u32 = 6u32; +pub const SQL_DESCRIBE_PARAMETER: u32 = 10002u32; +pub const SQL_DESC_ALLOC_AUTO: u32 = 1u32; +pub const SQL_DESC_ALLOC_TYPE: u32 = 1099u32; +pub const SQL_DESC_ALLOC_USER: u32 = 2u32; +pub const SQL_DESC_ARRAY_SIZE: u32 = 20u32; +pub const SQL_DESC_ARRAY_STATUS_PTR: u32 = 21u32; +pub const SQL_DESC_BASE_COLUMN_NAME: u32 = 22u32; +pub const SQL_DESC_BASE_TABLE_NAME: u32 = 23u32; +pub const SQL_DESC_BIND_OFFSET_PTR: u32 = 24u32; +pub const SQL_DESC_BIND_TYPE: u32 = 25u32; +pub const SQL_DESC_COUNT: u32 = 1001u32; +pub const SQL_DESC_DATA_PTR: u32 = 1010u32; +pub const SQL_DESC_DATETIME_INTERVAL_CODE: u32 = 1007u32; +pub const SQL_DESC_DATETIME_INTERVAL_PRECISION: u32 = 26u32; +pub const SQL_DESC_INDICATOR_PTR: u32 = 1009u32; +pub const SQL_DESC_LENGTH: u32 = 1003u32; +pub const SQL_DESC_LITERAL_PREFIX: u32 = 27u32; +pub const SQL_DESC_LITERAL_SUFFIX: u32 = 28u32; +pub const SQL_DESC_LOCAL_TYPE_NAME: u32 = 29u32; +pub const SQL_DESC_MAXIMUM_SCALE: u32 = 30u32; +pub const SQL_DESC_MINIMUM_SCALE: u32 = 31u32; +pub const SQL_DESC_NAME: u32 = 1011u32; +pub const SQL_DESC_NULLABLE: u32 = 1008u32; +pub const SQL_DESC_NUM_PREC_RADIX: u32 = 32u32; +pub const SQL_DESC_OCTET_LENGTH: u32 = 1013u32; +pub const SQL_DESC_OCTET_LENGTH_PTR: u32 = 1004u32; +pub const SQL_DESC_PARAMETER_TYPE: u32 = 33u32; +pub const SQL_DESC_PRECISION: u32 = 1005u32; +pub const SQL_DESC_ROWS_PROCESSED_PTR: u32 = 34u32; +pub const SQL_DESC_ROWVER: u32 = 35u32; +pub const SQL_DESC_SCALE: u32 = 1006u32; +pub const SQL_DESC_TYPE: u32 = 1002u32; +pub const SQL_DESC_UNNAMED: u32 = 1012u32; +pub const SQL_DIAG_ALTER_DOMAIN: u32 = 3u32; +pub const SQL_DIAG_ALTER_TABLE: u32 = 4u32; +pub const SQL_DIAG_CALL: u32 = 7u32; +pub const SQL_DIAG_CLASS_ORIGIN: u32 = 8u32; +pub const SQL_DIAG_COLUMN_NUMBER: i32 = -1247i32; +pub const SQL_DIAG_CONNECTION_NAME: u32 = 10u32; +pub const SQL_DIAG_CREATE_ASSERTION: u32 = 6u32; +pub const SQL_DIAG_CREATE_CHARACTER_SET: u32 = 8u32; +pub const SQL_DIAG_CREATE_COLLATION: u32 = 10u32; +pub const SQL_DIAG_CREATE_DOMAIN: u32 = 23u32; +pub const SQL_DIAG_CREATE_INDEX: i32 = -1i32; +pub const SQL_DIAG_CREATE_SCHEMA: u32 = 64u32; +pub const SQL_DIAG_CREATE_TABLE: u32 = 77u32; +pub const SQL_DIAG_CREATE_TRANSLATION: u32 = 79u32; +pub const SQL_DIAG_CREATE_VIEW: u32 = 84u32; +pub const SQL_DIAG_CURSOR_ROW_COUNT: i32 = -1249i32; +pub const SQL_DIAG_DELETE_WHERE: u32 = 19u32; +pub const SQL_DIAG_DFC_SS_ALTER_DATABASE: i32 = -200i32; +pub const SQL_DIAG_DFC_SS_BASE: i32 = -200i32; +pub const SQL_DIAG_DFC_SS_CHECKPOINT: i32 = -201i32; +pub const SQL_DIAG_DFC_SS_CONDITION: i32 = -202i32; +pub const SQL_DIAG_DFC_SS_CREATE_DATABASE: i32 = -203i32; +pub const SQL_DIAG_DFC_SS_CREATE_DEFAULT: i32 = -204i32; +pub const SQL_DIAG_DFC_SS_CREATE_PROCEDURE: i32 = -205i32; +pub const SQL_DIAG_DFC_SS_CREATE_RULE: i32 = -206i32; +pub const SQL_DIAG_DFC_SS_CREATE_TRIGGER: i32 = -207i32; +pub const SQL_DIAG_DFC_SS_CURSOR_CLOSE: i32 = -211i32; +pub const SQL_DIAG_DFC_SS_CURSOR_DECLARE: i32 = -208i32; +pub const SQL_DIAG_DFC_SS_CURSOR_FETCH: i32 = -210i32; +pub const SQL_DIAG_DFC_SS_CURSOR_OPEN: i32 = -209i32; +pub const SQL_DIAG_DFC_SS_DBCC: i32 = -213i32; +pub const SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR: i32 = -212i32; +pub const SQL_DIAG_DFC_SS_DENY: i32 = -254i32; +pub const SQL_DIAG_DFC_SS_DISK: i32 = -214i32; +pub const SQL_DIAG_DFC_SS_DROP_DATABASE: i32 = -215i32; +pub const SQL_DIAG_DFC_SS_DROP_DEFAULT: i32 = -216i32; +pub const SQL_DIAG_DFC_SS_DROP_PROCEDURE: i32 = -217i32; +pub const SQL_DIAG_DFC_SS_DROP_RULE: i32 = -218i32; +pub const SQL_DIAG_DFC_SS_DROP_TRIGGER: i32 = -219i32; +pub const SQL_DIAG_DFC_SS_DUMP_DATABASE: i32 = -220i32; +pub const SQL_DIAG_DFC_SS_DUMP_TABLE: i32 = -221i32; +pub const SQL_DIAG_DFC_SS_DUMP_TRANSACTION: i32 = -222i32; +pub const SQL_DIAG_DFC_SS_GOTO: i32 = -223i32; +pub const SQL_DIAG_DFC_SS_INSERT_BULK: i32 = -224i32; +pub const SQL_DIAG_DFC_SS_KILL: i32 = -225i32; +pub const SQL_DIAG_DFC_SS_LOAD_DATABASE: i32 = -226i32; +pub const SQL_DIAG_DFC_SS_LOAD_HEADERONLY: i32 = -227i32; +pub const SQL_DIAG_DFC_SS_LOAD_TABLE: i32 = -228i32; +pub const SQL_DIAG_DFC_SS_LOAD_TRANSACTION: i32 = -229i32; +pub const SQL_DIAG_DFC_SS_PRINT: i32 = -230i32; +pub const SQL_DIAG_DFC_SS_RAISERROR: i32 = -231i32; +pub const SQL_DIAG_DFC_SS_READTEXT: i32 = -232i32; +pub const SQL_DIAG_DFC_SS_RECONFIGURE: i32 = -233i32; +pub const SQL_DIAG_DFC_SS_RETURN: i32 = -234i32; +pub const SQL_DIAG_DFC_SS_SELECT_INTO: i32 = -235i32; +pub const SQL_DIAG_DFC_SS_SET: i32 = -236i32; +pub const SQL_DIAG_DFC_SS_SETUSER: i32 = -241i32; +pub const SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT: i32 = -237i32; +pub const SQL_DIAG_DFC_SS_SET_ROW_COUNT: i32 = -238i32; +pub const SQL_DIAG_DFC_SS_SET_STATISTICS: i32 = -239i32; +pub const SQL_DIAG_DFC_SS_SET_TEXTSIZE: i32 = -240i32; +pub const SQL_DIAG_DFC_SS_SET_XCTLVL: i32 = -255i32; +pub const SQL_DIAG_DFC_SS_SHUTDOWN: i32 = -242i32; +pub const SQL_DIAG_DFC_SS_TRANS_BEGIN: i32 = -243i32; +pub const SQL_DIAG_DFC_SS_TRANS_COMMIT: i32 = -244i32; +pub const SQL_DIAG_DFC_SS_TRANS_PREPARE: i32 = -245i32; +pub const SQL_DIAG_DFC_SS_TRANS_ROLLBACK: i32 = -246i32; +pub const SQL_DIAG_DFC_SS_TRANS_SAVE: i32 = -247i32; +pub const SQL_DIAG_DFC_SS_TRUNCATE_TABLE: i32 = -248i32; +pub const SQL_DIAG_DFC_SS_UPDATETEXT: i32 = -250i32; +pub const SQL_DIAG_DFC_SS_UPDATE_STATISTICS: i32 = -249i32; +pub const SQL_DIAG_DFC_SS_USE: i32 = -251i32; +pub const SQL_DIAG_DFC_SS_WAITFOR: i32 = -252i32; +pub const SQL_DIAG_DFC_SS_WRITETEXT: i32 = -253i32; +pub const SQL_DIAG_DROP_ASSERTION: u32 = 24u32; +pub const SQL_DIAG_DROP_CHARACTER_SET: u32 = 25u32; +pub const SQL_DIAG_DROP_COLLATION: u32 = 26u32; +pub const SQL_DIAG_DROP_DOMAIN: u32 = 27u32; +pub const SQL_DIAG_DROP_INDEX: i32 = -2i32; +pub const SQL_DIAG_DROP_SCHEMA: u32 = 31u32; +pub const SQL_DIAG_DROP_TABLE: u32 = 32u32; +pub const SQL_DIAG_DROP_TRANSLATION: u32 = 33u32; +pub const SQL_DIAG_DROP_VIEW: u32 = 36u32; +pub const SQL_DIAG_DYNAMIC_DELETE_CURSOR: u32 = 38u32; +pub const SQL_DIAG_DYNAMIC_FUNCTION: u32 = 7u32; +pub const SQL_DIAG_DYNAMIC_FUNCTION_CODE: u32 = 12u32; +pub const SQL_DIAG_DYNAMIC_UPDATE_CURSOR: u32 = 81u32; +pub const SQL_DIAG_GRANT: u32 = 48u32; +pub const SQL_DIAG_INSERT: u32 = 50u32; +pub const SQL_DIAG_MESSAGE_TEXT: u32 = 6u32; +pub const SQL_DIAG_NATIVE: u32 = 5u32; +pub const SQL_DIAG_NUMBER: u32 = 2u32; +pub const SQL_DIAG_RETURNCODE: u32 = 1u32; +pub const SQL_DIAG_REVOKE: u32 = 59u32; +pub const SQL_DIAG_ROW_COUNT: u32 = 3u32; +pub const SQL_DIAG_ROW_NUMBER: i32 = -1248i32; +pub const SQL_DIAG_SELECT_CURSOR: u32 = 85u32; +pub const SQL_DIAG_SERVER_NAME: u32 = 11u32; +pub const SQL_DIAG_SQLSTATE: u32 = 4u32; +pub const SQL_DIAG_SS_BASE: i32 = -1150i32; +pub const SQL_DIAG_SS_LINE: i32 = -1154i32; +pub const SQL_DIAG_SS_MSGSTATE: i32 = -1150i32; +pub const SQL_DIAG_SS_PROCNAME: i32 = -1153i32; +pub const SQL_DIAG_SS_SEVERITY: i32 = -1151i32; +pub const SQL_DIAG_SS_SRVNAME: i32 = -1152i32; +pub const SQL_DIAG_SUBCLASS_ORIGIN: u32 = 9u32; +pub const SQL_DIAG_UNKNOWN_STATEMENT: u32 = 0u32; +pub const SQL_DIAG_UPDATE_WHERE: u32 = 82u32; +pub const SQL_DI_CREATE_INDEX: i32 = 1i32; +pub const SQL_DI_DROP_INDEX: i32 = 2i32; +pub const SQL_DL_SQL92_DATE: i32 = 1i32; +pub const SQL_DL_SQL92_INTERVAL_DAY: i32 = 32i32; +pub const SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR: i32 = 1024i32; +pub const SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE: i32 = 2048i32; +pub const SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND: i32 = 4096i32; +pub const SQL_DL_SQL92_INTERVAL_HOUR: i32 = 64i32; +pub const SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE: i32 = 8192i32; +pub const SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND: i32 = 16384i32; +pub const SQL_DL_SQL92_INTERVAL_MINUTE: i32 = 128i32; +pub const SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND: i32 = 32768i32; +pub const SQL_DL_SQL92_INTERVAL_MONTH: i32 = 16i32; +pub const SQL_DL_SQL92_INTERVAL_SECOND: i32 = 256i32; +pub const SQL_DL_SQL92_INTERVAL_YEAR: i32 = 8i32; +pub const SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH: i32 = 512i32; +pub const SQL_DL_SQL92_TIME: i32 = 2i32; +pub const SQL_DL_SQL92_TIMESTAMP: i32 = 4i32; +pub const SQL_DM_VER: u32 = 171u32; +pub const SQL_DOUBLE: u32 = 8u32; +pub const SQL_DP_OFF: i32 = 0i32; +pub const SQL_DP_ON: i32 = 1i32; +pub const SQL_DRIVER_AWARE_POOLING_CAPABLE: i32 = 1i32; +pub const SQL_DRIVER_AWARE_POOLING_NOT_CAPABLE: i32 = 0i32; +pub const SQL_DRIVER_AWARE_POOLING_SUPPORTED: u32 = 10024u32; +pub const SQL_DRIVER_COMPLETE: u32 = 1u32; +pub const SQL_DRIVER_COMPLETE_REQUIRED: u32 = 3u32; +pub const SQL_DRIVER_CONN_ATTR_BASE: u32 = 16384u32; +pub const SQL_DRIVER_C_TYPE_BASE: u32 = 16384u32; +pub const SQL_DRIVER_DESC_FIELD_BASE: u32 = 16384u32; +pub const SQL_DRIVER_DIAG_FIELD_BASE: u32 = 16384u32; +pub const SQL_DRIVER_HDBC: u32 = 3u32; +pub const SQL_DRIVER_HDESC: u32 = 135u32; +pub const SQL_DRIVER_HENV: u32 = 4u32; +pub const SQL_DRIVER_HLIB: u32 = 76u32; +pub const SQL_DRIVER_HSTMT: u32 = 5u32; +pub const SQL_DRIVER_INFO_TYPE_BASE: u32 = 16384u32; +pub const SQL_DRIVER_NAME: u32 = 6u32; +pub const SQL_DRIVER_NOPROMPT: u32 = 0u32; +pub const SQL_DRIVER_ODBC_VER: u32 = 77u32; +pub const SQL_DRIVER_PROMPT: u32 = 2u32; +pub const SQL_DRIVER_SQL_TYPE_BASE: u32 = 16384u32; +pub const SQL_DRIVER_STMT_ATTR_BASE: u32 = 16384u32; +pub const SQL_DRIVER_VER: u32 = 7u32; +pub const SQL_DROP: u32 = 1u32; +pub const SQL_DROP_ASSERTION: u32 = 136u32; +pub const SQL_DROP_CHARACTER_SET: u32 = 137u32; +pub const SQL_DROP_COLLATION: u32 = 138u32; +pub const SQL_DROP_DOMAIN: u32 = 139u32; +pub const SQL_DROP_SCHEMA: u32 = 140u32; +pub const SQL_DROP_TABLE: u32 = 141u32; +pub const SQL_DROP_TRANSLATION: u32 = 142u32; +pub const SQL_DROP_VIEW: u32 = 143u32; +pub const SQL_DS_CASCADE: i32 = 4i32; +pub const SQL_DS_DROP_SCHEMA: i32 = 1i32; +pub const SQL_DS_RESTRICT: i32 = 2i32; +pub const SQL_DTC_DONE: i32 = 0i32; +pub const SQL_DTC_ENLIST_EXPENSIVE: i32 = 1i32; +pub const SQL_DTC_TRANSITION_COST: u32 = 1750u32; +pub const SQL_DTC_UNENLIST_EXPENSIVE: i32 = 2i32; +pub const SQL_DTR_DROP_TRANSLATION: i32 = 1i32; +pub const SQL_DT_CASCADE: i32 = 4i32; +pub const SQL_DT_DROP_TABLE: i32 = 1i32; +pub const SQL_DT_RESTRICT: i32 = 2i32; +pub const SQL_DV_CASCADE: i32 = 4i32; +pub const SQL_DV_DROP_VIEW: i32 = 1i32; +pub const SQL_DV_RESTRICT: i32 = 2i32; +pub const SQL_DYNAMIC_CURSOR_ATTRIBUTES1: u32 = 144u32; +pub const SQL_DYNAMIC_CURSOR_ATTRIBUTES2: u32 = 145u32; +pub const SQL_ENSURE: u32 = 1u32; +pub const SQL_ENTIRE_ROWSET: u32 = 0u32; +pub const SQL_EN_OFF: i32 = 0i32; +pub const SQL_EN_ON: i32 = 1i32; +pub const SQL_ERROR: i32 = -1i32; +pub const SQL_EXPRESSIONS_IN_ORDERBY: u32 = 27u32; +pub const SQL_EXT_API_LAST: u32 = 72u32; +pub const SQL_EXT_API_START: u32 = 40u32; +pub const SQL_FALSE: u32 = 0u32; +pub const SQL_FAST_CONNECT: u32 = 1200u32; +pub const SQL_FB_DEFAULT: i32 = 0i32; +pub const SQL_FB_OFF: i32 = 0i32; +pub const SQL_FB_ON: i32 = 1i32; +pub const SQL_FC_DEFAULT: i32 = 0i32; +pub const SQL_FC_OFF: i32 = 0i32; +pub const SQL_FC_ON: i32 = 1i32; +pub const SQL_FD_FETCH_ABSOLUTE: i32 = 16i32; +pub const SQL_FD_FETCH_BOOKMARK: i32 = 128i32; +pub const SQL_FD_FETCH_FIRST: i32 = 2i32; +pub const SQL_FD_FETCH_LAST: i32 = 4i32; +pub const SQL_FD_FETCH_NEXT: i32 = 1i32; +pub const SQL_FD_FETCH_PREV: i32 = 8i32; +pub const SQL_FD_FETCH_PRIOR: i32 = 8i32; +pub const SQL_FD_FETCH_RELATIVE: i32 = 32i32; +pub const SQL_FD_FETCH_RESUME: i32 = 64i32; +pub const SQL_FETCH_ABSOLUTE: u32 = 5u32; +pub const SQL_FETCH_BOOKMARK: u32 = 8u32; +pub const SQL_FETCH_BY_BOOKMARK: u32 = 7u32; +pub const SQL_FETCH_DIRECTION: u32 = 8u32; +pub const SQL_FETCH_FIRST: u32 = 2u32; +pub const SQL_FETCH_FIRST_SYSTEM: u32 = 32u32; +pub const SQL_FETCH_FIRST_USER: u32 = 31u32; +pub const SQL_FETCH_LAST: u32 = 3u32; +pub const SQL_FETCH_NEXT: u32 = 1u32; +pub const SQL_FETCH_PREV: u32 = 4u32; +pub const SQL_FETCH_PRIOR: u32 = 4u32; +pub const SQL_FETCH_RELATIVE: u32 = 6u32; +pub const SQL_FETCH_RESUME: u32 = 7u32; +pub const SQL_FILE_CATALOG: u32 = 2u32; +pub const SQL_FILE_NOT_SUPPORTED: u32 = 0u32; +pub const SQL_FILE_QUALIFIER: u32 = 2u32; +pub const SQL_FILE_TABLE: u32 = 1u32; +pub const SQL_FILE_USAGE: u32 = 84u32; +pub const SQL_FLOAT: u32 = 6u32; +pub const SQL_FN_CVT_CAST: i32 = 2i32; +pub const SQL_FN_CVT_CONVERT: i32 = 1i32; +pub const SQL_FN_NUM_ABS: i32 = 1i32; +pub const SQL_FN_NUM_ACOS: i32 = 2i32; +pub const SQL_FN_NUM_ASIN: i32 = 4i32; +pub const SQL_FN_NUM_ATAN: i32 = 8i32; +pub const SQL_FN_NUM_ATAN2: i32 = 16i32; +pub const SQL_FN_NUM_CEILING: i32 = 32i32; +pub const SQL_FN_NUM_COS: i32 = 64i32; +pub const SQL_FN_NUM_COT: i32 = 128i32; +pub const SQL_FN_NUM_DEGREES: i32 = 262144i32; +pub const SQL_FN_NUM_EXP: i32 = 256i32; +pub const SQL_FN_NUM_FLOOR: i32 = 512i32; +pub const SQL_FN_NUM_LOG: i32 = 1024i32; +pub const SQL_FN_NUM_LOG10: i32 = 524288i32; +pub const SQL_FN_NUM_MOD: i32 = 2048i32; +pub const SQL_FN_NUM_PI: i32 = 65536i32; +pub const SQL_FN_NUM_POWER: i32 = 1048576i32; +pub const SQL_FN_NUM_RADIANS: i32 = 2097152i32; +pub const SQL_FN_NUM_RAND: i32 = 131072i32; +pub const SQL_FN_NUM_ROUND: i32 = 4194304i32; +pub const SQL_FN_NUM_SIGN: i32 = 4096i32; +pub const SQL_FN_NUM_SIN: i32 = 8192i32; +pub const SQL_FN_NUM_SQRT: i32 = 16384i32; +pub const SQL_FN_NUM_TAN: i32 = 32768i32; +pub const SQL_FN_NUM_TRUNCATE: i32 = 8388608i32; +pub const SQL_FN_STR_ASCII: i32 = 8192i32; +pub const SQL_FN_STR_BIT_LENGTH: i32 = 524288i32; +pub const SQL_FN_STR_CHAR: i32 = 16384i32; +pub const SQL_FN_STR_CHARACTER_LENGTH: i32 = 2097152i32; +pub const SQL_FN_STR_CHAR_LENGTH: i32 = 1048576i32; +pub const SQL_FN_STR_CONCAT: i32 = 1i32; +pub const SQL_FN_STR_DIFFERENCE: i32 = 32768i32; +pub const SQL_FN_STR_INSERT: i32 = 2i32; +pub const SQL_FN_STR_LCASE: i32 = 64i32; +pub const SQL_FN_STR_LEFT: i32 = 4i32; +pub const SQL_FN_STR_LENGTH: i32 = 16i32; +pub const SQL_FN_STR_LOCATE: i32 = 32i32; +pub const SQL_FN_STR_LOCATE_2: i32 = 65536i32; +pub const SQL_FN_STR_LTRIM: i32 = 8i32; +pub const SQL_FN_STR_OCTET_LENGTH: i32 = 4194304i32; +pub const SQL_FN_STR_POSITION: i32 = 8388608i32; +pub const SQL_FN_STR_REPEAT: i32 = 128i32; +pub const SQL_FN_STR_REPLACE: i32 = 256i32; +pub const SQL_FN_STR_RIGHT: i32 = 512i32; +pub const SQL_FN_STR_RTRIM: i32 = 1024i32; +pub const SQL_FN_STR_SOUNDEX: i32 = 131072i32; +pub const SQL_FN_STR_SPACE: i32 = 262144i32; +pub const SQL_FN_STR_SUBSTRING: i32 = 2048i32; +pub const SQL_FN_STR_UCASE: i32 = 4096i32; +pub const SQL_FN_SYS_DBNAME: i32 = 2i32; +pub const SQL_FN_SYS_IFNULL: i32 = 4i32; +pub const SQL_FN_SYS_USERNAME: i32 = 1i32; +pub const SQL_FN_TD_CURDATE: i32 = 2i32; +pub const SQL_FN_TD_CURRENT_DATE: i32 = 131072i32; +pub const SQL_FN_TD_CURRENT_TIME: i32 = 262144i32; +pub const SQL_FN_TD_CURRENT_TIMESTAMP: i32 = 524288i32; +pub const SQL_FN_TD_CURTIME: i32 = 512i32; +pub const SQL_FN_TD_DAYNAME: i32 = 32768i32; +pub const SQL_FN_TD_DAYOFMONTH: i32 = 4i32; +pub const SQL_FN_TD_DAYOFWEEK: i32 = 8i32; +pub const SQL_FN_TD_DAYOFYEAR: i32 = 16i32; +pub const SQL_FN_TD_EXTRACT: i32 = 1048576i32; +pub const SQL_FN_TD_HOUR: i32 = 1024i32; +pub const SQL_FN_TD_MINUTE: i32 = 2048i32; +pub const SQL_FN_TD_MONTH: i32 = 32i32; +pub const SQL_FN_TD_MONTHNAME: i32 = 65536i32; +pub const SQL_FN_TD_NOW: i32 = 1i32; +pub const SQL_FN_TD_QUARTER: i32 = 64i32; +pub const SQL_FN_TD_SECOND: i32 = 4096i32; +pub const SQL_FN_TD_TIMESTAMPADD: i32 = 8192i32; +pub const SQL_FN_TD_TIMESTAMPDIFF: i32 = 16384i32; +pub const SQL_FN_TD_WEEK: i32 = 128i32; +pub const SQL_FN_TD_YEAR: i32 = 256i32; +pub const SQL_FN_TSI_DAY: i32 = 16i32; +pub const SQL_FN_TSI_FRAC_SECOND: i32 = 1i32; +pub const SQL_FN_TSI_HOUR: i32 = 8i32; +pub const SQL_FN_TSI_MINUTE: i32 = 4i32; +pub const SQL_FN_TSI_MONTH: i32 = 64i32; +pub const SQL_FN_TSI_QUARTER: i32 = 128i32; +pub const SQL_FN_TSI_SECOND: i32 = 2i32; +pub const SQL_FN_TSI_WEEK: i32 = 32i32; +pub const SQL_FN_TSI_YEAR: i32 = 256i32; +pub const SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1: u32 = 146u32; +pub const SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2: u32 = 147u32; +pub const SQL_GB_COLLATE: u32 = 4u32; +pub const SQL_GB_GROUP_BY_CONTAINS_SELECT: u32 = 2u32; +pub const SQL_GB_GROUP_BY_EQUALS_SELECT: u32 = 1u32; +pub const SQL_GB_NOT_SUPPORTED: u32 = 0u32; +pub const SQL_GB_NO_RELATION: u32 = 3u32; +pub const SQL_GD_ANY_COLUMN: i32 = 1i32; +pub const SQL_GD_ANY_ORDER: i32 = 2i32; +pub const SQL_GD_BLOCK: i32 = 4i32; +pub const SQL_GD_BOUND: i32 = 8i32; +pub const SQL_GD_OUTPUT_PARAMS: i32 = 16i32; +pub const SQL_GETDATA_EXTENSIONS: u32 = 81u32; +pub const SQL_GET_BOOKMARK: u32 = 13u32; +pub const SQL_GROUP_BY: u32 = 88u32; +pub const SQL_GUID: i32 = -11i32; +pub const SQL_HANDLE_DBC: u32 = 2u32; +pub const SQL_HANDLE_DBC_INFO_TOKEN: u32 = 6u32; +pub const SQL_HANDLE_DESC: u32 = 4u32; +pub const SQL_HANDLE_ENV: u32 = 1u32; +pub const SQL_HANDLE_SENV: u32 = 5u32; +pub const SQL_HANDLE_STMT: u32 = 3u32; +pub const SQL_HC_DEFAULT: i32 = 0i32; +pub const SQL_HC_OFF: i32 = 0i32; +pub const SQL_HC_ON: i32 = 1i32; +pub const SQL_HOUR: u32 = 4u32; +pub const SQL_HOUR_TO_MINUTE: u32 = 11u32; +pub const SQL_HOUR_TO_SECOND: u32 = 12u32; +pub const SQL_IC_LOWER: u32 = 2u32; +pub const SQL_IC_MIXED: u32 = 4u32; +pub const SQL_IC_SENSITIVE: u32 = 3u32; +pub const SQL_IC_UPPER: u32 = 1u32; +pub const SQL_IDENTIFIER_CASE: u32 = 28u32; +pub const SQL_IDENTIFIER_QUOTE_CHAR: u32 = 29u32; +pub const SQL_IGNORE: i32 = -6i32; +pub const SQL_IK_ASC: i32 = 1i32; +pub const SQL_IK_DESC: i32 = 2i32; +pub const SQL_IK_NONE: i32 = 0i32; +pub const SQL_INDEX_ALL: u32 = 1u32; +pub const SQL_INDEX_CLUSTERED: u32 = 1u32; +pub const SQL_INDEX_HASHED: u32 = 2u32; +pub const SQL_INDEX_KEYWORDS: u32 = 148u32; +pub const SQL_INDEX_OTHER: u32 = 3u32; +pub const SQL_INDEX_UNIQUE: u32 = 0u32; +pub const SQL_INFO_DRIVER_START: u32 = 1000u32; +pub const SQL_INFO_FIRST: u32 = 0u32; +pub const SQL_INFO_LAST: u32 = 114u32; +pub const SQL_INFO_SCHEMA_VIEWS: u32 = 149u32; +pub const SQL_INFO_SS_FIRST: u32 = 1199u32; +pub const SQL_INFO_SS_MAX_USED: u32 = 1200u32; +pub const SQL_INFO_SS_NETLIB_NAME: u32 = 1199u32; +pub const SQL_INFO_SS_NETLIB_NAMEA: u32 = 1200u32; +pub const SQL_INFO_SS_NETLIB_NAMEW: u32 = 1199u32; +pub const SQL_INITIALLY_DEFERRED: u32 = 5u32; +pub const SQL_INITIALLY_IMMEDIATE: u32 = 6u32; +pub const SQL_INSENSITIVE: u32 = 1u32; +pub const SQL_INSERT_STATEMENT: u32 = 172u32; +pub const SQL_INTEGER: u32 = 4u32; +pub const SQL_INTEGRATED_SECURITY: u32 = 1203u32; +pub const SQL_INTEGRITY: u32 = 73u32; +pub const SQL_INTERVAL: u32 = 10u32; +pub const SQL_INTERVAL_DAY: i32 = -83i32; +pub const SQL_INTERVAL_DAY_TO_HOUR: i32 = -87i32; +pub const SQL_INTERVAL_DAY_TO_MINUTE: i32 = -88i32; +pub const SQL_INTERVAL_DAY_TO_SECOND: i32 = -89i32; +pub const SQL_INTERVAL_HOUR: i32 = -84i32; +pub const SQL_INTERVAL_HOUR_TO_MINUTE: i32 = -90i32; +pub const SQL_INTERVAL_HOUR_TO_SECOND: i32 = -91i32; +pub const SQL_INTERVAL_MINUTE: i32 = -85i32; +pub const SQL_INTERVAL_MINUTE_TO_SECOND: i32 = -92i32; +pub const SQL_INTERVAL_MONTH: i32 = -81i32; +pub const SQL_INTERVAL_SECOND: i32 = -86i32; +pub const SQL_INTERVAL_YEAR: i32 = -80i32; +pub const SQL_INTERVAL_YEAR_TO_MONTH: i32 = -82i32; +pub const SQL_INVALID_HANDLE: i32 = -2i32; +pub const SQL_ISV_ASSERTIONS: i32 = 1i32; +pub const SQL_ISV_CHARACTER_SETS: i32 = 2i32; +pub const SQL_ISV_CHECK_CONSTRAINTS: i32 = 4i32; +pub const SQL_ISV_COLLATIONS: i32 = 8i32; +pub const SQL_ISV_COLUMNS: i32 = 64i32; +pub const SQL_ISV_COLUMN_DOMAIN_USAGE: i32 = 16i32; +pub const SQL_ISV_COLUMN_PRIVILEGES: i32 = 32i32; +pub const SQL_ISV_CONSTRAINT_COLUMN_USAGE: i32 = 128i32; +pub const SQL_ISV_CONSTRAINT_TABLE_USAGE: i32 = 256i32; +pub const SQL_ISV_DOMAINS: i32 = 1024i32; +pub const SQL_ISV_DOMAIN_CONSTRAINTS: i32 = 512i32; +pub const SQL_ISV_KEY_COLUMN_USAGE: i32 = 2048i32; +pub const SQL_ISV_REFERENTIAL_CONSTRAINTS: i32 = 4096i32; +pub const SQL_ISV_SCHEMATA: i32 = 8192i32; +pub const SQL_ISV_SQL_LANGUAGES: i32 = 16384i32; +pub const SQL_ISV_TABLES: i32 = 131072i32; +pub const SQL_ISV_TABLE_CONSTRAINTS: i32 = 32768i32; +pub const SQL_ISV_TABLE_PRIVILEGES: i32 = 65536i32; +pub const SQL_ISV_TRANSLATIONS: i32 = 262144i32; +pub const SQL_ISV_USAGE_PRIVILEGES: i32 = 524288i32; +pub const SQL_ISV_VIEWS: i32 = 4194304i32; +pub const SQL_ISV_VIEW_COLUMN_USAGE: i32 = 1048576i32; +pub const SQL_ISV_VIEW_TABLE_USAGE: i32 = 2097152i32; +pub const SQL_IS_DAY: SQLINTERVAL = 3i32; +pub const SQL_IS_DAY_TO_HOUR: SQLINTERVAL = 8i32; +pub const SQL_IS_DAY_TO_MINUTE: SQLINTERVAL = 9i32; +pub const SQL_IS_DAY_TO_SECOND: SQLINTERVAL = 10i32; +pub const SQL_IS_DEFAULT: i32 = 0i32; +pub const SQL_IS_HOUR: SQLINTERVAL = 4i32; +pub const SQL_IS_HOUR_TO_MINUTE: SQLINTERVAL = 11i32; +pub const SQL_IS_HOUR_TO_SECOND: SQLINTERVAL = 12i32; +pub const SQL_IS_INSERT_LITERALS: i32 = 1i32; +pub const SQL_IS_INSERT_SEARCHED: i32 = 2i32; +pub const SQL_IS_INTEGER: i32 = -6i32; +pub const SQL_IS_MINUTE: SQLINTERVAL = 5i32; +pub const SQL_IS_MINUTE_TO_SECOND: SQLINTERVAL = 13i32; +pub const SQL_IS_MONTH: SQLINTERVAL = 2i32; +pub const SQL_IS_OFF: i32 = 0i32; +pub const SQL_IS_ON: i32 = 1i32; +pub const SQL_IS_POINTER: i32 = -4i32; +pub const SQL_IS_SECOND: SQLINTERVAL = 6i32; +pub const SQL_IS_SELECT_INTO: i32 = 4i32; +pub const SQL_IS_SMALLINT: i32 = -8i32; +pub const SQL_IS_UINTEGER: i32 = -5i32; +pub const SQL_IS_USMALLINT: i32 = -7i32; +pub const SQL_IS_YEAR: SQLINTERVAL = 1i32; +pub const SQL_IS_YEAR_TO_MONTH: SQLINTERVAL = 7i32; +pub const SQL_KEYSET_CURSOR_ATTRIBUTES1: u32 = 150u32; +pub const SQL_KEYSET_CURSOR_ATTRIBUTES2: u32 = 151u32; +pub const SQL_KEYSET_SIZE: u32 = 8u32; +pub const SQL_KEYSET_SIZE_DEFAULT: u32 = 0u32; +pub const SQL_KEYWORDS: u32 = 89u32; +pub const SQL_LCK_EXCLUSIVE: i32 = 2i32; +pub const SQL_LCK_NO_CHANGE: i32 = 1i32; +pub const SQL_LCK_UNLOCK: i32 = 4i32; +pub const SQL_LEN_BINARY_ATTR_OFFSET: i32 = -100i32; +pub const SQL_LEN_DATA_AT_EXEC_OFFSET: i32 = -100i32; +pub const SQL_LIKE_ESCAPE_CLAUSE: u32 = 113u32; +pub const SQL_LIKE_ONLY: u32 = 1u32; +pub const SQL_LOCK_EXCLUSIVE: u32 = 1u32; +pub const SQL_LOCK_NO_CHANGE: u32 = 0u32; +pub const SQL_LOCK_TYPES: u32 = 78u32; +pub const SQL_LOCK_UNLOCK: u32 = 2u32; +pub const SQL_LOGIN_TIMEOUT: u32 = 103u32; +pub const SQL_LOGIN_TIMEOUT_DEFAULT: u32 = 15u32; +pub const SQL_LONGVARBINARY: i32 = -4i32; +pub const SQL_LONGVARCHAR: i32 = -1i32; +pub const SQL_MAXIMUM_CATALOG_NAME_LENGTH: u32 = 34u32; +pub const SQL_MAXIMUM_COLUMNS_IN_GROUP_BY: u32 = 97u32; +pub const SQL_MAXIMUM_COLUMNS_IN_INDEX: u32 = 98u32; +pub const SQL_MAXIMUM_COLUMNS_IN_ORDER_BY: u32 = 99u32; +pub const SQL_MAXIMUM_COLUMNS_IN_SELECT: u32 = 100u32; +pub const SQL_MAXIMUM_COLUMN_NAME_LENGTH: u32 = 30u32; +pub const SQL_MAXIMUM_CONCURRENT_ACTIVITIES: u32 = 1u32; +pub const SQL_MAXIMUM_CURSOR_NAME_LENGTH: u32 = 31u32; +pub const SQL_MAXIMUM_DRIVER_CONNECTIONS: u32 = 0u32; +pub const SQL_MAXIMUM_IDENTIFIER_LENGTH: u32 = 10005u32; +pub const SQL_MAXIMUM_INDEX_SIZE: u32 = 102u32; +pub const SQL_MAXIMUM_ROW_SIZE: u32 = 104u32; +pub const SQL_MAXIMUM_SCHEMA_NAME_LENGTH: u32 = 32u32; +pub const SQL_MAXIMUM_STATEMENT_LENGTH: u32 = 105u32; +pub const SQL_MAXIMUM_TABLES_IN_SELECT: u32 = 106u32; +pub const SQL_MAXIMUM_USER_NAME_LENGTH: u32 = 107u32; +pub const SQL_MAX_ASYNC_CONCURRENT_STATEMENTS: u32 = 10022u32; +pub const SQL_MAX_BINARY_LITERAL_LEN: u32 = 112u32; +pub const SQL_MAX_CATALOG_NAME_LEN: u32 = 34u32; +pub const SQL_MAX_CHAR_LITERAL_LEN: u32 = 108u32; +pub const SQL_MAX_COLUMNS_IN_GROUP_BY: u32 = 97u32; +pub const SQL_MAX_COLUMNS_IN_INDEX: u32 = 98u32; +pub const SQL_MAX_COLUMNS_IN_ORDER_BY: u32 = 99u32; +pub const SQL_MAX_COLUMNS_IN_SELECT: u32 = 100u32; +pub const SQL_MAX_COLUMNS_IN_TABLE: u32 = 101u32; +pub const SQL_MAX_COLUMN_NAME_LEN: u32 = 30u32; +pub const SQL_MAX_CONCURRENT_ACTIVITIES: u32 = 1u32; +pub const SQL_MAX_CURSOR_NAME_LEN: u32 = 31u32; +pub const SQL_MAX_DRIVER_CONNECTIONS: u32 = 0u32; +pub const SQL_MAX_DSN_LENGTH: u32 = 32u32; +pub const SQL_MAX_IDENTIFIER_LEN: u32 = 10005u32; +pub const SQL_MAX_INDEX_SIZE: u32 = 102u32; +pub const SQL_MAX_LENGTH: u32 = 3u32; +pub const SQL_MAX_LENGTH_DEFAULT: u32 = 0u32; +pub const SQL_MAX_MESSAGE_LENGTH: u32 = 512u32; +pub const SQL_MAX_NUMERIC_LEN: u32 = 16u32; +pub const SQL_MAX_OPTION_STRING_LENGTH: u32 = 256u32; +pub const SQL_MAX_OWNER_NAME_LEN: u32 = 32u32; +pub const SQL_MAX_PROCEDURE_NAME_LEN: u32 = 33u32; +pub const SQL_MAX_QUALIFIER_NAME_LEN: u32 = 34u32; +pub const SQL_MAX_ROWS: u32 = 1u32; +pub const SQL_MAX_ROWS_DEFAULT: u32 = 0u32; +pub const SQL_MAX_ROW_SIZE: u32 = 104u32; +pub const SQL_MAX_ROW_SIZE_INCLUDES_LONG: u32 = 103u32; +pub const SQL_MAX_SCHEMA_NAME_LEN: u32 = 32u32; +pub const SQL_MAX_SQLSERVERNAME: u32 = 128u32; +pub const SQL_MAX_STATEMENT_LEN: u32 = 105u32; +pub const SQL_MAX_TABLES_IN_SELECT: u32 = 106u32; +pub const SQL_MAX_TABLE_NAME_LEN: u32 = 35u32; +pub const SQL_MAX_USER_NAME_LEN: u32 = 107u32; +pub const SQL_MINUTE: u32 = 5u32; +pub const SQL_MINUTE_TO_SECOND: u32 = 13u32; +pub const SQL_MODE_DEFAULT: u32 = 0u32; +pub const SQL_MODE_READ_ONLY: u32 = 1u32; +pub const SQL_MODE_READ_WRITE: u32 = 0u32; +pub const SQL_MONTH: u32 = 2u32; +pub const SQL_MORE_INFO_NO: i32 = 0i32; +pub const SQL_MORE_INFO_YES: i32 = 1i32; +pub const SQL_MULTIPLE_ACTIVE_TXN: u32 = 37u32; +pub const SQL_MULT_RESULT_SETS: u32 = 36u32; +pub const SQL_NAMED: u32 = 0u32; +pub const SQL_NB_DEFAULT: i32 = 0i32; +pub const SQL_NB_OFF: i32 = 0i32; +pub const SQL_NB_ON: i32 = 1i32; +pub const SQL_NC_END: u32 = 4u32; +pub const SQL_NC_HIGH: u32 = 0u32; +pub const SQL_NC_LOW: u32 = 1u32; +pub const SQL_NC_OFF: i32 = 0i32; +pub const SQL_NC_ON: i32 = 1i32; +pub const SQL_NC_START: u32 = 2u32; +pub const SQL_NEED_DATA: u32 = 99u32; +pub const SQL_NEED_LONG_DATA_LEN: u32 = 111u32; +pub const SQL_NNC_NON_NULL: u32 = 1u32; +pub const SQL_NNC_NULL: u32 = 0u32; +pub const SQL_NONSCROLLABLE: u32 = 0u32; +pub const SQL_NON_NULLABLE_COLUMNS: u32 = 75u32; +pub const SQL_NOSCAN: u32 = 2u32; +pub const SQL_NOSCAN_DEFAULT: u32 = 0u32; +pub const SQL_NOSCAN_OFF: u32 = 0u32; +pub const SQL_NOSCAN_ON: u32 = 1u32; +pub const SQL_NOT_DEFERRABLE: u32 = 7u32; +pub const SQL_NO_ACTION: u32 = 3u32; +pub const SQL_NO_COLUMN_NUMBER: i32 = -1i32; +pub const SQL_NO_DATA: u32 = 100u32; +pub const SQL_NO_DATA_FOUND: u32 = 100u32; +pub const SQL_NO_NULLS: u32 = 0u32; +pub const SQL_NO_ROW_NUMBER: i32 = -1i32; +pub const SQL_NO_TOTAL: i32 = -4i32; +pub const SQL_NTS: i32 = -3i32; +pub const SQL_NTSL: i32 = -3i32; +pub const SQL_NULLABLE: u32 = 1u32; +pub const SQL_NULLABLE_UNKNOWN: u32 = 2u32; +pub const SQL_NULL_COLLATION: u32 = 85u32; +pub const SQL_NULL_DATA: i32 = -1i32; +pub const SQL_NULL_HANDLE: i32 = 0i32; +pub const SQL_NULL_HDBC: u32 = 0u32; +pub const SQL_NULL_HDESC: u32 = 0u32; +pub const SQL_NULL_HENV: u32 = 0u32; +pub const SQL_NULL_HSTMT: u32 = 0u32; +pub const SQL_NUMERIC: u32 = 2u32; +pub const SQL_NUMERIC_FUNCTIONS: u32 = 49u32; +pub const SQL_NUM_FUNCTIONS: u32 = 23u32; +pub const SQL_OAC_LEVEL1: u32 = 1u32; +pub const SQL_OAC_LEVEL2: u32 = 2u32; +pub const SQL_OAC_NONE: u32 = 0u32; +pub const SQL_ODBC_API_CONFORMANCE: u32 = 9u32; +pub const SQL_ODBC_CURSORS: u32 = 110u32; +pub const SQL_ODBC_INTERFACE_CONFORMANCE: u32 = 152u32; +pub const SQL_ODBC_KEYWORDS : ::windows_sys::core::PCSTR = ::windows_sys::core::s ! ( "ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,ASC,ASSERTION,AT,AUTHORIZATION,AVG,BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE,DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,DISTINCT,DOMAIN,DOUBLE,DROP,ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE,EXISTS,EXTERNAL,EXTRACT,FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,INPUT,INSENSITIVE,INSERT,INT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,MATCH,MAX,MIN,MINUTE,MODULE,MONTH,NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,READ,REAL,REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWSSCHEMA,SCROLL,SECOND,SECTION,SELECT,SESSION,SESSION_USER,SET,SIZE,SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,SUBSTRING,SUM,SYSTEM_USER,TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,WRITE,YEAR,ZONE" ) ; +pub const SQL_ODBC_SAG_CLI_CONFORMANCE: u32 = 12u32; +pub const SQL_ODBC_SQL_CONFORMANCE: u32 = 15u32; +pub const SQL_ODBC_SQL_OPT_IEF: u32 = 73u32; +pub const SQL_ODBC_VER: u32 = 10u32; +pub const SQL_OIC_CORE: u32 = 1u32; +pub const SQL_OIC_LEVEL1: u32 = 2u32; +pub const SQL_OIC_LEVEL2: u32 = 3u32; +pub const SQL_OJ_ALL_COMPARISON_OPS: i32 = 64i32; +pub const SQL_OJ_CAPABILITIES: u32 = 115u32; +pub const SQL_OJ_FULL: i32 = 4i32; +pub const SQL_OJ_INNER: i32 = 32i32; +pub const SQL_OJ_LEFT: i32 = 1i32; +pub const SQL_OJ_NESTED: i32 = 8i32; +pub const SQL_OJ_NOT_ORDERED: i32 = 16i32; +pub const SQL_OJ_RIGHT: i32 = 2i32; +pub const SQL_OPT_TRACE: u32 = 104u32; +pub const SQL_OPT_TRACEFILE: u32 = 105u32; +pub const SQL_OPT_TRACE_DEFAULT: u32 = 0u32; +pub const SQL_OPT_TRACE_FILE_DEFAULT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("\\SQL.LOG"); +pub const SQL_OPT_TRACE_OFF: u32 = 0u32; +pub const SQL_OPT_TRACE_ON: u32 = 1u32; +pub const SQL_ORDER_BY_COLUMNS_IN_SELECT: u32 = 90u32; +pub const SQL_OSCC_COMPLIANT: u32 = 1u32; +pub const SQL_OSCC_NOT_COMPLIANT: u32 = 0u32; +pub const SQL_OSC_CORE: u32 = 1u32; +pub const SQL_OSC_EXTENDED: u32 = 2u32; +pub const SQL_OSC_MINIMUM: u32 = 0u32; +pub const SQL_OUTER_JOINS: u32 = 38u32; +pub const SQL_OUTER_JOIN_CAPABILITIES: u32 = 115u32; +pub const SQL_OU_DML_STATEMENTS: i32 = 1i32; +pub const SQL_OU_INDEX_DEFINITION: i32 = 8i32; +pub const SQL_OU_PRIVILEGE_DEFINITION: i32 = 16i32; +pub const SQL_OU_PROCEDURE_INVOCATION: i32 = 2i32; +pub const SQL_OU_TABLE_DEFINITION: i32 = 4i32; +pub const SQL_OV_ODBC2: u32 = 2u32; +pub const SQL_OV_ODBC3: u32 = 3u32; +pub const SQL_OV_ODBC3_80: u32 = 380u32; +pub const SQL_OWNER_TERM: u32 = 39u32; +pub const SQL_OWNER_USAGE: u32 = 91u32; +pub const SQL_PACKET_SIZE: u32 = 112u32; +pub const SQL_PARAM_ARRAY_ROW_COUNTS: u32 = 153u32; +pub const SQL_PARAM_ARRAY_SELECTS: u32 = 154u32; +pub const SQL_PARAM_BIND_BY_COLUMN: u32 = 0u32; +pub const SQL_PARAM_BIND_TYPE_DEFAULT: u32 = 0u32; +pub const SQL_PARAM_DATA_AVAILABLE: u32 = 101u32; +pub const SQL_PARAM_DIAG_UNAVAILABLE: u32 = 1u32; +pub const SQL_PARAM_ERROR: u32 = 5u32; +pub const SQL_PARAM_IGNORE: u32 = 1u32; +pub const SQL_PARAM_INPUT: u32 = 1u32; +pub const SQL_PARAM_INPUT_OUTPUT: u32 = 2u32; +pub const SQL_PARAM_INPUT_OUTPUT_STREAM: u32 = 8u32; +pub const SQL_PARAM_OUTPUT: u32 = 4u32; +pub const SQL_PARAM_OUTPUT_STREAM: u32 = 16u32; +pub const SQL_PARAM_PROCEED: u32 = 0u32; +pub const SQL_PARAM_SUCCESS: u32 = 0u32; +pub const SQL_PARAM_SUCCESS_WITH_INFO: u32 = 6u32; +pub const SQL_PARAM_TYPE_UNKNOWN: u32 = 0u32; +pub const SQL_PARAM_UNUSED: u32 = 7u32; +pub const SQL_PARC_BATCH: u32 = 1u32; +pub const SQL_PARC_NO_BATCH: u32 = 2u32; +pub const SQL_PAS_BATCH: u32 = 1u32; +pub const SQL_PAS_NO_BATCH: u32 = 2u32; +pub const SQL_PAS_NO_SELECT: u32 = 3u32; +pub const SQL_PC_DEFAULT: i32 = 0i32; +pub const SQL_PC_NON_PSEUDO: u32 = 1u32; +pub const SQL_PC_NOT_PSEUDO: u32 = 1u32; +pub const SQL_PC_OFF: i32 = 0i32; +pub const SQL_PC_ON: i32 = 1i32; +pub const SQL_PC_PSEUDO: u32 = 2u32; +pub const SQL_PC_UNKNOWN: u32 = 0u32; +pub const SQL_PERF_START: u32 = 1u32; +pub const SQL_PERF_STOP: u32 = 2u32; +pub const SQL_POSITION: u32 = 0u32; +pub const SQL_POSITIONED_STATEMENTS: u32 = 80u32; +pub const SQL_POS_ADD: i32 = 16i32; +pub const SQL_POS_DELETE: i32 = 8i32; +pub const SQL_POS_OPERATIONS: u32 = 79u32; +pub const SQL_POS_POSITION: i32 = 1i32; +pub const SQL_POS_REFRESH: i32 = 2i32; +pub const SQL_POS_UPDATE: i32 = 4i32; +pub const SQL_PRED_BASIC: u32 = 2u32; +pub const SQL_PRED_CHAR: u32 = 1u32; +pub const SQL_PRED_NONE: u32 = 0u32; +pub const SQL_PRED_SEARCHABLE: u32 = 3u32; +pub const SQL_PRESERVE_CURSORS: u32 = 1204u32; +pub const SQL_PROCEDURES: u32 = 21u32; +pub const SQL_PROCEDURE_TERM: u32 = 40u32; +pub const SQL_PS_POSITIONED_DELETE: i32 = 1i32; +pub const SQL_PS_POSITIONED_UPDATE: i32 = 2i32; +pub const SQL_PS_SELECT_FOR_UPDATE: i32 = 4i32; +pub const SQL_PT_FUNCTION: u32 = 2u32; +pub const SQL_PT_PROCEDURE: u32 = 1u32; +pub const SQL_PT_UNKNOWN: u32 = 0u32; +pub const SQL_QI_DEFAULT: i32 = 1i32; +pub const SQL_QI_OFF: i32 = 0i32; +pub const SQL_QI_ON: i32 = 1i32; +pub const SQL_QL_END: u32 = 2u32; +pub const SQL_QL_START: u32 = 1u32; +pub const SQL_QUALIFIER_LOCATION: u32 = 114u32; +pub const SQL_QUALIFIER_NAME_SEPARATOR: u32 = 41u32; +pub const SQL_QUALIFIER_TERM: u32 = 42u32; +pub const SQL_QUALIFIER_USAGE: u32 = 92u32; +pub const SQL_QUERY_TIMEOUT: u32 = 0u32; +pub const SQL_QUERY_TIMEOUT_DEFAULT: u32 = 0u32; +pub const SQL_QUICK: u32 = 0u32; +pub const SQL_QUIET_MODE: u32 = 111u32; +pub const SQL_QUOTED_IDENTIFIER_CASE: u32 = 93u32; +pub const SQL_QU_DML_STATEMENTS: i32 = 1i32; +pub const SQL_QU_INDEX_DEFINITION: i32 = 8i32; +pub const SQL_QU_PRIVILEGE_DEFINITION: i32 = 16i32; +pub const SQL_QU_PROCEDURE_INVOCATION: i32 = 2i32; +pub const SQL_QU_TABLE_DEFINITION: i32 = 4i32; +pub const SQL_RD_DEFAULT: u32 = 1u32; +pub const SQL_RD_OFF: u32 = 0u32; +pub const SQL_RD_ON: u32 = 1u32; +pub const SQL_REAL: u32 = 7u32; +pub const SQL_REFRESH: u32 = 1u32; +pub const SQL_REMOTE_PWD: u32 = 1201u32; +pub const SQL_RESET_CONNECTION_YES: u32 = 1u32; +pub const SQL_RESET_PARAMS: u32 = 3u32; +pub const SQL_RESET_YES: i32 = 1i32; +pub const SQL_RESTRICT: u32 = 1u32; +pub const SQL_RESULT_COL: u32 = 3u32; +pub const SQL_RETRIEVE_DATA: u32 = 11u32; +pub const SQL_RETURN_VALUE: u32 = 5u32; +pub const SQL_RE_DEFAULT: i32 = 0i32; +pub const SQL_RE_OFF: i32 = 0i32; +pub const SQL_RE_ON: i32 = 1i32; +pub const SQL_ROLLBACK: u32 = 1u32; +pub const SQL_ROWSET_SIZE: u32 = 9u32; +pub const SQL_ROWSET_SIZE_DEFAULT: u32 = 1u32; +pub const SQL_ROWVER: u32 = 2u32; +pub const SQL_ROW_ADDED: u32 = 4u32; +pub const SQL_ROW_DELETED: u32 = 1u32; +pub const SQL_ROW_ERROR: u32 = 5u32; +pub const SQL_ROW_IDENTIFIER: u32 = 1u32; +pub const SQL_ROW_IGNORE: u32 = 1u32; +pub const SQL_ROW_NOROW: u32 = 3u32; +pub const SQL_ROW_NUMBER: u32 = 14u32; +pub const SQL_ROW_NUMBER_UNKNOWN: i32 = -2i32; +pub const SQL_ROW_PROCEED: u32 = 0u32; +pub const SQL_ROW_SUCCESS: u32 = 0u32; +pub const SQL_ROW_SUCCESS_WITH_INFO: u32 = 6u32; +pub const SQL_ROW_UPDATED: u32 = 2u32; +pub const SQL_ROW_UPDATES: u32 = 11u32; +pub const SQL_SCCO_LOCK: i32 = 2i32; +pub const SQL_SCCO_OPT_ROWVER: i32 = 4i32; +pub const SQL_SCCO_OPT_TIMESTAMP: i32 = 4i32; +pub const SQL_SCCO_OPT_VALUES: i32 = 8i32; +pub const SQL_SCCO_READ_ONLY: i32 = 1i32; +pub const SQL_SCC_ISO92_CLI: i32 = 2i32; +pub const SQL_SCC_XOPEN_CLI_VERSION1: i32 = 1i32; +pub const SQL_SCHEMA_TERM: u32 = 39u32; +pub const SQL_SCHEMA_USAGE: u32 = 91u32; +pub const SQL_SCOPE_CURROW: u32 = 0u32; +pub const SQL_SCOPE_SESSION: u32 = 2u32; +pub const SQL_SCOPE_TRANSACTION: u32 = 1u32; +pub const SQL_SCROLLABLE: u32 = 1u32; +pub const SQL_SCROLL_CONCURRENCY: u32 = 43u32; +pub const SQL_SCROLL_DYNAMIC: i32 = -2i32; +pub const SQL_SCROLL_FORWARD_ONLY: i32 = 0i32; +pub const SQL_SCROLL_KEYSET_DRIVEN: i32 = -1i32; +pub const SQL_SCROLL_OPTIONS: u32 = 44u32; +pub const SQL_SCROLL_STATIC: i32 = -3i32; +pub const SQL_SC_FIPS127_2_TRANSITIONAL: i32 = 2i32; +pub const SQL_SC_NON_UNIQUE: u32 = 0u32; +pub const SQL_SC_SQL92_ENTRY: i32 = 1i32; +pub const SQL_SC_SQL92_FULL: i32 = 8i32; +pub const SQL_SC_SQL92_INTERMEDIATE: i32 = 4i32; +pub const SQL_SC_TRY_UNIQUE: u32 = 1u32; +pub const SQL_SC_UNIQUE: u32 = 2u32; +pub const SQL_SDF_CURRENT_DATE: i32 = 1i32; +pub const SQL_SDF_CURRENT_TIME: i32 = 2i32; +pub const SQL_SDF_CURRENT_TIMESTAMP: i32 = 4i32; +pub const SQL_SEARCHABLE: u32 = 3u32; +pub const SQL_SEARCH_PATTERN_ESCAPE: u32 = 14u32; +pub const SQL_SECOND: u32 = 6u32; +pub const SQL_SENSITIVE: u32 = 2u32; +pub const SQL_SERVER_NAME: u32 = 13u32; +pub const SQL_SETPARAM_VALUE_MAX: i32 = -1i32; +pub const SQL_SETPOS_MAX_LOCK_VALUE: u32 = 2u32; +pub const SQL_SETPOS_MAX_OPTION_VALUE: u32 = 4u32; +pub const SQL_SET_DEFAULT: u32 = 4u32; +pub const SQL_SET_NULL: u32 = 2u32; +pub const SQL_SFKD_CASCADE: i32 = 1i32; +pub const SQL_SFKD_NO_ACTION: i32 = 2i32; +pub const SQL_SFKD_SET_DEFAULT: i32 = 4i32; +pub const SQL_SFKD_SET_NULL: i32 = 8i32; +pub const SQL_SFKU_CASCADE: i32 = 1i32; +pub const SQL_SFKU_NO_ACTION: i32 = 2i32; +pub const SQL_SFKU_SET_DEFAULT: i32 = 4i32; +pub const SQL_SFKU_SET_NULL: i32 = 8i32; +pub const SQL_SG_DELETE_TABLE: i32 = 32i32; +pub const SQL_SG_INSERT_COLUMN: i32 = 128i32; +pub const SQL_SG_INSERT_TABLE: i32 = 64i32; +pub const SQL_SG_REFERENCES_COLUMN: i32 = 512i32; +pub const SQL_SG_REFERENCES_TABLE: i32 = 256i32; +pub const SQL_SG_SELECT_TABLE: i32 = 1024i32; +pub const SQL_SG_UPDATE_COLUMN: i32 = 4096i32; +pub const SQL_SG_UPDATE_TABLE: i32 = 2048i32; +pub const SQL_SG_USAGE_ON_CHARACTER_SET: i32 = 2i32; +pub const SQL_SG_USAGE_ON_COLLATION: i32 = 4i32; +pub const SQL_SG_USAGE_ON_DOMAIN: i32 = 1i32; +pub const SQL_SG_USAGE_ON_TRANSLATION: i32 = 8i32; +pub const SQL_SG_WITH_GRANT_OPTION: i32 = 16i32; +pub const SQL_SIGNED_OFFSET: i32 = -20i32; +pub const SQL_SIMULATE_CURSOR: u32 = 10u32; +pub const SQL_SMALLINT: u32 = 5u32; +pub const SQL_SNVF_BIT_LENGTH: i32 = 1i32; +pub const SQL_SNVF_CHARACTER_LENGTH: i32 = 4i32; +pub const SQL_SNVF_CHAR_LENGTH: i32 = 2i32; +pub const SQL_SNVF_EXTRACT: i32 = 8i32; +pub const SQL_SNVF_OCTET_LENGTH: i32 = 16i32; +pub const SQL_SNVF_POSITION: i32 = 32i32; +pub const SQL_SOPT_SS_BASE: u32 = 1225u32; +pub const SQL_SOPT_SS_CURRENT_COMMAND: u32 = 1226u32; +pub const SQL_SOPT_SS_CURSOR_OPTIONS: u32 = 1230u32; +pub const SQL_SOPT_SS_DEFER_PREPARE: u32 = 1232u32; +pub const SQL_SOPT_SS_HIDDEN_COLUMNS: u32 = 1227u32; +pub const SQL_SOPT_SS_MAX_USED: u32 = 1232u32; +pub const SQL_SOPT_SS_NOBROWSETABLE: u32 = 1228u32; +pub const SQL_SOPT_SS_NOCOUNT_STATUS: u32 = 1231u32; +pub const SQL_SOPT_SS_REGIONALIZE: u32 = 1229u32; +pub const SQL_SOPT_SS_TEXTPTR_LOGGING: u32 = 1225u32; +pub const SQL_SO_DYNAMIC: i32 = 4i32; +pub const SQL_SO_FORWARD_ONLY: i32 = 1i32; +pub const SQL_SO_KEYSET_DRIVEN: i32 = 2i32; +pub const SQL_SO_MIXED: i32 = 8i32; +pub const SQL_SO_STATIC: i32 = 16i32; +pub const SQL_SPECIAL_CHARACTERS: u32 = 94u32; +pub const SQL_SPEC_MAJOR: u32 = 3u32; +pub const SQL_SPEC_MINOR: u32 = 80u32; +pub const SQL_SPEC_STRING: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("03.80"); +pub const SQL_SP_BETWEEN: i32 = 2048i32; +pub const SQL_SP_COMPARISON: i32 = 4096i32; +pub const SQL_SP_EXISTS: i32 = 1i32; +pub const SQL_SP_IN: i32 = 1024i32; +pub const SQL_SP_ISNOTNULL: i32 = 2i32; +pub const SQL_SP_ISNULL: i32 = 4i32; +pub const SQL_SP_LIKE: i32 = 512i32; +pub const SQL_SP_MATCH_FULL: i32 = 8i32; +pub const SQL_SP_MATCH_PARTIAL: i32 = 16i32; +pub const SQL_SP_MATCH_UNIQUE_FULL: i32 = 32i32; +pub const SQL_SP_MATCH_UNIQUE_PARTIAL: i32 = 64i32; +pub const SQL_SP_OVERLAPS: i32 = 128i32; +pub const SQL_SP_QUANTIFIED_COMPARISON: i32 = 8192i32; +pub const SQL_SP_UNIQUE: i32 = 256i32; +pub const SQL_SQL92_DATETIME_FUNCTIONS: u32 = 155u32; +pub const SQL_SQL92_FOREIGN_KEY_DELETE_RULE: u32 = 156u32; +pub const SQL_SQL92_FOREIGN_KEY_UPDATE_RULE: u32 = 157u32; +pub const SQL_SQL92_GRANT: u32 = 158u32; +pub const SQL_SQL92_NUMERIC_VALUE_FUNCTIONS: u32 = 159u32; +pub const SQL_SQL92_PREDICATES: u32 = 160u32; +pub const SQL_SQL92_RELATIONAL_JOIN_OPERATORS: u32 = 161u32; +pub const SQL_SQL92_REVOKE: u32 = 162u32; +pub const SQL_SQL92_ROW_VALUE_CONSTRUCTOR: u32 = 163u32; +pub const SQL_SQL92_STRING_FUNCTIONS: u32 = 164u32; +pub const SQL_SQL92_VALUE_EXPRESSIONS: u32 = 165u32; +pub const SQL_SQLSTATE_SIZE: u32 = 5u32; +pub const SQL_SQLSTATE_SIZEW: u32 = 10u32; +pub const SQL_SQL_CONFORMANCE: u32 = 118u32; +pub const SQL_SQ_COMPARISON: i32 = 1i32; +pub const SQL_SQ_CORRELATED_SUBQUERIES: i32 = 16i32; +pub const SQL_SQ_EXISTS: i32 = 2i32; +pub const SQL_SQ_IN: i32 = 4i32; +pub const SQL_SQ_QUANTIFIED: i32 = 8i32; +pub const SQL_SRJO_CORRESPONDING_CLAUSE: i32 = 1i32; +pub const SQL_SRJO_CROSS_JOIN: i32 = 2i32; +pub const SQL_SRJO_EXCEPT_JOIN: i32 = 4i32; +pub const SQL_SRJO_FULL_OUTER_JOIN: i32 = 8i32; +pub const SQL_SRJO_INNER_JOIN: i32 = 16i32; +pub const SQL_SRJO_INTERSECT_JOIN: i32 = 32i32; +pub const SQL_SRJO_LEFT_OUTER_JOIN: i32 = 64i32; +pub const SQL_SRJO_NATURAL_JOIN: i32 = 128i32; +pub const SQL_SRJO_RIGHT_OUTER_JOIN: i32 = 256i32; +pub const SQL_SRJO_UNION_JOIN: i32 = 512i32; +pub const SQL_SRVC_DEFAULT: i32 = 4i32; +pub const SQL_SRVC_NULL: i32 = 2i32; +pub const SQL_SRVC_ROW_SUBQUERY: i32 = 8i32; +pub const SQL_SRVC_VALUE_EXPRESSION: i32 = 1i32; +pub const SQL_SR_CASCADE: i32 = 32i32; +pub const SQL_SR_DELETE_TABLE: i32 = 128i32; +pub const SQL_SR_GRANT_OPTION_FOR: i32 = 16i32; +pub const SQL_SR_INSERT_COLUMN: i32 = 512i32; +pub const SQL_SR_INSERT_TABLE: i32 = 256i32; +pub const SQL_SR_REFERENCES_COLUMN: i32 = 2048i32; +pub const SQL_SR_REFERENCES_TABLE: i32 = 1024i32; +pub const SQL_SR_RESTRICT: i32 = 64i32; +pub const SQL_SR_SELECT_TABLE: i32 = 4096i32; +pub const SQL_SR_UPDATE_COLUMN: i32 = 16384i32; +pub const SQL_SR_UPDATE_TABLE: i32 = 8192i32; +pub const SQL_SR_USAGE_ON_CHARACTER_SET: i32 = 2i32; +pub const SQL_SR_USAGE_ON_COLLATION: i32 = 4i32; +pub const SQL_SR_USAGE_ON_DOMAIN: i32 = 1i32; +pub const SQL_SR_USAGE_ON_TRANSLATION: i32 = 8i32; +pub const SQL_SSF_CONVERT: i32 = 1i32; +pub const SQL_SSF_LOWER: i32 = 2i32; +pub const SQL_SSF_SUBSTRING: i32 = 8i32; +pub const SQL_SSF_TRANSLATE: i32 = 16i32; +pub const SQL_SSF_TRIM_BOTH: i32 = 32i32; +pub const SQL_SSF_TRIM_LEADING: i32 = 64i32; +pub const SQL_SSF_TRIM_TRAILING: i32 = 128i32; +pub const SQL_SSF_UPPER: i32 = 4i32; +pub const SQL_SS_ADDITIONS: i32 = 1i32; +pub const SQL_SS_DELETIONS: i32 = 2i32; +pub const SQL_SS_DL_DEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("STATS.LOG"); +pub const SQL_SS_QI_DEFAULT: u32 = 30000u32; +pub const SQL_SS_QL_DEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("QUERY.LOG"); +pub const SQL_SS_UPDATES: i32 = 4i32; +pub const SQL_SS_VARIANT: i32 = -150i32; +pub const SQL_STANDARD_CLI_CONFORMANCE: u32 = 166u32; +pub const SQL_STATIC_CURSOR_ATTRIBUTES1: u32 = 167u32; +pub const SQL_STATIC_CURSOR_ATTRIBUTES2: u32 = 168u32; +pub const SQL_STATIC_SENSITIVITY: u32 = 83u32; +pub const SQL_STILL_EXECUTING: u32 = 2u32; +pub const SQL_STMT_OPT_MAX: u32 = 14u32; +pub const SQL_STMT_OPT_MIN: u32 = 0u32; +pub const SQL_STRING_FUNCTIONS: u32 = 50u32; +pub const SQL_SUBQUERIES: u32 = 95u32; +pub const SQL_SUCCESS: u32 = 0u32; +pub const SQL_SUCCESS_WITH_INFO: u32 = 1u32; +pub const SQL_SU_DML_STATEMENTS: i32 = 1i32; +pub const SQL_SU_INDEX_DEFINITION: i32 = 8i32; +pub const SQL_SU_PRIVILEGE_DEFINITION: i32 = 16i32; +pub const SQL_SU_PROCEDURE_INVOCATION: i32 = 2i32; +pub const SQL_SU_TABLE_DEFINITION: i32 = 4i32; +pub const SQL_SVE_CASE: i32 = 1i32; +pub const SQL_SVE_CAST: i32 = 2i32; +pub const SQL_SVE_COALESCE: i32 = 4i32; +pub const SQL_SVE_NULLIF: i32 = 8i32; +pub const SQL_SYSTEM_FUNCTIONS: u32 = 51u32; +pub const SQL_TABLE_STAT: u32 = 0u32; +pub const SQL_TABLE_TERM: u32 = 45u32; +pub const SQL_TC_ALL: u32 = 2u32; +pub const SQL_TC_DDL_COMMIT: u32 = 3u32; +pub const SQL_TC_DDL_IGNORE: u32 = 4u32; +pub const SQL_TC_DML: u32 = 1u32; +pub const SQL_TC_NONE: u32 = 0u32; +pub const SQL_TEXTPTR_LOGGING: u32 = 1225u32; +pub const SQL_TIME: u32 = 10u32; +pub const SQL_TIMEDATE_ADD_INTERVALS: u32 = 109u32; +pub const SQL_TIMEDATE_DIFF_INTERVALS: u32 = 110u32; +pub const SQL_TIMEDATE_FUNCTIONS: u32 = 52u32; +pub const SQL_TIMESTAMP: u32 = 11u32; +pub const SQL_TIMESTAMP_LEN: u32 = 19u32; +pub const SQL_TIME_LEN: u32 = 8u32; +pub const SQL_TINYINT: i32 = -6i32; +pub const SQL_TL_DEFAULT: i32 = 1i32; +pub const SQL_TL_OFF: i32 = 0i32; +pub const SQL_TL_ON: i32 = 1i32; +pub const SQL_TRANSACTION_CAPABLE: u32 = 46u32; +pub const SQL_TRANSACTION_ISOLATION_OPTION: u32 = 72u32; +pub const SQL_TRANSACTION_READ_COMMITTED: i32 = 2i32; +pub const SQL_TRANSACTION_READ_UNCOMMITTED: i32 = 1i32; +pub const SQL_TRANSACTION_REPEATABLE_READ: i32 = 4i32; +pub const SQL_TRANSACTION_SERIALIZABLE: i32 = 8i32; +pub const SQL_TRANSLATE_DLL: u32 = 106u32; +pub const SQL_TRANSLATE_OPTION: u32 = 107u32; +pub const SQL_TRUE: u32 = 1u32; +pub const SQL_TXN_CAPABLE: u32 = 46u32; +pub const SQL_TXN_ISOLATION: u32 = 108u32; +pub const SQL_TXN_ISOLATION_OPTION: u32 = 72u32; +pub const SQL_TXN_READ_COMMITTED: i32 = 2i32; +pub const SQL_TXN_READ_UNCOMMITTED: i32 = 1i32; +pub const SQL_TXN_REPEATABLE_READ: i32 = 4i32; +pub const SQL_TXN_SERIALIZABLE: i32 = 8i32; +pub const SQL_TXN_VERSIONING: i32 = 16i32; +pub const SQL_TYPE_DATE: u32 = 91u32; +pub const SQL_TYPE_DRIVER_END: i32 = -97i32; +pub const SQL_TYPE_DRIVER_START: i32 = -80i32; +pub const SQL_TYPE_MAX: u32 = 12u32; +pub const SQL_TYPE_MIN: i32 = -7i32; +pub const SQL_TYPE_NULL: u32 = 0u32; +pub const SQL_TYPE_TIME: u32 = 92u32; +pub const SQL_TYPE_TIMESTAMP: u32 = 93u32; +pub const SQL_UB_DEFAULT: u32 = 0u32; +pub const SQL_UB_FIXED: u32 = 1u32; +pub const SQL_UB_OFF: u32 = 0u32; +pub const SQL_UB_ON: u32 = 1u32; +pub const SQL_UB_VARIABLE: u32 = 2u32; +pub const SQL_UNBIND: u32 = 2u32; +pub const SQL_UNICODE: i32 = -95i32; +pub const SQL_UNICODE_CHAR: i32 = -95i32; +pub const SQL_UNICODE_LONGVARCHAR: i32 = -97i32; +pub const SQL_UNICODE_VARCHAR: i32 = -96i32; +pub const SQL_UNION: u32 = 96u32; +pub const SQL_UNION_STATEMENT: u32 = 96u32; +pub const SQL_UNKNOWN_TYPE: u32 = 0u32; +pub const SQL_UNNAMED: u32 = 1u32; +pub const SQL_UNSEARCHABLE: u32 = 0u32; +pub const SQL_UNSIGNED_OFFSET: i32 = -22i32; +pub const SQL_UNSPECIFIED: u32 = 0u32; +pub const SQL_UPDATE: u32 = 2u32; +pub const SQL_UPDATE_BY_BOOKMARK: u32 = 5u32; +pub const SQL_UP_DEFAULT: i32 = 1i32; +pub const SQL_UP_OFF: i32 = 0i32; +pub const SQL_UP_ON: i32 = 1i32; +pub const SQL_UP_ON_DROP: i32 = 2i32; +pub const SQL_USER_NAME: u32 = 47u32; +pub const SQL_USE_BOOKMARKS: u32 = 12u32; +pub const SQL_USE_PROCEDURE_FOR_PREPARE: u32 = 1202u32; +pub const SQL_US_UNION: i32 = 1i32; +pub const SQL_US_UNION_ALL: i32 = 2i32; +pub const SQL_U_UNION: i32 = 1i32; +pub const SQL_U_UNION_ALL: i32 = 2i32; +pub const SQL_VARBINARY: i32 = -3i32; +pub const SQL_VARCHAR: u32 = 12u32; +pub const SQL_VARLEN_DATA: i32 = -10i32; +pub const SQL_WARN_NO: i32 = 0i32; +pub const SQL_WARN_YES: i32 = 1i32; +pub const SQL_WCHAR: i32 = -8i32; +pub const SQL_WLONGVARCHAR: i32 = -10i32; +pub const SQL_WVARCHAR: i32 = -9i32; +pub const SQL_XL_DEFAULT: i32 = 1i32; +pub const SQL_XL_OFF: i32 = 0i32; +pub const SQL_XL_ON: i32 = 1i32; +pub const SQL_XOPEN_CLI_YEAR: u32 = 10000u32; +pub const SQL_YEAR: u32 = 1u32; +pub const SQL_YEAR_TO_MONTH: u32 = 7u32; +pub const SQLudtBINARY: u32 = 3u32; +pub const SQLudtBIT: u32 = 16u32; +pub const SQLudtBITN: u32 = 0u32; +pub const SQLudtCHAR: u32 = 1u32; +pub const SQLudtDATETIM4: u32 = 22u32; +pub const SQLudtDATETIME: u32 = 12u32; +pub const SQLudtDATETIMN: u32 = 15u32; +pub const SQLudtDECML: u32 = 24u32; +pub const SQLudtDECMLN: u32 = 26u32; +pub const SQLudtFLT4: u32 = 23u32; +pub const SQLudtFLT8: u32 = 8u32; +pub const SQLudtFLTN: u32 = 14u32; +pub const SQLudtIMAGE: u32 = 20u32; +pub const SQLudtINT1: u32 = 5u32; +pub const SQLudtINT2: u32 = 6u32; +pub const SQLudtINT4: u32 = 7u32; +pub const SQLudtINTN: u32 = 13u32; +pub const SQLudtMONEY: u32 = 11u32; +pub const SQLudtMONEY4: u32 = 21u32; +pub const SQLudtMONEYN: u32 = 17u32; +pub const SQLudtNUM: u32 = 10u32; +pub const SQLudtNUMN: u32 = 25u32; +pub const SQLudtSYSNAME: u32 = 18u32; +pub const SQLudtTEXT: u32 = 19u32; +pub const SQLudtTIMESTAMP: u32 = 80u32; +pub const SQLudtUNIQUEIDENTIFIER: u32 = 0u32; +pub const SQLudtVARBINARY: u32 = 4u32; +pub const SQLudtVARCHAR: u32 = 2u32; +pub const SQMO_DEFAULT_PROPERTY: STRUCTURED_QUERY_MULTIOPTION = 1i32; +pub const SQMO_GENERATOR_FOR_TYPE: STRUCTURED_QUERY_MULTIOPTION = 2i32; +pub const SQMO_MAP_PROPERTY: STRUCTURED_QUERY_MULTIOPTION = 3i32; +pub const SQMO_VIRTUAL_PROPERTY: STRUCTURED_QUERY_MULTIOPTION = 0i32; +pub const SQPE_EXTRA_CLOSING_PARENTHESIS: STRUCTURED_QUERY_PARSE_ERROR = 2i32; +pub const SQPE_EXTRA_OPENING_PARENTHESIS: STRUCTURED_QUERY_PARSE_ERROR = 1i32; +pub const SQPE_IGNORED_CONNECTOR: STRUCTURED_QUERY_PARSE_ERROR = 4i32; +pub const SQPE_IGNORED_KEYWORD: STRUCTURED_QUERY_PARSE_ERROR = 5i32; +pub const SQPE_IGNORED_MODIFIER: STRUCTURED_QUERY_PARSE_ERROR = 3i32; +pub const SQPE_NONE: STRUCTURED_QUERY_PARSE_ERROR = 0i32; +pub const SQPE_UNHANDLED: STRUCTURED_QUERY_PARSE_ERROR = 6i32; +pub const SQRO_ADD_ROBUST_ITEM_NAME: STRUCTURED_QUERY_RESOLVE_OPTION = 512i32; +pub const SQRO_ADD_VALUE_TYPE_FOR_PLAIN_VALUES: STRUCTURED_QUERY_RESOLVE_OPTION = 256i32; +pub const SQRO_ALWAYS_ONE_INTERVAL: STRUCTURED_QUERY_RESOLVE_OPTION = 2i32; +pub const SQRO_DEFAULT: STRUCTURED_QUERY_RESOLVE_OPTION = 0i32; +pub const SQRO_DONT_MAP_RELATIONS: STRUCTURED_QUERY_RESOLVE_OPTION = 8i32; +pub const SQRO_DONT_REMOVE_UNRESTRICTED_KEYWORDS: STRUCTURED_QUERY_RESOLVE_OPTION = 32i32; +pub const SQRO_DONT_RESOLVE_DATETIME: STRUCTURED_QUERY_RESOLVE_OPTION = 1i32; +pub const SQRO_DONT_RESOLVE_RANGES: STRUCTURED_QUERY_RESOLVE_OPTION = 16i32; +pub const SQRO_DONT_SIMPLIFY_CONDITION_TREES: STRUCTURED_QUERY_RESOLVE_OPTION = 4i32; +pub const SQRO_DONT_SPLIT_WORDS: STRUCTURED_QUERY_RESOLVE_OPTION = 64i32; +pub const SQRO_IGNORE_PHRASE_ORDER: STRUCTURED_QUERY_RESOLVE_OPTION = 128i32; +pub const SQSO_AUTOMATIC_WILDCARD: STRUCTURED_QUERY_SINGLE_OPTION = 4i32; +pub const SQSO_CONNECTOR_CASE: STRUCTURED_QUERY_SINGLE_OPTION = 10i32; +pub const SQSO_IMPLICIT_CONNECTOR: STRUCTURED_QUERY_SINGLE_OPTION = 9i32; +pub const SQSO_LANGUAGE_KEYWORDS: STRUCTURED_QUERY_SINGLE_OPTION = 6i32; +pub const SQSO_LOCALE_WORD_BREAKING: STRUCTURED_QUERY_SINGLE_OPTION = 1i32; +pub const SQSO_NATURAL_SYNTAX: STRUCTURED_QUERY_SINGLE_OPTION = 3i32; +pub const SQSO_SCHEMA: STRUCTURED_QUERY_SINGLE_OPTION = 0i32; +pub const SQSO_SYNTAX: STRUCTURED_QUERY_SINGLE_OPTION = 7i32; +pub const SQSO_TIME_ZONE: STRUCTURED_QUERY_SINGLE_OPTION = 8i32; +pub const SQSO_TRACE_LEVEL: STRUCTURED_QUERY_SINGLE_OPTION = 5i32; +pub const SQSO_WORD_BREAKER: STRUCTURED_QUERY_SINGLE_OPTION = 2i32; +pub const SQS_ADVANCED_QUERY_SYNTAX: STRUCTURED_QUERY_SYNTAX = 1i32; +pub const SQS_NATURAL_QUERY_SYNTAX: STRUCTURED_QUERY_SYNTAX = 2i32; +pub const SQS_NO_SYNTAX: STRUCTURED_QUERY_SYNTAX = 0i32; +pub const SRCH_SCHEMA_CACHE_E_UNEXPECTED: i32 = -2147208447i32; +pub const SSPROPVAL_COMMANDTYPE_BULKLOAD: u32 = 22u32; +pub const SSPROPVAL_COMMANDTYPE_REGULAR: u32 = 21u32; +pub const SSPROPVAL_USEPROCFORPREP_OFF: u32 = 0u32; +pub const SSPROPVAL_USEPROCFORPREP_ON: u32 = 1u32; +pub const SSPROPVAL_USEPROCFORPREP_ON_DROP: u32 = 2u32; +pub const SSPROP_ALLOWNATIVEVARIANT: u32 = 3u32; +pub const SSPROP_AUTH_REPL_SERVER_NAME: u32 = 14u32; +pub const SSPROP_CHARACTERSET: u32 = 5u32; +pub const SSPROP_COLUMNLEVELCOLLATION: u32 = 4u32; +pub const SSPROP_COL_COLLATIONNAME: u32 = 14u32; +pub const SSPROP_CURRENTCOLLATION: u32 = 7u32; +pub const SSPROP_CURSORAUTOFETCH: u32 = 12u32; +pub const SSPROP_DEFERPREPARE: u32 = 13u32; +pub const SSPROP_ENABLEFASTLOAD: u32 = 2u32; +pub const SSPROP_FASTLOADKEEPIDENTITY: u32 = 11u32; +pub const SSPROP_FASTLOADKEEPNULLS: u32 = 10u32; +pub const SSPROP_FASTLOADOPTIONS: u32 = 9u32; +pub const SSPROP_INIT_APPNAME: u32 = 10u32; +pub const SSPROP_INIT_AUTOTRANSLATE: u32 = 8u32; +pub const SSPROP_INIT_CURRENTLANGUAGE: u32 = 4u32; +pub const SSPROP_INIT_ENCRYPT: u32 = 13u32; +pub const SSPROP_INIT_FILENAME: u32 = 12u32; +pub const SSPROP_INIT_NETWORKADDRESS: u32 = 5u32; +pub const SSPROP_INIT_NETWORKLIBRARY: u32 = 6u32; +pub const SSPROP_INIT_PACKETSIZE: u32 = 9u32; +pub const SSPROP_INIT_TAGCOLUMNCOLLATION: u32 = 15u32; +pub const SSPROP_INIT_USEPROCFORPREP: u32 = 7u32; +pub const SSPROP_INIT_WSID: u32 = 11u32; +pub const SSPROP_IRowsetFastLoad: u32 = 14u32; +pub const SSPROP_MAXBLOBLENGTH: u32 = 8u32; +pub const SSPROP_QUOTEDCATALOGNAMES: u32 = 2u32; +pub const SSPROP_SORTORDER: u32 = 6u32; +pub const SSPROP_SQLXMLXPROGID: u32 = 4u32; +pub const SSPROP_STREAM_BASEPATH: u32 = 17u32; +pub const SSPROP_STREAM_COMMANDTYPE: u32 = 18u32; +pub const SSPROP_STREAM_CONTENTTYPE: u32 = 23u32; +pub const SSPROP_STREAM_FLAGS: u32 = 20u32; +pub const SSPROP_STREAM_MAPPINGSCHEMA: u32 = 15u32; +pub const SSPROP_STREAM_XMLROOT: u32 = 19u32; +pub const SSPROP_STREAM_XSL: u32 = 16u32; +pub const SSPROP_UNICODECOMPARISONSTYLE: u32 = 3u32; +pub const SSPROP_UNICODELCID: u32 = 2u32; +pub const STD_BOOKMARKLENGTH: u32 = 1u32; +pub const STGM_COLLECTION: i32 = 8192i32; +pub const STGM_OPEN: i32 = -2147483648i32; +pub const STGM_OUTPUT: i32 = 32768i32; +pub const STGM_RECURSIVE: i32 = 16777216i32; +pub const STGM_STRICTOPEN: i32 = 1073741824i32; +pub const STREAM_FLAGS_DISALLOW_ABSOLUTE_PATH: u32 = 2u32; +pub const STREAM_FLAGS_DISALLOW_QUERY: u32 = 4u32; +pub const STREAM_FLAGS_DISALLOW_UPDATEGRAMS: u32 = 64u32; +pub const STREAM_FLAGS_DISALLOW_URL: u32 = 1u32; +pub const STREAM_FLAGS_DONTCACHEMAPPINGSCHEMA: u32 = 8u32; +pub const STREAM_FLAGS_DONTCACHETEMPLATE: u32 = 16u32; +pub const STREAM_FLAGS_DONTCACHEXSL: u32 = 32u32; +pub const STREAM_FLAGS_RESERVED: u32 = 4294901760u32; +pub const STS_ABORTXMLPARSE: i32 = -2147211756i32; +pub const STS_WS_ERROR: i32 = -2147211754i32; +pub const SUBSINFO_ALLFLAGS: u32 = 61311u32; +pub const SUBSINFO_CHANGESONLY: SUBSCRIPTIONINFOFLAGS = 1024i32; +pub const SUBSINFO_CHANNELFLAGS: SUBSCRIPTIONINFOFLAGS = 2048i32; +pub const SUBSINFO_FRIENDLYNAME: SUBSCRIPTIONINFOFLAGS = 8192i32; +pub const SUBSINFO_GLEAM: SUBSCRIPTIONINFOFLAGS = 512i32; +pub const SUBSINFO_MAILNOT: SUBSCRIPTIONINFOFLAGS = 8i32; +pub const SUBSINFO_MAXSIZEKB: SUBSCRIPTIONINFOFLAGS = 16i32; +pub const SUBSINFO_NEEDPASSWORD: SUBSCRIPTIONINFOFLAGS = 16384i32; +pub const SUBSINFO_PASSWORD: SUBSCRIPTIONINFOFLAGS = 64i32; +pub const SUBSINFO_RECURSE: SUBSCRIPTIONINFOFLAGS = 2i32; +pub const SUBSINFO_SCHEDULE: SUBSCRIPTIONINFOFLAGS = 1i32; +pub const SUBSINFO_TASKFLAGS: SUBSCRIPTIONINFOFLAGS = 256i32; +pub const SUBSINFO_TYPE: SUBSCRIPTIONINFOFLAGS = 32768i32; +pub const SUBSINFO_USER: SUBSCRIPTIONINFOFLAGS = 32i32; +pub const SUBSINFO_WEBCRAWL: SUBSCRIPTIONINFOFLAGS = 4i32; +pub const SUBSMGRENUM_MASK: u32 = 1u32; +pub const SUBSMGRENUM_TEMP: u32 = 1u32; +pub const SUBSMGRUPDATE_MASK: u32 = 1u32; +pub const SUBSMGRUPDATE_MINIMIZE: u32 = 1u32; +pub const SUBSSCHED_AUTO: SUBSCRIPTIONSCHEDULE = 0i32; +pub const SUBSSCHED_CUSTOM: SUBSCRIPTIONSCHEDULE = 3i32; +pub const SUBSSCHED_DAILY: SUBSCRIPTIONSCHEDULE = 1i32; +pub const SUBSSCHED_MANUAL: SUBSCRIPTIONSCHEDULE = 4i32; +pub const SUBSSCHED_WEEKLY: SUBSCRIPTIONSCHEDULE = 2i32; +pub const SUBSTYPE_CHANNEL: SUBSCRIPTIONTYPE = 1i32; +pub const SUBSTYPE_DESKTOPCHANNEL: SUBSCRIPTIONTYPE = 4i32; +pub const SUBSTYPE_DESKTOPURL: SUBSCRIPTIONTYPE = 2i32; +pub const SUBSTYPE_EXTERNAL: SUBSCRIPTIONTYPE = 3i32; +pub const SUBSTYPE_URL: SUBSCRIPTIONTYPE = 0i32; +pub const SUCCEED: u32 = 1u32; +pub const SUCCEED_ABORT: u32 = 2u32; +pub const SUCCEED_ASYNC: u32 = 3u32; +pub const SubscriptionMgr: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xabbe31d0_6dae_11d0_beca_00c04fd940be); +pub const TRACE_ON: i32 = 1i32; +pub const TRACE_VERSION: u32 = 1000u32; +pub const TRACE_VS_EVENT_ON: i32 = 2i32; +pub const VT_SS_BINARY: SQLVARENUM = 207i32; +pub const VT_SS_BIT: SQLVARENUM = 11i32; +pub const VT_SS_DATETIME: SQLVARENUM = 135i32; +pub const VT_SS_DECIMAL: SQLVARENUM = 205i32; +pub const VT_SS_EMPTY: SQLVARENUM = 0i32; +pub const VT_SS_GUID: SQLVARENUM = 72i32; +pub const VT_SS_I2: SQLVARENUM = 2i32; +pub const VT_SS_I4: SQLVARENUM = 3i32; +pub const VT_SS_I8: SQLVARENUM = 20i32; +pub const VT_SS_MONEY: SQLVARENUM = 6i32; +pub const VT_SS_NULL: SQLVARENUM = 1i32; +pub const VT_SS_NUMERIC: SQLVARENUM = 131i32; +pub const VT_SS_R4: SQLVARENUM = 4i32; +pub const VT_SS_R8: SQLVARENUM = 5i32; +pub const VT_SS_SMALLDATETIME: SQLVARENUM = 206i32; +pub const VT_SS_SMALLMONEY: SQLVARENUM = 200i32; +pub const VT_SS_STRING: SQLVARENUM = 203i32; +pub const VT_SS_UI1: SQLVARENUM = 17i32; +pub const VT_SS_UNKNOWN: SQLVARENUM = 209i32; +pub const VT_SS_VARBINARY: SQLVARENUM = 208i32; +pub const VT_SS_VARSTRING: SQLVARENUM = 204i32; +pub const VT_SS_WSTRING: SQLVARENUM = 201i32; +pub const VT_SS_WVARSTRING: SQLVARENUM = 202i32; +pub const WEBCRAWL_DONT_MAKE_STICKY: WEBCRAWL_RECURSEFLAGS = 1i32; +pub const WEBCRAWL_GET_BGSOUNDS: WEBCRAWL_RECURSEFLAGS = 8i32; +pub const WEBCRAWL_GET_CONTROLS: WEBCRAWL_RECURSEFLAGS = 16i32; +pub const WEBCRAWL_GET_IMAGES: WEBCRAWL_RECURSEFLAGS = 2i32; +pub const WEBCRAWL_GET_VIDEOS: WEBCRAWL_RECURSEFLAGS = 4i32; +pub const WEBCRAWL_IGNORE_ROBOTSTXT: WEBCRAWL_RECURSEFLAGS = 128i32; +pub const WEBCRAWL_LINKS_ELSEWHERE: WEBCRAWL_RECURSEFLAGS = 32i32; +pub const WEBCRAWL_ONLY_LINKS_TO_HTML: WEBCRAWL_RECURSEFLAGS = 256i32; +pub const XML_E_BADSXQL: i32 = -2147212799i32; +pub const XML_E_NODEFAULTNS: i32 = -2147212800i32; +pub const _MAPI_E_ACCOUNT_DISABLED: i32 = -2147221212i32; +pub const _MAPI_E_BAD_CHARWIDTH: i32 = -2147221245i32; +pub const _MAPI_E_BAD_COLUMN: i32 = -2147221224i32; +pub const _MAPI_E_BUSY: i32 = -2147221237i32; +pub const _MAPI_E_COMPUTED: i32 = -2147221222i32; +pub const _MAPI_E_CORRUPT_DATA: i32 = -2147221221i32; +pub const _MAPI_E_DISK_ERROR: i32 = -2147221226i32; +pub const _MAPI_E_END_OF_SESSION: i32 = -2147220992i32; +pub const _MAPI_E_EXTENDED_ERROR: i32 = -2147221223i32; +pub const _MAPI_E_FAILONEPROVIDER: i32 = -2147221219i32; +pub const _MAPI_E_INVALID_ACCESS_TIME: i32 = -2147221213i32; +pub const _MAPI_E_INVALID_ENTRYID: i32 = -2147221241i32; +pub const _MAPI_E_INVALID_OBJECT: i32 = -2147221240i32; +pub const _MAPI_E_INVALID_WORKSTATION_ACCOUNT: i32 = -2147221214i32; +pub const _MAPI_E_LOGON_FAILED: i32 = -2147221231i32; +pub const _MAPI_E_MISSING_REQUIRED_COLUMN: i32 = -2147220990i32; +pub const _MAPI_E_NETWORK_ERROR: i32 = -2147221227i32; +pub const _MAPI_E_NOT_ENOUGH_DISK: i32 = -2147221235i32; +pub const _MAPI_E_NOT_ENOUGH_RESOURCES: i32 = -2147221234i32; +pub const _MAPI_E_NOT_FOUND: i32 = -2147221233i32; +pub const _MAPI_E_NO_SUPPORT: i32 = -2147221246i32; +pub const _MAPI_E_OBJECT_CHANGED: i32 = -2147221239i32; +pub const _MAPI_E_OBJECT_DELETED: i32 = -2147221238i32; +pub const _MAPI_E_PASSWORD_CHANGE_REQUIRED: i32 = -2147221216i32; +pub const _MAPI_E_PASSWORD_EXPIRED: i32 = -2147221215i32; +pub const _MAPI_E_SESSION_LIMIT: i32 = -2147221230i32; +pub const _MAPI_E_STRING_TOO_LONG: i32 = -2147221243i32; +pub const _MAPI_E_TOO_COMPLEX: i32 = -2147221225i32; +pub const _MAPI_E_UNABLE_TO_ABORT: i32 = -2147221228i32; +pub const _MAPI_E_UNCONFIGURED: i32 = -2147221220i32; +pub const _MAPI_E_UNKNOWN_CPID: i32 = -2147221218i32; +pub const _MAPI_E_UNKNOWN_ENTRYID: i32 = -2147220991i32; +pub const _MAPI_E_UNKNOWN_FLAGS: i32 = -2147221242i32; +pub const _MAPI_E_UNKNOWN_LCID: i32 = -2147221217i32; +pub const _MAPI_E_USER_CANCEL: i32 = -2147221229i32; +pub const _MAPI_E_VERSION: i32 = -2147221232i32; +pub const _MAPI_W_NO_SERVICE: i32 = 262659i32; +pub const eAUTH_TYPE_ANONYMOUS: AUTH_TYPE = 0i32; +pub const eAUTH_TYPE_BASIC: AUTH_TYPE = 2i32; +pub const eAUTH_TYPE_NTLM: AUTH_TYPE = 1i32; +pub type ACCESS_MASKENUM = i32; +pub type AUTH_TYPE = i32; +pub type CASE_REQUIREMENT = i32; +pub type CHANNEL_AGENT_FLAGS = i32; +pub type CLUSION_REASON = i32; +pub type CONDITION_CREATION_OPTIONS = i32; +pub type CREATESUBSCRIPTIONFLAGS = i32; +pub type CatalogPausedReason = i32; +pub type CatalogStatus = i32; +pub type DBACCESSORFLAGSENUM = i32; +pub type DBASYNCHOPENUM = i32; +pub type DBASYNCHPHASEENUM = i32; +pub type DBBINDFLAGENUM = i32; +pub type DBBINDSTATUSENUM = i32; +pub type DBBINDURLFLAGENUM = i32; +pub type DBBINDURLSTATUSENUM = i32; +pub type DBBOOKMARK = i32; +pub type DBCOLUMNDESCFLAGSENUM = i32; +pub type DBCOLUMNFLAGS15ENUM = i32; +pub type DBCOLUMNFLAGSDEPRECATED = i32; +pub type DBCOLUMNFLAGSENUM = i32; +pub type DBCOLUMNFLAGSENUM20 = i32; +pub type DBCOLUMNFLAGSENUM21 = i32; +pub type DBCOLUMNFLAGSENUM26 = i32; +pub type DBCOMMANDPERSISTFLAGENUM = i32; +pub type DBCOMMANDPERSISTFLAGENUM21 = i32; +pub type DBCOMPAREENUM = i32; +pub type DBCOMPAREOPSENUM = i32; +pub type DBCOMPAREOPSENUM20 = i32; +pub type DBCONSTRAINTTYPEENUM = i32; +pub type DBCONVERTFLAGSENUM = i32; +pub type DBCONVERTFLAGSENUM20 = i32; +pub type DBCOPYFLAGSENUM = i32; +pub type DBCOSTUNITENUM = i32; +pub type DBDATACONVERTENUM = i32; +pub type DBDEFERRABILITYENUM = i32; +pub type DBDELETEFLAGSENUM = i32; +pub type DBEVENTPHASEENUM = i32; +pub type DBEXECLIMITSENUM = i32; +pub type DBINDEX_COL_ORDERENUM = i32; +pub type DBLITERALENUM = i32; +pub type DBLITERALENUM20 = i32; +pub type DBLITERALENUM21 = i32; +pub type DBMATCHTYPEENUM = i32; +pub type DBMEMOWNERENUM = i32; +pub type DBMOVEFLAGSENUM = i32; +pub type DBPARAMFLAGSENUM = i32; +pub type DBPARAMFLAGSENUM20 = i32; +pub type DBPARAMIOENUM = i32; +pub type DBPARTENUM = i32; +pub type DBPENDINGSTATUSENUM = i32; +pub type DBPOSITIONFLAGSENUM = i32; +pub type DBPROMPTOPTIONSENUM = i32; +pub type DBPROPENUM = i32; +pub type DBPROPENUM15 = i32; +pub type DBPROPENUM20 = i32; +pub type DBPROPENUM21 = i32; +pub type DBPROPENUM25 = i32; +pub type DBPROPENUM25_DEPRECATED = i32; +pub type DBPROPENUM26 = i32; +pub type DBPROPENUMDEPRECATED = i32; +pub type DBPROPFLAGSENUM = i32; +pub type DBPROPFLAGSENUM21 = i32; +pub type DBPROPFLAGSENUM25 = i32; +pub type DBPROPFLAGSENUM26 = i32; +pub type DBPROPOPTIONSENUM = i32; +pub type DBPROPSTATUSENUM = i32; +pub type DBPROPSTATUSENUM21 = i32; +pub type DBRANGEENUM = i32; +pub type DBRANGEENUM20 = i32; +pub type DBREASONENUM = i32; +pub type DBREASONENUM15 = i32; +pub type DBREASONENUM25 = i32; +pub type DBRESOURCEKINDENUM = i32; +pub type DBRESULTFLAGENUM = i32; +pub type DBROWCHANGEKINDENUM = i32; +pub type DBROWSTATUSENUM = i32; +pub type DBROWSTATUSENUM20 = i32; +pub type DBSEEKENUM = i32; +pub type DBSORTENUM = i32; +pub type DBSOURCETYPEENUM = i32; +pub type DBSOURCETYPEENUM20 = i32; +pub type DBSOURCETYPEENUM25 = i32; +pub type DBSTATUSENUM = i32; +pub type DBSTATUSENUM20 = i32; +pub type DBSTATUSENUM21 = i32; +pub type DBSTATUSENUM25 = i32; +pub type DBSTATUSENUM26 = i32; +pub type DBTABLESTATISTICSTYPE26 = i32; +pub type DBTYPEENUM = i32; +pub type DBTYPEENUM15 = i32; +pub type DBTYPEENUM20 = i32; +pub type DBUPDELRULEENUM = i32; +pub type DBWATCHMODEENUM = i32; +pub type DBWATCHNOTIFYENUM = i32; +pub type DCINFOTYPEENUM = i32; +pub type DELIVERY_AGENT_FLAGS = i32; +pub type EBindInfoOptions = i32; +pub type FOLLOW_FLAGS = i32; +pub type INTERVAL_LIMIT_KIND = i32; +pub type KAGREQDIAGFLAGSENUM = i32; +pub type LOCKMODEENUM = i32; +pub type MSDSDBINITPROPENUM = i32; +pub type MSDSSESSIONPROPENUM = i32; +pub type NAMED_ENTITY_CERTAINTY = i32; +pub type OSPCOMP = i32; +pub type OSPFIND = i32; +pub type OSPFORMAT = i32; +pub type OSPRW = i32; +pub type OSPXFER = i32; +pub type PRIORITIZE_FLAGS = i32; +pub type PRIORITY_LEVEL = i32; +pub type PROXY_ACCESS = i32; +pub type QUERY_PARSER_MANAGER_OPTION = i32; +pub type ROWSETEVENT_ITEMSTATE = i32; +pub type ROWSETEVENT_TYPE = i32; +pub type SEARCH_INDEXING_PHASE = i32; +pub type SEARCH_KIND_OF_CHANGE = i32; +pub type SEARCH_NOTIFICATION_PRIORITY = i32; +pub type SEARCH_QUERY_SYNTAX = i32; +pub type SEARCH_TERM_EXPANSION = i32; +pub type SQLINTERVAL = i32; +pub type SQLVARENUM = i32; +pub type STRUCTURED_QUERY_MULTIOPTION = i32; +pub type STRUCTURED_QUERY_PARSE_ERROR = i32; +pub type STRUCTURED_QUERY_RESOLVE_OPTION = i32; +pub type STRUCTURED_QUERY_SINGLE_OPTION = i32; +pub type STRUCTURED_QUERY_SYNTAX = i32; +pub type SUBSCRIPTIONINFOFLAGS = i32; +pub type SUBSCRIPTIONSCHEDULE = i32; +pub type SUBSCRIPTIONTYPE = i32; +pub type WEBCRAWL_RECURSEFLAGS = i32; +#[repr(C)] +pub struct AUTHENTICATION_INFO { + pub dwSize: u32, + pub atAuthenticationType: AUTH_TYPE, + pub pcwszUser: ::windows_sys::core::PCWSTR, + pub pcwszPassword: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for AUTHENTICATION_INFO {} +impl ::core::clone::Clone for AUTHENTICATION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BUCKETCATEGORIZE { + pub cBuckets: u32, + pub Distribution: u32, +} +impl ::core::marker::Copy for BUCKETCATEGORIZE {} +impl ::core::clone::Clone for BUCKETCATEGORIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct CATEGORIZATION { + pub ulCatType: u32, + pub Anonymous: CATEGORIZATION_0, + pub csColumns: COLUMNSET, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for CATEGORIZATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for CATEGORIZATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub union CATEGORIZATION_0 { + pub cClusters: u32, + pub bucket: BUCKETCATEGORIZE, + pub range: RANGECATEGORIZE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for CATEGORIZATION_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for CATEGORIZATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct CATEGORIZATIONSET { + pub cCat: u32, + pub aCat: *mut CATEGORIZATION, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for CATEGORIZATIONSET {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for CATEGORIZATIONSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +pub struct COLUMNSET { + pub cCol: u32, + pub aCol: *mut super::super::Storage::IndexServer::FULLPROPSPEC, +} +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::marker::Copy for COLUMNSET {} +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::clone::Clone for COLUMNSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +pub struct CONTENTRESTRICTION { + pub prop: super::super::Storage::IndexServer::FULLPROPSPEC, + pub pwcsPhrase: ::windows_sys::core::PWSTR, + pub lcid: u32, + pub ulGenerateMethod: u32, +} +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::marker::Copy for CONTENTRESTRICTION {} +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::clone::Clone for CONTENTRESTRICTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DATE_STRUCT { + pub year: i16, + pub month: u16, + pub day: u16, +} +impl ::core::marker::Copy for DATE_STRUCT {} +impl ::core::clone::Clone for DATE_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DBBINDEXT { + pub pExtension: *mut u8, + pub ulExtension: usize, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBBINDEXT {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBBINDEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct DBBINDEXT { + pub pExtension: *mut u8, + pub ulExtension: usize, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBBINDEXT {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBBINDEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Com")] +pub struct DBBINDING { + pub iOrdinal: usize, + pub obValue: usize, + pub obLength: usize, + pub obStatus: usize, + pub pTypeInfo: super::Com::ITypeInfo, + pub pObject: *mut DBOBJECT, + pub pBindExt: *mut DBBINDEXT, + pub dwPart: u32, + pub dwMemOwner: u32, + pub eParamIO: u32, + pub cbMaxLen: usize, + pub dwFlags: u32, + pub wType: u16, + pub bPrecision: u8, + pub bScale: u8, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for DBBINDING {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for DBBINDING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Com")] +pub struct DBBINDING { + pub iOrdinal: usize, + pub obValue: usize, + pub obLength: usize, + pub obStatus: usize, + pub pTypeInfo: super::Com::ITypeInfo, + pub pObject: *mut DBOBJECT, + pub pBindExt: *mut DBBINDEXT, + pub dwPart: u32, + pub dwMemOwner: u32, + pub eParamIO: u32, + pub cbMaxLen: usize, + pub dwFlags: u32, + pub wType: u16, + pub bPrecision: u8, + pub bScale: u8, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for DBBINDING {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for DBBINDING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Storage_IndexServer")] +pub struct DBCOLUMNACCESS { + pub pData: *mut ::core::ffi::c_void, + pub columnid: super::super::Storage::IndexServer::DBID, + pub cbDataLen: usize, + pub dwStatus: u32, + pub cbMaxLen: usize, + pub dwReserved: usize, + pub wType: u16, + pub bPrecision: u8, + pub bScale: u8, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::marker::Copy for DBCOLUMNACCESS {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::clone::Clone for DBCOLUMNACCESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Storage_IndexServer")] +pub struct DBCOLUMNACCESS { + pub pData: *mut ::core::ffi::c_void, + pub columnid: super::super::Storage::IndexServer::DBID, + pub cbDataLen: usize, + pub dwStatus: u32, + pub cbMaxLen: usize, + pub dwReserved: usize, + pub wType: u16, + pub bPrecision: u8, + pub bScale: u8, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::marker::Copy for DBCOLUMNACCESS {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::clone::Clone for DBCOLUMNACCESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DBCOLUMNDESC { + pub pwszTypeName: ::windows_sys::core::PWSTR, + pub pTypeInfo: super::Com::ITypeInfo, + pub rgPropertySets: *mut DBPROPSET, + pub pclsid: *mut ::windows_sys::core::GUID, + pub cPropertySets: u32, + pub ulColumnSize: usize, + pub dbcid: super::super::Storage::IndexServer::DBID, + pub wType: u16, + pub bPrecision: u8, + pub bScale: u8, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DBCOLUMNDESC {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DBCOLUMNDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DBCOLUMNDESC { + pub pwszTypeName: ::windows_sys::core::PWSTR, + pub pTypeInfo: super::Com::ITypeInfo, + pub rgPropertySets: *mut DBPROPSET, + pub pclsid: *mut ::windows_sys::core::GUID, + pub cPropertySets: u32, + pub ulColumnSize: usize, + pub dbcid: super::super::Storage::IndexServer::DBID, + pub wType: u16, + pub bPrecision: u8, + pub bScale: u8, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DBCOLUMNDESC {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DBCOLUMNDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com"))] +pub struct DBCOLUMNINFO { + pub pwszName: ::windows_sys::core::PWSTR, + pub pTypeInfo: super::Com::ITypeInfo, + pub iOrdinal: usize, + pub dwFlags: u32, + pub ulColumnSize: usize, + pub wType: u16, + pub bPrecision: u8, + pub bScale: u8, + pub columnid: super::super::Storage::IndexServer::DBID, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for DBCOLUMNINFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for DBCOLUMNINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com"))] +pub struct DBCOLUMNINFO { + pub pwszName: ::windows_sys::core::PWSTR, + pub pTypeInfo: super::Com::ITypeInfo, + pub iOrdinal: usize, + pub dwFlags: u32, + pub ulColumnSize: usize, + pub wType: u16, + pub bPrecision: u8, + pub bScale: u8, + pub columnid: super::super::Storage::IndexServer::DBID, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for DBCOLUMNINFO {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for DBCOLUMNINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DBCONSTRAINTDESC { + pub pConstraintID: *mut super::super::Storage::IndexServer::DBID, + pub ConstraintType: u32, + pub cColumns: usize, + pub rgColumnList: *mut super::super::Storage::IndexServer::DBID, + pub pReferencedTableID: *mut super::super::Storage::IndexServer::DBID, + pub cForeignKeyColumns: usize, + pub rgForeignKeyColumnList: *mut super::super::Storage::IndexServer::DBID, + pub pwszConstraintText: ::windows_sys::core::PWSTR, + pub UpdateRule: u32, + pub DeleteRule: u32, + pub MatchType: u32, + pub Deferrability: u32, + pub cReserved: usize, + pub rgReserved: *mut DBPROPSET, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DBCONSTRAINTDESC {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DBCONSTRAINTDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DBCONSTRAINTDESC { + pub pConstraintID: *mut super::super::Storage::IndexServer::DBID, + pub ConstraintType: u32, + pub cColumns: usize, + pub rgColumnList: *mut super::super::Storage::IndexServer::DBID, + pub pReferencedTableID: *mut super::super::Storage::IndexServer::DBID, + pub cForeignKeyColumns: usize, + pub rgForeignKeyColumnList: *mut super::super::Storage::IndexServer::DBID, + pub pwszConstraintText: ::windows_sys::core::PWSTR, + pub UpdateRule: u32, + pub DeleteRule: u32, + pub MatchType: u32, + pub Deferrability: u32, + pub cReserved: usize, + pub rgReserved: *mut DBPROPSET, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DBCONSTRAINTDESC {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DBCONSTRAINTDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DBCOST { + pub eKind: u32, + pub dwUnits: u32, + pub lValue: i32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBCOST {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBCOST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct DBCOST { + pub eKind: u32, + pub dwUnits: u32, + pub lValue: i32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBCOST {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBCOST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DBDATE { + pub year: i16, + pub month: u16, + pub day: u16, +} +impl ::core::marker::Copy for DBDATE {} +impl ::core::clone::Clone for DBDATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DBDATETIM4 { + pub numdays: u16, + pub nummins: u16, +} +impl ::core::marker::Copy for DBDATETIM4 {} +impl ::core::clone::Clone for DBDATETIM4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DBDATETIME { + pub dtdays: i32, + pub dttime: u32, +} +impl ::core::marker::Copy for DBDATETIME {} +impl ::core::clone::Clone for DBDATETIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DBFAILUREINFO { + pub hRow: usize, + pub iColumn: usize, + pub failure: ::windows_sys::core::HRESULT, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBFAILUREINFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBFAILUREINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct DBFAILUREINFO { + pub hRow: usize, + pub iColumn: usize, + pub failure: ::windows_sys::core::HRESULT, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBFAILUREINFO {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBFAILUREINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DBIMPLICITSESSION { + pub pUnkOuter: ::windows_sys::core::IUnknown, + pub piid: *mut ::windows_sys::core::GUID, + pub pSession: ::windows_sys::core::IUnknown, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBIMPLICITSESSION {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBIMPLICITSESSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct DBIMPLICITSESSION { + pub pUnkOuter: ::windows_sys::core::IUnknown, + pub piid: *mut ::windows_sys::core::GUID, + pub pSession: ::windows_sys::core::IUnknown, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBIMPLICITSESSION {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBIMPLICITSESSION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Storage_IndexServer")] +pub struct DBINDEXCOLUMNDESC { + pub pColumnID: *mut super::super::Storage::IndexServer::DBID, + pub eIndexColOrder: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::marker::Copy for DBINDEXCOLUMNDESC {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::clone::Clone for DBINDEXCOLUMNDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Storage_IndexServer")] +pub struct DBINDEXCOLUMNDESC { + pub pColumnID: *mut super::super::Storage::IndexServer::DBID, + pub eIndexColOrder: u32, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::marker::Copy for DBINDEXCOLUMNDESC {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::clone::Clone for DBINDEXCOLUMNDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct DBLITERALINFO { + pub pwszLiteralValue: ::windows_sys::core::PWSTR, + pub pwszInvalidChars: ::windows_sys::core::PWSTR, + pub pwszInvalidStartingChars: ::windows_sys::core::PWSTR, + pub lt: u32, + pub fSupported: super::super::Foundation::BOOL, + pub cchMaxLen: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DBLITERALINFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DBLITERALINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct DBLITERALINFO { + pub pwszLiteralValue: ::windows_sys::core::PWSTR, + pub pwszInvalidChars: ::windows_sys::core::PWSTR, + pub pwszInvalidStartingChars: ::windows_sys::core::PWSTR, + pub lt: u32, + pub fSupported: super::super::Foundation::BOOL, + pub cchMaxLen: u32, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DBLITERALINFO {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DBLITERALINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DBMONEY { + pub mnyhigh: i32, + pub mnylow: u32, +} +impl ::core::marker::Copy for DBMONEY {} +impl ::core::clone::Clone for DBMONEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DBOBJECT { + pub dwFlags: u32, + pub iid: ::windows_sys::core::GUID, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBOBJECT {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBOBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct DBOBJECT { + pub dwFlags: u32, + pub iid: ::windows_sys::core::GUID, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBOBJECT {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBOBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DBPARAMBINDINFO { + pub pwszDataSourceType: ::windows_sys::core::PWSTR, + pub pwszName: ::windows_sys::core::PWSTR, + pub ulParamSize: usize, + pub dwFlags: u32, + pub bPrecision: u8, + pub bScale: u8, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBPARAMBINDINFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBPARAMBINDINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct DBPARAMBINDINFO { + pub pwszDataSourceType: ::windows_sys::core::PWSTR, + pub pwszName: ::windows_sys::core::PWSTR, + pub ulParamSize: usize, + pub dwFlags: u32, + pub bPrecision: u8, + pub bScale: u8, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBPARAMBINDINFO {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBPARAMBINDINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Com")] +pub struct DBPARAMINFO { + pub dwFlags: u32, + pub iOrdinal: usize, + pub pwszName: ::windows_sys::core::PWSTR, + pub pTypeInfo: super::Com::ITypeInfo, + pub ulParamSize: usize, + pub wType: u16, + pub bPrecision: u8, + pub bScale: u8, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for DBPARAMINFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for DBPARAMINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Com")] +pub struct DBPARAMINFO { + pub dwFlags: u32, + pub iOrdinal: usize, + pub pwszName: ::windows_sys::core::PWSTR, + pub pTypeInfo: super::Com::ITypeInfo, + pub ulParamSize: usize, + pub wType: u16, + pub bPrecision: u8, + pub bScale: u8, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for DBPARAMINFO {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for DBPARAMINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DBPARAMS { + pub pData: *mut ::core::ffi::c_void, + pub cParamSets: usize, + pub hAccessor: HACCESSOR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBPARAMS {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct DBPARAMS { + pub pData: *mut ::core::ffi::c_void, + pub cParamSets: usize, + pub hAccessor: HACCESSOR, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBPARAMS {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DBPROP { + pub dwPropertyID: u32, + pub dwOptions: u32, + pub dwStatus: u32, + pub colid: super::super::Storage::IndexServer::DBID, + pub vValue: super::Variant::VARIANT, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DBPROP {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DBPROP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DBPROP { + pub dwPropertyID: u32, + pub dwOptions: u32, + pub dwStatus: u32, + pub colid: super::super::Storage::IndexServer::DBID, + pub vValue: super::Variant::VARIANT, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DBPROP {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DBPROP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DBPROPIDSET { + pub rgPropertyIDs: *mut u32, + pub cPropertyIDs: u32, + pub guidPropertySet: ::windows_sys::core::GUID, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBPROPIDSET {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBPROPIDSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct DBPROPIDSET { + pub rgPropertyIDs: *mut u32, + pub cPropertyIDs: u32, + pub guidPropertySet: ::windows_sys::core::GUID, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBPROPIDSET {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBPROPIDSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DBPROPINFO { + pub pwszDescription: ::windows_sys::core::PWSTR, + pub dwPropertyID: u32, + pub dwFlags: u32, + pub vtType: super::Variant::VARENUM, + pub vValues: super::Variant::VARIANT, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DBPROPINFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DBPROPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DBPROPINFO { + pub pwszDescription: ::windows_sys::core::PWSTR, + pub dwPropertyID: u32, + pub dwFlags: u32, + pub vtType: super::Variant::VARENUM, + pub vValues: super::Variant::VARIANT, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DBPROPINFO {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DBPROPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DBPROPINFOSET { + pub rgPropertyInfos: *mut DBPROPINFO, + pub cPropertyInfos: u32, + pub guidPropertySet: ::windows_sys::core::GUID, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DBPROPINFOSET {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DBPROPINFOSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DBPROPINFOSET { + pub rgPropertyInfos: *mut DBPROPINFO, + pub cPropertyInfos: u32, + pub guidPropertySet: ::windows_sys::core::GUID, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DBPROPINFOSET {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DBPROPINFOSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DBPROPSET { + pub rgProperties: *mut DBPROP, + pub cProperties: u32, + pub guidPropertySet: ::windows_sys::core::GUID, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DBPROPSET {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DBPROPSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DBPROPSET { + pub rgProperties: *mut DBPROP, + pub cProperties: u32, + pub guidPropertySet: ::windows_sys::core::GUID, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DBPROPSET {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DBPROPSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DBROWWATCHCHANGE { + pub hRegion: usize, + pub eChangeKind: u32, + pub hRow: usize, + pub iRow: usize, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBROWWATCHCHANGE {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBROWWATCHCHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct DBROWWATCHCHANGE { + pub hRegion: usize, + pub eChangeKind: u32, + pub hRow: usize, + pub iRow: usize, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBROWWATCHCHANGE {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBROWWATCHCHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DBTIME { + pub hour: u16, + pub minute: u16, + pub second: u16, +} +impl ::core::marker::Copy for DBTIME {} +impl ::core::clone::Clone for DBTIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DBTIMESTAMP { + pub year: i16, + pub month: u16, + pub day: u16, + pub hour: u16, + pub minute: u16, + pub second: u16, + pub fraction: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBTIMESTAMP {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBTIMESTAMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct DBTIMESTAMP { + pub year: i16, + pub month: u16, + pub day: u16, + pub hour: u16, + pub minute: u16, + pub second: u16, + pub fraction: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBTIMESTAMP {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBTIMESTAMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DBVARYBIN { + pub len: i16, + pub array: [u8; 8001], +} +impl ::core::marker::Copy for DBVARYBIN {} +impl ::core::clone::Clone for DBVARYBIN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DBVARYCHAR { + pub len: i16, + pub str: [i8; 8001], +} +impl ::core::marker::Copy for DBVARYCHAR {} +impl ::core::clone::Clone for DBVARYCHAR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DBVECTOR { + pub size: usize, + pub ptr: *mut ::core::ffi::c_void, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DBVECTOR {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DBVECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct DBVECTOR { + pub size: usize, + pub ptr: *mut ::core::ffi::c_void, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DBVECTOR {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DBVECTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DB_NUMERIC { + pub precision: u8, + pub scale: u8, + pub sign: u8, + pub val: [u8; 16], +} +impl ::core::marker::Copy for DB_NUMERIC {} +impl ::core::clone::Clone for DB_NUMERIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DB_VARNUMERIC { + pub precision: u8, + pub scale: i8, + pub sign: u8, + pub val: [u8; 1], +} +impl ::core::marker::Copy for DB_VARNUMERIC {} +impl ::core::clone::Clone for DB_VARNUMERIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct DCINFO { + pub eInfoType: u32, + pub vData: super::Variant::VARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for DCINFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for DCINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct ERRORINFO { + pub hrError: ::windows_sys::core::HRESULT, + pub dwMinor: u32, + pub clsid: ::windows_sys::core::GUID, + pub iid: ::windows_sys::core::GUID, + pub dispid: i32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for ERRORINFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for ERRORINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct ERRORINFO { + pub hrError: ::windows_sys::core::HRESULT, + pub dwMinor: u32, + pub clsid: ::windows_sys::core::GUID, + pub iid: ::windows_sys::core::GUID, + pub dispid: i32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for ERRORINFO {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for ERRORINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILTERED_DATA_SOURCES { + pub pwcsExtension: ::windows_sys::core::PCWSTR, + pub pwcsMime: ::windows_sys::core::PCWSTR, + pub pClsid: *const ::windows_sys::core::GUID, + pub pwcsOverride: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for FILTERED_DATA_SOURCES {} +impl ::core::clone::Clone for FILTERED_DATA_SOURCES { + fn clone(&self) -> Self { + *self + } +} +pub type HACCESSOR = usize; +#[repr(C)] +pub struct HITRANGE { + pub iPosition: u32, + pub cLength: u32, +} +impl ::core::marker::Copy for HITRANGE {} +impl ::core::clone::Clone for HITRANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INCREMENTAL_ACCESS_INFO { + pub dwSize: u32, + pub ftLastModifiedTime: super::super::Foundation::FILETIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INCREMENTAL_ACCESS_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INCREMENTAL_ACCESS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct ITEMPROP { + pub variantValue: super::Variant::VARIANT, + pub pwszName: ::windows_sys::core::PWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for ITEMPROP {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for ITEMPROP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ITEM_INFO { + pub dwSize: u32, + pub pcwszFromEMail: ::windows_sys::core::PCWSTR, + pub pcwszApplicationName: ::windows_sys::core::PCWSTR, + pub pcwszCatalogName: ::windows_sys::core::PCWSTR, + pub pcwszContentClass: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for ITEM_INFO {} +impl ::core::clone::Clone for ITEM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct KAGGETDIAG { + pub ulSize: u32, + pub vDiagInfo: super::Variant::VARIANT, + pub sDiagField: i16, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for KAGGETDIAG {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for KAGGETDIAG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Variant\"`"] +#[cfg(feature = "Win32_System_Variant")] +pub struct KAGREQDIAG { + pub ulDiagFlags: u32, + pub vt: super::Variant::VARENUM, + pub sDiagField: i16, +} +#[cfg(feature = "Win32_System_Variant")] +impl ::core::marker::Copy for KAGREQDIAG {} +#[cfg(feature = "Win32_System_Variant")] +impl ::core::clone::Clone for KAGREQDIAG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct MDAXISINFO { + pub cbSize: usize, + pub iAxis: usize, + pub cDimensions: usize, + pub cCoordinates: usize, + pub rgcColumns: *mut usize, + pub rgpwszDimensionNames: *mut ::windows_sys::core::PWSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for MDAXISINFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for MDAXISINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[cfg(target_arch = "x86")] +pub struct MDAXISINFO { + pub cbSize: usize, + pub iAxis: usize, + pub cDimensions: usize, + pub cCoordinates: usize, + pub rgcColumns: *mut usize, + pub rgpwszDimensionNames: *mut ::windows_sys::core::PWSTR, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for MDAXISINFO {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for MDAXISINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +pub struct NATLANGUAGERESTRICTION { + pub prop: super::super::Storage::IndexServer::FULLPROPSPEC, + pub pwcsPhrase: ::windows_sys::core::PWSTR, + pub lcid: u32, +} +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::marker::Copy for NATLANGUAGERESTRICTION {} +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::clone::Clone for NATLANGUAGERESTRICTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct NODERESTRICTION { + pub cRes: u32, + pub paRes: *mut *mut RESTRICTION, + pub reserved: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for NODERESTRICTION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for NODERESTRICTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct NOTRESTRICTION { + pub pRes: *mut RESTRICTION, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for NOTRESTRICTION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for NOTRESTRICTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ODBC_VS_ARGS { + pub pguidEvent: *const ::windows_sys::core::GUID, + pub dwFlags: u32, + pub Anonymous1: ODBC_VS_ARGS_0, + pub Anonymous2: ODBC_VS_ARGS_1, + pub RetCode: i16, +} +impl ::core::marker::Copy for ODBC_VS_ARGS {} +impl ::core::clone::Clone for ODBC_VS_ARGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union ODBC_VS_ARGS_0 { + pub wszArg: ::windows_sys::core::PWSTR, + pub szArg: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for ODBC_VS_ARGS_0 {} +impl ::core::clone::Clone for ODBC_VS_ARGS_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union ODBC_VS_ARGS_1 { + pub wszCorrelation: ::windows_sys::core::PWSTR, + pub szCorrelation: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for ODBC_VS_ARGS_1 {} +impl ::core::clone::Clone for ODBC_VS_ARGS_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct PROPERTYRESTRICTION { + pub rel: u32, + pub prop: super::super::Storage::IndexServer::FULLPROPSPEC, + pub prval: super::Com::StructuredStorage::PROPVARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for PROPERTYRESTRICTION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for PROPERTYRESTRICTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROXY_INFO { + pub dwSize: u32, + pub pcwszUserAgent: ::windows_sys::core::PCWSTR, + pub paUseProxy: PROXY_ACCESS, + pub fLocalBypass: super::super::Foundation::BOOL, + pub dwPortNumber: u32, + pub pcwszProxyName: ::windows_sys::core::PCWSTR, + pub pcwszBypassList: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROXY_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROXY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct RANGECATEGORIZE { + pub cRange: u32, + pub aRangeBegin: *mut super::Com::StructuredStorage::PROPVARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for RANGECATEGORIZE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for RANGECATEGORIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct RESTRICTION { + pub rt: u32, + pub weight: u32, + pub res: RESTRICTION_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for RESTRICTION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for RESTRICTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub union RESTRICTION_0 { + pub ar: NODERESTRICTION, + pub orRestriction: NODERESTRICTION, + pub pxr: NODERESTRICTION, + pub vr: VECTORRESTRICTION, + pub nr: NOTRESTRICTION, + pub cr: CONTENTRESTRICTION, + pub nlr: NATLANGUAGERESTRICTION, + pub pr: PROPERTYRESTRICTION, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for RESTRICTION_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for RESTRICTION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct RMTPACK { + pub pISeqStream: super::Com::ISequentialStream, + pub cbData: u32, + pub cBSTR: u32, + pub rgBSTR: *mut ::windows_sys::core::BSTR, + pub cVARIANT: u32, + pub rgVARIANT: *mut super::Variant::VARIANT, + pub cIDISPATCH: u32, + pub rgIDISPATCH: *mut super::Com::IDispatch, + pub cIUNKNOWN: u32, + pub rgIUNKNOWN: *mut ::windows_sys::core::IUnknown, + pub cPROPVARIANT: u32, + pub rgPROPVARIANT: *mut super::Com::StructuredStorage::PROPVARIANT, + pub cArray: u32, + pub rgArray: *mut super::Variant::VARIANT, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for RMTPACK {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for RMTPACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct RMTPACK { + pub pISeqStream: super::Com::ISequentialStream, + pub cbData: u32, + pub cBSTR: u32, + pub rgBSTR: *mut ::windows_sys::core::BSTR, + pub cVARIANT: u32, + pub rgVARIANT: *mut super::Variant::VARIANT, + pub cIDISPATCH: u32, + pub rgIDISPATCH: *mut super::Com::IDispatch, + pub cIUNKNOWN: u32, + pub rgIUNKNOWN: *mut ::windows_sys::core::IUnknown, + pub cPROPVARIANT: u32, + pub rgPROPVARIANT: *mut super::Com::StructuredStorage::PROPVARIANT, + pub cArray: u32, + pub rgArray: *mut super::Variant::VARIANT, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for RMTPACK {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for RMTPACK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct SEARCH_COLUMN_PROPERTIES { + pub Value: super::Com::StructuredStorage::PROPVARIANT, + pub lcid: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for SEARCH_COLUMN_PROPERTIES {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for SEARCH_COLUMN_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct SEARCH_ITEM_CHANGE { + pub Change: SEARCH_KIND_OF_CHANGE, + pub Priority: SEARCH_NOTIFICATION_PRIORITY, + pub pUserData: *mut super::Com::BLOB, + pub lpwszURL: ::windows_sys::core::PWSTR, + pub lpwszOldURL: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for SEARCH_ITEM_CHANGE {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for SEARCH_ITEM_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEARCH_ITEM_INDEXING_STATUS { + pub dwDocID: u32, + pub hrIndexingStatus: ::windows_sys::core::HRESULT, +} +impl ::core::marker::Copy for SEARCH_ITEM_INDEXING_STATUS {} +impl ::core::clone::Clone for SEARCH_ITEM_INDEXING_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEARCH_ITEM_PERSISTENT_CHANGE { + pub Change: SEARCH_KIND_OF_CHANGE, + pub URL: ::windows_sys::core::PWSTR, + pub OldURL: ::windows_sys::core::PWSTR, + pub Priority: SEARCH_NOTIFICATION_PRIORITY, +} +impl ::core::marker::Copy for SEARCH_ITEM_PERSISTENT_CHANGE {} +impl ::core::clone::Clone for SEARCH_ITEM_PERSISTENT_CHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Storage_IndexServer")] +pub struct SEC_OBJECT { + pub cObjects: u32, + pub prgObjects: *mut SEC_OBJECT_ELEMENT, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::marker::Copy for SEC_OBJECT {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::clone::Clone for SEC_OBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Storage_IndexServer")] +pub struct SEC_OBJECT { + pub cObjects: u32, + pub prgObjects: *mut SEC_OBJECT_ELEMENT, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::marker::Copy for SEC_OBJECT {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::clone::Clone for SEC_OBJECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Storage_IndexServer")] +pub struct SEC_OBJECT_ELEMENT { + pub guidObjectType: ::windows_sys::core::GUID, + pub ObjectID: super::super::Storage::IndexServer::DBID, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::marker::Copy for SEC_OBJECT_ELEMENT {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::clone::Clone for SEC_OBJECT_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Storage_IndexServer")] +pub struct SEC_OBJECT_ELEMENT { + pub guidObjectType: ::windows_sys::core::GUID, + pub ObjectID: super::super::Storage::IndexServer::DBID, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::marker::Copy for SEC_OBJECT_ELEMENT {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Storage_IndexServer")] +impl ::core::clone::Clone for SEC_OBJECT_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +pub struct SORTKEY { + pub propColumn: super::super::Storage::IndexServer::FULLPROPSPEC, + pub dwOrder: u32, + pub locale: u32, +} +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::marker::Copy for SORTKEY {} +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::clone::Clone for SORTKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`"] +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +pub struct SORTSET { + pub cCol: u32, + pub aCol: *mut SORTKEY, +} +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::marker::Copy for SORTSET {} +#[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage"))] +impl ::core::clone::Clone for SORTSET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SQLPERF { + pub TimerResolution: u32, + pub SQLidu: u32, + pub SQLiduRows: u32, + pub SQLSelects: u32, + pub SQLSelectRows: u32, + pub Transactions: u32, + pub SQLPrepares: u32, + pub ExecDirects: u32, + pub SQLExecutes: u32, + pub CursorOpens: u32, + pub CursorSize: u32, + pub CursorUsed: u32, + pub PercentCursorUsed: f64, + pub AvgFetchTime: f64, + pub AvgCursorSize: f64, + pub AvgCursorUsed: f64, + pub SQLFetchTime: u32, + pub SQLFetchCount: u32, + pub CurrentStmtCount: u32, + pub MaxOpenStmt: u32, + pub SumOpenStmt: u32, + pub CurrentConnectionCount: u32, + pub MaxConnectionsOpened: u32, + pub SumConnectionsOpened: u32, + pub SumConnectiontime: u32, + pub AvgTimeOpened: f64, + pub ServerRndTrips: u32, + pub BuffersSent: u32, + pub BuffersRec: u32, + pub BytesSent: u32, + pub BytesRec: u32, + pub msExecutionTime: u32, + pub msNetWorkServerTime: u32, +} +impl ::core::marker::Copy for SQLPERF {} +impl ::core::clone::Clone for SQLPERF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SQL_DAY_SECOND_STRUCT { + pub day: u32, + pub hour: u32, + pub minute: u32, + pub second: u32, + pub fraction: u32, +} +impl ::core::marker::Copy for SQL_DAY_SECOND_STRUCT {} +impl ::core::clone::Clone for SQL_DAY_SECOND_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SQL_INTERVAL_STRUCT { + pub interval_type: SQLINTERVAL, + pub interval_sign: i16, + pub intval: SQL_INTERVAL_STRUCT_0, +} +impl ::core::marker::Copy for SQL_INTERVAL_STRUCT {} +impl ::core::clone::Clone for SQL_INTERVAL_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SQL_INTERVAL_STRUCT_0 { + pub year_month: SQL_YEAR_MONTH_STRUCT, + pub day_second: SQL_DAY_SECOND_STRUCT, +} +impl ::core::marker::Copy for SQL_INTERVAL_STRUCT_0 {} +impl ::core::clone::Clone for SQL_INTERVAL_STRUCT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SQL_NUMERIC_STRUCT { + pub precision: u8, + pub scale: i8, + pub sign: u8, + pub val: [u8; 16], +} +impl ::core::marker::Copy for SQL_NUMERIC_STRUCT {} +impl ::core::clone::Clone for SQL_NUMERIC_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SQL_YEAR_MONTH_STRUCT { + pub year: u32, + pub month: u32, +} +impl ::core::marker::Copy for SQL_YEAR_MONTH_STRUCT {} +impl ::core::clone::Clone for SQL_YEAR_MONTH_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SSERRORINFO { + pub pwszMessage: ::windows_sys::core::PWSTR, + pub pwszServer: ::windows_sys::core::PWSTR, + pub pwszProcedure: ::windows_sys::core::PWSTR, + pub lNative: i32, + pub bState: u8, + pub bClass: u8, + pub wLineNumber: u16, +} +impl ::core::marker::Copy for SSERRORINFO {} +impl ::core::clone::Clone for SSERRORINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SSVARIANT { + pub vt: u16, + pub dwReserved1: u32, + pub dwReserved2: u32, + pub Anonymous: SSVARIANT_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SSVARIANT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SSVARIANT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub union SSVARIANT_0 { + pub bTinyIntVal: u8, + pub sShortIntVal: i16, + pub lIntVal: i32, + pub llBigIntVal: i64, + pub fltRealVal: f32, + pub dblFloatVal: f64, + pub cyMoneyVal: super::Com::CY, + pub NCharVal: SSVARIANT_0_3, + pub CharVal: SSVARIANT_0_2, + pub fBitVal: super::super::Foundation::VARIANT_BOOL, + pub rgbGuidVal: [u8; 16], + pub numNumericVal: DB_NUMERIC, + pub BinaryVal: SSVARIANT_0_1, + pub tsDateTimeVal: DBTIMESTAMP, + pub UnknownType: SSVARIANT_0_4, + pub BLOBType: SSVARIANT_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SSVARIANT_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SSVARIANT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SSVARIANT_0_0 { + pub dbobj: DBOBJECT, + pub pUnk: ::windows_sys::core::IUnknown, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SSVARIANT_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SSVARIANT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SSVARIANT_0_1 { + pub sActualLength: i16, + pub sMaxLength: i16, + pub prgbBinaryVal: *mut u8, + pub dwReserved: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SSVARIANT_0_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SSVARIANT_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SSVARIANT_0_2 { + pub sActualLength: i16, + pub sMaxLength: i16, + pub pchCharVal: ::windows_sys::core::PSTR, + pub rgbReserved: [u8; 5], + pub dwReserved: u32, + pub pwchReserved: ::windows_sys::core::PWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SSVARIANT_0_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SSVARIANT_0_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SSVARIANT_0_3 { + pub sActualLength: i16, + pub sMaxLength: i16, + pub pwchNCharVal: ::windows_sys::core::PWSTR, + pub rgbReserved: [u8; 5], + pub dwReserved: u32, + pub pwchReserved: ::windows_sys::core::PWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SSVARIANT_0_3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SSVARIANT_0_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub struct SSVARIANT_0_4 { + pub dwActualLength: u32, + pub rgMetadata: [u8; 16], + pub pUnknownData: *mut u8, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::marker::Copy for SSVARIANT_0_4 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +impl ::core::clone::Clone for SSVARIANT_0_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SUBSCRIPTIONINFO { + pub cbSize: u32, + pub fUpdateFlags: u32, + pub schedule: SUBSCRIPTIONSCHEDULE, + pub customGroupCookie: ::windows_sys::core::GUID, + pub pTrigger: *mut ::core::ffi::c_void, + pub dwRecurseLevels: u32, + pub fWebcrawlerFlags: u32, + pub bMailNotification: super::super::Foundation::BOOL, + pub bGleam: super::super::Foundation::BOOL, + pub bChangesOnly: super::super::Foundation::BOOL, + pub bNeedPassword: super::super::Foundation::BOOL, + pub fChannelFlags: u32, + pub bstrUserName: ::windows_sys::core::BSTR, + pub bstrPassword: ::windows_sys::core::BSTR, + pub bstrFriendlyName: ::windows_sys::core::BSTR, + pub dwMaxSizeKB: u32, + pub subType: SUBSCRIPTIONTYPE, + pub fTaskFlags: u32, + pub dwReserved: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SUBSCRIPTIONINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SUBSCRIPTIONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SUBSCRIPTIONITEMINFO { + pub cbSize: u32, + pub dwFlags: u32, + pub dwPriority: u32, + pub ScheduleGroup: ::windows_sys::core::GUID, + pub clsidAgent: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for SUBSCRIPTIONITEMINFO {} +impl ::core::clone::Clone for SUBSCRIPTIONITEMINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TEXT_SOURCE { + pub pfnFillTextBuffer: PFNFILLTEXTBUFFER, + pub awcBuffer: ::windows_sys::core::PCWSTR, + pub iEnd: u32, + pub iCur: u32, +} +impl ::core::marker::Copy for TEXT_SOURCE {} +impl ::core::clone::Clone for TEXT_SOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TIMEOUT_INFO { + pub dwSize: u32, + pub dwConnectTimeout: u32, + pub dwDataTimeout: u32, +} +impl ::core::marker::Copy for TIMEOUT_INFO {} +impl ::core::clone::Clone for TIMEOUT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TIMESTAMP_STRUCT { + pub year: i16, + pub month: u16, + pub day: u16, + pub hour: u16, + pub minute: u16, + pub second: u16, + pub fraction: u32, +} +impl ::core::marker::Copy for TIMESTAMP_STRUCT {} +impl ::core::clone::Clone for TIMESTAMP_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TIME_STRUCT { + pub hour: u16, + pub minute: u16, + pub second: u16, +} +impl ::core::marker::Copy for TIME_STRUCT {} +impl ::core::clone::Clone for TIME_STRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +pub struct VECTORRESTRICTION { + pub Node: NODERESTRICTION, + pub RankMethod: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for VECTORRESTRICTION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for VECTORRESTRICTION { + fn clone(&self) -> Self { + *self + } +} +pub type PFNFILLTEXTBUFFER = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SQL_ASYNC_NOTIFICATION_CALLBACK = ::core::option::Option i16>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/SecurityCenter/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/SecurityCenter/mod.rs new file mode 100644 index 000000000..b3eca5ce5 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/SecurityCenter/mod.rs @@ -0,0 +1,47 @@ +::windows_targets::link!("wscapi.dll" "system" fn WscGetAntiMalwareUri(ppszuri : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wscapi.dll" "system" fn WscGetSecurityProviderHealth(providers : u32, phealth : *mut WSC_SECURITY_PROVIDER_HEALTH) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wscapi.dll" "system" fn WscQueryAntiMalwareUri() -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +::windows_targets::link!("wscapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] fn WscRegisterForChanges(reserved : *mut ::core::ffi::c_void, phcallbackregistration : *mut super::super::Foundation:: HANDLE, lpcallbackaddress : super::Threading:: LPTHREAD_START_ROUTINE, pcontext : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wscapi.dll" "system" fn WscRegisterForUserNotifications() -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wscapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WscUnRegisterChanges(hregistrationhandle : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +pub type IWSCDefaultProduct = *mut ::core::ffi::c_void; +pub type IWSCProductList = *mut ::core::ffi::c_void; +pub type IWscProduct = *mut ::core::ffi::c_void; +pub type IWscProduct2 = *mut ::core::ffi::c_void; +pub type IWscProduct3 = *mut ::core::ffi::c_void; +pub const SECURITY_PRODUCT_TYPE_ANTISPYWARE: SECURITY_PRODUCT_TYPE = 2i32; +pub const SECURITY_PRODUCT_TYPE_ANTIVIRUS: SECURITY_PRODUCT_TYPE = 0i32; +pub const SECURITY_PRODUCT_TYPE_FIREWALL: SECURITY_PRODUCT_TYPE = 1i32; +pub const WSCDefaultProduct: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2981a36e_f22d_11e5_9ce9_5e5517507c66); +pub const WSCProductList: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x17072f7b_9abe_4a74_a261_1eb76b55107a); +pub const WSC_SECURITY_PRODUCT_OUT_OF_DATE: WSC_SECURITY_SIGNATURE_STATUS = 0i32; +pub const WSC_SECURITY_PRODUCT_STATE_EXPIRED: WSC_SECURITY_PRODUCT_STATE = 3i32; +pub const WSC_SECURITY_PRODUCT_STATE_OFF: WSC_SECURITY_PRODUCT_STATE = 1i32; +pub const WSC_SECURITY_PRODUCT_STATE_ON: WSC_SECURITY_PRODUCT_STATE = 0i32; +pub const WSC_SECURITY_PRODUCT_STATE_SNOOZED: WSC_SECURITY_PRODUCT_STATE = 2i32; +pub const WSC_SECURITY_PRODUCT_SUBSTATUS_ACTION_NEEDED: WSC_SECURITY_PRODUCT_SUBSTATUS = 3i32; +pub const WSC_SECURITY_PRODUCT_SUBSTATUS_ACTION_RECOMMENDED: WSC_SECURITY_PRODUCT_SUBSTATUS = 2i32; +pub const WSC_SECURITY_PRODUCT_SUBSTATUS_NOT_SET: WSC_SECURITY_PRODUCT_SUBSTATUS = 0i32; +pub const WSC_SECURITY_PRODUCT_SUBSTATUS_NO_ACTION: WSC_SECURITY_PRODUCT_SUBSTATUS = 1i32; +pub const WSC_SECURITY_PRODUCT_UP_TO_DATE: WSC_SECURITY_SIGNATURE_STATUS = 1i32; +pub const WSC_SECURITY_PROVIDER_ALL: WSC_SECURITY_PROVIDER = 127i32; +pub const WSC_SECURITY_PROVIDER_ANTISPYWARE: WSC_SECURITY_PROVIDER = 8i32; +pub const WSC_SECURITY_PROVIDER_ANTIVIRUS: WSC_SECURITY_PROVIDER = 4i32; +pub const WSC_SECURITY_PROVIDER_AUTOUPDATE_SETTINGS: WSC_SECURITY_PROVIDER = 2i32; +pub const WSC_SECURITY_PROVIDER_FIREWALL: WSC_SECURITY_PROVIDER = 1i32; +pub const WSC_SECURITY_PROVIDER_HEALTH_GOOD: WSC_SECURITY_PROVIDER_HEALTH = 0i32; +pub const WSC_SECURITY_PROVIDER_HEALTH_NOTMONITORED: WSC_SECURITY_PROVIDER_HEALTH = 1i32; +pub const WSC_SECURITY_PROVIDER_HEALTH_POOR: WSC_SECURITY_PROVIDER_HEALTH = 2i32; +pub const WSC_SECURITY_PROVIDER_HEALTH_SNOOZE: WSC_SECURITY_PROVIDER_HEALTH = 3i32; +pub const WSC_SECURITY_PROVIDER_INTERNET_SETTINGS: WSC_SECURITY_PROVIDER = 16i32; +pub const WSC_SECURITY_PROVIDER_NONE: WSC_SECURITY_PROVIDER = 0i32; +pub const WSC_SECURITY_PROVIDER_SERVICE: WSC_SECURITY_PROVIDER = 64i32; +pub const WSC_SECURITY_PROVIDER_USER_ACCOUNT_CONTROL: WSC_SECURITY_PROVIDER = 32i32; +pub type SECURITY_PRODUCT_TYPE = i32; +pub type WSC_SECURITY_PRODUCT_STATE = i32; +pub type WSC_SECURITY_PRODUCT_SUBSTATUS = i32; +pub type WSC_SECURITY_PROVIDER = i32; +pub type WSC_SECURITY_PROVIDER_HEALTH = i32; +pub type WSC_SECURITY_SIGNATURE_STATUS = i32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Services/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Services/mod.rs new file mode 100644 index 000000000..fe48d0d29 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Services/mod.rs @@ -0,0 +1,841 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ChangeServiceConfig2A(hservice : super::super::Security:: SC_HANDLE, dwinfolevel : SERVICE_CONFIG, lpinfo : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ChangeServiceConfig2W(hservice : super::super::Security:: SC_HANDLE, dwinfolevel : SERVICE_CONFIG, lpinfo : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ChangeServiceConfigA(hservice : super::super::Security:: SC_HANDLE, dwservicetype : ENUM_SERVICE_TYPE, dwstarttype : SERVICE_START_TYPE, dwerrorcontrol : SERVICE_ERROR, lpbinarypathname : ::windows_sys::core::PCSTR, lploadordergroup : ::windows_sys::core::PCSTR, lpdwtagid : *mut u32, lpdependencies : ::windows_sys::core::PCSTR, lpservicestartname : ::windows_sys::core::PCSTR, lppassword : ::windows_sys::core::PCSTR, lpdisplayname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ChangeServiceConfigW(hservice : super::super::Security:: SC_HANDLE, dwservicetype : ENUM_SERVICE_TYPE, dwstarttype : SERVICE_START_TYPE, dwerrorcontrol : SERVICE_ERROR, lpbinarypathname : ::windows_sys::core::PCWSTR, lploadordergroup : ::windows_sys::core::PCWSTR, lpdwtagid : *mut u32, lpdependencies : ::windows_sys::core::PCWSTR, lpservicestartname : ::windows_sys::core::PCWSTR, lppassword : ::windows_sys::core::PCWSTR, lpdisplayname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CloseServiceHandle(hscobject : super::super::Security:: SC_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ControlService(hservice : super::super::Security:: SC_HANDLE, dwcontrol : u32, lpservicestatus : *mut SERVICE_STATUS) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ControlServiceExA(hservice : super::super::Security:: SC_HANDLE, dwcontrol : u32, dwinfolevel : u32, pcontrolparams : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn ControlServiceExW(hservice : super::super::Security:: SC_HANDLE, dwcontrol : u32, dwinfolevel : u32, pcontrolparams : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn CreateServiceA(hscmanager : super::super::Security:: SC_HANDLE, lpservicename : ::windows_sys::core::PCSTR, lpdisplayname : ::windows_sys::core::PCSTR, dwdesiredaccess : u32, dwservicetype : ENUM_SERVICE_TYPE, dwstarttype : SERVICE_START_TYPE, dwerrorcontrol : SERVICE_ERROR, lpbinarypathname : ::windows_sys::core::PCSTR, lploadordergroup : ::windows_sys::core::PCSTR, lpdwtagid : *mut u32, lpdependencies : ::windows_sys::core::PCSTR, lpservicestartname : ::windows_sys::core::PCSTR, lppassword : ::windows_sys::core::PCSTR) -> super::super::Security:: SC_HANDLE); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn CreateServiceW(hscmanager : super::super::Security:: SC_HANDLE, lpservicename : ::windows_sys::core::PCWSTR, lpdisplayname : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32, dwservicetype : ENUM_SERVICE_TYPE, dwstarttype : SERVICE_START_TYPE, dwerrorcontrol : SERVICE_ERROR, lpbinarypathname : ::windows_sys::core::PCWSTR, lploadordergroup : ::windows_sys::core::PCWSTR, lpdwtagid : *mut u32, lpdependencies : ::windows_sys::core::PCWSTR, lpservicestartname : ::windows_sys::core::PCWSTR, lppassword : ::windows_sys::core::PCWSTR) -> super::super::Security:: SC_HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn DeleteService(hservice : super::super::Security:: SC_HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn EnumDependentServicesA(hservice : super::super::Security:: SC_HANDLE, dwservicestate : ENUM_SERVICE_STATE, lpservices : *mut ENUM_SERVICE_STATUSA, cbbufsize : u32, pcbbytesneeded : *mut u32, lpservicesreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn EnumDependentServicesW(hservice : super::super::Security:: SC_HANDLE, dwservicestate : ENUM_SERVICE_STATE, lpservices : *mut ENUM_SERVICE_STATUSW, cbbufsize : u32, pcbbytesneeded : *mut u32, lpservicesreturned : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn EnumServicesStatusA(hscmanager : super::super::Security:: SC_HANDLE, dwservicetype : ENUM_SERVICE_TYPE, dwservicestate : ENUM_SERVICE_STATE, lpservices : *mut ENUM_SERVICE_STATUSA, cbbufsize : u32, pcbbytesneeded : *mut u32, lpservicesreturned : *mut u32, lpresumehandle : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn EnumServicesStatusExA(hscmanager : super::super::Security:: SC_HANDLE, infolevel : SC_ENUM_TYPE, dwservicetype : ENUM_SERVICE_TYPE, dwservicestate : ENUM_SERVICE_STATE, lpservices : *mut u8, cbbufsize : u32, pcbbytesneeded : *mut u32, lpservicesreturned : *mut u32, lpresumehandle : *mut u32, pszgroupname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn EnumServicesStatusExW(hscmanager : super::super::Security:: SC_HANDLE, infolevel : SC_ENUM_TYPE, dwservicetype : ENUM_SERVICE_TYPE, dwservicestate : ENUM_SERVICE_STATE, lpservices : *mut u8, cbbufsize : u32, pcbbytesneeded : *mut u32, lpservicesreturned : *mut u32, lpresumehandle : *mut u32, pszgroupname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn EnumServicesStatusW(hscmanager : super::super::Security:: SC_HANDLE, dwservicetype : ENUM_SERVICE_TYPE, dwservicestate : ENUM_SERVICE_STATE, lpservices : *mut ENUM_SERVICE_STATUSW, cbbufsize : u32, pcbbytesneeded : *mut u32, lpservicesreturned : *mut u32, lpresumehandle : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-service-core-l1-1-4.dll" "system" fn GetServiceDirectory(hservicestatus : SERVICE_STATUS_HANDLE, edirectorytype : SERVICE_DIRECTORY_TYPE, lppathbuffer : ::windows_sys::core::PWSTR, cchpathbufferlength : u32, lpcchrequiredbufferlength : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn GetServiceDisplayNameA(hscmanager : super::super::Security:: SC_HANDLE, lpservicename : ::windows_sys::core::PCSTR, lpdisplayname : ::windows_sys::core::PSTR, lpcchbuffer : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn GetServiceDisplayNameW(hscmanager : super::super::Security:: SC_HANDLE, lpservicename : ::windows_sys::core::PCWSTR, lpdisplayname : ::windows_sys::core::PWSTR, lpcchbuffer : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn GetServiceKeyNameA(hscmanager : super::super::Security:: SC_HANDLE, lpdisplayname : ::windows_sys::core::PCSTR, lpservicename : ::windows_sys::core::PSTR, lpcchbuffer : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn GetServiceKeyNameW(hscmanager : super::super::Security:: SC_HANDLE, lpdisplayname : ::windows_sys::core::PCWSTR, lpservicename : ::windows_sys::core::PWSTR, lpcchbuffer : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("api-ms-win-service-core-l1-1-3.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn GetServiceRegistryStateKey(servicestatushandle : SERVICE_STATUS_HANDLE, statetype : SERVICE_REGISTRY_STATE_TYPE, accessmask : u32, servicestatekey : *mut super::Registry:: HKEY) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("api-ms-win-service-core-l1-1-5.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn GetSharedServiceDirectory(servicehandle : super::super::Security:: SC_HANDLE, directorytype : SERVICE_SHARED_DIRECTORY_TYPE, pathbuffer : ::windows_sys::core::PWSTR, pathbufferlength : u32, requiredbufferlength : *mut u32) -> u32); +#[cfg(all(feature = "Win32_Security", feature = "Win32_System_Registry"))] +::windows_targets::link!("api-ms-win-service-core-l1-1-5.dll" "system" #[doc = "Required features: `\"Win32_Security\"`, `\"Win32_System_Registry\"`"] fn GetSharedServiceRegistryStateKey(servicehandle : super::super::Security:: SC_HANDLE, statetype : SERVICE_SHARED_REGISTRY_STATE_TYPE, accessmask : u32, servicestatekey : *mut super::Registry:: HKEY) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn LockServiceDatabase(hscmanager : super::super::Security:: SC_HANDLE) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NotifyBootConfigStatus(bootacceptable : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn NotifyServiceStatusChangeA(hservice : super::super::Security:: SC_HANDLE, dwnotifymask : SERVICE_NOTIFY, pnotifybuffer : *const SERVICE_NOTIFY_2A) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn NotifyServiceStatusChangeW(hservice : super::super::Security:: SC_HANDLE, dwnotifymask : SERVICE_NOTIFY, pnotifybuffer : *const SERVICE_NOTIFY_2W) -> u32); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn OpenSCManagerA(lpmachinename : ::windows_sys::core::PCSTR, lpdatabasename : ::windows_sys::core::PCSTR, dwdesiredaccess : u32) -> super::super::Security:: SC_HANDLE); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn OpenSCManagerW(lpmachinename : ::windows_sys::core::PCWSTR, lpdatabasename : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32) -> super::super::Security:: SC_HANDLE); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn OpenServiceA(hscmanager : super::super::Security:: SC_HANDLE, lpservicename : ::windows_sys::core::PCSTR, dwdesiredaccess : u32) -> super::super::Security:: SC_HANDLE); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn OpenServiceW(hscmanager : super::super::Security:: SC_HANDLE, lpservicename : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32) -> super::super::Security:: SC_HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn QueryServiceConfig2A(hservice : super::super::Security:: SC_HANDLE, dwinfolevel : SERVICE_CONFIG, lpbuffer : *mut u8, cbbufsize : u32, pcbbytesneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn QueryServiceConfig2W(hservice : super::super::Security:: SC_HANDLE, dwinfolevel : SERVICE_CONFIG, lpbuffer : *mut u8, cbbufsize : u32, pcbbytesneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn QueryServiceConfigA(hservice : super::super::Security:: SC_HANDLE, lpserviceconfig : *mut QUERY_SERVICE_CONFIGA, cbbufsize : u32, pcbbytesneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn QueryServiceConfigW(hservice : super::super::Security:: SC_HANDLE, lpserviceconfig : *mut QUERY_SERVICE_CONFIGW, cbbufsize : u32, pcbbytesneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryServiceDynamicInformation(hservicestatus : SERVICE_STATUS_HANDLE, dwinfolevel : u32, ppdynamicinfo : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn QueryServiceLockStatusA(hscmanager : super::super::Security:: SC_HANDLE, lplockstatus : *mut QUERY_SERVICE_LOCK_STATUSA, cbbufsize : u32, pcbbytesneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn QueryServiceLockStatusW(hscmanager : super::super::Security:: SC_HANDLE, lplockstatus : *mut QUERY_SERVICE_LOCK_STATUSW, cbbufsize : u32, pcbbytesneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn QueryServiceObjectSecurity(hservice : super::super::Security:: SC_HANDLE, dwsecurityinformation : u32, lpsecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR, cbbufsize : u32, pcbbytesneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn QueryServiceStatus(hservice : super::super::Security:: SC_HANDLE, lpservicestatus : *mut SERVICE_STATUS) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn QueryServiceStatusEx(hservice : super::super::Security:: SC_HANDLE, infolevel : SC_STATUS_TYPE, lpbuffer : *mut u8, cbbufsize : u32, pcbbytesneeded : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn RegisterServiceCtrlHandlerA(lpservicename : ::windows_sys::core::PCSTR, lphandlerproc : LPHANDLER_FUNCTION) -> SERVICE_STATUS_HANDLE); +::windows_targets::link!("advapi32.dll" "system" fn RegisterServiceCtrlHandlerExA(lpservicename : ::windows_sys::core::PCSTR, lphandlerproc : LPHANDLER_FUNCTION_EX, lpcontext : *const ::core::ffi::c_void) -> SERVICE_STATUS_HANDLE); +::windows_targets::link!("advapi32.dll" "system" fn RegisterServiceCtrlHandlerExW(lpservicename : ::windows_sys::core::PCWSTR, lphandlerproc : LPHANDLER_FUNCTION_EX, lpcontext : *const ::core::ffi::c_void) -> SERVICE_STATUS_HANDLE); +::windows_targets::link!("advapi32.dll" "system" fn RegisterServiceCtrlHandlerW(lpservicename : ::windows_sys::core::PCWSTR, lphandlerproc : LPHANDLER_FUNCTION) -> SERVICE_STATUS_HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetServiceBits(hservicestatus : SERVICE_STATUS_HANDLE, dwservicebits : u32, bsetbitson : super::super::Foundation:: BOOL, bupdateimmediately : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SetServiceObjectSecurity(hservice : super::super::Security:: SC_HANDLE, dwsecurityinformation : super::super::Security:: OBJECT_SECURITY_INFORMATION, lpsecuritydescriptor : super::super::Security:: PSECURITY_DESCRIPTOR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetServiceStatus(hservicestatus : SERVICE_STATUS_HANDLE, lpservicestatus : *const SERVICE_STATUS) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn StartServiceA(hservice : super::super::Security:: SC_HANDLE, dwnumserviceargs : u32, lpserviceargvectors : *const ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StartServiceCtrlDispatcherA(lpservicestarttable : *const SERVICE_TABLE_ENTRYA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StartServiceCtrlDispatcherW(lpservicestarttable : *const SERVICE_TABLE_ENTRYW) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn StartServiceW(hservice : super::super::Security:: SC_HANDLE, dwnumserviceargs : u32, lpserviceargvectors : *const ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Security")] +::windows_targets::link!("sechost.dll" "system" #[doc = "Required features: `\"Win32_Security\"`"] fn SubscribeServiceChangeNotifications(hservice : super::super::Security:: SC_HANDLE, eeventtype : SC_EVENT_TYPE, pcallback : PSC_NOTIFICATION_CALLBACK, pcallbackcontext : *const ::core::ffi::c_void, psubscription : *mut PSC_NOTIFICATION_REGISTRATION) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnlockServiceDatabase(sclock : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("sechost.dll" "system" fn UnsubscribeServiceChangeNotifications(psubscription : PSC_NOTIFICATION_REGISTRATION) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn WaitServiceState(hservice : super::super::Security:: SC_HANDLE, dwnotify : u32, dwtimeout : u32, hcancelevent : super::super::Foundation:: HANDLE) -> u32); +pub const CUSTOM_SYSTEM_STATE_CHANGE_EVENT_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2d7a2816_0c5e_45fc_9ce7_570e5ecde9c9); +pub const DOMAIN_JOIN_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ce20aba_9851_4421_9430_1ddeb766e809); +pub const DOMAIN_LEAVE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xddaf516e_58c2_4866_9574_c3b615d42ea1); +pub const FIREWALL_PORT_CLOSE_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa144ed38_8e12_4de4_9d96_e64740b1a524); +pub const FIREWALL_PORT_OPEN_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb7569e07_8421_4ee0_ad10_86915afdad09); +pub const MACHINE_POLICY_PRESENT_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x659fcae6_5bdb_4da9_b1ff_ca2a178d46e0); +pub const MaxServiceRegistryStateType: SERVICE_REGISTRY_STATE_TYPE = 2i32; +pub const NAMED_PIPE_EVENT_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1f81d131_3fac_4537_9e0c_7e7b0c2f4b55); +pub const NETWORK_MANAGER_FIRST_IP_ADDRESS_ARRIVAL_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4f27f2de_14e2_430b_a549_7cd48cbc8245); +pub const NETWORK_MANAGER_LAST_IP_ADDRESS_REMOVAL_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcc4ba62a_162e_4648_847a_b6bdf993e335); +pub const RPC_INTERFACE_EVENT_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbc90d167_9470_4139_a9ba_be0bbbf5b74d); +pub const SC_ACTION_NONE: SC_ACTION_TYPE = 0i32; +pub const SC_ACTION_OWN_RESTART: SC_ACTION_TYPE = 4i32; +pub const SC_ACTION_REBOOT: SC_ACTION_TYPE = 2i32; +pub const SC_ACTION_RESTART: SC_ACTION_TYPE = 1i32; +pub const SC_ACTION_RUN_COMMAND: SC_ACTION_TYPE = 3i32; +pub const SC_AGGREGATE_STORAGE_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Control\\ServiceAggregatedEvents"); +pub const SC_ENUM_PROCESS_INFO: SC_ENUM_TYPE = 0i32; +pub const SC_EVENT_DATABASE_CHANGE: SC_EVENT_TYPE = 0i32; +pub const SC_EVENT_PROPERTY_CHANGE: SC_EVENT_TYPE = 1i32; +pub const SC_EVENT_STATUS_CHANGE: SC_EVENT_TYPE = 2i32; +pub const SC_MANAGER_ALL_ACCESS: u32 = 983103u32; +pub const SC_MANAGER_CONNECT: u32 = 1u32; +pub const SC_MANAGER_CREATE_SERVICE: u32 = 2u32; +pub const SC_MANAGER_ENUMERATE_SERVICE: u32 = 4u32; +pub const SC_MANAGER_LOCK: u32 = 8u32; +pub const SC_MANAGER_MODIFY_BOOT_CONFIG: u32 = 32u32; +pub const SC_MANAGER_QUERY_LOCK_STATUS: u32 = 16u32; +pub const SC_STATUS_PROCESS_INFO: SC_STATUS_TYPE = 0i32; +pub const SERVICES_ACTIVE_DATABASE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServicesActive"); +pub const SERVICES_ACTIVE_DATABASEA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ServicesActive"); +pub const SERVICES_ACTIVE_DATABASEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServicesActive"); +pub const SERVICES_FAILED_DATABASE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServicesFailed"); +pub const SERVICES_FAILED_DATABASEA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ServicesFailed"); +pub const SERVICES_FAILED_DATABASEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ServicesFailed"); +pub const SERVICE_ACCEPT_HARDWAREPROFILECHANGE: u32 = 32u32; +pub const SERVICE_ACCEPT_LOWRESOURCES: u32 = 8192u32; +pub const SERVICE_ACCEPT_NETBINDCHANGE: u32 = 16u32; +pub const SERVICE_ACCEPT_PARAMCHANGE: u32 = 8u32; +pub const SERVICE_ACCEPT_PAUSE_CONTINUE: u32 = 2u32; +pub const SERVICE_ACCEPT_POWEREVENT: u32 = 64u32; +pub const SERVICE_ACCEPT_PRESHUTDOWN: u32 = 256u32; +pub const SERVICE_ACCEPT_SESSIONCHANGE: u32 = 128u32; +pub const SERVICE_ACCEPT_SHUTDOWN: u32 = 4u32; +pub const SERVICE_ACCEPT_STOP: u32 = 1u32; +pub const SERVICE_ACCEPT_SYSTEMLOWRESOURCES: u32 = 16384u32; +pub const SERVICE_ACCEPT_TIMECHANGE: u32 = 512u32; +pub const SERVICE_ACCEPT_TRIGGEREVENT: u32 = 1024u32; +pub const SERVICE_ACCEPT_USER_LOGOFF: u32 = 2048u32; +pub const SERVICE_ACTIVE: ENUM_SERVICE_STATE = 1u32; +pub const SERVICE_ADAPTER: ENUM_SERVICE_TYPE = 4u32; +pub const SERVICE_ALL_ACCESS: u32 = 983551u32; +pub const SERVICE_AUTO_START: SERVICE_START_TYPE = 2u32; +pub const SERVICE_BOOT_START: SERVICE_START_TYPE = 0u32; +pub const SERVICE_CHANGE_CONFIG: u32 = 2u32; +pub const SERVICE_CONFIG_DELAYED_AUTO_START_INFO: SERVICE_CONFIG = 3u32; +pub const SERVICE_CONFIG_DESCRIPTION: SERVICE_CONFIG = 1u32; +pub const SERVICE_CONFIG_FAILURE_ACTIONS: SERVICE_CONFIG = 2u32; +pub const SERVICE_CONFIG_FAILURE_ACTIONS_FLAG: SERVICE_CONFIG = 4u32; +pub const SERVICE_CONFIG_LAUNCH_PROTECTED: SERVICE_CONFIG = 12u32; +pub const SERVICE_CONFIG_PREFERRED_NODE: SERVICE_CONFIG = 9u32; +pub const SERVICE_CONFIG_PRESHUTDOWN_INFO: SERVICE_CONFIG = 7u32; +pub const SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO: SERVICE_CONFIG = 6u32; +pub const SERVICE_CONFIG_SERVICE_SID_INFO: SERVICE_CONFIG = 5u32; +pub const SERVICE_CONFIG_TRIGGER_INFO: SERVICE_CONFIG = 8u32; +pub const SERVICE_CONTINUE_PENDING: SERVICE_STATUS_CURRENT_STATE = 5u32; +pub const SERVICE_CONTROL_CONTINUE: u32 = 3u32; +pub const SERVICE_CONTROL_DEVICEEVENT: u32 = 11u32; +pub const SERVICE_CONTROL_HARDWAREPROFILECHANGE: u32 = 12u32; +pub const SERVICE_CONTROL_INTERROGATE: u32 = 4u32; +pub const SERVICE_CONTROL_LOWRESOURCES: u32 = 96u32; +pub const SERVICE_CONTROL_NETBINDADD: u32 = 7u32; +pub const SERVICE_CONTROL_NETBINDDISABLE: u32 = 10u32; +pub const SERVICE_CONTROL_NETBINDENABLE: u32 = 9u32; +pub const SERVICE_CONTROL_NETBINDREMOVE: u32 = 8u32; +pub const SERVICE_CONTROL_PARAMCHANGE: u32 = 6u32; +pub const SERVICE_CONTROL_PAUSE: u32 = 2u32; +pub const SERVICE_CONTROL_POWEREVENT: u32 = 13u32; +pub const SERVICE_CONTROL_PRESHUTDOWN: u32 = 15u32; +pub const SERVICE_CONTROL_SESSIONCHANGE: u32 = 14u32; +pub const SERVICE_CONTROL_SHUTDOWN: u32 = 5u32; +pub const SERVICE_CONTROL_STATUS_REASON_INFO: u32 = 1u32; +pub const SERVICE_CONTROL_STOP: u32 = 1u32; +pub const SERVICE_CONTROL_SYSTEMLOWRESOURCES: u32 = 97u32; +pub const SERVICE_CONTROL_TIMECHANGE: u32 = 16u32; +pub const SERVICE_CONTROL_TRIGGEREVENT: u32 = 32u32; +pub const SERVICE_DEMAND_START: SERVICE_START_TYPE = 3u32; +pub const SERVICE_DISABLED: SERVICE_START_TYPE = 4u32; +pub const SERVICE_DRIVER: ENUM_SERVICE_TYPE = 11u32; +pub const SERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON: u32 = 1u32; +pub const SERVICE_ENUMERATE_DEPENDENTS: u32 = 8u32; +pub const SERVICE_ERROR_CRITICAL: SERVICE_ERROR = 3u32; +pub const SERVICE_ERROR_IGNORE: SERVICE_ERROR = 0u32; +pub const SERVICE_ERROR_NORMAL: SERVICE_ERROR = 1u32; +pub const SERVICE_ERROR_SEVERE: SERVICE_ERROR = 2u32; +pub const SERVICE_FILE_SYSTEM_DRIVER: ENUM_SERVICE_TYPE = 2u32; +pub const SERVICE_INACTIVE: ENUM_SERVICE_STATE = 2u32; +pub const SERVICE_INTERROGATE: u32 = 128u32; +pub const SERVICE_KERNEL_DRIVER: ENUM_SERVICE_TYPE = 1u32; +pub const SERVICE_LAUNCH_PROTECTED_ANTIMALWARE_LIGHT: u32 = 3u32; +pub const SERVICE_LAUNCH_PROTECTED_NONE: u32 = 0u32; +pub const SERVICE_LAUNCH_PROTECTED_WINDOWS: u32 = 1u32; +pub const SERVICE_LAUNCH_PROTECTED_WINDOWS_LIGHT: u32 = 2u32; +pub const SERVICE_NOTIFY_CONTINUE_PENDING: SERVICE_NOTIFY = 16u32; +pub const SERVICE_NOTIFY_CREATED: SERVICE_NOTIFY = 128u32; +pub const SERVICE_NOTIFY_DELETED: SERVICE_NOTIFY = 256u32; +pub const SERVICE_NOTIFY_DELETE_PENDING: SERVICE_NOTIFY = 512u32; +pub const SERVICE_NOTIFY_PAUSED: SERVICE_NOTIFY = 64u32; +pub const SERVICE_NOTIFY_PAUSE_PENDING: SERVICE_NOTIFY = 32u32; +pub const SERVICE_NOTIFY_RUNNING: SERVICE_NOTIFY = 8u32; +pub const SERVICE_NOTIFY_START_PENDING: SERVICE_NOTIFY = 2u32; +pub const SERVICE_NOTIFY_STATUS_CHANGE: u32 = 2u32; +pub const SERVICE_NOTIFY_STATUS_CHANGE_1: u32 = 1u32; +pub const SERVICE_NOTIFY_STATUS_CHANGE_2: u32 = 2u32; +pub const SERVICE_NOTIFY_STOPPED: SERVICE_NOTIFY = 1u32; +pub const SERVICE_NOTIFY_STOP_PENDING: SERVICE_NOTIFY = 4u32; +pub const SERVICE_NO_CHANGE: u32 = 4294967295u32; +pub const SERVICE_PAUSED: SERVICE_STATUS_CURRENT_STATE = 7u32; +pub const SERVICE_PAUSE_CONTINUE: u32 = 64u32; +pub const SERVICE_PAUSE_PENDING: SERVICE_STATUS_CURRENT_STATE = 6u32; +pub const SERVICE_QUERY_CONFIG: u32 = 1u32; +pub const SERVICE_QUERY_STATUS: u32 = 4u32; +pub const SERVICE_RECOGNIZER_DRIVER: ENUM_SERVICE_TYPE = 8u32; +pub const SERVICE_RUNNING: SERVICE_STATUS_CURRENT_STATE = 4u32; +pub const SERVICE_RUNS_IN_NON_SYSTEM_OR_NOT_RUNNING: SERVICE_RUNS_IN_PROCESS = 0u32; +pub const SERVICE_RUNS_IN_SYSTEM_PROCESS: SERVICE_RUNS_IN_PROCESS = 1u32; +pub const SERVICE_SID_TYPE_NONE: u32 = 0u32; +pub const SERVICE_SID_TYPE_UNRESTRICTED: u32 = 1u32; +pub const SERVICE_START: u32 = 16u32; +pub const SERVICE_START_PENDING: SERVICE_STATUS_CURRENT_STATE = 2u32; +pub const SERVICE_START_REASON_AUTO: u32 = 2u32; +pub const SERVICE_START_REASON_DELAYEDAUTO: u32 = 16u32; +pub const SERVICE_START_REASON_DEMAND: u32 = 1u32; +pub const SERVICE_START_REASON_RESTART_ON_FAILURE: u32 = 8u32; +pub const SERVICE_START_REASON_TRIGGER: u32 = 4u32; +pub const SERVICE_STATE_ALL: ENUM_SERVICE_STATE = 3u32; +pub const SERVICE_STOP: u32 = 32u32; +pub const SERVICE_STOPPED: SERVICE_STATUS_CURRENT_STATE = 1u32; +pub const SERVICE_STOP_PENDING: SERVICE_STATUS_CURRENT_STATE = 3u32; +pub const SERVICE_STOP_REASON_FLAG_CUSTOM: u32 = 536870912u32; +pub const SERVICE_STOP_REASON_FLAG_MAX: u32 = 2147483648u32; +pub const SERVICE_STOP_REASON_FLAG_MIN: u32 = 0u32; +pub const SERVICE_STOP_REASON_FLAG_PLANNED: u32 = 1073741824u32; +pub const SERVICE_STOP_REASON_FLAG_UNPLANNED: u32 = 268435456u32; +pub const SERVICE_STOP_REASON_MAJOR_APPLICATION: u32 = 327680u32; +pub const SERVICE_STOP_REASON_MAJOR_HARDWARE: u32 = 131072u32; +pub const SERVICE_STOP_REASON_MAJOR_MAX: u32 = 458752u32; +pub const SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM: u32 = 16711680u32; +pub const SERVICE_STOP_REASON_MAJOR_MIN: u32 = 0u32; +pub const SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM: u32 = 4194304u32; +pub const SERVICE_STOP_REASON_MAJOR_NONE: u32 = 393216u32; +pub const SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM: u32 = 196608u32; +pub const SERVICE_STOP_REASON_MAJOR_OTHER: u32 = 65536u32; +pub const SERVICE_STOP_REASON_MAJOR_SOFTWARE: u32 = 262144u32; +pub const SERVICE_STOP_REASON_MINOR_DISK: u32 = 8u32; +pub const SERVICE_STOP_REASON_MINOR_ENVIRONMENT: u32 = 10u32; +pub const SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER: u32 = 11u32; +pub const SERVICE_STOP_REASON_MINOR_HUNG: u32 = 6u32; +pub const SERVICE_STOP_REASON_MINOR_INSTALLATION: u32 = 3u32; +pub const SERVICE_STOP_REASON_MINOR_MAINTENANCE: u32 = 2u32; +pub const SERVICE_STOP_REASON_MINOR_MAX: u32 = 25u32; +pub const SERVICE_STOP_REASON_MINOR_MAX_CUSTOM: u32 = 65535u32; +pub const SERVICE_STOP_REASON_MINOR_MEMOTYLIMIT: u32 = 24u32; +pub const SERVICE_STOP_REASON_MINOR_MIN: u32 = 0u32; +pub const SERVICE_STOP_REASON_MINOR_MIN_CUSTOM: u32 = 256u32; +pub const SERVICE_STOP_REASON_MINOR_MMC: u32 = 22u32; +pub const SERVICE_STOP_REASON_MINOR_NETWORKCARD: u32 = 9u32; +pub const SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY: u32 = 17u32; +pub const SERVICE_STOP_REASON_MINOR_NONE: u32 = 23u32; +pub const SERVICE_STOP_REASON_MINOR_OTHER: u32 = 1u32; +pub const SERVICE_STOP_REASON_MINOR_OTHERDRIVER: u32 = 12u32; +pub const SERVICE_STOP_REASON_MINOR_RECONFIG: u32 = 5u32; +pub const SERVICE_STOP_REASON_MINOR_SECURITY: u32 = 16u32; +pub const SERVICE_STOP_REASON_MINOR_SECURITYFIX: u32 = 15u32; +pub const SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL: u32 = 21u32; +pub const SERVICE_STOP_REASON_MINOR_SERVICEPACK: u32 = 13u32; +pub const SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL: u32 = 19u32; +pub const SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE: u32 = 14u32; +pub const SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL: u32 = 20u32; +pub const SERVICE_STOP_REASON_MINOR_UNSTABLE: u32 = 7u32; +pub const SERVICE_STOP_REASON_MINOR_UPGRADE: u32 = 4u32; +pub const SERVICE_STOP_REASON_MINOR_WMI: u32 = 18u32; +pub const SERVICE_SYSTEM_START: SERVICE_START_TYPE = 1u32; +pub const SERVICE_TRIGGER_ACTION_SERVICE_START: SERVICE_TRIGGER_ACTION = 1u32; +pub const SERVICE_TRIGGER_ACTION_SERVICE_STOP: SERVICE_TRIGGER_ACTION = 2u32; +pub const SERVICE_TRIGGER_DATA_TYPE_BINARY: SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE = 1u32; +pub const SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL: SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE = 5u32; +pub const SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY: SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE = 4u32; +pub const SERVICE_TRIGGER_DATA_TYPE_LEVEL: SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE = 3u32; +pub const SERVICE_TRIGGER_DATA_TYPE_STRING: SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE = 2u32; +pub const SERVICE_TRIGGER_STARTED_ARGUMENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TriggerStarted"); +pub const SERVICE_TRIGGER_TYPE_AGGREGATE: u32 = 30u32; +pub const SERVICE_TRIGGER_TYPE_CUSTOM: SERVICE_TRIGGER_TYPE = 20u32; +pub const SERVICE_TRIGGER_TYPE_CUSTOM_SYSTEM_STATE_CHANGE: u32 = 7u32; +pub const SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL: SERVICE_TRIGGER_TYPE = 1u32; +pub const SERVICE_TRIGGER_TYPE_DOMAIN_JOIN: SERVICE_TRIGGER_TYPE = 3u32; +pub const SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT: SERVICE_TRIGGER_TYPE = 4u32; +pub const SERVICE_TRIGGER_TYPE_GROUP_POLICY: SERVICE_TRIGGER_TYPE = 5u32; +pub const SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY: SERVICE_TRIGGER_TYPE = 2u32; +pub const SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT: SERVICE_TRIGGER_TYPE = 6u32; +pub const SERVICE_USER_DEFINED_CONTROL: u32 = 256u32; +pub const SERVICE_USER_OWN_PROCESS: ENUM_SERVICE_TYPE = 80u32; +pub const SERVICE_USER_SHARE_PROCESS: ENUM_SERVICE_TYPE = 96u32; +pub const SERVICE_WIN32: ENUM_SERVICE_TYPE = 48u32; +pub const SERVICE_WIN32_OWN_PROCESS: ENUM_SERVICE_TYPE = 16u32; +pub const SERVICE_WIN32_SHARE_PROCESS: ENUM_SERVICE_TYPE = 32u32; +pub const ServiceDirectoryPersistentState: SERVICE_DIRECTORY_TYPE = 0i32; +pub const ServiceDirectoryTypeMax: SERVICE_DIRECTORY_TYPE = 1i32; +pub const ServiceRegistryStateParameters: SERVICE_REGISTRY_STATE_TYPE = 0i32; +pub const ServiceRegistryStatePersistent: SERVICE_REGISTRY_STATE_TYPE = 1i32; +pub const ServiceSharedDirectoryPersistentState: SERVICE_SHARED_DIRECTORY_TYPE = 0i32; +pub const ServiceSharedRegistryPersistentState: SERVICE_SHARED_REGISTRY_STATE_TYPE = 0i32; +pub const USER_POLICY_PRESENT_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x54fb46c8_f089_464c_b1fd_59d1b62c3b50); +pub type ENUM_SERVICE_STATE = u32; +pub type ENUM_SERVICE_TYPE = u32; +pub type SC_ACTION_TYPE = i32; +pub type SC_ENUM_TYPE = i32; +pub type SC_EVENT_TYPE = i32; +pub type SC_STATUS_TYPE = i32; +pub type SERVICE_CONFIG = u32; +pub type SERVICE_DIRECTORY_TYPE = i32; +pub type SERVICE_ERROR = u32; +pub type SERVICE_NOTIFY = u32; +pub type SERVICE_REGISTRY_STATE_TYPE = i32; +pub type SERVICE_RUNS_IN_PROCESS = u32; +pub type SERVICE_SHARED_DIRECTORY_TYPE = i32; +pub type SERVICE_SHARED_REGISTRY_STATE_TYPE = i32; +pub type SERVICE_START_TYPE = u32; +pub type SERVICE_STATUS_CURRENT_STATE = u32; +pub type SERVICE_TRIGGER_ACTION = u32; +pub type SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE = u32; +pub type SERVICE_TRIGGER_TYPE = u32; +#[repr(C)] +pub struct ENUM_SERVICE_STATUSA { + pub lpServiceName: ::windows_sys::core::PSTR, + pub lpDisplayName: ::windows_sys::core::PSTR, + pub ServiceStatus: SERVICE_STATUS, +} +impl ::core::marker::Copy for ENUM_SERVICE_STATUSA {} +impl ::core::clone::Clone for ENUM_SERVICE_STATUSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENUM_SERVICE_STATUSW { + pub lpServiceName: ::windows_sys::core::PWSTR, + pub lpDisplayName: ::windows_sys::core::PWSTR, + pub ServiceStatus: SERVICE_STATUS, +} +impl ::core::marker::Copy for ENUM_SERVICE_STATUSW {} +impl ::core::clone::Clone for ENUM_SERVICE_STATUSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENUM_SERVICE_STATUS_PROCESSA { + pub lpServiceName: ::windows_sys::core::PSTR, + pub lpDisplayName: ::windows_sys::core::PSTR, + pub ServiceStatusProcess: SERVICE_STATUS_PROCESS, +} +impl ::core::marker::Copy for ENUM_SERVICE_STATUS_PROCESSA {} +impl ::core::clone::Clone for ENUM_SERVICE_STATUS_PROCESSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENUM_SERVICE_STATUS_PROCESSW { + pub lpServiceName: ::windows_sys::core::PWSTR, + pub lpDisplayName: ::windows_sys::core::PWSTR, + pub ServiceStatusProcess: SERVICE_STATUS_PROCESS, +} +impl ::core::marker::Copy for ENUM_SERVICE_STATUS_PROCESSW {} +impl ::core::clone::Clone for ENUM_SERVICE_STATUS_PROCESSW { + fn clone(&self) -> Self { + *self + } +} +pub type PSC_NOTIFICATION_REGISTRATION = isize; +#[repr(C)] +pub struct QUERY_SERVICE_CONFIGA { + pub dwServiceType: ENUM_SERVICE_TYPE, + pub dwStartType: SERVICE_START_TYPE, + pub dwErrorControl: SERVICE_ERROR, + pub lpBinaryPathName: ::windows_sys::core::PSTR, + pub lpLoadOrderGroup: ::windows_sys::core::PSTR, + pub dwTagId: u32, + pub lpDependencies: ::windows_sys::core::PSTR, + pub lpServiceStartName: ::windows_sys::core::PSTR, + pub lpDisplayName: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for QUERY_SERVICE_CONFIGA {} +impl ::core::clone::Clone for QUERY_SERVICE_CONFIGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_SERVICE_CONFIGW { + pub dwServiceType: ENUM_SERVICE_TYPE, + pub dwStartType: SERVICE_START_TYPE, + pub dwErrorControl: SERVICE_ERROR, + pub lpBinaryPathName: ::windows_sys::core::PWSTR, + pub lpLoadOrderGroup: ::windows_sys::core::PWSTR, + pub dwTagId: u32, + pub lpDependencies: ::windows_sys::core::PWSTR, + pub lpServiceStartName: ::windows_sys::core::PWSTR, + pub lpDisplayName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for QUERY_SERVICE_CONFIGW {} +impl ::core::clone::Clone for QUERY_SERVICE_CONFIGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_SERVICE_LOCK_STATUSA { + pub fIsLocked: u32, + pub lpLockOwner: ::windows_sys::core::PSTR, + pub dwLockDuration: u32, +} +impl ::core::marker::Copy for QUERY_SERVICE_LOCK_STATUSA {} +impl ::core::clone::Clone for QUERY_SERVICE_LOCK_STATUSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUERY_SERVICE_LOCK_STATUSW { + pub fIsLocked: u32, + pub lpLockOwner: ::windows_sys::core::PWSTR, + pub dwLockDuration: u32, +} +impl ::core::marker::Copy for QUERY_SERVICE_LOCK_STATUSW {} +impl ::core::clone::Clone for QUERY_SERVICE_LOCK_STATUSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SC_ACTION { + pub Type: SC_ACTION_TYPE, + pub Delay: u32, +} +impl ::core::marker::Copy for SC_ACTION {} +impl ::core::clone::Clone for SC_ACTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_CONTROL_STATUS_REASON_PARAMSA { + pub dwReason: u32, + pub pszComment: ::windows_sys::core::PSTR, + pub ServiceStatus: SERVICE_STATUS_PROCESS, +} +impl ::core::marker::Copy for SERVICE_CONTROL_STATUS_REASON_PARAMSA {} +impl ::core::clone::Clone for SERVICE_CONTROL_STATUS_REASON_PARAMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_CONTROL_STATUS_REASON_PARAMSW { + pub dwReason: u32, + pub pszComment: ::windows_sys::core::PWSTR, + pub ServiceStatus: SERVICE_STATUS_PROCESS, +} +impl ::core::marker::Copy for SERVICE_CONTROL_STATUS_REASON_PARAMSW {} +impl ::core::clone::Clone for SERVICE_CONTROL_STATUS_REASON_PARAMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM { + pub u: SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM_0, +} +impl ::core::marker::Copy for SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM {} +impl ::core::clone::Clone for SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM_0 { + pub CustomStateId: SERVICE_TRIGGER_CUSTOM_STATE_ID, + pub s: SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM_0_0, +} +impl ::core::marker::Copy for SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM_0 {} +impl ::core::clone::Clone for SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM_0_0 { + pub DataOffset: u32, + pub Data: [u8; 1], +} +impl ::core::marker::Copy for SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM_0_0 {} +impl ::core::clone::Clone for SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVICE_DELAYED_AUTO_START_INFO { + pub fDelayedAutostart: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVICE_DELAYED_AUTO_START_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVICE_DELAYED_AUTO_START_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_DESCRIPTIONA { + pub lpDescription: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for SERVICE_DESCRIPTIONA {} +impl ::core::clone::Clone for SERVICE_DESCRIPTIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_DESCRIPTIONW { + pub lpDescription: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SERVICE_DESCRIPTIONW {} +impl ::core::clone::Clone for SERVICE_DESCRIPTIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_FAILURE_ACTIONSA { + pub dwResetPeriod: u32, + pub lpRebootMsg: ::windows_sys::core::PSTR, + pub lpCommand: ::windows_sys::core::PSTR, + pub cActions: u32, + pub lpsaActions: *mut SC_ACTION, +} +impl ::core::marker::Copy for SERVICE_FAILURE_ACTIONSA {} +impl ::core::clone::Clone for SERVICE_FAILURE_ACTIONSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_FAILURE_ACTIONSW { + pub dwResetPeriod: u32, + pub lpRebootMsg: ::windows_sys::core::PWSTR, + pub lpCommand: ::windows_sys::core::PWSTR, + pub cActions: u32, + pub lpsaActions: *mut SC_ACTION, +} +impl ::core::marker::Copy for SERVICE_FAILURE_ACTIONSW {} +impl ::core::clone::Clone for SERVICE_FAILURE_ACTIONSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVICE_FAILURE_ACTIONS_FLAG { + pub fFailureActionsOnNonCrashFailures: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVICE_FAILURE_ACTIONS_FLAG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVICE_FAILURE_ACTIONS_FLAG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_LAUNCH_PROTECTED_INFO { + pub dwLaunchProtected: u32, +} +impl ::core::marker::Copy for SERVICE_LAUNCH_PROTECTED_INFO {} +impl ::core::clone::Clone for SERVICE_LAUNCH_PROTECTED_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_NOTIFY_1 { + pub dwVersion: u32, + pub pfnNotifyCallback: PFN_SC_NOTIFY_CALLBACK, + pub pContext: *mut ::core::ffi::c_void, + pub dwNotificationStatus: u32, + pub ServiceStatus: SERVICE_STATUS_PROCESS, +} +impl ::core::marker::Copy for SERVICE_NOTIFY_1 {} +impl ::core::clone::Clone for SERVICE_NOTIFY_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_NOTIFY_2A { + pub dwVersion: u32, + pub pfnNotifyCallback: PFN_SC_NOTIFY_CALLBACK, + pub pContext: *mut ::core::ffi::c_void, + pub dwNotificationStatus: u32, + pub ServiceStatus: SERVICE_STATUS_PROCESS, + pub dwNotificationTriggered: u32, + pub pszServiceNames: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for SERVICE_NOTIFY_2A {} +impl ::core::clone::Clone for SERVICE_NOTIFY_2A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_NOTIFY_2W { + pub dwVersion: u32, + pub pfnNotifyCallback: PFN_SC_NOTIFY_CALLBACK, + pub pContext: *mut ::core::ffi::c_void, + pub dwNotificationStatus: u32, + pub ServiceStatus: SERVICE_STATUS_PROCESS, + pub dwNotificationTriggered: u32, + pub pszServiceNames: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SERVICE_NOTIFY_2W {} +impl ::core::clone::Clone for SERVICE_NOTIFY_2W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVICE_PREFERRED_NODE_INFO { + pub usPreferredNode: u16, + pub fDelete: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVICE_PREFERRED_NODE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVICE_PREFERRED_NODE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_PRESHUTDOWN_INFO { + pub dwPreshutdownTimeout: u32, +} +impl ::core::marker::Copy for SERVICE_PRESHUTDOWN_INFO {} +impl ::core::clone::Clone for SERVICE_PRESHUTDOWN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_REQUIRED_PRIVILEGES_INFOA { + pub pmszRequiredPrivileges: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for SERVICE_REQUIRED_PRIVILEGES_INFOA {} +impl ::core::clone::Clone for SERVICE_REQUIRED_PRIVILEGES_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_REQUIRED_PRIVILEGES_INFOW { + pub pmszRequiredPrivileges: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SERVICE_REQUIRED_PRIVILEGES_INFOW {} +impl ::core::clone::Clone for SERVICE_REQUIRED_PRIVILEGES_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_SID_INFO { + pub dwServiceSidType: u32, +} +impl ::core::marker::Copy for SERVICE_SID_INFO {} +impl ::core::clone::Clone for SERVICE_SID_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_START_REASON { + pub dwReason: u32, +} +impl ::core::marker::Copy for SERVICE_START_REASON {} +impl ::core::clone::Clone for SERVICE_START_REASON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_STATUS { + pub dwServiceType: ENUM_SERVICE_TYPE, + pub dwCurrentState: SERVICE_STATUS_CURRENT_STATE, + pub dwControlsAccepted: u32, + pub dwWin32ExitCode: u32, + pub dwServiceSpecificExitCode: u32, + pub dwCheckPoint: u32, + pub dwWaitHint: u32, +} +impl ::core::marker::Copy for SERVICE_STATUS {} +impl ::core::clone::Clone for SERVICE_STATUS { + fn clone(&self) -> Self { + *self + } +} +pub type SERVICE_STATUS_HANDLE = isize; +#[repr(C)] +pub struct SERVICE_STATUS_PROCESS { + pub dwServiceType: ENUM_SERVICE_TYPE, + pub dwCurrentState: SERVICE_STATUS_CURRENT_STATE, + pub dwControlsAccepted: u32, + pub dwWin32ExitCode: u32, + pub dwServiceSpecificExitCode: u32, + pub dwCheckPoint: u32, + pub dwWaitHint: u32, + pub dwProcessId: u32, + pub dwServiceFlags: SERVICE_RUNS_IN_PROCESS, +} +impl ::core::marker::Copy for SERVICE_STATUS_PROCESS {} +impl ::core::clone::Clone for SERVICE_STATUS_PROCESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_TABLE_ENTRYA { + pub lpServiceName: ::windows_sys::core::PSTR, + pub lpServiceProc: LPSERVICE_MAIN_FUNCTIONA, +} +impl ::core::marker::Copy for SERVICE_TABLE_ENTRYA {} +impl ::core::clone::Clone for SERVICE_TABLE_ENTRYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_TABLE_ENTRYW { + pub lpServiceName: ::windows_sys::core::PWSTR, + pub lpServiceProc: LPSERVICE_MAIN_FUNCTIONW, +} +impl ::core::marker::Copy for SERVICE_TABLE_ENTRYW {} +impl ::core::clone::Clone for SERVICE_TABLE_ENTRYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_TIMECHANGE_INFO { + pub liNewTime: i64, + pub liOldTime: i64, +} +impl ::core::marker::Copy for SERVICE_TIMECHANGE_INFO {} +impl ::core::clone::Clone for SERVICE_TIMECHANGE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_TRIGGER { + pub dwTriggerType: SERVICE_TRIGGER_TYPE, + pub dwAction: SERVICE_TRIGGER_ACTION, + pub pTriggerSubtype: *mut ::windows_sys::core::GUID, + pub cDataItems: u32, + pub pDataItems: *mut SERVICE_TRIGGER_SPECIFIC_DATA_ITEM, +} +impl ::core::marker::Copy for SERVICE_TRIGGER {} +impl ::core::clone::Clone for SERVICE_TRIGGER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_TRIGGER_CUSTOM_STATE_ID { + pub Data: [u32; 2], +} +impl ::core::marker::Copy for SERVICE_TRIGGER_CUSTOM_STATE_ID {} +impl ::core::clone::Clone for SERVICE_TRIGGER_CUSTOM_STATE_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_TRIGGER_INFO { + pub cTriggers: u32, + pub pTriggers: *mut SERVICE_TRIGGER, + pub pReserved: *mut u8, +} +impl ::core::marker::Copy for SERVICE_TRIGGER_INFO {} +impl ::core::clone::Clone for SERVICE_TRIGGER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERVICE_TRIGGER_SPECIFIC_DATA_ITEM { + pub dwDataType: SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE, + pub cbData: u32, + pub pData: *mut u8, +} +impl ::core::marker::Copy for SERVICE_TRIGGER_SPECIFIC_DATA_ITEM {} +impl ::core::clone::Clone for SERVICE_TRIGGER_SPECIFIC_DATA_ITEM { + fn clone(&self) -> Self { + *self + } +} +pub type HANDLER_FUNCTION = ::core::option::Option ()>; +pub type HANDLER_FUNCTION_EX = ::core::option::Option u32>; +pub type LPHANDLER_FUNCTION = ::core::option::Option ()>; +pub type LPHANDLER_FUNCTION_EX = ::core::option::Option u32>; +pub type LPSERVICE_MAIN_FUNCTIONA = ::core::option::Option ()>; +pub type LPSERVICE_MAIN_FUNCTIONW = ::core::option::Option ()>; +pub type PFN_SC_NOTIFY_CALLBACK = ::core::option::Option ()>; +pub type PSC_NOTIFICATION_CALLBACK = ::core::option::Option ()>; +pub type SERVICE_MAIN_FUNCTIONA = ::core::option::Option ()>; +pub type SERVICE_MAIN_FUNCTIONW = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/SetupAndMigration/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/SetupAndMigration/mod.rs new file mode 100644 index 000000000..9fed83703 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/SetupAndMigration/mod.rs @@ -0,0 +1,7 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OOBEComplete(isoobecomplete : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterWaitUntilOOBECompleted(oobecompletedcallback : OOBE_COMPLETED_CALLBACK, callbackcontext : *const ::core::ffi::c_void, waithandle : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterWaitUntilOOBECompleted(waithandle : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +pub type OOBE_COMPLETED_CALLBACK = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Shutdown/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Shutdown/mod.rs new file mode 100644 index 000000000..7b8e96e5b --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Shutdown/mod.rs @@ -0,0 +1,123 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AbortSystemShutdownA(lpmachinename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AbortSystemShutdownW(lpmachinename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckForHiberboot(phiberboot : *mut super::super::Foundation:: BOOLEAN, bclearflag : super::super::Foundation:: BOOLEAN) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExitWindowsEx(uflags : EXIT_WINDOWS_FLAGS, dwreason : SHUTDOWN_REASON) -> super::super::Foundation:: BOOL); +::windows_targets::link!("advapi32.dll" "system" fn InitiateShutdownA(lpmachinename : ::windows_sys::core::PCSTR, lpmessage : ::windows_sys::core::PCSTR, dwgraceperiod : u32, dwshutdownflags : SHUTDOWN_FLAGS, dwreason : SHUTDOWN_REASON) -> u32); +::windows_targets::link!("advapi32.dll" "system" fn InitiateShutdownW(lpmachinename : ::windows_sys::core::PCWSTR, lpmessage : ::windows_sys::core::PCWSTR, dwgraceperiod : u32, dwshutdownflags : SHUTDOWN_FLAGS, dwreason : SHUTDOWN_REASON) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitiateSystemShutdownA(lpmachinename : ::windows_sys::core::PCSTR, lpmessage : ::windows_sys::core::PCSTR, dwtimeout : u32, bforceappsclosed : super::super::Foundation:: BOOL, brebootaftershutdown : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitiateSystemShutdownExA(lpmachinename : ::windows_sys::core::PCSTR, lpmessage : ::windows_sys::core::PCSTR, dwtimeout : u32, bforceappsclosed : super::super::Foundation:: BOOL, brebootaftershutdown : super::super::Foundation:: BOOL, dwreason : SHUTDOWN_REASON) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitiateSystemShutdownExW(lpmachinename : ::windows_sys::core::PCWSTR, lpmessage : ::windows_sys::core::PCWSTR, dwtimeout : u32, bforceappsclosed : super::super::Foundation:: BOOL, brebootaftershutdown : super::super::Foundation:: BOOL, dwreason : SHUTDOWN_REASON) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitiateSystemShutdownW(lpmachinename : ::windows_sys::core::PCWSTR, lpmessage : ::windows_sys::core::PCWSTR, dwtimeout : u32, bforceappsclosed : super::super::Foundation:: BOOL, brebootaftershutdown : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LockWorkStation() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ShutdownBlockReasonCreate(hwnd : super::super::Foundation:: HWND, pwszreason : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ShutdownBlockReasonDestroy(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ShutdownBlockReasonQuery(hwnd : super::super::Foundation:: HWND, pwszbuff : ::windows_sys::core::PWSTR, pcchbuff : *mut u32) -> super::super::Foundation:: BOOL); +pub const EWX_ARSO: EXIT_WINDOWS_FLAGS = 67108864u32; +pub const EWX_BOOTOPTIONS: EXIT_WINDOWS_FLAGS = 16777216u32; +pub const EWX_CHECK_SAFE_FOR_SERVER: EXIT_WINDOWS_FLAGS = 134217728u32; +pub const EWX_FORCE: EXIT_WINDOWS_FLAGS = 4u32; +pub const EWX_FORCEIFHUNG: EXIT_WINDOWS_FLAGS = 16u32; +pub const EWX_HYBRID_SHUTDOWN: EXIT_WINDOWS_FLAGS = 4194304u32; +pub const EWX_LOGOFF: EXIT_WINDOWS_FLAGS = 0u32; +pub const EWX_POWEROFF: EXIT_WINDOWS_FLAGS = 8u32; +pub const EWX_QUICKRESOLVE: EXIT_WINDOWS_FLAGS = 32u32; +pub const EWX_REBOOT: EXIT_WINDOWS_FLAGS = 2u32; +pub const EWX_RESTARTAPPS: EXIT_WINDOWS_FLAGS = 64u32; +pub const EWX_SHUTDOWN: EXIT_WINDOWS_FLAGS = 1u32; +pub const EWX_SYSTEM_INITIATED: EXIT_WINDOWS_FLAGS = 268435456u32; +pub const MAX_NUM_REASONS: u32 = 256u32; +pub const MAX_REASON_BUGID_LEN: u32 = 32u32; +pub const MAX_REASON_COMMENT_LEN: u32 = 512u32; +pub const MAX_REASON_DESC_LEN: u32 = 256u32; +pub const MAX_REASON_NAME_LEN: u32 = 64u32; +pub const POLICY_SHOWREASONUI_ALWAYS: u32 = 1u32; +pub const POLICY_SHOWREASONUI_NEVER: u32 = 0u32; +pub const POLICY_SHOWREASONUI_SERVERONLY: u32 = 3u32; +pub const POLICY_SHOWREASONUI_WORKSTATIONONLY: u32 = 2u32; +pub const SHTDN_REASON_FLAG_CLEAN_UI: SHUTDOWN_REASON = 67108864u32; +pub const SHTDN_REASON_FLAG_COMMENT_REQUIRED: SHUTDOWN_REASON = 16777216u32; +pub const SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED: SHUTDOWN_REASON = 33554432u32; +pub const SHTDN_REASON_FLAG_DIRTY_UI: SHUTDOWN_REASON = 134217728u32; +pub const SHTDN_REASON_FLAG_MOBILE_UI_RESERVED: SHUTDOWN_REASON = 268435456u32; +pub const SHTDN_REASON_FLAG_PLANNED: SHUTDOWN_REASON = 2147483648u32; +pub const SHTDN_REASON_FLAG_USER_DEFINED: SHUTDOWN_REASON = 1073741824u32; +pub const SHTDN_REASON_LEGACY_API: SHUTDOWN_REASON = 2147942400u32; +pub const SHTDN_REASON_MAJOR_APPLICATION: SHUTDOWN_REASON = 262144u32; +pub const SHTDN_REASON_MAJOR_HARDWARE: SHUTDOWN_REASON = 65536u32; +pub const SHTDN_REASON_MAJOR_LEGACY_API: SHUTDOWN_REASON = 458752u32; +pub const SHTDN_REASON_MAJOR_NONE: SHUTDOWN_REASON = 0u32; +pub const SHTDN_REASON_MAJOR_OPERATINGSYSTEM: SHUTDOWN_REASON = 131072u32; +pub const SHTDN_REASON_MAJOR_OTHER: SHUTDOWN_REASON = 0u32; +pub const SHTDN_REASON_MAJOR_POWER: SHUTDOWN_REASON = 393216u32; +pub const SHTDN_REASON_MAJOR_SOFTWARE: SHUTDOWN_REASON = 196608u32; +pub const SHTDN_REASON_MAJOR_SYSTEM: SHUTDOWN_REASON = 327680u32; +pub const SHTDN_REASON_MINOR_BLUESCREEN: SHUTDOWN_REASON = 15u32; +pub const SHTDN_REASON_MINOR_CORDUNPLUGGED: SHUTDOWN_REASON = 11u32; +pub const SHTDN_REASON_MINOR_DC_DEMOTION: SHUTDOWN_REASON = 34u32; +pub const SHTDN_REASON_MINOR_DC_PROMOTION: SHUTDOWN_REASON = 33u32; +pub const SHTDN_REASON_MINOR_DISK: SHUTDOWN_REASON = 7u32; +pub const SHTDN_REASON_MINOR_ENVIRONMENT: SHUTDOWN_REASON = 12u32; +pub const SHTDN_REASON_MINOR_HARDWARE_DRIVER: SHUTDOWN_REASON = 13u32; +pub const SHTDN_REASON_MINOR_HOTFIX: SHUTDOWN_REASON = 17u32; +pub const SHTDN_REASON_MINOR_HOTFIX_UNINSTALL: SHUTDOWN_REASON = 23u32; +pub const SHTDN_REASON_MINOR_HUNG: SHUTDOWN_REASON = 5u32; +pub const SHTDN_REASON_MINOR_INSTALLATION: SHUTDOWN_REASON = 2u32; +pub const SHTDN_REASON_MINOR_MAINTENANCE: SHUTDOWN_REASON = 1u32; +pub const SHTDN_REASON_MINOR_MMC: SHUTDOWN_REASON = 25u32; +pub const SHTDN_REASON_MINOR_NETWORKCARD: SHUTDOWN_REASON = 9u32; +pub const SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY: SHUTDOWN_REASON = 20u32; +pub const SHTDN_REASON_MINOR_NONE: SHUTDOWN_REASON = 255u32; +pub const SHTDN_REASON_MINOR_OTHER: SHUTDOWN_REASON = 0u32; +pub const SHTDN_REASON_MINOR_OTHERDRIVER: SHUTDOWN_REASON = 14u32; +pub const SHTDN_REASON_MINOR_POWER_SUPPLY: SHUTDOWN_REASON = 10u32; +pub const SHTDN_REASON_MINOR_PROCESSOR: SHUTDOWN_REASON = 8u32; +pub const SHTDN_REASON_MINOR_RECONFIG: SHUTDOWN_REASON = 4u32; +pub const SHTDN_REASON_MINOR_SECURITY: SHUTDOWN_REASON = 19u32; +pub const SHTDN_REASON_MINOR_SECURITYFIX: SHUTDOWN_REASON = 18u32; +pub const SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL: SHUTDOWN_REASON = 24u32; +pub const SHTDN_REASON_MINOR_SERVICEPACK: SHUTDOWN_REASON = 16u32; +pub const SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL: SHUTDOWN_REASON = 22u32; +pub const SHTDN_REASON_MINOR_SYSTEMRESTORE: SHUTDOWN_REASON = 26u32; +pub const SHTDN_REASON_MINOR_TERMSRV: SHUTDOWN_REASON = 32u32; +pub const SHTDN_REASON_MINOR_UNSTABLE: SHUTDOWN_REASON = 6u32; +pub const SHTDN_REASON_MINOR_UPGRADE: SHUTDOWN_REASON = 3u32; +pub const SHTDN_REASON_MINOR_WMI: SHUTDOWN_REASON = 21u32; +pub const SHTDN_REASON_NONE: SHUTDOWN_REASON = 0u32; +pub const SHTDN_REASON_UNKNOWN: SHUTDOWN_REASON = 255u32; +pub const SHTDN_REASON_VALID_BIT_MASK: SHUTDOWN_REASON = 3238002687u32; +pub const SHUTDOWN_ARSO: SHUTDOWN_FLAGS = 8192u32; +pub const SHUTDOWN_CHECK_SAFE_FOR_SERVER: SHUTDOWN_FLAGS = 16384u32; +pub const SHUTDOWN_FORCE_OTHERS: SHUTDOWN_FLAGS = 1u32; +pub const SHUTDOWN_FORCE_SELF: SHUTDOWN_FLAGS = 2u32; +pub const SHUTDOWN_GRACE_OVERRIDE: SHUTDOWN_FLAGS = 32u32; +pub const SHUTDOWN_HYBRID: SHUTDOWN_FLAGS = 512u32; +pub const SHUTDOWN_INSTALL_UPDATES: SHUTDOWN_FLAGS = 64u32; +pub const SHUTDOWN_MOBILE_UI: SHUTDOWN_FLAGS = 4096u32; +pub const SHUTDOWN_NOREBOOT: SHUTDOWN_FLAGS = 16u32; +pub const SHUTDOWN_POWEROFF: SHUTDOWN_FLAGS = 8u32; +pub const SHUTDOWN_RESTART: SHUTDOWN_FLAGS = 4u32; +pub const SHUTDOWN_RESTARTAPPS: SHUTDOWN_FLAGS = 128u32; +pub const SHUTDOWN_RESTART_BOOTOPTIONS: SHUTDOWN_FLAGS = 1024u32; +pub const SHUTDOWN_SKIP_SVC_PRESHUTDOWN: SHUTDOWN_FLAGS = 256u32; +pub const SHUTDOWN_SOFT_REBOOT: SHUTDOWN_FLAGS = 2048u32; +pub const SHUTDOWN_SYSTEM_INITIATED: SHUTDOWN_FLAGS = 65536u32; +pub const SHUTDOWN_TYPE_LEN: u32 = 32u32; +pub const SHUTDOWN_VAIL_CONTAINER: SHUTDOWN_FLAGS = 32768u32; +pub const SNAPSHOT_POLICY_ALWAYS: u32 = 1u32; +pub const SNAPSHOT_POLICY_NEVER: u32 = 0u32; +pub const SNAPSHOT_POLICY_UNPLANNED: u32 = 2u32; +pub type EXIT_WINDOWS_FLAGS = u32; +pub type SHUTDOWN_FLAGS = u32; +pub type SHUTDOWN_REASON = u32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/StationsAndDesktops/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/StationsAndDesktops/mod.rs new file mode 100644 index 000000000..7fa810d6c --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/StationsAndDesktops/mod.rs @@ -0,0 +1,147 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BroadcastSystemMessageA(flags : u32, lpinfo : *mut u32, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BroadcastSystemMessageExA(flags : BROADCAST_SYSTEM_MESSAGE_FLAGS, lpinfo : *mut BROADCAST_SYSTEM_MESSAGE_INFO, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM, pbsminfo : *mut BSMINFO) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BroadcastSystemMessageExW(flags : BROADCAST_SYSTEM_MESSAGE_FLAGS, lpinfo : *mut BROADCAST_SYSTEM_MESSAGE_INFO, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM, pbsminfo : *mut BSMINFO) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BroadcastSystemMessageW(flags : BROADCAST_SYSTEM_MESSAGE_FLAGS, lpinfo : *mut BROADCAST_SYSTEM_MESSAGE_INFO, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseDesktop(hdesktop : HDESK) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseWindowStation(hwinsta : HWINSTA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security\"`"] fn CreateDesktopA(lpszdesktop : ::windows_sys::core::PCSTR, lpszdevice : ::windows_sys::core::PCSTR, pdevmode : *const super::super::Graphics::Gdi:: DEVMODEA, dwflags : DESKTOP_CONTROL_FLAGS, dwdesiredaccess : u32, lpsa : *const super::super::Security:: SECURITY_ATTRIBUTES) -> HDESK); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security\"`"] fn CreateDesktopExA(lpszdesktop : ::windows_sys::core::PCSTR, lpszdevice : ::windows_sys::core::PCSTR, pdevmode : *const super::super::Graphics::Gdi:: DEVMODEA, dwflags : DESKTOP_CONTROL_FLAGS, dwdesiredaccess : u32, lpsa : *const super::super::Security:: SECURITY_ATTRIBUTES, ulheapsize : u32, pvoid : *const ::core::ffi::c_void) -> HDESK); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security\"`"] fn CreateDesktopExW(lpszdesktop : ::windows_sys::core::PCWSTR, lpszdevice : ::windows_sys::core::PCWSTR, pdevmode : *const super::super::Graphics::Gdi:: DEVMODEW, dwflags : DESKTOP_CONTROL_FLAGS, dwdesiredaccess : u32, lpsa : *const super::super::Security:: SECURITY_ATTRIBUTES, ulheapsize : u32, pvoid : *const ::core::ffi::c_void) -> HDESK); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Security"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Security\"`"] fn CreateDesktopW(lpszdesktop : ::windows_sys::core::PCWSTR, lpszdevice : ::windows_sys::core::PCWSTR, pdevmode : *const super::super::Graphics::Gdi:: DEVMODEW, dwflags : DESKTOP_CONTROL_FLAGS, dwdesiredaccess : u32, lpsa : *const super::super::Security:: SECURITY_ATTRIBUTES) -> HDESK); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateWindowStationA(lpwinsta : ::windows_sys::core::PCSTR, dwflags : u32, dwdesiredaccess : u32, lpsa : *const super::super::Security:: SECURITY_ATTRIBUTES) -> HWINSTA); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateWindowStationW(lpwinsta : ::windows_sys::core::PCWSTR, dwflags : u32, dwdesiredaccess : u32, lpsa : *const super::super::Security:: SECURITY_ATTRIBUTES) -> HWINSTA); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn EnumDesktopWindows(hdesktop : HDESK, lpfn : super::super::UI::WindowsAndMessaging:: WNDENUMPROC, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDesktopsA(hwinsta : HWINSTA, lpenumfunc : DESKTOPENUMPROCA, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDesktopsW(hwinsta : HWINSTA, lpenumfunc : DESKTOPENUMPROCW, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumWindowStationsA(lpenumfunc : WINSTAENUMPROCA, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumWindowStationsW(lpenumfunc : WINSTAENUMPROCW, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn GetProcessWindowStation() -> HWINSTA); +::windows_targets::link!("user32.dll" "system" fn GetThreadDesktop(dwthreadid : u32) -> HDESK); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUserObjectInformationA(hobj : super::super::Foundation:: HANDLE, nindex : USER_OBJECT_INFORMATION_INDEX, pvinfo : *mut ::core::ffi::c_void, nlength : u32, lpnlengthneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUserObjectInformationW(hobj : super::super::Foundation:: HANDLE, nindex : USER_OBJECT_INFORMATION_INDEX, pvinfo : *mut ::core::ffi::c_void, nlength : u32, lpnlengthneeded : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenDesktopA(lpszdesktop : ::windows_sys::core::PCSTR, dwflags : DESKTOP_CONTROL_FLAGS, finherit : super::super::Foundation:: BOOL, dwdesiredaccess : u32) -> HDESK); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenDesktopW(lpszdesktop : ::windows_sys::core::PCWSTR, dwflags : DESKTOP_CONTROL_FLAGS, finherit : super::super::Foundation:: BOOL, dwdesiredaccess : u32) -> HDESK); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenInputDesktop(dwflags : DESKTOP_CONTROL_FLAGS, finherit : super::super::Foundation:: BOOL, dwdesiredaccess : DESKTOP_ACCESS_FLAGS) -> HDESK); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenWindowStationA(lpszwinsta : ::windows_sys::core::PCSTR, finherit : super::super::Foundation:: BOOL, dwdesiredaccess : u32) -> HWINSTA); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenWindowStationW(lpszwinsta : ::windows_sys::core::PCWSTR, finherit : super::super::Foundation:: BOOL, dwdesiredaccess : u32) -> HWINSTA); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessWindowStation(hwinsta : HWINSTA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadDesktop(hdesktop : HDESK) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUserObjectInformationA(hobj : super::super::Foundation:: HANDLE, nindex : i32, pvinfo : *const ::core::ffi::c_void, nlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUserObjectInformationW(hobj : super::super::Foundation:: HANDLE, nindex : i32, pvinfo : *const ::core::ffi::c_void, nlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SwitchDesktop(hdesktop : HDESK) -> super::super::Foundation:: BOOL); +pub const BSF_ALLOWSFW: BROADCAST_SYSTEM_MESSAGE_FLAGS = 128u32; +pub const BSF_FLUSHDISK: BROADCAST_SYSTEM_MESSAGE_FLAGS = 4u32; +pub const BSF_FORCEIFHUNG: BROADCAST_SYSTEM_MESSAGE_FLAGS = 32u32; +pub const BSF_IGNORECURRENTTASK: BROADCAST_SYSTEM_MESSAGE_FLAGS = 2u32; +pub const BSF_LUID: BROADCAST_SYSTEM_MESSAGE_FLAGS = 1024u32; +pub const BSF_NOHANG: BROADCAST_SYSTEM_MESSAGE_FLAGS = 8u32; +pub const BSF_NOTIMEOUTIFNOTHUNG: BROADCAST_SYSTEM_MESSAGE_FLAGS = 64u32; +pub const BSF_POSTMESSAGE: BROADCAST_SYSTEM_MESSAGE_FLAGS = 16u32; +pub const BSF_QUERY: BROADCAST_SYSTEM_MESSAGE_FLAGS = 1u32; +pub const BSF_RETURNHDESK: BROADCAST_SYSTEM_MESSAGE_FLAGS = 512u32; +pub const BSF_SENDNOTIFYMESSAGE: BROADCAST_SYSTEM_MESSAGE_FLAGS = 256u32; +pub const BSM_ALLCOMPONENTS: BROADCAST_SYSTEM_MESSAGE_INFO = 0u32; +pub const BSM_ALLDESKTOPS: BROADCAST_SYSTEM_MESSAGE_INFO = 16u32; +pub const BSM_APPLICATIONS: BROADCAST_SYSTEM_MESSAGE_INFO = 8u32; +pub const DESKTOP_CREATEMENU: DESKTOP_ACCESS_FLAGS = 4u32; +pub const DESKTOP_CREATEWINDOW: DESKTOP_ACCESS_FLAGS = 2u32; +pub const DESKTOP_DELETE: DESKTOP_ACCESS_FLAGS = 65536u32; +pub const DESKTOP_ENUMERATE: DESKTOP_ACCESS_FLAGS = 64u32; +pub const DESKTOP_HOOKCONTROL: DESKTOP_ACCESS_FLAGS = 8u32; +pub const DESKTOP_JOURNALPLAYBACK: DESKTOP_ACCESS_FLAGS = 32u32; +pub const DESKTOP_JOURNALRECORD: DESKTOP_ACCESS_FLAGS = 16u32; +pub const DESKTOP_READOBJECTS: DESKTOP_ACCESS_FLAGS = 1u32; +pub const DESKTOP_READ_CONTROL: DESKTOP_ACCESS_FLAGS = 131072u32; +pub const DESKTOP_SWITCHDESKTOP: DESKTOP_ACCESS_FLAGS = 256u32; +pub const DESKTOP_SYNCHRONIZE: DESKTOP_ACCESS_FLAGS = 1048576u32; +pub const DESKTOP_WRITEOBJECTS: DESKTOP_ACCESS_FLAGS = 128u32; +pub const DESKTOP_WRITE_DAC: DESKTOP_ACCESS_FLAGS = 262144u32; +pub const DESKTOP_WRITE_OWNER: DESKTOP_ACCESS_FLAGS = 524288u32; +pub const DF_ALLOWOTHERACCOUNTHOOK: DESKTOP_CONTROL_FLAGS = 1u32; +pub const UOI_FLAGS: USER_OBJECT_INFORMATION_INDEX = 1i32; +pub const UOI_HEAPSIZE: USER_OBJECT_INFORMATION_INDEX = 5i32; +pub const UOI_IO: USER_OBJECT_INFORMATION_INDEX = 6i32; +pub const UOI_NAME: USER_OBJECT_INFORMATION_INDEX = 2i32; +pub const UOI_TYPE: USER_OBJECT_INFORMATION_INDEX = 3i32; +pub const UOI_USER_SID: USER_OBJECT_INFORMATION_INDEX = 4i32; +pub type BROADCAST_SYSTEM_MESSAGE_FLAGS = u32; +pub type BROADCAST_SYSTEM_MESSAGE_INFO = u32; +pub type DESKTOP_ACCESS_FLAGS = u32; +pub type DESKTOP_CONTROL_FLAGS = u32; +pub type USER_OBJECT_INFORMATION_INDEX = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BSMINFO { + pub cbSize: u32, + pub hdesk: HDESK, + pub hwnd: super::super::Foundation::HWND, + pub luid: super::super::Foundation::LUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BSMINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BSMINFO { + fn clone(&self) -> Self { + *self + } +} +pub type HDESK = isize; +pub type HWINSTA = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct USEROBJECTFLAGS { + pub fInherit: super::super::Foundation::BOOL, + pub fReserved: super::super::Foundation::BOOL, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for USEROBJECTFLAGS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for USEROBJECTFLAGS { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DESKTOPENUMPROCA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DESKTOPENUMPROCW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WINSTAENUMPROCA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WINSTAENUMPROCW = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/SubsystemForLinux/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/SubsystemForLinux/mod.rs new file mode 100644 index 000000000..6d3b77c2f --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/SubsystemForLinux/mod.rs @@ -0,0 +1,15 @@ +::windows_targets::link!("api-ms-win-wsl-api-l1-1-0.dll" "system" fn WslConfigureDistribution(distributionname : ::windows_sys::core::PCWSTR, defaultuid : u32, wsldistributionflags : WSL_DISTRIBUTION_FLAGS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-wsl-api-l1-1-0.dll" "system" fn WslGetDistributionConfiguration(distributionname : ::windows_sys::core::PCWSTR, distributionversion : *mut u32, defaultuid : *mut u32, wsldistributionflags : *mut WSL_DISTRIBUTION_FLAGS, defaultenvironmentvariables : *mut *mut ::windows_sys::core::PSTR, defaultenvironmentvariablecount : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-wsl-api-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WslIsDistributionRegistered(distributionname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-wsl-api-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WslLaunch(distributionname : ::windows_sys::core::PCWSTR, command : ::windows_sys::core::PCWSTR, usecurrentworkingdirectory : super::super::Foundation:: BOOL, stdin : super::super::Foundation:: HANDLE, stdout : super::super::Foundation:: HANDLE, stderr : super::super::Foundation:: HANDLE, process : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-wsl-api-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WslLaunchInteractive(distributionname : ::windows_sys::core::PCWSTR, command : ::windows_sys::core::PCWSTR, usecurrentworkingdirectory : super::super::Foundation:: BOOL, exitcode : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-wsl-api-l1-1-0.dll" "system" fn WslRegisterDistribution(distributionname : ::windows_sys::core::PCWSTR, targzfilename : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-wsl-api-l1-1-0.dll" "system" fn WslUnregisterDistribution(distributionname : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +pub const WSL_DISTRIBUTION_FLAGS_APPEND_NT_PATH: WSL_DISTRIBUTION_FLAGS = 2i32; +pub const WSL_DISTRIBUTION_FLAGS_ENABLE_DRIVE_MOUNTING: WSL_DISTRIBUTION_FLAGS = 4i32; +pub const WSL_DISTRIBUTION_FLAGS_ENABLE_INTEROP: WSL_DISTRIBUTION_FLAGS = 1i32; +pub const WSL_DISTRIBUTION_FLAGS_NONE: WSL_DISTRIBUTION_FLAGS = 0i32; +pub type WSL_DISTRIBUTION_FLAGS = i32; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/SystemInformation/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/SystemInformation/mod.rs new file mode 100644 index 000000000..3222c824d --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/SystemInformation/mod.rs @@ -0,0 +1,950 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsHostnameToComputerNameExW(hostname : ::windows_sys::core::PCWSTR, computername : ::windows_sys::core::PWSTR, nsize : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn EnumSystemFirmwareTables(firmwaretableprovidersignature : FIRMWARE_TABLE_PROVIDER, pfirmwaretableenumbuffer : *mut u8, buffersize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetComputerNameExA(nametype : COMPUTER_NAME_FORMAT, lpbuffer : ::windows_sys::core::PSTR, nsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetComputerNameExW(nametype : COMPUTER_NAME_FORMAT, lpbuffer : ::windows_sys::core::PWSTR, nsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFirmwareType(firmwaretype : *mut FIRMWARE_TYPE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-core-sysinfo-l1-2-3.dll" "system" fn GetIntegratedDisplaySize(sizeininches : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLocalTime(lpsystemtime : *mut super::super::Foundation:: SYSTEMTIME) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLogicalProcessorInformation(buffer : *mut SYSTEM_LOGICAL_PROCESSOR_INFORMATION, returnedlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLogicalProcessorInformationEx(relationshiptype : LOGICAL_PROCESSOR_RELATIONSHIP, buffer : *mut SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, returnedlength : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetNativeSystemInfo(lpsysteminfo : *mut SYSTEM_INFO) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-sysinfo-l1-2-3.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetOsManufacturingMode(pbenabled : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-sysinfo-l1-2-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetOsSafeBootMode(flags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPhysicallyInstalledSystemMemory(totalmemoryinkilobytes : *mut u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessorSystemCycleTime(group : u16, buffer : *mut SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION, returnedlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProductInfo(dwosmajorversion : u32, dwosminorversion : u32, dwspmajorversion : u32, dwspminorversion : u32, pdwreturnedproducttype : *mut OS_PRODUCT_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemCpuSetInformation(information : *mut SYSTEM_CPU_SET_INFORMATION, bufferlength : u32, returnedlength : *mut u32, process : super::super::Foundation:: HANDLE, flags : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetSystemDEPPolicy() -> DEP_SYSTEM_POLICY_TYPE); +::windows_targets::link!("kernel32.dll" "system" fn GetSystemDirectoryA(lpbuffer : ::windows_sys::core::PSTR, usize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetSystemDirectoryW(lpbuffer : ::windows_sys::core::PWSTR, usize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetSystemFirmwareTable(firmwaretableprovidersignature : FIRMWARE_TABLE_PROVIDER, firmwaretableid : u32, pfirmwaretablebuffer : *mut u8, buffersize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetSystemInfo(lpsysteminfo : *mut SYSTEM_INFO) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemLeapSecondInformation(enabled : *mut super::super::Foundation:: BOOL, flags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemTime(lpsystemtime : *mut super::super::Foundation:: SYSTEMTIME) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemTimeAdjustment(lptimeadjustment : *mut u32, lptimeincrement : *mut u32, lptimeadjustmentdisabled : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-sysinfo-l1-2-4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemTimeAdjustmentPrecise(lptimeadjustment : *mut u64, lptimeincrement : *mut u64, lptimeadjustmentdisabled : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemTimeAsFileTime(lpsystemtimeasfiletime : *mut super::super::Foundation:: FILETIME) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemTimePreciseAsFileTime(lpsystemtimeasfiletime : *mut super::super::Foundation:: FILETIME) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn GetSystemWindowsDirectoryA(lpbuffer : ::windows_sys::core::PSTR, usize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetSystemWindowsDirectoryW(lpbuffer : ::windows_sys::core::PWSTR, usize : u32) -> u32); +::windows_targets::link!("api-ms-win-core-wow64-l1-1-1.dll" "system" fn GetSystemWow64Directory2A(lpbuffer : ::windows_sys::core::PSTR, usize : u32, imagefilemachinetype : IMAGE_FILE_MACHINE) -> u32); +::windows_targets::link!("api-ms-win-core-wow64-l1-1-1.dll" "system" fn GetSystemWow64Directory2W(lpbuffer : ::windows_sys::core::PWSTR, usize : u32, imagefilemachinetype : IMAGE_FILE_MACHINE) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetSystemWow64DirectoryA(lpbuffer : ::windows_sys::core::PSTR, usize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetSystemWow64DirectoryW(lpbuffer : ::windows_sys::core::PWSTR, usize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetTickCount() -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetTickCount64() -> u64); +::windows_targets::link!("kernel32.dll" "system" fn GetVersion() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVersionExA(lpversioninformation : *mut OSVERSIONINFOA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVersionExW(lpversioninformation : *mut OSVERSIONINFOW) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetWindowsDirectoryA(lpbuffer : ::windows_sys::core::PSTR, usize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetWindowsDirectoryW(lpbuffer : ::windows_sys::core::PWSTR, usize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GlobalMemoryStatus(lpbuffer : *mut MEMORYSTATUS) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GlobalMemoryStatusEx(lpbuffer : *mut MEMORYSTATUSEX) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsUserCetAvailableInEnvironment(usercetenvironment : USER_CET_ENVIRONMENT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsWow64GuestMachineSupported(wowguestmachine : IMAGE_FILE_MACHINE, machineissupported : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ntdll.dll" "system" fn RtlConvertDeviceFamilyInfoToString(puldevicefamilybuffersize : *mut u32, puldeviceformbuffersize : *mut u32, devicefamily : ::windows_sys::core::PWSTR, deviceform : ::windows_sys::core::PWSTR) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlGetDeviceFamilyInfoEnum(pulluapinfo : *mut u64, puldevicefamily : *mut DEVICEFAMILYINFOENUM, puldeviceform : *mut DEVICEFAMILYDEVICEFORM) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlGetProductInfo(osmajorversion : u32, osminorversion : u32, spmajorversion : u32, spminorversion : u32, returnedproducttype : *mut u32) -> super::super::Foundation:: BOOLEAN); +::windows_targets::link!("ntdllk.dll" "system" fn RtlGetSystemGlobalData(dataid : RTL_SYSTEM_GLOBAL_DATA_ID, buffer : *mut ::core::ffi::c_void, size : u32) -> u32); +::windows_targets::link!("ntdll.dll" "system" fn RtlOsDeploymentState(flags : u32) -> OS_DEPLOYEMENT_STATE_VALUES); +::windows_targets::link!("ntdll.dll" "system" fn RtlSwitchedVVI(versioninfo : *const OSVERSIONINFOEXW, typemask : u32, conditionmask : u64) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetComputerNameA(lpcomputername : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetComputerNameEx2W(nametype : COMPUTER_NAME_FORMAT, flags : u32, lpbuffer : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetComputerNameExA(nametype : COMPUTER_NAME_FORMAT, lpbuffer : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetComputerNameExW(nametype : COMPUTER_NAME_FORMAT, lpbuffer : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetComputerNameW(lpcomputername : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetLocalTime(lpsystemtime : *const super::super::Foundation:: SYSTEMTIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSystemTime(lpsystemtime : *const super::super::Foundation:: SYSTEMTIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSystemTimeAdjustment(dwtimeadjustment : u32, btimeadjustmentdisabled : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-sysinfo-l1-2-4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSystemTimeAdjustmentPrecise(dwtimeadjustment : u64, btimeadjustmentdisabled : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn VerSetConditionMask(conditionmask : u64, typemask : VER_FLAGS, condition : u8) -> u64); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VerifyVersionInfoA(lpversioninformation : *mut OSVERSIONINFOEXA, dwtypemask : VER_FLAGS, dwlconditionmask : u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VerifyVersionInfoW(lpversioninformation : *mut OSVERSIONINFOEXW, dwtypemask : VER_FLAGS, dwlconditionmask : u64) -> super::super::Foundation:: BOOL); +pub const ACPI: FIRMWARE_TABLE_PROVIDER = 1094930505u32; +pub const CacheData: PROCESSOR_CACHE_TYPE = 2i32; +pub const CacheInstruction: PROCESSOR_CACHE_TYPE = 1i32; +pub const CacheTrace: PROCESSOR_CACHE_TYPE = 3i32; +pub const CacheUnified: PROCESSOR_CACHE_TYPE = 0i32; +pub const ComputerNameDnsDomain: COMPUTER_NAME_FORMAT = 2i32; +pub const ComputerNameDnsFullyQualified: COMPUTER_NAME_FORMAT = 3i32; +pub const ComputerNameDnsHostname: COMPUTER_NAME_FORMAT = 1i32; +pub const ComputerNameMax: COMPUTER_NAME_FORMAT = 8i32; +pub const ComputerNameNetBIOS: COMPUTER_NAME_FORMAT = 0i32; +pub const ComputerNamePhysicalDnsDomain: COMPUTER_NAME_FORMAT = 6i32; +pub const ComputerNamePhysicalDnsFullyQualified: COMPUTER_NAME_FORMAT = 7i32; +pub const ComputerNamePhysicalDnsHostname: COMPUTER_NAME_FORMAT = 5i32; +pub const ComputerNamePhysicalNetBIOS: COMPUTER_NAME_FORMAT = 4i32; +pub const CpuSetInformation: CPU_SET_INFORMATION_TYPE = 0i32; +pub const DEPPolicyAlwaysOff: DEP_SYSTEM_POLICY_TYPE = 0i32; +pub const DEPPolicyAlwaysOn: DEP_SYSTEM_POLICY_TYPE = 1i32; +pub const DEPPolicyOptIn: DEP_SYSTEM_POLICY_TYPE = 2i32; +pub const DEPPolicyOptOut: DEP_SYSTEM_POLICY_TYPE = 3i32; +pub const DEPTotalPolicyCount: DEP_SYSTEM_POLICY_TYPE = 4i32; +pub const DEVICEFAMILYDEVICEFORM_ALLINONE: DEVICEFAMILYDEVICEFORM = 7u32; +pub const DEVICEFAMILYDEVICEFORM_BANKING: DEVICEFAMILYDEVICEFORM = 14u32; +pub const DEVICEFAMILYDEVICEFORM_BUILDING_AUTOMATION: DEVICEFAMILYDEVICEFORM = 15u32; +pub const DEVICEFAMILYDEVICEFORM_CONVERTIBLE: DEVICEFAMILYDEVICEFORM = 5u32; +pub const DEVICEFAMILYDEVICEFORM_DESKTOP: DEVICEFAMILYDEVICEFORM = 3u32; +pub const DEVICEFAMILYDEVICEFORM_DETACHABLE: DEVICEFAMILYDEVICEFORM = 6u32; +pub const DEVICEFAMILYDEVICEFORM_DIGITAL_SIGNAGE: DEVICEFAMILYDEVICEFORM = 16u32; +pub const DEVICEFAMILYDEVICEFORM_GAMING: DEVICEFAMILYDEVICEFORM = 17u32; +pub const DEVICEFAMILYDEVICEFORM_HMD: DEVICEFAMILYDEVICEFORM = 11u32; +pub const DEVICEFAMILYDEVICEFORM_HOME_AUTOMATION: DEVICEFAMILYDEVICEFORM = 18u32; +pub const DEVICEFAMILYDEVICEFORM_INDUSTRIAL_AUTOMATION: DEVICEFAMILYDEVICEFORM = 19u32; +pub const DEVICEFAMILYDEVICEFORM_INDUSTRY_HANDHELD: DEVICEFAMILYDEVICEFORM = 12u32; +pub const DEVICEFAMILYDEVICEFORM_INDUSTRY_OTHER: DEVICEFAMILYDEVICEFORM = 29u32; +pub const DEVICEFAMILYDEVICEFORM_INDUSTRY_TABLET: DEVICEFAMILYDEVICEFORM = 13u32; +pub const DEVICEFAMILYDEVICEFORM_KIOSK: DEVICEFAMILYDEVICEFORM = 20u32; +pub const DEVICEFAMILYDEVICEFORM_LARGESCREEN: DEVICEFAMILYDEVICEFORM = 10u32; +pub const DEVICEFAMILYDEVICEFORM_MAKER_BOARD: DEVICEFAMILYDEVICEFORM = 21u32; +pub const DEVICEFAMILYDEVICEFORM_MAX: DEVICEFAMILYDEVICEFORM = 45u32; +pub const DEVICEFAMILYDEVICEFORM_MEDICAL: DEVICEFAMILYDEVICEFORM = 22u32; +pub const DEVICEFAMILYDEVICEFORM_NETWORKING: DEVICEFAMILYDEVICEFORM = 23u32; +pub const DEVICEFAMILYDEVICEFORM_NOTEBOOK: DEVICEFAMILYDEVICEFORM = 4u32; +pub const DEVICEFAMILYDEVICEFORM_PHONE: DEVICEFAMILYDEVICEFORM = 1u32; +pub const DEVICEFAMILYDEVICEFORM_POINT_OF_SERVICE: DEVICEFAMILYDEVICEFORM = 24u32; +pub const DEVICEFAMILYDEVICEFORM_PRINTING: DEVICEFAMILYDEVICEFORM = 25u32; +pub const DEVICEFAMILYDEVICEFORM_PUCK: DEVICEFAMILYDEVICEFORM = 9u32; +pub const DEVICEFAMILYDEVICEFORM_STICKPC: DEVICEFAMILYDEVICEFORM = 8u32; +pub const DEVICEFAMILYDEVICEFORM_TABLET: DEVICEFAMILYDEVICEFORM = 2u32; +pub const DEVICEFAMILYDEVICEFORM_THIN_CLIENT: DEVICEFAMILYDEVICEFORM = 26u32; +pub const DEVICEFAMILYDEVICEFORM_TOY: DEVICEFAMILYDEVICEFORM = 27u32; +pub const DEVICEFAMILYDEVICEFORM_UNKNOWN: DEVICEFAMILYDEVICEFORM = 0u32; +pub const DEVICEFAMILYDEVICEFORM_VENDING: DEVICEFAMILYDEVICEFORM = 28u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_ONE: DEVICEFAMILYDEVICEFORM = 30u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_ONE_S: DEVICEFAMILYDEVICEFORM = 31u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_ONE_X: DEVICEFAMILYDEVICEFORM = 32u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_ONE_X_DEVKIT: DEVICEFAMILYDEVICEFORM = 33u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_01: DEVICEFAMILYDEVICEFORM = 37u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_02: DEVICEFAMILYDEVICEFORM = 38u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_03: DEVICEFAMILYDEVICEFORM = 39u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_04: DEVICEFAMILYDEVICEFORM = 40u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_05: DEVICEFAMILYDEVICEFORM = 41u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_06: DEVICEFAMILYDEVICEFORM = 42u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_07: DEVICEFAMILYDEVICEFORM = 43u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_08: DEVICEFAMILYDEVICEFORM = 44u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_09: DEVICEFAMILYDEVICEFORM = 45u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_SERIES_S: DEVICEFAMILYDEVICEFORM = 36u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_SERIES_X: DEVICEFAMILYDEVICEFORM = 34u32; +pub const DEVICEFAMILYDEVICEFORM_XBOX_SERIES_X_DEVKIT: DEVICEFAMILYDEVICEFORM = 35u32; +pub const DEVICEFAMILYINFOENUM_7067329: DEVICEFAMILYINFOENUM = 15u32; +pub const DEVICEFAMILYINFOENUM_8828080: DEVICEFAMILYINFOENUM = 14u32; +pub const DEVICEFAMILYINFOENUM_DESKTOP: DEVICEFAMILYINFOENUM = 3u32; +pub const DEVICEFAMILYINFOENUM_HOLOGRAPHIC: DEVICEFAMILYINFOENUM = 10u32; +pub const DEVICEFAMILYINFOENUM_IOT: DEVICEFAMILYINFOENUM = 7u32; +pub const DEVICEFAMILYINFOENUM_IOT_HEADLESS: DEVICEFAMILYINFOENUM = 8u32; +pub const DEVICEFAMILYINFOENUM_MAX: DEVICEFAMILYINFOENUM = 17u32; +pub const DEVICEFAMILYINFOENUM_MOBILE: DEVICEFAMILYINFOENUM = 4u32; +pub const DEVICEFAMILYINFOENUM_SERVER: DEVICEFAMILYINFOENUM = 9u32; +pub const DEVICEFAMILYINFOENUM_SERVER_NANO: DEVICEFAMILYINFOENUM = 13u32; +pub const DEVICEFAMILYINFOENUM_TEAM: DEVICEFAMILYINFOENUM = 6u32; +pub const DEVICEFAMILYINFOENUM_UAP: DEVICEFAMILYINFOENUM = 0u32; +pub const DEVICEFAMILYINFOENUM_WINDOWS_8X: DEVICEFAMILYINFOENUM = 1u32; +pub const DEVICEFAMILYINFOENUM_WINDOWS_CORE: DEVICEFAMILYINFOENUM = 16u32; +pub const DEVICEFAMILYINFOENUM_WINDOWS_CORE_HEADLESS: DEVICEFAMILYINFOENUM = 17u32; +pub const DEVICEFAMILYINFOENUM_WINDOWS_PHONE_8X: DEVICEFAMILYINFOENUM = 2u32; +pub const DEVICEFAMILYINFOENUM_XBOX: DEVICEFAMILYINFOENUM = 5u32; +pub const DEVICEFAMILYINFOENUM_XBOXERA: DEVICEFAMILYINFOENUM = 12u32; +pub const DEVICEFAMILYINFOENUM_XBOXSRA: DEVICEFAMILYINFOENUM = 11u32; +pub const FIRM: FIRMWARE_TABLE_PROVIDER = 1179210317u32; +pub const FirmwareTypeBios: FIRMWARE_TYPE = 1i32; +pub const FirmwareTypeMax: FIRMWARE_TYPE = 3i32; +pub const FirmwareTypeUefi: FIRMWARE_TYPE = 2i32; +pub const FirmwareTypeUnknown: FIRMWARE_TYPE = 0i32; +pub const GlobalDataIdConsoleSharedDataFlags: RTL_SYSTEM_GLOBAL_DATA_ID = 14i32; +pub const GlobalDataIdCyclesPerYield: RTL_SYSTEM_GLOBAL_DATA_ID = 11i32; +pub const GlobalDataIdImageNumberHigh: RTL_SYSTEM_GLOBAL_DATA_ID = 5i32; +pub const GlobalDataIdImageNumberLow: RTL_SYSTEM_GLOBAL_DATA_ID = 4i32; +pub const GlobalDataIdInterruptTime: RTL_SYSTEM_GLOBAL_DATA_ID = 2i32; +pub const GlobalDataIdKdDebuggerEnabled: RTL_SYSTEM_GLOBAL_DATA_ID = 10i32; +pub const GlobalDataIdLastSystemRITEventTickCount: RTL_SYSTEM_GLOBAL_DATA_ID = 13i32; +pub const GlobalDataIdNtMajorVersion: RTL_SYSTEM_GLOBAL_DATA_ID = 7i32; +pub const GlobalDataIdNtMinorVersion: RTL_SYSTEM_GLOBAL_DATA_ID = 8i32; +pub const GlobalDataIdNtSystemRootDrive: RTL_SYSTEM_GLOBAL_DATA_ID = 15i32; +pub const GlobalDataIdQpcBias: RTL_SYSTEM_GLOBAL_DATA_ID = 19i32; +pub const GlobalDataIdQpcBypassEnabled: RTL_SYSTEM_GLOBAL_DATA_ID = 17i32; +pub const GlobalDataIdQpcData: RTL_SYSTEM_GLOBAL_DATA_ID = 18i32; +pub const GlobalDataIdQpcShift: RTL_SYSTEM_GLOBAL_DATA_ID = 16i32; +pub const GlobalDataIdRngSeedVersion: RTL_SYSTEM_GLOBAL_DATA_ID = 1i32; +pub const GlobalDataIdSafeBootMode: RTL_SYSTEM_GLOBAL_DATA_ID = 12i32; +pub const GlobalDataIdSystemExpirationDate: RTL_SYSTEM_GLOBAL_DATA_ID = 9i32; +pub const GlobalDataIdTimeZoneBias: RTL_SYSTEM_GLOBAL_DATA_ID = 3i32; +pub const GlobalDataIdTimeZoneId: RTL_SYSTEM_GLOBAL_DATA_ID = 6i32; +pub const GlobalDataIdUnknown: RTL_SYSTEM_GLOBAL_DATA_ID = 0i32; +pub const IMAGE_FILE_MACHINE_ALPHA: IMAGE_FILE_MACHINE = 388u16; +pub const IMAGE_FILE_MACHINE_ALPHA64: IMAGE_FILE_MACHINE = 644u16; +pub const IMAGE_FILE_MACHINE_AM33: IMAGE_FILE_MACHINE = 467u16; +pub const IMAGE_FILE_MACHINE_AMD64: IMAGE_FILE_MACHINE = 34404u16; +pub const IMAGE_FILE_MACHINE_ARM: IMAGE_FILE_MACHINE = 448u16; +pub const IMAGE_FILE_MACHINE_ARM64: IMAGE_FILE_MACHINE = 43620u16; +pub const IMAGE_FILE_MACHINE_ARMNT: IMAGE_FILE_MACHINE = 452u16; +pub const IMAGE_FILE_MACHINE_AXP64: IMAGE_FILE_MACHINE = 644u16; +pub const IMAGE_FILE_MACHINE_CEE: IMAGE_FILE_MACHINE = 49390u16; +pub const IMAGE_FILE_MACHINE_CEF: IMAGE_FILE_MACHINE = 3311u16; +pub const IMAGE_FILE_MACHINE_EBC: IMAGE_FILE_MACHINE = 3772u16; +pub const IMAGE_FILE_MACHINE_I386: IMAGE_FILE_MACHINE = 332u16; +pub const IMAGE_FILE_MACHINE_IA64: IMAGE_FILE_MACHINE = 512u16; +pub const IMAGE_FILE_MACHINE_M32R: IMAGE_FILE_MACHINE = 36929u16; +pub const IMAGE_FILE_MACHINE_MIPS16: IMAGE_FILE_MACHINE = 614u16; +pub const IMAGE_FILE_MACHINE_MIPSFPU: IMAGE_FILE_MACHINE = 870u16; +pub const IMAGE_FILE_MACHINE_MIPSFPU16: IMAGE_FILE_MACHINE = 1126u16; +pub const IMAGE_FILE_MACHINE_POWERPC: IMAGE_FILE_MACHINE = 496u16; +pub const IMAGE_FILE_MACHINE_POWERPCFP: IMAGE_FILE_MACHINE = 497u16; +pub const IMAGE_FILE_MACHINE_R10000: IMAGE_FILE_MACHINE = 360u16; +pub const IMAGE_FILE_MACHINE_R3000: IMAGE_FILE_MACHINE = 354u16; +pub const IMAGE_FILE_MACHINE_R4000: IMAGE_FILE_MACHINE = 358u16; +pub const IMAGE_FILE_MACHINE_SH3: IMAGE_FILE_MACHINE = 418u16; +pub const IMAGE_FILE_MACHINE_SH3DSP: IMAGE_FILE_MACHINE = 419u16; +pub const IMAGE_FILE_MACHINE_SH3E: IMAGE_FILE_MACHINE = 420u16; +pub const IMAGE_FILE_MACHINE_SH4: IMAGE_FILE_MACHINE = 422u16; +pub const IMAGE_FILE_MACHINE_SH5: IMAGE_FILE_MACHINE = 424u16; +pub const IMAGE_FILE_MACHINE_TARGET_HOST: IMAGE_FILE_MACHINE = 1u16; +pub const IMAGE_FILE_MACHINE_THUMB: IMAGE_FILE_MACHINE = 450u16; +pub const IMAGE_FILE_MACHINE_TRICORE: IMAGE_FILE_MACHINE = 1312u16; +pub const IMAGE_FILE_MACHINE_UNKNOWN: IMAGE_FILE_MACHINE = 0u16; +pub const IMAGE_FILE_MACHINE_WCEMIPSV2: IMAGE_FILE_MACHINE = 361u16; +pub const NTDDI_LONGHORN: u32 = 100663296u32; +pub const NTDDI_VERSION: u32 = 167772172u32; +pub const NTDDI_VISTA: u32 = 100663296u32; +pub const NTDDI_VISTASP1: u32 = 100663552u32; +pub const NTDDI_VISTASP2: u32 = 100663808u32; +pub const NTDDI_VISTASP3: u32 = 100664064u32; +pub const NTDDI_VISTASP4: u32 = 100664320u32; +pub const NTDDI_WIN10: u32 = 167772160u32; +pub const NTDDI_WIN10_19H1: u32 = 167772167u32; +pub const NTDDI_WIN10_CO: u32 = 167772171u32; +pub const NTDDI_WIN10_FE: u32 = 167772170u32; +pub const NTDDI_WIN10_MN: u32 = 167772169u32; +pub const NTDDI_WIN10_NI: u32 = 167772172u32; +pub const NTDDI_WIN10_RS1: u32 = 167772162u32; +pub const NTDDI_WIN10_RS2: u32 = 167772163u32; +pub const NTDDI_WIN10_RS3: u32 = 167772164u32; +pub const NTDDI_WIN10_RS4: u32 = 167772165u32; +pub const NTDDI_WIN10_RS5: u32 = 167772166u32; +pub const NTDDI_WIN10_TH2: u32 = 167772161u32; +pub const NTDDI_WIN10_VB: u32 = 167772168u32; +pub const NTDDI_WIN2K: u32 = 83886080u32; +pub const NTDDI_WIN2KSP1: u32 = 83886336u32; +pub const NTDDI_WIN2KSP2: u32 = 83886592u32; +pub const NTDDI_WIN2KSP3: u32 = 83886848u32; +pub const NTDDI_WIN2KSP4: u32 = 83887104u32; +pub const NTDDI_WIN4: u32 = 67108864u32; +pub const NTDDI_WIN6: u32 = 100663296u32; +pub const NTDDI_WIN6SP1: u32 = 100663552u32; +pub const NTDDI_WIN6SP2: u32 = 100663808u32; +pub const NTDDI_WIN6SP3: u32 = 100664064u32; +pub const NTDDI_WIN6SP4: u32 = 100664320u32; +pub const NTDDI_WIN7: u32 = 100728832u32; +pub const NTDDI_WIN8: u32 = 100794368u32; +pub const NTDDI_WINBLUE: u32 = 100859904u32; +pub const NTDDI_WINTHRESHOLD: u32 = 167772160u32; +pub const NTDDI_WINXP: u32 = 83951616u32; +pub const NTDDI_WINXPSP1: u32 = 83951872u32; +pub const NTDDI_WINXPSP2: u32 = 83952128u32; +pub const NTDDI_WINXPSP3: u32 = 83952384u32; +pub const NTDDI_WINXPSP4: u32 = 83952640u32; +pub const NTDDI_WS03: u32 = 84017152u32; +pub const NTDDI_WS03SP1: u32 = 84017408u32; +pub const NTDDI_WS03SP2: u32 = 84017664u32; +pub const NTDDI_WS03SP3: u32 = 84017920u32; +pub const NTDDI_WS03SP4: u32 = 84018176u32; +pub const NTDDI_WS08: u32 = 100663552u32; +pub const NTDDI_WS08SP2: u32 = 100663808u32; +pub const NTDDI_WS08SP3: u32 = 100664064u32; +pub const NTDDI_WS08SP4: u32 = 100664320u32; +pub const OSVERSION_MASK: u32 = 4294901760u32; +pub const OS_DEPLOYMENT_COMPACT: OS_DEPLOYEMENT_STATE_VALUES = 2i32; +pub const OS_DEPLOYMENT_STANDARD: OS_DEPLOYEMENT_STATE_VALUES = 1i32; +pub const PROCESSOR_ARCHITECTURE_ALPHA: PROCESSOR_ARCHITECTURE = 2u16; +pub const PROCESSOR_ARCHITECTURE_ALPHA64: PROCESSOR_ARCHITECTURE = 7u16; +pub const PROCESSOR_ARCHITECTURE_AMD64: PROCESSOR_ARCHITECTURE = 9u16; +pub const PROCESSOR_ARCHITECTURE_ARM: PROCESSOR_ARCHITECTURE = 5u16; +pub const PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64: PROCESSOR_ARCHITECTURE = 13u16; +pub const PROCESSOR_ARCHITECTURE_ARM64: PROCESSOR_ARCHITECTURE = 12u16; +pub const PROCESSOR_ARCHITECTURE_IA32_ON_ARM64: PROCESSOR_ARCHITECTURE = 14u16; +pub const PROCESSOR_ARCHITECTURE_IA32_ON_WIN64: PROCESSOR_ARCHITECTURE = 10u16; +pub const PROCESSOR_ARCHITECTURE_IA64: PROCESSOR_ARCHITECTURE = 6u16; +pub const PROCESSOR_ARCHITECTURE_INTEL: PROCESSOR_ARCHITECTURE = 0u16; +pub const PROCESSOR_ARCHITECTURE_MIPS: PROCESSOR_ARCHITECTURE = 1u16; +pub const PROCESSOR_ARCHITECTURE_MSIL: PROCESSOR_ARCHITECTURE = 8u16; +pub const PROCESSOR_ARCHITECTURE_NEUTRAL: PROCESSOR_ARCHITECTURE = 11u16; +pub const PROCESSOR_ARCHITECTURE_PPC: PROCESSOR_ARCHITECTURE = 3u16; +pub const PROCESSOR_ARCHITECTURE_SHX: PROCESSOR_ARCHITECTURE = 4u16; +pub const PROCESSOR_ARCHITECTURE_UNKNOWN: PROCESSOR_ARCHITECTURE = 65535u16; +pub const PRODUCT_BUSINESS: OS_PRODUCT_TYPE = 6u32; +pub const PRODUCT_BUSINESS_N: OS_PRODUCT_TYPE = 16u32; +pub const PRODUCT_CLUSTER_SERVER: OS_PRODUCT_TYPE = 18u32; +pub const PRODUCT_CLUSTER_SERVER_V: OS_PRODUCT_TYPE = 64u32; +pub const PRODUCT_CORE: OS_PRODUCT_TYPE = 101u32; +pub const PRODUCT_CORE_COUNTRYSPECIFIC: OS_PRODUCT_TYPE = 99u32; +pub const PRODUCT_CORE_N: OS_PRODUCT_TYPE = 98u32; +pub const PRODUCT_CORE_SINGLELANGUAGE: OS_PRODUCT_TYPE = 100u32; +pub const PRODUCT_DATACENTER_A_SERVER_CORE: OS_PRODUCT_TYPE = 145u32; +pub const PRODUCT_DATACENTER_EVALUATION_SERVER: OS_PRODUCT_TYPE = 80u32; +pub const PRODUCT_DATACENTER_SERVER: OS_PRODUCT_TYPE = 8u32; +pub const PRODUCT_DATACENTER_SERVER_CORE: OS_PRODUCT_TYPE = 12u32; +pub const PRODUCT_DATACENTER_SERVER_CORE_V: OS_PRODUCT_TYPE = 39u32; +pub const PRODUCT_DATACENTER_SERVER_V: OS_PRODUCT_TYPE = 37u32; +pub const PRODUCT_EDUCATION: OS_PRODUCT_TYPE = 121u32; +pub const PRODUCT_EDUCATION_N: OS_PRODUCT_TYPE = 122u32; +pub const PRODUCT_ENTERPRISE: OS_PRODUCT_TYPE = 4u32; +pub const PRODUCT_ENTERPRISE_E: OS_PRODUCT_TYPE = 70u32; +pub const PRODUCT_ENTERPRISE_EVALUATION: OS_PRODUCT_TYPE = 72u32; +pub const PRODUCT_ENTERPRISE_N: OS_PRODUCT_TYPE = 27u32; +pub const PRODUCT_ENTERPRISE_N_EVALUATION: OS_PRODUCT_TYPE = 84u32; +pub const PRODUCT_ENTERPRISE_S: OS_PRODUCT_TYPE = 125u32; +pub const PRODUCT_ENTERPRISE_SERVER: OS_PRODUCT_TYPE = 10u32; +pub const PRODUCT_ENTERPRISE_SERVER_CORE: OS_PRODUCT_TYPE = 14u32; +pub const PRODUCT_ENTERPRISE_SERVER_CORE_V: OS_PRODUCT_TYPE = 41u32; +pub const PRODUCT_ENTERPRISE_SERVER_IA64: OS_PRODUCT_TYPE = 15u32; +pub const PRODUCT_ENTERPRISE_SERVER_V: OS_PRODUCT_TYPE = 38u32; +pub const PRODUCT_ENTERPRISE_S_EVALUATION: OS_PRODUCT_TYPE = 129u32; +pub const PRODUCT_ENTERPRISE_S_N: OS_PRODUCT_TYPE = 126u32; +pub const PRODUCT_ENTERPRISE_S_N_EVALUATION: OS_PRODUCT_TYPE = 130u32; +pub const PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL: OS_PRODUCT_TYPE = 60u32; +pub const PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC: OS_PRODUCT_TYPE = 62u32; +pub const PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT: OS_PRODUCT_TYPE = 59u32; +pub const PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC: OS_PRODUCT_TYPE = 61u32; +pub const PRODUCT_HOME_BASIC: OS_PRODUCT_TYPE = 2u32; +pub const PRODUCT_HOME_BASIC_E: OS_PRODUCT_TYPE = 67u32; +pub const PRODUCT_HOME_BASIC_N: OS_PRODUCT_TYPE = 5u32; +pub const PRODUCT_HOME_PREMIUM: OS_PRODUCT_TYPE = 3u32; +pub const PRODUCT_HOME_PREMIUM_E: OS_PRODUCT_TYPE = 68u32; +pub const PRODUCT_HOME_PREMIUM_N: OS_PRODUCT_TYPE = 26u32; +pub const PRODUCT_HOME_PREMIUM_SERVER: OS_PRODUCT_TYPE = 34u32; +pub const PRODUCT_HOME_SERVER: OS_PRODUCT_TYPE = 19u32; +pub const PRODUCT_HYPERV: OS_PRODUCT_TYPE = 42u32; +pub const PRODUCT_IOTUAP: OS_PRODUCT_TYPE = 123u32; +pub const PRODUCT_IOTUAPCOMMERCIAL: OS_PRODUCT_TYPE = 131u32; +pub const PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT: OS_PRODUCT_TYPE = 30u32; +pub const PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING: OS_PRODUCT_TYPE = 32u32; +pub const PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY: OS_PRODUCT_TYPE = 31u32; +pub const PRODUCT_MOBILE_CORE: OS_PRODUCT_TYPE = 104u32; +pub const PRODUCT_MOBILE_ENTERPRISE: OS_PRODUCT_TYPE = 133u32; +pub const PRODUCT_MULTIPOINT_PREMIUM_SERVER: OS_PRODUCT_TYPE = 77u32; +pub const PRODUCT_MULTIPOINT_STANDARD_SERVER: OS_PRODUCT_TYPE = 76u32; +pub const PRODUCT_PROFESSIONAL: OS_PRODUCT_TYPE = 48u32; +pub const PRODUCT_PROFESSIONAL_E: OS_PRODUCT_TYPE = 69u32; +pub const PRODUCT_PROFESSIONAL_N: OS_PRODUCT_TYPE = 49u32; +pub const PRODUCT_PROFESSIONAL_WMC: OS_PRODUCT_TYPE = 103u32; +pub const PRODUCT_PRO_WORKSTATION: OS_PRODUCT_TYPE = 161u32; +pub const PRODUCT_PRO_WORKSTATION_N: OS_PRODUCT_TYPE = 162u32; +pub const PRODUCT_SB_SOLUTION_SERVER: OS_PRODUCT_TYPE = 50u32; +pub const PRODUCT_SB_SOLUTION_SERVER_EM: OS_PRODUCT_TYPE = 54u32; +pub const PRODUCT_SERVER_FOR_SB_SOLUTIONS: OS_PRODUCT_TYPE = 51u32; +pub const PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM: OS_PRODUCT_TYPE = 55u32; +pub const PRODUCT_SERVER_FOR_SMALLBUSINESS: OS_PRODUCT_TYPE = 24u32; +pub const PRODUCT_SERVER_FOR_SMALLBUSINESS_V: OS_PRODUCT_TYPE = 35u32; +pub const PRODUCT_SERVER_FOUNDATION: OS_PRODUCT_TYPE = 33u32; +pub const PRODUCT_SMALLBUSINESS_SERVER: OS_PRODUCT_TYPE = 9u32; +pub const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM: OS_PRODUCT_TYPE = 25u32; +pub const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE: OS_PRODUCT_TYPE = 63u32; +pub const PRODUCT_SOLUTION_EMBEDDEDSERVER: OS_PRODUCT_TYPE = 56u32; +pub const PRODUCT_STANDARD_A_SERVER_CORE: OS_PRODUCT_TYPE = 146u32; +pub const PRODUCT_STANDARD_EVALUATION_SERVER: OS_PRODUCT_TYPE = 79u32; +pub const PRODUCT_STANDARD_SERVER: OS_PRODUCT_TYPE = 7u32; +pub const PRODUCT_STANDARD_SERVER_CORE_: OS_PRODUCT_TYPE = 13u32; +pub const PRODUCT_STANDARD_SERVER_CORE_V: OS_PRODUCT_TYPE = 40u32; +pub const PRODUCT_STANDARD_SERVER_SOLUTIONS: OS_PRODUCT_TYPE = 52u32; +pub const PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE: OS_PRODUCT_TYPE = 53u32; +pub const PRODUCT_STANDARD_SERVER_V: OS_PRODUCT_TYPE = 36u32; +pub const PRODUCT_STARTER: OS_PRODUCT_TYPE = 11u32; +pub const PRODUCT_STARTER_E: OS_PRODUCT_TYPE = 66u32; +pub const PRODUCT_STARTER_N: OS_PRODUCT_TYPE = 47u32; +pub const PRODUCT_STORAGE_ENTERPRISE_SERVER: OS_PRODUCT_TYPE = 23u32; +pub const PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE: OS_PRODUCT_TYPE = 46u32; +pub const PRODUCT_STORAGE_EXPRESS_SERVER: OS_PRODUCT_TYPE = 20u32; +pub const PRODUCT_STORAGE_EXPRESS_SERVER_CORE: OS_PRODUCT_TYPE = 43u32; +pub const PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER: OS_PRODUCT_TYPE = 96u32; +pub const PRODUCT_STORAGE_STANDARD_SERVER: OS_PRODUCT_TYPE = 21u32; +pub const PRODUCT_STORAGE_STANDARD_SERVER_CORE: OS_PRODUCT_TYPE = 44u32; +pub const PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER: OS_PRODUCT_TYPE = 95u32; +pub const PRODUCT_STORAGE_WORKGROUP_SERVER: OS_PRODUCT_TYPE = 22u32; +pub const PRODUCT_STORAGE_WORKGROUP_SERVER_CORE: OS_PRODUCT_TYPE = 45u32; +pub const PRODUCT_ULTIMATE: OS_PRODUCT_TYPE = 1u32; +pub const PRODUCT_ULTIMATE_E: OS_PRODUCT_TYPE = 71u32; +pub const PRODUCT_ULTIMATE_N: OS_PRODUCT_TYPE = 28u32; +pub const PRODUCT_UNDEFINED: OS_PRODUCT_TYPE = 0u32; +pub const PRODUCT_WEB_SERVER: OS_PRODUCT_TYPE = 17u32; +pub const PRODUCT_WEB_SERVER_CORE: OS_PRODUCT_TYPE = 29u32; +pub const RSMB: FIRMWARE_TABLE_PROVIDER = 1381190978u32; +pub const RelationAll: LOGICAL_PROCESSOR_RELATIONSHIP = 65535i32; +pub const RelationCache: LOGICAL_PROCESSOR_RELATIONSHIP = 2i32; +pub const RelationGroup: LOGICAL_PROCESSOR_RELATIONSHIP = 4i32; +pub const RelationNumaNode: LOGICAL_PROCESSOR_RELATIONSHIP = 1i32; +pub const RelationNumaNodeEx: LOGICAL_PROCESSOR_RELATIONSHIP = 6i32; +pub const RelationProcessorCore: LOGICAL_PROCESSOR_RELATIONSHIP = 0i32; +pub const RelationProcessorDie: LOGICAL_PROCESSOR_RELATIONSHIP = 5i32; +pub const RelationProcessorModule: LOGICAL_PROCESSOR_RELATIONSHIP = 7i32; +pub const RelationProcessorPackage: LOGICAL_PROCESSOR_RELATIONSHIP = 3i32; +pub const SCEX2_ALT_NETBIOS_NAME: u32 = 1u32; +pub const SPVERSION_MASK: u32 = 65280u32; +pub const SUBVERSION_MASK: u32 = 255u32; +pub const SYSTEM_CPU_SET_INFORMATION_ALLOCATED: u32 = 2u32; +pub const SYSTEM_CPU_SET_INFORMATION_ALLOCATED_TO_TARGET_PROCESS: u32 = 4u32; +pub const SYSTEM_CPU_SET_INFORMATION_PARKED: u32 = 1u32; +pub const SYSTEM_CPU_SET_INFORMATION_REALTIME: u32 = 8u32; +pub const USER_CET_ENVIRONMENT_SGX2_ENCLAVE: USER_CET_ENVIRONMENT = 2u32; +pub const USER_CET_ENVIRONMENT_VBS_BASIC_ENCLAVE: USER_CET_ENVIRONMENT = 17u32; +pub const USER_CET_ENVIRONMENT_VBS_ENCLAVE: USER_CET_ENVIRONMENT = 16u32; +pub const USER_CET_ENVIRONMENT_WIN32_PROCESS: USER_CET_ENVIRONMENT = 0u32; +pub const VER_BUILDNUMBER: VER_FLAGS = 4u32; +pub const VER_MAJORVERSION: VER_FLAGS = 2u32; +pub const VER_MINORVERSION: VER_FLAGS = 1u32; +pub const VER_PLATFORMID: VER_FLAGS = 8u32; +pub const VER_PRODUCT_TYPE: VER_FLAGS = 128u32; +pub const VER_SERVICEPACKMAJOR: VER_FLAGS = 32u32; +pub const VER_SERVICEPACKMINOR: VER_FLAGS = 16u32; +pub const VER_SUITENAME: VER_FLAGS = 64u32; +pub const WDK_NTDDI_VERSION: u32 = 167772172u32; +pub const _WIN32_IE_IE100: u32 = 2560u32; +pub const _WIN32_IE_IE110: u32 = 2560u32; +pub const _WIN32_IE_IE20: u32 = 512u32; +pub const _WIN32_IE_IE30: u32 = 768u32; +pub const _WIN32_IE_IE302: u32 = 770u32; +pub const _WIN32_IE_IE40: u32 = 1024u32; +pub const _WIN32_IE_IE401: u32 = 1025u32; +pub const _WIN32_IE_IE50: u32 = 1280u32; +pub const _WIN32_IE_IE501: u32 = 1281u32; +pub const _WIN32_IE_IE55: u32 = 1360u32; +pub const _WIN32_IE_IE60: u32 = 1536u32; +pub const _WIN32_IE_IE60SP1: u32 = 1537u32; +pub const _WIN32_IE_IE60SP2: u32 = 1539u32; +pub const _WIN32_IE_IE70: u32 = 1792u32; +pub const _WIN32_IE_IE80: u32 = 2048u32; +pub const _WIN32_IE_IE90: u32 = 2304u32; +pub const _WIN32_IE_LONGHORN: u32 = 1792u32; +pub const _WIN32_IE_NT4: u32 = 512u32; +pub const _WIN32_IE_NT4SP1: u32 = 512u32; +pub const _WIN32_IE_NT4SP2: u32 = 512u32; +pub const _WIN32_IE_NT4SP3: u32 = 770u32; +pub const _WIN32_IE_NT4SP4: u32 = 1025u32; +pub const _WIN32_IE_NT4SP5: u32 = 1025u32; +pub const _WIN32_IE_NT4SP6: u32 = 1280u32; +pub const _WIN32_IE_WIN10: u32 = 2560u32; +pub const _WIN32_IE_WIN2K: u32 = 1281u32; +pub const _WIN32_IE_WIN2KSP1: u32 = 1281u32; +pub const _WIN32_IE_WIN2KSP2: u32 = 1281u32; +pub const _WIN32_IE_WIN2KSP3: u32 = 1281u32; +pub const _WIN32_IE_WIN2KSP4: u32 = 1281u32; +pub const _WIN32_IE_WIN6: u32 = 1792u32; +pub const _WIN32_IE_WIN7: u32 = 2048u32; +pub const _WIN32_IE_WIN8: u32 = 2560u32; +pub const _WIN32_IE_WIN98: u32 = 1025u32; +pub const _WIN32_IE_WIN98SE: u32 = 1280u32; +pub const _WIN32_IE_WINBLUE: u32 = 2560u32; +pub const _WIN32_IE_WINME: u32 = 1360u32; +pub const _WIN32_IE_WINTHRESHOLD: u32 = 2560u32; +pub const _WIN32_IE_WS03: u32 = 1538u32; +pub const _WIN32_IE_WS03SP1: u32 = 1539u32; +pub const _WIN32_IE_XP: u32 = 1536u32; +pub const _WIN32_IE_XPSP1: u32 = 1537u32; +pub const _WIN32_IE_XPSP2: u32 = 1539u32; +pub const _WIN32_WINNT_LONGHORN: u32 = 1536u32; +pub const _WIN32_WINNT_NT4: u32 = 1024u32; +pub const _WIN32_WINNT_VISTA: u32 = 1536u32; +pub const _WIN32_WINNT_WIN10: u32 = 2560u32; +pub const _WIN32_WINNT_WIN2K: u32 = 1280u32; +pub const _WIN32_WINNT_WIN6: u32 = 1536u32; +pub const _WIN32_WINNT_WIN7: u32 = 1537u32; +pub const _WIN32_WINNT_WIN8: u32 = 1538u32; +pub const _WIN32_WINNT_WINBLUE: u32 = 1539u32; +pub const _WIN32_WINNT_WINTHRESHOLD: u32 = 2560u32; +pub const _WIN32_WINNT_WINXP: u32 = 1281u32; +pub const _WIN32_WINNT_WS03: u32 = 1282u32; +pub const _WIN32_WINNT_WS08: u32 = 1536u32; +pub type COMPUTER_NAME_FORMAT = i32; +pub type CPU_SET_INFORMATION_TYPE = i32; +pub type DEP_SYSTEM_POLICY_TYPE = i32; +pub type DEVICEFAMILYDEVICEFORM = u32; +pub type DEVICEFAMILYINFOENUM = u32; +pub type FIRMWARE_TABLE_PROVIDER = u32; +pub type FIRMWARE_TYPE = i32; +pub type IMAGE_FILE_MACHINE = u16; +pub type LOGICAL_PROCESSOR_RELATIONSHIP = i32; +pub type OS_DEPLOYEMENT_STATE_VALUES = i32; +pub type OS_PRODUCT_TYPE = u32; +pub type PROCESSOR_ARCHITECTURE = u16; +pub type PROCESSOR_CACHE_TYPE = i32; +pub type RTL_SYSTEM_GLOBAL_DATA_ID = i32; +pub type USER_CET_ENVIRONMENT = u32; +pub type VER_FLAGS = u32; +#[repr(C)] +pub struct CACHE_DESCRIPTOR { + pub Level: u8, + pub Associativity: u8, + pub LineSize: u16, + pub Size: u32, + pub Type: PROCESSOR_CACHE_TYPE, +} +impl ::core::marker::Copy for CACHE_DESCRIPTOR {} +impl ::core::clone::Clone for CACHE_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CACHE_RELATIONSHIP { + pub Level: u8, + pub Associativity: u8, + pub LineSize: u16, + pub CacheSize: u32, + pub Type: PROCESSOR_CACHE_TYPE, + pub Reserved: [u8; 18], + pub GroupCount: u16, + pub Anonymous: CACHE_RELATIONSHIP_0, +} +impl ::core::marker::Copy for CACHE_RELATIONSHIP {} +impl ::core::clone::Clone for CACHE_RELATIONSHIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union CACHE_RELATIONSHIP_0 { + pub GroupMask: GROUP_AFFINITY, + pub GroupMasks: [GROUP_AFFINITY; 1], +} +impl ::core::marker::Copy for CACHE_RELATIONSHIP_0 {} +impl ::core::clone::Clone for CACHE_RELATIONSHIP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_AFFINITY { + pub Mask: usize, + pub Group: u16, + pub Reserved: [u16; 3], +} +impl ::core::marker::Copy for GROUP_AFFINITY {} +impl ::core::clone::Clone for GROUP_AFFINITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GROUP_RELATIONSHIP { + pub MaximumGroupCount: u16, + pub ActiveGroupCount: u16, + pub Reserved: [u8; 20], + pub GroupInfo: [PROCESSOR_GROUP_INFO; 1], +} +impl ::core::marker::Copy for GROUP_RELATIONSHIP {} +impl ::core::clone::Clone for GROUP_RELATIONSHIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MEMORYSTATUS { + pub dwLength: u32, + pub dwMemoryLoad: u32, + pub dwTotalPhys: usize, + pub dwAvailPhys: usize, + pub dwTotalPageFile: usize, + pub dwAvailPageFile: usize, + pub dwTotalVirtual: usize, + pub dwAvailVirtual: usize, +} +impl ::core::marker::Copy for MEMORYSTATUS {} +impl ::core::clone::Clone for MEMORYSTATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MEMORYSTATUSEX { + pub dwLength: u32, + pub dwMemoryLoad: u32, + pub ullTotalPhys: u64, + pub ullAvailPhys: u64, + pub ullTotalPageFile: u64, + pub ullAvailPageFile: u64, + pub ullTotalVirtual: u64, + pub ullAvailVirtual: u64, + pub ullAvailExtendedVirtual: u64, +} +impl ::core::marker::Copy for MEMORYSTATUSEX {} +impl ::core::clone::Clone for MEMORYSTATUSEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NUMA_NODE_RELATIONSHIP { + pub NodeNumber: u32, + pub Reserved: [u8; 18], + pub GroupCount: u16, + pub Anonymous: NUMA_NODE_RELATIONSHIP_0, +} +impl ::core::marker::Copy for NUMA_NODE_RELATIONSHIP {} +impl ::core::clone::Clone for NUMA_NODE_RELATIONSHIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NUMA_NODE_RELATIONSHIP_0 { + pub GroupMask: GROUP_AFFINITY, + pub GroupMasks: [GROUP_AFFINITY; 1], +} +impl ::core::marker::Copy for NUMA_NODE_RELATIONSHIP_0 {} +impl ::core::clone::Clone for NUMA_NODE_RELATIONSHIP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OSVERSIONINFOA { + pub dwOSVersionInfoSize: u32, + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, + pub dwBuildNumber: u32, + pub dwPlatformId: u32, + pub szCSDVersion: [u8; 128], +} +impl ::core::marker::Copy for OSVERSIONINFOA {} +impl ::core::clone::Clone for OSVERSIONINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OSVERSIONINFOEXA { + pub dwOSVersionInfoSize: u32, + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, + pub dwBuildNumber: u32, + pub dwPlatformId: u32, + pub szCSDVersion: [u8; 128], + pub wServicePackMajor: u16, + pub wServicePackMinor: u16, + pub wSuiteMask: u16, + pub wProductType: u8, + pub wReserved: u8, +} +impl ::core::marker::Copy for OSVERSIONINFOEXA {} +impl ::core::clone::Clone for OSVERSIONINFOEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OSVERSIONINFOEXW { + pub dwOSVersionInfoSize: u32, + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, + pub dwBuildNumber: u32, + pub dwPlatformId: u32, + pub szCSDVersion: [u16; 128], + pub wServicePackMajor: u16, + pub wServicePackMinor: u16, + pub wSuiteMask: u16, + pub wProductType: u8, + pub wReserved: u8, +} +impl ::core::marker::Copy for OSVERSIONINFOEXW {} +impl ::core::clone::Clone for OSVERSIONINFOEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OSVERSIONINFOW { + pub dwOSVersionInfoSize: u32, + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, + pub dwBuildNumber: u32, + pub dwPlatformId: u32, + pub szCSDVersion: [u16; 128], +} +impl ::core::marker::Copy for OSVERSIONINFOW {} +impl ::core::clone::Clone for OSVERSIONINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSOR_GROUP_INFO { + pub MaximumProcessorCount: u8, + pub ActiveProcessorCount: u8, + pub Reserved: [u8; 38], + pub ActiveProcessorMask: usize, +} +impl ::core::marker::Copy for PROCESSOR_GROUP_INFO {} +impl ::core::clone::Clone for PROCESSOR_GROUP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSOR_RELATIONSHIP { + pub Flags: u8, + pub EfficiencyClass: u8, + pub Reserved: [u8; 20], + pub GroupCount: u16, + pub GroupMask: [GROUP_AFFINITY; 1], +} +impl ::core::marker::Copy for PROCESSOR_RELATIONSHIP {} +impl ::core::clone::Clone for PROCESSOR_RELATIONSHIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_CPU_SET_INFORMATION { + pub Size: u32, + pub Type: CPU_SET_INFORMATION_TYPE, + pub Anonymous: SYSTEM_CPU_SET_INFORMATION_0, +} +impl ::core::marker::Copy for SYSTEM_CPU_SET_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_CPU_SET_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SYSTEM_CPU_SET_INFORMATION_0 { + pub CpuSet: SYSTEM_CPU_SET_INFORMATION_0_0, +} +impl ::core::marker::Copy for SYSTEM_CPU_SET_INFORMATION_0 {} +impl ::core::clone::Clone for SYSTEM_CPU_SET_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_CPU_SET_INFORMATION_0_0 { + pub Id: u32, + pub Group: u16, + pub LogicalProcessorIndex: u8, + pub CoreIndex: u8, + pub LastLevelCacheIndex: u8, + pub NumaNodeIndex: u8, + pub EfficiencyClass: u8, + pub Anonymous1: SYSTEM_CPU_SET_INFORMATION_0_0_0, + pub Anonymous2: SYSTEM_CPU_SET_INFORMATION_0_0_1, + pub AllocationTag: u64, +} +impl ::core::marker::Copy for SYSTEM_CPU_SET_INFORMATION_0_0 {} +impl ::core::clone::Clone for SYSTEM_CPU_SET_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SYSTEM_CPU_SET_INFORMATION_0_0_0 { + pub AllFlags: u8, + pub Anonymous: SYSTEM_CPU_SET_INFORMATION_0_0_0_0, +} +impl ::core::marker::Copy for SYSTEM_CPU_SET_INFORMATION_0_0_0 {} +impl ::core::clone::Clone for SYSTEM_CPU_SET_INFORMATION_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_CPU_SET_INFORMATION_0_0_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for SYSTEM_CPU_SET_INFORMATION_0_0_0_0 {} +impl ::core::clone::Clone for SYSTEM_CPU_SET_INFORMATION_0_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SYSTEM_CPU_SET_INFORMATION_0_0_1 { + pub Reserved: u32, + pub SchedulingClass: u8, +} +impl ::core::marker::Copy for SYSTEM_CPU_SET_INFORMATION_0_0_1 {} +impl ::core::clone::Clone for SYSTEM_CPU_SET_INFORMATION_0_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_INFO { + pub Anonymous: SYSTEM_INFO_0, + pub dwPageSize: u32, + pub lpMinimumApplicationAddress: *mut ::core::ffi::c_void, + pub lpMaximumApplicationAddress: *mut ::core::ffi::c_void, + pub dwActiveProcessorMask: usize, + pub dwNumberOfProcessors: u32, + pub dwProcessorType: u32, + pub dwAllocationGranularity: u32, + pub wProcessorLevel: u16, + pub wProcessorRevision: u16, +} +impl ::core::marker::Copy for SYSTEM_INFO {} +impl ::core::clone::Clone for SYSTEM_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SYSTEM_INFO_0 { + pub dwOemId: u32, + pub Anonymous: SYSTEM_INFO_0_0, +} +impl ::core::marker::Copy for SYSTEM_INFO_0 {} +impl ::core::clone::Clone for SYSTEM_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_INFO_0_0 { + pub wProcessorArchitecture: PROCESSOR_ARCHITECTURE, + pub wReserved: u16, +} +impl ::core::marker::Copy for SYSTEM_INFO_0_0 {} +impl ::core::clone::Clone for SYSTEM_INFO_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_LOGICAL_PROCESSOR_INFORMATION { + pub ProcessorMask: usize, + pub Relationship: LOGICAL_PROCESSOR_RELATIONSHIP, + pub Anonymous: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_0, +} +impl ::core::marker::Copy for SYSTEM_LOGICAL_PROCESSOR_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_LOGICAL_PROCESSOR_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SYSTEM_LOGICAL_PROCESSOR_INFORMATION_0 { + pub ProcessorCore: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_0_1, + pub NumaNode: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_0_0, + pub Cache: CACHE_DESCRIPTOR, + pub Reserved: [u64; 2], +} +impl ::core::marker::Copy for SYSTEM_LOGICAL_PROCESSOR_INFORMATION_0 {} +impl ::core::clone::Clone for SYSTEM_LOGICAL_PROCESSOR_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_LOGICAL_PROCESSOR_INFORMATION_0_0 { + pub NodeNumber: u32, +} +impl ::core::marker::Copy for SYSTEM_LOGICAL_PROCESSOR_INFORMATION_0_0 {} +impl ::core::clone::Clone for SYSTEM_LOGICAL_PROCESSOR_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_LOGICAL_PROCESSOR_INFORMATION_0_1 { + pub Flags: u8, +} +impl ::core::marker::Copy for SYSTEM_LOGICAL_PROCESSOR_INFORMATION_0_1 {} +impl ::core::clone::Clone for SYSTEM_LOGICAL_PROCESSOR_INFORMATION_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX { + pub Relationship: LOGICAL_PROCESSOR_RELATIONSHIP, + pub Size: u32, + pub Anonymous: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX_0, +} +impl ::core::marker::Copy for SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {} +impl ::core::clone::Clone for SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX_0 { + pub Processor: PROCESSOR_RELATIONSHIP, + pub NumaNode: NUMA_NODE_RELATIONSHIP, + pub Cache: CACHE_RELATIONSHIP, + pub Group: GROUP_RELATIONSHIP, +} +impl ::core::marker::Copy for SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX_0 {} +impl ::core::clone::Clone for SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SYSTEM_POOL_ZEROING_INFORMATION { + pub PoolZeroingSupportPresent: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SYSTEM_POOL_ZEROING_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SYSTEM_POOL_ZEROING_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION { + pub CycleTime: u64, +} +impl ::core::marker::Copy for SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION { + pub _bitfield: u32, +} +impl ::core::marker::Copy for SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +pub type PGET_SYSTEM_WOW64_DIRECTORY_A = ::core::option::Option u32>; +pub type PGET_SYSTEM_WOW64_DIRECTORY_W = ::core::option::Option u32>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/SystemServices/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/SystemServices/mod.rs new file mode 100644 index 000000000..3d024dcbd --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/SystemServices/mod.rs @@ -0,0 +1,5922 @@ +pub const ACCESS_ALLOWED_ACE_TYPE: u32 = 0u32; +pub const ACCESS_ALLOWED_CALLBACK_ACE_TYPE: u32 = 9u32; +pub const ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE: u32 = 11u32; +pub const ACCESS_ALLOWED_COMPOUND_ACE_TYPE: u32 = 4u32; +pub const ACCESS_ALLOWED_OBJECT_ACE_TYPE: u32 = 5u32; +pub const ACCESS_DENIED_ACE_TYPE: u32 = 1u32; +pub const ACCESS_DENIED_CALLBACK_ACE_TYPE: u32 = 10u32; +pub const ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE: u32 = 12u32; +pub const ACCESS_DENIED_OBJECT_ACE_TYPE: u32 = 6u32; +pub const ACCESS_DS_OBJECT_TYPE_NAME_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Directory Service Object"); +pub const ACCESS_DS_OBJECT_TYPE_NAME_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Directory Service Object"); +pub const ACCESS_DS_SOURCE_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("DS"); +pub const ACCESS_DS_SOURCE_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DS"); +pub const ACCESS_FILTER_SECURITY_INFORMATION: i32 = 256i32; +pub const ACCESS_MAX_LEVEL: u32 = 4u32; +pub const ACCESS_MAX_MS_ACE_TYPE: u32 = 8u32; +pub const ACCESS_MAX_MS_OBJECT_ACE_TYPE: u32 = 8u32; +pub const ACCESS_MAX_MS_V2_ACE_TYPE: u32 = 3u32; +pub const ACCESS_MAX_MS_V3_ACE_TYPE: u32 = 4u32; +pub const ACCESS_MAX_MS_V4_ACE_TYPE: u32 = 8u32; +pub const ACCESS_MAX_MS_V5_ACE_TYPE: u32 = 21u32; +pub const ACCESS_MIN_MS_ACE_TYPE: u32 = 0u32; +pub const ACCESS_MIN_MS_OBJECT_ACE_TYPE: u32 = 5u32; +pub const ACCESS_OBJECT_GUID: u32 = 0u32; +pub const ACCESS_PROPERTY_GUID: u32 = 2u32; +pub const ACCESS_PROPERTY_SET_GUID: u32 = 1u32; +pub const ACCESS_REASON_DATA_MASK: u32 = 65535u32; +pub const ACCESS_REASON_EXDATA_MASK: u32 = 2130706432u32; +pub const ACCESS_REASON_STAGING_MASK: u32 = 2147483648u32; +pub const ACCESS_REASON_TYPE_MASK: u32 = 16711680u32; +pub const ACCESS_SYSTEM_SECURITY: u32 = 16777216u32; +pub const ACL_REVISION1: u32 = 1u32; +pub const ACL_REVISION2: u32 = 2u32; +pub const ACL_REVISION3: u32 = 3u32; +pub const ACL_REVISION4: u32 = 4u32; +pub const ACPI_PPM_HARDWARE_ALL: u32 = 254u32; +pub const ACPI_PPM_SOFTWARE_ALL: u32 = 252u32; +pub const ACPI_PPM_SOFTWARE_ANY: u32 = 253u32; +pub const ACTIVATION_CONTEXT_PATH_TYPE_ASSEMBLYREF: u32 = 4u32; +pub const ACTIVATION_CONTEXT_PATH_TYPE_NONE: u32 = 1u32; +pub const ACTIVATION_CONTEXT_PATH_TYPE_URL: u32 = 3u32; +pub const ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE: u32 = 2u32; +pub const ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS: u32 = 10u32; +pub const ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION: u32 = 1u32; +pub const ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES: u32 = 9u32; +pub const ACTIVATION_CONTEXT_SECTION_COMPATIBILITY_INFO: u32 = 11u32; +pub const ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION: u32 = 5u32; +pub const ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION: u32 = 7u32; +pub const ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION: u32 = 4u32; +pub const ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION: u32 = 6u32; +pub const ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION: u32 = 2u32; +pub const ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE: u32 = 8u32; +pub const ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION: u32 = 3u32; +pub const ACTIVATION_CONTEXT_SECTION_WINRT_ACTIVATABLE_CLASSES: u32 = 12u32; +pub const ALERT_SYSTEM_CRITICAL: ALERT_SYSTEM_SEV = 5u32; +pub const ALERT_SYSTEM_ERROR: ALERT_SYSTEM_SEV = 3u32; +pub const ALERT_SYSTEM_INFORMATIONAL: ALERT_SYSTEM_SEV = 1u32; +pub const ALERT_SYSTEM_QUERY: ALERT_SYSTEM_SEV = 4u32; +pub const ALERT_SYSTEM_WARNING: ALERT_SYSTEM_SEV = 2u32; +pub const ALL_POWERSCHEMES_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x68a1e95e_13ea_41e1_8011_0c496ca490b0); +pub const ANYSIZE_ARRAY: u32 = 1u32; +pub const APPCOMMAND_BASS_BOOST: APPCOMMAND_ID = 20u32; +pub const APPCOMMAND_BASS_DOWN: APPCOMMAND_ID = 19u32; +pub const APPCOMMAND_BASS_UP: APPCOMMAND_ID = 21u32; +pub const APPCOMMAND_BROWSER_BACKWARD: APPCOMMAND_ID = 1u32; +pub const APPCOMMAND_BROWSER_FAVORITES: APPCOMMAND_ID = 6u32; +pub const APPCOMMAND_BROWSER_FORWARD: APPCOMMAND_ID = 2u32; +pub const APPCOMMAND_BROWSER_HOME: APPCOMMAND_ID = 7u32; +pub const APPCOMMAND_BROWSER_REFRESH: APPCOMMAND_ID = 3u32; +pub const APPCOMMAND_BROWSER_SEARCH: APPCOMMAND_ID = 5u32; +pub const APPCOMMAND_BROWSER_STOP: APPCOMMAND_ID = 4u32; +pub const APPCOMMAND_CLOSE: APPCOMMAND_ID = 31u32; +pub const APPCOMMAND_COPY: APPCOMMAND_ID = 36u32; +pub const APPCOMMAND_CORRECTION_LIST: APPCOMMAND_ID = 45u32; +pub const APPCOMMAND_CUT: APPCOMMAND_ID = 37u32; +pub const APPCOMMAND_DELETE: APPCOMMAND_ID = 53u32; +pub const APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE: APPCOMMAND_ID = 43u32; +pub const APPCOMMAND_DWM_FLIP3D: APPCOMMAND_ID = 54u32; +pub const APPCOMMAND_FIND: APPCOMMAND_ID = 28u32; +pub const APPCOMMAND_FORWARD_MAIL: APPCOMMAND_ID = 40u32; +pub const APPCOMMAND_HELP: APPCOMMAND_ID = 27u32; +pub const APPCOMMAND_LAUNCH_APP1: APPCOMMAND_ID = 17u32; +pub const APPCOMMAND_LAUNCH_APP2: APPCOMMAND_ID = 18u32; +pub const APPCOMMAND_LAUNCH_MAIL: APPCOMMAND_ID = 15u32; +pub const APPCOMMAND_LAUNCH_MEDIA_SELECT: APPCOMMAND_ID = 16u32; +pub const APPCOMMAND_MEDIA_CHANNEL_DOWN: APPCOMMAND_ID = 52u32; +pub const APPCOMMAND_MEDIA_CHANNEL_UP: APPCOMMAND_ID = 51u32; +pub const APPCOMMAND_MEDIA_FAST_FORWARD: APPCOMMAND_ID = 49u32; +pub const APPCOMMAND_MEDIA_NEXTTRACK: APPCOMMAND_ID = 11u32; +pub const APPCOMMAND_MEDIA_PAUSE: APPCOMMAND_ID = 47u32; +pub const APPCOMMAND_MEDIA_PLAY: APPCOMMAND_ID = 46u32; +pub const APPCOMMAND_MEDIA_PLAY_PAUSE: APPCOMMAND_ID = 14u32; +pub const APPCOMMAND_MEDIA_PREVIOUSTRACK: APPCOMMAND_ID = 12u32; +pub const APPCOMMAND_MEDIA_RECORD: APPCOMMAND_ID = 48u32; +pub const APPCOMMAND_MEDIA_REWIND: APPCOMMAND_ID = 50u32; +pub const APPCOMMAND_MEDIA_STOP: APPCOMMAND_ID = 13u32; +pub const APPCOMMAND_MICROPHONE_VOLUME_DOWN: APPCOMMAND_ID = 25u32; +pub const APPCOMMAND_MICROPHONE_VOLUME_MUTE: APPCOMMAND_ID = 24u32; +pub const APPCOMMAND_MICROPHONE_VOLUME_UP: APPCOMMAND_ID = 26u32; +pub const APPCOMMAND_MIC_ON_OFF_TOGGLE: APPCOMMAND_ID = 44u32; +pub const APPCOMMAND_NEW: APPCOMMAND_ID = 29u32; +pub const APPCOMMAND_OPEN: APPCOMMAND_ID = 30u32; +pub const APPCOMMAND_PASTE: APPCOMMAND_ID = 38u32; +pub const APPCOMMAND_PRINT: APPCOMMAND_ID = 33u32; +pub const APPCOMMAND_REDO: APPCOMMAND_ID = 35u32; +pub const APPCOMMAND_REPLY_TO_MAIL: APPCOMMAND_ID = 39u32; +pub const APPCOMMAND_SAVE: APPCOMMAND_ID = 32u32; +pub const APPCOMMAND_SEND_MAIL: APPCOMMAND_ID = 41u32; +pub const APPCOMMAND_SPELL_CHECK: APPCOMMAND_ID = 42u32; +pub const APPCOMMAND_TREBLE_DOWN: APPCOMMAND_ID = 22u32; +pub const APPCOMMAND_TREBLE_UP: APPCOMMAND_ID = 23u32; +pub const APPCOMMAND_UNDO: APPCOMMAND_ID = 34u32; +pub const APPCOMMAND_VOLUME_DOWN: APPCOMMAND_ID = 9u32; +pub const APPCOMMAND_VOLUME_MUTE: APPCOMMAND_ID = 8u32; +pub const APPCOMMAND_VOLUME_UP: APPCOMMAND_ID = 10u32; +pub const APPLICATION_ERROR_MASK: u32 = 536870912u32; +pub const ARM64_MAX_BREAKPOINTS: u32 = 8u32; +pub const ARM64_MAX_WATCHPOINTS: u32 = 2u32; +pub const ARM64_MULT_INTRINSICS_SUPPORTED: u32 = 1u32; +pub const ARM64_PREFETCH_KEEP: u32 = 0u32; +pub const ARM64_PREFETCH_L1: u32 = 0u32; +pub const ARM64_PREFETCH_L2: u32 = 2u32; +pub const ARM64_PREFETCH_L3: u32 = 4u32; +pub const ARM64_PREFETCH_PLD: u32 = 0u32; +pub const ARM64_PREFETCH_PLI: u32 = 8u32; +pub const ARM64_PREFETCH_PST: u32 = 16u32; +pub const ARM64_PREFETCH_STRM: u32 = 1u32; +pub const ARM_CACHE_ALIGNMENT_SIZE: u32 = 128u32; +pub const ARM_MAX_BREAKPOINTS: u32 = 8u32; +pub const ARM_MAX_WATCHPOINTS: u32 = 1u32; +pub const ASSERT_BREAKPOINT: u32 = 524291u32; +pub const ATF_ONOFFFEEDBACK: ATF_FLAGS = 2u32; +pub const ATF_TIMEOUTON: ATF_FLAGS = 1u32; +pub const AUDIT_ALLOW_NO_PRIVILEGE: u32 = 1u32; +pub const AccessReasonAllowedAce: ACCESS_REASON_TYPE = 65536i32; +pub const AccessReasonAllowedParentAce: ACCESS_REASON_TYPE = 196608i32; +pub const AccessReasonDeniedAce: ACCESS_REASON_TYPE = 131072i32; +pub const AccessReasonDeniedParentAce: ACCESS_REASON_TYPE = 262144i32; +pub const AccessReasonEmptyDacl: ACCESS_REASON_TYPE = 6291456i32; +pub const AccessReasonFilterAce: ACCESS_REASON_TYPE = 10485760i32; +pub const AccessReasonFromPrivilege: ACCESS_REASON_TYPE = 2097152i32; +pub const AccessReasonIntegrityLevel: ACCESS_REASON_TYPE = 3145728i32; +pub const AccessReasonMissingPrivilege: ACCESS_REASON_TYPE = 1048576i32; +pub const AccessReasonNoGrant: ACCESS_REASON_TYPE = 8388608i32; +pub const AccessReasonNoSD: ACCESS_REASON_TYPE = 7340032i32; +pub const AccessReasonNone: ACCESS_REASON_TYPE = 0i32; +pub const AccessReasonNotGrantedByCape: ACCESS_REASON_TYPE = 327680i32; +pub const AccessReasonNotGrantedByParentCape: ACCESS_REASON_TYPE = 393216i32; +pub const AccessReasonNotGrantedToAppContainer: ACCESS_REASON_TYPE = 458752i32; +pub const AccessReasonNullDacl: ACCESS_REASON_TYPE = 5242880i32; +pub const AccessReasonOwnership: ACCESS_REASON_TYPE = 4194304i32; +pub const AccessReasonTrustLabel: ACCESS_REASON_TYPE = 9437184i32; +pub const ActivationContextBasicInformation: ACTIVATION_CONTEXT_INFO_CLASS = 1i32; +pub const ActivationContextDetailedInformation: ACTIVATION_CONTEXT_INFO_CLASS = 2i32; +pub const ActivationContextManifestResourceName: ACTIVATION_CONTEXT_INFO_CLASS = 7i32; +pub const AdapterType: SERVICE_NODE_TYPE = 4i32; +pub const AssemblyDetailedInformationInActivationContext: ACTIVATION_CONTEXT_INFO_CLASS = 3i32; +pub const AssemblyDetailedInformationInActivationContxt: ACTIVATION_CONTEXT_INFO_CLASS = 3i32; +pub const AutoLoad: SERVICE_LOAD_TYPE = 2i32; +pub const BATTERY_DISCHARGE_FLAGS_ENABLE: u32 = 2147483648u32; +pub const BATTERY_DISCHARGE_FLAGS_EVENTCODE_MASK: u32 = 7u32; +pub const BREAK_DEBUG_BASE: u32 = 524288u32; +pub const BootLoad: SERVICE_LOAD_TYPE = 0i32; +pub const CACHE_FULLY_ASSOCIATIVE: u32 = 255u32; +pub const CFG_CALL_TARGET_CONVERT_EXPORT_SUPPRESSED_TO_VALID: u32 = 4u32; +pub const CFG_CALL_TARGET_CONVERT_XFG_TO_CFG: u32 = 16u32; +pub const CFG_CALL_TARGET_PROCESSED: u32 = 2u32; +pub const CFG_CALL_TARGET_VALID: u32 = 1u32; +pub const CFG_CALL_TARGET_VALID_XFG: u32 = 8u32; +pub const CFU_CF1UNDERLINE: CFE_UNDERLINE = 255u32; +pub const CFU_INVERT: CFE_UNDERLINE = 254u32; +pub const CFU_UNDERLINE: CFE_UNDERLINE = 1u32; +pub const CFU_UNDERLINEDASH: CFE_UNDERLINE = 5u32; +pub const CFU_UNDERLINEDASHDOT: CFE_UNDERLINE = 6u32; +pub const CFU_UNDERLINEDASHDOTDOT: CFE_UNDERLINE = 7u32; +pub const CFU_UNDERLINEDOTTED: CFE_UNDERLINE = 4u32; +pub const CFU_UNDERLINEDOUBLE: CFE_UNDERLINE = 3u32; +pub const CFU_UNDERLINEDOUBLEWAVE: CFE_UNDERLINE = 11u32; +pub const CFU_UNDERLINEHAIRLINE: CFE_UNDERLINE = 10u32; +pub const CFU_UNDERLINEHEAVYWAVE: CFE_UNDERLINE = 12u32; +pub const CFU_UNDERLINELONGDASH: CFE_UNDERLINE = 13u32; +pub const CFU_UNDERLINENONE: CFE_UNDERLINE = 0u32; +pub const CFU_UNDERLINETHICK: CFE_UNDERLINE = 9u32; +pub const CFU_UNDERLINETHICKDASH: CFE_UNDERLINE = 14u32; +pub const CFU_UNDERLINETHICKDASHDOT: CFE_UNDERLINE = 15u32; +pub const CFU_UNDERLINETHICKDASHDOTDOT: CFE_UNDERLINE = 16u32; +pub const CFU_UNDERLINETHICKDOTTED: CFE_UNDERLINE = 17u32; +pub const CFU_UNDERLINETHICKLONGDASH: CFE_UNDERLINE = 18u32; +pub const CFU_UNDERLINEWAVE: CFE_UNDERLINE = 8u32; +pub const CFU_UNDERLINEWORD: CFE_UNDERLINE = 2u32; +pub const CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION: u32 = 1u32; +pub const CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION_V1: u32 = 1u32; +pub const CLAIM_SECURITY_ATTRIBUTE_CUSTOM_FLAGS: u32 = 4294901760u32; +pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_INVALID: u32 = 0u32; +pub const CM_SERVICE_MEASURED_BOOT_LOAD: u32 = 32u32; +pub const CM_SERVICE_NETWORK_BOOT_LOAD: u32 = 1u32; +pub const CM_SERVICE_RAM_DISK_BOOT_LOAD: u32 = 256u32; +pub const CM_SERVICE_SD_DISK_BOOT_LOAD: u32 = 8u32; +pub const CM_SERVICE_USB3_DISK_BOOT_LOAD: u32 = 16u32; +pub const CM_SERVICE_USB_DISK_BOOT_LOAD: u32 = 4u32; +pub const CM_SERVICE_VERIFIER_BOOT_LOAD: u32 = 64u32; +pub const CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD: u32 = 2u32; +pub const CM_SERVICE_WINPE_BOOT_LOAD: u32 = 128u32; +pub const COMIMAGE_FLAGS_32BITPREFERRED: ReplacesCorHdrNumericDefines = 131072i32; +pub const COMIMAGE_FLAGS_32BITREQUIRED: ReplacesCorHdrNumericDefines = 2i32; +pub const COMIMAGE_FLAGS_ILONLY: ReplacesCorHdrNumericDefines = 1i32; +pub const COMIMAGE_FLAGS_IL_LIBRARY: ReplacesCorHdrNumericDefines = 4i32; +pub const COMIMAGE_FLAGS_NATIVE_ENTRYPOINT: ReplacesCorHdrNumericDefines = 16i32; +pub const COMIMAGE_FLAGS_STRONGNAMESIGNED: ReplacesCorHdrNumericDefines = 8i32; +pub const COMIMAGE_FLAGS_TRACKDEBUGDATA: ReplacesCorHdrNumericDefines = 65536i32; +pub const COMPONENT_KTM: u32 = 1u32; +pub const COMPONENT_VALID_FLAGS: u32 = 1u32; +pub const COMPRESSION_ENGINE_HIBER: u32 = 512u32; +pub const COMPRESSION_ENGINE_MAXIMUM: u32 = 256u32; +pub const COMPRESSION_ENGINE_STANDARD: u32 = 0u32; +pub const CORE_PARKING_POLICY_CHANGE_IDEAL: u32 = 0u32; +pub const CORE_PARKING_POLICY_CHANGE_MAX: u32 = 3u32; +pub const CORE_PARKING_POLICY_CHANGE_MULTISTEP: u32 = 3u32; +pub const CORE_PARKING_POLICY_CHANGE_ROCKET: u32 = 2u32; +pub const CORE_PARKING_POLICY_CHANGE_SINGLE: u32 = 1u32; +pub const COR_DELETED_NAME_LENGTH: ReplacesCorHdrNumericDefines = 8i32; +pub const COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE: ReplacesCorHdrNumericDefines = 255i32; +pub const COR_VERSION_MAJOR: ReplacesCorHdrNumericDefines = 2i32; +pub const COR_VERSION_MAJOR_V2: ReplacesCorHdrNumericDefines = 2i32; +pub const COR_VERSION_MINOR: ReplacesCorHdrNumericDefines = 5i32; +pub const COR_VTABLEGAP_NAME_LENGTH: ReplacesCorHdrNumericDefines = 8i32; +pub const COR_VTABLE_32BIT: ReplacesCorHdrNumericDefines = 1i32; +pub const COR_VTABLE_64BIT: ReplacesCorHdrNumericDefines = 2i32; +pub const COR_VTABLE_CALL_MOST_DERIVED: ReplacesCorHdrNumericDefines = 16i32; +pub const COR_VTABLE_FROM_UNMANAGED: ReplacesCorHdrNumericDefines = 4i32; +pub const COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN: ReplacesCorHdrNumericDefines = 8i32; +pub const CREATE_BOUNDARY_DESCRIPTOR_ADD_APPCONTAINER_SID: u32 = 1u32; +pub const CRITICAL_ACE_FLAG: u32 = 32u32; +pub const CTMF_INCLUDE_APPCONTAINER: u32 = 1u32; +pub const CTMF_INCLUDE_LPAC: u32 = 2u32; +pub const CompatibilityInformationInActivationContext: ACTIVATION_CONTEXT_INFO_CLASS = 6i32; +pub const CriticalError: SERVICE_ERROR_TYPE = 3i32; +pub const DECIMAL_NEG: u8 = 128u8; +pub const DEDICATED_MEMORY_CACHE_ELIGIBLE: u32 = 1u32; +pub const DEVICEFAMILYDEVICEFORM_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\OEM"); +pub const DEVICEFAMILYDEVICEFORM_VALUE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DeviceForm"); +pub const DIAGNOSTIC_REASON_DETAILED_STRING: u32 = 2u32; +pub const DIAGNOSTIC_REASON_NOT_SPECIFIED: u32 = 2147483648u32; +pub const DIAGNOSTIC_REASON_SIMPLE_STRING: u32 = 1u32; +pub const DIAGNOSTIC_REASON_VERSION: u32 = 0u32; +pub const DISCHARGE_POLICY_CRITICAL: u32 = 0u32; +pub const DISCHARGE_POLICY_LOW: u32 = 1u32; +pub const DLL_PROCESS_ATTACH: u32 = 1u32; +pub const DLL_PROCESS_DETACH: u32 = 0u32; +pub const DLL_THREAD_ATTACH: u32 = 2u32; +pub const DLL_THREAD_DETACH: u32 = 3u32; +pub const DOMAIN_ALIAS_RID_ACCESS_CONTROL_ASSISTANCE_OPS: i32 = 579i32; +pub const DOMAIN_ALIAS_RID_ACCOUNT_OPS: i32 = 548i32; +pub const DOMAIN_ALIAS_RID_ADMINS: i32 = 544i32; +pub const DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS: i32 = 560i32; +pub const DOMAIN_ALIAS_RID_BACKUP_OPS: i32 = 551i32; +pub const DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP: i32 = 571i32; +pub const DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP: i32 = 574i32; +pub const DOMAIN_ALIAS_RID_CRYPTO_OPERATORS: i32 = 569i32; +pub const DOMAIN_ALIAS_RID_DCOM_USERS: i32 = 562i32; +pub const DOMAIN_ALIAS_RID_DEFAULT_ACCOUNT: i32 = 581i32; +pub const DOMAIN_ALIAS_RID_DEVICE_OWNERS: i32 = 583i32; +pub const DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP: i32 = 573i32; +pub const DOMAIN_ALIAS_RID_GUESTS: i32 = 546i32; +pub const DOMAIN_ALIAS_RID_HYPER_V_ADMINS: i32 = 578i32; +pub const DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS: i32 = 557i32; +pub const DOMAIN_ALIAS_RID_IUSERS: i32 = 568i32; +pub const DOMAIN_ALIAS_RID_LOGGING_USERS: i32 = 559i32; +pub const DOMAIN_ALIAS_RID_MONITORING_USERS: i32 = 558i32; +pub const DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS: i32 = 556i32; +pub const DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP: i32 = 572i32; +pub const DOMAIN_ALIAS_RID_POWER_USERS: i32 = 547i32; +pub const DOMAIN_ALIAS_RID_PREW2KCOMPACCESS: i32 = 554i32; +pub const DOMAIN_ALIAS_RID_PRINT_OPS: i32 = 550i32; +pub const DOMAIN_ALIAS_RID_RAS_SERVERS: i32 = 553i32; +pub const DOMAIN_ALIAS_RID_RDS_ENDPOINT_SERVERS: i32 = 576i32; +pub const DOMAIN_ALIAS_RID_RDS_MANAGEMENT_SERVERS: i32 = 577i32; +pub const DOMAIN_ALIAS_RID_RDS_REMOTE_ACCESS_SERVERS: i32 = 575i32; +pub const DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS: i32 = 555i32; +pub const DOMAIN_ALIAS_RID_REMOTE_MANAGEMENT_USERS: i32 = 580i32; +pub const DOMAIN_ALIAS_RID_REPLICATOR: i32 = 552i32; +pub const DOMAIN_ALIAS_RID_STORAGE_REPLICA_ADMINS: i32 = 582i32; +pub const DOMAIN_ALIAS_RID_SYSTEM_OPS: i32 = 549i32; +pub const DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS: i32 = 561i32; +pub const DOMAIN_ALIAS_RID_USERS: i32 = 545i32; +pub const DOMAIN_GROUP_RID_ADMINS: i32 = 512i32; +pub const DOMAIN_GROUP_RID_AUTHORIZATION_DATA_CONTAINS_CLAIMS: i32 = 497i32; +pub const DOMAIN_GROUP_RID_AUTHORIZATION_DATA_IS_COMPOUNDED: i32 = 496i32; +pub const DOMAIN_GROUP_RID_CDC_RESERVED: i32 = 524i32; +pub const DOMAIN_GROUP_RID_CERT_ADMINS: i32 = 517i32; +pub const DOMAIN_GROUP_RID_CLONEABLE_CONTROLLERS: i32 = 522i32; +pub const DOMAIN_GROUP_RID_COMPUTERS: i32 = 515i32; +pub const DOMAIN_GROUP_RID_CONTROLLERS: i32 = 516i32; +pub const DOMAIN_GROUP_RID_ENTERPRISE_ADMINS: i32 = 519i32; +pub const DOMAIN_GROUP_RID_ENTERPRISE_KEY_ADMINS: i32 = 527i32; +pub const DOMAIN_GROUP_RID_ENTERPRISE_READONLY_DOMAIN_CONTROLLERS: i32 = 498i32; +pub const DOMAIN_GROUP_RID_GUESTS: i32 = 514i32; +pub const DOMAIN_GROUP_RID_KEY_ADMINS: i32 = 526i32; +pub const DOMAIN_GROUP_RID_POLICY_ADMINS: i32 = 520i32; +pub const DOMAIN_GROUP_RID_PROTECTED_USERS: i32 = 525i32; +pub const DOMAIN_GROUP_RID_READONLY_CONTROLLERS: i32 = 521i32; +pub const DOMAIN_GROUP_RID_SCHEMA_ADMINS: i32 = 518i32; +pub const DOMAIN_GROUP_RID_USERS: i32 = 513i32; +pub const DOMAIN_USER_RID_ADMIN: i32 = 500i32; +pub const DOMAIN_USER_RID_DEFAULT_ACCOUNT: i32 = 503i32; +pub const DOMAIN_USER_RID_GUEST: i32 = 501i32; +pub const DOMAIN_USER_RID_KRBTGT: i32 = 502i32; +pub const DOMAIN_USER_RID_MAX: i32 = 999i32; +pub const DOMAIN_USER_RID_WDAG_ACCOUNT: i32 = 504i32; +pub const DYNAMIC_EH_CONTINUATION_TARGET_ADD: u32 = 1u32; +pub const DYNAMIC_EH_CONTINUATION_TARGET_PROCESSED: u32 = 2u32; +pub const DYNAMIC_ENFORCED_ADDRESS_RANGE_ADD: u32 = 1u32; +pub const DYNAMIC_ENFORCED_ADDRESS_RANGE_PROCESSED: u32 = 2u32; +pub const DemandLoad: SERVICE_LOAD_TYPE = 3i32; +pub const DisableLoad: SERVICE_LOAD_TYPE = 4i32; +pub const DriverType: SERVICE_NODE_TYPE = 1i32; +pub const EMARCH_ENC_I17_IC_INST_WORD_POS_X: u32 = 12u32; +pub const EMARCH_ENC_I17_IC_INST_WORD_X: u32 = 3u32; +pub const EMARCH_ENC_I17_IC_SIZE_X: u32 = 1u32; +pub const EMARCH_ENC_I17_IC_VAL_POS_X: u32 = 21u32; +pub const EMARCH_ENC_I17_IMM41a_INST_WORD_POS_X: u32 = 14u32; +pub const EMARCH_ENC_I17_IMM41a_INST_WORD_X: u32 = 1u32; +pub const EMARCH_ENC_I17_IMM41a_SIZE_X: u32 = 10u32; +pub const EMARCH_ENC_I17_IMM41a_VAL_POS_X: u32 = 22u32; +pub const EMARCH_ENC_I17_IMM41b_INST_WORD_POS_X: u32 = 24u32; +pub const EMARCH_ENC_I17_IMM41b_INST_WORD_X: u32 = 1u32; +pub const EMARCH_ENC_I17_IMM41b_SIZE_X: u32 = 8u32; +pub const EMARCH_ENC_I17_IMM41b_VAL_POS_X: u32 = 32u32; +pub const EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X: u32 = 0u32; +pub const EMARCH_ENC_I17_IMM41c_INST_WORD_X: u32 = 2u32; +pub const EMARCH_ENC_I17_IMM41c_SIZE_X: u32 = 23u32; +pub const EMARCH_ENC_I17_IMM41c_VAL_POS_X: u32 = 40u32; +pub const EMARCH_ENC_I17_IMM5C_INST_WORD_POS_X: u32 = 13u32; +pub const EMARCH_ENC_I17_IMM5C_INST_WORD_X: u32 = 3u32; +pub const EMARCH_ENC_I17_IMM5C_SIZE_X: u32 = 5u32; +pub const EMARCH_ENC_I17_IMM5C_VAL_POS_X: u32 = 16u32; +pub const EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X: u32 = 4u32; +pub const EMARCH_ENC_I17_IMM7B_INST_WORD_X: u32 = 3u32; +pub const EMARCH_ENC_I17_IMM7B_SIZE_X: u32 = 7u32; +pub const EMARCH_ENC_I17_IMM7B_VAL_POS_X: u32 = 0u32; +pub const EMARCH_ENC_I17_IMM9D_INST_WORD_POS_X: u32 = 18u32; +pub const EMARCH_ENC_I17_IMM9D_INST_WORD_X: u32 = 3u32; +pub const EMARCH_ENC_I17_IMM9D_SIZE_X: u32 = 9u32; +pub const EMARCH_ENC_I17_IMM9D_VAL_POS_X: u32 = 7u32; +pub const EMARCH_ENC_I17_SIGN_INST_WORD_POS_X: u32 = 27u32; +pub const EMARCH_ENC_I17_SIGN_INST_WORD_X: u32 = 3u32; +pub const EMARCH_ENC_I17_SIGN_SIZE_X: u32 = 1u32; +pub const EMARCH_ENC_I17_SIGN_VAL_POS_X: u32 = 63u32; +pub const ENCLAVE_LONG_ID_LENGTH: u32 = 32u32; +pub const ENCLAVE_SHORT_ID_LENGTH: u32 = 16u32; +pub const ENCLAVE_TYPE_SGX: u32 = 1u32; +pub const ENCLAVE_TYPE_SGX2: u32 = 2u32; +pub const ENCLAVE_TYPE_VBS: u32 = 16u32; +pub const ENCLAVE_TYPE_VBS_BASIC: u32 = 17u32; +pub const ENCLAVE_VBS_FLAG_DEBUG: u32 = 1u32; +pub const ENLISTMENT_QUERY_INFORMATION: u32 = 1u32; +pub const ENLISTMENT_RECOVER: u32 = 4u32; +pub const ENLISTMENT_SET_INFORMATION: u32 = 2u32; +pub const ENLISTMENT_SUBORDINATE_RIGHTS: u32 = 8u32; +pub const ENLISTMENT_SUPERIOR_RIGHTS: u32 = 16u32; +pub const ERROR_SEVERITY_ERROR: u32 = 3221225472u32; +pub const ERROR_SEVERITY_INFORMATIONAL: u32 = 1073741824u32; +pub const ERROR_SEVERITY_SUCCESS: u32 = 0u32; +pub const ERROR_SEVERITY_WARNING: u32 = 2147483648u32; +pub const EVENTLOG_BACKWARDS_READ: u32 = 8u32; +pub const EVENTLOG_END_ALL_PAIRED_EVENTS: u32 = 4u32; +pub const EVENTLOG_END_PAIRED_EVENT: u32 = 2u32; +pub const EVENTLOG_FORWARDS_READ: u32 = 4u32; +pub const EVENTLOG_PAIRED_EVENT_ACTIVE: u32 = 8u32; +pub const EVENTLOG_PAIRED_EVENT_INACTIVE: u32 = 16u32; +pub const EVENTLOG_START_PAIRED_EVENT: u32 = 1u32; +pub const EXCEPTION_COLLIDED_UNWIND: u32 = 64u32; +pub const EXCEPTION_EXECUTE_FAULT: u32 = 8u32; +pub const EXCEPTION_EXIT_UNWIND: u32 = 4u32; +pub const EXCEPTION_MAXIMUM_PARAMETERS: u32 = 15u32; +pub const EXCEPTION_NESTED_CALL: u32 = 16u32; +pub const EXCEPTION_NONCONTINUABLE: u32 = 1u32; +pub const EXCEPTION_READ_FAULT: u32 = 0u32; +pub const EXCEPTION_SOFTWARE_ORIGINATE: u32 = 128u32; +pub const EXCEPTION_STACK_INVALID: u32 = 8u32; +pub const EXCEPTION_TARGET_UNWIND: u32 = 32u32; +pub const EXCEPTION_UNWINDING: u32 = 2u32; +pub const EXCEPTION_WRITE_FAULT: u32 = 1u32; +pub const EnlistmentBasicInformation: ENLISTMENT_INFORMATION_CLASS = 0i32; +pub const EnlistmentCrmInformation: ENLISTMENT_INFORMATION_CLASS = 2i32; +pub const EnlistmentRecoveryInformation: ENLISTMENT_INFORMATION_CLASS = 1i32; +pub const FAST_FAIL_ADMINLESS_ACCESS_DENIED: u32 = 55u32; +pub const FAST_FAIL_APCS_DISABLED: u32 = 32u32; +pub const FAST_FAIL_CAST_GUARD: u32 = 65u32; +pub const FAST_FAIL_CERTIFICATION_FAILURE: u32 = 20u32; +pub const FAST_FAIL_CONTROL_INVALID_RETURN_ADDRESS: u32 = 57u32; +pub const FAST_FAIL_CORRUPT_LIST_ENTRY: u32 = 3u32; +pub const FAST_FAIL_CRYPTO_LIBRARY: u32 = 22u32; +pub const FAST_FAIL_DEPRECATED_SERVICE_INVOKED: u32 = 27u32; +pub const FAST_FAIL_DLOAD_PROTECTION_FAILURE: u32 = 25u32; +pub const FAST_FAIL_ENCLAVE_CALL_FAILURE: u32 = 53u32; +pub const FAST_FAIL_ETW_CORRUPTION: u32 = 61u32; +pub const FAST_FAIL_FATAL_APP_EXIT: u32 = 7u32; +pub const FAST_FAIL_FLAGS_CORRUPTION: u32 = 59u32; +pub const FAST_FAIL_GS_COOKIE_INIT: u32 = 6u32; +pub const FAST_FAIL_GUARD_EXPORT_SUPPRESSION_FAILURE: u32 = 46u32; +pub const FAST_FAIL_GUARD_ICALL_CHECK_FAILURE: u32 = 10u32; +pub const FAST_FAIL_GUARD_ICALL_CHECK_FAILURE_XFG: u32 = 64u32; +pub const FAST_FAIL_GUARD_ICALL_CHECK_SUPPRESSED: u32 = 31u32; +pub const FAST_FAIL_GUARD_JUMPTABLE: u32 = 37u32; +pub const FAST_FAIL_GUARD_SS_FAILURE: u32 = 44u32; +pub const FAST_FAIL_GUARD_WRITE_CHECK_FAILURE: u32 = 11u32; +pub const FAST_FAIL_HEAP_METADATA_CORRUPTION: u32 = 50u32; +pub const FAST_FAIL_HOST_VISIBILITY_CHANGE: u32 = 66u32; +pub const FAST_FAIL_INCORRECT_STACK: u32 = 4u32; +pub const FAST_FAIL_INVALID_ARG: u32 = 5u32; +pub const FAST_FAIL_INVALID_BALANCED_TREE: u32 = 29u32; +pub const FAST_FAIL_INVALID_BUFFER_ACCESS: u32 = 28u32; +pub const FAST_FAIL_INVALID_CALL_IN_DLL_CALLOUT: u32 = 23u32; +pub const FAST_FAIL_INVALID_CONTROL_STACK: u32 = 47u32; +pub const FAST_FAIL_INVALID_DISPATCH_CONTEXT: u32 = 39u32; +pub const FAST_FAIL_INVALID_EXCEPTION_CHAIN: u32 = 21u32; +pub const FAST_FAIL_INVALID_FAST_FAIL_CODE: u32 = 4294967295u32; +pub const FAST_FAIL_INVALID_FIBER_SWITCH: u32 = 12u32; +pub const FAST_FAIL_INVALID_FILE_OPERATION: u32 = 42u32; +pub const FAST_FAIL_INVALID_FLS_DATA: u32 = 70u32; +pub const FAST_FAIL_INVALID_IAT: u32 = 49u32; +pub const FAST_FAIL_INVALID_IDLE_STATE: u32 = 33u32; +pub const FAST_FAIL_INVALID_IMAGE_BASE: u32 = 24u32; +pub const FAST_FAIL_INVALID_JUMP_BUFFER: u32 = 18u32; +pub const FAST_FAIL_INVALID_LOCK_STATE: u32 = 36u32; +pub const FAST_FAIL_INVALID_LONGJUMP_TARGET: u32 = 38u32; +pub const FAST_FAIL_INVALID_NEXT_THREAD: u32 = 30u32; +pub const FAST_FAIL_INVALID_PFN: u32 = 63u32; +pub const FAST_FAIL_INVALID_REFERENCE_COUNT: u32 = 14u32; +pub const FAST_FAIL_INVALID_SET_OF_CONTEXT: u32 = 13u32; +pub const FAST_FAIL_INVALID_SYSCALL_NUMBER: u32 = 41u32; +pub const FAST_FAIL_INVALID_THREAD: u32 = 40u32; +pub const FAST_FAIL_KERNEL_CET_SHADOW_STACK_ASSIST: u32 = 67u32; +pub const FAST_FAIL_LEGACY_GS_VIOLATION: u32 = 0u32; +pub const FAST_FAIL_LOADER_CONTINUITY_FAILURE: u32 = 45u32; +pub const FAST_FAIL_LOW_LABEL_ACCESS_DENIED: u32 = 52u32; +pub const FAST_FAIL_LPAC_ACCESS_DENIED: u32 = 43u32; +pub const FAST_FAIL_MRDATA_MODIFIED: u32 = 19u32; +pub const FAST_FAIL_MRDATA_PROTECTION_FAILURE: u32 = 34u32; +pub const FAST_FAIL_NTDLL_PATCH_FAILED: u32 = 69u32; +pub const FAST_FAIL_PATCH_CALLBACK_FAILED: u32 = 68u32; +pub const FAST_FAIL_PAYLOAD_RESTRICTION_VIOLATION: u32 = 51u32; +pub const FAST_FAIL_RANGE_CHECK_FAILURE: u32 = 8u32; +pub const FAST_FAIL_RIO_ABORT: u32 = 62u32; +pub const FAST_FAIL_SET_CONTEXT_DENIED: u32 = 48u32; +pub const FAST_FAIL_STACK_COOKIE_CHECK_FAILURE: u32 = 2u32; +pub const FAST_FAIL_UNEXPECTED_CALL: u32 = 56u32; +pub const FAST_FAIL_UNEXPECTED_HEAP_EXCEPTION: u32 = 35u32; +pub const FAST_FAIL_UNEXPECTED_HOST_BEHAVIOR: u32 = 58u32; +pub const FAST_FAIL_UNHANDLED_LSS_EXCEPTON: u32 = 54u32; +pub const FAST_FAIL_UNSAFE_EXTENSION_CALL: u32 = 26u32; +pub const FAST_FAIL_UNSAFE_REGISTRY_ACCESS: u32 = 9u32; +pub const FAST_FAIL_VEH_CORRUPTION: u32 = 60u32; +pub const FAST_FAIL_VTGUARD_CHECK_FAILURE: u32 = 1u32; +pub const FILE_ATTRIBUTE_STRICTLY_SEQUENTIAL: u32 = 536870912u32; +pub const FILE_CASE_PRESERVED_NAMES: u32 = 2u32; +pub const FILE_CASE_SENSITIVE_SEARCH: u32 = 1u32; +pub const FILE_CS_FLAG_CASE_SENSITIVE_DIR: u32 = 1u32; +pub const FILE_DAX_VOLUME: u32 = 536870912u32; +pub const FILE_FILE_COMPRESSION: u32 = 16u32; +pub const FILE_NAMED_STREAMS: u32 = 262144u32; +pub const FILE_NAME_FLAGS_UNSPECIFIED: u32 = 128u32; +pub const FILE_NAME_FLAG_BOTH: u32 = 3u32; +pub const FILE_NAME_FLAG_DOS: u32 = 2u32; +pub const FILE_NAME_FLAG_HARDLINK: u32 = 0u32; +pub const FILE_NAME_FLAG_NTFS: u32 = 1u32; +pub const FILE_PERSISTENT_ACLS: u32 = 8u32; +pub const FILE_READ_ONLY_VOLUME: u32 = 524288u32; +pub const FILE_RETURNS_CLEANUP_RESULT_INFO: u32 = 512u32; +pub const FILE_SEQUENTIAL_WRITE_ONCE: u32 = 1048576u32; +pub const FILE_SUPPORTS_BLOCK_REFCOUNTING: u32 = 134217728u32; +pub const FILE_SUPPORTS_BYPASS_IO: u32 = 2048u32; +pub const FILE_SUPPORTS_CASE_SENSITIVE_DIRS: u32 = 8192u32; +pub const FILE_SUPPORTS_ENCRYPTION: u32 = 131072u32; +pub const FILE_SUPPORTS_EXTENDED_ATTRIBUTES: u32 = 8388608u32; +pub const FILE_SUPPORTS_GHOSTING: u32 = 1073741824u32; +pub const FILE_SUPPORTS_HARD_LINKS: u32 = 4194304u32; +pub const FILE_SUPPORTS_INTEGRITY_STREAMS: u32 = 67108864u32; +pub const FILE_SUPPORTS_OBJECT_IDS: u32 = 65536u32; +pub const FILE_SUPPORTS_OPEN_BY_FILE_ID: u32 = 16777216u32; +pub const FILE_SUPPORTS_POSIX_UNLINK_RENAME: u32 = 1024u32; +pub const FILE_SUPPORTS_REMOTE_STORAGE: u32 = 256u32; +pub const FILE_SUPPORTS_REPARSE_POINTS: u32 = 128u32; +pub const FILE_SUPPORTS_SPARSE_FILES: u32 = 64u32; +pub const FILE_SUPPORTS_SPARSE_VDL: u32 = 268435456u32; +pub const FILE_SUPPORTS_STREAM_SNAPSHOTS: u32 = 4096u32; +pub const FILE_SUPPORTS_TRANSACTIONS: u32 = 2097152u32; +pub const FILE_SUPPORTS_USN_JOURNAL: u32 = 33554432u32; +pub const FILE_UNICODE_ON_DISK: u32 = 4u32; +pub const FILE_VOLUME_IS_COMPRESSED: u32 = 32768u32; +pub const FILE_VOLUME_QUOTAS: u32 = 32u32; +pub const FILL_NV_MEMORY_FLAG_FLUSH: u32 = 1u32; +pub const FILL_NV_MEMORY_FLAG_NON_TEMPORAL: u32 = 2u32; +pub const FILL_NV_MEMORY_FLAG_NO_DRAIN: u32 = 256u32; +pub const FLS_MAXIMUM_AVAILABLE: u32 = 4080u32; +pub const FLUSH_FLAGS_FILE_DATA_ONLY: u32 = 1u32; +pub const FLUSH_FLAGS_FILE_DATA_SYNC_ONLY: u32 = 4u32; +pub const FLUSH_FLAGS_NO_SYNC: u32 = 2u32; +pub const FLUSH_NV_MEMORY_IN_FLAG_NO_DRAIN: u32 = 1u32; +pub const FOREST_USER_RID_MAX: i32 = 499i32; +pub const FRAME_FPO: u32 = 0u32; +pub const FRAME_NONFPO: u32 = 3u32; +pub const FRAME_TRAP: u32 = 1u32; +pub const FRAME_TSS: u32 = 2u32; +pub const FileInformationInAssemblyOfAssemblyInActivationContext: ACTIVATION_CONTEXT_INFO_CLASS = 4i32; +pub const FileInformationInAssemblyOfAssemblyInActivationContxt: ACTIVATION_CONTEXT_INFO_CLASS = 4i32; +pub const FileSystemType: SERVICE_NODE_TYPE = 2i32; +pub const GC_ALLGESTURES: GESTURECONFIG_FLAGS = 1u32; +pub const GC_PAN: GESTURECONFIG_FLAGS = 1u32; +pub const GC_PAN_WITH_GUTTER: GESTURECONFIG_FLAGS = 8u32; +pub const GC_PAN_WITH_INERTIA: GESTURECONFIG_FLAGS = 16u32; +pub const GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY: GESTURECONFIG_FLAGS = 4u32; +pub const GC_PAN_WITH_SINGLE_FINGER_VERTICALLY: GESTURECONFIG_FLAGS = 2u32; +pub const GC_PRESSANDTAP: GESTURECONFIG_FLAGS = 1u32; +pub const GC_ROLLOVER: GESTURECONFIG_FLAGS = 1u32; +pub const GC_ROTATE: GESTURECONFIG_FLAGS = 1u32; +pub const GC_TWOFINGERTAP: GESTURECONFIG_FLAGS = 1u32; +pub const GC_ZOOM: GESTURECONFIG_FLAGS = 1u32; +pub const GUID_ACDC_POWER_SOURCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5d3e9a59_e9d5_4b00_a6bd_ff34ff516548); +pub const GUID_ACTIVE_POWERSCHEME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x31f9f286_5084_42fe_b720_2b0264993763); +pub const GUID_ADAPTIVE_INPUT_CONTROLLER_STATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e98fae9_f45a_4de1_a757_6031f197f6ea); +pub const GUID_ADAPTIVE_POWER_BEHAVIOR_SUBGROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8619b916_e004_4dd8_9b66_dae86f806698); +pub const GUID_ADVANCED_COLOR_QUALITY_BIAS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x684c3e69_a4f7_4014_8754_d45179a56167); +pub const GUID_ALLOW_AWAYMODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25dfa149_5dd1_4736_b5ab_e8a37b5b8187); +pub const GUID_ALLOW_DISPLAY_REQUIRED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa9ceb8da_cd46_44fb_a98b_02af69de4623); +pub const GUID_ALLOW_RTC_WAKE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbd3b718a_0680_4d9d_8ab2_e1d2b4ac806d); +pub const GUID_ALLOW_STANDBY_STATES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xabfc2519_3608_4c2a_94ea_171b0ed546ab); +pub const GUID_ALLOW_SYSTEM_REQUIRED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa4b195f5_8225_47d8_8012_9d41369786e2); +pub const GUID_APPLAUNCH_BUTTON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1a689231_7399_4e9a_8f99_b71f999db3fa); +pub const GUID_BACKGROUND_TASK_NOTIFICATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf23f240_2a54_48d8_b114_de1518ff052e); +pub const GUID_BATTERY_COUNT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7d263f15_fca4_49e5_854b_a9f2bfbd5c24); +pub const GUID_BATTERY_DISCHARGE_ACTION_0: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x637ea02f_bbcb_4015_8e2c_a1c7b9c0b546); +pub const GUID_BATTERY_DISCHARGE_ACTION_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd8742dcb_3e6a_4b3c_b3fe_374623cdcf06); +pub const GUID_BATTERY_DISCHARGE_ACTION_2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x421cba38_1a8e_4881_ac89_e33a8b04ece4); +pub const GUID_BATTERY_DISCHARGE_ACTION_3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x80472613_9780_455e_b308_72d3003cf2f8); +pub const GUID_BATTERY_DISCHARGE_FLAGS_0: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5dbb7c9f_38e9_40d2_9749_4f8a0e9f640f); +pub const GUID_BATTERY_DISCHARGE_FLAGS_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbcded951_187b_4d05_bccc_f7e51960c258); +pub const GUID_BATTERY_DISCHARGE_FLAGS_2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7fd2f0c4_feb7_4da3_8117_e3fbedc46582); +pub const GUID_BATTERY_DISCHARGE_FLAGS_3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x73613ccf_dbfa_4279_8356_4935f6bf62f3); +pub const GUID_BATTERY_DISCHARGE_LEVEL_0: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9a66d8d7_4ff7_4ef9_b5a2_5a326ca2a469); +pub const GUID_BATTERY_DISCHARGE_LEVEL_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8183ba9a_e910_48da_8769_14ae6dc1170a); +pub const GUID_BATTERY_DISCHARGE_LEVEL_2: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x07a07ca2_adaf_40d7_b077_533aaded1bfa); +pub const GUID_BATTERY_DISCHARGE_LEVEL_3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x58afd5a6_c2dd_47d2_9fbf_ef70cc5c5965); +pub const GUID_BATTERY_PERCENTAGE_REMAINING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa7ad8041_b45a_4cae_87a3_eecbb468a9e1); +pub const GUID_BATTERY_SUBGROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe73a048d_bf27_4f12_9731_8b2076e8891f); +pub const GUID_CONNECTIVITY_IN_STANDBY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf15576e8_98b7_4186_b944_eafa664402d9); +pub const GUID_CONSOLE_DISPLAY_STATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6fe69556_704a_47a0_8f24_c28d936fda47); +pub const GUID_CRITICAL_POWER_TRANSITION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb7a27025_e569_46c2_a504_2b96cad225a1); +pub const GUID_DEEP_SLEEP_ENABLED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd502f7ee_1dc7_4efd_a55d_f04b6f5c0545); +pub const GUID_DEEP_SLEEP_PLATFORM_STATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd23f2fb8_9536_4038_9c94_1ce02e5c2152); +pub const GUID_DEVICE_IDLE_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4faab71a_92e5_4726_b531_224559672d19); +pub const GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaded5e82_b909_4619_9949_f5d71dac0bcb); +pub const GUID_DEVICE_POWER_POLICY_VIDEO_DIM_BRIGHTNESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf1fbfde2_a960_4165_9f88_50667911ce96); +pub const GUID_DISCONNECTED_STANDBY_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x68afb2d9_ee95_47a8_8f50_4115088073b1); +pub const GUID_DISK_ADAPTIVE_POWERDOWN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x396a32e1_499a_40b2_9124_a96afe707667); +pub const GUID_DISK_BURST_IGNORE_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x80e3c60e_bb94_4ad8_bbe0_0d3195efc663); +pub const GUID_DISK_COALESCING_POWERDOWN_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc36f0eb4_2988_4a70_8eee_0884fc2c2433); +pub const GUID_DISK_IDLE_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x58e39ba8_b8e6_4ef6_90d0_89ae32b258d6); +pub const GUID_DISK_MAX_POWER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x51dea550_bb38_4bc4_991b_eacf37be5ec8); +pub const GUID_DISK_NVME_NOPPME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfc7372b6_ab2d_43ee_8797_15e9841f2cca); +pub const GUID_DISK_POWERDOWN_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6738e2c4_e8a5_4a42_b16a_e040e769756e); +pub const GUID_DISK_SUBGROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0012ee47_9041_4b5d_9b77_535fba8b1442); +pub const GUID_ENABLE_SWITCH_FORCED_SHUTDOWN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x833a6b62_dfa4_46d1_82f8_e09e34d029d6); +pub const GUID_ENERGY_SAVER_BATTERY_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe69653ca_cf7f_4f05_aa73_cb833fa90ad4); +pub const GUID_ENERGY_SAVER_BRIGHTNESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13d09884_f74e_474a_a852_b6bde8ad03a8); +pub const GUID_ENERGY_SAVER_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c5bb349_ad29_4ee2_9d0b_2b25270f7a81); +pub const GUID_ENERGY_SAVER_SUBGROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xde830923_a562_41af_a086_e3a2c6bad2da); +pub const GUID_EXECUTION_REQUIRED_REQUEST_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3166bc41_7e98_4e03_b34e_ec0f5f2b218e); +pub const GUID_GLOBAL_USER_PRESENCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x786e8a1d_b427_4344_9207_09e70bdcbea9); +pub const GUID_GPU_PREFERENCE_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdd848b2a_8a5d_4451_9ae2_39cd41658f6c); +pub const GUID_GRAPHICS_SUBGROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5fb4938d_1ee8_4b0f_9a3c_5036b0ab995c); +pub const GUID_HIBERNATE_FASTS4_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x94ac6d29_73ce_41a6_809f_6363ba21b47e); +pub const GUID_HIBERNATE_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9d7815a6_7ee4_497e_8888_515a05f02364); +pub const GUID_HUPR_ADAPTIVE_DIM_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf8c6097_12b8_4279_bbdd_44601ee5209d); +pub const GUID_HUPR_ADAPTIVE_DISPLAY_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0a7d6ab6_ac83_4ad1_8282_eca5b58308f3); +pub const GUID_IDLE_BACKGROUND_TASK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x515c31d8_f734_163d_a0fd_11a08c91e8f1); +pub const GUID_IDLE_RESILIENCY_PERIOD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc42b79aa_aa3a_484b_a98f_2cf32aa90a28); +pub const GUID_IDLE_RESILIENCY_SUBGROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2e601130_5351_4d9d_8e04_252966bad054); +pub const GUID_INTSTEER_LOAD_PER_PROC_TRIGGER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x73cde64d_d720_4bb2_a860_c755afe77ef2); +pub const GUID_INTSTEER_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2bfc24f9_5ea2_4801_8213_3dbae01aa39d); +pub const GUID_INTSTEER_SUBGROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x48672f38_7a9a_4bb2_8bf8_3d85be19de4e); +pub const GUID_INTSTEER_TIME_UNPARK_TRIGGER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd6ba4903_386f_4c2c_8adb_5c21b3328d25); +pub const GUID_LEGACY_RTC_MITIGATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1a34bdc3_7e6b_442e_a9d0_64b6ef378e84); +pub const GUID_LIDCLOSE_ACTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ca83367_6e45_459f_a27b_476b1d01c936); +pub const GUID_LIDOPEN_POWERSTATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x99ff10e7_23b1_4c07_a9d1_5c3206d741b4); +pub const GUID_LIDSWITCH_STATE_CHANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xba3e0f4d_b817_4094_a2d1_d56379e6a0f3); +pub const GUID_LIDSWITCH_STATE_RELIABILITY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae4c4ff1_d361_43f4_80aa_bbb6eb03de94); +pub const GUID_LOCK_CONSOLE_ON_WAKE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e796bdb_100d_47d6_a2d5_f7d2daa51f51); +pub const GUID_MAX_POWER_SAVINGS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa1841308_3541_4fab_bc81_f71556f20b4a); +pub const GUID_MIN_POWER_SAVINGS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8c5e7fda_e8bf_4a96_9a85_a6e23a8c635c); +pub const GUID_MIXED_REALITY_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1e626b4e_cf04_4f8d_9cc7_c97c5b0f2391); +pub const GUID_MONITOR_POWER_ON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x02731015_4510_4526_99e6_e5a17ebd1aea); +pub const GUID_NON_ADAPTIVE_INPUT_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5adbbfbc_074e_4da1_ba38_db8b36b2c8f3); +pub const GUID_PCIEXPRESS_ASPM_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xee12f906_d277_404b_b6da_e5fa1a576df5); +pub const GUID_PCIEXPRESS_SETTINGS_SUBGROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x501a4d13_42af_4429_9fd1_a8218c268e20); +pub const GUID_POWERBUTTON_ACTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7648efa3_dd9c_4e3e_b566_50f929386280); +pub const GUID_POWERSCHEME_PERSONALITY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x245d8541_3943_4422_b025_13a784f679b7); +pub const GUID_POWER_SAVING_STATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe00958c0_c213_4ace_ac77_fecced2eeea5); +pub const GUID_PROCESSOR_ALLOW_THROTTLING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3b04d4fd_1cc7_4f23_ab1c_d1337819c4bb); +pub const GUID_PROCESSOR_CLASS0_FLOOR_PERF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfddc842b_8364_4edc_94cf_c17f60de1c80); +pub const GUID_PROCESSOR_CLASS1_INITIAL_PERF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1facfc65_a930_4bc5_9f38_504ec097bbc0); +pub const GUID_PROCESSOR_COMPLEX_PARKING_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb669a5e9_7b1d_4132_baaa_49190abcfeb6); +pub const GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_DECREASE_FACTOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8f7b45e3_c393_480a_878c_f67ac3d07082); +pub const GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5b33697b_e89d_4d38_aa46_9e7dfb7cd2f9); +pub const GUID_PROCESSOR_CORE_PARKING_AFFINITY_WEIGHTING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe70867f1_fa2f_4f4e_aea1_4d8a0ba23b20); +pub const GUID_PROCESSOR_CORE_PARKING_DECREASE_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x71021b41_c749_4d21_be74_a00f335d582b); +pub const GUID_PROCESSOR_CORE_PARKING_DECREASE_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x68dd2f27_a4ce_4e11_8487_3794e4135dfa); +pub const GUID_PROCESSOR_CORE_PARKING_DECREASE_TIME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdfd10d17_d5eb_45dd_877a_9a34ddd15c82); +pub const GUID_PROCESSOR_CORE_PARKING_INCREASE_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc7be0679_2817_4d69_9d02_519a537ed0c6); +pub const GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdf142941_20f3_4edf_9a4a_9c83d3d717d1); +pub const GUID_PROCESSOR_CORE_PARKING_INCREASE_TIME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2ddd5a84_5a71_437e_912a_db0b8c788732); +pub const GUID_PROCESSOR_CORE_PARKING_MAX_CORES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xea062031_0e34_4ff1_9b6d_eb1059334028); +pub const GUID_PROCESSOR_CORE_PARKING_MAX_CORES_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xea062031_0e34_4ff1_9b6d_eb1059334029); +pub const GUID_PROCESSOR_CORE_PARKING_MIN_CORES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cc5b647_c1df_4637_891a_dec35c318583); +pub const GUID_PROCESSOR_CORE_PARKING_MIN_CORES_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cc5b647_c1df_4637_891a_dec35c318584); +pub const GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_DECREASE_FACTOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1299023c_bc28_4f0a_81ec_d3295a8d815d); +pub const GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9ac18e92_aa3c_4e27_b307_01ae37307129); +pub const GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x943c8cb6_6f93_4227_ad87_e9a3feec08d1); +pub const GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_WEIGHTING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8809c2d8_b155_42d4_bcda_0d345651b1db); +pub const GUID_PROCESSOR_DISTRIBUTE_UTILITY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe0007330_f589_42ed_a401_5ddb10e785d3); +pub const GUID_PROCESSOR_DUTY_CYCLING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4e4450b3_6179_4e91_b8f1_5bb9938f81a1); +pub const GUID_PROCESSOR_FREQUENCY_LIMIT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x75b0ae3f_bce0_45a7_8c89_c9611c25e100); +pub const GUID_PROCESSOR_FREQUENCY_LIMIT_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x75b0ae3f_bce0_45a7_8c89_c9611c25e101); +pub const GUID_PROCESSOR_HETEROGENEOUS_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f2f5cfa_f10c_4823_b5e1_e93ae85f46b5); +pub const GUID_PROCESSOR_HETERO_DECREASE_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf8861c27_95e7_475c_865b_13c0cb3f9d6b); +pub const GUID_PROCESSOR_HETERO_DECREASE_THRESHOLD_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf8861c27_95e7_475c_865b_13c0cb3f9d6c); +pub const GUID_PROCESSOR_HETERO_DECREASE_TIME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f2492b6_60b1_45e5_ae55_773f8cd5caec); +pub const GUID_PROCESSOR_HETERO_INCREASE_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb000397d_9b0b_483d_98c9_692a6060cfbf); +pub const GUID_PROCESSOR_HETERO_INCREASE_THRESHOLD_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb000397d_9b0b_483d_98c9_692a6060cfc0); +pub const GUID_PROCESSOR_HETERO_INCREASE_TIME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4009efa7_e72d_4cba_9edf_91084ea8cbc3); +pub const GUID_PROCESSOR_IDLESTATE_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x68f262a7_f621_4069_b9a5_4874169be23c); +pub const GUID_PROCESSOR_IDLE_ALLOW_SCALING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6c2993b0_8f48_481f_bcc6_00dd2742aa06); +pub const GUID_PROCESSOR_IDLE_DEMOTE_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4b92d758_5a24_4851_a470_815d78aee119); +pub const GUID_PROCESSOR_IDLE_DISABLE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5d76a2ca_e8c0_402f_a133_2158492d58ad); +pub const GUID_PROCESSOR_IDLE_PROMOTE_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b224883_b3cc_4d79_819f_8374152cbe7c); +pub const GUID_PROCESSOR_IDLE_STATE_MAXIMUM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9943e905_9a30_4ec1_9b99_44dd3b76f7a2); +pub const GUID_PROCESSOR_IDLE_TIME_CHECK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc4581c31_89ab_4597_8e2b_9c9cab440e6b); +pub const GUID_PROCESSOR_LATENCY_HINT_MIN_UNPARK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x616cdaa5_695e_4545_97ad_97dc2d1bdd88); +pub const GUID_PROCESSOR_LATENCY_HINT_MIN_UNPARK_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x616cdaa5_695e_4545_97ad_97dc2d1bdd89); +pub const GUID_PROCESSOR_LONG_THREAD_ARCH_CLASS_LOWER_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43f278bc_0f8a_46d0_8b31_9a23e615d713); +pub const GUID_PROCESSOR_LONG_THREAD_ARCH_CLASS_UPPER_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbf903d33_9d24_49d3_a468_e65e0325046a); +pub const GUID_PROCESSOR_MODULE_PARKING_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb0deaf6b_59c0_4523_8a45_ca7f40244114); +pub const GUID_PROCESSOR_PARKING_CONCURRENCY_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2430ab6f_a520_44a2_9601_f7f23b5134b1); +pub const GUID_PROCESSOR_PARKING_CORE_OVERRIDE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa55612aa_f624_42c6_a443_7397d064c04f); +pub const GUID_PROCESSOR_PARKING_DISTRIBUTION_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4bdaf4e9_d103_46d7_a5f0_6280121616ef); +pub const GUID_PROCESSOR_PARKING_HEADROOM_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf735a673_2066_4f80_a0c5_ddee0cf1bf5d); +pub const GUID_PROCESSOR_PARKING_PERF_STATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x447235c7_6a8d_4cc0_8e24_9eaf70b96e2b); +pub const GUID_PROCESSOR_PARKING_PERF_STATE_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x447235c7_6a8d_4cc0_8e24_9eaf70b96e2c); +pub const GUID_PROCESSOR_PERFSTATE_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbbdc3814_18e9_4463_8a55_d197327c45c0); +pub const GUID_PROCESSOR_PERF_AUTONOMOUS_ACTIVITY_WINDOW: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcfeda3d0_7697_4566_a922_a9086cd49dfa); +pub const GUID_PROCESSOR_PERF_AUTONOMOUS_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8baa4a8a_14c6_4451_8e8b_14bdbd197537); +pub const GUID_PROCESSOR_PERF_BOOST_MODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbe337238_0d82_4146_a960_4f3749d470c7); +pub const GUID_PROCESSOR_PERF_BOOST_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x45bcc044_d885_43e2_8605_ee0ec6e96b59); +pub const GUID_PROCESSOR_PERF_CORE_PARKING_HISTORY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x77d7f282_8f1a_42cd_8537_45450a839be8); +pub const GUID_PROCESSOR_PERF_DECREASE_HISTORY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0300f6f8_abd6_45a9_b74f_4908691a40b5); +pub const GUID_PROCESSOR_PERF_DECREASE_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x40fbefc7_2e9d_4d25_a185_0cfd8574bac6); +pub const GUID_PROCESSOR_PERF_DECREASE_POLICY_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x40fbefc7_2e9d_4d25_a185_0cfd8574bac7); +pub const GUID_PROCESSOR_PERF_DECREASE_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x12a0ab44_fe28_4fa9_b3bd_4b64f44960a6); +pub const GUID_PROCESSOR_PERF_DECREASE_THRESHOLD_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x12a0ab44_fe28_4fa9_b3bd_4b64f44960a7); +pub const GUID_PROCESSOR_PERF_DECREASE_TIME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd8edeb9b_95cf_4f95_a73c_b061973693c8); +pub const GUID_PROCESSOR_PERF_DECREASE_TIME_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd8edeb9b_95cf_4f95_a73c_b061973693c9); +pub const GUID_PROCESSOR_PERF_ENERGY_PERFORMANCE_PREFERENCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36687f9e_e3a5_4dbf_b1dc_15eb381c6863); +pub const GUID_PROCESSOR_PERF_ENERGY_PERFORMANCE_PREFERENCE_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x36687f9e_e3a5_4dbf_b1dc_15eb381c6864); +pub const GUID_PROCESSOR_PERF_HISTORY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7d24baa7_0b84_480f_840c_1b0743c00f5f); +pub const GUID_PROCESSOR_PERF_HISTORY_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7d24baa7_0b84_480f_840c_1b0743c00f60); +pub const GUID_PROCESSOR_PERF_INCREASE_HISTORY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x99b3ef01_752f_46a1_80fb_7730011f2354); +pub const GUID_PROCESSOR_PERF_INCREASE_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x465e1f50_b610_473a_ab58_00d1077dc418); +pub const GUID_PROCESSOR_PERF_INCREASE_POLICY_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x465e1f50_b610_473a_ab58_00d1077dc419); +pub const GUID_PROCESSOR_PERF_INCREASE_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x06cadf0e_64ed_448a_8927_ce7bf90eb35d); +pub const GUID_PROCESSOR_PERF_INCREASE_THRESHOLD_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x06cadf0e_64ed_448a_8927_ce7bf90eb35e); +pub const GUID_PROCESSOR_PERF_INCREASE_TIME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x984cf492_3bed_4488_a8f9_4286c97bf5aa); +pub const GUID_PROCESSOR_PERF_INCREASE_TIME_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x984cf492_3bed_4488_a8f9_4286c97bf5ab); +pub const GUID_PROCESSOR_PERF_LATENCY_HINT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0822df31_9c83_441c_a079_0de4cf009c7b); +pub const GUID_PROCESSOR_PERF_LATENCY_HINT_PERF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x619b7505_003b_4e82_b7a6_4dd29c300971); +pub const GUID_PROCESSOR_PERF_LATENCY_HINT_PERF_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x619b7505_003b_4e82_b7a6_4dd29c300972); +pub const GUID_PROCESSOR_PERF_TIME_CHECK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d2b0152_7d5c_498b_88e2_34345392a2c5); +pub const GUID_PROCESSOR_RESPONSIVENESS_DISABLE_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38b8383d_cce0_4c79_9e3e_56a4f17cc480); +pub const GUID_PROCESSOR_RESPONSIVENESS_DISABLE_THRESHOLD_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38b8383d_cce0_4c79_9e3e_56a4f17cc481); +pub const GUID_PROCESSOR_RESPONSIVENESS_DISABLE_TIME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf565999f_3fb0_411a_a226_3f0198dec130); +pub const GUID_PROCESSOR_RESPONSIVENESS_DISABLE_TIME_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf565999f_3fb0_411a_a226_3f0198dec131); +pub const GUID_PROCESSOR_RESPONSIVENESS_ENABLE_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d44e256_7222_4415_a9ed_9c45fa3dd830); +pub const GUID_PROCESSOR_RESPONSIVENESS_ENABLE_THRESHOLD_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d44e256_7222_4415_a9ed_9c45fa3dd831); +pub const GUID_PROCESSOR_RESPONSIVENESS_ENABLE_TIME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d915188_7830_49ae_a79a_0fb0a1e5a200); +pub const GUID_PROCESSOR_RESPONSIVENESS_ENABLE_TIME_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d915188_7830_49ae_a79a_0fb0a1e5a201); +pub const GUID_PROCESSOR_RESPONSIVENESS_EPP_CEILING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4427c73b_9756_4a5c_b84b_c7bda79c7320); +pub const GUID_PROCESSOR_RESPONSIVENESS_EPP_CEILING_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4427c73b_9756_4a5c_b84b_c7bda79c7321); +pub const GUID_PROCESSOR_RESPONSIVENESS_PERF_FLOOR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xce8e92ee_6a86_4572_bfe0_20c21d03cd40); +pub const GUID_PROCESSOR_RESPONSIVENESS_PERF_FLOOR_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xce8e92ee_6a86_4572_bfe0_20c21d03cd41); +pub const GUID_PROCESSOR_SETTINGS_SUBGROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x54533251_82be_4824_96c1_47b60b740d00); +pub const GUID_PROCESSOR_SHORT_THREAD_ARCH_CLASS_LOWER_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53824d46_87bd_4739_aa1b_aa793fac36d6); +pub const GUID_PROCESSOR_SHORT_THREAD_ARCH_CLASS_UPPER_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x828423eb_8662_4344_90f7_52bf15870f5a); +pub const GUID_PROCESSOR_SHORT_THREAD_RUNTIME_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd92998c2_6a48_49ca_85d4_8cceec294570); +pub const GUID_PROCESSOR_SHORT_THREAD_SCHEDULING_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbae08b81_2d5e_4688_ad6a_13243356654b); +pub const GUID_PROCESSOR_SMT_UNPARKING_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb28a6829_c5f7_444e_8f61_10e24e85c532); +pub const GUID_PROCESSOR_SOFT_PARKING_LATENCY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x97cfac41_2217_47eb_992d_618b1977c907); +pub const GUID_PROCESSOR_THREAD_SCHEDULING_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x93b8b6dc_0698_4d1c_9ee4_0644e900c85d); +pub const GUID_PROCESSOR_THROTTLE_MAXIMUM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbc5038f7_23e0_4960_96da_33abaf5935ec); +pub const GUID_PROCESSOR_THROTTLE_MAXIMUM_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbc5038f7_23e0_4960_96da_33abaf5935ed); +pub const GUID_PROCESSOR_THROTTLE_MINIMUM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x893dee8e_2bef_41e0_89c6_b55d0929964c); +pub const GUID_PROCESSOR_THROTTLE_MINIMUM_1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x893dee8e_2bef_41e0_89c6_b55d0929964d); +pub const GUID_PROCESSOR_THROTTLE_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57027304_4af6_4104_9260_e3d95248fc36); +pub const GUID_SESSION_DISPLAY_STATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2b84c20e_ad23_4ddf_93db_05ffbd7efca5); +pub const GUID_SESSION_USER_PRESENCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3c0f4548_c03f_4c4d_b9f2_237ede686376); +pub const GUID_SLEEPBUTTON_ACTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x96996bc0_ad50_47ec_923b_6f41874dd9eb); +pub const GUID_SLEEP_IDLE_THRESHOLD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x81cd32e0_7833_44f3_8737_7081f38d1f70); +pub const GUID_SLEEP_SUBGROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x238c9fa8_0aad_41ed_83f4_97be242c8f20); +pub const GUID_SPR_ACTIVE_SESSION_CHANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e24ce38_c393_4742_bdb1_744f4b9ee08e); +pub const GUID_STANDBY_BUDGET_GRACE_PERIOD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x60c07fe1_0556_45cf_9903_d56e32210242); +pub const GUID_STANDBY_BUDGET_PERCENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9fe527be_1b70_48da_930d_7bcf17b44990); +pub const GUID_STANDBY_RESERVE_GRACE_PERIOD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc763ee92_71e8_4127_84eb_f6ed043a3e3d); +pub const GUID_STANDBY_RESERVE_TIME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x468fe7e5_1158_46ec_88bc_5b96c9e44fd0); +pub const GUID_STANDBY_RESET_PERCENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49cb11a5_56e2_4afb_9d38_3df47872e21b); +pub const GUID_STANDBY_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x29f6c1db_86da_48c5_9fdb_f2b67b1f44da); +pub const GUID_SYSTEM_AWAYMODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x98a7f580_01f7_48aa_9c0f_44352c29e5c0); +pub const GUID_SYSTEM_BUTTON_SUBGROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4f971e89_eebd_4455_a8de_9e59040e7347); +pub const GUID_SYSTEM_COOLING_POLICY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x94d3a615_a899_4ac5_ae2b_e4d8f634367f); +pub const GUID_TYPICAL_POWER_SAVINGS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x381b4222_f694_41f0_9685_ff5bb260df2e); +pub const GUID_UNATTEND_SLEEP_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7bc4a2f9_d8fc_4469_b07b_33eb785aaca0); +pub const GUID_USERINTERFACEBUTTON_ACTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa7066653_8d6c_40a8_910e_a1f54b84c7e5); +pub const GUID_USER_PRESENCE_PREDICTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x82011705_fb95_4d46_8d35_4042b1d20def); +pub const GUID_VIDEO_ADAPTIVE_DISPLAY_BRIGHTNESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfbd9aa66_9553_4097_ba44_ed6e9d65eab8); +pub const GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeed904df_b142_4183_b10b_5a1197a37864); +pub const GUID_VIDEO_ADAPTIVE_POWERDOWN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x90959d22_d6a1_49b9_af93_bce885ad335b); +pub const GUID_VIDEO_ANNOYANCE_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x82dbcf2d_cd67_40c5_bfdc_9f1a5ccd4663); +pub const GUID_VIDEO_CONSOLE_LOCK_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8ec4b3a5_6868_48c2_be75_4f3044be88a7); +pub const GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8ffee2c6_2d01_46be_adb9_398addc5b4ff); +pub const GUID_VIDEO_DIM_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x17aaa29b_8b43_4b94_aafe_35f64daaf1ee); +pub const GUID_VIDEO_POWERDOWN_TIMEOUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3c0bc021_c8a8_4e07_a973_6b14cbcb2b7e); +pub const GUID_VIDEO_SUBGROUP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7516b95f_f776_4464_8c53_06167f40cc99); +pub const HEAP_OPTIMIZE_RESOURCES_CURRENT_VERSION: u32 = 1u32; +pub const HIBERFILE_TYPE_FULL: u32 = 2u32; +pub const HIBERFILE_TYPE_MAX: u32 = 3u32; +pub const HIBERFILE_TYPE_NONE: u32 = 0u32; +pub const HIBERFILE_TYPE_REDUCED: u32 = 1u32; +pub const HiberFileBucket16GB: HIBERFILE_BUCKET_SIZE = 4i32; +pub const HiberFileBucket1GB: HIBERFILE_BUCKET_SIZE = 0i32; +pub const HiberFileBucket2GB: HIBERFILE_BUCKET_SIZE = 1i32; +pub const HiberFileBucket32GB: HIBERFILE_BUCKET_SIZE = 5i32; +pub const HiberFileBucket4GB: HIBERFILE_BUCKET_SIZE = 2i32; +pub const HiberFileBucket8GB: HIBERFILE_BUCKET_SIZE = 3i32; +pub const HiberFileBucketMax: HIBERFILE_BUCKET_SIZE = 7i32; +pub const HiberFileBucketUnlimited: HIBERFILE_BUCKET_SIZE = 6i32; +pub const IGP_CONVERSION: IGP_ID = 8u32; +pub const IGP_GETIMEVERSION: IGP_ID = 4294967292u32; +pub const IGP_PROPERTY: IGP_ID = 4u32; +pub const IGP_SELECT: IGP_ID = 24u32; +pub const IGP_SENTENCE: IGP_ID = 12u32; +pub const IGP_SETCOMPSTR: IGP_ID = 20u32; +pub const IGP_UI: IGP_ID = 16u32; +pub const IMAGE_ARCHIVE_END: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("`\n"); +pub const IMAGE_ARCHIVE_HYBRIDMAP_MEMBER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("// "); +pub const IMAGE_ARCHIVE_LINKER_MEMBER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("/ "); +pub const IMAGE_ARCHIVE_LONGNAMES_MEMBER: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("// "); +pub const IMAGE_ARCHIVE_PAD: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("\n"); +pub const IMAGE_ARCHIVE_START: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("!\n"); +pub const IMAGE_ARCHIVE_START_SIZE: u32 = 8u32; +pub const IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF: IMAGE_AUX_SYMBOL_TYPE = 1i32; +pub const IMAGE_COMDAT_SELECT_ANY: u32 = 2u32; +pub const IMAGE_COMDAT_SELECT_ASSOCIATIVE: u32 = 5u32; +pub const IMAGE_COMDAT_SELECT_EXACT_MATCH: u32 = 4u32; +pub const IMAGE_COMDAT_SELECT_LARGEST: u32 = 6u32; +pub const IMAGE_COMDAT_SELECT_NEWEST: u32 = 7u32; +pub const IMAGE_COMDAT_SELECT_NODUPLICATES: u32 = 1u32; +pub const IMAGE_COMDAT_SELECT_SAME_SIZE: u32 = 3u32; +pub const IMAGE_COR_EATJ_THUNK_SIZE: ReplacesCorHdrNumericDefines = 32i32; +pub const IMAGE_COR_MIH_BASICBLOCK: ReplacesCorHdrNumericDefines = 8i32; +pub const IMAGE_COR_MIH_EHRVA: ReplacesCorHdrNumericDefines = 2i32; +pub const IMAGE_COR_MIH_METHODRVA: ReplacesCorHdrNumericDefines = 1i32; +pub const IMAGE_DEBUG_MISC_EXENAME: u32 = 1u32; +pub const IMAGE_DEBUG_TYPE_BBT: u32 = 10u32; +pub const IMAGE_DEBUG_TYPE_CLSID: u32 = 11u32; +pub const IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS: u32 = 20u32; +pub const IMAGE_DEBUG_TYPE_ILTCG: u32 = 14u32; +pub const IMAGE_DEBUG_TYPE_MPX: u32 = 15u32; +pub const IMAGE_DEBUG_TYPE_OMAP_FROM_SRC: u32 = 8u32; +pub const IMAGE_DEBUG_TYPE_OMAP_TO_SRC: u32 = 7u32; +pub const IMAGE_DEBUG_TYPE_POGO: u32 = 13u32; +pub const IMAGE_DEBUG_TYPE_REPRO: u32 = 16u32; +pub const IMAGE_DEBUG_TYPE_RESERVED10: u32 = 10u32; +pub const IMAGE_DEBUG_TYPE_SPGO: u32 = 18u32; +pub const IMAGE_DEBUG_TYPE_VC_FEATURE: u32 = 12u32; +pub const IMAGE_DOS_SIGNATURE: u16 = 23117u16; +pub const IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE: u32 = 7u32; +pub const IMAGE_DYNAMIC_RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER: u32 = 3u32; +pub const IMAGE_DYNAMIC_RELOCATION_GUARD_INDIR_CONTROL_TRANSFER: u32 = 4u32; +pub const IMAGE_DYNAMIC_RELOCATION_GUARD_RF_EPILOGUE: u32 = 2u32; +pub const IMAGE_DYNAMIC_RELOCATION_GUARD_RF_PROLOGUE: u32 = 1u32; +pub const IMAGE_DYNAMIC_RELOCATION_GUARD_SWITCHTABLE_BRANCH: u32 = 5u32; +pub const IMAGE_ENCLAVE_FLAG_PRIMARY_IMAGE: u32 = 1u32; +pub const IMAGE_ENCLAVE_IMPORT_MATCH_AUTHOR_ID: u32 = 2u32; +pub const IMAGE_ENCLAVE_IMPORT_MATCH_FAMILY_ID: u32 = 3u32; +pub const IMAGE_ENCLAVE_IMPORT_MATCH_IMAGE_ID: u32 = 4u32; +pub const IMAGE_ENCLAVE_IMPORT_MATCH_NONE: u32 = 0u32; +pub const IMAGE_ENCLAVE_IMPORT_MATCH_UNIQUE_ID: u32 = 1u32; +pub const IMAGE_ENCLAVE_LONG_ID_LENGTH: u32 = 32u32; +pub const IMAGE_ENCLAVE_POLICY_DEBUGGABLE: u32 = 1u32; +pub const IMAGE_ENCLAVE_SHORT_ID_LENGTH: u32 = 16u32; +pub const IMAGE_FUNCTION_OVERRIDE_ARM64_BRANCH26: u32 = 2u32; +pub const IMAGE_FUNCTION_OVERRIDE_ARM64_THUNK: u32 = 3u32; +pub const IMAGE_FUNCTION_OVERRIDE_INVALID: u32 = 0u32; +pub const IMAGE_FUNCTION_OVERRIDE_X64_REL32: u32 = 1u32; +pub const IMAGE_GUARD_CASTGUARD_PRESENT: u32 = 16777216u32; +pub const IMAGE_GUARD_CFW_INSTRUMENTED: u32 = 512u32; +pub const IMAGE_GUARD_CF_ENABLE_EXPORT_SUPPRESSION: u32 = 32768u32; +pub const IMAGE_GUARD_CF_EXPORT_SUPPRESSION_INFO_PRESENT: u32 = 16384u32; +pub const IMAGE_GUARD_CF_FUNCTION_TABLE_PRESENT: u32 = 1024u32; +pub const IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_MASK: u32 = 4026531840u32; +pub const IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_SHIFT: u32 = 28u32; +pub const IMAGE_GUARD_CF_INSTRUMENTED: u32 = 256u32; +pub const IMAGE_GUARD_CF_LONGJUMP_TABLE_PRESENT: u32 = 65536u32; +pub const IMAGE_GUARD_DELAYLOAD_IAT_IN_ITS_OWN_SECTION: u32 = 8192u32; +pub const IMAGE_GUARD_EH_CONTINUATION_TABLE_PRESENT: u32 = 4194304u32; +pub const IMAGE_GUARD_FLAG_EXPORT_SUPPRESSED: u32 = 2u32; +pub const IMAGE_GUARD_FLAG_FID_LANGEXCPTHANDLER: u32 = 4u32; +pub const IMAGE_GUARD_FLAG_FID_SUPPRESSED: u32 = 1u32; +pub const IMAGE_GUARD_FLAG_FID_XFG: u32 = 8u32; +pub const IMAGE_GUARD_MEMCPY_PRESENT: u32 = 33554432u32; +pub const IMAGE_GUARD_PROTECT_DELAYLOAD_IAT: u32 = 4096u32; +pub const IMAGE_GUARD_RETPOLINE_PRESENT: u32 = 1048576u32; +pub const IMAGE_GUARD_RF_ENABLE: u32 = 262144u32; +pub const IMAGE_GUARD_RF_INSTRUMENTED: u32 = 131072u32; +pub const IMAGE_GUARD_RF_STRICT: u32 = 524288u32; +pub const IMAGE_GUARD_SECURITY_COOKIE_UNUSED: u32 = 2048u32; +pub const IMAGE_GUARD_XFG_ENABLED: u32 = 8388608u32; +pub const IMAGE_HOT_PATCH_ABSOLUTE: u32 = 180224u32; +pub const IMAGE_HOT_PATCH_BASE_CAN_ROLL_BACK: u32 = 2u32; +pub const IMAGE_HOT_PATCH_BASE_OBLIGATORY: u32 = 1u32; +pub const IMAGE_HOT_PATCH_CALL_TARGET: u32 = 278528u32; +pub const IMAGE_HOT_PATCH_CHUNK_INVERSE: u32 = 2147483648u32; +pub const IMAGE_HOT_PATCH_CHUNK_OBLIGATORY: u32 = 1073741824u32; +pub const IMAGE_HOT_PATCH_CHUNK_RESERVED: u32 = 1072705536u32; +pub const IMAGE_HOT_PATCH_CHUNK_SIZE: u32 = 4095u32; +pub const IMAGE_HOT_PATCH_CHUNK_SOURCE_RVA: u32 = 32768u32; +pub const IMAGE_HOT_PATCH_CHUNK_TARGET_RVA: u32 = 16384u32; +pub const IMAGE_HOT_PATCH_CHUNK_TYPE: u32 = 1032192u32; +pub const IMAGE_HOT_PATCH_DYNAMIC_VALUE: u32 = 491520u32; +pub const IMAGE_HOT_PATCH_FUNCTION: u32 = 114688u32; +pub const IMAGE_HOT_PATCH_INDIRECT: u32 = 376832u32; +pub const IMAGE_HOT_PATCH_NONE: u32 = 0u32; +pub const IMAGE_HOT_PATCH_NO_CALL_TARGET: u32 = 409600u32; +pub const IMAGE_HOT_PATCH_REL32: u32 = 245760u32; +pub const IMAGE_NT_SIGNATURE: u32 = 17744u32; +pub const IMAGE_NUMBEROF_DIRECTORY_ENTRIES: u32 = 16u32; +pub const IMAGE_ORDINAL_FLAG32: u32 = 2147483648u32; +pub const IMAGE_ORDINAL_FLAG64: u64 = 9223372036854775808u64; +pub const IMAGE_OS2_SIGNATURE: u16 = 17742u16; +pub const IMAGE_OS2_SIGNATURE_LE: u16 = 17740u16; +pub const IMAGE_POLICY_METADATA_VERSION: u32 = 1u32; +pub const IMAGE_POLICY_SECTION_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!(".tPolicy"); +pub const IMAGE_REL_ALPHA_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_ALPHA_BRADDR: u32 = 7u32; +pub const IMAGE_REL_ALPHA_GPDISP: u32 = 6u32; +pub const IMAGE_REL_ALPHA_GPREL32: u32 = 3u32; +pub const IMAGE_REL_ALPHA_GPRELHI: u32 = 23u32; +pub const IMAGE_REL_ALPHA_GPRELLO: u32 = 22u32; +pub const IMAGE_REL_ALPHA_HINT: u32 = 8u32; +pub const IMAGE_REL_ALPHA_INLINE_REFLONG: u32 = 9u32; +pub const IMAGE_REL_ALPHA_LITERAL: u32 = 4u32; +pub const IMAGE_REL_ALPHA_LITUSE: u32 = 5u32; +pub const IMAGE_REL_ALPHA_MATCH: u32 = 13u32; +pub const IMAGE_REL_ALPHA_PAIR: u32 = 12u32; +pub const IMAGE_REL_ALPHA_REFHI: u32 = 10u32; +pub const IMAGE_REL_ALPHA_REFLO: u32 = 11u32; +pub const IMAGE_REL_ALPHA_REFLONG: u32 = 1u32; +pub const IMAGE_REL_ALPHA_REFLONGNB: u32 = 16u32; +pub const IMAGE_REL_ALPHA_REFQ1: u32 = 21u32; +pub const IMAGE_REL_ALPHA_REFQ2: u32 = 20u32; +pub const IMAGE_REL_ALPHA_REFQ3: u32 = 19u32; +pub const IMAGE_REL_ALPHA_REFQUAD: u32 = 2u32; +pub const IMAGE_REL_ALPHA_SECREL: u32 = 15u32; +pub const IMAGE_REL_ALPHA_SECRELHI: u32 = 18u32; +pub const IMAGE_REL_ALPHA_SECRELLO: u32 = 17u32; +pub const IMAGE_REL_ALPHA_SECTION: u32 = 14u32; +pub const IMAGE_REL_AMD64_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_AMD64_ADDR32: u32 = 2u32; +pub const IMAGE_REL_AMD64_ADDR32NB: u32 = 3u32; +pub const IMAGE_REL_AMD64_ADDR64: u32 = 1u32; +pub const IMAGE_REL_AMD64_CFG_BR: u32 = 20u32; +pub const IMAGE_REL_AMD64_CFG_BR_REX: u32 = 21u32; +pub const IMAGE_REL_AMD64_CFG_CALL: u32 = 22u32; +pub const IMAGE_REL_AMD64_EHANDLER: u32 = 17u32; +pub const IMAGE_REL_AMD64_IMPORT_BR: u32 = 18u32; +pub const IMAGE_REL_AMD64_IMPORT_CALL: u32 = 19u32; +pub const IMAGE_REL_AMD64_INDIR_BR: u32 = 23u32; +pub const IMAGE_REL_AMD64_INDIR_BR_REX: u32 = 24u32; +pub const IMAGE_REL_AMD64_INDIR_BR_SWITCHTABLE_FIRST: u32 = 32u32; +pub const IMAGE_REL_AMD64_INDIR_BR_SWITCHTABLE_LAST: u32 = 47u32; +pub const IMAGE_REL_AMD64_INDIR_CALL: u32 = 25u32; +pub const IMAGE_REL_AMD64_PAIR: u32 = 15u32; +pub const IMAGE_REL_AMD64_REL32: u32 = 4u32; +pub const IMAGE_REL_AMD64_REL32_1: u32 = 5u32; +pub const IMAGE_REL_AMD64_REL32_2: u32 = 6u32; +pub const IMAGE_REL_AMD64_REL32_3: u32 = 7u32; +pub const IMAGE_REL_AMD64_REL32_4: u32 = 8u32; +pub const IMAGE_REL_AMD64_REL32_5: u32 = 9u32; +pub const IMAGE_REL_AMD64_SECREL: u32 = 11u32; +pub const IMAGE_REL_AMD64_SECREL7: u32 = 12u32; +pub const IMAGE_REL_AMD64_SECTION: u32 = 10u32; +pub const IMAGE_REL_AMD64_SREL32: u32 = 14u32; +pub const IMAGE_REL_AMD64_SSPAN32: u32 = 16u32; +pub const IMAGE_REL_AMD64_TOKEN: u32 = 13u32; +pub const IMAGE_REL_AM_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_AM_ADDR32: u32 = 1u32; +pub const IMAGE_REL_AM_ADDR32NB: u32 = 2u32; +pub const IMAGE_REL_AM_CALL32: u32 = 3u32; +pub const IMAGE_REL_AM_FUNCINFO: u32 = 4u32; +pub const IMAGE_REL_AM_REL32_1: u32 = 5u32; +pub const IMAGE_REL_AM_REL32_2: u32 = 6u32; +pub const IMAGE_REL_AM_SECREL: u32 = 7u32; +pub const IMAGE_REL_AM_SECTION: u32 = 8u32; +pub const IMAGE_REL_AM_TOKEN: u32 = 9u32; +pub const IMAGE_REL_ARM64_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_ARM64_ADDR32: u32 = 1u32; +pub const IMAGE_REL_ARM64_ADDR32NB: u32 = 2u32; +pub const IMAGE_REL_ARM64_ADDR64: u32 = 14u32; +pub const IMAGE_REL_ARM64_BRANCH19: u32 = 15u32; +pub const IMAGE_REL_ARM64_BRANCH26: u32 = 3u32; +pub const IMAGE_REL_ARM64_PAGEBASE_REL21: u32 = 4u32; +pub const IMAGE_REL_ARM64_PAGEOFFSET_12A: u32 = 6u32; +pub const IMAGE_REL_ARM64_PAGEOFFSET_12L: u32 = 7u32; +pub const IMAGE_REL_ARM64_REL21: u32 = 5u32; +pub const IMAGE_REL_ARM64_SECREL: u32 = 8u32; +pub const IMAGE_REL_ARM64_SECREL_HIGH12A: u32 = 10u32; +pub const IMAGE_REL_ARM64_SECREL_LOW12A: u32 = 9u32; +pub const IMAGE_REL_ARM64_SECREL_LOW12L: u32 = 11u32; +pub const IMAGE_REL_ARM64_SECTION: u32 = 13u32; +pub const IMAGE_REL_ARM64_TOKEN: u32 = 12u32; +pub const IMAGE_REL_ARM_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_ARM_ADDR32: u32 = 1u32; +pub const IMAGE_REL_ARM_ADDR32NB: u32 = 2u32; +pub const IMAGE_REL_ARM_BLX11: u32 = 9u32; +pub const IMAGE_REL_ARM_BLX23T: u32 = 21u32; +pub const IMAGE_REL_ARM_BLX24: u32 = 8u32; +pub const IMAGE_REL_ARM_BRANCH11: u32 = 4u32; +pub const IMAGE_REL_ARM_BRANCH20T: u32 = 18u32; +pub const IMAGE_REL_ARM_BRANCH24: u32 = 3u32; +pub const IMAGE_REL_ARM_BRANCH24T: u32 = 20u32; +pub const IMAGE_REL_ARM_GPREL12: u32 = 6u32; +pub const IMAGE_REL_ARM_GPREL7: u32 = 7u32; +pub const IMAGE_REL_ARM_MOV32: u32 = 16u32; +pub const IMAGE_REL_ARM_MOV32A: u32 = 16u32; +pub const IMAGE_REL_ARM_MOV32T: u32 = 17u32; +pub const IMAGE_REL_ARM_SECREL: u32 = 15u32; +pub const IMAGE_REL_ARM_SECTION: u32 = 14u32; +pub const IMAGE_REL_ARM_TOKEN: u32 = 5u32; +pub const IMAGE_REL_BASED_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_BASED_ARM_MOV32: u32 = 5u32; +pub const IMAGE_REL_BASED_DIR64: u32 = 10u32; +pub const IMAGE_REL_BASED_HIGH: u32 = 1u32; +pub const IMAGE_REL_BASED_HIGHADJ: u32 = 4u32; +pub const IMAGE_REL_BASED_HIGHLOW: u32 = 3u32; +pub const IMAGE_REL_BASED_IA64_IMM64: u32 = 9u32; +pub const IMAGE_REL_BASED_LOW: u32 = 2u32; +pub const IMAGE_REL_BASED_MACHINE_SPECIFIC_5: u32 = 5u32; +pub const IMAGE_REL_BASED_MACHINE_SPECIFIC_7: u32 = 7u32; +pub const IMAGE_REL_BASED_MACHINE_SPECIFIC_8: u32 = 8u32; +pub const IMAGE_REL_BASED_MACHINE_SPECIFIC_9: u32 = 9u32; +pub const IMAGE_REL_BASED_MIPS_JMPADDR: u32 = 5u32; +pub const IMAGE_REL_BASED_MIPS_JMPADDR16: u32 = 9u32; +pub const IMAGE_REL_BASED_RESERVED: u32 = 6u32; +pub const IMAGE_REL_BASED_THUMB_MOV32: u32 = 7u32; +pub const IMAGE_REL_CEE_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_CEE_ADDR32: u32 = 1u32; +pub const IMAGE_REL_CEE_ADDR32NB: u32 = 3u32; +pub const IMAGE_REL_CEE_ADDR64: u32 = 2u32; +pub const IMAGE_REL_CEE_SECREL: u32 = 5u32; +pub const IMAGE_REL_CEE_SECTION: u32 = 4u32; +pub const IMAGE_REL_CEE_TOKEN: u32 = 6u32; +pub const IMAGE_REL_CEF_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_CEF_ADDR32: u32 = 1u32; +pub const IMAGE_REL_CEF_ADDR32NB: u32 = 3u32; +pub const IMAGE_REL_CEF_ADDR64: u32 = 2u32; +pub const IMAGE_REL_CEF_SECREL: u32 = 5u32; +pub const IMAGE_REL_CEF_SECTION: u32 = 4u32; +pub const IMAGE_REL_CEF_TOKEN: u32 = 6u32; +pub const IMAGE_REL_EBC_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_EBC_ADDR32NB: u32 = 1u32; +pub const IMAGE_REL_EBC_REL32: u32 = 2u32; +pub const IMAGE_REL_EBC_SECREL: u32 = 4u32; +pub const IMAGE_REL_EBC_SECTION: u32 = 3u32; +pub const IMAGE_REL_I386_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_I386_DIR16: u32 = 1u32; +pub const IMAGE_REL_I386_DIR32: u32 = 6u32; +pub const IMAGE_REL_I386_DIR32NB: u32 = 7u32; +pub const IMAGE_REL_I386_REL16: u32 = 2u32; +pub const IMAGE_REL_I386_REL32: u32 = 20u32; +pub const IMAGE_REL_I386_SECREL: u32 = 11u32; +pub const IMAGE_REL_I386_SECREL7: u32 = 13u32; +pub const IMAGE_REL_I386_SECTION: u32 = 10u32; +pub const IMAGE_REL_I386_SEG12: u32 = 9u32; +pub const IMAGE_REL_I386_TOKEN: u32 = 12u32; +pub const IMAGE_REL_IA64_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_IA64_ADDEND: u32 = 31u32; +pub const IMAGE_REL_IA64_DIR32: u32 = 4u32; +pub const IMAGE_REL_IA64_DIR32NB: u32 = 16u32; +pub const IMAGE_REL_IA64_DIR64: u32 = 5u32; +pub const IMAGE_REL_IA64_GPREL22: u32 = 9u32; +pub const IMAGE_REL_IA64_GPREL32: u32 = 28u32; +pub const IMAGE_REL_IA64_IMM14: u32 = 1u32; +pub const IMAGE_REL_IA64_IMM22: u32 = 2u32; +pub const IMAGE_REL_IA64_IMM64: u32 = 3u32; +pub const IMAGE_REL_IA64_IMMGPREL64: u32 = 26u32; +pub const IMAGE_REL_IA64_LTOFF22: u32 = 10u32; +pub const IMAGE_REL_IA64_PCREL21B: u32 = 6u32; +pub const IMAGE_REL_IA64_PCREL21F: u32 = 8u32; +pub const IMAGE_REL_IA64_PCREL21M: u32 = 7u32; +pub const IMAGE_REL_IA64_PCREL60B: u32 = 22u32; +pub const IMAGE_REL_IA64_PCREL60F: u32 = 23u32; +pub const IMAGE_REL_IA64_PCREL60I: u32 = 24u32; +pub const IMAGE_REL_IA64_PCREL60M: u32 = 25u32; +pub const IMAGE_REL_IA64_PCREL60X: u32 = 21u32; +pub const IMAGE_REL_IA64_SECREL22: u32 = 12u32; +pub const IMAGE_REL_IA64_SECREL32: u32 = 14u32; +pub const IMAGE_REL_IA64_SECREL64I: u32 = 13u32; +pub const IMAGE_REL_IA64_SECTION: u32 = 11u32; +pub const IMAGE_REL_IA64_SREL14: u32 = 17u32; +pub const IMAGE_REL_IA64_SREL22: u32 = 18u32; +pub const IMAGE_REL_IA64_SREL32: u32 = 19u32; +pub const IMAGE_REL_IA64_TOKEN: u32 = 27u32; +pub const IMAGE_REL_IA64_UREL32: u32 = 20u32; +pub const IMAGE_REL_M32R_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_M32R_ADDR24: u32 = 3u32; +pub const IMAGE_REL_M32R_ADDR32: u32 = 1u32; +pub const IMAGE_REL_M32R_ADDR32NB: u32 = 2u32; +pub const IMAGE_REL_M32R_GPREL16: u32 = 4u32; +pub const IMAGE_REL_M32R_PAIR: u32 = 11u32; +pub const IMAGE_REL_M32R_PCREL16: u32 = 6u32; +pub const IMAGE_REL_M32R_PCREL24: u32 = 5u32; +pub const IMAGE_REL_M32R_PCREL8: u32 = 7u32; +pub const IMAGE_REL_M32R_REFHALF: u32 = 8u32; +pub const IMAGE_REL_M32R_REFHI: u32 = 9u32; +pub const IMAGE_REL_M32R_REFLO: u32 = 10u32; +pub const IMAGE_REL_M32R_SECREL32: u32 = 13u32; +pub const IMAGE_REL_M32R_SECTION: u32 = 12u32; +pub const IMAGE_REL_M32R_TOKEN: u32 = 14u32; +pub const IMAGE_REL_MIPS_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_MIPS_GPREL: u32 = 6u32; +pub const IMAGE_REL_MIPS_JMPADDR: u32 = 3u32; +pub const IMAGE_REL_MIPS_JMPADDR16: u32 = 16u32; +pub const IMAGE_REL_MIPS_LITERAL: u32 = 7u32; +pub const IMAGE_REL_MIPS_PAIR: u32 = 37u32; +pub const IMAGE_REL_MIPS_REFHALF: u32 = 1u32; +pub const IMAGE_REL_MIPS_REFHI: u32 = 4u32; +pub const IMAGE_REL_MIPS_REFLO: u32 = 5u32; +pub const IMAGE_REL_MIPS_REFWORD: u32 = 2u32; +pub const IMAGE_REL_MIPS_REFWORDNB: u32 = 34u32; +pub const IMAGE_REL_MIPS_SECREL: u32 = 11u32; +pub const IMAGE_REL_MIPS_SECRELHI: u32 = 13u32; +pub const IMAGE_REL_MIPS_SECRELLO: u32 = 12u32; +pub const IMAGE_REL_MIPS_SECTION: u32 = 10u32; +pub const IMAGE_REL_MIPS_TOKEN: u32 = 14u32; +pub const IMAGE_REL_PPC_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_PPC_ADDR14: u32 = 5u32; +pub const IMAGE_REL_PPC_ADDR16: u32 = 4u32; +pub const IMAGE_REL_PPC_ADDR24: u32 = 3u32; +pub const IMAGE_REL_PPC_ADDR32: u32 = 2u32; +pub const IMAGE_REL_PPC_ADDR32NB: u32 = 10u32; +pub const IMAGE_REL_PPC_ADDR64: u32 = 1u32; +pub const IMAGE_REL_PPC_BRNTAKEN: u32 = 1024u32; +pub const IMAGE_REL_PPC_BRTAKEN: u32 = 512u32; +pub const IMAGE_REL_PPC_GPREL: u32 = 21u32; +pub const IMAGE_REL_PPC_IFGLUE: u32 = 13u32; +pub const IMAGE_REL_PPC_IMGLUE: u32 = 14u32; +pub const IMAGE_REL_PPC_NEG: u32 = 256u32; +pub const IMAGE_REL_PPC_PAIR: u32 = 18u32; +pub const IMAGE_REL_PPC_REFHI: u32 = 16u32; +pub const IMAGE_REL_PPC_REFLO: u32 = 17u32; +pub const IMAGE_REL_PPC_REL14: u32 = 7u32; +pub const IMAGE_REL_PPC_REL24: u32 = 6u32; +pub const IMAGE_REL_PPC_SECREL: u32 = 11u32; +pub const IMAGE_REL_PPC_SECREL16: u32 = 15u32; +pub const IMAGE_REL_PPC_SECRELHI: u32 = 20u32; +pub const IMAGE_REL_PPC_SECRELLO: u32 = 19u32; +pub const IMAGE_REL_PPC_SECTION: u32 = 12u32; +pub const IMAGE_REL_PPC_TOCDEFN: u32 = 2048u32; +pub const IMAGE_REL_PPC_TOCREL14: u32 = 9u32; +pub const IMAGE_REL_PPC_TOCREL16: u32 = 8u32; +pub const IMAGE_REL_PPC_TOKEN: u32 = 22u32; +pub const IMAGE_REL_PPC_TYPEMASK: u32 = 255u32; +pub const IMAGE_REL_SH3_ABSOLUTE: u32 = 0u32; +pub const IMAGE_REL_SH3_DIRECT16: u32 = 1u32; +pub const IMAGE_REL_SH3_DIRECT32: u32 = 2u32; +pub const IMAGE_REL_SH3_DIRECT32_NB: u32 = 16u32; +pub const IMAGE_REL_SH3_DIRECT4: u32 = 6u32; +pub const IMAGE_REL_SH3_DIRECT4_LONG: u32 = 8u32; +pub const IMAGE_REL_SH3_DIRECT4_WORD: u32 = 7u32; +pub const IMAGE_REL_SH3_DIRECT8: u32 = 3u32; +pub const IMAGE_REL_SH3_DIRECT8_LONG: u32 = 5u32; +pub const IMAGE_REL_SH3_DIRECT8_WORD: u32 = 4u32; +pub const IMAGE_REL_SH3_GPREL4_LONG: u32 = 17u32; +pub const IMAGE_REL_SH3_PCREL12_WORD: u32 = 11u32; +pub const IMAGE_REL_SH3_PCREL8_LONG: u32 = 10u32; +pub const IMAGE_REL_SH3_PCREL8_WORD: u32 = 9u32; +pub const IMAGE_REL_SH3_SECREL: u32 = 15u32; +pub const IMAGE_REL_SH3_SECTION: u32 = 14u32; +pub const IMAGE_REL_SH3_SIZEOF_SECTION: u32 = 13u32; +pub const IMAGE_REL_SH3_STARTOF_SECTION: u32 = 12u32; +pub const IMAGE_REL_SH3_TOKEN: u32 = 18u32; +pub const IMAGE_REL_SHM_PAIR: u32 = 24u32; +pub const IMAGE_REL_SHM_PCRELPT: u32 = 19u32; +pub const IMAGE_REL_SHM_REFHALF: u32 = 21u32; +pub const IMAGE_REL_SHM_REFLO: u32 = 20u32; +pub const IMAGE_REL_SHM_RELHALF: u32 = 23u32; +pub const IMAGE_REL_SHM_RELLO: u32 = 22u32; +pub const IMAGE_REL_SH_NOMODE: u32 = 32768u32; +pub const IMAGE_REL_THUMB_BLX23: u32 = 21u32; +pub const IMAGE_REL_THUMB_BRANCH20: u32 = 18u32; +pub const IMAGE_REL_THUMB_BRANCH24: u32 = 20u32; +pub const IMAGE_REL_THUMB_MOV32: u32 = 17u32; +pub const IMAGE_RESOURCE_DATA_IS_DIRECTORY: u32 = 2147483648u32; +pub const IMAGE_RESOURCE_NAME_IS_STRING: u32 = 2147483648u32; +pub const IMAGE_SEPARATE_DEBUG_FLAGS_MASK: u32 = 32768u32; +pub const IMAGE_SEPARATE_DEBUG_MISMATCH: u32 = 32768u32; +pub const IMAGE_SEPARATE_DEBUG_SIGNATURE: u32 = 18756u32; +pub const IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR: u32 = 60u32; +pub const IMAGE_SIZEOF_FILE_HEADER: u32 = 20u32; +pub const IMAGE_SIZEOF_SECTION_HEADER: u32 = 40u32; +pub const IMAGE_SIZEOF_SHORT_NAME: u32 = 8u32; +pub const IMAGE_SIZEOF_SYMBOL: u32 = 18u32; +pub const IMAGE_SYM_CLASS_ARGUMENT: u32 = 9u32; +pub const IMAGE_SYM_CLASS_AUTOMATIC: u32 = 1u32; +pub const IMAGE_SYM_CLASS_BIT_FIELD: u32 = 18u32; +pub const IMAGE_SYM_CLASS_BLOCK: u32 = 100u32; +pub const IMAGE_SYM_CLASS_CLR_TOKEN: u32 = 107u32; +pub const IMAGE_SYM_CLASS_END_OF_STRUCT: u32 = 102u32; +pub const IMAGE_SYM_CLASS_ENUM_TAG: u32 = 15u32; +pub const IMAGE_SYM_CLASS_EXTERNAL: u32 = 2u32; +pub const IMAGE_SYM_CLASS_EXTERNAL_DEF: u32 = 5u32; +pub const IMAGE_SYM_CLASS_FAR_EXTERNAL: u32 = 68u32; +pub const IMAGE_SYM_CLASS_FILE: u32 = 103u32; +pub const IMAGE_SYM_CLASS_FUNCTION: u32 = 101u32; +pub const IMAGE_SYM_CLASS_LABEL: u32 = 6u32; +pub const IMAGE_SYM_CLASS_MEMBER_OF_ENUM: u32 = 16u32; +pub const IMAGE_SYM_CLASS_MEMBER_OF_STRUCT: u32 = 8u32; +pub const IMAGE_SYM_CLASS_MEMBER_OF_UNION: u32 = 11u32; +pub const IMAGE_SYM_CLASS_NULL: u32 = 0u32; +pub const IMAGE_SYM_CLASS_REGISTER: u32 = 4u32; +pub const IMAGE_SYM_CLASS_REGISTER_PARAM: u32 = 17u32; +pub const IMAGE_SYM_CLASS_SECTION: u32 = 104u32; +pub const IMAGE_SYM_CLASS_STATIC: u32 = 3u32; +pub const IMAGE_SYM_CLASS_STRUCT_TAG: u32 = 10u32; +pub const IMAGE_SYM_CLASS_TYPE_DEFINITION: u32 = 13u32; +pub const IMAGE_SYM_CLASS_UNDEFINED_LABEL: u32 = 7u32; +pub const IMAGE_SYM_CLASS_UNDEFINED_STATIC: u32 = 14u32; +pub const IMAGE_SYM_CLASS_UNION_TAG: u32 = 12u32; +pub const IMAGE_SYM_CLASS_WEAK_EXTERNAL: u32 = 105u32; +pub const IMAGE_SYM_DTYPE_ARRAY: u32 = 3u32; +pub const IMAGE_SYM_DTYPE_FUNCTION: u32 = 2u32; +pub const IMAGE_SYM_DTYPE_NULL: u32 = 0u32; +pub const IMAGE_SYM_DTYPE_POINTER: u32 = 1u32; +pub const IMAGE_SYM_SECTION_MAX: u32 = 65279u32; +pub const IMAGE_SYM_SECTION_MAX_EX: u32 = 2147483647u32; +pub const IMAGE_SYM_TYPE_BYTE: u32 = 12u32; +pub const IMAGE_SYM_TYPE_CHAR: u32 = 2u32; +pub const IMAGE_SYM_TYPE_DOUBLE: u32 = 7u32; +pub const IMAGE_SYM_TYPE_DWORD: u32 = 15u32; +pub const IMAGE_SYM_TYPE_ENUM: u32 = 10u32; +pub const IMAGE_SYM_TYPE_FLOAT: u32 = 6u32; +pub const IMAGE_SYM_TYPE_INT: u32 = 4u32; +pub const IMAGE_SYM_TYPE_LONG: u32 = 5u32; +pub const IMAGE_SYM_TYPE_MOE: u32 = 11u32; +pub const IMAGE_SYM_TYPE_NULL: u32 = 0u32; +pub const IMAGE_SYM_TYPE_PCODE: u32 = 32768u32; +pub const IMAGE_SYM_TYPE_SHORT: u32 = 3u32; +pub const IMAGE_SYM_TYPE_STRUCT: u32 = 8u32; +pub const IMAGE_SYM_TYPE_UINT: u32 = 14u32; +pub const IMAGE_SYM_TYPE_UNION: u32 = 9u32; +pub const IMAGE_SYM_TYPE_VOID: u32 = 1u32; +pub const IMAGE_SYM_TYPE_WORD: u32 = 13u32; +pub const IMAGE_VXD_SIGNATURE: u16 = 17740u16; +pub const IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY: u32 = 4u32; +pub const IMAGE_WEAK_EXTERN_SEARCH_ALIAS: u32 = 3u32; +pub const IMAGE_WEAK_EXTERN_SEARCH_LIBRARY: u32 = 2u32; +pub const IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY: u32 = 1u32; +pub const IMPORT_OBJECT_CODE: IMPORT_OBJECT_TYPE = 0i32; +pub const IMPORT_OBJECT_CONST: IMPORT_OBJECT_TYPE = 2i32; +pub const IMPORT_OBJECT_DATA: IMPORT_OBJECT_TYPE = 1i32; +pub const IMPORT_OBJECT_HDR_SIG2: u32 = 65535u32; +pub const IMPORT_OBJECT_NAME: IMPORT_OBJECT_NAME_TYPE = 1i32; +pub const IMPORT_OBJECT_NAME_EXPORTAS: IMPORT_OBJECT_NAME_TYPE = 4i32; +pub const IMPORT_OBJECT_NAME_NO_PREFIX: IMPORT_OBJECT_NAME_TYPE = 2i32; +pub const IMPORT_OBJECT_NAME_UNDECORATE: IMPORT_OBJECT_NAME_TYPE = 3i32; +pub const IMPORT_OBJECT_ORDINAL: IMPORT_OBJECT_NAME_TYPE = 0i32; +pub const INITIAL_CPSR: u32 = 16u32; +pub const INITIAL_FPCSR: u32 = 639u32; +pub const INITIAL_FPSCR: u32 = 0u32; +pub const INITIAL_MXCSR: u32 = 8064u32; +pub const IO_COMPLETION_MODIFY_STATE: u32 = 2u32; +pub const IO_REPARSE_TAG_AF_UNIX: u32 = 2147483683u32; +pub const IO_REPARSE_TAG_APPEXECLINK: u32 = 2147483675u32; +pub const IO_REPARSE_TAG_CLOUD: u32 = 2415919130u32; +pub const IO_REPARSE_TAG_CLOUD_1: u32 = 2415923226u32; +pub const IO_REPARSE_TAG_CLOUD_2: u32 = 2415927322u32; +pub const IO_REPARSE_TAG_CLOUD_3: u32 = 2415931418u32; +pub const IO_REPARSE_TAG_CLOUD_4: u32 = 2415935514u32; +pub const IO_REPARSE_TAG_CLOUD_5: u32 = 2415939610u32; +pub const IO_REPARSE_TAG_CLOUD_6: u32 = 2415943706u32; +pub const IO_REPARSE_TAG_CLOUD_7: u32 = 2415947802u32; +pub const IO_REPARSE_TAG_CLOUD_8: u32 = 2415951898u32; +pub const IO_REPARSE_TAG_CLOUD_9: u32 = 2415955994u32; +pub const IO_REPARSE_TAG_CLOUD_A: u32 = 2415960090u32; +pub const IO_REPARSE_TAG_CLOUD_B: u32 = 2415964186u32; +pub const IO_REPARSE_TAG_CLOUD_C: u32 = 2415968282u32; +pub const IO_REPARSE_TAG_CLOUD_D: u32 = 2415972378u32; +pub const IO_REPARSE_TAG_CLOUD_E: u32 = 2415976474u32; +pub const IO_REPARSE_TAG_CLOUD_F: u32 = 2415980570u32; +pub const IO_REPARSE_TAG_CLOUD_MASK: u32 = 61440u32; +pub const IO_REPARSE_TAG_CSV: u32 = 2147483657u32; +pub const IO_REPARSE_TAG_DATALESS_CIM: u32 = 2684354600u32; +pub const IO_REPARSE_TAG_DEDUP: u32 = 2147483667u32; +pub const IO_REPARSE_TAG_DFS: u32 = 2147483658u32; +pub const IO_REPARSE_TAG_DFSR: u32 = 2147483666u32; +pub const IO_REPARSE_TAG_FILE_PLACEHOLDER: u32 = 2147483669u32; +pub const IO_REPARSE_TAG_GLOBAL_REPARSE: u32 = 2684354585u32; +pub const IO_REPARSE_TAG_HSM: u32 = 3221225476u32; +pub const IO_REPARSE_TAG_HSM2: u32 = 2147483654u32; +pub const IO_REPARSE_TAG_MOUNT_POINT: u32 = 2684354563u32; +pub const IO_REPARSE_TAG_NFS: u32 = 2147483668u32; +pub const IO_REPARSE_TAG_ONEDRIVE: u32 = 2147483681u32; +pub const IO_REPARSE_TAG_PROJFS: u32 = 2415919132u32; +pub const IO_REPARSE_TAG_PROJFS_TOMBSTONE: u32 = 2684354594u32; +pub const IO_REPARSE_TAG_RESERVED_ONE: u32 = 1u32; +pub const IO_REPARSE_TAG_RESERVED_RANGE: u32 = 2u32; +pub const IO_REPARSE_TAG_RESERVED_TWO: u32 = 2u32; +pub const IO_REPARSE_TAG_RESERVED_ZERO: u32 = 0u32; +pub const IO_REPARSE_TAG_SIS: u32 = 2147483655u32; +pub const IO_REPARSE_TAG_STORAGE_SYNC: u32 = 2147483678u32; +pub const IO_REPARSE_TAG_SYMLINK: u32 = 2684354572u32; +pub const IO_REPARSE_TAG_UNHANDLED: u32 = 2147483680u32; +pub const IO_REPARSE_TAG_WCI: u32 = 2147483672u32; +pub const IO_REPARSE_TAG_WCI_1: u32 = 2415923224u32; +pub const IO_REPARSE_TAG_WCI_LINK: u32 = 2684354599u32; +pub const IO_REPARSE_TAG_WCI_LINK_1: u32 = 2684358695u32; +pub const IO_REPARSE_TAG_WCI_TOMBSTONE: u32 = 2684354591u32; +pub const IO_REPARSE_TAG_WIM: u32 = 2147483656u32; +pub const IO_REPARSE_TAG_WOF: u32 = 2147483671u32; +pub const IS_TEXT_UNICODE_DBCS_LEADBYTE: u32 = 1024u32; +pub const IS_TEXT_UNICODE_UTF8: u32 = 2048u32; +pub const ITWW_OPEN_CONNECT: WORD_WHEEL_OPEN_FLAGS = 0u32; +pub const IgnoreError: SERVICE_ERROR_TYPE = 0i32; +pub const ImagePolicyEntryTypeAnsiString: IMAGE_POLICY_ENTRY_TYPE = 10i32; +pub const ImagePolicyEntryTypeBool: IMAGE_POLICY_ENTRY_TYPE = 1i32; +pub const ImagePolicyEntryTypeInt16: IMAGE_POLICY_ENTRY_TYPE = 4i32; +pub const ImagePolicyEntryTypeInt32: IMAGE_POLICY_ENTRY_TYPE = 6i32; +pub const ImagePolicyEntryTypeInt64: IMAGE_POLICY_ENTRY_TYPE = 8i32; +pub const ImagePolicyEntryTypeInt8: IMAGE_POLICY_ENTRY_TYPE = 2i32; +pub const ImagePolicyEntryTypeMaximum: IMAGE_POLICY_ENTRY_TYPE = 13i32; +pub const ImagePolicyEntryTypeNone: IMAGE_POLICY_ENTRY_TYPE = 0i32; +pub const ImagePolicyEntryTypeOverride: IMAGE_POLICY_ENTRY_TYPE = 12i32; +pub const ImagePolicyEntryTypeUInt16: IMAGE_POLICY_ENTRY_TYPE = 5i32; +pub const ImagePolicyEntryTypeUInt32: IMAGE_POLICY_ENTRY_TYPE = 7i32; +pub const ImagePolicyEntryTypeUInt64: IMAGE_POLICY_ENTRY_TYPE = 9i32; +pub const ImagePolicyEntryTypeUInt8: IMAGE_POLICY_ENTRY_TYPE = 3i32; +pub const ImagePolicyEntryTypeUnicodeString: IMAGE_POLICY_ENTRY_TYPE = 11i32; +pub const ImagePolicyIdCapability: IMAGE_POLICY_ID = 10i32; +pub const ImagePolicyIdCrashDump: IMAGE_POLICY_ID = 3i32; +pub const ImagePolicyIdCrashDumpKey: IMAGE_POLICY_ID = 4i32; +pub const ImagePolicyIdCrashDumpKeyGuid: IMAGE_POLICY_ID = 5i32; +pub const ImagePolicyIdDebug: IMAGE_POLICY_ID = 2i32; +pub const ImagePolicyIdDeviceId: IMAGE_POLICY_ID = 9i32; +pub const ImagePolicyIdEtw: IMAGE_POLICY_ID = 1i32; +pub const ImagePolicyIdMaximum: IMAGE_POLICY_ID = 12i32; +pub const ImagePolicyIdNone: IMAGE_POLICY_ID = 0i32; +pub const ImagePolicyIdParentSd: IMAGE_POLICY_ID = 6i32; +pub const ImagePolicyIdParentSdRev: IMAGE_POLICY_ID = 7i32; +pub const ImagePolicyIdScenarioId: IMAGE_POLICY_ID = 11i32; +pub const ImagePolicyIdSvn: IMAGE_POLICY_ID = 8i32; +pub const JOB_OBJECT_ASSIGN_PROCESS: u32 = 1u32; +pub const JOB_OBJECT_IMPERSONATE: u32 = 32u32; +pub const JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS: u32 = 8u32; +pub const JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT: u32 = 3u32; +pub const JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO: u32 = 4u32; +pub const JOB_OBJECT_MSG_END_OF_JOB_TIME: u32 = 1u32; +pub const JOB_OBJECT_MSG_END_OF_PROCESS_TIME: u32 = 2u32; +pub const JOB_OBJECT_MSG_EXIT_PROCESS: u32 = 7u32; +pub const JOB_OBJECT_MSG_JOB_CYCLE_TIME_LIMIT: u32 = 12u32; +pub const JOB_OBJECT_MSG_JOB_MEMORY_LIMIT: u32 = 10u32; +pub const JOB_OBJECT_MSG_MAXIMUM: u32 = 13u32; +pub const JOB_OBJECT_MSG_MINIMUM: u32 = 1u32; +pub const JOB_OBJECT_MSG_NEW_PROCESS: u32 = 6u32; +pub const JOB_OBJECT_MSG_NOTIFICATION_LIMIT: u32 = 11u32; +pub const JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT: u32 = 9u32; +pub const JOB_OBJECT_MSG_SILO_TERMINATED: u32 = 13u32; +pub const JOB_OBJECT_NET_RATE_CONTROL_MAX_DSCP_TAG: u32 = 64u32; +pub const JOB_OBJECT_QUERY: u32 = 4u32; +pub const JOB_OBJECT_SET_ATTRIBUTES: u32 = 2u32; +pub const JOB_OBJECT_SET_SECURITY_ATTRIBUTES: u32 = 16u32; +pub const JOB_OBJECT_TERMINATE: u32 = 8u32; +pub const JOB_OBJECT_UILIMIT_ALL: u32 = 511u32; +pub const JOB_OBJECT_UILIMIT_IME: u32 = 256u32; +pub const JOB_OBJECT_UI_VALID_FLAGS: u32 = 511u32; +pub const KTMOBJECT_ENLISTMENT: KTMOBJECT_TYPE = 3i32; +pub const KTMOBJECT_INVALID: KTMOBJECT_TYPE = 4i32; +pub const KTMOBJECT_RESOURCE_MANAGER: KTMOBJECT_TYPE = 2i32; +pub const KTMOBJECT_TRANSACTION: KTMOBJECT_TYPE = 0i32; +pub const KTMOBJECT_TRANSACTION_MANAGER: KTMOBJECT_TYPE = 1i32; +pub const LANG_AFRIKAANS: u32 = 54u32; +pub const LANG_ALBANIAN: u32 = 28u32; +pub const LANG_ALSATIAN: u32 = 132u32; +pub const LANG_AMHARIC: u32 = 94u32; +pub const LANG_ARABIC: u32 = 1u32; +pub const LANG_ARMENIAN: u32 = 43u32; +pub const LANG_ASSAMESE: u32 = 77u32; +pub const LANG_AZERBAIJANI: u32 = 44u32; +pub const LANG_AZERI: u32 = 44u32; +pub const LANG_BANGLA: u32 = 69u32; +pub const LANG_BASHKIR: u32 = 109u32; +pub const LANG_BASQUE: u32 = 45u32; +pub const LANG_BELARUSIAN: u32 = 35u32; +pub const LANG_BENGALI: u32 = 69u32; +pub const LANG_BOSNIAN: u32 = 26u32; +pub const LANG_BOSNIAN_NEUTRAL: u32 = 30746u32; +pub const LANG_BRETON: u32 = 126u32; +pub const LANG_BULGARIAN: u32 = 2u32; +pub const LANG_CATALAN: u32 = 3u32; +pub const LANG_CENTRAL_KURDISH: u32 = 146u32; +pub const LANG_CHEROKEE: u32 = 92u32; +pub const LANG_CHINESE: u32 = 4u32; +pub const LANG_CHINESE_SIMPLIFIED: u32 = 4u32; +pub const LANG_CHINESE_TRADITIONAL: u32 = 31748u32; +pub const LANG_CORSICAN: u32 = 131u32; +pub const LANG_CROATIAN: u32 = 26u32; +pub const LANG_CZECH: u32 = 5u32; +pub const LANG_DANISH: u32 = 6u32; +pub const LANG_DARI: u32 = 140u32; +pub const LANG_DIVEHI: u32 = 101u32; +pub const LANG_DUTCH: u32 = 19u32; +pub const LANG_ENGLISH: u32 = 9u32; +pub const LANG_ESTONIAN: u32 = 37u32; +pub const LANG_FAEROESE: u32 = 56u32; +pub const LANG_FARSI: u32 = 41u32; +pub const LANG_FILIPINO: u32 = 100u32; +pub const LANG_FINNISH: u32 = 11u32; +pub const LANG_FRENCH: u32 = 12u32; +pub const LANG_FRISIAN: u32 = 98u32; +pub const LANG_FULAH: u32 = 103u32; +pub const LANG_GALICIAN: u32 = 86u32; +pub const LANG_GEORGIAN: u32 = 55u32; +pub const LANG_GERMAN: u32 = 7u32; +pub const LANG_GREEK: u32 = 8u32; +pub const LANG_GREENLANDIC: u32 = 111u32; +pub const LANG_GUJARATI: u32 = 71u32; +pub const LANG_HAUSA: u32 = 104u32; +pub const LANG_HAWAIIAN: u32 = 117u32; +pub const LANG_HEBREW: u32 = 13u32; +pub const LANG_HINDI: u32 = 57u32; +pub const LANG_HUNGARIAN: u32 = 14u32; +pub const LANG_ICELANDIC: u32 = 15u32; +pub const LANG_IGBO: u32 = 112u32; +pub const LANG_INDONESIAN: u32 = 33u32; +pub const LANG_INUKTITUT: u32 = 93u32; +pub const LANG_INVARIANT: u32 = 127u32; +pub const LANG_IRISH: u32 = 60u32; +pub const LANG_ITALIAN: u32 = 16u32; +pub const LANG_JAPANESE: u32 = 17u32; +pub const LANG_KANNADA: u32 = 75u32; +pub const LANG_KASHMIRI: u32 = 96u32; +pub const LANG_KAZAK: u32 = 63u32; +pub const LANG_KHMER: u32 = 83u32; +pub const LANG_KICHE: u32 = 134u32; +pub const LANG_KINYARWANDA: u32 = 135u32; +pub const LANG_KONKANI: u32 = 87u32; +pub const LANG_KOREAN: u32 = 18u32; +pub const LANG_KYRGYZ: u32 = 64u32; +pub const LANG_LAO: u32 = 84u32; +pub const LANG_LATVIAN: u32 = 38u32; +pub const LANG_LITHUANIAN: u32 = 39u32; +pub const LANG_LOWER_SORBIAN: u32 = 46u32; +pub const LANG_LUXEMBOURGISH: u32 = 110u32; +pub const LANG_MACEDONIAN: u32 = 47u32; +pub const LANG_MALAY: u32 = 62u32; +pub const LANG_MALAYALAM: u32 = 76u32; +pub const LANG_MALTESE: u32 = 58u32; +pub const LANG_MANIPURI: u32 = 88u32; +pub const LANG_MAORI: u32 = 129u32; +pub const LANG_MAPUDUNGUN: u32 = 122u32; +pub const LANG_MARATHI: u32 = 78u32; +pub const LANG_MOHAWK: u32 = 124u32; +pub const LANG_MONGOLIAN: u32 = 80u32; +pub const LANG_NEPALI: u32 = 97u32; +pub const LANG_NEUTRAL: u32 = 0u32; +pub const LANG_NORWEGIAN: u32 = 20u32; +pub const LANG_OCCITAN: u32 = 130u32; +pub const LANG_ODIA: u32 = 72u32; +pub const LANG_ORIYA: u32 = 72u32; +pub const LANG_PASHTO: u32 = 99u32; +pub const LANG_PERSIAN: u32 = 41u32; +pub const LANG_POLISH: u32 = 21u32; +pub const LANG_PORTUGUESE: u32 = 22u32; +pub const LANG_PULAR: u32 = 103u32; +pub const LANG_PUNJABI: u32 = 70u32; +pub const LANG_QUECHUA: u32 = 107u32; +pub const LANG_ROMANIAN: u32 = 24u32; +pub const LANG_ROMANSH: u32 = 23u32; +pub const LANG_RUSSIAN: u32 = 25u32; +pub const LANG_SAKHA: u32 = 133u32; +pub const LANG_SAMI: u32 = 59u32; +pub const LANG_SANSKRIT: u32 = 79u32; +pub const LANG_SCOTTISH_GAELIC: u32 = 145u32; +pub const LANG_SERBIAN: u32 = 26u32; +pub const LANG_SERBIAN_NEUTRAL: u32 = 31770u32; +pub const LANG_SINDHI: u32 = 89u32; +pub const LANG_SINHALESE: u32 = 91u32; +pub const LANG_SLOVAK: u32 = 27u32; +pub const LANG_SLOVENIAN: u32 = 36u32; +pub const LANG_SOTHO: u32 = 108u32; +pub const LANG_SPANISH: u32 = 10u32; +pub const LANG_SWAHILI: u32 = 65u32; +pub const LANG_SWEDISH: u32 = 29u32; +pub const LANG_SYRIAC: u32 = 90u32; +pub const LANG_TAJIK: u32 = 40u32; +pub const LANG_TAMAZIGHT: u32 = 95u32; +pub const LANG_TAMIL: u32 = 73u32; +pub const LANG_TATAR: u32 = 68u32; +pub const LANG_TELUGU: u32 = 74u32; +pub const LANG_THAI: u32 = 30u32; +pub const LANG_TIBETAN: u32 = 81u32; +pub const LANG_TIGRIGNA: u32 = 115u32; +pub const LANG_TIGRINYA: u32 = 115u32; +pub const LANG_TSWANA: u32 = 50u32; +pub const LANG_TURKISH: u32 = 31u32; +pub const LANG_TURKMEN: u32 = 66u32; +pub const LANG_UIGHUR: u32 = 128u32; +pub const LANG_UKRAINIAN: u32 = 34u32; +pub const LANG_UPPER_SORBIAN: u32 = 46u32; +pub const LANG_URDU: u32 = 32u32; +pub const LANG_UZBEK: u32 = 67u32; +pub const LANG_VALENCIAN: u32 = 3u32; +pub const LANG_VIETNAMESE: u32 = 42u32; +pub const LANG_WELSH: u32 = 82u32; +pub const LANG_WOLOF: u32 = 136u32; +pub const LANG_XHOSA: u32 = 52u32; +pub const LANG_YAKUT: u32 = 133u32; +pub const LANG_YI: u32 = 120u32; +pub const LANG_YORUBA: u32 = 106u32; +pub const LANG_ZULU: u32 = 53u32; +pub const LMEM_DISCARDABLE: u32 = 3840u32; +pub const LMEM_DISCARDED: u32 = 16384u32; +pub const LMEM_INVALID_HANDLE: u32 = 32768u32; +pub const LMEM_LOCKCOUNT: u32 = 255u32; +pub const LMEM_MODIFY: u32 = 128u32; +pub const LMEM_NOCOMPACT: u32 = 16u32; +pub const LMEM_NODISCARD: u32 = 32u32; +pub const LMEM_VALID_FLAGS: u32 = 3954u32; +pub const LOCALE_NAME_MAX_LENGTH: u32 = 85u32; +pub const LOCALE_TRANSIENT_KEYBOARD1: u32 = 8192u32; +pub const LOCALE_TRANSIENT_KEYBOARD2: u32 = 9216u32; +pub const LOCALE_TRANSIENT_KEYBOARD3: u32 = 10240u32; +pub const LOCALE_TRANSIENT_KEYBOARD4: u32 = 11264u32; +pub const LTP_PC_SMT: u32 = 1u32; +pub const MAILSLOT_NO_MESSAGE: u32 = 4294967295u32; +pub const MAILSLOT_WAIT_FOREVER: u32 = 4294967295u32; +pub const MAXBYTE: u32 = 255u32; +pub const MAXCHAR: u32 = 127u32; +pub const MAXDWORD: u32 = 4294967295u32; +pub const MAXIMUM_ALLOWED: u32 = 33554432u32; +pub const MAXIMUM_PROCESSORS: u32 = 64u32; +pub const MAXIMUM_PROC_PER_GROUP: u32 = 64u32; +pub const MAXIMUM_SUPPORTED_EXTENSION: u32 = 512u32; +pub const MAXIMUM_SUSPEND_COUNT: u32 = 127u32; +pub const MAXIMUM_WAIT_OBJECTS: u32 = 64u32; +pub const MAXIMUM_XSTATE_FEATURES: u32 = 64u32; +pub const MAXLOGICALLOGNAMESIZE: u32 = 256u32; +pub const MAXLONG: u32 = 2147483647u32; +pub const MAXLONGLONG: u64 = 9223372036854775807u64; +pub const MAXSHORT: u32 = 32767u32; +pub const MAXWORD: u32 = 65535u32; +pub const MAX_ACL_REVISION: u32 = 4u32; +pub const MAX_CLASS_NAME: ReplacesCorHdrNumericDefines = 1024i32; +pub const MAX_HW_COUNTERS: u32 = 16u32; +pub const MAX_PACKAGE_NAME: ReplacesCorHdrNumericDefines = 1024i32; +pub const MAX_UCSCHAR: u32 = 1114111u32; +pub const MEMORY_ALLOCATION_ALIGNMENT: u32 = 16u32; +pub const MEMORY_PARTITION_MODIFY_ACCESS: u32 = 2u32; +pub const MEMORY_PARTITION_QUERY_ACCESS: u32 = 1u32; +pub const MEMORY_PRIORITY_LOWEST: u32 = 0u32; +pub const MEM_4MB_PAGES: u32 = 2147483648u32; +pub const MEM_COALESCE_PLACEHOLDERS: u32 = 1u32; +pub const MEM_DIFFERENT_IMAGE_BASE_OK: u32 = 8388608u32; +pub const MEM_EXTENDED_PARAMETER_EC_CODE: u32 = 64u32; +pub const MEM_EXTENDED_PARAMETER_GRAPHICS: u32 = 1u32; +pub const MEM_EXTENDED_PARAMETER_IMAGE_NO_HPAT: u32 = 128u32; +pub const MEM_EXTENDED_PARAMETER_NONPAGED: u32 = 2u32; +pub const MEM_EXTENDED_PARAMETER_NONPAGED_HUGE: u32 = 16u32; +pub const MEM_EXTENDED_PARAMETER_NONPAGED_LARGE: u32 = 8u32; +pub const MEM_EXTENDED_PARAMETER_SOFT_FAULT_PAGES: u32 = 32u32; +pub const MEM_EXTENDED_PARAMETER_TYPE_BITS: u32 = 8u32; +pub const MEM_EXTENDED_PARAMETER_ZERO_PAGES_OPTIONAL: u32 = 4u32; +pub const MEM_PHYSICAL: u32 = 4194304u32; +pub const MEM_ROTATE: u32 = 8388608u32; +pub const MEM_TOP_DOWN: u32 = 1048576u32; +pub const MEM_WRITE_WATCH: u32 = 2097152u32; +pub const MESSAGE_RESOURCE_UNICODE: u32 = 1u32; +pub const MESSAGE_RESOURCE_UTF8: u32 = 2u32; +pub const MINCHAR: u32 = 128u32; +pub const MINLONG: u32 = 2147483648u32; +pub const MINSHORT: u32 = 32768u32; +pub const MIN_UCSCHAR: u32 = 0u32; +pub const MK_CONTROL: MODIFIERKEYS_FLAGS = 8u32; +pub const MK_LBUTTON: MODIFIERKEYS_FLAGS = 1u32; +pub const MK_MBUTTON: MODIFIERKEYS_FLAGS = 16u32; +pub const MK_RBUTTON: MODIFIERKEYS_FLAGS = 2u32; +pub const MK_SHIFT: MODIFIERKEYS_FLAGS = 4u32; +pub const MK_XBUTTON1: MODIFIERKEYS_FLAGS = 32u32; +pub const MK_XBUTTON2: MODIFIERKEYS_FLAGS = 64u32; +pub const MS_PPM_SOFTWARE_ALL: u32 = 1u32; +pub const MUTANT_QUERY_STATE: u32 = 1u32; +pub const MaxActivationContextInfoClass: ACTIVATION_CONTEXT_INFO_CLASS = 8i32; +pub const NATIVE_TYPE_MAX_CB: ReplacesCorHdrNumericDefines = 1i32; +pub const NETWORK_APP_INSTANCE_CSV_FLAGS_VALID_ONLY_IF_CSV_COORDINATOR: u32 = 1u32; +pub const NLS_VALID_LOCALE_MASK: u32 = 1048575u32; +pub const NONVOL_FP_NUMREG_ARM64: u32 = 8u32; +pub const NONVOL_INT_NUMREG_ARM64: u32 = 11u32; +pub const NON_PAGED_DEBUG_SIGNATURE: u32 = 18766u32; +pub const NO_SUBGROUP_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfea3413e_7e05_4911_9a71_700331f1c294); +pub const NUMA_NO_PREFERRED_NODE: u32 = 4294967295u32; +pub const NUM_DISCHARGE_POLICIES: u32 = 4u32; +pub const N_BTMASK: u32 = 15u32; +pub const N_BTSHFT: u32 = 4u32; +pub const N_TMASK: u32 = 48u32; +pub const N_TMASK1: u32 = 192u32; +pub const N_TMASK2: u32 = 240u32; +pub const N_TSHIFT: u32 = 2u32; +pub const NormalError: SERVICE_ERROR_TYPE = 1i32; +pub const OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("OutOfProcessFunctionTableCallback"); +pub const PARKING_TOPOLOGY_POLICY_DISABLED: u32 = 0u32; +pub const PARKING_TOPOLOGY_POLICY_ROUNDROBIN: u32 = 1u32; +pub const PARKING_TOPOLOGY_POLICY_SEQUENTIAL: u32 = 2u32; +pub const PDCAP_D0_SUPPORTED: u32 = 1u32; +pub const PDCAP_D1_SUPPORTED: u32 = 2u32; +pub const PDCAP_D2_SUPPORTED: u32 = 4u32; +pub const PDCAP_D3_SUPPORTED: u32 = 8u32; +pub const PDCAP_WAKE_FROM_D0_SUPPORTED: u32 = 16u32; +pub const PDCAP_WAKE_FROM_D1_SUPPORTED: u32 = 32u32; +pub const PDCAP_WAKE_FROM_D2_SUPPORTED: u32 = 64u32; +pub const PDCAP_WAKE_FROM_D3_SUPPORTED: u32 = 128u32; +pub const PDCAP_WARM_EJECT_SUPPORTED: u32 = 256u32; +pub const PERFORMANCE_DATA_VERSION: u32 = 1u32; +pub const PERFSTATE_POLICY_CHANGE_DECREASE_MAX: u32 = 2u32; +pub const PERFSTATE_POLICY_CHANGE_IDEAL: u32 = 0u32; +pub const PERFSTATE_POLICY_CHANGE_IDEAL_AGGRESSIVE: u32 = 3u32; +pub const PERFSTATE_POLICY_CHANGE_INCREASE_MAX: u32 = 3u32; +pub const PERFSTATE_POLICY_CHANGE_ROCKET: u32 = 2u32; +pub const PERFSTATE_POLICY_CHANGE_SINGLE: u32 = 1u32; +pub const PF_NON_TEMPORAL_LEVEL_ALL: u32 = 0u32; +pub const PF_TEMPORAL_LEVEL_1: u32 = 1u32; +pub const PF_TEMPORAL_LEVEL_2: u32 = 2u32; +pub const PF_TEMPORAL_LEVEL_3: u32 = 3u32; +pub const POLICY_AUDIT_SUBCATEGORY_COUNT: u32 = 59u32; +pub const POWERBUTTON_ACTION_INDEX_HIBERNATE: u32 = 2u32; +pub const POWERBUTTON_ACTION_INDEX_NOTHING: u32 = 0u32; +pub const POWERBUTTON_ACTION_INDEX_SHUTDOWN: u32 = 3u32; +pub const POWERBUTTON_ACTION_INDEX_SLEEP: u32 = 1u32; +pub const POWERBUTTON_ACTION_INDEX_TURN_OFF_THE_DISPLAY: u32 = 4u32; +pub const POWERBUTTON_ACTION_VALUE_HIBERNATE: u32 = 3u32; +pub const POWERBUTTON_ACTION_VALUE_NOTHING: u32 = 0u32; +pub const POWERBUTTON_ACTION_VALUE_SHUTDOWN: u32 = 6u32; +pub const POWERBUTTON_ACTION_VALUE_SLEEP: u32 = 2u32; +pub const POWERBUTTON_ACTION_VALUE_TURN_OFF_THE_DISPLAY: u32 = 8u32; +pub const POWER_ACTION_ACPI_CRITICAL: u32 = 16777216u32; +pub const POWER_ACTION_ACPI_USER_NOTIFY: u32 = 33554432u32; +pub const POWER_ACTION_CRITICAL: u32 = 2147483648u32; +pub const POWER_ACTION_DIRECTED_DRIPS: u32 = 67108864u32; +pub const POWER_ACTION_DISABLE_WAKES: u32 = 1073741824u32; +pub const POWER_ACTION_DOZE_TO_HIBERNATE: u32 = 32u32; +pub const POWER_ACTION_HIBERBOOT: u32 = 8u32; +pub const POWER_ACTION_LIGHTEST_FIRST: u32 = 268435456u32; +pub const POWER_ACTION_LOCK_CONSOLE: u32 = 536870912u32; +pub const POWER_ACTION_OVERRIDE_APPS: u32 = 4u32; +pub const POWER_ACTION_PSEUDO_TRANSITION: u32 = 134217728u32; +pub const POWER_ACTION_QUERY_ALLOWED: u32 = 1u32; +pub const POWER_ACTION_UI_ALLOWED: u32 = 2u32; +pub const POWER_ACTION_USER_NOTIFY: u32 = 16u32; +pub const POWER_CONNECTIVITY_IN_STANDBY_DISABLED: u32 = 0u32; +pub const POWER_CONNECTIVITY_IN_STANDBY_ENABLED: u32 = 1u32; +pub const POWER_CONNECTIVITY_IN_STANDBY_SYSTEM_MANAGED: u32 = 2u32; +pub const POWER_DEVICE_IDLE_POLICY_CONSERVATIVE: u32 = 1u32; +pub const POWER_DEVICE_IDLE_POLICY_PERFORMANCE: u32 = 0u32; +pub const POWER_DISCONNECTED_STANDBY_MODE_AGGRESSIVE: u32 = 1u32; +pub const POWER_DISCONNECTED_STANDBY_MODE_NORMAL: u32 = 0u32; +pub const POWER_REQUEST_CONTEXT_VERSION: u32 = 0u32; +pub const POWER_SETTING_VALUE_VERSION: u32 = 1u32; +pub const POWER_SYSTEM_MAXIMUM: u32 = 7u32; +pub const POWER_USER_NOTIFY_FORCED_SHUTDOWN: u32 = 32u32; +pub const PO_THROTTLE_ADAPTIVE: u32 = 3u32; +pub const PO_THROTTLE_CONSTANT: u32 = 1u32; +pub const PO_THROTTLE_DEGRADE: u32 = 2u32; +pub const PO_THROTTLE_MAXIMUM: u32 = 4u32; +pub const PO_THROTTLE_NONE: u32 = 0u32; +pub const PRAGMA_DEPRECATED_DDK: u32 = 1u32; +pub const PRIVILEGE_SET_ALL_NECESSARY: u32 = 1u32; +pub const PROCESSOR_ALPHA_21064: u32 = 21064u32; +pub const PROCESSOR_AMD_X8664: u32 = 8664u32; +pub const PROCESSOR_ARM720: u32 = 1824u32; +pub const PROCESSOR_ARM820: u32 = 2080u32; +pub const PROCESSOR_ARM920: u32 = 2336u32; +pub const PROCESSOR_ARM_7TDMI: u32 = 70001u32; +pub const PROCESSOR_DUTY_CYCLING_DISABLED: u32 = 0u32; +pub const PROCESSOR_DUTY_CYCLING_ENABLED: u32 = 1u32; +pub const PROCESSOR_HITACHI_SH3: u32 = 10003u32; +pub const PROCESSOR_HITACHI_SH3E: u32 = 10004u32; +pub const PROCESSOR_HITACHI_SH4: u32 = 10005u32; +pub const PROCESSOR_IDLESTATE_POLICY_COUNT: u32 = 3u32; +pub const PROCESSOR_INTEL_386: u32 = 386u32; +pub const PROCESSOR_INTEL_486: u32 = 486u32; +pub const PROCESSOR_INTEL_IA64: u32 = 2200u32; +pub const PROCESSOR_INTEL_PENTIUM: u32 = 586u32; +pub const PROCESSOR_MIPS_R4000: u32 = 4000u32; +pub const PROCESSOR_MOTOROLA_821: u32 = 821u32; +pub const PROCESSOR_OPTIL: u32 = 18767u32; +pub const PROCESSOR_PERF_AUTONOMOUS_MODE_DISABLED: u32 = 0u32; +pub const PROCESSOR_PERF_AUTONOMOUS_MODE_ENABLED: u32 = 1u32; +pub const PROCESSOR_PERF_BOOST_MODE_AGGRESSIVE: u32 = 2u32; +pub const PROCESSOR_PERF_BOOST_MODE_AGGRESSIVE_AT_GUARANTEED: u32 = 5u32; +pub const PROCESSOR_PERF_BOOST_MODE_DISABLED: u32 = 0u32; +pub const PROCESSOR_PERF_BOOST_MODE_EFFICIENT_AGGRESSIVE: u32 = 4u32; +pub const PROCESSOR_PERF_BOOST_MODE_EFFICIENT_AGGRESSIVE_AT_GUARANTEED: u32 = 6u32; +pub const PROCESSOR_PERF_BOOST_MODE_EFFICIENT_ENABLED: u32 = 3u32; +pub const PROCESSOR_PERF_BOOST_MODE_ENABLED: u32 = 1u32; +pub const PROCESSOR_PERF_BOOST_MODE_MAX: u32 = 6u32; +pub const PROCESSOR_PERF_BOOST_POLICY_DISABLED: u32 = 0u32; +pub const PROCESSOR_PERF_BOOST_POLICY_MAX: u32 = 100u32; +pub const PROCESSOR_PERF_ENERGY_PREFERENCE: u32 = 0u32; +pub const PROCESSOR_PERF_MAXIMUM_ACTIVITY_WINDOW: u32 = 1270000000u32; +pub const PROCESSOR_PERF_MINIMUM_ACTIVITY_WINDOW: u32 = 0u32; +pub const PROCESSOR_PERF_PERFORMANCE_PREFERENCE: u32 = 255u32; +pub const PROCESSOR_PPC_601: u32 = 601u32; +pub const PROCESSOR_PPC_603: u32 = 603u32; +pub const PROCESSOR_PPC_604: u32 = 604u32; +pub const PROCESSOR_PPC_620: u32 = 620u32; +pub const PROCESSOR_SHx_SH3: u32 = 103u32; +pub const PROCESSOR_SHx_SH4: u32 = 104u32; +pub const PROCESSOR_STRONGARM: u32 = 2577u32; +pub const PROCESSOR_THROTTLE_AUTOMATIC: u32 = 2u32; +pub const PROCESSOR_THROTTLE_DISABLED: u32 = 0u32; +pub const PROCESSOR_THROTTLE_ENABLED: u32 = 1u32; +pub const PROCESS_HEAP_ENTRY_BUSY: u32 = 4u32; +pub const PROCESS_HEAP_ENTRY_DDESHARE: u32 = 32u32; +pub const PROCESS_HEAP_ENTRY_MOVEABLE: u32 = 16u32; +pub const PROCESS_HEAP_REGION: u32 = 1u32; +pub const PROCESS_HEAP_SEG_ALLOC: u32 = 8u32; +pub const PROCESS_HEAP_UNCOMMITTED_RANGE: u32 = 2u32; +pub const PROCESS_TRUST_LABEL_SECURITY_INFORMATION: i32 = 128i32; +pub const PROC_IDLE_BUCKET_COUNT: u32 = 6u32; +pub const PROC_IDLE_BUCKET_COUNT_EX: u32 = 16u32; +pub const PRODUCT_ARM64_SERVER: u32 = 120u32; +pub const PRODUCT_AZURESTACKHCI_SERVER_CORE: u32 = 406u32; +pub const PRODUCT_AZURE_NANO_SERVER: u32 = 169u32; +pub const PRODUCT_AZURE_SERVER_CLOUDHOST: u32 = 199u32; +pub const PRODUCT_AZURE_SERVER_CLOUDMOS: u32 = 200u32; +pub const PRODUCT_AZURE_SERVER_CORE: u32 = 168u32; +pub const PRODUCT_CLOUD: u32 = 178u32; +pub const PRODUCT_CLOUDE: u32 = 183u32; +pub const PRODUCT_CLOUDEDITION: u32 = 203u32; +pub const PRODUCT_CLOUDEDITIONN: u32 = 202u32; +pub const PRODUCT_CLOUDEN: u32 = 186u32; +pub const PRODUCT_CLOUDN: u32 = 179u32; +pub const PRODUCT_CLOUD_HOST_INFRASTRUCTURE_SERVER: u32 = 124u32; +pub const PRODUCT_CLOUD_STORAGE_SERVER: u32 = 110u32; +pub const PRODUCT_CONNECTED_CAR: u32 = 117u32; +pub const PRODUCT_CORE_ARM: u32 = 97u32; +pub const PRODUCT_CORE_CONNECTED: u32 = 111u32; +pub const PRODUCT_CORE_CONNECTED_COUNTRYSPECIFIC: u32 = 116u32; +pub const PRODUCT_CORE_CONNECTED_N: u32 = 113u32; +pub const PRODUCT_CORE_CONNECTED_SINGLELANGUAGE: u32 = 115u32; +pub const PRODUCT_DATACENTER_EVALUATION_SERVER_CORE: u32 = 159u32; +pub const PRODUCT_DATACENTER_NANO_SERVER: u32 = 143u32; +pub const PRODUCT_DATACENTER_SERVER_AZURE_EDITION: u32 = 407u32; +pub const PRODUCT_DATACENTER_SERVER_CORE_AZURE_EDITION: u32 = 408u32; +pub const PRODUCT_DATACENTER_WS_SERVER_CORE: u32 = 147u32; +pub const PRODUCT_EMBEDDED: u32 = 65u32; +pub const PRODUCT_EMBEDDED_A: u32 = 88u32; +pub const PRODUCT_EMBEDDED_AUTOMOTIVE: u32 = 85u32; +pub const PRODUCT_EMBEDDED_E: u32 = 90u32; +pub const PRODUCT_EMBEDDED_EVAL: u32 = 107u32; +pub const PRODUCT_EMBEDDED_E_EVAL: u32 = 108u32; +pub const PRODUCT_EMBEDDED_INDUSTRY: u32 = 89u32; +pub const PRODUCT_EMBEDDED_INDUSTRY_A: u32 = 86u32; +pub const PRODUCT_EMBEDDED_INDUSTRY_A_E: u32 = 92u32; +pub const PRODUCT_EMBEDDED_INDUSTRY_E: u32 = 91u32; +pub const PRODUCT_EMBEDDED_INDUSTRY_EVAL: u32 = 105u32; +pub const PRODUCT_EMBEDDED_INDUSTRY_E_EVAL: u32 = 106u32; +pub const PRODUCT_ENTERPRISEG: u32 = 171u32; +pub const PRODUCT_ENTERPRISEGN: u32 = 172u32; +pub const PRODUCT_ENTERPRISE_SUBSCRIPTION: u32 = 140u32; +pub const PRODUCT_ENTERPRISE_SUBSCRIPTION_N: u32 = 141u32; +pub const PRODUCT_HOLOGRAPHIC: u32 = 135u32; +pub const PRODUCT_HOLOGRAPHIC_BUSINESS: u32 = 136u32; +pub const PRODUCT_HUBOS: u32 = 180u32; +pub const PRODUCT_INDUSTRY_HANDHELD: u32 = 118u32; +pub const PRODUCT_IOTEDGEOS: u32 = 187u32; +pub const PRODUCT_IOTENTERPRISE: u32 = 188u32; +pub const PRODUCT_IOTENTERPRISES: u32 = 191u32; +pub const PRODUCT_IOTOS: u32 = 185u32; +pub const PRODUCT_LITE: u32 = 189u32; +pub const PRODUCT_NANO_SERVER: u32 = 109u32; +pub const PRODUCT_ONECOREUPDATEOS: u32 = 182u32; +pub const PRODUCT_PPI_PRO: u32 = 119u32; +pub const PRODUCT_PROFESSIONAL_EMBEDDED: u32 = 58u32; +pub const PRODUCT_PROFESSIONAL_S: u32 = 127u32; +pub const PRODUCT_PROFESSIONAL_STUDENT: u32 = 112u32; +pub const PRODUCT_PROFESSIONAL_STUDENT_N: u32 = 114u32; +pub const PRODUCT_PROFESSIONAL_S_N: u32 = 128u32; +pub const PRODUCT_PRO_CHINA: u32 = 139u32; +pub const PRODUCT_PRO_FOR_EDUCATION: u32 = 164u32; +pub const PRODUCT_PRO_FOR_EDUCATION_N: u32 = 165u32; +pub const PRODUCT_PRO_SINGLE_LANGUAGE: u32 = 138u32; +pub const PRODUCT_SERVERRDSH: u32 = 175u32; +pub const PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE: u32 = 57u32; +pub const PRODUCT_STANDARD_EVALUATION_SERVER_CORE: u32 = 160u32; +pub const PRODUCT_STANDARD_NANO_SERVER: u32 = 144u32; +pub const PRODUCT_STANDARD_SERVER_CORE: u32 = 13u32; +pub const PRODUCT_STANDARD_WS_SERVER_CORE: u32 = 148u32; +pub const PRODUCT_THINPC: u32 = 87u32; +pub const PRODUCT_UNLICENSED: u32 = 2882382797u32; +pub const PRODUCT_UTILITY_VM: u32 = 149u32; +pub const PRODUCT_XBOX_DURANGOHOSTOS: u32 = 196u32; +pub const PRODUCT_XBOX_ERAOS: u32 = 195u32; +pub const PRODUCT_XBOX_GAMEOS: u32 = 194u32; +pub const PRODUCT_XBOX_KEYSTONE: u32 = 198u32; +pub const PRODUCT_XBOX_SCARLETTHOSTOS: u32 = 197u32; +pub const PRODUCT_XBOX_SYSTEMOS: u32 = 192u32; +pub const PcTeb: u32 = 24u32; +pub const PdataCrChained: ARM64_FNPDATA_CR = 3i32; +pub const PdataCrChainedWithPac: ARM64_FNPDATA_CR = 2i32; +pub const PdataCrUnchained: ARM64_FNPDATA_CR = 0i32; +pub const PdataCrUnchainedSavedLr: ARM64_FNPDATA_CR = 1i32; +pub const PdataPackedUnwindFragment: ARM64_FNPDATA_FLAGS = 2i32; +pub const PdataPackedUnwindFunction: ARM64_FNPDATA_FLAGS = 1i32; +pub const PdataRefToFullXdata: ARM64_FNPDATA_FLAGS = 0i32; +pub const PowerMonitorDim: MONITOR_DISPLAY_STATE = 2i32; +pub const PowerMonitorOff: MONITOR_DISPLAY_STATE = 0i32; +pub const PowerMonitorOn: MONITOR_DISPLAY_STATE = 1i32; +pub const QUOTA_LIMITS_USE_DEFAULT_LIMITS: u32 = 16u32; +pub const READ_THREAD_PROFILING_FLAG_DISPATCHING: u32 = 1u32; +pub const READ_THREAD_PROFILING_FLAG_HARDWARE_COUNTERS: u32 = 2u32; +pub const RECO_COPY: RECO_FLAGS = 2u32; +pub const RECO_CUT: RECO_FLAGS = 3u32; +pub const RECO_DRAG: RECO_FLAGS = 4u32; +pub const RECO_DROP: RECO_FLAGS = 1u32; +pub const RECO_PASTE: RECO_FLAGS = 0u32; +pub const REDBOOK_DIGITAL_AUDIO_EXTRACTION_INFO_VERSION: u32 = 1u32; +pub const REG_APP_HIVE: i32 = 16i32; +pub const REG_APP_HIVE_OPEN_READ_ONLY: i32 = 8192i32; +pub const REG_BOOT_HIVE: i32 = 1024i32; +pub const REG_FLUSH_HIVE_FILE_GROWTH: i32 = 4096i32; +pub const REG_FORCE_UNLOAD: u32 = 1u32; +pub const REG_HIVE_EXACT_FILE_GROWTH: i32 = 128i32; +pub const REG_HIVE_NO_RM: i32 = 256i32; +pub const REG_HIVE_SINGLE_LOG: i32 = 512i32; +pub const REG_IMMUTABLE: i32 = 16384i32; +pub const REG_LOAD_HIVE_OPEN_HANDLE: i32 = 2048i32; +pub const REG_NO_IMPERSONATION_FALLBACK: i32 = 32768i32; +pub const REG_NO_LAZY_FLUSH: i32 = 4i32; +pub const REG_OPEN_READ_ONLY: i32 = 8192i32; +pub const REG_PROCESS_PRIVATE: i32 = 32i32; +pub const REG_REFRESH_HIVE: i32 = 2i32; +pub const REG_START_JOURNAL: i32 = 64i32; +pub const REG_UNLOAD_LEGAL_FLAGS: u32 = 1u32; +pub const RESOURCEMANAGER_COMPLETE_PROPAGATION: u32 = 64u32; +pub const RESOURCEMANAGER_ENLIST: u32 = 8u32; +pub const RESOURCEMANAGER_GET_NOTIFICATION: u32 = 16u32; +pub const RESOURCEMANAGER_QUERY_INFORMATION: u32 = 1u32; +pub const RESOURCEMANAGER_RECOVER: u32 = 4u32; +pub const RESOURCEMANAGER_REGISTER_PROTOCOL: u32 = 32u32; +pub const RESOURCEMANAGER_SET_INFORMATION: u32 = 2u32; +pub const ROT_COMPARE_MAX: u32 = 2048u32; +pub const RTL_CONDITION_VARIABLE_LOCKMODE_SHARED: u32 = 1u32; +pub const RTL_CRITICAL_SECTION_ALL_FLAG_BITS: u32 = 4278190080u32; +pub const RTL_CRITICAL_SECTION_DEBUG_FLAG_STATIC_INIT: u32 = 1u32; +pub const RTL_CRITICAL_SECTION_FLAG_DYNAMIC_SPIN: u32 = 33554432u32; +pub const RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO: u32 = 268435456u32; +pub const RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO: u32 = 16777216u32; +pub const RTL_CRITICAL_SECTION_FLAG_RESOURCE_TYPE: u32 = 134217728u32; +pub const RTL_CRITICAL_SECTION_FLAG_STATIC_INIT: u32 = 67108864u32; +pub const RTL_RUN_ONCE_ASYNC: u32 = 2u32; +pub const RTL_RUN_ONCE_CHECK_ONLY: u32 = 1u32; +pub const RTL_RUN_ONCE_CTX_RESERVED_BITS: u32 = 2u32; +pub const RTL_RUN_ONCE_INIT_FAILED: u32 = 4u32; +pub const RTL_UMS_VERSION: u32 = 256u32; +pub const RTL_VIRTUAL_UNWIND2_VALIDATE_PAC: u32 = 1u32; +pub const RUNTIME_FUNCTION_INDIRECT: u32 = 1u32; +pub const RecognizerType: SERVICE_NODE_TYPE = 8i32; +pub const ResourceManagerBasicInformation: RESOURCEMANAGER_INFORMATION_CLASS = 0i32; +pub const ResourceManagerCompletionInformation: RESOURCEMANAGER_INFORMATION_CLASS = 1i32; +pub const RunlevelInformationInActivationContext: ACTIVATION_CONTEXT_INFO_CLASS = 5i32; +pub const SCRUB_DATA_INPUT_FLAG_IGNORE_REDUNDANCY: u32 = 8u32; +pub const SCRUB_DATA_INPUT_FLAG_OPLOCK_NOT_ACQUIRED: u32 = 64u32; +pub const SCRUB_DATA_INPUT_FLAG_RESUME: u32 = 1u32; +pub const SCRUB_DATA_INPUT_FLAG_SCRUB_BY_OBJECT_ID: u32 = 32u32; +pub const SCRUB_DATA_INPUT_FLAG_SKIP_DATA: u32 = 16u32; +pub const SCRUB_DATA_INPUT_FLAG_SKIP_IN_SYNC: u32 = 2u32; +pub const SCRUB_DATA_INPUT_FLAG_SKIP_NON_INTEGRITY_DATA: u32 = 4u32; +pub const SCRUB_DATA_OUTPUT_FLAG_INCOMPLETE: u32 = 1u32; +pub const SCRUB_DATA_OUTPUT_FLAG_NON_USER_DATA_RANGE: u32 = 65536u32; +pub const SCRUB_DATA_OUTPUT_FLAG_PARITY_EXTENT_DATA_RETURNED: u32 = 131072u32; +pub const SCRUB_DATA_OUTPUT_FLAG_RESUME_CONTEXT_LENGTH_SPECIFIED: u32 = 262144u32; +pub const SECURITY_ANONYMOUS_LOGON_RID: i32 = 7i32; +pub const SECURITY_APPPOOL_ID_BASE_RID: i32 = 82i32; +pub const SECURITY_APPPOOL_ID_RID_COUNT: i32 = 6i32; +pub const SECURITY_APP_PACKAGE_BASE_RID: i32 = 2i32; +pub const SECURITY_APP_PACKAGE_RID_COUNT: i32 = 8i32; +pub const SECURITY_AUTHENTICATED_USER_RID: i32 = 11i32; +pub const SECURITY_AUTHENTICATION_AUTHORITY_ASSERTED_RID: i32 = 1i32; +pub const SECURITY_AUTHENTICATION_AUTHORITY_RID_COUNT: i32 = 1i32; +pub const SECURITY_AUTHENTICATION_FRESH_KEY_AUTH_RID: i32 = 3i32; +pub const SECURITY_AUTHENTICATION_KEY_PROPERTY_ATTESTATION_RID: i32 = 6i32; +pub const SECURITY_AUTHENTICATION_KEY_PROPERTY_MFA_RID: i32 = 5i32; +pub const SECURITY_AUTHENTICATION_KEY_TRUST_RID: i32 = 4i32; +pub const SECURITY_AUTHENTICATION_SERVICE_ASSERTED_RID: i32 = 2i32; +pub const SECURITY_BATCH_RID: i32 = 3i32; +pub const SECURITY_BUILTIN_APP_PACKAGE_RID_COUNT: i32 = 2i32; +pub const SECURITY_BUILTIN_CAPABILITY_RID_COUNT: i32 = 2i32; +pub const SECURITY_BUILTIN_DOMAIN_RID: i32 = 32i32; +pub const SECURITY_BUILTIN_PACKAGE_ANY_PACKAGE: i32 = 1i32; +pub const SECURITY_BUILTIN_PACKAGE_ANY_RESTRICTED_PACKAGE: i32 = 2i32; +pub const SECURITY_CAPABILITY_APPOINTMENTS: i32 = 11i32; +pub const SECURITY_CAPABILITY_APP_RID: i32 = 1024i32; +pub const SECURITY_CAPABILITY_APP_SILO_RID: i32 = 65536i32; +pub const SECURITY_CAPABILITY_BASE_RID: i32 = 3i32; +pub const SECURITY_CAPABILITY_CONTACTS: i32 = 12i32; +pub const SECURITY_CAPABILITY_DOCUMENTS_LIBRARY: i32 = 7i32; +pub const SECURITY_CAPABILITY_ENTERPRISE_AUTHENTICATION: i32 = 8i32; +pub const SECURITY_CAPABILITY_INTERNET_CLIENT: i32 = 1i32; +pub const SECURITY_CAPABILITY_INTERNET_CLIENT_SERVER: i32 = 2i32; +pub const SECURITY_CAPABILITY_INTERNET_EXPLORER: i32 = 4096i32; +pub const SECURITY_CAPABILITY_MUSIC_LIBRARY: i32 = 6i32; +pub const SECURITY_CAPABILITY_PICTURES_LIBRARY: i32 = 4i32; +pub const SECURITY_CAPABILITY_PRIVATE_NETWORK_CLIENT_SERVER: i32 = 3i32; +pub const SECURITY_CAPABILITY_REMOVABLE_STORAGE: i32 = 10i32; +pub const SECURITY_CAPABILITY_RID_COUNT: i32 = 5i32; +pub const SECURITY_CAPABILITY_SHARED_USER_CERTIFICATES: i32 = 9i32; +pub const SECURITY_CAPABILITY_VIDEOS_LIBRARY: i32 = 5i32; +pub const SECURITY_CCG_ID_BASE_RID: i32 = 95i32; +pub const SECURITY_CHILD_PACKAGE_RID_COUNT: i32 = 12i32; +pub const SECURITY_CLOUD_INFRASTRUCTURE_SERVICES_ID_BASE_RID: i32 = 85i32; +pub const SECURITY_CLOUD_INFRASTRUCTURE_SERVICES_ID_RID_COUNT: i32 = 6i32; +pub const SECURITY_COM_ID_BASE_RID: i32 = 89i32; +pub const SECURITY_CREATOR_GROUP_RID: i32 = 1i32; +pub const SECURITY_CREATOR_GROUP_SERVER_RID: i32 = 3i32; +pub const SECURITY_CREATOR_OWNER_RID: i32 = 0i32; +pub const SECURITY_CREATOR_OWNER_RIGHTS_RID: i32 = 4i32; +pub const SECURITY_CREATOR_OWNER_SERVER_RID: i32 = 2i32; +pub const SECURITY_CRED_TYPE_BASE_RID: i32 = 65i32; +pub const SECURITY_CRED_TYPE_RID_COUNT: i32 = 2i32; +pub const SECURITY_CRED_TYPE_THIS_ORG_CERT_RID: i32 = 1i32; +pub const SECURITY_DASHOST_ID_BASE_RID: i32 = 92i32; +pub const SECURITY_DASHOST_ID_RID_COUNT: i32 = 6i32; +pub const SECURITY_DESCRIPTOR_REVISION: u32 = 1u32; +pub const SECURITY_DESCRIPTOR_REVISION1: u32 = 1u32; +pub const SECURITY_DIALUP_RID: i32 = 1i32; +pub const SECURITY_ENTERPRISE_CONTROLLERS_RID: i32 = 9i32; +pub const SECURITY_ENTERPRISE_READONLY_CONTROLLERS_RID: i32 = 22i32; +pub const SECURITY_INSTALLER_CAPABILITY_RID_COUNT: u32 = 10u32; +pub const SECURITY_INSTALLER_GROUP_CAPABILITY_BASE: u32 = 32u32; +pub const SECURITY_INSTALLER_GROUP_CAPABILITY_RID_COUNT: u32 = 9u32; +pub const SECURITY_INTERACTIVE_RID: i32 = 4i32; +pub const SECURITY_IUSER_RID: i32 = 17i32; +pub const SECURITY_LOCAL_ACCOUNT_AND_ADMIN_RID: i32 = 114i32; +pub const SECURITY_LOCAL_ACCOUNT_RID: i32 = 113i32; +pub const SECURITY_LOCAL_LOGON_RID: i32 = 1i32; +pub const SECURITY_LOCAL_RID: i32 = 0i32; +pub const SECURITY_LOCAL_SERVICE_RID: i32 = 19i32; +pub const SECURITY_LOCAL_SYSTEM_RID: i32 = 18i32; +pub const SECURITY_LOGON_IDS_RID: i32 = 5i32; +pub const SECURITY_LOGON_IDS_RID_COUNT: i32 = 3i32; +pub const SECURITY_MANDATORY_HIGH_RID: i32 = 12288i32; +pub const SECURITY_MANDATORY_LOW_RID: i32 = 4096i32; +pub const SECURITY_MANDATORY_MAXIMUM_USER_RID: i32 = 16384i32; +pub const SECURITY_MANDATORY_MEDIUM_PLUS_RID: u32 = 8448u32; +pub const SECURITY_MANDATORY_MEDIUM_RID: i32 = 8192i32; +pub const SECURITY_MANDATORY_PROTECTED_PROCESS_RID: i32 = 20480i32; +pub const SECURITY_MANDATORY_SYSTEM_RID: i32 = 16384i32; +pub const SECURITY_MANDATORY_UNTRUSTED_RID: i32 = 0i32; +pub const SECURITY_MAX_ALWAYS_FILTERED: i32 = 999i32; +pub const SECURITY_MAX_BASE_RID: i32 = 111i32; +pub const SECURITY_MIN_BASE_RID: i32 = 80i32; +pub const SECURITY_MIN_NEVER_FILTERED: i32 = 1000i32; +pub const SECURITY_NETWORK_RID: i32 = 2i32; +pub const SECURITY_NETWORK_SERVICE_RID: i32 = 20i32; +pub const SECURITY_NFS_ID_BASE_RID: i32 = 88i32; +pub const SECURITY_NT_NON_UNIQUE: i32 = 21i32; +pub const SECURITY_NT_NON_UNIQUE_SUB_AUTH_COUNT: i32 = 3i32; +pub const SECURITY_NULL_RID: i32 = 0i32; +pub const SECURITY_OTHER_ORGANIZATION_RID: i32 = 1000i32; +pub const SECURITY_PACKAGE_BASE_RID: i32 = 64i32; +pub const SECURITY_PACKAGE_DIGEST_RID: i32 = 21i32; +pub const SECURITY_PACKAGE_NTLM_RID: i32 = 10i32; +pub const SECURITY_PACKAGE_RID_COUNT: i32 = 2i32; +pub const SECURITY_PACKAGE_SCHANNEL_RID: i32 = 14i32; +pub const SECURITY_PARENT_PACKAGE_RID_COUNT: i32 = 8i32; +pub const SECURITY_PRINCIPAL_SELF_RID: i32 = 10i32; +pub const SECURITY_PROCESS_PROTECTION_LEVEL_ANTIMALWARE_RID: i32 = 1536i32; +pub const SECURITY_PROCESS_PROTECTION_LEVEL_APP_RID: i32 = 2048i32; +pub const SECURITY_PROCESS_PROTECTION_LEVEL_AUTHENTICODE_RID: i32 = 1024i32; +pub const SECURITY_PROCESS_PROTECTION_LEVEL_NONE_RID: i32 = 0i32; +pub const SECURITY_PROCESS_PROTECTION_LEVEL_WINDOWS_RID: i32 = 4096i32; +pub const SECURITY_PROCESS_PROTECTION_LEVEL_WINTCB_RID: i32 = 8192i32; +pub const SECURITY_PROCESS_PROTECTION_TYPE_FULL_RID: i32 = 1024i32; +pub const SECURITY_PROCESS_PROTECTION_TYPE_LITE_RID: i32 = 512i32; +pub const SECURITY_PROCESS_PROTECTION_TYPE_NONE_RID: i32 = 0i32; +pub const SECURITY_PROCESS_TRUST_AUTHORITY_RID_COUNT: i32 = 2i32; +pub const SECURITY_PROXY_RID: i32 = 8i32; +pub const SECURITY_RDV_GFX_BASE_RID: i32 = 91i32; +pub const SECURITY_REMOTE_LOGON_RID: i32 = 14i32; +pub const SECURITY_RESERVED_ID_BASE_RID: i32 = 81i32; +pub const SECURITY_RESTRICTED_CODE_RID: i32 = 12i32; +pub const SECURITY_SERVER_LOGON_RID: i32 = 9i32; +pub const SECURITY_SERVICE_ID_BASE_RID: i32 = 80i32; +pub const SECURITY_SERVICE_ID_RID_COUNT: i32 = 6i32; +pub const SECURITY_SERVICE_RID: i32 = 6i32; +pub const SECURITY_TASK_ID_BASE_RID: i32 = 87i32; +pub const SECURITY_TERMINAL_SERVER_RID: i32 = 13i32; +pub const SECURITY_THIS_ORGANIZATION_RID: i32 = 15i32; +pub const SECURITY_TRUSTED_INSTALLER_RID1: u32 = 956008885u32; +pub const SECURITY_TRUSTED_INSTALLER_RID2: u32 = 3418522649u32; +pub const SECURITY_TRUSTED_INSTALLER_RID3: u32 = 1831038044u32; +pub const SECURITY_TRUSTED_INSTALLER_RID4: u32 = 1853292631u32; +pub const SECURITY_TRUSTED_INSTALLER_RID5: u32 = 2271478464u32; +pub const SECURITY_UMFD_BASE_RID: i32 = 96i32; +pub const SECURITY_USERMANAGER_ID_BASE_RID: i32 = 93i32; +pub const SECURITY_USERMANAGER_ID_RID_COUNT: i32 = 6i32; +pub const SECURITY_USERMODEDRIVERHOST_ID_BASE_RID: i32 = 84i32; +pub const SECURITY_USERMODEDRIVERHOST_ID_RID_COUNT: i32 = 6i32; +pub const SECURITY_VIRTUALACCOUNT_ID_RID_COUNT: i32 = 6i32; +pub const SECURITY_VIRTUALSERVER_ID_BASE_RID: i32 = 83i32; +pub const SECURITY_VIRTUALSERVER_ID_RID_COUNT: i32 = 6i32; +pub const SECURITY_WINDOWSMOBILE_ID_BASE_RID: i32 = 112i32; +pub const SECURITY_WINDOW_MANAGER_BASE_RID: i32 = 90i32; +pub const SECURITY_WINRM_ID_BASE_RID: i32 = 94i32; +pub const SECURITY_WINRM_ID_RID_COUNT: i32 = 6i32; +pub const SECURITY_WMIHOST_ID_BASE_RID: i32 = 86i32; +pub const SECURITY_WMIHOST_ID_RID_COUNT: i32 = 6i32; +pub const SECURITY_WORLD_RID: i32 = 0i32; +pub const SECURITY_WRITE_RESTRICTED_CODE_RID: i32 = 33i32; +pub const SEC_HUGE_PAGES: u32 = 131072u32; +pub const SEF_AI_USE_EXTRA_PARAMS: u32 = 2048u32; +pub const SEF_FORCE_USER_MODE: u32 = 8192u32; +pub const SEF_NORMALIZE_OUTPUT_DESCRIPTOR: u32 = 16384u32; +pub const SERVERSILO_INITING: SERVERSILO_STATE = 0i32; +pub const SERVERSILO_SHUTTING_DOWN: SERVERSILO_STATE = 2i32; +pub const SERVERSILO_STARTED: SERVERSILO_STATE = 1i32; +pub const SERVERSILO_TERMINATED: SERVERSILO_STATE = 4i32; +pub const SERVERSILO_TERMINATING: SERVERSILO_STATE = 3i32; +pub const SERVICE_INTERACTIVE_PROCESS: u32 = 256u32; +pub const SERVICE_PKG_SERVICE: u32 = 512u32; +pub const SERVICE_USERSERVICE_INSTANCE: u32 = 128u32; +pub const SERVICE_USER_SERVICE: u32 = 64u32; +pub const SESSION_MODIFY_ACCESS: u32 = 2u32; +pub const SESSION_QUERY_ACCESS: u32 = 1u32; +pub const SE_ACCESS_CHECK_FLAG_NO_LEARNING_MODE_LOGGING: u32 = 8u32; +pub const SE_ACCESS_CHECK_VALID_FLAGS: u32 = 8u32; +pub const SE_ACTIVATE_AS_USER_CAPABILITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("activateAsUser"); +pub const SE_APP_SILO_PRINT_CAPABILITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("isolatedWin32-print"); +pub const SE_APP_SILO_PROFILES_ROOT_MINIMAL_CAPABILITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("isolatedWin32-profilesRootMinimal"); +pub const SE_APP_SILO_USER_PROFILE_MINIMAL_CAPABILITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("isolatedWin32-userProfileMinimal"); +pub const SE_APP_SILO_VOLUME_ROOT_MINIMAL_CAPABILITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("isolatedWin32-volumeRootMinimal"); +pub const SE_CONSTRAINED_IMPERSONATION_CAPABILITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("constrainedImpersonation"); +pub const SE_DEVELOPMENT_MODE_NETWORK_CAPABILITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("developmentModeNetwork"); +pub const SE_GROUP_ENABLED: i32 = 4i32; +pub const SE_GROUP_ENABLED_BY_DEFAULT: i32 = 2i32; +pub const SE_GROUP_INTEGRITY: i32 = 32i32; +pub const SE_GROUP_INTEGRITY_ENABLED: i32 = 64i32; +pub const SE_GROUP_LOGON_ID: i32 = -1073741824i32; +pub const SE_GROUP_MANDATORY: i32 = 1i32; +pub const SE_GROUP_OWNER: i32 = 8i32; +pub const SE_GROUP_RESOURCE: i32 = 536870912i32; +pub const SE_GROUP_USE_FOR_DENY_ONLY: i32 = 16i32; +pub const SE_LEARNING_MODE_LOGGING_CAPABILITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("learningModeLogging"); +pub const SE_MUMA_CAPABILITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("muma"); +pub const SE_PERMISSIVE_LEARNING_MODE_CAPABILITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("permissiveLearningMode"); +pub const SE_SECURITY_DESCRIPTOR_FLAG_NO_ACCESS_FILTER_ACE: u32 = 4u32; +pub const SE_SECURITY_DESCRIPTOR_FLAG_NO_LABEL_ACE: u32 = 2u32; +pub const SE_SECURITY_DESCRIPTOR_FLAG_NO_OWNER_ACE: u32 = 1u32; +pub const SE_SECURITY_DESCRIPTOR_VALID_FLAGS: u32 = 7u32; +pub const SE_SESSION_IMPERSONATION_CAPABILITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("sessionImpersonation"); +pub const SE_SIGNING_LEVEL_ANTIMALWARE: u32 = 7u32; +pub const SE_SIGNING_LEVEL_AUTHENTICODE: u32 = 4u32; +pub const SE_SIGNING_LEVEL_CUSTOM_1: u32 = 3u32; +pub const SE_SIGNING_LEVEL_CUSTOM_2: u32 = 5u32; +pub const SE_SIGNING_LEVEL_CUSTOM_3: u32 = 7u32; +pub const SE_SIGNING_LEVEL_CUSTOM_4: u32 = 9u32; +pub const SE_SIGNING_LEVEL_CUSTOM_5: u32 = 10u32; +pub const SE_SIGNING_LEVEL_CUSTOM_6: u32 = 15u32; +pub const SE_SIGNING_LEVEL_CUSTOM_7: u32 = 13u32; +pub const SE_SIGNING_LEVEL_DEVELOPER: u32 = 3u32; +pub const SE_SIGNING_LEVEL_DYNAMIC_CODEGEN: u32 = 11u32; +pub const SE_SIGNING_LEVEL_ENTERPRISE: u32 = 2u32; +pub const SE_SIGNING_LEVEL_MICROSOFT: u32 = 8u32; +pub const SE_SIGNING_LEVEL_STORE: u32 = 6u32; +pub const SE_SIGNING_LEVEL_UNCHECKED: u32 = 0u32; +pub const SE_SIGNING_LEVEL_UNSIGNED: u32 = 1u32; +pub const SE_SIGNING_LEVEL_WINDOWS: u32 = 12u32; +pub const SE_SIGNING_LEVEL_WINDOWS_TCB: u32 = 14u32; +pub const SFGAO_BROWSABLE: SFGAO_FLAGS = 134217728u32; +pub const SFGAO_CANCOPY: SFGAO_FLAGS = 1u32; +pub const SFGAO_CANDELETE: SFGAO_FLAGS = 32u32; +pub const SFGAO_CANLINK: SFGAO_FLAGS = 4u32; +pub const SFGAO_CANMONIKER: SFGAO_FLAGS = 4194304u32; +pub const SFGAO_CANMOVE: SFGAO_FLAGS = 2u32; +pub const SFGAO_CANRENAME: SFGAO_FLAGS = 16u32; +pub const SFGAO_CAPABILITYMASK: SFGAO_FLAGS = 375u32; +pub const SFGAO_COMPRESSED: SFGAO_FLAGS = 67108864u32; +pub const SFGAO_CONTENTSMASK: SFGAO_FLAGS = 2147483648u32; +pub const SFGAO_DISPLAYATTRMASK: SFGAO_FLAGS = 1032192u32; +pub const SFGAO_DROPTARGET: SFGAO_FLAGS = 256u32; +pub const SFGAO_ENCRYPTED: SFGAO_FLAGS = 8192u32; +pub const SFGAO_FILESYSANCESTOR: SFGAO_FLAGS = 268435456u32; +pub const SFGAO_FILESYSTEM: SFGAO_FLAGS = 1073741824u32; +pub const SFGAO_FOLDER: SFGAO_FLAGS = 536870912u32; +pub const SFGAO_GHOSTED: SFGAO_FLAGS = 32768u32; +pub const SFGAO_HASPROPSHEET: SFGAO_FLAGS = 64u32; +pub const SFGAO_HASSTORAGE: SFGAO_FLAGS = 4194304u32; +pub const SFGAO_HASSUBFOLDER: SFGAO_FLAGS = 2147483648u32; +pub const SFGAO_HIDDEN: SFGAO_FLAGS = 524288u32; +pub const SFGAO_ISSLOW: SFGAO_FLAGS = 16384u32; +pub const SFGAO_LINK: SFGAO_FLAGS = 65536u32; +pub const SFGAO_NEWCONTENT: SFGAO_FLAGS = 2097152u32; +pub const SFGAO_NONENUMERATED: SFGAO_FLAGS = 1048576u32; +pub const SFGAO_PKEYSFGAOMASK: SFGAO_FLAGS = 2164539392u32; +pub const SFGAO_PLACEHOLDER: SFGAO_FLAGS = 2048u32; +pub const SFGAO_READONLY: SFGAO_FLAGS = 262144u32; +pub const SFGAO_REMOVABLE: SFGAO_FLAGS = 33554432u32; +pub const SFGAO_SHARE: SFGAO_FLAGS = 131072u32; +pub const SFGAO_STORAGE: SFGAO_FLAGS = 8u32; +pub const SFGAO_STORAGEANCESTOR: SFGAO_FLAGS = 8388608u32; +pub const SFGAO_STORAGECAPMASK: SFGAO_FLAGS = 1891958792u32; +pub const SFGAO_STREAM: SFGAO_FLAGS = 4194304u32; +pub const SFGAO_SYSTEM: SFGAO_FLAGS = 4096u32; +pub const SFGAO_VALIDATE: SFGAO_FLAGS = 16777216u32; +pub const SHUFFLE_FILE_FLAG_SKIP_INITIALIZING_NEW_CLUSTERS: u32 = 1u32; +pub const SID_HASH_SIZE: u32 = 32u32; +pub const SID_MAX_SUB_AUTHORITIES: u32 = 15u32; +pub const SID_RECOMMENDED_SUB_AUTHORITIES: u32 = 1u32; +pub const SID_REVISION: u32 = 1u32; +pub const SIZEOF_RFPO_DATA: u32 = 16u32; +pub const SIZE_OF_80387_REGISTERS: u32 = 80u32; +pub const SMB_CCF_APP_INSTANCE_EA_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ClusteredApplicationInstance"); +pub const SMT_UNPARKING_POLICY_CORE: u32 = 0u32; +pub const SMT_UNPARKING_POLICY_CORE_PER_THREAD: u32 = 1u32; +pub const SMT_UNPARKING_POLICY_LP_ROUNDROBIN: u32 = 2u32; +pub const SMT_UNPARKING_POLICY_LP_SEQUENTIAL: u32 = 3u32; +pub const SORT_CHINESE_BIG5: u32 = 0u32; +pub const SORT_CHINESE_BOPOMOFO: u32 = 3u32; +pub const SORT_CHINESE_PRC: u32 = 2u32; +pub const SORT_CHINESE_PRCP: u32 = 0u32; +pub const SORT_CHINESE_RADICALSTROKE: u32 = 4u32; +pub const SORT_CHINESE_UNICODE: u32 = 1u32; +pub const SORT_DEFAULT: u32 = 0u32; +pub const SORT_GEORGIAN_MODERN: u32 = 1u32; +pub const SORT_GEORGIAN_TRADITIONAL: u32 = 0u32; +pub const SORT_GERMAN_PHONE_BOOK: u32 = 1u32; +pub const SORT_HUNGARIAN_DEFAULT: u32 = 0u32; +pub const SORT_HUNGARIAN_TECHNICAL: u32 = 1u32; +pub const SORT_INVARIANT_MATH: u32 = 1u32; +pub const SORT_JAPANESE_RADICALSTROKE: u32 = 4u32; +pub const SORT_JAPANESE_UNICODE: u32 = 1u32; +pub const SORT_JAPANESE_XJIS: u32 = 0u32; +pub const SORT_KOREAN_KSC: u32 = 0u32; +pub const SORT_KOREAN_UNICODE: u32 = 1u32; +pub const SS_BITMAP: STATIC_STYLES = 14u32; +pub const SS_BLACKFRAME: STATIC_STYLES = 7u32; +pub const SS_BLACKRECT: STATIC_STYLES = 4u32; +pub const SS_CENTER: STATIC_STYLES = 1u32; +pub const SS_CENTERIMAGE: STATIC_STYLES = 512u32; +pub const SS_EDITCONTROL: STATIC_STYLES = 8192u32; +pub const SS_ELLIPSISMASK: STATIC_STYLES = 49152u32; +pub const SS_ENDELLIPSIS: STATIC_STYLES = 16384u32; +pub const SS_ENHMETAFILE: STATIC_STYLES = 15u32; +pub const SS_ETCHEDFRAME: STATIC_STYLES = 18u32; +pub const SS_ETCHEDHORZ: STATIC_STYLES = 16u32; +pub const SS_ETCHEDVERT: STATIC_STYLES = 17u32; +pub const SS_GRAYFRAME: STATIC_STYLES = 8u32; +pub const SS_GRAYRECT: STATIC_STYLES = 5u32; +pub const SS_ICON: STATIC_STYLES = 3u32; +pub const SS_LEFT: STATIC_STYLES = 0u32; +pub const SS_LEFTNOWORDWRAP: STATIC_STYLES = 12u32; +pub const SS_NOPREFIX: STATIC_STYLES = 128u32; +pub const SS_NOTIFY: STATIC_STYLES = 256u32; +pub const SS_OWNERDRAW: STATIC_STYLES = 13u32; +pub const SS_PATHELLIPSIS: STATIC_STYLES = 32768u32; +pub const SS_REALSIZECONTROL: STATIC_STYLES = 64u32; +pub const SS_REALSIZEIMAGE: STATIC_STYLES = 2048u32; +pub const SS_RIGHT: STATIC_STYLES = 2u32; +pub const SS_RIGHTJUST: STATIC_STYLES = 1024u32; +pub const SS_SIMPLE: STATIC_STYLES = 11u32; +pub const SS_SUNKEN: STATIC_STYLES = 4096u32; +pub const SS_TYPEMASK: STATIC_STYLES = 31u32; +pub const SS_USERITEM: STATIC_STYLES = 10u32; +pub const SS_WHITEFRAME: STATIC_STYLES = 9u32; +pub const SS_WHITERECT: STATIC_STYLES = 6u32; +pub const SS_WORDELLIPSIS: STATIC_STYLES = 49152u32; +pub const SUBLANG_AFRIKAANS_SOUTH_AFRICA: u32 = 1u32; +pub const SUBLANG_ALBANIAN_ALBANIA: u32 = 1u32; +pub const SUBLANG_ALSATIAN_FRANCE: u32 = 1u32; +pub const SUBLANG_AMHARIC_ETHIOPIA: u32 = 1u32; +pub const SUBLANG_ARABIC_ALGERIA: u32 = 5u32; +pub const SUBLANG_ARABIC_BAHRAIN: u32 = 15u32; +pub const SUBLANG_ARABIC_EGYPT: u32 = 3u32; +pub const SUBLANG_ARABIC_IRAQ: u32 = 2u32; +pub const SUBLANG_ARABIC_JORDAN: u32 = 11u32; +pub const SUBLANG_ARABIC_KUWAIT: u32 = 13u32; +pub const SUBLANG_ARABIC_LEBANON: u32 = 12u32; +pub const SUBLANG_ARABIC_LIBYA: u32 = 4u32; +pub const SUBLANG_ARABIC_MOROCCO: u32 = 6u32; +pub const SUBLANG_ARABIC_OMAN: u32 = 8u32; +pub const SUBLANG_ARABIC_QATAR: u32 = 16u32; +pub const SUBLANG_ARABIC_SAUDI_ARABIA: u32 = 1u32; +pub const SUBLANG_ARABIC_SYRIA: u32 = 10u32; +pub const SUBLANG_ARABIC_TUNISIA: u32 = 7u32; +pub const SUBLANG_ARABIC_UAE: u32 = 14u32; +pub const SUBLANG_ARABIC_YEMEN: u32 = 9u32; +pub const SUBLANG_ARMENIAN_ARMENIA: u32 = 1u32; +pub const SUBLANG_ASSAMESE_INDIA: u32 = 1u32; +pub const SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC: u32 = 2u32; +pub const SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN: u32 = 1u32; +pub const SUBLANG_AZERI_CYRILLIC: u32 = 2u32; +pub const SUBLANG_AZERI_LATIN: u32 = 1u32; +pub const SUBLANG_BANGLA_BANGLADESH: u32 = 2u32; +pub const SUBLANG_BANGLA_INDIA: u32 = 1u32; +pub const SUBLANG_BASHKIR_RUSSIA: u32 = 1u32; +pub const SUBLANG_BASQUE_BASQUE: u32 = 1u32; +pub const SUBLANG_BELARUSIAN_BELARUS: u32 = 1u32; +pub const SUBLANG_BENGALI_BANGLADESH: u32 = 2u32; +pub const SUBLANG_BENGALI_INDIA: u32 = 1u32; +pub const SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC: u32 = 8u32; +pub const SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN: u32 = 5u32; +pub const SUBLANG_BRETON_FRANCE: u32 = 1u32; +pub const SUBLANG_BULGARIAN_BULGARIA: u32 = 1u32; +pub const SUBLANG_CATALAN_CATALAN: u32 = 1u32; +pub const SUBLANG_CENTRAL_KURDISH_IRAQ: u32 = 1u32; +pub const SUBLANG_CHEROKEE_CHEROKEE: u32 = 1u32; +pub const SUBLANG_CHINESE_HONGKONG: u32 = 3u32; +pub const SUBLANG_CHINESE_MACAU: u32 = 5u32; +pub const SUBLANG_CHINESE_SIMPLIFIED: u32 = 2u32; +pub const SUBLANG_CHINESE_SINGAPORE: u32 = 4u32; +pub const SUBLANG_CHINESE_TRADITIONAL: u32 = 1u32; +pub const SUBLANG_CORSICAN_FRANCE: u32 = 1u32; +pub const SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN: u32 = 4u32; +pub const SUBLANG_CROATIAN_CROATIA: u32 = 1u32; +pub const SUBLANG_CUSTOM_DEFAULT: u32 = 3u32; +pub const SUBLANG_CUSTOM_UNSPECIFIED: u32 = 4u32; +pub const SUBLANG_CZECH_CZECH_REPUBLIC: u32 = 1u32; +pub const SUBLANG_DANISH_DENMARK: u32 = 1u32; +pub const SUBLANG_DARI_AFGHANISTAN: u32 = 1u32; +pub const SUBLANG_DEFAULT: u32 = 1u32; +pub const SUBLANG_DIVEHI_MALDIVES: u32 = 1u32; +pub const SUBLANG_DUTCH: u32 = 1u32; +pub const SUBLANG_DUTCH_BELGIAN: u32 = 2u32; +pub const SUBLANG_ENGLISH_AUS: u32 = 3u32; +pub const SUBLANG_ENGLISH_BELIZE: u32 = 10u32; +pub const SUBLANG_ENGLISH_CAN: u32 = 4u32; +pub const SUBLANG_ENGLISH_CARIBBEAN: u32 = 9u32; +pub const SUBLANG_ENGLISH_EIRE: u32 = 6u32; +pub const SUBLANG_ENGLISH_INDIA: u32 = 16u32; +pub const SUBLANG_ENGLISH_JAMAICA: u32 = 8u32; +pub const SUBLANG_ENGLISH_MALAYSIA: u32 = 17u32; +pub const SUBLANG_ENGLISH_NZ: u32 = 5u32; +pub const SUBLANG_ENGLISH_PHILIPPINES: u32 = 13u32; +pub const SUBLANG_ENGLISH_SINGAPORE: u32 = 18u32; +pub const SUBLANG_ENGLISH_SOUTH_AFRICA: u32 = 7u32; +pub const SUBLANG_ENGLISH_TRINIDAD: u32 = 11u32; +pub const SUBLANG_ENGLISH_UK: u32 = 2u32; +pub const SUBLANG_ENGLISH_US: u32 = 1u32; +pub const SUBLANG_ENGLISH_ZIMBABWE: u32 = 12u32; +pub const SUBLANG_ESTONIAN_ESTONIA: u32 = 1u32; +pub const SUBLANG_FAEROESE_FAROE_ISLANDS: u32 = 1u32; +pub const SUBLANG_FILIPINO_PHILIPPINES: u32 = 1u32; +pub const SUBLANG_FINNISH_FINLAND: u32 = 1u32; +pub const SUBLANG_FRENCH: u32 = 1u32; +pub const SUBLANG_FRENCH_BELGIAN: u32 = 2u32; +pub const SUBLANG_FRENCH_CANADIAN: u32 = 3u32; +pub const SUBLANG_FRENCH_LUXEMBOURG: u32 = 5u32; +pub const SUBLANG_FRENCH_MONACO: u32 = 6u32; +pub const SUBLANG_FRENCH_SWISS: u32 = 4u32; +pub const SUBLANG_FRISIAN_NETHERLANDS: u32 = 1u32; +pub const SUBLANG_FULAH_SENEGAL: u32 = 2u32; +pub const SUBLANG_GALICIAN_GALICIAN: u32 = 1u32; +pub const SUBLANG_GEORGIAN_GEORGIA: u32 = 1u32; +pub const SUBLANG_GERMAN: u32 = 1u32; +pub const SUBLANG_GERMAN_AUSTRIAN: u32 = 3u32; +pub const SUBLANG_GERMAN_LIECHTENSTEIN: u32 = 5u32; +pub const SUBLANG_GERMAN_LUXEMBOURG: u32 = 4u32; +pub const SUBLANG_GERMAN_SWISS: u32 = 2u32; +pub const SUBLANG_GREEK_GREECE: u32 = 1u32; +pub const SUBLANG_GREENLANDIC_GREENLAND: u32 = 1u32; +pub const SUBLANG_GUJARATI_INDIA: u32 = 1u32; +pub const SUBLANG_HAUSA_NIGERIA_LATIN: u32 = 1u32; +pub const SUBLANG_HAWAIIAN_US: u32 = 1u32; +pub const SUBLANG_HEBREW_ISRAEL: u32 = 1u32; +pub const SUBLANG_HINDI_INDIA: u32 = 1u32; +pub const SUBLANG_HUNGARIAN_HUNGARY: u32 = 1u32; +pub const SUBLANG_ICELANDIC_ICELAND: u32 = 1u32; +pub const SUBLANG_IGBO_NIGERIA: u32 = 1u32; +pub const SUBLANG_INDONESIAN_INDONESIA: u32 = 1u32; +pub const SUBLANG_INUKTITUT_CANADA: u32 = 1u32; +pub const SUBLANG_INUKTITUT_CANADA_LATIN: u32 = 2u32; +pub const SUBLANG_IRISH_IRELAND: u32 = 2u32; +pub const SUBLANG_ITALIAN: u32 = 1u32; +pub const SUBLANG_ITALIAN_SWISS: u32 = 2u32; +pub const SUBLANG_JAPANESE_JAPAN: u32 = 1u32; +pub const SUBLANG_KANNADA_INDIA: u32 = 1u32; +pub const SUBLANG_KASHMIRI_INDIA: u32 = 2u32; +pub const SUBLANG_KASHMIRI_SASIA: u32 = 2u32; +pub const SUBLANG_KAZAK_KAZAKHSTAN: u32 = 1u32; +pub const SUBLANG_KHMER_CAMBODIA: u32 = 1u32; +pub const SUBLANG_KICHE_GUATEMALA: u32 = 1u32; +pub const SUBLANG_KINYARWANDA_RWANDA: u32 = 1u32; +pub const SUBLANG_KONKANI_INDIA: u32 = 1u32; +pub const SUBLANG_KOREAN: u32 = 1u32; +pub const SUBLANG_KYRGYZ_KYRGYZSTAN: u32 = 1u32; +pub const SUBLANG_LAO_LAO: u32 = 1u32; +pub const SUBLANG_LATVIAN_LATVIA: u32 = 1u32; +pub const SUBLANG_LITHUANIAN: u32 = 1u32; +pub const SUBLANG_LOWER_SORBIAN_GERMANY: u32 = 2u32; +pub const SUBLANG_LUXEMBOURGISH_LUXEMBOURG: u32 = 1u32; +pub const SUBLANG_MACEDONIAN_MACEDONIA: u32 = 1u32; +pub const SUBLANG_MALAYALAM_INDIA: u32 = 1u32; +pub const SUBLANG_MALAY_BRUNEI_DARUSSALAM: u32 = 2u32; +pub const SUBLANG_MALAY_MALAYSIA: u32 = 1u32; +pub const SUBLANG_MALTESE_MALTA: u32 = 1u32; +pub const SUBLANG_MAORI_NEW_ZEALAND: u32 = 1u32; +pub const SUBLANG_MAPUDUNGUN_CHILE: u32 = 1u32; +pub const SUBLANG_MARATHI_INDIA: u32 = 1u32; +pub const SUBLANG_MOHAWK_MOHAWK: u32 = 1u32; +pub const SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA: u32 = 1u32; +pub const SUBLANG_MONGOLIAN_PRC: u32 = 2u32; +pub const SUBLANG_NEPALI_INDIA: u32 = 2u32; +pub const SUBLANG_NEPALI_NEPAL: u32 = 1u32; +pub const SUBLANG_NEUTRAL: u32 = 0u32; +pub const SUBLANG_NORWEGIAN_BOKMAL: u32 = 1u32; +pub const SUBLANG_NORWEGIAN_NYNORSK: u32 = 2u32; +pub const SUBLANG_OCCITAN_FRANCE: u32 = 1u32; +pub const SUBLANG_ODIA_INDIA: u32 = 1u32; +pub const SUBLANG_ORIYA_INDIA: u32 = 1u32; +pub const SUBLANG_PASHTO_AFGHANISTAN: u32 = 1u32; +pub const SUBLANG_PERSIAN_IRAN: u32 = 1u32; +pub const SUBLANG_POLISH_POLAND: u32 = 1u32; +pub const SUBLANG_PORTUGUESE: u32 = 2u32; +pub const SUBLANG_PORTUGUESE_BRAZILIAN: u32 = 1u32; +pub const SUBLANG_PULAR_SENEGAL: u32 = 2u32; +pub const SUBLANG_PUNJABI_INDIA: u32 = 1u32; +pub const SUBLANG_PUNJABI_PAKISTAN: u32 = 2u32; +pub const SUBLANG_QUECHUA_BOLIVIA: u32 = 1u32; +pub const SUBLANG_QUECHUA_ECUADOR: u32 = 2u32; +pub const SUBLANG_QUECHUA_PERU: u32 = 3u32; +pub const SUBLANG_ROMANIAN_ROMANIA: u32 = 1u32; +pub const SUBLANG_ROMANSH_SWITZERLAND: u32 = 1u32; +pub const SUBLANG_RUSSIAN_RUSSIA: u32 = 1u32; +pub const SUBLANG_SAKHA_RUSSIA: u32 = 1u32; +pub const SUBLANG_SAMI_INARI_FINLAND: u32 = 9u32; +pub const SUBLANG_SAMI_LULE_NORWAY: u32 = 4u32; +pub const SUBLANG_SAMI_LULE_SWEDEN: u32 = 5u32; +pub const SUBLANG_SAMI_NORTHERN_FINLAND: u32 = 3u32; +pub const SUBLANG_SAMI_NORTHERN_NORWAY: u32 = 1u32; +pub const SUBLANG_SAMI_NORTHERN_SWEDEN: u32 = 2u32; +pub const SUBLANG_SAMI_SKOLT_FINLAND: u32 = 8u32; +pub const SUBLANG_SAMI_SOUTHERN_NORWAY: u32 = 6u32; +pub const SUBLANG_SAMI_SOUTHERN_SWEDEN: u32 = 7u32; +pub const SUBLANG_SANSKRIT_INDIA: u32 = 1u32; +pub const SUBLANG_SCOTTISH_GAELIC: u32 = 1u32; +pub const SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC: u32 = 7u32; +pub const SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN: u32 = 6u32; +pub const SUBLANG_SERBIAN_CROATIA: u32 = 1u32; +pub const SUBLANG_SERBIAN_CYRILLIC: u32 = 3u32; +pub const SUBLANG_SERBIAN_LATIN: u32 = 2u32; +pub const SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC: u32 = 12u32; +pub const SUBLANG_SERBIAN_MONTENEGRO_LATIN: u32 = 11u32; +pub const SUBLANG_SERBIAN_SERBIA_CYRILLIC: u32 = 10u32; +pub const SUBLANG_SERBIAN_SERBIA_LATIN: u32 = 9u32; +pub const SUBLANG_SINDHI_AFGHANISTAN: u32 = 2u32; +pub const SUBLANG_SINDHI_INDIA: u32 = 1u32; +pub const SUBLANG_SINDHI_PAKISTAN: u32 = 2u32; +pub const SUBLANG_SINHALESE_SRI_LANKA: u32 = 1u32; +pub const SUBLANG_SLOVAK_SLOVAKIA: u32 = 1u32; +pub const SUBLANG_SLOVENIAN_SLOVENIA: u32 = 1u32; +pub const SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA: u32 = 1u32; +pub const SUBLANG_SPANISH: u32 = 1u32; +pub const SUBLANG_SPANISH_ARGENTINA: u32 = 11u32; +pub const SUBLANG_SPANISH_BOLIVIA: u32 = 16u32; +pub const SUBLANG_SPANISH_CHILE: u32 = 13u32; +pub const SUBLANG_SPANISH_COLOMBIA: u32 = 9u32; +pub const SUBLANG_SPANISH_COSTA_RICA: u32 = 5u32; +pub const SUBLANG_SPANISH_DOMINICAN_REPUBLIC: u32 = 7u32; +pub const SUBLANG_SPANISH_ECUADOR: u32 = 12u32; +pub const SUBLANG_SPANISH_EL_SALVADOR: u32 = 17u32; +pub const SUBLANG_SPANISH_GUATEMALA: u32 = 4u32; +pub const SUBLANG_SPANISH_HONDURAS: u32 = 18u32; +pub const SUBLANG_SPANISH_MEXICAN: u32 = 2u32; +pub const SUBLANG_SPANISH_MODERN: u32 = 3u32; +pub const SUBLANG_SPANISH_NICARAGUA: u32 = 19u32; +pub const SUBLANG_SPANISH_PANAMA: u32 = 6u32; +pub const SUBLANG_SPANISH_PARAGUAY: u32 = 15u32; +pub const SUBLANG_SPANISH_PERU: u32 = 10u32; +pub const SUBLANG_SPANISH_PUERTO_RICO: u32 = 20u32; +pub const SUBLANG_SPANISH_URUGUAY: u32 = 14u32; +pub const SUBLANG_SPANISH_US: u32 = 21u32; +pub const SUBLANG_SPANISH_VENEZUELA: u32 = 8u32; +pub const SUBLANG_SWAHILI_KENYA: u32 = 1u32; +pub const SUBLANG_SWEDISH: u32 = 1u32; +pub const SUBLANG_SWEDISH_FINLAND: u32 = 2u32; +pub const SUBLANG_SYRIAC_SYRIA: u32 = 1u32; +pub const SUBLANG_SYS_DEFAULT: u32 = 2u32; +pub const SUBLANG_TAJIK_TAJIKISTAN: u32 = 1u32; +pub const SUBLANG_TAMAZIGHT_ALGERIA_LATIN: u32 = 2u32; +pub const SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH: u32 = 4u32; +pub const SUBLANG_TAMIL_INDIA: u32 = 1u32; +pub const SUBLANG_TAMIL_SRI_LANKA: u32 = 2u32; +pub const SUBLANG_TATAR_RUSSIA: u32 = 1u32; +pub const SUBLANG_TELUGU_INDIA: u32 = 1u32; +pub const SUBLANG_THAI_THAILAND: u32 = 1u32; +pub const SUBLANG_TIBETAN_PRC: u32 = 1u32; +pub const SUBLANG_TIGRIGNA_ERITREA: u32 = 2u32; +pub const SUBLANG_TIGRINYA_ERITREA: u32 = 2u32; +pub const SUBLANG_TIGRINYA_ETHIOPIA: u32 = 1u32; +pub const SUBLANG_TSWANA_BOTSWANA: u32 = 2u32; +pub const SUBLANG_TSWANA_SOUTH_AFRICA: u32 = 1u32; +pub const SUBLANG_TURKISH_TURKEY: u32 = 1u32; +pub const SUBLANG_TURKMEN_TURKMENISTAN: u32 = 1u32; +pub const SUBLANG_UIGHUR_PRC: u32 = 1u32; +pub const SUBLANG_UI_CUSTOM_DEFAULT: u32 = 5u32; +pub const SUBLANG_UKRAINIAN_UKRAINE: u32 = 1u32; +pub const SUBLANG_UPPER_SORBIAN_GERMANY: u32 = 1u32; +pub const SUBLANG_URDU_INDIA: u32 = 2u32; +pub const SUBLANG_URDU_PAKISTAN: u32 = 1u32; +pub const SUBLANG_UZBEK_CYRILLIC: u32 = 2u32; +pub const SUBLANG_UZBEK_LATIN: u32 = 1u32; +pub const SUBLANG_VALENCIAN_VALENCIA: u32 = 2u32; +pub const SUBLANG_VIETNAMESE_VIETNAM: u32 = 1u32; +pub const SUBLANG_WELSH_UNITED_KINGDOM: u32 = 1u32; +pub const SUBLANG_WOLOF_SENEGAL: u32 = 1u32; +pub const SUBLANG_XHOSA_SOUTH_AFRICA: u32 = 1u32; +pub const SUBLANG_YAKUT_RUSSIA: u32 = 1u32; +pub const SUBLANG_YI_PRC: u32 = 1u32; +pub const SUBLANG_YORUBA_NIGERIA: u32 = 1u32; +pub const SUBLANG_ZULU_SOUTH_AFRICA: u32 = 1u32; +pub const SYSTEM_ACCESS_FILTER_ACE_TYPE: u32 = 21u32; +pub const SYSTEM_ACCESS_FILTER_NOCONSTRAINT_MASK: u32 = 4294967295u32; +pub const SYSTEM_ACCESS_FILTER_VALID_MASK: u32 = 16777215u32; +pub const SYSTEM_ALARM_ACE_TYPE: u32 = 3u32; +pub const SYSTEM_ALARM_CALLBACK_ACE_TYPE: u32 = 14u32; +pub const SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE: u32 = 16u32; +pub const SYSTEM_ALARM_OBJECT_ACE_TYPE: u32 = 8u32; +pub const SYSTEM_AUDIT_ACE_TYPE: u32 = 2u32; +pub const SYSTEM_AUDIT_CALLBACK_ACE_TYPE: u32 = 13u32; +pub const SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE: u32 = 15u32; +pub const SYSTEM_AUDIT_OBJECT_ACE_TYPE: u32 = 7u32; +pub const SYSTEM_CACHE_ALIGNMENT_SIZE: u32 = 64u32; +pub const SYSTEM_MANDATORY_LABEL_ACE_TYPE: u32 = 17u32; +pub const SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP: u32 = 4u32; +pub const SYSTEM_MANDATORY_LABEL_NO_READ_UP: u32 = 2u32; +pub const SYSTEM_MANDATORY_LABEL_NO_WRITE_UP: u32 = 1u32; +pub const SYSTEM_PROCESS_TRUST_LABEL_ACE_TYPE: u32 = 20u32; +pub const SYSTEM_PROCESS_TRUST_LABEL_VALID_MASK: u32 = 16777215u32; +pub const SYSTEM_PROCESS_TRUST_NOCONSTRAINT_MASK: u32 = 4294967295u32; +pub const SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE: u32 = 18u32; +pub const SYSTEM_SCOPED_POLICY_ID_ACE_TYPE: u32 = 19u32; +pub const SeImageSignatureCache: SE_IMAGE_SIGNATURE_TYPE = 2i32; +pub const SeImageSignatureCatalogCached: SE_IMAGE_SIGNATURE_TYPE = 3i32; +pub const SeImageSignatureCatalogHint: SE_IMAGE_SIGNATURE_TYPE = 5i32; +pub const SeImageSignatureCatalogNotCached: SE_IMAGE_SIGNATURE_TYPE = 4i32; +pub const SeImageSignatureEmbedded: SE_IMAGE_SIGNATURE_TYPE = 1i32; +pub const SeImageSignatureNone: SE_IMAGE_SIGNATURE_TYPE = 0i32; +pub const SeImageSignaturePackageCatalog: SE_IMAGE_SIGNATURE_TYPE = 6i32; +pub const SeImageSignaturePplMitigated: SE_IMAGE_SIGNATURE_TYPE = 7i32; +pub const SevereError: SERVICE_ERROR_TYPE = 2i32; +pub const SharedVirtualDiskCDPSnapshotsSupported: SharedVirtualDiskSupportType = 7i32; +pub const SharedVirtualDiskHandleStateFileShared: SharedVirtualDiskHandleState = 1i32; +pub const SharedVirtualDiskHandleStateHandleShared: SharedVirtualDiskHandleState = 3i32; +pub const SharedVirtualDiskHandleStateNone: SharedVirtualDiskHandleState = 0i32; +pub const SharedVirtualDiskSnapshotsSupported: SharedVirtualDiskSupportType = 3i32; +pub const SharedVirtualDisksSupported: SharedVirtualDiskSupportType = 1i32; +pub const SharedVirtualDisksUnsupported: SharedVirtualDiskSupportType = 0i32; +pub const SystemLoad: SERVICE_LOAD_TYPE = 1i32; +pub const TAPE_CHECK_FOR_DRIVE_PROBLEM: i32 = 2i32; +pub const TAPE_DRIVE_ABSOLUTE_BLK: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147487744u32; +pub const TAPE_DRIVE_ABS_BLK_IMMED: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147491840u32; +pub const TAPE_DRIVE_CLEAN_REQUESTS: u32 = 33554432u32; +pub const TAPE_DRIVE_COMPRESSION: u32 = 131072u32; +pub const TAPE_DRIVE_ECC: u32 = 65536u32; +pub const TAPE_DRIVE_EJECT_MEDIA: u32 = 16777216u32; +pub const TAPE_DRIVE_END_OF_DATA: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147549184u32; +pub const TAPE_DRIVE_EOT_WZ_SIZE: u32 = 8192u32; +pub const TAPE_DRIVE_ERASE_BOP_ONLY: u32 = 64u32; +pub const TAPE_DRIVE_ERASE_IMMEDIATE: u32 = 128u32; +pub const TAPE_DRIVE_ERASE_LONG: u32 = 32u32; +pub const TAPE_DRIVE_ERASE_SHORT: u32 = 16u32; +pub const TAPE_DRIVE_FILEMARKS: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147745792u32; +pub const TAPE_DRIVE_FIXED: u32 = 1u32; +pub const TAPE_DRIVE_FIXED_BLOCK: u32 = 1024u32; +pub const TAPE_DRIVE_FORMAT: u32 = 2684354560u32; +pub const TAPE_DRIVE_FORMAT_IMMEDIATE: u32 = 3221225472u32; +pub const TAPE_DRIVE_GET_ABSOLUTE_BLK: u32 = 1048576u32; +pub const TAPE_DRIVE_GET_LOGICAL_BLK: u32 = 2097152u32; +pub const TAPE_DRIVE_HIGH_FEATURES: u32 = 2147483648u32; +pub const TAPE_DRIVE_INITIATOR: u32 = 4u32; +pub const TAPE_DRIVE_LOAD_UNLD_IMMED: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147483680u32; +pub const TAPE_DRIVE_LOAD_UNLOAD: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147483649u32; +pub const TAPE_DRIVE_LOCK_UNLK_IMMED: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147483776u32; +pub const TAPE_DRIVE_LOCK_UNLOCK: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147483652u32; +pub const TAPE_DRIVE_LOGICAL_BLK: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147500032u32; +pub const TAPE_DRIVE_LOG_BLK_IMMED: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147516416u32; +pub const TAPE_DRIVE_PADDING: u32 = 262144u32; +pub const TAPE_DRIVE_RELATIVE_BLKS: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147614720u32; +pub const TAPE_DRIVE_REPORT_SMKS: u32 = 524288u32; +pub const TAPE_DRIVE_RESERVED_BIT: u32 = 2147483648u32; +pub const TAPE_DRIVE_REVERSE_POSITION: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2151677952u32; +pub const TAPE_DRIVE_REWIND_IMMEDIATE: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147483656u32; +pub const TAPE_DRIVE_SELECT: u32 = 2u32; +pub const TAPE_DRIVE_SEQUENTIAL_FMKS: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2148007936u32; +pub const TAPE_DRIVE_SEQUENTIAL_SMKS: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2149580800u32; +pub const TAPE_DRIVE_SETMARKS: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2148532224u32; +pub const TAPE_DRIVE_SET_BLOCK_SIZE: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147483664u32; +pub const TAPE_DRIVE_SET_CMP_BOP_ONLY: u32 = 67108864u32; +pub const TAPE_DRIVE_SET_COMPRESSION: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147484160u32; +pub const TAPE_DRIVE_SET_ECC: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147483904u32; +pub const TAPE_DRIVE_SET_EOT_WZ_SIZE: u32 = 4194304u32; +pub const TAPE_DRIVE_SET_PADDING: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147484672u32; +pub const TAPE_DRIVE_SET_REPORT_SMKS: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147485696u32; +pub const TAPE_DRIVE_SPACE_IMMEDIATE: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2155872256u32; +pub const TAPE_DRIVE_TAPE_CAPACITY: u32 = 256u32; +pub const TAPE_DRIVE_TAPE_REMAINING: u32 = 512u32; +pub const TAPE_DRIVE_TENSION: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147483650u32; +pub const TAPE_DRIVE_TENSION_IMMED: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2147483712u32; +pub const TAPE_DRIVE_VARIABLE_BLOCK: u32 = 2048u32; +pub const TAPE_DRIVE_WRITE_FILEMARKS: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2181038080u32; +pub const TAPE_DRIVE_WRITE_LONG_FMKS: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2281701376u32; +pub const TAPE_DRIVE_WRITE_MARK_IMMED: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2415919104u32; +pub const TAPE_DRIVE_WRITE_PROTECT: u32 = 4096u32; +pub const TAPE_DRIVE_WRITE_SETMARKS: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2164260864u32; +pub const TAPE_DRIVE_WRITE_SHORT_FMKS: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = 2214592512u32; +pub const TAPE_PSEUDO_LOGICAL_BLOCK: i32 = 3i32; +pub const TAPE_PSEUDO_LOGICAL_POSITION: i32 = 2i32; +pub const TAPE_QUERY_DEVICE_ERROR_DATA: i32 = 4i32; +pub const TAPE_QUERY_DRIVE_PARAMETERS: i32 = 0i32; +pub const TAPE_QUERY_IO_ERROR_DATA: i32 = 3i32; +pub const TAPE_QUERY_MEDIA_CAPACITY: i32 = 1i32; +pub const THREAD_BASE_PRIORITY_IDLE: i32 = -15i32; +pub const THREAD_BASE_PRIORITY_LOWRT: u32 = 15u32; +pub const THREAD_BASE_PRIORITY_MAX: u32 = 2u32; +pub const THREAD_BASE_PRIORITY_MIN: i32 = -2i32; +pub const THREAD_DYNAMIC_CODE_ALLOW: u32 = 1u32; +pub const THREAD_PROFILING_FLAG_DISPATCH: u32 = 1u32; +pub const TIME_ZONE_ID_DAYLIGHT: u32 = 2u32; +pub const TIME_ZONE_ID_STANDARD: u32 = 1u32; +pub const TIME_ZONE_ID_UNKNOWN: u32 = 0u32; +pub const TLS_MINIMUM_AVAILABLE: u32 = 64u32; +pub const TOKEN_SOURCE_LENGTH: u32 = 8u32; +pub const TRANSACTIONMANAGER_BIND_TRANSACTION: u32 = 32u32; +pub const TRANSACTIONMANAGER_CREATE_RM: u32 = 16u32; +pub const TRANSACTIONMANAGER_QUERY_INFORMATION: u32 = 1u32; +pub const TRANSACTIONMANAGER_RECOVER: u32 = 4u32; +pub const TRANSACTIONMANAGER_RENAME: u32 = 8u32; +pub const TRANSACTIONMANAGER_SET_INFORMATION: u32 = 2u32; +pub const TRANSACTION_COMMIT: u32 = 8u32; +pub const TRANSACTION_ENLIST: u32 = 4u32; +pub const TRANSACTION_PROPAGATE: u32 = 32u32; +pub const TRANSACTION_QUERY_INFORMATION: u32 = 1u32; +pub const TRANSACTION_RIGHT_RESERVED1: u32 = 64u32; +pub const TRANSACTION_ROLLBACK: u32 = 16u32; +pub const TRANSACTION_SET_INFORMATION: u32 = 2u32; +pub const TREE_CONNECT_ATTRIBUTE_GLOBAL: u32 = 4u32; +pub const TREE_CONNECT_ATTRIBUTE_INTEGRITY: u32 = 32768u32; +pub const TREE_CONNECT_ATTRIBUTE_PINNED: u32 = 2u32; +pub const TREE_CONNECT_ATTRIBUTE_PRIVACY: u32 = 16384u32; +pub const TRUST_PROTECTED_FILTER_ACE_FLAG: u32 = 64u32; +pub const TapeDriveCleanDriveNow: TAPE_DRIVE_PROBLEM_TYPE = 11i32; +pub const TapeDriveHardwareError: TAPE_DRIVE_PROBLEM_TYPE = 7i32; +pub const TapeDriveMediaLifeExpired: TAPE_DRIVE_PROBLEM_TYPE = 12i32; +pub const TapeDriveProblemNone: TAPE_DRIVE_PROBLEM_TYPE = 0i32; +pub const TapeDriveReadError: TAPE_DRIVE_PROBLEM_TYPE = 5i32; +pub const TapeDriveReadWarning: TAPE_DRIVE_PROBLEM_TYPE = 3i32; +pub const TapeDriveReadWriteError: TAPE_DRIVE_PROBLEM_TYPE = 2i32; +pub const TapeDriveReadWriteWarning: TAPE_DRIVE_PROBLEM_TYPE = 1i32; +pub const TapeDriveScsiConnectionError: TAPE_DRIVE_PROBLEM_TYPE = 9i32; +pub const TapeDriveSnappedTape: TAPE_DRIVE_PROBLEM_TYPE = 13i32; +pub const TapeDriveTimetoClean: TAPE_DRIVE_PROBLEM_TYPE = 10i32; +pub const TapeDriveUnsupportedMedia: TAPE_DRIVE_PROBLEM_TYPE = 8i32; +pub const TapeDriveWriteError: TAPE_DRIVE_PROBLEM_TYPE = 6i32; +pub const TapeDriveWriteWarning: TAPE_DRIVE_PROBLEM_TYPE = 4i32; +pub const TransactionBasicInformation: TRANSACTION_INFORMATION_CLASS = 0i32; +pub const TransactionBindInformation: TRANSACTION_INFORMATION_CLASS = 4i32; +pub const TransactionDTCPrivateInformation: TRANSACTION_INFORMATION_CLASS = 5i32; +pub const TransactionEnlistmentInformation: TRANSACTION_INFORMATION_CLASS = 2i32; +pub const TransactionManagerBasicInformation: TRANSACTIONMANAGER_INFORMATION_CLASS = 0i32; +pub const TransactionManagerLogInformation: TRANSACTIONMANAGER_INFORMATION_CLASS = 1i32; +pub const TransactionManagerLogPathInformation: TRANSACTIONMANAGER_INFORMATION_CLASS = 2i32; +pub const TransactionManagerOldestTransactionInformation: TRANSACTIONMANAGER_INFORMATION_CLASS = 5i32; +pub const TransactionManagerOnlineProbeInformation: TRANSACTIONMANAGER_INFORMATION_CLASS = 3i32; +pub const TransactionManagerRecoveryInformation: TRANSACTIONMANAGER_INFORMATION_CLASS = 4i32; +pub const TransactionPropertiesInformation: TRANSACTION_INFORMATION_CLASS = 1i32; +pub const TransactionStateCommittedNotify: TRANSACTION_STATE = 3i32; +pub const TransactionStateIndoubt: TRANSACTION_STATE = 2i32; +pub const TransactionStateNormal: TRANSACTION_STATE = 1i32; +pub const TransactionSuperiorEnlistmentInformation: TRANSACTION_INFORMATION_CLASS = 3i32; +pub const UCSCHAR_INVALID_CHARACTER: u32 = 4294967295u32; +pub const UNICODE_STRING_MAX_CHARS: u32 = 32767u32; +pub const UNIFIEDBUILDREVISION_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion"); +pub const UNIFIEDBUILDREVISION_MIN: u32 = 0u32; +pub const UNIFIEDBUILDREVISION_VALUE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UBR"); +pub const UNWIND_CHAIN_LIMIT: u32 = 32u32; +pub const UNWIND_HISTORY_TABLE_SIZE: u32 = 12u32; +pub const UNW_FLAG_NO_EPILOGUE: u32 = 2147483648u32; +pub const UmsSchedulerStartup: RTL_UMS_SCHEDULER_REASON = 0i32; +pub const UmsSchedulerThreadBlocked: RTL_UMS_SCHEDULER_REASON = 1i32; +pub const UmsSchedulerThreadYield: RTL_UMS_SCHEDULER_REASON = 2i32; +pub const VALID_INHERIT_FLAGS: u32 = 31u32; +pub const VBS_BASIC_PAGE_MEASURED_DATA: u32 = 1u32; +pub const VBS_BASIC_PAGE_SYSTEM_CALL: u32 = 5u32; +pub const VBS_BASIC_PAGE_THREAD_DESCRIPTOR: u32 = 4u32; +pub const VBS_BASIC_PAGE_UNMEASURED_DATA: u32 = 2u32; +pub const VBS_BASIC_PAGE_ZERO_FILL: u32 = 3u32; +pub const VER_AND: u32 = 6u32; +pub const VER_CONDITION_MASK: u32 = 7u32; +pub const VER_EQUAL: u32 = 1u32; +pub const VER_GREATER: u32 = 2u32; +pub const VER_GREATER_EQUAL: u32 = 3u32; +pub const VER_LESS: u32 = 4u32; +pub const VER_LESS_EQUAL: u32 = 5u32; +pub const VER_NT_DOMAIN_CONTROLLER: u32 = 2u32; +pub const VER_NT_SERVER: u32 = 3u32; +pub const VER_NT_WORKSTATION: u32 = 1u32; +pub const VER_NUM_BITS_PER_CONDITION_MASK: u32 = 3u32; +pub const VER_OR: u32 = 7u32; +pub const VER_SERVER_NT: u32 = 2147483648u32; +pub const VER_SUITE_BACKOFFICE: u32 = 4u32; +pub const VER_SUITE_BLADE: u32 = 1024u32; +pub const VER_SUITE_COMMUNICATIONS: u32 = 8u32; +pub const VER_SUITE_COMPUTE_SERVER: u32 = 16384u32; +pub const VER_SUITE_DATACENTER: u32 = 128u32; +pub const VER_SUITE_EMBEDDEDNT: u32 = 64u32; +pub const VER_SUITE_EMBEDDED_RESTRICTED: u32 = 2048u32; +pub const VER_SUITE_ENTERPRISE: u32 = 2u32; +pub const VER_SUITE_MULTIUSERTS: u32 = 131072u32; +pub const VER_SUITE_PERSONAL: u32 = 512u32; +pub const VER_SUITE_SECURITY_APPLIANCE: u32 = 4096u32; +pub const VER_SUITE_SINGLEUSERTS: u32 = 256u32; +pub const VER_SUITE_SMALLBUSINESS: u32 = 1u32; +pub const VER_SUITE_SMALLBUSINESS_RESTRICTED: u32 = 32u32; +pub const VER_SUITE_STORAGE_SERVER: u32 = 8192u32; +pub const VER_SUITE_TERMINAL: u32 = 16u32; +pub const VER_SUITE_WH_SERVER: u32 = 32768u32; +pub const VER_WORKSTATION_NT: u32 = 1073741824u32; +pub const VRL_CUSTOM_CLASS_BEGIN: u32 = 256u32; +pub const VRL_ENABLE_KERNEL_BREAKS: u32 = 2147483648u32; +pub const VRL_PREDEFINED_CLASS_BEGIN: u32 = 1u32; +pub const WDT_INPROC64_CALL: u32 = 1349805143u32; +pub const WDT_INPROC_CALL: u32 = 1215587415u32; +pub const WDT_REMOTE_CALL: u32 = 1383359575u32; +pub const WRITE_NV_MEMORY_FLAG_FLUSH: u32 = 1u32; +pub const WRITE_NV_MEMORY_FLAG_NON_TEMPORAL: u32 = 2u32; +pub const WRITE_NV_MEMORY_FLAG_NO_DRAIN: u32 = 256u32; +pub const WRITE_WATCH_FLAG_RESET: u32 = 1u32; +pub const WT_EXECUTEDELETEWAIT: u32 = 8u32; +pub const WT_EXECUTEINLONGTHREAD: u32 = 16u32; +pub const WT_EXECUTEINPERSISTENTIOTHREAD: u32 = 64u32; +pub const WT_EXECUTEINUITHREAD: u32 = 2u32; +pub const Win32ServiceOwnProcess: SERVICE_NODE_TYPE = 16i32; +pub const Win32ServiceShareProcess: SERVICE_NODE_TYPE = 32i32; +pub const X3_BTYPE_QP_INST_VAL_POS_X: u32 = 0u32; +pub const X3_BTYPE_QP_INST_WORD_POS_X: u32 = 23u32; +pub const X3_BTYPE_QP_INST_WORD_X: u32 = 2u32; +pub const X3_BTYPE_QP_SIZE_X: u32 = 9u32; +pub const X3_D_WH_INST_WORD_POS_X: u32 = 24u32; +pub const X3_D_WH_INST_WORD_X: u32 = 3u32; +pub const X3_D_WH_SIGN_VAL_POS_X: u32 = 0u32; +pub const X3_D_WH_SIZE_X: u32 = 3u32; +pub const X3_EMPTY_INST_VAL_POS_X: u32 = 0u32; +pub const X3_EMPTY_INST_WORD_POS_X: u32 = 14u32; +pub const X3_EMPTY_INST_WORD_X: u32 = 1u32; +pub const X3_EMPTY_SIZE_X: u32 = 2u32; +pub const X3_IMM20_INST_WORD_POS_X: u32 = 4u32; +pub const X3_IMM20_INST_WORD_X: u32 = 3u32; +pub const X3_IMM20_SIGN_VAL_POS_X: u32 = 0u32; +pub const X3_IMM20_SIZE_X: u32 = 20u32; +pub const X3_IMM39_1_INST_WORD_POS_X: u32 = 0u32; +pub const X3_IMM39_1_INST_WORD_X: u32 = 2u32; +pub const X3_IMM39_1_SIGN_VAL_POS_X: u32 = 36u32; +pub const X3_IMM39_1_SIZE_X: u32 = 23u32; +pub const X3_IMM39_2_INST_WORD_POS_X: u32 = 16u32; +pub const X3_IMM39_2_INST_WORD_X: u32 = 1u32; +pub const X3_IMM39_2_SIGN_VAL_POS_X: u32 = 20u32; +pub const X3_IMM39_2_SIZE_X: u32 = 16u32; +pub const X3_I_INST_WORD_POS_X: u32 = 27u32; +pub const X3_I_INST_WORD_X: u32 = 3u32; +pub const X3_I_SIGN_VAL_POS_X: u32 = 59u32; +pub const X3_I_SIZE_X: u32 = 1u32; +pub const X3_OPCODE_INST_WORD_POS_X: u32 = 28u32; +pub const X3_OPCODE_INST_WORD_X: u32 = 3u32; +pub const X3_OPCODE_SIGN_VAL_POS_X: u32 = 0u32; +pub const X3_OPCODE_SIZE_X: u32 = 4u32; +pub const X3_P_INST_WORD_POS_X: u32 = 0u32; +pub const X3_P_INST_WORD_X: u32 = 3u32; +pub const X3_P_SIGN_VAL_POS_X: u32 = 0u32; +pub const X3_P_SIZE_X: u32 = 4u32; +pub const X3_TMPLT_INST_WORD_POS_X: u32 = 0u32; +pub const X3_TMPLT_INST_WORD_X: u32 = 0u32; +pub const X3_TMPLT_SIGN_VAL_POS_X: u32 = 0u32; +pub const X3_TMPLT_SIZE_X: u32 = 4u32; +pub const X86_CACHE_ALIGNMENT_SIZE: u32 = 64u32; +pub const XSTATE_ALIGN_BIT: u32 = 1u32; +pub const XSTATE_AMX_TILE_CONFIG: u32 = 17u32; +pub const XSTATE_AMX_TILE_DATA: u32 = 18u32; +pub const XSTATE_AVX: u32 = 2u32; +pub const XSTATE_AVX512_KMASK: u32 = 5u32; +pub const XSTATE_AVX512_ZMM: u32 = 7u32; +pub const XSTATE_AVX512_ZMM_H: u32 = 6u32; +pub const XSTATE_CET_S: u32 = 12u32; +pub const XSTATE_CET_U: u32 = 11u32; +pub const XSTATE_COMPACTION_ENABLE: u32 = 63u32; +pub const XSTATE_CONTROLFLAG_XFD_MASK: u32 = 4u32; +pub const XSTATE_CONTROLFLAG_XSAVEC_MASK: u32 = 2u32; +pub const XSTATE_CONTROLFLAG_XSAVEOPT_MASK: u32 = 1u32; +pub const XSTATE_GSSE: u32 = 2u32; +pub const XSTATE_IPT: u32 = 8u32; +pub const XSTATE_LEGACY_FLOATING_POINT: u32 = 0u32; +pub const XSTATE_LEGACY_SSE: u32 = 1u32; +pub const XSTATE_LWP: u32 = 62u32; +pub const XSTATE_MPX_BNDCSR: u32 = 4u32; +pub const XSTATE_MPX_BNDREGS: u32 = 3u32; +pub const XSTATE_PASID: u32 = 10u32; +pub const XSTATE_XFD_BIT: u32 = 2u32; +pub const _MM_HINT_NTA: u32 = 0u32; +pub const _MM_HINT_T0: u32 = 1u32; +pub const _MM_HINT_T1: u32 = 2u32; +pub const _MM_HINT_T2: u32 = 3u32; +pub type ACCESS_REASON_TYPE = i32; +pub type ACTIVATION_CONTEXT_INFO_CLASS = i32; +pub type ALERT_SYSTEM_SEV = u32; +pub type APPCOMMAND_ID = u32; +pub type ARM64_FNPDATA_CR = i32; +pub type ARM64_FNPDATA_FLAGS = i32; +pub type ATF_FLAGS = u32; +pub type CFE_UNDERLINE = u32; +pub type ENLISTMENT_INFORMATION_CLASS = i32; +pub type GESTURECONFIG_FLAGS = u32; +pub type HIBERFILE_BUCKET_SIZE = i32; +pub type IGP_ID = u32; +pub type IMAGE_AUX_SYMBOL_TYPE = i32; +pub type IMAGE_POLICY_ENTRY_TYPE = i32; +pub type IMAGE_POLICY_ID = i32; +pub type IMPORT_OBJECT_NAME_TYPE = i32; +pub type IMPORT_OBJECT_TYPE = i32; +pub type KTMOBJECT_TYPE = i32; +pub type MODIFIERKEYS_FLAGS = u32; +pub type MONITOR_DISPLAY_STATE = i32; +pub type RECO_FLAGS = u32; +pub type RESOURCEMANAGER_INFORMATION_CLASS = i32; +pub type RTL_UMS_SCHEDULER_REASON = i32; +pub type ReplacesCorHdrNumericDefines = i32; +pub type SERVERSILO_STATE = i32; +pub type SERVICE_ERROR_TYPE = i32; +pub type SERVICE_LOAD_TYPE = i32; +pub type SERVICE_NODE_TYPE = i32; +pub type SE_IMAGE_SIGNATURE_TYPE = i32; +pub type SFGAO_FLAGS = u32; +pub type STATIC_STYLES = u32; +pub type SharedVirtualDiskHandleState = i32; +pub type SharedVirtualDiskSupportType = i32; +pub type TAPE_DRIVE_PROBLEM_TYPE = i32; +pub type TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH = u32; +pub type TRANSACTIONMANAGER_INFORMATION_CLASS = i32; +pub type TRANSACTION_INFORMATION_CLASS = i32; +pub type TRANSACTION_STATE = i32; +pub type WORD_WHEEL_OPEN_FLAGS = u32; +#[repr(C)] +pub struct ANON_OBJECT_HEADER { + pub Sig1: u16, + pub Sig2: u16, + pub Version: u16, + pub Machine: u16, + pub TimeDateStamp: u32, + pub ClassID: ::windows_sys::core::GUID, + pub SizeOfData: u32, +} +impl ::core::marker::Copy for ANON_OBJECT_HEADER {} +impl ::core::clone::Clone for ANON_OBJECT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ANON_OBJECT_HEADER_BIGOBJ { + pub Sig1: u16, + pub Sig2: u16, + pub Version: u16, + pub Machine: u16, + pub TimeDateStamp: u32, + pub ClassID: ::windows_sys::core::GUID, + pub SizeOfData: u32, + pub Flags: u32, + pub MetaDataSize: u32, + pub MetaDataOffset: u32, + pub NumberOfSections: u32, + pub PointerToSymbolTable: u32, + pub NumberOfSymbols: u32, +} +impl ::core::marker::Copy for ANON_OBJECT_HEADER_BIGOBJ {} +impl ::core::clone::Clone for ANON_OBJECT_HEADER_BIGOBJ { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ANON_OBJECT_HEADER_V2 { + pub Sig1: u16, + pub Sig2: u16, + pub Version: u16, + pub Machine: u16, + pub TimeDateStamp: u32, + pub ClassID: ::windows_sys::core::GUID, + pub SizeOfData: u32, + pub Flags: u32, + pub MetaDataSize: u32, + pub MetaDataOffset: u32, +} +impl ::core::marker::Copy for ANON_OBJECT_HEADER_V2 {} +impl ::core::clone::Clone for ANON_OBJECT_HEADER_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct APPLICATIONLAUNCH_SETTING_VALUE { + pub ActivationTime: i64, + pub Flags: u32, + pub ButtonInstanceID: u32, +} +impl ::core::marker::Copy for APPLICATIONLAUNCH_SETTING_VALUE {} +impl ::core::clone::Clone for APPLICATIONLAUNCH_SETTING_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COMPONENT_FILTER { + pub ComponentFlags: u32, +} +impl ::core::marker::Copy for COMPONENT_FILTER {} +impl ::core::clone::Clone for COMPONENT_FILTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DISPATCHER_CONTEXT_NONVOLREG_ARM64 { + pub Buffer: [u8; 152], + pub Anonymous: DISPATCHER_CONTEXT_NONVOLREG_ARM64_0, +} +impl ::core::marker::Copy for DISPATCHER_CONTEXT_NONVOLREG_ARM64 {} +impl ::core::clone::Clone for DISPATCHER_CONTEXT_NONVOLREG_ARM64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISPATCHER_CONTEXT_NONVOLREG_ARM64_0 { + pub GpNvRegs: [u64; 11], + pub FpNvRegs: [f64; 8], +} +impl ::core::marker::Copy for DISPATCHER_CONTEXT_NONVOLREG_ARM64_0 {} +impl ::core::clone::Clone for DISPATCHER_CONTEXT_NONVOLREG_ARM64_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENLISTMENT_BASIC_INFORMATION { + pub EnlistmentId: ::windows_sys::core::GUID, + pub TransactionId: ::windows_sys::core::GUID, + pub ResourceManagerId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for ENLISTMENT_BASIC_INFORMATION {} +impl ::core::clone::Clone for ENLISTMENT_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENLISTMENT_CRM_INFORMATION { + pub CrmTransactionManagerId: ::windows_sys::core::GUID, + pub CrmResourceManagerId: ::windows_sys::core::GUID, + pub CrmEnlistmentId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for ENLISTMENT_CRM_INFORMATION {} +impl ::core::clone::Clone for ENLISTMENT_CRM_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILE_NOTIFY_FULL_INFORMATION { + pub NextEntryOffset: u32, + pub Action: u32, + pub CreationTime: i64, + pub LastModificationTime: i64, + pub LastChangeTime: i64, + pub LastAccessTime: i64, + pub AllocatedLength: i64, + pub FileSize: i64, + pub FileAttributes: u32, + pub Anonymous: FILE_NOTIFY_FULL_INFORMATION_0, + pub FileId: i64, + pub ParentFileId: i64, + pub FileNameLength: u16, + pub FileNameFlags: u8, + pub Reserved: u8, + pub FileName: [u16; 1], +} +impl ::core::marker::Copy for FILE_NOTIFY_FULL_INFORMATION {} +impl ::core::clone::Clone for FILE_NOTIFY_FULL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union FILE_NOTIFY_FULL_INFORMATION_0 { + pub ReparsePointTag: u32, + pub EaSize: u32, +} +impl ::core::marker::Copy for FILE_NOTIFY_FULL_INFORMATION_0 {} +impl ::core::clone::Clone for FILE_NOTIFY_FULL_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct GDI_NONREMOTE { + pub fContext: i32, + pub u: GDI_NONREMOTE_0, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for GDI_NONREMOTE {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for GDI_NONREMOTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union GDI_NONREMOTE_0 { + pub hInproc: i32, + pub hRemote: *mut super::Com::DWORD_BLOB, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for GDI_NONREMOTE_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for GDI_NONREMOTE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HEAP_OPTIMIZE_RESOURCES_INFORMATION { + pub Version: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for HEAP_OPTIMIZE_RESOURCES_INFORMATION {} +impl ::core::clone::Clone for HEAP_OPTIMIZE_RESOURCES_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HIBERFILE_BUCKET { + pub MaxPhysicalMemory: u64, + pub PhysicalMemoryPercent: [u32; 3], +} +impl ::core::marker::Copy for HIBERFILE_BUCKET {} +impl ::core::clone::Clone for HIBERFILE_BUCKET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY { + pub BeginAddress: u64, + pub EndAddress: u64, + pub ExceptionHandler: u64, + pub HandlerData: u64, + pub PrologEndAddress: u64, +} +impl ::core::marker::Copy for IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY {} +impl ::core::clone::Clone for IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY { + pub BeginAddress: u32, + pub EndAddress: u32, + pub ExceptionHandler: u32, + pub HandlerData: u32, + pub PrologEndAddress: u32, +} +impl ::core::marker::Copy for IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY {} +impl ::core::clone::Clone for IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_ARCHITECTURE_ENTRY { + pub FixupInstRVA: u32, + pub NewInst: u32, +} +impl ::core::marker::Copy for IMAGE_ARCHITECTURE_ENTRY {} +impl ::core::clone::Clone for IMAGE_ARCHITECTURE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_ARCHITECTURE_HEADER { + pub _bitfield: u32, + pub FirstEntryRVA: u32, +} +impl ::core::marker::Copy for IMAGE_ARCHITECTURE_HEADER {} +impl ::core::clone::Clone for IMAGE_ARCHITECTURE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_ARCHIVE_MEMBER_HEADER { + pub Name: [u8; 16], + pub Date: [u8; 12], + pub UserID: [u8; 6], + pub GroupID: [u8; 6], + pub Mode: [u8; 8], + pub Size: [u8; 10], + pub EndHeader: [u8; 2], +} +impl ::core::marker::Copy for IMAGE_ARCHIVE_MEMBER_HEADER {} +impl ::core::clone::Clone for IMAGE_ARCHIVE_MEMBER_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_XDATA { + pub HeaderData: u32, + pub Anonymous: IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_XDATA_0, +} +impl ::core::marker::Copy for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_XDATA {} +impl ::core::clone::Clone for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_XDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_XDATA_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_XDATA_0 {} +impl ::core::clone::Clone for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_XDATA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_ARM_RUNTIME_FUNCTION_ENTRY { + pub BeginAddress: u32, + pub Anonymous: IMAGE_ARM_RUNTIME_FUNCTION_ENTRY_0, +} +impl ::core::marker::Copy for IMAGE_ARM_RUNTIME_FUNCTION_ENTRY {} +impl ::core::clone::Clone for IMAGE_ARM_RUNTIME_FUNCTION_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_ARM_RUNTIME_FUNCTION_ENTRY_0 { + pub UnwindData: u32, + pub Anonymous: IMAGE_ARM_RUNTIME_FUNCTION_ENTRY_0_0, +} +impl ::core::marker::Copy for IMAGE_ARM_RUNTIME_FUNCTION_ENTRY_0 {} +impl ::core::clone::Clone for IMAGE_ARM_RUNTIME_FUNCTION_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_ARM_RUNTIME_FUNCTION_ENTRY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for IMAGE_ARM_RUNTIME_FUNCTION_ENTRY_0_0 {} +impl ::core::clone::Clone for IMAGE_ARM_RUNTIME_FUNCTION_ENTRY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_AUX_SYMBOL { + pub Sym: IMAGE_AUX_SYMBOL_3, + pub File: IMAGE_AUX_SYMBOL_1, + pub Section: IMAGE_AUX_SYMBOL_2, + pub TokenDef: IMAGE_AUX_SYMBOL_TOKEN_DEF, + pub CRC: IMAGE_AUX_SYMBOL_0, +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_AUX_SYMBOL_0 { + pub crc: u32, + pub rgbReserved: [u8; 14], +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_0 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_AUX_SYMBOL_1 { + pub Name: [u8; 18], +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_1 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_AUX_SYMBOL_2 { + pub Length: u32, + pub NumberOfRelocations: u16, + pub NumberOfLinenumbers: u16, + pub CheckSum: u32, + pub Number: i16, + pub Selection: u8, + pub bReserved: u8, + pub HighNumber: i16, +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_2 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_AUX_SYMBOL_3 { + pub TagIndex: u32, + pub Misc: IMAGE_AUX_SYMBOL_3_1, + pub FcnAry: IMAGE_AUX_SYMBOL_3_0, + pub TvIndex: u16, +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_3 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_AUX_SYMBOL_3_0 { + pub Function: IMAGE_AUX_SYMBOL_3_0_1, + pub Array: IMAGE_AUX_SYMBOL_3_0_0, +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_3_0 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_AUX_SYMBOL_3_0_0 { + pub Dimension: [u16; 4], +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_3_0_0 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_3_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_AUX_SYMBOL_3_0_1 { + pub PointerToLinenumber: u32, + pub PointerToNextFunction: u32, +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_3_0_1 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_3_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub union IMAGE_AUX_SYMBOL_3_1 { + pub LnSz: IMAGE_AUX_SYMBOL_3_1_0, + pub TotalSize: u32, +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_3_1 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_3_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_AUX_SYMBOL_3_1_0 { + pub Linenumber: u16, + pub Size: u16, +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_3_1_0 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_3_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_AUX_SYMBOL_EX { + pub Sym: IMAGE_AUX_SYMBOL_EX_4, + pub File: IMAGE_AUX_SYMBOL_EX_2, + pub Section: IMAGE_AUX_SYMBOL_EX_3, + pub Anonymous: IMAGE_AUX_SYMBOL_EX_0, + pub CRC: IMAGE_AUX_SYMBOL_EX_1, +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_EX {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_AUX_SYMBOL_EX_0 { + pub TokenDef: IMAGE_AUX_SYMBOL_TOKEN_DEF, + pub rgbReserved: [u8; 2], +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_EX_0 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_EX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_AUX_SYMBOL_EX_1 { + pub crc: u32, + pub rgbReserved: [u8; 16], +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_EX_1 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_EX_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_AUX_SYMBOL_EX_2 { + pub Name: [u8; 20], +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_EX_2 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_EX_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_AUX_SYMBOL_EX_3 { + pub Length: u32, + pub NumberOfRelocations: u16, + pub NumberOfLinenumbers: u16, + pub CheckSum: u32, + pub Number: i16, + pub Selection: u8, + pub bReserved: u8, + pub HighNumber: i16, + pub rgbReserved: [u8; 2], +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_EX_3 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_EX_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_AUX_SYMBOL_EX_4 { + pub WeakDefaultSymIndex: u32, + pub WeakSearchType: u32, + pub rgbReserved: [u8; 12], +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_EX_4 {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_EX_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_AUX_SYMBOL_TOKEN_DEF { + pub bAuxType: u8, + pub bReserved: u8, + pub SymbolTableIndex: u32, + pub rgbReserved: [u8; 12], +} +impl ::core::marker::Copy for IMAGE_AUX_SYMBOL_TOKEN_DEF {} +impl ::core::clone::Clone for IMAGE_AUX_SYMBOL_TOKEN_DEF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_BASE_RELOCATION { + pub VirtualAddress: u32, + pub SizeOfBlock: u32, +} +impl ::core::marker::Copy for IMAGE_BASE_RELOCATION {} +impl ::core::clone::Clone for IMAGE_BASE_RELOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMAGE_BDD_DYNAMIC_RELOCATION { + pub Left: u16, + pub Right: u16, + pub Value: u32, +} +impl ::core::marker::Copy for IMAGE_BDD_DYNAMIC_RELOCATION {} +impl ::core::clone::Clone for IMAGE_BDD_DYNAMIC_RELOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMAGE_BDD_INFO { + pub Version: u32, + pub BDDSize: u32, +} +impl ::core::marker::Copy for IMAGE_BDD_INFO {} +impl ::core::clone::Clone for IMAGE_BDD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_BOUND_FORWARDER_REF { + pub TimeDateStamp: u32, + pub OffsetModuleName: u16, + pub Reserved: u16, +} +impl ::core::marker::Copy for IMAGE_BOUND_FORWARDER_REF {} +impl ::core::clone::Clone for IMAGE_BOUND_FORWARDER_REF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_BOUND_IMPORT_DESCRIPTOR { + pub TimeDateStamp: u32, + pub OffsetModuleName: u16, + pub NumberOfModuleForwarderRefs: u16, +} +impl ::core::marker::Copy for IMAGE_BOUND_IMPORT_DESCRIPTOR {} +impl ::core::clone::Clone for IMAGE_BOUND_IMPORT_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_CE_RUNTIME_FUNCTION_ENTRY { + pub FuncStart: u32, + pub _bitfield: u32, +} +impl ::core::marker::Copy for IMAGE_CE_RUNTIME_FUNCTION_ENTRY {} +impl ::core::clone::Clone for IMAGE_CE_RUNTIME_FUNCTION_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMAGE_DEBUG_MISC { + pub DataType: u32, + pub Length: u32, + pub Unicode: super::super::Foundation::BOOLEAN, + pub Reserved: [u8; 3], + pub Data: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMAGE_DEBUG_MISC {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMAGE_DEBUG_MISC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_DOS_HEADER { + pub e_magic: u16, + pub e_cblp: u16, + pub e_cp: u16, + pub e_crlc: u16, + pub e_cparhdr: u16, + pub e_minalloc: u16, + pub e_maxalloc: u16, + pub e_ss: u16, + pub e_sp: u16, + pub e_csum: u16, + pub e_ip: u16, + pub e_cs: u16, + pub e_lfarlc: u16, + pub e_ovno: u16, + pub e_res: [u16; 4], + pub e_oemid: u16, + pub e_oeminfo: u16, + pub e_res2: [u16; 10], + pub e_lfanew: i32, +} +impl ::core::marker::Copy for IMAGE_DOS_HEADER {} +impl ::core::clone::Clone for IMAGE_DOS_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMAGE_DYNAMIC_RELOCATION32 { + pub Symbol: u32, + pub BaseRelocSize: u32, +} +impl ::core::marker::Copy for IMAGE_DYNAMIC_RELOCATION32 {} +impl ::core::clone::Clone for IMAGE_DYNAMIC_RELOCATION32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMAGE_DYNAMIC_RELOCATION32_V2 { + pub HeaderSize: u32, + pub FixupInfoSize: u32, + pub Symbol: u32, + pub SymbolGroup: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for IMAGE_DYNAMIC_RELOCATION32_V2 {} +impl ::core::clone::Clone for IMAGE_DYNAMIC_RELOCATION32_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMAGE_DYNAMIC_RELOCATION64 { + pub Symbol: u64, + pub BaseRelocSize: u32, +} +impl ::core::marker::Copy for IMAGE_DYNAMIC_RELOCATION64 {} +impl ::core::clone::Clone for IMAGE_DYNAMIC_RELOCATION64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMAGE_DYNAMIC_RELOCATION64_V2 { + pub HeaderSize: u32, + pub FixupInfoSize: u32, + pub Symbol: u64, + pub SymbolGroup: u32, + pub Flags: u32, +} +impl ::core::marker::Copy for IMAGE_DYNAMIC_RELOCATION64_V2 {} +impl ::core::clone::Clone for IMAGE_DYNAMIC_RELOCATION64_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_DYNAMIC_RELOCATION_TABLE { + pub Version: u32, + pub Size: u32, +} +impl ::core::marker::Copy for IMAGE_DYNAMIC_RELOCATION_TABLE {} +impl ::core::clone::Clone for IMAGE_DYNAMIC_RELOCATION_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER { + pub EpilogueCount: u32, + pub EpilogueByteCount: u8, + pub BranchDescriptorElementSize: u8, + pub BranchDescriptorCount: u16, +} +impl ::core::marker::Copy for IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER {} +impl ::core::clone::Clone for IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_EXPORT_DIRECTORY { + pub Characteristics: u32, + pub TimeDateStamp: u32, + pub MajorVersion: u16, + pub MinorVersion: u16, + pub Name: u32, + pub Base: u32, + pub NumberOfFunctions: u32, + pub NumberOfNames: u32, + pub AddressOfFunctions: u32, + pub AddressOfNames: u32, + pub AddressOfNameOrdinals: u32, +} +impl ::core::marker::Copy for IMAGE_EXPORT_DIRECTORY {} +impl ::core::clone::Clone for IMAGE_EXPORT_DIRECTORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION { + pub OriginalRva: u32, + pub BDDOffset: u32, + pub RvaSize: u32, + pub BaseRelocSize: u32, +} +impl ::core::marker::Copy for IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION {} +impl ::core::clone::Clone for IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMAGE_FUNCTION_OVERRIDE_HEADER { + pub FuncOverrideSize: u32, +} +impl ::core::marker::Copy for IMAGE_FUNCTION_OVERRIDE_HEADER {} +impl ::core::clone::Clone for IMAGE_FUNCTION_OVERRIDE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_HOT_PATCH_BASE { + pub SequenceNumber: u32, + pub Flags: u32, + pub OriginalTimeDateStamp: u32, + pub OriginalCheckSum: u32, + pub CodeIntegrityInfo: u32, + pub CodeIntegritySize: u32, + pub PatchTable: u32, + pub BufferOffset: u32, +} +impl ::core::marker::Copy for IMAGE_HOT_PATCH_BASE {} +impl ::core::clone::Clone for IMAGE_HOT_PATCH_BASE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_HOT_PATCH_HASHES { + pub SHA256: [u8; 32], + pub SHA1: [u8; 20], +} +impl ::core::marker::Copy for IMAGE_HOT_PATCH_HASHES {} +impl ::core::clone::Clone for IMAGE_HOT_PATCH_HASHES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_HOT_PATCH_INFO { + pub Version: u32, + pub Size: u32, + pub SequenceNumber: u32, + pub BaseImageList: u32, + pub BaseImageCount: u32, + pub BufferOffset: u32, + pub ExtraPatchSize: u32, +} +impl ::core::marker::Copy for IMAGE_HOT_PATCH_INFO {} +impl ::core::clone::Clone for IMAGE_HOT_PATCH_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_IMPORT_BY_NAME { + pub Hint: u16, + pub Name: [u8; 1], +} +impl ::core::marker::Copy for IMAGE_IMPORT_BY_NAME {} +impl ::core::clone::Clone for IMAGE_IMPORT_BY_NAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION { + pub _bitfield: u32, +} +impl ::core::marker::Copy for IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION {} +impl ::core::clone::Clone for IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_IMPORT_DESCRIPTOR { + pub Anonymous: IMAGE_IMPORT_DESCRIPTOR_0, + pub TimeDateStamp: u32, + pub ForwarderChain: u32, + pub Name: u32, + pub FirstThunk: u32, +} +impl ::core::marker::Copy for IMAGE_IMPORT_DESCRIPTOR {} +impl ::core::clone::Clone for IMAGE_IMPORT_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_IMPORT_DESCRIPTOR_0 { + pub Characteristics: u32, + pub OriginalFirstThunk: u32, +} +impl ::core::marker::Copy for IMAGE_IMPORT_DESCRIPTOR_0 {} +impl ::core::clone::Clone for IMAGE_IMPORT_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION { + pub _bitfield: u16, +} +impl ::core::marker::Copy for IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION {} +impl ::core::clone::Clone for IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_LINENUMBER { + pub Type: IMAGE_LINENUMBER_0, + pub Linenumber: u16, +} +impl ::core::marker::Copy for IMAGE_LINENUMBER {} +impl ::core::clone::Clone for IMAGE_LINENUMBER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub union IMAGE_LINENUMBER_0 { + pub SymbolTableIndex: u32, + pub VirtualAddress: u32, +} +impl ::core::marker::Copy for IMAGE_LINENUMBER_0 {} +impl ::core::clone::Clone for IMAGE_LINENUMBER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_OS2_HEADER { + pub ne_magic: u16, + pub ne_ver: u8, + pub ne_rev: u8, + pub ne_enttab: u16, + pub ne_cbenttab: u16, + pub ne_crc: i32, + pub ne_flags: u16, + pub ne_autodata: u16, + pub ne_heap: u16, + pub ne_stack: u16, + pub ne_csip: i32, + pub ne_sssp: i32, + pub ne_cseg: u16, + pub ne_cmod: u16, + pub ne_cbnrestab: u16, + pub ne_segtab: u16, + pub ne_rsrctab: u16, + pub ne_restab: u16, + pub ne_modtab: u16, + pub ne_imptab: u16, + pub ne_nrestab: i32, + pub ne_cmovent: u16, + pub ne_align: u16, + pub ne_cres: u16, + pub ne_exetyp: u8, + pub ne_flagsothers: u8, + pub ne_pretthunks: u16, + pub ne_psegrefbytes: u16, + pub ne_swaparea: u16, + pub ne_expver: u16, +} +impl ::core::marker::Copy for IMAGE_OS2_HEADER {} +impl ::core::clone::Clone for IMAGE_OS2_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMAGE_POLICY_ENTRY { + pub Type: IMAGE_POLICY_ENTRY_TYPE, + pub PolicyId: IMAGE_POLICY_ID, + pub u: IMAGE_POLICY_ENTRY_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMAGE_POLICY_ENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMAGE_POLICY_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union IMAGE_POLICY_ENTRY_0 { + pub None: *const ::core::ffi::c_void, + pub BoolValue: super::super::Foundation::BOOLEAN, + pub Int8Value: i8, + pub UInt8Value: u8, + pub Int16Value: i16, + pub UInt16Value: u16, + pub Int32Value: i32, + pub UInt32Value: u32, + pub Int64Value: i64, + pub UInt64Value: u64, + pub AnsiStringValue: ::windows_sys::core::PCSTR, + pub UnicodeStringValue: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMAGE_POLICY_ENTRY_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMAGE_POLICY_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMAGE_POLICY_METADATA { + pub Version: u8, + pub Reserved0: [u8; 7], + pub ApplicationId: u64, + pub Policies: [IMAGE_POLICY_ENTRY; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMAGE_POLICY_METADATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMAGE_POLICY_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER { + pub PrologueByteCount: u8, +} +impl ::core::marker::Copy for IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER {} +impl ::core::clone::Clone for IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_RELOCATION { + pub Anonymous: IMAGE_RELOCATION_0, + pub SymbolTableIndex: u32, + pub Type: u16, +} +impl ::core::marker::Copy for IMAGE_RELOCATION {} +impl ::core::clone::Clone for IMAGE_RELOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub union IMAGE_RELOCATION_0 { + pub VirtualAddress: u32, + pub RelocCount: u32, +} +impl ::core::marker::Copy for IMAGE_RELOCATION_0 {} +impl ::core::clone::Clone for IMAGE_RELOCATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_RESOURCE_DATA_ENTRY { + pub OffsetToData: u32, + pub Size: u32, + pub CodePage: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for IMAGE_RESOURCE_DATA_ENTRY {} +impl ::core::clone::Clone for IMAGE_RESOURCE_DATA_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_RESOURCE_DIRECTORY { + pub Characteristics: u32, + pub TimeDateStamp: u32, + pub MajorVersion: u16, + pub MinorVersion: u16, + pub NumberOfNamedEntries: u16, + pub NumberOfIdEntries: u16, +} +impl ::core::marker::Copy for IMAGE_RESOURCE_DIRECTORY {} +impl ::core::clone::Clone for IMAGE_RESOURCE_DIRECTORY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_RESOURCE_DIRECTORY_ENTRY { + pub Anonymous1: IMAGE_RESOURCE_DIRECTORY_ENTRY_0, + pub Anonymous2: IMAGE_RESOURCE_DIRECTORY_ENTRY_1, +} +impl ::core::marker::Copy for IMAGE_RESOURCE_DIRECTORY_ENTRY {} +impl ::core::clone::Clone for IMAGE_RESOURCE_DIRECTORY_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_RESOURCE_DIRECTORY_ENTRY_0 { + pub Anonymous: IMAGE_RESOURCE_DIRECTORY_ENTRY_0_0, + pub Name: u32, + pub Id: u16, +} +impl ::core::marker::Copy for IMAGE_RESOURCE_DIRECTORY_ENTRY_0 {} +impl ::core::clone::Clone for IMAGE_RESOURCE_DIRECTORY_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_RESOURCE_DIRECTORY_ENTRY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for IMAGE_RESOURCE_DIRECTORY_ENTRY_0_0 {} +impl ::core::clone::Clone for IMAGE_RESOURCE_DIRECTORY_ENTRY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_RESOURCE_DIRECTORY_ENTRY_1 { + pub OffsetToData: u32, + pub Anonymous: IMAGE_RESOURCE_DIRECTORY_ENTRY_1_0, +} +impl ::core::marker::Copy for IMAGE_RESOURCE_DIRECTORY_ENTRY_1 {} +impl ::core::clone::Clone for IMAGE_RESOURCE_DIRECTORY_ENTRY_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_RESOURCE_DIRECTORY_ENTRY_1_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for IMAGE_RESOURCE_DIRECTORY_ENTRY_1_0 {} +impl ::core::clone::Clone for IMAGE_RESOURCE_DIRECTORY_ENTRY_1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_RESOURCE_DIRECTORY_STRING { + pub Length: u16, + pub NameString: [u8; 1], +} +impl ::core::marker::Copy for IMAGE_RESOURCE_DIRECTORY_STRING {} +impl ::core::clone::Clone for IMAGE_RESOURCE_DIRECTORY_STRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_RESOURCE_DIR_STRING_U { + pub Length: u16, + pub NameString: [u16; 1], +} +impl ::core::marker::Copy for IMAGE_RESOURCE_DIR_STRING_U {} +impl ::core::clone::Clone for IMAGE_RESOURCE_DIR_STRING_U { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_SEPARATE_DEBUG_HEADER { + pub Signature: u16, + pub Flags: u16, + pub Machine: u16, + pub Characteristics: u16, + pub TimeDateStamp: u32, + pub CheckSum: u32, + pub ImageBase: u32, + pub SizeOfImage: u32, + pub NumberOfSections: u32, + pub ExportedNamesSize: u32, + pub DebugDirectorySize: u32, + pub SectionAlignment: u32, + pub Reserved: [u32; 2], +} +impl ::core::marker::Copy for IMAGE_SEPARATE_DEBUG_HEADER {} +impl ::core::clone::Clone for IMAGE_SEPARATE_DEBUG_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION { + pub _bitfield: u16, +} +impl ::core::marker::Copy for IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION {} +impl ::core::clone::Clone for IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_SYMBOL { + pub N: IMAGE_SYMBOL_0, + pub Value: u32, + pub SectionNumber: i16, + pub Type: u16, + pub StorageClass: u8, + pub NumberOfAuxSymbols: u8, +} +impl ::core::marker::Copy for IMAGE_SYMBOL {} +impl ::core::clone::Clone for IMAGE_SYMBOL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub union IMAGE_SYMBOL_0 { + pub ShortName: [u8; 8], + pub Name: IMAGE_SYMBOL_0_0, + pub LongName: [u32; 2], +} +impl ::core::marker::Copy for IMAGE_SYMBOL_0 {} +impl ::core::clone::Clone for IMAGE_SYMBOL_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_SYMBOL_0_0 { + pub Short: u32, + pub Long: u32, +} +impl ::core::marker::Copy for IMAGE_SYMBOL_0_0 {} +impl ::core::clone::Clone for IMAGE_SYMBOL_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_SYMBOL_EX { + pub N: IMAGE_SYMBOL_EX_0, + pub Value: u32, + pub SectionNumber: i32, + pub Type: u16, + pub StorageClass: u8, + pub NumberOfAuxSymbols: u8, +} +impl ::core::marker::Copy for IMAGE_SYMBOL_EX {} +impl ::core::clone::Clone for IMAGE_SYMBOL_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub union IMAGE_SYMBOL_EX_0 { + pub ShortName: [u8; 8], + pub Name: IMAGE_SYMBOL_EX_0_0, + pub LongName: [u32; 2], +} +impl ::core::marker::Copy for IMAGE_SYMBOL_EX_0 {} +impl ::core::clone::Clone for IMAGE_SYMBOL_EX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_SYMBOL_EX_0_0 { + pub Short: u32, + pub Long: u32, +} +impl ::core::marker::Copy for IMAGE_SYMBOL_EX_0_0 {} +impl ::core::clone::Clone for IMAGE_SYMBOL_EX_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_TLS_DIRECTORY32 { + pub StartAddressOfRawData: u32, + pub EndAddressOfRawData: u32, + pub AddressOfIndex: u32, + pub AddressOfCallBacks: u32, + pub SizeOfZeroFill: u32, + pub Anonymous: IMAGE_TLS_DIRECTORY32_0, +} +impl ::core::marker::Copy for IMAGE_TLS_DIRECTORY32 {} +impl ::core::clone::Clone for IMAGE_TLS_DIRECTORY32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_TLS_DIRECTORY32_0 { + pub Characteristics: u32, + pub Anonymous: IMAGE_TLS_DIRECTORY32_0_0, +} +impl ::core::marker::Copy for IMAGE_TLS_DIRECTORY32_0 {} +impl ::core::clone::Clone for IMAGE_TLS_DIRECTORY32_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_TLS_DIRECTORY32_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for IMAGE_TLS_DIRECTORY32_0_0 {} +impl ::core::clone::Clone for IMAGE_TLS_DIRECTORY32_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct IMAGE_TLS_DIRECTORY64 { + pub StartAddressOfRawData: u64, + pub EndAddressOfRawData: u64, + pub AddressOfIndex: u64, + pub AddressOfCallBacks: u64, + pub SizeOfZeroFill: u32, + pub Anonymous: IMAGE_TLS_DIRECTORY64_0, +} +impl ::core::marker::Copy for IMAGE_TLS_DIRECTORY64 {} +impl ::core::clone::Clone for IMAGE_TLS_DIRECTORY64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_TLS_DIRECTORY64_0 { + pub Characteristics: u32, + pub Anonymous: IMAGE_TLS_DIRECTORY64_0_0, +} +impl ::core::marker::Copy for IMAGE_TLS_DIRECTORY64_0 {} +impl ::core::clone::Clone for IMAGE_TLS_DIRECTORY64_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_TLS_DIRECTORY64_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for IMAGE_TLS_DIRECTORY64_0_0 {} +impl ::core::clone::Clone for IMAGE_TLS_DIRECTORY64_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct IMAGE_VXD_HEADER { + pub e32_magic: u16, + pub e32_border: u8, + pub e32_worder: u8, + pub e32_level: u32, + pub e32_cpu: u16, + pub e32_os: u16, + pub e32_ver: u32, + pub e32_mflags: u32, + pub e32_mpages: u32, + pub e32_startobj: u32, + pub e32_eip: u32, + pub e32_stackobj: u32, + pub e32_esp: u32, + pub e32_pagesize: u32, + pub e32_lastpagesize: u32, + pub e32_fixupsize: u32, + pub e32_fixupsum: u32, + pub e32_ldrsize: u32, + pub e32_ldrsum: u32, + pub e32_objtab: u32, + pub e32_objcnt: u32, + pub e32_objmap: u32, + pub e32_itermap: u32, + pub e32_rsrctab: u32, + pub e32_rsrccnt: u32, + pub e32_restab: u32, + pub e32_enttab: u32, + pub e32_dirtab: u32, + pub e32_dircnt: u32, + pub e32_fpagetab: u32, + pub e32_frectab: u32, + pub e32_impmod: u32, + pub e32_impmodcnt: u32, + pub e32_impproc: u32, + pub e32_pagesum: u32, + pub e32_datapage: u32, + pub e32_preload: u32, + pub e32_nrestab: u32, + pub e32_cbnrestab: u32, + pub e32_nressum: u32, + pub e32_autodata: u32, + pub e32_debuginfo: u32, + pub e32_debuglen: u32, + pub e32_instpreload: u32, + pub e32_instdemand: u32, + pub e32_heapsize: u32, + pub e32_res3: [u8; 12], + pub e32_winresoff: u32, + pub e32_winreslen: u32, + pub e32_devid: u16, + pub e32_ddkver: u16, +} +impl ::core::marker::Copy for IMAGE_VXD_HEADER {} +impl ::core::clone::Clone for IMAGE_VXD_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMPORT_OBJECT_HEADER { + pub Sig1: u16, + pub Sig2: u16, + pub Version: u16, + pub Machine: u16, + pub TimeDateStamp: u32, + pub SizeOfData: u32, + pub Anonymous: IMPORT_OBJECT_HEADER_0, + pub _bitfield: u16, +} +impl ::core::marker::Copy for IMPORT_OBJECT_HEADER {} +impl ::core::clone::Clone for IMPORT_OBJECT_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMPORT_OBJECT_HEADER_0 { + pub Ordinal: u16, + pub Hint: u16, +} +impl ::core::marker::Copy for IMPORT_OBJECT_HEADER_0 {} +impl ::core::clone::Clone for IMPORT_OBJECT_HEADER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERNEL_CET_CONTEXT { + pub Ssp: u64, + pub Rip: u64, + pub SegCs: u16, + pub Anonymous: KERNEL_CET_CONTEXT_0, + pub Fill: [u16; 2], +} +impl ::core::marker::Copy for KERNEL_CET_CONTEXT {} +impl ::core::clone::Clone for KERNEL_CET_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union KERNEL_CET_CONTEXT_0 { + pub AllFlags: u16, + pub Anonymous: KERNEL_CET_CONTEXT_0_0, +} +impl ::core::marker::Copy for KERNEL_CET_CONTEXT_0 {} +impl ::core::clone::Clone for KERNEL_CET_CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KERNEL_CET_CONTEXT_0_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for KERNEL_CET_CONTEXT_0_0 {} +impl ::core::clone::Clone for KERNEL_CET_CONTEXT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KTMOBJECT_CURSOR { + pub LastQuery: ::windows_sys::core::GUID, + pub ObjectIdCount: u32, + pub ObjectIds: [::windows_sys::core::GUID; 1], +} +impl ::core::marker::Copy for KTMOBJECT_CURSOR {} +impl ::core::clone::Clone for KTMOBJECT_CURSOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MAXVERSIONTESTED_INFO { + pub MaxVersionTested: u64, +} +impl ::core::marker::Copy for MAXVERSIONTESTED_INFO {} +impl ::core::clone::Clone for MAXVERSIONTESTED_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NETWORK_APP_INSTANCE_EA { + pub AppInstanceID: ::windows_sys::core::GUID, + pub CsvFlags: u32, +} +impl ::core::marker::Copy for NETWORK_APP_INSTANCE_EA {} +impl ::core::clone::Clone for NETWORK_APP_INSTANCE_EA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +pub struct NON_PAGED_DEBUG_INFO { + pub Signature: u16, + pub Flags: u16, + pub Size: u32, + pub Machine: u16, + pub Characteristics: u16, + pub TimeDateStamp: u32, + pub CheckSum: u32, + pub SizeOfImage: u32, + pub ImageBase: u64, +} +impl ::core::marker::Copy for NON_PAGED_DEBUG_INFO {} +impl ::core::clone::Clone for NON_PAGED_DEBUG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NOTIFY_USER_POWER_SETTING { + pub Guid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for NOTIFY_USER_POWER_SETTING {} +impl ::core::clone::Clone for NOTIFY_USER_POWER_SETTING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NT_TIB32 { + pub ExceptionList: u32, + pub StackBase: u32, + pub StackLimit: u32, + pub SubSystemTib: u32, + pub Anonymous: NT_TIB32_0, + pub ArbitraryUserPointer: u32, + pub Self_: u32, +} +impl ::core::marker::Copy for NT_TIB32 {} +impl ::core::clone::Clone for NT_TIB32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NT_TIB32_0 { + pub FiberData: u32, + pub Version: u32, +} +impl ::core::marker::Copy for NT_TIB32_0 {} +impl ::core::clone::Clone for NT_TIB32_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NT_TIB64 { + pub ExceptionList: u64, + pub StackBase: u64, + pub StackLimit: u64, + pub SubSystemTib: u64, + pub Anonymous: NT_TIB64_0, + pub ArbitraryUserPointer: u64, + pub Self_: u64, +} +impl ::core::marker::Copy for NT_TIB64 {} +impl ::core::clone::Clone for NT_TIB64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union NT_TIB64_0 { + pub FiberData: u64, + pub Version: u32, +} +impl ::core::marker::Copy for NT_TIB64_0 {} +impl ::core::clone::Clone for NT_TIB64_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PACKEDEVENTINFO { + pub ulSize: u32, + pub ulNumEventsForLogFile: u32, + pub ulOffsets: [u32; 1], +} +impl ::core::marker::Copy for PACKEDEVENTINFO {} +impl ::core::clone::Clone for PACKEDEVENTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSOR_IDLESTATE_INFO { + pub TimeCheck: u32, + pub DemotePercent: u8, + pub PromotePercent: u8, + pub Spare: [u8; 2], +} +impl ::core::marker::Copy for PROCESSOR_IDLESTATE_INFO {} +impl ::core::clone::Clone for PROCESSOR_IDLESTATE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSOR_IDLESTATE_POLICY { + pub Revision: u16, + pub Flags: PROCESSOR_IDLESTATE_POLICY_0, + pub PolicyCount: u32, + pub Policy: [PROCESSOR_IDLESTATE_INFO; 3], +} +impl ::core::marker::Copy for PROCESSOR_IDLESTATE_POLICY {} +impl ::core::clone::Clone for PROCESSOR_IDLESTATE_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESSOR_IDLESTATE_POLICY_0 { + pub AsWORD: u16, + pub Anonymous: PROCESSOR_IDLESTATE_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESSOR_IDLESTATE_POLICY_0 {} +impl ::core::clone::Clone for PROCESSOR_IDLESTATE_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSOR_IDLESTATE_POLICY_0_0 { + pub _bitfield: u16, +} +impl ::core::marker::Copy for PROCESSOR_IDLESTATE_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESSOR_IDLESTATE_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSOR_PERFSTATE_POLICY { + pub Revision: u32, + pub MaxThrottle: u8, + pub MinThrottle: u8, + pub BusyAdjThreshold: u8, + pub Anonymous: PROCESSOR_PERFSTATE_POLICY_0, + pub TimeCheck: u32, + pub IncreaseTime: u32, + pub DecreaseTime: u32, + pub IncreasePercent: u32, + pub DecreasePercent: u32, +} +impl ::core::marker::Copy for PROCESSOR_PERFSTATE_POLICY {} +impl ::core::clone::Clone for PROCESSOR_PERFSTATE_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESSOR_PERFSTATE_POLICY_0 { + pub Spare: u8, + pub Flags: PROCESSOR_PERFSTATE_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESSOR_PERFSTATE_POLICY_0 {} +impl ::core::clone::Clone for PROCESSOR_PERFSTATE_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESSOR_PERFSTATE_POLICY_0_0 { + pub AsBYTE: u8, + pub Anonymous: PROCESSOR_PERFSTATE_POLICY_0_0_0, +} +impl ::core::marker::Copy for PROCESSOR_PERFSTATE_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESSOR_PERFSTATE_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESSOR_PERFSTATE_POLICY_0_0_0 { + pub _bitfield: u8, +} +impl ::core::marker::Copy for PROCESSOR_PERFSTATE_POLICY_0_0_0 {} +impl ::core::clone::Clone for PROCESSOR_PERFSTATE_POLICY_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_ASLR_POLICY { + pub Anonymous: PROCESS_MITIGATION_ASLR_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_ASLR_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_ASLR_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_ASLR_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_ASLR_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_ASLR_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_ASLR_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_ASLR_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_ASLR_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_ASLR_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY { + pub Anonymous: PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_CHILD_PROCESS_POLICY { + pub Anonymous: PROCESS_MITIGATION_CHILD_PROCESS_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_CHILD_PROCESS_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_CHILD_PROCESS_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_CHILD_PROCESS_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_CHILD_PROCESS_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_CHILD_PROCESS_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_CHILD_PROCESS_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_CHILD_PROCESS_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_CHILD_PROCESS_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_CHILD_PROCESS_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY { + pub Anonymous: PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_MITIGATION_DEP_POLICY { + pub Anonymous: PROCESS_MITIGATION_DEP_POLICY_0, + pub Permanent: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_MITIGATION_DEP_POLICY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_MITIGATION_DEP_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union PROCESS_MITIGATION_DEP_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_DEP_POLICY_0_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_MITIGATION_DEP_POLICY_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_MITIGATION_DEP_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_MITIGATION_DEP_POLICY_0_0 { + pub _bitfield: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_MITIGATION_DEP_POLICY_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_MITIGATION_DEP_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_DYNAMIC_CODE_POLICY { + pub Anonymous: PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_DYNAMIC_CODE_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_DYNAMIC_CODE_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY { + pub Anonymous: PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_FONT_DISABLE_POLICY { + pub Anonymous: PROCESS_MITIGATION_FONT_DISABLE_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_FONT_DISABLE_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_FONT_DISABLE_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_FONT_DISABLE_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_FONT_DISABLE_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_FONT_DISABLE_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_FONT_DISABLE_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_FONT_DISABLE_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_FONT_DISABLE_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_FONT_DISABLE_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_IMAGE_LOAD_POLICY { + pub Anonymous: PROCESS_MITIGATION_IMAGE_LOAD_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_IMAGE_LOAD_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_IMAGE_LOAD_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_IMAGE_LOAD_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_IMAGE_LOAD_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_IMAGE_LOAD_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_IMAGE_LOAD_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_IMAGE_LOAD_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_IMAGE_LOAD_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_IMAGE_LOAD_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY { + pub Anonymous: PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY { + pub Anonymous: PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_SEHOP_POLICY { + pub Anonymous: PROCESS_MITIGATION_SEHOP_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_SEHOP_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_SEHOP_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_SEHOP_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_SEHOP_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_SEHOP_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_SEHOP_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_SEHOP_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_SEHOP_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_SEHOP_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY { + pub Anonymous: PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY { + pub Anonymous: PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY { + pub Anonymous: PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY { + pub Anonymous: PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY { + pub Anonymous: PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY { + pub Anonymous: PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY {} +impl ::core::clone::Clone for PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY_0 { + pub Flags: u32, + pub Anonymous: PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY_0_0, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY_0_0 {} +impl ::core::clone::Clone for PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QUOTA_LIMITS_EX { + pub PagedPoolLimit: usize, + pub NonPagedPoolLimit: usize, + pub MinimumWorkingSetSize: usize, + pub MaximumWorkingSetSize: usize, + pub PagefileLimit: usize, + pub TimeLimit: i64, + pub WorkingSetLimit: usize, + pub Reserved2: usize, + pub Reserved3: usize, + pub Reserved4: usize, + pub Flags: u32, + pub CpuRateLimit: RATE_QUOTA_LIMIT, +} +impl ::core::marker::Copy for QUOTA_LIMITS_EX {} +impl ::core::clone::Clone for QUOTA_LIMITS_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union RATE_QUOTA_LIMIT { + pub RateData: u32, + pub Anonymous: RATE_QUOTA_LIMIT_0, +} +impl ::core::marker::Copy for RATE_QUOTA_LIMIT {} +impl ::core::clone::Clone for RATE_QUOTA_LIMIT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RATE_QUOTA_LIMIT_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for RATE_QUOTA_LIMIT_0 {} +impl ::core::clone::Clone for RATE_QUOTA_LIMIT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REARRANGE_FILE_DATA { + pub SourceStartingOffset: u64, + pub TargetOffset: u64, + pub SourceFileHandle: super::super::Foundation::HANDLE, + pub Length: u32, + pub Flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REARRANGE_FILE_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REARRANGE_FILE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct REARRANGE_FILE_DATA32 { + pub SourceStartingOffset: u64, + pub TargetOffset: u64, + pub SourceFileHandle: u32, + pub Length: u32, + pub Flags: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for REARRANGE_FILE_DATA32 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for REARRANGE_FILE_DATA32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REDBOOK_DIGITAL_AUDIO_EXTRACTION_INFO { + pub Version: u32, + pub Accurate: u32, + pub Supported: u32, + pub AccurateMask0: u32, +} +impl ::core::marker::Copy for REDBOOK_DIGITAL_AUDIO_EXTRACTION_INFO {} +impl ::core::clone::Clone for REDBOOK_DIGITAL_AUDIO_EXTRACTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RESOURCEMANAGER_BASIC_INFORMATION { + pub ResourceManagerId: ::windows_sys::core::GUID, + pub DescriptionLength: u32, + pub Description: [u16; 1], +} +impl ::core::marker::Copy for RESOURCEMANAGER_BASIC_INFORMATION {} +impl ::core::clone::Clone for RESOURCEMANAGER_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RESOURCEMANAGER_COMPLETION_INFORMATION { + pub IoCompletionPortHandle: super::super::Foundation::HANDLE, + pub CompletionKey: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RESOURCEMANAGER_COMPLETION_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RESOURCEMANAGER_COMPLETION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RemHBITMAP { + pub cbData: u32, + pub data: [u8; 1], +} +impl ::core::marker::Copy for RemHBITMAP {} +impl ::core::clone::Clone for RemHBITMAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RemHBRUSH { + pub cbData: u32, + pub data: [u8; 1], +} +impl ::core::marker::Copy for RemHBRUSH {} +impl ::core::clone::Clone for RemHBRUSH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RemHENHMETAFILE { + pub cbData: u32, + pub data: [u8; 1], +} +impl ::core::marker::Copy for RemHENHMETAFILE {} +impl ::core::clone::Clone for RemHENHMETAFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RemHGLOBAL { + pub fNullHGlobal: i32, + pub cbData: u32, + pub data: [u8; 1], +} +impl ::core::marker::Copy for RemHGLOBAL {} +impl ::core::clone::Clone for RemHGLOBAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RemHMETAFILEPICT { + pub mm: i32, + pub xExt: i32, + pub yExt: i32, + pub cbData: u32, + pub data: [u8; 1], +} +impl ::core::marker::Copy for RemHMETAFILEPICT {} +impl ::core::clone::Clone for RemHMETAFILEPICT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RemHPALETTE { + pub cbData: u32, + pub data: [u8; 1], +} +impl ::core::marker::Copy for RemHPALETTE {} +impl ::core::clone::Clone for RemHPALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RemotableHandle { + pub fContext: i32, + pub u: RemotableHandle_0, +} +impl ::core::marker::Copy for RemotableHandle {} +impl ::core::clone::Clone for RemotableHandle { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union RemotableHandle_0 { + pub hInproc: i32, + pub hRemote: i32, +} +impl ::core::marker::Copy for RemotableHandle_0 {} +impl ::core::clone::Clone for RemotableHandle_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCOPE_TABLE_AMD64 { + pub Count: u32, + pub ScopeRecord: [SCOPE_TABLE_AMD64_0; 1], +} +impl ::core::marker::Copy for SCOPE_TABLE_AMD64 {} +impl ::core::clone::Clone for SCOPE_TABLE_AMD64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCOPE_TABLE_AMD64_0 { + pub BeginAddress: u32, + pub EndAddress: u32, + pub HandlerAddress: u32, + pub JumpTarget: u32, +} +impl ::core::marker::Copy for SCOPE_TABLE_AMD64_0 {} +impl ::core::clone::Clone for SCOPE_TABLE_AMD64_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCOPE_TABLE_ARM { + pub Count: u32, + pub ScopeRecord: [SCOPE_TABLE_ARM_0; 1], +} +impl ::core::marker::Copy for SCOPE_TABLE_ARM {} +impl ::core::clone::Clone for SCOPE_TABLE_ARM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCOPE_TABLE_ARM_0 { + pub BeginAddress: u32, + pub EndAddress: u32, + pub HandlerAddress: u32, + pub JumpTarget: u32, +} +impl ::core::marker::Copy for SCOPE_TABLE_ARM_0 {} +impl ::core::clone::Clone for SCOPE_TABLE_ARM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCOPE_TABLE_ARM64 { + pub Count: u32, + pub ScopeRecord: [SCOPE_TABLE_ARM64_0; 1], +} +impl ::core::marker::Copy for SCOPE_TABLE_ARM64 {} +impl ::core::clone::Clone for SCOPE_TABLE_ARM64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCOPE_TABLE_ARM64_0 { + pub BeginAddress: u32, + pub EndAddress: u32, + pub HandlerAddress: u32, + pub JumpTarget: u32, +} +impl ::core::marker::Copy for SCOPE_TABLE_ARM64_0 {} +impl ::core::clone::Clone for SCOPE_TABLE_ARM64_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRUB_DATA_INPUT { + pub Size: u32, + pub Flags: u32, + pub MaximumIos: u32, + pub ObjectId: [u32; 4], + pub Reserved: [u32; 41], + pub ResumeContext: [u8; 1040], +} +impl ::core::marker::Copy for SCRUB_DATA_INPUT {} +impl ::core::clone::Clone for SCRUB_DATA_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRUB_DATA_OUTPUT { + pub Size: u32, + pub Flags: u32, + pub Status: u32, + pub ErrorFileOffset: u64, + pub ErrorLength: u64, + pub NumberOfBytesRepaired: u64, + pub NumberOfBytesFailed: u64, + pub InternalFileReference: u64, + pub ResumeContextLength: u16, + pub ParityExtentDataOffset: u16, + pub Reserved: [u32; 9], + pub NumberOfMetadataBytesProcessed: u64, + pub NumberOfDataBytesProcessed: u64, + pub TotalNumberOfMetadataBytesInUse: u64, + pub TotalNumberOfDataBytesInUse: u64, + pub DataBytesSkippedDueToNoAllocation: u64, + pub DataBytesSkippedDueToInvalidRun: u64, + pub DataBytesSkippedDueToIntegrityStream: u64, + pub DataBytesSkippedDueToRegionBeingClean: u64, + pub DataBytesSkippedDueToLockConflict: u64, + pub DataBytesSkippedDueToNoScrubDataFlag: u64, + pub DataBytesSkippedDueToNoScrubNonIntegrityStreamFlag: u64, + pub DataBytesScrubbed: u64, + pub ResumeContext: [u8; 1040], +} +impl ::core::marker::Copy for SCRUB_DATA_OUTPUT {} +impl ::core::clone::Clone for SCRUB_DATA_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRUB_PARITY_EXTENT { + pub Offset: i64, + pub Length: u64, +} +impl ::core::marker::Copy for SCRUB_PARITY_EXTENT {} +impl ::core::clone::Clone for SCRUB_PARITY_EXTENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCRUB_PARITY_EXTENT_DATA { + pub Size: u16, + pub Flags: u16, + pub NumberOfParityExtents: u16, + pub MaximumNumberOfParityExtents: u16, + pub ParityExtents: [SCRUB_PARITY_EXTENT; 1], +} +impl ::core::marker::Copy for SCRUB_PARITY_EXTENT_DATA {} +impl ::core::clone::Clone for SCRUB_PARITY_EXTENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SECURITY_OBJECT_AI_PARAMS { + pub Size: u32, + pub ConstraintMask: u32, +} +impl ::core::marker::Copy for SECURITY_OBJECT_AI_PARAMS {} +impl ::core::clone::Clone for SECURITY_OBJECT_AI_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SERVERSILO_BASIC_INFORMATION { + pub ServiceSessionId: u32, + pub State: SERVERSILO_STATE, + pub ExitStatus: u32, + pub IsDownlevelContainer: super::super::Foundation::BOOLEAN, + pub ApiSetSchema: *mut ::core::ffi::c_void, + pub HostApiSetSchema: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SERVERSILO_BASIC_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SERVERSILO_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub struct SE_TOKEN_USER { + pub Anonymous1: SE_TOKEN_USER_0, + pub Anonymous2: SE_TOKEN_USER_1, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for SE_TOKEN_USER {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for SE_TOKEN_USER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union SE_TOKEN_USER_0 { + pub TokenUser: super::super::Security::TOKEN_USER, + pub User: super::super::Security::SID_AND_ATTRIBUTES, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for SE_TOKEN_USER_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for SE_TOKEN_USER_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +pub union SE_TOKEN_USER_1 { + pub Sid: super::super::Security::SID, + pub Buffer: [u8; 68], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::marker::Copy for SE_TOKEN_USER_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +impl ::core::clone::Clone for SE_TOKEN_USER_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHARED_VIRTUAL_DISK_SUPPORT { + pub SharedVirtualDiskSupport: SharedVirtualDiskSupportType, + pub HandleState: SharedVirtualDiskHandleState, +} +impl ::core::marker::Copy for SHARED_VIRTUAL_DISK_SUPPORT {} +impl ::core::clone::Clone for SHARED_VIRTUAL_DISK_SUPPORT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHUFFLE_FILE_DATA { + pub StartingOffset: i64, + pub Length: i64, + pub Flags: u32, +} +impl ::core::marker::Copy for SHUFFLE_FILE_DATA {} +impl ::core::clone::Clone for SHUFFLE_FILE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SILOOBJECT_BASIC_INFORMATION { + pub SiloId: u32, + pub SiloParentId: u32, + pub NumberOfProcesses: u32, + pub IsInServerSilo: super::super::Foundation::BOOLEAN, + pub Reserved: [u8; 3], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SILOOBJECT_BASIC_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SILOOBJECT_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SUPPORTED_OS_INFO { + pub MajorVersion: u16, + pub MinorVersion: u16, +} +impl ::core::marker::Copy for SUPPORTED_OS_INFO {} +impl ::core::clone::Clone for SUPPORTED_OS_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TAPE_CREATE_PARTITION { + pub Method: u32, + pub Count: u32, + pub Size: u32, +} +impl ::core::marker::Copy for TAPE_CREATE_PARTITION {} +impl ::core::clone::Clone for TAPE_CREATE_PARTITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TAPE_GET_DRIVE_PARAMETERS { + pub ECC: super::super::Foundation::BOOLEAN, + pub Compression: super::super::Foundation::BOOLEAN, + pub DataPadding: super::super::Foundation::BOOLEAN, + pub ReportSetmarks: super::super::Foundation::BOOLEAN, + pub DefaultBlockSize: u32, + pub MaximumBlockSize: u32, + pub MinimumBlockSize: u32, + pub MaximumPartitionCount: u32, + pub FeaturesLow: u32, + pub FeaturesHigh: TAPE_GET_DRIVE_PARAMETERS_FEATURES_HIGH, + pub EOTWarningZoneSize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TAPE_GET_DRIVE_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TAPE_GET_DRIVE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TAPE_GET_MEDIA_PARAMETERS { + pub Capacity: i64, + pub Remaining: i64, + pub BlockSize: u32, + pub PartitionCount: u32, + pub WriteProtected: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TAPE_GET_MEDIA_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TAPE_GET_MEDIA_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TAPE_SET_DRIVE_PARAMETERS { + pub ECC: super::super::Foundation::BOOLEAN, + pub Compression: super::super::Foundation::BOOLEAN, + pub DataPadding: super::super::Foundation::BOOLEAN, + pub ReportSetmarks: super::super::Foundation::BOOLEAN, + pub EOTWarningZoneSize: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TAPE_SET_DRIVE_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TAPE_SET_DRIVE_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TAPE_SET_MEDIA_PARAMETERS { + pub BlockSize: u32, +} +impl ::core::marker::Copy for TAPE_SET_MEDIA_PARAMETERS {} +impl ::core::clone::Clone for TAPE_SET_MEDIA_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TAPE_WMI_OPERATIONS { + pub Method: u32, + pub DataBufferSize: u32, + pub DataBuffer: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for TAPE_WMI_OPERATIONS {} +impl ::core::clone::Clone for TAPE_WMI_OPERATIONS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_BNO_ISOLATION_INFORMATION { + pub IsolationPrefix: ::windows_sys::core::PWSTR, + pub IsolationEnabled: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_BNO_ISOLATION_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_BNO_ISOLATION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOKEN_SID_INFORMATION { + pub Sid: super::super::Foundation::PSID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOKEN_SID_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOKEN_SID_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTIONMANAGER_BASIC_INFORMATION { + pub TmIdentity: ::windows_sys::core::GUID, + pub VirtualClock: i64, +} +impl ::core::marker::Copy for TRANSACTIONMANAGER_BASIC_INFORMATION {} +impl ::core::clone::Clone for TRANSACTIONMANAGER_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTIONMANAGER_LOGPATH_INFORMATION { + pub LogPathLength: u32, + pub LogPath: [u16; 1], +} +impl ::core::marker::Copy for TRANSACTIONMANAGER_LOGPATH_INFORMATION {} +impl ::core::clone::Clone for TRANSACTIONMANAGER_LOGPATH_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTIONMANAGER_LOG_INFORMATION { + pub LogIdentity: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for TRANSACTIONMANAGER_LOG_INFORMATION {} +impl ::core::clone::Clone for TRANSACTIONMANAGER_LOG_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTIONMANAGER_OLDEST_INFORMATION { + pub OldestTransactionGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for TRANSACTIONMANAGER_OLDEST_INFORMATION {} +impl ::core::clone::Clone for TRANSACTIONMANAGER_OLDEST_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTIONMANAGER_RECOVERY_INFORMATION { + pub LastRecoveredLsn: u64, +} +impl ::core::marker::Copy for TRANSACTIONMANAGER_RECOVERY_INFORMATION {} +impl ::core::clone::Clone for TRANSACTIONMANAGER_RECOVERY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTION_BASIC_INFORMATION { + pub TransactionId: ::windows_sys::core::GUID, + pub State: u32, + pub Outcome: u32, +} +impl ::core::marker::Copy for TRANSACTION_BASIC_INFORMATION {} +impl ::core::clone::Clone for TRANSACTION_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRANSACTION_BIND_INFORMATION { + pub TmHandle: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRANSACTION_BIND_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRANSACTION_BIND_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTION_ENLISTMENTS_INFORMATION { + pub NumberOfEnlistments: u32, + pub EnlistmentPair: [TRANSACTION_ENLISTMENT_PAIR; 1], +} +impl ::core::marker::Copy for TRANSACTION_ENLISTMENTS_INFORMATION {} +impl ::core::clone::Clone for TRANSACTION_ENLISTMENTS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTION_ENLISTMENT_PAIR { + pub EnlistmentId: ::windows_sys::core::GUID, + pub ResourceManagerId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for TRANSACTION_ENLISTMENT_PAIR {} +impl ::core::clone::Clone for TRANSACTION_ENLISTMENT_PAIR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTION_LIST_ENTRY { + pub UOW: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for TRANSACTION_LIST_ENTRY {} +impl ::core::clone::Clone for TRANSACTION_LIST_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTION_LIST_INFORMATION { + pub NumberOfTransactions: u32, + pub TransactionInformation: [TRANSACTION_LIST_ENTRY; 1], +} +impl ::core::marker::Copy for TRANSACTION_LIST_INFORMATION {} +impl ::core::clone::Clone for TRANSACTION_LIST_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTION_PROPERTIES_INFORMATION { + pub IsolationLevel: u32, + pub IsolationFlags: u32, + pub Timeout: i64, + pub Outcome: u32, + pub DescriptionLength: u32, + pub Description: [u16; 1], +} +impl ::core::marker::Copy for TRANSACTION_PROPERTIES_INFORMATION {} +impl ::core::clone::Clone for TRANSACTION_PROPERTIES_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION { + pub SuperiorEnlistmentPair: TRANSACTION_ENLISTMENT_PAIR, +} +impl ::core::marker::Copy for TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION {} +impl ::core::clone::Clone for TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UMS_CREATE_THREAD_ATTRIBUTES { + pub UmsVersion: u32, + pub UmsContext: *mut ::core::ffi::c_void, + pub UmsCompletionList: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for UMS_CREATE_THREAD_ATTRIBUTES {} +impl ::core::clone::Clone for UMS_CREATE_THREAD_ATTRIBUTES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XSAVE_CET_U_FORMAT { + pub Ia32CetUMsr: u64, + pub Ia32Pl3SspMsr: u64, +} +impl ::core::marker::Copy for XSAVE_CET_U_FORMAT {} +impl ::core::clone::Clone for XSAVE_CET_U_FORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct remoteMETAFILEPICT { + pub mm: i32, + pub xExt: i32, + pub yExt: i32, + pub hMF: *mut userHMETAFILE, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for remoteMETAFILEPICT {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for remoteMETAFILEPICT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct userBITMAP { + pub bmType: i32, + pub bmWidth: i32, + pub bmHeight: i32, + pub bmWidthBytes: i32, + pub bmPlanes: u16, + pub bmBitsPixel: u16, + pub cbSize: u32, + pub pBuffer: [u8; 1], +} +impl ::core::marker::Copy for userBITMAP {} +impl ::core::clone::Clone for userBITMAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct userCLIPFORMAT { + pub fContext: i32, + pub u: userCLIPFORMAT_0, +} +impl ::core::marker::Copy for userCLIPFORMAT {} +impl ::core::clone::Clone for userCLIPFORMAT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union userCLIPFORMAT_0 { + pub dwValue: u32, + pub pwszName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for userCLIPFORMAT_0 {} +impl ::core::clone::Clone for userCLIPFORMAT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct userHBITMAP { + pub fContext: i32, + pub u: userHBITMAP_0, +} +impl ::core::marker::Copy for userHBITMAP {} +impl ::core::clone::Clone for userHBITMAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union userHBITMAP_0 { + pub hInproc: i32, + pub hRemote: *mut userBITMAP, + pub hInproc64: i64, +} +impl ::core::marker::Copy for userHBITMAP_0 {} +impl ::core::clone::Clone for userHBITMAP_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct userHENHMETAFILE { + pub fContext: i32, + pub u: userHENHMETAFILE_0, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for userHENHMETAFILE {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for userHENHMETAFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union userHENHMETAFILE_0 { + pub hInproc: i32, + pub hRemote: *mut super::Com::BYTE_BLOB, + pub hInproc64: i64, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for userHENHMETAFILE_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for userHENHMETAFILE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct userHGLOBAL { + pub fContext: i32, + pub u: userHGLOBAL_0, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for userHGLOBAL {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for userHGLOBAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union userHGLOBAL_0 { + pub hInproc: i32, + pub hRemote: *mut super::Com::FLAGGED_BYTE_BLOB, + pub hInproc64: i64, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for userHGLOBAL_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for userHGLOBAL_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct userHMETAFILE { + pub fContext: i32, + pub u: userHMETAFILE_0, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for userHMETAFILE {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for userHMETAFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union userHMETAFILE_0 { + pub hInproc: i32, + pub hRemote: *mut super::Com::BYTE_BLOB, + pub hInproc64: i64, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for userHMETAFILE_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for userHMETAFILE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct userHMETAFILEPICT { + pub fContext: i32, + pub u: userHMETAFILEPICT_0, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for userHMETAFILEPICT {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for userHMETAFILEPICT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub union userHMETAFILEPICT_0 { + pub hInproc: i32, + pub hRemote: *mut remoteMETAFILEPICT, + pub hInproc64: i64, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for userHMETAFILEPICT_0 {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for userHMETAFILEPICT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct userHPALETTE { + pub fContext: i32, + pub u: userHPALETTE_0, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for userHPALETTE {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for userHPALETTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub union userHPALETTE_0 { + pub hInproc: i32, + pub hRemote: *mut super::super::Graphics::Gdi::LOGPALETTE, + pub hInproc64: i64, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for userHPALETTE_0 {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for userHPALETTE_0 { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub type PEXCEPTION_FILTER = ::core::option::Option i32>; +pub type PIMAGE_TLS_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(target_arch = "aarch64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type POUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(target_arch = "x86_64")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type POUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "aarch64")] +#[cfg(feature = "Win32_Foundation")] +pub type PTERMINATION_HANDLER = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86_64")] +#[cfg(feature = "Win32_Foundation")] +pub type PTERMINATION_HANDLER = ::core::option::Option ()>; +pub type PUMS_SCHEDULER_ENTRY_POINT = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Threading/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Threading/mod.rs new file mode 100644 index 000000000..6ee2c4ad6 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Threading/mod.rs @@ -0,0 +1,1589 @@ +::windows_targets::link!("kernel32.dll" "system" fn AcquireSRWLockExclusive(srwlock : *mut SRWLOCK) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn AcquireSRWLockShared(srwlock : *mut SRWLOCK) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddIntegrityLabelToBoundaryDescriptor(boundarydescriptor : *mut super::super::Foundation:: HANDLE, integritylabel : super::super::Foundation:: PSID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AddSIDToBoundaryDescriptor(boundarydescriptor : *mut super::super::Foundation:: HANDLE, requiredsid : super::super::Foundation:: PSID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AttachThreadInput(idattach : u32, idattachto : u32, fattach : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvQuerySystemResponsiveness(avrthandle : super::super::Foundation:: HANDLE, systemresponsivenessvalue : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvRevertMmThreadCharacteristics(avrthandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvRtCreateThreadOrderingGroup(context : *mut super::super::Foundation:: HANDLE, period : *const i64, threadorderingguid : *mut ::windows_sys::core::GUID, timeout : *const i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvRtCreateThreadOrderingGroupExA(context : *mut super::super::Foundation:: HANDLE, period : *const i64, threadorderingguid : *mut ::windows_sys::core::GUID, timeout : *const i64, taskname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvRtCreateThreadOrderingGroupExW(context : *mut super::super::Foundation:: HANDLE, period : *const i64, threadorderingguid : *mut ::windows_sys::core::GUID, timeout : *const i64, taskname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvRtDeleteThreadOrderingGroup(context : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvRtJoinThreadOrderingGroup(context : *mut super::super::Foundation:: HANDLE, threadorderingguid : *const ::windows_sys::core::GUID, before : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvRtLeaveThreadOrderingGroup(context : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvRtWaitOnThreadOrderingGroup(context : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvSetMmMaxThreadCharacteristicsA(firsttask : ::windows_sys::core::PCSTR, secondtask : ::windows_sys::core::PCSTR, taskindex : *mut u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvSetMmMaxThreadCharacteristicsW(firsttask : ::windows_sys::core::PCWSTR, secondtask : ::windows_sys::core::PCWSTR, taskindex : *mut u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvSetMmThreadCharacteristicsA(taskname : ::windows_sys::core::PCSTR, taskindex : *mut u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvSetMmThreadCharacteristicsW(taskname : ::windows_sys::core::PCWSTR, taskindex : *mut u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("avrt.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AvSetMmThreadPriority(avrthandle : super::super::Foundation:: HANDLE, priority : AVRT_PRIORITY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CallbackMayRunLong(pci : PTP_CALLBACK_INSTANCE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn CancelThreadpoolIo(pio : PTP_IO) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CancelTimerQueueTimer(timerqueue : super::super::Foundation:: HANDLE, timer : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CancelWaitableTimer(htimer : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChangeTimerQueueTimer(timerqueue : super::super::Foundation:: HANDLE, timer : super::super::Foundation:: HANDLE, duetime : u32, period : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClosePrivateNamespace(handle : super::super::Foundation:: HANDLE, flags : u32) -> super::super::Foundation:: BOOLEAN); +::windows_targets::link!("kernel32.dll" "system" fn CloseThreadpool(ptpp : PTP_POOL) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn CloseThreadpoolCleanupGroup(ptpcg : PTP_CLEANUP_GROUP) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseThreadpoolCleanupGroupMembers(ptpcg : PTP_CLEANUP_GROUP, fcancelpendingcallbacks : super::super::Foundation:: BOOL, pvcleanupcontext : *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn CloseThreadpoolIo(pio : PTP_IO) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn CloseThreadpoolTimer(pti : PTP_TIMER) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn CloseThreadpoolWait(pwa : PTP_WAIT) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn CloseThreadpoolWork(pwk : PTP_WORK) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertFiberToThread() -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn ConvertThreadToFiber(lpparameter : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +::windows_targets::link!("kernel32.dll" "system" fn ConvertThreadToFiberEx(lpparameter : *const ::core::ffi::c_void, dwflags : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateBoundaryDescriptorA(name : ::windows_sys::core::PCSTR, flags : u32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateBoundaryDescriptorW(name : ::windows_sys::core::PCWSTR, flags : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateEventA(lpeventattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, bmanualreset : super::super::Foundation:: BOOL, binitialstate : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateEventExA(lpeventattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lpname : ::windows_sys::core::PCSTR, dwflags : CREATE_EVENT, dwdesiredaccess : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateEventExW(lpeventattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lpname : ::windows_sys::core::PCWSTR, dwflags : CREATE_EVENT, dwdesiredaccess : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateEventW(lpeventattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, bmanualreset : super::super::Foundation:: BOOL, binitialstate : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("kernel32.dll" "system" fn CreateFiber(dwstacksize : usize, lpstartaddress : LPFIBER_START_ROUTINE, lpparameter : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +::windows_targets::link!("kernel32.dll" "system" fn CreateFiberEx(dwstackcommitsize : usize, dwstackreservesize : usize, dwflags : u32, lpstartaddress : LPFIBER_START_ROUTINE, lpparameter : *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateMutexA(lpmutexattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, binitialowner : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateMutexExA(lpmutexattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lpname : ::windows_sys::core::PCSTR, dwflags : u32, dwdesiredaccess : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateMutexExW(lpmutexattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lpname : ::windows_sys::core::PCWSTR, dwflags : u32, dwdesiredaccess : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateMutexW(lpmutexattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, binitialowner : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreatePrivateNamespaceA(lpprivatenamespaceattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lpboundarydescriptor : *const ::core::ffi::c_void, lpaliasprefix : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreatePrivateNamespaceW(lpprivatenamespaceattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lpboundarydescriptor : *const ::core::ffi::c_void, lpaliasprefix : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateProcessA(lpapplicationname : ::windows_sys::core::PCSTR, lpcommandline : ::windows_sys::core::PSTR, lpprocessattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lpthreadattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, binherithandles : super::super::Foundation:: BOOL, dwcreationflags : PROCESS_CREATION_FLAGS, lpenvironment : *const ::core::ffi::c_void, lpcurrentdirectory : ::windows_sys::core::PCSTR, lpstartupinfo : *const STARTUPINFOA, lpprocessinformation : *mut PROCESS_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateProcessAsUserA(htoken : super::super::Foundation:: HANDLE, lpapplicationname : ::windows_sys::core::PCSTR, lpcommandline : ::windows_sys::core::PSTR, lpprocessattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lpthreadattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, binherithandles : super::super::Foundation:: BOOL, dwcreationflags : PROCESS_CREATION_FLAGS, lpenvironment : *const ::core::ffi::c_void, lpcurrentdirectory : ::windows_sys::core::PCSTR, lpstartupinfo : *const STARTUPINFOA, lpprocessinformation : *mut PROCESS_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateProcessAsUserW(htoken : super::super::Foundation:: HANDLE, lpapplicationname : ::windows_sys::core::PCWSTR, lpcommandline : ::windows_sys::core::PWSTR, lpprocessattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lpthreadattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, binherithandles : super::super::Foundation:: BOOL, dwcreationflags : PROCESS_CREATION_FLAGS, lpenvironment : *const ::core::ffi::c_void, lpcurrentdirectory : ::windows_sys::core::PCWSTR, lpstartupinfo : *const STARTUPINFOW, lpprocessinformation : *mut PROCESS_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateProcessW(lpapplicationname : ::windows_sys::core::PCWSTR, lpcommandline : ::windows_sys::core::PWSTR, lpprocessattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lpthreadattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, binherithandles : super::super::Foundation:: BOOL, dwcreationflags : PROCESS_CREATION_FLAGS, lpenvironment : *const ::core::ffi::c_void, lpcurrentdirectory : ::windows_sys::core::PCWSTR, lpstartupinfo : *const STARTUPINFOW, lpprocessinformation : *mut PROCESS_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateProcessWithLogonW(lpusername : ::windows_sys::core::PCWSTR, lpdomain : ::windows_sys::core::PCWSTR, lppassword : ::windows_sys::core::PCWSTR, dwlogonflags : CREATE_PROCESS_LOGON_FLAGS, lpapplicationname : ::windows_sys::core::PCWSTR, lpcommandline : ::windows_sys::core::PWSTR, dwcreationflags : PROCESS_CREATION_FLAGS, lpenvironment : *const ::core::ffi::c_void, lpcurrentdirectory : ::windows_sys::core::PCWSTR, lpstartupinfo : *const STARTUPINFOW, lpprocessinformation : *mut PROCESS_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateProcessWithTokenW(htoken : super::super::Foundation:: HANDLE, dwlogonflags : CREATE_PROCESS_LOGON_FLAGS, lpapplicationname : ::windows_sys::core::PCWSTR, lpcommandline : ::windows_sys::core::PWSTR, dwcreationflags : PROCESS_CREATION_FLAGS, lpenvironment : *const ::core::ffi::c_void, lpcurrentdirectory : ::windows_sys::core::PCWSTR, lpstartupinfo : *const STARTUPINFOW, lpprocessinformation : *mut PROCESS_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateRemoteThread(hprocess : super::super::Foundation:: HANDLE, lpthreadattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, dwstacksize : usize, lpstartaddress : LPTHREAD_START_ROUTINE, lpparameter : *const ::core::ffi::c_void, dwcreationflags : u32, lpthreadid : *mut u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateRemoteThreadEx(hprocess : super::super::Foundation:: HANDLE, lpthreadattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, dwstacksize : usize, lpstartaddress : LPTHREAD_START_ROUTINE, lpparameter : *const ::core::ffi::c_void, dwcreationflags : u32, lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST, lpthreadid : *mut u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateSemaphoreA(lpsemaphoreattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, linitialcount : i32, lmaximumcount : i32, lpname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateSemaphoreExA(lpsemaphoreattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, linitialcount : i32, lmaximumcount : i32, lpname : ::windows_sys::core::PCSTR, dwflags : u32, dwdesiredaccess : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateSemaphoreExW(lpsemaphoreattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, linitialcount : i32, lmaximumcount : i32, lpname : ::windows_sys::core::PCWSTR, dwflags : u32, dwdesiredaccess : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateSemaphoreW(lpsemaphoreattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, linitialcount : i32, lmaximumcount : i32, lpname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateThread(lpthreadattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, dwstacksize : usize, lpstartaddress : LPTHREAD_START_ROUTINE, lpparameter : *const ::core::ffi::c_void, dwcreationflags : THREAD_CREATION_FLAGS, lpthreadid : *mut u32) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("kernel32.dll" "system" fn CreateThreadpool(reserved : *const ::core::ffi::c_void) -> PTP_POOL); +::windows_targets::link!("kernel32.dll" "system" fn CreateThreadpoolCleanupGroup() -> PTP_CLEANUP_GROUP); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateThreadpoolIo(fl : super::super::Foundation:: HANDLE, pfnio : PTP_WIN32_IO_CALLBACK, pv : *mut ::core::ffi::c_void, pcbe : *const TP_CALLBACK_ENVIRON_V3) -> PTP_IO); +::windows_targets::link!("kernel32.dll" "system" fn CreateThreadpoolTimer(pfnti : PTP_TIMER_CALLBACK, pv : *mut ::core::ffi::c_void, pcbe : *const TP_CALLBACK_ENVIRON_V3) -> PTP_TIMER); +::windows_targets::link!("kernel32.dll" "system" fn CreateThreadpoolWait(pfnwa : PTP_WAIT_CALLBACK, pv : *mut ::core::ffi::c_void, pcbe : *const TP_CALLBACK_ENVIRON_V3) -> PTP_WAIT); +::windows_targets::link!("kernel32.dll" "system" fn CreateThreadpoolWork(pfnwk : PTP_WORK_CALLBACK, pv : *mut ::core::ffi::c_void, pcbe : *const TP_CALLBACK_ENVIRON_V3) -> PTP_WORK); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateTimerQueue() -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateTimerQueueTimer(phnewtimer : *mut super::super::Foundation:: HANDLE, timerqueue : super::super::Foundation:: HANDLE, callback : WAITORTIMERCALLBACK, parameter : *const ::core::ffi::c_void, duetime : u32, period : u32, flags : WORKER_THREAD_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateUmsCompletionList(umscompletionlist : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateUmsThreadContext(lpumsthread : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateWaitableTimerA(lptimerattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, bmanualreset : super::super::Foundation:: BOOL, lptimername : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateWaitableTimerExA(lptimerattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lptimername : ::windows_sys::core::PCSTR, dwflags : u32, dwdesiredaccess : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateWaitableTimerExW(lptimerattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, lptimername : ::windows_sys::core::PCWSTR, dwflags : u32, dwdesiredaccess : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn CreateWaitableTimerW(lptimerattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, bmanualreset : super::super::Foundation:: BOOL, lptimername : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteBoundaryDescriptor(boundarydescriptor : super::super::Foundation:: HANDLE) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn DeleteCriticalSection(lpcriticalsection : *mut CRITICAL_SECTION) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn DeleteFiber(lpfiber : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn DeleteProcThreadAttributeList(lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteSynchronizationBarrier(lpbarrier : *mut SYNCHRONIZATION_BARRIER) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteTimerQueue(timerqueue : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteTimerQueueEx(timerqueue : super::super::Foundation:: HANDLE, completionevent : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteTimerQueueTimer(timerqueue : super::super::Foundation:: HANDLE, timer : super::super::Foundation:: HANDLE, completionevent : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteUmsCompletionList(umscompletionlist : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteUmsThreadContext(umsthread : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DequeueUmsCompletionListItems(umscompletionlist : *const ::core::ffi::c_void, waittimeout : u32, umsthreadlist : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn DisassociateCurrentThreadFromCallback(pci : PTP_CALLBACK_INSTANCE) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn EnterCriticalSection(lpcriticalsection : *mut CRITICAL_SECTION) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnterSynchronizationBarrier(lpbarrier : *mut SYNCHRONIZATION_BARRIER, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemServices"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemServices\"`"] fn EnterUmsSchedulingMode(schedulerstartupinfo : *const UMS_SCHEDULER_STARTUP_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExecuteUmsThread(umsthread : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn ExitProcess(uexitcode : u32) -> !); +::windows_targets::link!("kernel32.dll" "system" fn ExitThread(dwexitcode : u32) -> !); +::windows_targets::link!("kernel32.dll" "system" fn FlsAlloc(lpcallback : PFLS_CALLBACK_FUNCTION) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlsFree(dwflsindex : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn FlsGetValue(dwflsindex : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlsSetValue(dwflsindex : u32, lpflsdata : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn FlushProcessWriteBuffers() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FreeLibraryWhenCallbackReturns(pci : PTP_CALLBACK_INSTANCE, r#mod : super::super::Foundation:: HMODULE) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn GetActiveProcessorCount(groupnumber : u16) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetActiveProcessorGroupCount() -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentProcess() -> super::super::Foundation:: HANDLE); +::windows_targets::link!("kernel32.dll" "system" fn GetCurrentProcessId() -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetCurrentProcessorNumber() -> u32); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn GetCurrentProcessorNumberEx(procnumber : *mut super::Kernel:: PROCESSOR_NUMBER) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentThread() -> super::super::Foundation:: HANDLE); +::windows_targets::link!("kernel32.dll" "system" fn GetCurrentThreadId() -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetCurrentThreadStackLimits(lowlimit : *mut usize, highlimit : *mut usize) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn GetCurrentUmsThread() -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetExitCodeProcess(hprocess : super::super::Foundation:: HANDLE, lpexitcode : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetExitCodeThread(hthread : super::super::Foundation:: HANDLE, lpexitcode : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetGuiResources(hprocess : super::super::Foundation:: HANDLE, uiflags : GET_GUI_RESOURCES_FLAGS) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetMachineTypeAttributes(machine : u16, machinetypeattributes : *mut MACHINE_ATTRIBUTES) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("kernel32.dll" "system" fn GetMaximumProcessorCount(groupnumber : u16) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetMaximumProcessorGroupCount() -> u16); +::windows_targets::link!("kernel32.dll" "system" fn GetNextUmsListItem(umscontext : *mut ::core::ffi::c_void) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNumaAvailableMemoryNode(node : u8, availablebytes : *mut u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNumaAvailableMemoryNodeEx(node : u16, availablebytes : *mut u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNumaHighestNodeNumber(highestnodenumber : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNumaNodeNumberFromHandle(hfile : super::super::Foundation:: HANDLE, nodenumber : *mut u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNumaNodeProcessorMask(node : u8, processormask : *mut u64) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn GetNumaNodeProcessorMask2(nodenumber : u16, processormasks : *mut super::SystemInformation:: GROUP_AFFINITY, processormaskcount : u16, requiredmaskcount : *mut u16) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn GetNumaNodeProcessorMaskEx(node : u16, processormask : *mut super::SystemInformation:: GROUP_AFFINITY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNumaProcessorNode(processor : u8, nodenumber : *mut u8) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn GetNumaProcessorNodeEx(processor : *const super::Kernel:: PROCESSOR_NUMBER, nodenumber : *mut u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNumaProximityNode(proximityid : u32, nodenumber : *mut u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNumaProximityNodeEx(proximityid : u32, nodenumber : *mut u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPriorityClass(hprocess : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessAffinityMask(hprocess : super::super::Foundation:: HANDLE, lpprocessaffinitymask : *mut usize, lpsystemaffinitymask : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessDEPPolicy(hprocess : super::super::Foundation:: HANDLE, lpflags : *mut u32, lppermanent : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn GetProcessDefaultCpuSetMasks(process : super::super::Foundation:: HANDLE, cpusetmasks : *mut super::SystemInformation:: GROUP_AFFINITY, cpusetmaskcount : u16, requiredmaskcount : *mut u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessDefaultCpuSets(process : super::super::Foundation:: HANDLE, cpusetids : *mut u32, cpusetidcount : u32, requiredidcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessGroupAffinity(hprocess : super::super::Foundation:: HANDLE, groupcount : *mut u16, grouparray : *mut u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessHandleCount(hprocess : super::super::Foundation:: HANDLE, pdwhandlecount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessId(process : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessIdOfThread(thread : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessInformation(hprocess : super::super::Foundation:: HANDLE, processinformationclass : PROCESS_INFORMATION_CLASS, processinformation : *mut ::core::ffi::c_void, processinformationsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessIoCounters(hprocess : super::super::Foundation:: HANDLE, lpiocounters : *mut IO_COUNTERS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessMitigationPolicy(hprocess : super::super::Foundation:: HANDLE, mitigationpolicy : PROCESS_MITIGATION_POLICY, lpbuffer : *mut ::core::ffi::c_void, dwlength : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessPriorityBoost(hprocess : super::super::Foundation:: HANDLE, pdisablepriorityboost : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessShutdownParameters(lpdwlevel : *mut u32, lpdwflags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessTimes(hprocess : super::super::Foundation:: HANDLE, lpcreationtime : *mut super::super::Foundation:: FILETIME, lpexittime : *mut super::super::Foundation:: FILETIME, lpkerneltime : *mut super::super::Foundation:: FILETIME, lpusertime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetProcessVersion(processid : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessWorkingSetSize(hprocess : super::super::Foundation:: HANDLE, lpminimumworkingsetsize : *mut usize, lpmaximumworkingsetsize : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetStartupInfoA(lpstartupinfo : *mut STARTUPINFOA) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetStartupInfoW(lpstartupinfo : *mut STARTUPINFOW) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemTimes(lpidletime : *mut super::super::Foundation:: FILETIME, lpkerneltime : *mut super::super::Foundation:: FILETIME, lpusertime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThreadDescription(hthread : super::super::Foundation:: HANDLE, ppszthreaddescription : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn GetThreadGroupAffinity(hthread : super::super::Foundation:: HANDLE, groupaffinity : *mut super::SystemInformation:: GROUP_AFFINITY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThreadIOPendingFlag(hthread : super::super::Foundation:: HANDLE, lpioispending : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThreadId(thread : super::super::Foundation:: HANDLE) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn GetThreadIdealProcessorEx(hthread : super::super::Foundation:: HANDLE, lpidealprocessor : *mut super::Kernel:: PROCESSOR_NUMBER) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThreadInformation(hthread : super::super::Foundation:: HANDLE, threadinformationclass : THREAD_INFORMATION_CLASS, threadinformation : *mut ::core::ffi::c_void, threadinformationsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThreadPriority(hthread : super::super::Foundation:: HANDLE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThreadPriorityBoost(hthread : super::super::Foundation:: HANDLE, pdisablepriorityboost : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn GetThreadSelectedCpuSetMasks(thread : super::super::Foundation:: HANDLE, cpusetmasks : *mut super::SystemInformation:: GROUP_AFFINITY, cpusetmaskcount : u16, requiredmaskcount : *mut u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThreadSelectedCpuSets(thread : super::super::Foundation:: HANDLE, cpusetids : *mut u32, cpusetidcount : u32, requiredidcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThreadTimes(hthread : super::super::Foundation:: HANDLE, lpcreationtime : *mut super::super::Foundation:: FILETIME, lpexittime : *mut super::super::Foundation:: FILETIME, lpkerneltime : *mut super::super::Foundation:: FILETIME, lpusertime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUmsCompletionListEvent(umscompletionlist : *const ::core::ffi::c_void, umscompletionevent : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUmsSystemThreadInformation(threadhandle : super::super::Foundation:: HANDLE, systemthreadinfo : *mut UMS_SYSTEM_THREAD_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitOnceBeginInitialize(lpinitonce : *mut INIT_ONCE, dwflags : u32, fpending : *mut super::super::Foundation:: BOOL, lpcontext : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitOnceComplete(lpinitonce : *mut INIT_ONCE, dwflags : u32, lpcontext : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitOnceExecuteOnce(initonce : *mut INIT_ONCE, initfn : PINIT_ONCE_FN, parameter : *mut ::core::ffi::c_void, context : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn InitOnceInitialize(initonce : *mut INIT_ONCE) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn InitializeConditionVariable(conditionvariable : *mut CONDITION_VARIABLE) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn InitializeCriticalSection(lpcriticalsection : *mut CRITICAL_SECTION) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn InitializeCriticalSectionAndSpinCount(lpcriticalsection : *mut CRITICAL_SECTION, dwspincount : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn InitializeCriticalSectionEx(lpcriticalsection : *mut CRITICAL_SECTION, dwspincount : u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitializeProcThreadAttributeList(lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST, dwattributecount : u32, dwflags : u32, lpsize : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn InitializeSListHead(listhead : *mut super::Kernel:: SLIST_HEADER) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn InitializeSRWLock(srwlock : *mut SRWLOCK) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitializeSynchronizationBarrier(lpbarrier : *mut SYNCHRONIZATION_BARRIER, ltotalthreads : i32, lspincount : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn InterlockedFlushSList(listhead : *mut super::Kernel:: SLIST_HEADER) -> *mut super::Kernel:: SLIST_ENTRY); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn InterlockedPopEntrySList(listhead : *mut super::Kernel:: SLIST_HEADER) -> *mut super::Kernel:: SLIST_ENTRY); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn InterlockedPushEntrySList(listhead : *mut super::Kernel:: SLIST_HEADER, listentry : *mut super::Kernel:: SLIST_ENTRY) -> *mut super::Kernel:: SLIST_ENTRY); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn InterlockedPushListSListEx(listhead : *mut super::Kernel:: SLIST_HEADER, list : *mut super::Kernel:: SLIST_ENTRY, listend : *mut super::Kernel:: SLIST_ENTRY, count : u32) -> *mut super::Kernel:: SLIST_ENTRY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsImmersiveProcess(hprocess : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsProcessCritical(hprocess : super::super::Foundation:: HANDLE, critical : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsProcessorFeaturePresent(processorfeature : PROCESSOR_FEATURE_ID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsThreadAFiber() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsThreadpoolTimerSet(pti : PTP_TIMER) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsWow64Process(hprocess : super::super::Foundation:: HANDLE, wow64process : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn IsWow64Process2(hprocess : super::super::Foundation:: HANDLE, pprocessmachine : *mut super::SystemInformation:: IMAGE_FILE_MACHINE, pnativemachine : *mut super::SystemInformation:: IMAGE_FILE_MACHINE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn LeaveCriticalSection(lpcriticalsection : *mut CRITICAL_SECTION) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn LeaveCriticalSectionWhenCallbackReturns(pci : PTP_CALLBACK_INSTANCE, pcs : *mut CRITICAL_SECTION) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenEventA(dwdesiredaccess : SYNCHRONIZATION_ACCESS_RIGHTS, binherithandle : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenEventW(dwdesiredaccess : SYNCHRONIZATION_ACCESS_RIGHTS, binherithandle : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenMutexW(dwdesiredaccess : SYNCHRONIZATION_ACCESS_RIGHTS, binherithandle : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenPrivateNamespaceA(lpboundarydescriptor : *const ::core::ffi::c_void, lpaliasprefix : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenPrivateNamespaceW(lpboundarydescriptor : *const ::core::ffi::c_void, lpaliasprefix : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenProcess(dwdesiredaccess : PROCESS_ACCESS_RIGHTS, binherithandle : super::super::Foundation:: BOOL, dwprocessid : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn OpenProcessToken(processhandle : super::super::Foundation:: HANDLE, desiredaccess : super::super::Security:: TOKEN_ACCESS_MASK, tokenhandle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenSemaphoreW(dwdesiredaccess : SYNCHRONIZATION_ACCESS_RIGHTS, binherithandle : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenThread(dwdesiredaccess : THREAD_ACCESS_RIGHTS, binherithandle : super::super::Foundation:: BOOL, dwthreadid : u32) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn OpenThreadToken(threadhandle : super::super::Foundation:: HANDLE, desiredaccess : super::super::Security:: TOKEN_ACCESS_MASK, openasself : super::super::Foundation:: BOOL, tokenhandle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenWaitableTimerA(dwdesiredaccess : u32, binherithandle : super::super::Foundation:: BOOL, lptimername : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenWaitableTimerW(dwdesiredaccess : SYNCHRONIZATION_ACCESS_RIGHTS, binherithandle : super::super::Foundation:: BOOL, lptimername : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PulseEvent(hevent : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn QueryDepthSList(listhead : *const super::Kernel:: SLIST_HEADER) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryFullProcessImageNameA(hprocess : super::super::Foundation:: HANDLE, dwflags : PROCESS_NAME_FORMAT, lpexename : ::windows_sys::core::PSTR, lpdwsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryFullProcessImageNameW(hprocess : super::super::Foundation:: HANDLE, dwflags : PROCESS_NAME_FORMAT, lpexename : ::windows_sys::core::PWSTR, lpdwsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryProcessAffinityUpdateMode(hprocess : super::super::Foundation:: HANDLE, lpdwflags : *mut PROCESS_AFFINITY_AUTO_UPDATE_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryProtectedPolicy(policyguid : *const ::windows_sys::core::GUID, policyvalue : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryThreadpoolStackInformation(ptpp : PTP_POOL, ptpsi : *mut TP_POOL_STACK_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryUmsThreadInformation(umsthread : *const ::core::ffi::c_void, umsthreadinfoclass : UMS_THREAD_INFO_CLASS, umsthreadinformation : *mut ::core::ffi::c_void, umsthreadinformationlength : u32, returnlength : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueueUserAPC(pfnapc : super::super::Foundation:: PAPCFUNC, hthread : super::super::Foundation:: HANDLE, dwdata : usize) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueueUserAPC2(apcroutine : super::super::Foundation:: PAPCFUNC, thread : super::super::Foundation:: HANDLE, data : usize, flags : QUEUE_USER_APC_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueueUserWorkItem(function : LPTHREAD_START_ROUTINE, context : *const ::core::ffi::c_void, flags : WORKER_THREAD_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterWaitForSingleObject(phnewwaitobject : *mut super::super::Foundation:: HANDLE, hobject : super::super::Foundation:: HANDLE, callback : WAITORTIMERCALLBACK, context : *const ::core::ffi::c_void, dwmilliseconds : u32, dwflags : WORKER_THREAD_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReleaseMutex(hmutex : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReleaseMutexWhenCallbackReturns(pci : PTP_CALLBACK_INSTANCE, r#mut : super::super::Foundation:: HANDLE) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn ReleaseSRWLockExclusive(srwlock : *mut SRWLOCK) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn ReleaseSRWLockShared(srwlock : *mut SRWLOCK) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReleaseSemaphore(hsemaphore : super::super::Foundation:: HANDLE, lreleasecount : i32, lppreviouscount : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReleaseSemaphoreWhenCallbackReturns(pci : PTP_CALLBACK_INSTANCE, sem : super::super::Foundation:: HANDLE, crel : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResetEvent(hevent : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ResumeThread(hthread : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqAddPeriodicCallback(callback : RTWQPERIODICCALLBACK, context : ::windows_sys::core::IUnknown, key : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqAllocateSerialWorkQueue(workqueueidin : u32, workqueueidout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqAllocateWorkQueue(workqueuetype : RTWQ_WORKQUEUE_TYPE, workqueueid : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqBeginRegisterWorkQueueWithMMCSS(workqueueid : u32, usageclass : ::windows_sys::core::PCWSTR, dwtaskid : u32, lpriority : i32, donecallback : IRtwqAsyncCallback, donestate : ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqBeginUnregisterWorkQueueWithMMCSS(workqueueid : u32, donecallback : IRtwqAsyncCallback, donestate : ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtworkq.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtwqCancelDeadline(prequest : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqCancelWorkItem(key : u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqCreateAsyncResult(appobject : ::windows_sys::core::IUnknown, callback : IRtwqAsyncCallback, appstate : ::windows_sys::core::IUnknown, asyncresult : *mut IRtwqAsyncResult) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqEndRegisterWorkQueueWithMMCSS(result : IRtwqAsyncResult, taskid : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqGetWorkQueueMMCSSClass(workqueueid : u32, usageclass : ::windows_sys::core::PWSTR, usageclasslength : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqGetWorkQueueMMCSSPriority(workqueueid : u32, priority : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqGetWorkQueueMMCSSTaskId(workqueueid : u32, taskid : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqInvokeCallback(result : IRtwqAsyncResult) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtworkq.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtwqJoinWorkQueue(workqueueid : u32, hfile : super::super::Foundation:: HANDLE, out : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqLockPlatform() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqLockSharedWorkQueue(usageclass : ::windows_sys::core::PCWSTR, basepriority : i32, taskid : *mut u32, id : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqLockWorkQueue(workqueueid : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtworkq.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtwqPutWaitingWorkItem(hevent : super::super::Foundation:: HANDLE, lpriority : i32, result : IRtwqAsyncResult, key : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqPutWorkItem(dwqueue : u32, lpriority : i32, result : IRtwqAsyncResult) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqRegisterPlatformEvents(platformevents : IRtwqPlatformEvents) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqRegisterPlatformWithMMCSS(usageclass : ::windows_sys::core::PCWSTR, taskid : *mut u32, lpriority : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqRemovePeriodicCallback(dwkey : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqScheduleWorkItem(result : IRtwqAsyncResult, timeout : i64, key : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtworkq.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtwqSetDeadline(workqueueid : u32, deadlineinhns : i64, prequest : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtworkq.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtwqSetDeadline2(workqueueid : u32, deadlineinhns : i64, predeadlineinhns : i64, prequest : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtworkq.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtwqSetLongRunning(workqueueid : u32, enable : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqShutdown() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqStartup() -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("rtworkq.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtwqUnjoinWorkQueue(workqueueid : u32, hfile : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqUnlockPlatform() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqUnlockWorkQueue(workqueueid : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqUnregisterPlatformEvents(platformevents : IRtwqPlatformEvents) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("rtworkq.dll" "system" fn RtwqUnregisterPlatformFromMMCSS() -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn SetCriticalSectionSpinCount(lpcriticalsection : *mut CRITICAL_SECTION, dwspincount : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetEvent(hevent : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetEventWhenCallbackReturns(pci : PTP_CALLBACK_INSTANCE, evt : super::super::Foundation:: HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPriorityClass(hprocess : super::super::Foundation:: HANDLE, dwpriorityclass : PROCESS_CREATION_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessAffinityMask(hprocess : super::super::Foundation:: HANDLE, dwprocessaffinitymask : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessAffinityUpdateMode(hprocess : super::super::Foundation:: HANDLE, dwflags : PROCESS_AFFINITY_AUTO_UPDATE_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessDEPPolicy(dwflags : PROCESS_DEP_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn SetProcessDefaultCpuSetMasks(process : super::super::Foundation:: HANDLE, cpusetmasks : *const super::SystemInformation:: GROUP_AFFINITY, cpusetmaskcount : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessDefaultCpuSets(process : super::super::Foundation:: HANDLE, cpusetids : *const u32, cpusetidcount : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessDynamicEHContinuationTargets(process : super::super::Foundation:: HANDLE, numberoftargets : u16, targets : *mut PROCESS_DYNAMIC_EH_CONTINUATION_TARGET) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessDynamicEnforcedCetCompatibleRanges(process : super::super::Foundation:: HANDLE, numberofranges : u16, ranges : *mut PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessInformation(hprocess : super::super::Foundation:: HANDLE, processinformationclass : PROCESS_INFORMATION_CLASS, processinformation : *const ::core::ffi::c_void, processinformationsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessMitigationPolicy(mitigationpolicy : PROCESS_MITIGATION_POLICY, lpbuffer : *const ::core::ffi::c_void, dwlength : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessPriorityBoost(hprocess : super::super::Foundation:: HANDLE, bdisablepriorityboost : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessRestrictionExemption(fenableexemption : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessShutdownParameters(dwlevel : u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessWorkingSetSize(hprocess : super::super::Foundation:: HANDLE, dwminimumworkingsetsize : usize, dwmaximumworkingsetsize : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProtectedPolicy(policyguid : *const ::windows_sys::core::GUID, policyvalue : usize, oldpolicyvalue : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadAffinityMask(hthread : super::super::Foundation:: HANDLE, dwthreadaffinitymask : usize) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadDescription(hthread : super::super::Foundation:: HANDLE, lpthreaddescription : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn SetThreadGroupAffinity(hthread : super::super::Foundation:: HANDLE, groupaffinity : *const super::SystemInformation:: GROUP_AFFINITY, previousgroupaffinity : *mut super::SystemInformation:: GROUP_AFFINITY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadIdealProcessor(hthread : super::super::Foundation:: HANDLE, dwidealprocessor : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn SetThreadIdealProcessorEx(hthread : super::super::Foundation:: HANDLE, lpidealprocessor : *const super::Kernel:: PROCESSOR_NUMBER, lppreviousidealprocessor : *mut super::Kernel:: PROCESSOR_NUMBER) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadInformation(hthread : super::super::Foundation:: HANDLE, threadinformationclass : THREAD_INFORMATION_CLASS, threadinformation : *const ::core::ffi::c_void, threadinformationsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadPriority(hthread : super::super::Foundation:: HANDLE, npriority : THREAD_PRIORITY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadPriorityBoost(hthread : super::super::Foundation:: HANDLE, bdisablepriorityboost : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`"] fn SetThreadSelectedCpuSetMasks(thread : super::super::Foundation:: HANDLE, cpusetmasks : *const super::SystemInformation:: GROUP_AFFINITY, cpusetmaskcount : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadSelectedCpuSets(thread : super::super::Foundation:: HANDLE, cpusetids : *const u32, cpusetidcount : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadStackGuarantee(stacksizeinbytes : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadToken(thread : *const super::super::Foundation:: HANDLE, token : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadpoolStackInformation(ptpp : PTP_POOL, ptpsi : *const TP_POOL_STACK_INFORMATION) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn SetThreadpoolThreadMaximum(ptpp : PTP_POOL, cthrdmost : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadpoolThreadMinimum(ptpp : PTP_POOL, cthrdmic : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadpoolTimer(pti : PTP_TIMER, pftduetime : *const super::super::Foundation:: FILETIME, msperiod : u32, mswindowlength : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadpoolTimerEx(pti : PTP_TIMER, pftduetime : *const super::super::Foundation:: FILETIME, msperiod : u32, mswindowlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadpoolWait(pwa : PTP_WAIT, h : super::super::Foundation:: HANDLE, pfttimeout : *const super::super::Foundation:: FILETIME) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetThreadpoolWaitEx(pwa : PTP_WAIT, h : super::super::Foundation:: HANDLE, pfttimeout : *const super::super::Foundation:: FILETIME, reserved : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetTimerQueueTimer(timerqueue : super::super::Foundation:: HANDLE, callback : WAITORTIMERCALLBACK, parameter : *const ::core::ffi::c_void, duetime : u32, period : u32, preferio : super::super::Foundation:: BOOL) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetUmsThreadInformation(umsthread : *const ::core::ffi::c_void, umsthreadinfoclass : UMS_THREAD_INFO_CLASS, umsthreadinformation : *const ::core::ffi::c_void, umsthreadinformationlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWaitableTimer(htimer : super::super::Foundation:: HANDLE, lpduetime : *const i64, lperiod : i32, pfncompletionroutine : PTIMERAPCROUTINE, lpargtocompletionroutine : *const ::core::ffi::c_void, fresume : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWaitableTimerEx(htimer : super::super::Foundation:: HANDLE, lpduetime : *const i64, lperiod : i32, pfncompletionroutine : PTIMERAPCROUTINE, lpargtocompletionroutine : *const ::core::ffi::c_void, wakecontext : *const REASON_CONTEXT, tolerabledelay : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SignalObjectAndWait(hobjecttosignal : super::super::Foundation:: HANDLE, hobjecttowaiton : super::super::Foundation:: HANDLE, dwmilliseconds : u32, balertable : super::super::Foundation:: BOOL) -> super::super::Foundation:: WAIT_EVENT); +::windows_targets::link!("kernel32.dll" "system" fn Sleep(dwmilliseconds : u32) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn SleepConditionVariableCS(conditionvariable : *mut CONDITION_VARIABLE, criticalsection : *mut CRITICAL_SECTION, dwmilliseconds : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SleepConditionVariableSRW(conditionvariable : *mut CONDITION_VARIABLE, srwlock : *mut SRWLOCK, dwmilliseconds : u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SleepEx(dwmilliseconds : u32, balertable : super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn StartThreadpoolIo(pio : PTP_IO) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn SubmitThreadpoolWork(pwk : PTP_WORK) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SuspendThread(hthread : super::super::Foundation:: HANDLE) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn SwitchToFiber(lpfiber : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SwitchToThread() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TerminateProcess(hprocess : super::super::Foundation:: HANDLE, uexitcode : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TerminateThread(hthread : super::super::Foundation:: HANDLE, dwexitcode : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn TlsAlloc() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TlsFree(dwtlsindex : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn TlsGetValue(dwtlsindex : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TlsSetValue(dwtlsindex : u32, lptlsvalue : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TryAcquireSRWLockExclusive(srwlock : *mut SRWLOCK) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TryAcquireSRWLockShared(srwlock : *mut SRWLOCK) -> super::super::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn TryEnterCriticalSection(lpcriticalsection : *mut CRITICAL_SECTION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TrySubmitThreadpoolCallback(pfns : PTP_SIMPLE_CALLBACK, pv : *mut ::core::ffi::c_void, pcbe : *const TP_CALLBACK_ENVIRON_V3) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UmsThreadYield(schedulerparam : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterWait(waithandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterWaitEx(waithandle : super::super::Foundation:: HANDLE, completionevent : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdateProcThreadAttribute(lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST, dwflags : u32, attribute : usize, lpvalue : *const ::core::ffi::c_void, cbsize : usize, lppreviousvalue : *mut ::core::ffi::c_void, lpreturnsize : *const usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitForInputIdle(hprocess : super::super::Foundation:: HANDLE, dwmilliseconds : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitForMultipleObjects(ncount : u32, lphandles : *const super::super::Foundation:: HANDLE, bwaitall : super::super::Foundation:: BOOL, dwmilliseconds : u32) -> super::super::Foundation:: WAIT_EVENT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitForMultipleObjectsEx(ncount : u32, lphandles : *const super::super::Foundation:: HANDLE, bwaitall : super::super::Foundation:: BOOL, dwmilliseconds : u32, balertable : super::super::Foundation:: BOOL) -> super::super::Foundation:: WAIT_EVENT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitForSingleObject(hhandle : super::super::Foundation:: HANDLE, dwmilliseconds : u32) -> super::super::Foundation:: WAIT_EVENT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitForSingleObjectEx(hhandle : super::super::Foundation:: HANDLE, dwmilliseconds : u32, balertable : super::super::Foundation:: BOOL) -> super::super::Foundation:: WAIT_EVENT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitForThreadpoolIoCallbacks(pio : PTP_IO, fcancelpendingcallbacks : super::super::Foundation:: BOOL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitForThreadpoolTimerCallbacks(pti : PTP_TIMER, fcancelpendingcallbacks : super::super::Foundation:: BOOL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitForThreadpoolWaitCallbacks(pwa : PTP_WAIT, fcancelpendingcallbacks : super::super::Foundation:: BOOL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitForThreadpoolWorkCallbacks(pwk : PTP_WORK, fcancelpendingcallbacks : super::super::Foundation:: BOOL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-synch-l1-2-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitOnAddress(address : *const ::core::ffi::c_void, compareaddress : *const ::core::ffi::c_void, addresssize : usize, dwmilliseconds : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn WakeAllConditionVariable(conditionvariable : *mut CONDITION_VARIABLE) -> ()); +::windows_targets::link!("api-ms-win-core-synch-l1-2-0.dll" "system" fn WakeByAddressAll(address : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("api-ms-win-core-synch-l1-2-0.dll" "system" fn WakeByAddressSingle(address : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn WakeConditionVariable(conditionvariable : *mut CONDITION_VARIABLE) -> ()); +::windows_targets::link!("kernel32.dll" "system" fn WinExec(lpcmdline : ::windows_sys::core::PCSTR, ucmdshow : u32) -> u32); +::windows_targets::link!("api-ms-win-core-wow64-l1-1-1.dll" "system" fn Wow64SetThreadDefaultGuestMachine(machine : u16) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Wow64SuspendThread(hthread : super::super::Foundation:: HANDLE) -> u32); +pub type IRtwqAsyncCallback = *mut ::core::ffi::c_void; +pub type IRtwqAsyncResult = *mut ::core::ffi::c_void; +pub type IRtwqPlatformEvents = *mut ::core::ffi::c_void; +pub type RTWQASYNCRESULT = *mut ::core::ffi::c_void; +pub const ABOVE_NORMAL_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 32768u32; +pub const ALL_PROCESSOR_GROUPS: u16 = 65535u16; +pub const AVRT_PRIORITY_CRITICAL: AVRT_PRIORITY = 2i32; +pub const AVRT_PRIORITY_HIGH: AVRT_PRIORITY = 1i32; +pub const AVRT_PRIORITY_LOW: AVRT_PRIORITY = -1i32; +pub const AVRT_PRIORITY_NORMAL: AVRT_PRIORITY = 0i32; +pub const AVRT_PRIORITY_VERYLOW: AVRT_PRIORITY = -2i32; +pub const BELOW_NORMAL_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 16384u32; +pub const CONDITION_VARIABLE_LOCKMODE_SHARED: u32 = 1u32; +pub const CREATE_BREAKAWAY_FROM_JOB: PROCESS_CREATION_FLAGS = 16777216u32; +pub const CREATE_DEFAULT_ERROR_MODE: PROCESS_CREATION_FLAGS = 67108864u32; +pub const CREATE_EVENT_INITIAL_SET: CREATE_EVENT = 2u32; +pub const CREATE_EVENT_MANUAL_RESET: CREATE_EVENT = 1u32; +pub const CREATE_FORCEDOS: PROCESS_CREATION_FLAGS = 8192u32; +pub const CREATE_IGNORE_SYSTEM_DEFAULT: PROCESS_CREATION_FLAGS = 2147483648u32; +pub const CREATE_MUTEX_INITIAL_OWNER: u32 = 1u32; +pub const CREATE_NEW_CONSOLE: PROCESS_CREATION_FLAGS = 16u32; +pub const CREATE_NEW_PROCESS_GROUP: PROCESS_CREATION_FLAGS = 512u32; +pub const CREATE_NO_WINDOW: PROCESS_CREATION_FLAGS = 134217728u32; +pub const CREATE_PRESERVE_CODE_AUTHZ_LEVEL: PROCESS_CREATION_FLAGS = 33554432u32; +pub const CREATE_PROTECTED_PROCESS: PROCESS_CREATION_FLAGS = 262144u32; +pub const CREATE_SECURE_PROCESS: PROCESS_CREATION_FLAGS = 4194304u32; +pub const CREATE_SEPARATE_WOW_VDM: PROCESS_CREATION_FLAGS = 2048u32; +pub const CREATE_SHARED_WOW_VDM: PROCESS_CREATION_FLAGS = 4096u32; +pub const CREATE_SUSPENDED: PROCESS_CREATION_FLAGS = 4u32; +pub const CREATE_UNICODE_ENVIRONMENT: PROCESS_CREATION_FLAGS = 1024u32; +pub const CREATE_WAITABLE_TIMER_HIGH_RESOLUTION: u32 = 2u32; +pub const CREATE_WAITABLE_TIMER_MANUAL_RESET: u32 = 1u32; +pub const DEBUG_ONLY_THIS_PROCESS: PROCESS_CREATION_FLAGS = 2u32; +pub const DEBUG_PROCESS: PROCESS_CREATION_FLAGS = 1u32; +pub const DETACHED_PROCESS: PROCESS_CREATION_FLAGS = 8u32; +pub const EVENT_ALL_ACCESS: SYNCHRONIZATION_ACCESS_RIGHTS = 2031619u32; +pub const EVENT_MODIFY_STATE: SYNCHRONIZATION_ACCESS_RIGHTS = 2u32; +pub const EXTENDED_STARTUPINFO_PRESENT: PROCESS_CREATION_FLAGS = 524288u32; +pub const FLS_OUT_OF_INDEXES: u32 = 4294967295u32; +pub const GR_GDIOBJECTS: GET_GUI_RESOURCES_FLAGS = 0u32; +pub const GR_GDIOBJECTS_PEAK: GET_GUI_RESOURCES_FLAGS = 2u32; +pub const GR_USEROBJECTS: GET_GUI_RESOURCES_FLAGS = 1u32; +pub const GR_USEROBJECTS_PEAK: GET_GUI_RESOURCES_FLAGS = 4u32; +pub const HIGH_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 128u32; +pub const IDLE_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 64u32; +pub const INFINITE: u32 = 4294967295u32; +pub const INHERIT_CALLER_PRIORITY: PROCESS_CREATION_FLAGS = 131072u32; +pub const INHERIT_PARENT_AFFINITY: PROCESS_CREATION_FLAGS = 65536u32; +pub const INIT_ONCE_ASYNC: u32 = 2u32; +pub const INIT_ONCE_CHECK_ONLY: u32 = 1u32; +pub const INIT_ONCE_CTX_RESERVED_BITS: u32 = 2u32; +pub const INIT_ONCE_INIT_FAILED: u32 = 4u32; +pub const KernelEnabled: MACHINE_ATTRIBUTES = 2i32; +pub const LOGON_NETCREDENTIALS_ONLY: CREATE_PROCESS_LOGON_FLAGS = 2u32; +pub const LOGON_WITH_PROFILE: CREATE_PROCESS_LOGON_FLAGS = 1u32; +pub const MEMORY_PRIORITY_BELOW_NORMAL: MEMORY_PRIORITY = 4u32; +pub const MEMORY_PRIORITY_LOW: MEMORY_PRIORITY = 2u32; +pub const MEMORY_PRIORITY_MEDIUM: MEMORY_PRIORITY = 3u32; +pub const MEMORY_PRIORITY_NORMAL: MEMORY_PRIORITY = 5u32; +pub const MEMORY_PRIORITY_VERY_LOW: MEMORY_PRIORITY = 1u32; +pub const MUTEX_ALL_ACCESS: SYNCHRONIZATION_ACCESS_RIGHTS = 2031617u32; +pub const MUTEX_MODIFY_STATE: SYNCHRONIZATION_ACCESS_RIGHTS = 1u32; +pub const MaxProcessMitigationPolicy: PROCESS_MITIGATION_POLICY = 19i32; +pub const NORMAL_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 32u32; +pub const PF_3DNOW_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 7u32; +pub const PF_ALPHA_BYTE_INSTRUCTIONS: PROCESSOR_FEATURE_ID = 5u32; +pub const PF_ARM_64BIT_LOADSTORE_ATOMIC: PROCESSOR_FEATURE_ID = 25u32; +pub const PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE: PROCESSOR_FEATURE_ID = 24u32; +pub const PF_ARM_EXTERNAL_CACHE_AVAILABLE: PROCESSOR_FEATURE_ID = 26u32; +pub const PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 27u32; +pub const PF_ARM_NEON_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 19u32; +pub const PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 34u32; +pub const PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 43u32; +pub const PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 44u32; +pub const PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 45u32; +pub const PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 31u32; +pub const PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 30u32; +pub const PF_ARM_V8_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 29u32; +pub const PF_ARM_VFP_32_REGISTERS_AVAILABLE: PROCESSOR_FEATURE_ID = 18u32; +pub const PF_AVX2_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 40u32; +pub const PF_AVX512F_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 41u32; +pub const PF_AVX_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 39u32; +pub const PF_CHANNELS_ENABLED: PROCESSOR_FEATURE_ID = 16u32; +pub const PF_COMPARE64_EXCHANGE128: PROCESSOR_FEATURE_ID = 15u32; +pub const PF_COMPARE_EXCHANGE128: PROCESSOR_FEATURE_ID = 14u32; +pub const PF_COMPARE_EXCHANGE_DOUBLE: PROCESSOR_FEATURE_ID = 2u32; +pub const PF_ERMS_AVAILABLE: PROCESSOR_FEATURE_ID = 42u32; +pub const PF_FASTFAIL_AVAILABLE: PROCESSOR_FEATURE_ID = 23u32; +pub const PF_FLOATING_POINT_EMULATED: PROCESSOR_FEATURE_ID = 1u32; +pub const PF_FLOATING_POINT_PRECISION_ERRATA: PROCESSOR_FEATURE_ID = 0u32; +pub const PF_MMX_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 3u32; +pub const PF_MONITORX_INSTRUCTION_AVAILABLE: PROCESSOR_FEATURE_ID = 35u32; +pub const PF_NX_ENABLED: PROCESSOR_FEATURE_ID = 12u32; +pub const PF_PAE_ENABLED: PROCESSOR_FEATURE_ID = 9u32; +pub const PF_PPC_MOVEMEM_64BIT_OK: PROCESSOR_FEATURE_ID = 4u32; +pub const PF_RDPID_INSTRUCTION_AVAILABLE: PROCESSOR_FEATURE_ID = 33u32; +pub const PF_RDRAND_INSTRUCTION_AVAILABLE: PROCESSOR_FEATURE_ID = 28u32; +pub const PF_RDTSCP_INSTRUCTION_AVAILABLE: PROCESSOR_FEATURE_ID = 32u32; +pub const PF_RDTSC_INSTRUCTION_AVAILABLE: PROCESSOR_FEATURE_ID = 8u32; +pub const PF_RDWRFSGSBASE_AVAILABLE: PROCESSOR_FEATURE_ID = 22u32; +pub const PF_SECOND_LEVEL_ADDRESS_TRANSLATION: PROCESSOR_FEATURE_ID = 20u32; +pub const PF_SSE3_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 13u32; +pub const PF_SSE4_1_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 37u32; +pub const PF_SSE4_2_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 38u32; +pub const PF_SSE_DAZ_MODE_AVAILABLE: PROCESSOR_FEATURE_ID = 11u32; +pub const PF_SSSE3_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 36u32; +pub const PF_VIRT_FIRMWARE_ENABLED: PROCESSOR_FEATURE_ID = 21u32; +pub const PF_XMMI64_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 10u32; +pub const PF_XMMI_INSTRUCTIONS_AVAILABLE: PROCESSOR_FEATURE_ID = 6u32; +pub const PF_XSAVE_ENABLED: PROCESSOR_FEATURE_ID = 17u32; +pub const PMETypeFailFastOnCommitFailure: PROCESS_MEMORY_EXHAUSTION_TYPE = 0i32; +pub const PMETypeMax: PROCESS_MEMORY_EXHAUSTION_TYPE = 1i32; +pub const PME_CURRENT_VERSION: u32 = 1u32; +pub const PME_FAILFAST_ON_COMMIT_FAIL_DISABLE: u32 = 0u32; +pub const PME_FAILFAST_ON_COMMIT_FAIL_ENABLE: u32 = 1u32; +pub const POWER_REQUEST_CONTEXT_DETAILED_STRING: POWER_REQUEST_CONTEXT_FLAGS = 2u32; +pub const POWER_REQUEST_CONTEXT_SIMPLE_STRING: POWER_REQUEST_CONTEXT_FLAGS = 1u32; +pub const PRIVATE_NAMESPACE_FLAG_DESTROY: u32 = 1u32; +pub const PROCESS_AFFINITY_DISABLE_AUTO_UPDATE: PROCESS_AFFINITY_AUTO_UPDATE_FLAGS = 0u32; +pub const PROCESS_AFFINITY_ENABLE_AUTO_UPDATE: PROCESS_AFFINITY_AUTO_UPDATE_FLAGS = 1u32; +pub const PROCESS_ALL_ACCESS: PROCESS_ACCESS_RIGHTS = 2097151u32; +pub const PROCESS_CREATE_PROCESS: PROCESS_ACCESS_RIGHTS = 128u32; +pub const PROCESS_CREATE_THREAD: PROCESS_ACCESS_RIGHTS = 2u32; +pub const PROCESS_DELETE: PROCESS_ACCESS_RIGHTS = 65536u32; +pub const PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION: PROCESS_DEP_FLAGS = 2u32; +pub const PROCESS_DEP_ENABLE: PROCESS_DEP_FLAGS = 1u32; +pub const PROCESS_DEP_NONE: PROCESS_DEP_FLAGS = 0u32; +pub const PROCESS_DUP_HANDLE: PROCESS_ACCESS_RIGHTS = 64u32; +pub const PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND: u32 = 1u32; +pub const PROCESS_LEAP_SECOND_INFO_VALID_FLAGS: u32 = 1u32; +pub const PROCESS_MODE_BACKGROUND_BEGIN: PROCESS_CREATION_FLAGS = 1048576u32; +pub const PROCESS_MODE_BACKGROUND_END: PROCESS_CREATION_FLAGS = 2097152u32; +pub const PROCESS_NAME_NATIVE: PROCESS_NAME_FORMAT = 1u32; +pub const PROCESS_NAME_WIN32: PROCESS_NAME_FORMAT = 0u32; +pub const PROCESS_POWER_THROTTLING_CURRENT_VERSION: u32 = 1u32; +pub const PROCESS_POWER_THROTTLING_EXECUTION_SPEED: u32 = 1u32; +pub const PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION: u32 = 4u32; +pub const PROCESS_QUERY_INFORMATION: PROCESS_ACCESS_RIGHTS = 1024u32; +pub const PROCESS_QUERY_LIMITED_INFORMATION: PROCESS_ACCESS_RIGHTS = 4096u32; +pub const PROCESS_READ_CONTROL: PROCESS_ACCESS_RIGHTS = 131072u32; +pub const PROCESS_SET_INFORMATION: PROCESS_ACCESS_RIGHTS = 512u32; +pub const PROCESS_SET_LIMITED_INFORMATION: PROCESS_ACCESS_RIGHTS = 8192u32; +pub const PROCESS_SET_QUOTA: PROCESS_ACCESS_RIGHTS = 256u32; +pub const PROCESS_SET_SESSIONID: PROCESS_ACCESS_RIGHTS = 4u32; +pub const PROCESS_STANDARD_RIGHTS_REQUIRED: PROCESS_ACCESS_RIGHTS = 983040u32; +pub const PROCESS_SUSPEND_RESUME: PROCESS_ACCESS_RIGHTS = 2048u32; +pub const PROCESS_SYNCHRONIZE: PROCESS_ACCESS_RIGHTS = 1048576u32; +pub const PROCESS_TERMINATE: PROCESS_ACCESS_RIGHTS = 1u32; +pub const PROCESS_VM_OPERATION: PROCESS_ACCESS_RIGHTS = 8u32; +pub const PROCESS_VM_READ: PROCESS_ACCESS_RIGHTS = 16u32; +pub const PROCESS_VM_WRITE: PROCESS_ACCESS_RIGHTS = 32u32; +pub const PROCESS_WRITE_DAC: PROCESS_ACCESS_RIGHTS = 262144u32; +pub const PROCESS_WRITE_OWNER: PROCESS_ACCESS_RIGHTS = 524288u32; +pub const PROC_THREAD_ATTRIBUTE_ALL_APPLICATION_PACKAGES_POLICY: u32 = 131087u32; +pub const PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY: u32 = 131086u32; +pub const PROC_THREAD_ATTRIBUTE_COMPONENT_FILTER: u32 = 131098u32; +pub const PROC_THREAD_ATTRIBUTE_DESKTOP_APP_POLICY: u32 = 131090u32; +pub const PROC_THREAD_ATTRIBUTE_ENABLE_OPTIONAL_XSTATE_FEATURES: u32 = 196635u32; +pub const PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY: u32 = 196611u32; +pub const PROC_THREAD_ATTRIBUTE_HANDLE_LIST: u32 = 131074u32; +pub const PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR: u32 = 196613u32; +pub const PROC_THREAD_ATTRIBUTE_JOB_LIST: u32 = 131085u32; +pub const PROC_THREAD_ATTRIBUTE_MACHINE_TYPE: u32 = 131097u32; +pub const PROC_THREAD_ATTRIBUTE_MITIGATION_AUDIT_POLICY: u32 = 131096u32; +pub const PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY: u32 = 131079u32; +pub const PROC_THREAD_ATTRIBUTE_PARENT_PROCESS: u32 = 131072u32; +pub const PROC_THREAD_ATTRIBUTE_PREFERRED_NODE: u32 = 131076u32; +pub const PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL: u32 = 131083u32; +pub const PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE: u32 = 131094u32; +pub const PROC_THREAD_ATTRIBUTE_REPLACE_VALUE: u32 = 1u32; +pub const PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES: u32 = 131081u32; +pub const PROC_THREAD_ATTRIBUTE_UMS_THREAD: u32 = 196614u32; +pub const PROC_THREAD_ATTRIBUTE_WIN32K_FILTER: u32 = 131088u32; +pub const PROFILE_KERNEL: PROCESS_CREATION_FLAGS = 536870912u32; +pub const PROFILE_SERVER: PROCESS_CREATION_FLAGS = 1073741824u32; +pub const PROFILE_USER: PROCESS_CREATION_FLAGS = 268435456u32; +pub const PROTECTION_LEVEL_ANTIMALWARE_LIGHT: PROCESS_PROTECTION_LEVEL = 3u32; +pub const PROTECTION_LEVEL_AUTHENTICODE: PROCESS_PROTECTION_LEVEL = 7u32; +pub const PROTECTION_LEVEL_CODEGEN_LIGHT: PROCESS_PROTECTION_LEVEL = 6u32; +pub const PROTECTION_LEVEL_LSA_LIGHT: PROCESS_PROTECTION_LEVEL = 4u32; +pub const PROTECTION_LEVEL_NONE: PROCESS_PROTECTION_LEVEL = 4294967294u32; +pub const PROTECTION_LEVEL_PPL_APP: PROCESS_PROTECTION_LEVEL = 8u32; +pub const PROTECTION_LEVEL_WINDOWS: PROCESS_PROTECTION_LEVEL = 1u32; +pub const PROTECTION_LEVEL_WINDOWS_LIGHT: PROCESS_PROTECTION_LEVEL = 2u32; +pub const PROTECTION_LEVEL_WINTCB: PROCESS_PROTECTION_LEVEL = 5u32; +pub const PROTECTION_LEVEL_WINTCB_LIGHT: PROCESS_PROTECTION_LEVEL = 0u32; +pub const ProcThreadAttributeAllApplicationPackagesPolicy: PROC_THREAD_ATTRIBUTE_NUM = 15u32; +pub const ProcThreadAttributeChildProcessPolicy: PROC_THREAD_ATTRIBUTE_NUM = 14u32; +pub const ProcThreadAttributeComponentFilter: PROC_THREAD_ATTRIBUTE_NUM = 26u32; +pub const ProcThreadAttributeDesktopAppPolicy: PROC_THREAD_ATTRIBUTE_NUM = 18u32; +pub const ProcThreadAttributeEnableOptionalXStateFeatures: PROC_THREAD_ATTRIBUTE_NUM = 27u32; +pub const ProcThreadAttributeGroupAffinity: PROC_THREAD_ATTRIBUTE_NUM = 3u32; +pub const ProcThreadAttributeHandleList: PROC_THREAD_ATTRIBUTE_NUM = 2u32; +pub const ProcThreadAttributeIdealProcessor: PROC_THREAD_ATTRIBUTE_NUM = 5u32; +pub const ProcThreadAttributeJobList: PROC_THREAD_ATTRIBUTE_NUM = 13u32; +pub const ProcThreadAttributeMachineType: PROC_THREAD_ATTRIBUTE_NUM = 25u32; +pub const ProcThreadAttributeMitigationAuditPolicy: PROC_THREAD_ATTRIBUTE_NUM = 24u32; +pub const ProcThreadAttributeMitigationPolicy: PROC_THREAD_ATTRIBUTE_NUM = 7u32; +pub const ProcThreadAttributeParentProcess: PROC_THREAD_ATTRIBUTE_NUM = 0u32; +pub const ProcThreadAttributePreferredNode: PROC_THREAD_ATTRIBUTE_NUM = 4u32; +pub const ProcThreadAttributeProtectionLevel: PROC_THREAD_ATTRIBUTE_NUM = 11u32; +pub const ProcThreadAttributePseudoConsole: PROC_THREAD_ATTRIBUTE_NUM = 22u32; +pub const ProcThreadAttributeSafeOpenPromptOriginClaim: PROC_THREAD_ATTRIBUTE_NUM = 17u32; +pub const ProcThreadAttributeSecurityCapabilities: PROC_THREAD_ATTRIBUTE_NUM = 9u32; +pub const ProcThreadAttributeTrustedApp: PROC_THREAD_ATTRIBUTE_NUM = 29u32; +pub const ProcThreadAttributeUmsThread: PROC_THREAD_ATTRIBUTE_NUM = 6u32; +pub const ProcThreadAttributeWin32kFilter: PROC_THREAD_ATTRIBUTE_NUM = 16u32; +pub const ProcessASLRPolicy: PROCESS_MITIGATION_POLICY = 1i32; +pub const ProcessAppMemoryInfo: PROCESS_INFORMATION_CLASS = 2i32; +pub const ProcessChildProcessPolicy: PROCESS_MITIGATION_POLICY = 13i32; +pub const ProcessControlFlowGuardPolicy: PROCESS_MITIGATION_POLICY = 7i32; +pub const ProcessDEPPolicy: PROCESS_MITIGATION_POLICY = 0i32; +pub const ProcessDynamicCodePolicy: PROCESS_MITIGATION_POLICY = 2i32; +pub const ProcessExtensionPointDisablePolicy: PROCESS_MITIGATION_POLICY = 6i32; +pub const ProcessFontDisablePolicy: PROCESS_MITIGATION_POLICY = 9i32; +pub const ProcessImageLoadPolicy: PROCESS_MITIGATION_POLICY = 10i32; +pub const ProcessInPrivateInfo: PROCESS_INFORMATION_CLASS = 3i32; +pub const ProcessInformationClassMax: PROCESS_INFORMATION_CLASS = 10i32; +pub const ProcessLeapSecondInfo: PROCESS_INFORMATION_CLASS = 8i32; +pub const ProcessMachineTypeInfo: PROCESS_INFORMATION_CLASS = 9i32; +pub const ProcessMemoryExhaustionInfo: PROCESS_INFORMATION_CLASS = 1i32; +pub const ProcessMemoryPriority: PROCESS_INFORMATION_CLASS = 0i32; +pub const ProcessMitigationOptionsMask: PROCESS_MITIGATION_POLICY = 5i32; +pub const ProcessPayloadRestrictionPolicy: PROCESS_MITIGATION_POLICY = 12i32; +pub const ProcessPowerThrottling: PROCESS_INFORMATION_CLASS = 4i32; +pub const ProcessProtectionLevelInfo: PROCESS_INFORMATION_CLASS = 7i32; +pub const ProcessRedirectionTrustPolicy: PROCESS_MITIGATION_POLICY = 16i32; +pub const ProcessReservedValue1: PROCESS_INFORMATION_CLASS = 5i32; +pub const ProcessSEHOPPolicy: PROCESS_MITIGATION_POLICY = 18i32; +pub const ProcessSideChannelIsolationPolicy: PROCESS_MITIGATION_POLICY = 14i32; +pub const ProcessSignaturePolicy: PROCESS_MITIGATION_POLICY = 8i32; +pub const ProcessStrictHandleCheckPolicy: PROCESS_MITIGATION_POLICY = 3i32; +pub const ProcessSystemCallDisablePolicy: PROCESS_MITIGATION_POLICY = 4i32; +pub const ProcessSystemCallFilterPolicy: PROCESS_MITIGATION_POLICY = 11i32; +pub const ProcessTelemetryCoverageInfo: PROCESS_INFORMATION_CLASS = 6i32; +pub const ProcessUserPointerAuthPolicy: PROCESS_MITIGATION_POLICY = 17i32; +pub const ProcessUserShadowStackPolicy: PROCESS_MITIGATION_POLICY = 15i32; +pub const QUEUE_USER_APC_CALLBACK_DATA_CONTEXT: QUEUE_USER_APC_FLAGS = 65536i32; +pub const QUEUE_USER_APC_FLAGS_NONE: QUEUE_USER_APC_FLAGS = 0i32; +pub const QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC: QUEUE_USER_APC_FLAGS = 1i32; +pub const REALTIME_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 256u32; +pub const RTWQ_MULTITHREADED_WORKQUEUE: RTWQ_WORKQUEUE_TYPE = 2i32; +pub const RTWQ_STANDARD_WORKQUEUE: RTWQ_WORKQUEUE_TYPE = 0i32; +pub const RTWQ_WINDOW_WORKQUEUE: RTWQ_WORKQUEUE_TYPE = 1i32; +pub const SEMAPHORE_ALL_ACCESS: SYNCHRONIZATION_ACCESS_RIGHTS = 2031619u32; +pub const SEMAPHORE_MODIFY_STATE: SYNCHRONIZATION_ACCESS_RIGHTS = 2u32; +pub const STACK_SIZE_PARAM_IS_A_RESERVATION: THREAD_CREATION_FLAGS = 65536u32; +pub const STARTF_FORCEOFFFEEDBACK: STARTUPINFOW_FLAGS = 128u32; +pub const STARTF_FORCEONFEEDBACK: STARTUPINFOW_FLAGS = 64u32; +pub const STARTF_PREVENTPINNING: STARTUPINFOW_FLAGS = 8192u32; +pub const STARTF_RUNFULLSCREEN: STARTUPINFOW_FLAGS = 32u32; +pub const STARTF_TITLEISAPPID: STARTUPINFOW_FLAGS = 4096u32; +pub const STARTF_TITLEISLINKNAME: STARTUPINFOW_FLAGS = 2048u32; +pub const STARTF_UNTRUSTEDSOURCE: STARTUPINFOW_FLAGS = 32768u32; +pub const STARTF_USECOUNTCHARS: STARTUPINFOW_FLAGS = 8u32; +pub const STARTF_USEFILLATTRIBUTE: STARTUPINFOW_FLAGS = 16u32; +pub const STARTF_USEHOTKEY: STARTUPINFOW_FLAGS = 512u32; +pub const STARTF_USEPOSITION: STARTUPINFOW_FLAGS = 4u32; +pub const STARTF_USESHOWWINDOW: STARTUPINFOW_FLAGS = 1u32; +pub const STARTF_USESIZE: STARTUPINFOW_FLAGS = 2u32; +pub const STARTF_USESTDHANDLES: STARTUPINFOW_FLAGS = 256u32; +pub const SYNCHRONIZATION_BARRIER_FLAGS_BLOCK_ONLY: u32 = 2u32; +pub const SYNCHRONIZATION_BARRIER_FLAGS_NO_DELETE: u32 = 4u32; +pub const SYNCHRONIZATION_BARRIER_FLAGS_SPIN_ONLY: u32 = 1u32; +pub const SYNCHRONIZATION_DELETE: SYNCHRONIZATION_ACCESS_RIGHTS = 65536u32; +pub const SYNCHRONIZATION_READ_CONTROL: SYNCHRONIZATION_ACCESS_RIGHTS = 131072u32; +pub const SYNCHRONIZATION_SYNCHRONIZE: SYNCHRONIZATION_ACCESS_RIGHTS = 1048576u32; +pub const SYNCHRONIZATION_WRITE_DAC: SYNCHRONIZATION_ACCESS_RIGHTS = 262144u32; +pub const SYNCHRONIZATION_WRITE_OWNER: SYNCHRONIZATION_ACCESS_RIGHTS = 524288u32; +pub const THREAD_ALL_ACCESS: THREAD_ACCESS_RIGHTS = 2097151u32; +pub const THREAD_CREATE_RUN_IMMEDIATELY: THREAD_CREATION_FLAGS = 0u32; +pub const THREAD_CREATE_SUSPENDED: THREAD_CREATION_FLAGS = 4u32; +pub const THREAD_DELETE: THREAD_ACCESS_RIGHTS = 65536u32; +pub const THREAD_DIRECT_IMPERSONATION: THREAD_ACCESS_RIGHTS = 512u32; +pub const THREAD_GET_CONTEXT: THREAD_ACCESS_RIGHTS = 8u32; +pub const THREAD_IMPERSONATE: THREAD_ACCESS_RIGHTS = 256u32; +pub const THREAD_MODE_BACKGROUND_BEGIN: THREAD_PRIORITY = 65536i32; +pub const THREAD_MODE_BACKGROUND_END: THREAD_PRIORITY = 131072i32; +pub const THREAD_POWER_THROTTLING_CURRENT_VERSION: u32 = 1u32; +pub const THREAD_POWER_THROTTLING_EXECUTION_SPEED: u32 = 1u32; +pub const THREAD_POWER_THROTTLING_VALID_FLAGS: u32 = 1u32; +pub const THREAD_PRIORITY_ABOVE_NORMAL: THREAD_PRIORITY = 1i32; +pub const THREAD_PRIORITY_BELOW_NORMAL: THREAD_PRIORITY = -1i32; +pub const THREAD_PRIORITY_HIGHEST: THREAD_PRIORITY = 2i32; +pub const THREAD_PRIORITY_IDLE: THREAD_PRIORITY = -15i32; +pub const THREAD_PRIORITY_LOWEST: THREAD_PRIORITY = -2i32; +pub const THREAD_PRIORITY_MIN: THREAD_PRIORITY = -2i32; +pub const THREAD_PRIORITY_NORMAL: THREAD_PRIORITY = 0i32; +pub const THREAD_PRIORITY_TIME_CRITICAL: THREAD_PRIORITY = 15i32; +pub const THREAD_QUERY_INFORMATION: THREAD_ACCESS_RIGHTS = 64u32; +pub const THREAD_QUERY_LIMITED_INFORMATION: THREAD_ACCESS_RIGHTS = 2048u32; +pub const THREAD_READ_CONTROL: THREAD_ACCESS_RIGHTS = 131072u32; +pub const THREAD_RESUME: THREAD_ACCESS_RIGHTS = 4096u32; +pub const THREAD_SET_CONTEXT: THREAD_ACCESS_RIGHTS = 16u32; +pub const THREAD_SET_INFORMATION: THREAD_ACCESS_RIGHTS = 32u32; +pub const THREAD_SET_LIMITED_INFORMATION: THREAD_ACCESS_RIGHTS = 1024u32; +pub const THREAD_SET_THREAD_TOKEN: THREAD_ACCESS_RIGHTS = 128u32; +pub const THREAD_STANDARD_RIGHTS_REQUIRED: THREAD_ACCESS_RIGHTS = 983040u32; +pub const THREAD_SUSPEND_RESUME: THREAD_ACCESS_RIGHTS = 2u32; +pub const THREAD_SYNCHRONIZE: THREAD_ACCESS_RIGHTS = 1048576u32; +pub const THREAD_TERMINATE: THREAD_ACCESS_RIGHTS = 1u32; +pub const THREAD_WRITE_DAC: THREAD_ACCESS_RIGHTS = 262144u32; +pub const THREAD_WRITE_OWNER: THREAD_ACCESS_RIGHTS = 524288u32; +pub const TIMER_ALL_ACCESS: SYNCHRONIZATION_ACCESS_RIGHTS = 2031619u32; +pub const TIMER_MODIFY_STATE: SYNCHRONIZATION_ACCESS_RIGHTS = 2u32; +pub const TIMER_QUERY_STATE: SYNCHRONIZATION_ACCESS_RIGHTS = 1u32; +pub const TLS_OUT_OF_INDEXES: u32 = 4294967295u32; +pub const TP_CALLBACK_PRIORITY_COUNT: TP_CALLBACK_PRIORITY = 3i32; +pub const TP_CALLBACK_PRIORITY_HIGH: TP_CALLBACK_PRIORITY = 0i32; +pub const TP_CALLBACK_PRIORITY_INVALID: TP_CALLBACK_PRIORITY = 3i32; +pub const TP_CALLBACK_PRIORITY_LOW: TP_CALLBACK_PRIORITY = 2i32; +pub const TP_CALLBACK_PRIORITY_NORMAL: TP_CALLBACK_PRIORITY = 1i32; +pub const ThreadAbsoluteCpuPriority: THREAD_INFORMATION_CLASS = 1i32; +pub const ThreadDynamicCodePolicy: THREAD_INFORMATION_CLASS = 2i32; +pub const ThreadInformationClassMax: THREAD_INFORMATION_CLASS = 4i32; +pub const ThreadMemoryPriority: THREAD_INFORMATION_CLASS = 0i32; +pub const ThreadPowerThrottling: THREAD_INFORMATION_CLASS = 3i32; +pub const UmsThreadAffinity: UMS_THREAD_INFO_CLASS = 3i32; +pub const UmsThreadInvalidInfoClass: UMS_THREAD_INFO_CLASS = 0i32; +pub const UmsThreadIsSuspended: UMS_THREAD_INFO_CLASS = 5i32; +pub const UmsThreadIsTerminated: UMS_THREAD_INFO_CLASS = 6i32; +pub const UmsThreadMaxInfoClass: UMS_THREAD_INFO_CLASS = 7i32; +pub const UmsThreadPriority: UMS_THREAD_INFO_CLASS = 2i32; +pub const UmsThreadTeb: UMS_THREAD_INFO_CLASS = 4i32; +pub const UmsThreadUserContext: UMS_THREAD_INFO_CLASS = 1i32; +pub const UserEnabled: MACHINE_ATTRIBUTES = 1i32; +pub const WT_EXECUTEDEFAULT: WORKER_THREAD_FLAGS = 0u32; +pub const WT_EXECUTEINIOTHREAD: WORKER_THREAD_FLAGS = 1u32; +pub const WT_EXECUTEINPERSISTENTTHREAD: WORKER_THREAD_FLAGS = 128u32; +pub const WT_EXECUTEINTIMERTHREAD: WORKER_THREAD_FLAGS = 32u32; +pub const WT_EXECUTEINWAITTHREAD: WORKER_THREAD_FLAGS = 4u32; +pub const WT_EXECUTELONGFUNCTION: WORKER_THREAD_FLAGS = 16u32; +pub const WT_EXECUTEONLYONCE: WORKER_THREAD_FLAGS = 8u32; +pub const WT_TRANSFER_IMPERSONATION: WORKER_THREAD_FLAGS = 256u32; +pub const Wow64Container: MACHINE_ATTRIBUTES = 4i32; +pub type AVRT_PRIORITY = i32; +pub type CREATE_EVENT = u32; +pub type CREATE_PROCESS_LOGON_FLAGS = u32; +pub type GET_GUI_RESOURCES_FLAGS = u32; +pub type MACHINE_ATTRIBUTES = i32; +pub type MEMORY_PRIORITY = u32; +pub type POWER_REQUEST_CONTEXT_FLAGS = u32; +pub type PROCESSOR_FEATURE_ID = u32; +pub type PROCESS_ACCESS_RIGHTS = u32; +pub type PROCESS_AFFINITY_AUTO_UPDATE_FLAGS = u32; +pub type PROCESS_CREATION_FLAGS = u32; +pub type PROCESS_DEP_FLAGS = u32; +pub type PROCESS_INFORMATION_CLASS = i32; +pub type PROCESS_MEMORY_EXHAUSTION_TYPE = i32; +pub type PROCESS_MITIGATION_POLICY = i32; +pub type PROCESS_NAME_FORMAT = u32; +pub type PROCESS_PROTECTION_LEVEL = u32; +pub type PROC_THREAD_ATTRIBUTE_NUM = u32; +pub type QUEUE_USER_APC_FLAGS = i32; +pub type RTWQ_WORKQUEUE_TYPE = i32; +pub type STARTUPINFOW_FLAGS = u32; +pub type SYNCHRONIZATION_ACCESS_RIGHTS = u32; +pub type THREAD_ACCESS_RIGHTS = u32; +pub type THREAD_CREATION_FLAGS = u32; +pub type THREAD_INFORMATION_CLASS = i32; +pub type THREAD_PRIORITY = i32; +pub type TP_CALLBACK_PRIORITY = i32; +pub type UMS_THREAD_INFO_CLASS = i32; +pub type WORKER_THREAD_FLAGS = u32; +#[repr(C)] +pub struct APP_MEMORY_INFORMATION { + pub AvailableCommit: u64, + pub PrivateCommitUsage: u64, + pub PeakPrivateCommitUsage: u64, + pub TotalCommitUsage: u64, +} +impl ::core::marker::Copy for APP_MEMORY_INFORMATION {} +impl ::core::clone::Clone for APP_MEMORY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONDITION_VARIABLE { + pub Ptr: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for CONDITION_VARIABLE {} +impl ::core::clone::Clone for CONDITION_VARIABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct CRITICAL_SECTION { + pub DebugInfo: *mut CRITICAL_SECTION_DEBUG, + pub LockCount: i32, + pub RecursionCount: i32, + pub OwningThread: super::super::Foundation::HANDLE, + pub LockSemaphore: super::super::Foundation::HANDLE, + pub SpinCount: usize, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for CRITICAL_SECTION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for CRITICAL_SECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct CRITICAL_SECTION_DEBUG { + pub Type: u16, + pub CreatorBackTraceIndex: u16, + pub CriticalSection: *mut CRITICAL_SECTION, + pub ProcessLocksList: super::Kernel::LIST_ENTRY, + pub EntryCount: u32, + pub ContentionCount: u32, + pub Flags: u32, + pub CreatorBackTraceIndexHigh: u16, + pub Identifier: u16, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for CRITICAL_SECTION_DEBUG {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for CRITICAL_SECTION_DEBUG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union INIT_ONCE { + pub Ptr: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for INIT_ONCE {} +impl ::core::clone::Clone for INIT_ONCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IO_COUNTERS { + pub ReadOperationCount: u64, + pub WriteOperationCount: u64, + pub OtherOperationCount: u64, + pub ReadTransferCount: u64, + pub WriteTransferCount: u64, + pub OtherTransferCount: u64, +} +impl ::core::marker::Copy for IO_COUNTERS {} +impl ::core::clone::Clone for IO_COUNTERS { + fn clone(&self) -> Self { + *self + } +} +pub type LPPROC_THREAD_ATTRIBUTE_LIST = *mut ::core::ffi::c_void; +#[repr(C)] +pub struct MEMORY_PRIORITY_INFORMATION { + pub MemoryPriority: MEMORY_PRIORITY, +} +impl ::core::marker::Copy for MEMORY_PRIORITY_INFORMATION {} +impl ::core::clone::Clone for MEMORY_PRIORITY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct PEB { + pub Reserved1: [u8; 2], + pub BeingDebugged: u8, + pub Reserved2: [u8; 1], + pub Reserved3: [*mut ::core::ffi::c_void; 2], + pub Ldr: *mut PEB_LDR_DATA, + pub ProcessParameters: *mut RTL_USER_PROCESS_PARAMETERS, + pub Reserved4: [*mut ::core::ffi::c_void; 3], + pub AtlThunkSListPtr: *mut ::core::ffi::c_void, + pub Reserved5: *mut ::core::ffi::c_void, + pub Reserved6: u32, + pub Reserved7: *mut ::core::ffi::c_void, + pub Reserved8: u32, + pub AtlThunkSListPtr32: u32, + pub Reserved9: [*mut ::core::ffi::c_void; 45], + pub Reserved10: [u8; 96], + pub PostProcessInitRoutine: PPS_POST_PROCESS_INIT_ROUTINE, + pub Reserved11: [u8; 128], + pub Reserved12: [*mut ::core::ffi::c_void; 1], + pub SessionId: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for PEB {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for PEB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct PEB_LDR_DATA { + pub Reserved1: [u8; 8], + pub Reserved2: [*mut ::core::ffi::c_void; 3], + pub InMemoryOrderModuleList: super::Kernel::LIST_ENTRY, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for PEB_LDR_DATA {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for PEB_LDR_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct PROCESS_BASIC_INFORMATION { + pub ExitStatus: super::super::Foundation::NTSTATUS, + pub PebBaseAddress: *mut PEB, + pub AffinityMask: usize, + pub BasePriority: i32, + pub UniqueProcessId: usize, + pub InheritedFromUniqueProcessId: usize, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for PROCESS_BASIC_INFORMATION {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for PROCESS_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_DYNAMIC_EH_CONTINUATION_TARGET { + pub TargetAddress: usize, + pub Flags: usize, +} +impl ::core::marker::Copy for PROCESS_DYNAMIC_EH_CONTINUATION_TARGET {} +impl ::core::clone::Clone for PROCESS_DYNAMIC_EH_CONTINUATION_TARGET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION { + pub NumberOfTargets: u16, + pub Reserved: u16, + pub Reserved2: u32, + pub Targets: *mut PROCESS_DYNAMIC_EH_CONTINUATION_TARGET, +} +impl ::core::marker::Copy for PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION {} +impl ::core::clone::Clone for PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE { + pub BaseAddress: usize, + pub Size: usize, + pub Flags: u32, +} +impl ::core::marker::Copy for PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE {} +impl ::core::clone::Clone for PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION { + pub NumberOfRanges: u16, + pub Reserved: u16, + pub Reserved2: u32, + pub Ranges: *mut PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE, +} +impl ::core::marker::Copy for PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION {} +impl ::core::clone::Clone for PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROCESS_INFORMATION { + pub hProcess: super::super::Foundation::HANDLE, + pub hThread: super::super::Foundation::HANDLE, + pub dwProcessId: u32, + pub dwThreadId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROCESS_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROCESS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_LEAP_SECOND_INFO { + pub Flags: u32, + pub Reserved: u32, +} +impl ::core::marker::Copy for PROCESS_LEAP_SECOND_INFO {} +impl ::core::clone::Clone for PROCESS_LEAP_SECOND_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_SystemInformation\"`"] +#[cfg(feature = "Win32_System_SystemInformation")] +pub struct PROCESS_MACHINE_INFORMATION { + pub ProcessMachine: super::SystemInformation::IMAGE_FILE_MACHINE, + pub Res0: u16, + pub MachineAttributes: MACHINE_ATTRIBUTES, +} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::marker::Copy for PROCESS_MACHINE_INFORMATION {} +#[cfg(feature = "Win32_System_SystemInformation")] +impl ::core::clone::Clone for PROCESS_MACHINE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_MEMORY_EXHAUSTION_INFO { + pub Version: u16, + pub Reserved: u16, + pub Type: PROCESS_MEMORY_EXHAUSTION_TYPE, + pub Value: usize, +} +impl ::core::marker::Copy for PROCESS_MEMORY_EXHAUSTION_INFO {} +impl ::core::clone::Clone for PROCESS_MEMORY_EXHAUSTION_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_POWER_THROTTLING_STATE { + pub Version: u32, + pub ControlMask: u32, + pub StateMask: u32, +} +impl ::core::marker::Copy for PROCESS_POWER_THROTTLING_STATE {} +impl ::core::clone::Clone for PROCESS_POWER_THROTTLING_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROCESS_PROTECTION_LEVEL_INFORMATION { + pub ProtectionLevel: PROCESS_PROTECTION_LEVEL, +} +impl ::core::marker::Copy for PROCESS_PROTECTION_LEVEL_INFORMATION {} +impl ::core::clone::Clone for PROCESS_PROTECTION_LEVEL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +pub type PTP_CALLBACK_INSTANCE = isize; +pub type PTP_CLEANUP_GROUP = isize; +pub type PTP_IO = isize; +pub type PTP_POOL = isize; +pub type PTP_TIMER = isize; +pub type PTP_WAIT = isize; +pub type PTP_WORK = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REASON_CONTEXT { + pub Version: u32, + pub Flags: POWER_REQUEST_CONTEXT_FLAGS, + pub Reason: REASON_CONTEXT_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REASON_CONTEXT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REASON_CONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union REASON_CONTEXT_0 { + pub Detailed: REASON_CONTEXT_0_0, + pub SimpleReasonString: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REASON_CONTEXT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REASON_CONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct REASON_CONTEXT_0_0 { + pub LocalizedReasonModule: super::super::Foundation::HMODULE, + pub LocalizedReasonId: u32, + pub ReasonStringCount: u32, + pub ReasonStrings: *mut ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for REASON_CONTEXT_0_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for REASON_CONTEXT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RTL_USER_PROCESS_PARAMETERS { + pub Reserved1: [u8; 16], + pub Reserved2: [*mut ::core::ffi::c_void; 10], + pub ImagePathName: super::super::Foundation::UNICODE_STRING, + pub CommandLine: super::super::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RTL_USER_PROCESS_PARAMETERS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RTL_USER_PROCESS_PARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SRWLOCK { + pub Ptr: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SRWLOCK {} +impl ::core::clone::Clone for SRWLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STARTUPINFOA { + pub cb: u32, + pub lpReserved: ::windows_sys::core::PSTR, + pub lpDesktop: ::windows_sys::core::PSTR, + pub lpTitle: ::windows_sys::core::PSTR, + pub dwX: u32, + pub dwY: u32, + pub dwXSize: u32, + pub dwYSize: u32, + pub dwXCountChars: u32, + pub dwYCountChars: u32, + pub dwFillAttribute: u32, + pub dwFlags: STARTUPINFOW_FLAGS, + pub wShowWindow: u16, + pub cbReserved2: u16, + pub lpReserved2: *mut u8, + pub hStdInput: super::super::Foundation::HANDLE, + pub hStdOutput: super::super::Foundation::HANDLE, + pub hStdError: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STARTUPINFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STARTUPINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STARTUPINFOEXA { + pub StartupInfo: STARTUPINFOA, + pub lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STARTUPINFOEXA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STARTUPINFOEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STARTUPINFOEXW { + pub StartupInfo: STARTUPINFOW, + pub lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STARTUPINFOEXW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STARTUPINFOEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STARTUPINFOW { + pub cb: u32, + pub lpReserved: ::windows_sys::core::PWSTR, + pub lpDesktop: ::windows_sys::core::PWSTR, + pub lpTitle: ::windows_sys::core::PWSTR, + pub dwX: u32, + pub dwY: u32, + pub dwXSize: u32, + pub dwYSize: u32, + pub dwXCountChars: u32, + pub dwYCountChars: u32, + pub dwFillAttribute: u32, + pub dwFlags: STARTUPINFOW_FLAGS, + pub wShowWindow: u16, + pub cbReserved2: u16, + pub lpReserved2: *mut u8, + pub hStdInput: super::super::Foundation::HANDLE, + pub hStdOutput: super::super::Foundation::HANDLE, + pub hStdError: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STARTUPINFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STARTUPINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYNCHRONIZATION_BARRIER { + pub Reserved1: u32, + pub Reserved2: u32, + pub Reserved3: [usize; 2], + pub Reserved4: u32, + pub Reserved5: u32, +} +impl ::core::marker::Copy for SYNCHRONIZATION_BARRIER {} +impl ::core::clone::Clone for SYNCHRONIZATION_BARRIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct TEB { + pub Reserved1: [*mut ::core::ffi::c_void; 12], + pub ProcessEnvironmentBlock: *mut PEB, + pub Reserved2: [*mut ::core::ffi::c_void; 399], + pub Reserved3: [u8; 1952], + pub TlsSlots: [*mut ::core::ffi::c_void; 64], + pub Reserved4: [u8; 8], + pub Reserved5: [*mut ::core::ffi::c_void; 26], + pub ReservedForOle: *mut ::core::ffi::c_void, + pub Reserved6: [*mut ::core::ffi::c_void; 4], + pub TlsExpansionSlots: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for TEB {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for TEB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct THREAD_POWER_THROTTLING_STATE { + pub Version: u32, + pub ControlMask: u32, + pub StateMask: u32, +} +impl ::core::marker::Copy for THREAD_POWER_THROTTLING_STATE {} +impl ::core::clone::Clone for THREAD_POWER_THROTTLING_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TP_CALLBACK_ENVIRON_V3 { + pub Version: u32, + pub Pool: PTP_POOL, + pub CleanupGroup: PTP_CLEANUP_GROUP, + pub CleanupGroupCancelCallback: PTP_CLEANUP_GROUP_CANCEL_CALLBACK, + pub RaceDll: *mut ::core::ffi::c_void, + pub ActivationContext: isize, + pub FinalizationCallback: PTP_SIMPLE_CALLBACK, + pub u: TP_CALLBACK_ENVIRON_V3_0, + pub CallbackPriority: TP_CALLBACK_PRIORITY, + pub Size: u32, +} +impl ::core::marker::Copy for TP_CALLBACK_ENVIRON_V3 {} +impl ::core::clone::Clone for TP_CALLBACK_ENVIRON_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union TP_CALLBACK_ENVIRON_V3_0 { + pub Flags: u32, + pub s: TP_CALLBACK_ENVIRON_V3_0_0, +} +impl ::core::marker::Copy for TP_CALLBACK_ENVIRON_V3_0 {} +impl ::core::clone::Clone for TP_CALLBACK_ENVIRON_V3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TP_CALLBACK_ENVIRON_V3_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for TP_CALLBACK_ENVIRON_V3_0_0 {} +impl ::core::clone::Clone for TP_CALLBACK_ENVIRON_V3_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TP_POOL_STACK_INFORMATION { + pub StackReserve: usize, + pub StackCommit: usize, +} +impl ::core::marker::Copy for TP_POOL_STACK_INFORMATION {} +impl ::core::clone::Clone for TP_POOL_STACK_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_SystemServices\"`"] +#[cfg(feature = "Win32_System_SystemServices")] +pub struct UMS_SCHEDULER_STARTUP_INFO { + pub UmsVersion: u32, + pub CompletionList: *mut ::core::ffi::c_void, + pub SchedulerProc: PRTL_UMS_SCHEDULER_ENTRY_POINT, + pub SchedulerParam: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_System_SystemServices")] +impl ::core::marker::Copy for UMS_SCHEDULER_STARTUP_INFO {} +#[cfg(feature = "Win32_System_SystemServices")] +impl ::core::clone::Clone for UMS_SCHEDULER_STARTUP_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UMS_SYSTEM_THREAD_INFORMATION { + pub UmsVersion: u32, + pub Anonymous: UMS_SYSTEM_THREAD_INFORMATION_0, +} +impl ::core::marker::Copy for UMS_SYSTEM_THREAD_INFORMATION {} +impl ::core::clone::Clone for UMS_SYSTEM_THREAD_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union UMS_SYSTEM_THREAD_INFORMATION_0 { + pub Anonymous: UMS_SYSTEM_THREAD_INFORMATION_0_0, + pub ThreadUmsFlags: u32, +} +impl ::core::marker::Copy for UMS_SYSTEM_THREAD_INFORMATION_0 {} +impl ::core::clone::Clone for UMS_SYSTEM_THREAD_INFORMATION_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UMS_SYSTEM_THREAD_INFORMATION_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for UMS_SYSTEM_THREAD_INFORMATION_0_0 {} +impl ::core::clone::Clone for UMS_SYSTEM_THREAD_INFORMATION_0_0 { + fn clone(&self) -> Self { + *self + } +} +pub type APC_CALLBACK_FUNCTION = ::core::option::Option ()>; +pub type LPFIBER_START_ROUTINE = ::core::option::Option ()>; +pub type LPTHREAD_START_ROUTINE = ::core::option::Option u32>; +pub type PFLS_CALLBACK_FUNCTION = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PINIT_ONCE_FN = ::core::option::Option super::super::Foundation::BOOL>; +pub type PPS_POST_PROCESS_INIT_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_System_SystemServices\"`"] +#[cfg(feature = "Win32_System_SystemServices")] +pub type PRTL_UMS_SCHEDULER_ENTRY_POINT = ::core::option::Option ()>; +pub type PTIMERAPCROUTINE = ::core::option::Option ()>; +pub type PTP_CLEANUP_GROUP_CANCEL_CALLBACK = ::core::option::Option ()>; +pub type PTP_SIMPLE_CALLBACK = ::core::option::Option ()>; +pub type PTP_TIMER_CALLBACK = ::core::option::Option ()>; +pub type PTP_WAIT_CALLBACK = ::core::option::Option ()>; +pub type PTP_WIN32_IO_CALLBACK = ::core::option::Option ()>; +pub type PTP_WORK_CALLBACK = ::core::option::Option ()>; +pub type RTWQPERIODICCALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WAITORTIMERCALLBACK = ::core::option::Option ()>; +pub type WORKERCALLBACKFUNC = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Time/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Time/mod.rs new file mode 100644 index 000000000..c4b104bc8 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Time/mod.rs @@ -0,0 +1,83 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumDynamicTimeZoneInformation(dwindex : u32, lptimezoneinformation : *mut DYNAMIC_TIME_ZONE_INFORMATION) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FileTimeToSystemTime(lpfiletime : *const super::super::Foundation:: FILETIME, lpsystemtime : *mut super::super::Foundation:: SYSTEMTIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDynamicTimeZoneInformation(ptimezoneinformation : *mut DYNAMIC_TIME_ZONE_INFORMATION) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDynamicTimeZoneInformationEffectiveYears(lptimezoneinformation : *const DYNAMIC_TIME_ZONE_INFORMATION, firstyear : *mut u32, lastyear : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTimeZoneInformation(lptimezoneinformation : *mut TIME_ZONE_INFORMATION) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTimeZoneInformationForYear(wyear : u16, pdtzi : *const DYNAMIC_TIME_ZONE_INFORMATION, ptzi : *mut TIME_ZONE_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LocalFileTimeToLocalSystemTime(timezoneinformation : *const TIME_ZONE_INFORMATION, localfiletime : *const super::super::Foundation:: FILETIME, localsystemtime : *mut super::super::Foundation:: SYSTEMTIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LocalSystemTimeToLocalFileTime(timezoneinformation : *const TIME_ZONE_INFORMATION, localsystemtime : *const super::super::Foundation:: SYSTEMTIME, localfiletime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDynamicTimeZoneInformation(lptimezoneinformation : *const DYNAMIC_TIME_ZONE_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetTimeZoneInformation(lptimezoneinformation : *const TIME_ZONE_INFORMATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SystemTimeToFileTime(lpsystemtime : *const super::super::Foundation:: SYSTEMTIME, lpfiletime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SystemTimeToTzSpecificLocalTime(lptimezoneinformation : *const TIME_ZONE_INFORMATION, lpuniversaltime : *const super::super::Foundation:: SYSTEMTIME, lplocaltime : *mut super::super::Foundation:: SYSTEMTIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SystemTimeToTzSpecificLocalTimeEx(lptimezoneinformation : *const DYNAMIC_TIME_ZONE_INFORMATION, lpuniversaltime : *const super::super::Foundation:: SYSTEMTIME, lplocaltime : *mut super::super::Foundation:: SYSTEMTIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TzSpecificLocalTimeToSystemTime(lptimezoneinformation : *const TIME_ZONE_INFORMATION, lplocaltime : *const super::super::Foundation:: SYSTEMTIME, lpuniversaltime : *mut super::super::Foundation:: SYSTEMTIME) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TzSpecificLocalTimeToSystemTimeEx(lptimezoneinformation : *const DYNAMIC_TIME_ZONE_INFORMATION, lplocaltime : *const super::super::Foundation:: SYSTEMTIME, lpuniversaltime : *mut super::super::Foundation:: SYSTEMTIME) -> super::super::Foundation:: BOOL); +pub const TIME_ZONE_ID_INVALID: u32 = 4294967295u32; +pub const TSF_Authenticated: u32 = 2u32; +pub const TSF_Hardware: u32 = 1u32; +pub const TSF_IPv6: u32 = 4u32; +pub const TSF_SignatureAuthenticated: u32 = 8u32; +pub const wszW32TimeRegKeyPolicyTimeProviders: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Policies\\Microsoft\\W32Time\\TimeProviders"); +pub const wszW32TimeRegKeyTimeProviders: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("System\\CurrentControlSet\\Services\\W32Time\\TimeProviders"); +pub const wszW32TimeRegValueDllName: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DllName"); +pub const wszW32TimeRegValueEnabled: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Enabled"); +pub const wszW32TimeRegValueInputProvider: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InputProvider"); +pub const wszW32TimeRegValueMetaDataProvider: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MetaDataProvider"); +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DYNAMIC_TIME_ZONE_INFORMATION { + pub Bias: i32, + pub StandardName: [u16; 32], + pub StandardDate: super::super::Foundation::SYSTEMTIME, + pub StandardBias: i32, + pub DaylightName: [u16; 32], + pub DaylightDate: super::super::Foundation::SYSTEMTIME, + pub DaylightBias: i32, + pub TimeZoneKeyName: [u16; 128], + pub DynamicDaylightTimeDisabled: super::super::Foundation::BOOLEAN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DYNAMIC_TIME_ZONE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DYNAMIC_TIME_ZONE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TIME_ZONE_INFORMATION { + pub Bias: i32, + pub StandardName: [u16; 32], + pub StandardDate: super::super::Foundation::SYSTEMTIME, + pub StandardBias: i32, + pub DaylightName: [u16; 32], + pub DaylightDate: super::super::Foundation::SYSTEMTIME, + pub DaylightBias: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TIME_ZONE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TIME_ZONE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/TpmBaseServices/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/TpmBaseServices/mod.rs new file mode 100644 index 000000000..715cf9ad6 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/TpmBaseServices/mod.rs @@ -0,0 +1,122 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tbs.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDeviceID(pbwindowsaik : *mut u8, cbwindowsaik : u32, pcbresult : *mut u32, pfprotectedbytpm : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tbs.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDeviceIDString(pszwindowsaik : ::windows_sys::core::PWSTR, cchwindowsaik : u32, pcchresult : *mut u32, pfprotectedbytpm : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("tbs.dll" "system" fn Tbsi_Context_Create(pcontextparams : *const TBS_CONTEXT_PARAMS, phcontext : *mut *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("tbs.dll" "system" fn Tbsi_Create_Windows_Key(keyhandle : u32) -> u32); +::windows_targets::link!("tbs.dll" "system" fn Tbsi_GetDeviceInfo(size : u32, info : *mut ::core::ffi::c_void) -> u32); +::windows_targets::link!("tbs.dll" "system" fn Tbsi_Get_OwnerAuth(hcontext : *const ::core::ffi::c_void, ownerauthtype : u32, poutputbuf : *mut u8, poutputbuflen : *mut u32) -> u32); +::windows_targets::link!("tbs.dll" "system" fn Tbsi_Get_TCG_Log(hcontext : *const ::core::ffi::c_void, poutputbuf : *mut u8, poutputbuflen : *mut u32) -> u32); +::windows_targets::link!("tbs.dll" "system" fn Tbsi_Get_TCG_Log_Ex(logtype : u32, pboutput : *mut u8, pcboutput : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("tbs.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Tbsi_Is_Tpm_Present() -> super::super::Foundation:: BOOL); +::windows_targets::link!("tbs.dll" "system" fn Tbsi_Physical_Presence_Command(hcontext : *const ::core::ffi::c_void, pabinput : *const u8, cbinput : u32, paboutput : *mut u8, pcboutput : *mut u32) -> u32); +::windows_targets::link!("tbs.dll" "system" fn Tbsi_Revoke_Attestation() -> u32); +::windows_targets::link!("tbs.dll" "system" fn Tbsip_Cancel_Commands(hcontext : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("tbs.dll" "system" fn Tbsip_Context_Close(hcontext : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("tbs.dll" "system" fn Tbsip_Submit_Command(hcontext : *const ::core::ffi::c_void, locality : TBS_COMMAND_LOCALITY, priority : TBS_COMMAND_PRIORITY, pabcommand : *const u8, cbcommand : u32, pabresult : *mut u8, pcbresult : *mut u32) -> u32); +pub const TBS_COMMAND_LOCALITY_FOUR: TBS_COMMAND_LOCALITY = 4u32; +pub const TBS_COMMAND_LOCALITY_ONE: TBS_COMMAND_LOCALITY = 1u32; +pub const TBS_COMMAND_LOCALITY_THREE: TBS_COMMAND_LOCALITY = 3u32; +pub const TBS_COMMAND_LOCALITY_TWO: TBS_COMMAND_LOCALITY = 2u32; +pub const TBS_COMMAND_LOCALITY_ZERO: TBS_COMMAND_LOCALITY = 0u32; +pub const TBS_COMMAND_PRIORITY_HIGH: TBS_COMMAND_PRIORITY = 300u32; +pub const TBS_COMMAND_PRIORITY_LOW: TBS_COMMAND_PRIORITY = 100u32; +pub const TBS_COMMAND_PRIORITY_MAX: TBS_COMMAND_PRIORITY = 2147483648u32; +pub const TBS_COMMAND_PRIORITY_NORMAL: TBS_COMMAND_PRIORITY = 200u32; +pub const TBS_COMMAND_PRIORITY_SYSTEM: TBS_COMMAND_PRIORITY = 400u32; +pub const TBS_CONTEXT_VERSION_ONE: u32 = 1u32; +pub const TBS_CONTEXT_VERSION_TWO: u32 = 2u32; +pub const TBS_OWNERAUTH_TYPE_ADMIN: u32 = 2u32; +pub const TBS_OWNERAUTH_TYPE_ENDORSEMENT: u32 = 4u32; +pub const TBS_OWNERAUTH_TYPE_ENDORSEMENT_20: u32 = 12u32; +pub const TBS_OWNERAUTH_TYPE_FULL: u32 = 1u32; +pub const TBS_OWNERAUTH_TYPE_STORAGE_20: u32 = 13u32; +pub const TBS_OWNERAUTH_TYPE_USER: u32 = 3u32; +pub const TBS_SUCCESS: u32 = 0u32; +pub const TBS_TCGLOG_DRTM_BOOT: u32 = 4u32; +pub const TBS_TCGLOG_DRTM_CURRENT: u32 = 1u32; +pub const TBS_TCGLOG_DRTM_RESUME: u32 = 5u32; +pub const TBS_TCGLOG_SRTM_BOOT: u32 = 2u32; +pub const TBS_TCGLOG_SRTM_CURRENT: u32 = 0u32; +pub const TBS_TCGLOG_SRTM_RESUME: u32 = 3u32; +pub const TPM_IFTYPE_1: u32 = 1u32; +pub const TPM_IFTYPE_EMULATOR: u32 = 4u32; +pub const TPM_IFTYPE_HW: u32 = 3u32; +pub const TPM_IFTYPE_SPB: u32 = 5u32; +pub const TPM_IFTYPE_TRUSTZONE: u32 = 2u32; +pub const TPM_IFTYPE_UNKNOWN: u32 = 0u32; +pub const TPM_VERSION_12: u32 = 1u32; +pub const TPM_VERSION_20: u32 = 2u32; +pub const TPM_VERSION_UNKNOWN: u32 = 0u32; +pub const TPM_WNF_INFO_CLEAR_SUCCESSFUL: u32 = 1u32; +pub const TPM_WNF_INFO_NO_REBOOT_REQUIRED: u32 = 1u32; +pub const TPM_WNF_INFO_OWNERSHIP_SUCCESSFUL: u32 = 2u32; +pub type TBS_COMMAND_LOCALITY = u32; +pub type TBS_COMMAND_PRIORITY = u32; +#[repr(C)] +pub struct TBS_CONTEXT_PARAMS { + pub version: u32, +} +impl ::core::marker::Copy for TBS_CONTEXT_PARAMS {} +impl ::core::clone::Clone for TBS_CONTEXT_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TBS_CONTEXT_PARAMS2 { + pub version: u32, + pub Anonymous: TBS_CONTEXT_PARAMS2_0, +} +impl ::core::marker::Copy for TBS_CONTEXT_PARAMS2 {} +impl ::core::clone::Clone for TBS_CONTEXT_PARAMS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union TBS_CONTEXT_PARAMS2_0 { + pub Anonymous: TBS_CONTEXT_PARAMS2_0_0, + pub asUINT32: u32, +} +impl ::core::marker::Copy for TBS_CONTEXT_PARAMS2_0 {} +impl ::core::clone::Clone for TBS_CONTEXT_PARAMS2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TBS_CONTEXT_PARAMS2_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for TBS_CONTEXT_PARAMS2_0_0 {} +impl ::core::clone::Clone for TBS_CONTEXT_PARAMS2_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TPM_DEVICE_INFO { + pub structVersion: u32, + pub tpmVersion: u32, + pub tpmInterfaceType: u32, + pub tpmImpRevision: u32, +} +impl ::core::marker::Copy for TPM_DEVICE_INFO {} +impl ::core::clone::Clone for TPM_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TPM_WNF_PROVISIONING { + pub status: u32, + pub message: [u8; 28], +} +impl ::core::marker::Copy for TPM_WNF_PROVISIONING {} +impl ::core::clone::Clone for TPM_WNF_PROVISIONING { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/UserAccessLogging/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/UserAccessLogging/mod.rs new file mode 100644 index 000000000..18427f8b2 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/UserAccessLogging/mod.rs @@ -0,0 +1,25 @@ +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("ualapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn UalInstrument(data : *const UAL_DATA_BLOB) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ualapi.dll" "system" fn UalRegisterProduct(wszproductname : ::windows_sys::core::PCWSTR, wszrolename : ::windows_sys::core::PCWSTR, wszguid : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("ualapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn UalStart(data : *const UAL_DATA_BLOB) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Networking_WinSock")] +::windows_targets::link!("ualapi.dll" "system" #[doc = "Required features: `\"Win32_Networking_WinSock\"`"] fn UalStop(data : *const UAL_DATA_BLOB) -> ::windows_sys::core::HRESULT); +#[repr(C)] +#[doc = "Required features: `\"Win32_Networking_WinSock\"`"] +#[cfg(feature = "Win32_Networking_WinSock")] +pub struct UAL_DATA_BLOB { + pub Size: u32, + pub RoleGuid: ::windows_sys::core::GUID, + pub TenantId: ::windows_sys::core::GUID, + pub Address: super::super::Networking::WinSock::SOCKADDR_STORAGE, + pub UserName: [u16; 260], +} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::marker::Copy for UAL_DATA_BLOB {} +#[cfg(feature = "Win32_Networking_WinSock")] +impl ::core::clone::Clone for UAL_DATA_BLOB { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Variant/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Variant/mod.rs new file mode 100644 index 000000000..fa71e99b6 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Variant/mod.rs @@ -0,0 +1,363 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn ClearVariantArray(pvars : *mut VARIANT, cvars : u32) -> ()); +::windows_targets::link!("oleaut32.dll" "system" fn DosDateTimeToVariantTime(wdosdate : u16, wdostime : u16, pvtime : *mut f64) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromBooleanArray(prgf : *const super::super::Foundation:: BOOL, celems : u32, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromBuffer(pv : *const ::core::ffi::c_void, cb : u32, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromDoubleArray(prgn : *const f64, celems : u32, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromFileTime(pft : *const super::super::Foundation:: FILETIME, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromFileTimeArray(prgft : *const super::super::Foundation:: FILETIME, celems : u32, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromGUIDAsString(guid : *const ::windows_sys::core::GUID, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromInt16Array(prgn : *const i16, celems : u32, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromInt32Array(prgn : *const i32, celems : u32, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromInt64Array(prgn : *const i64, celems : u32, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromResource(hinst : super::super::Foundation:: HINSTANCE, id : u32, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromStringArray(prgsz : *const ::windows_sys::core::PCWSTR, celems : u32, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromUInt16Array(prgn : *const u16, celems : u32, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromUInt32Array(prgn : *const u32, celems : u32, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromUInt64Array(prgn : *const u64, celems : u32, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn InitVariantFromVariantArrayElem(varin : *const VARIANT, ielem : u32, pvar : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SystemTimeToVariantTime(lpsystemtime : *const super::super::Foundation:: SYSTEMTIME, pvtime : *mut f64) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VARIANT_UserFree(param0 : *const u32, param1 : *const VARIANT) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VARIANT_UserFree64(param0 : *const u32, param1 : *const VARIANT) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VARIANT_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const VARIANT) -> *mut u8); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VARIANT_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const VARIANT) -> *mut u8); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VARIANT_UserSize(param0 : *const u32, param1 : u32, param2 : *const VARIANT) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VARIANT_UserSize64(param0 : *const u32, param1 : u32, param2 : *const VARIANT) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VARIANT_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut VARIANT) -> *mut u8); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VARIANT_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut VARIANT) -> *mut u8); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantChangeType(pvargdest : *mut VARIANT, pvarsrc : *const VARIANT, wflags : VAR_CHANGE_FLAGS, vt : VARENUM) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantChangeTypeEx(pvargdest : *mut VARIANT, pvarsrc : *const VARIANT, lcid : u32, wflags : VAR_CHANGE_FLAGS, vt : VARENUM) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantClear(pvarg : *mut VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantCompare(var1 : *const VARIANT, var2 : *const VARIANT) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantCopy(pvargdest : *mut VARIANT, pvargsrc : *const VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantCopyInd(pvardest : *mut VARIANT, pvargsrc : *const VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantGetBooleanElem(var : *const VARIANT, ielem : u32, pfval : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantGetDoubleElem(var : *const VARIANT, ielem : u32, pnval : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantGetElementCount(varin : *const VARIANT) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantGetInt16Elem(var : *const VARIANT, ielem : u32, pnval : *mut i16) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantGetInt32Elem(var : *const VARIANT, ielem : u32, pnval : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantGetInt64Elem(var : *const VARIANT, ielem : u32, pnval : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantGetStringElem(var : *const VARIANT, ielem : u32, ppszval : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantGetUInt16Elem(var : *const VARIANT, ielem : u32, pnval : *mut u16) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantGetUInt32Elem(var : *const VARIANT, ielem : u32, pnval : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantGetUInt64Elem(var : *const VARIANT, ielem : u32, pnval : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantInit(pvarg : *mut VARIANT) -> ()); +::windows_targets::link!("oleaut32.dll" "system" fn VariantTimeToDosDateTime(vtime : f64, pwdosdate : *mut u16, pwdostime : *mut u16) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleaut32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn VariantTimeToSystemTime(vtime : f64, lpsystemtime : *mut super::super::Foundation:: SYSTEMTIME) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToBoolean(varin : *const VARIANT, pfret : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToBooleanArray(var : *const VARIANT, prgf : *mut super::super::Foundation:: BOOL, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToBooleanArrayAlloc(var : *const VARIANT, pprgf : *mut *mut super::super::Foundation:: BOOL, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToBooleanWithDefault(varin : *const VARIANT, fdefault : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToBuffer(varin : *const VARIANT, pv : *mut ::core::ffi::c_void, cb : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToDosDateTime(varin : *const VARIANT, pwdate : *mut u16, pwtime : *mut u16) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToDouble(varin : *const VARIANT, pdblret : *mut f64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToDoubleArray(var : *const VARIANT, prgn : *mut f64, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToDoubleArrayAlloc(var : *const VARIANT, pprgn : *mut *mut f64, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToDoubleWithDefault(varin : *const VARIANT, dbldefault : f64) -> f64); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToFileTime(varin : *const VARIANT, stfout : PSTIME_FLAGS, pftout : *mut super::super::Foundation:: FILETIME) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToGUID(varin : *const VARIANT, pguid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToInt16(varin : *const VARIANT, piret : *mut i16) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToInt16Array(var : *const VARIANT, prgn : *mut i16, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToInt16ArrayAlloc(var : *const VARIANT, pprgn : *mut *mut i16, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToInt16WithDefault(varin : *const VARIANT, idefault : i16) -> i16); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToInt32(varin : *const VARIANT, plret : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToInt32Array(var : *const VARIANT, prgn : *mut i32, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToInt32ArrayAlloc(var : *const VARIANT, pprgn : *mut *mut i32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToInt32WithDefault(varin : *const VARIANT, ldefault : i32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToInt64(varin : *const VARIANT, pllret : *mut i64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToInt64Array(var : *const VARIANT, prgn : *mut i64, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToInt64ArrayAlloc(var : *const VARIANT, pprgn : *mut *mut i64, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToInt64WithDefault(varin : *const VARIANT, lldefault : i64) -> i64); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToString(varin : *const VARIANT, pszbuf : ::windows_sys::core::PWSTR, cchbuf : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToStringAlloc(varin : *const VARIANT, ppszbuf : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToStringArray(var : *const VARIANT, prgsz : *mut ::windows_sys::core::PWSTR, crgsz : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToStringArrayAlloc(var : *const VARIANT, pprgsz : *mut *mut ::windows_sys::core::PWSTR, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToStringWithDefault(varin : *const VARIANT, pszdefault : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PCWSTR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToUInt16(varin : *const VARIANT, puiret : *mut u16) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToUInt16Array(var : *const VARIANT, prgn : *mut u16, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToUInt16ArrayAlloc(var : *const VARIANT, pprgn : *mut *mut u16, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToUInt16WithDefault(varin : *const VARIANT, uidefault : u16) -> u16); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToUInt32(varin : *const VARIANT, pulret : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToUInt32Array(var : *const VARIANT, prgn : *mut u32, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToUInt32ArrayAlloc(var : *const VARIANT, pprgn : *mut *mut u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToUInt32WithDefault(varin : *const VARIANT, uldefault : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToUInt64(varin : *const VARIANT, pullret : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToUInt64Array(var : *const VARIANT, prgn : *mut u64, crgn : u32, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToUInt64ArrayAlloc(var : *const VARIANT, pprgn : *mut *mut u64, pcelem : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn VariantToUInt64WithDefault(varin : *const VARIANT, ulldefault : u64) -> u64); +pub const DPF_ERROR: DRAWPROGRESSFLAGS = 4i32; +pub const DPF_MARQUEE: DRAWPROGRESSFLAGS = 1i32; +pub const DPF_MARQUEE_COMPLETE: DRAWPROGRESSFLAGS = 2i32; +pub const DPF_NONE: DRAWPROGRESSFLAGS = 0i32; +pub const DPF_STOPPED: DRAWPROGRESSFLAGS = 16i32; +pub const DPF_WARNING: DRAWPROGRESSFLAGS = 8i32; +pub const PSTF_LOCAL: PSTIME_FLAGS = 1i32; +pub const PSTF_UTC: PSTIME_FLAGS = 0i32; +pub const VARIANT_ALPHABOOL: VAR_CHANGE_FLAGS = 2u16; +pub const VARIANT_CALENDAR_GREGORIAN: VAR_CHANGE_FLAGS = 64u16; +pub const VARIANT_CALENDAR_HIJRI: VAR_CHANGE_FLAGS = 8u16; +pub const VARIANT_CALENDAR_THAI: VAR_CHANGE_FLAGS = 32u16; +pub const VARIANT_LOCALBOOL: VAR_CHANGE_FLAGS = 16u16; +pub const VARIANT_NOUSEROVERRIDE: VAR_CHANGE_FLAGS = 4u16; +pub const VARIANT_NOVALUEPROP: VAR_CHANGE_FLAGS = 1u16; +pub const VARIANT_USE_NLS: VAR_CHANGE_FLAGS = 128u16; +pub const VT_ARRAY: VARENUM = 8192u16; +pub const VT_BLOB: VARENUM = 65u16; +pub const VT_BLOB_OBJECT: VARENUM = 70u16; +pub const VT_BOOL: VARENUM = 11u16; +pub const VT_BSTR: VARENUM = 8u16; +pub const VT_BSTR_BLOB: VARENUM = 4095u16; +pub const VT_BYREF: VARENUM = 16384u16; +pub const VT_CARRAY: VARENUM = 28u16; +pub const VT_CF: VARENUM = 71u16; +pub const VT_CLSID: VARENUM = 72u16; +pub const VT_CY: VARENUM = 6u16; +pub const VT_DATE: VARENUM = 7u16; +pub const VT_DECIMAL: VARENUM = 14u16; +pub const VT_DISPATCH: VARENUM = 9u16; +pub const VT_EMPTY: VARENUM = 0u16; +pub const VT_ERROR: VARENUM = 10u16; +pub const VT_FILETIME: VARENUM = 64u16; +pub const VT_HRESULT: VARENUM = 25u16; +pub const VT_I1: VARENUM = 16u16; +pub const VT_I2: VARENUM = 2u16; +pub const VT_I4: VARENUM = 3u16; +pub const VT_I8: VARENUM = 20u16; +pub const VT_ILLEGAL: VARENUM = 65535u16; +pub const VT_ILLEGALMASKED: VARENUM = 4095u16; +pub const VT_INT: VARENUM = 22u16; +pub const VT_INT_PTR: VARENUM = 37u16; +pub const VT_LPSTR: VARENUM = 30u16; +pub const VT_LPWSTR: VARENUM = 31u16; +pub const VT_NULL: VARENUM = 1u16; +pub const VT_PTR: VARENUM = 26u16; +pub const VT_R4: VARENUM = 4u16; +pub const VT_R8: VARENUM = 5u16; +pub const VT_RECORD: VARENUM = 36u16; +pub const VT_RESERVED: VARENUM = 32768u16; +pub const VT_SAFEARRAY: VARENUM = 27u16; +pub const VT_STORAGE: VARENUM = 67u16; +pub const VT_STORED_OBJECT: VARENUM = 69u16; +pub const VT_STREAM: VARENUM = 66u16; +pub const VT_STREAMED_OBJECT: VARENUM = 68u16; +pub const VT_TYPEMASK: VARENUM = 4095u16; +pub const VT_UI1: VARENUM = 17u16; +pub const VT_UI2: VARENUM = 18u16; +pub const VT_UI4: VARENUM = 19u16; +pub const VT_UI8: VARENUM = 21u16; +pub const VT_UINT: VARENUM = 23u16; +pub const VT_UINT_PTR: VARENUM = 38u16; +pub const VT_UNKNOWN: VARENUM = 13u16; +pub const VT_USERDEFINED: VARENUM = 29u16; +pub const VT_VARIANT: VARENUM = 12u16; +pub const VT_VECTOR: VARENUM = 4096u16; +pub const VT_VERSIONED_STREAM: VARENUM = 73u16; +pub const VT_VOID: VARENUM = 24u16; +pub type DRAWPROGRESSFLAGS = i32; +pub type PSTIME_FLAGS = i32; +pub type VARENUM = u16; +pub type VAR_CHANGE_FLAGS = u16; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +pub struct VARIANT { + pub Anonymous: VARIANT_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +impl ::core::marker::Copy for VARIANT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +impl ::core::clone::Clone for VARIANT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +pub union VARIANT_0 { + pub Anonymous: VARIANT_0_0, + pub decVal: super::super::Foundation::DECIMAL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +impl ::core::marker::Copy for VARIANT_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +impl ::core::clone::Clone for VARIANT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +pub struct VARIANT_0_0 { + pub vt: VARENUM, + pub wReserved1: u16, + pub wReserved2: u16, + pub wReserved3: u16, + pub Anonymous: VARIANT_0_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +impl ::core::marker::Copy for VARIANT_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +impl ::core::clone::Clone for VARIANT_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +pub union VARIANT_0_0_0 { + pub llVal: i64, + pub lVal: i32, + pub bVal: u8, + pub iVal: i16, + pub fltVal: f32, + pub dblVal: f64, + pub boolVal: super::super::Foundation::VARIANT_BOOL, + pub __OBSOLETE__VARIANT_BOOL: super::super::Foundation::VARIANT_BOOL, + pub scode: i32, + pub cyVal: super::Com::CY, + pub date: f64, + pub bstrVal: ::windows_sys::core::BSTR, + pub punkVal: ::windows_sys::core::IUnknown, + pub pdispVal: super::Com::IDispatch, + pub parray: *mut super::Com::SAFEARRAY, + pub pbVal: *mut u8, + pub piVal: *mut i16, + pub plVal: *mut i32, + pub pllVal: *mut i64, + pub pfltVal: *mut f32, + pub pdblVal: *mut f64, + pub pboolVal: *mut super::super::Foundation::VARIANT_BOOL, + pub __OBSOLETE__VARIANT_PBOOL: *mut super::super::Foundation::VARIANT_BOOL, + pub pscode: *mut i32, + pub pcyVal: *mut super::Com::CY, + pub pdate: *mut f64, + pub pbstrVal: *mut ::windows_sys::core::BSTR, + pub ppunkVal: *mut ::windows_sys::core::IUnknown, + pub ppdispVal: *mut super::Com::IDispatch, + pub pparray: *mut *mut super::Com::SAFEARRAY, + pub pvarVal: *mut VARIANT, + pub byref: *mut ::core::ffi::c_void, + pub cVal: u8, + pub uiVal: u16, + pub ulVal: u32, + pub ullVal: u64, + pub intVal: i32, + pub uintVal: u32, + pub pdecVal: *mut super::super::Foundation::DECIMAL, + pub pcVal: ::windows_sys::core::PSTR, + pub puiVal: *mut u16, + pub pulVal: *mut u32, + pub pullVal: *mut u64, + pub pintVal: *mut i32, + pub puintVal: *mut u32, + pub Anonymous: VARIANT_0_0_0_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +impl ::core::marker::Copy for VARIANT_0_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +impl ::core::clone::Clone for VARIANT_0_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +pub struct VARIANT_0_0_0_0 { + pub pvRecord: *mut ::core::ffi::c_void, + pub pRecInfo: super::Ole::IRecordInfo, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +impl ::core::marker::Copy for VARIANT_0_0_0_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +impl ::core::clone::Clone for VARIANT_0_0_0_0 { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/VirtualDosMachines/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/VirtualDosMachines/mod.rs new file mode 100644 index 000000000..e07e3cc83 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/VirtualDosMachines/mod.rs @@ -0,0 +1,438 @@ +pub const DBG_ATTACH: u32 = 14u32; +pub const DBG_BREAK: u32 = 6u32; +pub const DBG_DIVOVERFLOW: u32 = 8u32; +pub const DBG_DLLSTART: u32 = 12u32; +pub const DBG_DLLSTOP: u32 = 13u32; +pub const DBG_GPFAULT: u32 = 7u32; +pub const DBG_GPFAULT2: u32 = 21u32; +pub const DBG_INIT: u32 = 20u32; +pub const DBG_INSTRFAULT: u32 = 9u32; +pub const DBG_MODFREE: u32 = 4u32; +pub const DBG_MODLOAD: u32 = 3u32; +pub const DBG_MODMOVE: u32 = 19u32; +pub const DBG_SEGFREE: u32 = 2u32; +pub const DBG_SEGLOAD: u32 = 0u32; +pub const DBG_SEGMOVE: u32 = 1u32; +pub const DBG_SINGLESTEP: u32 = 5u32; +pub const DBG_STACKFAULT: u32 = 16u32; +pub const DBG_TASKSTART: u32 = 10u32; +pub const DBG_TASKSTOP: u32 = 11u32; +pub const DBG_TEMPBP: u32 = 18u32; +pub const DBG_TOOLHELP: u32 = 15u32; +pub const DBG_WOWINIT: u32 = 17u32; +pub const GD_ACCELERATORS: u32 = 9u32; +pub const GD_BITMAP: u32 = 2u32; +pub const GD_CURSOR: u32 = 12u32; +pub const GD_CURSORCOMPONENT: u32 = 1u32; +pub const GD_DIALOG: u32 = 5u32; +pub const GD_ERRTABLE: u32 = 11u32; +pub const GD_FONT: u32 = 8u32; +pub const GD_FONTDIR: u32 = 7u32; +pub const GD_ICON: u32 = 14u32; +pub const GD_ICONCOMPONENT: u32 = 3u32; +pub const GD_MAX_RESOURCE: u32 = 15u32; +pub const GD_MENU: u32 = 4u32; +pub const GD_NAMETABLE: u32 = 15u32; +pub const GD_RCDATA: u32 = 10u32; +pub const GD_STRING: u32 = 6u32; +pub const GD_USERDEFINED: u32 = 0u32; +pub const GLOBAL_ALL: u32 = 0u32; +pub const GLOBAL_FREE: u32 = 2u32; +pub const GLOBAL_LRU: u32 = 1u32; +pub const GT_BURGERMASTER: u32 = 10u32; +pub const GT_CODE: u32 = 3u32; +pub const GT_DATA: u32 = 2u32; +pub const GT_DGROUP: u32 = 1u32; +pub const GT_FREE: u32 = 7u32; +pub const GT_INTERNAL: u32 = 8u32; +pub const GT_MODULE: u32 = 6u32; +pub const GT_RESOURCE: u32 = 5u32; +pub const GT_SENTINEL: u32 = 9u32; +pub const GT_TASK: u32 = 4u32; +pub const GT_UNKNOWN: u32 = 0u32; +pub const MAX_MODULE_NAME: u32 = 9u32; +pub const MAX_PATH16: u32 = 255u32; +pub const SN_CODE: u32 = 0u32; +pub const SN_DATA: u32 = 1u32; +pub const SN_V86: u32 = 2u32; +pub const STATUS_VDM_EVENT: i32 = 1073741829i32; +pub const V86FLAGS_ALIGNMENT: u32 = 262144u32; +pub const V86FLAGS_AUXCARRY: u32 = 16u32; +pub const V86FLAGS_CARRY: u32 = 1u32; +pub const V86FLAGS_DIRECTION: u32 = 1024u32; +pub const V86FLAGS_INTERRUPT: u32 = 512u32; +pub const V86FLAGS_IOPL: u32 = 12288u32; +pub const V86FLAGS_IOPL_BITS: u32 = 18u32; +pub const V86FLAGS_OVERFLOW: u32 = 2048u32; +pub const V86FLAGS_PARITY: u32 = 4u32; +pub const V86FLAGS_RESUME: u32 = 65536u32; +pub const V86FLAGS_SIGN: u32 = 128u32; +pub const V86FLAGS_TRACE: u32 = 256u32; +pub const V86FLAGS_V86: u32 = 131072u32; +pub const V86FLAGS_ZERO: u32 = 64u32; +pub const VDMADDR_PM16: u32 = 4u32; +pub const VDMADDR_PM32: u32 = 16u32; +pub const VDMADDR_V86: u32 = 2u32; +pub const VDMCONTEXT_i386: u32 = 65536u32; +pub const VDMCONTEXT_i486: u32 = 65536u32; +pub const VDMDBG_BREAK_DEBUGGER: u32 = 16u32; +pub const VDMDBG_BREAK_DIVIDEBYZERO: u32 = 256u32; +pub const VDMDBG_BREAK_DOSTASK: u32 = 1u32; +pub const VDMDBG_BREAK_EXCEPTIONS: u32 = 8u32; +pub const VDMDBG_BREAK_LOADDLL: u32 = 4u32; +pub const VDMDBG_BREAK_WOWTASK: u32 = 2u32; +pub const VDMDBG_INITIAL_FLAGS: u32 = 256u32; +pub const VDMDBG_MAX_SYMBOL_BUFFER: u32 = 256u32; +pub const VDMDBG_TRACE_HISTORY: u32 = 128u32; +pub const VDMEVENT_ALLFLAGS: u32 = 57344u32; +pub const VDMEVENT_NEEDS_INTERACTIVE: u32 = 32768u32; +pub const VDMEVENT_PE: u32 = 8192u32; +pub const VDMEVENT_PM16: u32 = 2u32; +pub const VDMEVENT_V86: u32 = 1u32; +pub const VDMEVENT_VERBOSE: u32 = 16384u32; +pub const VDM_KGDT_R3_CODE: u32 = 24u32; +pub const VDM_MAXIMUM_SUPPORTED_EXTENSION: u32 = 512u32; +pub const WOW_SYSTEM: u32 = 1u32; +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GLOBALENTRY { + pub dwSize: u32, + pub dwAddress: u32, + pub dwBlockSize: u32, + pub hBlock: super::super::Foundation::HANDLE, + pub wcLock: u16, + pub wcPageLock: u16, + pub wFlags: u16, + pub wHeapPresent: super::super::Foundation::BOOL, + pub hOwner: super::super::Foundation::HANDLE, + pub wType: u16, + pub wData: u16, + pub dwNext: u32, + pub dwNextAlt: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GLOBALENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GLOBALENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_NOTE { + pub Module: [u8; 10], + pub FileName: [u8; 256], + pub hModule: u16, + pub hTask: u16, +} +impl ::core::marker::Copy for IMAGE_NOTE {} +impl ::core::clone::Clone for IMAGE_NOTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(4))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MODULEENTRY { + pub dwSize: u32, + pub szModule: [u8; 10], + pub hModule: super::super::Foundation::HANDLE, + pub wcUsage: u16, + pub szExePath: [u8; 256], + pub wNext: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MODULEENTRY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MODULEENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SEGMENT_NOTE { + pub Selector1: u16, + pub Selector2: u16, + pub Segment: u16, + pub Module: [u8; 10], + pub FileName: [u8; 256], + pub Type: u16, + pub Length: u32, +} +impl ::core::marker::Copy for SEGMENT_NOTE {} +impl ::core::clone::Clone for SEGMENT_NOTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TEMP_BP_NOTE { + pub Seg: u16, + pub Offset: u32, + pub bPM: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TEMP_BP_NOTE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TEMP_BP_NOTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Kernel")] +pub struct VDMCONTEXT { + pub ContextFlags: u32, + pub Dr0: u32, + pub Dr1: u32, + pub Dr2: u32, + pub Dr3: u32, + pub Dr6: u32, + pub Dr7: u32, + pub FloatSave: super::Kernel::FLOATING_SAVE_AREA, + pub SegGs: u32, + pub SegFs: u32, + pub SegEs: u32, + pub SegDs: u32, + pub Edi: u32, + pub Esi: u32, + pub Ebx: u32, + pub Edx: u32, + pub Ecx: u32, + pub Eax: u32, + pub Ebp: u32, + pub Eip: u32, + pub SegCs: u32, + pub EFlags: u32, + pub Esp: u32, + pub SegSs: u32, + pub ExtendedRegisters: [u8; 512], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for VDMCONTEXT {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for VDMCONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +#[cfg(feature = "Win32_System_Kernel")] +pub struct VDMCONTEXT_WITHOUT_XSAVE { + pub ContextFlags: u32, + pub Dr0: u32, + pub Dr1: u32, + pub Dr2: u32, + pub Dr3: u32, + pub Dr6: u32, + pub Dr7: u32, + pub FloatSave: super::Kernel::FLOATING_SAVE_AREA, + pub SegGs: u32, + pub SegFs: u32, + pub SegEs: u32, + pub SegDs: u32, + pub Edi: u32, + pub Esi: u32, + pub Ebx: u32, + pub Edx: u32, + pub Ecx: u32, + pub Eax: u32, + pub Ebp: u32, + pub Eip: u32, + pub SegCs: u32, + pub EFlags: u32, + pub Esp: u32, + pub SegSs: u32, +} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::marker::Copy for VDMCONTEXT_WITHOUT_XSAVE {} +#[cfg(feature = "Win32_System_Kernel")] +impl ::core::clone::Clone for VDMCONTEXT_WITHOUT_XSAVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct VDMLDT_ENTRY { + pub LimitLow: u16, + pub BaseLow: u16, + pub HighWord: VDMLDT_ENTRY_0, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for VDMLDT_ENTRY {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for VDMLDT_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub union VDMLDT_ENTRY_0 { + pub Bytes: VDMLDT_ENTRY_0_1, + pub Bits: VDMLDT_ENTRY_0_0, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for VDMLDT_ENTRY_0 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for VDMLDT_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct VDMLDT_ENTRY_0_0 { + pub _bitfield: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for VDMLDT_ENTRY_0_0 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for VDMLDT_ENTRY_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct VDMLDT_ENTRY_0_1 { + pub BaseMid: u8, + pub Flags1: u8, + pub Flags2: u8, + pub BaseHi: u8, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for VDMLDT_ENTRY_0_1 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for VDMLDT_ENTRY_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VDM_SEGINFO { + pub Selector: u16, + pub SegNumber: u16, + pub Length: u32, + pub Type: u16, + pub ModuleName: [u8; 9], + pub FileName: [u8; 255], +} +impl ::core::marker::Copy for VDM_SEGINFO {} +impl ::core::clone::Clone for VDM_SEGINFO { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Threading"))] +pub type DEBUGEVENTPROC = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PROCESSENUMPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type TASKENUMPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type TASKENUMPROCEX = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMBREAKTHREADPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMDETECTWOWPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMENUMPROCESSWOWPROC = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMENUMTASKWOWEXPROC = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMENUMTASKWOWPROC = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMGETADDREXPRESSIONPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub type VDMGETCONTEXTPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub type VDMGETCONTEXTPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMGETDBGFLAGSPROC = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMGETMODULESELECTORPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMGETPOINTERPROC = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMGETSEGMENTINFOPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMGETSELECTORMODULEPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMGETSYMBOLPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub type VDMGETTHREADSELECTORENTRYPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] +pub type VDMGETTHREADSELECTORENTRYPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Threading"))] +pub type VDMGLOBALFIRSTPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Threading"))] +pub type VDMGLOBALNEXTPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMISMODULELOADEDPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMKILLWOWPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Threading"))] +pub type VDMMODULEFIRSTPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Threading"))] +pub type VDMMODULENEXTPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Threading\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Threading"))] +pub type VDMPROCESSEXCEPTIONPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub type VDMSETCONTEXTPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug", feature = "Win32_System_Kernel"))] +pub type VDMSETCONTEXTPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMSETDBGFLAGSPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMSTARTTASKINWOWPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type VDMTERMINATETASKINWOWPROC = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/WindowsProgramming/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/WindowsProgramming/mod.rs new file mode 100644 index 000000000..46087cf32 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/WindowsProgramming/mod.rs @@ -0,0 +1,2231 @@ +::windows_targets::link!("advpack.dll" "system" fn AddDelBackupEntryA(lpcszfilelist : ::windows_sys::core::PCSTR, lpcszbackupdir : ::windows_sys::core::PCSTR, lpcszbasename : ::windows_sys::core::PCSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("advpack.dll" "system" fn AddDelBackupEntryW(lpcszfilelist : ::windows_sys::core::PCWSTR, lpcszbackupdir : ::windows_sys::core::PCWSTR, lpcszbasename : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AdvInstallFileA(hwnd : super::super::Foundation:: HWND, lpszsourcedir : ::windows_sys::core::PCSTR, lpszsourcefile : ::windows_sys::core::PCSTR, lpszdestdir : ::windows_sys::core::PCSTR, lpszdestfile : ::windows_sys::core::PCSTR, dwflags : u32, dwreserved : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AdvInstallFileW(hwnd : super::super::Foundation:: HWND, lpszsourcedir : ::windows_sys::core::PCWSTR, lpszsourcefile : ::windows_sys::core::PCWSTR, lpszdestdir : ::windows_sys::core::PCWSTR, lpszdestfile : ::windows_sys::core::PCWSTR, dwflags : u32, dwreserved : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("apphelp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ApphelpCheckShellObject(objectclsid : *const ::windows_sys::core::GUID, bshimifnecessary : super::super::Foundation:: BOOL, pullflags : *mut u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CancelDeviceWakeupRequest(hdevice : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("advpack.dll" "system" fn CloseINFEngine(hinf : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-realtime-l1-1-2.dll" "system" fn ConvertAuxiliaryCounterToPerformanceCounter(ullauxiliarycountervalue : u64, lpperformancecountervalue : *mut u64, lpconversionerror : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-realtime-l1-1-2.dll" "system" fn ConvertPerformanceCounterToAuxiliaryCounter(ullperformancecountervalue : u64, lpauxiliarycountervalue : *mut u64, lpconversionerror : *mut u64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("dciman32.dll" "system" fn DCIBeginAccess(pdci : *mut DCISURFACEINFO, x : i32, y : i32, dx : i32, dy : i32) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn DCICloseProvider(hdc : super::super::Graphics::Gdi:: HDC) -> ()); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn DCICreateOffscreen(hdc : super::super::Graphics::Gdi:: HDC, dwcompression : u32, dwredmask : u32, dwgreenmask : u32, dwbluemask : u32, dwwidth : u32, dwheight : u32, dwdcicaps : u32, dwbitcount : u32, lplpsurface : *mut *mut DCIOFFSCREEN) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn DCICreateOverlay(hdc : super::super::Graphics::Gdi:: HDC, lpoffscreensurf : *mut ::core::ffi::c_void, lplpsurface : *mut *mut DCIOVERLAY) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn DCICreatePrimary(hdc : super::super::Graphics::Gdi:: HDC, lplpsurface : *mut *mut DCISURFACEINFO) -> i32); +::windows_targets::link!("dciman32.dll" "system" fn DCIDestroy(pdci : *mut DCISURFACEINFO) -> ()); +::windows_targets::link!("dciman32.dll" "system" fn DCIDraw(pdci : *mut DCIOFFSCREEN) -> i32); +::windows_targets::link!("dciman32.dll" "system" fn DCIEndAccess(pdci : *mut DCISURFACEINFO) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DCIEnum(hdc : super::super::Graphics::Gdi:: HDC, lprdst : *mut super::super::Foundation:: RECT, lprsrc : *mut super::super::Foundation:: RECT, lpfncallback : *mut ::core::ffi::c_void, lpcontext : *mut ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn DCIOpenProvider() -> super::super::Graphics::Gdi:: HDC); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DCISetClipList(pdci : *mut DCIOFFSCREEN, prd : *mut super::super::Graphics::Gdi:: RGNDATA) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DCISetDestination(pdci : *mut DCIOFFSCREEN, dst : *mut super::super::Foundation:: RECT, src : *mut super::super::Foundation:: RECT) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DCISetSrcDestClip(pdci : *mut DCIOFFSCREEN, srcrc : *mut super::super::Foundation:: RECT, destrc : *mut super::super::Foundation:: RECT, prd : *mut super::super::Graphics::Gdi:: RGNDATA) -> i32); +::windows_targets::link!("advpack.dll" "system" fn DelNodeA(pszfileordirname : ::windows_sys::core::PCSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DelNodeRunDLL32W(hwnd : super::super::Foundation:: HWND, hinstance : super::super::Foundation:: HINSTANCE, pszparms : ::windows_sys::core::PWSTR, nshow : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("advpack.dll" "system" fn DelNodeW(pszfileordirname : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsHostnameToComputerNameA(hostname : ::windows_sys::core::PCSTR, computername : ::windows_sys::core::PSTR, nsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DnsHostnameToComputerNameW(hostname : ::windows_sys::core::PCWSTR, computername : ::windows_sys::core::PWSTR, nsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DosDateTimeToFileTime(wfatdate : u16, wfattime : u16, lpfiletime : *mut super::super::Foundation:: FILETIME) -> super::super::Foundation:: BOOL); +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableProcessOptionalXStateFeatures(features : u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExecuteCabA(hwnd : super::super::Foundation:: HWND, pcab : *mut CABINFOA, preserved : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ExecuteCabW(hwnd : super::super::Foundation:: HWND, pcab : *mut CABINFOW, preserved : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("advpack.dll" "system" fn ExtractFilesA(pszcabname : ::windows_sys::core::PCSTR, pszexpanddir : ::windows_sys::core::PCSTR, dwflags : u32, pszfilelist : ::windows_sys::core::PCSTR, lpreserved : *mut ::core::ffi::c_void, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("advpack.dll" "system" fn ExtractFilesW(pszcabname : ::windows_sys::core::PCWSTR, pszexpanddir : ::windows_sys::core::PCWSTR, dwflags : u32, pszfilelist : ::windows_sys::core::PCWSTR, lpreserved : *mut ::core::ffi::c_void, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("advpack.dll" "system" fn FileSaveMarkNotExistA(lpfilelist : ::windows_sys::core::PCSTR, lpdir : ::windows_sys::core::PCSTR, lpbasename : ::windows_sys::core::PCSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("advpack.dll" "system" fn FileSaveMarkNotExistW(lpfilelist : ::windows_sys::core::PCWSTR, lpdir : ::windows_sys::core::PCWSTR, lpbasename : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FileSaveRestoreOnINFA(hwnd : super::super::Foundation:: HWND, psztitle : ::windows_sys::core::PCSTR, pszinf : ::windows_sys::core::PCSTR, pszsection : ::windows_sys::core::PCSTR, pszbackupdir : ::windows_sys::core::PCSTR, pszbasebackupfile : ::windows_sys::core::PCSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FileSaveRestoreOnINFW(hwnd : super::super::Foundation:: HWND, psztitle : ::windows_sys::core::PCWSTR, pszinf : ::windows_sys::core::PCWSTR, pszsection : ::windows_sys::core::PCWSTR, pszbackupdir : ::windows_sys::core::PCWSTR, pszbasebackupfile : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FileSaveRestoreW(hdlg : super::super::Foundation:: HWND, lpfilelist : ::windows_sys::core::PCWSTR, lpdir : ::windows_sys::core::PCWSTR, lpbasename : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FileTimeToDosDateTime(lpfiletime : *const super::super::Foundation:: FILETIME, lpfatdate : *mut u16, lpfattime : *mut u16) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-dx-d3dkmt-l1-1-0.dll" "system" fn GdiEntry13() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetComputerNameA(lpbuffer : ::windows_sys::core::PSTR, nsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetComputerNameW(lpbuffer : ::windows_sys::core::PWSTR, nsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentHwProfileA(lphwprofileinfo : *mut HW_PROFILE_INFOA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentHwProfileW(lphwprofileinfo : *mut HW_PROFILE_INFOW) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetDCRegionData(hdc : super::super::Graphics::Gdi:: HDC, size : u32, prd : *mut super::super::Graphics::Gdi:: RGNDATA) -> u32); +::windows_targets::link!("api-ms-win-core-featurestaging-l1-1-0.dll" "system" fn GetFeatureEnabledState(featureid : u32, changetime : FEATURE_CHANGE_TIME) -> FEATURE_ENABLED_STATE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-featurestaging-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFeatureVariant(featureid : u32, changetime : FEATURE_CHANGE_TIME, payloadid : *mut u32, hasnotification : *mut super::super::Foundation:: BOOL) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetFirmwareEnvironmentVariableA(lpname : ::windows_sys::core::PCSTR, lpguid : ::windows_sys::core::PCSTR, pbuffer : *mut ::core::ffi::c_void, nsize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetFirmwareEnvironmentVariableExA(lpname : ::windows_sys::core::PCSTR, lpguid : ::windows_sys::core::PCSTR, pbuffer : *mut ::core::ffi::c_void, nsize : u32, pdwattribubutes : *mut u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetFirmwareEnvironmentVariableExW(lpname : ::windows_sys::core::PCWSTR, lpguid : ::windows_sys::core::PCWSTR, pbuffer : *mut ::core::ffi::c_void, nsize : u32, pdwattribubutes : *mut u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetFirmwareEnvironmentVariableW(lpname : ::windows_sys::core::PCWSTR, lpguid : ::windows_sys::core::PCWSTR, pbuffer : *mut ::core::ffi::c_void, nsize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetPrivateProfileIntA(lpappname : ::windows_sys::core::PCSTR, lpkeyname : ::windows_sys::core::PCSTR, ndefault : i32, lpfilename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetPrivateProfileIntW(lpappname : ::windows_sys::core::PCWSTR, lpkeyname : ::windows_sys::core::PCWSTR, ndefault : i32, lpfilename : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn GetPrivateProfileSectionA(lpappname : ::windows_sys::core::PCSTR, lpreturnedstring : ::windows_sys::core::PSTR, nsize : u32, lpfilename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetPrivateProfileSectionNamesA(lpszreturnbuffer : ::windows_sys::core::PSTR, nsize : u32, lpfilename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetPrivateProfileSectionNamesW(lpszreturnbuffer : ::windows_sys::core::PWSTR, nsize : u32, lpfilename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetPrivateProfileSectionW(lpappname : ::windows_sys::core::PCWSTR, lpreturnedstring : ::windows_sys::core::PWSTR, nsize : u32, lpfilename : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetPrivateProfileStringA(lpappname : ::windows_sys::core::PCSTR, lpkeyname : ::windows_sys::core::PCSTR, lpdefault : ::windows_sys::core::PCSTR, lpreturnedstring : ::windows_sys::core::PSTR, nsize : u32, lpfilename : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetPrivateProfileStringW(lpappname : ::windows_sys::core::PCWSTR, lpkeyname : ::windows_sys::core::PCWSTR, lpdefault : ::windows_sys::core::PCWSTR, lpreturnedstring : ::windows_sys::core::PWSTR, nsize : u32, lpfilename : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrivateProfileStructA(lpszsection : ::windows_sys::core::PCSTR, lpszkey : ::windows_sys::core::PCSTR, lpstruct : *mut ::core::ffi::c_void, usizestruct : u32, szfile : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPrivateProfileStructW(lpszsection : ::windows_sys::core::PCWSTR, lpszkey : ::windows_sys::core::PCWSTR, lpstruct : *mut ::core::ffi::c_void, usizestruct : u32, szfile : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn GetProfileIntA(lpappname : ::windows_sys::core::PCSTR, lpkeyname : ::windows_sys::core::PCSTR, ndefault : i32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetProfileIntW(lpappname : ::windows_sys::core::PCWSTR, lpkeyname : ::windows_sys::core::PCWSTR, ndefault : i32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetProfileSectionA(lpappname : ::windows_sys::core::PCSTR, lpreturnedstring : ::windows_sys::core::PSTR, nsize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetProfileSectionW(lpappname : ::windows_sys::core::PCWSTR, lpreturnedstring : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetProfileStringA(lpappname : ::windows_sys::core::PCSTR, lpkeyname : ::windows_sys::core::PCSTR, lpdefault : ::windows_sys::core::PCSTR, lpreturnedstring : ::windows_sys::core::PSTR, nsize : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GetProfileStringW(lpappname : ::windows_sys::core::PCWSTR, lpkeyname : ::windows_sys::core::PCWSTR, lpdefault : ::windows_sys::core::PCWSTR, lpreturnedstring : ::windows_sys::core::PWSTR, nsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemRegistryQuota(pdwquotaallowed : *mut u32, pdwquotaused : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +::windows_targets::link!("kernel32.dll" "system" fn GetThreadEnabledXStateFeatures() -> u64); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUserNameA(lpbuffer : ::windows_sys::core::PSTR, pcbbuffer : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUserNameW(lpbuffer : ::windows_sys::core::PWSTR, pcbbuffer : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVersionFromFileA(lpszfilename : ::windows_sys::core::PCSTR, pdwmsver : *mut u32, pdwlsver : *mut u32, bversion : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVersionFromFileExA(lpszfilename : ::windows_sys::core::PCSTR, pdwmsver : *mut u32, pdwlsver : *mut u32, bversion : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVersionFromFileExW(lpszfilename : ::windows_sys::core::PCWSTR, pdwmsver : *mut u32, pdwlsver : *mut u32, bversion : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetVersionFromFileW(lpszfilename : ::windows_sys::core::PCWSTR, pdwmsver : *mut u32, pdwlsver : *mut u32, bversion : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetWindowRegionData(hwnd : super::super::Foundation:: HWND, size : u32, prd : *mut super::super::Graphics::Gdi:: RGNDATA) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn GlobalCompact(dwminfree : u32) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GlobalFix(hmem : super::super::Foundation:: HGLOBAL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GlobalUnWire(hmem : super::super::Foundation:: HGLOBAL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GlobalUnfix(hmem : super::super::Foundation:: HGLOBAL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GlobalWire(hmem : super::super::Foundation:: HGLOBAL) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IMPGetIMEA(param0 : super::super::Foundation:: HWND, param1 : *mut IMEPROA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IMPGetIMEW(param0 : super::super::Foundation:: HWND, param1 : *mut IMEPROW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IMPQueryIMEA(param0 : *mut IMEPROA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IMPQueryIMEW(param0 : *mut IMEPROW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IMPSetIMEA(param0 : super::super::Foundation:: HWND, param1 : *mut IMEPROA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IMPSetIMEW(param0 : super::super::Foundation:: HWND, param1 : *mut IMEPROW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-apiquery-l2-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsApiSetImplemented(contract : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsBadHugeReadPtr(lp : *const ::core::ffi::c_void, ucb : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsBadHugeWritePtr(lp : *const ::core::ffi::c_void, ucb : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsNTAdmin(dwreserved : u32, lpdwreserved : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsNativeVhdBoot(nativevhdboot : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsTokenUntrusted(tokenhandle : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LaunchINFSectionExW(hwnd : super::super::Foundation:: HWND, hinstance : super::super::Foundation:: HINSTANCE, pszparms : ::windows_sys::core::PCWSTR, nshow : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LaunchINFSectionW(hwndowner : super::super::Foundation:: HWND, hinstance : super::super::Foundation:: HINSTANCE, pszparams : ::windows_sys::core::PWSTR, nshow : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn LocalCompact(uminfree : u32) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LocalShrink(hmem : super::super::Foundation:: HLOCAL, cbnewsize : u32) -> usize); +::windows_targets::link!("kernel32.dll" "system" fn MulDiv(nnumber : i32, nnumerator : i32, ndenominator : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NeedReboot(dwrebootcheck : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("advpack.dll" "system" fn NeedRebootInit() -> u32); +::windows_targets::link!("advpack.dll" "system" fn OpenINFEngineA(pszinffilename : ::windows_sys::core::PCSTR, pszinstallsection : ::windows_sys::core::PCSTR, dwflags : u32, phinf : *mut *mut ::core::ffi::c_void, pvreserved : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("advpack.dll" "system" fn OpenINFEngineW(pszinffilename : ::windows_sys::core::PCWSTR, pszinstallsection : ::windows_sys::core::PCWSTR, dwflags : u32, phinf : *mut *mut ::core::ffi::c_void, pvreserved : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenMutexA(dwdesiredaccess : u32, binherithandle : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenSemaphoreA(dwdesiredaccess : u32, binherithandle : super::super::Foundation:: BOOL, lpname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("api-ms-win-core-realtime-l1-1-2.dll" "system" fn QueryAuxiliaryCounterFrequency(lpauxiliarycounterfrequency : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryIdleProcessorCycleTime(bufferlength : *mut u32, processoridlecycletime : *mut u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryIdleProcessorCycleTimeEx(group : u16, bufferlength : *mut u32, processoridlecycletime : *mut u64) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-core-realtime-l1-1-1.dll" "system" fn QueryInterruptTime(lpinterrupttime : *mut u64) -> ()); +::windows_targets::link!("api-ms-win-core-realtime-l1-1-1.dll" "system" fn QueryInterruptTimePrecise(lpinterrupttimeprecise : *mut u64) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryProcessCycleTime(processhandle : super::super::Foundation:: HANDLE, cycletime : *mut u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryThreadCycleTime(threadhandle : super::super::Foundation:: HANDLE, cycletime : *mut u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn QueryUnbiasedInterruptTime(unbiasedtime : *mut u64) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-core-realtime-l1-1-1.dll" "system" fn QueryUnbiasedInterruptTimePrecise(lpunbiasedinterrupttimeprecise : *mut u64) -> ()); +::windows_targets::link!("api-ms-win-core-backgroundtask-l1-1-0.dll" "system" fn RaiseCustomSystemEventTrigger(customsystemeventtriggerconfig : *const CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RebootCheckOnInstallA(hwnd : super::super::Foundation:: HWND, pszinf : ::windows_sys::core::PCSTR, pszsec : ::windows_sys::core::PCSTR, dwreserved : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RebootCheckOnInstallW(hwnd : super::super::Foundation:: HWND, pszinf : ::windows_sys::core::PCWSTR, pszsec : ::windows_sys::core::PCWSTR, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-featurestaging-l1-1-0.dll" "system" fn RecordFeatureError(featureid : u32, error : *const FEATURE_ERROR) -> ()); +::windows_targets::link!("api-ms-win-core-featurestaging-l1-1-0.dll" "system" fn RecordFeatureUsage(featureid : u32, kind : u32, addend : u32, originname : ::windows_sys::core::PCSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegInstallA(hmod : super::super::Foundation:: HMODULE, pszsection : ::windows_sys::core::PCSTR, psttable : *const STRTABLEA) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegInstallW(hmod : super::super::Foundation:: HMODULE, pszsection : ::windows_sys::core::PCWSTR, psttable : *const STRTABLEW) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn RegRestoreAllA(hwnd : super::super::Foundation:: HWND, psztitlestring : ::windows_sys::core::PCSTR, hkbckupkey : super::Registry:: HKEY) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn RegRestoreAllW(hwnd : super::super::Foundation:: HWND, psztitlestring : ::windows_sys::core::PCWSTR, hkbckupkey : super::Registry:: HKEY) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn RegSaveRestoreA(hwnd : super::super::Foundation:: HWND, psztitlestring : ::windows_sys::core::PCSTR, hkbckupkey : super::Registry:: HKEY, pcszrootkey : ::windows_sys::core::PCSTR, pcszsubkey : ::windows_sys::core::PCSTR, pcszvaluename : ::windows_sys::core::PCSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn RegSaveRestoreOnINFA(hwnd : super::super::Foundation:: HWND, psztitle : ::windows_sys::core::PCSTR, pszinf : ::windows_sys::core::PCSTR, pszsection : ::windows_sys::core::PCSTR, hhklmbackkey : super::Registry:: HKEY, hhkcubackkey : super::Registry:: HKEY, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn RegSaveRestoreOnINFW(hwnd : super::super::Foundation:: HWND, psztitle : ::windows_sys::core::PCWSTR, pszinf : ::windows_sys::core::PCWSTR, pszsection : ::windows_sys::core::PCWSTR, hhklmbackkey : super::Registry:: HKEY, hhkcubackkey : super::Registry:: HKEY, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn RegSaveRestoreW(hwnd : super::super::Foundation:: HWND, psztitlestring : ::windows_sys::core::PCWSTR, hkbckupkey : super::Registry:: HKEY, pcszrootkey : ::windows_sys::core::PCWSTR, pcszsubkey : ::windows_sys::core::PCWSTR, pcszvaluename : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReplacePartitionUnit(targetpartition : ::windows_sys::core::PCWSTR, sparepartition : ::windows_sys::core::PCWSTR, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RequestDeviceWakeup(hdevice : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlAnsiStringToUnicodeString(destinationstring : *mut super::super::Foundation:: UNICODE_STRING, sourcestring : *mut super::Kernel:: STRING, allocatedestinationstring : super::super::Foundation:: BOOLEAN) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlCharToInteger(string : *mut i8, base : u32, value : *mut u32) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlFreeAnsiString(ansistring : *mut super::Kernel:: STRING) -> ()); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlFreeOemString(oemstring : *mut super::Kernel:: STRING) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlFreeUnicodeString(unicodestring : *mut super::super::Foundation:: UNICODE_STRING) -> ()); +::windows_targets::link!("ntdll.dll" "system" fn RtlGetReturnAddressHijackTarget() -> usize); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlInitAnsiString(destinationstring : *mut super::Kernel:: STRING, sourcestring : *mut i8) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlInitAnsiStringEx(destinationstring : *mut super::Kernel:: STRING, sourcestring : *mut i8) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_System_Kernel")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_System_Kernel\"`"] fn RtlInitString(destinationstring : *mut super::Kernel:: STRING, sourcestring : *mut i8) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlInitStringEx(destinationstring : *mut super::Kernel:: STRING, sourcestring : *mut i8) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlInitUnicodeString(destinationstring : *mut super::super::Foundation:: UNICODE_STRING, sourcestring : ::windows_sys::core::PCWSTR) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlIsNameLegalDOS8Dot3(name : *mut super::super::Foundation:: UNICODE_STRING, oemname : *mut super::Kernel:: STRING, namecontainsspaces : *mut super::super::Foundation:: BOOLEAN) -> super::super::Foundation:: BOOLEAN); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlLocalTimeToSystemTime(localtime : *mut i64, systemtime : *mut i64) -> super::super::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlRaiseCustomSystemEventTrigger(triggerconfig : *const CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlTimeToSecondsSince1970(time : *mut i64, elapsedseconds : *mut u32) -> super::super::Foundation:: BOOLEAN); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlUnicodeStringToAnsiString(destinationstring : *mut super::Kernel:: STRING, sourcestring : *mut super::super::Foundation:: UNICODE_STRING, allocatedestinationstring : super::super::Foundation:: BOOLEAN) -> super::super::Foundation:: NTSTATUS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] fn RtlUnicodeStringToOemString(destinationstring : *mut super::Kernel:: STRING, sourcestring : *mut super::super::Foundation:: UNICODE_STRING, allocatedestinationstring : super::super::Foundation:: BOOLEAN) -> super::super::Foundation:: NTSTATUS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ntdll.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RtlUnicodeToMultiByteSize(bytesinmultibytestring : *mut u32, unicodestring : ::windows_sys::core::PCWSTR, bytesinunicodestring : u32) -> super::super::Foundation:: NTSTATUS); +::windows_targets::link!("ntdll.dll" "system" fn RtlUniform(seed : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RunSetupCommandA(hwnd : super::super::Foundation:: HWND, szcmdname : ::windows_sys::core::PCSTR, szinfsection : ::windows_sys::core::PCSTR, szdir : ::windows_sys::core::PCSTR, lpsztitle : ::windows_sys::core::PCSTR, phexe : *mut super::super::Foundation:: HANDLE, dwflags : u32, pvreserved : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RunSetupCommandW(hwnd : super::super::Foundation:: HWND, szcmdname : ::windows_sys::core::PCWSTR, szinfsection : ::windows_sys::core::PCWSTR, szdir : ::windows_sys::core::PCWSTR, lpsztitle : ::windows_sys::core::PCWSTR, phexe : *mut super::super::Foundation:: HANDLE, dwflags : u32, pvreserved : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendIMEMessageExA(param0 : super::super::Foundation:: HWND, param1 : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendIMEMessageExW(param0 : super::super::Foundation:: HWND, param1 : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetEnvironmentStringsA(newenvironment : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFirmwareEnvironmentVariableA(lpname : ::windows_sys::core::PCSTR, lpguid : ::windows_sys::core::PCSTR, pvalue : *const ::core::ffi::c_void, nsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFirmwareEnvironmentVariableExA(lpname : ::windows_sys::core::PCSTR, lpguid : ::windows_sys::core::PCSTR, pvalue : *const ::core::ffi::c_void, nsize : u32, dwattributes : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFirmwareEnvironmentVariableExW(lpname : ::windows_sys::core::PCWSTR, lpguid : ::windows_sys::core::PCWSTR, pvalue : *const ::core::ffi::c_void, nsize : u32, dwattributes : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFirmwareEnvironmentVariableW(lpname : ::windows_sys::core::PCWSTR, lpguid : ::windows_sys::core::PCWSTR, pvalue : *const ::core::ffi::c_void, nsize : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn SetHandleCount(unumber : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMessageWaitingIndicator(hmsgindicator : super::super::Foundation:: HANDLE, ulmsgcount : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPerUserSecValuesA(pperuser : *mut PERUSERSECTIONA) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPerUserSecValuesW(pperuser : *mut PERUSERSECTIONW) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-featurestaging-l1-1-0.dll" "system" fn SubscribeFeatureStateChangeNotification(subscription : *mut FEATURE_STATE_CHANGE_SUBSCRIPTION, callback : PFEATURE_STATE_CHANGE_CALLBACK, context : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("advpack.dll" "system" fn TranslateInfStringA(pszinffilename : ::windows_sys::core::PCSTR, pszinstallsection : ::windows_sys::core::PCSTR, psztranslatesection : ::windows_sys::core::PCSTR, psztranslatekey : ::windows_sys::core::PCSTR, pszbuffer : ::windows_sys::core::PSTR, cchbuffer : u32, pdwrequiredsize : *mut u32, pvreserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("advpack.dll" "system" fn TranslateInfStringExA(hinf : *mut ::core::ffi::c_void, pszinffilename : ::windows_sys::core::PCSTR, psztranslatesection : ::windows_sys::core::PCSTR, psztranslatekey : ::windows_sys::core::PCSTR, pszbuffer : ::windows_sys::core::PSTR, dwbuffersize : u32, pdwrequiredsize : *mut u32, pvreserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("advpack.dll" "system" fn TranslateInfStringExW(hinf : *mut ::core::ffi::c_void, pszinffilename : ::windows_sys::core::PCWSTR, psztranslatesection : ::windows_sys::core::PCWSTR, psztranslatekey : ::windows_sys::core::PCWSTR, pszbuffer : ::windows_sys::core::PWSTR, dwbuffersize : u32, pdwrequiredsize : *mut u32, pvreserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("advpack.dll" "system" fn TranslateInfStringW(pszinffilename : ::windows_sys::core::PCWSTR, pszinstallsection : ::windows_sys::core::PCWSTR, psztranslatesection : ::windows_sys::core::PCWSTR, psztranslatekey : ::windows_sys::core::PCWSTR, pszbuffer : ::windows_sys::core::PWSTR, cchbuffer : u32, pdwrequiredsize : *mut u32, pvreserved : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-featurestaging-l1-1-0.dll" "system" fn UnsubscribeFeatureStateChangeNotification(subscription : FEATURE_STATE_CHANGE_SUBSCRIPTION) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UserInstStubWrapperA(hwnd : super::super::Foundation:: HWND, hinstance : super::super::Foundation:: HINSTANCE, pszparms : ::windows_sys::core::PCSTR, nshow : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UserInstStubWrapperW(hwnd : super::super::Foundation:: HWND, hinstance : super::super::Foundation:: HINSTANCE, pszparms : ::windows_sys::core::PCWSTR, nshow : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UserUnInstStubWrapperA(hwnd : super::super::Foundation:: HWND, hinstance : super::super::Foundation:: HINSTANCE, pszparms : ::windows_sys::core::PCSTR, nshow : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("advpack.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UserUnInstStubWrapperW(hwnd : super::super::Foundation:: HWND, hinstance : super::super::Foundation:: HINSTANCE, pszparms : ::windows_sys::core::PCWSTR, nshow : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WINNLSEnableIME(param0 : super::super::Foundation:: HWND, param1 : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WINNLSGetEnableStatus(param0 : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WINNLSGetIMEHotkey(param0 : super::super::Foundation:: HWND) -> u32); +::windows_targets::link!("dciman32.dll" "system" fn WinWatchClose(hww : HWINWATCH) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinWatchDidStatusChange(hww : HWINWATCH) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn WinWatchGetClipList(hww : HWINWATCH, prc : *mut super::super::Foundation:: RECT, size : u32, prd : *mut super::super::Graphics::Gdi:: RGNDATA) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinWatchNotify(hww : HWINWATCH, notifycallback : WINWATCHNOTIFYPROC, notifyparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("dciman32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinWatchOpen(hwnd : super::super::Foundation:: HWND) -> HWINWATCH); +::windows_targets::link!("wldp.dll" "system" fn WldpCanExecuteBuffer(host : *const ::windows_sys::core::GUID, options : WLDP_EXECUTION_EVALUATION_OPTIONS, buffer : *const u8, buffersize : u32, auditinfo : ::windows_sys::core::PCWSTR, result : *mut WLDP_EXECUTION_POLICY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WldpCanExecuteFile(host : *const ::windows_sys::core::GUID, options : WLDP_EXECUTION_EVALUATION_OPTIONS, filehandle : super::super::Foundation:: HANDLE, auditinfo : ::windows_sys::core::PCWSTR, result : *mut WLDP_EXECUTION_POLICY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("wldp.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn WldpCanExecuteStream(host : *const ::windows_sys::core::GUID, options : WLDP_EXECUTION_EVALUATION_OPTIONS, stream : super::Com:: IStream, auditinfo : ::windows_sys::core::PCWSTR, result : *mut WLDP_EXECUTION_POLICY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WldpGetLockdownPolicy(hostinformation : *const WLDP_HOST_INFORMATION, lockdownstate : *mut u32, lockdownflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WldpIsClassInApprovedList(classid : *const ::windows_sys::core::GUID, hostinformation : *const WLDP_HOST_INFORMATION, isapproved : *mut super::super::Foundation:: BOOL, optionalflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WldpIsDynamicCodePolicyEnabled(isenabled : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("wldp.dll" "system" fn WldpQueryDeviceSecurityInformation(information : *mut WLDP_DEVICE_SECURITY_INFORMATION, informationlength : u32, returnlength : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WldpQueryDynamicCodeTrust(filehandle : super::super::Foundation:: HANDLE, baseimage : *const ::core::ffi::c_void, imagesize : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("wldp.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WldpSetDynamicCodeTrust(filehandle : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WritePrivateProfileSectionA(lpappname : ::windows_sys::core::PCSTR, lpstring : ::windows_sys::core::PCSTR, lpfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WritePrivateProfileSectionW(lpappname : ::windows_sys::core::PCWSTR, lpstring : ::windows_sys::core::PCWSTR, lpfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WritePrivateProfileStringA(lpappname : ::windows_sys::core::PCSTR, lpkeyname : ::windows_sys::core::PCSTR, lpstring : ::windows_sys::core::PCSTR, lpfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WritePrivateProfileStringW(lpappname : ::windows_sys::core::PCWSTR, lpkeyname : ::windows_sys::core::PCWSTR, lpstring : ::windows_sys::core::PCWSTR, lpfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WritePrivateProfileStructA(lpszsection : ::windows_sys::core::PCSTR, lpszkey : ::windows_sys::core::PCSTR, lpstruct : *const ::core::ffi::c_void, usizestruct : u32, szfile : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WritePrivateProfileStructW(lpszsection : ::windows_sys::core::PCWSTR, lpszkey : ::windows_sys::core::PCWSTR, lpstruct : *const ::core::ffi::c_void, usizestruct : u32, szfile : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteProfileSectionA(lpappname : ::windows_sys::core::PCSTR, lpstring : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteProfileSectionW(lpappname : ::windows_sys::core::PCWSTR, lpstring : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteProfileStringA(lpappname : ::windows_sys::core::PCSTR, lpkeyname : ::windows_sys::core::PCSTR, lpstring : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("kernel32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteProfileStringW(lpappname : ::windows_sys::core::PCWSTR, lpkeyname : ::windows_sys::core::PCWSTR, lpstring : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("kernel32.dll" "system" fn _hread(hfile : i32, lpbuffer : *mut ::core::ffi::c_void, lbytes : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn _hwrite(hfile : i32, lpbuffer : ::windows_sys::core::PCSTR, lbytes : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn _lclose(hfile : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn _lcreat(lppathname : ::windows_sys::core::PCSTR, iattribute : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn _llseek(hfile : i32, loffset : i32, iorigin : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn _lopen(lppathname : ::windows_sys::core::PCSTR, ireadwrite : i32) -> i32); +::windows_targets::link!("kernel32.dll" "system" fn _lread(hfile : i32, lpbuffer : *mut ::core::ffi::c_void, ubytes : u32) -> u32); +::windows_targets::link!("kernel32.dll" "system" fn _lwrite(hfile : i32, lpbuffer : ::windows_sys::core::PCSTR, ubytes : u32) -> u32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("kernel32.dll" "system" fn uaw_lstrcmpW(string1 : *const u16, string2 : *const u16) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("kernel32.dll" "system" fn uaw_lstrcmpiW(string1 : *const u16, string2 : *const u16) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("kernel32.dll" "system" fn uaw_lstrlenW(string : *const u16) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("kernel32.dll" "system" fn uaw_wcschr(string : *const u16, character : u16) -> *mut u16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("kernel32.dll" "system" fn uaw_wcscpy(destination : *mut u16, source : *const u16) -> *mut u16); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("kernel32.dll" "system" fn uaw_wcsicmp(string1 : *const u16, string2 : *const u16) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("kernel32.dll" "system" fn uaw_wcslen(string : *const u16) -> usize); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +::windows_targets::link!("kernel32.dll" "system" fn uaw_wcsrchr(string : *const u16, character : u16) -> *mut u16); +pub type ICameraUIControl = *mut ::core::ffi::c_void; +pub type ICameraUIControlEventCallback = *mut ::core::ffi::c_void; +pub type IClipServiceNotificationHelper = *mut ::core::ffi::c_void; +pub type IContainerActivationHelper = *mut ::core::ffi::c_void; +pub type IDefaultBrowserSyncSettings = *mut ::core::ffi::c_void; +pub type IDeleteBrowsingHistory = *mut ::core::ffi::c_void; +pub type IEditionUpgradeBroker = *mut ::core::ffi::c_void; +pub type IEditionUpgradeHelper = *mut ::core::ffi::c_void; +pub type IFClipNotificationHelper = *mut ::core::ffi::c_void; +pub type IWindowsLockModeHelper = *mut ::core::ffi::c_void; +pub const AADBE_ADD_ENTRY: u32 = 1u32; +pub const AADBE_DEL_ENTRY: u32 = 2u32; +pub const ACTCTX_FLAG_APPLICATION_NAME_VALID: u32 = 32u32; +pub const ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID: u32 = 4u32; +pub const ACTCTX_FLAG_HMODULE_VALID: u32 = 128u32; +pub const ACTCTX_FLAG_LANGID_VALID: u32 = 2u32; +pub const ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID: u32 = 1u32; +pub const ACTCTX_FLAG_RESOURCE_NAME_VALID: u32 = 8u32; +pub const ACTCTX_FLAG_SET_PROCESS_DEFAULT: u32 = 16u32; +pub const ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF: u32 = 64u32; +pub const ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED: u32 = 1u32; +pub const AC_LINE_BACKUP_POWER: u32 = 2u32; +pub const AC_LINE_OFFLINE: u32 = 0u32; +pub const AC_LINE_ONLINE: u32 = 1u32; +pub const AC_LINE_UNKNOWN: u32 = 255u32; +pub const ADN_DEL_IF_EMPTY: u32 = 1u32; +pub const ADN_DEL_UNC_PATHS: u32 = 8u32; +pub const ADN_DONT_DEL_DIR: u32 = 4u32; +pub const ADN_DONT_DEL_SUBDIRS: u32 = 2u32; +pub const AFSR_BACKNEW: u32 = 2u32; +pub const AFSR_EXTRAINCREFCNT: u32 = 2048u32; +pub const AFSR_NODELETENEW: u32 = 4u32; +pub const AFSR_NOMESSAGES: u32 = 8u32; +pub const AFSR_NOPROGRESS: u32 = 16u32; +pub const AFSR_RESTORE: u32 = 1u32; +pub const AFSR_UPDREFCNT: u32 = 512u32; +pub const AFSR_USEREFCNT: u32 = 1024u32; +pub const AIF_FORCE_FILE_IN_USE: u32 = 8u32; +pub const AIF_NOLANGUAGECHECK: u32 = 268435456u32; +pub const AIF_NOOVERWRITE: u32 = 16u32; +pub const AIF_NOSKIP: u32 = 2u32; +pub const AIF_NOVERSIONCHECK: u32 = 4u32; +pub const AIF_NO_VERSION_DIALOG: u32 = 32u32; +pub const AIF_QUIET: u32 = 536870912u32; +pub const AIF_REPLACEONLY: u32 = 1024u32; +pub const AIF_WARNIFSKIP: u32 = 1u32; +pub const ALINF_BKINSTALL: u32 = 32u32; +pub const ALINF_CHECKBKDATA: u32 = 128u32; +pub const ALINF_DELAYREGISTEROCX: u32 = 512u32; +pub const ALINF_NGCONV: u32 = 8u32; +pub const ALINF_QUIET: u32 = 4u32; +pub const ALINF_ROLLBACK: u32 = 64u32; +pub const ALINF_ROLLBKDOALL: u32 = 256u32; +pub const ALINF_UPDHLPDLLS: u32 = 16u32; +pub const ARSR_NOMESSAGES: u32 = 8u32; +pub const ARSR_REGSECTION: u32 = 128u32; +pub const ARSR_REMOVREGBKDATA: u32 = 4096u32; +pub const ARSR_RESTORE: u32 = 1u32; +pub const ATOM_FLAG_GLOBAL: u32 = 2u32; +pub const AT_ARP: u32 = 640u32; +pub const AT_ENTITY: TDIENTITY_ENTITY_TYPE = 640u32; +pub const AT_NULL: u32 = 642u32; +pub const BACKUP_GHOSTED_FILE_EXTENTS: u32 = 11u32; +pub const BACKUP_INVALID: u32 = 0u32; +pub const BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE: u32 = 65536u32; +pub const BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE: u32 = 1u32; +pub const BASE_SEARCH_PATH_PERMANENT: u32 = 32768u32; +pub const BATTERY_FLAG_CHARGING: u32 = 8u32; +pub const BATTERY_FLAG_CRITICAL: u32 = 4u32; +pub const BATTERY_FLAG_HIGH: u32 = 1u32; +pub const BATTERY_FLAG_LOW: u32 = 2u32; +pub const BATTERY_FLAG_NO_BATTERY: u32 = 128u32; +pub const BATTERY_FLAG_UNKNOWN: u32 = 255u32; +pub const BATTERY_LIFE_UNKNOWN: u32 = 4294967295u32; +pub const BATTERY_PERCENTAGE_UNKNOWN: u32 = 255u32; +pub const BAUD_075: u32 = 1u32; +pub const BAUD_110: u32 = 2u32; +pub const BAUD_115200: u32 = 131072u32; +pub const BAUD_1200: u32 = 64u32; +pub const BAUD_128K: u32 = 65536u32; +pub const BAUD_134_5: u32 = 4u32; +pub const BAUD_14400: u32 = 4096u32; +pub const BAUD_150: u32 = 8u32; +pub const BAUD_1800: u32 = 128u32; +pub const BAUD_19200: u32 = 8192u32; +pub const BAUD_2400: u32 = 256u32; +pub const BAUD_300: u32 = 16u32; +pub const BAUD_38400: u32 = 16384u32; +pub const BAUD_4800: u32 = 512u32; +pub const BAUD_56K: u32 = 32768u32; +pub const BAUD_57600: u32 = 262144u32; +pub const BAUD_600: u32 = 32u32; +pub const BAUD_7200: u32 = 1024u32; +pub const BAUD_9600: u32 = 2048u32; +pub const BAUD_USER: u32 = 268435456u32; +pub const CATID_DeleteBrowsingHistory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x31caf6e4_d6aa_4090_a050_a5ac8972e9ef); +pub const CBR_110: u32 = 110u32; +pub const CBR_115200: u32 = 115200u32; +pub const CBR_1200: u32 = 1200u32; +pub const CBR_128000: u32 = 128000u32; +pub const CBR_14400: u32 = 14400u32; +pub const CBR_19200: u32 = 19200u32; +pub const CBR_2400: u32 = 2400u32; +pub const CBR_256000: u32 = 256000u32; +pub const CBR_300: u32 = 300u32; +pub const CBR_38400: u32 = 38400u32; +pub const CBR_4800: u32 = 4800u32; +pub const CBR_56000: u32 = 56000u32; +pub const CBR_57600: u32 = 57600u32; +pub const CBR_600: u32 = 600u32; +pub const CBR_9600: u32 = 9600u32; +pub const CE_DNS: u32 = 2048u32; +pub const CE_IOE: u32 = 1024u32; +pub const CE_MODE: u32 = 32768u32; +pub const CE_OOP: u32 = 4096u32; +pub const CE_PTO: u32 = 512u32; +pub const CE_TXFULL: u32 = 256u32; +pub const CL_NL_ENTITY: TDIENTITY_ENTITY_TYPE = 769u32; +pub const CL_NL_IP: u32 = 771u32; +pub const CL_NL_IPX: u32 = 769u32; +pub const CL_TL_ENTITY: TDIENTITY_ENTITY_TYPE = 1025u32; +pub const CL_TL_NBF: u32 = 1025u32; +pub const CL_TL_UDP: u32 = 1027u32; +pub const CODEINTEGRITY_OPTION_DEBUGMODE_ENABLED: u32 = 128u32; +pub const CODEINTEGRITY_OPTION_ENABLED: u32 = 1u32; +pub const CODEINTEGRITY_OPTION_FLIGHTING_ENABLED: u32 = 512u32; +pub const CODEINTEGRITY_OPTION_FLIGHT_BUILD: u32 = 256u32; +pub const CODEINTEGRITY_OPTION_HVCI_IUM_ENABLED: u32 = 8192u32; +pub const CODEINTEGRITY_OPTION_HVCI_KMCI_AUDITMODE_ENABLED: u32 = 2048u32; +pub const CODEINTEGRITY_OPTION_HVCI_KMCI_ENABLED: u32 = 1024u32; +pub const CODEINTEGRITY_OPTION_HVCI_KMCI_STRICTMODE_ENABLED: u32 = 4096u32; +pub const CODEINTEGRITY_OPTION_PREPRODUCTION_BUILD: u32 = 64u32; +pub const CODEINTEGRITY_OPTION_TESTSIGN: u32 = 2u32; +pub const CODEINTEGRITY_OPTION_TEST_BUILD: u32 = 32u32; +pub const CODEINTEGRITY_OPTION_UMCI_AUDITMODE_ENABLED: u32 = 8u32; +pub const CODEINTEGRITY_OPTION_UMCI_ENABLED: u32 = 4u32; +pub const CODEINTEGRITY_OPTION_UMCI_EXCLUSIONPATHS_ENABLED: u32 = 16u32; +pub const COMMPROP_INITIALIZED: u32 = 3879531822u32; +pub const CONTEXT_SIZE: u32 = 16u32; +pub const COPYFILE2_IO_CYCLE_SIZE_MAX: u32 = 1073741824u32; +pub const COPYFILE2_IO_CYCLE_SIZE_MIN: u32 = 4096u32; +pub const COPYFILE2_IO_RATE_MIN: u32 = 512u32; +pub const COPYFILE2_MESSAGE_COPY_OFFLOAD: i32 = 1i32; +pub const COPY_FILE2_V2_DONT_COPY_JUNCTIONS: u32 = 1u32; +pub const COPY_FILE2_V2_VALID_FLAGS: u32 = 1u32; +pub const COPY_FILE_ALLOW_DECRYPTED_DESTINATION: u32 = 8u32; +pub const COPY_FILE_COPY_SYMLINK: u32 = 2048u32; +pub const COPY_FILE_DIRECTORY: u32 = 128u32; +pub const COPY_FILE_DISABLE_PRE_ALLOCATION: u32 = 67108864u32; +pub const COPY_FILE_DONT_REQUEST_DEST_WRITE_DAC: u32 = 33554432u32; +pub const COPY_FILE_ENABLE_LOW_FREE_SPACE_MODE: u32 = 134217728u32; +pub const COPY_FILE_ENABLE_SPARSE_COPY: u32 = 536870912u32; +pub const COPY_FILE_FAIL_IF_EXISTS: u32 = 1u32; +pub const COPY_FILE_IGNORE_EDP_BLOCK: u32 = 4194304u32; +pub const COPY_FILE_IGNORE_SOURCE_ENCRYPTION: u32 = 8388608u32; +pub const COPY_FILE_NO_BUFFERING: u32 = 4096u32; +pub const COPY_FILE_NO_OFFLOAD: u32 = 262144u32; +pub const COPY_FILE_OPEN_AND_COPY_REPARSE_POINT: u32 = 2097152u32; +pub const COPY_FILE_OPEN_SOURCE_FOR_WRITE: u32 = 4u32; +pub const COPY_FILE_REQUEST_COMPRESSED_TRAFFIC: u32 = 268435456u32; +pub const COPY_FILE_REQUEST_SECURITY_PRIVILEGES: u32 = 8192u32; +pub const COPY_FILE_RESTARTABLE: u32 = 2u32; +pub const COPY_FILE_RESUME_FROM_PAUSE: u32 = 16384u32; +pub const COPY_FILE_SKIP_ALTERNATE_STREAMS: u32 = 32768u32; +pub const CO_NL_ENTITY: TDIENTITY_ENTITY_TYPE = 768u32; +pub const CO_TL_ENTITY: TDIENTITY_ENTITY_TYPE = 1024u32; +pub const CO_TL_NBF: u32 = 1024u32; +pub const CO_TL_SPP: u32 = 1030u32; +pub const CO_TL_SPX: u32 = 1026u32; +pub const CO_TL_TCP: u32 = 1028u32; +pub const CP_DIRECT: u32 = 2u32; +pub const CP_HWND: u32 = 0u32; +pub const CP_LEVEL: u32 = 3u32; +pub const CP_OPEN: u32 = 1u32; +pub const CREATE_FOR_DIR: u32 = 2u32; +pub const CREATE_FOR_IMPORT: u32 = 1u32; +pub const CRITICAL_SECTION_NO_DEBUG_INFO: u32 = 16777216u32; +pub const CameraUIControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x16d5a2be_b1c5_47b3_8eae_ccbcf452c7e8); +pub const DCICREATEOFFSCREENSURFACE: u32 = 2u32; +pub const DCICREATEOVERLAYSURFACE: u32 = 3u32; +pub const DCICREATEPRIMARYSURFACE: u32 = 1u32; +pub const DCIENUMSURFACE: u32 = 4u32; +pub const DCIESCAPE: u32 = 5u32; +pub const DCI_1632_ACCESS: u32 = 64u32; +pub const DCI_ASYNC: u32 = 1024u32; +pub const DCI_CANOVERLAY: u32 = 65536u32; +pub const DCI_CAN_STRETCHX: u32 = 4096u32; +pub const DCI_CAN_STRETCHXN: u32 = 16384u32; +pub const DCI_CAN_STRETCHY: u32 = 8192u32; +pub const DCI_CAN_STRETCHYN: u32 = 32768u32; +pub const DCI_CHROMAKEY: u32 = 32u32; +pub const DCI_DWORDALIGN: u32 = 256u32; +pub const DCI_DWORDSIZE: u32 = 128u32; +pub const DCI_ERR_CURRENTLYNOTAVAIL: i32 = -5i32; +pub const DCI_ERR_HEIGHTALIGN: i32 = -21i32; +pub const DCI_ERR_INVALIDCLIPLIST: i32 = -15i32; +pub const DCI_ERR_INVALIDPOSITION: i32 = -13i32; +pub const DCI_ERR_INVALIDRECT: i32 = -6i32; +pub const DCI_ERR_INVALIDSTRETCH: i32 = -14i32; +pub const DCI_ERR_OUTOFMEMORY: i32 = -12i32; +pub const DCI_ERR_SURFACEISOBSCURED: i32 = -16i32; +pub const DCI_ERR_TOOBIGHEIGHT: i32 = -9i32; +pub const DCI_ERR_TOOBIGSIZE: i32 = -11i32; +pub const DCI_ERR_TOOBIGWIDTH: i32 = -10i32; +pub const DCI_ERR_UNSUPPORTEDFORMAT: i32 = -7i32; +pub const DCI_ERR_UNSUPPORTEDMASK: i32 = -8i32; +pub const DCI_ERR_WIDTHALIGN: i32 = -20i32; +pub const DCI_ERR_XALIGN: i32 = -17i32; +pub const DCI_ERR_XYALIGN: i32 = -19i32; +pub const DCI_ERR_YALIGN: i32 = -18i32; +pub const DCI_FAIL_GENERIC: i32 = -1i32; +pub const DCI_FAIL_INVALIDSURFACE: i32 = -3i32; +pub const DCI_FAIL_UNSUPPORTED: i32 = -4i32; +pub const DCI_FAIL_UNSUPPORTEDVERSION: i32 = -2i32; +pub const DCI_OFFSCREEN: u32 = 1u32; +pub const DCI_OK: u32 = 0u32; +pub const DCI_OVERLAY: u32 = 2u32; +pub const DCI_PRIMARY: u32 = 0u32; +pub const DCI_STATUS_CHROMAKEYCHANGED: u32 = 16u32; +pub const DCI_STATUS_FORMATCHANGED: u32 = 4u32; +pub const DCI_STATUS_POINTERCHANGED: u32 = 1u32; +pub const DCI_STATUS_STRIDECHANGED: u32 = 2u32; +pub const DCI_STATUS_SURFACEINFOCHANGED: u32 = 8u32; +pub const DCI_STATUS_WASSTILLDRAWING: u32 = 32u32; +pub const DCI_SURFACE_TYPE: u32 = 15u32; +pub const DCI_VERSION: u32 = 256u32; +pub const DCI_VISIBLE: u32 = 16u32; +pub const DCI_WRITEONLY: u32 = 512u32; +pub const DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION: u32 = 1u32; +pub const DECISION_LOCATION_AUDIT: DECISION_LOCATION = 2i32; +pub const DECISION_LOCATION_ENFORCE_STATE_LIST: DECISION_LOCATION = 7i32; +pub const DECISION_LOCATION_ENTERPRISE_DEFINED_CLASS_ID: DECISION_LOCATION = 4i32; +pub const DECISION_LOCATION_FAILED_CONVERT_GUID: DECISION_LOCATION = 3i32; +pub const DECISION_LOCATION_GLOBAL_BUILT_IN_LIST: DECISION_LOCATION = 5i32; +pub const DECISION_LOCATION_NOT_FOUND: DECISION_LOCATION = 8i32; +pub const DECISION_LOCATION_PARAMETER_VALIDATION: DECISION_LOCATION = 1i32; +pub const DECISION_LOCATION_PROVIDER_BUILT_IN_LIST: DECISION_LOCATION = 6i32; +pub const DECISION_LOCATION_REFRESH_GLOBAL_DATA: DECISION_LOCATION = 0i32; +pub const DECISION_LOCATION_UNKNOWN: DECISION_LOCATION = 9i32; +pub const DELAYLOAD_GPA_FAILURE: u32 = 4u32; +pub const DELETE_BROWSING_HISTORY_COOKIES: u32 = 2u32; +pub const DELETE_BROWSING_HISTORY_DOWNLOADHISTORY: u32 = 64u32; +pub const DELETE_BROWSING_HISTORY_FORMDATA: u32 = 8u32; +pub const DELETE_BROWSING_HISTORY_HISTORY: u32 = 1u32; +pub const DELETE_BROWSING_HISTORY_PASSWORDS: u32 = 16u32; +pub const DELETE_BROWSING_HISTORY_PRESERVEFAVORITES: u32 = 32u32; +pub const DELETE_BROWSING_HISTORY_TIF: u32 = 4u32; +pub const DOCKINFO_DOCKED: u32 = 2u32; +pub const DOCKINFO_UNDOCKED: u32 = 1u32; +pub const DOCKINFO_USER_SUPPLIED: u32 = 4u32; +pub const DRIVE_CDROM: u32 = 5u32; +pub const DRIVE_FIXED: u32 = 3u32; +pub const DRIVE_NO_ROOT_DIR: u32 = 1u32; +pub const DRIVE_RAMDISK: u32 = 6u32; +pub const DRIVE_REMOTE: u32 = 4u32; +pub const DRIVE_REMOVABLE: u32 = 2u32; +pub const DRIVE_UNKNOWN: u32 = 0u32; +pub const DTR_CONTROL_DISABLE: u32 = 0u32; +pub const DTR_CONTROL_ENABLE: u32 = 1u32; +pub const DTR_CONTROL_HANDSHAKE: u32 = 2u32; +pub const DefaultBrowserSyncSettings: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3ac83423_3112_4aa6_9b5b_1feb23d0c5f9); +pub const EFSRPC_SECURE_ONLY: u32 = 8u32; +pub const EFS_DROP_ALTERNATE_STREAMS: u32 = 16u32; +pub const EFS_USE_RECOVERY_KEYS: u32 = 1u32; +pub const ENTITY_LIST_ID: u32 = 0u32; +pub const ENTITY_TYPE_ID: u32 = 1u32; +pub const ER_ENTITY: TDIENTITY_ENTITY_TYPE = 896u32; +pub const ER_ICMP: u32 = 896u32; +pub const EVENTLOG_FULL_INFO: u32 = 0u32; +pub const EditionUpgradeBroker: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc4270827_4f39_45df_9288_12ff6b85a921); +pub const EditionUpgradeHelper: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x01776df3_b9af_4e50_9b1c_56e93116d704); +pub const EndpointIoControlType: TDI_TL_IO_CONTROL_TYPE = 0i32; +pub const FAIL_FAST_GENERATE_EXCEPTION_ADDRESS: u32 = 1u32; +pub const FAIL_FAST_NO_HARD_ERROR_DLG: u32 = 2u32; +pub const FEATURE_CHANGE_TIME_MODULE_RELOAD: FEATURE_CHANGE_TIME = 1i32; +pub const FEATURE_CHANGE_TIME_READ: FEATURE_CHANGE_TIME = 0i32; +pub const FEATURE_CHANGE_TIME_REBOOT: FEATURE_CHANGE_TIME = 3i32; +pub const FEATURE_CHANGE_TIME_SESSION: FEATURE_CHANGE_TIME = 2i32; +pub const FEATURE_ENABLED_STATE_DEFAULT: FEATURE_ENABLED_STATE = 0i32; +pub const FEATURE_ENABLED_STATE_DISABLED: FEATURE_ENABLED_STATE = 1i32; +pub const FEATURE_ENABLED_STATE_ENABLED: FEATURE_ENABLED_STATE = 2i32; +pub const FIBER_FLAG_FLOAT_SWITCH: u32 = 1u32; +pub const FILE_CREATED: u32 = 2u32; +pub const FILE_DIR_DISALLOWED: u32 = 9u32; +pub const FILE_DOES_NOT_EXIST: u32 = 5u32; +pub const FILE_ENCRYPTABLE: u32 = 0u32; +pub const FILE_EXISTS: u32 = 4u32; +pub const FILE_FLAG_OPEN_REQUIRING_OPLOCK: u32 = 262144u32; +pub const FILE_IS_ENCRYPTED: u32 = 1u32; +pub const FILE_MAXIMUM_DISPOSITION: u32 = 5u32; +pub const FILE_NO_COMPRESSION: u32 = 32768u32; +pub const FILE_OPENED: u32 = 1u32; +pub const FILE_OPEN_NO_RECALL: u32 = 4194304u32; +pub const FILE_OPEN_REMOTE_INSTANCE: u32 = 1024u32; +pub const FILE_OVERWRITTEN: u32 = 3u32; +pub const FILE_READ_ONLY: u32 = 8u32; +pub const FILE_RENAME_FLAG_POSIX_SEMANTICS: u32 = 2u32; +pub const FILE_RENAME_FLAG_REPLACE_IF_EXISTS: u32 = 1u32; +pub const FILE_RENAME_FLAG_SUPPRESS_PIN_STATE_INHERITANCE: u32 = 4u32; +pub const FILE_ROOT_DIR: u32 = 3u32; +pub const FILE_SKIP_COMPLETION_PORT_ON_SUCCESS: u32 = 1u32; +pub const FILE_SKIP_SET_EVENT_ON_HANDLE: u32 = 2u32; +pub const FILE_SUPERSEDED: u32 = 0u32; +pub const FILE_SYSTEM_ATTR: u32 = 2u32; +pub const FILE_SYSTEM_DIR: u32 = 4u32; +pub const FILE_SYSTEM_NOT_SUPPORT: u32 = 6u32; +pub const FILE_UNKNOWN: u32 = 5u32; +pub const FILE_USER_DISALLOWED: u32 = 7u32; +pub const FILE_VALID_MAILSLOT_OPTION_FLAGS: u32 = 50u32; +pub const FILE_VALID_OPTION_FLAGS: u32 = 16777215u32; +pub const FILE_VALID_PIPE_OPTION_FLAGS: u32 = 50u32; +pub const FILE_VALID_SET_FLAGS: u32 = 54u32; +pub const FIND_ACTCTX_SECTION_KEY_RETURN_ASSEMBLY_METADATA: u32 = 4u32; +pub const FIND_ACTCTX_SECTION_KEY_RETURN_FLAGS: u32 = 2u32; +pub const FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX: u32 = 1u32; +pub const FORMAT_MESSAGE_MAX_WIDTH_MASK: u32 = 255u32; +pub const FS_CASE_IS_PRESERVED: u32 = 2u32; +pub const FS_CASE_SENSITIVE: u32 = 1u32; +pub const FS_FILE_COMPRESSION: u32 = 16u32; +pub const FS_FILE_ENCRYPTION: u32 = 131072u32; +pub const FS_PERSISTENT_ACLS: u32 = 8u32; +pub const FS_UNICODE_STORED_ON_DISK: u32 = 4u32; +pub const FS_VOL_IS_COMPRESSED: u32 = 32768u32; +pub const FileDirectoryInformation: FILE_INFORMATION_CLASS = 1i32; +pub const GENERIC_ENTITY: TDIENTITY_ENTITY_TYPE = 0u32; +pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("GetSystemWow64DirectoryA"); +pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GetSystemWow64DirectoryA"); +pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GetSystemWow64DirectoryA"); +pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GetSystemWow64DirectoryW"); +pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GetSystemWow64DirectoryW"); +pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GetSystemWow64DirectoryW"); +pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("GetSystemWow64DirectoryW"); +pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GetSystemWow64DirectoryW"); +pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GetSystemWow64DirectoryW"); +pub const GMEM_DDESHARE: u32 = 8192u32; +pub const GMEM_DISCARDABLE: u32 = 256u32; +pub const GMEM_DISCARDED: u32 = 16384u32; +pub const GMEM_INVALID_HANDLE: u32 = 32768u32; +pub const GMEM_LOCKCOUNT: u32 = 255u32; +pub const GMEM_LOWER: u32 = 4096u32; +pub const GMEM_MODIFY: u32 = 128u32; +pub const GMEM_NOCOMPACT: u32 = 16u32; +pub const GMEM_NODISCARD: u32 = 32u32; +pub const GMEM_NOTIFY: u32 = 16384u32; +pub const GMEM_NOT_BANKED: u32 = 4096u32; +pub const GMEM_SHARE: u32 = 8192u32; +pub const GMEM_VALID_FLAGS: u32 = 32626u32; +pub const GetSockOptIoControlType: TDI_TL_IO_CONTROL_TYPE = 2i32; +pub const HANJA_WINDOW: u32 = 2u32; +pub const HINSTANCE_ERROR: u32 = 32u32; +pub const HW_PROFILE_GUIDLEN: u32 = 39u32; +pub const IE4_BACKNEW: u32 = 2u32; +pub const IE4_EXTRAINCREFCNT: u32 = 2048u32; +pub const IE4_FRDOALL: u32 = 256u32; +pub const IE4_NODELETENEW: u32 = 4u32; +pub const IE4_NOENUMKEY: u32 = 32u32; +pub const IE4_NOMESSAGES: u32 = 8u32; +pub const IE4_NOPROGRESS: u32 = 16u32; +pub const IE4_NO_CRC_MAPPING: u32 = 64u32; +pub const IE4_REGSECTION: u32 = 128u32; +pub const IE4_REMOVREGBKDATA: u32 = 4096u32; +pub const IE4_RESTORE: u32 = 1u32; +pub const IE4_UPDREFCNT: u32 = 512u32; +pub const IE4_USEREFCNT: u32 = 1024u32; +pub const IE_BADID: i32 = -1i32; +pub const IE_BAUDRATE: i32 = -12i32; +pub const IE_BYTESIZE: i32 = -11i32; +pub const IE_DEFAULT: i32 = -5i32; +pub const IE_HARDWARE: i32 = -10i32; +pub const IE_MEMORY: i32 = -4i32; +pub const IE_NOPEN: i32 = -3i32; +pub const IE_OPEN: i32 = -2i32; +pub const IF_ENTITY: TDIENTITY_ENTITY_TYPE = 512u32; +pub const IF_GENERIC: u32 = 512u32; +pub const IF_MIB: u32 = 514u32; +pub const IGNORE: u32 = 0u32; +pub const IMEA_INIT: u32 = 1u32; +pub const IMEA_NEXT: u32 = 2u32; +pub const IMEA_PREV: u32 = 3u32; +pub const IME_BANJAtoJUNJA: u32 = 19u32; +pub const IME_ENABLE_CONVERT: u32 = 2u32; +pub const IME_ENTERWORDREGISTERMODE: u32 = 24u32; +pub const IME_GETCONVERSIONMODE: u32 = 17u32; +pub const IME_GETIMECAPS: u32 = 3u32; +pub const IME_GETOPEN: u32 = 5u32; +pub const IME_GETVERSION: u32 = 7u32; +pub const IME_JOHABtoKS: u32 = 21u32; +pub const IME_JUNJAtoBANJA: u32 = 20u32; +pub const IME_KStoJOHAB: u32 = 22u32; +pub const IME_MAXPROCESS: u32 = 32u32; +pub const IME_MODE_ALPHANUMERIC: u32 = 1u32; +pub const IME_MODE_CODEINPUT: u32 = 128u32; +pub const IME_MODE_DBCSCHAR: u32 = 16u32; +pub const IME_MODE_HANJACONVERT: u32 = 4u32; +pub const IME_MODE_HIRAGANA: u32 = 4u32; +pub const IME_MODE_KATAKANA: u32 = 2u32; +pub const IME_MODE_NOCODEINPUT: u32 = 256u32; +pub const IME_MODE_NOROMAN: u32 = 64u32; +pub const IME_MODE_ROMAN: u32 = 32u32; +pub const IME_MODE_SBCSCHAR: u32 = 2u32; +pub const IME_MOVEIMEWINDOW: u32 = 8u32; +pub const IME_REQUEST_CONVERT: u32 = 1u32; +pub const IME_RS_DISKERROR: u32 = 14u32; +pub const IME_RS_ERROR: u32 = 1u32; +pub const IME_RS_ILLEGAL: u32 = 6u32; +pub const IME_RS_INVALID: u32 = 17u32; +pub const IME_RS_NEST: u32 = 18u32; +pub const IME_RS_NOIME: u32 = 2u32; +pub const IME_RS_NOROOM: u32 = 10u32; +pub const IME_RS_NOTFOUND: u32 = 7u32; +pub const IME_RS_SYSTEMMODAL: u32 = 19u32; +pub const IME_RS_TOOLONG: u32 = 5u32; +pub const IME_SENDVKEY: u32 = 19u32; +pub const IME_SETCONVERSIONFONTEX: u32 = 25u32; +pub const IME_SETCONVERSIONMODE: u32 = 16u32; +pub const IME_SETCONVERSIONWINDOW: u32 = 8u32; +pub const IME_SETOPEN: u32 = 4u32; +pub const IME_SET_MODE: u32 = 18u32; +pub const INFO_CLASS_GENERIC: u32 = 256u32; +pub const INFO_CLASS_IMPLEMENTATION: u32 = 768u32; +pub const INFO_CLASS_PROTOCOL: u32 = 512u32; +pub const INFO_TYPE_ADDRESS_OBJECT: u32 = 512u32; +pub const INFO_TYPE_CONNECTION: u32 = 768u32; +pub const INFO_TYPE_PROVIDER: u32 = 256u32; +pub const INTERIM_WINDOW: u32 = 0u32; +pub const INVALID_ENTITY_INSTANCE: i32 = -1i32; +pub const IOCTL_TDI_TL_IO_CONTROL_ENDPOINT: u32 = 2162744u32; +pub const IR_CHANGECONVERT: u32 = 289u32; +pub const IR_CLOSECONVERT: u32 = 290u32; +pub const IR_DBCSCHAR: u32 = 352u32; +pub const IR_FULLCONVERT: u32 = 291u32; +pub const IR_IMESELECT: u32 = 304u32; +pub const IR_MODEINFO: u32 = 400u32; +pub const IR_OPENCONVERT: u32 = 288u32; +pub const IR_STRING: u32 = 320u32; +pub const IR_STRINGEND: u32 = 257u32; +pub const IR_STRINGEX: u32 = 384u32; +pub const IR_STRINGSTART: u32 = 256u32; +pub const IR_UNDETERMINE: u32 = 368u32; +pub const KEY_ALL_KEYS: WLDP_KEY = 2i32; +pub const KEY_OVERRIDE: WLDP_KEY = 1i32; +pub const KEY_UNKNOWN: WLDP_KEY = 0i32; +pub const LIS_NOGRPCONV: u32 = 2u32; +pub const LIS_QUIET: u32 = 1u32; +pub const LOGON32_PROVIDER_VIRTUAL: u32 = 4u32; +pub const LOGON32_PROVIDER_WINNT35: u32 = 1u32; +pub const LOGON_ZERO_PASSWORD_BUFFER: u32 = 2147483648u32; +pub const LPTx: u32 = 128u32; +pub const MAXINTATOM: u32 = 49152u32; +pub const MAX_COMPUTERNAME_LENGTH: u32 = 15u32; +pub const MAX_TDI_ENTITIES: u32 = 4096u32; +pub const MCW_DEFAULT: u32 = 0u32; +pub const MCW_HIDDEN: u32 = 16u32; +pub const MCW_RECT: u32 = 1u32; +pub const MCW_SCREEN: u32 = 4u32; +pub const MCW_VERTICAL: u32 = 8u32; +pub const MCW_WINDOW: u32 = 2u32; +pub const MICROSOFT_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS: u32 = 0u32; +pub const MICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS: u32 = 0u32; +pub const MODE_WINDOW: u32 = 1u32; +pub const OFS_MAXPATHNAME: u32 = 128u32; +pub const OPERATION_API_VERSION: u32 = 1u32; +pub const OVERWRITE_HIDDEN: u32 = 4u32; +pub const PCF_16BITMODE: u32 = 512u32; +pub const PCF_DTRDSR: u32 = 1u32; +pub const PCF_INTTIMEOUTS: u32 = 128u32; +pub const PCF_PARITY_CHECK: u32 = 8u32; +pub const PCF_RLSD: u32 = 4u32; +pub const PCF_RTSCTS: u32 = 2u32; +pub const PCF_SETXCHAR: u32 = 32u32; +pub const PCF_SPECIALCHARS: u32 = 256u32; +pub const PCF_TOTALTIMEOUTS: u32 = 64u32; +pub const PCF_XONXOFF: u32 = 16u32; +pub const PROCESS_CREATION_ALL_APPLICATION_PACKAGES_OPT_OUT: u32 = 1u32; +pub const PROCESS_CREATION_CHILD_PROCESS_OVERRIDE: u32 = 2u32; +pub const PROCESS_CREATION_CHILD_PROCESS_RESTRICTED: u32 = 1u32; +pub const PROCESS_CREATION_CHILD_PROCESS_RESTRICTED_UNLESS_SECURE: u32 = 4u32; +pub const PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_DISABLE_PROCESS_TREE: u32 = 2u32; +pub const PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_ENABLE_PROCESS_TREE: u32 = 1u32; +pub const PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_OVERRIDE: u32 = 4u32; +pub const PROCESS_CREATION_MITIGATION_POLICY_DEP_ATL_THUNK_ENABLE: u32 = 2u32; +pub const PROCESS_CREATION_MITIGATION_POLICY_DEP_ENABLE: u32 = 1u32; +pub const PROCESS_CREATION_MITIGATION_POLICY_SEHOP_ENABLE: u32 = 4u32; +pub const PROC_THREAD_ATTRIBUTE_ADDITIVE: u32 = 262144u32; +pub const PROC_THREAD_ATTRIBUTE_INPUT: u32 = 131072u32; +pub const PROC_THREAD_ATTRIBUTE_NUMBER: u32 = 65535u32; +pub const PROC_THREAD_ATTRIBUTE_THREAD: u32 = 65536u32; +pub const PROGRESS_CANCEL: u32 = 1u32; +pub const PROGRESS_CONTINUE: u32 = 0u32; +pub const PROGRESS_QUIET: u32 = 3u32; +pub const PROGRESS_STOP: u32 = 2u32; +pub const PROTECTION_LEVEL_SAME: u32 = 4294967295u32; +pub const PST_FAX: u32 = 33u32; +pub const PST_LAT: u32 = 257u32; +pub const PST_MODEM: u32 = 6u32; +pub const PST_NETWORK_BRIDGE: u32 = 256u32; +pub const PST_PARALLELPORT: u32 = 2u32; +pub const PST_RS232: u32 = 1u32; +pub const PST_RS422: u32 = 3u32; +pub const PST_RS423: u32 = 4u32; +pub const PST_RS449: u32 = 5u32; +pub const PST_SCANNER: u32 = 34u32; +pub const PST_TCPIP_TELNET: u32 = 258u32; +pub const PST_UNSPECIFIED: u32 = 0u32; +pub const PST_X25: u32 = 259u32; +pub const QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS: u32 = 16u32; +pub const QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE: u32 = 8u32; +pub const QUERY_ACTCTX_FLAG_NO_ADDREF: u32 = 2147483648u32; +pub const QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX: u32 = 4u32; +pub const RECOVERY_DEFAULT_PING_INTERVAL: u32 = 5000u32; +pub const REG_RESTORE_LOG_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RegRestoreLogFile"); +pub const REG_SAVE_LOG_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RegSaveLogFile"); +pub const REMOTE_PROTOCOL_INFO_FLAG_LOOPBACK: u32 = 1u32; +pub const REMOTE_PROTOCOL_INFO_FLAG_OFFLINE: u32 = 2u32; +pub const REMOTE_PROTOCOL_INFO_FLAG_PERSISTENT_HANDLE: u32 = 4u32; +pub const RESETDEV: u32 = 7u32; +pub const RESTART_MAX_CMD_LINE: u32 = 1024u32; +pub const RPI_FLAG_SMB2_SHARECAP_CLUSTER: u32 = 64u32; +pub const RPI_FLAG_SMB2_SHARECAP_CONTINUOUS_AVAILABILITY: u32 = 16u32; +pub const RPI_FLAG_SMB2_SHARECAP_DFS: u32 = 8u32; +pub const RPI_FLAG_SMB2_SHARECAP_SCALEOUT: u32 = 32u32; +pub const RPI_FLAG_SMB2_SHARECAP_TIMEWARP: u32 = 2u32; +pub const RPI_SMB2_FLAG_SERVERCAP_DFS: u32 = 1u32; +pub const RPI_SMB2_FLAG_SERVERCAP_DIRECTORY_LEASING: u32 = 32u32; +pub const RPI_SMB2_FLAG_SERVERCAP_LARGEMTU: u32 = 4u32; +pub const RPI_SMB2_FLAG_SERVERCAP_LEASING: u32 = 2u32; +pub const RPI_SMB2_FLAG_SERVERCAP_MULTICHANNEL: u32 = 8u32; +pub const RPI_SMB2_FLAG_SERVERCAP_PERSISTENT_HANDLES: u32 = 16u32; +pub const RPI_SMB2_SHAREFLAG_COMPRESS_DATA: u32 = 2u32; +pub const RPI_SMB2_SHAREFLAG_ENCRYPT_DATA: u32 = 1u32; +pub const RSC_FLAG_DELAYREGISTEROCX: u32 = 512u32; +pub const RSC_FLAG_INF: u32 = 1u32; +pub const RSC_FLAG_NGCONV: u32 = 8u32; +pub const RSC_FLAG_QUIET: u32 = 4u32; +pub const RSC_FLAG_SETUPAPI: u32 = 1024u32; +pub const RSC_FLAG_SKIPDISKSPACECHECK: u32 = 2u32; +pub const RSC_FLAG_UPDHLPDLLS: u32 = 16u32; +pub const RTS_CONTROL_DISABLE: u32 = 0u32; +pub const RTS_CONTROL_ENABLE: u32 = 1u32; +pub const RTS_CONTROL_HANDSHAKE: u32 = 2u32; +pub const RTS_CONTROL_TOGGLE: u32 = 3u32; +pub const RUNCMDS_DELAYPOSTCMD: u32 = 4u32; +pub const RUNCMDS_NOWAIT: u32 = 2u32; +pub const RUNCMDS_QUIET: u32 = 1u32; +pub const SCS_32BIT_BINARY: u32 = 0u32; +pub const SCS_64BIT_BINARY: u32 = 6u32; +pub const SCS_DOS_BINARY: u32 = 1u32; +pub const SCS_OS216_BINARY: u32 = 5u32; +pub const SCS_PIF_BINARY: u32 = 3u32; +pub const SCS_POSIX_BINARY: u32 = 4u32; +pub const SCS_THIS_PLATFORM_BINARY: u32 = 6u32; +pub const SCS_WOW_BINARY: u32 = 2u32; +pub const SHUTDOWN_NORETRY: u32 = 1u32; +pub const SP_BAUD: u32 = 2u32; +pub const SP_DATABITS: u32 = 4u32; +pub const SP_HANDSHAKING: u32 = 16u32; +pub const SP_PARITY: u32 = 1u32; +pub const SP_PARITY_CHECK: u32 = 32u32; +pub const SP_RLSD: u32 = 64u32; +pub const SP_SERIALCOMM: u32 = 1u32; +pub const SP_STOPBITS: u32 = 8u32; +pub const STARTF_HOLOGRAPHIC: u32 = 262144u32; +pub const STORAGE_INFO_FLAGS_ALIGNED_DEVICE: u32 = 1u32; +pub const STORAGE_INFO_FLAGS_PARTITION_ALIGNED_ON_DEVICE: u32 = 2u32; +pub const STORAGE_INFO_OFFSET_UNKNOWN: u32 = 4294967295u32; +pub const STREAM_CONTAINS_GHOSTED_FILE_EXTENTS: u32 = 16u32; +pub const STREAM_CONTAINS_PROPERTIES: u32 = 4u32; +pub const STREAM_CONTAINS_SECURITY: u32 = 2u32; +pub const STREAM_MODIFIED_WHEN_READ: u32 = 1u32; +pub const STREAM_NORMAL_ATTRIBUTE: u32 = 0u32; +pub const STREAM_SPARSE_ATTRIBUTE: u32 = 8u32; +pub const SYSTEM_STATUS_FLAG_POWER_SAVING_ON: u32 = 1u32; +pub const S_ALLTHRESHOLD: u32 = 2u32; +pub const S_LEGATO: u32 = 1u32; +pub const S_NORMAL: u32 = 0u32; +pub const S_PERIOD1024: u32 = 1u32; +pub const S_PERIOD2048: u32 = 2u32; +pub const S_PERIOD512: u32 = 0u32; +pub const S_PERIODVOICE: u32 = 3u32; +pub const S_QUEUEEMPTY: u32 = 0u32; +pub const S_SERBDNT: i32 = -5i32; +pub const S_SERDCC: i32 = -7i32; +pub const S_SERDDR: i32 = -14i32; +pub const S_SERDFQ: i32 = -13i32; +pub const S_SERDLN: i32 = -6i32; +pub const S_SERDMD: i32 = -10i32; +pub const S_SERDPT: i32 = -12i32; +pub const S_SERDSH: i32 = -11i32; +pub const S_SERDSR: i32 = -15i32; +pub const S_SERDST: i32 = -16i32; +pub const S_SERDTP: i32 = -8i32; +pub const S_SERDVL: i32 = -9i32; +pub const S_SERDVNA: i32 = -1i32; +pub const S_SERMACT: i32 = -3i32; +pub const S_SEROFM: i32 = -2i32; +pub const S_SERQFUL: i32 = -4i32; +pub const S_STACCATO: u32 = 2u32; +pub const S_THRESHOLD: u32 = 1u32; +pub const S_WHITE1024: u32 = 5u32; +pub const S_WHITE2048: u32 = 6u32; +pub const S_WHITE512: u32 = 4u32; +pub const S_WHITEVOICE: u32 = 7u32; +pub const SetSockOptIoControlType: TDI_TL_IO_CONTROL_TYPE = 1i32; +pub const SocketIoControlType: TDI_TL_IO_CONTROL_TYPE = 3i32; +pub const TC_GP_TRAP: u32 = 2u32; +pub const TC_HARDERR: u32 = 1u32; +pub const TC_NORMAL: u32 = 0u32; +pub const TC_SIGNAL: u32 = 3u32; +pub const THREAD_PRIORITY_ERROR_RETURN: u32 = 2147483647u32; +pub const UMS_VERSION: u32 = 256u32; +pub const VALUENAME_BUILT_IN_LIST: VALUENAME = 2i32; +pub const VALUENAME_ENTERPRISE_DEFINED_CLASS_ID: VALUENAME = 1i32; +pub const VALUENAME_UNKNOWN: VALUENAME = 0i32; +pub const WINWATCHNOTIFY_CHANGED: u32 = 4u32; +pub const WINWATCHNOTIFY_CHANGING: u32 = 3u32; +pub const WINWATCHNOTIFY_DESTROY: u32 = 2u32; +pub const WINWATCHNOTIFY_START: u32 = 0u32; +pub const WINWATCHNOTIFY_STOP: u32 = 1u32; +pub const WLDP_CANEXECUTEBUFFER_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpCanExecuteBuffer"); +pub const WLDP_CANEXECUTEFILE_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpCanExecuteFile"); +pub const WLDP_DLL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WLDP.DLL"); +pub const WLDP_EXECUTION_EVALUATION_OPTION_EXECUTE_IN_INTERACTIVE_SESSION: WLDP_EXECUTION_EVALUATION_OPTIONS = 1i32; +pub const WLDP_EXECUTION_EVALUATION_OPTION_NONE: WLDP_EXECUTION_EVALUATION_OPTIONS = 0i32; +pub const WLDP_EXECUTION_POLICY_ALLOWED: WLDP_EXECUTION_POLICY = 1i32; +pub const WLDP_EXECUTION_POLICY_BLOCKED: WLDP_EXECUTION_POLICY = 0i32; +pub const WLDP_EXECUTION_POLICY_REQUIRE_SANDBOX: WLDP_EXECUTION_POLICY = 2i32; +pub const WLDP_FLAGS_SKIPSIGNATUREVALIDATION: u32 = 256u32; +pub const WLDP_GETLOCKDOWNPOLICY_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpGetLockdownPolicy"); +pub const WLDP_HOST_CMD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5baea1d6_6f1c_488e_8490_347fa5c5067f); +pub const WLDP_HOST_HTML: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb35a71b6_fe56_48d6_9543_2dff0ecded66); +pub const WLDP_HOST_ID_ALL: WLDP_HOST_ID = 7i32; +pub const WLDP_HOST_ID_GLOBAL: WLDP_HOST_ID = 1i32; +pub const WLDP_HOST_ID_IE: WLDP_HOST_ID = 5i32; +pub const WLDP_HOST_ID_MAX: WLDP_HOST_ID = 8i32; +pub const WLDP_HOST_ID_MSI: WLDP_HOST_ID = 6i32; +pub const WLDP_HOST_ID_POWERSHELL: WLDP_HOST_ID = 4i32; +pub const WLDP_HOST_ID_UNKNOWN: WLDP_HOST_ID = 0i32; +pub const WLDP_HOST_ID_VBA: WLDP_HOST_ID = 2i32; +pub const WLDP_HOST_ID_WSH: WLDP_HOST_ID = 3i32; +pub const WLDP_HOST_INFORMATION_REVISION: u32 = 1u32; +pub const WLDP_HOST_JAVASCRIPT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5629f0d5_1cca_4fed_a1a3_36a8c18d74c0); +pub const WLDP_HOST_MAX: WLDP_HOST = 2i32; +pub const WLDP_HOST_MSI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x624eb611_6e7e_4eec_9bfe_f0ecdbfcf390); +pub const WLDP_HOST_OTHER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x626cbec3_e1fa_4227_9800_ed210274cf7c); +pub const WLDP_HOST_POWERSHELL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8e9aaa7c_198b_4879_ae41_a50d47ad6458); +pub const WLDP_HOST_PYTHON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbfd557ef_2448_42ec_810b_0d9f09352d4a); +pub const WLDP_HOST_RUNDLL32: WLDP_HOST = 0i32; +pub const WLDP_HOST_SVCHOST: WLDP_HOST = 1i32; +pub const WLDP_HOST_WINDOWS_SCRIPT_HOST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd30b84c5_29ce_4ff3_86ec_a30007a82e49); +pub const WLDP_HOST_XML: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5594be58_c6bf_4295_82f4_d494d20e3a36); +pub const WLDP_ISAPPAPPROVEDBYPOLICY_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpIsAppApprovedByPolicy"); +pub const WLDP_ISCLASSINAPPROVEDLIST_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpIsClassInApprovedList"); +pub const WLDP_ISDYNAMICCODEPOLICYENABLED_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpIsDynamicCodePolicyEnabled"); +pub const WLDP_ISPRODUCTIONCONFIGURATION_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpIsProductionConfiguration"); +pub const WLDP_ISWCOSPRODUCTIONCONFIGURATION_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpIsWcosProductionConfiguration"); +pub const WLDP_LOCKDOWN_AUDIT_FLAG: u32 = 8u32; +pub const WLDP_LOCKDOWN_CONFIG_CI_AUDIT_FLAG: u32 = 2u32; +pub const WLDP_LOCKDOWN_CONFIG_CI_FLAG: u32 = 1u32; +pub const WLDP_LOCKDOWN_DEFINED_FLAG: u32 = 2147483648u32; +pub const WLDP_LOCKDOWN_EXCLUSION_FLAG: u32 = 16u32; +pub const WLDP_LOCKDOWN_OFF: u32 = 2147483648u32; +pub const WLDP_LOCKDOWN_UMCIENFORCE_FLAG: u32 = 4u32; +pub const WLDP_LOCKDOWN_UNDEFINED: u32 = 0u32; +pub const WLDP_POLICY_SETTING_AV_PERF_MODE: WLDP_POLICY_SETTING = 1000i32; +pub const WLDP_QUERYDANAMICCODETRUST_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpQueryDynamicCodeTrust"); +pub const WLDP_QUERYDEVICESECURITYINFORMATION_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpQueryDeviceSecurityInformation"); +pub const WLDP_QUERYDYNAMICCODETRUST_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpQueryDynamicCodeTrust"); +pub const WLDP_QUERYPOLICYSETTINGENABLED2_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpQueryPolicySettingEnabled2"); +pub const WLDP_QUERYPOLICYSETTINGENABLED_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpQueryPolicySettingEnabled"); +pub const WLDP_QUERYWINDOWSLOCKDOWNMODE_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpQueryWindowsLockdownMode"); +pub const WLDP_QUERYWINDOWSLOCKDOWNRESTRICTION_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpQueryWindowsLockdownRestriction"); +pub const WLDP_RESETPRODUCTIONCONFIGURATION_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpResetProductionConfiguration"); +pub const WLDP_RESETWCOSPRODUCTIONCONFIGURATION_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpResetWcosProductionConfiguration"); +pub const WLDP_SETDYNAMICCODETRUST_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpSetDynamicCodeTrust"); +pub const WLDP_SETWINDOWSLOCKDOWNRESTRICTION_FN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("WldpSetWindowsLockdownRestriction"); +pub const WLDP_WINDOWS_LOCKDOWN_MODE_LOCKED: WLDP_WINDOWS_LOCKDOWN_MODE = 2i32; +pub const WLDP_WINDOWS_LOCKDOWN_MODE_MAX: WLDP_WINDOWS_LOCKDOWN_MODE = 3i32; +pub const WLDP_WINDOWS_LOCKDOWN_MODE_TRIAL: WLDP_WINDOWS_LOCKDOWN_MODE = 1i32; +pub const WLDP_WINDOWS_LOCKDOWN_MODE_UNLOCKED: WLDP_WINDOWS_LOCKDOWN_MODE = 0i32; +pub const WLDP_WINDOWS_LOCKDOWN_RESTRICTION_MAX: WLDP_WINDOWS_LOCKDOWN_RESTRICTION = 3i32; +pub const WLDP_WINDOWS_LOCKDOWN_RESTRICTION_NONE: WLDP_WINDOWS_LOCKDOWN_RESTRICTION = 0i32; +pub const WLDP_WINDOWS_LOCKDOWN_RESTRICTION_NOUNLOCK: WLDP_WINDOWS_LOCKDOWN_RESTRICTION = 1i32; +pub const WLDP_WINDOWS_LOCKDOWN_RESTRICTION_NOUNLOCK_PERMANENT: WLDP_WINDOWS_LOCKDOWN_RESTRICTION = 2i32; +pub const WM_CONVERTREQUEST: u32 = 266u32; +pub const WM_CONVERTRESULT: u32 = 267u32; +pub const WM_IMEKEYDOWN: u32 = 656u32; +pub const WM_IMEKEYUP: u32 = 657u32; +pub const WM_IME_REPORT: u32 = 640u32; +pub const WM_INTERIM: u32 = 268u32; +pub const WM_WNT_CONVERTREQUESTEX: u32 = 265u32; +pub const WinStationInformation: WINSTATIONINFOCLASS = 8i32; +#[repr(transparent)] +pub struct CameraUIControlCaptureMode(pub i32); +impl CameraUIControlCaptureMode { + pub const PhotoOrVideo: Self = Self(0i32); + pub const Photo: Self = Self(1i32); + pub const Video: Self = Self(2i32); +} +impl ::core::marker::Copy for CameraUIControlCaptureMode {} +impl ::core::clone::Clone for CameraUIControlCaptureMode { + fn clone(&self) -> Self { + *self + } +} +#[repr(transparent)] +pub struct CameraUIControlLinearSelectionMode(pub i32); +impl CameraUIControlLinearSelectionMode { + pub const Single: Self = Self(0i32); + pub const Multiple: Self = Self(1i32); +} +impl ::core::marker::Copy for CameraUIControlLinearSelectionMode {} +impl ::core::clone::Clone for CameraUIControlLinearSelectionMode { + fn clone(&self) -> Self { + *self + } +} +#[repr(transparent)] +pub struct CameraUIControlMode(pub i32); +impl CameraUIControlMode { + pub const Browse: Self = Self(0i32); + pub const Linear: Self = Self(1i32); +} +impl ::core::marker::Copy for CameraUIControlMode {} +impl ::core::clone::Clone for CameraUIControlMode { + fn clone(&self) -> Self { + *self + } +} +#[repr(transparent)] +pub struct CameraUIControlPhotoFormat(pub i32); +impl CameraUIControlPhotoFormat { + pub const Jpeg: Self = Self(0i32); + pub const Png: Self = Self(1i32); + pub const JpegXR: Self = Self(2i32); +} +impl ::core::marker::Copy for CameraUIControlPhotoFormat {} +impl ::core::clone::Clone for CameraUIControlPhotoFormat { + fn clone(&self) -> Self { + *self + } +} +#[repr(transparent)] +pub struct CameraUIControlVideoFormat(pub i32); +impl CameraUIControlVideoFormat { + pub const Mp4: Self = Self(0i32); + pub const Wmv: Self = Self(1i32); +} +impl ::core::marker::Copy for CameraUIControlVideoFormat {} +impl ::core::clone::Clone for CameraUIControlVideoFormat { + fn clone(&self) -> Self { + *self + } +} +#[repr(transparent)] +pub struct CameraUIControlViewType(pub i32); +impl CameraUIControlViewType { + pub const SingleItem: Self = Self(0i32); + pub const ItemList: Self = Self(1i32); +} +impl ::core::marker::Copy for CameraUIControlViewType {} +impl ::core::clone::Clone for CameraUIControlViewType { + fn clone(&self) -> Self { + *self + } +} +pub type DECISION_LOCATION = i32; +pub type FEATURE_CHANGE_TIME = i32; +pub type FEATURE_ENABLED_STATE = i32; +pub type FILE_INFORMATION_CLASS = i32; +pub type TDIENTITY_ENTITY_TYPE = u32; +pub type TDI_TL_IO_CONTROL_TYPE = i32; +pub type VALUENAME = i32; +pub type WINSTATIONINFOCLASS = i32; +pub type WLDP_EXECUTION_EVALUATION_OPTIONS = i32; +pub type WLDP_EXECUTION_POLICY = i32; +pub type WLDP_HOST = i32; +pub type WLDP_HOST_ID = i32; +pub type WLDP_KEY = i32; +pub type WLDP_POLICY_SETTING = i32; +pub type WLDP_WINDOWS_LOCKDOWN_MODE = i32; +pub type WLDP_WINDOWS_LOCKDOWN_RESTRICTION = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ACTCTX_SECTION_KEYED_DATA_2600 { + pub cbSize: u32, + pub ulDataFormatVersion: u32, + pub lpData: *mut ::core::ffi::c_void, + pub ulLength: u32, + pub lpSectionGlobalData: *mut ::core::ffi::c_void, + pub ulSectionGlobalDataLength: u32, + pub lpSectionBase: *mut ::core::ffi::c_void, + pub ulSectionTotalLength: u32, + pub hActCtx: super::super::Foundation::HANDLE, + pub ulAssemblyRosterIndex: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ACTCTX_SECTION_KEYED_DATA_2600 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ACTCTX_SECTION_KEYED_DATA_2600 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA { + pub lpInformation: *mut ::core::ffi::c_void, + pub lpSectionBase: *mut ::core::ffi::c_void, + pub ulSectionLength: u32, + pub lpSectionGlobalDataBase: *mut ::core::ffi::c_void, + pub ulSectionGlobalDataLength: u32, +} +impl ::core::marker::Copy for ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA {} +impl ::core::clone::Clone for ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ACTIVATION_CONTEXT_BASIC_INFORMATION { + pub hActCtx: super::super::Foundation::HANDLE, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ACTIVATION_CONTEXT_BASIC_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ACTIVATION_CONTEXT_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CABINFOA { + pub pszCab: ::windows_sys::core::PSTR, + pub pszInf: ::windows_sys::core::PSTR, + pub pszSection: ::windows_sys::core::PSTR, + pub szSrcPath: [u8; 260], + pub dwFlags: u32, +} +impl ::core::marker::Copy for CABINFOA {} +impl ::core::clone::Clone for CABINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CABINFOW { + pub pszCab: ::windows_sys::core::PWSTR, + pub pszInf: ::windows_sys::core::PWSTR, + pub pszSection: ::windows_sys::core::PWSTR, + pub szSrcPath: [u16; 260], + pub dwFlags: u32, +} +impl ::core::marker::Copy for CABINFOW {} +impl ::core::clone::Clone for CABINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLIENT_ID { + pub UniqueProcess: super::super::Foundation::HANDLE, + pub UniqueThread: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLIENT_ID {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLIENT_ID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG { + pub Size: u32, + pub TriggerId: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG {} +impl ::core::clone::Clone for CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DATETIME { + pub year: u16, + pub month: u16, + pub day: u16, + pub hour: u16, + pub min: u16, + pub sec: u16, +} +impl ::core::marker::Copy for DATETIME {} +impl ::core::clone::Clone for DATETIME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DCICMD { + pub dwCommand: u32, + pub dwParam1: u32, + pub dwParam2: u32, + pub dwVersion: u32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for DCICMD {} +impl ::core::clone::Clone for DCICMD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DCICREATEINPUT { + pub cmd: DCICMD, + pub dwCompression: u32, + pub dwMask: [u32; 3], + pub dwWidth: u32, + pub dwHeight: u32, + pub dwDCICaps: u32, + pub dwBitCount: u32, + pub lpSurface: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for DCICREATEINPUT {} +impl ::core::clone::Clone for DCICREATEINPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DCIENUMINPUT { + pub cmd: DCICMD, + pub rSrc: super::super::Foundation::RECT, + pub rDst: super::super::Foundation::RECT, + pub EnumCallback: isize, + pub lpContext: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DCIENUMINPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DCIENUMINPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DCIOFFSCREEN { + pub dciInfo: DCISURFACEINFO, + pub Draw: isize, + pub SetClipList: isize, + pub SetDestination: isize, +} +impl ::core::marker::Copy for DCIOFFSCREEN {} +impl ::core::clone::Clone for DCIOFFSCREEN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DCIOVERLAY { + pub dciInfo: DCISURFACEINFO, + pub dwChromakeyValue: u32, + pub dwChromakeyMask: u32, +} +impl ::core::marker::Copy for DCIOVERLAY {} +impl ::core::clone::Clone for DCIOVERLAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DCISURFACEINFO { + pub dwSize: u32, + pub dwDCICaps: u32, + pub dwCompression: u32, + pub dwMask: [u32; 3], + pub dwWidth: u32, + pub dwHeight: u32, + pub lStride: i32, + pub dwBitCount: u32, + pub dwOffSurface: usize, + pub wSelSurface: u16, + pub wReserved: u16, + pub dwReserved1: u32, + pub dwReserved2: u32, + pub dwReserved3: u32, + pub BeginAccess: isize, + pub EndAccess: isize, + pub DestroySurface: isize, +} +impl ::core::marker::Copy for DCISURFACEINFO {} +impl ::core::clone::Clone for DCISURFACEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DELAYLOAD_INFO { + pub Size: u32, + pub DelayloadDescriptor: *mut IMAGE_DELAYLOAD_DESCRIPTOR, + pub ThunkAddress: *mut IMAGE_THUNK_DATA64, + pub TargetDllName: ::windows_sys::core::PCSTR, + pub TargetApiDescriptor: DELAYLOAD_PROC_DESCRIPTOR, + pub TargetModuleBase: *mut ::core::ffi::c_void, + pub Unused: *mut ::core::ffi::c_void, + pub LastError: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DELAYLOAD_INFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DELAYLOAD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct DELAYLOAD_INFO { + pub Size: u32, + pub DelayloadDescriptor: *mut IMAGE_DELAYLOAD_DESCRIPTOR, + pub ThunkAddress: *mut IMAGE_THUNK_DATA32, + pub TargetDllName: ::windows_sys::core::PCSTR, + pub TargetApiDescriptor: DELAYLOAD_PROC_DESCRIPTOR, + pub TargetModuleBase: *mut ::core::ffi::c_void, + pub Unused: *mut ::core::ffi::c_void, + pub LastError: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DELAYLOAD_INFO {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DELAYLOAD_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DELAYLOAD_PROC_DESCRIPTOR { + pub ImportDescribedByName: u32, + pub Description: DELAYLOAD_PROC_DESCRIPTOR_0, +} +impl ::core::marker::Copy for DELAYLOAD_PROC_DESCRIPTOR {} +impl ::core::clone::Clone for DELAYLOAD_PROC_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union DELAYLOAD_PROC_DESCRIPTOR_0 { + pub Name: ::windows_sys::core::PCSTR, + pub Ordinal: u32, +} +impl ::core::marker::Copy for DELAYLOAD_PROC_DESCRIPTOR_0 {} +impl ::core::clone::Clone for DELAYLOAD_PROC_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FEATURE_ERROR { + pub hr: ::windows_sys::core::HRESULT, + pub lineNumber: u16, + pub file: ::windows_sys::core::PCSTR, + pub process: ::windows_sys::core::PCSTR, + pub module: ::windows_sys::core::PCSTR, + pub callerReturnAddressOffset: u32, + pub callerModule: ::windows_sys::core::PCSTR, + pub message: ::windows_sys::core::PCSTR, + pub originLineNumber: u16, + pub originFile: ::windows_sys::core::PCSTR, + pub originModule: ::windows_sys::core::PCSTR, + pub originCallerReturnAddressOffset: u32, + pub originCallerModule: ::windows_sys::core::PCSTR, + pub originName: ::windows_sys::core::PCSTR, +} +impl ::core::marker::Copy for FEATURE_ERROR {} +impl ::core::clone::Clone for FEATURE_ERROR { + fn clone(&self) -> Self { + *self + } +} +pub type FEATURE_STATE_CHANGE_SUBSCRIPTION = isize; +pub type FH_SERVICE_PIPE_HANDLE = isize; +#[repr(C)] +pub struct FILE_CASE_SENSITIVE_INFO { + pub Flags: u32, +} +impl ::core::marker::Copy for FILE_CASE_SENSITIVE_INFO {} +impl ::core::clone::Clone for FILE_CASE_SENSITIVE_INFO { + fn clone(&self) -> Self { + *self + } +} +pub type HWINWATCH = isize; +#[repr(C)] +pub struct HW_PROFILE_INFOA { + pub dwDockInfo: u32, + pub szHwProfileGuid: [u8; 39], + pub szHwProfileName: [u8; 80], +} +impl ::core::marker::Copy for HW_PROFILE_INFOA {} +impl ::core::clone::Clone for HW_PROFILE_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HW_PROFILE_INFOW { + pub dwDockInfo: u32, + pub szHwProfileGuid: [u16; 39], + pub szHwProfileName: [u16; 80], +} +impl ::core::marker::Copy for HW_PROFILE_INFOW {} +impl ::core::clone::Clone for HW_PROFILE_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_DELAYLOAD_DESCRIPTOR { + pub Attributes: IMAGE_DELAYLOAD_DESCRIPTOR_0, + pub DllNameRVA: u32, + pub ModuleHandleRVA: u32, + pub ImportAddressTableRVA: u32, + pub ImportNameTableRVA: u32, + pub BoundImportAddressTableRVA: u32, + pub UnloadInformationTableRVA: u32, + pub TimeDateStamp: u32, +} +impl ::core::marker::Copy for IMAGE_DELAYLOAD_DESCRIPTOR {} +impl ::core::clone::Clone for IMAGE_DELAYLOAD_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_DELAYLOAD_DESCRIPTOR_0 { + pub AllAttributes: u32, + pub Anonymous: IMAGE_DELAYLOAD_DESCRIPTOR_0_0, +} +impl ::core::marker::Copy for IMAGE_DELAYLOAD_DESCRIPTOR_0 {} +impl ::core::clone::Clone for IMAGE_DELAYLOAD_DESCRIPTOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_DELAYLOAD_DESCRIPTOR_0_0 { + pub _bitfield: u32, +} +impl ::core::marker::Copy for IMAGE_DELAYLOAD_DESCRIPTOR_0_0 {} +impl ::core::clone::Clone for IMAGE_DELAYLOAD_DESCRIPTOR_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_THUNK_DATA32 { + pub u1: IMAGE_THUNK_DATA32_0, +} +impl ::core::marker::Copy for IMAGE_THUNK_DATA32 {} +impl ::core::clone::Clone for IMAGE_THUNK_DATA32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_THUNK_DATA32_0 { + pub ForwarderString: u32, + pub Function: u32, + pub Ordinal: u32, + pub AddressOfData: u32, +} +impl ::core::marker::Copy for IMAGE_THUNK_DATA32_0 {} +impl ::core::clone::Clone for IMAGE_THUNK_DATA32_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGE_THUNK_DATA64 { + pub u1: IMAGE_THUNK_DATA64_0, +} +impl ::core::marker::Copy for IMAGE_THUNK_DATA64 {} +impl ::core::clone::Clone for IMAGE_THUNK_DATA64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union IMAGE_THUNK_DATA64_0 { + pub ForwarderString: u64, + pub Function: u64, + pub Ordinal: u64, + pub AddressOfData: u64, +} +impl ::core::marker::Copy for IMAGE_THUNK_DATA64_0 {} +impl ::core::clone::Clone for IMAGE_THUNK_DATA64_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMEPROA { + pub hWnd: super::super::Foundation::HWND, + pub InstDate: DATETIME, + pub wVersion: u32, + pub szDescription: [u8; 50], + pub szName: [u8; 80], + pub szOptions: [u8; 30], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMEPROA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMEPROA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMEPROW { + pub hWnd: super::super::Foundation::HWND, + pub InstDate: DATETIME, + pub wVersion: u32, + pub szDescription: [u16; 50], + pub szName: [u16; 80], + pub szOptions: [u16; 30], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMEPROW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMEPROW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMESTRUCT { + pub fnc: u32, + pub wParam: super::super::Foundation::WPARAM, + pub wCount: u32, + pub dchSource: u32, + pub dchDest: u32, + pub lParam1: super::super::Foundation::LPARAM, + pub lParam2: super::super::Foundation::LPARAM, + pub lParam3: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMESTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMESTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct JAVA_TRUST { + pub cbSize: u32, + pub flag: u32, + pub fAllActiveXPermissions: super::super::Foundation::BOOL, + pub fAllPermissions: super::super::Foundation::BOOL, + pub dwEncodingType: u32, + pub pbJavaPermissions: *mut u8, + pub cbJavaPermissions: u32, + pub pbSigner: *mut u8, + pub cbSigner: u32, + pub pwszZone: ::windows_sys::core::PCWSTR, + pub guidZone: ::windows_sys::core::GUID, + pub hVerify: ::windows_sys::core::HRESULT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for JAVA_TRUST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for JAVA_TRUST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JIT_DEBUG_INFO { + pub dwSize: u32, + pub dwProcessorArchitecture: u32, + pub dwThreadID: u32, + pub dwReserved0: u32, + pub lpExceptionAddress: u64, + pub lpExceptionRecord: u64, + pub lpContextRecord: u64, +} +impl ::core::marker::Copy for JIT_DEBUG_INFO {} +impl ::core::clone::Clone for JIT_DEBUG_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub struct LDR_DATA_TABLE_ENTRY { + pub Reserved1: [*mut ::core::ffi::c_void; 2], + pub InMemoryOrderLinks: super::Kernel::LIST_ENTRY, + pub Reserved2: [*mut ::core::ffi::c_void; 2], + pub DllBase: *mut ::core::ffi::c_void, + pub Reserved3: [*mut ::core::ffi::c_void; 2], + pub FullDllName: super::super::Foundation::UNICODE_STRING, + pub Reserved4: [u8; 8], + pub Reserved5: [*mut ::core::ffi::c_void; 3], + pub Anonymous: LDR_DATA_TABLE_ENTRY_0, + pub TimeDateStamp: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for LDR_DATA_TABLE_ENTRY {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for LDR_DATA_TABLE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +pub union LDR_DATA_TABLE_ENTRY_0 { + pub CheckSum: u32, + pub Reserved6: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::marker::Copy for LDR_DATA_TABLE_ENTRY_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] +impl ::core::clone::Clone for LDR_DATA_TABLE_ENTRY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PERUSERSECTIONA { + pub szGUID: [u8; 59], + pub szDispName: [u8; 128], + pub szLocale: [u8; 10], + pub szStub: [u8; 1040], + pub szVersion: [u8; 32], + pub szCompID: [u8; 128], + pub dwIsInstalled: u32, + pub bRollback: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PERUSERSECTIONA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PERUSERSECTIONA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PERUSERSECTIONW { + pub szGUID: [u16; 59], + pub szDispName: [u16; 128], + pub szLocale: [u16; 10], + pub szStub: [u16; 1040], + pub szVersion: [u16; 32], + pub szCompID: [u16; 128], + pub dwIsInstalled: u32, + pub bRollback: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PERUSERSECTIONW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PERUSERSECTIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PUBLIC_OBJECT_BASIC_INFORMATION { + pub Attributes: u32, + pub GrantedAccess: u32, + pub HandleCount: u32, + pub PointerCount: u32, + pub Reserved: [u32; 10], +} +impl ::core::marker::Copy for PUBLIC_OBJECT_BASIC_INFORMATION {} +impl ::core::clone::Clone for PUBLIC_OBJECT_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PUBLIC_OBJECT_TYPE_INFORMATION { + pub TypeName: super::super::Foundation::UNICODE_STRING, + pub Reserved: [u32; 22], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PUBLIC_OBJECT_TYPE_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PUBLIC_OBJECT_TYPE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STRENTRYA { + pub pszName: ::windows_sys::core::PSTR, + pub pszValue: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for STRENTRYA {} +impl ::core::clone::Clone for STRENTRYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STRENTRYW { + pub pszName: ::windows_sys::core::PWSTR, + pub pszValue: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for STRENTRYW {} +impl ::core::clone::Clone for STRENTRYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STRINGEXSTRUCT { + pub dwSize: u32, + pub uDeterminePos: u32, + pub uDetermineDelimPos: u32, + pub uYomiPos: u32, + pub uYomiDelimPos: u32, +} +impl ::core::marker::Copy for STRINGEXSTRUCT {} +impl ::core::clone::Clone for STRINGEXSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STRTABLEA { + pub cEntries: u32, + pub pse: *mut STRENTRYA, +} +impl ::core::marker::Copy for STRTABLEA {} +impl ::core::clone::Clone for STRTABLEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STRTABLEW { + pub cEntries: u32, + pub pse: *mut STRENTRYW, +} +impl ::core::marker::Copy for STRTABLEW {} +impl ::core::clone::Clone for STRTABLEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_BASIC_INFORMATION { + pub Reserved1: [u8; 24], + pub Reserved2: [*mut ::core::ffi::c_void; 4], + pub NumberOfProcessors: i8, +} +impl ::core::marker::Copy for SYSTEM_BASIC_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_BASIC_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_CODEINTEGRITY_INFORMATION { + pub Length: u32, + pub CodeIntegrityOptions: u32, +} +impl ::core::marker::Copy for SYSTEM_CODEINTEGRITY_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_CODEINTEGRITY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_EXCEPTION_INFORMATION { + pub Reserved1: [u8; 16], +} +impl ::core::marker::Copy for SYSTEM_EXCEPTION_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_EXCEPTION_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_INTERRUPT_INFORMATION { + pub Reserved1: [u8; 24], +} +impl ::core::marker::Copy for SYSTEM_INTERRUPT_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_INTERRUPT_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_LOOKASIDE_INFORMATION { + pub Reserved1: [u8; 32], +} +impl ::core::marker::Copy for SYSTEM_LOOKASIDE_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_LOOKASIDE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_PERFORMANCE_INFORMATION { + pub Reserved1: [u8; 312], +} +impl ::core::marker::Copy for SYSTEM_PERFORMANCE_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_PERFORMANCE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_POLICY_INFORMATION { + pub Reserved1: [*mut ::core::ffi::c_void; 2], + pub Reserved2: [u32; 3], +} +impl ::core::marker::Copy for SYSTEM_POLICY_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_POLICY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION { + pub IdleTime: i64, + pub KernelTime: i64, + pub UserTime: i64, + pub Reserved1: [i64; 2], + pub Reserved2: u32, +} +impl ::core::marker::Copy for SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SYSTEM_PROCESS_INFORMATION { + pub NextEntryOffset: u32, + pub NumberOfThreads: u32, + pub Reserved1: [u8; 48], + pub ImageName: super::super::Foundation::UNICODE_STRING, + pub BasePriority: i32, + pub UniqueProcessId: super::super::Foundation::HANDLE, + pub Reserved2: *mut ::core::ffi::c_void, + pub HandleCount: u32, + pub SessionId: u32, + pub Reserved3: *mut ::core::ffi::c_void, + pub PeakVirtualSize: usize, + pub VirtualSize: usize, + pub Reserved4: u32, + pub PeakWorkingSetSize: usize, + pub WorkingSetSize: usize, + pub Reserved5: *mut ::core::ffi::c_void, + pub QuotaPagedPoolUsage: usize, + pub Reserved6: *mut ::core::ffi::c_void, + pub QuotaNonPagedPoolUsage: usize, + pub PagefileUsage: usize, + pub PeakPagefileUsage: usize, + pub PrivatePageCount: usize, + pub Reserved7: [i64; 6], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SYSTEM_PROCESS_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SYSTEM_PROCESS_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_REGISTRY_QUOTA_INFORMATION { + pub RegistryQuotaAllowed: u32, + pub RegistryQuotaUsed: u32, + pub Reserved1: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for SYSTEM_REGISTRY_QUOTA_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_REGISTRY_QUOTA_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SYSTEM_THREAD_INFORMATION { + pub Reserved1: [i64; 3], + pub Reserved2: u32, + pub StartAddress: *mut ::core::ffi::c_void, + pub ClientId: CLIENT_ID, + pub Priority: i32, + pub BasePriority: i32, + pub Reserved3: u32, + pub ThreadState: u32, + pub WaitReason: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SYSTEM_THREAD_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SYSTEM_THREAD_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_TIMEOFDAY_INFORMATION { + pub Reserved1: [u8; 48], +} +impl ::core::marker::Copy for SYSTEM_TIMEOFDAY_INFORMATION {} +impl ::core::clone::Clone for SYSTEM_TIMEOFDAY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct TCP_REQUEST_QUERY_INFORMATION_EX32_XP { + pub ID: TDIObjectID, + pub Context: [u32; 4], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for TCP_REQUEST_QUERY_INFORMATION_EX32_XP {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for TCP_REQUEST_QUERY_INFORMATION_EX32_XP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_REQUEST_QUERY_INFORMATION_EX_W2K { + pub ID: TDIObjectID, + pub Context: [u8; 16], +} +impl ::core::marker::Copy for TCP_REQUEST_QUERY_INFORMATION_EX_W2K {} +impl ::core::clone::Clone for TCP_REQUEST_QUERY_INFORMATION_EX_W2K { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_REQUEST_QUERY_INFORMATION_EX_XP { + pub ID: TDIObjectID, + pub Context: [usize; 4], +} +impl ::core::marker::Copy for TCP_REQUEST_QUERY_INFORMATION_EX_XP {} +impl ::core::clone::Clone for TCP_REQUEST_QUERY_INFORMATION_EX_XP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCP_REQUEST_SET_INFORMATION_EX { + pub ID: TDIObjectID, + pub BufferSize: u32, + pub Buffer: [u8; 1], +} +impl ::core::marker::Copy for TCP_REQUEST_SET_INFORMATION_EX {} +impl ::core::clone::Clone for TCP_REQUEST_SET_INFORMATION_EX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TDIEntityID { + pub tei_entity: TDIENTITY_ENTITY_TYPE, + pub tei_instance: u32, +} +impl ::core::marker::Copy for TDIEntityID {} +impl ::core::clone::Clone for TDIEntityID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TDIObjectID { + pub toi_entity: TDIEntityID, + pub toi_class: u32, + pub toi_type: u32, + pub toi_id: u32, +} +impl ::core::marker::Copy for TDIObjectID {} +impl ::core::clone::Clone for TDIObjectID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TDI_TL_IO_CONTROL_ENDPOINT { + pub Type: TDI_TL_IO_CONTROL_TYPE, + pub Level: u32, + pub Anonymous: TDI_TL_IO_CONTROL_ENDPOINT_0, + pub InputBuffer: *mut ::core::ffi::c_void, + pub InputBufferLength: u32, + pub OutputBuffer: *mut ::core::ffi::c_void, + pub OutputBufferLength: u32, +} +impl ::core::marker::Copy for TDI_TL_IO_CONTROL_ENDPOINT {} +impl ::core::clone::Clone for TDI_TL_IO_CONTROL_ENDPOINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union TDI_TL_IO_CONTROL_ENDPOINT_0 { + pub IoControlCode: u32, + pub OptionName: u32, +} +impl ::core::marker::Copy for TDI_TL_IO_CONTROL_ENDPOINT_0 {} +impl ::core::clone::Clone for TDI_TL_IO_CONTROL_ENDPOINT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct THREAD_NAME_INFORMATION { + pub ThreadName: super::super::Foundation::UNICODE_STRING, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for THREAD_NAME_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for THREAD_NAME_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UNDETERMINESTRUCT { + pub dwSize: u32, + pub uDefIMESize: u32, + pub uDefIMEPos: u32, + pub uUndetTextLen: u32, + pub uUndetTextPos: u32, + pub uUndetAttrPos: u32, + pub uCursorPos: u32, + pub uDeltaStart: u32, + pub uDetermineTextLen: u32, + pub uDetermineTextPos: u32, + pub uDetermineDelimPos: u32, + pub uYomiTextLen: u32, + pub uYomiTextPos: u32, + pub uYomiDelimPos: u32, +} +impl ::core::marker::Copy for UNDETERMINESTRUCT {} +impl ::core::clone::Clone for UNDETERMINESTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WINSTATIONINFORMATIONW { + pub Reserved2: [u8; 70], + pub LogonId: u32, + pub Reserved3: [u8; 1140], +} +impl ::core::marker::Copy for WINSTATIONINFORMATIONW {} +impl ::core::clone::Clone for WINSTATIONINFORMATIONW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WLDP_DEVICE_SECURITY_INFORMATION { + pub UnlockIdSize: u32, + pub UnlockId: *mut u8, + pub ManufacturerIDLength: u32, + pub ManufacturerID: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for WLDP_DEVICE_SECURITY_INFORMATION {} +impl ::core::clone::Clone for WLDP_DEVICE_SECURITY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WLDP_HOST_INFORMATION { + pub dwRevision: u32, + pub dwHostId: WLDP_HOST_ID, + pub szSource: ::windows_sys::core::PCWSTR, + pub hSource: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WLDP_HOST_INFORMATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WLDP_HOST_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +pub type APPLICATION_RECOVERY_CALLBACK = ::core::option::Option u32>; +pub type ENUM_CALLBACK = ::core::option::Option ()>; +pub type PDELAYLOAD_FAILURE_DLL_CALLBACK = ::core::option::Option *mut ::core::ffi::c_void>; +pub type PFEATURE_STATE_CHANGE_CALLBACK = ::core::option::Option ()>; +pub type PFIBER_CALLOUT_ROUTINE = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PQUERYACTCTXW_FUNC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWINSTATIONQUERYINFORMATIONW = ::core::option::Option super::super::Foundation::BOOLEAN>; +pub type PWLDP_CANEXECUTEBUFFER_API = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLDP_CANEXECUTEFILE_API = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub type PWLDP_CANEXECUTESTREAM_API = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PWLDP_ISAPPAPPROVEDBYPOLICY_API = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLDP_ISDYNAMICCODEPOLICYENABLED_API = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLDP_ISPRODUCTIONCONFIGURATION_API = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLDP_ISWCOSPRODUCTIONCONFIGURATION_API = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PWLDP_QUERYDEVICESECURITYINFORMATION_API = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLDP_QUERYDYNAMICODETRUST_API = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLDP_QUERYPOLICYSETTINGENABLED2_API = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLDP_QUERYPOLICYSETTINGENABLED_API = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PWLDP_QUERYWINDOWSLOCKDOWNMODE_API = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PWLDP_QUERYWINDOWSLOCKDOWNRESTRICTION_API = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PWLDP_RESETPRODUCTIONCONFIGURATION_API = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PWLDP_RESETWCOSPRODUCTIONCONFIGURATION_API = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PWLDP_SETDYNAMICCODETRUST_API = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type PWLDP_SETWINDOWSLOCKDOWNRESTRICTION_API = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type REGINSTALLA = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WINWATCHNOTIFYPROC = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/Wmi/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Wmi/mod.rs new file mode 100644 index 000000000..c73513869 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/Wmi/mod.rs @@ -0,0 +1,3354 @@ +::windows_targets::link!("mi.dll" "cdecl" fn MI_Application_InitializeV1(flags : u32, applicationid : *const u16, extendederror : *mut *mut MI_Instance, application : *mut MI_Application) -> MI_Result); +pub type IEnumWbemClassObject = *mut ::core::ffi::c_void; +pub type IMofCompiler = *mut ::core::ffi::c_void; +pub type ISWbemDateTime = *mut ::core::ffi::c_void; +pub type ISWbemEventSource = *mut ::core::ffi::c_void; +pub type ISWbemLastError = *mut ::core::ffi::c_void; +pub type ISWbemLocator = *mut ::core::ffi::c_void; +pub type ISWbemMethod = *mut ::core::ffi::c_void; +pub type ISWbemMethodSet = *mut ::core::ffi::c_void; +pub type ISWbemNamedValue = *mut ::core::ffi::c_void; +pub type ISWbemNamedValueSet = *mut ::core::ffi::c_void; +pub type ISWbemObject = *mut ::core::ffi::c_void; +pub type ISWbemObjectEx = *mut ::core::ffi::c_void; +pub type ISWbemObjectPath = *mut ::core::ffi::c_void; +pub type ISWbemObjectSet = *mut ::core::ffi::c_void; +pub type ISWbemPrivilege = *mut ::core::ffi::c_void; +pub type ISWbemPrivilegeSet = *mut ::core::ffi::c_void; +pub type ISWbemProperty = *mut ::core::ffi::c_void; +pub type ISWbemPropertySet = *mut ::core::ffi::c_void; +pub type ISWbemQualifier = *mut ::core::ffi::c_void; +pub type ISWbemQualifierSet = *mut ::core::ffi::c_void; +pub type ISWbemRefreshableItem = *mut ::core::ffi::c_void; +pub type ISWbemRefresher = *mut ::core::ffi::c_void; +pub type ISWbemSecurity = *mut ::core::ffi::c_void; +pub type ISWbemServices = *mut ::core::ffi::c_void; +pub type ISWbemServicesEx = *mut ::core::ffi::c_void; +pub type ISWbemSink = *mut ::core::ffi::c_void; +pub type ISWbemSinkEvents = *mut ::core::ffi::c_void; +pub type IUnsecuredApartment = *mut ::core::ffi::c_void; +pub type IWMIExtension = *mut ::core::ffi::c_void; +pub type IWbemAddressResolution = *mut ::core::ffi::c_void; +pub type IWbemBackupRestore = *mut ::core::ffi::c_void; +pub type IWbemBackupRestoreEx = *mut ::core::ffi::c_void; +pub type IWbemCallResult = *mut ::core::ffi::c_void; +pub type IWbemClassObject = *mut ::core::ffi::c_void; +pub type IWbemClientConnectionTransport = *mut ::core::ffi::c_void; +pub type IWbemClientTransport = *mut ::core::ffi::c_void; +pub type IWbemConfigureRefresher = *mut ::core::ffi::c_void; +pub type IWbemConnectorLogin = *mut ::core::ffi::c_void; +pub type IWbemConstructClassObject = *mut ::core::ffi::c_void; +pub type IWbemContext = *mut ::core::ffi::c_void; +pub type IWbemDecoupledBasicEventProvider = *mut ::core::ffi::c_void; +pub type IWbemDecoupledRegistrar = *mut ::core::ffi::c_void; +pub type IWbemEventConsumerProvider = *mut ::core::ffi::c_void; +pub type IWbemEventProvider = *mut ::core::ffi::c_void; +pub type IWbemEventProviderQuerySink = *mut ::core::ffi::c_void; +pub type IWbemEventProviderSecurity = *mut ::core::ffi::c_void; +pub type IWbemEventSink = *mut ::core::ffi::c_void; +pub type IWbemHiPerfEnum = *mut ::core::ffi::c_void; +pub type IWbemHiPerfProvider = *mut ::core::ffi::c_void; +pub type IWbemLevel1Login = *mut ::core::ffi::c_void; +pub type IWbemLocator = *mut ::core::ffi::c_void; +pub type IWbemObjectAccess = *mut ::core::ffi::c_void; +pub type IWbemObjectSink = *mut ::core::ffi::c_void; +pub type IWbemObjectSinkEx = *mut ::core::ffi::c_void; +pub type IWbemObjectTextSrc = *mut ::core::ffi::c_void; +pub type IWbemPath = *mut ::core::ffi::c_void; +pub type IWbemPathKeyList = *mut ::core::ffi::c_void; +pub type IWbemPropertyProvider = *mut ::core::ffi::c_void; +pub type IWbemProviderIdentity = *mut ::core::ffi::c_void; +pub type IWbemProviderInit = *mut ::core::ffi::c_void; +pub type IWbemProviderInitSink = *mut ::core::ffi::c_void; +pub type IWbemQualifierSet = *mut ::core::ffi::c_void; +pub type IWbemQuery = *mut ::core::ffi::c_void; +pub type IWbemRefresher = *mut ::core::ffi::c_void; +pub type IWbemServices = *mut ::core::ffi::c_void; +pub type IWbemShutdown = *mut ::core::ffi::c_void; +pub type IWbemStatusCodeText = *mut ::core::ffi::c_void; +pub type IWbemTransport = *mut ::core::ffi::c_void; +pub type IWbemUnboundObjectSink = *mut ::core::ffi::c_void; +pub type IWbemUnsecuredApartment = *mut ::core::ffi::c_void; +pub const CIM_BOOLEAN: CIMTYPE_ENUMERATION = 11i32; +pub const CIM_CHAR16: CIMTYPE_ENUMERATION = 103i32; +pub const CIM_DATETIME: CIMTYPE_ENUMERATION = 101i32; +pub const CIM_EMPTY: CIMTYPE_ENUMERATION = 0i32; +pub const CIM_FLAG_ARRAY: CIMTYPE_ENUMERATION = 8192i32; +pub const CIM_ILLEGAL: CIMTYPE_ENUMERATION = 4095i32; +pub const CIM_OBJECT: CIMTYPE_ENUMERATION = 13i32; +pub const CIM_REAL32: CIMTYPE_ENUMERATION = 4i32; +pub const CIM_REAL64: CIMTYPE_ENUMERATION = 5i32; +pub const CIM_REFERENCE: CIMTYPE_ENUMERATION = 102i32; +pub const CIM_SINT16: CIMTYPE_ENUMERATION = 2i32; +pub const CIM_SINT32: CIMTYPE_ENUMERATION = 3i32; +pub const CIM_SINT64: CIMTYPE_ENUMERATION = 20i32; +pub const CIM_SINT8: CIMTYPE_ENUMERATION = 16i32; +pub const CIM_STRING: CIMTYPE_ENUMERATION = 8i32; +pub const CIM_UINT16: CIMTYPE_ENUMERATION = 18i32; +pub const CIM_UINT32: CIMTYPE_ENUMERATION = 19i32; +pub const CIM_UINT64: CIMTYPE_ENUMERATION = 21i32; +pub const CIM_UINT8: CIMTYPE_ENUMERATION = 17i32; +pub const MI_ARRAY: MI_Type = 16i32; +pub const MI_BOOLEAN: MI_Type = 0i32; +pub const MI_BOOLEANA: MI_Type = 16i32; +pub const MI_CALLBACKMODE_IGNORE: MI_CallbackMode = 2i32; +pub const MI_CALLBACKMODE_INQUIRE: MI_CallbackMode = 1i32; +pub const MI_CALLBACKMODE_REPORT: MI_CallbackMode = 0i32; +pub const MI_CALL_VERSION: u32 = 1u32; +pub const MI_CHAR16: MI_Type = 11i32; +pub const MI_CHAR16A: MI_Type = 27i32; +pub const MI_CHAR_TYPE: u32 = 2u32; +pub const MI_DATETIME: MI_Type = 12i32; +pub const MI_DATETIMEA: MI_Type = 28i32; +pub const MI_DestinationOptions_ImpersonationType_Default: MI_DestinationOptions_ImpersonationType = 0i32; +pub const MI_DestinationOptions_ImpersonationType_Delegate: MI_DestinationOptions_ImpersonationType = 4i32; +pub const MI_DestinationOptions_ImpersonationType_Identify: MI_DestinationOptions_ImpersonationType = 2i32; +pub const MI_DestinationOptions_ImpersonationType_Impersonate: MI_DestinationOptions_ImpersonationType = 3i32; +pub const MI_DestinationOptions_ImpersonationType_None: MI_DestinationOptions_ImpersonationType = 1i32; +pub const MI_ERRORCATEGORY_ACCESS_DENIED: MI_ErrorCategory = 18i32; +pub const MI_ERRORCATEGORY_AUTHENTICATION_ERROR: MI_ErrorCategory = 28i32; +pub const MI_ERRORCATEGORY_CLOS_EERROR: MI_ErrorCategory = 2i32; +pub const MI_ERRORCATEGORY_CONNECTION_ERROR: MI_ErrorCategory = 27i32; +pub const MI_ERRORCATEGORY_DEADLOCK_DETECTED: MI_ErrorCategory = 4i32; +pub const MI_ERRORCATEGORY_DEVICE_ERROR: MI_ErrorCategory = 3i32; +pub const MI_ERRORCATEGORY_FROM_STDERR: MI_ErrorCategory = 24i32; +pub const MI_ERRORCATEGORY_INVALID_ARGUMENT: MI_ErrorCategory = 5i32; +pub const MI_ERRORCATEGORY_INVALID_DATA: MI_ErrorCategory = 6i32; +pub const MI_ERRORCATEGORY_INVALID_OPERATION: MI_ErrorCategory = 7i32; +pub const MI_ERRORCATEGORY_INVALID_RESULT: MI_ErrorCategory = 8i32; +pub const MI_ERRORCATEGORY_INVALID_TYPE: MI_ErrorCategory = 9i32; +pub const MI_ERRORCATEGORY_LIMITS_EXCEEDED: MI_ErrorCategory = 29i32; +pub const MI_ERRORCATEGORY_METADATA_ERROR: MI_ErrorCategory = 10i32; +pub const MI_ERRORCATEGORY_NOT_ENABLED: MI_ErrorCategory = 31i32; +pub const MI_ERRORCATEGORY_NOT_IMPLEMENTED: MI_ErrorCategory = 11i32; +pub const MI_ERRORCATEGORY_NOT_INSTALLED: MI_ErrorCategory = 12i32; +pub const MI_ERRORCATEGORY_NOT_SPECIFIED: MI_ErrorCategory = 0i32; +pub const MI_ERRORCATEGORY_OBJECT_NOT_FOUND: MI_ErrorCategory = 13i32; +pub const MI_ERRORCATEGORY_OPEN_ERROR: MI_ErrorCategory = 1i32; +pub const MI_ERRORCATEGORY_OPERATION_STOPPED: MI_ErrorCategory = 14i32; +pub const MI_ERRORCATEGORY_OPERATION_TIMEOUT: MI_ErrorCategory = 15i32; +pub const MI_ERRORCATEGORY_PARSER_ERROR: MI_ErrorCategory = 17i32; +pub const MI_ERRORCATEGORY_PROTOCOL_ERROR: MI_ErrorCategory = 26i32; +pub const MI_ERRORCATEGORY_QUOTA_EXCEEDED: MI_ErrorCategory = 30i32; +pub const MI_ERRORCATEGORY_READ_ERROR: MI_ErrorCategory = 22i32; +pub const MI_ERRORCATEGORY_RESOURCE_BUSY: MI_ErrorCategory = 19i32; +pub const MI_ERRORCATEGORY_RESOURCE_EXISTS: MI_ErrorCategory = 20i32; +pub const MI_ERRORCATEGORY_RESOURCE_UNAVAILABLE: MI_ErrorCategory = 21i32; +pub const MI_ERRORCATEGORY_SECURITY_ERROR: MI_ErrorCategory = 25i32; +pub const MI_ERRORCATEGORY_SYNTAX_ERROR: MI_ErrorCategory = 16i32; +pub const MI_ERRORCATEGORY_WRITE_ERROR: MI_ErrorCategory = 23i32; +pub const MI_FLAG_ABSTRACT: u32 = 131072u32; +pub const MI_FLAG_ADOPT: u32 = 2147483648u32; +pub const MI_FLAG_ANY: u32 = 127u32; +pub const MI_FLAG_ASSOCIATION: u32 = 16u32; +pub const MI_FLAG_BORROW: u32 = 1073741824u32; +pub const MI_FLAG_CLASS: u32 = 1u32; +pub const MI_FLAG_DISABLEOVERRIDE: u32 = 256u32; +pub const MI_FLAG_ENABLEOVERRIDE: u32 = 128u32; +pub const MI_FLAG_EXPENSIVE: u32 = 524288u32; +pub const MI_FLAG_EXTENDED: u32 = 4096u32; +pub const MI_FLAG_IN: u32 = 8192u32; +pub const MI_FLAG_INDICATION: u32 = 32u32; +pub const MI_FLAG_KEY: u32 = 4096u32; +pub const MI_FLAG_METHOD: u32 = 2u32; +pub const MI_FLAG_NOT_MODIFIED: u32 = 33554432u32; +pub const MI_FLAG_NULL: u32 = 536870912u32; +pub const MI_FLAG_OUT: u32 = 16384u32; +pub const MI_FLAG_PARAMETER: u32 = 8u32; +pub const MI_FLAG_PROPERTY: u32 = 4u32; +pub const MI_FLAG_READONLY: u32 = 2097152u32; +pub const MI_FLAG_REFERENCE: u32 = 64u32; +pub const MI_FLAG_REQUIRED: u32 = 32768u32; +pub const MI_FLAG_RESTRICTED: u32 = 512u32; +pub const MI_FLAG_STATIC: u32 = 65536u32; +pub const MI_FLAG_STREAM: u32 = 1048576u32; +pub const MI_FLAG_TERMINAL: u32 = 262144u32; +pub const MI_FLAG_TOSUBCLASS: u32 = 1024u32; +pub const MI_FLAG_TRANSLATABLE: u32 = 2048u32; +pub const MI_FLAG_VERSION: u32 = 469762048u32; +pub const MI_INSTANCE: MI_Type = 15i32; +pub const MI_INSTANCEA: MI_Type = 31i32; +pub const MI_LOCALE_TYPE_CLOSEST_DATA: MI_LocaleType = 3i32; +pub const MI_LOCALE_TYPE_CLOSEST_UI: MI_LocaleType = 2i32; +pub const MI_LOCALE_TYPE_REQUESTED_DATA: MI_LocaleType = 1i32; +pub const MI_LOCALE_TYPE_REQUESTED_UI: MI_LocaleType = 0i32; +pub const MI_MAX_LOCALE_SIZE: u32 = 128u32; +pub const MI_MODULE_FLAG_BOOLEANS: u32 = 16u32; +pub const MI_MODULE_FLAG_CPLUSPLUS: u32 = 32u32; +pub const MI_MODULE_FLAG_DESCRIPTIONS: u32 = 2u32; +pub const MI_MODULE_FLAG_FILTER_SUPPORT: u32 = 128u32; +pub const MI_MODULE_FLAG_LOCALIZED: u32 = 64u32; +pub const MI_MODULE_FLAG_MAPPING_STRINGS: u32 = 8u32; +pub const MI_MODULE_FLAG_STANDARD_QUALIFIERS: u32 = 1u32; +pub const MI_MODULE_FLAG_VALUES: u32 = 4u32; +pub const MI_OPERATIONFLAGS_BASIC_RTTI: u32 = 2u32; +pub const MI_OPERATIONFLAGS_DEFAULT_RTTI: u32 = 0u32; +pub const MI_OPERATIONFLAGS_EXPENSIVE_PROPERTIES: u32 = 64u32; +pub const MI_OPERATIONFLAGS_FULL_RTTI: u32 = 4u32; +pub const MI_OPERATIONFLAGS_LOCALIZED_QUALIFIERS: u32 = 8u32; +pub const MI_OPERATIONFLAGS_MANUAL_ACK_RESULTS: u32 = 1u32; +pub const MI_OPERATIONFLAGS_NO_RTTI: u32 = 1024u32; +pub const MI_OPERATIONFLAGS_POLYMORPHISM_DEEP_BASE_PROPS_ONLY: u32 = 384u32; +pub const MI_OPERATIONFLAGS_POLYMORPHISM_SHALLOW: u32 = 128u32; +pub const MI_OPERATIONFLAGS_REPORT_OPERATION_STARTED: u32 = 512u32; +pub const MI_OPERATIONFLAGS_STANDARD_RTTI: u32 = 2048u32; +pub const MI_OperationCallback_ResponseType_No: MI_OperationCallback_ResponseType = 0i32; +pub const MI_OperationCallback_ResponseType_NoToAll: MI_OperationCallback_ResponseType = 2i32; +pub const MI_OperationCallback_ResponseType_Yes: MI_OperationCallback_ResponseType = 1i32; +pub const MI_OperationCallback_ResponseType_YesToAll: MI_OperationCallback_ResponseType = 3i32; +pub const MI_PROMPTTYPE_CRITICAL: MI_PromptType = 1i32; +pub const MI_PROMPTTYPE_NORMAL: MI_PromptType = 0i32; +pub const MI_PROVIDER_ARCHITECTURE_32BIT: MI_ProviderArchitecture = 0i32; +pub const MI_PROVIDER_ARCHITECTURE_64BIT: MI_ProviderArchitecture = 1i32; +pub const MI_REAL32: MI_Type = 9i32; +pub const MI_REAL32A: MI_Type = 25i32; +pub const MI_REAL64: MI_Type = 10i32; +pub const MI_REAL64A: MI_Type = 26i32; +pub const MI_REASON_NONE: MI_CancellationReason = 0i32; +pub const MI_REASON_SERVICESTOP: MI_CancellationReason = 3i32; +pub const MI_REASON_SHUTDOWN: MI_CancellationReason = 2i32; +pub const MI_REASON_TIMEOUT: MI_CancellationReason = 1i32; +pub const MI_REFERENCE: MI_Type = 14i32; +pub const MI_REFERENCEA: MI_Type = 30i32; +pub const MI_RESULT_ACCESS_DENIED: MI_Result = 2i32; +pub const MI_RESULT_ALREADY_EXISTS: MI_Result = 11i32; +pub const MI_RESULT_CLASS_HAS_CHILDREN: MI_Result = 8i32; +pub const MI_RESULT_CLASS_HAS_INSTANCES: MI_Result = 9i32; +pub const MI_RESULT_CONTINUATION_ON_ERROR_NOT_SUPPORTED: MI_Result = 26i32; +pub const MI_RESULT_FAILED: MI_Result = 1i32; +pub const MI_RESULT_FILTERED_ENUMERATION_NOT_SUPPORTED: MI_Result = 25i32; +pub const MI_RESULT_INVALID_CLASS: MI_Result = 5i32; +pub const MI_RESULT_INVALID_ENUMERATION_CONTEXT: MI_Result = 21i32; +pub const MI_RESULT_INVALID_NAMESPACE: MI_Result = 3i32; +pub const MI_RESULT_INVALID_OPERATION_TIMEOUT: MI_Result = 22i32; +pub const MI_RESULT_INVALID_PARAMETER: MI_Result = 4i32; +pub const MI_RESULT_INVALID_QUERY: MI_Result = 15i32; +pub const MI_RESULT_INVALID_SUPERCLASS: MI_Result = 10i32; +pub const MI_RESULT_METHOD_NOT_AVAILABLE: MI_Result = 16i32; +pub const MI_RESULT_METHOD_NOT_FOUND: MI_Result = 17i32; +pub const MI_RESULT_NAMESPACE_NOT_EMPTY: MI_Result = 20i32; +pub const MI_RESULT_NOT_FOUND: MI_Result = 6i32; +pub const MI_RESULT_NOT_SUPPORTED: MI_Result = 7i32; +pub const MI_RESULT_NO_SUCH_PROPERTY: MI_Result = 12i32; +pub const MI_RESULT_OK: MI_Result = 0i32; +pub const MI_RESULT_PULL_CANNOT_BE_ABANDONED: MI_Result = 24i32; +pub const MI_RESULT_PULL_HAS_BEEN_ABANDONED: MI_Result = 23i32; +pub const MI_RESULT_QUERY_LANGUAGE_NOT_SUPPORTED: MI_Result = 14i32; +pub const MI_RESULT_SERVER_IS_SHUTTING_DOWN: MI_Result = 28i32; +pub const MI_RESULT_SERVER_LIMITS_EXCEEDED: MI_Result = 27i32; +pub const MI_RESULT_TYPE_MISMATCH: MI_Result = 13i32; +pub const MI_SERIALIZER_FLAGS_CLASS_DEEP: u32 = 1u32; +pub const MI_SERIALIZER_FLAGS_INSTANCE_WITH_CLASS: u32 = 1u32; +pub const MI_SINT16: MI_Type = 4i32; +pub const MI_SINT16A: MI_Type = 20i32; +pub const MI_SINT32: MI_Type = 6i32; +pub const MI_SINT32A: MI_Type = 22i32; +pub const MI_SINT64: MI_Type = 8i32; +pub const MI_SINT64A: MI_Type = 24i32; +pub const MI_SINT8: MI_Type = 2i32; +pub const MI_SINT8A: MI_Type = 18i32; +pub const MI_STRING: MI_Type = 13i32; +pub const MI_STRINGA: MI_Type = 29i32; +pub const MI_SUBSCRIBE_BOOKMARK_NEWEST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MI_SUBSCRIBE_BOOKMARK_NEWEST"); +pub const MI_SUBSCRIBE_BOOKMARK_OLDEST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MI_SUBSCRIBE_BOOKMARK_OLDEST"); +pub const MI_SubscriptionDeliveryType_Pull: MI_SubscriptionDeliveryType = 1i32; +pub const MI_SubscriptionDeliveryType_Push: MI_SubscriptionDeliveryType = 2i32; +pub const MI_UINT16: MI_Type = 3i32; +pub const MI_UINT16A: MI_Type = 19i32; +pub const MI_UINT32: MI_Type = 5i32; +pub const MI_UINT32A: MI_Type = 21i32; +pub const MI_UINT64: MI_Type = 7i32; +pub const MI_UINT64A: MI_Type = 23i32; +pub const MI_UINT8: MI_Type = 1i32; +pub const MI_UINT8A: MI_Type = 17i32; +pub const MI_WRITEMESSAGE_CHANNEL_DEBUG: u32 = 2u32; +pub const MI_WRITEMESSAGE_CHANNEL_VERBOSE: u32 = 1u32; +pub const MI_WRITEMESSAGE_CHANNEL_WARNING: u32 = 0u32; +pub const MofCompiler: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6daf9757_2e37_11d2_aec9_00c04fb68820); +pub const SWbemDateTime: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x47dfbe54_cf76_11d3_b38f_00105a1f473a); +pub const SWbemEventSource: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04b83d58_21ae_11d2_8b33_00600806d9b6); +pub const SWbemLastError: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc2feeeac_cfcd_11d1_8b05_00600806d9b6); +pub const SWbemLocator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x76a64158_cb41_11d1_8b02_00600806d9b6); +pub const SWbemMethod: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04b83d5b_21ae_11d2_8b33_00600806d9b6); +pub const SWbemMethodSet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04b83d5a_21ae_11d2_8b33_00600806d9b6); +pub const SWbemNamedValue: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04b83d60_21ae_11d2_8b33_00600806d9b6); +pub const SWbemNamedValueSet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9aed384e_ce8b_11d1_8b05_00600806d9b6); +pub const SWbemObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04b83d62_21ae_11d2_8b33_00600806d9b6); +pub const SWbemObjectEx: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd6bdafb2_9435_491f_bb87_6aa0f0bc31a2); +pub const SWbemObjectPath: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5791bc26_ce9c_11d1_97bf_0000f81e849c); +pub const SWbemObjectSet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04b83d61_21ae_11d2_8b33_00600806d9b6); +pub const SWbemPrivilege: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x26ee67bc_5804_11d2_8b4a_00600806d9b6); +pub const SWbemPrivilegeSet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x26ee67be_5804_11d2_8b4a_00600806d9b6); +pub const SWbemProperty: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04b83d5d_21ae_11d2_8b33_00600806d9b6); +pub const SWbemPropertySet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04b83d5c_21ae_11d2_8b33_00600806d9b6); +pub const SWbemQualifier: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04b83d5f_21ae_11d2_8b33_00600806d9b6); +pub const SWbemQualifierSet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04b83d5e_21ae_11d2_8b33_00600806d9b6); +pub const SWbemRefreshableItem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8c6854bc_de4b_11d3_b390_00105a1f473a); +pub const SWbemRefresher: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd269bf5c_d9c1_11d3_b38f_00105a1f473a); +pub const SWbemSecurity: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb54d66e9_2287_11d2_8b33_00600806d9b6); +pub const SWbemServices: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04b83d63_21ae_11d2_8b33_00600806d9b6); +pub const SWbemServicesEx: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x62e522dc_8cf3_40a8_8b2e_37d595651e40); +pub const SWbemSink: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x75718c9a_f029_11d1_a1ac_00c04fb6c223); +pub const UnsecuredApartment: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49bd2028_1523_11d1_ad79_00c04fd8fdff); +pub const WBEMESS_E_AUTHZ_NOT_PRIVILEGED: WBEMSTATUS = -2147213309i32; +pub const WBEMESS_E_REGISTRATION_TOO_BROAD: WBEMSTATUS = -2147213311i32; +pub const WBEMESS_E_REGISTRATION_TOO_PRECISE: WBEMSTATUS = -2147213310i32; +pub const WBEMMOF_E_ALIASES_IN_EMBEDDED: WBEMSTATUS = -2147205089i32; +pub const WBEMMOF_E_CIMTYPE_QUALIFIER: WBEMSTATUS = -2147205094i32; +pub const WBEMMOF_E_DUPLICATE_PROPERTY: WBEMSTATUS = -2147205093i32; +pub const WBEMMOF_E_DUPLICATE_QUALIFIER: WBEMSTATUS = -2147205087i32; +pub const WBEMMOF_E_ERROR_CREATING_TEMP_FILE: WBEMSTATUS = -2147205073i32; +pub const WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE: WBEMSTATUS = -2147205072i32; +pub const WBEMMOF_E_EXPECTED_ALIAS_NAME: WBEMSTATUS = -2147205098i32; +pub const WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE: WBEMSTATUS = -2147205079i32; +pub const WBEMMOF_E_EXPECTED_CLASS_NAME: WBEMSTATUS = -2147205100i32; +pub const WBEMMOF_E_EXPECTED_CLOSE_BRACE: WBEMSTATUS = -2147205116i32; +pub const WBEMMOF_E_EXPECTED_CLOSE_BRACKET: WBEMSTATUS = -2147205115i32; +pub const WBEMMOF_E_EXPECTED_CLOSE_PAREN: WBEMSTATUS = -2147205114i32; +pub const WBEMMOF_E_EXPECTED_DOLLAR: WBEMSTATUS = -2147205095i32; +pub const WBEMMOF_E_EXPECTED_FLAVOR_TYPE: WBEMSTATUS = -2147205086i32; +pub const WBEMMOF_E_EXPECTED_OPEN_BRACE: WBEMSTATUS = -2147205117i32; +pub const WBEMMOF_E_EXPECTED_OPEN_PAREN: WBEMSTATUS = -2147205111i32; +pub const WBEMMOF_E_EXPECTED_PROPERTY_NAME: WBEMSTATUS = -2147205108i32; +pub const WBEMMOF_E_EXPECTED_QUALIFIER_NAME: WBEMSTATUS = -2147205119i32; +pub const WBEMMOF_E_EXPECTED_SEMI: WBEMSTATUS = -2147205118i32; +pub const WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER: WBEMSTATUS = -2147205112i32; +pub const WBEMMOF_E_ILLEGAL_CONSTANT_VALUE: WBEMSTATUS = -2147205113i32; +pub const WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES: WBEMSTATUS = -2147205085i32; +pub const WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2: WBEMSTATUS = -2147205083i32; +pub const WBEMMOF_E_INVALID_AMENDMENT_SYNTAX: WBEMSTATUS = -2147205104i32; +pub const WBEMMOF_E_INVALID_CLASS_DECLARATION: WBEMSTATUS = -2147205097i32; +pub const WBEMMOF_E_INVALID_DELETECLASS_SYNTAX: WBEMSTATUS = -2147205071i32; +pub const WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX: WBEMSTATUS = -2147205076i32; +pub const WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT: WBEMSTATUS = -2147205103i32; +pub const WBEMMOF_E_INVALID_FILE: WBEMSTATUS = -2147205090i32; +pub const WBEMMOF_E_INVALID_FLAGS_SYNTAX: WBEMSTATUS = -2147205080i32; +pub const WBEMMOF_E_INVALID_INSTANCE_DECLARATION: WBEMSTATUS = -2147205096i32; +pub const WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION: WBEMSTATUS = -2147205092i32; +pub const WBEMMOF_E_INVALID_NAMESPACE_SYNTAX: WBEMSTATUS = -2147205101i32; +pub const WBEMMOF_E_INVALID_PRAGMA: WBEMSTATUS = -2147205102i32; +pub const WBEMMOF_E_INVALID_QUALIFIER_SYNTAX: WBEMSTATUS = -2147205075i32; +pub const WBEMMOF_E_MULTIPLE_ALIASES: WBEMSTATUS = -2147205084i32; +pub const WBEMMOF_E_MUST_BE_IN_OR_OUT: WBEMSTATUS = -2147205081i32; +pub const WBEMMOF_E_NO_ARRAYS_RETURNED: WBEMSTATUS = -2147205082i32; +pub const WBEMMOF_E_NULL_ARRAY_ELEM: WBEMSTATUS = -2147205088i32; +pub const WBEMMOF_E_OUT_OF_RANGE: WBEMSTATUS = -2147205091i32; +pub const WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE: WBEMSTATUS = -2147205074i32; +pub const WBEMMOF_E_TYPEDEF_NOT_SUPPORTED: WBEMSTATUS = -2147205107i32; +pub const WBEMMOF_E_TYPE_MISMATCH: WBEMSTATUS = -2147205099i32; +pub const WBEMMOF_E_UNEXPECTED_ALIAS: WBEMSTATUS = -2147205106i32; +pub const WBEMMOF_E_UNEXPECTED_ARRAY_INIT: WBEMSTATUS = -2147205105i32; +pub const WBEMMOF_E_UNRECOGNIZED_TOKEN: WBEMSTATUS = -2147205110i32; +pub const WBEMMOF_E_UNRECOGNIZED_TYPE: WBEMSTATUS = -2147205109i32; +pub const WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE: WBEMSTATUS = -2147205077i32; +pub const WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE: WBEMSTATUS = -2147205078i32; +pub const WBEMPATH_COMPRESSED: WBEM_GET_TEXT_FLAGS = 1i32; +pub const WBEMPATH_CREATE_ACCEPT_ABSOLUTE: WBEM_PATH_CREATE_FLAG = 2i32; +pub const WBEMPATH_CREATE_ACCEPT_ALL: WBEM_PATH_CREATE_FLAG = 4i32; +pub const WBEMPATH_CREATE_ACCEPT_RELATIVE: WBEM_PATH_CREATE_FLAG = 1i32; +pub const WBEMPATH_GET_NAMESPACE_ONLY: WBEM_GET_TEXT_FLAGS = 16i32; +pub const WBEMPATH_GET_ORIGINAL: WBEM_GET_TEXT_FLAGS = 32i32; +pub const WBEMPATH_GET_RELATIVE_ONLY: WBEM_GET_TEXT_FLAGS = 2i32; +pub const WBEMPATH_GET_SERVER_AND_NAMESPACE_ONLY: WBEM_GET_TEXT_FLAGS = 8i32; +pub const WBEMPATH_GET_SERVER_TOO: WBEM_GET_TEXT_FLAGS = 4i32; +pub const WBEMPATH_INFO_ANON_LOCAL_MACHINE: WBEM_PATH_STATUS_FLAG = 1i32; +pub const WBEMPATH_INFO_CIM_COMPLIANT: WBEM_PATH_STATUS_FLAG = 2048i32; +pub const WBEMPATH_INFO_CONTAINS_SINGLETON: WBEM_PATH_STATUS_FLAG = 256i32; +pub const WBEMPATH_INFO_HAS_IMPLIED_KEY: WBEM_PATH_STATUS_FLAG = 128i32; +pub const WBEMPATH_INFO_HAS_MACHINE_NAME: WBEM_PATH_STATUS_FLAG = 2i32; +pub const WBEMPATH_INFO_HAS_SUBSCOPES: WBEM_PATH_STATUS_FLAG = 16i32; +pub const WBEMPATH_INFO_HAS_V2_REF_PATHS: WBEM_PATH_STATUS_FLAG = 64i32; +pub const WBEMPATH_INFO_IS_CLASS_REF: WBEM_PATH_STATUS_FLAG = 4i32; +pub const WBEMPATH_INFO_IS_COMPOUND: WBEM_PATH_STATUS_FLAG = 32i32; +pub const WBEMPATH_INFO_IS_INST_REF: WBEM_PATH_STATUS_FLAG = 8i32; +pub const WBEMPATH_INFO_IS_PARENT: WBEM_PATH_STATUS_FLAG = 8192i32; +pub const WBEMPATH_INFO_IS_SINGLETON: WBEM_PATH_STATUS_FLAG = 4096i32; +pub const WBEMPATH_INFO_NATIVE_PATH: WBEM_PATH_STATUS_FLAG = 32768i32; +pub const WBEMPATH_INFO_PATH_HAD_SERVER: WBEM_PATH_STATUS_FLAG = 131072i32; +pub const WBEMPATH_INFO_SERVER_NAMESPACE_ONLY: WBEM_PATH_STATUS_FLAG = 16384i32; +pub const WBEMPATH_INFO_V1_COMPLIANT: WBEM_PATH_STATUS_FLAG = 512i32; +pub const WBEMPATH_INFO_V2_COMPLIANT: WBEM_PATH_STATUS_FLAG = 1024i32; +pub const WBEMPATH_INFO_WMI_PATH: WBEM_PATH_STATUS_FLAG = 65536i32; +pub const WBEMPATH_QUOTEDTEXT: WBEM_GET_KEY_FLAGS = 2i32; +pub const WBEMPATH_TEXT: WBEM_GET_KEY_FLAGS = 1i32; +pub const WBEMPATH_TREAT_SINGLE_IDENT_AS_NS: WBEM_PATH_CREATE_FLAG = 8i32; +pub const WBEMSTATUS_FORMAT_NEWLINE: WBEMSTATUS_FORMAT = 0i32; +pub const WBEMSTATUS_FORMAT_NO_NEWLINE: WBEMSTATUS_FORMAT = 1i32; +pub const WBEMS_DISPID_COMPLETED: u32 = 2u32; +pub const WBEMS_DISPID_CONNECTION_READY: u32 = 5u32; +pub const WBEMS_DISPID_DERIVATION: u32 = 23u32; +pub const WBEMS_DISPID_OBJECT_PUT: u32 = 4u32; +pub const WBEMS_DISPID_OBJECT_READY: u32 = 1u32; +pub const WBEMS_DISPID_PROGRESS: u32 = 3u32; +pub const WBEM_AUTHENTICATION_METHOD_MASK: WBEM_LOGIN_TYPE = 15i32; +pub const WBEM_COMPARISON_INCLUDE_ALL: WBEM_COMPARISON_FLAG = 0i32; +pub const WBEM_ENABLE: WBEM_SECURITY_FLAGS = 1i32; +pub const WBEM_E_ACCESS_DENIED: WBEMSTATUS = -2147217405i32; +pub const WBEM_E_AGGREGATING_BY_OBJECT: WBEMSTATUS = -2147217315i32; +pub const WBEM_E_ALREADY_EXISTS: WBEMSTATUS = -2147217383i32; +pub const WBEM_E_AMBIGUOUS_OPERATION: WBEMSTATUS = -2147217301i32; +pub const WBEM_E_AMENDED_OBJECT: WBEMSTATUS = -2147217306i32; +pub const WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING: WBEMSTATUS = -2147217312i32; +pub const WBEM_E_BUFFER_TOO_SMALL: WBEMSTATUS = -2147217348i32; +pub const WBEM_E_CALL_CANCELLED: WBEMSTATUS = -2147217358i32; +pub const WBEM_E_CANNOT_BE_ABSTRACT: WBEMSTATUS = -2147217307i32; +pub const WBEM_E_CANNOT_BE_KEY: WBEMSTATUS = -2147217377i32; +pub const WBEM_E_CANNOT_BE_SINGLETON: WBEMSTATUS = -2147217364i32; +pub const WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE: WBEMSTATUS = -2147217328i32; +pub const WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE: WBEMSTATUS = -2147217335i32; +pub const WBEM_E_CIRCULAR_REFERENCE: WBEMSTATUS = -2147217337i32; +pub const WBEM_E_CLASS_HAS_CHILDREN: WBEMSTATUS = -2147217371i32; +pub const WBEM_E_CLASS_HAS_INSTANCES: WBEMSTATUS = -2147217370i32; +pub const WBEM_E_CLASS_NAME_TOO_WIDE: WBEMSTATUS = -2147217292i32; +pub const WBEM_E_CLIENT_TOO_SLOW: WBEMSTATUS = -2147217305i32; +pub const WBEM_E_CONNECTION_FAILED: WBEMSTATUS = -2147217295i32; +pub const WBEM_E_CRITICAL_ERROR: WBEMSTATUS = -2147217398i32; +pub const WBEM_E_DATABASE_VER_MISMATCH: WBEMSTATUS = -2147217288i32; +pub const WBEM_E_ENCRYPTED_CONNECTION_REQUIRED: WBEMSTATUS = -2147217273i32; +pub const WBEM_E_FAILED: WBEMSTATUS = -2147217407i32; +pub const WBEM_E_FATAL_TRANSPORT_ERROR: WBEMSTATUS = -2147217274i32; +pub const WBEM_E_HANDLE_OUT_OF_DATE: WBEMSTATUS = -2147217296i32; +pub const WBEM_E_ILLEGAL_NULL: WBEMSTATUS = -2147217368i32; +pub const WBEM_E_ILLEGAL_OPERATION: WBEMSTATUS = -2147217378i32; +pub const WBEM_E_INCOMPLETE_CLASS: WBEMSTATUS = -2147217376i32; +pub const WBEM_E_INITIALIZATION_FAILURE: WBEMSTATUS = -2147217388i32; +pub const WBEM_E_INVALID_ASSOCIATION: WBEMSTATUS = -2147217302i32; +pub const WBEM_E_INVALID_CIM_TYPE: WBEMSTATUS = -2147217363i32; +pub const WBEM_E_INVALID_CLASS: WBEMSTATUS = -2147217392i32; +pub const WBEM_E_INVALID_CONTEXT: WBEMSTATUS = -2147217401i32; +pub const WBEM_E_INVALID_DUPLICATE_PARAMETER: WBEMSTATUS = -2147217341i32; +pub const WBEM_E_INVALID_FLAVOR: WBEMSTATUS = -2147217338i32; +pub const WBEM_E_INVALID_HANDLE_REQUEST: WBEMSTATUS = -2147217294i32; +pub const WBEM_E_INVALID_LOCALE: WBEMSTATUS = -2147217280i32; +pub const WBEM_E_INVALID_METHOD: WBEMSTATUS = -2147217362i32; +pub const WBEM_E_INVALID_METHOD_PARAMETERS: WBEMSTATUS = -2147217361i32; +pub const WBEM_E_INVALID_NAMESPACE: WBEMSTATUS = -2147217394i32; +pub const WBEM_E_INVALID_OBJECT: WBEMSTATUS = -2147217393i32; +pub const WBEM_E_INVALID_OBJECT_PATH: WBEMSTATUS = -2147217350i32; +pub const WBEM_E_INVALID_OPERATION: WBEMSTATUS = -2147217386i32; +pub const WBEM_E_INVALID_OPERATOR: WBEMSTATUS = -2147217309i32; +pub const WBEM_E_INVALID_PARAMETER: WBEMSTATUS = -2147217400i32; +pub const WBEM_E_INVALID_PARAMETER_ID: WBEMSTATUS = -2147217353i32; +pub const WBEM_E_INVALID_PROPERTY: WBEMSTATUS = -2147217359i32; +pub const WBEM_E_INVALID_PROPERTY_TYPE: WBEMSTATUS = -2147217366i32; +pub const WBEM_E_INVALID_PROVIDER_REGISTRATION: WBEMSTATUS = -2147217390i32; +pub const WBEM_E_INVALID_QUALIFIER: WBEMSTATUS = -2147217342i32; +pub const WBEM_E_INVALID_QUALIFIER_TYPE: WBEMSTATUS = -2147217367i32; +pub const WBEM_E_INVALID_QUERY: WBEMSTATUS = -2147217385i32; +pub const WBEM_E_INVALID_QUERY_TYPE: WBEMSTATUS = -2147217384i32; +pub const WBEM_E_INVALID_STREAM: WBEMSTATUS = -2147217397i32; +pub const WBEM_E_INVALID_SUPERCLASS: WBEMSTATUS = -2147217395i32; +pub const WBEM_E_INVALID_SYNTAX: WBEMSTATUS = -2147217375i32; +pub const WBEM_E_LOCAL_CREDENTIALS: WBEMSTATUS = -2147217308i32; +pub const WBEM_E_MARSHAL_INVALID_SIGNATURE: WBEMSTATUS = -2147217343i32; +pub const WBEM_E_MARSHAL_VERSION_MISMATCH: WBEMSTATUS = -2147217344i32; +pub const WBEM_E_METHOD_DISABLED: WBEMSTATUS = -2147217322i32; +pub const WBEM_E_METHOD_NAME_TOO_WIDE: WBEMSTATUS = -2147217291i32; +pub const WBEM_E_METHOD_NOT_IMPLEMENTED: WBEMSTATUS = -2147217323i32; +pub const WBEM_E_MISSING_AGGREGATION_LIST: WBEMSTATUS = -2147217317i32; +pub const WBEM_E_MISSING_GROUP_WITHIN: WBEMSTATUS = -2147217318i32; +pub const WBEM_E_MISSING_PARAMETER_ID: WBEMSTATUS = -2147217354i32; +pub const WBEM_E_NONCONSECUTIVE_PARAMETER_IDS: WBEMSTATUS = -2147217352i32; +pub const WBEM_E_NONDECORATED_OBJECT: WBEMSTATUS = -2147217374i32; +pub const WBEM_E_NOT_AVAILABLE: WBEMSTATUS = -2147217399i32; +pub const WBEM_E_NOT_EVENT_CLASS: WBEMSTATUS = -2147217319i32; +pub const WBEM_E_NOT_FOUND: WBEMSTATUS = -2147217406i32; +pub const WBEM_E_NOT_SUPPORTED: WBEMSTATUS = -2147217396i32; +pub const WBEM_E_NO_KEY: WBEMSTATUS = -2147217271i32; +pub const WBEM_E_NO_SCHEMA: WBEMSTATUS = -2147217277i32; +pub const WBEM_E_NULL_SECURITY_DESCRIPTOR: WBEMSTATUS = -2147217304i32; +pub const WBEM_E_OUT_OF_DISK_SPACE: WBEMSTATUS = -2147217349i32; +pub const WBEM_E_OUT_OF_MEMORY: WBEMSTATUS = -2147217402i32; +pub const WBEM_E_OVERRIDE_NOT_ALLOWED: WBEMSTATUS = -2147217382i32; +pub const WBEM_E_PARAMETER_ID_ON_RETVAL: WBEMSTATUS = -2147217351i32; +pub const WBEM_E_PRIVILEGE_NOT_HELD: WBEMSTATUS = -2147217310i32; +pub const WBEM_E_PROPAGATED_METHOD: WBEMSTATUS = -2147217356i32; +pub const WBEM_E_PROPAGATED_PROPERTY: WBEMSTATUS = -2147217380i32; +pub const WBEM_E_PROPAGATED_QUALIFIER: WBEMSTATUS = -2147217381i32; +pub const WBEM_E_PROPERTY_NAME_TOO_WIDE: WBEMSTATUS = -2147217293i32; +pub const WBEM_E_PROPERTY_NOT_AN_OBJECT: WBEMSTATUS = -2147217316i32; +pub const WBEM_E_PROVIDER_ALREADY_REGISTERED: WBEMSTATUS = -2147217276i32; +pub const WBEM_E_PROVIDER_DISABLED: WBEMSTATUS = -2147217270i32; +pub const WBEM_E_PROVIDER_FAILURE: WBEMSTATUS = -2147217404i32; +pub const WBEM_E_PROVIDER_LOAD_FAILURE: WBEMSTATUS = -2147217389i32; +pub const WBEM_E_PROVIDER_NOT_CAPABLE: WBEMSTATUS = -2147217372i32; +pub const WBEM_E_PROVIDER_NOT_FOUND: WBEMSTATUS = -2147217391i32; +pub const WBEM_E_PROVIDER_NOT_REGISTERED: WBEMSTATUS = -2147217275i32; +pub const WBEM_E_PROVIDER_SUSPENDED: WBEMSTATUS = -2147217279i32; +pub const WBEM_E_PROVIDER_TIMED_OUT: WBEMSTATUS = -2147217272i32; +pub const WBEM_E_QUALIFIER_NAME_TOO_WIDE: WBEMSTATUS = -2147217290i32; +pub const WBEM_E_QUERY_NOT_IMPLEMENTED: WBEMSTATUS = -2147217369i32; +pub const WBEM_E_QUEUE_OVERFLOW: WBEMSTATUS = -2147217311i32; +pub const WBEM_E_QUOTA_VIOLATION: WBEMSTATUS = -2147217300i32; +pub const WBEM_E_READ_ONLY: WBEMSTATUS = -2147217373i32; +pub const WBEM_E_REFRESHER_BUSY: WBEMSTATUS = -2147217321i32; +pub const WBEM_E_RERUN_COMMAND: WBEMSTATUS = -2147217289i32; +pub const WBEM_E_RESERVED_001: WBEMSTATUS = -2147217299i32; +pub const WBEM_E_RESERVED_002: WBEMSTATUS = -2147217298i32; +pub const WBEM_E_RESOURCE_CONTENTION: WBEM_EXTRA_RETURN_CODES = -2147209214i32; +pub const WBEM_E_RETRY_LATER: WBEM_EXTRA_RETURN_CODES = -2147209215i32; +pub const WBEM_E_SERVER_TOO_BUSY: WBEMSTATUS = -2147217339i32; +pub const WBEM_E_SHUTTING_DOWN: WBEMSTATUS = -2147217357i32; +pub const WBEM_E_SYNCHRONIZATION_REQUIRED: WBEMSTATUS = -2147217278i32; +pub const WBEM_E_SYSTEM_PROPERTY: WBEMSTATUS = -2147217360i32; +pub const WBEM_E_TIMED_OUT: WBEMSTATUS = -2147217303i32; +pub const WBEM_E_TOO_MANY_PROPERTIES: WBEMSTATUS = -2147217327i32; +pub const WBEM_E_TOO_MUCH_DATA: WBEMSTATUS = -2147217340i32; +pub const WBEM_E_TRANSPORT_FAILURE: WBEMSTATUS = -2147217387i32; +pub const WBEM_E_TYPE_MISMATCH: WBEMSTATUS = -2147217403i32; +pub const WBEM_E_UNEXPECTED: WBEMSTATUS = -2147217379i32; +pub const WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY: WBEMSTATUS = -2147217313i32; +pub const WBEM_E_UNKNOWN_OBJECT_TYPE: WBEMSTATUS = -2147217346i32; +pub const WBEM_E_UNKNOWN_PACKET_TYPE: WBEMSTATUS = -2147217345i32; +pub const WBEM_E_UNPARSABLE_QUERY: WBEMSTATUS = -2147217320i32; +pub const WBEM_E_UNSUPPORTED_CLASS_UPDATE: WBEMSTATUS = -2147217336i32; +pub const WBEM_E_UNSUPPORTED_LOCALE: WBEMSTATUS = -2147217297i32; +pub const WBEM_E_UNSUPPORTED_PARAMETER: WBEMSTATUS = -2147217355i32; +pub const WBEM_E_UNSUPPORTED_PUT_EXTENSION: WBEMSTATUS = -2147217347i32; +pub const WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED: WBEMSTATUS = -2147217325i32; +pub const WBEM_E_UPDATE_PROPAGATED_METHOD: WBEMSTATUS = -2147217324i32; +pub const WBEM_E_UPDATE_TYPE_MISMATCH: WBEMSTATUS = -2147217326i32; +pub const WBEM_E_VALUE_OUT_OF_RANGE: WBEMSTATUS = -2147217365i32; +pub const WBEM_E_VETO_DELETE: WBEMSTATUS = -2147217287i32; +pub const WBEM_E_VETO_PUT: WBEMSTATUS = -2147217286i32; +pub const WBEM_FLAG_ADVISORY: WBEM_CHANGE_FLAG_TYPE = 65536i32; +pub const WBEM_FLAG_ALLOW_READ: WBEM_LOCKING_FLAG_TYPE = 1i32; +pub const WBEM_FLAG_ALWAYS: WBEM_CONDITION_FLAG_TYPE = 0i32; +pub const WBEM_FLAG_AUTORECOVER: WBEM_COMPILER_OPTIONS = 2i32; +pub const WBEM_FLAG_BACKUP_RESTORE_DEFAULT: WBEM_BACKUP_RESTORE_FLAGS = 0i32; +pub const WBEM_FLAG_BACKUP_RESTORE_FORCE_SHUTDOWN: WBEM_BACKUP_RESTORE_FLAGS = 1i32; +pub const WBEM_FLAG_BATCH_IF_NEEDED: WBEM_BATCH_TYPE = 0i32; +pub const WBEM_FLAG_BIDIRECTIONAL: WBEM_GENERIC_FLAG_TYPE = 0i32; +pub const WBEM_FLAG_CHECK_ONLY: WBEM_COMPILER_OPTIONS = 1i32; +pub const WBEM_FLAG_CLASS_LOCAL_AND_OVERRIDES: WBEM_CONDITION_FLAG_TYPE = 512i32; +pub const WBEM_FLAG_CLASS_OVERRIDES_ONLY: WBEM_CONDITION_FLAG_TYPE = 256i32; +pub const WBEM_FLAG_CONNECT_PROVIDERS: WBEM_CONNECT_OPTIONS = 256i32; +pub const WBEM_FLAG_CONNECT_REPOSITORY_ONLY: WBEM_CONNECT_OPTIONS = 64i32; +pub const WBEM_FLAG_CONNECT_USE_MAX_WAIT: WBEM_CONNECT_OPTIONS = 128i32; +pub const WBEM_FLAG_CONSOLE_PRINT: WBEM_COMPILER_OPTIONS = 8i32; +pub const WBEM_FLAG_CREATE_ONLY: WBEM_CHANGE_FLAG_TYPE = 2i32; +pub const WBEM_FLAG_CREATE_OR_UPDATE: WBEM_CHANGE_FLAG_TYPE = 0i32; +pub const WBEM_FLAG_DEEP: WBEM_QUERY_FLAG_TYPE = 0i32; +pub const WBEM_FLAG_DIRECT_READ: WBEM_GENERIC_FLAG_TYPE = 512i32; +pub const WBEM_FLAG_DONT_ADD_TO_LIST: WBEM_COMPILER_OPTIONS = 16i32; +pub const WBEM_FLAG_DONT_SEND_STATUS: WBEM_GENERIC_FLAG_TYPE = 0i32; +pub const WBEM_FLAG_ENSURE_LOCATABLE: WBEM_GENERIC_FLAG_TYPE = 256i32; +pub const WBEM_FLAG_EXCLUDE_OBJECT_QUALIFIERS: WBEM_LIMITATION_FLAG_TYPE = 16i32; +pub const WBEM_FLAG_EXCLUDE_PROPERTY_QUALIFIERS: WBEM_LIMITATION_FLAG_TYPE = 32i32; +pub const WBEM_FLAG_FORWARD_ONLY: WBEM_GENERIC_FLAG_TYPE = 32i32; +pub const WBEM_FLAG_IGNORE_CASE: WBEM_COMPARISON_FLAG = 16i32; +pub const WBEM_FLAG_IGNORE_CLASS: WBEM_COMPARISON_FLAG = 8i32; +pub const WBEM_FLAG_IGNORE_DEFAULT_VALUES: WBEM_COMPARISON_FLAG = 4i32; +pub const WBEM_FLAG_IGNORE_FLAVOR: WBEM_COMPARISON_FLAG = 32i32; +pub const WBEM_FLAG_IGNORE_OBJECT_SOURCE: WBEM_COMPARISON_FLAG = 2i32; +pub const WBEM_FLAG_IGNORE_QUALIFIERS: WBEM_COMPARISON_FLAG = 1i32; +pub const WBEM_FLAG_INPROC_LOGIN: WBEM_LOGIN_TYPE = 0i32; +pub const WBEM_FLAG_KEYS_ONLY: WBEM_CONDITION_FLAG_TYPE = 4i32; +pub const WBEM_FLAG_LOCAL_LOGIN: WBEM_LOGIN_TYPE = 1i32; +pub const WBEM_FLAG_LOCAL_ONLY: WBEM_CONDITION_FLAG_TYPE = 16i32; +pub const WBEM_FLAG_LONG_NAME: WBEM_INFORMATION_FLAG_TYPE = 2i32; +pub const WBEM_FLAG_MUST_BATCH: WBEM_BATCH_TYPE = 1i32; +pub const WBEM_FLAG_MUST_NOT_BATCH: WBEM_BATCH_TYPE = 2i32; +pub const WBEM_FLAG_NONSYSTEM_ONLY: WBEM_CONDITION_FLAG_TYPE = 64i32; +pub const WBEM_FLAG_NO_ERROR_OBJECT: WBEM_GENERIC_FLAG_TYPE = 64i32; +pub const WBEM_FLAG_NO_FLAVORS: WBEM_TEXT_FLAG_TYPE = 1i32; +pub const WBEM_FLAG_ONLY_IF_FALSE: WBEM_CONDITION_FLAG_TYPE = 2i32; +pub const WBEM_FLAG_ONLY_IF_IDENTICAL: WBEM_CONDITION_FLAG_TYPE = 3i32; +pub const WBEM_FLAG_ONLY_IF_TRUE: WBEM_CONDITION_FLAG_TYPE = 1i32; +pub const WBEM_FLAG_OWNER_UPDATE: WBEM_PROVIDER_FLAGS = 65536i32; +pub const WBEM_FLAG_PROPAGATED_ONLY: WBEM_CONDITION_FLAG_TYPE = 32i32; +pub const WBEM_FLAG_PROTOTYPE: WBEM_QUERY_FLAG_TYPE = 2i32; +pub const WBEM_FLAG_REFRESH_AUTO_RECONNECT: WBEM_REFRESHER_FLAGS = 0i32; +pub const WBEM_FLAG_REFRESH_NO_AUTO_RECONNECT: WBEM_REFRESHER_FLAGS = 1i32; +pub const WBEM_FLAG_REFS_ONLY: WBEM_CONDITION_FLAG_TYPE = 8i32; +pub const WBEM_FLAG_REMOTE_LOGIN: WBEM_LOGIN_TYPE = 2i32; +pub const WBEM_FLAG_RETURN_ERROR_OBJECT: WBEM_GENERIC_FLAG_TYPE = 0i32; +pub const WBEM_FLAG_RETURN_IMMEDIATELY: WBEM_GENERIC_FLAG_TYPE = 16i32; +pub const WBEM_FLAG_RETURN_WBEM_COMPLETE: WBEM_GENERIC_FLAG_TYPE = 0i32; +pub const WBEM_FLAG_SEND_ONLY_SELECTED: WBEM_GENERIC_FLAG_TYPE = 0i32; +pub const WBEM_FLAG_SEND_STATUS: WBEM_GENERIC_FLAG_TYPE = 128i32; +pub const WBEM_FLAG_SHALLOW: WBEM_QUERY_FLAG_TYPE = 1i32; +pub const WBEM_FLAG_SHORT_NAME: WBEM_INFORMATION_FLAG_TYPE = 1i32; +pub const WBEM_FLAG_SPLIT_FILES: WBEM_COMPILER_OPTIONS = 32i32; +pub const WBEM_FLAG_STORE_FILE: WBEM_COMPILER_OPTIONS = 256i32; +pub const WBEM_FLAG_STRONG_VALIDATION: WBEM_GENERIC_FLAG_TYPE = 1048576i32; +pub const WBEM_FLAG_SYSTEM_ONLY: WBEM_CONDITION_FLAG_TYPE = 48i32; +pub const WBEM_FLAG_UNSECAPP_CHECK_ACCESS: WBEM_UNSECAPP_FLAG_TYPE = 1i32; +pub const WBEM_FLAG_UNSECAPP_DEFAULT_CHECK_ACCESS: WBEM_UNSECAPP_FLAG_TYPE = 0i32; +pub const WBEM_FLAG_UNSECAPP_DONT_CHECK_ACCESS: WBEM_UNSECAPP_FLAG_TYPE = 2i32; +pub const WBEM_FLAG_UPDATE_COMPATIBLE: WBEM_CHANGE_FLAG_TYPE = 0i32; +pub const WBEM_FLAG_UPDATE_FORCE_MODE: WBEM_CHANGE_FLAG_TYPE = 64i32; +pub const WBEM_FLAG_UPDATE_ONLY: WBEM_CHANGE_FLAG_TYPE = 1i32; +pub const WBEM_FLAG_UPDATE_SAFE_MODE: WBEM_CHANGE_FLAG_TYPE = 32i32; +pub const WBEM_FLAG_USE_AMENDED_QUALIFIERS: WBEM_GENERIC_FLAG_TYPE = 131072i32; +pub const WBEM_FLAG_USE_MULTIPLE_CHALLENGES: WBEM_LOGIN_TYPE = 16i32; +pub const WBEM_FLAG_WMI_CHECK: WBEM_COMPILER_OPTIONS = 4i32; +pub const WBEM_FLAVOR_AMENDED: WBEM_FLAVOR_TYPE = 128i32; +pub const WBEM_FLAVOR_DONT_PROPAGATE: WBEM_FLAVOR_TYPE = 0i32; +pub const WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS: WBEM_FLAVOR_TYPE = 2i32; +pub const WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE: WBEM_FLAVOR_TYPE = 1i32; +pub const WBEM_FLAVOR_MASK_AMENDED: WBEM_FLAVOR_TYPE = 128i32; +pub const WBEM_FLAVOR_MASK_ORIGIN: WBEM_FLAVOR_TYPE = 96i32; +pub const WBEM_FLAVOR_MASK_PERMISSIONS: WBEM_FLAVOR_TYPE = 16i32; +pub const WBEM_FLAVOR_MASK_PROPAGATION: WBEM_FLAVOR_TYPE = 15i32; +pub const WBEM_FLAVOR_NOT_AMENDED: WBEM_FLAVOR_TYPE = 0i32; +pub const WBEM_FLAVOR_NOT_OVERRIDABLE: WBEM_FLAVOR_TYPE = 16i32; +pub const WBEM_FLAVOR_ORIGIN_LOCAL: WBEM_FLAVOR_TYPE = 0i32; +pub const WBEM_FLAVOR_ORIGIN_PROPAGATED: WBEM_FLAVOR_TYPE = 32i32; +pub const WBEM_FLAVOR_ORIGIN_SYSTEM: WBEM_FLAVOR_TYPE = 64i32; +pub const WBEM_FLAVOR_OVERRIDABLE: WBEM_FLAVOR_TYPE = 0i32; +pub const WBEM_FULL_WRITE_REP: WBEM_SECURITY_FLAGS = 4i32; +pub const WBEM_GENUS_CLASS: WBEM_GENUS_TYPE = 1i32; +pub const WBEM_GENUS_INSTANCE: WBEM_GENUS_TYPE = 2i32; +pub const WBEM_INFINITE: i32 = -1i32; +pub const WBEM_MASK_CLASS_CONDITION: WBEM_CONDITION_FLAG_TYPE = 768i32; +pub const WBEM_MASK_CONDITION_ORIGIN: WBEM_CONDITION_FLAG_TYPE = 112i32; +pub const WBEM_MASK_PRIMARY_CONDITION: WBEM_CONDITION_FLAG_TYPE = 3i32; +pub const WBEM_MASK_RESERVED_FLAGS: WBEM_GENERIC_FLAG_TYPE = 126976i32; +pub const WBEM_MASK_UPDATE_MODE: WBEM_CHANGE_FLAG_TYPE = 96i32; +pub const WBEM_MAX_IDENTIFIER: WBEM_LIMITS = 4096i32; +pub const WBEM_MAX_OBJECT_NESTING: WBEM_LIMITS = 64i32; +pub const WBEM_MAX_PATH: WBEM_LIMITS = 8192i32; +pub const WBEM_MAX_QUERY: WBEM_LIMITS = 16384i32; +pub const WBEM_MAX_USER_PROPERTIES: WBEM_LIMITS = 1024i32; +pub const WBEM_METHOD_EXECUTE: WBEM_SECURITY_FLAGS = 2i32; +pub const WBEM_NO_ERROR: WBEMSTATUS = 0i32; +pub const WBEM_NO_WAIT: i32 = 0i32; +pub const WBEM_PARTIAL_WRITE_REP: WBEM_SECURITY_FLAGS = 8i32; +pub const WBEM_REMOTE_ACCESS: WBEM_SECURITY_FLAGS = 32i32; +pub const WBEM_REQUIREMENTS_RECHECK_SUBSCRIPTIONS: WBEM_PROVIDER_REQUIREMENTS_TYPE = 2i32; +pub const WBEM_REQUIREMENTS_START_POSTFILTER: WBEM_PROVIDER_REQUIREMENTS_TYPE = 0i32; +pub const WBEM_REQUIREMENTS_STOP_POSTFILTER: WBEM_PROVIDER_REQUIREMENTS_TYPE = 1i32; +pub const WBEM_RETURN_IMMEDIATELY: WBEM_GENERIC_FLAG_TYPE = 16i32; +pub const WBEM_RETURN_WHEN_COMPLETE: WBEM_GENERIC_FLAG_TYPE = 0i32; +pub const WBEM_RIGHT_PUBLISH: WBEM_SECURITY_FLAGS = 128i32; +pub const WBEM_RIGHT_SUBSCRIBE: WBEM_SECURITY_FLAGS = 64i32; +pub const WBEM_SHUTDOWN_OS: WBEM_SHUTDOWN_FLAGS = 3i32; +pub const WBEM_SHUTDOWN_UNLOAD_COMPONENT: WBEM_SHUTDOWN_FLAGS = 1i32; +pub const WBEM_SHUTDOWN_WMI: WBEM_SHUTDOWN_FLAGS = 2i32; +pub const WBEM_STATUS_COMPLETE: WBEM_STATUS_TYPE = 0i32; +pub const WBEM_STATUS_LOGGING_INFORMATION: WBEM_STATUS_TYPE = 256i32; +pub const WBEM_STATUS_LOGGING_INFORMATION_ESS: WBEM_STATUS_TYPE = 4096i32; +pub const WBEM_STATUS_LOGGING_INFORMATION_HOST: WBEM_STATUS_TYPE = 1024i32; +pub const WBEM_STATUS_LOGGING_INFORMATION_PROVIDER: WBEM_STATUS_TYPE = 512i32; +pub const WBEM_STATUS_LOGGING_INFORMATION_REPOSITORY: WBEM_STATUS_TYPE = 2048i32; +pub const WBEM_STATUS_PROGRESS: WBEM_STATUS_TYPE = 2i32; +pub const WBEM_STATUS_REQUIREMENTS: WBEM_STATUS_TYPE = 1i32; +pub const WBEM_S_ACCESS_DENIED: WBEMSTATUS = 262153i32; +pub const WBEM_S_ALREADY_EXISTS: WBEMSTATUS = 262145i32; +pub const WBEM_S_DIFFERENT: WBEMSTATUS = 262147i32; +pub const WBEM_S_DUPLICATE_OBJECTS: WBEMSTATUS = 262152i32; +pub const WBEM_S_FALSE: WBEMSTATUS = 1i32; +pub const WBEM_S_INDIRECTLY_UPDATED: WBEM_EXTRA_RETURN_CODES = 274434i32; +pub const WBEM_S_INITIALIZED: WBEM_EXTRA_RETURN_CODES = 0i32; +pub const WBEM_S_LIMITED_SERVICE: WBEM_EXTRA_RETURN_CODES = 274433i32; +pub const WBEM_S_NO_ERROR: WBEMSTATUS = 0i32; +pub const WBEM_S_NO_MORE_DATA: WBEMSTATUS = 262149i32; +pub const WBEM_S_OPERATION_CANCELLED: WBEMSTATUS = 262150i32; +pub const WBEM_S_PARTIAL_RESULTS: WBEMSTATUS = 262160i32; +pub const WBEM_S_PENDING: WBEMSTATUS = 262151i32; +pub const WBEM_S_RESET_TO_DEFAULT: WBEMSTATUS = 262146i32; +pub const WBEM_S_SAME: WBEMSTATUS = 0i32; +pub const WBEM_S_SOURCE_NOT_AVAILABLE: WBEMSTATUS = 262167i32; +pub const WBEM_S_SUBJECT_TO_SDS: WBEM_EXTRA_RETURN_CODES = 274435i32; +pub const WBEM_S_TIMEDOUT: WBEMSTATUS = 262148i32; +pub const WBEM_WRITE_PROVIDER: WBEM_SECURITY_FLAGS = 16i32; +pub const WMIExtension: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf0975afe_5c7f_11d2_8b74_00104b2afb41); +pub const WMIQ_ANALYSIS_ASSOC_QUERY: WMIQ_ANALYSIS_TYPE = 2i32; +pub const WMIQ_ANALYSIS_PROP_ANALYSIS_MATRIX: WMIQ_ANALYSIS_TYPE = 3i32; +pub const WMIQ_ANALYSIS_QUERY_TEXT: WMIQ_ANALYSIS_TYPE = 4i32; +pub const WMIQ_ANALYSIS_RESERVED: WMIQ_ANALYSIS_TYPE = 134217728i32; +pub const WMIQ_ANALYSIS_RPN_SEQUENCE: WMIQ_ANALYSIS_TYPE = 1i32; +pub const WMIQ_ASSOCQ_ASSOCCLASS: WMIQ_ASSOCQ_FLAGS = 8i32; +pub const WMIQ_ASSOCQ_ASSOCIATORS: WMIQ_ASSOCQ_FLAGS = 1i32; +pub const WMIQ_ASSOCQ_CLASSDEFSONLY: WMIQ_ASSOCQ_FLAGS = 256i32; +pub const WMIQ_ASSOCQ_CLASSREFSONLY: WMIQ_ASSOCQ_FLAGS = 2048i32; +pub const WMIQ_ASSOCQ_KEYSONLY: WMIQ_ASSOCQ_FLAGS = 512i32; +pub const WMIQ_ASSOCQ_REFERENCES: WMIQ_ASSOCQ_FLAGS = 2i32; +pub const WMIQ_ASSOCQ_REQUIREDASSOCQUALIFIER: WMIQ_ASSOCQ_FLAGS = 128i32; +pub const WMIQ_ASSOCQ_REQUIREDQUALIFIER: WMIQ_ASSOCQ_FLAGS = 64i32; +pub const WMIQ_ASSOCQ_RESULTCLASS: WMIQ_ASSOCQ_FLAGS = 4i32; +pub const WMIQ_ASSOCQ_RESULTROLE: WMIQ_ASSOCQ_FLAGS = 32i32; +pub const WMIQ_ASSOCQ_ROLE: WMIQ_ASSOCQ_FLAGS = 16i32; +pub const WMIQ_ASSOCQ_SCHEMAONLY: WMIQ_ASSOCQ_FLAGS = 1024i32; +pub const WMIQ_LF10_COMPEX_SUBEXPRESSIONS: WMIQ_LANGUAGE_FEATURES = 10i32; +pub const WMIQ_LF11_ALIASING: WMIQ_LANGUAGE_FEATURES = 11i32; +pub const WMIQ_LF12_GROUP_BY_HAVING: WMIQ_LANGUAGE_FEATURES = 12i32; +pub const WMIQ_LF13_WMI_WITHIN: WMIQ_LANGUAGE_FEATURES = 13i32; +pub const WMIQ_LF14_SQL_WRITE_OPERATIONS: WMIQ_LANGUAGE_FEATURES = 14i32; +pub const WMIQ_LF15_GO: WMIQ_LANGUAGE_FEATURES = 15i32; +pub const WMIQ_LF16_SINGLE_LEVEL_TRANSACTIONS: WMIQ_LANGUAGE_FEATURES = 16i32; +pub const WMIQ_LF17_QUALIFIED_NAMES: WMIQ_LANGUAGE_FEATURES = 17i32; +pub const WMIQ_LF18_ASSOCIATONS: WMIQ_LANGUAGE_FEATURES = 18i32; +pub const WMIQ_LF19_SYSTEM_PROPERTIES: WMIQ_LANGUAGE_FEATURES = 19i32; +pub const WMIQ_LF1_BASIC_SELECT: WMIQ_LANGUAGE_FEATURES = 1i32; +pub const WMIQ_LF20_EXTENDED_SYSTEM_PROPERTIES: WMIQ_LANGUAGE_FEATURES = 20i32; +pub const WMIQ_LF21_SQL89_JOINS: WMIQ_LANGUAGE_FEATURES = 21i32; +pub const WMIQ_LF22_SQL92_JOINS: WMIQ_LANGUAGE_FEATURES = 22i32; +pub const WMIQ_LF23_SUBSELECTS: WMIQ_LANGUAGE_FEATURES = 23i32; +pub const WMIQ_LF24_UMI_EXTENSIONS: WMIQ_LANGUAGE_FEATURES = 24i32; +pub const WMIQ_LF25_DATEPART: WMIQ_LANGUAGE_FEATURES = 25i32; +pub const WMIQ_LF26_LIKE: WMIQ_LANGUAGE_FEATURES = 26i32; +pub const WMIQ_LF27_CIM_TEMPORAL_CONSTRUCTS: WMIQ_LANGUAGE_FEATURES = 27i32; +pub const WMIQ_LF28_STANDARD_AGGREGATES: WMIQ_LANGUAGE_FEATURES = 28i32; +pub const WMIQ_LF29_MULTI_LEVEL_ORDER_BY: WMIQ_LANGUAGE_FEATURES = 29i32; +pub const WMIQ_LF2_CLASS_NAME_IN_QUERY: WMIQ_LANGUAGE_FEATURES = 2i32; +pub const WMIQ_LF30_WMI_PRAGMAS: WMIQ_LANGUAGE_FEATURES = 30i32; +pub const WMIQ_LF31_QUALIFIER_TESTS: WMIQ_LANGUAGE_FEATURES = 31i32; +pub const WMIQ_LF32_SP_EXECUTE: WMIQ_LANGUAGE_FEATURES = 32i32; +pub const WMIQ_LF33_ARRAY_ACCESS: WMIQ_LANGUAGE_FEATURES = 33i32; +pub const WMIQ_LF34_UNION: WMIQ_LANGUAGE_FEATURES = 34i32; +pub const WMIQ_LF35_COMPLEX_SELECT_TARGET: WMIQ_LANGUAGE_FEATURES = 35i32; +pub const WMIQ_LF36_REFERENCE_TESTS: WMIQ_LANGUAGE_FEATURES = 36i32; +pub const WMIQ_LF37_SELECT_INTO: WMIQ_LANGUAGE_FEATURES = 37i32; +pub const WMIQ_LF38_BASIC_DATETIME_TESTS: WMIQ_LANGUAGE_FEATURES = 38i32; +pub const WMIQ_LF39_COUNT_COLUMN: WMIQ_LANGUAGE_FEATURES = 39i32; +pub const WMIQ_LF3_STRING_CASE_FUNCTIONS: WMIQ_LANGUAGE_FEATURES = 3i32; +pub const WMIQ_LF40_BETWEEN: WMIQ_LANGUAGE_FEATURES = 40i32; +pub const WMIQ_LF4_PROP_TO_PROP_TESTS: WMIQ_LANGUAGE_FEATURES = 4i32; +pub const WMIQ_LF5_COUNT_STAR: WMIQ_LANGUAGE_FEATURES = 5i32; +pub const WMIQ_LF6_ORDER_BY: WMIQ_LANGUAGE_FEATURES = 6i32; +pub const WMIQ_LF7_DISTINCT: WMIQ_LANGUAGE_FEATURES = 7i32; +pub const WMIQ_LF8_ISA: WMIQ_LANGUAGE_FEATURES = 8i32; +pub const WMIQ_LF9_THIS: WMIQ_LANGUAGE_FEATURES = 9i32; +pub const WMIQ_LF_LAST: WMIQ_LANGUAGE_FEATURES = 40i32; +pub const WMIQ_RPNF_ARRAY_ACCESS_USED: WMIQ_RPNF_FEATURE = 8192i32; +pub const WMIQ_RPNF_COUNT_STAR: WMIQ_RPNF_FEATURE = 64i32; +pub const WMIQ_RPNF_EQUALITY_TESTS_ONLY: WMIQ_RPNF_FEATURE = 32i32; +pub const WMIQ_RPNF_FEATURE_SELECT_STAR: WMIQ_RPNF_FEATURE = 16i32; +pub const WMIQ_RPNF_GROUP_BY_HAVING: WMIQ_RPNF_FEATURE = 4096i32; +pub const WMIQ_RPNF_ISA_USED: WMIQ_RPNF_FEATURE = 2048i32; +pub const WMIQ_RPNF_ORDER_BY: WMIQ_RPNF_FEATURE = 1024i32; +pub const WMIQ_RPNF_PROJECTION: WMIQ_RPNF_FEATURE = 8i32; +pub const WMIQ_RPNF_PROP_TO_PROP_TESTS: WMIQ_RPNF_FEATURE = 512i32; +pub const WMIQ_RPNF_QUALIFIED_NAMES_USED: WMIQ_RPNF_FEATURE = 128i32; +pub const WMIQ_RPNF_QUERY_IS_CONJUNCTIVE: WMIQ_RPNF_FEATURE = 2i32; +pub const WMIQ_RPNF_QUERY_IS_DISJUNCTIVE: WMIQ_RPNF_FEATURE = 4i32; +pub const WMIQ_RPNF_SYSPROP_CLASS_USED: WMIQ_RPNF_FEATURE = 256i32; +pub const WMIQ_RPNF_WHERE_CLAUSE_PRESENT: WMIQ_RPNF_FEATURE = 1i32; +pub const WMIQ_RPN_CONST: WMIQ_RPN_TOKEN_FLAGS = 8i32; +pub const WMIQ_RPN_CONST2: WMIQ_RPN_TOKEN_FLAGS = 4i32; +pub const WMIQ_RPN_FROM_CLASS_LIST: WMIQ_RPN_TOKEN_FLAGS = 4i32; +pub const WMIQ_RPN_FROM_MULTIPLE: WMIQ_RPN_TOKEN_FLAGS = 8i32; +pub const WMIQ_RPN_FROM_PATH: WMIQ_RPN_TOKEN_FLAGS = 2i32; +pub const WMIQ_RPN_FROM_UNARY: WMIQ_RPN_TOKEN_FLAGS = 1i32; +pub const WMIQ_RPN_GET_EXPR_SHAPE: WMIQ_RPN_TOKEN_FLAGS = 2i32; +pub const WMIQ_RPN_GET_LEFT_FUNCTION: WMIQ_RPN_TOKEN_FLAGS = 3i32; +pub const WMIQ_RPN_GET_RELOP: WMIQ_RPN_TOKEN_FLAGS = 5i32; +pub const WMIQ_RPN_GET_RIGHT_FUNCTION: WMIQ_RPN_TOKEN_FLAGS = 4i32; +pub const WMIQ_RPN_GET_TOKEN_TYPE: WMIQ_RPN_TOKEN_FLAGS = 1i32; +pub const WMIQ_RPN_LEFT_FUNCTION: WMIQ_RPN_TOKEN_FLAGS = 32i32; +pub const WMIQ_RPN_LEFT_PROPERTY_NAME: WMIQ_RPN_TOKEN_FLAGS = 1i32; +pub const WMIQ_RPN_NEXT_TOKEN: WMIQ_RPN_TOKEN_FLAGS = 1i32; +pub const WMIQ_RPN_OP_EQ: WMIQ_RPN_TOKEN_FLAGS = 1i32; +pub const WMIQ_RPN_OP_GE: WMIQ_RPN_TOKEN_FLAGS = 3i32; +pub const WMIQ_RPN_OP_GT: WMIQ_RPN_TOKEN_FLAGS = 6i32; +pub const WMIQ_RPN_OP_ISA: WMIQ_RPN_TOKEN_FLAGS = 8i32; +pub const WMIQ_RPN_OP_ISNOTA: WMIQ_RPN_TOKEN_FLAGS = 9i32; +pub const WMIQ_RPN_OP_ISNOTNULL: WMIQ_RPN_TOKEN_FLAGS = 11i32; +pub const WMIQ_RPN_OP_ISNULL: WMIQ_RPN_TOKEN_FLAGS = 10i32; +pub const WMIQ_RPN_OP_LE: WMIQ_RPN_TOKEN_FLAGS = 4i32; +pub const WMIQ_RPN_OP_LIKE: WMIQ_RPN_TOKEN_FLAGS = 7i32; +pub const WMIQ_RPN_OP_LT: WMIQ_RPN_TOKEN_FLAGS = 5i32; +pub const WMIQ_RPN_OP_NE: WMIQ_RPN_TOKEN_FLAGS = 2i32; +pub const WMIQ_RPN_OP_UNDEFINED: WMIQ_RPN_TOKEN_FLAGS = 0i32; +pub const WMIQ_RPN_RELOP: WMIQ_RPN_TOKEN_FLAGS = 16i32; +pub const WMIQ_RPN_RIGHT_FUNCTION: WMIQ_RPN_TOKEN_FLAGS = 64i32; +pub const WMIQ_RPN_RIGHT_PROPERTY_NAME: WMIQ_RPN_TOKEN_FLAGS = 2i32; +pub const WMIQ_RPN_TOKEN_AND: WMIQ_RPN_TOKEN_FLAGS = 2i32; +pub const WMIQ_RPN_TOKEN_EXPRESSION: WMIQ_RPN_TOKEN_FLAGS = 1i32; +pub const WMIQ_RPN_TOKEN_NOT: WMIQ_RPN_TOKEN_FLAGS = 4i32; +pub const WMIQ_RPN_TOKEN_OR: WMIQ_RPN_TOKEN_FLAGS = 3i32; +pub const WMI_OBJ_TEXT_CIM_DTD_2_0: WMI_OBJ_TEXT = 1i32; +pub const WMI_OBJ_TEXT_LAST: WMI_OBJ_TEXT = 13i32; +pub const WMI_OBJ_TEXT_WMI_DTD_2_0: WMI_OBJ_TEXT = 2i32; +pub const WMI_OBJ_TEXT_WMI_EXT1: WMI_OBJ_TEXT = 3i32; +pub const WMI_OBJ_TEXT_WMI_EXT10: WMI_OBJ_TEXT = 12i32; +pub const WMI_OBJ_TEXT_WMI_EXT2: WMI_OBJ_TEXT = 4i32; +pub const WMI_OBJ_TEXT_WMI_EXT3: WMI_OBJ_TEXT = 5i32; +pub const WMI_OBJ_TEXT_WMI_EXT4: WMI_OBJ_TEXT = 6i32; +pub const WMI_OBJ_TEXT_WMI_EXT5: WMI_OBJ_TEXT = 7i32; +pub const WMI_OBJ_TEXT_WMI_EXT6: WMI_OBJ_TEXT = 8i32; +pub const WMI_OBJ_TEXT_WMI_EXT7: WMI_OBJ_TEXT = 9i32; +pub const WMI_OBJ_TEXT_WMI_EXT8: WMI_OBJ_TEXT = 10i32; +pub const WMI_OBJ_TEXT_WMI_EXT9: WMI_OBJ_TEXT = 11i32; +pub const WbemAdministrativeLocator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb8555cc_9128_11d1_ad9b_00c04fd8fdff); +pub const WbemAuthenticatedLocator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcd184336_9128_11d1_ad9b_00c04fd8fdff); +pub const WbemBackupRestore: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc49e32c6_bc8b_11d2_85d4_00105a1f8304); +pub const WbemClassObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9a653086_174f_11d2_b5f9_00104b703efd); +pub const WbemContext: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x674b6698_ee92_11d0_ad71_00c04fd8fdff); +pub const WbemDCOMTransport: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf7ce2e13_8c90_11d1_9e7b_00c04fc324a8); +pub const WbemDecoupledBasicEventProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf5f75737_2843_4f22_933d_c76a97cda62f); +pub const WbemDecoupledRegistrar: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4cfc7932_0f9d_4bef_9c32_8ea2a6b56fcb); +pub const WbemDefPath: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf4cc405_e2c5_4ddd_b3ce_5e7582d8c9fa); +pub const WbemLevel1Login: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8bc3f05e_d86b_11d0_a075_00c04fb68820); +pub const WbemLocalAddrRes: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa1044801_8f7e_11d1_9e7c_00c04fc324a8); +pub const WbemLocator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4590f811_1d3a_11d0_891f_00aa004b2e24); +pub const WbemObjectTextSrc: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8d1c559d_84f0_4bb3_a7d5_56a7435a9ba6); +pub const WbemQuery: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeac8a024_21e2_4523_ad73_a71a0aa2f56a); +pub const WbemRefresher: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc71566f2_561e_11d1_ad87_00c04fd8fdff); +pub const WbemStatusCodeText: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeb87e1bd_3233_11d2_aec9_00c04fb68820); +pub const WbemUnauthenticatedLocator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x443e7b79_de31_11d2_b340_00104bcc4b4a); +pub const WbemUninitializedClassObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7a0227f6_7108_11d1_ad90_00c04fd8fdff); +pub const wbemAuthenticationLevelCall: WbemAuthenticationLevelEnum = 3i32; +pub const wbemAuthenticationLevelConnect: WbemAuthenticationLevelEnum = 2i32; +pub const wbemAuthenticationLevelDefault: WbemAuthenticationLevelEnum = 0i32; +pub const wbemAuthenticationLevelNone: WbemAuthenticationLevelEnum = 1i32; +pub const wbemAuthenticationLevelPkt: WbemAuthenticationLevelEnum = 4i32; +pub const wbemAuthenticationLevelPktIntegrity: WbemAuthenticationLevelEnum = 5i32; +pub const wbemAuthenticationLevelPktPrivacy: WbemAuthenticationLevelEnum = 6i32; +pub const wbemChangeFlagAdvisory: WbemChangeFlagEnum = 65536i32; +pub const wbemChangeFlagCreateOnly: WbemChangeFlagEnum = 2i32; +pub const wbemChangeFlagCreateOrUpdate: WbemChangeFlagEnum = 0i32; +pub const wbemChangeFlagStrongValidation: WbemChangeFlagEnum = 128i32; +pub const wbemChangeFlagUpdateCompatible: WbemChangeFlagEnum = 0i32; +pub const wbemChangeFlagUpdateForceMode: WbemChangeFlagEnum = 64i32; +pub const wbemChangeFlagUpdateOnly: WbemChangeFlagEnum = 1i32; +pub const wbemChangeFlagUpdateSafeMode: WbemChangeFlagEnum = 32i32; +pub const wbemCimtypeBoolean: WbemCimtypeEnum = 11i32; +pub const wbemCimtypeChar16: WbemCimtypeEnum = 103i32; +pub const wbemCimtypeDatetime: WbemCimtypeEnum = 101i32; +pub const wbemCimtypeObject: WbemCimtypeEnum = 13i32; +pub const wbemCimtypeReal32: WbemCimtypeEnum = 4i32; +pub const wbemCimtypeReal64: WbemCimtypeEnum = 5i32; +pub const wbemCimtypeReference: WbemCimtypeEnum = 102i32; +pub const wbemCimtypeSint16: WbemCimtypeEnum = 2i32; +pub const wbemCimtypeSint32: WbemCimtypeEnum = 3i32; +pub const wbemCimtypeSint64: WbemCimtypeEnum = 20i32; +pub const wbemCimtypeSint8: WbemCimtypeEnum = 16i32; +pub const wbemCimtypeString: WbemCimtypeEnum = 8i32; +pub const wbemCimtypeUint16: WbemCimtypeEnum = 18i32; +pub const wbemCimtypeUint32: WbemCimtypeEnum = 19i32; +pub const wbemCimtypeUint64: WbemCimtypeEnum = 21i32; +pub const wbemCimtypeUint8: WbemCimtypeEnum = 17i32; +pub const wbemComparisonFlagIgnoreCase: WbemComparisonFlagEnum = 16i32; +pub const wbemComparisonFlagIgnoreClass: WbemComparisonFlagEnum = 8i32; +pub const wbemComparisonFlagIgnoreDefaultValues: WbemComparisonFlagEnum = 4i32; +pub const wbemComparisonFlagIgnoreFlavor: WbemComparisonFlagEnum = 32i32; +pub const wbemComparisonFlagIgnoreObjectSource: WbemComparisonFlagEnum = 2i32; +pub const wbemComparisonFlagIgnoreQualifiers: WbemComparisonFlagEnum = 1i32; +pub const wbemComparisonFlagIncludeAll: WbemComparisonFlagEnum = 0i32; +pub const wbemConnectFlagUseMaxWait: WbemConnectOptionsEnum = 128i32; +pub const wbemErrAccessDenied: WbemErrorEnum = -2147217405i32; +pub const wbemErrAggregatingByObject: WbemErrorEnum = -2147217315i32; +pub const wbemErrAlreadyExists: WbemErrorEnum = -2147217383i32; +pub const wbemErrAmbiguousOperation: WbemErrorEnum = -2147217301i32; +pub const wbemErrAmendedObject: WbemErrorEnum = -2147217306i32; +pub const wbemErrBackupRestoreWinmgmtRunning: WbemErrorEnum = -2147217312i32; +pub const wbemErrBufferTooSmall: WbemErrorEnum = -2147217348i32; +pub const wbemErrCallCancelled: WbemErrorEnum = -2147217358i32; +pub const wbemErrCannotBeAbstract: WbemErrorEnum = -2147217307i32; +pub const wbemErrCannotBeKey: WbemErrorEnum = -2147217377i32; +pub const wbemErrCannotBeSingleton: WbemErrorEnum = -2147217364i32; +pub const wbemErrCannotChangeIndexInheritance: WbemErrorEnum = -2147217328i32; +pub const wbemErrCannotChangeKeyInheritance: WbemErrorEnum = -2147217335i32; +pub const wbemErrCircularReference: WbemErrorEnum = -2147217337i32; +pub const wbemErrClassHasChildren: WbemErrorEnum = -2147217371i32; +pub const wbemErrClassHasInstances: WbemErrorEnum = -2147217370i32; +pub const wbemErrClassNameTooWide: WbemErrorEnum = -2147217292i32; +pub const wbemErrClientTooSlow: WbemErrorEnum = -2147217305i32; +pub const wbemErrConnectionFailed: WbemErrorEnum = -2147217295i32; +pub const wbemErrCriticalError: WbemErrorEnum = -2147217398i32; +pub const wbemErrDatabaseVerMismatch: WbemErrorEnum = -2147217288i32; +pub const wbemErrEncryptedConnectionRequired: WbemErrorEnum = -2147217273i32; +pub const wbemErrFailed: WbemErrorEnum = -2147217407i32; +pub const wbemErrFatalTransportError: WbemErrorEnum = -2147217274i32; +pub const wbemErrForcedRollback: WbemErrorEnum = -2147217298i32; +pub const wbemErrHandleOutOfDate: WbemErrorEnum = -2147217296i32; +pub const wbemErrIllegalNull: WbemErrorEnum = -2147217368i32; +pub const wbemErrIllegalOperation: WbemErrorEnum = -2147217378i32; +pub const wbemErrIncompleteClass: WbemErrorEnum = -2147217376i32; +pub const wbemErrInitializationFailure: WbemErrorEnum = -2147217388i32; +pub const wbemErrInvalidAssociation: WbemErrorEnum = -2147217302i32; +pub const wbemErrInvalidCimType: WbemErrorEnum = -2147217363i32; +pub const wbemErrInvalidClass: WbemErrorEnum = -2147217392i32; +pub const wbemErrInvalidContext: WbemErrorEnum = -2147217401i32; +pub const wbemErrInvalidDuplicateParameter: WbemErrorEnum = -2147217341i32; +pub const wbemErrInvalidFlavor: WbemErrorEnum = -2147217338i32; +pub const wbemErrInvalidHandleRequest: WbemErrorEnum = -2147217294i32; +pub const wbemErrInvalidLocale: WbemErrorEnum = -2147217280i32; +pub const wbemErrInvalidMethod: WbemErrorEnum = -2147217362i32; +pub const wbemErrInvalidMethodParameters: WbemErrorEnum = -2147217361i32; +pub const wbemErrInvalidNamespace: WbemErrorEnum = -2147217394i32; +pub const wbemErrInvalidObject: WbemErrorEnum = -2147217393i32; +pub const wbemErrInvalidObjectPath: WbemErrorEnum = -2147217350i32; +pub const wbemErrInvalidOperation: WbemErrorEnum = -2147217386i32; +pub const wbemErrInvalidOperator: WbemErrorEnum = -2147217309i32; +pub const wbemErrInvalidParameter: WbemErrorEnum = -2147217400i32; +pub const wbemErrInvalidParameterId: WbemErrorEnum = -2147217353i32; +pub const wbemErrInvalidProperty: WbemErrorEnum = -2147217359i32; +pub const wbemErrInvalidPropertyType: WbemErrorEnum = -2147217366i32; +pub const wbemErrInvalidProviderRegistration: WbemErrorEnum = -2147217390i32; +pub const wbemErrInvalidQualifier: WbemErrorEnum = -2147217342i32; +pub const wbemErrInvalidQualifierType: WbemErrorEnum = -2147217367i32; +pub const wbemErrInvalidQuery: WbemErrorEnum = -2147217385i32; +pub const wbemErrInvalidQueryType: WbemErrorEnum = -2147217384i32; +pub const wbemErrInvalidStream: WbemErrorEnum = -2147217397i32; +pub const wbemErrInvalidSuperclass: WbemErrorEnum = -2147217395i32; +pub const wbemErrInvalidSyntax: WbemErrorEnum = -2147217375i32; +pub const wbemErrLocalCredentials: WbemErrorEnum = -2147217308i32; +pub const wbemErrMarshalInvalidSignature: WbemErrorEnum = -2147217343i32; +pub const wbemErrMarshalVersionMismatch: WbemErrorEnum = -2147217344i32; +pub const wbemErrMethodDisabled: WbemErrorEnum = -2147217322i32; +pub const wbemErrMethodNameTooWide: WbemErrorEnum = -2147217291i32; +pub const wbemErrMethodNotImplemented: WbemErrorEnum = -2147217323i32; +pub const wbemErrMissingAggregationList: WbemErrorEnum = -2147217317i32; +pub const wbemErrMissingGroupWithin: WbemErrorEnum = -2147217318i32; +pub const wbemErrMissingParameter: WbemErrorEnum = -2147217354i32; +pub const wbemErrNoSchema: WbemErrorEnum = -2147217277i32; +pub const wbemErrNonConsecutiveParameterIds: WbemErrorEnum = -2147217352i32; +pub const wbemErrNondecoratedObject: WbemErrorEnum = -2147217374i32; +pub const wbemErrNotAvailable: WbemErrorEnum = -2147217399i32; +pub const wbemErrNotEventClass: WbemErrorEnum = -2147217319i32; +pub const wbemErrNotFound: WbemErrorEnum = -2147217406i32; +pub const wbemErrNotSupported: WbemErrorEnum = -2147217396i32; +pub const wbemErrNullSecurityDescriptor: WbemErrorEnum = -2147217304i32; +pub const wbemErrOutOfDiskSpace: WbemErrorEnum = -2147217349i32; +pub const wbemErrOutOfMemory: WbemErrorEnum = -2147217402i32; +pub const wbemErrOverrideNotAllowed: WbemErrorEnum = -2147217382i32; +pub const wbemErrParameterIdOnRetval: WbemErrorEnum = -2147217351i32; +pub const wbemErrPrivilegeNotHeld: WbemErrorEnum = -2147217310i32; +pub const wbemErrPropagatedMethod: WbemErrorEnum = -2147217356i32; +pub const wbemErrPropagatedProperty: WbemErrorEnum = -2147217380i32; +pub const wbemErrPropagatedQualifier: WbemErrorEnum = -2147217381i32; +pub const wbemErrPropertyNameTooWide: WbemErrorEnum = -2147217293i32; +pub const wbemErrPropertyNotAnObject: WbemErrorEnum = -2147217316i32; +pub const wbemErrProviderAlreadyRegistered: WbemErrorEnum = -2147217276i32; +pub const wbemErrProviderFailure: WbemErrorEnum = -2147217404i32; +pub const wbemErrProviderLoadFailure: WbemErrorEnum = -2147217389i32; +pub const wbemErrProviderNotCapable: WbemErrorEnum = -2147217372i32; +pub const wbemErrProviderNotFound: WbemErrorEnum = -2147217391i32; +pub const wbemErrProviderNotRegistered: WbemErrorEnum = -2147217275i32; +pub const wbemErrProviderSuspended: WbemErrorEnum = -2147217279i32; +pub const wbemErrQualifierNameTooWide: WbemErrorEnum = -2147217290i32; +pub const wbemErrQueryNotImplemented: WbemErrorEnum = -2147217369i32; +pub const wbemErrQueueOverflow: WbemErrorEnum = -2147217311i32; +pub const wbemErrQuotaViolation: WbemErrorEnum = -2147217300i32; +pub const wbemErrReadOnly: WbemErrorEnum = -2147217373i32; +pub const wbemErrRefresherBusy: WbemErrorEnum = -2147217321i32; +pub const wbemErrRegistrationTooBroad: WbemErrorEnum = -2147213311i32; +pub const wbemErrRegistrationTooPrecise: WbemErrorEnum = -2147213310i32; +pub const wbemErrRerunCommand: WbemErrorEnum = -2147217289i32; +pub const wbemErrResetToDefault: WbemErrorEnum = -2147209214i32; +pub const wbemErrServerTooBusy: WbemErrorEnum = -2147217339i32; +pub const wbemErrShuttingDown: WbemErrorEnum = -2147217357i32; +pub const wbemErrSynchronizationRequired: WbemErrorEnum = -2147217278i32; +pub const wbemErrSystemProperty: WbemErrorEnum = -2147217360i32; +pub const wbemErrTimedout: WbemErrorEnum = -2147209215i32; +pub const wbemErrTimeout: WbemErrorEnum = -2147217303i32; +pub const wbemErrTooManyProperties: WbemErrorEnum = -2147217327i32; +pub const wbemErrTooMuchData: WbemErrorEnum = -2147217340i32; +pub const wbemErrTransactionConflict: WbemErrorEnum = -2147217299i32; +pub const wbemErrTransportFailure: WbemErrorEnum = -2147217387i32; +pub const wbemErrTypeMismatch: WbemErrorEnum = -2147217403i32; +pub const wbemErrUnexpected: WbemErrorEnum = -2147217379i32; +pub const wbemErrUninterpretableProviderQuery: WbemErrorEnum = -2147217313i32; +pub const wbemErrUnknownObjectType: WbemErrorEnum = -2147217346i32; +pub const wbemErrUnknownPacketType: WbemErrorEnum = -2147217345i32; +pub const wbemErrUnparsableQuery: WbemErrorEnum = -2147217320i32; +pub const wbemErrUnsupportedClassUpdate: WbemErrorEnum = -2147217336i32; +pub const wbemErrUnsupportedLocale: WbemErrorEnum = -2147217297i32; +pub const wbemErrUnsupportedParameter: WbemErrorEnum = -2147217355i32; +pub const wbemErrUnsupportedPutExtension: WbemErrorEnum = -2147217347i32; +pub const wbemErrUpdateOverrideNotAllowed: WbemErrorEnum = -2147217325i32; +pub const wbemErrUpdatePropagatedMethod: WbemErrorEnum = -2147217324i32; +pub const wbemErrUpdateTypeMismatch: WbemErrorEnum = -2147217326i32; +pub const wbemErrValueOutOfRange: WbemErrorEnum = -2147217365i32; +pub const wbemErrVetoDelete: WbemErrorEnum = -2147217286i32; +pub const wbemErrVetoPut: WbemErrorEnum = -2147217287i32; +pub const wbemFlagBidirectional: WbemFlagEnum = 0i32; +pub const wbemFlagDirectRead: WbemFlagEnum = 512i32; +pub const wbemFlagDontSendStatus: WbemFlagEnum = 0i32; +pub const wbemFlagEnsureLocatable: WbemFlagEnum = 256i32; +pub const wbemFlagForwardOnly: WbemFlagEnum = 32i32; +pub const wbemFlagGetDefault: WbemFlagEnum = 0i32; +pub const wbemFlagNoErrorObject: WbemFlagEnum = 64i32; +pub const wbemFlagReturnErrorObject: WbemFlagEnum = 0i32; +pub const wbemFlagReturnImmediately: WbemFlagEnum = 16i32; +pub const wbemFlagReturnWhenComplete: WbemFlagEnum = 0i32; +pub const wbemFlagSendOnlySelected: WbemFlagEnum = 0i32; +pub const wbemFlagSendStatus: WbemFlagEnum = 128i32; +pub const wbemFlagSpawnInstance: WbemFlagEnum = 1i32; +pub const wbemFlagUseAmendedQualifiers: WbemFlagEnum = 131072i32; +pub const wbemFlagUseCurrentTime: WbemFlagEnum = 1i32; +pub const wbemImpersonationLevelAnonymous: WbemImpersonationLevelEnum = 1i32; +pub const wbemImpersonationLevelDelegate: WbemImpersonationLevelEnum = 4i32; +pub const wbemImpersonationLevelIdentify: WbemImpersonationLevelEnum = 2i32; +pub const wbemImpersonationLevelImpersonate: WbemImpersonationLevelEnum = 3i32; +pub const wbemNoErr: WbemErrorEnum = 0i32; +pub const wbemObjectTextFormatCIMDTD20: WbemObjectTextFormatEnum = 1i32; +pub const wbemObjectTextFormatWMIDTD20: WbemObjectTextFormatEnum = 2i32; +pub const wbemPrivilegeAudit: WbemPrivilegeEnum = 20i32; +pub const wbemPrivilegeBackup: WbemPrivilegeEnum = 16i32; +pub const wbemPrivilegeChangeNotify: WbemPrivilegeEnum = 22i32; +pub const wbemPrivilegeCreatePagefile: WbemPrivilegeEnum = 14i32; +pub const wbemPrivilegeCreatePermanent: WbemPrivilegeEnum = 15i32; +pub const wbemPrivilegeCreateToken: WbemPrivilegeEnum = 1i32; +pub const wbemPrivilegeDebug: WbemPrivilegeEnum = 19i32; +pub const wbemPrivilegeEnableDelegation: WbemPrivilegeEnum = 26i32; +pub const wbemPrivilegeIncreaseBasePriority: WbemPrivilegeEnum = 13i32; +pub const wbemPrivilegeIncreaseQuota: WbemPrivilegeEnum = 4i32; +pub const wbemPrivilegeLoadDriver: WbemPrivilegeEnum = 9i32; +pub const wbemPrivilegeLockMemory: WbemPrivilegeEnum = 3i32; +pub const wbemPrivilegeMachineAccount: WbemPrivilegeEnum = 5i32; +pub const wbemPrivilegeManageVolume: WbemPrivilegeEnum = 27i32; +pub const wbemPrivilegePrimaryToken: WbemPrivilegeEnum = 2i32; +pub const wbemPrivilegeProfileSingleProcess: WbemPrivilegeEnum = 12i32; +pub const wbemPrivilegeRemoteShutdown: WbemPrivilegeEnum = 23i32; +pub const wbemPrivilegeRestore: WbemPrivilegeEnum = 17i32; +pub const wbemPrivilegeSecurity: WbemPrivilegeEnum = 7i32; +pub const wbemPrivilegeShutdown: WbemPrivilegeEnum = 18i32; +pub const wbemPrivilegeSyncAgent: WbemPrivilegeEnum = 25i32; +pub const wbemPrivilegeSystemEnvironment: WbemPrivilegeEnum = 21i32; +pub const wbemPrivilegeSystemProfile: WbemPrivilegeEnum = 10i32; +pub const wbemPrivilegeSystemtime: WbemPrivilegeEnum = 11i32; +pub const wbemPrivilegeTakeOwnership: WbemPrivilegeEnum = 8i32; +pub const wbemPrivilegeTcb: WbemPrivilegeEnum = 6i32; +pub const wbemPrivilegeUndock: WbemPrivilegeEnum = 24i32; +pub const wbemQueryFlagDeep: WbemQueryFlagEnum = 0i32; +pub const wbemQueryFlagPrototype: WbemQueryFlagEnum = 2i32; +pub const wbemQueryFlagShallow: WbemQueryFlagEnum = 1i32; +pub const wbemTextFlagNoFlavors: WbemTextFlagEnum = 1i32; +pub const wbemTimeoutInfinite: WbemTimeout = -1i32; +pub type CIMTYPE_ENUMERATION = i32; +pub type MI_CallbackMode = i32; +pub type MI_CancellationReason = i32; +pub type MI_DestinationOptions_ImpersonationType = i32; +pub type MI_ErrorCategory = i32; +pub type MI_LocaleType = i32; +pub type MI_OperationCallback_ResponseType = i32; +pub type MI_PromptType = i32; +pub type MI_ProviderArchitecture = i32; +pub type MI_Result = i32; +pub type MI_SubscriptionDeliveryType = i32; +pub type MI_Type = i32; +pub type WBEMSTATUS = i32; +pub type WBEMSTATUS_FORMAT = i32; +pub type WBEM_BACKUP_RESTORE_FLAGS = i32; +pub type WBEM_BATCH_TYPE = i32; +pub type WBEM_CHANGE_FLAG_TYPE = i32; +pub type WBEM_COMPARISON_FLAG = i32; +pub type WBEM_COMPILER_OPTIONS = i32; +pub type WBEM_CONDITION_FLAG_TYPE = i32; +pub type WBEM_CONNECT_OPTIONS = i32; +pub type WBEM_EXTRA_RETURN_CODES = i32; +pub type WBEM_FLAVOR_TYPE = i32; +pub type WBEM_GENERIC_FLAG_TYPE = i32; +pub type WBEM_GENUS_TYPE = i32; +pub type WBEM_GET_KEY_FLAGS = i32; +pub type WBEM_GET_TEXT_FLAGS = i32; +pub type WBEM_INFORMATION_FLAG_TYPE = i32; +pub type WBEM_LIMITATION_FLAG_TYPE = i32; +pub type WBEM_LIMITS = i32; +pub type WBEM_LOCKING_FLAG_TYPE = i32; +pub type WBEM_LOGIN_TYPE = i32; +pub type WBEM_PATH_CREATE_FLAG = i32; +pub type WBEM_PATH_STATUS_FLAG = i32; +pub type WBEM_PROVIDER_FLAGS = i32; +pub type WBEM_PROVIDER_REQUIREMENTS_TYPE = i32; +pub type WBEM_QUERY_FLAG_TYPE = i32; +pub type WBEM_REFRESHER_FLAGS = i32; +pub type WBEM_SECURITY_FLAGS = i32; +pub type WBEM_SHUTDOWN_FLAGS = i32; +pub type WBEM_STATUS_TYPE = i32; +pub type WBEM_TEXT_FLAG_TYPE = i32; +pub type WBEM_UNSECAPP_FLAG_TYPE = i32; +pub type WMIQ_ANALYSIS_TYPE = i32; +pub type WMIQ_ASSOCQ_FLAGS = i32; +pub type WMIQ_LANGUAGE_FEATURES = i32; +pub type WMIQ_RPNF_FEATURE = i32; +pub type WMIQ_RPN_TOKEN_FLAGS = i32; +pub type WMI_OBJ_TEXT = i32; +pub type WbemAuthenticationLevelEnum = i32; +pub type WbemChangeFlagEnum = i32; +pub type WbemCimtypeEnum = i32; +pub type WbemComparisonFlagEnum = i32; +pub type WbemConnectOptionsEnum = i32; +pub type WbemErrorEnum = i32; +pub type WbemFlagEnum = i32; +pub type WbemImpersonationLevelEnum = i32; +pub type WbemObjectTextFormatEnum = i32; +pub type WbemPrivilegeEnum = i32; +pub type WbemQueryFlagEnum = i32; +pub type WbemTextFlagEnum = i32; +pub type WbemTimeout = i32; +#[repr(C)] +pub struct MI_Application { + pub reserved1: u64, + pub reserved2: isize, + pub ft: *const MI_ApplicationFT, +} +impl ::core::marker::Copy for MI_Application {} +impl ::core::clone::Clone for MI_Application { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ApplicationFT { + pub Close: isize, + pub NewSession: isize, + pub NewHostedProvider: isize, + pub NewInstance: isize, + pub NewDestinationOptions: isize, + pub NewOperationOptions: isize, + pub NewSubscriptionDeliveryOptions: isize, + pub NewSerializer: isize, + pub NewDeserializer: isize, + pub NewInstanceFromClass: isize, + pub NewClass: isize, +} +impl ::core::marker::Copy for MI_ApplicationFT {} +impl ::core::clone::Clone for MI_ApplicationFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Array { + pub data: *mut ::core::ffi::c_void, + pub size: u32, +} +impl ::core::marker::Copy for MI_Array {} +impl ::core::clone::Clone for MI_Array { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ArrayField { + pub value: MI_Array, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ArrayField {} +impl ::core::clone::Clone for MI_ArrayField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_BooleanA { + pub data: *mut u8, + pub size: u32, +} +impl ::core::marker::Copy for MI_BooleanA {} +impl ::core::clone::Clone for MI_BooleanA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_BooleanAField { + pub value: MI_BooleanA, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_BooleanAField {} +impl ::core::clone::Clone for MI_BooleanAField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_BooleanField { + pub value: u8, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_BooleanField {} +impl ::core::clone::Clone for MI_BooleanField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Char16A { + pub data: *mut u16, + pub size: u32, +} +impl ::core::marker::Copy for MI_Char16A {} +impl ::core::clone::Clone for MI_Char16A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Char16AField { + pub value: MI_Char16A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Char16AField {} +impl ::core::clone::Clone for MI_Char16AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Char16Field { + pub value: u16, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Char16Field {} +impl ::core::clone::Clone for MI_Char16Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Class { + pub ft: *const MI_ClassFT, + pub classDecl: *const MI_ClassDecl, + pub namespaceName: *const u16, + pub serverName: *const u16, + pub reserved: [isize; 4], +} +impl ::core::marker::Copy for MI_Class {} +impl ::core::clone::Clone for MI_Class { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ClassDecl { + pub flags: u32, + pub code: u32, + pub name: *const u16, + pub qualifiers: *const *const MI_Qualifier, + pub numQualifiers: u32, + pub properties: *const *const MI_PropertyDecl, + pub numProperties: u32, + pub size: u32, + pub superClass: *const u16, + pub superClassDecl: *const MI_ClassDecl, + pub methods: *const *const MI_MethodDecl, + pub numMethods: u32, + pub schema: *const MI_SchemaDecl, + pub providerFT: *const MI_ProviderFT, + pub owningClass: *mut MI_Class, +} +impl ::core::marker::Copy for MI_ClassDecl {} +impl ::core::clone::Clone for MI_ClassDecl { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ClassFT { + pub GetClassNameA: isize, + pub GetNameSpace: isize, + pub GetServerName: isize, + pub GetElementCount: isize, + pub GetElement: isize, + pub GetElementAt: isize, + pub GetClassQualifierSet: isize, + pub GetMethodCount: isize, + pub GetMethodAt: isize, + pub GetMethod: isize, + pub GetParentClassName: isize, + pub GetParentClass: isize, + pub Delete: isize, + pub Clone: isize, +} +impl ::core::marker::Copy for MI_ClassFT {} +impl ::core::clone::Clone for MI_ClassFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ClientFT_V1 { + pub applicationFT: *const MI_ApplicationFT, + pub sessionFT: *const MI_SessionFT, + pub operationFT: *const MI_OperationFT, + pub hostedProviderFT: *const MI_HostedProviderFT, + pub serializerFT: *const MI_SerializerFT, + pub deserializerFT: *const MI_DeserializerFT, + pub subscribeDeliveryOptionsFT: *const MI_SubscriptionDeliveryOptionsFT, + pub destinationOptionsFT: *const MI_DestinationOptionsFT, + pub operationOptionsFT: *const MI_OperationOptionsFT, + pub utilitiesFT: *const MI_UtilitiesFT, +} +impl ::core::marker::Copy for MI_ClientFT_V1 {} +impl ::core::clone::Clone for MI_ClientFT_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstBooleanA { + pub data: *const u8, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstBooleanA {} +impl ::core::clone::Clone for MI_ConstBooleanA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstBooleanAField { + pub value: MI_ConstBooleanA, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstBooleanAField {} +impl ::core::clone::Clone for MI_ConstBooleanAField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstBooleanField { + pub value: u8, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstBooleanField {} +impl ::core::clone::Clone for MI_ConstBooleanField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstChar16A { + pub data: *const u16, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstChar16A {} +impl ::core::clone::Clone for MI_ConstChar16A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstChar16AField { + pub value: MI_ConstChar16A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstChar16AField {} +impl ::core::clone::Clone for MI_ConstChar16AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstChar16Field { + pub value: u16, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstChar16Field {} +impl ::core::clone::Clone for MI_ConstChar16Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstDatetimeA { + pub data: *const MI_Datetime, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstDatetimeA {} +impl ::core::clone::Clone for MI_ConstDatetimeA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstDatetimeAField { + pub value: MI_ConstDatetimeA, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstDatetimeAField {} +impl ::core::clone::Clone for MI_ConstDatetimeAField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstDatetimeField { + pub value: MI_Datetime, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstDatetimeField {} +impl ::core::clone::Clone for MI_ConstDatetimeField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstInstanceA { + pub data: *const *const MI_Instance, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstInstanceA {} +impl ::core::clone::Clone for MI_ConstInstanceA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstInstanceAField { + pub value: MI_ConstInstanceA, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstInstanceAField {} +impl ::core::clone::Clone for MI_ConstInstanceAField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstInstanceField { + pub value: *const MI_Instance, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstInstanceField {} +impl ::core::clone::Clone for MI_ConstInstanceField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstReal32A { + pub data: *const f32, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstReal32A {} +impl ::core::clone::Clone for MI_ConstReal32A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstReal32AField { + pub value: MI_ConstReal32A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstReal32AField {} +impl ::core::clone::Clone for MI_ConstReal32AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstReal32Field { + pub value: f32, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstReal32Field {} +impl ::core::clone::Clone for MI_ConstReal32Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstReal64A { + pub data: *const f64, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstReal64A {} +impl ::core::clone::Clone for MI_ConstReal64A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstReal64AField { + pub value: MI_ConstReal64A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstReal64AField {} +impl ::core::clone::Clone for MI_ConstReal64AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstReal64Field { + pub value: f64, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstReal64Field {} +impl ::core::clone::Clone for MI_ConstReal64Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstReferenceA { + pub data: *const *const MI_Instance, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstReferenceA {} +impl ::core::clone::Clone for MI_ConstReferenceA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstReferenceAField { + pub value: MI_ConstReferenceA, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstReferenceAField {} +impl ::core::clone::Clone for MI_ConstReferenceAField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstReferenceField { + pub value: *const MI_Instance, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstReferenceField {} +impl ::core::clone::Clone for MI_ConstReferenceField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstSint16A { + pub data: *const i16, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstSint16A {} +impl ::core::clone::Clone for MI_ConstSint16A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstSint16AField { + pub value: MI_ConstSint16A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstSint16AField {} +impl ::core::clone::Clone for MI_ConstSint16AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstSint16Field { + pub value: i16, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstSint16Field {} +impl ::core::clone::Clone for MI_ConstSint16Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstSint32A { + pub data: *const i32, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstSint32A {} +impl ::core::clone::Clone for MI_ConstSint32A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstSint32AField { + pub value: MI_ConstSint32A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstSint32AField {} +impl ::core::clone::Clone for MI_ConstSint32AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstSint32Field { + pub value: i32, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstSint32Field {} +impl ::core::clone::Clone for MI_ConstSint32Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstSint64A { + pub data: *const i64, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstSint64A {} +impl ::core::clone::Clone for MI_ConstSint64A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstSint64AField { + pub value: MI_ConstSint64A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstSint64AField {} +impl ::core::clone::Clone for MI_ConstSint64AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstSint64Field { + pub value: i64, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstSint64Field {} +impl ::core::clone::Clone for MI_ConstSint64Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstSint8A { + pub data: *const i8, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstSint8A {} +impl ::core::clone::Clone for MI_ConstSint8A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstSint8AField { + pub value: MI_ConstSint8A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstSint8AField {} +impl ::core::clone::Clone for MI_ConstSint8AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstSint8Field { + pub value: i8, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstSint8Field {} +impl ::core::clone::Clone for MI_ConstSint8Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstStringA { + pub data: *const *const u16, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstStringA {} +impl ::core::clone::Clone for MI_ConstStringA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstStringAField { + pub value: MI_ConstStringA, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstStringAField {} +impl ::core::clone::Clone for MI_ConstStringAField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstStringField { + pub value: *const u16, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstStringField {} +impl ::core::clone::Clone for MI_ConstStringField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstUint16A { + pub data: *const u16, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstUint16A {} +impl ::core::clone::Clone for MI_ConstUint16A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstUint16AField { + pub value: MI_ConstUint16A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstUint16AField {} +impl ::core::clone::Clone for MI_ConstUint16AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstUint16Field { + pub value: u16, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstUint16Field {} +impl ::core::clone::Clone for MI_ConstUint16Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstUint32A { + pub data: *const u32, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstUint32A {} +impl ::core::clone::Clone for MI_ConstUint32A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstUint32AField { + pub value: MI_ConstUint32A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstUint32AField {} +impl ::core::clone::Clone for MI_ConstUint32AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstUint32Field { + pub value: u32, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstUint32Field {} +impl ::core::clone::Clone for MI_ConstUint32Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstUint64A { + pub data: *const u64, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstUint64A {} +impl ::core::clone::Clone for MI_ConstUint64A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstUint64AField { + pub value: MI_ConstUint64A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstUint64AField {} +impl ::core::clone::Clone for MI_ConstUint64AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstUint64Field { + pub value: u64, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstUint64Field {} +impl ::core::clone::Clone for MI_ConstUint64Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstUint8A { + pub data: *const u8, + pub size: u32, +} +impl ::core::marker::Copy for MI_ConstUint8A {} +impl ::core::clone::Clone for MI_ConstUint8A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstUint8AField { + pub value: MI_ConstUint8A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstUint8AField {} +impl ::core::clone::Clone for MI_ConstUint8AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ConstUint8Field { + pub value: u8, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ConstUint8Field {} +impl ::core::clone::Clone for MI_ConstUint8Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Context { + pub ft: *const MI_ContextFT, + pub reserved: [isize; 3], +} +impl ::core::marker::Copy for MI_Context {} +impl ::core::clone::Clone for MI_Context { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ContextFT { + pub PostResult: isize, + pub PostInstance: isize, + pub PostIndication: isize, + pub ConstructInstance: isize, + pub ConstructParameters: isize, + pub NewInstance: isize, + pub NewDynamicInstance: isize, + pub NewParameters: isize, + pub Canceled: isize, + pub GetLocale: isize, + pub RegisterCancel: isize, + pub RequestUnload: isize, + pub RefuseUnload: isize, + pub GetLocalSession: isize, + pub SetStringOption: isize, + pub GetStringOption: isize, + pub GetNumberOption: isize, + pub GetCustomOption: isize, + pub GetCustomOptionCount: isize, + pub GetCustomOptionAt: isize, + pub WriteMessage: isize, + pub WriteProgress: isize, + pub WriteStreamParameter: isize, + pub WriteCimError: isize, + pub PromptUser: isize, + pub ShouldProcess: isize, + pub ShouldContinue: isize, + pub PostError: isize, + pub PostCimError: isize, + pub WriteError: isize, +} +impl ::core::marker::Copy for MI_ContextFT {} +impl ::core::clone::Clone for MI_ContextFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Datetime { + pub isTimestamp: u32, + pub u: MI_Datetime_0, +} +impl ::core::marker::Copy for MI_Datetime {} +impl ::core::clone::Clone for MI_Datetime { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MI_Datetime_0 { + pub timestamp: MI_Timestamp, + pub interval: MI_Interval, +} +impl ::core::marker::Copy for MI_Datetime_0 {} +impl ::core::clone::Clone for MI_Datetime_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_DatetimeA { + pub data: *mut MI_Datetime, + pub size: u32, +} +impl ::core::marker::Copy for MI_DatetimeA {} +impl ::core::clone::Clone for MI_DatetimeA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_DatetimeAField { + pub value: MI_DatetimeA, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_DatetimeAField {} +impl ::core::clone::Clone for MI_DatetimeAField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_DatetimeField { + pub value: MI_Datetime, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_DatetimeField {} +impl ::core::clone::Clone for MI_DatetimeField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Deserializer { + pub reserved1: u64, + pub reserved2: isize, +} +impl ::core::marker::Copy for MI_Deserializer {} +impl ::core::clone::Clone for MI_Deserializer { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_DeserializerFT { + pub Close: isize, + pub DeserializeClass: isize, + pub Class_GetClassName: isize, + pub Class_GetParentClassName: isize, + pub DeserializeInstance: isize, + pub Instance_GetClassName: isize, +} +impl ::core::marker::Copy for MI_DeserializerFT {} +impl ::core::clone::Clone for MI_DeserializerFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_DestinationOptions { + pub reserved1: u64, + pub reserved2: isize, + pub ft: *const MI_DestinationOptionsFT, +} +impl ::core::marker::Copy for MI_DestinationOptions {} +impl ::core::clone::Clone for MI_DestinationOptions { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_DestinationOptionsFT { + pub Delete: isize, + pub SetString: isize, + pub SetNumber: isize, + pub AddCredentials: isize, + pub GetString: isize, + pub GetNumber: isize, + pub GetOptionCount: isize, + pub GetOptionAt: isize, + pub GetOption: isize, + pub GetCredentialsCount: isize, + pub GetCredentialsAt: isize, + pub GetCredentialsPasswordAt: isize, + pub Clone: isize, + pub SetInterval: isize, + pub GetInterval: isize, +} +impl ::core::marker::Copy for MI_DestinationOptionsFT {} +impl ::core::clone::Clone for MI_DestinationOptionsFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_FeatureDecl { + pub flags: u32, + pub code: u32, + pub name: *const u16, + pub qualifiers: *const *const MI_Qualifier, + pub numQualifiers: u32, +} +impl ::core::marker::Copy for MI_FeatureDecl {} +impl ::core::clone::Clone for MI_FeatureDecl { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Filter { + pub ft: *const MI_FilterFT, + pub reserved: [isize; 3], +} +impl ::core::marker::Copy for MI_Filter {} +impl ::core::clone::Clone for MI_Filter { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_FilterFT { + pub Evaluate: isize, + pub GetExpression: isize, +} +impl ::core::marker::Copy for MI_FilterFT {} +impl ::core::clone::Clone for MI_FilterFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_HostedProvider { + pub reserved1: u64, + pub reserved2: isize, + pub ft: *const MI_HostedProviderFT, +} +impl ::core::marker::Copy for MI_HostedProvider {} +impl ::core::clone::Clone for MI_HostedProvider { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_HostedProviderFT { + pub Close: isize, + pub GetApplication: isize, +} +impl ::core::marker::Copy for MI_HostedProviderFT {} +impl ::core::clone::Clone for MI_HostedProviderFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Instance { + pub ft: *const MI_InstanceFT, + pub classDecl: *const MI_ClassDecl, + pub serverName: *const u16, + pub nameSpace: *const u16, + pub reserved: [isize; 4], +} +impl ::core::marker::Copy for MI_Instance {} +impl ::core::clone::Clone for MI_Instance { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_InstanceA { + pub data: *mut *mut MI_Instance, + pub size: u32, +} +impl ::core::marker::Copy for MI_InstanceA {} +impl ::core::clone::Clone for MI_InstanceA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_InstanceAField { + pub value: MI_InstanceA, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_InstanceAField {} +impl ::core::clone::Clone for MI_InstanceAField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_InstanceExFT { + pub parent: MI_InstanceFT, + pub Normalize: isize, +} +impl ::core::marker::Copy for MI_InstanceExFT {} +impl ::core::clone::Clone for MI_InstanceExFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_InstanceFT { + pub Clone: isize, + pub Destruct: isize, + pub Delete: isize, + pub IsA: isize, + pub GetClassNameA: isize, + pub SetNameSpace: isize, + pub GetNameSpace: isize, + pub GetElementCount: isize, + pub AddElement: isize, + pub SetElement: isize, + pub SetElementAt: isize, + pub GetElement: isize, + pub GetElementAt: isize, + pub ClearElement: isize, + pub ClearElementAt: isize, + pub GetServerName: isize, + pub SetServerName: isize, + pub GetClass: isize, +} +impl ::core::marker::Copy for MI_InstanceFT {} +impl ::core::clone::Clone for MI_InstanceFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_InstanceField { + pub value: *mut MI_Instance, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_InstanceField {} +impl ::core::clone::Clone for MI_InstanceField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Interval { + pub days: u32, + pub hours: u32, + pub minutes: u32, + pub seconds: u32, + pub microseconds: u32, + pub __padding1: u32, + pub __padding2: u32, + pub __padding3: u32, +} +impl ::core::marker::Copy for MI_Interval {} +impl ::core::clone::Clone for MI_Interval { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_MethodDecl { + pub flags: u32, + pub code: u32, + pub name: *const u16, + pub qualifiers: *const *const MI_Qualifier, + pub numQualifiers: u32, + pub parameters: *const *const MI_ParameterDecl, + pub numParameters: u32, + pub size: u32, + pub returnType: u32, + pub origin: *const u16, + pub propagator: *const u16, + pub schema: *const MI_SchemaDecl, + pub function: MI_MethodDecl_Invoke, +} +impl ::core::marker::Copy for MI_MethodDecl {} +impl ::core::clone::Clone for MI_MethodDecl { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Module { + pub version: u32, + pub generatorVersion: u32, + pub flags: u32, + pub charSize: u32, + pub schemaDecl: *mut MI_SchemaDecl, + pub Load: MI_Module_Load, + pub Unload: MI_Module_Unload, + pub dynamicProviderFT: *const MI_ProviderFT, +} +impl ::core::marker::Copy for MI_Module {} +impl ::core::clone::Clone for MI_Module { + fn clone(&self) -> Self { + *self + } +} +pub type MI_Module_Self = isize; +#[repr(C)] +pub struct MI_ObjectDecl { + pub flags: u32, + pub code: u32, + pub name: *const u16, + pub qualifiers: *const *const MI_Qualifier, + pub numQualifiers: u32, + pub properties: *const *const MI_PropertyDecl, + pub numProperties: u32, + pub size: u32, +} +impl ::core::marker::Copy for MI_ObjectDecl {} +impl ::core::clone::Clone for MI_ObjectDecl { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Operation { + pub reserved1: u64, + pub reserved2: isize, + pub ft: *const MI_OperationFT, +} +impl ::core::marker::Copy for MI_Operation {} +impl ::core::clone::Clone for MI_Operation { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_OperationCallbacks { + pub callbackContext: *mut ::core::ffi::c_void, + pub promptUser: MI_OperationCallback_PromptUser, + pub writeError: MI_OperationCallback_WriteError, + pub writeMessage: MI_OperationCallback_WriteMessage, + pub writeProgress: MI_OperationCallback_WriteProgress, + pub instanceResult: MI_OperationCallback_Instance, + pub indicationResult: MI_OperationCallback_Indication, + pub classResult: MI_OperationCallback_Class, + pub streamedParameterResult: MI_OperationCallback_StreamedParameter, +} +impl ::core::marker::Copy for MI_OperationCallbacks {} +impl ::core::clone::Clone for MI_OperationCallbacks { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_OperationFT { + pub Close: isize, + pub Cancel: isize, + pub GetSession: isize, + pub GetInstance: isize, + pub GetIndication: isize, + pub GetClass: isize, +} +impl ::core::marker::Copy for MI_OperationFT {} +impl ::core::clone::Clone for MI_OperationFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_OperationOptions { + pub reserved1: u64, + pub reserved2: isize, + pub ft: *const MI_OperationOptionsFT, +} +impl ::core::marker::Copy for MI_OperationOptions {} +impl ::core::clone::Clone for MI_OperationOptions { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_OperationOptionsFT { + pub Delete: isize, + pub SetString: isize, + pub SetNumber: isize, + pub SetCustomOption: isize, + pub GetString: isize, + pub GetNumber: isize, + pub GetOptionCount: isize, + pub GetOptionAt: isize, + pub GetOption: isize, + pub GetEnabledChannels: isize, + pub Clone: isize, + pub SetInterval: isize, + pub GetInterval: isize, +} +impl ::core::marker::Copy for MI_OperationOptionsFT {} +impl ::core::clone::Clone for MI_OperationOptionsFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ParameterDecl { + pub flags: u32, + pub code: u32, + pub name: *const u16, + pub qualifiers: *const *const MI_Qualifier, + pub numQualifiers: u32, + pub r#type: u32, + pub className: *const u16, + pub subscript: u32, + pub offset: u32, +} +impl ::core::marker::Copy for MI_ParameterDecl {} +impl ::core::clone::Clone for MI_ParameterDecl { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ParameterSet { + pub reserved1: u64, + pub reserved2: isize, + pub ft: *const MI_ParameterSetFT, +} +impl ::core::marker::Copy for MI_ParameterSet {} +impl ::core::clone::Clone for MI_ParameterSet { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ParameterSetFT { + pub GetMethodReturnType: isize, + pub GetParameterCount: isize, + pub GetParameterAt: isize, + pub GetParameter: isize, +} +impl ::core::marker::Copy for MI_ParameterSetFT {} +impl ::core::clone::Clone for MI_ParameterSetFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_PropertyDecl { + pub flags: u32, + pub code: u32, + pub name: *const u16, + pub qualifiers: *const *const MI_Qualifier, + pub numQualifiers: u32, + pub r#type: u32, + pub className: *const u16, + pub subscript: u32, + pub offset: u32, + pub origin: *const u16, + pub propagator: *const u16, + pub value: *const ::core::ffi::c_void, +} +impl ::core::marker::Copy for MI_PropertyDecl {} +impl ::core::clone::Clone for MI_PropertyDecl { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_PropertySet { + pub ft: *const MI_PropertySetFT, + pub reserved: [isize; 3], +} +impl ::core::marker::Copy for MI_PropertySet {} +impl ::core::clone::Clone for MI_PropertySet { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_PropertySetFT { + pub GetElementCount: isize, + pub ContainsElement: isize, + pub AddElement: isize, + pub GetElementAt: isize, + pub Clear: isize, + pub Destruct: isize, + pub Delete: isize, + pub Clone: isize, +} +impl ::core::marker::Copy for MI_PropertySetFT {} +impl ::core::clone::Clone for MI_PropertySetFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ProviderFT { + pub Load: MI_ProviderFT_Load, + pub Unload: MI_ProviderFT_Unload, + pub GetInstance: MI_ProviderFT_GetInstance, + pub EnumerateInstances: MI_ProviderFT_EnumerateInstances, + pub CreateInstance: MI_ProviderFT_CreateInstance, + pub ModifyInstance: MI_ProviderFT_ModifyInstance, + pub DeleteInstance: MI_ProviderFT_DeleteInstance, + pub AssociatorInstances: MI_ProviderFT_AssociatorInstances, + pub ReferenceInstances: MI_ProviderFT_ReferenceInstances, + pub EnableIndications: MI_ProviderFT_EnableIndications, + pub DisableIndications: MI_ProviderFT_DisableIndications, + pub Subscribe: MI_ProviderFT_Subscribe, + pub Unsubscribe: MI_ProviderFT_Unsubscribe, + pub Invoke: MI_ProviderFT_Invoke, +} +impl ::core::marker::Copy for MI_ProviderFT {} +impl ::core::clone::Clone for MI_ProviderFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Qualifier { + pub name: *const u16, + pub r#type: u32, + pub flavor: u32, + pub value: *const ::core::ffi::c_void, +} +impl ::core::marker::Copy for MI_Qualifier {} +impl ::core::clone::Clone for MI_Qualifier { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_QualifierDecl { + pub name: *const u16, + pub r#type: u32, + pub scope: u32, + pub flavor: u32, + pub subscript: u32, + pub value: *const ::core::ffi::c_void, +} +impl ::core::marker::Copy for MI_QualifierDecl {} +impl ::core::clone::Clone for MI_QualifierDecl { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_QualifierSet { + pub reserved1: u64, + pub reserved2: isize, + pub ft: *const MI_QualifierSetFT, +} +impl ::core::marker::Copy for MI_QualifierSet {} +impl ::core::clone::Clone for MI_QualifierSet { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_QualifierSetFT { + pub GetQualifierCount: isize, + pub GetQualifierAt: isize, + pub GetQualifier: isize, +} +impl ::core::marker::Copy for MI_QualifierSetFT {} +impl ::core::clone::Clone for MI_QualifierSetFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Real32A { + pub data: *mut f32, + pub size: u32, +} +impl ::core::marker::Copy for MI_Real32A {} +impl ::core::clone::Clone for MI_Real32A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Real32AField { + pub value: MI_Real32A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Real32AField {} +impl ::core::clone::Clone for MI_Real32AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Real32Field { + pub value: f32, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Real32Field {} +impl ::core::clone::Clone for MI_Real32Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Real64A { + pub data: *mut f64, + pub size: u32, +} +impl ::core::marker::Copy for MI_Real64A {} +impl ::core::clone::Clone for MI_Real64A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Real64AField { + pub value: MI_Real64A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Real64AField {} +impl ::core::clone::Clone for MI_Real64AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Real64Field { + pub value: f64, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Real64Field {} +impl ::core::clone::Clone for MI_Real64Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ReferenceA { + pub data: *mut *mut MI_Instance, + pub size: u32, +} +impl ::core::marker::Copy for MI_ReferenceA {} +impl ::core::clone::Clone for MI_ReferenceA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ReferenceAField { + pub value: MI_ReferenceA, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ReferenceAField {} +impl ::core::clone::Clone for MI_ReferenceAField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ReferenceField { + pub value: *mut MI_Instance, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_ReferenceField {} +impl ::core::clone::Clone for MI_ReferenceField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_SchemaDecl { + pub qualifierDecls: *const *const MI_QualifierDecl, + pub numQualifierDecls: u32, + pub classDecls: *const *const MI_ClassDecl, + pub numClassDecls: u32, +} +impl ::core::marker::Copy for MI_SchemaDecl {} +impl ::core::clone::Clone for MI_SchemaDecl { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Serializer { + pub reserved1: u64, + pub reserved2: isize, +} +impl ::core::marker::Copy for MI_Serializer {} +impl ::core::clone::Clone for MI_Serializer { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_SerializerFT { + pub Close: isize, + pub SerializeClass: isize, + pub SerializeInstance: isize, +} +impl ::core::marker::Copy for MI_SerializerFT {} +impl ::core::clone::Clone for MI_SerializerFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Server { + pub serverFT: *const MI_ServerFT, + pub contextFT: *const MI_ContextFT, + pub instanceFT: *const MI_InstanceFT, + pub propertySetFT: *const MI_PropertySetFT, + pub filterFT: *const MI_FilterFT, +} +impl ::core::marker::Copy for MI_Server {} +impl ::core::clone::Clone for MI_Server { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_ServerFT { + pub GetVersion: isize, + pub GetSystemName: isize, +} +impl ::core::marker::Copy for MI_ServerFT {} +impl ::core::clone::Clone for MI_ServerFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Session { + pub reserved1: u64, + pub reserved2: isize, + pub ft: *const MI_SessionFT, +} +impl ::core::marker::Copy for MI_Session {} +impl ::core::clone::Clone for MI_Session { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_SessionCallbacks { + pub callbackContext: *mut ::core::ffi::c_void, + pub writeMessage: isize, + pub writeError: isize, +} +impl ::core::marker::Copy for MI_SessionCallbacks {} +impl ::core::clone::Clone for MI_SessionCallbacks { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_SessionFT { + pub Close: isize, + pub GetApplication: isize, + pub GetInstance: isize, + pub ModifyInstance: isize, + pub CreateInstance: isize, + pub DeleteInstance: isize, + pub Invoke: isize, + pub EnumerateInstances: isize, + pub QueryInstances: isize, + pub AssociatorInstances: isize, + pub ReferenceInstances: isize, + pub Subscribe: isize, + pub GetClass: isize, + pub EnumerateClasses: isize, + pub TestConnection: isize, +} +impl ::core::marker::Copy for MI_SessionFT {} +impl ::core::clone::Clone for MI_SessionFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Sint16A { + pub data: *mut i16, + pub size: u32, +} +impl ::core::marker::Copy for MI_Sint16A {} +impl ::core::clone::Clone for MI_Sint16A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Sint16AField { + pub value: MI_Sint16A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Sint16AField {} +impl ::core::clone::Clone for MI_Sint16AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Sint16Field { + pub value: i16, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Sint16Field {} +impl ::core::clone::Clone for MI_Sint16Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Sint32A { + pub data: *mut i32, + pub size: u32, +} +impl ::core::marker::Copy for MI_Sint32A {} +impl ::core::clone::Clone for MI_Sint32A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Sint32AField { + pub value: MI_Sint32A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Sint32AField {} +impl ::core::clone::Clone for MI_Sint32AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Sint32Field { + pub value: i32, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Sint32Field {} +impl ::core::clone::Clone for MI_Sint32Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Sint64A { + pub data: *mut i64, + pub size: u32, +} +impl ::core::marker::Copy for MI_Sint64A {} +impl ::core::clone::Clone for MI_Sint64A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Sint64AField { + pub value: MI_Sint64A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Sint64AField {} +impl ::core::clone::Clone for MI_Sint64AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Sint64Field { + pub value: i64, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Sint64Field {} +impl ::core::clone::Clone for MI_Sint64Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Sint8A { + pub data: *mut i8, + pub size: u32, +} +impl ::core::marker::Copy for MI_Sint8A {} +impl ::core::clone::Clone for MI_Sint8A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Sint8AField { + pub value: MI_Sint8A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Sint8AField {} +impl ::core::clone::Clone for MI_Sint8AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Sint8Field { + pub value: i8, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Sint8Field {} +impl ::core::clone::Clone for MI_Sint8Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_StringA { + pub data: *mut *mut u16, + pub size: u32, +} +impl ::core::marker::Copy for MI_StringA {} +impl ::core::clone::Clone for MI_StringA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_StringAField { + pub value: MI_StringA, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_StringAField {} +impl ::core::clone::Clone for MI_StringAField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_StringField { + pub value: *mut u16, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_StringField {} +impl ::core::clone::Clone for MI_StringField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_SubscriptionDeliveryOptions { + pub reserved1: u64, + pub reserved2: isize, + pub ft: *const MI_SubscriptionDeliveryOptionsFT, +} +impl ::core::marker::Copy for MI_SubscriptionDeliveryOptions {} +impl ::core::clone::Clone for MI_SubscriptionDeliveryOptions { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_SubscriptionDeliveryOptionsFT { + pub SetString: isize, + pub SetNumber: isize, + pub SetDateTime: isize, + pub SetInterval: isize, + pub AddCredentials: isize, + pub Delete: isize, + pub GetString: isize, + pub GetNumber: isize, + pub GetDateTime: isize, + pub GetInterval: isize, + pub GetOptionCount: isize, + pub GetOptionAt: isize, + pub GetOption: isize, + pub GetCredentialsCount: isize, + pub GetCredentialsAt: isize, + pub GetCredentialsPasswordAt: isize, + pub Clone: isize, +} +impl ::core::marker::Copy for MI_SubscriptionDeliveryOptionsFT {} +impl ::core::clone::Clone for MI_SubscriptionDeliveryOptionsFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Timestamp { + pub year: u32, + pub month: u32, + pub day: u32, + pub hour: u32, + pub minute: u32, + pub second: u32, + pub microseconds: u32, + pub utc: i32, +} +impl ::core::marker::Copy for MI_Timestamp {} +impl ::core::clone::Clone for MI_Timestamp { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Uint16A { + pub data: *mut u16, + pub size: u32, +} +impl ::core::marker::Copy for MI_Uint16A {} +impl ::core::clone::Clone for MI_Uint16A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Uint16AField { + pub value: MI_Uint16A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Uint16AField {} +impl ::core::clone::Clone for MI_Uint16AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Uint16Field { + pub value: u16, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Uint16Field {} +impl ::core::clone::Clone for MI_Uint16Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Uint32A { + pub data: *mut u32, + pub size: u32, +} +impl ::core::marker::Copy for MI_Uint32A {} +impl ::core::clone::Clone for MI_Uint32A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Uint32AField { + pub value: MI_Uint32A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Uint32AField {} +impl ::core::clone::Clone for MI_Uint32AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Uint32Field { + pub value: u32, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Uint32Field {} +impl ::core::clone::Clone for MI_Uint32Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Uint64A { + pub data: *mut u64, + pub size: u32, +} +impl ::core::marker::Copy for MI_Uint64A {} +impl ::core::clone::Clone for MI_Uint64A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Uint64AField { + pub value: MI_Uint64A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Uint64AField {} +impl ::core::clone::Clone for MI_Uint64AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Uint64Field { + pub value: u64, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Uint64Field {} +impl ::core::clone::Clone for MI_Uint64Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Uint8A { + pub data: *mut u8, + pub size: u32, +} +impl ::core::marker::Copy for MI_Uint8A {} +impl ::core::clone::Clone for MI_Uint8A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Uint8AField { + pub value: MI_Uint8A, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Uint8AField {} +impl ::core::clone::Clone for MI_Uint8AField { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_Uint8Field { + pub value: u8, + pub exists: u8, + pub flags: u8, +} +impl ::core::marker::Copy for MI_Uint8Field {} +impl ::core::clone::Clone for MI_Uint8Field { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_UserCredentials { + pub authenticationType: *const u16, + pub credentials: MI_UserCredentials_0, +} +impl ::core::marker::Copy for MI_UserCredentials {} +impl ::core::clone::Clone for MI_UserCredentials { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MI_UserCredentials_0 { + pub usernamePassword: MI_UsernamePasswordCreds, + pub certificateThumbprint: *const u16, +} +impl ::core::marker::Copy for MI_UserCredentials_0 {} +impl ::core::clone::Clone for MI_UserCredentials_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_UsernamePasswordCreds { + pub domain: *const u16, + pub username: *const u16, + pub password: *const u16, +} +impl ::core::marker::Copy for MI_UsernamePasswordCreds {} +impl ::core::clone::Clone for MI_UsernamePasswordCreds { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MI_UtilitiesFT { + pub MapErrorToMiErrorCategory: isize, + pub CimErrorFromErrorCode: isize, +} +impl ::core::marker::Copy for MI_UtilitiesFT {} +impl ::core::clone::Clone for MI_UtilitiesFT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MI_Value { + pub boolean: u8, + pub uint8: u8, + pub sint8: i8, + pub uint16: u16, + pub sint16: i16, + pub uint32: u32, + pub sint32: i32, + pub uint64: u64, + pub sint64: i64, + pub real32: f32, + pub real64: f64, + pub char16: u16, + pub datetime: MI_Datetime, + pub string: *mut u16, + pub instance: *mut MI_Instance, + pub reference: *mut MI_Instance, + pub booleana: MI_BooleanA, + pub uint8a: MI_Uint8A, + pub sint8a: MI_Sint8A, + pub uint16a: MI_Uint16A, + pub sint16a: MI_Sint16A, + pub uint32a: MI_Uint32A, + pub sint32a: MI_Sint32A, + pub uint64a: MI_Uint64A, + pub sint64a: MI_Sint64A, + pub real32a: MI_Real32A, + pub real64a: MI_Real64A, + pub char16a: MI_Char16A, + pub datetimea: MI_DatetimeA, + pub stringa: MI_StringA, + pub referencea: MI_ReferenceA, + pub instancea: MI_InstanceA, + pub array: MI_Array, +} +impl ::core::marker::Copy for MI_Value {} +impl ::core::clone::Clone for MI_Value { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SWbemAnalysisMatrix { + pub m_uVersion: u32, + pub m_uMatrixType: u32, + pub m_pszProperty: ::windows_sys::core::PCWSTR, + pub m_uPropertyType: u32, + pub m_uEntries: u32, + pub m_pValues: *mut *mut ::core::ffi::c_void, + pub m_pbTruthTable: *mut super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SWbemAnalysisMatrix {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SWbemAnalysisMatrix { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SWbemAnalysisMatrixList { + pub m_uVersion: u32, + pub m_uMatrixType: u32, + pub m_uNumMatrices: u32, + pub m_pMatrices: *mut SWbemAnalysisMatrix, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SWbemAnalysisMatrixList {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SWbemAnalysisMatrixList { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SWbemAssocQueryInf { + pub m_uVersion: u32, + pub m_uAnalysisType: u32, + pub m_uFeatureMask: u32, + pub m_pPath: IWbemPath, + pub m_pszPath: ::windows_sys::core::PWSTR, + pub m_pszQueryText: ::windows_sys::core::PWSTR, + pub m_pszResultClass: ::windows_sys::core::PWSTR, + pub m_pszAssocClass: ::windows_sys::core::PWSTR, + pub m_pszRole: ::windows_sys::core::PWSTR, + pub m_pszResultRole: ::windows_sys::core::PWSTR, + pub m_pszRequiredQualifier: ::windows_sys::core::PWSTR, + pub m_pszRequiredAssocQualifier: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for SWbemAssocQueryInf {} +impl ::core::clone::Clone for SWbemAssocQueryInf { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SWbemQueryQualifiedName { + pub m_uVersion: u32, + pub m_uTokenType: u32, + pub m_uNameListSize: u32, + pub m_ppszNameList: *const ::windows_sys::core::PCWSTR, + pub m_bArraysUsed: super::super::Foundation::BOOL, + pub m_pbArrayElUsed: *mut super::super::Foundation::BOOL, + pub m_puArrayIndex: *mut u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SWbemQueryQualifiedName {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SWbemQueryQualifiedName { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union SWbemRpnConst { + pub m_pszStrVal: ::windows_sys::core::PCWSTR, + pub m_bBoolVal: super::super::Foundation::BOOL, + pub m_lLongVal: i32, + pub m_uLongVal: u32, + pub m_dblVal: f64, + pub m_lVal64: i64, + pub m_uVal64: i64, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SWbemRpnConst {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SWbemRpnConst { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SWbemRpnEncodedQuery { + pub m_uVersion: u32, + pub m_uTokenType: u32, + pub m_uParsedFeatureMask: u64, + pub m_uDetectedArraySize: u32, + pub m_puDetectedFeatures: *mut u32, + pub m_uSelectListSize: u32, + pub m_ppSelectList: *mut *mut SWbemQueryQualifiedName, + pub m_uFromTargetType: u32, + pub m_pszOptionalFromPath: ::windows_sys::core::PCWSTR, + pub m_uFromListSize: u32, + pub m_ppszFromList: *const ::windows_sys::core::PCWSTR, + pub m_uWhereClauseSize: u32, + pub m_ppRpnWhereClause: *mut *mut SWbemRpnQueryToken, + pub m_dblWithinPolling: f64, + pub m_dblWithinWindow: f64, + pub m_uOrderByListSize: u32, + pub m_ppszOrderByList: *const ::windows_sys::core::PCWSTR, + pub m_uOrderDirectionEl: *mut u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SWbemRpnEncodedQuery {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SWbemRpnEncodedQuery { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SWbemRpnQueryToken { + pub m_uVersion: u32, + pub m_uTokenType: u32, + pub m_uSubexpressionShape: u32, + pub m_uOperator: u32, + pub m_pRightIdent: *mut SWbemQueryQualifiedName, + pub m_pLeftIdent: *mut SWbemQueryQualifiedName, + pub m_uConstApparentType: u32, + pub m_Const: SWbemRpnConst, + pub m_uConst2ApparentType: u32, + pub m_Const2: SWbemRpnConst, + pub m_pszRightFunc: ::windows_sys::core::PCWSTR, + pub m_pszLeftFunc: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SWbemRpnQueryToken {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SWbemRpnQueryToken { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SWbemRpnTokenList { + pub m_uVersion: u32, + pub m_uTokenType: u32, + pub m_uNumTokens: u32, +} +impl ::core::marker::Copy for SWbemRpnTokenList {} +impl ::core::clone::Clone for SWbemRpnTokenList { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WBEM_COMPILE_STATUS_INFO { + pub lPhaseError: i32, + pub hRes: ::windows_sys::core::HRESULT, + pub ObjectNum: i32, + pub FirstLine: i32, + pub LastLine: i32, + pub dwOutFlags: u32, +} +impl ::core::marker::Copy for WBEM_COMPILE_STATUS_INFO {} +impl ::core::clone::Clone for WBEM_COMPILE_STATUS_INFO { + fn clone(&self) -> Self { + *self + } +} +pub type MI_CancelCallback = ::core::option::Option ()>; +pub type MI_Deserializer_ClassObjectNeeded = ::core::option::Option MI_Result>; +pub type MI_MainFunction = ::core::option::Option *mut MI_Module>; +pub type MI_MethodDecl_Invoke = ::core::option::Option ()>; +pub type MI_Module_Load = ::core::option::Option ()>; +pub type MI_Module_Unload = ::core::option::Option ()>; +pub type MI_OperationCallback_Class = ::core::option::Option ()>; +pub type MI_OperationCallback_Indication = ::core::option::Option ()>; +pub type MI_OperationCallback_Instance = ::core::option::Option ()>; +pub type MI_OperationCallback_PromptUser = ::core::option::Option ()>; +pub type MI_OperationCallback_StreamedParameter = ::core::option::Option ()>; +pub type MI_OperationCallback_WriteError = ::core::option::Option ()>; +pub type MI_OperationCallback_WriteMessage = ::core::option::Option ()>; +pub type MI_OperationCallback_WriteProgress = ::core::option::Option ()>; +pub type MI_ProviderFT_AssociatorInstances = ::core::option::Option ()>; +pub type MI_ProviderFT_CreateInstance = ::core::option::Option ()>; +pub type MI_ProviderFT_DeleteInstance = ::core::option::Option ()>; +pub type MI_ProviderFT_DisableIndications = ::core::option::Option ()>; +pub type MI_ProviderFT_EnableIndications = ::core::option::Option ()>; +pub type MI_ProviderFT_EnumerateInstances = ::core::option::Option ()>; +pub type MI_ProviderFT_GetInstance = ::core::option::Option ()>; +pub type MI_ProviderFT_Invoke = ::core::option::Option ()>; +pub type MI_ProviderFT_Load = ::core::option::Option ()>; +pub type MI_ProviderFT_ModifyInstance = ::core::option::Option ()>; +pub type MI_ProviderFT_ReferenceInstances = ::core::option::Option ()>; +pub type MI_ProviderFT_Subscribe = ::core::option::Option ()>; +pub type MI_ProviderFT_Unload = ::core::option::Option ()>; +pub type MI_ProviderFT_Unsubscribe = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/System/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/System/mod.rs new file mode 100644 index 000000000..cf7b4af62 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/System/mod.rs @@ -0,0 +1,198 @@ +#[cfg(feature = "Win32_System_AddressBook")] +#[doc = "Required features: `\"Win32_System_AddressBook\"`"] +pub mod AddressBook; +#[cfg(feature = "Win32_System_Antimalware")] +#[doc = "Required features: `\"Win32_System_Antimalware\"`"] +pub mod Antimalware; +#[cfg(feature = "Win32_System_ApplicationInstallationAndServicing")] +#[doc = "Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`"] +pub mod ApplicationInstallationAndServicing; +#[cfg(feature = "Win32_System_ApplicationVerifier")] +#[doc = "Required features: `\"Win32_System_ApplicationVerifier\"`"] +pub mod ApplicationVerifier; +#[cfg(feature = "Win32_System_ClrHosting")] +#[doc = "Required features: `\"Win32_System_ClrHosting\"`"] +pub mod ClrHosting; +#[cfg(feature = "Win32_System_Com")] +#[doc = "Required features: `\"Win32_System_Com\"`"] +pub mod Com; +#[cfg(feature = "Win32_System_ComponentServices")] +#[doc = "Required features: `\"Win32_System_ComponentServices\"`"] +pub mod ComponentServices; +#[cfg(feature = "Win32_System_Console")] +#[doc = "Required features: `\"Win32_System_Console\"`"] +pub mod Console; +#[cfg(feature = "Win32_System_CorrelationVector")] +#[doc = "Required features: `\"Win32_System_CorrelationVector\"`"] +pub mod CorrelationVector; +#[cfg(feature = "Win32_System_DataExchange")] +#[doc = "Required features: `\"Win32_System_DataExchange\"`"] +pub mod DataExchange; +#[cfg(feature = "Win32_System_DeploymentServices")] +#[doc = "Required features: `\"Win32_System_DeploymentServices\"`"] +pub mod DeploymentServices; +#[cfg(feature = "Win32_System_DeveloperLicensing")] +#[doc = "Required features: `\"Win32_System_DeveloperLicensing\"`"] +pub mod DeveloperLicensing; +#[cfg(feature = "Win32_System_Diagnostics")] +#[doc = "Required features: `\"Win32_System_Diagnostics\"`"] +pub mod Diagnostics; +#[cfg(feature = "Win32_System_DistributedTransactionCoordinator")] +#[doc = "Required features: `\"Win32_System_DistributedTransactionCoordinator\"`"] +pub mod DistributedTransactionCoordinator; +#[cfg(feature = "Win32_System_Environment")] +#[doc = "Required features: `\"Win32_System_Environment\"`"] +pub mod Environment; +#[cfg(feature = "Win32_System_ErrorReporting")] +#[doc = "Required features: `\"Win32_System_ErrorReporting\"`"] +pub mod ErrorReporting; +#[cfg(feature = "Win32_System_EventCollector")] +#[doc = "Required features: `\"Win32_System_EventCollector\"`"] +pub mod EventCollector; +#[cfg(feature = "Win32_System_EventLog")] +#[doc = "Required features: `\"Win32_System_EventLog\"`"] +pub mod EventLog; +#[cfg(feature = "Win32_System_EventNotificationService")] +#[doc = "Required features: `\"Win32_System_EventNotificationService\"`"] +pub mod EventNotificationService; +#[cfg(feature = "Win32_System_GroupPolicy")] +#[doc = "Required features: `\"Win32_System_GroupPolicy\"`"] +pub mod GroupPolicy; +#[cfg(feature = "Win32_System_HostCompute")] +#[doc = "Required features: `\"Win32_System_HostCompute\"`"] +pub mod HostCompute; +#[cfg(feature = "Win32_System_HostComputeNetwork")] +#[doc = "Required features: `\"Win32_System_HostComputeNetwork\"`"] +pub mod HostComputeNetwork; +#[cfg(feature = "Win32_System_HostComputeSystem")] +#[doc = "Required features: `\"Win32_System_HostComputeSystem\"`"] +pub mod HostComputeSystem; +#[cfg(feature = "Win32_System_Hypervisor")] +#[doc = "Required features: `\"Win32_System_Hypervisor\"`"] +pub mod Hypervisor; +#[cfg(feature = "Win32_System_IO")] +#[doc = "Required features: `\"Win32_System_IO\"`"] +pub mod IO; +#[cfg(feature = "Win32_System_Iis")] +#[doc = "Required features: `\"Win32_System_Iis\"`"] +pub mod Iis; +#[cfg(feature = "Win32_System_Ioctl")] +#[doc = "Required features: `\"Win32_System_Ioctl\"`"] +pub mod Ioctl; +#[cfg(feature = "Win32_System_JobObjects")] +#[doc = "Required features: `\"Win32_System_JobObjects\"`"] +pub mod JobObjects; +#[cfg(feature = "Win32_System_Js")] +#[doc = "Required features: `\"Win32_System_Js\"`"] +pub mod Js; +#[cfg(feature = "Win32_System_Kernel")] +#[doc = "Required features: `\"Win32_System_Kernel\"`"] +pub mod Kernel; +#[cfg(feature = "Win32_System_LibraryLoader")] +#[doc = "Required features: `\"Win32_System_LibraryLoader\"`"] +pub mod LibraryLoader; +#[cfg(feature = "Win32_System_Mailslots")] +#[doc = "Required features: `\"Win32_System_Mailslots\"`"] +pub mod Mailslots; +#[cfg(feature = "Win32_System_Mapi")] +#[doc = "Required features: `\"Win32_System_Mapi\"`"] +pub mod Mapi; +#[cfg(feature = "Win32_System_Memory")] +#[doc = "Required features: `\"Win32_System_Memory\"`"] +pub mod Memory; +#[cfg(feature = "Win32_System_MessageQueuing")] +#[doc = "Required features: `\"Win32_System_MessageQueuing\"`"] +pub mod MessageQueuing; +#[cfg(feature = "Win32_System_MixedReality")] +#[doc = "Required features: `\"Win32_System_MixedReality\"`"] +pub mod MixedReality; +#[cfg(feature = "Win32_System_Ole")] +#[doc = "Required features: `\"Win32_System_Ole\"`"] +pub mod Ole; +#[cfg(feature = "Win32_System_PasswordManagement")] +#[doc = "Required features: `\"Win32_System_PasswordManagement\"`"] +pub mod PasswordManagement; +#[cfg(feature = "Win32_System_Performance")] +#[doc = "Required features: `\"Win32_System_Performance\"`"] +pub mod Performance; +#[cfg(feature = "Win32_System_Pipes")] +#[doc = "Required features: `\"Win32_System_Pipes\"`"] +pub mod Pipes; +#[cfg(feature = "Win32_System_Power")] +#[doc = "Required features: `\"Win32_System_Power\"`"] +pub mod Power; +#[cfg(feature = "Win32_System_ProcessStatus")] +#[doc = "Required features: `\"Win32_System_ProcessStatus\"`"] +pub mod ProcessStatus; +#[cfg(feature = "Win32_System_Recovery")] +#[doc = "Required features: `\"Win32_System_Recovery\"`"] +pub mod Recovery; +#[cfg(feature = "Win32_System_Registry")] +#[doc = "Required features: `\"Win32_System_Registry\"`"] +pub mod Registry; +#[cfg(feature = "Win32_System_RemoteDesktop")] +#[doc = "Required features: `\"Win32_System_RemoteDesktop\"`"] +pub mod RemoteDesktop; +#[cfg(feature = "Win32_System_RemoteManagement")] +#[doc = "Required features: `\"Win32_System_RemoteManagement\"`"] +pub mod RemoteManagement; +#[cfg(feature = "Win32_System_RestartManager")] +#[doc = "Required features: `\"Win32_System_RestartManager\"`"] +pub mod RestartManager; +#[cfg(feature = "Win32_System_Restore")] +#[doc = "Required features: `\"Win32_System_Restore\"`"] +pub mod Restore; +#[cfg(feature = "Win32_System_Rpc")] +#[doc = "Required features: `\"Win32_System_Rpc\"`"] +pub mod Rpc; +#[cfg(feature = "Win32_System_Search")] +#[doc = "Required features: `\"Win32_System_Search\"`"] +pub mod Search; +#[cfg(feature = "Win32_System_SecurityCenter")] +#[doc = "Required features: `\"Win32_System_SecurityCenter\"`"] +pub mod SecurityCenter; +#[cfg(feature = "Win32_System_Services")] +#[doc = "Required features: `\"Win32_System_Services\"`"] +pub mod Services; +#[cfg(feature = "Win32_System_SetupAndMigration")] +#[doc = "Required features: `\"Win32_System_SetupAndMigration\"`"] +pub mod SetupAndMigration; +#[cfg(feature = "Win32_System_Shutdown")] +#[doc = "Required features: `\"Win32_System_Shutdown\"`"] +pub mod Shutdown; +#[cfg(feature = "Win32_System_StationsAndDesktops")] +#[doc = "Required features: `\"Win32_System_StationsAndDesktops\"`"] +pub mod StationsAndDesktops; +#[cfg(feature = "Win32_System_SubsystemForLinux")] +#[doc = "Required features: `\"Win32_System_SubsystemForLinux\"`"] +pub mod SubsystemForLinux; +#[cfg(feature = "Win32_System_SystemInformation")] +#[doc = "Required features: `\"Win32_System_SystemInformation\"`"] +pub mod SystemInformation; +#[cfg(feature = "Win32_System_SystemServices")] +#[doc = "Required features: `\"Win32_System_SystemServices\"`"] +pub mod SystemServices; +#[cfg(feature = "Win32_System_Threading")] +#[doc = "Required features: `\"Win32_System_Threading\"`"] +pub mod Threading; +#[cfg(feature = "Win32_System_Time")] +#[doc = "Required features: `\"Win32_System_Time\"`"] +pub mod Time; +#[cfg(feature = "Win32_System_TpmBaseServices")] +#[doc = "Required features: `\"Win32_System_TpmBaseServices\"`"] +pub mod TpmBaseServices; +#[cfg(feature = "Win32_System_UserAccessLogging")] +#[doc = "Required features: `\"Win32_System_UserAccessLogging\"`"] +pub mod UserAccessLogging; +#[cfg(feature = "Win32_System_Variant")] +#[doc = "Required features: `\"Win32_System_Variant\"`"] +pub mod Variant; +#[cfg(feature = "Win32_System_VirtualDosMachines")] +#[doc = "Required features: `\"Win32_System_VirtualDosMachines\"`"] +pub mod VirtualDosMachines; +#[cfg(feature = "Win32_System_WindowsProgramming")] +#[doc = "Required features: `\"Win32_System_WindowsProgramming\"`"] +pub mod WindowsProgramming; +#[cfg(feature = "Win32_System_Wmi")] +#[doc = "Required features: `\"Win32_System_Wmi\"`"] +pub mod Wmi; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Accessibility/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Accessibility/mod.rs new file mode 100644 index 000000000..ea534b83a --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Accessibility/mod.rs @@ -0,0 +1,2166 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleacc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccNotifyTouchInteraction(hwndapp : super::super::Foundation:: HWND, hwndtarget : super::super::Foundation:: HWND, pttarget : super::super::Foundation:: POINT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleacc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccSetRunningUtilityState(hwndapp : super::super::Foundation:: HWND, dwutilitystatemask : u32, dwutilitystate : ACC_UTILITY_STATE_FLAGS) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleacc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn AccessibleChildren(pacccontainer : IAccessible, ichildstart : i32, cchildren : i32, rgvarchildren : *mut super::super::System::Variant:: VARIANT, pcobtained : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleacc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn AccessibleObjectFromEvent(hwnd : super::super::Foundation:: HWND, dwid : u32, dwchildid : u32, ppacc : *mut IAccessible, pvarchild : *mut super::super::System::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("oleacc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn AccessibleObjectFromPoint(ptscreen : super::super::Foundation:: POINT, ppacc : *mut IAccessible, pvarchild : *mut super::super::System::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleacc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AccessibleObjectFromWindow(hwnd : super::super::Foundation:: HWND, dwid : u32, riid : *const ::windows_sys::core::GUID, ppvobject : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleacc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateStdAccessibleObject(hwnd : super::super::Foundation:: HWND, idobject : i32, riid : *const ::windows_sys::core::GUID, ppvobject : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleacc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateStdAccessibleProxyA(hwnd : super::super::Foundation:: HWND, pclassname : ::windows_sys::core::PCSTR, idobject : i32, riid : *const ::windows_sys::core::GUID, ppvobject : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleacc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateStdAccessibleProxyW(hwnd : super::super::Foundation:: HWND, pclassname : ::windows_sys::core::PCWSTR, idobject : i32, riid : *const ::windows_sys::core::GUID, ppvobject : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn DockPattern_SetDockPosition(hobj : HUIAPATTERNOBJECT, dockposition : DockPosition) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn ExpandCollapsePattern_Collapse(hobj : HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn ExpandCollapsePattern_Expand(hobj : HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("oleacc.dll" "system" fn GetOleaccVersionInfo(pver : *mut u32, pbuild : *mut u32) -> ()); +::windows_targets::link!("oleacc.dll" "system" fn GetRoleTextA(lrole : u32, lpszrole : ::windows_sys::core::PSTR, cchrolemax : u32) -> u32); +::windows_targets::link!("oleacc.dll" "system" fn GetRoleTextW(lrole : u32, lpszrole : ::windows_sys::core::PWSTR, cchrolemax : u32) -> u32); +::windows_targets::link!("oleacc.dll" "system" fn GetStateTextA(lstatebit : u32, lpszstate : ::windows_sys::core::PSTR, cchstate : u32) -> u32); +::windows_targets::link!("oleacc.dll" "system" fn GetStateTextW(lstatebit : u32, lpszstate : ::windows_sys::core::PWSTR, cchstate : u32) -> u32); +::windows_targets::link!("uiautomationcore.dll" "system" fn GridPattern_GetItem(hobj : HUIAPATTERNOBJECT, row : i32, column : i32, presult : *mut HUIANODE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn InvokePattern_Invoke(hobj : HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsWinEventHookInstalled(event : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn ItemContainerPattern_FindItemByProperty(hobj : HUIAPATTERNOBJECT, hnodestartafter : HUIANODE, propertyid : i32, value : super::super::System::Variant:: VARIANT, pfound : *mut HUIANODE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn LegacyIAccessiblePattern_DoDefaultAction(hobj : HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn LegacyIAccessiblePattern_GetIAccessible(hobj : HUIAPATTERNOBJECT, paccessible : *mut IAccessible) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn LegacyIAccessiblePattern_Select(hobj : HUIAPATTERNOBJECT, flagsselect : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn LegacyIAccessiblePattern_SetValue(hobj : HUIAPATTERNOBJECT, szvalue : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleacc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LresultFromObject(riid : *const ::windows_sys::core::GUID, wparam : super::super::Foundation:: WPARAM, punk : ::windows_sys::core::IUnknown) -> super::super::Foundation:: LRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn MultipleViewPattern_GetViewName(hobj : HUIAPATTERNOBJECT, viewid : i32, ppstr : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn MultipleViewPattern_SetCurrentView(hobj : HUIAPATTERNOBJECT, viewid : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn NotifyWinEvent(event : u32, hwnd : super::super::Foundation:: HWND, idobject : i32, idchild : i32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("oleacc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ObjectFromLresult(lresult : super::super::Foundation:: LRESULT, riid : *const ::windows_sys::core::GUID, wparam : super::super::Foundation:: WPARAM, ppvobject : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn RangeValuePattern_SetValue(hobj : HUIAPATTERNOBJECT, val : f64) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn RegisterPointerInputTarget(hwnd : super::super::Foundation:: HWND, pointertype : super::WindowsAndMessaging:: POINTER_INPUT_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn RegisterPointerInputTargetEx(hwnd : super::super::Foundation:: HWND, pointertype : super::WindowsAndMessaging:: POINTER_INPUT_TYPE, fobserve : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("uiautomationcore.dll" "system" fn ScrollItemPattern_ScrollIntoView(hobj : HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn ScrollPattern_Scroll(hobj : HUIAPATTERNOBJECT, horizontalamount : ScrollAmount, verticalamount : ScrollAmount) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn ScrollPattern_SetScrollPercent(hobj : HUIAPATTERNOBJECT, horizontalpercent : f64, verticalpercent : f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn SelectionItemPattern_AddToSelection(hobj : HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn SelectionItemPattern_RemoveFromSelection(hobj : HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn SelectionItemPattern_Select(hobj : HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWinEventHook(eventmin : u32, eventmax : u32, hmodwineventproc : super::super::Foundation:: HMODULE, pfnwineventproc : WINEVENTPROC, idprocess : u32, idthread : u32, dwflags : u32) -> HWINEVENTHOOK); +::windows_targets::link!("uiautomationcore.dll" "system" fn SynchronizedInputPattern_Cancel(hobj : HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn SynchronizedInputPattern_StartListening(hobj : HUIAPATTERNOBJECT, inputtype : SynchronizedInputType) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn TextPattern_GetSelection(hobj : HUIAPATTERNOBJECT, pretval : *mut *mut super::super::System::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn TextPattern_GetVisibleRanges(hobj : HUIAPATTERNOBJECT, pretval : *mut *mut super::super::System::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextPattern_RangeFromChild(hobj : HUIAPATTERNOBJECT, hnodechild : HUIANODE, pretval : *mut HUIATEXTRANGE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextPattern_RangeFromPoint(hobj : HUIAPATTERNOBJECT, point : UiaPoint, pretval : *mut HUIATEXTRANGE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextPattern_get_DocumentRange(hobj : HUIAPATTERNOBJECT, pretval : *mut HUIATEXTRANGE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextPattern_get_SupportedTextSelection(hobj : HUIAPATTERNOBJECT, pretval : *mut SupportedTextSelection) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextRange_AddToSelection(hobj : HUIATEXTRANGE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextRange_Clone(hobj : HUIATEXTRANGE, pretval : *mut HUIATEXTRANGE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TextRange_Compare(hobj : HUIATEXTRANGE, range : HUIATEXTRANGE, pretval : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextRange_CompareEndpoints(hobj : HUIATEXTRANGE, endpoint : TextPatternRangeEndpoint, targetrange : HUIATEXTRANGE, targetendpoint : TextPatternRangeEndpoint, pretval : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextRange_ExpandToEnclosingUnit(hobj : HUIATEXTRANGE, unit : TextUnit) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn TextRange_FindAttribute(hobj : HUIATEXTRANGE, attributeid : i32, val : super::super::System::Variant:: VARIANT, backward : super::super::Foundation:: BOOL, pretval : *mut HUIATEXTRANGE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TextRange_FindText(hobj : HUIATEXTRANGE, text : ::windows_sys::core::BSTR, backward : super::super::Foundation:: BOOL, ignorecase : super::super::Foundation:: BOOL, pretval : *mut HUIATEXTRANGE) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn TextRange_GetAttributeValue(hobj : HUIATEXTRANGE, attributeid : i32, pretval : *mut super::super::System::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn TextRange_GetBoundingRectangles(hobj : HUIATEXTRANGE, pretval : *mut *mut super::super::System::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn TextRange_GetChildren(hobj : HUIATEXTRANGE, pretval : *mut *mut super::super::System::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextRange_GetEnclosingElement(hobj : HUIATEXTRANGE, pretval : *mut HUIANODE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextRange_GetText(hobj : HUIATEXTRANGE, maxlength : i32, pretval : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextRange_Move(hobj : HUIATEXTRANGE, unit : TextUnit, count : i32, pretval : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextRange_MoveEndpointByRange(hobj : HUIATEXTRANGE, endpoint : TextPatternRangeEndpoint, targetrange : HUIATEXTRANGE, targetendpoint : TextPatternRangeEndpoint) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextRange_MoveEndpointByUnit(hobj : HUIATEXTRANGE, endpoint : TextPatternRangeEndpoint, unit : TextUnit, count : i32, pretval : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextRange_RemoveFromSelection(hobj : HUIATEXTRANGE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TextRange_ScrollIntoView(hobj : HUIATEXTRANGE, aligntotop : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TextRange_Select(hobj : HUIATEXTRANGE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TogglePattern_Toggle(hobj : HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TransformPattern_Move(hobj : HUIAPATTERNOBJECT, x : f64, y : f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TransformPattern_Resize(hobj : HUIAPATTERNOBJECT, width : f64, height : f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn TransformPattern_Rotate(hobj : HUIAPATTERNOBJECT, degrees : f64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn UiaAddEvent(hnode : HUIANODE, eventid : i32, pcallback : *mut UiaEventCallback, scope : TreeScope, pproperties : *mut i32, cproperties : i32, prequest : *mut UiaCacheRequest, phevent : *mut HUIAEVENT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UiaClientsAreListening() -> super::super::Foundation:: BOOL); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaDisconnectAllProviders() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaDisconnectProvider(pprovider : IRawElementProviderSimple) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UiaEventAddWindow(hevent : HUIAEVENT, hwnd : super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UiaEventRemoveWindow(hevent : HUIAEVENT, hwnd : super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn UiaFind(hnode : HUIANODE, pparams : *mut UiaFindParams, prequest : *mut UiaCacheRequest, pprequesteddata : *mut *mut super::super::System::Com:: SAFEARRAY, ppoffsets : *mut *mut super::super::System::Com:: SAFEARRAY, pptreestructures : *mut *mut super::super::System::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UiaGetErrorDescription(pdescription : *mut ::windows_sys::core::BSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaGetPatternProvider(hnode : HUIANODE, patternid : i32, phobj : *mut HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn UiaGetPropertyValue(hnode : HUIANODE, propertyid : i32, pvalue : *mut super::super::System::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaGetReservedMixedAttributeValue(punkmixedattributevalue : *mut ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaGetReservedNotSupportedValue(punknotsupportedvalue : *mut ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaGetRootNode(phnode : *mut HUIANODE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn UiaGetRuntimeId(hnode : HUIANODE, pruntimeid : *mut *mut super::super::System::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn UiaGetUpdatedCache(hnode : HUIANODE, prequest : *mut UiaCacheRequest, normalizestate : NormalizeState, pnormalizecondition : *mut UiaCondition, pprequesteddata : *mut *mut super::super::System::Com:: SAFEARRAY, pptreestructure : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn UiaHPatternObjectFromVariant(pvar : *mut super::super::System::Variant:: VARIANT, phobj : *mut HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn UiaHTextRangeFromVariant(pvar : *mut super::super::System::Variant:: VARIANT, phtextrange : *mut HUIATEXTRANGE) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn UiaHUiaNodeFromVariant(pvar : *mut super::super::System::Variant:: VARIANT, phnode : *mut HUIANODE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UiaHasServerSideProvider(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UiaHostProviderFromHwnd(hwnd : super::super::Foundation:: HWND, ppprovider : *mut IRawElementProviderSimple) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn UiaIAccessibleFromProvider(pprovider : IRawElementProviderSimple, dwflags : u32, ppaccessible : *mut IAccessible, pvarchild : *mut super::super::System::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaLookupId(r#type : AutomationIdentifierType, pguid : *const ::windows_sys::core::GUID) -> i32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn UiaNavigate(hnode : HUIANODE, direction : NavigateDirection, pcondition : *mut UiaCondition, prequest : *mut UiaCacheRequest, pprequesteddata : *mut *mut super::super::System::Com:: SAFEARRAY, pptreestructure : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn UiaNodeFromFocus(prequest : *mut UiaCacheRequest, pprequesteddata : *mut *mut super::super::System::Com:: SAFEARRAY, pptreestructure : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UiaNodeFromHandle(hwnd : super::super::Foundation:: HWND, phnode : *mut HUIANODE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn UiaNodeFromPoint(x : f64, y : f64, prequest : *mut UiaCacheRequest, pprequesteddata : *mut *mut super::super::System::Com:: SAFEARRAY, pptreestructure : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaNodeFromProvider(pprovider : IRawElementProviderSimple, phnode : *mut HUIANODE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UiaNodeRelease(hnode : HUIANODE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UiaPatternRelease(hobj : HUIAPATTERNOBJECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UiaProviderForNonClient(hwnd : super::super::Foundation:: HWND, idobject : i32, idchild : i32, ppprovider : *mut IRawElementProviderSimple) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn UiaProviderFromIAccessible(paccessible : IAccessible, idchild : i32, dwflags : u32, ppprovider : *mut IRawElementProviderSimple) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaRaiseActiveTextPositionChangedEvent(provider : IRawElementProviderSimple, textrange : ITextRangeProvider) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaRaiseAsyncContentLoadedEvent(pprovider : IRawElementProviderSimple, asynccontentloadedstate : AsyncContentLoadedState, percentcomplete : f64) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaRaiseAutomationEvent(pprovider : IRawElementProviderSimple, id : UIA_EVENT_ID) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn UiaRaiseAutomationPropertyChangedEvent(pprovider : IRawElementProviderSimple, id : UIA_PROPERTY_ID, oldvalue : super::super::System::Variant:: VARIANT, newvalue : super::super::System::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn UiaRaiseChangesEvent(pprovider : IRawElementProviderSimple, eventidcount : i32, puiachanges : *mut UiaChangeInfo) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaRaiseNotificationEvent(provider : IRawElementProviderSimple, notificationkind : NotificationKind, notificationprocessing : NotificationProcessing, displaystring : ::windows_sys::core::BSTR, activityid : ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaRaiseStructureChangedEvent(pprovider : IRawElementProviderSimple, structurechangetype : StructureChangeType, pruntimeid : *mut i32, cruntimeidlen : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn UiaRaiseTextEditTextChangedEvent(pprovider : IRawElementProviderSimple, texteditchangetype : TextEditChangeType, pchangeddata : *mut super::super::System::Com:: SAFEARRAY) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn UiaRegisterProviderCallback(pcallback : *mut UiaProviderCallback) -> ()); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaRemoveEvent(hevent : HUIAEVENT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UiaReturnRawElementProvider(hwnd : super::super::Foundation:: HWND, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM, el : IRawElementProviderSimple) -> super::super::Foundation:: LRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn UiaSetFocus(hnode : HUIANODE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UiaTextRangeRelease(hobj : HUIATEXTRANGE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnhookWinEvent(hwineventhook : HWINEVENTHOOK) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn UnregisterPointerInputTarget(hwnd : super::super::Foundation:: HWND, pointertype : super::WindowsAndMessaging:: POINTER_INPUT_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn UnregisterPointerInputTargetEx(hwnd : super::super::Foundation:: HWND, pointertype : super::WindowsAndMessaging:: POINTER_INPUT_TYPE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("uiautomationcore.dll" "system" fn ValuePattern_SetValue(hobj : HUIAPATTERNOBJECT, pval : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn VirtualizedItemPattern_Realize(hobj : HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("oleacc.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn WindowFromAccessibleObject(param0 : IAccessible, phwnd : *mut super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn WindowPattern_Close(hobj : HUIAPATTERNOBJECT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uiautomationcore.dll" "system" fn WindowPattern_SetWindowVisualState(hobj : HUIAPATTERNOBJECT, state : WindowVisualState) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uiautomationcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WindowPattern_WaitForInputIdle(hobj : HUIAPATTERNOBJECT, milliseconds : i32, presult : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +pub type IAccIdentity = *mut ::core::ffi::c_void; +pub type IAccPropServer = *mut ::core::ffi::c_void; +pub type IAccPropServices = *mut ::core::ffi::c_void; +pub type IAccessible = *mut ::core::ffi::c_void; +pub type IAccessibleEx = *mut ::core::ffi::c_void; +pub type IAccessibleHandler = *mut ::core::ffi::c_void; +pub type IAccessibleHostingElementProviders = *mut ::core::ffi::c_void; +pub type IAccessibleWindowlessSite = *mut ::core::ffi::c_void; +pub type IAnnotationProvider = *mut ::core::ffi::c_void; +pub type ICustomNavigationProvider = *mut ::core::ffi::c_void; +pub type IDockProvider = *mut ::core::ffi::c_void; +pub type IDragProvider = *mut ::core::ffi::c_void; +pub type IDropTargetProvider = *mut ::core::ffi::c_void; +pub type IExpandCollapseProvider = *mut ::core::ffi::c_void; +pub type IGridItemProvider = *mut ::core::ffi::c_void; +pub type IGridProvider = *mut ::core::ffi::c_void; +pub type IInvokeProvider = *mut ::core::ffi::c_void; +pub type IItemContainerProvider = *mut ::core::ffi::c_void; +pub type ILegacyIAccessibleProvider = *mut ::core::ffi::c_void; +pub type IMultipleViewProvider = *mut ::core::ffi::c_void; +pub type IObjectModelProvider = *mut ::core::ffi::c_void; +pub type IProxyProviderWinEventHandler = *mut ::core::ffi::c_void; +pub type IProxyProviderWinEventSink = *mut ::core::ffi::c_void; +pub type IRangeValueProvider = *mut ::core::ffi::c_void; +pub type IRawElementProviderAdviseEvents = *mut ::core::ffi::c_void; +pub type IRawElementProviderFragment = *mut ::core::ffi::c_void; +pub type IRawElementProviderFragmentRoot = *mut ::core::ffi::c_void; +pub type IRawElementProviderHostingAccessibles = *mut ::core::ffi::c_void; +pub type IRawElementProviderHwndOverride = *mut ::core::ffi::c_void; +pub type IRawElementProviderSimple = *mut ::core::ffi::c_void; +pub type IRawElementProviderSimple2 = *mut ::core::ffi::c_void; +pub type IRawElementProviderSimple3 = *mut ::core::ffi::c_void; +pub type IRawElementProviderWindowlessSite = *mut ::core::ffi::c_void; +pub type IRichEditUiaInformation = *mut ::core::ffi::c_void; +pub type IRicheditWindowlessAccessibility = *mut ::core::ffi::c_void; +pub type IScrollItemProvider = *mut ::core::ffi::c_void; +pub type IScrollProvider = *mut ::core::ffi::c_void; +pub type ISelectionItemProvider = *mut ::core::ffi::c_void; +pub type ISelectionProvider = *mut ::core::ffi::c_void; +pub type ISelectionProvider2 = *mut ::core::ffi::c_void; +pub type ISpreadsheetItemProvider = *mut ::core::ffi::c_void; +pub type ISpreadsheetProvider = *mut ::core::ffi::c_void; +pub type IStylesProvider = *mut ::core::ffi::c_void; +pub type ISynchronizedInputProvider = *mut ::core::ffi::c_void; +pub type ITableItemProvider = *mut ::core::ffi::c_void; +pub type ITableProvider = *mut ::core::ffi::c_void; +pub type ITextChildProvider = *mut ::core::ffi::c_void; +pub type ITextEditProvider = *mut ::core::ffi::c_void; +pub type ITextProvider = *mut ::core::ffi::c_void; +pub type ITextProvider2 = *mut ::core::ffi::c_void; +pub type ITextRangeProvider = *mut ::core::ffi::c_void; +pub type ITextRangeProvider2 = *mut ::core::ffi::c_void; +pub type IToggleProvider = *mut ::core::ffi::c_void; +pub type ITransformProvider = *mut ::core::ffi::c_void; +pub type ITransformProvider2 = *mut ::core::ffi::c_void; +pub type IUIAutomation = *mut ::core::ffi::c_void; +pub type IUIAutomation2 = *mut ::core::ffi::c_void; +pub type IUIAutomation3 = *mut ::core::ffi::c_void; +pub type IUIAutomation4 = *mut ::core::ffi::c_void; +pub type IUIAutomation5 = *mut ::core::ffi::c_void; +pub type IUIAutomation6 = *mut ::core::ffi::c_void; +pub type IUIAutomationActiveTextPositionChangedEventHandler = *mut ::core::ffi::c_void; +pub type IUIAutomationAndCondition = *mut ::core::ffi::c_void; +pub type IUIAutomationAnnotationPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationBoolCondition = *mut ::core::ffi::c_void; +pub type IUIAutomationCacheRequest = *mut ::core::ffi::c_void; +pub type IUIAutomationChangesEventHandler = *mut ::core::ffi::c_void; +pub type IUIAutomationCondition = *mut ::core::ffi::c_void; +pub type IUIAutomationCustomNavigationPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationDockPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationDragPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationDropTargetPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationElement = *mut ::core::ffi::c_void; +pub type IUIAutomationElement2 = *mut ::core::ffi::c_void; +pub type IUIAutomationElement3 = *mut ::core::ffi::c_void; +pub type IUIAutomationElement4 = *mut ::core::ffi::c_void; +pub type IUIAutomationElement5 = *mut ::core::ffi::c_void; +pub type IUIAutomationElement6 = *mut ::core::ffi::c_void; +pub type IUIAutomationElement7 = *mut ::core::ffi::c_void; +pub type IUIAutomationElement8 = *mut ::core::ffi::c_void; +pub type IUIAutomationElement9 = *mut ::core::ffi::c_void; +pub type IUIAutomationElementArray = *mut ::core::ffi::c_void; +pub type IUIAutomationEventHandler = *mut ::core::ffi::c_void; +pub type IUIAutomationEventHandlerGroup = *mut ::core::ffi::c_void; +pub type IUIAutomationExpandCollapsePattern = *mut ::core::ffi::c_void; +pub type IUIAutomationFocusChangedEventHandler = *mut ::core::ffi::c_void; +pub type IUIAutomationGridItemPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationGridPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationInvokePattern = *mut ::core::ffi::c_void; +pub type IUIAutomationItemContainerPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationLegacyIAccessiblePattern = *mut ::core::ffi::c_void; +pub type IUIAutomationMultipleViewPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationNotCondition = *mut ::core::ffi::c_void; +pub type IUIAutomationNotificationEventHandler = *mut ::core::ffi::c_void; +pub type IUIAutomationObjectModelPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationOrCondition = *mut ::core::ffi::c_void; +pub type IUIAutomationPatternHandler = *mut ::core::ffi::c_void; +pub type IUIAutomationPatternInstance = *mut ::core::ffi::c_void; +pub type IUIAutomationPropertyChangedEventHandler = *mut ::core::ffi::c_void; +pub type IUIAutomationPropertyCondition = *mut ::core::ffi::c_void; +pub type IUIAutomationProxyFactory = *mut ::core::ffi::c_void; +pub type IUIAutomationProxyFactoryEntry = *mut ::core::ffi::c_void; +pub type IUIAutomationProxyFactoryMapping = *mut ::core::ffi::c_void; +pub type IUIAutomationRangeValuePattern = *mut ::core::ffi::c_void; +pub type IUIAutomationRegistrar = *mut ::core::ffi::c_void; +pub type IUIAutomationScrollItemPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationScrollPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationSelectionItemPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationSelectionPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationSelectionPattern2 = *mut ::core::ffi::c_void; +pub type IUIAutomationSpreadsheetItemPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationSpreadsheetPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationStructureChangedEventHandler = *mut ::core::ffi::c_void; +pub type IUIAutomationStylesPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationSynchronizedInputPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationTableItemPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationTablePattern = *mut ::core::ffi::c_void; +pub type IUIAutomationTextChildPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationTextEditPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationTextEditTextChangedEventHandler = *mut ::core::ffi::c_void; +pub type IUIAutomationTextPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationTextPattern2 = *mut ::core::ffi::c_void; +pub type IUIAutomationTextRange = *mut ::core::ffi::c_void; +pub type IUIAutomationTextRange2 = *mut ::core::ffi::c_void; +pub type IUIAutomationTextRange3 = *mut ::core::ffi::c_void; +pub type IUIAutomationTextRangeArray = *mut ::core::ffi::c_void; +pub type IUIAutomationTogglePattern = *mut ::core::ffi::c_void; +pub type IUIAutomationTransformPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationTransformPattern2 = *mut ::core::ffi::c_void; +pub type IUIAutomationTreeWalker = *mut ::core::ffi::c_void; +pub type IUIAutomationValuePattern = *mut ::core::ffi::c_void; +pub type IUIAutomationVirtualizedItemPattern = *mut ::core::ffi::c_void; +pub type IUIAutomationWindowPattern = *mut ::core::ffi::c_void; +pub type IValueProvider = *mut ::core::ffi::c_void; +pub type IVirtualizedItemProvider = *mut ::core::ffi::c_void; +pub type IWindowProvider = *mut ::core::ffi::c_void; +pub const ANNO_CONTAINER: AnnoScope = 1i32; +pub const ANNO_THIS: AnnoScope = 0i32; +pub const ANRUS_ON_SCREEN_KEYBOARD_ACTIVE: ACC_UTILITY_STATE_FLAGS = 1u32; +pub const ANRUS_PRIORITY_AUDIO_ACTIVE: ACC_UTILITY_STATE_FLAGS = 4u32; +pub const ANRUS_PRIORITY_AUDIO_ACTIVE_NODUCK: ACC_UTILITY_STATE_FLAGS = 8u32; +pub const ANRUS_PRIORITY_AUDIO_DYNAMIC_DUCK: u32 = 16u32; +pub const ANRUS_TOUCH_MODIFICATION_ACTIVE: ACC_UTILITY_STATE_FLAGS = 2u32; +pub const AcceleratorKey_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x514865df_2557_4cb9_aeed_6ced084ce52c); +pub const AccessKey_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x06827b12_a7f9_4a15_917c_ffa5ad3eb0a7); +pub const ActiveEnd_End: ActiveEnd = 2i32; +pub const ActiveEnd_None: ActiveEnd = 0i32; +pub const ActiveEnd_Start: ActiveEnd = 1i32; +pub const ActiveTextPositionChanged_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa5c09e9c_c77d_4f25_b491_e5bb7017cbd4); +pub const AnimationStyle_BlinkingBackground: AnimationStyle = 2i32; +pub const AnimationStyle_LasVegasLights: AnimationStyle = 1i32; +pub const AnimationStyle_MarchingBlackAnts: AnimationStyle = 4i32; +pub const AnimationStyle_MarchingRedAnts: AnimationStyle = 5i32; +pub const AnimationStyle_None: AnimationStyle = 0i32; +pub const AnimationStyle_Other: AnimationStyle = -1i32; +pub const AnimationStyle_Shimmer: AnimationStyle = 6i32; +pub const AnimationStyle_SparkleText: AnimationStyle = 3i32; +pub const AnnotationObjects_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x310910c8_7c6e_4f20_becd_4aaf6d191156); +pub const AnnotationType_AdvancedProofingIssue: UIA_ANNOTATIONTYPE = 60020u32; +pub const AnnotationType_Author: UIA_ANNOTATIONTYPE = 60019u32; +pub const AnnotationType_CircularReferenceError: UIA_ANNOTATIONTYPE = 60022u32; +pub const AnnotationType_Comment: UIA_ANNOTATIONTYPE = 60003u32; +pub const AnnotationType_ConflictingChange: UIA_ANNOTATIONTYPE = 60018u32; +pub const AnnotationType_DataValidationError: UIA_ANNOTATIONTYPE = 60021u32; +pub const AnnotationType_DeletionChange: UIA_ANNOTATIONTYPE = 60012u32; +pub const AnnotationType_EditingLockedChange: UIA_ANNOTATIONTYPE = 60016u32; +pub const AnnotationType_Endnote: UIA_ANNOTATIONTYPE = 60009u32; +pub const AnnotationType_ExternalChange: UIA_ANNOTATIONTYPE = 60017u32; +pub const AnnotationType_Footer: UIA_ANNOTATIONTYPE = 60007u32; +pub const AnnotationType_Footnote: UIA_ANNOTATIONTYPE = 60010u32; +pub const AnnotationType_FormatChange: UIA_ANNOTATIONTYPE = 60014u32; +pub const AnnotationType_FormulaError: UIA_ANNOTATIONTYPE = 60004u32; +pub const AnnotationType_GrammarError: UIA_ANNOTATIONTYPE = 60002u32; +pub const AnnotationType_Header: UIA_ANNOTATIONTYPE = 60006u32; +pub const AnnotationType_Highlighted: UIA_ANNOTATIONTYPE = 60008u32; +pub const AnnotationType_InsertionChange: UIA_ANNOTATIONTYPE = 60011u32; +pub const AnnotationType_Mathematics: UIA_ANNOTATIONTYPE = 60023u32; +pub const AnnotationType_MoveChange: UIA_ANNOTATIONTYPE = 60013u32; +pub const AnnotationType_Sensitive: UIA_ANNOTATIONTYPE = 60024u32; +pub const AnnotationType_SpellingError: UIA_ANNOTATIONTYPE = 60001u32; +pub const AnnotationType_TrackChanges: UIA_ANNOTATIONTYPE = 60005u32; +pub const AnnotationType_Unknown: UIA_ANNOTATIONTYPE = 60000u32; +pub const AnnotationType_UnsyncedChange: UIA_ANNOTATIONTYPE = 60015u32; +pub const AnnotationTypes_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x64b71f76_53c4_4696_a219_20e940c9a176); +pub const Annotation_AdvancedProofingIssue_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdac7b72c_c0f2_4b84_b90d_5fafc0f0ef1c); +pub const Annotation_AnnotationTypeId_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x20ae484f_69ef_4c48_8f5b_c4938b206ac7); +pub const Annotation_AnnotationTypeName_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b818892_5ac9_4af9_aa96_f58a77b058e3); +pub const Annotation_Author_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf161d3a7_f81b_4128_b17f_71f690914520); +pub const Annotation_Author_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7a528462_9c5c_4a03_a974_8b307a9937f2); +pub const Annotation_CircularReferenceError_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25bd9cf4_1745_4659_ba67_727f0318c616); +pub const Annotation_Comment_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfd2fda30_26b3_4c06_8bc7_98f1532e46fd); +pub const Annotation_ConflictingChange_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x98af8802_517c_459f_af13_016d3fab877e); +pub const Annotation_Custom_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9ec82750_3931_4952_85bc_1dbff78a43e3); +pub const Annotation_DataValidationError_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc8649fa8_9775_437e_ad46_e709d93c2343); +pub const Annotation_DateTime_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x99b5ca5d_1acf_414b_a4d0_6b350b047578); +pub const Annotation_DeletionChange_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbe3d5b05_951d_42e7_901d_adc8c2cf34d0); +pub const Annotation_EditingLockedChange_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc31f3e1c_7423_4dac_8348_41f099ff6f64); +pub const Annotation_Endnote_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7565725c_2d99_4839_960d_33d3b866aba5); +pub const Annotation_ExternalChange_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x75a05b31_5f11_42fd_887d_dfa010db2392); +pub const Annotation_Footer_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcceab046_1833_47aa_8080_701ed0b0c832); +pub const Annotation_Footnote_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3de10e21_4125_42db_8620_be8083080624); +pub const Annotation_FormatChange_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeb247345_d4f1_41ce_8e52_f79b69635e48); +pub const Annotation_FormulaError_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x95611982_0cab_46d5_a2f0_e30d1905f8bf); +pub const Annotation_GrammarError_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x757a048d_4518_41c6_854c_dc009b7cfb53); +pub const Annotation_Header_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x867b409b_b216_4472_a219_525e310681f8); +pub const Annotation_Highlighted_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x757c884e_8083_4081_8b9c_e87f5072f0e4); +pub const Annotation_InsertionChange_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0dbeb3a6_df15_4164_a3c0_e21a8ce931c4); +pub const Annotation_Mathematics_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeaab634b_26d0_40c1_8073_57ca1c633c9b); +pub const Annotation_MoveChange_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9da587eb_23e5_4490_b385_1a22ddc8b187); +pub const Annotation_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf6c72ad7_356c_4850_9291_316f608a8c84); +pub const Annotation_Sensitive_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x37f4c04f_0f12_4464_929c_828fd15292e3); +pub const Annotation_SpellingError_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae85567e_9ece_423f_81b7_96c43d53e50e); +pub const Annotation_Target_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb71b302d_2104_44ad_9c5c_092b4907d70f); +pub const Annotation_TrackChanges_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x21e6e888_dc14_4016_ac27_190553c8c470); +pub const Annotation_UnsyncedChange_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1851116a_0e47_4b30_8cb5_d7dae4fbcd1b); +pub const AppBar_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6114908d_cc02_4d37_875b_b530c7139554); +pub const AriaProperties_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4213678c_e025_4922_beb5_e43ba08e6221); +pub const AriaRole_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdd207b95_be4a_4e0d_b727_63ace94b6916); +pub const Assertive: LiveSetting = 2i32; +pub const AsyncContentLoadedState_Beginning: AsyncContentLoadedState = 0i32; +pub const AsyncContentLoadedState_Completed: AsyncContentLoadedState = 2i32; +pub const AsyncContentLoadedState_Progress: AsyncContentLoadedState = 1i32; +pub const AsyncContentLoaded_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5fdee11c_d2fa_4fb9_904e_5cbee894d5ef); +pub const AutomationElementMode_Full: AutomationElementMode = 1i32; +pub const AutomationElementMode_None: AutomationElementMode = 0i32; +pub const AutomationFocusChanged_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb68a1f17_f60d_41a7_a3cc_b05292155fe0); +pub const AutomationId_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc82c0500_b60e_4310_a267_303c531f8ee5); +pub const AutomationIdentifierType_Annotation: AutomationIdentifierType = 6i32; +pub const AutomationIdentifierType_Changes: AutomationIdentifierType = 7i32; +pub const AutomationIdentifierType_ControlType: AutomationIdentifierType = 3i32; +pub const AutomationIdentifierType_Event: AutomationIdentifierType = 2i32; +pub const AutomationIdentifierType_LandmarkType: AutomationIdentifierType = 5i32; +pub const AutomationIdentifierType_Pattern: AutomationIdentifierType = 1i32; +pub const AutomationIdentifierType_Property: AutomationIdentifierType = 0i32; +pub const AutomationIdentifierType_Style: AutomationIdentifierType = 8i32; +pub const AutomationIdentifierType_TextAttribute: AutomationIdentifierType = 4i32; +pub const AutomationPropertyChanged_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2527fba1_8d7a_4630_a4cc_e66315942f52); +pub const BoundingRectangle_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7bbfe8b2_3bfc_48dd_b729_c794b846e9a1); +pub const BulletStyle_DashBullet: BulletStyle = 5i32; +pub const BulletStyle_FilledRoundBullet: BulletStyle = 2i32; +pub const BulletStyle_FilledSquareBullet: BulletStyle = 4i32; +pub const BulletStyle_HollowRoundBullet: BulletStyle = 1i32; +pub const BulletStyle_HollowSquareBullet: BulletStyle = 3i32; +pub const BulletStyle_None: BulletStyle = 0i32; +pub const BulletStyle_Other: BulletStyle = -1i32; +pub const Button_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5a78e369_c6a1_4f33_a9d7_79f20d0c788e); +pub const CAccPropServices: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb5f8350b_0548_48b1_a6ee_88bd00b4a5e7); +pub const CLSID_AccPropServices: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb5f8350b_0548_48b1_a6ee_88bd00b4a5e7); +pub const CUIAutomation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xff48dba4_60ef_4201_aa87_54103eef594e); +pub const CUIAutomation8: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe22ad333_b25f_460c_83d0_0581107395c9); +pub const CUIAutomationRegistrar: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6e29fabf_9977_42d1_8d0e_ca7e61ad87e6); +pub const Calendar_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8913eb88_00e5_46bc_8e4e_14a786e165a1); +pub const CapStyle_AllCap: CapStyle = 2i32; +pub const CapStyle_AllPetiteCaps: CapStyle = 3i32; +pub const CapStyle_None: CapStyle = 0i32; +pub const CapStyle_Other: CapStyle = -1i32; +pub const CapStyle_PetiteCaps: CapStyle = 4i32; +pub const CapStyle_SmallCap: CapStyle = 1i32; +pub const CapStyle_Titling: CapStyle = 6i32; +pub const CapStyle_Unicase: CapStyle = 5i32; +pub const CaretBidiMode_LTR: CaretBidiMode = 0i32; +pub const CaretBidiMode_RTL: CaretBidiMode = 1i32; +pub const CaretPosition_BeginningOfLine: CaretPosition = 2i32; +pub const CaretPosition_EndOfLine: CaretPosition = 1i32; +pub const CaretPosition_Unknown: CaretPosition = 0i32; +pub const CenterPoint_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0cb00c08_540c_4edb_9445_26359ea69785); +pub const Changes_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7df26714_614f_4e05_9488_716c5ba19436); +pub const Changes_Summary_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x313d65a6_e60f_4d62_9861_55afd728d207); +pub const CheckBox_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb50f922_a3db_49c0_8bc3_06dad55778e2); +pub const ClassName_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x157b7215_894f_4b65_84e2_aac0da08b16b); +pub const ClickablePoint_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0196903b_b203_4818_a9f3_f08e675f2341); +pub const CoalesceEventsOptions_Disabled: CoalesceEventsOptions = 0i32; +pub const CoalesceEventsOptions_Enabled: CoalesceEventsOptions = 1i32; +pub const ComboBox_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x54cb426c_2f33_4fff_aaa1_aef60dac5deb); +pub const ConditionType_And: ConditionType = 3i32; +pub const ConditionType_False: ConditionType = 1i32; +pub const ConditionType_Not: ConditionType = 5i32; +pub const ConditionType_Or: ConditionType = 4i32; +pub const ConditionType_Property: ConditionType = 2i32; +pub const ConditionType_True: ConditionType = 0i32; +pub const ConnectionRecoveryBehaviorOptions_Disabled: ConnectionRecoveryBehaviorOptions = 0i32; +pub const ConnectionRecoveryBehaviorOptions_Enabled: ConnectionRecoveryBehaviorOptions = 1i32; +pub const ControlType_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xca774fea_28ac_4bc2_94ca_acec6d6c10a3); +pub const ControllerFor_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x51124c8a_a5d2_4f13_9be6_7fa8ba9d3a90); +pub const Culture_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe2d74f27_3d79_4dc2_b88b_3044963a8afb); +pub const CustomNavigation_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xafea938a_621e_4054_bb2c_2f46114dac3f); +pub const Custom_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf29ea0c3_adb7_430a_ba90_e52c7313e6ed); +pub const DISPID_ACC_CHILD: i32 = -5002i32; +pub const DISPID_ACC_CHILDCOUNT: i32 = -5001i32; +pub const DISPID_ACC_DEFAULTACTION: i32 = -5013i32; +pub const DISPID_ACC_DESCRIPTION: i32 = -5005i32; +pub const DISPID_ACC_DODEFAULTACTION: i32 = -5018i32; +pub const DISPID_ACC_FOCUS: i32 = -5011i32; +pub const DISPID_ACC_HELP: i32 = -5008i32; +pub const DISPID_ACC_HELPTOPIC: i32 = -5009i32; +pub const DISPID_ACC_HITTEST: i32 = -5017i32; +pub const DISPID_ACC_KEYBOARDSHORTCUT: i32 = -5010i32; +pub const DISPID_ACC_LOCATION: i32 = -5015i32; +pub const DISPID_ACC_NAME: i32 = -5003i32; +pub const DISPID_ACC_NAVIGATE: i32 = -5016i32; +pub const DISPID_ACC_PARENT: i32 = -5000i32; +pub const DISPID_ACC_ROLE: i32 = -5006i32; +pub const DISPID_ACC_SELECT: i32 = -5014i32; +pub const DISPID_ACC_SELECTION: i32 = -5012i32; +pub const DISPID_ACC_STATE: i32 = -5007i32; +pub const DISPID_ACC_VALUE: i32 = -5004i32; +pub const DataGrid_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x84b783af_d103_4b0a_8415_e73942410f4b); +pub const DataItem_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa0177842_d94f_42a5_814b_6068addc8da5); +pub const DescribedBy_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7c5865b8_9992_40fd_8db0_6bf1d317f998); +pub const DockPosition_Bottom: DockPosition = 2i32; +pub const DockPosition_Fill: DockPosition = 4i32; +pub const DockPosition_Left: DockPosition = 1i32; +pub const DockPosition_None: DockPosition = 5i32; +pub const DockPosition_Right: DockPosition = 3i32; +pub const DockPosition_Top: DockPosition = 0i32; +pub const Dock_DockPosition_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6d67f02e_c0b0_4b10_b5b9_18d6ecf98760); +pub const Dock_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9cbaa846_83c8_428d_827f_7e6063fe0620); +pub const Document_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3cd6bb6f_6f08_4562_b229_e4e2fc7a9eb4); +pub const Drag_DragCancel_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc3ede6fa_3451_4e0f_9e71_df9c280a4657); +pub const Drag_DragComplete_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38e96188_ef1f_463e_91ca_3a7792c29caf); +pub const Drag_DragStart_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x883a480b_3aa9_429d_95e4_d9c8d011f0dd); +pub const Drag_DropEffect_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x646f2779_48d3_4b23_8902_4bf100005df3); +pub const Drag_DropEffects_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf5d61156_7ce6_49be_a836_9269dcec920f); +pub const Drag_GrabbedItems_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x77c1562c_7b86_4b21_9ed7_3cefda6f4c43); +pub const Drag_IsGrabbed_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x45f206f3_75cc_4cca_a9b9_fcdfb982d8a2); +pub const Drag_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc0bee21f_ccb3_4fed_995b_114f6e3d2728); +pub const DropTarget_DragEnter_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaad9319b_032c_4a88_961d_1cf579581e34); +pub const DropTarget_DragLeave_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0f82eb15_24a2_4988_9217_de162aee272b); +pub const DropTarget_DropTargetEffect_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8bb75975_a0ca_4981_b818_87fc66e9509d); +pub const DropTarget_DropTargetEffects_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbc1dd4ed_cb89_45f1_a592_e03b08ae790f); +pub const DropTarget_Dropped_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x622cead8_1edb_4a3d_abbc_be2211ff68b5); +pub const DropTarget_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0bcbec56_bd34_4b7b_9fd5_2659905ea3dc); +pub const Edit_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6504a5c8_2c86_4f87_ae7b_1abddc810cf9); +pub const EventArgsType_ActiveTextPositionChanged: EventArgsType = 8i32; +pub const EventArgsType_AsyncContentLoaded: EventArgsType = 3i32; +pub const EventArgsType_Changes: EventArgsType = 6i32; +pub const EventArgsType_Notification: EventArgsType = 7i32; +pub const EventArgsType_PropertyChanged: EventArgsType = 1i32; +pub const EventArgsType_Simple: EventArgsType = 0i32; +pub const EventArgsType_StructureChanged: EventArgsType = 2i32; +pub const EventArgsType_StructuredMarkup: EventArgsType = 9i32; +pub const EventArgsType_TextEditTextChanged: EventArgsType = 5i32; +pub const EventArgsType_WindowClosed: EventArgsType = 4i32; +pub const ExpandCollapseState_Collapsed: ExpandCollapseState = 0i32; +pub const ExpandCollapseState_Expanded: ExpandCollapseState = 1i32; +pub const ExpandCollapseState_LeafNode: ExpandCollapseState = 3i32; +pub const ExpandCollapseState_PartiallyExpanded: ExpandCollapseState = 2i32; +pub const ExpandCollapse_ExpandCollapseState_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x275a4c48_85a7_4f69_aba0_af157610002b); +pub const ExpandCollapse_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae05efa2_f9d1_428a_834c_53a5c52f9b8b); +pub const FillColor_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6e0ec4d0_e2a8_4a56_9de7_953389933b39); +pub const FillType_Color: FillType = 1i32; +pub const FillType_Gradient: FillType = 2i32; +pub const FillType_None: FillType = 0i32; +pub const FillType_Pattern: FillType = 4i32; +pub const FillType_Picture: FillType = 3i32; +pub const FillType_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc6fc74e4_8cb9_429c_a9e1_9bc4ac372b62); +pub const FlowDirections_BottomToTop: FlowDirections = 2i32; +pub const FlowDirections_Default: FlowDirections = 0i32; +pub const FlowDirections_RightToLeft: FlowDirections = 1i32; +pub const FlowDirections_Vertical: FlowDirections = 4i32; +pub const FlowsFrom_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x05c6844f_19de_48f8_95fa_880d5b0fd615); +pub const FlowsTo_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe4f33d20_559a_47fb_a830_f9cb4ff1a70a); +pub const FrameworkId_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdbfd9900_7e1a_4f58_b61b_7063120f773b); +pub const FullDescription_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0d4450ff_6aef_4f33_95dd_7befa72a4391); +pub const GridItem_ColumnSpan_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x583ea3f5_86d0_4b08_a6ec_2c5463ffc109); +pub const GridItem_Column_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc774c15c_62c0_4519_8bdc_47be573c8ad5); +pub const GridItem_Parent_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9d912252_b97f_4ecc_8510_ea0e33427c72); +pub const GridItem_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2d5c877_a462_4957_a2a5_2c96b303bc63); +pub const GridItem_RowSpan_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4582291c_466b_4e93_8e83_3d1715ec0c5e); +pub const GridItem_Row_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6223972a_c945_4563_9329_fdc974af2553); +pub const Grid_ColumnCount_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfe96f375_44aa_4536_ac7a_2a75d71a3efc); +pub const Grid_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x260a2ccb_93a8_4e44_a4c1_3df397f2b02b); +pub const Grid_RowCount_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2a9505bf_c2eb_4fb6_b356_8245ae53703e); +pub const Group_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xad50aa1c_e8c8_4774_ae1b_dd86df0b3bdc); +pub const HCF_AVAILABLE: HIGHCONTRASTW_FLAGS = 2u32; +pub const HCF_CONFIRMHOTKEY: HIGHCONTRASTW_FLAGS = 8u32; +pub const HCF_HIGHCONTRASTON: HIGHCONTRASTW_FLAGS = 1u32; +pub const HCF_HOTKEYACTIVE: HIGHCONTRASTW_FLAGS = 4u32; +pub const HCF_HOTKEYAVAILABLE: HIGHCONTRASTW_FLAGS = 64u32; +pub const HCF_HOTKEYSOUND: HIGHCONTRASTW_FLAGS = 16u32; +pub const HCF_INDICATOR: HIGHCONTRASTW_FLAGS = 32u32; +pub const HCF_OPTION_NOTHEMECHANGE: HIGHCONTRASTW_FLAGS = 4096u32; +pub const HasKeyboardFocus_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf8afd39_3f46_4800_9656_b2bf12529905); +pub const HeaderItem_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe6bc12cb_7c8e_49cf_b168_4a93a32bebb0); +pub const Header_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5b90cbce_78fb_4614_82b6_554d74718e67); +pub const HeadingLevel1: UIA_HEADINGLEVEL_ID = 80051u32; +pub const HeadingLevel2: UIA_HEADINGLEVEL_ID = 80052u32; +pub const HeadingLevel3: UIA_HEADINGLEVEL_ID = 80053u32; +pub const HeadingLevel4: UIA_HEADINGLEVEL_ID = 80054u32; +pub const HeadingLevel5: UIA_HEADINGLEVEL_ID = 80055u32; +pub const HeadingLevel6: UIA_HEADINGLEVEL_ID = 80056u32; +pub const HeadingLevel7: UIA_HEADINGLEVEL_ID = 80057u32; +pub const HeadingLevel8: UIA_HEADINGLEVEL_ID = 80058u32; +pub const HeadingLevel9: UIA_HEADINGLEVEL_ID = 80059u32; +pub const HeadingLevel_None: UIA_HEADINGLEVEL_ID = 80050u32; +pub const HeadingLevel_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x29084272_aaaf_4a30_8796_3c12f62b6bbb); +pub const HelpText_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x08555685_0977_45c7_a7a6_abaf5684121a); +pub const HorizontalTextAlignment_Centered: HorizontalTextAlignment = 1i32; +pub const HorizontalTextAlignment_Justified: HorizontalTextAlignment = 3i32; +pub const HorizontalTextAlignment_Left: HorizontalTextAlignment = 0i32; +pub const HorizontalTextAlignment_Right: HorizontalTextAlignment = 2i32; +pub const HostedFragmentRootsInvalidated_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe6bdb03e_0921_4ec5_8dcf_eae877b0426b); +pub const Hyperlink_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8a56022c_b00d_4d15_8ff0_5b6b266e5e02); +pub const IIS_ControlAccessible: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38c682a6_9731_43f2_9fae_e901e641b101); +pub const IIS_IsOleaccProxy: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x902697fa_80e4_4560_802a_a13f22a64709); +pub const Image_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2d3736e4_6b16_4c57_a962_f93260a75243); +pub const InputDiscarded_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f36c367_7b18_417c_97e3_9d58ddc944ab); +pub const InputReachedOtherElement_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xed201d8a_4e6c_415e_a874_2460c9b66ba8); +pub const InputReachedTarget_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x93ed549a_0549_40f0_bedb_28e44f7de2a3); +pub const Invoke_Invoked_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdfd699f0_c915_49dd_b422_dde785c3d24b); +pub const Invoke_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd976c2fc_66ea_4a6e_b28f_c24c7546ad37); +pub const IsAnnotationPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0b5b3238_6d5c_41b6_bcc4_5e807f6551c4); +pub const IsContentElement_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4bda64a8_f5d8_480b_8155_ef2e89adb672); +pub const IsControlElement_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x95f35085_abcc_4afd_a5f4_dbb46c230fdb); +pub const IsCustomNavigationPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8f8e80d4_2351_48e0_874a_54aa7313889a); +pub const IsDataValidForForm_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x445ac684_c3fc_4dd9_acf8_845a579296ba); +pub const IsDialog_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9d0dfb9b_8436_4501_bbbb_e534a4fb3b3f); +pub const IsDockPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2600a4c4_2ff8_4c96_ae31_8fe619a13c6c); +pub const IsDragPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe997a7b7_1d39_4ca7_be0f_277fcf5605cc); +pub const IsDropTargetPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0686b62e_8e19_4aaf_873d_384f6d3b92be); +pub const IsEnabled_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2109427f_da60_4fed_bf1b_264bdce6eb3a); +pub const IsExpandCollapsePatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x929d3806_5287_4725_aa16_222afc63d595); +pub const IsGridItemPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5a43e524_f9a2_4b12_84c8_b48a3efedd34); +pub const IsGridPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5622c26c_f0ef_4f3b_97cb_714c0868588b); +pub const IsInvokePatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4e725738_8364_4679_aa6c_f3f41931f750); +pub const IsItemContainerPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x624b5ca7_fe40_4957_a019_20c4cf11920f); +pub const IsKeyboardFocusable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf7b8552a_0859_4b37_b9cb_51e72092f29f); +pub const IsLegacyIAccessiblePatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd8ebd0c7_929a_4ee7_8d3a_d3d94413027b); +pub const IsMultipleViewPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xff0a31eb_8e25_469d_8d6e_e771a27c1b90); +pub const IsObjectModelPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6b21d89b_2841_412f_8ef2_15ca952318ba); +pub const IsOffscreen_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03c3d160_db79_42db_a2ef_1c231eede507); +pub const IsPassword_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe8482eb1_687c_497b_bebc_03be53ec1454); +pub const IsPeripheral_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xda758276_7ed5_49d4_8e68_ecc9a2d300dd); +pub const IsRangeValuePatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfda4244a_eb4d_43ff_b5ad_ed36d373ec4c); +pub const IsRequiredForForm_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4f5f43cf_59fb_4bde_a270_602e5e1141e9); +pub const IsScrollItemPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1cad1a05_0927_4b76_97e1_0fcdb209b98a); +pub const IsScrollPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3ebb7b4a_828a_4b57_9d22_2fea1632ed0d); +pub const IsSelectionItemPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8becd62d_0bc3_4109_bee2_8e6715290e68); +pub const IsSelectionPattern2Available_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x490806fb_6e89_4a47_8319_d266e511f021); +pub const IsSelectionPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf588acbe_c769_4838_9a60_2686dc1188c4); +pub const IsSpreadsheetItemPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9fe79b2a_2f94_43fd_996b_549e316f4acd); +pub const IsSpreadsheetPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6ff43732_e4b4_4555_97bc_ecdbbc4d1888); +pub const IsStructuredMarkupPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb0d4c196_2c0b_489c_b165_a405928c6f3d); +pub const IsStylesPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x27f353d3_459c_4b59_a490_50611dacafb5); +pub const IsSynchronizedInputPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x75d69cc5_d2bf_4943_876e_b45b62a6cc66); +pub const IsTableItemPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeb36b40d_8ea4_489b_a013_e60d5951fe34); +pub const IsTablePatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb83575f_45c2_4048_9c76_159715a139df); +pub const IsTextChildPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x559e65df_30ff_43b5_b5ed_5b283b80c7e9); +pub const IsTextEditPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7843425c_8b32_484c_9ab5_e3200571ffda); +pub const IsTextPattern2Available_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x41cf921d_e3f1_4b22_9c81_e1c3ed331c22); +pub const IsTextPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfbe2d69d_aff6_4a45_82e2_fc92a82f5917); +pub const IsTogglePatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x78686d53_fcd0_4b83_9b78_5832ce63bb5b); +pub const IsTransformPattern2Available_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25980b4b_be04_4710_ab4a_fda31dbd2895); +pub const IsTransformPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa7f78804_d68b_4077_a5c6_7a5ea1ac31c5); +pub const IsValuePatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0b5020a7_2119_473b_be37_5ceb98bbfb22); +pub const IsVirtualizedItemPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x302cb151_2ac8_45d6_977b_d2b3a5a53f20); +pub const IsWindowPatternAvailable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe7a57bb1_5888_4155_98dc_b422fd57f2bc); +pub const ItemContainer_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d13da0f_8b9a_4a99_85fa_c5c9a69f1ed4); +pub const ItemStatus_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x51de0321_3973_43e7_8913_0b08e813c37f); +pub const ItemType_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcdda434d_6222_413b_a68a_325dd1d40f39); +pub const LIBID_Accessibility: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ea4dbf0_3c3b_11cf_810c_00aa00389b71); +pub const LabeledBy_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe5b8924b_fc8a_4a35_8031_cf78ac43e55e); +pub const LandmarkType_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x454045f2_6f61_49f7_a4f8_b5f0cf82da1e); +pub const LayoutInvalidated_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xed7d6544_a6bd_4595_9bae_3d28946cc715); +pub const LegacyIAccessible_ChildId_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9a191b5d_9ef2_4787_a459_dcde885dd4e8); +pub const LegacyIAccessible_DefaultAction_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3b331729_eaad_4502_b85f_92615622913c); +pub const LegacyIAccessible_Description_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x46448418_7d70_4ea9_9d27_b7e775cf2ad7); +pub const LegacyIAccessible_Help_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x94402352_161c_4b77_a98d_a872cc33947a); +pub const LegacyIAccessible_KeyboardShortcut_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8f6909ac_00b8_4259_a41c_966266d43a8a); +pub const LegacyIAccessible_Name_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcaeb063d_40ae_4869_aa5a_1b8e5d666739); +pub const LegacyIAccessible_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x54cc0a9f_3395_48af_ba8d_73f85690f3e0); +pub const LegacyIAccessible_Role_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6856e59f_cbaf_4e31_93e8_bcbf6f7e491c); +pub const LegacyIAccessible_Selection_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8aa8b1e0_0891_40cc_8b06_90d7d4166219); +pub const LegacyIAccessible_State_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdf985854_2281_4340_ab9c_c60e2c5803f6); +pub const LegacyIAccessible_Value_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb5c5b0b6_8217_4a77_97a5_190a85ed0156); +pub const Level_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x242ac529_cd36_400f_aad9_7876ef3af627); +pub const ListItem_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b3717f2_44d1_4a58_98a8_f12a9b8f78e2); +pub const List_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b149ee1_7cca_4cfc_9af1_cac7bddd3031); +pub const LiveRegionChanged_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x102d5e90_e6a9_41b6_b1c5_a9b1929d9510); +pub const LiveSetting_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc12bcd8e_2a8e_4950_8ae7_3625111d58eb); +pub const LocalizedControlType_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8763404f_a1bd_452a_89c4_3f01d3833806); +pub const LocalizedLandmarkType_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7ac81980_eafb_4fb2_bf91_f485bef5e8e1); +pub const MSAA_MENU_SIG: i32 = -1441927155i32; +pub const MenuBar_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcc384250_0e7b_4ae8_95ae_a08f261b52ee); +pub const MenuClosed_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3cf1266e_1582_4041_acd7_88a35a965297); +pub const MenuItem_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf45225d3_d0a0_49d8_9834_9a000d2aeddc); +pub const MenuModeEnd_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9ecd4c9f_80dd_47b8_8267_5aec06bb2cff); +pub const MenuModeStart_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x18d7c631_166a_4ac9_ae3b_ef4b5420e681); +pub const MenuOpened_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xebe2e945_66ca_4ed1_9ff8_2ad7df0a1b08); +pub const Menu_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2e9b1440_0ea8_41fd_b374_c1ea6f503cd1); +pub const MultipleView_CurrentView_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7a81a67a_b94f_4875_918b_65c8d2f998e5); +pub const MultipleView_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x547a6ae4_113f_47c4_850f_db4dfa466b1d); +pub const MultipleView_SupportedViews_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8d5db9fd_ce3c_4ae7_b788_400a3c645547); +pub const NAVDIR_DOWN: u32 = 2u32; +pub const NAVDIR_FIRSTCHILD: u32 = 7u32; +pub const NAVDIR_LASTCHILD: u32 = 8u32; +pub const NAVDIR_LEFT: u32 = 3u32; +pub const NAVDIR_MAX: u32 = 9u32; +pub const NAVDIR_MIN: u32 = 0u32; +pub const NAVDIR_NEXT: u32 = 5u32; +pub const NAVDIR_PREVIOUS: u32 = 6u32; +pub const NAVDIR_RIGHT: u32 = 4u32; +pub const NAVDIR_UP: u32 = 1u32; +pub const Name_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc3a6921b_4a99_44f1_bca6_61187052c431); +pub const NavigateDirection_FirstChild: NavigateDirection = 3i32; +pub const NavigateDirection_LastChild: NavigateDirection = 4i32; +pub const NavigateDirection_NextSibling: NavigateDirection = 1i32; +pub const NavigateDirection_Parent: NavigateDirection = 0i32; +pub const NavigateDirection_PreviousSibling: NavigateDirection = 2i32; +pub const NewNativeWindowHandle_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5196b33b_380a_4982_95e1_91f3ef60e024); +pub const NormalizeState_Custom: NormalizeState = 2i32; +pub const NormalizeState_None: NormalizeState = 0i32; +pub const NormalizeState_View: NormalizeState = 1i32; +pub const NotificationKind_ActionAborted: NotificationKind = 3i32; +pub const NotificationKind_ActionCompleted: NotificationKind = 2i32; +pub const NotificationKind_ItemAdded: NotificationKind = 0i32; +pub const NotificationKind_ItemRemoved: NotificationKind = 1i32; +pub const NotificationKind_Other: NotificationKind = 4i32; +pub const NotificationProcessing_All: NotificationProcessing = 2i32; +pub const NotificationProcessing_CurrentThenMostRecent: NotificationProcessing = 4i32; +pub const NotificationProcessing_ImportantAll: NotificationProcessing = 0i32; +pub const NotificationProcessing_ImportantMostRecent: NotificationProcessing = 1i32; +pub const NotificationProcessing_MostRecent: NotificationProcessing = 3i32; +pub const Notification_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x72c5a2f7_9788_480f_b8eb_4dee00f6186f); +pub const ObjectModel_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3e04acfe_08fc_47ec_96bc_353fa3b34aa7); +pub const Off: LiveSetting = 0i32; +pub const OptimizeForVisualContent_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a852250_c75a_4e5d_b858_e381b0f78861); +pub const OrientationType_Horizontal: OrientationType = 1i32; +pub const OrientationType_None: OrientationType = 0i32; +pub const OrientationType_Vertical: OrientationType = 2i32; +pub const Orientation_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa01eee62_3884_4415_887e_678ec21e39ba); +pub const OutlineColor_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc395d6c0_4b55_4762_a073_fd303a634f52); +pub const OutlineStyles_Embossed: OutlineStyles = 8i32; +pub const OutlineStyles_Engraved: OutlineStyles = 4i32; +pub const OutlineStyles_None: OutlineStyles = 0i32; +pub const OutlineStyles_Outline: OutlineStyles = 1i32; +pub const OutlineStyles_Shadow: OutlineStyles = 2i32; +pub const OutlineThickness_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13e67cc7_dac2_4888_bdd3_375c62fa9618); +pub const PROPID_ACC_DEFAULTACTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x180c072b_c27f_43c7_9922_f63562a4632b); +pub const PROPID_ACC_DESCRIPTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d48dfe4_bd3f_491f_a648_492d6f20c588); +pub const PROPID_ACC_DESCRIPTIONMAP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ff1435f_8a14_477b_b226_a0abe279975d); +pub const PROPID_ACC_DODEFAULTACTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ba09523_2e3b_49a6_a059_59682a3c48fd); +pub const PROPID_ACC_FOCUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6eb335df_1c29_4127_b12c_dee9fd157f2b); +pub const PROPID_ACC_HELP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc831e11f_44db_4a99_9768_cb8f978b7231); +pub const PROPID_ACC_HELPTOPIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x787d1379_8ede_440b_8aec_11f7bf9030b3); +pub const PROPID_ACC_KEYBOARDSHORTCUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7d9bceee_7d1e_4979_9382_5180f4172c34); +pub const PROPID_ACC_NAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x608d3df8_8128_4aa7_a428_f55e49267291); +pub const PROPID_ACC_NAV_DOWN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x031670ed_3cdf_48d2_9613_138f2dd8a668); +pub const PROPID_ACC_NAV_FIRSTCHILD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcfd02558_557b_4c67_84f9_2a09fce40749); +pub const PROPID_ACC_NAV_LASTCHILD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x302ecaa5_48d5_4f8d_b671_1a8d20a77832); +pub const PROPID_ACC_NAV_LEFT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x228086cb_82f1_4a39_8705_dcdc0fff92f5); +pub const PROPID_ACC_NAV_NEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1cdc5455_8cd9_4c92_a371_3939a2fe3eee); +pub const PROPID_ACC_NAV_PREV: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x776d3891_c73b_4480_b3f6_076a16a15af6); +pub const PROPID_ACC_NAV_RIGHT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcd211d9f_e1cb_4fe5_a77c_920b884d095b); +pub const PROPID_ACC_NAV_UP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x016e1a2b_1a4e_4767_8612_3386f66935ec); +pub const PROPID_ACC_PARENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x474c22b6_ffc2_467a_b1b5_e958b4657330); +pub const PROPID_ACC_ROLE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb905ff2_7bd1_4c05_b3c8_e6c241364d70); +pub const PROPID_ACC_ROLEMAP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf79acda2_140d_4fe6_8914_208476328269); +pub const PROPID_ACC_SELECTION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb99d073c_d731_405b_9061_d95e8f842984); +pub const PROPID_ACC_STATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa8d4d5b0_0a21_42d0_a5c0_514e984f457b); +pub const PROPID_ACC_STATEMAP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43946c5e_0ac0_4042_b525_07bbdbe17fa7); +pub const PROPID_ACC_VALUE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x123fe443_211a_4615_9527_c45a7e93717a); +pub const PROPID_ACC_VALUEMAP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xda1c3d79_fc5c_420e_b399_9d1533549e75); +pub const Pane_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c2b3f5b_9182_42a3_8dec_8c04c1ee634d); +pub const Polite: LiveSetting = 1i32; +pub const PositionInSet_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33d1dc54_641e_4d76_a6b1_13f341c1f896); +pub const ProcessId_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x40499998_9c31_4245_a403_87320e59eaf6); +pub const ProgressBar_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x228c9f86_c36c_47bb_9fb6_a5834bfc53a4); +pub const PropertyConditionFlags_IgnoreCase: PropertyConditionFlags = 1i32; +pub const PropertyConditionFlags_MatchSubstring: PropertyConditionFlags = 2i32; +pub const PropertyConditionFlags_None: PropertyConditionFlags = 0i32; +pub const ProviderDescription_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdca5708a_c16b_4cd9_b889_beb16a804904); +pub const ProviderOptions_ClientSideProvider: ProviderOptions = 1i32; +pub const ProviderOptions_HasNativeIAccessible: ProviderOptions = 128i32; +pub const ProviderOptions_NonClientAreaProvider: ProviderOptions = 4i32; +pub const ProviderOptions_OverrideProvider: ProviderOptions = 8i32; +pub const ProviderOptions_ProviderOwnsSetFocus: ProviderOptions = 16i32; +pub const ProviderOptions_RefuseNonClientSupport: ProviderOptions = 64i32; +pub const ProviderOptions_ServerSideProvider: ProviderOptions = 2i32; +pub const ProviderOptions_UseClientCoordinates: ProviderOptions = 256i32; +pub const ProviderOptions_UseComThreading: ProviderOptions = 32i32; +pub const ProviderType_BaseHwnd: ProviderType = 0i32; +pub const ProviderType_NonClientArea: ProviderType = 2i32; +pub const ProviderType_Proxy: ProviderType = 1i32; +pub const ROLE_SYSTEM_ALERT: u32 = 8u32; +pub const ROLE_SYSTEM_ANIMATION: u32 = 54u32; +pub const ROLE_SYSTEM_APPLICATION: u32 = 14u32; +pub const ROLE_SYSTEM_BORDER: u32 = 19u32; +pub const ROLE_SYSTEM_BUTTONDROPDOWN: u32 = 56u32; +pub const ROLE_SYSTEM_BUTTONDROPDOWNGRID: u32 = 58u32; +pub const ROLE_SYSTEM_BUTTONMENU: u32 = 57u32; +pub const ROLE_SYSTEM_CARET: u32 = 7u32; +pub const ROLE_SYSTEM_CELL: u32 = 29u32; +pub const ROLE_SYSTEM_CHARACTER: u32 = 32u32; +pub const ROLE_SYSTEM_CHART: u32 = 17u32; +pub const ROLE_SYSTEM_CHECKBUTTON: u32 = 44u32; +pub const ROLE_SYSTEM_CLIENT: u32 = 10u32; +pub const ROLE_SYSTEM_CLOCK: u32 = 61u32; +pub const ROLE_SYSTEM_COLUMN: u32 = 27u32; +pub const ROLE_SYSTEM_COLUMNHEADER: u32 = 25u32; +pub const ROLE_SYSTEM_COMBOBOX: u32 = 46u32; +pub const ROLE_SYSTEM_CURSOR: u32 = 6u32; +pub const ROLE_SYSTEM_DIAGRAM: u32 = 53u32; +pub const ROLE_SYSTEM_DIAL: u32 = 49u32; +pub const ROLE_SYSTEM_DIALOG: u32 = 18u32; +pub const ROLE_SYSTEM_DOCUMENT: u32 = 15u32; +pub const ROLE_SYSTEM_DROPLIST: u32 = 47u32; +pub const ROLE_SYSTEM_EQUATION: u32 = 55u32; +pub const ROLE_SYSTEM_GRAPHIC: u32 = 40u32; +pub const ROLE_SYSTEM_GRIP: u32 = 4u32; +pub const ROLE_SYSTEM_GROUPING: u32 = 20u32; +pub const ROLE_SYSTEM_HELPBALLOON: u32 = 31u32; +pub const ROLE_SYSTEM_HOTKEYFIELD: u32 = 50u32; +pub const ROLE_SYSTEM_INDICATOR: u32 = 39u32; +pub const ROLE_SYSTEM_IPADDRESS: u32 = 63u32; +pub const ROLE_SYSTEM_LINK: u32 = 30u32; +pub const ROLE_SYSTEM_LIST: u32 = 33u32; +pub const ROLE_SYSTEM_LISTITEM: u32 = 34u32; +pub const ROLE_SYSTEM_MENUBAR: u32 = 2u32; +pub const ROLE_SYSTEM_MENUITEM: u32 = 12u32; +pub const ROLE_SYSTEM_MENUPOPUP: u32 = 11u32; +pub const ROLE_SYSTEM_OUTLINE: u32 = 35u32; +pub const ROLE_SYSTEM_OUTLINEBUTTON: u32 = 64u32; +pub const ROLE_SYSTEM_OUTLINEITEM: u32 = 36u32; +pub const ROLE_SYSTEM_PAGETAB: u32 = 37u32; +pub const ROLE_SYSTEM_PAGETABLIST: u32 = 60u32; +pub const ROLE_SYSTEM_PANE: u32 = 16u32; +pub const ROLE_SYSTEM_PROGRESSBAR: u32 = 48u32; +pub const ROLE_SYSTEM_PROPERTYPAGE: u32 = 38u32; +pub const ROLE_SYSTEM_PUSHBUTTON: u32 = 43u32; +pub const ROLE_SYSTEM_RADIOBUTTON: u32 = 45u32; +pub const ROLE_SYSTEM_ROW: u32 = 28u32; +pub const ROLE_SYSTEM_ROWHEADER: u32 = 26u32; +pub const ROLE_SYSTEM_SCROLLBAR: u32 = 3u32; +pub const ROLE_SYSTEM_SEPARATOR: u32 = 21u32; +pub const ROLE_SYSTEM_SLIDER: u32 = 51u32; +pub const ROLE_SYSTEM_SOUND: u32 = 5u32; +pub const ROLE_SYSTEM_SPINBUTTON: u32 = 52u32; +pub const ROLE_SYSTEM_SPLITBUTTON: u32 = 62u32; +pub const ROLE_SYSTEM_STATICTEXT: u32 = 41u32; +pub const ROLE_SYSTEM_STATUSBAR: u32 = 23u32; +pub const ROLE_SYSTEM_TABLE: u32 = 24u32; +pub const ROLE_SYSTEM_TEXT: u32 = 42u32; +pub const ROLE_SYSTEM_TITLEBAR: u32 = 1u32; +pub const ROLE_SYSTEM_TOOLBAR: u32 = 22u32; +pub const ROLE_SYSTEM_TOOLTIP: u32 = 13u32; +pub const ROLE_SYSTEM_WHITESPACE: u32 = 59u32; +pub const ROLE_SYSTEM_WINDOW: u32 = 9u32; +pub const RadioButton_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3bdb49db_fe2c_4483_b3e1_e57f219440c6); +pub const RangeValue_IsReadOnly_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25fa1055_debf_4373_a79e_1f1a1908d3c4); +pub const RangeValue_LargeChange_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa1f96325_3a3d_4b44_8e1f_4a46d9844019); +pub const RangeValue_Maximum_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x19319914_f979_4b35_a1a6_d37e05433473); +pub const RangeValue_Minimum_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x78cbd3b2_684d_4860_af93_d1f95cb022fd); +pub const RangeValue_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x18b00d87_b1c9_476a_bfbd_5f0bdb926f63); +pub const RangeValue_SmallChange_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x81c2c457_3941_4107_9975_139760f7c072); +pub const RangeValue_Value_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x131f5d98_c50c_489d_abe5_ae220898c5f7); +pub const Rotation_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x767cdc7d_aec0_4110_ad32_30edd403492e); +pub const RowOrColumnMajor_ColumnMajor: RowOrColumnMajor = 1i32; +pub const RowOrColumnMajor_Indeterminate: RowOrColumnMajor = 2i32; +pub const RowOrColumnMajor_RowMajor: RowOrColumnMajor = 0i32; +pub const RuntimeId_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa39eebfa_7fba_4c89_b4d4_b99e2de7d160); +pub const SELFLAG_ADDSELECTION: u32 = 8u32; +pub const SELFLAG_EXTENDSELECTION: u32 = 4u32; +pub const SELFLAG_NONE: u32 = 0u32; +pub const SELFLAG_REMOVESELECTION: u32 = 16u32; +pub const SELFLAG_TAKEFOCUS: u32 = 1u32; +pub const SELFLAG_TAKESELECTION: u32 = 2u32; +pub const SELFLAG_VALID: u32 = 31u32; +pub const SERKF_AVAILABLE: SERIALKEYS_FLAGS = 2u32; +pub const SERKF_INDICATOR: SERIALKEYS_FLAGS = 4u32; +pub const SERKF_SERIALKEYSON: SERIALKEYS_FLAGS = 1u32; +pub const SID_ControlElementProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf4791d68_e254_4ba3_9a53_26a5c5497946); +pub const SID_IsUIAutomationObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb96fdb85_7204_4724_842b_c7059dedb9d0); +pub const SKF_AUDIBLEFEEDBACK: STICKYKEYS_FLAGS = 64u32; +pub const SKF_AVAILABLE: STICKYKEYS_FLAGS = 2u32; +pub const SKF_CONFIRMHOTKEY: STICKYKEYS_FLAGS = 8u32; +pub const SKF_HOTKEYACTIVE: STICKYKEYS_FLAGS = 4u32; +pub const SKF_HOTKEYSOUND: STICKYKEYS_FLAGS = 16u32; +pub const SKF_INDICATOR: STICKYKEYS_FLAGS = 32u32; +pub const SKF_LALTLATCHED: STICKYKEYS_FLAGS = 268435456u32; +pub const SKF_LALTLOCKED: STICKYKEYS_FLAGS = 1048576u32; +pub const SKF_LCTLLATCHED: STICKYKEYS_FLAGS = 67108864u32; +pub const SKF_LCTLLOCKED: STICKYKEYS_FLAGS = 262144u32; +pub const SKF_LSHIFTLATCHED: STICKYKEYS_FLAGS = 16777216u32; +pub const SKF_LSHIFTLOCKED: STICKYKEYS_FLAGS = 65536u32; +pub const SKF_LWINLATCHED: STICKYKEYS_FLAGS = 1073741824u32; +pub const SKF_LWINLOCKED: STICKYKEYS_FLAGS = 4194304u32; +pub const SKF_RALTLATCHED: STICKYKEYS_FLAGS = 536870912u32; +pub const SKF_RALTLOCKED: STICKYKEYS_FLAGS = 2097152u32; +pub const SKF_RCTLLATCHED: STICKYKEYS_FLAGS = 134217728u32; +pub const SKF_RCTLLOCKED: STICKYKEYS_FLAGS = 524288u32; +pub const SKF_RSHIFTLATCHED: STICKYKEYS_FLAGS = 33554432u32; +pub const SKF_RSHIFTLOCKED: STICKYKEYS_FLAGS = 131072u32; +pub const SKF_RWINLATCHED: STICKYKEYS_FLAGS = 2147483648u32; +pub const SKF_RWINLOCKED: STICKYKEYS_FLAGS = 8388608u32; +pub const SKF_STICKYKEYSON: STICKYKEYS_FLAGS = 1u32; +pub const SKF_TRISTATE: STICKYKEYS_FLAGS = 128u32; +pub const SKF_TWOKEYSOFF: STICKYKEYS_FLAGS = 256u32; +pub const SSF_AVAILABLE: SOUNDSENTRY_FLAGS = 2u32; +pub const SSF_INDICATOR: SOUNDSENTRY_FLAGS = 4u32; +pub const SSF_SOUNDSENTRYON: SOUNDSENTRY_FLAGS = 1u32; +pub const SSGF_DISPLAY: SOUND_SENTRY_GRAPHICS_EFFECT = 3u32; +pub const SSGF_NONE: SOUND_SENTRY_GRAPHICS_EFFECT = 0u32; +pub const SSTF_BORDER: SOUNDSENTRY_TEXT_EFFECT = 2u32; +pub const SSTF_CHARS: SOUNDSENTRY_TEXT_EFFECT = 1u32; +pub const SSTF_DISPLAY: SOUNDSENTRY_TEXT_EFFECT = 3u32; +pub const SSTF_NONE: SOUNDSENTRY_TEXT_EFFECT = 0u32; +pub const SSWF_CUSTOM: SOUNDSENTRY_WINDOWS_EFFECT = 4u32; +pub const SSWF_DISPLAY: SOUNDSENTRY_WINDOWS_EFFECT = 3u32; +pub const SSWF_NONE: SOUNDSENTRY_WINDOWS_EFFECT = 0u32; +pub const SSWF_TITLE: SOUNDSENTRY_WINDOWS_EFFECT = 1u32; +pub const SSWF_WINDOW: SOUNDSENTRY_WINDOWS_EFFECT = 2u32; +pub const STATE_SYSTEM_HASPOPUP: u32 = 1073741824u32; +pub const STATE_SYSTEM_NORMAL: u32 = 0u32; +pub const SayAsInterpretAs_Address: SayAsInterpretAs = 11i32; +pub const SayAsInterpretAs_Alphanumeric: SayAsInterpretAs = 12i32; +pub const SayAsInterpretAs_Cardinal: SayAsInterpretAs = 2i32; +pub const SayAsInterpretAs_Currency: SayAsInterpretAs = 8i32; +pub const SayAsInterpretAs_Date: SayAsInterpretAs = 5i32; +pub const SayAsInterpretAs_Date_DayMonth: SayAsInterpretAs = 20i32; +pub const SayAsInterpretAs_Date_DayMonthYear: SayAsInterpretAs = 16i32; +pub const SayAsInterpretAs_Date_MonthDay: SayAsInterpretAs = 21i32; +pub const SayAsInterpretAs_Date_MonthDayYear: SayAsInterpretAs = 15i32; +pub const SayAsInterpretAs_Date_MonthYear: SayAsInterpretAs = 19i32; +pub const SayAsInterpretAs_Date_Year: SayAsInterpretAs = 22i32; +pub const SayAsInterpretAs_Date_YearMonth: SayAsInterpretAs = 18i32; +pub const SayAsInterpretAs_Date_YearMonthDay: SayAsInterpretAs = 17i32; +pub const SayAsInterpretAs_Media: SayAsInterpretAs = 14i32; +pub const SayAsInterpretAs_Name: SayAsInterpretAs = 13i32; +pub const SayAsInterpretAs_Net: SayAsInterpretAs = 9i32; +pub const SayAsInterpretAs_None: SayAsInterpretAs = 0i32; +pub const SayAsInterpretAs_Number: SayAsInterpretAs = 4i32; +pub const SayAsInterpretAs_Ordinal: SayAsInterpretAs = 3i32; +pub const SayAsInterpretAs_Spell: SayAsInterpretAs = 1i32; +pub const SayAsInterpretAs_Telephone: SayAsInterpretAs = 7i32; +pub const SayAsInterpretAs_Time: SayAsInterpretAs = 6i32; +pub const SayAsInterpretAs_Time_HoursMinutes12: SayAsInterpretAs = 24i32; +pub const SayAsInterpretAs_Time_HoursMinutes24: SayAsInterpretAs = 26i32; +pub const SayAsInterpretAs_Time_HoursMinutesSeconds12: SayAsInterpretAs = 23i32; +pub const SayAsInterpretAs_Time_HoursMinutesSeconds24: SayAsInterpretAs = 25i32; +pub const SayAsInterpretAs_Url: SayAsInterpretAs = 10i32; +pub const ScrollAmount_LargeDecrement: ScrollAmount = 0i32; +pub const ScrollAmount_LargeIncrement: ScrollAmount = 3i32; +pub const ScrollAmount_NoAmount: ScrollAmount = 2i32; +pub const ScrollAmount_SmallDecrement: ScrollAmount = 1i32; +pub const ScrollAmount_SmallIncrement: ScrollAmount = 4i32; +pub const ScrollBar_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdaf34b36_5065_4946_b22f_92595fc0751a); +pub const ScrollItem_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4591d005_a803_4d5c_b4d5_8d2800f906a7); +pub const Scroll_HorizontalScrollPercent_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc7c13c0e_eb21_47ff_acc4_b5a3350f5191); +pub const Scroll_HorizontalViewSize_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x70c2e5d4_fcb0_4713_a9aa_af92ff79e4cd); +pub const Scroll_HorizontallyScrollable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8b925147_28cd_49ae_bd63_f44118d2e719); +pub const Scroll_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x895fa4b4_759d_4c50_8e15_03460672003c); +pub const Scroll_VerticalScrollPercent_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6c8d7099_b2a8_4948_bff7_3cf9058bfefb); +pub const Scroll_VerticalViewSize_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xde6a2e22_d8c7_40c5_83ba_e5f681d53108); +pub const Scroll_VerticallyScrollable_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x89164798_0068_4315_b89a_1e7cfbbc3dfc); +pub const Selection2_CurrentSelectedItem_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x34257c26_83b5_41a6_939c_ae841c136236); +pub const Selection2_FirstSelectedItem_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcc24ea67_369c_4e55_9ff7_38da69540c29); +pub const Selection2_ItemCount_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbb49eb9f_456d_4048_b591_9c2026b84636); +pub const Selection2_LastSelectedItem_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcf7bda90_2d83_49f8_860c_9ce394cf89b4); +pub const SelectionItem_ElementAddedToSelectionEvent_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3c822dd1_c407_4dba_91dd_79d4aed0aec6); +pub const SelectionItem_ElementRemovedFromSelectionEvent_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x097fa8a9_7079_41af_8b9c_0934d8305e5c); +pub const SelectionItem_ElementSelectedEvent_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9c7dbfb_4ebe_4532_aaf4_008cf647233c); +pub const SelectionItem_IsSelected_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf122835f_cd5f_43df_b79d_4b849e9e6020); +pub const SelectionItem_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9bc64eeb_87c7_4b28_94bb_4d9fa437b6ef); +pub const SelectionItem_SelectionContainer_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa4365b6e_9c1e_4b63_8b53_c2421dd1e8fb); +pub const Selection_CanSelectMultiple_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49d73da5_c883_4500_883d_8fcf8daf6cbe); +pub const Selection_InvalidatedEvent_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcac14904_16b4_4b53_8e47_4cb1df267bb7); +pub const Selection_IsSelectionRequired_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb1ae4422_63fe_44e7_a5a5_a738c829b19a); +pub const Selection_Pattern2_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfba25cab_ab98_49f7_a7dc_fe539dc15be7); +pub const Selection_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66e3b7e8_d821_4d25_8761_435d2c8b253f); +pub const Selection_Selection_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaa6dc2a2_0e2b_4d38_96d5_34e470b81853); +pub const SemanticZoom_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5fd34a43_061e_42c8_b589_9dccf74bc43a); +pub const Separator_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8767eba3_2a63_4ab0_ac8d_aa50e23de978); +pub const SizeOfSet_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1600d33c_3b9f_4369_9431_aa293f344cf1); +pub const Size_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2b5f761d_f885_4404_973f_9b1d98e36d8f); +pub const Slider_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb033c24b_3b35_4cea_b609_763682fa660b); +pub const Spinner_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x60cc4b38_3cb1_4161_b442_c6b726c17825); +pub const SplitButton_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7011f01f_4ace_4901_b461_920a6f1ca650); +pub const SpreadsheetItem_AnnotationObjects_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa3194c38_c9bc_4604_9396_ae3f9f457f7b); +pub const SpreadsheetItem_AnnotationTypes_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc70c51d0_d602_4b45_afbc_b4712b96d72b); +pub const SpreadsheetItem_Formula_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe602e47d_1b47_4bea_87cf_3b0b0b5c15b6); +pub const SpreadsheetItem_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x32cf83ff_f1a8_4a8c_8658_d47ba74e20ba); +pub const Spreadsheet_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a5b24c9_9d1e_4b85_9e44_c02e3169b10b); +pub const StatusBar_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd45e7d1b_5873_475f_95a4_0433e1f1b00a); +pub const StructureChangeType_ChildAdded: StructureChangeType = 0i32; +pub const StructureChangeType_ChildRemoved: StructureChangeType = 1i32; +pub const StructureChangeType_ChildrenBulkAdded: StructureChangeType = 3i32; +pub const StructureChangeType_ChildrenBulkRemoved: StructureChangeType = 4i32; +pub const StructureChangeType_ChildrenInvalidated: StructureChangeType = 2i32; +pub const StructureChangeType_ChildrenReordered: StructureChangeType = 5i32; +pub const StructureChanged_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x59977961_3edd_4b11_b13b_676b2a2a6ca9); +pub const StructuredMarkup_CompositionComplete_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc48a3c17_677a_4047_a68d_fc1257528aef); +pub const StructuredMarkup_Deleted_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf9d0a020_e1c1_4ecf_b9aa_52efde7e41e1); +pub const StructuredMarkup_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xabbd0878_8665_4f5c_94fc_36e7d8bb706b); +pub const StructuredMarkup_SelectionChanged_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa7c815f7_ff9f_41c7_a3a7_ab6cbfdb4903); +pub const StyleId_BulletedList: UIA_STYLE_ID = 70015u32; +pub const StyleId_BulletedList_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5963ed64_6426_4632_8caf_a32ad402d91a); +pub const StyleId_Custom: UIA_STYLE_ID = 70000u32; +pub const StyleId_Custom_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xef2edd3e_a999_4b7c_a378_09bbd52a3516); +pub const StyleId_Emphasis: UIA_STYLE_ID = 70013u32; +pub const StyleId_Emphasis_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xca6e7dbe_355e_4820_95a0_925f041d3470); +pub const StyleId_Heading1: UIA_STYLE_ID = 70001u32; +pub const StyleId_Heading1_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f7e8f69_6866_4621_930c_9a5d0ca5961c); +pub const StyleId_Heading2: UIA_STYLE_ID = 70002u32; +pub const StyleId_Heading2_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbaa9b241_5c69_469d_85ad_474737b52b14); +pub const StyleId_Heading3: UIA_STYLE_ID = 70003u32; +pub const StyleId_Heading3_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbf8be9d2_d8b8_4ec5_8c52_9cfb0d035970); +pub const StyleId_Heading4: UIA_STYLE_ID = 70004u32; +pub const StyleId_Heading4_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8436ffc0_9578_45fc_83a4_ff40053315dd); +pub const StyleId_Heading5: UIA_STYLE_ID = 70005u32; +pub const StyleId_Heading5_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x909f424d_0dbf_406e_97bb_4e773d9798f7); +pub const StyleId_Heading6: UIA_STYLE_ID = 70006u32; +pub const StyleId_Heading6_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x89d23459_5d5b_4824_a420_11d3ed82e40f); +pub const StyleId_Heading7: UIA_STYLE_ID = 70007u32; +pub const StyleId_Heading7_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa3790473_e9ae_422d_b8e3_3b675c6181a4); +pub const StyleId_Heading8: UIA_STYLE_ID = 70008u32; +pub const StyleId_Heading8_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2bc14145_a40c_4881_84ae_f2235685380c); +pub const StyleId_Heading9: UIA_STYLE_ID = 70009u32; +pub const StyleId_Heading9_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc70d9133_bb2a_43d3_8ac6_33657884b0f0); +pub const StyleId_Normal: UIA_STYLE_ID = 70012u32; +pub const StyleId_Normal_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcd14d429_e45e_4475_a1c5_7f9e6be96eba); +pub const StyleId_NumberedList: UIA_STYLE_ID = 70016u32; +pub const StyleId_NumberedList_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1e96dbd5_64c3_43d0_b1ee_b53b06e3eddf); +pub const StyleId_Quote: UIA_STYLE_ID = 70014u32; +pub const StyleId_Quote_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5d1c21ea_8195_4f6c_87ea_5dabece64c1d); +pub const StyleId_Subtitle: UIA_STYLE_ID = 70011u32; +pub const StyleId_Subtitle_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb5d9fc17_5d6f_4420_b439_7cb19ad434e2); +pub const StyleId_Title: UIA_STYLE_ID = 70010u32; +pub const StyleId_Title_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x15d8201a_ffcf_481f_b0a1_30b63be98f07); +pub const Styles_ExtendedProperties_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf451cda0_ba0a_4681_b0b0_0dbdb53e58f3); +pub const Styles_FillColor_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x63eff97a_a1c5_4b1d_84eb_b765f2edd632); +pub const Styles_FillPatternColor_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x939a59fe_8fbd_4e75_a271_ac4595195163); +pub const Styles_FillPatternStyle_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x81cf651f_482b_4451_a30a_e1545e554fb8); +pub const Styles_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ae62655_da72_4d60_a153_e5aa6988e3bf); +pub const Styles_Shape_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc71a23f8_778c_400d_8458_3b543e526984); +pub const Styles_StyleId_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xda82852f_3817_4233_82af_02279e72cc77); +pub const Styles_StyleName_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1c12b035_05d1_4f55_9e8e_1489f3ff550d); +pub const SupportedTextSelection_Multiple: SupportedTextSelection = 2i32; +pub const SupportedTextSelection_None: SupportedTextSelection = 0i32; +pub const SupportedTextSelection_Single: SupportedTextSelection = 1i32; +pub const SynchronizedInputType_KeyDown: SynchronizedInputType = 2i32; +pub const SynchronizedInputType_KeyUp: SynchronizedInputType = 1i32; +pub const SynchronizedInputType_LeftMouseDown: SynchronizedInputType = 8i32; +pub const SynchronizedInputType_LeftMouseUp: SynchronizedInputType = 4i32; +pub const SynchronizedInputType_RightMouseDown: SynchronizedInputType = 32i32; +pub const SynchronizedInputType_RightMouseUp: SynchronizedInputType = 16i32; +pub const SynchronizedInput_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x05c288a6_c47b_488b_b653_33977a551b8b); +pub const SystemAlert_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd271545d_7a3a_47a7_8474_81d29a2451c9); +pub const TabItem_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c6a634f_921b_4e6e_b26e_08fcb0798f4c); +pub const Tab_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38cd1f2d_337a_4bd2_a5e3_adb469e30bd3); +pub const TableItem_ColumnHeaderItems_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x967a56a3_74b6_431e_8de6_99c411031c58); +pub const TableItem_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdf1343bd_1888_4a29_a50c_b92e6de37f6f); +pub const TableItem_RowHeaderItems_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb3f853a0_0574_4cd8_bcd7_ed5923572d97); +pub const Table_ColumnHeaders_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaff1d72b_968d_42b1_b459_150b299da664); +pub const Table_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x773bfa0e_5bc4_4deb_921b_de7b3206229e); +pub const Table_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc415218e_a028_461e_aa92_8f925cf79351); +pub const Table_RowHeaders_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd9e35b87_6eb8_4562_aac6_a8a9075236a8); +pub const Table_RowOrColumnMajor_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x83be75c3_29fe_4a30_85e1_2a6277fd106e); +pub const TextChild_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7533cab7_3bfe_41ef_9e85_e2638cbe169e); +pub const TextDecorationLineStyle_Dash: TextDecorationLineStyle = 5i32; +pub const TextDecorationLineStyle_DashDot: TextDecorationLineStyle = 6i32; +pub const TextDecorationLineStyle_DashDotDot: TextDecorationLineStyle = 7i32; +pub const TextDecorationLineStyle_Dot: TextDecorationLineStyle = 4i32; +pub const TextDecorationLineStyle_Double: TextDecorationLineStyle = 3i32; +pub const TextDecorationLineStyle_DoubleWavy: TextDecorationLineStyle = 11i32; +pub const TextDecorationLineStyle_LongDash: TextDecorationLineStyle = 13i32; +pub const TextDecorationLineStyle_None: TextDecorationLineStyle = 0i32; +pub const TextDecorationLineStyle_Other: TextDecorationLineStyle = -1i32; +pub const TextDecorationLineStyle_Single: TextDecorationLineStyle = 1i32; +pub const TextDecorationLineStyle_ThickDash: TextDecorationLineStyle = 14i32; +pub const TextDecorationLineStyle_ThickDashDot: TextDecorationLineStyle = 15i32; +pub const TextDecorationLineStyle_ThickDashDotDot: TextDecorationLineStyle = 16i32; +pub const TextDecorationLineStyle_ThickDot: TextDecorationLineStyle = 17i32; +pub const TextDecorationLineStyle_ThickLongDash: TextDecorationLineStyle = 18i32; +pub const TextDecorationLineStyle_ThickSingle: TextDecorationLineStyle = 9i32; +pub const TextDecorationLineStyle_ThickWavy: TextDecorationLineStyle = 12i32; +pub const TextDecorationLineStyle_Wavy: TextDecorationLineStyle = 8i32; +pub const TextDecorationLineStyle_WordsOnly: TextDecorationLineStyle = 2i32; +pub const TextEditChangeType_AutoComplete: TextEditChangeType = 4i32; +pub const TextEditChangeType_AutoCorrect: TextEditChangeType = 1i32; +pub const TextEditChangeType_Composition: TextEditChangeType = 2i32; +pub const TextEditChangeType_CompositionFinalized: TextEditChangeType = 3i32; +pub const TextEditChangeType_None: TextEditChangeType = 0i32; +pub const TextEdit_ConversionTargetChanged_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3388c183_ed4f_4c8b_9baa_364d51d8847f); +pub const TextEdit_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x69f3ff89_5af9_4c75_9340_f2de292e4591); +pub const TextEdit_TextChanged_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x120b0308_ec22_4eb8_9c98_9867cda1b165); +pub const TextPatternRangeEndpoint_End: TextPatternRangeEndpoint = 1i32; +pub const TextPatternRangeEndpoint_Start: TextPatternRangeEndpoint = 0i32; +pub const TextUnit_Character: TextUnit = 0i32; +pub const TextUnit_Document: TextUnit = 6i32; +pub const TextUnit_Format: TextUnit = 1i32; +pub const TextUnit_Line: TextUnit = 3i32; +pub const TextUnit_Page: TextUnit = 5i32; +pub const TextUnit_Paragraph: TextUnit = 4i32; +pub const TextUnit_Word: TextUnit = 2i32; +pub const Text_AfterParagraphSpacing_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x588cbb38_e62f_497c_b5d1_ccdf0ee823d8); +pub const Text_AfterSpacing_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x588cbb38_e62f_497c_b5d1_ccdf0ee823d8); +pub const Text_AnimationStyle_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x628209f0_7c9a_4d57_be64_1f1836571ff5); +pub const Text_AnnotationObjects_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xff41cf68_e7ab_40b9_8c72_72a8ed94017d); +pub const Text_AnnotationTypes_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xad2eb431_ee4e_4be1_a7ba_5559155a73ef); +pub const Text_BackgroundColor_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfdc49a07_583d_4f17_ad27_77fc832a3c0b); +pub const Text_BeforeParagraphSpacing_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbe7b0ab1_c822_4a24_85e9_c8f2650fc79c); +pub const Text_BeforeSpacing_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbe7b0ab1_c822_4a24_85e9_c8f2650fc79c); +pub const Text_BulletStyle_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc1097c90_d5c4_4237_9781_3bec8ba54e48); +pub const Text_CapStyle_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb059c50_92cc_49a5_ba8f_0aa872bba2f3); +pub const Text_CaretBidiMode_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x929ee7a6_51d3_4715_96dc_b694fa24a168); +pub const Text_CaretPosition_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb227b131_9889_4752_a91b_733efdc5c5a0); +pub const Text_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae9772dc_d331_4f09_be20_7e6dfaf07b0a); +pub const Text_Culture_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc2025af9_a42d_4ced_a1fb_c6746315222e); +pub const Text_FontName_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x64e63ba8_f2e5_476e_a477_1734feaaf726); +pub const Text_FontSize_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdc5eeeff_0506_4673_93f2_377e4a8e01f1); +pub const Text_FontWeight_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6fc02359_b316_4f5f_b401_f1ce55741853); +pub const Text_ForegroundColor_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x72d1c95d_5e60_471a_96b1_6c1b3b77a436); +pub const Text_HorizontalTextAlignment_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04ea6161_fba3_477a_952a_bb326d026a5b); +pub const Text_IndentationFirstLine_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x206f9ad5_c1d3_424a_8182_6da9a7f3d632); +pub const Text_IndentationLeading_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5cf66bac_2d45_4a4b_b6c9_f7221d2815b0); +pub const Text_IndentationTrailing_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x97ff6c0f_1ce4_408a_b67b_94d83eb69bf2); +pub const Text_IsActive_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf5a4e533_e1b8_436b_935d_b57aa3f558c4); +pub const Text_IsHidden_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x360182fb_bdd7_47f6_ab69_19e33f8a3344); +pub const Text_IsItalic_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfce12a56_1336_4a34_9663_1bab47239320); +pub const Text_IsReadOnly_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa738156b_ca3e_495e_9514_833c440feb11); +pub const Text_IsSubscript_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf0ead858_8f53_413c_873f_1a7d7f5e0de4); +pub const Text_IsSuperscript_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xda706ee4_b3aa_4645_a41f_cd25157dea76); +pub const Text_LineSpacing_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x63ff70ae_d943_4b47_8ab7_a7a033d3214b); +pub const Text_Link_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb38ef51d_9e8d_4e46_9144_56ebe177329b); +pub const Text_MarginBottom_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7ee593c4_72b4_4cac_9271_3ed24b0e4d42); +pub const Text_MarginLeading_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9e9242d0_5ed0_4900_8e8a_eecc03835afc); +pub const Text_MarginTop_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x683d936f_c9b9_4a9a_b3d9_d20d33311e2a); +pub const Text_MarginTrailing_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaf522f98_999d_40af_a5b2_0169d0342002); +pub const Text_OutlineStyles_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5b675b27_db89_46fe_970c_614d523bb97d); +pub const Text_OverlineColor_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x83ab383a_fd43_40da_ab3e_ecf8165cbb6d); +pub const Text_OverlineStyle_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0a234d66_617e_427f_871d_e1ff1e0c213f); +pub const Text_Pattern2_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x498479a2_5b22_448d_b6e4_647490860698); +pub const Text_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8615f05d_7de5_44fd_a679_2ca4b46033a8); +pub const Text_SayAsInterpretAs_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb38ad6ac_eee1_4b6e_88cc_014cefa93fcb); +pub const Text_SelectionActiveEnd_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1f668cc3_9bbf_416b_b0a2_f89f86f6612c); +pub const Text_StrikethroughColor_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbfe15a18_8c41_4c5a_9a0b_04af0e07f487); +pub const Text_StrikethroughStyle_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x72913ef1_da00_4f01_899c_ac5a8577a307); +pub const Text_StyleId_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x14c300de_c32b_449b_ab7c_b0e0789aea5d); +pub const Text_StyleName_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x22c9e091_4d66_45d8_a828_737bab4c98a7); +pub const Text_Tabs_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2e68d00b_92fe_42d8_899a_a784aa4454a1); +pub const Text_TextChangedEvent_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4a342082_f483_48c4_ac11_a84b435e2a84); +pub const Text_TextFlowDirections_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8bdf8739_f420_423e_af77_20a5d973a907); +pub const Text_TextSelectionChangedEvent_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x918edaa1_71b3_49ae_9741_79beb8d358f3); +pub const Text_UnderlineColor_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbfa12c73_fde2_4473_bf64_1036d6aa0f45); +pub const Text_UnderlineStyle_Attribute_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5f3b21c0_ede4_44bd_9c36_3853038cbfeb); +pub const Thumb_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x701ca877_e310_4dd6_b644_797e4faea213); +pub const TitleBar_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x98aa55bf_3bb0_4b65_836e_2ea30dbc171f); +pub const ToggleState_Indeterminate: ToggleState = 2i32; +pub const ToggleState_Off: ToggleState = 0i32; +pub const ToggleState_On: ToggleState = 1i32; +pub const Toggle_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0b419760_e2f4_43ff_8c5f_9457c82b56e9); +pub const Toggle_ToggleState_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb23cdc52_22c2_4c6c_9ded_f5c422479ede); +pub const ToolBar_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8f06b751_e182_4e98_8893_2284543a7dce); +pub const ToolTipClosed_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x276d71ef_24a9_49b6_8e97_da98b401bbcd); +pub const ToolTipOpened_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3f4b97ff_2edc_451d_bca4_95a3188d5b03); +pub const ToolTip_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x05ddc6d1_2137_4768_98ea_73f52f7134f3); +pub const Tranform_Pattern2_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8afcfd07_a369_44de_988b_2f7ff49fb8a8); +pub const Transform2_CanZoom_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf357e890_a756_4359_9ca6_86702bf8f381); +pub const Transform2_ZoomLevel_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeee29f1a_f4a2_4b5b_ac65_95cf93283387); +pub const Transform2_ZoomMaximum_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x42ab6b77_ceb0_4eca_b82a_6cfa5fa1fc08); +pub const Transform2_ZoomMinimum_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x742ccc16_4ad1_4e07_96fe_b122c6e6b22b); +pub const Transform_CanMove_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1b75824d_208b_4fdf_bccd_f1f4e5741f4f); +pub const Transform_CanResize_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbb98dca5_4c1a_41d4_a4f6_ebc128644180); +pub const Transform_CanRotate_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x10079b48_3849_476f_ac96_44a95c8440d9); +pub const Transform_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x24b46fdb_587e_49f1_9c4a_d8e98b664b7b); +pub const TreeItem_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x62c9feb9_8ffc_4878_a3a4_96b030315c18); +pub const TreeScope_Ancestors: TreeScope = 16i32; +pub const TreeScope_Children: TreeScope = 2i32; +pub const TreeScope_Descendants: TreeScope = 4i32; +pub const TreeScope_Element: TreeScope = 1i32; +pub const TreeScope_None: TreeScope = 0i32; +pub const TreeScope_Parent: TreeScope = 8i32; +pub const TreeScope_Subtree: TreeScope = 7i32; +pub const TreeTraversalOptions_Default: TreeTraversalOptions = 0i32; +pub const TreeTraversalOptions_LastToFirstOrder: TreeTraversalOptions = 2i32; +pub const TreeTraversalOptions_PostOrder: TreeTraversalOptions = 1i32; +pub const Tree_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7561349c_d241_43f4_9908_b5f091bee611); +pub const UIA_AcceleratorKeyPropertyId: UIA_PROPERTY_ID = 30006u32; +pub const UIA_AccessKeyPropertyId: UIA_PROPERTY_ID = 30007u32; +pub const UIA_ActiveTextPositionChangedEventId: UIA_EVENT_ID = 20036i32; +pub const UIA_AfterParagraphSpacingAttributeId: UIA_TEXTATTRIBUTE_ID = 40042u32; +pub const UIA_AnimationStyleAttributeId: UIA_TEXTATTRIBUTE_ID = 40000u32; +pub const UIA_AnnotationAnnotationTypeIdPropertyId: UIA_PROPERTY_ID = 30113u32; +pub const UIA_AnnotationAnnotationTypeNamePropertyId: UIA_PROPERTY_ID = 30114u32; +pub const UIA_AnnotationAuthorPropertyId: UIA_PROPERTY_ID = 30115u32; +pub const UIA_AnnotationDateTimePropertyId: UIA_PROPERTY_ID = 30116u32; +pub const UIA_AnnotationObjectsAttributeId: UIA_TEXTATTRIBUTE_ID = 40032u32; +pub const UIA_AnnotationObjectsPropertyId: UIA_PROPERTY_ID = 30156u32; +pub const UIA_AnnotationPatternId: UIA_PATTERN_ID = 10023u32; +pub const UIA_AnnotationTargetPropertyId: UIA_PROPERTY_ID = 30117u32; +pub const UIA_AnnotationTypesAttributeId: UIA_TEXTATTRIBUTE_ID = 40031u32; +pub const UIA_AnnotationTypesPropertyId: UIA_PROPERTY_ID = 30155u32; +pub const UIA_AppBarControlTypeId: UIA_CONTROLTYPE_ID = 50040u32; +pub const UIA_AriaPropertiesPropertyId: UIA_PROPERTY_ID = 30102u32; +pub const UIA_AriaRolePropertyId: UIA_PROPERTY_ID = 30101u32; +pub const UIA_AsyncContentLoadedEventId: UIA_EVENT_ID = 20006i32; +pub const UIA_AutomationFocusChangedEventId: UIA_EVENT_ID = 20005i32; +pub const UIA_AutomationIdPropertyId: UIA_PROPERTY_ID = 30011u32; +pub const UIA_AutomationPropertyChangedEventId: UIA_EVENT_ID = 20004i32; +pub const UIA_BackgroundColorAttributeId: UIA_TEXTATTRIBUTE_ID = 40001u32; +pub const UIA_BeforeParagraphSpacingAttributeId: UIA_TEXTATTRIBUTE_ID = 40041u32; +pub const UIA_BoundingRectanglePropertyId: UIA_PROPERTY_ID = 30001u32; +pub const UIA_BulletStyleAttributeId: UIA_TEXTATTRIBUTE_ID = 40002u32; +pub const UIA_ButtonControlTypeId: UIA_CONTROLTYPE_ID = 50000u32; +pub const UIA_CalendarControlTypeId: UIA_CONTROLTYPE_ID = 50001u32; +pub const UIA_CapStyleAttributeId: UIA_TEXTATTRIBUTE_ID = 40003u32; +pub const UIA_CaretBidiModeAttributeId: UIA_TEXTATTRIBUTE_ID = 40039u32; +pub const UIA_CaretPositionAttributeId: UIA_TEXTATTRIBUTE_ID = 40038u32; +pub const UIA_CenterPointPropertyId: UIA_PROPERTY_ID = 30165u32; +pub const UIA_ChangesEventId: UIA_EVENT_ID = 20034i32; +pub const UIA_CheckBoxControlTypeId: UIA_CONTROLTYPE_ID = 50002u32; +pub const UIA_ClassNamePropertyId: UIA_PROPERTY_ID = 30012u32; +pub const UIA_ClickablePointPropertyId: UIA_PROPERTY_ID = 30014u32; +pub const UIA_ComboBoxControlTypeId: UIA_CONTROLTYPE_ID = 50003u32; +pub const UIA_ControlTypePropertyId: UIA_PROPERTY_ID = 30003u32; +pub const UIA_ControllerForPropertyId: UIA_PROPERTY_ID = 30104u32; +pub const UIA_CultureAttributeId: UIA_TEXTATTRIBUTE_ID = 40004u32; +pub const UIA_CulturePropertyId: UIA_PROPERTY_ID = 30015u32; +pub const UIA_CustomControlTypeId: UIA_CONTROLTYPE_ID = 50025u32; +pub const UIA_CustomLandmarkTypeId: UIA_LANDMARKTYPE_ID = 80000u32; +pub const UIA_CustomNavigationPatternId: UIA_PATTERN_ID = 10033u32; +pub const UIA_DataGridControlTypeId: UIA_CONTROLTYPE_ID = 50028u32; +pub const UIA_DataItemControlTypeId: UIA_CONTROLTYPE_ID = 50029u32; +pub const UIA_DescribedByPropertyId: UIA_PROPERTY_ID = 30105u32; +pub const UIA_DockDockPositionPropertyId: UIA_PROPERTY_ID = 30069u32; +pub const UIA_DockPatternId: UIA_PATTERN_ID = 10011u32; +pub const UIA_DocumentControlTypeId: UIA_CONTROLTYPE_ID = 50030u32; +pub const UIA_DragDropEffectPropertyId: UIA_PROPERTY_ID = 30139u32; +pub const UIA_DragDropEffectsPropertyId: UIA_PROPERTY_ID = 30140u32; +pub const UIA_DragGrabbedItemsPropertyId: UIA_PROPERTY_ID = 30144u32; +pub const UIA_DragIsGrabbedPropertyId: UIA_PROPERTY_ID = 30138u32; +pub const UIA_DragPatternId: UIA_PATTERN_ID = 10030u32; +pub const UIA_Drag_DragCancelEventId: UIA_EVENT_ID = 20027i32; +pub const UIA_Drag_DragCompleteEventId: UIA_EVENT_ID = 20028i32; +pub const UIA_Drag_DragStartEventId: UIA_EVENT_ID = 20026i32; +pub const UIA_DropTargetDropTargetEffectPropertyId: UIA_PROPERTY_ID = 30142u32; +pub const UIA_DropTargetDropTargetEffectsPropertyId: UIA_PROPERTY_ID = 30143u32; +pub const UIA_DropTargetPatternId: UIA_PATTERN_ID = 10031u32; +pub const UIA_DropTarget_DragEnterEventId: UIA_EVENT_ID = 20029i32; +pub const UIA_DropTarget_DragLeaveEventId: UIA_EVENT_ID = 20030i32; +pub const UIA_DropTarget_DroppedEventId: UIA_EVENT_ID = 20031i32; +pub const UIA_E_ELEMENTNOTAVAILABLE: u32 = 2147746305u32; +pub const UIA_E_ELEMENTNOTENABLED: u32 = 2147746304u32; +pub const UIA_E_INVALIDOPERATION: u32 = 2148734217u32; +pub const UIA_E_NOCLICKABLEPOINT: u32 = 2147746306u32; +pub const UIA_E_NOTSUPPORTED: u32 = 2147746308u32; +pub const UIA_E_PROXYASSEMBLYNOTLOADED: u32 = 2147746307u32; +pub const UIA_E_TIMEOUT: u32 = 2148734213u32; +pub const UIA_EditControlTypeId: UIA_CONTROLTYPE_ID = 50004u32; +pub const UIA_ExpandCollapseExpandCollapseStatePropertyId: UIA_PROPERTY_ID = 30070u32; +pub const UIA_ExpandCollapsePatternId: UIA_PATTERN_ID = 10005u32; +pub const UIA_FillColorPropertyId: UIA_PROPERTY_ID = 30160u32; +pub const UIA_FillTypePropertyId: UIA_PROPERTY_ID = 30162u32; +pub const UIA_FlowsFromPropertyId: UIA_PROPERTY_ID = 30148u32; +pub const UIA_FlowsToPropertyId: UIA_PROPERTY_ID = 30106u32; +pub const UIA_FontNameAttributeId: UIA_TEXTATTRIBUTE_ID = 40005u32; +pub const UIA_FontSizeAttributeId: UIA_TEXTATTRIBUTE_ID = 40006u32; +pub const UIA_FontWeightAttributeId: UIA_TEXTATTRIBUTE_ID = 40007u32; +pub const UIA_ForegroundColorAttributeId: UIA_TEXTATTRIBUTE_ID = 40008u32; +pub const UIA_FormLandmarkTypeId: UIA_LANDMARKTYPE_ID = 80001u32; +pub const UIA_FrameworkIdPropertyId: UIA_PROPERTY_ID = 30024u32; +pub const UIA_FullDescriptionPropertyId: UIA_PROPERTY_ID = 30159u32; +pub const UIA_GridColumnCountPropertyId: UIA_PROPERTY_ID = 30063u32; +pub const UIA_GridItemColumnPropertyId: UIA_PROPERTY_ID = 30065u32; +pub const UIA_GridItemColumnSpanPropertyId: UIA_PROPERTY_ID = 30067u32; +pub const UIA_GridItemContainingGridPropertyId: UIA_PROPERTY_ID = 30068u32; +pub const UIA_GridItemPatternId: UIA_PATTERN_ID = 10007u32; +pub const UIA_GridItemRowPropertyId: UIA_PROPERTY_ID = 30064u32; +pub const UIA_GridItemRowSpanPropertyId: UIA_PROPERTY_ID = 30066u32; +pub const UIA_GridPatternId: UIA_PATTERN_ID = 10006u32; +pub const UIA_GridRowCountPropertyId: UIA_PROPERTY_ID = 30062u32; +pub const UIA_GroupControlTypeId: UIA_CONTROLTYPE_ID = 50026u32; +pub const UIA_HasKeyboardFocusPropertyId: UIA_PROPERTY_ID = 30008u32; +pub const UIA_HeaderControlTypeId: UIA_CONTROLTYPE_ID = 50034u32; +pub const UIA_HeaderItemControlTypeId: UIA_CONTROLTYPE_ID = 50035u32; +pub const UIA_HeadingLevelPropertyId: UIA_PROPERTY_ID = 30173u32; +pub const UIA_HelpTextPropertyId: UIA_PROPERTY_ID = 30013u32; +pub const UIA_HorizontalTextAlignmentAttributeId: UIA_TEXTATTRIBUTE_ID = 40009u32; +pub const UIA_HostedFragmentRootsInvalidatedEventId: UIA_EVENT_ID = 20025i32; +pub const UIA_HyperlinkControlTypeId: UIA_CONTROLTYPE_ID = 50005u32; +pub const UIA_IAFP_DEFAULT: u32 = 0u32; +pub const UIA_IAFP_UNWRAP_BRIDGE: u32 = 1u32; +pub const UIA_ImageControlTypeId: UIA_CONTROLTYPE_ID = 50006u32; +pub const UIA_IndentationFirstLineAttributeId: UIA_TEXTATTRIBUTE_ID = 40010u32; +pub const UIA_IndentationLeadingAttributeId: UIA_TEXTATTRIBUTE_ID = 40011u32; +pub const UIA_IndentationTrailingAttributeId: UIA_TEXTATTRIBUTE_ID = 40012u32; +pub const UIA_InputDiscardedEventId: UIA_EVENT_ID = 20022i32; +pub const UIA_InputReachedOtherElementEventId: UIA_EVENT_ID = 20021i32; +pub const UIA_InputReachedTargetEventId: UIA_EVENT_ID = 20020i32; +pub const UIA_InvokePatternId: UIA_PATTERN_ID = 10000u32; +pub const UIA_Invoke_InvokedEventId: UIA_EVENT_ID = 20009i32; +pub const UIA_IsActiveAttributeId: UIA_TEXTATTRIBUTE_ID = 40036u32; +pub const UIA_IsAnnotationPatternAvailablePropertyId: UIA_PROPERTY_ID = 30118u32; +pub const UIA_IsContentElementPropertyId: UIA_PROPERTY_ID = 30017u32; +pub const UIA_IsControlElementPropertyId: UIA_PROPERTY_ID = 30016u32; +pub const UIA_IsCustomNavigationPatternAvailablePropertyId: UIA_PROPERTY_ID = 30151u32; +pub const UIA_IsDataValidForFormPropertyId: UIA_PROPERTY_ID = 30103u32; +pub const UIA_IsDialogPropertyId: UIA_PROPERTY_ID = 30174u32; +pub const UIA_IsDockPatternAvailablePropertyId: UIA_PROPERTY_ID = 30027u32; +pub const UIA_IsDragPatternAvailablePropertyId: UIA_PROPERTY_ID = 30137u32; +pub const UIA_IsDropTargetPatternAvailablePropertyId: UIA_PROPERTY_ID = 30141u32; +pub const UIA_IsEnabledPropertyId: UIA_PROPERTY_ID = 30010u32; +pub const UIA_IsExpandCollapsePatternAvailablePropertyId: UIA_PROPERTY_ID = 30028u32; +pub const UIA_IsGridItemPatternAvailablePropertyId: UIA_PROPERTY_ID = 30029u32; +pub const UIA_IsGridPatternAvailablePropertyId: UIA_PROPERTY_ID = 30030u32; +pub const UIA_IsHiddenAttributeId: UIA_TEXTATTRIBUTE_ID = 40013u32; +pub const UIA_IsInvokePatternAvailablePropertyId: UIA_PROPERTY_ID = 30031u32; +pub const UIA_IsItalicAttributeId: UIA_TEXTATTRIBUTE_ID = 40014u32; +pub const UIA_IsItemContainerPatternAvailablePropertyId: UIA_PROPERTY_ID = 30108u32; +pub const UIA_IsKeyboardFocusablePropertyId: UIA_PROPERTY_ID = 30009u32; +pub const UIA_IsLegacyIAccessiblePatternAvailablePropertyId: UIA_PROPERTY_ID = 30090u32; +pub const UIA_IsMultipleViewPatternAvailablePropertyId: UIA_PROPERTY_ID = 30032u32; +pub const UIA_IsObjectModelPatternAvailablePropertyId: UIA_PROPERTY_ID = 30112u32; +pub const UIA_IsOffscreenPropertyId: UIA_PROPERTY_ID = 30022u32; +pub const UIA_IsPasswordPropertyId: UIA_PROPERTY_ID = 30019u32; +pub const UIA_IsPeripheralPropertyId: UIA_PROPERTY_ID = 30150u32; +pub const UIA_IsRangeValuePatternAvailablePropertyId: UIA_PROPERTY_ID = 30033u32; +pub const UIA_IsReadOnlyAttributeId: UIA_TEXTATTRIBUTE_ID = 40015u32; +pub const UIA_IsRequiredForFormPropertyId: UIA_PROPERTY_ID = 30025u32; +pub const UIA_IsScrollItemPatternAvailablePropertyId: UIA_PROPERTY_ID = 30035u32; +pub const UIA_IsScrollPatternAvailablePropertyId: UIA_PROPERTY_ID = 30034u32; +pub const UIA_IsSelectionItemPatternAvailablePropertyId: UIA_PROPERTY_ID = 30036u32; +pub const UIA_IsSelectionPattern2AvailablePropertyId: UIA_PROPERTY_ID = 30168u32; +pub const UIA_IsSelectionPatternAvailablePropertyId: UIA_PROPERTY_ID = 30037u32; +pub const UIA_IsSpreadsheetItemPatternAvailablePropertyId: UIA_PROPERTY_ID = 30132u32; +pub const UIA_IsSpreadsheetPatternAvailablePropertyId: UIA_PROPERTY_ID = 30128u32; +pub const UIA_IsStylesPatternAvailablePropertyId: UIA_PROPERTY_ID = 30127u32; +pub const UIA_IsSubscriptAttributeId: UIA_TEXTATTRIBUTE_ID = 40016u32; +pub const UIA_IsSuperscriptAttributeId: UIA_TEXTATTRIBUTE_ID = 40017u32; +pub const UIA_IsSynchronizedInputPatternAvailablePropertyId: UIA_PROPERTY_ID = 30110u32; +pub const UIA_IsTableItemPatternAvailablePropertyId: UIA_PROPERTY_ID = 30039u32; +pub const UIA_IsTablePatternAvailablePropertyId: UIA_PROPERTY_ID = 30038u32; +pub const UIA_IsTextChildPatternAvailablePropertyId: UIA_PROPERTY_ID = 30136u32; +pub const UIA_IsTextEditPatternAvailablePropertyId: UIA_PROPERTY_ID = 30149u32; +pub const UIA_IsTextPattern2AvailablePropertyId: UIA_PROPERTY_ID = 30119u32; +pub const UIA_IsTextPatternAvailablePropertyId: UIA_PROPERTY_ID = 30040u32; +pub const UIA_IsTogglePatternAvailablePropertyId: UIA_PROPERTY_ID = 30041u32; +pub const UIA_IsTransformPattern2AvailablePropertyId: UIA_PROPERTY_ID = 30134u32; +pub const UIA_IsTransformPatternAvailablePropertyId: UIA_PROPERTY_ID = 30042u32; +pub const UIA_IsValuePatternAvailablePropertyId: UIA_PROPERTY_ID = 30043u32; +pub const UIA_IsVirtualizedItemPatternAvailablePropertyId: UIA_PROPERTY_ID = 30109u32; +pub const UIA_IsWindowPatternAvailablePropertyId: UIA_PROPERTY_ID = 30044u32; +pub const UIA_ItemContainerPatternId: UIA_PATTERN_ID = 10019u32; +pub const UIA_ItemStatusPropertyId: UIA_PROPERTY_ID = 30026u32; +pub const UIA_ItemTypePropertyId: UIA_PROPERTY_ID = 30021u32; +pub const UIA_LabeledByPropertyId: UIA_PROPERTY_ID = 30018u32; +pub const UIA_LandmarkTypePropertyId: UIA_PROPERTY_ID = 30157u32; +pub const UIA_LayoutInvalidatedEventId: UIA_EVENT_ID = 20008i32; +pub const UIA_LegacyIAccessibleChildIdPropertyId: UIA_PROPERTY_ID = 30091u32; +pub const UIA_LegacyIAccessibleDefaultActionPropertyId: UIA_PROPERTY_ID = 30100u32; +pub const UIA_LegacyIAccessibleDescriptionPropertyId: UIA_PROPERTY_ID = 30094u32; +pub const UIA_LegacyIAccessibleHelpPropertyId: UIA_PROPERTY_ID = 30097u32; +pub const UIA_LegacyIAccessibleKeyboardShortcutPropertyId: UIA_PROPERTY_ID = 30098u32; +pub const UIA_LegacyIAccessibleNamePropertyId: UIA_PROPERTY_ID = 30092u32; +pub const UIA_LegacyIAccessiblePatternId: UIA_PATTERN_ID = 10018u32; +pub const UIA_LegacyIAccessibleRolePropertyId: UIA_PROPERTY_ID = 30095u32; +pub const UIA_LegacyIAccessibleSelectionPropertyId: UIA_PROPERTY_ID = 30099u32; +pub const UIA_LegacyIAccessibleStatePropertyId: UIA_PROPERTY_ID = 30096u32; +pub const UIA_LegacyIAccessibleValuePropertyId: UIA_PROPERTY_ID = 30093u32; +pub const UIA_LevelPropertyId: UIA_PROPERTY_ID = 30154u32; +pub const UIA_LineSpacingAttributeId: UIA_TEXTATTRIBUTE_ID = 40040u32; +pub const UIA_LinkAttributeId: UIA_TEXTATTRIBUTE_ID = 40035u32; +pub const UIA_ListControlTypeId: UIA_CONTROLTYPE_ID = 50008u32; +pub const UIA_ListItemControlTypeId: UIA_CONTROLTYPE_ID = 50007u32; +pub const UIA_LiveRegionChangedEventId: UIA_EVENT_ID = 20024i32; +pub const UIA_LiveSettingPropertyId: UIA_PROPERTY_ID = 30135u32; +pub const UIA_LocalizedControlTypePropertyId: UIA_PROPERTY_ID = 30004u32; +pub const UIA_LocalizedLandmarkTypePropertyId: UIA_PROPERTY_ID = 30158u32; +pub const UIA_MainLandmarkTypeId: UIA_LANDMARKTYPE_ID = 80002u32; +pub const UIA_MarginBottomAttributeId: UIA_TEXTATTRIBUTE_ID = 40018u32; +pub const UIA_MarginLeadingAttributeId: UIA_TEXTATTRIBUTE_ID = 40019u32; +pub const UIA_MarginTopAttributeId: UIA_TEXTATTRIBUTE_ID = 40020u32; +pub const UIA_MarginTrailingAttributeId: UIA_TEXTATTRIBUTE_ID = 40021u32; +pub const UIA_MenuBarControlTypeId: UIA_CONTROLTYPE_ID = 50010u32; +pub const UIA_MenuClosedEventId: UIA_EVENT_ID = 20007i32; +pub const UIA_MenuControlTypeId: UIA_CONTROLTYPE_ID = 50009u32; +pub const UIA_MenuItemControlTypeId: UIA_CONTROLTYPE_ID = 50011u32; +pub const UIA_MenuModeEndEventId: UIA_EVENT_ID = 20019i32; +pub const UIA_MenuModeStartEventId: UIA_EVENT_ID = 20018i32; +pub const UIA_MenuOpenedEventId: UIA_EVENT_ID = 20003i32; +pub const UIA_MultipleViewCurrentViewPropertyId: UIA_PROPERTY_ID = 30071u32; +pub const UIA_MultipleViewPatternId: UIA_PATTERN_ID = 10008u32; +pub const UIA_MultipleViewSupportedViewsPropertyId: UIA_PROPERTY_ID = 30072u32; +pub const UIA_NamePropertyId: UIA_PROPERTY_ID = 30005u32; +pub const UIA_NativeWindowHandlePropertyId: UIA_PROPERTY_ID = 30020u32; +pub const UIA_NavigationLandmarkTypeId: UIA_LANDMARKTYPE_ID = 80003u32; +pub const UIA_NotificationEventId: UIA_EVENT_ID = 20035i32; +pub const UIA_ObjectModelPatternId: UIA_PATTERN_ID = 10022u32; +pub const UIA_OptimizeForVisualContentPropertyId: UIA_PROPERTY_ID = 30111u32; +pub const UIA_OrientationPropertyId: UIA_PROPERTY_ID = 30023u32; +pub const UIA_OutlineColorPropertyId: UIA_PROPERTY_ID = 30161u32; +pub const UIA_OutlineStylesAttributeId: UIA_TEXTATTRIBUTE_ID = 40022u32; +pub const UIA_OutlineThicknessPropertyId: UIA_PROPERTY_ID = 30164u32; +pub const UIA_OverlineColorAttributeId: UIA_TEXTATTRIBUTE_ID = 40023u32; +pub const UIA_OverlineStyleAttributeId: UIA_TEXTATTRIBUTE_ID = 40024u32; +pub const UIA_PFIA_DEFAULT: u32 = 0u32; +pub const UIA_PFIA_UNWRAP_BRIDGE: u32 = 1u32; +pub const UIA_PaneControlTypeId: UIA_CONTROLTYPE_ID = 50033u32; +pub const UIA_PositionInSetPropertyId: UIA_PROPERTY_ID = 30152u32; +pub const UIA_ProcessIdPropertyId: UIA_PROPERTY_ID = 30002u32; +pub const UIA_ProgressBarControlTypeId: UIA_CONTROLTYPE_ID = 50012u32; +pub const UIA_ProviderDescriptionPropertyId: UIA_PROPERTY_ID = 30107u32; +pub const UIA_RadioButtonControlTypeId: UIA_CONTROLTYPE_ID = 50013u32; +pub const UIA_RangeValueIsReadOnlyPropertyId: UIA_PROPERTY_ID = 30048u32; +pub const UIA_RangeValueLargeChangePropertyId: UIA_PROPERTY_ID = 30051u32; +pub const UIA_RangeValueMaximumPropertyId: UIA_PROPERTY_ID = 30050u32; +pub const UIA_RangeValueMinimumPropertyId: UIA_PROPERTY_ID = 30049u32; +pub const UIA_RangeValuePatternId: UIA_PATTERN_ID = 10003u32; +pub const UIA_RangeValueSmallChangePropertyId: UIA_PROPERTY_ID = 30052u32; +pub const UIA_RangeValueValuePropertyId: UIA_PROPERTY_ID = 30047u32; +pub const UIA_RotationPropertyId: UIA_PROPERTY_ID = 30166u32; +pub const UIA_RuntimeIdPropertyId: UIA_PROPERTY_ID = 30000u32; +pub const UIA_SayAsInterpretAsAttributeId: UIA_TEXTATTRIBUTE_ID = 40043u32; +pub const UIA_SayAsInterpretAsMetadataId: UIA_METADATA_ID = 100000u32; +pub const UIA_ScrollBarControlTypeId: UIA_CONTROLTYPE_ID = 50014u32; +pub const UIA_ScrollHorizontalScrollPercentPropertyId: UIA_PROPERTY_ID = 30053u32; +pub const UIA_ScrollHorizontalViewSizePropertyId: UIA_PROPERTY_ID = 30054u32; +pub const UIA_ScrollHorizontallyScrollablePropertyId: UIA_PROPERTY_ID = 30057u32; +pub const UIA_ScrollItemPatternId: UIA_PATTERN_ID = 10017u32; +pub const UIA_ScrollPatternId: UIA_PATTERN_ID = 10004u32; +pub const UIA_ScrollPatternNoScroll: f64 = -1f64; +pub const UIA_ScrollVerticalScrollPercentPropertyId: UIA_PROPERTY_ID = 30055u32; +pub const UIA_ScrollVerticalViewSizePropertyId: UIA_PROPERTY_ID = 30056u32; +pub const UIA_ScrollVerticallyScrollablePropertyId: UIA_PROPERTY_ID = 30058u32; +pub const UIA_SearchLandmarkTypeId: UIA_LANDMARKTYPE_ID = 80004u32; +pub const UIA_Selection2CurrentSelectedItemPropertyId: UIA_PROPERTY_ID = 30171u32; +pub const UIA_Selection2FirstSelectedItemPropertyId: UIA_PROPERTY_ID = 30169u32; +pub const UIA_Selection2ItemCountPropertyId: UIA_PROPERTY_ID = 30172u32; +pub const UIA_Selection2LastSelectedItemPropertyId: UIA_PROPERTY_ID = 30170u32; +pub const UIA_SelectionActiveEndAttributeId: UIA_TEXTATTRIBUTE_ID = 40037u32; +pub const UIA_SelectionCanSelectMultiplePropertyId: UIA_PROPERTY_ID = 30060u32; +pub const UIA_SelectionIsSelectionRequiredPropertyId: UIA_PROPERTY_ID = 30061u32; +pub const UIA_SelectionItemIsSelectedPropertyId: UIA_PROPERTY_ID = 30079u32; +pub const UIA_SelectionItemPatternId: UIA_PATTERN_ID = 10010u32; +pub const UIA_SelectionItemSelectionContainerPropertyId: UIA_PROPERTY_ID = 30080u32; +pub const UIA_SelectionItem_ElementAddedToSelectionEventId: UIA_EVENT_ID = 20010i32; +pub const UIA_SelectionItem_ElementRemovedFromSelectionEventId: UIA_EVENT_ID = 20011i32; +pub const UIA_SelectionItem_ElementSelectedEventId: UIA_EVENT_ID = 20012i32; +pub const UIA_SelectionPattern2Id: UIA_PATTERN_ID = 10034u32; +pub const UIA_SelectionPatternId: UIA_PATTERN_ID = 10001u32; +pub const UIA_SelectionSelectionPropertyId: UIA_PROPERTY_ID = 30059u32; +pub const UIA_Selection_InvalidatedEventId: UIA_EVENT_ID = 20013i32; +pub const UIA_SemanticZoomControlTypeId: UIA_CONTROLTYPE_ID = 50039u32; +pub const UIA_SeparatorControlTypeId: UIA_CONTROLTYPE_ID = 50038u32; +pub const UIA_SizeOfSetPropertyId: UIA_PROPERTY_ID = 30153u32; +pub const UIA_SizePropertyId: UIA_PROPERTY_ID = 30167u32; +pub const UIA_SliderControlTypeId: UIA_CONTROLTYPE_ID = 50015u32; +pub const UIA_SpinnerControlTypeId: UIA_CONTROLTYPE_ID = 50016u32; +pub const UIA_SplitButtonControlTypeId: UIA_CONTROLTYPE_ID = 50031u32; +pub const UIA_SpreadsheetItemAnnotationObjectsPropertyId: UIA_PROPERTY_ID = 30130u32; +pub const UIA_SpreadsheetItemAnnotationTypesPropertyId: UIA_PROPERTY_ID = 30131u32; +pub const UIA_SpreadsheetItemFormulaPropertyId: UIA_PROPERTY_ID = 30129u32; +pub const UIA_SpreadsheetItemPatternId: UIA_PATTERN_ID = 10027u32; +pub const UIA_SpreadsheetPatternId: UIA_PATTERN_ID = 10026u32; +pub const UIA_StatusBarControlTypeId: UIA_CONTROLTYPE_ID = 50017u32; +pub const UIA_StrikethroughColorAttributeId: UIA_TEXTATTRIBUTE_ID = 40025u32; +pub const UIA_StrikethroughStyleAttributeId: UIA_TEXTATTRIBUTE_ID = 40026u32; +pub const UIA_StructureChangedEventId: UIA_EVENT_ID = 20002i32; +pub const UIA_StyleIdAttributeId: UIA_TEXTATTRIBUTE_ID = 40034u32; +pub const UIA_StyleNameAttributeId: UIA_TEXTATTRIBUTE_ID = 40033u32; +pub const UIA_StylesExtendedPropertiesPropertyId: UIA_PROPERTY_ID = 30126u32; +pub const UIA_StylesFillColorPropertyId: UIA_PROPERTY_ID = 30122u32; +pub const UIA_StylesFillPatternColorPropertyId: UIA_PROPERTY_ID = 30125u32; +pub const UIA_StylesFillPatternStylePropertyId: UIA_PROPERTY_ID = 30123u32; +pub const UIA_StylesPatternId: UIA_PATTERN_ID = 10025u32; +pub const UIA_StylesShapePropertyId: UIA_PROPERTY_ID = 30124u32; +pub const UIA_StylesStyleIdPropertyId: UIA_PROPERTY_ID = 30120u32; +pub const UIA_StylesStyleNamePropertyId: UIA_PROPERTY_ID = 30121u32; +pub const UIA_SummaryChangeId: UIA_CHANGE_ID = 90000u32; +pub const UIA_SynchronizedInputPatternId: UIA_PATTERN_ID = 10021u32; +pub const UIA_SystemAlertEventId: UIA_EVENT_ID = 20023i32; +pub const UIA_TabControlTypeId: UIA_CONTROLTYPE_ID = 50018u32; +pub const UIA_TabItemControlTypeId: UIA_CONTROLTYPE_ID = 50019u32; +pub const UIA_TableColumnHeadersPropertyId: UIA_PROPERTY_ID = 30082u32; +pub const UIA_TableControlTypeId: UIA_CONTROLTYPE_ID = 50036u32; +pub const UIA_TableItemColumnHeaderItemsPropertyId: UIA_PROPERTY_ID = 30085u32; +pub const UIA_TableItemPatternId: UIA_PATTERN_ID = 10013u32; +pub const UIA_TableItemRowHeaderItemsPropertyId: UIA_PROPERTY_ID = 30084u32; +pub const UIA_TablePatternId: UIA_PATTERN_ID = 10012u32; +pub const UIA_TableRowHeadersPropertyId: UIA_PROPERTY_ID = 30081u32; +pub const UIA_TableRowOrColumnMajorPropertyId: UIA_PROPERTY_ID = 30083u32; +pub const UIA_TabsAttributeId: UIA_TEXTATTRIBUTE_ID = 40027u32; +pub const UIA_TextChildPatternId: UIA_PATTERN_ID = 10029u32; +pub const UIA_TextControlTypeId: UIA_CONTROLTYPE_ID = 50020u32; +pub const UIA_TextEditPatternId: UIA_PATTERN_ID = 10032u32; +pub const UIA_TextEdit_ConversionTargetChangedEventId: UIA_EVENT_ID = 20033i32; +pub const UIA_TextEdit_TextChangedEventId: UIA_EVENT_ID = 20032i32; +pub const UIA_TextFlowDirectionsAttributeId: UIA_TEXTATTRIBUTE_ID = 40028u32; +pub const UIA_TextPattern2Id: UIA_PATTERN_ID = 10024u32; +pub const UIA_TextPatternId: UIA_PATTERN_ID = 10014u32; +pub const UIA_Text_TextChangedEventId: UIA_EVENT_ID = 20015i32; +pub const UIA_Text_TextSelectionChangedEventId: UIA_EVENT_ID = 20014i32; +pub const UIA_ThumbControlTypeId: UIA_CONTROLTYPE_ID = 50027u32; +pub const UIA_TitleBarControlTypeId: UIA_CONTROLTYPE_ID = 50037u32; +pub const UIA_TogglePatternId: UIA_PATTERN_ID = 10015u32; +pub const UIA_ToggleToggleStatePropertyId: UIA_PROPERTY_ID = 30086u32; +pub const UIA_ToolBarControlTypeId: UIA_CONTROLTYPE_ID = 50021u32; +pub const UIA_ToolTipClosedEventId: UIA_EVENT_ID = 20001i32; +pub const UIA_ToolTipControlTypeId: UIA_CONTROLTYPE_ID = 50022u32; +pub const UIA_ToolTipOpenedEventId: UIA_EVENT_ID = 20000i32; +pub const UIA_Transform2CanZoomPropertyId: UIA_PROPERTY_ID = 30133u32; +pub const UIA_Transform2ZoomLevelPropertyId: UIA_PROPERTY_ID = 30145u32; +pub const UIA_Transform2ZoomMaximumPropertyId: UIA_PROPERTY_ID = 30147u32; +pub const UIA_Transform2ZoomMinimumPropertyId: UIA_PROPERTY_ID = 30146u32; +pub const UIA_TransformCanMovePropertyId: UIA_PROPERTY_ID = 30087u32; +pub const UIA_TransformCanResizePropertyId: UIA_PROPERTY_ID = 30088u32; +pub const UIA_TransformCanRotatePropertyId: UIA_PROPERTY_ID = 30089u32; +pub const UIA_TransformPattern2Id: UIA_PATTERN_ID = 10028u32; +pub const UIA_TransformPatternId: UIA_PATTERN_ID = 10016u32; +pub const UIA_TreeControlTypeId: UIA_CONTROLTYPE_ID = 50023u32; +pub const UIA_TreeItemControlTypeId: UIA_CONTROLTYPE_ID = 50024u32; +pub const UIA_UnderlineColorAttributeId: UIA_TEXTATTRIBUTE_ID = 40029u32; +pub const UIA_UnderlineStyleAttributeId: UIA_TEXTATTRIBUTE_ID = 40030u32; +pub const UIA_ValueIsReadOnlyPropertyId: UIA_PROPERTY_ID = 30046u32; +pub const UIA_ValuePatternId: UIA_PATTERN_ID = 10002u32; +pub const UIA_ValueValuePropertyId: UIA_PROPERTY_ID = 30045u32; +pub const UIA_VirtualizedItemPatternId: UIA_PATTERN_ID = 10020u32; +pub const UIA_VisualEffectsPropertyId: UIA_PROPERTY_ID = 30163u32; +pub const UIA_WindowCanMaximizePropertyId: UIA_PROPERTY_ID = 30073u32; +pub const UIA_WindowCanMinimizePropertyId: UIA_PROPERTY_ID = 30074u32; +pub const UIA_WindowControlTypeId: UIA_CONTROLTYPE_ID = 50032u32; +pub const UIA_WindowIsModalPropertyId: UIA_PROPERTY_ID = 30077u32; +pub const UIA_WindowIsTopmostPropertyId: UIA_PROPERTY_ID = 30078u32; +pub const UIA_WindowPatternId: UIA_PATTERN_ID = 10009u32; +pub const UIA_WindowWindowInteractionStatePropertyId: UIA_PROPERTY_ID = 30076u32; +pub const UIA_WindowWindowVisualStatePropertyId: UIA_PROPERTY_ID = 30075u32; +pub const UIA_Window_WindowClosedEventId: UIA_EVENT_ID = 20017i32; +pub const UIA_Window_WindowOpenedEventId: UIA_EVENT_ID = 20016i32; +pub const UIAutomationType_Array: UIAutomationType = 65536i32; +pub const UIAutomationType_Bool: UIAutomationType = 2i32; +pub const UIAutomationType_BoolArray: UIAutomationType = 65538i32; +pub const UIAutomationType_Double: UIAutomationType = 4i32; +pub const UIAutomationType_DoubleArray: UIAutomationType = 65540i32; +pub const UIAutomationType_Element: UIAutomationType = 7i32; +pub const UIAutomationType_ElementArray: UIAutomationType = 65543i32; +pub const UIAutomationType_Int: UIAutomationType = 1i32; +pub const UIAutomationType_IntArray: UIAutomationType = 65537i32; +pub const UIAutomationType_Out: UIAutomationType = 131072i32; +pub const UIAutomationType_OutBool: UIAutomationType = 131074i32; +pub const UIAutomationType_OutBoolArray: UIAutomationType = 196610i32; +pub const UIAutomationType_OutDouble: UIAutomationType = 131076i32; +pub const UIAutomationType_OutDoubleArray: UIAutomationType = 196612i32; +pub const UIAutomationType_OutElement: UIAutomationType = 131079i32; +pub const UIAutomationType_OutElementArray: UIAutomationType = 196615i32; +pub const UIAutomationType_OutInt: UIAutomationType = 131073i32; +pub const UIAutomationType_OutIntArray: UIAutomationType = 196609i32; +pub const UIAutomationType_OutPoint: UIAutomationType = 131077i32; +pub const UIAutomationType_OutPointArray: UIAutomationType = 196613i32; +pub const UIAutomationType_OutRect: UIAutomationType = 131078i32; +pub const UIAutomationType_OutRectArray: UIAutomationType = 196614i32; +pub const UIAutomationType_OutString: UIAutomationType = 131075i32; +pub const UIAutomationType_OutStringArray: UIAutomationType = 196611i32; +pub const UIAutomationType_Point: UIAutomationType = 5i32; +pub const UIAutomationType_PointArray: UIAutomationType = 65541i32; +pub const UIAutomationType_Rect: UIAutomationType = 6i32; +pub const UIAutomationType_RectArray: UIAutomationType = 65542i32; +pub const UIAutomationType_String: UIAutomationType = 3i32; +pub const UIAutomationType_StringArray: UIAutomationType = 65539i32; +pub const UiaAppendRuntimeId: u32 = 3u32; +pub const UiaRootObjectId: i32 = -25i32; +pub const Value_IsReadOnly_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeb090f30_e24c_4799_a705_0d247bc037f8); +pub const Value_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x17faad9e_c877_475b_b933_77332779b637); +pub const Value_Value_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe95f5e64_269f_4a85_ba99_4092c3ea2986); +pub const VirtualizedItem_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf510173e_2e71_45e9_a6e5_62f6ed8289d5); +pub const VisualEffects_Bevel: VisualEffects = 16i32; +pub const VisualEffects_Glow: VisualEffects = 4i32; +pub const VisualEffects_None: VisualEffects = 0i32; +pub const VisualEffects_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe61a8565_aad9_46d7_9e70_4e8a8420d420); +pub const VisualEffects_Reflection: VisualEffects = 2i32; +pub const VisualEffects_Shadow: VisualEffects = 1i32; +pub const VisualEffects_SoftEdges: VisualEffects = 8i32; +pub const WindowInteractionState_BlockedByModalWindow: WindowInteractionState = 3i32; +pub const WindowInteractionState_Closing: WindowInteractionState = 1i32; +pub const WindowInteractionState_NotResponding: WindowInteractionState = 4i32; +pub const WindowInteractionState_ReadyForUserInteraction: WindowInteractionState = 2i32; +pub const WindowInteractionState_Running: WindowInteractionState = 0i32; +pub const WindowVisualState_Maximized: WindowVisualState = 1i32; +pub const WindowVisualState_Minimized: WindowVisualState = 2i32; +pub const WindowVisualState_Normal: WindowVisualState = 0i32; +pub const Window_CanMaximize_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x64fff53f_635d_41c1_950c_cb5adfbe28e3); +pub const Window_CanMinimize_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb73b4625_5988_4b97_b4c2_a6fe6e78c8c6); +pub const Window_Control_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe13a7242_f462_4f4d_aec1_53b28d6c3290); +pub const Window_IsModal_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xff4e6892_37b9_4fca_8532_ffe674ecfeed); +pub const Window_IsTopmost_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xef7d85d3_0937_4962_9241_b62345f24041); +pub const Window_Pattern_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x27901735_c760_4994_ad11_5919e606b110); +pub const Window_WindowClosed_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xedf141f8_fa67_4e22_bbf7_944e05735ee2); +pub const Window_WindowInteractionState_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4fed26a4_0455_4fa2_b21c_c4da2db1ff9c); +pub const Window_WindowOpened_Event_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd3e81d06_de45_4f2f_9633_de9e02fb65af); +pub const Window_WindowVisualState_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4ab7905f_e860_453e_a30a_f6431e5daad5); +pub const ZoomUnit_LargeDecrement: ZoomUnit = 1i32; +pub const ZoomUnit_LargeIncrement: ZoomUnit = 3i32; +pub const ZoomUnit_NoAmount: ZoomUnit = 0i32; +pub const ZoomUnit_SmallDecrement: ZoomUnit = 2i32; +pub const ZoomUnit_SmallIncrement: ZoomUnit = 4i32; +pub type ACC_UTILITY_STATE_FLAGS = u32; +pub type ActiveEnd = i32; +pub type AnimationStyle = i32; +pub type AnnoScope = i32; +pub type AsyncContentLoadedState = i32; +pub type AutomationElementMode = i32; +pub type AutomationIdentifierType = i32; +pub type BulletStyle = i32; +pub type CapStyle = i32; +pub type CaretBidiMode = i32; +pub type CaretPosition = i32; +pub type CoalesceEventsOptions = i32; +pub type ConditionType = i32; +pub type ConnectionRecoveryBehaviorOptions = i32; +pub type DockPosition = i32; +pub type EventArgsType = i32; +pub type ExpandCollapseState = i32; +pub type FillType = i32; +pub type FlowDirections = i32; +pub type HIGHCONTRASTW_FLAGS = u32; +pub type HorizontalTextAlignment = i32; +pub type LiveSetting = i32; +pub type NavigateDirection = i32; +pub type NormalizeState = i32; +pub type NotificationKind = i32; +pub type NotificationProcessing = i32; +pub type OrientationType = i32; +pub type OutlineStyles = i32; +pub type PropertyConditionFlags = i32; +pub type ProviderOptions = i32; +pub type ProviderType = i32; +pub type RowOrColumnMajor = i32; +pub type SERIALKEYS_FLAGS = u32; +pub type SOUNDSENTRY_FLAGS = u32; +pub type SOUNDSENTRY_TEXT_EFFECT = u32; +pub type SOUNDSENTRY_WINDOWS_EFFECT = u32; +pub type SOUND_SENTRY_GRAPHICS_EFFECT = u32; +pub type STICKYKEYS_FLAGS = u32; +pub type SayAsInterpretAs = i32; +pub type ScrollAmount = i32; +pub type StructureChangeType = i32; +pub type SupportedTextSelection = i32; +pub type SynchronizedInputType = i32; +pub type TextDecorationLineStyle = i32; +pub type TextEditChangeType = i32; +pub type TextPatternRangeEndpoint = i32; +pub type TextUnit = i32; +pub type ToggleState = i32; +pub type TreeScope = i32; +pub type TreeTraversalOptions = i32; +pub type UIA_ANNOTATIONTYPE = u32; +pub type UIA_CHANGE_ID = u32; +pub type UIA_CONTROLTYPE_ID = u32; +pub type UIA_EVENT_ID = i32; +pub type UIA_HEADINGLEVEL_ID = u32; +pub type UIA_LANDMARKTYPE_ID = u32; +pub type UIA_METADATA_ID = u32; +pub type UIA_PATTERN_ID = u32; +pub type UIA_PROPERTY_ID = u32; +pub type UIA_STYLE_ID = u32; +pub type UIA_TEXTATTRIBUTE_ID = u32; +pub type UIAutomationType = i32; +pub type VisualEffects = i32; +pub type WindowInteractionState = i32; +pub type WindowVisualState = i32; +pub type ZoomUnit = i32; +#[repr(C)] +pub struct ACCESSTIMEOUT { + pub cbSize: u32, + pub dwFlags: u32, + pub iTimeOutMSec: u32, +} +impl ::core::marker::Copy for ACCESSTIMEOUT {} +impl ::core::clone::Clone for ACCESSTIMEOUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ExtendedProperty { + pub PropertyName: ::windows_sys::core::BSTR, + pub PropertyValue: ::windows_sys::core::BSTR, +} +impl ::core::marker::Copy for ExtendedProperty {} +impl ::core::clone::Clone for ExtendedProperty { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FILTERKEYS { + pub cbSize: u32, + pub dwFlags: u32, + pub iWaitMSec: u32, + pub iDelayMSec: u32, + pub iRepeatMSec: u32, + pub iBounceMSec: u32, +} +impl ::core::marker::Copy for FILTERKEYS {} +impl ::core::clone::Clone for FILTERKEYS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HIGHCONTRASTA { + pub cbSize: u32, + pub dwFlags: HIGHCONTRASTW_FLAGS, + pub lpszDefaultScheme: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for HIGHCONTRASTA {} +impl ::core::clone::Clone for HIGHCONTRASTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HIGHCONTRASTW { + pub cbSize: u32, + pub dwFlags: HIGHCONTRASTW_FLAGS, + pub lpszDefaultScheme: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for HIGHCONTRASTW {} +impl ::core::clone::Clone for HIGHCONTRASTW { + fn clone(&self) -> Self { + *self + } +} +pub type HUIAEVENT = isize; +pub type HUIANODE = isize; +pub type HUIAPATTERNOBJECT = isize; +pub type HUIATEXTRANGE = isize; +pub type HWINEVENTHOOK = isize; +#[repr(C)] +pub struct MOUSEKEYS { + pub cbSize: u32, + pub dwFlags: u32, + pub iMaxSpeed: u32, + pub iTimeToMaxSpeed: u32, + pub iCtrlSpeed: u32, + pub dwReserved1: u32, + pub dwReserved2: u32, +} +impl ::core::marker::Copy for MOUSEKEYS {} +impl ::core::clone::Clone for MOUSEKEYS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MSAAMENUINFO { + pub dwMSAASignature: u32, + pub cchWText: u32, + pub pszWText: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for MSAAMENUINFO {} +impl ::core::clone::Clone for MSAAMENUINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIALKEYSA { + pub cbSize: u32, + pub dwFlags: SERIALKEYS_FLAGS, + pub lpszActivePort: ::windows_sys::core::PSTR, + pub lpszPort: ::windows_sys::core::PSTR, + pub iBaudRate: u32, + pub iPortState: u32, + pub iActive: u32, +} +impl ::core::marker::Copy for SERIALKEYSA {} +impl ::core::clone::Clone for SERIALKEYSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SERIALKEYSW { + pub cbSize: u32, + pub dwFlags: SERIALKEYS_FLAGS, + pub lpszActivePort: ::windows_sys::core::PWSTR, + pub lpszPort: ::windows_sys::core::PWSTR, + pub iBaudRate: u32, + pub iPortState: u32, + pub iActive: u32, +} +impl ::core::marker::Copy for SERIALKEYSW {} +impl ::core::clone::Clone for SERIALKEYSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOUNDSENTRYA { + pub cbSize: u32, + pub dwFlags: SOUNDSENTRY_FLAGS, + pub iFSTextEffect: SOUNDSENTRY_TEXT_EFFECT, + pub iFSTextEffectMSec: u32, + pub iFSTextEffectColorBits: u32, + pub iFSGrafEffect: SOUND_SENTRY_GRAPHICS_EFFECT, + pub iFSGrafEffectMSec: u32, + pub iFSGrafEffectColor: u32, + pub iWindowsEffect: SOUNDSENTRY_WINDOWS_EFFECT, + pub iWindowsEffectMSec: u32, + pub lpszWindowsEffectDLL: ::windows_sys::core::PSTR, + pub iWindowsEffectOrdinal: u32, +} +impl ::core::marker::Copy for SOUNDSENTRYA {} +impl ::core::clone::Clone for SOUNDSENTRYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOUNDSENTRYW { + pub cbSize: u32, + pub dwFlags: SOUNDSENTRY_FLAGS, + pub iFSTextEffect: SOUNDSENTRY_TEXT_EFFECT, + pub iFSTextEffectMSec: u32, + pub iFSTextEffectColorBits: u32, + pub iFSGrafEffect: SOUND_SENTRY_GRAPHICS_EFFECT, + pub iFSGrafEffectMSec: u32, + pub iFSGrafEffectColor: u32, + pub iWindowsEffect: SOUNDSENTRY_WINDOWS_EFFECT, + pub iWindowsEffectMSec: u32, + pub lpszWindowsEffectDLL: ::windows_sys::core::PWSTR, + pub iWindowsEffectOrdinal: u32, +} +impl ::core::marker::Copy for SOUNDSENTRYW {} +impl ::core::clone::Clone for SOUNDSENTRYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STICKYKEYS { + pub cbSize: u32, + pub dwFlags: STICKYKEYS_FLAGS, +} +impl ::core::marker::Copy for STICKYKEYS {} +impl ::core::clone::Clone for STICKYKEYS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TOGGLEKEYS { + pub cbSize: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for TOGGLEKEYS {} +impl ::core::clone::Clone for TOGGLEKEYS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UIAutomationEventInfo { + pub guid: ::windows_sys::core::GUID, + pub pProgrammaticName: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for UIAutomationEventInfo {} +impl ::core::clone::Clone for UIAutomationEventInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct UIAutomationMethodInfo { + pub pProgrammaticName: ::windows_sys::core::PCWSTR, + pub doSetFocus: super::super::Foundation::BOOL, + pub cInParameters: u32, + pub cOutParameters: u32, + pub pParameterTypes: *mut UIAutomationType, + pub pParameterNames: *const ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for UIAutomationMethodInfo {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for UIAutomationMethodInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UIAutomationParameter { + pub r#type: UIAutomationType, + pub pData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for UIAutomationParameter {} +impl ::core::clone::Clone for UIAutomationParameter { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct UIAutomationPatternInfo { + pub guid: ::windows_sys::core::GUID, + pub pProgrammaticName: ::windows_sys::core::PCWSTR, + pub providerInterfaceId: ::windows_sys::core::GUID, + pub clientInterfaceId: ::windows_sys::core::GUID, + pub cProperties: u32, + pub pProperties: *mut UIAutomationPropertyInfo, + pub cMethods: u32, + pub pMethods: *mut UIAutomationMethodInfo, + pub cEvents: u32, + pub pEvents: *mut UIAutomationEventInfo, + pub pPatternHandler: IUIAutomationPatternHandler, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for UIAutomationPatternInfo {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for UIAutomationPatternInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UIAutomationPropertyInfo { + pub guid: ::windows_sys::core::GUID, + pub pProgrammaticName: ::windows_sys::core::PCWSTR, + pub r#type: UIAutomationType, +} +impl ::core::marker::Copy for UIAutomationPropertyInfo {} +impl ::core::clone::Clone for UIAutomationPropertyInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UiaAndOrCondition { + pub ConditionType: ConditionType, + pub ppConditions: *mut *mut UiaCondition, + pub cConditions: i32, +} +impl ::core::marker::Copy for UiaAndOrCondition {} +impl ::core::clone::Clone for UiaAndOrCondition { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UiaAsyncContentLoadedEventArgs { + pub Type: EventArgsType, + pub EventId: i32, + pub AsyncContentLoadedState: AsyncContentLoadedState, + pub PercentComplete: f64, +} +impl ::core::marker::Copy for UiaAsyncContentLoadedEventArgs {} +impl ::core::clone::Clone for UiaAsyncContentLoadedEventArgs { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UiaCacheRequest { + pub pViewCondition: *mut UiaCondition, + pub Scope: TreeScope, + pub pProperties: *mut i32, + pub cProperties: i32, + pub pPatterns: *mut i32, + pub cPatterns: i32, + pub automationElementMode: AutomationElementMode, +} +impl ::core::marker::Copy for UiaCacheRequest {} +impl ::core::clone::Clone for UiaCacheRequest { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct UiaChangeInfo { + pub uiaId: i32, + pub payload: super::super::System::Variant::VARIANT, + pub extraInfo: super::super::System::Variant::VARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for UiaChangeInfo {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for UiaChangeInfo { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct UiaChangesEventArgs { + pub Type: EventArgsType, + pub EventId: i32, + pub EventIdCount: i32, + pub pUiaChanges: *mut UiaChangeInfo, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for UiaChangesEventArgs {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for UiaChangesEventArgs { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UiaCondition { + pub ConditionType: ConditionType, +} +impl ::core::marker::Copy for UiaCondition {} +impl ::core::clone::Clone for UiaCondition { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UiaEventArgs { + pub Type: EventArgsType, + pub EventId: i32, +} +impl ::core::marker::Copy for UiaEventArgs {} +impl ::core::clone::Clone for UiaEventArgs { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct UiaFindParams { + pub MaxDepth: i32, + pub FindFirst: super::super::Foundation::BOOL, + pub ExcludeRoot: super::super::Foundation::BOOL, + pub pFindCondition: *mut UiaCondition, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for UiaFindParams {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for UiaFindParams { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UiaNotCondition { + pub ConditionType: ConditionType, + pub pCondition: *mut UiaCondition, +} +impl ::core::marker::Copy for UiaNotCondition {} +impl ::core::clone::Clone for UiaNotCondition { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UiaPoint { + pub x: f64, + pub y: f64, +} +impl ::core::marker::Copy for UiaPoint {} +impl ::core::clone::Clone for UiaPoint { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct UiaPropertyChangedEventArgs { + pub Type: EventArgsType, + pub EventId: UIA_EVENT_ID, + pub PropertyId: i32, + pub OldValue: super::super::System::Variant::VARIANT, + pub NewValue: super::super::System::Variant::VARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for UiaPropertyChangedEventArgs {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for UiaPropertyChangedEventArgs { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct UiaPropertyCondition { + pub ConditionType: ConditionType, + pub PropertyId: UIA_PROPERTY_ID, + pub Value: super::super::System::Variant::VARIANT, + pub Flags: PropertyConditionFlags, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for UiaPropertyCondition {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for UiaPropertyCondition { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UiaRect { + pub left: f64, + pub top: f64, + pub width: f64, + pub height: f64, +} +impl ::core::marker::Copy for UiaRect {} +impl ::core::clone::Clone for UiaRect { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UiaStructureChangedEventArgs { + pub Type: EventArgsType, + pub EventId: i32, + pub StructureChangeType: StructureChangeType, + pub pRuntimeId: *mut i32, + pub cRuntimeIdLen: i32, +} +impl ::core::marker::Copy for UiaStructureChangedEventArgs {} +impl ::core::clone::Clone for UiaStructureChangedEventArgs { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct UiaTextEditTextChangedEventArgs { + pub Type: EventArgsType, + pub EventId: i32, + pub TextEditChangeType: TextEditChangeType, + pub pTextChange: *mut super::super::System::Com::SAFEARRAY, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for UiaTextEditTextChangedEventArgs {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for UiaTextEditTextChangedEventArgs { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UiaWindowClosedEventArgs { + pub Type: EventArgsType, + pub EventId: i32, + pub pRuntimeId: *mut i32, + pub cRuntimeIdLen: i32, +} +impl ::core::marker::Copy for UiaWindowClosedEventArgs {} +impl ::core::clone::Clone for UiaWindowClosedEventArgs { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub type LPFNACCESSIBLECHILDREN = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub type LPFNACCESSIBLEOBJECTFROMPOINT = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFNACCESSIBLEOBJECTFROMWINDOW = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFNCREATESTDACCESSIBLEOBJECT = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFNLRESULTFROMOBJECT = ::core::option::Option super::super::Foundation::LRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFNOBJECTFROMLRESULT = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub type UiaEventCallback = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub type UiaProviderCallback = ::core::option::Option *mut super::super::System::Com::SAFEARRAY>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WINEVENTPROC = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/ColorSystem/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/ColorSystem/mod.rs new file mode 100644 index 000000000..305c3b1d4 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/ColorSystem/mod.rs @@ -0,0 +1,985 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AssociateColorProfileWithDeviceA(pmachinename : ::windows_sys::core::PCSTR, pprofilename : ::windows_sys::core::PCSTR, pdevicename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AssociateColorProfileWithDeviceW(pmachinename : ::windows_sys::core::PCWSTR, pprofilename : ::windows_sys::core::PCWSTR, pdevicename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CMCheckColors(hcmtransform : isize, lpainputcolors : *const COLOR, ncolors : u32, ctinput : COLORTYPE, lparesult : *mut u8) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CMCheckColorsInGamut(hcmtransform : isize, lpargbtriple : *const super::super::Graphics::Gdi:: RGBTRIPLE, lparesult : *mut u8, ncount : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CMCheckRGBs(hcmtransform : isize, lpsrcbits : *const ::core::ffi::c_void, bminput : BMFORMAT, dwwidth : u32, dwheight : u32, dwstride : u32, lparesult : *mut u8, pfncallback : LPBMCALLBACKFN, ulcallbackdata : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CMConvertColorNameToIndex(hprofile : isize, pacolorname : *const *const i8, paindex : *mut u32, dwcount : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CMConvertIndexToColorName(hprofile : isize, paindex : *const u32, pacolorname : *mut *mut i8, dwcount : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CMCreateDeviceLinkProfile(pahprofiles : *const isize, nprofiles : u32, padwintents : *const u32, nintents : u32, dwflags : u32, lpprofiledata : *mut *mut u8) -> super::super::Foundation:: BOOL); +::windows_targets::link!("icm32.dll" "system" fn CMCreateMultiProfileTransform(pahprofiles : *const isize, nprofiles : u32, padwintents : *const u32, nintents : u32, dwflags : u32) -> isize); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CMCreateProfile(lpcolorspace : *mut LOGCOLORSPACEA, lpprofiledata : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CMCreateProfileW(lpcolorspace : *mut LOGCOLORSPACEW, lpprofiledata : *mut *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn CMCreateTransform(lpcolorspace : *const LOGCOLORSPACEA, lpdevcharacter : *const ::core::ffi::c_void, lptargetdevcharacter : *const ::core::ffi::c_void) -> isize); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn CMCreateTransformExt(lpcolorspace : *const LOGCOLORSPACEA, lpdevcharacter : *const ::core::ffi::c_void, lptargetdevcharacter : *const ::core::ffi::c_void, dwflags : u32) -> isize); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn CMCreateTransformExtW(lpcolorspace : *const LOGCOLORSPACEW, lpdevcharacter : *const ::core::ffi::c_void, lptargetdevcharacter : *const ::core::ffi::c_void, dwflags : u32) -> isize); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn CMCreateTransformW(lpcolorspace : *const LOGCOLORSPACEW, lpdevcharacter : *const ::core::ffi::c_void, lptargetdevcharacter : *const ::core::ffi::c_void) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CMDeleteTransform(hcmtransform : isize) -> super::super::Foundation:: BOOL); +::windows_targets::link!("icm32.dll" "system" fn CMGetInfo(dwinfo : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CMGetNamedProfileInfo(hprofile : isize, pnamedprofileinfo : *mut NAMED_PROFILE_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CMIsProfileValid(hprofile : isize, lpbvalid : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CMTranslateColors(hcmtransform : isize, lpainputcolors : *const COLOR, ncolors : u32, ctinput : COLORTYPE, lpaoutputcolors : *mut COLOR, ctoutput : COLORTYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CMTranslateRGB(hcmtransform : isize, colorref : super::super::Foundation:: COLORREF, lpcolorref : *mut u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CMTranslateRGBs(hcmtransform : isize, lpsrcbits : *const ::core::ffi::c_void, bminput : BMFORMAT, dwwidth : u32, dwheight : u32, dwstride : u32, lpdestbits : *mut ::core::ffi::c_void, bmoutput : BMFORMAT, dwtranslatedirection : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("icm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CMTranslateRGBsExt(hcmtransform : isize, lpsrcbits : *const ::core::ffi::c_void, bminput : BMFORMAT, dwwidth : u32, dwheight : u32, dwinputstride : u32, lpdestbits : *mut ::core::ffi::c_void, bmoutput : BMFORMAT, dwoutputstride : u32, lpfncallback : LPBMCALLBACKFN, ulcallbackdata : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckBitmapBits(hcolortransform : isize, psrcbits : *const ::core::ffi::c_void, bminput : BMFORMAT, dwwidth : u32, dwheight : u32, dwstride : u32, paresult : *mut u8, pfncallback : LPBMCALLBACKFN, lpcallbackdata : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckColors(hcolortransform : isize, painputcolors : *const COLOR, ncolors : u32, ctinput : COLORTYPE, paresult : *mut u8) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CheckColorsInGamut(hdc : super::super::Graphics::Gdi:: HDC, lprgbtriple : *const super::super::Graphics::Gdi:: RGBTRIPLE, dlpbuffer : *mut ::core::ffi::c_void, ncount : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseColorProfile(hprofile : isize) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ColorCorrectPalette(hdc : super::super::Graphics::Gdi:: HDC, hpal : super::super::Graphics::Gdi:: HPALETTE, defirst : u32, num : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ColorMatchToTarget(hdc : super::super::Graphics::Gdi:: HDC, hdctarget : super::super::Graphics::Gdi:: HDC, action : COLOR_MATCH_TO_TARGET_ACTION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ColorProfileAddDisplayAssociation(scope : WCS_PROFILE_MANAGEMENT_SCOPE, profilename : ::windows_sys::core::PCWSTR, targetadapterid : super::super::Foundation:: LUID, sourceid : u32, setasdefault : super::super::Foundation:: BOOL, associateasadvancedcolor : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ColorProfileGetDisplayDefault(scope : WCS_PROFILE_MANAGEMENT_SCOPE, targetadapterid : super::super::Foundation:: LUID, sourceid : u32, profiletype : COLORPROFILETYPE, profilesubtype : COLORPROFILESUBTYPE, profilename : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ColorProfileGetDisplayList(scope : WCS_PROFILE_MANAGEMENT_SCOPE, targetadapterid : super::super::Foundation:: LUID, sourceid : u32, profilelist : *mut *mut ::windows_sys::core::PWSTR, profilecount : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ColorProfileGetDisplayUserScope(targetadapterid : super::super::Foundation:: LUID, sourceid : u32, scope : *mut WCS_PROFILE_MANAGEMENT_SCOPE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ColorProfileRemoveDisplayAssociation(scope : WCS_PROFILE_MANAGEMENT_SCOPE, profilename : ::windows_sys::core::PCWSTR, targetadapterid : super::super::Foundation:: LUID, sourceid : u32, dissociateadvancedcolor : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ColorProfileSetDisplayDefaultAssociation(scope : WCS_PROFILE_MANAGEMENT_SCOPE, profilename : ::windows_sys::core::PCWSTR, profiletype : COLORPROFILETYPE, profilesubtype : COLORPROFILESUBTYPE, targetadapterid : super::super::Foundation:: LUID, sourceid : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertColorNameToIndex(hprofile : isize, pacolorname : *const *const i8, paindex : *mut u32, dwcount : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ConvertIndexToColorName(hprofile : isize, paindex : *const u32, pacolorname : *mut *mut i8, dwcount : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn CreateColorSpaceA(lplcs : *const LOGCOLORSPACEA) -> HCOLORSPACE); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn CreateColorSpaceW(lplcs : *const LOGCOLORSPACEW) -> HCOLORSPACE); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn CreateColorTransformA(plogcolorspace : *const LOGCOLORSPACEA, hdestprofile : isize, htargetprofile : isize, dwflags : u32) -> isize); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn CreateColorTransformW(plogcolorspace : *const LOGCOLORSPACEW, hdestprofile : isize, htargetprofile : isize, dwflags : u32) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateDeviceLinkProfile(hprofile : *const isize, nprofiles : u32, padwintent : *const u32, nintents : u32, dwflags : u32, pprofiledata : *mut *mut u8, indexpreferredcmm : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("mscms.dll" "system" fn CreateMultiProfileTransform(pahprofiles : *const isize, nprofiles : u32, padwintent : *const u32, nintents : u32, dwflags : u32, indexpreferredcmm : u32) -> isize); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CreateProfileFromLogColorSpaceA(plogcolorspace : *const LOGCOLORSPACEA, pprofile : *mut *mut u8) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CreateProfileFromLogColorSpaceW(plogcolorspace : *const LOGCOLORSPACEW, pprofile : *mut *mut u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteColorSpace(hcs : HCOLORSPACE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteColorTransform(hxform : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DisassociateColorProfileFromDeviceA(pmachinename : ::windows_sys::core::PCSTR, pprofilename : ::windows_sys::core::PCSTR, pdevicename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DisassociateColorProfileFromDeviceW(pmachinename : ::windows_sys::core::PCWSTR, pprofilename : ::windows_sys::core::PCWSTR, pdevicename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumColorProfilesA(pmachinename : ::windows_sys::core::PCSTR, penumrecord : *const ENUMTYPEA, penumerationbuffer : *mut u8, pdwsizeofenumerationbuffer : *mut u32, pnprofiles : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumColorProfilesW(pmachinename : ::windows_sys::core::PCWSTR, penumrecord : *const ENUMTYPEW, penumerationbuffer : *mut u8, pdwsizeofenumerationbuffer : *mut u32, pnprofiles : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn EnumICMProfilesA(hdc : super::super::Graphics::Gdi:: HDC, proc : ICMENUMPROCA, param2 : super::super::Foundation:: LPARAM) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn EnumICMProfilesW(hdc : super::super::Graphics::Gdi:: HDC, proc : ICMENUMPROCW, param2 : super::super::Foundation:: LPARAM) -> i32); +::windows_targets::link!("mscms.dll" "system" fn GetCMMInfo(hcolortransform : isize, param1 : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetColorDirectoryA(pmachinename : ::windows_sys::core::PCSTR, pbuffer : ::windows_sys::core::PSTR, pdwsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetColorDirectoryW(pmachinename : ::windows_sys::core::PCWSTR, pbuffer : ::windows_sys::core::PWSTR, pdwsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetColorProfileElement(hprofile : isize, tag : u32, dwoffset : u32, pcbelement : *mut u32, pelement : *mut ::core::ffi::c_void, pbreference : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetColorProfileElementTag(hprofile : isize, dwindex : u32, ptag : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetColorProfileFromHandle(hprofile : isize, pprofile : *mut u8, pcbprofile : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetColorProfileHeader(hprofile : isize, pheader : *mut PROFILEHEADER) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetColorSpace(hdc : super::super::Graphics::Gdi:: HDC) -> HCOLORSPACE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCountColorProfileElements(hprofile : isize, pnelementcount : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetDeviceGammaRamp(hdc : super::super::Graphics::Gdi:: HDC, lpramp : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetICMProfileA(hdc : super::super::Graphics::Gdi:: HDC, pbufsize : *mut u32, pszfilename : ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetICMProfileW(hdc : super::super::Graphics::Gdi:: HDC, pbufsize : *mut u32, pszfilename : ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetLogColorSpaceA(hcolorspace : HCOLORSPACE, lpbuffer : *mut LOGCOLORSPACEA, nsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetLogColorSpaceW(hcolorspace : HCOLORSPACE, lpbuffer : *mut LOGCOLORSPACEW, nsize : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNamedProfileInfo(hprofile : isize, pnamedprofileinfo : *mut NAMED_PROFILE_INFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPS2ColorRenderingDictionary(hprofile : isize, dwintent : u32, pps2colorrenderingdictionary : *mut u8, pcbps2colorrenderingdictionary : *mut u32, pbbinary : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPS2ColorRenderingIntent(hprofile : isize, dwintent : u32, pbuffer : *mut u8, pcbps2colorrenderingintent : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPS2ColorSpaceArray(hprofile : isize, dwintent : u32, dwcsatype : u32, pps2colorspacearray : *mut u8, pcbps2colorspacearray : *mut u32, pbbinary : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetStandardColorSpaceProfileA(pmachinename : ::windows_sys::core::PCSTR, dwscs : u32, pbuffer : ::windows_sys::core::PSTR, pcbsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetStandardColorSpaceProfileW(pmachinename : ::windows_sys::core::PCWSTR, dwscs : u32, pbuffer : ::windows_sys::core::PWSTR, pcbsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InstallColorProfileA(pmachinename : ::windows_sys::core::PCSTR, pprofilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InstallColorProfileW(pmachinename : ::windows_sys::core::PCWSTR, pprofilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsColorProfileTagPresent(hprofile : isize, tag : u32, pbpresent : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsColorProfileValid(hprofile : isize, pbvalid : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("mscms.dll" "system" fn OpenColorProfileA(pprofile : *const PROFILE, dwdesiredaccess : u32, dwsharemode : u32, dwcreationmode : u32) -> isize); +::windows_targets::link!("mscms.dll" "system" fn OpenColorProfileW(pprofile : *const PROFILE, dwdesiredaccess : u32, dwsharemode : u32, dwcreationmode : u32) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterCMMA(pmachinename : ::windows_sys::core::PCSTR, cmmid : u32, pcmmdll : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterCMMW(pmachinename : ::windows_sys::core::PCWSTR, cmmid : u32, pcmmdll : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SelectCMM(dwcmmtype : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetColorProfileElement(hprofile : isize, tag : u32, dwoffset : u32, pcbelement : *const u32, pelement : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetColorProfileElementReference(hprofile : isize, newtag : u32, reftag : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetColorProfileElementSize(hprofile : isize, tagtype : u32, pcbelement : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn SetColorProfileHeader(hprofile : isize, pheader : *const PROFILEHEADER) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn SetColorSpace(hdc : super::super::Graphics::Gdi:: HDC, hcs : HCOLORSPACE) -> HCOLORSPACE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn SetDeviceGammaRamp(hdc : super::super::Graphics::Gdi:: HDC, lpramp : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn SetICMMode(hdc : super::super::Graphics::Gdi:: HDC, mode : ICM_MODE) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn SetICMProfileA(hdc : super::super::Graphics::Gdi:: HDC, lpfilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn SetICMProfileW(hdc : super::super::Graphics::Gdi:: HDC, lpfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetStandardColorSpaceProfileA(pmachinename : ::windows_sys::core::PCSTR, dwprofileid : u32, pprofilename : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetStandardColorSpaceProfileW(pmachinename : ::windows_sys::core::PCWSTR, dwprofileid : u32, pprofilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("icmui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SetupColorMatchingA(pcms : *mut COLORMATCHSETUPA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("icmui.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SetupColorMatchingW(pcms : *mut COLORMATCHSETUPW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TranslateBitmapBits(hcolortransform : isize, psrcbits : *const ::core::ffi::c_void, bminput : BMFORMAT, dwwidth : u32, dwheight : u32, dwinputstride : u32, pdestbits : *mut ::core::ffi::c_void, bmoutput : BMFORMAT, dwoutputstride : u32, pfncallback : LPBMCALLBACKFN, ulcallbackdata : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TranslateColors(hcolortransform : isize, painputcolors : *const COLOR, ncolors : u32, ctinput : COLORTYPE, paoutputcolors : *mut COLOR, ctoutput : COLORTYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UninstallColorProfileA(pmachinename : ::windows_sys::core::PCSTR, pprofilename : ::windows_sys::core::PCSTR, bdelete : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UninstallColorProfileW(pmachinename : ::windows_sys::core::PCWSTR, pprofilename : ::windows_sys::core::PCWSTR, bdelete : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterCMMA(pmachinename : ::windows_sys::core::PCSTR, cmmid : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterCMMW(pmachinename : ::windows_sys::core::PCWSTR, cmmid : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdateICMRegKeyA(reserved : u32, lpszcmid : ::windows_sys::core::PCSTR, lpszfilename : ::windows_sys::core::PCSTR, command : ICM_COMMAND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("gdi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdateICMRegKeyW(reserved : u32, lpszcmid : ::windows_sys::core::PCWSTR, lpszfilename : ::windows_sys::core::PCWSTR, command : ICM_COMMAND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsAssociateColorProfileWithDevice(scope : WCS_PROFILE_MANAGEMENT_SCOPE, pprofilename : ::windows_sys::core::PCWSTR, pdevicename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsCheckColors(hcolortransform : isize, ncolors : u32, ninputchannels : u32, cdtinput : COLORDATATYPE, cbinput : u32, pinputdata : *const ::core::ffi::c_void, paresult : *mut u8) -> super::super::Foundation:: BOOL); +::windows_targets::link!("mscms.dll" "system" fn WcsCreateIccProfile(hwcsprofile : isize, dwoptions : u32) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsDisassociateColorProfileFromDevice(scope : WCS_PROFILE_MANAGEMENT_SCOPE, pprofilename : ::windows_sys::core::PCWSTR, pdevicename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsEnumColorProfiles(scope : WCS_PROFILE_MANAGEMENT_SCOPE, penumrecord : *const ENUMTYPEW, pbuffer : *mut u8, dwsize : u32, pnprofiles : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsEnumColorProfilesSize(scope : WCS_PROFILE_MANAGEMENT_SCOPE, penumrecord : *const ENUMTYPEW, pdwsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsGetCalibrationManagementState(pbisenabled : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsGetDefaultColorProfile(scope : WCS_PROFILE_MANAGEMENT_SCOPE, pdevicename : ::windows_sys::core::PCWSTR, cptcolorprofiletype : COLORPROFILETYPE, cpstcolorprofilesubtype : COLORPROFILESUBTYPE, dwprofileid : u32, cbprofilename : u32, pprofilename : ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsGetDefaultColorProfileSize(scope : WCS_PROFILE_MANAGEMENT_SCOPE, pdevicename : ::windows_sys::core::PCWSTR, cptcolorprofiletype : COLORPROFILETYPE, cpstcolorprofilesubtype : COLORPROFILESUBTYPE, dwprofileid : u32, pcbprofilename : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsGetDefaultRenderingIntent(scope : WCS_PROFILE_MANAGEMENT_SCOPE, pdwrenderingintent : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsGetUsePerUserProfiles(pdevicename : ::windows_sys::core::PCWSTR, dwdeviceclass : u32, puseperuserprofiles : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("mscms.dll" "system" fn WcsOpenColorProfileA(pcdmpprofile : *const PROFILE, pcampprofile : *const PROFILE, pgmmpprofile : *const PROFILE, dwdesireaccess : u32, dwsharemode : u32, dwcreationmode : u32, dwflags : u32) -> isize); +::windows_targets::link!("mscms.dll" "system" fn WcsOpenColorProfileW(pcdmpprofile : *const PROFILE, pcampprofile : *const PROFILE, pgmmpprofile : *const PROFILE, dwdesireaccess : u32, dwsharemode : u32, dwcreationmode : u32, dwflags : u32) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsSetCalibrationManagementState(bisenabled : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsSetDefaultColorProfile(scope : WCS_PROFILE_MANAGEMENT_SCOPE, pdevicename : ::windows_sys::core::PCWSTR, cptcolorprofiletype : COLORPROFILETYPE, cpstcolorprofilesubtype : COLORPROFILESUBTYPE, dwprofileid : u32, pprofilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsSetDefaultRenderingIntent(scope : WCS_PROFILE_MANAGEMENT_SCOPE, dwrenderingintent : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsSetUsePerUserProfiles(pdevicename : ::windows_sys::core::PCWSTR, dwdeviceclass : u32, useperuserprofiles : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("mscms.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WcsTranslateColors(hcolortransform : isize, ncolors : u32, ninputchannels : u32, cdtinput : COLORDATATYPE, cbinput : u32, pinputdata : *const ::core::ffi::c_void, noutputchannels : u32, cdtoutput : COLORDATATYPE, cboutput : u32, poutputdata : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +pub type IDeviceModelPlugIn = *mut ::core::ffi::c_void; +pub type IGamutMapModelPlugIn = *mut ::core::ffi::c_void; +pub const ATTRIB_MATTE: u32 = 2u32; +pub const ATTRIB_TRANSPARENCY: u32 = 1u32; +pub const BEST_MODE: u32 = 3u32; +pub const BM_10b_G3CH: BMFORMAT = 1028i32; +pub const BM_10b_Lab: BMFORMAT = 1027i32; +pub const BM_10b_RGB: BMFORMAT = 9i32; +pub const BM_10b_XYZ: BMFORMAT = 1025i32; +pub const BM_10b_Yxy: BMFORMAT = 1026i32; +pub const BM_16b_G3CH: BMFORMAT = 1284i32; +pub const BM_16b_GRAY: BMFORMAT = 1285i32; +pub const BM_16b_Lab: BMFORMAT = 1283i32; +pub const BM_16b_RGB: BMFORMAT = 10i32; +pub const BM_16b_XYZ: BMFORMAT = 1281i32; +pub const BM_16b_Yxy: BMFORMAT = 1282i32; +pub const BM_32b_scARGB: BMFORMAT = 1538i32; +pub const BM_32b_scRGB: BMFORMAT = 1537i32; +pub const BM_565RGB: BMFORMAT = 1i32; +pub const BM_5CHANNEL: BMFORMAT = 517i32; +pub const BM_6CHANNEL: BMFORMAT = 518i32; +pub const BM_7CHANNEL: BMFORMAT = 519i32; +pub const BM_8CHANNEL: BMFORMAT = 520i32; +pub const BM_BGRTRIPLETS: BMFORMAT = 4i32; +pub const BM_CMYKQUADS: BMFORMAT = 32i32; +pub const BM_G3CHTRIPLETS: BMFORMAT = 516i32; +pub const BM_GRAY: BMFORMAT = 521i32; +pub const BM_KYMCQUADS: BMFORMAT = 773i32; +pub const BM_LabTRIPLETS: BMFORMAT = 515i32; +pub const BM_NAMED_INDEX: BMFORMAT = 1029i32; +pub const BM_R10G10B10A2: BMFORMAT = 1793i32; +pub const BM_R10G10B10A2_XR: BMFORMAT = 1794i32; +pub const BM_R16G16B16A16_FLOAT: BMFORMAT = 1795i32; +pub const BM_RGBTRIPLETS: BMFORMAT = 2i32; +pub const BM_S2DOT13FIXED_scARGB: BMFORMAT = 1540i32; +pub const BM_S2DOT13FIXED_scRGB: BMFORMAT = 1539i32; +pub const BM_XYZTRIPLETS: BMFORMAT = 513i32; +pub const BM_YxyTRIPLETS: BMFORMAT = 514i32; +pub const BM_x555G3CH: BMFORMAT = 260i32; +pub const BM_x555Lab: BMFORMAT = 259i32; +pub const BM_x555RGB: BMFORMAT = 0i32; +pub const BM_x555XYZ: BMFORMAT = 257i32; +pub const BM_x555Yxy: BMFORMAT = 258i32; +pub const BM_xBGRQUADS: BMFORMAT = 16i32; +pub const BM_xG3CHQUADS: BMFORMAT = 772i32; +pub const BM_xRGBQUADS: BMFORMAT = 8i32; +pub const CATID_WcsPlugin: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa0b402e0_8240_405f_8a16_8a5b4df2f0dd); +pub const CMM_DESCRIPTION: u32 = 5u32; +pub const CMM_DLL_VERSION: u32 = 3u32; +pub const CMM_DRIVER_VERSION: u32 = 2u32; +pub const CMM_FROM_PROFILE: u32 = 0u32; +pub const CMM_IDENT: u32 = 1u32; +pub const CMM_LOGOICON: u32 = 6u32; +pub const CMM_VERSION: u32 = 4u32; +pub const CMM_WIN_VERSION: u32 = 0u32; +pub const CMS_BACKWARD: u32 = 1u32; +pub const CMS_DISABLEICM: u32 = 1u32; +pub const CMS_DISABLEINTENT: u32 = 1024u32; +pub const CMS_DISABLERENDERINTENT: u32 = 2048u32; +pub const CMS_ENABLEPROOFING: u32 = 2u32; +pub const CMS_FORWARD: u32 = 0u32; +pub const CMS_MONITOROVERFLOW: i32 = -2147483648i32; +pub const CMS_PRINTEROVERFLOW: i32 = 1073741824i32; +pub const CMS_SETMONITORPROFILE: u32 = 16u32; +pub const CMS_SETPRINTERPROFILE: u32 = 32u32; +pub const CMS_SETPROOFINTENT: u32 = 8u32; +pub const CMS_SETRENDERINTENT: u32 = 4u32; +pub const CMS_SETTARGETPROFILE: u32 = 64u32; +pub const CMS_TARGETOVERFLOW: i32 = 536870912i32; +pub const CMS_USEAPPLYCALLBACK: u32 = 256u32; +pub const CMS_USEDESCRIPTION: u32 = 512u32; +pub const CMS_USEHOOK: u32 = 128u32; +pub const COLOR_10b_R10G10B10A2: COLORDATATYPE = 5i32; +pub const COLOR_10b_R10G10B10A2_XR: COLORDATATYPE = 6i32; +pub const COLOR_3_CHANNEL: COLORTYPE = 6i32; +pub const COLOR_5_CHANNEL: COLORTYPE = 8i32; +pub const COLOR_6_CHANNEL: COLORTYPE = 9i32; +pub const COLOR_7_CHANNEL: COLORTYPE = 10i32; +pub const COLOR_8_CHANNEL: COLORTYPE = 11i32; +pub const COLOR_BYTE: COLORDATATYPE = 1i32; +pub const COLOR_CMYK: COLORTYPE = 7i32; +pub const COLOR_FLOAT: COLORDATATYPE = 3i32; +pub const COLOR_FLOAT16: COLORDATATYPE = 7i32; +pub const COLOR_GRAY: COLORTYPE = 1i32; +pub const COLOR_Lab: COLORTYPE = 5i32; +pub const COLOR_MATCH_VERSION: u32 = 512u32; +pub const COLOR_NAMED: COLORTYPE = 12i32; +pub const COLOR_RGB: COLORTYPE = 2i32; +pub const COLOR_S2DOT13FIXED: COLORDATATYPE = 4i32; +pub const COLOR_WORD: COLORDATATYPE = 2i32; +pub const COLOR_XYZ: COLORTYPE = 3i32; +pub const COLOR_Yxy: COLORTYPE = 4i32; +pub const CPST_ABSOLUTE_COLORIMETRIC: COLORPROFILESUBTYPE = 3i32; +pub const CPST_CUSTOM_WORKING_SPACE: COLORPROFILESUBTYPE = 6i32; +pub const CPST_EXTENDED_DISPLAY_COLOR_MODE: COLORPROFILESUBTYPE = 8i32; +pub const CPST_NONE: COLORPROFILESUBTYPE = 4i32; +pub const CPST_PERCEPTUAL: COLORPROFILESUBTYPE = 0i32; +pub const CPST_RELATIVE_COLORIMETRIC: COLORPROFILESUBTYPE = 1i32; +pub const CPST_RGB_WORKING_SPACE: COLORPROFILESUBTYPE = 5i32; +pub const CPST_SATURATION: COLORPROFILESUBTYPE = 2i32; +pub const CPST_STANDARD_DISPLAY_COLOR_MODE: COLORPROFILESUBTYPE = 7i32; +pub const CPT_CAMP: COLORPROFILETYPE = 2i32; +pub const CPT_DMP: COLORPROFILETYPE = 1i32; +pub const CPT_GMMP: COLORPROFILETYPE = 3i32; +pub const CPT_ICC: COLORPROFILETYPE = 0i32; +pub const CSA_A: u32 = 1u32; +pub const CSA_ABC: u32 = 2u32; +pub const CSA_CMYK: u32 = 7u32; +pub const CSA_DEF: u32 = 3u32; +pub const CSA_DEFG: u32 = 4u32; +pub const CSA_GRAY: u32 = 5u32; +pub const CSA_Lab: u32 = 8u32; +pub const CSA_RGB: u32 = 6u32; +pub const CS_DELETE_TRANSFORM: COLOR_MATCH_TO_TARGET_ACTION = 3u32; +pub const CS_DISABLE: COLOR_MATCH_TO_TARGET_ACTION = 2u32; +pub const CS_ENABLE: COLOR_MATCH_TO_TARGET_ACTION = 1u32; +pub const DONT_USE_EMBEDDED_WCS_PROFILES: i32 = 1i32; +pub const ENABLE_GAMUT_CHECKING: u32 = 65536u32; +pub const ENUM_TYPE_VERSION: u32 = 768u32; +pub const ET_ATTRIBUTES: u32 = 8192u32; +pub const ET_CLASS: u32 = 32u32; +pub const ET_CMMTYPE: u32 = 16u32; +pub const ET_CONNECTIONSPACE: u32 = 128u32; +pub const ET_CREATOR: u32 = 32768u32; +pub const ET_DATACOLORSPACE: u32 = 64u32; +pub const ET_DEVICECLASS: u32 = 65536u32; +pub const ET_DEVICENAME: u32 = 1u32; +pub const ET_DITHERMODE: u32 = 4u32; +pub const ET_EXTENDEDDISPLAYCOLOR: u32 = 262144u32; +pub const ET_MANUFACTURER: u32 = 2048u32; +pub const ET_MEDIATYPE: u32 = 2u32; +pub const ET_MODEL: u32 = 4096u32; +pub const ET_PLATFORM: u32 = 512u32; +pub const ET_PROFILEFLAGS: u32 = 1024u32; +pub const ET_RENDERINGINTENT: u32 = 16384u32; +pub const ET_RESOLUTION: u32 = 8u32; +pub const ET_SIGNATURE: u32 = 256u32; +pub const ET_STANDARDDISPLAYCOLOR: u32 = 131072u32; +pub const FAST_TRANSLATE: u32 = 262144u32; +pub const FLAG_DEPENDENTONDATA: u32 = 2u32; +pub const FLAG_EMBEDDEDPROFILE: u32 = 1u32; +pub const FLAG_ENABLE_CHROMATIC_ADAPTATION: u32 = 33554432u32; +pub const ICM_ADDPROFILE: ICM_COMMAND = 1u32; +pub const ICM_DELETEPROFILE: ICM_COMMAND = 2u32; +pub const ICM_DONE_OUTSIDEDC: ICM_MODE = 4i32; +pub const ICM_OFF: ICM_MODE = 1i32; +pub const ICM_ON: ICM_MODE = 2i32; +pub const ICM_QUERY: ICM_MODE = 3i32; +pub const ICM_QUERYMATCH: ICM_COMMAND = 7u32; +pub const ICM_QUERYPROFILE: ICM_COMMAND = 3u32; +pub const ICM_REGISTERICMATCHER: ICM_COMMAND = 5u32; +pub const ICM_SETDEFAULTPROFILE: ICM_COMMAND = 4u32; +pub const ICM_UNREGISTERICMATCHER: ICM_COMMAND = 6u32; +pub const INDEX_DONT_CARE: u32 = 0u32; +pub const INTENT_ABSOLUTE_COLORIMETRIC: u32 = 3u32; +pub const INTENT_PERCEPTUAL: u32 = 0u32; +pub const INTENT_RELATIVE_COLORIMETRIC: u32 = 1u32; +pub const INTENT_SATURATION: u32 = 2u32; +pub const MAX_COLOR_CHANNELS: u32 = 8u32; +pub const MicrosoftHardwareColorV2: WCS_DEVICE_CAPABILITIES_TYPE = 2i32; +pub const NORMAL_MODE: u32 = 2u32; +pub const PRESERVEBLACK: u32 = 1048576u32; +pub const PROFILE_FILENAME: u32 = 1u32; +pub const PROFILE_MEMBUFFER: u32 = 2u32; +pub const PROFILE_READ: u32 = 1u32; +pub const PROFILE_READWRITE: u32 = 2u32; +pub const PROOF_MODE: u32 = 1u32; +pub const RESERVED: u32 = 2147483648u32; +pub const SEQUENTIAL_TRANSFORM: u32 = 2155872256u32; +pub const USE_RELATIVE_COLORIMETRIC: u32 = 131072u32; +pub const VideoCardGammaTable: WCS_DEVICE_CAPABILITIES_TYPE = 1i32; +pub const WCS_ALWAYS: u32 = 2097152u32; +pub const WCS_DEFAULT: i32 = 0i32; +pub const WCS_ICCONLY: i32 = 65536i32; +pub const WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER: WCS_PROFILE_MANAGEMENT_SCOPE = 1i32; +pub const WCS_PROFILE_MANAGEMENT_SCOPE_SYSTEM_WIDE: WCS_PROFILE_MANAGEMENT_SCOPE = 0i32; +pub type BMFORMAT = i32; +pub type COLORDATATYPE = i32; +pub type COLORPROFILESUBTYPE = i32; +pub type COLORPROFILETYPE = i32; +pub type COLORTYPE = i32; +pub type COLOR_MATCH_TO_TARGET_ACTION = u32; +pub type ICM_COMMAND = u32; +pub type ICM_MODE = i32; +pub type WCS_DEVICE_CAPABILITIES_TYPE = i32; +pub type WCS_PROFILE_MANAGEMENT_SCOPE = i32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BlackInformation { + pub fBlackOnly: super::super::Foundation::BOOL, + pub blackWeight: f32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BlackInformation {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BlackInformation { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CMYKCOLOR { + pub cyan: u16, + pub magenta: u16, + pub yellow: u16, + pub black: u16, +} +impl ::core::marker::Copy for CMYKCOLOR {} +impl ::core::clone::Clone for CMYKCOLOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union COLOR { + pub gray: GRAYCOLOR, + pub rgb: RGBCOLOR, + pub cmyk: CMYKCOLOR, + pub XYZ: XYZCOLOR, + pub Yxy: YxyCOLOR, + pub Lab: LabCOLOR, + pub gen3ch: GENERIC3CHANNEL, + pub named: NAMEDCOLOR, + pub hifi: HiFiCOLOR, + pub Anonymous: COLOR_0, +} +impl ::core::marker::Copy for COLOR {} +impl ::core::clone::Clone for COLOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COLOR_0 { + pub reserved1: u32, + pub reserved2: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for COLOR_0 {} +impl ::core::clone::Clone for COLOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct COLORMATCHSETUPA { + pub dwSize: u32, + pub dwVersion: u32, + pub dwFlags: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub pSourceName: ::windows_sys::core::PCSTR, + pub pDisplayName: ::windows_sys::core::PCSTR, + pub pPrinterName: ::windows_sys::core::PCSTR, + pub dwRenderIntent: u32, + pub dwProofingIntent: u32, + pub pMonitorProfile: ::windows_sys::core::PSTR, + pub ccMonitorProfile: u32, + pub pPrinterProfile: ::windows_sys::core::PSTR, + pub ccPrinterProfile: u32, + pub pTargetProfile: ::windows_sys::core::PSTR, + pub ccTargetProfile: u32, + pub lpfnHook: super::WindowsAndMessaging::DLGPROC, + pub lParam: super::super::Foundation::LPARAM, + pub lpfnApplyCallback: PCMSCALLBACKA, + pub lParamApplyCallback: super::super::Foundation::LPARAM, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for COLORMATCHSETUPA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for COLORMATCHSETUPA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct COLORMATCHSETUPW { + pub dwSize: u32, + pub dwVersion: u32, + pub dwFlags: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub pSourceName: ::windows_sys::core::PCWSTR, + pub pDisplayName: ::windows_sys::core::PCWSTR, + pub pPrinterName: ::windows_sys::core::PCWSTR, + pub dwRenderIntent: u32, + pub dwProofingIntent: u32, + pub pMonitorProfile: ::windows_sys::core::PWSTR, + pub ccMonitorProfile: u32, + pub pPrinterProfile: ::windows_sys::core::PWSTR, + pub ccPrinterProfile: u32, + pub pTargetProfile: ::windows_sys::core::PWSTR, + pub ccTargetProfile: u32, + pub lpfnHook: super::WindowsAndMessaging::DLGPROC, + pub lParam: super::super::Foundation::LPARAM, + pub lpfnApplyCallback: PCMSCALLBACKW, + pub lParamApplyCallback: super::super::Foundation::LPARAM, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for COLORMATCHSETUPW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for COLORMATCHSETUPW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct EMRCREATECOLORSPACE { + pub emr: super::super::Graphics::Gdi::EMR, + pub ihCS: u32, + pub lcs: LOGCOLORSPACEA, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for EMRCREATECOLORSPACE {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for EMRCREATECOLORSPACE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct EMRCREATECOLORSPACEW { + pub emr: super::super::Graphics::Gdi::EMR, + pub ihCS: u32, + pub lcs: LOGCOLORSPACEW, + pub dwFlags: u32, + pub cbData: u32, + pub Data: [u8; 1], +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for EMRCREATECOLORSPACEW {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for EMRCREATECOLORSPACEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENUMTYPEA { + pub dwSize: u32, + pub dwVersion: u32, + pub dwFields: u32, + pub pDeviceName: ::windows_sys::core::PCSTR, + pub dwMediaType: u32, + pub dwDitheringMode: u32, + pub dwResolution: [u32; 2], + pub dwCMMType: u32, + pub dwClass: u32, + pub dwDataColorSpace: u32, + pub dwConnectionSpace: u32, + pub dwSignature: u32, + pub dwPlatform: u32, + pub dwProfileFlags: u32, + pub dwManufacturer: u32, + pub dwModel: u32, + pub dwAttributes: [u32; 2], + pub dwRenderingIntent: u32, + pub dwCreator: u32, + pub dwDeviceClass: u32, +} +impl ::core::marker::Copy for ENUMTYPEA {} +impl ::core::clone::Clone for ENUMTYPEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ENUMTYPEW { + pub dwSize: u32, + pub dwVersion: u32, + pub dwFields: u32, + pub pDeviceName: ::windows_sys::core::PCWSTR, + pub dwMediaType: u32, + pub dwDitheringMode: u32, + pub dwResolution: [u32; 2], + pub dwCMMType: u32, + pub dwClass: u32, + pub dwDataColorSpace: u32, + pub dwConnectionSpace: u32, + pub dwSignature: u32, + pub dwPlatform: u32, + pub dwProfileFlags: u32, + pub dwManufacturer: u32, + pub dwModel: u32, + pub dwAttributes: [u32; 2], + pub dwRenderingIntent: u32, + pub dwCreator: u32, + pub dwDeviceClass: u32, +} +impl ::core::marker::Copy for ENUMTYPEW {} +impl ::core::clone::Clone for ENUMTYPEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GENERIC3CHANNEL { + pub ch1: u16, + pub ch2: u16, + pub ch3: u16, +} +impl ::core::marker::Copy for GENERIC3CHANNEL {} +impl ::core::clone::Clone for GENERIC3CHANNEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GRAYCOLOR { + pub gray: u16, +} +impl ::core::marker::Copy for GRAYCOLOR {} +impl ::core::clone::Clone for GRAYCOLOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GamutBoundaryDescription { + pub pPrimaries: *mut PrimaryJabColors, + pub cNeutralSamples: u32, + pub pNeutralSamples: *mut JabColorF, + pub pReferenceShell: *mut GamutShell, + pub pPlausibleShell: *mut GamutShell, + pub pPossibleShell: *mut GamutShell, +} +impl ::core::marker::Copy for GamutBoundaryDescription {} +impl ::core::clone::Clone for GamutBoundaryDescription { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GamutShell { + pub JMin: f32, + pub JMax: f32, + pub cVertices: u32, + pub cTriangles: u32, + pub pVertices: *mut JabColorF, + pub pTriangles: *mut GamutShellTriangle, +} +impl ::core::marker::Copy for GamutShell {} +impl ::core::clone::Clone for GamutShell { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GamutShellTriangle { + pub aVertexIndex: [u32; 3], +} +impl ::core::marker::Copy for GamutShellTriangle {} +impl ::core::clone::Clone for GamutShellTriangle { + fn clone(&self) -> Self { + *self + } +} +pub type HCOLORSPACE = isize; +#[repr(C)] +pub struct HiFiCOLOR { + pub channel: [u8; 8], +} +impl ::core::marker::Copy for HiFiCOLOR {} +impl ::core::clone::Clone for HiFiCOLOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JChColorF { + pub J: f32, + pub C: f32, + pub h: f32, +} +impl ::core::marker::Copy for JChColorF {} +impl ::core::clone::Clone for JChColorF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct JabColorF { + pub J: f32, + pub a: f32, + pub b: f32, +} +impl ::core::marker::Copy for JabColorF {} +impl ::core::clone::Clone for JabColorF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct LOGCOLORSPACEA { + pub lcsSignature: u32, + pub lcsVersion: u32, + pub lcsSize: u32, + pub lcsCSType: i32, + pub lcsIntent: i32, + pub lcsEndpoints: super::super::Graphics::Gdi::CIEXYZTRIPLE, + pub lcsGammaRed: u32, + pub lcsGammaGreen: u32, + pub lcsGammaBlue: u32, + pub lcsFilename: [u8; 260], +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for LOGCOLORSPACEA {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for LOGCOLORSPACEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct LOGCOLORSPACEW { + pub lcsSignature: u32, + pub lcsVersion: u32, + pub lcsSize: u32, + pub lcsCSType: i32, + pub lcsIntent: i32, + pub lcsEndpoints: super::super::Graphics::Gdi::CIEXYZTRIPLE, + pub lcsGammaRed: u32, + pub lcsGammaGreen: u32, + pub lcsGammaBlue: u32, + pub lcsFilename: [u16; 260], +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for LOGCOLORSPACEW {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for LOGCOLORSPACEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LabCOLOR { + pub L: u16, + pub a: u16, + pub b: u16, +} +impl ::core::marker::Copy for LabCOLOR {} +impl ::core::clone::Clone for LabCOLOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NAMEDCOLOR { + pub dwIndex: u32, +} +impl ::core::marker::Copy for NAMEDCOLOR {} +impl ::core::clone::Clone for NAMEDCOLOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NAMED_PROFILE_INFO { + pub dwFlags: u32, + pub dwCount: u32, + pub dwCountDevCoordinates: u32, + pub szPrefix: [i8; 32], + pub szSuffix: [i8; 32], +} +impl ::core::marker::Copy for NAMED_PROFILE_INFO {} +impl ::core::clone::Clone for NAMED_PROFILE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROFILE { + pub dwType: u32, + pub pProfileData: *mut ::core::ffi::c_void, + pub cbDataSize: u32, +} +impl ::core::marker::Copy for PROFILE {} +impl ::core::clone::Clone for PROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct PROFILEHEADER { + pub phSize: u32, + pub phCMMType: u32, + pub phVersion: u32, + pub phClass: u32, + pub phDataColorSpace: u32, + pub phConnectionSpace: u32, + pub phDateTime: [u32; 3], + pub phSignature: u32, + pub phPlatform: u32, + pub phProfileFlags: u32, + pub phManufacturer: u32, + pub phModel: u32, + pub phAttributes: [u32; 2], + pub phRenderingIntent: u32, + pub phIlluminant: super::super::Graphics::Gdi::CIEXYZ, + pub phCreator: u32, + pub phReserved: [u8; 44], +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for PROFILEHEADER {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for PROFILEHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PrimaryJabColors { + pub red: JabColorF, + pub yellow: JabColorF, + pub green: JabColorF, + pub cyan: JabColorF, + pub blue: JabColorF, + pub magenta: JabColorF, + pub black: JabColorF, + pub white: JabColorF, +} +impl ::core::marker::Copy for PrimaryJabColors {} +impl ::core::clone::Clone for PrimaryJabColors { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PrimaryXYZColors { + pub red: XYZColorF, + pub yellow: XYZColorF, + pub green: XYZColorF, + pub cyan: XYZColorF, + pub blue: XYZColorF, + pub magenta: XYZColorF, + pub black: XYZColorF, + pub white: XYZColorF, +} +impl ::core::marker::Copy for PrimaryXYZColors {} +impl ::core::clone::Clone for PrimaryXYZColors { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RGBCOLOR { + pub red: u16, + pub green: u16, + pub blue: u16, +} +impl ::core::marker::Copy for RGBCOLOR {} +impl ::core::clone::Clone for RGBCOLOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WCS_DEVICE_MHC2_CAPABILITIES { + pub Size: u32, + pub SupportsMhc2: super::super::Foundation::BOOL, + pub RegammaLutEntryCount: u32, + pub CscXyzMatrixRows: u32, + pub CscXyzMatrixColumns: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WCS_DEVICE_MHC2_CAPABILITIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WCS_DEVICE_MHC2_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WCS_DEVICE_VCGT_CAPABILITIES { + pub Size: u32, + pub SupportsVcgt: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WCS_DEVICE_VCGT_CAPABILITIES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WCS_DEVICE_VCGT_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XYZCOLOR { + pub X: u16, + pub Y: u16, + pub Z: u16, +} +impl ::core::marker::Copy for XYZCOLOR {} +impl ::core::clone::Clone for XYZCOLOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XYZColorF { + pub X: f32, + pub Y: f32, + pub Z: f32, +} +impl ::core::marker::Copy for XYZColorF {} +impl ::core::clone::Clone for XYZColorF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct YxyCOLOR { + pub Y: u16, + pub x: u16, + pub y: u16, +} +impl ::core::marker::Copy for YxyCOLOR {} +impl ::core::clone::Clone for YxyCOLOR { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ICMENUMPROCA = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type ICMENUMPROCW = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPBMCALLBACKFN = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub type PCMSCALLBACKA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub type PCMSCALLBACKW = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Controls/Dialogs/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Controls/Dialogs/mod.rs new file mode 100644 index 000000000..8ee1c9795 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Controls/Dialogs/mod.rs @@ -0,0 +1,1614 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChooseColorA(param0 : *mut CHOOSECOLORA) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChooseColorW(param0 : *mut CHOOSECOLORW) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ChooseFontA(param0 : *mut CHOOSEFONTA) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ChooseFontW(param0 : *mut CHOOSEFONTW) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("comdlg32.dll" "system" fn CommDlgExtendedError() -> COMMON_DLG_ERRORS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindTextA(param0 : *mut FINDREPLACEA) -> super::super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindTextW(param0 : *mut FINDREPLACEW) -> super::super::super::Foundation:: HWND); +::windows_targets::link!("comdlg32.dll" "system" fn GetFileTitleA(param0 : ::windows_sys::core::PCSTR, buf : ::windows_sys::core::PSTR, cchsize : u16) -> i16); +::windows_targets::link!("comdlg32.dll" "system" fn GetFileTitleW(param0 : ::windows_sys::core::PCWSTR, buf : ::windows_sys::core::PWSTR, cchsize : u16) -> i16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetOpenFileNameA(param0 : *mut OPENFILENAMEA) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetOpenFileNameW(param0 : *mut OPENFILENAMEW) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSaveFileNameA(param0 : *mut OPENFILENAMEA) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSaveFileNameW(param0 : *mut OPENFILENAMEW) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PageSetupDlgA(param0 : *mut PAGESETUPDLGA) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PageSetupDlgW(param0 : *mut PAGESETUPDLGW) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn PrintDlgA(ppd : *mut PRINTDLGA) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn PrintDlgExA(ppd : *mut PRINTDLGEXA) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn PrintDlgExW(ppd : *mut PRINTDLGEXW) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn PrintDlgW(ppd : *mut PRINTDLGW) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReplaceTextA(param0 : *mut FINDREPLACEA) -> super::super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comdlg32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReplaceTextW(param0 : *mut FINDREPLACEW) -> super::super::super::Foundation:: HWND); +pub type IPrintDialogCallback = *mut ::core::ffi::c_void; +pub type IPrintDialogServices = *mut ::core::ffi::c_void; +pub const BOLD_FONTTYPE: CHOOSEFONT_FONT_TYPE = 256u16; +pub const CCERR_CHOOSECOLORCODES: COMMON_DLG_ERRORS = 20480u32; +pub const CC_ANYCOLOR: CHOOSECOLOR_FLAGS = 256u32; +pub const CC_ENABLEHOOK: CHOOSECOLOR_FLAGS = 16u32; +pub const CC_ENABLETEMPLATE: CHOOSECOLOR_FLAGS = 32u32; +pub const CC_ENABLETEMPLATEHANDLE: CHOOSECOLOR_FLAGS = 64u32; +pub const CC_FULLOPEN: CHOOSECOLOR_FLAGS = 2u32; +pub const CC_PREVENTFULLOPEN: CHOOSECOLOR_FLAGS = 4u32; +pub const CC_RGBINIT: CHOOSECOLOR_FLAGS = 1u32; +pub const CC_SHOWHELP: CHOOSECOLOR_FLAGS = 8u32; +pub const CC_SOLIDCOLOR: CHOOSECOLOR_FLAGS = 128u32; +pub const CDERR_DIALOGFAILURE: COMMON_DLG_ERRORS = 65535u32; +pub const CDERR_FINDRESFAILURE: COMMON_DLG_ERRORS = 6u32; +pub const CDERR_GENERALCODES: COMMON_DLG_ERRORS = 0u32; +pub const CDERR_INITIALIZATION: COMMON_DLG_ERRORS = 2u32; +pub const CDERR_LOADRESFAILURE: COMMON_DLG_ERRORS = 7u32; +pub const CDERR_LOADSTRFAILURE: COMMON_DLG_ERRORS = 5u32; +pub const CDERR_LOCKRESFAILURE: COMMON_DLG_ERRORS = 8u32; +pub const CDERR_MEMALLOCFAILURE: COMMON_DLG_ERRORS = 9u32; +pub const CDERR_MEMLOCKFAILURE: COMMON_DLG_ERRORS = 10u32; +pub const CDERR_NOHINSTANCE: COMMON_DLG_ERRORS = 4u32; +pub const CDERR_NOHOOK: COMMON_DLG_ERRORS = 11u32; +pub const CDERR_NOTEMPLATE: COMMON_DLG_ERRORS = 3u32; +pub const CDERR_REGISTERMSGFAIL: COMMON_DLG_ERRORS = 12u32; +pub const CDERR_STRUCTSIZE: COMMON_DLG_ERRORS = 1u32; +pub const CDM_FIRST: u32 = 1124u32; +pub const CDM_GETFILEPATH: u32 = 1125u32; +pub const CDM_GETFOLDERIDLIST: u32 = 1127u32; +pub const CDM_GETFOLDERPATH: u32 = 1126u32; +pub const CDM_GETSPEC: u32 = 1124u32; +pub const CDM_HIDECONTROL: u32 = 1129u32; +pub const CDM_LAST: u32 = 1224u32; +pub const CDM_SETCONTROLTEXT: u32 = 1128u32; +pub const CDM_SETDEFEXT: u32 = 1130u32; +pub const CDN_FILEOK: u32 = 4294966690u32; +pub const CDN_FOLDERCHANGE: u32 = 4294966693u32; +pub const CDN_HELP: u32 = 4294966691u32; +pub const CDN_INCLUDEITEM: u32 = 4294966688u32; +pub const CDN_INITDONE: u32 = 4294966695u32; +pub const CDN_SELCHANGE: u32 = 4294966694u32; +pub const CDN_SHAREVIOLATION: u32 = 4294966692u32; +pub const CDN_TYPECHANGE: u32 = 4294966689u32; +pub const CD_LBSELADD: u32 = 2u32; +pub const CD_LBSELCHANGE: u32 = 0u32; +pub const CD_LBSELNOITEMS: i32 = -1i32; +pub const CD_LBSELSUB: u32 = 1u32; +pub const CFERR_CHOOSEFONTCODES: COMMON_DLG_ERRORS = 8192u32; +pub const CFERR_MAXLESSTHANMIN: COMMON_DLG_ERRORS = 8194u32; +pub const CFERR_NOFONTS: COMMON_DLG_ERRORS = 8193u32; +pub const CF_ANSIONLY: CHOOSEFONT_FLAGS = 1024u32; +pub const CF_APPLY: CHOOSEFONT_FLAGS = 512u32; +pub const CF_BOTH: CHOOSEFONT_FLAGS = 3u32; +pub const CF_EFFECTS: CHOOSEFONT_FLAGS = 256u32; +pub const CF_ENABLEHOOK: CHOOSEFONT_FLAGS = 8u32; +pub const CF_ENABLETEMPLATE: CHOOSEFONT_FLAGS = 16u32; +pub const CF_ENABLETEMPLATEHANDLE: CHOOSEFONT_FLAGS = 32u32; +pub const CF_FIXEDPITCHONLY: CHOOSEFONT_FLAGS = 16384u32; +pub const CF_FORCEFONTEXIST: CHOOSEFONT_FLAGS = 65536u32; +pub const CF_INACTIVEFONTS: CHOOSEFONT_FLAGS = 33554432u32; +pub const CF_INITTOLOGFONTSTRUCT: CHOOSEFONT_FLAGS = 64u32; +pub const CF_LIMITSIZE: CHOOSEFONT_FLAGS = 8192u32; +pub const CF_NOFACESEL: CHOOSEFONT_FLAGS = 524288u32; +pub const CF_NOOEMFONTS: CHOOSEFONT_FLAGS = 2048u32; +pub const CF_NOSCRIPTSEL: CHOOSEFONT_FLAGS = 8388608u32; +pub const CF_NOSIMULATIONS: CHOOSEFONT_FLAGS = 4096u32; +pub const CF_NOSIZESEL: CHOOSEFONT_FLAGS = 2097152u32; +pub const CF_NOSTYLESEL: CHOOSEFONT_FLAGS = 1048576u32; +pub const CF_NOVECTORFONTS: CHOOSEFONT_FLAGS = 2048u32; +pub const CF_NOVERTFONTS: CHOOSEFONT_FLAGS = 16777216u32; +pub const CF_PRINTERFONTS: CHOOSEFONT_FLAGS = 2u32; +pub const CF_SCALABLEONLY: CHOOSEFONT_FLAGS = 131072u32; +pub const CF_SCREENFONTS: CHOOSEFONT_FLAGS = 1u32; +pub const CF_SCRIPTSONLY: CHOOSEFONT_FLAGS = 1024u32; +pub const CF_SELECTSCRIPT: CHOOSEFONT_FLAGS = 4194304u32; +pub const CF_SHOWHELP: CHOOSEFONT_FLAGS = 4u32; +pub const CF_TTONLY: CHOOSEFONT_FLAGS = 262144u32; +pub const CF_USESTYLE: CHOOSEFONT_FLAGS = 128u32; +pub const CF_WYSIWYG: CHOOSEFONT_FLAGS = 32768u32; +pub const COLOROKSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_ColorOK"); +pub const COLOROKSTRINGA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("commdlg_ColorOK"); +pub const COLOROKSTRINGW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_ColorOK"); +pub const COLOR_ADD: u32 = 712u32; +pub const COLOR_BLUE: u32 = 708u32; +pub const COLOR_BLUEACCEL: u32 = 728u32; +pub const COLOR_BOX1: u32 = 720u32; +pub const COLOR_CURRENT: u32 = 709u32; +pub const COLOR_CUSTOM1: u32 = 721u32; +pub const COLOR_ELEMENT: u32 = 716u32; +pub const COLOR_GREEN: u32 = 707u32; +pub const COLOR_GREENACCEL: u32 = 727u32; +pub const COLOR_HUE: u32 = 703u32; +pub const COLOR_HUEACCEL: u32 = 723u32; +pub const COLOR_HUESCROLL: u32 = 700u32; +pub const COLOR_LUM: u32 = 705u32; +pub const COLOR_LUMACCEL: u32 = 725u32; +pub const COLOR_LUMSCROLL: u32 = 702u32; +pub const COLOR_MIX: u32 = 719u32; +pub const COLOR_PALETTE: u32 = 718u32; +pub const COLOR_RAINBOW: u32 = 710u32; +pub const COLOR_RED: u32 = 706u32; +pub const COLOR_REDACCEL: u32 = 726u32; +pub const COLOR_SAMPLES: u32 = 717u32; +pub const COLOR_SAT: u32 = 704u32; +pub const COLOR_SATACCEL: u32 = 724u32; +pub const COLOR_SATSCROLL: u32 = 701u32; +pub const COLOR_SAVE: u32 = 711u32; +pub const COLOR_SCHEMES: u32 = 715u32; +pub const COLOR_SOLID: u32 = 713u32; +pub const COLOR_SOLID_LEFT: u32 = 730u32; +pub const COLOR_SOLID_RIGHT: u32 = 731u32; +pub const COLOR_TUNE: u32 = 714u32; +pub const DLG_COLOR: u32 = 10u32; +pub const DN_DEFAULTPRN: u32 = 1u32; +pub const FILEOKSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_FileNameOK"); +pub const FILEOKSTRINGA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("commdlg_FileNameOK"); +pub const FILEOKSTRINGW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_FileNameOK"); +pub const FINDMSGSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_FindReplace"); +pub const FINDMSGSTRINGA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("commdlg_FindReplace"); +pub const FINDMSGSTRINGW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_FindReplace"); +pub const FNERR_BUFFERTOOSMALL: COMMON_DLG_ERRORS = 12291u32; +pub const FNERR_FILENAMECODES: COMMON_DLG_ERRORS = 12288u32; +pub const FNERR_INVALIDFILENAME: COMMON_DLG_ERRORS = 12290u32; +pub const FNERR_SUBCLASSFAILURE: COMMON_DLG_ERRORS = 12289u32; +pub const FRERR_BUFFERLENGTHZERO: COMMON_DLG_ERRORS = 16385u32; +pub const FRERR_FINDREPLACECODES: COMMON_DLG_ERRORS = 16384u32; +pub const FRM_FIRST: u32 = 1124u32; +pub const FRM_LAST: u32 = 1224u32; +pub const FRM_SETOPERATIONRESULT: u32 = 1124u32; +pub const FRM_SETOPERATIONRESULTTEXT: u32 = 1125u32; +pub const FR_DIALOGTERM: FINDREPLACE_FLAGS = 64u32; +pub const FR_DOWN: FINDREPLACE_FLAGS = 1u32; +pub const FR_ENABLEHOOK: FINDREPLACE_FLAGS = 256u32; +pub const FR_ENABLETEMPLATE: FINDREPLACE_FLAGS = 512u32; +pub const FR_ENABLETEMPLATEHANDLE: FINDREPLACE_FLAGS = 8192u32; +pub const FR_FINDNEXT: FINDREPLACE_FLAGS = 8u32; +pub const FR_HIDEMATCHCASE: FINDREPLACE_FLAGS = 32768u32; +pub const FR_HIDEUPDOWN: FINDREPLACE_FLAGS = 16384u32; +pub const FR_HIDEWHOLEWORD: FINDREPLACE_FLAGS = 65536u32; +pub const FR_MATCHALEFHAMZA: FINDREPLACE_FLAGS = 2147483648u32; +pub const FR_MATCHCASE: FINDREPLACE_FLAGS = 4u32; +pub const FR_MATCHDIAC: FINDREPLACE_FLAGS = 536870912u32; +pub const FR_MATCHKASHIDA: FINDREPLACE_FLAGS = 1073741824u32; +pub const FR_NOMATCHCASE: FINDREPLACE_FLAGS = 2048u32; +pub const FR_NOUPDOWN: FINDREPLACE_FLAGS = 1024u32; +pub const FR_NOWHOLEWORD: FINDREPLACE_FLAGS = 4096u32; +pub const FR_NOWRAPAROUND: FINDREPLACE_FLAGS = 524288u32; +pub const FR_RAW: FINDREPLACE_FLAGS = 131072u32; +pub const FR_REPLACE: FINDREPLACE_FLAGS = 16u32; +pub const FR_REPLACEALL: FINDREPLACE_FLAGS = 32u32; +pub const FR_SHOWHELP: FINDREPLACE_FLAGS = 128u32; +pub const FR_SHOWWRAPAROUND: FINDREPLACE_FLAGS = 262144u32; +pub const FR_WHOLEWORD: FINDREPLACE_FLAGS = 2u32; +pub const FR_WRAPAROUND: FINDREPLACE_FLAGS = 1048576u32; +pub const HELPMSGSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_help"); +pub const HELPMSGSTRINGA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("commdlg_help"); +pub const HELPMSGSTRINGW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_help"); +pub const ITALIC_FONTTYPE: CHOOSEFONT_FONT_TYPE = 512u16; +pub const LBSELCHSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_LBSelChangedNotify"); +pub const LBSELCHSTRINGA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("commdlg_LBSelChangedNotify"); +pub const LBSELCHSTRINGW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_LBSelChangedNotify"); +pub const NUM_BASIC_COLORS: u32 = 48u32; +pub const NUM_CUSTOM_COLORS: u32 = 16u32; +pub const OFN_ALLOWMULTISELECT: OPEN_FILENAME_FLAGS = 512u32; +pub const OFN_CREATEPROMPT: OPEN_FILENAME_FLAGS = 8192u32; +pub const OFN_DONTADDTORECENT: OPEN_FILENAME_FLAGS = 33554432u32; +pub const OFN_ENABLEHOOK: OPEN_FILENAME_FLAGS = 32u32; +pub const OFN_ENABLEINCLUDENOTIFY: OPEN_FILENAME_FLAGS = 4194304u32; +pub const OFN_ENABLESIZING: OPEN_FILENAME_FLAGS = 8388608u32; +pub const OFN_ENABLETEMPLATE: OPEN_FILENAME_FLAGS = 64u32; +pub const OFN_ENABLETEMPLATEHANDLE: OPEN_FILENAME_FLAGS = 128u32; +pub const OFN_EXPLORER: OPEN_FILENAME_FLAGS = 524288u32; +pub const OFN_EXTENSIONDIFFERENT: OPEN_FILENAME_FLAGS = 1024u32; +pub const OFN_EX_NONE: OPEN_FILENAME_FLAGS_EX = 0u32; +pub const OFN_EX_NOPLACESBAR: OPEN_FILENAME_FLAGS_EX = 1u32; +pub const OFN_FILEMUSTEXIST: OPEN_FILENAME_FLAGS = 4096u32; +pub const OFN_FORCESHOWHIDDEN: OPEN_FILENAME_FLAGS = 268435456u32; +pub const OFN_HIDEREADONLY: OPEN_FILENAME_FLAGS = 4u32; +pub const OFN_LONGNAMES: OPEN_FILENAME_FLAGS = 2097152u32; +pub const OFN_NOCHANGEDIR: OPEN_FILENAME_FLAGS = 8u32; +pub const OFN_NODEREFERENCELINKS: OPEN_FILENAME_FLAGS = 1048576u32; +pub const OFN_NOLONGNAMES: OPEN_FILENAME_FLAGS = 262144u32; +pub const OFN_NONETWORKBUTTON: OPEN_FILENAME_FLAGS = 131072u32; +pub const OFN_NOREADONLYRETURN: OPEN_FILENAME_FLAGS = 32768u32; +pub const OFN_NOTESTFILECREATE: OPEN_FILENAME_FLAGS = 65536u32; +pub const OFN_NOVALIDATE: OPEN_FILENAME_FLAGS = 256u32; +pub const OFN_OVERWRITEPROMPT: OPEN_FILENAME_FLAGS = 2u32; +pub const OFN_PATHMUSTEXIST: OPEN_FILENAME_FLAGS = 2048u32; +pub const OFN_READONLY: OPEN_FILENAME_FLAGS = 1u32; +pub const OFN_SHAREAWARE: OPEN_FILENAME_FLAGS = 16384u32; +pub const OFN_SHAREFALLTHROUGH: u32 = 2u32; +pub const OFN_SHARENOWARN: u32 = 1u32; +pub const OFN_SHAREWARN: u32 = 0u32; +pub const OFN_SHOWHELP: OPEN_FILENAME_FLAGS = 16u32; +pub const PDERR_CREATEICFAILURE: COMMON_DLG_ERRORS = 4106u32; +pub const PDERR_DEFAULTDIFFERENT: COMMON_DLG_ERRORS = 4108u32; +pub const PDERR_DNDMMISMATCH: COMMON_DLG_ERRORS = 4105u32; +pub const PDERR_GETDEVMODEFAIL: COMMON_DLG_ERRORS = 4101u32; +pub const PDERR_INITFAILURE: COMMON_DLG_ERRORS = 4102u32; +pub const PDERR_LOADDRVFAILURE: COMMON_DLG_ERRORS = 4100u32; +pub const PDERR_NODEFAULTPRN: COMMON_DLG_ERRORS = 4104u32; +pub const PDERR_NODEVICES: COMMON_DLG_ERRORS = 4103u32; +pub const PDERR_PARSEFAILURE: COMMON_DLG_ERRORS = 4098u32; +pub const PDERR_PRINTERCODES: COMMON_DLG_ERRORS = 4096u32; +pub const PDERR_PRINTERNOTFOUND: COMMON_DLG_ERRORS = 4107u32; +pub const PDERR_RETDEFFAILURE: COMMON_DLG_ERRORS = 4099u32; +pub const PDERR_SETUPFAILURE: COMMON_DLG_ERRORS = 4097u32; +pub const PD_ALLPAGES: PRINTDLGEX_FLAGS = 0u32; +pub const PD_COLLATE: PRINTDLGEX_FLAGS = 16u32; +pub const PD_CURRENTPAGE: PRINTDLGEX_FLAGS = 4194304u32; +pub const PD_DISABLEPRINTTOFILE: PRINTDLGEX_FLAGS = 524288u32; +pub const PD_ENABLEPRINTHOOK: PRINTDLGEX_FLAGS = 4096u32; +pub const PD_ENABLEPRINTTEMPLATE: PRINTDLGEX_FLAGS = 16384u32; +pub const PD_ENABLEPRINTTEMPLATEHANDLE: PRINTDLGEX_FLAGS = 65536u32; +pub const PD_ENABLESETUPHOOK: PRINTDLGEX_FLAGS = 8192u32; +pub const PD_ENABLESETUPTEMPLATE: PRINTDLGEX_FLAGS = 32768u32; +pub const PD_ENABLESETUPTEMPLATEHANDLE: PRINTDLGEX_FLAGS = 131072u32; +pub const PD_EXCLUSIONFLAGS: PRINTDLGEX_FLAGS = 16777216u32; +pub const PD_HIDEPRINTTOFILE: PRINTDLGEX_FLAGS = 1048576u32; +pub const PD_NOCURRENTPAGE: PRINTDLGEX_FLAGS = 8388608u32; +pub const PD_NONETWORKBUTTON: PRINTDLGEX_FLAGS = 2097152u32; +pub const PD_NOPAGENUMS: PRINTDLGEX_FLAGS = 8u32; +pub const PD_NOSELECTION: PRINTDLGEX_FLAGS = 4u32; +pub const PD_NOWARNING: PRINTDLGEX_FLAGS = 128u32; +pub const PD_PAGENUMS: PRINTDLGEX_FLAGS = 2u32; +pub const PD_PRINTSETUP: PRINTDLGEX_FLAGS = 64u32; +pub const PD_PRINTTOFILE: PRINTDLGEX_FLAGS = 32u32; +pub const PD_RESULT_APPLY: u32 = 2u32; +pub const PD_RESULT_CANCEL: u32 = 0u32; +pub const PD_RESULT_PRINT: u32 = 1u32; +pub const PD_RETURNDC: PRINTDLGEX_FLAGS = 256u32; +pub const PD_RETURNDEFAULT: PRINTDLGEX_FLAGS = 1024u32; +pub const PD_RETURNIC: PRINTDLGEX_FLAGS = 512u32; +pub const PD_SELECTION: PRINTDLGEX_FLAGS = 1u32; +pub const PD_SHOWHELP: PRINTDLGEX_FLAGS = 2048u32; +pub const PD_USEDEVMODECOPIES: PRINTDLGEX_FLAGS = 262144u32; +pub const PD_USEDEVMODECOPIESANDCOLLATE: PRINTDLGEX_FLAGS = 262144u32; +pub const PD_USELARGETEMPLATE: PRINTDLGEX_FLAGS = 268435456u32; +pub const PRINTER_FONTTYPE: CHOOSEFONT_FONT_TYPE = 16384u16; +pub const PSD_DEFAULTMINMARGINS: PAGESETUPDLG_FLAGS = 0u32; +pub const PSD_DISABLEMARGINS: PAGESETUPDLG_FLAGS = 16u32; +pub const PSD_DISABLEORIENTATION: PAGESETUPDLG_FLAGS = 256u32; +pub const PSD_DISABLEPAGEPAINTING: PAGESETUPDLG_FLAGS = 524288u32; +pub const PSD_DISABLEPAPER: PAGESETUPDLG_FLAGS = 512u32; +pub const PSD_DISABLEPRINTER: PAGESETUPDLG_FLAGS = 32u32; +pub const PSD_ENABLEPAGEPAINTHOOK: PAGESETUPDLG_FLAGS = 262144u32; +pub const PSD_ENABLEPAGESETUPHOOK: PAGESETUPDLG_FLAGS = 8192u32; +pub const PSD_ENABLEPAGESETUPTEMPLATE: PAGESETUPDLG_FLAGS = 32768u32; +pub const PSD_ENABLEPAGESETUPTEMPLATEHANDLE: PAGESETUPDLG_FLAGS = 131072u32; +pub const PSD_INHUNDREDTHSOFMILLIMETERS: PAGESETUPDLG_FLAGS = 8u32; +pub const PSD_INTHOUSANDTHSOFINCHES: PAGESETUPDLG_FLAGS = 4u32; +pub const PSD_INWININIINTLMEASURE: PAGESETUPDLG_FLAGS = 0u32; +pub const PSD_MARGINS: PAGESETUPDLG_FLAGS = 2u32; +pub const PSD_MINMARGINS: PAGESETUPDLG_FLAGS = 1u32; +pub const PSD_NONETWORKBUTTON: PAGESETUPDLG_FLAGS = 2097152u32; +pub const PSD_NOWARNING: PAGESETUPDLG_FLAGS = 128u32; +pub const PSD_RETURNDEFAULT: PAGESETUPDLG_FLAGS = 1024u32; +pub const PSD_SHOWHELP: PAGESETUPDLG_FLAGS = 2048u32; +pub const PS_OPENTYPE_FONTTYPE: u32 = 65536u32; +pub const REGULAR_FONTTYPE: CHOOSEFONT_FONT_TYPE = 1024u16; +pub const SCREEN_FONTTYPE: CHOOSEFONT_FONT_TYPE = 8192u16; +pub const SETRGBSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_SetRGBColor"); +pub const SETRGBSTRINGA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("commdlg_SetRGBColor"); +pub const SETRGBSTRINGW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_SetRGBColor"); +pub const SHAREVISTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_ShareViolation"); +pub const SHAREVISTRINGA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("commdlg_ShareViolation"); +pub const SHAREVISTRINGW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commdlg_ShareViolation"); +pub const SIMULATED_FONTTYPE: CHOOSEFONT_FONT_TYPE = 32768u16; +pub const START_PAGE_GENERAL: u32 = 4294967295u32; +pub const SYMBOL_FONTTYPE: u32 = 524288u32; +pub const TT_OPENTYPE_FONTTYPE: u32 = 131072u32; +pub const TYPE1_FONTTYPE: u32 = 262144u32; +pub const WM_CHOOSEFONT_GETLOGFONT: u32 = 1025u32; +pub const WM_CHOOSEFONT_SETFLAGS: u32 = 1126u32; +pub const WM_CHOOSEFONT_SETLOGFONT: u32 = 1125u32; +pub const WM_PSD_ENVSTAMPRECT: u32 = 1029u32; +pub const WM_PSD_FULLPAGERECT: u32 = 1025u32; +pub const WM_PSD_GREEKTEXTRECT: u32 = 1028u32; +pub const WM_PSD_MARGINRECT: u32 = 1027u32; +pub const WM_PSD_MINMARGINRECT: u32 = 1026u32; +pub const WM_PSD_YAFULLPAGERECT: u32 = 1030u32; +pub type CHOOSECOLOR_FLAGS = u32; +pub type CHOOSEFONT_FLAGS = u32; +pub type CHOOSEFONT_FONT_TYPE = u16; +pub type COMMON_DLG_ERRORS = u32; +pub type FINDREPLACE_FLAGS = u32; +pub type OPEN_FILENAME_FLAGS = u32; +pub type OPEN_FILENAME_FLAGS_EX = u32; +pub type PAGESETUPDLG_FLAGS = u32; +pub type PRINTDLGEX_FLAGS = u32; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct CHOOSECOLORA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HWND, + pub rgbResult: super::super::super::Foundation::COLORREF, + pub lpCustColors: *mut super::super::super::Foundation::COLORREF, + pub Flags: CHOOSECOLOR_FLAGS, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPCCHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CHOOSECOLORA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CHOOSECOLORA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct CHOOSECOLORA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HWND, + pub rgbResult: super::super::super::Foundation::COLORREF, + pub lpCustColors: *mut super::super::super::Foundation::COLORREF, + pub Flags: CHOOSECOLOR_FLAGS, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPCCHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCSTR, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CHOOSECOLORA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CHOOSECOLORA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct CHOOSECOLORW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HWND, + pub rgbResult: super::super::super::Foundation::COLORREF, + pub lpCustColors: *mut super::super::super::Foundation::COLORREF, + pub Flags: CHOOSECOLOR_FLAGS, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPCCHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCWSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CHOOSECOLORW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CHOOSECOLORW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct CHOOSECOLORW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HWND, + pub rgbResult: super::super::super::Foundation::COLORREF, + pub lpCustColors: *mut super::super::super::Foundation::COLORREF, + pub Flags: CHOOSECOLOR_FLAGS, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPCCHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCWSTR, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CHOOSECOLORW {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CHOOSECOLORW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct CHOOSEFONTA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDC: super::super::super::Graphics::Gdi::HDC, + pub lpLogFont: *mut super::super::super::Graphics::Gdi::LOGFONTA, + pub iPointSize: i32, + pub Flags: CHOOSEFONT_FLAGS, + pub rgbColors: super::super::super::Foundation::COLORREF, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPCFHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCSTR, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpszStyle: ::windows_sys::core::PSTR, + pub nFontType: CHOOSEFONT_FONT_TYPE, + pub ___MISSING_ALIGNMENT__: u16, + pub nSizeMin: i32, + pub nSizeMax: i32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for CHOOSEFONTA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for CHOOSEFONTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct CHOOSEFONTA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDC: super::super::super::Graphics::Gdi::HDC, + pub lpLogFont: *mut super::super::super::Graphics::Gdi::LOGFONTA, + pub iPointSize: i32, + pub Flags: CHOOSEFONT_FLAGS, + pub rgbColors: super::super::super::Foundation::COLORREF, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPCFHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCSTR, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpszStyle: ::windows_sys::core::PSTR, + pub nFontType: CHOOSEFONT_FONT_TYPE, + pub ___MISSING_ALIGNMENT__: u16, + pub nSizeMin: i32, + pub nSizeMax: i32, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for CHOOSEFONTA {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for CHOOSEFONTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct CHOOSEFONTW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDC: super::super::super::Graphics::Gdi::HDC, + pub lpLogFont: *mut super::super::super::Graphics::Gdi::LOGFONTW, + pub iPointSize: i32, + pub Flags: CHOOSEFONT_FLAGS, + pub rgbColors: super::super::super::Foundation::COLORREF, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPCFHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCWSTR, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpszStyle: ::windows_sys::core::PWSTR, + pub nFontType: CHOOSEFONT_FONT_TYPE, + pub ___MISSING_ALIGNMENT__: u16, + pub nSizeMin: i32, + pub nSizeMax: i32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for CHOOSEFONTW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for CHOOSEFONTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct CHOOSEFONTW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDC: super::super::super::Graphics::Gdi::HDC, + pub lpLogFont: *mut super::super::super::Graphics::Gdi::LOGFONTW, + pub iPointSize: i32, + pub Flags: CHOOSEFONT_FLAGS, + pub rgbColors: super::super::super::Foundation::COLORREF, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPCFHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCWSTR, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpszStyle: ::windows_sys::core::PWSTR, + pub nFontType: CHOOSEFONT_FONT_TYPE, + pub ___MISSING_ALIGNMENT__: u16, + pub nSizeMin: i32, + pub nSizeMax: i32, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for CHOOSEFONTW {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for CHOOSEFONTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct DEVNAMES { + pub wDriverOffset: u16, + pub wDeviceOffset: u16, + pub wOutputOffset: u16, + pub wDefault: u16, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for DEVNAMES {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for DEVNAMES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct DEVNAMES { + pub wDriverOffset: u16, + pub wDeviceOffset: u16, + pub wOutputOffset: u16, + pub wDefault: u16, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for DEVNAMES {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for DEVNAMES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct FINDREPLACEA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub Flags: FINDREPLACE_FLAGS, + pub lpstrFindWhat: ::windows_sys::core::PSTR, + pub lpstrReplaceWith: ::windows_sys::core::PSTR, + pub wFindWhatLen: u16, + pub wReplaceWithLen: u16, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPFRHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FINDREPLACEA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FINDREPLACEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct FINDREPLACEA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub Flags: FINDREPLACE_FLAGS, + pub lpstrFindWhat: ::windows_sys::core::PSTR, + pub lpstrReplaceWith: ::windows_sys::core::PSTR, + pub wFindWhatLen: u16, + pub wReplaceWithLen: u16, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPFRHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCSTR, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FINDREPLACEA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FINDREPLACEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct FINDREPLACEW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub Flags: FINDREPLACE_FLAGS, + pub lpstrFindWhat: ::windows_sys::core::PWSTR, + pub lpstrReplaceWith: ::windows_sys::core::PWSTR, + pub wFindWhatLen: u16, + pub wReplaceWithLen: u16, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPFRHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCWSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FINDREPLACEW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FINDREPLACEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct FINDREPLACEW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub Flags: FINDREPLACE_FLAGS, + pub lpstrFindWhat: ::windows_sys::core::PWSTR, + pub lpstrReplaceWith: ::windows_sys::core::PWSTR, + pub wFindWhatLen: u16, + pub wReplaceWithLen: u16, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPFRHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCWSTR, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FINDREPLACEW {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FINDREPLACEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct OFNOTIFYA { + pub hdr: super::NMHDR, + pub lpOFN: *mut OPENFILENAMEA, + pub pszFile: ::windows_sys::core::PSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OFNOTIFYA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OFNOTIFYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct OFNOTIFYA { + pub hdr: super::NMHDR, + pub lpOFN: *mut OPENFILENAMEA, + pub pszFile: ::windows_sys::core::PSTR, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OFNOTIFYA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OFNOTIFYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct OFNOTIFYEXA { + pub hdr: super::NMHDR, + pub lpOFN: *mut OPENFILENAMEA, + pub psf: *mut ::core::ffi::c_void, + pub pidl: *mut ::core::ffi::c_void, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OFNOTIFYEXA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OFNOTIFYEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct OFNOTIFYEXA { + pub hdr: super::NMHDR, + pub lpOFN: *mut OPENFILENAMEA, + pub psf: *mut ::core::ffi::c_void, + pub pidl: *mut ::core::ffi::c_void, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OFNOTIFYEXA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OFNOTIFYEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct OFNOTIFYEXW { + pub hdr: super::NMHDR, + pub lpOFN: *mut OPENFILENAMEW, + pub psf: *mut ::core::ffi::c_void, + pub pidl: *mut ::core::ffi::c_void, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OFNOTIFYEXW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OFNOTIFYEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct OFNOTIFYEXW { + pub hdr: super::NMHDR, + pub lpOFN: *mut OPENFILENAMEW, + pub psf: *mut ::core::ffi::c_void, + pub pidl: *mut ::core::ffi::c_void, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OFNOTIFYEXW {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OFNOTIFYEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct OFNOTIFYW { + pub hdr: super::NMHDR, + pub lpOFN: *mut OPENFILENAMEW, + pub pszFile: ::windows_sys::core::PWSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OFNOTIFYW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OFNOTIFYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct OFNOTIFYW { + pub hdr: super::NMHDR, + pub lpOFN: *mut OPENFILENAMEW, + pub pszFile: ::windows_sys::core::PWSTR, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OFNOTIFYW {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OFNOTIFYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct OPENFILENAMEA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpstrFilter: ::windows_sys::core::PCSTR, + pub lpstrCustomFilter: ::windows_sys::core::PSTR, + pub nMaxCustFilter: u32, + pub nFilterIndex: u32, + pub lpstrFile: ::windows_sys::core::PSTR, + pub nMaxFile: u32, + pub lpstrFileTitle: ::windows_sys::core::PSTR, + pub nMaxFileTitle: u32, + pub lpstrInitialDir: ::windows_sys::core::PCSTR, + pub lpstrTitle: ::windows_sys::core::PCSTR, + pub Flags: OPEN_FILENAME_FLAGS, + pub nFileOffset: u16, + pub nFileExtension: u16, + pub lpstrDefExt: ::windows_sys::core::PCSTR, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPOFNHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCSTR, + pub pvReserved: *mut ::core::ffi::c_void, + pub dwReserved: u32, + pub FlagsEx: OPEN_FILENAME_FLAGS_EX, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPENFILENAMEA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPENFILENAMEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct OPENFILENAMEA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpstrFilter: ::windows_sys::core::PCSTR, + pub lpstrCustomFilter: ::windows_sys::core::PSTR, + pub nMaxCustFilter: u32, + pub nFilterIndex: u32, + pub lpstrFile: ::windows_sys::core::PSTR, + pub nMaxFile: u32, + pub lpstrFileTitle: ::windows_sys::core::PSTR, + pub nMaxFileTitle: u32, + pub lpstrInitialDir: ::windows_sys::core::PCSTR, + pub lpstrTitle: ::windows_sys::core::PCSTR, + pub Flags: OPEN_FILENAME_FLAGS, + pub nFileOffset: u16, + pub nFileExtension: u16, + pub lpstrDefExt: ::windows_sys::core::PCSTR, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPOFNHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCSTR, + pub pvReserved: *mut ::core::ffi::c_void, + pub dwReserved: u32, + pub FlagsEx: OPEN_FILENAME_FLAGS_EX, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPENFILENAMEA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPENFILENAMEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct OPENFILENAMEW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpstrFilter: ::windows_sys::core::PCWSTR, + pub lpstrCustomFilter: ::windows_sys::core::PWSTR, + pub nMaxCustFilter: u32, + pub nFilterIndex: u32, + pub lpstrFile: ::windows_sys::core::PWSTR, + pub nMaxFile: u32, + pub lpstrFileTitle: ::windows_sys::core::PWSTR, + pub nMaxFileTitle: u32, + pub lpstrInitialDir: ::windows_sys::core::PCWSTR, + pub lpstrTitle: ::windows_sys::core::PCWSTR, + pub Flags: OPEN_FILENAME_FLAGS, + pub nFileOffset: u16, + pub nFileExtension: u16, + pub lpstrDefExt: ::windows_sys::core::PCWSTR, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPOFNHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCWSTR, + pub pvReserved: *mut ::core::ffi::c_void, + pub dwReserved: u32, + pub FlagsEx: OPEN_FILENAME_FLAGS_EX, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPENFILENAMEW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPENFILENAMEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct OPENFILENAMEW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpstrFilter: ::windows_sys::core::PCWSTR, + pub lpstrCustomFilter: ::windows_sys::core::PWSTR, + pub nMaxCustFilter: u32, + pub nFilterIndex: u32, + pub lpstrFile: ::windows_sys::core::PWSTR, + pub nMaxFile: u32, + pub lpstrFileTitle: ::windows_sys::core::PWSTR, + pub nMaxFileTitle: u32, + pub lpstrInitialDir: ::windows_sys::core::PCWSTR, + pub lpstrTitle: ::windows_sys::core::PCWSTR, + pub Flags: OPEN_FILENAME_FLAGS, + pub nFileOffset: u16, + pub nFileExtension: u16, + pub lpstrDefExt: ::windows_sys::core::PCWSTR, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPOFNHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCWSTR, + pub pvReserved: *mut ::core::ffi::c_void, + pub dwReserved: u32, + pub FlagsEx: OPEN_FILENAME_FLAGS_EX, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPENFILENAMEW {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPENFILENAMEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct OPENFILENAME_NT4A { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpstrFilter: ::windows_sys::core::PCSTR, + pub lpstrCustomFilter: ::windows_sys::core::PSTR, + pub nMaxCustFilter: u32, + pub nFilterIndex: u32, + pub lpstrFile: ::windows_sys::core::PSTR, + pub nMaxFile: u32, + pub lpstrFileTitle: ::windows_sys::core::PSTR, + pub nMaxFileTitle: u32, + pub lpstrInitialDir: ::windows_sys::core::PCSTR, + pub lpstrTitle: ::windows_sys::core::PCSTR, + pub Flags: u32, + pub nFileOffset: u16, + pub nFileExtension: u16, + pub lpstrDefExt: ::windows_sys::core::PCSTR, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPOFNHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPENFILENAME_NT4A {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPENFILENAME_NT4A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct OPENFILENAME_NT4A { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpstrFilter: ::windows_sys::core::PCSTR, + pub lpstrCustomFilter: ::windows_sys::core::PSTR, + pub nMaxCustFilter: u32, + pub nFilterIndex: u32, + pub lpstrFile: ::windows_sys::core::PSTR, + pub nMaxFile: u32, + pub lpstrFileTitle: ::windows_sys::core::PSTR, + pub nMaxFileTitle: u32, + pub lpstrInitialDir: ::windows_sys::core::PCSTR, + pub lpstrTitle: ::windows_sys::core::PCSTR, + pub Flags: u32, + pub nFileOffset: u16, + pub nFileExtension: u16, + pub lpstrDefExt: ::windows_sys::core::PCSTR, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPOFNHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCSTR, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPENFILENAME_NT4A {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPENFILENAME_NT4A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct OPENFILENAME_NT4W { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpstrFilter: ::windows_sys::core::PCWSTR, + pub lpstrCustomFilter: ::windows_sys::core::PWSTR, + pub nMaxCustFilter: u32, + pub nFilterIndex: u32, + pub lpstrFile: ::windows_sys::core::PWSTR, + pub nMaxFile: u32, + pub lpstrFileTitle: ::windows_sys::core::PWSTR, + pub nMaxFileTitle: u32, + pub lpstrInitialDir: ::windows_sys::core::PCWSTR, + pub lpstrTitle: ::windows_sys::core::PCWSTR, + pub Flags: u32, + pub nFileOffset: u16, + pub nFileExtension: u16, + pub lpstrDefExt: ::windows_sys::core::PCWSTR, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPOFNHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCWSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPENFILENAME_NT4W {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPENFILENAME_NT4W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct OPENFILENAME_NT4W { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpstrFilter: ::windows_sys::core::PCWSTR, + pub lpstrCustomFilter: ::windows_sys::core::PWSTR, + pub nMaxCustFilter: u32, + pub nFilterIndex: u32, + pub lpstrFile: ::windows_sys::core::PWSTR, + pub nMaxFile: u32, + pub lpstrFileTitle: ::windows_sys::core::PWSTR, + pub nMaxFileTitle: u32, + pub lpstrInitialDir: ::windows_sys::core::PCWSTR, + pub lpstrTitle: ::windows_sys::core::PCWSTR, + pub Flags: u32, + pub nFileOffset: u16, + pub nFileExtension: u16, + pub lpstrDefExt: ::windows_sys::core::PCWSTR, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnHook: LPOFNHOOKPROC, + pub lpTemplateName: ::windows_sys::core::PCWSTR, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPENFILENAME_NT4W {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPENFILENAME_NT4W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct PAGESETUPDLGA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDevMode: super::super::super::Foundation::HGLOBAL, + pub hDevNames: super::super::super::Foundation::HGLOBAL, + pub Flags: PAGESETUPDLG_FLAGS, + pub ptPaperSize: super::super::super::Foundation::POINT, + pub rtMinMargin: super::super::super::Foundation::RECT, + pub rtMargin: super::super::super::Foundation::RECT, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnPageSetupHook: LPPAGESETUPHOOK, + pub lpfnPagePaintHook: LPPAGEPAINTHOOK, + pub lpPageSetupTemplateName: ::windows_sys::core::PCSTR, + pub hPageSetupTemplate: super::super::super::Foundation::HGLOBAL, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PAGESETUPDLGA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PAGESETUPDLGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct PAGESETUPDLGA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDevMode: super::super::super::Foundation::HGLOBAL, + pub hDevNames: super::super::super::Foundation::HGLOBAL, + pub Flags: PAGESETUPDLG_FLAGS, + pub ptPaperSize: super::super::super::Foundation::POINT, + pub rtMinMargin: super::super::super::Foundation::RECT, + pub rtMargin: super::super::super::Foundation::RECT, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnPageSetupHook: LPPAGESETUPHOOK, + pub lpfnPagePaintHook: LPPAGEPAINTHOOK, + pub lpPageSetupTemplateName: ::windows_sys::core::PCSTR, + pub hPageSetupTemplate: super::super::super::Foundation::HGLOBAL, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PAGESETUPDLGA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PAGESETUPDLGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct PAGESETUPDLGW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDevMode: super::super::super::Foundation::HGLOBAL, + pub hDevNames: super::super::super::Foundation::HGLOBAL, + pub Flags: PAGESETUPDLG_FLAGS, + pub ptPaperSize: super::super::super::Foundation::POINT, + pub rtMinMargin: super::super::super::Foundation::RECT, + pub rtMargin: super::super::super::Foundation::RECT, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnPageSetupHook: LPPAGESETUPHOOK, + pub lpfnPagePaintHook: LPPAGEPAINTHOOK, + pub lpPageSetupTemplateName: ::windows_sys::core::PCWSTR, + pub hPageSetupTemplate: super::super::super::Foundation::HGLOBAL, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PAGESETUPDLGW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PAGESETUPDLGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct PAGESETUPDLGW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDevMode: super::super::super::Foundation::HGLOBAL, + pub hDevNames: super::super::super::Foundation::HGLOBAL, + pub Flags: PAGESETUPDLG_FLAGS, + pub ptPaperSize: super::super::super::Foundation::POINT, + pub rtMinMargin: super::super::super::Foundation::RECT, + pub rtMargin: super::super::super::Foundation::RECT, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnPageSetupHook: LPPAGESETUPHOOK, + pub lpfnPagePaintHook: LPPAGEPAINTHOOK, + pub lpPageSetupTemplateName: ::windows_sys::core::PCWSTR, + pub hPageSetupTemplate: super::super::super::Foundation::HGLOBAL, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PAGESETUPDLGW {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PAGESETUPDLGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTDLGA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDevMode: super::super::super::Foundation::HGLOBAL, + pub hDevNames: super::super::super::Foundation::HGLOBAL, + pub hDC: super::super::super::Graphics::Gdi::HDC, + pub Flags: PRINTDLGEX_FLAGS, + pub nFromPage: u16, + pub nToPage: u16, + pub nMinPage: u16, + pub nMaxPage: u16, + pub nCopies: u16, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnPrintHook: LPPRINTHOOKPROC, + pub lpfnSetupHook: LPSETUPHOOKPROC, + pub lpPrintTemplateName: ::windows_sys::core::PCSTR, + pub lpSetupTemplateName: ::windows_sys::core::PCSTR, + pub hPrintTemplate: super::super::super::Foundation::HGLOBAL, + pub hSetupTemplate: super::super::super::Foundation::HGLOBAL, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTDLGA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTDLGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTDLGA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDevMode: super::super::super::Foundation::HGLOBAL, + pub hDevNames: super::super::super::Foundation::HGLOBAL, + pub hDC: super::super::super::Graphics::Gdi::HDC, + pub Flags: PRINTDLGEX_FLAGS, + pub nFromPage: u16, + pub nToPage: u16, + pub nMinPage: u16, + pub nMaxPage: u16, + pub nCopies: u16, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnPrintHook: LPPRINTHOOKPROC, + pub lpfnSetupHook: LPSETUPHOOKPROC, + pub lpPrintTemplateName: ::windows_sys::core::PCSTR, + pub lpSetupTemplateName: ::windows_sys::core::PCSTR, + pub hPrintTemplate: super::super::super::Foundation::HGLOBAL, + pub hSetupTemplate: super::super::super::Foundation::HGLOBAL, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTDLGA {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTDLGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTDLGEXA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDevMode: super::super::super::Foundation::HGLOBAL, + pub hDevNames: super::super::super::Foundation::HGLOBAL, + pub hDC: super::super::super::Graphics::Gdi::HDC, + pub Flags: PRINTDLGEX_FLAGS, + pub Flags2: u32, + pub ExclusionFlags: u32, + pub nPageRanges: u32, + pub nMaxPageRanges: u32, + pub lpPageRanges: *mut PRINTPAGERANGE, + pub nMinPage: u32, + pub nMaxPage: u32, + pub nCopies: u32, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpPrintTemplateName: ::windows_sys::core::PCSTR, + pub lpCallback: ::windows_sys::core::IUnknown, + pub nPropertyPages: u32, + pub lphPropertyPages: *mut super::HPROPSHEETPAGE, + pub nStartPage: u32, + pub dwResultAction: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTDLGEXA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTDLGEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTDLGEXA { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDevMode: super::super::super::Foundation::HGLOBAL, + pub hDevNames: super::super::super::Foundation::HGLOBAL, + pub hDC: super::super::super::Graphics::Gdi::HDC, + pub Flags: PRINTDLGEX_FLAGS, + pub Flags2: u32, + pub ExclusionFlags: u32, + pub nPageRanges: u32, + pub nMaxPageRanges: u32, + pub lpPageRanges: *mut PRINTPAGERANGE, + pub nMinPage: u32, + pub nMaxPage: u32, + pub nCopies: u32, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpPrintTemplateName: ::windows_sys::core::PCSTR, + pub lpCallback: ::windows_sys::core::IUnknown, + pub nPropertyPages: u32, + pub lphPropertyPages: *mut super::HPROPSHEETPAGE, + pub nStartPage: u32, + pub dwResultAction: u32, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTDLGEXA {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTDLGEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTDLGEXW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDevMode: super::super::super::Foundation::HGLOBAL, + pub hDevNames: super::super::super::Foundation::HGLOBAL, + pub hDC: super::super::super::Graphics::Gdi::HDC, + pub Flags: PRINTDLGEX_FLAGS, + pub Flags2: u32, + pub ExclusionFlags: u32, + pub nPageRanges: u32, + pub nMaxPageRanges: u32, + pub lpPageRanges: *mut PRINTPAGERANGE, + pub nMinPage: u32, + pub nMaxPage: u32, + pub nCopies: u32, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpPrintTemplateName: ::windows_sys::core::PCWSTR, + pub lpCallback: ::windows_sys::core::IUnknown, + pub nPropertyPages: u32, + pub lphPropertyPages: *mut super::HPROPSHEETPAGE, + pub nStartPage: u32, + pub dwResultAction: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTDLGEXW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTDLGEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTDLGEXW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDevMode: super::super::super::Foundation::HGLOBAL, + pub hDevNames: super::super::super::Foundation::HGLOBAL, + pub hDC: super::super::super::Graphics::Gdi::HDC, + pub Flags: PRINTDLGEX_FLAGS, + pub Flags2: u32, + pub ExclusionFlags: u32, + pub nPageRanges: u32, + pub nMaxPageRanges: u32, + pub lpPageRanges: *mut PRINTPAGERANGE, + pub nMinPage: u32, + pub nMaxPage: u32, + pub nCopies: u32, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lpPrintTemplateName: ::windows_sys::core::PCWSTR, + pub lpCallback: ::windows_sys::core::IUnknown, + pub nPropertyPages: u32, + pub lphPropertyPages: *mut super::HPROPSHEETPAGE, + pub nStartPage: u32, + pub dwResultAction: u32, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTDLGEXW {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTDLGEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTDLGW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDevMode: super::super::super::Foundation::HGLOBAL, + pub hDevNames: super::super::super::Foundation::HGLOBAL, + pub hDC: super::super::super::Graphics::Gdi::HDC, + pub Flags: PRINTDLGEX_FLAGS, + pub nFromPage: u16, + pub nToPage: u16, + pub nMinPage: u16, + pub nMaxPage: u16, + pub nCopies: u16, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnPrintHook: LPPRINTHOOKPROC, + pub lpfnSetupHook: LPSETUPHOOKPROC, + pub lpPrintTemplateName: ::windows_sys::core::PCWSTR, + pub lpSetupTemplateName: ::windows_sys::core::PCWSTR, + pub hPrintTemplate: super::super::super::Foundation::HGLOBAL, + pub hSetupTemplate: super::super::super::Foundation::HGLOBAL, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTDLGW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTDLGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct PRINTDLGW { + pub lStructSize: u32, + pub hwndOwner: super::super::super::Foundation::HWND, + pub hDevMode: super::super::super::Foundation::HGLOBAL, + pub hDevNames: super::super::super::Foundation::HGLOBAL, + pub hDC: super::super::super::Graphics::Gdi::HDC, + pub Flags: PRINTDLGEX_FLAGS, + pub nFromPage: u16, + pub nToPage: u16, + pub nMinPage: u16, + pub nMaxPage: u16, + pub nCopies: u16, + pub hInstance: super::super::super::Foundation::HINSTANCE, + pub lCustData: super::super::super::Foundation::LPARAM, + pub lpfnPrintHook: LPPRINTHOOKPROC, + pub lpfnSetupHook: LPSETUPHOOKPROC, + pub lpPrintTemplateName: ::windows_sys::core::PCWSTR, + pub lpSetupTemplateName: ::windows_sys::core::PCWSTR, + pub hPrintTemplate: super::super::super::Foundation::HGLOBAL, + pub hSetupTemplate: super::super::super::Foundation::HGLOBAL, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for PRINTDLGW {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for PRINTDLGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct PRINTPAGERANGE { + pub nFromPage: u32, + pub nToPage: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for PRINTPAGERANGE {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for PRINTPAGERANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct PRINTPAGERANGE { + pub nFromPage: u32, + pub nToPage: u32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for PRINTPAGERANGE {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for PRINTPAGERANGE { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPCCHOOKPROC = ::core::option::Option usize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPCFHOOKPROC = ::core::option::Option usize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFRHOOKPROC = ::core::option::Option usize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPOFNHOOKPROC = ::core::option::Option usize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPPAGEPAINTHOOK = ::core::option::Option usize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPPAGESETUPHOOK = ::core::option::Option usize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPPRINTHOOKPROC = ::core::option::Option usize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPSETUPHOOKPROC = ::core::option::Option usize>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Controls/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Controls/mod.rs new file mode 100644 index 000000000..7a7b60470 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Controls/mod.rs @@ -0,0 +1,9429 @@ +#[cfg(feature = "Win32_UI_Controls_Dialogs")] +#[doc = "Required features: `\"Win32_UI_Controls_Dialogs\"`"] +pub mod Dialogs; +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn BeginBufferedAnimation(hwnd : super::super::Foundation:: HWND, hdctarget : super::super::Graphics::Gdi:: HDC, prctarget : *const super::super::Foundation:: RECT, dwformat : BP_BUFFERFORMAT, ppaintparams : *const BP_PAINTPARAMS, panimationparams : *const BP_ANIMATIONPARAMS, phdcfrom : *mut super::super::Graphics::Gdi:: HDC, phdcto : *mut super::super::Graphics::Gdi:: HDC) -> isize); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn BeginBufferedPaint(hdctarget : super::super::Graphics::Gdi:: HDC, prctarget : *const super::super::Foundation:: RECT, dwformat : BP_BUFFERFORMAT, ppaintparams : *const BP_PAINTPARAMS, phdc : *mut super::super::Graphics::Gdi:: HDC) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BeginPanningFeedback(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BufferedPaintClear(hbufferedpaint : isize, prc : *const super::super::Foundation:: RECT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn BufferedPaintInit() -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn BufferedPaintRenderAnimation(hwnd : super::super::Foundation:: HWND, hdctarget : super::super::Graphics::Gdi:: HDC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BufferedPaintSetAlpha(hbufferedpaint : isize, prc : *const super::super::Foundation:: RECT, alpha : u8) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BufferedPaintStopAllAnimations(hwnd : super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn BufferedPaintUnInit() -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckDlgButton(hdlg : super::super::Foundation:: HWND, nidbutton : i32, ucheck : DLG_BUTTON_CHECK_STATE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckRadioButton(hdlg : super::super::Foundation:: HWND, nidfirstbutton : i32, nidlastbutton : i32, nidcheckbutton : i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("uxtheme.dll" "system" fn CloseThemeData(htheme : HTHEME) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CreateMappedBitmap(hinstance : super::super::Foundation:: HINSTANCE, idbitmap : isize, wflags : u32, lpcolormap : *const COLORMAP, inummaps : i32) -> super::super::Graphics::Gdi:: HBITMAP); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn CreatePropertySheetPageA(constpropsheetpagepointer : *mut PROPSHEETPAGEA) -> HPROPSHEETPAGE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn CreatePropertySheetPageW(constpropsheetpagepointer : *mut PROPSHEETPAGEW) -> HPROPSHEETPAGE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateStatusWindowA(style : i32, lpsztext : ::windows_sys::core::PCSTR, hwndparent : super::super::Foundation:: HWND, wid : u32) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateStatusWindowW(style : i32, lpsztext : ::windows_sys::core::PCWSTR, hwndparent : super::super::Foundation:: HWND, wid : u32) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn CreateSyntheticPointerDevice(pointertype : super::WindowsAndMessaging:: POINTER_INPUT_TYPE, maxcount : u32, mode : POINTER_FEEDBACK_MODE) -> HSYNTHETICPOINTERDEVICE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateToolbarEx(hwnd : super::super::Foundation:: HWND, ws : u32, wid : u32, nbitmaps : i32, hbminst : super::super::Foundation:: HINSTANCE, wbmid : usize, lpbuttons : *mut TBBUTTON, inumbuttons : i32, dxbutton : i32, dybutton : i32, dxbitmap : i32, dybitmap : i32, ustructsize : u32) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateUpDownControl(dwstyle : u32, x : i32, y : i32, cx : i32, cy : i32, hparent : super::super::Foundation:: HWND, nid : i32, hinst : super::super::Foundation:: HINSTANCE, hbuddy : super::super::Foundation:: HWND, nupper : i32, nlower : i32, npos : i32) -> super::super::Foundation:: HWND); +::windows_targets::link!("comctl32.dll" "system" fn DPA_Clone(hdpa : HDPA, hdpanew : HDPA) -> HDPA); +::windows_targets::link!("comctl32.dll" "system" fn DPA_Create(citemgrow : i32) -> HDPA); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DPA_CreateEx(cpgrow : i32, hheap : super::super::Foundation:: HANDLE) -> HDPA); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DPA_DeleteAllPtrs(hdpa : HDPA) -> super::super::Foundation:: BOOL); +::windows_targets::link!("comctl32.dll" "system" fn DPA_DeletePtr(hdpa : HDPA, i : i32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DPA_Destroy(hdpa : HDPA) -> super::super::Foundation:: BOOL); +::windows_targets::link!("comctl32.dll" "system" fn DPA_DestroyCallback(hdpa : HDPA, pfncb : PFNDAENUMCALLBACK, pdata : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("comctl32.dll" "system" fn DPA_EnumCallback(hdpa : HDPA, pfncb : PFNDAENUMCALLBACK, pdata : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("comctl32.dll" "system" fn DPA_GetPtr(hdpa : HDPA, i : isize) -> *mut ::core::ffi::c_void); +::windows_targets::link!("comctl32.dll" "system" fn DPA_GetPtrIndex(hdpa : HDPA, p : *const ::core::ffi::c_void) -> i32); +::windows_targets::link!("comctl32.dll" "system" fn DPA_GetSize(hdpa : HDPA) -> u64); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DPA_Grow(pdpa : HDPA, cp : i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("comctl32.dll" "system" fn DPA_InsertPtr(hdpa : HDPA, i : i32, p : *const ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn DPA_LoadStream(phdpa : *mut HDPA, pfn : PFNDPASTREAM, pstream : super::super::System::Com:: IStream, pvinstdata : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DPA_Merge(hdpadest : HDPA, hdpasrc : HDPA, dwflags : u32, pfncompare : PFNDACOMPARE, pfnmerge : PFNDPAMERGE, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn DPA_SaveStream(hdpa : HDPA, pfn : PFNDPASTREAM, pstream : super::super::System::Com:: IStream, pvinstdata : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DPA_Search(hdpa : HDPA, pfind : *const ::core::ffi::c_void, istart : i32, pfncompare : PFNDACOMPARE, lparam : super::super::Foundation:: LPARAM, options : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DPA_SetPtr(hdpa : HDPA, i : i32, p : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DPA_Sort(hdpa : HDPA, pfncompare : PFNDACOMPARE, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +::windows_targets::link!("comctl32.dll" "system" fn DSA_Clone(hdsa : HDSA) -> HDSA); +::windows_targets::link!("comctl32.dll" "system" fn DSA_Create(cbitem : i32, citemgrow : i32) -> HDSA); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DSA_DeleteAllItems(hdsa : HDSA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DSA_DeleteItem(hdsa : HDSA, i : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DSA_Destroy(hdsa : HDSA) -> super::super::Foundation:: BOOL); +::windows_targets::link!("comctl32.dll" "system" fn DSA_DestroyCallback(hdsa : HDSA, pfncb : PFNDAENUMCALLBACK, pdata : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("comctl32.dll" "system" fn DSA_EnumCallback(hdsa : HDSA, pfncb : PFNDAENUMCALLBACK, pdata : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DSA_GetItem(hdsa : HDSA, i : i32, pitem : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("comctl32.dll" "system" fn DSA_GetItemPtr(hdsa : HDSA, i : i32) -> *mut ::core::ffi::c_void); +::windows_targets::link!("comctl32.dll" "system" fn DSA_GetSize(hdsa : HDSA) -> u64); +::windows_targets::link!("comctl32.dll" "system" fn DSA_InsertItem(hdsa : HDSA, i : i32, pitem : *const ::core::ffi::c_void) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DSA_SetItem(hdsa : HDSA, i : i32, pitem : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DSA_Sort(pdsa : HDSA, pfncompare : PFNDACOMPARE, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DestroyPropertySheetPage(param0 : HPROPSHEETPAGE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn DestroySyntheticPointerDevice(device : HSYNTHETICPOINTERDEVICE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DlgDirListA(hdlg : super::super::Foundation:: HWND, lppathspec : ::windows_sys::core::PSTR, nidlistbox : i32, nidstaticpath : i32, ufiletype : DLG_DIR_LIST_FILE_TYPE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DlgDirListComboBoxA(hdlg : super::super::Foundation:: HWND, lppathspec : ::windows_sys::core::PSTR, nidcombobox : i32, nidstaticpath : i32, ufiletype : DLG_DIR_LIST_FILE_TYPE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DlgDirListComboBoxW(hdlg : super::super::Foundation:: HWND, lppathspec : ::windows_sys::core::PWSTR, nidcombobox : i32, nidstaticpath : i32, ufiletype : DLG_DIR_LIST_FILE_TYPE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DlgDirListW(hdlg : super::super::Foundation:: HWND, lppathspec : ::windows_sys::core::PWSTR, nidlistbox : i32, nidstaticpath : i32, ufiletype : DLG_DIR_LIST_FILE_TYPE) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DlgDirSelectComboBoxExA(hwnddlg : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PSTR, cchout : i32, idcombobox : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DlgDirSelectComboBoxExW(hwnddlg : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PWSTR, cchout : i32, idcombobox : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DlgDirSelectExA(hwnddlg : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PSTR, chcount : i32, idlistbox : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DlgDirSelectExW(hwnddlg : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PWSTR, chcount : i32, idlistbox : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawInsert(handparent : super::super::Foundation:: HWND, hlb : super::super::Foundation:: HWND, nitem : i32) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawShadowText(hdc : super::super::Graphics::Gdi:: HDC, psztext : ::windows_sys::core::PCWSTR, cch : u32, prc : *const super::super::Foundation:: RECT, dwflags : u32, crtext : super::super::Foundation:: COLORREF, crshadow : super::super::Foundation:: COLORREF, ixoffset : i32, iyoffset : i32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawStatusTextA(hdc : super::super::Graphics::Gdi:: HDC, lprc : *mut super::super::Foundation:: RECT, psztext : ::windows_sys::core::PCSTR, uflags : u32) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawStatusTextW(hdc : super::super::Graphics::Gdi:: HDC, lprc : *mut super::super::Foundation:: RECT, psztext : ::windows_sys::core::PCWSTR, uflags : u32) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawThemeBackground(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, prect : *const super::super::Foundation:: RECT, pcliprect : *const super::super::Foundation:: RECT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawThemeBackgroundEx(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, prect : *const super::super::Foundation:: RECT, poptions : *const DTBGOPTS) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawThemeEdge(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, pdestrect : *const super::super::Foundation:: RECT, uedge : super::super::Graphics::Gdi:: DRAWEDGE_FLAGS, uflags : super::super::Graphics::Gdi:: DRAW_EDGE_FLAGS, pcontentrect : *mut super::super::Foundation:: RECT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawThemeIcon(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, prect : *const super::super::Foundation:: RECT, himl : HIMAGELIST, iimageindex : i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawThemeParentBackground(hwnd : super::super::Foundation:: HWND, hdc : super::super::Graphics::Gdi:: HDC, prc : *const super::super::Foundation:: RECT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawThemeParentBackgroundEx(hwnd : super::super::Foundation:: HWND, hdc : super::super::Graphics::Gdi:: HDC, dwflags : DRAW_THEME_PARENT_BACKGROUND_FLAGS, prc : *const super::super::Foundation:: RECT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawThemeText(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, psztext : ::windows_sys::core::PCWSTR, cchtext : i32, dwtextflags : super::super::Graphics::Gdi:: DRAW_TEXT_FORMAT, dwtextflags2 : u32, prect : *const super::super::Foundation:: RECT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawThemeTextEx(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, psztext : ::windows_sys::core::PCWSTR, cchtext : i32, dwtextflags : super::super::Graphics::Gdi:: DRAW_TEXT_FORMAT, prect : *mut super::super::Foundation:: RECT, poptions : *const DTTOPTS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableScrollBar(hwnd : super::super::Foundation:: HWND, wsbflags : u32, warrows : ENABLE_SCROLL_BAR_ARROWS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableThemeDialogTexture(hwnd : super::super::Foundation:: HWND, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableTheming(fenable : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EndBufferedAnimation(hbpanimation : isize, fupdatetarget : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EndBufferedPaint(hbufferedpaint : isize, fupdatetarget : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EndPanningFeedback(hwnd : super::super::Foundation:: HWND, fanimateback : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvaluateProximityToPolygon(numvertices : u32, controlpolygon : *const super::super::Foundation:: POINT, phittestinginput : *const TOUCH_HIT_TESTING_INPUT, pproximityeval : *mut TOUCH_HIT_TESTING_PROXIMITY_EVALUATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EvaluateProximityToRect(controlboundingbox : *const super::super::Foundation:: RECT, phittestinginput : *const TOUCH_HIT_TESTING_INPUT, pproximityeval : *mut TOUCH_HIT_TESTING_PROXIMITY_EVALUATION) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlatSB_EnableScrollBar(param0 : super::super::Foundation:: HWND, param1 : i32, param2 : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn FlatSB_GetScrollInfo(param0 : super::super::Foundation:: HWND, code : super::WindowsAndMessaging:: SCROLLBAR_CONSTANTS, param2 : *mut super::WindowsAndMessaging:: SCROLLINFO) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn FlatSB_GetScrollPos(param0 : super::super::Foundation:: HWND, code : super::WindowsAndMessaging:: SCROLLBAR_CONSTANTS) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlatSB_GetScrollProp(param0 : super::super::Foundation:: HWND, propindex : WSB_PROP, param2 : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn FlatSB_GetScrollRange(param0 : super::super::Foundation:: HWND, code : super::WindowsAndMessaging:: SCROLLBAR_CONSTANTS, param2 : *mut i32, param3 : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn FlatSB_SetScrollInfo(param0 : super::super::Foundation:: HWND, code : super::WindowsAndMessaging:: SCROLLBAR_CONSTANTS, psi : *mut super::WindowsAndMessaging:: SCROLLINFO, fredraw : super::super::Foundation:: BOOL) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn FlatSB_SetScrollPos(param0 : super::super::Foundation:: HWND, code : super::WindowsAndMessaging:: SCROLLBAR_CONSTANTS, pos : i32, fredraw : super::super::Foundation:: BOOL) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlatSB_SetScrollProp(param0 : super::super::Foundation:: HWND, index : u32, newvalue : isize, param3 : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn FlatSB_SetScrollRange(param0 : super::super::Foundation:: HWND, code : super::WindowsAndMessaging:: SCROLLBAR_CONSTANTS, min : i32, max : i32, fredraw : super::super::Foundation:: BOOL) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn FlatSB_ShowScrollBar(param0 : super::super::Foundation:: HWND, code : super::WindowsAndMessaging:: SCROLLBAR_CONSTANTS, param2 : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetBufferedPaintBits(hbufferedpaint : isize, ppbbuffer : *mut *mut super::super::Graphics::Gdi:: RGBQUAD, pcxrow : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetBufferedPaintDC(hbufferedpaint : isize) -> super::super::Graphics::Gdi:: HDC); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetBufferedPaintTargetDC(hbufferedpaint : isize) -> super::super::Graphics::Gdi:: HDC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetBufferedPaintTargetRect(hbufferedpaint : isize, prc : *mut super::super::Foundation:: RECT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetComboBoxInfo(hwndcombo : super::super::Foundation:: HWND, pcbi : *mut COMBOBOXINFO) -> super::super::Foundation:: BOOL); +::windows_targets::link!("uxtheme.dll" "system" fn GetCurrentThemeName(pszthemefilename : ::windows_sys::core::PWSTR, cchmaxnamechars : i32, pszcolorbuff : ::windows_sys::core::PWSTR, cchmaxcolorchars : i32, pszsizebuff : ::windows_sys::core::PWSTR, cchmaxsizechars : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetEffectiveClientRect(hwnd : super::super::Foundation:: HWND, lprc : *mut super::super::Foundation:: RECT, lpinfo : *const i32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetListBoxInfo(hwnd : super::super::Foundation:: HWND) -> u32); +::windows_targets::link!("comctl32.dll" "system" fn GetMUILanguage() -> u16); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeAnimationProperty(htheme : HTHEME, istoryboardid : i32, itargetid : i32, eproperty : TA_PROPERTY, pvproperty : *mut ::core::ffi::c_void, cbsize : u32, pcbsizeout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeAnimationTransform(htheme : HTHEME, istoryboardid : i32, itargetid : i32, dwtransformindex : u32, ptransform : *mut TA_TRANSFORM, cbsize : u32, pcbsizeout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeAppProperties() -> SET_THEME_APP_PROPERTIES_FLAGS); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetThemeBackgroundContentRect(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, pboundingrect : *const super::super::Foundation:: RECT, pcontentrect : *mut super::super::Foundation:: RECT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetThemeBackgroundExtent(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, pcontentrect : *const super::super::Foundation:: RECT, pextentrect : *mut super::super::Foundation:: RECT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetThemeBackgroundRegion(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, prect : *const super::super::Foundation:: RECT, pregion : *mut super::super::Graphics::Gdi:: HRGN) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetThemeBitmap(htheme : HTHEME, ipartid : i32, istateid : i32, ipropid : i32, dwflags : GET_THEME_BITMAP_FLAGS, phbitmap : *mut super::super::Graphics::Gdi:: HBITMAP) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThemeBool(htheme : HTHEME, ipartid : i32, istateid : i32, ipropid : i32, pfval : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThemeColor(htheme : HTHEME, ipartid : i32, istateid : i32, ipropid : i32, pcolor : *mut super::super::Foundation:: COLORREF) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeDocumentationProperty(pszthemename : ::windows_sys::core::PCWSTR, pszpropertyname : ::windows_sys::core::PCWSTR, pszvaluebuff : ::windows_sys::core::PWSTR, cchmaxvalchars : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeEnumValue(htheme : HTHEME, ipartid : i32, istateid : i32, ipropid : i32, pival : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeFilename(htheme : HTHEME, ipartid : i32, istateid : i32, ipropid : i32, pszthemefilename : ::windows_sys::core::PWSTR, cchmaxbuffchars : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetThemeFont(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, ipropid : i32, pfont : *mut super::super::Graphics::Gdi:: LOGFONTW) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeInt(htheme : HTHEME, ipartid : i32, istateid : i32, ipropid : i32, pival : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeIntList(htheme : HTHEME, ipartid : i32, istateid : i32, ipropid : i32, pintlist : *mut INTLIST) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetThemeMargins(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, ipropid : i32, prc : *const super::super::Foundation:: RECT, pmargins : *mut MARGINS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetThemeMetric(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, ipropid : i32, pival : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetThemePartSize(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, prc : *const super::super::Foundation:: RECT, esize : THEMESIZE, psz : *mut super::super::Foundation:: SIZE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThemePosition(htheme : HTHEME, ipartid : i32, istateid : i32, ipropid : i32, ppoint : *mut super::super::Foundation:: POINT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemePropertyOrigin(htheme : HTHEME, ipartid : i32, istateid : i32, ipropid : i32, porigin : *mut PROPERTYORIGIN) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThemeRect(htheme : HTHEME, ipartid : i32, istateid : i32, ipropid : i32, prect : *mut super::super::Foundation:: RECT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThemeStream(htheme : HTHEME, ipartid : i32, istateid : i32, ipropid : i32, ppvstream : *mut *mut ::core::ffi::c_void, pcbstream : *mut u32, hinst : super::super::Foundation:: HINSTANCE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeString(htheme : HTHEME, ipartid : i32, istateid : i32, ipropid : i32, pszbuff : ::windows_sys::core::PWSTR, cchmaxbuffchars : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThemeSysBool(htheme : HTHEME, iboolid : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetThemeSysColor(htheme : HTHEME, icolorid : i32) -> super::super::Foundation:: COLORREF); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetThemeSysColorBrush(htheme : HTHEME, icolorid : i32) -> super::super::Graphics::Gdi:: HBRUSH); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetThemeSysFont(htheme : HTHEME, ifontid : i32, plf : *mut super::super::Graphics::Gdi:: LOGFONTW) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeSysInt(htheme : HTHEME, iintid : i32, pivalue : *mut i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeSysSize(htheme : HTHEME, isizeid : i32) -> i32); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeSysString(htheme : HTHEME, istringid : i32, pszstringbuff : ::windows_sys::core::PWSTR, cchmaxstringchars : i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetThemeTextExtent(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, psztext : ::windows_sys::core::PCWSTR, cchcharcount : i32, dwtextflags : super::super::Graphics::Gdi:: DRAW_TEXT_FORMAT, pboundingrect : *const super::super::Foundation:: RECT, pextentrect : *mut super::super::Foundation:: RECT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetThemeTextMetrics(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, ptm : *mut super::super::Graphics::Gdi:: TEXTMETRICW) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeTimingFunction(htheme : HTHEME, itimingfunctionid : i32, ptimingfunction : *mut TA_TIMINGFUNCTION, cbsize : u32, pcbsizeout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("uxtheme.dll" "system" fn GetThemeTransitionDuration(htheme : HTHEME, ipartid : i32, istateidfrom : i32, istateidto : i32, ipropid : i32, pdwduration : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowFeedbackSetting(hwnd : super::super::Foundation:: HWND, feedback : FEEDBACK_TYPE, dwflags : u32, psize : *mut u32, config : *mut ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowTheme(hwnd : super::super::Foundation:: HWND) -> HTHEME); +::windows_targets::link!("comctl32.dll" "system" fn HIMAGELIST_QueryInterface(himl : HIMAGELIST, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn HitTestThemeBackground(htheme : HTHEME, hdc : super::super::Graphics::Gdi:: HDC, ipartid : i32, istateid : i32, dwoptions : HIT_TEST_BACKGROUND_OPTIONS, prect : *const super::super::Foundation:: RECT, hrgn : super::super::Graphics::Gdi:: HRGN, pttest : super::super::Foundation:: POINT, pwhittestcode : *mut u16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ImageList_Add(himl : HIMAGELIST, hbmimage : super::super::Graphics::Gdi:: HBITMAP, hbmmask : super::super::Graphics::Gdi:: HBITMAP) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ImageList_AddMasked(himl : HIMAGELIST, hbmimage : super::super::Graphics::Gdi:: HBITMAP, crmask : super::super::Foundation:: COLORREF) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_BeginDrag(himltrack : HIMAGELIST, itrack : i32, dxhotspot : i32, dyhotspot : i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("comctl32.dll" "system" fn ImageList_CoCreateInstance(rclsid : *const ::windows_sys::core::GUID, punkouter : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_Copy(himldst : HIMAGELIST, idst : i32, himlsrc : HIMAGELIST, isrc : i32, uflags : IMAGE_LIST_COPY_FLAGS) -> super::super::Foundation:: BOOL); +::windows_targets::link!("comctl32.dll" "system" fn ImageList_Create(cx : i32, cy : i32, flags : IMAGELIST_CREATION_FLAGS, cinitial : i32, cgrow : i32) -> HIMAGELIST); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_Destroy(himl : HIMAGELIST) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_DragEnter(hwndlock : super::super::Foundation:: HWND, x : i32, y : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_DragLeave(hwndlock : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_DragMove(x : i32, y : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_DragShowNolock(fshow : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ImageList_Draw(himl : HIMAGELIST, i : i32, hdcdst : super::super::Graphics::Gdi:: HDC, x : i32, y : i32, fstyle : IMAGE_LIST_DRAW_STYLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ImageList_DrawEx(himl : HIMAGELIST, i : i32, hdcdst : super::super::Graphics::Gdi:: HDC, x : i32, y : i32, dx : i32, dy : i32, rgbbk : super::super::Foundation:: COLORREF, rgbfg : super::super::Foundation:: COLORREF, fstyle : IMAGE_LIST_DRAW_STYLE) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ImageList_DrawIndirect(pimldp : *const IMAGELISTDRAWPARAMS) -> super::super::Foundation:: BOOL); +::windows_targets::link!("comctl32.dll" "system" fn ImageList_Duplicate(himl : HIMAGELIST) -> HIMAGELIST); +::windows_targets::link!("comctl32.dll" "system" fn ImageList_EndDrag() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_GetBkColor(himl : HIMAGELIST) -> super::super::Foundation:: COLORREF); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_GetDragImage(ppt : *mut super::super::Foundation:: POINT, ppthotspot : *mut super::super::Foundation:: POINT) -> HIMAGELIST); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn ImageList_GetIcon(himl : HIMAGELIST, i : i32, flags : IMAGE_LIST_DRAW_STYLE) -> super::WindowsAndMessaging:: HICON); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_GetIconSize(himl : HIMAGELIST, cx : *mut i32, cy : *mut i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("comctl32.dll" "system" fn ImageList_GetImageCount(himl : HIMAGELIST) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ImageList_GetImageInfo(himl : HIMAGELIST, i : i32, pimageinfo : *mut IMAGEINFO) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ImageList_LoadImageA(hi : super::super::Foundation:: HINSTANCE, lpbmp : ::windows_sys::core::PCSTR, cx : i32, cgrow : i32, crmask : super::super::Foundation:: COLORREF, utype : u32, uflags : super::WindowsAndMessaging:: IMAGE_FLAGS) -> HIMAGELIST); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ImageList_LoadImageW(hi : super::super::Foundation:: HINSTANCE, lpbmp : ::windows_sys::core::PCWSTR, cx : i32, cgrow : i32, crmask : super::super::Foundation:: COLORREF, utype : u32, uflags : super::WindowsAndMessaging:: IMAGE_FLAGS) -> HIMAGELIST); +::windows_targets::link!("comctl32.dll" "system" fn ImageList_Merge(himl1 : HIMAGELIST, i1 : i32, himl2 : HIMAGELIST, i2 : i32, dx : i32, dy : i32) -> HIMAGELIST); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn ImageList_Read(pstm : super::super::System::Com:: IStream) -> HIMAGELIST); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn ImageList_ReadEx(dwflags : u32, pstm : super::super::System::Com:: IStream, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_Remove(himl : HIMAGELIST, i : i32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ImageList_Replace(himl : HIMAGELIST, i : i32, hbmimage : super::super::Graphics::Gdi:: HBITMAP, hbmmask : super::super::Graphics::Gdi:: HBITMAP) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn ImageList_ReplaceIcon(himl : HIMAGELIST, i : i32, hicon : super::WindowsAndMessaging:: HICON) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_SetBkColor(himl : HIMAGELIST, clrbk : super::super::Foundation:: COLORREF) -> super::super::Foundation:: COLORREF); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_SetDragCursorImage(himldrag : HIMAGELIST, idrag : i32, dxhotspot : i32, dyhotspot : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_SetIconSize(himl : HIMAGELIST, cx : i32, cy : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_SetImageCount(himl : HIMAGELIST, unewcount : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImageList_SetOverlayImage(himl : HIMAGELIST, iimage : i32, ioverlay : i32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn ImageList_Write(himl : HIMAGELIST, pstm : super::super::System::Com:: IStream) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn ImageList_WriteEx(himl : HIMAGELIST, dwflags : IMAGE_LIST_WRITE_STREAM_FLAGS, pstm : super::super::System::Com:: IStream) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("comctl32.dll" "system" fn InitCommonControls() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitCommonControlsEx(picce : *const INITCOMMONCONTROLSEX) -> super::super::Foundation:: BOOL); +::windows_targets::link!("comctl32.dll" "system" fn InitMUILanguage(uilang : u16) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitializeFlatSB(param0 : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsAppThemed() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsCharLowerW(ch : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsCompositionActive() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsDlgButtonChecked(hdlg : super::super::Foundation:: HWND, nidbutton : i32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsThemeActive() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsThemeBackgroundPartiallyTransparent(htheme : HTHEME, ipartid : i32, istateid : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsThemeDialogTextureEnabled(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsThemePartDefined(htheme : HTHEME, ipartid : i32, istateid : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LBItemFromPt(hlb : super::super::Foundation:: HWND, pt : super::super::Foundation:: POINT, bautoscroll : super::super::Foundation:: BOOL) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn LoadIconMetric(hinst : super::super::Foundation:: HINSTANCE, pszname : ::windows_sys::core::PCWSTR, lims : _LI_METRIC, phico : *mut super::WindowsAndMessaging:: HICON) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn LoadIconWithScaleDown(hinst : super::super::Foundation:: HINSTANCE, pszname : ::windows_sys::core::PCWSTR, cx : i32, cy : i32, phico : *mut super::WindowsAndMessaging:: HICON) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MakeDragList(hlb : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn MenuHelp(umsg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM, hmainmenu : super::WindowsAndMessaging:: HMENU, hinst : super::super::Foundation:: HINSTANCE, hwndstatus : super::super::Foundation:: HWND, lpwids : *const u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenThemeData(hwnd : super::super::Foundation:: HWND, pszclasslist : ::windows_sys::core::PCWSTR) -> HTHEME); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenThemeDataEx(hwnd : super::super::Foundation:: HWND, pszclasslist : ::windows_sys::core::PCWSTR, dwflags : OPEN_THEME_DATA_FLAGS) -> HTHEME); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PackTouchHitTestingProximityEvaluation(phittestinginput : *const TOUCH_HIT_TESTING_INPUT, pproximityeval : *const TOUCH_HIT_TESTING_PROXIMITY_EVALUATION) -> super::super::Foundation:: LRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn PropertySheetA(param0 : *mut PROPSHEETHEADERA_V2) -> isize); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn PropertySheetW(param0 : *mut PROPSHEETHEADERW_V2) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterPointerDeviceNotifications(window : super::super::Foundation:: HWND, notifyrange : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterTouchHitTestingWindow(hwnd : super::super::Foundation:: HWND, value : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SetScrollInfo(hwnd : super::super::Foundation:: HWND, nbar : super::WindowsAndMessaging:: SCROLLBAR_CONSTANTS, lpsi : *const super::WindowsAndMessaging:: SCROLLINFO, redraw : super::super::Foundation:: BOOL) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SetScrollPos(hwnd : super::super::Foundation:: HWND, nbar : super::WindowsAndMessaging:: SCROLLBAR_CONSTANTS, npos : i32, bredraw : super::super::Foundation:: BOOL) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SetScrollRange(hwnd : super::super::Foundation:: HWND, nbar : super::WindowsAndMessaging:: SCROLLBAR_CONSTANTS, nminpos : i32, nmaxpos : i32, bredraw : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("uxtheme.dll" "system" fn SetThemeAppProperties(dwflags : SET_THEME_APP_PROPERTIES_FLAGS) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowFeedbackSetting(hwnd : super::super::Foundation:: HWND, feedback : FEEDBACK_TYPE, dwflags : u32, size : u32, configuration : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowTheme(hwnd : super::super::Foundation:: HWND, pszsubappname : ::windows_sys::core::PCWSTR, pszsubidlist : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowThemeAttribute(hwnd : super::super::Foundation:: HWND, eattribute : WINDOWTHEMEATTRIBUTETYPE, pvattribute : *const ::core::ffi::c_void, cbattribute : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ShowHideMenuCtl(hwnd : super::super::Foundation:: HWND, uflags : usize, lpinfo : *const i32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ShowScrollBar(hwnd : super::super::Foundation:: HWND, wbar : super::WindowsAndMessaging:: SCROLLBAR_CONSTANTS, bshow : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Str_SetPtrW(ppsz : *mut ::windows_sys::core::PWSTR, psz : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TaskDialog(hwndowner : super::super::Foundation:: HWND, hinstance : super::super::Foundation:: HINSTANCE, pszwindowtitle : ::windows_sys::core::PCWSTR, pszmaininstruction : ::windows_sys::core::PCWSTR, pszcontent : ::windows_sys::core::PCWSTR, dwcommonbuttons : TASKDIALOG_COMMON_BUTTON_FLAGS, pszicon : ::windows_sys::core::PCWSTR, pnbutton : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn TaskDialogIndirect(ptaskconfig : *const TASKDIALOGCONFIG, pnbutton : *mut i32, pnradiobutton : *mut i32, pfverificationflagchecked : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UninitializeFlatSB(param0 : super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UpdatePanningFeedback(hwnd : super::super::Foundation:: HWND, ltotaloverpanoffsetx : i32, ltotaloverpanoffsety : i32, fininertia : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +pub type IImageList = *mut ::core::ffi::c_void; +pub type IImageList2 = *mut ::core::ffi::c_void; +pub const ABS_DOWNDISABLED: ARROWBTNSTATES = 8i32; +pub const ABS_DOWNHOT: ARROWBTNSTATES = 6i32; +pub const ABS_DOWNHOVER: ARROWBTNSTATES = 18i32; +pub const ABS_DOWNNORMAL: ARROWBTNSTATES = 5i32; +pub const ABS_DOWNPRESSED: ARROWBTNSTATES = 7i32; +pub const ABS_LEFTDISABLED: ARROWBTNSTATES = 12i32; +pub const ABS_LEFTHOT: ARROWBTNSTATES = 10i32; +pub const ABS_LEFTHOVER: ARROWBTNSTATES = 19i32; +pub const ABS_LEFTNORMAL: ARROWBTNSTATES = 9i32; +pub const ABS_LEFTPRESSED: ARROWBTNSTATES = 11i32; +pub const ABS_RIGHTDISABLED: ARROWBTNSTATES = 16i32; +pub const ABS_RIGHTHOT: ARROWBTNSTATES = 14i32; +pub const ABS_RIGHTHOVER: ARROWBTNSTATES = 20i32; +pub const ABS_RIGHTNORMAL: ARROWBTNSTATES = 13i32; +pub const ABS_RIGHTPRESSED: ARROWBTNSTATES = 15i32; +pub const ABS_UPDISABLED: ARROWBTNSTATES = 4i32; +pub const ABS_UPHOT: ARROWBTNSTATES = 2i32; +pub const ABS_UPHOVER: ARROWBTNSTATES = 17i32; +pub const ABS_UPNORMAL: ARROWBTNSTATES = 1i32; +pub const ABS_UPPRESSED: ARROWBTNSTATES = 3i32; +pub const ACM_ISPLAYING: u32 = 1128u32; +pub const ACM_OPEN: u32 = 1127u32; +pub const ACM_OPENA: u32 = 1124u32; +pub const ACM_OPENW: u32 = 1127u32; +pub const ACM_PLAY: u32 = 1125u32; +pub const ACM_STOP: u32 = 1126u32; +pub const ACN_START: u32 = 1u32; +pub const ACN_STOP: u32 = 2u32; +pub const ACS_AUTOPLAY: u32 = 4u32; +pub const ACS_CENTER: u32 = 1u32; +pub const ACS_TIMER: u32 = 8u32; +pub const ACS_TRANSPARENT: u32 = 2u32; +pub const ALLOW_CONTROLS: SET_THEME_APP_PROPERTIES_FLAGS = 2u32; +pub const ALLOW_NONCLIENT: SET_THEME_APP_PROPERTIES_FLAGS = 1u32; +pub const ALLOW_WEBCONTENT: SET_THEME_APP_PROPERTIES_FLAGS = 4u32; +pub const ANIMATE_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysAnimate32"); +pub const ANIMATE_CLASSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SysAnimate32"); +pub const ANIMATE_CLASSW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysAnimate32"); +pub const AW_BUTTON: AEROWIZARDPARTS = 5i32; +pub const AW_COMMANDAREA: AEROWIZARDPARTS = 4i32; +pub const AW_CONTENTAREA: AEROWIZARDPARTS = 3i32; +pub const AW_HEADERAREA: AEROWIZARDPARTS = 2i32; +pub const AW_S_CONTENTAREA_NOMARGIN: CONTENTAREASTATES = 1i32; +pub const AW_S_HEADERAREA_NOMARGIN: HEADERAREASTATES = 1i32; +pub const AW_S_TITLEBAR_ACTIVE: TITLEBARSTATES = 1i32; +pub const AW_S_TITLEBAR_INACTIVE: TITLEBARSTATES = 2i32; +pub const AW_TITLEBAR: AEROWIZARDPARTS = 1i32; +pub const BCM_FIRST: u32 = 5632u32; +pub const BCM_GETIDEALSIZE: u32 = 5633u32; +pub const BCM_GETIMAGELIST: u32 = 5635u32; +pub const BCM_GETNOTE: u32 = 5642u32; +pub const BCM_GETNOTELENGTH: u32 = 5643u32; +pub const BCM_GETSPLITINFO: u32 = 5640u32; +pub const BCM_GETTEXTMARGIN: u32 = 5637u32; +pub const BCM_SETDROPDOWNSTATE: u32 = 5638u32; +pub const BCM_SETIMAGELIST: u32 = 5634u32; +pub const BCM_SETNOTE: u32 = 5641u32; +pub const BCM_SETSHIELD: u32 = 5644u32; +pub const BCM_SETSPLITINFO: u32 = 5639u32; +pub const BCM_SETTEXTMARGIN: u32 = 5636u32; +pub const BCN_DROPDOWN: u32 = 4294966048u32; +pub const BCN_FIRST: u32 = 4294966046u32; +pub const BCN_HOTITEMCHANGE: u32 = 4294966047u32; +pub const BCN_LAST: u32 = 4294965946u32; +pub const BCSIF_GLYPH: u32 = 1u32; +pub const BCSIF_IMAGE: u32 = 2u32; +pub const BCSIF_SIZE: u32 = 8u32; +pub const BCSIF_STYLE: u32 = 4u32; +pub const BCSS_ALIGNLEFT: u32 = 4u32; +pub const BCSS_IMAGE: u32 = 8u32; +pub const BCSS_NOSPLIT: u32 = 1u32; +pub const BCSS_STRETCH: u32 = 2u32; +pub const BPAS_CUBIC: BP_ANIMATIONSTYLE = 2i32; +pub const BPAS_LINEAR: BP_ANIMATIONSTYLE = 1i32; +pub const BPAS_NONE: BP_ANIMATIONSTYLE = 0i32; +pub const BPAS_SINE: BP_ANIMATIONSTYLE = 3i32; +pub const BPBF_COMPATIBLEBITMAP: BP_BUFFERFORMAT = 0i32; +pub const BPBF_DIB: BP_BUFFERFORMAT = 1i32; +pub const BPBF_TOPDOWNDIB: BP_BUFFERFORMAT = 2i32; +pub const BPBF_TOPDOWNMONODIB: BP_BUFFERFORMAT = 3i32; +pub const BPPF_ERASE: BP_PAINTPARAMS_FLAGS = 1u32; +pub const BPPF_NOCLIP: BP_PAINTPARAMS_FLAGS = 2u32; +pub const BPPF_NONCLIENT: BP_PAINTPARAMS_FLAGS = 4u32; +pub const BP_CHECKBOX: BUTTONPARTS = 3i32; +pub const BP_CHECKBOX_HCDISABLED: BUTTONPARTS = 9i32; +pub const BP_COMMANDLINK: BUTTONPARTS = 6i32; +pub const BP_COMMANDLINKGLYPH: BUTTONPARTS = 7i32; +pub const BP_GROUPBOX: BUTTONPARTS = 4i32; +pub const BP_GROUPBOX_HCDISABLED: BUTTONPARTS = 10i32; +pub const BP_PUSHBUTTON: BUTTONPARTS = 1i32; +pub const BP_PUSHBUTTONDROPDOWN: BUTTONPARTS = 11i32; +pub const BP_RADIOBUTTON: BUTTONPARTS = 2i32; +pub const BP_RADIOBUTTON_HCDISABLED: BUTTONPARTS = 8i32; +pub const BP_USERBUTTON: BUTTONPARTS = 5i32; +pub const BST_CHECKED: DLG_BUTTON_CHECK_STATE = 1u32; +pub const BST_DROPDOWNPUSHED: u32 = 1024u32; +pub const BST_HOT: u32 = 512u32; +pub const BST_INDETERMINATE: DLG_BUTTON_CHECK_STATE = 2u32; +pub const BST_UNCHECKED: DLG_BUTTON_CHECK_STATE = 0u32; +pub const BS_COMMANDLINK: i32 = 14i32; +pub const BS_DEFCOMMANDLINK: i32 = 15i32; +pub const BS_DEFSPLITBUTTON: i32 = 13i32; +pub const BS_SPLITBUTTON: i32 = 12i32; +pub const BTNS_AUTOSIZE: u32 = 16u32; +pub const BTNS_BUTTON: u32 = 0u32; +pub const BTNS_CHECK: u32 = 2u32; +pub const BTNS_DROPDOWN: u32 = 8u32; +pub const BTNS_GROUP: u32 = 4u32; +pub const BTNS_NOPREFIX: u32 = 32u32; +pub const BTNS_SEP: u32 = 1u32; +pub const BTNS_SHOWTEXT: u32 = 64u32; +pub const BTNS_WHOLEDROPDOWN: u32 = 128u32; +pub const BT_BORDERFILL: BGTYPE = 1i32; +pub const BT_ELLIPSE: BORDERTYPE = 2i32; +pub const BT_IMAGEFILE: BGTYPE = 0i32; +pub const BT_NONE: BGTYPE = 2i32; +pub const BT_RECT: BORDERTYPE = 0i32; +pub const BT_ROUNDRECT: BORDERTYPE = 1i32; +pub const BUTTON_IMAGELIST_ALIGN_BOTTOM: BUTTON_IMAGELIST_ALIGN = 3u32; +pub const BUTTON_IMAGELIST_ALIGN_CENTER: BUTTON_IMAGELIST_ALIGN = 4u32; +pub const BUTTON_IMAGELIST_ALIGN_LEFT: BUTTON_IMAGELIST_ALIGN = 0u32; +pub const BUTTON_IMAGELIST_ALIGN_RIGHT: BUTTON_IMAGELIST_ALIGN = 1u32; +pub const BUTTON_IMAGELIST_ALIGN_TOP: BUTTON_IMAGELIST_ALIGN = 2u32; +pub const CA_CENTER: CONTENTALIGNMENT = 1i32; +pub const CA_LEFT: CONTENTALIGNMENT = 0i32; +pub const CA_RIGHT: CONTENTALIGNMENT = 2i32; +pub const CBB_DISABLED: BORDERSTATES = 4i32; +pub const CBB_FOCUSED: BORDERSTATES = 3i32; +pub const CBB_HOT: BORDERSTATES = 2i32; +pub const CBB_NORMAL: BORDERSTATES = 1i32; +pub const CBCB_DISABLED: CUEBANNERSTATES = 4i32; +pub const CBCB_HOT: CUEBANNERSTATES = 2i32; +pub const CBCB_NORMAL: CUEBANNERSTATES = 1i32; +pub const CBCB_PRESSED: CUEBANNERSTATES = 3i32; +pub const CBDI_HIGHLIGHTED: DROPDOWNITEMSTATES = 2i32; +pub const CBDI_NORMAL: DROPDOWNITEMSTATES = 1i32; +pub const CBEIF_DI_SETITEM: COMBOBOX_EX_ITEM_FLAGS = 268435456u32; +pub const CBEIF_IMAGE: COMBOBOX_EX_ITEM_FLAGS = 2u32; +pub const CBEIF_INDENT: COMBOBOX_EX_ITEM_FLAGS = 16u32; +pub const CBEIF_LPARAM: COMBOBOX_EX_ITEM_FLAGS = 32u32; +pub const CBEIF_OVERLAY: COMBOBOX_EX_ITEM_FLAGS = 8u32; +pub const CBEIF_SELECTEDIMAGE: COMBOBOX_EX_ITEM_FLAGS = 4u32; +pub const CBEIF_TEXT: COMBOBOX_EX_ITEM_FLAGS = 1u32; +pub const CBEMAXSTRLEN: u32 = 260u32; +pub const CBEM_GETCOMBOCONTROL: u32 = 1030u32; +pub const CBEM_GETEDITCONTROL: u32 = 1031u32; +pub const CBEM_GETEXSTYLE: u32 = 1033u32; +pub const CBEM_GETEXTENDEDSTYLE: u32 = 1033u32; +pub const CBEM_GETIMAGELIST: u32 = 1027u32; +pub const CBEM_GETITEM: u32 = 1037u32; +pub const CBEM_GETITEMA: u32 = 1028u32; +pub const CBEM_GETITEMW: u32 = 1037u32; +pub const CBEM_GETUNICODEFORMAT: u32 = 8198u32; +pub const CBEM_HASEDITCHANGED: u32 = 1034u32; +pub const CBEM_INSERTITEM: u32 = 1035u32; +pub const CBEM_INSERTITEMA: u32 = 1025u32; +pub const CBEM_INSERTITEMW: u32 = 1035u32; +pub const CBEM_SETEXSTYLE: u32 = 1032u32; +pub const CBEM_SETEXTENDEDSTYLE: u32 = 1038u32; +pub const CBEM_SETIMAGELIST: u32 = 1026u32; +pub const CBEM_SETITEM: u32 = 1036u32; +pub const CBEM_SETITEMA: u32 = 1029u32; +pub const CBEM_SETITEMW: u32 = 1036u32; +pub const CBEM_SETUNICODEFORMAT: u32 = 8197u32; +pub const CBEM_SETWINDOWTHEME: u32 = 8203u32; +pub const CBENF_DROPDOWN: u32 = 4u32; +pub const CBENF_ESCAPE: u32 = 3u32; +pub const CBENF_KILLFOCUS: u32 = 1u32; +pub const CBENF_RETURN: u32 = 2u32; +pub const CBEN_BEGINEDIT: u32 = 4294966492u32; +pub const CBEN_DELETEITEM: u32 = 4294966494u32; +pub const CBEN_DRAGBEGIN: u32 = 4294966487u32; +pub const CBEN_DRAGBEGINA: u32 = 4294966488u32; +pub const CBEN_DRAGBEGINW: u32 = 4294966487u32; +pub const CBEN_ENDEDIT: u32 = 4294966490u32; +pub const CBEN_ENDEDITA: u32 = 4294966491u32; +pub const CBEN_ENDEDITW: u32 = 4294966490u32; +pub const CBEN_FIRST: u32 = 4294966496u32; +pub const CBEN_GETDISPINFOA: u32 = 4294966496u32; +pub const CBEN_GETDISPINFOW: u32 = 4294966489u32; +pub const CBEN_INSERTITEM: u32 = 4294966495u32; +pub const CBEN_LAST: u32 = 4294966466u32; +pub const CBES_EX_CASESENSITIVE: u32 = 16u32; +pub const CBES_EX_NOEDITIMAGE: u32 = 1u32; +pub const CBES_EX_NOEDITIMAGEINDENT: u32 = 2u32; +pub const CBES_EX_NOSIZELIMIT: u32 = 8u32; +pub const CBES_EX_PATHWORDBREAKPROC: u32 = 4u32; +pub const CBES_EX_TEXTENDELLIPSIS: u32 = 32u32; +pub const CBM_FIRST: u32 = 5888u32; +pub const CBRO_DISABLED: READONLYSTATES = 4i32; +pub const CBRO_HOT: READONLYSTATES = 2i32; +pub const CBRO_NORMAL: READONLYSTATES = 1i32; +pub const CBRO_PRESSED: READONLYSTATES = 3i32; +pub const CBS_CHECKEDDISABLED: CHECKBOXSTATES = 8i32; +pub const CBS_CHECKEDHOT: CHECKBOXSTATES = 6i32; +pub const CBS_CHECKEDNORMAL: CHECKBOXSTATES = 5i32; +pub const CBS_CHECKEDPRESSED: CHECKBOXSTATES = 7i32; +pub const CBS_DISABLED: CLOSEBUTTONSTATES = 4i32; +pub const CBS_EXCLUDEDDISABLED: CHECKBOXSTATES = 20i32; +pub const CBS_EXCLUDEDHOT: CHECKBOXSTATES = 18i32; +pub const CBS_EXCLUDEDNORMAL: CHECKBOXSTATES = 17i32; +pub const CBS_EXCLUDEDPRESSED: CHECKBOXSTATES = 19i32; +pub const CBS_HOT: CLOSEBUTTONSTATES = 2i32; +pub const CBS_IMPLICITDISABLED: CHECKBOXSTATES = 16i32; +pub const CBS_IMPLICITHOT: CHECKBOXSTATES = 14i32; +pub const CBS_IMPLICITNORMAL: CHECKBOXSTATES = 13i32; +pub const CBS_IMPLICITPRESSED: CHECKBOXSTATES = 15i32; +pub const CBS_MIXEDDISABLED: CHECKBOXSTATES = 12i32; +pub const CBS_MIXEDHOT: CHECKBOXSTATES = 10i32; +pub const CBS_MIXEDNORMAL: CHECKBOXSTATES = 9i32; +pub const CBS_MIXEDPRESSED: CHECKBOXSTATES = 11i32; +pub const CBS_NORMAL: CLOSEBUTTONSTATES = 1i32; +pub const CBS_PUSHED: CLOSEBUTTONSTATES = 3i32; +pub const CBS_UNCHECKEDDISABLED: CHECKBOXSTATES = 4i32; +pub const CBS_UNCHECKEDHOT: CHECKBOXSTATES = 2i32; +pub const CBS_UNCHECKEDNORMAL: CHECKBOXSTATES = 1i32; +pub const CBS_UNCHECKEDPRESSED: CHECKBOXSTATES = 3i32; +pub const CBTBS_DISABLED: TRANSPARENTBACKGROUNDSTATES = 3i32; +pub const CBTBS_FOCUSED: TRANSPARENTBACKGROUNDSTATES = 4i32; +pub const CBTBS_HOT: TRANSPARENTBACKGROUNDSTATES = 2i32; +pub const CBTBS_NORMAL: TRANSPARENTBACKGROUNDSTATES = 1i32; +pub const CBXSL_DISABLED: DROPDOWNBUTTONLEFTSTATES = 4i32; +pub const CBXSL_HOT: DROPDOWNBUTTONLEFTSTATES = 2i32; +pub const CBXSL_NORMAL: DROPDOWNBUTTONLEFTSTATES = 1i32; +pub const CBXSL_PRESSED: DROPDOWNBUTTONLEFTSTATES = 3i32; +pub const CBXSR_DISABLED: DROPDOWNBUTTONRIGHTSTATES = 4i32; +pub const CBXSR_HOT: DROPDOWNBUTTONRIGHTSTATES = 2i32; +pub const CBXSR_NORMAL: DROPDOWNBUTTONRIGHTSTATES = 1i32; +pub const CBXSR_PRESSED: DROPDOWNBUTTONRIGHTSTATES = 3i32; +pub const CBXS_DISABLED: COMBOBOXSTYLESTATES = 4i32; +pub const CBXS_HOT: COMBOBOXSTYLESTATES = 2i32; +pub const CBXS_NORMAL: COMBOBOXSTYLESTATES = 1i32; +pub const CBXS_PRESSED: COMBOBOXSTYLESTATES = 3i32; +pub const CB_GETCUEBANNER: u32 = 5892u32; +pub const CB_GETMINVISIBLE: u32 = 5890u32; +pub const CB_SETCUEBANNER: u32 = 5891u32; +pub const CB_SETMINVISIBLE: u32 = 5889u32; +pub const CCF_NOTEXT: u32 = 1u32; +pub const CCHCCCLASS: u32 = 32u32; +pub const CCHCCDESC: u32 = 32u32; +pub const CCHCCTEXT: u32 = 256u32; +pub const CCM_DPISCALE: u32 = 8204u32; +pub const CCM_FIRST: u32 = 8192u32; +pub const CCM_GETCOLORSCHEME: u32 = 8195u32; +pub const CCM_GETDROPTARGET: u32 = 8196u32; +pub const CCM_GETUNICODEFORMAT: u32 = 8198u32; +pub const CCM_GETVERSION: u32 = 8200u32; +pub const CCM_LAST: u32 = 8704u32; +pub const CCM_SETBKCOLOR: u32 = 8193u32; +pub const CCM_SETCOLORSCHEME: u32 = 8194u32; +pub const CCM_SETNOTIFYWINDOW: u32 = 8201u32; +pub const CCM_SETUNICODEFORMAT: u32 = 8197u32; +pub const CCM_SETVERSION: u32 = 8199u32; +pub const CCM_SETWINDOWTHEME: u32 = 8203u32; +pub const CCS_ADJUSTABLE: i32 = 32i32; +pub const CCS_BOTTOM: i32 = 3i32; +pub const CCS_NODIVIDER: i32 = 64i32; +pub const CCS_NOMOVEY: i32 = 2i32; +pub const CCS_NOPARENTALIGN: i32 = 8i32; +pub const CCS_NORESIZE: i32 = 4i32; +pub const CCS_TOP: i32 = 1i32; +pub const CCS_VERT: i32 = 128i32; +pub const CDDS_ITEM: u32 = 65536u32; +pub const CDDS_ITEMPOSTERASE: NMCUSTOMDRAW_DRAW_STAGE = 65540u32; +pub const CDDS_ITEMPOSTPAINT: NMCUSTOMDRAW_DRAW_STAGE = 65538u32; +pub const CDDS_ITEMPREERASE: NMCUSTOMDRAW_DRAW_STAGE = 65539u32; +pub const CDDS_ITEMPREPAINT: NMCUSTOMDRAW_DRAW_STAGE = 65537u32; +pub const CDDS_POSTERASE: u32 = 4u32; +pub const CDDS_POSTPAINT: NMCUSTOMDRAW_DRAW_STAGE = 2u32; +pub const CDDS_PREERASE: NMCUSTOMDRAW_DRAW_STAGE = 3u32; +pub const CDDS_PREPAINT: NMCUSTOMDRAW_DRAW_STAGE = 1u32; +pub const CDDS_SUBITEM: NMCUSTOMDRAW_DRAW_STAGE = 131072u32; +pub const CDIS_CHECKED: NMCUSTOMDRAW_DRAW_STATE_FLAGS = 8u32; +pub const CDIS_DEFAULT: NMCUSTOMDRAW_DRAW_STATE_FLAGS = 32u32; +pub const CDIS_DISABLED: NMCUSTOMDRAW_DRAW_STATE_FLAGS = 4u32; +pub const CDIS_DROPHILITED: NMCUSTOMDRAW_DRAW_STATE_FLAGS = 4096u32; +pub const CDIS_FOCUS: NMCUSTOMDRAW_DRAW_STATE_FLAGS = 16u32; +pub const CDIS_GRAYED: NMCUSTOMDRAW_DRAW_STATE_FLAGS = 2u32; +pub const CDIS_HOT: NMCUSTOMDRAW_DRAW_STATE_FLAGS = 64u32; +pub const CDIS_INDETERMINATE: NMCUSTOMDRAW_DRAW_STATE_FLAGS = 256u32; +pub const CDIS_MARKED: NMCUSTOMDRAW_DRAW_STATE_FLAGS = 128u32; +pub const CDIS_NEARHOT: NMCUSTOMDRAW_DRAW_STATE_FLAGS = 1024u32; +pub const CDIS_OTHERSIDEHOT: NMCUSTOMDRAW_DRAW_STATE_FLAGS = 2048u32; +pub const CDIS_SELECTED: NMCUSTOMDRAW_DRAW_STATE_FLAGS = 1u32; +pub const CDIS_SHOWKEYBOARDCUES: NMCUSTOMDRAW_DRAW_STATE_FLAGS = 512u32; +pub const CDN_FIRST: u32 = 4294966695u32; +pub const CDN_LAST: u32 = 4294966597u32; +pub const CDRF_DODEFAULT: u32 = 0u32; +pub const CDRF_DOERASE: u32 = 8u32; +pub const CDRF_NEWFONT: u32 = 2u32; +pub const CDRF_NOTIFYITEMDRAW: u32 = 32u32; +pub const CDRF_NOTIFYPOSTERASE: u32 = 64u32; +pub const CDRF_NOTIFYPOSTPAINT: u32 = 16u32; +pub const CDRF_NOTIFYSUBITEMDRAW: u32 = 32u32; +pub const CDRF_SKIPDEFAULT: u32 = 4u32; +pub const CDRF_SKIPPOSTPAINT: u32 = 256u32; +pub const CHEVSV_HOT: CHEVRONVERTSTATES = 2i32; +pub const CHEVSV_NORMAL: CHEVRONVERTSTATES = 1i32; +pub const CHEVSV_PRESSED: CHEVRONVERTSTATES = 3i32; +pub const CHEVS_HOT: CHEVRONSTATES = 2i32; +pub const CHEVS_NORMAL: CHEVRONSTATES = 1i32; +pub const CHEVS_PRESSED: CHEVRONSTATES = 3i32; +pub const CLP_TIME: CLOCKPARTS = 1i32; +pub const CLR_DEFAULT: i32 = -16777216i32; +pub const CLR_HILIGHT: i32 = -16777216i32; +pub const CLR_NONE: i32 = -1i32; +pub const CLS_HOT: CLOCKSTATES = 2i32; +pub const CLS_NORMAL: CLOCKSTATES = 1i32; +pub const CLS_PRESSED: CLOCKSTATES = 3i32; +pub const CMB_MASKED: u32 = 2u32; +pub const CMDLGS_DEFAULTED: COMMANDLINKGLYPHSTATES = 5i32; +pub const CMDLGS_DISABLED: COMMANDLINKGLYPHSTATES = 4i32; +pub const CMDLGS_HOT: COMMANDLINKGLYPHSTATES = 2i32; +pub const CMDLGS_NORMAL: COMMANDLINKGLYPHSTATES = 1i32; +pub const CMDLGS_PRESSED: COMMANDLINKGLYPHSTATES = 3i32; +pub const CMDLS_DEFAULTED: COMMANDLINKSTATES = 5i32; +pub const CMDLS_DEFAULTED_ANIMATING: COMMANDLINKSTATES = 6i32; +pub const CMDLS_DISABLED: COMMANDLINKSTATES = 4i32; +pub const CMDLS_HOT: COMMANDLINKSTATES = 2i32; +pub const CMDLS_NORMAL: COMMANDLINKSTATES = 1i32; +pub const CMDLS_PRESSED: COMMANDLINKSTATES = 3i32; +pub const COLORMGMTDLGORD: u32 = 1551u32; +pub const COMCTL32_VERSION: u32 = 6u32; +pub const CPANEL_BANNERAREA: CONTROLPANELPARTS = 18i32; +pub const CPANEL_BODYTEXT: CONTROLPANELPARTS = 6i32; +pub const CPANEL_BODYTITLE: CONTROLPANELPARTS = 19i32; +pub const CPANEL_BUTTON: CONTROLPANELPARTS = 14i32; +pub const CPANEL_CONTENTLINK: CONTROLPANELPARTS = 10i32; +pub const CPANEL_CONTENTPANE: CONTROLPANELPARTS = 2i32; +pub const CPANEL_CONTENTPANELABEL: CONTROLPANELPARTS = 4i32; +pub const CPANEL_CONTENTPANELINE: CONTROLPANELPARTS = 17i32; +pub const CPANEL_GROUPTEXT: CONTROLPANELPARTS = 9i32; +pub const CPANEL_HELPLINK: CONTROLPANELPARTS = 7i32; +pub const CPANEL_LARGECOMMANDAREA: CONTROLPANELPARTS = 12i32; +pub const CPANEL_MESSAGETEXT: CONTROLPANELPARTS = 15i32; +pub const CPANEL_NAVIGATIONPANE: CONTROLPANELPARTS = 1i32; +pub const CPANEL_NAVIGATIONPANELABEL: CONTROLPANELPARTS = 3i32; +pub const CPANEL_NAVIGATIONPANELINE: CONTROLPANELPARTS = 16i32; +pub const CPANEL_SECTIONTITLELINK: CONTROLPANELPARTS = 11i32; +pub const CPANEL_SMALLCOMMANDAREA: CONTROLPANELPARTS = 13i32; +pub const CPANEL_TASKLINK: CONTROLPANELPARTS = 8i32; +pub const CPANEL_TITLE: CONTROLPANELPARTS = 5i32; +pub const CPCL_DISABLED: CONTENTLINKSTATES = 4i32; +pub const CPCL_HOT: CONTENTLINKSTATES = 2i32; +pub const CPCL_NORMAL: CONTENTLINKSTATES = 1i32; +pub const CPCL_PRESSED: CONTENTLINKSTATES = 3i32; +pub const CPHL_DISABLED: HELPLINKSTATES = 4i32; +pub const CPHL_HOT: HELPLINKSTATES = 2i32; +pub const CPHL_NORMAL: HELPLINKSTATES = 1i32; +pub const CPHL_PRESSED: HELPLINKSTATES = 3i32; +pub const CPSTL_HOT: SECTIONTITLELINKSTATES = 2i32; +pub const CPSTL_NORMAL: SECTIONTITLELINKSTATES = 1i32; +pub const CPTL_DISABLED: TASKLINKSTATES = 4i32; +pub const CPTL_HOT: TASKLINKSTATES = 2i32; +pub const CPTL_NORMAL: TASKLINKSTATES = 1i32; +pub const CPTL_PAGE: TASKLINKSTATES = 5i32; +pub const CPTL_PRESSED: TASKLINKSTATES = 3i32; +pub const CP_BACKGROUND: COMBOBOXPARTS = 2i32; +pub const CP_BORDER: COMBOBOXPARTS = 4i32; +pub const CP_CUEBANNER: COMBOBOXPARTS = 8i32; +pub const CP_DROPDOWNBUTTON: COMBOBOXPARTS = 1i32; +pub const CP_DROPDOWNBUTTONLEFT: COMBOBOXPARTS = 7i32; +pub const CP_DROPDOWNBUTTONRIGHT: COMBOBOXPARTS = 6i32; +pub const CP_DROPDOWNITEM: COMBOBOXPARTS = 9i32; +pub const CP_READONLY: COMBOBOXPARTS = 5i32; +pub const CP_TRANSPARENTBACKGROUND: COMBOBOXPARTS = 3i32; +pub const CSST_TAB: COMMUNICATIONSPARTS = 1i32; +pub const CSTB_HOT: TABSTATES = 2i32; +pub const CSTB_NORMAL: TABSTATES = 1i32; +pub const CSTB_SELECTED: TABSTATES = 3i32; +pub const CS_ACTIVE: CAPTIONSTATES = 1i32; +pub const CS_DISABLED: CAPTIONSTATES = 3i32; +pub const CS_INACTIVE: CAPTIONSTATES = 2i32; +pub const DATETIMEPICK_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysDateTimePick32"); +pub const DATETIMEPICK_CLASSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SysDateTimePick32"); +pub const DATETIMEPICK_CLASSW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysDateTimePick32"); +pub const DA_ERR: i32 = -1i32; +pub const DA_LAST: u32 = 2147483647u32; +pub const DDCOPY_HIGHLIGHT: COPYSTATES = 1i32; +pub const DDCOPY_NOHIGHLIGHT: COPYSTATES = 2i32; +pub const DDCREATELINK_HIGHLIGHT: CREATELINKSTATES = 1i32; +pub const DDCREATELINK_NOHIGHLIGHT: CREATELINKSTATES = 2i32; +pub const DDL_ARCHIVE: DLG_DIR_LIST_FILE_TYPE = 32u32; +pub const DDL_DIRECTORY: DLG_DIR_LIST_FILE_TYPE = 16u32; +pub const DDL_DRIVES: DLG_DIR_LIST_FILE_TYPE = 16384u32; +pub const DDL_EXCLUSIVE: DLG_DIR_LIST_FILE_TYPE = 32768u32; +pub const DDL_HIDDEN: DLG_DIR_LIST_FILE_TYPE = 2u32; +pub const DDL_POSTMSGS: DLG_DIR_LIST_FILE_TYPE = 8192u32; +pub const DDL_READONLY: DLG_DIR_LIST_FILE_TYPE = 1u32; +pub const DDL_READWRITE: DLG_DIR_LIST_FILE_TYPE = 0u32; +pub const DDL_SYSTEM: DLG_DIR_LIST_FILE_TYPE = 4u32; +pub const DDMOVE_HIGHLIGHT: MOVESTATES = 1i32; +pub const DDMOVE_NOHIGHLIGHT: MOVESTATES = 2i32; +pub const DDNONE_HIGHLIGHT: NONESTATES = 1i32; +pub const DDNONE_NOHIGHLIGHT: NONESTATES = 2i32; +pub const DDUPDATEMETADATA_HIGHLIGHT: UPDATEMETADATASTATES = 1i32; +pub const DDUPDATEMETADATA_NOHIGHLIGHT: UPDATEMETADATASTATES = 2i32; +pub const DDWARNING_HIGHLIGHT: WARNINGSTATES = 1i32; +pub const DDWARNING_NOHIGHLIGHT: WARNINGSTATES = 2i32; +pub const DD_COPY: DRAGDROPPARTS = 1i32; +pub const DD_CREATELINK: DRAGDROPPARTS = 4i32; +pub const DD_IMAGEBG: DRAGDROPPARTS = 7i32; +pub const DD_MOVE: DRAGDROPPARTS = 2i32; +pub const DD_NONE: DRAGDROPPARTS = 6i32; +pub const DD_TEXTBG: DRAGDROPPARTS = 8i32; +pub const DD_UPDATEMETADATA: DRAGDROPPARTS = 3i32; +pub const DD_WARNING: DRAGDROPPARTS = 5i32; +pub const DL_BEGINDRAG: DRAGLISTINFO_NOTIFICATION_FLAGS = 1157u32; +pub const DL_CANCELDRAG: DRAGLISTINFO_NOTIFICATION_FLAGS = 1160u32; +pub const DL_COPYCURSOR: u32 = 2u32; +pub const DL_CURSORSET: u32 = 0u32; +pub const DL_DRAGGING: DRAGLISTINFO_NOTIFICATION_FLAGS = 1158u32; +pub const DL_DROPPED: DRAGLISTINFO_NOTIFICATION_FLAGS = 1159u32; +pub const DL_MOVECURSOR: u32 = 3u32; +pub const DL_STOPCURSOR: u32 = 1u32; +pub const DNHZS_DISABLED: DOWNHORZSTATES = 4i32; +pub const DNHZS_HOT: DOWNHORZSTATES = 2i32; +pub const DNHZS_NORMAL: DOWNHORZSTATES = 1i32; +pub const DNHZS_PRESSED: DOWNHORZSTATES = 3i32; +pub const DNS_DISABLED: DOWNSTATES = 4i32; +pub const DNS_HOT: DOWNSTATES = 2i32; +pub const DNS_NORMAL: DOWNSTATES = 1i32; +pub const DNS_PRESSED: DOWNSTATES = 3i32; +pub const DPAMM_DELETE: DPAMM_MESSAGE = 2u32; +pub const DPAMM_INSERT: DPAMM_MESSAGE = 3u32; +pub const DPAMM_MERGE: DPAMM_MESSAGE = 1u32; +pub const DPAM_INTERSECT: u32 = 8u32; +pub const DPAM_NORMAL: u32 = 2u32; +pub const DPAM_SORTED: u32 = 1u32; +pub const DPAM_UNION: u32 = 4u32; +pub const DPAS_INSERTAFTER: u32 = 4u32; +pub const DPAS_INSERTBEFORE: u32 = 2u32; +pub const DPAS_SORTED: u32 = 1u32; +pub const DPA_APPEND: u32 = 2147483647u32; +pub const DPA_ERR: i32 = -1i32; +pub const DPDB_DISABLED: DATEBORDERSTATES = 4i32; +pub const DPDB_FOCUSED: DATEBORDERSTATES = 3i32; +pub const DPDB_HOT: DATEBORDERSTATES = 2i32; +pub const DPDB_NORMAL: DATEBORDERSTATES = 1i32; +pub const DPDT_DISABLED: DATETEXTSTATES = 2i32; +pub const DPDT_NORMAL: DATETEXTSTATES = 1i32; +pub const DPDT_SELECTED: DATETEXTSTATES = 3i32; +pub const DPSCBR_DISABLED: SHOWCALENDARBUTTONRIGHTSTATES = 4i32; +pub const DPSCBR_HOT: SHOWCALENDARBUTTONRIGHTSTATES = 2i32; +pub const DPSCBR_NORMAL: SHOWCALENDARBUTTONRIGHTSTATES = 1i32; +pub const DPSCBR_PRESSED: SHOWCALENDARBUTTONRIGHTSTATES = 3i32; +pub const DP_DATEBORDER: DATEPICKERPARTS = 2i32; +pub const DP_DATETEXT: DATEPICKERPARTS = 1i32; +pub const DP_SHOWCALENDARBUTTONRIGHT: DATEPICKERPARTS = 3i32; +pub const DRAGLISTMSGSTRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("commctrl_DragListMsg"); +pub const DSA_APPEND: u32 = 2147483647u32; +pub const DSA_ERR: i32 = -1i32; +pub const DTBG_CLIPRECT: u32 = 1u32; +pub const DTBG_COMPUTINGREGION: u32 = 16u32; +pub const DTBG_DRAWSOLID: u32 = 2u32; +pub const DTBG_MIRRORDC: u32 = 32u32; +pub const DTBG_NOMIRROR: u32 = 64u32; +pub const DTBG_OMITBORDER: u32 = 4u32; +pub const DTBG_OMITCONTENT: u32 = 8u32; +pub const DTM_CLOSEMONTHCAL: u32 = 4109u32; +pub const DTM_FIRST: u32 = 4096u32; +pub const DTM_GETDATETIMEPICKERINFO: u32 = 4110u32; +pub const DTM_GETIDEALSIZE: u32 = 4111u32; +pub const DTM_GETMCCOLOR: u32 = 4103u32; +pub const DTM_GETMCFONT: u32 = 4106u32; +pub const DTM_GETMCSTYLE: u32 = 4108u32; +pub const DTM_GETMONTHCAL: u32 = 4104u32; +pub const DTM_GETRANGE: u32 = 4099u32; +pub const DTM_GETSYSTEMTIME: u32 = 4097u32; +pub const DTM_SETFORMAT: u32 = 4146u32; +pub const DTM_SETFORMATA: u32 = 4101u32; +pub const DTM_SETFORMATW: u32 = 4146u32; +pub const DTM_SETMCCOLOR: u32 = 4102u32; +pub const DTM_SETMCFONT: u32 = 4105u32; +pub const DTM_SETMCSTYLE: u32 = 4107u32; +pub const DTM_SETRANGE: u32 = 4100u32; +pub const DTM_SETSYSTEMTIME: u32 = 4098u32; +pub const DTN_CLOSEUP: u32 = 4294966543u32; +pub const DTN_DATETIMECHANGE: u32 = 4294966537u32; +pub const DTN_DROPDOWN: u32 = 4294966542u32; +pub const DTN_FIRST: u32 = 4294966556u32; +pub const DTN_FIRST2: u32 = 4294966543u32; +pub const DTN_FORMAT: u32 = 4294966553u32; +pub const DTN_FORMATA: u32 = 4294966540u32; +pub const DTN_FORMATQUERY: u32 = 4294966554u32; +pub const DTN_FORMATQUERYA: u32 = 4294966541u32; +pub const DTN_FORMATQUERYW: u32 = 4294966554u32; +pub const DTN_FORMATW: u32 = 4294966553u32; +pub const DTN_LAST: u32 = 4294966551u32; +pub const DTN_LAST2: u32 = 4294966497u32; +pub const DTN_USERSTRING: u32 = 4294966551u32; +pub const DTN_USERSTRINGA: u32 = 4294966538u32; +pub const DTN_USERSTRINGW: u32 = 4294966551u32; +pub const DTN_WMKEYDOWN: u32 = 4294966552u32; +pub const DTN_WMKEYDOWNA: u32 = 4294966539u32; +pub const DTN_WMKEYDOWNW: u32 = 4294966552u32; +pub const DTPB_USECTLCOLORSTATIC: DRAW_THEME_PARENT_BACKGROUND_FLAGS = 2u32; +pub const DTPB_USEERASEBKGND: DRAW_THEME_PARENT_BACKGROUND_FLAGS = 4u32; +pub const DTPB_WINDOWDC: DRAW_THEME_PARENT_BACKGROUND_FLAGS = 1u32; +pub const DTS_APPCANPARSE: u32 = 16u32; +pub const DTS_LONGDATEFORMAT: u32 = 4u32; +pub const DTS_RIGHTALIGN: u32 = 32u32; +pub const DTS_SHORTDATECENTURYFORMAT: u32 = 12u32; +pub const DTS_SHORTDATEFORMAT: u32 = 0u32; +pub const DTS_SHOWNONE: u32 = 2u32; +pub const DTS_TIMEFORMAT: u32 = 9u32; +pub const DTS_UPDOWN: u32 = 1u32; +pub const DTT_APPLYOVERLAY: DTTOPTS_FLAGS = 1024u32; +pub const DTT_BORDERCOLOR: DTTOPTS_FLAGS = 2u32; +pub const DTT_BORDERSIZE: DTTOPTS_FLAGS = 32u32; +pub const DTT_CALCRECT: DTTOPTS_FLAGS = 512u32; +pub const DTT_CALLBACK: DTTOPTS_FLAGS = 4096u32; +pub const DTT_COLORPROP: DTTOPTS_FLAGS = 128u32; +pub const DTT_COMPOSITED: DTTOPTS_FLAGS = 8192u32; +pub const DTT_FLAGS2VALIDBITS: u32 = 1u32; +pub const DTT_FONTPROP: DTTOPTS_FLAGS = 64u32; +pub const DTT_GLOWSIZE: DTTOPTS_FLAGS = 2048u32; +pub const DTT_GRAYED: u32 = 1u32; +pub const DTT_SHADOWCOLOR: DTTOPTS_FLAGS = 4u32; +pub const DTT_SHADOWOFFSET: DTTOPTS_FLAGS = 16u32; +pub const DTT_SHADOWTYPE: DTTOPTS_FLAGS = 8u32; +pub const DTT_STATEID: DTTOPTS_FLAGS = 256u32; +pub const DTT_TEXTCOLOR: DTTOPTS_FLAGS = 1u32; +pub const DTT_VALIDBITS: DTTOPTS_FLAGS = 12287u32; +pub const EBHC_HOT: HEADERCLOSESTATES = 2i32; +pub const EBHC_NORMAL: HEADERCLOSESTATES = 1i32; +pub const EBHC_PRESSED: HEADERCLOSESTATES = 3i32; +pub const EBHP_HOT: HEADERPINSTATES = 2i32; +pub const EBHP_NORMAL: HEADERPINSTATES = 1i32; +pub const EBHP_PRESSED: HEADERPINSTATES = 3i32; +pub const EBHP_SELECTEDHOT: HEADERPINSTATES = 5i32; +pub const EBHP_SELECTEDNORMAL: HEADERPINSTATES = 4i32; +pub const EBHP_SELECTEDPRESSED: HEADERPINSTATES = 6i32; +pub const EBM_HOT: IEBARMENUSTATES = 2i32; +pub const EBM_NORMAL: IEBARMENUSTATES = 1i32; +pub const EBM_PRESSED: IEBARMENUSTATES = 3i32; +pub const EBNGC_HOT: NORMALGROUPCOLLAPSESTATES = 2i32; +pub const EBNGC_NORMAL: NORMALGROUPCOLLAPSESTATES = 1i32; +pub const EBNGC_PRESSED: NORMALGROUPCOLLAPSESTATES = 3i32; +pub const EBNGE_HOT: NORMALGROUPEXPANDSTATES = 2i32; +pub const EBNGE_NORMAL: NORMALGROUPEXPANDSTATES = 1i32; +pub const EBNGE_PRESSED: NORMALGROUPEXPANDSTATES = 3i32; +pub const EBP_HEADERBACKGROUND: EXPLORERBARPARTS = 1i32; +pub const EBP_HEADERCLOSE: EXPLORERBARPARTS = 2i32; +pub const EBP_HEADERPIN: EXPLORERBARPARTS = 3i32; +pub const EBP_IEBARMENU: EXPLORERBARPARTS = 4i32; +pub const EBP_NORMALGROUPBACKGROUND: EXPLORERBARPARTS = 5i32; +pub const EBP_NORMALGROUPCOLLAPSE: EXPLORERBARPARTS = 6i32; +pub const EBP_NORMALGROUPEXPAND: EXPLORERBARPARTS = 7i32; +pub const EBP_NORMALGROUPHEAD: EXPLORERBARPARTS = 8i32; +pub const EBP_SPECIALGROUPBACKGROUND: EXPLORERBARPARTS = 9i32; +pub const EBP_SPECIALGROUPCOLLAPSE: EXPLORERBARPARTS = 10i32; +pub const EBP_SPECIALGROUPEXPAND: EXPLORERBARPARTS = 11i32; +pub const EBP_SPECIALGROUPHEAD: EXPLORERBARPARTS = 12i32; +pub const EBSGC_HOT: SPECIALGROUPCOLLAPSESTATES = 2i32; +pub const EBSGC_NORMAL: SPECIALGROUPCOLLAPSESTATES = 1i32; +pub const EBSGC_PRESSED: SPECIALGROUPCOLLAPSESTATES = 3i32; +pub const EBSGE_HOT: SPECIALGROUPEXPANDSTATES = 2i32; +pub const EBSGE_NORMAL: SPECIALGROUPEXPANDSTATES = 1i32; +pub const EBSGE_PRESSED: SPECIALGROUPEXPANDSTATES = 3i32; +pub const EBS_ASSIST: BACKGROUNDSTATES = 6i32; +pub const EBS_DISABLED: BACKGROUNDSTATES = 3i32; +pub const EBS_FOCUSED: BACKGROUNDSTATES = 4i32; +pub const EBS_HOT: BACKGROUNDSTATES = 2i32; +pub const EBS_NORMAL: BACKGROUNDSTATES = 1i32; +pub const EBS_READONLY: BACKGROUNDSTATES = 5i32; +pub const EBWBS_DISABLED: BACKGROUNDWITHBORDERSTATES = 3i32; +pub const EBWBS_FOCUSED: BACKGROUNDWITHBORDERSTATES = 4i32; +pub const EBWBS_HOT: BACKGROUNDWITHBORDERSTATES = 2i32; +pub const EBWBS_NORMAL: BACKGROUNDWITHBORDERSTATES = 1i32; +pub const ECM_FIRST: u32 = 5376u32; +pub const EC_ENDOFLINE_CR: EC_ENDOFLINE = 2i32; +pub const EC_ENDOFLINE_CRLF: EC_ENDOFLINE = 1i32; +pub const EC_ENDOFLINE_DETECTFROMCONTENT: EC_ENDOFLINE = 0i32; +pub const EC_ENDOFLINE_LF: EC_ENDOFLINE = 3i32; +pub const EC_SEARCHWEB_ENTRYPOINT_CONTEXTMENU: EC_SEARCHWEB_ENTRYPOINT = 1i32; +pub const EC_SEARCHWEB_ENTRYPOINT_EXTERNAL: EC_SEARCHWEB_ENTRYPOINT = 0i32; +pub const EMF_CENTERED: NMLVEMPTYMARKUP_FLAGS = 1u32; +pub const EMP_MARKUPTEXT: EMPTYMARKUPPARTS = 1i32; +pub const EMT_LINKTEXT: MARKUPTEXTSTATES = 2i32; +pub const EMT_NORMALTEXT: MARKUPTEXTSTATES = 1i32; +pub const EM_CANUNDO: u32 = 198u32; +pub const EM_CHARFROMPOS: u32 = 215u32; +pub const EM_EMPTYUNDOBUFFER: u32 = 205u32; +pub const EM_ENABLEFEATURE: u32 = 218u32; +pub const EM_ENABLESEARCHWEB: u32 = 5390u32; +pub const EM_FILELINEFROMCHAR: u32 = 5395u32; +pub const EM_FILELINEINDEX: u32 = 5396u32; +pub const EM_FILELINELENGTH: u32 = 5397u32; +pub const EM_FMTLINES: u32 = 200u32; +pub const EM_GETCARETINDEX: u32 = 5394u32; +pub const EM_GETCUEBANNER: u32 = 5378u32; +pub const EM_GETENDOFLINE: u32 = 5389u32; +pub const EM_GETEXTENDEDSTYLE: u32 = 5387u32; +pub const EM_GETFILELINE: u32 = 5398u32; +pub const EM_GETFILELINECOUNT: u32 = 5399u32; +pub const EM_GETFIRSTVISIBLELINE: u32 = 206u32; +pub const EM_GETHANDLE: u32 = 189u32; +pub const EM_GETHILITE: u32 = 5382u32; +pub const EM_GETIMESTATUS: u32 = 217u32; +pub const EM_GETLIMITTEXT: u32 = 213u32; +pub const EM_GETLINE: u32 = 196u32; +pub const EM_GETLINECOUNT: u32 = 186u32; +pub const EM_GETMARGINS: u32 = 212u32; +pub const EM_GETMODIFY: u32 = 184u32; +pub const EM_GETPASSWORDCHAR: u32 = 210u32; +pub const EM_GETRECT: u32 = 178u32; +pub const EM_GETSEL: u32 = 176u32; +pub const EM_GETTHUMB: u32 = 190u32; +pub const EM_GETWORDBREAKPROC: u32 = 209u32; +pub const EM_HIDEBALLOONTIP: u32 = 5380u32; +pub const EM_LIMITTEXT: u32 = 197u32; +pub const EM_LINEFROMCHAR: u32 = 201u32; +pub const EM_LINEINDEX: u32 = 187u32; +pub const EM_LINELENGTH: u32 = 193u32; +pub const EM_LINESCROLL: u32 = 182u32; +pub const EM_NOSETFOCUS: u32 = 5383u32; +pub const EM_POSFROMCHAR: u32 = 214u32; +pub const EM_REPLACESEL: u32 = 194u32; +pub const EM_SCROLL: u32 = 181u32; +pub const EM_SCROLLCARET: u32 = 183u32; +pub const EM_SEARCHWEB: u32 = 5391u32; +pub const EM_SETCARETINDEX: u32 = 5393u32; +pub const EM_SETCUEBANNER: u32 = 5377u32; +pub const EM_SETENDOFLINE: u32 = 5388u32; +pub const EM_SETEXTENDEDSTYLE: u32 = 5386u32; +pub const EM_SETHANDLE: u32 = 188u32; +pub const EM_SETHILITE: u32 = 5381u32; +pub const EM_SETIMESTATUS: u32 = 216u32; +pub const EM_SETLIMITTEXT: u32 = 197u32; +pub const EM_SETMARGINS: u32 = 211u32; +pub const EM_SETMODIFY: u32 = 185u32; +pub const EM_SETPASSWORDCHAR: u32 = 204u32; +pub const EM_SETREADONLY: u32 = 207u32; +pub const EM_SETRECT: u32 = 179u32; +pub const EM_SETRECTNP: u32 = 180u32; +pub const EM_SETSEL: u32 = 177u32; +pub const EM_SETTABSTOPS: u32 = 203u32; +pub const EM_SETWORDBREAKPROC: u32 = 208u32; +pub const EM_SHOWBALLOONTIP: u32 = 5379u32; +pub const EM_TAKEFOCUS: u32 = 5384u32; +pub const EM_UNDO: u32 = 199u32; +pub const EN_FIRST: u32 = 4294965776u32; +pub const EN_LAST: u32 = 4294965756u32; +pub const EN_SEARCHWEB: u32 = 4294965776u32; +pub const EPSHV_DISABLED: EDITBORDER_HVSCROLLSTATES = 4i32; +pub const EPSHV_FOCUSED: EDITBORDER_HVSCROLLSTATES = 3i32; +pub const EPSHV_HOT: EDITBORDER_HVSCROLLSTATES = 2i32; +pub const EPSHV_NORMAL: EDITBORDER_HVSCROLLSTATES = 1i32; +pub const EPSH_DISABLED: EDITBORDER_HSCROLLSTATES = 4i32; +pub const EPSH_FOCUSED: EDITBORDER_HSCROLLSTATES = 3i32; +pub const EPSH_HOT: EDITBORDER_HSCROLLSTATES = 2i32; +pub const EPSH_NORMAL: EDITBORDER_HSCROLLSTATES = 1i32; +pub const EPSN_DISABLED: EDITBORDER_NOSCROLLSTATES = 4i32; +pub const EPSN_FOCUSED: EDITBORDER_NOSCROLLSTATES = 3i32; +pub const EPSN_HOT: EDITBORDER_NOSCROLLSTATES = 2i32; +pub const EPSN_NORMAL: EDITBORDER_NOSCROLLSTATES = 1i32; +pub const EPSV_DISABLED: EDITBORDER_VSCROLLSTATES = 4i32; +pub const EPSV_FOCUSED: EDITBORDER_VSCROLLSTATES = 3i32; +pub const EPSV_HOT: EDITBORDER_VSCROLLSTATES = 2i32; +pub const EPSV_NORMAL: EDITBORDER_VSCROLLSTATES = 1i32; +pub const EP_BACKGROUND: EDITPARTS = 3i32; +pub const EP_BACKGROUNDWITHBORDER: EDITPARTS = 5i32; +pub const EP_CARET: EDITPARTS = 2i32; +pub const EP_EDITBORDER_HSCROLL: EDITPARTS = 7i32; +pub const EP_EDITBORDER_HVSCROLL: EDITPARTS = 9i32; +pub const EP_EDITBORDER_NOSCROLL: EDITPARTS = 6i32; +pub const EP_EDITBORDER_VSCROLL: EDITPARTS = 8i32; +pub const EP_EDITTEXT: EDITPARTS = 1i32; +pub const EP_PASSWORD: EDITPARTS = 4i32; +pub const ESB_DISABLE_BOTH: ENABLE_SCROLL_BAR_ARROWS = 3u32; +pub const ESB_DISABLE_DOWN: ENABLE_SCROLL_BAR_ARROWS = 2u32; +pub const ESB_DISABLE_LEFT: ENABLE_SCROLL_BAR_ARROWS = 1u32; +pub const ESB_DISABLE_LTUP: ENABLE_SCROLL_BAR_ARROWS = 1u32; +pub const ESB_DISABLE_RIGHT: ENABLE_SCROLL_BAR_ARROWS = 2u32; +pub const ESB_DISABLE_RTDN: ENABLE_SCROLL_BAR_ARROWS = 2u32; +pub const ESB_DISABLE_UP: ENABLE_SCROLL_BAR_ARROWS = 1u32; +pub const ESB_ENABLE_BOTH: ENABLE_SCROLL_BAR_ARROWS = 0u32; +pub const ES_EX_ALLOWEOL_CR: i32 = 1i32; +pub const ES_EX_ALLOWEOL_LF: i32 = 2i32; +pub const ES_EX_CONVERT_EOL_ON_PASTE: i32 = 4i32; +pub const ES_EX_ZOOMABLE: i32 = 16i32; +pub const ETDT_DISABLE: u32 = 1u32; +pub const ETDT_ENABLE: u32 = 2u32; +pub const ETDT_USEAEROWIZARDTABTEXTURE: u32 = 8u32; +pub const ETDT_USETABTEXTURE: u32 = 4u32; +pub const ETS_ASSIST: EDITTEXTSTATES = 7i32; +pub const ETS_CUEBANNER: EDITTEXTSTATES = 8i32; +pub const ETS_DISABLED: EDITTEXTSTATES = 4i32; +pub const ETS_FOCUSED: EDITTEXTSTATES = 5i32; +pub const ETS_HOT: EDITTEXTSTATES = 2i32; +pub const ETS_NORMAL: EDITTEXTSTATES = 1i32; +pub const ETS_READONLY: EDITTEXTSTATES = 6i32; +pub const ETS_SELECTED: EDITTEXTSTATES = 3i32; +pub const FBS_EMPHASIZED: BODYSTATES = 2i32; +pub const FBS_NORMAL: BODYSTATES = 1i32; +pub const FEEDBACK_GESTURE_PRESSANDTAP: FEEDBACK_TYPE = 11i32; +pub const FEEDBACK_MAX: FEEDBACK_TYPE = -1i32; +pub const FEEDBACK_PEN_BARRELVISUALIZATION: FEEDBACK_TYPE = 2i32; +pub const FEEDBACK_PEN_DOUBLETAP: FEEDBACK_TYPE = 4i32; +pub const FEEDBACK_PEN_PRESSANDHOLD: FEEDBACK_TYPE = 5i32; +pub const FEEDBACK_PEN_RIGHTTAP: FEEDBACK_TYPE = 6i32; +pub const FEEDBACK_PEN_TAP: FEEDBACK_TYPE = 3i32; +pub const FEEDBACK_TOUCH_CONTACTVISUALIZATION: FEEDBACK_TYPE = 1i32; +pub const FEEDBACK_TOUCH_DOUBLETAP: FEEDBACK_TYPE = 8i32; +pub const FEEDBACK_TOUCH_PRESSANDHOLD: FEEDBACK_TYPE = 9i32; +pub const FEEDBACK_TOUCH_RIGHTTAP: FEEDBACK_TYPE = 10i32; +pub const FEEDBACK_TOUCH_TAP: FEEDBACK_TYPE = 7i32; +pub const FILEOPENORD: u32 = 1536u32; +pub const FINDDLGORD: u32 = 1540u32; +pub const FLH_HOVER: LINKHEADERSTATES = 2i32; +pub const FLH_NORMAL: LINKHEADERSTATES = 1i32; +pub const FLS_DISABLED: LABELSTATES = 4i32; +pub const FLS_EMPHASIZED: LABELSTATES = 3i32; +pub const FLS_NORMAL: LABELSTATES = 1i32; +pub const FLS_SELECTED: LABELSTATES = 2i32; +pub const FLYOUTLINK_HOVER: LINKSTATES = 2i32; +pub const FLYOUTLINK_NORMAL: LINKSTATES = 1i32; +pub const FLYOUT_BODY: FLYOUTPARTS = 2i32; +pub const FLYOUT_DIVIDER: FLYOUTPARTS = 5i32; +pub const FLYOUT_HEADER: FLYOUTPARTS = 1i32; +pub const FLYOUT_LABEL: FLYOUTPARTS = 3i32; +pub const FLYOUT_LINK: FLYOUTPARTS = 4i32; +pub const FLYOUT_LINKAREA: FLYOUTPARTS = 7i32; +pub const FLYOUT_LINKHEADER: FLYOUTPARTS = 8i32; +pub const FLYOUT_WINDOW: FLYOUTPARTS = 6i32; +pub const FONTDLGORD: u32 = 1542u32; +pub const FORMATDLGORD30: u32 = 1544u32; +pub const FORMATDLGORD31: u32 = 1543u32; +pub const FRB_ACTIVE: FRAMEBOTTOMSTATES = 1i32; +pub const FRB_INACTIVE: FRAMEBOTTOMSTATES = 2i32; +pub const FRL_ACTIVE: FRAMELEFTSTATES = 1i32; +pub const FRL_INACTIVE: FRAMELEFTSTATES = 2i32; +pub const FRR_ACTIVE: FRAMERIGHTSTATES = 1i32; +pub const FRR_INACTIVE: FRAMERIGHTSTATES = 2i32; +pub const FSB_ENCARTA_MODE: u32 = 1u32; +pub const FSB_FLAT_MODE: u32 = 2u32; +pub const FSB_REGULAR_MODE: u32 = 0u32; +pub const FS_ACTIVE: FRAMESTATES = 1i32; +pub const FS_INACTIVE: FRAMESTATES = 2i32; +pub const FT_HORZGRADIENT: FILLTYPE = 2i32; +pub const FT_RADIALGRADIENT: FILLTYPE = 3i32; +pub const FT_SOLID: FILLTYPE = 0i32; +pub const FT_TILEIMAGE: FILLTYPE = 4i32; +pub const FT_VERTGRADIENT: FILLTYPE = 1i32; +pub const GBF_COPY: GET_THEME_BITMAP_FLAGS = 2u32; +pub const GBF_DIRECT: GET_THEME_BITMAP_FLAGS = 1u32; +pub const GBF_VALIDBITS: GET_THEME_BITMAP_FLAGS = 3u32; +pub const GBS_DISABLED: GROUPBOXSTATES = 2i32; +pub const GBS_NORMAL: GROUPBOXSTATES = 1i32; +pub const GDTR_MAX: u32 = 2u32; +pub const GDTR_MIN: u32 = 1u32; +pub const GDT_ERROR: i32 = -1i32; +pub const GDT_NONE: NMDATETIMECHANGE_FLAGS = 1u32; +pub const GDT_VALID: NMDATETIMECHANGE_FLAGS = 0u32; +pub const GFST_DPI: GLYPHFONTSIZINGTYPE = 2i32; +pub const GFST_NONE: GLYPHFONTSIZINGTYPE = 0i32; +pub const GFST_SIZE: GLYPHFONTSIZINGTYPE = 1i32; +pub const GLPS_CLOSED: GLYPHSTATES = 1i32; +pub const GLPS_OPENED: GLYPHSTATES = 2i32; +pub const GMR_DAYSTATE: u32 = 1u32; +pub const GMR_VISIBLE: u32 = 0u32; +pub const GT_FONTGLYPH: GLYPHTYPE = 2i32; +pub const GT_IMAGEGLYPH: GLYPHTYPE = 1i32; +pub const GT_NONE: GLYPHTYPE = 0i32; +pub const HA_CENTER: HALIGN = 1i32; +pub const HA_LEFT: HALIGN = 0i32; +pub const HA_RIGHT: HALIGN = 2i32; +pub const HBG_DETAILS: HEADERSTYLESTATES = 1i32; +pub const HBG_ICON: HEADERSTYLESTATES = 2i32; +pub const HBS_DISABLED: HELPBUTTONSTATES = 4i32; +pub const HBS_HOT: HELPBUTTONSTATES = 2i32; +pub const HBS_NORMAL: HELPBUTTONSTATES = 1i32; +pub const HBS_PUSHED: HELPBUTTONSTATES = 3i32; +pub const HDDFS_HOT: HEADERDROPDOWNFILTERSTATES = 3i32; +pub const HDDFS_NORMAL: HEADERDROPDOWNFILTERSTATES = 1i32; +pub const HDDFS_SOFTHOT: HEADERDROPDOWNFILTERSTATES = 2i32; +pub const HDDS_HOT: HEADERDROPDOWNSTATES = 3i32; +pub const HDDS_NORMAL: HEADERDROPDOWNSTATES = 1i32; +pub const HDDS_SOFTHOT: HEADERDROPDOWNSTATES = 2i32; +pub const HDFT_HASNOVALUE: HEADER_CONTROL_FORMAT_TYPE = 32768u32; +pub const HDFT_ISDATE: HEADER_CONTROL_FORMAT_TYPE = 2u32; +pub const HDFT_ISNUMBER: HEADER_CONTROL_FORMAT_TYPE = 1u32; +pub const HDFT_ISSTRING: HEADER_CONTROL_FORMAT_TYPE = 0u32; +pub const HDF_BITMAP: HEADER_CONTROL_FORMAT_FLAGS = 8192i32; +pub const HDF_BITMAP_ON_RIGHT: HEADER_CONTROL_FORMAT_FLAGS = 4096i32; +pub const HDF_CENTER: HEADER_CONTROL_FORMAT_FLAGS = 2i32; +pub const HDF_CHECKBOX: HEADER_CONTROL_FORMAT_FLAGS = 64i32; +pub const HDF_CHECKED: HEADER_CONTROL_FORMAT_FLAGS = 128i32; +pub const HDF_FIXEDWIDTH: HEADER_CONTROL_FORMAT_FLAGS = 256i32; +pub const HDF_IMAGE: HEADER_CONTROL_FORMAT_FLAGS = 2048i32; +pub const HDF_JUSTIFYMASK: HEADER_CONTROL_FORMAT_FLAGS = 3i32; +pub const HDF_LEFT: HEADER_CONTROL_FORMAT_FLAGS = 0i32; +pub const HDF_OWNERDRAW: HEADER_CONTROL_FORMAT_FLAGS = 32768i32; +pub const HDF_RIGHT: HEADER_CONTROL_FORMAT_FLAGS = 1i32; +pub const HDF_RTLREADING: HEADER_CONTROL_FORMAT_FLAGS = 4i32; +pub const HDF_SORTDOWN: HEADER_CONTROL_FORMAT_FLAGS = 512i32; +pub const HDF_SORTUP: HEADER_CONTROL_FORMAT_FLAGS = 1024i32; +pub const HDF_SPLITBUTTON: HEADER_CONTROL_FORMAT_FLAGS = 16777216i32; +pub const HDF_STRING: HEADER_CONTROL_FORMAT_FLAGS = 16384i32; +pub const HDIS_FOCUSED: HEADER_CONTROL_FORMAT_STATE = 1u32; +pub const HDI_BITMAP: HDI_MASK = 16u32; +pub const HDI_DI_SETITEM: HDI_MASK = 64u32; +pub const HDI_FILTER: HDI_MASK = 256u32; +pub const HDI_FORMAT: HDI_MASK = 4u32; +pub const HDI_HEIGHT: HDI_MASK = 1u32; +pub const HDI_IMAGE: HDI_MASK = 32u32; +pub const HDI_LPARAM: HDI_MASK = 8u32; +pub const HDI_ORDER: HDI_MASK = 128u32; +pub const HDI_STATE: HDI_MASK = 512u32; +pub const HDI_TEXT: HDI_MASK = 2u32; +pub const HDI_WIDTH: HDI_MASK = 1u32; +pub const HDM_CLEARFILTER: u32 = 4632u32; +pub const HDM_CREATEDRAGIMAGE: u32 = 4624u32; +pub const HDM_DELETEITEM: u32 = 4610u32; +pub const HDM_EDITFILTER: u32 = 4631u32; +pub const HDM_FIRST: u32 = 4608u32; +pub const HDM_GETBITMAPMARGIN: u32 = 4629u32; +pub const HDM_GETFOCUSEDITEM: u32 = 4635u32; +pub const HDM_GETIMAGELIST: u32 = 4617u32; +pub const HDM_GETITEM: u32 = 4619u32; +pub const HDM_GETITEMA: u32 = 4611u32; +pub const HDM_GETITEMCOUNT: u32 = 4608u32; +pub const HDM_GETITEMDROPDOWNRECT: u32 = 4633u32; +pub const HDM_GETITEMRECT: u32 = 4615u32; +pub const HDM_GETITEMW: u32 = 4619u32; +pub const HDM_GETORDERARRAY: u32 = 4625u32; +pub const HDM_GETOVERFLOWRECT: u32 = 4634u32; +pub const HDM_GETUNICODEFORMAT: u32 = 8198u32; +pub const HDM_HITTEST: u32 = 4614u32; +pub const HDM_INSERTITEM: u32 = 4618u32; +pub const HDM_INSERTITEMA: u32 = 4609u32; +pub const HDM_INSERTITEMW: u32 = 4618u32; +pub const HDM_LAYOUT: u32 = 4613u32; +pub const HDM_ORDERTOINDEX: u32 = 4623u32; +pub const HDM_SETBITMAPMARGIN: u32 = 4628u32; +pub const HDM_SETFILTERCHANGETIMEOUT: u32 = 4630u32; +pub const HDM_SETFOCUSEDITEM: u32 = 4636u32; +pub const HDM_SETHOTDIVIDER: u32 = 4627u32; +pub const HDM_SETIMAGELIST: u32 = 4616u32; +pub const HDM_SETITEM: u32 = 4620u32; +pub const HDM_SETITEMA: u32 = 4612u32; +pub const HDM_SETITEMW: u32 = 4620u32; +pub const HDM_SETORDERARRAY: u32 = 4626u32; +pub const HDM_SETUNICODEFORMAT: u32 = 8197u32; +pub const HDN_BEGINDRAG: u32 = 4294966986u32; +pub const HDN_BEGINFILTEREDIT: u32 = 4294966982u32; +pub const HDN_BEGINTRACK: u32 = 4294966970u32; +pub const HDN_BEGINTRACKA: u32 = 4294966990u32; +pub const HDN_BEGINTRACKW: u32 = 4294966970u32; +pub const HDN_DIVIDERDBLCLICK: u32 = 4294966971u32; +pub const HDN_DIVIDERDBLCLICKA: u32 = 4294966991u32; +pub const HDN_DIVIDERDBLCLICKW: u32 = 4294966971u32; +pub const HDN_DROPDOWN: u32 = 4294966978u32; +pub const HDN_ENDDRAG: u32 = 4294966985u32; +pub const HDN_ENDFILTEREDIT: u32 = 4294966981u32; +pub const HDN_ENDTRACK: u32 = 4294966969u32; +pub const HDN_ENDTRACKA: u32 = 4294966989u32; +pub const HDN_ENDTRACKW: u32 = 4294966969u32; +pub const HDN_FILTERBTNCLICK: u32 = 4294966983u32; +pub const HDN_FILTERCHANGE: u32 = 4294966984u32; +pub const HDN_FIRST: u32 = 4294966996u32; +pub const HDN_GETDISPINFO: u32 = 4294966967u32; +pub const HDN_GETDISPINFOA: u32 = 4294966987u32; +pub const HDN_GETDISPINFOW: u32 = 4294966967u32; +pub const HDN_ITEMCHANGED: u32 = 4294966975u32; +pub const HDN_ITEMCHANGEDA: u32 = 4294966995u32; +pub const HDN_ITEMCHANGEDW: u32 = 4294966975u32; +pub const HDN_ITEMCHANGING: u32 = 4294966976u32; +pub const HDN_ITEMCHANGINGA: u32 = 4294966996u32; +pub const HDN_ITEMCHANGINGW: u32 = 4294966976u32; +pub const HDN_ITEMCLICK: u32 = 4294966974u32; +pub const HDN_ITEMCLICKA: u32 = 4294966994u32; +pub const HDN_ITEMCLICKW: u32 = 4294966974u32; +pub const HDN_ITEMDBLCLICK: u32 = 4294966973u32; +pub const HDN_ITEMDBLCLICKA: u32 = 4294966993u32; +pub const HDN_ITEMDBLCLICKW: u32 = 4294966973u32; +pub const HDN_ITEMKEYDOWN: u32 = 4294966979u32; +pub const HDN_ITEMSTATEICONCLICK: u32 = 4294966980u32; +pub const HDN_LAST: u32 = 4294966897u32; +pub const HDN_OVERFLOWCLICK: u32 = 4294966977u32; +pub const HDN_TRACK: u32 = 4294966968u32; +pub const HDN_TRACKA: u32 = 4294966988u32; +pub const HDN_TRACKW: u32 = 4294966968u32; +pub const HDSIL_NORMAL: u32 = 0u32; +pub const HDSIL_STATE: u32 = 1u32; +pub const HDS_BUTTONS: u32 = 2u32; +pub const HDS_CHECKBOXES: u32 = 1024u32; +pub const HDS_DRAGDROP: u32 = 64u32; +pub const HDS_FILTERBAR: u32 = 256u32; +pub const HDS_FLAT: u32 = 512u32; +pub const HDS_FULLDRAG: u32 = 128u32; +pub const HDS_HIDDEN: u32 = 8u32; +pub const HDS_HORZ: u32 = 0u32; +pub const HDS_HOTTRACK: u32 = 4u32; +pub const HDS_NOSIZING: u32 = 2048u32; +pub const HDS_OVERFLOW: u32 = 4096u32; +pub const HEADER_CONTROL_NOTIFICATION_BUTTON_LEFT: HEADER_CONTROL_NOTIFICATION_BUTTON = 0i32; +pub const HEADER_CONTROL_NOTIFICATION_BUTTON_MIDDLE: HEADER_CONTROL_NOTIFICATION_BUTTON = 2i32; +pub const HEADER_CONTROL_NOTIFICATION_BUTTON_RIGHT: HEADER_CONTROL_NOTIFICATION_BUTTON = 1i32; +pub const HGLPS_CLOSED: HOTGLYPHSTATES = 1i32; +pub const HGLPS_OPENED: HOTGLYPHSTATES = 2i32; +pub const HHT_ABOVE: HEADER_HITTEST_INFO_FLAGS = 256u32; +pub const HHT_BELOW: HEADER_HITTEST_INFO_FLAGS = 512u32; +pub const HHT_NOWHERE: HEADER_HITTEST_INFO_FLAGS = 1u32; +pub const HHT_ONDIVIDER: HEADER_HITTEST_INFO_FLAGS = 4u32; +pub const HHT_ONDIVOPEN: HEADER_HITTEST_INFO_FLAGS = 8u32; +pub const HHT_ONDROPDOWN: HEADER_HITTEST_INFO_FLAGS = 8192u32; +pub const HHT_ONFILTER: HEADER_HITTEST_INFO_FLAGS = 16u32; +pub const HHT_ONFILTERBUTTON: HEADER_HITTEST_INFO_FLAGS = 32u32; +pub const HHT_ONHEADER: HEADER_HITTEST_INFO_FLAGS = 2u32; +pub const HHT_ONITEMSTATEICON: HEADER_HITTEST_INFO_FLAGS = 4096u32; +pub const HHT_ONOVERFLOW: HEADER_HITTEST_INFO_FLAGS = 16384u32; +pub const HHT_TOLEFT: HEADER_HITTEST_INFO_FLAGS = 2048u32; +pub const HHT_TORIGHT: HEADER_HITTEST_INFO_FLAGS = 1024u32; +pub const HICF_ACCELERATOR: NMTBHOTITEM_FLAGS = 4u32; +pub const HICF_ARROWKEYS: NMTBHOTITEM_FLAGS = 2u32; +pub const HICF_DUPACCEL: NMTBHOTITEM_FLAGS = 8u32; +pub const HICF_ENTERING: NMTBHOTITEM_FLAGS = 16u32; +pub const HICF_LEAVING: NMTBHOTITEM_FLAGS = 32u32; +pub const HICF_LMOUSE: NMTBHOTITEM_FLAGS = 128u32; +pub const HICF_MOUSE: NMTBHOTITEM_FLAGS = 1u32; +pub const HICF_OTHER: NMTBHOTITEM_FLAGS = 0u32; +pub const HICF_RESELECT: NMTBHOTITEM_FLAGS = 64u32; +pub const HICF_TOGGLEDROPDOWN: NMTBHOTITEM_FLAGS = 256u32; +pub const HILS_HOT: HEADERITEMLEFTSTATES = 2i32; +pub const HILS_NORMAL: HEADERITEMLEFTSTATES = 1i32; +pub const HILS_PRESSED: HEADERITEMLEFTSTATES = 3i32; +pub const HIRS_HOT: HEADERITEMRIGHTSTATES = 2i32; +pub const HIRS_NORMAL: HEADERITEMRIGHTSTATES = 1i32; +pub const HIRS_PRESSED: HEADERITEMRIGHTSTATES = 3i32; +pub const HIST_ADDTOFAVORITES: u32 = 3u32; +pub const HIST_BACK: u32 = 0u32; +pub const HIST_FAVORITES: u32 = 2u32; +pub const HIST_FORWARD: u32 = 1u32; +pub const HIST_VIEWTREE: u32 = 4u32; +pub const HIS_HOT: HEADERITEMSTATES = 2i32; +pub const HIS_ICONHOT: HEADERITEMSTATES = 8i32; +pub const HIS_ICONNORMAL: HEADERITEMSTATES = 7i32; +pub const HIS_ICONPRESSED: HEADERITEMSTATES = 9i32; +pub const HIS_ICONSORTEDHOT: HEADERITEMSTATES = 11i32; +pub const HIS_ICONSORTEDNORMAL: HEADERITEMSTATES = 10i32; +pub const HIS_ICONSORTEDPRESSED: HEADERITEMSTATES = 12i32; +pub const HIS_NORMAL: HEADERITEMSTATES = 1i32; +pub const HIS_PRESSED: HEADERITEMSTATES = 3i32; +pub const HIS_SORTEDHOT: HEADERITEMSTATES = 5i32; +pub const HIS_SORTEDNORMAL: HEADERITEMSTATES = 4i32; +pub const HIS_SORTEDPRESSED: HEADERITEMSTATES = 6i32; +pub const HKCOMB_A: u32 = 8u32; +pub const HKCOMB_C: u32 = 4u32; +pub const HKCOMB_CA: u32 = 64u32; +pub const HKCOMB_NONE: u32 = 1u32; +pub const HKCOMB_S: u32 = 2u32; +pub const HKCOMB_SA: u32 = 32u32; +pub const HKCOMB_SC: u32 = 16u32; +pub const HKCOMB_SCA: u32 = 128u32; +pub const HKM_GETHOTKEY: u32 = 1026u32; +pub const HKM_SETHOTKEY: u32 = 1025u32; +pub const HKM_SETRULES: u32 = 1027u32; +pub const HLS_LINKTEXT: HYPERLINKSTATES = 2i32; +pub const HLS_NORMALTEXT: HYPERLINKSTATES = 1i32; +pub const HOFS_HOT: HEADEROVERFLOWSTATES = 2i32; +pub const HOFS_NORMAL: HEADEROVERFLOWSTATES = 1i32; +pub const HOTKEYF_ALT: u32 = 4u32; +pub const HOTKEYF_CONTROL: u32 = 2u32; +pub const HOTKEYF_EXT: u32 = 8u32; +pub const HOTKEYF_SHIFT: u32 = 1u32; +pub const HOTKEY_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msctls_hotkey32"); +pub const HOTKEY_CLASSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("msctls_hotkey32"); +pub const HOTKEY_CLASSW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msctls_hotkey32"); +pub const HOVER_DEFAULT: u32 = 4294967295u32; +pub const HP_HEADERDROPDOWN: HEADERPARTS = 5i32; +pub const HP_HEADERDROPDOWNFILTER: HEADERPARTS = 6i32; +pub const HP_HEADERITEM: HEADERPARTS = 1i32; +pub const HP_HEADERITEMLEFT: HEADERPARTS = 2i32; +pub const HP_HEADERITEMRIGHT: HEADERPARTS = 3i32; +pub const HP_HEADEROVERFLOW: HEADERPARTS = 7i32; +pub const HP_HEADERSORTARROW: HEADERPARTS = 4i32; +pub const HSAS_SORTEDDOWN: HEADERSORTARROWSTATES = 2i32; +pub const HSAS_SORTEDUP: HEADERSORTARROWSTATES = 1i32; +pub const HSS_DISABLED: HORZSCROLLSTATES = 4i32; +pub const HSS_HOT: HORZSCROLLSTATES = 2i32; +pub const HSS_NORMAL: HORZSCROLLSTATES = 1i32; +pub const HSS_PUSHED: HORZSCROLLSTATES = 3i32; +pub const HTS_DISABLED: HORZTHUMBSTATES = 4i32; +pub const HTS_HOT: HORZTHUMBSTATES = 2i32; +pub const HTS_NORMAL: HORZTHUMBSTATES = 1i32; +pub const HTS_PUSHED: HORZTHUMBSTATES = 3i32; +pub const HTTB_BACKGROUNDSEG: HIT_TEST_BACKGROUND_OPTIONS = 0u32; +pub const HTTB_CAPTION: HIT_TEST_BACKGROUND_OPTIONS = 4u32; +pub const HTTB_FIXEDBORDER: HIT_TEST_BACKGROUND_OPTIONS = 2u32; +pub const HTTB_RESIZINGBORDER: HIT_TEST_BACKGROUND_OPTIONS = 240u32; +pub const HTTB_RESIZINGBORDER_BOTTOM: HIT_TEST_BACKGROUND_OPTIONS = 128u32; +pub const HTTB_RESIZINGBORDER_LEFT: HIT_TEST_BACKGROUND_OPTIONS = 16u32; +pub const HTTB_RESIZINGBORDER_RIGHT: HIT_TEST_BACKGROUND_OPTIONS = 64u32; +pub const HTTB_RESIZINGBORDER_TOP: HIT_TEST_BACKGROUND_OPTIONS = 32u32; +pub const HTTB_SIZINGTEMPLATE: HIT_TEST_BACKGROUND_OPTIONS = 256u32; +pub const HTTB_SYSTEMSIZINGMARGINS: HIT_TEST_BACKGROUND_OPTIONS = 512u32; +pub const ICC_ANIMATE_CLASS: INITCOMMONCONTROLSEX_ICC = 128u32; +pub const ICC_BAR_CLASSES: INITCOMMONCONTROLSEX_ICC = 4u32; +pub const ICC_COOL_CLASSES: INITCOMMONCONTROLSEX_ICC = 1024u32; +pub const ICC_DATE_CLASSES: INITCOMMONCONTROLSEX_ICC = 256u32; +pub const ICC_HOTKEY_CLASS: INITCOMMONCONTROLSEX_ICC = 64u32; +pub const ICC_INTERNET_CLASSES: INITCOMMONCONTROLSEX_ICC = 2048u32; +pub const ICC_LINK_CLASS: INITCOMMONCONTROLSEX_ICC = 32768u32; +pub const ICC_LISTVIEW_CLASSES: INITCOMMONCONTROLSEX_ICC = 1u32; +pub const ICC_NATIVEFNTCTL_CLASS: INITCOMMONCONTROLSEX_ICC = 8192u32; +pub const ICC_PAGESCROLLER_CLASS: INITCOMMONCONTROLSEX_ICC = 4096u32; +pub const ICC_PROGRESS_CLASS: INITCOMMONCONTROLSEX_ICC = 32u32; +pub const ICC_STANDARD_CLASSES: INITCOMMONCONTROLSEX_ICC = 16384u32; +pub const ICC_TAB_CLASSES: INITCOMMONCONTROLSEX_ICC = 8u32; +pub const ICC_TREEVIEW_CLASSES: INITCOMMONCONTROLSEX_ICC = 2u32; +pub const ICC_UPDOWN_CLASS: INITCOMMONCONTROLSEX_ICC = 16u32; +pub const ICC_USEREX_CLASSES: INITCOMMONCONTROLSEX_ICC = 512u32; +pub const ICC_WIN95_CLASSES: INITCOMMONCONTROLSEX_ICC = 255u32; +pub const ICE_ALPHA: ICONEFFECT = 4i32; +pub const ICE_GLOW: ICONEFFECT = 1i32; +pub const ICE_NONE: ICONEFFECT = 0i32; +pub const ICE_PULSE: ICONEFFECT = 3i32; +pub const ICE_SHADOW: ICONEFFECT = 2i32; +pub const IDB_HIST_DISABLED: u32 = 14u32; +pub const IDB_HIST_HOT: u32 = 13u32; +pub const IDB_HIST_LARGE_COLOR: u32 = 9u32; +pub const IDB_HIST_NORMAL: u32 = 12u32; +pub const IDB_HIST_PRESSED: u32 = 15u32; +pub const IDB_HIST_SMALL_COLOR: u32 = 8u32; +pub const IDB_STD_LARGE_COLOR: u32 = 1u32; +pub const IDB_STD_SMALL_COLOR: u32 = 0u32; +pub const IDB_VIEW_LARGE_COLOR: u32 = 5u32; +pub const IDB_VIEW_SMALL_COLOR: u32 = 4u32; +pub const IDC_MANAGE_LINK: u32 = 1592u32; +pub const ID_PSRESTARTWINDOWS: u32 = 2u32; +pub const ILCF_MOVE: IMAGE_LIST_COPY_FLAGS = 0u32; +pub const ILCF_SWAP: IMAGE_LIST_COPY_FLAGS = 1u32; +pub const ILC_COLOR: IMAGELIST_CREATION_FLAGS = 0u32; +pub const ILC_COLOR16: IMAGELIST_CREATION_FLAGS = 16u32; +pub const ILC_COLOR24: IMAGELIST_CREATION_FLAGS = 24u32; +pub const ILC_COLOR32: IMAGELIST_CREATION_FLAGS = 32u32; +pub const ILC_COLOR4: IMAGELIST_CREATION_FLAGS = 4u32; +pub const ILC_COLOR8: IMAGELIST_CREATION_FLAGS = 8u32; +pub const ILC_COLORDDB: IMAGELIST_CREATION_FLAGS = 254u32; +pub const ILC_HIGHQUALITYSCALE: IMAGELIST_CREATION_FLAGS = 131072u32; +pub const ILC_MASK: IMAGELIST_CREATION_FLAGS = 1u32; +pub const ILC_MIRROR: IMAGELIST_CREATION_FLAGS = 8192u32; +pub const ILC_ORIGINALSIZE: IMAGELIST_CREATION_FLAGS = 65536u32; +pub const ILC_PALETTE: IMAGELIST_CREATION_FLAGS = 2048u32; +pub const ILC_PERITEMMIRROR: IMAGELIST_CREATION_FLAGS = 32768u32; +pub const ILDI_PURGE: u32 = 1u32; +pub const ILDI_QUERYACCESS: u32 = 8u32; +pub const ILDI_RESETACCESS: u32 = 4u32; +pub const ILDI_STANDBY: u32 = 2u32; +pub const ILDRF_IMAGELOWQUALITY: u32 = 1u32; +pub const ILDRF_OVERLAYLOWQUALITY: u32 = 16u32; +pub const ILD_ASYNC: IMAGE_LIST_DRAW_STYLE = 32768u32; +pub const ILD_BLEND: IMAGE_LIST_DRAW_STYLE = 4u32; +pub const ILD_BLEND25: IMAGE_LIST_DRAW_STYLE = 2u32; +pub const ILD_BLEND50: IMAGE_LIST_DRAW_STYLE = 4u32; +pub const ILD_DPISCALE: IMAGE_LIST_DRAW_STYLE = 16384u32; +pub const ILD_FOCUS: IMAGE_LIST_DRAW_STYLE = 2u32; +pub const ILD_IMAGE: IMAGE_LIST_DRAW_STYLE = 32u32; +pub const ILD_MASK: IMAGE_LIST_DRAW_STYLE = 16u32; +pub const ILD_NORMAL: IMAGE_LIST_DRAW_STYLE = 0u32; +pub const ILD_OVERLAYMASK: IMAGE_LIST_DRAW_STYLE = 3840u32; +pub const ILD_PRESERVEALPHA: IMAGE_LIST_DRAW_STYLE = 4096u32; +pub const ILD_ROP: IMAGE_LIST_DRAW_STYLE = 64u32; +pub const ILD_SCALE: IMAGE_LIST_DRAW_STYLE = 8192u32; +pub const ILD_SELECTED: IMAGE_LIST_DRAW_STYLE = 4u32; +pub const ILD_TRANSPARENT: IMAGE_LIST_DRAW_STYLE = 1u32; +pub const ILFIP_ALWAYS: u32 = 0u32; +pub const ILFIP_FROMSTANDBY: u32 = 1u32; +pub const ILGOS_ALWAYS: u32 = 0u32; +pub const ILGOS_FROMSTANDBY: u32 = 1u32; +pub const ILGT_ASYNC: u32 = 1u32; +pub const ILGT_NORMAL: u32 = 0u32; +pub const ILIF_ALPHA: IMAGE_LIST_ITEM_FLAGS = 1u32; +pub const ILIF_LOWQUALITY: IMAGE_LIST_ITEM_FLAGS = 2u32; +pub const ILP_DOWNLEVEL: IMAGE_LIST_WRITE_STREAM_FLAGS = 1u32; +pub const ILP_NORMAL: IMAGE_LIST_WRITE_STREAM_FLAGS = 0u32; +pub const ILR_DEFAULT: u32 = 0u32; +pub const ILR_HORIZONTAL_CENTER: u32 = 1u32; +pub const ILR_HORIZONTAL_LEFT: u32 = 0u32; +pub const ILR_HORIZONTAL_RIGHT: u32 = 2u32; +pub const ILR_SCALE_ASPECTRATIO: u32 = 256u32; +pub const ILR_SCALE_CLIP: u32 = 0u32; +pub const ILR_VERTICAL_BOTTOM: u32 = 32u32; +pub const ILR_VERTICAL_CENTER: u32 = 16u32; +pub const ILR_VERTICAL_TOP: u32 = 0u32; +pub const ILS_ALPHA: u32 = 8u32; +pub const ILS_GLOW: u32 = 1u32; +pub const ILS_NORMAL: u32 = 0u32; +pub const ILS_SATURATE: u32 = 4u32; +pub const ILS_SHADOW: u32 = 2u32; +pub const IL_HORIZONTAL: IMAGELAYOUT = 1i32; +pub const IL_VERTICAL: IMAGELAYOUT = 0i32; +pub const INFOTIPSIZE: u32 = 1024u32; +pub const INVALID_LINK_INDEX: i32 = -1i32; +pub const IPM_CLEARADDRESS: u32 = 1124u32; +pub const IPM_GETADDRESS: u32 = 1126u32; +pub const IPM_ISBLANK: u32 = 1129u32; +pub const IPM_SETADDRESS: u32 = 1125u32; +pub const IPM_SETFOCUS: u32 = 1128u32; +pub const IPM_SETRANGE: u32 = 1127u32; +pub const IPN_FIELDCHANGED: u32 = 4294966436u32; +pub const IPN_FIRST: u32 = 4294966436u32; +pub const IPN_LAST: u32 = 4294966417u32; +pub const IST_DPI: IMAGESELECTTYPE = 2i32; +pub const IST_NONE: IMAGESELECTTYPE = 0i32; +pub const IST_SIZE: IMAGESELECTTYPE = 1i32; +pub const I_CHILDRENAUTO: TVITEMEXW_CHILDREN = -2i32; +pub const I_CHILDRENCALLBACK: TVITEMEXW_CHILDREN = -1i32; +pub const I_GROUPIDCALLBACK: LVITEMA_GROUP_ID = -1i32; +pub const I_GROUPIDNONE: LVITEMA_GROUP_ID = -2i32; +pub const I_IMAGECALLBACK: i32 = -1i32; +pub const I_IMAGENONE: i32 = -2i32; +pub const I_INDENTCALLBACK: i32 = -1i32; +pub const I_ONE_OR_MORE: TVITEMEXW_CHILDREN = 1i32; +pub const I_ZERO: TVITEMEXW_CHILDREN = 0i32; +pub const ImageList: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7c476ba2_02b1_48f4_8048_b24619ddc058); +pub const LBCP_BORDER_HSCROLL: LISTBOXPARTS = 1i32; +pub const LBCP_BORDER_HVSCROLL: LISTBOXPARTS = 2i32; +pub const LBCP_BORDER_NOSCROLL: LISTBOXPARTS = 3i32; +pub const LBCP_BORDER_VSCROLL: LISTBOXPARTS = 4i32; +pub const LBCP_ITEM: LISTBOXPARTS = 5i32; +pub const LBPSHV_DISABLED: BORDER_HVSCROLLSTATES = 4i32; +pub const LBPSHV_FOCUSED: BORDER_HVSCROLLSTATES = 2i32; +pub const LBPSHV_HOT: BORDER_HVSCROLLSTATES = 3i32; +pub const LBPSHV_NORMAL: BORDER_HVSCROLLSTATES = 1i32; +pub const LBPSH_DISABLED: BORDER_HSCROLLSTATES = 4i32; +pub const LBPSH_FOCUSED: BORDER_HSCROLLSTATES = 2i32; +pub const LBPSH_HOT: BORDER_HSCROLLSTATES = 3i32; +pub const LBPSH_NORMAL: BORDER_HSCROLLSTATES = 1i32; +pub const LBPSI_HOT: ITEMSTATES = 1i32; +pub const LBPSI_HOTSELECTED: ITEMSTATES = 2i32; +pub const LBPSI_SELECTED: ITEMSTATES = 3i32; +pub const LBPSI_SELECTEDNOTFOCUS: ITEMSTATES = 4i32; +pub const LBPSN_DISABLED: BORDER_NOSCROLLSTATES = 4i32; +pub const LBPSN_FOCUSED: BORDER_NOSCROLLSTATES = 2i32; +pub const LBPSN_HOT: BORDER_NOSCROLLSTATES = 3i32; +pub const LBPSN_NORMAL: BORDER_NOSCROLLSTATES = 1i32; +pub const LBPSV_DISABLED: BORDER_VSCROLLSTATES = 4i32; +pub const LBPSV_FOCUSED: BORDER_VSCROLLSTATES = 2i32; +pub const LBPSV_HOT: BORDER_VSCROLLSTATES = 3i32; +pub const LBPSV_NORMAL: BORDER_VSCROLLSTATES = 1i32; +pub const LIF_ITEMID: LIST_ITEM_FLAGS = 4u32; +pub const LIF_ITEMINDEX: LIST_ITEM_FLAGS = 1u32; +pub const LIF_STATE: LIST_ITEM_FLAGS = 2u32; +pub const LIF_URL: LIST_ITEM_FLAGS = 8u32; +pub const LIM_LARGE: _LI_METRIC = 1i32; +pub const LIM_SMALL: _LI_METRIC = 0i32; +pub const LISS_DISABLED: LISTITEMSTATES = 4i32; +pub const LISS_HOT: LISTITEMSTATES = 2i32; +pub const LISS_HOTSELECTED: LISTITEMSTATES = 6i32; +pub const LISS_NORMAL: LISTITEMSTATES = 1i32; +pub const LISS_SELECTED: LISTITEMSTATES = 3i32; +pub const LISS_SELECTEDNOTFOCUS: LISTITEMSTATES = 5i32; +pub const LIS_DEFAULTCOLORS: LIST_ITEM_STATE_FLAGS = 16u32; +pub const LIS_ENABLED: LIST_ITEM_STATE_FLAGS = 2u32; +pub const LIS_FOCUSED: LIST_ITEM_STATE_FLAGS = 1u32; +pub const LIS_HOTTRACK: LIST_ITEM_STATE_FLAGS = 8u32; +pub const LIS_VISITED: LIST_ITEM_STATE_FLAGS = 4u32; +pub const LM_GETIDEALHEIGHT: u32 = 1793u32; +pub const LM_GETIDEALSIZE: u32 = 1793u32; +pub const LM_GETITEM: u32 = 1795u32; +pub const LM_HITTEST: u32 = 1792u32; +pub const LM_SETITEM: u32 = 1794u32; +pub const LP_HYPERLINK: LINKPARTS = 1i32; +pub const LVA_ALIGNLEFT: u32 = 1u32; +pub const LVA_ALIGNTOP: u32 = 2u32; +pub const LVA_DEFAULT: u32 = 0u32; +pub const LVA_SNAPTOGRID: u32 = 5u32; +pub const LVBKIF_FLAG_ALPHABLEND: LIST_VIEW_BACKGROUND_IMAGE_FLAGS = 536870912u32; +pub const LVBKIF_FLAG_TILEOFFSET: LIST_VIEW_BACKGROUND_IMAGE_FLAGS = 256u32; +pub const LVBKIF_SOURCE_HBITMAP: LIST_VIEW_BACKGROUND_IMAGE_FLAGS = 1u32; +pub const LVBKIF_SOURCE_MASK: LIST_VIEW_BACKGROUND_IMAGE_FLAGS = 3u32; +pub const LVBKIF_SOURCE_NONE: LIST_VIEW_BACKGROUND_IMAGE_FLAGS = 0u32; +pub const LVBKIF_SOURCE_URL: LIST_VIEW_BACKGROUND_IMAGE_FLAGS = 2u32; +pub const LVBKIF_STYLE_MASK: LIST_VIEW_BACKGROUND_IMAGE_FLAGS = 16u32; +pub const LVBKIF_STYLE_NORMAL: LIST_VIEW_BACKGROUND_IMAGE_FLAGS = 0u32; +pub const LVBKIF_STYLE_TILE: LIST_VIEW_BACKGROUND_IMAGE_FLAGS = 16u32; +pub const LVBKIF_TYPE_WATERMARK: LIST_VIEW_BACKGROUND_IMAGE_FLAGS = 268435456u32; +pub const LVCB_HOVER: COLLAPSEBUTTONSTATES = 2i32; +pub const LVCB_NORMAL: COLLAPSEBUTTONSTATES = 1i32; +pub const LVCB_PUSHED: COLLAPSEBUTTONSTATES = 3i32; +pub const LVCDI_GROUP: NMLVCUSTOMDRAW_ITEM_TYPE = 1u32; +pub const LVCDI_ITEM: NMLVCUSTOMDRAW_ITEM_TYPE = 0u32; +pub const LVCDI_ITEMSLIST: NMLVCUSTOMDRAW_ITEM_TYPE = 2u32; +pub const LVCDRF_NOGROUPFRAME: u32 = 131072u32; +pub const LVCDRF_NOSELECT: u32 = 65536u32; +pub const LVCFMT_BITMAP_ON_RIGHT: LVCOLUMNW_FORMAT = 4096i32; +pub const LVCFMT_CENTER: LVCOLUMNW_FORMAT = 2i32; +pub const LVCFMT_COL_HAS_IMAGES: LVCOLUMNW_FORMAT = 32768i32; +pub const LVCFMT_FILL: LIST_VIEW_ITEM_COLUMN_FORMAT_FLAGS = 2097152i32; +pub const LVCFMT_FIXED_RATIO: LVCOLUMNW_FORMAT = 524288i32; +pub const LVCFMT_FIXED_WIDTH: LVCOLUMNW_FORMAT = 256i32; +pub const LVCFMT_IMAGE: LVCOLUMNW_FORMAT = 2048i32; +pub const LVCFMT_JUSTIFYMASK: LVCOLUMNW_FORMAT = 3i32; +pub const LVCFMT_LEFT: LVCOLUMNW_FORMAT = 0i32; +pub const LVCFMT_LINE_BREAK: LIST_VIEW_ITEM_COLUMN_FORMAT_FLAGS = 1048576i32; +pub const LVCFMT_NO_DPI_SCALE: LVCOLUMNW_FORMAT = 262144i32; +pub const LVCFMT_NO_TITLE: LIST_VIEW_ITEM_COLUMN_FORMAT_FLAGS = 8388608i32; +pub const LVCFMT_RIGHT: LVCOLUMNW_FORMAT = 1i32; +pub const LVCFMT_SPLITBUTTON: LVCOLUMNW_FORMAT = 16777216i32; +pub const LVCFMT_TILE_PLACEMENTMASK: LIST_VIEW_ITEM_COLUMN_FORMAT_FLAGS = 3145728i32; +pub const LVCFMT_WRAP: LIST_VIEW_ITEM_COLUMN_FORMAT_FLAGS = 4194304i32; +pub const LVCF_DEFAULTWIDTH: LVCOLUMNW_MASK = 128u32; +pub const LVCF_FMT: LVCOLUMNW_MASK = 1u32; +pub const LVCF_IDEALWIDTH: LVCOLUMNW_MASK = 256u32; +pub const LVCF_IMAGE: LVCOLUMNW_MASK = 16u32; +pub const LVCF_MINWIDTH: LVCOLUMNW_MASK = 64u32; +pub const LVCF_ORDER: LVCOLUMNW_MASK = 32u32; +pub const LVCF_SUBITEM: LVCOLUMNW_MASK = 8u32; +pub const LVCF_TEXT: LVCOLUMNW_MASK = 4u32; +pub const LVCF_WIDTH: LVCOLUMNW_MASK = 2u32; +pub const LVEB_HOVER: EXPANDBUTTONSTATES = 2i32; +pub const LVEB_NORMAL: EXPANDBUTTONSTATES = 1i32; +pub const LVEB_PUSHED: EXPANDBUTTONSTATES = 3i32; +pub const LVFF_ITEMCOUNT: u32 = 1u32; +pub const LVFIF_STATE: LVFOOTERITEM_MASK = 2u32; +pub const LVFIF_TEXT: LVFOOTERITEM_MASK = 1u32; +pub const LVFIS_FOCUSED: u32 = 1u32; +pub const LVFI_NEARESTXY: LVFINDINFOW_FLAGS = 64u32; +pub const LVFI_PARAM: LVFINDINFOW_FLAGS = 1u32; +pub const LVFI_PARTIAL: LVFINDINFOW_FLAGS = 8u32; +pub const LVFI_STRING: LVFINDINFOW_FLAGS = 2u32; +pub const LVFI_SUBSTRING: LVFINDINFOW_FLAGS = 4u32; +pub const LVFI_WRAP: LVFINDINFOW_FLAGS = 32u32; +pub const LVGA_FOOTER_CENTER: LIST_VIEW_GROUP_ALIGN_FLAGS = 16u32; +pub const LVGA_FOOTER_LEFT: LIST_VIEW_GROUP_ALIGN_FLAGS = 8u32; +pub const LVGA_FOOTER_RIGHT: LIST_VIEW_GROUP_ALIGN_FLAGS = 32u32; +pub const LVGA_HEADER_CENTER: LIST_VIEW_GROUP_ALIGN_FLAGS = 2u32; +pub const LVGA_HEADER_LEFT: LIST_VIEW_GROUP_ALIGN_FLAGS = 1u32; +pub const LVGA_HEADER_RIGHT: LIST_VIEW_GROUP_ALIGN_FLAGS = 4u32; +pub const LVGF_ALIGN: LVGROUP_MASK = 8u32; +pub const LVGF_DESCRIPTIONBOTTOM: LVGROUP_MASK = 2048u32; +pub const LVGF_DESCRIPTIONTOP: LVGROUP_MASK = 1024u32; +pub const LVGF_EXTENDEDIMAGE: LVGROUP_MASK = 8192u32; +pub const LVGF_FOOTER: LVGROUP_MASK = 2u32; +pub const LVGF_GROUPID: LVGROUP_MASK = 16u32; +pub const LVGF_HEADER: LVGROUP_MASK = 1u32; +pub const LVGF_ITEMS: LVGROUP_MASK = 16384u32; +pub const LVGF_NONE: LVGROUP_MASK = 0u32; +pub const LVGF_STATE: LVGROUP_MASK = 4u32; +pub const LVGF_SUBSET: LVGROUP_MASK = 32768u32; +pub const LVGF_SUBSETITEMS: LVGROUP_MASK = 65536u32; +pub const LVGF_SUBTITLE: LVGROUP_MASK = 256u32; +pub const LVGF_TASK: LVGROUP_MASK = 512u32; +pub const LVGF_TITLEIMAGE: LVGROUP_MASK = 4096u32; +pub const LVGGR_GROUP: u32 = 0u32; +pub const LVGGR_HEADER: u32 = 1u32; +pub const LVGGR_LABEL: u32 = 2u32; +pub const LVGGR_SUBSETLINK: u32 = 3u32; +pub const LVGHL_CLOSE: GROUPHEADERLINESTATES = 9i32; +pub const LVGHL_CLOSEHOT: GROUPHEADERLINESTATES = 10i32; +pub const LVGHL_CLOSEMIXEDSELECTION: GROUPHEADERLINESTATES = 15i32; +pub const LVGHL_CLOSEMIXEDSELECTIONHOT: GROUPHEADERLINESTATES = 16i32; +pub const LVGHL_CLOSESELECTED: GROUPHEADERLINESTATES = 11i32; +pub const LVGHL_CLOSESELECTEDHOT: GROUPHEADERLINESTATES = 12i32; +pub const LVGHL_CLOSESELECTEDNOTFOCUSED: GROUPHEADERLINESTATES = 13i32; +pub const LVGHL_CLOSESELECTEDNOTFOCUSEDHOT: GROUPHEADERLINESTATES = 14i32; +pub const LVGHL_OPEN: GROUPHEADERLINESTATES = 1i32; +pub const LVGHL_OPENHOT: GROUPHEADERLINESTATES = 2i32; +pub const LVGHL_OPENMIXEDSELECTION: GROUPHEADERLINESTATES = 7i32; +pub const LVGHL_OPENMIXEDSELECTIONHOT: GROUPHEADERLINESTATES = 8i32; +pub const LVGHL_OPENSELECTED: GROUPHEADERLINESTATES = 3i32; +pub const LVGHL_OPENSELECTEDHOT: GROUPHEADERLINESTATES = 4i32; +pub const LVGHL_OPENSELECTEDNOTFOCUSED: GROUPHEADERLINESTATES = 5i32; +pub const LVGHL_OPENSELECTEDNOTFOCUSEDHOT: GROUPHEADERLINESTATES = 6i32; +pub const LVGH_CLOSE: GROUPHEADERSTATES = 9i32; +pub const LVGH_CLOSEHOT: GROUPHEADERSTATES = 10i32; +pub const LVGH_CLOSEMIXEDSELECTION: GROUPHEADERSTATES = 15i32; +pub const LVGH_CLOSEMIXEDSELECTIONHOT: GROUPHEADERSTATES = 16i32; +pub const LVGH_CLOSESELECTED: GROUPHEADERSTATES = 11i32; +pub const LVGH_CLOSESELECTEDHOT: GROUPHEADERSTATES = 12i32; +pub const LVGH_CLOSESELECTEDNOTFOCUSED: GROUPHEADERSTATES = 13i32; +pub const LVGH_CLOSESELECTEDNOTFOCUSEDHOT: GROUPHEADERSTATES = 14i32; +pub const LVGH_OPEN: GROUPHEADERSTATES = 1i32; +pub const LVGH_OPENHOT: GROUPHEADERSTATES = 2i32; +pub const LVGH_OPENMIXEDSELECTION: GROUPHEADERSTATES = 7i32; +pub const LVGH_OPENMIXEDSELECTIONHOT: GROUPHEADERSTATES = 8i32; +pub const LVGH_OPENSELECTED: GROUPHEADERSTATES = 3i32; +pub const LVGH_OPENSELECTEDHOT: GROUPHEADERSTATES = 4i32; +pub const LVGH_OPENSELECTEDNOTFOCUSED: GROUPHEADERSTATES = 5i32; +pub const LVGH_OPENSELECTEDNOTFOCUSEDHOT: GROUPHEADERSTATES = 6i32; +pub const LVGIT_UNFOLDED: NMLVGETINFOTIP_FLAGS = 1u32; +pub const LVGIT_ZERO: NMLVGETINFOTIP_FLAGS = 0u32; +pub const LVGMF_BORDERCOLOR: u32 = 2u32; +pub const LVGMF_BORDERSIZE: u32 = 1u32; +pub const LVGMF_NONE: u32 = 0u32; +pub const LVGMF_TEXTCOLOR: u32 = 4u32; +pub const LVGS_COLLAPSED: LIST_VIEW_GROUP_STATE_FLAGS = 1u32; +pub const LVGS_COLLAPSIBLE: LIST_VIEW_GROUP_STATE_FLAGS = 8u32; +pub const LVGS_FOCUSED: LIST_VIEW_GROUP_STATE_FLAGS = 16u32; +pub const LVGS_HIDDEN: LIST_VIEW_GROUP_STATE_FLAGS = 2u32; +pub const LVGS_NOHEADER: LIST_VIEW_GROUP_STATE_FLAGS = 4u32; +pub const LVGS_NORMAL: LIST_VIEW_GROUP_STATE_FLAGS = 0u32; +pub const LVGS_SELECTED: LIST_VIEW_GROUP_STATE_FLAGS = 32u32; +pub const LVGS_SUBSETED: LIST_VIEW_GROUP_STATE_FLAGS = 64u32; +pub const LVGS_SUBSETLINKFOCUSED: LIST_VIEW_GROUP_STATE_FLAGS = 128u32; +pub const LVHT_ABOVE: LVHITTESTINFO_FLAGS = 8u32; +pub const LVHT_BELOW: LVHITTESTINFO_FLAGS = 16u32; +pub const LVHT_EX_FOOTER: LVHITTESTINFO_FLAGS = 134217728u32; +pub const LVHT_EX_GROUP: LVHITTESTINFO_FLAGS = 4076863488u32; +pub const LVHT_EX_GROUP_BACKGROUND: LVHITTESTINFO_FLAGS = 2147483648u32; +pub const LVHT_EX_GROUP_COLLAPSE: LVHITTESTINFO_FLAGS = 1073741824u32; +pub const LVHT_EX_GROUP_FOOTER: LVHITTESTINFO_FLAGS = 536870912u32; +pub const LVHT_EX_GROUP_HEADER: LVHITTESTINFO_FLAGS = 268435456u32; +pub const LVHT_EX_GROUP_STATEICON: LVHITTESTINFO_FLAGS = 16777216u32; +pub const LVHT_EX_GROUP_SUBSETLINK: LVHITTESTINFO_FLAGS = 33554432u32; +pub const LVHT_EX_ONCONTENTS: LVHITTESTINFO_FLAGS = 67108864u32; +pub const LVHT_NOWHERE: LVHITTESTINFO_FLAGS = 1u32; +pub const LVHT_ONITEMICON: LVHITTESTINFO_FLAGS = 2u32; +pub const LVHT_ONITEMLABEL: LVHITTESTINFO_FLAGS = 4u32; +pub const LVHT_ONITEMSTATEICON: LVHITTESTINFO_FLAGS = 8u32; +pub const LVHT_TOLEFT: LVHITTESTINFO_FLAGS = 64u32; +pub const LVHT_TORIGHT: LVHITTESTINFO_FLAGS = 32u32; +pub const LVIF_COLFMT: LIST_VIEW_ITEM_FLAGS = 65536u32; +pub const LVIF_COLUMNS: LIST_VIEW_ITEM_FLAGS = 512u32; +pub const LVIF_DI_SETITEM: LIST_VIEW_ITEM_FLAGS = 4096u32; +pub const LVIF_GROUPID: LIST_VIEW_ITEM_FLAGS = 256u32; +pub const LVIF_IMAGE: LIST_VIEW_ITEM_FLAGS = 2u32; +pub const LVIF_INDENT: LIST_VIEW_ITEM_FLAGS = 16u32; +pub const LVIF_NORECOMPUTE: LIST_VIEW_ITEM_FLAGS = 2048u32; +pub const LVIF_PARAM: LIST_VIEW_ITEM_FLAGS = 4u32; +pub const LVIF_STATE: LIST_VIEW_ITEM_FLAGS = 8u32; +pub const LVIF_TEXT: LIST_VIEW_ITEM_FLAGS = 1u32; +pub const LVIM_AFTER: u32 = 1u32; +pub const LVIR_BOUNDS: u32 = 0u32; +pub const LVIR_ICON: u32 = 1u32; +pub const LVIR_LABEL: u32 = 2u32; +pub const LVIR_SELECTBOUNDS: u32 = 3u32; +pub const LVIS_ACTIVATING: LIST_VIEW_ITEM_STATE_FLAGS = 32u32; +pub const LVIS_CUT: LIST_VIEW_ITEM_STATE_FLAGS = 4u32; +pub const LVIS_DROPHILITED: LIST_VIEW_ITEM_STATE_FLAGS = 8u32; +pub const LVIS_FOCUSED: LIST_VIEW_ITEM_STATE_FLAGS = 1u32; +pub const LVIS_GLOW: LIST_VIEW_ITEM_STATE_FLAGS = 16u32; +pub const LVIS_OVERLAYMASK: LIST_VIEW_ITEM_STATE_FLAGS = 3840u32; +pub const LVIS_SELECTED: LIST_VIEW_ITEM_STATE_FLAGS = 2u32; +pub const LVIS_STATEIMAGEMASK: LIST_VIEW_ITEM_STATE_FLAGS = 61440u32; +pub const LVKF_ALT: u32 = 1u32; +pub const LVKF_CONTROL: u32 = 2u32; +pub const LVKF_SHIFT: u32 = 4u32; +pub const LVM_APPROXIMATEVIEWRECT: u32 = 4160u32; +pub const LVM_ARRANGE: u32 = 4118u32; +pub const LVM_CANCELEDITLABEL: u32 = 4275u32; +pub const LVM_CREATEDRAGIMAGE: u32 = 4129u32; +pub const LVM_DELETEALLITEMS: u32 = 4105u32; +pub const LVM_DELETECOLUMN: u32 = 4124u32; +pub const LVM_DELETEITEM: u32 = 4104u32; +pub const LVM_EDITLABEL: u32 = 4214u32; +pub const LVM_EDITLABELA: u32 = 4119u32; +pub const LVM_EDITLABELW: u32 = 4214u32; +pub const LVM_ENABLEGROUPVIEW: u32 = 4253u32; +pub const LVM_ENSUREVISIBLE: u32 = 4115u32; +pub const LVM_FINDITEM: u32 = 4179u32; +pub const LVM_FINDITEMA: u32 = 4109u32; +pub const LVM_FINDITEMW: u32 = 4179u32; +pub const LVM_FIRST: u32 = 4096u32; +pub const LVM_GETBKCOLOR: u32 = 4096u32; +pub const LVM_GETBKIMAGE: u32 = 4235u32; +pub const LVM_GETBKIMAGEA: u32 = 4165u32; +pub const LVM_GETBKIMAGEW: u32 = 4235u32; +pub const LVM_GETCALLBACKMASK: u32 = 4106u32; +pub const LVM_GETCOLUMN: u32 = 4191u32; +pub const LVM_GETCOLUMNA: u32 = 4121u32; +pub const LVM_GETCOLUMNORDERARRAY: u32 = 4155u32; +pub const LVM_GETCOLUMNW: u32 = 4191u32; +pub const LVM_GETCOLUMNWIDTH: u32 = 4125u32; +pub const LVM_GETCOUNTPERPAGE: u32 = 4136u32; +pub const LVM_GETEDITCONTROL: u32 = 4120u32; +pub const LVM_GETEMPTYTEXT: u32 = 4300u32; +pub const LVM_GETEXTENDEDLISTVIEWSTYLE: u32 = 4151u32; +pub const LVM_GETFOCUSEDGROUP: u32 = 4189u32; +pub const LVM_GETFOOTERINFO: u32 = 4302u32; +pub const LVM_GETFOOTERITEM: u32 = 4304u32; +pub const LVM_GETFOOTERITEMRECT: u32 = 4303u32; +pub const LVM_GETFOOTERRECT: u32 = 4301u32; +pub const LVM_GETGROUPCOUNT: u32 = 4248u32; +pub const LVM_GETGROUPINFO: u32 = 4245u32; +pub const LVM_GETGROUPINFOBYINDEX: u32 = 4249u32; +pub const LVM_GETGROUPMETRICS: u32 = 4252u32; +pub const LVM_GETGROUPRECT: u32 = 4194u32; +pub const LVM_GETGROUPSTATE: u32 = 4188u32; +pub const LVM_GETHEADER: u32 = 4127u32; +pub const LVM_GETHOTCURSOR: u32 = 4159u32; +pub const LVM_GETHOTITEM: u32 = 4157u32; +pub const LVM_GETHOVERTIME: u32 = 4168u32; +pub const LVM_GETIMAGELIST: u32 = 4098u32; +pub const LVM_GETINSERTMARK: u32 = 4263u32; +pub const LVM_GETINSERTMARKCOLOR: u32 = 4267u32; +pub const LVM_GETINSERTMARKRECT: u32 = 4265u32; +pub const LVM_GETISEARCHSTRING: u32 = 4213u32; +pub const LVM_GETISEARCHSTRINGA: u32 = 4148u32; +pub const LVM_GETISEARCHSTRINGW: u32 = 4213u32; +pub const LVM_GETITEM: u32 = 4171u32; +pub const LVM_GETITEMA: u32 = 4101u32; +pub const LVM_GETITEMCOUNT: u32 = 4100u32; +pub const LVM_GETITEMINDEXRECT: u32 = 4305u32; +pub const LVM_GETITEMPOSITION: u32 = 4112u32; +pub const LVM_GETITEMRECT: u32 = 4110u32; +pub const LVM_GETITEMSPACING: u32 = 4147u32; +pub const LVM_GETITEMSTATE: u32 = 4140u32; +pub const LVM_GETITEMTEXT: u32 = 4211u32; +pub const LVM_GETITEMTEXTA: u32 = 4141u32; +pub const LVM_GETITEMTEXTW: u32 = 4211u32; +pub const LVM_GETITEMW: u32 = 4171u32; +pub const LVM_GETNEXTITEM: u32 = 4108u32; +pub const LVM_GETNEXTITEMINDEX: u32 = 4307u32; +pub const LVM_GETNUMBEROFWORKAREAS: u32 = 4169u32; +pub const LVM_GETORIGIN: u32 = 4137u32; +pub const LVM_GETOUTLINECOLOR: u32 = 4272u32; +pub const LVM_GETSELECTEDCOLUMN: u32 = 4270u32; +pub const LVM_GETSELECTEDCOUNT: u32 = 4146u32; +pub const LVM_GETSELECTIONMARK: u32 = 4162u32; +pub const LVM_GETSTRINGWIDTH: u32 = 4183u32; +pub const LVM_GETSTRINGWIDTHA: u32 = 4113u32; +pub const LVM_GETSTRINGWIDTHW: u32 = 4183u32; +pub const LVM_GETSUBITEMRECT: u32 = 4152u32; +pub const LVM_GETTEXTBKCOLOR: u32 = 4133u32; +pub const LVM_GETTEXTCOLOR: u32 = 4131u32; +pub const LVM_GETTILEINFO: u32 = 4261u32; +pub const LVM_GETTILEVIEWINFO: u32 = 4259u32; +pub const LVM_GETTOOLTIPS: u32 = 4174u32; +pub const LVM_GETTOPINDEX: u32 = 4135u32; +pub const LVM_GETUNICODEFORMAT: u32 = 8198u32; +pub const LVM_GETVIEW: u32 = 4239u32; +pub const LVM_GETVIEWRECT: u32 = 4130u32; +pub const LVM_GETWORKAREAS: u32 = 4166u32; +pub const LVM_HASGROUP: u32 = 4257u32; +pub const LVM_HITTEST: u32 = 4114u32; +pub const LVM_INSERTCOLUMN: u32 = 4193u32; +pub const LVM_INSERTCOLUMNA: u32 = 4123u32; +pub const LVM_INSERTCOLUMNW: u32 = 4193u32; +pub const LVM_INSERTGROUP: u32 = 4241u32; +pub const LVM_INSERTGROUPSORTED: u32 = 4255u32; +pub const LVM_INSERTITEM: u32 = 4173u32; +pub const LVM_INSERTITEMA: u32 = 4103u32; +pub const LVM_INSERTITEMW: u32 = 4173u32; +pub const LVM_INSERTMARKHITTEST: u32 = 4264u32; +pub const LVM_ISGROUPVIEWENABLED: u32 = 4271u32; +pub const LVM_ISITEMVISIBLE: u32 = 4278u32; +pub const LVM_MAPIDTOINDEX: u32 = 4277u32; +pub const LVM_MAPINDEXTOID: u32 = 4276u32; +pub const LVM_MOVEGROUP: u32 = 4247u32; +pub const LVM_MOVEITEMTOGROUP: u32 = 4250u32; +pub const LVM_REDRAWITEMS: u32 = 4117u32; +pub const LVM_REMOVEALLGROUPS: u32 = 4256u32; +pub const LVM_REMOVEGROUP: u32 = 4246u32; +pub const LVM_SCROLL: u32 = 4116u32; +pub const LVM_SETBKCOLOR: u32 = 4097u32; +pub const LVM_SETBKIMAGE: u32 = 4234u32; +pub const LVM_SETBKIMAGEA: u32 = 4164u32; +pub const LVM_SETBKIMAGEW: u32 = 4234u32; +pub const LVM_SETCALLBACKMASK: u32 = 4107u32; +pub const LVM_SETCOLUMN: u32 = 4192u32; +pub const LVM_SETCOLUMNA: u32 = 4122u32; +pub const LVM_SETCOLUMNORDERARRAY: u32 = 4154u32; +pub const LVM_SETCOLUMNW: u32 = 4192u32; +pub const LVM_SETCOLUMNWIDTH: u32 = 4126u32; +pub const LVM_SETEXTENDEDLISTVIEWSTYLE: u32 = 4150u32; +pub const LVM_SETGROUPINFO: u32 = 4243u32; +pub const LVM_SETGROUPMETRICS: u32 = 4251u32; +pub const LVM_SETHOTCURSOR: u32 = 4158u32; +pub const LVM_SETHOTITEM: u32 = 4156u32; +pub const LVM_SETHOVERTIME: u32 = 4167u32; +pub const LVM_SETICONSPACING: u32 = 4149u32; +pub const LVM_SETIMAGELIST: u32 = 4099u32; +pub const LVM_SETINFOTIP: u32 = 4269u32; +pub const LVM_SETINSERTMARK: u32 = 4262u32; +pub const LVM_SETINSERTMARKCOLOR: u32 = 4266u32; +pub const LVM_SETITEM: u32 = 4172u32; +pub const LVM_SETITEMA: u32 = 4102u32; +pub const LVM_SETITEMCOUNT: u32 = 4143u32; +pub const LVM_SETITEMINDEXSTATE: u32 = 4306u32; +pub const LVM_SETITEMPOSITION: u32 = 4111u32; +pub const LVM_SETITEMPOSITION32: u32 = 4145u32; +pub const LVM_SETITEMSTATE: u32 = 4139u32; +pub const LVM_SETITEMTEXT: u32 = 4212u32; +pub const LVM_SETITEMTEXTA: u32 = 4142u32; +pub const LVM_SETITEMTEXTW: u32 = 4212u32; +pub const LVM_SETITEMW: u32 = 4172u32; +pub const LVM_SETOUTLINECOLOR: u32 = 4273u32; +pub const LVM_SETSELECTEDCOLUMN: u32 = 4236u32; +pub const LVM_SETSELECTIONMARK: u32 = 4163u32; +pub const LVM_SETTEXTBKCOLOR: u32 = 4134u32; +pub const LVM_SETTEXTCOLOR: u32 = 4132u32; +pub const LVM_SETTILEINFO: u32 = 4260u32; +pub const LVM_SETTILEVIEWINFO: u32 = 4258u32; +pub const LVM_SETTOOLTIPS: u32 = 4170u32; +pub const LVM_SETUNICODEFORMAT: u32 = 8197u32; +pub const LVM_SETVIEW: u32 = 4238u32; +pub const LVM_SETWORKAREAS: u32 = 4161u32; +pub const LVM_SORTGROUPS: u32 = 4254u32; +pub const LVM_SORTITEMS: u32 = 4144u32; +pub const LVM_SORTITEMSEX: u32 = 4177u32; +pub const LVM_SUBITEMHITTEST: u32 = 4153u32; +pub const LVM_UPDATE: u32 = 4138u32; +pub const LVNI_ABOVE: u32 = 256u32; +pub const LVNI_ALL: u32 = 0u32; +pub const LVNI_BELOW: u32 = 512u32; +pub const LVNI_CUT: u32 = 4u32; +pub const LVNI_DROPHILITED: u32 = 8u32; +pub const LVNI_FOCUSED: u32 = 1u32; +pub const LVNI_PREVIOUS: u32 = 32u32; +pub const LVNI_SAMEGROUPONLY: u32 = 128u32; +pub const LVNI_SELECTED: u32 = 2u32; +pub const LVNI_TOLEFT: u32 = 1024u32; +pub const LVNI_TORIGHT: u32 = 2048u32; +pub const LVNI_VISIBLEONLY: u32 = 64u32; +pub const LVNI_VISIBLEORDER: u32 = 16u32; +pub const LVNSCH_DEFAULT: i32 = -1i32; +pub const LVNSCH_ERROR: i32 = -2i32; +pub const LVNSCH_IGNORE: i32 = -3i32; +pub const LVN_BEGINDRAG: u32 = 4294967187u32; +pub const LVN_BEGINLABELEDIT: u32 = 4294967121u32; +pub const LVN_BEGINLABELEDITA: u32 = 4294967191u32; +pub const LVN_BEGINLABELEDITW: u32 = 4294967121u32; +pub const LVN_BEGINRDRAG: u32 = 4294967185u32; +pub const LVN_BEGINSCROLL: u32 = 4294967116u32; +pub const LVN_COLUMNCLICK: u32 = 4294967188u32; +pub const LVN_COLUMNDROPDOWN: u32 = 4294967132u32; +pub const LVN_COLUMNOVERFLOWCLICK: u32 = 4294967130u32; +pub const LVN_DELETEALLITEMS: u32 = 4294967192u32; +pub const LVN_DELETEITEM: u32 = 4294967193u32; +pub const LVN_ENDLABELEDIT: u32 = 4294967120u32; +pub const LVN_ENDLABELEDITA: u32 = 4294967190u32; +pub const LVN_ENDLABELEDITW: u32 = 4294967120u32; +pub const LVN_ENDSCROLL: u32 = 4294967115u32; +pub const LVN_FIRST: u32 = 4294967196u32; +pub const LVN_GETDISPINFO: u32 = 4294967119u32; +pub const LVN_GETDISPINFOA: u32 = 4294967146u32; +pub const LVN_GETDISPINFOW: u32 = 4294967119u32; +pub const LVN_GETEMPTYMARKUP: u32 = 4294967109u32; +pub const LVN_GETINFOTIP: u32 = 4294967138u32; +pub const LVN_GETINFOTIPA: u32 = 4294967139u32; +pub const LVN_GETINFOTIPW: u32 = 4294967138u32; +pub const LVN_HOTTRACK: u32 = 4294967175u32; +pub const LVN_INCREMENTALSEARCH: u32 = 4294967133u32; +pub const LVN_INCREMENTALSEARCHA: u32 = 4294967134u32; +pub const LVN_INCREMENTALSEARCHW: u32 = 4294967133u32; +pub const LVN_INSERTITEM: u32 = 4294967194u32; +pub const LVN_ITEMACTIVATE: u32 = 4294967182u32; +pub const LVN_ITEMCHANGED: u32 = 4294967195u32; +pub const LVN_ITEMCHANGING: u32 = 4294967196u32; +pub const LVN_KEYDOWN: u32 = 4294967141u32; +pub const LVN_LAST: u32 = 4294967097u32; +pub const LVN_LINKCLICK: u32 = 4294967112u32; +pub const LVN_MARQUEEBEGIN: u32 = 4294967140u32; +pub const LVN_ODCACHEHINT: u32 = 4294967183u32; +pub const LVN_ODFINDITEM: u32 = 4294967117u32; +pub const LVN_ODFINDITEMA: u32 = 4294967144u32; +pub const LVN_ODFINDITEMW: u32 = 4294967117u32; +pub const LVN_ODSTATECHANGED: u32 = 4294967181u32; +pub const LVN_SETDISPINFO: u32 = 4294967118u32; +pub const LVN_SETDISPINFOA: u32 = 4294967145u32; +pub const LVN_SETDISPINFOW: u32 = 4294967118u32; +pub const LVP_COLLAPSEBUTTON: LISTVIEWPARTS = 9i32; +pub const LVP_COLUMNDETAIL: LISTVIEWPARTS = 10i32; +pub const LVP_EMPTYTEXT: LISTVIEWPARTS = 5i32; +pub const LVP_EXPANDBUTTON: LISTVIEWPARTS = 8i32; +pub const LVP_GROUPHEADER: LISTVIEWPARTS = 6i32; +pub const LVP_GROUPHEADERLINE: LISTVIEWPARTS = 7i32; +pub const LVP_LISTDETAIL: LISTVIEWPARTS = 3i32; +pub const LVP_LISTGROUP: LISTVIEWPARTS = 2i32; +pub const LVP_LISTITEM: LISTVIEWPARTS = 1i32; +pub const LVP_LISTSORTEDDETAIL: LISTVIEWPARTS = 4i32; +pub const LVSCW_AUTOSIZE: i32 = -1i32; +pub const LVSCW_AUTOSIZE_USEHEADER: i32 = -2i32; +pub const LVSICF_NOINVALIDATEALL: u32 = 1u32; +pub const LVSICF_NOSCROLL: u32 = 2u32; +pub const LVSIL_GROUPHEADER: u32 = 3u32; +pub const LVSIL_NORMAL: u32 = 0u32; +pub const LVSIL_SMALL: u32 = 1u32; +pub const LVSIL_STATE: u32 = 2u32; +pub const LVS_ALIGNLEFT: u32 = 2048u32; +pub const LVS_ALIGNMASK: u32 = 3072u32; +pub const LVS_ALIGNTOP: u32 = 0u32; +pub const LVS_AUTOARRANGE: u32 = 256u32; +pub const LVS_EDITLABELS: u32 = 512u32; +pub const LVS_EX_AUTOAUTOARRANGE: u32 = 16777216u32; +pub const LVS_EX_AUTOCHECKSELECT: u32 = 134217728u32; +pub const LVS_EX_AUTOSIZECOLUMNS: u32 = 268435456u32; +pub const LVS_EX_BORDERSELECT: u32 = 32768u32; +pub const LVS_EX_CHECKBOXES: u32 = 4u32; +pub const LVS_EX_COLUMNOVERFLOW: u32 = 2147483648u32; +pub const LVS_EX_COLUMNSNAPPOINTS: u32 = 1073741824u32; +pub const LVS_EX_DOUBLEBUFFER: u32 = 65536u32; +pub const LVS_EX_FLATSB: u32 = 256u32; +pub const LVS_EX_FULLROWSELECT: u32 = 32u32; +pub const LVS_EX_GRIDLINES: u32 = 1u32; +pub const LVS_EX_HEADERDRAGDROP: u32 = 16u32; +pub const LVS_EX_HEADERINALLVIEWS: u32 = 33554432u32; +pub const LVS_EX_HIDELABELS: u32 = 131072u32; +pub const LVS_EX_INFOTIP: u32 = 1024u32; +pub const LVS_EX_JUSTIFYCOLUMNS: u32 = 2097152u32; +pub const LVS_EX_LABELTIP: u32 = 16384u32; +pub const LVS_EX_MULTIWORKAREAS: u32 = 8192u32; +pub const LVS_EX_ONECLICKACTIVATE: u32 = 64u32; +pub const LVS_EX_REGIONAL: u32 = 512u32; +pub const LVS_EX_SIMPLESELECT: u32 = 1048576u32; +pub const LVS_EX_SINGLEROW: u32 = 262144u32; +pub const LVS_EX_SNAPTOGRID: u32 = 524288u32; +pub const LVS_EX_SUBITEMIMAGES: u32 = 2u32; +pub const LVS_EX_TRACKSELECT: u32 = 8u32; +pub const LVS_EX_TRANSPARENTBKGND: u32 = 4194304u32; +pub const LVS_EX_TRANSPARENTSHADOWTEXT: u32 = 8388608u32; +pub const LVS_EX_TWOCLICKACTIVATE: u32 = 128u32; +pub const LVS_EX_UNDERLINECOLD: u32 = 4096u32; +pub const LVS_EX_UNDERLINEHOT: u32 = 2048u32; +pub const LVS_ICON: u32 = 0u32; +pub const LVS_LIST: u32 = 3u32; +pub const LVS_NOCOLUMNHEADER: u32 = 16384u32; +pub const LVS_NOLABELWRAP: u32 = 128u32; +pub const LVS_NOSCROLL: u32 = 8192u32; +pub const LVS_NOSORTHEADER: u32 = 32768u32; +pub const LVS_OWNERDATA: u32 = 4096u32; +pub const LVS_OWNERDRAWFIXED: u32 = 1024u32; +pub const LVS_REPORT: u32 = 1u32; +pub const LVS_SHAREIMAGELISTS: u32 = 64u32; +pub const LVS_SHOWSELALWAYS: u32 = 8u32; +pub const LVS_SINGLESEL: u32 = 4u32; +pub const LVS_SMALLICON: u32 = 2u32; +pub const LVS_SORTASCENDING: u32 = 16u32; +pub const LVS_SORTDESCENDING: u32 = 32u32; +pub const LVS_TYPEMASK: u32 = 3u32; +pub const LVS_TYPESTYLEMASK: u32 = 64512u32; +pub const LVTVIF_AUTOSIZE: LVTILEVIEWINFO_FLAGS = 0u32; +pub const LVTVIF_EXTENDED: u32 = 4u32; +pub const LVTVIF_FIXEDHEIGHT: LVTILEVIEWINFO_FLAGS = 2u32; +pub const LVTVIF_FIXEDSIZE: LVTILEVIEWINFO_FLAGS = 3u32; +pub const LVTVIF_FIXEDWIDTH: LVTILEVIEWINFO_FLAGS = 1u32; +pub const LVTVIM_COLUMNS: LVTILEVIEWINFO_MASK = 2u32; +pub const LVTVIM_LABELMARGIN: LVTILEVIEWINFO_MASK = 4u32; +pub const LVTVIM_TILESIZE: LVTILEVIEWINFO_MASK = 1u32; +pub const LV_MAX_WORKAREAS: u32 = 16u32; +pub const LV_VIEW_DETAILS: u32 = 1u32; +pub const LV_VIEW_ICON: u32 = 0u32; +pub const LV_VIEW_LIST: u32 = 3u32; +pub const LV_VIEW_MAX: u32 = 4u32; +pub const LV_VIEW_SMALLICON: u32 = 2u32; +pub const LV_VIEW_TILE: u32 = 4u32; +pub const LWS_IGNORERETURN: u32 = 2u32; +pub const LWS_NOPREFIX: u32 = 4u32; +pub const LWS_RIGHT: u32 = 32u32; +pub const LWS_TRANSPARENT: u32 = 1u32; +pub const LWS_USECUSTOMTEXT: u32 = 16u32; +pub const LWS_USEVISUALSTYLE: u32 = 8u32; +pub const MAXBS_DISABLED: MAXBUTTONSTATES = 4i32; +pub const MAXBS_HOT: MAXBUTTONSTATES = 2i32; +pub const MAXBS_NORMAL: MAXBUTTONSTATES = 1i32; +pub const MAXBS_PUSHED: MAXBUTTONSTATES = 3i32; +pub const MAXPROPPAGES: u32 = 100u32; +pub const MAX_INTLIST_COUNT: u32 = 402u32; +pub const MAX_LINKID_TEXT: u32 = 48u32; +pub const MAX_THEMECOLOR: u32 = 64u32; +pub const MAX_THEMESIZE: u32 = 64u32; +pub const MBI_DISABLED: BARITEMSTATES = 4i32; +pub const MBI_DISABLEDHOT: BARITEMSTATES = 5i32; +pub const MBI_DISABLEDPUSHED: BARITEMSTATES = 6i32; +pub const MBI_HOT: BARITEMSTATES = 2i32; +pub const MBI_NORMAL: BARITEMSTATES = 1i32; +pub const MBI_PUSHED: BARITEMSTATES = 3i32; +pub const MB_ACTIVE: BARBACKGROUNDSTATES = 1i32; +pub const MB_INACTIVE: BARBACKGROUNDSTATES = 2i32; +pub const MCB_BITMAP: POPUPCHECKBACKGROUNDSTATES = 3i32; +pub const MCB_DISABLED: POPUPCHECKBACKGROUNDSTATES = 1i32; +pub const MCB_NORMAL: POPUPCHECKBACKGROUNDSTATES = 2i32; +pub const MCGCB_HOT: GRIDCELLBACKGROUNDSTATES = 2i32; +pub const MCGCB_SELECTED: GRIDCELLBACKGROUNDSTATES = 1i32; +pub const MCGCB_SELECTEDHOT: GRIDCELLBACKGROUNDSTATES = 3i32; +pub const MCGCB_SELECTEDNOTFOCUSED: GRIDCELLBACKGROUNDSTATES = 4i32; +pub const MCGCB_TODAY: GRIDCELLBACKGROUNDSTATES = 5i32; +pub const MCGCB_TODAYSELECTED: GRIDCELLBACKGROUNDSTATES = 6i32; +pub const MCGCU_HASSTATE: GRIDCELLUPPERSTATES = 2i32; +pub const MCGCU_HASSTATEHOT: GRIDCELLUPPERSTATES = 3i32; +pub const MCGCU_HOT: GRIDCELLUPPERSTATES = 1i32; +pub const MCGCU_SELECTED: GRIDCELLUPPERSTATES = 4i32; +pub const MCGCU_SELECTEDHOT: GRIDCELLUPPERSTATES = 5i32; +pub const MCGC_HASSTATE: GRIDCELLSTATES = 2i32; +pub const MCGC_HASSTATEHOT: GRIDCELLSTATES = 3i32; +pub const MCGC_HOT: GRIDCELLSTATES = 1i32; +pub const MCGC_SELECTED: GRIDCELLSTATES = 6i32; +pub const MCGC_SELECTEDHOT: GRIDCELLSTATES = 7i32; +pub const MCGC_TODAY: GRIDCELLSTATES = 4i32; +pub const MCGC_TODAYSELECTED: GRIDCELLSTATES = 5i32; +pub const MCGIF_DATE: MCGRIDINFO_FLAGS = 1u32; +pub const MCGIF_NAME: MCGRIDINFO_FLAGS = 4u32; +pub const MCGIF_RECT: MCGRIDINFO_FLAGS = 2u32; +pub const MCGIP_CALENDAR: MCGRIDINFO_PART = 4u32; +pub const MCGIP_CALENDARBODY: MCGRIDINFO_PART = 6u32; +pub const MCGIP_CALENDARCELL: MCGRIDINFO_PART = 8u32; +pub const MCGIP_CALENDARCONTROL: MCGRIDINFO_PART = 0u32; +pub const MCGIP_CALENDARHEADER: MCGRIDINFO_PART = 5u32; +pub const MCGIP_CALENDARROW: MCGRIDINFO_PART = 7u32; +pub const MCGIP_FOOTER: MCGRIDINFO_PART = 3u32; +pub const MCGIP_NEXT: MCGRIDINFO_PART = 1u32; +pub const MCGIP_PREV: MCGRIDINFO_PART = 2u32; +pub const MCHT_CALENDAR: MCHITTESTINFO_HIT_FLAGS = 131072u32; +pub const MCHT_CALENDARBK: MCHITTESTINFO_HIT_FLAGS = 131072u32; +pub const MCHT_CALENDARCONTROL: MCHITTESTINFO_HIT_FLAGS = 1048576u32; +pub const MCHT_CALENDARDATE: MCHITTESTINFO_HIT_FLAGS = 131073u32; +pub const MCHT_CALENDARDATEMAX: MCHITTESTINFO_HIT_FLAGS = 131077u32; +pub const MCHT_CALENDARDATEMIN: MCHITTESTINFO_HIT_FLAGS = 131076u32; +pub const MCHT_CALENDARDATENEXT: MCHITTESTINFO_HIT_FLAGS = 16908289u32; +pub const MCHT_CALENDARDATEPREV: MCHITTESTINFO_HIT_FLAGS = 33685505u32; +pub const MCHT_CALENDARDAY: MCHITTESTINFO_HIT_FLAGS = 131074u32; +pub const MCHT_CALENDARWEEKNUM: MCHITTESTINFO_HIT_FLAGS = 131075u32; +pub const MCHT_NEXT: MCHITTESTINFO_HIT_FLAGS = 16777216u32; +pub const MCHT_NOWHERE: MCHITTESTINFO_HIT_FLAGS = 0u32; +pub const MCHT_PREV: MCHITTESTINFO_HIT_FLAGS = 33554432u32; +pub const MCHT_TITLE: MCHITTESTINFO_HIT_FLAGS = 65536u32; +pub const MCHT_TITLEBK: MCHITTESTINFO_HIT_FLAGS = 65536u32; +pub const MCHT_TITLEBTNNEXT: MCHITTESTINFO_HIT_FLAGS = 16842755u32; +pub const MCHT_TITLEBTNPREV: MCHITTESTINFO_HIT_FLAGS = 33619971u32; +pub const MCHT_TITLEMONTH: MCHITTESTINFO_HIT_FLAGS = 65537u32; +pub const MCHT_TITLEYEAR: MCHITTESTINFO_HIT_FLAGS = 65538u32; +pub const MCHT_TODAYLINK: MCHITTESTINFO_HIT_FLAGS = 196608u32; +pub const MCMV_CENTURY: MONTH_CALDENDAR_MESSAGES_VIEW = 3u32; +pub const MCMV_DECADE: MONTH_CALDENDAR_MESSAGES_VIEW = 2u32; +pub const MCMV_MAX: MONTH_CALDENDAR_MESSAGES_VIEW = 3u32; +pub const MCMV_MONTH: MONTH_CALDENDAR_MESSAGES_VIEW = 0u32; +pub const MCMV_YEAR: MONTH_CALDENDAR_MESSAGES_VIEW = 1u32; +pub const MCM_FIRST: u32 = 4096u32; +pub const MCM_GETCALENDARBORDER: u32 = 4127u32; +pub const MCM_GETCALENDARCOUNT: u32 = 4119u32; +pub const MCM_GETCALENDARGRIDINFO: u32 = 4120u32; +pub const MCM_GETCALID: u32 = 4123u32; +pub const MCM_GETCOLOR: u32 = 4107u32; +pub const MCM_GETCURRENTVIEW: u32 = 4118u32; +pub const MCM_GETCURSEL: u32 = 4097u32; +pub const MCM_GETFIRSTDAYOFWEEK: u32 = 4112u32; +pub const MCM_GETMAXSELCOUNT: u32 = 4099u32; +pub const MCM_GETMAXTODAYWIDTH: u32 = 4117u32; +pub const MCM_GETMINREQRECT: u32 = 4105u32; +pub const MCM_GETMONTHDELTA: u32 = 4115u32; +pub const MCM_GETMONTHRANGE: u32 = 4103u32; +pub const MCM_GETRANGE: u32 = 4113u32; +pub const MCM_GETSELRANGE: u32 = 4101u32; +pub const MCM_GETTODAY: u32 = 4109u32; +pub const MCM_GETUNICODEFORMAT: u32 = 8198u32; +pub const MCM_HITTEST: u32 = 4110u32; +pub const MCM_SETCALENDARBORDER: u32 = 4126u32; +pub const MCM_SETCALID: u32 = 4124u32; +pub const MCM_SETCOLOR: u32 = 4106u32; +pub const MCM_SETCURRENTVIEW: u32 = 4128u32; +pub const MCM_SETCURSEL: u32 = 4098u32; +pub const MCM_SETDAYSTATE: u32 = 4104u32; +pub const MCM_SETFIRSTDAYOFWEEK: u32 = 4111u32; +pub const MCM_SETMAXSELCOUNT: u32 = 4100u32; +pub const MCM_SETMONTHDELTA: u32 = 4116u32; +pub const MCM_SETRANGE: u32 = 4114u32; +pub const MCM_SETSELRANGE: u32 = 4102u32; +pub const MCM_SETTODAY: u32 = 4108u32; +pub const MCM_SETUNICODEFORMAT: u32 = 8197u32; +pub const MCM_SIZERECTTOMIN: u32 = 4125u32; +pub const MCNN_DISABLED: NAVNEXTSTATES = 4i32; +pub const MCNN_HOT: NAVNEXTSTATES = 2i32; +pub const MCNN_NORMAL: NAVNEXTSTATES = 1i32; +pub const MCNN_PRESSED: NAVNEXTSTATES = 3i32; +pub const MCNP_DISABLED: NAVPREVSTATES = 4i32; +pub const MCNP_HOT: NAVPREVSTATES = 2i32; +pub const MCNP_NORMAL: NAVPREVSTATES = 1i32; +pub const MCNP_PRESSED: NAVPREVSTATES = 3i32; +pub const MCN_FIRST: u32 = 4294966550u32; +pub const MCN_GETDAYSTATE: u32 = 4294966549u32; +pub const MCN_LAST: u32 = 4294966544u32; +pub const MCN_SELCHANGE: u32 = 4294966547u32; +pub const MCN_SELECT: u32 = 4294966550u32; +pub const MCN_VIEWCHANGE: u32 = 4294966546u32; +pub const MCSC_BACKGROUND: u32 = 0u32; +pub const MCSC_MONTHBK: u32 = 4u32; +pub const MCSC_TEXT: u32 = 1u32; +pub const MCSC_TITLEBK: u32 = 2u32; +pub const MCSC_TITLETEXT: u32 = 3u32; +pub const MCSC_TRAILINGTEXT: u32 = 5u32; +pub const MCS_DAYSTATE: u32 = 1u32; +pub const MCS_MULTISELECT: u32 = 2u32; +pub const MCS_NOSELCHANGEONNAV: u32 = 256u32; +pub const MCS_NOTODAY: u32 = 16u32; +pub const MCS_NOTODAYCIRCLE: u32 = 8u32; +pub const MCS_NOTRAILINGDATES: u32 = 64u32; +pub const MCS_SHORTDAYSOFWEEK: u32 = 128u32; +pub const MCS_WEEKNUMBERS: u32 = 4u32; +pub const MCTGCU_HASSTATE: TRAILINGGRIDCELLUPPERSTATES = 2i32; +pub const MCTGCU_HASSTATEHOT: TRAILINGGRIDCELLUPPERSTATES = 3i32; +pub const MCTGCU_HOT: TRAILINGGRIDCELLUPPERSTATES = 1i32; +pub const MCTGCU_SELECTED: TRAILINGGRIDCELLUPPERSTATES = 4i32; +pub const MCTGCU_SELECTEDHOT: TRAILINGGRIDCELLUPPERSTATES = 5i32; +pub const MCTGC_HASSTATE: TRAILINGGRIDCELLSTATES = 2i32; +pub const MCTGC_HASSTATEHOT: TRAILINGGRIDCELLSTATES = 3i32; +pub const MCTGC_HOT: TRAILINGGRIDCELLSTATES = 1i32; +pub const MCTGC_SELECTED: TRAILINGGRIDCELLSTATES = 6i32; +pub const MCTGC_SELECTEDHOT: TRAILINGGRIDCELLSTATES = 7i32; +pub const MCTGC_TODAY: TRAILINGGRIDCELLSTATES = 4i32; +pub const MCTGC_TODAYSELECTED: TRAILINGGRIDCELLSTATES = 5i32; +pub const MC_BACKGROUND: MONTHCALPARTS = 1i32; +pub const MC_BORDERS: MONTHCALPARTS = 2i32; +pub const MC_BULLETDISABLED: POPUPCHECKSTATES = 4i32; +pub const MC_BULLETNORMAL: POPUPCHECKSTATES = 3i32; +pub const MC_CHECKMARKDISABLED: POPUPCHECKSTATES = 2i32; +pub const MC_CHECKMARKNORMAL: POPUPCHECKSTATES = 1i32; +pub const MC_COLHEADERSPLITTER: MONTHCALPARTS = 4i32; +pub const MC_GRIDBACKGROUND: MONTHCALPARTS = 3i32; +pub const MC_GRIDCELL: MONTHCALPARTS = 6i32; +pub const MC_GRIDCELLBACKGROUND: MONTHCALPARTS = 5i32; +pub const MC_GRIDCELLUPPER: MONTHCALPARTS = 7i32; +pub const MC_NAVNEXT: MONTHCALPARTS = 10i32; +pub const MC_NAVPREV: MONTHCALPARTS = 11i32; +pub const MC_TRAILINGGRIDCELL: MONTHCALPARTS = 8i32; +pub const MC_TRAILINGGRIDCELLUPPER: MONTHCALPARTS = 9i32; +pub const MDCL_DISABLED: MDICLOSEBUTTONSTATES = 4i32; +pub const MDCL_HOT: MDICLOSEBUTTONSTATES = 2i32; +pub const MDCL_NORMAL: MDICLOSEBUTTONSTATES = 1i32; +pub const MDCL_PUSHED: MDICLOSEBUTTONSTATES = 3i32; +pub const MDMI_DISABLED: MDIMINBUTTONSTATES = 4i32; +pub const MDMI_HOT: MDIMINBUTTONSTATES = 2i32; +pub const MDMI_NORMAL: MDIMINBUTTONSTATES = 1i32; +pub const MDMI_PUSHED: MDIMINBUTTONSTATES = 3i32; +pub const MDP_NEWAPPBUTTON: MENUBANDPARTS = 1i32; +pub const MDP_SEPERATOR: MENUBANDPARTS = 2i32; +pub const MDRE_DISABLED: MDIRESTOREBUTTONSTATES = 4i32; +pub const MDRE_HOT: MDIRESTOREBUTTONSTATES = 2i32; +pub const MDRE_NORMAL: MDIRESTOREBUTTONSTATES = 1i32; +pub const MDRE_PUSHED: MDIRESTOREBUTTONSTATES = 3i32; +pub const MDS_CHECKED: MENUBANDSTATES = 5i32; +pub const MDS_DISABLED: MENUBANDSTATES = 4i32; +pub const MDS_HOT: MENUBANDSTATES = 2i32; +pub const MDS_HOTCHECKED: MENUBANDSTATES = 6i32; +pub const MDS_NORMAL: MENUBANDSTATES = 1i32; +pub const MDS_PRESSED: MENUBANDSTATES = 3i32; +pub const MENU_BARBACKGROUND: MENUPARTS = 7i32; +pub const MENU_BARITEM: MENUPARTS = 8i32; +pub const MENU_CHEVRON_TMSCHEMA: MENUPARTS = 5i32; +pub const MENU_MENUBARDROPDOWN_TMSCHEMA: MENUPARTS = 4i32; +pub const MENU_MENUBARITEM_TMSCHEMA: MENUPARTS = 3i32; +pub const MENU_MENUDROPDOWN_TMSCHEMA: MENUPARTS = 2i32; +pub const MENU_MENUITEM_TMSCHEMA: MENUPARTS = 1i32; +pub const MENU_POPUPBACKGROUND: MENUPARTS = 9i32; +pub const MENU_POPUPBORDERS: MENUPARTS = 10i32; +pub const MENU_POPUPCHECK: MENUPARTS = 11i32; +pub const MENU_POPUPCHECKBACKGROUND: MENUPARTS = 12i32; +pub const MENU_POPUPGUTTER: MENUPARTS = 13i32; +pub const MENU_POPUPITEM: MENUPARTS = 14i32; +pub const MENU_POPUPITEMKBFOCUS: MENUPARTS = 26i32; +pub const MENU_POPUPITEM_FOCUSABLE: MENUPARTS = 27i32; +pub const MENU_POPUPSEPARATOR: MENUPARTS = 15i32; +pub const MENU_POPUPSUBMENU: MENUPARTS = 16i32; +pub const MENU_POPUPSUBMENU_HCHOT: MENUPARTS = 21i32; +pub const MENU_SEPARATOR_TMSCHEMA: MENUPARTS = 6i32; +pub const MENU_SYSTEMCLOSE: MENUPARTS = 17i32; +pub const MENU_SYSTEMCLOSE_HCHOT: MENUPARTS = 22i32; +pub const MENU_SYSTEMMAXIMIZE: MENUPARTS = 18i32; +pub const MENU_SYSTEMMAXIMIZE_HCHOT: MENUPARTS = 23i32; +pub const MENU_SYSTEMMINIMIZE: MENUPARTS = 19i32; +pub const MENU_SYSTEMMINIMIZE_HCHOT: MENUPARTS = 24i32; +pub const MENU_SYSTEMRESTORE: MENUPARTS = 20i32; +pub const MENU_SYSTEMRESTORE_HCHOT: MENUPARTS = 25i32; +pub const MINBS_DISABLED: MINBUTTONSTATES = 4i32; +pub const MINBS_HOT: MINBUTTONSTATES = 2i32; +pub const MINBS_NORMAL: MINBUTTONSTATES = 1i32; +pub const MINBS_PUSHED: MINBUTTONSTATES = 3i32; +pub const MNCS_ACTIVE: MINCAPTIONSTATES = 1i32; +pub const MNCS_DISABLED: MINCAPTIONSTATES = 3i32; +pub const MNCS_INACTIVE: MINCAPTIONSTATES = 2i32; +pub const MONTHCAL_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysMonthCal32"); +pub const MONTHCAL_CLASSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SysMonthCal32"); +pub const MONTHCAL_CLASSW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysMonthCal32"); +pub const MPIF_DISABLED: POPUPITEMFOCUSABLESTATES = 3i32; +pub const MPIF_DISABLEDHOT: POPUPITEMFOCUSABLESTATES = 4i32; +pub const MPIF_HOT: POPUPITEMFOCUSABLESTATES = 2i32; +pub const MPIF_NORMAL: POPUPITEMFOCUSABLESTATES = 1i32; +pub const MPIKBFOCUS_NORMAL: POPUPITEMKBFOCUSSTATES = 1i32; +pub const MPI_DISABLED: POPUPITEMSTATES = 3i32; +pub const MPI_DISABLEDHOT: POPUPITEMSTATES = 4i32; +pub const MPI_HOT: POPUPITEMSTATES = 2i32; +pub const MPI_NORMAL: POPUPITEMSTATES = 1i32; +pub const MSGF_COMMCTRL_BEGINDRAG: u32 = 16896u32; +pub const MSGF_COMMCTRL_DRAGSELECT: u32 = 16898u32; +pub const MSGF_COMMCTRL_SIZEHEADER: u32 = 16897u32; +pub const MSGF_COMMCTRL_TOOLBARCUST: u32 = 16899u32; +pub const MSMHC_HOT: POPUPSUBMENUHCHOTSTATES = 1i32; +pub const MSM_DISABLED: POPUPSUBMENUSTATES = 2i32; +pub const MSM_NORMAL: POPUPSUBMENUSTATES = 1i32; +pub const MSYSCHC_HOT: SYSTEMCLOSEHCHOTSTATES = 1i32; +pub const MSYSC_DISABLED: SYSTEMCLOSESTATES = 2i32; +pub const MSYSC_NORMAL: SYSTEMCLOSESTATES = 1i32; +pub const MSYSMNHC_HOT: SYSTEMMINIMIZEHCHOTSTATES = 1i32; +pub const MSYSMN_DISABLED: SYSTEMMINIMIZESTATES = 2i32; +pub const MSYSMN_NORMAL: SYSTEMMINIMIZESTATES = 1i32; +pub const MSYSMXHC_HOT: SYSTEMMAXIMIZEHCHOTSTATES = 1i32; +pub const MSYSMX_DISABLED: SYSTEMMAXIMIZESTATES = 2i32; +pub const MSYSMX_NORMAL: SYSTEMMAXIMIZESTATES = 1i32; +pub const MSYSRHC_HOT: SYSTEMRESTOREHCHOTSTATES = 1i32; +pub const MSYSR_DISABLED: SYSTEMRESTORESTATES = 2i32; +pub const MSYSR_NORMAL: SYSTEMRESTORESTATES = 1i32; +pub const MULTIFILEOPENORD: u32 = 1537u32; +pub const MXCS_ACTIVE: MAXCAPTIONSTATES = 1i32; +pub const MXCS_DISABLED: MAXCAPTIONSTATES = 3i32; +pub const MXCS_INACTIVE: MAXCAPTIONSTATES = 2i32; +pub const NAV_BACKBUTTON: NAVIGATIONPARTS = 1i32; +pub const NAV_BB_DISABLED: NAV_BACKBUTTONSTATES = 4i32; +pub const NAV_BB_HOT: NAV_BACKBUTTONSTATES = 2i32; +pub const NAV_BB_NORMAL: NAV_BACKBUTTONSTATES = 1i32; +pub const NAV_BB_PRESSED: NAV_BACKBUTTONSTATES = 3i32; +pub const NAV_FB_DISABLED: NAV_FORWARDBUTTONSTATES = 4i32; +pub const NAV_FB_HOT: NAV_FORWARDBUTTONSTATES = 2i32; +pub const NAV_FB_NORMAL: NAV_FORWARDBUTTONSTATES = 1i32; +pub const NAV_FB_PRESSED: NAV_FORWARDBUTTONSTATES = 3i32; +pub const NAV_FORWARDBUTTON: NAVIGATIONPARTS = 2i32; +pub const NAV_MB_DISABLED: NAV_MENUBUTTONSTATES = 4i32; +pub const NAV_MB_HOT: NAV_MENUBUTTONSTATES = 2i32; +pub const NAV_MB_NORMAL: NAV_MENUBUTTONSTATES = 1i32; +pub const NAV_MB_PRESSED: NAV_MENUBUTTONSTATES = 3i32; +pub const NAV_MENUBUTTON: NAVIGATIONPARTS = 3i32; +pub const NEWFILEOPENORD: u32 = 1547u32; +pub const NEWFILEOPENV2ORD: u32 = 1552u32; +pub const NEWFILEOPENV3ORD: u32 = 1553u32; +pub const NEWFORMATDLGWITHLINK: u32 = 1591u32; +pub const NFS_ALL: u32 = 16u32; +pub const NFS_BUTTON: u32 = 8u32; +pub const NFS_EDIT: u32 = 1u32; +pub const NFS_LISTCOMBO: u32 = 4u32; +pub const NFS_STATIC: u32 = 2u32; +pub const NFS_USEFONTASSOC: u32 = 32u32; +pub const NM_CHAR: u32 = 4294967278u32; +pub const NM_CLICK: u32 = 4294967294u32; +pub const NM_CUSTOMDRAW: u32 = 4294967284u32; +pub const NM_CUSTOMTEXT: u32 = 4294967272u32; +pub const NM_DBLCLK: u32 = 4294967293u32; +pub const NM_FIRST: u32 = 0u32; +pub const NM_FONTCHANGED: u32 = 4294967273u32; +pub const NM_GETCUSTOMSPLITRECT: u32 = 4294966049u32; +pub const NM_HOVER: u32 = 4294967283u32; +pub const NM_KEYDOWN: u32 = 4294967281u32; +pub const NM_KILLFOCUS: u32 = 4294967288u32; +pub const NM_LAST: u32 = 4294967197u32; +pub const NM_LDOWN: u32 = 4294967276u32; +pub const NM_NCHITTEST: u32 = 4294967282u32; +pub const NM_OUTOFMEMORY: u32 = 4294967295u32; +pub const NM_RCLICK: u32 = 4294967291u32; +pub const NM_RDBLCLK: u32 = 4294967290u32; +pub const NM_RDOWN: u32 = 4294967275u32; +pub const NM_RELEASEDCAPTURE: u32 = 4294967280u32; +pub const NM_RETURN: u32 = 4294967292u32; +pub const NM_SETCURSOR: u32 = 4294967279u32; +pub const NM_SETFOCUS: u32 = 4294967289u32; +pub const NM_THEMECHANGED: u32 = 4294967274u32; +pub const NM_TOOLTIPSCREATED: u32 = 4294967277u32; +pub const NM_TVSTATEIMAGECHANGING: u32 = 4294967272u32; +pub const ODA_DRAWENTIRE: ODA_FLAGS = 1u32; +pub const ODA_FOCUS: ODA_FLAGS = 4u32; +pub const ODA_SELECT: ODA_FLAGS = 2u32; +pub const ODS_CHECKED: ODS_FLAGS = 8u32; +pub const ODS_COMBOBOXEDIT: ODS_FLAGS = 4096u32; +pub const ODS_DEFAULT: ODS_FLAGS = 32u32; +pub const ODS_DISABLED: ODS_FLAGS = 4u32; +pub const ODS_FOCUS: ODS_FLAGS = 16u32; +pub const ODS_GRAYED: ODS_FLAGS = 2u32; +pub const ODS_HOTLIGHT: ODS_FLAGS = 64u32; +pub const ODS_INACTIVE: ODS_FLAGS = 128u32; +pub const ODS_NOACCEL: ODS_FLAGS = 256u32; +pub const ODS_NOFOCUSRECT: ODS_FLAGS = 512u32; +pub const ODS_SELECTED: ODS_FLAGS = 1u32; +pub const ODT_BUTTON: DRAWITEMSTRUCT_CTL_TYPE = 4u32; +pub const ODT_COMBOBOX: DRAWITEMSTRUCT_CTL_TYPE = 3u32; +pub const ODT_HEADER: u32 = 100u32; +pub const ODT_LISTBOX: DRAWITEMSTRUCT_CTL_TYPE = 2u32; +pub const ODT_LISTVIEW: DRAWITEMSTRUCT_CTL_TYPE = 102u32; +pub const ODT_MENU: DRAWITEMSTRUCT_CTL_TYPE = 1u32; +pub const ODT_STATIC: DRAWITEMSTRUCT_CTL_TYPE = 5u32; +pub const ODT_TAB: DRAWITEMSTRUCT_CTL_TYPE = 101u32; +pub const OTD_FORCE_RECT_SIZING: OPEN_THEME_DATA_FLAGS = 1u32; +pub const OTD_NONCLIENT: OPEN_THEME_DATA_FLAGS = 2u32; +pub const OT_ABOVELASTBUTTON: OFFSETTYPE = 12i32; +pub const OT_BELOWLASTBUTTON: OFFSETTYPE = 13i32; +pub const OT_BOTTOMLEFT: OFFSETTYPE = 3i32; +pub const OT_BOTTOMMIDDLE: OFFSETTYPE = 5i32; +pub const OT_BOTTOMRIGHT: OFFSETTYPE = 4i32; +pub const OT_LEFTOFCAPTION: OFFSETTYPE = 8i32; +pub const OT_LEFTOFLASTBUTTON: OFFSETTYPE = 10i32; +pub const OT_MIDDLELEFT: OFFSETTYPE = 6i32; +pub const OT_MIDDLERIGHT: OFFSETTYPE = 7i32; +pub const OT_RIGHTOFCAPTION: OFFSETTYPE = 9i32; +pub const OT_RIGHTOFLASTBUTTON: OFFSETTYPE = 11i32; +pub const OT_TOPLEFT: OFFSETTYPE = 0i32; +pub const OT_TOPMIDDLE: OFFSETTYPE = 2i32; +pub const OT_TOPRIGHT: OFFSETTYPE = 1i32; +pub const PAGESETUPDLGORD: u32 = 1546u32; +pub const PAGESETUPDLGORDMOTIF: u32 = 1550u32; +pub const PBBS_NORMAL: TRANSPARENTBARSTATES = 1i32; +pub const PBBS_PARTIAL: TRANSPARENTBARSTATES = 2i32; +pub const PBBVS_NORMAL: TRANSPARENTBARVERTSTATES = 1i32; +pub const PBBVS_PARTIAL: TRANSPARENTBARVERTSTATES = 2i32; +pub const PBDDS_DISABLED: PUSHBUTTONDROPDOWNSTATES = 2i32; +pub const PBDDS_NORMAL: PUSHBUTTONDROPDOWNSTATES = 1i32; +pub const PBFS_ERROR: FILLSTATES = 2i32; +pub const PBFS_NORMAL: FILLSTATES = 1i32; +pub const PBFS_PARTIAL: FILLSTATES = 4i32; +pub const PBFS_PAUSED: FILLSTATES = 3i32; +pub const PBFVS_ERROR: FILLVERTSTATES = 2i32; +pub const PBFVS_NORMAL: FILLVERTSTATES = 1i32; +pub const PBFVS_PARTIAL: FILLVERTSTATES = 4i32; +pub const PBFVS_PAUSED: FILLVERTSTATES = 3i32; +pub const PBM_DELTAPOS: u32 = 1027u32; +pub const PBM_GETBARCOLOR: u32 = 1039u32; +pub const PBM_GETBKCOLOR: u32 = 1038u32; +pub const PBM_GETPOS: u32 = 1032u32; +pub const PBM_GETRANGE: u32 = 1031u32; +pub const PBM_GETSTATE: u32 = 1041u32; +pub const PBM_GETSTEP: u32 = 1037u32; +pub const PBM_SETBARCOLOR: u32 = 1033u32; +pub const PBM_SETBKCOLOR: u32 = 8193u32; +pub const PBM_SETMARQUEE: u32 = 1034u32; +pub const PBM_SETPOS: u32 = 1026u32; +pub const PBM_SETRANGE: u32 = 1025u32; +pub const PBM_SETRANGE32: u32 = 1030u32; +pub const PBM_SETSTATE: u32 = 1040u32; +pub const PBM_SETSTEP: u32 = 1028u32; +pub const PBM_STEPIT: u32 = 1029u32; +pub const PBST_ERROR: u32 = 2u32; +pub const PBST_NORMAL: u32 = 1u32; +pub const PBST_PAUSED: u32 = 3u32; +pub const PBS_DEFAULTED: PUSHBUTTONSTATES = 5i32; +pub const PBS_DEFAULTED_ANIMATING: PUSHBUTTONSTATES = 6i32; +pub const PBS_DISABLED: PUSHBUTTONSTATES = 4i32; +pub const PBS_HOT: PUSHBUTTONSTATES = 2i32; +pub const PBS_MARQUEE: u32 = 8u32; +pub const PBS_NORMAL: PUSHBUTTONSTATES = 1i32; +pub const PBS_PRESSED: PUSHBUTTONSTATES = 3i32; +pub const PBS_SMOOTH: u32 = 1u32; +pub const PBS_SMOOTHREVERSE: u32 = 16u32; +pub const PBS_VERTICAL: u32 = 4u32; +pub const PGB_BOTTOMORRIGHT: u32 = 1u32; +pub const PGB_TOPORLEFT: u32 = 0u32; +pub const PGF_CALCHEIGHT: NMPGCALCSIZE_FLAGS = 2u32; +pub const PGF_CALCWIDTH: NMPGCALCSIZE_FLAGS = 1u32; +pub const PGF_DEPRESSED: u32 = 4u32; +pub const PGF_GRAYED: u32 = 2u32; +pub const PGF_HOT: u32 = 8u32; +pub const PGF_INVISIBLE: u32 = 0u32; +pub const PGF_NORMAL: u32 = 1u32; +pub const PGF_SCROLLDOWN: NMPGSCROLL_DIR = 2i32; +pub const PGF_SCROLLLEFT: NMPGSCROLL_DIR = 4i32; +pub const PGF_SCROLLRIGHT: NMPGSCROLL_DIR = 8i32; +pub const PGF_SCROLLUP: NMPGSCROLL_DIR = 1i32; +pub const PGK_CONTROL: NMPGSCROLL_KEYS = 2u16; +pub const PGK_MENU: NMPGSCROLL_KEYS = 4u16; +pub const PGK_NONE: NMPGSCROLL_KEYS = 0u16; +pub const PGK_SHIFT: NMPGSCROLL_KEYS = 1u16; +pub const PGM_FIRST: u32 = 5120u32; +pub const PGM_FORWARDMOUSE: u32 = 5123u32; +pub const PGM_GETBKCOLOR: u32 = 5125u32; +pub const PGM_GETBORDER: u32 = 5127u32; +pub const PGM_GETBUTTONSIZE: u32 = 5131u32; +pub const PGM_GETBUTTONSTATE: u32 = 5132u32; +pub const PGM_GETDROPTARGET: u32 = 8196u32; +pub const PGM_GETPOS: u32 = 5129u32; +pub const PGM_RECALCSIZE: u32 = 5122u32; +pub const PGM_SETBKCOLOR: u32 = 5124u32; +pub const PGM_SETBORDER: u32 = 5126u32; +pub const PGM_SETBUTTONSIZE: u32 = 5130u32; +pub const PGM_SETCHILD: u32 = 5121u32; +pub const PGM_SETPOS: u32 = 5128u32; +pub const PGM_SETSCROLLINFO: u32 = 5133u32; +pub const PGN_CALCSIZE: u32 = 4294966394u32; +pub const PGN_FIRST: u32 = 4294966396u32; +pub const PGN_HOTITEMCHANGE: u32 = 4294966393u32; +pub const PGN_LAST: u32 = 4294966346u32; +pub const PGN_SCROLL: u32 = 4294966395u32; +pub const PGRP_DOWN: PAGEPARTS = 2i32; +pub const PGRP_DOWNHORZ: PAGEPARTS = 4i32; +pub const PGRP_UP: PAGEPARTS = 1i32; +pub const PGRP_UPHORZ: PAGEPARTS = 3i32; +pub const PGS_AUTOSCROLL: u32 = 2u32; +pub const PGS_DRAGNDROP: u32 = 4u32; +pub const PGS_HORZ: u32 = 1u32; +pub const PGS_VERT: u32 = 0u32; +pub const POINTER_DEVICE_CURSOR_TYPE_ERASER: POINTER_DEVICE_CURSOR_TYPE = 2i32; +pub const POINTER_DEVICE_CURSOR_TYPE_MAX: POINTER_DEVICE_CURSOR_TYPE = -1i32; +pub const POINTER_DEVICE_CURSOR_TYPE_TIP: POINTER_DEVICE_CURSOR_TYPE = 1i32; +pub const POINTER_DEVICE_CURSOR_TYPE_UNKNOWN: POINTER_DEVICE_CURSOR_TYPE = 0i32; +pub const POINTER_DEVICE_TYPE_EXTERNAL_PEN: POINTER_DEVICE_TYPE = 2i32; +pub const POINTER_DEVICE_TYPE_INTEGRATED_PEN: POINTER_DEVICE_TYPE = 1i32; +pub const POINTER_DEVICE_TYPE_MAX: POINTER_DEVICE_TYPE = -1i32; +pub const POINTER_DEVICE_TYPE_TOUCH: POINTER_DEVICE_TYPE = 3i32; +pub const POINTER_DEVICE_TYPE_TOUCH_PAD: POINTER_DEVICE_TYPE = 4i32; +pub const POINTER_FEEDBACK_DEFAULT: POINTER_FEEDBACK_MODE = 1i32; +pub const POINTER_FEEDBACK_INDIRECT: POINTER_FEEDBACK_MODE = 2i32; +pub const POINTER_FEEDBACK_NONE: POINTER_FEEDBACK_MODE = 3i32; +pub const PO_CLASS: PROPERTYORIGIN = 2i32; +pub const PO_GLOBAL: PROPERTYORIGIN = 3i32; +pub const PO_NOTFOUND: PROPERTYORIGIN = 4i32; +pub const PO_PART: PROPERTYORIGIN = 1i32; +pub const PO_STATE: PROPERTYORIGIN = 0i32; +pub const PP_BAR: PROGRESSPARTS = 1i32; +pub const PP_BARVERT: PROGRESSPARTS = 2i32; +pub const PP_CHUNK: PROGRESSPARTS = 3i32; +pub const PP_CHUNKVERT: PROGRESSPARTS = 4i32; +pub const PP_FILL: PROGRESSPARTS = 5i32; +pub const PP_FILLVERT: PROGRESSPARTS = 6i32; +pub const PP_MOVEOVERLAY: PROGRESSPARTS = 8i32; +pub const PP_MOVEOVERLAYVERT: PROGRESSPARTS = 10i32; +pub const PP_PULSEOVERLAY: PROGRESSPARTS = 7i32; +pub const PP_PULSEOVERLAYVERT: PROGRESSPARTS = 9i32; +pub const PP_TRANSPARENTBAR: PROGRESSPARTS = 11i32; +pub const PP_TRANSPARENTBARVERT: PROGRESSPARTS = 12i32; +pub const PRINTDLGEXORD: u32 = 1549u32; +pub const PRINTDLGORD: u32 = 1538u32; +pub const PRNSETUPDLGORD: u32 = 1539u32; +pub const PROGRESS_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msctls_progress32"); +pub const PROGRESS_CLASSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("msctls_progress32"); +pub const PROGRESS_CLASSW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msctls_progress32"); +pub const PROP_LG_CXDLG: u32 = 252u32; +pub const PROP_LG_CYDLG: u32 = 218u32; +pub const PROP_MED_CXDLG: u32 = 227u32; +pub const PROP_MED_CYDLG: u32 = 215u32; +pub const PROP_SM_CXDLG: u32 = 212u32; +pub const PROP_SM_CYDLG: u32 = 188u32; +pub const PSBTN_APPLYNOW: u32 = 4u32; +pub const PSBTN_BACK: u32 = 0u32; +pub const PSBTN_CANCEL: u32 = 5u32; +pub const PSBTN_FINISH: u32 = 2u32; +pub const PSBTN_HELP: u32 = 6u32; +pub const PSBTN_MAX: u32 = 6u32; +pub const PSBTN_NEXT: u32 = 1u32; +pub const PSBTN_OK: u32 = 3u32; +pub const PSCB_BUTTONPRESSED: u32 = 3u32; +pub const PSCB_INITIALIZED: u32 = 1u32; +pub const PSCB_PRECREATE: u32 = 2u32; +pub const PSH_AEROWIZARD: u32 = 16384u32; +pub const PSH_DEFAULT: u32 = 0u32; +pub const PSH_HASHELP: u32 = 512u32; +pub const PSH_HEADER: u32 = 524288u32; +pub const PSH_HEADERBITMAP: u32 = 134217728u32; +pub const PSH_MODELESS: u32 = 1024u32; +pub const PSH_NOAPPLYNOW: u32 = 128u32; +pub const PSH_NOCONTEXTHELP: u32 = 33554432u32; +pub const PSH_NOMARGIN: u32 = 268435456u32; +pub const PSH_PROPSHEETPAGE: u32 = 8u32; +pub const PSH_PROPTITLE: u32 = 1u32; +pub const PSH_RESIZABLE: u32 = 67108864u32; +pub const PSH_RTLREADING: u32 = 2048u32; +pub const PSH_STRETCHWATERMARK: u32 = 262144u32; +pub const PSH_USECALLBACK: u32 = 256u32; +pub const PSH_USEHBMHEADER: u32 = 1048576u32; +pub const PSH_USEHBMWATERMARK: u32 = 65536u32; +pub const PSH_USEHICON: u32 = 2u32; +pub const PSH_USEHPLWATERMARK: u32 = 131072u32; +pub const PSH_USEICONID: u32 = 4u32; +pub const PSH_USEPAGELANG: u32 = 2097152u32; +pub const PSH_USEPSTARTPAGE: u32 = 64u32; +pub const PSH_WATERMARK: u32 = 32768u32; +pub const PSH_WIZARD: u32 = 32u32; +pub const PSH_WIZARD97: u32 = 8192u32; +pub const PSH_WIZARDCONTEXTHELP: u32 = 4096u32; +pub const PSH_WIZARDHASFINISH: u32 = 16u32; +pub const PSH_WIZARD_LITE: u32 = 4194304u32; +pub const PSM_ADDPAGE: u32 = 1127u32; +pub const PSM_APPLY: u32 = 1134u32; +pub const PSM_CANCELTOCLOSE: u32 = 1131u32; +pub const PSM_CHANGED: u32 = 1128u32; +pub const PSM_ENABLEWIZBUTTONS: u32 = 1163u32; +pub const PSM_GETCURRENTPAGEHWND: u32 = 1142u32; +pub const PSM_GETRESULT: u32 = 1159u32; +pub const PSM_GETTABCONTROL: u32 = 1140u32; +pub const PSM_HWNDTOINDEX: u32 = 1153u32; +pub const PSM_IDTOINDEX: u32 = 1157u32; +pub const PSM_INDEXTOHWND: u32 = 1154u32; +pub const PSM_INDEXTOID: u32 = 1158u32; +pub const PSM_INDEXTOPAGE: u32 = 1156u32; +pub const PSM_INSERTPAGE: u32 = 1143u32; +pub const PSM_ISDIALOGMESSAGE: u32 = 1141u32; +pub const PSM_PAGETOINDEX: u32 = 1155u32; +pub const PSM_PRESSBUTTON: u32 = 1137u32; +pub const PSM_QUERYSIBLINGS: u32 = 1132u32; +pub const PSM_REBOOTSYSTEM: u32 = 1130u32; +pub const PSM_RECALCPAGESIZES: u32 = 1160u32; +pub const PSM_REMOVEPAGE: u32 = 1126u32; +pub const PSM_RESTARTWINDOWS: u32 = 1129u32; +pub const PSM_SETBUTTONTEXT: u32 = 1164u32; +pub const PSM_SETBUTTONTEXTW: u32 = 1164u32; +pub const PSM_SETCURSEL: u32 = 1125u32; +pub const PSM_SETCURSELID: u32 = 1138u32; +pub const PSM_SETFINISHTEXT: u32 = 1145u32; +pub const PSM_SETFINISHTEXTA: u32 = 1139u32; +pub const PSM_SETFINISHTEXTW: u32 = 1145u32; +pub const PSM_SETHEADERSUBTITLE: u32 = 1152u32; +pub const PSM_SETHEADERSUBTITLEA: u32 = 1151u32; +pub const PSM_SETHEADERSUBTITLEW: u32 = 1152u32; +pub const PSM_SETHEADERTITLE: u32 = 1150u32; +pub const PSM_SETHEADERTITLEA: u32 = 1149u32; +pub const PSM_SETHEADERTITLEW: u32 = 1150u32; +pub const PSM_SETNEXTTEXT: u32 = 1161u32; +pub const PSM_SETNEXTTEXTW: u32 = 1161u32; +pub const PSM_SETTITLE: u32 = 1144u32; +pub const PSM_SETTITLEA: u32 = 1135u32; +pub const PSM_SETTITLEW: u32 = 1144u32; +pub const PSM_SETWIZBUTTONS: u32 = 1136u32; +pub const PSM_SHOWWIZBUTTONS: u32 = 1162u32; +pub const PSM_UNCHANGED: u32 = 1133u32; +pub const PSNRET_INVALID: u32 = 1u32; +pub const PSNRET_INVALID_NOCHANGEPAGE: u32 = 2u32; +pub const PSNRET_MESSAGEHANDLED: u32 = 3u32; +pub const PSNRET_NOERROR: u32 = 0u32; +pub const PSN_APPLY: u32 = 4294967094u32; +pub const PSN_FIRST: u32 = 4294967096u32; +pub const PSN_GETOBJECT: u32 = 4294967086u32; +pub const PSN_HELP: u32 = 4294967091u32; +pub const PSN_KILLACTIVE: u32 = 4294967095u32; +pub const PSN_LAST: u32 = 4294966997u32; +pub const PSN_QUERYCANCEL: u32 = 4294967087u32; +pub const PSN_QUERYINITIALFOCUS: u32 = 4294967083u32; +pub const PSN_RESET: u32 = 4294967093u32; +pub const PSN_SETACTIVE: u32 = 4294967096u32; +pub const PSN_TRANSLATEACCELERATOR: u32 = 4294967084u32; +pub const PSN_WIZBACK: u32 = 4294967090u32; +pub const PSN_WIZFINISH: u32 = 4294967088u32; +pub const PSN_WIZNEXT: u32 = 4294967089u32; +pub const PSPCB_ADDREF: PSPCB_MESSAGE = 0u32; +pub const PSPCB_CREATE: PSPCB_MESSAGE = 2u32; +pub const PSPCB_RELEASE: PSPCB_MESSAGE = 1u32; +pub const PSPCB_SI_INITDIALOG: PSPCB_MESSAGE = 1025u32; +pub const PSP_DEFAULT: u32 = 0u32; +pub const PSP_DLGINDIRECT: u32 = 1u32; +pub const PSP_HASHELP: u32 = 32u32; +pub const PSP_HIDEHEADER: u32 = 2048u32; +pub const PSP_PREMATURE: u32 = 1024u32; +pub const PSP_RTLREADING: u32 = 16u32; +pub const PSP_USECALLBACK: u32 = 128u32; +pub const PSP_USEFUSIONCONTEXT: u32 = 16384u32; +pub const PSP_USEHEADERSUBTITLE: u32 = 8192u32; +pub const PSP_USEHEADERTITLE: u32 = 4096u32; +pub const PSP_USEHICON: u32 = 2u32; +pub const PSP_USEICONID: u32 = 4u32; +pub const PSP_USEREFPARENT: u32 = 64u32; +pub const PSP_USETITLE: u32 = 8u32; +pub const PSWIZBF_ELEVATIONREQUIRED: u32 = 1u32; +pub const PSWIZB_BACK: u32 = 1u32; +pub const PSWIZB_CANCEL: u32 = 16u32; +pub const PSWIZB_DISABLEDFINISH: u32 = 8u32; +pub const PSWIZB_FINISH: u32 = 4u32; +pub const PSWIZB_NEXT: u32 = 2u32; +pub const PSWIZB_RESTORE: u32 = 1u32; +pub const PSWIZB_SHOW: u32 = 0u32; +pub const RBAB_ADDBAND: u32 = 2u32; +pub const RBAB_AUTOSIZE: u32 = 1u32; +pub const RBBIM_BACKGROUND: u32 = 128u32; +pub const RBBIM_CHEVRONLOCATION: u32 = 4096u32; +pub const RBBIM_CHEVRONSTATE: u32 = 8192u32; +pub const RBBIM_CHILD: u32 = 16u32; +pub const RBBIM_CHILDSIZE: u32 = 32u32; +pub const RBBIM_COLORS: u32 = 2u32; +pub const RBBIM_HEADERSIZE: u32 = 2048u32; +pub const RBBIM_ID: u32 = 256u32; +pub const RBBIM_IDEALSIZE: u32 = 512u32; +pub const RBBIM_IMAGE: u32 = 8u32; +pub const RBBIM_LPARAM: u32 = 1024u32; +pub const RBBIM_SIZE: u32 = 64u32; +pub const RBBIM_STYLE: u32 = 1u32; +pub const RBBIM_TEXT: u32 = 4u32; +pub const RBBS_BREAK: u32 = 1u32; +pub const RBBS_CHILDEDGE: u32 = 4u32; +pub const RBBS_FIXEDBMP: u32 = 32u32; +pub const RBBS_FIXEDSIZE: u32 = 2u32; +pub const RBBS_GRIPPERALWAYS: u32 = 128u32; +pub const RBBS_HIDDEN: u32 = 8u32; +pub const RBBS_HIDETITLE: u32 = 1024u32; +pub const RBBS_NOGRIPPER: u32 = 256u32; +pub const RBBS_NOVERT: u32 = 16u32; +pub const RBBS_TOPALIGN: u32 = 2048u32; +pub const RBBS_USECHEVRON: u32 = 512u32; +pub const RBBS_VARIABLEHEIGHT: u32 = 64u32; +pub const RBHT_CAPTION: u32 = 2u32; +pub const RBHT_CHEVRON: u32 = 8u32; +pub const RBHT_CLIENT: u32 = 3u32; +pub const RBHT_GRABBER: u32 = 4u32; +pub const RBHT_NOWHERE: u32 = 1u32; +pub const RBHT_SPLITTER: u32 = 16u32; +pub const RBIM_IMAGELIST: u32 = 1u32; +pub const RBNM_ID: NMREBAR_MASK_FLAGS = 1u32; +pub const RBNM_LPARAM: NMREBAR_MASK_FLAGS = 4u32; +pub const RBNM_STYLE: NMREBAR_MASK_FLAGS = 2u32; +pub const RBN_AUTOBREAK: u32 = 4294966443u32; +pub const RBN_AUTOSIZE: u32 = 4294966462u32; +pub const RBN_BEGINDRAG: u32 = 4294966461u32; +pub const RBN_CHEVRONPUSHED: u32 = 4294966455u32; +pub const RBN_CHILDSIZE: u32 = 4294966457u32; +pub const RBN_DELETEDBAND: u32 = 4294966458u32; +pub const RBN_DELETINGBAND: u32 = 4294966459u32; +pub const RBN_ENDDRAG: u32 = 4294966460u32; +pub const RBN_FIRST: u32 = 4294966465u32; +pub const RBN_GETOBJECT: u32 = 4294966464u32; +pub const RBN_HEIGHTCHANGE: u32 = 4294966465u32; +pub const RBN_LAST: u32 = 4294966437u32; +pub const RBN_LAYOUTCHANGED: u32 = 4294966463u32; +pub const RBN_MINMAX: u32 = 4294966444u32; +pub const RBN_SPLITTERDRAG: u32 = 4294966454u32; +pub const RBSTR_CHANGERECT: u32 = 1u32; +pub const RBS_AUTOSIZE: u32 = 8192u32; +pub const RBS_BANDBORDERS: u32 = 1024u32; +pub const RBS_CHECKEDDISABLED: RADIOBUTTONSTATES = 8i32; +pub const RBS_CHECKEDHOT: RADIOBUTTONSTATES = 6i32; +pub const RBS_CHECKEDNORMAL: RADIOBUTTONSTATES = 5i32; +pub const RBS_CHECKEDPRESSED: RADIOBUTTONSTATES = 7i32; +pub const RBS_DBLCLKTOGGLE: u32 = 32768u32; +pub const RBS_DISABLED: RESTOREBUTTONSTATES = 4i32; +pub const RBS_FIXEDORDER: u32 = 2048u32; +pub const RBS_HOT: RESTOREBUTTONSTATES = 2i32; +pub const RBS_NORMAL: RESTOREBUTTONSTATES = 1i32; +pub const RBS_PUSHED: RESTOREBUTTONSTATES = 3i32; +pub const RBS_REGISTERDROP: u32 = 4096u32; +pub const RBS_TOOLTIPS: u32 = 256u32; +pub const RBS_UNCHECKEDDISABLED: RADIOBUTTONSTATES = 4i32; +pub const RBS_UNCHECKEDHOT: RADIOBUTTONSTATES = 2i32; +pub const RBS_UNCHECKEDNORMAL: RADIOBUTTONSTATES = 1i32; +pub const RBS_UNCHECKEDPRESSED: RADIOBUTTONSTATES = 3i32; +pub const RBS_VARHEIGHT: u32 = 512u32; +pub const RBS_VERTICALGRIPPER: u32 = 16384u32; +pub const RB_BEGINDRAG: u32 = 1048u32; +pub const RB_DELETEBAND: u32 = 1026u32; +pub const RB_DRAGMOVE: u32 = 1050u32; +pub const RB_ENDDRAG: u32 = 1049u32; +pub const RB_GETBANDBORDERS: u32 = 1058u32; +pub const RB_GETBANDCOUNT: u32 = 1036u32; +pub const RB_GETBANDINFO: u32 = 1052u32; +pub const RB_GETBANDINFOA: u32 = 1053u32; +pub const RB_GETBANDINFOW: u32 = 1052u32; +pub const RB_GETBANDMARGINS: u32 = 1064u32; +pub const RB_GETBARHEIGHT: u32 = 1051u32; +pub const RB_GETBARINFO: u32 = 1027u32; +pub const RB_GETBKCOLOR: u32 = 1044u32; +pub const RB_GETCOLORSCHEME: u32 = 8195u32; +pub const RB_GETDROPTARGET: u32 = 8196u32; +pub const RB_GETEXTENDEDSTYLE: u32 = 1066u32; +pub const RB_GETPALETTE: u32 = 1062u32; +pub const RB_GETRECT: u32 = 1033u32; +pub const RB_GETROWCOUNT: u32 = 1037u32; +pub const RB_GETROWHEIGHT: u32 = 1038u32; +pub const RB_GETTEXTCOLOR: u32 = 1046u32; +pub const RB_GETTOOLTIPS: u32 = 1041u32; +pub const RB_GETUNICODEFORMAT: u32 = 8198u32; +pub const RB_HITTEST: u32 = 1032u32; +pub const RB_IDTOINDEX: u32 = 1040u32; +pub const RB_INSERTBAND: u32 = 1034u32; +pub const RB_INSERTBANDA: u32 = 1025u32; +pub const RB_INSERTBANDW: u32 = 1034u32; +pub const RB_MAXIMIZEBAND: u32 = 1055u32; +pub const RB_MINIMIZEBAND: u32 = 1054u32; +pub const RB_MOVEBAND: u32 = 1063u32; +pub const RB_PUSHCHEVRON: u32 = 1067u32; +pub const RB_SETBANDINFO: u32 = 1035u32; +pub const RB_SETBANDINFOA: u32 = 1030u32; +pub const RB_SETBANDINFOW: u32 = 1035u32; +pub const RB_SETBANDWIDTH: u32 = 1068u32; +pub const RB_SETBARINFO: u32 = 1028u32; +pub const RB_SETBKCOLOR: u32 = 1043u32; +pub const RB_SETCOLORSCHEME: u32 = 8194u32; +pub const RB_SETEXTENDEDSTYLE: u32 = 1065u32; +pub const RB_SETPALETTE: u32 = 1061u32; +pub const RB_SETPARENT: u32 = 1031u32; +pub const RB_SETTEXTCOLOR: u32 = 1045u32; +pub const RB_SETTOOLTIPS: u32 = 1042u32; +pub const RB_SETUNICODEFORMAT: u32 = 8197u32; +pub const RB_SETWINDOWTHEME: u32 = 8203u32; +pub const RB_SHOWBAND: u32 = 1059u32; +pub const RB_SIZETORECT: u32 = 1047u32; +pub const REBARCLASSNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReBarWindow32"); +pub const REBARCLASSNAMEA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ReBarWindow32"); +pub const REBARCLASSNAMEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ReBarWindow32"); +pub const REPLACEDLGORD: u32 = 1541u32; +pub const RP_BACKGROUND: REBARPARTS = 6i32; +pub const RP_BAND: REBARPARTS = 3i32; +pub const RP_CHEVRON: REBARPARTS = 4i32; +pub const RP_CHEVRONVERT: REBARPARTS = 5i32; +pub const RP_GRIPPER: REBARPARTS = 1i32; +pub const RP_GRIPPERVERT: REBARPARTS = 2i32; +pub const RP_SPLITTER: REBARPARTS = 7i32; +pub const RP_SPLITTERVERT: REBARPARTS = 8i32; +pub const RUNDLGORD: u32 = 1545u32; +pub const SBARS_SIZEGRIP: u32 = 256u32; +pub const SBARS_TOOLTIPS: u32 = 2048u32; +pub const SBN_FIRST: u32 = 4294966416u32; +pub const SBN_LAST: u32 = 4294966397u32; +pub const SBN_SIMPLEMODECHANGE: u32 = 4294966416u32; +pub const SBP_ARROWBTN: SCROLLBARPARTS = 1i32; +pub const SBP_GRIPPERHORZ: SCROLLBARPARTS = 8i32; +pub const SBP_GRIPPERVERT: SCROLLBARPARTS = 9i32; +pub const SBP_LOWERTRACKHORZ: SCROLLBARPARTS = 4i32; +pub const SBP_LOWERTRACKVERT: SCROLLBARPARTS = 6i32; +pub const SBP_SIZEBOX: SCROLLBARPARTS = 10i32; +pub const SBP_SIZEBOXBKGND: SCROLLBARPARTS = 11i32; +pub const SBP_THUMBBTNHORZ: SCROLLBARPARTS = 2i32; +pub const SBP_THUMBBTNVERT: SCROLLBARPARTS = 3i32; +pub const SBP_UPPERTRACKHORZ: SCROLLBARPARTS = 5i32; +pub const SBP_UPPERTRACKVERT: SCROLLBARPARTS = 7i32; +pub const SBS_DISABLED: SYSBUTTONSTATES = 4i32; +pub const SBS_HOT: SYSBUTTONSTATES = 2i32; +pub const SBS_NORMAL: SYSBUTTONSTATES = 1i32; +pub const SBS_PUSHED: SYSBUTTONSTATES = 3i32; +pub const SBT_NOBORDERS: u32 = 256u32; +pub const SBT_NOTABPARSING: u32 = 2048u32; +pub const SBT_OWNERDRAW: u32 = 4096u32; +pub const SBT_POPOUT: u32 = 512u32; +pub const SBT_RTLREADING: u32 = 1024u32; +pub const SBT_TOOLTIPS: u32 = 2048u32; +pub const SB_GETBORDERS: u32 = 1031u32; +pub const SB_GETICON: u32 = 1044u32; +pub const SB_GETPARTS: u32 = 1030u32; +pub const SB_GETRECT: u32 = 1034u32; +pub const SB_GETTEXT: u32 = 1037u32; +pub const SB_GETTEXTA: u32 = 1026u32; +pub const SB_GETTEXTLENGTH: u32 = 1036u32; +pub const SB_GETTEXTLENGTHA: u32 = 1027u32; +pub const SB_GETTEXTLENGTHW: u32 = 1036u32; +pub const SB_GETTEXTW: u32 = 1037u32; +pub const SB_GETTIPTEXTA: u32 = 1042u32; +pub const SB_GETTIPTEXTW: u32 = 1043u32; +pub const SB_GETUNICODEFORMAT: u32 = 8198u32; +pub const SB_ISSIMPLE: u32 = 1038u32; +pub const SB_SETBKCOLOR: u32 = 8193u32; +pub const SB_SETICON: u32 = 1039u32; +pub const SB_SETMINHEIGHT: u32 = 1032u32; +pub const SB_SETPARTS: u32 = 1028u32; +pub const SB_SETTEXT: u32 = 1035u32; +pub const SB_SETTEXTA: u32 = 1025u32; +pub const SB_SETTEXTW: u32 = 1035u32; +pub const SB_SETTIPTEXTA: u32 = 1040u32; +pub const SB_SETTIPTEXTW: u32 = 1041u32; +pub const SB_SETUNICODEFORMAT: u32 = 8197u32; +pub const SB_SIMPLE: u32 = 1033u32; +pub const SB_SIMPLEID: u32 = 255u32; +pub const SCBS_DISABLED: SMALLCLOSEBUTTONSTATES = 4i32; +pub const SCBS_HOT: SMALLCLOSEBUTTONSTATES = 2i32; +pub const SCBS_NORMAL: SMALLCLOSEBUTTONSTATES = 1i32; +pub const SCBS_PUSHED: SMALLCLOSEBUTTONSTATES = 3i32; +pub const SCRBS_DISABLED: SCROLLBARSTYLESTATES = 4i32; +pub const SCRBS_HOT: SCROLLBARSTYLESTATES = 2i32; +pub const SCRBS_HOVER: SCROLLBARSTYLESTATES = 5i32; +pub const SCRBS_NORMAL: SCROLLBARSTYLESTATES = 1i32; +pub const SCRBS_PRESSED: SCROLLBARSTYLESTATES = 3i32; +pub const SCS_ACTIVE: SMALLCAPTIONSTATES = 1i32; +pub const SCS_DISABLED: SMALLCAPTIONSTATES = 3i32; +pub const SCS_INACTIVE: SMALLCAPTIONSTATES = 2i32; +pub const SFRB_ACTIVE: SMALLFRAMEBOTTOMSTATES = 1i32; +pub const SFRB_INACTIVE: SMALLFRAMEBOTTOMSTATES = 2i32; +pub const SFRL_ACTIVE: SMALLFRAMELEFTSTATES = 1i32; +pub const SFRL_INACTIVE: SMALLFRAMELEFTSTATES = 2i32; +pub const SFRR_ACTIVE: SMALLFRAMERIGHTSTATES = 1i32; +pub const SFRR_INACTIVE: SMALLFRAMERIGHTSTATES = 2i32; +pub const SPLITSV_HOT: SPLITTERVERTSTATES = 2i32; +pub const SPLITSV_NORMAL: SPLITTERVERTSTATES = 1i32; +pub const SPLITSV_PRESSED: SPLITTERVERTSTATES = 3i32; +pub const SPLITS_HOT: SPLITTERSTATES = 2i32; +pub const SPLITS_NORMAL: SPLITTERSTATES = 1i32; +pub const SPLITS_PRESSED: SPLITTERSTATES = 3i32; +pub const SPLS_HOT: LOGOFFBUTTONSSTATES = 2i32; +pub const SPLS_NORMAL: LOGOFFBUTTONSSTATES = 1i32; +pub const SPLS_PRESSED: LOGOFFBUTTONSSTATES = 3i32; +pub const SPMPT_DISABLED: MOREPROGRAMSTABSTATES = 4i32; +pub const SPMPT_FOCUSED: MOREPROGRAMSTABSTATES = 5i32; +pub const SPMPT_HOT: MOREPROGRAMSTABSTATES = 2i32; +pub const SPMPT_NORMAL: MOREPROGRAMSTABSTATES = 1i32; +pub const SPMPT_SELECTED: MOREPROGRAMSTABSTATES = 3i32; +pub const SPNP_DOWN: SPINPARTS = 2i32; +pub const SPNP_DOWNHORZ: SPINPARTS = 4i32; +pub const SPNP_UP: SPINPARTS = 1i32; +pub const SPNP_UPHORZ: SPINPARTS = 3i32; +pub const SPOB_DISABLED: OPENBOXSTATES = 4i32; +pub const SPOB_FOCUSED: OPENBOXSTATES = 5i32; +pub const SPOB_HOT: OPENBOXSTATES = 2i32; +pub const SPOB_NORMAL: OPENBOXSTATES = 1i32; +pub const SPOB_SELECTED: OPENBOXSTATES = 3i32; +pub const SPP_LOGOFF: STARTPANELPARTS = 8i32; +pub const SPP_LOGOFFBUTTONS: STARTPANELPARTS = 9i32; +pub const SPP_LOGOFFSPLITBUTTONDROPDOWN: STARTPANELPARTS = 19i32; +pub const SPP_MOREPROGRAMS: STARTPANELPARTS = 2i32; +pub const SPP_MOREPROGRAMSARROW: STARTPANELPARTS = 3i32; +pub const SPP_MOREPROGRAMSARROWBACK: STARTPANELPARTS = 17i32; +pub const SPP_MOREPROGRAMSTAB: STARTPANELPARTS = 12i32; +pub const SPP_NSCHOST: STARTPANELPARTS = 13i32; +pub const SPP_OPENBOX: STARTPANELPARTS = 15i32; +pub const SPP_PLACESLIST: STARTPANELPARTS = 6i32; +pub const SPP_PLACESLISTSEPARATOR: STARTPANELPARTS = 7i32; +pub const SPP_PREVIEW: STARTPANELPARTS = 11i32; +pub const SPP_PROGLIST: STARTPANELPARTS = 4i32; +pub const SPP_PROGLISTSEPARATOR: STARTPANELPARTS = 5i32; +pub const SPP_SEARCHVIEW: STARTPANELPARTS = 16i32; +pub const SPP_SOFTWAREEXPLORER: STARTPANELPARTS = 14i32; +pub const SPP_TOPMATCH: STARTPANELPARTS = 18i32; +pub const SPP_USERPANE: STARTPANELPARTS = 1i32; +pub const SPP_USERPICTURE: STARTPANELPARTS = 10i32; +pub const SPSB_HOT: MOREPROGRAMSARROWBACKSTATES = 2i32; +pub const SPSB_NORMAL: MOREPROGRAMSARROWBACKSTATES = 1i32; +pub const SPSB_PRESSED: MOREPROGRAMSARROWBACKSTATES = 3i32; +pub const SPSE_DISABLED: SOFTWAREEXPLORERSTATES = 4i32; +pub const SPSE_FOCUSED: SOFTWAREEXPLORERSTATES = 5i32; +pub const SPSE_HOT: SOFTWAREEXPLORERSTATES = 2i32; +pub const SPSE_NORMAL: SOFTWAREEXPLORERSTATES = 1i32; +pub const SPSE_SELECTED: SOFTWAREEXPLORERSTATES = 3i32; +pub const SPS_HOT: MOREPROGRAMSARROWSTATES = 2i32; +pub const SPS_NORMAL: MOREPROGRAMSARROWSTATES = 1i32; +pub const SPS_PRESSED: MOREPROGRAMSARROWSTATES = 3i32; +pub const SP_GRIPPER: STATUSPARTS = 3i32; +pub const SP_GRIPPERPANE: STATUSPARTS = 2i32; +pub const SP_PANE: STATUSPARTS = 1i32; +pub const STATE_SYSTEM_FOCUSABLE: COMBOBOXINFO_BUTTON_STATE = 1048576u32; +pub const STATE_SYSTEM_INVISIBLE: COMBOBOXINFO_BUTTON_STATE = 32768u32; +pub const STATE_SYSTEM_OFFSCREEN: COMBOBOXINFO_BUTTON_STATE = 65536u32; +pub const STATE_SYSTEM_PRESSED: COMBOBOXINFO_BUTTON_STATE = 8u32; +pub const STATE_SYSTEM_UNAVAILABLE: COMBOBOXINFO_BUTTON_STATE = 1u32; +pub const STATUSCLASSNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msctls_statusbar32"); +pub const STATUSCLASSNAMEA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("msctls_statusbar32"); +pub const STATUSCLASSNAMEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msctls_statusbar32"); +pub const STAT_TEXT: STATICPARTS = 1i32; +pub const STD_COPY: u32 = 1u32; +pub const STD_CUT: u32 = 0u32; +pub const STD_DELETE: u32 = 5u32; +pub const STD_FILENEW: u32 = 6u32; +pub const STD_FILEOPEN: u32 = 7u32; +pub const STD_FILESAVE: u32 = 8u32; +pub const STD_FIND: u32 = 12u32; +pub const STD_HELP: u32 = 11u32; +pub const STD_PASTE: u32 = 2u32; +pub const STD_PRINT: u32 = 14u32; +pub const STD_PRINTPRE: u32 = 9u32; +pub const STD_PROPERTIES: u32 = 10u32; +pub const STD_REDOW: u32 = 4u32; +pub const STD_REPLACE: u32 = 13u32; +pub const STD_UNDO: u32 = 3u32; +pub const ST_STRETCH: SIZINGTYPE = 1i32; +pub const ST_TILE: SIZINGTYPE = 2i32; +pub const ST_TRUESIZE: SIZINGTYPE = 0i32; +pub const SZB_HALFBOTTOMLEFTALIGN: SIZEBOXSTATES = 6i32; +pub const SZB_HALFBOTTOMRIGHTALIGN: SIZEBOXSTATES = 5i32; +pub const SZB_HALFTOPLEFTALIGN: SIZEBOXSTATES = 8i32; +pub const SZB_HALFTOPRIGHTALIGN: SIZEBOXSTATES = 7i32; +pub const SZB_LEFTALIGN: SIZEBOXSTATES = 2i32; +pub const SZB_RIGHTALIGN: SIZEBOXSTATES = 1i32; +pub const SZB_TOPLEFTALIGN: SIZEBOXSTATES = 4i32; +pub const SZB_TOPRIGHTALIGN: SIZEBOXSTATES = 3i32; +pub const SZ_THDOCPROP_AUTHOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("author"); +pub const SZ_THDOCPROP_CANONICALNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ThemeName"); +pub const SZ_THDOCPROP_DISPLAYNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisplayName"); +pub const SZ_THDOCPROP_TOOLTIP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ToolTip"); +pub const TABP_AEROWIZARDBODY: TABPARTS = 11i32; +pub const TABP_BODY: TABPARTS = 10i32; +pub const TABP_PANE: TABPARTS = 9i32; +pub const TABP_TABITEM: TABPARTS = 1i32; +pub const TABP_TABITEMBOTHEDGE: TABPARTS = 4i32; +pub const TABP_TABITEMLEFTEDGE: TABPARTS = 2i32; +pub const TABP_TABITEMRIGHTEDGE: TABPARTS = 3i32; +pub const TABP_TOPTABITEM: TABPARTS = 5i32; +pub const TABP_TOPTABITEMBOTHEDGE: TABPARTS = 8i32; +pub const TABP_TOPTABITEMLEFTEDGE: TABPARTS = 6i32; +pub const TABP_TOPTABITEMRIGHTEDGE: TABPARTS = 7i32; +pub const TAPF_ALLOWCOLLECTION: TA_PROPERTY_FLAG = 4i32; +pub const TAPF_HASBACKGROUND: TA_PROPERTY_FLAG = 8i32; +pub const TAPF_HASPERSPECTIVE: TA_PROPERTY_FLAG = 16i32; +pub const TAPF_HASSTAGGER: TA_PROPERTY_FLAG = 1i32; +pub const TAPF_ISRTLAWARE: TA_PROPERTY_FLAG = 2i32; +pub const TAPF_NONE: TA_PROPERTY_FLAG = 0i32; +pub const TAP_FLAGS: TA_PROPERTY = 0i32; +pub const TAP_STAGGERDELAY: TA_PROPERTY = 2i32; +pub const TAP_STAGGERDELAYCAP: TA_PROPERTY = 3i32; +pub const TAP_STAGGERDELAYFACTOR: TA_PROPERTY = 4i32; +pub const TAP_TRANSFORMCOUNT: TA_PROPERTY = 1i32; +pub const TAP_ZORDER: TA_PROPERTY = 5i32; +pub const TATF_HASINITIALVALUES: TA_TRANSFORM_FLAG = 2i32; +pub const TATF_HASORIGINVALUES: TA_TRANSFORM_FLAG = 4i32; +pub const TATF_NONE: TA_TRANSFORM_FLAG = 0i32; +pub const TATF_TARGETVALUES_USER: TA_TRANSFORM_FLAG = 1i32; +pub const TATT_CLIP: TA_TRANSFORM_TYPE = 3i32; +pub const TATT_OPACITY: TA_TRANSFORM_TYPE = 2i32; +pub const TATT_SCALE_2D: TA_TRANSFORM_TYPE = 1i32; +pub const TATT_TRANSLATE_2D: TA_TRANSFORM_TYPE = 0i32; +pub const TBBF_LARGE: u32 = 1u32; +pub const TBCDRF_BLENDICON: u32 = 2097152u32; +pub const TBCDRF_HILITEHOTTRACK: u32 = 131072u32; +pub const TBCDRF_NOBACKGROUND: u32 = 4194304u32; +pub const TBCDRF_NOEDGES: u32 = 65536u32; +pub const TBCDRF_NOETCHEDEFFECT: u32 = 1048576u32; +pub const TBCDRF_NOMARK: u32 = 524288u32; +pub const TBCDRF_NOOFFSET: u32 = 262144u32; +pub const TBCDRF_USECDCOLORS: u32 = 8388608u32; +pub const TBCD_CHANNEL: u32 = 3u32; +pub const TBCD_THUMB: u32 = 2u32; +pub const TBCD_TICS: u32 = 1u32; +pub const TBDDRET_DEFAULT: u32 = 0u32; +pub const TBDDRET_NODEFAULT: u32 = 1u32; +pub const TBDDRET_TREATPRESSED: u32 = 2u32; +pub const TBIF_BYINDEX: TBBUTTONINFOW_MASK = 2147483648u32; +pub const TBIF_COMMAND: TBBUTTONINFOW_MASK = 32u32; +pub const TBIF_IMAGE: TBBUTTONINFOW_MASK = 1u32; +pub const TBIF_LPARAM: TBBUTTONINFOW_MASK = 16u32; +pub const TBIF_SIZE: TBBUTTONINFOW_MASK = 64u32; +pub const TBIF_STATE: TBBUTTONINFOW_MASK = 4u32; +pub const TBIF_STYLE: TBBUTTONINFOW_MASK = 8u32; +pub const TBIF_TEXT: TBBUTTONINFOW_MASK = 2u32; +pub const TBIMHT_AFTER: TBINSERTMARK_FLAGS = 1u32; +pub const TBIMHT_BACKGROUND: TBINSERTMARK_FLAGS = 2u32; +pub const TBIMHT_NONE: TBINSERTMARK_FLAGS = 0u32; +pub const TBMF_BARPAD: u32 = 2u32; +pub const TBMF_BUTTONSPACING: u32 = 4u32; +pub const TBMF_PAD: u32 = 1u32; +pub const TBM_CLEARSEL: u32 = 1043u32; +pub const TBM_CLEARTICS: u32 = 1033u32; +pub const TBM_GETBUDDY: u32 = 1057u32; +pub const TBM_GETCHANNELRECT: u32 = 1050u32; +pub const TBM_GETLINESIZE: u32 = 1048u32; +pub const TBM_GETNUMTICS: u32 = 1040u32; +pub const TBM_GETPAGESIZE: u32 = 1046u32; +pub const TBM_GETPTICS: u32 = 1038u32; +pub const TBM_GETRANGEMAX: u32 = 1026u32; +pub const TBM_GETRANGEMIN: u32 = 1025u32; +pub const TBM_GETSELEND: u32 = 1042u32; +pub const TBM_GETSELSTART: u32 = 1041u32; +pub const TBM_GETTHUMBLENGTH: u32 = 1052u32; +pub const TBM_GETTHUMBRECT: u32 = 1049u32; +pub const TBM_GETTIC: u32 = 1027u32; +pub const TBM_GETTICPOS: u32 = 1039u32; +pub const TBM_GETTOOLTIPS: u32 = 1054u32; +pub const TBM_GETUNICODEFORMAT: u32 = 8198u32; +pub const TBM_SETBUDDY: u32 = 1056u32; +pub const TBM_SETLINESIZE: u32 = 1047u32; +pub const TBM_SETPAGESIZE: u32 = 1045u32; +pub const TBM_SETPOS: u32 = 1029u32; +pub const TBM_SETPOSNOTIFY: u32 = 1058u32; +pub const TBM_SETRANGE: u32 = 1030u32; +pub const TBM_SETRANGEMAX: u32 = 1032u32; +pub const TBM_SETRANGEMIN: u32 = 1031u32; +pub const TBM_SETSEL: u32 = 1034u32; +pub const TBM_SETSELEND: u32 = 1036u32; +pub const TBM_SETSELSTART: u32 = 1035u32; +pub const TBM_SETTHUMBLENGTH: u32 = 1051u32; +pub const TBM_SETTIC: u32 = 1028u32; +pub const TBM_SETTICFREQ: u32 = 1044u32; +pub const TBM_SETTIPSIDE: u32 = 1055u32; +pub const TBM_SETTOOLTIPS: u32 = 1053u32; +pub const TBM_SETUNICODEFORMAT: u32 = 8197u32; +pub const TBNF_DI_SETITEM: NMTBDISPINFOW_MASK = 268435456u32; +pub const TBNF_IMAGE: NMTBDISPINFOW_MASK = 1u32; +pub const TBNF_TEXT: NMTBDISPINFOW_MASK = 2u32; +pub const TBNRF_ENDCUSTOMIZE: u32 = 2u32; +pub const TBNRF_HIDEHELP: u32 = 1u32; +pub const TBN_BEGINADJUST: u32 = 4294966593u32; +pub const TBN_BEGINDRAG: u32 = 4294966595u32; +pub const TBN_CUSTHELP: u32 = 4294966587u32; +pub const TBN_DELETINGBUTTON: u32 = 4294966581u32; +pub const TBN_DRAGOUT: u32 = 4294966582u32; +pub const TBN_DRAGOVER: u32 = 4294966569u32; +pub const TBN_DROPDOWN: u32 = 4294966586u32; +pub const TBN_DUPACCELERATOR: u32 = 4294966571u32; +pub const TBN_ENDADJUST: u32 = 4294966592u32; +pub const TBN_ENDDRAG: u32 = 4294966594u32; +pub const TBN_FIRST: u32 = 4294966596u32; +pub const TBN_GETBUTTONINFO: u32 = 4294966576u32; +pub const TBN_GETBUTTONINFOA: u32 = 4294966596u32; +pub const TBN_GETBUTTONINFOW: u32 = 4294966576u32; +pub const TBN_GETDISPINFO: u32 = 4294966579u32; +pub const TBN_GETDISPINFOA: u32 = 4294966580u32; +pub const TBN_GETDISPINFOW: u32 = 4294966579u32; +pub const TBN_GETINFOTIP: u32 = 4294966577u32; +pub const TBN_GETINFOTIPA: u32 = 4294966578u32; +pub const TBN_GETINFOTIPW: u32 = 4294966577u32; +pub const TBN_GETOBJECT: u32 = 4294966584u32; +pub const TBN_HOTITEMCHANGE: u32 = 4294966583u32; +pub const TBN_INITCUSTOMIZE: u32 = 4294966573u32; +pub const TBN_LAST: u32 = 4294966576u32; +pub const TBN_MAPACCELERATOR: u32 = 4294966568u32; +pub const TBN_QUERYDELETE: u32 = 4294966589u32; +pub const TBN_QUERYINSERT: u32 = 4294966590u32; +pub const TBN_RESET: u32 = 4294966591u32; +pub const TBN_RESTORE: u32 = 4294966575u32; +pub const TBN_SAVE: u32 = 4294966574u32; +pub const TBN_TOOLBARCHANGE: u32 = 4294966588u32; +pub const TBN_WRAPACCELERATOR: u32 = 4294966570u32; +pub const TBN_WRAPHOTITEM: u32 = 4294966572u32; +pub const TBP_BACKGROUNDBOTTOM: TASKBARPARTS = 1i32; +pub const TBP_BACKGROUNDLEFT: TASKBARPARTS = 4i32; +pub const TBP_BACKGROUNDRIGHT: TASKBARPARTS = 2i32; +pub const TBP_BACKGROUNDTOP: TASKBARPARTS = 3i32; +pub const TBP_SIZINGBARBOTTOM: TASKBARPARTS = 5i32; +pub const TBP_SIZINGBARLEFT: TASKBARPARTS = 8i32; +pub const TBP_SIZINGBARRIGHT: TASKBARPARTS = 6i32; +pub const TBP_SIZINGBARTOP: TASKBARPARTS = 7i32; +pub const TBSTATE_CHECKED: u32 = 1u32; +pub const TBSTATE_ELLIPSES: u32 = 64u32; +pub const TBSTATE_ENABLED: u32 = 4u32; +pub const TBSTATE_HIDDEN: u32 = 8u32; +pub const TBSTATE_INDETERMINATE: u32 = 16u32; +pub const TBSTATE_MARKED: u32 = 128u32; +pub const TBSTATE_PRESSED: u32 = 2u32; +pub const TBSTATE_WRAP: u32 = 32u32; +pub const TBSTYLE_ALTDRAG: u32 = 1024u32; +pub const TBSTYLE_AUTOSIZE: u32 = 16u32; +pub const TBSTYLE_BUTTON: u32 = 0u32; +pub const TBSTYLE_CHECK: u32 = 2u32; +pub const TBSTYLE_CUSTOMERASE: u32 = 8192u32; +pub const TBSTYLE_DROPDOWN: u32 = 8u32; +pub const TBSTYLE_EX_DOUBLEBUFFER: u32 = 128u32; +pub const TBSTYLE_EX_DRAWDDARROWS: u32 = 1u32; +pub const TBSTYLE_EX_HIDECLIPPEDBUTTONS: u32 = 16u32; +pub const TBSTYLE_EX_MIXEDBUTTONS: u32 = 8u32; +pub const TBSTYLE_EX_MULTICOLUMN: u32 = 2u32; +pub const TBSTYLE_EX_VERTICAL: u32 = 4u32; +pub const TBSTYLE_FLAT: u32 = 2048u32; +pub const TBSTYLE_GROUP: u32 = 4u32; +pub const TBSTYLE_LIST: u32 = 4096u32; +pub const TBSTYLE_NOPREFIX: u32 = 32u32; +pub const TBSTYLE_REGISTERDROP: u32 = 16384u32; +pub const TBSTYLE_SEP: u32 = 1u32; +pub const TBSTYLE_TOOLTIPS: u32 = 256u32; +pub const TBSTYLE_TRANSPARENT: u32 = 32768u32; +pub const TBSTYLE_WRAPABLE: u32 = 512u32; +pub const TBS_AUTOTICKS: u32 = 1u32; +pub const TBS_BOTH: u32 = 8u32; +pub const TBS_BOTTOM: u32 = 0u32; +pub const TBS_DOWNISLEFT: u32 = 1024u32; +pub const TBS_ENABLESELRANGE: u32 = 32u32; +pub const TBS_FIXEDLENGTH: u32 = 64u32; +pub const TBS_HORZ: u32 = 0u32; +pub const TBS_LEFT: u32 = 4u32; +pub const TBS_NOTHUMB: u32 = 128u32; +pub const TBS_NOTICKS: u32 = 16u32; +pub const TBS_NOTIFYBEFOREMOVE: u32 = 2048u32; +pub const TBS_REVERSED: u32 = 512u32; +pub const TBS_RIGHT: u32 = 0u32; +pub const TBS_TOOLTIPS: u32 = 256u32; +pub const TBS_TOP: u32 = 4u32; +pub const TBS_TRANSPARENTBKGND: u32 = 4096u32; +pub const TBS_VERT: u32 = 2u32; +pub const TBTS_BOTTOM: u32 = 2u32; +pub const TBTS_LEFT: u32 = 1u32; +pub const TBTS_RIGHT: u32 = 3u32; +pub const TBTS_TOP: u32 = 0u32; +pub const TB_ADDBITMAP: u32 = 1043u32; +pub const TB_ADDBUTTONS: u32 = 1092u32; +pub const TB_ADDBUTTONSA: u32 = 1044u32; +pub const TB_ADDBUTTONSW: u32 = 1092u32; +pub const TB_ADDSTRING: u32 = 1101u32; +pub const TB_ADDSTRINGA: u32 = 1052u32; +pub const TB_ADDSTRINGW: u32 = 1101u32; +pub const TB_AUTOSIZE: u32 = 1057u32; +pub const TB_BOTTOM: u32 = 7u32; +pub const TB_BUTTONCOUNT: u32 = 1048u32; +pub const TB_BUTTONSTRUCTSIZE: u32 = 1054u32; +pub const TB_CHANGEBITMAP: u32 = 1067u32; +pub const TB_CHECKBUTTON: u32 = 1026u32; +pub const TB_COMMANDTOINDEX: u32 = 1049u32; +pub const TB_CUSTOMIZE: u32 = 1051u32; +pub const TB_DELETEBUTTON: u32 = 1046u32; +pub const TB_ENABLEBUTTON: u32 = 1025u32; +pub const TB_ENDTRACK: u32 = 8u32; +pub const TB_GETANCHORHIGHLIGHT: u32 = 1098u32; +pub const TB_GETBITMAP: u32 = 1068u32; +pub const TB_GETBITMAPFLAGS: u32 = 1065u32; +pub const TB_GETBUTTON: u32 = 1047u32; +pub const TB_GETBUTTONINFO: u32 = 1087u32; +pub const TB_GETBUTTONINFOA: u32 = 1089u32; +pub const TB_GETBUTTONINFOW: u32 = 1087u32; +pub const TB_GETBUTTONSIZE: u32 = 1082u32; +pub const TB_GETBUTTONTEXT: u32 = 1099u32; +pub const TB_GETBUTTONTEXTA: u32 = 1069u32; +pub const TB_GETBUTTONTEXTW: u32 = 1099u32; +pub const TB_GETCOLORSCHEME: u32 = 8195u32; +pub const TB_GETDISABLEDIMAGELIST: u32 = 1079u32; +pub const TB_GETEXTENDEDSTYLE: u32 = 1109u32; +pub const TB_GETHOTIMAGELIST: u32 = 1077u32; +pub const TB_GETHOTITEM: u32 = 1095u32; +pub const TB_GETIDEALSIZE: u32 = 1123u32; +pub const TB_GETIMAGELIST: u32 = 1073u32; +pub const TB_GETIMAGELISTCOUNT: u32 = 1122u32; +pub const TB_GETINSERTMARK: u32 = 1103u32; +pub const TB_GETINSERTMARKCOLOR: u32 = 1113u32; +pub const TB_GETITEMDROPDOWNRECT: u32 = 1127u32; +pub const TB_GETITEMRECT: u32 = 1053u32; +pub const TB_GETMAXSIZE: u32 = 1107u32; +pub const TB_GETMETRICS: u32 = 1125u32; +pub const TB_GETOBJECT: u32 = 1086u32; +pub const TB_GETPADDING: u32 = 1110u32; +pub const TB_GETPRESSEDIMAGELIST: u32 = 1129u32; +pub const TB_GETRECT: u32 = 1075u32; +pub const TB_GETROWS: u32 = 1064u32; +pub const TB_GETSTATE: u32 = 1042u32; +pub const TB_GETSTRING: u32 = 1115u32; +pub const TB_GETSTRINGA: u32 = 1116u32; +pub const TB_GETSTRINGW: u32 = 1115u32; +pub const TB_GETSTYLE: u32 = 1081u32; +pub const TB_GETTEXTROWS: u32 = 1085u32; +pub const TB_GETTOOLTIPS: u32 = 1059u32; +pub const TB_GETUNICODEFORMAT: u32 = 8198u32; +pub const TB_HASACCELERATOR: u32 = 1119u32; +pub const TB_HIDEBUTTON: u32 = 1028u32; +pub const TB_HITTEST: u32 = 1093u32; +pub const TB_INDETERMINATE: u32 = 1029u32; +pub const TB_INSERTBUTTON: u32 = 1091u32; +pub const TB_INSERTBUTTONA: u32 = 1045u32; +pub const TB_INSERTBUTTONW: u32 = 1091u32; +pub const TB_INSERTMARKHITTEST: u32 = 1105u32; +pub const TB_ISBUTTONCHECKED: u32 = 1034u32; +pub const TB_ISBUTTONENABLED: u32 = 1033u32; +pub const TB_ISBUTTONHIDDEN: u32 = 1036u32; +pub const TB_ISBUTTONHIGHLIGHTED: u32 = 1038u32; +pub const TB_ISBUTTONINDETERMINATE: u32 = 1037u32; +pub const TB_ISBUTTONPRESSED: u32 = 1035u32; +pub const TB_LINEDOWN: u32 = 1u32; +pub const TB_LINEUP: u32 = 0u32; +pub const TB_LOADIMAGES: u32 = 1074u32; +pub const TB_MAPACCELERATOR: u32 = 1114u32; +pub const TB_MAPACCELERATORA: u32 = 1102u32; +pub const TB_MAPACCELERATORW: u32 = 1114u32; +pub const TB_MARKBUTTON: u32 = 1030u32; +pub const TB_MOVEBUTTON: u32 = 1106u32; +pub const TB_PAGEDOWN: u32 = 3u32; +pub const TB_PAGEUP: u32 = 2u32; +pub const TB_PRESSBUTTON: u32 = 1027u32; +pub const TB_REPLACEBITMAP: u32 = 1070u32; +pub const TB_SAVERESTORE: u32 = 1100u32; +pub const TB_SAVERESTOREA: u32 = 1050u32; +pub const TB_SAVERESTOREW: u32 = 1100u32; +pub const TB_SETANCHORHIGHLIGHT: u32 = 1097u32; +pub const TB_SETBITMAPSIZE: u32 = 1056u32; +pub const TB_SETBOUNDINGSIZE: u32 = 1117u32; +pub const TB_SETBUTTONINFO: u32 = 1088u32; +pub const TB_SETBUTTONINFOA: u32 = 1090u32; +pub const TB_SETBUTTONINFOW: u32 = 1088u32; +pub const TB_SETBUTTONSIZE: u32 = 1055u32; +pub const TB_SETBUTTONWIDTH: u32 = 1083u32; +pub const TB_SETCMDID: u32 = 1066u32; +pub const TB_SETCOLORSCHEME: u32 = 8194u32; +pub const TB_SETDISABLEDIMAGELIST: u32 = 1078u32; +pub const TB_SETDRAWTEXTFLAGS: u32 = 1094u32; +pub const TB_SETEXTENDEDSTYLE: u32 = 1108u32; +pub const TB_SETHOTIMAGELIST: u32 = 1076u32; +pub const TB_SETHOTITEM: u32 = 1096u32; +pub const TB_SETHOTITEM2: u32 = 1118u32; +pub const TB_SETIMAGELIST: u32 = 1072u32; +pub const TB_SETINDENT: u32 = 1071u32; +pub const TB_SETINSERTMARK: u32 = 1104u32; +pub const TB_SETINSERTMARKCOLOR: u32 = 1112u32; +pub const TB_SETLISTGAP: u32 = 1120u32; +pub const TB_SETMAXTEXTROWS: u32 = 1084u32; +pub const TB_SETMETRICS: u32 = 1126u32; +pub const TB_SETPADDING: u32 = 1111u32; +pub const TB_SETPARENT: u32 = 1061u32; +pub const TB_SETPRESSEDIMAGELIST: u32 = 1128u32; +pub const TB_SETROWS: u32 = 1063u32; +pub const TB_SETSTATE: u32 = 1041u32; +pub const TB_SETSTYLE: u32 = 1080u32; +pub const TB_SETTOOLTIPS: u32 = 1060u32; +pub const TB_SETUNICODEFORMAT: u32 = 8197u32; +pub const TB_SETWINDOWTHEME: u32 = 8203u32; +pub const TB_THUMBPOSITION: u32 = 4u32; +pub const TB_THUMBTRACK: u32 = 5u32; +pub const TB_TOP: u32 = 6u32; +pub const TCHT_NOWHERE: TCHITTESTINFO_FLAGS = 1u32; +pub const TCHT_ONITEM: TCHITTESTINFO_FLAGS = 6u32; +pub const TCHT_ONITEMICON: TCHITTESTINFO_FLAGS = 2u32; +pub const TCHT_ONITEMLABEL: TCHITTESTINFO_FLAGS = 4u32; +pub const TCIF_IMAGE: TCITEMHEADERA_MASK = 2u32; +pub const TCIF_PARAM: TCITEMHEADERA_MASK = 8u32; +pub const TCIF_RTLREADING: TCITEMHEADERA_MASK = 4u32; +pub const TCIF_STATE: TCITEMHEADERA_MASK = 16u32; +pub const TCIF_TEXT: TCITEMHEADERA_MASK = 1u32; +pub const TCIS_BUTTONPRESSED: TAB_CONTROL_ITEM_STATE = 1u32; +pub const TCIS_HIGHLIGHTED: TAB_CONTROL_ITEM_STATE = 2u32; +pub const TCM_ADJUSTRECT: u32 = 4904u32; +pub const TCM_DELETEALLITEMS: u32 = 4873u32; +pub const TCM_DELETEITEM: u32 = 4872u32; +pub const TCM_DESELECTALL: u32 = 4914u32; +pub const TCM_FIRST: u32 = 4864u32; +pub const TCM_GETCURFOCUS: u32 = 4911u32; +pub const TCM_GETCURSEL: u32 = 4875u32; +pub const TCM_GETEXTENDEDSTYLE: u32 = 4917u32; +pub const TCM_GETIMAGELIST: u32 = 4866u32; +pub const TCM_GETITEM: u32 = 4924u32; +pub const TCM_GETITEMA: u32 = 4869u32; +pub const TCM_GETITEMCOUNT: u32 = 4868u32; +pub const TCM_GETITEMRECT: u32 = 4874u32; +pub const TCM_GETITEMW: u32 = 4924u32; +pub const TCM_GETROWCOUNT: u32 = 4908u32; +pub const TCM_GETTOOLTIPS: u32 = 4909u32; +pub const TCM_GETUNICODEFORMAT: u32 = 8198u32; +pub const TCM_HIGHLIGHTITEM: u32 = 4915u32; +pub const TCM_HITTEST: u32 = 4877u32; +pub const TCM_INSERTITEM: u32 = 4926u32; +pub const TCM_INSERTITEMA: u32 = 4871u32; +pub const TCM_INSERTITEMW: u32 = 4926u32; +pub const TCM_REMOVEIMAGE: u32 = 4906u32; +pub const TCM_SETCURFOCUS: u32 = 4912u32; +pub const TCM_SETCURSEL: u32 = 4876u32; +pub const TCM_SETEXTENDEDSTYLE: u32 = 4916u32; +pub const TCM_SETIMAGELIST: u32 = 4867u32; +pub const TCM_SETITEM: u32 = 4925u32; +pub const TCM_SETITEMA: u32 = 4870u32; +pub const TCM_SETITEMEXTRA: u32 = 4878u32; +pub const TCM_SETITEMSIZE: u32 = 4905u32; +pub const TCM_SETITEMW: u32 = 4925u32; +pub const TCM_SETMINTABWIDTH: u32 = 4913u32; +pub const TCM_SETPADDING: u32 = 4907u32; +pub const TCM_SETTOOLTIPS: u32 = 4910u32; +pub const TCM_SETUNICODEFORMAT: u32 = 8197u32; +pub const TCN_FIRST: u32 = 4294966746u32; +pub const TCN_FOCUSCHANGE: u32 = 4294966742u32; +pub const TCN_GETOBJECT: u32 = 4294966743u32; +pub const TCN_KEYDOWN: u32 = 4294966746u32; +pub const TCN_LAST: u32 = 4294966716u32; +pub const TCN_SELCHANGE: u32 = 4294966745u32; +pub const TCN_SELCHANGING: u32 = 4294966744u32; +pub const TCS_BOTTOM: u32 = 2u32; +pub const TCS_BUTTONS: u32 = 256u32; +pub const TCS_EX_FLATSEPARATORS: u32 = 1u32; +pub const TCS_EX_REGISTERDROP: u32 = 2u32; +pub const TCS_FIXEDWIDTH: u32 = 1024u32; +pub const TCS_FLATBUTTONS: u32 = 8u32; +pub const TCS_FOCUSNEVER: u32 = 32768u32; +pub const TCS_FOCUSONBUTTONDOWN: u32 = 4096u32; +pub const TCS_FORCEICONLEFT: u32 = 16u32; +pub const TCS_FORCELABELLEFT: u32 = 32u32; +pub const TCS_HOTTRACK: u32 = 64u32; +pub const TCS_MULTILINE: u32 = 512u32; +pub const TCS_MULTISELECT: u32 = 4u32; +pub const TCS_OWNERDRAWFIXED: u32 = 8192u32; +pub const TCS_RAGGEDRIGHT: u32 = 2048u32; +pub const TCS_RIGHT: u32 = 2u32; +pub const TCS_RIGHTJUSTIFY: u32 = 0u32; +pub const TCS_SCROLLOPPOSITE: u32 = 1u32; +pub const TCS_SINGLELINE: u32 = 0u32; +pub const TCS_TABS: u32 = 0u32; +pub const TCS_TOOLTIPS: u32 = 16384u32; +pub const TCS_VERTICAL: u32 = 128u32; +pub const TDCBF_ABORT_BUTTON: TASKDIALOG_COMMON_BUTTON_FLAGS = 65536i32; +pub const TDCBF_CANCEL_BUTTON: TASKDIALOG_COMMON_BUTTON_FLAGS = 8i32; +pub const TDCBF_CLOSE_BUTTON: TASKDIALOG_COMMON_BUTTON_FLAGS = 32i32; +pub const TDCBF_CONTINUE_BUTTON: TASKDIALOG_COMMON_BUTTON_FLAGS = 524288i32; +pub const TDCBF_HELP_BUTTON: TASKDIALOG_COMMON_BUTTON_FLAGS = 1048576i32; +pub const TDCBF_IGNORE_BUTTON: TASKDIALOG_COMMON_BUTTON_FLAGS = 131072i32; +pub const TDCBF_NO_BUTTON: TASKDIALOG_COMMON_BUTTON_FLAGS = 4i32; +pub const TDCBF_OK_BUTTON: TASKDIALOG_COMMON_BUTTON_FLAGS = 1i32; +pub const TDCBF_RETRY_BUTTON: TASKDIALOG_COMMON_BUTTON_FLAGS = 16i32; +pub const TDCBF_TRYAGAIN_BUTTON: TASKDIALOG_COMMON_BUTTON_FLAGS = 262144i32; +pub const TDCBF_YES_BUTTON: TASKDIALOG_COMMON_BUTTON_FLAGS = 2i32; +pub const TDE_CONTENT: TASKDIALOG_ELEMENTS = 0i32; +pub const TDE_EXPANDED_INFORMATION: TASKDIALOG_ELEMENTS = 1i32; +pub const TDE_FOOTER: TASKDIALOG_ELEMENTS = 2i32; +pub const TDE_MAIN_INSTRUCTION: TASKDIALOG_ELEMENTS = 3i32; +pub const TDF_ALLOW_DIALOG_CANCELLATION: TASKDIALOG_FLAGS = 8i32; +pub const TDF_CALLBACK_TIMER: TASKDIALOG_FLAGS = 2048i32; +pub const TDF_CAN_BE_MINIMIZED: TASKDIALOG_FLAGS = 32768i32; +pub const TDF_ENABLE_HYPERLINKS: TASKDIALOG_FLAGS = 1i32; +pub const TDF_EXPANDED_BY_DEFAULT: TASKDIALOG_FLAGS = 128i32; +pub const TDF_EXPAND_FOOTER_AREA: TASKDIALOG_FLAGS = 64i32; +pub const TDF_NO_DEFAULT_RADIO_BUTTON: TASKDIALOG_FLAGS = 16384i32; +pub const TDF_NO_SET_FOREGROUND: TASKDIALOG_FLAGS = 65536i32; +pub const TDF_POSITION_RELATIVE_TO_WINDOW: TASKDIALOG_FLAGS = 4096i32; +pub const TDF_RTL_LAYOUT: TASKDIALOG_FLAGS = 8192i32; +pub const TDF_SHOW_MARQUEE_PROGRESS_BAR: TASKDIALOG_FLAGS = 1024i32; +pub const TDF_SHOW_PROGRESS_BAR: TASKDIALOG_FLAGS = 512i32; +pub const TDF_SIZE_TO_CONTENT: TASKDIALOG_FLAGS = 16777216i32; +pub const TDF_USE_COMMAND_LINKS: TASKDIALOG_FLAGS = 16i32; +pub const TDF_USE_COMMAND_LINKS_NO_ICON: TASKDIALOG_FLAGS = 32i32; +pub const TDF_USE_HICON_FOOTER: TASKDIALOG_FLAGS = 4i32; +pub const TDF_USE_HICON_MAIN: TASKDIALOG_FLAGS = 2i32; +pub const TDF_VERIFICATION_FLAG_CHECKED: TASKDIALOG_FLAGS = 256i32; +pub const TDIE_ICON_FOOTER: TASKDIALOG_ICON_ELEMENTS = 1i32; +pub const TDIE_ICON_MAIN: TASKDIALOG_ICON_ELEMENTS = 0i32; +pub const TDLGCPS_STANDALONE: CONTENTPANESTATES = 1i32; +pub const TDLGEBS_EXPANDEDDISABLED: EXPANDOBUTTONSTATES = 8i32; +pub const TDLGEBS_EXPANDEDHOVER: EXPANDOBUTTONSTATES = 5i32; +pub const TDLGEBS_EXPANDEDNORMAL: EXPANDOBUTTONSTATES = 4i32; +pub const TDLGEBS_EXPANDEDPRESSED: EXPANDOBUTTONSTATES = 6i32; +pub const TDLGEBS_HOVER: EXPANDOBUTTONSTATES = 2i32; +pub const TDLGEBS_NORMAL: EXPANDOBUTTONSTATES = 1i32; +pub const TDLGEBS_NORMALDISABLED: EXPANDOBUTTONSTATES = 7i32; +pub const TDLGEBS_PRESSED: EXPANDOBUTTONSTATES = 3i32; +pub const TDLG_BUTTONSECTION: TASKDIALOGPARTS = 10i32; +pub const TDLG_BUTTONWRAPPER: TASKDIALOGPARTS = 11i32; +pub const TDLG_COMMANDLINKPANE: TASKDIALOGPARTS = 7i32; +pub const TDLG_CONTENTICON: TASKDIALOGPARTS = 5i32; +pub const TDLG_CONTENTPANE: TASKDIALOGPARTS = 4i32; +pub const TDLG_CONTROLPANE: TASKDIALOGPARTS = 9i32; +pub const TDLG_EXPANDEDCONTENT: TASKDIALOGPARTS = 6i32; +pub const TDLG_EXPANDEDFOOTERAREA: TASKDIALOGPARTS = 18i32; +pub const TDLG_EXPANDOBUTTON: TASKDIALOGPARTS = 13i32; +pub const TDLG_EXPANDOTEXT: TASKDIALOGPARTS = 12i32; +pub const TDLG_FOOTNOTEAREA: TASKDIALOGPARTS = 16i32; +pub const TDLG_FOOTNOTEPANE: TASKDIALOGPARTS = 15i32; +pub const TDLG_FOOTNOTESEPARATOR: TASKDIALOGPARTS = 17i32; +pub const TDLG_IMAGEALIGNMENT: TASKDIALOGPARTS = 20i32; +pub const TDLG_MAINICON: TASKDIALOGPARTS = 3i32; +pub const TDLG_MAININSTRUCTIONPANE: TASKDIALOGPARTS = 2i32; +pub const TDLG_PRIMARYPANEL: TASKDIALOGPARTS = 1i32; +pub const TDLG_PROGRESSBAR: TASKDIALOGPARTS = 19i32; +pub const TDLG_RADIOBUTTONPANE: TASKDIALOGPARTS = 21i32; +pub const TDLG_SECONDARYPANEL: TASKDIALOGPARTS = 8i32; +pub const TDLG_VERIFICATIONTEXT: TASKDIALOGPARTS = 14i32; +pub const TDM_CLICK_BUTTON: TASKDIALOG_MESSAGES = 1126i32; +pub const TDM_CLICK_RADIO_BUTTON: TASKDIALOG_MESSAGES = 1134i32; +pub const TDM_CLICK_VERIFICATION: TASKDIALOG_MESSAGES = 1137i32; +pub const TDM_ENABLE_BUTTON: TASKDIALOG_MESSAGES = 1135i32; +pub const TDM_ENABLE_RADIO_BUTTON: TASKDIALOG_MESSAGES = 1136i32; +pub const TDM_NAVIGATE_PAGE: TASKDIALOG_MESSAGES = 1125i32; +pub const TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE: TASKDIALOG_MESSAGES = 1139i32; +pub const TDM_SET_ELEMENT_TEXT: TASKDIALOG_MESSAGES = 1132i32; +pub const TDM_SET_MARQUEE_PROGRESS_BAR: TASKDIALOG_MESSAGES = 1127i32; +pub const TDM_SET_PROGRESS_BAR_MARQUEE: TASKDIALOG_MESSAGES = 1131i32; +pub const TDM_SET_PROGRESS_BAR_POS: TASKDIALOG_MESSAGES = 1130i32; +pub const TDM_SET_PROGRESS_BAR_RANGE: TASKDIALOG_MESSAGES = 1129i32; +pub const TDM_SET_PROGRESS_BAR_STATE: TASKDIALOG_MESSAGES = 1128i32; +pub const TDM_UPDATE_ELEMENT_TEXT: TASKDIALOG_MESSAGES = 1138i32; +pub const TDM_UPDATE_ICON: TASKDIALOG_MESSAGES = 1140i32; +pub const TDN_BUTTON_CLICKED: TASKDIALOG_NOTIFICATIONS = 2i32; +pub const TDN_CREATED: TASKDIALOG_NOTIFICATIONS = 0i32; +pub const TDN_DESTROYED: TASKDIALOG_NOTIFICATIONS = 5i32; +pub const TDN_DIALOG_CONSTRUCTED: TASKDIALOG_NOTIFICATIONS = 7i32; +pub const TDN_EXPANDO_BUTTON_CLICKED: TASKDIALOG_NOTIFICATIONS = 10i32; +pub const TDN_HELP: TASKDIALOG_NOTIFICATIONS = 9i32; +pub const TDN_HYPERLINK_CLICKED: TASKDIALOG_NOTIFICATIONS = 3i32; +pub const TDN_NAVIGATED: TASKDIALOG_NOTIFICATIONS = 1i32; +pub const TDN_RADIO_BUTTON_CLICKED: TASKDIALOG_NOTIFICATIONS = 6i32; +pub const TDN_TIMER: TASKDIALOG_NOTIFICATIONS = 4i32; +pub const TDN_VERIFICATION_CLICKED: TASKDIALOG_NOTIFICATIONS = 8i32; +pub const TDP_FLASHBUTTON: TASKBANDPARTS = 2i32; +pub const TDP_FLASHBUTTONGROUPMENU: TASKBANDPARTS = 3i32; +pub const TDP_GROUPCOUNT: TASKBANDPARTS = 1i32; +pub const TD_ERROR_ICON: ::windows_sys::core::PCWSTR = 65534u16 as _; +pub const TD_INFORMATION_ICON: ::windows_sys::core::PCWSTR = 65533u16 as _; +pub const TD_SHIELD_ICON: ::windows_sys::core::PCWSTR = 65532u16 as _; +pub const TD_WARNING_ICON: ::windows_sys::core::PCWSTR = 65535u16 as _; +pub const TEXT_BODYTEXT: TEXTSTYLEPARTS = 4i32; +pub const TEXT_BODYTITLE: TEXTSTYLEPARTS = 3i32; +pub const TEXT_CONTROLLABEL: TEXTSTYLEPARTS = 9i32; +pub const TEXT_EXPANDED: TEXTSTYLEPARTS = 7i32; +pub const TEXT_HYPERLINKTEXT: TEXTSTYLEPARTS = 6i32; +pub const TEXT_INSTRUCTION: TEXTSTYLEPARTS = 2i32; +pub const TEXT_LABEL: TEXTSTYLEPARTS = 8i32; +pub const TEXT_MAININSTRUCTION: TEXTSTYLEPARTS = 1i32; +pub const TEXT_SECONDARYTEXT: TEXTSTYLEPARTS = 5i32; +pub const TIBES_DISABLED: TABITEMBOTHEDGESTATES = 4i32; +pub const TIBES_FOCUSED: TABITEMBOTHEDGESTATES = 5i32; +pub const TIBES_HOT: TABITEMBOTHEDGESTATES = 2i32; +pub const TIBES_NORMAL: TABITEMBOTHEDGESTATES = 1i32; +pub const TIBES_SELECTED: TABITEMBOTHEDGESTATES = 3i32; +pub const TILES_DISABLED: TABITEMLEFTEDGESTATES = 4i32; +pub const TILES_FOCUSED: TABITEMLEFTEDGESTATES = 5i32; +pub const TILES_HOT: TABITEMLEFTEDGESTATES = 2i32; +pub const TILES_NORMAL: TABITEMLEFTEDGESTATES = 1i32; +pub const TILES_SELECTED: TABITEMLEFTEDGESTATES = 3i32; +pub const TIRES_DISABLED: TABITEMRIGHTEDGESTATES = 4i32; +pub const TIRES_FOCUSED: TABITEMRIGHTEDGESTATES = 5i32; +pub const TIRES_HOT: TABITEMRIGHTEDGESTATES = 2i32; +pub const TIRES_NORMAL: TABITEMRIGHTEDGESTATES = 1i32; +pub const TIRES_SELECTED: TABITEMRIGHTEDGESTATES = 3i32; +pub const TIS_DISABLED: TABITEMSTATES = 4i32; +pub const TIS_FOCUSED: TABITEMSTATES = 5i32; +pub const TIS_HOT: TABITEMSTATES = 2i32; +pub const TIS_NORMAL: TABITEMSTATES = 1i32; +pub const TIS_SELECTED: TABITEMSTATES = 3i32; +pub const TKP_THUMB: TRACKBARPARTS = 3i32; +pub const TKP_THUMBBOTTOM: TRACKBARPARTS = 4i32; +pub const TKP_THUMBLEFT: TRACKBARPARTS = 7i32; +pub const TKP_THUMBRIGHT: TRACKBARPARTS = 8i32; +pub const TKP_THUMBTOP: TRACKBARPARTS = 5i32; +pub const TKP_THUMBVERT: TRACKBARPARTS = 6i32; +pub const TKP_TICS: TRACKBARPARTS = 9i32; +pub const TKP_TICSVERT: TRACKBARPARTS = 10i32; +pub const TKP_TRACK: TRACKBARPARTS = 1i32; +pub const TKP_TRACKVERT: TRACKBARPARTS = 2i32; +pub const TKS_NORMAL: TRACKBARSTYLESTATES = 1i32; +pub const TMTVS_RESERVEDHIGH: u32 = 19999u32; +pub const TMTVS_RESERVEDLOW: u32 = 100000u32; +pub const TMT_ACCENTCOLORHINT: THEME_PROPERTY_SYMBOL_ID = 3823u32; +pub const TMT_ACTIVEBORDER: THEME_PROPERTY_SYMBOL_ID = 1611u32; +pub const TMT_ACTIVECAPTION: THEME_PROPERTY_SYMBOL_ID = 1603u32; +pub const TMT_ALIAS: THEME_PROPERTY_SYMBOL_ID = 1404u32; +pub const TMT_ALPHALEVEL: THEME_PROPERTY_SYMBOL_ID = 2402u32; +pub const TMT_ALPHATHRESHOLD: THEME_PROPERTY_SYMBOL_ID = 2415u32; +pub const TMT_ALWAYSSHOWSIZINGBAR: THEME_PROPERTY_SYMBOL_ID = 2208u32; +pub const TMT_ANIMATIONBUTTONRECT: THEME_PROPERTY_SYMBOL_ID = 5005u32; +pub const TMT_ANIMATIONDELAY: THEME_PROPERTY_SYMBOL_ID = 2428u32; +pub const TMT_ANIMATIONDURATION: THEME_PROPERTY_SYMBOL_ID = 5006u32; +pub const TMT_APPWORKSPACE: THEME_PROPERTY_SYMBOL_ID = 1613u32; +pub const TMT_ATLASIMAGE: THEME_PROPERTY_SYMBOL_ID = 8000u32; +pub const TMT_ATLASINPUTIMAGE: THEME_PROPERTY_SYMBOL_ID = 8001u32; +pub const TMT_ATLASRECT: THEME_PROPERTY_SYMBOL_ID = 8002u32; +pub const TMT_AUTHOR: THEME_PROPERTY_SYMBOL_ID = 604u32; +pub const TMT_AUTOSIZE: THEME_PROPERTY_SYMBOL_ID = 2202u32; +pub const TMT_BACKGROUND: THEME_PROPERTY_SYMBOL_ID = 1602u32; +pub const TMT_BGFILL: THEME_PROPERTY_SYMBOL_ID = 2205u32; +pub const TMT_BGTYPE: THEME_PROPERTY_SYMBOL_ID = 4001u32; +pub const TMT_BITMAPREF: THEME_PROPERTY_SYMBOL_ID = 215u32; +pub const TMT_BLENDCOLOR: THEME_PROPERTY_SYMBOL_ID = 5003u32; +pub const TMT_BODYFONT: THEME_PROPERTY_SYMBOL_ID = 809u32; +pub const TMT_BODYTEXTCOLOR: THEME_PROPERTY_SYMBOL_ID = 3827u32; +pub const TMT_BOOL: THEME_PROPERTY_SYMBOL_ID = 203u32; +pub const TMT_BORDERCOLOR: THEME_PROPERTY_SYMBOL_ID = 3801u32; +pub const TMT_BORDERCOLORHINT: THEME_PROPERTY_SYMBOL_ID = 3822u32; +pub const TMT_BORDERONLY: THEME_PROPERTY_SYMBOL_ID = 2203u32; +pub const TMT_BORDERSIZE: THEME_PROPERTY_SYMBOL_ID = 2403u32; +pub const TMT_BORDERTYPE: THEME_PROPERTY_SYMBOL_ID = 4002u32; +pub const TMT_BTNFACE: THEME_PROPERTY_SYMBOL_ID = 1616u32; +pub const TMT_BTNHIGHLIGHT: THEME_PROPERTY_SYMBOL_ID = 1621u32; +pub const TMT_BTNSHADOW: THEME_PROPERTY_SYMBOL_ID = 1617u32; +pub const TMT_BTNTEXT: THEME_PROPERTY_SYMBOL_ID = 1619u32; +pub const TMT_BUTTONALTERNATEFACE: THEME_PROPERTY_SYMBOL_ID = 1626u32; +pub const TMT_CAPTIONBARHEIGHT: THEME_PROPERTY_SYMBOL_ID = 1205u32; +pub const TMT_CAPTIONBARWIDTH: THEME_PROPERTY_SYMBOL_ID = 1204u32; +pub const TMT_CAPTIONFONT: THEME_PROPERTY_SYMBOL_ID = 801u32; +pub const TMT_CAPTIONMARGINS: THEME_PROPERTY_SYMBOL_ID = 3603u32; +pub const TMT_CAPTIONTEXT: THEME_PROPERTY_SYMBOL_ID = 1610u32; +pub const TMT_CHARSET: THEME_PROPERTY_SYMBOL_ID = 403u32; +pub const TMT_CLASSICVALUE: THEME_PROPERTY_SYMBOL_ID = 3202u32; +pub const TMT_COLOR: THEME_PROPERTY_SYMBOL_ID = 204u32; +pub const TMT_COLORIZATIONCOLOR: THEME_PROPERTY_SYMBOL_ID = 2431u32; +pub const TMT_COLORIZATIONOPACITY: THEME_PROPERTY_SYMBOL_ID = 2432u32; +pub const TMT_COLORSCHEMES: THEME_PROPERTY_SYMBOL_ID = 401u32; +pub const TMT_COMPANY: THEME_PROPERTY_SYMBOL_ID = 603u32; +pub const TMT_COMPOSITED: THEME_PROPERTY_SYMBOL_ID = 2204u32; +pub const TMT_COMPOSITEDOPAQUE: THEME_PROPERTY_SYMBOL_ID = 2219u32; +pub const TMT_CONTENTALIGNMENT: THEME_PROPERTY_SYMBOL_ID = 4006u32; +pub const TMT_CONTENTMARGINS: THEME_PROPERTY_SYMBOL_ID = 3602u32; +pub const TMT_COPYRIGHT: THEME_PROPERTY_SYMBOL_ID = 605u32; +pub const TMT_CSSNAME: THEME_PROPERTY_SYMBOL_ID = 1401u32; +pub const TMT_CUSTOMSPLITRECT: THEME_PROPERTY_SYMBOL_ID = 5004u32; +pub const TMT_DEFAULTPANESIZE: THEME_PROPERTY_SYMBOL_ID = 5002u32; +pub const TMT_DESCRIPTION: THEME_PROPERTY_SYMBOL_ID = 608u32; +pub const TMT_DIBDATA: THEME_PROPERTY_SYMBOL_ID = 2u32; +pub const TMT_DISKSTREAM: THEME_PROPERTY_SYMBOL_ID = 213u32; +pub const TMT_DISPLAYNAME: THEME_PROPERTY_SYMBOL_ID = 601u32; +pub const TMT_DKSHADOW3D: THEME_PROPERTY_SYMBOL_ID = 1622u32; +pub const TMT_DRAWBORDERS: THEME_PROPERTY_SYMBOL_ID = 2214u32; +pub const TMT_EDGEDKSHADOWCOLOR: THEME_PROPERTY_SYMBOL_ID = 3807u32; +pub const TMT_EDGEFILLCOLOR: THEME_PROPERTY_SYMBOL_ID = 3808u32; +pub const TMT_EDGEHIGHLIGHTCOLOR: THEME_PROPERTY_SYMBOL_ID = 3805u32; +pub const TMT_EDGELIGHTCOLOR: THEME_PROPERTY_SYMBOL_ID = 3804u32; +pub const TMT_EDGESHADOWCOLOR: THEME_PROPERTY_SYMBOL_ID = 3806u32; +pub const TMT_ENUM: THEME_PROPERTY_SYMBOL_ID = 200u32; +pub const TMT_FILENAME: THEME_PROPERTY_SYMBOL_ID = 206u32; +pub const TMT_FILLCOLOR: THEME_PROPERTY_SYMBOL_ID = 3802u32; +pub const TMT_FILLCOLORHINT: THEME_PROPERTY_SYMBOL_ID = 3821u32; +pub const TMT_FILLTYPE: THEME_PROPERTY_SYMBOL_ID = 4003u32; +pub const TMT_FIRSTBOOL: THEME_PROPERTY_SYMBOL_ID = 1001u32; +pub const TMT_FIRSTCOLOR: THEME_PROPERTY_SYMBOL_ID = 1601u32; +pub const TMT_FIRSTFONT: THEME_PROPERTY_SYMBOL_ID = 801u32; +pub const TMT_FIRSTINT: THEME_PROPERTY_SYMBOL_ID = 1301u32; +pub const TMT_FIRSTSIZE: THEME_PROPERTY_SYMBOL_ID = 1201u32; +pub const TMT_FIRSTSTRING: THEME_PROPERTY_SYMBOL_ID = 1401u32; +pub const TMT_FIRST_RCSTRING_NAME: THEME_PROPERTY_SYMBOL_ID = 601u32; +pub const TMT_FLATMENUS: THEME_PROPERTY_SYMBOL_ID = 1001u32; +pub const TMT_FLOAT: THEME_PROPERTY_SYMBOL_ID = 216u32; +pub const TMT_FLOATLIST: THEME_PROPERTY_SYMBOL_ID = 217u32; +pub const TMT_FONT: THEME_PROPERTY_SYMBOL_ID = 210u32; +pub const TMT_FRAMESPERSECOND: THEME_PROPERTY_SYMBOL_ID = 2426u32; +pub const TMT_FROMCOLOR1: THEME_PROPERTY_SYMBOL_ID = 2001u32; +pub const TMT_FROMCOLOR2: THEME_PROPERTY_SYMBOL_ID = 2002u32; +pub const TMT_FROMCOLOR3: THEME_PROPERTY_SYMBOL_ID = 2003u32; +pub const TMT_FROMCOLOR4: THEME_PROPERTY_SYMBOL_ID = 2004u32; +pub const TMT_FROMCOLOR5: THEME_PROPERTY_SYMBOL_ID = 2005u32; +pub const TMT_FROMHUE1: THEME_PROPERTY_SYMBOL_ID = 1801u32; +pub const TMT_FROMHUE2: THEME_PROPERTY_SYMBOL_ID = 1802u32; +pub const TMT_FROMHUE3: THEME_PROPERTY_SYMBOL_ID = 1803u32; +pub const TMT_FROMHUE4: THEME_PROPERTY_SYMBOL_ID = 1804u32; +pub const TMT_FROMHUE5: THEME_PROPERTY_SYMBOL_ID = 1805u32; +pub const TMT_GLOWCOLOR: THEME_PROPERTY_SYMBOL_ID = 3816u32; +pub const TMT_GLOWINTENSITY: THEME_PROPERTY_SYMBOL_ID = 2429u32; +pub const TMT_GLYPHDIBDATA: THEME_PROPERTY_SYMBOL_ID = 8u32; +pub const TMT_GLYPHFONT: THEME_PROPERTY_SYMBOL_ID = 2601u32; +pub const TMT_GLYPHFONTSIZINGTYPE: THEME_PROPERTY_SYMBOL_ID = 4014u32; +pub const TMT_GLYPHIMAGEFILE: THEME_PROPERTY_SYMBOL_ID = 3008u32; +pub const TMT_GLYPHINDEX: THEME_PROPERTY_SYMBOL_ID = 2418u32; +pub const TMT_GLYPHONLY: THEME_PROPERTY_SYMBOL_ID = 2207u32; +pub const TMT_GLYPHTEXTCOLOR: THEME_PROPERTY_SYMBOL_ID = 3819u32; +pub const TMT_GLYPHTRANSPARENT: THEME_PROPERTY_SYMBOL_ID = 2206u32; +pub const TMT_GLYPHTRANSPARENTCOLOR: THEME_PROPERTY_SYMBOL_ID = 3820u32; +pub const TMT_GLYPHTYPE: THEME_PROPERTY_SYMBOL_ID = 4012u32; +pub const TMT_GRADIENTACTIVECAPTION: THEME_PROPERTY_SYMBOL_ID = 1628u32; +pub const TMT_GRADIENTCOLOR1: THEME_PROPERTY_SYMBOL_ID = 3810u32; +pub const TMT_GRADIENTCOLOR2: THEME_PROPERTY_SYMBOL_ID = 3811u32; +pub const TMT_GRADIENTCOLOR3: THEME_PROPERTY_SYMBOL_ID = 3812u32; +pub const TMT_GRADIENTCOLOR4: THEME_PROPERTY_SYMBOL_ID = 3813u32; +pub const TMT_GRADIENTCOLOR5: THEME_PROPERTY_SYMBOL_ID = 3814u32; +pub const TMT_GRADIENTINACTIVECAPTION: THEME_PROPERTY_SYMBOL_ID = 1629u32; +pub const TMT_GRADIENTRATIO1: THEME_PROPERTY_SYMBOL_ID = 2406u32; +pub const TMT_GRADIENTRATIO2: THEME_PROPERTY_SYMBOL_ID = 2407u32; +pub const TMT_GRADIENTRATIO3: THEME_PROPERTY_SYMBOL_ID = 2408u32; +pub const TMT_GRADIENTRATIO4: THEME_PROPERTY_SYMBOL_ID = 2409u32; +pub const TMT_GRADIENTRATIO5: THEME_PROPERTY_SYMBOL_ID = 2410u32; +pub const TMT_GRAYTEXT: THEME_PROPERTY_SYMBOL_ID = 1618u32; +pub const TMT_HALIGN: THEME_PROPERTY_SYMBOL_ID = 4005u32; +pub const TMT_HBITMAP: THEME_PROPERTY_SYMBOL_ID = 212u32; +pub const TMT_HEADING1FONT: THEME_PROPERTY_SYMBOL_ID = 807u32; +pub const TMT_HEADING1TEXTCOLOR: THEME_PROPERTY_SYMBOL_ID = 3825u32; +pub const TMT_HEADING2FONT: THEME_PROPERTY_SYMBOL_ID = 808u32; +pub const TMT_HEADING2TEXTCOLOR: THEME_PROPERTY_SYMBOL_ID = 3826u32; +pub const TMT_HEIGHT: THEME_PROPERTY_SYMBOL_ID = 2417u32; +pub const TMT_HIGHLIGHT: THEME_PROPERTY_SYMBOL_ID = 1614u32; +pub const TMT_HIGHLIGHTTEXT: THEME_PROPERTY_SYMBOL_ID = 1615u32; +pub const TMT_HOTTRACKING: THEME_PROPERTY_SYMBOL_ID = 1627u32; +pub const TMT_ICONEFFECT: THEME_PROPERTY_SYMBOL_ID = 4009u32; +pub const TMT_ICONTITLEFONT: THEME_PROPERTY_SYMBOL_ID = 806u32; +pub const TMT_IMAGECOUNT: THEME_PROPERTY_SYMBOL_ID = 2401u32; +pub const TMT_IMAGEFILE: THEME_PROPERTY_SYMBOL_ID = 3001u32; +pub const TMT_IMAGEFILE1: THEME_PROPERTY_SYMBOL_ID = 3002u32; +pub const TMT_IMAGEFILE2: THEME_PROPERTY_SYMBOL_ID = 3003u32; +pub const TMT_IMAGEFILE3: THEME_PROPERTY_SYMBOL_ID = 3004u32; +pub const TMT_IMAGEFILE4: THEME_PROPERTY_SYMBOL_ID = 3005u32; +pub const TMT_IMAGEFILE5: THEME_PROPERTY_SYMBOL_ID = 3006u32; +pub const TMT_IMAGEFILE6: THEME_PROPERTY_SYMBOL_ID = 3009u32; +pub const TMT_IMAGEFILE7: THEME_PROPERTY_SYMBOL_ID = 3010u32; +pub const TMT_IMAGELAYOUT: THEME_PROPERTY_SYMBOL_ID = 4011u32; +pub const TMT_IMAGESELECTTYPE: THEME_PROPERTY_SYMBOL_ID = 4013u32; +pub const TMT_INACTIVEBORDER: THEME_PROPERTY_SYMBOL_ID = 1612u32; +pub const TMT_INACTIVECAPTION: THEME_PROPERTY_SYMBOL_ID = 1604u32; +pub const TMT_INACTIVECAPTIONTEXT: THEME_PROPERTY_SYMBOL_ID = 1620u32; +pub const TMT_INFOBK: THEME_PROPERTY_SYMBOL_ID = 1625u32; +pub const TMT_INFOTEXT: THEME_PROPERTY_SYMBOL_ID = 1624u32; +pub const TMT_INT: THEME_PROPERTY_SYMBOL_ID = 202u32; +pub const TMT_INTEGRALSIZING: THEME_PROPERTY_SYMBOL_ID = 2211u32; +pub const TMT_INTLIST: THEME_PROPERTY_SYMBOL_ID = 211u32; +pub const TMT_LASTBOOL: THEME_PROPERTY_SYMBOL_ID = 1001u32; +pub const TMT_LASTCOLOR: THEME_PROPERTY_SYMBOL_ID = 1631u32; +pub const TMT_LASTFONT: THEME_PROPERTY_SYMBOL_ID = 809u32; +pub const TMT_LASTINT: THEME_PROPERTY_SYMBOL_ID = 1301u32; +pub const TMT_LASTSIZE: THEME_PROPERTY_SYMBOL_ID = 1210u32; +pub const TMT_LASTSTRING: THEME_PROPERTY_SYMBOL_ID = 1404u32; +pub const TMT_LASTUPDATED: THEME_PROPERTY_SYMBOL_ID = 1403u32; +pub const TMT_LAST_RCSTRING_NAME: THEME_PROPERTY_SYMBOL_ID = 608u32; +pub const TMT_LIGHT3D: THEME_PROPERTY_SYMBOL_ID = 1623u32; +pub const TMT_LOCALIZEDMIRRORIMAGE: THEME_PROPERTY_SYMBOL_ID = 2220u32; +pub const TMT_MARGINS: THEME_PROPERTY_SYMBOL_ID = 205u32; +pub const TMT_MENU: THEME_PROPERTY_SYMBOL_ID = 1605u32; +pub const TMT_MENUBAR: THEME_PROPERTY_SYMBOL_ID = 1631u32; +pub const TMT_MENUBARHEIGHT: THEME_PROPERTY_SYMBOL_ID = 1209u32; +pub const TMT_MENUBARWIDTH: THEME_PROPERTY_SYMBOL_ID = 1208u32; +pub const TMT_MENUFONT: THEME_PROPERTY_SYMBOL_ID = 803u32; +pub const TMT_MENUHILIGHT: THEME_PROPERTY_SYMBOL_ID = 1630u32; +pub const TMT_MENUTEXT: THEME_PROPERTY_SYMBOL_ID = 1608u32; +pub const TMT_MINCOLORDEPTH: THEME_PROPERTY_SYMBOL_ID = 1301u32; +pub const TMT_MINDPI1: THEME_PROPERTY_SYMBOL_ID = 2420u32; +pub const TMT_MINDPI2: THEME_PROPERTY_SYMBOL_ID = 2421u32; +pub const TMT_MINDPI3: THEME_PROPERTY_SYMBOL_ID = 2422u32; +pub const TMT_MINDPI4: THEME_PROPERTY_SYMBOL_ID = 2423u32; +pub const TMT_MINDPI5: THEME_PROPERTY_SYMBOL_ID = 2424u32; +pub const TMT_MINDPI6: THEME_PROPERTY_SYMBOL_ID = 2433u32; +pub const TMT_MINDPI7: THEME_PROPERTY_SYMBOL_ID = 2434u32; +pub const TMT_MINSIZE: THEME_PROPERTY_SYMBOL_ID = 3403u32; +pub const TMT_MINSIZE1: THEME_PROPERTY_SYMBOL_ID = 3404u32; +pub const TMT_MINSIZE2: THEME_PROPERTY_SYMBOL_ID = 3405u32; +pub const TMT_MINSIZE3: THEME_PROPERTY_SYMBOL_ID = 3406u32; +pub const TMT_MINSIZE4: THEME_PROPERTY_SYMBOL_ID = 3407u32; +pub const TMT_MINSIZE5: THEME_PROPERTY_SYMBOL_ID = 3408u32; +pub const TMT_MINSIZE6: THEME_PROPERTY_SYMBOL_ID = 3410u32; +pub const TMT_MINSIZE7: THEME_PROPERTY_SYMBOL_ID = 3411u32; +pub const TMT_MIRRORIMAGE: THEME_PROPERTY_SYMBOL_ID = 2209u32; +pub const TMT_MSGBOXFONT: THEME_PROPERTY_SYMBOL_ID = 805u32; +pub const TMT_NAME: THEME_PROPERTY_SYMBOL_ID = 600u32; +pub const TMT_NOETCHEDEFFECT: THEME_PROPERTY_SYMBOL_ID = 2215u32; +pub const TMT_NORMALSIZE: THEME_PROPERTY_SYMBOL_ID = 3409u32; +pub const TMT_OFFSET: THEME_PROPERTY_SYMBOL_ID = 3401u32; +pub const TMT_OFFSETTYPE: THEME_PROPERTY_SYMBOL_ID = 4008u32; +pub const TMT_OPACITY: THEME_PROPERTY_SYMBOL_ID = 2430u32; +pub const TMT_PADDEDBORDERWIDTH: THEME_PROPERTY_SYMBOL_ID = 1210u32; +pub const TMT_PIXELSPERFRAME: THEME_PROPERTY_SYMBOL_ID = 2427u32; +pub const TMT_POSITION: THEME_PROPERTY_SYMBOL_ID = 208u32; +pub const TMT_PROGRESSCHUNKSIZE: THEME_PROPERTY_SYMBOL_ID = 2411u32; +pub const TMT_PROGRESSSPACESIZE: THEME_PROPERTY_SYMBOL_ID = 2412u32; +pub const TMT_RECT: THEME_PROPERTY_SYMBOL_ID = 209u32; +pub const TMT_RESERVEDHIGH: THEME_PROPERTY_SYMBOL_ID = 7999u32; +pub const TMT_RESERVEDLOW: THEME_PROPERTY_SYMBOL_ID = 0u32; +pub const TMT_ROUNDCORNERHEIGHT: THEME_PROPERTY_SYMBOL_ID = 2405u32; +pub const TMT_ROUNDCORNERWIDTH: THEME_PROPERTY_SYMBOL_ID = 2404u32; +pub const TMT_SATURATION: THEME_PROPERTY_SYMBOL_ID = 2413u32; +pub const TMT_SCALEDBACKGROUND: THEME_PROPERTY_SYMBOL_ID = 7001u32; +pub const TMT_SCROLLBAR: THEME_PROPERTY_SYMBOL_ID = 1601u32; +pub const TMT_SCROLLBARHEIGHT: THEME_PROPERTY_SYMBOL_ID = 1203u32; +pub const TMT_SCROLLBARWIDTH: THEME_PROPERTY_SYMBOL_ID = 1202u32; +pub const TMT_SHADOWCOLOR: THEME_PROPERTY_SYMBOL_ID = 3815u32; +pub const TMT_SIZE: THEME_PROPERTY_SYMBOL_ID = 207u32; +pub const TMT_SIZES: THEME_PROPERTY_SYMBOL_ID = 402u32; +pub const TMT_SIZINGBORDERWIDTH: THEME_PROPERTY_SYMBOL_ID = 1201u32; +pub const TMT_SIZINGMARGINS: THEME_PROPERTY_SYMBOL_ID = 3601u32; +pub const TMT_SIZINGTYPE: THEME_PROPERTY_SYMBOL_ID = 4004u32; +pub const TMT_SMALLCAPTIONFONT: THEME_PROPERTY_SYMBOL_ID = 802u32; +pub const TMT_SMCAPTIONBARHEIGHT: THEME_PROPERTY_SYMBOL_ID = 1207u32; +pub const TMT_SMCAPTIONBARWIDTH: THEME_PROPERTY_SYMBOL_ID = 1206u32; +pub const TMT_SOURCEGROW: THEME_PROPERTY_SYMBOL_ID = 2212u32; +pub const TMT_SOURCESHRINK: THEME_PROPERTY_SYMBOL_ID = 2213u32; +pub const TMT_STATUSFONT: THEME_PROPERTY_SYMBOL_ID = 804u32; +pub const TMT_STREAM: THEME_PROPERTY_SYMBOL_ID = 214u32; +pub const TMT_STRING: THEME_PROPERTY_SYMBOL_ID = 201u32; +pub const TMT_TEXT: THEME_PROPERTY_SYMBOL_ID = 3201u32; +pub const TMT_TEXTAPPLYOVERLAY: THEME_PROPERTY_SYMBOL_ID = 2216u32; +pub const TMT_TEXTBORDERCOLOR: THEME_PROPERTY_SYMBOL_ID = 3817u32; +pub const TMT_TEXTBORDERSIZE: THEME_PROPERTY_SYMBOL_ID = 2414u32; +pub const TMT_TEXTCOLOR: THEME_PROPERTY_SYMBOL_ID = 3803u32; +pub const TMT_TEXTCOLORHINT: THEME_PROPERTY_SYMBOL_ID = 3824u32; +pub const TMT_TEXTGLOW: THEME_PROPERTY_SYMBOL_ID = 2217u32; +pub const TMT_TEXTGLOWSIZE: THEME_PROPERTY_SYMBOL_ID = 2425u32; +pub const TMT_TEXTITALIC: THEME_PROPERTY_SYMBOL_ID = 2218u32; +pub const TMT_TEXTSHADOWCOLOR: THEME_PROPERTY_SYMBOL_ID = 3818u32; +pub const TMT_TEXTSHADOWOFFSET: THEME_PROPERTY_SYMBOL_ID = 3402u32; +pub const TMT_TEXTSHADOWTYPE: THEME_PROPERTY_SYMBOL_ID = 4010u32; +pub const TMT_TOCOLOR1: THEME_PROPERTY_SYMBOL_ID = 2006u32; +pub const TMT_TOCOLOR2: THEME_PROPERTY_SYMBOL_ID = 2007u32; +pub const TMT_TOCOLOR3: THEME_PROPERTY_SYMBOL_ID = 2008u32; +pub const TMT_TOCOLOR4: THEME_PROPERTY_SYMBOL_ID = 2009u32; +pub const TMT_TOCOLOR5: THEME_PROPERTY_SYMBOL_ID = 2010u32; +pub const TMT_TOHUE1: THEME_PROPERTY_SYMBOL_ID = 1806u32; +pub const TMT_TOHUE2: THEME_PROPERTY_SYMBOL_ID = 1807u32; +pub const TMT_TOHUE3: THEME_PROPERTY_SYMBOL_ID = 1808u32; +pub const TMT_TOHUE4: THEME_PROPERTY_SYMBOL_ID = 1809u32; +pub const TMT_TOHUE5: THEME_PROPERTY_SYMBOL_ID = 1810u32; +pub const TMT_TOOLTIP: THEME_PROPERTY_SYMBOL_ID = 602u32; +pub const TMT_TRANSITIONDURATIONS: THEME_PROPERTY_SYMBOL_ID = 6000u32; +pub const TMT_TRANSPARENT: THEME_PROPERTY_SYMBOL_ID = 2201u32; +pub const TMT_TRANSPARENTCOLOR: THEME_PROPERTY_SYMBOL_ID = 3809u32; +pub const TMT_TRUESIZESCALINGTYPE: THEME_PROPERTY_SYMBOL_ID = 4015u32; +pub const TMT_TRUESIZESTRETCHMARK: THEME_PROPERTY_SYMBOL_ID = 2419u32; +pub const TMT_UNIFORMSIZING: THEME_PROPERTY_SYMBOL_ID = 2210u32; +pub const TMT_URL: THEME_PROPERTY_SYMBOL_ID = 606u32; +pub const TMT_USERPICTURE: THEME_PROPERTY_SYMBOL_ID = 5001u32; +pub const TMT_VALIGN: THEME_PROPERTY_SYMBOL_ID = 4007u32; +pub const TMT_VERSION: THEME_PROPERTY_SYMBOL_ID = 607u32; +pub const TMT_WIDTH: THEME_PROPERTY_SYMBOL_ID = 2416u32; +pub const TMT_WINDOW: THEME_PROPERTY_SYMBOL_ID = 1606u32; +pub const TMT_WINDOWFRAME: THEME_PROPERTY_SYMBOL_ID = 1607u32; +pub const TMT_WINDOWTEXT: THEME_PROPERTY_SYMBOL_ID = 1609u32; +pub const TMT_XMLNAME: THEME_PROPERTY_SYMBOL_ID = 1402u32; +pub const TNP_ANIMBACKGROUND: TRAYNOTIFYPARTS = 2i32; +pub const TNP_BACKGROUND: TRAYNOTIFYPARTS = 1i32; +pub const TOOLBARCLASSNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ToolbarWindow32"); +pub const TOOLBARCLASSNAMEA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ToolbarWindow32"); +pub const TOOLBARCLASSNAMEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ToolbarWindow32"); +pub const TOOLTIPS_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("tooltips_class32"); +pub const TOOLTIPS_CLASSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("tooltips_class32"); +pub const TOOLTIPS_CLASSW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("tooltips_class32"); +pub const TP_BUTTON: TOOLBARPARTS = 1i32; +pub const TP_DROPDOWNBUTTON: TOOLBARPARTS = 2i32; +pub const TP_DROPDOWNBUTTONGLYPH: TOOLBARPARTS = 7i32; +pub const TP_SEPARATOR: TOOLBARPARTS = 5i32; +pub const TP_SEPARATORVERT: TOOLBARPARTS = 6i32; +pub const TP_SPLITBUTTON: TOOLBARPARTS = 3i32; +pub const TP_SPLITBUTTONDROPDOWN: TOOLBARPARTS = 4i32; +pub const TRACKBAR_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msctls_trackbar32"); +pub const TRACKBAR_CLASSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("msctls_trackbar32"); +pub const TRACKBAR_CLASSW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msctls_trackbar32"); +pub const TRBN_FIRST: u32 = 4294965795u32; +pub const TRBN_LAST: u32 = 4294965777u32; +pub const TRBN_THUMBPOSCHANGING: u32 = 4294965794u32; +pub const TREIS_DISABLED: TREEITEMSTATES = 4i32; +pub const TREIS_HOT: TREEITEMSTATES = 2i32; +pub const TREIS_HOTSELECTED: TREEITEMSTATES = 6i32; +pub const TREIS_NORMAL: TREEITEMSTATES = 1i32; +pub const TREIS_SELECTED: TREEITEMSTATES = 3i32; +pub const TREIS_SELECTEDNOTFOCUS: TREEITEMSTATES = 5i32; +pub const TRS_NORMAL: TRACKSTATES = 1i32; +pub const TRVS_NORMAL: TRACKVERTSTATES = 1i32; +pub const TSGP_GRIPPER: TEXTSELECTIONGRIPPERPARTS = 1i32; +pub const TSGS_CENTERED: GRIPPERSTATES = 2i32; +pub const TSGS_NORMAL: GRIPPERSTATES = 1i32; +pub const TSST_DPI: TRUESIZESCALINGTYPE = 2i32; +pub const TSST_NONE: TRUESIZESCALINGTYPE = 0i32; +pub const TSST_SIZE: TRUESIZESCALINGTYPE = 1i32; +pub const TSS_NORMAL: TICSSTATES = 1i32; +pub const TST_CONTINUOUS: TEXTSHADOWTYPE = 2i32; +pub const TST_NONE: TEXTSHADOWTYPE = 0i32; +pub const TST_SINGLE: TEXTSHADOWTYPE = 1i32; +pub const TSVS_NORMAL: TICSVERTSTATES = 1i32; +pub const TS_CHECKED: TOOLBARSTYLESTATES = 5i32; +pub const TS_CONTROLLABEL_DISABLED: CONTROLLABELSTATES = 2i32; +pub const TS_CONTROLLABEL_NORMAL: CONTROLLABELSTATES = 1i32; +pub const TS_DISABLED: TOOLBARSTYLESTATES = 4i32; +pub const TS_DRAW: THEMESIZE = 2i32; +pub const TS_HOT: TOOLBARSTYLESTATES = 2i32; +pub const TS_HOTCHECKED: TOOLBARSTYLESTATES = 6i32; +pub const TS_HYPERLINK_DISABLED: HYPERLINKTEXTSTATES = 4i32; +pub const TS_HYPERLINK_HOT: HYPERLINKTEXTSTATES = 2i32; +pub const TS_HYPERLINK_NORMAL: HYPERLINKTEXTSTATES = 1i32; +pub const TS_HYPERLINK_PRESSED: HYPERLINKTEXTSTATES = 3i32; +pub const TS_MIN: THEMESIZE = 0i32; +pub const TS_NEARHOT: TOOLBARSTYLESTATES = 7i32; +pub const TS_NORMAL: TOOLBARSTYLESTATES = 1i32; +pub const TS_OTHERSIDEHOT: TOOLBARSTYLESTATES = 8i32; +pub const TS_PRESSED: TOOLBARSTYLESTATES = 3i32; +pub const TS_TRUE: THEMESIZE = 1i32; +pub const TTBSS_POINTINGDOWNCENTERED: BALLOONSTEMSTATES = 5i32; +pub const TTBSS_POINTINGDOWNLEFTWALL: BALLOONSTEMSTATES = 6i32; +pub const TTBSS_POINTINGDOWNRIGHTWALL: BALLOONSTEMSTATES = 4i32; +pub const TTBSS_POINTINGUPCENTERED: BALLOONSTEMSTATES = 2i32; +pub const TTBSS_POINTINGUPLEFTWALL: BALLOONSTEMSTATES = 1i32; +pub const TTBSS_POINTINGUPRIGHTWALL: BALLOONSTEMSTATES = 3i32; +pub const TTBS_LINK: BALLOONSTATES = 2i32; +pub const TTBS_NORMAL: BALLOONSTATES = 1i32; +pub const TTCS_HOT: CLOSESTATES = 2i32; +pub const TTCS_NORMAL: CLOSESTATES = 1i32; +pub const TTCS_PRESSED: CLOSESTATES = 3i32; +pub const TTDT_AUTOMATIC: u32 = 0u32; +pub const TTDT_AUTOPOP: u32 = 2u32; +pub const TTDT_INITIAL: u32 = 3u32; +pub const TTDT_RESHOW: u32 = 1u32; +pub const TTFT_CUBIC_BEZIER: TA_TIMINGFUNCTION_TYPE = 1i32; +pub const TTFT_UNDEFINED: TA_TIMINGFUNCTION_TYPE = 0i32; +pub const TTF_ABSOLUTE: TOOLTIP_FLAGS = 128u32; +pub const TTF_CENTERTIP: TOOLTIP_FLAGS = 2u32; +pub const TTF_DI_SETITEM: TOOLTIP_FLAGS = 32768u32; +pub const TTF_IDISHWND: TOOLTIP_FLAGS = 1u32; +pub const TTF_PARSELINKS: TOOLTIP_FLAGS = 4096u32; +pub const TTF_RTLREADING: TOOLTIP_FLAGS = 4u32; +pub const TTF_SUBCLASS: TOOLTIP_FLAGS = 16u32; +pub const TTF_TRACK: TOOLTIP_FLAGS = 32u32; +pub const TTF_TRANSPARENT: TOOLTIP_FLAGS = 256u32; +pub const TTIBES_DISABLED: TOPTABITEMBOTHEDGESTATES = 4i32; +pub const TTIBES_FOCUSED: TOPTABITEMBOTHEDGESTATES = 5i32; +pub const TTIBES_HOT: TOPTABITEMBOTHEDGESTATES = 2i32; +pub const TTIBES_NORMAL: TOPTABITEMBOTHEDGESTATES = 1i32; +pub const TTIBES_SELECTED: TOPTABITEMBOTHEDGESTATES = 3i32; +pub const TTILES_DISABLED: TOPTABITEMLEFTEDGESTATES = 4i32; +pub const TTILES_FOCUSED: TOPTABITEMLEFTEDGESTATES = 5i32; +pub const TTILES_HOT: TOPTABITEMLEFTEDGESTATES = 2i32; +pub const TTILES_NORMAL: TOPTABITEMLEFTEDGESTATES = 1i32; +pub const TTILES_SELECTED: TOPTABITEMLEFTEDGESTATES = 3i32; +pub const TTIRES_DISABLED: TOPTABITEMRIGHTEDGESTATES = 4i32; +pub const TTIRES_FOCUSED: TOPTABITEMRIGHTEDGESTATES = 5i32; +pub const TTIRES_HOT: TOPTABITEMRIGHTEDGESTATES = 2i32; +pub const TTIRES_NORMAL: TOPTABITEMRIGHTEDGESTATES = 1i32; +pub const TTIRES_SELECTED: TOPTABITEMRIGHTEDGESTATES = 3i32; +pub const TTIS_DISABLED: TOPTABITEMSTATES = 4i32; +pub const TTIS_FOCUSED: TOPTABITEMSTATES = 5i32; +pub const TTIS_HOT: TOPTABITEMSTATES = 2i32; +pub const TTIS_NORMAL: TOPTABITEMSTATES = 1i32; +pub const TTIS_SELECTED: TOPTABITEMSTATES = 3i32; +pub const TTI_ERROR: EDITBALLOONTIP_ICON = 3i32; +pub const TTI_ERROR_LARGE: EDITBALLOONTIP_ICON = 6i32; +pub const TTI_INFO: EDITBALLOONTIP_ICON = 1i32; +pub const TTI_INFO_LARGE: EDITBALLOONTIP_ICON = 4i32; +pub const TTI_NONE: EDITBALLOONTIP_ICON = 0i32; +pub const TTI_WARNING: EDITBALLOONTIP_ICON = 2i32; +pub const TTI_WARNING_LARGE: EDITBALLOONTIP_ICON = 5i32; +pub const TTM_ACTIVATE: u32 = 1025u32; +pub const TTM_ADDTOOL: u32 = 1074u32; +pub const TTM_ADDTOOLA: u32 = 1028u32; +pub const TTM_ADDTOOLW: u32 = 1074u32; +pub const TTM_ADJUSTRECT: u32 = 1055u32; +pub const TTM_DELTOOL: u32 = 1075u32; +pub const TTM_DELTOOLA: u32 = 1029u32; +pub const TTM_DELTOOLW: u32 = 1075u32; +pub const TTM_ENUMTOOLS: u32 = 1082u32; +pub const TTM_ENUMTOOLSA: u32 = 1038u32; +pub const TTM_ENUMTOOLSW: u32 = 1082u32; +pub const TTM_GETBUBBLESIZE: u32 = 1054u32; +pub const TTM_GETCURRENTTOOL: u32 = 1083u32; +pub const TTM_GETCURRENTTOOLA: u32 = 1039u32; +pub const TTM_GETCURRENTTOOLW: u32 = 1083u32; +pub const TTM_GETDELAYTIME: u32 = 1045u32; +pub const TTM_GETMARGIN: u32 = 1051u32; +pub const TTM_GETMAXTIPWIDTH: u32 = 1049u32; +pub const TTM_GETTEXT: u32 = 1080u32; +pub const TTM_GETTEXTA: u32 = 1035u32; +pub const TTM_GETTEXTW: u32 = 1080u32; +pub const TTM_GETTIPBKCOLOR: u32 = 1046u32; +pub const TTM_GETTIPTEXTCOLOR: u32 = 1047u32; +pub const TTM_GETTITLE: u32 = 1059u32; +pub const TTM_GETTOOLCOUNT: u32 = 1037u32; +pub const TTM_GETTOOLINFO: u32 = 1077u32; +pub const TTM_GETTOOLINFOA: u32 = 1032u32; +pub const TTM_GETTOOLINFOW: u32 = 1077u32; +pub const TTM_HITTEST: u32 = 1079u32; +pub const TTM_HITTESTA: u32 = 1034u32; +pub const TTM_HITTESTW: u32 = 1079u32; +pub const TTM_NEWTOOLRECT: u32 = 1076u32; +pub const TTM_NEWTOOLRECTA: u32 = 1030u32; +pub const TTM_NEWTOOLRECTW: u32 = 1076u32; +pub const TTM_POP: u32 = 1052u32; +pub const TTM_POPUP: u32 = 1058u32; +pub const TTM_RELAYEVENT: u32 = 1031u32; +pub const TTM_SETDELAYTIME: u32 = 1027u32; +pub const TTM_SETMARGIN: u32 = 1050u32; +pub const TTM_SETMAXTIPWIDTH: u32 = 1048u32; +pub const TTM_SETTIPBKCOLOR: u32 = 1043u32; +pub const TTM_SETTIPTEXTCOLOR: u32 = 1044u32; +pub const TTM_SETTITLE: u32 = 1057u32; +pub const TTM_SETTITLEA: u32 = 1056u32; +pub const TTM_SETTITLEW: u32 = 1057u32; +pub const TTM_SETTOOLINFO: u32 = 1078u32; +pub const TTM_SETTOOLINFOA: u32 = 1033u32; +pub const TTM_SETTOOLINFOW: u32 = 1078u32; +pub const TTM_SETWINDOWTHEME: u32 = 8203u32; +pub const TTM_TRACKACTIVATE: u32 = 1041u32; +pub const TTM_TRACKPOSITION: u32 = 1042u32; +pub const TTM_UPDATE: u32 = 1053u32; +pub const TTM_UPDATETIPTEXT: u32 = 1081u32; +pub const TTM_UPDATETIPTEXTA: u32 = 1036u32; +pub const TTM_UPDATETIPTEXTW: u32 = 1081u32; +pub const TTM_WINDOWFROMPOINT: u32 = 1040u32; +pub const TTN_FIRST: u32 = 4294966776u32; +pub const TTN_GETDISPINFO: u32 = 4294966766u32; +pub const TTN_GETDISPINFOA: u32 = 4294966776u32; +pub const TTN_GETDISPINFOW: u32 = 4294966766u32; +pub const TTN_LAST: u32 = 4294966747u32; +pub const TTN_LINKCLICK: u32 = 4294966773u32; +pub const TTN_NEEDTEXT: u32 = 4294966766u32; +pub const TTN_NEEDTEXTA: u32 = 4294966776u32; +pub const TTN_NEEDTEXTW: u32 = 4294966766u32; +pub const TTN_POP: u32 = 4294966774u32; +pub const TTN_SHOW: u32 = 4294966775u32; +pub const TTP_BALLOON: TOOLTIPPARTS = 3i32; +pub const TTP_BALLOONSTEM: TOOLTIPPARTS = 6i32; +pub const TTP_BALLOONTITLE: TOOLTIPPARTS = 4i32; +pub const TTP_CLOSE: TOOLTIPPARTS = 5i32; +pub const TTP_STANDARD: TOOLTIPPARTS = 1i32; +pub const TTP_STANDARDTITLE: TOOLTIPPARTS = 2i32; +pub const TTP_WRENCH: TOOLTIPPARTS = 7i32; +pub const TTSS_LINK: STANDARDSTATES = 2i32; +pub const TTSS_NORMAL: STANDARDSTATES = 1i32; +pub const TTS_ALWAYSTIP: u32 = 1u32; +pub const TTS_BALLOON: u32 = 64u32; +pub const TTS_CLOSE: u32 = 128u32; +pub const TTS_NOANIMATE: u32 = 16u32; +pub const TTS_NOFADE: u32 = 32u32; +pub const TTS_NOPREFIX: u32 = 2u32; +pub const TTS_USEVISUALSTYLE: u32 = 256u32; +pub const TTWS_HOT: WRENCHSTATES = 2i32; +pub const TTWS_NORMAL: WRENCHSTATES = 1i32; +pub const TTWS_PRESSED: WRENCHSTATES = 3i32; +pub const TUBS_DISABLED: THUMBBOTTOMSTATES = 5i32; +pub const TUBS_FOCUSED: THUMBBOTTOMSTATES = 4i32; +pub const TUBS_HOT: THUMBBOTTOMSTATES = 2i32; +pub const TUBS_NORMAL: THUMBBOTTOMSTATES = 1i32; +pub const TUBS_PRESSED: THUMBBOTTOMSTATES = 3i32; +pub const TUS_DISABLED: THUMBSTATES = 5i32; +pub const TUS_FOCUSED: THUMBSTATES = 4i32; +pub const TUS_HOT: THUMBSTATES = 2i32; +pub const TUS_NORMAL: THUMBSTATES = 1i32; +pub const TUS_PRESSED: THUMBSTATES = 3i32; +pub const TUTS_DISABLED: THUMBTOPSTATES = 5i32; +pub const TUTS_FOCUSED: THUMBTOPSTATES = 4i32; +pub const TUTS_HOT: THUMBTOPSTATES = 2i32; +pub const TUTS_NORMAL: THUMBTOPSTATES = 1i32; +pub const TUTS_PRESSED: THUMBTOPSTATES = 3i32; +pub const TUVLS_DISABLED: THUMBLEFTSTATES = 5i32; +pub const TUVLS_FOCUSED: THUMBLEFTSTATES = 4i32; +pub const TUVLS_HOT: THUMBLEFTSTATES = 2i32; +pub const TUVLS_NORMAL: THUMBLEFTSTATES = 1i32; +pub const TUVLS_PRESSED: THUMBLEFTSTATES = 3i32; +pub const TUVRS_DISABLED: THUMBRIGHTSTATES = 5i32; +pub const TUVRS_FOCUSED: THUMBRIGHTSTATES = 4i32; +pub const TUVRS_HOT: THUMBRIGHTSTATES = 2i32; +pub const TUVRS_NORMAL: THUMBRIGHTSTATES = 1i32; +pub const TUVRS_PRESSED: THUMBRIGHTSTATES = 3i32; +pub const TUVS_DISABLED: THUMBVERTSTATES = 5i32; +pub const TUVS_FOCUSED: THUMBVERTSTATES = 4i32; +pub const TUVS_HOT: THUMBVERTSTATES = 2i32; +pub const TUVS_NORMAL: THUMBVERTSTATES = 1i32; +pub const TUVS_PRESSED: THUMBVERTSTATES = 3i32; +pub const TVCDRF_NOIMAGES: u32 = 65536u32; +pub const TVC_BYKEYBOARD: NM_TREEVIEW_ACTION = 2u32; +pub const TVC_BYMOUSE: NM_TREEVIEW_ACTION = 1u32; +pub const TVC_UNKNOWN: NM_TREEVIEW_ACTION = 0u32; +pub const TVE_COLLAPSE: NM_TREEVIEW_ACTION = 1u32; +pub const TVE_COLLAPSERESET: NM_TREEVIEW_ACTION = 32768u32; +pub const TVE_EXPAND: NM_TREEVIEW_ACTION = 2u32; +pub const TVE_EXPANDPARTIAL: NM_TREEVIEW_ACTION = 16384u32; +pub const TVE_TOGGLE: NM_TREEVIEW_ACTION = 3u32; +pub const TVGIPR_BUTTON: TVITEMPART = 1i32; +pub const TVGN_CARET: u32 = 9u32; +pub const TVGN_CHILD: u32 = 4u32; +pub const TVGN_DROPHILITE: u32 = 8u32; +pub const TVGN_FIRSTVISIBLE: u32 = 5u32; +pub const TVGN_LASTVISIBLE: u32 = 10u32; +pub const TVGN_NEXT: u32 = 1u32; +pub const TVGN_NEXTSELECTED: u32 = 11u32; +pub const TVGN_NEXTVISIBLE: u32 = 6u32; +pub const TVGN_PARENT: u32 = 3u32; +pub const TVGN_PREVIOUS: u32 = 2u32; +pub const TVGN_PREVIOUSVISIBLE: u32 = 7u32; +pub const TVGN_ROOT: u32 = 0u32; +pub const TVHT_ABOVE: TVHITTESTINFO_FLAGS = 256u32; +pub const TVHT_BELOW: TVHITTESTINFO_FLAGS = 512u32; +pub const TVHT_NOWHERE: TVHITTESTINFO_FLAGS = 1u32; +pub const TVHT_ONITEM: TVHITTESTINFO_FLAGS = 70u32; +pub const TVHT_ONITEMBUTTON: TVHITTESTINFO_FLAGS = 16u32; +pub const TVHT_ONITEMICON: TVHITTESTINFO_FLAGS = 2u32; +pub const TVHT_ONITEMINDENT: TVHITTESTINFO_FLAGS = 8u32; +pub const TVHT_ONITEMLABEL: TVHITTESTINFO_FLAGS = 4u32; +pub const TVHT_ONITEMRIGHT: TVHITTESTINFO_FLAGS = 32u32; +pub const TVHT_ONITEMSTATEICON: TVHITTESTINFO_FLAGS = 64u32; +pub const TVHT_TOLEFT: TVHITTESTINFO_FLAGS = 2048u32; +pub const TVHT_TORIGHT: TVHITTESTINFO_FLAGS = 1024u32; +pub const TVIF_CHILDREN: TVITEM_MASK = 64u32; +pub const TVIF_DI_SETITEM: TVITEM_MASK = 4096u32; +pub const TVIF_EXPANDEDIMAGE: TVITEM_MASK = 512u32; +pub const TVIF_HANDLE: TVITEM_MASK = 16u32; +pub const TVIF_IMAGE: TVITEM_MASK = 2u32; +pub const TVIF_INTEGRAL: TVITEM_MASK = 128u32; +pub const TVIF_PARAM: TVITEM_MASK = 4u32; +pub const TVIF_SELECTEDIMAGE: TVITEM_MASK = 32u32; +pub const TVIF_STATE: TVITEM_MASK = 8u32; +pub const TVIF_STATEEX: TVITEM_MASK = 256u32; +pub const TVIF_TEXT: TVITEM_MASK = 1u32; +pub const TVIS_BOLD: TREE_VIEW_ITEM_STATE_FLAGS = 16u32; +pub const TVIS_CUT: TREE_VIEW_ITEM_STATE_FLAGS = 4u32; +pub const TVIS_DROPHILITED: TREE_VIEW_ITEM_STATE_FLAGS = 8u32; +pub const TVIS_EXPANDED: TREE_VIEW_ITEM_STATE_FLAGS = 32u32; +pub const TVIS_EXPANDEDONCE: TREE_VIEW_ITEM_STATE_FLAGS = 64u32; +pub const TVIS_EXPANDPARTIAL: TREE_VIEW_ITEM_STATE_FLAGS = 128u32; +pub const TVIS_EX_ALL: TREE_VIEW_ITEM_STATE_FLAGS = 2u32; +pub const TVIS_EX_DISABLED: TREE_VIEW_ITEM_STATE_FLAGS = 2u32; +pub const TVIS_EX_FLAT: TREE_VIEW_ITEM_STATE_FLAGS = 1u32; +pub const TVIS_OVERLAYMASK: TREE_VIEW_ITEM_STATE_FLAGS = 3840u32; +pub const TVIS_SELECTED: TREE_VIEW_ITEM_STATE_FLAGS = 2u32; +pub const TVIS_STATEIMAGEMASK: TREE_VIEW_ITEM_STATE_FLAGS = 61440u32; +pub const TVIS_USERMASK: TREE_VIEW_ITEM_STATE_FLAGS = 61440u32; +pub const TVI_FIRST: HTREEITEM = -65535i32 as _; +pub const TVI_LAST: HTREEITEM = -65534i32 as _; +pub const TVI_ROOT: HTREEITEM = -65536i32 as _; +pub const TVI_SORT: HTREEITEM = -65533i32 as _; +pub const TVM_CREATEDRAGIMAGE: u32 = 4370u32; +pub const TVM_DELETEITEM: u32 = 4353u32; +pub const TVM_EDITLABEL: u32 = 4417u32; +pub const TVM_EDITLABELA: u32 = 4366u32; +pub const TVM_EDITLABELW: u32 = 4417u32; +pub const TVM_ENDEDITLABELNOW: u32 = 4374u32; +pub const TVM_ENSUREVISIBLE: u32 = 4372u32; +pub const TVM_EXPAND: u32 = 4354u32; +pub const TVM_GETBKCOLOR: u32 = 4383u32; +pub const TVM_GETCOUNT: u32 = 4357u32; +pub const TVM_GETEDITCONTROL: u32 = 4367u32; +pub const TVM_GETEXTENDEDSTYLE: u32 = 4397u32; +pub const TVM_GETIMAGELIST: u32 = 4360u32; +pub const TVM_GETINDENT: u32 = 4358u32; +pub const TVM_GETINSERTMARKCOLOR: u32 = 4390u32; +pub const TVM_GETISEARCHSTRING: u32 = 4416u32; +pub const TVM_GETISEARCHSTRINGA: u32 = 4375u32; +pub const TVM_GETISEARCHSTRINGW: u32 = 4416u32; +pub const TVM_GETITEM: u32 = 4414u32; +pub const TVM_GETITEMA: u32 = 4364u32; +pub const TVM_GETITEMHEIGHT: u32 = 4380u32; +pub const TVM_GETITEMPARTRECT: u32 = 4424u32; +pub const TVM_GETITEMRECT: u32 = 4356u32; +pub const TVM_GETITEMSTATE: u32 = 4391u32; +pub const TVM_GETITEMW: u32 = 4414u32; +pub const TVM_GETLINECOLOR: u32 = 4393u32; +pub const TVM_GETNEXTITEM: u32 = 4362u32; +pub const TVM_GETSCROLLTIME: u32 = 4386u32; +pub const TVM_GETSELECTEDCOUNT: u32 = 4422u32; +pub const TVM_GETTEXTCOLOR: u32 = 4384u32; +pub const TVM_GETTOOLTIPS: u32 = 4377u32; +pub const TVM_GETUNICODEFORMAT: u32 = 8198u32; +pub const TVM_GETVISIBLECOUNT: u32 = 4368u32; +pub const TVM_HITTEST: u32 = 4369u32; +pub const TVM_INSERTITEM: u32 = 4402u32; +pub const TVM_INSERTITEMA: u32 = 4352u32; +pub const TVM_INSERTITEMW: u32 = 4402u32; +pub const TVM_MAPACCIDTOHTREEITEM: u32 = 4394u32; +pub const TVM_MAPHTREEITEMTOACCID: u32 = 4395u32; +pub const TVM_SELECTITEM: u32 = 4363u32; +pub const TVM_SETAUTOSCROLLINFO: u32 = 4411u32; +pub const TVM_SETBKCOLOR: u32 = 4381u32; +pub const TVM_SETBORDER: u32 = 4387u32; +pub const TVM_SETEXTENDEDSTYLE: u32 = 4396u32; +pub const TVM_SETHOT: u32 = 4410u32; +pub const TVM_SETIMAGELIST: u32 = 4361u32; +pub const TVM_SETINDENT: u32 = 4359u32; +pub const TVM_SETINSERTMARK: u32 = 4378u32; +pub const TVM_SETINSERTMARKCOLOR: u32 = 4389u32; +pub const TVM_SETITEM: u32 = 4415u32; +pub const TVM_SETITEMA: u32 = 4365u32; +pub const TVM_SETITEMHEIGHT: u32 = 4379u32; +pub const TVM_SETITEMW: u32 = 4415u32; +pub const TVM_SETLINECOLOR: u32 = 4392u32; +pub const TVM_SETSCROLLTIME: u32 = 4385u32; +pub const TVM_SETTEXTCOLOR: u32 = 4382u32; +pub const TVM_SETTOOLTIPS: u32 = 4376u32; +pub const TVM_SETUNICODEFORMAT: u32 = 8197u32; +pub const TVM_SHOWINFOTIP: u32 = 4423u32; +pub const TVM_SORTCHILDREN: u32 = 4371u32; +pub const TVM_SORTCHILDRENCB: u32 = 4373u32; +pub const TVNRET_DEFAULT: u32 = 0u32; +pub const TVNRET_SKIPNEW: u32 = 2u32; +pub const TVNRET_SKIPOLD: u32 = 1u32; +pub const TVN_ASYNCDRAW: u32 = 4294966876u32; +pub const TVN_BEGINDRAG: u32 = 4294966840u32; +pub const TVN_BEGINDRAGA: u32 = 4294966889u32; +pub const TVN_BEGINDRAGW: u32 = 4294966840u32; +pub const TVN_BEGINLABELEDIT: u32 = 4294966837u32; +pub const TVN_BEGINLABELEDITA: u32 = 4294966886u32; +pub const TVN_BEGINLABELEDITW: u32 = 4294966837u32; +pub const TVN_BEGINRDRAG: u32 = 4294966839u32; +pub const TVN_BEGINRDRAGA: u32 = 4294966888u32; +pub const TVN_BEGINRDRAGW: u32 = 4294966839u32; +pub const TVN_DELETEITEM: u32 = 4294966838u32; +pub const TVN_DELETEITEMA: u32 = 4294966887u32; +pub const TVN_DELETEITEMW: u32 = 4294966838u32; +pub const TVN_ENDLABELEDIT: u32 = 4294966836u32; +pub const TVN_ENDLABELEDITA: u32 = 4294966885u32; +pub const TVN_ENDLABELEDITW: u32 = 4294966836u32; +pub const TVN_FIRST: u32 = 4294966896u32; +pub const TVN_GETDISPINFO: u32 = 4294966844u32; +pub const TVN_GETDISPINFOA: u32 = 4294966893u32; +pub const TVN_GETDISPINFOW: u32 = 4294966844u32; +pub const TVN_GETINFOTIP: u32 = 4294966882u32; +pub const TVN_GETINFOTIPA: u32 = 4294966883u32; +pub const TVN_GETINFOTIPW: u32 = 4294966882u32; +pub const TVN_ITEMCHANGED: u32 = 4294966877u32; +pub const TVN_ITEMCHANGEDA: u32 = 4294966878u32; +pub const TVN_ITEMCHANGEDW: u32 = 4294966877u32; +pub const TVN_ITEMCHANGING: u32 = 4294966879u32; +pub const TVN_ITEMCHANGINGA: u32 = 4294966880u32; +pub const TVN_ITEMCHANGINGW: u32 = 4294966879u32; +pub const TVN_ITEMEXPANDED: u32 = 4294966841u32; +pub const TVN_ITEMEXPANDEDA: u32 = 4294966890u32; +pub const TVN_ITEMEXPANDEDW: u32 = 4294966841u32; +pub const TVN_ITEMEXPANDING: u32 = 4294966842u32; +pub const TVN_ITEMEXPANDINGA: u32 = 4294966891u32; +pub const TVN_ITEMEXPANDINGW: u32 = 4294966842u32; +pub const TVN_KEYDOWN: u32 = 4294966884u32; +pub const TVN_LAST: u32 = 4294966797u32; +pub const TVN_SELCHANGED: u32 = 4294966845u32; +pub const TVN_SELCHANGEDA: u32 = 4294966894u32; +pub const TVN_SELCHANGEDW: u32 = 4294966845u32; +pub const TVN_SELCHANGING: u32 = 4294966846u32; +pub const TVN_SELCHANGINGA: u32 = 4294966895u32; +pub const TVN_SELCHANGINGW: u32 = 4294966846u32; +pub const TVN_SETDISPINFO: u32 = 4294966843u32; +pub const TVN_SETDISPINFOA: u32 = 4294966892u32; +pub const TVN_SETDISPINFOW: u32 = 4294966843u32; +pub const TVN_SINGLEEXPAND: u32 = 4294966881u32; +pub const TVP_BRANCH: TREEVIEWPARTS = 3i32; +pub const TVP_GLYPH: TREEVIEWPARTS = 2i32; +pub const TVP_HOTGLYPH: TREEVIEWPARTS = 4i32; +pub const TVP_TREEITEM: TREEVIEWPARTS = 1i32; +pub const TVSBF_XBORDER: u32 = 1u32; +pub const TVSBF_YBORDER: u32 = 2u32; +pub const TVSIL_NORMAL: u32 = 0u32; +pub const TVSIL_STATE: u32 = 2u32; +pub const TVSI_NOSINGLEEXPAND: u32 = 32768u32; +pub const TVS_CHECKBOXES: u32 = 256u32; +pub const TVS_DISABLEDRAGDROP: u32 = 16u32; +pub const TVS_EDITLABELS: u32 = 8u32; +pub const TVS_EX_AUTOHSCROLL: u32 = 32u32; +pub const TVS_EX_DIMMEDCHECKBOXES: u32 = 512u32; +pub const TVS_EX_DOUBLEBUFFER: u32 = 4u32; +pub const TVS_EX_DRAWIMAGEASYNC: u32 = 1024u32; +pub const TVS_EX_EXCLUSIONCHECKBOXES: u32 = 256u32; +pub const TVS_EX_FADEINOUTEXPANDOS: u32 = 64u32; +pub const TVS_EX_MULTISELECT: u32 = 2u32; +pub const TVS_EX_NOINDENTSTATE: u32 = 8u32; +pub const TVS_EX_NOSINGLECOLLAPSE: u32 = 1u32; +pub const TVS_EX_PARTIALCHECKBOXES: u32 = 128u32; +pub const TVS_EX_RICHTOOLTIP: u32 = 16u32; +pub const TVS_FULLROWSELECT: u32 = 4096u32; +pub const TVS_HASBUTTONS: u32 = 1u32; +pub const TVS_HASLINES: u32 = 2u32; +pub const TVS_INFOTIP: u32 = 2048u32; +pub const TVS_LINESATROOT: u32 = 4u32; +pub const TVS_NOHSCROLL: u32 = 32768u32; +pub const TVS_NONEVENHEIGHT: u32 = 16384u32; +pub const TVS_NOSCROLL: u32 = 8192u32; +pub const TVS_NOTOOLTIPS: u32 = 128u32; +pub const TVS_RTLREADING: u32 = 64u32; +pub const TVS_SHOWSELALWAYS: u32 = 32u32; +pub const TVS_SINGLEEXPAND: u32 = 1024u32; +pub const TVS_TRACKSELECT: u32 = 512u32; +pub const TV_FIRST: u32 = 4352u32; +pub const UDM_GETACCEL: u32 = 1132u32; +pub const UDM_GETBASE: u32 = 1134u32; +pub const UDM_GETBUDDY: u32 = 1130u32; +pub const UDM_GETPOS: u32 = 1128u32; +pub const UDM_GETPOS32: u32 = 1138u32; +pub const UDM_GETRANGE: u32 = 1126u32; +pub const UDM_GETRANGE32: u32 = 1136u32; +pub const UDM_GETUNICODEFORMAT: u32 = 8198u32; +pub const UDM_SETACCEL: u32 = 1131u32; +pub const UDM_SETBASE: u32 = 1133u32; +pub const UDM_SETBUDDY: u32 = 1129u32; +pub const UDM_SETPOS: u32 = 1127u32; +pub const UDM_SETPOS32: u32 = 1137u32; +pub const UDM_SETRANGE: u32 = 1125u32; +pub const UDM_SETRANGE32: u32 = 1135u32; +pub const UDM_SETUNICODEFORMAT: u32 = 8197u32; +pub const UDN_DELTAPOS: u32 = 4294966574u32; +pub const UDN_FIRST: u32 = 4294966575u32; +pub const UDN_LAST: u32 = 4294966567u32; +pub const UDS_ALIGNLEFT: u32 = 8u32; +pub const UDS_ALIGNRIGHT: u32 = 4u32; +pub const UDS_ARROWKEYS: u32 = 32u32; +pub const UDS_AUTOBUDDY: u32 = 16u32; +pub const UDS_HORZ: u32 = 64u32; +pub const UDS_HOTTRACK: u32 = 256u32; +pub const UDS_NOTHOUSANDS: u32 = 128u32; +pub const UDS_SETBUDDYINT: u32 = 2u32; +pub const UDS_WRAP: u32 = 1u32; +pub const UD_MAXVAL: u32 = 32767u32; +pub const UPDOWN_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msctls_updown32"); +pub const UPDOWN_CLASSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("msctls_updown32"); +pub const UPDOWN_CLASSW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msctls_updown32"); +pub const UPHZS_DISABLED: UPHORZSTATES = 4i32; +pub const UPHZS_HOT: UPHORZSTATES = 2i32; +pub const UPHZS_NORMAL: UPHORZSTATES = 1i32; +pub const UPHZS_PRESSED: UPHORZSTATES = 3i32; +pub const UPS_DISABLED: UPSTATES = 4i32; +pub const UPS_HOT: UPSTATES = 2i32; +pub const UPS_NORMAL: UPSTATES = 1i32; +pub const UPS_PRESSED: UPSTATES = 3i32; +pub const UTP_HOVERBACKGROUND: USERTILEPARTS = 2i32; +pub const UTP_STROKEBACKGROUND: USERTILEPARTS = 1i32; +pub const UTS_HOT: HOVERBACKGROUNDSTATES = 2i32; +pub const UTS_NORMAL: HOVERBACKGROUNDSTATES = 1i32; +pub const UTS_PRESSED: HOVERBACKGROUNDSTATES = 3i32; +pub const VALIDBITS: SET_THEME_APP_PROPERTIES_FLAGS = 7u32; +pub const VA_BOTTOM: VALIGN = 2i32; +pub const VA_CENTER: VALIGN = 1i32; +pub const VA_TOP: VALIGN = 0i32; +pub const VIEW_DETAILS: u32 = 3u32; +pub const VIEW_LARGEICONS: u32 = 0u32; +pub const VIEW_LIST: u32 = 2u32; +pub const VIEW_NETCONNECT: u32 = 9u32; +pub const VIEW_NETDISCONNECT: u32 = 10u32; +pub const VIEW_NEWFOLDER: u32 = 11u32; +pub const VIEW_PARENTFOLDER: u32 = 8u32; +pub const VIEW_SMALLICONS: u32 = 1u32; +pub const VIEW_SORTDATE: u32 = 6u32; +pub const VIEW_SORTNAME: u32 = 4u32; +pub const VIEW_SORTSIZE: u32 = 5u32; +pub const VIEW_SORTTYPE: u32 = 7u32; +pub const VIEW_VIEWMENU: u32 = 12u32; +pub const VSCLASS_AEROWIZARD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AEROWIZARD"); +pub const VSCLASS_AEROWIZARDSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AEROWIZARDSTYLE"); +pub const VSCLASS_BUTTON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BUTTON"); +pub const VSCLASS_BUTTONSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BUTTONSTYLE"); +pub const VSCLASS_CLOCK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CLOCK"); +pub const VSCLASS_COMBOBOX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("COMBOBOX"); +pub const VSCLASS_COMBOBOXSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("COMBOBOXSTYLE"); +pub const VSCLASS_COMMUNICATIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("COMMUNICATIONS"); +pub const VSCLASS_COMMUNICATIONSSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("COMMUNICATIONSSTYLE"); +pub const VSCLASS_CONTROLPANEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CONTROLPANEL"); +pub const VSCLASS_CONTROLPANELSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CONTROLPANELSTYLE"); +pub const VSCLASS_DATEPICKER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DATEPICKER"); +pub const VSCLASS_DATEPICKERSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DATEPICKERSTYLE"); +pub const VSCLASS_DRAGDROP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRAGDROP"); +pub const VSCLASS_DRAGDROPSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DRAGDROPSTYLE"); +pub const VSCLASS_EDIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EDIT"); +pub const VSCLASS_EDITSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EDITSTYLE"); +pub const VSCLASS_EMPTYMARKUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EMPTYMARKUP"); +pub const VSCLASS_EXPLORERBAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EXPLORERBAR"); +pub const VSCLASS_EXPLORERBARSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EXPLORERBARSTYLE"); +pub const VSCLASS_FLYOUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FLYOUT"); +pub const VSCLASS_FLYOUTSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FLYOUTSTYLE"); +pub const VSCLASS_HEADER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HEADER"); +pub const VSCLASS_HEADERSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HEADERSTYLE"); +pub const VSCLASS_LINK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LINK"); +pub const VSCLASS_LISTBOX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LISTBOX"); +pub const VSCLASS_LISTBOXSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LISTBOXSTYLE"); +pub const VSCLASS_LISTVIEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LISTVIEW"); +pub const VSCLASS_LISTVIEWSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LISTVIEWSTYLE"); +pub const VSCLASS_MENU: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MENU"); +pub const VSCLASS_MENUBAND: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MENUBAND"); +pub const VSCLASS_MENUSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MENUSTYLE"); +pub const VSCLASS_MONTHCAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MONTHCAL"); +pub const VSCLASS_NAVIGATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NAVIGATION"); +pub const VSCLASS_PAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PAGE"); +pub const VSCLASS_PROGRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PROGRESS"); +pub const VSCLASS_PROGRESSSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PROGRESSSTYLE"); +pub const VSCLASS_REBAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("REBAR"); +pub const VSCLASS_REBARSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("REBARSTYLE"); +pub const VSCLASS_SCROLLBAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCROLLBAR"); +pub const VSCLASS_SCROLLBARSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SCROLLBARSTYLE"); +pub const VSCLASS_SPIN: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SPIN"); +pub const VSCLASS_SPINSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SPINSTYLE"); +pub const VSCLASS_STARTPANEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("STARTPANEL"); +pub const VSCLASS_STATIC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("STATIC"); +pub const VSCLASS_STATUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("STATUS"); +pub const VSCLASS_STATUSSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("STATUSSTYLE"); +pub const VSCLASS_TAB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TAB"); +pub const VSCLASS_TABSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TABSTYLE"); +pub const VSCLASS_TASKBAND: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TASKBAND"); +pub const VSCLASS_TASKBAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TASKBAR"); +pub const VSCLASS_TASKDIALOG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TASKDIALOG"); +pub const VSCLASS_TASKDIALOGSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TASKDIALOGSTYLE"); +pub const VSCLASS_TEXTSELECTIONGRIPPER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TEXTSELECTIONGRIPPER"); +pub const VSCLASS_TEXTSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TEXTSTYLE"); +pub const VSCLASS_TOOLBAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TOOLBAR"); +pub const VSCLASS_TOOLBARSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TOOLBARSTYLE"); +pub const VSCLASS_TOOLTIP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TOOLTIP"); +pub const VSCLASS_TOOLTIPSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TOOLTIPSTYLE"); +pub const VSCLASS_TRACKBAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TRACKBAR"); +pub const VSCLASS_TRACKBARSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TRACKBARSTYLE"); +pub const VSCLASS_TRAYNOTIFY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TRAYNOTIFY"); +pub const VSCLASS_TREEVIEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TREEVIEW"); +pub const VSCLASS_TREEVIEWSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TREEVIEWSTYLE"); +pub const VSCLASS_USERTILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("USERTILE"); +pub const VSCLASS_WINDOW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WINDOW"); +pub const VSCLASS_WINDOWSTYLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WINDOWSTYLE"); +pub const VSS_DISABLED: VERTSCROLLSTATES = 4i32; +pub const VSS_HOT: VERTSCROLLSTATES = 2i32; +pub const VSS_NORMAL: VERTSCROLLSTATES = 1i32; +pub const VSS_PUSHED: VERTSCROLLSTATES = 3i32; +pub const VTS_DISABLED: VERTTHUMBSTATES = 4i32; +pub const VTS_HOT: VERTTHUMBSTATES = 2i32; +pub const VTS_NORMAL: VERTTHUMBSTATES = 1i32; +pub const VTS_PUSHED: VERTTHUMBSTATES = 3i32; +pub const WB_CLASSIFY: WORD_BREAK_ACTION = 3i32; +pub const WB_ISDELIMITER: WORD_BREAK_ACTION = 2i32; +pub const WB_LEFT: WORD_BREAK_ACTION = 0i32; +pub const WB_LEFTBREAK: WORD_BREAK_ACTION = 6i32; +pub const WB_MOVEWORDLEFT: WORD_BREAK_ACTION = 4i32; +pub const WB_MOVEWORDRIGHT: WORD_BREAK_ACTION = 5i32; +pub const WB_RIGHT: WORD_BREAK_ACTION = 1i32; +pub const WB_RIGHTBREAK: WORD_BREAK_ACTION = 7i32; +pub const WC_BUTTON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Button"); +pub const WC_BUTTONA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Button"); +pub const WC_BUTTONW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Button"); +pub const WC_COMBOBOX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ComboBox"); +pub const WC_COMBOBOXA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ComboBox"); +pub const WC_COMBOBOXEX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ComboBoxEx32"); +pub const WC_COMBOBOXEXA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ComboBoxEx32"); +pub const WC_COMBOBOXEXW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ComboBoxEx32"); +pub const WC_COMBOBOXW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ComboBox"); +pub const WC_EDIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Edit"); +pub const WC_EDITA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Edit"); +pub const WC_EDITW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Edit"); +pub const WC_HEADER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysHeader32"); +pub const WC_HEADERA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SysHeader32"); +pub const WC_HEADERW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysHeader32"); +pub const WC_IPADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysIPAddress32"); +pub const WC_IPADDRESSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SysIPAddress32"); +pub const WC_IPADDRESSW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysIPAddress32"); +pub const WC_LINK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysLink"); +pub const WC_LISTBOX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ListBox"); +pub const WC_LISTBOXA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ListBox"); +pub const WC_LISTBOXW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ListBox"); +pub const WC_LISTVIEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysListView32"); +pub const WC_LISTVIEWA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SysListView32"); +pub const WC_LISTVIEWW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysListView32"); +pub const WC_NATIVEFONTCTL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NativeFontCtl"); +pub const WC_NATIVEFONTCTLA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("NativeFontCtl"); +pub const WC_NATIVEFONTCTLW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NativeFontCtl"); +pub const WC_PAGESCROLLER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysPager"); +pub const WC_PAGESCROLLERA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SysPager"); +pub const WC_PAGESCROLLERW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysPager"); +pub const WC_SCROLLBAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScrollBar"); +pub const WC_SCROLLBARA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ScrollBar"); +pub const WC_SCROLLBARW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ScrollBar"); +pub const WC_STATIC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Static"); +pub const WC_STATICA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Static"); +pub const WC_STATICW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Static"); +pub const WC_TABCONTROL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysTabControl32"); +pub const WC_TABCONTROLA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SysTabControl32"); +pub const WC_TABCONTROLW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysTabControl32"); +pub const WC_TREEVIEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysTreeView32"); +pub const WC_TREEVIEWA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("SysTreeView32"); +pub const WC_TREEVIEWW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SysTreeView32"); +pub const WIZ_BODYCX: u32 = 184u32; +pub const WIZ_BODYX: u32 = 92u32; +pub const WIZ_CXBMP: u32 = 80u32; +pub const WIZ_CXDLG: u32 = 276u32; +pub const WIZ_CYDLG: u32 = 140u32; +pub const WMN_FIRST: u32 = 4294966296u32; +pub const WMN_LAST: u32 = 4294966096u32; +pub const WM_CTLCOLOR: u32 = 25u32; +pub const WM_MOUSEHOVER: u32 = 673u32; +pub const WM_MOUSELEAVE: u32 = 675u32; +pub const WP_BORDER: WINDOWPARTS = 39i32; +pub const WP_CAPTION: WINDOWPARTS = 1i32; +pub const WP_CAPTIONSIZINGTEMPLATE: WINDOWPARTS = 30i32; +pub const WP_CLOSEBUTTON: WINDOWPARTS = 18i32; +pub const WP_DIALOG: WINDOWPARTS = 29i32; +pub const WP_FRAME: WINDOWPARTS = 38i32; +pub const WP_FRAMEBOTTOM: WINDOWPARTS = 9i32; +pub const WP_FRAMEBOTTOMSIZINGTEMPLATE: WINDOWPARTS = 36i32; +pub const WP_FRAMELEFT: WINDOWPARTS = 7i32; +pub const WP_FRAMELEFTSIZINGTEMPLATE: WINDOWPARTS = 32i32; +pub const WP_FRAMERIGHT: WINDOWPARTS = 8i32; +pub const WP_FRAMERIGHTSIZINGTEMPLATE: WINDOWPARTS = 34i32; +pub const WP_HELPBUTTON: WINDOWPARTS = 23i32; +pub const WP_HORZSCROLL: WINDOWPARTS = 25i32; +pub const WP_HORZTHUMB: WINDOWPARTS = 26i32; +pub const WP_MAXBUTTON: WINDOWPARTS = 17i32; +pub const WP_MAXCAPTION: WINDOWPARTS = 5i32; +pub const WP_MDICLOSEBUTTON: WINDOWPARTS = 20i32; +pub const WP_MDIHELPBUTTON: WINDOWPARTS = 24i32; +pub const WP_MDIMINBUTTON: WINDOWPARTS = 16i32; +pub const WP_MDIRESTOREBUTTON: WINDOWPARTS = 22i32; +pub const WP_MDISYSBUTTON: WINDOWPARTS = 14i32; +pub const WP_MINBUTTON: WINDOWPARTS = 15i32; +pub const WP_MINCAPTION: WINDOWPARTS = 3i32; +pub const WP_RESTOREBUTTON: WINDOWPARTS = 21i32; +pub const WP_SMALLCAPTION: WINDOWPARTS = 2i32; +pub const WP_SMALLCAPTIONSIZINGTEMPLATE: WINDOWPARTS = 31i32; +pub const WP_SMALLCLOSEBUTTON: WINDOWPARTS = 19i32; +pub const WP_SMALLFRAMEBOTTOM: WINDOWPARTS = 12i32; +pub const WP_SMALLFRAMEBOTTOMSIZINGTEMPLATE: WINDOWPARTS = 37i32; +pub const WP_SMALLFRAMELEFT: WINDOWPARTS = 10i32; +pub const WP_SMALLFRAMELEFTSIZINGTEMPLATE: WINDOWPARTS = 33i32; +pub const WP_SMALLFRAMERIGHT: WINDOWPARTS = 11i32; +pub const WP_SMALLFRAMERIGHTSIZINGTEMPLATE: WINDOWPARTS = 35i32; +pub const WP_SMALLMAXCAPTION: WINDOWPARTS = 6i32; +pub const WP_SMALLMINCAPTION: WINDOWPARTS = 4i32; +pub const WP_SYSBUTTON: WINDOWPARTS = 13i32; +pub const WP_VERTSCROLL: WINDOWPARTS = 27i32; +pub const WP_VERTTHUMB: WINDOWPARTS = 28i32; +pub const WSB_PROP_CXHSCROLL: WSB_PROP = 2i32; +pub const WSB_PROP_CXHTHUMB: WSB_PROP = 16i32; +pub const WSB_PROP_CXVSCROLL: WSB_PROP = 8i32; +pub const WSB_PROP_CYHSCROLL: WSB_PROP = 4i32; +pub const WSB_PROP_CYVSCROLL: WSB_PROP = 1i32; +pub const WSB_PROP_CYVTHUMB: WSB_PROP = 32i32; +pub const WSB_PROP_HBKGCOLOR: WSB_PROP = 128i32; +pub const WSB_PROP_HSTYLE: WSB_PROP = 512i32; +pub const WSB_PROP_MASK: i32 = 4095i32; +pub const WSB_PROP_PALETTE: WSB_PROP = 2048i32; +pub const WSB_PROP_VBKGCOLOR: WSB_PROP = 64i32; +pub const WSB_PROP_VSTYLE: WSB_PROP = 256i32; +pub const WSB_PROP_WINSTYLE: WSB_PROP = 1024i32; +pub const WTA_NONCLIENT: WINDOWTHEMEATTRIBUTETYPE = 1i32; +pub const WTNCA_NODRAWCAPTION: u32 = 1u32; +pub const WTNCA_NODRAWICON: u32 = 2u32; +pub const WTNCA_NOMIRRORHELP: u32 = 8u32; +pub const WTNCA_NOSYSMENU: u32 = 4u32; +pub const chx1: u32 = 1040u32; +pub const chx10: u32 = 1049u32; +pub const chx11: u32 = 1050u32; +pub const chx12: u32 = 1051u32; +pub const chx13: u32 = 1052u32; +pub const chx14: u32 = 1053u32; +pub const chx15: u32 = 1054u32; +pub const chx16: u32 = 1055u32; +pub const chx2: u32 = 1041u32; +pub const chx3: u32 = 1042u32; +pub const chx4: u32 = 1043u32; +pub const chx5: u32 = 1044u32; +pub const chx6: u32 = 1045u32; +pub const chx7: u32 = 1046u32; +pub const chx8: u32 = 1047u32; +pub const chx9: u32 = 1048u32; +pub const cmb1: u32 = 1136u32; +pub const cmb10: u32 = 1145u32; +pub const cmb11: u32 = 1146u32; +pub const cmb12: u32 = 1147u32; +pub const cmb13: u32 = 1148u32; +pub const cmb14: u32 = 1149u32; +pub const cmb15: u32 = 1150u32; +pub const cmb16: u32 = 1151u32; +pub const cmb2: u32 = 1137u32; +pub const cmb3: u32 = 1138u32; +pub const cmb4: u32 = 1139u32; +pub const cmb5: u32 = 1140u32; +pub const cmb6: u32 = 1141u32; +pub const cmb7: u32 = 1142u32; +pub const cmb8: u32 = 1143u32; +pub const cmb9: u32 = 1144u32; +pub const ctl1: u32 = 1184u32; +pub const ctlFirst: u32 = 1024u32; +pub const ctlLast: u32 = 1279u32; +pub const edt1: u32 = 1152u32; +pub const edt10: u32 = 1161u32; +pub const edt11: u32 = 1162u32; +pub const edt12: u32 = 1163u32; +pub const edt13: u32 = 1164u32; +pub const edt14: u32 = 1165u32; +pub const edt15: u32 = 1166u32; +pub const edt16: u32 = 1167u32; +pub const edt2: u32 = 1153u32; +pub const edt3: u32 = 1154u32; +pub const edt4: u32 = 1155u32; +pub const edt5: u32 = 1156u32; +pub const edt6: u32 = 1157u32; +pub const edt7: u32 = 1158u32; +pub const edt8: u32 = 1159u32; +pub const edt9: u32 = 1160u32; +pub const frm1: u32 = 1076u32; +pub const frm2: u32 = 1077u32; +pub const frm3: u32 = 1078u32; +pub const frm4: u32 = 1079u32; +pub const grp1: u32 = 1072u32; +pub const grp2: u32 = 1073u32; +pub const grp3: u32 = 1074u32; +pub const grp4: u32 = 1075u32; +pub const ico1: u32 = 1084u32; +pub const ico2: u32 = 1085u32; +pub const ico3: u32 = 1086u32; +pub const ico4: u32 = 1087u32; +pub const lst1: u32 = 1120u32; +pub const lst10: u32 = 1129u32; +pub const lst11: u32 = 1130u32; +pub const lst12: u32 = 1131u32; +pub const lst13: u32 = 1132u32; +pub const lst14: u32 = 1133u32; +pub const lst15: u32 = 1134u32; +pub const lst16: u32 = 1135u32; +pub const lst2: u32 = 1121u32; +pub const lst3: u32 = 1122u32; +pub const lst4: u32 = 1123u32; +pub const lst5: u32 = 1124u32; +pub const lst6: u32 = 1125u32; +pub const lst7: u32 = 1126u32; +pub const lst8: u32 = 1127u32; +pub const lst9: u32 = 1128u32; +pub const psh1: u32 = 1024u32; +pub const psh10: u32 = 1033u32; +pub const psh11: u32 = 1034u32; +pub const psh12: u32 = 1035u32; +pub const psh13: u32 = 1036u32; +pub const psh14: u32 = 1037u32; +pub const psh15: u32 = 1038u32; +pub const psh16: u32 = 1039u32; +pub const psh2: u32 = 1025u32; +pub const psh3: u32 = 1026u32; +pub const psh4: u32 = 1027u32; +pub const psh5: u32 = 1028u32; +pub const psh6: u32 = 1029u32; +pub const psh7: u32 = 1030u32; +pub const psh8: u32 = 1031u32; +pub const psh9: u32 = 1032u32; +pub const pshHelp: u32 = 1038u32; +pub const rad1: u32 = 1056u32; +pub const rad10: u32 = 1065u32; +pub const rad11: u32 = 1066u32; +pub const rad12: u32 = 1067u32; +pub const rad13: u32 = 1068u32; +pub const rad14: u32 = 1069u32; +pub const rad15: u32 = 1070u32; +pub const rad16: u32 = 1071u32; +pub const rad2: u32 = 1057u32; +pub const rad3: u32 = 1058u32; +pub const rad4: u32 = 1059u32; +pub const rad5: u32 = 1060u32; +pub const rad6: u32 = 1061u32; +pub const rad7: u32 = 1062u32; +pub const rad8: u32 = 1063u32; +pub const rad9: u32 = 1064u32; +pub const rct1: u32 = 1080u32; +pub const rct2: u32 = 1081u32; +pub const rct3: u32 = 1082u32; +pub const rct4: u32 = 1083u32; +pub const scr1: u32 = 1168u32; +pub const scr2: u32 = 1169u32; +pub const scr3: u32 = 1170u32; +pub const scr4: u32 = 1171u32; +pub const scr5: u32 = 1172u32; +pub const scr6: u32 = 1173u32; +pub const scr7: u32 = 1174u32; +pub const scr8: u32 = 1175u32; +pub const stc1: u32 = 1088u32; +pub const stc10: u32 = 1097u32; +pub const stc11: u32 = 1098u32; +pub const stc12: u32 = 1099u32; +pub const stc13: u32 = 1100u32; +pub const stc14: u32 = 1101u32; +pub const stc15: u32 = 1102u32; +pub const stc16: u32 = 1103u32; +pub const stc17: u32 = 1104u32; +pub const stc18: u32 = 1105u32; +pub const stc19: u32 = 1106u32; +pub const stc2: u32 = 1089u32; +pub const stc20: u32 = 1107u32; +pub const stc21: u32 = 1108u32; +pub const stc22: u32 = 1109u32; +pub const stc23: u32 = 1110u32; +pub const stc24: u32 = 1111u32; +pub const stc25: u32 = 1112u32; +pub const stc26: u32 = 1113u32; +pub const stc27: u32 = 1114u32; +pub const stc28: u32 = 1115u32; +pub const stc29: u32 = 1116u32; +pub const stc3: u32 = 1090u32; +pub const stc30: u32 = 1117u32; +pub const stc31: u32 = 1118u32; +pub const stc32: u32 = 1119u32; +pub const stc4: u32 = 1091u32; +pub const stc5: u32 = 1092u32; +pub const stc6: u32 = 1093u32; +pub const stc7: u32 = 1094u32; +pub const stc8: u32 = 1095u32; +pub const stc9: u32 = 1096u32; +pub type AEROWIZARDPARTS = i32; +pub type ARROWBTNSTATES = i32; +pub type BACKGROUNDSTATES = i32; +pub type BACKGROUNDWITHBORDERSTATES = i32; +pub type BALLOONSTATES = i32; +pub type BALLOONSTEMSTATES = i32; +pub type BARBACKGROUNDSTATES = i32; +pub type BARITEMSTATES = i32; +pub type BGTYPE = i32; +pub type BODYSTATES = i32; +pub type BORDERSTATES = i32; +pub type BORDERTYPE = i32; +pub type BORDER_HSCROLLSTATES = i32; +pub type BORDER_HVSCROLLSTATES = i32; +pub type BORDER_NOSCROLLSTATES = i32; +pub type BORDER_VSCROLLSTATES = i32; +pub type BP_ANIMATIONSTYLE = i32; +pub type BP_BUFFERFORMAT = i32; +pub type BP_PAINTPARAMS_FLAGS = u32; +pub type BUTTONPARTS = i32; +pub type BUTTON_IMAGELIST_ALIGN = u32; +pub type CAPTIONSTATES = i32; +pub type CHECKBOXSTATES = i32; +pub type CHEVRONSTATES = i32; +pub type CHEVRONVERTSTATES = i32; +pub type CLOCKPARTS = i32; +pub type CLOCKSTATES = i32; +pub type CLOSEBUTTONSTATES = i32; +pub type CLOSESTATES = i32; +pub type COLLAPSEBUTTONSTATES = i32; +pub type COMBOBOXINFO_BUTTON_STATE = u32; +pub type COMBOBOXPARTS = i32; +pub type COMBOBOXSTYLESTATES = i32; +pub type COMBOBOX_EX_ITEM_FLAGS = u32; +pub type COMMANDLINKGLYPHSTATES = i32; +pub type COMMANDLINKSTATES = i32; +pub type COMMUNICATIONSPARTS = i32; +pub type CONTENTALIGNMENT = i32; +pub type CONTENTAREASTATES = i32; +pub type CONTENTLINKSTATES = i32; +pub type CONTENTPANESTATES = i32; +pub type CONTROLLABELSTATES = i32; +pub type CONTROLPANELPARTS = i32; +pub type COPYSTATES = i32; +pub type CREATELINKSTATES = i32; +pub type CUEBANNERSTATES = i32; +pub type DATEBORDERSTATES = i32; +pub type DATEPICKERPARTS = i32; +pub type DATETEXTSTATES = i32; +pub type DLG_BUTTON_CHECK_STATE = u32; +pub type DLG_DIR_LIST_FILE_TYPE = u32; +pub type DOWNHORZSTATES = i32; +pub type DOWNSTATES = i32; +pub type DPAMM_MESSAGE = u32; +pub type DRAGDROPPARTS = i32; +pub type DRAGLISTINFO_NOTIFICATION_FLAGS = u32; +pub type DRAWITEMSTRUCT_CTL_TYPE = u32; +pub type DRAW_THEME_PARENT_BACKGROUND_FLAGS = u32; +pub type DROPDOWNBUTTONLEFTSTATES = i32; +pub type DROPDOWNBUTTONRIGHTSTATES = i32; +pub type DROPDOWNITEMSTATES = i32; +pub type DTTOPTS_FLAGS = u32; +pub type EC_ENDOFLINE = i32; +pub type EC_SEARCHWEB_ENTRYPOINT = i32; +pub type EDITBALLOONTIP_ICON = i32; +pub type EDITBORDER_HSCROLLSTATES = i32; +pub type EDITBORDER_HVSCROLLSTATES = i32; +pub type EDITBORDER_NOSCROLLSTATES = i32; +pub type EDITBORDER_VSCROLLSTATES = i32; +pub type EDITPARTS = i32; +pub type EDITTEXTSTATES = i32; +pub type EMPTYMARKUPPARTS = i32; +pub type ENABLE_SCROLL_BAR_ARROWS = u32; +pub type EXPANDBUTTONSTATES = i32; +pub type EXPANDOBUTTONSTATES = i32; +pub type EXPLORERBARPARTS = i32; +pub type FEEDBACK_TYPE = i32; +pub type FILLSTATES = i32; +pub type FILLTYPE = i32; +pub type FILLVERTSTATES = i32; +pub type FLYOUTPARTS = i32; +pub type FRAMEBOTTOMSTATES = i32; +pub type FRAMELEFTSTATES = i32; +pub type FRAMERIGHTSTATES = i32; +pub type FRAMESTATES = i32; +pub type GET_THEME_BITMAP_FLAGS = u32; +pub type GLYPHFONTSIZINGTYPE = i32; +pub type GLYPHSTATES = i32; +pub type GLYPHTYPE = i32; +pub type GRIDCELLBACKGROUNDSTATES = i32; +pub type GRIDCELLSTATES = i32; +pub type GRIDCELLUPPERSTATES = i32; +pub type GRIPPERSTATES = i32; +pub type GROUPBOXSTATES = i32; +pub type GROUPHEADERLINESTATES = i32; +pub type GROUPHEADERSTATES = i32; +pub type HALIGN = i32; +pub type HDI_MASK = u32; +pub type HEADERAREASTATES = i32; +pub type HEADERCLOSESTATES = i32; +pub type HEADERDROPDOWNFILTERSTATES = i32; +pub type HEADERDROPDOWNSTATES = i32; +pub type HEADERITEMLEFTSTATES = i32; +pub type HEADERITEMRIGHTSTATES = i32; +pub type HEADERITEMSTATES = i32; +pub type HEADEROVERFLOWSTATES = i32; +pub type HEADERPARTS = i32; +pub type HEADERPINSTATES = i32; +pub type HEADERSORTARROWSTATES = i32; +pub type HEADERSTYLESTATES = i32; +pub type HEADER_CONTROL_FORMAT_FLAGS = i32; +pub type HEADER_CONTROL_FORMAT_STATE = u32; +pub type HEADER_CONTROL_FORMAT_TYPE = u32; +pub type HEADER_CONTROL_NOTIFICATION_BUTTON = i32; +pub type HEADER_HITTEST_INFO_FLAGS = u32; +pub type HELPBUTTONSTATES = i32; +pub type HELPLINKSTATES = i32; +pub type HIT_TEST_BACKGROUND_OPTIONS = u32; +pub type HORZSCROLLSTATES = i32; +pub type HORZTHUMBSTATES = i32; +pub type HOTGLYPHSTATES = i32; +pub type HOVERBACKGROUNDSTATES = i32; +pub type HYPERLINKSTATES = i32; +pub type HYPERLINKTEXTSTATES = i32; +pub type ICONEFFECT = i32; +pub type IEBARMENUSTATES = i32; +pub type IMAGELAYOUT = i32; +pub type IMAGELIST_CREATION_FLAGS = u32; +pub type IMAGESELECTTYPE = i32; +pub type IMAGE_LIST_COPY_FLAGS = u32; +pub type IMAGE_LIST_DRAW_STYLE = u32; +pub type IMAGE_LIST_ITEM_FLAGS = u32; +pub type IMAGE_LIST_WRITE_STREAM_FLAGS = u32; +pub type INITCOMMONCONTROLSEX_ICC = u32; +pub type ITEMSTATES = i32; +pub type LABELSTATES = i32; +pub type LINKHEADERSTATES = i32; +pub type LINKPARTS = i32; +pub type LINKSTATES = i32; +pub type LISTBOXPARTS = i32; +pub type LISTITEMSTATES = i32; +pub type LISTVIEWPARTS = i32; +pub type LIST_ITEM_FLAGS = u32; +pub type LIST_ITEM_STATE_FLAGS = u32; +pub type LIST_VIEW_BACKGROUND_IMAGE_FLAGS = u32; +pub type LIST_VIEW_GROUP_ALIGN_FLAGS = u32; +pub type LIST_VIEW_GROUP_STATE_FLAGS = u32; +pub type LIST_VIEW_ITEM_COLUMN_FORMAT_FLAGS = i32; +pub type LIST_VIEW_ITEM_FLAGS = u32; +pub type LIST_VIEW_ITEM_STATE_FLAGS = u32; +pub type LOGOFFBUTTONSSTATES = i32; +pub type LVCOLUMNW_FORMAT = i32; +pub type LVCOLUMNW_MASK = u32; +pub type LVFINDINFOW_FLAGS = u32; +pub type LVFOOTERITEM_MASK = u32; +pub type LVGROUP_MASK = u32; +pub type LVHITTESTINFO_FLAGS = u32; +pub type LVITEMA_GROUP_ID = i32; +pub type LVTILEVIEWINFO_FLAGS = u32; +pub type LVTILEVIEWINFO_MASK = u32; +pub type MARKUPTEXTSTATES = i32; +pub type MAXBUTTONSTATES = i32; +pub type MAXCAPTIONSTATES = i32; +pub type MCGRIDINFO_FLAGS = u32; +pub type MCGRIDINFO_PART = u32; +pub type MCHITTESTINFO_HIT_FLAGS = u32; +pub type MDICLOSEBUTTONSTATES = i32; +pub type MDIMINBUTTONSTATES = i32; +pub type MDIRESTOREBUTTONSTATES = i32; +pub type MENUBANDPARTS = i32; +pub type MENUBANDSTATES = i32; +pub type MENUPARTS = i32; +pub type MINBUTTONSTATES = i32; +pub type MINCAPTIONSTATES = i32; +pub type MONTHCALPARTS = i32; +pub type MONTH_CALDENDAR_MESSAGES_VIEW = u32; +pub type MOREPROGRAMSARROWBACKSTATES = i32; +pub type MOREPROGRAMSARROWSTATES = i32; +pub type MOREPROGRAMSTABSTATES = i32; +pub type MOVESTATES = i32; +pub type NAVIGATIONPARTS = i32; +pub type NAVNEXTSTATES = i32; +pub type NAVPREVSTATES = i32; +pub type NAV_BACKBUTTONSTATES = i32; +pub type NAV_FORWARDBUTTONSTATES = i32; +pub type NAV_MENUBUTTONSTATES = i32; +pub type NMCUSTOMDRAW_DRAW_STAGE = u32; +pub type NMCUSTOMDRAW_DRAW_STATE_FLAGS = u32; +pub type NMDATETIMECHANGE_FLAGS = u32; +pub type NMLVCUSTOMDRAW_ITEM_TYPE = u32; +pub type NMLVEMPTYMARKUP_FLAGS = u32; +pub type NMLVGETINFOTIP_FLAGS = u32; +pub type NMPGCALCSIZE_FLAGS = u32; +pub type NMPGSCROLL_DIR = i32; +pub type NMPGSCROLL_KEYS = u16; +pub type NMREBAR_MASK_FLAGS = u32; +pub type NMTBDISPINFOW_MASK = u32; +pub type NMTBHOTITEM_FLAGS = u32; +pub type NM_TREEVIEW_ACTION = u32; +pub type NONESTATES = i32; +pub type NORMALGROUPCOLLAPSESTATES = i32; +pub type NORMALGROUPEXPANDSTATES = i32; +pub type ODA_FLAGS = u32; +pub type ODS_FLAGS = u32; +pub type OFFSETTYPE = i32; +pub type OPENBOXSTATES = i32; +pub type OPEN_THEME_DATA_FLAGS = u32; +pub type PAGEPARTS = i32; +pub type POINTER_DEVICE_CURSOR_TYPE = i32; +pub type POINTER_DEVICE_TYPE = i32; +pub type POINTER_FEEDBACK_MODE = i32; +pub type POPUPCHECKBACKGROUNDSTATES = i32; +pub type POPUPCHECKSTATES = i32; +pub type POPUPITEMFOCUSABLESTATES = i32; +pub type POPUPITEMKBFOCUSSTATES = i32; +pub type POPUPITEMSTATES = i32; +pub type POPUPSUBMENUHCHOTSTATES = i32; +pub type POPUPSUBMENUSTATES = i32; +pub type PROGRESSPARTS = i32; +pub type PROPERTYORIGIN = i32; +pub type PSPCB_MESSAGE = u32; +pub type PUSHBUTTONDROPDOWNSTATES = i32; +pub type PUSHBUTTONSTATES = i32; +pub type RADIOBUTTONSTATES = i32; +pub type READONLYSTATES = i32; +pub type REBARPARTS = i32; +pub type RESTOREBUTTONSTATES = i32; +pub type SCROLLBARPARTS = i32; +pub type SCROLLBARSTYLESTATES = i32; +pub type SECTIONTITLELINKSTATES = i32; +pub type SET_THEME_APP_PROPERTIES_FLAGS = u32; +pub type SHOWCALENDARBUTTONRIGHTSTATES = i32; +pub type SIZEBOXSTATES = i32; +pub type SIZINGTYPE = i32; +pub type SMALLCAPTIONSTATES = i32; +pub type SMALLCLOSEBUTTONSTATES = i32; +pub type SMALLFRAMEBOTTOMSTATES = i32; +pub type SMALLFRAMELEFTSTATES = i32; +pub type SMALLFRAMERIGHTSTATES = i32; +pub type SOFTWAREEXPLORERSTATES = i32; +pub type SPECIALGROUPCOLLAPSESTATES = i32; +pub type SPECIALGROUPEXPANDSTATES = i32; +pub type SPINPARTS = i32; +pub type SPLITTERSTATES = i32; +pub type SPLITTERVERTSTATES = i32; +pub type STANDARDSTATES = i32; +pub type STARTPANELPARTS = i32; +pub type STATICPARTS = i32; +pub type STATUSPARTS = i32; +pub type SYSBUTTONSTATES = i32; +pub type SYSTEMCLOSEHCHOTSTATES = i32; +pub type SYSTEMCLOSESTATES = i32; +pub type SYSTEMMAXIMIZEHCHOTSTATES = i32; +pub type SYSTEMMAXIMIZESTATES = i32; +pub type SYSTEMMINIMIZEHCHOTSTATES = i32; +pub type SYSTEMMINIMIZESTATES = i32; +pub type SYSTEMRESTOREHCHOTSTATES = i32; +pub type SYSTEMRESTORESTATES = i32; +pub type TABITEMBOTHEDGESTATES = i32; +pub type TABITEMLEFTEDGESTATES = i32; +pub type TABITEMRIGHTEDGESTATES = i32; +pub type TABITEMSTATES = i32; +pub type TABPARTS = i32; +pub type TABSTATES = i32; +pub type TAB_CONTROL_ITEM_STATE = u32; +pub type TASKBANDPARTS = i32; +pub type TASKBARPARTS = i32; +pub type TASKDIALOGPARTS = i32; +pub type TASKDIALOG_COMMON_BUTTON_FLAGS = i32; +pub type TASKDIALOG_ELEMENTS = i32; +pub type TASKDIALOG_FLAGS = i32; +pub type TASKDIALOG_ICON_ELEMENTS = i32; +pub type TASKDIALOG_MESSAGES = i32; +pub type TASKDIALOG_NOTIFICATIONS = i32; +pub type TASKLINKSTATES = i32; +pub type TA_PROPERTY = i32; +pub type TA_PROPERTY_FLAG = i32; +pub type TA_TIMINGFUNCTION_TYPE = i32; +pub type TA_TRANSFORM_FLAG = i32; +pub type TA_TRANSFORM_TYPE = i32; +pub type TBBUTTONINFOW_MASK = u32; +pub type TBINSERTMARK_FLAGS = u32; +pub type TCHITTESTINFO_FLAGS = u32; +pub type TCITEMHEADERA_MASK = u32; +pub type TEXTSELECTIONGRIPPERPARTS = i32; +pub type TEXTSHADOWTYPE = i32; +pub type TEXTSTYLEPARTS = i32; +pub type THEMESIZE = i32; +pub type THEME_PROPERTY_SYMBOL_ID = u32; +pub type THUMBBOTTOMSTATES = i32; +pub type THUMBLEFTSTATES = i32; +pub type THUMBRIGHTSTATES = i32; +pub type THUMBSTATES = i32; +pub type THUMBTOPSTATES = i32; +pub type THUMBVERTSTATES = i32; +pub type TICSSTATES = i32; +pub type TICSVERTSTATES = i32; +pub type TITLEBARSTATES = i32; +pub type TOOLBARPARTS = i32; +pub type TOOLBARSTYLESTATES = i32; +pub type TOOLTIPPARTS = i32; +pub type TOOLTIP_FLAGS = u32; +pub type TOPTABITEMBOTHEDGESTATES = i32; +pub type TOPTABITEMLEFTEDGESTATES = i32; +pub type TOPTABITEMRIGHTEDGESTATES = i32; +pub type TOPTABITEMSTATES = i32; +pub type TRACKBARPARTS = i32; +pub type TRACKBARSTYLESTATES = i32; +pub type TRACKSTATES = i32; +pub type TRACKVERTSTATES = i32; +pub type TRAILINGGRIDCELLSTATES = i32; +pub type TRAILINGGRIDCELLUPPERSTATES = i32; +pub type TRANSPARENTBACKGROUNDSTATES = i32; +pub type TRANSPARENTBARSTATES = i32; +pub type TRANSPARENTBARVERTSTATES = i32; +pub type TRAYNOTIFYPARTS = i32; +pub type TREEITEMSTATES = i32; +pub type TREEVIEWPARTS = i32; +pub type TREE_VIEW_ITEM_STATE_FLAGS = u32; +pub type TRUESIZESCALINGTYPE = i32; +pub type TVHITTESTINFO_FLAGS = u32; +pub type TVITEMEXW_CHILDREN = i32; +pub type TVITEMPART = i32; +pub type TVITEM_MASK = u32; +pub type UPDATEMETADATASTATES = i32; +pub type UPHORZSTATES = i32; +pub type UPSTATES = i32; +pub type USERTILEPARTS = i32; +pub type VALIGN = i32; +pub type VERTSCROLLSTATES = i32; +pub type VERTTHUMBSTATES = i32; +pub type WARNINGSTATES = i32; +pub type WINDOWPARTS = i32; +pub type WINDOWTHEMEATTRIBUTETYPE = i32; +pub type WORD_BREAK_ACTION = i32; +pub type WRENCHSTATES = i32; +pub type WSB_PROP = i32; +pub type _LI_METRIC = i32; +#[repr(C)] +pub struct BP_ANIMATIONPARAMS { + pub cbSize: u32, + pub dwFlags: u32, + pub style: BP_ANIMATIONSTYLE, + pub dwDuration: u32, +} +impl ::core::marker::Copy for BP_ANIMATIONPARAMS {} +impl ::core::clone::Clone for BP_ANIMATIONPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct BP_PAINTPARAMS { + pub cbSize: u32, + pub dwFlags: BP_PAINTPARAMS_FLAGS, + pub prcExclude: *const super::super::Foundation::RECT, + pub pBlendFunction: *const super::super::Graphics::Gdi::BLENDFUNCTION, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for BP_PAINTPARAMS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for BP_PAINTPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BUTTON_IMAGELIST { + pub himl: HIMAGELIST, + pub margin: super::super::Foundation::RECT, + pub uAlign: BUTTON_IMAGELIST_ALIGN, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BUTTON_IMAGELIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BUTTON_IMAGELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct BUTTON_SPLITINFO { + pub mask: u32, + pub himlGlyph: HIMAGELIST, + pub uSplitStyle: u32, + pub size: super::super::Foundation::SIZE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for BUTTON_SPLITINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for BUTTON_SPLITINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct CCINFOA { + pub szClass: [u8; 32], + pub flOptions: u32, + pub szDesc: [u8; 32], + pub cxDefault: u32, + pub cyDefault: u32, + pub flStyleDefault: u32, + pub flExtStyleDefault: u32, + pub flCtrlTypeMask: u32, + pub szTextDefault: [u8; 256], + pub cStyleFlags: i32, + pub aStyleFlags: *mut CCSTYLEFLAGA, + pub lpfnStyle: LPFNCCSTYLEA, + pub lpfnSizeToText: LPFNCCSIZETOTEXTA, + pub dwReserved1: u32, + pub dwReserved2: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for CCINFOA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for CCINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct CCINFOW { + pub szClass: [u16; 32], + pub flOptions: u32, + pub szDesc: [u16; 32], + pub cxDefault: u32, + pub cyDefault: u32, + pub flStyleDefault: u32, + pub flExtStyleDefault: u32, + pub flCtrlTypeMask: u32, + pub cStyleFlags: i32, + pub aStyleFlags: *mut CCSTYLEFLAGW, + pub szTextDefault: [u16; 256], + pub lpfnStyle: LPFNCCSTYLEW, + pub lpfnSizeToText: LPFNCCSIZETOTEXTW, + pub dwReserved1: u32, + pub dwReserved2: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for CCINFOW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for CCINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CCSTYLEA { + pub flStyle: u32, + pub flExtStyle: u32, + pub szText: [u8; 256], + pub lgid: u16, + pub wReserved1: u16, +} +impl ::core::marker::Copy for CCSTYLEA {} +impl ::core::clone::Clone for CCSTYLEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CCSTYLEFLAGA { + pub flStyle: u32, + pub flStyleMask: u32, + pub pszStyle: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for CCSTYLEFLAGA {} +impl ::core::clone::Clone for CCSTYLEFLAGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CCSTYLEFLAGW { + pub flStyle: u32, + pub flStyleMask: u32, + pub pszStyle: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for CCSTYLEFLAGW {} +impl ::core::clone::Clone for CCSTYLEFLAGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CCSTYLEW { + pub flStyle: u32, + pub flExtStyle: u32, + pub szText: [u16; 256], + pub lgid: u16, + pub wReserved1: u16, +} +impl ::core::marker::Copy for CCSTYLEW {} +impl ::core::clone::Clone for CCSTYLEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COLORMAP { + pub from: super::super::Foundation::COLORREF, + pub to: super::super::Foundation::COLORREF, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COLORMAP {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COLORMAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COLORSCHEME { + pub dwSize: u32, + pub clrBtnHighlight: super::super::Foundation::COLORREF, + pub clrBtnShadow: super::super::Foundation::COLORREF, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COLORSCHEME {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COLORSCHEME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COMBOBOXEXITEMA { + pub mask: COMBOBOX_EX_ITEM_FLAGS, + pub iItem: isize, + pub pszText: ::windows_sys::core::PSTR, + pub cchTextMax: i32, + pub iImage: i32, + pub iSelectedImage: i32, + pub iOverlay: i32, + pub iIndent: i32, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COMBOBOXEXITEMA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COMBOBOXEXITEMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COMBOBOXEXITEMW { + pub mask: COMBOBOX_EX_ITEM_FLAGS, + pub iItem: isize, + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, + pub iImage: i32, + pub iSelectedImage: i32, + pub iOverlay: i32, + pub iIndent: i32, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COMBOBOXEXITEMW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COMBOBOXEXITEMW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COMBOBOXINFO { + pub cbSize: u32, + pub rcItem: super::super::Foundation::RECT, + pub rcButton: super::super::Foundation::RECT, + pub stateButton: COMBOBOXINFO_BUTTON_STATE, + pub hwndCombo: super::super::Foundation::HWND, + pub hwndItem: super::super::Foundation::HWND, + pub hwndList: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COMBOBOXINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COMBOBOXINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COMPAREITEMSTRUCT { + pub CtlType: DRAWITEMSTRUCT_CTL_TYPE, + pub CtlID: u32, + pub hwndItem: super::super::Foundation::HWND, + pub itemID1: u32, + pub itemData1: usize, + pub itemID2: u32, + pub itemData2: usize, + pub dwLocaleId: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COMPAREITEMSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COMPAREITEMSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DATETIMEPICKERINFO { + pub cbSize: u32, + pub rcCheck: super::super::Foundation::RECT, + pub stateCheck: u32, + pub rcButton: super::super::Foundation::RECT, + pub stateButton: u32, + pub hwndEdit: super::super::Foundation::HWND, + pub hwndUD: super::super::Foundation::HWND, + pub hwndDropDown: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DATETIMEPICKERINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DATETIMEPICKERINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DELETEITEMSTRUCT { + pub CtlType: DRAWITEMSTRUCT_CTL_TYPE, + pub CtlID: u32, + pub itemID: u32, + pub hwndItem: super::super::Foundation::HWND, + pub itemData: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DELETEITEMSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DELETEITEMSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DPASTREAMINFO { + pub iPos: i32, + pub pvItem: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for DPASTREAMINFO {} +impl ::core::clone::Clone for DPASTREAMINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DRAGLISTINFO { + pub uNotification: DRAGLISTINFO_NOTIFICATION_FLAGS, + pub hWnd: super::super::Foundation::HWND, + pub ptCursor: super::super::Foundation::POINT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRAGLISTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRAGLISTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct DRAWITEMSTRUCT { + pub CtlType: DRAWITEMSTRUCT_CTL_TYPE, + pub CtlID: u32, + pub itemID: u32, + pub itemAction: ODA_FLAGS, + pub itemState: ODS_FLAGS, + pub hwndItem: super::super::Foundation::HWND, + pub hDC: super::super::Graphics::Gdi::HDC, + pub rcItem: super::super::Foundation::RECT, + pub itemData: usize, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for DRAWITEMSTRUCT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for DRAWITEMSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DTBGOPTS { + pub dwSize: u32, + pub dwFlags: u32, + pub rcClip: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DTBGOPTS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DTBGOPTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct DTTOPTS { + pub dwSize: u32, + pub dwFlags: DTTOPTS_FLAGS, + pub crText: super::super::Foundation::COLORREF, + pub crBorder: super::super::Foundation::COLORREF, + pub crShadow: super::super::Foundation::COLORREF, + pub iTextShadowType: i32, + pub ptShadowOffset: super::super::Foundation::POINT, + pub iBorderSize: i32, + pub iFontPropId: i32, + pub iColorPropId: i32, + pub iStateId: i32, + pub fApplyOverlay: super::super::Foundation::BOOL, + pub iGlowSize: i32, + pub pfnDrawTextCallback: DTT_CALLBACK_PROC, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for DTTOPTS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for DTTOPTS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EDITBALLOONTIP { + pub cbStruct: u32, + pub pszTitle: ::windows_sys::core::PCWSTR, + pub pszText: ::windows_sys::core::PCWSTR, + pub ttiIcon: EDITBALLOONTIP_ICON, +} +impl ::core::marker::Copy for EDITBALLOONTIP {} +impl ::core::clone::Clone for EDITBALLOONTIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HDHITTESTINFO { + pub pt: super::super::Foundation::POINT, + pub flags: HEADER_HITTEST_INFO_FLAGS, + pub iItem: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HDHITTESTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HDHITTESTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct HDITEMA { + pub mask: HDI_MASK, + pub cxy: i32, + pub pszText: ::windows_sys::core::PSTR, + pub hbm: super::super::Graphics::Gdi::HBITMAP, + pub cchTextMax: i32, + pub fmt: HEADER_CONTROL_FORMAT_FLAGS, + pub lParam: super::super::Foundation::LPARAM, + pub iImage: i32, + pub iOrder: i32, + pub r#type: HEADER_CONTROL_FORMAT_TYPE, + pub pvFilter: *mut ::core::ffi::c_void, + pub state: HEADER_CONTROL_FORMAT_STATE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for HDITEMA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for HDITEMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct HDITEMW { + pub mask: HDI_MASK, + pub cxy: i32, + pub pszText: ::windows_sys::core::PWSTR, + pub hbm: super::super::Graphics::Gdi::HBITMAP, + pub cchTextMax: i32, + pub fmt: HEADER_CONTROL_FORMAT_FLAGS, + pub lParam: super::super::Foundation::LPARAM, + pub iImage: i32, + pub iOrder: i32, + pub r#type: HEADER_CONTROL_FORMAT_TYPE, + pub pvFilter: *mut ::core::ffi::c_void, + pub state: HEADER_CONTROL_FORMAT_STATE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for HDITEMW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for HDITEMW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct HDLAYOUT { + pub prc: *mut super::super::Foundation::RECT, + pub pwpos: *mut super::WindowsAndMessaging::WINDOWPOS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for HDLAYOUT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for HDLAYOUT { + fn clone(&self) -> Self { + *self + } +} +pub type HDPA = isize; +pub type HDSA = isize; +#[repr(C)] +pub struct HD_TEXTFILTERA { + pub pszText: ::windows_sys::core::PSTR, + pub cchTextMax: i32, +} +impl ::core::marker::Copy for HD_TEXTFILTERA {} +impl ::core::clone::Clone for HD_TEXTFILTERA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HD_TEXTFILTERW { + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, +} +impl ::core::marker::Copy for HD_TEXTFILTERW {} +impl ::core::clone::Clone for HD_TEXTFILTERW { + fn clone(&self) -> Self { + *self + } +} +pub type HIMAGELIST = isize; +pub type HPROPSHEETPAGE = isize; +pub type HSYNTHETICPOINTERDEVICE = isize; +pub type HTHEME = isize; +pub type HTREEITEM = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct IMAGEINFO { + pub hbmImage: super::super::Graphics::Gdi::HBITMAP, + pub hbmMask: super::super::Graphics::Gdi::HBITMAP, + pub Unused1: i32, + pub Unused2: i32, + pub rcImage: super::super::Foundation::RECT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for IMAGEINFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for IMAGEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct IMAGELISTDRAWPARAMS { + pub cbSize: u32, + pub himl: HIMAGELIST, + pub i: i32, + pub hdcDst: super::super::Graphics::Gdi::HDC, + pub x: i32, + pub y: i32, + pub cx: i32, + pub cy: i32, + pub xBitmap: i32, + pub yBitmap: i32, + pub rgbBk: super::super::Foundation::COLORREF, + pub rgbFg: super::super::Foundation::COLORREF, + pub fStyle: u32, + pub dwRop: u32, + pub fState: u32, + pub Frame: u32, + pub crEffect: super::super::Foundation::COLORREF, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for IMAGELISTDRAWPARAMS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for IMAGELISTDRAWPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMAGELISTSTATS { + pub cbSize: u32, + pub cAlloc: i32, + pub cUsed: i32, + pub cStandby: i32, +} +impl ::core::marker::Copy for IMAGELISTSTATS {} +impl ::core::clone::Clone for IMAGELISTSTATS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INITCOMMONCONTROLSEX { + pub dwSize: u32, + pub dwICC: INITCOMMONCONTROLSEX_ICC, +} +impl ::core::marker::Copy for INITCOMMONCONTROLSEX {} +impl ::core::clone::Clone for INITCOMMONCONTROLSEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTLIST { + pub iValueCount: i32, + pub iValues: [i32; 402], +} +impl ::core::marker::Copy for INTLIST {} +impl ::core::clone::Clone for INTLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LHITTESTINFO { + pub pt: super::super::Foundation::POINT, + pub item: LITEM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LHITTESTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LHITTESTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LITEM { + pub mask: LIST_ITEM_FLAGS, + pub iLink: i32, + pub state: LIST_ITEM_STATE_FLAGS, + pub stateMask: LIST_ITEM_STATE_FLAGS, + pub szID: [u16; 48], + pub szUrl: [u16; 2084], +} +impl ::core::marker::Copy for LITEM {} +impl ::core::clone::Clone for LITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct LVBKIMAGEA { + pub ulFlags: LIST_VIEW_BACKGROUND_IMAGE_FLAGS, + pub hbm: super::super::Graphics::Gdi::HBITMAP, + pub pszImage: ::windows_sys::core::PSTR, + pub cchImageMax: u32, + pub xOffsetPercent: i32, + pub yOffsetPercent: i32, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for LVBKIMAGEA {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for LVBKIMAGEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct LVBKIMAGEW { + pub ulFlags: LIST_VIEW_BACKGROUND_IMAGE_FLAGS, + pub hbm: super::super::Graphics::Gdi::HBITMAP, + pub pszImage: ::windows_sys::core::PWSTR, + pub cchImageMax: u32, + pub xOffsetPercent: i32, + pub yOffsetPercent: i32, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for LVBKIMAGEW {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for LVBKIMAGEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LVCOLUMNA { + pub mask: LVCOLUMNW_MASK, + pub fmt: LVCOLUMNW_FORMAT, + pub cx: i32, + pub pszText: ::windows_sys::core::PSTR, + pub cchTextMax: i32, + pub iSubItem: i32, + pub iImage: i32, + pub iOrder: i32, + pub cxMin: i32, + pub cxDefault: i32, + pub cxIdeal: i32, +} +impl ::core::marker::Copy for LVCOLUMNA {} +impl ::core::clone::Clone for LVCOLUMNA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LVCOLUMNW { + pub mask: LVCOLUMNW_MASK, + pub fmt: LVCOLUMNW_FORMAT, + pub cx: i32, + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, + pub iSubItem: i32, + pub iImage: i32, + pub iOrder: i32, + pub cxMin: i32, + pub cxDefault: i32, + pub cxIdeal: i32, +} +impl ::core::marker::Copy for LVCOLUMNW {} +impl ::core::clone::Clone for LVCOLUMNW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LVFINDINFOA { + pub flags: LVFINDINFOW_FLAGS, + pub psz: ::windows_sys::core::PCSTR, + pub lParam: super::super::Foundation::LPARAM, + pub pt: super::super::Foundation::POINT, + pub vkDirection: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LVFINDINFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LVFINDINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LVFINDINFOW { + pub flags: LVFINDINFOW_FLAGS, + pub psz: ::windows_sys::core::PCWSTR, + pub lParam: super::super::Foundation::LPARAM, + pub pt: super::super::Foundation::POINT, + pub vkDirection: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LVFINDINFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LVFINDINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LVFOOTERINFO { + pub mask: u32, + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, + pub cItems: u32, +} +impl ::core::marker::Copy for LVFOOTERINFO {} +impl ::core::clone::Clone for LVFOOTERINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LVFOOTERITEM { + pub mask: LVFOOTERITEM_MASK, + pub iItem: i32, + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, + pub state: u32, + pub stateMask: u32, +} +impl ::core::marker::Copy for LVFOOTERITEM {} +impl ::core::clone::Clone for LVFOOTERITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LVGROUP { + pub cbSize: u32, + pub mask: LVGROUP_MASK, + pub pszHeader: ::windows_sys::core::PWSTR, + pub cchHeader: i32, + pub pszFooter: ::windows_sys::core::PWSTR, + pub cchFooter: i32, + pub iGroupId: i32, + pub stateMask: LIST_VIEW_GROUP_STATE_FLAGS, + pub state: LIST_VIEW_GROUP_STATE_FLAGS, + pub uAlign: LIST_VIEW_GROUP_ALIGN_FLAGS, + pub pszSubtitle: ::windows_sys::core::PWSTR, + pub cchSubtitle: u32, + pub pszTask: ::windows_sys::core::PWSTR, + pub cchTask: u32, + pub pszDescriptionTop: ::windows_sys::core::PWSTR, + pub cchDescriptionTop: u32, + pub pszDescriptionBottom: ::windows_sys::core::PWSTR, + pub cchDescriptionBottom: u32, + pub iTitleImage: i32, + pub iExtendedImage: i32, + pub iFirstItem: i32, + pub cItems: u32, + pub pszSubsetTitle: ::windows_sys::core::PWSTR, + pub cchSubsetTitle: u32, +} +impl ::core::marker::Copy for LVGROUP {} +impl ::core::clone::Clone for LVGROUP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LVGROUPMETRICS { + pub cbSize: u32, + pub mask: u32, + pub Left: u32, + pub Top: u32, + pub Right: u32, + pub Bottom: u32, + pub crLeft: super::super::Foundation::COLORREF, + pub crTop: super::super::Foundation::COLORREF, + pub crRight: super::super::Foundation::COLORREF, + pub crBottom: super::super::Foundation::COLORREF, + pub crHeader: super::super::Foundation::COLORREF, + pub crFooter: super::super::Foundation::COLORREF, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LVGROUPMETRICS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LVGROUPMETRICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LVHITTESTINFO { + pub pt: super::super::Foundation::POINT, + pub flags: LVHITTESTINFO_FLAGS, + pub iItem: i32, + pub iSubItem: i32, + pub iGroup: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LVHITTESTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LVHITTESTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LVINSERTGROUPSORTED { + pub pfnGroupCompare: PFNLVGROUPCOMPARE, + pub pvData: *mut ::core::ffi::c_void, + pub lvGroup: LVGROUP, +} +impl ::core::marker::Copy for LVINSERTGROUPSORTED {} +impl ::core::clone::Clone for LVINSERTGROUPSORTED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LVINSERTMARK { + pub cbSize: u32, + pub dwFlags: u32, + pub iItem: i32, + pub dwReserved: u32, +} +impl ::core::marker::Copy for LVINSERTMARK {} +impl ::core::clone::Clone for LVINSERTMARK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LVITEMA { + pub mask: LIST_VIEW_ITEM_FLAGS, + pub iItem: i32, + pub iSubItem: i32, + pub state: LIST_VIEW_ITEM_STATE_FLAGS, + pub stateMask: LIST_VIEW_ITEM_STATE_FLAGS, + pub pszText: ::windows_sys::core::PSTR, + pub cchTextMax: i32, + pub iImage: i32, + pub lParam: super::super::Foundation::LPARAM, + pub iIndent: i32, + pub iGroupId: i32, + pub cColumns: u32, + pub puColumns: *mut u32, + pub piColFmt: *mut LIST_VIEW_ITEM_COLUMN_FORMAT_FLAGS, + pub iGroup: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LVITEMA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LVITEMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LVITEMINDEX { + pub iItem: i32, + pub iGroup: i32, +} +impl ::core::marker::Copy for LVITEMINDEX {} +impl ::core::clone::Clone for LVITEMINDEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LVITEMW { + pub mask: LIST_VIEW_ITEM_FLAGS, + pub iItem: i32, + pub iSubItem: i32, + pub state: LIST_VIEW_ITEM_STATE_FLAGS, + pub stateMask: LIST_VIEW_ITEM_STATE_FLAGS, + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, + pub iImage: i32, + pub lParam: super::super::Foundation::LPARAM, + pub iIndent: i32, + pub iGroupId: i32, + pub cColumns: u32, + pub puColumns: *mut u32, + pub piColFmt: *mut LIST_VIEW_ITEM_COLUMN_FORMAT_FLAGS, + pub iGroup: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LVITEMW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LVITEMW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LVSETINFOTIP { + pub cbSize: u32, + pub dwFlags: u32, + pub pszText: ::windows_sys::core::PWSTR, + pub iItem: i32, + pub iSubItem: i32, +} +impl ::core::marker::Copy for LVSETINFOTIP {} +impl ::core::clone::Clone for LVSETINFOTIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LVTILEINFO { + pub cbSize: u32, + pub iItem: i32, + pub cColumns: u32, + pub puColumns: *mut u32, + pub piColFmt: *mut i32, +} +impl ::core::marker::Copy for LVTILEINFO {} +impl ::core::clone::Clone for LVTILEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LVTILEVIEWINFO { + pub cbSize: u32, + pub dwMask: LVTILEVIEWINFO_MASK, + pub dwFlags: LVTILEVIEWINFO_FLAGS, + pub sizeTile: super::super::Foundation::SIZE, + pub cLines: i32, + pub rcLabelMargin: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LVTILEVIEWINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LVTILEVIEWINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MARGINS { + pub cxLeftWidth: i32, + pub cxRightWidth: i32, + pub cyTopHeight: i32, + pub cyBottomHeight: i32, +} +impl ::core::marker::Copy for MARGINS {} +impl ::core::clone::Clone for MARGINS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCGRIDINFO { + pub cbSize: u32, + pub dwPart: MCGRIDINFO_PART, + pub dwFlags: MCGRIDINFO_FLAGS, + pub iCalendar: i32, + pub iRow: i32, + pub iCol: i32, + pub bSelected: super::super::Foundation::BOOL, + pub stStart: super::super::Foundation::SYSTEMTIME, + pub stEnd: super::super::Foundation::SYSTEMTIME, + pub rc: super::super::Foundation::RECT, + pub pszName: ::windows_sys::core::PWSTR, + pub cchName: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCGRIDINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCGRIDINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MCHITTESTINFO { + pub cbSize: u32, + pub pt: super::super::Foundation::POINT, + pub uHit: MCHITTESTINFO_HIT_FLAGS, + pub st: super::super::Foundation::SYSTEMTIME, + pub rc: super::super::Foundation::RECT, + pub iOffset: i32, + pub iRow: i32, + pub iCol: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MCHITTESTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MCHITTESTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MEASUREITEMSTRUCT { + pub CtlType: DRAWITEMSTRUCT_CTL_TYPE, + pub CtlID: u32, + pub itemID: u32, + pub itemWidth: u32, + pub itemHeight: u32, + pub itemData: usize, +} +impl ::core::marker::Copy for MEASUREITEMSTRUCT {} +impl ::core::clone::Clone for MEASUREITEMSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMBCDROPDOWN { + pub hdr: NMHDR, + pub rcButton: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMBCDROPDOWN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMBCDROPDOWN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMBCHOTITEM { + pub hdr: NMHDR, + pub dwFlags: NMTBHOTITEM_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMBCHOTITEM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMBCHOTITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMCBEDRAGBEGINA { + pub hdr: NMHDR, + pub iItemid: i32, + pub szText: [u8; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMCBEDRAGBEGINA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMCBEDRAGBEGINA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMCBEDRAGBEGINW { + pub hdr: NMHDR, + pub iItemid: i32, + pub szText: [u16; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMCBEDRAGBEGINW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMCBEDRAGBEGINW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMCBEENDEDITA { + pub hdr: NMHDR, + pub fChanged: super::super::Foundation::BOOL, + pub iNewSelection: i32, + pub szText: [u8; 260], + pub iWhy: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMCBEENDEDITA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMCBEENDEDITA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMCBEENDEDITW { + pub hdr: NMHDR, + pub fChanged: super::super::Foundation::BOOL, + pub iNewSelection: i32, + pub szText: [u16; 260], + pub iWhy: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMCBEENDEDITW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMCBEENDEDITW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMCHAR { + pub hdr: NMHDR, + pub ch: u32, + pub dwItemPrev: u32, + pub dwItemNext: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMCHAR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMCHAR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMCOMBOBOXEXA { + pub hdr: NMHDR, + pub ceItem: COMBOBOXEXITEMA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMCOMBOBOXEXA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMCOMBOBOXEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMCOMBOBOXEXW { + pub hdr: NMHDR, + pub ceItem: COMBOBOXEXITEMW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMCOMBOBOXEXW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMCOMBOBOXEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct NMCUSTOMDRAW { + pub hdr: NMHDR, + pub dwDrawStage: NMCUSTOMDRAW_DRAW_STAGE, + pub hdc: super::super::Graphics::Gdi::HDC, + pub rc: super::super::Foundation::RECT, + pub dwItemSpec: usize, + pub uItemState: NMCUSTOMDRAW_DRAW_STATE_FLAGS, + pub lItemlParam: super::super::Foundation::LPARAM, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for NMCUSTOMDRAW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for NMCUSTOMDRAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMCUSTOMSPLITRECTINFO { + pub hdr: NMHDR, + pub rcClient: super::super::Foundation::RECT, + pub rcButton: super::super::Foundation::RECT, + pub rcSplit: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMCUSTOMSPLITRECTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMCUSTOMSPLITRECTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct NMCUSTOMTEXT { + pub hdr: NMHDR, + pub hDC: super::super::Graphics::Gdi::HDC, + pub lpString: ::windows_sys::core::PCWSTR, + pub nCount: i32, + pub lpRect: *mut super::super::Foundation::RECT, + pub uFormat: u32, + pub fLink: super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for NMCUSTOMTEXT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for NMCUSTOMTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMDATETIMECHANGE { + pub nmhdr: NMHDR, + pub dwFlags: NMDATETIMECHANGE_FLAGS, + pub st: super::super::Foundation::SYSTEMTIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMDATETIMECHANGE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMDATETIMECHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMDATETIMEFORMATA { + pub nmhdr: NMHDR, + pub pszFormat: ::windows_sys::core::PCSTR, + pub st: super::super::Foundation::SYSTEMTIME, + pub pszDisplay: ::windows_sys::core::PCSTR, + pub szDisplay: [u8; 64], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMDATETIMEFORMATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMDATETIMEFORMATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMDATETIMEFORMATQUERYA { + pub nmhdr: NMHDR, + pub pszFormat: ::windows_sys::core::PCSTR, + pub szMax: super::super::Foundation::SIZE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMDATETIMEFORMATQUERYA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMDATETIMEFORMATQUERYA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMDATETIMEFORMATQUERYW { + pub nmhdr: NMHDR, + pub pszFormat: ::windows_sys::core::PCWSTR, + pub szMax: super::super::Foundation::SIZE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMDATETIMEFORMATQUERYW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMDATETIMEFORMATQUERYW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMDATETIMEFORMATW { + pub nmhdr: NMHDR, + pub pszFormat: ::windows_sys::core::PCWSTR, + pub st: super::super::Foundation::SYSTEMTIME, + pub pszDisplay: ::windows_sys::core::PCWSTR, + pub szDisplay: [u16; 64], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMDATETIMEFORMATW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMDATETIMEFORMATW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMDATETIMESTRINGA { + pub nmhdr: NMHDR, + pub pszUserString: ::windows_sys::core::PCSTR, + pub st: super::super::Foundation::SYSTEMTIME, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMDATETIMESTRINGA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMDATETIMESTRINGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMDATETIMESTRINGW { + pub nmhdr: NMHDR, + pub pszUserString: ::windows_sys::core::PCWSTR, + pub st: super::super::Foundation::SYSTEMTIME, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMDATETIMESTRINGW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMDATETIMESTRINGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMDATETIMEWMKEYDOWNA { + pub nmhdr: NMHDR, + pub nVirtKey: i32, + pub pszFormat: ::windows_sys::core::PCSTR, + pub st: super::super::Foundation::SYSTEMTIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMDATETIMEWMKEYDOWNA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMDATETIMEWMKEYDOWNA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMDATETIMEWMKEYDOWNW { + pub nmhdr: NMHDR, + pub nVirtKey: i32, + pub pszFormat: ::windows_sys::core::PCWSTR, + pub st: super::super::Foundation::SYSTEMTIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMDATETIMEWMKEYDOWNW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMDATETIMEWMKEYDOWNW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMDAYSTATE { + pub nmhdr: NMHDR, + pub stStart: super::super::Foundation::SYSTEMTIME, + pub cDayState: i32, + pub prgDayState: *mut u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMDAYSTATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMDAYSTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMHDDISPINFOA { + pub hdr: NMHDR, + pub iItem: i32, + pub mask: HDI_MASK, + pub pszText: ::windows_sys::core::PSTR, + pub cchTextMax: i32, + pub iImage: i32, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMHDDISPINFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMHDDISPINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMHDDISPINFOW { + pub hdr: NMHDR, + pub iItem: i32, + pub mask: HDI_MASK, + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, + pub iImage: i32, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMHDDISPINFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMHDDISPINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMHDFILTERBTNCLICK { + pub hdr: NMHDR, + pub iItem: i32, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMHDFILTERBTNCLICK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMHDFILTERBTNCLICK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMHDR { + pub hwndFrom: super::super::Foundation::HWND, + pub idFrom: usize, + pub code: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMHDR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMHDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct NMHEADERA { + pub hdr: NMHDR, + pub iItem: i32, + pub iButton: HEADER_CONTROL_NOTIFICATION_BUTTON, + pub pitem: *mut HDITEMA, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for NMHEADERA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for NMHEADERA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct NMHEADERW { + pub hdr: NMHDR, + pub iItem: i32, + pub iButton: HEADER_CONTROL_NOTIFICATION_BUTTON, + pub pitem: *mut HDITEMW, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for NMHEADERW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for NMHEADERW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMIPADDRESS { + pub hdr: NMHDR, + pub iField: i32, + pub iValue: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMIPADDRESS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMIPADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMITEMACTIVATE { + pub hdr: NMHDR, + pub iItem: i32, + pub iSubItem: i32, + pub uNewState: u32, + pub uOldState: u32, + pub uChanged: u32, + pub ptAction: super::super::Foundation::POINT, + pub lParam: super::super::Foundation::LPARAM, + pub uKeyFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMITEMACTIVATE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMITEMACTIVATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMKEY { + pub hdr: NMHDR, + pub nVKey: u32, + pub uFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMKEY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLINK { + pub hdr: NMHDR, + pub item: LITEM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLINK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLINK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLISTVIEW { + pub hdr: NMHDR, + pub iItem: i32, + pub iSubItem: i32, + pub uNewState: u32, + pub uOldState: u32, + pub uChanged: LIST_VIEW_ITEM_FLAGS, + pub ptAction: super::super::Foundation::POINT, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLISTVIEW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLISTVIEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLVCACHEHINT { + pub hdr: NMHDR, + pub iFrom: i32, + pub iTo: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLVCACHEHINT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLVCACHEHINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct NMLVCUSTOMDRAW { + pub nmcd: NMCUSTOMDRAW, + pub clrText: super::super::Foundation::COLORREF, + pub clrTextBk: super::super::Foundation::COLORREF, + pub iSubItem: i32, + pub dwItemType: NMLVCUSTOMDRAW_ITEM_TYPE, + pub clrFace: super::super::Foundation::COLORREF, + pub iIconEffect: i32, + pub iIconPhase: i32, + pub iPartId: i32, + pub iStateId: i32, + pub rcText: super::super::Foundation::RECT, + pub uAlign: LIST_VIEW_GROUP_ALIGN_FLAGS, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for NMLVCUSTOMDRAW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for NMLVCUSTOMDRAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLVDISPINFOA { + pub hdr: NMHDR, + pub item: LVITEMA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLVDISPINFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLVDISPINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLVDISPINFOW { + pub hdr: NMHDR, + pub item: LVITEMW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLVDISPINFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLVDISPINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLVEMPTYMARKUP { + pub hdr: NMHDR, + pub dwFlags: NMLVEMPTYMARKUP_FLAGS, + pub szMarkup: [u16; 2084], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLVEMPTYMARKUP {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLVEMPTYMARKUP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLVFINDITEMA { + pub hdr: NMHDR, + pub iStart: i32, + pub lvfi: LVFINDINFOA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLVFINDITEMA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLVFINDITEMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLVFINDITEMW { + pub hdr: NMHDR, + pub iStart: i32, + pub lvfi: LVFINDINFOW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLVFINDITEMW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLVFINDITEMW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLVGETINFOTIPA { + pub hdr: NMHDR, + pub dwFlags: NMLVGETINFOTIP_FLAGS, + pub pszText: ::windows_sys::core::PSTR, + pub cchTextMax: i32, + pub iItem: i32, + pub iSubItem: i32, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLVGETINFOTIPA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLVGETINFOTIPA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLVGETINFOTIPW { + pub hdr: NMHDR, + pub dwFlags: NMLVGETINFOTIP_FLAGS, + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, + pub iItem: i32, + pub iSubItem: i32, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLVGETINFOTIPW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLVGETINFOTIPW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLVKEYDOWN { + pub hdr: NMHDR, + pub wVKey: u16, + pub flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLVKEYDOWN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLVKEYDOWN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLVLINK { + pub hdr: NMHDR, + pub link: LITEM, + pub iItem: i32, + pub iSubItem: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLVLINK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLVLINK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLVODSTATECHANGE { + pub hdr: NMHDR, + pub iFrom: i32, + pub iTo: i32, + pub uNewState: LIST_VIEW_ITEM_STATE_FLAGS, + pub uOldState: LIST_VIEW_ITEM_STATE_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLVODSTATECHANGE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLVODSTATECHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMLVSCROLL { + pub hdr: NMHDR, + pub dx: i32, + pub dy: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMLVSCROLL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMLVSCROLL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMMOUSE { + pub hdr: NMHDR, + pub dwItemSpec: usize, + pub dwItemData: usize, + pub pt: super::super::Foundation::POINT, + pub dwHitInfo: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMMOUSE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMMOUSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMOBJECTNOTIFY { + pub hdr: NMHDR, + pub iItem: i32, + pub piid: *const ::windows_sys::core::GUID, + pub pObject: *mut ::core::ffi::c_void, + pub hResult: ::windows_sys::core::HRESULT, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMOBJECTNOTIFY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMOBJECTNOTIFY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMPGCALCSIZE { + pub hdr: NMHDR, + pub dwFlag: NMPGCALCSIZE_FLAGS, + pub iWidth: i32, + pub iHeight: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMPGCALCSIZE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMPGCALCSIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMPGHOTITEM { + pub hdr: NMHDR, + pub idOld: i32, + pub idNew: i32, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMPGHOTITEM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMPGHOTITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMPGSCROLL { + pub hdr: NMHDR, + pub fwKeys: NMPGSCROLL_KEYS, + pub rcParent: super::super::Foundation::RECT, + pub iDir: NMPGSCROLL_DIR, + pub iXpos: i32, + pub iYpos: i32, + pub iScroll: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMPGSCROLL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMPGSCROLL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMRBAUTOSIZE { + pub hdr: NMHDR, + pub fChanged: super::super::Foundation::BOOL, + pub rcTarget: super::super::Foundation::RECT, + pub rcActual: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMRBAUTOSIZE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMRBAUTOSIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMREBAR { + pub hdr: NMHDR, + pub dwMask: NMREBAR_MASK_FLAGS, + pub uBand: u32, + pub fStyle: u32, + pub wID: u32, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMREBAR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMREBAR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMREBARAUTOBREAK { + pub hdr: NMHDR, + pub uBand: u32, + pub wID: u32, + pub lParam: super::super::Foundation::LPARAM, + pub uMsg: u32, + pub fStyleCurrent: u32, + pub fAutoBreak: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMREBARAUTOBREAK {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMREBARAUTOBREAK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMREBARCHEVRON { + pub hdr: NMHDR, + pub uBand: u32, + pub wID: u32, + pub lParam: super::super::Foundation::LPARAM, + pub rc: super::super::Foundation::RECT, + pub lParamNM: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMREBARCHEVRON {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMREBARCHEVRON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMREBARCHILDSIZE { + pub hdr: NMHDR, + pub uBand: u32, + pub wID: u32, + pub rcChild: super::super::Foundation::RECT, + pub rcBand: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMREBARCHILDSIZE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMREBARCHILDSIZE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMREBARSPLITTER { + pub hdr: NMHDR, + pub rcSizing: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMREBARSPLITTER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMREBARSPLITTER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMSEARCHWEB { + pub hdr: NMHDR, + pub entrypoint: EC_SEARCHWEB_ENTRYPOINT, + pub hasQueryText: super::super::Foundation::BOOL, + pub invokeSucceeded: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMSEARCHWEB {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMSEARCHWEB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMSELCHANGE { + pub nmhdr: NMHDR, + pub stSelStart: super::super::Foundation::SYSTEMTIME, + pub stSelEnd: super::super::Foundation::SYSTEMTIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMSELCHANGE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMSELCHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct NMTBCUSTOMDRAW { + pub nmcd: NMCUSTOMDRAW, + pub hbrMonoDither: super::super::Graphics::Gdi::HBRUSH, + pub hbrLines: super::super::Graphics::Gdi::HBRUSH, + pub hpenLines: super::super::Graphics::Gdi::HPEN, + pub clrText: super::super::Foundation::COLORREF, + pub clrMark: super::super::Foundation::COLORREF, + pub clrTextHighlight: super::super::Foundation::COLORREF, + pub clrBtnFace: super::super::Foundation::COLORREF, + pub clrBtnHighlight: super::super::Foundation::COLORREF, + pub clrHighlightHotTrack: super::super::Foundation::COLORREF, + pub rcText: super::super::Foundation::RECT, + pub nStringBkMode: i32, + pub nHLStringBkMode: i32, + pub iListGap: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for NMTBCUSTOMDRAW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for NMTBCUSTOMDRAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTBDISPINFOA { + pub hdr: NMHDR, + pub dwMask: NMTBDISPINFOW_MASK, + pub idCommand: i32, + pub lParam: usize, + pub iImage: i32, + pub pszText: ::windows_sys::core::PSTR, + pub cchText: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTBDISPINFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTBDISPINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTBDISPINFOW { + pub hdr: NMHDR, + pub dwMask: NMTBDISPINFOW_MASK, + pub idCommand: i32, + pub lParam: usize, + pub iImage: i32, + pub pszText: ::windows_sys::core::PWSTR, + pub cchText: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTBDISPINFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTBDISPINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTBGETINFOTIPA { + pub hdr: NMHDR, + pub pszText: ::windows_sys::core::PSTR, + pub cchTextMax: i32, + pub iItem: i32, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTBGETINFOTIPA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTBGETINFOTIPA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTBGETINFOTIPW { + pub hdr: NMHDR, + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, + pub iItem: i32, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTBGETINFOTIPW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTBGETINFOTIPW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTBHOTITEM { + pub hdr: NMHDR, + pub idOld: i32, + pub idNew: i32, + pub dwFlags: NMTBHOTITEM_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTBHOTITEM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTBHOTITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTBRESTORE { + pub hdr: NMHDR, + pub pData: *mut u32, + pub pCurrent: *mut u32, + pub cbData: u32, + pub iItem: i32, + pub cButtons: i32, + pub cbBytesPerRecord: i32, + pub tbButton: TBBUTTON, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTBRESTORE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTBRESTORE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTBSAVE { + pub hdr: NMHDR, + pub pData: *mut u32, + pub pCurrent: *mut u32, + pub cbData: u32, + pub iItem: i32, + pub cButtons: i32, + pub tbButton: TBBUTTON, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTBSAVE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTBSAVE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTCKEYDOWN { + pub hdr: NMHDR, + pub wVKey: u16, + pub flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTCKEYDOWN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTCKEYDOWN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTOOLBARA { + pub hdr: NMHDR, + pub iItem: i32, + pub tbButton: TBBUTTON, + pub cchText: i32, + pub pszText: ::windows_sys::core::PSTR, + pub rcButton: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTOOLBARA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTOOLBARA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTOOLBARW { + pub hdr: NMHDR, + pub iItem: i32, + pub tbButton: TBBUTTON, + pub cchText: i32, + pub pszText: ::windows_sys::core::PWSTR, + pub rcButton: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTOOLBARW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTOOLBARW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTOOLTIPSCREATED { + pub hdr: NMHDR, + pub hwndToolTips: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTOOLTIPSCREATED {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTOOLTIPSCREATED { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTRBTHUMBPOSCHANGING { + pub hdr: NMHDR, + pub dwPos: u32, + pub nReason: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTRBTHUMBPOSCHANGING {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTRBTHUMBPOSCHANGING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTREEVIEWA { + pub hdr: NMHDR, + pub action: NM_TREEVIEW_ACTION, + pub itemOld: TVITEMA, + pub itemNew: TVITEMA, + pub ptDrag: super::super::Foundation::POINT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTREEVIEWA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTREEVIEWA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTREEVIEWW { + pub hdr: NMHDR, + pub action: NM_TREEVIEW_ACTION, + pub itemOld: TVITEMW, + pub itemNew: TVITEMW, + pub ptDrag: super::super::Foundation::POINT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTREEVIEWW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTREEVIEWW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct NMTTCUSTOMDRAW { + pub nmcd: NMCUSTOMDRAW, + pub uDrawFlags: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for NMTTCUSTOMDRAW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for NMTTCUSTOMDRAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTTDISPINFOA { + pub hdr: NMHDR, + pub lpszText: ::windows_sys::core::PSTR, + pub szText: [u8; 80], + pub hinst: super::super::Foundation::HINSTANCE, + pub uFlags: TOOLTIP_FLAGS, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTTDISPINFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTTDISPINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTTDISPINFOW { + pub hdr: NMHDR, + pub lpszText: ::windows_sys::core::PWSTR, + pub szText: [u16; 80], + pub hinst: super::super::Foundation::HINSTANCE, + pub uFlags: TOOLTIP_FLAGS, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTTDISPINFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTTDISPINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct NMTVASYNCDRAW { + pub hdr: NMHDR, + pub pimldp: *mut IMAGELISTDRAWPARAMS, + pub hr: ::windows_sys::core::HRESULT, + pub hItem: HTREEITEM, + pub lParam: super::super::Foundation::LPARAM, + pub dwRetFlags: u32, + pub iRetImageIndex: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for NMTVASYNCDRAW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for NMTVASYNCDRAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct NMTVCUSTOMDRAW { + pub nmcd: NMCUSTOMDRAW, + pub clrText: super::super::Foundation::COLORREF, + pub clrTextBk: super::super::Foundation::COLORREF, + pub iLevel: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for NMTVCUSTOMDRAW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for NMTVCUSTOMDRAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTVDISPINFOA { + pub hdr: NMHDR, + pub item: TVITEMA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTVDISPINFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTVDISPINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTVDISPINFOEXA { + pub hdr: NMHDR, + pub item: TVITEMEXA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTVDISPINFOEXA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTVDISPINFOEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTVDISPINFOEXW { + pub hdr: NMHDR, + pub item: TVITEMEXW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTVDISPINFOEXW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTVDISPINFOEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTVDISPINFOW { + pub hdr: NMHDR, + pub item: TVITEMW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTVDISPINFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTVDISPINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTVGETINFOTIPA { + pub hdr: NMHDR, + pub pszText: ::windows_sys::core::PSTR, + pub cchTextMax: i32, + pub hItem: HTREEITEM, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTVGETINFOTIPA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTVGETINFOTIPA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTVGETINFOTIPW { + pub hdr: NMHDR, + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, + pub hItem: HTREEITEM, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTVGETINFOTIPW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTVGETINFOTIPW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTVITEMCHANGE { + pub hdr: NMHDR, + pub uChanged: u32, + pub hItem: HTREEITEM, + pub uStateNew: u32, + pub uStateOld: u32, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTVITEMCHANGE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTVITEMCHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTVKEYDOWN { + pub hdr: NMHDR, + pub wVKey: u16, + pub flags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTVKEYDOWN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTVKEYDOWN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMTVSTATEIMAGECHANGING { + pub hdr: NMHDR, + pub hti: HTREEITEM, + pub iOldStateImageIndex: i32, + pub iNewStateImageIndex: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMTVSTATEIMAGECHANGING {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMTVSTATEIMAGECHANGING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMUPDOWN { + pub hdr: NMHDR, + pub iPos: i32, + pub iDelta: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMUPDOWN {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMUPDOWN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NMVIEWCHANGE { + pub nmhdr: NMHDR, + pub dwOldView: MONTH_CALDENDAR_MESSAGES_VIEW, + pub dwNewView: MONTH_CALDENDAR_MESSAGES_VIEW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NMVIEWCHANGE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NMVIEWCHANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PBRANGE { + pub iLow: i32, + pub iHigh: i32, +} +impl ::core::marker::Copy for PBRANGE {} +impl ::core::clone::Clone for PBRANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POINTER_DEVICE_CURSOR_INFO { + pub cursorId: u32, + pub cursor: POINTER_DEVICE_CURSOR_TYPE, +} +impl ::core::marker::Copy for POINTER_DEVICE_CURSOR_INFO {} +impl ::core::clone::Clone for POINTER_DEVICE_CURSOR_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct POINTER_DEVICE_INFO { + pub displayOrientation: u32, + pub device: super::super::Foundation::HANDLE, + pub pointerDeviceType: POINTER_DEVICE_TYPE, + pub monitor: super::super::Graphics::Gdi::HMONITOR, + pub startingCursorId: u32, + pub maxActiveContacts: u16, + pub productString: [u16; 520], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for POINTER_DEVICE_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for POINTER_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct POINTER_DEVICE_PROPERTY { + pub logicalMin: i32, + pub logicalMax: i32, + pub physicalMin: i32, + pub physicalMax: i32, + pub unit: u32, + pub unitExponent: u32, + pub usagePageId: u16, + pub usageId: u16, +} +impl ::core::marker::Copy for POINTER_DEVICE_PROPERTY {} +impl ::core::clone::Clone for POINTER_DEVICE_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Input_Pointer\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Input_Pointer", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct POINTER_TYPE_INFO { + pub r#type: super::WindowsAndMessaging::POINTER_INPUT_TYPE, + pub Anonymous: POINTER_TYPE_INFO_0, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Input_Pointer", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for POINTER_TYPE_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Input_Pointer", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for POINTER_TYPE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Input_Pointer\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Input_Pointer", feature = "Win32_UI_WindowsAndMessaging"))] +pub union POINTER_TYPE_INFO_0 { + pub touchInfo: super::Input::Pointer::POINTER_TOUCH_INFO, + pub penInfo: super::Input::Pointer::POINTER_PEN_INFO, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Input_Pointer", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for POINTER_TYPE_INFO_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Input_Pointer", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for POINTER_TYPE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PROPSHEETHEADERA_V1 { + pub dwSize: u32, + pub dwFlags: u32, + pub hwndParent: super::super::Foundation::HWND, + pub hInstance: super::super::Foundation::HINSTANCE, + pub Anonymous1: PROPSHEETHEADERA_V1_0, + pub pszCaption: ::windows_sys::core::PCSTR, + pub nPages: u32, + pub Anonymous2: PROPSHEETHEADERA_V1_1, + pub Anonymous3: PROPSHEETHEADERA_V1_2, + pub pfnCallback: PFNPROPSHEETCALLBACK, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERA_V1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERA_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERA_V1_0 { + pub hIcon: super::WindowsAndMessaging::HICON, + pub pszIcon: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERA_V1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERA_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERA_V1_1 { + pub nStartPage: u32, + pub pStartPage: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERA_V1_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERA_V1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERA_V1_2 { + pub ppsp: *mut PROPSHEETPAGEA, + pub phpage: *mut HPROPSHEETPAGE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERA_V1_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERA_V1_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PROPSHEETHEADERA_V2 { + pub dwSize: u32, + pub dwFlags: u32, + pub hwndParent: super::super::Foundation::HWND, + pub hInstance: super::super::Foundation::HINSTANCE, + pub Anonymous1: PROPSHEETHEADERA_V2_0, + pub pszCaption: ::windows_sys::core::PCSTR, + pub nPages: u32, + pub Anonymous2: PROPSHEETHEADERA_V2_1, + pub Anonymous3: PROPSHEETHEADERA_V2_2, + pub pfnCallback: PFNPROPSHEETCALLBACK, + pub Anonymous4: PROPSHEETHEADERA_V2_3, + pub hplWatermark: super::super::Graphics::Gdi::HPALETTE, + pub Anonymous5: PROPSHEETHEADERA_V2_4, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERA_V2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERA_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERA_V2_0 { + pub hIcon: super::WindowsAndMessaging::HICON, + pub pszIcon: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERA_V2_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERA_V2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERA_V2_1 { + pub nStartPage: u32, + pub pStartPage: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERA_V2_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERA_V2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERA_V2_2 { + pub ppsp: *mut PROPSHEETPAGEA, + pub phpage: *mut HPROPSHEETPAGE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERA_V2_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERA_V2_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERA_V2_3 { + pub hbmWatermark: super::super::Graphics::Gdi::HBITMAP, + pub pszbmWatermark: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERA_V2_3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERA_V2_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERA_V2_4 { + pub hbmHeader: super::super::Graphics::Gdi::HBITMAP, + pub pszbmHeader: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERA_V2_4 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERA_V2_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PROPSHEETHEADERW_V1 { + pub dwSize: u32, + pub dwFlags: u32, + pub hwndParent: super::super::Foundation::HWND, + pub hInstance: super::super::Foundation::HINSTANCE, + pub Anonymous1: PROPSHEETHEADERW_V1_0, + pub pszCaption: ::windows_sys::core::PCWSTR, + pub nPages: u32, + pub Anonymous2: PROPSHEETHEADERW_V1_1, + pub Anonymous3: PROPSHEETHEADERW_V1_2, + pub pfnCallback: PFNPROPSHEETCALLBACK, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERW_V1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERW_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERW_V1_0 { + pub hIcon: super::WindowsAndMessaging::HICON, + pub pszIcon: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERW_V1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERW_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERW_V1_1 { + pub nStartPage: u32, + pub pStartPage: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERW_V1_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERW_V1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERW_V1_2 { + pub ppsp: *mut PROPSHEETPAGEW, + pub phpage: *mut HPROPSHEETPAGE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERW_V1_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERW_V1_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PROPSHEETHEADERW_V2 { + pub dwSize: u32, + pub dwFlags: u32, + pub hwndParent: super::super::Foundation::HWND, + pub hInstance: super::super::Foundation::HINSTANCE, + pub Anonymous1: PROPSHEETHEADERW_V2_0, + pub pszCaption: ::windows_sys::core::PCWSTR, + pub nPages: u32, + pub Anonymous2: PROPSHEETHEADERW_V2_1, + pub Anonymous3: PROPSHEETHEADERW_V2_2, + pub pfnCallback: PFNPROPSHEETCALLBACK, + pub Anonymous4: PROPSHEETHEADERW_V2_3, + pub hplWatermark: super::super::Graphics::Gdi::HPALETTE, + pub Anonymous5: PROPSHEETHEADERW_V2_4, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERW_V2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERW_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERW_V2_0 { + pub hIcon: super::WindowsAndMessaging::HICON, + pub pszIcon: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERW_V2_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERW_V2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERW_V2_1 { + pub nStartPage: u32, + pub pStartPage: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERW_V2_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERW_V2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERW_V2_2 { + pub ppsp: *mut PROPSHEETPAGEW, + pub phpage: *mut HPROPSHEETPAGE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERW_V2_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERW_V2_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERW_V2_3 { + pub hbmWatermark: super::super::Graphics::Gdi::HBITMAP, + pub pszbmWatermark: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERW_V2_3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERW_V2_3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETHEADERW_V2_4 { + pub hbmHeader: super::super::Graphics::Gdi::HBITMAP, + pub pszbmHeader: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETHEADERW_V2_4 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETHEADERW_V2_4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PROPSHEETPAGEA { + pub dwSize: u32, + pub dwFlags: u32, + pub hInstance: super::super::Foundation::HINSTANCE, + pub Anonymous1: PROPSHEETPAGEA_0, + pub Anonymous2: PROPSHEETPAGEA_1, + pub pszTitle: ::windows_sys::core::PCSTR, + pub pfnDlgProc: super::WindowsAndMessaging::DLGPROC, + pub lParam: super::super::Foundation::LPARAM, + pub pfnCallback: LPFNPSPCALLBACKA, + pub pcRefParent: *mut u32, + pub pszHeaderTitle: ::windows_sys::core::PCSTR, + pub pszHeaderSubTitle: ::windows_sys::core::PCSTR, + pub hActCtx: super::super::Foundation::HANDLE, + pub Anonymous3: PROPSHEETPAGEA_2, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEA_0 { + pub pszTemplate: ::windows_sys::core::PCSTR, + pub pResource: *mut super::WindowsAndMessaging::DLGTEMPLATE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEA_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEA_1 { + pub hIcon: super::WindowsAndMessaging::HICON, + pub pszIcon: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEA_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEA_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEA_2 { + pub hbmHeader: super::super::Graphics::Gdi::HBITMAP, + pub pszbmHeader: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEA_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEA_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PROPSHEETPAGEA_V1 { + pub dwSize: u32, + pub dwFlags: u32, + pub hInstance: super::super::Foundation::HINSTANCE, + pub Anonymous1: PROPSHEETPAGEA_V1_0, + pub Anonymous2: PROPSHEETPAGEA_V1_1, + pub pszTitle: ::windows_sys::core::PCSTR, + pub pfnDlgProc: super::WindowsAndMessaging::DLGPROC, + pub lParam: super::super::Foundation::LPARAM, + pub pfnCallback: LPFNPSPCALLBACKA, + pub pcRefParent: *mut u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEA_V1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEA_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEA_V1_0 { + pub pszTemplate: ::windows_sys::core::PCSTR, + pub pResource: *mut super::WindowsAndMessaging::DLGTEMPLATE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEA_V1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEA_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEA_V1_1 { + pub hIcon: super::WindowsAndMessaging::HICON, + pub pszIcon: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEA_V1_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEA_V1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PROPSHEETPAGEA_V2 { + pub dwSize: u32, + pub dwFlags: u32, + pub hInstance: super::super::Foundation::HINSTANCE, + pub Anonymous1: PROPSHEETPAGEA_V2_0, + pub Anonymous2: PROPSHEETPAGEA_V2_1, + pub pszTitle: ::windows_sys::core::PCSTR, + pub pfnDlgProc: super::WindowsAndMessaging::DLGPROC, + pub lParam: super::super::Foundation::LPARAM, + pub pfnCallback: LPFNPSPCALLBACKA, + pub pcRefParent: *mut u32, + pub pszHeaderTitle: ::windows_sys::core::PCSTR, + pub pszHeaderSubTitle: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEA_V2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEA_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEA_V2_0 { + pub pszTemplate: ::windows_sys::core::PCSTR, + pub pResource: *mut super::WindowsAndMessaging::DLGTEMPLATE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEA_V2_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEA_V2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEA_V2_1 { + pub hIcon: super::WindowsAndMessaging::HICON, + pub pszIcon: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEA_V2_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEA_V2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PROPSHEETPAGEA_V3 { + pub dwSize: u32, + pub dwFlags: u32, + pub hInstance: super::super::Foundation::HINSTANCE, + pub Anonymous1: PROPSHEETPAGEA_V3_0, + pub Anonymous2: PROPSHEETPAGEA_V3_1, + pub pszTitle: ::windows_sys::core::PCSTR, + pub pfnDlgProc: super::WindowsAndMessaging::DLGPROC, + pub lParam: super::super::Foundation::LPARAM, + pub pfnCallback: LPFNPSPCALLBACKA, + pub pcRefParent: *mut u32, + pub pszHeaderTitle: ::windows_sys::core::PCSTR, + pub pszHeaderSubTitle: ::windows_sys::core::PCSTR, + pub hActCtx: super::super::Foundation::HANDLE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEA_V3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEA_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEA_V3_0 { + pub pszTemplate: ::windows_sys::core::PCSTR, + pub pResource: *mut super::WindowsAndMessaging::DLGTEMPLATE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEA_V3_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEA_V3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEA_V3_1 { + pub hIcon: super::WindowsAndMessaging::HICON, + pub pszIcon: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEA_V3_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEA_V3_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PROPSHEETPAGEW { + pub dwSize: u32, + pub dwFlags: u32, + pub hInstance: super::super::Foundation::HINSTANCE, + pub Anonymous1: PROPSHEETPAGEW_0, + pub Anonymous2: PROPSHEETPAGEW_1, + pub pszTitle: ::windows_sys::core::PCWSTR, + pub pfnDlgProc: super::WindowsAndMessaging::DLGPROC, + pub lParam: super::super::Foundation::LPARAM, + pub pfnCallback: LPFNPSPCALLBACKW, + pub pcRefParent: *mut u32, + pub pszHeaderTitle: ::windows_sys::core::PCWSTR, + pub pszHeaderSubTitle: ::windows_sys::core::PCWSTR, + pub hActCtx: super::super::Foundation::HANDLE, + pub Anonymous3: PROPSHEETPAGEW_2, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEW_0 { + pub pszTemplate: ::windows_sys::core::PCWSTR, + pub pResource: *mut super::WindowsAndMessaging::DLGTEMPLATE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEW_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEW_1 { + pub hIcon: super::WindowsAndMessaging::HICON, + pub pszIcon: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEW_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEW_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEW_2 { + pub hbmHeader: super::super::Graphics::Gdi::HBITMAP, + pub pszbmHeader: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEW_2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEW_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PROPSHEETPAGEW_V1 { + pub dwSize: u32, + pub dwFlags: u32, + pub hInstance: super::super::Foundation::HINSTANCE, + pub Anonymous1: PROPSHEETPAGEW_V1_0, + pub Anonymous2: PROPSHEETPAGEW_V1_1, + pub pszTitle: ::windows_sys::core::PCWSTR, + pub pfnDlgProc: super::WindowsAndMessaging::DLGPROC, + pub lParam: super::super::Foundation::LPARAM, + pub pfnCallback: LPFNPSPCALLBACKW, + pub pcRefParent: *mut u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEW_V1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEW_V1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEW_V1_0 { + pub pszTemplate: ::windows_sys::core::PCWSTR, + pub pResource: *mut super::WindowsAndMessaging::DLGTEMPLATE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEW_V1_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEW_V1_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEW_V1_1 { + pub hIcon: super::WindowsAndMessaging::HICON, + pub pszIcon: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEW_V1_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEW_V1_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PROPSHEETPAGEW_V2 { + pub dwSize: u32, + pub dwFlags: u32, + pub hInstance: super::super::Foundation::HINSTANCE, + pub Anonymous1: PROPSHEETPAGEW_V2_0, + pub Anonymous2: PROPSHEETPAGEW_V2_1, + pub pszTitle: ::windows_sys::core::PCWSTR, + pub pfnDlgProc: super::WindowsAndMessaging::DLGPROC, + pub lParam: super::super::Foundation::LPARAM, + pub pfnCallback: LPFNPSPCALLBACKW, + pub pcRefParent: *mut u32, + pub pszHeaderTitle: ::windows_sys::core::PCWSTR, + pub pszHeaderSubTitle: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEW_V2 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEW_V2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEW_V2_0 { + pub pszTemplate: ::windows_sys::core::PCWSTR, + pub pResource: *mut super::WindowsAndMessaging::DLGTEMPLATE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEW_V2_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEW_V2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEW_V2_1 { + pub hIcon: super::WindowsAndMessaging::HICON, + pub pszIcon: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEW_V2_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEW_V2_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct PROPSHEETPAGEW_V3 { + pub dwSize: u32, + pub dwFlags: u32, + pub hInstance: super::super::Foundation::HINSTANCE, + pub Anonymous1: PROPSHEETPAGEW_V3_0, + pub Anonymous2: PROPSHEETPAGEW_V3_1, + pub pszTitle: ::windows_sys::core::PCWSTR, + pub pfnDlgProc: super::WindowsAndMessaging::DLGPROC, + pub lParam: super::super::Foundation::LPARAM, + pub pfnCallback: LPFNPSPCALLBACKW, + pub pcRefParent: *mut u32, + pub pszHeaderTitle: ::windows_sys::core::PCWSTR, + pub pszHeaderSubTitle: ::windows_sys::core::PCWSTR, + pub hActCtx: super::super::Foundation::HANDLE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEW_V3 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEW_V3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEW_V3_0 { + pub pszTemplate: ::windows_sys::core::PCWSTR, + pub pResource: *mut super::WindowsAndMessaging::DLGTEMPLATE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEW_V3_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEW_V3_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub union PROPSHEETPAGEW_V3_1 { + pub hIcon: super::WindowsAndMessaging::HICON, + pub pszIcon: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for PROPSHEETPAGEW_V3_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for PROPSHEETPAGEW_V3_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PSHNOTIFY { + pub hdr: NMHDR, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PSHNOTIFY {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PSHNOTIFY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RBHITTESTINFO { + pub pt: super::super::Foundation::POINT, + pub flags: u32, + pub iBand: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RBHITTESTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RBHITTESTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct REBARBANDINFOA { + pub cbSize: u32, + pub fMask: u32, + pub fStyle: u32, + pub clrFore: super::super::Foundation::COLORREF, + pub clrBack: super::super::Foundation::COLORREF, + pub lpText: ::windows_sys::core::PSTR, + pub cch: u32, + pub iImage: i32, + pub hwndChild: super::super::Foundation::HWND, + pub cxMinChild: u32, + pub cyMinChild: u32, + pub cx: u32, + pub hbmBack: super::super::Graphics::Gdi::HBITMAP, + pub wID: u32, + pub cyChild: u32, + pub cyMaxChild: u32, + pub cyIntegral: u32, + pub cxIdeal: u32, + pub lParam: super::super::Foundation::LPARAM, + pub cxHeader: u32, + pub rcChevronLocation: super::super::Foundation::RECT, + pub uChevronState: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for REBARBANDINFOA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for REBARBANDINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct REBARBANDINFOW { + pub cbSize: u32, + pub fMask: u32, + pub fStyle: u32, + pub clrFore: super::super::Foundation::COLORREF, + pub clrBack: super::super::Foundation::COLORREF, + pub lpText: ::windows_sys::core::PWSTR, + pub cch: u32, + pub iImage: i32, + pub hwndChild: super::super::Foundation::HWND, + pub cxMinChild: u32, + pub cyMinChild: u32, + pub cx: u32, + pub hbmBack: super::super::Graphics::Gdi::HBITMAP, + pub wID: u32, + pub cyChild: u32, + pub cyMaxChild: u32, + pub cyIntegral: u32, + pub cxIdeal: u32, + pub lParam: super::super::Foundation::LPARAM, + pub cxHeader: u32, + pub rcChevronLocation: super::super::Foundation::RECT, + pub uChevronState: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for REBARBANDINFOW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for REBARBANDINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REBARINFO { + pub cbSize: u32, + pub fMask: u32, + pub himl: HIMAGELIST, +} +impl ::core::marker::Copy for REBARINFO {} +impl ::core::clone::Clone for REBARINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct TASKDIALOGCONFIG { + pub cbSize: u32, + pub hwndParent: super::super::Foundation::HWND, + pub hInstance: super::super::Foundation::HINSTANCE, + pub dwFlags: TASKDIALOG_FLAGS, + pub dwCommonButtons: TASKDIALOG_COMMON_BUTTON_FLAGS, + pub pszWindowTitle: ::windows_sys::core::PCWSTR, + pub Anonymous1: TASKDIALOGCONFIG_0, + pub pszMainInstruction: ::windows_sys::core::PCWSTR, + pub pszContent: ::windows_sys::core::PCWSTR, + pub cButtons: u32, + pub pButtons: *const TASKDIALOG_BUTTON, + pub nDefaultButton: i32, + pub cRadioButtons: u32, + pub pRadioButtons: *const TASKDIALOG_BUTTON, + pub nDefaultRadioButton: i32, + pub pszVerificationText: ::windows_sys::core::PCWSTR, + pub pszExpandedInformation: ::windows_sys::core::PCWSTR, + pub pszExpandedControlText: ::windows_sys::core::PCWSTR, + pub pszCollapsedControlText: ::windows_sys::core::PCWSTR, + pub Anonymous2: TASKDIALOGCONFIG_1, + pub pszFooter: ::windows_sys::core::PCWSTR, + pub pfCallback: PFTASKDIALOGCALLBACK, + pub lpCallbackData: isize, + pub cxWidth: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for TASKDIALOGCONFIG {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for TASKDIALOGCONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub union TASKDIALOGCONFIG_0 { + pub hMainIcon: super::WindowsAndMessaging::HICON, + pub pszMainIcon: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for TASKDIALOGCONFIG_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for TASKDIALOGCONFIG_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub union TASKDIALOGCONFIG_1 { + pub hFooterIcon: super::WindowsAndMessaging::HICON, + pub pszFooterIcon: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for TASKDIALOGCONFIG_1 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for TASKDIALOGCONFIG_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct TASKDIALOG_BUTTON { + pub nButtonID: i32, + pub pszButtonText: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for TASKDIALOG_BUTTON {} +impl ::core::clone::Clone for TASKDIALOG_BUTTON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TA_CUBIC_BEZIER { + pub header: TA_TIMINGFUNCTION, + pub rX0: f32, + pub rY0: f32, + pub rX1: f32, + pub rY1: f32, +} +impl ::core::marker::Copy for TA_CUBIC_BEZIER {} +impl ::core::clone::Clone for TA_CUBIC_BEZIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TA_TIMINGFUNCTION { + pub eTimingFunctionType: TA_TIMINGFUNCTION_TYPE, +} +impl ::core::marker::Copy for TA_TIMINGFUNCTION {} +impl ::core::clone::Clone for TA_TIMINGFUNCTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TA_TRANSFORM { + pub eTransformType: TA_TRANSFORM_TYPE, + pub dwTimingFunctionId: u32, + pub dwStartTime: u32, + pub dwDurationTime: u32, + pub eFlags: TA_TRANSFORM_FLAG, +} +impl ::core::marker::Copy for TA_TRANSFORM {} +impl ::core::clone::Clone for TA_TRANSFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TA_TRANSFORM_2D { + pub header: TA_TRANSFORM, + pub rX: f32, + pub rY: f32, + pub rInitialX: f32, + pub rInitialY: f32, + pub rOriginX: f32, + pub rOriginY: f32, +} +impl ::core::marker::Copy for TA_TRANSFORM_2D {} +impl ::core::clone::Clone for TA_TRANSFORM_2D { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TA_TRANSFORM_CLIP { + pub header: TA_TRANSFORM, + pub rLeft: f32, + pub rTop: f32, + pub rRight: f32, + pub rBottom: f32, + pub rInitialLeft: f32, + pub rInitialTop: f32, + pub rInitialRight: f32, + pub rInitialBottom: f32, +} +impl ::core::marker::Copy for TA_TRANSFORM_CLIP {} +impl ::core::clone::Clone for TA_TRANSFORM_CLIP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TA_TRANSFORM_OPACITY { + pub header: TA_TRANSFORM, + pub rOpacity: f32, + pub rInitialOpacity: f32, +} +impl ::core::marker::Copy for TA_TRANSFORM_OPACITY {} +impl ::core::clone::Clone for TA_TRANSFORM_OPACITY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TBADDBITMAP { + pub hInst: super::super::Foundation::HINSTANCE, + pub nID: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TBADDBITMAP {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TBADDBITMAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct TBBUTTON { + pub iBitmap: i32, + pub idCommand: i32, + pub fsState: u8, + pub fsStyle: u8, + pub bReserved: [u8; 6], + pub dwData: usize, + pub iString: isize, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for TBBUTTON {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for TBBUTTON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(target_arch = "x86")] +pub struct TBBUTTON { + pub iBitmap: i32, + pub idCommand: i32, + pub fsState: u8, + pub fsStyle: u8, + pub bReserved: [u8; 2], + pub dwData: usize, + pub iString: isize, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for TBBUTTON {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for TBBUTTON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TBBUTTONINFOA { + pub cbSize: u32, + pub dwMask: TBBUTTONINFOW_MASK, + pub idCommand: i32, + pub iImage: i32, + pub fsState: u8, + pub fsStyle: u8, + pub cx: u16, + pub lParam: usize, + pub pszText: ::windows_sys::core::PSTR, + pub cchText: i32, +} +impl ::core::marker::Copy for TBBUTTONINFOA {} +impl ::core::clone::Clone for TBBUTTONINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TBBUTTONINFOW { + pub cbSize: u32, + pub dwMask: TBBUTTONINFOW_MASK, + pub idCommand: i32, + pub iImage: i32, + pub fsState: u8, + pub fsStyle: u8, + pub cx: u16, + pub lParam: usize, + pub pszText: ::windows_sys::core::PWSTR, + pub cchText: i32, +} +impl ::core::marker::Copy for TBBUTTONINFOW {} +impl ::core::clone::Clone for TBBUTTONINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TBINSERTMARK { + pub iButton: i32, + pub dwFlags: TBINSERTMARK_FLAGS, +} +impl ::core::marker::Copy for TBINSERTMARK {} +impl ::core::clone::Clone for TBINSERTMARK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TBMETRICS { + pub cbSize: u32, + pub dwMask: u32, + pub cxPad: i32, + pub cyPad: i32, + pub cxBarPad: i32, + pub cyBarPad: i32, + pub cxButtonSpacing: i32, + pub cyButtonSpacing: i32, +} +impl ::core::marker::Copy for TBMETRICS {} +impl ::core::clone::Clone for TBMETRICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TBREPLACEBITMAP { + pub hInstOld: super::super::Foundation::HINSTANCE, + pub nIDOld: usize, + pub hInstNew: super::super::Foundation::HINSTANCE, + pub nIDNew: usize, + pub nButtons: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TBREPLACEBITMAP {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TBREPLACEBITMAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub struct TBSAVEPARAMSA { + pub hkr: super::super::System::Registry::HKEY, + pub pszSubKey: ::windows_sys::core::PCSTR, + pub pszValueName: ::windows_sys::core::PCSTR, +} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::marker::Copy for TBSAVEPARAMSA {} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::clone::Clone for TBSAVEPARAMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(feature = "Win32_System_Registry")] +pub struct TBSAVEPARAMSW { + pub hkr: super::super::System::Registry::HKEY, + pub pszSubKey: ::windows_sys::core::PCWSTR, + pub pszValueName: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::marker::Copy for TBSAVEPARAMSW {} +#[cfg(feature = "Win32_System_Registry")] +impl ::core::clone::Clone for TBSAVEPARAMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCHITTESTINFO { + pub pt: super::super::Foundation::POINT, + pub flags: TCHITTESTINFO_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCHITTESTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCHITTESTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCITEMA { + pub mask: TCITEMHEADERA_MASK, + pub dwState: TAB_CONTROL_ITEM_STATE, + pub dwStateMask: TAB_CONTROL_ITEM_STATE, + pub pszText: ::windows_sys::core::PSTR, + pub cchTextMax: i32, + pub iImage: i32, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCITEMA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCITEMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCITEMHEADERA { + pub mask: TCITEMHEADERA_MASK, + pub lpReserved1: u32, + pub lpReserved2: u32, + pub pszText: ::windows_sys::core::PSTR, + pub cchTextMax: i32, + pub iImage: i32, +} +impl ::core::marker::Copy for TCITEMHEADERA {} +impl ::core::clone::Clone for TCITEMHEADERA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TCITEMHEADERW { + pub mask: TCITEMHEADERA_MASK, + pub lpReserved1: u32, + pub lpReserved2: u32, + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, + pub iImage: i32, +} +impl ::core::marker::Copy for TCITEMHEADERW {} +impl ::core::clone::Clone for TCITEMHEADERW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TCITEMW { + pub mask: TCITEMHEADERA_MASK, + pub dwState: TAB_CONTROL_ITEM_STATE, + pub dwStateMask: TAB_CONTROL_ITEM_STATE, + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, + pub iImage: i32, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TCITEMW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TCITEMW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOUCH_HIT_TESTING_INPUT { + pub pointerId: u32, + pub point: super::super::Foundation::POINT, + pub boundingBox: super::super::Foundation::RECT, + pub nonOccludedBoundingBox: super::super::Foundation::RECT, + pub orientation: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOUCH_HIT_TESTING_INPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOUCH_HIT_TESTING_INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOUCH_HIT_TESTING_PROXIMITY_EVALUATION { + pub score: u16, + pub adjustedPoint: super::super::Foundation::POINT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOUCH_HIT_TESTING_PROXIMITY_EVALUATION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOUCH_HIT_TESTING_PROXIMITY_EVALUATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TTGETTITLE { + pub dwSize: u32, + pub uTitleBitmap: u32, + pub cch: u32, + pub pszTitle: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for TTGETTITLE {} +impl ::core::clone::Clone for TTGETTITLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TTHITTESTINFOA { + pub hwnd: super::super::Foundation::HWND, + pub pt: super::super::Foundation::POINT, + pub ti: TTTOOLINFOA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TTHITTESTINFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TTHITTESTINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TTHITTESTINFOW { + pub hwnd: super::super::Foundation::HWND, + pub pt: super::super::Foundation::POINT, + pub ti: TTTOOLINFOW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TTHITTESTINFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TTHITTESTINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TTTOOLINFOA { + pub cbSize: u32, + pub uFlags: TOOLTIP_FLAGS, + pub hwnd: super::super::Foundation::HWND, + pub uId: usize, + pub rect: super::super::Foundation::RECT, + pub hinst: super::super::Foundation::HINSTANCE, + pub lpszText: ::windows_sys::core::PSTR, + pub lParam: super::super::Foundation::LPARAM, + pub lpReserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TTTOOLINFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TTTOOLINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TTTOOLINFOW { + pub cbSize: u32, + pub uFlags: TOOLTIP_FLAGS, + pub hwnd: super::super::Foundation::HWND, + pub uId: usize, + pub rect: super::super::Foundation::RECT, + pub hinst: super::super::Foundation::HINSTANCE, + pub lpszText: ::windows_sys::core::PWSTR, + pub lParam: super::super::Foundation::LPARAM, + pub lpReserved: *mut ::core::ffi::c_void, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TTTOOLINFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TTTOOLINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TVGETITEMPARTRECTINFO { + pub hti: HTREEITEM, + pub prc: *mut super::super::Foundation::RECT, + pub partID: TVITEMPART, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TVGETITEMPARTRECTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TVGETITEMPARTRECTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TVHITTESTINFO { + pub pt: super::super::Foundation::POINT, + pub flags: TVHITTESTINFO_FLAGS, + pub hItem: HTREEITEM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TVHITTESTINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TVHITTESTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TVINSERTSTRUCTA { + pub hParent: HTREEITEM, + pub hInsertAfter: HTREEITEM, + pub Anonymous: TVINSERTSTRUCTA_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TVINSERTSTRUCTA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TVINSERTSTRUCTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union TVINSERTSTRUCTA_0 { + pub itemex: TVITEMEXA, + pub item: TVITEMA, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TVINSERTSTRUCTA_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TVINSERTSTRUCTA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TVINSERTSTRUCTW { + pub hParent: HTREEITEM, + pub hInsertAfter: HTREEITEM, + pub Anonymous: TVINSERTSTRUCTW_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TVINSERTSTRUCTW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TVINSERTSTRUCTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union TVINSERTSTRUCTW_0 { + pub itemex: TVITEMEXW, + pub item: TVITEMW, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TVINSERTSTRUCTW_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TVINSERTSTRUCTW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TVITEMA { + pub mask: TVITEM_MASK, + pub hItem: HTREEITEM, + pub state: TREE_VIEW_ITEM_STATE_FLAGS, + pub stateMask: TREE_VIEW_ITEM_STATE_FLAGS, + pub pszText: ::windows_sys::core::PSTR, + pub cchTextMax: i32, + pub iImage: i32, + pub iSelectedImage: i32, + pub cChildren: TVITEMEXW_CHILDREN, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TVITEMA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TVITEMA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TVITEMEXA { + pub mask: TVITEM_MASK, + pub hItem: HTREEITEM, + pub state: u32, + pub stateMask: u32, + pub pszText: ::windows_sys::core::PSTR, + pub cchTextMax: i32, + pub iImage: i32, + pub iSelectedImage: i32, + pub cChildren: TVITEMEXW_CHILDREN, + pub lParam: super::super::Foundation::LPARAM, + pub iIntegral: i32, + pub uStateEx: u32, + pub hwnd: super::super::Foundation::HWND, + pub iExpandedImage: i32, + pub iReserved: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TVITEMEXA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TVITEMEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TVITEMEXW { + pub mask: TVITEM_MASK, + pub hItem: HTREEITEM, + pub state: u32, + pub stateMask: u32, + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, + pub iImage: i32, + pub iSelectedImage: i32, + pub cChildren: TVITEMEXW_CHILDREN, + pub lParam: super::super::Foundation::LPARAM, + pub iIntegral: i32, + pub uStateEx: u32, + pub hwnd: super::super::Foundation::HWND, + pub iExpandedImage: i32, + pub iReserved: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TVITEMEXW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TVITEMEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TVITEMW { + pub mask: TVITEM_MASK, + pub hItem: HTREEITEM, + pub state: TREE_VIEW_ITEM_STATE_FLAGS, + pub stateMask: TREE_VIEW_ITEM_STATE_FLAGS, + pub pszText: ::windows_sys::core::PWSTR, + pub cchTextMax: i32, + pub iImage: i32, + pub iSelectedImage: i32, + pub cChildren: TVITEMEXW_CHILDREN, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TVITEMW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TVITEMW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TVSORTCB { + pub hParent: HTREEITEM, + pub lpfnCompare: PFNTVCOMPARE, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TVSORTCB {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TVSORTCB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct UDACCEL { + pub nSec: u32, + pub nInc: u32, +} +impl ::core::marker::Copy for UDACCEL {} +impl ::core::clone::Clone for UDACCEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct USAGE_PROPERTIES { + pub level: u16, + pub page: u16, + pub usage: u16, + pub logicalMinimum: i32, + pub logicalMaximum: i32, + pub unit: u16, + pub exponent: u16, + pub count: u8, + pub physicalMinimum: i32, + pub physicalMaximum: i32, +} +impl ::core::marker::Copy for USAGE_PROPERTIES {} +impl ::core::clone::Clone for USAGE_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTA_OPTIONS { + pub dwFlags: u32, + pub dwMask: u32, +} +impl ::core::marker::Copy for WTA_OPTIONS {} +impl ::core::clone::Clone for WTA_OPTIONS { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type DTT_CALLBACK_PROC = ::core::option::Option i32>; +pub type EDITWORDBREAKPROCA = ::core::option::Option i32>; +pub type EDITWORDBREAKPROCW = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFNADDPROPSHEETPAGES = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type LPFNCCINFOA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type LPFNCCINFOW = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub type LPFNCCSIZETOTEXTA = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub type LPFNCCSIZETOTEXTW = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFNCCSTYLEA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFNCCSTYLEW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub type LPFNPSPCALLBACKA = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_WindowsAndMessaging"))] +pub type LPFNPSPCALLBACKW = ::core::option::Option u32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type LPFNSVADDPROPSHEETPAGE = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNDACOMPARE = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNDACOMPARECONST = ::core::option::Option i32>; +pub type PFNDAENUMCALLBACK = ::core::option::Option i32>; +pub type PFNDAENUMCALLBACKCONST = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNDPAMERGE = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNDPAMERGECONST = ::core::option::Option *mut ::core::ffi::c_void>; +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub type PFNDPASTREAM = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNLVCOMPARE = ::core::option::Option i32>; +pub type PFNLVGROUPCOMPARE = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNPROPSHEETCALLBACK = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNTVCOMPARE = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFTASKDIALOGCALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/HiDpi/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/HiDpi/mod.rs new file mode 100644 index 000000000..a3d2e2e17 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/HiDpi/mod.rs @@ -0,0 +1,83 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn AdjustWindowRectExForDpi(lprect : *mut super::super::Foundation:: RECT, dwstyle : super::WindowsAndMessaging:: WINDOW_STYLE, bmenu : super::super::Foundation:: BOOL, dwexstyle : super::WindowsAndMessaging:: WINDOW_EX_STYLE, dpi : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AreDpiAwarenessContextsEqual(dpicontexta : DPI_AWARENESS_CONTEXT, dpicontextb : DPI_AWARENESS_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableNonClientDpiScaling(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn GetAwarenessFromDpiAwarenessContext(value : DPI_AWARENESS_CONTEXT) -> DPI_AWARENESS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDialogControlDpiChangeBehavior(hwnd : super::super::Foundation:: HWND) -> DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDialogDpiChangeBehavior(hdlg : super::super::Foundation:: HWND) -> DIALOG_DPI_CHANGE_BEHAVIORS); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDpiAwarenessContextForProcess(hprocess : super::super::Foundation:: HANDLE) -> DPI_AWARENESS_CONTEXT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("api-ms-win-shcore-scaling-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn GetDpiForMonitor(hmonitor : super::super::Graphics::Gdi:: HMONITOR, dpitype : MONITOR_DPI_TYPE, dpix : *mut u32, dpiy : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("user32.dll" "system" fn GetDpiForSystem() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDpiForWindow(hwnd : super::super::Foundation:: HWND) -> u32); +::windows_targets::link!("user32.dll" "system" fn GetDpiFromDpiAwarenessContext(value : DPI_AWARENESS_CONTEXT) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-shcore-scaling-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessDpiAwareness(hprocess : super::super::Foundation:: HANDLE, value : *mut PROCESS_DPI_AWARENESS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemDpiForProcess(hprocess : super::super::Foundation:: HANDLE) -> u32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn GetSystemMetricsForDpi(nindex : super::WindowsAndMessaging:: SYSTEM_METRICS_INDEX, dpi : u32) -> i32); +::windows_targets::link!("user32.dll" "system" fn GetThreadDpiAwarenessContext() -> DPI_AWARENESS_CONTEXT); +::windows_targets::link!("user32.dll" "system" fn GetThreadDpiHostingBehavior() -> DPI_HOSTING_BEHAVIOR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowDpiAwarenessContext(hwnd : super::super::Foundation:: HWND) -> DPI_AWARENESS_CONTEXT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowDpiHostingBehavior(hwnd : super::super::Foundation:: HWND) -> DPI_HOSTING_BEHAVIOR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsValidDpiAwarenessContext(value : DPI_AWARENESS_CONTEXT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LogicalToPhysicalPointForPerMonitorDPI(hwnd : super::super::Foundation:: HWND, lppoint : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("uxtheme.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn OpenThemeDataForDpi(hwnd : super::super::Foundation:: HWND, pszclasslist : ::windows_sys::core::PCWSTR, dpi : u32) -> super::Controls:: HTHEME); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PhysicalToLogicalPointForPerMonitorDPI(hwnd : super::super::Foundation:: HWND, lppoint : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDialogControlDpiChangeBehavior(hwnd : super::super::Foundation:: HWND, mask : DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS, values : DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDialogDpiChangeBehavior(hdlg : super::super::Foundation:: HWND, mask : DIALOG_DPI_CHANGE_BEHAVIORS, values : DIALOG_DPI_CHANGE_BEHAVIORS) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-shcore-scaling-l1-1-1.dll" "system" fn SetProcessDpiAwareness(value : PROCESS_DPI_AWARENESS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessDpiAwarenessContext(value : DPI_AWARENESS_CONTEXT) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn SetThreadDpiAwarenessContext(dpicontext : DPI_AWARENESS_CONTEXT) -> DPI_AWARENESS_CONTEXT); +::windows_targets::link!("user32.dll" "system" fn SetThreadDpiHostingBehavior(value : DPI_HOSTING_BEHAVIOR) -> DPI_HOSTING_BEHAVIOR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SystemParametersInfoForDpi(uiaction : u32, uiparam : u32, pvparam : *mut ::core::ffi::c_void, fwinini : u32, dpi : u32) -> super::super::Foundation:: BOOL); +pub const DCDC_DEFAULT: DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS = 0i32; +pub const DCDC_DISABLE_FONT_UPDATE: DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS = 1i32; +pub const DCDC_DISABLE_RELAYOUT: DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS = 2i32; +pub const DDC_DEFAULT: DIALOG_DPI_CHANGE_BEHAVIORS = 0i32; +pub const DDC_DISABLE_ALL: DIALOG_DPI_CHANGE_BEHAVIORS = 1i32; +pub const DDC_DISABLE_CONTROL_RELAYOUT: DIALOG_DPI_CHANGE_BEHAVIORS = 4i32; +pub const DDC_DISABLE_RESIZE: DIALOG_DPI_CHANGE_BEHAVIORS = 2i32; +pub const DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE: DPI_AWARENESS_CONTEXT = -3i32 as _; +pub const DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2: DPI_AWARENESS_CONTEXT = -4i32 as _; +pub const DPI_AWARENESS_CONTEXT_SYSTEM_AWARE: DPI_AWARENESS_CONTEXT = -2i32 as _; +pub const DPI_AWARENESS_CONTEXT_UNAWARE: DPI_AWARENESS_CONTEXT = -1i32 as _; +pub const DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED: DPI_AWARENESS_CONTEXT = -5i32 as _; +pub const DPI_AWARENESS_INVALID: DPI_AWARENESS = -1i32; +pub const DPI_AWARENESS_PER_MONITOR_AWARE: DPI_AWARENESS = 2i32; +pub const DPI_AWARENESS_SYSTEM_AWARE: DPI_AWARENESS = 1i32; +pub const DPI_AWARENESS_UNAWARE: DPI_AWARENESS = 0i32; +pub const DPI_HOSTING_BEHAVIOR_DEFAULT: DPI_HOSTING_BEHAVIOR = 0i32; +pub const DPI_HOSTING_BEHAVIOR_INVALID: DPI_HOSTING_BEHAVIOR = -1i32; +pub const DPI_HOSTING_BEHAVIOR_MIXED: DPI_HOSTING_BEHAVIOR = 1i32; +pub const MDT_ANGULAR_DPI: MONITOR_DPI_TYPE = 1i32; +pub const MDT_DEFAULT: MONITOR_DPI_TYPE = 0i32; +pub const MDT_EFFECTIVE_DPI: MONITOR_DPI_TYPE = 0i32; +pub const MDT_RAW_DPI: MONITOR_DPI_TYPE = 2i32; +pub const PROCESS_DPI_UNAWARE: PROCESS_DPI_AWARENESS = 0i32; +pub const PROCESS_PER_MONITOR_DPI_AWARE: PROCESS_DPI_AWARENESS = 2i32; +pub const PROCESS_SYSTEM_DPI_AWARE: PROCESS_DPI_AWARENESS = 1i32; +pub type DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS = i32; +pub type DIALOG_DPI_CHANGE_BEHAVIORS = i32; +pub type DPI_AWARENESS = i32; +pub type DPI_HOSTING_BEHAVIOR = i32; +pub type MONITOR_DPI_TYPE = i32; +pub type PROCESS_DPI_AWARENESS = i32; +pub type DPI_AWARENESS_CONTEXT = isize; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/Ime/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/Ime/mod.rs new file mode 100644 index 000000000..001328847 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/Ime/mod.rs @@ -0,0 +1,1802 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmAssociateContext(param0 : super::super::super::Foundation:: HWND, param1 : super::super::super::Globalization:: HIMC) -> super::super::super::Globalization:: HIMC); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmAssociateContextEx(param0 : super::super::super::Foundation:: HWND, param1 : super::super::super::Globalization:: HIMC, param2 : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmConfigureIMEA(param0 : super::super::TextServices:: HKL, param1 : super::super::super::Foundation:: HWND, param2 : u32, param3 : *mut ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmConfigureIMEW(param0 : super::super::TextServices:: HKL, param1 : super::super::super::Foundation:: HWND, param2 : u32, param3 : *mut ::core::ffi::c_void) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmCreateContext() -> super::super::super::Globalization:: HIMC); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmCreateIMCC(param0 : u32) -> super::super::super::Globalization:: HIMCC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmCreateSoftKeyboard(param0 : u32, param1 : super::super::super::Foundation:: HWND, param2 : i32, param3 : i32) -> super::super::super::Foundation:: HWND); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmDestroyContext(param0 : super::super::super::Globalization:: HIMC) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmDestroyIMCC(param0 : super::super::super::Globalization:: HIMCC) -> super::super::super::Globalization:: HIMCC); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmDestroySoftKeyboard(param0 : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmDisableIME(param0 : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmDisableLegacyIME() -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmDisableTextFrameService(idthread : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmEnumInputContext(idthread : u32, lpfn : IMCENUMPROC, lparam : super::super::super::Foundation:: LPARAM) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmEnumRegisterWordA(param0 : super::super::TextServices:: HKL, param1 : REGISTERWORDENUMPROCA, lpszreading : ::windows_sys::core::PCSTR, param3 : u32, lpszregister : ::windows_sys::core::PCSTR, param5 : *mut ::core::ffi::c_void) -> u32); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmEnumRegisterWordW(param0 : super::super::TextServices:: HKL, param1 : REGISTERWORDENUMPROCW, lpszreading : ::windows_sys::core::PCWSTR, param3 : u32, lpszregister : ::windows_sys::core::PCWSTR, param5 : *mut ::core::ffi::c_void) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_UI_TextServices\"`"] fn ImmEscapeA(param0 : super::super::TextServices:: HKL, param1 : super::super::super::Globalization:: HIMC, param2 : IME_ESCAPE, param3 : *mut ::core::ffi::c_void) -> super::super::super::Foundation:: LRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_UI_TextServices\"`"] fn ImmEscapeW(param0 : super::super::TextServices:: HKL, param1 : super::super::super::Globalization:: HIMC, param2 : IME_ESCAPE, param3 : *mut ::core::ffi::c_void) -> super::super::super::Foundation:: LRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGenerateMessage(param0 : super::super::super::Globalization:: HIMC) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetCandidateListA(param0 : super::super::super::Globalization:: HIMC, deindex : u32, lpcandlist : *mut CANDIDATELIST, dwbuflen : u32) -> u32); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetCandidateListCountA(param0 : super::super::super::Globalization:: HIMC, lpdwlistcount : *mut u32) -> u32); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetCandidateListCountW(param0 : super::super::super::Globalization:: HIMC, lpdwlistcount : *mut u32) -> u32); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetCandidateListW(param0 : super::super::super::Globalization:: HIMC, deindex : u32, lpcandlist : *mut CANDIDATELIST, dwbuflen : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGetCandidateWindow(param0 : super::super::super::Globalization:: HIMC, param1 : u32, lpcandidate : *mut CANDIDATEFORM) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmGetCompositionFontA(param0 : super::super::super::Globalization:: HIMC, lplf : *mut super::super::super::Graphics::Gdi:: LOGFONTA) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmGetCompositionFontW(param0 : super::super::super::Globalization:: HIMC, lplf : *mut super::super::super::Graphics::Gdi:: LOGFONTW) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetCompositionStringA(param0 : super::super::super::Globalization:: HIMC, param1 : IME_COMPOSITION_STRING, lpbuf : *mut ::core::ffi::c_void, dwbuflen : u32) -> i32); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetCompositionStringW(param0 : super::super::super::Globalization:: HIMC, param1 : IME_COMPOSITION_STRING, lpbuf : *mut ::core::ffi::c_void, dwbuflen : u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGetCompositionWindow(param0 : super::super::super::Globalization:: HIMC, lpcompform : *mut COMPOSITIONFORM) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGetContext(param0 : super::super::super::Foundation:: HWND) -> super::super::super::Globalization:: HIMC); +#[cfg(all(feature = "Win32_Globalization", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`, `\"Win32_UI_TextServices\"`"] fn ImmGetConversionListA(param0 : super::super::TextServices:: HKL, param1 : super::super::super::Globalization:: HIMC, lpsrc : ::windows_sys::core::PCSTR, lpdst : *mut CANDIDATELIST, dwbuflen : u32, uflag : GET_CONVERSION_LIST_FLAG) -> u32); +#[cfg(all(feature = "Win32_Globalization", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`, `\"Win32_UI_TextServices\"`"] fn ImmGetConversionListW(param0 : super::super::TextServices:: HKL, param1 : super::super::super::Globalization:: HIMC, lpsrc : ::windows_sys::core::PCWSTR, lpdst : *mut CANDIDATELIST, dwbuflen : u32, uflag : GET_CONVERSION_LIST_FLAG) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGetConversionStatus(param0 : super::super::super::Globalization:: HIMC, lpfdwconversion : *mut IME_CONVERSION_MODE, lpfdwsentence : *mut IME_SENTENCE_MODE) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmGetDefaultIMEWnd(param0 : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: HWND); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetDescriptionA(param0 : super::super::TextServices:: HKL, lpszdescription : ::windows_sys::core::PSTR, ubuflen : u32) -> u32); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetDescriptionW(param0 : super::super::TextServices:: HKL, lpszdescription : ::windows_sys::core::PWSTR, ubuflen : u32) -> u32); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetGuideLineA(param0 : super::super::super::Globalization:: HIMC, dwindex : GET_GUIDE_LINE_TYPE, lpbuf : ::windows_sys::core::PSTR, dwbuflen : u32) -> u32); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetGuideLineW(param0 : super::super::super::Globalization:: HIMC, dwindex : GET_GUIDE_LINE_TYPE, lpbuf : ::windows_sys::core::PWSTR, dwbuflen : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmGetHotKey(param0 : u32, lpumodifiers : *mut u32, lpuvkey : *mut u32, phkl : *mut super::super::TextServices:: HKL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetIMCCLockCount(param0 : super::super::super::Globalization:: HIMCC) -> u32); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetIMCCSize(param0 : super::super::super::Globalization:: HIMCC) -> u32); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmGetIMCLockCount(param0 : super::super::super::Globalization:: HIMC) -> u32); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetIMEFileNameA(param0 : super::super::TextServices:: HKL, lpszfilename : ::windows_sys::core::PSTR, ubuflen : u32) -> u32); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetIMEFileNameW(param0 : super::super::TextServices:: HKL, lpszfilename : ::windows_sys::core::PWSTR, ubuflen : u32) -> u32); +#[cfg(all(feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmGetImeMenuItemsA(param0 : super::super::super::Globalization:: HIMC, param1 : u32, param2 : u32, lpimeparentmenu : *mut IMEMENUITEMINFOA, lpimemenu : *mut IMEMENUITEMINFOA, dwsize : u32) -> u32); +#[cfg(all(feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmGetImeMenuItemsW(param0 : super::super::super::Globalization:: HIMC, param1 : u32, param2 : u32, lpimeparentmenu : *mut IMEMENUITEMINFOW, lpimemenu : *mut IMEMENUITEMINFOW, dwsize : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGetOpenStatus(param0 : super::super::super::Globalization:: HIMC) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetProperty(param0 : super::super::TextServices:: HKL, param1 : u32) -> u32); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetRegisterWordStyleA(param0 : super::super::TextServices:: HKL, nitem : u32, lpstylebuf : *mut STYLEBUFA) -> u32); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmGetRegisterWordStyleW(param0 : super::super::TextServices:: HKL, nitem : u32, lpstylebuf : *mut STYLEBUFW) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmGetStatusWindowPos(param0 : super::super::super::Globalization:: HIMC, lpptpos : *mut super::super::super::Foundation:: POINT) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmGetVirtualKey(param0 : super::super::super::Foundation:: HWND) -> u32); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmInstallIMEA(lpszimefilename : ::windows_sys::core::PCSTR, lpszlayouttext : ::windows_sys::core::PCSTR) -> super::super::TextServices:: HKL); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ImmInstallIMEW(lpszimefilename : ::windows_sys::core::PCWSTR, lpszlayouttext : ::windows_sys::core::PCWSTR) -> super::super::TextServices:: HKL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmIsIME(param0 : super::super::TextServices:: HKL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmIsUIMessageA(param0 : super::super::super::Foundation:: HWND, param1 : u32, param2 : super::super::super::Foundation:: WPARAM, param3 : super::super::super::Foundation:: LPARAM) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmIsUIMessageW(param0 : super::super::super::Foundation:: HWND, param1 : u32, param2 : super::super::super::Foundation:: WPARAM, param3 : super::super::super::Foundation:: LPARAM) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmLockIMC(param0 : super::super::super::Globalization:: HIMC) -> *mut INPUTCONTEXT); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmLockIMCC(param0 : super::super::super::Globalization:: HIMCC) -> *mut ::core::ffi::c_void); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmNotifyIME(param0 : super::super::super::Globalization:: HIMC, dwaction : NOTIFY_IME_ACTION, dwindex : NOTIFY_IME_INDEX, dwvalue : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Globalization")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Globalization\"`"] fn ImmReSizeIMCC(param0 : super::super::super::Globalization:: HIMCC, param1 : u32) -> super::super::super::Globalization:: HIMCC); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmRegisterWordA(param0 : super::super::TextServices:: HKL, lpszreading : ::windows_sys::core::PCSTR, param2 : u32, lpszregister : ::windows_sys::core::PCSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmRegisterWordW(param0 : super::super::TextServices:: HKL, lpszreading : ::windows_sys::core::PCWSTR, param2 : u32, lpszregister : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmReleaseContext(param0 : super::super::super::Foundation:: HWND, param1 : super::super::super::Globalization:: HIMC) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmRequestMessageA(param0 : super::super::super::Globalization:: HIMC, param1 : super::super::super::Foundation:: WPARAM, param2 : super::super::super::Foundation:: LPARAM) -> super::super::super::Foundation:: LRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmRequestMessageW(param0 : super::super::super::Globalization:: HIMC, param1 : super::super::super::Foundation:: WPARAM, param2 : super::super::super::Foundation:: LPARAM) -> super::super::super::Foundation:: LRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetCandidateWindow(param0 : super::super::super::Globalization:: HIMC, lpcandidate : *const CANDIDATEFORM) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmSetCompositionFontA(param0 : super::super::super::Globalization:: HIMC, lplf : *const super::super::super::Graphics::Gdi:: LOGFONTA) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] fn ImmSetCompositionFontW(param0 : super::super::super::Globalization:: HIMC, lplf : *const super::super::super::Graphics::Gdi:: LOGFONTW) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetCompositionStringA(param0 : super::super::super::Globalization:: HIMC, dwindex : SET_COMPOSITION_STRING_TYPE, lpcomp : *const ::core::ffi::c_void, dwcomplen : u32, lpread : *const ::core::ffi::c_void, dwreadlen : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetCompositionStringW(param0 : super::super::super::Globalization:: HIMC, dwindex : SET_COMPOSITION_STRING_TYPE, lpcomp : *const ::core::ffi::c_void, dwcomplen : u32, lpread : *const ::core::ffi::c_void, dwreadlen : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetCompositionWindow(param0 : super::super::super::Globalization:: HIMC, lpcompform : *const COMPOSITIONFORM) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetConversionStatus(param0 : super::super::super::Globalization:: HIMC, param1 : IME_CONVERSION_MODE, param2 : IME_SENTENCE_MODE) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmSetHotKey(param0 : u32, param1 : u32, param2 : u32, param3 : super::super::TextServices:: HKL) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetOpenStatus(param0 : super::super::super::Globalization:: HIMC, param1 : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmSetStatusWindowPos(param0 : super::super::super::Globalization:: HIMC, lpptpos : *const super::super::super::Foundation:: POINT) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmShowSoftKeyboard(param0 : super::super::super::Foundation:: HWND, param1 : i32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImmSimulateHotKey(param0 : super::super::super::Foundation:: HWND, param1 : IME_HOTKEY_IDENTIFIER) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmUnlockIMC(param0 : super::super::super::Globalization:: HIMC) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] fn ImmUnlockIMCC(param0 : super::super::super::Globalization:: HIMCC) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmUnregisterWordA(param0 : super::super::TextServices:: HKL, lpszreading : ::windows_sys::core::PCSTR, param2 : u32, lpszunregister : ::windows_sys::core::PCSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("imm32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn ImmUnregisterWordW(param0 : super::super::TextServices:: HKL, lpszreading : ::windows_sys::core::PCWSTR, param2 : u32, lpszunregister : ::windows_sys::core::PCWSTR) -> super::super::super::Foundation:: BOOL); +pub type IActiveIME = *mut ::core::ffi::c_void; +pub type IActiveIME2 = *mut ::core::ffi::c_void; +pub type IActiveIMMApp = *mut ::core::ffi::c_void; +pub type IActiveIMMIME = *mut ::core::ffi::c_void; +pub type IActiveIMMMessagePumpOwner = *mut ::core::ffi::c_void; +pub type IActiveIMMRegistrar = *mut ::core::ffi::c_void; +pub type IEnumInputContext = *mut ::core::ffi::c_void; +pub type IEnumRegisterWordA = *mut ::core::ffi::c_void; +pub type IEnumRegisterWordW = *mut ::core::ffi::c_void; +pub type IFEClassFactory = *mut ::core::ffi::c_void; +pub type IFECommon = *mut ::core::ffi::c_void; +pub type IFEDictionary = *mut ::core::ffi::c_void; +pub type IFELanguage = *mut ::core::ffi::c_void; +pub type IImePad = *mut ::core::ffi::c_void; +pub type IImePadApplet = *mut ::core::ffi::c_void; +pub type IImePlugInDictDictionaryList = *mut ::core::ffi::c_void; +pub type IImeSpecifyApplets = *mut ::core::ffi::c_void; +pub const ATTR_CONVERTED: u32 = 2u32; +pub const ATTR_FIXEDCONVERTED: u32 = 5u32; +pub const ATTR_INPUT: u32 = 0u32; +pub const ATTR_INPUT_ERROR: u32 = 4u32; +pub const ATTR_TARGET_CONVERTED: u32 = 1u32; +pub const ATTR_TARGET_NOTCONVERTED: u32 = 3u32; +pub const CATID_MSIME_IImePadApplet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7566cad1_4ec9_4478_9fe9_8ed766619edf); +pub const CATID_MSIME_IImePadApplet1000: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe081e1d6_2389_43cb_b66f_609f823d9f9c); +pub const CATID_MSIME_IImePadApplet1200: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa47fb5fc_7d15_4223_a789_b781bf9ae667); +pub const CATID_MSIME_IImePadApplet900: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfaae51bf_5e5b_4a1d_8de1_17c1d9e1728d); +pub const CATID_MSIME_IImePadApplet_VER7: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4a0f8e31_c3ee_11d1_afef_00805f0c8b6d); +pub const CATID_MSIME_IImePadApplet_VER80: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x56f7a792_fef1_11d3_8463_00c04f7a06e5); +pub const CATID_MSIME_IImePadApplet_VER81: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x656520b0_bb88_11d4_84c0_00c04f7a06e5); +pub const CActiveIMM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4955dd33_b159_11d0_8fcf_00aa006bcc59); +pub const CFS_CANDIDATEPOS: u32 = 64u32; +pub const CFS_DEFAULT: u32 = 0u32; +pub const CFS_EXCLUDE: u32 = 128u32; +pub const CFS_FORCE_POSITION: u32 = 32u32; +pub const CFS_POINT: u32 = 2u32; +pub const CFS_RECT: u32 = 1u32; +pub const CHARINFO_APPLETID_MASK: u32 = 4278190080u32; +pub const CHARINFO_CHARID_MASK: u32 = 65535u32; +pub const CHARINFO_FEID_MASK: u32 = 15728640u32; +pub const CLSID_ImePlugInDictDictionaryList_CHS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7bf0129b_5bef_4de4_9b0b_5edb66ac2fa6); +pub const CLSID_ImePlugInDictDictionaryList_JPN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4fe2776b_b0f9_4396_b5fc_e9d4cf1ec195); +pub const CLSID_VERSION_DEPENDENT_MSIME_JAPANESE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a91029e_aa49_471b_aee7_7d332785660d); +pub const CPS_CANCEL: NOTIFY_IME_INDEX = 4u32; +pub const CPS_COMPLETE: NOTIFY_IME_INDEX = 1u32; +pub const CPS_CONVERT: NOTIFY_IME_INDEX = 2u32; +pub const CPS_REVERT: NOTIFY_IME_INDEX = 3u32; +pub const CS_INSERTCHAR: u32 = 8192u32; +pub const CS_NOMOVECARET: u32 = 16384u32; +pub const E_LARGEINPUT: u32 = 51u32; +pub const E_NOCAND: u32 = 48u32; +pub const E_NOTENOUGH_BUFFER: u32 = 49u32; +pub const E_NOTENOUGH_WDD: u32 = 50u32; +pub const FEID_CHINESE_HONGKONG: u32 = 3u32; +pub const FEID_CHINESE_SIMPLIFIED: u32 = 2u32; +pub const FEID_CHINESE_SINGAPORE: u32 = 4u32; +pub const FEID_CHINESE_TRADITIONAL: u32 = 1u32; +pub const FEID_JAPANESE: u32 = 5u32; +pub const FEID_KOREAN: u32 = 6u32; +pub const FEID_KOREAN_JOHAB: u32 = 7u32; +pub const FEID_NONE: u32 = 0u32; +pub const FELANG_CLMN_FIXD: u32 = 32u32; +pub const FELANG_CLMN_FIXR: u32 = 16u32; +pub const FELANG_CLMN_NOPBREAK: u32 = 8u32; +pub const FELANG_CLMN_NOWBREAK: u32 = 2u32; +pub const FELANG_CLMN_PBREAK: u32 = 4u32; +pub const FELANG_CLMN_WBREAK: u32 = 1u32; +pub const FELANG_CMODE_AUTOMATIC: u32 = 134217728u32; +pub const FELANG_CMODE_BESTFIRST: u32 = 16384u32; +pub const FELANG_CMODE_BOPOMOFO: u32 = 64u32; +pub const FELANG_CMODE_CONVERSATION: u32 = 536870912u32; +pub const FELANG_CMODE_FULLWIDTHOUT: u32 = 32u32; +pub const FELANG_CMODE_HALFWIDTHOUT: u32 = 16u32; +pub const FELANG_CMODE_HANGUL: u32 = 128u32; +pub const FELANG_CMODE_HIRAGANAOUT: u32 = 0u32; +pub const FELANG_CMODE_KATAKANAOUT: u32 = 8u32; +pub const FELANG_CMODE_MERGECAND: u32 = 4096u32; +pub const FELANG_CMODE_MONORUBY: u32 = 2u32; +pub const FELANG_CMODE_NAME: u32 = 268435456u32; +pub const FELANG_CMODE_NOINVISIBLECHAR: u32 = 1073741824u32; +pub const FELANG_CMODE_NONE: u32 = 16777216u32; +pub const FELANG_CMODE_NOPRUNING: u32 = 4u32; +pub const FELANG_CMODE_PHRASEPREDICT: u32 = 268435456u32; +pub const FELANG_CMODE_PINYIN: u32 = 256u32; +pub const FELANG_CMODE_PLAURALCLAUSE: u32 = 33554432u32; +pub const FELANG_CMODE_PRECONV: u32 = 512u32; +pub const FELANG_CMODE_RADICAL: u32 = 1024u32; +pub const FELANG_CMODE_ROMAN: u32 = 8192u32; +pub const FELANG_CMODE_SINGLECONVERT: u32 = 67108864u32; +pub const FELANG_CMODE_UNKNOWNREADING: u32 = 2048u32; +pub const FELANG_CMODE_USENOREVWORDS: u32 = 32768u32; +pub const FELANG_INVALD_PO: u32 = 65535u32; +pub const FELANG_REQ_CONV: u32 = 65536u32; +pub const FELANG_REQ_RECONV: u32 = 131072u32; +pub const FELANG_REQ_REV: u32 = 196608u32; +pub const FID_MSIME_KMS_DEL_KEYLIST: u32 = 4u32; +pub const FID_MSIME_KMS_FUNCDESC: u32 = 9u32; +pub const FID_MSIME_KMS_GETMAP: u32 = 6u32; +pub const FID_MSIME_KMS_GETMAPFAST: u32 = 11u32; +pub const FID_MSIME_KMS_GETMAPSEAMLESS: u32 = 10u32; +pub const FID_MSIME_KMS_INIT: u32 = 2u32; +pub const FID_MSIME_KMS_INVOKE: u32 = 7u32; +pub const FID_MSIME_KMS_NOTIFY: u32 = 5u32; +pub const FID_MSIME_KMS_SETMAP: u32 = 8u32; +pub const FID_MSIME_KMS_TERM: u32 = 3u32; +pub const FID_MSIME_KMS_VERSION: u32 = 1u32; +pub const FID_MSIME_VERSION: u32 = 0u32; +pub const FID_RECONVERT_VERSION: u32 = 268435456u32; +pub const GCL_CONVERSION: GET_CONVERSION_LIST_FLAG = 1u32; +pub const GCL_REVERSECONVERSION: GET_CONVERSION_LIST_FLAG = 2u32; +pub const GCL_REVERSE_LENGTH: GET_CONVERSION_LIST_FLAG = 3u32; +pub const GCSEX_CANCELRECONVERT: u32 = 268435456u32; +pub const GCS_COMPATTR: IME_COMPOSITION_STRING = 16u32; +pub const GCS_COMPCLAUSE: IME_COMPOSITION_STRING = 32u32; +pub const GCS_COMPREADATTR: IME_COMPOSITION_STRING = 2u32; +pub const GCS_COMPREADCLAUSE: IME_COMPOSITION_STRING = 4u32; +pub const GCS_COMPREADSTR: IME_COMPOSITION_STRING = 1u32; +pub const GCS_COMPSTR: IME_COMPOSITION_STRING = 8u32; +pub const GCS_CURSORPOS: IME_COMPOSITION_STRING = 128u32; +pub const GCS_DELTASTART: IME_COMPOSITION_STRING = 256u32; +pub const GCS_RESULTCLAUSE: IME_COMPOSITION_STRING = 4096u32; +pub const GCS_RESULTREADCLAUSE: IME_COMPOSITION_STRING = 1024u32; +pub const GCS_RESULTREADSTR: IME_COMPOSITION_STRING = 512u32; +pub const GCS_RESULTSTR: IME_COMPOSITION_STRING = 2048u32; +pub const GGL_INDEX: GET_GUIDE_LINE_TYPE = 2u32; +pub const GGL_LEVEL: GET_GUIDE_LINE_TYPE = 1u32; +pub const GGL_PRIVATE: GET_GUIDE_LINE_TYPE = 4u32; +pub const GGL_STRING: GET_GUIDE_LINE_TYPE = 3u32; +pub const GL_ID_CANNOTSAVE: u32 = 17u32; +pub const GL_ID_CHOOSECANDIDATE: u32 = 40u32; +pub const GL_ID_INPUTCODE: u32 = 38u32; +pub const GL_ID_INPUTRADICAL: u32 = 37u32; +pub const GL_ID_INPUTREADING: u32 = 36u32; +pub const GL_ID_INPUTSYMBOL: u32 = 39u32; +pub const GL_ID_NOCONVERT: u32 = 32u32; +pub const GL_ID_NODICTIONARY: u32 = 16u32; +pub const GL_ID_NOMODULE: u32 = 1u32; +pub const GL_ID_PRIVATE_FIRST: u32 = 32768u32; +pub const GL_ID_PRIVATE_LAST: u32 = 65535u32; +pub const GL_ID_READINGCONFLICT: u32 = 35u32; +pub const GL_ID_REVERSECONVERSION: u32 = 41u32; +pub const GL_ID_TOOMANYSTROKE: u32 = 34u32; +pub const GL_ID_TYPINGERROR: u32 = 33u32; +pub const GL_ID_UNKNOWN: u32 = 0u32; +pub const GL_LEVEL_ERROR: u32 = 2u32; +pub const GL_LEVEL_FATAL: u32 = 1u32; +pub const GL_LEVEL_INFORMATION: u32 = 4u32; +pub const GL_LEVEL_NOGUIDELINE: u32 = 0u32; +pub const GL_LEVEL_WARNING: u32 = 3u32; +pub const IACE_CHILDREN: u32 = 1u32; +pub const IACE_DEFAULT: u32 = 16u32; +pub const IACE_IGNORENOCONTEXT: u32 = 32u32; +pub const IFEC_S_ALREADY_DEFAULT: ::windows_sys::core::HRESULT = 291840i32; +pub const IFED_ACTIVE_DICT: IMEFMT = 13i32; +pub const IFED_ATOK10: IMEFMT = 15i32; +pub const IFED_ATOK9: IMEFMT = 14i32; +pub const IFED_E_INVALID_FORMAT: ::windows_sys::core::HRESULT = -2147192063i32; +pub const IFED_E_NOT_FOUND: ::windows_sys::core::HRESULT = -2147192064i32; +pub const IFED_E_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2147192057i32; +pub const IFED_E_NOT_USER_DIC: ::windows_sys::core::HRESULT = -2147192058i32; +pub const IFED_E_NO_ENTRY: ::windows_sys::core::HRESULT = -2147192060i32; +pub const IFED_E_OPEN_FAILED: ::windows_sys::core::HRESULT = -2147192062i32; +pub const IFED_E_REGISTER_DISCONNECTED: ::windows_sys::core::HRESULT = -2147192053i32; +pub const IFED_E_REGISTER_FAILED: ::windows_sys::core::HRESULT = -2147192059i32; +pub const IFED_E_REGISTER_ILLEGAL_POS: ::windows_sys::core::HRESULT = -2147192055i32; +pub const IFED_E_REGISTER_IMPROPER_WORD: ::windows_sys::core::HRESULT = -2147192054i32; +pub const IFED_E_USER_COMMENT: ::windows_sys::core::HRESULT = -2147192056i32; +pub const IFED_E_WRITE_FAILED: ::windows_sys::core::HRESULT = -2147192061i32; +pub const IFED_MSIME2_BIN_SYSTEM: IMEFMT = 1i32; +pub const IFED_MSIME2_BIN_USER: IMEFMT = 2i32; +pub const IFED_MSIME2_TEXT_USER: IMEFMT = 3i32; +pub const IFED_MSIME95_BIN_SYSTEM: IMEFMT = 4i32; +pub const IFED_MSIME95_BIN_USER: IMEFMT = 5i32; +pub const IFED_MSIME95_TEXT_USER: IMEFMT = 6i32; +pub const IFED_MSIME97_BIN_SYSTEM: IMEFMT = 7i32; +pub const IFED_MSIME97_BIN_USER: IMEFMT = 8i32; +pub const IFED_MSIME97_TEXT_USER: IMEFMT = 9i32; +pub const IFED_MSIME98_BIN_SYSTEM: IMEFMT = 10i32; +pub const IFED_MSIME98_BIN_USER: IMEFMT = 11i32; +pub const IFED_MSIME98_SYSTEM_CE: IMEFMT = 20i32; +pub const IFED_MSIME98_TEXT_USER: IMEFMT = 12i32; +pub const IFED_MSIME_BIN_SYSTEM: IMEFMT = 21i32; +pub const IFED_MSIME_BIN_USER: IMEFMT = 22i32; +pub const IFED_MSIME_TEXT_USER: IMEFMT = 23i32; +pub const IFED_NEC_AI_: IMEFMT = 16i32; +pub const IFED_PIME2_BIN_STANDARD_SYSTEM: IMEFMT = 26i32; +pub const IFED_PIME2_BIN_SYSTEM: IMEFMT = 25i32; +pub const IFED_PIME2_BIN_USER: IMEFMT = 24i32; +pub const IFED_POS_ADJECTIVE: u32 = 4u32; +pub const IFED_POS_ADJECTIVE_VERB: u32 = 8u32; +pub const IFED_POS_ADNOUN: u32 = 32u32; +pub const IFED_POS_ADVERB: u32 = 16u32; +pub const IFED_POS_AFFIX: u32 = 1536u32; +pub const IFED_POS_ALL: u32 = 131071u32; +pub const IFED_POS_AUXILIARY_VERB: u32 = 32768u32; +pub const IFED_POS_CONJUNCTION: u32 = 64u32; +pub const IFED_POS_DEPENDENT: u32 = 114688u32; +pub const IFED_POS_IDIOMS: u32 = 4096u32; +pub const IFED_POS_INDEPENDENT: u32 = 255u32; +pub const IFED_POS_INFLECTIONALSUFFIX: u32 = 256u32; +pub const IFED_POS_INTERJECTION: u32 = 128u32; +pub const IFED_POS_NONE: u32 = 0u32; +pub const IFED_POS_NOUN: u32 = 1u32; +pub const IFED_POS_PARTICLE: u32 = 16384u32; +pub const IFED_POS_PREFIX: u32 = 512u32; +pub const IFED_POS_SUB_VERB: u32 = 65536u32; +pub const IFED_POS_SUFFIX: u32 = 1024u32; +pub const IFED_POS_SYMBOLS: u32 = 8192u32; +pub const IFED_POS_TANKANJI: u32 = 2048u32; +pub const IFED_POS_VERB: u32 = 2u32; +pub const IFED_REG_ALL: u32 = 7u32; +pub const IFED_REG_AUTO: u32 = 2u32; +pub const IFED_REG_DEL: IMEREG = 2i32; +pub const IFED_REG_GRAMMAR: u32 = 4u32; +pub const IFED_REG_HEAD: IMEREG = 0i32; +pub const IFED_REG_NONE: u32 = 0u32; +pub const IFED_REG_TAIL: IMEREG = 1i32; +pub const IFED_REG_USER: u32 = 1u32; +pub const IFED_REL_ALL: IMEREL = 24i32; +pub const IFED_REL_DE: IMEREL = 5i32; +pub const IFED_REL_FUKU_YOUGEN: IMEREL = 12i32; +pub const IFED_REL_GA: IMEREL = 2i32; +pub const IFED_REL_HE: IMEREL = 9i32; +pub const IFED_REL_IDEOM: IMEREL = 11i32; +pub const IFED_REL_KARA: IMEREL = 7i32; +pub const IFED_REL_KEIDOU1_YOUGEN: IMEREL = 14i32; +pub const IFED_REL_KEIDOU2_YOUGEN: IMEREL = 15i32; +pub const IFED_REL_KEIYOU_TARU_YOUGEN: IMEREL = 21i32; +pub const IFED_REL_KEIYOU_TO_YOUGEN: IMEREL = 20i32; +pub const IFED_REL_KEIYOU_YOUGEN: IMEREL = 13i32; +pub const IFED_REL_MADE: IMEREL = 8i32; +pub const IFED_REL_NI: IMEREL = 4i32; +pub const IFED_REL_NO: IMEREL = 1i32; +pub const IFED_REL_NONE: IMEREL = 0i32; +pub const IFED_REL_RENSOU: IMEREL = 19i32; +pub const IFED_REL_RENTAI_MEI: IMEREL = 18i32; +pub const IFED_REL_TAIGEN: IMEREL = 16i32; +pub const IFED_REL_TO: IMEREL = 10i32; +pub const IFED_REL_UNKNOWN1: IMEREL = 22i32; +pub const IFED_REL_UNKNOWN2: IMEREL = 23i32; +pub const IFED_REL_WO: IMEREL = 3i32; +pub const IFED_REL_YORI: IMEREL = 6i32; +pub const IFED_REL_YOUGEN: IMEREL = 17i32; +pub const IFED_SELECT_ALL: u32 = 15u32; +pub const IFED_SELECT_COMMENT: u32 = 8u32; +pub const IFED_SELECT_DISPLAY: u32 = 2u32; +pub const IFED_SELECT_NONE: u32 = 0u32; +pub const IFED_SELECT_POS: u32 = 4u32; +pub const IFED_SELECT_READING: u32 = 1u32; +pub const IFED_S_COMMENT_CHANGED: ::windows_sys::core::HRESULT = 291331i32; +pub const IFED_S_EMPTY_DICTIONARY: ::windows_sys::core::HRESULT = 291329i32; +pub const IFED_S_MORE_ENTRIES: ::windows_sys::core::HRESULT = 291328i32; +pub const IFED_S_WORD_EXISTS: ::windows_sys::core::HRESULT = 291330i32; +pub const IFED_TYPE_ALL: u32 = 31u32; +pub const IFED_TYPE_ENGLISH: u32 = 16u32; +pub const IFED_TYPE_GENERAL: u32 = 1u32; +pub const IFED_TYPE_NAMEPLACE: u32 = 2u32; +pub const IFED_TYPE_NONE: u32 = 0u32; +pub const IFED_TYPE_REVERSE: u32 = 8u32; +pub const IFED_TYPE_SPEECH: u32 = 4u32; +pub const IFED_UCT_MAX: IMEUCT = 4i32; +pub const IFED_UCT_NONE: IMEUCT = 0i32; +pub const IFED_UCT_STRING_SJIS: IMEUCT = 1i32; +pub const IFED_UCT_STRING_UNICODE: IMEUCT = 2i32; +pub const IFED_UCT_USER_DEFINED: IMEUCT = 3i32; +pub const IFED_UNKNOWN: IMEFMT = 0i32; +pub const IFED_VJE_20: IMEFMT = 19i32; +pub const IFED_WX_II: IMEFMT = 17i32; +pub const IFED_WX_III: IMEFMT = 18i32; +pub const IGIMIF_RIGHTMENU: u32 = 1u32; +pub const IGIMII_CMODE: u32 = 1u32; +pub const IGIMII_CONFIGURE: u32 = 4u32; +pub const IGIMII_HELP: u32 = 16u32; +pub const IGIMII_INPUTTOOLS: u32 = 64u32; +pub const IGIMII_OTHER: u32 = 32u32; +pub const IGIMII_SMODE: u32 = 2u32; +pub const IGIMII_TOOLS: u32 = 8u32; +pub const IMC_CLOSESTATUSWINDOW: u32 = 33u32; +pub const IMC_GETCANDIDATEPOS: u32 = 7u32; +pub const IMC_GETCOMPOSITIONFONT: u32 = 9u32; +pub const IMC_GETCOMPOSITIONWINDOW: u32 = 11u32; +pub const IMC_GETSOFTKBDFONT: u32 = 17u32; +pub const IMC_GETSOFTKBDPOS: u32 = 19u32; +pub const IMC_GETSOFTKBDSUBTYPE: u32 = 21u32; +pub const IMC_GETSTATUSWINDOWPOS: u32 = 15u32; +pub const IMC_OPENSTATUSWINDOW: u32 = 34u32; +pub const IMC_SETCANDIDATEPOS: u32 = 8u32; +pub const IMC_SETCOMPOSITIONFONT: u32 = 10u32; +pub const IMC_SETCOMPOSITIONWINDOW: u32 = 12u32; +pub const IMC_SETCONVERSIONMODE: u32 = 2u32; +pub const IMC_SETOPENSTATUS: u32 = 6u32; +pub const IMC_SETSENTENCEMODE: u32 = 4u32; +pub const IMC_SETSOFTKBDDATA: u32 = 24u32; +pub const IMC_SETSOFTKBDFONT: u32 = 18u32; +pub const IMC_SETSOFTKBDPOS: u32 = 20u32; +pub const IMC_SETSOFTKBDSUBTYPE: u32 = 22u32; +pub const IMC_SETSTATUSWINDOWPOS: u32 = 16u32; +pub const IMEFAREASTINFO_TYPE_COMMENT: u32 = 2u32; +pub const IMEFAREASTINFO_TYPE_COSTTIME: u32 = 3u32; +pub const IMEFAREASTINFO_TYPE_DEFAULT: u32 = 0u32; +pub const IMEFAREASTINFO_TYPE_READING: u32 = 1u32; +pub const IMEKEYCTRLMASK_ALT: u32 = 1u32; +pub const IMEKEYCTRLMASK_CTRL: u32 = 2u32; +pub const IMEKEYCTRLMASK_SHIFT: u32 = 4u32; +pub const IMEKEYCTRL_DOWN: u32 = 0u32; +pub const IMEKEYCTRL_UP: u32 = 1u32; +pub const IMEKMS_2NDLEVEL: u32 = 4u32; +pub const IMEKMS_CANDIDATE: u32 = 6u32; +pub const IMEKMS_COMPOSITION: u32 = 1u32; +pub const IMEKMS_IMEOFF: u32 = 3u32; +pub const IMEKMS_INPTGL: u32 = 5u32; +pub const IMEKMS_NOCOMPOSITION: u32 = 0u32; +pub const IMEKMS_SELECTION: u32 = 2u32; +pub const IMEKMS_TYPECAND: u32 = 7u32; +pub const IMEMENUITEM_STRING_SIZE: u32 = 80u32; +pub const IMEMOUSERET_NOTHANDLED: i32 = -1i32; +pub const IMEMOUSE_LDOWN: u32 = 1u32; +pub const IMEMOUSE_MDOWN: u32 = 4u32; +pub const IMEMOUSE_NONE: u32 = 0u32; +pub const IMEMOUSE_RDOWN: u32 = 2u32; +pub const IMEMOUSE_VERSION: u32 = 255u32; +pub const IMEMOUSE_WDOWN: u32 = 32u32; +pub const IMEMOUSE_WUP: u32 = 16u32; +pub const IMEPADCTRL_CARETBACKSPACE: u32 = 10u32; +pub const IMEPADCTRL_CARETBOTTOM: u32 = 9u32; +pub const IMEPADCTRL_CARETDELETE: u32 = 11u32; +pub const IMEPADCTRL_CARETLEFT: u32 = 6u32; +pub const IMEPADCTRL_CARETRIGHT: u32 = 7u32; +pub const IMEPADCTRL_CARETSET: u32 = 5u32; +pub const IMEPADCTRL_CARETTOP: u32 = 8u32; +pub const IMEPADCTRL_CLEARALL: u32 = 4u32; +pub const IMEPADCTRL_CONVERTALL: u32 = 1u32; +pub const IMEPADCTRL_DETERMINALL: u32 = 2u32; +pub const IMEPADCTRL_DETERMINCHAR: u32 = 3u32; +pub const IMEPADCTRL_INSERTFULLSPACE: u32 = 14u32; +pub const IMEPADCTRL_INSERTHALFSPACE: u32 = 15u32; +pub const IMEPADCTRL_INSERTSPACE: u32 = 13u32; +pub const IMEPADCTRL_OFFIME: u32 = 17u32; +pub const IMEPADCTRL_OFFPRECONVERSION: u32 = 19u32; +pub const IMEPADCTRL_ONIME: u32 = 16u32; +pub const IMEPADCTRL_ONPRECONVERSION: u32 = 18u32; +pub const IMEPADCTRL_PHONETICCANDIDATE: u32 = 20u32; +pub const IMEPADCTRL_PHRASEDELETE: u32 = 12u32; +pub const IMEPADREQ_CHANGESTRING: IME_PAD_REQUEST_FLAGS = 4113u32; +pub const IMEPADREQ_CHANGESTRINGCANDIDATEINFO: u32 = 4111u32; +pub const IMEPADREQ_CHANGESTRINGINFO: u32 = 4115u32; +pub const IMEPADREQ_DELETESTRING: IME_PAD_REQUEST_FLAGS = 4112u32; +pub const IMEPADREQ_FIRST: u32 = 4096u32; +pub const IMEPADREQ_FORCEIMEPADWINDOWSHOW: IME_PAD_REQUEST_FLAGS = 4117u32; +pub const IMEPADREQ_GETAPPLETDATA: u32 = 4106u32; +pub const IMEPADREQ_GETAPPLETUISTYLE: IME_PAD_REQUEST_FLAGS = 4121u32; +pub const IMEPADREQ_GETAPPLHWND: IME_PAD_REQUEST_FLAGS = 4116u32; +pub const IMEPADREQ_GETCOMPOSITIONSTRING: IME_PAD_REQUEST_FLAGS = 4102u32; +pub const IMEPADREQ_GETCOMPOSITIONSTRINGID: u32 = 4109u32; +pub const IMEPADREQ_GETCOMPOSITIONSTRINGINFO: IME_PAD_REQUEST_FLAGS = 4108u32; +pub const IMEPADREQ_GETCONVERSIONSTATUS: IME_PAD_REQUEST_FLAGS = 4126u32; +pub const IMEPADREQ_GETCURRENTIMEINFO: IME_PAD_REQUEST_FLAGS = 4128u32; +pub const IMEPADREQ_GETCURRENTUILANGID: u32 = 4120u32; +pub const IMEPADREQ_GETDEFAULTUILANGID: IME_PAD_REQUEST_FLAGS = 4119u32; +pub const IMEPADREQ_GETSELECTEDSTRING: u32 = 4103u32; +pub const IMEPADREQ_GETVERSION: IME_PAD_REQUEST_FLAGS = 4127u32; +pub const IMEPADREQ_INSERTITEMCANDIDATE: u32 = 4099u32; +pub const IMEPADREQ_INSERTSTRING: IME_PAD_REQUEST_FLAGS = 4097u32; +pub const IMEPADREQ_INSERTSTRINGCANDIDATE: u32 = 4098u32; +pub const IMEPADREQ_INSERTSTRINGCANDIDATEINFO: u32 = 4110u32; +pub const IMEPADREQ_INSERTSTRINGINFO: u32 = 4114u32; +pub const IMEPADREQ_ISAPPLETACTIVE: IME_PAD_REQUEST_FLAGS = 4123u32; +pub const IMEPADREQ_ISIMEPADWINDOWVISIBLE: IME_PAD_REQUEST_FLAGS = 4124u32; +pub const IMEPADREQ_POSTMODALNOTIFY: IME_PAD_REQUEST_FLAGS = 4118u32; +pub const IMEPADREQ_SENDCONTROL: IME_PAD_REQUEST_FLAGS = 4100u32; +pub const IMEPADREQ_SENDKEYCONTROL: u32 = 4101u32; +pub const IMEPADREQ_SETAPPLETDATA: u32 = 4105u32; +pub const IMEPADREQ_SETAPPLETMINMAXSIZE: IME_PAD_REQUEST_FLAGS = 4125u32; +pub const IMEPADREQ_SETAPPLETSIZE: IME_PAD_REQUEST_FLAGS = 4104u32; +pub const IMEPADREQ_SETAPPLETUISTYLE: IME_PAD_REQUEST_FLAGS = 4122u32; +pub const IMEPADREQ_SETTITLEFONT: u32 = 4107u32; +pub const IMEPN_ACTIVATE: u32 = 257u32; +pub const IMEPN_APPLYCAND: u32 = 267u32; +pub const IMEPN_APPLYCANDEX: u32 = 268u32; +pub const IMEPN_CONFIG: u32 = 264u32; +pub const IMEPN_FIRST: u32 = 256u32; +pub const IMEPN_HELP: u32 = 265u32; +pub const IMEPN_HIDE: u32 = 261u32; +pub const IMEPN_INACTIVATE: u32 = 258u32; +pub const IMEPN_QUERYCAND: u32 = 266u32; +pub const IMEPN_SETTINGCHANGED: u32 = 269u32; +pub const IMEPN_SHOW: u32 = 260u32; +pub const IMEPN_SIZECHANGED: u32 = 263u32; +pub const IMEPN_SIZECHANGING: u32 = 262u32; +pub const IMEPN_USER: u32 = 356u32; +pub const IMEVER_0310: u32 = 196618u32; +pub const IMEVER_0400: u32 = 262144u32; +pub const IME_CAND_CODE: u32 = 2u32; +pub const IME_CAND_MEANING: u32 = 3u32; +pub const IME_CAND_RADICAL: u32 = 4u32; +pub const IME_CAND_READ: u32 = 1u32; +pub const IME_CAND_STROKE: u32 = 5u32; +pub const IME_CAND_UNKNOWN: u32 = 0u32; +pub const IME_CHOTKEY_IME_NONIME_TOGGLE: IME_HOTKEY_IDENTIFIER = 16u32; +pub const IME_CHOTKEY_SHAPE_TOGGLE: IME_HOTKEY_IDENTIFIER = 17u32; +pub const IME_CHOTKEY_SYMBOL_TOGGLE: IME_HOTKEY_IDENTIFIER = 18u32; +pub const IME_CMODE_ALPHANUMERIC: IME_CONVERSION_MODE = 0u32; +pub const IME_CMODE_CHARCODE: IME_CONVERSION_MODE = 32u32; +pub const IME_CMODE_CHINESE: IME_CONVERSION_MODE = 1u32; +pub const IME_CMODE_EUDC: IME_CONVERSION_MODE = 512u32; +pub const IME_CMODE_FIXED: IME_CONVERSION_MODE = 2048u32; +pub const IME_CMODE_FULLSHAPE: IME_CONVERSION_MODE = 8u32; +pub const IME_CMODE_HANGEUL: IME_CONVERSION_MODE = 1u32; +pub const IME_CMODE_HANGUL: IME_CONVERSION_MODE = 1u32; +pub const IME_CMODE_HANJACONVERT: IME_CONVERSION_MODE = 64u32; +pub const IME_CMODE_JAPANESE: IME_CONVERSION_MODE = 1u32; +pub const IME_CMODE_KATAKANA: IME_CONVERSION_MODE = 2u32; +pub const IME_CMODE_LANGUAGE: IME_CONVERSION_MODE = 3u32; +pub const IME_CMODE_NATIVE: IME_CONVERSION_MODE = 1u32; +pub const IME_CMODE_NATIVESYMBOL: IME_CONVERSION_MODE = 128u32; +pub const IME_CMODE_NOCONVERSION: IME_CONVERSION_MODE = 256u32; +pub const IME_CMODE_RESERVED: IME_CONVERSION_MODE = 4026531840u32; +pub const IME_CMODE_ROMAN: IME_CONVERSION_MODE = 16u32; +pub const IME_CMODE_SOFTKBD: IME_CONVERSION_MODE = 128u32; +pub const IME_CMODE_SYMBOL: IME_CONVERSION_MODE = 1024u32; +pub const IME_CONFIG_GENERAL: u32 = 1u32; +pub const IME_CONFIG_REGISTERWORD: u32 = 2u32; +pub const IME_CONFIG_SELECTDICTIONARY: u32 = 3u32; +pub const IME_ESC_AUTOMATA: IME_ESCAPE = 4105u32; +pub const IME_ESC_GETHELPFILENAME: IME_ESCAPE = 4107u32; +pub const IME_ESC_GET_EUDC_DICTIONARY: IME_ESCAPE = 4099u32; +pub const IME_ESC_HANJA_MODE: IME_ESCAPE = 4104u32; +pub const IME_ESC_IME_NAME: IME_ESCAPE = 4102u32; +pub const IME_ESC_MAX_KEY: IME_ESCAPE = 4101u32; +pub const IME_ESC_PRIVATE_FIRST: IME_ESCAPE = 2048u32; +pub const IME_ESC_PRIVATE_HOTKEY: IME_ESCAPE = 4106u32; +pub const IME_ESC_PRIVATE_LAST: IME_ESCAPE = 4095u32; +pub const IME_ESC_QUERY_SUPPORT: IME_ESCAPE = 3u32; +pub const IME_ESC_RESERVED_FIRST: IME_ESCAPE = 4u32; +pub const IME_ESC_RESERVED_LAST: IME_ESCAPE = 2047u32; +pub const IME_ESC_SEQUENCE_TO_INTERNAL: IME_ESCAPE = 4097u32; +pub const IME_ESC_SET_EUDC_DICTIONARY: IME_ESCAPE = 4100u32; +pub const IME_ESC_STRING_BUFFER_SIZE: u32 = 80u32; +pub const IME_ESC_SYNC_HOTKEY: IME_ESCAPE = 4103u32; +pub const IME_HOTKEY_DSWITCH_FIRST: u32 = 256u32; +pub const IME_HOTKEY_DSWITCH_LAST: u32 = 287u32; +pub const IME_HOTKEY_PRIVATE_FIRST: u32 = 512u32; +pub const IME_HOTKEY_PRIVATE_LAST: u32 = 543u32; +pub const IME_ITHOTKEY_PREVIOUS_COMPOSITION: IME_HOTKEY_IDENTIFIER = 513u32; +pub const IME_ITHOTKEY_RECONVERTSTRING: IME_HOTKEY_IDENTIFIER = 515u32; +pub const IME_ITHOTKEY_RESEND_RESULTSTR: IME_HOTKEY_IDENTIFIER = 512u32; +pub const IME_ITHOTKEY_UISTYLE_TOGGLE: IME_HOTKEY_IDENTIFIER = 514u32; +pub const IME_JHOTKEY_CLOSE_OPEN: IME_HOTKEY_IDENTIFIER = 48u32; +pub const IME_KHOTKEY_ENGLISH: IME_HOTKEY_IDENTIFIER = 82u32; +pub const IME_KHOTKEY_HANJACONVERT: IME_HOTKEY_IDENTIFIER = 81u32; +pub const IME_KHOTKEY_SHAPE_TOGGLE: IME_HOTKEY_IDENTIFIER = 80u32; +pub const IME_PROP_ACCEPT_WIDE_VKEY: u32 = 32u32; +pub const IME_PROP_AT_CARET: u32 = 65536u32; +pub const IME_PROP_CANDLIST_START_FROM_1: u32 = 262144u32; +pub const IME_PROP_COMPLETE_ON_UNSELECT: u32 = 1048576u32; +pub const IME_PROP_END_UNLOAD: u32 = 1u32; +pub const IME_PROP_IGNORE_UPKEYS: u32 = 4u32; +pub const IME_PROP_KBD_CHAR_FIRST: u32 = 2u32; +pub const IME_PROP_NEED_ALTKEY: u32 = 8u32; +pub const IME_PROP_NO_KEYS_ON_CLOSE: u32 = 16u32; +pub const IME_PROP_SPECIAL_UI: u32 = 131072u32; +pub const IME_PROP_UNICODE: u32 = 524288u32; +pub const IME_REGWORD_STYLE_EUDC: u32 = 1u32; +pub const IME_REGWORD_STYLE_USER_FIRST: u32 = 2147483648u32; +pub const IME_REGWORD_STYLE_USER_LAST: u32 = 4294967295u32; +pub const IME_SMODE_AUTOMATIC: IME_SENTENCE_MODE = 4u32; +pub const IME_SMODE_CONVERSATION: IME_SENTENCE_MODE = 16u32; +pub const IME_SMODE_NONE: IME_SENTENCE_MODE = 0u32; +pub const IME_SMODE_PHRASEPREDICT: IME_SENTENCE_MODE = 8u32; +pub const IME_SMODE_PLAURALCLAUSE: IME_SENTENCE_MODE = 1u32; +pub const IME_SMODE_RESERVED: IME_SENTENCE_MODE = 61440u32; +pub const IME_SMODE_SINGLECONVERT: IME_SENTENCE_MODE = 2u32; +pub const IME_SYSINFO_WINLOGON: u32 = 1u32; +pub const IME_THOTKEY_IME_NONIME_TOGGLE: IME_HOTKEY_IDENTIFIER = 112u32; +pub const IME_THOTKEY_SHAPE_TOGGLE: IME_HOTKEY_IDENTIFIER = 113u32; +pub const IME_THOTKEY_SYMBOL_TOGGLE: IME_HOTKEY_IDENTIFIER = 114u32; +pub const IME_UI_CLASS_NAME_SIZE: u32 = 16u32; +pub const IMFT_RADIOCHECK: u32 = 1u32; +pub const IMFT_SEPARATOR: u32 = 2u32; +pub const IMFT_SUBMENU: u32 = 4u32; +pub const IMMGWLP_IMC: u32 = 0u32; +pub const IMMGWL_IMC: u32 = 0u32; +pub const IMM_ERROR_GENERAL: i32 = -2i32; +pub const IMM_ERROR_NODATA: i32 = -1i32; +pub const IMN_CHANGECANDIDATE: u32 = 3u32; +pub const IMN_CLOSECANDIDATE: u32 = 4u32; +pub const IMN_CLOSESTATUSWINDOW: u32 = 1u32; +pub const IMN_GUIDELINE: u32 = 13u32; +pub const IMN_OPENCANDIDATE: u32 = 5u32; +pub const IMN_OPENSTATUSWINDOW: u32 = 2u32; +pub const IMN_PRIVATE: u32 = 14u32; +pub const IMN_SETCANDIDATEPOS: u32 = 9u32; +pub const IMN_SETCOMPOSITIONFONT: u32 = 10u32; +pub const IMN_SETCOMPOSITIONWINDOW: u32 = 11u32; +pub const IMN_SETCONVERSIONMODE: u32 = 6u32; +pub const IMN_SETOPENSTATUS: u32 = 8u32; +pub const IMN_SETSENTENCEMODE: u32 = 7u32; +pub const IMN_SETSTATUSWINDOWPOS: u32 = 12u32; +pub const IMN_SOFTKBDDESTROYED: u32 = 17u32; +pub const IMR_CANDIDATEWINDOW: u32 = 2u32; +pub const IMR_COMPOSITIONFONT: u32 = 3u32; +pub const IMR_COMPOSITIONWINDOW: u32 = 1u32; +pub const IMR_CONFIRMRECONVERTSTRING: u32 = 5u32; +pub const IMR_DOCUMENTFEED: u32 = 7u32; +pub const IMR_QUERYCHARPOSITION: u32 = 6u32; +pub const IMR_RECONVERTSTRING: u32 = 4u32; +pub const INFOMASK_APPLY_CAND: u32 = 2u32; +pub const INFOMASK_APPLY_CAND_EX: u32 = 4u32; +pub const INFOMASK_BLOCK_CAND: u32 = 262144u32; +pub const INFOMASK_HIDE_CAND: u32 = 131072u32; +pub const INFOMASK_NONE: u32 = 0u32; +pub const INFOMASK_QUERY_CAND: u32 = 1u32; +pub const INFOMASK_STRING_FIX: u32 = 65536u32; +pub const INIT_COMPFORM: u32 = 16u32; +pub const INIT_CONVERSION: u32 = 2u32; +pub const INIT_LOGFONT: u32 = 8u32; +pub const INIT_SENTENCE: u32 = 4u32; +pub const INIT_SOFTKBDPOS: u32 = 32u32; +pub const INIT_STATUSWNDPOS: u32 = 1u32; +pub const IPACFG_CATEGORY: i32 = 262144i32; +pub const IPACFG_HELP: i32 = 2i32; +pub const IPACFG_LANG: i32 = 16i32; +pub const IPACFG_NONE: i32 = 0i32; +pub const IPACFG_PROPERTY: i32 = 1i32; +pub const IPACFG_TITLE: i32 = 65536i32; +pub const IPACFG_TITLEFONTFACE: i32 = 131072i32; +pub const IPACID_CHARLIST: u32 = 9u32; +pub const IPACID_EPWING: u32 = 7u32; +pub const IPACID_HANDWRITING: u32 = 2u32; +pub const IPACID_NONE: u32 = 0u32; +pub const IPACID_OCR: u32 = 8u32; +pub const IPACID_RADICALSEARCH: u32 = 4u32; +pub const IPACID_SOFTKEY: u32 = 1u32; +pub const IPACID_STROKESEARCH: u32 = 3u32; +pub const IPACID_SYMBOLSEARCH: u32 = 5u32; +pub const IPACID_USER: u32 = 256u32; +pub const IPACID_VOICE: u32 = 6u32; +pub const IPAWS_ENABLED: i32 = 1i32; +pub const IPAWS_HORIZONTALFIXED: i32 = 512i32; +pub const IPAWS_MAXHEIGHTFIXED: i32 = 8192i32; +pub const IPAWS_MAXSIZEFIXED: i32 = 12288i32; +pub const IPAWS_MAXWIDTHFIXED: i32 = 4096i32; +pub const IPAWS_MINHEIGHTFIXED: i32 = 131072i32; +pub const IPAWS_MINSIZEFIXED: i32 = 196608i32; +pub const IPAWS_MINWIDTHFIXED: i32 = 65536i32; +pub const IPAWS_SIZEFIXED: i32 = 768i32; +pub const IPAWS_SIZINGNOTIFY: i32 = 4i32; +pub const IPAWS_VERTICALFIXED: i32 = 256i32; +pub const ISC_SHOWUIALL: u32 = 3221225487u32; +pub const ISC_SHOWUIALLCANDIDATEWINDOW: u32 = 15u32; +pub const ISC_SHOWUICANDIDATEWINDOW: u32 = 1u32; +pub const ISC_SHOWUICOMPOSITIONWINDOW: u32 = 2147483648u32; +pub const ISC_SHOWUIGUIDELINE: u32 = 1073741824u32; +pub const JPOS_1DAN: u32 = 213u32; +pub const JPOS_4DAN_HA: u32 = 212u32; +pub const JPOS_5DAN_AWA: u32 = 200u32; +pub const JPOS_5DAN_AWAUON: u32 = 209u32; +pub const JPOS_5DAN_BA: u32 = 206u32; +pub const JPOS_5DAN_GA: u32 = 202u32; +pub const JPOS_5DAN_KA: u32 = 201u32; +pub const JPOS_5DAN_KASOKUON: u32 = 210u32; +pub const JPOS_5DAN_MA: u32 = 207u32; +pub const JPOS_5DAN_NA: u32 = 205u32; +pub const JPOS_5DAN_RA: u32 = 208u32; +pub const JPOS_5DAN_RAHEN: u32 = 211u32; +pub const JPOS_5DAN_SA: u32 = 203u32; +pub const JPOS_5DAN_TA: u32 = 204u32; +pub const JPOS_BUPPIN: u32 = 122u32; +pub const JPOS_CHIMEI: u32 = 109u32; +pub const JPOS_CHIMEI_EKI: u32 = 117u32; +pub const JPOS_CHIMEI_GUN: u32 = 112u32; +pub const JPOS_CHIMEI_KEN: u32 = 111u32; +pub const JPOS_CHIMEI_KU: u32 = 113u32; +pub const JPOS_CHIMEI_KUNI: u32 = 110u32; +pub const JPOS_CHIMEI_MACHI: u32 = 115u32; +pub const JPOS_CHIMEI_MURA: u32 = 116u32; +pub const JPOS_CHIMEI_SHI: u32 = 114u32; +pub const JPOS_CLOSEBRACE: u32 = 911u32; +pub const JPOS_DAIMEISHI: u32 = 123u32; +pub const JPOS_DAIMEISHI_NINSHOU: u32 = 124u32; +pub const JPOS_DAIMEISHI_SHIJI: u32 = 125u32; +pub const JPOS_DOKURITSUGO: u32 = 903u32; +pub const JPOS_EIJI: u32 = 906u32; +pub const JPOS_FUKUSHI: u32 = 500u32; +pub const JPOS_FUKUSHI_DA: u32 = 504u32; +pub const JPOS_FUKUSHI_NANO: u32 = 503u32; +pub const JPOS_FUKUSHI_NI: u32 = 502u32; +pub const JPOS_FUKUSHI_SAHEN: u32 = 501u32; +pub const JPOS_FUKUSHI_TO: u32 = 505u32; +pub const JPOS_FUKUSHI_TOSURU: u32 = 506u32; +pub const JPOS_FUTEIGO: u32 = 904u32; +pub const JPOS_HUKUSIMEISHI: u32 = 104u32; +pub const JPOS_JINMEI: u32 = 106u32; +pub const JPOS_JINMEI_MEI: u32 = 108u32; +pub const JPOS_JINMEI_SEI: u32 = 107u32; +pub const JPOS_KANDOUSHI: u32 = 670u32; +pub const JPOS_KANJI: u32 = 909u32; +pub const JPOS_KANYOUKU: u32 = 902u32; +pub const JPOS_KAZU: u32 = 126u32; +pub const JPOS_KAZU_SURYOU: u32 = 127u32; +pub const JPOS_KAZU_SUSHI: u32 = 128u32; +pub const JPOS_KEIDOU: u32 = 400u32; +pub const JPOS_KEIDOU_GARU: u32 = 403u32; +pub const JPOS_KEIDOU_NO: u32 = 401u32; +pub const JPOS_KEIDOU_TARU: u32 = 402u32; +pub const JPOS_KEIYOU: u32 = 300u32; +pub const JPOS_KEIYOU_GARU: u32 = 301u32; +pub const JPOS_KEIYOU_GE: u32 = 302u32; +pub const JPOS_KEIYOU_ME: u32 = 303u32; +pub const JPOS_KEIYOU_U: u32 = 305u32; +pub const JPOS_KEIYOU_YUU: u32 = 304u32; +pub const JPOS_KENCHIKU: u32 = 121u32; +pub const JPOS_KIGOU: u32 = 905u32; +pub const JPOS_KURU_KI: u32 = 219u32; +pub const JPOS_KURU_KITA: u32 = 220u32; +pub const JPOS_KURU_KITARA: u32 = 221u32; +pub const JPOS_KURU_KITARI: u32 = 222u32; +pub const JPOS_KURU_KITAROU: u32 = 223u32; +pub const JPOS_KURU_KITE: u32 = 224u32; +pub const JPOS_KURU_KO: u32 = 226u32; +pub const JPOS_KURU_KOI: u32 = 227u32; +pub const JPOS_KURU_KOYOU: u32 = 228u32; +pub const JPOS_KURU_KUREBA: u32 = 225u32; +pub const JPOS_KUTEN: u32 = 907u32; +pub const JPOS_MEISA_KEIDOU: u32 = 105u32; +pub const JPOS_MEISHI_FUTSU: u32 = 100u32; +pub const JPOS_MEISHI_KEIYOUDOUSHI: u32 = 103u32; +pub const JPOS_MEISHI_SAHEN: u32 = 101u32; +pub const JPOS_MEISHI_ZAHEN: u32 = 102u32; +pub const JPOS_OPENBRACE: u32 = 910u32; +pub const JPOS_RENTAISHI: u32 = 600u32; +pub const JPOS_RENTAISHI_SHIJI: u32 = 601u32; +pub const JPOS_RENYOU_SETSUBI: u32 = 826u32; +pub const JPOS_SETSUBI: u32 = 800u32; +pub const JPOS_SETSUBI_CHIMEI: u32 = 811u32; +pub const JPOS_SETSUBI_CHOU: u32 = 818u32; +pub const JPOS_SETSUBI_CHU: u32 = 804u32; +pub const JPOS_SETSUBI_DONO: u32 = 835u32; +pub const JPOS_SETSUBI_EKI: u32 = 821u32; +pub const JPOS_SETSUBI_FU: u32 = 805u32; +pub const JPOS_SETSUBI_FUKUSU: u32 = 836u32; +pub const JPOS_SETSUBI_GUN: u32 = 814u32; +pub const JPOS_SETSUBI_JIKAN: u32 = 829u32; +pub const JPOS_SETSUBI_JIKANPLUS: u32 = 830u32; +pub const JPOS_SETSUBI_JINMEI: u32 = 810u32; +pub const JPOS_SETSUBI_JOSUSHI: u32 = 827u32; +pub const JPOS_SETSUBI_JOSUSHIPLUS: u32 = 828u32; +pub const JPOS_SETSUBI_KA: u32 = 803u32; +pub const JPOS_SETSUBI_KATA: u32 = 808u32; +pub const JPOS_SETSUBI_KEN: u32 = 813u32; +pub const JPOS_SETSUBI_KENCHIKU: u32 = 825u32; +pub const JPOS_SETSUBI_KU: u32 = 815u32; +pub const JPOS_SETSUBI_KUN: u32 = 833u32; +pub const JPOS_SETSUBI_KUNI: u32 = 812u32; +pub const JPOS_SETSUBI_MACHI: u32 = 817u32; +pub const JPOS_SETSUBI_MEISHIRENDAKU: u32 = 809u32; +pub const JPOS_SETSUBI_MURA: u32 = 819u32; +pub const JPOS_SETSUBI_RA: u32 = 838u32; +pub const JPOS_SETSUBI_RYU: u32 = 806u32; +pub const JPOS_SETSUBI_SAMA: u32 = 834u32; +pub const JPOS_SETSUBI_SAN: u32 = 832u32; +pub const JPOS_SETSUBI_SEI: u32 = 802u32; +pub const JPOS_SETSUBI_SHAMEI: u32 = 823u32; +pub const JPOS_SETSUBI_SHI: u32 = 816u32; +pub const JPOS_SETSUBI_SON: u32 = 820u32; +pub const JPOS_SETSUBI_SONOTA: u32 = 822u32; +pub const JPOS_SETSUBI_SOSHIKI: u32 = 824u32; +pub const JPOS_SETSUBI_TACHI: u32 = 837u32; +pub const JPOS_SETSUBI_TEINEI: u32 = 831u32; +pub const JPOS_SETSUBI_TEKI: u32 = 801u32; +pub const JPOS_SETSUBI_YOU: u32 = 807u32; +pub const JPOS_SETSUZOKUSHI: u32 = 650u32; +pub const JPOS_SETTOU: u32 = 700u32; +pub const JPOS_SETTOU_CHIMEI: u32 = 710u32; +pub const JPOS_SETTOU_CHOUTAN: u32 = 707u32; +pub const JPOS_SETTOU_DAISHOU: u32 = 705u32; +pub const JPOS_SETTOU_FUKU: u32 = 703u32; +pub const JPOS_SETTOU_JINMEI: u32 = 709u32; +pub const JPOS_SETTOU_JOSUSHI: u32 = 712u32; +pub const JPOS_SETTOU_KAKU: u32 = 701u32; +pub const JPOS_SETTOU_KOUTEI: u32 = 706u32; +pub const JPOS_SETTOU_MI: u32 = 704u32; +pub const JPOS_SETTOU_SAI: u32 = 702u32; +pub const JPOS_SETTOU_SHINKYU: u32 = 708u32; +pub const JPOS_SETTOU_SONOTA: u32 = 711u32; +pub const JPOS_SETTOU_TEINEI_GO: u32 = 714u32; +pub const JPOS_SETTOU_TEINEI_O: u32 = 713u32; +pub const JPOS_SETTOU_TEINEI_ON: u32 = 715u32; +pub const JPOS_SHAMEI: u32 = 119u32; +pub const JPOS_SONOTA: u32 = 118u32; +pub const JPOS_SOSHIKI: u32 = 120u32; +pub const JPOS_SURU_SA: u32 = 229u32; +pub const JPOS_SURU_SE: u32 = 238u32; +pub const JPOS_SURU_SEYO: u32 = 239u32; +pub const JPOS_SURU_SI: u32 = 230u32; +pub const JPOS_SURU_SIATRI: u32 = 233u32; +pub const JPOS_SURU_SITA: u32 = 231u32; +pub const JPOS_SURU_SITARA: u32 = 232u32; +pub const JPOS_SURU_SITAROU: u32 = 234u32; +pub const JPOS_SURU_SITE: u32 = 235u32; +pub const JPOS_SURU_SIYOU: u32 = 236u32; +pub const JPOS_SURU_SUREBA: u32 = 237u32; +pub const JPOS_TANKANJI: u32 = 900u32; +pub const JPOS_TANKANJI_KAO: u32 = 901u32; +pub const JPOS_TANSHUKU: u32 = 913u32; +pub const JPOS_TOKUSHU_KAHEN: u32 = 214u32; +pub const JPOS_TOKUSHU_NAHEN: u32 = 218u32; +pub const JPOS_TOKUSHU_SAHEN: u32 = 216u32; +pub const JPOS_TOKUSHU_SAHENSURU: u32 = 215u32; +pub const JPOS_TOKUSHU_ZAHEN: u32 = 217u32; +pub const JPOS_TOUTEN: u32 = 908u32; +pub const JPOS_UNDEFINED: u32 = 0u32; +pub const JPOS_YOKUSEI: u32 = 912u32; +pub const MAX_APPLETTITLE: u32 = 64u32; +pub const MAX_FONTFACE: u32 = 32u32; +pub const MODEBIASMODE_DEFAULT: u32 = 0u32; +pub const MODEBIASMODE_DIGIT: u32 = 4u32; +pub const MODEBIASMODE_FILENAME: u32 = 1u32; +pub const MODEBIASMODE_READING: u32 = 2u32; +pub const MODEBIAS_GETVALUE: u32 = 2u32; +pub const MODEBIAS_GETVERSION: u32 = 0u32; +pub const MODEBIAS_SETVALUE: u32 = 1u32; +pub const MOD_IGNORE_ALL_MODIFIER: u32 = 1024u32; +pub const MOD_LEFT: u32 = 32768u32; +pub const MOD_ON_KEYUP: u32 = 2048u32; +pub const MOD_RIGHT: u32 = 16384u32; +pub const NI_CHANGECANDIDATELIST: NOTIFY_IME_ACTION = 19u32; +pub const NI_CLOSECANDIDATE: NOTIFY_IME_ACTION = 17u32; +pub const NI_COMPOSITIONSTR: NOTIFY_IME_ACTION = 21u32; +pub const NI_CONTEXTUPDATED: u32 = 3u32; +pub const NI_FINALIZECONVERSIONRESULT: u32 = 20u32; +pub const NI_IMEMENUSELECTED: NOTIFY_IME_ACTION = 24u32; +pub const NI_OPENCANDIDATE: NOTIFY_IME_ACTION = 16u32; +pub const NI_SELECTCANDIDATESTR: NOTIFY_IME_ACTION = 18u32; +pub const NI_SETCANDIDATE_PAGESIZE: NOTIFY_IME_ACTION = 23u32; +pub const NI_SETCANDIDATE_PAGESTART: NOTIFY_IME_ACTION = 22u32; +pub const POS_UNDEFINED: u32 = 0u32; +pub const RECONVOPT_NONE: u32 = 0u32; +pub const RECONVOPT_USECANCELNOTIFY: u32 = 1u32; +pub const RWM_CHGKEYMAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEChangeKeyMap"); +pub const RWM_DOCUMENTFEED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEDocumentFeed"); +pub const RWM_KEYMAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEKeyMap"); +pub const RWM_MODEBIAS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEModeBias"); +pub const RWM_MOUSE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEMouseOperation"); +pub const RWM_NTFYKEYMAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMENotifyKeyMap"); +pub const RWM_QUERYPOSITION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEQueryPosition"); +pub const RWM_RECONVERT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEReconvert"); +pub const RWM_RECONVERTOPTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEReconvertOptions"); +pub const RWM_RECONVERTREQUEST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEReconvertRequest"); +pub const RWM_SERVICE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEService"); +pub const RWM_SHOWIMEPAD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEShowImePad"); +pub const RWM_UIREADY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIMEUIReady"); +pub const SCS_CAP_COMPSTR: u32 = 1u32; +pub const SCS_CAP_MAKEREAD: u32 = 2u32; +pub const SCS_CAP_SETRECONVERTSTRING: u32 = 4u32; +pub const SCS_CHANGEATTR: SET_COMPOSITION_STRING_TYPE = 18u32; +pub const SCS_CHANGECLAUSE: SET_COMPOSITION_STRING_TYPE = 36u32; +pub const SCS_QUERYRECONVERTSTRING: SET_COMPOSITION_STRING_TYPE = 131072u32; +pub const SCS_SETRECONVERTSTRING: SET_COMPOSITION_STRING_TYPE = 65536u32; +pub const SCS_SETSTR: SET_COMPOSITION_STRING_TYPE = 9u32; +pub const SELECT_CAP_CONVERSION: u32 = 1u32; +pub const SELECT_CAP_SENTENCE: u32 = 2u32; +pub const SHOWIMEPAD_CATEGORY: u32 = 1u32; +pub const SHOWIMEPAD_DEFAULT: u32 = 0u32; +pub const SHOWIMEPAD_GUID: u32 = 2u32; +pub const SOFTKEYBOARD_TYPE_C1: u32 = 2u32; +pub const SOFTKEYBOARD_TYPE_T1: u32 = 1u32; +pub const STYLE_DESCRIPTION_SIZE: u32 = 32u32; +pub const UI_CAP_2700: u32 = 1u32; +pub const UI_CAP_ROT90: u32 = 2u32; +pub const UI_CAP_ROTANY: u32 = 4u32; +pub const UI_CAP_SOFTKBD: u32 = 65536u32; +pub const VERSION_DOCUMENTFEED: u32 = 1u32; +pub const VERSION_ID_CHINESE_SIMPLIFIED: u32 = 134217728u32; +pub const VERSION_ID_CHINESE_TRADITIONAL: u32 = 67108864u32; +pub const VERSION_ID_JAPANESE: u32 = 16777216u32; +pub const VERSION_ID_KOREAN: u32 = 33554432u32; +pub const VERSION_MODEBIAS: u32 = 1u32; +pub const VERSION_MOUSE_OPERATION: u32 = 1u32; +pub const VERSION_QUERYPOSITION: u32 = 1u32; +pub const VERSION_RECONVERSION: u32 = 1u32; +pub const cbCommentMax: u32 = 256u32; +pub const szImeChina: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIME.China"); +pub const szImeJapan: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIME.Japan"); +pub const szImeKorea: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIME.Korea"); +pub const szImeTaiwan: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MSIME.Taiwan"); +pub const wchPrivate1: u32 = 57344u32; +pub type GET_CONVERSION_LIST_FLAG = u32; +pub type GET_GUIDE_LINE_TYPE = u32; +pub type IMEFMT = i32; +pub type IMEREG = i32; +pub type IMEREL = i32; +pub type IMEUCT = i32; +pub type IME_COMPOSITION_STRING = u32; +pub type IME_CONVERSION_MODE = u32; +pub type IME_ESCAPE = u32; +pub type IME_HOTKEY_IDENTIFIER = u32; +pub type IME_PAD_REQUEST_FLAGS = u32; +pub type IME_SENTENCE_MODE = u32; +pub type NOTIFY_IME_ACTION = u32; +pub type NOTIFY_IME_INDEX = u32; +pub type SET_COMPOSITION_STRING_TYPE = u32; +#[repr(C)] +pub struct APPLETIDLIST { + pub count: i32, + pub pIIDList: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for APPLETIDLIST {} +impl ::core::clone::Clone for APPLETIDLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct APPLYCANDEXPARAM { + pub dwSize: u32, + pub lpwstrDisplay: ::windows_sys::core::PWSTR, + pub lpwstrReading: ::windows_sys::core::PWSTR, + pub dwReserved: u32, +} +impl ::core::marker::Copy for APPLYCANDEXPARAM {} +impl ::core::clone::Clone for APPLYCANDEXPARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CANDIDATEFORM { + pub dwIndex: u32, + pub dwStyle: u32, + pub ptCurrentPos: super::super::super::Foundation::POINT, + pub rcArea: super::super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CANDIDATEFORM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CANDIDATEFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CANDIDATEINFO { + pub dwSize: u32, + pub dwCount: u32, + pub dwOffset: [u32; 32], + pub dwPrivateSize: u32, + pub dwPrivateOffset: u32, +} +impl ::core::marker::Copy for CANDIDATEINFO {} +impl ::core::clone::Clone for CANDIDATEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CANDIDATELIST { + pub dwSize: u32, + pub dwStyle: u32, + pub dwCount: u32, + pub dwSelection: u32, + pub dwPageStart: u32, + pub dwPageSize: u32, + pub dwOffset: [u32; 1], +} +impl ::core::marker::Copy for CANDIDATELIST {} +impl ::core::clone::Clone for CANDIDATELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct COMPOSITIONFORM { + pub dwStyle: u32, + pub ptCurrentPos: super::super::super::Foundation::POINT, + pub rcArea: super::super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for COMPOSITIONFORM {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for COMPOSITIONFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct COMPOSITIONSTRING { + pub dwSize: u32, + pub dwCompReadAttrLen: u32, + pub dwCompReadAttrOffset: u32, + pub dwCompReadClauseLen: u32, + pub dwCompReadClauseOffset: u32, + pub dwCompReadStrLen: u32, + pub dwCompReadStrOffset: u32, + pub dwCompAttrLen: u32, + pub dwCompAttrOffset: u32, + pub dwCompClauseLen: u32, + pub dwCompClauseOffset: u32, + pub dwCompStrLen: u32, + pub dwCompStrOffset: u32, + pub dwCursorPos: u32, + pub dwDeltaStart: u32, + pub dwResultReadClauseLen: u32, + pub dwResultReadClauseOffset: u32, + pub dwResultReadStrLen: u32, + pub dwResultReadStrOffset: u32, + pub dwResultClauseLen: u32, + pub dwResultClauseOffset: u32, + pub dwResultStrLen: u32, + pub dwResultStrOffset: u32, + pub dwPrivateSize: u32, + pub dwPrivateOffset: u32, +} +impl ::core::marker::Copy for COMPOSITIONSTRING {} +impl ::core::clone::Clone for COMPOSITIONSTRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GUIDELINE { + pub dwSize: u32, + pub dwLevel: u32, + pub dwIndex: u32, + pub dwStrLen: u32, + pub dwStrOffset: u32, + pub dwPrivateSize: u32, + pub dwPrivateOffset: u32, +} +impl ::core::marker::Copy for GUIDELINE {} +impl ::core::clone::Clone for GUIDELINE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct IMEAPPLETCFG { + pub dwConfig: u32, + pub wchTitle: [u16; 64], + pub wchTitleFontFace: [u16; 32], + pub dwCharSet: u32, + pub iCategory: i32, + pub hIcon: super::super::WindowsAndMessaging::HICON, + pub langID: u16, + pub dummy: u16, + pub lReserved1: super::super::super::Foundation::LPARAM, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for IMEAPPLETCFG {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for IMEAPPLETCFG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMEAPPLETUI { + pub hwnd: super::super::super::Foundation::HWND, + pub dwStyle: u32, + pub width: i32, + pub height: i32, + pub minWidth: i32, + pub minHeight: i32, + pub maxWidth: i32, + pub maxHeight: i32, + pub lReserved1: super::super::super::Foundation::LPARAM, + pub lReserved2: super::super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMEAPPLETUI {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMEAPPLETUI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMECHARINFO { + pub wch: u16, + pub dwCharInfo: u32, +} +impl ::core::marker::Copy for IMECHARINFO {} +impl ::core::clone::Clone for IMECHARINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMECHARPOSITION { + pub dwSize: u32, + pub dwCharPos: u32, + pub pt: super::super::super::Foundation::POINT, + pub cLineHeight: u32, + pub rcDocument: super::super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMECHARPOSITION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMECHARPOSITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMECOMPOSITIONSTRINGINFO { + pub iCompStrLen: i32, + pub iCaretPos: i32, + pub iEditStart: i32, + pub iEditLen: i32, + pub iTargetStart: i32, + pub iTargetLen: i32, +} +impl ::core::marker::Copy for IMECOMPOSITIONSTRINGINFO {} +impl ::core::clone::Clone for IMECOMPOSITIONSTRINGINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMEDLG { + pub cbIMEDLG: i32, + pub hwnd: super::super::super::Foundation::HWND, + pub lpwstrWord: ::windows_sys::core::PWSTR, + pub nTabId: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMEDLG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMEDLG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMEDP { + pub wrdModifier: IMEWRD, + pub wrdModifiee: IMEWRD, + pub relID: IMEREL, +} +impl ::core::marker::Copy for IMEDP {} +impl ::core::clone::Clone for IMEDP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMEFAREASTINFO { + pub dwSize: u32, + pub dwType: u32, + pub dwData: [u32; 1], +} +impl ::core::marker::Copy for IMEFAREASTINFO {} +impl ::core::clone::Clone for IMEFAREASTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMEINFO { + pub dwPrivateDataSize: u32, + pub fdwProperty: u32, + pub fdwConversionCaps: u32, + pub fdwSentenceCaps: u32, + pub fdwUICaps: u32, + pub fdwSCSCaps: u32, + pub fdwSelectCaps: u32, +} +impl ::core::marker::Copy for IMEINFO {} +impl ::core::clone::Clone for IMEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMEITEM { + pub cbSize: i32, + pub iType: i32, + pub lpItemData: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for IMEITEM {} +impl ::core::clone::Clone for IMEITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMEITEMCANDIDATE { + pub uCount: u32, + pub imeItem: [IMEITEM; 1], +} +impl ::core::marker::Copy for IMEITEMCANDIDATE {} +impl ::core::clone::Clone for IMEITEMCANDIDATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Globalization\"`"] +#[cfg(feature = "Win32_Globalization")] +pub struct IMEKMS { + pub cbSize: i32, + pub hIMC: super::super::super::Globalization::HIMC, + pub cKeyList: u32, + pub pKeyList: *mut IMEKMSKEY, +} +#[cfg(feature = "Win32_Globalization")] +impl ::core::marker::Copy for IMEKMS {} +#[cfg(feature = "Win32_Globalization")] +impl ::core::clone::Clone for IMEKMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMEKMSFUNCDESC { + pub cbSize: i32, + pub idLang: u16, + pub dwControl: u32, + pub pwszDescription: [u16; 128], +} +impl ::core::marker::Copy for IMEKMSFUNCDESC {} +impl ::core::clone::Clone for IMEKMSFUNCDESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct IMEKMSINIT { + pub cbSize: i32, + pub hWnd: super::super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for IMEKMSINIT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for IMEKMSINIT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Globalization\"`"] +#[cfg(feature = "Win32_Globalization")] +pub struct IMEKMSINVK { + pub cbSize: i32, + pub hIMC: super::super::super::Globalization::HIMC, + pub dwControl: u32, +} +#[cfg(feature = "Win32_Globalization")] +impl ::core::marker::Copy for IMEKMSINVK {} +#[cfg(feature = "Win32_Globalization")] +impl ::core::clone::Clone for IMEKMSINVK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMEKMSKEY { + pub dwStatus: u32, + pub dwCompStatus: u32, + pub dwVKEY: u32, + pub Anonymous1: IMEKMSKEY_0, + pub Anonymous2: IMEKMSKEY_1, +} +impl ::core::marker::Copy for IMEKMSKEY {} +impl ::core::clone::Clone for IMEKMSKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union IMEKMSKEY_0 { + pub dwControl: u32, + pub dwNotUsed: u32, +} +impl ::core::marker::Copy for IMEKMSKEY_0 {} +impl ::core::clone::Clone for IMEKMSKEY_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union IMEKMSKEY_1 { + pub pwszDscr: [u16; 31], + pub pwszNoUse: [u16; 31], +} +impl ::core::marker::Copy for IMEKMSKEY_1 {} +impl ::core::clone::Clone for IMEKMSKEY_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Globalization\"`"] +#[cfg(feature = "Win32_Globalization")] +pub struct IMEKMSKMP { + pub cbSize: i32, + pub hIMC: super::super::super::Globalization::HIMC, + pub idLang: u16, + pub wVKStart: u16, + pub wVKEnd: u16, + pub cKeyList: i32, + pub pKeyList: *mut IMEKMSKEY, +} +#[cfg(feature = "Win32_Globalization")] +impl ::core::marker::Copy for IMEKMSKMP {} +#[cfg(feature = "Win32_Globalization")] +impl ::core::clone::Clone for IMEKMSKMP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +pub struct IMEKMSNTFY { + pub cbSize: i32, + pub hIMC: super::super::super::Globalization::HIMC, + pub fSelect: super::super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +impl ::core::marker::Copy for IMEKMSNTFY {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +impl ::core::clone::Clone for IMEKMSNTFY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct IMEMENUITEMINFOA { + pub cbSize: u32, + pub fType: u32, + pub fState: u32, + pub wID: u32, + pub hbmpChecked: super::super::super::Graphics::Gdi::HBITMAP, + pub hbmpUnchecked: super::super::super::Graphics::Gdi::HBITMAP, + pub dwItemData: u32, + pub szString: [u8; 80], + pub hbmpItem: super::super::super::Graphics::Gdi::HBITMAP, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for IMEMENUITEMINFOA {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for IMEMENUITEMINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct IMEMENUITEMINFOW { + pub cbSize: u32, + pub fType: u32, + pub fState: u32, + pub wID: u32, + pub hbmpChecked: super::super::super::Graphics::Gdi::HBITMAP, + pub hbmpUnchecked: super::super::super::Graphics::Gdi::HBITMAP, + pub dwItemData: u32, + pub szString: [u16; 80], + pub hbmpItem: super::super::super::Graphics::Gdi::HBITMAP, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for IMEMENUITEMINFOW {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for IMEMENUITEMINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMESHF { + pub cbShf: u16, + pub verDic: u16, + pub szTitle: [u8; 48], + pub szDescription: [u8; 256], + pub szCopyright: [u8; 128], +} +impl ::core::marker::Copy for IMESHF {} +impl ::core::clone::Clone for IMESHF { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMESTRINGCANDIDATE { + pub uCount: u32, + pub lpwstr: [::windows_sys::core::PWSTR; 1], +} +impl ::core::marker::Copy for IMESTRINGCANDIDATE {} +impl ::core::clone::Clone for IMESTRINGCANDIDATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMESTRINGCANDIDATEINFO { + pub dwFarEastId: u32, + pub lpFarEastInfo: *mut IMEFAREASTINFO, + pub fInfoMask: u32, + pub iSelIndex: i32, + pub uCount: u32, + pub lpwstr: [::windows_sys::core::PWSTR; 1], +} +impl ::core::marker::Copy for IMESTRINGCANDIDATEINFO {} +impl ::core::clone::Clone for IMESTRINGCANDIDATEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IMESTRINGINFO { + pub dwFarEastId: u32, + pub lpwstr: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for IMESTRINGINFO {} +impl ::core::clone::Clone for IMESTRINGINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMEWRD { + pub pwchReading: ::windows_sys::core::PWSTR, + pub pwchDisplay: ::windows_sys::core::PWSTR, + pub Anonymous: IMEWRD_0, + pub rgulAttrs: [u32; 2], + pub cbComment: i32, + pub uct: IMEUCT, + pub pvComment: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for IMEWRD {} +impl ::core::clone::Clone for IMEWRD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union IMEWRD_0 { + pub ulPos: u32, + pub Anonymous: IMEWRD_0_0, +} +impl ::core::marker::Copy for IMEWRD_0 {} +impl ::core::clone::Clone for IMEWRD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct IMEWRD_0_0 { + pub nPos1: u16, + pub nPos2: u16, +} +impl ::core::marker::Copy for IMEWRD_0_0 {} +impl ::core::clone::Clone for IMEWRD_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] +pub struct INPUTCONTEXT { + pub hWnd: super::super::super::Foundation::HWND, + pub fOpen: super::super::super::Foundation::BOOL, + pub ptStatusWndPos: super::super::super::Foundation::POINT, + pub ptSoftKbdPos: super::super::super::Foundation::POINT, + pub fdwConversion: u32, + pub fdwSentence: u32, + pub lfFont: INPUTCONTEXT_0, + pub cfCompForm: COMPOSITIONFORM, + pub cfCandForm: [CANDIDATEFORM; 4], + pub hCompStr: super::super::super::Globalization::HIMCC, + pub hCandInfo: super::super::super::Globalization::HIMCC, + pub hGuideLine: super::super::super::Globalization::HIMCC, + pub hPrivate: super::super::super::Globalization::HIMCC, + pub dwNumMsgBuf: u32, + pub hMsgBuf: super::super::super::Globalization::HIMCC, + pub fdwInit: u32, + pub dwReserve: [u32; 3], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for INPUTCONTEXT {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for INPUTCONTEXT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] +pub union INPUTCONTEXT_0 { + pub A: super::super::super::Graphics::Gdi::LOGFONTA, + pub W: super::super::super::Graphics::Gdi::LOGFONTW, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for INPUTCONTEXT_0 {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for INPUTCONTEXT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct MORRSLT { + pub dwSize: u32, + pub pwchOutput: ::windows_sys::core::PWSTR, + pub cchOutput: u16, + pub Anonymous1: MORRSLT_0, + pub Anonymous2: MORRSLT_1, + pub pchInputPos: *mut u16, + pub pchOutputIdxWDD: *mut u16, + pub Anonymous3: MORRSLT_2, + pub paMonoRubyPos: *mut u16, + pub pWDD: *mut WDD, + pub cWDD: i32, + pub pPrivate: *mut ::core::ffi::c_void, + pub BLKBuff: [u16; 1], +} +impl ::core::marker::Copy for MORRSLT {} +impl ::core::clone::Clone for MORRSLT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union MORRSLT_0 { + pub pwchRead: ::windows_sys::core::PWSTR, + pub pwchComp: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for MORRSLT_0 {} +impl ::core::clone::Clone for MORRSLT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union MORRSLT_1 { + pub cchRead: u16, + pub cchComp: u16, +} +impl ::core::marker::Copy for MORRSLT_1 {} +impl ::core::clone::Clone for MORRSLT_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union MORRSLT_2 { + pub pchReadIdxWDD: *mut u16, + pub pchCompIdxWDD: *mut u16, +} +impl ::core::marker::Copy for MORRSLT_2 {} +impl ::core::clone::Clone for MORRSLT_2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct POSTBL { + pub nPos: u16, + pub szName: *mut u8, +} +impl ::core::marker::Copy for POSTBL {} +impl ::core::clone::Clone for POSTBL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECONVERTSTRING { + pub dwSize: u32, + pub dwVersion: u32, + pub dwStrLen: u32, + pub dwStrOffset: u32, + pub dwCompStrLen: u32, + pub dwCompStrOffset: u32, + pub dwTargetStrLen: u32, + pub dwTargetStrOffset: u32, +} +impl ::core::marker::Copy for RECONVERTSTRING {} +impl ::core::clone::Clone for RECONVERTSTRING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REGISTERWORDA { + pub lpReading: ::windows_sys::core::PSTR, + pub lpWord: ::windows_sys::core::PSTR, +} +impl ::core::marker::Copy for REGISTERWORDA {} +impl ::core::clone::Clone for REGISTERWORDA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct REGISTERWORDW { + pub lpReading: ::windows_sys::core::PWSTR, + pub lpWord: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for REGISTERWORDW {} +impl ::core::clone::Clone for REGISTERWORDW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SOFTKBDDATA { + pub uCount: u32, + pub wCode: [u16; 256], +} +impl ::core::marker::Copy for SOFTKBDDATA {} +impl ::core::clone::Clone for SOFTKBDDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STYLEBUFA { + pub dwStyle: u32, + pub szDescription: [u8; 32], +} +impl ::core::marker::Copy for STYLEBUFA {} +impl ::core::clone::Clone for STYLEBUFA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STYLEBUFW { + pub dwStyle: u32, + pub szDescription: [u16; 32], +} +impl ::core::marker::Copy for STYLEBUFW {} +impl ::core::clone::Clone for STYLEBUFW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRANSMSG { + pub message: u32, + pub wParam: super::super::super::Foundation::WPARAM, + pub lParam: super::super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRANSMSG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRANSMSG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRANSMSGLIST { + pub uMsgCount: u32, + pub TransMsg: [TRANSMSG; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRANSMSGLIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRANSMSGLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct WDD { + pub wDispPos: u16, + pub Anonymous1: WDD_0, + pub cchDisp: u16, + pub Anonymous2: WDD_1, + pub WDD_nReserve1: u32, + pub nPos: u16, + pub _bitfield: u16, + pub pReserved: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for WDD {} +impl ::core::clone::Clone for WDD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WDD_0 { + pub wReadPos: u16, + pub wCompPos: u16, +} +impl ::core::marker::Copy for WDD_0 {} +impl ::core::clone::Clone for WDD_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub union WDD_1 { + pub cchRead: u16, + pub cchComp: u16, +} +impl ::core::marker::Copy for WDD_1 {} +impl ::core::clone::Clone for WDD_1 { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Globalization\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] +pub type IMCENUMPROC = ::core::option::Option super::super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNLOG = ::core::option::Option super::super::super::Foundation::BOOL>; +pub type REGISTERWORDENUMPROCA = ::core::option::Option i32>; +pub type REGISTERWORDENUMPROCW = ::core::option::Option i32>; +pub type fpCreateIFECommonInstanceType = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type fpCreateIFEDictionaryInstanceType = ::core::option::Option ::windows_sys::core::HRESULT>; +pub type fpCreateIFELanguageInstanceType = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs new file mode 100644 index 000000000..fd09c5dc0 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs @@ -0,0 +1,987 @@ +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ActivateKeyboardLayout(hkl : super::super::TextServices:: HKL, flags : ACTIVATE_KEYBOARD_LAYOUT_FLAGS) -> super::super::TextServices:: HKL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BlockInput(fblockit : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DragDetect(hwnd : super::super::super::Foundation:: HWND, pt : super::super::super::Foundation:: POINT) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableWindow(hwnd : super::super::super::Foundation:: HWND, benable : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetActiveWindow() -> super::super::super::Foundation:: HWND); +::windows_targets::link!("user32.dll" "system" fn GetAsyncKeyState(vkey : i32) -> i16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCapture() -> super::super::super::Foundation:: HWND); +::windows_targets::link!("user32.dll" "system" fn GetDoubleClickTime() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFocus() -> super::super::super::Foundation:: HWND); +::windows_targets::link!("user32.dll" "system" fn GetKBCodePage() -> u32); +::windows_targets::link!("user32.dll" "system" fn GetKeyNameTextA(lparam : i32, lpstring : ::windows_sys::core::PSTR, cchsize : i32) -> i32); +::windows_targets::link!("user32.dll" "system" fn GetKeyNameTextW(lparam : i32, lpstring : ::windows_sys::core::PWSTR, cchsize : i32) -> i32); +::windows_targets::link!("user32.dll" "system" fn GetKeyState(nvirtkey : i32) -> i16); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn GetKeyboardLayout(idthread : u32) -> super::super::TextServices:: HKL); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn GetKeyboardLayoutList(nbuff : i32, lplist : *mut super::super::TextServices:: HKL) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetKeyboardLayoutNameA(pwszklid : ::windows_sys::core::PSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetKeyboardLayoutNameW(pwszklid : ::windows_sys::core::PWSTR) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetKeyboardState(lpkeystate : *mut u8) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn GetKeyboardType(ntypeflag : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLastInputInfo(plii : *mut LASTINPUTINFO) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn GetMouseMovePointsEx(cbsize : u32, lppt : *const MOUSEMOVEPOINT, lpptbuf : *mut MOUSEMOVEPOINT, nbufpoints : i32, resolution : GET_MOUSE_MOVE_POINTS_EX_RESOLUTION) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsWindowEnabled(hwnd : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn LoadKeyboardLayoutA(pwszklid : ::windows_sys::core::PCSTR, flags : ACTIVATE_KEYBOARD_LAYOUT_FLAGS) -> super::super::TextServices:: HKL); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn LoadKeyboardLayoutW(pwszklid : ::windows_sys::core::PCWSTR, flags : ACTIVATE_KEYBOARD_LAYOUT_FLAGS) -> super::super::TextServices:: HKL); +::windows_targets::link!("user32.dll" "system" fn MapVirtualKeyA(ucode : u32, umaptype : MAP_VIRTUAL_KEY_TYPE) -> u32); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn MapVirtualKeyExA(ucode : u32, umaptype : MAP_VIRTUAL_KEY_TYPE, dwhkl : super::super::TextServices:: HKL) -> u32); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn MapVirtualKeyExW(ucode : u32, umaptype : MAP_VIRTUAL_KEY_TYPE, dwhkl : super::super::TextServices:: HKL) -> u32); +::windows_targets::link!("user32.dll" "system" fn MapVirtualKeyW(ucode : u32, umaptype : MAP_VIRTUAL_KEY_TYPE) -> u32); +::windows_targets::link!("user32.dll" "system" fn OemKeyScan(woemchar : u16) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterHotKey(hwnd : super::super::super::Foundation:: HWND, id : i32, fsmodifiers : HOT_KEY_MODIFIERS, vk : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReleaseCapture() -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn SendInput(cinputs : u32, pinputs : *const INPUT, cbsize : i32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetActiveWindow(hwnd : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCapture(hwnd : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDoubleClickTime(param0 : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetFocus(hwnd : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetKeyboardState(lpkeystate : *const u8) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SwapMouseButton(fswap : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn ToAscii(uvirtkey : u32, uscancode : u32, lpkeystate : *const u8, lpchar : *mut u16, uflags : u32) -> i32); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ToAsciiEx(uvirtkey : u32, uscancode : u32, lpkeystate : *const u8, lpchar : *mut u16, uflags : u32, dwhkl : super::super::TextServices:: HKL) -> i32); +::windows_targets::link!("user32.dll" "system" fn ToUnicode(wvirtkey : u32, wscancode : u32, lpkeystate : *const u8, pwszbuff : ::windows_sys::core::PWSTR, cchbuff : i32, wflags : u32) -> i32); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn ToUnicodeEx(wvirtkey : u32, wscancode : u32, lpkeystate : *const u8, pwszbuff : ::windows_sys::core::PWSTR, cchbuff : i32, wflags : u32, dwhkl : super::super::TextServices:: HKL) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TrackMouseEvent(lpeventtrack : *mut TRACKMOUSEEVENT) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_TextServices"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_TextServices\"`"] fn UnloadKeyboardLayout(hkl : super::super::TextServices:: HKL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterHotKey(hwnd : super::super::super::Foundation:: HWND, id : i32) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn VkKeyScanA(ch : u8) -> i16); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn VkKeyScanExA(ch : u8, dwhkl : super::super::TextServices:: HKL) -> i16); +#[cfg(feature = "Win32_UI_TextServices")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_TextServices\"`"] fn VkKeyScanExW(ch : u16, dwhkl : super::super::TextServices:: HKL) -> i16); +::windows_targets::link!("user32.dll" "system" fn VkKeyScanW(ch : u16) -> i16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn _TrackMouseEvent(lpeventtrack : *mut TRACKMOUSEEVENT) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn keybd_event(bvk : u8, bscan : u8, dwflags : KEYBD_EVENT_FLAGS, dwextrainfo : usize) -> ()); +::windows_targets::link!("user32.dll" "system" fn mouse_event(dwflags : MOUSE_EVENT_FLAGS, dx : i32, dy : i32, dwdata : i32, dwextrainfo : usize) -> ()); +pub const ACUTE: u32 = 769u32; +pub const AX_KBD_DESKTOP_TYPE: u32 = 1u32; +pub const BREVE: u32 = 774u32; +pub const CAPLOK: u32 = 1u32; +pub const CAPLOKALTGR: u32 = 4u32; +pub const CEDILLA: u32 = 807u32; +pub const CIRCUMFLEX: u32 = 770u32; +pub const DEC_KBD_ANSI_LAYOUT_TYPE: u32 = 1u32; +pub const DEC_KBD_JIS_LAYOUT_TYPE: u32 = 2u32; +pub const DIARESIS: u32 = 776u32; +pub const DIARESIS_TONOS: u32 = 901u32; +pub const DKF_DEAD: u32 = 1u32; +pub const DONTCARE_BIT: u32 = 33554432u32; +pub const DOT_ABOVE: u32 = 775u32; +pub const DOUBLE_ACUTE: u32 = 779u32; +pub const EXTENDED_BIT: u32 = 16777216u32; +pub const FAKE_KEYSTROKE: u32 = 33554432u32; +pub const FMR_KBD_JIS_TYPE: u32 = 0u32; +pub const FMR_KBD_OASYS_TYPE: u32 = 1u32; +pub const FMV_KBD_OASYS_TYPE: u32 = 2u32; +pub const GMMP_USE_DISPLAY_POINTS: GET_MOUSE_MOVE_POINTS_EX_RESOLUTION = 1u32; +pub const GMMP_USE_HIGH_RESOLUTION_POINTS: GET_MOUSE_MOVE_POINTS_EX_RESOLUTION = 2u32; +pub const GRAVE: u32 = 768u32; +pub const GRPSELTAP: u32 = 128u32; +pub const HACEK: u32 = 780u32; +pub const HOOK_ABOVE: u32 = 777u32; +pub const INPUT_HARDWARE: INPUT_TYPE = 2u32; +pub const INPUT_KEYBOARD: INPUT_TYPE = 1u32; +pub const INPUT_MOUSE: INPUT_TYPE = 0u32; +pub const KANALOK: u32 = 8u32; +pub const KBDALT: u32 = 4u32; +pub const KBDBASE: u32 = 0u32; +pub const KBDCTRL: u32 = 2u32; +pub const KBDGRPSELTAP: u32 = 128u32; +pub const KBDKANA: u32 = 8u32; +pub const KBDLOYA: u32 = 32u32; +pub const KBDNLS_ALPHANUM: u32 = 5u32; +pub const KBDNLS_CODEINPUT: u32 = 10u32; +pub const KBDNLS_CONV_OR_NONCONV: u32 = 15u32; +pub const KBDNLS_HELP_OR_END: u32 = 11u32; +pub const KBDNLS_HIRAGANA: u32 = 6u32; +pub const KBDNLS_HOME_OR_CLEAR: u32 = 12u32; +pub const KBDNLS_INDEX_ALT: u32 = 2u32; +pub const KBDNLS_INDEX_NORMAL: u32 = 1u32; +pub const KBDNLS_KANAEVENT: u32 = 14u32; +pub const KBDNLS_KANALOCK: u32 = 4u32; +pub const KBDNLS_KATAKANA: u32 = 7u32; +pub const KBDNLS_NOEVENT: u32 = 1u32; +pub const KBDNLS_NULL: u32 = 0u32; +pub const KBDNLS_NUMPAD: u32 = 13u32; +pub const KBDNLS_ROMAN: u32 = 9u32; +pub const KBDNLS_SBCSDBCS: u32 = 8u32; +pub const KBDNLS_SEND_BASE_VK: u32 = 2u32; +pub const KBDNLS_SEND_PARAM_VK: u32 = 3u32; +pub const KBDNLS_TYPE_NORMAL: u32 = 1u32; +pub const KBDNLS_TYPE_NULL: u32 = 0u32; +pub const KBDNLS_TYPE_TOGGLE: u32 = 2u32; +pub const KBDROYA: u32 = 16u32; +pub const KBDSHIFT: u32 = 1u32; +pub const KBDTABLE_MULTI_MAX: u32 = 8u32; +pub const KBD_TYPE: u32 = 4u32; +pub const KBD_VERSION: u32 = 1u32; +pub const KEYBOARD_TYPE_GENERIC_101: u32 = 4u32; +pub const KEYBOARD_TYPE_JAPAN: u32 = 7u32; +pub const KEYBOARD_TYPE_KOREA: u32 = 8u32; +pub const KEYBOARD_TYPE_UNKNOWN: u32 = 81u32; +pub const KEYEVENTF_EXTENDEDKEY: KEYBD_EVENT_FLAGS = 1u32; +pub const KEYEVENTF_KEYUP: KEYBD_EVENT_FLAGS = 2u32; +pub const KEYEVENTF_SCANCODE: KEYBD_EVENT_FLAGS = 8u32; +pub const KEYEVENTF_UNICODE: KEYBD_EVENT_FLAGS = 4u32; +pub const KLF_ACTIVATE: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 1u32; +pub const KLF_NOTELLSHELL: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 128u32; +pub const KLF_REORDER: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 8u32; +pub const KLF_REPLACELANG: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 16u32; +pub const KLF_RESET: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 1073741824u32; +pub const KLF_SETFORPROCESS: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 256u32; +pub const KLF_SHIFTLOCK: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 65536u32; +pub const KLF_SUBSTITUTE_OK: ACTIVATE_KEYBOARD_LAYOUT_FLAGS = 2u32; +pub const KLLF_ALTGR: u32 = 1u32; +pub const KLLF_GLOBAL_ATTRS: u32 = 2u32; +pub const KLLF_LRM_RLM: u32 = 4u32; +pub const KLLF_SHIFTLOCK: u32 = 2u32; +pub const MACRON: u32 = 772u32; +pub const MAPVK_VK_TO_CHAR: MAP_VIRTUAL_KEY_TYPE = 2u32; +pub const MAPVK_VK_TO_VSC: MAP_VIRTUAL_KEY_TYPE = 0u32; +pub const MAPVK_VK_TO_VSC_EX: MAP_VIRTUAL_KEY_TYPE = 4u32; +pub const MAPVK_VSC_TO_VK: MAP_VIRTUAL_KEY_TYPE = 1u32; +pub const MAPVK_VSC_TO_VK_EX: MAP_VIRTUAL_KEY_TYPE = 3u32; +pub const MICROSOFT_KBD_001_TYPE: u32 = 4u32; +pub const MICROSOFT_KBD_002_TYPE: u32 = 3u32; +pub const MICROSOFT_KBD_101A_TYPE: u32 = 0u32; +pub const MICROSOFT_KBD_101B_TYPE: u32 = 4u32; +pub const MICROSOFT_KBD_101C_TYPE: u32 = 5u32; +pub const MICROSOFT_KBD_101_TYPE: u32 = 0u32; +pub const MICROSOFT_KBD_103_TYPE: u32 = 6u32; +pub const MICROSOFT_KBD_106_TYPE: u32 = 2u32; +pub const MICROSOFT_KBD_AX_TYPE: u32 = 1u32; +pub const MICROSOFT_KBD_FUNC: u32 = 12u32; +pub const MOD_ALT: HOT_KEY_MODIFIERS = 1u32; +pub const MOD_CONTROL: HOT_KEY_MODIFIERS = 2u32; +pub const MOD_NOREPEAT: HOT_KEY_MODIFIERS = 16384u32; +pub const MOD_SHIFT: HOT_KEY_MODIFIERS = 4u32; +pub const MOD_WIN: HOT_KEY_MODIFIERS = 8u32; +pub const MOUSEEVENTF_ABSOLUTE: MOUSE_EVENT_FLAGS = 32768u32; +pub const MOUSEEVENTF_HWHEEL: MOUSE_EVENT_FLAGS = 4096u32; +pub const MOUSEEVENTF_LEFTDOWN: MOUSE_EVENT_FLAGS = 2u32; +pub const MOUSEEVENTF_LEFTUP: MOUSE_EVENT_FLAGS = 4u32; +pub const MOUSEEVENTF_MIDDLEDOWN: MOUSE_EVENT_FLAGS = 32u32; +pub const MOUSEEVENTF_MIDDLEUP: MOUSE_EVENT_FLAGS = 64u32; +pub const MOUSEEVENTF_MOVE: MOUSE_EVENT_FLAGS = 1u32; +pub const MOUSEEVENTF_MOVE_NOCOALESCE: MOUSE_EVENT_FLAGS = 8192u32; +pub const MOUSEEVENTF_RIGHTDOWN: MOUSE_EVENT_FLAGS = 8u32; +pub const MOUSEEVENTF_RIGHTUP: MOUSE_EVENT_FLAGS = 16u32; +pub const MOUSEEVENTF_VIRTUALDESK: MOUSE_EVENT_FLAGS = 16384u32; +pub const MOUSEEVENTF_WHEEL: MOUSE_EVENT_FLAGS = 2048u32; +pub const MOUSEEVENTF_XDOWN: MOUSE_EVENT_FLAGS = 128u32; +pub const MOUSEEVENTF_XUP: MOUSE_EVENT_FLAGS = 256u32; +pub const NEC_KBD_106_TYPE: u32 = 5u32; +pub const NEC_KBD_H_MODE_TYPE: u32 = 3u32; +pub const NEC_KBD_LAPTOP_TYPE: u32 = 4u32; +pub const NEC_KBD_NORMAL_TYPE: u32 = 1u32; +pub const NEC_KBD_N_MODE_TYPE: u32 = 2u32; +pub const NLSKBD_INFO_ACCESSIBILITY_KEYMAP: u32 = 2u32; +pub const NLSKBD_INFO_EMURATE_101_KEYBOARD: u32 = 16u32; +pub const NLSKBD_INFO_EMURATE_106_KEYBOARD: u32 = 32u32; +pub const NLSKBD_INFO_SEND_IME_NOTIFICATION: u32 = 1u32; +pub const NLSKBD_OEM_AX: u32 = 1u32; +pub const NLSKBD_OEM_DEC: u32 = 24u32; +pub const NLSKBD_OEM_EPSON: u32 = 4u32; +pub const NLSKBD_OEM_FUJITSU: u32 = 5u32; +pub const NLSKBD_OEM_IBM: u32 = 7u32; +pub const NLSKBD_OEM_MATSUSHITA: u32 = 10u32; +pub const NLSKBD_OEM_MICROSOFT: u32 = 0u32; +pub const NLSKBD_OEM_NEC: u32 = 13u32; +pub const NLSKBD_OEM_TOSHIBA: u32 = 18u32; +pub const OGONEK: u32 = 808u32; +pub const OVERSCORE: u32 = 773u32; +pub const RING: u32 = 778u32; +pub const SCANCODE_ALT: u32 = 56u32; +pub const SCANCODE_CTRL: u32 = 29u32; +pub const SCANCODE_LSHIFT: u32 = 42u32; +pub const SCANCODE_LWIN: u32 = 91u32; +pub const SCANCODE_NUMPAD_FIRST: u32 = 71u32; +pub const SCANCODE_NUMPAD_LAST: u32 = 82u32; +pub const SCANCODE_RSHIFT: u32 = 54u32; +pub const SCANCODE_RWIN: u32 = 92u32; +pub const SCANCODE_THAI_LAYOUT_TOGGLE: u32 = 41u32; +pub const SGCAPS: u32 = 2u32; +pub const SHFT_INVALID: u32 = 15u32; +pub const TILDE: u32 = 771u32; +pub const TME_CANCEL: TRACKMOUSEEVENT_FLAGS = 2147483648u32; +pub const TME_HOVER: TRACKMOUSEEVENT_FLAGS = 1u32; +pub const TME_LEAVE: TRACKMOUSEEVENT_FLAGS = 2u32; +pub const TME_NONCLIENT: TRACKMOUSEEVENT_FLAGS = 16u32; +pub const TME_QUERY: TRACKMOUSEEVENT_FLAGS = 1073741824u32; +pub const TONOS: u32 = 900u32; +pub const TOSHIBA_KBD_DESKTOP_TYPE: u32 = 13u32; +pub const TOSHIBA_KBD_LAPTOP_TYPE: u32 = 15u32; +pub const UMLAUT: u32 = 776u32; +pub const VK_0: VIRTUAL_KEY = 48u16; +pub const VK_1: VIRTUAL_KEY = 49u16; +pub const VK_2: VIRTUAL_KEY = 50u16; +pub const VK_3: VIRTUAL_KEY = 51u16; +pub const VK_4: VIRTUAL_KEY = 52u16; +pub const VK_5: VIRTUAL_KEY = 53u16; +pub const VK_6: VIRTUAL_KEY = 54u16; +pub const VK_7: VIRTUAL_KEY = 55u16; +pub const VK_8: VIRTUAL_KEY = 56u16; +pub const VK_9: VIRTUAL_KEY = 57u16; +pub const VK_A: VIRTUAL_KEY = 65u16; +pub const VK_ABNT_C1: VIRTUAL_KEY = 193u16; +pub const VK_ABNT_C2: VIRTUAL_KEY = 194u16; +pub const VK_ACCEPT: VIRTUAL_KEY = 30u16; +pub const VK_ADD: VIRTUAL_KEY = 107u16; +pub const VK_APPS: VIRTUAL_KEY = 93u16; +pub const VK_ATTN: VIRTUAL_KEY = 246u16; +pub const VK_B: VIRTUAL_KEY = 66u16; +pub const VK_BACK: VIRTUAL_KEY = 8u16; +pub const VK_BROWSER_BACK: VIRTUAL_KEY = 166u16; +pub const VK_BROWSER_FAVORITES: VIRTUAL_KEY = 171u16; +pub const VK_BROWSER_FORWARD: VIRTUAL_KEY = 167u16; +pub const VK_BROWSER_HOME: VIRTUAL_KEY = 172u16; +pub const VK_BROWSER_REFRESH: VIRTUAL_KEY = 168u16; +pub const VK_BROWSER_SEARCH: VIRTUAL_KEY = 170u16; +pub const VK_BROWSER_STOP: VIRTUAL_KEY = 169u16; +pub const VK_C: VIRTUAL_KEY = 67u16; +pub const VK_CANCEL: VIRTUAL_KEY = 3u16; +pub const VK_CAPITAL: VIRTUAL_KEY = 20u16; +pub const VK_CLEAR: VIRTUAL_KEY = 12u16; +pub const VK_CONTROL: VIRTUAL_KEY = 17u16; +pub const VK_CONVERT: VIRTUAL_KEY = 28u16; +pub const VK_CRSEL: VIRTUAL_KEY = 247u16; +pub const VK_D: VIRTUAL_KEY = 68u16; +pub const VK_DBE_ALPHANUMERIC: VIRTUAL_KEY = 240u16; +pub const VK_DBE_CODEINPUT: VIRTUAL_KEY = 250u16; +pub const VK_DBE_DBCSCHAR: VIRTUAL_KEY = 244u16; +pub const VK_DBE_DETERMINESTRING: VIRTUAL_KEY = 252u16; +pub const VK_DBE_ENTERDLGCONVERSIONMODE: VIRTUAL_KEY = 253u16; +pub const VK_DBE_ENTERIMECONFIGMODE: VIRTUAL_KEY = 248u16; +pub const VK_DBE_ENTERWORDREGISTERMODE: VIRTUAL_KEY = 247u16; +pub const VK_DBE_FLUSHSTRING: VIRTUAL_KEY = 249u16; +pub const VK_DBE_HIRAGANA: VIRTUAL_KEY = 242u16; +pub const VK_DBE_KATAKANA: VIRTUAL_KEY = 241u16; +pub const VK_DBE_NOCODEINPUT: VIRTUAL_KEY = 251u16; +pub const VK_DBE_NOROMAN: VIRTUAL_KEY = 246u16; +pub const VK_DBE_ROMAN: VIRTUAL_KEY = 245u16; +pub const VK_DBE_SBCSCHAR: VIRTUAL_KEY = 243u16; +pub const VK_DECIMAL: VIRTUAL_KEY = 110u16; +pub const VK_DELETE: VIRTUAL_KEY = 46u16; +pub const VK_DIVIDE: VIRTUAL_KEY = 111u16; +pub const VK_DOWN: VIRTUAL_KEY = 40u16; +pub const VK_E: VIRTUAL_KEY = 69u16; +pub const VK_END: VIRTUAL_KEY = 35u16; +pub const VK_EREOF: VIRTUAL_KEY = 249u16; +pub const VK_ESCAPE: VIRTUAL_KEY = 27u16; +pub const VK_EXECUTE: VIRTUAL_KEY = 43u16; +pub const VK_EXSEL: VIRTUAL_KEY = 248u16; +pub const VK_F: VIRTUAL_KEY = 70u16; +pub const VK_F1: VIRTUAL_KEY = 112u16; +pub const VK_F10: VIRTUAL_KEY = 121u16; +pub const VK_F11: VIRTUAL_KEY = 122u16; +pub const VK_F12: VIRTUAL_KEY = 123u16; +pub const VK_F13: VIRTUAL_KEY = 124u16; +pub const VK_F14: VIRTUAL_KEY = 125u16; +pub const VK_F15: VIRTUAL_KEY = 126u16; +pub const VK_F16: VIRTUAL_KEY = 127u16; +pub const VK_F17: VIRTUAL_KEY = 128u16; +pub const VK_F18: VIRTUAL_KEY = 129u16; +pub const VK_F19: VIRTUAL_KEY = 130u16; +pub const VK_F2: VIRTUAL_KEY = 113u16; +pub const VK_F20: VIRTUAL_KEY = 131u16; +pub const VK_F21: VIRTUAL_KEY = 132u16; +pub const VK_F22: VIRTUAL_KEY = 133u16; +pub const VK_F23: VIRTUAL_KEY = 134u16; +pub const VK_F24: VIRTUAL_KEY = 135u16; +pub const VK_F3: VIRTUAL_KEY = 114u16; +pub const VK_F4: VIRTUAL_KEY = 115u16; +pub const VK_F5: VIRTUAL_KEY = 116u16; +pub const VK_F6: VIRTUAL_KEY = 117u16; +pub const VK_F7: VIRTUAL_KEY = 118u16; +pub const VK_F8: VIRTUAL_KEY = 119u16; +pub const VK_F9: VIRTUAL_KEY = 120u16; +pub const VK_FINAL: VIRTUAL_KEY = 24u16; +pub const VK_G: VIRTUAL_KEY = 71u16; +pub const VK_GAMEPAD_A: VIRTUAL_KEY = 195u16; +pub const VK_GAMEPAD_B: VIRTUAL_KEY = 196u16; +pub const VK_GAMEPAD_DPAD_DOWN: VIRTUAL_KEY = 204u16; +pub const VK_GAMEPAD_DPAD_LEFT: VIRTUAL_KEY = 205u16; +pub const VK_GAMEPAD_DPAD_RIGHT: VIRTUAL_KEY = 206u16; +pub const VK_GAMEPAD_DPAD_UP: VIRTUAL_KEY = 203u16; +pub const VK_GAMEPAD_LEFT_SHOULDER: VIRTUAL_KEY = 200u16; +pub const VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON: VIRTUAL_KEY = 209u16; +pub const VK_GAMEPAD_LEFT_THUMBSTICK_DOWN: VIRTUAL_KEY = 212u16; +pub const VK_GAMEPAD_LEFT_THUMBSTICK_LEFT: VIRTUAL_KEY = 214u16; +pub const VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT: VIRTUAL_KEY = 213u16; +pub const VK_GAMEPAD_LEFT_THUMBSTICK_UP: VIRTUAL_KEY = 211u16; +pub const VK_GAMEPAD_LEFT_TRIGGER: VIRTUAL_KEY = 201u16; +pub const VK_GAMEPAD_MENU: VIRTUAL_KEY = 207u16; +pub const VK_GAMEPAD_RIGHT_SHOULDER: VIRTUAL_KEY = 199u16; +pub const VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON: VIRTUAL_KEY = 210u16; +pub const VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN: VIRTUAL_KEY = 216u16; +pub const VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT: VIRTUAL_KEY = 218u16; +pub const VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT: VIRTUAL_KEY = 217u16; +pub const VK_GAMEPAD_RIGHT_THUMBSTICK_UP: VIRTUAL_KEY = 215u16; +pub const VK_GAMEPAD_RIGHT_TRIGGER: VIRTUAL_KEY = 202u16; +pub const VK_GAMEPAD_VIEW: VIRTUAL_KEY = 208u16; +pub const VK_GAMEPAD_X: VIRTUAL_KEY = 197u16; +pub const VK_GAMEPAD_Y: VIRTUAL_KEY = 198u16; +pub const VK_H: VIRTUAL_KEY = 72u16; +pub const VK_HANGEUL: VIRTUAL_KEY = 21u16; +pub const VK_HANGUL: VIRTUAL_KEY = 21u16; +pub const VK_HANJA: VIRTUAL_KEY = 25u16; +pub const VK_HELP: VIRTUAL_KEY = 47u16; +pub const VK_HOME: VIRTUAL_KEY = 36u16; +pub const VK_I: VIRTUAL_KEY = 73u16; +pub const VK_ICO_00: VIRTUAL_KEY = 228u16; +pub const VK_ICO_CLEAR: VIRTUAL_KEY = 230u16; +pub const VK_ICO_HELP: VIRTUAL_KEY = 227u16; +pub const VK_IME_OFF: VIRTUAL_KEY = 26u16; +pub const VK_IME_ON: VIRTUAL_KEY = 22u16; +pub const VK_INSERT: VIRTUAL_KEY = 45u16; +pub const VK_J: VIRTUAL_KEY = 74u16; +pub const VK_JUNJA: VIRTUAL_KEY = 23u16; +pub const VK_K: VIRTUAL_KEY = 75u16; +pub const VK_KANA: VIRTUAL_KEY = 21u16; +pub const VK_KANJI: VIRTUAL_KEY = 25u16; +pub const VK_L: VIRTUAL_KEY = 76u16; +pub const VK_LAUNCH_APP1: VIRTUAL_KEY = 182u16; +pub const VK_LAUNCH_APP2: VIRTUAL_KEY = 183u16; +pub const VK_LAUNCH_MAIL: VIRTUAL_KEY = 180u16; +pub const VK_LAUNCH_MEDIA_SELECT: VIRTUAL_KEY = 181u16; +pub const VK_LBUTTON: VIRTUAL_KEY = 1u16; +pub const VK_LCONTROL: VIRTUAL_KEY = 162u16; +pub const VK_LEFT: VIRTUAL_KEY = 37u16; +pub const VK_LMENU: VIRTUAL_KEY = 164u16; +pub const VK_LSHIFT: VIRTUAL_KEY = 160u16; +pub const VK_LWIN: VIRTUAL_KEY = 91u16; +pub const VK_M: VIRTUAL_KEY = 77u16; +pub const VK_MBUTTON: VIRTUAL_KEY = 4u16; +pub const VK_MEDIA_NEXT_TRACK: VIRTUAL_KEY = 176u16; +pub const VK_MEDIA_PLAY_PAUSE: VIRTUAL_KEY = 179u16; +pub const VK_MEDIA_PREV_TRACK: VIRTUAL_KEY = 177u16; +pub const VK_MEDIA_STOP: VIRTUAL_KEY = 178u16; +pub const VK_MENU: VIRTUAL_KEY = 18u16; +pub const VK_MODECHANGE: VIRTUAL_KEY = 31u16; +pub const VK_MULTIPLY: VIRTUAL_KEY = 106u16; +pub const VK_N: VIRTUAL_KEY = 78u16; +pub const VK_NAVIGATION_ACCEPT: VIRTUAL_KEY = 142u16; +pub const VK_NAVIGATION_CANCEL: VIRTUAL_KEY = 143u16; +pub const VK_NAVIGATION_DOWN: VIRTUAL_KEY = 139u16; +pub const VK_NAVIGATION_LEFT: VIRTUAL_KEY = 140u16; +pub const VK_NAVIGATION_MENU: VIRTUAL_KEY = 137u16; +pub const VK_NAVIGATION_RIGHT: VIRTUAL_KEY = 141u16; +pub const VK_NAVIGATION_UP: VIRTUAL_KEY = 138u16; +pub const VK_NAVIGATION_VIEW: VIRTUAL_KEY = 136u16; +pub const VK_NEXT: VIRTUAL_KEY = 34u16; +pub const VK_NONAME: VIRTUAL_KEY = 252u16; +pub const VK_NONCONVERT: VIRTUAL_KEY = 29u16; +pub const VK_NUMLOCK: VIRTUAL_KEY = 144u16; +pub const VK_NUMPAD0: VIRTUAL_KEY = 96u16; +pub const VK_NUMPAD1: VIRTUAL_KEY = 97u16; +pub const VK_NUMPAD2: VIRTUAL_KEY = 98u16; +pub const VK_NUMPAD3: VIRTUAL_KEY = 99u16; +pub const VK_NUMPAD4: VIRTUAL_KEY = 100u16; +pub const VK_NUMPAD5: VIRTUAL_KEY = 101u16; +pub const VK_NUMPAD6: VIRTUAL_KEY = 102u16; +pub const VK_NUMPAD7: VIRTUAL_KEY = 103u16; +pub const VK_NUMPAD8: VIRTUAL_KEY = 104u16; +pub const VK_NUMPAD9: VIRTUAL_KEY = 105u16; +pub const VK_O: VIRTUAL_KEY = 79u16; +pub const VK_OEM_1: VIRTUAL_KEY = 186u16; +pub const VK_OEM_102: VIRTUAL_KEY = 226u16; +pub const VK_OEM_2: VIRTUAL_KEY = 191u16; +pub const VK_OEM_3: VIRTUAL_KEY = 192u16; +pub const VK_OEM_4: VIRTUAL_KEY = 219u16; +pub const VK_OEM_5: VIRTUAL_KEY = 220u16; +pub const VK_OEM_6: VIRTUAL_KEY = 221u16; +pub const VK_OEM_7: VIRTUAL_KEY = 222u16; +pub const VK_OEM_8: VIRTUAL_KEY = 223u16; +pub const VK_OEM_ATTN: VIRTUAL_KEY = 240u16; +pub const VK_OEM_AUTO: VIRTUAL_KEY = 243u16; +pub const VK_OEM_AX: VIRTUAL_KEY = 225u16; +pub const VK_OEM_BACKTAB: VIRTUAL_KEY = 245u16; +pub const VK_OEM_CLEAR: VIRTUAL_KEY = 254u16; +pub const VK_OEM_COMMA: VIRTUAL_KEY = 188u16; +pub const VK_OEM_COPY: VIRTUAL_KEY = 242u16; +pub const VK_OEM_CUSEL: VIRTUAL_KEY = 239u16; +pub const VK_OEM_ENLW: VIRTUAL_KEY = 244u16; +pub const VK_OEM_FINISH: VIRTUAL_KEY = 241u16; +pub const VK_OEM_FJ_JISHO: VIRTUAL_KEY = 146u16; +pub const VK_OEM_FJ_LOYA: VIRTUAL_KEY = 149u16; +pub const VK_OEM_FJ_MASSHOU: VIRTUAL_KEY = 147u16; +pub const VK_OEM_FJ_ROYA: VIRTUAL_KEY = 150u16; +pub const VK_OEM_FJ_TOUROKU: VIRTUAL_KEY = 148u16; +pub const VK_OEM_JUMP: VIRTUAL_KEY = 234u16; +pub const VK_OEM_MINUS: VIRTUAL_KEY = 189u16; +pub const VK_OEM_NEC_EQUAL: VIRTUAL_KEY = 146u16; +pub const VK_OEM_PA1: VIRTUAL_KEY = 235u16; +pub const VK_OEM_PA2: VIRTUAL_KEY = 236u16; +pub const VK_OEM_PA3: VIRTUAL_KEY = 237u16; +pub const VK_OEM_PERIOD: VIRTUAL_KEY = 190u16; +pub const VK_OEM_PLUS: VIRTUAL_KEY = 187u16; +pub const VK_OEM_RESET: VIRTUAL_KEY = 233u16; +pub const VK_OEM_WSCTRL: VIRTUAL_KEY = 238u16; +pub const VK_P: VIRTUAL_KEY = 80u16; +pub const VK_PA1: VIRTUAL_KEY = 253u16; +pub const VK_PACKET: VIRTUAL_KEY = 231u16; +pub const VK_PAUSE: VIRTUAL_KEY = 19u16; +pub const VK_PLAY: VIRTUAL_KEY = 250u16; +pub const VK_PRINT: VIRTUAL_KEY = 42u16; +pub const VK_PRIOR: VIRTUAL_KEY = 33u16; +pub const VK_PROCESSKEY: VIRTUAL_KEY = 229u16; +pub const VK_Q: VIRTUAL_KEY = 81u16; +pub const VK_R: VIRTUAL_KEY = 82u16; +pub const VK_RBUTTON: VIRTUAL_KEY = 2u16; +pub const VK_RCONTROL: VIRTUAL_KEY = 163u16; +pub const VK_RETURN: VIRTUAL_KEY = 13u16; +pub const VK_RIGHT: VIRTUAL_KEY = 39u16; +pub const VK_RMENU: VIRTUAL_KEY = 165u16; +pub const VK_RSHIFT: VIRTUAL_KEY = 161u16; +pub const VK_RWIN: VIRTUAL_KEY = 92u16; +pub const VK_S: VIRTUAL_KEY = 83u16; +pub const VK_SCROLL: VIRTUAL_KEY = 145u16; +pub const VK_SELECT: VIRTUAL_KEY = 41u16; +pub const VK_SEPARATOR: VIRTUAL_KEY = 108u16; +pub const VK_SHIFT: VIRTUAL_KEY = 16u16; +pub const VK_SLEEP: VIRTUAL_KEY = 95u16; +pub const VK_SNAPSHOT: VIRTUAL_KEY = 44u16; +pub const VK_SPACE: VIRTUAL_KEY = 32u16; +pub const VK_SUBTRACT: VIRTUAL_KEY = 109u16; +pub const VK_T: VIRTUAL_KEY = 84u16; +pub const VK_TAB: VIRTUAL_KEY = 9u16; +pub const VK_U: VIRTUAL_KEY = 85u16; +pub const VK_UP: VIRTUAL_KEY = 38u16; +pub const VK_V: VIRTUAL_KEY = 86u16; +pub const VK_VOLUME_DOWN: VIRTUAL_KEY = 174u16; +pub const VK_VOLUME_MUTE: VIRTUAL_KEY = 173u16; +pub const VK_VOLUME_UP: VIRTUAL_KEY = 175u16; +pub const VK_W: VIRTUAL_KEY = 87u16; +pub const VK_X: VIRTUAL_KEY = 88u16; +pub const VK_XBUTTON1: VIRTUAL_KEY = 5u16; +pub const VK_XBUTTON2: VIRTUAL_KEY = 6u16; +pub const VK_Y: VIRTUAL_KEY = 89u16; +pub const VK_Z: VIRTUAL_KEY = 90u16; +pub const VK_ZOOM: VIRTUAL_KEY = 251u16; +pub const VK__none_: VIRTUAL_KEY = 255u16; +pub const WCH_DEAD: u32 = 61441u32; +pub const WCH_LGTR: u32 = 61442u32; +pub const WCH_NONE: u32 = 61440u32; +pub const wszACUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{301}"); +pub const wszBREVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{306}"); +pub const wszCEDILLA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{327}"); +pub const wszCIRCUMFLEX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{302}"); +pub const wszDIARESIS_TONOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{385}"); +pub const wszDOT_ABOVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{307}"); +pub const wszDOUBLE_ACUTE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{30b}"); +pub const wszGRAVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{300}"); +pub const wszHACEK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{30c}"); +pub const wszHOOK_ABOVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{309}"); +pub const wszMACRON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{304}"); +pub const wszOGONEK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{328}"); +pub const wszOVERSCORE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{305}"); +pub const wszRING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{30a}"); +pub const wszTILDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{303}"); +pub const wszTONOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{384}"); +pub const wszUMLAUT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\u{308}"); +pub type ACTIVATE_KEYBOARD_LAYOUT_FLAGS = u32; +pub type GET_MOUSE_MOVE_POINTS_EX_RESOLUTION = u32; +pub type HOT_KEY_MODIFIERS = u32; +pub type INPUT_TYPE = u32; +pub type KEYBD_EVENT_FLAGS = u32; +pub type MAP_VIRTUAL_KEY_TYPE = u32; +pub type MOUSE_EVENT_FLAGS = u32; +pub type TRACKMOUSEEVENT_FLAGS = u32; +pub type VIRTUAL_KEY = u16; +#[repr(C)] +pub struct DEADKEY { + pub dwBoth: u32, + pub wchComposed: u16, + pub uFlags: u16, +} +impl ::core::marker::Copy for DEADKEY {} +impl ::core::clone::Clone for DEADKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HARDWAREINPUT { + pub uMsg: u32, + pub wParamL: u16, + pub wParamH: u16, +} +impl ::core::marker::Copy for HARDWAREINPUT {} +impl ::core::clone::Clone for HARDWAREINPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INPUT { + pub r#type: INPUT_TYPE, + pub Anonymous: INPUT_0, +} +impl ::core::marker::Copy for INPUT {} +impl ::core::clone::Clone for INPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union INPUT_0 { + pub mi: MOUSEINPUT, + pub ki: KEYBDINPUT, + pub hi: HARDWAREINPUT, +} +impl ::core::marker::Copy for INPUT_0 {} +impl ::core::clone::Clone for INPUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KBDNLSTABLES { + pub OEMIdentifier: u16, + pub LayoutInformation: u16, + pub NumOfVkToF: u32, + pub pVkToF: *mut VK_F, + pub NumOfMouseVKey: i32, + pub pusMouseVKey: *mut u16, +} +impl ::core::marker::Copy for KBDNLSTABLES {} +impl ::core::clone::Clone for KBDNLSTABLES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KBDTABLES { + pub pCharModifiers: *mut MODIFIERS, + pub pVkToWcharTable: *mut VK_TO_WCHAR_TABLE, + pub pDeadKey: *mut DEADKEY, + pub pKeyNames: *mut VSC_LPWSTR, + pub pKeyNamesExt: *mut VSC_LPWSTR, + pub pKeyNamesDead: *mut *mut u16, + pub pusVSCtoVK: *mut u16, + pub bMaxVSCtoVK: u8, + pub pVSCtoVK_E0: *mut VSC_VK, + pub pVSCtoVK_E1: *mut VSC_VK, + pub fLocaleFlags: u32, + pub nLgMax: u8, + pub cbLgEntry: u8, + pub pLigature: *mut LIGATURE1, + pub dwType: u32, + pub dwSubType: u32, +} +impl ::core::marker::Copy for KBDTABLES {} +impl ::core::clone::Clone for KBDTABLES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KBDTABLE_DESC { + pub wszDllName: [u16; 32], + pub dwType: u32, + pub dwSubType: u32, +} +impl ::core::marker::Copy for KBDTABLE_DESC {} +impl ::core::clone::Clone for KBDTABLE_DESC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KBDTABLE_MULTI { + pub nTables: u32, + pub aKbdTables: [KBDTABLE_DESC; 8], +} +impl ::core::marker::Copy for KBDTABLE_MULTI {} +impl ::core::clone::Clone for KBDTABLE_MULTI { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KBD_TYPE_INFO { + pub dwVersion: u32, + pub dwType: u32, + pub dwSubType: u32, +} +impl ::core::marker::Copy for KBD_TYPE_INFO {} +impl ::core::clone::Clone for KBD_TYPE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KEYBDINPUT { + pub wVk: VIRTUAL_KEY, + pub wScan: u16, + pub dwFlags: KEYBD_EVENT_FLAGS, + pub time: u32, + pub dwExtraInfo: usize, +} +impl ::core::marker::Copy for KEYBDINPUT {} +impl ::core::clone::Clone for KEYBDINPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LASTINPUTINFO { + pub cbSize: u32, + pub dwTime: u32, +} +impl ::core::marker::Copy for LASTINPUTINFO {} +impl ::core::clone::Clone for LASTINPUTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LIGATURE1 { + pub VirtualKey: u8, + pub ModificationNumber: u16, + pub wch: [u16; 1], +} +impl ::core::marker::Copy for LIGATURE1 {} +impl ::core::clone::Clone for LIGATURE1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LIGATURE2 { + pub VirtualKey: u8, + pub ModificationNumber: u16, + pub wch: [u16; 2], +} +impl ::core::marker::Copy for LIGATURE2 {} +impl ::core::clone::Clone for LIGATURE2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LIGATURE3 { + pub VirtualKey: u8, + pub ModificationNumber: u16, + pub wch: [u16; 3], +} +impl ::core::marker::Copy for LIGATURE3 {} +impl ::core::clone::Clone for LIGATURE3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LIGATURE4 { + pub VirtualKey: u8, + pub ModificationNumber: u16, + pub wch: [u16; 4], +} +impl ::core::marker::Copy for LIGATURE4 {} +impl ::core::clone::Clone for LIGATURE4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct LIGATURE5 { + pub VirtualKey: u8, + pub ModificationNumber: u16, + pub wch: [u16; 5], +} +impl ::core::marker::Copy for LIGATURE5 {} +impl ::core::clone::Clone for LIGATURE5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MODIFIERS { + pub pVkToBit: *mut VK_TO_BIT, + pub wMaxModBits: u16, + pub ModNumber: [u8; 1], +} +impl ::core::marker::Copy for MODIFIERS {} +impl ::core::clone::Clone for MODIFIERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MOUSEINPUT { + pub dx: i32, + pub dy: i32, + pub mouseData: u32, + pub dwFlags: MOUSE_EVENT_FLAGS, + pub time: u32, + pub dwExtraInfo: usize, +} +impl ::core::marker::Copy for MOUSEINPUT {} +impl ::core::clone::Clone for MOUSEINPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MOUSEMOVEPOINT { + pub x: i32, + pub y: i32, + pub time: u32, + pub dwExtraInfo: usize, +} +impl ::core::marker::Copy for MOUSEMOVEPOINT {} +impl ::core::clone::Clone for MOUSEMOVEPOINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TRACKMOUSEEVENT { + pub cbSize: u32, + pub dwFlags: TRACKMOUSEEVENT_FLAGS, + pub hwndTrack: super::super::super::Foundation::HWND, + pub dwHoverTime: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TRACKMOUSEEVENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TRACKMOUSEEVENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_F { + pub Vk: u8, + pub NLSFEProcType: u8, + pub NLSFEProcCurrent: u8, + pub NLSFEProcSwitch: u8, + pub NLSFEProc: [VK_FPARAM; 8], + pub NLSFEProcAlt: [VK_FPARAM; 8], +} +impl ::core::marker::Copy for VK_F {} +impl ::core::clone::Clone for VK_F { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_FPARAM { + pub NLSFEProcIndex: u8, + pub NLSFEProcParam: u32, +} +impl ::core::marker::Copy for VK_FPARAM {} +impl ::core::clone::Clone for VK_FPARAM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_TO_BIT { + pub Vk: u8, + pub ModBits: u8, +} +impl ::core::marker::Copy for VK_TO_BIT {} +impl ::core::clone::Clone for VK_TO_BIT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_TO_WCHARS1 { + pub VirtualKey: u8, + pub Attributes: u8, + pub wch: [u16; 1], +} +impl ::core::marker::Copy for VK_TO_WCHARS1 {} +impl ::core::clone::Clone for VK_TO_WCHARS1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_TO_WCHARS10 { + pub VirtualKey: u8, + pub Attributes: u8, + pub wch: [u16; 10], +} +impl ::core::marker::Copy for VK_TO_WCHARS10 {} +impl ::core::clone::Clone for VK_TO_WCHARS10 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_TO_WCHARS2 { + pub VirtualKey: u8, + pub Attributes: u8, + pub wch: [u16; 2], +} +impl ::core::marker::Copy for VK_TO_WCHARS2 {} +impl ::core::clone::Clone for VK_TO_WCHARS2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_TO_WCHARS3 { + pub VirtualKey: u8, + pub Attributes: u8, + pub wch: [u16; 3], +} +impl ::core::marker::Copy for VK_TO_WCHARS3 {} +impl ::core::clone::Clone for VK_TO_WCHARS3 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_TO_WCHARS4 { + pub VirtualKey: u8, + pub Attributes: u8, + pub wch: [u16; 4], +} +impl ::core::marker::Copy for VK_TO_WCHARS4 {} +impl ::core::clone::Clone for VK_TO_WCHARS4 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_TO_WCHARS5 { + pub VirtualKey: u8, + pub Attributes: u8, + pub wch: [u16; 5], +} +impl ::core::marker::Copy for VK_TO_WCHARS5 {} +impl ::core::clone::Clone for VK_TO_WCHARS5 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_TO_WCHARS6 { + pub VirtualKey: u8, + pub Attributes: u8, + pub wch: [u16; 6], +} +impl ::core::marker::Copy for VK_TO_WCHARS6 {} +impl ::core::clone::Clone for VK_TO_WCHARS6 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_TO_WCHARS7 { + pub VirtualKey: u8, + pub Attributes: u8, + pub wch: [u16; 7], +} +impl ::core::marker::Copy for VK_TO_WCHARS7 {} +impl ::core::clone::Clone for VK_TO_WCHARS7 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_TO_WCHARS8 { + pub VirtualKey: u8, + pub Attributes: u8, + pub wch: [u16; 8], +} +impl ::core::marker::Copy for VK_TO_WCHARS8 {} +impl ::core::clone::Clone for VK_TO_WCHARS8 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_TO_WCHARS9 { + pub VirtualKey: u8, + pub Attributes: u8, + pub wch: [u16; 9], +} +impl ::core::marker::Copy for VK_TO_WCHARS9 {} +impl ::core::clone::Clone for VK_TO_WCHARS9 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_TO_WCHAR_TABLE { + pub pVkToWchars: *mut VK_TO_WCHARS1, + pub nModifications: u8, + pub cbSize: u8, +} +impl ::core::marker::Copy for VK_TO_WCHAR_TABLE {} +impl ::core::clone::Clone for VK_TO_WCHAR_TABLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VK_VSC { + pub Vk: u8, + pub Vsc: u8, +} +impl ::core::marker::Copy for VK_VSC {} +impl ::core::clone::Clone for VK_VSC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VSC_LPWSTR { + pub vsc: u8, + pub pwsz: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for VSC_LPWSTR {} +impl ::core::clone::Clone for VSC_LPWSTR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VSC_VK { + pub Vsc: u8, + pub Vk: u16, +} +impl ::core::marker::Copy for VSC_VK {} +impl ::core::clone::Clone for VSC_VK { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/Pointer/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/Pointer/mod.rs new file mode 100644 index 000000000..6d92e6cb5 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/Pointer/mod.rs @@ -0,0 +1,219 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableMouseInPointer(fenable : super::super::super::Foundation:: BOOL) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPointerCursorId(pointerid : u32, cursorid : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`"] fn GetPointerDevice(device : super::super::super::Foundation:: HANDLE, pointerdevice : *mut super::super::Controls:: POINTER_DEVICE_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn GetPointerDeviceCursors(device : super::super::super::Foundation:: HANDLE, cursorcount : *mut u32, devicecursors : *mut super::super::Controls:: POINTER_DEVICE_CURSOR_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn GetPointerDeviceProperties(device : super::super::super::Foundation:: HANDLE, propertycount : *mut u32, pointerproperties : *mut super::super::Controls:: POINTER_DEVICE_PROPERTY) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPointerDeviceRects(device : super::super::super::Foundation:: HANDLE, pointerdevicerect : *mut super::super::super::Foundation:: RECT, displayrect : *mut super::super::super::Foundation:: RECT) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`"] fn GetPointerDevices(devicecount : *mut u32, pointerdevices : *mut super::super::Controls:: POINTER_DEVICE_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerFrameInfo(pointerid : u32, pointercount : *mut u32, pointerinfo : *mut POINTER_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerFrameInfoHistory(pointerid : u32, entriescount : *mut u32, pointercount : *mut u32, pointerinfo : *mut POINTER_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerFramePenInfo(pointerid : u32, pointercount : *mut u32, peninfo : *mut POINTER_PEN_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerFramePenInfoHistory(pointerid : u32, entriescount : *mut u32, pointercount : *mut u32, peninfo : *mut POINTER_PEN_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerFrameTouchInfo(pointerid : u32, pointercount : *mut u32, touchinfo : *mut POINTER_TOUCH_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerFrameTouchInfoHistory(pointerid : u32, entriescount : *mut u32, pointercount : *mut u32, touchinfo : *mut POINTER_TOUCH_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerInfo(pointerid : u32, pointerinfo : *mut POINTER_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerInfoHistory(pointerid : u32, entriescount : *mut u32, pointerinfo : *mut POINTER_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPointerInputTransform(pointerid : u32, historycount : u32, inputtransform : *mut INPUT_TRANSFORM) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerPenInfo(pointerid : u32, peninfo : *mut POINTER_PEN_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerPenInfoHistory(pointerid : u32, entriescount : *mut u32, peninfo : *mut POINTER_PEN_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerTouchInfo(pointerid : u32, touchinfo : *mut POINTER_TOUCH_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerTouchInfoHistory(pointerid : u32, entriescount : *mut u32, touchinfo : *mut POINTER_TOUCH_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetPointerType(pointerid : u32, pointertype : *mut super::super::WindowsAndMessaging:: POINTER_INPUT_TYPE) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn GetRawPointerDeviceData(pointerid : u32, historycount : u32, propertiescount : u32, pproperties : *const super::super::Controls:: POINTER_DEVICE_PROPERTY, pvalues : *mut i32) -> super::super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn GetUnpredictedMessagePos() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitializeTouchInjection(maxcount : u32, dwmode : TOUCH_FEEDBACK_MODE) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn InjectSyntheticPointerInput(device : super::super::Controls:: HSYNTHETICPOINTERDEVICE, pointerinfo : *const super::super::Controls:: POINTER_TYPE_INFO, count : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn InjectTouchInput(count : u32, contacts : *const POINTER_TOUCH_INFO) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsMouseInPointerEnabled() -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SkipPointerFrameMessages(pointerid : u32) -> super::super::super::Foundation:: BOOL); +pub const POINTER_CHANGE_FIFTHBUTTON_DOWN: POINTER_BUTTON_CHANGE_TYPE = 9i32; +pub const POINTER_CHANGE_FIFTHBUTTON_UP: POINTER_BUTTON_CHANGE_TYPE = 10i32; +pub const POINTER_CHANGE_FIRSTBUTTON_DOWN: POINTER_BUTTON_CHANGE_TYPE = 1i32; +pub const POINTER_CHANGE_FIRSTBUTTON_UP: POINTER_BUTTON_CHANGE_TYPE = 2i32; +pub const POINTER_CHANGE_FOURTHBUTTON_DOWN: POINTER_BUTTON_CHANGE_TYPE = 7i32; +pub const POINTER_CHANGE_FOURTHBUTTON_UP: POINTER_BUTTON_CHANGE_TYPE = 8i32; +pub const POINTER_CHANGE_NONE: POINTER_BUTTON_CHANGE_TYPE = 0i32; +pub const POINTER_CHANGE_SECONDBUTTON_DOWN: POINTER_BUTTON_CHANGE_TYPE = 3i32; +pub const POINTER_CHANGE_SECONDBUTTON_UP: POINTER_BUTTON_CHANGE_TYPE = 4i32; +pub const POINTER_CHANGE_THIRDBUTTON_DOWN: POINTER_BUTTON_CHANGE_TYPE = 5i32; +pub const POINTER_CHANGE_THIRDBUTTON_UP: POINTER_BUTTON_CHANGE_TYPE = 6i32; +pub const POINTER_FLAG_CANCELED: POINTER_FLAGS = 32768u32; +pub const POINTER_FLAG_CAPTURECHANGED: POINTER_FLAGS = 2097152u32; +pub const POINTER_FLAG_CONFIDENCE: POINTER_FLAGS = 16384u32; +pub const POINTER_FLAG_DOWN: POINTER_FLAGS = 65536u32; +pub const POINTER_FLAG_FIFTHBUTTON: POINTER_FLAGS = 256u32; +pub const POINTER_FLAG_FIRSTBUTTON: POINTER_FLAGS = 16u32; +pub const POINTER_FLAG_FOURTHBUTTON: POINTER_FLAGS = 128u32; +pub const POINTER_FLAG_HASTRANSFORM: POINTER_FLAGS = 4194304u32; +pub const POINTER_FLAG_HWHEEL: POINTER_FLAGS = 1048576u32; +pub const POINTER_FLAG_INCONTACT: POINTER_FLAGS = 4u32; +pub const POINTER_FLAG_INRANGE: POINTER_FLAGS = 2u32; +pub const POINTER_FLAG_NEW: POINTER_FLAGS = 1u32; +pub const POINTER_FLAG_NONE: POINTER_FLAGS = 0u32; +pub const POINTER_FLAG_PRIMARY: POINTER_FLAGS = 8192u32; +pub const POINTER_FLAG_SECONDBUTTON: POINTER_FLAGS = 32u32; +pub const POINTER_FLAG_THIRDBUTTON: POINTER_FLAGS = 64u32; +pub const POINTER_FLAG_UP: POINTER_FLAGS = 262144u32; +pub const POINTER_FLAG_UPDATE: POINTER_FLAGS = 131072u32; +pub const POINTER_FLAG_WHEEL: POINTER_FLAGS = 524288u32; +pub const TOUCH_FEEDBACK_DEFAULT: TOUCH_FEEDBACK_MODE = 1u32; +pub const TOUCH_FEEDBACK_INDIRECT: TOUCH_FEEDBACK_MODE = 2u32; +pub const TOUCH_FEEDBACK_NONE: TOUCH_FEEDBACK_MODE = 3u32; +pub type POINTER_BUTTON_CHANGE_TYPE = i32; +pub type POINTER_FLAGS = u32; +pub type TOUCH_FEEDBACK_MODE = u32; +#[repr(C)] +pub struct INPUT_INJECTION_VALUE { + pub page: u16, + pub usage: u16, + pub value: i32, + pub index: u16, +} +impl ::core::marker::Copy for INPUT_INJECTION_VALUE {} +impl ::core::clone::Clone for INPUT_INJECTION_VALUE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INPUT_TRANSFORM { + pub Anonymous: INPUT_TRANSFORM_0, +} +impl ::core::marker::Copy for INPUT_TRANSFORM {} +impl ::core::clone::Clone for INPUT_TRANSFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union INPUT_TRANSFORM_0 { + pub Anonymous: INPUT_TRANSFORM_0_0, + pub m: [f32; 16], +} +impl ::core::marker::Copy for INPUT_TRANSFORM_0 {} +impl ::core::clone::Clone for INPUT_TRANSFORM_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INPUT_TRANSFORM_0_0 { + pub _11: f32, + pub _12: f32, + pub _13: f32, + pub _14: f32, + pub _21: f32, + pub _22: f32, + pub _23: f32, + pub _24: f32, + pub _31: f32, + pub _32: f32, + pub _33: f32, + pub _34: f32, + pub _41: f32, + pub _42: f32, + pub _43: f32, + pub _44: f32, +} +impl ::core::marker::Copy for INPUT_TRANSFORM_0_0 {} +impl ::core::clone::Clone for INPUT_TRANSFORM_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct POINTER_INFO { + pub pointerType: super::super::WindowsAndMessaging::POINTER_INPUT_TYPE, + pub pointerId: u32, + pub frameId: u32, + pub pointerFlags: POINTER_FLAGS, + pub sourceDevice: super::super::super::Foundation::HANDLE, + pub hwndTarget: super::super::super::Foundation::HWND, + pub ptPixelLocation: super::super::super::Foundation::POINT, + pub ptHimetricLocation: super::super::super::Foundation::POINT, + pub ptPixelLocationRaw: super::super::super::Foundation::POINT, + pub ptHimetricLocationRaw: super::super::super::Foundation::POINT, + pub dwTime: u32, + pub historyCount: u32, + pub InputData: i32, + pub dwKeyStates: u32, + pub PerformanceCount: u64, + pub ButtonChangeType: POINTER_BUTTON_CHANGE_TYPE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for POINTER_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for POINTER_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct POINTER_PEN_INFO { + pub pointerInfo: POINTER_INFO, + pub penFlags: u32, + pub penMask: u32, + pub pressure: u32, + pub rotation: u32, + pub tiltX: i32, + pub tiltY: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for POINTER_PEN_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for POINTER_PEN_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct POINTER_TOUCH_INFO { + pub pointerInfo: POINTER_INFO, + pub touchFlags: u32, + pub touchMask: u32, + pub rcContact: super::super::super::Foundation::RECT, + pub rcContactRaw: super::super::super::Foundation::RECT, + pub orientation: u32, + pub pressure: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for POINTER_TOUCH_INFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for POINTER_TOUCH_INFO { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/Touch/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/Touch/mod.rs new file mode 100644 index 000000000..5e742ae8f --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/Touch/mod.rs @@ -0,0 +1,134 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseGestureInfoHandle(hgestureinfo : HGESTUREINFO) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseTouchInputHandle(htouchinput : HTOUCHINPUT) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetGestureConfig(hwnd : super::super::super::Foundation:: HWND, dwreserved : u32, dwflags : u32, pcids : *const u32, pgestureconfig : *mut GESTURECONFIG, cbsize : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetGestureExtraArgs(hgestureinfo : HGESTUREINFO, cbextraargs : u32, pextraargs : *mut u8) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetGestureInfo(hgestureinfo : HGESTUREINFO, pgestureinfo : *mut GESTUREINFO) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTouchInputInfo(htouchinput : HTOUCHINPUT, cinputs : u32, pinputs : *mut TOUCHINPUT, cbsize : i32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsTouchWindow(hwnd : super::super::super::Foundation:: HWND, pulflags : *mut u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterTouchWindow(hwnd : super::super::super::Foundation:: HWND, ulflags : REGISTER_TOUCH_WINDOW_FLAGS) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetGestureConfig(hwnd : super::super::super::Foundation:: HWND, dwreserved : u32, cids : u32, pgestureconfig : *const GESTURECONFIG, cbsize : u32) -> super::super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterTouchWindow(hwnd : super::super::super::Foundation:: HWND) -> super::super::super::Foundation:: BOOL); +pub type IInertiaProcessor = *mut ::core::ffi::c_void; +pub type IManipulationProcessor = *mut ::core::ffi::c_void; +pub type _IManipulationEvents = *mut ::core::ffi::c_void; +pub const GID_BEGIN: GESTURECONFIG_ID = 1u32; +pub const GID_END: GESTURECONFIG_ID = 2u32; +pub const GID_PAN: GESTURECONFIG_ID = 4u32; +pub const GID_PRESSANDTAP: GESTURECONFIG_ID = 7u32; +pub const GID_ROLLOVER: GESTURECONFIG_ID = 7u32; +pub const GID_ROTATE: GESTURECONFIG_ID = 5u32; +pub const GID_TWOFINGERTAP: GESTURECONFIG_ID = 6u32; +pub const GID_ZOOM: GESTURECONFIG_ID = 3u32; +pub const InertiaProcessor: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xabb27087_4ce0_4e58_a0cb_e24df96814be); +pub const MANIPULATION_ALL: MANIPULATION_PROCESSOR_MANIPULATIONS = 15i32; +pub const MANIPULATION_NONE: MANIPULATION_PROCESSOR_MANIPULATIONS = 0i32; +pub const MANIPULATION_ROTATE: MANIPULATION_PROCESSOR_MANIPULATIONS = 8i32; +pub const MANIPULATION_SCALE: MANIPULATION_PROCESSOR_MANIPULATIONS = 4i32; +pub const MANIPULATION_TRANSLATE_X: MANIPULATION_PROCESSOR_MANIPULATIONS = 1i32; +pub const MANIPULATION_TRANSLATE_Y: MANIPULATION_PROCESSOR_MANIPULATIONS = 2i32; +pub const ManipulationProcessor: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x597d4fb0_47fd_4aff_89b9_c6cfae8cf08e); +pub const TOUCHEVENTF_DOWN: TOUCHEVENTF_FLAGS = 2u32; +pub const TOUCHEVENTF_INRANGE: TOUCHEVENTF_FLAGS = 8u32; +pub const TOUCHEVENTF_MOVE: TOUCHEVENTF_FLAGS = 1u32; +pub const TOUCHEVENTF_NOCOALESCE: TOUCHEVENTF_FLAGS = 32u32; +pub const TOUCHEVENTF_PALM: TOUCHEVENTF_FLAGS = 128u32; +pub const TOUCHEVENTF_PEN: TOUCHEVENTF_FLAGS = 64u32; +pub const TOUCHEVENTF_PRIMARY: TOUCHEVENTF_FLAGS = 16u32; +pub const TOUCHEVENTF_UP: TOUCHEVENTF_FLAGS = 4u32; +pub const TOUCHINPUTMASKF_CONTACTAREA: TOUCHINPUTMASKF_MASK = 4u32; +pub const TOUCHINPUTMASKF_EXTRAINFO: TOUCHINPUTMASKF_MASK = 2u32; +pub const TOUCHINPUTMASKF_TIMEFROMSYSTEM: TOUCHINPUTMASKF_MASK = 1u32; +pub const TWF_FINETOUCH: REGISTER_TOUCH_WINDOW_FLAGS = 1u32; +pub const TWF_WANTPALM: REGISTER_TOUCH_WINDOW_FLAGS = 2u32; +pub type GESTURECONFIG_ID = u32; +pub type MANIPULATION_PROCESSOR_MANIPULATIONS = i32; +pub type REGISTER_TOUCH_WINDOW_FLAGS = u32; +pub type TOUCHEVENTF_FLAGS = u32; +pub type TOUCHINPUTMASKF_MASK = u32; +#[repr(C)] +pub struct GESTURECONFIG { + pub dwID: GESTURECONFIG_ID, + pub dwWant: u32, + pub dwBlock: u32, +} +impl ::core::marker::Copy for GESTURECONFIG {} +impl ::core::clone::Clone for GESTURECONFIG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GESTUREINFO { + pub cbSize: u32, + pub dwFlags: u32, + pub dwID: u32, + pub hwndTarget: super::super::super::Foundation::HWND, + pub ptsLocation: super::super::super::Foundation::POINTS, + pub dwInstanceID: u32, + pub dwSequenceID: u32, + pub ullArguments: u64, + pub cbExtraArgs: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GESTUREINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GESTUREINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GESTURENOTIFYSTRUCT { + pub cbSize: u32, + pub dwFlags: u32, + pub hwndTarget: super::super::super::Foundation::HWND, + pub ptsLocation: super::super::super::Foundation::POINTS, + pub dwInstanceID: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GESTURENOTIFYSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GESTURENOTIFYSTRUCT { + fn clone(&self) -> Self { + *self + } +} +pub type HGESTUREINFO = isize; +pub type HTOUCHINPUT = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TOUCHINPUT { + pub x: i32, + pub y: i32, + pub hSource: super::super::super::Foundation::HANDLE, + pub dwID: u32, + pub dwFlags: TOUCHEVENTF_FLAGS, + pub dwMask: TOUCHINPUTMASKF_MASK, + pub dwTime: u32, + pub dwExtraInfo: usize, + pub cxContact: u32, + pub cyContact: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TOUCHINPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TOUCHINPUT { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/XboxController/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/XboxController/mod.rs new file mode 100644 index 000000000..ff871f92e --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/XboxController/mod.rs @@ -0,0 +1,182 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("xinput1_4.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn XInputEnable(enable : super::super::super::Foundation:: BOOL) -> ()); +::windows_targets::link!("xinput1_4.dll" "system" fn XInputGetAudioDeviceIds(dwuserindex : u32, prenderdeviceid : ::windows_sys::core::PWSTR, prendercount : *mut u32, pcapturedeviceid : ::windows_sys::core::PWSTR, pcapturecount : *mut u32) -> u32); +::windows_targets::link!("xinput1_4.dll" "system" fn XInputGetBatteryInformation(dwuserindex : u32, devtype : BATTERY_DEVTYPE, pbatteryinformation : *mut XINPUT_BATTERY_INFORMATION) -> u32); +::windows_targets::link!("xinput1_4.dll" "system" fn XInputGetCapabilities(dwuserindex : u32, dwflags : XINPUT_FLAG, pcapabilities : *mut XINPUT_CAPABILITIES) -> u32); +::windows_targets::link!("xinput1_4.dll" "system" fn XInputGetKeystroke(dwuserindex : u32, dwreserved : u32, pkeystroke : *mut XINPUT_KEYSTROKE) -> u32); +::windows_targets::link!("xinput1_4.dll" "system" fn XInputGetState(dwuserindex : u32, pstate : *mut XINPUT_STATE) -> u32); +::windows_targets::link!("xinput1_4.dll" "system" fn XInputSetState(dwuserindex : u32, pvibration : *const XINPUT_VIBRATION) -> u32); +pub const BATTERY_DEVTYPE_GAMEPAD: BATTERY_DEVTYPE = 0u8; +pub const BATTERY_DEVTYPE_HEADSET: BATTERY_DEVTYPE = 1u8; +pub const BATTERY_LEVEL_EMPTY: BATTERY_LEVEL = 0u8; +pub const BATTERY_LEVEL_FULL: BATTERY_LEVEL = 3u8; +pub const BATTERY_LEVEL_LOW: BATTERY_LEVEL = 1u8; +pub const BATTERY_LEVEL_MEDIUM: BATTERY_LEVEL = 2u8; +pub const BATTERY_TYPE_ALKALINE: BATTERY_TYPE = 2u8; +pub const BATTERY_TYPE_DISCONNECTED: BATTERY_TYPE = 0u8; +pub const BATTERY_TYPE_NIMH: BATTERY_TYPE = 3u8; +pub const BATTERY_TYPE_UNKNOWN: BATTERY_TYPE = 255u8; +pub const BATTERY_TYPE_WIRED: BATTERY_TYPE = 1u8; +pub const VK_PAD_A: XINPUT_VIRTUAL_KEY = 22528u16; +pub const VK_PAD_B: XINPUT_VIRTUAL_KEY = 22529u16; +pub const VK_PAD_BACK: XINPUT_VIRTUAL_KEY = 22549u16; +pub const VK_PAD_DPAD_DOWN: XINPUT_VIRTUAL_KEY = 22545u16; +pub const VK_PAD_DPAD_LEFT: XINPUT_VIRTUAL_KEY = 22546u16; +pub const VK_PAD_DPAD_RIGHT: XINPUT_VIRTUAL_KEY = 22547u16; +pub const VK_PAD_DPAD_UP: XINPUT_VIRTUAL_KEY = 22544u16; +pub const VK_PAD_LSHOULDER: XINPUT_VIRTUAL_KEY = 22533u16; +pub const VK_PAD_LTHUMB_DOWN: XINPUT_VIRTUAL_KEY = 22561u16; +pub const VK_PAD_LTHUMB_DOWNLEFT: XINPUT_VIRTUAL_KEY = 22567u16; +pub const VK_PAD_LTHUMB_DOWNRIGHT: XINPUT_VIRTUAL_KEY = 22566u16; +pub const VK_PAD_LTHUMB_LEFT: XINPUT_VIRTUAL_KEY = 22563u16; +pub const VK_PAD_LTHUMB_PRESS: XINPUT_VIRTUAL_KEY = 22550u16; +pub const VK_PAD_LTHUMB_RIGHT: XINPUT_VIRTUAL_KEY = 22562u16; +pub const VK_PAD_LTHUMB_UP: XINPUT_VIRTUAL_KEY = 22560u16; +pub const VK_PAD_LTHUMB_UPLEFT: XINPUT_VIRTUAL_KEY = 22564u16; +pub const VK_PAD_LTHUMB_UPRIGHT: XINPUT_VIRTUAL_KEY = 22565u16; +pub const VK_PAD_LTRIGGER: XINPUT_VIRTUAL_KEY = 22534u16; +pub const VK_PAD_RSHOULDER: XINPUT_VIRTUAL_KEY = 22532u16; +pub const VK_PAD_RTHUMB_DOWN: XINPUT_VIRTUAL_KEY = 22577u16; +pub const VK_PAD_RTHUMB_DOWNLEFT: XINPUT_VIRTUAL_KEY = 22583u16; +pub const VK_PAD_RTHUMB_DOWNRIGHT: XINPUT_VIRTUAL_KEY = 22582u16; +pub const VK_PAD_RTHUMB_LEFT: XINPUT_VIRTUAL_KEY = 22579u16; +pub const VK_PAD_RTHUMB_PRESS: XINPUT_VIRTUAL_KEY = 22551u16; +pub const VK_PAD_RTHUMB_RIGHT: XINPUT_VIRTUAL_KEY = 22578u16; +pub const VK_PAD_RTHUMB_UP: XINPUT_VIRTUAL_KEY = 22576u16; +pub const VK_PAD_RTHUMB_UPLEFT: XINPUT_VIRTUAL_KEY = 22580u16; +pub const VK_PAD_RTHUMB_UPRIGHT: XINPUT_VIRTUAL_KEY = 22581u16; +pub const VK_PAD_RTRIGGER: XINPUT_VIRTUAL_KEY = 22535u16; +pub const VK_PAD_START: XINPUT_VIRTUAL_KEY = 22548u16; +pub const VK_PAD_X: XINPUT_VIRTUAL_KEY = 22530u16; +pub const VK_PAD_Y: XINPUT_VIRTUAL_KEY = 22531u16; +pub const XINPUT_CAPS_FFB_SUPPORTED: XINPUT_CAPABILITIES_FLAGS = 1u16; +pub const XINPUT_CAPS_NO_NAVIGATION: XINPUT_CAPABILITIES_FLAGS = 16u16; +pub const XINPUT_CAPS_PMD_SUPPORTED: XINPUT_CAPABILITIES_FLAGS = 8u16; +pub const XINPUT_CAPS_VOICE_SUPPORTED: XINPUT_CAPABILITIES_FLAGS = 4u16; +pub const XINPUT_CAPS_WIRELESS: XINPUT_CAPABILITIES_FLAGS = 2u16; +pub const XINPUT_DEVSUBTYPE_ARCADE_PAD: XINPUT_DEVSUBTYPE = 19u8; +pub const XINPUT_DEVSUBTYPE_ARCADE_STICK: XINPUT_DEVSUBTYPE = 3u8; +pub const XINPUT_DEVSUBTYPE_DANCE_PAD: XINPUT_DEVSUBTYPE = 5u8; +pub const XINPUT_DEVSUBTYPE_DRUM_KIT: XINPUT_DEVSUBTYPE = 8u8; +pub const XINPUT_DEVSUBTYPE_FLIGHT_STICK: XINPUT_DEVSUBTYPE = 4u8; +pub const XINPUT_DEVSUBTYPE_GAMEPAD: XINPUT_DEVSUBTYPE = 1u8; +pub const XINPUT_DEVSUBTYPE_GUITAR: XINPUT_DEVSUBTYPE = 6u8; +pub const XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE: XINPUT_DEVSUBTYPE = 7u8; +pub const XINPUT_DEVSUBTYPE_GUITAR_BASS: XINPUT_DEVSUBTYPE = 11u8; +pub const XINPUT_DEVSUBTYPE_UNKNOWN: XINPUT_DEVSUBTYPE = 0u8; +pub const XINPUT_DEVSUBTYPE_WHEEL: XINPUT_DEVSUBTYPE = 2u8; +pub const XINPUT_DEVTYPE_GAMEPAD: XINPUT_DEVTYPE = 1u8; +pub const XINPUT_DLL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("xinput1_4.dll"); +pub const XINPUT_DLL_A: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("xinput1_4.dll"); +pub const XINPUT_DLL_W: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("xinput1_4.dll"); +pub const XINPUT_FLAG_ALL: XINPUT_FLAG = 0u32; +pub const XINPUT_FLAG_GAMEPAD: XINPUT_FLAG = 1u32; +pub const XINPUT_GAMEPAD_A: XINPUT_GAMEPAD_BUTTON_FLAGS = 4096u16; +pub const XINPUT_GAMEPAD_B: XINPUT_GAMEPAD_BUTTON_FLAGS = 8192u16; +pub const XINPUT_GAMEPAD_BACK: XINPUT_GAMEPAD_BUTTON_FLAGS = 32u16; +pub const XINPUT_GAMEPAD_DPAD_DOWN: XINPUT_GAMEPAD_BUTTON_FLAGS = 2u16; +pub const XINPUT_GAMEPAD_DPAD_LEFT: XINPUT_GAMEPAD_BUTTON_FLAGS = 4u16; +pub const XINPUT_GAMEPAD_DPAD_RIGHT: XINPUT_GAMEPAD_BUTTON_FLAGS = 8u16; +pub const XINPUT_GAMEPAD_DPAD_UP: XINPUT_GAMEPAD_BUTTON_FLAGS = 1u16; +pub const XINPUT_GAMEPAD_LEFT_SHOULDER: XINPUT_GAMEPAD_BUTTON_FLAGS = 256u16; +pub const XINPUT_GAMEPAD_LEFT_THUMB: XINPUT_GAMEPAD_BUTTON_FLAGS = 64u16; +pub const XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE: XINPUT_GAMEPAD_BUTTON_FLAGS = 7849u16; +pub const XINPUT_GAMEPAD_RIGHT_SHOULDER: XINPUT_GAMEPAD_BUTTON_FLAGS = 512u16; +pub const XINPUT_GAMEPAD_RIGHT_THUMB: XINPUT_GAMEPAD_BUTTON_FLAGS = 128u16; +pub const XINPUT_GAMEPAD_RIGHT_THUMB_DEADZONE: XINPUT_GAMEPAD_BUTTON_FLAGS = 8689u16; +pub const XINPUT_GAMEPAD_START: XINPUT_GAMEPAD_BUTTON_FLAGS = 16u16; +pub const XINPUT_GAMEPAD_TRIGGER_THRESHOLD: XINPUT_GAMEPAD_BUTTON_FLAGS = 30u16; +pub const XINPUT_GAMEPAD_X: XINPUT_GAMEPAD_BUTTON_FLAGS = 16384u16; +pub const XINPUT_GAMEPAD_Y: XINPUT_GAMEPAD_BUTTON_FLAGS = 32768u16; +pub const XINPUT_KEYSTROKE_KEYDOWN: XINPUT_KEYSTROKE_FLAGS = 1u16; +pub const XINPUT_KEYSTROKE_KEYUP: XINPUT_KEYSTROKE_FLAGS = 2u16; +pub const XINPUT_KEYSTROKE_REPEAT: XINPUT_KEYSTROKE_FLAGS = 4u16; +pub const XUSER_INDEX_ANY: u32 = 255u32; +pub const XUSER_MAX_COUNT: u32 = 4u32; +pub type BATTERY_DEVTYPE = u8; +pub type BATTERY_LEVEL = u8; +pub type BATTERY_TYPE = u8; +pub type XINPUT_CAPABILITIES_FLAGS = u16; +pub type XINPUT_DEVSUBTYPE = u8; +pub type XINPUT_DEVTYPE = u8; +pub type XINPUT_FLAG = u32; +pub type XINPUT_GAMEPAD_BUTTON_FLAGS = u16; +pub type XINPUT_KEYSTROKE_FLAGS = u16; +pub type XINPUT_VIRTUAL_KEY = u16; +#[repr(C)] +pub struct XINPUT_BATTERY_INFORMATION { + pub BatteryType: BATTERY_TYPE, + pub BatteryLevel: BATTERY_LEVEL, +} +impl ::core::marker::Copy for XINPUT_BATTERY_INFORMATION {} +impl ::core::clone::Clone for XINPUT_BATTERY_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XINPUT_CAPABILITIES { + pub Type: XINPUT_DEVTYPE, + pub SubType: XINPUT_DEVSUBTYPE, + pub Flags: XINPUT_CAPABILITIES_FLAGS, + pub Gamepad: XINPUT_GAMEPAD, + pub Vibration: XINPUT_VIBRATION, +} +impl ::core::marker::Copy for XINPUT_CAPABILITIES {} +impl ::core::clone::Clone for XINPUT_CAPABILITIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XINPUT_GAMEPAD { + pub wButtons: XINPUT_GAMEPAD_BUTTON_FLAGS, + pub bLeftTrigger: u8, + pub bRightTrigger: u8, + pub sThumbLX: i16, + pub sThumbLY: i16, + pub sThumbRX: i16, + pub sThumbRY: i16, +} +impl ::core::marker::Copy for XINPUT_GAMEPAD {} +impl ::core::clone::Clone for XINPUT_GAMEPAD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XINPUT_KEYSTROKE { + pub VirtualKey: XINPUT_VIRTUAL_KEY, + pub Unicode: u16, + pub Flags: XINPUT_KEYSTROKE_FLAGS, + pub UserIndex: u8, + pub HidCode: u8, +} +impl ::core::marker::Copy for XINPUT_KEYSTROKE {} +impl ::core::clone::Clone for XINPUT_KEYSTROKE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XINPUT_STATE { + pub dwPacketNumber: u32, + pub Gamepad: XINPUT_GAMEPAD, +} +impl ::core::marker::Copy for XINPUT_STATE {} +impl ::core::clone::Clone for XINPUT_STATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct XINPUT_VIBRATION { + pub wLeftMotorSpeed: u16, + pub wRightMotorSpeed: u16, +} +impl ::core::marker::Copy for XINPUT_VIBRATION {} +impl ::core::clone::Clone for XINPUT_VIBRATION { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/mod.rs new file mode 100644 index 000000000..c4eec831b --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Input/mod.rs @@ -0,0 +1,302 @@ +#[cfg(feature = "Win32_UI_Input_Ime")] +#[doc = "Required features: `\"Win32_UI_Input_Ime\"`"] +pub mod Ime; +#[cfg(feature = "Win32_UI_Input_KeyboardAndMouse")] +#[doc = "Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`"] +pub mod KeyboardAndMouse; +#[cfg(feature = "Win32_UI_Input_Pointer")] +#[doc = "Required features: `\"Win32_UI_Input_Pointer\"`"] +pub mod Pointer; +#[cfg(feature = "Win32_UI_Input_Touch")] +#[doc = "Required features: `\"Win32_UI_Input_Touch\"`"] +pub mod Touch; +#[cfg(feature = "Win32_UI_Input_XboxController")] +#[doc = "Required features: `\"Win32_UI_Input_XboxController\"`"] +pub mod XboxController; +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefRawInputProc(parawinput : *const *const RAWINPUT, ninput : i32, cbsizeheader : u32) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCIMSSM(inputmessagesource : *mut INPUT_MESSAGE_SOURCE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCurrentInputMessageSource(inputmessagesource : *mut INPUT_MESSAGE_SOURCE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRawInputBuffer(pdata : *mut RAWINPUT, pcbsize : *mut u32, cbsizeheader : u32) -> u32); +::windows_targets::link!("user32.dll" "system" fn GetRawInputData(hrawinput : HRAWINPUT, uicommand : RAW_INPUT_DATA_COMMAND_FLAGS, pdata : *mut ::core::ffi::c_void, pcbsize : *mut u32, cbsizeheader : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRawInputDeviceInfoA(hdevice : super::super::Foundation:: HANDLE, uicommand : RAW_INPUT_DEVICE_INFO_COMMAND, pdata : *mut ::core::ffi::c_void, pcbsize : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRawInputDeviceInfoW(hdevice : super::super::Foundation:: HANDLE, uicommand : RAW_INPUT_DEVICE_INFO_COMMAND, pdata : *mut ::core::ffi::c_void, pcbsize : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRawInputDeviceList(prawinputdevicelist : *mut RAWINPUTDEVICELIST, puinumdevices : *mut u32, cbsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetRegisteredRawInputDevices(prawinputdevices : *mut RAWINPUTDEVICE, puinumdevices : *mut u32, cbsize : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterRawInputDevices(prawinputdevices : *const RAWINPUTDEVICE, uinumdevices : u32, cbsize : u32) -> super::super::Foundation:: BOOL); +pub const IMDT_KEYBOARD: INPUT_MESSAGE_DEVICE_TYPE = 1i32; +pub const IMDT_MOUSE: INPUT_MESSAGE_DEVICE_TYPE = 2i32; +pub const IMDT_PEN: INPUT_MESSAGE_DEVICE_TYPE = 8i32; +pub const IMDT_TOUCH: INPUT_MESSAGE_DEVICE_TYPE = 4i32; +pub const IMDT_TOUCHPAD: INPUT_MESSAGE_DEVICE_TYPE = 16i32; +pub const IMDT_UNAVAILABLE: INPUT_MESSAGE_DEVICE_TYPE = 0i32; +pub const IMO_HARDWARE: INPUT_MESSAGE_ORIGIN_ID = 1i32; +pub const IMO_INJECTED: INPUT_MESSAGE_ORIGIN_ID = 2i32; +pub const IMO_SYSTEM: INPUT_MESSAGE_ORIGIN_ID = 4i32; +pub const IMO_UNAVAILABLE: INPUT_MESSAGE_ORIGIN_ID = 0i32; +pub const RIDEV_APPKEYS: RAWINPUTDEVICE_FLAGS = 1024u32; +pub const RIDEV_CAPTUREMOUSE: RAWINPUTDEVICE_FLAGS = 512u32; +pub const RIDEV_DEVNOTIFY: RAWINPUTDEVICE_FLAGS = 8192u32; +pub const RIDEV_EXCLUDE: RAWINPUTDEVICE_FLAGS = 16u32; +pub const RIDEV_EXINPUTSINK: RAWINPUTDEVICE_FLAGS = 4096u32; +pub const RIDEV_INPUTSINK: RAWINPUTDEVICE_FLAGS = 256u32; +pub const RIDEV_NOHOTKEYS: RAWINPUTDEVICE_FLAGS = 512u32; +pub const RIDEV_NOLEGACY: RAWINPUTDEVICE_FLAGS = 48u32; +pub const RIDEV_PAGEONLY: RAWINPUTDEVICE_FLAGS = 32u32; +pub const RIDEV_REMOVE: RAWINPUTDEVICE_FLAGS = 1u32; +pub const RIDI_DEVICEINFO: RAW_INPUT_DEVICE_INFO_COMMAND = 536870923u32; +pub const RIDI_DEVICENAME: RAW_INPUT_DEVICE_INFO_COMMAND = 536870919u32; +pub const RIDI_PREPARSEDDATA: RAW_INPUT_DEVICE_INFO_COMMAND = 536870917u32; +pub const RID_HEADER: RAW_INPUT_DATA_COMMAND_FLAGS = 268435461u32; +pub const RID_INPUT: RAW_INPUT_DATA_COMMAND_FLAGS = 268435459u32; +pub const RIM_TYPEHID: RID_DEVICE_INFO_TYPE = 2u32; +pub const RIM_TYPEKEYBOARD: RID_DEVICE_INFO_TYPE = 1u32; +pub const RIM_TYPEMOUSE: RID_DEVICE_INFO_TYPE = 0u32; +pub type INPUT_MESSAGE_DEVICE_TYPE = i32; +pub type INPUT_MESSAGE_ORIGIN_ID = i32; +pub type RAWINPUTDEVICE_FLAGS = u32; +pub type RAW_INPUT_DATA_COMMAND_FLAGS = u32; +pub type RAW_INPUT_DEVICE_INFO_COMMAND = u32; +pub type RID_DEVICE_INFO_TYPE = u32; +pub type HRAWINPUT = isize; +#[repr(C)] +pub struct INPUT_MESSAGE_SOURCE { + pub deviceType: INPUT_MESSAGE_DEVICE_TYPE, + pub originId: INPUT_MESSAGE_ORIGIN_ID, +} +impl ::core::marker::Copy for INPUT_MESSAGE_SOURCE {} +impl ::core::clone::Clone for INPUT_MESSAGE_SOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RAWHID { + pub dwSizeHid: u32, + pub dwCount: u32, + pub bRawData: [u8; 1], +} +impl ::core::marker::Copy for RAWHID {} +impl ::core::clone::Clone for RAWHID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAWINPUT { + pub header: RAWINPUTHEADER, + pub data: RAWINPUT_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAWINPUT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAWINPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union RAWINPUT_0 { + pub mouse: RAWMOUSE, + pub keyboard: RAWKEYBOARD, + pub hid: RAWHID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAWINPUT_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAWINPUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAWINPUTDEVICE { + pub usUsagePage: u16, + pub usUsage: u16, + pub dwFlags: RAWINPUTDEVICE_FLAGS, + pub hwndTarget: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAWINPUTDEVICE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAWINPUTDEVICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAWINPUTDEVICELIST { + pub hDevice: super::super::Foundation::HANDLE, + pub dwType: RID_DEVICE_INFO_TYPE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAWINPUTDEVICELIST {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAWINPUTDEVICELIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RAWINPUTHEADER { + pub dwType: u32, + pub dwSize: u32, + pub hDevice: super::super::Foundation::HANDLE, + pub wParam: super::super::Foundation::WPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RAWINPUTHEADER {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RAWINPUTHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RAWKEYBOARD { + pub MakeCode: u16, + pub Flags: u16, + pub Reserved: u16, + pub VKey: u16, + pub Message: u32, + pub ExtraInformation: u32, +} +impl ::core::marker::Copy for RAWKEYBOARD {} +impl ::core::clone::Clone for RAWKEYBOARD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RAWMOUSE { + pub usFlags: u16, + pub Anonymous: RAWMOUSE_0, + pub ulRawButtons: u32, + pub lLastX: i32, + pub lLastY: i32, + pub ulExtraInformation: u32, +} +impl ::core::marker::Copy for RAWMOUSE {} +impl ::core::clone::Clone for RAWMOUSE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union RAWMOUSE_0 { + pub ulButtons: u32, + pub Anonymous: RAWMOUSE_0_0, +} +impl ::core::marker::Copy for RAWMOUSE_0 {} +impl ::core::clone::Clone for RAWMOUSE_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RAWMOUSE_0_0 { + pub usButtonFlags: u16, + pub usButtonData: u16, +} +impl ::core::marker::Copy for RAWMOUSE_0_0 {} +impl ::core::clone::Clone for RAWMOUSE_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RID_DEVICE_INFO { + pub cbSize: u32, + pub dwType: RID_DEVICE_INFO_TYPE, + pub Anonymous: RID_DEVICE_INFO_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RID_DEVICE_INFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RID_DEVICE_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union RID_DEVICE_INFO_0 { + pub mouse: RID_DEVICE_INFO_MOUSE, + pub keyboard: RID_DEVICE_INFO_KEYBOARD, + pub hid: RID_DEVICE_INFO_HID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RID_DEVICE_INFO_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RID_DEVICE_INFO_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RID_DEVICE_INFO_HID { + pub dwVendorId: u32, + pub dwProductId: u32, + pub dwVersionNumber: u32, + pub usUsagePage: u16, + pub usUsage: u16, +} +impl ::core::marker::Copy for RID_DEVICE_INFO_HID {} +impl ::core::clone::Clone for RID_DEVICE_INFO_HID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RID_DEVICE_INFO_KEYBOARD { + pub dwType: u32, + pub dwSubType: u32, + pub dwKeyboardMode: u32, + pub dwNumberOfFunctionKeys: u32, + pub dwNumberOfIndicators: u32, + pub dwNumberOfKeysTotal: u32, +} +impl ::core::marker::Copy for RID_DEVICE_INFO_KEYBOARD {} +impl ::core::clone::Clone for RID_DEVICE_INFO_KEYBOARD { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct RID_DEVICE_INFO_MOUSE { + pub dwId: u32, + pub dwNumberOfButtons: u32, + pub dwSampleRate: u32, + pub fHasHorizontalWheel: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for RID_DEVICE_INFO_MOUSE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for RID_DEVICE_INFO_MOUSE { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/InteractionContext/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/InteractionContext/mod.rs new file mode 100644 index 000000000..58aca8a8f --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/InteractionContext/mod.rs @@ -0,0 +1,299 @@ +::windows_targets::link!("ninput.dll" "system" fn AddPointerInteractionContext(interactioncontext : HINTERACTIONCONTEXT, pointerid : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Input_Pointer", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("ninput.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Input_Pointer\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn BufferPointerPacketsInteractionContext(interactioncontext : HINTERACTIONCONTEXT, entriescount : u32, pointerinfo : *const super::Input::Pointer:: POINTER_INFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn CreateInteractionContext(interactioncontext : *mut HINTERACTIONCONTEXT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn DestroyInteractionContext(interactioncontext : HINTERACTIONCONTEXT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn GetCrossSlideParameterInteractionContext(interactioncontext : HINTERACTIONCONTEXT, threshold : CROSS_SLIDE_THRESHOLD, distance : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn GetHoldParameterInteractionContext(interactioncontext : HINTERACTIONCONTEXT, parameter : HOLD_PARAMETER, value : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn GetInertiaParameterInteractionContext(interactioncontext : HINTERACTIONCONTEXT, inertiaparameter : INERTIA_PARAMETER, value : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn GetInteractionConfigurationInteractionContext(interactioncontext : HINTERACTIONCONTEXT, configurationcount : u32, configuration : *mut INTERACTION_CONTEXT_CONFIGURATION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn GetMouseWheelParameterInteractionContext(interactioncontext : HINTERACTIONCONTEXT, parameter : MOUSE_WHEEL_PARAMETER, value : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn GetPropertyInteractionContext(interactioncontext : HINTERACTIONCONTEXT, contextproperty : INTERACTION_CONTEXT_PROPERTY, value : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Input_Pointer", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("ninput.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Input_Pointer\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn GetStateInteractionContext(interactioncontext : HINTERACTIONCONTEXT, pointerinfo : *const super::Input::Pointer:: POINTER_INFO, state : *mut INTERACTION_STATE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn GetTapParameterInteractionContext(interactioncontext : HINTERACTIONCONTEXT, parameter : TAP_PARAMETER, value : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn GetTranslationParameterInteractionContext(interactioncontext : HINTERACTIONCONTEXT, parameter : TRANSLATION_PARAMETER, value : *mut f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn ProcessBufferedPacketsInteractionContext(interactioncontext : HINTERACTIONCONTEXT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn ProcessInertiaInteractionContext(interactioncontext : HINTERACTIONCONTEXT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Input_Pointer", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("ninput.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Input_Pointer\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ProcessPointerFramesInteractionContext(interactioncontext : HINTERACTIONCONTEXT, entriescount : u32, pointercount : u32, pointerinfo : *const super::Input::Pointer:: POINTER_INFO) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ninput.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn RegisterOutputCallbackInteractionContext(interactioncontext : HINTERACTIONCONTEXT, outputcallback : INTERACTION_CONTEXT_OUTPUT_CALLBACK, clientdata : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("ninput.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn RegisterOutputCallbackInteractionContext2(interactioncontext : HINTERACTIONCONTEXT, outputcallback : INTERACTION_CONTEXT_OUTPUT_CALLBACK2, clientdata : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn RemovePointerInteractionContext(interactioncontext : HINTERACTIONCONTEXT, pointerid : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn ResetInteractionContext(interactioncontext : HINTERACTIONCONTEXT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn SetCrossSlideParametersInteractionContext(interactioncontext : HINTERACTIONCONTEXT, parametercount : u32, crossslideparameters : *const CROSS_SLIDE_PARAMETER) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn SetHoldParameterInteractionContext(interactioncontext : HINTERACTIONCONTEXT, parameter : HOLD_PARAMETER, value : f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn SetInertiaParameterInteractionContext(interactioncontext : HINTERACTIONCONTEXT, inertiaparameter : INERTIA_PARAMETER, value : f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn SetInteractionConfigurationInteractionContext(interactioncontext : HINTERACTIONCONTEXT, configurationcount : u32, configuration : *const INTERACTION_CONTEXT_CONFIGURATION) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn SetMouseWheelParameterInteractionContext(interactioncontext : HINTERACTIONCONTEXT, parameter : MOUSE_WHEEL_PARAMETER, value : f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn SetPivotInteractionContext(interactioncontext : HINTERACTIONCONTEXT, x : f32, y : f32, radius : f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn SetPropertyInteractionContext(interactioncontext : HINTERACTIONCONTEXT, contextproperty : INTERACTION_CONTEXT_PROPERTY, value : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn SetTapParameterInteractionContext(interactioncontext : HINTERACTIONCONTEXT, parameter : TAP_PARAMETER, value : f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn SetTranslationParameterInteractionContext(interactioncontext : HINTERACTIONCONTEXT, parameter : TRANSLATION_PARAMETER, value : f32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ninput.dll" "system" fn StopInteractionContext(interactioncontext : HINTERACTIONCONTEXT) -> ::windows_sys::core::HRESULT); +pub const CROSS_SLIDE_FLAGS_MAX: CROSS_SLIDE_FLAGS = 4294967295u32; +pub const CROSS_SLIDE_FLAGS_NONE: CROSS_SLIDE_FLAGS = 0u32; +pub const CROSS_SLIDE_FLAGS_REARRANGE: CROSS_SLIDE_FLAGS = 4u32; +pub const CROSS_SLIDE_FLAGS_SELECT: CROSS_SLIDE_FLAGS = 1u32; +pub const CROSS_SLIDE_FLAGS_SPEED_BUMP: CROSS_SLIDE_FLAGS = 2u32; +pub const CROSS_SLIDE_THRESHOLD_COUNT: CROSS_SLIDE_THRESHOLD = 4i32; +pub const CROSS_SLIDE_THRESHOLD_MAX: CROSS_SLIDE_THRESHOLD = -1i32; +pub const CROSS_SLIDE_THRESHOLD_REARRANGE_START: CROSS_SLIDE_THRESHOLD = 3i32; +pub const CROSS_SLIDE_THRESHOLD_SELECT_START: CROSS_SLIDE_THRESHOLD = 0i32; +pub const CROSS_SLIDE_THRESHOLD_SPEED_BUMP_END: CROSS_SLIDE_THRESHOLD = 2i32; +pub const CROSS_SLIDE_THRESHOLD_SPEED_BUMP_START: CROSS_SLIDE_THRESHOLD = 1i32; +pub const HOLD_PARAMETER_MAX: HOLD_PARAMETER = -1i32; +pub const HOLD_PARAMETER_MAX_CONTACT_COUNT: HOLD_PARAMETER = 1i32; +pub const HOLD_PARAMETER_MIN_CONTACT_COUNT: HOLD_PARAMETER = 0i32; +pub const HOLD_PARAMETER_THRESHOLD_RADIUS: HOLD_PARAMETER = 2i32; +pub const HOLD_PARAMETER_THRESHOLD_START_DELAY: HOLD_PARAMETER = 3i32; +pub const INERTIA_PARAMETER_EXPANSION_DECELERATION: INERTIA_PARAMETER = 5i32; +pub const INERTIA_PARAMETER_EXPANSION_EXPANSION: INERTIA_PARAMETER = 6i32; +pub const INERTIA_PARAMETER_MAX: INERTIA_PARAMETER = -1i32; +pub const INERTIA_PARAMETER_ROTATION_ANGLE: INERTIA_PARAMETER = 4i32; +pub const INERTIA_PARAMETER_ROTATION_DECELERATION: INERTIA_PARAMETER = 3i32; +pub const INERTIA_PARAMETER_TRANSLATION_DECELERATION: INERTIA_PARAMETER = 1i32; +pub const INERTIA_PARAMETER_TRANSLATION_DISPLACEMENT: INERTIA_PARAMETER = 2i32; +pub const INTERACTION_CONFIGURATION_FLAG_CROSS_SLIDE: INTERACTION_CONFIGURATION_FLAGS = 1u32; +pub const INTERACTION_CONFIGURATION_FLAG_CROSS_SLIDE_EXACT: INTERACTION_CONFIGURATION_FLAGS = 32u32; +pub const INTERACTION_CONFIGURATION_FLAG_CROSS_SLIDE_HORIZONTAL: INTERACTION_CONFIGURATION_FLAGS = 2u32; +pub const INTERACTION_CONFIGURATION_FLAG_CROSS_SLIDE_REARRANGE: INTERACTION_CONFIGURATION_FLAGS = 16u32; +pub const INTERACTION_CONFIGURATION_FLAG_CROSS_SLIDE_SELECT: INTERACTION_CONFIGURATION_FLAGS = 4u32; +pub const INTERACTION_CONFIGURATION_FLAG_CROSS_SLIDE_SPEED_BUMP: INTERACTION_CONFIGURATION_FLAGS = 8u32; +pub const INTERACTION_CONFIGURATION_FLAG_DRAG: INTERACTION_CONFIGURATION_FLAGS = 1u32; +pub const INTERACTION_CONFIGURATION_FLAG_HOLD: INTERACTION_CONFIGURATION_FLAGS = 1u32; +pub const INTERACTION_CONFIGURATION_FLAG_HOLD_MOUSE: INTERACTION_CONFIGURATION_FLAGS = 2u32; +pub const INTERACTION_CONFIGURATION_FLAG_HOLD_MULTIPLE_FINGER: INTERACTION_CONFIGURATION_FLAGS = 4u32; +pub const INTERACTION_CONFIGURATION_FLAG_MANIPULATION: INTERACTION_CONFIGURATION_FLAGS = 1u32; +pub const INTERACTION_CONFIGURATION_FLAG_MANIPULATION_EXACT: INTERACTION_CONFIGURATION_FLAGS = 1024u32; +pub const INTERACTION_CONFIGURATION_FLAG_MANIPULATION_MULTIPLE_FINGER_PANNING: INTERACTION_CONFIGURATION_FLAGS = 2048u32; +pub const INTERACTION_CONFIGURATION_FLAG_MANIPULATION_RAILS_X: INTERACTION_CONFIGURATION_FLAGS = 256u32; +pub const INTERACTION_CONFIGURATION_FLAG_MANIPULATION_RAILS_Y: INTERACTION_CONFIGURATION_FLAGS = 512u32; +pub const INTERACTION_CONFIGURATION_FLAG_MANIPULATION_ROTATION: INTERACTION_CONFIGURATION_FLAGS = 8u32; +pub const INTERACTION_CONFIGURATION_FLAG_MANIPULATION_ROTATION_INERTIA: INTERACTION_CONFIGURATION_FLAGS = 64u32; +pub const INTERACTION_CONFIGURATION_FLAG_MANIPULATION_SCALING: INTERACTION_CONFIGURATION_FLAGS = 16u32; +pub const INTERACTION_CONFIGURATION_FLAG_MANIPULATION_SCALING_INERTIA: INTERACTION_CONFIGURATION_FLAGS = 128u32; +pub const INTERACTION_CONFIGURATION_FLAG_MANIPULATION_TRANSLATION_INERTIA: INTERACTION_CONFIGURATION_FLAGS = 32u32; +pub const INTERACTION_CONFIGURATION_FLAG_MANIPULATION_TRANSLATION_X: INTERACTION_CONFIGURATION_FLAGS = 2u32; +pub const INTERACTION_CONFIGURATION_FLAG_MANIPULATION_TRANSLATION_Y: INTERACTION_CONFIGURATION_FLAGS = 4u32; +pub const INTERACTION_CONFIGURATION_FLAG_MAX: INTERACTION_CONFIGURATION_FLAGS = 4294967295u32; +pub const INTERACTION_CONFIGURATION_FLAG_NONE: INTERACTION_CONFIGURATION_FLAGS = 0u32; +pub const INTERACTION_CONFIGURATION_FLAG_SECONDARY_TAP: INTERACTION_CONFIGURATION_FLAGS = 1u32; +pub const INTERACTION_CONFIGURATION_FLAG_TAP: INTERACTION_CONFIGURATION_FLAGS = 1u32; +pub const INTERACTION_CONFIGURATION_FLAG_TAP_DOUBLE: INTERACTION_CONFIGURATION_FLAGS = 2u32; +pub const INTERACTION_CONFIGURATION_FLAG_TAP_MULTIPLE_FINGER: INTERACTION_CONFIGURATION_FLAGS = 4u32; +pub const INTERACTION_CONTEXT_PROPERTY_FILTER_POINTERS: INTERACTION_CONTEXT_PROPERTY = 3i32; +pub const INTERACTION_CONTEXT_PROPERTY_INTERACTION_UI_FEEDBACK: INTERACTION_CONTEXT_PROPERTY = 2i32; +pub const INTERACTION_CONTEXT_PROPERTY_MAX: INTERACTION_CONTEXT_PROPERTY = -1i32; +pub const INTERACTION_CONTEXT_PROPERTY_MEASUREMENT_UNITS: INTERACTION_CONTEXT_PROPERTY = 1i32; +pub const INTERACTION_FLAG_BEGIN: INTERACTION_FLAGS = 1u32; +pub const INTERACTION_FLAG_CANCEL: INTERACTION_FLAGS = 4u32; +pub const INTERACTION_FLAG_END: INTERACTION_FLAGS = 2u32; +pub const INTERACTION_FLAG_INERTIA: INTERACTION_FLAGS = 8u32; +pub const INTERACTION_FLAG_MAX: INTERACTION_FLAGS = 4294967295u32; +pub const INTERACTION_FLAG_NONE: INTERACTION_FLAGS = 0u32; +pub const INTERACTION_ID_CROSS_SLIDE: INTERACTION_ID = 6i32; +pub const INTERACTION_ID_DRAG: INTERACTION_ID = 5i32; +pub const INTERACTION_ID_HOLD: INTERACTION_ID = 4i32; +pub const INTERACTION_ID_MANIPULATION: INTERACTION_ID = 1i32; +pub const INTERACTION_ID_MAX: INTERACTION_ID = -1i32; +pub const INTERACTION_ID_NONE: INTERACTION_ID = 0i32; +pub const INTERACTION_ID_SECONDARY_TAP: INTERACTION_ID = 3i32; +pub const INTERACTION_ID_TAP: INTERACTION_ID = 2i32; +pub const INTERACTION_STATE_IDLE: INTERACTION_STATE = 0i32; +pub const INTERACTION_STATE_IN_INTERACTION: INTERACTION_STATE = 1i32; +pub const INTERACTION_STATE_MAX: INTERACTION_STATE = -1i32; +pub const INTERACTION_STATE_POSSIBLE_DOUBLE_TAP: INTERACTION_STATE = 2i32; +pub const MANIPULATION_RAILS_STATE_FREE: MANIPULATION_RAILS_STATE = 1i32; +pub const MANIPULATION_RAILS_STATE_MAX: MANIPULATION_RAILS_STATE = -1i32; +pub const MANIPULATION_RAILS_STATE_RAILED: MANIPULATION_RAILS_STATE = 2i32; +pub const MANIPULATION_RAILS_STATE_UNDECIDED: MANIPULATION_RAILS_STATE = 0i32; +pub const MOUSE_WHEEL_PARAMETER_CHAR_TRANSLATION_X: MOUSE_WHEEL_PARAMETER = 1i32; +pub const MOUSE_WHEEL_PARAMETER_CHAR_TRANSLATION_Y: MOUSE_WHEEL_PARAMETER = 2i32; +pub const MOUSE_WHEEL_PARAMETER_DELTA_ROTATION: MOUSE_WHEEL_PARAMETER = 4i32; +pub const MOUSE_WHEEL_PARAMETER_DELTA_SCALE: MOUSE_WHEEL_PARAMETER = 3i32; +pub const MOUSE_WHEEL_PARAMETER_MAX: MOUSE_WHEEL_PARAMETER = -1i32; +pub const MOUSE_WHEEL_PARAMETER_PAGE_TRANSLATION_X: MOUSE_WHEEL_PARAMETER = 5i32; +pub const MOUSE_WHEEL_PARAMETER_PAGE_TRANSLATION_Y: MOUSE_WHEEL_PARAMETER = 6i32; +pub const TAP_PARAMETER_MAX: TAP_PARAMETER = -1i32; +pub const TAP_PARAMETER_MAX_CONTACT_COUNT: TAP_PARAMETER = 1i32; +pub const TAP_PARAMETER_MIN_CONTACT_COUNT: TAP_PARAMETER = 0i32; +pub const TRANSLATION_PARAMETER_MAX: TRANSLATION_PARAMETER = -1i32; +pub const TRANSLATION_PARAMETER_MAX_CONTACT_COUNT: TRANSLATION_PARAMETER = 1i32; +pub const TRANSLATION_PARAMETER_MIN_CONTACT_COUNT: TRANSLATION_PARAMETER = 0i32; +pub type CROSS_SLIDE_FLAGS = u32; +pub type CROSS_SLIDE_THRESHOLD = i32; +pub type HOLD_PARAMETER = i32; +pub type INERTIA_PARAMETER = i32; +pub type INTERACTION_CONFIGURATION_FLAGS = u32; +pub type INTERACTION_CONTEXT_PROPERTY = i32; +pub type INTERACTION_FLAGS = u32; +pub type INTERACTION_ID = i32; +pub type INTERACTION_STATE = i32; +pub type MANIPULATION_RAILS_STATE = i32; +pub type MOUSE_WHEEL_PARAMETER = i32; +pub type TAP_PARAMETER = i32; +pub type TRANSLATION_PARAMETER = i32; +#[repr(C)] +pub struct CROSS_SLIDE_PARAMETER { + pub threshold: CROSS_SLIDE_THRESHOLD, + pub distance: f32, +} +impl ::core::marker::Copy for CROSS_SLIDE_PARAMETER {} +impl ::core::clone::Clone for CROSS_SLIDE_PARAMETER { + fn clone(&self) -> Self { + *self + } +} +pub type HINTERACTIONCONTEXT = isize; +#[repr(C)] +pub struct INTERACTION_ARGUMENTS_CROSS_SLIDE { + pub flags: CROSS_SLIDE_FLAGS, +} +impl ::core::marker::Copy for INTERACTION_ARGUMENTS_CROSS_SLIDE {} +impl ::core::clone::Clone for INTERACTION_ARGUMENTS_CROSS_SLIDE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERACTION_ARGUMENTS_MANIPULATION { + pub delta: MANIPULATION_TRANSFORM, + pub cumulative: MANIPULATION_TRANSFORM, + pub velocity: MANIPULATION_VELOCITY, + pub railsState: MANIPULATION_RAILS_STATE, +} +impl ::core::marker::Copy for INTERACTION_ARGUMENTS_MANIPULATION {} +impl ::core::clone::Clone for INTERACTION_ARGUMENTS_MANIPULATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERACTION_ARGUMENTS_TAP { + pub count: u32, +} +impl ::core::marker::Copy for INTERACTION_ARGUMENTS_TAP {} +impl ::core::clone::Clone for INTERACTION_ARGUMENTS_TAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct INTERACTION_CONTEXT_CONFIGURATION { + pub interactionId: INTERACTION_ID, + pub enable: INTERACTION_CONFIGURATION_FLAGS, +} +impl ::core::marker::Copy for INTERACTION_CONTEXT_CONFIGURATION {} +impl ::core::clone::Clone for INTERACTION_CONTEXT_CONFIGURATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct INTERACTION_CONTEXT_OUTPUT { + pub interactionId: INTERACTION_ID, + pub interactionFlags: INTERACTION_FLAGS, + pub inputType: super::WindowsAndMessaging::POINTER_INPUT_TYPE, + pub x: f32, + pub y: f32, + pub arguments: INTERACTION_CONTEXT_OUTPUT_0, +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for INTERACTION_CONTEXT_OUTPUT {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for INTERACTION_CONTEXT_OUTPUT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub union INTERACTION_CONTEXT_OUTPUT_0 { + pub manipulation: INTERACTION_ARGUMENTS_MANIPULATION, + pub tap: INTERACTION_ARGUMENTS_TAP, + pub crossSlide: INTERACTION_ARGUMENTS_CROSS_SLIDE, +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for INTERACTION_CONTEXT_OUTPUT_0 {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for INTERACTION_CONTEXT_OUTPUT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct INTERACTION_CONTEXT_OUTPUT2 { + pub interactionId: INTERACTION_ID, + pub interactionFlags: INTERACTION_FLAGS, + pub inputType: super::WindowsAndMessaging::POINTER_INPUT_TYPE, + pub contactCount: u32, + pub currentContactCount: u32, + pub x: f32, + pub y: f32, + pub arguments: INTERACTION_CONTEXT_OUTPUT2_0, +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for INTERACTION_CONTEXT_OUTPUT2 {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for INTERACTION_CONTEXT_OUTPUT2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub union INTERACTION_CONTEXT_OUTPUT2_0 { + pub manipulation: INTERACTION_ARGUMENTS_MANIPULATION, + pub tap: INTERACTION_ARGUMENTS_TAP, + pub crossSlide: INTERACTION_ARGUMENTS_CROSS_SLIDE, +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for INTERACTION_CONTEXT_OUTPUT2_0 {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for INTERACTION_CONTEXT_OUTPUT2_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MANIPULATION_TRANSFORM { + pub translationX: f32, + pub translationY: f32, + pub scale: f32, + pub expansion: f32, + pub rotation: f32, +} +impl ::core::marker::Copy for MANIPULATION_TRANSFORM {} +impl ::core::clone::Clone for MANIPULATION_TRANSFORM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MANIPULATION_VELOCITY { + pub velocityX: f32, + pub velocityY: f32, + pub velocityExpansion: f32, + pub velocityAngular: f32, +} +impl ::core::marker::Copy for MANIPULATION_VELOCITY {} +impl ::core::clone::Clone for MANIPULATION_VELOCITY { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub type INTERACTION_CONTEXT_OUTPUT_CALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub type INTERACTION_CONTEXT_OUTPUT_CALLBACK2 = ::core::option::Option ()>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Magnification/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Magnification/mod.rs new file mode 100644 index 000000000..691d8352e --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Magnification/mod.rs @@ -0,0 +1,85 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagGetColorEffect(hwnd : super::super::Foundation:: HWND, peffect : *mut MAGCOLOREFFECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagGetFullscreenColorEffect(peffect : *mut MAGCOLOREFFECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagGetFullscreenTransform(pmaglevel : *mut f32, pxoffset : *mut i32, pyoffset : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn MagGetImageScalingCallback(hwnd : super::super::Foundation:: HWND) -> MagImageScalingCallback); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagGetInputTransform(pfenabled : *mut super::super::Foundation:: BOOL, prectsource : *mut super::super::Foundation:: RECT, prectdest : *mut super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagGetWindowFilterList(hwnd : super::super::Foundation:: HWND, pdwfiltermode : *mut MW_FILTERMODE, count : i32, phwnd : *mut super::super::Foundation:: HWND) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagGetWindowSource(hwnd : super::super::Foundation:: HWND, prect : *mut super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagGetWindowTransform(hwnd : super::super::Foundation:: HWND, ptransform : *mut MAGTRANSFORM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagInitialize() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagSetColorEffect(hwnd : super::super::Foundation:: HWND, peffect : *mut MAGCOLOREFFECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagSetFullscreenColorEffect(peffect : *const MAGCOLOREFFECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagSetFullscreenTransform(maglevel : f32, xoffset : i32, yoffset : i32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn MagSetImageScalingCallback(hwnd : super::super::Foundation:: HWND, callback : MagImageScalingCallback) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagSetInputTransform(fenabled : super::super::Foundation:: BOOL, prectsource : *const super::super::Foundation:: RECT, prectdest : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagSetWindowFilterList(hwnd : super::super::Foundation:: HWND, dwfiltermode : MW_FILTERMODE, count : i32, phwnd : *mut super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagSetWindowSource(hwnd : super::super::Foundation:: HWND, rect : super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagSetWindowTransform(hwnd : super::super::Foundation:: HWND, ptransform : *mut MAGTRANSFORM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagShowSystemCursor(fshowcursor : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("magnification.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MagUninitialize() -> super::super::Foundation:: BOOL); +pub const MS_CLIPAROUNDCURSOR: i32 = 2i32; +pub const MS_INVERTCOLORS: i32 = 4i32; +pub const MS_SHOWMAGNIFIEDCURSOR: i32 = 1i32; +pub const MW_FILTERMODE_EXCLUDE: MW_FILTERMODE = 0u32; +pub const MW_FILTERMODE_INCLUDE: MW_FILTERMODE = 1u32; +pub const WC_MAGNIFIER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Magnifier"); +pub const WC_MAGNIFIERA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Magnifier"); +pub const WC_MAGNIFIERW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Magnifier"); +pub type MW_FILTERMODE = u32; +#[repr(C)] +pub struct MAGCOLOREFFECT { + pub transform: [f32; 25], +} +impl ::core::marker::Copy for MAGCOLOREFFECT {} +impl ::core::clone::Clone for MAGCOLOREFFECT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MAGIMAGEHEADER { + pub width: u32, + pub height: u32, + pub format: ::windows_sys::core::GUID, + pub stride: u32, + pub offset: u32, + pub cbSize: usize, +} +impl ::core::marker::Copy for MAGIMAGEHEADER {} +impl ::core::clone::Clone for MAGIMAGEHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MAGTRANSFORM { + pub v: [f32; 9], +} +impl ::core::marker::Copy for MAGTRANSFORM {} +impl ::core::clone::Clone for MAGTRANSFORM { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub type MagImageScalingCallback = ::core::option::Option super::super::Foundation::BOOL>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Shell/PropertiesSystem/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Shell/PropertiesSystem/mod.rs new file mode 100644 index 000000000..7a473f84e --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Shell/PropertiesSystem/mod.rs @@ -0,0 +1,400 @@ +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn PSCoerceToCanonicalValue(key : *const PROPERTYKEY, ppropvar : *mut super::super::super::System::Com::StructuredStorage:: PROPVARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSCreateAdapterFromPropertyStore(pps : IPropertyStore, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSCreateDelayedMultiplexPropertyStore(flags : GETPROPERTYSTOREFLAGS, pdpsf : IDelayedPropertyStoreFactory, rgstoreids : *const u32, cstores : u32, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSCreateMemoryPropertyStore(riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSCreateMultiplexPropertyStore(prgpunkstores : *const ::windows_sys::core::IUnknown, cstores : u32, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn PSCreatePropertyChangeArray(rgpropkey : *const PROPERTYKEY, rgflags : *const PKA_FLAGS, rgpropvar : *const super::super::super::System::Com::StructuredStorage:: PROPVARIANT, cchanges : u32, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSCreatePropertyStoreFromObject(punk : ::windows_sys::core::IUnknown, grfmode : u32, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSCreatePropertyStoreFromPropertySetStorage(ppss : super::super::super::System::Com::StructuredStorage:: IPropertySetStorage, grfmode : u32, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn PSCreateSimplePropertyChange(flags : PKA_FLAGS, key : *const PROPERTYKEY, propvar : *const super::super::super::System::Com::StructuredStorage:: PROPVARIANT, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSEnumeratePropertyDescriptions(filteron : PROPDESC_ENUMFILTER, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn PSFormatForDisplay(propkey : *const PROPERTYKEY, propvar : *const super::super::super::System::Com::StructuredStorage:: PROPVARIANT, pdfflags : PROPDESC_FORMAT_FLAGS, pwsztext : ::windows_sys::core::PWSTR, cchtext : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn PSFormatForDisplayAlloc(key : *const PROPERTYKEY, propvar : *const super::super::super::System::Com::StructuredStorage:: PROPVARIANT, pdff : PROPDESC_FORMAT_FLAGS, ppszdisplay : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSFormatPropertyValue(pps : IPropertyStore, ppd : IPropertyDescription, pdff : PROPDESC_FORMAT_FLAGS, ppszdisplay : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn PSGetImageReferenceForValue(propkey : *const PROPERTYKEY, propvar : *const super::super::super::System::Com::StructuredStorage:: PROPVARIANT, ppszimageres : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PSGetItemPropertyHandler(punkitem : ::windows_sys::core::IUnknown, freadwrite : super::super::super::Foundation:: BOOL, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PSGetItemPropertyHandlerWithCreateObject(punkitem : ::windows_sys::core::IUnknown, freadwrite : super::super::super::Foundation:: BOOL, punkcreateobject : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSGetNameFromPropertyKey(propkey : *const PROPERTYKEY, ppszcanonicalname : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn PSGetNamedPropertyFromPropertyStorage(psps : PCUSERIALIZEDPROPSTORAGE, cb : u32, pszname : ::windows_sys::core::PCWSTR, ppropvar : *mut super::super::super::System::Com::StructuredStorage:: PROPVARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSGetPropertyDescription(propkey : *const PROPERTYKEY, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSGetPropertyDescriptionByName(pszcanonicalname : ::windows_sys::core::PCWSTR, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSGetPropertyDescriptionListFromString(pszproplist : ::windows_sys::core::PCWSTR, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn PSGetPropertyFromPropertyStorage(psps : PCUSERIALIZEDPROPSTORAGE, cb : u32, rpkey : *const PROPERTYKEY, ppropvar : *mut super::super::super::System::Com::StructuredStorage:: PROPVARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSGetPropertyKeyFromName(pszname : ::windows_sys::core::PCWSTR, ppropkey : *mut PROPERTYKEY) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSGetPropertySystem(riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn PSGetPropertyValue(pps : IPropertyStore, ppd : IPropertyDescription, ppropvar : *mut super::super::super::System::Com::StructuredStorage:: PROPVARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSLookupPropertyHandlerCLSID(pszfilepath : ::windows_sys::core::PCWSTR, pclsid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_Delete(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadBOOL(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut super::super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadBSTR(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadDWORD(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadGUID(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadInt(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadLONG(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadPOINTL(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut super::super::super::Foundation:: POINTL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadPOINTS(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut super::super::super::Foundation:: POINTS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadPropertyKey(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut PROPERTYKEY) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadRECTL(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut super::super::super::Foundation:: RECTL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadSHORT(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut i16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadStr(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : ::windows_sys::core::PWSTR, charactercount : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadStrAlloc(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadStream(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut super::super::super::System::Com:: IStream) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn PSPropertyBag_ReadType(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, var : *mut super::super::super::System::Variant:: VARIANT, r#type : super::super::super::System::Variant:: VARENUM) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadULONGLONG(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_ReadUnknown(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WriteBOOL(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : super::super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WriteBSTR(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WriteDWORD(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WriteGUID(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WriteInt(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WriteLONG(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WritePOINTL(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *const super::super::super::Foundation:: POINTL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WritePOINTS(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *const super::super::super::Foundation:: POINTS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WritePropertyKey(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *const PROPERTYKEY) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WriteRECTL(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : *const super::super::super::Foundation:: RECTL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WriteSHORT(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : i16) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WriteStr(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WriteStream(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : super::super::super::System::Com:: IStream) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WriteULONGLONG(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, value : u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn PSPropertyBag_WriteUnknown(propbag : super::super::super::System::Com::StructuredStorage:: IPropertyBag, propname : ::windows_sys::core::PCWSTR, punk : ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSPropertyKeyFromString(pszstring : ::windows_sys::core::PCWSTR, pkey : *mut PROPERTYKEY) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSRefreshPropertySchema() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSRegisterPropertySchema(pszpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn PSSetPropertyValue(pps : IPropertyStore, ppd : IPropertyDescription, propvar : *const super::super::super::System::Com::StructuredStorage:: PROPVARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSStringFromPropertyKey(pkey : *const PROPERTYKEY, psz : ::windows_sys::core::PWSTR, cch : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("propsys.dll" "system" fn PSUnregisterPropertySchema(pszpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PifMgr_CloseProperties(hprops : super::super::super::Foundation:: HANDLE, flopt : u32) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PifMgr_GetProperties(hprops : super::super::super::Foundation:: HANDLE, pszgroup : ::windows_sys::core::PCSTR, lpprops : *mut ::core::ffi::c_void, cbprops : i32, flopt : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PifMgr_OpenProperties(pszapp : ::windows_sys::core::PCWSTR, pszpif : ::windows_sys::core::PCWSTR, hinf : u32, flopt : u32) -> super::super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PifMgr_SetProperties(hprops : super::super::super::Foundation:: HANDLE, pszgroup : ::windows_sys::core::PCSTR, lpprops : *const ::core::ffi::c_void, cbprops : i32, flopt : u32) -> i32); +::windows_targets::link!("shell32.dll" "system" fn SHAddDefaultPropertiesByExt(pszext : ::windows_sys::core::PCWSTR, ppropstore : IPropertyStore) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetPropertyStoreForWindow(hwnd : super::super::super::Foundation:: HWND, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHGetPropertyStoreFromIDList(pidl : *const super::Common:: ITEMIDLIST, flags : GETPROPERTYSTOREFLAGS, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SHGetPropertyStoreFromParsingName(pszpath : ::windows_sys::core::PCWSTR, pbc : super::super::super::System::Com:: IBindCtx, flags : GETPROPERTYSTOREFLAGS, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn SHPropStgCreate(psstg : super::super::super::System::Com::StructuredStorage:: IPropertySetStorage, fmtid : *const ::windows_sys::core::GUID, pclsid : *const ::windows_sys::core::GUID, grfflags : u32, grfmode : u32, dwdisposition : u32, ppstg : *mut super::super::super::System::Com::StructuredStorage:: IPropertyStorage, pucodepage : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn SHPropStgReadMultiple(pps : super::super::super::System::Com::StructuredStorage:: IPropertyStorage, ucodepage : u32, cpspec : u32, rgpspec : *const super::super::super::System::Com::StructuredStorage:: PROPSPEC, rgvar : *mut super::super::super::System::Com::StructuredStorage:: PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`"] fn SHPropStgWriteMultiple(pps : super::super::super::System::Com::StructuredStorage:: IPropertyStorage, pucodepage : *mut u32, cpspec : u32, rgpspec : *const super::super::super::System::Com::StructuredStorage:: PROPSPEC, rgvar : *mut super::super::super::System::Com::StructuredStorage:: PROPVARIANT, propidnamefirst : u32) -> ::windows_sys::core::HRESULT); +pub type ICreateObject = *mut ::core::ffi::c_void; +pub type IDelayedPropertyStoreFactory = *mut ::core::ffi::c_void; +pub type IInitializeWithFile = *mut ::core::ffi::c_void; +pub type IInitializeWithStream = *mut ::core::ffi::c_void; +pub type INamedPropertyStore = *mut ::core::ffi::c_void; +pub type IObjectWithPropertyKey = *mut ::core::ffi::c_void; +pub type IPersistSerializedPropStorage = *mut ::core::ffi::c_void; +pub type IPersistSerializedPropStorage2 = *mut ::core::ffi::c_void; +pub type IPropertyChange = *mut ::core::ffi::c_void; +pub type IPropertyChangeArray = *mut ::core::ffi::c_void; +pub type IPropertyDescription = *mut ::core::ffi::c_void; +pub type IPropertyDescription2 = *mut ::core::ffi::c_void; +pub type IPropertyDescriptionAliasInfo = *mut ::core::ffi::c_void; +pub type IPropertyDescriptionList = *mut ::core::ffi::c_void; +pub type IPropertyDescriptionRelatedPropertyInfo = *mut ::core::ffi::c_void; +pub type IPropertyDescriptionSearchInfo = *mut ::core::ffi::c_void; +pub type IPropertyEnumType = *mut ::core::ffi::c_void; +pub type IPropertyEnumType2 = *mut ::core::ffi::c_void; +pub type IPropertyEnumTypeList = *mut ::core::ffi::c_void; +pub type IPropertyStore = *mut ::core::ffi::c_void; +pub type IPropertyStoreCache = *mut ::core::ffi::c_void; +pub type IPropertyStoreCapabilities = *mut ::core::ffi::c_void; +pub type IPropertyStoreFactory = *mut ::core::ffi::c_void; +pub type IPropertySystem = *mut ::core::ffi::c_void; +pub type IPropertySystemChangeNotify = *mut ::core::ffi::c_void; +pub type IPropertyUI = *mut ::core::ffi::c_void; +pub const FPSPS_DEFAULT: _PERSIST_SPROPSTORE_FLAGS = 0i32; +pub const FPSPS_READONLY: _PERSIST_SPROPSTORE_FLAGS = 1i32; +pub const FPSPS_TREAT_NEW_VALUES_AS_DIRTY: _PERSIST_SPROPSTORE_FLAGS = 2i32; +pub const GPS_BESTEFFORT: GETPROPERTYSTOREFLAGS = 64i32; +pub const GPS_DEFAULT: GETPROPERTYSTOREFLAGS = 0i32; +pub const GPS_DELAYCREATION: GETPROPERTYSTOREFLAGS = 32i32; +pub const GPS_EXTRINSICPROPERTIES: GETPROPERTYSTOREFLAGS = 512i32; +pub const GPS_EXTRINSICPROPERTIESONLY: GETPROPERTYSTOREFLAGS = 1024i32; +pub const GPS_FASTPROPERTIESONLY: GETPROPERTYSTOREFLAGS = 8i32; +pub const GPS_HANDLERPROPERTIESONLY: GETPROPERTYSTOREFLAGS = 1i32; +pub const GPS_MASK_VALID: GETPROPERTYSTOREFLAGS = 8191i32; +pub const GPS_NO_OPLOCK: GETPROPERTYSTOREFLAGS = 128i32; +pub const GPS_OPENSLOWITEM: GETPROPERTYSTOREFLAGS = 16i32; +pub const GPS_PREFERQUERYPROPERTIES: GETPROPERTYSTOREFLAGS = 256i32; +pub const GPS_READWRITE: GETPROPERTYSTOREFLAGS = 2i32; +pub const GPS_TEMPORARY: GETPROPERTYSTOREFLAGS = 4i32; +pub const GPS_VOLATILEPROPERTIES: GETPROPERTYSTOREFLAGS = 2048i32; +pub const GPS_VOLATILEPROPERTIESONLY: GETPROPERTYSTOREFLAGS = 4096i32; +pub const InMemoryPropertyStore: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9a02e012_6303_4e1e_b9a1_630f802592c5); +pub const InMemoryPropertyStoreMarshalByValue: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd4ca0e2d_6da7_4b75_a97c_5f306f0eaedc); +pub const PDAT_AVERAGE: PROPDESC_AGGREGATION_TYPE = 3i32; +pub const PDAT_DATERANGE: PROPDESC_AGGREGATION_TYPE = 4i32; +pub const PDAT_DEFAULT: PROPDESC_AGGREGATION_TYPE = 0i32; +pub const PDAT_FIRST: PROPDESC_AGGREGATION_TYPE = 1i32; +pub const PDAT_MAX: PROPDESC_AGGREGATION_TYPE = 6i32; +pub const PDAT_MIN: PROPDESC_AGGREGATION_TYPE = 7i32; +pub const PDAT_SUM: PROPDESC_AGGREGATION_TYPE = 2i32; +pub const PDAT_UNION: PROPDESC_AGGREGATION_TYPE = 5i32; +pub const PDCIT_INMEMORY: PROPDESC_COLUMNINDEX_TYPE = 2i32; +pub const PDCIT_NONE: PROPDESC_COLUMNINDEX_TYPE = 0i32; +pub const PDCIT_ONDEMAND: PROPDESC_COLUMNINDEX_TYPE = 3i32; +pub const PDCIT_ONDISK: PROPDESC_COLUMNINDEX_TYPE = 1i32; +pub const PDCIT_ONDISKALL: PROPDESC_COLUMNINDEX_TYPE = 4i32; +pub const PDCIT_ONDISKVECTOR: PROPDESC_COLUMNINDEX_TYPE = 5i32; +pub const PDCOT_BOOLEAN: PROPDESC_CONDITION_TYPE = 4i32; +pub const PDCOT_DATETIME: PROPDESC_CONDITION_TYPE = 3i32; +pub const PDCOT_NONE: PROPDESC_CONDITION_TYPE = 0i32; +pub const PDCOT_NUMBER: PROPDESC_CONDITION_TYPE = 5i32; +pub const PDCOT_SIZE: PROPDESC_CONDITION_TYPE = 2i32; +pub const PDCOT_STRING: PROPDESC_CONDITION_TYPE = 1i32; +pub const PDDT_BOOLEAN: PROPDESC_DISPLAYTYPE = 2i32; +pub const PDDT_DATETIME: PROPDESC_DISPLAYTYPE = 3i32; +pub const PDDT_ENUMERATED: PROPDESC_DISPLAYTYPE = 4i32; +pub const PDDT_NUMBER: PROPDESC_DISPLAYTYPE = 1i32; +pub const PDDT_STRING: PROPDESC_DISPLAYTYPE = 0i32; +pub const PDEF_ALL: PROPDESC_ENUMFILTER = 0i32; +pub const PDEF_COLUMN: PROPDESC_ENUMFILTER = 6i32; +pub const PDEF_INFULLTEXTQUERY: PROPDESC_ENUMFILTER = 5i32; +pub const PDEF_NONSYSTEM: PROPDESC_ENUMFILTER = 2i32; +pub const PDEF_QUERYABLE: PROPDESC_ENUMFILTER = 4i32; +pub const PDEF_SYSTEM: PROPDESC_ENUMFILTER = 1i32; +pub const PDEF_VIEWABLE: PROPDESC_ENUMFILTER = 3i32; +pub const PDFF_ALWAYSKB: PROPDESC_FORMAT_FLAGS = 4i32; +pub const PDFF_DEFAULT: PROPDESC_FORMAT_FLAGS = 0i32; +pub const PDFF_FILENAME: PROPDESC_FORMAT_FLAGS = 2i32; +pub const PDFF_HIDEDATE: PROPDESC_FORMAT_FLAGS = 512i32; +pub const PDFF_HIDETIME: PROPDESC_FORMAT_FLAGS = 64i32; +pub const PDFF_LONGDATE: PROPDESC_FORMAT_FLAGS = 256i32; +pub const PDFF_LONGTIME: PROPDESC_FORMAT_FLAGS = 32i32; +pub const PDFF_NOAUTOREADINGORDER: PROPDESC_FORMAT_FLAGS = 8192i32; +pub const PDFF_PREFIXNAME: PROPDESC_FORMAT_FLAGS = 1i32; +pub const PDFF_READONLY: PROPDESC_FORMAT_FLAGS = 4096i32; +pub const PDFF_RELATIVEDATE: PROPDESC_FORMAT_FLAGS = 1024i32; +pub const PDFF_RESERVED_RIGHTTOLEFT: PROPDESC_FORMAT_FLAGS = 8i32; +pub const PDFF_SHORTDATE: PROPDESC_FORMAT_FLAGS = 128i32; +pub const PDFF_SHORTTIME: PROPDESC_FORMAT_FLAGS = 16i32; +pub const PDFF_USEEDITINVITATION: PROPDESC_FORMAT_FLAGS = 2048i32; +pub const PDGR_ALPHANUMERIC: PROPDESC_GROUPING_RANGE = 1i32; +pub const PDGR_DATE: PROPDESC_GROUPING_RANGE = 4i32; +pub const PDGR_DISCRETE: PROPDESC_GROUPING_RANGE = 0i32; +pub const PDGR_DYNAMIC: PROPDESC_GROUPING_RANGE = 3i32; +pub const PDGR_ENUMERATED: PROPDESC_GROUPING_RANGE = 6i32; +pub const PDGR_PERCENT: PROPDESC_GROUPING_RANGE = 5i32; +pub const PDGR_SIZE: PROPDESC_GROUPING_RANGE = 2i32; +pub const PDOPS_CANCELLED: PDOPSTATUS = 3i32; +pub const PDOPS_ERRORS: PDOPSTATUS = 5i32; +pub const PDOPS_PAUSED: PDOPSTATUS = 2i32; +pub const PDOPS_RUNNING: PDOPSTATUS = 1i32; +pub const PDOPS_STOPPED: PDOPSTATUS = 4i32; +pub const PDRDT_COUNT: PROPDESC_RELATIVEDESCRIPTION_TYPE = 3i32; +pub const PDRDT_DATE: PROPDESC_RELATIVEDESCRIPTION_TYPE = 1i32; +pub const PDRDT_DURATION: PROPDESC_RELATIVEDESCRIPTION_TYPE = 6i32; +pub const PDRDT_GENERAL: PROPDESC_RELATIVEDESCRIPTION_TYPE = 0i32; +pub const PDRDT_LENGTH: PROPDESC_RELATIVEDESCRIPTION_TYPE = 5i32; +pub const PDRDT_PRIORITY: PROPDESC_RELATIVEDESCRIPTION_TYPE = 10i32; +pub const PDRDT_RATE: PROPDESC_RELATIVEDESCRIPTION_TYPE = 8i32; +pub const PDRDT_RATING: PROPDESC_RELATIVEDESCRIPTION_TYPE = 9i32; +pub const PDRDT_REVISION: PROPDESC_RELATIVEDESCRIPTION_TYPE = 4i32; +pub const PDRDT_SIZE: PROPDESC_RELATIVEDESCRIPTION_TYPE = 2i32; +pub const PDRDT_SPEED: PROPDESC_RELATIVEDESCRIPTION_TYPE = 7i32; +pub const PDSD_A_Z: PROPDESC_SORTDESCRIPTION = 1i32; +pub const PDSD_GENERAL: PROPDESC_SORTDESCRIPTION = 0i32; +pub const PDSD_LOWEST_HIGHEST: PROPDESC_SORTDESCRIPTION = 2i32; +pub const PDSD_OLDEST_NEWEST: PROPDESC_SORTDESCRIPTION = 4i32; +pub const PDSD_SMALLEST_BIGGEST: PROPDESC_SORTDESCRIPTION = 3i32; +pub const PDSIF_ALWAYSINCLUDE: PROPDESC_SEARCHINFO_FLAGS = 8i32; +pub const PDSIF_DEFAULT: PROPDESC_SEARCHINFO_FLAGS = 0i32; +pub const PDSIF_ININVERTEDINDEX: PROPDESC_SEARCHINFO_FLAGS = 1i32; +pub const PDSIF_ISCOLUMN: PROPDESC_SEARCHINFO_FLAGS = 2i32; +pub const PDSIF_ISCOLUMNSPARSE: PROPDESC_SEARCHINFO_FLAGS = 4i32; +pub const PDSIF_USEFORTYPEAHEAD: PROPDESC_SEARCHINFO_FLAGS = 16i32; +pub const PDTF_ALWAYSINSUPPLEMENTALSTORE: PROPDESC_TYPE_FLAGS = 4096u32; +pub const PDTF_CANBEPURGED: PROPDESC_TYPE_FLAGS = 512u32; +pub const PDTF_CANGROUPBY: PROPDESC_TYPE_FLAGS = 8u32; +pub const PDTF_CANSTACKBY: PROPDESC_TYPE_FLAGS = 16u32; +pub const PDTF_DEFAULT: PROPDESC_TYPE_FLAGS = 0u32; +pub const PDTF_DONTCOERCEEMPTYSTRINGS: PROPDESC_TYPE_FLAGS = 2048u32; +pub const PDTF_INCLUDEINFULLTEXTQUERY: PROPDESC_TYPE_FLAGS = 64u32; +pub const PDTF_ISGROUP: PROPDESC_TYPE_FLAGS = 4u32; +pub const PDTF_ISINNATE: PROPDESC_TYPE_FLAGS = 2u32; +pub const PDTF_ISQUERYABLE: PROPDESC_TYPE_FLAGS = 256u32; +pub const PDTF_ISSYSTEMPROPERTY: PROPDESC_TYPE_FLAGS = 2147483648u32; +pub const PDTF_ISTREEPROPERTY: PROPDESC_TYPE_FLAGS = 32u32; +pub const PDTF_ISVIEWABLE: PROPDESC_TYPE_FLAGS = 128u32; +pub const PDTF_MASK_ALL: PROPDESC_TYPE_FLAGS = 2147491839u32; +pub const PDTF_MULTIPLEVALUES: PROPDESC_TYPE_FLAGS = 1u32; +pub const PDTF_SEARCHRAWVALUE: PROPDESC_TYPE_FLAGS = 1024u32; +pub const PDVF_BEGINNEWGROUP: PROPDESC_VIEW_FLAGS = 4i32; +pub const PDVF_CANWRAP: PROPDESC_VIEW_FLAGS = 4096i32; +pub const PDVF_CENTERALIGN: PROPDESC_VIEW_FLAGS = 1i32; +pub const PDVF_DEFAULT: PROPDESC_VIEW_FLAGS = 0i32; +pub const PDVF_FILLAREA: PROPDESC_VIEW_FLAGS = 8i32; +pub const PDVF_HIDDEN: PROPDESC_VIEW_FLAGS = 2048i32; +pub const PDVF_HIDELABEL: PROPDESC_VIEW_FLAGS = 512i32; +pub const PDVF_MASK_ALL: PROPDESC_VIEW_FLAGS = 7167i32; +pub const PDVF_RIGHTALIGN: PROPDESC_VIEW_FLAGS = 2i32; +pub const PDVF_SHOWBYDEFAULT: PROPDESC_VIEW_FLAGS = 64i32; +pub const PDVF_SHOWINPRIMARYLIST: PROPDESC_VIEW_FLAGS = 128i32; +pub const PDVF_SHOWINSECONDARYLIST: PROPDESC_VIEW_FLAGS = 256i32; +pub const PDVF_SHOWONLYIFPRESENT: PROPDESC_VIEW_FLAGS = 32i32; +pub const PDVF_SORTDESCENDING: PROPDESC_VIEW_FLAGS = 16i32; +pub const PET_DEFAULTVALUE: PROPENUMTYPE = 2i32; +pub const PET_DISCRETEVALUE: PROPENUMTYPE = 0i32; +pub const PET_ENDRANGE: PROPENUMTYPE = 3i32; +pub const PET_RANGEDVALUE: PROPENUMTYPE = 1i32; +pub const PKA_APPEND: PKA_FLAGS = 1i32; +pub const PKA_DELETE: PKA_FLAGS = 2i32; +pub const PKA_SET: PKA_FLAGS = 0i32; +pub const PKEY_PIDSTR_MAX: u32 = 10u32; +pub const PSC_DIRTY: PSC_STATE = 2i32; +pub const PSC_NORMAL: PSC_STATE = 0i32; +pub const PSC_NOTINSOURCE: PSC_STATE = 1i32; +pub const PSC_READONLY: PSC_STATE = 3i32; +pub const PS_ALL: PLACEHOLDER_STATES = 15i32; +pub const PS_CLOUDFILE_PLACEHOLDER: PLACEHOLDER_STATES = 8i32; +pub const PS_CREATE_FILE_ACCESSIBLE: PLACEHOLDER_STATES = 4i32; +pub const PS_DEFAULT: PLACEHOLDER_STATES = 7i32; +pub const PS_FULL_PRIMARY_STREAM_AVAILABLE: PLACEHOLDER_STATES = 2i32; +pub const PS_MARKED_FOR_OFFLINE_AVAILABILITY: PLACEHOLDER_STATES = 1i32; +pub const PS_NONE: PLACEHOLDER_STATES = 0i32; +pub const PUIFFDF_DEFAULT: PROPERTYUI_FORMAT_FLAGS = 0i32; +pub const PUIFFDF_FRIENDLYDATE: PROPERTYUI_FORMAT_FLAGS = 8i32; +pub const PUIFFDF_NOTIME: PROPERTYUI_FORMAT_FLAGS = 4i32; +pub const PUIFFDF_RIGHTTOLEFT: PROPERTYUI_FORMAT_FLAGS = 1i32; +pub const PUIFFDF_SHORTFORMAT: PROPERTYUI_FORMAT_FLAGS = 2i32; +pub const PUIFNF_DEFAULT: PROPERTYUI_NAME_FLAGS = 0i32; +pub const PUIFNF_MNEMONIC: PROPERTYUI_NAME_FLAGS = 1i32; +pub const PUIF_DEFAULT: PROPERTYUI_FLAGS = 0i32; +pub const PUIF_NOLABELININFOTIP: PROPERTYUI_FLAGS = 2i32; +pub const PUIF_RIGHTALIGN: PROPERTYUI_FLAGS = 1i32; +pub const PropertySystem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb8967f85_58ae_4f46_9fb2_5d7904798f4b); +pub const SESF_ALL_FLAGS: SYNC_ENGINE_STATE_FLAGS = 511i32; +pub const SESF_AUTHENTICATION_ERROR: SYNC_ENGINE_STATE_FLAGS = 4i32; +pub const SESF_NONE: SYNC_ENGINE_STATE_FLAGS = 0i32; +pub const SESF_PAUSED_DUE_TO_CLIENT_POLICY: SYNC_ENGINE_STATE_FLAGS = 32i32; +pub const SESF_PAUSED_DUE_TO_DISK_SPACE_FULL: SYNC_ENGINE_STATE_FLAGS = 16i32; +pub const SESF_PAUSED_DUE_TO_METERED_NETWORK: SYNC_ENGINE_STATE_FLAGS = 8i32; +pub const SESF_PAUSED_DUE_TO_SERVICE_POLICY: SYNC_ENGINE_STATE_FLAGS = 64i32; +pub const SESF_PAUSED_DUE_TO_USER_REQUEST: SYNC_ENGINE_STATE_FLAGS = 256i32; +pub const SESF_SERVICE_QUOTA_EXCEEDED_LIMIT: SYNC_ENGINE_STATE_FLAGS = 2i32; +pub const SESF_SERVICE_QUOTA_NEARING_LIMIT: SYNC_ENGINE_STATE_FLAGS = 1i32; +pub const SESF_SERVICE_UNAVAILABLE: SYNC_ENGINE_STATE_FLAGS = 128i32; +pub const STS_EXCLUDED: SYNC_TRANSFER_STATUS = 256i32; +pub const STS_FETCHING_METADATA: SYNC_TRANSFER_STATUS = 32i32; +pub const STS_HASERROR: SYNC_TRANSFER_STATUS = 16i32; +pub const STS_HASWARNING: SYNC_TRANSFER_STATUS = 128i32; +pub const STS_INCOMPLETE: SYNC_TRANSFER_STATUS = 512i32; +pub const STS_NEEDSDOWNLOAD: SYNC_TRANSFER_STATUS = 2i32; +pub const STS_NEEDSUPLOAD: SYNC_TRANSFER_STATUS = 1i32; +pub const STS_NONE: SYNC_TRANSFER_STATUS = 0i32; +pub const STS_PAUSED: SYNC_TRANSFER_STATUS = 8i32; +pub const STS_PLACEHOLDER_IFEMPTY: SYNC_TRANSFER_STATUS = 1024i32; +pub const STS_TRANSFERRING: SYNC_TRANSFER_STATUS = 4i32; +pub const STS_USER_REQUESTED_REFRESH: SYNC_TRANSFER_STATUS = 64i32; +pub type GETPROPERTYSTOREFLAGS = i32; +pub type PDOPSTATUS = i32; +pub type PKA_FLAGS = i32; +pub type PLACEHOLDER_STATES = i32; +pub type PROPDESC_AGGREGATION_TYPE = i32; +pub type PROPDESC_COLUMNINDEX_TYPE = i32; +pub type PROPDESC_CONDITION_TYPE = i32; +pub type PROPDESC_DISPLAYTYPE = i32; +pub type PROPDESC_ENUMFILTER = i32; +pub type PROPDESC_FORMAT_FLAGS = i32; +pub type PROPDESC_GROUPING_RANGE = i32; +pub type PROPDESC_RELATIVEDESCRIPTION_TYPE = i32; +pub type PROPDESC_SEARCHINFO_FLAGS = i32; +pub type PROPDESC_SORTDESCRIPTION = i32; +pub type PROPDESC_TYPE_FLAGS = u32; +pub type PROPDESC_VIEW_FLAGS = i32; +pub type PROPENUMTYPE = i32; +pub type PROPERTYUI_FLAGS = i32; +pub type PROPERTYUI_FORMAT_FLAGS = i32; +pub type PROPERTYUI_NAME_FLAGS = i32; +pub type PSC_STATE = i32; +pub type SYNC_ENGINE_STATE_FLAGS = i32; +pub type SYNC_TRANSFER_STATUS = i32; +pub type _PERSIST_SPROPSTORE_FLAGS = i32; +pub type PCUSERIALIZEDPROPSTORAGE = isize; +#[repr(C)] +pub struct PROPERTYKEY { + pub fmtid: ::windows_sys::core::GUID, + pub pid: u32, +} +impl ::core::marker::Copy for PROPERTYKEY {} +impl ::core::clone::Clone for PROPERTYKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct PROPPRG { + pub flPrg: u16, + pub flPrgInit: u16, + pub achTitle: [u8; 30], + pub achCmdLine: [u8; 128], + pub achWorkDir: [u8; 64], + pub wHotKey: u16, + pub achIconFile: [u8; 80], + pub wIconIndex: u16, + pub dwEnhModeFlags: u32, + pub dwRealModeFlags: u32, + pub achOtherFile: [u8; 80], + pub achPIFFile: [u8; 260], +} +impl ::core::marker::Copy for PROPPRG {} +impl ::core::clone::Clone for PROPPRG { + fn clone(&self) -> Self { + *self + } +} +pub type SERIALIZEDPROPSTORAGE = isize; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Shell/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Shell/mod.rs new file mode 100644 index 000000000..86b7a3f03 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/Shell/mod.rs @@ -0,0 +1,8643 @@ +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +pub mod PropertiesSystem; +::windows_targets::link!("shlwapi.dll" "system" fn AssocCreate(clsid : ::windows_sys::core::GUID, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn AssocCreateForClasses(rgclasses : *const ASSOCIATIONELEMENT, cclasses : u32, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn AssocGetDetailsOfPropKey(psf : IShellFolder, pidl : *const Common:: ITEMIDLIST, pkey : *const PropertiesSystem:: PROPERTYKEY, pv : *mut super::super::System::Variant:: VARIANT, pffoundpropkey : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn AssocGetPerceivedType(pszext : ::windows_sys::core::PCWSTR, ptype : *mut Common:: PERCEIVED, pflag : *mut u32, ppsztype : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AssocIsDangerous(pszassoc : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn AssocQueryKeyA(flags : ASSOCF, key : ASSOCKEY, pszassoc : ::windows_sys::core::PCSTR, pszextra : ::windows_sys::core::PCSTR, phkeyout : *mut super::super::System::Registry:: HKEY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn AssocQueryKeyW(flags : ASSOCF, key : ASSOCKEY, pszassoc : ::windows_sys::core::PCWSTR, pszextra : ::windows_sys::core::PCWSTR, phkeyout : *mut super::super::System::Registry:: HKEY) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn AssocQueryStringA(flags : ASSOCF, str : ASSOCSTR, pszassoc : ::windows_sys::core::PCSTR, pszextra : ::windows_sys::core::PCSTR, pszout : ::windows_sys::core::PSTR, pcchout : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn AssocQueryStringByKeyA(flags : ASSOCF, str : ASSOCSTR, hkassoc : super::super::System::Registry:: HKEY, pszextra : ::windows_sys::core::PCSTR, pszout : ::windows_sys::core::PSTR, pcchout : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn AssocQueryStringByKeyW(flags : ASSOCF, str : ASSOCSTR, hkassoc : super::super::System::Registry:: HKEY, pszextra : ::windows_sys::core::PCWSTR, pszout : ::windows_sys::core::PWSTR, pcchout : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn AssocQueryStringW(flags : ASSOCF, str : ASSOCSTR, pszassoc : ::windows_sys::core::PCWSTR, pszextra : ::windows_sys::core::PCWSTR, pszout : ::windows_sys::core::PWSTR, pcchout : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Registry\"`, `\"Win32_UI_Shell_Common\"`"] fn CDefFolderMenu_Create2(pidlfolder : *const Common:: ITEMIDLIST, hwnd : super::super::Foundation:: HWND, cidl : u32, apidl : *const *const Common:: ITEMIDLIST, psf : IShellFolder, pfn : LPFNDFMCALLBACK, nkeys : u32, ahkeys : *const super::super::System::Registry:: HKEY, ppcm : *mut IContextMenu) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`"] fn CIDLData_CreateFromIDArray(pidlfolder : *const Common:: ITEMIDLIST, cidl : u32, apidl : *const *const Common:: ITEMIDLIST, ppdtobj : *mut super::super::System::Com:: IDataObject) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChrCmpIA(w1 : u16, w2 : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChrCmpIW(w1 : u16, w2 : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ColorAdjustLuma(clrrgb : super::super::Foundation:: COLORREF, n : i32, fscale : super::super::Foundation:: BOOL) -> super::super::Foundation:: COLORREF); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ColorHLSToRGB(whue : u16, wluminance : u16, wsaturation : u16) -> super::super::Foundation:: COLORREF); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ColorRGBToHLS(clrrgb : super::super::Foundation:: COLORREF, pwhue : *mut u16, pwluminance : *mut u16, pwsaturation : *mut u16) -> ()); +::windows_targets::link!("shell32.dll" "system" fn CommandLineToArgvW(lpcmdline : ::windows_sys::core::PCWSTR, pnumargs : *mut i32) -> *mut ::windows_sys::core::PWSTR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn ConnectToConnectionPoint(punk : ::windows_sys::core::IUnknown, riidevent : *const ::windows_sys::core::GUID, fconnect : super::super::Foundation:: BOOL, punktarget : ::windows_sys::core::IUnknown, pdwcookie : *mut u32, ppcpout : *mut super::super::System::Com:: IConnectionPoint) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("userenv.dll" "system" fn CreateProfile(pszusersid : ::windows_sys::core::PCWSTR, pszusername : ::windows_sys::core::PCWSTR, pszprofilepath : ::windows_sys::core::PWSTR, cchprofilepath : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DAD_AutoScroll(hwnd : super::super::Foundation:: HWND, pad : *mut AUTO_SCROLL_DATA, pptnow : *const super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DAD_DragEnterEx(hwndtarget : super::super::Foundation:: HWND, ptstart : super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn DAD_DragEnterEx2(hwndtarget : super::super::Foundation:: HWND, ptstart : super::super::Foundation:: POINT, pdtobject : super::super::System::Com:: IDataObject) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DAD_DragLeave() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DAD_DragMove(pt : super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn DAD_SetDragImage(him : super::Controls:: HIMAGELIST, pptoffset : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DAD_ShowDragImage(fshow : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefSubclassProc(hwnd : super::super::Foundation:: HWND, umsg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteProfileA(lpsidstring : ::windows_sys::core::PCSTR, lpprofilepath : ::windows_sys::core::PCSTR, lpcomputername : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteProfileW(lpsidstring : ::windows_sys::core::PCWSTR, lpprofilepath : ::windows_sys::core::PCWSTR, lpcomputername : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shell32.dll" "system" fn DoEnvironmentSubstA(pszsrc : ::windows_sys::core::PSTR, cchsrc : u32) -> u32); +::windows_targets::link!("shell32.dll" "system" fn DoEnvironmentSubstW(pszsrc : ::windows_sys::core::PWSTR, cchsrc : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DragAcceptFiles(hwnd : super::super::Foundation:: HWND, faccept : super::super::Foundation:: BOOL) -> ()); +::windows_targets::link!("shell32.dll" "system" fn DragFinish(hdrop : HDROP) -> ()); +::windows_targets::link!("shell32.dll" "system" fn DragQueryFileA(hdrop : HDROP, ifile : u32, lpszfile : ::windows_sys::core::PSTR, cch : u32) -> u32); +::windows_targets::link!("shell32.dll" "system" fn DragQueryFileW(hdrop : HDROP, ifile : u32, lpszfile : ::windows_sys::core::PWSTR, cch : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DragQueryPoint(hdrop : HDROP, ppt : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shell32.dll" "system" fn DriveType(idrive : i32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn DuplicateIcon(hinst : super::super::Foundation:: HINSTANCE, hicon : super::WindowsAndMessaging:: HICON) -> super::WindowsAndMessaging:: HICON); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ExtractAssociatedIconA(hinst : super::super::Foundation:: HINSTANCE, psziconpath : ::windows_sys::core::PSTR, piicon : *mut u16) -> super::WindowsAndMessaging:: HICON); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ExtractAssociatedIconExA(hinst : super::super::Foundation:: HINSTANCE, psziconpath : ::windows_sys::core::PSTR, piiconindex : *mut u16, piiconid : *mut u16) -> super::WindowsAndMessaging:: HICON); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ExtractAssociatedIconExW(hinst : super::super::Foundation:: HINSTANCE, psziconpath : ::windows_sys::core::PWSTR, piiconindex : *mut u16, piiconid : *mut u16) -> super::WindowsAndMessaging:: HICON); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ExtractAssociatedIconW(hinst : super::super::Foundation:: HINSTANCE, psziconpath : ::windows_sys::core::PWSTR, piicon : *mut u16) -> super::WindowsAndMessaging:: HICON); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ExtractIconA(hinst : super::super::Foundation:: HINSTANCE, pszexefilename : ::windows_sys::core::PCSTR, niconindex : u32) -> super::WindowsAndMessaging:: HICON); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn ExtractIconExA(lpszfile : ::windows_sys::core::PCSTR, niconindex : i32, phiconlarge : *mut super::WindowsAndMessaging:: HICON, phiconsmall : *mut super::WindowsAndMessaging:: HICON, nicons : u32) -> u32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn ExtractIconExW(lpszfile : ::windows_sys::core::PCWSTR, niconindex : i32, phiconlarge : *mut super::WindowsAndMessaging:: HICON, phiconsmall : *mut super::WindowsAndMessaging:: HICON, nicons : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ExtractIconW(hinst : super::super::Foundation:: HINSTANCE, pszexefilename : ::windows_sys::core::PCWSTR, niconindex : u32) -> super::WindowsAndMessaging:: HICON); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindExecutableA(lpfile : ::windows_sys::core::PCSTR, lpdirectory : ::windows_sys::core::PCSTR, lpresult : ::windows_sys::core::PSTR) -> super::super::Foundation:: HINSTANCE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindExecutableW(lpfile : ::windows_sys::core::PCWSTR, lpdirectory : ::windows_sys::core::PCWSTR, lpresult : ::windows_sys::core::PWSTR) -> super::super::Foundation:: HINSTANCE); +::windows_targets::link!("shlwapi.dll" "system" fn GetAcceptLanguagesA(pszlanguages : ::windows_sys::core::PSTR, pcchlanguages : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn GetAcceptLanguagesW(pszlanguages : ::windows_sys::core::PWSTR, pcchlanguages : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAllUsersProfileDirectoryA(lpprofiledir : ::windows_sys::core::PSTR, lpcchsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAllUsersProfileDirectoryW(lpprofiledir : ::windows_sys::core::PWSTR, lpcchsize : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shell32.dll" "system" fn GetCurrentProcessExplicitAppUserModelID(appid : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDefaultUserProfileDirectoryA(lpprofiledir : ::windows_sys::core::PSTR, lpcchsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDefaultUserProfileDirectoryW(lpprofiledir : ::windows_sys::core::PWSTR, lpcchsize : *mut u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-shcore-scaling-l1-1-2.dll" "system" fn GetDpiForShellUIComponent(param0 : SHELL_UI_COMPONENT) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetFileNameFromBrowse(hwnd : super::super::Foundation:: HWND, pszfilepath : ::windows_sys::core::PWSTR, cchfilepath : u32, pszworkingdir : ::windows_sys::core::PCWSTR, pszdefext : ::windows_sys::core::PCWSTR, pszfilters : ::windows_sys::core::PCWSTR, psztitle : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn GetMenuContextHelpId(param0 : super::WindowsAndMessaging:: HMENU) -> u32); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn GetMenuPosFromID(hmenu : super::WindowsAndMessaging:: HMENU, id : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProfileType(dwflags : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProfilesDirectoryA(lpprofiledir : ::windows_sys::core::PSTR, lpcchsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProfilesDirectoryW(lpprofiledir : ::windows_sys::core::PWSTR, lpcchsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("api-ms-win-shcore-scaling-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn GetScaleFactorForDevice(devicetype : DISPLAY_DEVICE_TYPE) -> Common:: DEVICE_SCALE_FACTOR); +#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("api-ms-win-shcore-scaling-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Shell_Common\"`"] fn GetScaleFactorForMonitor(hmon : super::super::Graphics::Gdi:: HMONITOR, pscale : *mut Common:: DEVICE_SCALE_FACTOR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUserProfileDirectoryA(htoken : super::super::Foundation:: HANDLE, lpprofiledir : ::windows_sys::core::PSTR, lpcchsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetUserProfileDirectoryW(htoken : super::super::Foundation:: HANDLE, lpprofiledir : ::windows_sys::core::PWSTR, lpcchsize : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowContextHelpId(param0 : super::super::Foundation:: HWND) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowSubclass(hwnd : super::super::Foundation:: HWND, pfnsubclass : SUBCLASSPROC, uidsubclass : usize, pdwrefdata : *mut usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HMONITOR_UserFree(param0 : *const u32, param1 : *const super::super::Graphics::Gdi:: HMONITOR) -> ()); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HMONITOR_UserFree64(param0 : *const u32, param1 : *const super::super::Graphics::Gdi:: HMONITOR) -> ()); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HMONITOR_UserMarshal(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::Graphics::Gdi:: HMONITOR) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HMONITOR_UserMarshal64(param0 : *const u32, param1 : *mut u8, param2 : *const super::super::Graphics::Gdi:: HMONITOR) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HMONITOR_UserSize(param0 : *const u32, param1 : u32, param2 : *const super::super::Graphics::Gdi:: HMONITOR) -> u32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HMONITOR_UserSize64(param0 : *const u32, param1 : u32, param2 : *const super::super::Graphics::Gdi:: HMONITOR) -> u32); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HMONITOR_UserUnmarshal(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::Graphics::Gdi:: HMONITOR) -> *mut u8); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("ole32.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn HMONITOR_UserUnmarshal64(param0 : *const u32, param1 : *const u8, param2 : *mut super::super::Graphics::Gdi:: HMONITOR) -> *mut u8); +::windows_targets::link!("shlwapi.dll" "system" fn HashData(pbdata : *const u8, cbdata : u32, pbhash : *mut u8, cbhash : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("hlink.dll" "system" fn HlinkClone(pihl : IHlink, riid : *const ::windows_sys::core::GUID, pihlsiteforclone : IHlinkSite, dwsitedata : u32, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("hlink.dll" "system" fn HlinkCreateBrowseContext(piunkouter : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HlinkCreateExtensionServices(pwzadditionalheaders : ::windows_sys::core::PCWSTR, phwnd : super::super::Foundation:: HWND, pszusername : ::windows_sys::core::PCWSTR, pszpassword : ::windows_sys::core::PCWSTR, piunkouter : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn HlinkCreateFromData(pidataobj : super::super::System::Com:: IDataObject, pihlsite : IHlinkSite, dwsitedata : u32, piunkouter : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn HlinkCreateFromMoniker(pimktrgt : super::super::System::Com:: IMoniker, pwzlocation : ::windows_sys::core::PCWSTR, pwzfriendlyname : ::windows_sys::core::PCWSTR, pihlsite : IHlinkSite, dwsitedata : u32, piunkouter : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("hlink.dll" "system" fn HlinkCreateFromString(pwztarget : ::windows_sys::core::PCWSTR, pwzlocation : ::windows_sys::core::PCWSTR, pwzfriendlyname : ::windows_sys::core::PCWSTR, pihlsite : IHlinkSite, dwsitedata : u32, piunkouter : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("hlink.dll" "system" fn HlinkCreateShortcut(grfhlshortcutf : u32, pihl : IHlink, pwzdir : ::windows_sys::core::PCWSTR, pwzfilename : ::windows_sys::core::PCWSTR, ppwzshortcutfile : *mut ::windows_sys::core::PWSTR, dwreserved : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn HlinkCreateShortcutFromMoniker(grfhlshortcutf : u32, pimktarget : super::super::System::Com:: IMoniker, pwzlocation : ::windows_sys::core::PCWSTR, pwzdir : ::windows_sys::core::PCWSTR, pwzfilename : ::windows_sys::core::PCWSTR, ppwzshortcutfile : *mut ::windows_sys::core::PWSTR, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("hlink.dll" "system" fn HlinkCreateShortcutFromString(grfhlshortcutf : u32, pwztarget : ::windows_sys::core::PCWSTR, pwzlocation : ::windows_sys::core::PCWSTR, pwzdir : ::windows_sys::core::PCWSTR, pwzfilename : ::windows_sys::core::PCWSTR, ppwzshortcutfile : *mut ::windows_sys::core::PWSTR, dwreserved : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("hlink.dll" "system" fn HlinkGetSpecialReference(ureference : u32, ppwzreference : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("hlink.dll" "system" fn HlinkGetValueFromParams(pwzparams : ::windows_sys::core::PCWSTR, pwzname : ::windows_sys::core::PCWSTR, ppwzvalue : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("hlink.dll" "system" fn HlinkIsShortcut(pwzfilename : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn HlinkNavigate(pihl : IHlink, pihlframe : IHlinkFrame, grfhlnf : u32, pbc : super::super::System::Com:: IBindCtx, pibsc : super::super::System::Com:: IBindStatusCallback, pihlbc : IHlinkBrowseContext) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn HlinkNavigateToStringReference(pwztarget : ::windows_sys::core::PCWSTR, pwzlocation : ::windows_sys::core::PCWSTR, pihlsite : IHlinkSite, dwsitedata : u32, pihlframe : IHlinkFrame, grfhlnf : u32, pibc : super::super::System::Com:: IBindCtx, pibsc : super::super::System::Com:: IBindStatusCallback, pihlbc : IHlinkBrowseContext) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn HlinkOnNavigate(pihlframe : IHlinkFrame, pihlbc : IHlinkBrowseContext, grfhlnf : u32, pimktarget : super::super::System::Com:: IMoniker, pwzlocation : ::windows_sys::core::PCWSTR, pwzfriendlyname : ::windows_sys::core::PCWSTR, puhlid : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn HlinkOnRenameDocument(dwreserved : u32, pihlbc : IHlinkBrowseContext, pimkold : super::super::System::Com:: IMoniker, pimknew : super::super::System::Com:: IMoniker) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn HlinkParseDisplayName(pibc : super::super::System::Com:: IBindCtx, pwzdisplayname : ::windows_sys::core::PCWSTR, fnoforceabs : super::super::Foundation:: BOOL, pccheaten : *mut u32, ppimk : *mut super::super::System::Com:: IMoniker) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn HlinkPreprocessMoniker(pibc : super::super::System::Com:: IBindCtx, pimkin : super::super::System::Com:: IMoniker, ppimkout : *mut super::super::System::Com:: IMoniker) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn HlinkQueryCreateFromData(pidataobj : super::super::System::Com:: IDataObject) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn HlinkResolveMonikerForData(pimkreference : super::super::System::Com:: IMoniker, reserved : u32, pibc : super::super::System::Com:: IBindCtx, cfmtetc : u32, rgfmtetc : *mut super::super::System::Com:: FORMATETC, pibsc : super::super::System::Com:: IBindStatusCallback, pimkbase : super::super::System::Com:: IMoniker) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("hlink.dll" "system" fn HlinkResolveShortcut(pwzshortcutfilename : ::windows_sys::core::PCWSTR, pihlsite : IHlinkSite, dwsitedata : u32, piunkouter : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn HlinkResolveShortcutToMoniker(pwzshortcutfilename : ::windows_sys::core::PCWSTR, ppimktarget : *mut super::super::System::Com:: IMoniker, ppwzlocation : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("hlink.dll" "system" fn HlinkResolveShortcutToString(pwzshortcutfilename : ::windows_sys::core::PCWSTR, ppwztarget : *mut ::windows_sys::core::PWSTR, ppwzlocation : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn HlinkResolveStringForData(pwzreference : ::windows_sys::core::PCWSTR, reserved : u32, pibc : super::super::System::Com:: IBindCtx, cfmtetc : u32, rgfmtetc : *mut super::super::System::Com:: FORMATETC, pibsc : super::super::System::Com:: IBindStatusCallback, pimkbase : super::super::System::Com:: IMoniker) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("hlink.dll" "system" fn HlinkSetSpecialReference(ureference : u32, pwzreference : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("hlink.dll" "system" fn HlinkTranslateURL(pwzurl : ::windows_sys::core::PCWSTR, grfflags : u32, ppwztranslatedurl : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn HlinkUpdateStackItem(pihlframe : IHlinkFrame, pihlbc : IHlinkBrowseContext, uhlid : u32, pimktrgt : super::super::System::Com:: IMoniker, pwzlocation : ::windows_sys::core::PCWSTR, pwzfriendlyname : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn ILAppendID(pidl : *const Common:: ITEMIDLIST, pmkid : *const Common:: SHITEMID, fappend : super::super::Foundation:: BOOL) -> *mut Common:: ITEMIDLIST); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn ILClone(pidl : *const Common:: ITEMIDLIST) -> *mut Common:: ITEMIDLIST); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn ILCloneFirst(pidl : *const Common:: ITEMIDLIST) -> *mut Common:: ITEMIDLIST); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn ILCombine(pidl1 : *const Common:: ITEMIDLIST, pidl2 : *const Common:: ITEMIDLIST) -> *mut Common:: ITEMIDLIST); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn ILCreateFromPathA(pszpath : ::windows_sys::core::PCSTR) -> *mut Common:: ITEMIDLIST); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn ILCreateFromPathW(pszpath : ::windows_sys::core::PCWSTR) -> *mut Common:: ITEMIDLIST); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn ILFindChild(pidlparent : *const Common:: ITEMIDLIST, pidlchild : *const Common:: ITEMIDLIST) -> *mut Common:: ITEMIDLIST); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn ILFindLastID(pidl : *const Common:: ITEMIDLIST) -> *mut Common:: ITEMIDLIST); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn ILFree(pidl : *const Common:: ITEMIDLIST) -> ()); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn ILGetNext(pidl : *const Common:: ITEMIDLIST) -> *mut Common:: ITEMIDLIST); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn ILGetSize(pidl : *const Common:: ITEMIDLIST) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn ILIsEqual(pidl1 : *const Common:: ITEMIDLIST, pidl2 : *const Common:: ITEMIDLIST) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn ILIsParent(pidl1 : *const Common:: ITEMIDLIST, pidl2 : *const Common:: ITEMIDLIST, fimmediate : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`"] fn ILLoadFromStreamEx(pstm : super::super::System::Com:: IStream, pidl : *mut *mut Common:: ITEMIDLIST) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn ILRemoveLastID(pidl : *mut Common:: ITEMIDLIST) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`"] fn ILSaveToStream(pstm : super::super::System::Com:: IStream, pidl : *const Common:: ITEMIDLIST) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn IStream_Copy(pstmfrom : super::super::System::Com:: IStream, pstmto : super::super::System::Com:: IStream, cb : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn IStream_Read(pstm : super::super::System::Com:: IStream, pv : *mut ::core::ffi::c_void, cb : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`"] fn IStream_ReadPidl(pstm : super::super::System::Com:: IStream, ppidlout : *mut *mut Common:: ITEMIDLIST) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn IStream_ReadStr(pstm : super::super::System::Com:: IStream, ppsz : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn IStream_Reset(pstm : super::super::System::Com:: IStream) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn IStream_Size(pstm : super::super::System::Com:: IStream, pui : *mut u64) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn IStream_Write(pstm : super::super::System::Com:: IStream, pv : *const ::core::ffi::c_void, cb : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`"] fn IStream_WritePidl(pstm : super::super::System::Com:: IStream, pidlwrite : *const Common:: ITEMIDLIST) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn IStream_WriteStr(pstm : super::super::System::Com:: IStream, psz : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn IUnknown_AtomicRelease(ppunk : *mut *mut ::core::ffi::c_void) -> ()); +::windows_targets::link!("shlwapi.dll" "system" fn IUnknown_GetSite(punk : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IUnknown_GetWindow(punk : ::windows_sys::core::IUnknown, phwnd : *mut super::super::Foundation:: HWND) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn IUnknown_QueryService(punk : ::windows_sys::core::IUnknown, guidservice : *const ::windows_sys::core::GUID, riid : *const ::windows_sys::core::GUID, ppvout : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn IUnknown_Set(ppunk : *mut ::windows_sys::core::IUnknown, punk : ::windows_sys::core::IUnknown) -> ()); +::windows_targets::link!("shlwapi.dll" "system" fn IUnknown_SetSite(punk : ::windows_sys::core::IUnknown, punksite : ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shdocvw.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ImportPrivacySettings(pszfilename : ::windows_sys::core::PCWSTR, pfparseprivacypreferences : *mut super::super::Foundation:: BOOL, pfparsepersiterules : *mut super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InitNetworkAddressControl() -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_Common\"`"] fn InitPropVariantFromStrRet(pstrret : *mut Common:: STRRET, pidl : *const Common:: ITEMIDLIST, ppropvar : *mut super::super::System::Com::StructuredStorage:: PROPVARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_Common\"`"] fn InitVariantFromStrRet(pstrret : *const Common:: STRRET, pidl : *const Common:: ITEMIDLIST, pvar : *mut super::super::System::Variant:: VARIANT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IntlStrEqWorkerA(fcasesens : super::super::Foundation:: BOOL, lpstring1 : ::windows_sys::core::PCSTR, lpstring2 : ::windows_sys::core::PCSTR, nchar : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IntlStrEqWorkerW(fcasesens : super::super::Foundation:: BOOL, lpstring1 : ::windows_sys::core::PCWSTR, lpstring2 : ::windows_sys::core::PCWSTR, nchar : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsCharSpaceA(wch : u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsCharSpaceW(wch : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsInternetESCEnabled() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsLFNDriveA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsLFNDriveW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shell32.dll" "system" fn IsNetDrive(idrive : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsOS(dwos : OS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsUserAnAdmin() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadUserProfileA(htoken : super::super::Foundation:: HANDLE, lpprofileinfo : *mut PROFILEINFOA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadUserProfileW(htoken : super::super::Foundation:: HANDLE, lpprofileinfo : *mut PROFILEINFOW) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("hlink.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn OleSaveToStreamEx(piunk : ::windows_sys::core::IUnknown, pistm : super::super::System::Com:: IStream, fcleardirty : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Registry"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Registry\"`"] fn OpenRegStream(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCWSTR, pszvalue : ::windows_sys::core::PCWSTR, grfmode : u32) -> super::super::System::Com:: IStream); +::windows_targets::link!("shlwapi.dll" "system" fn ParseURLA(pcszurl : ::windows_sys::core::PCSTR, ppu : *mut PARSEDURLA) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn ParseURLW(pcszurl : ::windows_sys::core::PCWSTR, ppu : *mut PARSEDURLW) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn PathAddBackslashA(pszpath : ::windows_sys::core::PSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathAddBackslashW(pszpath : ::windows_sys::core::PWSTR) -> ::windows_sys::core::PWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathAddExtensionA(pszpath : ::windows_sys::core::PSTR, pszext : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathAddExtensionW(pszpath : ::windows_sys::core::PWSTR, pszext : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathAllocCanonicalize(pszpathin : ::windows_sys::core::PCWSTR, dwflags : PATHCCH_OPTIONS, ppszpathout : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathAllocCombine(pszpathin : ::windows_sys::core::PCWSTR, pszmore : ::windows_sys::core::PCWSTR, dwflags : PATHCCH_OPTIONS, ppszpathout : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathAppendA(pszpath : ::windows_sys::core::PSTR, pszmore : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathAppendW(pszpath : ::windows_sys::core::PWSTR, pszmore : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn PathBuildRootA(pszroot : ::windows_sys::core::PSTR, idrive : i32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathBuildRootW(pszroot : ::windows_sys::core::PWSTR, idrive : i32) -> ::windows_sys::core::PWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathCanonicalizeA(pszbuf : ::windows_sys::core::PSTR, pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathCanonicalizeW(pszbuf : ::windows_sys::core::PWSTR, pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchAddBackslash(pszpath : ::windows_sys::core::PWSTR, cchpath : usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchAddBackslashEx(pszpath : ::windows_sys::core::PWSTR, cchpath : usize, ppszend : *mut ::windows_sys::core::PWSTR, pcchremaining : *mut usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchAddExtension(pszpath : ::windows_sys::core::PWSTR, cchpath : usize, pszext : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchAppend(pszpath : ::windows_sys::core::PWSTR, cchpath : usize, pszmore : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchAppendEx(pszpath : ::windows_sys::core::PWSTR, cchpath : usize, pszmore : ::windows_sys::core::PCWSTR, dwflags : PATHCCH_OPTIONS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchCanonicalize(pszpathout : ::windows_sys::core::PWSTR, cchpathout : usize, pszpathin : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchCanonicalizeEx(pszpathout : ::windows_sys::core::PWSTR, cchpathout : usize, pszpathin : ::windows_sys::core::PCWSTR, dwflags : PATHCCH_OPTIONS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchCombine(pszpathout : ::windows_sys::core::PWSTR, cchpathout : usize, pszpathin : ::windows_sys::core::PCWSTR, pszmore : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchCombineEx(pszpathout : ::windows_sys::core::PWSTR, cchpathout : usize, pszpathin : ::windows_sys::core::PCWSTR, pszmore : ::windows_sys::core::PCWSTR, dwflags : PATHCCH_OPTIONS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchFindExtension(pszpath : ::windows_sys::core::PCWSTR, cchpath : usize, ppszext : *mut ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathCchIsRoot(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchRemoveBackslash(pszpath : ::windows_sys::core::PWSTR, cchpath : usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchRemoveBackslashEx(pszpath : ::windows_sys::core::PWSTR, cchpath : usize, ppszend : *mut ::windows_sys::core::PWSTR, pcchremaining : *mut usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchRemoveExtension(pszpath : ::windows_sys::core::PWSTR, cchpath : usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchRemoveFileSpec(pszpath : ::windows_sys::core::PWSTR, cchpath : usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchRenameExtension(pszpath : ::windows_sys::core::PWSTR, cchpath : usize, pszext : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchSkipRoot(pszpath : ::windows_sys::core::PCWSTR, ppszrootend : *mut ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchStripPrefix(pszpath : ::windows_sys::core::PWSTR, cchpath : usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" fn PathCchStripToRoot(pszpath : ::windows_sys::core::PWSTR, cchpath : usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn PathCleanupSpec(pszdir : ::windows_sys::core::PCWSTR, pszspec : ::windows_sys::core::PWSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn PathCombineA(pszdest : ::windows_sys::core::PSTR, pszdir : ::windows_sys::core::PCSTR, pszfile : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathCombineW(pszdest : ::windows_sys::core::PWSTR, pszdir : ::windows_sys::core::PCWSTR, pszfile : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathCommonPrefixA(pszfile1 : ::windows_sys::core::PCSTR, pszfile2 : ::windows_sys::core::PCSTR, achpath : ::windows_sys::core::PSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn PathCommonPrefixW(pszfile1 : ::windows_sys::core::PCWSTR, pszfile2 : ::windows_sys::core::PCWSTR, achpath : ::windows_sys::core::PWSTR) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn PathCompactPathA(hdc : super::super::Graphics::Gdi:: HDC, pszpath : ::windows_sys::core::PSTR, dx : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathCompactPathExA(pszout : ::windows_sys::core::PSTR, pszsrc : ::windows_sys::core::PCSTR, cchmax : u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathCompactPathExW(pszout : ::windows_sys::core::PWSTR, pszsrc : ::windows_sys::core::PCWSTR, cchmax : u32, dwflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn PathCompactPathW(hdc : super::super::Graphics::Gdi:: HDC, pszpath : ::windows_sys::core::PWSTR, dx : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn PathCreateFromUrlA(pszurl : ::windows_sys::core::PCSTR, pszpath : ::windows_sys::core::PSTR, pcchpath : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn PathCreateFromUrlAlloc(pszin : ::windows_sys::core::PCWSTR, ppszout : *mut ::windows_sys::core::PWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn PathCreateFromUrlW(pszurl : ::windows_sys::core::PCWSTR, pszpath : ::windows_sys::core::PWSTR, pcchpath : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathFileExistsA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathFileExistsW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn PathFindExtensionA(pszpath : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathFindExtensionW(pszpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathFindFileNameA(pszpath : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathFindFileNameW(pszpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathFindNextComponentA(pszpath : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathFindNextComponentW(pszpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathFindOnPathA(pszpath : ::windows_sys::core::PSTR, ppszotherdirs : *const *const i8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathFindOnPathW(pszpath : ::windows_sys::core::PWSTR, ppszotherdirs : *const *const u16) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn PathFindSuffixArrayA(pszpath : ::windows_sys::core::PCSTR, apszsuffix : *const ::windows_sys::core::PCSTR, iarraysize : i32) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathFindSuffixArrayW(pszpath : ::windows_sys::core::PCWSTR, apszsuffix : *const ::windows_sys::core::PCWSTR, iarraysize : i32) -> ::windows_sys::core::PCWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathGetArgsA(pszpath : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathGetArgsW(pszpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathGetCharTypeA(ch : u8) -> u32); +::windows_targets::link!("shlwapi.dll" "system" fn PathGetCharTypeW(ch : u16) -> u32); +::windows_targets::link!("shlwapi.dll" "system" fn PathGetDriveNumberA(pszpath : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn PathGetDriveNumberW(pszpath : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("shell32.dll" "system" fn PathGetShortPath(pszlongpath : ::windows_sys::core::PWSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsContentTypeA(pszpath : ::windows_sys::core::PCSTR, pszcontenttype : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsContentTypeW(pszpath : ::windows_sys::core::PCWSTR, pszcontenttype : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsDirectoryA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsDirectoryEmptyA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsDirectoryEmptyW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsDirectoryW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsExe(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsFileSpecA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsFileSpecW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsLFNFileSpecA(pszname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsLFNFileSpecW(pszname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsNetworkPathA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsNetworkPathW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsPrefixA(pszprefix : ::windows_sys::core::PCSTR, pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsPrefixW(pszprefix : ::windows_sys::core::PCWSTR, pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsRelativeA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsRelativeW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsRootA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsRootW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsSameRootA(pszpath1 : ::windows_sys::core::PCSTR, pszpath2 : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsSameRootW(pszpath1 : ::windows_sys::core::PCWSTR, pszpath2 : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsSlowA(pszfile : ::windows_sys::core::PCSTR, dwattr : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsSlowW(pszfile : ::windows_sys::core::PCWSTR, dwattr : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsSystemFolderA(pszpath : ::windows_sys::core::PCSTR, dwattrb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsSystemFolderW(pszpath : ::windows_sys::core::PCWSTR, dwattrb : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsUNCA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-path-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsUNCEx(pszpath : ::windows_sys::core::PCWSTR, ppszserver : *mut ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsUNCServerA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsUNCServerShareA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsUNCServerShareW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsUNCServerW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsUNCW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsURLA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathIsURLW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathMakePrettyA(pszpath : ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathMakePrettyW(pszpath : ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathMakeSystemFolderA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathMakeSystemFolderW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathMakeUniqueName(pszuniquename : ::windows_sys::core::PWSTR, cchmax : u32, psztemplate : ::windows_sys::core::PCWSTR, pszlongplate : ::windows_sys::core::PCWSTR, pszdir : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathMatchSpecA(pszfile : ::windows_sys::core::PCSTR, pszspec : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn PathMatchSpecExA(pszfile : ::windows_sys::core::PCSTR, pszspec : ::windows_sys::core::PCSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn PathMatchSpecExW(pszfile : ::windows_sys::core::PCWSTR, pszspec : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathMatchSpecW(pszfile : ::windows_sys::core::PCWSTR, pszspec : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn PathParseIconLocationA(psziconfile : ::windows_sys::core::PSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn PathParseIconLocationW(psziconfile : ::windows_sys::core::PWSTR) -> i32); +::windows_targets::link!("shell32.dll" "system" fn PathQualify(psz : ::windows_sys::core::PWSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathQuoteSpacesA(lpsz : ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathQuoteSpacesW(lpsz : ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathRelativePathToA(pszpath : ::windows_sys::core::PSTR, pszfrom : ::windows_sys::core::PCSTR, dwattrfrom : u32, pszto : ::windows_sys::core::PCSTR, dwattrto : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathRelativePathToW(pszpath : ::windows_sys::core::PWSTR, pszfrom : ::windows_sys::core::PCWSTR, dwattrfrom : u32, pszto : ::windows_sys::core::PCWSTR, dwattrto : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn PathRemoveArgsA(pszpath : ::windows_sys::core::PSTR) -> ()); +::windows_targets::link!("shlwapi.dll" "system" fn PathRemoveArgsW(pszpath : ::windows_sys::core::PWSTR) -> ()); +::windows_targets::link!("shlwapi.dll" "system" fn PathRemoveBackslashA(pszpath : ::windows_sys::core::PSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathRemoveBackslashW(pszpath : ::windows_sys::core::PWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathRemoveBlanksA(pszpath : ::windows_sys::core::PSTR) -> ()); +::windows_targets::link!("shlwapi.dll" "system" fn PathRemoveBlanksW(pszpath : ::windows_sys::core::PWSTR) -> ()); +::windows_targets::link!("shlwapi.dll" "system" fn PathRemoveExtensionA(pszpath : ::windows_sys::core::PSTR) -> ()); +::windows_targets::link!("shlwapi.dll" "system" fn PathRemoveExtensionW(pszpath : ::windows_sys::core::PWSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathRemoveFileSpecA(pszpath : ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathRemoveFileSpecW(pszpath : ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathRenameExtensionA(pszpath : ::windows_sys::core::PSTR, pszext : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathRenameExtensionW(pszpath : ::windows_sys::core::PWSTR, pszext : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shell32.dll" "system" fn PathResolve(pszpath : ::windows_sys::core::PWSTR, dirs : *const *const u16, fflags : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathSearchAndQualifyA(pszpath : ::windows_sys::core::PCSTR, pszbuf : ::windows_sys::core::PSTR, cchbuf : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathSearchAndQualifyW(pszpath : ::windows_sys::core::PCWSTR, pszbuf : ::windows_sys::core::PWSTR, cchbuf : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathSetDlgItemPathA(hdlg : super::super::Foundation:: HWND, id : i32, pszpath : ::windows_sys::core::PCSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathSetDlgItemPathW(hdlg : super::super::Foundation:: HWND, id : i32, pszpath : ::windows_sys::core::PCWSTR) -> ()); +::windows_targets::link!("shlwapi.dll" "system" fn PathSkipRootA(pszpath : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathSkipRootW(pszpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn PathStripPathA(pszpath : ::windows_sys::core::PSTR) -> ()); +::windows_targets::link!("shlwapi.dll" "system" fn PathStripPathW(pszpath : ::windows_sys::core::PWSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathStripToRootA(pszpath : ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathStripToRootW(pszpath : ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathUnExpandEnvStringsA(pszpath : ::windows_sys::core::PCSTR, pszbuf : ::windows_sys::core::PSTR, cchbuf : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathUnExpandEnvStringsW(pszpath : ::windows_sys::core::PCWSTR, pszbuf : ::windows_sys::core::PWSTR, cchbuf : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn PathUndecorateA(pszpath : ::windows_sys::core::PSTR) -> ()); +::windows_targets::link!("shlwapi.dll" "system" fn PathUndecorateW(pszpath : ::windows_sys::core::PWSTR) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathUnmakeSystemFolderA(pszpath : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathUnmakeSystemFolderW(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathUnquoteSpacesA(lpsz : ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathUnquoteSpacesW(lpsz : ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PathYetAnotherMakeUniqueName(pszuniquename : ::windows_sys::core::PWSTR, pszpath : ::windows_sys::core::PCWSTR, pszshort : ::windows_sys::core::PCWSTR, pszfilespec : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PickIconDlg(hwnd : super::super::Foundation:: HWND, psziconpath : ::windows_sys::core::PWSTR, cchiconpath : u32, piiconindex : *mut i32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_Common\"`"] fn PropVariantToStrRet(propvar : *const super::super::System::Com::StructuredStorage:: PROPVARIANT, pstrret : *mut Common:: STRRET) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn QISearch(that : *mut ::core::ffi::c_void, pqit : *const QITAB, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReadCabinetState(pcs : *mut CABINETSTATE, clength : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RealDriveType(idrive : i32, foktohitnet : super::super::Foundation:: BOOL) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-psm-appnotify-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterAppConstrainedChangeNotification(routine : PAPPCONSTRAIN_CHANGE_ROUTINE, context : *const ::core::ffi::c_void, registration : *mut PAPPCONSTRAIN_REGISTRATION) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-core-psm-appnotify-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterAppStateChangeNotification(routine : PAPPSTATE_CHANGE_ROUTINE, context : *const ::core::ffi::c_void, registration : *mut PAPPSTATE_REGISTRATION) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-shcore-scaling-l1-1-1.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterScaleChangeEvent(hevent : super::super::Foundation:: HANDLE, pdwcookie : *mut usize) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("api-ms-win-shcore-scaling-l1-1-0.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterScaleChangeNotifications(displaydevice : DISPLAY_DEVICE_TYPE, hwndnotify : super::super::Foundation:: HWND, umsgnotify : u32, pdwcookie : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveWindowSubclass(hwnd : super::super::Foundation:: HWND, pfnsubclass : SUBCLASSPROC, uidsubclass : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RestartDialog(hwnd : super::super::Foundation:: HWND, pszprompt : ::windows_sys::core::PCWSTR, dwreturn : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RestartDialogEx(hwnd : super::super::Foundation:: HWND, pszprompt : ::windows_sys::core::PCWSTR, dwreturn : u32, dwreasoncode : u32) -> i32); +::windows_targets::link!("api-ms-win-shcore-scaling-l1-1-0.dll" "system" fn RevokeScaleChangeNotifications(displaydevice : DISPLAY_DEVICE_TYPE, dwcookie : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn SHAddFromPropSheetExtArray(hpsxa : HPSXA, lpfnaddpage : super::Controls:: LPFNSVADDPROPSHEETPAGE, lparam : super::super::Foundation:: LPARAM) -> u32); +::windows_targets::link!("shell32.dll" "system" fn SHAddToRecentDocs(uflags : u32, pv : *const ::core::ffi::c_void) -> ()); +::windows_targets::link!("shell32.dll" "system" fn SHAlloc(cb : usize) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHAllocShared(pvdata : *const ::core::ffi::c_void, dwsize : u32, dwprocessid : u32) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("shlwapi.dll" "system" fn SHAnsiToAnsi(pszsrc : ::windows_sys::core::PCSTR, pszdst : ::windows_sys::core::PSTR, cchbuf : i32) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn SHAnsiToUnicode(pszsrc : ::windows_sys::core::PCSTR, pwszdst : ::windows_sys::core::PWSTR, cwchbuf : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHAppBarMessage(dwmessage : u32, pdata : *mut APPBARDATA) -> usize); +::windows_targets::link!("shell32.dll" "system" fn SHAssocEnumHandlers(pszextra : ::windows_sys::core::PCWSTR, affilter : ASSOC_FILTER, ppenumhandler : *mut IEnumAssocHandlers) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHAssocEnumHandlersForProtocolByApplication(protocol : ::windows_sys::core::PCWSTR, riid : *const ::windows_sys::core::GUID, enumhandlers : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHAutoComplete(hwndedit : super::super::Foundation:: HWND, dwflags : SHELL_AUTOCOMPLETE_FLAGS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHBindToFolderIDListParent(psfroot : IShellFolder, pidl : *const Common:: ITEMIDLIST, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void, ppidllast : *mut *mut Common:: ITEMIDLIST) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`"] fn SHBindToFolderIDListParentEx(psfroot : IShellFolder, pidl : *const Common:: ITEMIDLIST, ppbc : super::super::System::Com:: IBindCtx, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void, ppidllast : *mut *mut Common:: ITEMIDLIST) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`"] fn SHBindToObject(psf : IShellFolder, pidl : *const Common:: ITEMIDLIST, pbc : super::super::System::Com:: IBindCtx, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHBindToParent(pidl : *const Common:: ITEMIDLIST, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void, ppidllast : *mut *mut Common:: ITEMIDLIST) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn SHBrowseForFolderA(lpbi : *const BROWSEINFOA) -> *mut Common:: ITEMIDLIST); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn SHBrowseForFolderW(lpbi : *const BROWSEINFOW) -> *mut Common:: ITEMIDLIST); +::windows_targets::link!("shell32.dll" "system" fn SHCLSIDFromString(psz : ::windows_sys::core::PCWSTR, pclsid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn SHChangeNotification_Lock(hchange : super::super::Foundation:: HANDLE, dwprocid : u32, pppidl : *mut *mut *mut Common:: ITEMIDLIST, plevent : *mut i32) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHChangeNotification_Unlock(hlock : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shell32.dll" "system" fn SHChangeNotify(weventid : i32, uflags : SHCNF_FLAGS, dwitem1 : *const ::core::ffi::c_void, dwitem2 : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHChangeNotifyDeregister(ulid : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn SHChangeNotifyRegister(hwnd : super::super::Foundation:: HWND, fsources : SHCNRF_SOURCE, fevents : i32, wmsg : u32, centries : i32, pshcne : *const SHChangeNotifyEntry) -> u32); +::windows_targets::link!("shell32.dll" "system" fn SHChangeNotifyRegisterThread(status : SCNRT_STATUS) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn SHCloneSpecialIDList(hwnd : super::super::Foundation:: HWND, csidl : i32, fcreate : super::super::Foundation:: BOOL) -> *mut Common:: ITEMIDLIST); +::windows_targets::link!("shell32.dll" "system" fn SHCoCreateInstance(pszclsid : ::windows_sys::core::PCWSTR, pclsid : *const ::windows_sys::core::GUID, punkouter : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHCopyKeyA(hkeysrc : super::super::System::Registry:: HKEY, pszsrcsubkey : ::windows_sys::core::PCSTR, hkeydest : super::super::System::Registry:: HKEY, freserved : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHCopyKeyW(hkeysrc : super::super::System::Registry:: HKEY, pszsrcsubkey : ::windows_sys::core::PCWSTR, hkeydest : super::super::System::Registry:: HKEY, freserved : u32) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("shell32.dll" "system" fn SHCreateAssociationRegistration(riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`"] fn SHCreateDataObject(pidlfolder : *const Common:: ITEMIDLIST, cidl : u32, apidl : *const *const Common:: ITEMIDLIST, pdtinner : super::super::System::Com:: IDataObject, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`, `\"Win32_UI_Shell_Common\"`"] fn SHCreateDefaultContextMenu(pdcm : *const DEFCONTEXTMENU, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHCreateDefaultExtractIcon(riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHCreateDefaultPropertiesOp(psi : IShellItem, ppfileop : *mut IFileOperation) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHCreateDirectory(hwnd : super::super::Foundation:: HWND, pszpath : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SHCreateDirectoryExA(hwnd : super::super::Foundation:: HWND, pszpath : ::windows_sys::core::PCSTR, psa : *const super::super::Security:: SECURITY_ATTRIBUTES) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn SHCreateDirectoryExW(hwnd : super::super::Foundation:: HWND, pszpath : ::windows_sys::core::PCWSTR, psa : *const super::super::Security:: SECURITY_ATTRIBUTES) -> i32); +::windows_targets::link!("shell32.dll" "system" fn SHCreateFileExtractIconW(pszfile : ::windows_sys::core::PCWSTR, dwfileattributes : u32, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHCreateItemFromIDList(pidl : *const Common:: ITEMIDLIST, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SHCreateItemFromParsingName(pszpath : ::windows_sys::core::PCWSTR, pbc : super::super::System::Com:: IBindCtx, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SHCreateItemFromRelativeName(psiparent : IShellItem, pszname : ::windows_sys::core::PCWSTR, pbc : super::super::System::Com:: IBindCtx, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHCreateItemInKnownFolder(kfid : *const ::windows_sys::core::GUID, dwkfflags : u32, pszitem : ::windows_sys::core::PCWSTR, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHCreateItemWithParent(pidlparent : *const Common:: ITEMIDLIST, psfparent : IShellFolder, pidl : *const Common:: ITEMIDLIST, riid : *const ::windows_sys::core::GUID, ppvitem : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SHCreateMemStream(pinit : *const u8, cbinit : u32) -> super::super::System::Com:: IStream); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Threading"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_Threading\"`"] fn SHCreateProcessAsUserW(pscpi : *mut SHCREATEPROCESSINFOW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SHCreatePropSheetExtArray(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCWSTR, max_iface : u32) -> HPSXA); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SHCreateQueryCancelAutoPlayMoniker(ppmoniker : *mut super::super::System::Com:: IMoniker) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Ole")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Ole\"`"] fn SHCreateShellFolderView(pcsfv : *const SFV_CREATE, ppsv : *mut IShellView) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Shell_Common\"`"] fn SHCreateShellFolderViewEx(pcsfv : *const CSFV, ppsv : *mut IShellView) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHCreateShellItem(pidlparent : *const Common:: ITEMIDLIST, psfparent : IShellFolder, pidl : *const Common:: ITEMIDLIST, ppsi : *mut IShellItem) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHCreateShellItemArray(pidlparent : *const Common:: ITEMIDLIST, psf : IShellFolder, cidl : u32, ppidl : *const *const Common:: ITEMIDLIST, ppsiitemarray : *mut IShellItemArray) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SHCreateShellItemArrayFromDataObject(pdo : super::super::System::Com:: IDataObject, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHCreateShellItemArrayFromIDLists(cidl : u32, rgpidl : *const *const Common:: ITEMIDLIST, ppsiitemarray : *mut IShellItemArray) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHCreateShellItemArrayFromShellItem(psi : IShellItem, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn SHCreateShellPalette(hdc : super::super::Graphics::Gdi:: HDC) -> super::super::Graphics::Gdi:: HPALETTE); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SHCreateStdEnumFmtEtc(cfmt : u32, afmt : *const super::super::System::Com:: FORMATETC, ppenumformatetc : *mut super::super::System::Com:: IEnumFORMATETC) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SHCreateStreamOnFileA(pszfile : ::windows_sys::core::PCSTR, grfmode : u32, ppstm : *mut super::super::System::Com:: IStream) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn SHCreateStreamOnFileEx(pszfile : ::windows_sys::core::PCWSTR, grfmode : u32, dwattributes : u32, fcreate : super::super::Foundation:: BOOL, pstmtemplate : super::super::System::Com:: IStream, ppstm : *mut super::super::System::Com:: IStream) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SHCreateStreamOnFileW(pszfile : ::windows_sys::core::PCWSTR, grfmode : u32, ppstm : *mut super::super::System::Com:: IStream) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] fn SHCreateThread(pfnthreadproc : super::super::System::Threading:: LPTHREAD_START_ROUTINE, pdata : *const ::core::ffi::c_void, flags : u32, pfncallback : super::super::System::Threading:: LPTHREAD_START_ROUTINE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn SHCreateThreadRef(pcref : *mut i32, ppunk : *mut ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] fn SHCreateThreadWithHandle(pfnthreadproc : super::super::System::Threading:: LPTHREAD_START_ROUTINE, pdata : *const ::core::ffi::c_void, flags : u32, pfncallback : super::super::System::Threading:: LPTHREAD_START_ROUTINE, phandle : *mut super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn SHDefExtractIconA(psziconfile : ::windows_sys::core::PCSTR, iindex : i32, uflags : u32, phiconlarge : *mut super::WindowsAndMessaging:: HICON, phiconsmall : *mut super::WindowsAndMessaging:: HICON, niconsize : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn SHDefExtractIconW(psziconfile : ::windows_sys::core::PCWSTR, iindex : i32, uflags : u32, phiconlarge : *mut super::WindowsAndMessaging:: HICON, phiconsmall : *mut super::WindowsAndMessaging:: HICON, niconsize : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHDeleteEmptyKeyA(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHDeleteEmptyKeyW(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHDeleteKeyA(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHDeleteKeyW(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHDeleteValueA(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCSTR, pszvalue : ::windows_sys::core::PCSTR) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHDeleteValueW(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCWSTR, pszvalue : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("shell32.dll" "system" fn SHDestroyPropSheetExtArray(hpsxa : HPSXA) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`"] fn SHDoDragDrop(hwnd : super::super::Foundation:: HWND, pdata : super::super::System::Com:: IDataObject, pdsrc : super::super::System::Ole:: IDropSource, dweffect : super::super::System::Ole:: DROPEFFECT, pdweffect : *mut super::super::System::Ole:: DROPEFFECT) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHEmptyRecycleBinA(hwnd : super::super::Foundation:: HWND, pszrootpath : ::windows_sys::core::PCSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHEmptyRecycleBinW(hwnd : super::super::Foundation:: HWND, pszrootpath : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHEnumKeyExA(hkey : super::super::System::Registry:: HKEY, dwindex : u32, pszname : ::windows_sys::core::PSTR, pcchname : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHEnumKeyExW(hkey : super::super::System::Registry:: HKEY, dwindex : u32, pszname : ::windows_sys::core::PWSTR, pcchname : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHEnumValueA(hkey : super::super::System::Registry:: HKEY, dwindex : u32, pszvaluename : ::windows_sys::core::PSTR, pcchvaluename : *mut u32, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHEnumValueW(hkey : super::super::System::Registry:: HKEY, dwindex : u32, pszvaluename : ::windows_sys::core::PWSTR, pcchvaluename : *mut u32, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SHEnumerateUnreadMailAccountsW(hkeyuser : super::super::System::Registry:: HKEY, dwindex : u32, pszmailaddress : ::windows_sys::core::PWSTR, cchmailaddress : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHEvaluateSystemCommandTemplate(pszcmdtemplate : ::windows_sys::core::PCWSTR, ppszapplication : *mut ::windows_sys::core::PWSTR, ppszcommandline : *mut ::windows_sys::core::PWSTR, ppszparameters : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHFileOperationA(lpfileop : *mut SHFILEOPSTRUCTA) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHFileOperationW(lpfileop : *mut SHFILEOPSTRUCTW) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn SHFindFiles(pidlfolder : *const Common:: ITEMIDLIST, pidlsavefile : *const Common:: ITEMIDLIST) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SHFind_InitMenuPopup(hmenu : super::WindowsAndMessaging:: HMENU, hwndowner : super::super::Foundation:: HWND, idcmdfirst : u32, idcmdlast : u32) -> IContextMenu); +::windows_targets::link!("shell32.dll" "system" fn SHFlushSFCache() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHFormatDateTimeA(pft : *const super::super::Foundation:: FILETIME, pdwflags : *mut u32, pszbuf : ::windows_sys::core::PSTR, cchbuf : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHFormatDateTimeW(pft : *const super::super::Foundation:: FILETIME, pdwflags : *mut u32, pszbuf : ::windows_sys::core::PWSTR, cchbuf : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHFormatDrive(hwnd : super::super::Foundation:: HWND, drive : u32, fmtid : SHFMT_ID, options : u32) -> u32); +::windows_targets::link!("shell32.dll" "system" fn SHFree(pv : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHFreeNameMappings(hnamemappings : super::super::Foundation:: HANDLE) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHFreeShared(hdata : super::super::Foundation:: HANDLE, dwprocessid : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SHGetAttributesFromDataObject(pdo : super::super::System::Com:: IDataObject, dwattributemask : u32, pdwattributes : *mut u32, pcitems : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHGetDataFromIDListA(psf : IShellFolder, pidl : *const Common:: ITEMIDLIST, nformat : SHGDFIL_FORMAT, pv : *mut ::core::ffi::c_void, cb : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHGetDataFromIDListW(psf : IShellFolder, pidl : *const Common:: ITEMIDLIST, nformat : SHGDFIL_FORMAT, pv : *mut ::core::ffi::c_void, cb : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHGetDesktopFolder(ppshf : *mut IShellFolder) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetDiskFreeSpaceExA(pszdirectoryname : ::windows_sys::core::PCSTR, pulfreebytesavailabletocaller : *mut u64, pultotalnumberofbytes : *mut u64, pultotalnumberoffreebytes : *mut u64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetDiskFreeSpaceExW(pszdirectoryname : ::windows_sys::core::PCWSTR, pulfreebytesavailabletocaller : *mut u64, pultotalnumberofbytes : *mut u64, pultotalnumberoffreebytes : *mut u64) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shell32.dll" "system" fn SHGetDriveMedia(pszdrive : ::windows_sys::core::PCWSTR, pdwmediacontent : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Storage_FileSystem", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SHGetFileInfoA(pszpath : ::windows_sys::core::PCSTR, dwfileattributes : super::super::Storage::FileSystem:: FILE_FLAGS_AND_ATTRIBUTES, psfi : *mut SHFILEINFOA, cbfileinfo : u32, uflags : SHGFI_FLAGS) -> usize); +#[cfg(all(feature = "Win32_Storage_FileSystem", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SHGetFileInfoW(pszpath : ::windows_sys::core::PCWSTR, dwfileattributes : super::super::Storage::FileSystem:: FILE_FLAGS_AND_ATTRIBUTES, psfi : *mut SHFILEINFOW, cbfileinfo : u32, uflags : SHGFI_FLAGS) -> usize); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn SHGetFolderLocation(hwnd : super::super::Foundation:: HWND, csidl : i32, htoken : super::super::Foundation:: HANDLE, dwflags : u32, ppidl : *mut *mut Common:: ITEMIDLIST) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetFolderPathA(hwnd : super::super::Foundation:: HWND, csidl : i32, htoken : super::super::Foundation:: HANDLE, dwflags : u32, pszpath : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetFolderPathAndSubDirA(hwnd : super::super::Foundation:: HWND, csidl : i32, htoken : super::super::Foundation:: HANDLE, dwflags : u32, pszsubdir : ::windows_sys::core::PCSTR, pszpath : ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetFolderPathAndSubDirW(hwnd : super::super::Foundation:: HWND, csidl : i32, htoken : super::super::Foundation:: HANDLE, dwflags : u32, pszsubdir : ::windows_sys::core::PCWSTR, pszpath : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetFolderPathW(hwnd : super::super::Foundation:: HWND, csidl : i32, htoken : super::super::Foundation:: HANDLE, dwflags : u32, pszpath : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHGetIDListFromObject(punk : ::windows_sys::core::IUnknown, ppidl : *mut *mut Common:: ITEMIDLIST) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHGetIconOverlayIndexA(psziconpath : ::windows_sys::core::PCSTR, iiconindex : i32) -> i32); +::windows_targets::link!("shell32.dll" "system" fn SHGetIconOverlayIndexW(psziconpath : ::windows_sys::core::PCWSTR, iiconindex : i32) -> i32); +::windows_targets::link!("shell32.dll" "system" fn SHGetImageList(iimagelist : i32, riid : *const ::windows_sys::core::GUID, ppvobj : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHGetInstanceExplorer(ppunk : *mut ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn SHGetInverseCMAP(pbmap : *mut u8, cbmap : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SHGetItemFromDataObject(pdtobj : super::super::System::Com:: IDataObject, dwflags : DATAOBJ_GET_ITEM_FLAGS, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHGetItemFromObject(punk : ::windows_sys::core::IUnknown, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn SHGetKnownFolderIDList(rfid : *const ::windows_sys::core::GUID, dwflags : u32, htoken : super::super::Foundation:: HANDLE, ppidl : *mut *mut Common:: ITEMIDLIST) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetKnownFolderItem(rfid : *const ::windows_sys::core::GUID, flags : KNOWN_FOLDER_FLAG, htoken : super::super::Foundation:: HANDLE, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetKnownFolderPath(rfid : *const ::windows_sys::core::GUID, dwflags : u32, htoken : super::super::Foundation:: HANDLE, ppszpath : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHGetLocalizedName(pszpath : ::windows_sys::core::PCWSTR, pszresmodule : ::windows_sys::core::PWSTR, cch : u32, pidsres : *mut i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SHGetMalloc(ppmalloc : *mut super::super::System::Com:: IMalloc) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHGetNameFromIDList(pidl : *const Common:: ITEMIDLIST, sigdnname : SIGDN, ppszname : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetNewLinkInfoA(pszlinkto : ::windows_sys::core::PCSTR, pszdir : ::windows_sys::core::PCSTR, pszname : ::windows_sys::core::PSTR, pfmustcopy : *mut super::super::Foundation:: BOOL, uflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetNewLinkInfoW(pszlinkto : ::windows_sys::core::PCWSTR, pszdir : ::windows_sys::core::PCWSTR, pszname : ::windows_sys::core::PWSTR, pfmustcopy : *mut super::super::Foundation:: BOOL, uflags : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn SHGetPathFromIDListA(pidl : *const Common:: ITEMIDLIST, pszpath : ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn SHGetPathFromIDListEx(pidl : *const Common:: ITEMIDLIST, pszpath : ::windows_sys::core::PWSTR, cchpath : u32, uopts : GPFIDL_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn SHGetPathFromIDListW(pidl : *const Common:: ITEMIDLIST, pszpath : ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHGetRealIDL(psf : IShellFolder, pidlsimple : *const Common:: ITEMIDLIST, ppidlreal : *mut *mut Common:: ITEMIDLIST) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHGetSetFolderCustomSettings(pfcs : *mut SHFOLDERCUSTOMSETTINGS, pszpath : ::windows_sys::core::PCWSTR, dwreadwrite : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetSetSettings(lpss : *mut SHELLSTATEA, dwmask : SSF_MASK, bset : super::super::Foundation:: BOOL) -> ()); +::windows_targets::link!("shell32.dll" "system" fn SHGetSettings(psfs : *mut SHELLFLAGSTATE, dwmask : u32) -> ()); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn SHGetSpecialFolderLocation(hwnd : super::super::Foundation:: HWND, csidl : i32, ppidl : *mut *mut Common:: ITEMIDLIST) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetSpecialFolderPathA(hwnd : super::super::Foundation:: HWND, pszpath : ::windows_sys::core::PSTR, csidl : i32, fcreate : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHGetSpecialFolderPathW(hwnd : super::super::Foundation:: HWND, pszpath : ::windows_sys::core::PWSTR, csidl : i32, fcreate : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn SHGetStockIconInfo(siid : SHSTOCKICONID, uflags : SHGSI_FLAGS, psii : *mut SHSTOCKICONINFO) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn SHGetTemporaryPropertyForItem(psi : IShellItem, propkey : *const PropertiesSystem:: PROPERTYKEY, ppropvar : *mut super::super::System::Com::StructuredStorage:: PROPVARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn SHGetThreadRef(ppunk : *mut ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHGetUnreadMailCountW(hkeyuser : super::super::System::Registry:: HKEY, pszmailaddress : ::windows_sys::core::PCWSTR, pdwcount : *mut u32, pfiletime : *mut super::super::Foundation:: FILETIME, pszshellexecutecommand : ::windows_sys::core::PWSTR, cchshellexecutecommand : i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHGetValueA(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCSTR, pszvalue : ::windows_sys::core::PCSTR, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHGetValueW(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCWSTR, pszvalue : ::windows_sys::core::PCWSTR, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHGetViewStatePropertyBag(pidl : *const Common:: ITEMIDLIST, pszbagname : ::windows_sys::core::PCWSTR, dwflags : u32, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn SHGlobalCounterDecrement(id : SHGLOBALCOUNTER) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn SHGlobalCounterGetValue(id : SHGLOBALCOUNTER) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn SHGlobalCounterIncrement(id : SHGLOBALCOUNTER) -> i32); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHHandleUpdateImage(pidlextra : *const Common:: ITEMIDLIST) -> i32); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHILCreateFromPath(pszpath : ::windows_sys::core::PCWSTR, ppidl : *mut *mut Common:: ITEMIDLIST, rgfinout : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHInvokePrinterCommandA(hwnd : super::super::Foundation:: HWND, uaction : u32, lpbuf1 : ::windows_sys::core::PCSTR, lpbuf2 : ::windows_sys::core::PCSTR, fmodal : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHInvokePrinterCommandW(hwnd : super::super::Foundation:: HWND, uaction : u32, lpbuf1 : ::windows_sys::core::PCWSTR, lpbuf2 : ::windows_sys::core::PCWSTR, fmodal : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shell32.dll" "system" fn SHIsFileAvailableOffline(pwszpath : ::windows_sys::core::PCWSTR, pdwstatus : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHIsLowMemoryMachine(dwtype : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHLimitInputEdit(hwndedit : super::super::Foundation:: HWND, psf : IShellFolder) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHLoadInProc(rclsid : *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn SHLoadIndirectString(pszsource : ::windows_sys::core::PCWSTR, pszoutbuf : ::windows_sys::core::PWSTR, cchoutbuf : u32, ppvreserved : *const *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHLoadNonloadedIconOverlayIdentifiers() -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHLockShared(hdata : super::super::Foundation:: HANDLE, dwprocessid : u32) -> *mut ::core::ffi::c_void); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHMapPIDLToSystemImageListIndex(pshf : IShellFolder, pidl : *const Common:: ITEMIDLIST, piindexsel : *mut i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHMessageBoxCheckA(hwnd : super::super::Foundation:: HWND, psztext : ::windows_sys::core::PCSTR, pszcaption : ::windows_sys::core::PCSTR, utype : u32, idefault : i32, pszregval : ::windows_sys::core::PCSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHMessageBoxCheckW(hwnd : super::super::Foundation:: HWND, psztext : ::windows_sys::core::PCWSTR, pszcaption : ::windows_sys::core::PCWSTR, utype : u32, idefault : i32, pszregval : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SHMultiFileProperties(pdtobj : super::super::System::Com:: IDataObject, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHObjectProperties(hwnd : super::super::Foundation:: HWND, shopobjecttype : u32, pszobjectname : ::windows_sys::core::PCWSTR, pszpropertypage : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHOpenFolderAndSelectItems(pidlfolder : *const Common:: ITEMIDLIST, cidl : u32, apidl : *const *const Common:: ITEMIDLIST, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Registry"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Registry\"`"] fn SHOpenPropSheetW(pszcaption : ::windows_sys::core::PCWSTR, ahkeys : *const super::super::System::Registry:: HKEY, ckeys : u32, pclsiddefault : *const ::windows_sys::core::GUID, pdtobj : super::super::System::Com:: IDataObject, psb : IShellBrowser, pstartpage : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Registry\"`"] fn SHOpenRegStream2A(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCSTR, pszvalue : ::windows_sys::core::PCSTR, grfmode : u32) -> super::super::System::Com:: IStream); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Registry\"`"] fn SHOpenRegStream2W(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCWSTR, pszvalue : ::windows_sys::core::PCWSTR, grfmode : u32) -> super::super::System::Com:: IStream); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Registry\"`"] fn SHOpenRegStreamA(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCSTR, pszvalue : ::windows_sys::core::PCSTR, grfmode : u32) -> super::super::System::Com:: IStream); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_System_Registry\"`"] fn SHOpenRegStreamW(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCWSTR, pszvalue : ::windows_sys::core::PCWSTR, grfmode : u32) -> super::super::System::Com:: IStream); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHOpenWithDialog(hwndparent : super::super::Foundation:: HWND, poainfo : *const OPENASINFO) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`"] fn SHParseDisplayName(pszname : ::windows_sys::core::PCWSTR, pbc : super::super::System::Com:: IBindCtx, ppidl : *mut *mut Common:: ITEMIDLIST, sfgaoin : u32, psfgaoout : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHPathPrepareForWriteA(hwnd : super::super::Foundation:: HWND, punkenablemodless : ::windows_sys::core::IUnknown, pszpath : ::windows_sys::core::PCSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHPathPrepareForWriteW(hwnd : super::super::Foundation:: HWND, punkenablemodless : ::windows_sys::core::IUnknown, pszpath : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHQueryInfoKeyA(hkey : super::super::System::Registry:: HKEY, pcsubkeys : *mut u32, pcchmaxsubkeylen : *mut u32, pcvalues : *mut u32, pcchmaxvaluenamelen : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHQueryInfoKeyW(hkey : super::super::System::Registry:: HKEY, pcsubkeys : *mut u32, pcchmaxsubkeylen : *mut u32, pcvalues : *mut u32, pcchmaxvaluenamelen : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("shell32.dll" "system" fn SHQueryRecycleBinA(pszrootpath : ::windows_sys::core::PCSTR, pshqueryrbinfo : *mut SHQUERYRBINFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHQueryRecycleBinW(pszrootpath : ::windows_sys::core::PCWSTR, pshqueryrbinfo : *mut SHQUERYRBINFO) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHQueryUserNotificationState(pquns : *mut QUERY_USER_NOTIFICATION_STATE) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHQueryValueExA(hkey : super::super::System::Registry:: HKEY, pszvalue : ::windows_sys::core::PCSTR, pdwreserved : *const u32, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHQueryValueExW(hkey : super::super::System::Registry:: HKEY, pszvalue : ::windows_sys::core::PCWSTR, pdwreserved : *const u32, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegCloseUSKey(huskey : isize) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegCreateUSKeyA(pszpath : ::windows_sys::core::PCSTR, samdesired : u32, hrelativeuskey : isize, phnewuskey : *mut isize, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegCreateUSKeyW(pwzpath : ::windows_sys::core::PCWSTR, samdesired : u32, hrelativeuskey : isize, phnewuskey : *mut isize, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegDeleteEmptyUSKeyA(huskey : isize, pszsubkey : ::windows_sys::core::PCSTR, delregflags : SHREGDEL_FLAGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegDeleteEmptyUSKeyW(huskey : isize, pwzsubkey : ::windows_sys::core::PCWSTR, delregflags : SHREGDEL_FLAGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegDeleteUSValueA(huskey : isize, pszvalue : ::windows_sys::core::PCSTR, delregflags : SHREGDEL_FLAGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegDeleteUSValueW(huskey : isize, pwzvalue : ::windows_sys::core::PCWSTR, delregflags : SHREGDEL_FLAGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SHRegDuplicateHKey(hkey : super::super::System::Registry:: HKEY) -> super::super::System::Registry:: HKEY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegEnumUSKeyA(huskey : isize, dwindex : u32, pszname : ::windows_sys::core::PSTR, pcchname : *mut u32, enumregflags : SHREGENUM_FLAGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegEnumUSKeyW(huskey : isize, dwindex : u32, pwzname : ::windows_sys::core::PWSTR, pcchname : *mut u32, enumregflags : SHREGENUM_FLAGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegEnumUSValueA(huskey : isize, dwindex : u32, pszvaluename : ::windows_sys::core::PSTR, pcchvaluename : *mut u32, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32, enumregflags : SHREGENUM_FLAGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegEnumUSValueW(huskey : isize, dwindex : u32, pszvaluename : ::windows_sys::core::PWSTR, pcchvaluename : *mut u32, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32, enumregflags : SHREGENUM_FLAGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegGetBoolUSValueA(pszsubkey : ::windows_sys::core::PCSTR, pszvalue : ::windows_sys::core::PCSTR, fignorehkcu : super::super::Foundation:: BOOL, fdefault : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegGetBoolUSValueW(pszsubkey : ::windows_sys::core::PCWSTR, pszvalue : ::windows_sys::core::PCWSTR, fignorehkcu : super::super::Foundation:: BOOL, fdefault : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SHRegGetIntW(hk : super::super::System::Registry:: HKEY, pwzkey : ::windows_sys::core::PCWSTR, idefault : i32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHRegGetPathA(hkey : super::super::System::Registry:: HKEY, pcszsubkey : ::windows_sys::core::PCSTR, pcszvalue : ::windows_sys::core::PCSTR, pszpath : ::windows_sys::core::PSTR, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHRegGetPathW(hkey : super::super::System::Registry:: HKEY, pcszsubkey : ::windows_sys::core::PCWSTR, pcszvalue : ::windows_sys::core::PCWSTR, pszpath : ::windows_sys::core::PWSTR, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegGetUSValueA(pszsubkey : ::windows_sys::core::PCSTR, pszvalue : ::windows_sys::core::PCSTR, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32, fignorehkcu : super::super::Foundation:: BOOL, pvdefaultdata : *const ::core::ffi::c_void, dwdefaultdatasize : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegGetUSValueW(pszsubkey : ::windows_sys::core::PCWSTR, pszvalue : ::windows_sys::core::PCWSTR, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32, fignorehkcu : super::super::Foundation:: BOOL, pvdefaultdata : *const ::core::ffi::c_void, dwdefaultdatasize : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHRegGetValueA(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCSTR, pszvalue : ::windows_sys::core::PCSTR, srrfflags : i32, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegGetValueFromHKCUHKLM(pwszkey : ::windows_sys::core::PCWSTR, pwszvalue : ::windows_sys::core::PCWSTR, srrfflags : i32, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHRegGetValueW(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCWSTR, pszvalue : ::windows_sys::core::PCWSTR, srrfflags : i32, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegOpenUSKeyA(pszpath : ::windows_sys::core::PCSTR, samdesired : u32, hrelativeuskey : isize, phnewuskey : *mut isize, fignorehkcu : super::super::Foundation:: BOOL) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegOpenUSKeyW(pwzpath : ::windows_sys::core::PCWSTR, samdesired : u32, hrelativeuskey : isize, phnewuskey : *mut isize, fignorehkcu : super::super::Foundation:: BOOL) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegQueryInfoUSKeyA(huskey : isize, pcsubkeys : *mut u32, pcchmaxsubkeylen : *mut u32, pcvalues : *mut u32, pcchmaxvaluenamelen : *mut u32, enumregflags : SHREGENUM_FLAGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegQueryInfoUSKeyW(huskey : isize, pcsubkeys : *mut u32, pcchmaxsubkeylen : *mut u32, pcvalues : *mut u32, pcchmaxvaluenamelen : *mut u32, enumregflags : SHREGENUM_FLAGS) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegQueryUSValueA(huskey : isize, pszvalue : ::windows_sys::core::PCSTR, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32, fignorehkcu : super::super::Foundation:: BOOL, pvdefaultdata : *const ::core::ffi::c_void, dwdefaultdatasize : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegQueryUSValueW(huskey : isize, pszvalue : ::windows_sys::core::PCWSTR, pdwtype : *mut u32, pvdata : *mut ::core::ffi::c_void, pcbdata : *mut u32, fignorehkcu : super::super::Foundation:: BOOL, pvdefaultdata : *const ::core::ffi::c_void, dwdefaultdatasize : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHRegSetPathA(hkey : super::super::System::Registry:: HKEY, pcszsubkey : ::windows_sys::core::PCSTR, pcszvalue : ::windows_sys::core::PCSTR, pcszpath : ::windows_sys::core::PCSTR, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn SHRegSetPathW(hkey : super::super::System::Registry:: HKEY, pcszsubkey : ::windows_sys::core::PCWSTR, pcszvalue : ::windows_sys::core::PCWSTR, pcszpath : ::windows_sys::core::PCWSTR, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegSetUSValueA(pszsubkey : ::windows_sys::core::PCSTR, pszvalue : ::windows_sys::core::PCSTR, dwtype : u32, pvdata : *const ::core::ffi::c_void, cbdata : u32, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegSetUSValueW(pwzsubkey : ::windows_sys::core::PCWSTR, pwzvalue : ::windows_sys::core::PCWSTR, dwtype : u32, pvdata : *const ::core::ffi::c_void, cbdata : u32, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegWriteUSValueA(huskey : isize, pszvalue : ::windows_sys::core::PCSTR, dwtype : u32, pvdata : *const ::core::ffi::c_void, cbdata : u32, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHRegWriteUSValueW(huskey : isize, pwzvalue : ::windows_sys::core::PCWSTR, dwtype : u32, pvdata : *const ::core::ffi::c_void, cbdata : u32, dwflags : u32) -> super::super::Foundation:: WIN32_ERROR); +::windows_targets::link!("shlwapi.dll" "system" fn SHReleaseThreadRef() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHRemoveLocalizedName(pszpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn SHReplaceFromPropSheetExtArray(hpsxa : HPSXA, upageid : u32, lpfnreplacewith : super::Controls:: LPFNSVADDPROPSHEETPAGE, lparam : super::super::Foundation:: LPARAM) -> u32); +::windows_targets::link!("shell32.dll" "system" fn SHResolveLibrary(psilibrary : IShellItem) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHRestricted(rest : RESTRICTIONS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHSendMessageBroadcastA(umsg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHSendMessageBroadcastW(umsg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHSetDefaultProperties(hwnd : super::super::Foundation:: HWND, psi : IShellItem, dwfileopflags : u32, pfops : IFileOperationProgressSink) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHSetFolderPathA(csidl : i32, htoken : super::super::Foundation:: HANDLE, dwflags : u32, pszpath : ::windows_sys::core::PCSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHSetFolderPathW(csidl : i32, htoken : super::super::Foundation:: HANDLE, dwflags : u32, pszpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHSetInstanceExplorer(punk : ::windows_sys::core::IUnknown) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHSetKnownFolderPath(rfid : *const ::windows_sys::core::GUID, dwflags : u32, htoken : super::super::Foundation:: HANDLE, pszpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHSetLocalizedName(pszpath : ::windows_sys::core::PCWSTR, pszresmodule : ::windows_sys::core::PCWSTR, idsres : i32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] fn SHSetTemporaryPropertyForItem(psi : IShellItem, propkey : *const PropertiesSystem:: PROPERTYKEY, propvar : *const super::super::System::Com::StructuredStorage:: PROPVARIANT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn SHSetThreadRef(punk : ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shell32.dll" "system" fn SHSetUnreadMailCountW(pszmailaddress : ::windows_sys::core::PCWSTR, dwcount : u32, pszshellexecutecommand : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SHSetValueA(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCSTR, pszvalue : ::windows_sys::core::PCSTR, dwtype : u32, pvdata : *const ::core::ffi::c_void, cbdata : u32) -> i32); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn SHSetValueW(hkey : super::super::System::Registry:: HKEY, pszsubkey : ::windows_sys::core::PCWSTR, pszvalue : ::windows_sys::core::PCWSTR, dwtype : u32, pvdata : *const ::core::ffi::c_void, cbdata : u32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHShellFolderView_Message(hwndmain : super::super::Foundation:: HWND, umsg : u32, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHShowManageLibraryUI(psilibrary : IShellItem, hwndowner : super::super::Foundation:: HWND, psztitle : ::windows_sys::core::PCWSTR, pszinstruction : ::windows_sys::core::PCWSTR, lmdoptions : LIBRARYMANAGEDIALOGOPTIONS) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn SHSimpleIDListFromPath(pszpath : ::windows_sys::core::PCWSTR) -> *mut Common:: ITEMIDLIST); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] fn SHSkipJunction(pbc : super::super::System::Com:: IBindCtx, pclsid : *const ::windows_sys::core::GUID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHStartNetConnectionDialogW(hwnd : super::super::Foundation:: HWND, pszremotename : ::windows_sys::core::PCWSTR, dwtype : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn SHStrDupA(psz : ::windows_sys::core::PCSTR, ppwsz : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn SHStrDupW(psz : ::windows_sys::core::PCWSTR, ppwsz : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn SHStripMneumonicA(pszmenu : ::windows_sys::core::PSTR) -> u8); +::windows_targets::link!("shlwapi.dll" "system" fn SHStripMneumonicW(pszmenu : ::windows_sys::core::PWSTR) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHTestTokenMembership(htoken : super::super::Foundation:: HANDLE, ulrid : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn SHUnicodeToAnsi(pwszsrc : ::windows_sys::core::PCWSTR, pszdst : ::windows_sys::core::PSTR, cchbuf : i32) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn SHUnicodeToUnicode(pwzsrc : ::windows_sys::core::PCWSTR, pwzdst : ::windows_sys::core::PWSTR, cwchbuf : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHUnlockShared(pvdata : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shell32.dll" "system" fn SHUpdateImageA(pszhashitem : ::windows_sys::core::PCSTR, iindex : i32, uflags : u32, iimageindex : i32) -> ()); +::windows_targets::link!("shell32.dll" "system" fn SHUpdateImageW(pszhashitem : ::windows_sys::core::PCWSTR, iindex : i32, uflags : u32, iimageindex : i32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SHValidateUNC(hwndowner : super::super::Foundation:: HWND, pszfile : ::windows_sys::core::PWSTR, fconnect : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shell32.dll" "system" fn SetCurrentProcessExplicitAppUserModelID(appid : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn SetMenuContextHelpId(param0 : super::WindowsAndMessaging:: HMENU, param1 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowContextHelpId(param0 : super::super::Foundation:: HWND, param1 : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("comctl32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowSubclass(hwnd : super::super::Foundation:: HWND, pfnsubclass : SUBCLASSPROC, uidsubclass : usize, dwrefdata : usize) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ShellAboutA(hwnd : super::super::Foundation:: HWND, szapp : ::windows_sys::core::PCSTR, szotherstuff : ::windows_sys::core::PCSTR, hicon : super::WindowsAndMessaging:: HICON) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ShellAboutW(hwnd : super::super::Foundation:: HWND, szapp : ::windows_sys::core::PCWSTR, szotherstuff : ::windows_sys::core::PCWSTR, hicon : super::WindowsAndMessaging:: HICON) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ShellExecuteA(hwnd : super::super::Foundation:: HWND, lpoperation : ::windows_sys::core::PCSTR, lpfile : ::windows_sys::core::PCSTR, lpparameters : ::windows_sys::core::PCSTR, lpdirectory : ::windows_sys::core::PCSTR, nshowcmd : super::WindowsAndMessaging:: SHOW_WINDOW_CMD) -> super::super::Foundation:: HINSTANCE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ShellExecuteExA(pexecinfo : *mut SHELLEXECUTEINFOA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] fn ShellExecuteExW(pexecinfo : *mut SHELLEXECUTEINFOW) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ShellExecuteW(hwnd : super::super::Foundation:: HWND, lpoperation : ::windows_sys::core::PCWSTR, lpfile : ::windows_sys::core::PCWSTR, lpparameters : ::windows_sys::core::PCWSTR, lpdirectory : ::windows_sys::core::PCWSTR, nshowcmd : super::WindowsAndMessaging:: SHOW_WINDOW_CMD) -> super::super::Foundation:: HINSTANCE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shlwapi.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ShellMessageBoxA(happinst : super::super::Foundation:: HINSTANCE, hwnd : super::super::Foundation:: HWND, lpctext : ::windows_sys::core::PCSTR, lpctitle : ::windows_sys::core::PCSTR, fustyle : super::WindowsAndMessaging:: MESSAGEBOX_STYLE, ...) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shlwapi.dll" "cdecl" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn ShellMessageBoxW(happinst : super::super::Foundation:: HINSTANCE, hwnd : super::super::Foundation:: HWND, lpctext : ::windows_sys::core::PCWSTR, lpctitle : ::windows_sys::core::PCWSTR, fustyle : super::WindowsAndMessaging:: MESSAGEBOX_STYLE, ...) -> i32); +::windows_targets::link!("shell32.dll" "system" fn Shell_GetCachedImageIndex(pwsziconpath : ::windows_sys::core::PCWSTR, iiconindex : i32, uiconflags : u32) -> i32); +::windows_targets::link!("shell32.dll" "system" fn Shell_GetCachedImageIndexA(psziconpath : ::windows_sys::core::PCSTR, iiconindex : i32, uiconflags : u32) -> i32); +::windows_targets::link!("shell32.dll" "system" fn Shell_GetCachedImageIndexW(psziconpath : ::windows_sys::core::PCWSTR, iiconindex : i32, uiconflags : u32) -> i32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] fn Shell_GetImageLists(phiml : *mut super::Controls:: HIMAGELIST, phimlsmall : *mut super::Controls:: HIMAGELIST) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] fn Shell_MergeMenus(hmdst : super::WindowsAndMessaging:: HMENU, hmsrc : super::WindowsAndMessaging:: HMENU, uinsert : u32, uidadjust : u32, uidadjustmax : u32, uflags : MM_FLAGS) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn Shell_NotifyIconA(dwmessage : NOTIFY_ICON_MESSAGE, lpdata : *const NOTIFYICONDATAA) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Shell_NotifyIconGetRect(identifier : *const NOTIFYICONIDENTIFIER, iconlocation : *mut super::super::Foundation:: RECT) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] fn Shell_NotifyIconW(dwmessage : NOTIFY_ICON_MESSAGE, lpdata : *const NOTIFYICONDATAW) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] fn SignalFileOpen(pidl : *const Common:: ITEMIDLIST) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_Urlmon"))] +::windows_targets::link!("shdocvw.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_Urlmon\"`"] fn SoftwareUpdateMessageBox(hwnd : super::super::Foundation:: HWND, pszdistunit : ::windows_sys::core::PCWSTR, dwflags : u32, psdi : *mut super::super::System::Com::Urlmon:: SOFTDISTINFO) -> u32); +#[cfg(feature = "Win32_System_Com_StructuredStorage")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_System_Com_StructuredStorage\"`"] fn StgMakeUniqueName(pstgparent : super::super::System::Com::StructuredStorage:: IStorage, pszfilespec : ::windows_sys::core::PCWSTR, grfmode : u32, riid : *const ::windows_sys::core::GUID, ppv : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn StrCSpnA(pszstr : ::windows_sys::core::PCSTR, pszset : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCSpnIA(pszstr : ::windows_sys::core::PCSTR, pszset : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCSpnIW(pszstr : ::windows_sys::core::PCWSTR, pszset : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCSpnW(pszstr : ::windows_sys::core::PCWSTR, pszset : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCatBuffA(pszdest : ::windows_sys::core::PSTR, pszsrc : ::windows_sys::core::PCSTR, cchdestbuffsize : i32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrCatBuffW(pszdest : ::windows_sys::core::PWSTR, pszsrc : ::windows_sys::core::PCWSTR, cchdestbuffsize : i32) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrCatChainW(pszdst : ::windows_sys::core::PWSTR, cchdst : u32, ichat : u32, pszsrc : ::windows_sys::core::PCWSTR) -> u32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCatW(psz1 : ::windows_sys::core::PWSTR, psz2 : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrChrA(pszstart : ::windows_sys::core::PCSTR, wmatch : u16) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrChrIA(pszstart : ::windows_sys::core::PCSTR, wmatch : u16) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrChrIW(pszstart : ::windows_sys::core::PCWSTR, wmatch : u16) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrChrNIW(pszstart : ::windows_sys::core::PCWSTR, wmatch : u16, cchmax : u32) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrChrNW(pszstart : ::windows_sys::core::PCWSTR, wmatch : u16, cchmax : u32) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrChrW(pszstart : ::windows_sys::core::PCWSTR, wmatch : u16) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpCA(pszstr1 : ::windows_sys::core::PCSTR, pszstr2 : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpCW(pszstr1 : ::windows_sys::core::PCWSTR, pszstr2 : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpICA(pszstr1 : ::windows_sys::core::PCSTR, pszstr2 : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpICW(pszstr1 : ::windows_sys::core::PCWSTR, pszstr2 : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpIW(psz1 : ::windows_sys::core::PCWSTR, psz2 : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpLogicalW(psz1 : ::windows_sys::core::PCWSTR, psz2 : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpNA(psz1 : ::windows_sys::core::PCSTR, psz2 : ::windows_sys::core::PCSTR, nchar : i32) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpNCA(pszstr1 : ::windows_sys::core::PCSTR, pszstr2 : ::windows_sys::core::PCSTR, nchar : i32) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpNCW(pszstr1 : ::windows_sys::core::PCWSTR, pszstr2 : ::windows_sys::core::PCWSTR, nchar : i32) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpNIA(psz1 : ::windows_sys::core::PCSTR, psz2 : ::windows_sys::core::PCSTR, nchar : i32) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpNICA(pszstr1 : ::windows_sys::core::PCSTR, pszstr2 : ::windows_sys::core::PCSTR, nchar : i32) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpNICW(pszstr1 : ::windows_sys::core::PCWSTR, pszstr2 : ::windows_sys::core::PCWSTR, nchar : i32) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpNIW(psz1 : ::windows_sys::core::PCWSTR, psz2 : ::windows_sys::core::PCWSTR, nchar : i32) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpNW(psz1 : ::windows_sys::core::PCWSTR, psz2 : ::windows_sys::core::PCWSTR, nchar : i32) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCmpW(psz1 : ::windows_sys::core::PCWSTR, psz2 : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrCpyNW(pszdst : ::windows_sys::core::PWSTR, pszsrc : ::windows_sys::core::PCWSTR, cchmax : i32) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrCpyW(psz1 : ::windows_sys::core::PWSTR, psz2 : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrDupA(pszsrch : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrDupW(pszsrch : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrFormatByteSize64A(qdw : i64, pszbuf : ::windows_sys::core::PSTR, cchbuf : u32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrFormatByteSizeA(dw : u32, pszbuf : ::windows_sys::core::PSTR, cchbuf : u32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrFormatByteSizeEx(ull : u64, flags : SFBS_FLAGS, pszbuf : ::windows_sys::core::PWSTR, cchbuf : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn StrFormatByteSizeW(qdw : i64, pszbuf : ::windows_sys::core::PWSTR, cchbuf : u32) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrFormatKBSizeA(qdw : i64, pszbuf : ::windows_sys::core::PSTR, cchbuf : u32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrFormatKBSizeW(qdw : i64, pszbuf : ::windows_sys::core::PWSTR, cchbuf : u32) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrFromTimeIntervalA(pszout : ::windows_sys::core::PSTR, cchmax : u32, dwtimems : u32, digits : i32) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrFromTimeIntervalW(pszout : ::windows_sys::core::PWSTR, cchmax : u32, dwtimems : u32, digits : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StrIsIntlEqualA(fcasesens : super::super::Foundation:: BOOL, pszstring1 : ::windows_sys::core::PCSTR, pszstring2 : ::windows_sys::core::PCSTR, nchar : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StrIsIntlEqualW(fcasesens : super::super::Foundation:: BOOL, pszstring1 : ::windows_sys::core::PCWSTR, pszstring2 : ::windows_sys::core::PCWSTR, nchar : i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn StrNCatA(psz1 : ::windows_sys::core::PSTR, psz2 : ::windows_sys::core::PCSTR, cchmax : i32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrNCatW(psz1 : ::windows_sys::core::PWSTR, psz2 : ::windows_sys::core::PCWSTR, cchmax : i32) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrPBrkA(psz : ::windows_sys::core::PCSTR, pszset : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrPBrkW(psz : ::windows_sys::core::PCWSTR, pszset : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrRChrA(pszstart : ::windows_sys::core::PCSTR, pszend : ::windows_sys::core::PCSTR, wmatch : u16) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrRChrIA(pszstart : ::windows_sys::core::PCSTR, pszend : ::windows_sys::core::PCSTR, wmatch : u16) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrRChrIW(pszstart : ::windows_sys::core::PCWSTR, pszend : ::windows_sys::core::PCWSTR, wmatch : u16) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrRChrW(pszstart : ::windows_sys::core::PCWSTR, pszend : ::windows_sys::core::PCWSTR, wmatch : u16) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrRStrIA(pszsource : ::windows_sys::core::PCSTR, pszlast : ::windows_sys::core::PCSTR, pszsrch : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrRStrIW(pszsource : ::windows_sys::core::PCWSTR, pszlast : ::windows_sys::core::PCWSTR, pszsrch : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn StrRetToBSTR(pstr : *mut Common:: STRRET, pidl : *const Common:: ITEMIDLIST, pbstr : *mut ::windows_sys::core::BSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn StrRetToBufA(pstr : *mut Common:: STRRET, pidl : *const Common:: ITEMIDLIST, pszbuf : ::windows_sys::core::PSTR, cchbuf : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn StrRetToBufW(pstr : *mut Common:: STRRET, pidl : *const Common:: ITEMIDLIST, pszbuf : ::windows_sys::core::PWSTR, cchbuf : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn StrRetToStrA(pstr : *mut Common:: STRRET, pidl : *const Common:: ITEMIDLIST, ppsz : *mut ::windows_sys::core::PSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_UI_Shell_Common")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] fn StrRetToStrW(pstr : *mut Common:: STRRET, pidl : *const Common:: ITEMIDLIST, ppsz : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn StrSpnA(psz : ::windows_sys::core::PCSTR, pszset : ::windows_sys::core::PCSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrSpnW(psz : ::windows_sys::core::PCWSTR, pszset : ::windows_sys::core::PCWSTR) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn StrStrA(pszfirst : ::windows_sys::core::PCSTR, pszsrch : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrStrIA(pszfirst : ::windows_sys::core::PCSTR, pszsrch : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrStrIW(pszfirst : ::windows_sys::core::PCWSTR, pszsrch : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrStrNIW(pszfirst : ::windows_sys::core::PCWSTR, pszsrch : ::windows_sys::core::PCWSTR, cchmax : u32) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrStrNW(pszfirst : ::windows_sys::core::PCWSTR, pszsrch : ::windows_sys::core::PCWSTR, cchmax : u32) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn StrStrW(pszfirst : ::windows_sys::core::PCWSTR, pszsrch : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StrToInt64ExA(pszstring : ::windows_sys::core::PCSTR, dwflags : i32, pllret : *mut i64) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StrToInt64ExW(pszstring : ::windows_sys::core::PCWSTR, dwflags : i32, pllret : *mut i64) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn StrToIntA(pszsrc : ::windows_sys::core::PCSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StrToIntExA(pszstring : ::windows_sys::core::PCSTR, dwflags : i32, piret : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StrToIntExW(pszstring : ::windows_sys::core::PCWSTR, dwflags : i32, piret : *mut i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn StrToIntW(pszsrc : ::windows_sys::core::PCWSTR) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StrTrimA(psz : ::windows_sys::core::PSTR, psztrimchars : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn StrTrimW(psz : ::windows_sys::core::PWSTR, psztrimchars : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("userenv.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnloadUserProfile(htoken : super::super::Foundation:: HANDLE, hprofile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("api-ms-win-core-psm-appnotify-l1-1-1.dll" "system" fn UnregisterAppConstrainedChangeNotification(registration : PAPPCONSTRAIN_REGISTRATION) -> ()); +::windows_targets::link!("api-ms-win-core-psm-appnotify-l1-1-0.dll" "system" fn UnregisterAppStateChangeNotification(registration : PAPPSTATE_REGISTRATION) -> ()); +::windows_targets::link!("api-ms-win-shcore-scaling-l1-1-1.dll" "system" fn UnregisterScaleChangeEvent(dwcookie : usize) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlApplySchemeA(pszin : ::windows_sys::core::PCSTR, pszout : ::windows_sys::core::PSTR, pcchout : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlApplySchemeW(pszin : ::windows_sys::core::PCWSTR, pszout : ::windows_sys::core::PWSTR, pcchout : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlCanonicalizeA(pszurl : ::windows_sys::core::PCSTR, pszcanonicalized : ::windows_sys::core::PSTR, pcchcanonicalized : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlCanonicalizeW(pszurl : ::windows_sys::core::PCWSTR, pszcanonicalized : ::windows_sys::core::PWSTR, pcchcanonicalized : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlCombineA(pszbase : ::windows_sys::core::PCSTR, pszrelative : ::windows_sys::core::PCSTR, pszcombined : ::windows_sys::core::PSTR, pcchcombined : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlCombineW(pszbase : ::windows_sys::core::PCWSTR, pszrelative : ::windows_sys::core::PCWSTR, pszcombined : ::windows_sys::core::PWSTR, pcchcombined : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlCompareA(psz1 : ::windows_sys::core::PCSTR, psz2 : ::windows_sys::core::PCSTR, fignoreslash : super::super::Foundation:: BOOL) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlCompareW(psz1 : ::windows_sys::core::PCWSTR, psz2 : ::windows_sys::core::PCWSTR, fignoreslash : super::super::Foundation:: BOOL) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn UrlCreateFromPathA(pszpath : ::windows_sys::core::PCSTR, pszurl : ::windows_sys::core::PSTR, pcchurl : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlCreateFromPathW(pszpath : ::windows_sys::core::PCWSTR, pszurl : ::windows_sys::core::PWSTR, pcchurl : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlEscapeA(pszurl : ::windows_sys::core::PCSTR, pszescaped : ::windows_sys::core::PSTR, pcchescaped : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlEscapeW(pszurl : ::windows_sys::core::PCWSTR, pszescaped : ::windows_sys::core::PWSTR, pcchescaped : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlFixupW(pcszurl : ::windows_sys::core::PCWSTR, psztranslatedurl : ::windows_sys::core::PWSTR, cchmax : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlGetLocationA(pszurl : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PCSTR); +::windows_targets::link!("shlwapi.dll" "system" fn UrlGetLocationW(pszurl : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PCWSTR); +::windows_targets::link!("shlwapi.dll" "system" fn UrlGetPartA(pszin : ::windows_sys::core::PCSTR, pszout : ::windows_sys::core::PSTR, pcchout : *mut u32, dwpart : u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlGetPartW(pszin : ::windows_sys::core::PCWSTR, pszout : ::windows_sys::core::PWSTR, pcchout : *mut u32, dwpart : u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlHashA(pszurl : ::windows_sys::core::PCSTR, pbhash : *mut u8, cbhash : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlHashW(pszurl : ::windows_sys::core::PCWSTR, pbhash : *mut u8, cbhash : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlIsA(pszurl : ::windows_sys::core::PCSTR, urlis : URLIS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlIsNoHistoryA(pszurl : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlIsNoHistoryW(pszurl : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlIsOpaqueA(pszurl : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlIsOpaqueW(pszurl : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shlwapi.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UrlIsW(pszurl : ::windows_sys::core::PCWSTR, urlis : URLIS) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "system" fn UrlUnescapeA(pszurl : ::windows_sys::core::PSTR, pszunescaped : ::windows_sys::core::PSTR, pcchunescaped : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn UrlUnescapeW(pszurl : ::windows_sys::core::PWSTR, pszunescaped : ::windows_sys::core::PWSTR, pcchunescaped : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common"))] +::windows_targets::link!("propsys.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_Common\"`"] fn VariantToStrRet(varin : *const super::super::System::Variant:: VARIANT, pstrret : *mut Common:: STRRET) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("shlwapi.dll" "system" fn WhichPlatform() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Win32DeleteFile(pszpath : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHelpA(hwndmain : super::super::Foundation:: HWND, lpszhelp : ::windows_sys::core::PCSTR, ucommand : u32, dwdata : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WinHelpW(hwndmain : super::super::Foundation:: HWND, lpszhelp : ::windows_sys::core::PCWSTR, ucommand : u32, dwdata : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("shell32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WriteCabinetState(pcs : *const CABINETSTATE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("shlwapi.dll" "cdecl" fn wnsprintfA(pszdest : ::windows_sys::core::PSTR, cchdest : i32, pszfmt : ::windows_sys::core::PCSTR, ...) -> i32); +::windows_targets::link!("shlwapi.dll" "cdecl" fn wnsprintfW(pszdest : ::windows_sys::core::PWSTR, cchdest : i32, pszfmt : ::windows_sys::core::PCWSTR, ...) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn wvnsprintfA(pszdest : ::windows_sys::core::PSTR, cchdest : i32, pszfmt : ::windows_sys::core::PCSTR, arglist : *const i8) -> i32); +::windows_targets::link!("shlwapi.dll" "system" fn wvnsprintfW(pszdest : ::windows_sys::core::PWSTR, cchdest : i32, pszfmt : ::windows_sys::core::PCWSTR, arglist : *const i8) -> i32); +pub type CIE4ConnectionPoint = *mut ::core::ffi::c_void; +pub type DFConstraint = *mut ::core::ffi::c_void; +pub type DShellFolderViewEvents = *mut ::core::ffi::c_void; +pub type DShellNameSpaceEvents = *mut ::core::ffi::c_void; +pub type DShellWindowsEvents = *mut ::core::ffi::c_void; +pub type DWebBrowserEvents = *mut ::core::ffi::c_void; +pub type DWebBrowserEvents2 = *mut ::core::ffi::c_void; +pub type Folder = *mut ::core::ffi::c_void; +pub type Folder2 = *mut ::core::ffi::c_void; +pub type Folder3 = *mut ::core::ffi::c_void; +pub type FolderItem = *mut ::core::ffi::c_void; +pub type FolderItem2 = *mut ::core::ffi::c_void; +pub type FolderItemVerb = *mut ::core::ffi::c_void; +pub type FolderItemVerbs = *mut ::core::ffi::c_void; +pub type FolderItems = *mut ::core::ffi::c_void; +pub type FolderItems2 = *mut ::core::ffi::c_void; +pub type FolderItems3 = *mut ::core::ffi::c_void; +pub type IACList = *mut ::core::ffi::c_void; +pub type IACList2 = *mut ::core::ffi::c_void; +pub type IAccessibilityDockingService = *mut ::core::ffi::c_void; +pub type IAccessibilityDockingServiceCallback = *mut ::core::ffi::c_void; +pub type IAccessibleObject = *mut ::core::ffi::c_void; +pub type IActionProgress = *mut ::core::ffi::c_void; +pub type IActionProgressDialog = *mut ::core::ffi::c_void; +pub type IAppActivationUIInfo = *mut ::core::ffi::c_void; +pub type IAppPublisher = *mut ::core::ffi::c_void; +pub type IAppVisibility = *mut ::core::ffi::c_void; +pub type IAppVisibilityEvents = *mut ::core::ffi::c_void; +pub type IApplicationActivationManager = *mut ::core::ffi::c_void; +pub type IApplicationAssociationRegistration = *mut ::core::ffi::c_void; +pub type IApplicationAssociationRegistrationUI = *mut ::core::ffi::c_void; +pub type IApplicationDesignModeSettings = *mut ::core::ffi::c_void; +pub type IApplicationDesignModeSettings2 = *mut ::core::ffi::c_void; +pub type IApplicationDestinations = *mut ::core::ffi::c_void; +pub type IApplicationDocumentLists = *mut ::core::ffi::c_void; +pub type IAssocHandler = *mut ::core::ffi::c_void; +pub type IAssocHandlerInvoker = *mut ::core::ffi::c_void; +pub type IAttachmentExecute = *mut ::core::ffi::c_void; +pub type IAutoComplete = *mut ::core::ffi::c_void; +pub type IAutoComplete2 = *mut ::core::ffi::c_void; +pub type IAutoCompleteDropDown = *mut ::core::ffi::c_void; +pub type IBandHost = *mut ::core::ffi::c_void; +pub type IBandSite = *mut ::core::ffi::c_void; +pub type IBannerNotificationHandler = *mut ::core::ffi::c_void; +pub type IBanneredBar = *mut ::core::ffi::c_void; +pub type IBrowserFrameOptions = *mut ::core::ffi::c_void; +pub type IBrowserService = *mut ::core::ffi::c_void; +pub type IBrowserService2 = *mut ::core::ffi::c_void; +pub type IBrowserService3 = *mut ::core::ffi::c_void; +pub type IBrowserService4 = *mut ::core::ffi::c_void; +pub type ICDBurn = *mut ::core::ffi::c_void; +pub type ICDBurnExt = *mut ::core::ffi::c_void; +pub type ICategorizer = *mut ::core::ffi::c_void; +pub type ICategoryProvider = *mut ::core::ffi::c_void; +pub type IColumnManager = *mut ::core::ffi::c_void; +pub type IColumnProvider = *mut ::core::ffi::c_void; +pub type ICommDlgBrowser = *mut ::core::ffi::c_void; +pub type ICommDlgBrowser2 = *mut ::core::ffi::c_void; +pub type ICommDlgBrowser3 = *mut ::core::ffi::c_void; +pub type IComputerInfoChangeNotify = *mut ::core::ffi::c_void; +pub type IConnectableCredentialProviderCredential = *mut ::core::ffi::c_void; +pub type IContactManagerInterop = *mut ::core::ffi::c_void; +pub type IContextMenu = *mut ::core::ffi::c_void; +pub type IContextMenu2 = *mut ::core::ffi::c_void; +pub type IContextMenu3 = *mut ::core::ffi::c_void; +pub type IContextMenuCB = *mut ::core::ffi::c_void; +pub type IContextMenuSite = *mut ::core::ffi::c_void; +pub type ICopyHookA = *mut ::core::ffi::c_void; +pub type ICopyHookW = *mut ::core::ffi::c_void; +pub type ICreateProcessInputs = *mut ::core::ffi::c_void; +pub type ICreatingProcess = *mut ::core::ffi::c_void; +pub type ICredentialProvider = *mut ::core::ffi::c_void; +pub type ICredentialProviderCredential = *mut ::core::ffi::c_void; +pub type ICredentialProviderCredential2 = *mut ::core::ffi::c_void; +pub type ICredentialProviderCredentialEvents = *mut ::core::ffi::c_void; +pub type ICredentialProviderCredentialEvents2 = *mut ::core::ffi::c_void; +pub type ICredentialProviderCredentialWithFieldOptions = *mut ::core::ffi::c_void; +pub type ICredentialProviderEvents = *mut ::core::ffi::c_void; +pub type ICredentialProviderFilter = *mut ::core::ffi::c_void; +pub type ICredentialProviderSetUserArray = *mut ::core::ffi::c_void; +pub type ICredentialProviderUser = *mut ::core::ffi::c_void; +pub type ICredentialProviderUserArray = *mut ::core::ffi::c_void; +pub type ICurrentItem = *mut ::core::ffi::c_void; +pub type ICurrentWorkingDirectory = *mut ::core::ffi::c_void; +pub type ICustomDestinationList = *mut ::core::ffi::c_void; +pub type IDataObjectAsyncCapability = *mut ::core::ffi::c_void; +pub type IDataObjectProvider = *mut ::core::ffi::c_void; +pub type IDataTransferManagerInterop = *mut ::core::ffi::c_void; +pub type IDefaultExtractIconInit = *mut ::core::ffi::c_void; +pub type IDefaultFolderMenuInitialize = *mut ::core::ffi::c_void; +pub type IDelegateFolder = *mut ::core::ffi::c_void; +pub type IDelegateItem = *mut ::core::ffi::c_void; +pub type IDeskBand = *mut ::core::ffi::c_void; +pub type IDeskBand2 = *mut ::core::ffi::c_void; +pub type IDeskBandInfo = *mut ::core::ffi::c_void; +pub type IDeskBar = *mut ::core::ffi::c_void; +pub type IDeskBarClient = *mut ::core::ffi::c_void; +pub type IDesktopGadget = *mut ::core::ffi::c_void; +pub type IDesktopWallpaper = *mut ::core::ffi::c_void; +pub type IDestinationStreamFactory = *mut ::core::ffi::c_void; +pub type IDisplayItem = *mut ::core::ffi::c_void; +pub type IDocViewSite = *mut ::core::ffi::c_void; +pub type IDockingWindow = *mut ::core::ffi::c_void; +pub type IDockingWindowFrame = *mut ::core::ffi::c_void; +pub type IDockingWindowSite = *mut ::core::ffi::c_void; +pub type IDragSourceHelper = *mut ::core::ffi::c_void; +pub type IDragSourceHelper2 = *mut ::core::ffi::c_void; +pub type IDropTargetHelper = *mut ::core::ffi::c_void; +pub type IDynamicHWHandler = *mut ::core::ffi::c_void; +pub type IEnumACString = *mut ::core::ffi::c_void; +pub type IEnumAssocHandlers = *mut ::core::ffi::c_void; +pub type IEnumExplorerCommand = *mut ::core::ffi::c_void; +pub type IEnumExtraSearch = *mut ::core::ffi::c_void; +pub type IEnumFullIDList = *mut ::core::ffi::c_void; +pub type IEnumHLITEM = *mut ::core::ffi::c_void; +pub type IEnumIDList = *mut ::core::ffi::c_void; +pub type IEnumObjects = *mut ::core::ffi::c_void; +pub type IEnumPublishedApps = *mut ::core::ffi::c_void; +pub type IEnumReadyCallback = *mut ::core::ffi::c_void; +pub type IEnumResources = *mut ::core::ffi::c_void; +pub type IEnumShellItems = *mut ::core::ffi::c_void; +pub type IEnumSyncMgrConflict = *mut ::core::ffi::c_void; +pub type IEnumSyncMgrEvents = *mut ::core::ffi::c_void; +pub type IEnumSyncMgrSyncItems = *mut ::core::ffi::c_void; +pub type IEnumTravelLogEntry = *mut ::core::ffi::c_void; +pub type IEnumerableView = *mut ::core::ffi::c_void; +pub type IExecuteCommand = *mut ::core::ffi::c_void; +pub type IExecuteCommandApplicationHostEnvironment = *mut ::core::ffi::c_void; +pub type IExecuteCommandHost = *mut ::core::ffi::c_void; +pub type IExpDispSupport = *mut ::core::ffi::c_void; +pub type IExpDispSupportXP = *mut ::core::ffi::c_void; +pub type IExplorerBrowser = *mut ::core::ffi::c_void; +pub type IExplorerBrowserEvents = *mut ::core::ffi::c_void; +pub type IExplorerCommand = *mut ::core::ffi::c_void; +pub type IExplorerCommandProvider = *mut ::core::ffi::c_void; +pub type IExplorerCommandState = *mut ::core::ffi::c_void; +pub type IExplorerPaneVisibility = *mut ::core::ffi::c_void; +pub type IExtensionServices = *mut ::core::ffi::c_void; +pub type IExtractIconA = *mut ::core::ffi::c_void; +pub type IExtractIconW = *mut ::core::ffi::c_void; +pub type IExtractImage = *mut ::core::ffi::c_void; +pub type IExtractImage2 = *mut ::core::ffi::c_void; +pub type IFileDialog = *mut ::core::ffi::c_void; +pub type IFileDialog2 = *mut ::core::ffi::c_void; +pub type IFileDialogControlEvents = *mut ::core::ffi::c_void; +pub type IFileDialogCustomize = *mut ::core::ffi::c_void; +pub type IFileDialogEvents = *mut ::core::ffi::c_void; +pub type IFileIsInUse = *mut ::core::ffi::c_void; +pub type IFileOpenDialog = *mut ::core::ffi::c_void; +pub type IFileOperation = *mut ::core::ffi::c_void; +pub type IFileOperation2 = *mut ::core::ffi::c_void; +pub type IFileOperationProgressSink = *mut ::core::ffi::c_void; +pub type IFileSaveDialog = *mut ::core::ffi::c_void; +pub type IFileSearchBand = *mut ::core::ffi::c_void; +pub type IFileSyncMergeHandler = *mut ::core::ffi::c_void; +pub type IFileSystemBindData = *mut ::core::ffi::c_void; +pub type IFileSystemBindData2 = *mut ::core::ffi::c_void; +pub type IFolderBandPriv = *mut ::core::ffi::c_void; +pub type IFolderFilter = *mut ::core::ffi::c_void; +pub type IFolderFilterSite = *mut ::core::ffi::c_void; +pub type IFolderView = *mut ::core::ffi::c_void; +pub type IFolderView2 = *mut ::core::ffi::c_void; +pub type IFolderViewHost = *mut ::core::ffi::c_void; +pub type IFolderViewOC = *mut ::core::ffi::c_void; +pub type IFolderViewOptions = *mut ::core::ffi::c_void; +pub type IFolderViewSettings = *mut ::core::ffi::c_void; +pub type IFrameworkInputPane = *mut ::core::ffi::c_void; +pub type IFrameworkInputPaneHandler = *mut ::core::ffi::c_void; +pub type IGetServiceIds = *mut ::core::ffi::c_void; +pub type IHWEventHandler = *mut ::core::ffi::c_void; +pub type IHWEventHandler2 = *mut ::core::ffi::c_void; +pub type IHandlerActivationHost = *mut ::core::ffi::c_void; +pub type IHandlerInfo = *mut ::core::ffi::c_void; +pub type IHandlerInfo2 = *mut ::core::ffi::c_void; +pub type IHlink = *mut ::core::ffi::c_void; +pub type IHlinkBrowseContext = *mut ::core::ffi::c_void; +pub type IHlinkFrame = *mut ::core::ffi::c_void; +pub type IHlinkSite = *mut ::core::ffi::c_void; +pub type IHlinkTarget = *mut ::core::ffi::c_void; +pub type IHomeGroup = *mut ::core::ffi::c_void; +pub type IIOCancelInformation = *mut ::core::ffi::c_void; +pub type IIdentityName = *mut ::core::ffi::c_void; +pub type IImageRecompress = *mut ::core::ffi::c_void; +pub type IInitializeCommand = *mut ::core::ffi::c_void; +pub type IInitializeNetworkFolder = *mut ::core::ffi::c_void; +pub type IInitializeObject = *mut ::core::ffi::c_void; +pub type IInitializeWithBindCtx = *mut ::core::ffi::c_void; +pub type IInitializeWithItem = *mut ::core::ffi::c_void; +pub type IInitializeWithPropertyStore = *mut ::core::ffi::c_void; +pub type IInitializeWithWindow = *mut ::core::ffi::c_void; +pub type IInputObject = *mut ::core::ffi::c_void; +pub type IInputObject2 = *mut ::core::ffi::c_void; +pub type IInputObjectSite = *mut ::core::ffi::c_void; +pub type IInputPaneAnimationCoordinator = *mut ::core::ffi::c_void; +pub type IInputPanelConfiguration = *mut ::core::ffi::c_void; +pub type IInputPanelInvocationConfiguration = *mut ::core::ffi::c_void; +pub type IInsertItem = *mut ::core::ffi::c_void; +pub type IItemNameLimits = *mut ::core::ffi::c_void; +pub type IKnownFolder = *mut ::core::ffi::c_void; +pub type IKnownFolderManager = *mut ::core::ffi::c_void; +pub type ILaunchSourceAppUserModelId = *mut ::core::ffi::c_void; +pub type ILaunchSourceViewSizePreference = *mut ::core::ffi::c_void; +pub type ILaunchTargetMonitor = *mut ::core::ffi::c_void; +pub type ILaunchTargetViewSizePreference = *mut ::core::ffi::c_void; +pub type ILaunchUIContext = *mut ::core::ffi::c_void; +pub type ILaunchUIContextProvider = *mut ::core::ffi::c_void; +pub type IMenuBand = *mut ::core::ffi::c_void; +pub type IMenuPopup = *mut ::core::ffi::c_void; +pub type IModalWindow = *mut ::core::ffi::c_void; +pub type INameSpaceTreeAccessible = *mut ::core::ffi::c_void; +pub type INameSpaceTreeControl = *mut ::core::ffi::c_void; +pub type INameSpaceTreeControl2 = *mut ::core::ffi::c_void; +pub type INameSpaceTreeControlCustomDraw = *mut ::core::ffi::c_void; +pub type INameSpaceTreeControlDropHandler = *mut ::core::ffi::c_void; +pub type INameSpaceTreeControlEvents = *mut ::core::ffi::c_void; +pub type INameSpaceTreeControlFolderCapabilities = *mut ::core::ffi::c_void; +pub type INamedPropertyBag = *mut ::core::ffi::c_void; +pub type INamespaceWalk = *mut ::core::ffi::c_void; +pub type INamespaceWalkCB = *mut ::core::ffi::c_void; +pub type INamespaceWalkCB2 = *mut ::core::ffi::c_void; +pub type INetworkFolderInternal = *mut ::core::ffi::c_void; +pub type INewMenuClient = *mut ::core::ffi::c_void; +pub type INewShortcutHookA = *mut ::core::ffi::c_void; +pub type INewShortcutHookW = *mut ::core::ffi::c_void; +pub type INewWDEvents = *mut ::core::ffi::c_void; +pub type INewWindowManager = *mut ::core::ffi::c_void; +pub type INotifyReplica = *mut ::core::ffi::c_void; +pub type IObjMgr = *mut ::core::ffi::c_void; +pub type IObjectProvider = *mut ::core::ffi::c_void; +pub type IObjectWithAppUserModelID = *mut ::core::ffi::c_void; +pub type IObjectWithBackReferences = *mut ::core::ffi::c_void; +pub type IObjectWithCancelEvent = *mut ::core::ffi::c_void; +pub type IObjectWithFolderEnumMode = *mut ::core::ffi::c_void; +pub type IObjectWithProgID = *mut ::core::ffi::c_void; +pub type IObjectWithSelection = *mut ::core::ffi::c_void; +pub type IOpenControlPanel = *mut ::core::ffi::c_void; +pub type IOpenSearchSource = *mut ::core::ffi::c_void; +pub type IOperationsProgressDialog = *mut ::core::ffi::c_void; +pub type IPackageDebugSettings = *mut ::core::ffi::c_void; +pub type IPackageDebugSettings2 = *mut ::core::ffi::c_void; +pub type IPackageExecutionStateChangeNotification = *mut ::core::ffi::c_void; +pub type IParentAndItem = *mut ::core::ffi::c_void; +pub type IParseAndCreateItem = *mut ::core::ffi::c_void; +pub type IPersistFolder = *mut ::core::ffi::c_void; +pub type IPersistFolder2 = *mut ::core::ffi::c_void; +pub type IPersistFolder3 = *mut ::core::ffi::c_void; +pub type IPersistIDList = *mut ::core::ffi::c_void; +pub type IPreviewHandler = *mut ::core::ffi::c_void; +pub type IPreviewHandlerFrame = *mut ::core::ffi::c_void; +pub type IPreviewHandlerVisuals = *mut ::core::ffi::c_void; +pub type IPreviewItem = *mut ::core::ffi::c_void; +pub type IPreviousVersionsInfo = *mut ::core::ffi::c_void; +pub type IProfferService = *mut ::core::ffi::c_void; +pub type IProgressDialog = *mut ::core::ffi::c_void; +pub type IPropertyKeyStore = *mut ::core::ffi::c_void; +pub type IPublishedApp = *mut ::core::ffi::c_void; +pub type IPublishedApp2 = *mut ::core::ffi::c_void; +pub type IPublishingWizard = *mut ::core::ffi::c_void; +pub type IQueryAssociations = *mut ::core::ffi::c_void; +pub type IQueryCancelAutoPlay = *mut ::core::ffi::c_void; +pub type IQueryCodePage = *mut ::core::ffi::c_void; +pub type IQueryContinue = *mut ::core::ffi::c_void; +pub type IQueryContinueWithStatus = *mut ::core::ffi::c_void; +pub type IQueryInfo = *mut ::core::ffi::c_void; +pub type IRegTreeItem = *mut ::core::ffi::c_void; +pub type IRelatedItem = *mut ::core::ffi::c_void; +pub type IRemoteComputer = *mut ::core::ffi::c_void; +pub type IResolveShellLink = *mut ::core::ffi::c_void; +pub type IResultsFolder = *mut ::core::ffi::c_void; +pub type IRunnableTask = *mut ::core::ffi::c_void; +pub type IScriptErrorList = *mut ::core::ffi::c_void; +pub type ISearchBoxInfo = *mut ::core::ffi::c_void; +pub type ISearchContext = *mut ::core::ffi::c_void; +pub type ISearchFolderItemFactory = *mut ::core::ffi::c_void; +pub type ISharedBitmap = *mut ::core::ffi::c_void; +pub type ISharingConfigurationManager = *mut ::core::ffi::c_void; +pub type IShellApp = *mut ::core::ffi::c_void; +pub type IShellBrowser = *mut ::core::ffi::c_void; +pub type IShellChangeNotify = *mut ::core::ffi::c_void; +pub type IShellDetails = *mut ::core::ffi::c_void; +pub type IShellDispatch = *mut ::core::ffi::c_void; +pub type IShellDispatch2 = *mut ::core::ffi::c_void; +pub type IShellDispatch3 = *mut ::core::ffi::c_void; +pub type IShellDispatch4 = *mut ::core::ffi::c_void; +pub type IShellDispatch5 = *mut ::core::ffi::c_void; +pub type IShellDispatch6 = *mut ::core::ffi::c_void; +pub type IShellExtInit = *mut ::core::ffi::c_void; +pub type IShellFavoritesNameSpace = *mut ::core::ffi::c_void; +pub type IShellFolder = *mut ::core::ffi::c_void; +pub type IShellFolder2 = *mut ::core::ffi::c_void; +pub type IShellFolderBand = *mut ::core::ffi::c_void; +pub type IShellFolderView = *mut ::core::ffi::c_void; +pub type IShellFolderViewCB = *mut ::core::ffi::c_void; +pub type IShellFolderViewDual = *mut ::core::ffi::c_void; +pub type IShellFolderViewDual2 = *mut ::core::ffi::c_void; +pub type IShellFolderViewDual3 = *mut ::core::ffi::c_void; +pub type IShellIcon = *mut ::core::ffi::c_void; +pub type IShellIconOverlay = *mut ::core::ffi::c_void; +pub type IShellIconOverlayIdentifier = *mut ::core::ffi::c_void; +pub type IShellIconOverlayManager = *mut ::core::ffi::c_void; +pub type IShellImageData = *mut ::core::ffi::c_void; +pub type IShellImageDataAbort = *mut ::core::ffi::c_void; +pub type IShellImageDataFactory = *mut ::core::ffi::c_void; +pub type IShellItem = *mut ::core::ffi::c_void; +pub type IShellItem2 = *mut ::core::ffi::c_void; +pub type IShellItemArray = *mut ::core::ffi::c_void; +pub type IShellItemFilter = *mut ::core::ffi::c_void; +pub type IShellItemImageFactory = *mut ::core::ffi::c_void; +pub type IShellItemResources = *mut ::core::ffi::c_void; +pub type IShellLibrary = *mut ::core::ffi::c_void; +pub type IShellLinkA = *mut ::core::ffi::c_void; +pub type IShellLinkDataList = *mut ::core::ffi::c_void; +pub type IShellLinkDual = *mut ::core::ffi::c_void; +pub type IShellLinkDual2 = *mut ::core::ffi::c_void; +pub type IShellLinkW = *mut ::core::ffi::c_void; +pub type IShellMenu = *mut ::core::ffi::c_void; +pub type IShellMenuCallback = *mut ::core::ffi::c_void; +pub type IShellNameSpace = *mut ::core::ffi::c_void; +pub type IShellPropSheetExt = *mut ::core::ffi::c_void; +pub type IShellRunDll = *mut ::core::ffi::c_void; +pub type IShellService = *mut ::core::ffi::c_void; +pub type IShellTaskScheduler = *mut ::core::ffi::c_void; +pub type IShellUIHelper = *mut ::core::ffi::c_void; +pub type IShellUIHelper2 = *mut ::core::ffi::c_void; +pub type IShellUIHelper3 = *mut ::core::ffi::c_void; +pub type IShellUIHelper4 = *mut ::core::ffi::c_void; +pub type IShellUIHelper5 = *mut ::core::ffi::c_void; +pub type IShellUIHelper6 = *mut ::core::ffi::c_void; +pub type IShellUIHelper7 = *mut ::core::ffi::c_void; +pub type IShellUIHelper8 = *mut ::core::ffi::c_void; +pub type IShellUIHelper9 = *mut ::core::ffi::c_void; +pub type IShellView = *mut ::core::ffi::c_void; +pub type IShellView2 = *mut ::core::ffi::c_void; +pub type IShellView3 = *mut ::core::ffi::c_void; +pub type IShellWindows = *mut ::core::ffi::c_void; +pub type ISortColumnArray = *mut ::core::ffi::c_void; +pub type IStartMenuPinnedList = *mut ::core::ffi::c_void; +pub type IStorageProviderBanners = *mut ::core::ffi::c_void; +pub type IStorageProviderCopyHook = *mut ::core::ffi::c_void; +pub type IStorageProviderHandler = *mut ::core::ffi::c_void; +pub type IStorageProviderPropertyHandler = *mut ::core::ffi::c_void; +pub type IStreamAsync = *mut ::core::ffi::c_void; +pub type IStreamUnbufferedInfo = *mut ::core::ffi::c_void; +pub type ISuspensionDependencyManager = *mut ::core::ffi::c_void; +pub type ISyncMgrConflict = *mut ::core::ffi::c_void; +pub type ISyncMgrConflictFolder = *mut ::core::ffi::c_void; +pub type ISyncMgrConflictItems = *mut ::core::ffi::c_void; +pub type ISyncMgrConflictPresenter = *mut ::core::ffi::c_void; +pub type ISyncMgrConflictResolutionItems = *mut ::core::ffi::c_void; +pub type ISyncMgrConflictResolveInfo = *mut ::core::ffi::c_void; +pub type ISyncMgrConflictStore = *mut ::core::ffi::c_void; +pub type ISyncMgrControl = *mut ::core::ffi::c_void; +pub type ISyncMgrEnumItems = *mut ::core::ffi::c_void; +pub type ISyncMgrEvent = *mut ::core::ffi::c_void; +pub type ISyncMgrEventLinkUIOperation = *mut ::core::ffi::c_void; +pub type ISyncMgrEventStore = *mut ::core::ffi::c_void; +pub type ISyncMgrHandler = *mut ::core::ffi::c_void; +pub type ISyncMgrHandlerCollection = *mut ::core::ffi::c_void; +pub type ISyncMgrHandlerInfo = *mut ::core::ffi::c_void; +pub type ISyncMgrRegister = *mut ::core::ffi::c_void; +pub type ISyncMgrResolutionHandler = *mut ::core::ffi::c_void; +pub type ISyncMgrScheduleWizardUIOperation = *mut ::core::ffi::c_void; +pub type ISyncMgrSessionCreator = *mut ::core::ffi::c_void; +pub type ISyncMgrSyncCallback = *mut ::core::ffi::c_void; +pub type ISyncMgrSyncItem = *mut ::core::ffi::c_void; +pub type ISyncMgrSyncItemContainer = *mut ::core::ffi::c_void; +pub type ISyncMgrSyncItemInfo = *mut ::core::ffi::c_void; +pub type ISyncMgrSyncResult = *mut ::core::ffi::c_void; +pub type ISyncMgrSynchronize = *mut ::core::ffi::c_void; +pub type ISyncMgrSynchronizeCallback = *mut ::core::ffi::c_void; +pub type ISyncMgrSynchronizeInvoke = *mut ::core::ffi::c_void; +pub type ISyncMgrUIOperation = *mut ::core::ffi::c_void; +pub type ITaskbarList = *mut ::core::ffi::c_void; +pub type ITaskbarList2 = *mut ::core::ffi::c_void; +pub type ITaskbarList3 = *mut ::core::ffi::c_void; +pub type ITaskbarList4 = *mut ::core::ffi::c_void; +pub type IThumbnailCache = *mut ::core::ffi::c_void; +pub type IThumbnailCachePrimer = *mut ::core::ffi::c_void; +pub type IThumbnailCapture = *mut ::core::ffi::c_void; +pub type IThumbnailHandlerFactory = *mut ::core::ffi::c_void; +pub type IThumbnailProvider = *mut ::core::ffi::c_void; +pub type IThumbnailSettings = *mut ::core::ffi::c_void; +pub type IThumbnailStreamCache = *mut ::core::ffi::c_void; +pub type ITrackShellMenu = *mut ::core::ffi::c_void; +pub type ITranscodeImage = *mut ::core::ffi::c_void; +pub type ITransferAdviseSink = *mut ::core::ffi::c_void; +pub type ITransferDestination = *mut ::core::ffi::c_void; +pub type ITransferMediumItem = *mut ::core::ffi::c_void; +pub type ITransferSource = *mut ::core::ffi::c_void; +pub type ITravelEntry = *mut ::core::ffi::c_void; +pub type ITravelLog = *mut ::core::ffi::c_void; +pub type ITravelLogClient = *mut ::core::ffi::c_void; +pub type ITravelLogEntry = *mut ::core::ffi::c_void; +pub type ITravelLogStg = *mut ::core::ffi::c_void; +pub type ITrayDeskBand = *mut ::core::ffi::c_void; +pub type IURLSearchHook = *mut ::core::ffi::c_void; +pub type IURLSearchHook2 = *mut ::core::ffi::c_void; +pub type IUniformResourceLocatorA = *mut ::core::ffi::c_void; +pub type IUniformResourceLocatorW = *mut ::core::ffi::c_void; +pub type IUpdateIDList = *mut ::core::ffi::c_void; +pub type IUseToBrowseItem = *mut ::core::ffi::c_void; +pub type IUserAccountChangeCallback = *mut ::core::ffi::c_void; +pub type IUserNotification = *mut ::core::ffi::c_void; +pub type IUserNotification2 = *mut ::core::ffi::c_void; +pub type IUserNotificationCallback = *mut ::core::ffi::c_void; +pub type IViewStateIdentityItem = *mut ::core::ffi::c_void; +pub type IVirtualDesktopManager = *mut ::core::ffi::c_void; +pub type IVisualProperties = *mut ::core::ffi::c_void; +pub type IWebBrowser = *mut ::core::ffi::c_void; +pub type IWebBrowser2 = *mut ::core::ffi::c_void; +pub type IWebBrowserApp = *mut ::core::ffi::c_void; +pub type IWebWizardExtension = *mut ::core::ffi::c_void; +pub type IWebWizardHost = *mut ::core::ffi::c_void; +pub type IWebWizardHost2 = *mut ::core::ffi::c_void; +pub type IWizardExtension = *mut ::core::ffi::c_void; +pub type IWizardSite = *mut ::core::ffi::c_void; +pub const ABE_BOTTOM: u32 = 3u32; +pub const ABE_LEFT: u32 = 0u32; +pub const ABE_RIGHT: u32 = 2u32; +pub const ABE_TOP: u32 = 1u32; +pub const ABM_ACTIVATE: u32 = 6u32; +pub const ABM_GETAUTOHIDEBAR: u32 = 7u32; +pub const ABM_GETAUTOHIDEBAREX: u32 = 11u32; +pub const ABM_GETSTATE: u32 = 4u32; +pub const ABM_GETTASKBARPOS: u32 = 5u32; +pub const ABM_NEW: u32 = 0u32; +pub const ABM_QUERYPOS: u32 = 2u32; +pub const ABM_REMOVE: u32 = 1u32; +pub const ABM_SETAUTOHIDEBAR: u32 = 8u32; +pub const ABM_SETAUTOHIDEBAREX: u32 = 12u32; +pub const ABM_SETPOS: u32 = 3u32; +pub const ABM_SETSTATE: u32 = 10u32; +pub const ABM_WINDOWPOSCHANGED: u32 = 9u32; +pub const ABN_FULLSCREENAPP: u32 = 2u32; +pub const ABN_POSCHANGED: u32 = 1u32; +pub const ABN_STATECHANGE: u32 = 0u32; +pub const ABN_WINDOWARRANGE: u32 = 3u32; +pub const ABS_ALWAYSONTOP: u32 = 2u32; +pub const ABS_AUTOHIDE: u32 = 1u32; +pub const ACDD_VISIBLE: u32 = 1u32; +pub const ACEO_FIRSTUNUSED: ACENUMOPTION = 65536i32; +pub const ACEO_MOSTRECENTFIRST: ACENUMOPTION = 1i32; +pub const ACEO_NONE: ACENUMOPTION = 0i32; +pub const ACLO_CURRENTDIR: AUTOCOMPLETELISTOPTIONS = 1i32; +pub const ACLO_DESKTOP: AUTOCOMPLETELISTOPTIONS = 4i32; +pub const ACLO_FAVORITES: AUTOCOMPLETELISTOPTIONS = 8i32; +pub const ACLO_FILESYSDIRS: AUTOCOMPLETELISTOPTIONS = 32i32; +pub const ACLO_FILESYSONLY: AUTOCOMPLETELISTOPTIONS = 16i32; +pub const ACLO_MYCOMPUTER: AUTOCOMPLETELISTOPTIONS = 2i32; +pub const ACLO_NONE: AUTOCOMPLETELISTOPTIONS = 0i32; +pub const ACLO_VIRTUALNAMESPACE: AUTOCOMPLETELISTOPTIONS = 64i32; +pub const ACO_AUTOAPPEND: AUTOCOMPLETEOPTIONS = 2i32; +pub const ACO_AUTOSUGGEST: AUTOCOMPLETEOPTIONS = 1i32; +pub const ACO_FILTERPREFIXES: AUTOCOMPLETEOPTIONS = 8i32; +pub const ACO_NONE: AUTOCOMPLETEOPTIONS = 0i32; +pub const ACO_NOPREFIXFILTERING: AUTOCOMPLETEOPTIONS = 256i32; +pub const ACO_RTLREADING: AUTOCOMPLETEOPTIONS = 64i32; +pub const ACO_SEARCH: AUTOCOMPLETEOPTIONS = 4i32; +pub const ACO_UPDOWNKEYDROPSLIST: AUTOCOMPLETEOPTIONS = 32i32; +pub const ACO_USETAB: AUTOCOMPLETEOPTIONS = 16i32; +pub const ACO_WORD_FILTER: AUTOCOMPLETEOPTIONS = 128i32; +pub const ADDURL_SILENT: u32 = 1u32; +pub const ADE_LEFT: ADJACENT_DISPLAY_EDGES = 1i32; +pub const ADE_NONE: ADJACENT_DISPLAY_EDGES = 0i32; +pub const ADE_RIGHT: ADJACENT_DISPLAY_EDGES = 2i32; +pub const ADLT_FREQUENT: APPDOCLISTTYPE = 1i32; +pub const ADLT_RECENT: APPDOCLISTTYPE = 0i32; +pub const AD_APPLY_BUFFERED_REFRESH: u32 = 16u32; +pub const AD_APPLY_DYNAMICREFRESH: u32 = 32u32; +pub const AD_APPLY_FORCE: u32 = 8u32; +pub const AD_APPLY_HTMLGEN: u32 = 2u32; +pub const AD_APPLY_REFRESH: u32 = 4u32; +pub const AD_APPLY_SAVE: u32 = 1u32; +pub const AD_GETWP_BMP: u32 = 0u32; +pub const AD_GETWP_IMAGE: u32 = 1u32; +pub const AD_GETWP_LAST_APPLIED: u32 = 2u32; +pub const AHE_DESKTOP: AHE_TYPE = 0i32; +pub const AHE_IMMERSIVE: AHE_TYPE = 1i32; +pub const AHTYPE_ANY_APPLICATION: AHTYPE = 16i32; +pub const AHTYPE_ANY_PROGID: AHTYPE = 512i32; +pub const AHTYPE_APPLICATION: AHTYPE = 128i32; +pub const AHTYPE_CLASS_APPLICATION: AHTYPE = 256i32; +pub const AHTYPE_MACHINEDEFAULT: AHTYPE = 32i32; +pub const AHTYPE_PROGID: AHTYPE = 64i32; +pub const AHTYPE_UNDEFINED: AHTYPE = 0i32; +pub const AHTYPE_USER_APPLICATION: AHTYPE = 8i32; +pub const AIM_COMMENTS: APPINFODATAFLAGS = 32768i32; +pub const AIM_CONTACT: APPINFODATAFLAGS = 16384i32; +pub const AIM_DISPLAYNAME: APPINFODATAFLAGS = 1i32; +pub const AIM_HELPLINK: APPINFODATAFLAGS = 512i32; +pub const AIM_IMAGE: APPINFODATAFLAGS = 131072i32; +pub const AIM_INSTALLDATE: APPINFODATAFLAGS = 4096i32; +pub const AIM_INSTALLLOCATION: APPINFODATAFLAGS = 1024i32; +pub const AIM_INSTALLSOURCE: APPINFODATAFLAGS = 2048i32; +pub const AIM_LANGUAGE: APPINFODATAFLAGS = 64i32; +pub const AIM_PRODUCTID: APPINFODATAFLAGS = 8i32; +pub const AIM_PUBLISHER: APPINFODATAFLAGS = 4i32; +pub const AIM_READMEURL: APPINFODATAFLAGS = 262144i32; +pub const AIM_REGISTEREDCOMPANY: APPINFODATAFLAGS = 32i32; +pub const AIM_REGISTEREDOWNER: APPINFODATAFLAGS = 16i32; +pub const AIM_SUPPORTTELEPHONE: APPINFODATAFLAGS = 256i32; +pub const AIM_SUPPORTURL: APPINFODATAFLAGS = 128i32; +pub const AIM_UPDATEINFOURL: APPINFODATAFLAGS = 524288i32; +pub const AIM_VERSION: APPINFODATAFLAGS = 2i32; +pub const AL_EFFECTIVE: ASSOCIATIONLEVEL = 1i32; +pub const AL_MACHINE: ASSOCIATIONLEVEL = 0i32; +pub const AL_USER: ASSOCIATIONLEVEL = 2i32; +pub const AO_DESIGNMODE: ACTIVATEOPTIONS = 1i32; +pub const AO_NOERRORUI: ACTIVATEOPTIONS = 2i32; +pub const AO_NONE: ACTIVATEOPTIONS = 0i32; +pub const AO_NOSPLASHSCREEN: ACTIVATEOPTIONS = 4i32; +pub const AO_PRELAUNCH: ACTIVATEOPTIONS = 33554432i32; +pub const APPACTION_ADDLATER: APPACTIONFLAGS = 256i32; +pub const APPACTION_CANGETSIZE: APPACTIONFLAGS = 32i32; +pub const APPACTION_INSTALL: APPACTIONFLAGS = 1i32; +pub const APPACTION_MODIFY: APPACTIONFLAGS = 4i32; +pub const APPACTION_MODIFYREMOVE: APPACTIONFLAGS = 128i32; +pub const APPACTION_REPAIR: APPACTIONFLAGS = 8i32; +pub const APPACTION_UNINSTALL: APPACTIONFLAGS = 2i32; +pub const APPACTION_UNSCHEDULE: APPACTIONFLAGS = 512i32; +pub const APPACTION_UPGRADE: APPACTIONFLAGS = 16i32; +pub const APPNAMEBUFFERLEN: u32 = 40u32; +pub const ARCONTENT_AUDIOCD: u32 = 4u32; +pub const ARCONTENT_AUTOPLAYMUSIC: u32 = 256u32; +pub const ARCONTENT_AUTOPLAYPIX: u32 = 128u32; +pub const ARCONTENT_AUTOPLAYVIDEO: u32 = 512u32; +pub const ARCONTENT_AUTORUNINF: u32 = 2u32; +pub const ARCONTENT_BLANKBD: u32 = 8192u32; +pub const ARCONTENT_BLANKCD: u32 = 16u32; +pub const ARCONTENT_BLANKDVD: u32 = 32u32; +pub const ARCONTENT_BLURAY: u32 = 16384u32; +pub const ARCONTENT_CAMERASTORAGE: u32 = 32768u32; +pub const ARCONTENT_CUSTOMEVENT: u32 = 65536u32; +pub const ARCONTENT_DVDAUDIO: u32 = 4096u32; +pub const ARCONTENT_DVDMOVIE: u32 = 8u32; +pub const ARCONTENT_MASK: u32 = 131070u32; +pub const ARCONTENT_NONE: u32 = 0u32; +pub const ARCONTENT_PHASE_FINAL: u32 = 1073741824u32; +pub const ARCONTENT_PHASE_MASK: u32 = 1879048192u32; +pub const ARCONTENT_PHASE_PRESNIFF: u32 = 268435456u32; +pub const ARCONTENT_PHASE_SNIFFING: u32 = 536870912u32; +pub const ARCONTENT_PHASE_UNKNOWN: u32 = 0u32; +pub const ARCONTENT_SVCD: u32 = 2048u32; +pub const ARCONTENT_UNKNOWNCONTENT: u32 = 64u32; +pub const ARCONTENT_VCD: u32 = 1024u32; +pub const ASSOCCLASS_APP_KEY: ASSOCCLASS = 5i32; +pub const ASSOCCLASS_APP_STR: ASSOCCLASS = 6i32; +pub const ASSOCCLASS_CLSID_KEY: ASSOCCLASS = 3i32; +pub const ASSOCCLASS_CLSID_STR: ASSOCCLASS = 4i32; +pub const ASSOCCLASS_FIXED_PROGID_STR: ASSOCCLASS = 10i32; +pub const ASSOCCLASS_FOLDER: ASSOCCLASS = 8i32; +pub const ASSOCCLASS_PROGID_KEY: ASSOCCLASS = 1i32; +pub const ASSOCCLASS_PROGID_STR: ASSOCCLASS = 2i32; +pub const ASSOCCLASS_PROTOCOL_STR: ASSOCCLASS = 11i32; +pub const ASSOCCLASS_SHELL_KEY: ASSOCCLASS = 0i32; +pub const ASSOCCLASS_STAR: ASSOCCLASS = 9i32; +pub const ASSOCCLASS_SYSTEM_STR: ASSOCCLASS = 7i32; +pub const ASSOCDATA_EDITFLAGS: ASSOCDATA = 5i32; +pub const ASSOCDATA_HASPERUSERASSOC: ASSOCDATA = 4i32; +pub const ASSOCDATA_MAX: ASSOCDATA = 7i32; +pub const ASSOCDATA_MSIDESCRIPTOR: ASSOCDATA = 1i32; +pub const ASSOCDATA_NOACTIVATEHANDLER: ASSOCDATA = 2i32; +pub const ASSOCDATA_UNUSED1: ASSOCDATA = 3i32; +pub const ASSOCDATA_VALUE: ASSOCDATA = 6i32; +pub const ASSOCENUM_NONE: ASSOCENUM = 0i32; +pub const ASSOCF_APP_TO_APP: ASSOCF = 65536u32; +pub const ASSOCF_IGNOREBASECLASS: ASSOCF = 512u32; +pub const ASSOCF_INIT_BYEXENAME: ASSOCF = 2u32; +pub const ASSOCF_INIT_DEFAULTTOFOLDER: ASSOCF = 8u32; +pub const ASSOCF_INIT_DEFAULTTOSTAR: ASSOCF = 4u32; +pub const ASSOCF_INIT_FIXED_PROGID: ASSOCF = 2048u32; +pub const ASSOCF_INIT_FOR_FILE: ASSOCF = 8192u32; +pub const ASSOCF_INIT_IGNOREUNKNOWN: ASSOCF = 1024u32; +pub const ASSOCF_INIT_NOREMAPCLSID: ASSOCF = 1u32; +pub const ASSOCF_IS_FULL_URI: ASSOCF = 16384u32; +pub const ASSOCF_IS_PROTOCOL: ASSOCF = 4096u32; +pub const ASSOCF_NOFIXUPS: ASSOCF = 256u32; +pub const ASSOCF_NONE: ASSOCF = 0u32; +pub const ASSOCF_NOTRUNCATE: ASSOCF = 32u32; +pub const ASSOCF_NOUSERSETTINGS: ASSOCF = 16u32; +pub const ASSOCF_OPEN_BYEXENAME: ASSOCF = 2u32; +pub const ASSOCF_PER_MACHINE_ONLY: ASSOCF = 32768u32; +pub const ASSOCF_REMAPRUNDLL: ASSOCF = 128u32; +pub const ASSOCF_VERIFY: ASSOCF = 64u32; +pub const ASSOCKEY_APP: ASSOCKEY = 2i32; +pub const ASSOCKEY_BASECLASS: ASSOCKEY = 4i32; +pub const ASSOCKEY_CLASS: ASSOCKEY = 3i32; +pub const ASSOCKEY_MAX: ASSOCKEY = 5i32; +pub const ASSOCKEY_SHELLEXECCLASS: ASSOCKEY = 1i32; +pub const ASSOCSTR_APPICONREFERENCE: ASSOCSTR = 23i32; +pub const ASSOCSTR_APPID: ASSOCSTR = 21i32; +pub const ASSOCSTR_APPPUBLISHER: ASSOCSTR = 22i32; +pub const ASSOCSTR_COMMAND: ASSOCSTR = 1i32; +pub const ASSOCSTR_CONTENTTYPE: ASSOCSTR = 14i32; +pub const ASSOCSTR_DDEAPPLICATION: ASSOCSTR = 9i32; +pub const ASSOCSTR_DDECOMMAND: ASSOCSTR = 7i32; +pub const ASSOCSTR_DDEIFEXEC: ASSOCSTR = 8i32; +pub const ASSOCSTR_DDETOPIC: ASSOCSTR = 10i32; +pub const ASSOCSTR_DEFAULTICON: ASSOCSTR = 15i32; +pub const ASSOCSTR_DELEGATEEXECUTE: ASSOCSTR = 18i32; +pub const ASSOCSTR_DROPTARGET: ASSOCSTR = 17i32; +pub const ASSOCSTR_EXECUTABLE: ASSOCSTR = 2i32; +pub const ASSOCSTR_FRIENDLYAPPNAME: ASSOCSTR = 4i32; +pub const ASSOCSTR_FRIENDLYDOCNAME: ASSOCSTR = 3i32; +pub const ASSOCSTR_INFOTIP: ASSOCSTR = 11i32; +pub const ASSOCSTR_MAX: ASSOCSTR = 24i32; +pub const ASSOCSTR_NOOPEN: ASSOCSTR = 5i32; +pub const ASSOCSTR_PROGID: ASSOCSTR = 20i32; +pub const ASSOCSTR_QUICKTIP: ASSOCSTR = 12i32; +pub const ASSOCSTR_SHELLEXTENSION: ASSOCSTR = 16i32; +pub const ASSOCSTR_SHELLNEWVALUE: ASSOCSTR = 6i32; +pub const ASSOCSTR_SUPPORTED_URI_PROTOCOLS: ASSOCSTR = 19i32; +pub const ASSOCSTR_TILEINFO: ASSOCSTR = 13i32; +pub const ASSOC_FILTER_NONE: ASSOC_FILTER = 0i32; +pub const ASSOC_FILTER_RECOMMENDED: ASSOC_FILTER = 1i32; +pub const ATTACHMENT_ACTION_CANCEL: ATTACHMENT_ACTION = 0i32; +pub const ATTACHMENT_ACTION_EXEC: ATTACHMENT_ACTION = 2i32; +pub const ATTACHMENT_ACTION_SAVE: ATTACHMENT_ACTION = 1i32; +pub const ATTACHMENT_PROMPT_EXEC: ATTACHMENT_PROMPT = 2i32; +pub const ATTACHMENT_PROMPT_EXEC_OR_SAVE: ATTACHMENT_PROMPT = 3i32; +pub const ATTACHMENT_PROMPT_NONE: ATTACHMENT_PROMPT = 0i32; +pub const ATTACHMENT_PROMPT_SAVE: ATTACHMENT_PROMPT = 1i32; +pub const AT_FILEEXTENSION: ASSOCIATIONTYPE = 0i32; +pub const AT_MIMETYPE: ASSOCIATIONTYPE = 3i32; +pub const AT_STARTMENUCLIENT: ASSOCIATIONTYPE = 2i32; +pub const AT_URLPROTOCOL: ASSOCIATIONTYPE = 1i32; +pub const AVMW_320: APPLICATION_VIEW_MIN_WIDTH = 1i32; +pub const AVMW_500: APPLICATION_VIEW_MIN_WIDTH = 2i32; +pub const AVMW_DEFAULT: APPLICATION_VIEW_MIN_WIDTH = 0i32; +pub const AVO_LANDSCAPE: APPLICATION_VIEW_ORIENTATION = 0i32; +pub const AVO_PORTRAIT: APPLICATION_VIEW_ORIENTATION = 1i32; +pub const AVSP_CUSTOM: APPLICATION_VIEW_SIZE_PREFERENCE = 6i32; +pub const AVSP_DEFAULT: APPLICATION_VIEW_SIZE_PREFERENCE = 0i32; +pub const AVSP_USE_HALF: APPLICATION_VIEW_SIZE_PREFERENCE = 2i32; +pub const AVSP_USE_LESS: APPLICATION_VIEW_SIZE_PREFERENCE = 1i32; +pub const AVSP_USE_MINIMUM: APPLICATION_VIEW_SIZE_PREFERENCE = 4i32; +pub const AVSP_USE_MORE: APPLICATION_VIEW_SIZE_PREFERENCE = 3i32; +pub const AVSP_USE_NONE: APPLICATION_VIEW_SIZE_PREFERENCE = 5i32; +pub const AVS_FILLED: APPLICATION_VIEW_STATE = 1i32; +pub const AVS_FULLSCREEN_LANDSCAPE: APPLICATION_VIEW_STATE = 0i32; +pub const AVS_FULLSCREEN_PORTRAIT: APPLICATION_VIEW_STATE = 3i32; +pub const AVS_SNAPPED: APPLICATION_VIEW_STATE = 2i32; +pub const AccessibilityDockingService: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x29ce1d46_b481_4aa0_a08a_d3ebc8aca402); +pub const AllowSmallerSize: ThumbnailStreamCacheOptions = 4i32; +pub const AlphabeticalCategorizer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3c2654c6_7372_4f6b_b310_55d6128f49d2); +pub const AppShellVerbHandler: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4ed3a719_cea8_4bd9_910d_e252f997afc2); +pub const AppStartupLink: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x273eb5e7_88b0_4843_bfef_e2c81d43aae5); +pub const AppVisibility: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7e5fe3d9_985f_4908_91f9_ee19f9fd1514); +pub const ApplicationActivationManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x45ba127d_10a8_46ea_8ab7_56ea9078943c); +pub const ApplicationAssociationRegistration: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x591209c7_767b_42b2_9fba_44ee4615f2c7); +pub const ApplicationAssociationRegistrationUI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1968106d_f3b5_44cf_890e_116fcb9ecef1); +pub const ApplicationDesignModeSettings: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x958a6fb5_dcb2_4faf_aafd_7fb054ad1a3b); +pub const ApplicationDestinations: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x86c14003_4d6b_4ef3_a7b4_0506663b2e68); +pub const ApplicationDocumentLists: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x86bec222_30f2_47e0_9f25_60d11cd75c28); +pub const AttachmentServices: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4125dd96_e03a_4103_8f70_e0597d803b9c); +pub const BFFM_ENABLEOK: u32 = 1125u32; +pub const BFFM_INITIALIZED: u32 = 1u32; +pub const BFFM_IUNKNOWN: u32 = 5u32; +pub const BFFM_SELCHANGED: u32 = 2u32; +pub const BFFM_SETEXPANDED: u32 = 1130u32; +pub const BFFM_SETOKTEXT: u32 = 1129u32; +pub const BFFM_SETSELECTION: u32 = 1127u32; +pub const BFFM_SETSELECTIONA: u32 = 1126u32; +pub const BFFM_SETSELECTIONW: u32 = 1127u32; +pub const BFFM_SETSTATUSTEXT: u32 = 1128u32; +pub const BFFM_SETSTATUSTEXTA: u32 = 1124u32; +pub const BFFM_SETSTATUSTEXTW: u32 = 1128u32; +pub const BFFM_VALIDATEFAILED: u32 = 4u32; +pub const BFFM_VALIDATEFAILEDA: u32 = 3u32; +pub const BFFM_VALIDATEFAILEDW: u32 = 4u32; +pub const BFO_ADD_IE_TOCAPTIONBAR: _BROWSERFRAMEOPTIONS = 512i32; +pub const BFO_BOTH_OPTIONS: _BROWSERFRAMEOPTIONS = 4i32; +pub const BFO_BROWSER_PERSIST_SETTINGS: _BROWSERFRAMEOPTIONS = 1i32; +pub const BFO_BROWSE_NO_IN_NEW_PROCESS: _BROWSERFRAMEOPTIONS = 16i32; +pub const BFO_ENABLE_HYPERLINK_TRACKING: _BROWSERFRAMEOPTIONS = 32i32; +pub const BFO_GO_HOME_PAGE: _BROWSERFRAMEOPTIONS = 16384i32; +pub const BFO_NONE: _BROWSERFRAMEOPTIONS = 0i32; +pub const BFO_NO_PARENT_FOLDER_SUPPORT: _BROWSERFRAMEOPTIONS = 4096i32; +pub const BFO_NO_REOPEN_NEXT_RESTART: _BROWSERFRAMEOPTIONS = 8192i32; +pub const BFO_PREFER_IEPROCESS: _BROWSERFRAMEOPTIONS = 32768i32; +pub const BFO_QUERY_ALL: _BROWSERFRAMEOPTIONS = -1i32; +pub const BFO_RENAME_FOLDER_OPTIONS_TOINTERNET: _BROWSERFRAMEOPTIONS = 2i32; +pub const BFO_SHOW_NAVIGATION_CANCELLED: _BROWSERFRAMEOPTIONS = 65536i32; +pub const BFO_SUBSTITUE_INTERNET_START_PAGE: _BROWSERFRAMEOPTIONS = 128i32; +pub const BFO_USE_DIALUP_REF: _BROWSERFRAMEOPTIONS = 1024i32; +pub const BFO_USE_IE_LOGOBANDING: _BROWSERFRAMEOPTIONS = 256i32; +pub const BFO_USE_IE_OFFLINE_SUPPORT: _BROWSERFRAMEOPTIONS = 64i32; +pub const BFO_USE_IE_STATUSBAR: _BROWSERFRAMEOPTIONS = 131072i32; +pub const BFO_USE_IE_TOOLBAR: _BROWSERFRAMEOPTIONS = 2048i32; +pub const BHID_AssociationArray: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbea9ef17_82f1_4f60_9284_4f8db75c3be9); +pub const BHID_DataObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb8c0bd9f_ed24_455c_83e6_d5390c4fe8c4); +pub const BHID_EnumAssocHandlers: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb8ab0b9c_c2ec_4f7a_918d_314900e6280a); +pub const BHID_EnumItems: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x94f60519_2850_4924_aa5a_d15e84868039); +pub const BHID_FilePlaceholder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8677dceb_aae0_4005_8d3d_547fa852f825); +pub const BHID_Filter: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x38d08778_f557_4690_9ebf_ba54706ad8f7); +pub const BHID_LinkTargetItem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3981e228_f559_11d3_8e3a_00c04f6837d5); +pub const BHID_PropertyStore: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0384e1a4_1523_439c_a4c8_ab911052f586); +pub const BHID_RandomAccessStream: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf16fc93b_77ae_4cfe_bda7_a866eea6878d); +pub const BHID_SFObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3981e224_f559_11d3_8e3a_00c04f6837d5); +pub const BHID_SFUIObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3981e225_f559_11d3_8e3a_00c04f6837d5); +pub const BHID_SFViewObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3981e226_f559_11d3_8e3a_00c04f6837d5); +pub const BHID_Storage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3981e227_f559_11d3_8e3a_00c04f6837d5); +pub const BHID_StorageEnum: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4621a4e3_f0d6_4773_8a9c_46e77b174840); +pub const BHID_StorageItem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x404e2109_77d2_4699_a5a0_4fdf10db9837); +pub const BHID_Stream: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1cebb3ab_7c10_499a_a417_92ca16c4cb83); +pub const BHID_ThumbnailHandler: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b2e650a_8e20_4f4a_b09e_6597afc72fb0); +pub const BHID_Transfer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd5e346a1_f753_4932_b403_4574800e2498); +pub const BIF_BROWSEFILEJUNCTIONS: u32 = 65536u32; +pub const BIF_BROWSEFORCOMPUTER: u32 = 4096u32; +pub const BIF_BROWSEFORPRINTER: u32 = 8192u32; +pub const BIF_BROWSEINCLUDEFILES: u32 = 16384u32; +pub const BIF_BROWSEINCLUDEURLS: u32 = 128u32; +pub const BIF_DONTGOBELOWDOMAIN: u32 = 2u32; +pub const BIF_EDITBOX: u32 = 16u32; +pub const BIF_NEWDIALOGSTYLE: u32 = 64u32; +pub const BIF_NONEWFOLDERBUTTON: u32 = 512u32; +pub const BIF_NOTRANSLATETARGETS: u32 = 1024u32; +pub const BIF_PREFER_INTERNET_SHORTCUT: _BROWSERFRAMEOPTIONS = 8i32; +pub const BIF_RETURNFSANCESTORS: u32 = 8u32; +pub const BIF_RETURNONLYFSDIRS: u32 = 1u32; +pub const BIF_SHAREABLE: u32 = 32768u32; +pub const BIF_STATUSTEXT: u32 = 4u32; +pub const BIF_UAHINT: u32 = 256u32; +pub const BIF_VALIDATE: u32 = 32u32; +pub const BIND_INTERRUPTABLE: u32 = 4294967295u32; +pub const BMICON_LARGE: i32 = 0i32; +pub const BMICON_SMALL: i32 = 1i32; +pub const BNE_Button1Clicked: BANNER_NOTIFICATION_EVENT = 4i32; +pub const BNE_Button2Clicked: BANNER_NOTIFICATION_EVENT = 5i32; +pub const BNE_Closed: BANNER_NOTIFICATION_EVENT = 2i32; +pub const BNE_Dismissed: BANNER_NOTIFICATION_EVENT = 3i32; +pub const BNE_Hovered: BANNER_NOTIFICATION_EVENT = 1i32; +pub const BNE_Rendered: BANNER_NOTIFICATION_EVENT = 0i32; +pub const BNS_BEGIN_NAVIGATE: BNSTATE = 1i32; +pub const BNS_NAVIGATE: BNSTATE = 2i32; +pub const BNS_NORMAL: BNSTATE = 0i32; +pub const BSF_CANMAXIMIZE: u32 = 1024u32; +pub const BSF_DELEGATEDNAVIGATION: u32 = 65536u32; +pub const BSF_DONTSHOWNAVCANCELPAGE: u32 = 16384u32; +pub const BSF_FEEDNAVIGATION: u32 = 524288u32; +pub const BSF_FEEDSUBSCRIBED: u32 = 1048576u32; +pub const BSF_HTMLNAVCANCELED: u32 = 8192u32; +pub const BSF_MERGEDMENUS: u32 = 262144u32; +pub const BSF_NAVNOHISTORY: u32 = 4096u32; +pub const BSF_NOLOCALFILEWARNING: u32 = 16u32; +pub const BSF_REGISTERASDROPTARGET: u32 = 1u32; +pub const BSF_RESIZABLE: u32 = 512u32; +pub const BSF_SETNAVIGATABLECODEPAGE: u32 = 32768u32; +pub const BSF_THEATERMODE: u32 = 2u32; +pub const BSF_TOPBROWSER: u32 = 2048u32; +pub const BSF_TRUSTEDFORACTIVEX: u32 = 131072u32; +pub const BSF_UISETBYAUTOMATION: u32 = 256u32; +pub const BSID_BANDADDED: BANDSITECID = 0i32; +pub const BSID_BANDREMOVED: BANDSITECID = 1i32; +pub const BSIM_STATE: u32 = 1u32; +pub const BSIM_STYLE: u32 = 2u32; +pub const BSIS_ALWAYSGRIPPER: u32 = 2u32; +pub const BSIS_AUTOGRIPPER: u32 = 0u32; +pub const BSIS_FIXEDORDER: u32 = 1024u32; +pub const BSIS_LEFTALIGN: u32 = 4u32; +pub const BSIS_LOCKED: u32 = 256u32; +pub const BSIS_NOCAPTION: u32 = 64u32; +pub const BSIS_NOCONTEXTMENU: u32 = 16u32; +pub const BSIS_NODROPTARGET: u32 = 32u32; +pub const BSIS_NOGRIPPER: u32 = 1u32; +pub const BSIS_PREFERNOLINEBREAK: u32 = 128u32; +pub const BSIS_PRESERVEORDERDURINGLAYOUT: u32 = 512u32; +pub const BSIS_SINGLECLICK: u32 = 8u32; +pub const BSSF_NOTITLE: u32 = 2u32; +pub const BSSF_UNDELETEABLE: u32 = 4096u32; +pub const BSSF_VISIBLE: u32 = 1u32; +pub const BUFFLEN: u32 = 255u32; +pub const CABINETSTATE_VERSION: u32 = 2u32; +pub const CAMERAROLL_E_NO_DOWNSAMPLING_REQUIRED: ::windows_sys::core::HRESULT = -2144927456i32; +pub const CATID_BrowsableShellExt: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00021490_0000_0000_c000_000000000046); +pub const CATID_BrowseInPlace: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00021491_0000_0000_c000_000000000046); +pub const CATID_CommBand: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00021494_0000_0000_c000_000000000046); +pub const CATID_DeskBand: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00021492_0000_0000_c000_000000000046); +pub const CATID_FilePlaceholderMergeHandler: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3e9c9a51_d4aa_4870_b47c_7424b491f1cc); +pub const CATID_InfoBand: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00021493_0000_0000_c000_000000000046); +pub const CATID_LocationFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x965c4d51_8b76_4e57_80b7_564d2ea4b55e); +pub const CATID_LocationProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1b3ca474_2614_414b_b813_1aceca3e3dd8); +pub const CATID_SearchableApplication: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x366c292a_d9b3_4dbf_bb70_e62ec3d0bbbf); +pub const CATINFO_COLLAPSED: CATEGORYINFO_FLAGS = 1i32; +pub const CATINFO_EXPANDED: CATEGORYINFO_FLAGS = 4i32; +pub const CATINFO_HIDDEN: CATEGORYINFO_FLAGS = 2i32; +pub const CATINFO_NOHEADER: CATEGORYINFO_FLAGS = 8i32; +pub const CATINFO_NOHEADERCOUNT: CATEGORYINFO_FLAGS = 32i32; +pub const CATINFO_NORMAL: CATEGORYINFO_FLAGS = 0i32; +pub const CATINFO_NOTCOLLAPSIBLE: CATEGORYINFO_FLAGS = 16i32; +pub const CATINFO_SEPARATE_IMAGES: CATEGORYINFO_FLAGS = 128i32; +pub const CATINFO_SHOWEMPTY: CATEGORYINFO_FLAGS = 256i32; +pub const CATINFO_SUBSETTED: CATEGORYINFO_FLAGS = 64i32; +pub const CATSORT_DEFAULT: CATSORT_FLAGS = 0i32; +pub const CATSORT_NAME: CATSORT_FLAGS = 1i32; +pub const CDB2GVF_ADDSHIELD: u32 = 64u32; +pub const CDB2GVF_ALLOWPREVIEWPANE: u32 = 4u32; +pub const CDB2GVF_ISFILESAVE: u32 = 2u32; +pub const CDB2GVF_ISFOLDERPICKER: u32 = 32u32; +pub const CDB2GVF_NOINCLUDEITEM: u32 = 16u32; +pub const CDB2GVF_NOSELECTVERB: u32 = 8u32; +pub const CDB2GVF_SHOWALLFILES: u32 = 1u32; +pub const CDB2N_CONTEXTMENU_DONE: u32 = 1u32; +pub const CDB2N_CONTEXTMENU_START: u32 = 2u32; +pub const CDBE_RET_DEFAULT: CDBURNINGEXTENSIONRET = 0i32; +pub const CDBE_RET_DONTRUNOTHEREXTS: CDBURNINGEXTENSIONRET = 1i32; +pub const CDBE_RET_STOPWIZARD: CDBURNINGEXTENSIONRET = 2i32; +pub const CDBE_TYPE_ALL: _CDBE_ACTIONS = -1i32; +pub const CDBE_TYPE_DATA: _CDBE_ACTIONS = 2i32; +pub const CDBE_TYPE_MUSIC: _CDBE_ACTIONS = 1i32; +pub const CDBOSC_KILLFOCUS: u32 = 1u32; +pub const CDBOSC_RENAME: u32 = 3u32; +pub const CDBOSC_SELCHANGE: u32 = 2u32; +pub const CDBOSC_SETFOCUS: u32 = 0u32; +pub const CDBOSC_STATECHANGE: u32 = 4u32; +pub const CDBurn: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfbeb8a05_beee_4442_804e_409d6c4515e9); +pub const CDCS_ENABLED: CDCONTROLSTATEF = 1i32; +pub const CDCS_ENABLEDVISIBLE: CDCONTROLSTATEF = 3i32; +pub const CDCS_INACTIVE: CDCONTROLSTATEF = 0i32; +pub const CDCS_VISIBLE: CDCONTROLSTATEF = 2i32; +pub const CFSTR_AUTOPLAY_SHELLIDLISTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Autoplay Enumerated IDList Array"); +pub const CFSTR_DROPDESCRIPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DropDescription"); +pub const CFSTR_FILECONTENTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileContents"); +pub const CFSTR_FILEDESCRIPTOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileGroupDescriptorW"); +pub const CFSTR_FILEDESCRIPTORA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileGroupDescriptor"); +pub const CFSTR_FILEDESCRIPTORW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileGroupDescriptorW"); +pub const CFSTR_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileNameW"); +pub const CFSTR_FILENAMEA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileName"); +pub const CFSTR_FILENAMEMAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileNameMapW"); +pub const CFSTR_FILENAMEMAPA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileNameMap"); +pub const CFSTR_FILENAMEMAPW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileNameMapW"); +pub const CFSTR_FILENAMEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FileNameW"); +pub const CFSTR_FILE_ATTRIBUTES_ARRAY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("File Attributes Array"); +pub const CFSTR_INDRAGLOOP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InShellDragLoop"); +pub const CFSTR_INETURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UniformResourceLocatorW"); +pub const CFSTR_INETURLA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UniformResourceLocator"); +pub const CFSTR_INETURLW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UniformResourceLocatorW"); +pub const CFSTR_INVOKECOMMAND_DROPPARAM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InvokeCommand DropParam"); +pub const CFSTR_LOGICALPERFORMEDDROPEFFECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Logical Performed DropEffect"); +pub const CFSTR_MOUNTEDVOLUME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MountedVolume"); +pub const CFSTR_NETRESOURCES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Net Resource"); +pub const CFSTR_PASTESUCCEEDED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Paste Succeeded"); +pub const CFSTR_PERFORMEDDROPEFFECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Performed DropEffect"); +pub const CFSTR_PERSISTEDDATAOBJECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PersistedDataObject"); +pub const CFSTR_PREFERREDDROPEFFECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Preferred DropEffect"); +pub const CFSTR_PRINTERGROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrinterFriendlyName"); +pub const CFSTR_SHELLDROPHANDLER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DropHandlerCLSID"); +pub const CFSTR_SHELLIDLIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Shell IDList Array"); +pub const CFSTR_SHELLIDLISTOFFSET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Shell Object Offsets"); +pub const CFSTR_SHELLURL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UniformResourceLocator"); +pub const CFSTR_TARGETCLSID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TargetCLSID"); +pub const CFSTR_UNTRUSTEDDRAGDROP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UntrustedDragDrop"); +pub const CFSTR_ZONEIDENTIFIER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ZoneIdentifier"); +pub const CGID_DefView: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4af07f10_d231_11d0_b942_00a0c90312e1); +pub const CGID_Explorer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x000214d0_0000_0000_c000_000000000046); +pub const CGID_ExplorerBarDoc: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x000214d3_0000_0000_c000_000000000046); +pub const CGID_MENUDESKBAR: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c9f0a12_959e_11d0_a3a4_00a0c9082636); +pub const CGID_ShellDocView: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x000214d1_0000_0000_c000_000000000046); +pub const CGID_ShellServiceObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x000214d2_0000_0000_c000_000000000046); +pub const CGID_ShortCut: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x93a68750_951a_11d1_946f_000000000000); +pub const CLOSEPROPS_DISCARD: u32 = 1u32; +pub const CLOSEPROPS_NONE: u32 = 0u32; +pub const CLSID_ACLCustomMRU: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6935db93_21e8_4ccc_beb9_9fe3c77a297a); +pub const CLSID_ACLHistory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00bb2764_6a77_11d0_a535_00c04fd7d062); +pub const CLSID_ACLMRU: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6756a641_de71_11d0_831b_00aa005b4383); +pub const CLSID_ACLMulti: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00bb2765_6a77_11d0_a535_00c04fd7d062); +pub const CLSID_ACListISF: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x03c036f1_a186_11d0_824a_00aa005b4383); +pub const CLSID_ActiveDesktop: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x75048700_ef1f_11d0_9888_006097deacf9); +pub const CLSID_AutoComplete: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00bb2763_6a77_11d0_a535_00c04fd7d062); +pub const CLSID_CAnchorBrowsePropertyPage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f3bb_98b5_11cf_bb82_00aa00bdce0b); +pub const CLSID_CDocBrowsePropertyPage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f3b4_98b5_11cf_bb82_00aa00bdce0b); +pub const CLSID_CFSIconOverlayManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x63b51f81_c868_11d0_999c_00c04fd655e1); +pub const CLSID_CImageBrowsePropertyPage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f3b3_98b5_11cf_bb82_00aa00bdce0b); +pub const CLSID_CURLSearchHook: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcfbfae00_17a6_11d0_99cb_00c04fd64497); +pub const CLSID_CUrlHistory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3c374a40_bae4_11cf_bf7d_00aa006946ee); +pub const CLSID_ControlPanel: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x21ec2020_3aea_1069_a2dd_08002b30309d); +pub const CLSID_DarwinAppPublisher: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcfccc7a0_a282_11d1_9082_006008059382); +pub const CLSID_DocHostUIHandler: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7057e952_bd1b_11d1_8919_00c04fc2c836); +pub const CLSID_DragDropHelper: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4657278a_411b_11d2_839a_00c04fd918d0); +pub const CLSID_FileTypes: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb091e540_83e3_11cf_a713_0020afd79762); +pub const CLSID_FolderItemsMultiLevel: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53c74826_ab99_4d33_aca4_3117f51d3788); +pub const CLSID_FolderShortcut: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0afaced1_e828_11d1_9187_b532f1e9575d); +pub const CLSID_HWShellExecute: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xffb8655f_81b9_4fce_b89c_9a6ba76d13e7); +pub const CLSID_ISFBand: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd82be2b0_5764_11d0_a96e_00c04fd705a2); +pub const CLSID_Internet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x871c5380_42a0_1069_a2ea_08002b30309d); +pub const CLSID_InternetButtons: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1e796980_9cc5_11d1_a83f_00c04fc99d61); +pub const CLSID_InternetShortcut: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfbf23b40_e3f0_101b_8488_00aa003e56f8); +pub const CLSID_LinkColumnProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x24f14f02_7b1c_11d1_838f_0000f80461cf); +pub const CLSID_MSOButtons: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x178f34b8_a282_11d2_86c5_00c04f8eea99); +pub const CLSID_MenuBand: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5b4dae26_b807_11d0_9815_00c04fd91972); +pub const CLSID_MenuBandSite: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe13ef4e4_d2f2_11d0_9816_00c04fd91972); +pub const CLSID_MenuToolbarBase: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x40b96610_b522_11d1_b3b4_00aa006efde7); +pub const CLSID_MyComputer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x20d04fe0_3aea_1069_a2d8_08002b30309d); +pub const CLSID_MyDocuments: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x450d8fba_ad25_11d0_98a8_0800361b1103); +pub const CLSID_NetworkDomain: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x46e06680_4bf0_11d1_83ee_00a0c90dc849); +pub const CLSID_NetworkServer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc0542a90_4bf0_11d1_83ee_00a0c90dc849); +pub const CLSID_NetworkShare: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x54a754c0_4bf0_11d1_83ee_00a0c90dc849); +pub const CLSID_NewMenu: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd969a300_e7ff_11d0_a93b_00a0c90f2719); +pub const CLSID_Printers: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2227a280_3aea_1069_a2de_08002b30309d); +pub const CLSID_ProgressDialog: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf8383852_fcd3_11d1_a6b9_006097df5bd4); +pub const CLSID_QueryAssociations: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa07034fd_6caa_4954_ac3f_97a27216f98a); +pub const CLSID_QuickLinks: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e5cbf21_d15f_11d0_8301_00aa005b4383); +pub const CLSID_RecycleBin: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x645ff040_5081_101b_9f08_00aa002f954e); +pub const CLSID_ShellFldSetExt: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6d5313c0_8c62_11d1_b2cd_006097df8c11); +pub const CLSID_ShellThumbnailDiskCache: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ebdcf80_a200_11d0_a3a4_00c04fd706ec); +pub const CLSID_ToolbarExtButtons: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2ce4b5d8_a28f_11d2_86c5_00c04f8eea99); +pub const CMDID_INTSHORTCUTCREATE: i32 = 1i32; +pub const CMDSTR_NEWFOLDER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NewFolder"); +pub const CMDSTR_NEWFOLDERA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("NewFolder"); +pub const CMDSTR_NEWFOLDERW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NewFolder"); +pub const CMDSTR_VIEWDETAILS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ViewDetails"); +pub const CMDSTR_VIEWDETAILSA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ViewDetails"); +pub const CMDSTR_VIEWDETAILSW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ViewDetails"); +pub const CMDSTR_VIEWLIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ViewList"); +pub const CMDSTR_VIEWLISTA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ViewList"); +pub const CMDSTR_VIEWLISTW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ViewList"); +pub const CMF_ASYNCVERBSTATE: u32 = 1024u32; +pub const CMF_CANRENAME: u32 = 16u32; +pub const CMF_DEFAULTONLY: u32 = 1u32; +pub const CMF_DISABLEDVERBS: u32 = 512u32; +pub const CMF_DONOTPICKDEFAULT: u32 = 8192u32; +pub const CMF_EXPLORE: u32 = 4u32; +pub const CMF_EXTENDEDVERBS: u32 = 256u32; +pub const CMF_INCLUDESTATIC: u32 = 64u32; +pub const CMF_ITEMMENU: u32 = 128u32; +pub const CMF_NODEFAULT: u32 = 32u32; +pub const CMF_NORMAL: u32 = 0u32; +pub const CMF_NOVERBS: u32 = 8u32; +pub const CMF_OPTIMIZEFORINVOKE: u32 = 2048u32; +pub const CMF_RESERVED: u32 = 4294901760u32; +pub const CMF_SYNCCASCADEMENU: u32 = 4096u32; +pub const CMF_VERBSONLY: u32 = 2u32; +pub const CMIC_MASK_CONTROL_DOWN: u32 = 1073741824u32; +pub const CMIC_MASK_PTINVOKE: u32 = 536870912u32; +pub const CMIC_MASK_SHIFT_DOWN: u32 = 268435456u32; +pub const CM_ENUM_ALL: CM_ENUM_FLAGS = 1i32; +pub const CM_ENUM_VISIBLE: CM_ENUM_FLAGS = 2i32; +pub const CM_MASK_DEFAULTWIDTH: CM_MASK = 2i32; +pub const CM_MASK_IDEALWIDTH: CM_MASK = 4i32; +pub const CM_MASK_NAME: CM_MASK = 8i32; +pub const CM_MASK_STATE: CM_MASK = 16i32; +pub const CM_MASK_WIDTH: CM_MASK = 1i32; +pub const CM_STATE_ALWAYSVISIBLE: CM_STATE = 8i32; +pub const CM_STATE_FIXEDWIDTH: CM_STATE = 2i32; +pub const CM_STATE_NONE: CM_STATE = 0i32; +pub const CM_STATE_NOSORTBYFOLDERNESS: CM_STATE = 4i32; +pub const CM_STATE_VISIBLE: CM_STATE = 1i32; +pub const CM_WIDTH_AUTOSIZE: CM_SET_WIDTH_VALUE = -2i32; +pub const CM_WIDTH_USEDEFAULT: CM_SET_WIDTH_VALUE = -1i32; +pub const COMPONENT_DEFAULT_LEFT: u32 = 65535u32; +pub const COMPONENT_DEFAULT_TOP: u32 = 65535u32; +pub const COMPONENT_TOP: u32 = 1073741823u32; +pub const COMP_ELEM_CHECKED: u32 = 2u32; +pub const COMP_ELEM_CURITEMSTATE: u32 = 16384u32; +pub const COMP_ELEM_DIRTY: u32 = 4u32; +pub const COMP_ELEM_FRIENDLYNAME: u32 = 1024u32; +pub const COMP_ELEM_NOSCROLL: u32 = 8u32; +pub const COMP_ELEM_ORIGINAL_CSI: u32 = 4096u32; +pub const COMP_ELEM_POS_LEFT: u32 = 16u32; +pub const COMP_ELEM_POS_TOP: u32 = 32u32; +pub const COMP_ELEM_POS_ZINDEX: u32 = 256u32; +pub const COMP_ELEM_RESTORED_CSI: u32 = 8192u32; +pub const COMP_ELEM_SIZE_HEIGHT: u32 = 128u32; +pub const COMP_ELEM_SIZE_WIDTH: u32 = 64u32; +pub const COMP_ELEM_SOURCE: u32 = 512u32; +pub const COMP_ELEM_SUBSCRIBEDURL: u32 = 2048u32; +pub const COMP_ELEM_TYPE: u32 = 1u32; +pub const COMP_TYPE_CFHTML: u32 = 4u32; +pub const COMP_TYPE_CONTROL: u32 = 3u32; +pub const COMP_TYPE_HTMLDOC: u32 = 0u32; +pub const COMP_TYPE_MAX: u32 = 4u32; +pub const COMP_TYPE_PICTURE: u32 = 1u32; +pub const COMP_TYPE_WEBSITE: u32 = 2u32; +pub const CONFLICT_RESOLUTION_CLSID_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConflictResolutionCLSID"); +pub const COPYENGINE_E_ACCESSDENIED_READONLY: ::windows_sys::core::HRESULT = -2144927681i32; +pub const COPYENGINE_E_ACCESS_DENIED_DEST: ::windows_sys::core::HRESULT = -2144927710i32; +pub const COPYENGINE_E_ACCESS_DENIED_SRC: ::windows_sys::core::HRESULT = -2144927711i32; +pub const COPYENGINE_E_ALREADY_EXISTS_FOLDER: ::windows_sys::core::HRESULT = -2144927700i32; +pub const COPYENGINE_E_ALREADY_EXISTS_NORMAL: ::windows_sys::core::HRESULT = -2144927703i32; +pub const COPYENGINE_E_ALREADY_EXISTS_READONLY: ::windows_sys::core::HRESULT = -2144927702i32; +pub const COPYENGINE_E_ALREADY_EXISTS_SYSTEM: ::windows_sys::core::HRESULT = -2144927701i32; +pub const COPYENGINE_E_BLOCKED_BY_DLP_POLICY: ::windows_sys::core::HRESULT = -2144927666i32; +pub const COPYENGINE_E_BLOCKED_BY_EDP_FOR_REMOVABLE_DRIVE: ::windows_sys::core::HRESULT = -2144927670i32; +pub const COPYENGINE_E_BLOCKED_BY_EDP_POLICY: ::windows_sys::core::HRESULT = -2144927672i32; +pub const COPYENGINE_E_CANCELLED: ::windows_sys::core::HRESULT = -2144927743i32; +pub const COPYENGINE_E_CANNOT_MOVE_FROM_RECYCLE_BIN: ::windows_sys::core::HRESULT = -2144927677i32; +pub const COPYENGINE_E_CANNOT_MOVE_SHARED_FOLDER: ::windows_sys::core::HRESULT = -2144927676i32; +pub const COPYENGINE_E_CANT_REACH_SOURCE: ::windows_sys::core::HRESULT = -2144927691i32; +pub const COPYENGINE_E_DEST_IS_RO_CD: ::windows_sys::core::HRESULT = -2144927729i32; +pub const COPYENGINE_E_DEST_IS_RO_DVD: ::windows_sys::core::HRESULT = -2144927726i32; +pub const COPYENGINE_E_DEST_IS_RW_CD: ::windows_sys::core::HRESULT = -2144927728i32; +pub const COPYENGINE_E_DEST_IS_RW_DVD: ::windows_sys::core::HRESULT = -2144927725i32; +pub const COPYENGINE_E_DEST_IS_R_CD: ::windows_sys::core::HRESULT = -2144927727i32; +pub const COPYENGINE_E_DEST_IS_R_DVD: ::windows_sys::core::HRESULT = -2144927724i32; +pub const COPYENGINE_E_DEST_SAME_TREE: ::windows_sys::core::HRESULT = -2144927734i32; +pub const COPYENGINE_E_DEST_SUBTREE: ::windows_sys::core::HRESULT = -2144927735i32; +pub const COPYENGINE_E_DIFF_DIR: ::windows_sys::core::HRESULT = -2144927740i32; +pub const COPYENGINE_E_DIR_NOT_EMPTY: ::windows_sys::core::HRESULT = -2144927683i32; +pub const COPYENGINE_E_DISK_FULL: ::windows_sys::core::HRESULT = -2144927694i32; +pub const COPYENGINE_E_DISK_FULL_CLEAN: ::windows_sys::core::HRESULT = -2144927693i32; +pub const COPYENGINE_E_EA_LOSS: ::windows_sys::core::HRESULT = -2144927698i32; +pub const COPYENGINE_E_EA_NOT_SUPPORTED: ::windows_sys::core::HRESULT = -2144927692i32; +pub const COPYENGINE_E_ENCRYPTION_LOSS: ::windows_sys::core::HRESULT = -2144927695i32; +pub const COPYENGINE_E_FAT_MAX_IN_ROOT: ::windows_sys::core::HRESULT = -2144927682i32; +pub const COPYENGINE_E_FILE_IS_FLD_DEST: ::windows_sys::core::HRESULT = -2144927732i32; +pub const COPYENGINE_E_FILE_TOO_LARGE: ::windows_sys::core::HRESULT = -2144927731i32; +pub const COPYENGINE_E_FLD_IS_FILE_DEST: ::windows_sys::core::HRESULT = -2144927733i32; +pub const COPYENGINE_E_INTERNET_ITEM_STORAGE_PROVIDER_ERROR: ::windows_sys::core::HRESULT = -2144927675i32; +pub const COPYENGINE_E_INTERNET_ITEM_STORAGE_PROVIDER_PAUSED: ::windows_sys::core::HRESULT = -2144927674i32; +pub const COPYENGINE_E_INTERNET_ITEM_UNAVAILABLE: ::windows_sys::core::HRESULT = -2144927678i32; +pub const COPYENGINE_E_INVALID_FILES_DEST: ::windows_sys::core::HRESULT = -2144927716i32; +pub const COPYENGINE_E_INVALID_FILES_SRC: ::windows_sys::core::HRESULT = -2144927717i32; +pub const COPYENGINE_E_MANY_SRC_1_DEST: ::windows_sys::core::HRESULT = -2144927739i32; +pub const COPYENGINE_E_NET_DISCONNECT_DEST: ::windows_sys::core::HRESULT = -2144927706i32; +pub const COPYENGINE_E_NET_DISCONNECT_SRC: ::windows_sys::core::HRESULT = -2144927707i32; +pub const COPYENGINE_E_NEWFILE_NAME_TOO_LONG: ::windows_sys::core::HRESULT = -2144927685i32; +pub const COPYENGINE_E_NEWFOLDER_NAME_TOO_LONG: ::windows_sys::core::HRESULT = -2144927684i32; +pub const COPYENGINE_E_PATH_NOT_FOUND_DEST: ::windows_sys::core::HRESULT = -2144927708i32; +pub const COPYENGINE_E_PATH_NOT_FOUND_SRC: ::windows_sys::core::HRESULT = -2144927709i32; +pub const COPYENGINE_E_PATH_TOO_DEEP_DEST: ::windows_sys::core::HRESULT = -2144927714i32; +pub const COPYENGINE_E_PATH_TOO_DEEP_SRC: ::windows_sys::core::HRESULT = -2144927715i32; +pub const COPYENGINE_E_PROPERTIES_LOSS: ::windows_sys::core::HRESULT = -2144927696i32; +pub const COPYENGINE_E_PROPERTY_LOSS: ::windows_sys::core::HRESULT = -2144927697i32; +pub const COPYENGINE_E_RECYCLE_BIN_NOT_FOUND: ::windows_sys::core::HRESULT = -2144927686i32; +pub const COPYENGINE_E_RECYCLE_FORCE_NUKE: ::windows_sys::core::HRESULT = -2144927690i32; +pub const COPYENGINE_E_RECYCLE_PATH_TOO_LONG: ::windows_sys::core::HRESULT = -2144927688i32; +pub const COPYENGINE_E_RECYCLE_SIZE_TOO_BIG: ::windows_sys::core::HRESULT = -2144927689i32; +pub const COPYENGINE_E_RECYCLE_UNKNOWN_ERROR: ::windows_sys::core::HRESULT = -2144927691i32; +pub const COPYENGINE_E_REDIRECTED_TO_WEBPAGE: ::windows_sys::core::HRESULT = -2144927680i32; +pub const COPYENGINE_E_REMOVABLE_FULL: ::windows_sys::core::HRESULT = -2144927730i32; +pub const COPYENGINE_E_REQUIRES_EDP_CONSENT: ::windows_sys::core::HRESULT = -2144927673i32; +pub const COPYENGINE_E_REQUIRES_EDP_CONSENT_FOR_REMOVABLE_DRIVE: ::windows_sys::core::HRESULT = -2144927671i32; +pub const COPYENGINE_E_REQUIRES_ELEVATION: ::windows_sys::core::HRESULT = -2144927742i32; +pub const COPYENGINE_E_RMS_BLOCKED_BY_EDP_FOR_REMOVABLE_DRIVE: ::windows_sys::core::HRESULT = -2144927668i32; +pub const COPYENGINE_E_RMS_REQUIRES_EDP_CONSENT_FOR_REMOVABLE_DRIVE: ::windows_sys::core::HRESULT = -2144927669i32; +pub const COPYENGINE_E_ROOT_DIR_DEST: ::windows_sys::core::HRESULT = -2144927712i32; +pub const COPYENGINE_E_ROOT_DIR_SRC: ::windows_sys::core::HRESULT = -2144927713i32; +pub const COPYENGINE_E_SAME_FILE: ::windows_sys::core::HRESULT = -2144927741i32; +pub const COPYENGINE_E_SERVER_BAD_FILE_TYPE: ::windows_sys::core::HRESULT = -2144927679i32; +pub const COPYENGINE_E_SHARING_VIOLATION_DEST: ::windows_sys::core::HRESULT = -2144927704i32; +pub const COPYENGINE_E_SHARING_VIOLATION_SRC: ::windows_sys::core::HRESULT = -2144927705i32; +pub const COPYENGINE_E_SILENT_FAIL_BY_DLP_POLICY: ::windows_sys::core::HRESULT = -2144927665i32; +pub const COPYENGINE_E_SRC_IS_RO_CD: ::windows_sys::core::HRESULT = -2144927723i32; +pub const COPYENGINE_E_SRC_IS_RO_DVD: ::windows_sys::core::HRESULT = -2144927720i32; +pub const COPYENGINE_E_SRC_IS_RW_CD: ::windows_sys::core::HRESULT = -2144927722i32; +pub const COPYENGINE_E_SRC_IS_RW_DVD: ::windows_sys::core::HRESULT = -2144927719i32; +pub const COPYENGINE_E_SRC_IS_R_CD: ::windows_sys::core::HRESULT = -2144927721i32; +pub const COPYENGINE_E_SRC_IS_R_DVD: ::windows_sys::core::HRESULT = -2144927718i32; +pub const COPYENGINE_E_STREAM_LOSS: ::windows_sys::core::HRESULT = -2144927699i32; +pub const COPYENGINE_E_USER_CANCELLED: ::windows_sys::core::HRESULT = -2144927744i32; +pub const COPYENGINE_E_WARNED_BY_DLP_POLICY: ::windows_sys::core::HRESULT = -2144927667i32; +pub const COPYENGINE_S_ALREADY_DONE: ::windows_sys::core::HRESULT = 2555914i32; +pub const COPYENGINE_S_CLOSE_PROGRAM: ::windows_sys::core::HRESULT = 2555917i32; +pub const COPYENGINE_S_COLLISIONRESOLVED: ::windows_sys::core::HRESULT = 2555918i32; +pub const COPYENGINE_S_DONT_PROCESS_CHILDREN: ::windows_sys::core::HRESULT = 2555912i32; +pub const COPYENGINE_S_KEEP_BOTH: ::windows_sys::core::HRESULT = 2555916i32; +pub const COPYENGINE_S_MERGE: ::windows_sys::core::HRESULT = 2555910i32; +pub const COPYENGINE_S_NOT_HANDLED: ::windows_sys::core::HRESULT = 2555907i32; +pub const COPYENGINE_S_PENDING: ::windows_sys::core::HRESULT = 2555915i32; +pub const COPYENGINE_S_PROGRESS_PAUSE: ::windows_sys::core::HRESULT = 2555919i32; +pub const COPYENGINE_S_USER_IGNORED: ::windows_sys::core::HRESULT = 2555909i32; +pub const COPYENGINE_S_USER_RETRY: ::windows_sys::core::HRESULT = 2555908i32; +pub const COPYENGINE_S_YES: ::windows_sys::core::HRESULT = 2555905i32; +pub const CPAO_EMPTY_CONNECTED: CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS = 2i32; +pub const CPAO_EMPTY_LOCAL: CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS = 1i32; +pub const CPAO_NONE: CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS = 0i32; +pub const CPCFO_ENABLE_PASSWORD_REVEAL: CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS = 1i32; +pub const CPCFO_ENABLE_TOUCH_KEYBOARD_AUTO_INVOKE: CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS = 4i32; +pub const CPCFO_IS_EMAIL_ADDRESS: CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS = 2i32; +pub const CPCFO_NONE: CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS = 0i32; +pub const CPCFO_NUMBERS_ONLY: CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS = 8i32; +pub const CPCFO_SHOW_ENGLISH_KEYBOARD: CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS = 16i32; +pub const CPFG_CREDENTIAL_PROVIDER_LABEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x286bbff3_bad4_438f_b007_79b7267c3d48); +pub const CPFG_CREDENTIAL_PROVIDER_LOGO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2d837775_f6cd_464e_a745_482fd0b47493); +pub const CPFG_LOGON_PASSWORD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x60624cfa_a477_47b1_8a8e_3a4a19981827); +pub const CPFG_LOGON_USERNAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xda15bbe8_954d_4fd3_b0f4_1fb5b90b174b); +pub const CPFG_SMARTCARD_PIN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4fe5263b_9181_46c1_b0a4_9dedd4db7dea); +pub const CPFG_SMARTCARD_USERNAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3e1ecf69_568c_4d96_9d59_46444174e2d6); +pub const CPFG_STANDALONE_SUBMIT_BUTTON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0b7b0ad8_cc36_4d59_802b_82f714fa7022); +pub const CPFG_STYLE_LINK_AS_BUTTON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x088fa508_94a6_4430_a4cb_6fc6e3c0b9e2); +pub const CPFIS_DISABLED: CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE = 2i32; +pub const CPFIS_FOCUSED: CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE = 3i32; +pub const CPFIS_NONE: CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE = 0i32; +pub const CPFIS_READONLY: CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE = 1i32; +pub const CPFS_DISPLAY_IN_BOTH: CREDENTIAL_PROVIDER_FIELD_STATE = 3i32; +pub const CPFS_DISPLAY_IN_DESELECTED_TILE: CREDENTIAL_PROVIDER_FIELD_STATE = 2i32; +pub const CPFS_DISPLAY_IN_SELECTED_TILE: CREDENTIAL_PROVIDER_FIELD_STATE = 1i32; +pub const CPFS_HIDDEN: CREDENTIAL_PROVIDER_FIELD_STATE = 0i32; +pub const CPFT_CHECKBOX: CREDENTIAL_PROVIDER_FIELD_TYPE = 7i32; +pub const CPFT_COMBOBOX: CREDENTIAL_PROVIDER_FIELD_TYPE = 8i32; +pub const CPFT_COMMAND_LINK: CREDENTIAL_PROVIDER_FIELD_TYPE = 3i32; +pub const CPFT_EDIT_TEXT: CREDENTIAL_PROVIDER_FIELD_TYPE = 4i32; +pub const CPFT_INVALID: CREDENTIAL_PROVIDER_FIELD_TYPE = 0i32; +pub const CPFT_LARGE_TEXT: CREDENTIAL_PROVIDER_FIELD_TYPE = 1i32; +pub const CPFT_PASSWORD_TEXT: CREDENTIAL_PROVIDER_FIELD_TYPE = 5i32; +pub const CPFT_SMALL_TEXT: CREDENTIAL_PROVIDER_FIELD_TYPE = 2i32; +pub const CPFT_SUBMIT_BUTTON: CREDENTIAL_PROVIDER_FIELD_TYPE = 9i32; +pub const CPFT_TILE_IMAGE: CREDENTIAL_PROVIDER_FIELD_TYPE = 6i32; +pub const CPGSR_NO_CREDENTIAL_FINISHED: CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE = 1i32; +pub const CPGSR_NO_CREDENTIAL_NOT_FINISHED: CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE = 0i32; +pub const CPGSR_RETURN_CREDENTIAL_FINISHED: CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE = 2i32; +pub const CPGSR_RETURN_NO_CREDENTIAL_FINISHED: CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE = 3i32; +pub const CPLPAGE_DISPLAY_BACKGROUND: u32 = 1u32; +pub const CPLPAGE_KEYBOARD_SPEED: u32 = 1u32; +pub const CPLPAGE_MOUSE_BUTTONS: u32 = 1u32; +pub const CPLPAGE_MOUSE_PTRMOTION: u32 = 2u32; +pub const CPLPAGE_MOUSE_WHEEL: u32 = 3u32; +pub const CPL_DBLCLK: u32 = 5u32; +pub const CPL_DYNAMIC_RES: u32 = 0u32; +pub const CPL_EXIT: u32 = 7u32; +pub const CPL_GETCOUNT: u32 = 2u32; +pub const CPL_INIT: u32 = 1u32; +pub const CPL_INQUIRE: u32 = 3u32; +pub const CPL_NEWINQUIRE: u32 = 8u32; +pub const CPL_SELECT: u32 = 4u32; +pub const CPL_SETUP: u32 = 200u32; +pub const CPL_STARTWPARMS: u32 = 10u32; +pub const CPL_STARTWPARMSA: u32 = 9u32; +pub const CPL_STARTWPARMSW: u32 = 10u32; +pub const CPL_STOP: u32 = 6u32; +pub const CPSI_ERROR: CREDENTIAL_PROVIDER_STATUS_ICON = 1i32; +pub const CPSI_NONE: CREDENTIAL_PROVIDER_STATUS_ICON = 0i32; +pub const CPSI_SUCCESS: CREDENTIAL_PROVIDER_STATUS_ICON = 3i32; +pub const CPSI_WARNING: CREDENTIAL_PROVIDER_STATUS_ICON = 2i32; +pub const CPUS_CHANGE_PASSWORD: CREDENTIAL_PROVIDER_USAGE_SCENARIO = 3i32; +pub const CPUS_CREDUI: CREDENTIAL_PROVIDER_USAGE_SCENARIO = 4i32; +pub const CPUS_INVALID: CREDENTIAL_PROVIDER_USAGE_SCENARIO = 0i32; +pub const CPUS_LOGON: CREDENTIAL_PROVIDER_USAGE_SCENARIO = 1i32; +pub const CPUS_PLAP: CREDENTIAL_PROVIDER_USAGE_SCENARIO = 5i32; +pub const CPUS_UNLOCK_WORKSTATION: CREDENTIAL_PROVIDER_USAGE_SCENARIO = 2i32; +pub const CPVIEW_ALLITEMS: CPVIEW = 0i32; +pub const CPVIEW_CATEGORY: CPVIEW = 1i32; +pub const CPVIEW_CLASSIC: CPVIEW = 0i32; +pub const CPVIEW_HOME: CPVIEW = 1i32; +pub const CREDENTIAL_PROVIDER_NO_DEFAULT: u32 = 4294967295u32; +pub const CSC_NAVIGATEBACK: CommandStateChangeConstants = 2i32; +pub const CSC_NAVIGATEFORWARD: CommandStateChangeConstants = 1i32; +pub const CSC_UPDATECOMMANDS: CommandStateChangeConstants = -1i32; +pub const CSIDL_ADMINTOOLS: u32 = 48u32; +pub const CSIDL_ALTSTARTUP: u32 = 29u32; +pub const CSIDL_APPDATA: u32 = 26u32; +pub const CSIDL_BITBUCKET: u32 = 10u32; +pub const CSIDL_CDBURN_AREA: u32 = 59u32; +pub const CSIDL_COMMON_ADMINTOOLS: u32 = 47u32; +pub const CSIDL_COMMON_ALTSTARTUP: u32 = 30u32; +pub const CSIDL_COMMON_APPDATA: u32 = 35u32; +pub const CSIDL_COMMON_DESKTOPDIRECTORY: u32 = 25u32; +pub const CSIDL_COMMON_DOCUMENTS: u32 = 46u32; +pub const CSIDL_COMMON_FAVORITES: u32 = 31u32; +pub const CSIDL_COMMON_MUSIC: u32 = 53u32; +pub const CSIDL_COMMON_OEM_LINKS: u32 = 58u32; +pub const CSIDL_COMMON_PICTURES: u32 = 54u32; +pub const CSIDL_COMMON_PROGRAMS: u32 = 23u32; +pub const CSIDL_COMMON_STARTMENU: u32 = 22u32; +pub const CSIDL_COMMON_STARTUP: u32 = 24u32; +pub const CSIDL_COMMON_TEMPLATES: u32 = 45u32; +pub const CSIDL_COMMON_VIDEO: u32 = 55u32; +pub const CSIDL_COMPUTERSNEARME: u32 = 61u32; +pub const CSIDL_CONNECTIONS: u32 = 49u32; +pub const CSIDL_CONTROLS: u32 = 3u32; +pub const CSIDL_COOKIES: u32 = 33u32; +pub const CSIDL_DESKTOP: u32 = 0u32; +pub const CSIDL_DESKTOPDIRECTORY: u32 = 16u32; +pub const CSIDL_DRIVES: u32 = 17u32; +pub const CSIDL_FAVORITES: u32 = 6u32; +pub const CSIDL_FLAG_CREATE: u32 = 32768u32; +pub const CSIDL_FLAG_DONT_UNEXPAND: u32 = 8192u32; +pub const CSIDL_FLAG_DONT_VERIFY: u32 = 16384u32; +pub const CSIDL_FLAG_MASK: u32 = 65280u32; +pub const CSIDL_FLAG_NO_ALIAS: u32 = 4096u32; +pub const CSIDL_FLAG_PER_USER_INIT: u32 = 2048u32; +pub const CSIDL_FLAG_PFTI_TRACKTARGET: u32 = 16384u32; +pub const CSIDL_FONTS: u32 = 20u32; +pub const CSIDL_HISTORY: u32 = 34u32; +pub const CSIDL_INTERNET: u32 = 1u32; +pub const CSIDL_INTERNET_CACHE: u32 = 32u32; +pub const CSIDL_LOCAL_APPDATA: u32 = 28u32; +pub const CSIDL_MYDOCUMENTS: u32 = 5u32; +pub const CSIDL_MYMUSIC: u32 = 13u32; +pub const CSIDL_MYPICTURES: u32 = 39u32; +pub const CSIDL_MYVIDEO: u32 = 14u32; +pub const CSIDL_NETHOOD: u32 = 19u32; +pub const CSIDL_NETWORK: u32 = 18u32; +pub const CSIDL_PERSONAL: u32 = 5u32; +pub const CSIDL_PRINTERS: u32 = 4u32; +pub const CSIDL_PRINTHOOD: u32 = 27u32; +pub const CSIDL_PROFILE: u32 = 40u32; +pub const CSIDL_PROGRAMS: u32 = 2u32; +pub const CSIDL_PROGRAM_FILES: u32 = 38u32; +pub const CSIDL_PROGRAM_FILESX86: u32 = 42u32; +pub const CSIDL_PROGRAM_FILES_COMMON: u32 = 43u32; +pub const CSIDL_PROGRAM_FILES_COMMONX86: u32 = 44u32; +pub const CSIDL_RECENT: u32 = 8u32; +pub const CSIDL_RESOURCES: u32 = 56u32; +pub const CSIDL_RESOURCES_LOCALIZED: u32 = 57u32; +pub const CSIDL_SENDTO: u32 = 9u32; +pub const CSIDL_STARTMENU: u32 = 11u32; +pub const CSIDL_STARTUP: u32 = 7u32; +pub const CSIDL_SYSTEM: u32 = 37u32; +pub const CSIDL_SYSTEMX86: u32 = 41u32; +pub const CSIDL_TEMPLATES: u32 = 21u32; +pub const CSIDL_WINDOWS: u32 = 36u32; +pub const CScriptErrorList: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xefd01300_160f_11d2_bb2e_00805ff7efca); +pub const CTF_COINIT: i32 = 8i32; +pub const CTF_COINIT_MTA: i32 = 4096i32; +pub const CTF_COINIT_STA: i32 = 8i32; +pub const CTF_FREELIBANDEXIT: i32 = 16i32; +pub const CTF_INHERITWOW64: i32 = 256i32; +pub const CTF_INSIST: i32 = 1i32; +pub const CTF_KEYBOARD_LOCALE: i32 = 1024i32; +pub const CTF_NOADDREFLIB: i32 = 8192i32; +pub const CTF_OLEINITIALIZE: i32 = 2048i32; +pub const CTF_PROCESS_REF: i32 = 4i32; +pub const CTF_REF_COUNTED: i32 = 32i32; +pub const CTF_THREAD_REF: i32 = 2i32; +pub const CTF_UNUSED: i32 = 128i32; +pub const CTF_WAIT_ALLOWCOM: i32 = 64i32; +pub const CTF_WAIT_NO_REENTRANCY: i32 = 512i32; +pub const ConflictFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x289978ac_a101_4341_a817_21eba7fd046d); +pub const DBCID_CLSIDOFBAR: i32 = 2i32; +pub const DBCID_EMPTY: i32 = 0i32; +pub const DBCID_GETBAR: i32 = 4i32; +pub const DBCID_ONDRAG: i32 = 1i32; +pub const DBCID_RESIZE: i32 = 3i32; +pub const DBCID_UPDATESIZE: i32 = 5i32; +pub const DBC_GS_IDEAL: u32 = 0u32; +pub const DBC_GS_SIZEDOWN: u32 = 1u32; +pub const DBC_HIDE: u32 = 0u32; +pub const DBC_SHOW: u32 = 1u32; +pub const DBC_SHOWOBSCURE: u32 = 2u32; +pub const DBID_BANDINFOCHANGED: DESKBANDCID = 0i32; +pub const DBID_DELAYINIT: DESKBANDCID = 4i32; +pub const DBID_FINISHINIT: DESKBANDCID = 5i32; +pub const DBID_MAXIMIZEBAND: DESKBANDCID = 2i32; +pub const DBID_PERMITAUTOHIDE: DESKBANDCID = 7i32; +pub const DBID_PUSHCHEVRON: DESKBANDCID = 3i32; +pub const DBID_SETWINDOWTHEME: DESKBANDCID = 6i32; +pub const DBID_SHOWONLY: DESKBANDCID = 1i32; +pub const DBIF_VIEWMODE_FLOATING: u32 = 2u32; +pub const DBIF_VIEWMODE_NORMAL: u32 = 0u32; +pub const DBIF_VIEWMODE_TRANSPARENT: u32 = 4u32; +pub const DBIF_VIEWMODE_VERTICAL: u32 = 1u32; +pub const DBIMF_ADDTOFRONT: u32 = 512u32; +pub const DBIMF_ALWAYSGRIPPER: u32 = 4096u32; +pub const DBIMF_BKCOLOR: u32 = 64u32; +pub const DBIMF_BREAK: u32 = 256u32; +pub const DBIMF_DEBOSSED: u32 = 32u32; +pub const DBIMF_FIXED: u32 = 1u32; +pub const DBIMF_FIXEDBMP: u32 = 4u32; +pub const DBIMF_NOGRIPPER: u32 = 2048u32; +pub const DBIMF_NOMARGINS: u32 = 8192u32; +pub const DBIMF_NORMAL: u32 = 0u32; +pub const DBIMF_TOPALIGN: u32 = 1024u32; +pub const DBIMF_UNDELETEABLE: u32 = 16u32; +pub const DBIMF_USECHEVRON: u32 = 128u32; +pub const DBIMF_VARIABLEHEIGHT: u32 = 8u32; +pub const DBIM_ACTUAL: u32 = 8u32; +pub const DBIM_BKCOLOR: u32 = 64u32; +pub const DBIM_INTEGRAL: u32 = 4u32; +pub const DBIM_MAXSIZE: u32 = 2u32; +pub const DBIM_MINSIZE: u32 = 1u32; +pub const DBIM_MODEFLAGS: u32 = 32u32; +pub const DBIM_TITLE: u32 = 16u32; +pub const DBPC_SELECTFIRST: u32 = 4294967295u32; +pub const DEFSHAREID_PUBLIC: DEF_SHARE_ID = 2i32; +pub const DEFSHAREID_USERS: DEF_SHARE_ID = 1i32; +pub const DEVICE_IMMERSIVE: DISPLAY_DEVICE_TYPE = 1i32; +pub const DEVICE_PRIMARY: DISPLAY_DEVICE_TYPE = 0i32; +pub const DFMR_DEFAULT: DEFAULT_FOLDER_MENU_RESTRICTIONS = 0i32; +pub const DFMR_NO_ASYNC_VERBS: DEFAULT_FOLDER_MENU_RESTRICTIONS = 1024i32; +pub const DFMR_NO_NATIVECPU_VERBS: DEFAULT_FOLDER_MENU_RESTRICTIONS = 2048i32; +pub const DFMR_NO_NONWOW_VERBS: DEFAULT_FOLDER_MENU_RESTRICTIONS = 4096i32; +pub const DFMR_NO_RESOURCE_VERBS: DEFAULT_FOLDER_MENU_RESTRICTIONS = 32i32; +pub const DFMR_NO_STATIC_VERBS: DEFAULT_FOLDER_MENU_RESTRICTIONS = 8i32; +pub const DFMR_OPTIN_HANDLERS_ONLY: DEFAULT_FOLDER_MENU_RESTRICTIONS = 64i32; +pub const DFMR_RESOURCE_AND_FOLDER_VERBS_ONLY: DEFAULT_FOLDER_MENU_RESTRICTIONS = 128i32; +pub const DFMR_STATIC_VERBS_ONLY: DEFAULT_FOLDER_MENU_RESTRICTIONS = 16i32; +pub const DFMR_USE_SPECIFIED_HANDLERS: DEFAULT_FOLDER_MENU_RESTRICTIONS = 256i32; +pub const DFMR_USE_SPECIFIED_VERBS: DEFAULT_FOLDER_MENU_RESTRICTIONS = 512i32; +pub const DFM_CMD_COPY: DFM_CMD = -3i32; +pub const DFM_CMD_DELETE: DFM_CMD = -1i32; +pub const DFM_CMD_LINK: DFM_CMD = -4i32; +pub const DFM_CMD_MODALPROP: DFM_CMD = -12i32; +pub const DFM_CMD_MOVE: DFM_CMD = -2i32; +pub const DFM_CMD_NEWFOLDER: DFM_CMD = -6i32; +pub const DFM_CMD_PASTE: DFM_CMD = -7i32; +pub const DFM_CMD_PASTELINK: DFM_CMD = -10i32; +pub const DFM_CMD_PASTESPECIAL: DFM_CMD = -11i32; +pub const DFM_CMD_PROPERTIES: DFM_CMD = -5i32; +pub const DFM_CMD_RENAME: DFM_CMD = -13i32; +pub const DFM_CMD_VIEWDETAILS: DFM_CMD = -9i32; +pub const DFM_CMD_VIEWLIST: DFM_CMD = -8i32; +pub const DFM_GETDEFSTATICID: DFM_MESSAGE_ID = 14i32; +pub const DFM_GETHELPTEXT: DFM_MESSAGE_ID = 5i32; +pub const DFM_GETHELPTEXTW: DFM_MESSAGE_ID = 11i32; +pub const DFM_GETVERBA: DFM_MESSAGE_ID = 16i32; +pub const DFM_GETVERBW: DFM_MESSAGE_ID = 15i32; +pub const DFM_INVOKECOMMAND: DFM_MESSAGE_ID = 2i32; +pub const DFM_INVOKECOMMANDEX: DFM_MESSAGE_ID = 12i32; +pub const DFM_MAPCOMMANDNAME: DFM_MESSAGE_ID = 13i32; +pub const DFM_MERGECONTEXTMENU: DFM_MESSAGE_ID = 1i32; +pub const DFM_MERGECONTEXTMENU_BOTTOM: DFM_MESSAGE_ID = 17i32; +pub const DFM_MERGECONTEXTMENU_TOP: DFM_MESSAGE_ID = 10i32; +pub const DFM_MODIFYQCMFLAGS: DFM_MESSAGE_ID = 18i32; +pub const DFM_VALIDATECMD: DFM_MESSAGE_ID = 9i32; +pub const DFM_WM_DRAWITEM: DFM_MESSAGE_ID = 7i32; +pub const DFM_WM_INITMENUPOPUP: DFM_MESSAGE_ID = 8i32; +pub const DFM_WM_MEASUREITEM: DFM_MESSAGE_ID = 6i32; +pub const DISPID_BEGINDRAG: u32 = 204u32; +pub const DISPID_CHECKSTATECHANGED: u32 = 209u32; +pub const DISPID_COLUMNSCHANGED: u32 = 212u32; +pub const DISPID_CONTENTSCHANGED: u32 = 207u32; +pub const DISPID_CTRLMOUSEWHEEL: u32 = 213u32; +pub const DISPID_DEFAULTVERBINVOKED: u32 = 203u32; +pub const DISPID_ENTERPRESSED: u32 = 200u32; +pub const DISPID_ENTERPRISEIDCHANGED: u32 = 224u32; +pub const DISPID_EXPLORERWINDOWREADY: u32 = 221u32; +pub const DISPID_FILELISTENUMDONE: u32 = 201u32; +pub const DISPID_FILTERINVOKED: u32 = 218u32; +pub const DISPID_FOCUSCHANGED: u32 = 208u32; +pub const DISPID_FOLDERCHANGED: u32 = 217u32; +pub const DISPID_IADCCTL_DEFAULTCAT: u32 = 262u32; +pub const DISPID_IADCCTL_DIRTY: u32 = 256u32; +pub const DISPID_IADCCTL_FORCEX86: u32 = 259u32; +pub const DISPID_IADCCTL_ONDOMAIN: u32 = 261u32; +pub const DISPID_IADCCTL_PUBCAT: u32 = 257u32; +pub const DISPID_IADCCTL_SHOWPOSTSETUP: u32 = 260u32; +pub const DISPID_IADCCTL_SORT: u32 = 258u32; +pub const DISPID_ICONSIZECHANGED: u32 = 215u32; +pub const DISPID_INITIALENUMERATIONDONE: u32 = 223u32; +pub const DISPID_NOITEMSTATE_CHANGED: u32 = 206u32; +pub const DISPID_ORDERCHANGED: u32 = 210u32; +pub const DISPID_SEARCHCOMMAND_ABORT: u32 = 3u32; +pub const DISPID_SEARCHCOMMAND_COMPLETE: u32 = 2u32; +pub const DISPID_SEARCHCOMMAND_ERROR: u32 = 6u32; +pub const DISPID_SEARCHCOMMAND_PROGRESSTEXT: u32 = 5u32; +pub const DISPID_SEARCHCOMMAND_RESTORE: u32 = 7u32; +pub const DISPID_SEARCHCOMMAND_START: u32 = 1u32; +pub const DISPID_SEARCHCOMMAND_UPDATE: u32 = 4u32; +pub const DISPID_SELECTEDITEMCHANGED: u32 = 220u32; +pub const DISPID_SELECTIONCHANGED: u32 = 200u32; +pub const DISPID_SORTDONE: u32 = 214u32; +pub const DISPID_UPDATEIMAGE: u32 = 222u32; +pub const DISPID_VERBINVOKED: u32 = 202u32; +pub const DISPID_VIEWMODECHANGED: u32 = 205u32; +pub const DISPID_VIEWPAINTDONE: u32 = 211u32; +pub const DISPID_WORDWHEELEDITED: u32 = 219u32; +pub const DI_GETDRAGIMAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShellGetDragImage"); +pub const DLG_SCRNSAVECONFIGURE: u32 = 2003u32; +pub const DLLVER_BUILD_MASK: u64 = 4294901760u64; +pub const DLLVER_MAJOR_MASK: u64 = 18446462598732840960u64; +pub const DLLVER_MINOR_MASK: u64 = 281470681743360u64; +pub const DLLVER_PLATFORM_NT: u32 = 2u32; +pub const DLLVER_PLATFORM_WINDOWS: u32 = 1u32; +pub const DLLVER_QFE_MASK: u64 = 65535u64; +pub const DOGIF_DEFAULT: DATAOBJ_GET_ITEM_FLAGS = 0i32; +pub const DOGIF_NO_HDROP: DATAOBJ_GET_ITEM_FLAGS = 2i32; +pub const DOGIF_NO_URL: DATAOBJ_GET_ITEM_FLAGS = 4i32; +pub const DOGIF_ONLY_IF_ONE: DATAOBJ_GET_ITEM_FLAGS = 8i32; +pub const DOGIF_TRAVERSE_LINK: DATAOBJ_GET_ITEM_FLAGS = 1i32; +pub const DROPIMAGE_COPY: DROPIMAGETYPE = 1i32; +pub const DROPIMAGE_INVALID: DROPIMAGETYPE = -1i32; +pub const DROPIMAGE_LABEL: DROPIMAGETYPE = 6i32; +pub const DROPIMAGE_LINK: DROPIMAGETYPE = 4i32; +pub const DROPIMAGE_MOVE: DROPIMAGETYPE = 2i32; +pub const DROPIMAGE_NOIMAGE: DROPIMAGETYPE = 8i32; +pub const DROPIMAGE_NONE: DROPIMAGETYPE = 0i32; +pub const DROPIMAGE_WARNING: DROPIMAGETYPE = 7i32; +pub const DSD_BACKWARD: DESKTOP_SLIDESHOW_DIRECTION = 1i32; +pub const DSD_FORWARD: DESKTOP_SLIDESHOW_DIRECTION = 0i32; +pub const DSFT_DETECT: DEFAULTSAVEFOLDERTYPE = 1i32; +pub const DSFT_PRIVATE: DEFAULTSAVEFOLDERTYPE = 2i32; +pub const DSFT_PUBLIC: DEFAULTSAVEFOLDERTYPE = 3i32; +pub const DSH_ALLOWDROPDESCRIPTIONTEXT: DSH_FLAGS = 1i32; +pub const DSO_SHUFFLEIMAGES: DESKTOP_SLIDESHOW_OPTIONS = 1i32; +pub const DSS_DISABLED_BY_REMOTE_SESSION: DESKTOP_SLIDESHOW_STATE = 4i32; +pub const DSS_ENABLED: DESKTOP_SLIDESHOW_STATE = 1i32; +pub const DSS_SLIDESHOW: DESKTOP_SLIDESHOW_STATE = 2i32; +pub const DVASPECT_COPY: u32 = 3u32; +pub const DVASPECT_LINK: u32 = 4u32; +pub const DVASPECT_SHORTNAME: u32 = 2u32; +pub const DWFAF_AUTOHIDE: u32 = 16u32; +pub const DWFAF_GROUP1: u32 = 2u32; +pub const DWFAF_GROUP2: u32 = 4u32; +pub const DWFAF_HIDDEN: u32 = 1u32; +pub const DWFRF_DELETECONFIGDATA: u32 = 1u32; +pub const DWFRF_NORMAL: u32 = 0u32; +pub const DWPOS_CENTER: DESKTOP_WALLPAPER_POSITION = 0i32; +pub const DWPOS_FILL: DESKTOP_WALLPAPER_POSITION = 4i32; +pub const DWPOS_FIT: DESKTOP_WALLPAPER_POSITION = 3i32; +pub const DWPOS_SPAN: DESKTOP_WALLPAPER_POSITION = 5i32; +pub const DWPOS_STRETCH: DESKTOP_WALLPAPER_POSITION = 2i32; +pub const DWPOS_TILE: DESKTOP_WALLPAPER_POSITION = 1i32; +pub const DefFolderMenu: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc63382be_7933_48d0_9ac8_85fb46be2fdd); +pub const DesktopGadget: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x924ccc1b_6562_4c85_8657_d177925222b6); +pub const DesktopWallpaper: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc2cf3110_460e_4fc1_b9d0_8a1c0c9cc4bd); +pub const DestinationList: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x77f10cf0_3db5_4966_b520_b7c54fd35ed6); +pub const DocPropShellExtension: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x883373c3_bf89_11d1_be35_080036b11a03); +pub const DriveSizeCategorizer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x94357b53_ca29_4b78_83ae_e8fe7409134f); +pub const DriveTypeCategorizer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb0a8f3cf_4333_4bab_8873_1ccb1cada48b); +pub const EBF_NODROPTARGET: EXPLORER_BROWSER_FILL_FLAGS = 512i32; +pub const EBF_NONE: EXPLORER_BROWSER_FILL_FLAGS = 0i32; +pub const EBF_SELECTFROMDATAOBJECT: EXPLORER_BROWSER_FILL_FLAGS = 256i32; +pub const EBO_ALWAYSNAVIGATE: EXPLORER_BROWSER_OPTIONS = 4i32; +pub const EBO_HTMLSHAREPOINTVIEW: EXPLORER_BROWSER_OPTIONS = 32i32; +pub const EBO_NAVIGATEONCE: EXPLORER_BROWSER_OPTIONS = 1i32; +pub const EBO_NOBORDER: EXPLORER_BROWSER_OPTIONS = 64i32; +pub const EBO_NONE: EXPLORER_BROWSER_OPTIONS = 0i32; +pub const EBO_NOPERSISTVIEWSTATE: EXPLORER_BROWSER_OPTIONS = 128i32; +pub const EBO_NOTRAVELLOG: EXPLORER_BROWSER_OPTIONS = 8i32; +pub const EBO_NOWRAPPERWINDOW: EXPLORER_BROWSER_OPTIONS = 16i32; +pub const EBO_SHOWFRAMES: EXPLORER_BROWSER_OPTIONS = 2i32; +pub const ECF_AUTOMENUICONS: _EXPCMDFLAGS = 512i32; +pub const ECF_DEFAULT: _EXPCMDFLAGS = 0i32; +pub const ECF_HASLUASHIELD: _EXPCMDFLAGS = 16i32; +pub const ECF_HASSPLITBUTTON: _EXPCMDFLAGS = 2i32; +pub const ECF_HASSUBCOMMANDS: _EXPCMDFLAGS = 1i32; +pub const ECF_HIDELABEL: _EXPCMDFLAGS = 4i32; +pub const ECF_ISDROPDOWN: _EXPCMDFLAGS = 128i32; +pub const ECF_ISSEPARATOR: _EXPCMDFLAGS = 8i32; +pub const ECF_SEPARATORAFTER: _EXPCMDFLAGS = 64i32; +pub const ECF_SEPARATORBEFORE: _EXPCMDFLAGS = 32i32; +pub const ECF_TOGGLEABLE: _EXPCMDFLAGS = 256i32; +pub const ECHUIM_DESKTOP: EC_HOST_UI_MODE = 0i32; +pub const ECHUIM_IMMERSIVE: EC_HOST_UI_MODE = 1i32; +pub const ECHUIM_SYSTEM_LAUNCHER: EC_HOST_UI_MODE = 2i32; +pub const ECS_CHECKBOX: _EXPCMDSTATE = 4i32; +pub const ECS_CHECKED: _EXPCMDSTATE = 8i32; +pub const ECS_DISABLED: _EXPCMDSTATE = 1i32; +pub const ECS_ENABLED: _EXPCMDSTATE = 0i32; +pub const ECS_HIDDEN: _EXPCMDSTATE = 2i32; +pub const ECS_RADIOCHECK: _EXPCMDSTATE = 16i32; +pub const EGK_KEYBOARD: EDGE_GESTURE_KIND = 1i32; +pub const EGK_MOUSE: EDGE_GESTURE_KIND = 2i32; +pub const EGK_TOUCH: EDGE_GESTURE_KIND = 0i32; +pub const EPS_DEFAULT_OFF: _EXPLORERPANESTATE = 2i32; +pub const EPS_DEFAULT_ON: _EXPLORERPANESTATE = 1i32; +pub const EPS_DONTCARE: _EXPLORERPANESTATE = 0i32; +pub const EPS_FORCE: _EXPLORERPANESTATE = 131072i32; +pub const EPS_INITIALSTATE: _EXPLORERPANESTATE = 65536i32; +pub const EPS_STATEMASK: _EXPLORERPANESTATE = 65535i32; +pub const EP_AdvQueryPane: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb4e9db8b_34ba_4c39_b5cc_16a1bd2c411c); +pub const EP_Commands: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd9745868_ca5f_4a76_91cd_f5a129fbb076); +pub const EP_Commands_Organize: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x72e81700_e3ec_4660_bf24_3c3b7b648806); +pub const EP_Commands_View: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x21f7c32d_eeaa_439b_bb51_37b96fd6a943); +pub const EP_DetailsPane: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43abf98b_89b8_472d_b9ce_e69b8229f019); +pub const EP_NavPane: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb316b22_25f7_42b8_8a09_540d23a43c2f); +pub const EP_PreviewPane: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x893c63d1_45c8_4d17_be19_223be71be365); +pub const EP_QueryPane: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65bcde4f_4f07_4f27_83a7_1afca4df7ddd); +pub const EP_Ribbon: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd27524a8_c9f2_4834_a106_df8889fd4f37); +pub const EP_StatusBar: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65fe56ce_5cfe_4bc4_ad8a_7ae3fe7e8f7c); +pub const EXECUTE_E_LAUNCH_APPLICATION: ::windows_sys::core::HRESULT = -2144927487i32; +pub const EXPPS_FILETYPES: _EXPPS = 1i32; +pub const EXP_DARWIN_ID_SIG: u32 = 2684354566u32; +pub const EXP_PROPERTYSTORAGE_SIG: u32 = 2684354569u32; +pub const EXP_SPECIAL_FOLDER_SIG: u32 = 2684354565u32; +pub const EXP_SZ_ICON_SIG: u32 = 2684354567u32; +pub const EXP_SZ_LINK_SIG: u32 = 2684354561u32; +pub const E_ACTIVATIONDENIED_SHELLERROR: ::windows_sys::core::HRESULT = -2144927439i32; +pub const E_ACTIVATIONDENIED_SHELLNOTREADY: ::windows_sys::core::HRESULT = -2144927436i32; +pub const E_ACTIVATIONDENIED_SHELLRESTART: ::windows_sys::core::HRESULT = -2144927438i32; +pub const E_ACTIVATIONDENIED_UNEXPECTED: ::windows_sys::core::HRESULT = -2144927437i32; +pub const E_ACTIVATIONDENIED_USERCLOSE: ::windows_sys::core::HRESULT = -2144927440i32; +pub const E_FILE_PLACEHOLDER_NOT_INITIALIZED: ::windows_sys::core::HRESULT = -2144927472i32; +pub const E_FILE_PLACEHOLDER_SERVER_TIMED_OUT: ::windows_sys::core::HRESULT = -2144927470i32; +pub const E_FILE_PLACEHOLDER_STORAGEPROVIDER_NOT_FOUND: ::windows_sys::core::HRESULT = -2144927469i32; +pub const E_FILE_PLACEHOLDER_VERSION_MISMATCH: ::windows_sys::core::HRESULT = -2144927471i32; +pub const E_FLAGS: ::windows_sys::core::HRESULT = -2147217408i32; +pub const E_IMAGEFEED_CHANGEDISABLED: ::windows_sys::core::HRESULT = -2144926960i32; +pub const E_NOTVALIDFORANIMATEDIMAGE: ::windows_sys::core::HRESULT = -2147221503i32; +pub const E_PREVIEWHANDLER_CORRUPT: ::windows_sys::core::HRESULT = -2042494972i32; +pub const E_PREVIEWHANDLER_DRM_FAIL: ::windows_sys::core::HRESULT = -2042494975i32; +pub const E_PREVIEWHANDLER_NOAUTH: ::windows_sys::core::HRESULT = -2042494974i32; +pub const E_PREVIEWHANDLER_NOTFOUND: ::windows_sys::core::HRESULT = -2042494973i32; +pub const E_SHELL_EXTENSION_BLOCKED: ::windows_sys::core::HRESULT = -2144926975i32; +pub const E_TILE_NOTIFICATIONS_PLATFORM_FAILURE: ::windows_sys::core::HRESULT = -2144927159i32; +pub const E_USERTILE_CHANGEDISABLED: ::windows_sys::core::HRESULT = -2144927215i32; +pub const E_USERTILE_FILESIZE: ::windows_sys::core::HRESULT = -2144927212i32; +pub const E_USERTILE_LARGEORDYNAMIC: ::windows_sys::core::HRESULT = -2144927214i32; +pub const E_USERTILE_UNSUPPORTEDFILETYPE: ::windows_sys::core::HRESULT = -2144927216i32; +pub const E_USERTILE_VIDEOFRAMESIZE: ::windows_sys::core::HRESULT = -2144927213i32; +pub const EnumerableObjectCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2d3468c1_36a7_43b6_ac24_d3f02fd9607a); +pub const ExecuteFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x11dbb47c_a525_400b_9e80_a54615a090c0); +pub const ExecuteUnknown: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe44e9428_bdbc_4987_a099_40dc8fd255e7); +pub const ExplorerBrowser: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x71f96385_ddd6_48d3_a0c1_ae06e8b055fb); +pub const ExtractIfNotCached: ThumbnailStreamCacheOptions = 0i32; +pub const FCIDM_BROWSERFIRST: u32 = 40960u32; +pub const FCIDM_BROWSERLAST: u32 = 48896u32; +pub const FCIDM_GLOBALFIRST: u32 = 32768u32; +pub const FCIDM_GLOBALLAST: u32 = 40959u32; +pub const FCIDM_MENU_EDIT: u32 = 32832u32; +pub const FCIDM_MENU_EXPLORE: u32 = 33104u32; +pub const FCIDM_MENU_FAVORITES: u32 = 33136u32; +pub const FCIDM_MENU_FILE: u32 = 32768u32; +pub const FCIDM_MENU_FIND: u32 = 33088u32; +pub const FCIDM_MENU_HELP: u32 = 33024u32; +pub const FCIDM_MENU_TOOLS: u32 = 32960u32; +pub const FCIDM_MENU_TOOLS_SEP_GOTO: u32 = 32961u32; +pub const FCIDM_MENU_VIEW: u32 = 32896u32; +pub const FCIDM_MENU_VIEW_SEP_OPTIONS: u32 = 32897u32; +pub const FCIDM_SHVIEWFIRST: u32 = 0u32; +pub const FCIDM_SHVIEWLAST: u32 = 32767u32; +pub const FCIDM_STATUS: u32 = 40961u32; +pub const FCIDM_TOOLBAR: u32 = 40960u32; +pub const FCSM_CLSID: u32 = 8u32; +pub const FCSM_FLAGS: u32 = 64u32; +pub const FCSM_ICONFILE: u32 = 16u32; +pub const FCSM_INFOTIP: u32 = 4u32; +pub const FCSM_LOGO: u32 = 32u32; +pub const FCSM_VIEWID: u32 = 1u32; +pub const FCSM_WEBVIEWTEMPLATE: u32 = 2u32; +pub const FCS_FLAG_DRAGDROP: u32 = 2u32; +pub const FCS_FORCEWRITE: u32 = 2u32; +pub const FCS_READ: u32 = 1u32; +pub const FCT_ADDTOEND: u32 = 4u32; +pub const FCT_CONFIGABLE: u32 = 2u32; +pub const FCT_MERGE: u32 = 1u32; +pub const FCW_INTERNETBAR: u32 = 6u32; +pub const FCW_PROGRESS: u32 = 8u32; +pub const FCW_STATUS: u32 = 1u32; +pub const FCW_TOOLBAR: u32 = 2u32; +pub const FCW_TREE: u32 = 3u32; +pub const FDAP_BOTTOM: FDAP = 0i32; +pub const FDAP_TOP: FDAP = 1i32; +pub const FDEOR_ACCEPT: FDE_OVERWRITE_RESPONSE = 1i32; +pub const FDEOR_DEFAULT: FDE_OVERWRITE_RESPONSE = 0i32; +pub const FDEOR_REFUSE: FDE_OVERWRITE_RESPONSE = 2i32; +pub const FDESVR_ACCEPT: FDE_SHAREVIOLATION_RESPONSE = 1i32; +pub const FDESVR_DEFAULT: FDE_SHAREVIOLATION_RESPONSE = 0i32; +pub const FDESVR_REFUSE: FDE_SHAREVIOLATION_RESPONSE = 2i32; +pub const FDTF_LONGDATE: u32 = 4u32; +pub const FDTF_LONGTIME: u32 = 8u32; +pub const FDTF_LTRDATE: u32 = 256u32; +pub const FDTF_NOAUTOREADINGORDER: u32 = 1024u32; +pub const FDTF_RELATIVE: u32 = 16u32; +pub const FDTF_RTLDATE: u32 = 512u32; +pub const FDTF_SHORTDATE: u32 = 2u32; +pub const FDTF_SHORTTIME: u32 = 1u32; +pub const FD_ACCESSTIME: FD_FLAGS = 16i32; +pub const FD_ATTRIBUTES: FD_FLAGS = 4i32; +pub const FD_CLSID: FD_FLAGS = 1i32; +pub const FD_CREATETIME: FD_FLAGS = 8i32; +pub const FD_FILESIZE: FD_FLAGS = 64i32; +pub const FD_LINKUI: FD_FLAGS = 32768i32; +pub const FD_PROGRESSUI: FD_FLAGS = 16384i32; +pub const FD_SIZEPOINT: FD_FLAGS = 2i32; +pub const FD_UNICODE: FD_FLAGS = -2147483648i32; +pub const FD_WRITESTIME: FD_FLAGS = 32i32; +pub const FEM_NAVIGATION: FOLDER_ENUM_MODE = 1i32; +pub const FEM_VIEWRESULT: FOLDER_ENUM_MODE = 0i32; +pub const FFFP_EXACTMATCH: FFFP_MODE = 0i32; +pub const FFFP_NEARESTPARENTMATCH: FFFP_MODE = 1i32; +pub const FLVM_CONTENT: FOLDERLOGICALVIEWMODE = 5i32; +pub const FLVM_DETAILS: FOLDERLOGICALVIEWMODE = 1i32; +pub const FLVM_FIRST: FOLDERLOGICALVIEWMODE = 1i32; +pub const FLVM_ICONS: FOLDERLOGICALVIEWMODE = 3i32; +pub const FLVM_LAST: FOLDERLOGICALVIEWMODE = 5i32; +pub const FLVM_LIST: FOLDERLOGICALVIEWMODE = 4i32; +pub const FLVM_TILES: FOLDERLOGICALVIEWMODE = 2i32; +pub const FLVM_UNSPECIFIED: FOLDERLOGICALVIEWMODE = -1i32; +pub const FMTID_Briefcase: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x328d8b21_7729_4bfc_954c_902b329d56b0); +pub const FMTID_CustomImageProperties: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7ecd8b0e_c136_4a9b_9411_4ebd6673ccc3); +pub const FMTID_DRM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaeac19e4_89ae_4508_b9b7_bb867abee2ed); +pub const FMTID_Displaced: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b174b33_40ff_11d2_a27e_00c04fc30871); +pub const FMTID_ImageProperties: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x14b81da1_0135_4d31_96d9_6cbfc9671a99); +pub const FMTID_InternetSite: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x000214a1_0000_0000_c000_000000000046); +pub const FMTID_Intshcut: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x000214a0_0000_0000_c000_000000000046); +pub const FMTID_LibraryProperties: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5d76b67f_9b3d_44bb_b6ae_25da4f638a67); +pub const FMTID_MUSIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x56a3372e_ce9c_11d2_9f0e_006097c686f6); +pub const FMTID_Misc: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b174b34_40ff_11d2_a27e_00c04fc30871); +pub const FMTID_Query: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49691c90_7e17_101a_a91c_08002b2ecda9); +pub const FMTID_ShellDetails: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x28636aa6_953d_11d2_b5d6_00c04fd918d0); +pub const FMTID_Storage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb725f130_47ef_101a_a5f1_02608c9eebac); +pub const FMTID_Volume: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b174b35_40ff_11d2_a27e_00c04fc30871); +pub const FMTID_WebView: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2275480_f782_4291_bd94_f13693513aec); +pub const FOF2_MERGEFOLDERSONCOLLISION: FILE_OPERATION_FLAGS2 = 1i32; +pub const FOF2_NONE: FILE_OPERATION_FLAGS2 = 0i32; +pub const FOFX_ADDUNDORECORD: FILEOPERATION_FLAGS = 536870912u32; +pub const FOFX_COPYASDOWNLOAD: FILEOPERATION_FLAGS = 1073741824u32; +pub const FOFX_DONTDISPLAYDESTPATH: FILEOPERATION_FLAGS = 134217728u32; +pub const FOFX_DONTDISPLAYLOCATIONS: FILEOPERATION_FLAGS = 2147483648u32; +pub const FOFX_DONTDISPLAYSOURCEPATH: FILEOPERATION_FLAGS = 67108864u32; +pub const FOFX_EARLYFAILURE: FILEOPERATION_FLAGS = 1048576u32; +pub const FOFX_KEEPNEWERFILE: FILEOPERATION_FLAGS = 4194304u32; +pub const FOFX_MOVEACLSACROSSVOLUMES: FILEOPERATION_FLAGS = 33554432u32; +pub const FOFX_NOCOPYHOOKS: FILEOPERATION_FLAGS = 8388608u32; +pub const FOFX_NOMINIMIZEBOX: FILEOPERATION_FLAGS = 16777216u32; +pub const FOFX_NOSKIPJUNCTIONS: FILEOPERATION_FLAGS = 65536u32; +pub const FOFX_PREFERHARDLINK: FILEOPERATION_FLAGS = 131072u32; +pub const FOFX_PRESERVEFILEEXTENSIONS: FILEOPERATION_FLAGS = 2097152u32; +pub const FOFX_RECYCLEONDELETE: FILEOPERATION_FLAGS = 524288u32; +pub const FOFX_REQUIREELEVATION: FILEOPERATION_FLAGS = 268435456u32; +pub const FOFX_SHOWELEVATIONPROMPT: FILEOPERATION_FLAGS = 262144u32; +pub const FOF_ALLOWUNDO: FILEOPERATION_FLAGS = 64u32; +pub const FOF_CONFIRMMOUSE: FILEOPERATION_FLAGS = 2u32; +pub const FOF_FILESONLY: FILEOPERATION_FLAGS = 128u32; +pub const FOF_MULTIDESTFILES: FILEOPERATION_FLAGS = 1u32; +pub const FOF_NOCONFIRMATION: FILEOPERATION_FLAGS = 16u32; +pub const FOF_NOCONFIRMMKDIR: FILEOPERATION_FLAGS = 512u32; +pub const FOF_NOCOPYSECURITYATTRIBS: FILEOPERATION_FLAGS = 2048u32; +pub const FOF_NOERRORUI: FILEOPERATION_FLAGS = 1024u32; +pub const FOF_NORECURSEREPARSE: FILEOPERATION_FLAGS = 32768u32; +pub const FOF_NORECURSION: FILEOPERATION_FLAGS = 4096u32; +pub const FOF_NO_CONNECTED_ELEMENTS: FILEOPERATION_FLAGS = 8192u32; +pub const FOF_NO_UI: FILEOPERATION_FLAGS = 1556u32; +pub const FOF_RENAMEONCOLLISION: FILEOPERATION_FLAGS = 8u32; +pub const FOF_SILENT: FILEOPERATION_FLAGS = 4u32; +pub const FOF_SIMPLEPROGRESS: FILEOPERATION_FLAGS = 256u32; +pub const FOF_WANTMAPPINGHANDLE: FILEOPERATION_FLAGS = 32u32; +pub const FOF_WANTNUKEWARNING: FILEOPERATION_FLAGS = 16384u32; +pub const FOLDERID_AccountPictures: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x008ca0b1_55b4_4c56_b8a8_4de4b299d3be); +pub const FOLDERID_AddNewPrograms: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xde61d971_5ebc_4f02_a3a9_6c82895e5c04); +pub const FOLDERID_AdminTools: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x724ef170_a42d_4fef_9f26_b60e846fba4f); +pub const FOLDERID_AllAppMods: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7ad67899_66af_43ba_9156_6aad42e6c596); +pub const FOLDERID_AppCaptures: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xedc0fe71_98d8_4f4a_b920_c8dc133cb165); +pub const FOLDERID_AppDataDesktop: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb2c5e279_7add_439f_b28c_c41fe1bbf672); +pub const FOLDERID_AppDataDocuments: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7be16610_1f7f_44ac_bff0_83e15f2ffca1); +pub const FOLDERID_AppDataFavorites: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7cfbefbc_de1f_45aa_b843_a542ac536cc9); +pub const FOLDERID_AppDataProgramData: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x559d40a3_a036_40fa_af61_84cb430a4d34); +pub const FOLDERID_AppUpdates: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa305ce99_f527_492b_8b1a_7e76fa98d6e4); +pub const FOLDERID_ApplicationShortcuts: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa3918781_e5f2_4890_b3d9_a7e54332328c); +pub const FOLDERID_AppsFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1e87508d_89c2_42f0_8a7e_645a0f50ca58); +pub const FOLDERID_CDBurning: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9e52ab10_f80d_49df_acb8_4330f5687855); +pub const FOLDERID_CameraRoll: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xab5fb87b_7ce2_4f83_915d_550846c9537b); +pub const FOLDERID_CameraRollLibrary: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2b20df75_1eda_4039_8097_38798227d5b7); +pub const FOLDERID_ChangeRemovePrograms: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdf7266ac_9274_4867_8d55_3bd661de872d); +pub const FOLDERID_CommonAdminTools: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd0384e7d_bac3_4797_8f14_cba229b392b5); +pub const FOLDERID_CommonOEMLinks: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc1bae2d0_10df_4334_bedd_7aa20b227a9d); +pub const FOLDERID_CommonPrograms: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0139d44e_6afe_49f2_8690_3dafcae6ffb8); +pub const FOLDERID_CommonStartMenu: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa4115719_d62e_491d_aa7c_e74b8be3b067); +pub const FOLDERID_CommonStartMenuPlaces: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa440879f_87a0_4f7d_b700_0207b966194a); +pub const FOLDERID_CommonStartup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x82a5ea35_d9cd_47c5_9629_e15d2f714e6e); +pub const FOLDERID_CommonTemplates: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb94237e7_57ac_4347_9151_b08c6c32d1f7); +pub const FOLDERID_ComputerFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0ac0837c_bbf8_452a_850d_79d08e667ca7); +pub const FOLDERID_ConflictFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4bfefb45_347d_4006_a5be_ac0cb0567192); +pub const FOLDERID_ConnectionsFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f0cd92b_2e97_45d1_88ff_b0d186b8dedd); +pub const FOLDERID_Contacts: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x56784854_c6cb_462b_8169_88e350acb882); +pub const FOLDERID_ControlPanelFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x82a74aeb_aeb4_465c_a014_d097ee346d63); +pub const FOLDERID_Cookies: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2b0f765d_c0e9_4171_908e_08a611b84ff6); +pub const FOLDERID_CurrentAppMods: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3db40b20_2a30_4dbe_917e_771dd21dd099); +pub const FOLDERID_Desktop: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb4bfcc3a_db2c_424c_b029_7fe99a87c641); +pub const FOLDERID_DevelopmentFiles: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdbe8e08e_3053_4bbc_b183_2a7b2b191e59); +pub const FOLDERID_Device: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1c2ac1dc_4358_4b6c_9733_af21156576f0); +pub const FOLDERID_DeviceMetadataStore: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5ce4a5e9_e4eb_479d_b89f_130c02886155); +pub const FOLDERID_Documents: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfdd39ad0_238f_46af_adb4_6c85480369c7); +pub const FOLDERID_DocumentsLibrary: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b0db17d_9cd2_4a93_9733_46cc89022e7c); +pub const FOLDERID_Downloads: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x374de290_123f_4565_9164_39c4925e467b); +pub const FOLDERID_Favorites: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1777f761_68ad_4d8a_87bd_30b759fa33dd); +pub const FOLDERID_Fonts: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfd228cb7_ae11_4ae3_864c_16f3910ab8fe); +pub const FOLDERID_GameTasks: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x054fae61_4dd8_4787_80b6_090220c4b700); +pub const FOLDERID_Games: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcac52c1a_b53d_4edc_92d7_6b2e8ac19434); +pub const FOLDERID_History: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd9dc8a3b_b784_432e_a781_5a1130a75963); +pub const FOLDERID_HomeGroup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x52528a6b_b9e3_4add_b60d_588c2dba842d); +pub const FOLDERID_HomeGroupCurrentUser: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b74b6a3_0dfd_4f11_9e78_5f7800f2e772); +pub const FOLDERID_ImplicitAppShortcuts: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbcb5256f_79f6_4cee_b725_dc34e402fd46); +pub const FOLDERID_InternetCache: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x352481e8_33be_4251_ba85_6007caedcf9d); +pub const FOLDERID_InternetFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4d9f7874_4e0c_4904_967b_40b0d20c3e4b); +pub const FOLDERID_Libraries: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1b3ea5dc_b587_4786_b4ef_bd1dc332aeae); +pub const FOLDERID_Links: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbfb9d5e0_c6a9_404c_b2b2_ae6db6af4968); +pub const FOLDERID_LocalAppData: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf1b32785_6fba_4fcf_9d55_7b8e7f157091); +pub const FOLDERID_LocalAppDataLow: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa520a1a4_1780_4ff6_bd18_167343c5af16); +pub const FOLDERID_LocalDocuments: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf42ee2d3_909f_4907_8871_4c22fc0bf756); +pub const FOLDERID_LocalDownloads: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7d83ee9b_2244_4e70_b1f5_5393042af1e4); +pub const FOLDERID_LocalMusic: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa0c69a99_21c8_4671_8703_7934162fcf1d); +pub const FOLDERID_LocalPictures: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0ddd015d_b06c_45d5_8c4c_f59713854639); +pub const FOLDERID_LocalStorage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb3eb08d3_a1f3_496b_865a_42b536cda0ec); +pub const FOLDERID_LocalVideos: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x35286a68_3c57_41a1_bbb1_0eae73d76c95); +pub const FOLDERID_LocalizedResourcesDir: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2a00375e_224c_49de_b8d1_440df7ef3ddc); +pub const FOLDERID_Music: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4bd8d571_6d19_48d3_be97_422220080e43); +pub const FOLDERID_MusicLibrary: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2112ab0a_c86a_4ffe_a368_0de96e47012e); +pub const FOLDERID_NetHood: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc5abbf53_e17f_4121_8900_86626fc2c973); +pub const FOLDERID_NetworkFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd20beec4_5ca8_4905_ae3b_bf251ea09b53); +pub const FOLDERID_Objects3D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x31c0dd25_9439_4f12_bf41_7ff4eda38722); +pub const FOLDERID_OneDrive: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa52bba46_e9e1_435f_b3d9_28daa648c0f6); +pub const FOLDERID_OriginalImages: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c36c0aa_5812_4b87_bfd0_4cd0dfb19b39); +pub const FOLDERID_PhotoAlbums: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x69d2cf90_fc33_4fb7_9a0c_ebb0f0fcb43c); +pub const FOLDERID_Pictures: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33e28130_4e1e_4676_835a_98395c3bc3bb); +pub const FOLDERID_PicturesLibrary: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa990ae9f_a03b_4e80_94bc_9912d7504104); +pub const FOLDERID_Playlists: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xde92c1c7_837f_4f69_a3bb_86e631204a23); +pub const FOLDERID_PrintHood: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9274bd8d_cfd1_41c3_b35e_b13f55a758f4); +pub const FOLDERID_PrintersFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x76fc4e2d_d6ad_4519_a663_37bd56068185); +pub const FOLDERID_Profile: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5e6c858f_0e22_4760_9afe_ea3317b67173); +pub const FOLDERID_ProgramData: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x62ab5d82_fdc1_4dc3_a9dd_070d1d495d97); +pub const FOLDERID_ProgramFiles: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x905e63b6_c1bf_494e_b29c_65b732d3d21a); +pub const FOLDERID_ProgramFilesCommon: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf7f1ed05_9f6d_47a2_aaae_29d317c6f066); +pub const FOLDERID_ProgramFilesCommonX64: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6365d5a7_0f0d_45e5_87f6_0da56b6a4f7d); +pub const FOLDERID_ProgramFilesCommonX86: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xde974d24_d9c6_4d3e_bf91_f4455120b917); +pub const FOLDERID_ProgramFilesX64: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6d809377_6af0_444b_8957_a3773f02200e); +pub const FOLDERID_ProgramFilesX86: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7c5a40ef_a0fb_4bfc_874a_c0f2e0b9fa8e); +pub const FOLDERID_Programs: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa77f5d77_2e2b_44c3_a6a2_aba601054a51); +pub const FOLDERID_Public: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdfdf76a2_c82a_4d63_906a_5644ac457385); +pub const FOLDERID_PublicDesktop: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc4aa340d_f20f_4863_afef_f87ef2e6ba25); +pub const FOLDERID_PublicDocuments: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xed4824af_dce4_45a8_81e2_fc7965083634); +pub const FOLDERID_PublicDownloads: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d644c9b_1fb8_4f30_9b45_f670235f79c0); +pub const FOLDERID_PublicGameTasks: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdebf2536_e1a8_4c59_b6a2_414586476aea); +pub const FOLDERID_PublicLibraries: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x48daf80b_e6cf_4f4e_b800_0e69d84ee384); +pub const FOLDERID_PublicMusic: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3214fab5_9757_4298_bb61_92a9deaa44ff); +pub const FOLDERID_PublicPictures: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb6ebfb86_6907_413c_9af7_4fc2abf07cc5); +pub const FOLDERID_PublicRingtones: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe555ab60_153b_4d17_9f04_a5fe99fc15ec); +pub const FOLDERID_PublicUserTiles: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0482af6c_08f1_4c34_8c90_e17ec98b1e17); +pub const FOLDERID_PublicVideos: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2400183a_6185_49fb_a2d8_4a392a602ba3); +pub const FOLDERID_QuickLaunch: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x52a4f021_7b75_48a9_9f6b_4b87a210bc8f); +pub const FOLDERID_Recent: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae50c081_ebd2_438a_8655_8a092e34987a); +pub const FOLDERID_RecordedCalls: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2f8b40c2_83ed_48ee_b383_a1f157ec6f9a); +pub const FOLDERID_RecordedTVLibrary: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1a6fdba2_f42d_4358_a798_b74d745926c5); +pub const FOLDERID_RecycleBinFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb7534046_3ecb_4c18_be4e_64cd4cb7d6ac); +pub const FOLDERID_ResourceDir: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8ad10c31_2adb_4296_a8f7_e4701232c972); +pub const FOLDERID_RetailDemo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x12d4c69e_24ad_4923_be19_31321c43a767); +pub const FOLDERID_Ringtones: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc870044b_f49e_4126_a9c3_b52a1ff411e8); +pub const FOLDERID_RoamedTileImages: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaaa8d5a5_f1d6_4259_baa8_78e7ef60835e); +pub const FOLDERID_RoamingAppData: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3eb685db_65f9_4cf6_a03a_e3ef65729f3d); +pub const FOLDERID_RoamingTiles: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00bcfc5a_ed94_4e48_96a1_3f6217f21990); +pub const FOLDERID_SEARCH_CSC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xee32e446_31ca_4aba_814f_a5ebd2fd6d5e); +pub const FOLDERID_SEARCH_MAPI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x98ec0e18_2098_4d44_8644_66979315a281); +pub const FOLDERID_SampleMusic: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb250c668_f57d_4ee1_a63c_290ee7d1aa1f); +pub const FOLDERID_SamplePictures: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc4900540_2379_4c75_844b_64e6faf8716b); +pub const FOLDERID_SamplePlaylists: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x15ca69b3_30ee_49c1_ace1_6b5ec372afb5); +pub const FOLDERID_SampleVideos: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x859ead94_2e85_48ad_a71a_0969cb56a6cd); +pub const FOLDERID_SavedGames: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4c5c32ff_bb9d_43b0_b5b4_2d72e54eaaa4); +pub const FOLDERID_SavedPictures: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3b193882_d3ad_4eab_965a_69829d1fb59f); +pub const FOLDERID_SavedPicturesLibrary: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe25b5812_be88_4bd9_94b0_29233477b6c3); +pub const FOLDERID_SavedSearches: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7d1d3a04_debb_4115_95cf_2f29da2920da); +pub const FOLDERID_Screenshots: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb7bede81_df94_4682_a7d8_57a52620b86f); +pub const FOLDERID_SearchHistory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0d4c3db6_03a3_462f_a0e6_08924c41b5d4); +pub const FOLDERID_SearchHome: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x190337d1_b8ca_4121_a639_6d472d16972a); +pub const FOLDERID_SearchTemplates: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7e636bfe_dfa9_4d5e_b456_d7b39851d8a9); +pub const FOLDERID_SendTo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8983036c_27c0_404b_8f08_102d10dcfd74); +pub const FOLDERID_SidebarDefaultParts: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b396e54_9ec5_4300_be0a_2482ebae1a26); +pub const FOLDERID_SidebarParts: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa75d362e_50fc_4fb7_ac2c_a8beaa314493); +pub const FOLDERID_SkyDrive: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa52bba46_e9e1_435f_b3d9_28daa648c0f6); +pub const FOLDERID_SkyDriveCameraRoll: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x767e6811_49cb_4273_87c2_20f355e1085b); +pub const FOLDERID_SkyDriveDocuments: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x24d89e24_2f19_4534_9dde_6a6671fbb8fe); +pub const FOLDERID_SkyDriveMusic: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc3f2459e_80d6_45dc_bfef_1f769f2be730); +pub const FOLDERID_SkyDrivePictures: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x339719b5_8c47_4894_94c2_d8f77add44a6); +pub const FOLDERID_StartMenu: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x625b53c3_ab48_4ec1_ba1f_a1ef4146fc19); +pub const FOLDERID_StartMenuAllPrograms: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf26305ef_6948_40b9_b255_81453d09c785); +pub const FOLDERID_Startup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb97d20bb_f46a_4c97_ba10_5e3608430854); +pub const FOLDERID_SyncManagerFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43668bf8_c14e_49b2_97c9_747784d784b7); +pub const FOLDERID_SyncResultsFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x289a9a43_be44_4057_a41b_587a76d7e7f9); +pub const FOLDERID_SyncSetupFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0f214138_b1d3_4a90_bba9_27cbc0c5389a); +pub const FOLDERID_System: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ac14e77_02e7_4e5d_b744_2eb1ae5198b7); +pub const FOLDERID_SystemX86: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd65231b0_b2f1_4857_a4ce_a8e7c6ea7d27); +pub const FOLDERID_Templates: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa63293e8_664e_48db_a079_df759e0509f7); +pub const FOLDERID_UserPinned: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9e3995ab_1f9c_4f13_b827_48b24b6c7174); +pub const FOLDERID_UserProfiles: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0762d272_c50a_4bb0_a382_697dcd729b80); +pub const FOLDERID_UserProgramFiles: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5cd7aee2_2219_4a67_b85d_6c9ce15660cb); +pub const FOLDERID_UserProgramFilesCommon: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbcbd3057_ca5c_4622_b42d_bc56db0ae516); +pub const FOLDERID_UsersFiles: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf3ce0f7c_4901_4acc_8648_d5d44b04ef8f); +pub const FOLDERID_UsersLibraries: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa302545d_deff_464b_abe8_61c8648d939b); +pub const FOLDERID_Videos: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x18989b1d_99b5_455b_841c_ab7c74e4ddfc); +pub const FOLDERID_VideosLibrary: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x491e922f_5643_4af4_a7eb_4e7a138d8174); +pub const FOLDERID_Windows: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf38bf404_1d43_42f2_9305_67de0b28fc23); +pub const FOLDERTYPEID_AccountPictures: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdb2a5d8f_06e6_4007_aba6_af877d526ea6); +pub const FOLDERTYPEID_Communications: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x91475fe5_586b_4eba_8d75_d17434b8cdf6); +pub const FOLDERTYPEID_CompressedFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x80213e82_bcfd_4c4f_8817_bb27601267a9); +pub const FOLDERTYPEID_Contacts: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xde2b70ec_9bf7_4a93_bd3d_243f7881d492); +pub const FOLDERTYPEID_ControlPanelCategory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xde4f0660_fa10_4b8f_a494_068b20b22307); +pub const FOLDERTYPEID_ControlPanelClassic: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0c3794f3_b545_43aa_a329_c37430c58d2a); +pub const FOLDERTYPEID_Documents: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7d49d726_3c21_4f05_99aa_fdc2c9474656); +pub const FOLDERTYPEID_Downloads: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x885a186e_a440_4ada_812b_db871b942259); +pub const FOLDERTYPEID_Games: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb689b0d0_76d3_4cbb_87f7_585d0e0ce070); +pub const FOLDERTYPEID_Generic: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5c4f28b5_f869_4e84_8e60_f11db97c5cc7); +pub const FOLDERTYPEID_GenericLibrary: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5f4eab9a_6833_4f61_899d_31cf46979d49); +pub const FOLDERTYPEID_GenericSearchResults: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7fde1a1e_8b31_49a5_93b8_6be14cfa4943); +pub const FOLDERTYPEID_Invalid: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57807898_8c4f_4462_bb63_71042380b109); +pub const FOLDERTYPEID_Music: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x94d6ddcc_4a68_4175_a374_bd584a510b78); +pub const FOLDERTYPEID_NetworkExplorer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25cc242b_9a7c_4f51_80e0_7a2928febe42); +pub const FOLDERTYPEID_OpenSearch: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8faf9629_1980_46ff_8023_9dceab9c3ee3); +pub const FOLDERTYPEID_OtherUsers: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb337fd00_9dd5_4635_a6d4_da33fd102b7a); +pub const FOLDERTYPEID_Pictures: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb3690e58_e961_423b_b687_386ebfd83239); +pub const FOLDERTYPEID_Printers: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c7bbec6_c844_4a0a_91fa_cef6f59cfda1); +pub const FOLDERTYPEID_PublishedItems: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f2f5b96_ff74_41da_afd8_1c78a5f3aea2); +pub const FOLDERTYPEID_RecordedTV: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5557a28f_5da6_4f83_8809_c2c98a11a6fa); +pub const FOLDERTYPEID_RecycleBin: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd6d9e004_cd87_442b_9d57_5e0aeb4f6f72); +pub const FOLDERTYPEID_SavedGames: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd0363307_28cb_4106_9f23_2956e3e5e0e7); +pub const FOLDERTYPEID_SearchConnector: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x982725ee_6f47_479e_b447_812bfa7d2e8f); +pub const FOLDERTYPEID_SearchHome: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x834d8a44_0974_4ed6_866e_f203d80b3810); +pub const FOLDERTYPEID_Searches: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0b0ba2e3_405f_415e_a6ee_cad625207853); +pub const FOLDERTYPEID_SoftwareExplorer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd674391b_52d9_4e07_834e_67c98610f39d); +pub const FOLDERTYPEID_StartMenu: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xef87b4cb_f2ce_4785_8658_4ca6c63e38c6); +pub const FOLDERTYPEID_StorageProviderDocuments: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdd61bd66_70e8_48dd_9655_65c5e1aac2d1); +pub const FOLDERTYPEID_StorageProviderGeneric: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4f01ebc5_2385_41f2_a28e_2c5c91fb56e0); +pub const FOLDERTYPEID_StorageProviderMusic: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x672ecd7e_af04_4399_875c_0290845b6247); +pub const FOLDERTYPEID_StorageProviderPictures: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x71d642a9_f2b1_42cd_ad92_eb9300c7cc0a); +pub const FOLDERTYPEID_StorageProviderVideos: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x51294da1_d7b1_485b_9e9a_17cffe33e187); +pub const FOLDERTYPEID_UserFiles: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcd0fc69b_71e2_46e5_9690_5bcd9f57aab3); +pub const FOLDERTYPEID_UsersLibraries: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc4d98f09_6124_4fe0_9942_826416082da9); +pub const FOLDERTYPEID_Videos: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5fa96407_7e77_483c_ac93_691d05850de8); +pub const FOS_ALLNONSTORAGEITEMS: FILEOPENDIALOGOPTIONS = 128u32; +pub const FOS_ALLOWMULTISELECT: FILEOPENDIALOGOPTIONS = 512u32; +pub const FOS_CREATEPROMPT: FILEOPENDIALOGOPTIONS = 8192u32; +pub const FOS_DEFAULTNOMINIMODE: FILEOPENDIALOGOPTIONS = 536870912u32; +pub const FOS_DONTADDTORECENT: FILEOPENDIALOGOPTIONS = 33554432u32; +pub const FOS_FILEMUSTEXIST: FILEOPENDIALOGOPTIONS = 4096u32; +pub const FOS_FORCEFILESYSTEM: FILEOPENDIALOGOPTIONS = 64u32; +pub const FOS_FORCEPREVIEWPANEON: FILEOPENDIALOGOPTIONS = 1073741824u32; +pub const FOS_FORCESHOWHIDDEN: FILEOPENDIALOGOPTIONS = 268435456u32; +pub const FOS_HIDEMRUPLACES: FILEOPENDIALOGOPTIONS = 131072u32; +pub const FOS_HIDEPINNEDPLACES: FILEOPENDIALOGOPTIONS = 262144u32; +pub const FOS_NOCHANGEDIR: FILEOPENDIALOGOPTIONS = 8u32; +pub const FOS_NODEREFERENCELINKS: FILEOPENDIALOGOPTIONS = 1048576u32; +pub const FOS_NOREADONLYRETURN: FILEOPENDIALOGOPTIONS = 32768u32; +pub const FOS_NOTESTFILECREATE: FILEOPENDIALOGOPTIONS = 65536u32; +pub const FOS_NOVALIDATE: FILEOPENDIALOGOPTIONS = 256u32; +pub const FOS_OKBUTTONNEEDSINTERACTION: FILEOPENDIALOGOPTIONS = 2097152u32; +pub const FOS_OVERWRITEPROMPT: FILEOPENDIALOGOPTIONS = 2u32; +pub const FOS_PATHMUSTEXIST: FILEOPENDIALOGOPTIONS = 2048u32; +pub const FOS_PICKFOLDERS: FILEOPENDIALOGOPTIONS = 32u32; +pub const FOS_SHAREAWARE: FILEOPENDIALOGOPTIONS = 16384u32; +pub const FOS_STRICTFILETYPES: FILEOPENDIALOGOPTIONS = 4u32; +pub const FOS_SUPPORTSTREAMABLEITEMS: FILEOPENDIALOGOPTIONS = 2147483648u32; +pub const FO_COPY: u32 = 2u32; +pub const FO_DELETE: u32 = 3u32; +pub const FO_MOVE: u32 = 1u32; +pub const FO_RENAME: u32 = 4u32; +pub const FP_ABOVE: FLYOUT_PLACEMENT = 1i32; +pub const FP_BELOW: FLYOUT_PLACEMENT = 2i32; +pub const FP_DEFAULT: FLYOUT_PLACEMENT = 0i32; +pub const FP_LEFT: FLYOUT_PLACEMENT = 3i32; +pub const FP_RIGHT: FLYOUT_PLACEMENT = 4i32; +pub const FSCopyHandler: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd197380a_0a79_4dc8_a033_ed882c2fa14b); +pub const FTA_AlwaysUnsafe: FILETYPEATTRIBUTEFLAGS = 131072i32; +pub const FTA_AlwaysUseDirectInvoke: FILETYPEATTRIBUTEFLAGS = 4194304i32; +pub const FTA_Exclude: FILETYPEATTRIBUTEFLAGS = 1i32; +pub const FTA_HasExtension: FILETYPEATTRIBUTEFLAGS = 4i32; +pub const FTA_NoDDE: FILETYPEATTRIBUTEFLAGS = 8192i32; +pub const FTA_NoEdit: FILETYPEATTRIBUTEFLAGS = 8i32; +pub const FTA_NoEditDesc: FILETYPEATTRIBUTEFLAGS = 256i32; +pub const FTA_NoEditDflt: FILETYPEATTRIBUTEFLAGS = 1024i32; +pub const FTA_NoEditIcon: FILETYPEATTRIBUTEFLAGS = 512i32; +pub const FTA_NoEditMIME: FILETYPEATTRIBUTEFLAGS = 32768i32; +pub const FTA_NoEditVerb: FILETYPEATTRIBUTEFLAGS = 64i32; +pub const FTA_NoEditVerbCmd: FILETYPEATTRIBUTEFLAGS = 2048i32; +pub const FTA_NoEditVerbExe: FILETYPEATTRIBUTEFLAGS = 4096i32; +pub const FTA_NoNewVerb: FILETYPEATTRIBUTEFLAGS = 32i32; +pub const FTA_NoRecentDocs: FILETYPEATTRIBUTEFLAGS = 1048576i32; +pub const FTA_NoRemove: FILETYPEATTRIBUTEFLAGS = 16i32; +pub const FTA_NoRemoveVerb: FILETYPEATTRIBUTEFLAGS = 128i32; +pub const FTA_None: FILETYPEATTRIBUTEFLAGS = 0i32; +pub const FTA_OpenIsSafe: FILETYPEATTRIBUTEFLAGS = 65536i32; +pub const FTA_SafeForElevation: FILETYPEATTRIBUTEFLAGS = 2097152i32; +pub const FTA_Show: FILETYPEATTRIBUTEFLAGS = 2i32; +pub const FUT_EDITING: FILE_USAGE_TYPE = 1i32; +pub const FUT_GENERIC: FILE_USAGE_TYPE = 2i32; +pub const FUT_PLAYING: FILE_USAGE_TYPE = 0i32; +pub const FVM_AUTO: FOLDERVIEWMODE = -1i32; +pub const FVM_CONTENT: FOLDERVIEWMODE = 8i32; +pub const FVM_DETAILS: FOLDERVIEWMODE = 4i32; +pub const FVM_FIRST: FOLDERVIEWMODE = 1i32; +pub const FVM_ICON: FOLDERVIEWMODE = 1i32; +pub const FVM_LAST: FOLDERVIEWMODE = 8i32; +pub const FVM_LIST: FOLDERVIEWMODE = 3i32; +pub const FVM_SMALLICON: FOLDERVIEWMODE = 2i32; +pub const FVM_THUMBNAIL: FOLDERVIEWMODE = 5i32; +pub const FVM_THUMBSTRIP: FOLDERVIEWMODE = 7i32; +pub const FVM_TILE: FOLDERVIEWMODE = 6i32; +pub const FVO_CUSTOMORDERING: FOLDERVIEWOPTIONS = 4i32; +pub const FVO_CUSTOMPOSITION: FOLDERVIEWOPTIONS = 2i32; +pub const FVO_DEFAULT: FOLDERVIEWOPTIONS = 0i32; +pub const FVO_NOANIMATIONS: FOLDERVIEWOPTIONS = 16i32; +pub const FVO_NOSCROLLTIPS: FOLDERVIEWOPTIONS = 32i32; +pub const FVO_SUPPORTHYPERLINKS: FOLDERVIEWOPTIONS = 8i32; +pub const FVO_VISTALAYOUT: FOLDERVIEWOPTIONS = 1i32; +pub const FVSIF_CANVIEWIT: u32 = 1073741824u32; +pub const FVSIF_NEWFAILED: u32 = 134217728u32; +pub const FVSIF_NEWFILE: u32 = 2147483648u32; +pub const FVSIF_PINNED: u32 = 2u32; +pub const FVSIF_RECT: u32 = 1u32; +pub const FVST_EMPTYTEXT: FVTEXTTYPE = 0i32; +pub const FWF_ABBREVIATEDNAMES: FOLDERFLAGS = 2i32; +pub const FWF_ALIGNLEFT: FOLDERFLAGS = 2048i32; +pub const FWF_ALLOWRTLREADING: FOLDERFLAGS = -2147483648i32; +pub const FWF_AUTOARRANGE: FOLDERFLAGS = 1i32; +pub const FWF_AUTOCHECKSELECT: FOLDERFLAGS = 134217728i32; +pub const FWF_BESTFITWINDOW: FOLDERFLAGS = 16i32; +pub const FWF_CHECKSELECT: FOLDERFLAGS = 262144i32; +pub const FWF_DESKTOP: FOLDERFLAGS = 32i32; +pub const FWF_EXTENDEDTILES: FOLDERFLAGS = 33554432i32; +pub const FWF_FULLROWSELECT: FOLDERFLAGS = 2097152i32; +pub const FWF_HIDEFILENAMES: FOLDERFLAGS = 131072i32; +pub const FWF_NOBROWSERVIEWSTATE: FOLDERFLAGS = 268435456i32; +pub const FWF_NOCLIENTEDGE: FOLDERFLAGS = 512i32; +pub const FWF_NOCOLUMNHEADER: FOLDERFLAGS = 8388608i32; +pub const FWF_NOENUMREFRESH: FOLDERFLAGS = 524288i32; +pub const FWF_NOFILTERS: FOLDERFLAGS = 4194304i32; +pub const FWF_NOGROUPING: FOLDERFLAGS = 1048576i32; +pub const FWF_NOHEADERINALLVIEWS: FOLDERFLAGS = 16777216i32; +pub const FWF_NOICONS: FOLDERFLAGS = 4096i32; +pub const FWF_NONE: FOLDERFLAGS = 0i32; +pub const FWF_NOSCROLL: FOLDERFLAGS = 1024i32; +pub const FWF_NOSUBFOLDERS: FOLDERFLAGS = 128i32; +pub const FWF_NOVISIBLE: FOLDERFLAGS = 16384i32; +pub const FWF_NOWEBVIEW: FOLDERFLAGS = 65536i32; +pub const FWF_OWNERDATA: FOLDERFLAGS = 8i32; +pub const FWF_SHOWSELALWAYS: FOLDERFLAGS = 8192i32; +pub const FWF_SINGLECLICKACTIVATE: FOLDERFLAGS = 32768i32; +pub const FWF_SINGLESEL: FOLDERFLAGS = 64i32; +pub const FWF_SNAPTOGRID: FOLDERFLAGS = 4i32; +pub const FWF_SUBSETGROUPS: FOLDERFLAGS = 536870912i32; +pub const FWF_TRANSPARENT: FOLDERFLAGS = 256i32; +pub const FWF_TRICHECKSELECT: FOLDERFLAGS = 67108864i32; +pub const FWF_USESEARCHFOLDER: FOLDERFLAGS = 1073741824i32; +pub const FileOpenDialog: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdc1c5a9c_e88a_4dde_a5a1_60f82a20aef7); +pub const FileOperation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3ad05575_8857_4850_9277_11b85bdb8e09); +pub const FileSaveDialog: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc0b4e2f3_ba21_4773_8dba_335ec946eb8b); +pub const FileSearchBand: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc4ee31f3_4768_11d2_be5c_00a0c9a83da1); +pub const FolderViewHost: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x20b1cb23_6968_4eb9_b7d4_a66d00d07cee); +pub const FrameworkInputPane: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd5120aa3_46ba_44c5_822d_ca8092c1fc72); +pub const FreeSpaceCategorizer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb5607793_24ac_44c7_82e2_831726aa6cb7); +pub const GADOF_DIRTY: u32 = 1u32; +pub const GCS_HELPTEXT: u32 = 5u32; +pub const GCS_HELPTEXTA: u32 = 1u32; +pub const GCS_HELPTEXTW: u32 = 5u32; +pub const GCS_UNICODE: u32 = 4u32; +pub const GCS_VALIDATE: u32 = 6u32; +pub const GCS_VALIDATEA: u32 = 2u32; +pub const GCS_VALIDATEW: u32 = 6u32; +pub const GCS_VERB: u32 = 4u32; +pub const GCS_VERBA: u32 = 0u32; +pub const GCS_VERBICONW: u32 = 20u32; +pub const GCS_VERBW: u32 = 4u32; +pub const GCT_INVALID: u32 = 0u32; +pub const GCT_LFNCHAR: u32 = 1u32; +pub const GCT_SEPARATOR: u32 = 8u32; +pub const GCT_SHORTCHAR: u32 = 2u32; +pub const GCT_WILD: u32 = 4u32; +pub const GETPROPS_NONE: u32 = 0u32; +pub const GIL_ASYNC: u32 = 32u32; +pub const GIL_CHECKSHIELD: u32 = 512u32; +pub const GIL_DEFAULTICON: u32 = 64u32; +pub const GIL_DONTCACHE: u32 = 16u32; +pub const GIL_FORCENOSHIELD: u32 = 1024u32; +pub const GIL_FORSHELL: u32 = 2u32; +pub const GIL_FORSHORTCUT: u32 = 128u32; +pub const GIL_NOTFILENAME: u32 = 8u32; +pub const GIL_OPENICON: u32 = 1u32; +pub const GIL_PERCLASS: u32 = 4u32; +pub const GIL_PERINSTANCE: u32 = 2u32; +pub const GIL_SHIELD: u32 = 512u32; +pub const GIL_SIMULATEDOC: u32 = 1u32; +pub const GLOBALCOUNTER_APPLICATION_DESTINATIONS: SHGLOBALCOUNTER = 12i32; +pub const GLOBALCOUNTER_APPROVEDSITES: SHGLOBALCOUNTER = 4i32; +pub const GLOBALCOUNTER_APPSFOLDER_FILETYPEASSOCIATION_COUNTER: SHGLOBALCOUNTER = 55i32; +pub const GLOBALCOUNTER_APP_ITEMS_STATE_STORE_CACHE: SHGLOBALCOUNTER = 53i32; +pub const GLOBALCOUNTER_ASSOCCHANGED: SHGLOBALCOUNTER = 52i32; +pub const GLOBALCOUNTER_BANNERS_DATAMODEL_CACHE_MACHINEWIDE: SHGLOBALCOUNTER = 58i32; +pub const GLOBALCOUNTER_BITBUCKETNUMDELETERS: SHGLOBALCOUNTER = 14i32; +pub const GLOBALCOUNTER_COMMONPLACES_LIST_CACHE: SHGLOBALCOUNTER = 50i32; +pub const GLOBALCOUNTER_FOLDERDEFINITION_CACHE: SHGLOBALCOUNTER = 49i32; +pub const GLOBALCOUNTER_FOLDERSETTINGSCHANGE: SHGLOBALCOUNTER = 2i32; +pub const GLOBALCOUNTER_IEONLY_SESSIONS: SHGLOBALCOUNTER = 11i32; +pub const GLOBALCOUNTER_IESESSIONS: SHGLOBALCOUNTER = 10i32; +pub const GLOBALCOUNTER_INTERNETTOOLBAR_LAYOUT: SHGLOBALCOUNTER = 48i32; +pub const GLOBALCOUNTER_MAXIMUMVALUE: SHGLOBALCOUNTER = 59i32; +pub const GLOBALCOUNTER_OVERLAYMANAGER: SHGLOBALCOUNTER = 8i32; +pub const GLOBALCOUNTER_PRIVATE_PROFILE_CACHE: SHGLOBALCOUNTER = 47i32; +pub const GLOBALCOUNTER_PRIVATE_PROFILE_CACHE_MACHINEWIDE: SHGLOBALCOUNTER = 51i32; +pub const GLOBALCOUNTER_QUERYASSOCIATIONS: SHGLOBALCOUNTER = 9i32; +pub const GLOBALCOUNTER_RATINGS: SHGLOBALCOUNTER = 3i32; +pub const GLOBALCOUNTER_RATINGS_STATECOUNTER: SHGLOBALCOUNTER = 46i32; +pub const GLOBALCOUNTER_RECYCLEBINCORRUPTED: SHGLOBALCOUNTER = 45i32; +pub const GLOBALCOUNTER_RECYCLEBINENUM: SHGLOBALCOUNTER = 44i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_A: SHGLOBALCOUNTER = 16i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_B: SHGLOBALCOUNTER = 17i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_C: SHGLOBALCOUNTER = 18i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_D: SHGLOBALCOUNTER = 19i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_E: SHGLOBALCOUNTER = 20i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_F: SHGLOBALCOUNTER = 21i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_G: SHGLOBALCOUNTER = 22i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_H: SHGLOBALCOUNTER = 23i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_I: SHGLOBALCOUNTER = 24i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_J: SHGLOBALCOUNTER = 25i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_K: SHGLOBALCOUNTER = 26i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_L: SHGLOBALCOUNTER = 27i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_M: SHGLOBALCOUNTER = 28i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_N: SHGLOBALCOUNTER = 29i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_O: SHGLOBALCOUNTER = 30i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_P: SHGLOBALCOUNTER = 31i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Q: SHGLOBALCOUNTER = 32i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_R: SHGLOBALCOUNTER = 33i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_S: SHGLOBALCOUNTER = 34i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_T: SHGLOBALCOUNTER = 35i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_U: SHGLOBALCOUNTER = 36i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_V: SHGLOBALCOUNTER = 37i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_W: SHGLOBALCOUNTER = 38i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_X: SHGLOBALCOUNTER = 39i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Y: SHGLOBALCOUNTER = 40i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Z: SHGLOBALCOUNTER = 41i32; +pub const GLOBALCOUNTER_RECYCLEDIRTYCOUNT_SHARES: SHGLOBALCOUNTER = 15i32; +pub const GLOBALCOUNTER_RESTRICTIONS: SHGLOBALCOUNTER = 5i32; +pub const GLOBALCOUNTER_SEARCHMANAGER: SHGLOBALCOUNTER = 0i32; +pub const GLOBALCOUNTER_SEARCHOPTIONS: SHGLOBALCOUNTER = 1i32; +pub const GLOBALCOUNTER_SETTINGSYNC_ENABLED: SHGLOBALCOUNTER = 54i32; +pub const GLOBALCOUNTER_SHELLSETTINGSCHANGED: SHGLOBALCOUNTER = 6i32; +pub const GLOBALCOUNTER_SYNC_ENGINE_INFORMATION_CACHE_MACHINEWIDE: SHGLOBALCOUNTER = 57i32; +pub const GLOBALCOUNTER_SYSTEMPIDLCHANGE: SHGLOBALCOUNTER = 7i32; +pub const GLOBALCOUNTER_USERINFOCHANGED: SHGLOBALCOUNTER = 56i32; +pub const GPFIDL_ALTNAME: GPFIDL_FLAGS = 1u32; +pub const GPFIDL_DEFAULT: GPFIDL_FLAGS = 0u32; +pub const GPFIDL_UNCPRINTER: GPFIDL_FLAGS = 2u32; +pub const GenericCredentialProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25cbb996_92ed_457e_b28c_4774084bd562); +pub const HELPINFO_MENUITEM: HELP_INFO_TYPE = 2i32; +pub const HELPINFO_WINDOW: HELP_INFO_TYPE = 1i32; +pub const HGSC_DOCUMENTSLIBRARY: HOMEGROUPSHARINGCHOICES = 8i32; +pub const HGSC_MUSICLIBRARY: HOMEGROUPSHARINGCHOICES = 1i32; +pub const HGSC_NONE: HOMEGROUPSHARINGCHOICES = 0i32; +pub const HGSC_PICTURESLIBRARY: HOMEGROUPSHARINGCHOICES = 2i32; +pub const HGSC_PRINTERS: HOMEGROUPSHARINGCHOICES = 16i32; +pub const HGSC_VIDEOSLIBRARY: HOMEGROUPSHARINGCHOICES = 4i32; +pub const HLBWIF_DOCWNDMAXIMIZED: HLBWIF_FLAGS = 8i32; +pub const HLBWIF_FRAMEWNDMAXIMIZED: HLBWIF_FLAGS = 4i32; +pub const HLBWIF_HASDOCWNDINFO: HLBWIF_FLAGS = 2i32; +pub const HLBWIF_HASFRAMEWNDINFO: HLBWIF_FLAGS = 1i32; +pub const HLBWIF_HASWEBTOOLBARINFO: HLBWIF_FLAGS = 16i32; +pub const HLBWIF_WEBTOOLBARHIDDEN: HLBWIF_FLAGS = 32i32; +pub const HLFNAMEF_DEFAULT: HLFNAMEF = 0i32; +pub const HLFNAMEF_TRYCACHE: HLFNAMEF = 1i32; +pub const HLFNAMEF_TRYFULLTARGET: HLFNAMEF = 4i32; +pub const HLFNAMEF_TRYPRETTYTARGET: HLFNAMEF = 2i32; +pub const HLFNAMEF_TRYWIN95SHORTCUT: HLFNAMEF = 8i32; +pub const HLID_CURRENT: HLID_INFO = 4294967293u32; +pub const HLID_INVALID: HLID_INFO = 0u32; +pub const HLID_NEXT: HLID_INFO = 4294967294u32; +pub const HLID_PREVIOUS: HLID_INFO = 4294967295u32; +pub const HLID_STACKBOTTOM: HLID_INFO = 4294967292u32; +pub const HLID_STACKTOP: HLID_INFO = 4294967291u32; +pub const HLINKGETREF_ABSOLUTE: HLINKGETREF = 1i32; +pub const HLINKGETREF_DEFAULT: HLINKGETREF = 0i32; +pub const HLINKGETREF_RELATIVE: HLINKGETREF = 2i32; +pub const HLINKMISC_RELATIVE: HLINKMISC = 1i32; +pub const HLINKSETF_LOCATION: HLINKSETF = 2i32; +pub const HLINKSETF_TARGET: HLINKSETF = 1i32; +pub const HLINKWHICHMK_BASE: HLINKWHICHMK = 2i32; +pub const HLINKWHICHMK_CONTAINER: HLINKWHICHMK = 1i32; +pub const HLINK_E_FIRST: ::windows_sys::core::HRESULT = -2147221248i32; +pub const HLINK_S_DONTHIDE: i32 = 262400i32; +pub const HLINK_S_FIRST: ::windows_sys::core::HRESULT = 262400i32; +pub const HLNF_ALLOW_AUTONAVIGATE: u32 = 536870912u32; +pub const HLNF_CALLERUNTRUSTED: u32 = 2097152u32; +pub const HLNF_CREATENOHISTORY: HLNF = 32u32; +pub const HLNF_DISABLEWINDOWRESTRICTIONS: u32 = 8388608u32; +pub const HLNF_EXTERNALNAVIGATE: u32 = 268435456u32; +pub const HLNF_INTERNALJUMP: HLNF = 1u32; +pub const HLNF_NAVIGATINGBACK: HLNF = 4u32; +pub const HLNF_NAVIGATINGFORWARD: HLNF = 8u32; +pub const HLNF_NAVIGATINGTOSTACKITEM: HLNF = 16u32; +pub const HLNF_NEWWINDOWSMANAGED: u32 = 2147483648u32; +pub const HLNF_OPENINNEWWINDOW: HLNF = 2u32; +pub const HLNF_TRUSTEDFORACTIVEX: u32 = 4194304u32; +pub const HLNF_TRUSTFIRSTDOWNLOAD: u32 = 16777216u32; +pub const HLNF_UNTRUSTEDFORDOWNLOAD: u32 = 33554432u32; +pub const HLQF_ISCURRENT: HLQF_INFO = 2i32; +pub const HLQF_ISVALID: HLQF_INFO = 1i32; +pub const HLSHORTCUTF_DEFAULT: HLSHORTCUTF = 0i32; +pub const HLSHORTCUTF_DONTACTUALLYCREATE: HLSHORTCUTF = 1i32; +pub const HLSHORTCUTF_MAYUSEEXISTINGSHORTCUT: HLSHORTCUTF = 8i32; +pub const HLSHORTCUTF_USEFILENAMEFROMFRIENDLYNAME: HLSHORTCUTF = 2i32; +pub const HLSHORTCUTF_USEUNIQUEFILENAME: HLSHORTCUTF = 4i32; +pub const HLSR_HISTORYFOLDER: HLSR = 2i32; +pub const HLSR_HOME: HLSR = 0i32; +pub const HLSR_SEARCHPAGE: HLSR = 1i32; +pub const HLTB_DOCKEDBOTTOM: HLTB_INFO = 3i32; +pub const HLTB_DOCKEDLEFT: HLTB_INFO = 0i32; +pub const HLTB_DOCKEDRIGHT: HLTB_INFO = 2i32; +pub const HLTB_DOCKEDTOP: HLTB_INFO = 1i32; +pub const HLTB_FLOATING: HLTB_INFO = 4i32; +pub const HLTRANSLATEF_DEFAULT: HLTRANSLATEF = 0i32; +pub const HLTRANSLATEF_DONTAPPLYDEFAULTPREFIX: HLTRANSLATEF = 1i32; +pub const HOMEGROUP_SECURITY_GROUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HomeUsers"); +pub const HOMEGROUP_SECURITY_GROUP_MULTI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HUG"); +pub const HideInputPaneAnimationCoordinator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x384742b1_2a77_4cb3_8cf8_1136f5e17e59); +pub const HomeGroup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xde77ba04_3c92_4d11_a1a5_42352a53e0e3); +pub const IDC_OFFLINE_HAND: u32 = 103u32; +pub const IDC_PANTOOL_HAND_CLOSED: u32 = 105u32; +pub const IDC_PANTOOL_HAND_OPEN: u32 = 104u32; +pub const IDD_WIZEXTN_FIRST: u32 = 20480u32; +pub const IDD_WIZEXTN_LAST: u32 = 20736u32; +pub const IDO_SHGIOI_DEFAULT: u64 = 4294967292u64; +pub const IDO_SHGIOI_LINK: u32 = 268435454u32; +pub const IDO_SHGIOI_SHARE: u32 = 268435455u32; +pub const IDO_SHGIOI_SLOWFILE: u64 = 4294967293u64; +pub const IDS_DESCRIPTION: u32 = 1u32; +pub const ID_APP: u32 = 100u32; +pub const IEIFLAG_ASPECT: u32 = 4u32; +pub const IEIFLAG_ASYNC: u32 = 1u32; +pub const IEIFLAG_CACHE: u32 = 2u32; +pub const IEIFLAG_GLEAM: u32 = 16u32; +pub const IEIFLAG_NOBORDER: u32 = 256u32; +pub const IEIFLAG_NOSTAMP: u32 = 128u32; +pub const IEIFLAG_OFFLINE: u32 = 8u32; +pub const IEIFLAG_ORIGSIZE: u32 = 64u32; +pub const IEIFLAG_QUALITY: u32 = 512u32; +pub const IEIFLAG_REFRESH: u32 = 1024u32; +pub const IEIFLAG_SCREEN: u32 = 32u32; +pub const IEIT_PRIORITY_NORMAL: u32 = 268435456u32; +pub const IEI_PRIORITY_MAX: u32 = 2147483647u32; +pub const IEI_PRIORITY_MIN: u32 = 0u32; +pub const IENamespaceTreeControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xace52d03_e5cd_4b20_82ff_e71b11beae1d); +pub const IEPDN_BINDINGUI: IEPDNFLAGS = 1i32; +pub const IESHORTCUT_BACKGROUNDTAB: IESHORTCUTFLAGS = 8i32; +pub const IESHORTCUT_FORCENAVIGATE: IESHORTCUTFLAGS = 4i32; +pub const IESHORTCUT_NEWBROWSER: IESHORTCUTFLAGS = 1i32; +pub const IESHORTCUT_OPENNEWTAB: IESHORTCUTFLAGS = 2i32; +pub const ILMM_IE4: u32 = 0u32; +pub const IMM_ACC_DOCKING_E_DOCKOCCUPIED: ::windows_sys::core::HRESULT = -2144927183i32; +pub const IMM_ACC_DOCKING_E_INSUFFICIENTHEIGHT: ::windows_sys::core::HRESULT = -2144927184i32; +pub const IMSC_E_SHELL_COMPONENT_STARTUP_FAILURE: ::windows_sys::core::HRESULT = -2144927181i32; +pub const INTERNET_MAX_PATH_LENGTH: u32 = 2048u32; +pub const INTERNET_MAX_SCHEME_LENGTH: u32 = 32u32; +pub const IRTIR_TASK_FINISHED: u32 = 4u32; +pub const IRTIR_TASK_NOT_RUNNING: u32 = 0u32; +pub const IRTIR_TASK_PENDING: u32 = 3u32; +pub const IRTIR_TASK_RUNNING: u32 = 1u32; +pub const IRTIR_TASK_SUSPENDED: u32 = 2u32; +pub const ISFBVIEWMODE_LARGEICONS: u32 = 2u32; +pub const ISFBVIEWMODE_LOGOS: u32 = 3u32; +pub const ISFBVIEWMODE_SMALLICONS: u32 = 1u32; +pub const ISFB_MASK_BKCOLOR: u32 = 2u32; +pub const ISFB_MASK_COLORS: u32 = 32u32; +pub const ISFB_MASK_IDLIST: u32 = 16u32; +pub const ISFB_MASK_SHELLFOLDER: u32 = 8u32; +pub const ISFB_MASK_STATE: u32 = 1u32; +pub const ISFB_MASK_VIEWMODE: u32 = 4u32; +pub const ISFB_STATE_ALLOWRENAME: u32 = 2u32; +pub const ISFB_STATE_BTNMINSIZE: u32 = 256u32; +pub const ISFB_STATE_CHANNELBAR: u32 = 16u32; +pub const ISFB_STATE_DEBOSSED: u32 = 1u32; +pub const ISFB_STATE_DEFAULT: u32 = 0u32; +pub const ISFB_STATE_FULLOPEN: u32 = 64u32; +pub const ISFB_STATE_NONAMESORT: u32 = 128u32; +pub const ISFB_STATE_NOSHOWTEXT: u32 = 4u32; +pub const ISFB_STATE_QLINKSMODE: u32 = 32u32; +pub const ISHCUTCMDID_COMMITHISTORY: i32 = 2i32; +pub const ISHCUTCMDID_DOWNLOADICON: i32 = 0i32; +pub const ISHCUTCMDID_INTSHORTCUTCREATE: i32 = 1i32; +pub const ISHCUTCMDID_SETUSERAWURL: i32 = 3i32; +pub const ISIOI_ICONFILE: u32 = 1u32; +pub const ISIOI_ICONINDEX: u32 = 2u32; +pub const IS_E_EXEC_FAILED: ::windows_sys::core::HRESULT = -2147213310i32; +pub const IS_FULLSCREEN: u32 = 2u32; +pub const IS_NORMAL: u32 = 1u32; +pub const IS_SPLIT: u32 = 4u32; +pub const ITSAT_DEFAULT_PRIORITY: u32 = 268435456u32; +pub const ITSAT_MAX_PRIORITY: u32 = 2147483647u32; +pub const ITSAT_MIN_PRIORITY: u32 = 0u32; +pub const ITSSFLAG_COMPLETE_ON_DESTROY: u32 = 0u32; +pub const ITSSFLAG_FLAGS_MASK: u32 = 3u32; +pub const ITSSFLAG_KILL_ON_DESTROY: u32 = 1u32; +pub const ITSS_THREAD_TIMEOUT_NO_CHANGE: u32 = 4294967294u32; +pub const IURL_INVOKECOMMAND_FL_ALLOW_UI: IURL_INVOKECOMMAND_FLAGS = 1i32; +pub const IURL_INVOKECOMMAND_FL_ASYNCOK: IURL_INVOKECOMMAND_FLAGS = 8i32; +pub const IURL_INVOKECOMMAND_FL_DDEWAIT: IURL_INVOKECOMMAND_FLAGS = 4i32; +pub const IURL_INVOKECOMMAND_FL_LOG_USAGE: IURL_INVOKECOMMAND_FLAGS = 16i32; +pub const IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB: IURL_INVOKECOMMAND_FLAGS = 2i32; +pub const IURL_SETURL_FL_GUESS_PROTOCOL: IURL_SETURL_FLAGS = 1i32; +pub const IURL_SETURL_FL_USE_DEFAULT_PROTOCOL: IURL_SETURL_FLAGS = 2i32; +pub const Identity_LocalUserProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa198529b_730f_4089_b646_a12557f5665e); +pub const ImageProperties: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7ab770c7_0e23_4d7a_8aa2_19bfad479829); +pub const ImageRecompress: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6e33091c_d2f8_4740_b55e_2e11d1477a2c); +pub const ImageTranscode: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x17b75166_928f_417d_9685_64aa135565c1); +pub const InputPanelConfiguration: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2853add3_f096_4c63_a78f_7fa3ea837fb7); +pub const InternetExplorer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0002df01_0000_0000_c000_000000000046); +pub const InternetExplorerMedium: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd5e8041d_920f_45e9_b8fb_b1deb82c6e5e); +pub const InternetPrintOrdering: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xadd36aa8_751a_4579_a266_d66f5202ccbb); +pub const ItemCount_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xabbf5c45_5ccc_47b7_bb4e_87cb87bbd162); +pub const ItemIndex_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x92a053da_2969_4021_bf27_514cfc2e4a69); +pub const KDC_FREQUENT: KNOWNDESTCATEGORY = 1i32; +pub const KDC_RECENT: KNOWNDESTCATEGORY = 2i32; +pub const KFDF_LOCAL_REDIRECT_ONLY: _KF_DEFINITION_FLAGS = 2i32; +pub const KFDF_NO_REDIRECT_UI: _KF_DEFINITION_FLAGS = 64i32; +pub const KFDF_PRECREATE: _KF_DEFINITION_FLAGS = 8i32; +pub const KFDF_PUBLISHEXPANDEDPATH: _KF_DEFINITION_FLAGS = 32i32; +pub const KFDF_ROAMABLE: _KF_DEFINITION_FLAGS = 4i32; +pub const KFDF_STREAM: _KF_DEFINITION_FLAGS = 16i32; +pub const KF_CATEGORY_COMMON: KF_CATEGORY = 3i32; +pub const KF_CATEGORY_FIXED: KF_CATEGORY = 2i32; +pub const KF_CATEGORY_PERUSER: KF_CATEGORY = 4i32; +pub const KF_CATEGORY_VIRTUAL: KF_CATEGORY = 1i32; +pub const KF_FLAG_ALIAS_ONLY: KNOWN_FOLDER_FLAG = -2147483648i32; +pub const KF_FLAG_CREATE: KNOWN_FOLDER_FLAG = 32768i32; +pub const KF_FLAG_DEFAULT: KNOWN_FOLDER_FLAG = 0i32; +pub const KF_FLAG_DEFAULT_PATH: KNOWN_FOLDER_FLAG = 1024i32; +pub const KF_FLAG_DONT_UNEXPAND: KNOWN_FOLDER_FLAG = 8192i32; +pub const KF_FLAG_DONT_VERIFY: KNOWN_FOLDER_FLAG = 16384i32; +pub const KF_FLAG_FORCE_APPCONTAINER_REDIRECTION: KNOWN_FOLDER_FLAG = 131072i32; +pub const KF_FLAG_FORCE_APP_DATA_REDIRECTION: KNOWN_FOLDER_FLAG = 524288i32; +pub const KF_FLAG_FORCE_PACKAGE_REDIRECTION: KNOWN_FOLDER_FLAG = 131072i32; +pub const KF_FLAG_INIT: KNOWN_FOLDER_FLAG = 2048i32; +pub const KF_FLAG_NOT_PARENT_RELATIVE: KNOWN_FOLDER_FLAG = 512i32; +pub const KF_FLAG_NO_ALIAS: KNOWN_FOLDER_FLAG = 4096i32; +pub const KF_FLAG_NO_APPCONTAINER_REDIRECTION: KNOWN_FOLDER_FLAG = 65536i32; +pub const KF_FLAG_NO_PACKAGE_REDIRECTION: KNOWN_FOLDER_FLAG = 65536i32; +pub const KF_FLAG_RETURN_FILTER_REDIRECTION_TARGET: KNOWN_FOLDER_FLAG = 262144i32; +pub const KF_FLAG_SIMPLE_IDLIST: KNOWN_FOLDER_FLAG = 256i32; +pub const KF_REDIRECTION_CAPABILITIES_ALLOW_ALL: _KF_REDIRECTION_CAPABILITIES = 255i32; +pub const KF_REDIRECTION_CAPABILITIES_DENY_ALL: _KF_REDIRECTION_CAPABILITIES = 1048320i32; +pub const KF_REDIRECTION_CAPABILITIES_DENY_PERMISSIONS: _KF_REDIRECTION_CAPABILITIES = 1024i32; +pub const KF_REDIRECTION_CAPABILITIES_DENY_POLICY: _KF_REDIRECTION_CAPABILITIES = 512i32; +pub const KF_REDIRECTION_CAPABILITIES_DENY_POLICY_REDIRECTED: _KF_REDIRECTION_CAPABILITIES = 256i32; +pub const KF_REDIRECTION_CAPABILITIES_REDIRECTABLE: _KF_REDIRECTION_CAPABILITIES = 1i32; +pub const KF_REDIRECT_CHECK_ONLY: _KF_REDIRECT_FLAGS = 16i32; +pub const KF_REDIRECT_COPY_CONTENTS: _KF_REDIRECT_FLAGS = 512i32; +pub const KF_REDIRECT_COPY_SOURCE_DACL: _KF_REDIRECT_FLAGS = 2i32; +pub const KF_REDIRECT_DEL_SOURCE_CONTENTS: _KF_REDIRECT_FLAGS = 1024i32; +pub const KF_REDIRECT_EXCLUDE_ALL_KNOWN_SUBFOLDERS: _KF_REDIRECT_FLAGS = 2048i32; +pub const KF_REDIRECT_OWNER_USER: _KF_REDIRECT_FLAGS = 4i32; +pub const KF_REDIRECT_PIN: _KF_REDIRECT_FLAGS = 128i32; +pub const KF_REDIRECT_SET_OWNER_EXPLICIT: _KF_REDIRECT_FLAGS = 8i32; +pub const KF_REDIRECT_UNPIN: _KF_REDIRECT_FLAGS = 64i32; +pub const KF_REDIRECT_USER_EXCLUSIVE: _KF_REDIRECT_FLAGS = 1i32; +pub const KF_REDIRECT_WITH_UI: _KF_REDIRECT_FLAGS = 32i32; +pub const KnownFolderManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4df0c730_df9d_4ae3_9153_aa6b82e9795a); +pub const LFF_ALLITEMS: LIBRARYFOLDERFILTER = 3i32; +pub const LFF_FORCEFILESYSTEM: LIBRARYFOLDERFILTER = 1i32; +pub const LFF_STORAGEITEMS: LIBRARYFOLDERFILTER = 2i32; +pub const LIBRARY_E_NO_ACCESSIBLE_LOCATION: ::windows_sys::core::HRESULT = -2144927231i32; +pub const LIBRARY_E_NO_SAVE_LOCATION: ::windows_sys::core::HRESULT = -2144927232i32; +pub const LINK_E_DELETE: ::windows_sys::core::HRESULT = -2144927485i32; +pub const LMD_ALLOWUNINDEXABLENETWORKLOCATIONS: LIBRARYMANAGEDIALOGOPTIONS = 1i32; +pub const LMD_DEFAULT: LIBRARYMANAGEDIALOGOPTIONS = 0i32; +pub const LOF_DEFAULT: LIBRARYOPTIONFLAGS = 0i32; +pub const LOF_MASK_ALL: LIBRARYOPTIONFLAGS = 1i32; +pub const LOF_PINNEDTONAVPANE: LIBRARYOPTIONFLAGS = 1i32; +pub const LSF_FAILIFTHERE: LIBRARYSAVEFLAGS = 0i32; +pub const LSF_MAKEUNIQUENAME: LIBRARYSAVEFLAGS = 2i32; +pub const LSF_OVERRIDEEXISTING: LIBRARYSAVEFLAGS = 1i32; +pub const LocalThumbnailCache: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x50ef4544_ac9f_4a8e_b21b_8a26180db13f); +pub const MAV_APP_VISIBLE: MONITOR_APP_VISIBILITY = 2i32; +pub const MAV_NO_APP_VISIBLE: MONITOR_APP_VISIBILITY = 1i32; +pub const MAV_UNKNOWN: MONITOR_APP_VISIBILITY = 0i32; +pub const MAXFILELEN: u32 = 13u32; +pub const MAX_COLUMN_DESC_LEN: u32 = 128u32; +pub const MAX_COLUMN_NAME_LEN: u32 = 80u32; +pub const MAX_SYNCMGRHANDLERNAME: u32 = 32u32; +pub const MAX_SYNCMGRITEMNAME: u32 = 128u32; +pub const MAX_SYNCMGR_ID: u32 = 64u32; +pub const MAX_SYNCMGR_NAME: u32 = 128u32; +pub const MAX_SYNCMGR_PROGRESSTEXT: u32 = 260u32; +pub const MBHANDCID_PIDLSELECT: MENUBANDHANDLERCID = 0i32; +pub const MIMEASSOCDLG_FL_REGISTER_ASSOC: MIMEASSOCIATIONDIALOG_IN_FLAGS = 1i32; +pub const MM_ADDSEPARATOR: MM_FLAGS = 1u32; +pub const MM_DONTREMOVESEPS: MM_FLAGS = 4u32; +pub const MM_SUBMENUSHAVEIDS: MM_FLAGS = 2u32; +pub const MPOS_CANCELLEVEL: MENUPOPUPSELECT = 2i32; +pub const MPOS_CHILDTRACKING: MENUPOPUPSELECT = 5i32; +pub const MPOS_EXECUTE: MENUPOPUPSELECT = 0i32; +pub const MPOS_FULLCANCEL: MENUPOPUPSELECT = 1i32; +pub const MPOS_SELECTLEFT: MENUPOPUPSELECT = 3i32; +pub const MPOS_SELECTRIGHT: MENUPOPUPSELECT = 4i32; +pub const MPPF_ALIGN_LEFT: MENUPOPUPPOPUPFLAGS = 33554432i32; +pub const MPPF_ALIGN_RIGHT: MENUPOPUPPOPUPFLAGS = 67108864i32; +pub const MPPF_BOTTOM: MENUPOPUPPOPUPFLAGS = -2147483648i32; +pub const MPPF_FINALSELECT: MENUPOPUPPOPUPFLAGS = 128i32; +pub const MPPF_FORCEZORDER: MENUPOPUPPOPUPFLAGS = 64i32; +pub const MPPF_INITIALSELECT: MENUPOPUPPOPUPFLAGS = 2i32; +pub const MPPF_KEYBOARD: MENUPOPUPPOPUPFLAGS = 16i32; +pub const MPPF_LEFT: MENUPOPUPPOPUPFLAGS = 1073741824i32; +pub const MPPF_NOANIMATE: MENUPOPUPPOPUPFLAGS = 4i32; +pub const MPPF_POS_MASK: MENUPOPUPPOPUPFLAGS = -536870912i32; +pub const MPPF_REPOSITION: MENUPOPUPPOPUPFLAGS = 32i32; +pub const MPPF_RIGHT: MENUPOPUPPOPUPFLAGS = 1610612736i32; +pub const MPPF_SETFOCUS: MENUPOPUPPOPUPFLAGS = 1i32; +pub const MPPF_TOP: MENUPOPUPPOPUPFLAGS = 536870912i32; +pub const MUS_COMPLETE: MERGE_UPDATE_STATUS = 0i32; +pub const MUS_FAILED: MERGE_UPDATE_STATUS = 2i32; +pub const MUS_USERINPUTNEEDED: MERGE_UPDATE_STATUS = 1i32; +pub const MailRecipient: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9e56be60_c50f_11cf_9a2c_00a0c90a90ce); +pub const MergedCategorizer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8e827c11_33e7_4bc1_b242_8cd9a1c2b304); +pub const NCM_DISPLAYERRORTIP: u32 = 1028u32; +pub const NCM_GETADDRESS: u32 = 1025u32; +pub const NCM_GETALLOWTYPE: u32 = 1027u32; +pub const NCM_SETALLOWTYPE: u32 = 1026u32; +pub const NDO_LANDSCAPE: NATIVE_DISPLAY_ORIENTATION = 0i32; +pub const NDO_PORTRAIT: NATIVE_DISPLAY_ORIENTATION = 1i32; +pub const NETCACHE_E_NEGATIVE_CACHE: ::windows_sys::core::HRESULT = -2144927488i32; +pub const NIF_GUID: NOTIFY_ICON_DATA_FLAGS = 32u32; +pub const NIF_ICON: NOTIFY_ICON_DATA_FLAGS = 2u32; +pub const NIF_INFO: NOTIFY_ICON_DATA_FLAGS = 16u32; +pub const NIF_MESSAGE: NOTIFY_ICON_DATA_FLAGS = 1u32; +pub const NIF_REALTIME: NOTIFY_ICON_DATA_FLAGS = 64u32; +pub const NIF_SHOWTIP: NOTIFY_ICON_DATA_FLAGS = 128u32; +pub const NIF_STATE: NOTIFY_ICON_DATA_FLAGS = 8u32; +pub const NIF_TIP: NOTIFY_ICON_DATA_FLAGS = 4u32; +pub const NIIF_ERROR: NOTIFY_ICON_INFOTIP_FLAGS = 3u32; +pub const NIIF_ICON_MASK: NOTIFY_ICON_INFOTIP_FLAGS = 15u32; +pub const NIIF_INFO: NOTIFY_ICON_INFOTIP_FLAGS = 1u32; +pub const NIIF_LARGE_ICON: NOTIFY_ICON_INFOTIP_FLAGS = 32u32; +pub const NIIF_NONE: NOTIFY_ICON_INFOTIP_FLAGS = 0u32; +pub const NIIF_NOSOUND: NOTIFY_ICON_INFOTIP_FLAGS = 16u32; +pub const NIIF_RESPECT_QUIET_TIME: NOTIFY_ICON_INFOTIP_FLAGS = 128u32; +pub const NIIF_USER: NOTIFY_ICON_INFOTIP_FLAGS = 4u32; +pub const NIIF_WARNING: NOTIFY_ICON_INFOTIP_FLAGS = 2u32; +pub const NIM_ADD: NOTIFY_ICON_MESSAGE = 0u32; +pub const NIM_DELETE: NOTIFY_ICON_MESSAGE = 2u32; +pub const NIM_MODIFY: NOTIFY_ICON_MESSAGE = 1u32; +pub const NIM_SETFOCUS: NOTIFY_ICON_MESSAGE = 3u32; +pub const NIM_SETVERSION: NOTIFY_ICON_MESSAGE = 4u32; +pub const NINF_KEY: u32 = 1u32; +pub const NIN_BALLOONHIDE: u32 = 1027u32; +pub const NIN_BALLOONSHOW: u32 = 1026u32; +pub const NIN_BALLOONTIMEOUT: u32 = 1028u32; +pub const NIN_BALLOONUSERCLICK: u32 = 1029u32; +pub const NIN_POPUPCLOSE: u32 = 1031u32; +pub const NIN_POPUPOPEN: u32 = 1030u32; +pub const NIN_SELECT: u32 = 1024u32; +pub const NIS_HIDDEN: NOTIFY_ICON_STATE = 1u32; +pub const NIS_SHAREDICON: NOTIFY_ICON_STATE = 2u32; +pub const NMCII_FOLDERS: _NMCII_FLAGS = 2i32; +pub const NMCII_ITEMS: _NMCII_FLAGS = 1i32; +pub const NMCII_NONE: _NMCII_FLAGS = 0i32; +pub const NMCSAEI_EDIT: _NMCSAEI_FLAGS = 1i32; +pub const NMCSAEI_SELECT: _NMCSAEI_FLAGS = 0i32; +pub const NOTIFYICON_VERSION: u32 = 3u32; +pub const NOTIFYICON_VERSION_4: u32 = 4u32; +pub const NPCredentialProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3dd6bec0_8193_4ffe_ae25_e08e39ea4063); +pub const NSTCDHPOS_ONTOP: i32 = -1i32; +pub const NSTCECT_BUTTON: _NSTCECLICKTYPE = 3i32; +pub const NSTCECT_DBLCLICK: _NSTCECLICKTYPE = 4i32; +pub const NSTCECT_LBUTTON: _NSTCECLICKTYPE = 1i32; +pub const NSTCECT_MBUTTON: _NSTCECLICKTYPE = 2i32; +pub const NSTCECT_RBUTTON: _NSTCECLICKTYPE = 3i32; +pub const NSTCEHT_NOWHERE: _NSTCEHITTEST = 1i32; +pub const NSTCEHT_ONITEM: _NSTCEHITTEST = 70i32; +pub const NSTCEHT_ONITEMBUTTON: _NSTCEHITTEST = 16i32; +pub const NSTCEHT_ONITEMICON: _NSTCEHITTEST = 2i32; +pub const NSTCEHT_ONITEMINDENT: _NSTCEHITTEST = 8i32; +pub const NSTCEHT_ONITEMLABEL: _NSTCEHITTEST = 4i32; +pub const NSTCEHT_ONITEMRIGHT: _NSTCEHITTEST = 32i32; +pub const NSTCEHT_ONITEMSTATEICON: _NSTCEHITTEST = 64i32; +pub const NSTCEHT_ONITEMTABBUTTON: _NSTCEHITTEST = 4096i32; +pub const NSTCFC_DELAY_REGISTER_NOTIFY: NSTCFOLDERCAPABILITIES = 2i32; +pub const NSTCFC_NONE: NSTCFOLDERCAPABILITIES = 0i32; +pub const NSTCFC_PINNEDITEMFILTERING: NSTCFOLDERCAPABILITIES = 1i32; +pub const NSTCGNI_CHILD: NSTCGNI = 5i32; +pub const NSTCGNI_FIRSTVISIBLE: NSTCGNI = 6i32; +pub const NSTCGNI_LASTVISIBLE: NSTCGNI = 7i32; +pub const NSTCGNI_NEXT: NSTCGNI = 0i32; +pub const NSTCGNI_NEXTVISIBLE: NSTCGNI = 1i32; +pub const NSTCGNI_PARENT: NSTCGNI = 4i32; +pub const NSTCGNI_PREV: NSTCGNI = 2i32; +pub const NSTCGNI_PREVVISIBLE: NSTCGNI = 3i32; +pub const NSTCIS_BOLD: _NSTCITEMSTATE = 4i32; +pub const NSTCIS_DISABLED: _NSTCITEMSTATE = 8i32; +pub const NSTCIS_EXPANDED: _NSTCITEMSTATE = 2i32; +pub const NSTCIS_NONE: _NSTCITEMSTATE = 0i32; +pub const NSTCIS_SELECTED: _NSTCITEMSTATE = 1i32; +pub const NSTCIS_SELECTEDNOEXPAND: _NSTCITEMSTATE = 16i32; +pub const NSTCRS_EXPANDED: _NSTCROOTSTYLE = 2i32; +pub const NSTCRS_HIDDEN: _NSTCROOTSTYLE = 1i32; +pub const NSTCRS_VISIBLE: _NSTCROOTSTYLE = 0i32; +pub const NSTCS2_DEFAULT: NSTCSTYLE2 = 0i32; +pub const NSTCS2_DISPLAYPADDING: NSTCSTYLE2 = 4i32; +pub const NSTCS2_DISPLAYPINNEDONLY: NSTCSTYLE2 = 8i32; +pub const NSTCS2_INTERRUPTNOTIFICATIONS: NSTCSTYLE2 = 1i32; +pub const NSTCS2_SHOWNULLSPACEMENU: NSTCSTYLE2 = 2i32; +pub const NSTCS_ALLOWJUNCTIONS: _NSTCSTYLE = 268435456i32; +pub const NSTCS_AUTOHSCROLL: _NSTCSTYLE = 1048576i32; +pub const NSTCS_BORDER: _NSTCSTYLE = 32768i32; +pub const NSTCS_CHECKBOXES: _NSTCSTYLE = 8388608i32; +pub const NSTCS_DIMMEDCHECKBOXES: _NSTCSTYLE = 67108864i32; +pub const NSTCS_DISABLEDRAGDROP: _NSTCSTYLE = 4096i32; +pub const NSTCS_EMPTYTEXT: _NSTCSTYLE = 4194304i32; +pub const NSTCS_EVENHEIGHT: _NSTCSTYLE = 1024i32; +pub const NSTCS_EXCLUSIONCHECKBOXES: _NSTCSTYLE = 33554432i32; +pub const NSTCS_FADEINOUTEXPANDOS: _NSTCSTYLE = 2097152i32; +pub const NSTCS_FAVORITESMODE: _NSTCSTYLE = 524288i32; +pub const NSTCS_FULLROWSELECT: _NSTCSTYLE = 8i32; +pub const NSTCS_HASEXPANDOS: _NSTCSTYLE = 1i32; +pub const NSTCS_HASLINES: _NSTCSTYLE = 2i32; +pub const NSTCS_HORIZONTALSCROLL: _NSTCSTYLE = 32i32; +pub const NSTCS_NOEDITLABELS: _NSTCSTYLE = 65536i32; +pub const NSTCS_NOINDENTCHECKS: _NSTCSTYLE = 134217728i32; +pub const NSTCS_NOINFOTIP: _NSTCSTYLE = 512i32; +pub const NSTCS_NOORDERSTREAM: _NSTCSTYLE = 8192i32; +pub const NSTCS_NOREPLACEOPEN: _NSTCSTYLE = 2048i32; +pub const NSTCS_PARTIALCHECKBOXES: _NSTCSTYLE = 16777216i32; +pub const NSTCS_RICHTOOLTIP: _NSTCSTYLE = 16384i32; +pub const NSTCS_ROOTHASEXPANDO: _NSTCSTYLE = 64i32; +pub const NSTCS_SHOWDELETEBUTTON: _NSTCSTYLE = 1073741824i32; +pub const NSTCS_SHOWREFRESHBUTTON: _NSTCSTYLE = -2147483648i32; +pub const NSTCS_SHOWSELECTIONALWAYS: _NSTCSTYLE = 128i32; +pub const NSTCS_SHOWTABSBUTTON: _NSTCSTYLE = 536870912i32; +pub const NSTCS_SINGLECLICKEXPAND: _NSTCSTYLE = 4i32; +pub const NSTCS_SPRINGEXPAND: _NSTCSTYLE = 16i32; +pub const NSTCS_TABSTOP: _NSTCSTYLE = 131072i32; +pub const NSWF_ACCUMULATE_FOLDERS: NAMESPACEWALKFLAG = 2048i32; +pub const NSWF_ANY_IMPLIES_ALL: NAMESPACEWALKFLAG = 32768i32; +pub const NSWF_ASYNC: NAMESPACEWALKFLAG = 512i32; +pub const NSWF_DEFAULT: NAMESPACEWALKFLAG = 0i32; +pub const NSWF_DONT_ACCUMULATE_RESULT: NAMESPACEWALKFLAG = 8i32; +pub const NSWF_DONT_RESOLVE_LINKS: NAMESPACEWALKFLAG = 1024i32; +pub const NSWF_DONT_SORT: NAMESPACEWALKFLAG = 4096i32; +pub const NSWF_DONT_TRAVERSE_LINKS: NAMESPACEWALKFLAG = 4i32; +pub const NSWF_DONT_TRAVERSE_STREAM_JUNCTIONS: NAMESPACEWALKFLAG = 16384i32; +pub const NSWF_FILESYSTEM_ONLY: NAMESPACEWALKFLAG = 32i32; +pub const NSWF_FLAG_VIEWORDER: NAMESPACEWALKFLAG = 128i32; +pub const NSWF_IGNORE_AUTOPLAY_HIDA: NAMESPACEWALKFLAG = 256i32; +pub const NSWF_NONE_IMPLIES_ALL: NAMESPACEWALKFLAG = 1i32; +pub const NSWF_ONE_IMPLIES_ALL: NAMESPACEWALKFLAG = 2i32; +pub const NSWF_SHOW_PROGRESS: NAMESPACEWALKFLAG = 64i32; +pub const NSWF_TRAVERSE_STREAM_JUNCTIONS: NAMESPACEWALKFLAG = 16i32; +pub const NSWF_USE_TRANSFER_MEDIUM: NAMESPACEWALKFLAG = 8192i32; +pub const NTSCS2_NEVERINSERTNONENUMERATED: NSTCSTYLE2 = 32i32; +pub const NTSCS2_NOSINGLETONAUTOEXPAND: NSTCSTYLE2 = 16i32; +pub const NT_CONSOLE_PROPS_SIG: u32 = 2684354562u32; +pub const NT_FE_CONSOLE_PROPS_SIG: u32 = 2684354564u32; +pub const NUM_POINTS: u32 = 3u32; +pub const NWMF_FIRST: NWMF = 4i32; +pub const NWMF_FORCETAB: NWMF = 131072i32; +pub const NWMF_FORCEWINDOW: NWMF = 65536i32; +pub const NWMF_FROMDIALOGCHILD: NWMF = 64i32; +pub const NWMF_HTMLDIALOG: NWMF = 32i32; +pub const NWMF_INACTIVETAB: NWMF = 1048576i32; +pub const NWMF_OVERRIDEKEY: NWMF = 8i32; +pub const NWMF_SHOWHELP: NWMF = 16i32; +pub const NWMF_SUGGESTTAB: NWMF = 524288i32; +pub const NWMF_SUGGESTWINDOW: NWMF = 262144i32; +pub const NWMF_UNLOADING: NWMF = 1i32; +pub const NWMF_USERALLOWED: NWMF = 256i32; +pub const NWMF_USERINITED: NWMF = 2i32; +pub const NWMF_USERREQUESTED: NWMF = 128i32; +pub const NamespaceTreeControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae054212_3535_4430_83ed_d501aa6680e6); +pub const NamespaceWalker: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x72eb61e0_8672_4303_9175_f2e4c68b2e7c); +pub const NetworkConnections: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7007acc7_3202_11d1_aad2_00805fc1270e); +pub const NetworkExplorerFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf02c1a0d_be21_4350_88b0_7367fc96ef3c); +pub const NetworkPlaces: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x208d2c60_3aea_1069_a2d7_08002b30309d); +pub const OAIF_ALLOW_REGISTRATION: OPEN_AS_INFO_FLAGS = 1i32; +pub const OAIF_EXEC: OPEN_AS_INFO_FLAGS = 4i32; +pub const OAIF_FILE_IS_URI: OPEN_AS_INFO_FLAGS = 128i32; +pub const OAIF_FORCE_REGISTRATION: OPEN_AS_INFO_FLAGS = 8i32; +pub const OAIF_HIDE_REGISTRATION: OPEN_AS_INFO_FLAGS = 32i32; +pub const OAIF_REGISTER_EXT: OPEN_AS_INFO_FLAGS = 2i32; +pub const OAIF_URL_PROTOCOL: OPEN_AS_INFO_FLAGS = 64i32; +pub const OFASI_EDIT: u32 = 1u32; +pub const OFASI_OPENDESKTOP: u32 = 2u32; +pub const OFFLINE_STATUS_INCOMPLETE: u32 = 4u32; +pub const OFFLINE_STATUS_LOCAL: u32 = 1u32; +pub const OFFLINE_STATUS_REMOTE: u32 = 2u32; +pub const OFS_DIRTYCACHE: OfflineFolderStatus = 3i32; +pub const OFS_INACTIVE: OfflineFolderStatus = -1i32; +pub const OFS_OFFLINE: OfflineFolderStatus = 1i32; +pub const OFS_ONLINE: OfflineFolderStatus = 0i32; +pub const OFS_SERVERBACK: OfflineFolderStatus = 2i32; +pub const OF_CAP_CANCLOSE: u32 = 2u32; +pub const OF_CAP_CANSWITCHTO: u32 = 1u32; +pub const OI_ASYNC: u32 = 4294962926u32; +pub const OI_DEFAULT: u32 = 0u32; +pub const OPENPROPS_INHIBITPIF: u32 = 32768u32; +pub const OPENPROPS_NONE: u32 = 0u32; +pub const OPPROGDLG_ALLOWUNDO: _OPPROGDLGF = 256i32; +pub const OPPROGDLG_DEFAULT: _OPPROGDLGF = 0i32; +pub const OPPROGDLG_DONTDISPLAYDESTPATH: _OPPROGDLGF = 1024i32; +pub const OPPROGDLG_DONTDISPLAYLOCATIONS: _OPPROGDLGF = 4096i32; +pub const OPPROGDLG_DONTDISPLAYSOURCEPATH: _OPPROGDLGF = 512i32; +pub const OPPROGDLG_ENABLEPAUSE: _OPPROGDLGF = 128i32; +pub const OPPROGDLG_NOMULTIDAYESTIMATES: _OPPROGDLGF = 2048i32; +pub const OS_ADVSERVER: OS = 22u32; +pub const OS_ANYSERVER: OS = 29u32; +pub const OS_APPLIANCE: OS = 36u32; +pub const OS_DATACENTER: OS = 21u32; +pub const OS_DOMAINMEMBER: OS = 28u32; +pub const OS_EMBEDDED: OS = 13u32; +pub const OS_FASTUSERSWITCHING: OS = 26u32; +pub const OS_HOME: OS = 19u32; +pub const OS_MEDIACENTER: OS = 35u32; +pub const OS_MEORGREATER: OS = 17u32; +pub const OS_NT: OS = 1u32; +pub const OS_NT4ORGREATER: OS = 3u32; +pub const OS_PERSONALTERMINALSERVER: OS = 25u32; +pub const OS_PROFESSIONAL: OS = 20u32; +pub const OS_SERVER: OS = 23u32; +pub const OS_SERVERADMINUI: OS = 34u32; +pub const OS_SMALLBUSINESSSERVER: OS = 32u32; +pub const OS_TABLETPC: OS = 33u32; +pub const OS_TERMINALCLIENT: OS = 14u32; +pub const OS_TERMINALREMOTEADMIN: OS = 15u32; +pub const OS_TERMINALSERVER: OS = 24u32; +pub const OS_WEBSERVER: OS = 31u32; +pub const OS_WELCOMELOGONUI: OS = 27u32; +pub const OS_WIN2000ADVSERVER: OS = 10u32; +pub const OS_WIN2000DATACENTER: OS = 11u32; +pub const OS_WIN2000ORGREATER: OS = 7u32; +pub const OS_WIN2000PRO: OS = 8u32; +pub const OS_WIN2000SERVER: OS = 9u32; +pub const OS_WIN2000TERMINAL: OS = 12u32; +pub const OS_WIN95ORGREATER: OS = 2u32; +pub const OS_WIN95_GOLD: OS = 16u32; +pub const OS_WIN98ORGREATER: OS = 5u32; +pub const OS_WIN98_GOLD: OS = 6u32; +pub const OS_WINDOWS: OS = 0u32; +pub const OS_WOW6432: OS = 30u32; +pub const OS_XPORGREATER: OS = 18u32; +pub const OnexCredentialProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x07aa0886_cc8d_4e19_a410_1c75af686e62); +pub const OnexPlapSmartcardCredentialProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33c86cd6_705f_4ba1_9adb_67070b837775); +pub const OpenControlPanel: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x06622d85_6856_4460_8de1_a81921b41c4b); +pub const PAI_ASSIGNEDTIME: PUBAPPINFOFLAGS = 2i32; +pub const PAI_EXPIRETIME: PUBAPPINFOFLAGS = 16i32; +pub const PAI_PUBLISHEDTIME: PUBAPPINFOFLAGS = 4i32; +pub const PAI_SCHEDULEDTIME: PUBAPPINFOFLAGS = 8i32; +pub const PAI_SOURCE: PUBAPPINFOFLAGS = 1i32; +pub const PANE_NAVIGATION: u32 = 5u32; +pub const PANE_NONE: u32 = 4294967295u32; +pub const PANE_OFFLINE: u32 = 2u32; +pub const PANE_PRINTER: u32 = 3u32; +pub const PANE_PRIVACY: u32 = 7u32; +pub const PANE_PROGRESS: u32 = 6u32; +pub const PANE_SSL: u32 = 4u32; +pub const PANE_ZONE: u32 = 1u32; +pub const PATHCCH_ALLOW_LONG_PATHS: PATHCCH_OPTIONS = 1u32; +pub const PATHCCH_CANONICALIZE_SLASHES: PATHCCH_OPTIONS = 64u32; +pub const PATHCCH_DO_NOT_NORMALIZE_SEGMENTS: PATHCCH_OPTIONS = 8u32; +pub const PATHCCH_ENSURE_IS_EXTENDED_LENGTH_PATH: PATHCCH_OPTIONS = 16u32; +pub const PATHCCH_ENSURE_TRAILING_SLASH: PATHCCH_OPTIONS = 32u32; +pub const PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS: PATHCCH_OPTIONS = 4u32; +pub const PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS: PATHCCH_OPTIONS = 2u32; +pub const PATHCCH_MAX_CCH: u32 = 32768u32; +pub const PATHCCH_NONE: PATHCCH_OPTIONS = 0u32; +pub const PCS_FATAL: PCS_RET = 2147483648u32; +pub const PCS_PATHTOOLONG: PCS_RET = 8u32; +pub const PCS_REMOVEDCHAR: PCS_RET = 2u32; +pub const PCS_REPLACEDCHAR: PCS_RET = 1u32; +pub const PCS_TRUNCATED: PCS_RET = 4u32; +pub const PDM_DEFAULT: _PDMODE = 0i32; +pub const PDM_ERRORSBLOCKING: _PDMODE = 8i32; +pub const PDM_INDETERMINATE: _PDMODE = 16i32; +pub const PDM_PREFLIGHT: _PDMODE = 2i32; +pub const PDM_RUN: _PDMODE = 1i32; +pub const PDM_UNDOING: _PDMODE = 4i32; +pub const PDTIMER_PAUSE: u32 = 2u32; +pub const PDTIMER_RESET: u32 = 1u32; +pub const PDTIMER_RESUME: u32 = 3u32; +pub const PES_RUNNING: PACKAGE_EXECUTION_STATE = 1i32; +pub const PES_SUSPENDED: PACKAGE_EXECUTION_STATE = 3i32; +pub const PES_SUSPENDING: PACKAGE_EXECUTION_STATE = 2i32; +pub const PES_TERMINATED: PACKAGE_EXECUTION_STATE = 4i32; +pub const PES_UNKNOWN: PACKAGE_EXECUTION_STATE = 0i32; +pub const PIDASI_AVG_DATA_RATE: u32 = 4u32; +pub const PIDASI_CHANNEL_COUNT: u32 = 7u32; +pub const PIDASI_COMPRESSION: u32 = 10u32; +pub const PIDASI_FORMAT: u32 = 2u32; +pub const PIDASI_SAMPLE_RATE: u32 = 5u32; +pub const PIDASI_SAMPLE_SIZE: u32 = 6u32; +pub const PIDASI_STREAM_NAME: u32 = 9u32; +pub const PIDASI_STREAM_NUMBER: u32 = 8u32; +pub const PIDASI_TIMELENGTH: u32 = 3u32; +pub const PIDDRSI_DESCRIPTION: u32 = 3u32; +pub const PIDDRSI_PLAYCOUNT: u32 = 4u32; +pub const PIDDRSI_PLAYEXPIRES: u32 = 6u32; +pub const PIDDRSI_PLAYSTARTS: u32 = 5u32; +pub const PIDDRSI_PROTECTED: u32 = 2u32; +pub const PIDISF_CACHEDSTICKY: PIDISF_FLAGS = 2i32; +pub const PIDISF_CACHEIMAGES: PIDISF_FLAGS = 16i32; +pub const PIDISF_FOLLOWALLLINKS: PIDISF_FLAGS = 32i32; +pub const PIDISF_RECENTLYCHANGED: PIDISF_FLAGS = 1i32; +pub const PIDISM_DONTWATCH: PIDISM_OPTIONS = 2i32; +pub const PIDISM_GLOBAL: PIDISM_OPTIONS = 0i32; +pub const PIDISM_WATCH: PIDISM_OPTIONS = 1i32; +pub const PIDISR_NEEDS_ADD: PIDISR_INFO = 1i32; +pub const PIDISR_NEEDS_DELETE: PIDISR_INFO = 3i32; +pub const PIDISR_NEEDS_UPDATE: PIDISR_INFO = 2i32; +pub const PIDISR_UP_TO_DATE: PIDISR_INFO = 0i32; +pub const PIDSI_ALBUM: u32 = 4u32; +pub const PIDSI_ARTIST: u32 = 2u32; +pub const PIDSI_COMMENT: u32 = 6u32; +pub const PIDSI_GENRE: u32 = 11u32; +pub const PIDSI_LYRICS: u32 = 12u32; +pub const PIDSI_SONGTITLE: u32 = 3u32; +pub const PIDSI_TRACK: u32 = 7u32; +pub const PIDSI_YEAR: u32 = 5u32; +pub const PIDVSI_COMPRESSION: u32 = 10u32; +pub const PIDVSI_DATA_RATE: u32 = 8u32; +pub const PIDVSI_FRAME_COUNT: u32 = 5u32; +pub const PIDVSI_FRAME_HEIGHT: u32 = 4u32; +pub const PIDVSI_FRAME_RATE: u32 = 6u32; +pub const PIDVSI_FRAME_WIDTH: u32 = 3u32; +pub const PIDVSI_SAMPLE_SIZE: u32 = 9u32; +pub const PIDVSI_STREAM_NAME: u32 = 2u32; +pub const PIDVSI_STREAM_NUMBER: u32 = 11u32; +pub const PIDVSI_TIMELENGTH: u32 = 7u32; +pub const PID_COMPUTERNAME: u32 = 5u32; +pub const PID_CONTROLPANEL_CATEGORY: u32 = 2u32; +pub const PID_DESCRIPTIONID: u32 = 2u32; +pub const PID_DISPLACED_DATE: u32 = 3u32; +pub const PID_DISPLACED_FROM: u32 = 2u32; +pub const PID_DISPLAY_PROPERTIES: u32 = 0u32; +pub const PID_FINDDATA: u32 = 0u32; +pub const PID_HTMLINFOTIPFILE: u32 = 5u32; +pub const PID_INTROTEXT: u32 = 1u32; +pub const PID_INTSITE_AUTHOR: PID_INTSITE = 3i32; +pub const PID_INTSITE_CODEPAGE: PID_INTSITE = 18i32; +pub const PID_INTSITE_COMMENT: PID_INTSITE = 8i32; +pub const PID_INTSITE_CONTENTCODE: PID_INTSITE = 11i32; +pub const PID_INTSITE_CONTENTLEN: PID_INTSITE = 10i32; +pub const PID_INTSITE_DESCRIPTION: PID_INTSITE = 7i32; +pub const PID_INTSITE_FLAGS: PID_INTSITE = 9i32; +pub const PID_INTSITE_ICONFILE: PID_INTSITE = 21i32; +pub const PID_INTSITE_ICONINDEX: PID_INTSITE = 20i32; +pub const PID_INTSITE_LASTMOD: PID_INTSITE = 5i32; +pub const PID_INTSITE_LASTVISIT: PID_INTSITE = 4i32; +pub const PID_INTSITE_RECURSE: PID_INTSITE = 12i32; +pub const PID_INTSITE_ROAMED: PID_INTSITE = 34i32; +pub const PID_INTSITE_SUBSCRIPTION: PID_INTSITE = 14i32; +pub const PID_INTSITE_TITLE: PID_INTSITE = 16i32; +pub const PID_INTSITE_TRACKING: PID_INTSITE = 19i32; +pub const PID_INTSITE_URL: PID_INTSITE = 15i32; +pub const PID_INTSITE_VISITCOUNT: PID_INTSITE = 6i32; +pub const PID_INTSITE_WATCH: PID_INTSITE = 13i32; +pub const PID_INTSITE_WHATSNEW: PID_INTSITE = 2i32; +pub const PID_IS_AUTHOR: PID_IS = 11i32; +pub const PID_IS_COMMENT: PID_IS = 13i32; +pub const PID_IS_DESCRIPTION: PID_IS = 12i32; +pub const PID_IS_HOTKEY: PID_IS = 6i32; +pub const PID_IS_ICONFILE: PID_IS = 9i32; +pub const PID_IS_ICONINDEX: PID_IS = 8i32; +pub const PID_IS_NAME: PID_IS = 4i32; +pub const PID_IS_ROAMED: PID_IS = 15i32; +pub const PID_IS_SHOWCMD: PID_IS = 7i32; +pub const PID_IS_URL: PID_IS = 2i32; +pub const PID_IS_WHATSNEW: PID_IS = 10i32; +pub const PID_IS_WORKINGDIR: PID_IS = 5i32; +pub const PID_LINK_TARGET: u32 = 2u32; +pub const PID_LINK_TARGET_TYPE: u32 = 3u32; +pub const PID_MISC_ACCESSCOUNT: u32 = 3u32; +pub const PID_MISC_OWNER: u32 = 4u32; +pub const PID_MISC_PICS: u32 = 6u32; +pub const PID_MISC_STATUS: u32 = 2u32; +pub const PID_NETRESOURCE: u32 = 1u32; +pub const PID_NETWORKLOCATION: u32 = 4u32; +pub const PID_QUERY_RANK: u32 = 2u32; +pub const PID_SHARE_CSC_STATUS: u32 = 2u32; +pub const PID_SYNC_COPY_IN: u32 = 2u32; +pub const PID_VOLUME_CAPACITY: u32 = 3u32; +pub const PID_VOLUME_FILESYSTEM: u32 = 4u32; +pub const PID_VOLUME_FREE: u32 = 2u32; +pub const PID_WHICHFOLDER: u32 = 3u32; +pub const PIFDEFFILESIZE: u32 = 80u32; +pub const PIFDEFPATHSIZE: u32 = 64u32; +pub const PIFMAXFILEPATH: u32 = 260u32; +pub const PIFNAMESIZE: u32 = 30u32; +pub const PIFPARAMSSIZE: u32 = 64u32; +pub const PIFSHDATASIZE: u32 = 64u32; +pub const PIFSHPROGSIZE: u32 = 64u32; +pub const PIFSTARTLOCSIZE: u32 = 63u32; +pub const PINLogonCredentialProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcb82ea12_9f71_446d_89e1_8d0924e1256e); +pub const PLATFORM_BROWSERONLY: u32 = 1u32; +pub const PLATFORM_IE3: u32 = 1u32; +pub const PLATFORM_INTEGRATED: u32 = 2u32; +pub const PLATFORM_UNKNOWN: u32 = 0u32; +pub const PMSF_DONT_STRIP_SPACES: u32 = 65536u32; +pub const PMSF_MULTIPLE: u32 = 1u32; +pub const PMSF_NORMAL: u32 = 0u32; +pub const PO_DELETE: u32 = 19u32; +pub const PO_PORTCHANGE: u32 = 32u32; +pub const PO_RENAME: u32 = 20u32; +pub const PO_REN_PORT: u32 = 52u32; +pub const PPCF_ADDARGUMENTS: u32 = 3u32; +pub const PPCF_ADDQUOTES: u32 = 1u32; +pub const PPCF_FORCEQUALIFY: u32 = 64u32; +pub const PPCF_LONGESTPOSSIBLE: u32 = 128u32; +pub const PPCF_NODIRECTORIES: u32 = 16u32; +pub const PRF_DONTFINDLNK: PRF_FLAGS = 8i32; +pub const PRF_FIRSTDIRDEF: PRF_FLAGS = 4i32; +pub const PRF_REQUIREABSOLUTE: PRF_FLAGS = 16i32; +pub const PRF_TRYPROGRAMEXTENSIONS: PRF_FLAGS = 3i32; +pub const PRF_VERIFYEXISTS: PRF_FLAGS = 1i32; +pub const PRINTACTION_DOCUMENTDEFAULTS: u32 = 6u32; +pub const PRINTACTION_NETINSTALL: u32 = 2u32; +pub const PRINTACTION_NETINSTALLLINK: u32 = 3u32; +pub const PRINTACTION_OPEN: u32 = 0u32; +pub const PRINTACTION_OPENNETPRN: u32 = 5u32; +pub const PRINTACTION_PROPERTIES: u32 = 1u32; +pub const PRINTACTION_SERVERPROPERTIES: u32 = 7u32; +pub const PRINTACTION_TESTPAGE: u32 = 4u32; +pub const PRINT_PROP_FORCE_NAME: u32 = 1u32; +pub const PROGDLG_AUTOTIME: u32 = 2u32; +pub const PROGDLG_MARQUEEPROGRESS: u32 = 32u32; +pub const PROGDLG_MODAL: u32 = 1u32; +pub const PROGDLG_NOCANCEL: u32 = 64u32; +pub const PROGDLG_NOMINIMIZE: u32 = 8u32; +pub const PROGDLG_NOPROGRESSBAR: u32 = 16u32; +pub const PROGDLG_NORMAL: u32 = 0u32; +pub const PROGDLG_NOTIME: u32 = 4u32; +pub const PROPSTR_EXTENSIONCOMPLETIONSTATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExtensionCompletionState"); +pub const PROP_CONTRACT_DELEGATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ContractDelegate"); +pub const PSGUID_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x64440490_4c8b_11d1_8b70_080036b11a03); +pub const PSGUID_BRIEFCASE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x328d8b21_7729_4bfc_954c_902b329d56b0); +pub const PSGUID_CONTROLPANEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x305ca226_d286_468e_b848_2b2e8e697b74); +pub const PSGUID_CUSTOMIMAGEPROPERTIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7ecd8b0e_c136_4a9b_9411_4ebd6673ccc3); +pub const PSGUID_DISPLACED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b174b33_40ff_11d2_a27e_00c04fc30871); +pub const PSGUID_DOCUMENTSUMMARYINFORMATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd5cdd502_2e9c_101b_9397_08002b2cf9ae); +pub const PSGUID_DRM: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaeac19e4_89ae_4508_b9b7_bb867abee2ed); +pub const PSGUID_IMAGEPROPERTIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x14b81da1_0135_4d31_96d9_6cbfc9671a99); +pub const PSGUID_IMAGESUMMARYINFORMATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6444048f_4c8b_11d1_8b70_080036b11a03); +pub const PSGUID_LIBRARYPROPERTIES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5d76b67f_9b3d_44bb_b6ae_25da4f638a67); +pub const PSGUID_LINK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9b4b3fc_2b51_4a42_b5d8_324146afcf25); +pub const PSGUID_MEDIAFILESUMMARYINFORMATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x64440492_4c8b_11d1_8b70_080036b11a03); +pub const PSGUID_MISC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b174b34_40ff_11d2_a27e_00c04fc30871); +pub const PSGUID_MUSIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x56a3372e_ce9c_11d2_9f0e_006097c686f6); +pub const PSGUID_QUERY_D: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49691c90_7e17_101a_a91c_08002b2ecda9); +pub const PSGUID_SHARE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd8c3986f_813b_449c_845d_87b95d674ade); +pub const PSGUID_SHELLDETAILS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x28636aa6_953d_11d2_b5d6_00c04fd918d0); +pub const PSGUID_SUMMARYINFORMATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf29f85e0_4ff9_1068_ab91_08002b27b3d9); +pub const PSGUID_VIDEO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x64440491_4c8b_11d1_8b70_080036b11a03); +pub const PSGUID_VOLUME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b174b35_40ff_11d2_a27e_00c04fc30871); +pub const PSGUID_WEBVIEW: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2275480_f782_4291_bd94_f13693513aec); +pub const PackageDebugSettings: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb1aec16f_2383_4852_b0e9_8f0b1dc66b4d); +pub const PasswordCredentialProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x60b78e88_ead8_445c_9cfd_0b87f74ea6cd); +pub const PreviousVersions: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x596ab062_b4d2_4215_9f74_e9109b0a8153); +pub const PropertiesUI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd912f8cf_0396_4915_884e_fb425d32943b); +pub const ProtectedModeRedirect: NewProcessCauseConstants = 1i32; +pub const PublishDropTarget: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcc6eeffb_43f6_46c5_9619_51d571967f7d); +pub const PublishingWizard: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6b33163c_76a5_4b6c_bf21_45de9cd503a1); +pub const QCMINFO_PLACE_AFTER: u32 = 1u32; +pub const QCMINFO_PLACE_BEFORE: u32 = 0u32; +pub const QIF_CACHED: QITIPF_FLAGS = 1i32; +pub const QIF_DONTEXPANDFOLDER: QITIPF_FLAGS = 2i32; +pub const QITIPF_DEFAULT: QITIPF_FLAGS = 0i32; +pub const QITIPF_LINKNOTARGET: QITIPF_FLAGS = 2i32; +pub const QITIPF_LINKUSETARGET: QITIPF_FLAGS = 4i32; +pub const QITIPF_SINGLELINE: QITIPF_FLAGS = 16i32; +pub const QITIPF_USENAME: QITIPF_FLAGS = 1i32; +pub const QITIPF_USESLOWTIP: QITIPF_FLAGS = 8i32; +pub const QUNS_ACCEPTS_NOTIFICATIONS: QUERY_USER_NOTIFICATION_STATE = 5i32; +pub const QUNS_APP: QUERY_USER_NOTIFICATION_STATE = 7i32; +pub const QUNS_BUSY: QUERY_USER_NOTIFICATION_STATE = 2i32; +pub const QUNS_NOT_PRESENT: QUERY_USER_NOTIFICATION_STATE = 1i32; +pub const QUNS_PRESENTATION_MODE: QUERY_USER_NOTIFICATION_STATE = 4i32; +pub const QUNS_QUIET_TIME: QUERY_USER_NOTIFICATION_STATE = 6i32; +pub const QUNS_RUNNING_D3D_FULL_SCREEN: QUERY_USER_NOTIFICATION_STATE = 3i32; +pub const QueryCancelAutoPlay: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x331f1768_05a9_4ddd_b86e_dae34ddc998a); +pub const RASProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5537e283_b1e7_4ef8_9c6e_7ab0afe5056d); +pub const REFRESH_COMPLETELY: RefreshConstants = 3i32; +pub const REFRESH_IFEXPIRED: RefreshConstants = 1i32; +pub const REFRESH_NORMAL: RefreshConstants = 0i32; +pub const REST_ALLOWBITBUCKDRIVES: RESTRICTIONS = 1073741905i32; +pub const REST_ALLOWCOMMENTTOGGLE: RESTRICTIONS = 1090519044i32; +pub const REST_ALLOWFILECLSIDJUNCTIONS: RESTRICTIONS = 1073741980i32; +pub const REST_ALLOWLEGACYWEBVIEW: RESTRICTIONS = 1073741955i32; +pub const REST_ALLOWUNHASHEDWEBVIEW: RESTRICTIONS = 1073741954i32; +pub const REST_ARP_DONTGROUPPATCHES: RESTRICTIONS = 1073741996i32; +pub const REST_ARP_NOADDPAGE: RESTRICTIONS = 1073741867i32; +pub const REST_ARP_NOARP: RESTRICTIONS = 1073741865i32; +pub const REST_ARP_NOCHOOSEPROGRAMSPAGE: RESTRICTIONS = 1073741997i32; +pub const REST_ARP_NOREMOVEPAGE: RESTRICTIONS = 1073741866i32; +pub const REST_ARP_NOWINSETUPPAGE: RESTRICTIONS = 1073741868i32; +pub const REST_ARP_ShowPostSetup: RESTRICTIONS = 1073741861i32; +pub const REST_BITBUCKCONFIRMDELETE: RESTRICTIONS = 1073741941i32; +pub const REST_BITBUCKNOPROP: RESTRICTIONS = 1073741942i32; +pub const REST_BITBUCKNUKEONDELETE: RESTRICTIONS = 1073741940i32; +pub const REST_CLASSICSHELL: RESTRICTIONS = 1073741832i32; +pub const REST_CLEARRECENTDOCSONEXIT: RESTRICTIONS = 1073741831i32; +pub const REST_DISALLOWCPL: RESTRICTIONS = 1073741889i32; +pub const REST_DISALLOWRUN: RESTRICTIONS = 1073741886i32; +pub const REST_DONTRETRYBADNETNAME: RESTRICTIONS = 1073741979i32; +pub const REST_DONTSHOWSUPERHIDDEN: RESTRICTIONS = 1073741879i32; +pub const REST_ENFORCESHELLEXTSECURITY: RESTRICTIONS = 1048576i32; +pub const REST_ENUMWORKGROUP: RESTRICTIONS = 1073741864i32; +pub const REST_FORCEACTIVEDESKTOPON: RESTRICTIONS = 1073741898i32; +pub const REST_FORCECOPYACLWITHFILE: RESTRICTIONS = 1073741851i32; +pub const REST_FORCESTARTMENULOGOFF: RESTRICTIONS = 1073741874i32; +pub const REST_GREYMSIADS: RESTRICTIONS = 1073741869i32; +pub const REST_HASFINDCOMPUTERS: RESTRICTIONS = 1073741858i32; +pub const REST_HIDECLOCK: RESTRICTIONS = 1073741936i32; +pub const REST_HIDERUNASVERB: RESTRICTIONS = 1073741948i32; +pub const REST_INHERITCONSOLEHANDLES: RESTRICTIONS = 1073741958i32; +pub const REST_INTELLIMENUS: RESTRICTIONS = 1073741859i32; +pub const REST_LINKRESOLVEIGNORELINKINFO: RESTRICTIONS = 2097152i32; +pub const REST_MYCOMPNOPROP: RESTRICTIONS = 1073741912i32; +pub const REST_MYDOCSNOPROP: RESTRICTIONS = 1073741913i32; +pub const REST_MYDOCSONNET: RESTRICTIONS = 262144i32; +pub const REST_MaxRecentDocs: RESTRICTIONS = 1073741872i32; +pub const REST_NOACTIVEDESKTOP: RESTRICTIONS = 1073741828i32; +pub const REST_NOACTIVEDESKTOPCHANGES: RESTRICTIONS = 1073741829i32; +pub const REST_NOADDDESKCOMP: RESTRICTIONS = 1073741843i32; +pub const REST_NOAUTOTRAYNOTIFY: RESTRICTIONS = 1073741909i32; +pub const REST_NOCDBURNING: RESTRICTIONS = 1073741911i32; +pub const REST_NOCHANGEMAPPEDDRIVECOMMENT: RESTRICTIONS = 1073741871i32; +pub const REST_NOCHANGEMAPPEDDRIVELABEL: RESTRICTIONS = 1073741870i32; +pub const REST_NOCHANGESTARMENU: RESTRICTIONS = 1073741856i32; +pub const REST_NOCHANGINGWALLPAPER: RESTRICTIONS = 1073741841i32; +pub const REST_NOCLOSE: RESTRICTIONS = 2i32; +pub const REST_NOCLOSEDESKCOMP: RESTRICTIONS = 1073741845i32; +pub const REST_NOCLOSE_DRAGDROPBAND: RESTRICTIONS = 1073741846i32; +pub const REST_NOCOLORCHOICE: RESTRICTIONS = 1073741919i32; +pub const REST_NOCOMMONGROUPS: RESTRICTIONS = 4194304i32; +pub const REST_NOCONTROLPANEL: RESTRICTIONS = 1073741863i32; +pub const REST_NOCONTROLPANELBARRICADE: RESTRICTIONS = 1073741907i32; +pub const REST_NOCSC: RESTRICTIONS = 1073741862i32; +pub const REST_NOCURRENTUSERRUN: RESTRICTIONS = 1073741895i32; +pub const REST_NOCURRENTUSERRUNONCE: RESTRICTIONS = 1073741897i32; +pub const REST_NOCUSTOMIZETHISFOLDER: RESTRICTIONS = 1073741876i32; +pub const REST_NOCUSTOMIZEWEBVIEW: RESTRICTIONS = 1073741833i32; +pub const REST_NODELDESKCOMP: RESTRICTIONS = 1073741844i32; +pub const REST_NODESKCOMP: RESTRICTIONS = 1073741842i32; +pub const REST_NODESKTOP: RESTRICTIONS = 64i32; +pub const REST_NODESKTOPCLEANUP: RESTRICTIONS = 1073741939i32; +pub const REST_NODISCONNECT: RESTRICTIONS = 1090519041i32; +pub const REST_NODISPBACKGROUND: RESTRICTIONS = 1073741943i32; +pub const REST_NODISPLAYAPPEARANCEPAGE: RESTRICTIONS = 1073741915i32; +pub const REST_NODISPLAYCPL: RESTRICTIONS = 1073741947i32; +pub const REST_NODISPSCREENSAVEPG: RESTRICTIONS = 1073741944i32; +pub const REST_NODISPSCREENSAVEPREVIEW: RESTRICTIONS = 1073741946i32; +pub const REST_NODISPSETTINGSPG: RESTRICTIONS = 1073741945i32; +pub const REST_NODRIVEAUTORUN: RESTRICTIONS = 512i32; +pub const REST_NODRIVES: RESTRICTIONS = 256i32; +pub const REST_NODRIVETYPEAUTORUN: RESTRICTIONS = 1024i32; +pub const REST_NOEDITDESKCOMP: RESTRICTIONS = 1073741848i32; +pub const REST_NOENCRYPTION: RESTRICTIONS = 1073741877i32; +pub const REST_NOENCRYPTONMOVE: RESTRICTIONS = 1073741893i32; +pub const REST_NOENTIRENETWORK: RESTRICTIONS = 1073741938i32; +pub const REST_NOENUMENTIRENETWORK: RESTRICTIONS = 1073741971i32; +pub const REST_NOEXITTODOS: RESTRICTIONS = 524288i32; +pub const REST_NOFAVORITESMENU: RESTRICTIONS = 1073741830i32; +pub const REST_NOFILEASSOCIATE: RESTRICTIONS = 1090519043i32; +pub const REST_NOFILEMENU: RESTRICTIONS = 8i32; +pub const REST_NOFIND: RESTRICTIONS = 128i32; +pub const REST_NOFOLDEROPTIONS: RESTRICTIONS = 1073741857i32; +pub const REST_NOFORGETSOFTWAREUPDATE: RESTRICTIONS = 1073741853i32; +pub const REST_NOHARDWARETAB: RESTRICTIONS = 1073741881i32; +pub const REST_NOHTMLWALLPAPER: RESTRICTIONS = 1073741840i32; +pub const REST_NOINTERNETICON: RESTRICTIONS = 1073741825i32; +pub const REST_NOINTERNETOPENWITH: RESTRICTIONS = 1073741973i32; +pub const REST_NOLOCALMACHINERUN: RESTRICTIONS = 1073741894i32; +pub const REST_NOLOCALMACHINERUNONCE: RESTRICTIONS = 1073741896i32; +pub const REST_NOLOWDISKSPACECHECKS: RESTRICTIONS = 1073741937i32; +pub const REST_NOMANAGEMYCOMPUTERVERB: RESTRICTIONS = 1073741884i32; +pub const REST_NOMOVINGBAND: RESTRICTIONS = 1073741847i32; +pub const REST_NOMYCOMPUTERICON: RESTRICTIONS = 1073741923i32; +pub const REST_NONE: RESTRICTIONS = 0i32; +pub const REST_NONETCONNECTDISCONNECT: RESTRICTIONS = 134217728i32; +pub const REST_NONETCRAWL: RESTRICTIONS = 1073741901i32; +pub const REST_NONETHOOD: RESTRICTIONS = 2048i32; +pub const REST_NONETWORKCONNECTIONS: RESTRICTIONS = 1073741873i32; +pub const REST_NONLEGACYSHELLMODE: RESTRICTIONS = 1073741906i32; +pub const REST_NOONLINEPRINTSWIZARD: RESTRICTIONS = 1073741952i32; +pub const REST_NOPRINTERADD: RESTRICTIONS = 65536i32; +pub const REST_NOPRINTERDELETE: RESTRICTIONS = 32768i32; +pub const REST_NOPRINTERTABS: RESTRICTIONS = 16384i32; +pub const REST_NOPUBLISHWIZARD: RESTRICTIONS = 1073741951i32; +pub const REST_NORECENTDOCSHISTORY: RESTRICTIONS = 1073741826i32; +pub const REST_NORECENTDOCSMENU: RESTRICTIONS = 1073741827i32; +pub const REST_NOREMOTECHANGENOTIFY: RESTRICTIONS = 1073741969i32; +pub const REST_NOREMOTERECURSIVEEVENTS: RESTRICTIONS = 1073741961i32; +pub const REST_NORESOLVESEARCH: RESTRICTIONS = 1073741849i32; +pub const REST_NORESOLVETRACK: RESTRICTIONS = 1073741850i32; +pub const REST_NORUN: RESTRICTIONS = 1i32; +pub const REST_NORUNASINSTALLPROMPT: RESTRICTIONS = 1073741882i32; +pub const REST_NOSAVESET: RESTRICTIONS = 4i32; +pub const REST_NOSECURITY: RESTRICTIONS = 1090519042i32; +pub const REST_NOSETACTIVEDESKTOP: RESTRICTIONS = 1073741854i32; +pub const REST_NOSETFOLDERS: RESTRICTIONS = 16i32; +pub const REST_NOSETTASKBAR: RESTRICTIONS = 32i32; +pub const REST_NOSETTINGSASSIST: RESTRICTIONS = 536870912i32; +pub const REST_NOSHAREDDOCUMENTS: RESTRICTIONS = 1073741902i32; +pub const REST_NOSHELLSEARCHBUTTON: RESTRICTIONS = 1073741880i32; +pub const REST_NOSIZECHOICE: RESTRICTIONS = 1073741918i32; +pub const REST_NOSMBALLOONTIP: RESTRICTIONS = 1073741890i32; +pub const REST_NOSMCONFIGUREPROGRAMS: RESTRICTIONS = 1073741935i32; +pub const REST_NOSMEJECTPC: RESTRICTIONS = 1073741927i32; +pub const REST_NOSMHELP: RESTRICTIONS = 1073741891i32; +pub const REST_NOSMMFUPROGRAMS: RESTRICTIONS = 1073741929i32; +pub const REST_NOSMMOREPROGRAMS: RESTRICTIONS = 1073741928i32; +pub const REST_NOSMMYDOCS: RESTRICTIONS = 1073741903i32; +pub const REST_NOSMMYMUSIC: RESTRICTIONS = 1073741926i32; +pub const REST_NOSMMYPICS: RESTRICTIONS = 1073741904i32; +pub const REST_NOSMNETWORKPLACES: RESTRICTIONS = 1073741924i32; +pub const REST_NOSMPINNEDLIST: RESTRICTIONS = 1073741925i32; +pub const REST_NOSTARTMENUSUBFOLDERS: RESTRICTIONS = 131072i32; +pub const REST_NOSTARTPAGE: RESTRICTIONS = 1073741908i32; +pub const REST_NOSTARTPANEL: RESTRICTIONS = 1073741914i32; +pub const REST_NOSTRCMPLOGICAL: RESTRICTIONS = 1073741950i32; +pub const REST_NOTASKGROUPING: RESTRICTIONS = 1073741910i32; +pub const REST_NOTHEMESTAB: RESTRICTIONS = 1073741916i32; +pub const REST_NOTHUMBNAILCACHE: RESTRICTIONS = 1073741949i32; +pub const REST_NOTOOLBARSONTASKBAR: RESTRICTIONS = 1073741931i32; +pub const REST_NOTRAYCONTEXTMENU: RESTRICTIONS = 33554432i32; +pub const REST_NOTRAYITEMSDISPLAY: RESTRICTIONS = 1073741930i32; +pub const REST_NOUPDATEWINDOWS: RESTRICTIONS = 1073741855i32; +pub const REST_NOUPNPINSTALL: RESTRICTIONS = 1073741981i32; +pub const REST_NOUSERNAMEINSTARTPANEL: RESTRICTIONS = 1073741922i32; +pub const REST_NOVIEWCONTEXTMENU: RESTRICTIONS = 67108864i32; +pub const REST_NOVIEWONDRIVE: RESTRICTIONS = 1073741900i32; +pub const REST_NOVISUALSTYLECHOICE: RESTRICTIONS = 1073741917i32; +pub const REST_NOWEB: RESTRICTIONS = 16777216i32; +pub const REST_NOWEBSERVICES: RESTRICTIONS = 1073741953i32; +pub const REST_NOWEBVIEW: RESTRICTIONS = 1073741875i32; +pub const REST_NOWELCOMESCREEN: RESTRICTIONS = 1073741887i32; +pub const REST_NOWINKEYS: RESTRICTIONS = 1073741892i32; +pub const REST_PROMPTRUNASINSTALLNETPATH: RESTRICTIONS = 1073741883i32; +pub const REST_RESTRICTCPL: RESTRICTIONS = 1073741888i32; +pub const REST_RESTRICTRUN: RESTRICTIONS = 8192i32; +pub const REST_REVERTWEBVIEWSECURITY: RESTRICTIONS = 1073741956i32; +pub const REST_RUNDLGMEMCHECKBOX: RESTRICTIONS = 1073741860i32; +pub const REST_SEPARATEDESKTOPPROCESS: RESTRICTIONS = 8388608i32; +pub const REST_SETVISUALSTYLE: RESTRICTIONS = 1073741920i32; +pub const REST_STARTBANNER: RESTRICTIONS = 4096i32; +pub const REST_STARTMENULOGOFF: RESTRICTIONS = 268435456i32; +pub const REST_STARTRUNNOHOMEPATH: RESTRICTIONS = 1073741921i32; +pub const ResizeThumbnail: ThumbnailStreamCacheOptions = 2i32; +pub const ReturnOnlyIfCached: ThumbnailStreamCacheOptions = 1i32; +pub const SBSC_HIDE: SHELLBROWSERSHOWCONTROL = 0i32; +pub const SBSC_QUERY: SHELLBROWSERSHOWCONTROL = 3i32; +pub const SBSC_SHOW: SHELLBROWSERSHOWCONTROL = 1i32; +pub const SBSC_TOGGLE: SHELLBROWSERSHOWCONTROL = 2i32; +pub const SBSP_ABSOLUTE: u32 = 0u32; +pub const SBSP_ACTIVATE_NOFOCUS: u32 = 524288u32; +pub const SBSP_ALLOW_AUTONAVIGATE: u32 = 65536u32; +pub const SBSP_CALLERUNTRUSTED: u32 = 8388608u32; +pub const SBSP_CREATENOHISTORY: u32 = 1048576u32; +pub const SBSP_DEFBROWSER: u32 = 0u32; +pub const SBSP_DEFMODE: u32 = 0u32; +pub const SBSP_EXPLOREMODE: u32 = 32u32; +pub const SBSP_FEEDNAVIGATION: u32 = 536870912u32; +pub const SBSP_HELPMODE: u32 = 64u32; +pub const SBSP_INITIATEDBYHLINKFRAME: u32 = 2147483648u32; +pub const SBSP_KEEPSAMETEMPLATE: u32 = 131072u32; +pub const SBSP_KEEPWORDWHEELTEXT: u32 = 262144u32; +pub const SBSP_NAVIGATEBACK: u32 = 16384u32; +pub const SBSP_NAVIGATEFORWARD: u32 = 32768u32; +pub const SBSP_NEWBROWSER: u32 = 2u32; +pub const SBSP_NOAUTOSELECT: u32 = 67108864u32; +pub const SBSP_NOTRANSFERHIST: u32 = 128u32; +pub const SBSP_OPENMODE: u32 = 16u32; +pub const SBSP_PARENT: u32 = 8192u32; +pub const SBSP_PLAYNOSOUND: u32 = 2097152u32; +pub const SBSP_REDIRECT: u32 = 1073741824u32; +pub const SBSP_RELATIVE: u32 = 4096u32; +pub const SBSP_SAMEBROWSER: u32 = 1u32; +pub const SBSP_TRUSTEDFORACTIVEX: u32 = 268435456u32; +pub const SBSP_TRUSTFIRSTDOWNLOAD: u32 = 16777216u32; +pub const SBSP_UNTRUSTEDFORDOWNLOAD: u32 = 33554432u32; +pub const SBSP_WRITENOHISTORY: u32 = 134217728u32; +pub const SCF_PHYSICAL: SCALE_CHANGE_FLAGS = 2i32; +pub const SCF_SCALE: SCALE_CHANGE_FLAGS = 1i32; +pub const SCF_VALUE_NONE: SCALE_CHANGE_FLAGS = 0i32; +pub const SCHEME_CREATE: u32 = 128u32; +pub const SCHEME_DISPLAY: u32 = 1u32; +pub const SCHEME_DONOTUSE: u32 = 64u32; +pub const SCHEME_EDIT: u32 = 2u32; +pub const SCHEME_GLOBAL: u32 = 8u32; +pub const SCHEME_LOCAL: u32 = 4u32; +pub const SCHEME_REFRESH: u32 = 16u32; +pub const SCHEME_UPDATE: u32 = 32u32; +pub const SCNRT_DISABLE: SCNRT_STATUS = 1i32; +pub const SCNRT_ENABLE: SCNRT_STATUS = 0i32; +pub const SCRM_VERIFYPW: u32 = 32768u32; +pub const SECURELOCK_FIRSTSUGGEST: SECURELOCKCODE = 7i32; +pub const SECURELOCK_NOCHANGE: SECURELOCKCODE = -1i32; +pub const SECURELOCK_SET_FORTEZZA: SECURELOCKCODE = 5i32; +pub const SECURELOCK_SET_MIXED: SECURELOCKCODE = 1i32; +pub const SECURELOCK_SET_SECURE128BIT: SECURELOCKCODE = 6i32; +pub const SECURELOCK_SET_SECURE40BIT: SECURELOCKCODE = 3i32; +pub const SECURELOCK_SET_SECURE56BIT: SECURELOCKCODE = 4i32; +pub const SECURELOCK_SET_SECUREUNKNOWNBIT: SECURELOCKCODE = 2i32; +pub const SECURELOCK_SET_UNSECURE: SECURELOCKCODE = 0i32; +pub const SECURELOCK_SUGGEST_FORTEZZA: SECURELOCKCODE = 12i32; +pub const SECURELOCK_SUGGEST_MIXED: SECURELOCKCODE = 8i32; +pub const SECURELOCK_SUGGEST_SECURE128BIT: SECURELOCKCODE = 13i32; +pub const SECURELOCK_SUGGEST_SECURE40BIT: SECURELOCKCODE = 10i32; +pub const SECURELOCK_SUGGEST_SECURE56BIT: SECURELOCKCODE = 11i32; +pub const SECURELOCK_SUGGEST_SECUREUNKNOWNBIT: SECURELOCKCODE = 9i32; +pub const SECURELOCK_SUGGEST_UNSECURE: SECURELOCKCODE = 7i32; +pub const SEE_MASK_ASYNCOK: u32 = 1048576u32; +pub const SEE_MASK_CLASSKEY: u32 = 3u32; +pub const SEE_MASK_CLASSNAME: u32 = 1u32; +pub const SEE_MASK_CONNECTNETDRV: u32 = 128u32; +pub const SEE_MASK_DEFAULT: u32 = 0u32; +pub const SEE_MASK_DOENVSUBST: u32 = 512u32; +pub const SEE_MASK_FLAG_DDEWAIT: u32 = 256u32; +pub const SEE_MASK_FLAG_HINST_IS_SITE: u32 = 134217728u32; +pub const SEE_MASK_FLAG_LOG_USAGE: u32 = 67108864u32; +pub const SEE_MASK_FLAG_NO_UI: u32 = 1024u32; +pub const SEE_MASK_HMONITOR: u32 = 2097152u32; +pub const SEE_MASK_HOTKEY: u32 = 32u32; +pub const SEE_MASK_ICON: u32 = 16u32; +pub const SEE_MASK_IDLIST: u32 = 4u32; +pub const SEE_MASK_INVOKEIDLIST: u32 = 12u32; +pub const SEE_MASK_NOASYNC: u32 = 256u32; +pub const SEE_MASK_NOCLOSEPROCESS: u32 = 64u32; +pub const SEE_MASK_NOQUERYCLASSSTORE: u32 = 16777216u32; +pub const SEE_MASK_NOZONECHECKS: u32 = 8388608u32; +pub const SEE_MASK_NO_CONSOLE: u32 = 32768u32; +pub const SEE_MASK_UNICODE: u32 = 16384u32; +pub const SEE_MASK_WAITFORINPUTIDLE: u32 = 33554432u32; +pub const SETPROPS_NONE: u32 = 0u32; +pub const SE_ERR_ACCESSDENIED: u32 = 5u32; +pub const SE_ERR_ASSOCINCOMPLETE: u32 = 27u32; +pub const SE_ERR_DDEBUSY: u32 = 30u32; +pub const SE_ERR_DDEFAIL: u32 = 29u32; +pub const SE_ERR_DDETIMEOUT: u32 = 28u32; +pub const SE_ERR_DLLNOTFOUND: u32 = 32u32; +pub const SE_ERR_FNF: u32 = 2u32; +pub const SE_ERR_NOASSOC: u32 = 31u32; +pub const SE_ERR_OOM: u32 = 8u32; +pub const SE_ERR_PNF: u32 = 3u32; +pub const SE_ERR_SHARE: u32 = 26u32; +pub const SFBID_PIDLCHANGED: i32 = 0i32; +pub const SFBS_FLAGS_ROUND_TO_NEAREST_DISPLAYED_DIGIT: SFBS_FLAGS = 1i32; +pub const SFBS_FLAGS_TRUNCATE_UNDISPLAYED_DECIMAL_DIGITS: SFBS_FLAGS = 2i32; +pub const SFVM_ADDOBJECT: u32 = 3u32; +pub const SFVM_ADDPROPERTYPAGES: SFVM_MESSAGE_ID = 47i32; +pub const SFVM_BACKGROUNDENUM: SFVM_MESSAGE_ID = 32i32; +pub const SFVM_BACKGROUNDENUMDONE: SFVM_MESSAGE_ID = 48i32; +pub const SFVM_COLUMNCLICK: SFVM_MESSAGE_ID = 24i32; +pub const SFVM_DEFITEMCOUNT: SFVM_MESSAGE_ID = 26i32; +pub const SFVM_DEFVIEWMODE: SFVM_MESSAGE_ID = 27i32; +pub const SFVM_DIDDRAGDROP: SFVM_MESSAGE_ID = 36i32; +pub const SFVM_FSNOTIFY: SFVM_MESSAGE_ID = 14i32; +pub const SFVM_GETANIMATION: SFVM_MESSAGE_ID = 68i32; +pub const SFVM_GETBUTTONINFO: SFVM_MESSAGE_ID = 5i32; +pub const SFVM_GETBUTTONS: SFVM_MESSAGE_ID = 6i32; +pub const SFVM_GETDETAILSOF: SFVM_MESSAGE_ID = 23i32; +pub const SFVM_GETHELPTEXT: SFVM_MESSAGE_ID = 3i32; +pub const SFVM_GETHELPTOPIC: SFVM_MESSAGE_ID = 63i32; +pub const SFVM_GETNOTIFY: SFVM_MESSAGE_ID = 49i32; +pub const SFVM_GETPANE: SFVM_MESSAGE_ID = 59i32; +pub const SFVM_GETSELECTEDOBJECTS: u32 = 9u32; +pub const SFVM_GETSORTDEFAULTS: SFVM_MESSAGE_ID = 53i32; +pub const SFVM_GETTOOLTIPTEXT: SFVM_MESSAGE_ID = 4i32; +pub const SFVM_GETZONE: SFVM_MESSAGE_ID = 58i32; +pub const SFVM_INITMENUPOPUP: SFVM_MESSAGE_ID = 7i32; +pub const SFVM_INVOKECOMMAND: SFVM_MESSAGE_ID = 2i32; +pub const SFVM_MERGEMENU: SFVM_MESSAGE_ID = 1i32; +pub const SFVM_QUERYFSNOTIFY: SFVM_MESSAGE_ID = 25i32; +pub const SFVM_REARRANGE: u32 = 1u32; +pub const SFVM_REMOVEOBJECT: u32 = 6u32; +pub const SFVM_SETCLIPBOARD: u32 = 16u32; +pub const SFVM_SETISFV: SFVM_MESSAGE_ID = 39i32; +pub const SFVM_SETITEMPOS: u32 = 14u32; +pub const SFVM_SETPOINTS: u32 = 23u32; +pub const SFVM_SIZE: SFVM_MESSAGE_ID = 57i32; +pub const SFVM_THISIDLIST: SFVM_MESSAGE_ID = 41i32; +pub const SFVM_UNMERGEMENU: SFVM_MESSAGE_ID = 28i32; +pub const SFVM_UPDATEOBJECT: u32 = 7u32; +pub const SFVM_UPDATESTATUSBAR: SFVM_MESSAGE_ID = 31i32; +pub const SFVM_WINDOWCREATED: SFVM_MESSAGE_ID = 15i32; +pub const SFVSOC_INVALIDATE_ALL: u32 = 1u32; +pub const SFVSOC_NOSCROLL: u32 = 2u32; +pub const SFVS_SELECT_ALLITEMS: SFVS_SELECT = 1i32; +pub const SFVS_SELECT_INVERT: SFVS_SELECT = 2i32; +pub const SFVS_SELECT_NONE: SFVS_SELECT = 0i32; +pub const SFVVO_DESKTOPHTML: ShellFolderViewOptions = 512i32; +pub const SFVVO_DOUBLECLICKINWEBVIEW: ShellFolderViewOptions = 128i32; +pub const SFVVO_SHOWALLOBJECTS: ShellFolderViewOptions = 1i32; +pub const SFVVO_SHOWCOMPCOLOR: ShellFolderViewOptions = 8i32; +pub const SFVVO_SHOWEXTENSIONS: ShellFolderViewOptions = 2i32; +pub const SFVVO_SHOWSYSFILES: ShellFolderViewOptions = 32i32; +pub const SFVVO_WIN95CLASSIC: ShellFolderViewOptions = 64i32; +pub const SHACF_AUTOAPPEND_FORCE_OFF: SHELL_AUTOCOMPLETE_FLAGS = 2147483648u32; +pub const SHACF_AUTOAPPEND_FORCE_ON: SHELL_AUTOCOMPLETE_FLAGS = 1073741824u32; +pub const SHACF_AUTOSUGGEST_FORCE_OFF: SHELL_AUTOCOMPLETE_FLAGS = 536870912u32; +pub const SHACF_AUTOSUGGEST_FORCE_ON: SHELL_AUTOCOMPLETE_FLAGS = 268435456u32; +pub const SHACF_DEFAULT: SHELL_AUTOCOMPLETE_FLAGS = 0u32; +pub const SHACF_FILESYSTEM: SHELL_AUTOCOMPLETE_FLAGS = 1u32; +pub const SHACF_FILESYS_DIRS: SHELL_AUTOCOMPLETE_FLAGS = 32u32; +pub const SHACF_FILESYS_ONLY: SHELL_AUTOCOMPLETE_FLAGS = 16u32; +pub const SHACF_URLALL: SHELL_AUTOCOMPLETE_FLAGS = 6u32; +pub const SHACF_URLHISTORY: SHELL_AUTOCOMPLETE_FLAGS = 2u32; +pub const SHACF_URLMRU: SHELL_AUTOCOMPLETE_FLAGS = 4u32; +pub const SHACF_USETAB: SHELL_AUTOCOMPLETE_FLAGS = 8u32; +pub const SHACF_VIRTUAL_NAMESPACE: SHELL_AUTOCOMPLETE_FLAGS = 64u32; +pub const SHARD_APPIDINFO: SHARD = 4i32; +pub const SHARD_APPIDINFOIDLIST: SHARD = 5i32; +pub const SHARD_APPIDINFOLINK: SHARD = 7i32; +pub const SHARD_LINK: SHARD = 6i32; +pub const SHARD_PATHA: SHARD = 2i32; +pub const SHARD_PATHW: SHARD = 3i32; +pub const SHARD_PIDL: SHARD = 1i32; +pub const SHARD_SHELLITEM: SHARD = 8i32; +pub const SHARE_ROLE_CONTRIBUTOR: SHARE_ROLE = 1i32; +pub const SHARE_ROLE_CO_OWNER: SHARE_ROLE = 2i32; +pub const SHARE_ROLE_CUSTOM: SHARE_ROLE = 4i32; +pub const SHARE_ROLE_INVALID: SHARE_ROLE = -1i32; +pub const SHARE_ROLE_MIXED: SHARE_ROLE = 5i32; +pub const SHARE_ROLE_OWNER: SHARE_ROLE = 3i32; +pub const SHARE_ROLE_READER: SHARE_ROLE = 0i32; +pub const SHCDF_UPDATEITEM: u32 = 1u32; +pub const SHCIDS_ALLFIELDS: i32 = -2147483648i32; +pub const SHCIDS_BITMASK: i32 = -65536i32; +pub const SHCIDS_CANONICALONLY: i32 = 268435456i32; +pub const SHCIDS_COLUMNMASK: i32 = 65535i32; +pub const SHCNEE_MSI_CHANGE: i32 = 4i32; +pub const SHCNEE_MSI_UNINSTALL: i32 = 5i32; +pub const SHCNEE_ORDERCHANGED: i32 = 2i32; +pub const SHCNE_ALLEVENTS: SHCNE_ID = 2147483647u32; +pub const SHCNE_ASSOCCHANGED: SHCNE_ID = 134217728u32; +pub const SHCNE_ATTRIBUTES: SHCNE_ID = 2048u32; +pub const SHCNE_CREATE: SHCNE_ID = 2u32; +pub const SHCNE_DELETE: SHCNE_ID = 4u32; +pub const SHCNE_DISKEVENTS: SHCNE_ID = 145439u32; +pub const SHCNE_DRIVEADD: SHCNE_ID = 256u32; +pub const SHCNE_DRIVEADDGUI: SHCNE_ID = 65536u32; +pub const SHCNE_DRIVEREMOVED: SHCNE_ID = 128u32; +pub const SHCNE_EXTENDED_EVENT: SHCNE_ID = 67108864u32; +pub const SHCNE_FREESPACE: SHCNE_ID = 262144u32; +pub const SHCNE_GLOBALEVENTS: SHCNE_ID = 201687520u32; +pub const SHCNE_INTERRUPT: SHCNE_ID = 2147483648u32; +pub const SHCNE_MEDIAINSERTED: SHCNE_ID = 32u32; +pub const SHCNE_MEDIAREMOVED: SHCNE_ID = 64u32; +pub const SHCNE_MKDIR: SHCNE_ID = 8u32; +pub const SHCNE_NETSHARE: SHCNE_ID = 512u32; +pub const SHCNE_NETUNSHARE: SHCNE_ID = 1024u32; +pub const SHCNE_RENAMEFOLDER: SHCNE_ID = 131072u32; +pub const SHCNE_RENAMEITEM: SHCNE_ID = 1u32; +pub const SHCNE_RMDIR: SHCNE_ID = 16u32; +pub const SHCNE_SERVERDISCONNECT: SHCNE_ID = 16384u32; +pub const SHCNE_UPDATEDIR: SHCNE_ID = 4096u32; +pub const SHCNE_UPDATEIMAGE: SHCNE_ID = 32768u32; +pub const SHCNE_UPDATEITEM: SHCNE_ID = 8192u32; +pub const SHCNF_DWORD: SHCNF_FLAGS = 3u32; +pub const SHCNF_FLUSH: SHCNF_FLAGS = 4096u32; +pub const SHCNF_FLUSHNOWAIT: SHCNF_FLAGS = 12288u32; +pub const SHCNF_IDLIST: SHCNF_FLAGS = 0u32; +pub const SHCNF_NOTIFYRECURSIVE: SHCNF_FLAGS = 65536u32; +pub const SHCNF_PATH: SHCNF_FLAGS = 5u32; +pub const SHCNF_PATHA: SHCNF_FLAGS = 1u32; +pub const SHCNF_PATHW: SHCNF_FLAGS = 5u32; +pub const SHCNF_PRINTER: SHCNF_FLAGS = 6u32; +pub const SHCNF_PRINTERA: SHCNF_FLAGS = 2u32; +pub const SHCNF_PRINTERW: SHCNF_FLAGS = 6u32; +pub const SHCNF_TYPE: SHCNF_FLAGS = 255u32; +pub const SHCNRF_InterruptLevel: SHCNRF_SOURCE = 1i32; +pub const SHCNRF_NewDelivery: SHCNRF_SOURCE = 32768i32; +pub const SHCNRF_RecursiveInterrupt: SHCNRF_SOURCE = 4096i32; +pub const SHCNRF_ShellLevel: SHCNRF_SOURCE = 2i32; +pub const SHCONTF_CHECKING_FOR_CHILDREN: _SHCONTF = 16i32; +pub const SHCONTF_ENABLE_ASYNC: _SHCONTF = 32768i32; +pub const SHCONTF_FASTITEMS: _SHCONTF = 8192i32; +pub const SHCONTF_FLATLIST: _SHCONTF = 16384i32; +pub const SHCONTF_FOLDERS: _SHCONTF = 32i32; +pub const SHCONTF_INCLUDEHIDDEN: _SHCONTF = 128i32; +pub const SHCONTF_INCLUDESUPERHIDDEN: _SHCONTF = 65536i32; +pub const SHCONTF_INIT_ON_FIRST_NEXT: _SHCONTF = 256i32; +pub const SHCONTF_NAVIGATION_ENUM: _SHCONTF = 4096i32; +pub const SHCONTF_NETPRINTERSRCH: _SHCONTF = 512i32; +pub const SHCONTF_NONFOLDERS: _SHCONTF = 64i32; +pub const SHCONTF_SHAREABLE: _SHCONTF = 1024i32; +pub const SHCONTF_STORAGE: _SHCONTF = 2048i32; +pub const SHC_E_SHELL_COMPONENT_STARTUP_FAILURE: ::windows_sys::core::HRESULT = -2144927180i32; +pub const SHDID_COMPUTER_AUDIO: SHDID_ID = 19i32; +pub const SHDID_COMPUTER_CDROM: SHDID_ID = 10i32; +pub const SHDID_COMPUTER_DRIVE35: SHDID_ID = 5i32; +pub const SHDID_COMPUTER_DRIVE525: SHDID_ID = 6i32; +pub const SHDID_COMPUTER_FIXED: SHDID_ID = 8i32; +pub const SHDID_COMPUTER_IMAGING: SHDID_ID = 18i32; +pub const SHDID_COMPUTER_NETDRIVE: SHDID_ID = 9i32; +pub const SHDID_COMPUTER_OTHER: SHDID_ID = 12i32; +pub const SHDID_COMPUTER_RAMDISK: SHDID_ID = 11i32; +pub const SHDID_COMPUTER_REMOVABLE: SHDID_ID = 7i32; +pub const SHDID_COMPUTER_SHAREDDOCS: SHDID_ID = 20i32; +pub const SHDID_FS_DIRECTORY: SHDID_ID = 3i32; +pub const SHDID_FS_FILE: SHDID_ID = 2i32; +pub const SHDID_FS_OTHER: SHDID_ID = 4i32; +pub const SHDID_MOBILE_DEVICE: SHDID_ID = 21i32; +pub const SHDID_NET_DOMAIN: SHDID_ID = 13i32; +pub const SHDID_NET_OTHER: SHDID_ID = 17i32; +pub const SHDID_NET_RESTOFNET: SHDID_ID = 16i32; +pub const SHDID_NET_SERVER: SHDID_ID = 14i32; +pub const SHDID_NET_SHARE: SHDID_ID = 15i32; +pub const SHDID_REMOTE_DESKTOP_DRIVE: SHDID_ID = 22i32; +pub const SHDID_ROOT_REGITEM: SHDID_ID = 1i32; +pub const SHELLSTATEVERSION_IE4: u32 = 9u32; +pub const SHELLSTATEVERSION_WIN2K: u32 = 10u32; +pub const SHELL_E_WRONG_BITDEPTH: ::windows_sys::core::HRESULT = -2144927486i32; +pub const SHELL_UI_COMPONENT_DESKBAND: SHELL_UI_COMPONENT = 2i32; +pub const SHELL_UI_COMPONENT_NOTIFICATIONAREA: SHELL_UI_COMPONENT = 1i32; +pub const SHELL_UI_COMPONENT_TASKBARS: SHELL_UI_COMPONENT = 0i32; +pub const SHERB_NOCONFIRMATION: u32 = 1u32; +pub const SHERB_NOPROGRESSUI: u32 = 2u32; +pub const SHERB_NOSOUND: u32 = 4u32; +pub const SHFMT_CANCEL: SHFMT_RET = 4294967294u32; +pub const SHFMT_ERROR: SHFMT_RET = 4294967295u32; +pub const SHFMT_ID_DEFAULT: SHFMT_ID = 65535u32; +pub const SHFMT_NOFORMAT: SHFMT_RET = 4294967293u32; +pub const SHFMT_OPT_FULL: SHFMT_OPT = 1i32; +pub const SHFMT_OPT_NONE: SHFMT_OPT = 0i32; +pub const SHFMT_OPT_SYSONLY: SHFMT_OPT = 2i32; +pub const SHGDFIL_DESCRIPTIONID: SHGDFIL_FORMAT = 3i32; +pub const SHGDFIL_FINDDATA: SHGDFIL_FORMAT = 1i32; +pub const SHGDFIL_NETRESOURCE: SHGDFIL_FORMAT = 2i32; +pub const SHGDN_FORADDRESSBAR: SHGDNF = 16384u32; +pub const SHGDN_FOREDITING: SHGDNF = 4096u32; +pub const SHGDN_FORPARSING: SHGDNF = 32768u32; +pub const SHGDN_INFOLDER: SHGDNF = 1u32; +pub const SHGDN_NORMAL: SHGDNF = 0u32; +pub const SHGFI_ADDOVERLAYS: SHGFI_FLAGS = 32u32; +pub const SHGFI_ATTRIBUTES: SHGFI_FLAGS = 2048u32; +pub const SHGFI_ATTR_SPECIFIED: SHGFI_FLAGS = 131072u32; +pub const SHGFI_DISPLAYNAME: SHGFI_FLAGS = 512u32; +pub const SHGFI_EXETYPE: SHGFI_FLAGS = 8192u32; +pub const SHGFI_ICON: SHGFI_FLAGS = 256u32; +pub const SHGFI_ICONLOCATION: SHGFI_FLAGS = 4096u32; +pub const SHGFI_LARGEICON: SHGFI_FLAGS = 0u32; +pub const SHGFI_LINKOVERLAY: SHGFI_FLAGS = 32768u32; +pub const SHGFI_OPENICON: SHGFI_FLAGS = 2u32; +pub const SHGFI_OVERLAYINDEX: SHGFI_FLAGS = 64u32; +pub const SHGFI_PIDL: SHGFI_FLAGS = 8u32; +pub const SHGFI_SELECTED: SHGFI_FLAGS = 65536u32; +pub const SHGFI_SHELLICONSIZE: SHGFI_FLAGS = 4u32; +pub const SHGFI_SMALLICON: SHGFI_FLAGS = 1u32; +pub const SHGFI_SYSICONINDEX: SHGFI_FLAGS = 16384u32; +pub const SHGFI_TYPENAME: SHGFI_FLAGS = 1024u32; +pub const SHGFI_USEFILEATTRIBUTES: SHGFI_FLAGS = 16u32; +pub const SHGFP_TYPE_CURRENT: SHGFP_TYPE = 0i32; +pub const SHGFP_TYPE_DEFAULT: SHGFP_TYPE = 1i32; +pub const SHGNLI_NOLNK: u64 = 8u64; +pub const SHGNLI_NOLOCNAME: u64 = 16u64; +pub const SHGNLI_NOUNIQUE: u64 = 4u64; +pub const SHGNLI_PIDL: u64 = 1u64; +pub const SHGNLI_PREFIXNAME: u64 = 2u64; +pub const SHGNLI_USEURLEXT: u64 = 32u64; +pub const SHGSI_ICON: SHGSI_FLAGS = 256u32; +pub const SHGSI_ICONLOCATION: SHGSI_FLAGS = 0u32; +pub const SHGSI_LARGEICON: SHGSI_FLAGS = 0u32; +pub const SHGSI_LINKOVERLAY: SHGSI_FLAGS = 32768u32; +pub const SHGSI_SELECTED: SHGSI_FLAGS = 65536u32; +pub const SHGSI_SHELLICONSIZE: SHGSI_FLAGS = 4u32; +pub const SHGSI_SMALLICON: SHGSI_FLAGS = 1u32; +pub const SHGSI_SYSICONINDEX: SHGSI_FLAGS = 16384u32; +pub const SHGVSPB_ALLFOLDERS: u32 = 8u32; +pub const SHGVSPB_ALLUSERS: u32 = 2u32; +pub const SHGVSPB_INHERIT: u32 = 16u32; +pub const SHGVSPB_NOAUTODEFAULTS: u32 = 2147483648u32; +pub const SHGVSPB_PERFOLDER: u32 = 4u32; +pub const SHGVSPB_PERUSER: u32 = 1u32; +pub const SHGVSPB_ROAM: u32 = 32u32; +pub const SHHLNF_NOAUTOSELECT: u32 = 67108864u32; +pub const SHHLNF_WRITENOHISTORY: u32 = 134217728u32; +pub const SHIL_EXTRALARGE: u32 = 2u32; +pub const SHIL_JUMBO: u32 = 4u32; +pub const SHIL_LARGE: u32 = 0u32; +pub const SHIL_LAST: u32 = 4u32; +pub const SHIL_SMALL: u32 = 1u32; +pub const SHIL_SYSSMALL: u32 = 3u32; +pub const SHIMGDEC_DEFAULT: u32 = 0u32; +pub const SHIMGDEC_LOADFULL: u32 = 2u32; +pub const SHIMGDEC_THUMBNAIL: u32 = 1u32; +pub const SHIMGKEY_QUALITY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Compression"); +pub const SHIMGKEY_RAWFORMAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RawDataFormat"); +pub const SHIMSTCAPFLAG_LOCKABLE: u32 = 1u32; +pub const SHIMSTCAPFLAG_PURGEABLE: u32 = 2u32; +pub const SHOP_FILEPATH: SHOP_TYPE = 2i32; +pub const SHOP_PRINTERNAME: SHOP_TYPE = 1i32; +pub const SHOP_VOLUMEGUID: SHOP_TYPE = 4i32; +pub const SHPPFW_ASKDIRCREATE: u32 = 2u32; +pub const SHPPFW_DIRCREATE: u32 = 1u32; +pub const SHPPFW_IGNOREFILENAME: u32 = 4u32; +pub const SHPPFW_MEDIACHECKONLY: u32 = 16u32; +pub const SHPPFW_NONE: u32 = 0u32; +pub const SHPPFW_NOWRITECHECK: u32 = 8u32; +pub const SHPWHF_ANYLOCATION: u32 = 256u32; +pub const SHPWHF_NOFILESELECTOR: u32 = 4u32; +pub const SHPWHF_NONETPLACECREATE: u32 = 2u32; +pub const SHPWHF_NORECOMPRESS: u32 = 1u32; +pub const SHPWHF_USEMRU: u32 = 8u32; +pub const SHPWHF_VALIDATEVIAWEBFOLDERS: u32 = 65536u32; +pub const SHREGDEL_BOTH: SHREGDEL_FLAGS = 17i32; +pub const SHREGDEL_DEFAULT: SHREGDEL_FLAGS = 0i32; +pub const SHREGDEL_HKCU: SHREGDEL_FLAGS = 1i32; +pub const SHREGDEL_HKLM: SHREGDEL_FLAGS = 16i32; +pub const SHREGENUM_BOTH: SHREGENUM_FLAGS = 17i32; +pub const SHREGENUM_DEFAULT: SHREGENUM_FLAGS = 0i32; +pub const SHREGENUM_HKCU: SHREGENUM_FLAGS = 1i32; +pub const SHREGENUM_HKLM: SHREGENUM_FLAGS = 16i32; +pub const SHREGSET_FORCE_HKCU: u32 = 2u32; +pub const SHREGSET_FORCE_HKLM: u32 = 8u32; +pub const SHREGSET_HKCU: u32 = 1u32; +pub const SHREGSET_HKLM: u32 = 4u32; +pub const SIATTRIBFLAGS_ALLITEMS: SIATTRIBFLAGS = 16384i32; +pub const SIATTRIBFLAGS_AND: SIATTRIBFLAGS = 1i32; +pub const SIATTRIBFLAGS_APPCOMPAT: SIATTRIBFLAGS = 3i32; +pub const SIATTRIBFLAGS_MASK: SIATTRIBFLAGS = 3i32; +pub const SIATTRIBFLAGS_OR: SIATTRIBFLAGS = 2i32; +pub const SICHINT_ALLFIELDS: _SICHINTF = -2147483648i32; +pub const SICHINT_CANONICAL: _SICHINTF = 268435456i32; +pub const SICHINT_DISPLAY: _SICHINTF = 0i32; +pub const SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL: _SICHINTF = 536870912i32; +pub const SID_CommandsPropertyBag: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6e043250_4416_485c_b143_e62a760d9fe5); +pub const SID_CtxQueryAssociations: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfaadfc40_b777_4b69_aa81_77035ef0e6e8); +pub const SID_DefView: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6d12fe80_7911_11cf_9534_0000c05bae0b); +pub const SID_LaunchSourceAppUserModelId: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2ce78010_74db_48bc_9c6a_10f372495723); +pub const SID_LaunchSourceViewSizePreference: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x80605492_67d9_414f_af89_a1cdf1242bc1); +pub const SID_LaunchTargetViewSizePreference: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x26db2472_b7b7_406b_9702_730a4e20d3bf); +pub const SID_MenuShellFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa6c17eb4_2d65_11d2_838f_00c04fd918d0); +pub const SID_SCommDlgBrowser: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x80f30233_b7df_11d2_a33b_006097df5bd4); +pub const SID_SCommandBarState: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb99eaa5c_3850_4400_bc33_2ce534048bf8); +pub const SID_SGetViewFromViewDual: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x889a935d_971e_4b12_b90c_24dfc9e1e5e8); +pub const SID_SInPlaceBrowser: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1d2ae02b_3655_46cc_b63a_285988153bca); +pub const SID_SMenuBandBKContextMenu: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x164bbd86_1d0d_4de0_9a3b_d9729647c2b8); +pub const SID_SMenuBandBottom: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x743ca664_0deb_11d1_9825_00c04fd91972); +pub const SID_SMenuBandBottomSelected: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x165ebaf4_6d51_11d2_83ad_00c04fd918d0); +pub const SID_SMenuBandChild: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xed9cc020_08b9_11d1_9823_00c04fd91972); +pub const SID_SMenuBandContextMenuModifier: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x39545874_7162_465e_b783_2aa1874fef81); +pub const SID_SMenuBandParent: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8c278eec_3eab_11d1_8cb0_00c04fd918d0); +pub const SID_SMenuBandTop: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9493a810_ec38_11d0_bc46_00aa006ce2f5); +pub const SID_SMenuPopup: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd1e7afeb_6a2e_11d0_8c78_00c04fd918b4); +pub const SID_SSearchBoxInfo: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x142daa61_516b_4713_b49c_fb985ef82998); +pub const SID_STopLevelBrowser: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4c96be40_915c_11cf_99d3_00aa004ae837); +pub const SID_STopWindow: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49e1b500_4636_11d3_97f7_00c04f45d0b3); +pub const SID_ShellExecuteNamedPropertyStore: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeb84ada2_00ff_4992_8324_ed5ce061cb29); +pub const SID_URLExecutionContext: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb5f8ebc_bbb6_4d10_a461_777291a09030); +pub const SIGDN_DESKTOPABSOLUTEEDITING: SIGDN = -2147172352i32; +pub const SIGDN_DESKTOPABSOLUTEPARSING: SIGDN = -2147319808i32; +pub const SIGDN_FILESYSPATH: SIGDN = -2147123200i32; +pub const SIGDN_NORMALDISPLAY: SIGDN = 0i32; +pub const SIGDN_PARENTRELATIVE: SIGDN = -2146959359i32; +pub const SIGDN_PARENTRELATIVEEDITING: SIGDN = -2147282943i32; +pub const SIGDN_PARENTRELATIVEFORADDRESSBAR: SIGDN = -2146975743i32; +pub const SIGDN_PARENTRELATIVEFORUI: SIGDN = -2146877439i32; +pub const SIGDN_PARENTRELATIVEPARSING: SIGDN = -2147385343i32; +pub const SIGDN_URL: SIGDN = -2147057664i32; +pub const SIID_APPLICATION: SHSTOCKICONID = 2i32; +pub const SIID_AUDIOFILES: SHSTOCKICONID = 71i32; +pub const SIID_AUTOLIST: SHSTOCKICONID = 49i32; +pub const SIID_CLUSTEREDDRIVE: SHSTOCKICONID = 140i32; +pub const SIID_DELETE: SHSTOCKICONID = 84i32; +pub const SIID_DESKTOPPC: SHSTOCKICONID = 94i32; +pub const SIID_DEVICEAUDIOPLAYER: SHSTOCKICONID = 102i32; +pub const SIID_DEVICECAMERA: SHSTOCKICONID = 100i32; +pub const SIID_DEVICECELLPHONE: SHSTOCKICONID = 99i32; +pub const SIID_DEVICEVIDEOCAMERA: SHSTOCKICONID = 101i32; +pub const SIID_DOCASSOC: SHSTOCKICONID = 1i32; +pub const SIID_DOCNOASSOC: SHSTOCKICONID = 0i32; +pub const SIID_DRIVE35: SHSTOCKICONID = 6i32; +pub const SIID_DRIVE525: SHSTOCKICONID = 5i32; +pub const SIID_DRIVEBD: SHSTOCKICONID = 133i32; +pub const SIID_DRIVECD: SHSTOCKICONID = 11i32; +pub const SIID_DRIVEDVD: SHSTOCKICONID = 59i32; +pub const SIID_DRIVEFIXED: SHSTOCKICONID = 8i32; +pub const SIID_DRIVEHDDVD: SHSTOCKICONID = 132i32; +pub const SIID_DRIVENET: SHSTOCKICONID = 9i32; +pub const SIID_DRIVENETDISABLED: SHSTOCKICONID = 10i32; +pub const SIID_DRIVERAM: SHSTOCKICONID = 12i32; +pub const SIID_DRIVEREMOVE: SHSTOCKICONID = 7i32; +pub const SIID_DRIVEUNKNOWN: SHSTOCKICONID = 58i32; +pub const SIID_ERROR: SHSTOCKICONID = 80i32; +pub const SIID_FIND: SHSTOCKICONID = 22i32; +pub const SIID_FOLDER: SHSTOCKICONID = 3i32; +pub const SIID_FOLDERBACK: SHSTOCKICONID = 75i32; +pub const SIID_FOLDERFRONT: SHSTOCKICONID = 76i32; +pub const SIID_FOLDEROPEN: SHSTOCKICONID = 4i32; +pub const SIID_HELP: SHSTOCKICONID = 23i32; +pub const SIID_IMAGEFILES: SHSTOCKICONID = 72i32; +pub const SIID_INFO: SHSTOCKICONID = 79i32; +pub const SIID_INTERNET: SHSTOCKICONID = 104i32; +pub const SIID_KEY: SHSTOCKICONID = 81i32; +pub const SIID_LINK: SHSTOCKICONID = 29i32; +pub const SIID_LOCK: SHSTOCKICONID = 47i32; +pub const SIID_MAX_ICONS: SHSTOCKICONID = 181i32; +pub const SIID_MEDIAAUDIODVD: SHSTOCKICONID = 85i32; +pub const SIID_MEDIABDR: SHSTOCKICONID = 138i32; +pub const SIID_MEDIABDRE: SHSTOCKICONID = 139i32; +pub const SIID_MEDIABDROM: SHSTOCKICONID = 137i32; +pub const SIID_MEDIABLANKCD: SHSTOCKICONID = 69i32; +pub const SIID_MEDIABLURAY: SHSTOCKICONID = 90i32; +pub const SIID_MEDIACDAUDIO: SHSTOCKICONID = 40i32; +pub const SIID_MEDIACDAUDIOPLUS: SHSTOCKICONID = 65i32; +pub const SIID_MEDIACDBURN: SHSTOCKICONID = 68i32; +pub const SIID_MEDIACDR: SHSTOCKICONID = 67i32; +pub const SIID_MEDIACDROM: SHSTOCKICONID = 70i32; +pub const SIID_MEDIACDRW: SHSTOCKICONID = 66i32; +pub const SIID_MEDIACOMPACTFLASH: SHSTOCKICONID = 98i32; +pub const SIID_MEDIADVD: SHSTOCKICONID = 60i32; +pub const SIID_MEDIADVDPLUSR: SHSTOCKICONID = 92i32; +pub const SIID_MEDIADVDPLUSRW: SHSTOCKICONID = 93i32; +pub const SIID_MEDIADVDR: SHSTOCKICONID = 63i32; +pub const SIID_MEDIADVDRAM: SHSTOCKICONID = 61i32; +pub const SIID_MEDIADVDROM: SHSTOCKICONID = 64i32; +pub const SIID_MEDIADVDRW: SHSTOCKICONID = 62i32; +pub const SIID_MEDIAENHANCEDCD: SHSTOCKICONID = 87i32; +pub const SIID_MEDIAENHANCEDDVD: SHSTOCKICONID = 88i32; +pub const SIID_MEDIAHDDVD: SHSTOCKICONID = 89i32; +pub const SIID_MEDIAHDDVDR: SHSTOCKICONID = 135i32; +pub const SIID_MEDIAHDDVDRAM: SHSTOCKICONID = 136i32; +pub const SIID_MEDIAHDDVDROM: SHSTOCKICONID = 134i32; +pub const SIID_MEDIAMOVIEDVD: SHSTOCKICONID = 86i32; +pub const SIID_MEDIASMARTMEDIA: SHSTOCKICONID = 97i32; +pub const SIID_MEDIASVCD: SHSTOCKICONID = 56i32; +pub const SIID_MEDIAVCD: SHSTOCKICONID = 91i32; +pub const SIID_MIXEDFILES: SHSTOCKICONID = 74i32; +pub const SIID_MOBILEPC: SHSTOCKICONID = 95i32; +pub const SIID_MYNETWORK: SHSTOCKICONID = 17i32; +pub const SIID_NETWORKCONNECT: SHSTOCKICONID = 103i32; +pub const SIID_PRINTER: SHSTOCKICONID = 16i32; +pub const SIID_PRINTERFAX: SHSTOCKICONID = 52i32; +pub const SIID_PRINTERFAXNET: SHSTOCKICONID = 53i32; +pub const SIID_PRINTERFILE: SHSTOCKICONID = 54i32; +pub const SIID_PRINTERNET: SHSTOCKICONID = 50i32; +pub const SIID_RECYCLER: SHSTOCKICONID = 31i32; +pub const SIID_RECYCLERFULL: SHSTOCKICONID = 32i32; +pub const SIID_RENAME: SHSTOCKICONID = 83i32; +pub const SIID_SERVER: SHSTOCKICONID = 15i32; +pub const SIID_SERVERSHARE: SHSTOCKICONID = 51i32; +pub const SIID_SETTINGS: SHSTOCKICONID = 106i32; +pub const SIID_SHARE: SHSTOCKICONID = 28i32; +pub const SIID_SHIELD: SHSTOCKICONID = 77i32; +pub const SIID_SLOWFILE: SHSTOCKICONID = 30i32; +pub const SIID_SOFTWARE: SHSTOCKICONID = 82i32; +pub const SIID_STACK: SHSTOCKICONID = 55i32; +pub const SIID_STUFFEDFOLDER: SHSTOCKICONID = 57i32; +pub const SIID_USERS: SHSTOCKICONID = 96i32; +pub const SIID_VIDEOFILES: SHSTOCKICONID = 73i32; +pub const SIID_WARNING: SHSTOCKICONID = 78i32; +pub const SIID_WORLD: SHSTOCKICONID = 13i32; +pub const SIID_ZIPFILE: SHSTOCKICONID = 105i32; +pub const SIIGBF_BIGGERSIZEOK: SIIGBF = 1i32; +pub const SIIGBF_CROPTOSQUARE: SIIGBF = 32i32; +pub const SIIGBF_ICONBACKGROUND: SIIGBF = 128i32; +pub const SIIGBF_ICONONLY: SIIGBF = 4i32; +pub const SIIGBF_INCACHEONLY: SIIGBF = 16i32; +pub const SIIGBF_MEMORYONLY: SIIGBF = 2i32; +pub const SIIGBF_RESIZETOFIT: SIIGBF = 0i32; +pub const SIIGBF_SCALEUP: SIIGBF = 256i32; +pub const SIIGBF_THUMBNAILONLY: SIIGBF = 8i32; +pub const SIIGBF_WIDETHUMBNAILS: SIIGBF = 64i32; +pub const SIOM_ICONINDEX: u32 = 2u32; +pub const SIOM_OVERLAYINDEX: u32 = 1u32; +pub const SIOM_RESERVED_DEFAULT: u32 = 3u32; +pub const SIOM_RESERVED_LINK: u32 = 1u32; +pub const SIOM_RESERVED_SHARED: u32 = 0u32; +pub const SIOM_RESERVED_SLOWFILE: u32 = 2u32; +pub const SLDF_ALLOW_LINK_TO_LINK: SHELL_LINK_DATA_FLAGS = 8388608i32; +pub const SLDF_DEFAULT: SHELL_LINK_DATA_FLAGS = 0i32; +pub const SLDF_DISABLE_KNOWNFOLDER_RELATIVE_TRACKING: SHELL_LINK_DATA_FLAGS = 2097152i32; +pub const SLDF_DISABLE_LINK_PATH_TRACKING: SHELL_LINK_DATA_FLAGS = 1048576i32; +pub const SLDF_ENABLE_TARGET_METADATA: SHELL_LINK_DATA_FLAGS = 524288i32; +pub const SLDF_FORCE_NO_LINKINFO: SHELL_LINK_DATA_FLAGS = 256i32; +pub const SLDF_FORCE_NO_LINKTRACK: SHELL_LINK_DATA_FLAGS = 262144i32; +pub const SLDF_FORCE_UNCNAME: SHELL_LINK_DATA_FLAGS = 65536i32; +pub const SLDF_HAS_ARGS: SHELL_LINK_DATA_FLAGS = 32i32; +pub const SLDF_HAS_DARWINID: SHELL_LINK_DATA_FLAGS = 4096i32; +pub const SLDF_HAS_EXP_ICON_SZ: SHELL_LINK_DATA_FLAGS = 16384i32; +pub const SLDF_HAS_EXP_SZ: SHELL_LINK_DATA_FLAGS = 512i32; +pub const SLDF_HAS_ICONLOCATION: SHELL_LINK_DATA_FLAGS = 64i32; +pub const SLDF_HAS_ID_LIST: SHELL_LINK_DATA_FLAGS = 1i32; +pub const SLDF_HAS_LINK_INFO: SHELL_LINK_DATA_FLAGS = 2i32; +pub const SLDF_HAS_NAME: SHELL_LINK_DATA_FLAGS = 4i32; +pub const SLDF_HAS_RELPATH: SHELL_LINK_DATA_FLAGS = 8i32; +pub const SLDF_HAS_WORKINGDIR: SHELL_LINK_DATA_FLAGS = 16i32; +pub const SLDF_KEEP_LOCAL_IDLIST_FOR_UNC_TARGET: SHELL_LINK_DATA_FLAGS = 67108864i32; +pub const SLDF_NO_KF_ALIAS: SHELL_LINK_DATA_FLAGS = 4194304i32; +pub const SLDF_NO_PIDL_ALIAS: SHELL_LINK_DATA_FLAGS = 32768i32; +pub const SLDF_PERSIST_VOLUME_ID_RELATIVE: SHELL_LINK_DATA_FLAGS = 134217728i32; +pub const SLDF_PREFER_ENVIRONMENT_PATH: SHELL_LINK_DATA_FLAGS = 33554432i32; +pub const SLDF_RESERVED: SHELL_LINK_DATA_FLAGS = -2147483648i32; +pub const SLDF_RUNAS_USER: SHELL_LINK_DATA_FLAGS = 8192i32; +pub const SLDF_RUN_IN_SEPARATE: SHELL_LINK_DATA_FLAGS = 1024i32; +pub const SLDF_RUN_WITH_SHIMLAYER: SHELL_LINK_DATA_FLAGS = 131072i32; +pub const SLDF_UNALIAS_ON_SAVE: SHELL_LINK_DATA_FLAGS = 16777216i32; +pub const SLDF_UNICODE: SHELL_LINK_DATA_FLAGS = 128i32; +pub const SLDF_VALID: SHELL_LINK_DATA_FLAGS = 268433407i32; +pub const SLGP_RAWPATH: SLGP_FLAGS = 4i32; +pub const SLGP_RELATIVEPRIORITY: SLGP_FLAGS = 8i32; +pub const SLGP_SHORTPATH: SLGP_FLAGS = 1i32; +pub const SLGP_UNCPRIORITY: SLGP_FLAGS = 2i32; +pub const SLR_ANY_MATCH: SLR_FLAGS = 2i32; +pub const SLR_INVOKE_MSI: SLR_FLAGS = 128i32; +pub const SLR_KNOWNFOLDER: SLR_FLAGS = 1024i32; +pub const SLR_MACHINE_IN_LOCAL_TARGET: SLR_FLAGS = 2048i32; +pub const SLR_NOLINKINFO: SLR_FLAGS = 64i32; +pub const SLR_NONE: SLR_FLAGS = 0i32; +pub const SLR_NOSEARCH: SLR_FLAGS = 16i32; +pub const SLR_NOTRACK: SLR_FLAGS = 32i32; +pub const SLR_NOUPDATE: SLR_FLAGS = 8i32; +pub const SLR_NO_OBJECT_ID: SLR_FLAGS = 8192i32; +pub const SLR_NO_UI: SLR_FLAGS = 1i32; +pub const SLR_NO_UI_WITH_MSG_PUMP: SLR_FLAGS = 257i32; +pub const SLR_OFFER_DELETE_WITHOUT_FILE: SLR_FLAGS = 512i32; +pub const SLR_UPDATE: SLR_FLAGS = 4i32; +pub const SLR_UPDATE_MACHINE_AND_SID: SLR_FLAGS = 4096i32; +pub const SMAE_CONTRACTED: u32 = 2u32; +pub const SMAE_EXPANDED: u32 = 1u32; +pub const SMAE_USER: u32 = 4u32; +pub const SMAE_VALID: u32 = 7u32; +pub const SMC_AUTOEXPANDCHANGE: u32 = 66u32; +pub const SMC_CHEVRONEXPAND: u32 = 25u32; +pub const SMC_CHEVRONGETTIP: u32 = 47u32; +pub const SMC_CREATE: u32 = 2u32; +pub const SMC_DEFAULTICON: u32 = 22u32; +pub const SMC_DEMOTE: u32 = 17u32; +pub const SMC_DISPLAYCHEVRONTIP: u32 = 42u32; +pub const SMC_EXITMENU: u32 = 3u32; +pub const SMC_GETAUTOEXPANDSTATE: u32 = 65u32; +pub const SMC_GETBKCONTEXTMENU: u32 = 68u32; +pub const SMC_GETCONTEXTMENUMODIFIER: u32 = 67u32; +pub const SMC_GETINFO: u32 = 5u32; +pub const SMC_GETOBJECT: u32 = 7u32; +pub const SMC_GETSFINFO: u32 = 6u32; +pub const SMC_GETSFOBJECT: u32 = 8u32; +pub const SMC_INITMENU: u32 = 1u32; +pub const SMC_NEWITEM: u32 = 23u32; +pub const SMC_OPEN: u32 = 69u32; +pub const SMC_PROMOTE: u32 = 18u32; +pub const SMC_REFRESH: u32 = 16u32; +pub const SMC_SETSFOBJECT: u32 = 45u32; +pub const SMC_SFDDRESTRICTED: u32 = 48u32; +pub const SMC_SFEXEC: u32 = 9u32; +pub const SMC_SFEXEC_MIDDLE: u32 = 49u32; +pub const SMC_SFSELECTITEM: u32 = 10u32; +pub const SMC_SHCHANGENOTIFY: u32 = 46u32; +pub const SMDM_HMENU: u32 = 2u32; +pub const SMDM_SHELLFOLDER: u32 = 1u32; +pub const SMDM_TOOLBAR: u32 = 4u32; +pub const SMIF_ACCELERATOR: SMINFOFLAGS = 2i32; +pub const SMIF_ALTSTATE: SMINFOFLAGS = 2048i32; +pub const SMIF_CHECKED: SMINFOFLAGS = 32i32; +pub const SMIF_DEMOTED: SMINFOFLAGS = 1024i32; +pub const SMIF_DISABLED: SMINFOFLAGS = 256i32; +pub const SMIF_DRAGNDROP: SMINFOFLAGS = 4096i32; +pub const SMIF_DROPCASCADE: SMINFOFLAGS = 64i32; +pub const SMIF_DROPTARGET: SMINFOFLAGS = 4i32; +pub const SMIF_HIDDEN: SMINFOFLAGS = 128i32; +pub const SMIF_ICON: SMINFOFLAGS = 1i32; +pub const SMIF_NEW: SMINFOFLAGS = 8192i32; +pub const SMIF_SUBMENU: SMINFOFLAGS = 8i32; +pub const SMIF_TRACKPOPUP: SMINFOFLAGS = 512i32; +pub const SMIM_FLAGS: SMINFOMASK = 2i32; +pub const SMIM_ICON: SMINFOMASK = 4i32; +pub const SMIM_TYPE: SMINFOMASK = 1i32; +pub const SMINIT_AUTOEXPAND: u32 = 256u32; +pub const SMINIT_AUTOTOOLTIP: u32 = 512u32; +pub const SMINIT_CACHED: u32 = 16u32; +pub const SMINIT_DEFAULT: u32 = 0u32; +pub const SMINIT_DROPONCONTAINER: u32 = 1024u32; +pub const SMINIT_HORIZONTAL: u32 = 536870912u32; +pub const SMINIT_RESTRICT_DRAGDROP: u32 = 2u32; +pub const SMINIT_TOPLEVEL: u32 = 4u32; +pub const SMINIT_VERTICAL: u32 = 268435456u32; +pub const SMINV_ID: u32 = 8u32; +pub const SMINV_REFRESH: u32 = 1u32; +pub const SMIT_SEPARATOR: SMINFOTYPE = 1i32; +pub const SMIT_STRING: SMINFOTYPE = 2i32; +pub const SMSET_BOTTOM: u32 = 536870912u32; +pub const SMSET_DONTOWN: u32 = 1u32; +pub const SMSET_TOP: u32 = 268435456u32; +pub const SORT_ASCENDING: SORTDIRECTION = 1i32; +pub const SORT_DESCENDING: SORTDIRECTION = -1i32; +pub const SOT_DEFAULT: SORT_ORDER_TYPE = 0i32; +pub const SOT_IGNORE_FOLDERNESS: SORT_ORDER_TYPE = 1i32; +pub const SPACTION_APPLYINGATTRIBS: SPACTION = 4i32; +pub const SPACTION_CALCULATING: SPACTION = 7i32; +pub const SPACTION_COPYING: SPACTION = 2i32; +pub const SPACTION_COPY_MOVING: SPACTION = 13i32; +pub const SPACTION_DELETING: SPACTION = 10i32; +pub const SPACTION_DOWNLOADING: SPACTION = 5i32; +pub const SPACTION_FORMATTING: SPACTION = 12i32; +pub const SPACTION_MOVING: SPACTION = 1i32; +pub const SPACTION_NONE: SPACTION = 0i32; +pub const SPACTION_RECYCLING: SPACTION = 3i32; +pub const SPACTION_RENAMING: SPACTION = 11i32; +pub const SPACTION_SEARCHING_FILES: SPACTION = 9i32; +pub const SPACTION_SEARCHING_INTERNET: SPACTION = 6i32; +pub const SPACTION_UPLOADING: SPACTION = 8i32; +pub const SPBEGINF_AUTOTIME: _SPBEGINF = 2i32; +pub const SPBEGINF_MARQUEEPROGRESS: _SPBEGINF = 32i32; +pub const SPBEGINF_NOCANCELBUTTON: _SPBEGINF = 64i32; +pub const SPBEGINF_NOPROGRESSBAR: _SPBEGINF = 16i32; +pub const SPBEGINF_NORMAL: _SPBEGINF = 0i32; +pub const SPFF_CREATED_ON_THIS_DEVICE: STORAGE_PROVIDER_FILE_FLAGS = 2i32; +pub const SPFF_DOWNLOAD_BY_DEFAULT: STORAGE_PROVIDER_FILE_FLAGS = 1i32; +pub const SPFF_NONE: STORAGE_PROVIDER_FILE_FLAGS = 0i32; +pub const SPINITF_MODAL: _SPINITF = 1i32; +pub const SPINITF_NOMINIMIZE: _SPINITF = 8i32; +pub const SPINITF_NORMAL: _SPINITF = 0i32; +pub const SPMODE_BROWSER: u32 = 8u32; +pub const SPMODE_DBMON: u32 = 8192u32; +pub const SPMODE_DEBUGBREAK: u32 = 512u32; +pub const SPMODE_DEBUGOUT: u32 = 2u32; +pub const SPMODE_EVENT: u32 = 32u32; +pub const SPMODE_EVENTTRACE: u32 = 32768u32; +pub const SPMODE_FLUSH: u32 = 16u32; +pub const SPMODE_FORMATTEXT: u32 = 128u32; +pub const SPMODE_MEMWATCH: u32 = 4096u32; +pub const SPMODE_MSGTRACE: u32 = 1024u32; +pub const SPMODE_MSVM: u32 = 64u32; +pub const SPMODE_MULTISTOP: u32 = 16384u32; +pub const SPMODE_PERFTAGS: u32 = 2048u32; +pub const SPMODE_PROFILE: u32 = 256u32; +pub const SPMODE_SHELL: u32 = 1u32; +pub const SPMODE_TEST: u32 = 4u32; +pub const SPTEXT_ACTIONDESCRIPTION: SPTEXT = 1i32; +pub const SPTEXT_ACTIONDETAIL: SPTEXT = 2i32; +pub const SRRF_NOEXPAND: u32 = 268435456u32; +pub const SRRF_NOVIRT: u32 = 1073741824u32; +pub const SRRF_RM_ANY: u32 = 0u32; +pub const SRRF_RM_NORMAL: u32 = 65536u32; +pub const SRRF_RM_SAFE: u32 = 131072u32; +pub const SRRF_RM_SAFENETWORK: u32 = 262144u32; +pub const SRRF_RT_ANY: u32 = 65535u32; +pub const SRRF_RT_REG_BINARY: u32 = 8u32; +pub const SRRF_RT_REG_DWORD: u32 = 16u32; +pub const SRRF_RT_REG_EXPAND_SZ: u32 = 4u32; +pub const SRRF_RT_REG_MULTI_SZ: u32 = 32u32; +pub const SRRF_RT_REG_NONE: u32 = 1u32; +pub const SRRF_RT_REG_QWORD: u32 = 64u32; +pub const SRRF_RT_REG_SZ: u32 = 2u32; +pub const SRRF_ZEROONFAILURE: u32 = 536870912u32; +pub const SSF_AUTOCHECKSELECT: SSF_MASK = 8388608u32; +pub const SSF_DESKTOPHTML: SSF_MASK = 512u32; +pub const SSF_DONTPRETTYPATH: SSF_MASK = 2048u32; +pub const SSF_DOUBLECLICKINWEBVIEW: SSF_MASK = 128u32; +pub const SSF_FILTER: SSF_MASK = 65536u32; +pub const SSF_HIDDENFILEEXTS: SSF_MASK = 4u32; +pub const SSF_HIDEICONS: SSF_MASK = 16384u32; +pub const SSF_ICONSONLY: SSF_MASK = 16777216u32; +pub const SSF_MAPNETDRVBUTTON: SSF_MASK = 4096u32; +pub const SSF_NOCONFIRMRECYCLE: SSF_MASK = 32768u32; +pub const SSF_NONETCRAWLING: SSF_MASK = 1048576u32; +pub const SSF_SEPPROCESS: SSF_MASK = 524288u32; +pub const SSF_SERVERADMINUI: SSF_MASK = 4u32; +pub const SSF_SHOWALLOBJECTS: SSF_MASK = 1u32; +pub const SSF_SHOWATTRIBCOL: SSF_MASK = 256u32; +pub const SSF_SHOWCOMPCOLOR: SSF_MASK = 8u32; +pub const SSF_SHOWEXTENSIONS: SSF_MASK = 2u32; +pub const SSF_SHOWINFOTIP: SSF_MASK = 8192u32; +pub const SSF_SHOWSTARTPAGE: SSF_MASK = 4194304u32; +pub const SSF_SHOWSTATUSBAR: SSF_MASK = 67108864u32; +pub const SSF_SHOWSUPERHIDDEN: SSF_MASK = 262144u32; +pub const SSF_SHOWSYSFILES: SSF_MASK = 32u32; +pub const SSF_SHOWTYPEOVERLAY: SSF_MASK = 33554432u32; +pub const SSF_SORTCOLUMNS: SSF_MASK = 16u32; +pub const SSF_STARTPANELON: SSF_MASK = 2097152u32; +pub const SSF_WEBVIEW: SSF_MASK = 131072u32; +pub const SSF_WIN95CLASSIC: SSF_MASK = 1024u32; +pub const SSM_CLEAR: u32 = 0u32; +pub const SSM_REFRESH: u32 = 2u32; +pub const SSM_SET: u32 = 1u32; +pub const SSM_UPDATE: u32 = 4u32; +pub const STGOP_APPLYPROPERTIES: STGOP = 8i32; +pub const STGOP_COPY: STGOP = 2i32; +pub const STGOP_MOVE: STGOP = 1i32; +pub const STGOP_NEW: STGOP = 10i32; +pub const STGOP_REMOVE: STGOP = 5i32; +pub const STGOP_RENAME: STGOP = 6i32; +pub const STGOP_SYNC: STGOP = 3i32; +pub const STIF_DEFAULT: i32 = 0i32; +pub const STIF_SUPPORT_HEX: i32 = 1i32; +pub const STORE_E_NEWER_VERSION_AVAILABLE: ::windows_sys::core::HRESULT = -2144927484i32; +pub const STPF_NONE: STPFLAG = 0i32; +pub const STPF_USEAPPPEEKALWAYS: STPFLAG = 4i32; +pub const STPF_USEAPPPEEKWHENACTIVE: STPFLAG = 8i32; +pub const STPF_USEAPPTHUMBNAILALWAYS: STPFLAG = 1i32; +pub const STPF_USEAPPTHUMBNAILWHENACTIVE: STPFLAG = 2i32; +pub const STR_AVOID_DRIVE_RESTRICTION_POLICY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Avoid Drive Restriction Policy"); +pub const STR_BIND_DELEGATE_CREATE_OBJECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Delegate Object Creation"); +pub const STR_BIND_FOLDERS_READ_ONLY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Folders As Read Only"); +pub const STR_BIND_FOLDER_ENUM_MODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Folder Enum Mode"); +pub const STR_BIND_FORCE_FOLDER_SHORTCUT_RESOLVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Force Folder Shortcut Resolve"); +pub const STR_DONT_PARSE_RELATIVE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Don\'t Parse Relative"); +pub const STR_DONT_RESOLVE_LINK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Don\'t Resolve Link"); +pub const STR_ENUM_ITEMS_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHCONTF"); +pub const STR_FILE_SYS_BIND_DATA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("File System Bind Data"); +pub const STR_FILE_SYS_BIND_DATA_WIN7_FORMAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Win7FileSystemIdList"); +pub const STR_GET_ASYNC_HANDLER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GetAsyncHandler"); +pub const STR_GPS_BESTEFFORT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GPS_BESTEFFORT"); +pub const STR_GPS_DELAYCREATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GPS_DELAYCREATION"); +pub const STR_GPS_FASTPROPERTIESONLY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GPS_FASTPROPERTIESONLY"); +pub const STR_GPS_HANDLERPROPERTIESONLY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GPS_HANDLERPROPERTIESONLY"); +pub const STR_GPS_NO_OPLOCK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GPS_NO_OPLOCK"); +pub const STR_GPS_OPENSLOWITEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GPS_OPENSLOWITEM"); +pub const STR_INTERNAL_NAVIGATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Internal Navigation"); +pub const STR_INTERNETFOLDER_PARSE_ONLY_URLMON_BINDABLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Validate URL"); +pub const STR_ITEM_CACHE_CONTEXT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ItemCacheContext"); +pub const STR_MYDOCS_CLSID: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("{450D8FBA-AD25-11D0-98A8-0800361B1103}"); +pub const STR_NO_VALIDATE_FILENAME_CHARS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoValidateFilenameChars"); +pub const STR_PARSE_ALLOW_INTERNET_SHELL_FOLDERS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Allow binding to Internet shell folder handlers and negate STR_PARSE_PREFER_WEB_BROWSING"); +pub const STR_PARSE_AND_CREATE_ITEM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ParseAndCreateItem"); +pub const STR_PARSE_DONT_REQUIRE_VALIDATED_URLS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Do not require validated URLs"); +pub const STR_PARSE_EXPLICIT_ASSOCIATION_SUCCESSFUL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExplicitAssociationSuccessful"); +pub const STR_PARSE_PARTIAL_IDLIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ParseOriginalItem"); +pub const STR_PARSE_PREFER_FOLDER_BROWSING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Parse Prefer Folder Browsing"); +pub const STR_PARSE_PREFER_WEB_BROWSING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Do not bind to Internet shell folder handlers"); +pub const STR_PARSE_PROPERTYSTORE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DelegateNamedProperties"); +pub const STR_PARSE_SHELL_PROTOCOL_TO_FILE_OBJECTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Parse Shell Protocol To File Objects"); +pub const STR_PARSE_SHOW_NET_DIAGNOSTICS_UI: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Show network diagnostics UI"); +pub const STR_PARSE_SKIP_NET_CACHE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Skip Net Resource Cache"); +pub const STR_PARSE_TRANSLATE_ALIASES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Parse Translate Aliases"); +pub const STR_PARSE_WITH_EXPLICIT_ASSOCAPP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExplicitAssociationApp"); +pub const STR_PARSE_WITH_EXPLICIT_PROGID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ExplicitProgid"); +pub const STR_PARSE_WITH_PROPERTIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ParseWithProperties"); +pub const STR_PROPERTYBAG_PARAM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHBindCtxPropertyBag"); +pub const STR_REFERRER_IDENTIFIER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Referrer Identifier"); +pub const STR_SKIP_BINDING_CLSID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Skip Binding CLSID"); +pub const STR_STORAGEITEM_CREATION_FLAGS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SHGETSTORAGEITEM"); +pub const STR_TAB_REUSE_IDENTIFIER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Tab Reuse Identifier"); +pub const STR_TRACK_CLSID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Track the CLSID"); +pub const SV3CVW3_DEFAULT: _SV3CVW3_FLAGS = 0i32; +pub const SV3CVW3_FORCEFOLDERFLAGS: _SV3CVW3_FLAGS = 4i32; +pub const SV3CVW3_FORCEVIEWMODE: _SV3CVW3_FLAGS = 2i32; +pub const SV3CVW3_NONINTERACTIVE: _SV3CVW3_FLAGS = 1i32; +pub const SVGIO_ALLVIEW: _SVGIO = 2i32; +pub const SVGIO_BACKGROUND: _SVGIO = 0i32; +pub const SVGIO_CHECKED: _SVGIO = 3i32; +pub const SVGIO_FLAG_VIEWORDER: _SVGIO = -2147483648i32; +pub const SVGIO_SELECTION: _SVGIO = 1i32; +pub const SVGIO_TYPE_MASK: _SVGIO = 15i32; +pub const SVSI_CHECK: _SVSIF = 256i32; +pub const SVSI_CHECK2: _SVSIF = 512i32; +pub const SVSI_DESELECT: _SVSIF = 0i32; +pub const SVSI_DESELECTOTHERS: _SVSIF = 4i32; +pub const SVSI_EDIT: _SVSIF = 3i32; +pub const SVSI_ENSUREVISIBLE: _SVSIF = 8i32; +pub const SVSI_FOCUSED: _SVSIF = 16i32; +pub const SVSI_KEYBOARDSELECT: _SVSIF = 1025i32; +pub const SVSI_NOTAKEFOCUS: _SVSIF = 1073741824i32; +pub const SVSI_POSITIONITEM: _SVSIF = 128i32; +pub const SVSI_SELECT: _SVSIF = 1i32; +pub const SVSI_SELECTIONMARK: _SVSIF = 64i32; +pub const SVSI_TRANSLATEPT: _SVSIF = 32i32; +pub const SVUIA_ACTIVATE_FOCUS: SVUIA_STATUS = 2i32; +pub const SVUIA_ACTIVATE_NOFOCUS: SVUIA_STATUS = 1i32; +pub const SVUIA_DEACTIVATE: SVUIA_STATUS = 0i32; +pub const SVUIA_INPLACEACTIVATE: SVUIA_STATUS = 3i32; +pub const SWC_3RDPARTY: ShellWindowTypeConstants = 2i32; +pub const SWC_BROWSER: ShellWindowTypeConstants = 1i32; +pub const SWC_CALLBACK: ShellWindowTypeConstants = 4i32; +pub const SWC_DESKTOP: ShellWindowTypeConstants = 8i32; +pub const SWC_EXPLORER: ShellWindowTypeConstants = 0i32; +pub const SWFO_COOKIEPASSED: ShellWindowFindWindowOptions = 4i32; +pub const SWFO_INCLUDEPENDING: ShellWindowFindWindowOptions = 2i32; +pub const SWFO_NEEDDISPATCH: ShellWindowFindWindowOptions = 1i32; +pub const SYNCMGRERRORFLAG_ENABLEJUMPTEXT: SYNCMGRERRORFLAGS = 1i32; +pub const SYNCMGRFLAG_CONNECT: SYNCMGRFLAG = 1i32; +pub const SYNCMGRFLAG_EVENTMASK: SYNCMGRFLAG = 255i32; +pub const SYNCMGRFLAG_IDLE: SYNCMGRFLAG = 4i32; +pub const SYNCMGRFLAG_INVOKE: SYNCMGRFLAG = 5i32; +pub const SYNCMGRFLAG_MANUAL: SYNCMGRFLAG = 3i32; +pub const SYNCMGRFLAG_MAYBOTHERUSER: SYNCMGRFLAG = 512i32; +pub const SYNCMGRFLAG_PENDINGDISCONNECT: SYNCMGRFLAG = 2i32; +pub const SYNCMGRFLAG_SCHEDULED: SYNCMGRFLAG = 6i32; +pub const SYNCMGRFLAG_SETTINGS: SYNCMGRFLAG = 256i32; +pub const SYNCMGRHANDLERFLAG_MASK: u32 = 15u32; +pub const SYNCMGRHANDLER_ALWAYSLISTHANDLER: SYNCMGRHANDLERFLAGS = 4i32; +pub const SYNCMGRHANDLER_HASPROPERTIES: SYNCMGRHANDLERFLAGS = 1i32; +pub const SYNCMGRHANDLER_HIDDEN: SYNCMGRHANDLERFLAGS = 8i32; +pub const SYNCMGRHANDLER_MAYESTABLISHCONNECTION: SYNCMGRHANDLERFLAGS = 2i32; +pub const SYNCMGRINVOKE_MINIMIZED: SYNCMGRINVOKEFLAGS = 4i32; +pub const SYNCMGRINVOKE_STARTSYNC: SYNCMGRINVOKEFLAGS = 2i32; +pub const SYNCMGRITEMSTATE_CHECKED: SYNCMGRITEMSTATE = 1i32; +pub const SYNCMGRITEMSTATE_UNCHECKED: SYNCMGRITEMSTATE = 0i32; +pub const SYNCMGRITEM_HASPROPERTIES: SYNCMGRITEMFLAGS = 1i32; +pub const SYNCMGRITEM_HIDDEN: SYNCMGRITEMFLAGS = 32i32; +pub const SYNCMGRITEM_ITEMFLAGMASK: u32 = 127u32; +pub const SYNCMGRITEM_LASTUPDATETIME: SYNCMGRITEMFLAGS = 8i32; +pub const SYNCMGRITEM_MAYDELETEITEM: SYNCMGRITEMFLAGS = 16i32; +pub const SYNCMGRITEM_ROAMINGUSER: SYNCMGRITEMFLAGS = 4i32; +pub const SYNCMGRITEM_TEMPORARY: SYNCMGRITEMFLAGS = 2i32; +pub const SYNCMGRLOGERROR_ERRORFLAGS: u32 = 1u32; +pub const SYNCMGRLOGERROR_ERRORID: u32 = 2u32; +pub const SYNCMGRLOGERROR_ITEMID: u32 = 4u32; +pub const SYNCMGRLOGLEVEL_ERROR: SYNCMGRLOGLEVEL = 3i32; +pub const SYNCMGRLOGLEVEL_INFORMATION: SYNCMGRLOGLEVEL = 1i32; +pub const SYNCMGRLOGLEVEL_LOGLEVELMAX: SYNCMGRLOGLEVEL = 3i32; +pub const SYNCMGRLOGLEVEL_WARNING: SYNCMGRLOGLEVEL = 2i32; +pub const SYNCMGRPROGRESSITEM_MAXVALUE: u32 = 8u32; +pub const SYNCMGRPROGRESSITEM_PROGVALUE: u32 = 4u32; +pub const SYNCMGRPROGRESSITEM_STATUSTEXT: u32 = 1u32; +pub const SYNCMGRPROGRESSITEM_STATUSTYPE: u32 = 2u32; +pub const SYNCMGRREGISTERFLAGS_MASK: u32 = 7u32; +pub const SYNCMGRREGISTERFLAG_CONNECT: SYNCMGRREGISTERFLAGS = 1i32; +pub const SYNCMGRREGISTERFLAG_IDLE: SYNCMGRREGISTERFLAGS = 4i32; +pub const SYNCMGRREGISTERFLAG_PENDINGDISCONNECT: SYNCMGRREGISTERFLAGS = 2i32; +pub const SYNCMGRSTATUS_DELETED: SYNCMGRSTATUS = 256i32; +pub const SYNCMGRSTATUS_FAILED: SYNCMGRSTATUS = 5i32; +pub const SYNCMGRSTATUS_PAUSED: SYNCMGRSTATUS = 6i32; +pub const SYNCMGRSTATUS_PENDING: SYNCMGRSTATUS = 2i32; +pub const SYNCMGRSTATUS_RESUMING: SYNCMGRSTATUS = 7i32; +pub const SYNCMGRSTATUS_SKIPPED: SYNCMGRSTATUS = 1i32; +pub const SYNCMGRSTATUS_STOPPED: SYNCMGRSTATUS = 0i32; +pub const SYNCMGRSTATUS_SUCCEEDED: SYNCMGRSTATUS = 4i32; +pub const SYNCMGRSTATUS_UPDATING: SYNCMGRSTATUS = 3i32; +pub const SYNCMGRSTATUS_UPDATING_INDETERMINATE: SYNCMGRSTATUS = 8i32; +pub const SYNCMGR_CF_NONE: SYNCMGR_CONTROL_FLAGS = 0i32; +pub const SYNCMGR_CF_NOUI: SYNCMGR_CONTROL_FLAGS = 2i32; +pub const SYNCMGR_CF_NOWAIT: SYNCMGR_CONTROL_FLAGS = 0i32; +pub const SYNCMGR_CF_VALID: SYNCMGR_CONTROL_FLAGS = 3i32; +pub const SYNCMGR_CF_WAIT: SYNCMGR_CONTROL_FLAGS = 1i32; +pub const SYNCMGR_CIT_DELETED: SYNCMGR_CONFLICT_ITEM_TYPE = 2i32; +pub const SYNCMGR_CIT_UPDATED: SYNCMGR_CONFLICT_ITEM_TYPE = 1i32; +pub const SYNCMGR_CR_CANCEL_ALL: SYNCMGR_CANCEL_REQUEST = 2i32; +pub const SYNCMGR_CR_CANCEL_ITEM: SYNCMGR_CANCEL_REQUEST = 1i32; +pub const SYNCMGR_CR_MAX: SYNCMGR_CANCEL_REQUEST = 2i32; +pub const SYNCMGR_CR_NONE: SYNCMGR_CANCEL_REQUEST = 0i32; +pub const SYNCMGR_EF_NONE: SYNCMGR_EVENT_FLAGS = 0i32; +pub const SYNCMGR_EF_VALID: SYNCMGR_EVENT_FLAGS = 0i32; +pub const SYNCMGR_EL_ERROR: SYNCMGR_EVENT_LEVEL = 3i32; +pub const SYNCMGR_EL_INFORMATION: SYNCMGR_EVENT_LEVEL = 1i32; +pub const SYNCMGR_EL_MAX: SYNCMGR_EVENT_LEVEL = 3i32; +pub const SYNCMGR_EL_WARNING: SYNCMGR_EVENT_LEVEL = 2i32; +pub const SYNCMGR_HCM_CAN_BROWSE_CONTENT: SYNCMGR_HANDLER_CAPABILITIES = 65536i32; +pub const SYNCMGR_HCM_CAN_SHOW_SCHEDULE: SYNCMGR_HANDLER_CAPABILITIES = 131072i32; +pub const SYNCMGR_HCM_CONFLICT_STORE: SYNCMGR_HANDLER_CAPABILITIES = 4i32; +pub const SYNCMGR_HCM_EVENT_STORE: SYNCMGR_HANDLER_CAPABILITIES = 2i32; +pub const SYNCMGR_HCM_NONE: SYNCMGR_HANDLER_CAPABILITIES = 0i32; +pub const SYNCMGR_HCM_PROVIDES_ICON: SYNCMGR_HANDLER_CAPABILITIES = 1i32; +pub const SYNCMGR_HCM_QUERY_BEFORE_ACTIVATE: SYNCMGR_HANDLER_CAPABILITIES = 1048576i32; +pub const SYNCMGR_HCM_QUERY_BEFORE_DEACTIVATE: SYNCMGR_HANDLER_CAPABILITIES = 2097152i32; +pub const SYNCMGR_HCM_QUERY_BEFORE_DISABLE: SYNCMGR_HANDLER_CAPABILITIES = 8388608i32; +pub const SYNCMGR_HCM_QUERY_BEFORE_ENABLE: SYNCMGR_HANDLER_CAPABILITIES = 4194304i32; +pub const SYNCMGR_HCM_SUPPORTS_CONCURRENT_SESSIONS: SYNCMGR_HANDLER_CAPABILITIES = 16i32; +pub const SYNCMGR_HCM_VALID_MASK: SYNCMGR_HANDLER_CAPABILITIES = 15925271i32; +pub const SYNCMGR_HPM_BACKGROUND_SYNC_ONLY: SYNCMGR_HANDLER_POLICIES = 48i32; +pub const SYNCMGR_HPM_DISABLE_BROWSE: SYNCMGR_HANDLER_POLICIES = 4096i32; +pub const SYNCMGR_HPM_DISABLE_DISABLE: SYNCMGR_HANDLER_POLICIES = 512i32; +pub const SYNCMGR_HPM_DISABLE_ENABLE: SYNCMGR_HANDLER_POLICIES = 256i32; +pub const SYNCMGR_HPM_DISABLE_SCHEDULE: SYNCMGR_HANDLER_POLICIES = 8192i32; +pub const SYNCMGR_HPM_DISABLE_START_SYNC: SYNCMGR_HANDLER_POLICIES = 1024i32; +pub const SYNCMGR_HPM_DISABLE_STOP_SYNC: SYNCMGR_HANDLER_POLICIES = 2048i32; +pub const SYNCMGR_HPM_HIDDEN_BY_DEFAULT: SYNCMGR_HANDLER_POLICIES = 65536i32; +pub const SYNCMGR_HPM_NONE: SYNCMGR_HANDLER_POLICIES = 0i32; +pub const SYNCMGR_HPM_PREVENT_ACTIVATE: SYNCMGR_HANDLER_POLICIES = 1i32; +pub const SYNCMGR_HPM_PREVENT_DEACTIVATE: SYNCMGR_HANDLER_POLICIES = 2i32; +pub const SYNCMGR_HPM_PREVENT_DISABLE: SYNCMGR_HANDLER_POLICIES = 8i32; +pub const SYNCMGR_HPM_PREVENT_ENABLE: SYNCMGR_HANDLER_POLICIES = 4i32; +pub const SYNCMGR_HPM_PREVENT_START_SYNC: SYNCMGR_HANDLER_POLICIES = 16i32; +pub const SYNCMGR_HPM_PREVENT_STOP_SYNC: SYNCMGR_HANDLER_POLICIES = 32i32; +pub const SYNCMGR_HPM_VALID_MASK: SYNCMGR_HANDLER_POLICIES = 77631i32; +pub const SYNCMGR_HT_APPLICATION: SYNCMGR_HANDLER_TYPE = 1i32; +pub const SYNCMGR_HT_COMPUTER: SYNCMGR_HANDLER_TYPE = 5i32; +pub const SYNCMGR_HT_DEVICE: SYNCMGR_HANDLER_TYPE = 2i32; +pub const SYNCMGR_HT_FOLDER: SYNCMGR_HANDLER_TYPE = 3i32; +pub const SYNCMGR_HT_MAX: SYNCMGR_HANDLER_TYPE = 5i32; +pub const SYNCMGR_HT_MIN: SYNCMGR_HANDLER_TYPE = 0i32; +pub const SYNCMGR_HT_SERVICE: SYNCMGR_HANDLER_TYPE = 4i32; +pub const SYNCMGR_HT_UNSPECIFIED: SYNCMGR_HANDLER_TYPE = 0i32; +pub const SYNCMGR_ICM_CAN_BROWSE_CONTENT: SYNCMGR_ITEM_CAPABILITIES = 65536i32; +pub const SYNCMGR_ICM_CAN_DELETE: SYNCMGR_ITEM_CAPABILITIES = 16i32; +pub const SYNCMGR_ICM_CONFLICT_STORE: SYNCMGR_ITEM_CAPABILITIES = 4i32; +pub const SYNCMGR_ICM_EVENT_STORE: SYNCMGR_ITEM_CAPABILITIES = 2i32; +pub const SYNCMGR_ICM_NONE: SYNCMGR_ITEM_CAPABILITIES = 0i32; +pub const SYNCMGR_ICM_PROVIDES_ICON: SYNCMGR_ITEM_CAPABILITIES = 1i32; +pub const SYNCMGR_ICM_QUERY_BEFORE_DELETE: SYNCMGR_ITEM_CAPABILITIES = 4194304i32; +pub const SYNCMGR_ICM_QUERY_BEFORE_DISABLE: SYNCMGR_ITEM_CAPABILITIES = 2097152i32; +pub const SYNCMGR_ICM_QUERY_BEFORE_ENABLE: SYNCMGR_ITEM_CAPABILITIES = 1048576i32; +pub const SYNCMGR_ICM_VALID_MASK: SYNCMGR_ITEM_CAPABILITIES = 7405591i32; +pub const SYNCMGR_IPM_DISABLE_BROWSE: SYNCMGR_ITEM_POLICIES = 256i32; +pub const SYNCMGR_IPM_DISABLE_DELETE: SYNCMGR_ITEM_POLICIES = 512i32; +pub const SYNCMGR_IPM_DISABLE_DISABLE: SYNCMGR_ITEM_POLICIES = 32i32; +pub const SYNCMGR_IPM_DISABLE_ENABLE: SYNCMGR_ITEM_POLICIES = 16i32; +pub const SYNCMGR_IPM_DISABLE_START_SYNC: SYNCMGR_ITEM_POLICIES = 64i32; +pub const SYNCMGR_IPM_DISABLE_STOP_SYNC: SYNCMGR_ITEM_POLICIES = 128i32; +pub const SYNCMGR_IPM_HIDDEN_BY_DEFAULT: SYNCMGR_ITEM_POLICIES = 65536i32; +pub const SYNCMGR_IPM_NONE: SYNCMGR_ITEM_POLICIES = 0i32; +pub const SYNCMGR_IPM_PREVENT_DISABLE: SYNCMGR_ITEM_POLICIES = 2i32; +pub const SYNCMGR_IPM_PREVENT_ENABLE: SYNCMGR_ITEM_POLICIES = 1i32; +pub const SYNCMGR_IPM_PREVENT_START_SYNC: SYNCMGR_ITEM_POLICIES = 4i32; +pub const SYNCMGR_IPM_PREVENT_STOP_SYNC: SYNCMGR_ITEM_POLICIES = 8i32; +pub const SYNCMGR_IPM_VALID_MASK: SYNCMGR_ITEM_POLICIES = 66303i32; +pub const SYNCMGR_OBJECTID_BrowseContent: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57cbb584_e9b4_47ae_a120_c4df3335dee2); +pub const SYNCMGR_OBJECTID_ConflictStore: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd78181f4_2389_47e4_a960_60bcc2ed930b); +pub const SYNCMGR_OBJECTID_EventLinkClick: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2203bdc1_1af1_4082_8c30_28399f41384c); +pub const SYNCMGR_OBJECTID_EventStore: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4bef34b9_a786_4075_ba88_0c2b9d89a98f); +pub const SYNCMGR_OBJECTID_Icon: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6dbc85c3_5d07_4c72_a777_7fec78072c06); +pub const SYNCMGR_OBJECTID_QueryBeforeActivate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd882d80b_e7aa_49ed_86b7_e6e1f714cdfe); +pub const SYNCMGR_OBJECTID_QueryBeforeDeactivate: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa0efc282_60e0_460e_9374_ea88513cfc80); +pub const SYNCMGR_OBJECTID_QueryBeforeDelete: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf76c3397_afb3_45d7_a59f_5a49e905437e); +pub const SYNCMGR_OBJECTID_QueryBeforeDisable: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbb5f64aa_f004_4eb5_8e4d_26751966344c); +pub const SYNCMGR_OBJECTID_QueryBeforeEnable: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04cbf7f0_5beb_4de1_bc90_908345c480f6); +pub const SYNCMGR_OBJECTID_ShowSchedule: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xedc6f3e3_8441_4109_adf3_6c1ca0b7de47); +pub const SYNCMGR_PC_KEEP_MULTIPLE: SYNCMGR_PRESENTER_CHOICE = 2i32; +pub const SYNCMGR_PC_KEEP_ONE: SYNCMGR_PRESENTER_CHOICE = 1i32; +pub const SYNCMGR_PC_KEEP_RECENT: SYNCMGR_PRESENTER_CHOICE = 3i32; +pub const SYNCMGR_PC_NO_CHOICE: SYNCMGR_PRESENTER_CHOICE = 0i32; +pub const SYNCMGR_PC_REMOVE_FROM_SYNC_SET: SYNCMGR_PRESENTER_CHOICE = 4i32; +pub const SYNCMGR_PC_SKIP: SYNCMGR_PRESENTER_CHOICE = 5i32; +pub const SYNCMGR_PNS_CANCEL: SYNCMGR_PRESENTER_NEXT_STEP = 2i32; +pub const SYNCMGR_PNS_CONTINUE: SYNCMGR_PRESENTER_NEXT_STEP = 0i32; +pub const SYNCMGR_PNS_DEFAULT: SYNCMGR_PRESENTER_NEXT_STEP = 1i32; +pub const SYNCMGR_PS_CANCELED: SYNCMGR_PROGRESS_STATUS = 5i32; +pub const SYNCMGR_PS_DISCONNECTED: SYNCMGR_PROGRESS_STATUS = 6i32; +pub const SYNCMGR_PS_FAILED: SYNCMGR_PROGRESS_STATUS = 4i32; +pub const SYNCMGR_PS_MAX: SYNCMGR_PROGRESS_STATUS = 6i32; +pub const SYNCMGR_PS_SUCCEEDED: SYNCMGR_PROGRESS_STATUS = 3i32; +pub const SYNCMGR_PS_UPDATING: SYNCMGR_PROGRESS_STATUS = 1i32; +pub const SYNCMGR_PS_UPDATING_INDETERMINATE: SYNCMGR_PROGRESS_STATUS = 2i32; +pub const SYNCMGR_RA_KEEPOTHER: SYNCMGR_RESOLUTION_ABILITIES = 1i32; +pub const SYNCMGR_RA_KEEPRECENT: SYNCMGR_RESOLUTION_ABILITIES = 2i32; +pub const SYNCMGR_RA_KEEP_MULTIPLE: SYNCMGR_RESOLUTION_ABILITIES = 16i32; +pub const SYNCMGR_RA_KEEP_SINGLE: SYNCMGR_RESOLUTION_ABILITIES = 8i32; +pub const SYNCMGR_RA_REMOVEFROMSYNCSET: SYNCMGR_RESOLUTION_ABILITIES = 4i32; +pub const SYNCMGR_RA_VALID: SYNCMGR_RESOLUTION_ABILITIES = 31i32; +pub const SYNCMGR_RF_CANCEL: SYNCMGR_RESOLUTION_FEEDBACK = 2i32; +pub const SYNCMGR_RF_CONTINUE: SYNCMGR_RESOLUTION_FEEDBACK = 0i32; +pub const SYNCMGR_RF_REFRESH: SYNCMGR_RESOLUTION_FEEDBACK = 1i32; +pub const SYNCMGR_SCF_IGNORE_IF_ALREADY_SYNCING: SYNCMGR_SYNC_CONTROL_FLAGS = 1i32; +pub const SYNCMGR_SCF_NONE: SYNCMGR_SYNC_CONTROL_FLAGS = 0i32; +pub const SYNCMGR_SCF_VALID: SYNCMGR_SYNC_CONTROL_FLAGS = 1i32; +pub const SYNCMGR_UR_ADDED: SYNCMGR_UPDATE_REASON = 0i32; +pub const SYNCMGR_UR_CHANGED: SYNCMGR_UPDATE_REASON = 1i32; +pub const SYNCMGR_UR_MAX: SYNCMGR_UPDATE_REASON = 2i32; +pub const SYNCMGR_UR_REMOVED: SYNCMGR_UPDATE_REASON = 2i32; +pub const SZ_CONTENTTYPE_CDF: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("application/x-cdf"); +pub const SZ_CONTENTTYPE_CDFA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("application/x-cdf"); +pub const SZ_CONTENTTYPE_CDFW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("application/x-cdf"); +pub const SZ_CONTENTTYPE_HTML: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("text/html"); +pub const SZ_CONTENTTYPE_HTMLA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("text/html"); +pub const SZ_CONTENTTYPE_HTMLW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("text/html"); +pub const S_SYNCMGR_CANCELALL: ::windows_sys::core::HRESULT = 262660i32; +pub const S_SYNCMGR_CANCELITEM: ::windows_sys::core::HRESULT = 262659i32; +pub const S_SYNCMGR_ENUMITEMS: ::windows_sys::core::HRESULT = 262673i32; +pub const S_SYNCMGR_ITEMDELETED: ::windows_sys::core::HRESULT = 262672i32; +pub const S_SYNCMGR_MISSINGITEMS: ::windows_sys::core::HRESULT = 262657i32; +pub const S_SYNCMGR_RETRYSYNC: ::windows_sys::core::HRESULT = 262658i32; +pub const ScheduledTasks: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd6277990_4c6a_11cf_8d87_00aa0060f5bf); +pub const SearchFolderItemFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x14010e02_bbbd_41f0_88e3_eda371216584); +pub const SelectedItemCount_Property_GUID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8fe316d2_0e52_460a_9c1e_48f273d470a3); +pub const SharedBitmap: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4db26476_6787_4046_b836_e8412a9e8a27); +pub const SharingConfigurationManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49f371e1_8c5c_4d9c_9a3b_54a6827f513c); +pub const Shell: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13709620_c279_11ce_a49e_444553540000); +pub const ShellBrowserWindow: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc08afd90_f2a1_11d1_8455_00a0c91f3880); +pub const ShellDesktop: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00021400_0000_0000_c000_000000000046); +pub const ShellDispatchInproc: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0a89a860_d7b1_11ce_8350_444553540000); +pub const ShellFSFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf3364ba0_65b9_11ce_a9ba_00aa004ae837); +pub const ShellFolderItem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2fe352ea_fd1f_11d2_b1f4_00c04f8eeb3e); +pub const ShellFolderView: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x62112aa1_ebe4_11cf_a5fb_0020afe7292d); +pub const ShellFolderViewOC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9ba05971_f6a8_11cf_a442_00a0c90a8f39); +pub const ShellImageDataFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x66e4e4fb_f385_4dd0_8d74_a2efd1bc6178); +pub const ShellItem: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9ac9fbe1_e0a2_4ad6_b4ee_e212013ea917); +pub const ShellLibrary: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd9b3211d_e57f_4426_aaef_30a806add397); +pub const ShellLink: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00021401_0000_0000_c000_000000000046); +pub const ShellLinkObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x11219420_1768_11d1_95be_00609797ea4f); +pub const ShellNameSpace: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x55136805_b2de_11d1_b9f2_00a0c98bc547); +pub const ShellUIHelper: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x64ab4bb7_111e_11d1_8f79_00c04fc2fbe1); +pub const ShellWindows: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9ba05972_f6a8_11cf_a442_00a0c90a8f39); +pub const ShowInputPaneAnimationCoordinator: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1f046abf_3202_4dc1_8cb5_3c67617ce1fa); +pub const SimpleConflictPresenter: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7a0f6ab7_ed84_46b6_b47e_02aa159a152b); +pub const SizeCategorizer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x55d7b852_f6d1_42f2_aa75_8728a1b2d264); +pub const SmartcardCredentialProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8fd7e19c_3bf7_489b_a72c_846ab3678c96); +pub const SmartcardPinProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x94596c7e_3744_41ce_893e_bbf09122f76a); +pub const SmartcardReaderSelectionProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1b283861_754f_4022_ad47_a5eaaa618894); +pub const SmartcardWinRTProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1ee7337f_85ac_45e2_a23c_37c753209769); +pub const StartMenuPin: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa2a9545d_a0c2_42b4_9708_a0b2badd77c8); +pub const StorageProviderBanners: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7ccdf9f4_e576_455a_8bc7_f6ec68d6f063); +pub const SuspensionDependencyManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6b273fc5_61fd_4918_95a2_c3b5e9d7f581); +pub const SyncMgr: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6295df27_35ee_11d1_8707_00c04fd93327); +pub const SyncMgrClient: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1202db60_1dac_42c5_aed5_1abdd432248e); +pub const SyncMgrControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1a1f4206_0688_4e7f_be03_d82ec69df9a5); +pub const SyncMgrFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9c73f5e5_7ae7_4e32_a8e8_8d23b85255bf); +pub const SyncMgrScheduleWizard: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8d8b8e30_c451_421b_8553_d2976afa648c); +pub const SyncResultsFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x71d99464_3b6b_475c_b241_e15883207529); +pub const SyncSetupFolder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2e9e59c0_b437_4981_a647_9c34b9b90891); +pub const TBIF_APPEND: u32 = 0u32; +pub const TBIF_DEFAULT: u32 = 0u32; +pub const TBIF_INTERNETBAR: u32 = 65536u32; +pub const TBIF_NOTOOLBAR: u32 = 196608u32; +pub const TBIF_PREPEND: u32 = 1u32; +pub const TBIF_REPLACE: u32 = 2u32; +pub const TBIF_STANDARDTOOLBAR: u32 = 131072u32; +pub const TBPF_ERROR: TBPFLAG = 4i32; +pub const TBPF_INDETERMINATE: TBPFLAG = 1i32; +pub const TBPF_NOPROGRESS: TBPFLAG = 0i32; +pub const TBPF_NORMAL: TBPFLAG = 2i32; +pub const TBPF_PAUSED: TBPFLAG = 8i32; +pub const THBF_DISABLED: THUMBBUTTONFLAGS = 1i32; +pub const THBF_DISMISSONCLICK: THUMBBUTTONFLAGS = 2i32; +pub const THBF_ENABLED: THUMBBUTTONFLAGS = 0i32; +pub const THBF_HIDDEN: THUMBBUTTONFLAGS = 8i32; +pub const THBF_NOBACKGROUND: THUMBBUTTONFLAGS = 4i32; +pub const THBF_NONINTERACTIVE: THUMBBUTTONFLAGS = 16i32; +pub const THBN_CLICKED: u32 = 6144u32; +pub const THB_BITMAP: THUMBBUTTONMASK = 1i32; +pub const THB_FLAGS: THUMBBUTTONMASK = 8i32; +pub const THB_ICON: THUMBBUTTONMASK = 2i32; +pub const THB_TOOLTIP: THUMBBUTTONMASK = 4i32; +pub const TITLEBARNAMELEN: u32 = 40u32; +pub const TI_BITMAP: TI_FLAGS = 1i32; +pub const TI_JPEG: TI_FLAGS = 2i32; +pub const TLEF_ABSOLUTE: TLENUMF = 49i32; +pub const TLEF_EXCLUDE_ABOUT_PAGES: TLENUMF = 256i32; +pub const TLEF_EXCLUDE_SUBFRAME_ENTRIES: TLENUMF = 128i32; +pub const TLEF_INCLUDE_UNINVOKEABLE: TLENUMF = 64i32; +pub const TLEF_RELATIVE_BACK: TLENUMF = 16i32; +pub const TLEF_RELATIVE_FORE: TLENUMF = 32i32; +pub const TLEF_RELATIVE_INCLUDE_CURRENT: TLENUMF = 1i32; +pub const TLMENUF_BACK: u32 = 16u32; +pub const TLMENUF_FORE: u32 = 32u32; +pub const TLMENUF_INCLUDECURRENT: u32 = 1u32; +pub const TLOG_BACK: i32 = -1i32; +pub const TLOG_CURRENT: u32 = 0u32; +pub const TLOG_FORE: u32 = 1u32; +pub const TRANSLATEURL_FL_GUESS_PROTOCOL: TRANSLATEURL_IN_FLAGS = 1i32; +pub const TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL: TRANSLATEURL_IN_FLAGS = 2i32; +pub const TSF_ALLOW_DECRYPTION: _TRANSFER_SOURCE_FLAGS = 4i32; +pub const TSF_COPY_CREATION_TIME: _TRANSFER_SOURCE_FLAGS = 16i32; +pub const TSF_COPY_HARD_LINK: _TRANSFER_SOURCE_FLAGS = 256i32; +pub const TSF_COPY_LOCALIZED_NAME: _TRANSFER_SOURCE_FLAGS = 512i32; +pub const TSF_COPY_WRITE_TIME: _TRANSFER_SOURCE_FLAGS = 32i32; +pub const TSF_DELETE_RECYCLE_IF_POSSIBLE: _TRANSFER_SOURCE_FLAGS = 128i32; +pub const TSF_FAIL_EXIST: _TRANSFER_SOURCE_FLAGS = 0i32; +pub const TSF_MOVE_AS_COPY_DELETE: _TRANSFER_SOURCE_FLAGS = 1024i32; +pub const TSF_NORMAL: _TRANSFER_SOURCE_FLAGS = 0i32; +pub const TSF_NO_SECURITY: _TRANSFER_SOURCE_FLAGS = 8i32; +pub const TSF_OVERWRITE_EXIST: _TRANSFER_SOURCE_FLAGS = 2i32; +pub const TSF_RENAME_EXIST: _TRANSFER_SOURCE_FLAGS = 1i32; +pub const TSF_SUSPEND_SHELLEVENTS: _TRANSFER_SOURCE_FLAGS = 2048i32; +pub const TSF_USE_FULL_ACCESS: _TRANSFER_SOURCE_FLAGS = 64i32; +pub const TS_INDETERMINATE: _TRANSFER_ADVISE_STATE = 4i32; +pub const TS_NONE: _TRANSFER_ADVISE_STATE = 0i32; +pub const TS_PERFORMING: _TRANSFER_ADVISE_STATE = 1i32; +pub const TS_PREPARING: _TRANSFER_ADVISE_STATE = 2i32; +pub const TaskbarList: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x56fdf344_fd6d_11d0_958a_006097c9a090); +pub const ThumbnailStreamCache: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcbe0fed3_4b91_4e90_8354_8a8c84ec6872); +pub const TimeCategorizer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3bb4118f_ddfd_4d30_a348_9fb5d6bf1afe); +pub const TrackShellMenu: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8278f931_2a3e_11d2_838f_00c04fd918d0); +pub const TrayBandSiteService: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf60ad0a0_e5e1_45cb_b51a_e15b9f8b2934); +pub const TrayDeskBand: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe6442437_6c68_4f52_94dd_2cfed267efb9); +pub const URLASSOCDLG_FL_REGISTER_ASSOC: URLASSOCIATIONDIALOG_IN_FLAGS = 2i32; +pub const URLASSOCDLG_FL_USE_DEFAULT_NAME: URLASSOCIATIONDIALOG_IN_FLAGS = 1i32; +pub const URLIS_APPLIABLE: URLIS = 4i32; +pub const URLIS_DIRECTORY: URLIS = 5i32; +pub const URLIS_FILEURL: URLIS = 3i32; +pub const URLIS_HASQUERY: URLIS = 6i32; +pub const URLIS_NOHISTORY: URLIS = 2i32; +pub const URLIS_OPAQUE: URLIS = 1i32; +pub const URLIS_URL: URLIS = 0i32; +pub const URL_APPLY_DEFAULT: u32 = 1u32; +pub const URL_APPLY_FORCEAPPLY: u32 = 8u32; +pub const URL_APPLY_GUESSFILE: u32 = 4u32; +pub const URL_APPLY_GUESSSCHEME: u32 = 2u32; +pub const URL_BROWSER_MODE: u32 = 33554432u32; +pub const URL_CONVERT_IF_DOSPATH: u32 = 2097152u32; +pub const URL_DONT_ESCAPE_EXTRA_INFO: u32 = 33554432u32; +pub const URL_DONT_SIMPLIFY: u32 = 134217728u32; +pub const URL_DONT_UNESCAPE: u32 = 131072u32; +pub const URL_DONT_UNESCAPE_EXTRA_INFO: u32 = 33554432u32; +pub const URL_ESCAPE_ASCII_URI_COMPONENT: u32 = 524288u32; +pub const URL_ESCAPE_AS_UTF8: u32 = 262144u32; +pub const URL_ESCAPE_PERCENT: u32 = 4096u32; +pub const URL_ESCAPE_SEGMENT_ONLY: u32 = 8192u32; +pub const URL_ESCAPE_SPACES_ONLY: u32 = 67108864u32; +pub const URL_ESCAPE_UNSAFE: u32 = 536870912u32; +pub const URL_E_INVALID_SYNTAX: ::windows_sys::core::HRESULT = -2147217407i32; +pub const URL_E_UNREGISTERED_PROTOCOL: ::windows_sys::core::HRESULT = -2147217406i32; +pub const URL_FILE_USE_PATHURL: u32 = 65536u32; +pub const URL_INTERNAL_PATH: u32 = 8388608u32; +pub const URL_NO_META: u32 = 134217728u32; +pub const URL_PARTFLAG_KEEPSCHEME: u32 = 1u32; +pub const URL_PART_HOSTNAME: URL_PART = 2i32; +pub const URL_PART_NONE: URL_PART = 0i32; +pub const URL_PART_PASSWORD: URL_PART = 4i32; +pub const URL_PART_PORT: URL_PART = 5i32; +pub const URL_PART_QUERY: URL_PART = 6i32; +pub const URL_PART_SCHEME: URL_PART = 1i32; +pub const URL_PART_USERNAME: URL_PART = 3i32; +pub const URL_PLUGGABLE_PROTOCOL: u32 = 1073741824u32; +pub const URL_SCHEME_ABOUT: URL_SCHEME = 17i32; +pub const URL_SCHEME_FILE: URL_SCHEME = 9i32; +pub const URL_SCHEME_FTP: URL_SCHEME = 1i32; +pub const URL_SCHEME_GOPHER: URL_SCHEME = 3i32; +pub const URL_SCHEME_HTTP: URL_SCHEME = 2i32; +pub const URL_SCHEME_HTTPS: URL_SCHEME = 11i32; +pub const URL_SCHEME_INVALID: URL_SCHEME = -1i32; +pub const URL_SCHEME_JAVASCRIPT: URL_SCHEME = 15i32; +pub const URL_SCHEME_KNOWNFOLDER: URL_SCHEME = 26i32; +pub const URL_SCHEME_LOCAL: URL_SCHEME = 14i32; +pub const URL_SCHEME_MAILTO: URL_SCHEME = 4i32; +pub const URL_SCHEME_MAXVALUE: URL_SCHEME = 27i32; +pub const URL_SCHEME_MK: URL_SCHEME = 10i32; +pub const URL_SCHEME_MSHELP: URL_SCHEME = 21i32; +pub const URL_SCHEME_MSSHELLDEVICE: URL_SCHEME = 22i32; +pub const URL_SCHEME_MSSHELLIDLIST: URL_SCHEME = 20i32; +pub const URL_SCHEME_MSSHELLROOTED: URL_SCHEME = 19i32; +pub const URL_SCHEME_NEWS: URL_SCHEME = 5i32; +pub const URL_SCHEME_NNTP: URL_SCHEME = 6i32; +pub const URL_SCHEME_RES: URL_SCHEME = 18i32; +pub const URL_SCHEME_SEARCH: URL_SCHEME = 25i32; +pub const URL_SCHEME_SEARCH_MS: URL_SCHEME = 24i32; +pub const URL_SCHEME_SHELL: URL_SCHEME = 12i32; +pub const URL_SCHEME_SNEWS: URL_SCHEME = 13i32; +pub const URL_SCHEME_TELNET: URL_SCHEME = 7i32; +pub const URL_SCHEME_UNKNOWN: URL_SCHEME = 0i32; +pub const URL_SCHEME_VBSCRIPT: URL_SCHEME = 16i32; +pub const URL_SCHEME_WAIS: URL_SCHEME = 8i32; +pub const URL_SCHEME_WILDCARD: URL_SCHEME = 23i32; +pub const URL_UNESCAPE: u32 = 268435456u32; +pub const URL_UNESCAPE_AS_UTF8: u32 = 262144u32; +pub const URL_UNESCAPE_HIGH_ANSI_ONLY: u32 = 4194304u32; +pub const URL_UNESCAPE_INPLACE: u32 = 1048576u32; +pub const URL_UNESCAPE_URI_COMPONENT: u32 = 262144u32; +pub const URL_WININET_COMPATIBILITY: u32 = 2147483648u32; +pub const UR_MONITOR_DISCONNECT: UNDOCK_REASON = 1i32; +pub const UR_RESOLUTION_CHANGE: UNDOCK_REASON = 0i32; +pub const UserNotification: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0010890e_8789_413c_adbc_48f5b511b3af); +pub const V1PasswordCredentialProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6f45dc1e_5384_457a_bc13_2cd81b0d28ed); +pub const V1SmartcardCredentialProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8bf9a910_a8ff_457f_999f_a5ca10b4a885); +pub const V1WinBioCredentialProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xac3ac249_e820_4343_a65b_377ac634dc09); +pub const VALIDATEUNC_CONNECT: VALIDATEUNC_OPTION = 1i32; +pub const VALIDATEUNC_NOUI: VALIDATEUNC_OPTION = 2i32; +pub const VALIDATEUNC_PERSIST: VALIDATEUNC_OPTION = 8i32; +pub const VALIDATEUNC_PRINT: VALIDATEUNC_OPTION = 4i32; +pub const VALIDATEUNC_VALID: VALIDATEUNC_OPTION = 15i32; +pub const VID_Content: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30c2c434_0889_4c8d_985d_a9f71830b0a9); +pub const VID_Details: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x137e7700_3573_11cf_ae69_08002b2e1262); +pub const VID_LargeIcons: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0057d0e0_3573_11cf_ae69_08002b2e1262); +pub const VID_List: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e1fa5e0_3573_11cf_ae69_08002b2e1262); +pub const VID_SmallIcons: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x089000c0_3573_11cf_ae69_08002b2e1262); +pub const VID_ThumbStrip: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8eefa624_d1e9_445b_94b7_74fbce2ea11a); +pub const VID_Thumbnails: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8bebb290_52d0_11d0_b7f4_00c04fd706ec); +pub const VID_Tile: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65f125e5_7be1_4810_ba9d_d271c8432ce3); +pub const VIEW_PRIORITY_CACHEHIT: u32 = 80u32; +pub const VIEW_PRIORITY_CACHEMISS: u32 = 48u32; +pub const VIEW_PRIORITY_DESPERATE: u32 = 16u32; +pub const VIEW_PRIORITY_INHERIT: u32 = 32u32; +pub const VIEW_PRIORITY_NONE: u32 = 0u32; +pub const VIEW_PRIORITY_RESTRICTED: u32 = 112u32; +pub const VIEW_PRIORITY_SHELLEXT: u32 = 64u32; +pub const VIEW_PRIORITY_SHELLEXT_ASBACKUP: u32 = 21u32; +pub const VIEW_PRIORITY_STALECACHEHIT: u32 = 69u32; +pub const VIEW_PRIORITY_USEASDEFAULT: u32 = 67u32; +pub const VOLUME_PREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("\\\\?\\Volume"); +pub const VPCF_BACKGROUND: VPCOLORFLAGS = 2i32; +pub const VPCF_SORTCOLUMN: VPCOLORFLAGS = 3i32; +pub const VPCF_SUBTEXT: VPCOLORFLAGS = 4i32; +pub const VPCF_TEXT: VPCOLORFLAGS = 1i32; +pub const VPCF_TEXTBACKGROUND: VPCOLORFLAGS = 5i32; +pub const VPWF_ALPHABLEND: VPWATERMARKFLAGS = 1i32; +pub const VPWF_DEFAULT: VPWATERMARKFLAGS = 0i32; +pub const VaultProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x503739d0_4c5e_4cfd_b3ba_d881334f0df2); +pub const VirtualDesktopManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaa509086_5ca9_4c25_8f95_589d3c07b48a); +pub const WC_NETADDRESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("msctls_netaddress"); +pub const WM_CPL_LAUNCH: u32 = 2024u32; +pub const WM_CPL_LAUNCHED: u32 = 2025u32; +pub const WPSTYLE_CENTER: u32 = 0u32; +pub const WPSTYLE_CROPTOFIT: u32 = 4u32; +pub const WPSTYLE_KEEPASPECT: u32 = 3u32; +pub const WPSTYLE_MAX: u32 = 6u32; +pub const WPSTYLE_SPAN: u32 = 5u32; +pub const WPSTYLE_STRETCH: u32 = 2u32; +pub const WPSTYLE_TILE: u32 = 1u32; +pub const WTSAT_ARGB: WTS_ALPHATYPE = 2i32; +pub const WTSAT_RGB: WTS_ALPHATYPE = 1i32; +pub const WTSAT_UNKNOWN: WTS_ALPHATYPE = 0i32; +pub const WTSCF_APPSTYLE: WTS_CONTEXTFLAGS = 1i32; +pub const WTSCF_DEFAULT: WTS_CONTEXTFLAGS = 0i32; +pub const WTSCF_FAST: WTS_CONTEXTFLAGS = 8i32; +pub const WTSCF_SQUARE: WTS_CONTEXTFLAGS = 2i32; +pub const WTSCF_WIDE: WTS_CONTEXTFLAGS = 4i32; +pub const WTS_APPSTYLE: WTS_FLAGS = 8192i32; +pub const WTS_CACHED: WTS_CACHEFLAGS = 2i32; +pub const WTS_CROPTOSQUARE: WTS_FLAGS = 512i32; +pub const WTS_DEFAULT: WTS_CACHEFLAGS = 0i32; +pub const WTS_EXTRACT: WTS_FLAGS = 0i32; +pub const WTS_EXTRACTDONOTCACHE: WTS_FLAGS = 32i32; +pub const WTS_EXTRACTINPROC: WTS_FLAGS = 256i32; +pub const WTS_E_DATAFILEUNAVAILABLE: ::windows_sys::core::HRESULT = -2147175932i32; +pub const WTS_E_EXTRACTIONBLOCKED: ::windows_sys::core::HRESULT = -2147175930i32; +pub const WTS_E_EXTRACTIONPENDING: ::windows_sys::core::HRESULT = -2147175931i32; +pub const WTS_E_EXTRACTIONTIMEDOUT: ::windows_sys::core::HRESULT = -2147175935i32; +pub const WTS_E_FAILEDEXTRACTION: ::windows_sys::core::HRESULT = -2147175936i32; +pub const WTS_E_FASTEXTRACTIONNOTSUPPORTED: ::windows_sys::core::HRESULT = -2147175933i32; +pub const WTS_E_NOSTORAGEPROVIDERTHUMBNAILHANDLER: ::windows_sys::core::HRESULT = -2147175929i32; +pub const WTS_E_SURROGATEUNAVAILABLE: ::windows_sys::core::HRESULT = -2147175934i32; +pub const WTS_FASTEXTRACT: WTS_FLAGS = 2i32; +pub const WTS_FORCEEXTRACTION: WTS_FLAGS = 4i32; +pub const WTS_IDEALCACHESIZEONLY: WTS_FLAGS = 32768i32; +pub const WTS_INCACHEONLY: WTS_FLAGS = 1i32; +pub const WTS_INSTANCESURROGATE: WTS_FLAGS = 1024i32; +pub const WTS_LOWQUALITY: WTS_CACHEFLAGS = 1i32; +pub const WTS_NONE: WTS_FLAGS = 0i32; +pub const WTS_REQUIRESURROGATE: WTS_FLAGS = 2048i32; +pub const WTS_SCALETOREQUESTEDSIZE: WTS_FLAGS = 64i32; +pub const WTS_SCALEUP: WTS_FLAGS = 65536i32; +pub const WTS_SKIPFASTEXTRACT: WTS_FLAGS = 128i32; +pub const WTS_SLOWRECLAIM: WTS_FLAGS = 8i32; +pub const WTS_WIDETHUMBNAILS: WTS_FLAGS = 16384i32; +pub const WebBrowser: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8856f961_340a_11d0_a96b_00c04fd705a2); +pub const WebBrowser_V1: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xeab22ac3_30c1_11cf_a7eb_0000c05bae0b); +pub const WebWizardHost: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc827f149_55c1_4d28_935e_57e47caed973); +pub const WinBioCredentialProvider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbec09223_b018_416d_a0ac_523971b639f5); +pub const __UNUSED_RECYCLE_WAS_GLOBALCOUNTER_CSCSYNCINPROGRESS: SHGLOBALCOUNTER = 13i32; +pub const __UNUSED_RECYCLE_WAS_GLOBALCOUNTER_RECYCLEDIRTYCOUNT_SERVERDRIVE: SHGLOBALCOUNTER = 42i32; +pub const __UNUSED_RECYCLE_WAS_GLOBALCOUNTER_RECYCLEGLOBALDIRTYCOUNT: SHGLOBALCOUNTER = 43i32; +pub const idsAppName: u32 = 1007u32; +pub const idsBadOldPW: u32 = 1006u32; +pub const idsChangePW: u32 = 1005u32; +pub const idsDefKeyword: u32 = 1010u32; +pub const idsDifferentPW: u32 = 1004u32; +pub const idsHelpFile: u32 = 1009u32; +pub const idsIniFile: u32 = 1001u32; +pub const idsIsPassword: u32 = 1000u32; +pub const idsNoHelpMemory: u32 = 1008u32; +pub const idsPassword: u32 = 1003u32; +pub const idsScreenSaver: u32 = 1002u32; +pub const navAllowAutosearch: BrowserNavConstants = 16i32; +pub const navBlockRedirectsXDomain: BrowserNavConstants = 32768i32; +pub const navBrowserBar: BrowserNavConstants = 32i32; +pub const navDeferUnload: BrowserNavConstants = 262144i32; +pub const navEnforceRestricted: BrowserNavConstants = 128i32; +pub const navHomepageNavigate: BrowserNavConstants = 8388608i32; +pub const navHostNavigation: BrowserNavConstants = 33554432i32; +pub const navHyperlink: BrowserNavConstants = 64i32; +pub const navKeepWordWheelText: BrowserNavConstants = 8192i32; +pub const navNewWindowsManaged: BrowserNavConstants = 256i32; +pub const navNoHistory: BrowserNavConstants = 2i32; +pub const navNoReadFromCache: BrowserNavConstants = 4i32; +pub const navNoWriteToCache: BrowserNavConstants = 8i32; +pub const navOpenInBackgroundTab: BrowserNavConstants = 4096i32; +pub const navOpenInNewTab: BrowserNavConstants = 2048i32; +pub const navOpenInNewWindow: BrowserNavConstants = 1i32; +pub const navOpenNewForegroundTab: BrowserNavConstants = 65536i32; +pub const navRefresh: BrowserNavConstants = 16777216i32; +pub const navReserved1: BrowserNavConstants = 4194304i32; +pub const navReserved2: BrowserNavConstants = 67108864i32; +pub const navReserved3: BrowserNavConstants = 134217728i32; +pub const navReserved4: BrowserNavConstants = 268435456i32; +pub const navReserved5: BrowserNavConstants = 536870912i32; +pub const navReserved6: BrowserNavConstants = 1073741824i32; +pub const navReserved7: BrowserNavConstants = -2147483648i32; +pub const navSpeculative: BrowserNavConstants = 524288i32; +pub const navSuggestNewTab: BrowserNavConstants = 2097152i32; +pub const navSuggestNewWindow: BrowserNavConstants = 1048576i32; +pub const navTravelLogScreenshot: BrowserNavConstants = 131072i32; +pub const navTrustedForActiveX: BrowserNavConstants = 1024i32; +pub const navUntrustedForDownload: BrowserNavConstants = 512i32; +pub const navVirtualTab: BrowserNavConstants = 16384i32; +pub const secureLockIconMixed: SecureLockIconConstants = 1i32; +pub const secureLockIconSecure128Bit: SecureLockIconConstants = 6i32; +pub const secureLockIconSecure40Bit: SecureLockIconConstants = 3i32; +pub const secureLockIconSecure56Bit: SecureLockIconConstants = 4i32; +pub const secureLockIconSecureFortezza: SecureLockIconConstants = 5i32; +pub const secureLockIconSecureUnknownBits: SecureLockIconConstants = 2i32; +pub const secureLockIconUnsecure: SecureLockIconConstants = 0i32; +pub const ssfALTSTARTUP: ShellSpecialFolderConstants = 29i32; +pub const ssfAPPDATA: ShellSpecialFolderConstants = 26i32; +pub const ssfBITBUCKET: ShellSpecialFolderConstants = 10i32; +pub const ssfCOMMONALTSTARTUP: ShellSpecialFolderConstants = 30i32; +pub const ssfCOMMONAPPDATA: ShellSpecialFolderConstants = 35i32; +pub const ssfCOMMONDESKTOPDIR: ShellSpecialFolderConstants = 25i32; +pub const ssfCOMMONFAVORITES: ShellSpecialFolderConstants = 31i32; +pub const ssfCOMMONPROGRAMS: ShellSpecialFolderConstants = 23i32; +pub const ssfCOMMONSTARTMENU: ShellSpecialFolderConstants = 22i32; +pub const ssfCOMMONSTARTUP: ShellSpecialFolderConstants = 24i32; +pub const ssfCONTROLS: ShellSpecialFolderConstants = 3i32; +pub const ssfCOOKIES: ShellSpecialFolderConstants = 33i32; +pub const ssfDESKTOP: ShellSpecialFolderConstants = 0i32; +pub const ssfDESKTOPDIRECTORY: ShellSpecialFolderConstants = 16i32; +pub const ssfDRIVES: ShellSpecialFolderConstants = 17i32; +pub const ssfFAVORITES: ShellSpecialFolderConstants = 6i32; +pub const ssfFONTS: ShellSpecialFolderConstants = 20i32; +pub const ssfHISTORY: ShellSpecialFolderConstants = 34i32; +pub const ssfINTERNETCACHE: ShellSpecialFolderConstants = 32i32; +pub const ssfLOCALAPPDATA: ShellSpecialFolderConstants = 28i32; +pub const ssfMYPICTURES: ShellSpecialFolderConstants = 39i32; +pub const ssfNETHOOD: ShellSpecialFolderConstants = 19i32; +pub const ssfNETWORK: ShellSpecialFolderConstants = 18i32; +pub const ssfPERSONAL: ShellSpecialFolderConstants = 5i32; +pub const ssfPRINTERS: ShellSpecialFolderConstants = 4i32; +pub const ssfPRINTHOOD: ShellSpecialFolderConstants = 27i32; +pub const ssfPROFILE: ShellSpecialFolderConstants = 40i32; +pub const ssfPROGRAMFILES: ShellSpecialFolderConstants = 38i32; +pub const ssfPROGRAMFILESx86: ShellSpecialFolderConstants = 48i32; +pub const ssfPROGRAMS: ShellSpecialFolderConstants = 2i32; +pub const ssfRECENT: ShellSpecialFolderConstants = 8i32; +pub const ssfSENDTO: ShellSpecialFolderConstants = 9i32; +pub const ssfSTARTMENU: ShellSpecialFolderConstants = 11i32; +pub const ssfSTARTUP: ShellSpecialFolderConstants = 7i32; +pub const ssfSYSTEM: ShellSpecialFolderConstants = 37i32; +pub const ssfSYSTEMx86: ShellSpecialFolderConstants = 41i32; +pub const ssfTEMPLATES: ShellSpecialFolderConstants = 21i32; +pub const ssfWINDOWS: ShellSpecialFolderConstants = 36i32; +pub type ACENUMOPTION = i32; +pub type ACTIVATEOPTIONS = i32; +pub type ADJACENT_DISPLAY_EDGES = i32; +pub type AHE_TYPE = i32; +pub type AHTYPE = i32; +pub type APPACTIONFLAGS = i32; +pub type APPDOCLISTTYPE = i32; +pub type APPINFODATAFLAGS = i32; +pub type APPLICATION_VIEW_MIN_WIDTH = i32; +pub type APPLICATION_VIEW_ORIENTATION = i32; +pub type APPLICATION_VIEW_SIZE_PREFERENCE = i32; +pub type APPLICATION_VIEW_STATE = i32; +pub type ASSOCCLASS = i32; +pub type ASSOCDATA = i32; +pub type ASSOCENUM = i32; +pub type ASSOCF = u32; +pub type ASSOCIATIONLEVEL = i32; +pub type ASSOCIATIONTYPE = i32; +pub type ASSOCKEY = i32; +pub type ASSOCSTR = i32; +pub type ASSOC_FILTER = i32; +pub type ATTACHMENT_ACTION = i32; +pub type ATTACHMENT_PROMPT = i32; +pub type AUTOCOMPLETELISTOPTIONS = i32; +pub type AUTOCOMPLETEOPTIONS = i32; +pub type BANDSITECID = i32; +pub type BANNER_NOTIFICATION_EVENT = i32; +pub type BNSTATE = i32; +pub type BrowserNavConstants = i32; +pub type CATEGORYINFO_FLAGS = i32; +pub type CATSORT_FLAGS = i32; +pub type CDBURNINGEXTENSIONRET = i32; +pub type CDCONTROLSTATEF = i32; +pub type CM_ENUM_FLAGS = i32; +pub type CM_MASK = i32; +pub type CM_SET_WIDTH_VALUE = i32; +pub type CM_STATE = i32; +pub type CPVIEW = i32; +pub type CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS = i32; +pub type CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS = i32; +pub type CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE = i32; +pub type CREDENTIAL_PROVIDER_FIELD_STATE = i32; +pub type CREDENTIAL_PROVIDER_FIELD_TYPE = i32; +pub type CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE = i32; +pub type CREDENTIAL_PROVIDER_STATUS_ICON = i32; +pub type CREDENTIAL_PROVIDER_USAGE_SCENARIO = i32; +pub type CommandStateChangeConstants = i32; +pub type DATAOBJ_GET_ITEM_FLAGS = i32; +pub type DEFAULTSAVEFOLDERTYPE = i32; +pub type DEFAULT_FOLDER_MENU_RESTRICTIONS = i32; +pub type DEF_SHARE_ID = i32; +pub type DESKBANDCID = i32; +pub type DESKTOP_SLIDESHOW_DIRECTION = i32; +pub type DESKTOP_SLIDESHOW_OPTIONS = i32; +pub type DESKTOP_SLIDESHOW_STATE = i32; +pub type DESKTOP_WALLPAPER_POSITION = i32; +pub type DFM_CMD = i32; +pub type DFM_MESSAGE_ID = i32; +pub type DISPLAY_DEVICE_TYPE = i32; +pub type DROPIMAGETYPE = i32; +pub type DSH_FLAGS = i32; +pub type EC_HOST_UI_MODE = i32; +pub type EDGE_GESTURE_KIND = i32; +pub type EXPLORER_BROWSER_FILL_FLAGS = i32; +pub type EXPLORER_BROWSER_OPTIONS = i32; +pub type FDAP = i32; +pub type FDE_OVERWRITE_RESPONSE = i32; +pub type FDE_SHAREVIOLATION_RESPONSE = i32; +pub type FD_FLAGS = i32; +pub type FFFP_MODE = i32; +pub type FILEOPENDIALOGOPTIONS = u32; +pub type FILEOPERATION_FLAGS = u32; +pub type FILETYPEATTRIBUTEFLAGS = i32; +pub type FILE_OPERATION_FLAGS2 = i32; +pub type FILE_USAGE_TYPE = i32; +pub type FLYOUT_PLACEMENT = i32; +pub type FOLDERFLAGS = i32; +pub type FOLDERLOGICALVIEWMODE = i32; +pub type FOLDERVIEWMODE = i32; +pub type FOLDERVIEWOPTIONS = i32; +pub type FOLDER_ENUM_MODE = i32; +pub type FVTEXTTYPE = i32; +pub type GPFIDL_FLAGS = u32; +pub type HELP_INFO_TYPE = i32; +pub type HLBWIF_FLAGS = i32; +pub type HLFNAMEF = i32; +pub type HLID_INFO = u32; +pub type HLINKGETREF = i32; +pub type HLINKMISC = i32; +pub type HLINKSETF = i32; +pub type HLINKWHICHMK = i32; +pub type HLNF = u32; +pub type HLQF_INFO = i32; +pub type HLSHORTCUTF = i32; +pub type HLSR = i32; +pub type HLTB_INFO = i32; +pub type HLTRANSLATEF = i32; +pub type HOMEGROUPSHARINGCHOICES = i32; +pub type IEPDNFLAGS = i32; +pub type IESHORTCUTFLAGS = i32; +pub type IURL_INVOKECOMMAND_FLAGS = i32; +pub type IURL_SETURL_FLAGS = i32; +pub type KF_CATEGORY = i32; +pub type KNOWNDESTCATEGORY = i32; +pub type KNOWN_FOLDER_FLAG = i32; +pub type LIBRARYFOLDERFILTER = i32; +pub type LIBRARYMANAGEDIALOGOPTIONS = i32; +pub type LIBRARYOPTIONFLAGS = i32; +pub type LIBRARYSAVEFLAGS = i32; +pub type MENUBANDHANDLERCID = i32; +pub type MENUPOPUPPOPUPFLAGS = i32; +pub type MENUPOPUPSELECT = i32; +pub type MERGE_UPDATE_STATUS = i32; +pub type MIMEASSOCIATIONDIALOG_IN_FLAGS = i32; +pub type MM_FLAGS = u32; +pub type MONITOR_APP_VISIBILITY = i32; +pub type NAMESPACEWALKFLAG = i32; +pub type NATIVE_DISPLAY_ORIENTATION = i32; +pub type NOTIFY_ICON_DATA_FLAGS = u32; +pub type NOTIFY_ICON_INFOTIP_FLAGS = u32; +pub type NOTIFY_ICON_MESSAGE = u32; +pub type NOTIFY_ICON_STATE = u32; +pub type NSTCFOLDERCAPABILITIES = i32; +pub type NSTCGNI = i32; +pub type NSTCSTYLE2 = i32; +pub type NWMF = i32; +pub type NewProcessCauseConstants = i32; +pub type OPEN_AS_INFO_FLAGS = i32; +pub type OS = u32; +pub type OfflineFolderStatus = i32; +pub type PACKAGE_EXECUTION_STATE = i32; +pub type PATHCCH_OPTIONS = u32; +pub type PCS_RET = u32; +pub type PIDISF_FLAGS = i32; +pub type PIDISM_OPTIONS = i32; +pub type PIDISR_INFO = i32; +pub type PID_INTSITE = i32; +pub type PID_IS = i32; +pub type PRF_FLAGS = i32; +pub type PUBAPPINFOFLAGS = i32; +pub type QITIPF_FLAGS = i32; +pub type QUERY_USER_NOTIFICATION_STATE = i32; +pub type RESTRICTIONS = i32; +pub type RefreshConstants = i32; +pub type SCALE_CHANGE_FLAGS = i32; +pub type SCNRT_STATUS = i32; +pub type SECURELOCKCODE = i32; +pub type SFBS_FLAGS = i32; +pub type SFVM_MESSAGE_ID = i32; +pub type SFVS_SELECT = i32; +pub type SHARD = i32; +pub type SHARE_ROLE = i32; +pub type SHCNE_ID = u32; +pub type SHCNF_FLAGS = u32; +pub type SHCNRF_SOURCE = i32; +pub type SHDID_ID = i32; +pub type SHELLBROWSERSHOWCONTROL = i32; +pub type SHELL_AUTOCOMPLETE_FLAGS = u32; +pub type SHELL_LINK_DATA_FLAGS = i32; +pub type SHELL_UI_COMPONENT = i32; +pub type SHFMT_ID = u32; +pub type SHFMT_OPT = i32; +pub type SHFMT_RET = u32; +pub type SHGDFIL_FORMAT = i32; +pub type SHGDNF = u32; +pub type SHGFI_FLAGS = u32; +pub type SHGFP_TYPE = i32; +pub type SHGLOBALCOUNTER = i32; +pub type SHGSI_FLAGS = u32; +pub type SHOP_TYPE = i32; +pub type SHREGDEL_FLAGS = i32; +pub type SHREGENUM_FLAGS = i32; +pub type SHSTOCKICONID = i32; +pub type SIATTRIBFLAGS = i32; +pub type SIGDN = i32; +pub type SIIGBF = i32; +pub type SLGP_FLAGS = i32; +pub type SLR_FLAGS = i32; +pub type SMINFOFLAGS = i32; +pub type SMINFOMASK = i32; +pub type SMINFOTYPE = i32; +pub type SORTDIRECTION = i32; +pub type SORT_ORDER_TYPE = i32; +pub type SPACTION = i32; +pub type SPTEXT = i32; +pub type SSF_MASK = u32; +pub type STGOP = i32; +pub type STORAGE_PROVIDER_FILE_FLAGS = i32; +pub type STPFLAG = i32; +pub type SVUIA_STATUS = i32; +pub type SYNCMGRERRORFLAGS = i32; +pub type SYNCMGRFLAG = i32; +pub type SYNCMGRHANDLERFLAGS = i32; +pub type SYNCMGRINVOKEFLAGS = i32; +pub type SYNCMGRITEMFLAGS = i32; +pub type SYNCMGRITEMSTATE = i32; +pub type SYNCMGRLOGLEVEL = i32; +pub type SYNCMGRREGISTERFLAGS = i32; +pub type SYNCMGRSTATUS = i32; +pub type SYNCMGR_CANCEL_REQUEST = i32; +pub type SYNCMGR_CONFLICT_ITEM_TYPE = i32; +pub type SYNCMGR_CONTROL_FLAGS = i32; +pub type SYNCMGR_EVENT_FLAGS = i32; +pub type SYNCMGR_EVENT_LEVEL = i32; +pub type SYNCMGR_HANDLER_CAPABILITIES = i32; +pub type SYNCMGR_HANDLER_POLICIES = i32; +pub type SYNCMGR_HANDLER_TYPE = i32; +pub type SYNCMGR_ITEM_CAPABILITIES = i32; +pub type SYNCMGR_ITEM_POLICIES = i32; +pub type SYNCMGR_PRESENTER_CHOICE = i32; +pub type SYNCMGR_PRESENTER_NEXT_STEP = i32; +pub type SYNCMGR_PROGRESS_STATUS = i32; +pub type SYNCMGR_RESOLUTION_ABILITIES = i32; +pub type SYNCMGR_RESOLUTION_FEEDBACK = i32; +pub type SYNCMGR_SYNC_CONTROL_FLAGS = i32; +pub type SYNCMGR_UPDATE_REASON = i32; +pub type SecureLockIconConstants = i32; +pub type ShellFolderViewOptions = i32; +pub type ShellSpecialFolderConstants = i32; +pub type ShellWindowFindWindowOptions = i32; +pub type ShellWindowTypeConstants = i32; +pub type TBPFLAG = i32; +pub type THUMBBUTTONFLAGS = i32; +pub type THUMBBUTTONMASK = i32; +pub type TI_FLAGS = i32; +pub type TLENUMF = i32; +pub type TRANSLATEURL_IN_FLAGS = i32; +pub type ThumbnailStreamCacheOptions = i32; +pub type UNDOCK_REASON = i32; +pub type URLASSOCIATIONDIALOG_IN_FLAGS = i32; +pub type URLIS = i32; +pub type URL_PART = i32; +pub type URL_SCHEME = i32; +pub type VALIDATEUNC_OPTION = i32; +pub type VPCOLORFLAGS = i32; +pub type VPWATERMARKFLAGS = i32; +pub type WTS_ALPHATYPE = i32; +pub type WTS_CACHEFLAGS = i32; +pub type WTS_CONTEXTFLAGS = i32; +pub type WTS_FLAGS = i32; +pub type _BROWSERFRAMEOPTIONS = i32; +pub type _CDBE_ACTIONS = i32; +pub type _EXPCMDFLAGS = i32; +pub type _EXPCMDSTATE = i32; +pub type _EXPLORERPANESTATE = i32; +pub type _EXPPS = i32; +pub type _KF_DEFINITION_FLAGS = i32; +pub type _KF_REDIRECTION_CAPABILITIES = i32; +pub type _KF_REDIRECT_FLAGS = i32; +pub type _NMCII_FLAGS = i32; +pub type _NMCSAEI_FLAGS = i32; +pub type _NSTCECLICKTYPE = i32; +pub type _NSTCEHITTEST = i32; +pub type _NSTCITEMSTATE = i32; +pub type _NSTCROOTSTYLE = i32; +pub type _NSTCSTYLE = i32; +pub type _OPPROGDLGF = i32; +pub type _PDMODE = i32; +pub type _SHCONTF = i32; +pub type _SICHINTF = i32; +pub type _SPBEGINF = i32; +pub type _SPINITF = i32; +pub type _SV3CVW3_FLAGS = i32; +pub type _SVGIO = i32; +pub type _SVSIF = i32; +pub type _TRANSFER_ADVISE_STATE = i32; +pub type _TRANSFER_SOURCE_FLAGS = i32; +#[repr(C)] +pub struct AASHELLMENUFILENAME { + pub cbTotal: i16, + pub rgbReserved: [u8; 12], + pub szFileName: [u16; 1], +} +impl ::core::marker::Copy for AASHELLMENUFILENAME {} +impl ::core::clone::Clone for AASHELLMENUFILENAME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct AASHELLMENUITEM { + pub lpReserved1: *mut ::core::ffi::c_void, + pub iReserved: i32, + pub uiReserved: u32, + pub lpName: *mut AASHELLMENUFILENAME, + pub psz: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for AASHELLMENUITEM {} +impl ::core::clone::Clone for AASHELLMENUITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct APPBARDATA { + pub cbSize: u32, + pub hWnd: super::super::Foundation::HWND, + pub uCallbackMessage: u32, + pub uEdge: u32, + pub rc: super::super::Foundation::RECT, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for APPBARDATA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for APPBARDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct APPBARDATA { + pub cbSize: u32, + pub hWnd: super::super::Foundation::HWND, + pub uCallbackMessage: u32, + pub uEdge: u32, + pub rc: super::super::Foundation::RECT, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for APPBARDATA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for APPBARDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct APPCATEGORYINFO { + pub Locale: u32, + pub pszDescription: ::windows_sys::core::PWSTR, + pub AppCategoryId: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for APPCATEGORYINFO {} +impl ::core::clone::Clone for APPCATEGORYINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct APPCATEGORYINFOLIST { + pub cCategory: u32, + pub pCategoryInfo: *mut APPCATEGORYINFO, +} +impl ::core::marker::Copy for APPCATEGORYINFOLIST {} +impl ::core::clone::Clone for APPCATEGORYINFOLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct APPINFODATA { + pub cbSize: u32, + pub dwMask: u32, + pub pszDisplayName: ::windows_sys::core::PWSTR, + pub pszVersion: ::windows_sys::core::PWSTR, + pub pszPublisher: ::windows_sys::core::PWSTR, + pub pszProductID: ::windows_sys::core::PWSTR, + pub pszRegisteredOwner: ::windows_sys::core::PWSTR, + pub pszRegisteredCompany: ::windows_sys::core::PWSTR, + pub pszLanguage: ::windows_sys::core::PWSTR, + pub pszSupportUrl: ::windows_sys::core::PWSTR, + pub pszSupportTelephone: ::windows_sys::core::PWSTR, + pub pszHelpLink: ::windows_sys::core::PWSTR, + pub pszInstallLocation: ::windows_sys::core::PWSTR, + pub pszInstallSource: ::windows_sys::core::PWSTR, + pub pszInstallDate: ::windows_sys::core::PWSTR, + pub pszContact: ::windows_sys::core::PWSTR, + pub pszComments: ::windows_sys::core::PWSTR, + pub pszImage: ::windows_sys::core::PWSTR, + pub pszReadmeUrl: ::windows_sys::core::PWSTR, + pub pszUpdateInfoUrl: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for APPINFODATA {} +impl ::core::clone::Clone for APPINFODATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Registry")] +pub struct ASSOCIATIONELEMENT { + pub ac: ASSOCCLASS, + pub hkClass: super::super::System::Registry::HKEY, + pub pszClass: ::windows_sys::core::PCWSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Registry")] +impl ::core::marker::Copy for ASSOCIATIONELEMENT {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_System_Registry")] +impl ::core::clone::Clone for ASSOCIATIONELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Registry\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Registry")] +pub struct ASSOCIATIONELEMENT { + pub ac: ASSOCCLASS, + pub hkClass: super::super::System::Registry::HKEY, + pub pszClass: ::windows_sys::core::PCWSTR, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Registry")] +impl ::core::marker::Copy for ASSOCIATIONELEMENT {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_System_Registry")] +impl ::core::clone::Clone for ASSOCIATIONELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AUTO_SCROLL_DATA { + pub iNextSample: i32, + pub dwLastScroll: u32, + pub bFull: super::super::Foundation::BOOL, + pub pts: [super::super::Foundation::POINT; 3], + pub dwTimes: [u32; 3], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AUTO_SCROLL_DATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AUTO_SCROLL_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +pub struct BANDINFOSFB { + pub dwMask: u32, + pub dwStateMask: u32, + pub dwState: u32, + pub crBkgnd: super::super::Foundation::COLORREF, + pub crBtnLt: super::super::Foundation::COLORREF, + pub crBtnDk: super::super::Foundation::COLORREF, + pub wViewMode: u16, + pub wAlign: u16, + pub psf: IShellFolder, + pub pidl: *mut Common::ITEMIDLIST, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +impl ::core::marker::Copy for BANDINFOSFB {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +impl ::core::clone::Clone for BANDINFOSFB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BANDSITEINFO { + pub dwMask: u32, + pub dwState: u32, + pub dwStyle: u32, +} +impl ::core::marker::Copy for BANDSITEINFO {} +impl ::core::clone::Clone for BANDSITEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct BANNER_NOTIFICATION { + pub event: BANNER_NOTIFICATION_EVENT, + pub providerIdentity: ::windows_sys::core::PCWSTR, + pub contentId: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for BANNER_NOTIFICATION {} +impl ::core::clone::Clone for BANNER_NOTIFICATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Shell_Common\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))] +pub struct BASEBROWSERDATALH { + pub _hwnd: super::super::Foundation::HWND, + pub _ptl: ITravelLog, + pub _phlf: IHlinkFrame, + pub _pautoWB2: IWebBrowser2, + pub _pautoEDS: IExpDispSupport, + pub _pautoSS: IShellService, + pub _eSecureLockIcon: i32, + pub _bitfield: u32, + pub _uActivateState: u32, + pub _pidlViewState: *mut Common::ITEMIDLIST, + pub _pctView: super::super::System::Ole::IOleCommandTarget, + pub _pidlCur: *mut Common::ITEMIDLIST, + pub _psv: IShellView, + pub _psf: IShellFolder, + pub _hwndView: super::super::Foundation::HWND, + pub _pszTitleCur: ::windows_sys::core::PWSTR, + pub _pidlPending: *mut Common::ITEMIDLIST, + pub _psvPending: IShellView, + pub _psfPending: IShellFolder, + pub _hwndViewPending: super::super::Foundation::HWND, + pub _pszTitlePending: ::windows_sys::core::PWSTR, + pub _fIsViewMSHTML: super::super::Foundation::BOOL, + pub _fPrivacyImpacted: super::super::Foundation::BOOL, + pub _clsidView: ::windows_sys::core::GUID, + pub _clsidViewPending: ::windows_sys::core::GUID, + pub _hwndFrame: super::super::Foundation::HWND, + pub _lPhishingFilterStatus: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))] +impl ::core::marker::Copy for BASEBROWSERDATALH {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))] +impl ::core::clone::Clone for BASEBROWSERDATALH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Shell_Common\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))] +pub struct BASEBROWSERDATAXP { + pub _hwnd: super::super::Foundation::HWND, + pub _ptl: ITravelLog, + pub _phlf: IHlinkFrame, + pub _pautoWB2: IWebBrowser2, + pub _pautoEDS: IExpDispSupportXP, + pub _pautoSS: IShellService, + pub _eSecureLockIcon: i32, + pub _bitfield: u32, + pub _uActivateState: u32, + pub _pidlViewState: *mut Common::ITEMIDLIST, + pub _pctView: super::super::System::Ole::IOleCommandTarget, + pub _pidlCur: *mut Common::ITEMIDLIST, + pub _psv: IShellView, + pub _psf: IShellFolder, + pub _hwndView: super::super::Foundation::HWND, + pub _pszTitleCur: ::windows_sys::core::PWSTR, + pub _pidlPending: *mut Common::ITEMIDLIST, + pub _psvPending: IShellView, + pub _psfPending: IShellFolder, + pub _hwndViewPending: super::super::Foundation::HWND, + pub _pszTitlePending: ::windows_sys::core::PWSTR, + pub _fIsViewMSHTML: super::super::Foundation::BOOL, + pub _fPrivacyImpacted: super::super::Foundation::BOOL, + pub _clsidView: ::windows_sys::core::GUID, + pub _clsidViewPending: ::windows_sys::core::GUID, + pub _hwndFrame: super::super::Foundation::HWND, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))] +impl ::core::marker::Copy for BASEBROWSERDATAXP {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))] +impl ::core::clone::Clone for BASEBROWSERDATAXP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +pub struct BROWSEINFOA { + pub hwndOwner: super::super::Foundation::HWND, + pub pidlRoot: *mut Common::ITEMIDLIST, + pub pszDisplayName: ::windows_sys::core::PSTR, + pub lpszTitle: ::windows_sys::core::PCSTR, + pub ulFlags: u32, + pub lpfn: BFFCALLBACK, + pub lParam: super::super::Foundation::LPARAM, + pub iImage: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +impl ::core::marker::Copy for BROWSEINFOA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +impl ::core::clone::Clone for BROWSEINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +pub struct BROWSEINFOW { + pub hwndOwner: super::super::Foundation::HWND, + pub pidlRoot: *mut Common::ITEMIDLIST, + pub pszDisplayName: ::windows_sys::core::PWSTR, + pub lpszTitle: ::windows_sys::core::PCWSTR, + pub ulFlags: u32, + pub lpfn: BFFCALLBACK, + pub lParam: super::super::Foundation::LPARAM, + pub iImage: i32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +impl ::core::marker::Copy for BROWSEINFOW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +impl ::core::clone::Clone for BROWSEINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CABINETSTATE { + pub cLength: u16, + pub nVersion: u16, + pub _bitfield: i32, + pub fMenuEnumFilter: u32, +} +impl ::core::marker::Copy for CABINETSTATE {} +impl ::core::clone::Clone for CABINETSTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CATEGORY_INFO { + pub cif: CATEGORYINFO_FLAGS, + pub wszName: [u16; 260], +} +impl ::core::marker::Copy for CATEGORY_INFO {} +impl ::core::clone::Clone for CATEGORY_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CIDA { + pub cidl: u32, + pub aoffset: [u32; 1], +} +impl ::core::marker::Copy for CIDA {} +impl ::core::clone::Clone for CIDA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMINVOKECOMMANDINFO { + pub cbSize: u32, + pub fMask: u32, + pub hwnd: super::super::Foundation::HWND, + pub lpVerb: ::windows_sys::core::PCSTR, + pub lpParameters: ::windows_sys::core::PCSTR, + pub lpDirectory: ::windows_sys::core::PCSTR, + pub nShow: i32, + pub dwHotKey: u32, + pub hIcon: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMINVOKECOMMANDINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMINVOKECOMMANDINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMINVOKECOMMANDINFOEX { + pub cbSize: u32, + pub fMask: u32, + pub hwnd: super::super::Foundation::HWND, + pub lpVerb: ::windows_sys::core::PCSTR, + pub lpParameters: ::windows_sys::core::PCSTR, + pub lpDirectory: ::windows_sys::core::PCSTR, + pub nShow: i32, + pub dwHotKey: u32, + pub hIcon: super::super::Foundation::HANDLE, + pub lpTitle: ::windows_sys::core::PCSTR, + pub lpVerbW: ::windows_sys::core::PCWSTR, + pub lpParametersW: ::windows_sys::core::PCWSTR, + pub lpDirectoryW: ::windows_sys::core::PCWSTR, + pub lpTitleW: ::windows_sys::core::PCWSTR, + pub ptInvoke: super::super::Foundation::POINT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMINVOKECOMMANDINFOEX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMINVOKECOMMANDINFOEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CMINVOKECOMMANDINFOEX_REMOTE { + pub cbSize: u32, + pub fMask: u32, + pub hwnd: super::super::Foundation::HWND, + pub lpVerbString: ::windows_sys::core::PCSTR, + pub lpParameters: ::windows_sys::core::PCSTR, + pub lpDirectory: ::windows_sys::core::PCSTR, + pub nShow: i32, + pub dwHotKey: u32, + pub lpTitle: ::windows_sys::core::PCSTR, + pub lpVerbWString: ::windows_sys::core::PCWSTR, + pub lpParametersW: ::windows_sys::core::PCWSTR, + pub lpDirectoryW: ::windows_sys::core::PCWSTR, + pub lpTitleW: ::windows_sys::core::PCWSTR, + pub ptInvoke: super::super::Foundation::POINT, + pub lpVerbInt: u32, + pub lpVerbWInt: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CMINVOKECOMMANDINFOEX_REMOTE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CMINVOKECOMMANDINFOEX_REMOTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CM_COLUMNINFO { + pub cbSize: u32, + pub dwMask: u32, + pub dwState: u32, + pub uWidth: u32, + pub uDefaultWidth: u32, + pub uIdealWidth: u32, + pub wszName: [u16; 80], +} +impl ::core::marker::Copy for CM_COLUMNINFO {} +impl ::core::clone::Clone for CM_COLUMNINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONFIRM_CONFLICT_ITEM { + pub pShellItem: IShellItem2, + pub pszOriginalName: ::windows_sys::core::PWSTR, + pub pszAlternateName: ::windows_sys::core::PWSTR, + pub pszLocationShort: ::windows_sys::core::PWSTR, + pub pszLocationFull: ::windows_sys::core::PWSTR, + pub nType: SYNCMGR_CONFLICT_ITEM_TYPE, +} +impl ::core::marker::Copy for CONFIRM_CONFLICT_ITEM {} +impl ::core::clone::Clone for CONFIRM_CONFLICT_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CONFIRM_CONFLICT_RESULT_INFO { + pub pszNewName: ::windows_sys::core::PWSTR, + pub iItemIndex: u32, +} +impl ::core::marker::Copy for CONFIRM_CONFLICT_RESULT_INFO {} +impl ::core::clone::Clone for CONFIRM_CONFLICT_RESULT_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct CPLINFO { + pub idIcon: i32, + pub idName: i32, + pub idInfo: i32, + pub lData: isize, +} +impl ::core::marker::Copy for CPLINFO {} +impl ::core::clone::Clone for CPLINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION { + pub ulAuthenticationPackage: u32, + pub clsidCredentialProvider: ::windows_sys::core::GUID, + pub cbSerialization: u32, + pub rgbSerialization: *mut u8, +} +impl ::core::marker::Copy for CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION {} +impl ::core::clone::Clone for CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR { + pub dwFieldID: u32, + pub cpft: CREDENTIAL_PROVIDER_FIELD_TYPE, + pub pszLabel: ::windows_sys::core::PWSTR, + pub guidFieldType: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR {} +impl ::core::clone::Clone for CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Shell_Common\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))] +pub struct CSFV { + pub cbSize: u32, + pub pshf: IShellFolder, + pub psvOuter: IShellView, + pub pidl: *mut Common::ITEMIDLIST, + pub lEvents: i32, + pub pfnCallback: LPFNVIEWCALLBACK, + pub fvm: FOLDERVIEWMODE, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))] +impl ::core::marker::Copy for CSFV {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))] +impl ::core::clone::Clone for CSFV { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DATABLOCK_HEADER { + pub cbSize: u32, + pub dwSignature: u32, +} +impl ::core::marker::Copy for DATABLOCK_HEADER {} +impl ::core::clone::Clone for DATABLOCK_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`, `\"Win32_UI_Shell_Common\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common"))] +pub struct DEFCONTEXTMENU { + pub hwnd: super::super::Foundation::HWND, + pub pcmcb: IContextMenuCB, + pub pidlFolder: *mut Common::ITEMIDLIST, + pub psf: IShellFolder, + pub cidl: u32, + pub apidl: *mut *mut Common::ITEMIDLIST, + pub punkAssociationInfo: ::windows_sys::core::IUnknown, + pub cKeys: u32, + pub aKeys: *const super::super::System::Registry::HKEY, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common"))] +impl ::core::marker::Copy for DEFCONTEXTMENU {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common"))] +impl ::core::clone::Clone for DEFCONTEXTMENU { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DELEGATEITEMID { + pub cbSize: u16, + pub wOuter: u16, + pub cbInner: u16, + pub rgb: [u8; 1], +} +impl ::core::marker::Copy for DELEGATEITEMID {} +impl ::core::clone::Clone for DELEGATEITEMID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DESKBANDINFO { + pub dwMask: u32, + pub ptMinSize: super::super::Foundation::POINTL, + pub ptMaxSize: super::super::Foundation::POINTL, + pub ptIntegral: super::super::Foundation::POINTL, + pub ptActual: super::super::Foundation::POINTL, + pub wszTitle: [u16; 256], + pub dwModeFlags: u32, + pub crBkgnd: super::super::Foundation::COLORREF, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DESKBANDINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DESKBANDINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] +#[cfg(feature = "Win32_UI_Shell_Common")] +pub struct DETAILSINFO { + pub pidl: *mut Common::ITEMIDLIST, + pub fmt: i32, + pub cxChar: i32, + pub str: Common::STRRET, + pub iImage: i32, +} +#[cfg(feature = "Win32_UI_Shell_Common")] +impl ::core::marker::Copy for DETAILSINFO {} +#[cfg(feature = "Win32_UI_Shell_Common")] +impl ::core::clone::Clone for DETAILSINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DFMICS { + pub cbSize: u32, + pub fMask: u32, + pub lParam: super::super::Foundation::LPARAM, + pub idCmdFirst: u32, + pub idDefMax: u32, + pub pici: *mut CMINVOKECOMMANDINFO, + pub punkSite: ::windows_sys::core::IUnknown, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DFMICS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DFMICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DLLVERSIONINFO { + pub cbSize: u32, + pub dwMajorVersion: u32, + pub dwMinorVersion: u32, + pub dwBuildNumber: u32, + pub dwPlatformID: u32, +} +impl ::core::marker::Copy for DLLVERSIONINFO {} +impl ::core::clone::Clone for DLLVERSIONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DLLVERSIONINFO2 { + pub info1: DLLVERSIONINFO, + pub dwFlags: u32, + pub ullVersion: u64, +} +impl ::core::marker::Copy for DLLVERSIONINFO2 {} +impl ::core::clone::Clone for DLLVERSIONINFO2 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct DRAGINFOA { + pub uSize: u32, + pub pt: super::super::Foundation::POINT, + pub fNC: super::super::Foundation::BOOL, + pub lpFileList: ::windows_sys::core::PSTR, + pub grfKeyState: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRAGINFOA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRAGINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct DRAGINFOA { + pub uSize: u32, + pub pt: super::super::Foundation::POINT, + pub fNC: super::super::Foundation::BOOL, + pub lpFileList: ::windows_sys::core::PSTR, + pub grfKeyState: u32, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRAGINFOA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRAGINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct DRAGINFOW { + pub uSize: u32, + pub pt: super::super::Foundation::POINT, + pub fNC: super::super::Foundation::BOOL, + pub lpFileList: ::windows_sys::core::PWSTR, + pub grfKeyState: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRAGINFOW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRAGINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct DRAGINFOW { + pub uSize: u32, + pub pt: super::super::Foundation::POINT, + pub fNC: super::super::Foundation::BOOL, + pub lpFileList: ::windows_sys::core::PWSTR, + pub grfKeyState: u32, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DRAGINFOW {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DRAGINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct DROPDESCRIPTION { + pub r#type: DROPIMAGETYPE, + pub szMessage: [u16; 260], + pub szInsert: [u16; 260], +} +impl ::core::marker::Copy for DROPDESCRIPTION {} +impl ::core::clone::Clone for DROPDESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DROPFILES { + pub pFiles: u32, + pub pt: super::super::Foundation::POINT, + pub fNC: super::super::Foundation::BOOL, + pub fWide: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DROPFILES {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DROPFILES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct EXP_DARWIN_LINK { + pub dbh: DATABLOCK_HEADER, + pub szDarwinID: [u8; 260], + pub szwDarwinID: [u16; 260], +} +impl ::core::marker::Copy for EXP_DARWIN_LINK {} +impl ::core::clone::Clone for EXP_DARWIN_LINK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct EXP_PROPERTYSTORAGE { + pub cbSize: u32, + pub dwSignature: u32, + pub abPropertyStorage: [u8; 1], +} +impl ::core::marker::Copy for EXP_PROPERTYSTORAGE {} +impl ::core::clone::Clone for EXP_PROPERTYSTORAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct EXP_SPECIAL_FOLDER { + pub cbSize: u32, + pub dwSignature: u32, + pub idSpecialFolder: u32, + pub cbOffset: u32, +} +impl ::core::marker::Copy for EXP_SPECIAL_FOLDER {} +impl ::core::clone::Clone for EXP_SPECIAL_FOLDER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct EXP_SZ_LINK { + pub cbSize: u32, + pub dwSignature: u32, + pub szTarget: [u8; 260], + pub swzTarget: [u16; 260], +} +impl ::core::marker::Copy for EXP_SZ_LINK {} +impl ::core::clone::Clone for EXP_SZ_LINK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct EXTRASEARCH { + pub guidSearch: ::windows_sys::core::GUID, + pub wszFriendlyName: [u16; 80], + pub wszUrl: [u16; 2084], +} +impl ::core::marker::Copy for EXTRASEARCH {} +impl ::core::clone::Clone for EXTRASEARCH { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILEDESCRIPTORA { + pub dwFlags: u32, + pub clsid: ::windows_sys::core::GUID, + pub sizel: super::super::Foundation::SIZE, + pub pointl: super::super::Foundation::POINTL, + pub dwFileAttributes: u32, + pub ftCreationTime: super::super::Foundation::FILETIME, + pub ftLastAccessTime: super::super::Foundation::FILETIME, + pub ftLastWriteTime: super::super::Foundation::FILETIME, + pub nFileSizeHigh: u32, + pub nFileSizeLow: u32, + pub cFileName: [u8; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILEDESCRIPTORA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILEDESCRIPTORA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILEDESCRIPTORW { + pub dwFlags: u32, + pub clsid: ::windows_sys::core::GUID, + pub sizel: super::super::Foundation::SIZE, + pub pointl: super::super::Foundation::POINTL, + pub dwFileAttributes: u32, + pub ftCreationTime: super::super::Foundation::FILETIME, + pub ftLastAccessTime: super::super::Foundation::FILETIME, + pub ftLastWriteTime: super::super::Foundation::FILETIME, + pub nFileSizeHigh: u32, + pub nFileSizeLow: u32, + pub cFileName: [u16; 260], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILEDESCRIPTORW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILEDESCRIPTORW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILEGROUPDESCRIPTORA { + pub cItems: u32, + pub fgd: [FILEDESCRIPTORA; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILEGROUPDESCRIPTORA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILEGROUPDESCRIPTORA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FILEGROUPDESCRIPTORW { + pub cItems: u32, + pub fgd: [FILEDESCRIPTORW; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FILEGROUPDESCRIPTORW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FILEGROUPDESCRIPTORW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct FILE_ATTRIBUTES_ARRAY { + pub cItems: u32, + pub dwSumFileAttributes: u32, + pub dwProductFileAttributes: u32, + pub rgdwFileAttributes: [u32; 1], +} +impl ::core::marker::Copy for FILE_ATTRIBUTES_ARRAY {} +impl ::core::clone::Clone for FILE_ATTRIBUTES_ARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FOLDERSETDATA { + pub _fs: FOLDERSETTINGS, + pub _vidRestore: ::windows_sys::core::GUID, + pub _dwViewPriority: u32, +} +impl ::core::marker::Copy for FOLDERSETDATA {} +impl ::core::clone::Clone for FOLDERSETDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FOLDERSETTINGS { + pub ViewMode: u32, + pub fFlags: u32, +} +impl ::core::marker::Copy for FOLDERSETTINGS {} +impl ::core::clone::Clone for FOLDERSETTINGS { + fn clone(&self) -> Self { + *self + } +} +pub type HDROP = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HELPINFO { + pub cbSize: u32, + pub iContextType: HELP_INFO_TYPE, + pub iCtrlId: i32, + pub hItemHandle: super::super::Foundation::HANDLE, + pub dwContextId: usize, + pub MousePos: super::super::Foundation::POINT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HELPINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HELPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HELPWININFOA { + pub wStructSize: i32, + pub x: i32, + pub y: i32, + pub dx: i32, + pub dy: i32, + pub wMax: i32, + pub rgchMember: [u8; 2], +} +impl ::core::marker::Copy for HELPWININFOA {} +impl ::core::clone::Clone for HELPWININFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HELPWININFOW { + pub wStructSize: i32, + pub x: i32, + pub y: i32, + pub dx: i32, + pub dy: i32, + pub wMax: i32, + pub rgchMember: [u16; 2], +} +impl ::core::marker::Copy for HELPWININFOW {} +impl ::core::clone::Clone for HELPWININFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HLBWINFO { + pub cbSize: u32, + pub grfHLBWIF: u32, + pub rcFramePos: super::super::Foundation::RECT, + pub rcDocPos: super::super::Foundation::RECT, + pub hltbinfo: HLTBINFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HLBWINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HLBWINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct HLITEM { + pub uHLID: u32, + pub pwzFriendlyName: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for HLITEM {} +impl ::core::clone::Clone for HLITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HLTBINFO { + pub uDockType: u32, + pub rcTbPos: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HLTBINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HLTBINFO { + fn clone(&self) -> Self { + *self + } +} +pub type HPSXA = isize; +#[repr(C)] +pub struct ITEMSPACING { + pub cxSmall: i32, + pub cySmall: i32, + pub cxLarge: i32, + pub cyLarge: i32, +} +impl ::core::marker::Copy for ITEMSPACING {} +impl ::core::clone::Clone for ITEMSPACING { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KNOWNFOLDER_DEFINITION { + pub category: KF_CATEGORY, + pub pszName: ::windows_sys::core::PWSTR, + pub pszDescription: ::windows_sys::core::PWSTR, + pub fidParent: ::windows_sys::core::GUID, + pub pszRelativePath: ::windows_sys::core::PWSTR, + pub pszParsingName: ::windows_sys::core::PWSTR, + pub pszTooltip: ::windows_sys::core::PWSTR, + pub pszLocalizedName: ::windows_sys::core::PWSTR, + pub pszIcon: ::windows_sys::core::PWSTR, + pub pszSecurity: ::windows_sys::core::PWSTR, + pub dwAttributes: u32, + pub kfdFlags: u32, + pub ftidType: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for KNOWNFOLDER_DEFINITION {} +impl ::core::clone::Clone for KNOWNFOLDER_DEFINITION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MULTIKEYHELPA { + pub mkSize: u32, + pub mkKeylist: u8, + pub szKeyphrase: [u8; 1], +} +impl ::core::marker::Copy for MULTIKEYHELPA {} +impl ::core::clone::Clone for MULTIKEYHELPA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MULTIKEYHELPW { + pub mkSize: u32, + pub mkKeylist: u16, + pub szKeyphrase: [u16; 1], +} +impl ::core::marker::Copy for MULTIKEYHELPW {} +impl ::core::clone::Clone for MULTIKEYHELPW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Networking_WinSock\"`"] +#[cfg(all(feature = "Win32_NetworkManagement_IpHelper", feature = "Win32_Networking_WinSock"))] +pub struct NC_ADDRESS { + pub pAddrInfo: *mut super::super::NetworkManagement::IpHelper::NET_ADDRESS_INFO, + pub PortNumber: u16, + pub PrefixLength: u8, +} +#[cfg(all(feature = "Win32_NetworkManagement_IpHelper", feature = "Win32_Networking_WinSock"))] +impl ::core::marker::Copy for NC_ADDRESS {} +#[cfg(all(feature = "Win32_NetworkManagement_IpHelper", feature = "Win32_Networking_WinSock"))] +impl ::core::clone::Clone for NC_ADDRESS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct NEWCPLINFOA { + pub dwSize: u32, + pub dwFlags: u32, + pub dwHelpContext: u32, + pub lData: isize, + pub hIcon: super::WindowsAndMessaging::HICON, + pub szName: [u8; 32], + pub szInfo: [u8; 64], + pub szHelpFile: [u8; 128], +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for NEWCPLINFOA {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for NEWCPLINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct NEWCPLINFOW { + pub dwSize: u32, + pub dwFlags: u32, + pub dwHelpContext: u32, + pub lData: isize, + pub hIcon: super::WindowsAndMessaging::HICON, + pub szName: [u16; 32], + pub szInfo: [u16; 64], + pub szHelpFile: [u16; 128], +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for NEWCPLINFOW {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for NEWCPLINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct NOTIFYICONDATAA { + pub cbSize: u32, + pub hWnd: super::super::Foundation::HWND, + pub uID: u32, + pub uFlags: NOTIFY_ICON_DATA_FLAGS, + pub uCallbackMessage: u32, + pub hIcon: super::WindowsAndMessaging::HICON, + pub szTip: [u8; 128], + pub dwState: NOTIFY_ICON_STATE, + pub dwStateMask: u32, + pub szInfo: [u8; 256], + pub Anonymous: NOTIFYICONDATAA_0, + pub szInfoTitle: [u8; 64], + pub dwInfoFlags: NOTIFY_ICON_INFOTIP_FLAGS, + pub guidItem: ::windows_sys::core::GUID, + pub hBalloonIcon: super::WindowsAndMessaging::HICON, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for NOTIFYICONDATAA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for NOTIFYICONDATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub union NOTIFYICONDATAA_0 { + pub uTimeout: u32, + pub uVersion: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for NOTIFYICONDATAA_0 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for NOTIFYICONDATAA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct NOTIFYICONDATAA { + pub cbSize: u32, + pub hWnd: super::super::Foundation::HWND, + pub uID: u32, + pub uFlags: NOTIFY_ICON_DATA_FLAGS, + pub uCallbackMessage: u32, + pub hIcon: super::WindowsAndMessaging::HICON, + pub szTip: [u8; 128], + pub dwState: NOTIFY_ICON_STATE, + pub dwStateMask: u32, + pub szInfo: [u8; 256], + pub Anonymous: NOTIFYICONDATAA_0, + pub szInfoTitle: [u8; 64], + pub dwInfoFlags: NOTIFY_ICON_INFOTIP_FLAGS, + pub guidItem: ::windows_sys::core::GUID, + pub hBalloonIcon: super::WindowsAndMessaging::HICON, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for NOTIFYICONDATAA {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for NOTIFYICONDATAA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub union NOTIFYICONDATAA_0 { + pub uTimeout: u32, + pub uVersion: u32, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for NOTIFYICONDATAA_0 {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for NOTIFYICONDATAA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct NOTIFYICONDATAW { + pub cbSize: u32, + pub hWnd: super::super::Foundation::HWND, + pub uID: u32, + pub uFlags: NOTIFY_ICON_DATA_FLAGS, + pub uCallbackMessage: u32, + pub hIcon: super::WindowsAndMessaging::HICON, + pub szTip: [u16; 128], + pub dwState: NOTIFY_ICON_STATE, + pub dwStateMask: u32, + pub szInfo: [u16; 256], + pub Anonymous: NOTIFYICONDATAW_0, + pub szInfoTitle: [u16; 64], + pub dwInfoFlags: NOTIFY_ICON_INFOTIP_FLAGS, + pub guidItem: ::windows_sys::core::GUID, + pub hBalloonIcon: super::WindowsAndMessaging::HICON, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for NOTIFYICONDATAW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for NOTIFYICONDATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub union NOTIFYICONDATAW_0 { + pub uTimeout: u32, + pub uVersion: u32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for NOTIFYICONDATAW_0 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for NOTIFYICONDATAW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct NOTIFYICONDATAW { + pub cbSize: u32, + pub hWnd: super::super::Foundation::HWND, + pub uID: u32, + pub uFlags: NOTIFY_ICON_DATA_FLAGS, + pub uCallbackMessage: u32, + pub hIcon: super::WindowsAndMessaging::HICON, + pub szTip: [u16; 128], + pub dwState: NOTIFY_ICON_STATE, + pub dwStateMask: u32, + pub szInfo: [u16; 256], + pub Anonymous: NOTIFYICONDATAW_0, + pub szInfoTitle: [u16; 64], + pub dwInfoFlags: NOTIFY_ICON_INFOTIP_FLAGS, + pub guidItem: ::windows_sys::core::GUID, + pub hBalloonIcon: super::WindowsAndMessaging::HICON, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for NOTIFYICONDATAW {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for NOTIFYICONDATAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub union NOTIFYICONDATAW_0 { + pub uTimeout: u32, + pub uVersion: u32, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for NOTIFYICONDATAW_0 {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for NOTIFYICONDATAW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct NOTIFYICONIDENTIFIER { + pub cbSize: u32, + pub hWnd: super::super::Foundation::HWND, + pub uID: u32, + pub guidItem: ::windows_sys::core::GUID, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NOTIFYICONIDENTIFIER {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NOTIFYICONIDENTIFIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct NOTIFYICONIDENTIFIER { + pub cbSize: u32, + pub hWnd: super::super::Foundation::HWND, + pub uID: u32, + pub guidItem: ::windows_sys::core::GUID, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NOTIFYICONIDENTIFIER {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NOTIFYICONIDENTIFIER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_NetworkManagement_WNet\"`"] +#[cfg(feature = "Win32_NetworkManagement_WNet")] +pub struct NRESARRAY { + pub cItems: u32, + pub nr: [super::super::NetworkManagement::WNet::NETRESOURCEA; 1], +} +#[cfg(feature = "Win32_NetworkManagement_WNet")] +impl ::core::marker::Copy for NRESARRAY {} +#[cfg(feature = "Win32_NetworkManagement_WNet")] +impl ::core::clone::Clone for NRESARRAY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_Controls\"`"] +#[cfg(feature = "Win32_UI_Controls")] +pub struct NSTCCUSTOMDRAW { + pub psi: IShellItem, + pub uItemState: u32, + pub nstcis: u32, + pub pszText: ::windows_sys::core::PCWSTR, + pub iImage: i32, + pub himl: super::Controls::HIMAGELIST, + pub iLevel: i32, + pub iIndent: i32, +} +#[cfg(feature = "Win32_UI_Controls")] +impl ::core::marker::Copy for NSTCCUSTOMDRAW {} +#[cfg(feature = "Win32_UI_Controls")] +impl ::core::clone::Clone for NSTCCUSTOMDRAW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Console\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Console"))] +pub struct NT_CONSOLE_PROPS { + pub dbh: DATABLOCK_HEADER, + pub wFillAttribute: u16, + pub wPopupFillAttribute: u16, + pub dwScreenBufferSize: super::super::System::Console::COORD, + pub dwWindowSize: super::super::System::Console::COORD, + pub dwWindowOrigin: super::super::System::Console::COORD, + pub nFont: u32, + pub nInputBufferSize: u32, + pub dwFontSize: super::super::System::Console::COORD, + pub uFontFamily: u32, + pub uFontWeight: u32, + pub FaceName: [u16; 32], + pub uCursorSize: u32, + pub bFullScreen: super::super::Foundation::BOOL, + pub bQuickEdit: super::super::Foundation::BOOL, + pub bInsertMode: super::super::Foundation::BOOL, + pub bAutoPosition: super::super::Foundation::BOOL, + pub uHistoryBufferSize: u32, + pub uNumberOfHistoryBuffers: u32, + pub bHistoryNoDup: super::super::Foundation::BOOL, + pub ColorTable: [super::super::Foundation::COLORREF; 16], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Console"))] +impl ::core::marker::Copy for NT_CONSOLE_PROPS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Console"))] +impl ::core::clone::Clone for NT_CONSOLE_PROPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct NT_FE_CONSOLE_PROPS { + pub dbh: DATABLOCK_HEADER, + pub uCodePage: u32, +} +impl ::core::marker::Copy for NT_FE_CONSOLE_PROPS {} +impl ::core::clone::Clone for NT_FE_CONSOLE_PROPS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct OPENASINFO { + pub pcszFile: ::windows_sys::core::PCWSTR, + pub pcszClass: ::windows_sys::core::PCWSTR, + pub oaifInFlags: OPEN_AS_INFO_FLAGS, +} +impl ::core::marker::Copy for OPENASINFO {} +impl ::core::clone::Clone for OPENASINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct OPEN_PRINTER_PROPS_INFOA { + pub dwSize: u32, + pub pszSheetName: ::windows_sys::core::PSTR, + pub uSheetIndex: u32, + pub dwFlags: u32, + pub bModal: super::super::Foundation::BOOL, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPEN_PRINTER_PROPS_INFOA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPEN_PRINTER_PROPS_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct OPEN_PRINTER_PROPS_INFOA { + pub dwSize: u32, + pub pszSheetName: ::windows_sys::core::PSTR, + pub uSheetIndex: u32, + pub dwFlags: u32, + pub bModal: super::super::Foundation::BOOL, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPEN_PRINTER_PROPS_INFOA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPEN_PRINTER_PROPS_INFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct OPEN_PRINTER_PROPS_INFOW { + pub dwSize: u32, + pub pszSheetName: ::windows_sys::core::PWSTR, + pub uSheetIndex: u32, + pub dwFlags: u32, + pub bModal: super::super::Foundation::BOOL, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPEN_PRINTER_PROPS_INFOW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPEN_PRINTER_PROPS_INFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct OPEN_PRINTER_PROPS_INFOW { + pub dwSize: u32, + pub pszSheetName: ::windows_sys::core::PWSTR, + pub uSheetIndex: u32, + pub dwFlags: u32, + pub bModal: super::super::Foundation::BOOL, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for OPEN_PRINTER_PROPS_INFOW {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for OPEN_PRINTER_PROPS_INFOW { + fn clone(&self) -> Self { + *self + } +} +pub type PAPPCONSTRAIN_REGISTRATION = isize; +pub type PAPPSTATE_REGISTRATION = isize; +#[repr(C)] +pub struct PARSEDURLA { + pub cbSize: u32, + pub pszProtocol: ::windows_sys::core::PCSTR, + pub cchProtocol: u32, + pub pszSuffix: ::windows_sys::core::PCSTR, + pub cchSuffix: u32, + pub nScheme: u32, +} +impl ::core::marker::Copy for PARSEDURLA {} +impl ::core::clone::Clone for PARSEDURLA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PARSEDURLW { + pub cbSize: u32, + pub pszProtocol: ::windows_sys::core::PCWSTR, + pub cchProtocol: u32, + pub pszSuffix: ::windows_sys::core::PCWSTR, + pub cchSuffix: u32, + pub nScheme: u32, +} +impl ::core::marker::Copy for PARSEDURLW {} +impl ::core::clone::Clone for PARSEDURLW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] +#[cfg(feature = "Win32_UI_Shell_Common")] +pub struct PERSIST_FOLDER_TARGET_INFO { + pub pidlTargetFolder: *mut Common::ITEMIDLIST, + pub szTargetParsingName: [u16; 260], + pub szNetworkProvider: [u16; 260], + pub dwAttributes: u32, + pub csidl: i32, +} +#[cfg(feature = "Win32_UI_Shell_Common")] +impl ::core::marker::Copy for PERSIST_FOLDER_TARGET_INFO {} +#[cfg(feature = "Win32_UI_Shell_Common")] +impl ::core::clone::Clone for PERSIST_FOLDER_TARGET_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct PREVIEWHANDLERFRAMEINFO { + pub haccel: super::WindowsAndMessaging::HACCEL, + pub cAccelEntries: u32, +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for PREVIEWHANDLERFRAMEINFO {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for PREVIEWHANDLERFRAMEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROFILEINFOA { + pub dwSize: u32, + pub dwFlags: u32, + pub lpUserName: ::windows_sys::core::PSTR, + pub lpProfilePath: ::windows_sys::core::PSTR, + pub lpDefaultPath: ::windows_sys::core::PSTR, + pub lpServerName: ::windows_sys::core::PSTR, + pub lpPolicyPath: ::windows_sys::core::PSTR, + pub hProfile: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROFILEINFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROFILEINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PROFILEINFOW { + pub dwSize: u32, + pub dwFlags: u32, + pub lpUserName: ::windows_sys::core::PWSTR, + pub lpProfilePath: ::windows_sys::core::PWSTR, + pub lpDefaultPath: ::windows_sys::core::PWSTR, + pub lpServerName: ::windows_sys::core::PWSTR, + pub lpPolicyPath: ::windows_sys::core::PWSTR, + pub hProfile: super::super::Foundation::HANDLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PROFILEINFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PROFILEINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct PUBAPPINFO { + pub cbSize: u32, + pub dwMask: u32, + pub pszSource: ::windows_sys::core::PWSTR, + pub stAssigned: super::super::Foundation::SYSTEMTIME, + pub stPublished: super::super::Foundation::SYSTEMTIME, + pub stScheduled: super::super::Foundation::SYSTEMTIME, + pub stExpire: super::super::Foundation::SYSTEMTIME, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for PUBAPPINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for PUBAPPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct QCMINFO { + pub hmenu: super::WindowsAndMessaging::HMENU, + pub indexMenu: u32, + pub idCmdFirst: u32, + pub idCmdLast: u32, + pub pIdMap: *const QCMINFO_IDMAP, +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for QCMINFO {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for QCMINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QCMINFO_IDMAP { + pub nMaxIds: u32, + pub pIdList: [QCMINFO_IDMAP_PLACEMENT; 1], +} +impl ::core::marker::Copy for QCMINFO_IDMAP {} +impl ::core::clone::Clone for QCMINFO_IDMAP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QCMINFO_IDMAP_PLACEMENT { + pub id: u32, + pub fFlags: u32, +} +impl ::core::marker::Copy for QCMINFO_IDMAP_PLACEMENT {} +impl ::core::clone::Clone for QCMINFO_IDMAP_PLACEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct QITAB { + pub piid: *const ::windows_sys::core::GUID, + pub dwOffset: u32, +} +impl ::core::marker::Copy for QITAB {} +impl ::core::clone::Clone for QITAB { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SFVM_HELPTOPIC_DATA { + pub wszHelpFile: [u16; 260], + pub wszHelpTopic: [u16; 260], +} +impl ::core::marker::Copy for SFVM_HELPTOPIC_DATA {} +impl ::core::clone::Clone for SFVM_HELPTOPIC_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +pub struct SFVM_PROPPAGE_DATA { + pub dwReserved: u32, + pub pfn: super::Controls::LPFNSVADDPROPSHEETPAGE, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::marker::Copy for SFVM_PROPPAGE_DATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] +impl ::core::clone::Clone for SFVM_PROPPAGE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Ole\"`"] +#[cfg(feature = "Win32_System_Ole")] +pub struct SFV_CREATE { + pub cbSize: u32, + pub pshf: IShellFolder, + pub psvOuter: IShellView, + pub psfvcb: IShellFolderViewCB, +} +#[cfg(feature = "Win32_System_Ole")] +impl ::core::marker::Copy for SFV_CREATE {} +#[cfg(feature = "Win32_System_Ole")] +impl ::core::clone::Clone for SFV_CREATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +pub struct SFV_SETITEMPOS { + pub pidl: *mut Common::ITEMIDLIST, + pub pt: super::super::Foundation::POINT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +impl ::core::marker::Copy for SFV_SETITEMPOS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +impl ::core::clone::Clone for SFV_SETITEMPOS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SHARDAPPIDINFO { + pub psi: IShellItem, + pub pszAppID: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for SHARDAPPIDINFO {} +impl ::core::clone::Clone for SHARDAPPIDINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] +#[cfg(feature = "Win32_UI_Shell_Common")] +pub struct SHARDAPPIDINFOIDLIST { + pub pidl: *mut Common::ITEMIDLIST, + pub pszAppID: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_UI_Shell_Common")] +impl ::core::marker::Copy for SHARDAPPIDINFOIDLIST {} +#[cfg(feature = "Win32_UI_Shell_Common")] +impl ::core::clone::Clone for SHARDAPPIDINFOIDLIST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SHARDAPPIDINFOLINK { + pub psl: IShellLinkA, + pub pszAppID: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for SHARDAPPIDINFOLINK {} +impl ::core::clone::Clone for SHARDAPPIDINFOLINK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHCOLUMNDATA { + pub dwFlags: u32, + pub dwFileAttributes: u32, + pub dwReserved: u32, + pub pwszExt: ::windows_sys::core::PWSTR, + pub wszFile: [u16; 260], +} +impl ::core::marker::Copy for SHCOLUMNDATA {} +impl ::core::clone::Clone for SHCOLUMNDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(all(feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +pub struct SHCOLUMNINFO { + pub scid: PropertiesSystem::PROPERTYKEY, + pub vt: super::super::System::Variant::VARENUM, + pub fmt: u32, + pub cChars: u32, + pub csFlags: u32, + pub wszTitle: [u16; 80], + pub wszDescription: [u16; 128], +} +#[cfg(all(feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +impl ::core::marker::Copy for SHCOLUMNINFO {} +#[cfg(all(feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))] +impl ::core::clone::Clone for SHCOLUMNINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHCOLUMNINIT { + pub dwFlags: u32, + pub dwReserved: u32, + pub wszFolder: [u16; 260], +} +impl ::core::marker::Copy for SHCOLUMNINIT {} +impl ::core::clone::Clone for SHCOLUMNINIT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_Threading\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Threading"))] +pub struct SHCREATEPROCESSINFOW { + pub cbSize: u32, + pub fMask: u32, + pub hwnd: super::super::Foundation::HWND, + pub pszFile: ::windows_sys::core::PCWSTR, + pub pszParameters: ::windows_sys::core::PCWSTR, + pub pszCurrentDirectory: ::windows_sys::core::PCWSTR, + pub hUserToken: super::super::Foundation::HANDLE, + pub lpProcessAttributes: *mut super::super::Security::SECURITY_ATTRIBUTES, + pub lpThreadAttributes: *mut super::super::Security::SECURITY_ATTRIBUTES, + pub bInheritHandles: super::super::Foundation::BOOL, + pub dwCreationFlags: u32, + pub lpStartupInfo: *mut super::super::System::Threading::STARTUPINFOW, + pub lpProcessInformation: *mut super::super::System::Threading::PROCESS_INFORMATION, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Threading"))] +impl ::core::marker::Copy for SHCREATEPROCESSINFOW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Threading"))] +impl ::core::clone::Clone for SHCREATEPROCESSINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_Threading\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Threading"))] +pub struct SHCREATEPROCESSINFOW { + pub cbSize: u32, + pub fMask: u32, + pub hwnd: super::super::Foundation::HWND, + pub pszFile: ::windows_sys::core::PCWSTR, + pub pszParameters: ::windows_sys::core::PCWSTR, + pub pszCurrentDirectory: ::windows_sys::core::PCWSTR, + pub hUserToken: super::super::Foundation::HANDLE, + pub lpProcessAttributes: *mut super::super::Security::SECURITY_ATTRIBUTES, + pub lpThreadAttributes: *mut super::super::Security::SECURITY_ATTRIBUTES, + pub bInheritHandles: super::super::Foundation::BOOL, + pub dwCreationFlags: u32, + pub lpStartupInfo: *mut super::super::System::Threading::STARTUPINFOW, + pub lpProcessInformation: *mut super::super::System::Threading::PROCESS_INFORMATION, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Threading"))] +impl ::core::marker::Copy for SHCREATEPROCESSINFOW {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Threading"))] +impl ::core::clone::Clone for SHCREATEPROCESSINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SHChangeDWORDAsIDList { + pub cb: u16, + pub dwItem1: u32, + pub dwItem2: u32, + pub cbZero: u16, +} +impl ::core::marker::Copy for SHChangeDWORDAsIDList {} +impl ::core::clone::Clone for SHChangeDWORDAsIDList { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +pub struct SHChangeNotifyEntry { + pub pidl: *mut Common::ITEMIDLIST, + pub fRecursive: super::super::Foundation::BOOL, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +impl ::core::marker::Copy for SHChangeNotifyEntry {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] +impl ::core::clone::Clone for SHChangeNotifyEntry { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SHChangeProductKeyAsIDList { + pub cb: u16, + pub wszProductKey: [u16; 39], + pub cbZero: u16, +} +impl ::core::marker::Copy for SHChangeProductKeyAsIDList {} +impl ::core::clone::Clone for SHChangeProductKeyAsIDList { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SHChangeUpdateImageIDList { + pub cb: u16, + pub iIconIndex: i32, + pub iCurIndex: i32, + pub uFlags: u32, + pub dwProcessID: u32, + pub szName: [u16; 260], + pub cbZero: u16, +} +impl ::core::marker::Copy for SHChangeUpdateImageIDList {} +impl ::core::clone::Clone for SHChangeUpdateImageIDList { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHDESCRIPTIONID { + pub dwDescriptionId: u32, + pub clsid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for SHDESCRIPTIONID {} +impl ::core::clone::Clone for SHDESCRIPTIONID { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct SHDRAGIMAGE { + pub sizeDragImage: super::super::Foundation::SIZE, + pub ptOffset: super::super::Foundation::POINT, + pub hbmpDragImage: super::super::Graphics::Gdi::HBITMAP, + pub crColorKey: super::super::Foundation::COLORREF, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for SHDRAGIMAGE {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for SHDRAGIMAGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub struct SHELLEXECUTEINFOA { + pub cbSize: u32, + pub fMask: u32, + pub hwnd: super::super::Foundation::HWND, + pub lpVerb: ::windows_sys::core::PCSTR, + pub lpFile: ::windows_sys::core::PCSTR, + pub lpParameters: ::windows_sys::core::PCSTR, + pub lpDirectory: ::windows_sys::core::PCSTR, + pub nShow: i32, + pub hInstApp: super::super::Foundation::HINSTANCE, + pub lpIDList: *mut ::core::ffi::c_void, + pub lpClass: ::windows_sys::core::PCSTR, + pub hkeyClass: super::super::System::Registry::HKEY, + pub dwHotKey: u32, + pub Anonymous: SHELLEXECUTEINFOA_0, + pub hProcess: super::super::Foundation::HANDLE, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for SHELLEXECUTEINFOA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for SHELLEXECUTEINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub union SHELLEXECUTEINFOA_0 { + pub hIcon: super::super::Foundation::HANDLE, + pub hMonitor: super::super::Foundation::HANDLE, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for SHELLEXECUTEINFOA_0 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for SHELLEXECUTEINFOA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub struct SHELLEXECUTEINFOA { + pub cbSize: u32, + pub fMask: u32, + pub hwnd: super::super::Foundation::HWND, + pub lpVerb: ::windows_sys::core::PCSTR, + pub lpFile: ::windows_sys::core::PCSTR, + pub lpParameters: ::windows_sys::core::PCSTR, + pub lpDirectory: ::windows_sys::core::PCSTR, + pub nShow: i32, + pub hInstApp: super::super::Foundation::HINSTANCE, + pub lpIDList: *mut ::core::ffi::c_void, + pub lpClass: ::windows_sys::core::PCSTR, + pub hkeyClass: super::super::System::Registry::HKEY, + pub dwHotKey: u32, + pub Anonymous: SHELLEXECUTEINFOA_0, + pub hProcess: super::super::Foundation::HANDLE, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for SHELLEXECUTEINFOA {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for SHELLEXECUTEINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub union SHELLEXECUTEINFOA_0 { + pub hIcon: super::super::Foundation::HANDLE, + pub hMonitor: super::super::Foundation::HANDLE, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for SHELLEXECUTEINFOA_0 {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for SHELLEXECUTEINFOA_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub struct SHELLEXECUTEINFOW { + pub cbSize: u32, + pub fMask: u32, + pub hwnd: super::super::Foundation::HWND, + pub lpVerb: ::windows_sys::core::PCWSTR, + pub lpFile: ::windows_sys::core::PCWSTR, + pub lpParameters: ::windows_sys::core::PCWSTR, + pub lpDirectory: ::windows_sys::core::PCWSTR, + pub nShow: i32, + pub hInstApp: super::super::Foundation::HINSTANCE, + pub lpIDList: *mut ::core::ffi::c_void, + pub lpClass: ::windows_sys::core::PCWSTR, + pub hkeyClass: super::super::System::Registry::HKEY, + pub dwHotKey: u32, + pub Anonymous: SHELLEXECUTEINFOW_0, + pub hProcess: super::super::Foundation::HANDLE, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for SHELLEXECUTEINFOW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for SHELLEXECUTEINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub union SHELLEXECUTEINFOW_0 { + pub hIcon: super::super::Foundation::HANDLE, + pub hMonitor: super::super::Foundation::HANDLE, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for SHELLEXECUTEINFOW_0 {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for SHELLEXECUTEINFOW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub struct SHELLEXECUTEINFOW { + pub cbSize: u32, + pub fMask: u32, + pub hwnd: super::super::Foundation::HWND, + pub lpVerb: ::windows_sys::core::PCWSTR, + pub lpFile: ::windows_sys::core::PCWSTR, + pub lpParameters: ::windows_sys::core::PCWSTR, + pub lpDirectory: ::windows_sys::core::PCWSTR, + pub nShow: i32, + pub hInstApp: super::super::Foundation::HINSTANCE, + pub lpIDList: *mut ::core::ffi::c_void, + pub lpClass: ::windows_sys::core::PCWSTR, + pub hkeyClass: super::super::System::Registry::HKEY, + pub dwHotKey: u32, + pub Anonymous: SHELLEXECUTEINFOW_0, + pub hProcess: super::super::Foundation::HANDLE, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for SHELLEXECUTEINFOW {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for SHELLEXECUTEINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`"] +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +pub union SHELLEXECUTEINFOW_0 { + pub hIcon: super::super::Foundation::HANDLE, + pub hMonitor: super::super::Foundation::HANDLE, +} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::marker::Copy for SHELLEXECUTEINFOW_0 {} +#[cfg(target_arch = "x86")] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] +impl ::core::clone::Clone for SHELLEXECUTEINFOW_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SHELLFLAGSTATE { + pub _bitfield: i32, +} +impl ::core::marker::Copy for SHELLFLAGSTATE {} +impl ::core::clone::Clone for SHELLFLAGSTATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SHELLSTATEA { + pub _bitfield1: i32, + pub dwWin95Unused: u32, + pub uWin95Unused: u32, + pub lParamSort: i32, + pub iSortDirection: i32, + pub version: u32, + pub uNotUsed: u32, + pub _bitfield2: i32, +} +impl ::core::marker::Copy for SHELLSTATEA {} +impl ::core::clone::Clone for SHELLSTATEA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +pub struct SHELLSTATEW { + pub _bitfield1: i32, + pub dwWin95Unused: u32, + pub uWin95Unused: u32, + pub lParamSort: i32, + pub iSortDirection: i32, + pub version: u32, + pub uNotUsed: u32, + pub _bitfield2: i32, +} +impl ::core::marker::Copy for SHELLSTATEW {} +impl ::core::clone::Clone for SHELLSTATEW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHELL_ITEM_RESOURCE { + pub guidType: ::windows_sys::core::GUID, + pub szName: [u16; 260], +} +impl ::core::marker::Copy for SHELL_ITEM_RESOURCE {} +impl ::core::clone::Clone for SHELL_ITEM_RESOURCE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct SHFILEINFOA { + pub hIcon: super::WindowsAndMessaging::HICON, + pub iIcon: i32, + pub dwAttributes: u32, + pub szDisplayName: [u8; 260], + pub szTypeName: [u8; 80], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for SHFILEINFOA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for SHFILEINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct SHFILEINFOA { + pub hIcon: super::WindowsAndMessaging::HICON, + pub iIcon: i32, + pub dwAttributes: u32, + pub szDisplayName: [u8; 260], + pub szTypeName: [u8; 80], +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for SHFILEINFOA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for SHFILEINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct SHFILEINFOW { + pub hIcon: super::WindowsAndMessaging::HICON, + pub iIcon: i32, + pub dwAttributes: u32, + pub szDisplayName: [u16; 260], + pub szTypeName: [u16; 80], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for SHFILEINFOW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for SHFILEINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct SHFILEINFOW { + pub hIcon: super::WindowsAndMessaging::HICON, + pub iIcon: i32, + pub dwAttributes: u32, + pub szDisplayName: [u16; 260], + pub szTypeName: [u16; 80], +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for SHFILEINFOW {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for SHFILEINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct SHFILEOPSTRUCTA { + pub hwnd: super::super::Foundation::HWND, + pub wFunc: u32, + pub pFrom: *mut i8, + pub pTo: *mut i8, + pub fFlags: u16, + pub fAnyOperationsAborted: super::super::Foundation::BOOL, + pub hNameMappings: *mut ::core::ffi::c_void, + pub lpszProgressTitle: ::windows_sys::core::PCSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SHFILEOPSTRUCTA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SHFILEOPSTRUCTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct SHFILEOPSTRUCTA { + pub hwnd: super::super::Foundation::HWND, + pub wFunc: u32, + pub pFrom: *mut i8, + pub pTo: *mut i8, + pub fFlags: u16, + pub fAnyOperationsAborted: super::super::Foundation::BOOL, + pub hNameMappings: *mut ::core::ffi::c_void, + pub lpszProgressTitle: ::windows_sys::core::PCSTR, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SHFILEOPSTRUCTA {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SHFILEOPSTRUCTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +pub struct SHFILEOPSTRUCTW { + pub hwnd: super::super::Foundation::HWND, + pub wFunc: u32, + pub pFrom: ::windows_sys::core::PCWSTR, + pub pTo: ::windows_sys::core::PCWSTR, + pub fFlags: u16, + pub fAnyOperationsAborted: super::super::Foundation::BOOL, + pub hNameMappings: *mut ::core::ffi::c_void, + pub lpszProgressTitle: ::windows_sys::core::PCWSTR, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SHFILEOPSTRUCTW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SHFILEOPSTRUCTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +pub struct SHFILEOPSTRUCTW { + pub hwnd: super::super::Foundation::HWND, + pub wFunc: u32, + pub pFrom: ::windows_sys::core::PCWSTR, + pub pTo: ::windows_sys::core::PCWSTR, + pub fFlags: u16, + pub fAnyOperationsAborted: super::super::Foundation::BOOL, + pub hNameMappings: *mut ::core::ffi::c_void, + pub lpszProgressTitle: ::windows_sys::core::PCWSTR, +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SHFILEOPSTRUCTW {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SHFILEOPSTRUCTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SHFOLDERCUSTOMSETTINGS { + pub dwSize: u32, + pub dwMask: u32, + pub pvid: *mut ::windows_sys::core::GUID, + pub pszWebViewTemplate: ::windows_sys::core::PWSTR, + pub cchWebViewTemplate: u32, + pub pszWebViewTemplateVersion: ::windows_sys::core::PWSTR, + pub pszInfoTip: ::windows_sys::core::PWSTR, + pub cchInfoTip: u32, + pub pclsid: *mut ::windows_sys::core::GUID, + pub dwFlags: u32, + pub pszIconFile: ::windows_sys::core::PWSTR, + pub cchIconFile: u32, + pub iIconIndex: i32, + pub pszLogo: ::windows_sys::core::PWSTR, + pub cchLogo: u32, +} +impl ::core::marker::Copy for SHFOLDERCUSTOMSETTINGS {} +impl ::core::clone::Clone for SHFOLDERCUSTOMSETTINGS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SHNAMEMAPPINGA { + pub pszOldPath: ::windows_sys::core::PSTR, + pub pszNewPath: ::windows_sys::core::PSTR, + pub cchOldPath: i32, + pub cchNewPath: i32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SHNAMEMAPPINGA {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SHNAMEMAPPINGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SHNAMEMAPPINGA { + pub pszOldPath: ::windows_sys::core::PSTR, + pub pszNewPath: ::windows_sys::core::PSTR, + pub cchOldPath: i32, + pub cchNewPath: i32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SHNAMEMAPPINGA {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SHNAMEMAPPINGA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SHNAMEMAPPINGW { + pub pszOldPath: ::windows_sys::core::PWSTR, + pub pszNewPath: ::windows_sys::core::PWSTR, + pub cchOldPath: i32, + pub cchNewPath: i32, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SHNAMEMAPPINGW {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SHNAMEMAPPINGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SHNAMEMAPPINGW { + pub pszOldPath: ::windows_sys::core::PWSTR, + pub pszNewPath: ::windows_sys::core::PWSTR, + pub cchOldPath: i32, + pub cchNewPath: i32, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SHNAMEMAPPINGW {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SHNAMEMAPPINGW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +pub struct SHQUERYRBINFO { + pub cbSize: u32, + pub i64Size: i64, + pub i64NumItems: i64, +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::marker::Copy for SHQUERYRBINFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +impl ::core::clone::Clone for SHQUERYRBINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[cfg(target_arch = "x86")] +pub struct SHQUERYRBINFO { + pub cbSize: u32, + pub i64Size: i64, + pub i64NumItems: i64, +} +#[cfg(target_arch = "x86")] +impl ::core::marker::Copy for SHQUERYRBINFO {} +#[cfg(target_arch = "x86")] +impl ::core::clone::Clone for SHQUERYRBINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct SHSTOCKICONINFO { + pub cbSize: u32, + pub hIcon: super::WindowsAndMessaging::HICON, + pub iSysImageIndex: i32, + pub iIcon: i32, + pub szPath: [u16; 260], +} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for SHSTOCKICONINFO {} +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for SHSTOCKICONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(1))] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct SHSTOCKICONINFO { + pub cbSize: u32, + pub hIcon: super::WindowsAndMessaging::HICON, + pub iSysImageIndex: i32, + pub iIcon: i32, + pub szPath: [u16; 260], +} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for SHSTOCKICONINFO {} +#[cfg(target_arch = "x86")] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for SHSTOCKICONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SLOWAPPINFO { + pub ullSize: u64, + pub ftLastUsed: super::super::Foundation::FILETIME, + pub iTimesUsed: i32, + pub pszImage: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SLOWAPPINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SLOWAPPINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] +#[cfg(feature = "Win32_UI_Shell_Common")] +pub struct SMCSHCHANGENOTIFYSTRUCT { + pub lEvent: i32, + pub pidl1: *mut Common::ITEMIDLIST, + pub pidl2: *mut Common::ITEMIDLIST, +} +#[cfg(feature = "Win32_UI_Shell_Common")] +impl ::core::marker::Copy for SMCSHCHANGENOTIFYSTRUCT {} +#[cfg(feature = "Win32_UI_Shell_Common")] +impl ::core::clone::Clone for SMCSHCHANGENOTIFYSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct SMDATA { + pub dwMask: u32, + pub dwFlags: u32, + pub hmenu: super::WindowsAndMessaging::HMENU, + pub hwnd: super::super::Foundation::HWND, + pub uId: u32, + pub uIdParent: u32, + pub uIdAncestor: u32, + pub punk: ::windows_sys::core::IUnknown, + pub pidlFolder: *mut Common::ITEMIDLIST, + pub pidlItem: *mut Common::ITEMIDLIST, + pub psf: IShellFolder, + pub pvUserData: *mut ::core::ffi::c_void, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for SMDATA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for SMDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SMINFO { + pub dwMask: u32, + pub dwType: u32, + pub dwFlags: u32, + pub iIcon: i32, +} +impl ::core::marker::Copy for SMINFO {} +impl ::core::clone::Clone for SMINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_Shell_PropertiesSystem\"`"] +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +pub struct SORTCOLUMN { + pub propkey: PropertiesSystem::PROPERTYKEY, + pub direction: SORTDIRECTION, +} +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +impl ::core::marker::Copy for SORTCOLUMN {} +#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] +impl ::core::clone::Clone for SORTCOLUMN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))] +pub struct SV2CVW2_PARAMS { + pub cbSize: u32, + pub psvPrev: IShellView, + pub pfs: *mut FOLDERSETTINGS, + pub psbOwner: IShellBrowser, + pub prcView: *mut super::super::Foundation::RECT, + pub pvid: *const ::windows_sys::core::GUID, + pub hwndView: super::super::Foundation::HWND, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))] +impl ::core::marker::Copy for SV2CVW2_PARAMS {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))] +impl ::core::clone::Clone for SV2CVW2_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct SYNCMGRHANDLERINFO { + pub cbSize: u32, + pub hIcon: super::WindowsAndMessaging::HICON, + pub SyncMgrHandlerFlags: u32, + pub wszHandlerName: [u16; 32], +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for SYNCMGRHANDLERINFO {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for SYNCMGRHANDLERINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +pub struct SYNCMGRITEM { + pub cbSize: u32, + pub dwFlags: u32, + pub ItemID: ::windows_sys::core::GUID, + pub dwItemState: u32, + pub hIcon: super::WindowsAndMessaging::HICON, + pub wszItemName: [u16; 128], + pub ftLastUpdate: super::super::Foundation::FILETIME, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::marker::Copy for SYNCMGRITEM {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] +impl ::core::clone::Clone for SYNCMGRITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYNCMGRLOGERRORINFO { + pub cbSize: u32, + pub mask: u32, + pub dwSyncMgrErrorFlags: u32, + pub ErrorID: ::windows_sys::core::GUID, + pub ItemID: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for SYNCMGRLOGERRORINFO {} +impl ::core::clone::Clone for SYNCMGRLOGERRORINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYNCMGRPROGRESSITEM { + pub cbSize: u32, + pub mask: u32, + pub lpcStatusText: ::windows_sys::core::PCWSTR, + pub dwStatusType: u32, + pub iProgValue: i32, + pub iMaxValue: i32, +} +impl ::core::marker::Copy for SYNCMGRPROGRESSITEM {} +impl ::core::clone::Clone for SYNCMGRPROGRESSITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_System_Com\"`"] +#[cfg(feature = "Win32_System_Com")] +pub struct SYNCMGR_CONFLICT_ID_INFO { + pub pblobID: *mut super::super::System::Com::BYTE_BLOB, + pub pblobExtra: *mut super::super::System::Com::BYTE_BLOB, +} +#[cfg(feature = "Win32_System_Com")] +impl ::core::marker::Copy for SYNCMGR_CONFLICT_ID_INFO {} +#[cfg(feature = "Win32_System_Com")] +impl ::core::clone::Clone for SYNCMGR_CONFLICT_ID_INFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TBINFO { + pub cbuttons: u32, + pub uFlags: u32, +} +impl ::core::marker::Copy for TBINFO {} +impl ::core::clone::Clone for TBINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +pub struct THUMBBUTTON { + pub dwMask: THUMBBUTTONMASK, + pub iId: u32, + pub iBitmap: u32, + pub hIcon: super::WindowsAndMessaging::HICON, + pub szTip: [u16; 260], + pub dwFlags: THUMBBUTTONFLAGS, +} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::marker::Copy for THUMBBUTTON {} +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +impl ::core::clone::Clone for THUMBBUTTON { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Ole\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Ole"))] +pub struct TOOLBARITEM { + pub ptbar: IDockingWindow, + pub rcBorderTool: super::super::Foundation::RECT, + pub pwszItem: ::windows_sys::core::PWSTR, + pub fShow: super::super::Foundation::BOOL, + pub hMon: super::super::Graphics::Gdi::HMONITOR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Ole"))] +impl ::core::marker::Copy for TOOLBARITEM {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Ole"))] +impl ::core::clone::Clone for TOOLBARITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct URLINVOKECOMMANDINFOA { + pub dwcbSize: u32, + pub dwFlags: u32, + pub hwndParent: super::super::Foundation::HWND, + pub pcszVerb: ::windows_sys::core::PCSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for URLINVOKECOMMANDINFOA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for URLINVOKECOMMANDINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct URLINVOKECOMMANDINFOW { + pub dwcbSize: u32, + pub dwFlags: u32, + pub hwndParent: super::super::Foundation::HWND, + pub pcszVerb: ::windows_sys::core::PCWSTR, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for URLINVOKECOMMANDINFOW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for URLINVOKECOMMANDINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_UI_Shell_Common\"`"] +#[cfg(feature = "Win32_UI_Shell_Common")] +pub struct WINDOWDATA { + pub dwWindowID: u32, + pub uiCP: u32, + pub pidl: *mut Common::ITEMIDLIST, + pub lpszUrl: ::windows_sys::core::PWSTR, + pub lpszUrlLocation: ::windows_sys::core::PWSTR, + pub lpszTitle: ::windows_sys::core::PWSTR, +} +#[cfg(feature = "Win32_UI_Shell_Common")] +impl ::core::marker::Copy for WINDOWDATA {} +#[cfg(feature = "Win32_UI_Shell_Common")] +impl ::core::clone::Clone for WINDOWDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct WTS_THUMBNAILID { + pub rgbKey: [u8; 16], +} +impl ::core::marker::Copy for WTS_THUMBNAILID {} +impl ::core::clone::Clone for WTS_THUMBNAILID { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type APPLET_PROC = ::core::option::Option i32>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type BFFCALLBACK = ::core::option::Option i32>; +pub type DLLGETVERSIONPROC = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] +pub type LPFNDFMCALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))] +pub type LPFNVIEWCALLBACK = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PAPPCONSTRAIN_CHANGE_ROUTINE = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PAPPSTATE_CHANGE_ROUTINE = ::core::option::Option ()>; +pub type PFNCANSHAREFOLDERW = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PFNSHOWSHAREFOLDERUIW = ::core::option::Option ::windows_sys::core::HRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SUBCLASSPROC = ::core::option::Option super::super::Foundation::LRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/TabletPC/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/TabletPC/mod.rs new file mode 100644 index 000000000..2d470a1de --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/TabletPC/mod.rs @@ -0,0 +1,1767 @@ +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("inkobjcore.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn AddStroke(hrc : HRECOCONTEXT, ppacketdesc : *const PACKET_DESCRIPTION, cbpacket : u32, ppacket : *const u8, pxform : *const super::super::Graphics::Gdi:: XFORM) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn AddWordsToWordList(hwl : HRECOWORDLIST, pwcwords : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("inkobjcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AdviseInkChange(hrc : HRECOCONTEXT, bnewstroke : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn CreateContext(hrec : HRECOGNIZER, phrc : *mut HRECOCONTEXT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn CreateRecognizer(pclsid : *mut ::windows_sys::core::GUID, phrec : *mut HRECOGNIZER) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn DestroyContext(hrc : HRECOCONTEXT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn DestroyRecognizer(hrec : HRECOGNIZER) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn DestroyWordList(hwl : HRECOWORDLIST) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn EndInkInput(hrc : HRECOCONTEXT) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn GetAllRecognizers(recognizerclsids : *mut *mut ::windows_sys::core::GUID, count : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn GetBestResultString(hrc : HRECOCONTEXT, pcsize : *mut u32, pwcbestresult : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn GetLatticePtr(hrc : HRECOCONTEXT, pplattice : *mut *mut RECO_LATTICE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn GetLeftSeparator(hrc : HRECOCONTEXT, pcsize : *mut u32, pwcleftseparator : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn GetRecoAttributes(hrec : HRECOGNIZER, precoattrs : *mut RECO_ATTRS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn GetResultPropertyList(hrec : HRECOGNIZER, ppropertycount : *mut u32, ppropertyguid : *mut ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn GetRightSeparator(hrc : HRECOCONTEXT, pcsize : *mut u32, pwcrightseparator : ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn GetUnicodeRanges(hrec : HRECOGNIZER, pcranges : *mut u32, pcr : *mut CHARACTER_RANGE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn IsStringSupported(hrc : HRECOCONTEXT, wcstring : u32, pwcstring : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn LoadCachedAttributes(clsid : ::windows_sys::core::GUID, precoattributes : *mut RECO_ATTRS) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn MakeWordList(hrec : HRECOGNIZER, pbuffer : ::windows_sys::core::PCWSTR, phwl : *mut HRECOWORDLIST) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("inkobjcore.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Process(hrc : HRECOCONTEXT, pbpartialprocessing : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn SetEnabledUnicodeRanges(hrc : HRECOCONTEXT, cranges : u32, pcr : *mut CHARACTER_RANGE) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn SetFactoid(hrc : HRECOCONTEXT, cwcfactoid : u32, pwcfactoid : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn SetFlags(hrc : HRECOCONTEXT, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn SetGuide(hrc : HRECOCONTEXT, pguide : *const RECO_GUIDE, iindex : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn SetTextContext(hrc : HRECOCONTEXT, cwcbefore : u32, pwcbefore : ::windows_sys::core::PCWSTR, cwcafter : u32, pwcafter : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("inkobjcore.dll" "system" fn SetWordList(hrc : HRECOCONTEXT, hwl : HRECOWORDLIST) -> ::windows_sys::core::HRESULT); +pub type IDynamicRenderer = *mut ::core::ffi::c_void; +pub type IGestureRecognizer = *mut ::core::ffi::c_void; +pub type IHandwrittenTextInsertion = *mut ::core::ffi::c_void; +pub type IInk = *mut ::core::ffi::c_void; +pub type IInkCollector = *mut ::core::ffi::c_void; +pub type IInkCursor = *mut ::core::ffi::c_void; +pub type IInkCursorButton = *mut ::core::ffi::c_void; +pub type IInkCursorButtons = *mut ::core::ffi::c_void; +pub type IInkCursors = *mut ::core::ffi::c_void; +pub type IInkCustomStrokes = *mut ::core::ffi::c_void; +pub type IInkDisp = *mut ::core::ffi::c_void; +pub type IInkDivider = *mut ::core::ffi::c_void; +pub type IInkDivisionResult = *mut ::core::ffi::c_void; +pub type IInkDivisionUnit = *mut ::core::ffi::c_void; +pub type IInkDivisionUnits = *mut ::core::ffi::c_void; +pub type IInkDrawingAttributes = *mut ::core::ffi::c_void; +pub type IInkEdit = *mut ::core::ffi::c_void; +pub type IInkExtendedProperties = *mut ::core::ffi::c_void; +pub type IInkExtendedProperty = *mut ::core::ffi::c_void; +pub type IInkGesture = *mut ::core::ffi::c_void; +pub type IInkLineInfo = *mut ::core::ffi::c_void; +pub type IInkOverlay = *mut ::core::ffi::c_void; +pub type IInkPicture = *mut ::core::ffi::c_void; +pub type IInkRecognitionAlternate = *mut ::core::ffi::c_void; +pub type IInkRecognitionAlternates = *mut ::core::ffi::c_void; +pub type IInkRecognitionResult = *mut ::core::ffi::c_void; +pub type IInkRecognizer = *mut ::core::ffi::c_void; +pub type IInkRecognizer2 = *mut ::core::ffi::c_void; +pub type IInkRecognizerContext = *mut ::core::ffi::c_void; +pub type IInkRecognizerContext2 = *mut ::core::ffi::c_void; +pub type IInkRecognizerGuide = *mut ::core::ffi::c_void; +pub type IInkRecognizers = *mut ::core::ffi::c_void; +pub type IInkRectangle = *mut ::core::ffi::c_void; +pub type IInkRenderer = *mut ::core::ffi::c_void; +pub type IInkStrokeDisp = *mut ::core::ffi::c_void; +pub type IInkStrokes = *mut ::core::ffi::c_void; +pub type IInkTablet = *mut ::core::ffi::c_void; +pub type IInkTablet2 = *mut ::core::ffi::c_void; +pub type IInkTablet3 = *mut ::core::ffi::c_void; +pub type IInkTablets = *mut ::core::ffi::c_void; +pub type IInkTransform = *mut ::core::ffi::c_void; +pub type IInkWordList = *mut ::core::ffi::c_void; +pub type IInkWordList2 = *mut ::core::ffi::c_void; +pub type IInputPanelWindowHandle = *mut ::core::ffi::c_void; +pub type IMathInputControl = *mut ::core::ffi::c_void; +pub type IPenInputPanel = *mut ::core::ffi::c_void; +pub type IRealTimeStylus = *mut ::core::ffi::c_void; +pub type IRealTimeStylus2 = *mut ::core::ffi::c_void; +pub type IRealTimeStylus3 = *mut ::core::ffi::c_void; +pub type IRealTimeStylusSynchronization = *mut ::core::ffi::c_void; +pub type ISketchInk = *mut ::core::ffi::c_void; +pub type IStrokeBuilder = *mut ::core::ffi::c_void; +pub type IStylusAsyncPlugin = *mut ::core::ffi::c_void; +pub type IStylusPlugin = *mut ::core::ffi::c_void; +pub type IStylusSyncPlugin = *mut ::core::ffi::c_void; +pub type ITextInputPanel = *mut ::core::ffi::c_void; +pub type ITextInputPanelEventSink = *mut ::core::ffi::c_void; +pub type ITextInputPanelRunInfo = *mut ::core::ffi::c_void; +pub type ITipAutoCompleteClient = *mut ::core::ffi::c_void; +pub type ITipAutoCompleteProvider = *mut ::core::ffi::c_void; +pub type _IInkCollectorEvents = *mut ::core::ffi::c_void; +pub type _IInkEditEvents = *mut ::core::ffi::c_void; +pub type _IInkEvents = *mut ::core::ffi::c_void; +pub type _IInkOverlayEvents = *mut ::core::ffi::c_void; +pub type _IInkPictureEvents = *mut ::core::ffi::c_void; +pub type _IInkRecognitionEvents = *mut ::core::ffi::c_void; +pub type _IInkStrokesEvents = *mut ::core::ffi::c_void; +pub type _IMathInputControlEvents = *mut ::core::ffi::c_void; +pub type _IPenInputPanelEvents = *mut ::core::ffi::c_void; +pub const ALT_BREAKS_FULL: ALT_BREAKS = 2i32; +pub const ALT_BREAKS_SAME: ALT_BREAKS = 0i32; +pub const ALT_BREAKS_UNIQUE: ALT_BREAKS = 1i32; +pub const ASYNC_RECO_ADDSTROKE_FAILED: u32 = 4u32; +pub const ASYNC_RECO_INTERRUPTED: u32 = 1u32; +pub const ASYNC_RECO_PROCESS_FAILED: u32 = 2u32; +pub const ASYNC_RECO_RESETCONTEXT_FAILED: u32 = 16u32; +pub const ASYNC_RECO_SETCACMODE_FAILED: u32 = 8u32; +pub const ASYNC_RECO_SETFACTOID_FAILED: u32 = 128u32; +pub const ASYNC_RECO_SETFLAGS_FAILED: u32 = 64u32; +pub const ASYNC_RECO_SETGUIDE_FAILED: u32 = 32u32; +pub const ASYNC_RECO_SETTEXTCONTEXT_FAILED: u32 = 256u32; +pub const ASYNC_RECO_SETWORDLIST_FAILED: u32 = 512u32; +pub const AsyncStylusQueue: StylusQueue = 3i32; +pub const AsyncStylusQueueImmediate: StylusQueue = 2i32; +pub const BEST_COMPLETE: u32 = 2u32; +pub const CAC_FULL: u32 = 0u32; +pub const CAC_PREFIX: u32 = 1u32; +pub const CAC_RANDOM: u32 = 2u32; +pub const CFL_INTERMEDIATE: CONFIDENCE_LEVEL = 1i32; +pub const CFL_POOR: CONFIDENCE_LEVEL = 2i32; +pub const CFL_STRONG: CONFIDENCE_LEVEL = 0i32; +pub const Closed: VisualState = 4i32; +pub const CorrectionMode_NotVisible: CorrectionMode = 0i32; +pub const CorrectionMode_PostInsertionCollapsed: CorrectionMode = 2i32; +pub const CorrectionMode_PostInsertionExpanded: CorrectionMode = 3i32; +pub const CorrectionMode_PreInsertion: CorrectionMode = 1i32; +pub const CorrectionPosition_Auto: CorrectionPosition = 0i32; +pub const CorrectionPosition_Bottom: CorrectionPosition = 1i32; +pub const CorrectionPosition_Top: CorrectionPosition = 2i32; +pub const DISPID_DAAntiAliased: DISPID_InkDrawingAttributes = 6i32; +pub const DISPID_DAClone: DISPID_InkDrawingAttributes = 10i32; +pub const DISPID_DAColor: DISPID_InkDrawingAttributes = 2i32; +pub const DISPID_DAExtendedProperties: DISPID_InkDrawingAttributes = 11i32; +pub const DISPID_DAFitToCurve: DISPID_InkDrawingAttributes = 4i32; +pub const DISPID_DAHeight: DISPID_InkDrawingAttributes = 1i32; +pub const DISPID_DAIgnorePressure: DISPID_InkDrawingAttributes = 5i32; +pub const DISPID_DAPenTip: DISPID_InkDrawingAttributes = 9i32; +pub const DISPID_DARasterOperation: DISPID_InkDrawingAttributes = 8i32; +pub const DISPID_DATransparency: DISPID_InkDrawingAttributes = 7i32; +pub const DISPID_DAWidth: DISPID_InkDrawingAttributes = 3i32; +pub const DISPID_DisableNoScroll: DISPID_InkEdit = 3i32; +pub const DISPID_DragIcon: DISPID_InkEdit = 21i32; +pub const DISPID_DrawAttr: DISPID_InkEdit = 27i32; +pub const DISPID_Enabled: DISPID_InkEdit = 5i32; +pub const DISPID_Factoid: DISPID_InkEdit = 29i32; +pub const DISPID_GetGestStatus: DISPID_InkEdit = 33i32; +pub const DISPID_Hwnd: DISPID_InkEdit = 2i32; +pub const DISPID_IAddStrokesAtRectangle: DISPID_Ink = 17i32; +pub const DISPID_ICAutoRedraw: DISPID_InkCollector = 8i32; +pub const DISPID_ICBId: DISPID_InkCursorButton = 1i32; +pub const DISPID_ICBName: DISPID_InkCursorButton = 0i32; +pub const DISPID_ICBState: DISPID_InkCursorButton = 2i32; +pub const DISPID_ICBsCount: DISPID_InkCursorButtons = 1i32; +pub const DISPID_ICBsItem: DISPID_InkCursorButtons = 0i32; +pub const DISPID_ICBs_NewEnum: DISPID_InkCursorButtons = -4i32; +pub const DISPID_ICCollectingInk: DISPID_InkCollector = 9i32; +pub const DISPID_ICCollectionMode: DISPID_InkCollector = 28i32; +pub const DISPID_ICCursors: DISPID_InkCollector = 20i32; +pub const DISPID_ICDefaultDrawingAttributes: DISPID_InkCollector = 5i32; +pub const DISPID_ICDesiredPacketDescription: DISPID_InkCollector = 32i32; +pub const DISPID_ICDynamicRendering: DISPID_InkCollector = 31i32; +pub const DISPID_ICECursorButtonDown: DISPID_InkCollectorEvent = 5i32; +pub const DISPID_ICECursorButtonUp: DISPID_InkCollectorEvent = 6i32; +pub const DISPID_ICECursorDown: DISPID_InkCollectorEvent = 2i32; +pub const DISPID_ICECursorInRange: DISPID_InkCollectorEvent = 7i32; +pub const DISPID_ICECursorOutOfRange: DISPID_InkCollectorEvent = 8i32; +pub const DISPID_ICEGesture: DISPID_InkCollectorEvent = 10i32; +pub const DISPID_ICENewInAirPackets: DISPID_InkCollectorEvent = 4i32; +pub const DISPID_ICENewPackets: DISPID_InkCollectorEvent = 3i32; +pub const DISPID_ICEStroke: DISPID_InkCollectorEvent = 1i32; +pub const DISPID_ICESystemGesture: DISPID_InkCollectorEvent = 9i32; +pub const DISPID_ICETabletAdded: DISPID_InkCollectorEvent = 11i32; +pub const DISPID_ICETabletRemoved: DISPID_InkCollectorEvent = 12i32; +pub const DISPID_ICEnabled: DISPID_InkCollector = 1i32; +pub const DISPID_ICGetEventInterest: DISPID_InkCollector = 11i32; +pub const DISPID_ICGetGestureStatus: DISPID_InkCollector = 30i32; +pub const DISPID_ICGetWindowInputRectangle: DISPID_InkCollector = 24i32; +pub const DISPID_ICHwnd: DISPID_InkCollector = 2i32; +pub const DISPID_ICInk: DISPID_InkCollector = 7i32; +pub const DISPID_ICMarginX: DISPID_InkCollector = 21i32; +pub const DISPID_ICMarginY: DISPID_InkCollector = 22i32; +pub const DISPID_ICMouseIcon: DISPID_InkCollector = 35i32; +pub const DISPID_ICMousePointer: DISPID_InkCollector = 36i32; +pub const DISPID_ICPaint: DISPID_InkCollector = 3i32; +pub const DISPID_ICRenderer: DISPID_InkCollector = 6i32; +pub const DISPID_ICSetAllTabletsMode: DISPID_InkCollector = 26i32; +pub const DISPID_ICSetEventInterest: DISPID_InkCollector = 10i32; +pub const DISPID_ICSetGestureStatus: DISPID_InkCollector = 29i32; +pub const DISPID_ICSetSingleTabletIntegratedMode: DISPID_InkCollector = 27i32; +pub const DISPID_ICSetWindowInputRectangle: DISPID_InkCollector = 23i32; +pub const DISPID_ICSsAdd: DISPID_InkCustomStrokes = 2i32; +pub const DISPID_ICSsClear: DISPID_InkCustomStrokes = 4i32; +pub const DISPID_ICSsCount: DISPID_InkCustomStrokes = 1i32; +pub const DISPID_ICSsItem: DISPID_InkCustomStrokes = 0i32; +pub const DISPID_ICSsRemove: DISPID_InkCustomStrokes = 3i32; +pub const DISPID_ICSs_NewEnum: DISPID_InkCustomStrokes = -4i32; +pub const DISPID_ICSupportHighContrastInk: DISPID_InkCollector = 38i32; +pub const DISPID_ICTablet: DISPID_InkCollector = 25i32; +pub const DISPID_ICText: DISPID_InkCollector = 4i32; +pub const DISPID_ICanPaste: DISPID_Ink = 24i32; +pub const DISPID_IClip: DISPID_Ink = 18i32; +pub const DISPID_IClipboardCopy: DISPID_Ink = 23i32; +pub const DISPID_IClipboardCopyWithRectangle: DISPID_Ink = 22i32; +pub const DISPID_IClipboardPaste: DISPID_Ink = 25i32; +pub const DISPID_IClone: DISPID_Ink = 10i32; +pub const DISPID_ICreateStroke: DISPID_Ink = 16i32; +pub const DISPID_ICreateStrokeFromPoints: DISPID_Ink = 21i32; +pub const DISPID_ICreateStrokes: DISPID_Ink = 15i32; +pub const DISPID_ICsCount: DISPID_InkCursors = 1i32; +pub const DISPID_ICsItem: DISPID_InkCursors = 0i32; +pub const DISPID_ICs_NewEnum: DISPID_InkCursors = -4i32; +pub const DISPID_ICsrButtons: DISPID_InkCursor = 3i32; +pub const DISPID_ICsrDrawingAttributes: DISPID_InkCursor = 2i32; +pub const DISPID_ICsrId: DISPID_InkCursor = 1i32; +pub const DISPID_ICsrInverted: DISPID_InkCursor = 4i32; +pub const DISPID_ICsrName: DISPID_InkCursor = 0i32; +pub const DISPID_ICsrTablet: DISPID_InkCursor = 5i32; +pub const DISPID_ICustomStrokes: DISPID_Ink = 9i32; +pub const DISPID_IDeleteStroke: DISPID_Ink = 5i32; +pub const DISPID_IDeleteStrokes: DISPID_Ink = 4i32; +pub const DISPID_IDirty: DISPID_Ink = 8i32; +pub const DISPID_IEInkAdded: DISPID_InkEvent = 1i32; +pub const DISPID_IEInkDeleted: DISPID_InkEvent = 2i32; +pub const DISPID_IEPData: DISPID_InkExtendedProperty = 2i32; +pub const DISPID_IEPGuid: DISPID_InkExtendedProperty = 1i32; +pub const DISPID_IEPsAdd: DISPID_InkExtendedProperties = 2i32; +pub const DISPID_IEPsClear: DISPID_InkExtendedProperties = 4i32; +pub const DISPID_IEPsCount: DISPID_InkExtendedProperties = 1i32; +pub const DISPID_IEPsDoesPropertyExist: DISPID_InkExtendedProperties = 5i32; +pub const DISPID_IEPsItem: DISPID_InkExtendedProperties = 0i32; +pub const DISPID_IEPsRemove: DISPID_InkExtendedProperties = 3i32; +pub const DISPID_IEPs_NewEnum: DISPID_InkExtendedProperties = -4i32; +pub const DISPID_IExtendedProperties: DISPID_Ink = 2i32; +pub const DISPID_IExtractStrokes: DISPID_Ink = 6i32; +pub const DISPID_IExtractWithRectangle: DISPID_Ink = 7i32; +pub const DISPID_IGConfidence: DISPID_InkGesture = 2i32; +pub const DISPID_IGGetHotPoint: DISPID_InkGesture = 1i32; +pub const DISPID_IGId: DISPID_InkGesture = 0i32; +pub const DISPID_IGetBoundingBox: DISPID_Ink = 3i32; +pub const DISPID_IHitTestCircle: DISPID_Ink = 11i32; +pub const DISPID_IHitTestWithLasso: DISPID_Ink = 13i32; +pub const DISPID_IHitTestWithRectangle: DISPID_Ink = 12i32; +pub const DISPID_IInkDivider_Divide: DISPID_InkDivider = 4i32; +pub const DISPID_IInkDivider_LineHeight: DISPID_InkDivider = 3i32; +pub const DISPID_IInkDivider_RecognizerContext: DISPID_InkDivider = 2i32; +pub const DISPID_IInkDivider_Strokes: DISPID_InkDivider = 1i32; +pub const DISPID_IInkDivisionResult_ResultByType: DISPID_InkDivisionResult = 2i32; +pub const DISPID_IInkDivisionResult_Strokes: DISPID_InkDivisionResult = 1i32; +pub const DISPID_IInkDivisionUnit_DivisionType: DISPID_InkDivisionUnit = 2i32; +pub const DISPID_IInkDivisionUnit_RecognizedString: DISPID_InkDivisionUnit = 3i32; +pub const DISPID_IInkDivisionUnit_RotationTransform: DISPID_InkDivisionUnit = 4i32; +pub const DISPID_IInkDivisionUnit_Strokes: DISPID_InkDivisionUnit = 1i32; +pub const DISPID_IInkDivisionUnits_Count: DISPID_InkDivisionUnits = 1i32; +pub const DISPID_IInkDivisionUnits_Item: DISPID_InkDivisionUnits = 0i32; +pub const DISPID_IInkDivisionUnits_NewEnum: DISPID_InkDivisionUnits = -4i32; +pub const DISPID_ILoad: DISPID_Ink = 20i32; +pub const DISPID_INearestPoint: DISPID_Ink = 14i32; +pub const DISPID_IOAttachMode: DISPID_InkCollector = 14i32; +pub const DISPID_IODraw: DISPID_InkCollector = 16i32; +pub const DISPID_IOEPainted: DISPID_InkCollectorEvent = 14i32; +pub const DISPID_IOEPainting: DISPID_InkCollectorEvent = 13i32; +pub const DISPID_IOESelectionChanged: DISPID_InkCollectorEvent = 16i32; +pub const DISPID_IOESelectionChanging: DISPID_InkCollectorEvent = 15i32; +pub const DISPID_IOESelectionMoved: DISPID_InkCollectorEvent = 18i32; +pub const DISPID_IOESelectionMoving: DISPID_InkCollectorEvent = 17i32; +pub const DISPID_IOESelectionResized: DISPID_InkCollectorEvent = 20i32; +pub const DISPID_IOESelectionResizing: DISPID_InkCollectorEvent = 19i32; +pub const DISPID_IOEStrokesDeleted: DISPID_InkCollectorEvent = 22i32; +pub const DISPID_IOEStrokesDeleting: DISPID_InkCollectorEvent = 21i32; +pub const DISPID_IOEditingMode: DISPID_InkCollector = 12i32; +pub const DISPID_IOEraserMode: DISPID_InkCollector = 33i32; +pub const DISPID_IOEraserWidth: DISPID_InkCollector = 34i32; +pub const DISPID_IOHitTestSelection: DISPID_InkCollector = 15i32; +pub const DISPID_IOSelection: DISPID_InkCollector = 13i32; +pub const DISPID_IOSupportHighContrastSelectionUI: DISPID_InkCollector = 39i32; +pub const DISPID_IPBackColor: DISPID_InkCollector = 19i32; +pub const DISPID_IPEChangeUICues: DISPID_InkCollectorEvent = 23i32; +pub const DISPID_IPEClick: DISPID_InkCollectorEvent = 24i32; +pub const DISPID_IPEDblClick: DISPID_InkCollectorEvent = 25i32; +pub const DISPID_IPEInvalidated: DISPID_InkCollectorEvent = 26i32; +pub const DISPID_IPEKeyDown: DISPID_InkCollectorEvent = 37i32; +pub const DISPID_IPEKeyPress: DISPID_InkCollectorEvent = 38i32; +pub const DISPID_IPEKeyUp: DISPID_InkCollectorEvent = 39i32; +pub const DISPID_IPEMouseDown: DISPID_InkCollectorEvent = 27i32; +pub const DISPID_IPEMouseEnter: DISPID_InkCollectorEvent = 28i32; +pub const DISPID_IPEMouseHover: DISPID_InkCollectorEvent = 29i32; +pub const DISPID_IPEMouseLeave: DISPID_InkCollectorEvent = 30i32; +pub const DISPID_IPEMouseMove: DISPID_InkCollectorEvent = 31i32; +pub const DISPID_IPEMouseUp: DISPID_InkCollectorEvent = 32i32; +pub const DISPID_IPEMouseWheel: DISPID_InkCollectorEvent = 33i32; +pub const DISPID_IPEResize: DISPID_InkCollectorEvent = 40i32; +pub const DISPID_IPESizeChanged: DISPID_InkCollectorEvent = 41i32; +pub const DISPID_IPESizeModeChanged: DISPID_InkCollectorEvent = 34i32; +pub const DISPID_IPEStyleChanged: DISPID_InkCollectorEvent = 35i32; +pub const DISPID_IPESystemColorsChanged: DISPID_InkCollectorEvent = 36i32; +pub const DISPID_IPInkEnabled: DISPID_InkCollector = 37i32; +pub const DISPID_IPPicture: DISPID_InkCollector = 17i32; +pub const DISPID_IPSizeMode: DISPID_InkCollector = 18i32; +pub const DISPID_IRBottom: DISPID_InkRectangle = 3i32; +pub const DISPID_IRData: DISPID_InkRectangle = 7i32; +pub const DISPID_IRDraw: DISPID_InkRenderer = 5i32; +pub const DISPID_IRDrawStroke: DISPID_InkRenderer = 6i32; +pub const DISPID_IRERecognition: DISPID_InkRecognitionEvent = 2i32; +pub const DISPID_IRERecognitionWithAlternates: DISPID_InkRecognitionEvent = 1i32; +pub const DISPID_IRGColumns: DISPID_InkRecognizerGuide = 4i32; +pub const DISPID_IRGDrawnBox: DISPID_InkRecognizerGuide = 2i32; +pub const DISPID_IRGGuideData: DISPID_InkRecognizerGuide = 6i32; +pub const DISPID_IRGMidline: DISPID_InkRecognizerGuide = 5i32; +pub const DISPID_IRGRows: DISPID_InkRecognizerGuide = 3i32; +pub const DISPID_IRGWritingBox: DISPID_InkRecognizerGuide = 1i32; +pub const DISPID_IRGetObjectTransform: DISPID_InkRenderer = 3i32; +pub const DISPID_IRGetRectangle: DISPID_InkRectangle = 5i32; +pub const DISPID_IRGetViewTransform: DISPID_InkRenderer = 1i32; +pub const DISPID_IRInkSpaceToPixel: DISPID_InkRenderer = 8i32; +pub const DISPID_IRInkSpaceToPixelFromPoints: DISPID_InkRenderer = 10i32; +pub const DISPID_IRLeft: DISPID_InkRectangle = 2i32; +pub const DISPID_IRMeasure: DISPID_InkRenderer = 11i32; +pub const DISPID_IRMeasureStroke: DISPID_InkRenderer = 12i32; +pub const DISPID_IRMove: DISPID_InkRenderer = 13i32; +pub const DISPID_IRPixelToInkSpace: DISPID_InkRenderer = 7i32; +pub const DISPID_IRPixelToInkSpaceFromPoints: DISPID_InkRenderer = 9i32; +pub const DISPID_IRRight: DISPID_InkRectangle = 4i32; +pub const DISPID_IRRotate: DISPID_InkRenderer = 14i32; +pub const DISPID_IRScale: DISPID_InkRenderer = 15i32; +pub const DISPID_IRSetObjectTransform: DISPID_InkRenderer = 4i32; +pub const DISPID_IRSetRectangle: DISPID_InkRectangle = 6i32; +pub const DISPID_IRSetViewTransform: DISPID_InkRenderer = 2i32; +pub const DISPID_IRTop: DISPID_InkRectangle = 1i32; +pub const DISPID_IRecoCtx2_EnabledUnicodeRanges: DISPID_InkRecoContext2 = 0i32; +pub const DISPID_IRecoCtx_BackgroundRecognize: DISPID_InkRecoContext = 15i32; +pub const DISPID_IRecoCtx_BackgroundRecognizeWithAlternates: DISPID_InkRecoContext = 16i32; +pub const DISPID_IRecoCtx_CharacterAutoCompletionMode: DISPID_InkRecoContext = 2i32; +pub const DISPID_IRecoCtx_Clone: DISPID_InkRecoContext = 11i32; +pub const DISPID_IRecoCtx_EndInkInput: DISPID_InkRecoContext = 14i32; +pub const DISPID_IRecoCtx_Factoid: DISPID_InkRecoContext = 3i32; +pub const DISPID_IRecoCtx_Flags: DISPID_InkRecoContext = 7i32; +pub const DISPID_IRecoCtx_Guide: DISPID_InkRecoContext = 6i32; +pub const DISPID_IRecoCtx_IsStringSupported: DISPID_InkRecoContext = 17i32; +pub const DISPID_IRecoCtx_PrefixText: DISPID_InkRecoContext = 8i32; +pub const DISPID_IRecoCtx_Recognize: DISPID_InkRecoContext = 12i32; +pub const DISPID_IRecoCtx_Recognizer: DISPID_InkRecoContext = 5i32; +pub const DISPID_IRecoCtx_StopBackgroundRecognition: DISPID_InkRecoContext = 13i32; +pub const DISPID_IRecoCtx_StopRecognition: DISPID_InkRecoContext = 10i32; +pub const DISPID_IRecoCtx_Strokes: DISPID_InkRecoContext = 1i32; +pub const DISPID_IRecoCtx_SuffixText: DISPID_InkRecoContext = 9i32; +pub const DISPID_IRecoCtx_WordList: DISPID_InkRecoContext = 4i32; +pub const DISPID_IRecosCount: DISPID_InkRecognizers = 1i32; +pub const DISPID_IRecosGetDefaultRecognizer: DISPID_InkRecognizers = 2i32; +pub const DISPID_IRecosItem: DISPID_InkRecognizers = 0i32; +pub const DISPID_IRecos_NewEnum: DISPID_InkRecognizers = -4i32; +pub const DISPID_ISDBezierCusps: DISPID_InkStrokeDisp = 15i32; +pub const DISPID_ISDBezierPoints: DISPID_InkStrokeDisp = 13i32; +pub const DISPID_ISDClip: DISPID_InkStrokeDisp = 7i32; +pub const DISPID_ISDDeleted: DISPID_InkStrokeDisp = 20i32; +pub const DISPID_ISDDrawingAttributes: DISPID_InkStrokeDisp = 4i32; +pub const DISPID_ISDExtendedProperties: DISPID_InkStrokeDisp = 11i32; +pub const DISPID_ISDFindIntersections: DISPID_InkStrokeDisp = 5i32; +pub const DISPID_ISDGetBoundingBox: DISPID_InkStrokeDisp = 3i32; +pub const DISPID_ISDGetFlattenedBezierPoints: DISPID_InkStrokeDisp = 27i32; +pub const DISPID_ISDGetPacketData: DISPID_InkStrokeDisp = 24i32; +pub const DISPID_ISDGetPacketDescriptionPropertyMetrics: DISPID_InkStrokeDisp = 21i32; +pub const DISPID_ISDGetPacketValuesByProperty: DISPID_InkStrokeDisp = 25i32; +pub const DISPID_ISDGetPoints: DISPID_InkStrokeDisp = 22i32; +pub const DISPID_ISDGetRectangleIntersections: DISPID_InkStrokeDisp = 6i32; +pub const DISPID_ISDHitTestCircle: DISPID_InkStrokeDisp = 8i32; +pub const DISPID_ISDID: DISPID_InkStrokeDisp = 2i32; +pub const DISPID_ISDInk: DISPID_InkStrokeDisp = 12i32; +pub const DISPID_ISDInkIndex: DISPID_InkStrokeDisp = 1i32; +pub const DISPID_ISDMove: DISPID_InkStrokeDisp = 30i32; +pub const DISPID_ISDNearestPoint: DISPID_InkStrokeDisp = 9i32; +pub const DISPID_ISDPacketCount: DISPID_InkStrokeDisp = 17i32; +pub const DISPID_ISDPacketDescription: DISPID_InkStrokeDisp = 19i32; +pub const DISPID_ISDPacketSize: DISPID_InkStrokeDisp = 18i32; +pub const DISPID_ISDPolylineCusps: DISPID_InkStrokeDisp = 14i32; +pub const DISPID_ISDRotate: DISPID_InkStrokeDisp = 31i32; +pub const DISPID_ISDScale: DISPID_InkStrokeDisp = 33i32; +pub const DISPID_ISDScaleToRectangle: DISPID_InkStrokeDisp = 28i32; +pub const DISPID_ISDSelfIntersections: DISPID_InkStrokeDisp = 16i32; +pub const DISPID_ISDSetPacketValuesByProperty: DISPID_InkStrokeDisp = 26i32; +pub const DISPID_ISDSetPoints: DISPID_InkStrokeDisp = 23i32; +pub const DISPID_ISDShear: DISPID_InkStrokeDisp = 32i32; +pub const DISPID_ISDSplit: DISPID_InkStrokeDisp = 10i32; +pub const DISPID_ISDTransform: DISPID_InkStrokeDisp = 29i32; +pub const DISPID_ISave: DISPID_Ink = 19i32; +pub const DISPID_ISsAdd: DISPID_InkStrokes = 4i32; +pub const DISPID_ISsAddStrokes: DISPID_InkStrokes = 5i32; +pub const DISPID_ISsClip: DISPID_InkStrokes = 17i32; +pub const DISPID_ISsCount: DISPID_InkStrokes = 1i32; +pub const DISPID_ISsGetBoundingBox: DISPID_InkStrokes = 10i32; +pub const DISPID_ISsInk: DISPID_InkStrokes = 3i32; +pub const DISPID_ISsItem: DISPID_InkStrokes = 0i32; +pub const DISPID_ISsModifyDrawingAttributes: DISPID_InkStrokes = 9i32; +pub const DISPID_ISsMove: DISPID_InkStrokes = 13i32; +pub const DISPID_ISsRecognitionResult: DISPID_InkStrokes = 18i32; +pub const DISPID_ISsRemove: DISPID_InkStrokes = 6i32; +pub const DISPID_ISsRemoveRecognitionResult: DISPID_InkStrokes = 19i32; +pub const DISPID_ISsRemoveStrokes: DISPID_InkStrokes = 7i32; +pub const DISPID_ISsRotate: DISPID_InkStrokes = 14i32; +pub const DISPID_ISsScale: DISPID_InkStrokes = 16i32; +pub const DISPID_ISsScaleToRectangle: DISPID_InkStrokes = 11i32; +pub const DISPID_ISsShear: DISPID_InkStrokes = 15i32; +pub const DISPID_ISsToString: DISPID_InkStrokes = 8i32; +pub const DISPID_ISsTransform: DISPID_InkStrokes = 12i32; +pub const DISPID_ISsValid: DISPID_InkStrokes = 2i32; +pub const DISPID_ISs_NewEnum: DISPID_InkStrokes = -4i32; +pub const DISPID_IStrokes: DISPID_Ink = 1i32; +pub const DISPID_IT2DeviceKind: DISPID_InkTablet2 = 0i32; +pub const DISPID_IT3IsMultiTouch: DISPID_InkTablet3 = 0i32; +pub const DISPID_IT3MaximumCursors: DISPID_InkTablet3 = 1i32; +pub const DISPID_ITData: DISPID_InkTransform = 15i32; +pub const DISPID_ITGetTransform: DISPID_InkTransform = 13i32; +pub const DISPID_ITHardwareCapabilities: DISPID_InkTablet = 5i32; +pub const DISPID_ITIsPacketPropertySupported: DISPID_InkTablet = 3i32; +pub const DISPID_ITMaximumInputRectangle: DISPID_InkTablet = 4i32; +pub const DISPID_ITName: DISPID_InkTablet = 0i32; +pub const DISPID_ITPlugAndPlayId: DISPID_InkTablet = 1i32; +pub const DISPID_ITPropertyMetrics: DISPID_InkTablet = 2i32; +pub const DISPID_ITReflect: DISPID_InkTransform = 4i32; +pub const DISPID_ITReset: DISPID_InkTransform = 1i32; +pub const DISPID_ITRotate: DISPID_InkTransform = 3i32; +pub const DISPID_ITScale: DISPID_InkTransform = 6i32; +pub const DISPID_ITSetTransform: DISPID_InkTransform = 14i32; +pub const DISPID_ITShear: DISPID_InkTransform = 5i32; +pub const DISPID_ITTranslate: DISPID_InkTransform = 2i32; +pub const DISPID_ITeDx: DISPID_InkTransform = 11i32; +pub const DISPID_ITeDy: DISPID_InkTransform = 12i32; +pub const DISPID_ITeM11: DISPID_InkTransform = 7i32; +pub const DISPID_ITeM12: DISPID_InkTransform = 8i32; +pub const DISPID_ITeM21: DISPID_InkTransform = 9i32; +pub const DISPID_ITeM22: DISPID_InkTransform = 10i32; +pub const DISPID_ITsCount: DISPID_InkTablets = 2i32; +pub const DISPID_ITsDefaultTablet: DISPID_InkTablets = 1i32; +pub const DISPID_ITsIsPacketPropertySupported: DISPID_InkTablets = 3i32; +pub const DISPID_ITsItem: DISPID_InkTablets = 0i32; +pub const DISPID_ITs_NewEnum: DISPID_InkTablets = -4i32; +pub const DISPID_IeeChange: DISPID_InkEditEvents = 1i32; +pub const DISPID_IeeClick: DISPID_InkEditEvents = 9i32; +pub const DISPID_IeeCursorDown: DISPID_InkEditEvents = 21i32; +pub const DISPID_IeeDblClick: DISPID_InkEditEvents = 8i32; +pub const DISPID_IeeGesture: DISPID_InkEditEvents = 23i32; +pub const DISPID_IeeKeyDown: DISPID_InkEditEvents = 3i32; +pub const DISPID_IeeKeyPress: DISPID_InkEditEvents = 7i32; +pub const DISPID_IeeKeyUp: DISPID_InkEditEvents = 4i32; +pub const DISPID_IeeMouseDown: DISPID_InkEditEvents = 6i32; +pub const DISPID_IeeMouseMove: DISPID_InkEditEvents = 10i32; +pub const DISPID_IeeMouseUp: DISPID_InkEditEvents = 5i32; +pub const DISPID_IeeRecognitionResult: DISPID_InkEditEvents = 24i32; +pub const DISPID_IeeSelChange: DISPID_InkEditEvents = 2i32; +pub const DISPID_IeeStroke: DISPID_InkEditEvents = 22i32; +pub const DISPID_InkInsertMode: DISPID_InkEdit = 25i32; +pub const DISPID_InkMode: DISPID_InkEdit = 24i32; +pub const DISPID_InkRecoAlternate_AlternatesWithConstantPropertyValues: DISPID_InkRecoAlternate = 15i32; +pub const DISPID_InkRecoAlternate_Ascender: DISPID_InkRecoAlternate = 5i32; +pub const DISPID_InkRecoAlternate_Baseline: DISPID_InkRecoAlternate = 3i32; +pub const DISPID_InkRecoAlternate_Confidence: DISPID_InkRecoAlternate = 7i32; +pub const DISPID_InkRecoAlternate_ConfidenceAlternates: DISPID_InkRecoAlternate = 14i32; +pub const DISPID_InkRecoAlternate_Descender: DISPID_InkRecoAlternate = 6i32; +pub const DISPID_InkRecoAlternate_GetPropertyValue: DISPID_InkRecoAlternate = 12i32; +pub const DISPID_InkRecoAlternate_GetStrokesFromStrokeRanges: DISPID_InkRecoAlternate = 9i32; +pub const DISPID_InkRecoAlternate_GetStrokesFromTextRange: DISPID_InkRecoAlternate = 10i32; +pub const DISPID_InkRecoAlternate_GetTextRangeFromStrokes: DISPID_InkRecoAlternate = 11i32; +pub const DISPID_InkRecoAlternate_LineAlternates: DISPID_InkRecoAlternate = 13i32; +pub const DISPID_InkRecoAlternate_LineNumber: DISPID_InkRecoAlternate = 2i32; +pub const DISPID_InkRecoAlternate_Midline: DISPID_InkRecoAlternate = 4i32; +pub const DISPID_InkRecoAlternate_String: DISPID_InkRecoAlternate = 1i32; +pub const DISPID_InkRecoAlternate_Strokes: DISPID_InkRecoAlternate = 8i32; +pub const DISPID_InkRecognitionAlternates_Count: DISPID_InkRecognitionAlternates = 1i32; +pub const DISPID_InkRecognitionAlternates_Item: DISPID_InkRecognitionAlternates = 0i32; +pub const DISPID_InkRecognitionAlternates_NewEnum: DISPID_InkRecognitionAlternates = -4i32; +pub const DISPID_InkRecognitionAlternates_Strokes: DISPID_InkRecognitionAlternates = 2i32; +pub const DISPID_InkRecognitionResult_AlternatesFromSelection: DISPID_InkRecognitionResult = 5i32; +pub const DISPID_InkRecognitionResult_ModifyTopAlternate: DISPID_InkRecognitionResult = 6i32; +pub const DISPID_InkRecognitionResult_SetResultOnStrokes: DISPID_InkRecognitionResult = 7i32; +pub const DISPID_InkRecognitionResult_Strokes: DISPID_InkRecognitionResult = 3i32; +pub const DISPID_InkRecognitionResult_TopAlternate: DISPID_InkRecognitionResult = 2i32; +pub const DISPID_InkRecognitionResult_TopConfidence: DISPID_InkRecognitionResult = 4i32; +pub const DISPID_InkRecognitionResult_TopString: DISPID_InkRecognitionResult = 1i32; +pub const DISPID_InkWordList2_AddWords: DISPID_InkWordList2 = 3i32; +pub const DISPID_InkWordList_AddWord: DISPID_InkWordList = 0i32; +pub const DISPID_InkWordList_Merge: DISPID_InkWordList = 2i32; +pub const DISPID_InkWordList_RemoveWord: DISPID_InkWordList = 1i32; +pub const DISPID_Locked: DISPID_InkEdit = 4i32; +pub const DISPID_MICClear: DISPID_MathInputControlEvents = 3i32; +pub const DISPID_MICClose: DISPID_MathInputControlEvents = 1i32; +pub const DISPID_MICInsert: DISPID_MathInputControlEvents = 0i32; +pub const DISPID_MICPaint: DISPID_MathInputControlEvents = 2i32; +pub const DISPID_MaxLength: DISPID_InkEdit = 6i32; +pub const DISPID_MultiLine: DISPID_InkEdit = 7i32; +pub const DISPID_PIPAttachedEditWindow: DISPID_PenInputPanel = 0i32; +pub const DISPID_PIPAutoShow: DISPID_PenInputPanel = 16i32; +pub const DISPID_PIPBusy: DISPID_PenInputPanel = 12i32; +pub const DISPID_PIPCommitPendingInput: DISPID_PenInputPanel = 10i32; +pub const DISPID_PIPCurrentPanel: DISPID_PenInputPanel = 2i32; +pub const DISPID_PIPDefaultPanel: DISPID_PenInputPanel = 3i32; +pub const DISPID_PIPEInputFailed: DISPID_PenInputPanelEvents = 2i32; +pub const DISPID_PIPEPanelChanged: DISPID_PenInputPanelEvents = 1i32; +pub const DISPID_PIPEPanelMoving: DISPID_PenInputPanelEvents = 3i32; +pub const DISPID_PIPEVisibleChanged: DISPID_PenInputPanelEvents = 0i32; +pub const DISPID_PIPEnableTsf: DISPID_PenInputPanel = 15i32; +pub const DISPID_PIPFactoid: DISPID_PenInputPanel = 1i32; +pub const DISPID_PIPHeight: DISPID_PenInputPanel = 8i32; +pub const DISPID_PIPHorizontalOffset: DISPID_PenInputPanel = 14i32; +pub const DISPID_PIPLeft: DISPID_PenInputPanel = 6i32; +pub const DISPID_PIPMoveTo: DISPID_PenInputPanel = 9i32; +pub const DISPID_PIPRefresh: DISPID_PenInputPanel = 11i32; +pub const DISPID_PIPTop: DISPID_PenInputPanel = 5i32; +pub const DISPID_PIPVerticalOffset: DISPID_PenInputPanel = 13i32; +pub const DISPID_PIPVisible: DISPID_PenInputPanel = 4i32; +pub const DISPID_PIPWidth: DISPID_PenInputPanel = 7i32; +pub const DISPID_RTSelLength: DISPID_InkEdit = 10i32; +pub const DISPID_RTSelStart: DISPID_InkEdit = 9i32; +pub const DISPID_RTSelText: DISPID_InkEdit = 11i32; +pub const DISPID_RecoCapabilities: DISPID_InkRecognizer = 4i32; +pub const DISPID_RecoClsid: DISPID_InkRecognizer = 1i32; +pub const DISPID_RecoCreateRecognizerContext: DISPID_InkRecognizer = 7i32; +pub const DISPID_RecoId: DISPID_InkRecognizer2 = 0i32; +pub const DISPID_RecoLanguageID: DISPID_InkRecognizer = 5i32; +pub const DISPID_RecoName: DISPID_InkRecognizer = 2i32; +pub const DISPID_RecoPreferredPacketDescription: DISPID_InkRecognizer = 6i32; +pub const DISPID_RecoSupportedProperties: DISPID_InkRecognizer = 8i32; +pub const DISPID_RecoTimeout: DISPID_InkEdit = 26i32; +pub const DISPID_RecoUnicodeRanges: DISPID_InkRecognizer2 = 1i32; +pub const DISPID_RecoVendor: DISPID_InkRecognizer = 3i32; +pub const DISPID_Recognize: DISPID_InkEdit = 32i32; +pub const DISPID_Recognizer: DISPID_InkEdit = 28i32; +pub const DISPID_Refresh: DISPID_InkEdit = 35i32; +pub const DISPID_SEStrokesAdded: DISPID_StrokeEvent = 1i32; +pub const DISPID_SEStrokesRemoved: DISPID_StrokeEvent = 2i32; +pub const DISPID_ScrollBars: DISPID_InkEdit = 8i32; +pub const DISPID_SelAlignment: DISPID_InkEdit = 12i32; +pub const DISPID_SelBold: DISPID_InkEdit = 13i32; +pub const DISPID_SelCharOffset: DISPID_InkEdit = 14i32; +pub const DISPID_SelColor: DISPID_InkEdit = 15i32; +pub const DISPID_SelFontName: DISPID_InkEdit = 16i32; +pub const DISPID_SelFontSize: DISPID_InkEdit = 17i32; +pub const DISPID_SelInk: DISPID_InkEdit = 30i32; +pub const DISPID_SelInksDisplayMode: DISPID_InkEdit = 31i32; +pub const DISPID_SelItalic: DISPID_InkEdit = 18i32; +pub const DISPID_SelRTF: DISPID_InkEdit = 19i32; +pub const DISPID_SelUnderline: DISPID_InkEdit = 20i32; +pub const DISPID_SetGestStatus: DISPID_InkEdit = 34i32; +pub const DISPID_Status: DISPID_InkEdit = 22i32; +pub const DISPID_Text: DISPID_InkEdit = 0i32; +pub const DISPID_TextRTF: DISPID_InkEdit = 1i32; +pub const DISPID_UseMouseForInput: DISPID_InkEdit = 23i32; +pub const DockedBottom: VisualState = 3i32; +pub const DockedTop: VisualState = 2i32; +pub const DynamicRenderer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xecd32aea_746f_4dcb_bf68_082757faff18); +pub const EM_GETDRAWATTR: u32 = 1541u32; +pub const EM_GETFACTOID: u32 = 1549u32; +pub const EM_GETGESTURESTATUS: u32 = 1545u32; +pub const EM_GETINKINSERTMODE: u32 = 1539u32; +pub const EM_GETINKMODE: u32 = 1537u32; +pub const EM_GETMOUSEICON: u32 = 1553u32; +pub const EM_GETMOUSEPOINTER: u32 = 1555u32; +pub const EM_GETRECOGNIZER: u32 = 1547u32; +pub const EM_GETRECOTIMEOUT: u32 = 1543u32; +pub const EM_GETSELINK: u32 = 1551u32; +pub const EM_GETSELINKDISPLAYMODE: u32 = 1562u32; +pub const EM_GETSTATUS: u32 = 1557u32; +pub const EM_GETUSEMOUSEFORINPUT: u32 = 1559u32; +pub const EM_RECOGNIZE: u32 = 1558u32; +pub const EM_SETDRAWATTR: u32 = 1542u32; +pub const EM_SETFACTOID: u32 = 1550u32; +pub const EM_SETGESTURESTATUS: u32 = 1546u32; +pub const EM_SETINKINSERTMODE: u32 = 1540u32; +pub const EM_SETINKMODE: u32 = 1538u32; +pub const EM_SETMOUSEICON: u32 = 1554u32; +pub const EM_SETMOUSEPOINTER: u32 = 1556u32; +pub const EM_SETRECOGNIZER: u32 = 1548u32; +pub const EM_SETRECOTIMEOUT: u32 = 1544u32; +pub const EM_SETSELINK: u32 = 1552u32; +pub const EM_SETSELINKDISPLAYMODE: u32 = 1561u32; +pub const EM_SETUSEMOUSEFORINPUT: u32 = 1560u32; +pub const EventMask_All: EventMask = 4095i32; +pub const EventMask_CorrectionModeChanged: EventMask = 128i32; +pub const EventMask_CorrectionModeChanging: EventMask = 64i32; +pub const EventMask_InPlaceSizeChanged: EventMask = 8i32; +pub const EventMask_InPlaceSizeChanging: EventMask = 4i32; +pub const EventMask_InPlaceStateChanged: EventMask = 2i32; +pub const EventMask_InPlaceStateChanging: EventMask = 1i32; +pub const EventMask_InPlaceVisibilityChanged: EventMask = 512i32; +pub const EventMask_InPlaceVisibilityChanging: EventMask = 256i32; +pub const EventMask_InputAreaChanged: EventMask = 32i32; +pub const EventMask_InputAreaChanging: EventMask = 16i32; +pub const EventMask_TextInserted: EventMask = 2048i32; +pub const EventMask_TextInserting: EventMask = 1024i32; +pub const FACILITY_INK: u32 = 40u32; +pub const FACTOID_BOPOMOFO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BOPOMOFO"); +pub const FACTOID_CHINESESIMPLECOMMON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CHS_COMMON"); +pub const FACTOID_CHINESETRADITIONALCOMMON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CHT_COMMON"); +pub const FACTOID_CURRENCY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CURRENCY"); +pub const FACTOID_DATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DATE"); +pub const FACTOID_DEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DEFAULT"); +pub const FACTOID_DIGIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DIGIT"); +pub const FACTOID_EMAIL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EMAIL"); +pub const FACTOID_FILENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FILENAME"); +pub const FACTOID_HANGULCOMMON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HANGUL_COMMON"); +pub const FACTOID_HANGULRARE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HANGUL_RARE"); +pub const FACTOID_HIRAGANA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HIRAGANA"); +pub const FACTOID_JAMO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("JAMO"); +pub const FACTOID_JAPANESECOMMON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("JPN_COMMON"); +pub const FACTOID_KANJICOMMON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KANJI_COMMON"); +pub const FACTOID_KANJIRARE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KANJI_RARE"); +pub const FACTOID_KATAKANA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KATAKANA"); +pub const FACTOID_KOREANCOMMON: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("KOR_COMMON"); +pub const FACTOID_LOWERCHAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("LOWERCHAR"); +pub const FACTOID_NONE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NONE"); +pub const FACTOID_NUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NUMBER"); +pub const FACTOID_NUMBERSIMPLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NUMSIMPLE"); +pub const FACTOID_ONECHAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ONECHAR"); +pub const FACTOID_PERCENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PERCENT"); +pub const FACTOID_POSTALCODE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("POSTALCODE"); +pub const FACTOID_PUNCCHAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PUNCCHAR"); +pub const FACTOID_SYSTEMDICTIONARY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SYSDICT"); +pub const FACTOID_TELEPHONE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TELEPHONE"); +pub const FACTOID_TIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TIME"); +pub const FACTOID_UPPERCHAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UPPERCHAR"); +pub const FACTOID_WEB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WEB"); +pub const FACTOID_WORDLIST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WORDLIST"); +pub const FLICKACTION_COMMANDCODE_APPCOMMAND: FLICKACTION_COMMANDCODE = 2i32; +pub const FLICKACTION_COMMANDCODE_CUSTOMKEY: FLICKACTION_COMMANDCODE = 3i32; +pub const FLICKACTION_COMMANDCODE_KEYMODIFIER: FLICKACTION_COMMANDCODE = 4i32; +pub const FLICKACTION_COMMANDCODE_NULL: FLICKACTION_COMMANDCODE = 0i32; +pub const FLICKACTION_COMMANDCODE_SCROLL: FLICKACTION_COMMANDCODE = 1i32; +pub const FLICKDIRECTION_DOWN: FLICKDIRECTION = 6i32; +pub const FLICKDIRECTION_DOWNLEFT: FLICKDIRECTION = 5i32; +pub const FLICKDIRECTION_DOWNRIGHT: FLICKDIRECTION = 7i32; +pub const FLICKDIRECTION_INVALID: FLICKDIRECTION = 8i32; +pub const FLICKDIRECTION_LEFT: FLICKDIRECTION = 4i32; +pub const FLICKDIRECTION_MIN: FLICKDIRECTION = 0i32; +pub const FLICKDIRECTION_RIGHT: FLICKDIRECTION = 0i32; +pub const FLICKDIRECTION_UP: FLICKDIRECTION = 2i32; +pub const FLICKDIRECTION_UPLEFT: FLICKDIRECTION = 3i32; +pub const FLICKDIRECTION_UPRIGHT: FLICKDIRECTION = 1i32; +pub const FLICKMODE_DEFAULT: FLICKMODE = 1i32; +pub const FLICKMODE_LEARNING: FLICKMODE = 2i32; +pub const FLICKMODE_MAX: FLICKMODE = 2i32; +pub const FLICKMODE_MIN: FLICKMODE = 0i32; +pub const FLICKMODE_OFF: FLICKMODE = 0i32; +pub const FLICKMODE_ON: FLICKMODE = 1i32; +pub const FLICK_WM_HANDLED_MASK: u32 = 1u32; +pub const Floating: VisualState = 1i32; +pub const GESTURE_ARROW_DOWN: u32 = 61497u32; +pub const GESTURE_ARROW_LEFT: u32 = 61498u32; +pub const GESTURE_ARROW_RIGHT: u32 = 61499u32; +pub const GESTURE_ARROW_UP: u32 = 61496u32; +pub const GESTURE_ASTERISK: u32 = 61608u32; +pub const GESTURE_BRACE_LEFT: u32 = 61674u32; +pub const GESTURE_BRACE_OVER: u32 = 61672u32; +pub const GESTURE_BRACE_RIGHT: u32 = 61675u32; +pub const GESTURE_BRACE_UNDER: u32 = 61673u32; +pub const GESTURE_BRACKET_LEFT: u32 = 61670u32; +pub const GESTURE_BRACKET_OVER: u32 = 61668u32; +pub const GESTURE_BRACKET_RIGHT: u32 = 61671u32; +pub const GESTURE_BRACKET_UNDER: u32 = 61669u32; +pub const GESTURE_BULLET: u32 = 61450u32; +pub const GESTURE_BULLET_CROSS: u32 = 61451u32; +pub const GESTURE_CHECK: u32 = 61445u32; +pub const GESTURE_CHEVRON_DOWN: u32 = 61489u32; +pub const GESTURE_CHEVRON_LEFT: u32 = 61490u32; +pub const GESTURE_CHEVRON_RIGHT: u32 = 61491u32; +pub const GESTURE_CHEVRON_UP: u32 = 61488u32; +pub const GESTURE_CIRCLE: u32 = 61472u32; +pub const GESTURE_CIRCLE_CIRCLE: u32 = 61475u32; +pub const GESTURE_CIRCLE_CROSS: u32 = 61477u32; +pub const GESTURE_CIRCLE_LINE_HORZ: u32 = 61479u32; +pub const GESTURE_CIRCLE_LINE_VERT: u32 = 61478u32; +pub const GESTURE_CIRCLE_TAP: u32 = 61474u32; +pub const GESTURE_CLOSEUP: u32 = 61455u32; +pub const GESTURE_CROSS: u32 = 61447u32; +pub const GESTURE_CURLICUE: u32 = 61456u32; +pub const GESTURE_DIAGONAL_LEFTDOWN: u32 = 61534u32; +pub const GESTURE_DIAGONAL_LEFTUP: u32 = 61532u32; +pub const GESTURE_DIAGONAL_RIGHTDOWN: u32 = 61535u32; +pub const GESTURE_DIAGONAL_RIGHTUP: u32 = 61533u32; +pub const GESTURE_DIGIT_0: u32 = 61594u32; +pub const GESTURE_DIGIT_1: u32 = 61595u32; +pub const GESTURE_DIGIT_2: u32 = 61596u32; +pub const GESTURE_DIGIT_3: u32 = 61597u32; +pub const GESTURE_DIGIT_4: u32 = 61598u32; +pub const GESTURE_DIGIT_5: u32 = 61599u32; +pub const GESTURE_DIGIT_6: u32 = 61600u32; +pub const GESTURE_DIGIT_7: u32 = 61601u32; +pub const GESTURE_DIGIT_8: u32 = 61602u32; +pub const GESTURE_DIGIT_9: u32 = 61603u32; +pub const GESTURE_DOLLAR: u32 = 61607u32; +pub const GESTURE_DOUBLE_ARROW_DOWN: u32 = 61501u32; +pub const GESTURE_DOUBLE_ARROW_LEFT: u32 = 61502u32; +pub const GESTURE_DOUBLE_ARROW_RIGHT: u32 = 61503u32; +pub const GESTURE_DOUBLE_ARROW_UP: u32 = 61500u32; +pub const GESTURE_DOUBLE_CIRCLE: u32 = 61473u32; +pub const GESTURE_DOUBLE_CURLICUE: u32 = 61457u32; +pub const GESTURE_DOUBLE_DOWN: u32 = 61625u32; +pub const GESTURE_DOUBLE_LEFT: u32 = 61626u32; +pub const GESTURE_DOUBLE_RIGHT: u32 = 61627u32; +pub const GESTURE_DOUBLE_TAP: u32 = 61681u32; +pub const GESTURE_DOUBLE_UP: u32 = 61624u32; +pub const GESTURE_DOWN: u32 = 61529u32; +pub const GESTURE_DOWN_ARROW_LEFT: u32 = 61506u32; +pub const GESTURE_DOWN_ARROW_RIGHT: u32 = 61507u32; +pub const GESTURE_DOWN_LEFT: u32 = 61546u32; +pub const GESTURE_DOWN_LEFT_LONG: u32 = 61542u32; +pub const GESTURE_DOWN_RIGHT: u32 = 61547u32; +pub const GESTURE_DOWN_RIGHT_LONG: u32 = 61543u32; +pub const GESTURE_DOWN_UP: u32 = 61537u32; +pub const GESTURE_EXCLAMATION: u32 = 61604u32; +pub const GESTURE_INFINITY: u32 = 61446u32; +pub const GESTURE_LEFT: u32 = 61530u32; +pub const GESTURE_LEFT_ARROW_DOWN: u32 = 61509u32; +pub const GESTURE_LEFT_ARROW_UP: u32 = 61508u32; +pub const GESTURE_LEFT_DOWN: u32 = 61549u32; +pub const GESTURE_LEFT_RIGHT: u32 = 61538u32; +pub const GESTURE_LEFT_UP: u32 = 61548u32; +pub const GESTURE_LETTER_A: u32 = 61568u32; +pub const GESTURE_LETTER_B: u32 = 61569u32; +pub const GESTURE_LETTER_C: u32 = 61570u32; +pub const GESTURE_LETTER_D: u32 = 61571u32; +pub const GESTURE_LETTER_E: u32 = 61572u32; +pub const GESTURE_LETTER_F: u32 = 61573u32; +pub const GESTURE_LETTER_G: u32 = 61574u32; +pub const GESTURE_LETTER_H: u32 = 61575u32; +pub const GESTURE_LETTER_I: u32 = 61576u32; +pub const GESTURE_LETTER_J: u32 = 61577u32; +pub const GESTURE_LETTER_K: u32 = 61578u32; +pub const GESTURE_LETTER_L: u32 = 61579u32; +pub const GESTURE_LETTER_M: u32 = 61580u32; +pub const GESTURE_LETTER_N: u32 = 61581u32; +pub const GESTURE_LETTER_O: u32 = 61582u32; +pub const GESTURE_LETTER_P: u32 = 61583u32; +pub const GESTURE_LETTER_Q: u32 = 61584u32; +pub const GESTURE_LETTER_R: u32 = 61585u32; +pub const GESTURE_LETTER_S: u32 = 61586u32; +pub const GESTURE_LETTER_T: u32 = 61587u32; +pub const GESTURE_LETTER_U: u32 = 61588u32; +pub const GESTURE_LETTER_V: u32 = 61589u32; +pub const GESTURE_LETTER_W: u32 = 61590u32; +pub const GESTURE_LETTER_X: u32 = 61591u32; +pub const GESTURE_LETTER_Y: u32 = 61592u32; +pub const GESTURE_LETTER_Z: u32 = 61593u32; +pub const GESTURE_NULL: u32 = 61440u32; +pub const GESTURE_OPENUP: u32 = 61454u32; +pub const GESTURE_PARAGRAPH: u32 = 61448u32; +pub const GESTURE_PLUS: u32 = 61609u32; +pub const GESTURE_QUAD_TAP: u32 = 61683u32; +pub const GESTURE_QUESTION: u32 = 61605u32; +pub const GESTURE_RECTANGLE: u32 = 61458u32; +pub const GESTURE_RIGHT: u32 = 61531u32; +pub const GESTURE_RIGHT_ARROW_DOWN: u32 = 61511u32; +pub const GESTURE_RIGHT_ARROW_UP: u32 = 61510u32; +pub const GESTURE_RIGHT_DOWN: u32 = 61551u32; +pub const GESTURE_RIGHT_LEFT: u32 = 61539u32; +pub const GESTURE_RIGHT_UP: u32 = 61550u32; +pub const GESTURE_SCRATCHOUT: u32 = 61441u32; +pub const GESTURE_SECTION: u32 = 61449u32; +pub const GESTURE_SEMICIRCLE_LEFT: u32 = 61480u32; +pub const GESTURE_SEMICIRCLE_RIGHT: u32 = 61481u32; +pub const GESTURE_SHARP: u32 = 61606u32; +pub const GESTURE_SQUARE: u32 = 61443u32; +pub const GESTURE_SQUIGGLE: u32 = 61452u32; +pub const GESTURE_STAR: u32 = 61444u32; +pub const GESTURE_SWAP: u32 = 61453u32; +pub const GESTURE_TAP: u32 = 61680u32; +pub const GESTURE_TRIANGLE: u32 = 61442u32; +pub const GESTURE_TRIPLE_DOWN: u32 = 61629u32; +pub const GESTURE_TRIPLE_LEFT: u32 = 61630u32; +pub const GESTURE_TRIPLE_RIGHT: u32 = 61631u32; +pub const GESTURE_TRIPLE_TAP: u32 = 61682u32; +pub const GESTURE_TRIPLE_UP: u32 = 61628u32; +pub const GESTURE_UP: u32 = 61528u32; +pub const GESTURE_UP_ARROW_LEFT: u32 = 61504u32; +pub const GESTURE_UP_ARROW_RIGHT: u32 = 61505u32; +pub const GESTURE_UP_DOWN: u32 = 61536u32; +pub const GESTURE_UP_LEFT: u32 = 61544u32; +pub const GESTURE_UP_LEFT_LONG: u32 = 61540u32; +pub const GESTURE_UP_RIGHT: u32 = 61545u32; +pub const GESTURE_UP_RIGHT_LONG: u32 = 61541u32; +pub const GUID_DYNAMIC_RENDERER_CACHED_DATA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbf531b92_25bf_4a95_89ad_0e476b34b4f5); +pub const GUID_GESTURE_DATA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x41e4ec0f_26aa_455a_9aa5_2cd36cf63fb9); +pub const GUID_PACKETPROPERTY_GUID_ALTITUDE_ORIENTATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x82dec5c7_f6ba_4906_894f_66d68dfc456c); +pub const GUID_PACKETPROPERTY_GUID_AZIMUTH_ORIENTATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x029123b4_8828_410b_b250_a0536595e5dc); +pub const GUID_PACKETPROPERTY_GUID_BUTTON_PRESSURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8b7fefc4_96aa_4bfe_ac26_8a5f0be07bf5); +pub const GUID_PACKETPROPERTY_GUID_DEVICE_CONTACT_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x02585b91_049b_4750_9615_df8948ab3c9c); +pub const GUID_PACKETPROPERTY_GUID_FINGERCONTACTCONFIDENCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe706c804_57f0_4f00_8a0c_853d57789be9); +pub const GUID_PACKETPROPERTY_GUID_HEIGHT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe61858d2_e447_4218_9d3f_18865c203df4); +pub const GUID_PACKETPROPERTY_GUID_NORMAL_PRESSURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7307502d_f9f4_4e18_b3f2_2ce1b1a3610c); +pub const GUID_PACKETPROPERTY_GUID_PACKET_STATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6e0e07bf_afe7_4cf7_87d1_af6446208418); +pub const GUID_PACKETPROPERTY_GUID_PITCH_ROTATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f7e57b7_be37_4be1_a356_7a84160e1893); +pub const GUID_PACKETPROPERTY_GUID_ROLL_ROTATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5d5d5e56_6ba9_4c5b_9fb0_851c91714e56); +pub const GUID_PACKETPROPERTY_GUID_SERIAL_NUMBER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x78a81b56_0935_4493_baae_00541a8a16c4); +pub const GUID_PACKETPROPERTY_GUID_TANGENT_PRESSURE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6da4488b_5244_41ec_905b_32d89ab80809); +pub const GUID_PACKETPROPERTY_GUID_TIMER_TICK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x436510c5_fed3_45d1_8b76_71d3ea7a829d); +pub const GUID_PACKETPROPERTY_GUID_TWIST_ORIENTATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0d324960_13b2_41e4_ace6_7ae9d43d2d3b); +pub const GUID_PACKETPROPERTY_GUID_WIDTH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbaabe94d_2712_48f5_be9d_8f8b5ea0711a); +pub const GUID_PACKETPROPERTY_GUID_X: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x598a6a8f_52c0_4ba0_93af_af357411a561); +pub const GUID_PACKETPROPERTY_GUID_X_TILT_ORIENTATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa8d07b3a_8bf0_40b0_95a9_b80a6bb787bf); +pub const GUID_PACKETPROPERTY_GUID_Y: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb53f9f75_04e0_4498_a7ee_c30dbb5a9011); +pub const GUID_PACKETPROPERTY_GUID_YAW_ROTATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a849980_7c3a_45b7_aa82_90a262950e89); +pub const GUID_PACKETPROPERTY_GUID_Y_TILT_ORIENTATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0e932389_1d77_43af_ac00_5b950d6d4b2d); +pub const GUID_PACKETPROPERTY_GUID_Z: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x735adb30_0ebb_4788_a0e4_0f316490055d); +pub const GestureRecognizer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xea30c654_c62c_441f_ac00_95f9a196782c); +pub const HandwrittenTextInsertion: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9f074ee2_e6e9_4d8a_a047_eb5b5c3c55da); +pub const IAG_AllGestures: InkApplicationGesture = 0i32; +pub const IAG_ArrowDown: InkApplicationGesture = 61497i32; +pub const IAG_ArrowLeft: InkApplicationGesture = 61498i32; +pub const IAG_ArrowRight: InkApplicationGesture = 61499i32; +pub const IAG_ArrowUp: InkApplicationGesture = 61496i32; +pub const IAG_Check: InkApplicationGesture = 61445i32; +pub const IAG_ChevronDown: InkApplicationGesture = 61489i32; +pub const IAG_ChevronLeft: InkApplicationGesture = 61490i32; +pub const IAG_ChevronRight: InkApplicationGesture = 61491i32; +pub const IAG_ChevronUp: InkApplicationGesture = 61488i32; +pub const IAG_Circle: InkApplicationGesture = 61472i32; +pub const IAG_Curlicue: InkApplicationGesture = 61456i32; +pub const IAG_DoubleCircle: InkApplicationGesture = 61473i32; +pub const IAG_DoubleCurlicue: InkApplicationGesture = 61457i32; +pub const IAG_DoubleTap: InkApplicationGesture = 61681i32; +pub const IAG_Down: InkApplicationGesture = 61529i32; +pub const IAG_DownLeft: InkApplicationGesture = 61546i32; +pub const IAG_DownLeftLong: InkApplicationGesture = 61542i32; +pub const IAG_DownRight: InkApplicationGesture = 61547i32; +pub const IAG_DownRightLong: InkApplicationGesture = 61543i32; +pub const IAG_DownUp: InkApplicationGesture = 61537i32; +pub const IAG_Exclamation: InkApplicationGesture = 61604i32; +pub const IAG_Left: InkApplicationGesture = 61530i32; +pub const IAG_LeftDown: InkApplicationGesture = 61549i32; +pub const IAG_LeftRight: InkApplicationGesture = 61538i32; +pub const IAG_LeftUp: InkApplicationGesture = 61548i32; +pub const IAG_NoGesture: InkApplicationGesture = 61440i32; +pub const IAG_Right: InkApplicationGesture = 61531i32; +pub const IAG_RightDown: InkApplicationGesture = 61551i32; +pub const IAG_RightLeft: InkApplicationGesture = 61539i32; +pub const IAG_RightUp: InkApplicationGesture = 61550i32; +pub const IAG_Scratchout: InkApplicationGesture = 61441i32; +pub const IAG_SemiCircleLeft: InkApplicationGesture = 61480i32; +pub const IAG_SemiCircleRight: InkApplicationGesture = 61481i32; +pub const IAG_Square: InkApplicationGesture = 61443i32; +pub const IAG_Star: InkApplicationGesture = 61444i32; +pub const IAG_Tap: InkApplicationGesture = 61680i32; +pub const IAG_Triangle: InkApplicationGesture = 61442i32; +pub const IAG_Up: InkApplicationGesture = 61528i32; +pub const IAG_UpDown: InkApplicationGesture = 61536i32; +pub const IAG_UpLeft: InkApplicationGesture = 61544i32; +pub const IAG_UpLeftLong: InkApplicationGesture = 61540i32; +pub const IAG_UpRight: InkApplicationGesture = 61545i32; +pub const IAG_UpRightLong: InkApplicationGesture = 61541i32; +pub const IBBM_CurveFit: InkBoundingBoxMode = 2i32; +pub const IBBM_Default: InkBoundingBoxMode = 0i32; +pub const IBBM_NoCurveFit: InkBoundingBoxMode = 1i32; +pub const IBBM_PointsOnly: InkBoundingBoxMode = 3i32; +pub const IBBM_Union: InkBoundingBoxMode = 4i32; +pub const ICBS_Down: InkCursorButtonState = 2i32; +pub const ICBS_Unavailable: InkCursorButtonState = 0i32; +pub const ICBS_Up: InkCursorButtonState = 1i32; +pub const ICB_Copy: InkClipboardModes = 0i32; +pub const ICB_Cut: InkClipboardModes = 1i32; +pub const ICB_Default: InkClipboardModes = 0i32; +pub const ICB_DelayedCopy: InkClipboardModes = 32i32; +pub const ICB_ExtractOnly: InkClipboardModes = 48i32; +pub const ICEI_AllEvents: InkCollectorEventInterest = 16i32; +pub const ICEI_CursorButtonDown: InkCollectorEventInterest = 4i32; +pub const ICEI_CursorButtonUp: InkCollectorEventInterest = 5i32; +pub const ICEI_CursorDown: InkCollectorEventInterest = 0i32; +pub const ICEI_CursorInRange: InkCollectorEventInterest = 6i32; +pub const ICEI_CursorOutOfRange: InkCollectorEventInterest = 7i32; +pub const ICEI_DblClick: InkCollectorEventInterest = 15i32; +pub const ICEI_DefaultEvents: InkCollectorEventInterest = -1i32; +pub const ICEI_MouseDown: InkCollectorEventInterest = 11i32; +pub const ICEI_MouseMove: InkCollectorEventInterest = 12i32; +pub const ICEI_MouseUp: InkCollectorEventInterest = 13i32; +pub const ICEI_MouseWheel: InkCollectorEventInterest = 14i32; +pub const ICEI_NewInAirPackets: InkCollectorEventInterest = 3i32; +pub const ICEI_NewPackets: InkCollectorEventInterest = 2i32; +pub const ICEI_Stroke: InkCollectorEventInterest = 1i32; +pub const ICEI_SystemGesture: InkCollectorEventInterest = 8i32; +pub const ICEI_TabletAdded: InkCollectorEventInterest = 9i32; +pub const ICEI_TabletRemoved: InkCollectorEventInterest = 10i32; +pub const ICF_Bitmap: InkClipboardFormats = 64i32; +pub const ICF_CopyMask: InkClipboardFormats = 127i32; +pub const ICF_Default: InkClipboardFormats = 127i32; +pub const ICF_EnhancedMetafile: InkClipboardFormats = 8i32; +pub const ICF_InkSerializedFormat: InkClipboardFormats = 1i32; +pub const ICF_Metafile: InkClipboardFormats = 32i32; +pub const ICF_None: InkClipboardFormats = 0i32; +pub const ICF_PasteMask: InkClipboardFormats = 7i32; +pub const ICF_SketchInk: InkClipboardFormats = 2i32; +pub const ICF_TextInk: InkClipboardFormats = 6i32; +pub const ICM_GestureOnly: InkCollectionMode = 1i32; +pub const ICM_InkAndGesture: InkCollectionMode = 2i32; +pub const ICM_InkOnly: InkCollectionMode = 0i32; +pub const IDM_Ink: InkDisplayMode = 0i32; +pub const IDM_Text: InkDisplayMode = 1i32; +pub const IDT_Drawing: InkDivisionType = 3i32; +pub const IDT_Line: InkDivisionType = 1i32; +pub const IDT_Paragraph: InkDivisionType = 2i32; +pub const IDT_Segment: InkDivisionType = 0i32; +pub const IECN_GESTURE: u32 = 2050u32; +pub const IECN_RECOGNITIONRESULT: u32 = 2051u32; +pub const IECN_STROKE: u32 = 2049u32; +pub const IECN__BASE: u32 = 2048u32; +pub const IEC__BASE: u32 = 1536u32; +pub const IEF_CopyFromOriginal: InkExtractFlags = 0i32; +pub const IEF_Default: InkExtractFlags = 1i32; +pub const IEF_RemoveFromOriginal: InkExtractFlags = 1i32; +pub const IEM_Disabled: InkMode = 0i32; +pub const IEM_Ink: InkMode = 1i32; +pub const IEM_InkAndGesture: InkMode = 2i32; +pub const IEM_InsertInk: InkInsertMode = 1i32; +pub const IEM_InsertText: InkInsertMode = 0i32; +pub const IES_Collecting: InkEditStatus = 1i32; +pub const IES_Idle: InkEditStatus = 0i32; +pub const IES_Recognizing: InkEditStatus = 2i32; +pub const IKM_Alt: InkShiftKeyModifierFlags = 4i32; +pub const IKM_Control: InkShiftKeyModifierFlags = 2i32; +pub const IKM_Shift: InkShiftKeyModifierFlags = 1i32; +pub const IMF_BOLD: INK_METRIC_FLAGS = 4i32; +pub const IMF_FONT_SELECTED_IN_HDC: INK_METRIC_FLAGS = 1i32; +pub const IMF_ITALIC: INK_METRIC_FLAGS = 2i32; +pub const IMF_Left: InkMouseButton = 1i32; +pub const IMF_Middle: InkMouseButton = 4i32; +pub const IMF_Right: InkMouseButton = 2i32; +pub const IMP_Arrow: InkMousePointer = 1i32; +pub const IMP_ArrowHourglass: InkMousePointer = 11i32; +pub const IMP_ArrowQuestion: InkMousePointer = 12i32; +pub const IMP_Crosshair: InkMousePointer = 2i32; +pub const IMP_Custom: InkMousePointer = 99i32; +pub const IMP_Default: InkMousePointer = 0i32; +pub const IMP_Hand: InkMousePointer = 14i32; +pub const IMP_Hourglass: InkMousePointer = 9i32; +pub const IMP_Ibeam: InkMousePointer = 3i32; +pub const IMP_NoDrop: InkMousePointer = 10i32; +pub const IMP_SizeAll: InkMousePointer = 13i32; +pub const IMP_SizeNESW: InkMousePointer = 4i32; +pub const IMP_SizeNS: InkMousePointer = 5i32; +pub const IMP_SizeNWSE: InkMousePointer = 6i32; +pub const IMP_SizeWE: InkMousePointer = 7i32; +pub const IMP_UpArrow: InkMousePointer = 8i32; +pub const INKEDIT_CLASS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("INKEDIT"); +pub const INKEDIT_CLASSW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("INKEDIT"); +pub const INKRECOGNITIONPROPERTY_BOXNUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{2C243E3A-F733-4EB6-B1F8-B5DC5C2C4CDA}"); +pub const INKRECOGNITIONPROPERTY_CONFIDENCELEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{7DFE11A7-FB5D-4958-8765-154ADF0D833F}"); +pub const INKRECOGNITIONPROPERTY_HOTPOINT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{CA6F40DC-5292-452a-91FB-2181C0BEC0DE}"); +pub const INKRECOGNITIONPROPERTY_LINEMETRICS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{8CC24B27-30A9-4b96-9056-2D3A90DA0727}"); +pub const INKRECOGNITIONPROPERTY_LINENUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{DBF29F2C-5289-4BE8-B3D8-6EF63246253E}"); +pub const INKRECOGNITIONPROPERTY_MAXIMUMSTROKECOUNT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{BF0EEC4E-4B7D-47a9-8CFA-234DD24BD22A}"); +pub const INKRECOGNITIONPROPERTY_POINTSPERINCH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{7ED16B76-889C-468e-8276-0021B770187E}"); +pub const INKRECOGNITIONPROPERTY_SEGMENTATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{B3C0FE6C-FB51-4164-BA2F-844AF8F983DA}"); +pub const INK_SERIALIZED_FORMAT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Ink Serialized Format"); +pub const IOAM_Behind: InkOverlayAttachMode = 0i32; +pub const IOAM_InFront: InkOverlayAttachMode = 1i32; +pub const IOEM_Delete: InkOverlayEditingMode = 1i32; +pub const IOEM_Ink: InkOverlayEditingMode = 0i32; +pub const IOEM_Select: InkOverlayEditingMode = 2i32; +pub const IOERM_PointErase: InkOverlayEraserMode = 1i32; +pub const IOERM_StrokeErase: InkOverlayEraserMode = 0i32; +pub const IPCM_Default: InkPersistenceCompressionMode = 0i32; +pub const IPCM_MaximumCompression: InkPersistenceCompressionMode = 1i32; +pub const IPCM_NoCompression: InkPersistenceCompressionMode = 2i32; +pub const IPF_Base64GIF: InkPersistenceFormat = 3i32; +pub const IPF_Base64InkSerializedFormat: InkPersistenceFormat = 1i32; +pub const IPF_GIF: InkPersistenceFormat = 2i32; +pub const IPF_InkSerializedFormat: InkPersistenceFormat = 0i32; +pub const IPSM_AutoSize: InkPictureSizeMode = 0i32; +pub const IPSM_CenterImage: InkPictureSizeMode = 1i32; +pub const IPSM_Normal: InkPictureSizeMode = 2i32; +pub const IPSM_StretchImage: InkPictureSizeMode = 3i32; +pub const IPT_Ball: InkPenTip = 0i32; +pub const IPT_Rectangle: InkPenTip = 1i32; +pub const IP_CURSOR_DOWN: u32 = 1u32; +pub const IP_INVERTED: u32 = 2u32; +pub const IP_MARGIN: u32 = 4u32; +pub const IRAS_All: InkRecognitionAlternatesSelection = -1i32; +pub const IRAS_DefaultCount: InkRecognitionAlternatesSelection = 10i32; +pub const IRAS_Start: InkRecognitionAlternatesSelection = 0i32; +pub const IRCACM_Full: InkRecognizerCharacterAutoCompletionMode = 0i32; +pub const IRCACM_Prefix: InkRecognizerCharacterAutoCompletionMode = 1i32; +pub const IRCACM_Random: InkRecognizerCharacterAutoCompletionMode = 2i32; +pub const IRC_AdviseInkChange: InkRecognizerCapabilities = 4096i32; +pub const IRC_Alpha: InkRecognizerCapabilities = 1048576i32; +pub const IRC_ArbitraryAngle: InkRecognizerCapabilities = 1024i32; +pub const IRC_Beta: InkRecognizerCapabilities = 2097152i32; +pub const IRC_BoxedInput: InkRecognizerCapabilities = 16i32; +pub const IRC_CharacterAutoCompletionInput: InkRecognizerCapabilities = 32i32; +pub const IRC_Cursive: InkRecognizerCapabilities = 262144i32; +pub const IRC_DontCare: InkRecognizerCapabilities = 1i32; +pub const IRC_DownAndLeft: InkRecognizerCapabilities = 256i32; +pub const IRC_DownAndRight: InkRecognizerCapabilities = 512i32; +pub const IRC_FreeInput: InkRecognizerCapabilities = 4i32; +pub const IRC_Intermediate: InkRecognitionConfidence = 1i32; +pub const IRC_Lattice: InkRecognizerCapabilities = 2048i32; +pub const IRC_LeftAndDown: InkRecognizerCapabilities = 128i32; +pub const IRC_LinedInput: InkRecognizerCapabilities = 8i32; +pub const IRC_Object: InkRecognizerCapabilities = 2i32; +pub const IRC_Personalizable: InkRecognizerCapabilities = 16384i32; +pub const IRC_Poor: InkRecognitionConfidence = 2i32; +pub const IRC_PrefersArbitraryAngle: InkRecognizerCapabilities = 32768i32; +pub const IRC_PrefersParagraphBreaking: InkRecognizerCapabilities = 65536i32; +pub const IRC_PrefersSegmentation: InkRecognizerCapabilities = 131072i32; +pub const IRC_RightAndDown: InkRecognizerCapabilities = 64i32; +pub const IRC_StrokeReorder: InkRecognizerCapabilities = 8192i32; +pub const IRC_Strong: InkRecognitionConfidence = 0i32; +pub const IRC_TextPrediction: InkRecognizerCapabilities = 524288i32; +pub const IRM_AutoSpace: InkRecognitionModes = 64i32; +pub const IRM_Coerce: InkRecognitionModes = 2i32; +pub const IRM_DisablePersonalization: InkRecognitionModes = 32i32; +pub const IRM_LineMode: InkRecognitionModes = 16i32; +pub const IRM_Max: InkRecognitionModes = 128i32; +pub const IRM_None: InkRecognitionModes = 0i32; +pub const IRM_PrefixOk: InkRecognitionModes = 8i32; +pub const IRM_TopInkBreaksOnly: InkRecognitionModes = 4i32; +pub const IRM_WordModeOnly: InkRecognitionModes = 1i32; +pub const IRO_Black: InkRasterOperation = 1i32; +pub const IRO_CopyPen: InkRasterOperation = 13i32; +pub const IRO_MaskNotPen: InkRasterOperation = 3i32; +pub const IRO_MaskPen: InkRasterOperation = 9i32; +pub const IRO_MaskPenNot: InkRasterOperation = 5i32; +pub const IRO_MergeNotPen: InkRasterOperation = 12i32; +pub const IRO_MergePen: InkRasterOperation = 15i32; +pub const IRO_MergePenNot: InkRasterOperation = 14i32; +pub const IRO_NoOperation: InkRasterOperation = 11i32; +pub const IRO_Not: InkRasterOperation = 6i32; +pub const IRO_NotCopyPen: InkRasterOperation = 4i32; +pub const IRO_NotMaskPen: InkRasterOperation = 8i32; +pub const IRO_NotMergePen: InkRasterOperation = 2i32; +pub const IRO_NotXOrPen: InkRasterOperation = 10i32; +pub const IRO_White: InkRasterOperation = 16i32; +pub const IRO_XOrPen: InkRasterOperation = 7i32; +pub const IRS_InkAddedFailed: InkRecognitionStatus = 4i32; +pub const IRS_Interrupted: InkRecognitionStatus = 1i32; +pub const IRS_NoError: InkRecognitionStatus = 0i32; +pub const IRS_ProcessFailed: InkRecognitionStatus = 2i32; +pub const IRS_SetAutoCompletionModeFailed: InkRecognitionStatus = 8i32; +pub const IRS_SetFactoidFailed: InkRecognitionStatus = 128i32; +pub const IRS_SetFlagsFailed: InkRecognitionStatus = 64i32; +pub const IRS_SetGuideFailed: InkRecognitionStatus = 32i32; +pub const IRS_SetPrefixSuffixFailed: InkRecognitionStatus = 256i32; +pub const IRS_SetStrokesFailed: InkRecognitionStatus = 16i32; +pub const IRS_SetWordListFailed: InkRecognitionStatus = 512i32; +pub const ISC_AllElements: InkSelectionConstants = -1i32; +pub const ISC_FirstElement: InkSelectionConstants = 0i32; +pub const ISG_DoubleTap: InkSystemGesture = 17i32; +pub const ISG_Drag: InkSystemGesture = 19i32; +pub const ISG_Flick: InkSystemGesture = 31i32; +pub const ISG_HoldEnter: InkSystemGesture = 21i32; +pub const ISG_HoldLeave: InkSystemGesture = 22i32; +pub const ISG_HoverEnter: InkSystemGesture = 23i32; +pub const ISG_HoverLeave: InkSystemGesture = 24i32; +pub const ISG_RightDrag: InkSystemGesture = 20i32; +pub const ISG_RightTap: InkSystemGesture = 18i32; +pub const ISG_Tap: InkSystemGesture = 16i32; +pub const InPlace: VisualState = 0i32; +pub const InPlaceDirection_Auto: InPlaceDirection = 0i32; +pub const InPlaceDirection_Bottom: InPlaceDirection = 1i32; +pub const InPlaceDirection_Top: InPlaceDirection = 2i32; +pub const InPlaceState_Auto: InPlaceState = 0i32; +pub const InPlaceState_Expanded: InPlaceState = 2i32; +pub const InPlaceState_HoverTarget: InPlaceState = 1i32; +pub const Ink: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13de4a42_8d21_4c8e_bf9c_8f69cb068fca); +pub const InkCollector: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43fb1553_ad74_4ee8_88e4_3e6daac915db); +pub const InkCollectorClipInkToMargin: i32 = 0i32; +pub const InkCollectorDefaultMargin: i32 = -2147483648i32; +pub const InkDisp: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x937c1a34_151d_4610_9ca6_a8cc9bdb5d83); +pub const InkDivider: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8854f6a0_4683_4ae7_9191_752fe64612c3); +pub const InkDrawingAttributes: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd8bf32a2_05a5_44c3_b3aa_5e80ac7d2576); +pub const InkEdit: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe5ca59f5_57c4_4dd8_9bd6_1deeedd27af4); +pub const InkMaxTransparencyValue: i32 = 255i32; +pub const InkMinTransparencyValue: i32 = 0i32; +pub const InkOverlay: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x65d00646_cde3_4a88_9163_6769f0f1a97d); +pub const InkPicture: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x04a1e553_fe36_4fde_865e_344194e69424); +pub const InkRecognizerContext: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaac46a37_9229_4fc0_8cce_4497569bf4d1); +pub const InkRecognizerGuide: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8770d941_a63a_4671_a375_2855a18eba73); +pub const InkRecognizers: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9fd4e808_f6e6_4e65_98d3_aa39054c1255); +pub const InkRectangle: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x43b07326_aae0_4b62_a83d_5fd768b7353c); +pub const InkRenderer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9c1cc6e4_d7eb_4eeb_9091_15a7c8791ed9); +pub const InkStrokes: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x48f491bc_240e_4860_b079_a1e94d3d2c86); +pub const InkTablets: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6e4fcb12_510a_4d40_9304_1da10ae9147c); +pub const InkTransform: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe3d5d93c_1663_4a78_a1a7_22375dfebaee); +pub const InkWordList: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9de85094_f71f_44f1_8471_15a2fa76fcf3); +pub const InteractionMode_DockedBottom: InteractionMode = 3i32; +pub const InteractionMode_DockedTop: InteractionMode = 2i32; +pub const InteractionMode_Floating: InteractionMode = 1i32; +pub const InteractionMode_InPlace: InteractionMode = 0i32; +pub const KEYMODIFIER_ALTGR: KEYMODIFIER = 16i32; +pub const KEYMODIFIER_CONTROL: KEYMODIFIER = 1i32; +pub const KEYMODIFIER_EXT: KEYMODIFIER = 32i32; +pub const KEYMODIFIER_MENU: KEYMODIFIER = 2i32; +pub const KEYMODIFIER_SHIFT: KEYMODIFIER = 4i32; +pub const KEYMODIFIER_WIN: KEYMODIFIER = 8i32; +pub const LEFT_BUTTON: MouseButton = 1i32; +pub const LM_ASCENDER: LINE_METRICS = 2i32; +pub const LM_BASELINE: LINE_METRICS = 0i32; +pub const LM_DESCENDER: LINE_METRICS = 3i32; +pub const LM_MIDLINE: LINE_METRICS = 1i32; +pub const MAX_FRIENDLYNAME: u32 = 64u32; +pub const MAX_LANGUAGES: u32 = 64u32; +pub const MAX_PACKET_BUTTON_COUNT: u32 = 32u32; +pub const MAX_PACKET_PROPERTY_COUNT: u32 = 32u32; +pub const MAX_VENDORNAME: u32 = 32u32; +pub const MICROSOFT_PENINPUT_PANEL_PROPERTY_T: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft PenInputPanel 1.5"); +pub const MICROSOFT_TIP_COMBOBOXLIST_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft TIP ComboBox List Window Identifier"); +pub const MICROSOFT_TIP_NO_INSERT_BUTTON_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft TIP No Insert Option"); +pub const MICROSOFT_TIP_OPENING_MSG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TabletInputPanelOpening"); +pub const MICROSOFT_URL_EXPERIENCE_PROPERTY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Microsoft TIP URL Experience"); +pub const MICUIELEMENTSTATE_DISABLED: MICUIELEMENTSTATE = 4i32; +pub const MICUIELEMENTSTATE_HOT: MICUIELEMENTSTATE = 2i32; +pub const MICUIELEMENTSTATE_NORMAL: MICUIELEMENTSTATE = 1i32; +pub const MICUIELEMENTSTATE_PRESSED: MICUIELEMENTSTATE = 3i32; +pub const MICUIELEMENT_BUTTON_CANCEL: MICUIELEMENT = 128i32; +pub const MICUIELEMENT_BUTTON_CLEAR: MICUIELEMENT = 8i32; +pub const MICUIELEMENT_BUTTON_CORRECT: MICUIELEMENT = 4i32; +pub const MICUIELEMENT_BUTTON_ERASE: MICUIELEMENT = 2i32; +pub const MICUIELEMENT_BUTTON_INSERT: MICUIELEMENT = 64i32; +pub const MICUIELEMENT_BUTTON_REDO: MICUIELEMENT = 32i32; +pub const MICUIELEMENT_BUTTON_UNDO: MICUIELEMENT = 16i32; +pub const MICUIELEMENT_BUTTON_WRITE: MICUIELEMENT = 1i32; +pub const MICUIELEMENT_INKPANEL_BACKGROUND: MICUIELEMENT = 256i32; +pub const MICUIELEMENT_RESULTPANEL_BACKGROUND: MICUIELEMENT = 512i32; +pub const MIDDLE_BUTTON: MouseButton = 4i32; +pub const MathInputControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc561816c_14d8_4090_830c_98d994b21c7b); +pub const NO_BUTTON: MouseButton = 0i32; +pub const NUM_FLICK_DIRECTIONS: u32 = 8u32; +pub const PROPERTY_UNITS_AMPERE: PROPERTY_UNITS = 15i32; +pub const PROPERTY_UNITS_CANDELA: PROPERTY_UNITS = 16i32; +pub const PROPERTY_UNITS_CENTIMETERS: PROPERTY_UNITS = 2i32; +pub const PROPERTY_UNITS_DEFAULT: PROPERTY_UNITS = 0i32; +pub const PROPERTY_UNITS_DEGREES: PROPERTY_UNITS = 3i32; +pub const PROPERTY_UNITS_ENGLINEAR: PROPERTY_UNITS = 10i32; +pub const PROPERTY_UNITS_ENGROTATION: PROPERTY_UNITS = 11i32; +pub const PROPERTY_UNITS_FAHRENHEIT: PROPERTY_UNITS = 14i32; +pub const PROPERTY_UNITS_GRAMS: PROPERTY_UNITS = 7i32; +pub const PROPERTY_UNITS_INCHES: PROPERTY_UNITS = 1i32; +pub const PROPERTY_UNITS_KELVIN: PROPERTY_UNITS = 13i32; +pub const PROPERTY_UNITS_POUNDS: PROPERTY_UNITS = 6i32; +pub const PROPERTY_UNITS_RADIANS: PROPERTY_UNITS = 4i32; +pub const PROPERTY_UNITS_SECONDS: PROPERTY_UNITS = 5i32; +pub const PROPERTY_UNITS_SILINEAR: PROPERTY_UNITS = 8i32; +pub const PROPERTY_UNITS_SIROTATION: PROPERTY_UNITS = 9i32; +pub const PROPERTY_UNITS_SLUGS: PROPERTY_UNITS = 12i32; +pub const PT_Default: PanelType = 0i32; +pub const PT_Handwriting: PanelType = 2i32; +pub const PT_Inactive: PanelType = 1i32; +pub const PT_Keyboard: PanelType = 3i32; +pub const PanelInputArea_Auto: PanelInputArea = 0i32; +pub const PanelInputArea_CharacterPad: PanelInputArea = 3i32; +pub const PanelInputArea_Keyboard: PanelInputArea = 1i32; +pub const PanelInputArea_WritingPad: PanelInputArea = 2i32; +pub const PenInputPanel: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf744e496_1b5a_489e_81dc_fbd7ac6298a8); +pub const PenInputPanel_Internal: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x802b1fb9_056b_4720_b0cc_80d23b71171e); +pub const RECOCONF_HIGHCONFIDENCE: u32 = 1u32; +pub const RECOCONF_LOWCONFIDENCE: i32 = -1i32; +pub const RECOCONF_MEDIUMCONFIDENCE: u32 = 0u32; +pub const RECOCONF_NOTSET: u32 = 128u32; +pub const RECOFLAG_AUTOSPACE: u32 = 64u32; +pub const RECOFLAG_COERCE: u32 = 2u32; +pub const RECOFLAG_DISABLEPERSONALIZATION: u32 = 32u32; +pub const RECOFLAG_LINEMODE: u32 = 16u32; +pub const RECOFLAG_PREFIXOK: u32 = 8u32; +pub const RECOFLAG_SINGLESEG: u32 = 4u32; +pub const RECOFLAG_WORDMODE: u32 = 1u32; +pub const RECO_TYPE_WCHAR: RECO_TYPE = 1i32; +pub const RECO_TYPE_WSTRING: RECO_TYPE = 0i32; +pub const RF_ADVISEINKCHANGE: i32 = 4096i32; +pub const RF_ARBITRARY_ANGLE: i32 = 1024i32; +pub const RF_BOXED_INPUT: i32 = 16i32; +pub const RF_CAC_INPUT: i32 = 32i32; +pub const RF_DONTCARE: i32 = 1i32; +pub const RF_DOWN_AND_LEFT: i32 = 256i32; +pub const RF_DOWN_AND_RIGHT: i32 = 512i32; +pub const RF_FREE_INPUT: i32 = 4i32; +pub const RF_LATTICE: i32 = 2048i32; +pub const RF_LEFT_AND_DOWN: i32 = 128i32; +pub const RF_LINED_INPUT: i32 = 8i32; +pub const RF_OBJECT: i32 = 2i32; +pub const RF_PERFORMSLINEBREAKING: i32 = 65536i32; +pub const RF_PERSONALIZABLE: i32 = 16384i32; +pub const RF_REQUIRESSEGMENTATIONBREAKING: i32 = 131072i32; +pub const RF_RIGHT_AND_DOWN: i32 = 64i32; +pub const RF_STROKEREORDER: i32 = 8192i32; +pub const RIGHT_BUTTON: MouseButton = 2i32; +pub const RTSDI_AllData: RealTimeStylusDataInterest = -1i32; +pub const RTSDI_CustomStylusDataAdded: RealTimeStylusDataInterest = 32768i32; +pub const RTSDI_DefaultEvents: RealTimeStylusDataInterest = 37766i32; +pub const RTSDI_Error: RealTimeStylusDataInterest = 1i32; +pub const RTSDI_InAirPackets: RealTimeStylusDataInterest = 32i32; +pub const RTSDI_None: RealTimeStylusDataInterest = 0i32; +pub const RTSDI_Packets: RealTimeStylusDataInterest = 256i32; +pub const RTSDI_RealTimeStylusDisabled: RealTimeStylusDataInterest = 4i32; +pub const RTSDI_RealTimeStylusEnabled: RealTimeStylusDataInterest = 2i32; +pub const RTSDI_StylusButtonDown: RealTimeStylusDataInterest = 2048i32; +pub const RTSDI_StylusButtonUp: RealTimeStylusDataInterest = 1024i32; +pub const RTSDI_StylusDown: RealTimeStylusDataInterest = 128i32; +pub const RTSDI_StylusInRange: RealTimeStylusDataInterest = 16i32; +pub const RTSDI_StylusNew: RealTimeStylusDataInterest = 8i32; +pub const RTSDI_StylusOutOfRange: RealTimeStylusDataInterest = 64i32; +pub const RTSDI_StylusUp: RealTimeStylusDataInterest = 512i32; +pub const RTSDI_SystemEvents: RealTimeStylusDataInterest = 4096i32; +pub const RTSDI_TabletAdded: RealTimeStylusDataInterest = 8192i32; +pub const RTSDI_TabletRemoved: RealTimeStylusDataInterest = 16384i32; +pub const RTSDI_UpdateMapping: RealTimeStylusDataInterest = 65536i32; +pub const RTSLT_AsyncEventLock: RealTimeStylusLockType = 4i32; +pub const RTSLT_AsyncObjLock: RealTimeStylusLockType = 13i32; +pub const RTSLT_ExcludeCallback: RealTimeStylusLockType = 8i32; +pub const RTSLT_ObjLock: RealTimeStylusLockType = 1i32; +pub const RTSLT_SyncEventLock: RealTimeStylusLockType = 2i32; +pub const RTSLT_SyncObjLock: RealTimeStylusLockType = 11i32; +pub const RealTimeStylus: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe26b366d_f998_43ce_836f_cb6d904432b0); +pub const SAFE_PARTIAL: u32 = 1u32; +pub const SCROLLDIRECTION_DOWN: SCROLLDIRECTION = 1i32; +pub const SCROLLDIRECTION_UP: SCROLLDIRECTION = 0i32; +pub const SHR_E: SelectionHitResult = 5i32; +pub const SHR_N: SelectionHitResult = 7i32; +pub const SHR_NE: SelectionHitResult = 3i32; +pub const SHR_NW: SelectionHitResult = 1i32; +pub const SHR_None: SelectionHitResult = 0i32; +pub const SHR_S: SelectionHitResult = 8i32; +pub const SHR_SE: SelectionHitResult = 2i32; +pub const SHR_SW: SelectionHitResult = 4i32; +pub const SHR_Selection: SelectionHitResult = 9i32; +pub const SHR_W: SelectionHitResult = 6i32; +pub const STR_GUID_ALTITUDEORIENTATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{82DEC5C7-F6BA-4906-894F-66D68DFC456C}"); +pub const STR_GUID_AZIMUTHORIENTATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{029123B4-8828-410B-B250-A0536595E5DC}"); +pub const STR_GUID_BUTTONPRESSURE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{8B7FEFC4-96AA-4BFE-AC26-8A5F0BE07BF5}"); +pub const STR_GUID_DEVICE_CONTACT_ID: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{02585B91-049B-4750-9615-DF8948AB3C9C}"); +pub const STR_GUID_FINGERCONTACTCONFIDENCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{E706C804-57F0-4F00-8A0C-853D57789BE9}"); +pub const STR_GUID_HEIGHT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{E61858D2-E447-4218-9D3F-18865C203DF4}"); +pub const STR_GUID_NORMALPRESSURE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{7307502D-F9F4-4E18-B3F2-2CE1B1A3610C}"); +pub const STR_GUID_PAKETSTATUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{6E0E07BF-AFE7-4CF7-87D1-AF6446208418}"); +pub const STR_GUID_PITCHROTATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{7F7E57B7-BE37-4BE1-A356-7A84160E1893}"); +pub const STR_GUID_ROLLROTATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{5D5D5E56-6BA9-4C5B-9FB0-851C91714E56}"); +pub const STR_GUID_SERIALNUMBER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{78A81B56-0935-4493-BAAE-00541A8A16C4}"); +pub const STR_GUID_TANGENTPRESSURE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{6DA4488B-5244-41EC-905B-32D89AB80809}"); +pub const STR_GUID_TIMERTICK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{436510C5-FED3-45D1-8B76-71D3EA7A829D}"); +pub const STR_GUID_TWISTORIENTATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{0D324960-13B2-41E4-ACE6-7AE9D43D2D3B}"); +pub const STR_GUID_WIDTH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{BAABE94D-2712-48F5-BE9D-8F8B5EA0711A}"); +pub const STR_GUID_X: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{598A6A8F-52C0-4BA0-93AF-AF357411A561}"); +pub const STR_GUID_XTILTORIENTATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{A8D07B3A-8BF0-40B0-95A9-B80A6BB787BF}"); +pub const STR_GUID_Y: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{B53F9F75-04E0-4498-A7EE-C30DBB5A9011}"); +pub const STR_GUID_YAWROTATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{6A849980-7C3A-45B7-AA82-90A262950E89}"); +pub const STR_GUID_YTILTORIENTATION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{0E932389-1D77-43AF-AC00-5B950D6D4B2D}"); +pub const STR_GUID_Z: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("{735ADB30-0EBB-4788-A0E4-0F316490055D}"); +pub const SketchInk: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf0291081_e87c_4e07_97da_a0a03761e586); +pub const StrokeBuilder: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe810cee7_6e51_4cb0_aa3a_0b985b70daf7); +pub const SyncStylusQueue: StylusQueue = 1i32; +pub const TABLET_DISABLE_FLICKFALLBACKKEYS: u32 = 1048576u32; +pub const TABLET_DISABLE_FLICKS: u32 = 65536u32; +pub const TABLET_DISABLE_PENBARRELFEEDBACK: u32 = 16u32; +pub const TABLET_DISABLE_PENTAPFEEDBACK: u32 = 8u32; +pub const TABLET_DISABLE_PRESSANDHOLD: u32 = 1u32; +pub const TABLET_DISABLE_SMOOTHSCROLLING: u32 = 524288u32; +pub const TABLET_DISABLE_TOUCHSWITCH: u32 = 32768u32; +pub const TABLET_DISABLE_TOUCHUIFORCEOFF: u32 = 512u32; +pub const TABLET_DISABLE_TOUCHUIFORCEON: u32 = 256u32; +pub const TABLET_ENABLE_FLICKLEARNINGMODE: u32 = 262144u32; +pub const TABLET_ENABLE_FLICKSONCONTEXT: u32 = 131072u32; +pub const TABLET_ENABLE_MULTITOUCHDATA: u32 = 16777216u32; +pub const TCF_ALLOW_RECOGNITION: GET_DANDIDATE_FLAGS = 1i32; +pub const TCF_FORCE_RECOGNITION: GET_DANDIDATE_FLAGS = 2i32; +pub const TDK_Mouse: TabletDeviceKind = 0i32; +pub const TDK_Pen: TabletDeviceKind = 1i32; +pub const TDK_Touch: TabletDeviceKind = 2i32; +pub const THWC_CursorMustTouch: TabletHardwareCapabilities = 2i32; +pub const THWC_CursorsHavePhysicalIds: TabletHardwareCapabilities = 8i32; +pub const THWC_HardProximity: TabletHardwareCapabilities = 4i32; +pub const THWC_Integrated: TabletHardwareCapabilities = 1i32; +pub const TPMU_Centimeters: TabletPropertyMetricUnit = 2i32; +pub const TPMU_Default: TabletPropertyMetricUnit = 0i32; +pub const TPMU_Degrees: TabletPropertyMetricUnit = 3i32; +pub const TPMU_Grams: TabletPropertyMetricUnit = 7i32; +pub const TPMU_Inches: TabletPropertyMetricUnit = 1i32; +pub const TPMU_Pounds: TabletPropertyMetricUnit = 6i32; +pub const TPMU_Radians: TabletPropertyMetricUnit = 4i32; +pub const TPMU_Seconds: TabletPropertyMetricUnit = 5i32; +pub const TextInputPanel: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf9b189d7_228b_4f2b_8650_b97f59e02c8c); +pub const TipAutoCompleteClient: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x807c1e6c_1d00_453f_b920_b61bb7cdd997); +pub const WM_TABLET_ADDED: u32 = 712u32; +pub const WM_TABLET_DEFBASE: u32 = 704u32; +pub const WM_TABLET_DELETED: u32 = 713u32; +pub const WM_TABLET_FLICK: u32 = 715u32; +pub const WM_TABLET_MAXOFFSET: u32 = 32u32; +pub const WM_TABLET_QUERYSYSTEMGESTURESTATUS: u32 = 716u32; +pub const rtfBoth: ScrollBarsConstants = 3i32; +pub const rtfCenter: SelAlignmentConstants = 2i32; +pub const rtfFixedSingle: BorderStyleConstants = 1i32; +pub const rtfFlat: AppearanceConstants = 0i32; +pub const rtfHorizontal: ScrollBarsConstants = 1i32; +pub const rtfLeft: SelAlignmentConstants = 0i32; +pub const rtfNoBorder: BorderStyleConstants = 0i32; +pub const rtfNone: ScrollBarsConstants = 0i32; +pub const rtfRight: SelAlignmentConstants = 1i32; +pub const rtfThreeD: AppearanceConstants = 1i32; +pub const rtfVertical: ScrollBarsConstants = 2i32; +pub type ALT_BREAKS = i32; +pub type AppearanceConstants = i32; +pub type BorderStyleConstants = i32; +pub type CONFIDENCE_LEVEL = i32; +pub type CorrectionMode = i32; +pub type CorrectionPosition = i32; +pub type DISPID_Ink = i32; +pub type DISPID_InkCollector = i32; +pub type DISPID_InkCollectorEvent = i32; +pub type DISPID_InkCursor = i32; +pub type DISPID_InkCursorButton = i32; +pub type DISPID_InkCursorButtons = i32; +pub type DISPID_InkCursors = i32; +pub type DISPID_InkCustomStrokes = i32; +pub type DISPID_InkDivider = i32; +pub type DISPID_InkDivisionResult = i32; +pub type DISPID_InkDivisionUnit = i32; +pub type DISPID_InkDivisionUnits = i32; +pub type DISPID_InkDrawingAttributes = i32; +pub type DISPID_InkEdit = i32; +pub type DISPID_InkEditEvents = i32; +pub type DISPID_InkEvent = i32; +pub type DISPID_InkExtendedProperties = i32; +pub type DISPID_InkExtendedProperty = i32; +pub type DISPID_InkGesture = i32; +pub type DISPID_InkRecoAlternate = i32; +pub type DISPID_InkRecoContext = i32; +pub type DISPID_InkRecoContext2 = i32; +pub type DISPID_InkRecognitionAlternates = i32; +pub type DISPID_InkRecognitionEvent = i32; +pub type DISPID_InkRecognitionResult = i32; +pub type DISPID_InkRecognizer = i32; +pub type DISPID_InkRecognizer2 = i32; +pub type DISPID_InkRecognizerGuide = i32; +pub type DISPID_InkRecognizers = i32; +pub type DISPID_InkRectangle = i32; +pub type DISPID_InkRenderer = i32; +pub type DISPID_InkStrokeDisp = i32; +pub type DISPID_InkStrokes = i32; +pub type DISPID_InkTablet = i32; +pub type DISPID_InkTablet2 = i32; +pub type DISPID_InkTablet3 = i32; +pub type DISPID_InkTablets = i32; +pub type DISPID_InkTransform = i32; +pub type DISPID_InkWordList = i32; +pub type DISPID_InkWordList2 = i32; +pub type DISPID_MathInputControlEvents = i32; +pub type DISPID_PenInputPanel = i32; +pub type DISPID_PenInputPanelEvents = i32; +pub type DISPID_StrokeEvent = i32; +pub type EventMask = i32; +pub type FLICKACTION_COMMANDCODE = i32; +pub type FLICKDIRECTION = i32; +pub type FLICKMODE = i32; +pub type GET_DANDIDATE_FLAGS = i32; +pub type INK_METRIC_FLAGS = i32; +pub type InPlaceDirection = i32; +pub type InPlaceState = i32; +pub type InkApplicationGesture = i32; +pub type InkBoundingBoxMode = i32; +pub type InkClipboardFormats = i32; +pub type InkClipboardModes = i32; +pub type InkCollectionMode = i32; +pub type InkCollectorEventInterest = i32; +pub type InkCursorButtonState = i32; +pub type InkDisplayMode = i32; +pub type InkDivisionType = i32; +pub type InkEditStatus = i32; +pub type InkExtractFlags = i32; +pub type InkInsertMode = i32; +pub type InkMode = i32; +pub type InkMouseButton = i32; +pub type InkMousePointer = i32; +pub type InkOverlayAttachMode = i32; +pub type InkOverlayEditingMode = i32; +pub type InkOverlayEraserMode = i32; +pub type InkPenTip = i32; +pub type InkPersistenceCompressionMode = i32; +pub type InkPersistenceFormat = i32; +pub type InkPictureSizeMode = i32; +pub type InkRasterOperation = i32; +pub type InkRecognitionAlternatesSelection = i32; +pub type InkRecognitionConfidence = i32; +pub type InkRecognitionModes = i32; +pub type InkRecognitionStatus = i32; +pub type InkRecognizerCapabilities = i32; +pub type InkRecognizerCharacterAutoCompletionMode = i32; +pub type InkSelectionConstants = i32; +pub type InkShiftKeyModifierFlags = i32; +pub type InkSystemGesture = i32; +pub type InteractionMode = i32; +pub type KEYMODIFIER = i32; +pub type LINE_METRICS = i32; +pub type MICUIELEMENT = i32; +pub type MICUIELEMENTSTATE = i32; +pub type MouseButton = i32; +pub type PROPERTY_UNITS = i32; +pub type PanelInputArea = i32; +pub type PanelType = i32; +pub type RECO_TYPE = i32; +pub type RealTimeStylusDataInterest = i32; +pub type RealTimeStylusLockType = i32; +pub type SCROLLDIRECTION = i32; +pub type ScrollBarsConstants = i32; +pub type SelAlignmentConstants = i32; +pub type SelectionHitResult = i32; +pub type StylusQueue = i32; +pub type TabletDeviceKind = i32; +pub type TabletHardwareCapabilities = i32; +pub type TabletPropertyMetricUnit = i32; +pub type VisualState = i32; +#[repr(C)] +pub struct CHARACTER_RANGE { + pub wcLow: u16, + pub cChars: u16, +} +impl ::core::marker::Copy for CHARACTER_RANGE {} +impl ::core::clone::Clone for CHARACTER_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DYNAMIC_RENDERER_CACHED_DATA { + pub strokeId: i32, + pub dynamicRenderer: IDynamicRenderer, +} +impl ::core::marker::Copy for DYNAMIC_RENDERER_CACHED_DATA {} +impl ::core::clone::Clone for DYNAMIC_RENDERER_CACHED_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLICK_DATA { + pub _bitfield: i32, +} +impl ::core::marker::Copy for FLICK_DATA {} +impl ::core::clone::Clone for FLICK_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct FLICK_POINT { + pub _bitfield: i32, +} +impl ::core::marker::Copy for FLICK_POINT {} +impl ::core::clone::Clone for FLICK_POINT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GESTURE_DATA { + pub gestureId: i32, + pub recoConfidence: i32, + pub strokeCount: i32, +} +impl ::core::marker::Copy for GESTURE_DATA {} +impl ::core::clone::Clone for GESTURE_DATA { + fn clone(&self) -> Self { + *self + } +} +pub type HRECOALT = isize; +pub type HRECOCONTEXT = isize; +pub type HRECOGNIZER = isize; +pub type HRECOLATTICE = isize; +pub type HRECOWORDLIST = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Controls\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Controls"))] +pub struct IEC_GESTUREINFO { + pub nmhdr: super::Controls::NMHDR, + pub Cursor: IInkCursor, + pub Strokes: IInkStrokes, + pub Gestures: super::super::System::Variant::VARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Controls"))] +impl ::core::marker::Copy for IEC_GESTUREINFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Controls"))] +impl ::core::clone::Clone for IEC_GESTUREINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Controls\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_UI_Controls"))] +pub struct IEC_RECOGNITIONRESULTINFO { + pub nmhdr: super::Controls::NMHDR, + pub RecognitionResult: IInkRecognitionResult, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_UI_Controls"))] +impl ::core::marker::Copy for IEC_RECOGNITIONRESULTINFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_UI_Controls"))] +impl ::core::clone::Clone for IEC_RECOGNITIONRESULTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Controls\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_UI_Controls"))] +pub struct IEC_STROKEINFO { + pub nmhdr: super::Controls::NMHDR, + pub Cursor: IInkCursor, + pub Stroke: IInkStrokeDisp, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_UI_Controls"))] +impl ::core::marker::Copy for IEC_STROKEINFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_UI_Controls"))] +impl ::core::clone::Clone for IEC_STROKEINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct INKMETRIC { + pub iHeight: i32, + pub iFontAscent: i32, + pub iFontDescent: i32, + pub dwFlags: u32, + pub color: super::super::Foundation::COLORREF, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for INKMETRIC {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for INKMETRIC { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct InkRecoGuide { + pub rectWritingBox: super::super::Foundation::RECT, + pub rectDrawnBox: super::super::Foundation::RECT, + pub cRows: i32, + pub cColumns: i32, + pub midline: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for InkRecoGuide {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for InkRecoGuide { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LATTICE_METRICS { + pub lsBaseline: LINE_SEGMENT, + pub iMidlineOffset: i16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LATTICE_METRICS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LATTICE_METRICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct LINE_SEGMENT { + pub PtA: super::super::Foundation::POINT, + pub PtB: super::super::Foundation::POINT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for LINE_SEGMENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for LINE_SEGMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PACKET_DESCRIPTION { + pub cbPacketSize: u32, + pub cPacketProperties: u32, + pub pPacketProperties: *mut PACKET_PROPERTY, + pub cButtons: u32, + pub pguidButtons: *mut ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for PACKET_DESCRIPTION {} +impl ::core::clone::Clone for PACKET_DESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PACKET_PROPERTY { + pub guid: ::windows_sys::core::GUID, + pub PropertyMetrics: PROPERTY_METRICS, +} +impl ::core::marker::Copy for PACKET_PROPERTY {} +impl ::core::clone::Clone for PACKET_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct PROPERTY_METRICS { + pub nLogicalMin: i32, + pub nLogicalMax: i32, + pub Units: PROPERTY_UNITS, + pub fResolution: f32, +} +impl ::core::marker::Copy for PROPERTY_METRICS {} +impl ::core::clone::Clone for PROPERTY_METRICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECO_ATTRS { + pub dwRecoCapabilityFlags: u32, + pub awcVendorName: [u16; 32], + pub awcFriendlyName: [u16; 64], + pub awLanguageId: [u16; 64], +} +impl ::core::marker::Copy for RECO_ATTRS {} +impl ::core::clone::Clone for RECO_ATTRS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECO_GUIDE { + pub xOrigin: i32, + pub yOrigin: i32, + pub cxBox: i32, + pub cyBox: i32, + pub cxBase: i32, + pub cyBase: i32, + pub cHorzBox: i32, + pub cVertBox: i32, + pub cyMid: i32, +} +impl ::core::marker::Copy for RECO_GUIDE {} +impl ::core::clone::Clone for RECO_GUIDE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECO_LATTICE { + pub ulColumnCount: u32, + pub pLatticeColumns: *mut RECO_LATTICE_COLUMN, + pub ulPropertyCount: u32, + pub pGuidProperties: *mut ::windows_sys::core::GUID, + pub ulBestResultColumnCount: u32, + pub pulBestResultColumns: *mut u32, + pub pulBestResultIndexes: *mut u32, +} +impl ::core::marker::Copy for RECO_LATTICE {} +impl ::core::clone::Clone for RECO_LATTICE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECO_LATTICE_COLUMN { + pub key: u32, + pub cpProp: RECO_LATTICE_PROPERTIES, + pub cStrokes: u32, + pub pStrokes: *mut u32, + pub cLatticeElements: u32, + pub pLatticeElements: *mut RECO_LATTICE_ELEMENT, +} +impl ::core::marker::Copy for RECO_LATTICE_COLUMN {} +impl ::core::clone::Clone for RECO_LATTICE_COLUMN { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECO_LATTICE_ELEMENT { + pub score: i32, + pub r#type: u16, + pub pData: *mut u8, + pub ulNextColumn: u32, + pub ulStrokeNumber: u32, + pub epProp: RECO_LATTICE_PROPERTIES, +} +impl ::core::marker::Copy for RECO_LATTICE_ELEMENT {} +impl ::core::clone::Clone for RECO_LATTICE_ELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECO_LATTICE_PROPERTIES { + pub cProperties: u32, + pub apProps: *mut *mut RECO_LATTICE_PROPERTY, +} +impl ::core::marker::Copy for RECO_LATTICE_PROPERTIES {} +impl ::core::clone::Clone for RECO_LATTICE_PROPERTIES { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECO_LATTICE_PROPERTY { + pub guidProperty: ::windows_sys::core::GUID, + pub cbPropertyValue: u16, + pub pPropertyValue: *mut u8, +} +impl ::core::marker::Copy for RECO_LATTICE_PROPERTY {} +impl ::core::clone::Clone for RECO_LATTICE_PROPERTY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct RECO_RANGE { + pub iwcBegin: u32, + pub cCount: u32, +} +impl ::core::marker::Copy for RECO_RANGE {} +impl ::core::clone::Clone for RECO_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STROKE_RANGE { + pub iStrokeBegin: u32, + pub iStrokeEnd: u32, +} +impl ::core::marker::Copy for STROKE_RANGE {} +impl ::core::clone::Clone for STROKE_RANGE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SYSTEM_EVENT_DATA { + pub bModifier: u8, + pub wKey: u16, + pub xPos: i32, + pub yPos: i32, + pub bCursorMode: u8, + pub dwButtonState: u32, +} +impl ::core::marker::Copy for SYSTEM_EVENT_DATA {} +impl ::core::clone::Clone for SYSTEM_EVENT_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct StylusInfo { + pub tcid: u32, + pub cid: u32, + pub bIsInvertedCursor: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for StylusInfo {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for StylusInfo { + fn clone(&self) -> Self { + *self + } +} +pub type PfnRecoCallback = ::core::option::Option ::windows_sys::core::HRESULT>; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/TextServices/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/TextServices/mod.rs new file mode 100644 index 000000000..bc0f8b926 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/TextServices/mod.rs @@ -0,0 +1,1103 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msctfmonitor.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DoMsCtfMonitor(dwflags : u32, heventforservicestop : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +::windows_targets::link!("msctfmonitor.dll" "system" fn InitLocalMsCtfMonitor(dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msctfmonitor.dll" "system" fn UninitLocalMsCtfMonitor() -> ::windows_sys::core::HRESULT); +pub type IAccClientDocMgr = *mut ::core::ffi::c_void; +pub type IAccDictionary = *mut ::core::ffi::c_void; +pub type IAccServerDocMgr = *mut ::core::ffi::c_void; +pub type IAccStore = *mut ::core::ffi::c_void; +pub type IAnchor = *mut ::core::ffi::c_void; +pub type IClonableWrapper = *mut ::core::ffi::c_void; +pub type ICoCreateLocally = *mut ::core::ffi::c_void; +pub type ICoCreatedLocally = *mut ::core::ffi::c_void; +pub type IDocWrap = *mut ::core::ffi::c_void; +pub type IEnumITfCompositionView = *mut ::core::ffi::c_void; +pub type IEnumSpeechCommands = *mut ::core::ffi::c_void; +pub type IEnumTfCandidates = *mut ::core::ffi::c_void; +pub type IEnumTfContextViews = *mut ::core::ffi::c_void; +pub type IEnumTfContexts = *mut ::core::ffi::c_void; +pub type IEnumTfDisplayAttributeInfo = *mut ::core::ffi::c_void; +pub type IEnumTfDocumentMgrs = *mut ::core::ffi::c_void; +pub type IEnumTfFunctionProviders = *mut ::core::ffi::c_void; +pub type IEnumTfInputProcessorProfiles = *mut ::core::ffi::c_void; +pub type IEnumTfLangBarItems = *mut ::core::ffi::c_void; +pub type IEnumTfLanguageProfiles = *mut ::core::ffi::c_void; +pub type IEnumTfLatticeElements = *mut ::core::ffi::c_void; +pub type IEnumTfProperties = *mut ::core::ffi::c_void; +pub type IEnumTfPropertyValue = *mut ::core::ffi::c_void; +pub type IEnumTfRanges = *mut ::core::ffi::c_void; +pub type IEnumTfUIElements = *mut ::core::ffi::c_void; +pub type IInternalDocWrap = *mut ::core::ffi::c_void; +pub type ISpeechCommandProvider = *mut ::core::ffi::c_void; +pub type ITextStoreACP = *mut ::core::ffi::c_void; +pub type ITextStoreACP2 = *mut ::core::ffi::c_void; +pub type ITextStoreACPEx = *mut ::core::ffi::c_void; +pub type ITextStoreACPServices = *mut ::core::ffi::c_void; +pub type ITextStoreACPSink = *mut ::core::ffi::c_void; +pub type ITextStoreACPSinkEx = *mut ::core::ffi::c_void; +pub type ITextStoreAnchor = *mut ::core::ffi::c_void; +pub type ITextStoreAnchorEx = *mut ::core::ffi::c_void; +pub type ITextStoreAnchorSink = *mut ::core::ffi::c_void; +pub type ITextStoreSinkAnchorEx = *mut ::core::ffi::c_void; +pub type ITfActiveLanguageProfileNotifySink = *mut ::core::ffi::c_void; +pub type ITfCandidateList = *mut ::core::ffi::c_void; +pub type ITfCandidateListUIElement = *mut ::core::ffi::c_void; +pub type ITfCandidateListUIElementBehavior = *mut ::core::ffi::c_void; +pub type ITfCandidateString = *mut ::core::ffi::c_void; +pub type ITfCategoryMgr = *mut ::core::ffi::c_void; +pub type ITfCleanupContextDurationSink = *mut ::core::ffi::c_void; +pub type ITfCleanupContextSink = *mut ::core::ffi::c_void; +pub type ITfClientId = *mut ::core::ffi::c_void; +pub type ITfCompartment = *mut ::core::ffi::c_void; +pub type ITfCompartmentEventSink = *mut ::core::ffi::c_void; +pub type ITfCompartmentMgr = *mut ::core::ffi::c_void; +pub type ITfComposition = *mut ::core::ffi::c_void; +pub type ITfCompositionSink = *mut ::core::ffi::c_void; +pub type ITfCompositionView = *mut ::core::ffi::c_void; +pub type ITfConfigureSystemKeystrokeFeed = *mut ::core::ffi::c_void; +pub type ITfContext = *mut ::core::ffi::c_void; +pub type ITfContextComposition = *mut ::core::ffi::c_void; +pub type ITfContextKeyEventSink = *mut ::core::ffi::c_void; +pub type ITfContextOwner = *mut ::core::ffi::c_void; +pub type ITfContextOwnerCompositionServices = *mut ::core::ffi::c_void; +pub type ITfContextOwnerCompositionSink = *mut ::core::ffi::c_void; +pub type ITfContextOwnerServices = *mut ::core::ffi::c_void; +pub type ITfContextView = *mut ::core::ffi::c_void; +pub type ITfCreatePropertyStore = *mut ::core::ffi::c_void; +pub type ITfDisplayAttributeInfo = *mut ::core::ffi::c_void; +pub type ITfDisplayAttributeMgr = *mut ::core::ffi::c_void; +pub type ITfDisplayAttributeNotifySink = *mut ::core::ffi::c_void; +pub type ITfDisplayAttributeProvider = *mut ::core::ffi::c_void; +pub type ITfDocumentMgr = *mut ::core::ffi::c_void; +pub type ITfEditRecord = *mut ::core::ffi::c_void; +pub type ITfEditSession = *mut ::core::ffi::c_void; +pub type ITfEditTransactionSink = *mut ::core::ffi::c_void; +pub type ITfFnAdviseText = *mut ::core::ffi::c_void; +pub type ITfFnBalloon = *mut ::core::ffi::c_void; +pub type ITfFnConfigure = *mut ::core::ffi::c_void; +pub type ITfFnConfigureRegisterEudc = *mut ::core::ffi::c_void; +pub type ITfFnConfigureRegisterWord = *mut ::core::ffi::c_void; +pub type ITfFnCustomSpeechCommand = *mut ::core::ffi::c_void; +pub type ITfFnGetLinguisticAlternates = *mut ::core::ffi::c_void; +pub type ITfFnGetPreferredTouchKeyboardLayout = *mut ::core::ffi::c_void; +pub type ITfFnGetSAPIObject = *mut ::core::ffi::c_void; +pub type ITfFnLMInternal = *mut ::core::ffi::c_void; +pub type ITfFnLMProcessor = *mut ::core::ffi::c_void; +pub type ITfFnLangProfileUtil = *mut ::core::ffi::c_void; +pub type ITfFnPlayBack = *mut ::core::ffi::c_void; +pub type ITfFnPropertyUIStatus = *mut ::core::ffi::c_void; +pub type ITfFnReconversion = *mut ::core::ffi::c_void; +pub type ITfFnSearchCandidateProvider = *mut ::core::ffi::c_void; +pub type ITfFnShowHelp = *mut ::core::ffi::c_void; +pub type ITfFunction = *mut ::core::ffi::c_void; +pub type ITfFunctionProvider = *mut ::core::ffi::c_void; +pub type ITfInputProcessorProfileActivationSink = *mut ::core::ffi::c_void; +pub type ITfInputProcessorProfileMgr = *mut ::core::ffi::c_void; +pub type ITfInputProcessorProfileSubstituteLayout = *mut ::core::ffi::c_void; +pub type ITfInputProcessorProfiles = *mut ::core::ffi::c_void; +pub type ITfInputProcessorProfilesEx = *mut ::core::ffi::c_void; +pub type ITfInputScope = *mut ::core::ffi::c_void; +pub type ITfInputScope2 = *mut ::core::ffi::c_void; +pub type ITfInsertAtSelection = *mut ::core::ffi::c_void; +pub type ITfIntegratableCandidateListUIElement = *mut ::core::ffi::c_void; +pub type ITfKeyEventSink = *mut ::core::ffi::c_void; +pub type ITfKeyTraceEventSink = *mut ::core::ffi::c_void; +pub type ITfKeystrokeMgr = *mut ::core::ffi::c_void; +pub type ITfLMLattice = *mut ::core::ffi::c_void; +pub type ITfLangBarEventSink = *mut ::core::ffi::c_void; +pub type ITfLangBarItem = *mut ::core::ffi::c_void; +pub type ITfLangBarItemBalloon = *mut ::core::ffi::c_void; +pub type ITfLangBarItemBitmap = *mut ::core::ffi::c_void; +pub type ITfLangBarItemBitmapButton = *mut ::core::ffi::c_void; +pub type ITfLangBarItemButton = *mut ::core::ffi::c_void; +pub type ITfLangBarItemMgr = *mut ::core::ffi::c_void; +pub type ITfLangBarItemSink = *mut ::core::ffi::c_void; +pub type ITfLangBarMgr = *mut ::core::ffi::c_void; +pub type ITfLanguageProfileNotifySink = *mut ::core::ffi::c_void; +pub type ITfMSAAControl = *mut ::core::ffi::c_void; +pub type ITfMenu = *mut ::core::ffi::c_void; +pub type ITfMessagePump = *mut ::core::ffi::c_void; +pub type ITfMouseSink = *mut ::core::ffi::c_void; +pub type ITfMouseTracker = *mut ::core::ffi::c_void; +pub type ITfMouseTrackerACP = *mut ::core::ffi::c_void; +pub type ITfPersistentPropertyLoaderACP = *mut ::core::ffi::c_void; +pub type ITfPreservedKeyNotifySink = *mut ::core::ffi::c_void; +pub type ITfProperty = *mut ::core::ffi::c_void; +pub type ITfPropertyStore = *mut ::core::ffi::c_void; +pub type ITfQueryEmbedded = *mut ::core::ffi::c_void; +pub type ITfRange = *mut ::core::ffi::c_void; +pub type ITfRangeACP = *mut ::core::ffi::c_void; +pub type ITfRangeBackup = *mut ::core::ffi::c_void; +pub type ITfReadOnlyProperty = *mut ::core::ffi::c_void; +pub type ITfReadingInformationUIElement = *mut ::core::ffi::c_void; +pub type ITfReverseConversion = *mut ::core::ffi::c_void; +pub type ITfReverseConversionList = *mut ::core::ffi::c_void; +pub type ITfReverseConversionMgr = *mut ::core::ffi::c_void; +pub type ITfSource = *mut ::core::ffi::c_void; +pub type ITfSourceSingle = *mut ::core::ffi::c_void; +pub type ITfSpeechUIServer = *mut ::core::ffi::c_void; +pub type ITfStatusSink = *mut ::core::ffi::c_void; +pub type ITfSystemDeviceTypeLangBarItem = *mut ::core::ffi::c_void; +pub type ITfSystemLangBarItem = *mut ::core::ffi::c_void; +pub type ITfSystemLangBarItemSink = *mut ::core::ffi::c_void; +pub type ITfSystemLangBarItemText = *mut ::core::ffi::c_void; +pub type ITfTextEditSink = *mut ::core::ffi::c_void; +pub type ITfTextInputProcessor = *mut ::core::ffi::c_void; +pub type ITfTextInputProcessorEx = *mut ::core::ffi::c_void; +pub type ITfTextLayoutSink = *mut ::core::ffi::c_void; +pub type ITfThreadFocusSink = *mut ::core::ffi::c_void; +pub type ITfThreadMgr = *mut ::core::ffi::c_void; +pub type ITfThreadMgr2 = *mut ::core::ffi::c_void; +pub type ITfThreadMgrEventSink = *mut ::core::ffi::c_void; +pub type ITfThreadMgrEx = *mut ::core::ffi::c_void; +pub type ITfToolTipUIElement = *mut ::core::ffi::c_void; +pub type ITfTransitoryExtensionSink = *mut ::core::ffi::c_void; +pub type ITfTransitoryExtensionUIElement = *mut ::core::ffi::c_void; +pub type ITfUIElement = *mut ::core::ffi::c_void; +pub type ITfUIElementMgr = *mut ::core::ffi::c_void; +pub type ITfUIElementSink = *mut ::core::ffi::c_void; +pub type IUIManagerEventSink = *mut ::core::ffi::c_void; +pub type IVersionInfo = *mut ::core::ffi::c_void; +pub const AccClientDocMgr: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfc48cc30_4f3e_4fa1_803b_ad0e196a83b1); +pub const AccDictionary: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6572ee16_5fe5_4331_bb6d_76a49c56e423); +pub const AccServerDocMgr: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6089a37e_eb8a_482d_bd6f_f9f46904d16d); +pub const AccStore: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5440837f_4bff_4ae5_a1b1_7722ecc6332a); +pub const CAND_CANCELED: TfCandidateResult = 2i32; +pub const CAND_FINALIZED: TfCandidateResult = 0i32; +pub const CAND_SELECTED: TfCandidateResult = 1i32; +pub const CLSID_TF_CategoryMgr: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa4b544a1_438d_4b41_9325_869523e2d6c7); +pub const CLSID_TF_ClassicLangBar: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3318360c_1afc_4d09_a86b_9f9cb6dceb9c); +pub const CLSID_TF_DisplayAttributeMgr: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3ce74de4_53d3_4d74_8b83_431b3828ba53); +pub const CLSID_TF_InputProcessorProfiles: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33c53a50_f456_4884_b049_85fd643ecfed); +pub const CLSID_TF_LangBarItemMgr: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb9931692_a2b3_4fab_bf33_9ec6f9fb96ac); +pub const CLSID_TF_LangBarMgr: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xebb08c45_6c4a_4fdc_ae53_4eb8c4c7db8e); +pub const CLSID_TF_ThreadMgr: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x529a9e6b_6587_4f23_ab9e_9c7d683e3c50); +pub const CLSID_TF_TransitoryExtensionUIEntry: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae6be008_07fb_400d_8beb_337a64f7051f); +pub const CLSID_TsfServices: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x39aedc00_6b60_46db_8d31_3642be0e4373); +pub const DCM_FLAGS_CTFMON: u32 = 2u32; +pub const DCM_FLAGS_LOCALTHREADTSF: u32 = 4u32; +pub const DCM_FLAGS_TASKENG: u32 = 1u32; +pub const DocWrap: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbf426f7e_7a5e_44d6_830c_a390ea9462a3); +pub const GETIF_DICTGRAM: TfSapiObject = 4i32; +pub const GETIF_RECOCONTEXT: TfSapiObject = 1i32; +pub const GETIF_RECOGNIZER: TfSapiObject = 2i32; +pub const GETIF_RECOGNIZERNOINIT: TfSapiObject = 5i32; +pub const GETIF_RESMGR: TfSapiObject = 0i32; +pub const GETIF_VOICE: TfSapiObject = 3i32; +pub const GUID_APP_FUNCTIONPROVIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4caef01e_12af_4b0e_9db1_a6ec5b881208); +pub const GUID_COMPARTMENT_CONVERSIONMODEBIAS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5497f516_ee91_436e_b946_aa2c05f1ac5b); +pub const GUID_COMPARTMENT_EMPTYCONTEXT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7487dbf_804e_41c5_894d_ad96fd4eea13); +pub const GUID_COMPARTMENT_ENABLED_PROFILES_UPDATED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x92c1fd48_a9ae_4a7c_be08_4329e4723817); +pub const GUID_COMPARTMENT_HANDWRITING_OPENCLOSE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf9ae2c6b_1866_4361_af72_7aa30948890e); +pub const GUID_COMPARTMENT_KEYBOARD_DISABLED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x71a5b253_1951_466b_9fbc_9c8808fa84f2); +pub const GUID_COMPARTMENT_KEYBOARD_INPUTMODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb6592511_bcee_4122_a7c4_09f4b3fa4396); +pub const GUID_COMPARTMENT_KEYBOARD_INPUTMODE_CONVERSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xccf05dd8_4a87_11d7_a6e2_00065b84435c); +pub const GUID_COMPARTMENT_KEYBOARD_INPUTMODE_SENTENCE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xccf05dd9_4a87_11d7_a6e2_00065b84435c); +pub const GUID_COMPARTMENT_KEYBOARD_OPENCLOSE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x58273aad_01bb_4164_95c6_755ba0b5162d); +pub const GUID_COMPARTMENT_SAPI_AUDIO: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x51af2086_cc6b_457d_b5aa_8b19dc290ab4); +pub const GUID_COMPARTMENT_SPEECH_CFGMENU: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb6c5c2d_4e83_4bb6_91a2_e019bff6762d); +pub const GUID_COMPARTMENT_SPEECH_DISABLED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x56c5c607_0703_4e59_8e52_cbc84e8bbe35); +pub const GUID_COMPARTMENT_SPEECH_GLOBALSTATE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2a54fe8e_0d08_460c_a75d_87035ff436c5); +pub const GUID_COMPARTMENT_SPEECH_OPENCLOSE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x544d6a63_e2e8_4752_bbd1_000960bca083); +pub const GUID_COMPARTMENT_SPEECH_UI_STATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd92016f0_9367_4fe7_9abf_bc59dacbe0e3); +pub const GUID_COMPARTMENT_TIPUISTATUS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x148ca3ec_0366_401c_8d75_ed978d85fbc9); +pub const GUID_COMPARTMENT_TRANSITORYEXTENSION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8be347f5_c7a0_11d7_b408_00065b84435c); +pub const GUID_COMPARTMENT_TRANSITORYEXTENSION_DOCUMENTMANAGER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8be347f7_c7a0_11d7_b408_00065b84435c); +pub const GUID_COMPARTMENT_TRANSITORYEXTENSION_PARENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8be347f8_c7a0_11d7_b408_00065b84435c); +pub const GUID_INTEGRATIONSTYLE_SEARCHBOX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe6d1bd11_82f7_4903_ae21_1a6397cde2eb); +pub const GUID_LBI_INPUTMODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c77a81e_41cc_4178_a3a7_5f8a987568e6); +pub const GUID_LBI_SAPILAYR_CFGMENUBUTTON: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd02f24a1_942d_422e_8d99_b4f2addee999); +pub const GUID_MODEBIAS_CHINESE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7add26de_4328_489b_83ae_6493750cad5c); +pub const GUID_MODEBIAS_CONVERSATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0f4ec104_1790_443b_95f1_e10f939d6546); +pub const GUID_MODEBIAS_DATETIME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf2bdb372_7f61_4039_92ef_1c35599f0222); +pub const GUID_MODEBIAS_FILENAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd7f707fe_44c6_4fca_8e76_86ab50c7931b); +pub const GUID_MODEBIAS_FULLWIDTHALPHANUMERIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x81489fb8_b36a_473d_8146_e4a2258b24ae); +pub const GUID_MODEBIAS_FULLWIDTHHANGUL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc01ae6c9_45b5_4fd0_9cb1_9f4cebc39fea); +pub const GUID_MODEBIAS_HALFWIDTHKATAKANA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x005f6b63_78d4_41cc_8859_485ca821a795); +pub const GUID_MODEBIAS_HANGUL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x76ef0541_23b3_4d77_a074_691801ccea17); +pub const GUID_MODEBIAS_HIRAGANA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd73d316e_9b91_46f1_a280_31597f52c694); +pub const GUID_MODEBIAS_KATAKANA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2e0eeddd_3a1a_499e_8543_3c7ee7949811); +pub const GUID_MODEBIAS_NAME: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfddc10f0_d239_49bf_b8fc_5410caaa427e); +pub const GUID_MODEBIAS_NONE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x00000000_0000_0000_0000_000000000000); +pub const GUID_MODEBIAS_NUMERIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4021766c_e872_48fd_9cee_4ec5c75e16c3); +pub const GUID_MODEBIAS_READING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe31643a3_6466_4cbf_8d8b_0bd4d8545461); +pub const GUID_MODEBIAS_URLHISTORY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8b0e54d9_63f2_4c68_84d4_79aee7a59f09); +pub const GUID_PROP_ATTRIBUTE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x34b45670_7526_11d2_a147_00105a2799b5); +pub const GUID_PROP_COMPOSING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe12ac060_af15_11d2_afc5_00105a2799b5); +pub const GUID_PROP_INPUTSCOPE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1713dd5a_68e7_4a5b_9af6_592a595c778d); +pub const GUID_PROP_LANGID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3280ce20_8032_11d2_b603_00105a2799b5); +pub const GUID_PROP_MODEBIAS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x372e0716_974f_40ac_a088_08cdc92ebfbc); +pub const GUID_PROP_READING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5463f7c0_8e31_11d2_bf46_00105a2799b5); +pub const GUID_PROP_TEXTOWNER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf1e2d520_0969_11d3_8df0_00105a2799b5); +pub const GUID_PROP_TKB_ALTERNATES: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x70b2a803_968d_462e_b93b_2164c91517f7); +pub const GUID_SYSTEM_FUNCTIONPROVIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9a698bb0_0f21_11d3_8df1_00105a2799b5); +pub const GUID_TFCAT_CATEGORY_OF_TIP: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x534c48c1_0607_4098_a521_4fc899c73e90); +pub const GUID_TFCAT_DISPLAYATTRIBUTEPROPERTY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb95f181b_ea4c_4af1_8056_7c321abbb091); +pub const GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x046b8c80_1647_40f7_9b21_b93b81aabc1b); +pub const GUID_TFCAT_PROPSTYLE_STATIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x565fb8d8_6bd4_4ca1_b223_0f2ccb8f4f96); +pub const GUID_TFCAT_PROP_AUDIODATA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9b7be3a9_e8ab_4d47_a8fe_254fa423436d); +pub const GUID_TFCAT_PROP_INKDATA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7c6a82ae_b0d7_4f14_a745_14f28b009d61); +pub const GUID_TFCAT_TIPCAP_COMLESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x364215d9_75bc_11d7_a6ef_00065b84435c); +pub const GUID_TFCAT_TIPCAP_DUALMODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3af314a2_d79f_4b1b_9992_15086d339b05); +pub const GUID_TFCAT_TIPCAP_IMMERSIVEONLY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3a4259ac_640d_4ad4_89f7_1eb67e7c4ee8); +pub const GUID_TFCAT_TIPCAP_IMMERSIVESUPPORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13a016df_560b_46cd_947a_4c3af1e0e35d); +pub const GUID_TFCAT_TIPCAP_INPUTMODECOMPARTMENT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xccf05dd7_4a87_11d7_a6e2_00065b84435c); +pub const GUID_TFCAT_TIPCAP_LOCALSERVER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x74769ee9_4a66_4f9d_90d6_bf8b7c3eb461); +pub const GUID_TFCAT_TIPCAP_SECUREMODE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49d2f9ce_1f5e_11d7_a6d3_00065b84435c); +pub const GUID_TFCAT_TIPCAP_SYSTRAYSUPPORT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x25504fb4_7bab_4bc1_9c69_cf81890f0ef5); +pub const GUID_TFCAT_TIPCAP_TSF3: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x07dcb4af_98de_4548_bef7_25bd45979a1f); +pub const GUID_TFCAT_TIPCAP_UIELEMENTENABLED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x49d2f9cf_1f5e_11d7_a6d3_00065b84435c); +pub const GUID_TFCAT_TIPCAP_WOW16: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x364215da_75bc_11d7_a6ef_00065b84435c); +pub const GUID_TFCAT_TIP_HANDWRITING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x246ecb87_c2f2_4abe_905b_c8b38add2c43); +pub const GUID_TFCAT_TIP_KEYBOARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x34745c63_b2f0_4784_8b67_5e12c8701a31); +pub const GUID_TFCAT_TIP_SPEECH: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb5a73cd1_8355_426b_a161_259808f26b14); +pub const GUID_TFCAT_TRANSITORYEXTENSIONUI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6302de22_a5cf_4b02_bfe8_4d72b2bed3c6); +pub const GUID_TS_SERVICE_ACCESSIBLE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf9786200_a5bf_4a0f_8c24_fb16f5d1aabb); +pub const GUID_TS_SERVICE_ACTIVEX: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xea937a50_c9a6_4b7d_894a_49d99b784834); +pub const GUID_TS_SERVICE_DATAOBJECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6086fbb5_e225_46ce_a770_c1bbd3e05d7b); +pub const GXFPF_NEAREST: u32 = 2u32; +pub const GXFPF_ROUND_NEAREST: u32 = 1u32; +pub const ILMCM_CHECKLAYOUTANDTIPENABLED: u32 = 1u32; +pub const ILMCM_LANGUAGEBAROFF: u32 = 2u32; +pub const IS_ADDRESS_CITY: InputScope = 17i32; +pub const IS_ADDRESS_COUNTRYNAME: InputScope = 18i32; +pub const IS_ADDRESS_COUNTRYSHORTNAME: InputScope = 19i32; +pub const IS_ADDRESS_FULLPOSTALADDRESS: InputScope = 13i32; +pub const IS_ADDRESS_POSTALCODE: InputScope = 14i32; +pub const IS_ADDRESS_STATEORPROVINCE: InputScope = 16i32; +pub const IS_ADDRESS_STREET: InputScope = 15i32; +pub const IS_ALPHANUMERIC_FULLWIDTH: InputScope = 41i32; +pub const IS_ALPHANUMERIC_HALFWIDTH: InputScope = 40i32; +pub const IS_ALPHANUMERIC_PIN: InputScope = 65i32; +pub const IS_ALPHANUMERIC_PIN_SET: InputScope = 66i32; +pub const IS_BOPOMOFO: InputScope = 43i32; +pub const IS_CHAT: InputScope = 58i32; +pub const IS_CHAT_WITHOUT_EMOJI: InputScope = 68i32; +pub const IS_CHINESE_FULLWIDTH: InputScope = 54i32; +pub const IS_CHINESE_HALFWIDTH: InputScope = 53i32; +pub const IS_CURRENCY_AMOUNT: InputScope = 21i32; +pub const IS_CURRENCY_AMOUNTANDSYMBOL: InputScope = 20i32; +pub const IS_CURRENCY_CHINESE: InputScope = 42i32; +pub const IS_DATE_DAY: InputScope = 24i32; +pub const IS_DATE_DAYNAME: InputScope = 27i32; +pub const IS_DATE_FULLDATE: InputScope = 22i32; +pub const IS_DATE_MONTH: InputScope = 23i32; +pub const IS_DATE_MONTHNAME: InputScope = 26i32; +pub const IS_DATE_YEAR: InputScope = 25i32; +pub const IS_DEFAULT: InputScope = 0i32; +pub const IS_DIGITS: InputScope = 28i32; +pub const IS_EMAILNAME_OR_ADDRESS: InputScope = 60i32; +pub const IS_EMAIL_SMTPEMAILADDRESS: InputScope = 5i32; +pub const IS_EMAIL_USERNAME: InputScope = 4i32; +pub const IS_ENUMSTRING: InputScope = -5i32; +pub const IS_FILE_FILENAME: InputScope = 3i32; +pub const IS_FILE_FULLFILEPATH: InputScope = 2i32; +pub const IS_FORMULA: InputScope = 51i32; +pub const IS_FORMULA_NUMBER: InputScope = 67i32; +pub const IS_HANGUL_FULLWIDTH: InputScope = 49i32; +pub const IS_HANGUL_HALFWIDTH: InputScope = 48i32; +pub const IS_HANJA: InputScope = 47i32; +pub const IS_HIRAGANA: InputScope = 44i32; +pub const IS_KATAKANA_FULLWIDTH: InputScope = 46i32; +pub const IS_KATAKANA_HALFWIDTH: InputScope = 45i32; +pub const IS_LOGINNAME: InputScope = 6i32; +pub const IS_MAPS: InputScope = 62i32; +pub const IS_NAME_OR_PHONENUMBER: InputScope = 59i32; +pub const IS_NATIVE_SCRIPT: InputScope = 55i32; +pub const IS_NUMBER: InputScope = 29i32; +pub const IS_NUMBER_FULLWIDTH: InputScope = 39i32; +pub const IS_NUMERIC_PASSWORD: InputScope = 63i32; +pub const IS_NUMERIC_PIN: InputScope = 64i32; +pub const IS_ONECHAR: InputScope = 30i32; +pub const IS_PASSWORD: InputScope = 31i32; +pub const IS_PERSONALNAME_FULLNAME: InputScope = 7i32; +pub const IS_PERSONALNAME_GIVENNAME: InputScope = 9i32; +pub const IS_PERSONALNAME_MIDDLENAME: InputScope = 10i32; +pub const IS_PERSONALNAME_PREFIX: InputScope = 8i32; +pub const IS_PERSONALNAME_SUFFIX: InputScope = 12i32; +pub const IS_PERSONALNAME_SURNAME: InputScope = 11i32; +pub const IS_PHRASELIST: InputScope = -1i32; +pub const IS_PRIVATE: InputScope = 61i32; +pub const IS_REGULAREXPRESSION: InputScope = -2i32; +pub const IS_SEARCH: InputScope = 50i32; +pub const IS_SEARCH_INCREMENTAL: InputScope = 52i32; +pub const IS_SRGS: InputScope = -3i32; +pub const IS_TELEPHONE_AREACODE: InputScope = 34i32; +pub const IS_TELEPHONE_COUNTRYCODE: InputScope = 33i32; +pub const IS_TELEPHONE_FULLTELEPHONENUMBER: InputScope = 32i32; +pub const IS_TELEPHONE_LOCALNUMBER: InputScope = 35i32; +pub const IS_TEXT: InputScope = 57i32; +pub const IS_TIME_FULLTIME: InputScope = 36i32; +pub const IS_TIME_HOUR: InputScope = 37i32; +pub const IS_TIME_MINORSEC: InputScope = 38i32; +pub const IS_URL: InputScope = 1i32; +pub const IS_XML: InputScope = -4i32; +pub const IS_YOMI: InputScope = 56i32; +pub const LIBID_MSAATEXTLib: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x150e2d7a_dac1_4582_947d_2a8fd78b82cd); +pub const MSAAControl: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x08cd963f_7a3e_4f5c_9bd8_d692bb043c5b); +pub const STYLE_ACTIVE_SELECTION: TfIntegratableCandidateListSelectionStyle = 0i32; +pub const STYLE_IMPLIED_SELECTION: TfIntegratableCandidateListSelectionStyle = 1i32; +pub const TF_AE_END: TfActiveSelEnd = 2i32; +pub const TF_AE_NONE: TfActiveSelEnd = 0i32; +pub const TF_AE_START: TfActiveSelEnd = 1i32; +pub const TF_ANCHOR_END: TfAnchor = 1i32; +pub const TF_ANCHOR_START: TfAnchor = 0i32; +pub const TF_ATTR_CONVERTED: TF_DA_ATTR_INFO = 2i32; +pub const TF_ATTR_FIXEDCONVERTED: TF_DA_ATTR_INFO = 5i32; +pub const TF_ATTR_INPUT: TF_DA_ATTR_INFO = 0i32; +pub const TF_ATTR_INPUT_ERROR: TF_DA_ATTR_INFO = 4i32; +pub const TF_ATTR_OTHER: TF_DA_ATTR_INFO = -1i32; +pub const TF_ATTR_TARGET_CONVERTED: TF_DA_ATTR_INFO = 1i32; +pub const TF_ATTR_TARGET_NOTCONVERTED: TF_DA_ATTR_INFO = 3i32; +pub const TF_CHAR_EMBEDDED: u32 = 65532u32; +pub const TF_CLUIE_COUNT: u32 = 2u32; +pub const TF_CLUIE_CURRENTPAGE: u32 = 32u32; +pub const TF_CLUIE_DOCUMENTMGR: u32 = 1u32; +pub const TF_CLUIE_PAGEINDEX: u32 = 16u32; +pub const TF_CLUIE_SELECTION: u32 = 4u32; +pub const TF_CLUIE_STRING: u32 = 8u32; +pub const TF_COMMANDING_ENABLED: u32 = 4u32; +pub const TF_COMMANDING_ON: u32 = 8u32; +pub const TF_CONVERSIONMODE_ALPHANUMERIC: u32 = 0u32; +pub const TF_CONVERSIONMODE_CHARCODE: u32 = 32u32; +pub const TF_CONVERSIONMODE_EUDC: u32 = 512u32; +pub const TF_CONVERSIONMODE_FIXED: u32 = 2048u32; +pub const TF_CONVERSIONMODE_FULLSHAPE: u32 = 8u32; +pub const TF_CONVERSIONMODE_KATAKANA: u32 = 2u32; +pub const TF_CONVERSIONMODE_NATIVE: u32 = 1u32; +pub const TF_CONVERSIONMODE_NOCONVERSION: u32 = 256u32; +pub const TF_CONVERSIONMODE_ROMAN: u32 = 16u32; +pub const TF_CONVERSIONMODE_SOFTKEYBOARD: u32 = 128u32; +pub const TF_CONVERSIONMODE_SYMBOL: u32 = 1024u32; +pub const TF_CT_COLORREF: TF_DA_COLORTYPE = 2i32; +pub const TF_CT_NONE: TF_DA_COLORTYPE = 0i32; +pub const TF_CT_SYSCOLOR: TF_DA_COLORTYPE = 1i32; +pub const TF_DEFAULT_SELECTION: u32 = 4294967295u32; +pub const TF_DICTATION_ENABLED: u32 = 2u32; +pub const TF_DICTATION_ON: u32 = 1u32; +pub const TF_DISABLE_BALLOON: u32 = 2u32; +pub const TF_DISABLE_COMMANDING: u32 = 4u32; +pub const TF_DISABLE_DICTATION: u32 = 2u32; +pub const TF_DISABLE_SPEECH: u32 = 1u32; +pub const TF_DTLBI_NONE: LANG_BAR_ITEM_ICON_MODE_FLAGS = 0u32; +pub const TF_DTLBI_USEPROFILEICON: LANG_BAR_ITEM_ICON_MODE_FLAGS = 1u32; +pub const TF_ENABLE_PROCESS_ATOM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_CTF_ENABLE_PROCESS_ATOM_"); +pub const TF_ES_ASYNC: TF_CONTEXT_EDIT_CONTEXT_FLAGS = 8u32; +pub const TF_ES_ASYNCDONTCARE: TF_CONTEXT_EDIT_CONTEXT_FLAGS = 0u32; +pub const TF_ES_READ: TF_CONTEXT_EDIT_CONTEXT_FLAGS = 2u32; +pub const TF_ES_READWRITE: TF_CONTEXT_EDIT_CONTEXT_FLAGS = 6u32; +pub const TF_ES_SYNC: TF_CONTEXT_EDIT_CONTEXT_FLAGS = 1u32; +pub const TF_E_ALREADY_EXISTS: ::windows_sys::core::HRESULT = -2147220218i32; +pub const TF_E_COMPOSITION_REJECTED: ::windows_sys::core::HRESULT = -2147220216i32; +pub const TF_E_DISCONNECTED: ::windows_sys::core::HRESULT = -2147220220i32; +pub const TF_E_EMPTYCONTEXT: ::windows_sys::core::HRESULT = -2147220215i32; +pub const TF_E_FORMAT: ::windows_sys::core::HRESULT = -2147220982i32; +pub const TF_E_INVALIDPOINT: ::windows_sys::core::HRESULT = -2147220985i32; +pub const TF_E_INVALIDPOS: ::windows_sys::core::HRESULT = -2147220992i32; +pub const TF_E_INVALIDVIEW: ::windows_sys::core::HRESULT = -2147220219i32; +pub const TF_E_LOCKED: ::windows_sys::core::HRESULT = -2147220224i32; +pub const TF_E_NOCONVERSION: ::windows_sys::core::HRESULT = -2147219968i32; +pub const TF_E_NOINTERFACE: ::windows_sys::core::HRESULT = -2147220988i32; +pub const TF_E_NOLAYOUT: ::windows_sys::core::HRESULT = -2147220986i32; +pub const TF_E_NOLOCK: ::windows_sys::core::HRESULT = -2147220991i32; +pub const TF_E_NOOBJECT: ::windows_sys::core::HRESULT = -2147220990i32; +pub const TF_E_NOPROVIDER: ::windows_sys::core::HRESULT = -2147220221i32; +pub const TF_E_NOSELECTION: ::windows_sys::core::HRESULT = -2147220987i32; +pub const TF_E_NOSERVICE: ::windows_sys::core::HRESULT = -2147220989i32; +pub const TF_E_NOTOWNEDRANGE: ::windows_sys::core::HRESULT = -2147220222i32; +pub const TF_E_RANGE_NOT_COVERED: ::windows_sys::core::HRESULT = -2147220217i32; +pub const TF_E_READONLY: ::windows_sys::core::HRESULT = -2147220983i32; +pub const TF_E_STACKFULL: ::windows_sys::core::HRESULT = -2147220223i32; +pub const TF_E_SYNCHRONOUS: ::windows_sys::core::HRESULT = -2147220984i32; +pub const TF_FLOATINGLANGBAR_WNDTITLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TF_FloatingLangBar_WndTitle"); +pub const TF_FLOATINGLANGBAR_WNDTITLEA: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("TF_FloatingLangBar_WndTitle"); +pub const TF_FLOATINGLANGBAR_WNDTITLEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TF_FloatingLangBar_WndTitle"); +pub const TF_GRAVITY_BACKWARD: TfGravity = 0i32; +pub const TF_GRAVITY_FORWARD: TfGravity = 1i32; +pub const TF_GTP_INCL_TEXT: GET_TEXT_AND_PROPERTY_UPDATES_FLAGS = 1u32; +pub const TF_GTP_NONE: GET_TEXT_AND_PROPERTY_UPDATES_FLAGS = 0u32; +pub const TF_HF_OBJECT: u32 = 1u32; +pub const TF_IAS_NOQUERY: INSERT_TEXT_AT_SELECTION_FLAGS = 1u32; +pub const TF_IAS_NO_DEFAULT_COMPOSITION: INSERT_TEXT_AT_SELECTION_FLAGS = 2147483648u32; +pub const TF_IAS_QUERYONLY: INSERT_TEXT_AT_SELECTION_FLAGS = 2u32; +pub const TF_IE_CORRECTION: u32 = 1u32; +pub const TF_INVALID_COOKIE: u32 = 4294967295u32; +pub const TF_INVALID_EDIT_COOKIE: u32 = 0u32; +pub const TF_IPPMF_DISABLEPROFILE: u32 = 2u32; +pub const TF_IPPMF_DONTCARECURRENTINPUTLANGUAGE: u32 = 4u32; +pub const TF_IPPMF_ENABLEPROFILE: u32 = 1u32; +pub const TF_IPPMF_FORPROCESS: u32 = 268435456u32; +pub const TF_IPPMF_FORSESSION: u32 = 536870912u32; +pub const TF_IPPMF_FORSYSTEMALL: u32 = 1073741824u32; +pub const TF_IPP_CAPS_COMLESSSUPPORT: u32 = 8u32; +pub const TF_IPP_CAPS_DISABLEONTRANSITORY: u32 = 1u32; +pub const TF_IPP_CAPS_IMMERSIVESUPPORT: u32 = 65536u32; +pub const TF_IPP_CAPS_SECUREMODESUPPORT: u32 = 2u32; +pub const TF_IPP_CAPS_SYSTRAYSUPPORT: u32 = 131072u32; +pub const TF_IPP_CAPS_UIELEMENTENABLED: u32 = 4u32; +pub const TF_IPP_CAPS_WOW16SUPPORT: u32 = 16u32; +pub const TF_IPP_FLAG_ACTIVE: u32 = 1u32; +pub const TF_IPP_FLAG_ENABLED: u32 = 2u32; +pub const TF_IPP_FLAG_SUBSTITUTEDBYINPUTPROCESSOR: u32 = 4u32; +pub const TF_IPSINK_FLAG_ACTIVE: u32 = 1u32; +pub const TF_LBI_BALLOON: u32 = 16u32; +pub const TF_LBI_BITMAP: u32 = 8u32; +pub const TF_LBI_BMPF_VERTICAL: u32 = 1u32; +pub const TF_LBI_CLK_LEFT: TfLBIClick = 2i32; +pub const TF_LBI_CLK_RIGHT: TfLBIClick = 1i32; +pub const TF_LBI_CUSTOMUI: u32 = 32u32; +pub const TF_LBI_DESC_MAXLEN: u32 = 32u32; +pub const TF_LBI_ICON: u32 = 1u32; +pub const TF_LBI_STATUS: u32 = 65536u32; +pub const TF_LBI_STATUS_BTN_TOGGLED: u32 = 65536u32; +pub const TF_LBI_STATUS_DISABLED: u32 = 2u32; +pub const TF_LBI_STATUS_HIDDEN: u32 = 1u32; +pub const TF_LBI_STYLE_BTN_BUTTON: u32 = 65536u32; +pub const TF_LBI_STYLE_BTN_MENU: u32 = 131072u32; +pub const TF_LBI_STYLE_BTN_TOGGLE: u32 = 262144u32; +pub const TF_LBI_STYLE_HIDDENBYDEFAULT: u32 = 16u32; +pub const TF_LBI_STYLE_HIDDENSTATUSCONTROL: u32 = 1u32; +pub const TF_LBI_STYLE_HIDEONNOOTHERITEMS: u32 = 4u32; +pub const TF_LBI_STYLE_SHOWNINTRAY: u32 = 2u32; +pub const TF_LBI_STYLE_SHOWNINTRAYONLY: u32 = 8u32; +pub const TF_LBI_STYLE_TEXTCOLORICON: u32 = 32u32; +pub const TF_LBI_TEXT: u32 = 2u32; +pub const TF_LBI_TOOLTIP: u32 = 4u32; +pub const TF_LBMENUF_CHECKED: u32 = 1u32; +pub const TF_LBMENUF_GRAYED: u32 = 16u32; +pub const TF_LBMENUF_RADIOCHECKED: u32 = 8u32; +pub const TF_LBMENUF_SEPARATOR: u32 = 4u32; +pub const TF_LBMENUF_SUBMENU: u32 = 2u32; +pub const TF_LB_BALLOON_MISS: TfLBBalloonStyle = 2i32; +pub const TF_LB_BALLOON_RECO: TfLBBalloonStyle = 0i32; +pub const TF_LB_BALLOON_SHOW: TfLBBalloonStyle = 1i32; +pub const TF_LC_CHANGE: TfLayoutCode = 1i32; +pub const TF_LC_CREATE: TfLayoutCode = 0i32; +pub const TF_LC_DESTROY: TfLayoutCode = 2i32; +pub const TF_LS_DASH: TF_DA_LINESTYLE = 3i32; +pub const TF_LS_DOT: TF_DA_LINESTYLE = 2i32; +pub const TF_LS_NONE: TF_DA_LINESTYLE = 0i32; +pub const TF_LS_SOLID: TF_DA_LINESTYLE = 1i32; +pub const TF_LS_SQUIGGLE: TF_DA_LINESTYLE = 4i32; +pub const TF_MENUREADY: u32 = 1u32; +pub const TF_MOD_ALT: u32 = 1u32; +pub const TF_MOD_CONTROL: u32 = 2u32; +pub const TF_MOD_IGNORE_ALL_MODIFIER: u32 = 1024u32; +pub const TF_MOD_LALT: u32 = 64u32; +pub const TF_MOD_LCONTROL: u32 = 128u32; +pub const TF_MOD_LSHIFT: u32 = 256u32; +pub const TF_MOD_ON_KEYUP: u32 = 512u32; +pub const TF_MOD_RALT: u32 = 8u32; +pub const TF_MOD_RCONTROL: u32 = 16u32; +pub const TF_MOD_RSHIFT: u32 = 32u32; +pub const TF_MOD_SHIFT: u32 = 4u32; +pub const TF_POPF_ALL: u32 = 1u32; +pub const TF_PROCESS_ATOM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("_CTF_PROCESS_ATOM_"); +pub const TF_PROFILETYPE_INPUTPROCESSOR: u32 = 1u32; +pub const TF_PROFILETYPE_KEYBOARDLAYOUT: u32 = 2u32; +pub const TF_PROFILE_ARRAY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd38eff65_aa46_4fd5_91a7_67845fb02f5b); +pub const TF_PROFILE_CANTONESE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0aec109c_7e96_11d4_b2ef_0080c882687e); +pub const TF_PROFILE_CHANGJIE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4bdf9f03_c7d3_11d4_b2ab_0080c882687e); +pub const TF_PROFILE_DAYI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x037b2c25_480c_4d7f_b027_d6ca6b69788a); +pub const TF_PROFILE_NEWCHANGJIE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf3ba907a_6c7e_11d4_97fa_0080c882687e); +pub const TF_PROFILE_NEWPHONETIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb2f9c502_1742_11d4_9790_0080c882687e); +pub const TF_PROFILE_NEWQUICK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0b883ba0_c1c7_11d4_87f9_0080c882687e); +pub const TF_PROFILE_PHONETIC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x761309de_317a_11d4_9b5d_0080c882687e); +pub const TF_PROFILE_PINYIN: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf3ba9077_6c7e_11d4_97fa_0080c882687e); +pub const TF_PROFILE_QUICK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6024b45f_5c54_11d4_b921_0080c882687e); +pub const TF_PROFILE_SIMPLEFAST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfa550b04_5ad7_411f_a5ac_ca038ec515d7); +pub const TF_PROFILE_TIGRINYA: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3cab88b7_cc3e_46a6_9765_b772ad7761ff); +pub const TF_PROFILE_WUBI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x82590c13_f4dd_44f4_ba1d_8667246fdf8e); +pub const TF_PROFILE_YI: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x409c8376_007b_4357_ae8e_26316ee3fb0d); +pub const TF_PROPUI_STATUS_SAVETOFILE: u32 = 1u32; +pub const TF_RCM_COMLESS: u32 = 1u32; +pub const TF_RCM_HINT_COLLISION: u32 = 8u32; +pub const TF_RCM_HINT_READING_LENGTH: u32 = 4u32; +pub const TF_RCM_VKEY: u32 = 2u32; +pub const TF_RIP_FLAG_FREEUNUSEDLIBRARIES: u32 = 1u32; +pub const TF_RIUIE_CONTEXT: u32 = 1u32; +pub const TF_RIUIE_ERRORINDEX: u32 = 8u32; +pub const TF_RIUIE_MAXREADINGSTRINGLENGTH: u32 = 4u32; +pub const TF_RIUIE_STRING: u32 = 2u32; +pub const TF_RIUIE_VERTICALORDER: u32 = 16u32; +pub const TF_RP_HIDDENINSETTINGUI: u32 = 2u32; +pub const TF_RP_LOCALPROCESS: u32 = 4u32; +pub const TF_RP_LOCALTHREAD: u32 = 8u32; +pub const TF_RP_SUBITEMINSETTINGUI: u32 = 16u32; +pub const TF_SD_BACKWARD: TfShiftDir = 0i32; +pub const TF_SD_FORWARD: TfShiftDir = 1i32; +pub const TF_SD_LOADING: u32 = 2u32; +pub const TF_SD_READONLY: u32 = 1u32; +pub const TF_SENTENCEMODE_AUTOMATIC: u32 = 4u32; +pub const TF_SENTENCEMODE_CONVERSATION: u32 = 16u32; +pub const TF_SENTENCEMODE_NONE: u32 = 0u32; +pub const TF_SENTENCEMODE_PHRASEPREDICT: u32 = 8u32; +pub const TF_SENTENCEMODE_PLAURALCLAUSE: u32 = 1u32; +pub const TF_SENTENCEMODE_SINGLECONVERT: u32 = 2u32; +pub const TF_SFT_DESKBAND: u32 = 2048u32; +pub const TF_SFT_DOCK: u32 = 2u32; +pub const TF_SFT_EXTRAICONSONMINIMIZED: u32 = 512u32; +pub const TF_SFT_HIDDEN: u32 = 8u32; +pub const TF_SFT_HIGHTRANSPARENCY: u32 = 64u32; +pub const TF_SFT_LABELS: u32 = 128u32; +pub const TF_SFT_LOWTRANSPARENCY: u32 = 32u32; +pub const TF_SFT_MINIMIZED: u32 = 4u32; +pub const TF_SFT_NOEXTRAICONSONMINIMIZED: u32 = 1024u32; +pub const TF_SFT_NOLABELS: u32 = 256u32; +pub const TF_SFT_NOTRANSPARENCY: u32 = 16u32; +pub const TF_SFT_SHOWNORMAL: u32 = 1u32; +pub const TF_SHOW_BALLOON: u32 = 1u32; +pub const TF_SPEECHUI_SHOWN: u32 = 16u32; +pub const TF_SS_DISJOINTSEL: u32 = 1u32; +pub const TF_SS_REGIONS: u32 = 2u32; +pub const TF_SS_TKBAUTOCORRECTENABLE: u32 = 16u32; +pub const TF_SS_TKBPREDICTIONENABLE: u32 = 32u32; +pub const TF_SS_TRANSITORY: u32 = 4u32; +pub const TF_ST_CORRECTION: u32 = 1u32; +pub const TF_S_ASYNC: ::windows_sys::core::HRESULT = 262912i32; +pub const TF_TF_IGNOREEND: u32 = 2u32; +pub const TF_TF_MOVESTART: u32 = 1u32; +pub const TF_TMAE_COMLESS: u32 = 8u32; +pub const TF_TMAE_CONSOLE: u32 = 64u32; +pub const TF_TMAE_NOACTIVATEKEYBOARDLAYOUT: u32 = 32u32; +pub const TF_TMAE_NOACTIVATETIP: u32 = 1u32; +pub const TF_TMAE_SECUREMODE: u32 = 2u32; +pub const TF_TMAE_UIELEMENTENABLEDONLY: u32 = 4u32; +pub const TF_TMAE_WOW16: u32 = 16u32; +pub const TF_TMF_ACTIVATED: u32 = 2147483648u32; +pub const TF_TMF_COMLESS: u32 = 8u32; +pub const TF_TMF_CONSOLE: u32 = 64u32; +pub const TF_TMF_IMMERSIVEMODE: u32 = 1073741824u32; +pub const TF_TMF_NOACTIVATETIP: u32 = 1u32; +pub const TF_TMF_SECUREMODE: u32 = 2u32; +pub const TF_TMF_UIELEMENTENABLEDONLY: u32 = 4u32; +pub const TF_TMF_WOW16: u32 = 16u32; +pub const TF_TRANSITORYEXTENSION_ATSELECTION: u32 = 2u32; +pub const TF_TRANSITORYEXTENSION_FLOATING: u32 = 1u32; +pub const TF_TRANSITORYEXTENSION_NONE: u32 = 0u32; +pub const TF_TU_CORRECTION: u32 = 1u32; +pub const TF_URP_ALLPROFILES: u32 = 2u32; +pub const TF_URP_LOCALPROCESS: u32 = 4u32; +pub const TF_URP_LOCALTHREAD: u32 = 8u32; +pub const TF_US_HIDETIPUI: u32 = 1u32; +pub const TKBLT_CLASSIC: TKBLayoutType = 1i32; +pub const TKBLT_OPTIMIZED: TKBLayoutType = 2i32; +pub const TKBLT_UNDEFINED: TKBLayoutType = 0i32; +pub const TKBL_CLASSIC_TRADITIONAL_CHINESE_CHANGJIE: u32 = 61506u32; +pub const TKBL_CLASSIC_TRADITIONAL_CHINESE_DAYI: u32 = 61507u32; +pub const TKBL_CLASSIC_TRADITIONAL_CHINESE_PHONETIC: u32 = 1028u32; +pub const TKBL_OPT_JAPANESE_ABC: u32 = 1041u32; +pub const TKBL_OPT_KOREAN_HANGUL_2_BULSIK: u32 = 1042u32; +pub const TKBL_OPT_SIMPLIFIED_CHINESE_PINYIN: u32 = 2052u32; +pub const TKBL_OPT_TRADITIONAL_CHINESE_PHONETIC: u32 = 1028u32; +pub const TKBL_UNDEFINED: u32 = 0u32; +pub const TKB_ALTERNATES_AUTOCORRECTION_APPLIED: u32 = 4u32; +pub const TKB_ALTERNATES_FOR_AUTOCORRECTION: u32 = 2u32; +pub const TKB_ALTERNATES_FOR_PREDICTION: u32 = 3u32; +pub const TKB_ALTERNATES_STANDARD: u32 = 1u32; +pub const TSATTRID_App: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa80f77df_4237_40e5_849c_b5fa51c13ac7); +pub const TSATTRID_App_IncorrectGrammar: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbd54e398_ad03_4b74_b6b3_5edb19996388); +pub const TSATTRID_App_IncorrectSpelling: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf42de43c_ef12_430d_944c_9a08970a25d2); +pub const TSATTRID_Font: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x573ea825_749b_4f8a_9cfd_21c3605ca828); +pub const TSATTRID_Font_FaceName: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb536aeb6_053b_4eb8_b65a_50da1e81e72e); +pub const TSATTRID_Font_SizePts: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc8493302_a5e9_456d_af04_8005e4130f03); +pub const TSATTRID_Font_Style: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x68b2a77f_6b0e_4f28_8177_571c2f3a42b1); +pub const TSATTRID_Font_Style_Animation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdcf73d22_e029_47b7_bb36_f263a3d004cc); +pub const TSATTRID_Font_Style_Animation_BlinkingBackground: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x86e5b104_0104_4b10_b585_00f2527522b5); +pub const TSATTRID_Font_Style_Animation_LasVegasLights: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf40423d5_0f87_4f8f_bada_e6d60c25e152); +pub const TSATTRID_Font_Style_Animation_MarchingBlackAnts: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7644e067_f186_4902_bfc6_ec815aa20e9d); +pub const TSATTRID_Font_Style_Animation_MarchingRedAnts: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x78368dad_50fb_4c6f_840b_d486bb6cf781); +pub const TSATTRID_Font_Style_Animation_Shimmer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2ce31b58_5293_4c36_8809_bf8bb51a27b3); +pub const TSATTRID_Font_Style_Animation_SparkleText: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x533aad20_962c_4e9f_8c09_b42ea4749711); +pub const TSATTRID_Font_Style_Animation_WipeDown: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5872e874_367b_4803_b160_c90ff62569d0); +pub const TSATTRID_Font_Style_Animation_WipeRight: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb855cbe3_3d2c_4600_b1e9_e1c9ce02f842); +pub const TSATTRID_Font_Style_BackgroundColor: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb50eaa4e_3091_4468_81db_d79ea190c7c7); +pub const TSATTRID_Font_Style_Blink: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbfb2c036_7acf_4532_b720_b416dd7765a8); +pub const TSATTRID_Font_Style_Bold: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x48813a43_8a20_4940_8e58_97823f7b268a); +pub const TSATTRID_Font_Style_Capitalize: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7d85a3ba_b4fd_43b3_befc_6b985c843141); +pub const TSATTRID_Font_Style_Color: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x857a7a37_b8af_4e9a_81b4_acf700c8411b); +pub const TSATTRID_Font_Style_Emboss: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbd8ed742_349e_4e37_82fb_437979cb53a7); +pub const TSATTRID_Font_Style_Engrave: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9c3371de_8332_4897_be5d_89233223179a); +pub const TSATTRID_Font_Style_Height: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7e937477_12e6_458b_926a_1fa44ee8f391); +pub const TSATTRID_Font_Style_Hidden: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb1e28770_881c_475f_863f_887a647b1090); +pub const TSATTRID_Font_Style_Italic: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8740682a_a765_48e1_acfc_d22222b2f810); +pub const TSATTRID_Font_Style_Kerning: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xcc26e1b4_2f9a_47c8_8bff_bf1eb7cce0dd); +pub const TSATTRID_Font_Style_Lowercase: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x76d8ccb5_ca7b_4498_8ee9_d5c4f6f74c60); +pub const TSATTRID_Font_Style_Outlined: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x10e6db31_db0d_4ac6_a7f5_9c9cff6f2ab4); +pub const TSATTRID_Font_Style_Overline: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe3989f4a_992b_4301_8ce1_a5b7c6d1f3c8); +pub const TSATTRID_Font_Style_Overline_Double: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdc46063a_e115_46e3_bcd8_ca6772aa95b4); +pub const TSATTRID_Font_Style_Overline_Single: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8440d94c_51ce_47b2_8d4c_15751e5f721b); +pub const TSATTRID_Font_Style_Position: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x15cd26ab_f2fb_4062_b5a6_9a49e1a5cc0b); +pub const TSATTRID_Font_Style_Protected: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1c557cb2_14cf_4554_a574_ecb2f7e7efd4); +pub const TSATTRID_Font_Style_Shadow: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5f686d2f_c6cd_4c56_8a1a_994a4b9766be); +pub const TSATTRID_Font_Style_SmallCaps: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfacb6bc6_9100_4cc6_b969_11eea45a86b4); +pub const TSATTRID_Font_Style_Spacing: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x98c1200d_8f06_409a_8e49_6a554bf7c153); +pub const TSATTRID_Font_Style_Strikethrough: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0c562193_2d08_4668_9601_ced41309d7af); +pub const TSATTRID_Font_Style_Strikethrough_Double: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x62489b31_a3e7_4f94_ac43_ebaf8fcc7a9f); +pub const TSATTRID_Font_Style_Strikethrough_Single: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x75d736b6_3c8f_4b97_ab78_1877cb990d31); +pub const TSATTRID_Font_Style_Subscript: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5774fb84_389b_43bc_a74b_1568347cf0f4); +pub const TSATTRID_Font_Style_Superscript: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2ea4993c_563c_49aa_9372_0bef09a9255b); +pub const TSATTRID_Font_Style_Underline: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc3c9c9f3_7902_444b_9a7b_48e70f4b50f7); +pub const TSATTRID_Font_Style_Underline_Double: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x74d24aa6_1db3_4c69_a176_31120e7586d5); +pub const TSATTRID_Font_Style_Underline_Single: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1b6720e5_0f73_4951_a6b3_6f19e43c9461); +pub const TSATTRID_Font_Style_Uppercase: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33a300e8_e340_4937_b697_8f234045cd9a); +pub const TSATTRID_Font_Style_Weight: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x12f3189c_8bb0_461b_b1fa_eaf907047fe0); +pub const TSATTRID_List: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x436d673b_26f1_4aee_9e65_8f83a4ed4884); +pub const TSATTRID_List_LevelIndel: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7f7cc899_311f_487b_ad5d_e2a459e12d42); +pub const TSATTRID_List_Type: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae3e665e_4bce_49e3_a0fe_2db47d3a17ae); +pub const TSATTRID_List_Type_Arabic: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x1338c5d6_98a3_4fa3_9bd1_7a60eef8e9e0); +pub const TSATTRID_List_Type_Bullet: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbccd77c5_4c4d_4ce2_b102_559f3b2bfcea); +pub const TSATTRID_List_Type_LowerLetter: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x96372285_f3cf_491e_a925_3832347fd237); +pub const TSATTRID_List_Type_LowerRoman: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x90466262_3980_4b8e_9368_918bd1218a41); +pub const TSATTRID_List_Type_UpperLetter: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7987b7cd_ce52_428b_9b95_a357f6f10c45); +pub const TSATTRID_List_Type_UpperRoman: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0f6ab552_4a80_467f_b2f1_127e2aa3ba9e); +pub const TSATTRID_OTHERS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb3c32af9_57d0_46a9_bca8_dac238a13057); +pub const TSATTRID_Text: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7edb8e68_81f9_449d_a15a_87a8388faac0); +pub const TSATTRID_Text_Alignment: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x139941e6_1767_456d_938e_35ba568b5cd4); +pub const TSATTRID_Text_Alignment_Center: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa4a95c16_53bf_4d55_8b87_4bdd8d4275fc); +pub const TSATTRID_Text_Alignment_Justify: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xed350740_a0f7_42d3_8ea8_f81b6488faf0); +pub const TSATTRID_Text_Alignment_Left: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x16ae95d3_6361_43a2_8495_d00f397f1693); +pub const TSATTRID_Text_Alignment_Right: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb36f0f98_1b9e_4360_8616_03fb08a78456); +pub const TSATTRID_Text_EmbeddedObject: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7edb8e68_81f9_449d_a15a_87a8388faac0); +pub const TSATTRID_Text_Hyphenation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdadf4525_618e_49eb_b1a8_3b68bd7648e3); +pub const TSATTRID_Text_Language: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd8c04ef1_5753_4c25_8887_85443fe5f819); +pub const TSATTRID_Text_Link: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x47cd9051_3722_4cd8_b7c8_4e17ca1759f5); +pub const TSATTRID_Text_Orientation: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6bab707f_8785_4c39_8b52_96f878303ffb); +pub const TSATTRID_Text_Para: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x5edc5822_99dc_4dd6_aec3_b62baa5b2e7c); +pub const TSATTRID_Text_Para_FirstLineIndent: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x07c97a13_7472_4dd8_90a9_91e3d7e4f29c); +pub const TSATTRID_Text_Para_LeftIndent: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xfb2848e9_7471_41c9_b6b3_8a1450e01897); +pub const TSATTRID_Text_Para_LineSpacing: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x699b380d_7f8c_46d6_a73b_dfe3d1538df3); +pub const TSATTRID_Text_Para_LineSpacing_AtLeast: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xadfedf31_2d44_4434_a5ff_7f4c4990a905); +pub const TSATTRID_Text_Para_LineSpacing_Double: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x82fb1805_a6c4_4231_ac12_6260af2aba28); +pub const TSATTRID_Text_Para_LineSpacing_Exactly: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3d45ad40_23de_48d7_a6b3_765420c620cc); +pub const TSATTRID_Text_Para_LineSpacing_Multiple: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x910f1e3c_d6d0_4f65_8a3c_42b4b31868c5); +pub const TSATTRID_Text_Para_LineSpacing_OnePtFive: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0428a021_0397_4b57_9a17_0795994cd3c5); +pub const TSATTRID_Text_Para_LineSpacing_Single: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xed350740_a0f7_42d3_8ea8_f81b6488faf0); +pub const TSATTRID_Text_Para_RightIndent: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2c7f26f9_a5e2_48da_b98a_520cb16513bf); +pub const TSATTRID_Text_Para_SpaceAfter: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7b0a3f55_22dc_425f_a411_93da1d8f9baa); +pub const TSATTRID_Text_Para_SpaceBefore: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x8df98589_194a_4601_b251_9865a3e906dd); +pub const TSATTRID_Text_ReadOnly: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x85836617_de32_4afd_a50f_a2db110e6e4d); +pub const TSATTRID_Text_RightToLeft: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xca666e71_1b08_453d_bfdd_28e08c8aaf7a); +pub const TSATTRID_Text_VerticalWriting: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6bba8195_046f_4ea9_b311_97fd66c4274b); +pub const TS_AE_END: TsActiveSelEnd = 2i32; +pub const TS_AE_NONE: TsActiveSelEnd = 0i32; +pub const TS_AE_START: TsActiveSelEnd = 1i32; +pub const TS_AS_ATTR_CHANGE: u32 = 8u32; +pub const TS_AS_LAYOUT_CHANGE: u32 = 4u32; +pub const TS_AS_SEL_CHANGE: u32 = 2u32; +pub const TS_AS_STATUS_CHANGE: u32 = 16u32; +pub const TS_AS_TEXT_CHANGE: u32 = 1u32; +pub const TS_ATTR_FIND_BACKWARDS: u32 = 1u32; +pub const TS_ATTR_FIND_HIDDEN: u32 = 32u32; +pub const TS_ATTR_FIND_UPDATESTART: u32 = 4u32; +pub const TS_ATTR_FIND_WANT_END: u32 = 16u32; +pub const TS_ATTR_FIND_WANT_OFFSET: u32 = 2u32; +pub const TS_ATTR_FIND_WANT_VALUE: u32 = 8u32; +pub const TS_CHAR_EMBEDDED: u32 = 65532u32; +pub const TS_CHAR_REGION: u32 = 0u32; +pub const TS_CHAR_REPLACEMENT: u32 = 65533u32; +pub const TS_CH_FOLLOWING_DEL: ANCHOR_CHANGE_HISTORY_FLAGS = 2u32; +pub const TS_CH_PRECEDING_DEL: ANCHOR_CHANGE_HISTORY_FLAGS = 1u32; +pub const TS_DEFAULT_SELECTION: u32 = 4294967295u32; +pub const TS_E_FORMAT: ::windows_sys::core::HRESULT = -2147220982i32; +pub const TS_E_INVALIDPOINT: ::windows_sys::core::HRESULT = -2147220985i32; +pub const TS_E_INVALIDPOS: ::windows_sys::core::HRESULT = -2147220992i32; +pub const TS_E_NOINTERFACE: ::windows_sys::core::HRESULT = -2147220988i32; +pub const TS_E_NOLAYOUT: ::windows_sys::core::HRESULT = -2147220986i32; +pub const TS_E_NOLOCK: ::windows_sys::core::HRESULT = -2147220991i32; +pub const TS_E_NOOBJECT: ::windows_sys::core::HRESULT = -2147220990i32; +pub const TS_E_NOSELECTION: ::windows_sys::core::HRESULT = -2147220987i32; +pub const TS_E_NOSERVICE: ::windows_sys::core::HRESULT = -2147220989i32; +pub const TS_E_READONLY: ::windows_sys::core::HRESULT = -2147220983i32; +pub const TS_E_SYNCHRONOUS: ::windows_sys::core::HRESULT = -2147220984i32; +pub const TS_GEA_HIDDEN: u32 = 1u32; +pub const TS_GR_BACKWARD: TsGravity = 0i32; +pub const TS_GR_FORWARD: TsGravity = 1i32; +pub const TS_GTA_HIDDEN: u32 = 1u32; +pub const TS_IAS_NOQUERY: u32 = 1u32; +pub const TS_IAS_QUERYONLY: u32 = 2u32; +pub const TS_IE_COMPOSITION: u32 = 2u32; +pub const TS_IE_CORRECTION: u32 = 1u32; +pub const TS_LC_CHANGE: TsLayoutCode = 1i32; +pub const TS_LC_CREATE: TsLayoutCode = 0i32; +pub const TS_LC_DESTROY: TsLayoutCode = 2i32; +pub const TS_LF_READ: TEXT_STORE_LOCK_FLAGS = 2u32; +pub const TS_LF_READWRITE: TEXT_STORE_LOCK_FLAGS = 6u32; +pub const TS_LF_SYNC: u32 = 1u32; +pub const TS_RT_HIDDEN: TsRunType = 1i32; +pub const TS_RT_OPAQUE: TsRunType = 2i32; +pub const TS_RT_PLAIN: TsRunType = 0i32; +pub const TS_SD_BACKWARD: TsShiftDir = 0i32; +pub const TS_SD_EMBEDDEDHANDWRITINGVIEW_ENABLED: u32 = 128u32; +pub const TS_SD_EMBEDDEDHANDWRITINGVIEW_VISIBLE: u32 = 256u32; +pub const TS_SD_FORWARD: TsShiftDir = 1i32; +pub const TS_SD_INPUTPANEMANUALDISPLAYENABLE: u32 = 64u32; +pub const TS_SD_LOADING: u32 = 2u32; +pub const TS_SD_READONLY: u32 = 1u32; +pub const TS_SD_RESERVED: u32 = 4u32; +pub const TS_SD_TKBAUTOCORRECTENABLE: u32 = 8u32; +pub const TS_SD_TKBPREDICTIONENABLE: u32 = 16u32; +pub const TS_SD_UIINTEGRATIONENABLE: u32 = 32u32; +pub const TS_SHIFT_COUNT_HIDDEN: u32 = 1u32; +pub const TS_SHIFT_COUNT_ONLY: u32 = 8u32; +pub const TS_SHIFT_HALT_HIDDEN: u32 = 2u32; +pub const TS_SHIFT_HALT_VISIBLE: u32 = 4u32; +pub const TS_SS_DISJOINTSEL: u32 = 1u32; +pub const TS_SS_NOHIDDENTEXT: u32 = 8u32; +pub const TS_SS_REGIONS: u32 = 2u32; +pub const TS_SS_TKBAUTOCORRECTENABLE: u32 = 16u32; +pub const TS_SS_TKBPREDICTIONENABLE: u32 = 32u32; +pub const TS_SS_TRANSITORY: u32 = 4u32; +pub const TS_SS_UWPCONTROL: u32 = 64u32; +pub const TS_STRF_END: u32 = 2u32; +pub const TS_STRF_MID: u32 = 1u32; +pub const TS_STRF_START: u32 = 0u32; +pub const TS_ST_CORRECTION: TEXT_STORE_TEXT_CHANGE_FLAGS = 1u32; +pub const TS_ST_NONE: TEXT_STORE_TEXT_CHANGE_FLAGS = 0u32; +pub const TS_S_ASYNC: ::windows_sys::core::HRESULT = 262912i32; +pub const TS_TC_CORRECTION: TEXT_STORE_CHANGE_FLAGS = 1u32; +pub const TS_TC_NONE: TEXT_STORE_CHANGE_FLAGS = 0u32; +pub const TS_VCOOKIE_NUL: u32 = 4294967295u32; +pub type ANCHOR_CHANGE_HISTORY_FLAGS = u32; +pub type GET_TEXT_AND_PROPERTY_UPDATES_FLAGS = u32; +pub type INSERT_TEXT_AT_SELECTION_FLAGS = u32; +pub type InputScope = i32; +pub type LANG_BAR_ITEM_ICON_MODE_FLAGS = u32; +pub type TEXT_STORE_CHANGE_FLAGS = u32; +pub type TEXT_STORE_LOCK_FLAGS = u32; +pub type TEXT_STORE_TEXT_CHANGE_FLAGS = u32; +pub type TF_CONTEXT_EDIT_CONTEXT_FLAGS = u32; +pub type TF_DA_ATTR_INFO = i32; +pub type TF_DA_COLORTYPE = i32; +pub type TF_DA_LINESTYLE = i32; +pub type TKBLayoutType = i32; +pub type TfActiveSelEnd = i32; +pub type TfAnchor = i32; +pub type TfCandidateResult = i32; +pub type TfGravity = i32; +pub type TfIntegratableCandidateListSelectionStyle = i32; +pub type TfLBBalloonStyle = i32; +pub type TfLBIClick = i32; +pub type TfLayoutCode = i32; +pub type TfSapiObject = i32; +pub type TfShiftDir = i32; +pub type TsActiveSelEnd = i32; +pub type TsGravity = i32; +pub type TsLayoutCode = i32; +pub type TsRunType = i32; +pub type TsShiftDir = i32; +pub type HKL = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TF_DA_COLOR { + pub r#type: TF_DA_COLORTYPE, + pub Anonymous: TF_DA_COLOR_0, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TF_DA_COLOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TF_DA_COLOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub union TF_DA_COLOR_0 { + pub nIndex: i32, + pub cr: super::super::Foundation::COLORREF, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TF_DA_COLOR_0 {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TF_DA_COLOR_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TF_DISPLAYATTRIBUTE { + pub crText: TF_DA_COLOR, + pub crBk: TF_DA_COLOR, + pub lsStyle: TF_DA_LINESTYLE, + pub fBoldLine: super::super::Foundation::BOOL, + pub crLine: TF_DA_COLOR, + pub bAttr: TF_DA_ATTR_INFO, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TF_DISPLAYATTRIBUTE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TF_DISPLAYATTRIBUTE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TF_HALTCOND { + pub pHaltRange: ITfRange, + pub aHaltPos: TfAnchor, + pub dwFlags: u32, +} +impl ::core::marker::Copy for TF_HALTCOND {} +impl ::core::clone::Clone for TF_HALTCOND { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TF_INPUTPROCESSORPROFILE { + pub dwProfileType: u32, + pub langid: u16, + pub clsid: ::windows_sys::core::GUID, + pub guidProfile: ::windows_sys::core::GUID, + pub catid: ::windows_sys::core::GUID, + pub hklSubstitute: HKL, + pub dwCaps: u32, + pub hkl: HKL, + pub dwFlags: u32, +} +impl ::core::marker::Copy for TF_INPUTPROCESSORPROFILE {} +impl ::core::clone::Clone for TF_INPUTPROCESSORPROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TF_LANGBARITEMINFO { + pub clsidService: ::windows_sys::core::GUID, + pub guidItem: ::windows_sys::core::GUID, + pub dwStyle: u32, + pub ulSort: u32, + pub szDescription: [u16; 32], +} +impl ::core::marker::Copy for TF_LANGBARITEMINFO {} +impl ::core::clone::Clone for TF_LANGBARITEMINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TF_LANGUAGEPROFILE { + pub clsid: ::windows_sys::core::GUID, + pub langid: u16, + pub catid: ::windows_sys::core::GUID, + pub fActive: super::super::Foundation::BOOL, + pub guidProfile: ::windows_sys::core::GUID, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TF_LANGUAGEPROFILE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TF_LANGUAGEPROFILE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TF_LBBALLOONINFO { + pub style: TfLBBalloonStyle, + pub bstrText: ::windows_sys::core::BSTR, +} +impl ::core::marker::Copy for TF_LBBALLOONINFO {} +impl ::core::clone::Clone for TF_LBBALLOONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TF_LMLATTELEMENT { + pub dwFrameStart: u32, + pub dwFrameLen: u32, + pub dwFlags: u32, + pub Anonymous: TF_LMLATTELEMENT_0, + pub bstrText: ::windows_sys::core::BSTR, +} +impl ::core::marker::Copy for TF_LMLATTELEMENT {} +impl ::core::clone::Clone for TF_LMLATTELEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union TF_LMLATTELEMENT_0 { + pub iCost: i32, +} +impl ::core::marker::Copy for TF_LMLATTELEMENT_0 {} +impl ::core::clone::Clone for TF_LMLATTELEMENT_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TF_PERSISTENT_PROPERTY_HEADER_ACP { + pub guidType: ::windows_sys::core::GUID, + pub ichStart: i32, + pub cch: i32, + pub cb: u32, + pub dwPrivate: u32, + pub clsidTIP: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for TF_PERSISTENT_PROPERTY_HEADER_ACP {} +impl ::core::clone::Clone for TF_PERSISTENT_PROPERTY_HEADER_ACP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TF_PRESERVEDKEY { + pub uVKey: u32, + pub uModifiers: u32, +} +impl ::core::marker::Copy for TF_PRESERVEDKEY {} +impl ::core::clone::Clone for TF_PRESERVEDKEY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct TF_PROPERTYVAL { + pub guidId: ::windows_sys::core::GUID, + pub varValue: super::super::System::Variant::VARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for TF_PROPERTYVAL {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for TF_PROPERTYVAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TF_SELECTION { + pub range: ITfRange, + pub style: TF_SELECTIONSTYLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TF_SELECTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TF_SELECTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TF_SELECTIONSTYLE { + pub ase: TfActiveSelEnd, + pub fInterimChar: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TF_SELECTIONSTYLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TF_SELECTIONSTYLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +pub struct TS_ATTRVAL { + pub idAttr: ::windows_sys::core::GUID, + pub dwOverlapId: u32, + pub varValue: super::super::System::Variant::VARIANT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::marker::Copy for TS_ATTRVAL {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))] +impl ::core::clone::Clone for TS_ATTRVAL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TS_RUNINFO { + pub uCount: u32, + pub r#type: TsRunType, +} +impl ::core::marker::Copy for TS_RUNINFO {} +impl ::core::clone::Clone for TS_RUNINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TS_SELECTIONSTYLE { + pub ase: TsActiveSelEnd, + pub fInterimChar: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TS_SELECTIONSTYLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TS_SELECTIONSTYLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TS_SELECTION_ACP { + pub acpStart: i32, + pub acpEnd: i32, + pub style: TS_SELECTIONSTYLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TS_SELECTION_ACP {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TS_SELECTION_ACP { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TS_SELECTION_ANCHOR { + pub paStart: IAnchor, + pub paEnd: IAnchor, + pub style: TS_SELECTIONSTYLE, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TS_SELECTION_ANCHOR {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TS_SELECTION_ANCHOR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TS_STATUS { + pub dwDynamicFlags: u32, + pub dwStaticFlags: u32, +} +impl ::core::marker::Copy for TS_STATUS {} +impl ::core::clone::Clone for TS_STATUS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TS_TEXTCHANGE { + pub acpStart: i32, + pub acpOldEnd: i32, + pub acpNewEnd: i32, +} +impl ::core::marker::Copy for TS_TEXTCHANGE {} +impl ::core::clone::Clone for TS_TEXTCHANGE { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs new file mode 100644 index 000000000..475774fd8 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs @@ -0,0 +1,4824 @@ +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AdjustWindowRect(lprect : *mut super::super::Foundation:: RECT, dwstyle : WINDOW_STYLE, bmenu : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AdjustWindowRectEx(lprect : *mut super::super::Foundation:: RECT, dwstyle : WINDOW_STYLE, bmenu : super::super::Foundation:: BOOL, dwexstyle : WINDOW_EX_STYLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AllowSetForegroundWindow(dwprocessid : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AnimateWindow(hwnd : super::super::Foundation:: HWND, dwtime : u32, dwflags : ANIMATE_WINDOW_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AnyPopup() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppendMenuA(hmenu : HMENU, uflags : MENU_ITEM_FLAGS, uidnewitem : usize, lpnewitem : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn AppendMenuW(hmenu : HMENU, uflags : MENU_ITEM_FLAGS, uidnewitem : usize, lpnewitem : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ArrangeIconicWindows(hwnd : super::super::Foundation:: HWND) -> u32); +::windows_targets::link!("user32.dll" "system" fn BeginDeferWindowPos(nnumwindows : i32) -> HDWP); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn BringWindowToTop(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CalculatePopupWindowPosition(anchorpoint : *const super::super::Foundation:: POINT, windowsize : *const super::super::Foundation:: SIZE, flags : u32, excluderect : *const super::super::Foundation:: RECT, popupwindowposition : *mut super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CallMsgFilterA(lpmsg : *const MSG, ncode : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CallMsgFilterW(lpmsg : *const MSG, ncode : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CallNextHookEx(hhk : HHOOK, ncode : i32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CallWindowProcA(lpprevwndfunc : WNDPROC, hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CallWindowProcW(lpprevwndfunc : WNDPROC, hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CancelShutdown() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CascadeWindows(hwndparent : super::super::Foundation:: HWND, whow : CASCADE_WINDOWS_HOW, lprect : *const super::super::Foundation:: RECT, ckids : u32, lpkids : *const super::super::Foundation:: HWND) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChangeMenuA(hmenu : HMENU, cmd : u32, lpsznewitem : ::windows_sys::core::PCSTR, cmdinsert : u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChangeMenuW(hmenu : HMENU, cmd : u32, lpsznewitem : ::windows_sys::core::PCWSTR, cmdinsert : u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChangeWindowMessageFilter(message : u32, dwflag : CHANGE_WINDOW_MESSAGE_FILTER_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChangeWindowMessageFilterEx(hwnd : super::super::Foundation:: HWND, message : u32, action : WINDOW_MESSAGE_FILTER_ACTION, pchangefilterstruct : *mut CHANGEFILTERSTRUCT) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn CharLowerA(lpsz : ::windows_sys::core::PSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("user32.dll" "system" fn CharLowerBuffA(lpsz : ::windows_sys::core::PSTR, cchlength : u32) -> u32); +::windows_targets::link!("user32.dll" "system" fn CharLowerBuffW(lpsz : ::windows_sys::core::PWSTR, cchlength : u32) -> u32); +::windows_targets::link!("user32.dll" "system" fn CharLowerW(lpsz : ::windows_sys::core::PWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("user32.dll" "system" fn CharNextA(lpsz : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("user32.dll" "system" fn CharNextExA(codepage : u16, lpcurrentchar : ::windows_sys::core::PCSTR, dwflags : u32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("user32.dll" "system" fn CharNextW(lpsz : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("user32.dll" "system" fn CharPrevA(lpszstart : ::windows_sys::core::PCSTR, lpszcurrent : ::windows_sys::core::PCSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("user32.dll" "system" fn CharPrevExA(codepage : u16, lpstart : ::windows_sys::core::PCSTR, lpcurrentchar : ::windows_sys::core::PCSTR, dwflags : u32) -> ::windows_sys::core::PSTR); +::windows_targets::link!("user32.dll" "system" fn CharPrevW(lpszstart : ::windows_sys::core::PCWSTR, lpszcurrent : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::PWSTR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CharToOemA(psrc : ::windows_sys::core::PCSTR, pdst : ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CharToOemBuffA(lpszsrc : ::windows_sys::core::PCSTR, lpszdst : ::windows_sys::core::PSTR, cchdstlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CharToOemBuffW(lpszsrc : ::windows_sys::core::PCWSTR, lpszdst : ::windows_sys::core::PSTR, cchdstlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CharToOemW(psrc : ::windows_sys::core::PCWSTR, pdst : ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn CharUpperA(lpsz : ::windows_sys::core::PSTR) -> ::windows_sys::core::PSTR); +::windows_targets::link!("user32.dll" "system" fn CharUpperBuffA(lpsz : ::windows_sys::core::PSTR, cchlength : u32) -> u32); +::windows_targets::link!("user32.dll" "system" fn CharUpperBuffW(lpsz : ::windows_sys::core::PWSTR, cchlength : u32) -> u32); +::windows_targets::link!("user32.dll" "system" fn CharUpperW(lpsz : ::windows_sys::core::PWSTR) -> ::windows_sys::core::PWSTR); +::windows_targets::link!("user32.dll" "system" fn CheckMenuItem(hmenu : HMENU, uidcheckitem : u32, ucheck : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CheckMenuRadioItem(hmenu : HMENU, first : u32, last : u32, check : u32, flags : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChildWindowFromPoint(hwndparent : super::super::Foundation:: HWND, point : super::super::Foundation:: POINT) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ChildWindowFromPointEx(hwnd : super::super::Foundation:: HWND, pt : super::super::Foundation:: POINT, flags : CWP_FLAGS) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ClipCursor(lprect : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CloseWindow(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn CopyAcceleratorTableA(haccelsrc : HACCEL, lpacceldst : *mut ACCEL, caccelentries : i32) -> i32); +::windows_targets::link!("user32.dll" "system" fn CopyAcceleratorTableW(haccelsrc : HACCEL, lpacceldst : *mut ACCEL, caccelentries : i32) -> i32); +::windows_targets::link!("user32.dll" "system" fn CopyIcon(hicon : HICON) -> HICON); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CopyImage(h : super::super::Foundation:: HANDLE, r#type : GDI_IMAGE_TYPE, cx : i32, cy : i32, flags : IMAGE_FLAGS) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("user32.dll" "system" fn CreateAcceleratorTableA(paccel : *const ACCEL, caccel : i32) -> HACCEL); +::windows_targets::link!("user32.dll" "system" fn CreateAcceleratorTableW(paccel : *const ACCEL, caccel : i32) -> HACCEL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CreateCaret(hwnd : super::super::Foundation:: HWND, hbitmap : super::super::Graphics::Gdi:: HBITMAP, nwidth : i32, nheight : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateCursor(hinst : super::super::Foundation:: HINSTANCE, xhotspot : i32, yhotspot : i32, nwidth : i32, nheight : i32, pvandplane : *const ::core::ffi::c_void, pvxorplane : *const ::core::ffi::c_void) -> HCURSOR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateDialogIndirectParamA(hinstance : super::super::Foundation:: HINSTANCE, lptemplate : *const DLGTEMPLATE, hwndparent : super::super::Foundation:: HWND, lpdialogfunc : DLGPROC, dwinitparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateDialogIndirectParamW(hinstance : super::super::Foundation:: HINSTANCE, lptemplate : *const DLGTEMPLATE, hwndparent : super::super::Foundation:: HWND, lpdialogfunc : DLGPROC, dwinitparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateDialogParamA(hinstance : super::super::Foundation:: HINSTANCE, lptemplatename : ::windows_sys::core::PCSTR, hwndparent : super::super::Foundation:: HWND, lpdialogfunc : DLGPROC, dwinitparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateDialogParamW(hinstance : super::super::Foundation:: HINSTANCE, lptemplatename : ::windows_sys::core::PCWSTR, hwndparent : super::super::Foundation:: HWND, lpdialogfunc : DLGPROC, dwinitparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateIcon(hinstance : super::super::Foundation:: HINSTANCE, nwidth : i32, nheight : i32, cplanes : u8, cbitspixel : u8, lpbandbits : *const u8, lpbxorbits : *const u8) -> HICON); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateIconFromResource(presbits : *const u8, dwressize : u32, ficon : super::super::Foundation:: BOOL, dwver : u32) -> HICON); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateIconFromResourceEx(presbits : *const u8, dwressize : u32, ficon : super::super::Foundation:: BOOL, dwver : u32, cxdesired : i32, cydesired : i32, flags : IMAGE_FLAGS) -> HICON); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn CreateIconIndirect(piconinfo : *const ICONINFO) -> HICON); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateMDIWindowA(lpclassname : ::windows_sys::core::PCSTR, lpwindowname : ::windows_sys::core::PCSTR, dwstyle : WINDOW_STYLE, x : i32, y : i32, nwidth : i32, nheight : i32, hwndparent : super::super::Foundation:: HWND, hinstance : super::super::Foundation:: HINSTANCE, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateMDIWindowW(lpclassname : ::windows_sys::core::PCWSTR, lpwindowname : ::windows_sys::core::PCWSTR, dwstyle : WINDOW_STYLE, x : i32, y : i32, nwidth : i32, nheight : i32, hwndparent : super::super::Foundation:: HWND, hinstance : super::super::Foundation:: HINSTANCE, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: HWND); +::windows_targets::link!("user32.dll" "system" fn CreateMenu() -> HMENU); +::windows_targets::link!("user32.dll" "system" fn CreatePopupMenu() -> HMENU); +::windows_targets::link!("mrmsupport.dll" "system" fn CreateResourceIndexer(projectroot : ::windows_sys::core::PCWSTR, extensiondllpath : ::windows_sys::core::PCWSTR, ppresourceindexer : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateWindowExA(dwexstyle : WINDOW_EX_STYLE, lpclassname : ::windows_sys::core::PCSTR, lpwindowname : ::windows_sys::core::PCSTR, dwstyle : WINDOW_STYLE, x : i32, y : i32, nwidth : i32, nheight : i32, hwndparent : super::super::Foundation:: HWND, hmenu : HMENU, hinstance : super::super::Foundation:: HINSTANCE, lpparam : *const ::core::ffi::c_void) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn CreateWindowExW(dwexstyle : WINDOW_EX_STYLE, lpclassname : ::windows_sys::core::PCWSTR, lpwindowname : ::windows_sys::core::PCWSTR, dwstyle : WINDOW_STYLE, x : i32, y : i32, nwidth : i32, nheight : i32, hwndparent : super::super::Foundation:: HWND, hmenu : HMENU, hinstance : super::super::Foundation:: HINSTANCE, lpparam : *const ::core::ffi::c_void) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefDlgProcA(hdlg : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefDlgProcW(hdlg : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefFrameProcA(hwnd : super::super::Foundation:: HWND, hwndmdiclient : super::super::Foundation:: HWND, umsg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefFrameProcW(hwnd : super::super::Foundation:: HWND, hwndmdiclient : super::super::Foundation:: HWND, umsg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefMDIChildProcA(hwnd : super::super::Foundation:: HWND, umsg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefMDIChildProcW(hwnd : super::super::Foundation:: HWND, umsg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefWindowProcA(hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DefWindowProcW(hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeferWindowPos(hwinposinfo : HDWP, hwnd : super::super::Foundation:: HWND, hwndinsertafter : super::super::Foundation:: HWND, x : i32, y : i32, cx : i32, cy : i32, uflags : SET_WINDOW_POS_FLAGS) -> HDWP); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeleteMenu(hmenu : HMENU, uposition : u32, uflags : MENU_ITEM_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DeregisterShellHookWindow(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DestroyAcceleratorTable(haccel : HACCEL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DestroyCaret() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DestroyCursor(hcursor : HCURSOR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DestroyIcon(hicon : HICON) -> super::super::Foundation:: BOOL); +::windows_targets::link!("mrmsupport.dll" "system" fn DestroyIndexedResults(resourceuri : ::windows_sys::core::PCWSTR, qualifiercount : u32, qualifiers : *const IndexedResourceQualifier) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DestroyMenu(hmenu : HMENU) -> super::super::Foundation:: BOOL); +::windows_targets::link!("mrmsupport.dll" "system" fn DestroyResourceIndexer(resourceindexer : *const ::core::ffi::c_void) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DestroyWindow(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DialogBoxIndirectParamA(hinstance : super::super::Foundation:: HINSTANCE, hdialogtemplate : *const DLGTEMPLATE, hwndparent : super::super::Foundation:: HWND, lpdialogfunc : DLGPROC, dwinitparam : super::super::Foundation:: LPARAM) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DialogBoxIndirectParamW(hinstance : super::super::Foundation:: HINSTANCE, hdialogtemplate : *const DLGTEMPLATE, hwndparent : super::super::Foundation:: HWND, lpdialogfunc : DLGPROC, dwinitparam : super::super::Foundation:: LPARAM) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DialogBoxParamA(hinstance : super::super::Foundation:: HINSTANCE, lptemplatename : ::windows_sys::core::PCSTR, hwndparent : super::super::Foundation:: HWND, lpdialogfunc : DLGPROC, dwinitparam : super::super::Foundation:: LPARAM) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DialogBoxParamW(hinstance : super::super::Foundation:: HINSTANCE, lptemplatename : ::windows_sys::core::PCWSTR, hwndparent : super::super::Foundation:: HWND, lpdialogfunc : DLGPROC, dwinitparam : super::super::Foundation:: LPARAM) -> isize); +::windows_targets::link!("user32.dll" "system" fn DisableProcessWindowsGhosting() -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DispatchMessageA(lpmsg : *const MSG) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DispatchMessageW(lpmsg : *const MSG) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DragObject(hwndparent : super::super::Foundation:: HWND, hwndfrom : super::super::Foundation:: HWND, fmt : u32, data : usize, hcur : HCURSOR) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawIcon(hdc : super::super::Graphics::Gdi:: HDC, x : i32, y : i32, hicon : HICON) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn DrawIconEx(hdc : super::super::Graphics::Gdi:: HDC, xleft : i32, ytop : i32, hicon : HICON, cxwidth : i32, cywidth : i32, istepifanicur : u32, hbrflickerfreedraw : super::super::Graphics::Gdi:: HBRUSH, diflags : DI_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn DrawMenuBar(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnableMenuItem(hmenu : HMENU, uidenableitem : u32, uenable : MENU_ITEM_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EndDeferWindowPos(hwinposinfo : HDWP) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EndDialog(hdlg : super::super::Foundation:: HWND, nresult : isize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EndMenu() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumChildWindows(hwndparent : super::super::Foundation:: HWND, lpenumfunc : WNDENUMPROC, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPropsA(hwnd : super::super::Foundation:: HWND, lpenumfunc : PROPENUMPROCA) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPropsExA(hwnd : super::super::Foundation:: HWND, lpenumfunc : PROPENUMPROCEXA, lparam : super::super::Foundation:: LPARAM) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPropsExW(hwnd : super::super::Foundation:: HWND, lpenumfunc : PROPENUMPROCEXW, lparam : super::super::Foundation:: LPARAM) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumPropsW(hwnd : super::super::Foundation:: HWND, lpenumfunc : PROPENUMPROCW) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumThreadWindows(dwthreadid : u32, lpfn : WNDENUMPROC, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn EnumWindows(lpenumfunc : WNDENUMPROC, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindWindowA(lpclassname : ::windows_sys::core::PCSTR, lpwindowname : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindWindowExA(hwndparent : super::super::Foundation:: HWND, hwndchildafter : super::super::Foundation:: HWND, lpszclass : ::windows_sys::core::PCSTR, lpszwindow : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindWindowExW(hwndparent : super::super::Foundation:: HWND, hwndchildafter : super::super::Foundation:: HWND, lpszclass : ::windows_sys::core::PCWSTR, lpszwindow : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FindWindowW(lpclassname : ::windows_sys::core::PCWSTR, lpwindowname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlashWindow(hwnd : super::super::Foundation:: HWND, binvert : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn FlashWindowEx(pfwi : *const FLASHWINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAltTabInfoA(hwnd : super::super::Foundation:: HWND, iitem : i32, pati : *mut ALTTABINFO, pszitemtext : ::windows_sys::core::PSTR, cchitemtext : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAltTabInfoW(hwnd : super::super::Foundation:: HWND, iitem : i32, pati : *mut ALTTABINFO, pszitemtext : ::windows_sys::core::PWSTR, cchitemtext : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetAncestor(hwnd : super::super::Foundation:: HWND, gaflags : GET_ANCESTOR_FLAGS) -> super::super::Foundation:: HWND); +::windows_targets::link!("user32.dll" "system" fn GetCaretBlinkTime() -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCaretPos(lppoint : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetClassInfoA(hinstance : super::super::Foundation:: HINSTANCE, lpclassname : ::windows_sys::core::PCSTR, lpwndclass : *mut WNDCLASSA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetClassInfoExA(hinstance : super::super::Foundation:: HINSTANCE, lpszclass : ::windows_sys::core::PCSTR, lpwcx : *mut WNDCLASSEXA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetClassInfoExW(hinstance : super::super::Foundation:: HINSTANCE, lpszclass : ::windows_sys::core::PCWSTR, lpwcx : *mut WNDCLASSEXW) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetClassInfoW(hinstance : super::super::Foundation:: HINSTANCE, lpclassname : ::windows_sys::core::PCWSTR, lpwndclass : *mut WNDCLASSW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClassLongA(hwnd : super::super::Foundation:: HWND, nindex : GET_CLASS_LONG_INDEX) -> u32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClassLongPtrA(hwnd : super::super::Foundation:: HWND, nindex : GET_CLASS_LONG_INDEX) -> usize); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClassLongPtrW(hwnd : super::super::Foundation:: HWND, nindex : GET_CLASS_LONG_INDEX) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClassLongW(hwnd : super::super::Foundation:: HWND, nindex : GET_CLASS_LONG_INDEX) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClassNameA(hwnd : super::super::Foundation:: HWND, lpclassname : ::windows_sys::core::PSTR, nmaxcount : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClassNameW(hwnd : super::super::Foundation:: HWND, lpclassname : ::windows_sys::core::PWSTR, nmaxcount : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClassWord(hwnd : super::super::Foundation:: HWND, nindex : i32) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClientRect(hwnd : super::super::Foundation:: HWND, lprect : *mut super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetClipCursor(lprect : *mut super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn GetCursor() -> HCURSOR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCursorInfo(pci : *mut CURSORINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetCursorPos(lppoint : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDesktopWindow() -> super::super::Foundation:: HWND); +::windows_targets::link!("user32.dll" "system" fn GetDialogBaseUnits() -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDlgCtrlID(hwnd : super::super::Foundation:: HWND) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDlgItem(hdlg : super::super::Foundation:: HWND, niddlgitem : i32) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDlgItemInt(hdlg : super::super::Foundation:: HWND, niddlgitem : i32, lptranslated : *mut super::super::Foundation:: BOOL, bsigned : super::super::Foundation:: BOOL) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDlgItemTextA(hdlg : super::super::Foundation:: HWND, niddlgitem : i32, lpstring : ::windows_sys::core::PSTR, cchmax : i32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetDlgItemTextW(hdlg : super::super::Foundation:: HWND, niddlgitem : i32, lpstring : ::windows_sys::core::PWSTR, cchmax : i32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetForegroundWindow() -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetGUIThreadInfo(idthread : u32, pgui : *mut GUITHREADINFO) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetIconInfo(hicon : HICON, piconinfo : *mut ICONINFO) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetIconInfoExA(hicon : HICON, piconinfo : *mut ICONINFOEXA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetIconInfoExW(hicon : HICON, piconinfo : *mut ICONINFOEXW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetInputState() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLastActivePopup(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetLayeredWindowAttributes(hwnd : super::super::Foundation:: HWND, pcrkey : *mut super::super::Foundation:: COLORREF, pbalpha : *mut u8, pdwflags : *mut LAYERED_WINDOW_ATTRIBUTES_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMenu(hwnd : super::super::Foundation:: HWND) -> HMENU); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMenuBarInfo(hwnd : super::super::Foundation:: HWND, idobject : OBJECT_IDENTIFIER, iditem : i32, pmbi : *mut MENUBARINFO) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn GetMenuCheckMarkDimensions() -> i32); +::windows_targets::link!("user32.dll" "system" fn GetMenuDefaultItem(hmenu : HMENU, fbypos : u32, gmdiflags : GET_MENU_DEFAULT_ITEM_FLAGS) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetMenuInfo(param0 : HMENU, param1 : *mut MENUINFO) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn GetMenuItemCount(hmenu : HMENU) -> i32); +::windows_targets::link!("user32.dll" "system" fn GetMenuItemID(hmenu : HMENU, npos : i32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetMenuItemInfoA(hmenu : HMENU, item : u32, fbyposition : super::super::Foundation:: BOOL, lpmii : *mut MENUITEMINFOA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn GetMenuItemInfoW(hmenu : HMENU, item : u32, fbyposition : super::super::Foundation:: BOOL, lpmii : *mut MENUITEMINFOW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMenuItemRect(hwnd : super::super::Foundation:: HWND, hmenu : HMENU, uitem : u32, lprcitem : *mut super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn GetMenuState(hmenu : HMENU, uid : u32, uflags : MENU_ITEM_FLAGS) -> u32); +::windows_targets::link!("user32.dll" "system" fn GetMenuStringA(hmenu : HMENU, uiditem : u32, lpstring : ::windows_sys::core::PSTR, cchmax : i32, flags : MENU_ITEM_FLAGS) -> i32); +::windows_targets::link!("user32.dll" "system" fn GetMenuStringW(hmenu : HMENU, uiditem : u32, lpstring : ::windows_sys::core::PWSTR, cchmax : i32, flags : MENU_ITEM_FLAGS) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMessageA(lpmsg : *mut MSG, hwnd : super::super::Foundation:: HWND, wmsgfiltermin : u32, wmsgfiltermax : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMessageExtraInfo() -> super::super::Foundation:: LPARAM); +::windows_targets::link!("user32.dll" "system" fn GetMessagePos() -> u32); +::windows_targets::link!("user32.dll" "system" fn GetMessageTime() -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetMessageW(lpmsg : *mut MSG, hwnd : super::super::Foundation:: HWND, wmsgfiltermin : u32, wmsgfiltermax : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNextDlgGroupItem(hdlg : super::super::Foundation:: HWND, hctl : super::super::Foundation:: HWND, bprevious : super::super::Foundation:: BOOL) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetNextDlgTabItem(hdlg : super::super::Foundation:: HWND, hctl : super::super::Foundation:: HWND, bprevious : super::super::Foundation:: BOOL) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetParent(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPhysicalCursorPos(lppoint : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetProcessDefaultLayout(pdwdefaultlayout : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPropA(hwnd : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetPropW(hwnd : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +::windows_targets::link!("user32.dll" "system" fn GetQueueStatus(flags : QUEUE_STATUS_FLAGS) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetScrollBarInfo(hwnd : super::super::Foundation:: HWND, idobject : OBJECT_IDENTIFIER, psbi : *mut SCROLLBARINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetScrollInfo(hwnd : super::super::Foundation:: HWND, nbar : SCROLLBAR_CONSTANTS, lpsi : *mut SCROLLINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetScrollPos(hwnd : super::super::Foundation:: HWND, nbar : SCROLLBAR_CONSTANTS) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetScrollRange(hwnd : super::super::Foundation:: HWND, nbar : SCROLLBAR_CONSTANTS, lpminpos : *mut i32, lpmaxpos : *mut i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetShellWindow() -> super::super::Foundation:: HWND); +::windows_targets::link!("user32.dll" "system" fn GetSubMenu(hmenu : HMENU, npos : i32) -> HMENU); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetSystemMenu(hwnd : super::super::Foundation:: HWND, brevert : super::super::Foundation:: BOOL) -> HMENU); +::windows_targets::link!("user32.dll" "system" fn GetSystemMetrics(nindex : SYSTEM_METRICS_INDEX) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTitleBarInfo(hwnd : super::super::Foundation:: HWND, pti : *mut TITLEBARINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetTopWindow(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindow(hwnd : super::super::Foundation:: HWND, ucmd : GET_WINDOW_CMD) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowDisplayAffinity(hwnd : super::super::Foundation:: HWND, pdwaffinity : *mut u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowInfo(hwnd : super::super::Foundation:: HWND, pwi : *mut WINDOWINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowLongA(hwnd : super::super::Foundation:: HWND, nindex : WINDOW_LONG_PTR_INDEX) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowLongPtrA(hwnd : super::super::Foundation:: HWND, nindex : WINDOW_LONG_PTR_INDEX) -> isize); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowLongPtrW(hwnd : super::super::Foundation:: HWND, nindex : WINDOW_LONG_PTR_INDEX) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowLongW(hwnd : super::super::Foundation:: HWND, nindex : WINDOW_LONG_PTR_INDEX) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowModuleFileNameA(hwnd : super::super::Foundation:: HWND, pszfilename : ::windows_sys::core::PSTR, cchfilenamemax : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowModuleFileNameW(hwnd : super::super::Foundation:: HWND, pszfilename : ::windows_sys::core::PWSTR, cchfilenamemax : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowPlacement(hwnd : super::super::Foundation:: HWND, lpwndpl : *mut WINDOWPLACEMENT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowRect(hwnd : super::super::Foundation:: HWND, lprect : *mut super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowTextA(hwnd : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PSTR, nmaxcount : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowTextLengthA(hwnd : super::super::Foundation:: HWND) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowTextLengthW(hwnd : super::super::Foundation:: HWND) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowTextW(hwnd : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PWSTR, nmaxcount : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowThreadProcessId(hwnd : super::super::Foundation:: HWND, lpdwprocessid : *mut u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn GetWindowWord(hwnd : super::super::Foundation:: HWND, nindex : i32) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HideCaret(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn HiliteMenuItem(hwnd : super::super::Foundation:: HWND, hmenu : HMENU, uidhiliteitem : u32, uhilite : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InSendMessage() -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn InSendMessageEx(lpreserved : *const ::core::ffi::c_void) -> u32); +::windows_targets::link!("mrmsupport.dll" "system" fn IndexFilePath(resourceindexer : *const ::core::ffi::c_void, filepath : ::windows_sys::core::PCWSTR, ppresourceuri : *mut ::windows_sys::core::PWSTR, pqualifiercount : *mut u32, ppqualifiers : *mut *mut IndexedResourceQualifier) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InheritWindowMonitor(hwnd : super::super::Foundation:: HWND, hwndinherit : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InsertMenuA(hmenu : HMENU, uposition : u32, uflags : MENU_ITEM_FLAGS, uidnewitem : usize, lpnewitem : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn InsertMenuItemA(hmenu : HMENU, item : u32, fbyposition : super::super::Foundation:: BOOL, lpmi : *const MENUITEMINFOA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn InsertMenuItemW(hmenu : HMENU, item : u32, fbyposition : super::super::Foundation:: BOOL, lpmi : *const MENUITEMINFOW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InsertMenuW(hmenu : HMENU, uposition : u32, uflags : MENU_ITEM_FLAGS, uidnewitem : usize, lpnewitem : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn InternalGetWindowText(hwnd : super::super::Foundation:: HWND, pstring : ::windows_sys::core::PWSTR, cchmaxcount : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsCharAlphaA(ch : u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsCharAlphaNumericA(ch : u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsCharAlphaNumericW(ch : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsCharAlphaW(ch : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsCharLowerA(ch : u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsCharUpperA(ch : u8) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsCharUpperW(ch : u16) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsChild(hwndparent : super::super::Foundation:: HWND, hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsDialogMessageA(hdlg : super::super::Foundation:: HWND, lpmsg : *const MSG) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsDialogMessageW(hdlg : super::super::Foundation:: HWND, lpmsg : *const MSG) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsGUIThread(bconvert : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsHungAppWindow(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsIconic(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsMenu(hmenu : HMENU) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsProcessDPIAware() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsWindow(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsWindowUnicode(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsWindowVisible(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsWow64Message() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IsZoomed(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn KillTimer(hwnd : super::super::Foundation:: HWND, uidevent : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadAcceleratorsA(hinstance : super::super::Foundation:: HINSTANCE, lptablename : ::windows_sys::core::PCSTR) -> HACCEL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadAcceleratorsW(hinstance : super::super::Foundation:: HINSTANCE, lptablename : ::windows_sys::core::PCWSTR) -> HACCEL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadCursorA(hinstance : super::super::Foundation:: HINSTANCE, lpcursorname : ::windows_sys::core::PCSTR) -> HCURSOR); +::windows_targets::link!("user32.dll" "system" fn LoadCursorFromFileA(lpfilename : ::windows_sys::core::PCSTR) -> HCURSOR); +::windows_targets::link!("user32.dll" "system" fn LoadCursorFromFileW(lpfilename : ::windows_sys::core::PCWSTR) -> HCURSOR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadCursorW(hinstance : super::super::Foundation:: HINSTANCE, lpcursorname : ::windows_sys::core::PCWSTR) -> HCURSOR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadIconA(hinstance : super::super::Foundation:: HINSTANCE, lpiconname : ::windows_sys::core::PCSTR) -> HICON); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadIconW(hinstance : super::super::Foundation:: HINSTANCE, lpiconname : ::windows_sys::core::PCWSTR) -> HICON); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadImageA(hinst : super::super::Foundation:: HINSTANCE, name : ::windows_sys::core::PCSTR, r#type : GDI_IMAGE_TYPE, cx : i32, cy : i32, fuload : IMAGE_FLAGS) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadImageW(hinst : super::super::Foundation:: HINSTANCE, name : ::windows_sys::core::PCWSTR, r#type : GDI_IMAGE_TYPE, cx : i32, cy : i32, fuload : IMAGE_FLAGS) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadMenuA(hinstance : super::super::Foundation:: HINSTANCE, lpmenuname : ::windows_sys::core::PCSTR) -> HMENU); +::windows_targets::link!("user32.dll" "system" fn LoadMenuIndirectA(lpmenutemplate : *const ::core::ffi::c_void) -> HMENU); +::windows_targets::link!("user32.dll" "system" fn LoadMenuIndirectW(lpmenutemplate : *const ::core::ffi::c_void) -> HMENU); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadMenuW(hinstance : super::super::Foundation:: HINSTANCE, lpmenuname : ::windows_sys::core::PCWSTR) -> HMENU); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadStringA(hinstance : super::super::Foundation:: HINSTANCE, uid : u32, lpbuffer : ::windows_sys::core::PSTR, cchbuffermax : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LoadStringW(hinstance : super::super::Foundation:: HINSTANCE, uid : u32, lpbuffer : ::windows_sys::core::PWSTR, cchbuffermax : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LockSetForegroundWindow(ulockcode : FOREGROUND_WINDOW_LOCK_CODE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LogicalToPhysicalPoint(hwnd : super::super::Foundation:: HWND, lppoint : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupIconIdFromDirectory(presbits : *const u8, ficon : super::super::Foundation:: BOOL) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn LookupIconIdFromDirectoryEx(presbits : *const u8, ficon : super::super::Foundation:: BOOL, cxdesired : i32, cydesired : i32, flags : IMAGE_FLAGS) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MapDialogRect(hdlg : super::super::Foundation:: HWND, lprect : *mut super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MenuItemFromPoint(hwnd : super::super::Foundation:: HWND, hmenu : HMENU, ptscreen : super::super::Foundation:: POINT) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MessageBoxA(hwnd : super::super::Foundation:: HWND, lptext : ::windows_sys::core::PCSTR, lpcaption : ::windows_sys::core::PCSTR, utype : MESSAGEBOX_STYLE) -> MESSAGEBOX_RESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MessageBoxExA(hwnd : super::super::Foundation:: HWND, lptext : ::windows_sys::core::PCSTR, lpcaption : ::windows_sys::core::PCSTR, utype : MESSAGEBOX_STYLE, wlanguageid : u16) -> MESSAGEBOX_RESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MessageBoxExW(hwnd : super::super::Foundation:: HWND, lptext : ::windows_sys::core::PCWSTR, lpcaption : ::windows_sys::core::PCWSTR, utype : MESSAGEBOX_STYLE, wlanguageid : u16) -> MESSAGEBOX_RESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell\"`"] fn MessageBoxIndirectA(lpmbp : *const MSGBOXPARAMSA) -> MESSAGEBOX_RESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell\"`"] fn MessageBoxIndirectW(lpmbp : *const MSGBOXPARAMSW) -> MESSAGEBOX_RESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MessageBoxW(hwnd : super::super::Foundation:: HWND, lptext : ::windows_sys::core::PCWSTR, lpcaption : ::windows_sys::core::PCWSTR, utype : MESSAGEBOX_STYLE) -> MESSAGEBOX_RESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ModifyMenuA(hmnu : HMENU, uposition : u32, uflags : MENU_ITEM_FLAGS, uidnewitem : usize, lpnewitem : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ModifyMenuW(hmnu : HMENU, uposition : u32, uflags : MENU_ITEM_FLAGS, uidnewitem : usize, lpnewitem : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MoveWindow(hwnd : super::super::Foundation:: HWND, x : i32, y : i32, nwidth : i32, nheight : i32, brepaint : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmCreateConfig(platformversion : MrmPlatformVersion, defaultqualifiers : ::windows_sys::core::PCWSTR, outputxmlfile : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmCreateConfigInMemory(platformversion : MrmPlatformVersion, defaultqualifiers : ::windows_sys::core::PCWSTR, outputxmldata : *mut *mut u8, outputxmlsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmCreateResourceFile(indexer : MrmResourceIndexerHandle, packagingmode : MrmPackagingMode, packagingoptions : MrmPackagingOptions, outputdirectory : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmCreateResourceFileInMemory(indexer : MrmResourceIndexerHandle, packagingmode : MrmPackagingMode, packagingoptions : MrmPackagingOptions, outputpridata : *mut *mut u8, outputprisize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmCreateResourceFileWithChecksum(indexer : MrmResourceIndexerHandle, packagingmode : MrmPackagingMode, packagingoptions : MrmPackagingOptions, checksum : u32, outputdirectory : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmCreateResourceIndexer(packagefamilyname : ::windows_sys::core::PCWSTR, projectroot : ::windows_sys::core::PCWSTR, platformversion : MrmPlatformVersion, defaultqualifiers : ::windows_sys::core::PCWSTR, indexer : *mut MrmResourceIndexerHandle) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmCreateResourceIndexerFromPreviousPriData(projectroot : ::windows_sys::core::PCWSTR, platformversion : MrmPlatformVersion, defaultqualifiers : ::windows_sys::core::PCWSTR, pridata : *const u8, prisize : u32, indexer : *mut MrmResourceIndexerHandle) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmCreateResourceIndexerFromPreviousPriFile(projectroot : ::windows_sys::core::PCWSTR, platformversion : MrmPlatformVersion, defaultqualifiers : ::windows_sys::core::PCWSTR, prifile : ::windows_sys::core::PCWSTR, indexer : *mut MrmResourceIndexerHandle) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmCreateResourceIndexerFromPreviousSchemaData(projectroot : ::windows_sys::core::PCWSTR, platformversion : MrmPlatformVersion, defaultqualifiers : ::windows_sys::core::PCWSTR, schemaxmldata : *const u8, schemaxmlsize : u32, indexer : *mut MrmResourceIndexerHandle) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmCreateResourceIndexerFromPreviousSchemaFile(projectroot : ::windows_sys::core::PCWSTR, platformversion : MrmPlatformVersion, defaultqualifiers : ::windows_sys::core::PCWSTR, schemafile : ::windows_sys::core::PCWSTR, indexer : *mut MrmResourceIndexerHandle) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmCreateResourceIndexerWithFlags(packagefamilyname : ::windows_sys::core::PCWSTR, projectroot : ::windows_sys::core::PCWSTR, platformversion : MrmPlatformVersion, defaultqualifiers : ::windows_sys::core::PCWSTR, flags : MrmIndexerFlags, indexer : *mut MrmResourceIndexerHandle) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmDestroyIndexerAndMessages(indexer : MrmResourceIndexerHandle) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmDumpPriDataInMemory(inputpridata : *const u8, inputprisize : u32, schemapridata : *const u8, schemaprisize : u32, dumptype : MrmDumpType, outputxmldata : *mut *mut u8, outputxmlsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmDumpPriFile(indexfilename : ::windows_sys::core::PCWSTR, schemaprifile : ::windows_sys::core::PCWSTR, dumptype : MrmDumpType, outputxmlfile : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmDumpPriFileInMemory(indexfilename : ::windows_sys::core::PCWSTR, schemaprifile : ::windows_sys::core::PCWSTR, dumptype : MrmDumpType, outputxmldata : *mut *mut u8, outputxmlsize : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmFreeMemory(data : *const u8) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmGetPriFileContentChecksum(prifile : ::windows_sys::core::PCWSTR, checksum : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmIndexEmbeddedData(indexer : MrmResourceIndexerHandle, resourceuri : ::windows_sys::core::PCWSTR, embeddeddata : *const u8, embeddeddatasize : u32, qualifiers : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmIndexFile(indexer : MrmResourceIndexerHandle, resourceuri : ::windows_sys::core::PCWSTR, filepath : ::windows_sys::core::PCWSTR, qualifiers : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmIndexFileAutoQualifiers(indexer : MrmResourceIndexerHandle, filepath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmIndexResourceContainerAutoQualifiers(indexer : MrmResourceIndexerHandle, containerpath : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmIndexString(indexer : MrmResourceIndexerHandle, resourceuri : ::windows_sys::core::PCWSTR, resourcestring : ::windows_sys::core::PCWSTR, qualifiers : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("mrmsupport.dll" "system" fn MrmPeekResourceIndexerMessages(handle : MrmResourceIndexerHandle, messages : *mut *mut MrmResourceIndexerMessage, nummsgs : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsgWaitForMultipleObjects(ncount : u32, phandles : *const super::super::Foundation:: HANDLE, fwaitall : super::super::Foundation:: BOOL, dwmilliseconds : u32, dwwakemask : QUEUE_STATUS_FLAGS) -> super::super::Foundation:: WAIT_EVENT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn MsgWaitForMultipleObjectsEx(ncount : u32, phandles : *const super::super::Foundation:: HANDLE, dwmilliseconds : u32, dwwakemask : QUEUE_STATUS_FLAGS, dwflags : MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS) -> super::super::Foundation:: WAIT_EVENT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OemToCharA(psrc : ::windows_sys::core::PCSTR, pdst : ::windows_sys::core::PSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OemToCharBuffA(lpszsrc : ::windows_sys::core::PCSTR, lpszdst : ::windows_sys::core::PSTR, cchdstlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OemToCharBuffW(lpszsrc : ::windows_sys::core::PCSTR, lpszdst : ::windows_sys::core::PWSTR, cchdstlength : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OemToCharW(psrc : ::windows_sys::core::PCSTR, pdst : ::windows_sys::core::PWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn OpenIcon(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeekMessageA(lpmsg : *mut MSG, hwnd : super::super::Foundation:: HWND, wmsgfiltermin : u32, wmsgfiltermax : u32, wremovemsg : PEEK_MESSAGE_REMOVE_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PeekMessageW(lpmsg : *mut MSG, hwnd : super::super::Foundation:: HWND, wmsgfiltermin : u32, wmsgfiltermax : u32, wremovemsg : PEEK_MESSAGE_REMOVE_TYPE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PhysicalToLogicalPoint(hwnd : super::super::Foundation:: HWND, lppoint : *mut super::super::Foundation:: POINT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PostMessageA(hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PostMessageW(hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn PostQuitMessage(nexitcode : i32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PostThreadMessageA(idthread : u32, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn PostThreadMessageW(idthread : u32, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn PrivateExtractIconsA(szfilename : ::windows_sys::core::PCSTR, niconindex : i32, cxicon : i32, cyicon : i32, phicon : *mut HICON, piconid : *mut u32, nicons : u32, flags : u32) -> u32); +::windows_targets::link!("user32.dll" "system" fn PrivateExtractIconsW(szfilename : ::windows_sys::core::PCWSTR, niconindex : i32, cxicon : i32, cyicon : i32, phicon : *mut HICON, piconid : *mut u32, nicons : u32, flags : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RealChildWindowFromPoint(hwndparent : super::super::Foundation:: HWND, ptparentclientcoords : super::super::Foundation:: POINT) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RealGetWindowClassA(hwnd : super::super::Foundation:: HWND, ptszclassname : ::windows_sys::core::PSTR, cchclassnamemax : u32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RealGetWindowClassW(hwnd : super::super::Foundation:: HWND, ptszclassname : ::windows_sys::core::PWSTR, cchclassnamemax : u32) -> u32); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn RegisterClassA(lpwndclass : *const WNDCLASSA) -> u16); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn RegisterClassExA(param0 : *const WNDCLASSEXA) -> u16); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn RegisterClassExW(param0 : *const WNDCLASSEXW) -> u16); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn RegisterClassW(lpwndclass : *const WNDCLASSW) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterDeviceNotificationA(hrecipient : super::super::Foundation:: HANDLE, notificationfilter : *const ::core::ffi::c_void, flags : REGISTER_NOTIFICATION_FLAGS) -> HDEVNOTIFY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterDeviceNotificationW(hrecipient : super::super::Foundation:: HANDLE, notificationfilter : *const ::core::ffi::c_void, flags : REGISTER_NOTIFICATION_FLAGS) -> HDEVNOTIFY); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterForTooltipDismissNotification(hwnd : super::super::Foundation:: HWND, tdflags : TOOLTIP_DISMISS_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RegisterShellHookWindow(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn RegisterWindowMessageA(lpstring : ::windows_sys::core::PCSTR) -> u32); +::windows_targets::link!("user32.dll" "system" fn RegisterWindowMessageW(lpstring : ::windows_sys::core::PCWSTR) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemoveMenu(hmenu : HMENU, uposition : u32, uflags : MENU_ITEM_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemovePropA(hwnd : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PCSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RemovePropW(hwnd : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ReplyMessage(lresult : super::super::Foundation:: LRESULT) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ScrollDC(hdc : super::super::Graphics::Gdi:: HDC, dx : i32, dy : i32, lprcscroll : *const super::super::Foundation:: RECT, lprcclip : *const super::super::Foundation:: RECT, hrgnupdate : super::super::Graphics::Gdi:: HRGN, lprcupdate : *mut super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ScrollWindow(hwnd : super::super::Foundation:: HWND, xamount : i32, yamount : i32, lprect : *const super::super::Foundation:: RECT, lpcliprect : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn ScrollWindowEx(hwnd : super::super::Foundation:: HWND, dx : i32, dy : i32, prcscroll : *const super::super::Foundation:: RECT, prcclip : *const super::super::Foundation:: RECT, hrgnupdate : super::super::Graphics::Gdi:: HRGN, prcupdate : *mut super::super::Foundation:: RECT, flags : SCROLL_WINDOW_FLAGS) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendDlgItemMessageA(hdlg : super::super::Foundation:: HWND, niddlgitem : i32, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendDlgItemMessageW(hdlg : super::super::Foundation:: HWND, niddlgitem : i32, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendMessageA(hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendMessageCallbackA(hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM, lpresultcallback : SENDASYNCPROC, dwdata : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendMessageCallbackW(hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM, lpresultcallback : SENDASYNCPROC, dwdata : usize) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendMessageTimeoutA(hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM, fuflags : SEND_MESSAGE_TIMEOUT_FLAGS, utimeout : u32, lpdwresult : *mut usize) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendMessageTimeoutW(hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM, fuflags : SEND_MESSAGE_TIMEOUT_FLAGS, utimeout : u32, lpdwresult : *mut usize) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendMessageW(hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendNotifyMessageA(hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SendNotifyMessageW(hwnd : super::super::Foundation:: HWND, msg : u32, wparam : super::super::Foundation:: WPARAM, lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetAdditionalForegroundBoostProcesses(toplevelwindow : super::super::Foundation:: HWND, processhandlecount : u32, processhandlearray : *const super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCaretBlinkTime(umseconds : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCaretPos(x : i32, y : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetClassLongA(hwnd : super::super::Foundation:: HWND, nindex : GET_CLASS_LONG_INDEX, dwnewlong : i32) -> u32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetClassLongPtrA(hwnd : super::super::Foundation:: HWND, nindex : GET_CLASS_LONG_INDEX, dwnewlong : isize) -> usize); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetClassLongPtrW(hwnd : super::super::Foundation:: HWND, nindex : GET_CLASS_LONG_INDEX, dwnewlong : isize) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetClassLongW(hwnd : super::super::Foundation:: HWND, nindex : GET_CLASS_LONG_INDEX, dwnewlong : i32) -> u32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetClassWord(hwnd : super::super::Foundation:: HWND, nindex : i32, wnewword : u16) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCoalescableTimer(hwnd : super::super::Foundation:: HWND, nidevent : usize, uelapse : u32, lptimerfunc : TIMERPROC, utolerancedelay : u32) -> usize); +::windows_targets::link!("user32.dll" "system" fn SetCursor(hcursor : HCURSOR) -> HCURSOR); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetCursorPos(x : i32, y : i32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("user32.dll" "system" fn SetDebugErrorLevel(dwlevel : u32) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDlgItemInt(hdlg : super::super::Foundation:: HWND, niddlgitem : i32, uvalue : u32, bsigned : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDlgItemTextA(hdlg : super::super::Foundation:: HWND, niddlgitem : i32, lpstring : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetDlgItemTextW(hdlg : super::super::Foundation:: HWND, niddlgitem : i32, lpstring : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetForegroundWindow(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetLayeredWindowAttributes(hwnd : super::super::Foundation:: HWND, crkey : super::super::Foundation:: COLORREF, balpha : u8, dwflags : LAYERED_WINDOW_ATTRIBUTES_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMenu(hwnd : super::super::Foundation:: HWND, hmenu : HMENU) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMenuDefaultItem(hmenu : HMENU, uitem : u32, fbypos : u32) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn SetMenuInfo(param0 : HMENU, param1 : *const MENUINFO) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn SetMenuItemBitmaps(hmenu : HMENU, uposition : u32, uflags : MENU_ITEM_FLAGS, hbitmapunchecked : super::super::Graphics::Gdi:: HBITMAP, hbitmapchecked : super::super::Graphics::Gdi:: HBITMAP) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn SetMenuItemInfoA(hmenu : HMENU, item : u32, fbypositon : super::super::Foundation:: BOOL, lpmii : *const MENUITEMINFOA) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn SetMenuItemInfoW(hmenu : HMENU, item : u32, fbypositon : super::super::Foundation:: BOOL, lpmii : *const MENUITEMINFOW) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMessageExtraInfo(lparam : super::super::Foundation:: LPARAM) -> super::super::Foundation:: LPARAM); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetMessageQueue(cmessagesmax : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetParent(hwndchild : super::super::Foundation:: HWND, hwndnewparent : super::super::Foundation:: HWND) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPhysicalCursorPos(x : i32, y : i32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessDPIAware() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetProcessDefaultLayout(dwdefaultlayout : u32) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPropA(hwnd : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PCSTR, hdata : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetPropW(hwnd : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PCWSTR, hdata : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetSystemCursor(hcur : HCURSOR, id : SYSTEM_CURSOR_ID) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetTimer(hwnd : super::super::Foundation:: HWND, nidevent : usize, uelapse : u32, lptimerfunc : TIMERPROC) -> usize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowDisplayAffinity(hwnd : super::super::Foundation:: HWND, dwaffinity : WINDOW_DISPLAY_AFFINITY) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowLongA(hwnd : super::super::Foundation:: HWND, nindex : WINDOW_LONG_PTR_INDEX, dwnewlong : i32) -> i32); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowLongPtrA(hwnd : super::super::Foundation:: HWND, nindex : WINDOW_LONG_PTR_INDEX, dwnewlong : isize) -> isize); +#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowLongPtrW(hwnd : super::super::Foundation:: HWND, nindex : WINDOW_LONG_PTR_INDEX, dwnewlong : isize) -> isize); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowLongW(hwnd : super::super::Foundation:: HWND, nindex : WINDOW_LONG_PTR_INDEX, dwnewlong : i32) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowPlacement(hwnd : super::super::Foundation:: HWND, lpwndpl : *const WINDOWPLACEMENT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowPos(hwnd : super::super::Foundation:: HWND, hwndinsertafter : super::super::Foundation:: HWND, x : i32, y : i32, cx : i32, cy : i32, uflags : SET_WINDOW_POS_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowTextA(hwnd : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PCSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowTextW(hwnd : super::super::Foundation:: HWND, lpstring : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowWord(hwnd : super::super::Foundation:: HWND, nindex : i32, wnewword : u16) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowsHookA(nfiltertype : i32, pfnfilterproc : HOOKPROC) -> HHOOK); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowsHookExA(idhook : WINDOWS_HOOK_ID, lpfn : HOOKPROC, hmod : super::super::Foundation:: HINSTANCE, dwthreadid : u32) -> HHOOK); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowsHookExW(idhook : WINDOWS_HOOK_ID, lpfn : HOOKPROC, hmod : super::super::Foundation:: HINSTANCE, dwthreadid : u32) -> HHOOK); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SetWindowsHookW(nfiltertype : i32, pfnfilterproc : HOOKPROC) -> HHOOK); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ShowCaret(hwnd : super::super::Foundation:: HWND) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ShowCursor(bshow : super::super::Foundation:: BOOL) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ShowOwnedPopups(hwnd : super::super::Foundation:: HWND, fshow : super::super::Foundation:: BOOL) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ShowWindow(hwnd : super::super::Foundation:: HWND, ncmdshow : SHOW_WINDOW_CMD) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn ShowWindowAsync(hwnd : super::super::Foundation:: HWND, ncmdshow : SHOW_WINDOW_CMD) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SoundSentry() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SwitchToThisWindow(hwnd : super::super::Foundation:: HWND, funknown : super::super::Foundation:: BOOL) -> ()); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SystemParametersInfoA(uiaction : SYSTEM_PARAMETERS_INFO_ACTION, uiparam : u32, pvparam : *mut ::core::ffi::c_void, fwinini : SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn SystemParametersInfoW(uiaction : SYSTEM_PARAMETERS_INFO_ACTION, uiparam : u32, pvparam : *mut ::core::ffi::c_void, fwinini : SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TileWindows(hwndparent : super::super::Foundation:: HWND, whow : TILE_WINDOWS_HOW, lprect : *const super::super::Foundation:: RECT, ckids : u32, lpkids : *const super::super::Foundation:: HWND) -> u16); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TrackPopupMenu(hmenu : HMENU, uflags : TRACK_POPUP_MENU_FLAGS, x : i32, y : i32, nreserved : i32, hwnd : super::super::Foundation:: HWND, prcrect : *const super::super::Foundation:: RECT) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TrackPopupMenuEx(hmenu : HMENU, uflags : u32, x : i32, y : i32, hwnd : super::super::Foundation:: HWND, lptpm : *const TPMPARAMS) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TranslateAcceleratorA(hwnd : super::super::Foundation:: HWND, hacctable : HACCEL, lpmsg : *const MSG) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TranslateAcceleratorW(hwnd : super::super::Foundation:: HWND, hacctable : HACCEL, lpmsg : *const MSG) -> i32); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TranslateMDISysAccel(hwndclient : super::super::Foundation:: HWND, lpmsg : *const MSG) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn TranslateMessage(lpmsg : *const MSG) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnhookWindowsHook(ncode : i32, pfnfilterproc : HOOKPROC) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnhookWindowsHookEx(hhk : HHOOK) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterClassA(lpclassname : ::windows_sys::core::PCSTR, hinstance : super::super::Foundation:: HINSTANCE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterClassW(lpclassname : ::windows_sys::core::PCWSTR, hinstance : super::super::Foundation:: HINSTANCE) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn UnregisterDeviceNotification(handle : HDEVNOTIFY) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn UpdateLayeredWindow(hwnd : super::super::Foundation:: HWND, hdcdst : super::super::Graphics::Gdi:: HDC, pptdst : *const super::super::Foundation:: POINT, psize : *const super::super::Foundation:: SIZE, hdcsrc : super::super::Graphics::Gdi:: HDC, pptsrc : *const super::super::Foundation:: POINT, crkey : super::super::Foundation:: COLORREF, pblend : *const super::super::Graphics::Gdi:: BLENDFUNCTION, dwflags : UPDATE_LAYERED_WINDOW_FLAGS) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] fn UpdateLayeredWindowIndirect(hwnd : super::super::Foundation:: HWND, pulwinfo : *const UPDATELAYEREDWINDOWINFO) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WaitMessage() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WindowFromPhysicalPoint(point : super::super::Foundation:: POINT) -> super::super::Foundation:: HWND); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("user32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn WindowFromPoint(point : super::super::Foundation:: POINT) -> super::super::Foundation:: HWND); +::windows_targets::link!("user32.dll" "cdecl" fn wsprintfA(param0 : ::windows_sys::core::PSTR, param1 : ::windows_sys::core::PCSTR, ...) -> i32); +::windows_targets::link!("user32.dll" "cdecl" fn wsprintfW(param0 : ::windows_sys::core::PWSTR, param1 : ::windows_sys::core::PCWSTR, ...) -> i32); +::windows_targets::link!("user32.dll" "system" fn wvsprintfA(param0 : ::windows_sys::core::PSTR, param1 : ::windows_sys::core::PCSTR, arglist : *const i8) -> i32); +::windows_targets::link!("user32.dll" "system" fn wvsprintfW(param0 : ::windows_sys::core::PWSTR, param1 : ::windows_sys::core::PCWSTR, arglist : *const i8) -> i32); +pub const ARW_BOTTOMLEFT: MINIMIZEDMETRICS_ARRANGE = 0i32; +pub const ARW_BOTTOMRIGHT: MINIMIZEDMETRICS_ARRANGE = 1i32; +pub const ARW_DOWN: i32 = 4i32; +pub const ARW_HIDE: i32 = 8i32; +pub const ARW_LEFT: i32 = 0i32; +pub const ARW_RIGHT: i32 = 0i32; +pub const ARW_STARTMASK: i32 = 3i32; +pub const ARW_STARTRIGHT: i32 = 1i32; +pub const ARW_STARTTOP: i32 = 2i32; +pub const ARW_TOPLEFT: MINIMIZEDMETRICS_ARRANGE = 2i32; +pub const ARW_TOPRIGHT: MINIMIZEDMETRICS_ARRANGE = 3i32; +pub const ARW_UP: i32 = 4i32; +pub const ASFW_ANY: u32 = 4294967295u32; +pub const AW_ACTIVATE: ANIMATE_WINDOW_FLAGS = 131072u32; +pub const AW_BLEND: ANIMATE_WINDOW_FLAGS = 524288u32; +pub const AW_CENTER: ANIMATE_WINDOW_FLAGS = 16u32; +pub const AW_HIDE: ANIMATE_WINDOW_FLAGS = 65536u32; +pub const AW_HOR_NEGATIVE: ANIMATE_WINDOW_FLAGS = 2u32; +pub const AW_HOR_POSITIVE: ANIMATE_WINDOW_FLAGS = 1u32; +pub const AW_SLIDE: ANIMATE_WINDOW_FLAGS = 262144u32; +pub const AW_VER_NEGATIVE: ANIMATE_WINDOW_FLAGS = 8u32; +pub const AW_VER_POSITIVE: ANIMATE_WINDOW_FLAGS = 4u32; +pub const BM_CLICK: u32 = 245u32; +pub const BM_GETCHECK: u32 = 240u32; +pub const BM_GETIMAGE: u32 = 246u32; +pub const BM_GETSTATE: u32 = 242u32; +pub const BM_SETCHECK: u32 = 241u32; +pub const BM_SETDONTCLICK: u32 = 248u32; +pub const BM_SETIMAGE: u32 = 247u32; +pub const BM_SETSTATE: u32 = 243u32; +pub const BM_SETSTYLE: u32 = 244u32; +pub const BN_CLICKED: u32 = 0u32; +pub const BN_DBLCLK: u32 = 5u32; +pub const BN_DISABLE: u32 = 4u32; +pub const BN_DOUBLECLICKED: u32 = 5u32; +pub const BN_HILITE: u32 = 2u32; +pub const BN_KILLFOCUS: u32 = 7u32; +pub const BN_PAINT: u32 = 1u32; +pub const BN_PUSHED: u32 = 2u32; +pub const BN_SETFOCUS: u32 = 6u32; +pub const BN_UNHILITE: u32 = 3u32; +pub const BN_UNPUSHED: u32 = 3u32; +pub const BROADCAST_QUERY_DENY: u32 = 1112363332u32; +pub const BSF_MSGSRV32ISOK: u32 = 2147483648u32; +pub const BSF_MSGSRV32ISOK_BIT: u32 = 31u32; +pub const BSM_INSTALLABLEDRIVERS: u32 = 4u32; +pub const BSM_NETDRIVER: u32 = 2u32; +pub const BSM_VXDS: u32 = 1u32; +pub const BST_FOCUS: u32 = 8u32; +pub const BST_PUSHED: u32 = 4u32; +pub const BS_3STATE: i32 = 5i32; +pub const BS_AUTO3STATE: i32 = 6i32; +pub const BS_AUTOCHECKBOX: i32 = 3i32; +pub const BS_AUTORADIOBUTTON: i32 = 9i32; +pub const BS_BITMAP: i32 = 128i32; +pub const BS_BOTTOM: i32 = 2048i32; +pub const BS_CENTER: i32 = 768i32; +pub const BS_CHECKBOX: i32 = 2i32; +pub const BS_DEFPUSHBUTTON: i32 = 1i32; +pub const BS_FLAT: i32 = 32768i32; +pub const BS_GROUPBOX: i32 = 7i32; +pub const BS_ICON: i32 = 64i32; +pub const BS_LEFT: i32 = 256i32; +pub const BS_LEFTTEXT: i32 = 32i32; +pub const BS_MULTILINE: i32 = 8192i32; +pub const BS_NOTIFY: i32 = 16384i32; +pub const BS_OWNERDRAW: i32 = 11i32; +pub const BS_PUSHBOX: i32 = 10i32; +pub const BS_PUSHBUTTON: i32 = 0i32; +pub const BS_PUSHLIKE: i32 = 4096i32; +pub const BS_RADIOBUTTON: i32 = 4i32; +pub const BS_RIGHT: i32 = 512i32; +pub const BS_RIGHTBUTTON: i32 = 32i32; +pub const BS_TEXT: i32 = 0i32; +pub const BS_TOP: i32 = 1024i32; +pub const BS_TYPEMASK: i32 = 15i32; +pub const BS_USERBUTTON: i32 = 8i32; +pub const BS_VCENTER: i32 = 3072i32; +pub const CALERT_SYSTEM: u32 = 6u32; +pub const CBN_CLOSEUP: u32 = 8u32; +pub const CBN_DBLCLK: u32 = 2u32; +pub const CBN_DROPDOWN: u32 = 7u32; +pub const CBN_EDITCHANGE: u32 = 5u32; +pub const CBN_EDITUPDATE: u32 = 6u32; +pub const CBN_ERRSPACE: i32 = -1i32; +pub const CBN_KILLFOCUS: u32 = 4u32; +pub const CBN_SELCHANGE: u32 = 1u32; +pub const CBN_SELENDCANCEL: u32 = 10u32; +pub const CBN_SELENDOK: u32 = 9u32; +pub const CBN_SETFOCUS: u32 = 3u32; +pub const CBS_AUTOHSCROLL: i32 = 64i32; +pub const CBS_DISABLENOSCROLL: i32 = 2048i32; +pub const CBS_DROPDOWN: i32 = 2i32; +pub const CBS_DROPDOWNLIST: i32 = 3i32; +pub const CBS_HASSTRINGS: i32 = 512i32; +pub const CBS_LOWERCASE: i32 = 16384i32; +pub const CBS_NOINTEGRALHEIGHT: i32 = 1024i32; +pub const CBS_OEMCONVERT: i32 = 128i32; +pub const CBS_OWNERDRAWFIXED: i32 = 16i32; +pub const CBS_OWNERDRAWVARIABLE: i32 = 32i32; +pub const CBS_SIMPLE: i32 = 1i32; +pub const CBS_SORT: i32 = 256i32; +pub const CBS_UPPERCASE: i32 = 8192i32; +pub const CB_ADDSTRING: u32 = 323u32; +pub const CB_DELETESTRING: u32 = 324u32; +pub const CB_DIR: u32 = 325u32; +pub const CB_ERR: i32 = -1i32; +pub const CB_ERRSPACE: i32 = -2i32; +pub const CB_FINDSTRING: u32 = 332u32; +pub const CB_FINDSTRINGEXACT: u32 = 344u32; +pub const CB_GETCOMBOBOXINFO: u32 = 356u32; +pub const CB_GETCOUNT: u32 = 326u32; +pub const CB_GETCURSEL: u32 = 327u32; +pub const CB_GETDROPPEDCONTROLRECT: u32 = 338u32; +pub const CB_GETDROPPEDSTATE: u32 = 343u32; +pub const CB_GETDROPPEDWIDTH: u32 = 351u32; +pub const CB_GETEDITSEL: u32 = 320u32; +pub const CB_GETEXTENDEDUI: u32 = 342u32; +pub const CB_GETHORIZONTALEXTENT: u32 = 349u32; +pub const CB_GETITEMDATA: u32 = 336u32; +pub const CB_GETITEMHEIGHT: u32 = 340u32; +pub const CB_GETLBTEXT: u32 = 328u32; +pub const CB_GETLBTEXTLEN: u32 = 329u32; +pub const CB_GETLOCALE: u32 = 346u32; +pub const CB_GETTOPINDEX: u32 = 347u32; +pub const CB_INITSTORAGE: u32 = 353u32; +pub const CB_INSERTSTRING: u32 = 330u32; +pub const CB_LIMITTEXT: u32 = 321u32; +pub const CB_MSGMAX: u32 = 357u32; +pub const CB_MULTIPLEADDSTRING: u32 = 355u32; +pub const CB_OKAY: u32 = 0u32; +pub const CB_RESETCONTENT: u32 = 331u32; +pub const CB_SELECTSTRING: u32 = 333u32; +pub const CB_SETCURSEL: u32 = 334u32; +pub const CB_SETDROPPEDWIDTH: u32 = 352u32; +pub const CB_SETEDITSEL: u32 = 322u32; +pub const CB_SETEXTENDEDUI: u32 = 341u32; +pub const CB_SETHORIZONTALEXTENT: u32 = 350u32; +pub const CB_SETITEMDATA: u32 = 337u32; +pub const CB_SETITEMHEIGHT: u32 = 339u32; +pub const CB_SETLOCALE: u32 = 345u32; +pub const CB_SETTOPINDEX: u32 = 348u32; +pub const CB_SHOWDROPDOWN: u32 = 335u32; +pub const CCHILDREN_SCROLLBAR: u32 = 5u32; +pub const CCHILDREN_TITLEBAR: u32 = 5u32; +pub const CHILDID_SELF: u32 = 0u32; +pub const CONSOLE_APPLICATION_16BIT: u32 = 0u32; +pub const CONSOLE_CARET_SELECTION: u32 = 1u32; +pub const CONSOLE_CARET_VISIBLE: u32 = 2u32; +pub const CONTACTVISUALIZATION_OFF: u32 = 0u32; +pub const CONTACTVISUALIZATION_ON: u32 = 1u32; +pub const CONTACTVISUALIZATION_PRESENTATIONMODE: u32 = 2u32; +pub const CREATEPROCESS_MANIFEST_RESOURCE_ID: u32 = 1u32; +pub const CSOUND_SYSTEM: u32 = 16u32; +pub const CS_BYTEALIGNCLIENT: WNDCLASS_STYLES = 4096u32; +pub const CS_BYTEALIGNWINDOW: WNDCLASS_STYLES = 8192u32; +pub const CS_CLASSDC: WNDCLASS_STYLES = 64u32; +pub const CS_DBLCLKS: WNDCLASS_STYLES = 8u32; +pub const CS_DROPSHADOW: WNDCLASS_STYLES = 131072u32; +pub const CS_GLOBALCLASS: WNDCLASS_STYLES = 16384u32; +pub const CS_HREDRAW: WNDCLASS_STYLES = 2u32; +pub const CS_IME: WNDCLASS_STYLES = 65536u32; +pub const CS_NOCLOSE: WNDCLASS_STYLES = 512u32; +pub const CS_OWNDC: WNDCLASS_STYLES = 32u32; +pub const CS_PARENTDC: WNDCLASS_STYLES = 128u32; +pub const CS_SAVEBITS: WNDCLASS_STYLES = 2048u32; +pub const CS_VREDRAW: WNDCLASS_STYLES = 1u32; +pub const CTLCOLOR_BTN: u32 = 3u32; +pub const CTLCOLOR_DLG: u32 = 4u32; +pub const CTLCOLOR_EDIT: u32 = 1u32; +pub const CTLCOLOR_LISTBOX: u32 = 2u32; +pub const CTLCOLOR_MAX: u32 = 7u32; +pub const CTLCOLOR_MSGBOX: u32 = 0u32; +pub const CTLCOLOR_SCROLLBAR: u32 = 5u32; +pub const CTLCOLOR_STATIC: u32 = 6u32; +pub const CURSOR_CREATION_SCALING_DEFAULT: u32 = 2u32; +pub const CURSOR_CREATION_SCALING_NONE: u32 = 1u32; +pub const CURSOR_SHOWING: CURSORINFO_FLAGS = 1u32; +pub const CURSOR_SUPPRESSED: CURSORINFO_FLAGS = 2u32; +pub const CWF_CREATE_ONLY: u32 = 1u32; +pub const CWP_ALL: CWP_FLAGS = 0u32; +pub const CWP_SKIPDISABLED: CWP_FLAGS = 2u32; +pub const CWP_SKIPINVISIBLE: CWP_FLAGS = 1u32; +pub const CWP_SKIPTRANSPARENT: CWP_FLAGS = 4u32; +pub const CW_USEDEFAULT: i32 = -2147483648i32; +pub const DBTF_MEDIA: DEV_BROADCAST_VOLUME_FLAGS = 1u16; +pub const DBTF_NET: DEV_BROADCAST_VOLUME_FLAGS = 2u16; +pub const DBTF_RESOURCE: u32 = 1u32; +pub const DBTF_SLOWNET: u32 = 4u32; +pub const DBTF_XPORT: u32 = 2u32; +pub const DBT_APPYBEGIN: u32 = 0u32; +pub const DBT_APPYEND: u32 = 1u32; +pub const DBT_CONFIGCHANGECANCELED: u32 = 25u32; +pub const DBT_CONFIGCHANGED: u32 = 24u32; +pub const DBT_CONFIGMGAPI32: u32 = 34u32; +pub const DBT_CONFIGMGPRIVATE: u32 = 32767u32; +pub const DBT_CUSTOMEVENT: u32 = 32774u32; +pub const DBT_DEVICEARRIVAL: u32 = 32768u32; +pub const DBT_DEVICEQUERYREMOVE: u32 = 32769u32; +pub const DBT_DEVICEQUERYREMOVEFAILED: u32 = 32770u32; +pub const DBT_DEVICEREMOVECOMPLETE: u32 = 32772u32; +pub const DBT_DEVICEREMOVEPENDING: u32 = 32771u32; +pub const DBT_DEVICETYPESPECIFIC: u32 = 32773u32; +pub const DBT_DEVNODES_CHANGED: u32 = 7u32; +pub const DBT_DEVTYP_DEVICEINTERFACE: DEV_BROADCAST_HDR_DEVICE_TYPE = 5u32; +pub const DBT_DEVTYP_DEVNODE: u32 = 1u32; +pub const DBT_DEVTYP_HANDLE: DEV_BROADCAST_HDR_DEVICE_TYPE = 6u32; +pub const DBT_DEVTYP_NET: u32 = 4u32; +pub const DBT_DEVTYP_OEM: DEV_BROADCAST_HDR_DEVICE_TYPE = 0u32; +pub const DBT_DEVTYP_PORT: DEV_BROADCAST_HDR_DEVICE_TYPE = 3u32; +pub const DBT_DEVTYP_VOLUME: DEV_BROADCAST_HDR_DEVICE_TYPE = 2u32; +pub const DBT_LOW_DISK_SPACE: u32 = 72u32; +pub const DBT_MONITORCHANGE: u32 = 27u32; +pub const DBT_NO_DISK_SPACE: u32 = 71u32; +pub const DBT_QUERYCHANGECONFIG: u32 = 23u32; +pub const DBT_SHELLLOGGEDON: u32 = 32u32; +pub const DBT_USERDEFINED: u32 = 65535u32; +pub const DBT_VOLLOCKLOCKFAILED: u32 = 32835u32; +pub const DBT_VOLLOCKLOCKRELEASED: u32 = 32837u32; +pub const DBT_VOLLOCKLOCKTAKEN: u32 = 32834u32; +pub const DBT_VOLLOCKQUERYLOCK: u32 = 32833u32; +pub const DBT_VOLLOCKQUERYUNLOCK: u32 = 32836u32; +pub const DBT_VOLLOCKUNLOCKFAILED: u32 = 32838u32; +pub const DBT_VPOWERDAPI: u32 = 33024u32; +pub const DBT_VXDINITCOMPLETE: u32 = 35u32; +pub const DCX_EXCLUDEUPDATE: i32 = 256i32; +pub const DC_HASDEFID: u32 = 21323u32; +pub const DEVICE_NOTIFY_ALL_INTERFACE_CLASSES: REGISTER_NOTIFICATION_FLAGS = 4u32; +pub const DEVICE_NOTIFY_CALLBACK: REGISTER_NOTIFICATION_FLAGS = 2u32; +pub const DEVICE_NOTIFY_SERVICE_HANDLE: REGISTER_NOTIFICATION_FLAGS = 1u32; +pub const DEVICE_NOTIFY_WINDOW_HANDLE: REGISTER_NOTIFICATION_FLAGS = 0u32; +pub const DIFFERENCE: u32 = 11u32; +pub const DI_COMPAT: DI_FLAGS = 4u32; +pub const DI_DEFAULTSIZE: DI_FLAGS = 8u32; +pub const DI_IMAGE: DI_FLAGS = 2u32; +pub const DI_MASK: DI_FLAGS = 1u32; +pub const DI_NOMIRROR: DI_FLAGS = 16u32; +pub const DI_NORMAL: DI_FLAGS = 3u32; +pub const DLGC_BUTTON: u32 = 8192u32; +pub const DLGC_DEFPUSHBUTTON: u32 = 16u32; +pub const DLGC_HASSETSEL: u32 = 8u32; +pub const DLGC_RADIOBUTTON: u32 = 64u32; +pub const DLGC_STATIC: u32 = 256u32; +pub const DLGC_UNDEFPUSHBUTTON: u32 = 32u32; +pub const DLGC_WANTALLKEYS: u32 = 4u32; +pub const DLGC_WANTARROWS: u32 = 1u32; +pub const DLGC_WANTCHARS: u32 = 128u32; +pub const DLGC_WANTMESSAGE: u32 = 4u32; +pub const DLGC_WANTTAB: u32 = 2u32; +pub const DLGWINDOWEXTRA: u32 = 30u32; +pub const DM_GETDEFID: u32 = 1024u32; +pub const DM_POINTERHITTEST: u32 = 592u32; +pub const DM_REPOSITION: u32 = 1026u32; +pub const DM_SETDEFID: u32 = 1025u32; +pub const DOF_DIRECTORY: u32 = 32771u32; +pub const DOF_DOCUMENT: u32 = 32770u32; +pub const DOF_EXECUTABLE: u32 = 32769u32; +pub const DOF_MULTIPLE: u32 = 32772u32; +pub const DOF_PROGMAN: u32 = 1u32; +pub const DOF_SHELLDATA: u32 = 2u32; +pub const DO_DROPFILE: i32 = 1162627398i32; +pub const DO_PRINTFILE: i32 = 1414419024i32; +pub const DS_3DLOOK: i32 = 4i32; +pub const DS_ABSALIGN: i32 = 1i32; +pub const DS_CENTER: i32 = 2048i32; +pub const DS_CENTERMOUSE: i32 = 4096i32; +pub const DS_CONTEXTHELP: i32 = 8192i32; +pub const DS_CONTROL: i32 = 1024i32; +pub const DS_FIXEDSYS: i32 = 8i32; +pub const DS_LOCALEDIT: i32 = 32i32; +pub const DS_MODALFRAME: i32 = 128i32; +pub const DS_NOFAILCREATE: i32 = 16i32; +pub const DS_NOIDLEMSG: i32 = 256i32; +pub const DS_SETFONT: i32 = 64i32; +pub const DS_SETFOREGROUND: i32 = 512i32; +pub const DS_SYSMODAL: i32 = 2i32; +pub const DS_USEPIXELS: i32 = 32768i32; +pub const DWLP_MSGRESULT: u32 = 0u32; +pub const DWL_DLGPROC: u32 = 4u32; +pub const DWL_MSGRESULT: u32 = 0u32; +pub const DWL_USER: u32 = 8u32; +pub const EC_LEFTMARGIN: u32 = 1u32; +pub const EC_RIGHTMARGIN: u32 = 2u32; +pub const EC_USEFONTINFO: u32 = 65535u32; +pub const EDD_GET_DEVICE_INTERFACE_NAME: u32 = 1u32; +pub const EDIT_CONTROL_FEATURE_ENTERPRISE_DATA_PROTECTION_PASTE_SUPPORT: EDIT_CONTROL_FEATURE = 0i32; +pub const EDIT_CONTROL_FEATURE_PASTE_NOTIFICATIONS: EDIT_CONTROL_FEATURE = 1i32; +pub const EIMES_CANCELCOMPSTRINFOCUS: u32 = 2u32; +pub const EIMES_COMPLETECOMPSTRKILLFOCUS: u32 = 4u32; +pub const EIMES_GETCOMPSTRATONCE: u32 = 1u32; +pub const EMSIS_COMPOSITIONSTRING: u32 = 1u32; +pub const ENDSESSION_CLOSEAPP: u32 = 1u32; +pub const ENDSESSION_CRITICAL: u32 = 1073741824u32; +pub const ENDSESSION_LOGOFF: u32 = 2147483648u32; +pub const EN_AFTER_PASTE: u32 = 2049u32; +pub const EN_ALIGN_LTR_EC: u32 = 1792u32; +pub const EN_ALIGN_RTL_EC: u32 = 1793u32; +pub const EN_BEFORE_PASTE: u32 = 2048u32; +pub const EN_CHANGE: u32 = 768u32; +pub const EN_ERRSPACE: u32 = 1280u32; +pub const EN_HSCROLL: u32 = 1537u32; +pub const EN_KILLFOCUS: u32 = 512u32; +pub const EN_MAXTEXT: u32 = 1281u32; +pub const EN_SETFOCUS: u32 = 256u32; +pub const EN_UPDATE: u32 = 1024u32; +pub const EN_VSCROLL: u32 = 1538u32; +pub const ES_AUTOHSCROLL: i32 = 128i32; +pub const ES_AUTOVSCROLL: i32 = 64i32; +pub const ES_CENTER: i32 = 1i32; +pub const ES_LEFT: i32 = 0i32; +pub const ES_LOWERCASE: i32 = 16i32; +pub const ES_MULTILINE: i32 = 4i32; +pub const ES_NOHIDESEL: i32 = 256i32; +pub const ES_NUMBER: i32 = 8192i32; +pub const ES_OEMCONVERT: i32 = 1024i32; +pub const ES_PASSWORD: i32 = 32i32; +pub const ES_READONLY: i32 = 2048i32; +pub const ES_RIGHT: i32 = 2i32; +pub const ES_UPPERCASE: i32 = 8i32; +pub const ES_WANTRETURN: i32 = 4096i32; +pub const EVENT_AIA_END: u32 = 45055u32; +pub const EVENT_AIA_START: u32 = 40960u32; +pub const EVENT_CONSOLE_CARET: u32 = 16385u32; +pub const EVENT_CONSOLE_END: u32 = 16639u32; +pub const EVENT_CONSOLE_END_APPLICATION: u32 = 16391u32; +pub const EVENT_CONSOLE_LAYOUT: u32 = 16389u32; +pub const EVENT_CONSOLE_START_APPLICATION: u32 = 16390u32; +pub const EVENT_CONSOLE_UPDATE_REGION: u32 = 16386u32; +pub const EVENT_CONSOLE_UPDATE_SCROLL: u32 = 16388u32; +pub const EVENT_CONSOLE_UPDATE_SIMPLE: u32 = 16387u32; +pub const EVENT_MAX: u32 = 2147483647u32; +pub const EVENT_MIN: u32 = 1u32; +pub const EVENT_OBJECT_ACCELERATORCHANGE: u32 = 32786u32; +pub const EVENT_OBJECT_CLOAKED: u32 = 32791u32; +pub const EVENT_OBJECT_CONTENTSCROLLED: u32 = 32789u32; +pub const EVENT_OBJECT_CREATE: u32 = 32768u32; +pub const EVENT_OBJECT_DEFACTIONCHANGE: u32 = 32785u32; +pub const EVENT_OBJECT_DESCRIPTIONCHANGE: u32 = 32781u32; +pub const EVENT_OBJECT_DESTROY: u32 = 32769u32; +pub const EVENT_OBJECT_DRAGCANCEL: u32 = 32802u32; +pub const EVENT_OBJECT_DRAGCOMPLETE: u32 = 32803u32; +pub const EVENT_OBJECT_DRAGDROPPED: u32 = 32806u32; +pub const EVENT_OBJECT_DRAGENTER: u32 = 32804u32; +pub const EVENT_OBJECT_DRAGLEAVE: u32 = 32805u32; +pub const EVENT_OBJECT_DRAGSTART: u32 = 32801u32; +pub const EVENT_OBJECT_END: u32 = 33023u32; +pub const EVENT_OBJECT_FOCUS: u32 = 32773u32; +pub const EVENT_OBJECT_HELPCHANGE: u32 = 32784u32; +pub const EVENT_OBJECT_HIDE: u32 = 32771u32; +pub const EVENT_OBJECT_HOSTEDOBJECTSINVALIDATED: u32 = 32800u32; +pub const EVENT_OBJECT_IME_CHANGE: u32 = 32809u32; +pub const EVENT_OBJECT_IME_HIDE: u32 = 32808u32; +pub const EVENT_OBJECT_IME_SHOW: u32 = 32807u32; +pub const EVENT_OBJECT_INVOKED: u32 = 32787u32; +pub const EVENT_OBJECT_LIVEREGIONCHANGED: u32 = 32793u32; +pub const EVENT_OBJECT_LOCATIONCHANGE: u32 = 32779u32; +pub const EVENT_OBJECT_NAMECHANGE: u32 = 32780u32; +pub const EVENT_OBJECT_PARENTCHANGE: u32 = 32783u32; +pub const EVENT_OBJECT_REORDER: u32 = 32772u32; +pub const EVENT_OBJECT_SELECTION: u32 = 32774u32; +pub const EVENT_OBJECT_SELECTIONADD: u32 = 32775u32; +pub const EVENT_OBJECT_SELECTIONREMOVE: u32 = 32776u32; +pub const EVENT_OBJECT_SELECTIONWITHIN: u32 = 32777u32; +pub const EVENT_OBJECT_SHOW: u32 = 32770u32; +pub const EVENT_OBJECT_STATECHANGE: u32 = 32778u32; +pub const EVENT_OBJECT_TEXTEDIT_CONVERSIONTARGETCHANGED: u32 = 32816u32; +pub const EVENT_OBJECT_TEXTSELECTIONCHANGED: u32 = 32788u32; +pub const EVENT_OBJECT_UNCLOAKED: u32 = 32792u32; +pub const EVENT_OBJECT_VALUECHANGE: u32 = 32782u32; +pub const EVENT_OEM_DEFINED_END: u32 = 511u32; +pub const EVENT_OEM_DEFINED_START: u32 = 257u32; +pub const EVENT_SYSTEM_ALERT: u32 = 2u32; +pub const EVENT_SYSTEM_ARRANGMENTPREVIEW: u32 = 32790u32; +pub const EVENT_SYSTEM_CAPTUREEND: u32 = 9u32; +pub const EVENT_SYSTEM_CAPTURESTART: u32 = 8u32; +pub const EVENT_SYSTEM_CONTEXTHELPEND: u32 = 13u32; +pub const EVENT_SYSTEM_CONTEXTHELPSTART: u32 = 12u32; +pub const EVENT_SYSTEM_DESKTOPSWITCH: u32 = 32u32; +pub const EVENT_SYSTEM_DIALOGEND: u32 = 17u32; +pub const EVENT_SYSTEM_DIALOGSTART: u32 = 16u32; +pub const EVENT_SYSTEM_DRAGDROPEND: u32 = 15u32; +pub const EVENT_SYSTEM_DRAGDROPSTART: u32 = 14u32; +pub const EVENT_SYSTEM_END: u32 = 255u32; +pub const EVENT_SYSTEM_FOREGROUND: u32 = 3u32; +pub const EVENT_SYSTEM_IME_KEY_NOTIFICATION: u32 = 41u32; +pub const EVENT_SYSTEM_MENUEND: u32 = 5u32; +pub const EVENT_SYSTEM_MENUPOPUPEND: u32 = 7u32; +pub const EVENT_SYSTEM_MENUPOPUPSTART: u32 = 6u32; +pub const EVENT_SYSTEM_MENUSTART: u32 = 4u32; +pub const EVENT_SYSTEM_MINIMIZEEND: u32 = 23u32; +pub const EVENT_SYSTEM_MINIMIZESTART: u32 = 22u32; +pub const EVENT_SYSTEM_MOVESIZEEND: u32 = 11u32; +pub const EVENT_SYSTEM_MOVESIZESTART: u32 = 10u32; +pub const EVENT_SYSTEM_SCROLLINGEND: u32 = 19u32; +pub const EVENT_SYSTEM_SCROLLINGSTART: u32 = 18u32; +pub const EVENT_SYSTEM_SOUND: u32 = 1u32; +pub const EVENT_SYSTEM_SWITCHEND: u32 = 21u32; +pub const EVENT_SYSTEM_SWITCHER_APPDROPPED: u32 = 38u32; +pub const EVENT_SYSTEM_SWITCHER_APPGRABBED: u32 = 36u32; +pub const EVENT_SYSTEM_SWITCHER_APPOVERTARGET: u32 = 37u32; +pub const EVENT_SYSTEM_SWITCHER_CANCELLED: u32 = 39u32; +pub const EVENT_SYSTEM_SWITCHSTART: u32 = 20u32; +pub const EVENT_UIA_EVENTID_END: u32 = 20223u32; +pub const EVENT_UIA_EVENTID_START: u32 = 19968u32; +pub const EVENT_UIA_PROPID_END: u32 = 30207u32; +pub const EVENT_UIA_PROPID_START: u32 = 29952u32; +pub const FALT: ACCEL_VIRT_FLAGS = 16u8; +pub const FAPPCOMMAND_KEY: u32 = 0u32; +pub const FAPPCOMMAND_MASK: u32 = 61440u32; +pub const FAPPCOMMAND_MOUSE: u32 = 32768u32; +pub const FAPPCOMMAND_OEM: u32 = 4096u32; +pub const FCONTROL: ACCEL_VIRT_FLAGS = 8u8; +pub const FE_FONTSMOOTHINGCLEARTYPE: u32 = 2u32; +pub const FE_FONTSMOOTHINGORIENTATIONBGR: u32 = 0u32; +pub const FE_FONTSMOOTHINGORIENTATIONRGB: u32 = 1u32; +pub const FE_FONTSMOOTHINGSTANDARD: u32 = 1u32; +pub const FKF_AVAILABLE: u32 = 2u32; +pub const FKF_CLICKON: u32 = 64u32; +pub const FKF_CONFIRMHOTKEY: u32 = 8u32; +pub const FKF_FILTERKEYSON: u32 = 1u32; +pub const FKF_HOTKEYACTIVE: u32 = 4u32; +pub const FKF_HOTKEYSOUND: u32 = 16u32; +pub const FKF_INDICATOR: u32 = 32u32; +pub const FLASHW_ALL: FLASHWINFO_FLAGS = 3u32; +pub const FLASHW_CAPTION: FLASHWINFO_FLAGS = 1u32; +pub const FLASHW_STOP: FLASHWINFO_FLAGS = 0u32; +pub const FLASHW_TIMER: FLASHWINFO_FLAGS = 4u32; +pub const FLASHW_TIMERNOFG: FLASHWINFO_FLAGS = 12u32; +pub const FLASHW_TRAY: FLASHWINFO_FLAGS = 2u32; +pub const FNOINVERT: ACCEL_VIRT_FLAGS = 2u8; +pub const FSHIFT: ACCEL_VIRT_FLAGS = 4u8; +pub const FVIRTKEY: ACCEL_VIRT_FLAGS = 1u8; +pub const GA_PARENT: GET_ANCESTOR_FLAGS = 1u32; +pub const GA_ROOT: GET_ANCESTOR_FLAGS = 2u32; +pub const GA_ROOTOWNER: GET_ANCESTOR_FLAGS = 3u32; +pub const GCF_INCLUDE_ANCESTORS: u32 = 1u32; +pub const GCLP_HBRBACKGROUND: GET_CLASS_LONG_INDEX = -10i32; +pub const GCLP_HCURSOR: GET_CLASS_LONG_INDEX = -12i32; +pub const GCLP_HICON: GET_CLASS_LONG_INDEX = -14i32; +pub const GCLP_HICONSM: GET_CLASS_LONG_INDEX = -34i32; +pub const GCLP_HMODULE: GET_CLASS_LONG_INDEX = -16i32; +pub const GCLP_MENUNAME: GET_CLASS_LONG_INDEX = -8i32; +pub const GCLP_WNDPROC: GET_CLASS_LONG_INDEX = -24i32; +pub const GCL_CBCLSEXTRA: GET_CLASS_LONG_INDEX = -20i32; +pub const GCL_CBWNDEXTRA: GET_CLASS_LONG_INDEX = -18i32; +pub const GCL_HBRBACKGROUND: GET_CLASS_LONG_INDEX = -10i32; +pub const GCL_HCURSOR: GET_CLASS_LONG_INDEX = -12i32; +pub const GCL_HICON: GET_CLASS_LONG_INDEX = -14i32; +pub const GCL_HICONSM: GET_CLASS_LONG_INDEX = -34i32; +pub const GCL_HMODULE: GET_CLASS_LONG_INDEX = -16i32; +pub const GCL_MENUNAME: GET_CLASS_LONG_INDEX = -8i32; +pub const GCL_STYLE: GET_CLASS_LONG_INDEX = -26i32; +pub const GCL_WNDPROC: GET_CLASS_LONG_INDEX = -24i32; +pub const GCW_ATOM: GET_CLASS_LONG_INDEX = -32i32; +pub const GESTURECONFIGMAXCOUNT: u32 = 256u32; +pub const GESTUREVISUALIZATION_DOUBLETAP: u32 = 2u32; +pub const GESTUREVISUALIZATION_OFF: u32 = 0u32; +pub const GESTUREVISUALIZATION_ON: u32 = 31u32; +pub const GESTUREVISUALIZATION_PRESSANDHOLD: u32 = 8u32; +pub const GESTUREVISUALIZATION_PRESSANDTAP: u32 = 4u32; +pub const GESTUREVISUALIZATION_RIGHTTAP: u32 = 16u32; +pub const GESTUREVISUALIZATION_TAP: u32 = 1u32; +pub const GF_BEGIN: u32 = 1u32; +pub const GF_END: u32 = 4u32; +pub const GF_INERTIA: u32 = 2u32; +pub const GIDC_ARRIVAL: u32 = 1u32; +pub const GIDC_REMOVAL: u32 = 2u32; +pub const GMDI_GOINTOPOPUPS: GET_MENU_DEFAULT_ITEM_FLAGS = 2u32; +pub const GMDI_USEDISABLED: GET_MENU_DEFAULT_ITEM_FLAGS = 1u32; +pub const GUID_DEVICE_EVENT_RBC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd0744792_a98e_11d2_917a_00a0c9068ff3); +pub const GUID_IO_CDROM_EXCLUSIVE_LOCK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbc56c139_7a10_47ee_a294_4c6a38f0149a); +pub const GUID_IO_CDROM_EXCLUSIVE_UNLOCK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa3b6d27d_5e35_4885_81e5_ee18c00ed779); +pub const GUID_IO_DEVICE_BECOMING_READY: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd07433f0_a98e_11d2_917a_00a0c9068ff3); +pub const GUID_IO_DEVICE_EXTERNAL_REQUEST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd07433d0_a98e_11d2_917a_00a0c9068ff3); +pub const GUID_IO_DISK_CLONE_ARRIVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a61885b_7c39_43dd_9b56_b8ac22a549aa); +pub const GUID_IO_DISK_HEALTH_NOTIFICATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x0f1bd644_3916_49c5_b063_991940118fb2); +pub const GUID_IO_DISK_LAYOUT_CHANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x11dff54c_8469_41f9_b3de_ef836487c54a); +pub const GUID_IO_DRIVE_REQUIRES_CLEANING: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7207877c_90ed_44e5_a000_81428d4c79bb); +pub const GUID_IO_MEDIA_ARRIVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd07433c0_a98e_11d2_917a_00a0c9068ff3); +pub const GUID_IO_MEDIA_EJECT_REQUEST: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd07433d1_a98e_11d2_917a_00a0c9068ff3); +pub const GUID_IO_MEDIA_REMOVAL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd07433c1_a98e_11d2_917a_00a0c9068ff3); +pub const GUID_IO_TAPE_ERASE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x852d11eb_4bb8_4507_9d9b_417cc2b1b438); +pub const GUID_IO_VOLUME_BACKGROUND_FORMAT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa2e5fc86_d5cd_4038_b2e3_4445065c2377); +pub const GUID_IO_VOLUME_CHANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x7373654a_812a_11d0_bec7_08002be2092f); +pub const GUID_IO_VOLUME_CHANGE_SIZE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3a1625be_ad03_49f1_8ef8_6bbac182d1fd); +pub const GUID_IO_VOLUME_DEVICE_INTERFACE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x53f5630d_b6bf_11d0_94f2_00a0c91efb8b); +pub const GUID_IO_VOLUME_DISMOUNT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd16a55e8_1059_11d2_8ffd_00a0c9a06d32); +pub const GUID_IO_VOLUME_DISMOUNT_FAILED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe3c5b178_105d_11d2_8ffd_00a0c9a06d32); +pub const GUID_IO_VOLUME_FORCE_CLOSED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x411ad84f_433e_4dc2_a5ae_4a2d1a2de654); +pub const GUID_IO_VOLUME_FVE_STATUS_CHANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x062998b2_ee1f_4b6a_b857_e76cbbe9a6da); +pub const GUID_IO_VOLUME_INFO_MAKE_COMPAT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3ab9a0d2_ef80_45cf_8cdc_cbe02a212906); +pub const GUID_IO_VOLUME_LOCK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x50708874_c9af_11d1_8fef_00a0c9a06d32); +pub const GUID_IO_VOLUME_LOCK_FAILED: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xae2eed10_0ba8_11d2_8ffb_00a0c9a06d32); +pub const GUID_IO_VOLUME_MOUNT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xb5804878_1a96_11d2_8ffd_00a0c9a06d32); +pub const GUID_IO_VOLUME_NAME_CHANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2de97f83_4c06_11d2_a532_00609713055a); +pub const GUID_IO_VOLUME_NEED_CHKDSK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x799a0960_0a0b_4e03_ad88_2fa7c6ce748a); +pub const GUID_IO_VOLUME_PHYSICAL_CONFIGURATION_CHANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x2de97f84_4c06_11d2_a532_00609713055a); +pub const GUID_IO_VOLUME_PREPARING_EJECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc79eb16e_0dac_4e7a_a86c_b25ceeaa88f6); +pub const GUID_IO_VOLUME_UNIQUE_ID_CHANGE: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xaf39da42_6622_41f5_970b_139d092fa3d9); +pub const GUID_IO_VOLUME_UNLOCK: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x9a8c3d68_d0cb_11d1_8fef_00a0c9a06d32); +pub const GUID_IO_VOLUME_WEARING_OUT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x873113ca_1486_4508_82ac_c3b2e5297aaa); +pub const GUID_IO_VOLUME_WORM_NEAR_FULL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf3bfff82_f3de_48d2_af95_457f80b763f2); +pub const GUI_16BITTASK: u32 = 0u32; +pub const GUI_CARETBLINKING: GUITHREADINFO_FLAGS = 1u32; +pub const GUI_INMENUMODE: GUITHREADINFO_FLAGS = 4u32; +pub const GUI_INMOVESIZE: GUITHREADINFO_FLAGS = 2u32; +pub const GUI_POPUPMENUMODE: GUITHREADINFO_FLAGS = 16u32; +pub const GUI_SYSTEMMENUMODE: GUITHREADINFO_FLAGS = 8u32; +pub const GWFS_INCLUDE_ANCESTORS: u32 = 1u32; +pub const GWLP_HINSTANCE: WINDOW_LONG_PTR_INDEX = -6i32; +pub const GWLP_HWNDPARENT: WINDOW_LONG_PTR_INDEX = -8i32; +pub const GWLP_ID: WINDOW_LONG_PTR_INDEX = -12i32; +pub const GWLP_USERDATA: WINDOW_LONG_PTR_INDEX = -21i32; +pub const GWLP_WNDPROC: WINDOW_LONG_PTR_INDEX = -4i32; +pub const GWL_EXSTYLE: WINDOW_LONG_PTR_INDEX = -20i32; +pub const GWL_HINSTANCE: WINDOW_LONG_PTR_INDEX = -6i32; +pub const GWL_HWNDPARENT: WINDOW_LONG_PTR_INDEX = -8i32; +pub const GWL_ID: WINDOW_LONG_PTR_INDEX = -12i32; +pub const GWL_STYLE: WINDOW_LONG_PTR_INDEX = -16i32; +pub const GWL_USERDATA: WINDOW_LONG_PTR_INDEX = -21i32; +pub const GWL_WNDPROC: WINDOW_LONG_PTR_INDEX = -4i32; +pub const GW_CHILD: GET_WINDOW_CMD = 5u32; +pub const GW_ENABLEDPOPUP: GET_WINDOW_CMD = 6u32; +pub const GW_HWNDFIRST: GET_WINDOW_CMD = 0u32; +pub const GW_HWNDLAST: GET_WINDOW_CMD = 1u32; +pub const GW_HWNDNEXT: GET_WINDOW_CMD = 2u32; +pub const GW_HWNDPREV: GET_WINDOW_CMD = 3u32; +pub const GW_MAX: u32 = 5u32; +pub const GW_OWNER: GET_WINDOW_CMD = 4u32; +pub const HANDEDNESS_LEFT: HANDEDNESS = 0i32; +pub const HANDEDNESS_RIGHT: HANDEDNESS = 1i32; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub const HBMMENU_CALLBACK: super::super::Graphics::Gdi::HBITMAP = -1i32 as _; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub const HBMMENU_MBAR_CLOSE: super::super::Graphics::Gdi::HBITMAP = 5i32 as _; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub const HBMMENU_MBAR_CLOSE_D: super::super::Graphics::Gdi::HBITMAP = 6i32 as _; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub const HBMMENU_MBAR_MINIMIZE: super::super::Graphics::Gdi::HBITMAP = 3i32 as _; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub const HBMMENU_MBAR_MINIMIZE_D: super::super::Graphics::Gdi::HBITMAP = 7i32 as _; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub const HBMMENU_MBAR_RESTORE: super::super::Graphics::Gdi::HBITMAP = 2i32 as _; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub const HBMMENU_POPUP_CLOSE: super::super::Graphics::Gdi::HBITMAP = 8i32 as _; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub const HBMMENU_POPUP_MAXIMIZE: super::super::Graphics::Gdi::HBITMAP = 10i32 as _; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub const HBMMENU_POPUP_MINIMIZE: super::super::Graphics::Gdi::HBITMAP = 11i32 as _; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub const HBMMENU_POPUP_RESTORE: super::super::Graphics::Gdi::HBITMAP = 9i32 as _; +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub const HBMMENU_SYSTEM: super::super::Graphics::Gdi::HBITMAP = 1i32 as _; +pub const HCBT_ACTIVATE: u32 = 5u32; +pub const HCBT_CLICKSKIPPED: u32 = 6u32; +pub const HCBT_CREATEWND: u32 = 3u32; +pub const HCBT_DESTROYWND: u32 = 4u32; +pub const HCBT_KEYSKIPPED: u32 = 7u32; +pub const HCBT_MINMAX: u32 = 1u32; +pub const HCBT_MOVESIZE: u32 = 0u32; +pub const HCBT_QS: u32 = 2u32; +pub const HCBT_SETFOCUS: u32 = 9u32; +pub const HCBT_SYSCOMMAND: u32 = 8u32; +pub const HCF_DEFAULTDESKTOP: u32 = 512u32; +pub const HCF_LOGONDESKTOP: u32 = 256u32; +pub const HC_ACTION: u32 = 0u32; +pub const HC_GETNEXT: u32 = 1u32; +pub const HC_NOREM: u32 = 3u32; +pub const HC_NOREMOVE: u32 = 3u32; +pub const HC_SKIP: u32 = 2u32; +pub const HC_SYSMODALOFF: u32 = 5u32; +pub const HC_SYSMODALON: u32 = 4u32; +pub const HELP_COMMAND: i32 = 258i32; +pub const HELP_CONTENTS: i32 = 3i32; +pub const HELP_CONTEXT: i32 = 1i32; +pub const HELP_CONTEXTMENU: u32 = 10u32; +pub const HELP_CONTEXTPOPUP: i32 = 8i32; +pub const HELP_FINDER: u32 = 11u32; +pub const HELP_FORCEFILE: i32 = 9i32; +pub const HELP_HELPONHELP: i32 = 4i32; +pub const HELP_INDEX: i32 = 3i32; +pub const HELP_KEY: i32 = 257i32; +pub const HELP_MULTIKEY: i32 = 513i32; +pub const HELP_PARTIALKEY: i32 = 261i32; +pub const HELP_QUIT: i32 = 2i32; +pub const HELP_SETCONTENTS: i32 = 5i32; +pub const HELP_SETINDEX: i32 = 5i32; +pub const HELP_SETPOPUP_POS: u32 = 13u32; +pub const HELP_SETWINPOS: i32 = 515i32; +pub const HELP_TCARD: u32 = 32768u32; +pub const HELP_TCARD_DATA: u32 = 16u32; +pub const HELP_TCARD_OTHER_CALLER: u32 = 17u32; +pub const HELP_WM_HELP: u32 = 12u32; +pub const HIDE_WINDOW: u32 = 0u32; +pub const HKL_NEXT: u32 = 1u32; +pub const HKL_PREV: u32 = 0u32; +pub const HSHELL_ACCESSIBILITYSTATE: u32 = 11u32; +pub const HSHELL_ACTIVATESHELLWINDOW: u32 = 3u32; +pub const HSHELL_APPCOMMAND: u32 = 12u32; +pub const HSHELL_ENDTASK: u32 = 10u32; +pub const HSHELL_GETMINRECT: u32 = 5u32; +pub const HSHELL_HIGHBIT: u32 = 32768u32; +pub const HSHELL_LANGUAGE: u32 = 8u32; +pub const HSHELL_MONITORCHANGED: u32 = 16u32; +pub const HSHELL_REDRAW: u32 = 6u32; +pub const HSHELL_SYSMENU: u32 = 9u32; +pub const HSHELL_TASKMAN: u32 = 7u32; +pub const HSHELL_WINDOWACTIVATED: u32 = 4u32; +pub const HSHELL_WINDOWCREATED: u32 = 1u32; +pub const HSHELL_WINDOWDESTROYED: u32 = 2u32; +pub const HSHELL_WINDOWREPLACED: u32 = 13u32; +pub const HSHELL_WINDOWREPLACING: u32 = 14u32; +pub const HTBORDER: u32 = 18u32; +pub const HTBOTTOM: u32 = 15u32; +pub const HTBOTTOMLEFT: u32 = 16u32; +pub const HTBOTTOMRIGHT: u32 = 17u32; +pub const HTCAPTION: u32 = 2u32; +pub const HTCLIENT: u32 = 1u32; +pub const HTCLOSE: u32 = 20u32; +pub const HTERROR: i32 = -2i32; +pub const HTGROWBOX: u32 = 4u32; +pub const HTHELP: u32 = 21u32; +pub const HTHSCROLL: u32 = 6u32; +pub const HTLEFT: u32 = 10u32; +pub const HTMAXBUTTON: u32 = 9u32; +pub const HTMENU: u32 = 5u32; +pub const HTMINBUTTON: u32 = 8u32; +pub const HTNOWHERE: u32 = 0u32; +pub const HTOBJECT: u32 = 19u32; +pub const HTREDUCE: u32 = 8u32; +pub const HTRIGHT: u32 = 11u32; +pub const HTSIZE: u32 = 4u32; +pub const HTSIZEFIRST: u32 = 10u32; +pub const HTSIZELAST: u32 = 17u32; +pub const HTSYSMENU: u32 = 3u32; +pub const HTTOP: u32 = 12u32; +pub const HTTOPLEFT: u32 = 13u32; +pub const HTTOPRIGHT: u32 = 14u32; +pub const HTTRANSPARENT: i32 = -1i32; +pub const HTVSCROLL: u32 = 7u32; +pub const HTZOOM: u32 = 9u32; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HWND_BOTTOM: super::super::Foundation::HWND = 1i32 as _; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HWND_BROADCAST: super::super::Foundation::HWND = 65535i32 as _; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HWND_DESKTOP: super::super::Foundation::HWND = 0i32 as _; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HWND_MESSAGE: super::super::Foundation::HWND = -3i32 as _; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HWND_NOTOPMOST: super::super::Foundation::HWND = -2i32 as _; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HWND_TOP: super::super::Foundation::HWND = 0i32 as _; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub const HWND_TOPMOST: super::super::Foundation::HWND = -1i32 as _; +pub const ICON_BIG: u32 = 1u32; +pub const ICON_SMALL: u32 = 0u32; +pub const ICON_SMALL2: u32 = 2u32; +pub const IDABORT: MESSAGEBOX_RESULT = 3i32; +pub const IDANI_CAPTION: u32 = 3u32; +pub const IDANI_OPEN: u32 = 1u32; +pub const IDASYNC: MESSAGEBOX_RESULT = 32001i32; +pub const IDCANCEL: MESSAGEBOX_RESULT = 2i32; +pub const IDCLOSE: MESSAGEBOX_RESULT = 8i32; +pub const IDCONTINUE: MESSAGEBOX_RESULT = 11i32; +pub const IDC_APPSTARTING: ::windows_sys::core::PCWSTR = 32650u16 as _; +pub const IDC_ARROW: ::windows_sys::core::PCWSTR = 32512u16 as _; +pub const IDC_CROSS: ::windows_sys::core::PCWSTR = 32515u16 as _; +pub const IDC_HAND: ::windows_sys::core::PCWSTR = 32649u16 as _; +pub const IDC_HELP: ::windows_sys::core::PCWSTR = 32651u16 as _; +pub const IDC_IBEAM: ::windows_sys::core::PCWSTR = 32513u16 as _; +pub const IDC_ICON: ::windows_sys::core::PCWSTR = 32641u16 as _; +pub const IDC_NO: ::windows_sys::core::PCWSTR = 32648u16 as _; +pub const IDC_PERSON: ::windows_sys::core::PCWSTR = 32672u16 as _; +pub const IDC_PIN: ::windows_sys::core::PCWSTR = 32671u16 as _; +pub const IDC_SIZE: ::windows_sys::core::PCWSTR = 32640u16 as _; +pub const IDC_SIZEALL: ::windows_sys::core::PCWSTR = 32646u16 as _; +pub const IDC_SIZENESW: ::windows_sys::core::PCWSTR = 32643u16 as _; +pub const IDC_SIZENS: ::windows_sys::core::PCWSTR = 32645u16 as _; +pub const IDC_SIZENWSE: ::windows_sys::core::PCWSTR = 32642u16 as _; +pub const IDC_SIZEWE: ::windows_sys::core::PCWSTR = 32644u16 as _; +pub const IDC_UPARROW: ::windows_sys::core::PCWSTR = 32516u16 as _; +pub const IDC_WAIT: ::windows_sys::core::PCWSTR = 32514u16 as _; +pub const IDHELP: MESSAGEBOX_RESULT = 9i32; +pub const IDHOT_SNAPDESKTOP: i32 = -2i32; +pub const IDHOT_SNAPWINDOW: i32 = -1i32; +pub const IDH_CANCEL: u32 = 28444u32; +pub const IDH_GENERIC_HELP_BUTTON: u32 = 28442u32; +pub const IDH_HELP: u32 = 28445u32; +pub const IDH_MISSING_CONTEXT: u32 = 28441u32; +pub const IDH_NO_HELP: u32 = 28440u32; +pub const IDH_OK: u32 = 28443u32; +pub const IDIGNORE: MESSAGEBOX_RESULT = 5i32; +pub const IDI_APPLICATION: ::windows_sys::core::PCWSTR = 32512u32 as _; +pub const IDI_ASTERISK: ::windows_sys::core::PCWSTR = 32516u32 as _; +pub const IDI_ERROR: ::windows_sys::core::PCWSTR = 32513u32 as _; +pub const IDI_EXCLAMATION: ::windows_sys::core::PCWSTR = 32515u32 as _; +pub const IDI_HAND: ::windows_sys::core::PCWSTR = 32513u32 as _; +pub const IDI_INFORMATION: ::windows_sys::core::PCWSTR = 32516u32 as _; +pub const IDI_QUESTION: ::windows_sys::core::PCWSTR = 32514u32 as _; +pub const IDI_SHIELD: ::windows_sys::core::PCWSTR = 32518u32 as _; +pub const IDI_WARNING: ::windows_sys::core::PCWSTR = 32515u32 as _; +pub const IDI_WINLOGO: ::windows_sys::core::PCWSTR = 32517u32 as _; +pub const IDNO: MESSAGEBOX_RESULT = 7i32; +pub const IDOK: MESSAGEBOX_RESULT = 1i32; +pub const IDRETRY: MESSAGEBOX_RESULT = 4i32; +pub const IDTIMEOUT: MESSAGEBOX_RESULT = 32000i32; +pub const IDTRYAGAIN: MESSAGEBOX_RESULT = 10i32; +pub const IDYES: MESSAGEBOX_RESULT = 6i32; +pub const IMAGE_BITMAP: GDI_IMAGE_TYPE = 0u32; +pub const IMAGE_CURSOR: GDI_IMAGE_TYPE = 2u32; +pub const IMAGE_ENHMETAFILE: u32 = 3u32; +pub const IMAGE_ICON: GDI_IMAGE_TYPE = 1u32; +pub const INDEXID_CONTAINER: u32 = 0u32; +pub const INDEXID_OBJECT: u32 = 0u32; +pub const INPUTLANGCHANGE_BACKWARD: u32 = 4u32; +pub const INPUTLANGCHANGE_FORWARD: u32 = 2u32; +pub const INPUTLANGCHANGE_SYSCHARSET: u32 = 1u32; +pub const ISMEX_CALLBACK: u32 = 4u32; +pub const ISMEX_NOSEND: u32 = 0u32; +pub const ISMEX_NOTIFY: u32 = 2u32; +pub const ISMEX_REPLIED: u32 = 8u32; +pub const ISMEX_SEND: u32 = 1u32; +pub const ISOLATIONAWARE_MANIFEST_RESOURCE_ID: u32 = 2u32; +pub const ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID: u32 = 3u32; +pub const ISOLATIONPOLICY_BROWSER_MANIFEST_RESOURCE_ID: u32 = 5u32; +pub const ISOLATIONPOLICY_MANIFEST_RESOURCE_ID: u32 = 4u32; +pub const KF_ALTDOWN: u32 = 8192u32; +pub const KF_DLGMODE: u32 = 2048u32; +pub const KF_EXTENDED: u32 = 256u32; +pub const KF_MENUMODE: u32 = 4096u32; +pub const KF_REPEAT: u32 = 16384u32; +pub const KF_UP: u32 = 32768u32; +pub const KL_NAMELENGTH: u32 = 9u32; +pub const LBN_DBLCLK: u32 = 2u32; +pub const LBN_ERRSPACE: i32 = -2i32; +pub const LBN_KILLFOCUS: u32 = 5u32; +pub const LBN_SELCANCEL: u32 = 3u32; +pub const LBN_SELCHANGE: u32 = 1u32; +pub const LBN_SETFOCUS: u32 = 4u32; +pub const LBS_COMBOBOX: i32 = 32768i32; +pub const LBS_DISABLENOSCROLL: i32 = 4096i32; +pub const LBS_EXTENDEDSEL: i32 = 2048i32; +pub const LBS_HASSTRINGS: i32 = 64i32; +pub const LBS_MULTICOLUMN: i32 = 512i32; +pub const LBS_MULTIPLESEL: i32 = 8i32; +pub const LBS_NODATA: i32 = 8192i32; +pub const LBS_NOINTEGRALHEIGHT: i32 = 256i32; +pub const LBS_NOREDRAW: i32 = 4i32; +pub const LBS_NOSEL: i32 = 16384i32; +pub const LBS_NOTIFY: i32 = 1i32; +pub const LBS_OWNERDRAWFIXED: i32 = 16i32; +pub const LBS_OWNERDRAWVARIABLE: i32 = 32i32; +pub const LBS_SORT: i32 = 2i32; +pub const LBS_STANDARD: i32 = 10485763i32; +pub const LBS_USETABSTOPS: i32 = 128i32; +pub const LBS_WANTKEYBOARDINPUT: i32 = 1024i32; +pub const LB_ADDFILE: u32 = 406u32; +pub const LB_ADDSTRING: u32 = 384u32; +pub const LB_CTLCODE: i32 = 0i32; +pub const LB_DELETESTRING: u32 = 386u32; +pub const LB_DIR: u32 = 397u32; +pub const LB_ERR: i32 = -1i32; +pub const LB_ERRSPACE: i32 = -2i32; +pub const LB_FINDSTRING: u32 = 399u32; +pub const LB_FINDSTRINGEXACT: u32 = 418u32; +pub const LB_GETANCHORINDEX: u32 = 413u32; +pub const LB_GETCARETINDEX: u32 = 415u32; +pub const LB_GETCOUNT: u32 = 395u32; +pub const LB_GETCURSEL: u32 = 392u32; +pub const LB_GETHORIZONTALEXTENT: u32 = 403u32; +pub const LB_GETITEMDATA: u32 = 409u32; +pub const LB_GETITEMHEIGHT: u32 = 417u32; +pub const LB_GETITEMRECT: u32 = 408u32; +pub const LB_GETLISTBOXINFO: u32 = 434u32; +pub const LB_GETLOCALE: u32 = 422u32; +pub const LB_GETSEL: u32 = 391u32; +pub const LB_GETSELCOUNT: u32 = 400u32; +pub const LB_GETSELITEMS: u32 = 401u32; +pub const LB_GETTEXT: u32 = 393u32; +pub const LB_GETTEXTLEN: u32 = 394u32; +pub const LB_GETTOPINDEX: u32 = 398u32; +pub const LB_INITSTORAGE: u32 = 424u32; +pub const LB_INSERTSTRING: u32 = 385u32; +pub const LB_ITEMFROMPOINT: u32 = 425u32; +pub const LB_MSGMAX: u32 = 435u32; +pub const LB_MULTIPLEADDSTRING: u32 = 433u32; +pub const LB_OKAY: u32 = 0u32; +pub const LB_RESETCONTENT: u32 = 388u32; +pub const LB_SELECTSTRING: u32 = 396u32; +pub const LB_SELITEMRANGE: u32 = 411u32; +pub const LB_SELITEMRANGEEX: u32 = 387u32; +pub const LB_SETANCHORINDEX: u32 = 412u32; +pub const LB_SETCARETINDEX: u32 = 414u32; +pub const LB_SETCOLUMNWIDTH: u32 = 405u32; +pub const LB_SETCOUNT: u32 = 423u32; +pub const LB_SETCURSEL: u32 = 390u32; +pub const LB_SETHORIZONTALEXTENT: u32 = 404u32; +pub const LB_SETITEMDATA: u32 = 410u32; +pub const LB_SETITEMHEIGHT: u32 = 416u32; +pub const LB_SETLOCALE: u32 = 421u32; +pub const LB_SETSEL: u32 = 389u32; +pub const LB_SETTABSTOPS: u32 = 402u32; +pub const LB_SETTOPINDEX: u32 = 407u32; +pub const LLKHF_ALTDOWN: KBDLLHOOKSTRUCT_FLAGS = 32u32; +pub const LLKHF_EXTENDED: KBDLLHOOKSTRUCT_FLAGS = 1u32; +pub const LLKHF_INJECTED: KBDLLHOOKSTRUCT_FLAGS = 16u32; +pub const LLKHF_LOWER_IL_INJECTED: KBDLLHOOKSTRUCT_FLAGS = 2u32; +pub const LLKHF_UP: KBDLLHOOKSTRUCT_FLAGS = 128u32; +pub const LLMHF_INJECTED: u32 = 1u32; +pub const LLMHF_LOWER_IL_INJECTED: u32 = 2u32; +pub const LOCKF_LOGICAL_LOCK: u32 = 0u32; +pub const LOCKF_PHYSICAL_LOCK: u32 = 1u32; +pub const LOCKP_ALLOW_MEM_MAPPING: u32 = 0u32; +pub const LOCKP_ALLOW_WRITES: u32 = 1u32; +pub const LOCKP_FAIL_MEM_MAPPING: u32 = 2u32; +pub const LOCKP_FAIL_WRITES: u32 = 0u32; +pub const LOCKP_LOCK_FOR_FORMAT: u32 = 4u32; +pub const LOCKP_USER_MASK: u32 = 3u32; +pub const LR_COLOR: u32 = 2u32; +pub const LR_COPYDELETEORG: IMAGE_FLAGS = 8u32; +pub const LR_COPYFROMRESOURCE: IMAGE_FLAGS = 16384u32; +pub const LR_COPYRETURNORG: IMAGE_FLAGS = 4u32; +pub const LR_CREATEDIBSECTION: IMAGE_FLAGS = 8192u32; +pub const LR_DEFAULTCOLOR: IMAGE_FLAGS = 0u32; +pub const LR_DEFAULTSIZE: IMAGE_FLAGS = 64u32; +pub const LR_LOADFROMFILE: IMAGE_FLAGS = 16u32; +pub const LR_LOADMAP3DCOLORS: IMAGE_FLAGS = 4096u32; +pub const LR_LOADTRANSPARENT: IMAGE_FLAGS = 32u32; +pub const LR_MONOCHROME: IMAGE_FLAGS = 1u32; +pub const LR_SHARED: IMAGE_FLAGS = 32768u32; +pub const LR_VGACOLOR: IMAGE_FLAGS = 128u32; +pub const LSFW_LOCK: FOREGROUND_WINDOW_LOCK_CODE = 1u32; +pub const LSFW_UNLOCK: FOREGROUND_WINDOW_LOCK_CODE = 2u32; +pub const LWA_ALPHA: LAYERED_WINDOW_ATTRIBUTES_FLAGS = 2u32; +pub const LWA_COLORKEY: LAYERED_WINDOW_ATTRIBUTES_FLAGS = 1u32; +pub const MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID: u32 = 16u32; +pub const MAX_LOGICALDPIOVERRIDE: u32 = 2u32; +pub const MAX_STR_BLOCKREASON: u32 = 256u32; +pub const MAX_TOUCH_COUNT: u32 = 256u32; +pub const MAX_TOUCH_PREDICTION_FILTER_TAPS: u32 = 3u32; +pub const MA_ACTIVATE: u32 = 1u32; +pub const MA_ACTIVATEANDEAT: u32 = 2u32; +pub const MA_NOACTIVATE: u32 = 3u32; +pub const MA_NOACTIVATEANDEAT: u32 = 4u32; +pub const MB_ABORTRETRYIGNORE: MESSAGEBOX_STYLE = 2u32; +pub const MB_APPLMODAL: MESSAGEBOX_STYLE = 0u32; +pub const MB_CANCELTRYCONTINUE: MESSAGEBOX_STYLE = 6u32; +pub const MB_DEFAULT_DESKTOP_ONLY: MESSAGEBOX_STYLE = 131072u32; +pub const MB_DEFBUTTON1: MESSAGEBOX_STYLE = 0u32; +pub const MB_DEFBUTTON2: MESSAGEBOX_STYLE = 256u32; +pub const MB_DEFBUTTON3: MESSAGEBOX_STYLE = 512u32; +pub const MB_DEFBUTTON4: MESSAGEBOX_STYLE = 768u32; +pub const MB_DEFMASK: MESSAGEBOX_STYLE = 3840u32; +pub const MB_HELP: MESSAGEBOX_STYLE = 16384u32; +pub const MB_ICONASTERISK: MESSAGEBOX_STYLE = 64u32; +pub const MB_ICONERROR: MESSAGEBOX_STYLE = 16u32; +pub const MB_ICONEXCLAMATION: MESSAGEBOX_STYLE = 48u32; +pub const MB_ICONHAND: MESSAGEBOX_STYLE = 16u32; +pub const MB_ICONINFORMATION: MESSAGEBOX_STYLE = 64u32; +pub const MB_ICONMASK: MESSAGEBOX_STYLE = 240u32; +pub const MB_ICONQUESTION: MESSAGEBOX_STYLE = 32u32; +pub const MB_ICONSTOP: MESSAGEBOX_STYLE = 16u32; +pub const MB_ICONWARNING: MESSAGEBOX_STYLE = 48u32; +pub const MB_MISCMASK: MESSAGEBOX_STYLE = 49152u32; +pub const MB_MODEMASK: MESSAGEBOX_STYLE = 12288u32; +pub const MB_NOFOCUS: MESSAGEBOX_STYLE = 32768u32; +pub const MB_OK: MESSAGEBOX_STYLE = 0u32; +pub const MB_OKCANCEL: MESSAGEBOX_STYLE = 1u32; +pub const MB_RETRYCANCEL: MESSAGEBOX_STYLE = 5u32; +pub const MB_RIGHT: MESSAGEBOX_STYLE = 524288u32; +pub const MB_RTLREADING: MESSAGEBOX_STYLE = 1048576u32; +pub const MB_SERVICE_NOTIFICATION: MESSAGEBOX_STYLE = 2097152u32; +pub const MB_SERVICE_NOTIFICATION_NT3X: MESSAGEBOX_STYLE = 262144u32; +pub const MB_SETFOREGROUND: MESSAGEBOX_STYLE = 65536u32; +pub const MB_SYSTEMMODAL: MESSAGEBOX_STYLE = 4096u32; +pub const MB_TASKMODAL: MESSAGEBOX_STYLE = 8192u32; +pub const MB_TOPMOST: MESSAGEBOX_STYLE = 262144u32; +pub const MB_TYPEMASK: MESSAGEBOX_STYLE = 15u32; +pub const MB_USERICON: MESSAGEBOX_STYLE = 128u32; +pub const MB_YESNO: MESSAGEBOX_STYLE = 4u32; +pub const MB_YESNOCANCEL: MESSAGEBOX_STYLE = 3u32; +pub const MDIS_ALLCHILDSTYLES: u32 = 1u32; +pub const MDITILE_HORIZONTAL: TILE_WINDOWS_HOW = 1u32; +pub const MDITILE_SKIPDISABLED: CASCADE_WINDOWS_HOW = 2u32; +pub const MDITILE_VERTICAL: TILE_WINDOWS_HOW = 0u32; +pub const MDITILE_ZORDER: CASCADE_WINDOWS_HOW = 4u32; +pub const METRICS_USEDEFAULT: i32 = -1i32; +pub const MFS_CHECKED: MENU_ITEM_STATE = 8u32; +pub const MFS_DEFAULT: MENU_ITEM_STATE = 4096u32; +pub const MFS_DISABLED: MENU_ITEM_STATE = 3u32; +pub const MFS_ENABLED: MENU_ITEM_STATE = 0u32; +pub const MFS_GRAYED: MENU_ITEM_STATE = 3u32; +pub const MFS_HILITE: MENU_ITEM_STATE = 128u32; +pub const MFS_UNCHECKED: MENU_ITEM_STATE = 0u32; +pub const MFS_UNHILITE: MENU_ITEM_STATE = 0u32; +pub const MFT_BITMAP: MENU_ITEM_TYPE = 4u32; +pub const MFT_MENUBARBREAK: MENU_ITEM_TYPE = 32u32; +pub const MFT_MENUBREAK: MENU_ITEM_TYPE = 64u32; +pub const MFT_OWNERDRAW: MENU_ITEM_TYPE = 256u32; +pub const MFT_RADIOCHECK: MENU_ITEM_TYPE = 512u32; +pub const MFT_RIGHTJUSTIFY: MENU_ITEM_TYPE = 16384u32; +pub const MFT_RIGHTORDER: MENU_ITEM_TYPE = 8192u32; +pub const MFT_SEPARATOR: MENU_ITEM_TYPE = 2048u32; +pub const MFT_STRING: MENU_ITEM_TYPE = 0u32; +pub const MF_APPEND: MENU_ITEM_FLAGS = 256u32; +pub const MF_BITMAP: MENU_ITEM_FLAGS = 4u32; +pub const MF_BYCOMMAND: MENU_ITEM_FLAGS = 0u32; +pub const MF_BYPOSITION: MENU_ITEM_FLAGS = 1024u32; +pub const MF_CHANGE: MENU_ITEM_FLAGS = 128u32; +pub const MF_CHECKED: MENU_ITEM_FLAGS = 8u32; +pub const MF_DEFAULT: MENU_ITEM_FLAGS = 4096u32; +pub const MF_DELETE: MENU_ITEM_FLAGS = 512u32; +pub const MF_DISABLED: MENU_ITEM_FLAGS = 2u32; +pub const MF_ENABLED: MENU_ITEM_FLAGS = 0u32; +pub const MF_END: MENU_ITEM_FLAGS = 128u32; +pub const MF_GRAYED: MENU_ITEM_FLAGS = 1u32; +pub const MF_HELP: MENU_ITEM_FLAGS = 16384u32; +pub const MF_HILITE: MENU_ITEM_FLAGS = 128u32; +pub const MF_INSERT: MENU_ITEM_FLAGS = 0u32; +pub const MF_MENUBARBREAK: MENU_ITEM_FLAGS = 32u32; +pub const MF_MENUBREAK: MENU_ITEM_FLAGS = 64u32; +pub const MF_MOUSESELECT: MENU_ITEM_FLAGS = 32768u32; +pub const MF_OWNERDRAW: MENU_ITEM_FLAGS = 256u32; +pub const MF_POPUP: MENU_ITEM_FLAGS = 16u32; +pub const MF_REMOVE: MENU_ITEM_FLAGS = 4096u32; +pub const MF_RIGHTJUSTIFY: MENU_ITEM_FLAGS = 16384u32; +pub const MF_SEPARATOR: MENU_ITEM_FLAGS = 2048u32; +pub const MF_STRING: MENU_ITEM_FLAGS = 0u32; +pub const MF_SYSMENU: MENU_ITEM_FLAGS = 8192u32; +pub const MF_UNCHECKED: MENU_ITEM_FLAGS = 0u32; +pub const MF_UNHILITE: MENU_ITEM_FLAGS = 0u32; +pub const MF_USECHECKBITMAPS: MENU_ITEM_FLAGS = 512u32; +pub const MIIM_BITMAP: MENU_ITEM_MASK = 128u32; +pub const MIIM_CHECKMARKS: MENU_ITEM_MASK = 8u32; +pub const MIIM_DATA: MENU_ITEM_MASK = 32u32; +pub const MIIM_FTYPE: MENU_ITEM_MASK = 256u32; +pub const MIIM_ID: MENU_ITEM_MASK = 2u32; +pub const MIIM_STATE: MENU_ITEM_MASK = 1u32; +pub const MIIM_STRING: MENU_ITEM_MASK = 64u32; +pub const MIIM_SUBMENU: MENU_ITEM_MASK = 4u32; +pub const MIIM_TYPE: MENU_ITEM_MASK = 16u32; +pub const MIM_APPLYTOSUBMENUS: MENUINFO_MASK = 2147483648u32; +pub const MIM_BACKGROUND: MENUINFO_MASK = 2u32; +pub const MIM_HELPID: MENUINFO_MASK = 4u32; +pub const MIM_MAXHEIGHT: MENUINFO_MASK = 1u32; +pub const MIM_MENUDATA: MENUINFO_MASK = 8u32; +pub const MIM_STYLE: MENUINFO_MASK = 16u32; +pub const MINIMUM_RESERVED_MANIFEST_RESOURCE_ID: u32 = 1u32; +pub const MIN_LOGICALDPIOVERRIDE: i32 = -2i32; +pub const MKF_AVAILABLE: u32 = 2u32; +pub const MKF_CONFIRMHOTKEY: u32 = 8u32; +pub const MKF_HOTKEYACTIVE: u32 = 4u32; +pub const MKF_HOTKEYSOUND: u32 = 16u32; +pub const MKF_INDICATOR: u32 = 32u32; +pub const MKF_LEFTBUTTONDOWN: u32 = 16777216u32; +pub const MKF_LEFTBUTTONSEL: u32 = 268435456u32; +pub const MKF_MODIFIERS: u32 = 64u32; +pub const MKF_MOUSEKEYSON: u32 = 1u32; +pub const MKF_MOUSEMODE: u32 = 2147483648u32; +pub const MKF_REPLACENUMBERS: u32 = 128u32; +pub const MKF_RIGHTBUTTONDOWN: u32 = 33554432u32; +pub const MKF_RIGHTBUTTONSEL: u32 = 536870912u32; +pub const MNC_CLOSE: u32 = 1u32; +pub const MNC_EXECUTE: u32 = 2u32; +pub const MNC_IGNORE: u32 = 0u32; +pub const MNC_SELECT: u32 = 3u32; +pub const MND_CONTINUE: u32 = 0u32; +pub const MND_ENDMENU: u32 = 1u32; +pub const MNGOF_BOTTOMGAP: MENUGETOBJECTINFO_FLAGS = 2u32; +pub const MNGOF_TOPGAP: MENUGETOBJECTINFO_FLAGS = 1u32; +pub const MNGO_NOERROR: u32 = 1u32; +pub const MNGO_NOINTERFACE: u32 = 0u32; +pub const MNS_AUTODISMISS: MENUINFO_STYLE = 268435456u32; +pub const MNS_CHECKORBMP: MENUINFO_STYLE = 67108864u32; +pub const MNS_DRAGDROP: MENUINFO_STYLE = 536870912u32; +pub const MNS_MODELESS: MENUINFO_STYLE = 1073741824u32; +pub const MNS_NOCHECK: MENUINFO_STYLE = 2147483648u32; +pub const MNS_NOTIFYBYPOS: MENUINFO_STYLE = 134217728u32; +pub const MN_GETHMENU: u32 = 481u32; +pub const MONITORINFOF_PRIMARY: u32 = 1u32; +pub const MOUSEWHEEL_ROUTING_FOCUS: u32 = 0u32; +pub const MOUSEWHEEL_ROUTING_HYBRID: u32 = 1u32; +pub const MOUSEWHEEL_ROUTING_MOUSE_POS: u32 = 2u32; +pub const MSGFLTINFO_ALLOWED_HIGHER: MSGFLTINFO_STATUS = 3u32; +pub const MSGFLTINFO_ALREADYALLOWED_FORWND: MSGFLTINFO_STATUS = 1u32; +pub const MSGFLTINFO_ALREADYDISALLOWED_FORWND: MSGFLTINFO_STATUS = 2u32; +pub const MSGFLTINFO_NONE: MSGFLTINFO_STATUS = 0u32; +pub const MSGFLT_ADD: CHANGE_WINDOW_MESSAGE_FILTER_FLAGS = 1u32; +pub const MSGFLT_ALLOW: WINDOW_MESSAGE_FILTER_ACTION = 1u32; +pub const MSGFLT_DISALLOW: WINDOW_MESSAGE_FILTER_ACTION = 2u32; +pub const MSGFLT_REMOVE: CHANGE_WINDOW_MESSAGE_FILTER_FLAGS = 2u32; +pub const MSGFLT_RESET: WINDOW_MESSAGE_FILTER_ACTION = 0u32; +pub const MSGF_DIALOGBOX: u32 = 0u32; +pub const MSGF_MAX: u32 = 8u32; +pub const MSGF_MENU: u32 = 2u32; +pub const MSGF_MESSAGEBOX: u32 = 1u32; +pub const MSGF_NEXTWINDOW: u32 = 6u32; +pub const MSGF_SCROLLBAR: u32 = 5u32; +pub const MSGF_USER: u32 = 4096u32; +pub const MWMO_ALERTABLE: MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS = 2u32; +pub const MWMO_INPUTAVAILABLE: MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS = 4u32; +pub const MWMO_NONE: MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS = 0u32; +pub const MWMO_WAITALL: MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS = 1u32; +pub const MrmDumpType_Basic: MrmDumpType = 0i32; +pub const MrmDumpType_Detailed: MrmDumpType = 1i32; +pub const MrmDumpType_Schema: MrmDumpType = 2i32; +pub const MrmIndexerFlagsAutoMerge: MrmIndexerFlags = 1i32; +pub const MrmIndexerFlagsCreateContentChecksum: MrmIndexerFlags = 2i32; +pub const MrmIndexerFlagsNone: MrmIndexerFlags = 0i32; +pub const MrmPackagingModeAutoSplit: MrmPackagingMode = 1i32; +pub const MrmPackagingModeResourcePack: MrmPackagingMode = 2i32; +pub const MrmPackagingModeStandaloneFile: MrmPackagingMode = 0i32; +pub const MrmPackagingOptionsNone: MrmPackagingOptions = 0i32; +pub const MrmPackagingOptionsOmitSchemaFromResourcePacks: MrmPackagingOptions = 1i32; +pub const MrmPackagingOptionsSplitLanguageVariants: MrmPackagingOptions = 2i32; +pub const MrmPlatformVersion_Default: MrmPlatformVersion = 0i32; +pub const MrmPlatformVersion_Windows10_0_0_0: MrmPlatformVersion = 17432576i32; +pub const MrmPlatformVersion_Windows10_0_0_5: MrmPlatformVersion = 17432581i32; +pub const MrmResourceIndexerMessageSeverityError: MrmResourceIndexerMessageSeverity = 3i32; +pub const MrmResourceIndexerMessageSeverityInfo: MrmResourceIndexerMessageSeverity = 1i32; +pub const MrmResourceIndexerMessageSeverityVerbose: MrmResourceIndexerMessageSeverity = 0i32; +pub const MrmResourceIndexerMessageSeverityWarning: MrmResourceIndexerMessageSeverity = 2i32; +pub const NFR_ANSI: u32 = 1u32; +pub const NFR_UNICODE: u32 = 2u32; +pub const NF_QUERY: u32 = 3u32; +pub const NF_REQUERY: u32 = 4u32; +pub const NID_EXTERNAL_PEN: u32 = 8u32; +pub const NID_EXTERNAL_TOUCH: u32 = 2u32; +pub const NID_INTEGRATED_PEN: u32 = 4u32; +pub const NID_INTEGRATED_TOUCH: u32 = 1u32; +pub const NID_MULTI_INPUT: u32 = 64u32; +pub const NID_READY: u32 = 128u32; +pub const OBJID_ALERT: OBJECT_IDENTIFIER = -10i32; +pub const OBJID_CARET: OBJECT_IDENTIFIER = -8i32; +pub const OBJID_CLIENT: OBJECT_IDENTIFIER = -4i32; +pub const OBJID_CURSOR: OBJECT_IDENTIFIER = -9i32; +pub const OBJID_HSCROLL: OBJECT_IDENTIFIER = -6i32; +pub const OBJID_MENU: OBJECT_IDENTIFIER = -3i32; +pub const OBJID_NATIVEOM: OBJECT_IDENTIFIER = -16i32; +pub const OBJID_QUERYCLASSNAMEIDX: OBJECT_IDENTIFIER = -12i32; +pub const OBJID_SIZEGRIP: OBJECT_IDENTIFIER = -7i32; +pub const OBJID_SOUND: OBJECT_IDENTIFIER = -11i32; +pub const OBJID_SYSMENU: OBJECT_IDENTIFIER = -1i32; +pub const OBJID_TITLEBAR: OBJECT_IDENTIFIER = -2i32; +pub const OBJID_VSCROLL: OBJECT_IDENTIFIER = -5i32; +pub const OBJID_WINDOW: OBJECT_IDENTIFIER = 0i32; +pub const OBM_BTNCORNERS: u32 = 32758u32; +pub const OBM_BTSIZE: u32 = 32761u32; +pub const OBM_CHECK: u32 = 32760u32; +pub const OBM_CHECKBOXES: u32 = 32759u32; +pub const OBM_CLOSE: u32 = 32754u32; +pub const OBM_COMBO: u32 = 32738u32; +pub const OBM_DNARROW: u32 = 32752u32; +pub const OBM_DNARROWD: u32 = 32742u32; +pub const OBM_DNARROWI: u32 = 32736u32; +pub const OBM_LFARROW: u32 = 32750u32; +pub const OBM_LFARROWD: u32 = 32740u32; +pub const OBM_LFARROWI: u32 = 32734u32; +pub const OBM_MNARROW: u32 = 32739u32; +pub const OBM_OLD_CLOSE: u32 = 32767u32; +pub const OBM_OLD_DNARROW: u32 = 32764u32; +pub const OBM_OLD_LFARROW: u32 = 32762u32; +pub const OBM_OLD_REDUCE: u32 = 32757u32; +pub const OBM_OLD_RESTORE: u32 = 32755u32; +pub const OBM_OLD_RGARROW: u32 = 32763u32; +pub const OBM_OLD_UPARROW: u32 = 32765u32; +pub const OBM_OLD_ZOOM: u32 = 32756u32; +pub const OBM_REDUCE: u32 = 32749u32; +pub const OBM_REDUCED: u32 = 32746u32; +pub const OBM_RESTORE: u32 = 32747u32; +pub const OBM_RESTORED: u32 = 32744u32; +pub const OBM_RGARROW: u32 = 32751u32; +pub const OBM_RGARROWD: u32 = 32741u32; +pub const OBM_RGARROWI: u32 = 32735u32; +pub const OBM_SIZE: u32 = 32766u32; +pub const OBM_UPARROW: u32 = 32753u32; +pub const OBM_UPARROWD: u32 = 32743u32; +pub const OBM_UPARROWI: u32 = 32737u32; +pub const OBM_ZOOM: u32 = 32748u32; +pub const OBM_ZOOMD: u32 = 32745u32; +pub const OCR_APPSTARTING: SYSTEM_CURSOR_ID = 32650u32; +pub const OCR_CROSS: SYSTEM_CURSOR_ID = 32515u32; +pub const OCR_HAND: SYSTEM_CURSOR_ID = 32649u32; +pub const OCR_HELP: SYSTEM_CURSOR_ID = 32651u32; +pub const OCR_IBEAM: SYSTEM_CURSOR_ID = 32513u32; +pub const OCR_ICOCUR: u32 = 32647u32; +pub const OCR_ICON: u32 = 32641u32; +pub const OCR_NO: SYSTEM_CURSOR_ID = 32648u32; +pub const OCR_NORMAL: SYSTEM_CURSOR_ID = 32512u32; +pub const OCR_SIZE: u32 = 32640u32; +pub const OCR_SIZEALL: SYSTEM_CURSOR_ID = 32646u32; +pub const OCR_SIZENESW: SYSTEM_CURSOR_ID = 32643u32; +pub const OCR_SIZENS: SYSTEM_CURSOR_ID = 32645u32; +pub const OCR_SIZENWSE: SYSTEM_CURSOR_ID = 32642u32; +pub const OCR_SIZEWE: SYSTEM_CURSOR_ID = 32644u32; +pub const OCR_UP: SYSTEM_CURSOR_ID = 32516u32; +pub const OCR_WAIT: SYSTEM_CURSOR_ID = 32514u32; +pub const OIC_BANG: u32 = 32515u32; +pub const OIC_ERROR: u32 = 32513u32; +pub const OIC_HAND: u32 = 32513u32; +pub const OIC_INFORMATION: u32 = 32516u32; +pub const OIC_NOTE: u32 = 32516u32; +pub const OIC_QUES: u32 = 32514u32; +pub const OIC_SAMPLE: u32 = 32512u32; +pub const OIC_SHIELD: u32 = 32518u32; +pub const OIC_WARNING: u32 = 32515u32; +pub const OIC_WINLOGO: u32 = 32517u32; +pub const ORD_LANGDRIVER: u32 = 1u32; +pub const PA_ACTIVATE: u32 = 1u32; +pub const PA_NOACTIVATE: u32 = 3u32; +pub const PBTF_APMRESUMEFROMFAILURE: u32 = 1u32; +pub const PBT_APMBATTERYLOW: u32 = 9u32; +pub const PBT_APMOEMEVENT: u32 = 11u32; +pub const PBT_APMPOWERSTATUSCHANGE: u32 = 10u32; +pub const PBT_APMQUERYSTANDBY: u32 = 1u32; +pub const PBT_APMQUERYSTANDBYFAILED: u32 = 3u32; +pub const PBT_APMQUERYSUSPEND: u32 = 0u32; +pub const PBT_APMQUERYSUSPENDFAILED: u32 = 2u32; +pub const PBT_APMRESUMEAUTOMATIC: u32 = 18u32; +pub const PBT_APMRESUMECRITICAL: u32 = 6u32; +pub const PBT_APMRESUMESTANDBY: u32 = 8u32; +pub const PBT_APMRESUMESUSPEND: u32 = 7u32; +pub const PBT_APMSTANDBY: u32 = 5u32; +pub const PBT_APMSUSPEND: u32 = 4u32; +pub const PBT_POWERSETTINGCHANGE: u32 = 32787u32; +pub const PDC_ARRIVAL: u32 = 1u32; +pub const PDC_MAPPING_CHANGE: u32 = 256u32; +pub const PDC_MODE_ASPECTRATIOPRESERVED: u32 = 2048u32; +pub const PDC_MODE_CENTERED: u32 = 128u32; +pub const PDC_MODE_DEFAULT: u32 = 64u32; +pub const PDC_ORIENTATION_0: u32 = 4u32; +pub const PDC_ORIENTATION_180: u32 = 16u32; +pub const PDC_ORIENTATION_270: u32 = 32u32; +pub const PDC_ORIENTATION_90: u32 = 8u32; +pub const PDC_ORIGIN: u32 = 1024u32; +pub const PDC_REMOVAL: u32 = 2u32; +pub const PDC_RESOLUTION: u32 = 512u32; +pub const PENARBITRATIONTYPE_FIS: u32 = 2u32; +pub const PENARBITRATIONTYPE_MAX: u32 = 4u32; +pub const PENARBITRATIONTYPE_NONE: u32 = 0u32; +pub const PENARBITRATIONTYPE_SPT: u32 = 3u32; +pub const PENARBITRATIONTYPE_WIN8: u32 = 1u32; +pub const PENVISUALIZATION_CURSOR: u32 = 32u32; +pub const PENVISUALIZATION_DOUBLETAP: u32 = 2u32; +pub const PENVISUALIZATION_OFF: u32 = 0u32; +pub const PENVISUALIZATION_ON: u32 = 35u32; +pub const PENVISUALIZATION_TAP: u32 = 1u32; +pub const PEN_FLAG_BARREL: u32 = 1u32; +pub const PEN_FLAG_ERASER: u32 = 4u32; +pub const PEN_FLAG_INVERTED: u32 = 2u32; +pub const PEN_FLAG_NONE: u32 = 0u32; +pub const PEN_MASK_NONE: u32 = 0u32; +pub const PEN_MASK_PRESSURE: u32 = 1u32; +pub const PEN_MASK_ROTATION: u32 = 2u32; +pub const PEN_MASK_TILT_X: u32 = 4u32; +pub const PEN_MASK_TILT_Y: u32 = 8u32; +pub const PMB_ACTIVE: u32 = 1u32; +pub const PM_NOREMOVE: PEEK_MESSAGE_REMOVE_TYPE = 0u32; +pub const PM_NOYIELD: PEEK_MESSAGE_REMOVE_TYPE = 2u32; +pub const PM_QS_INPUT: PEEK_MESSAGE_REMOVE_TYPE = 67567616u32; +pub const PM_QS_PAINT: PEEK_MESSAGE_REMOVE_TYPE = 2097152u32; +pub const PM_QS_POSTMESSAGE: PEEK_MESSAGE_REMOVE_TYPE = 9961472u32; +pub const PM_QS_SENDMESSAGE: PEEK_MESSAGE_REMOVE_TYPE = 4194304u32; +pub const PM_REMOVE: PEEK_MESSAGE_REMOVE_TYPE = 1u32; +pub const POINTER_DEVICE_PRODUCT_STRING_MAX: u32 = 520u32; +pub const POINTER_MESSAGE_FLAG_CANCELED: u32 = 32768u32; +pub const POINTER_MESSAGE_FLAG_CONFIDENCE: u32 = 16384u32; +pub const POINTER_MESSAGE_FLAG_FIFTHBUTTON: u32 = 256u32; +pub const POINTER_MESSAGE_FLAG_FIRSTBUTTON: u32 = 16u32; +pub const POINTER_MESSAGE_FLAG_FOURTHBUTTON: u32 = 128u32; +pub const POINTER_MESSAGE_FLAG_INCONTACT: u32 = 4u32; +pub const POINTER_MESSAGE_FLAG_INRANGE: u32 = 2u32; +pub const POINTER_MESSAGE_FLAG_NEW: u32 = 1u32; +pub const POINTER_MESSAGE_FLAG_PRIMARY: u32 = 8192u32; +pub const POINTER_MESSAGE_FLAG_SECONDBUTTON: u32 = 32u32; +pub const POINTER_MESSAGE_FLAG_THIRDBUTTON: u32 = 64u32; +pub const POINTER_MOD_CTRL: u32 = 8u32; +pub const POINTER_MOD_SHIFT: u32 = 4u32; +pub const PRF_CHECKVISIBLE: i32 = 1i32; +pub const PRF_CHILDREN: i32 = 16i32; +pub const PRF_CLIENT: i32 = 4i32; +pub const PRF_ERASEBKGND: i32 = 8i32; +pub const PRF_NONCLIENT: i32 = 2i32; +pub const PRF_OWNED: i32 = 32i32; +pub const PT_MOUSE: POINTER_INPUT_TYPE = 4i32; +pub const PT_PEN: POINTER_INPUT_TYPE = 3i32; +pub const PT_POINTER: POINTER_INPUT_TYPE = 1i32; +pub const PT_TOUCH: POINTER_INPUT_TYPE = 2i32; +pub const PT_TOUCHPAD: POINTER_INPUT_TYPE = 5i32; +pub const PWR_CRITICALRESUME: u32 = 3u32; +pub const PWR_FAIL: i32 = -1i32; +pub const PWR_OK: u32 = 1u32; +pub const PWR_SUSPENDREQUEST: u32 = 1u32; +pub const PWR_SUSPENDRESUME: u32 = 2u32; +pub const PW_RENDERFULLCONTENT: u32 = 2u32; +pub const QS_ALLEVENTS: QUEUE_STATUS_FLAGS = 1215u32; +pub const QS_ALLINPUT: QUEUE_STATUS_FLAGS = 1279u32; +pub const QS_ALLPOSTMESSAGE: QUEUE_STATUS_FLAGS = 256u32; +pub const QS_HOTKEY: QUEUE_STATUS_FLAGS = 128u32; +pub const QS_INPUT: QUEUE_STATUS_FLAGS = 1031u32; +pub const QS_KEY: QUEUE_STATUS_FLAGS = 1u32; +pub const QS_MOUSE: QUEUE_STATUS_FLAGS = 6u32; +pub const QS_MOUSEBUTTON: QUEUE_STATUS_FLAGS = 4u32; +pub const QS_MOUSEMOVE: QUEUE_STATUS_FLAGS = 2u32; +pub const QS_PAINT: QUEUE_STATUS_FLAGS = 32u32; +pub const QS_POINTER: u32 = 4096u32; +pub const QS_POSTMESSAGE: QUEUE_STATUS_FLAGS = 8u32; +pub const QS_RAWINPUT: QUEUE_STATUS_FLAGS = 1024u32; +pub const QS_SENDMESSAGE: QUEUE_STATUS_FLAGS = 64u32; +pub const QS_TIMER: QUEUE_STATUS_FLAGS = 16u32; +pub const QS_TOUCH: u32 = 2048u32; +pub const RES_CURSOR: u32 = 2u32; +pub const RES_ICON: u32 = 1u32; +pub const RIDEV_EXMODEMASK: u32 = 240u32; +pub const RIM_INPUT: u32 = 0u32; +pub const RIM_INPUTSINK: u32 = 1u32; +pub const RIM_TYPEMAX: u32 = 2u32; +pub const RI_KEY_BREAK: u32 = 1u32; +pub const RI_KEY_E0: u32 = 2u32; +pub const RI_KEY_E1: u32 = 4u32; +pub const RI_KEY_MAKE: u32 = 0u32; +pub const RI_KEY_TERMSRV_SET_LED: u32 = 8u32; +pub const RI_KEY_TERMSRV_SHADOW: u32 = 16u32; +pub const RI_MOUSE_BUTTON_1_DOWN: u32 = 1u32; +pub const RI_MOUSE_BUTTON_1_UP: u32 = 2u32; +pub const RI_MOUSE_BUTTON_2_DOWN: u32 = 4u32; +pub const RI_MOUSE_BUTTON_2_UP: u32 = 8u32; +pub const RI_MOUSE_BUTTON_3_DOWN: u32 = 16u32; +pub const RI_MOUSE_BUTTON_3_UP: u32 = 32u32; +pub const RI_MOUSE_BUTTON_4_DOWN: u32 = 64u32; +pub const RI_MOUSE_BUTTON_4_UP: u32 = 128u32; +pub const RI_MOUSE_BUTTON_5_DOWN: u32 = 256u32; +pub const RI_MOUSE_BUTTON_5_UP: u32 = 512u32; +pub const RI_MOUSE_HWHEEL: u32 = 2048u32; +pub const RI_MOUSE_LEFT_BUTTON_DOWN: u32 = 1u32; +pub const RI_MOUSE_LEFT_BUTTON_UP: u32 = 2u32; +pub const RI_MOUSE_MIDDLE_BUTTON_DOWN: u32 = 16u32; +pub const RI_MOUSE_MIDDLE_BUTTON_UP: u32 = 32u32; +pub const RI_MOUSE_RIGHT_BUTTON_DOWN: u32 = 4u32; +pub const RI_MOUSE_RIGHT_BUTTON_UP: u32 = 8u32; +pub const RI_MOUSE_WHEEL: u32 = 1024u32; +pub const RT_ACCELERATOR: ::windows_sys::core::PCWSTR = 9u16 as _; +pub const RT_ANICURSOR: ::windows_sys::core::PCWSTR = 21u16 as _; +pub const RT_ANIICON: ::windows_sys::core::PCWSTR = 22u16 as _; +pub const RT_BITMAP: ::windows_sys::core::PCWSTR = 2u16 as _; +pub const RT_CURSOR: ::windows_sys::core::PCWSTR = 1u16 as _; +pub const RT_DIALOG: ::windows_sys::core::PCWSTR = 5u16 as _; +pub const RT_DLGINCLUDE: ::windows_sys::core::PCWSTR = 17u16 as _; +pub const RT_FONT: ::windows_sys::core::PCWSTR = 8u16 as _; +pub const RT_FONTDIR: ::windows_sys::core::PCWSTR = 7u16 as _; +pub const RT_HTML: ::windows_sys::core::PCWSTR = 23u16 as _; +pub const RT_ICON: ::windows_sys::core::PCWSTR = 3u16 as _; +pub const RT_MANIFEST: u32 = 24u32; +pub const RT_MENU: ::windows_sys::core::PCWSTR = 4u16 as _; +pub const RT_MESSAGETABLE: ::windows_sys::core::PCWSTR = 11u16 as _; +pub const RT_PLUGPLAY: ::windows_sys::core::PCWSTR = 19u16 as _; +pub const RT_VERSION: ::windows_sys::core::PCWSTR = 16u16 as _; +pub const RT_VXD: ::windows_sys::core::PCWSTR = 20u16 as _; +pub const SBM_ENABLE_ARROWS: u32 = 228u32; +pub const SBM_GETPOS: u32 = 225u32; +pub const SBM_GETRANGE: u32 = 227u32; +pub const SBM_GETSCROLLBARINFO: u32 = 235u32; +pub const SBM_GETSCROLLINFO: u32 = 234u32; +pub const SBM_SETPOS: u32 = 224u32; +pub const SBM_SETRANGE: u32 = 226u32; +pub const SBM_SETRANGEREDRAW: u32 = 230u32; +pub const SBM_SETSCROLLINFO: u32 = 233u32; +pub const SBS_BOTTOMALIGN: i32 = 4i32; +pub const SBS_HORZ: i32 = 0i32; +pub const SBS_LEFTALIGN: i32 = 2i32; +pub const SBS_RIGHTALIGN: i32 = 4i32; +pub const SBS_SIZEBOX: i32 = 8i32; +pub const SBS_SIZEBOXBOTTOMRIGHTALIGN: i32 = 4i32; +pub const SBS_SIZEBOXTOPLEFTALIGN: i32 = 2i32; +pub const SBS_SIZEGRIP: i32 = 16i32; +pub const SBS_TOPALIGN: i32 = 2i32; +pub const SBS_VERT: i32 = 1i32; +pub const SB_BOTH: SCROLLBAR_CONSTANTS = 3i32; +pub const SB_BOTTOM: SCROLLBAR_COMMAND = 7i32; +pub const SB_CTL: SCROLLBAR_CONSTANTS = 2i32; +pub const SB_ENDSCROLL: SCROLLBAR_COMMAND = 8i32; +pub const SB_HORZ: SCROLLBAR_CONSTANTS = 0i32; +pub const SB_LEFT: SCROLLBAR_COMMAND = 6i32; +pub const SB_LINEDOWN: SCROLLBAR_COMMAND = 1i32; +pub const SB_LINELEFT: SCROLLBAR_COMMAND = 0i32; +pub const SB_LINERIGHT: SCROLLBAR_COMMAND = 1i32; +pub const SB_LINEUP: SCROLLBAR_COMMAND = 0i32; +pub const SB_PAGEDOWN: SCROLLBAR_COMMAND = 3i32; +pub const SB_PAGELEFT: SCROLLBAR_COMMAND = 2i32; +pub const SB_PAGERIGHT: SCROLLBAR_COMMAND = 3i32; +pub const SB_PAGEUP: SCROLLBAR_COMMAND = 2i32; +pub const SB_RIGHT: SCROLLBAR_COMMAND = 7i32; +pub const SB_THUMBPOSITION: SCROLLBAR_COMMAND = 4i32; +pub const SB_THUMBTRACK: SCROLLBAR_COMMAND = 5i32; +pub const SB_TOP: SCROLLBAR_COMMAND = 6i32; +pub const SB_VERT: SCROLLBAR_CONSTANTS = 1i32; +pub const SCF_ISSECURE: u32 = 1u32; +pub const SC_ARRANGE: u32 = 61712u32; +pub const SC_CLOSE: u32 = 61536u32; +pub const SC_CONTEXTHELP: u32 = 61824u32; +pub const SC_DEFAULT: u32 = 61792u32; +pub const SC_HOTKEY: u32 = 61776u32; +pub const SC_HSCROLL: u32 = 61568u32; +pub const SC_ICON: u32 = 61472u32; +pub const SC_KEYMENU: u32 = 61696u32; +pub const SC_MAXIMIZE: u32 = 61488u32; +pub const SC_MINIMIZE: u32 = 61472u32; +pub const SC_MONITORPOWER: u32 = 61808u32; +pub const SC_MOUSEMENU: u32 = 61584u32; +pub const SC_MOVE: u32 = 61456u32; +pub const SC_NEXTWINDOW: u32 = 61504u32; +pub const SC_PREVWINDOW: u32 = 61520u32; +pub const SC_RESTORE: u32 = 61728u32; +pub const SC_SEPARATOR: u32 = 61455u32; +pub const SC_SIZE: u32 = 61440u32; +pub const SC_TASKLIST: u32 = 61744u32; +pub const SC_VSCROLL: u32 = 61552u32; +pub const SC_ZOOM: u32 = 61488u32; +pub const SHOW_FULLSCREEN: u32 = 3u32; +pub const SHOW_ICONWINDOW: u32 = 2u32; +pub const SHOW_OPENNOACTIVATE: u32 = 4u32; +pub const SHOW_OPENWINDOW: u32 = 1u32; +pub const SIF_ALL: SCROLLINFO_MASK = 23u32; +pub const SIF_DISABLENOSCROLL: SCROLLINFO_MASK = 8u32; +pub const SIF_PAGE: SCROLLINFO_MASK = 2u32; +pub const SIF_POS: SCROLLINFO_MASK = 4u32; +pub const SIF_RANGE: SCROLLINFO_MASK = 1u32; +pub const SIF_TRACKPOS: SCROLLINFO_MASK = 16u32; +pub const SIZEFULLSCREEN: u32 = 2u32; +pub const SIZEICONIC: u32 = 1u32; +pub const SIZENORMAL: u32 = 0u32; +pub const SIZEZOOMHIDE: u32 = 4u32; +pub const SIZEZOOMSHOW: u32 = 3u32; +pub const SIZE_MAXHIDE: u32 = 4u32; +pub const SIZE_MAXIMIZED: u32 = 2u32; +pub const SIZE_MAXSHOW: u32 = 3u32; +pub const SIZE_MINIMIZED: u32 = 1u32; +pub const SIZE_RESTORED: u32 = 0u32; +pub const SMTO_ABORTIFHUNG: SEND_MESSAGE_TIMEOUT_FLAGS = 2u32; +pub const SMTO_BLOCK: SEND_MESSAGE_TIMEOUT_FLAGS = 1u32; +pub const SMTO_ERRORONEXIT: SEND_MESSAGE_TIMEOUT_FLAGS = 32u32; +pub const SMTO_NORMAL: SEND_MESSAGE_TIMEOUT_FLAGS = 0u32; +pub const SMTO_NOTIMEOUTIFNOTHUNG: SEND_MESSAGE_TIMEOUT_FLAGS = 8u32; +pub const SM_ARRANGE: SYSTEM_METRICS_INDEX = 56i32; +pub const SM_CARETBLINKINGENABLED: u32 = 8194u32; +pub const SM_CLEANBOOT: SYSTEM_METRICS_INDEX = 67i32; +pub const SM_CMETRICS: u32 = 76u32; +pub const SM_CMONITORS: SYSTEM_METRICS_INDEX = 80i32; +pub const SM_CMOUSEBUTTONS: SYSTEM_METRICS_INDEX = 43i32; +pub const SM_CONVERTIBLESLATEMODE: SYSTEM_METRICS_INDEX = 8195i32; +pub const SM_CXBORDER: SYSTEM_METRICS_INDEX = 5i32; +pub const SM_CXCURSOR: SYSTEM_METRICS_INDEX = 13i32; +pub const SM_CXDLGFRAME: SYSTEM_METRICS_INDEX = 7i32; +pub const SM_CXDOUBLECLK: SYSTEM_METRICS_INDEX = 36i32; +pub const SM_CXDRAG: SYSTEM_METRICS_INDEX = 68i32; +pub const SM_CXEDGE: SYSTEM_METRICS_INDEX = 45i32; +pub const SM_CXFIXEDFRAME: SYSTEM_METRICS_INDEX = 7i32; +pub const SM_CXFOCUSBORDER: SYSTEM_METRICS_INDEX = 83i32; +pub const SM_CXFRAME: SYSTEM_METRICS_INDEX = 32i32; +pub const SM_CXFULLSCREEN: SYSTEM_METRICS_INDEX = 16i32; +pub const SM_CXHSCROLL: SYSTEM_METRICS_INDEX = 21i32; +pub const SM_CXHTHUMB: SYSTEM_METRICS_INDEX = 10i32; +pub const SM_CXICON: SYSTEM_METRICS_INDEX = 11i32; +pub const SM_CXICONSPACING: SYSTEM_METRICS_INDEX = 38i32; +pub const SM_CXMAXIMIZED: SYSTEM_METRICS_INDEX = 61i32; +pub const SM_CXMAXTRACK: SYSTEM_METRICS_INDEX = 59i32; +pub const SM_CXMENUCHECK: SYSTEM_METRICS_INDEX = 71i32; +pub const SM_CXMENUSIZE: SYSTEM_METRICS_INDEX = 54i32; +pub const SM_CXMIN: SYSTEM_METRICS_INDEX = 28i32; +pub const SM_CXMINIMIZED: SYSTEM_METRICS_INDEX = 57i32; +pub const SM_CXMINSPACING: SYSTEM_METRICS_INDEX = 47i32; +pub const SM_CXMINTRACK: SYSTEM_METRICS_INDEX = 34i32; +pub const SM_CXPADDEDBORDER: SYSTEM_METRICS_INDEX = 92i32; +pub const SM_CXSCREEN: SYSTEM_METRICS_INDEX = 0i32; +pub const SM_CXSIZE: SYSTEM_METRICS_INDEX = 30i32; +pub const SM_CXSIZEFRAME: SYSTEM_METRICS_INDEX = 32i32; +pub const SM_CXSMICON: SYSTEM_METRICS_INDEX = 49i32; +pub const SM_CXSMSIZE: SYSTEM_METRICS_INDEX = 52i32; +pub const SM_CXVIRTUALSCREEN: SYSTEM_METRICS_INDEX = 78i32; +pub const SM_CXVSCROLL: SYSTEM_METRICS_INDEX = 2i32; +pub const SM_CYBORDER: SYSTEM_METRICS_INDEX = 6i32; +pub const SM_CYCAPTION: SYSTEM_METRICS_INDEX = 4i32; +pub const SM_CYCURSOR: SYSTEM_METRICS_INDEX = 14i32; +pub const SM_CYDLGFRAME: SYSTEM_METRICS_INDEX = 8i32; +pub const SM_CYDOUBLECLK: SYSTEM_METRICS_INDEX = 37i32; +pub const SM_CYDRAG: SYSTEM_METRICS_INDEX = 69i32; +pub const SM_CYEDGE: SYSTEM_METRICS_INDEX = 46i32; +pub const SM_CYFIXEDFRAME: SYSTEM_METRICS_INDEX = 8i32; +pub const SM_CYFOCUSBORDER: SYSTEM_METRICS_INDEX = 84i32; +pub const SM_CYFRAME: SYSTEM_METRICS_INDEX = 33i32; +pub const SM_CYFULLSCREEN: SYSTEM_METRICS_INDEX = 17i32; +pub const SM_CYHSCROLL: SYSTEM_METRICS_INDEX = 3i32; +pub const SM_CYICON: SYSTEM_METRICS_INDEX = 12i32; +pub const SM_CYICONSPACING: SYSTEM_METRICS_INDEX = 39i32; +pub const SM_CYKANJIWINDOW: SYSTEM_METRICS_INDEX = 18i32; +pub const SM_CYMAXIMIZED: SYSTEM_METRICS_INDEX = 62i32; +pub const SM_CYMAXTRACK: SYSTEM_METRICS_INDEX = 60i32; +pub const SM_CYMENU: SYSTEM_METRICS_INDEX = 15i32; +pub const SM_CYMENUCHECK: SYSTEM_METRICS_INDEX = 72i32; +pub const SM_CYMENUSIZE: SYSTEM_METRICS_INDEX = 55i32; +pub const SM_CYMIN: SYSTEM_METRICS_INDEX = 29i32; +pub const SM_CYMINIMIZED: SYSTEM_METRICS_INDEX = 58i32; +pub const SM_CYMINSPACING: SYSTEM_METRICS_INDEX = 48i32; +pub const SM_CYMINTRACK: SYSTEM_METRICS_INDEX = 35i32; +pub const SM_CYSCREEN: SYSTEM_METRICS_INDEX = 1i32; +pub const SM_CYSIZE: SYSTEM_METRICS_INDEX = 31i32; +pub const SM_CYSIZEFRAME: SYSTEM_METRICS_INDEX = 33i32; +pub const SM_CYSMCAPTION: SYSTEM_METRICS_INDEX = 51i32; +pub const SM_CYSMICON: SYSTEM_METRICS_INDEX = 50i32; +pub const SM_CYSMSIZE: SYSTEM_METRICS_INDEX = 53i32; +pub const SM_CYVIRTUALSCREEN: SYSTEM_METRICS_INDEX = 79i32; +pub const SM_CYVSCROLL: SYSTEM_METRICS_INDEX = 20i32; +pub const SM_CYVTHUMB: SYSTEM_METRICS_INDEX = 9i32; +pub const SM_DBCSENABLED: SYSTEM_METRICS_INDEX = 42i32; +pub const SM_DEBUG: SYSTEM_METRICS_INDEX = 22i32; +pub const SM_DIGITIZER: SYSTEM_METRICS_INDEX = 94i32; +pub const SM_IMMENABLED: SYSTEM_METRICS_INDEX = 82i32; +pub const SM_MAXIMUMTOUCHES: SYSTEM_METRICS_INDEX = 95i32; +pub const SM_MEDIACENTER: SYSTEM_METRICS_INDEX = 87i32; +pub const SM_MENUDROPALIGNMENT: SYSTEM_METRICS_INDEX = 40i32; +pub const SM_MIDEASTENABLED: SYSTEM_METRICS_INDEX = 74i32; +pub const SM_MOUSEHORIZONTALWHEELPRESENT: SYSTEM_METRICS_INDEX = 91i32; +pub const SM_MOUSEPRESENT: SYSTEM_METRICS_INDEX = 19i32; +pub const SM_MOUSEWHEELPRESENT: SYSTEM_METRICS_INDEX = 75i32; +pub const SM_NETWORK: SYSTEM_METRICS_INDEX = 63i32; +pub const SM_PENWINDOWS: SYSTEM_METRICS_INDEX = 41i32; +pub const SM_REMOTECONTROL: SYSTEM_METRICS_INDEX = 8193i32; +pub const SM_REMOTESESSION: SYSTEM_METRICS_INDEX = 4096i32; +pub const SM_RESERVED1: u32 = 24u32; +pub const SM_RESERVED2: u32 = 25u32; +pub const SM_RESERVED3: u32 = 26u32; +pub const SM_RESERVED4: u32 = 27u32; +pub const SM_SAMEDISPLAYFORMAT: SYSTEM_METRICS_INDEX = 81i32; +pub const SM_SECURE: SYSTEM_METRICS_INDEX = 44i32; +pub const SM_SERVERR2: SYSTEM_METRICS_INDEX = 89i32; +pub const SM_SHOWSOUNDS: SYSTEM_METRICS_INDEX = 70i32; +pub const SM_SHUTTINGDOWN: SYSTEM_METRICS_INDEX = 8192i32; +pub const SM_SLOWMACHINE: SYSTEM_METRICS_INDEX = 73i32; +pub const SM_STARTER: SYSTEM_METRICS_INDEX = 88i32; +pub const SM_SWAPBUTTON: SYSTEM_METRICS_INDEX = 23i32; +pub const SM_SYSTEMDOCKED: SYSTEM_METRICS_INDEX = 8196i32; +pub const SM_TABLETPC: SYSTEM_METRICS_INDEX = 86i32; +pub const SM_XVIRTUALSCREEN: SYSTEM_METRICS_INDEX = 76i32; +pub const SM_YVIRTUALSCREEN: SYSTEM_METRICS_INDEX = 77i32; +pub const SOUND_SYSTEM_APPEND: u32 = 14u32; +pub const SOUND_SYSTEM_APPSTART: u32 = 12u32; +pub const SOUND_SYSTEM_BEEP: u32 = 3u32; +pub const SOUND_SYSTEM_ERROR: u32 = 4u32; +pub const SOUND_SYSTEM_FAULT: u32 = 13u32; +pub const SOUND_SYSTEM_INFORMATION: u32 = 7u32; +pub const SOUND_SYSTEM_MAXIMIZE: u32 = 8u32; +pub const SOUND_SYSTEM_MENUCOMMAND: u32 = 15u32; +pub const SOUND_SYSTEM_MENUPOPUP: u32 = 16u32; +pub const SOUND_SYSTEM_MINIMIZE: u32 = 9u32; +pub const SOUND_SYSTEM_QUESTION: u32 = 5u32; +pub const SOUND_SYSTEM_RESTOREDOWN: u32 = 11u32; +pub const SOUND_SYSTEM_RESTOREUP: u32 = 10u32; +pub const SOUND_SYSTEM_SHUTDOWN: u32 = 2u32; +pub const SOUND_SYSTEM_STARTUP: u32 = 1u32; +pub const SOUND_SYSTEM_WARNING: u32 = 6u32; +pub const SPIF_SENDCHANGE: SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS = 2u32; +pub const SPIF_SENDWININICHANGE: SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS = 2u32; +pub const SPIF_UPDATEINIFILE: SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS = 1u32; +pub const SPI_GETACCESSTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 60u32; +pub const SPI_GETACTIVEWINDOWTRACKING: SYSTEM_PARAMETERS_INFO_ACTION = 4096u32; +pub const SPI_GETACTIVEWNDTRKTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 8194u32; +pub const SPI_GETACTIVEWNDTRKZORDER: SYSTEM_PARAMETERS_INFO_ACTION = 4108u32; +pub const SPI_GETANIMATION: SYSTEM_PARAMETERS_INFO_ACTION = 72u32; +pub const SPI_GETAUDIODESCRIPTION: SYSTEM_PARAMETERS_INFO_ACTION = 116u32; +pub const SPI_GETBEEP: SYSTEM_PARAMETERS_INFO_ACTION = 1u32; +pub const SPI_GETBLOCKSENDINPUTRESETS: SYSTEM_PARAMETERS_INFO_ACTION = 4134u32; +pub const SPI_GETBORDER: SYSTEM_PARAMETERS_INFO_ACTION = 5u32; +pub const SPI_GETCARETBROWSING: SYSTEM_PARAMETERS_INFO_ACTION = 4172u32; +pub const SPI_GETCARETTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 8226u32; +pub const SPI_GETCARETWIDTH: SYSTEM_PARAMETERS_INFO_ACTION = 8198u32; +pub const SPI_GETCLEARTYPE: SYSTEM_PARAMETERS_INFO_ACTION = 4168u32; +pub const SPI_GETCLIENTAREAANIMATION: SYSTEM_PARAMETERS_INFO_ACTION = 4162u32; +pub const SPI_GETCOMBOBOXANIMATION: SYSTEM_PARAMETERS_INFO_ACTION = 4100u32; +pub const SPI_GETCONTACTVISUALIZATION: SYSTEM_PARAMETERS_INFO_ACTION = 8216u32; +pub const SPI_GETCURSORSHADOW: SYSTEM_PARAMETERS_INFO_ACTION = 4122u32; +pub const SPI_GETDEFAULTINPUTLANG: SYSTEM_PARAMETERS_INFO_ACTION = 89u32; +pub const SPI_GETDESKWALLPAPER: SYSTEM_PARAMETERS_INFO_ACTION = 115u32; +pub const SPI_GETDISABLEOVERLAPPEDCONTENT: SYSTEM_PARAMETERS_INFO_ACTION = 4160u32; +pub const SPI_GETDOCKMOVING: SYSTEM_PARAMETERS_INFO_ACTION = 144u32; +pub const SPI_GETDRAGFROMMAXIMIZE: SYSTEM_PARAMETERS_INFO_ACTION = 140u32; +pub const SPI_GETDRAGFULLWINDOWS: SYSTEM_PARAMETERS_INFO_ACTION = 38u32; +pub const SPI_GETDROPSHADOW: SYSTEM_PARAMETERS_INFO_ACTION = 4132u32; +pub const SPI_GETFASTTASKSWITCH: SYSTEM_PARAMETERS_INFO_ACTION = 35u32; +pub const SPI_GETFILTERKEYS: SYSTEM_PARAMETERS_INFO_ACTION = 50u32; +pub const SPI_GETFLATMENU: SYSTEM_PARAMETERS_INFO_ACTION = 4130u32; +pub const SPI_GETFOCUSBORDERHEIGHT: SYSTEM_PARAMETERS_INFO_ACTION = 8208u32; +pub const SPI_GETFOCUSBORDERWIDTH: SYSTEM_PARAMETERS_INFO_ACTION = 8206u32; +pub const SPI_GETFONTSMOOTHING: SYSTEM_PARAMETERS_INFO_ACTION = 74u32; +pub const SPI_GETFONTSMOOTHINGCONTRAST: SYSTEM_PARAMETERS_INFO_ACTION = 8204u32; +pub const SPI_GETFONTSMOOTHINGORIENTATION: SYSTEM_PARAMETERS_INFO_ACTION = 8210u32; +pub const SPI_GETFONTSMOOTHINGTYPE: SYSTEM_PARAMETERS_INFO_ACTION = 8202u32; +pub const SPI_GETFOREGROUNDFLASHCOUNT: SYSTEM_PARAMETERS_INFO_ACTION = 8196u32; +pub const SPI_GETFOREGROUNDLOCKTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 8192u32; +pub const SPI_GETGESTUREVISUALIZATION: SYSTEM_PARAMETERS_INFO_ACTION = 8218u32; +pub const SPI_GETGRADIENTCAPTIONS: SYSTEM_PARAMETERS_INFO_ACTION = 4104u32; +pub const SPI_GETGRIDGRANULARITY: SYSTEM_PARAMETERS_INFO_ACTION = 18u32; +pub const SPI_GETHANDEDNESS: SYSTEM_PARAMETERS_INFO_ACTION = 8228u32; +pub const SPI_GETHIGHCONTRAST: SYSTEM_PARAMETERS_INFO_ACTION = 66u32; +pub const SPI_GETHOTTRACKING: SYSTEM_PARAMETERS_INFO_ACTION = 4110u32; +pub const SPI_GETHUNGAPPTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 120u32; +pub const SPI_GETICONMETRICS: SYSTEM_PARAMETERS_INFO_ACTION = 45u32; +pub const SPI_GETICONTITLELOGFONT: SYSTEM_PARAMETERS_INFO_ACTION = 31u32; +pub const SPI_GETICONTITLEWRAP: SYSTEM_PARAMETERS_INFO_ACTION = 25u32; +pub const SPI_GETKEYBOARDCUES: SYSTEM_PARAMETERS_INFO_ACTION = 4106u32; +pub const SPI_GETKEYBOARDDELAY: SYSTEM_PARAMETERS_INFO_ACTION = 22u32; +pub const SPI_GETKEYBOARDPREF: SYSTEM_PARAMETERS_INFO_ACTION = 68u32; +pub const SPI_GETKEYBOARDSPEED: SYSTEM_PARAMETERS_INFO_ACTION = 10u32; +pub const SPI_GETLISTBOXSMOOTHSCROLLING: SYSTEM_PARAMETERS_INFO_ACTION = 4102u32; +pub const SPI_GETLOGICALDPIOVERRIDE: SYSTEM_PARAMETERS_INFO_ACTION = 158u32; +pub const SPI_GETLOWPOWERACTIVE: SYSTEM_PARAMETERS_INFO_ACTION = 83u32; +pub const SPI_GETLOWPOWERTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 79u32; +pub const SPI_GETMENUANIMATION: SYSTEM_PARAMETERS_INFO_ACTION = 4098u32; +pub const SPI_GETMENUDROPALIGNMENT: SYSTEM_PARAMETERS_INFO_ACTION = 27u32; +pub const SPI_GETMENUFADE: SYSTEM_PARAMETERS_INFO_ACTION = 4114u32; +pub const SPI_GETMENURECT: SYSTEM_PARAMETERS_INFO_ACTION = 162u32; +pub const SPI_GETMENUSHOWDELAY: SYSTEM_PARAMETERS_INFO_ACTION = 106u32; +pub const SPI_GETMENUUNDERLINES: SYSTEM_PARAMETERS_INFO_ACTION = 4106u32; +pub const SPI_GETMESSAGEDURATION: SYSTEM_PARAMETERS_INFO_ACTION = 8214u32; +pub const SPI_GETMINIMIZEDMETRICS: SYSTEM_PARAMETERS_INFO_ACTION = 43u32; +pub const SPI_GETMINIMUMHITRADIUS: SYSTEM_PARAMETERS_INFO_ACTION = 8212u32; +pub const SPI_GETMOUSE: SYSTEM_PARAMETERS_INFO_ACTION = 3u32; +pub const SPI_GETMOUSECLICKLOCK: SYSTEM_PARAMETERS_INFO_ACTION = 4126u32; +pub const SPI_GETMOUSECLICKLOCKTIME: SYSTEM_PARAMETERS_INFO_ACTION = 8200u32; +pub const SPI_GETMOUSEDOCKTHRESHOLD: SYSTEM_PARAMETERS_INFO_ACTION = 126u32; +pub const SPI_GETMOUSEDRAGOUTTHRESHOLD: SYSTEM_PARAMETERS_INFO_ACTION = 132u32; +pub const SPI_GETMOUSEHOVERHEIGHT: SYSTEM_PARAMETERS_INFO_ACTION = 100u32; +pub const SPI_GETMOUSEHOVERTIME: SYSTEM_PARAMETERS_INFO_ACTION = 102u32; +pub const SPI_GETMOUSEHOVERWIDTH: SYSTEM_PARAMETERS_INFO_ACTION = 98u32; +pub const SPI_GETMOUSEKEYS: SYSTEM_PARAMETERS_INFO_ACTION = 54u32; +pub const SPI_GETMOUSESIDEMOVETHRESHOLD: SYSTEM_PARAMETERS_INFO_ACTION = 136u32; +pub const SPI_GETMOUSESONAR: SYSTEM_PARAMETERS_INFO_ACTION = 4124u32; +pub const SPI_GETMOUSESPEED: SYSTEM_PARAMETERS_INFO_ACTION = 112u32; +pub const SPI_GETMOUSETRAILS: SYSTEM_PARAMETERS_INFO_ACTION = 94u32; +pub const SPI_GETMOUSEVANISH: SYSTEM_PARAMETERS_INFO_ACTION = 4128u32; +pub const SPI_GETMOUSEWHEELROUTING: SYSTEM_PARAMETERS_INFO_ACTION = 8220u32; +pub const SPI_GETNONCLIENTMETRICS: SYSTEM_PARAMETERS_INFO_ACTION = 41u32; +pub const SPI_GETPENARBITRATIONTYPE: SYSTEM_PARAMETERS_INFO_ACTION = 8224u32; +pub const SPI_GETPENDOCKTHRESHOLD: SYSTEM_PARAMETERS_INFO_ACTION = 128u32; +pub const SPI_GETPENDRAGOUTTHRESHOLD: SYSTEM_PARAMETERS_INFO_ACTION = 134u32; +pub const SPI_GETPENSIDEMOVETHRESHOLD: SYSTEM_PARAMETERS_INFO_ACTION = 138u32; +pub const SPI_GETPENVISUALIZATION: SYSTEM_PARAMETERS_INFO_ACTION = 8222u32; +pub const SPI_GETPOWEROFFACTIVE: SYSTEM_PARAMETERS_INFO_ACTION = 84u32; +pub const SPI_GETPOWEROFFTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 80u32; +pub const SPI_GETSCREENREADER: SYSTEM_PARAMETERS_INFO_ACTION = 70u32; +pub const SPI_GETSCREENSAVEACTIVE: SYSTEM_PARAMETERS_INFO_ACTION = 16u32; +pub const SPI_GETSCREENSAVERRUNNING: SYSTEM_PARAMETERS_INFO_ACTION = 114u32; +pub const SPI_GETSCREENSAVESECURE: SYSTEM_PARAMETERS_INFO_ACTION = 118u32; +pub const SPI_GETSCREENSAVETIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 14u32; +pub const SPI_GETSELECTIONFADE: SYSTEM_PARAMETERS_INFO_ACTION = 4116u32; +pub const SPI_GETSERIALKEYS: SYSTEM_PARAMETERS_INFO_ACTION = 62u32; +pub const SPI_GETSHOWIMEUI: SYSTEM_PARAMETERS_INFO_ACTION = 110u32; +pub const SPI_GETSHOWSOUNDS: SYSTEM_PARAMETERS_INFO_ACTION = 56u32; +pub const SPI_GETSNAPSIZING: SYSTEM_PARAMETERS_INFO_ACTION = 142u32; +pub const SPI_GETSNAPTODEFBUTTON: SYSTEM_PARAMETERS_INFO_ACTION = 95u32; +pub const SPI_GETSOUNDSENTRY: SYSTEM_PARAMETERS_INFO_ACTION = 64u32; +pub const SPI_GETSPEECHRECOGNITION: SYSTEM_PARAMETERS_INFO_ACTION = 4170u32; +pub const SPI_GETSTICKYKEYS: SYSTEM_PARAMETERS_INFO_ACTION = 58u32; +pub const SPI_GETSYSTEMLANGUAGEBAR: SYSTEM_PARAMETERS_INFO_ACTION = 4176u32; +pub const SPI_GETTHREADLOCALINPUTSETTINGS: SYSTEM_PARAMETERS_INFO_ACTION = 4174u32; +pub const SPI_GETTOGGLEKEYS: SYSTEM_PARAMETERS_INFO_ACTION = 52u32; +pub const SPI_GETTOOLTIPANIMATION: SYSTEM_PARAMETERS_INFO_ACTION = 4118u32; +pub const SPI_GETTOOLTIPFADE: SYSTEM_PARAMETERS_INFO_ACTION = 4120u32; +pub const SPI_GETTOUCHPREDICTIONPARAMETERS: SYSTEM_PARAMETERS_INFO_ACTION = 156u32; +pub const SPI_GETUIEFFECTS: SYSTEM_PARAMETERS_INFO_ACTION = 4158u32; +pub const SPI_GETWAITTOKILLSERVICETIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 124u32; +pub const SPI_GETWAITTOKILLTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 122u32; +pub const SPI_GETWHEELSCROLLCHARS: SYSTEM_PARAMETERS_INFO_ACTION = 108u32; +pub const SPI_GETWHEELSCROLLLINES: SYSTEM_PARAMETERS_INFO_ACTION = 104u32; +pub const SPI_GETWINARRANGING: SYSTEM_PARAMETERS_INFO_ACTION = 130u32; +pub const SPI_GETWINDOWSEXTENSION: SYSTEM_PARAMETERS_INFO_ACTION = 92u32; +pub const SPI_GETWORKAREA: SYSTEM_PARAMETERS_INFO_ACTION = 48u32; +pub const SPI_ICONHORIZONTALSPACING: SYSTEM_PARAMETERS_INFO_ACTION = 13u32; +pub const SPI_ICONVERTICALSPACING: SYSTEM_PARAMETERS_INFO_ACTION = 24u32; +pub const SPI_LANGDRIVER: SYSTEM_PARAMETERS_INFO_ACTION = 12u32; +pub const SPI_SCREENSAVERRUNNING: SYSTEM_PARAMETERS_INFO_ACTION = 97u32; +pub const SPI_SETACCESSTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 61u32; +pub const SPI_SETACTIVEWINDOWTRACKING: SYSTEM_PARAMETERS_INFO_ACTION = 4097u32; +pub const SPI_SETACTIVEWNDTRKTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 8195u32; +pub const SPI_SETACTIVEWNDTRKZORDER: SYSTEM_PARAMETERS_INFO_ACTION = 4109u32; +pub const SPI_SETANIMATION: SYSTEM_PARAMETERS_INFO_ACTION = 73u32; +pub const SPI_SETAUDIODESCRIPTION: SYSTEM_PARAMETERS_INFO_ACTION = 117u32; +pub const SPI_SETBEEP: SYSTEM_PARAMETERS_INFO_ACTION = 2u32; +pub const SPI_SETBLOCKSENDINPUTRESETS: SYSTEM_PARAMETERS_INFO_ACTION = 4135u32; +pub const SPI_SETBORDER: SYSTEM_PARAMETERS_INFO_ACTION = 6u32; +pub const SPI_SETCARETBROWSING: SYSTEM_PARAMETERS_INFO_ACTION = 4173u32; +pub const SPI_SETCARETTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 8227u32; +pub const SPI_SETCARETWIDTH: SYSTEM_PARAMETERS_INFO_ACTION = 8199u32; +pub const SPI_SETCLEARTYPE: SYSTEM_PARAMETERS_INFO_ACTION = 4169u32; +pub const SPI_SETCLIENTAREAANIMATION: SYSTEM_PARAMETERS_INFO_ACTION = 4163u32; +pub const SPI_SETCOMBOBOXANIMATION: SYSTEM_PARAMETERS_INFO_ACTION = 4101u32; +pub const SPI_SETCONTACTVISUALIZATION: SYSTEM_PARAMETERS_INFO_ACTION = 8217u32; +pub const SPI_SETCURSORS: SYSTEM_PARAMETERS_INFO_ACTION = 87u32; +pub const SPI_SETCURSORSHADOW: SYSTEM_PARAMETERS_INFO_ACTION = 4123u32; +pub const SPI_SETDEFAULTINPUTLANG: SYSTEM_PARAMETERS_INFO_ACTION = 90u32; +pub const SPI_SETDESKPATTERN: SYSTEM_PARAMETERS_INFO_ACTION = 21u32; +pub const SPI_SETDESKWALLPAPER: SYSTEM_PARAMETERS_INFO_ACTION = 20u32; +pub const SPI_SETDISABLEOVERLAPPEDCONTENT: SYSTEM_PARAMETERS_INFO_ACTION = 4161u32; +pub const SPI_SETDOCKMOVING: SYSTEM_PARAMETERS_INFO_ACTION = 145u32; +pub const SPI_SETDOUBLECLICKTIME: SYSTEM_PARAMETERS_INFO_ACTION = 32u32; +pub const SPI_SETDOUBLECLKHEIGHT: SYSTEM_PARAMETERS_INFO_ACTION = 30u32; +pub const SPI_SETDOUBLECLKWIDTH: SYSTEM_PARAMETERS_INFO_ACTION = 29u32; +pub const SPI_SETDRAGFROMMAXIMIZE: SYSTEM_PARAMETERS_INFO_ACTION = 141u32; +pub const SPI_SETDRAGFULLWINDOWS: SYSTEM_PARAMETERS_INFO_ACTION = 37u32; +pub const SPI_SETDRAGHEIGHT: SYSTEM_PARAMETERS_INFO_ACTION = 77u32; +pub const SPI_SETDRAGWIDTH: SYSTEM_PARAMETERS_INFO_ACTION = 76u32; +pub const SPI_SETDROPSHADOW: SYSTEM_PARAMETERS_INFO_ACTION = 4133u32; +pub const SPI_SETFASTTASKSWITCH: SYSTEM_PARAMETERS_INFO_ACTION = 36u32; +pub const SPI_SETFILTERKEYS: SYSTEM_PARAMETERS_INFO_ACTION = 51u32; +pub const SPI_SETFLATMENU: SYSTEM_PARAMETERS_INFO_ACTION = 4131u32; +pub const SPI_SETFOCUSBORDERHEIGHT: SYSTEM_PARAMETERS_INFO_ACTION = 8209u32; +pub const SPI_SETFOCUSBORDERWIDTH: SYSTEM_PARAMETERS_INFO_ACTION = 8207u32; +pub const SPI_SETFONTSMOOTHING: SYSTEM_PARAMETERS_INFO_ACTION = 75u32; +pub const SPI_SETFONTSMOOTHINGCONTRAST: SYSTEM_PARAMETERS_INFO_ACTION = 8205u32; +pub const SPI_SETFONTSMOOTHINGORIENTATION: SYSTEM_PARAMETERS_INFO_ACTION = 8211u32; +pub const SPI_SETFONTSMOOTHINGTYPE: SYSTEM_PARAMETERS_INFO_ACTION = 8203u32; +pub const SPI_SETFOREGROUNDFLASHCOUNT: SYSTEM_PARAMETERS_INFO_ACTION = 8197u32; +pub const SPI_SETFOREGROUNDLOCKTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 8193u32; +pub const SPI_SETGESTUREVISUALIZATION: SYSTEM_PARAMETERS_INFO_ACTION = 8219u32; +pub const SPI_SETGRADIENTCAPTIONS: SYSTEM_PARAMETERS_INFO_ACTION = 4105u32; +pub const SPI_SETGRIDGRANULARITY: SYSTEM_PARAMETERS_INFO_ACTION = 19u32; +pub const SPI_SETHANDEDNESS: SYSTEM_PARAMETERS_INFO_ACTION = 8229u32; +pub const SPI_SETHANDHELD: SYSTEM_PARAMETERS_INFO_ACTION = 78u32; +pub const SPI_SETHIGHCONTRAST: SYSTEM_PARAMETERS_INFO_ACTION = 67u32; +pub const SPI_SETHOTTRACKING: SYSTEM_PARAMETERS_INFO_ACTION = 4111u32; +pub const SPI_SETHUNGAPPTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 121u32; +pub const SPI_SETICONMETRICS: SYSTEM_PARAMETERS_INFO_ACTION = 46u32; +pub const SPI_SETICONS: SYSTEM_PARAMETERS_INFO_ACTION = 88u32; +pub const SPI_SETICONTITLELOGFONT: SYSTEM_PARAMETERS_INFO_ACTION = 34u32; +pub const SPI_SETICONTITLEWRAP: SYSTEM_PARAMETERS_INFO_ACTION = 26u32; +pub const SPI_SETKEYBOARDCUES: SYSTEM_PARAMETERS_INFO_ACTION = 4107u32; +pub const SPI_SETKEYBOARDDELAY: SYSTEM_PARAMETERS_INFO_ACTION = 23u32; +pub const SPI_SETKEYBOARDPREF: SYSTEM_PARAMETERS_INFO_ACTION = 69u32; +pub const SPI_SETKEYBOARDSPEED: SYSTEM_PARAMETERS_INFO_ACTION = 11u32; +pub const SPI_SETLANGTOGGLE: SYSTEM_PARAMETERS_INFO_ACTION = 91u32; +pub const SPI_SETLISTBOXSMOOTHSCROLLING: SYSTEM_PARAMETERS_INFO_ACTION = 4103u32; +pub const SPI_SETLOGICALDPIOVERRIDE: SYSTEM_PARAMETERS_INFO_ACTION = 159u32; +pub const SPI_SETLOWPOWERACTIVE: SYSTEM_PARAMETERS_INFO_ACTION = 85u32; +pub const SPI_SETLOWPOWERTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 81u32; +pub const SPI_SETMENUANIMATION: SYSTEM_PARAMETERS_INFO_ACTION = 4099u32; +pub const SPI_SETMENUDROPALIGNMENT: SYSTEM_PARAMETERS_INFO_ACTION = 28u32; +pub const SPI_SETMENUFADE: SYSTEM_PARAMETERS_INFO_ACTION = 4115u32; +pub const SPI_SETMENURECT: SYSTEM_PARAMETERS_INFO_ACTION = 163u32; +pub const SPI_SETMENUSHOWDELAY: SYSTEM_PARAMETERS_INFO_ACTION = 107u32; +pub const SPI_SETMENUUNDERLINES: SYSTEM_PARAMETERS_INFO_ACTION = 4107u32; +pub const SPI_SETMESSAGEDURATION: SYSTEM_PARAMETERS_INFO_ACTION = 8215u32; +pub const SPI_SETMINIMIZEDMETRICS: SYSTEM_PARAMETERS_INFO_ACTION = 44u32; +pub const SPI_SETMINIMUMHITRADIUS: SYSTEM_PARAMETERS_INFO_ACTION = 8213u32; +pub const SPI_SETMOUSE: SYSTEM_PARAMETERS_INFO_ACTION = 4u32; +pub const SPI_SETMOUSEBUTTONSWAP: SYSTEM_PARAMETERS_INFO_ACTION = 33u32; +pub const SPI_SETMOUSECLICKLOCK: SYSTEM_PARAMETERS_INFO_ACTION = 4127u32; +pub const SPI_SETMOUSECLICKLOCKTIME: SYSTEM_PARAMETERS_INFO_ACTION = 8201u32; +pub const SPI_SETMOUSEDOCKTHRESHOLD: SYSTEM_PARAMETERS_INFO_ACTION = 127u32; +pub const SPI_SETMOUSEDRAGOUTTHRESHOLD: SYSTEM_PARAMETERS_INFO_ACTION = 133u32; +pub const SPI_SETMOUSEHOVERHEIGHT: SYSTEM_PARAMETERS_INFO_ACTION = 101u32; +pub const SPI_SETMOUSEHOVERTIME: SYSTEM_PARAMETERS_INFO_ACTION = 103u32; +pub const SPI_SETMOUSEHOVERWIDTH: SYSTEM_PARAMETERS_INFO_ACTION = 99u32; +pub const SPI_SETMOUSEKEYS: SYSTEM_PARAMETERS_INFO_ACTION = 55u32; +pub const SPI_SETMOUSESIDEMOVETHRESHOLD: SYSTEM_PARAMETERS_INFO_ACTION = 137u32; +pub const SPI_SETMOUSESONAR: SYSTEM_PARAMETERS_INFO_ACTION = 4125u32; +pub const SPI_SETMOUSESPEED: SYSTEM_PARAMETERS_INFO_ACTION = 113u32; +pub const SPI_SETMOUSETRAILS: SYSTEM_PARAMETERS_INFO_ACTION = 93u32; +pub const SPI_SETMOUSEVANISH: SYSTEM_PARAMETERS_INFO_ACTION = 4129u32; +pub const SPI_SETMOUSEWHEELROUTING: SYSTEM_PARAMETERS_INFO_ACTION = 8221u32; +pub const SPI_SETNONCLIENTMETRICS: SYSTEM_PARAMETERS_INFO_ACTION = 42u32; +pub const SPI_SETPENARBITRATIONTYPE: SYSTEM_PARAMETERS_INFO_ACTION = 8225u32; +pub const SPI_SETPENDOCKTHRESHOLD: SYSTEM_PARAMETERS_INFO_ACTION = 129u32; +pub const SPI_SETPENDRAGOUTTHRESHOLD: SYSTEM_PARAMETERS_INFO_ACTION = 135u32; +pub const SPI_SETPENSIDEMOVETHRESHOLD: SYSTEM_PARAMETERS_INFO_ACTION = 139u32; +pub const SPI_SETPENVISUALIZATION: SYSTEM_PARAMETERS_INFO_ACTION = 8223u32; +pub const SPI_SETPENWINDOWS: SYSTEM_PARAMETERS_INFO_ACTION = 49u32; +pub const SPI_SETPOWEROFFACTIVE: SYSTEM_PARAMETERS_INFO_ACTION = 86u32; +pub const SPI_SETPOWEROFFTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 82u32; +pub const SPI_SETSCREENREADER: SYSTEM_PARAMETERS_INFO_ACTION = 71u32; +pub const SPI_SETSCREENSAVEACTIVE: SYSTEM_PARAMETERS_INFO_ACTION = 17u32; +pub const SPI_SETSCREENSAVERRUNNING: SYSTEM_PARAMETERS_INFO_ACTION = 97u32; +pub const SPI_SETSCREENSAVESECURE: SYSTEM_PARAMETERS_INFO_ACTION = 119u32; +pub const SPI_SETSCREENSAVETIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 15u32; +pub const SPI_SETSELECTIONFADE: SYSTEM_PARAMETERS_INFO_ACTION = 4117u32; +pub const SPI_SETSERIALKEYS: SYSTEM_PARAMETERS_INFO_ACTION = 63u32; +pub const SPI_SETSHOWIMEUI: SYSTEM_PARAMETERS_INFO_ACTION = 111u32; +pub const SPI_SETSHOWSOUNDS: SYSTEM_PARAMETERS_INFO_ACTION = 57u32; +pub const SPI_SETSNAPSIZING: SYSTEM_PARAMETERS_INFO_ACTION = 143u32; +pub const SPI_SETSNAPTODEFBUTTON: SYSTEM_PARAMETERS_INFO_ACTION = 96u32; +pub const SPI_SETSOUNDSENTRY: SYSTEM_PARAMETERS_INFO_ACTION = 65u32; +pub const SPI_SETSPEECHRECOGNITION: SYSTEM_PARAMETERS_INFO_ACTION = 4171u32; +pub const SPI_SETSTICKYKEYS: SYSTEM_PARAMETERS_INFO_ACTION = 59u32; +pub const SPI_SETSYSTEMLANGUAGEBAR: SYSTEM_PARAMETERS_INFO_ACTION = 4177u32; +pub const SPI_SETTHREADLOCALINPUTSETTINGS: SYSTEM_PARAMETERS_INFO_ACTION = 4175u32; +pub const SPI_SETTOGGLEKEYS: SYSTEM_PARAMETERS_INFO_ACTION = 53u32; +pub const SPI_SETTOOLTIPANIMATION: SYSTEM_PARAMETERS_INFO_ACTION = 4119u32; +pub const SPI_SETTOOLTIPFADE: SYSTEM_PARAMETERS_INFO_ACTION = 4121u32; +pub const SPI_SETTOUCHPREDICTIONPARAMETERS: SYSTEM_PARAMETERS_INFO_ACTION = 157u32; +pub const SPI_SETUIEFFECTS: SYSTEM_PARAMETERS_INFO_ACTION = 4159u32; +pub const SPI_SETWAITTOKILLSERVICETIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 125u32; +pub const SPI_SETWAITTOKILLTIMEOUT: SYSTEM_PARAMETERS_INFO_ACTION = 123u32; +pub const SPI_SETWHEELSCROLLCHARS: SYSTEM_PARAMETERS_INFO_ACTION = 109u32; +pub const SPI_SETWHEELSCROLLLINES: SYSTEM_PARAMETERS_INFO_ACTION = 105u32; +pub const SPI_SETWINARRANGING: SYSTEM_PARAMETERS_INFO_ACTION = 131u32; +pub const SPI_SETWORKAREA: SYSTEM_PARAMETERS_INFO_ACTION = 47u32; +pub const STATE_SYSTEM_ALERT_HIGH: u32 = 268435456u32; +pub const STATE_SYSTEM_ALERT_LOW: u32 = 67108864u32; +pub const STATE_SYSTEM_ALERT_MEDIUM: u32 = 134217728u32; +pub const STATE_SYSTEM_ANIMATED: u32 = 16384u32; +pub const STATE_SYSTEM_BUSY: u32 = 2048u32; +pub const STATE_SYSTEM_CHECKED: u32 = 16u32; +pub const STATE_SYSTEM_COLLAPSED: u32 = 1024u32; +pub const STATE_SYSTEM_DEFAULT: u32 = 256u32; +pub const STATE_SYSTEM_EXPANDED: u32 = 512u32; +pub const STATE_SYSTEM_EXTSELECTABLE: u32 = 33554432u32; +pub const STATE_SYSTEM_FLOATING: u32 = 4096u32; +pub const STATE_SYSTEM_FOCUSED: u32 = 4u32; +pub const STATE_SYSTEM_HOTTRACKED: u32 = 128u32; +pub const STATE_SYSTEM_INDETERMINATE: u32 = 32u32; +pub const STATE_SYSTEM_LINKED: u32 = 4194304u32; +pub const STATE_SYSTEM_MARQUEED: u32 = 8192u32; +pub const STATE_SYSTEM_MIXED: u32 = 32u32; +pub const STATE_SYSTEM_MOVEABLE: u32 = 262144u32; +pub const STATE_SYSTEM_MULTISELECTABLE: u32 = 16777216u32; +pub const STATE_SYSTEM_PROTECTED: u32 = 536870912u32; +pub const STATE_SYSTEM_READONLY: u32 = 64u32; +pub const STATE_SYSTEM_SELECTABLE: u32 = 2097152u32; +pub const STATE_SYSTEM_SELECTED: u32 = 2u32; +pub const STATE_SYSTEM_SELFVOICING: u32 = 524288u32; +pub const STATE_SYSTEM_SIZEABLE: u32 = 131072u32; +pub const STATE_SYSTEM_TRAVERSED: u32 = 8388608u32; +pub const STATE_SYSTEM_VALID: u32 = 1073741823u32; +pub const STM_GETICON: u32 = 369u32; +pub const STM_GETIMAGE: u32 = 371u32; +pub const STM_MSGMAX: u32 = 372u32; +pub const STM_SETICON: u32 = 368u32; +pub const STM_SETIMAGE: u32 = 370u32; +pub const STN_CLICKED: u32 = 0u32; +pub const STN_DBLCLK: u32 = 1u32; +pub const STN_DISABLE: u32 = 3u32; +pub const STN_ENABLE: u32 = 2u32; +pub const STRSAFE_E_END_OF_FILE: ::windows_sys::core::HRESULT = -2147024858i32; +pub const STRSAFE_E_INSUFFICIENT_BUFFER: ::windows_sys::core::HRESULT = -2147024774i32; +pub const STRSAFE_E_INVALID_PARAMETER: ::windows_sys::core::HRESULT = -2147024809i32; +pub const STRSAFE_FILL_BEHIND_NULL: u32 = 512u32; +pub const STRSAFE_FILL_ON_FAILURE: u32 = 1024u32; +pub const STRSAFE_IGNORE_NULLS: u32 = 256u32; +pub const STRSAFE_MAX_CCH: u32 = 2147483647u32; +pub const STRSAFE_MAX_LENGTH: u32 = 2147483646u32; +pub const STRSAFE_NO_TRUNCATION: u32 = 4096u32; +pub const STRSAFE_NULL_ON_FAILURE: u32 = 2048u32; +pub const STRSAFE_USE_SECURE_CRT: u32 = 0u32; +pub const SWP_ASYNCWINDOWPOS: SET_WINDOW_POS_FLAGS = 16384u32; +pub const SWP_DEFERERASE: SET_WINDOW_POS_FLAGS = 8192u32; +pub const SWP_DRAWFRAME: SET_WINDOW_POS_FLAGS = 32u32; +pub const SWP_FRAMECHANGED: SET_WINDOW_POS_FLAGS = 32u32; +pub const SWP_HIDEWINDOW: SET_WINDOW_POS_FLAGS = 128u32; +pub const SWP_NOACTIVATE: SET_WINDOW_POS_FLAGS = 16u32; +pub const SWP_NOCOPYBITS: SET_WINDOW_POS_FLAGS = 256u32; +pub const SWP_NOMOVE: SET_WINDOW_POS_FLAGS = 2u32; +pub const SWP_NOOWNERZORDER: SET_WINDOW_POS_FLAGS = 512u32; +pub const SWP_NOREDRAW: SET_WINDOW_POS_FLAGS = 8u32; +pub const SWP_NOREPOSITION: SET_WINDOW_POS_FLAGS = 512u32; +pub const SWP_NOSENDCHANGING: SET_WINDOW_POS_FLAGS = 1024u32; +pub const SWP_NOSIZE: SET_WINDOW_POS_FLAGS = 1u32; +pub const SWP_NOZORDER: SET_WINDOW_POS_FLAGS = 4u32; +pub const SWP_SHOWWINDOW: SET_WINDOW_POS_FLAGS = 64u32; +pub const SW_ERASE: SCROLL_WINDOW_FLAGS = 4u32; +pub const SW_FORCEMINIMIZE: SHOW_WINDOW_CMD = 11i32; +pub const SW_HIDE: SHOW_WINDOW_CMD = 0i32; +pub const SW_INVALIDATE: SCROLL_WINDOW_FLAGS = 2u32; +pub const SW_MAX: SHOW_WINDOW_CMD = 11i32; +pub const SW_MAXIMIZE: SHOW_WINDOW_CMD = 3i32; +pub const SW_MINIMIZE: SHOW_WINDOW_CMD = 6i32; +pub const SW_NORMAL: SHOW_WINDOW_CMD = 1i32; +pub const SW_OTHERUNZOOM: SHOW_WINDOW_STATUS = 4u32; +pub const SW_OTHERZOOM: SHOW_WINDOW_STATUS = 2u32; +pub const SW_PARENTCLOSING: SHOW_WINDOW_STATUS = 1u32; +pub const SW_PARENTOPENING: SHOW_WINDOW_STATUS = 3u32; +pub const SW_RESTORE: SHOW_WINDOW_CMD = 9i32; +pub const SW_SCROLLCHILDREN: SCROLL_WINDOW_FLAGS = 1u32; +pub const SW_SHOW: SHOW_WINDOW_CMD = 5i32; +pub const SW_SHOWDEFAULT: SHOW_WINDOW_CMD = 10i32; +pub const SW_SHOWMAXIMIZED: SHOW_WINDOW_CMD = 3i32; +pub const SW_SHOWMINIMIZED: SHOW_WINDOW_CMD = 2i32; +pub const SW_SHOWMINNOACTIVE: SHOW_WINDOW_CMD = 7i32; +pub const SW_SHOWNA: SHOW_WINDOW_CMD = 8i32; +pub const SW_SHOWNOACTIVATE: SHOW_WINDOW_CMD = 4i32; +pub const SW_SHOWNORMAL: SHOW_WINDOW_CMD = 1i32; +pub const SW_SMOOTHSCROLL: SCROLL_WINDOW_FLAGS = 16u32; +pub const TDF_REGISTER: TOOLTIP_DISMISS_FLAGS = 1i32; +pub const TDF_UNREGISTER: TOOLTIP_DISMISS_FLAGS = 2i32; +pub const TIMERV_COALESCING_MAX: u32 = 2147483637u32; +pub const TIMERV_COALESCING_MIN: u32 = 1u32; +pub const TIMERV_DEFAULT_COALESCING: u32 = 0u32; +pub const TIMERV_NO_COALESCING: u32 = 4294967295u32; +pub const TKF_AVAILABLE: u32 = 2u32; +pub const TKF_CONFIRMHOTKEY: u32 = 8u32; +pub const TKF_HOTKEYACTIVE: u32 = 4u32; +pub const TKF_HOTKEYSOUND: u32 = 16u32; +pub const TKF_INDICATOR: u32 = 32u32; +pub const TKF_TOGGLEKEYSON: u32 = 1u32; +pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_LATENCY: u32 = 8u32; +pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_DELTA: f32 = 0.001f32; +pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_EXPO_SMOOTH_ALPHA: f32 = 0.99f32; +pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_LEARNING_RATE: f32 = 0.001f32; +pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_MAX: f32 = 0.999f32; +pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_MIN: f32 = 0.9f32; +pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_SAMPLETIME: u32 = 8u32; +pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_USE_HW_TIMESTAMP: u32 = 1u32; +pub const TOUCH_FLAG_NONE: u32 = 0u32; +pub const TOUCH_HIT_TESTING_CLIENT: u32 = 1u32; +pub const TOUCH_HIT_TESTING_DEFAULT: u32 = 0u32; +pub const TOUCH_HIT_TESTING_NONE: u32 = 2u32; +pub const TOUCH_HIT_TESTING_PROXIMITY_CLOSEST: u32 = 0u32; +pub const TOUCH_HIT_TESTING_PROXIMITY_FARTHEST: u32 = 4095u32; +pub const TOUCH_MASK_CONTACTAREA: u32 = 1u32; +pub const TOUCH_MASK_NONE: u32 = 0u32; +pub const TOUCH_MASK_ORIENTATION: u32 = 2u32; +pub const TOUCH_MASK_PRESSURE: u32 = 4u32; +pub const TPM_BOTTOMALIGN: TRACK_POPUP_MENU_FLAGS = 32u32; +pub const TPM_CENTERALIGN: TRACK_POPUP_MENU_FLAGS = 4u32; +pub const TPM_HORIZONTAL: TRACK_POPUP_MENU_FLAGS = 0u32; +pub const TPM_HORNEGANIMATION: TRACK_POPUP_MENU_FLAGS = 2048u32; +pub const TPM_HORPOSANIMATION: TRACK_POPUP_MENU_FLAGS = 1024u32; +pub const TPM_LAYOUTRTL: TRACK_POPUP_MENU_FLAGS = 32768u32; +pub const TPM_LEFTALIGN: TRACK_POPUP_MENU_FLAGS = 0u32; +pub const TPM_LEFTBUTTON: TRACK_POPUP_MENU_FLAGS = 0u32; +pub const TPM_NOANIMATION: TRACK_POPUP_MENU_FLAGS = 16384u32; +pub const TPM_NONOTIFY: TRACK_POPUP_MENU_FLAGS = 128u32; +pub const TPM_RECURSE: TRACK_POPUP_MENU_FLAGS = 1u32; +pub const TPM_RETURNCMD: TRACK_POPUP_MENU_FLAGS = 256u32; +pub const TPM_RIGHTALIGN: TRACK_POPUP_MENU_FLAGS = 8u32; +pub const TPM_RIGHTBUTTON: TRACK_POPUP_MENU_FLAGS = 2u32; +pub const TPM_TOPALIGN: TRACK_POPUP_MENU_FLAGS = 0u32; +pub const TPM_VCENTERALIGN: TRACK_POPUP_MENU_FLAGS = 16u32; +pub const TPM_VERNEGANIMATION: TRACK_POPUP_MENU_FLAGS = 8192u32; +pub const TPM_VERPOSANIMATION: TRACK_POPUP_MENU_FLAGS = 4096u32; +pub const TPM_VERTICAL: TRACK_POPUP_MENU_FLAGS = 64u32; +pub const TPM_WORKAREA: TRACK_POPUP_MENU_FLAGS = 65536u32; +pub const UISF_ACTIVE: u32 = 4u32; +pub const UISF_HIDEACCEL: u32 = 2u32; +pub const UISF_HIDEFOCUS: u32 = 1u32; +pub const UIS_CLEAR: u32 = 2u32; +pub const UIS_INITIALIZE: u32 = 3u32; +pub const UIS_SET: u32 = 1u32; +pub const ULW_ALPHA: UPDATE_LAYERED_WINDOW_FLAGS = 2u32; +pub const ULW_COLORKEY: UPDATE_LAYERED_WINDOW_FLAGS = 1u32; +pub const ULW_EX_NORESIZE: UPDATE_LAYERED_WINDOW_FLAGS = 8u32; +pub const ULW_OPAQUE: UPDATE_LAYERED_WINDOW_FLAGS = 4u32; +pub const UNICODE_NOCHAR: u32 = 65535u32; +pub const UOI_TIMERPROC_EXCEPTION_SUPPRESSION: u32 = 7u32; +pub const USER_DEFAULT_SCREEN_DPI: u32 = 96u32; +pub const USER_TIMER_MAXIMUM: u32 = 2147483647u32; +pub const USER_TIMER_MINIMUM: u32 = 10u32; +pub const WA_ACTIVE: u32 = 1u32; +pub const WA_CLICKACTIVE: u32 = 2u32; +pub const WA_INACTIVE: u32 = 0u32; +pub const WDA_EXCLUDEFROMCAPTURE: WINDOW_DISPLAY_AFFINITY = 17u32; +pub const WDA_MONITOR: WINDOW_DISPLAY_AFFINITY = 1u32; +pub const WDA_NONE: WINDOW_DISPLAY_AFFINITY = 0u32; +pub const WHEEL_DELTA: u32 = 120u32; +pub const WH_CALLWNDPROC: WINDOWS_HOOK_ID = 4i32; +pub const WH_CALLWNDPROCRET: WINDOWS_HOOK_ID = 12i32; +pub const WH_CBT: WINDOWS_HOOK_ID = 5i32; +pub const WH_DEBUG: WINDOWS_HOOK_ID = 9i32; +pub const WH_FOREGROUNDIDLE: WINDOWS_HOOK_ID = 11i32; +pub const WH_GETMESSAGE: WINDOWS_HOOK_ID = 3i32; +pub const WH_HARDWARE: u32 = 8u32; +pub const WH_JOURNALPLAYBACK: WINDOWS_HOOK_ID = 1i32; +pub const WH_JOURNALRECORD: WINDOWS_HOOK_ID = 0i32; +pub const WH_KEYBOARD: WINDOWS_HOOK_ID = 2i32; +pub const WH_KEYBOARD_LL: WINDOWS_HOOK_ID = 13i32; +pub const WH_MAX: u32 = 14u32; +pub const WH_MAXHOOK: u32 = 14u32; +pub const WH_MIN: i32 = -1i32; +pub const WH_MINHOOK: i32 = -1i32; +pub const WH_MOUSE: WINDOWS_HOOK_ID = 7i32; +pub const WH_MOUSE_LL: WINDOWS_HOOK_ID = 14i32; +pub const WH_MSGFILTER: WINDOWS_HOOK_ID = -1i32; +pub const WH_SHELL: WINDOWS_HOOK_ID = 10i32; +pub const WH_SYSMSGFILTER: WINDOWS_HOOK_ID = 6i32; +pub const WINEVENT_INCONTEXT: u32 = 4u32; +pub const WINEVENT_OUTOFCONTEXT: u32 = 0u32; +pub const WINEVENT_SKIPOWNPROCESS: u32 = 2u32; +pub const WINEVENT_SKIPOWNTHREAD: u32 = 1u32; +pub const WINSTA_ACCESSCLIPBOARD: i32 = 4i32; +pub const WINSTA_ACCESSGLOBALATOMS: i32 = 32i32; +pub const WINSTA_CREATEDESKTOP: i32 = 8i32; +pub const WINSTA_ENUMDESKTOPS: i32 = 1i32; +pub const WINSTA_ENUMERATE: i32 = 256i32; +pub const WINSTA_EXITWINDOWS: i32 = 64i32; +pub const WINSTA_READATTRIBUTES: i32 = 2i32; +pub const WINSTA_READSCREEN: i32 = 512i32; +pub const WINSTA_WRITEATTRIBUTES: i32 = 16i32; +pub const WMSZ_BOTTOM: u32 = 6u32; +pub const WMSZ_BOTTOMLEFT: u32 = 7u32; +pub const WMSZ_BOTTOMRIGHT: u32 = 8u32; +pub const WMSZ_LEFT: u32 = 1u32; +pub const WMSZ_RIGHT: u32 = 2u32; +pub const WMSZ_TOP: u32 = 3u32; +pub const WMSZ_TOPLEFT: u32 = 4u32; +pub const WMSZ_TOPRIGHT: u32 = 5u32; +pub const WM_ACTIVATE: u32 = 6u32; +pub const WM_ACTIVATEAPP: u32 = 28u32; +pub const WM_AFXFIRST: u32 = 864u32; +pub const WM_AFXLAST: u32 = 895u32; +pub const WM_APP: u32 = 32768u32; +pub const WM_APPCOMMAND: u32 = 793u32; +pub const WM_ASKCBFORMATNAME: u32 = 780u32; +pub const WM_CANCELJOURNAL: u32 = 75u32; +pub const WM_CANCELMODE: u32 = 31u32; +pub const WM_CAPTURECHANGED: u32 = 533u32; +pub const WM_CHANGECBCHAIN: u32 = 781u32; +pub const WM_CHANGEUISTATE: u32 = 295u32; +pub const WM_CHAR: u32 = 258u32; +pub const WM_CHARTOITEM: u32 = 47u32; +pub const WM_CHILDACTIVATE: u32 = 34u32; +pub const WM_CLEAR: u32 = 771u32; +pub const WM_CLIPBOARDUPDATE: u32 = 797u32; +pub const WM_CLOSE: u32 = 16u32; +pub const WM_COMMAND: u32 = 273u32; +pub const WM_COMMNOTIFY: u32 = 68u32; +pub const WM_COMPACTING: u32 = 65u32; +pub const WM_COMPAREITEM: u32 = 57u32; +pub const WM_CONTEXTMENU: u32 = 123u32; +pub const WM_COPY: u32 = 769u32; +pub const WM_COPYDATA: u32 = 74u32; +pub const WM_CREATE: u32 = 1u32; +pub const WM_CTLCOLORBTN: u32 = 309u32; +pub const WM_CTLCOLORDLG: u32 = 310u32; +pub const WM_CTLCOLOREDIT: u32 = 307u32; +pub const WM_CTLCOLORLISTBOX: u32 = 308u32; +pub const WM_CTLCOLORMSGBOX: u32 = 306u32; +pub const WM_CTLCOLORSCROLLBAR: u32 = 311u32; +pub const WM_CTLCOLORSTATIC: u32 = 312u32; +pub const WM_CUT: u32 = 768u32; +pub const WM_DEADCHAR: u32 = 259u32; +pub const WM_DELETEITEM: u32 = 45u32; +pub const WM_DESTROY: u32 = 2u32; +pub const WM_DESTROYCLIPBOARD: u32 = 775u32; +pub const WM_DEVICECHANGE: u32 = 537u32; +pub const WM_DEVMODECHANGE: u32 = 27u32; +pub const WM_DISPLAYCHANGE: u32 = 126u32; +pub const WM_DPICHANGED: u32 = 736u32; +pub const WM_DPICHANGED_AFTERPARENT: u32 = 739u32; +pub const WM_DPICHANGED_BEFOREPARENT: u32 = 738u32; +pub const WM_DRAWCLIPBOARD: u32 = 776u32; +pub const WM_DRAWITEM: u32 = 43u32; +pub const WM_DROPFILES: u32 = 563u32; +pub const WM_DWMCOLORIZATIONCOLORCHANGED: u32 = 800u32; +pub const WM_DWMCOMPOSITIONCHANGED: u32 = 798u32; +pub const WM_DWMNCRENDERINGCHANGED: u32 = 799u32; +pub const WM_DWMSENDICONICLIVEPREVIEWBITMAP: u32 = 806u32; +pub const WM_DWMSENDICONICTHUMBNAIL: u32 = 803u32; +pub const WM_DWMWINDOWMAXIMIZEDCHANGE: u32 = 801u32; +pub const WM_ENABLE: u32 = 10u32; +pub const WM_ENDSESSION: u32 = 22u32; +pub const WM_ENTERIDLE: u32 = 289u32; +pub const WM_ENTERMENULOOP: u32 = 529u32; +pub const WM_ENTERSIZEMOVE: u32 = 561u32; +pub const WM_ERASEBKGND: u32 = 20u32; +pub const WM_EXITMENULOOP: u32 = 530u32; +pub const WM_EXITSIZEMOVE: u32 = 562u32; +pub const WM_FONTCHANGE: u32 = 29u32; +pub const WM_GESTURE: u32 = 281u32; +pub const WM_GESTURENOTIFY: u32 = 282u32; +pub const WM_GETDLGCODE: u32 = 135u32; +pub const WM_GETDPISCALEDSIZE: u32 = 740u32; +pub const WM_GETFONT: u32 = 49u32; +pub const WM_GETHOTKEY: u32 = 51u32; +pub const WM_GETICON: u32 = 127u32; +pub const WM_GETMINMAXINFO: u32 = 36u32; +pub const WM_GETOBJECT: u32 = 61u32; +pub const WM_GETTEXT: u32 = 13u32; +pub const WM_GETTEXTLENGTH: u32 = 14u32; +pub const WM_GETTITLEBARINFOEX: u32 = 831u32; +pub const WM_HANDHELDFIRST: u32 = 856u32; +pub const WM_HANDHELDLAST: u32 = 863u32; +pub const WM_HELP: u32 = 83u32; +pub const WM_HOTKEY: u32 = 786u32; +pub const WM_HSCROLL: u32 = 276u32; +pub const WM_HSCROLLCLIPBOARD: u32 = 782u32; +pub const WM_ICONERASEBKGND: u32 = 39u32; +pub const WM_IME_CHAR: u32 = 646u32; +pub const WM_IME_COMPOSITION: u32 = 271u32; +pub const WM_IME_COMPOSITIONFULL: u32 = 644u32; +pub const WM_IME_CONTROL: u32 = 643u32; +pub const WM_IME_ENDCOMPOSITION: u32 = 270u32; +pub const WM_IME_KEYDOWN: u32 = 656u32; +pub const WM_IME_KEYLAST: u32 = 271u32; +pub const WM_IME_KEYUP: u32 = 657u32; +pub const WM_IME_NOTIFY: u32 = 642u32; +pub const WM_IME_REQUEST: u32 = 648u32; +pub const WM_IME_SELECT: u32 = 645u32; +pub const WM_IME_SETCONTEXT: u32 = 641u32; +pub const WM_IME_STARTCOMPOSITION: u32 = 269u32; +pub const WM_INITDIALOG: u32 = 272u32; +pub const WM_INITMENU: u32 = 278u32; +pub const WM_INITMENUPOPUP: u32 = 279u32; +pub const WM_INPUT: u32 = 255u32; +pub const WM_INPUTLANGCHANGE: u32 = 81u32; +pub const WM_INPUTLANGCHANGEREQUEST: u32 = 80u32; +pub const WM_INPUT_DEVICE_CHANGE: u32 = 254u32; +pub const WM_KEYDOWN: u32 = 256u32; +pub const WM_KEYFIRST: u32 = 256u32; +pub const WM_KEYLAST: u32 = 265u32; +pub const WM_KEYUP: u32 = 257u32; +pub const WM_KILLFOCUS: u32 = 8u32; +pub const WM_LBUTTONDBLCLK: u32 = 515u32; +pub const WM_LBUTTONDOWN: u32 = 513u32; +pub const WM_LBUTTONUP: u32 = 514u32; +pub const WM_MBUTTONDBLCLK: u32 = 521u32; +pub const WM_MBUTTONDOWN: u32 = 519u32; +pub const WM_MBUTTONUP: u32 = 520u32; +pub const WM_MDIACTIVATE: u32 = 546u32; +pub const WM_MDICASCADE: u32 = 551u32; +pub const WM_MDICREATE: u32 = 544u32; +pub const WM_MDIDESTROY: u32 = 545u32; +pub const WM_MDIGETACTIVE: u32 = 553u32; +pub const WM_MDIICONARRANGE: u32 = 552u32; +pub const WM_MDIMAXIMIZE: u32 = 549u32; +pub const WM_MDINEXT: u32 = 548u32; +pub const WM_MDIREFRESHMENU: u32 = 564u32; +pub const WM_MDIRESTORE: u32 = 547u32; +pub const WM_MDISETMENU: u32 = 560u32; +pub const WM_MDITILE: u32 = 550u32; +pub const WM_MEASUREITEM: u32 = 44u32; +pub const WM_MENUCHAR: u32 = 288u32; +pub const WM_MENUCOMMAND: u32 = 294u32; +pub const WM_MENUDRAG: u32 = 291u32; +pub const WM_MENUGETOBJECT: u32 = 292u32; +pub const WM_MENURBUTTONUP: u32 = 290u32; +pub const WM_MENUSELECT: u32 = 287u32; +pub const WM_MOUSEACTIVATE: u32 = 33u32; +pub const WM_MOUSEFIRST: u32 = 512u32; +pub const WM_MOUSEHWHEEL: u32 = 526u32; +pub const WM_MOUSELAST: u32 = 526u32; +pub const WM_MOUSEMOVE: u32 = 512u32; +pub const WM_MOUSEWHEEL: u32 = 522u32; +pub const WM_MOVE: u32 = 3u32; +pub const WM_MOVING: u32 = 534u32; +pub const WM_NCACTIVATE: u32 = 134u32; +pub const WM_NCCALCSIZE: u32 = 131u32; +pub const WM_NCCREATE: u32 = 129u32; +pub const WM_NCDESTROY: u32 = 130u32; +pub const WM_NCHITTEST: u32 = 132u32; +pub const WM_NCLBUTTONDBLCLK: u32 = 163u32; +pub const WM_NCLBUTTONDOWN: u32 = 161u32; +pub const WM_NCLBUTTONUP: u32 = 162u32; +pub const WM_NCMBUTTONDBLCLK: u32 = 169u32; +pub const WM_NCMBUTTONDOWN: u32 = 167u32; +pub const WM_NCMBUTTONUP: u32 = 168u32; +pub const WM_NCMOUSEHOVER: u32 = 672u32; +pub const WM_NCMOUSELEAVE: u32 = 674u32; +pub const WM_NCMOUSEMOVE: u32 = 160u32; +pub const WM_NCPAINT: u32 = 133u32; +pub const WM_NCPOINTERDOWN: u32 = 578u32; +pub const WM_NCPOINTERUP: u32 = 579u32; +pub const WM_NCPOINTERUPDATE: u32 = 577u32; +pub const WM_NCRBUTTONDBLCLK: u32 = 166u32; +pub const WM_NCRBUTTONDOWN: u32 = 164u32; +pub const WM_NCRBUTTONUP: u32 = 165u32; +pub const WM_NCXBUTTONDBLCLK: u32 = 173u32; +pub const WM_NCXBUTTONDOWN: u32 = 171u32; +pub const WM_NCXBUTTONUP: u32 = 172u32; +pub const WM_NEXTDLGCTL: u32 = 40u32; +pub const WM_NEXTMENU: u32 = 531u32; +pub const WM_NOTIFY: u32 = 78u32; +pub const WM_NOTIFYFORMAT: u32 = 85u32; +pub const WM_NULL: u32 = 0u32; +pub const WM_PAINT: u32 = 15u32; +pub const WM_PAINTCLIPBOARD: u32 = 777u32; +pub const WM_PAINTICON: u32 = 38u32; +pub const WM_PALETTECHANGED: u32 = 785u32; +pub const WM_PALETTEISCHANGING: u32 = 784u32; +pub const WM_PARENTNOTIFY: u32 = 528u32; +pub const WM_PASTE: u32 = 770u32; +pub const WM_PENWINFIRST: u32 = 896u32; +pub const WM_PENWINLAST: u32 = 911u32; +pub const WM_POINTERACTIVATE: u32 = 587u32; +pub const WM_POINTERCAPTURECHANGED: u32 = 588u32; +pub const WM_POINTERDEVICECHANGE: u32 = 568u32; +pub const WM_POINTERDEVICEINRANGE: u32 = 569u32; +pub const WM_POINTERDEVICEOUTOFRANGE: u32 = 570u32; +pub const WM_POINTERDOWN: u32 = 582u32; +pub const WM_POINTERENTER: u32 = 585u32; +pub const WM_POINTERHWHEEL: u32 = 591u32; +pub const WM_POINTERLEAVE: u32 = 586u32; +pub const WM_POINTERROUTEDAWAY: u32 = 594u32; +pub const WM_POINTERROUTEDRELEASED: u32 = 595u32; +pub const WM_POINTERROUTEDTO: u32 = 593u32; +pub const WM_POINTERUP: u32 = 583u32; +pub const WM_POINTERUPDATE: u32 = 581u32; +pub const WM_POINTERWHEEL: u32 = 590u32; +pub const WM_POWER: u32 = 72u32; +pub const WM_POWERBROADCAST: u32 = 536u32; +pub const WM_PRINT: u32 = 791u32; +pub const WM_PRINTCLIENT: u32 = 792u32; +pub const WM_QUERYDRAGICON: u32 = 55u32; +pub const WM_QUERYENDSESSION: u32 = 17u32; +pub const WM_QUERYNEWPALETTE: u32 = 783u32; +pub const WM_QUERYOPEN: u32 = 19u32; +pub const WM_QUERYUISTATE: u32 = 297u32; +pub const WM_QUEUESYNC: u32 = 35u32; +pub const WM_QUIT: u32 = 18u32; +pub const WM_RBUTTONDBLCLK: u32 = 518u32; +pub const WM_RBUTTONDOWN: u32 = 516u32; +pub const WM_RBUTTONUP: u32 = 517u32; +pub const WM_RENDERALLFORMATS: u32 = 774u32; +pub const WM_RENDERFORMAT: u32 = 773u32; +pub const WM_SETCURSOR: u32 = 32u32; +pub const WM_SETFOCUS: u32 = 7u32; +pub const WM_SETFONT: u32 = 48u32; +pub const WM_SETHOTKEY: u32 = 50u32; +pub const WM_SETICON: u32 = 128u32; +pub const WM_SETREDRAW: u32 = 11u32; +pub const WM_SETTEXT: u32 = 12u32; +pub const WM_SETTINGCHANGE: u32 = 26u32; +pub const WM_SHOWWINDOW: u32 = 24u32; +pub const WM_SIZE: u32 = 5u32; +pub const WM_SIZECLIPBOARD: u32 = 779u32; +pub const WM_SIZING: u32 = 532u32; +pub const WM_SPOOLERSTATUS: u32 = 42u32; +pub const WM_STYLECHANGED: u32 = 125u32; +pub const WM_STYLECHANGING: u32 = 124u32; +pub const WM_SYNCPAINT: u32 = 136u32; +pub const WM_SYSCHAR: u32 = 262u32; +pub const WM_SYSCOLORCHANGE: u32 = 21u32; +pub const WM_SYSCOMMAND: u32 = 274u32; +pub const WM_SYSDEADCHAR: u32 = 263u32; +pub const WM_SYSKEYDOWN: u32 = 260u32; +pub const WM_SYSKEYUP: u32 = 261u32; +pub const WM_TABLET_FIRST: u32 = 704u32; +pub const WM_TABLET_LAST: u32 = 735u32; +pub const WM_TCARD: u32 = 82u32; +pub const WM_THEMECHANGED: u32 = 794u32; +pub const WM_TIMECHANGE: u32 = 30u32; +pub const WM_TIMER: u32 = 275u32; +pub const WM_TOOLTIPDISMISS: u32 = 837u32; +pub const WM_TOUCH: u32 = 576u32; +pub const WM_TOUCHHITTESTING: u32 = 589u32; +pub const WM_UNDO: u32 = 772u32; +pub const WM_UNICHAR: u32 = 265u32; +pub const WM_UNINITMENUPOPUP: u32 = 293u32; +pub const WM_UPDATEUISTATE: u32 = 296u32; +pub const WM_USER: u32 = 1024u32; +pub const WM_USERCHANGED: u32 = 84u32; +pub const WM_VKEYTOITEM: u32 = 46u32; +pub const WM_VSCROLL: u32 = 277u32; +pub const WM_VSCROLLCLIPBOARD: u32 = 778u32; +pub const WM_WINDOWPOSCHANGED: u32 = 71u32; +pub const WM_WINDOWPOSCHANGING: u32 = 70u32; +pub const WM_WININICHANGE: u32 = 26u32; +pub const WM_WTSSESSION_CHANGE: u32 = 689u32; +pub const WM_XBUTTONDBLCLK: u32 = 525u32; +pub const WM_XBUTTONDOWN: u32 = 523u32; +pub const WM_XBUTTONUP: u32 = 524u32; +pub const WPF_ASYNCWINDOWPLACEMENT: WINDOWPLACEMENT_FLAGS = 4u32; +pub const WPF_RESTORETOMAXIMIZED: WINDOWPLACEMENT_FLAGS = 2u32; +pub const WPF_SETMINPOSITION: WINDOWPLACEMENT_FLAGS = 1u32; +pub const WSF_VISIBLE: i32 = 1i32; +pub const WS_ACTIVECAPTION: WINDOW_STYLE = 1u32; +pub const WS_BORDER: WINDOW_STYLE = 8388608u32; +pub const WS_CAPTION: WINDOW_STYLE = 12582912u32; +pub const WS_CHILD: WINDOW_STYLE = 1073741824u32; +pub const WS_CHILDWINDOW: WINDOW_STYLE = 1073741824u32; +pub const WS_CLIPCHILDREN: WINDOW_STYLE = 33554432u32; +pub const WS_CLIPSIBLINGS: WINDOW_STYLE = 67108864u32; +pub const WS_DISABLED: WINDOW_STYLE = 134217728u32; +pub const WS_DLGFRAME: WINDOW_STYLE = 4194304u32; +pub const WS_EX_ACCEPTFILES: WINDOW_EX_STYLE = 16u32; +pub const WS_EX_APPWINDOW: WINDOW_EX_STYLE = 262144u32; +pub const WS_EX_CLIENTEDGE: WINDOW_EX_STYLE = 512u32; +pub const WS_EX_COMPOSITED: WINDOW_EX_STYLE = 33554432u32; +pub const WS_EX_CONTEXTHELP: WINDOW_EX_STYLE = 1024u32; +pub const WS_EX_CONTROLPARENT: WINDOW_EX_STYLE = 65536u32; +pub const WS_EX_DLGMODALFRAME: WINDOW_EX_STYLE = 1u32; +pub const WS_EX_LAYERED: WINDOW_EX_STYLE = 524288u32; +pub const WS_EX_LAYOUTRTL: WINDOW_EX_STYLE = 4194304u32; +pub const WS_EX_LEFT: WINDOW_EX_STYLE = 0u32; +pub const WS_EX_LEFTSCROLLBAR: WINDOW_EX_STYLE = 16384u32; +pub const WS_EX_LTRREADING: WINDOW_EX_STYLE = 0u32; +pub const WS_EX_MDICHILD: WINDOW_EX_STYLE = 64u32; +pub const WS_EX_NOACTIVATE: WINDOW_EX_STYLE = 134217728u32; +pub const WS_EX_NOINHERITLAYOUT: WINDOW_EX_STYLE = 1048576u32; +pub const WS_EX_NOPARENTNOTIFY: WINDOW_EX_STYLE = 4u32; +pub const WS_EX_NOREDIRECTIONBITMAP: WINDOW_EX_STYLE = 2097152u32; +pub const WS_EX_OVERLAPPEDWINDOW: WINDOW_EX_STYLE = 768u32; +pub const WS_EX_PALETTEWINDOW: WINDOW_EX_STYLE = 392u32; +pub const WS_EX_RIGHT: WINDOW_EX_STYLE = 4096u32; +pub const WS_EX_RIGHTSCROLLBAR: WINDOW_EX_STYLE = 0u32; +pub const WS_EX_RTLREADING: WINDOW_EX_STYLE = 8192u32; +pub const WS_EX_STATICEDGE: WINDOW_EX_STYLE = 131072u32; +pub const WS_EX_TOOLWINDOW: WINDOW_EX_STYLE = 128u32; +pub const WS_EX_TOPMOST: WINDOW_EX_STYLE = 8u32; +pub const WS_EX_TRANSPARENT: WINDOW_EX_STYLE = 32u32; +pub const WS_EX_WINDOWEDGE: WINDOW_EX_STYLE = 256u32; +pub const WS_GROUP: WINDOW_STYLE = 131072u32; +pub const WS_HSCROLL: WINDOW_STYLE = 1048576u32; +pub const WS_ICONIC: WINDOW_STYLE = 536870912u32; +pub const WS_MAXIMIZE: WINDOW_STYLE = 16777216u32; +pub const WS_MAXIMIZEBOX: WINDOW_STYLE = 65536u32; +pub const WS_MINIMIZE: WINDOW_STYLE = 536870912u32; +pub const WS_MINIMIZEBOX: WINDOW_STYLE = 131072u32; +pub const WS_OVERLAPPED: WINDOW_STYLE = 0u32; +pub const WS_OVERLAPPEDWINDOW: WINDOW_STYLE = 13565952u32; +pub const WS_POPUP: WINDOW_STYLE = 2147483648u32; +pub const WS_POPUPWINDOW: WINDOW_STYLE = 2156396544u32; +pub const WS_SIZEBOX: WINDOW_STYLE = 262144u32; +pub const WS_SYSMENU: WINDOW_STYLE = 524288u32; +pub const WS_TABSTOP: WINDOW_STYLE = 65536u32; +pub const WS_THICKFRAME: WINDOW_STYLE = 262144u32; +pub const WS_TILED: WINDOW_STYLE = 0u32; +pub const WS_TILEDWINDOW: WINDOW_STYLE = 13565952u32; +pub const WS_VISIBLE: WINDOW_STYLE = 268435456u32; +pub const WS_VSCROLL: WINDOW_STYLE = 2097152u32; +pub const WTS_CONSOLE_CONNECT: u32 = 1u32; +pub const WTS_CONSOLE_DISCONNECT: u32 = 2u32; +pub const WTS_REMOTE_CONNECT: u32 = 3u32; +pub const WTS_REMOTE_DISCONNECT: u32 = 4u32; +pub const WTS_SESSION_CREATE: u32 = 10u32; +pub const WTS_SESSION_LOCK: u32 = 7u32; +pub const WTS_SESSION_LOGOFF: u32 = 6u32; +pub const WTS_SESSION_LOGON: u32 = 5u32; +pub const WTS_SESSION_REMOTE_CONTROL: u32 = 9u32; +pub const WTS_SESSION_TERMINATE: u32 = 11u32; +pub const WTS_SESSION_UNLOCK: u32 = 8u32; +pub const WVR_ALIGNBOTTOM: u32 = 64u32; +pub const WVR_ALIGNLEFT: u32 = 32u32; +pub const WVR_ALIGNRIGHT: u32 = 128u32; +pub const WVR_ALIGNTOP: u32 = 16u32; +pub const WVR_HREDRAW: u32 = 256u32; +pub const WVR_VALIDRECTS: u32 = 1024u32; +pub const WVR_VREDRAW: u32 = 512u32; +pub const XBUTTON1: u16 = 1u16; +pub const XBUTTON2: u16 = 2u16; +pub const __WARNING_BANNED_API_USAGE: u32 = 28719u32; +pub const __WARNING_CYCLOMATIC_COMPLEXITY: u32 = 28734u32; +pub const __WARNING_DEREF_NULL_PTR: u32 = 6011u32; +pub const __WARNING_HIGH_PRIORITY_OVERFLOW_POSTCONDITION: u32 = 26045u32; +pub const __WARNING_INCORRECT_ANNOTATION: u32 = 26007u32; +pub const __WARNING_INVALID_PARAM_VALUE_1: u32 = 6387u32; +pub const __WARNING_INVALID_PARAM_VALUE_3: u32 = 28183u32; +pub const __WARNING_MISSING_ZERO_TERMINATION2: u32 = 6054u32; +pub const __WARNING_POSTCONDITION_NULLTERMINATION_VIOLATION: u32 = 26036u32; +pub const __WARNING_POST_EXPECTED: u32 = 28210u32; +pub const __WARNING_POTENTIAL_BUFFER_OVERFLOW_HIGH_PRIORITY: u32 = 26015u32; +pub const __WARNING_POTENTIAL_RANGE_POSTCONDITION_VIOLATION: u32 = 26071u32; +pub const __WARNING_PRECONDITION_NULLTERMINATION_VIOLATION: u32 = 26035u32; +pub const __WARNING_RANGE_POSTCONDITION_VIOLATION: u32 = 26061u32; +pub const __WARNING_RETURNING_BAD_RESULT: u32 = 28196u32; +pub const __WARNING_RETURN_UNINIT_VAR: u32 = 6101u32; +pub const __WARNING_USING_UNINIT_VAR: u32 = 6001u32; +pub type ACCEL_VIRT_FLAGS = u8; +pub type ANIMATE_WINDOW_FLAGS = u32; +pub type CASCADE_WINDOWS_HOW = u32; +pub type CHANGE_WINDOW_MESSAGE_FILTER_FLAGS = u32; +pub type CURSORINFO_FLAGS = u32; +pub type CWP_FLAGS = u32; +pub type DEV_BROADCAST_HDR_DEVICE_TYPE = u32; +pub type DEV_BROADCAST_VOLUME_FLAGS = u16; +pub type DI_FLAGS = u32; +pub type EDIT_CONTROL_FEATURE = i32; +pub type FLASHWINFO_FLAGS = u32; +pub type FOREGROUND_WINDOW_LOCK_CODE = u32; +pub type GDI_IMAGE_TYPE = u32; +pub type GET_ANCESTOR_FLAGS = u32; +pub type GET_CLASS_LONG_INDEX = i32; +pub type GET_MENU_DEFAULT_ITEM_FLAGS = u32; +pub type GET_WINDOW_CMD = u32; +pub type GUITHREADINFO_FLAGS = u32; +pub type HANDEDNESS = i32; +pub type IMAGE_FLAGS = u32; +pub type KBDLLHOOKSTRUCT_FLAGS = u32; +pub type LAYERED_WINDOW_ATTRIBUTES_FLAGS = u32; +pub type MENUGETOBJECTINFO_FLAGS = u32; +pub type MENUINFO_MASK = u32; +pub type MENUINFO_STYLE = u32; +pub type MENU_ITEM_FLAGS = u32; +pub type MENU_ITEM_MASK = u32; +pub type MENU_ITEM_STATE = u32; +pub type MENU_ITEM_TYPE = u32; +pub type MESSAGEBOX_RESULT = i32; +pub type MESSAGEBOX_STYLE = u32; +pub type MINIMIZEDMETRICS_ARRANGE = i32; +pub type MSGFLTINFO_STATUS = u32; +pub type MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS = u32; +pub type MrmDumpType = i32; +pub type MrmIndexerFlags = i32; +pub type MrmPackagingMode = i32; +pub type MrmPackagingOptions = i32; +pub type MrmPlatformVersion = i32; +pub type MrmResourceIndexerMessageSeverity = i32; +pub type OBJECT_IDENTIFIER = i32; +pub type PEEK_MESSAGE_REMOVE_TYPE = u32; +pub type POINTER_INPUT_TYPE = i32; +pub type QUEUE_STATUS_FLAGS = u32; +pub type REGISTER_NOTIFICATION_FLAGS = u32; +pub type SCROLLBAR_COMMAND = i32; +pub type SCROLLBAR_CONSTANTS = i32; +pub type SCROLLINFO_MASK = u32; +pub type SCROLL_WINDOW_FLAGS = u32; +pub type SEND_MESSAGE_TIMEOUT_FLAGS = u32; +pub type SET_WINDOW_POS_FLAGS = u32; +pub type SHOW_WINDOW_CMD = i32; +pub type SHOW_WINDOW_STATUS = u32; +pub type SYSTEM_CURSOR_ID = u32; +pub type SYSTEM_METRICS_INDEX = i32; +pub type SYSTEM_PARAMETERS_INFO_ACTION = u32; +pub type SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS = u32; +pub type TILE_WINDOWS_HOW = u32; +pub type TOOLTIP_DISMISS_FLAGS = i32; +pub type TRACK_POPUP_MENU_FLAGS = u32; +pub type UPDATE_LAYERED_WINDOW_FLAGS = u32; +pub type WINDOWPLACEMENT_FLAGS = u32; +pub type WINDOWS_HOOK_ID = i32; +pub type WINDOW_DISPLAY_AFFINITY = u32; +pub type WINDOW_EX_STYLE = u32; +pub type WINDOW_LONG_PTR_INDEX = i32; +pub type WINDOW_MESSAGE_FILTER_ACTION = u32; +pub type WINDOW_STYLE = u32; +pub type WNDCLASS_STYLES = u32; +#[repr(C)] +pub struct ACCEL { + pub fVirt: ACCEL_VIRT_FLAGS, + pub key: u16, + pub cmd: u16, +} +impl ::core::marker::Copy for ACCEL {} +impl ::core::clone::Clone for ACCEL { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct ALTTABINFO { + pub cbSize: u32, + pub cItems: i32, + pub cColumns: i32, + pub cRows: i32, + pub iColFocus: i32, + pub iRowFocus: i32, + pub cxItem: i32, + pub cyItem: i32, + pub ptStart: super::super::Foundation::POINT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for ALTTABINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for ALTTABINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct ANIMATIONINFO { + pub cbSize: u32, + pub iMinAnimate: i32, +} +impl ::core::marker::Copy for ANIMATIONINFO {} +impl ::core::clone::Clone for ANIMATIONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct AUDIODESCRIPTION { + pub cbSize: u32, + pub Enabled: super::super::Foundation::BOOL, + pub Locale: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for AUDIODESCRIPTION {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for AUDIODESCRIPTION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CBTACTIVATESTRUCT { + pub fMouse: super::super::Foundation::BOOL, + pub hWndActive: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CBTACTIVATESTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CBTACTIVATESTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CBT_CREATEWNDA { + pub lpcs: *mut CREATESTRUCTA, + pub hwndInsertAfter: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CBT_CREATEWNDA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CBT_CREATEWNDA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CBT_CREATEWNDW { + pub lpcs: *mut CREATESTRUCTW, + pub hwndInsertAfter: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CBT_CREATEWNDW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CBT_CREATEWNDW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CHANGEFILTERSTRUCT { + pub cbSize: u32, + pub ExtStatus: MSGFLTINFO_STATUS, +} +impl ::core::marker::Copy for CHANGEFILTERSTRUCT {} +impl ::core::clone::Clone for CHANGEFILTERSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CLIENTCREATESTRUCT { + pub hWindowMenu: super::super::Foundation::HANDLE, + pub idFirstChild: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CLIENTCREATESTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CLIENTCREATESTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CREATESTRUCTA { + pub lpCreateParams: *mut ::core::ffi::c_void, + pub hInstance: super::super::Foundation::HINSTANCE, + pub hMenu: HMENU, + pub hwndParent: super::super::Foundation::HWND, + pub cy: i32, + pub cx: i32, + pub y: i32, + pub x: i32, + pub style: i32, + pub lpszName: ::windows_sys::core::PCSTR, + pub lpszClass: ::windows_sys::core::PCSTR, + pub dwExStyle: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CREATESTRUCTA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CREATESTRUCTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CREATESTRUCTW { + pub lpCreateParams: *mut ::core::ffi::c_void, + pub hInstance: super::super::Foundation::HINSTANCE, + pub hMenu: HMENU, + pub hwndParent: super::super::Foundation::HWND, + pub cy: i32, + pub cx: i32, + pub y: i32, + pub x: i32, + pub style: i32, + pub lpszName: ::windows_sys::core::PCWSTR, + pub lpszClass: ::windows_sys::core::PCWSTR, + pub dwExStyle: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CREATESTRUCTW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CREATESTRUCTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CURSORINFO { + pub cbSize: u32, + pub flags: CURSORINFO_FLAGS, + pub hCursor: HCURSOR, + pub ptScreenPos: super::super::Foundation::POINT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CURSORINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CURSORINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct CURSORSHAPE { + pub xHotSpot: i32, + pub yHotSpot: i32, + pub cx: i32, + pub cy: i32, + pub cbWidth: i32, + pub Planes: u8, + pub BitsPixel: u8, +} +impl ::core::marker::Copy for CURSORSHAPE {} +impl ::core::clone::Clone for CURSORSHAPE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CWPRETSTRUCT { + pub lResult: super::super::Foundation::LRESULT, + pub lParam: super::super::Foundation::LPARAM, + pub wParam: super::super::Foundation::WPARAM, + pub message: u32, + pub hwnd: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CWPRETSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CWPRETSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct CWPSTRUCT { + pub lParam: super::super::Foundation::LPARAM, + pub wParam: super::super::Foundation::WPARAM, + pub message: u32, + pub hwnd: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for CWPSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for CWPSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEBUGHOOKINFO { + pub idThread: u32, + pub idThreadInstaller: u32, + pub lParam: super::super::Foundation::LPARAM, + pub wParam: super::super::Foundation::WPARAM, + pub code: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEBUGHOOKINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEBUGHOOKINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_EVENT_BECOMING_READY { + pub Version: u32, + pub Reason: u32, + pub Estimated100msToReady: u32, +} +impl ::core::marker::Copy for DEVICE_EVENT_BECOMING_READY {} +impl ::core::clone::Clone for DEVICE_EVENT_BECOMING_READY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_EVENT_EXTERNAL_REQUEST { + pub Version: u32, + pub DeviceClass: u32, + pub ButtonStatus: u16, + pub Request: u16, + pub SystemTime: i64, +} +impl ::core::marker::Copy for DEVICE_EVENT_EXTERNAL_REQUEST {} +impl ::core::clone::Clone for DEVICE_EVENT_EXTERNAL_REQUEST { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_EVENT_GENERIC_DATA { + pub EventNumber: u32, +} +impl ::core::marker::Copy for DEVICE_EVENT_GENERIC_DATA {} +impl ::core::clone::Clone for DEVICE_EVENT_GENERIC_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_EVENT_MOUNT { + pub Version: u32, + pub Flags: u32, + pub FileSystemNameLength: u32, + pub FileSystemNameOffset: u32, +} +impl ::core::marker::Copy for DEVICE_EVENT_MOUNT {} +impl ::core::clone::Clone for DEVICE_EVENT_MOUNT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEVICE_EVENT_RBC_DATA { + pub EventNumber: u32, + pub SenseQualifier: u8, + pub SenseCode: u8, + pub SenseKey: u8, + pub Reserved: u8, + pub Information: u32, +} +impl ::core::marker::Copy for DEVICE_EVENT_RBC_DATA {} +impl ::core::clone::Clone for DEVICE_EVENT_RBC_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEV_BROADCAST_DEVICEINTERFACE_A { + pub dbcc_size: u32, + pub dbcc_devicetype: u32, + pub dbcc_reserved: u32, + pub dbcc_classguid: ::windows_sys::core::GUID, + pub dbcc_name: [u8; 1], +} +impl ::core::marker::Copy for DEV_BROADCAST_DEVICEINTERFACE_A {} +impl ::core::clone::Clone for DEV_BROADCAST_DEVICEINTERFACE_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEV_BROADCAST_DEVICEINTERFACE_W { + pub dbcc_size: u32, + pub dbcc_devicetype: u32, + pub dbcc_reserved: u32, + pub dbcc_classguid: ::windows_sys::core::GUID, + pub dbcc_name: [u16; 1], +} +impl ::core::marker::Copy for DEV_BROADCAST_DEVICEINTERFACE_W {} +impl ::core::clone::Clone for DEV_BROADCAST_DEVICEINTERFACE_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEV_BROADCAST_DEVNODE { + pub dbcd_size: u32, + pub dbcd_devicetype: u32, + pub dbcd_reserved: u32, + pub dbcd_devnode: u32, +} +impl ::core::marker::Copy for DEV_BROADCAST_DEVNODE {} +impl ::core::clone::Clone for DEV_BROADCAST_DEVNODE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DEV_BROADCAST_HANDLE { + pub dbch_size: u32, + pub dbch_devicetype: u32, + pub dbch_reserved: u32, + pub dbch_handle: super::super::Foundation::HANDLE, + pub dbch_hdevnotify: HDEVNOTIFY, + pub dbch_eventguid: ::windows_sys::core::GUID, + pub dbch_nameoffset: i32, + pub dbch_data: [u8; 1], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DEV_BROADCAST_HANDLE {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DEV_BROADCAST_HANDLE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEV_BROADCAST_HANDLE32 { + pub dbch_size: u32, + pub dbch_devicetype: u32, + pub dbch_reserved: u32, + pub dbch_handle: u32, + pub dbch_hdevnotify: u32, + pub dbch_eventguid: ::windows_sys::core::GUID, + pub dbch_nameoffset: i32, + pub dbch_data: [u8; 1], +} +impl ::core::marker::Copy for DEV_BROADCAST_HANDLE32 {} +impl ::core::clone::Clone for DEV_BROADCAST_HANDLE32 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEV_BROADCAST_HANDLE64 { + pub dbch_size: u32, + pub dbch_devicetype: u32, + pub dbch_reserved: u32, + pub dbch_handle: u64, + pub dbch_hdevnotify: u64, + pub dbch_eventguid: ::windows_sys::core::GUID, + pub dbch_nameoffset: i32, + pub dbch_data: [u8; 1], +} +impl ::core::marker::Copy for DEV_BROADCAST_HANDLE64 {} +impl ::core::clone::Clone for DEV_BROADCAST_HANDLE64 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEV_BROADCAST_HDR { + pub dbch_size: u32, + pub dbch_devicetype: DEV_BROADCAST_HDR_DEVICE_TYPE, + pub dbch_reserved: u32, +} +impl ::core::marker::Copy for DEV_BROADCAST_HDR {} +impl ::core::clone::Clone for DEV_BROADCAST_HDR { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEV_BROADCAST_NET { + pub dbcn_size: u32, + pub dbcn_devicetype: u32, + pub dbcn_reserved: u32, + pub dbcn_resource: u32, + pub dbcn_flags: u32, +} +impl ::core::marker::Copy for DEV_BROADCAST_NET {} +impl ::core::clone::Clone for DEV_BROADCAST_NET { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEV_BROADCAST_OEM { + pub dbco_size: u32, + pub dbco_devicetype: u32, + pub dbco_reserved: u32, + pub dbco_identifier: u32, + pub dbco_suppfunc: u32, +} +impl ::core::marker::Copy for DEV_BROADCAST_OEM {} +impl ::core::clone::Clone for DEV_BROADCAST_OEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEV_BROADCAST_PORT_A { + pub dbcp_size: u32, + pub dbcp_devicetype: u32, + pub dbcp_reserved: u32, + pub dbcp_name: [u8; 1], +} +impl ::core::marker::Copy for DEV_BROADCAST_PORT_A {} +impl ::core::clone::Clone for DEV_BROADCAST_PORT_A { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEV_BROADCAST_PORT_W { + pub dbcp_size: u32, + pub dbcp_devicetype: u32, + pub dbcp_reserved: u32, + pub dbcp_name: [u16; 1], +} +impl ::core::marker::Copy for DEV_BROADCAST_PORT_W {} +impl ::core::clone::Clone for DEV_BROADCAST_PORT_W { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DEV_BROADCAST_VOLUME { + pub dbcv_size: u32, + pub dbcv_devicetype: u32, + pub dbcv_reserved: u32, + pub dbcv_unitmask: u32, + pub dbcv_flags: DEV_BROADCAST_VOLUME_FLAGS, +} +impl ::core::marker::Copy for DEV_BROADCAST_VOLUME {} +impl ::core::clone::Clone for DEV_BROADCAST_VOLUME { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct DISK_HEALTH_NOTIFICATION_DATA { + pub DeviceGuid: ::windows_sys::core::GUID, +} +impl ::core::marker::Copy for DISK_HEALTH_NOTIFICATION_DATA {} +impl ::core::clone::Clone for DISK_HEALTH_NOTIFICATION_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct DLGITEMTEMPLATE { + pub style: u32, + pub dwExtendedStyle: u32, + pub x: i16, + pub y: i16, + pub cx: i16, + pub cy: i16, + pub id: u16, +} +impl ::core::marker::Copy for DLGITEMTEMPLATE {} +impl ::core::clone::Clone for DLGITEMTEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C, packed(2))] +pub struct DLGTEMPLATE { + pub style: u32, + pub dwExtendedStyle: u32, + pub cdit: u16, + pub x: i16, + pub y: i16, + pub cx: i16, + pub cy: i16, +} +impl ::core::marker::Copy for DLGTEMPLATE {} +impl ::core::clone::Clone for DLGTEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct DROPSTRUCT { + pub hwndSource: super::super::Foundation::HWND, + pub hwndSink: super::super::Foundation::HWND, + pub wFmt: u32, + pub dwData: usize, + pub ptDrop: super::super::Foundation::POINT, + pub dwControlData: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for DROPSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for DROPSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct EVENTMSG { + pub message: u32, + pub paramL: u32, + pub paramH: u32, + pub time: u32, + pub hwnd: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for EVENTMSG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for EVENTMSG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct FLASHWINFO { + pub cbSize: u32, + pub hwnd: super::super::Foundation::HWND, + pub dwFlags: FLASHWINFO_FLAGS, + pub uCount: u32, + pub dwTimeout: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for FLASHWINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for FLASHWINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GETCLIPBMETADATA { + pub Version: u32, + pub IsDelayRendered: super::super::Foundation::BOOL, + pub IsSynthetic: super::super::Foundation::BOOL, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GETCLIPBMETADATA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GETCLIPBMETADATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct GUID_IO_DISK_CLONE_ARRIVAL_INFORMATION { + pub DiskNumber: u32, +} +impl ::core::marker::Copy for GUID_IO_DISK_CLONE_ARRIVAL_INFORMATION {} +impl ::core::clone::Clone for GUID_IO_DISK_CLONE_ARRIVAL_INFORMATION { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct GUITHREADINFO { + pub cbSize: u32, + pub flags: GUITHREADINFO_FLAGS, + pub hwndActive: super::super::Foundation::HWND, + pub hwndFocus: super::super::Foundation::HWND, + pub hwndCapture: super::super::Foundation::HWND, + pub hwndMenuOwner: super::super::Foundation::HWND, + pub hwndMoveSize: super::super::Foundation::HWND, + pub hwndCaret: super::super::Foundation::HWND, + pub rcCaret: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for GUITHREADINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for GUITHREADINFO { + fn clone(&self) -> Self { + *self + } +} +pub type HACCEL = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct HARDWAREHOOKSTRUCT { + pub hwnd: super::super::Foundation::HWND, + pub message: u32, + pub wParam: super::super::Foundation::WPARAM, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for HARDWAREHOOKSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for HARDWAREHOOKSTRUCT { + fn clone(&self) -> Self { + *self + } +} +pub type HCURSOR = isize; +pub type HDEVNOTIFY = *mut ::core::ffi::c_void; +pub type HDWP = isize; +pub type HHOOK = isize; +pub type HICON = isize; +pub type HMENU = isize; +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct ICONINFO { + pub fIcon: super::super::Foundation::BOOL, + pub xHotspot: u32, + pub yHotspot: u32, + pub hbmMask: super::super::Graphics::Gdi::HBITMAP, + pub hbmColor: super::super::Graphics::Gdi::HBITMAP, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for ICONINFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for ICONINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct ICONINFOEXA { + pub cbSize: u32, + pub fIcon: super::super::Foundation::BOOL, + pub xHotspot: u32, + pub yHotspot: u32, + pub hbmMask: super::super::Graphics::Gdi::HBITMAP, + pub hbmColor: super::super::Graphics::Gdi::HBITMAP, + pub wResID: u16, + pub szModName: [u8; 260], + pub szResName: [u8; 260], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for ICONINFOEXA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for ICONINFOEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct ICONINFOEXW { + pub cbSize: u32, + pub fIcon: super::super::Foundation::BOOL, + pub xHotspot: u32, + pub yHotspot: u32, + pub hbmMask: super::super::Graphics::Gdi::HBITMAP, + pub hbmColor: super::super::Graphics::Gdi::HBITMAP, + pub wResID: u16, + pub szModName: [u16; 260], + pub szResName: [u16; 260], +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for ICONINFOEXW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for ICONINFOEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct ICONMETRICSA { + pub cbSize: u32, + pub iHorzSpacing: i32, + pub iVertSpacing: i32, + pub iTitleWrap: i32, + pub lfFont: super::super::Graphics::Gdi::LOGFONTA, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for ICONMETRICSA {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for ICONMETRICSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct ICONMETRICSW { + pub cbSize: u32, + pub iHorzSpacing: i32, + pub iVertSpacing: i32, + pub iTitleWrap: i32, + pub lfFont: super::super::Graphics::Gdi::LOGFONTW, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for ICONMETRICSW {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for ICONMETRICSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct IndexedResourceQualifier { + pub name: ::windows_sys::core::PWSTR, + pub value: ::windows_sys::core::PWSTR, +} +impl ::core::marker::Copy for IndexedResourceQualifier {} +impl ::core::clone::Clone for IndexedResourceQualifier { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct KBDLLHOOKSTRUCT { + pub vkCode: u32, + pub scanCode: u32, + pub flags: KBDLLHOOKSTRUCT_FLAGS, + pub time: u32, + pub dwExtraInfo: usize, +} +impl ::core::marker::Copy for KBDLLHOOKSTRUCT {} +impl ::core::clone::Clone for KBDLLHOOKSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MDICREATESTRUCTA { + pub szClass: ::windows_sys::core::PCSTR, + pub szTitle: ::windows_sys::core::PCSTR, + pub hOwner: super::super::Foundation::HANDLE, + pub x: i32, + pub y: i32, + pub cx: i32, + pub cy: i32, + pub style: WINDOW_STYLE, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MDICREATESTRUCTA {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MDICREATESTRUCTA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MDICREATESTRUCTW { + pub szClass: ::windows_sys::core::PCWSTR, + pub szTitle: ::windows_sys::core::PCWSTR, + pub hOwner: super::super::Foundation::HANDLE, + pub x: i32, + pub y: i32, + pub cx: i32, + pub cy: i32, + pub style: WINDOW_STYLE, + pub lParam: super::super::Foundation::LPARAM, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MDICREATESTRUCTW {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MDICREATESTRUCTW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MDINEXTMENU { + pub hmenuIn: HMENU, + pub hmenuNext: HMENU, + pub hwndNext: super::super::Foundation::HWND, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MDINEXTMENU {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MDINEXTMENU { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MENUBARINFO { + pub cbSize: u32, + pub rcBar: super::super::Foundation::RECT, + pub hMenu: HMENU, + pub hwndMenu: super::super::Foundation::HWND, + pub _bitfield: i32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MENUBARINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MENUBARINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MENUEX_TEMPLATE_HEADER { + pub wVersion: u16, + pub wOffset: u16, + pub dwHelpId: u32, +} +impl ::core::marker::Copy for MENUEX_TEMPLATE_HEADER {} +impl ::core::clone::Clone for MENUEX_TEMPLATE_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MENUEX_TEMPLATE_ITEM { + pub dwType: u32, + pub dwState: u32, + pub uId: u32, + pub wFlags: u16, + pub szText: [u16; 1], +} +impl ::core::marker::Copy for MENUEX_TEMPLATE_ITEM {} +impl ::core::clone::Clone for MENUEX_TEMPLATE_ITEM { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MENUGETOBJECTINFO { + pub dwFlags: MENUGETOBJECTINFO_FLAGS, + pub uPos: u32, + pub hmenu: HMENU, + pub riid: *mut ::core::ffi::c_void, + pub pvObj: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for MENUGETOBJECTINFO {} +impl ::core::clone::Clone for MENUGETOBJECTINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct MENUINFO { + pub cbSize: u32, + pub fMask: MENUINFO_MASK, + pub dwStyle: MENUINFO_STYLE, + pub cyMax: u32, + pub hbrBack: super::super::Graphics::Gdi::HBRUSH, + pub dwContextHelpID: u32, + pub dwMenuData: usize, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for MENUINFO {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for MENUINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct MENUITEMINFOA { + pub cbSize: u32, + pub fMask: MENU_ITEM_MASK, + pub fType: MENU_ITEM_TYPE, + pub fState: MENU_ITEM_STATE, + pub wID: u32, + pub hSubMenu: HMENU, + pub hbmpChecked: super::super::Graphics::Gdi::HBITMAP, + pub hbmpUnchecked: super::super::Graphics::Gdi::HBITMAP, + pub dwItemData: usize, + pub dwTypeData: ::windows_sys::core::PSTR, + pub cch: u32, + pub hbmpItem: super::super::Graphics::Gdi::HBITMAP, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for MENUITEMINFOA {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for MENUITEMINFOA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct MENUITEMINFOW { + pub cbSize: u32, + pub fMask: MENU_ITEM_MASK, + pub fType: MENU_ITEM_TYPE, + pub fState: MENU_ITEM_STATE, + pub wID: u32, + pub hSubMenu: HMENU, + pub hbmpChecked: super::super::Graphics::Gdi::HBITMAP, + pub hbmpUnchecked: super::super::Graphics::Gdi::HBITMAP, + pub dwItemData: usize, + pub dwTypeData: ::windows_sys::core::PWSTR, + pub cch: u32, + pub hbmpItem: super::super::Graphics::Gdi::HBITMAP, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for MENUITEMINFOW {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for MENUITEMINFOW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MENUITEMTEMPLATE { + pub mtOption: u16, + pub mtID: u16, + pub mtString: [u16; 1], +} +impl ::core::marker::Copy for MENUITEMTEMPLATE {} +impl ::core::clone::Clone for MENUITEMTEMPLATE { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MENUITEMTEMPLATEHEADER { + pub versionNumber: u16, + pub offset: u16, +} +impl ::core::marker::Copy for MENUITEMTEMPLATEHEADER {} +impl ::core::clone::Clone for MENUITEMTEMPLATEHEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MENUTEMPLATEEX { + pub Anonymous: MENUTEMPLATEEX_0, +} +impl ::core::marker::Copy for MENUTEMPLATEEX {} +impl ::core::clone::Clone for MENUTEMPLATEEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub union MENUTEMPLATEEX_0 { + pub Menu: MENUTEMPLATEEX_0_1, + pub MenuEx: MENUTEMPLATEEX_0_0, +} +impl ::core::marker::Copy for MENUTEMPLATEEX_0 {} +impl ::core::clone::Clone for MENUTEMPLATEEX_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MENUTEMPLATEEX_0_0 { + pub mexHeader: MENUEX_TEMPLATE_HEADER, + pub mexItem: [MENUEX_TEMPLATE_ITEM; 1], +} +impl ::core::marker::Copy for MENUTEMPLATEEX_0_0 {} +impl ::core::clone::Clone for MENUTEMPLATEEX_0_0 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MENUTEMPLATEEX_0_1 { + pub mitHeader: MENUITEMTEMPLATEHEADER, + pub miTemplate: [MENUITEMTEMPLATE; 1], +} +impl ::core::marker::Copy for MENUTEMPLATEEX_0_1 {} +impl ::core::clone::Clone for MENUTEMPLATEEX_0_1 { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MESSAGE_RESOURCE_BLOCK { + pub LowId: u32, + pub HighId: u32, + pub OffsetToEntries: u32, +} +impl ::core::marker::Copy for MESSAGE_RESOURCE_BLOCK {} +impl ::core::clone::Clone for MESSAGE_RESOURCE_BLOCK { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MESSAGE_RESOURCE_DATA { + pub NumberOfBlocks: u32, + pub Blocks: [MESSAGE_RESOURCE_BLOCK; 1], +} +impl ::core::marker::Copy for MESSAGE_RESOURCE_DATA {} +impl ::core::clone::Clone for MESSAGE_RESOURCE_DATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MESSAGE_RESOURCE_ENTRY { + pub Length: u16, + pub Flags: u16, + pub Text: [u8; 1], +} +impl ::core::marker::Copy for MESSAGE_RESOURCE_ENTRY {} +impl ::core::clone::Clone for MESSAGE_RESOURCE_ENTRY { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MINIMIZEDMETRICS { + pub cbSize: u32, + pub iWidth: i32, + pub iHorzGap: i32, + pub iVertGap: i32, + pub iArrange: MINIMIZEDMETRICS_ARRANGE, +} +impl ::core::marker::Copy for MINIMIZEDMETRICS {} +impl ::core::clone::Clone for MINIMIZEDMETRICS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MINMAXINFO { + pub ptReserved: super::super::Foundation::POINT, + pub ptMaxSize: super::super::Foundation::POINT, + pub ptMaxPosition: super::super::Foundation::POINT, + pub ptMinTrackSize: super::super::Foundation::POINT, + pub ptMaxTrackSize: super::super::Foundation::POINT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MINMAXINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MINMAXINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MOUSEHOOKSTRUCT { + pub pt: super::super::Foundation::POINT, + pub hwnd: super::super::Foundation::HWND, + pub wHitTestCode: u32, + pub dwExtraInfo: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MOUSEHOOKSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MOUSEHOOKSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MOUSEHOOKSTRUCTEX { + pub Base: MOUSEHOOKSTRUCT, + pub mouseData: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MOUSEHOOKSTRUCTEX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MOUSEHOOKSTRUCTEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MSG { + pub hwnd: super::super::Foundation::HWND, + pub message: u32, + pub wParam: super::super::Foundation::WPARAM, + pub lParam: super::super::Foundation::LPARAM, + pub time: u32, + pub pt: super::super::Foundation::POINT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MSG {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MSG { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +pub struct MSGBOXPARAMSA { + pub cbSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszText: ::windows_sys::core::PCSTR, + pub lpszCaption: ::windows_sys::core::PCSTR, + pub dwStyle: MESSAGEBOX_STYLE, + pub lpszIcon: ::windows_sys::core::PCSTR, + pub dwContextHelpId: usize, + pub lpfnMsgBoxCallback: MSGBOXCALLBACK, + pub dwLanguageId: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +impl ::core::marker::Copy for MSGBOXPARAMSA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +impl ::core::clone::Clone for MSGBOXPARAMSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +pub struct MSGBOXPARAMSW { + pub cbSize: u32, + pub hwndOwner: super::super::Foundation::HWND, + pub hInstance: super::super::Foundation::HINSTANCE, + pub lpszText: ::windows_sys::core::PCWSTR, + pub lpszCaption: ::windows_sys::core::PCWSTR, + pub dwStyle: MESSAGEBOX_STYLE, + pub lpszIcon: ::windows_sys::core::PCWSTR, + pub dwContextHelpId: usize, + pub lpfnMsgBoxCallback: MSGBOXCALLBACK, + pub dwLanguageId: u32, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +impl ::core::marker::Copy for MSGBOXPARAMSW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +impl ::core::clone::Clone for MSGBOXPARAMSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct MSLLHOOKSTRUCT { + pub pt: super::super::Foundation::POINT, + pub mouseData: u32, + pub flags: u32, + pub time: u32, + pub dwExtraInfo: usize, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for MSLLHOOKSTRUCT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for MSLLHOOKSTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MrmResourceIndexerHandle { + pub handle: *mut ::core::ffi::c_void, +} +impl ::core::marker::Copy for MrmResourceIndexerHandle {} +impl ::core::clone::Clone for MrmResourceIndexerHandle { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct MrmResourceIndexerMessage { + pub severity: MrmResourceIndexerMessageSeverity, + pub id: u32, + pub text: ::windows_sys::core::PCWSTR, +} +impl ::core::marker::Copy for MrmResourceIndexerMessage {} +impl ::core::clone::Clone for MrmResourceIndexerMessage { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct NCCALCSIZE_PARAMS { + pub rgrc: [super::super::Foundation::RECT; 3], + pub lppos: *mut WINDOWPOS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for NCCALCSIZE_PARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for NCCALCSIZE_PARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct NONCLIENTMETRICSA { + pub cbSize: u32, + pub iBorderWidth: i32, + pub iScrollWidth: i32, + pub iScrollHeight: i32, + pub iCaptionWidth: i32, + pub iCaptionHeight: i32, + pub lfCaptionFont: super::super::Graphics::Gdi::LOGFONTA, + pub iSmCaptionWidth: i32, + pub iSmCaptionHeight: i32, + pub lfSmCaptionFont: super::super::Graphics::Gdi::LOGFONTA, + pub iMenuWidth: i32, + pub iMenuHeight: i32, + pub lfMenuFont: super::super::Graphics::Gdi::LOGFONTA, + pub lfStatusFont: super::super::Graphics::Gdi::LOGFONTA, + pub lfMessageFont: super::super::Graphics::Gdi::LOGFONTA, + pub iPaddedBorderWidth: i32, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for NONCLIENTMETRICSA {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for NONCLIENTMETRICSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] +#[cfg(feature = "Win32_Graphics_Gdi")] +pub struct NONCLIENTMETRICSW { + pub cbSize: u32, + pub iBorderWidth: i32, + pub iScrollWidth: i32, + pub iScrollHeight: i32, + pub iCaptionWidth: i32, + pub iCaptionHeight: i32, + pub lfCaptionFont: super::super::Graphics::Gdi::LOGFONTW, + pub iSmCaptionWidth: i32, + pub iSmCaptionHeight: i32, + pub lfSmCaptionFont: super::super::Graphics::Gdi::LOGFONTW, + pub iMenuWidth: i32, + pub iMenuHeight: i32, + pub lfMenuFont: super::super::Graphics::Gdi::LOGFONTW, + pub lfStatusFont: super::super::Graphics::Gdi::LOGFONTW, + pub lfMessageFont: super::super::Graphics::Gdi::LOGFONTW, + pub iPaddedBorderWidth: i32, +} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::marker::Copy for NONCLIENTMETRICSW {} +#[cfg(feature = "Win32_Graphics_Gdi")] +impl ::core::clone::Clone for NONCLIENTMETRICSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SCROLLBARINFO { + pub cbSize: u32, + pub rcScrollBar: super::super::Foundation::RECT, + pub dxyLineButton: i32, + pub xyThumbTop: i32, + pub xyThumbBottom: i32, + pub reserved: i32, + pub rgstate: [u32; 6], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SCROLLBARINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SCROLLBARINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct SCROLLINFO { + pub cbSize: u32, + pub fMask: SCROLLINFO_MASK, + pub nMin: i32, + pub nMax: i32, + pub nPage: u32, + pub nPos: i32, + pub nTrackPos: i32, +} +impl ::core::marker::Copy for SCROLLINFO {} +impl ::core::clone::Clone for SCROLLINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct SHELLHOOKINFO { + pub hwnd: super::super::Foundation::HWND, + pub rc: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for SHELLHOOKINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for SHELLHOOKINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct STYLESTRUCT { + pub styleOld: u32, + pub styleNew: u32, +} +impl ::core::marker::Copy for STYLESTRUCT {} +impl ::core::clone::Clone for STYLESTRUCT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TITLEBARINFO { + pub cbSize: u32, + pub rcTitleBar: super::super::Foundation::RECT, + pub rgstate: [u32; 6], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TITLEBARINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TITLEBARINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TITLEBARINFOEX { + pub cbSize: u32, + pub rcTitleBar: super::super::Foundation::RECT, + pub rgstate: [u32; 6], + pub rgrect: [super::super::Foundation::RECT; 6], +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TITLEBARINFOEX {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TITLEBARINFOEX { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct TOUCHPREDICTIONPARAMETERS { + pub cbSize: u32, + pub dwLatency: u32, + pub dwSampleTime: u32, + pub bUseHWTimeStamp: u32, +} +impl ::core::marker::Copy for TOUCHPREDICTIONPARAMETERS {} +impl ::core::clone::Clone for TOUCHPREDICTIONPARAMETERS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct TPMPARAMS { + pub cbSize: u32, + pub rcExclude: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for TPMPARAMS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for TPMPARAMS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct UPDATELAYEREDWINDOWINFO { + pub cbSize: u32, + pub hdcDst: super::super::Graphics::Gdi::HDC, + pub pptDst: *const super::super::Foundation::POINT, + pub psize: *const super::super::Foundation::SIZE, + pub hdcSrc: super::super::Graphics::Gdi::HDC, + pub pptSrc: *const super::super::Foundation::POINT, + pub crKey: super::super::Foundation::COLORREF, + pub pblend: *const super::super::Graphics::Gdi::BLENDFUNCTION, + pub dwFlags: UPDATE_LAYERED_WINDOW_FLAGS, + pub prcDirty: *const super::super::Foundation::RECT, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for UPDATELAYEREDWINDOWINFO {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for UPDATELAYEREDWINDOWINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct VolLockBroadcast { + pub vlb_dbh: DEV_BROADCAST_HDR, + pub vlb_owner: u32, + pub vlb_perms: u8, + pub vlb_lockType: u8, + pub vlb_drive: u8, + pub vlb_flags: u8, +} +impl ::core::marker::Copy for VolLockBroadcast {} +impl ::core::clone::Clone for VolLockBroadcast { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINDOWINFO { + pub cbSize: u32, + pub rcWindow: super::super::Foundation::RECT, + pub rcClient: super::super::Foundation::RECT, + pub dwStyle: WINDOW_STYLE, + pub dwExStyle: WINDOW_EX_STYLE, + pub dwWindowStatus: u32, + pub cxWindowBorders: u32, + pub cyWindowBorders: u32, + pub atomWindowType: u16, + pub wCreatorVersion: u16, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINDOWINFO {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINDOWINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINDOWPLACEMENT { + pub length: u32, + pub flags: WINDOWPLACEMENT_FLAGS, + pub showCmd: u32, + pub ptMinPosition: super::super::Foundation::POINT, + pub ptMaxPosition: super::super::Foundation::POINT, + pub rcNormalPosition: super::super::Foundation::RECT, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINDOWPLACEMENT {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINDOWPLACEMENT { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct WINDOWPOS { + pub hwnd: super::super::Foundation::HWND, + pub hwndInsertAfter: super::super::Foundation::HWND, + pub x: i32, + pub y: i32, + pub cx: i32, + pub cy: i32, + pub flags: SET_WINDOW_POS_FLAGS, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for WINDOWPOS {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for WINDOWPOS { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct WNDCLASSA { + pub style: WNDCLASS_STYLES, + pub lpfnWndProc: WNDPROC, + pub cbClsExtra: i32, + pub cbWndExtra: i32, + pub hInstance: super::super::Foundation::HINSTANCE, + pub hIcon: HICON, + pub hCursor: HCURSOR, + pub hbrBackground: super::super::Graphics::Gdi::HBRUSH, + pub lpszMenuName: ::windows_sys::core::PCSTR, + pub lpszClassName: ::windows_sys::core::PCSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for WNDCLASSA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for WNDCLASSA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct WNDCLASSEXA { + pub cbSize: u32, + pub style: WNDCLASS_STYLES, + pub lpfnWndProc: WNDPROC, + pub cbClsExtra: i32, + pub cbWndExtra: i32, + pub hInstance: super::super::Foundation::HINSTANCE, + pub hIcon: HICON, + pub hCursor: HCURSOR, + pub hbrBackground: super::super::Graphics::Gdi::HBRUSH, + pub lpszMenuName: ::windows_sys::core::PCSTR, + pub lpszClassName: ::windows_sys::core::PCSTR, + pub hIconSm: HICON, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for WNDCLASSEXA {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for WNDCLASSEXA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct WNDCLASSEXW { + pub cbSize: u32, + pub style: WNDCLASS_STYLES, + pub lpfnWndProc: WNDPROC, + pub cbClsExtra: i32, + pub cbWndExtra: i32, + pub hInstance: super::super::Foundation::HINSTANCE, + pub hIcon: HICON, + pub hCursor: HCURSOR, + pub hbrBackground: super::super::Graphics::Gdi::HBRUSH, + pub lpszMenuName: ::windows_sys::core::PCWSTR, + pub lpszClassName: ::windows_sys::core::PCWSTR, + pub hIconSm: HICON, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for WNDCLASSEXW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for WNDCLASSEXW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +pub struct WNDCLASSW { + pub style: WNDCLASS_STYLES, + pub lpfnWndProc: WNDPROC, + pub cbClsExtra: i32, + pub cbWndExtra: i32, + pub hInstance: super::super::Foundation::HINSTANCE, + pub hIcon: HICON, + pub hCursor: HCURSOR, + pub hbrBackground: super::super::Graphics::Gdi::HBRUSH, + pub lpszMenuName: ::windows_sys::core::PCWSTR, + pub lpszClassName: ::windows_sys::core::PCWSTR, +} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::marker::Copy for WNDCLASSW {} +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] +impl ::core::clone::Clone for WNDCLASSW { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _DEV_BROADCAST_HEADER { + pub dbcd_size: u32, + pub dbcd_devicetype: u32, + pub dbcd_reserved: u32, +} +impl ::core::marker::Copy for _DEV_BROADCAST_HEADER {} +impl ::core::clone::Clone for _DEV_BROADCAST_HEADER { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct _DEV_BROADCAST_USERDEFINED { + pub dbud_dbh: DEV_BROADCAST_HDR, + pub dbud_szName: [u8; 1], +} +impl ::core::marker::Copy for _DEV_BROADCAST_USERDEFINED {} +impl ::core::clone::Clone for _DEV_BROADCAST_USERDEFINED { + fn clone(&self) -> Self { + *self + } +} +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type DLGPROC = ::core::option::Option isize>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type HOOKPROC = ::core::option::Option super::super::Foundation::LRESULT>; +#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell\"`"] +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell"))] +pub type MSGBOXCALLBACK = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type NAMEENUMPROCA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type NAMEENUMPROCW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PREGISTERCLASSNAMEW = ::core::option::Option super::super::Foundation::BOOLEAN>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PROPENUMPROCA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PROPENUMPROCEXA = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PROPENUMPROCEXW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type PROPENUMPROCW = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type SENDASYNCPROC = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type TIMERPROC = ::core::option::Option ()>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WNDENUMPROC = ::core::option::Option super::super::Foundation::BOOL>; +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub type WNDPROC = ::core::option::Option super::super::Foundation::LRESULT>; +#[cfg(target_pointer_width = "32")] +#[cfg(feature = "Win32_Foundation")] +pub use GetWindowLongA as GetWindowLongPtrA; +#[cfg(target_pointer_width = "32")] +#[cfg(feature = "Win32_Foundation")] +pub use GetWindowLongW as GetWindowLongPtrW; +#[cfg(target_pointer_width = "32")] +#[cfg(feature = "Win32_Foundation")] +pub use SetWindowLongA as SetWindowLongPtrA; +#[cfg(target_pointer_width = "32")] +#[cfg(feature = "Win32_Foundation")] +pub use SetWindowLongW as SetWindowLongPtrW; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/UI/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/mod.rs new file mode 100644 index 000000000..91f178ea7 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/UI/mod.rs @@ -0,0 +1,33 @@ +#[cfg(feature = "Win32_UI_Accessibility")] +#[doc = "Required features: `\"Win32_UI_Accessibility\"`"] +pub mod Accessibility; +#[cfg(feature = "Win32_UI_ColorSystem")] +#[doc = "Required features: `\"Win32_UI_ColorSystem\"`"] +pub mod ColorSystem; +#[cfg(feature = "Win32_UI_Controls")] +#[doc = "Required features: `\"Win32_UI_Controls\"`"] +pub mod Controls; +#[cfg(feature = "Win32_UI_HiDpi")] +#[doc = "Required features: `\"Win32_UI_HiDpi\"`"] +pub mod HiDpi; +#[cfg(feature = "Win32_UI_Input")] +#[doc = "Required features: `\"Win32_UI_Input\"`"] +pub mod Input; +#[cfg(feature = "Win32_UI_InteractionContext")] +#[doc = "Required features: `\"Win32_UI_InteractionContext\"`"] +pub mod InteractionContext; +#[cfg(feature = "Win32_UI_Magnification")] +#[doc = "Required features: `\"Win32_UI_Magnification\"`"] +pub mod Magnification; +#[cfg(feature = "Win32_UI_Shell")] +#[doc = "Required features: `\"Win32_UI_Shell\"`"] +pub mod Shell; +#[cfg(feature = "Win32_UI_TabletPC")] +#[doc = "Required features: `\"Win32_UI_TabletPC\"`"] +pub mod TabletPC; +#[cfg(feature = "Win32_UI_TextServices")] +#[doc = "Required features: `\"Win32_UI_TextServices\"`"] +pub mod TextServices; +#[cfg(feature = "Win32_UI_WindowsAndMessaging")] +#[doc = "Required features: `\"Win32_UI_WindowsAndMessaging\"`"] +pub mod WindowsAndMessaging; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Web/InternetExplorer/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Web/InternetExplorer/mod.rs new file mode 100644 index 000000000..aa059d280 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Web/InternetExplorer/mod.rs @@ -0,0 +1,751 @@ +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("imgutil.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn ComputeInvCMAP(prgbcolors : *const super::super::Graphics::Gdi:: RGBQUAD, ncolors : u32, pinvtable : *mut u8, cbtable : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))] +::windows_targets::link!("imgutil.dll" "system" #[doc = "Required features: `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`"] fn CreateDDrawSurfaceOnDIB(hbmdib : super::super::Graphics::Gdi:: HBITMAP, ppsurface : *mut super::super::Graphics::DirectDraw:: IDirectDrawSurface) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("imgutil.dll" "system" fn CreateMIMEMap(ppmap : *mut IMapMIMEToCLSID) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("imgutil.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn DecodeImage(pstream : super::super::System::Com:: IStream, pmap : IMapMIMEToCLSID, peventsink : ::windows_sys::core::IUnknown) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("imgutil.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn DecodeImageEx(pstream : super::super::System::Com:: IStream, pmap : IMapMIMEToCLSID, peventsink : ::windows_sys::core::IUnknown, pszmimetypeparam : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Graphics_Gdi")] +::windows_targets::link!("imgutil.dll" "system" #[doc = "Required features: `\"Win32_Graphics_Gdi\"`"] fn DitherTo8(pdestbits : *mut u8, ndestpitch : i32, psrcbits : *mut u8, nsrcpitch : i32, bfidsrc : *const ::windows_sys::core::GUID, prgbdestcolors : *mut super::super::Graphics::Gdi:: RGBQUAD, prgbsrccolors : *mut super::super::Graphics::Gdi:: RGBQUAD, pbdestinvmap : *mut u8, x : i32, y : i32, cx : i32, cy : i32, ldesttrans : i32, lsrctrans : i32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("imgutil.dll" "system" fn GetMaxMIMEIDBytes(pnmaxbytes : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ieframe.dll" "system" fn IEAssociateThreadWithTab(dwtabthreadid : u32, dwassociatedthreadid : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IECancelSaveFile(hstate : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IECreateDirectory(lppathname : ::windows_sys::core::PCWSTR, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES) -> super::super::Foundation:: BOOL); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"] fn IECreateFile(lpfilename : ::windows_sys::core::PCWSTR, dwdesiredaccess : u32, dwsharemode : u32, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, dwcreationdisposition : u32, dwflagsandattributes : u32, htemplatefile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: HANDLE); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IEDeleteFile(lpfilename : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +::windows_targets::link!("ieframe.dll" "system" fn IEDisassociateThreadWithTab(dwtabthreadid : u32, dwassociatedthreadid : u32) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn IEFindFirstFile(lpfilename : ::windows_sys::core::PCWSTR, lpfindfiledata : *const super::super::Storage::FileSystem:: WIN32_FIND_DATAA) -> super::super::Foundation:: HANDLE); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`"] fn IEGetFileAttributesEx(lpfilename : ::windows_sys::core::PCWSTR, finfolevelid : super::super::Storage::FileSystem:: GET_FILEEX_INFO_LEVELS, lpfileinformation : *const ::core::ffi::c_void) -> super::super::Foundation:: BOOL); +::windows_targets::link!("ieframe.dll" "system" fn IEGetProtectedModeCookie(lpszurl : ::windows_sys::core::PCWSTR, lpszcookiename : ::windows_sys::core::PCWSTR, lpszcookiedata : ::windows_sys::core::PWSTR, pcchcookiedata : *mut u32, dwflags : u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ieframe.dll" "system" fn IEGetWriteableFolderPath(clsidfolderid : *const ::windows_sys::core::GUID, lppwstrpath : *mut ::windows_sys::core::PWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Registry")] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_System_Registry\"`"] fn IEGetWriteableLowHKCU(phkey : *mut super::super::System::Registry:: HKEY) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IEInPrivateFilteringEnabled() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IEIsInPrivateBrowsing() -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IEIsProtectedModeProcess(pbresult : *mut super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ieframe.dll" "system" fn IEIsProtectedModeURL(lpwstrurl : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`"] fn IELaunchURL(lpwstrurl : ::windows_sys::core::PCWSTR, lpprocinfo : *mut super::super::System::Threading:: PROCESS_INFORMATION, lpinfo : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IEMoveFileEx(lpexistingfilename : ::windows_sys::core::PCWSTR, lpnewfilename : ::windows_sys::core::PCWSTR, dwflags : u32) -> super::super::Foundation:: BOOL); +::windows_targets::link!("ieframe.dll" "system" fn IERefreshElevationPolicy() -> ::windows_sys::core::HRESULT); +#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Registry"))] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_Registry\"`"] fn IERegCreateKeyEx(lpsubkey : ::windows_sys::core::PCWSTR, reserved : u32, lpclass : ::windows_sys::core::PCWSTR, dwoptions : u32, samdesired : u32, lpsecurityattributes : *const super::super::Security:: SECURITY_ATTRIBUTES, phkresult : *mut super::super::System::Registry:: HKEY, lpdwdisposition : *mut u32) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ieframe.dll" "system" fn IERegSetValueEx(lpsubkey : ::windows_sys::core::PCWSTR, lpvaluename : ::windows_sys::core::PCWSTR, reserved : u32, dwtype : u32, lpdata : *const u8, cbdata : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IERegisterWritableRegistryKey(guid : ::windows_sys::core::GUID, lpsubkey : ::windows_sys::core::PCWSTR, fsubkeyallowed : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ieframe.dll" "system" fn IERegisterWritableRegistryValue(guid : ::windows_sys::core::GUID, lppath : ::windows_sys::core::PCWSTR, lpvaluename : ::windows_sys::core::PCWSTR, dwtype : u32, lpdata : *const u8, cbmaxdata : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IERemoveDirectory(lppathname : ::windows_sys::core::PCWSTR) -> super::super::Foundation:: BOOL); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IESaveFile(hstate : super::super::Foundation:: HANDLE, lpwstrsourcefile : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("ieframe.dll" "system" fn IESetProtectedModeCookie(lpszurl : ::windows_sys::core::PCWSTR, lpszcookiename : ::windows_sys::core::PCWSTR, lpszcookiedata : ::windows_sys::core::PCWSTR, dwflags : u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IEShowOpenFileDialog(hwnd : super::super::Foundation:: HWND, lpwstrfilename : ::windows_sys::core::PWSTR, cchmaxfilename : u32, lpwstrinitialdir : ::windows_sys::core::PCWSTR, lpwstrfilter : ::windows_sys::core::PCWSTR, lpwstrdefext : ::windows_sys::core::PCWSTR, dwfilterindex : u32, dwflags : u32, phfile : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IEShowSaveFileDialog(hwnd : super::super::Foundation:: HWND, lpwstrinitialfilename : ::windows_sys::core::PCWSTR, lpwstrinitialdir : ::windows_sys::core::PCWSTR, lpwstrfilter : ::windows_sys::core::PCWSTR, lpwstrdefext : ::windows_sys::core::PCWSTR, dwfilterindex : u32, dwflags : u32, lppwstrdestinationfilepath : *mut ::windows_sys::core::PWSTR, phstate : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("ieframe.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn IETrackingProtectionEnabled() -> super::super::Foundation:: BOOL); +::windows_targets::link!("ieframe.dll" "system" fn IEUnregisterWritableRegistry(guid : ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("imgutil.dll" "system" fn IdentifyMIMEType(pbbytes : *const u8, nbytes : u32, pnformat : *mut u32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingAccessDeniedDialog(hdlg : super::super::Foundation:: HWND, pszusername : ::windows_sys::core::PCSTR, pszcontentdescription : ::windows_sys::core::PCSTR, pratingdetails : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingAccessDeniedDialog2(hdlg : super::super::Foundation:: HWND, pszusername : ::windows_sys::core::PCSTR, pratingdetails : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingAccessDeniedDialog2W(hdlg : super::super::Foundation:: HWND, pszusername : ::windows_sys::core::PCWSTR, pratingdetails : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingAccessDeniedDialogW(hdlg : super::super::Foundation:: HWND, pszusername : ::windows_sys::core::PCWSTR, pszcontentdescription : ::windows_sys::core::PCWSTR, pratingdetails : *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingAddToApprovedSites(hdlg : super::super::Foundation:: HWND, cbpasswordblob : u32, pbpasswordblob : *mut u8, lpszurl : ::windows_sys::core::PCWSTR, falwaysnever : super::super::Foundation:: BOOL, fsitepage : super::super::Foundation:: BOOL, fapprovedsitesenforced : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msrating.dll" "system" fn RatingCheckUserAccess(pszusername : ::windows_sys::core::PCSTR, pszurl : ::windows_sys::core::PCSTR, pszratinginfo : ::windows_sys::core::PCSTR, pdata : *const u8, cbdata : u32, ppratingdetails : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msrating.dll" "system" fn RatingCheckUserAccessW(pszusername : ::windows_sys::core::PCWSTR, pszurl : ::windows_sys::core::PCWSTR, pszratinginfo : ::windows_sys::core::PCWSTR, pdata : *const u8, cbdata : u32, ppratingdetails : *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingClickedOnPRFInternal(hwndowner : super::super::Foundation:: HWND, param1 : super::super::Foundation:: HINSTANCE, lpszfilename : ::windows_sys::core::PCSTR, nshow : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingClickedOnRATInternal(hwndowner : super::super::Foundation:: HWND, param1 : super::super::Foundation:: HINSTANCE, lpszfilename : ::windows_sys::core::PCSTR, nshow : i32) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingEnable(hwndparent : super::super::Foundation:: HWND, pszusername : ::windows_sys::core::PCSTR, fenable : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingEnableW(hwndparent : super::super::Foundation:: HWND, pszusername : ::windows_sys::core::PCWSTR, fenable : super::super::Foundation:: BOOL) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msrating.dll" "system" fn RatingEnabledQuery() -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msrating.dll" "system" fn RatingFreeDetails(pratingdetails : *const ::core::ffi::c_void) -> ::windows_sys::core::HRESULT); +::windows_targets::link!("msrating.dll" "system" fn RatingInit() -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingObtainCancel(hratingobtainquery : super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingObtainQuery(psztargeturl : ::windows_sys::core::PCSTR, dwuserdata : u32, fcallback : isize, phratingobtainquery : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingObtainQueryW(psztargeturl : ::windows_sys::core::PCWSTR, dwuserdata : u32, fcallback : isize, phratingobtainquery : *mut super::super::Foundation:: HANDLE) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingSetupUI(hdlg : super::super::Foundation:: HWND, pszusername : ::windows_sys::core::PCSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_Foundation")] +::windows_targets::link!("msrating.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn RatingSetupUIW(hdlg : super::super::Foundation:: HWND, pszusername : ::windows_sys::core::PCWSTR) -> ::windows_sys::core::HRESULT); +#[cfg(feature = "Win32_System_Com")] +::windows_targets::link!("imgutil.dll" "system" #[doc = "Required features: `\"Win32_System_Com\"`"] fn SniffStream(pinstream : super::super::System::Com:: IStream, pnformat : *mut u32, ppoutstream : *mut super::super::System::Com:: IStream) -> ::windows_sys::core::HRESULT); +pub type IActiveXUIHandlerSite = *mut ::core::ffi::c_void; +pub type IActiveXUIHandlerSite2 = *mut ::core::ffi::c_void; +pub type IActiveXUIHandlerSite3 = *mut ::core::ffi::c_void; +pub type IAnchorClick = *mut ::core::ffi::c_void; +pub type IAudioSessionSite = *mut ::core::ffi::c_void; +pub type ICaretPositionProvider = *mut ::core::ffi::c_void; +pub type IDeviceRect = *mut ::core::ffi::c_void; +pub type IDithererImpl = *mut ::core::ffi::c_void; +pub type IDocObjectService = *mut ::core::ffi::c_void; +pub type IDownloadBehavior = *mut ::core::ffi::c_void; +pub type IDownloadManager = *mut ::core::ffi::c_void; +pub type IEnumManagerFrames = *mut ::core::ffi::c_void; +pub type IEnumOpenServiceActivity = *mut ::core::ffi::c_void; +pub type IEnumOpenServiceActivityCategory = *mut ::core::ffi::c_void; +pub type IEnumSTATURL = *mut ::core::ffi::c_void; +pub type IExtensionValidation = *mut ::core::ffi::c_void; +pub type IHTMLPersistData = *mut ::core::ffi::c_void; +pub type IHTMLPersistDataOM = *mut ::core::ffi::c_void; +pub type IHTMLUserDataOM = *mut ::core::ffi::c_void; +pub type IHeaderFooter = *mut ::core::ffi::c_void; +pub type IHeaderFooter2 = *mut ::core::ffi::c_void; +pub type IHomePage = *mut ::core::ffi::c_void; +pub type IHomePageSetting = *mut ::core::ffi::c_void; +pub type IIEWebDriverManager = *mut ::core::ffi::c_void; +pub type IIEWebDriverSite = *mut ::core::ffi::c_void; +pub type IImageDecodeEventSink = *mut ::core::ffi::c_void; +pub type IImageDecodeEventSink2 = *mut ::core::ffi::c_void; +pub type IImageDecodeFilter = *mut ::core::ffi::c_void; +pub type IIntelliForms = *mut ::core::ffi::c_void; +pub type IInternetExplorerManager = *mut ::core::ffi::c_void; +pub type IInternetExplorerManager2 = *mut ::core::ffi::c_void; +pub type ILayoutRect = *mut ::core::ffi::c_void; +pub type IMapMIMEToCLSID = *mut ::core::ffi::c_void; +pub type IMediaActivityNotifySite = *mut ::core::ffi::c_void; +pub type IOpenService = *mut ::core::ffi::c_void; +pub type IOpenServiceActivity = *mut ::core::ffi::c_void; +pub type IOpenServiceActivityCategory = *mut ::core::ffi::c_void; +pub type IOpenServiceActivityInput = *mut ::core::ffi::c_void; +pub type IOpenServiceActivityManager = *mut ::core::ffi::c_void; +pub type IOpenServiceActivityOutputContext = *mut ::core::ffi::c_void; +pub type IOpenServiceManager = *mut ::core::ffi::c_void; +pub type IPeerFactory = *mut ::core::ffi::c_void; +pub type IPersistHistory = *mut ::core::ffi::c_void; +pub type IPrintTaskRequestFactory = *mut ::core::ffi::c_void; +pub type IPrintTaskRequestHandler = *mut ::core::ffi::c_void; +pub type IScrollableContextMenu = *mut ::core::ffi::c_void; +pub type IScrollableContextMenu2 = *mut ::core::ffi::c_void; +pub type ISniffStream = *mut ::core::ffi::c_void; +pub type ISurfacePresenterFlip = *mut ::core::ffi::c_void; +pub type ISurfacePresenterFlip2 = *mut ::core::ffi::c_void; +pub type ISurfacePresenterFlipBuffer = *mut ::core::ffi::c_void; +pub type ITargetContainer = *mut ::core::ffi::c_void; +pub type ITargetEmbedding = *mut ::core::ffi::c_void; +pub type ITargetFrame = *mut ::core::ffi::c_void; +pub type ITargetFrame2 = *mut ::core::ffi::c_void; +pub type ITargetFramePriv = *mut ::core::ffi::c_void; +pub type ITargetFramePriv2 = *mut ::core::ffi::c_void; +pub type ITargetNotify = *mut ::core::ffi::c_void; +pub type ITargetNotify2 = *mut ::core::ffi::c_void; +pub type ITimer = *mut ::core::ffi::c_void; +pub type ITimerEx = *mut ::core::ffi::c_void; +pub type ITimerService = *mut ::core::ffi::c_void; +pub type ITimerSink = *mut ::core::ffi::c_void; +pub type ITridentTouchInput = *mut ::core::ffi::c_void; +pub type ITridentTouchInputSite = *mut ::core::ffi::c_void; +pub type IUrlHistoryNotify = *mut ::core::ffi::c_void; +pub type IUrlHistoryStg = *mut ::core::ffi::c_void; +pub type IUrlHistoryStg2 = *mut ::core::ffi::c_void; +pub type IViewObjectPresentFlip = *mut ::core::ffi::c_void; +pub type IViewObjectPresentFlip2 = *mut ::core::ffi::c_void; +pub type IViewObjectPresentFlipSite = *mut ::core::ffi::c_void; +pub type IViewObjectPresentFlipSite2 = *mut ::core::ffi::c_void; +pub type IWebBrowserEventsService = *mut ::core::ffi::c_void; +pub type IWebBrowserEventsUrlService = *mut ::core::ffi::c_void; +pub type Iwfolders = *mut ::core::ffi::c_void; +pub const ADDRESSBAND: u32 = 2u32; +pub const ADDURL_ADDTOCACHE: ADDURL_FLAG = 1i32; +pub const ADDURL_ADDTOHISTORYANDCACHE: ADDURL_FLAG = 0i32; +pub const ADDURL_FIRST: ADDURL_FLAG = 0i32; +pub const ADDURL_Max: ADDURL_FLAG = 2147483647i32; +pub const ActivityContentCount: OpenServiceActivityContentType = 3i32; +pub const ActivityContentDocument: OpenServiceActivityContentType = 0i32; +pub const ActivityContentLink: OpenServiceActivityContentType = 2i32; +pub const ActivityContentNone: OpenServiceActivityContentType = -1i32; +pub const ActivityContentSelection: OpenServiceActivityContentType = 1i32; +pub const AnchorClick: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x13d5413c_33b9_11d2_95a7_00c04f8ecb02); +pub const CATID_MSOfficeAntiVirus: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x56ffcc30_d398_11d0_b2ae_00a0c908fa49); +pub const CDeviceRect: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f6d4_98b5_11cf_bb82_00aa00bdce0b); +pub const CDownloadBehavior: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f5be_98b5_11cf_bb82_00aa00bdce0b); +pub const CHeaderFooter: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f6cd_98b5_11cf_bb82_00aa00bdce0b); +pub const CLayoutRect: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f664_98b5_11cf_bb82_00aa00bdce0b); +pub const COLOR_NO_TRANSPARENT: u32 = 4294967295u32; +pub const CPersistDataPeer: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f487_98b5_11cf_bb82_00aa00bdce0b); +pub const CPersistHistory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f4c8_98b5_11cf_bb82_00aa00bdce0b); +pub const CPersistShortcut: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f4c6_98b5_11cf_bb82_00aa00bdce0b); +pub const CPersistSnapshot: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f4c9_98b5_11cf_bb82_00aa00bdce0b); +pub const CPersistUserData: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f48e_98b5_11cf_bb82_00aa00bdce0b); +pub const CoDitherToRGB8: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xa860ce50_3910_11d0_86fc_00a0c913f750); +pub const CoMapMIMEToCLSID: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x30c3b080_30fb_11d0_b724_00aa006c1a01); +pub const CoSniffStream: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x6a01fda0_30df_11d0_b724_00aa006c1a01); +pub const DISPID_ACTIVEXFILTERINGENABLED: u32 = 61u32; +pub const DISPID_ADDCHANNEL: u32 = 5u32; +pub const DISPID_ADDDESKTOPCOMPONENT: u32 = 6u32; +pub const DISPID_ADDFAVORITE: u32 = 4u32; +pub const DISPID_ADDSEARCHPROVIDER: u32 = 14u32; +pub const DISPID_ADDSERVICE: u32 = 30u32; +pub const DISPID_ADDSITEMODE: u32 = 49u32; +pub const DISPID_ADDTHUMBNAILBUTTONS: u32 = 48u32; +pub const DISPID_ADDTOFAVORITESBAR: u32 = 32u32; +pub const DISPID_ADDTRACKINGPROTECTIONLIST: u32 = 57u32; +pub const DISPID_ADVANCEERROR: u32 = 10u32; +pub const DISPID_AMBIENT_OFFLINEIFNOTCONNECTED: i32 = -5501i32; +pub const DISPID_AMBIENT_SILENT: i32 = -5502i32; +pub const DISPID_AUTOCOMPLETEATTACH: u32 = 12u32; +pub const DISPID_AUTOCOMPLETESAVEFORM: u32 = 10u32; +pub const DISPID_AUTOSCAN: u32 = 11u32; +pub const DISPID_BEFORENAVIGATE: u32 = 100u32; +pub const DISPID_BEFORENAVIGATE2: u32 = 250u32; +pub const DISPID_BEFORESCRIPTEXECUTE: u32 = 290u32; +pub const DISPID_BRANDIMAGEURI: u32 = 20u32; +pub const DISPID_BUILDNEWTABPAGE: u32 = 33u32; +pub const DISPID_CANADVANCEERROR: u32 = 12u32; +pub const DISPID_CANRETREATERROR: u32 = 13u32; +pub const DISPID_CHANGEDEFAULTBROWSER: u32 = 68u32; +pub const DISPID_CLEARNOTIFICATION: u32 = 71u32; +pub const DISPID_CLEARSITEMODEICONOVERLAY: u32 = 45u32; +pub const DISPID_CLIENTTOHOSTWINDOW: u32 = 268u32; +pub const DISPID_COMMANDSTATECHANGE: u32 = 105u32; +pub const DISPID_CONTENTDISCOVERYRESET: u32 = 36u32; +pub const DISPID_COUNTVIEWTYPES: u32 = 22u32; +pub const DISPID_CREATESUBSCRIPTION: u32 = 11u32; +pub const DISPID_CUSTOMIZECLEARTYPE: u32 = 23u32; +pub const DISPID_CUSTOMIZESETTINGS: u32 = 17u32; +pub const DISPID_DEFAULTSEARCHPROVIDER: u32 = 26u32; +pub const DISPID_DELETESUBSCRIPTION: u32 = 12u32; +pub const DISPID_DEPTH: u32 = 17u32; +pub const DISPID_DIAGNOSECONNECTION: u32 = 22u32; +pub const DISPID_DIAGNOSECONNECTIONUILESS: u32 = 66u32; +pub const DISPID_DOCUMENTCOMPLETE: u32 = 259u32; +pub const DISPID_DOUBLECLICK: u32 = 3u32; +pub const DISPID_DOWNLOADBEGIN: u32 = 106u32; +pub const DISPID_DOWNLOADCOMPLETE: u32 = 104u32; +pub const DISPID_ENABLENOTIFICATIONQUEUE: u32 = 72u32; +pub const DISPID_ENABLENOTIFICATIONQUEUELARGE: u32 = 78u32; +pub const DISPID_ENABLENOTIFICATIONQUEUESQUARE: u32 = 76u32; +pub const DISPID_ENABLENOTIFICATIONQUEUEWIDE: u32 = 77u32; +pub const DISPID_ENABLESUGGESTEDSITES: u32 = 39u32; +pub const DISPID_ENUMOPTIONS: u32 = 14u32; +pub const DISPID_EXPAND: u32 = 25u32; +pub const DISPID_EXPORT: u32 = 7u32; +pub const DISPID_FAVSELECTIONCHANGE: u32 = 1u32; +pub const DISPID_FILEDOWNLOAD: u32 = 270u32; +pub const DISPID_FLAGS: u32 = 19u32; +pub const DISPID_FRAMEBEFORENAVIGATE: u32 = 200u32; +pub const DISPID_FRAMENAVIGATECOMPLETE: u32 = 201u32; +pub const DISPID_FRAMENEWWINDOW: u32 = 204u32; +pub const DISPID_GETALWAYSSHOWLOCKSTATE: u32 = 23u32; +pub const DISPID_GETCVLISTDATA: u32 = 93u32; +pub const DISPID_GETCVLISTLOCALDATA: u32 = 94u32; +pub const DISPID_GETDETAILSSTATE: u32 = 19u32; +pub const DISPID_GETEMIELISTDATA: u32 = 95u32; +pub const DISPID_GETEMIELISTLOCALDATA: u32 = 96u32; +pub const DISPID_GETERRORCHAR: u32 = 15u32; +pub const DISPID_GETERRORCODE: u32 = 16u32; +pub const DISPID_GETERRORLINE: u32 = 14u32; +pub const DISPID_GETERRORMSG: u32 = 17u32; +pub const DISPID_GETERRORURL: u32 = 18u32; +pub const DISPID_GETEXPERIMENTALFLAG: u32 = 85u32; +pub const DISPID_GETEXPERIMENTALVALUE: u32 = 87u32; +pub const DISPID_GETNEEDHVSIAUTOLAUNCHFLAG: u32 = 100u32; +pub const DISPID_GETNEEDIEAUTOLAUNCHFLAG: u32 = 89u32; +pub const DISPID_GETOSSKU: u32 = 103u32; +pub const DISPID_GETPERERRSTATE: u32 = 21u32; +pub const DISPID_HASNEEDHVSIAUTOLAUNCHFLAG: u32 = 102u32; +pub const DISPID_HASNEEDIEAUTOLAUNCHFLAG: u32 = 88u32; +pub const DISPID_IMPORT: u32 = 6u32; +pub const DISPID_IMPORTEXPORTFAVORITES: u32 = 9u32; +pub const DISPID_INITIALIZED: u32 = 4u32; +pub const DISPID_INPRIVATEFILTERINGENABLED: u32 = 37u32; +pub const DISPID_INVOKECONTEXTMENU: u32 = 8u32; +pub const DISPID_ISMETAREFERRERAVAILABLE: u32 = 83u32; +pub const DISPID_ISSEARCHMIGRATED: u32 = 25u32; +pub const DISPID_ISSEARCHPROVIDERINSTALLED: u32 = 24u32; +pub const DISPID_ISSERVICEINSTALLED: u32 = 31u32; +pub const DISPID_ISSITEMODE: u32 = 43u32; +pub const DISPID_ISSITEMODEFIRSTRUN: u32 = 59u32; +pub const DISPID_ISSUBSCRIBED: u32 = 7u32; +pub const DISPID_LAUNCHIE: u32 = 91u32; +pub const DISPID_LAUNCHINHVSI: u32 = 99u32; +pub const DISPID_LAUNCHINTERNETOPTIONS: u32 = 74u32; +pub const DISPID_LAUNCHNETWORKCLIENTHELP: u32 = 67u32; +pub const DISPID_MODE: u32 = 18u32; +pub const DISPID_MOVESELECTIONDOWN: u32 = 2u32; +pub const DISPID_MOVESELECTIONTO: u32 = 9u32; +pub const DISPID_MOVESELECTIONUP: u32 = 1u32; +pub const DISPID_NAVIGATEANDFIND: u32 = 8u32; +pub const DISPID_NAVIGATECOMPLETE: u32 = 101u32; +pub const DISPID_NAVIGATECOMPLETE2: u32 = 252u32; +pub const DISPID_NAVIGATEERROR: u32 = 271u32; +pub const DISPID_NAVIGATETOSUGGESTEDSITES: u32 = 40u32; +pub const DISPID_NEWFOLDER: u32 = 4u32; +pub const DISPID_NEWPROCESS: u32 = 284u32; +pub const DISPID_NEWWINDOW: u32 = 107u32; +pub const DISPID_NEWWINDOW2: u32 = 251u32; +pub const DISPID_NEWWINDOW3: u32 = 273u32; +pub const DISPID_NSCOLUMNS: u32 = 21u32; +pub const DISPID_ONADDRESSBAR: u32 = 261u32; +pub const DISPID_ONFULLSCREEN: u32 = 258u32; +pub const DISPID_ONMENUBAR: u32 = 256u32; +pub const DISPID_ONQUIT: u32 = 253u32; +pub const DISPID_ONSTATUSBAR: u32 = 257u32; +pub const DISPID_ONTHEATERMODE: u32 = 260u32; +pub const DISPID_ONTOOLBAR: u32 = 255u32; +pub const DISPID_ONVISIBLE: u32 = 254u32; +pub const DISPID_OPENFAVORITESPANE: u32 = 97u32; +pub const DISPID_OPENFAVORITESSETTINGS: u32 = 98u32; +pub const DISPID_PHISHINGENABLED: u32 = 19u32; +pub const DISPID_PINNEDSITESTATE: u32 = 73u32; +pub const DISPID_PRINTTEMPLATEINSTANTIATION: u32 = 225u32; +pub const DISPID_PRINTTEMPLATETEARDOWN: u32 = 226u32; +pub const DISPID_PRIVACYIMPACTEDSTATECHANGE: u32 = 272u32; +pub const DISPID_PROGRESSCHANGE: u32 = 108u32; +pub const DISPID_PROPERTYCHANGE: u32 = 112u32; +pub const DISPID_PROVISIONNETWORKS: u32 = 62u32; +pub const DISPID_QUIT: u32 = 103u32; +pub const DISPID_REDIRECTXDOMAINBLOCKED: u32 = 286u32; +pub const DISPID_REFRESHOFFLINEDESKTOP: u32 = 3u32; +pub const DISPID_REMOVESCHEDULEDTILENOTIFICATION: u32 = 80u32; +pub const DISPID_REPORTSAFEURL: u32 = 63u32; +pub const DISPID_RESETEXPERIMENTALFLAGS: u32 = 92u32; +pub const DISPID_RESETFIRSTBOOTMODE: u32 = 1u32; +pub const DISPID_RESETSAFEMODE: u32 = 2u32; +pub const DISPID_RESETSORT: u32 = 3u32; +pub const DISPID_RETREATERROR: u32 = 11u32; +pub const DISPID_ROOT: u32 = 16u32; +pub const DISPID_RUNONCEHASSHOWN: u32 = 28u32; +pub const DISPID_RUNONCEREQUIREDSETTINGSCOMPLETE: u32 = 27u32; +pub const DISPID_RUNONCESHOWN: u32 = 15u32; +pub const DISPID_SCHEDULEDTILENOTIFICATION: u32 = 79u32; +pub const DISPID_SEARCHGUIDEURL: u32 = 29u32; +pub const DISPID_SELECTEDITEM: u32 = 15u32; +pub const DISPID_SELECTEDITEMS: u32 = 24u32; +pub const DISPID_SELECTIONCHANGE: u32 = 2u32; +pub const DISPID_SETACTIVITIESVISIBLE: u32 = 35u32; +pub const DISPID_SETDETAILSSTATE: u32 = 20u32; +pub const DISPID_SETEXPERIMENTALFLAG: u32 = 84u32; +pub const DISPID_SETEXPERIMENTALVALUE: u32 = 86u32; +pub const DISPID_SETMSDEFAULTS: u32 = 104u32; +pub const DISPID_SETNEEDHVSIAUTOLAUNCHFLAG: u32 = 101u32; +pub const DISPID_SETNEEDIEAUTOLAUNCHFLAG: u32 = 90u32; +pub const DISPID_SETPERERRSTATE: u32 = 22u32; +pub const DISPID_SETPHISHINGFILTERSTATUS: u32 = 282u32; +pub const DISPID_SETRECENTLYCLOSEDVISIBLE: u32 = 34u32; +pub const DISPID_SETROOT: u32 = 13u32; +pub const DISPID_SETSECURELOCKICON: u32 = 269u32; +pub const DISPID_SETSITEMODEICONOVERLAY: u32 = 44u32; +pub const DISPID_SETSITEMODEPROPERTIES: u32 = 50u32; +pub const DISPID_SETTHUMBNAILBUTTONS: u32 = 47u32; +pub const DISPID_SETVIEWTYPE: u32 = 23u32; +pub const DISPID_SHELLUIHELPERLAST: u32 = 105u32; +pub const DISPID_SHOWBROWSERUI: u32 = 13u32; +pub const DISPID_SHOWINPRIVATEHELP: u32 = 42u32; +pub const DISPID_SHOWTABSHELP: u32 = 41u32; +pub const DISPID_SITEMODEACTIVATE: u32 = 58u32; +pub const DISPID_SITEMODEADDBUTTONSTYLE: u32 = 54u32; +pub const DISPID_SITEMODEADDJUMPLISTITEM: u32 = 52u32; +pub const DISPID_SITEMODECLEARBADGE: u32 = 65u32; +pub const DISPID_SITEMODECLEARJUMPLIST: u32 = 53u32; +pub const DISPID_SITEMODECREATEJUMPLIST: u32 = 51u32; +pub const DISPID_SITEMODEREFRESHBADGE: u32 = 64u32; +pub const DISPID_SITEMODESHOWBUTTONSTYLE: u32 = 55u32; +pub const DISPID_SITEMODESHOWJUMPLIST: u32 = 56u32; +pub const DISPID_SKIPRUNONCE: u32 = 16u32; +pub const DISPID_SKIPTABSWELCOME: u32 = 21u32; +pub const DISPID_SQMENABLED: u32 = 18u32; +pub const DISPID_STARTBADGEUPDATE: u32 = 81u32; +pub const DISPID_STARTPERIODICUPDATE: u32 = 70u32; +pub const DISPID_STARTPERIODICUPDATEBATCH: u32 = 75u32; +pub const DISPID_STATUSTEXTCHANGE: u32 = 102u32; +pub const DISPID_STOPBADGEUPDATE: u32 = 82u32; +pub const DISPID_STOPPERIODICUPDATE: u32 = 69u32; +pub const DISPID_SUBSCRIPTIONSENABLED: u32 = 10u32; +pub const DISPID_SUGGESTEDSITESENABLED: u32 = 38u32; +pub const DISPID_SYNCHRONIZE: u32 = 5u32; +pub const DISPID_THIRDPARTYURLBLOCKED: u32 = 285u32; +pub const DISPID_TITLECHANGE: u32 = 113u32; +pub const DISPID_TITLEICONCHANGE: u32 = 114u32; +pub const DISPID_TRACKINGPROTECTIONENABLED: u32 = 60u32; +pub const DISPID_TVFLAGS: u32 = 20u32; +pub const DISPID_UNSELECTALL: u32 = 26u32; +pub const DISPID_UPDATEPAGESTATUS: u32 = 227u32; +pub const DISPID_UPDATETHUMBNAILBUTTON: u32 = 46u32; +pub const DISPID_VIEWUPDATE: u32 = 281u32; +pub const DISPID_WEBWORKERFINISHED: u32 = 289u32; +pub const DISPID_WEBWORKERSTARTED: u32 = 288u32; +pub const DISPID_WINDOWACTIVATE: u32 = 111u32; +pub const DISPID_WINDOWCLOSING: u32 = 263u32; +pub const DISPID_WINDOWMOVE: u32 = 109u32; +pub const DISPID_WINDOWREGISTERED: u32 = 200u32; +pub const DISPID_WINDOWRESIZE: u32 = 110u32; +pub const DISPID_WINDOWREVOKED: u32 = 201u32; +pub const DISPID_WINDOWSETHEIGHT: u32 = 267u32; +pub const DISPID_WINDOWSETLEFT: u32 = 264u32; +pub const DISPID_WINDOWSETRESIZABLE: u32 = 262u32; +pub const DISPID_WINDOWSETTOP: u32 = 265u32; +pub const DISPID_WINDOWSETWIDTH: u32 = 266u32; +pub const DISPID_WINDOWSTATECHANGED: u32 = 283u32; +pub const E_SURFACE_DISCARDED: i32 = -2147434493i32; +pub const E_SURFACE_NODC: i32 = -2147434492i32; +pub const E_SURFACE_NOSURFACE: i32 = -2147434496i32; +pub const E_SURFACE_NOTMYDC: i32 = -2147434491i32; +pub const E_SURFACE_NOTMYPOINTER: i32 = -2147434494i32; +pub const E_SURFACE_UNKNOWN_FORMAT: i32 = -2147434495i32; +pub const ExtensionValidationContextDynamic: ExtensionValidationContexts = 1i32; +pub const ExtensionValidationContextNone: ExtensionValidationContexts = 0i32; +pub const ExtensionValidationContextParsed: ExtensionValidationContexts = 2i32; +pub const ExtensionValidationResultArrestPageLoad: ExtensionValidationResults = 2i32; +pub const ExtensionValidationResultDoNotInstantiate: ExtensionValidationResults = 1i32; +pub const ExtensionValidationResultNone: ExtensionValidationResults = 0i32; +pub const FINDFRAME_INTERNAL: FINDFRAME_FLAGS = -2147483648i32; +pub const FINDFRAME_JUSTTESTEXISTENCE: FINDFRAME_FLAGS = 1i32; +pub const FINDFRAME_NONE: FINDFRAME_FLAGS = 0i32; +pub const FRAMEOPTIONS_BROWSERBAND: FRAMEOPTIONS_FLAGS = 64i32; +pub const FRAMEOPTIONS_DESKTOP: FRAMEOPTIONS_FLAGS = 32i32; +pub const FRAMEOPTIONS_NO3DBORDER: FRAMEOPTIONS_FLAGS = 16i32; +pub const FRAMEOPTIONS_NORESIZE: FRAMEOPTIONS_FLAGS = 8i32; +pub const FRAMEOPTIONS_SCROLL_AUTO: FRAMEOPTIONS_FLAGS = 4i32; +pub const FRAMEOPTIONS_SCROLL_NO: FRAMEOPTIONS_FLAGS = 2i32; +pub const FRAMEOPTIONS_SCROLL_YES: FRAMEOPTIONS_FLAGS = 1i32; +pub const HomePage: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x766bf2ae_d650_11d1_9811_00c04fc31d2e); +pub const HomePageSetting: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x374cede0_873a_4c4f_bc86_bcc8cf5116a3); +pub const IECMDID_ARG_CLEAR_FORMS_ALL: u32 = 0u32; +pub const IECMDID_ARG_CLEAR_FORMS_ALL_BUT_PASSWORDS: u32 = 1u32; +pub const IECMDID_ARG_CLEAR_FORMS_PASSWORDS_ONLY: u32 = 2u32; +pub const IECMDID_BEFORENAVIGATE_DOEXTERNALBROWSE: u32 = 3u32; +pub const IECMDID_BEFORENAVIGATE_GETIDLIST: u32 = 4u32; +pub const IECMDID_BEFORENAVIGATE_GETSHELLBROWSE: u32 = 2u32; +pub const IECMDID_CLEAR_AUTOCOMPLETE_FOR_FORMS: u32 = 0u32; +pub const IECMDID_GET_INVOKE_DEFAULT_BROWSER_ON_NEW_WINDOW: u32 = 6u32; +pub const IECMDID_SETID_AUTOCOMPLETE_FOR_FORMS: u32 = 1u32; +pub const IECMDID_SET_INVOKE_DEFAULT_BROWSER_ON_NEW_WINDOW: u32 = 5u32; +pub const IEGetProcessModule_PROC_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IEGetProcessModule"); +pub const IEGetTabWindowExports_PROC_NAME: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("IEGetTabWindowExports"); +pub const IELAUNCHOPTION_FORCE_COMPAT: IELAUNCHOPTION_FLAGS = 2i32; +pub const IELAUNCHOPTION_FORCE_EDGE: IELAUNCHOPTION_FLAGS = 4i32; +pub const IELAUNCHOPTION_LOCK_ENGINE: IELAUNCHOPTION_FLAGS = 8i32; +pub const IELAUNCHOPTION_SCRIPTDEBUG: IELAUNCHOPTION_FLAGS = 1i32; +pub const IEPROCESS_MODULE_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IERtUtil.dll"); +pub const IEWebDriverManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x90314af2_5250_47b3_89d8_6295fc23bc22); +pub const IE_USE_OE_MAIL_HKEY: i32 = -2147483647i32; +pub const IE_USE_OE_MAIL_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Internet Explorer\\Mail"); +pub const IE_USE_OE_MAIL_VALUE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Use Outlook Express"); +pub const IE_USE_OE_NEWS_HKEY: i32 = -2147483647i32; +pub const IE_USE_OE_NEWS_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Internet Explorer\\News"); +pub const IE_USE_OE_NEWS_VALUE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Use Outlook Express"); +pub const IE_USE_OE_PRESENT_HKEY: i32 = -2147483646i32; +pub const IE_USE_OE_PRESENT_KEY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Windows\\CurrentVersion\\app.paths\\msimn.exe"); +pub const IMGDECODE_EVENT_BEGINBITS: u32 = 4u32; +pub const IMGDECODE_EVENT_BITSCOMPLETE: u32 = 8u32; +pub const IMGDECODE_EVENT_PALETTE: u32 = 2u32; +pub const IMGDECODE_EVENT_PROGRESS: u32 = 1u32; +pub const IMGDECODE_EVENT_USEDDRAW: u32 = 16u32; +pub const IMGDECODE_HINT_BOTTOMUP: u32 = 2u32; +pub const IMGDECODE_HINT_FULLWIDTH: u32 = 4u32; +pub const IMGDECODE_HINT_TOPDOWN: u32 = 1u32; +pub const INTERNETEXPLORERCONFIGURATION_HOST: INTERNETEXPLORERCONFIGURATION = 1i32; +pub const INTERNETEXPLORERCONFIGURATION_WEB_DRIVER: INTERNETEXPLORERCONFIGURATION = 2i32; +pub const INTERNETEXPLORERCONFIGURATION_WEB_DRIVER_EDGE: INTERNETEXPLORERCONFIGURATION = 4i32; +pub const IntelliForms: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x613ab92e_16bf_11d2_bca5_00c04fd929db); +pub const InternetExplorerManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xdf4fcc34_067a_4e0a_8352_4a1a5095346e); +pub const LINKSBAND: u32 = 4u32; +pub const MAPMIME_CLSID: u32 = 1u32; +pub const MAPMIME_DEFAULT: u32 = 0u32; +pub const MAPMIME_DEFAULT_ALWAYS: u32 = 3u32; +pub const MAPMIME_DISABLE: u32 = 2u32; +pub const MAX_SEARCH_FORMAT_STRING: u32 = 255u32; +pub const MediaCasting: MEDIA_ACTIVITY_NOTIFY_TYPE = 2i32; +pub const MediaPlayback: MEDIA_ACTIVITY_NOTIFY_TYPE = 0i32; +pub const MediaRecording: MEDIA_ACTIVITY_NOTIFY_TYPE = 1i32; +pub const NAVIGATEFRAME_FL_AUTH_FAIL_CACHE_OK: NAVIGATEFRAME_FLAGS = 16i32; +pub const NAVIGATEFRAME_FL_NO_DOC_CACHE: NAVIGATEFRAME_FLAGS = 4i32; +pub const NAVIGATEFRAME_FL_NO_IMAGE_CACHE: NAVIGATEFRAME_FLAGS = 8i32; +pub const NAVIGATEFRAME_FL_POST: NAVIGATEFRAME_FLAGS = 2i32; +pub const NAVIGATEFRAME_FL_REALLY_SENDING_FROM_FORM: NAVIGATEFRAME_FLAGS = 64i32; +pub const NAVIGATEFRAME_FL_RECORD: NAVIGATEFRAME_FLAGS = 1i32; +pub const NAVIGATEFRAME_FL_SENDING_FROM_FORM: NAVIGATEFRAME_FLAGS = 32i32; +pub const OS_E_CANCELLED: OpenServiceErrors = -2147471631i32; +pub const OS_E_GPDISABLED: OpenServiceErrors = -1072886820i32; +pub const OS_E_NOTFOUND: OpenServiceErrors = -2147287038i32; +pub const OS_E_NOTSUPPORTED: OpenServiceErrors = -2147467231i32; +pub const OpenServiceActivityManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xc5efd803_50f8_43cd_9ab8_aafc1394c9e0); +pub const OpenServiceManager: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x098870b6_39ea_480b_b8b5_dd0167c4db59); +pub const PeerFactory: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x3050f4cf_98b5_11cf_bb82_00aa00bdce0b); +pub const REGSTRA_VAL_STARTPAGE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Start Page"); +pub const REGSTR_PATH_CURRENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("current"); +pub const REGSTR_PATH_DEFAULT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("default"); +pub const REGSTR_PATH_INETCPL_RESTRICTIONS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel"); +pub const REGSTR_PATH_MIME_DATABASE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MIME\\Database"); +pub const REGSTR_PATH_REMOTEACCESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RemoteAccess"); +pub const REGSTR_PATH_REMOTEACESS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RemoteAccess"); +pub const REGSTR_SHIFTQUICKSUFFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ShiftQuickCompleteSuffix"); +pub const REGSTR_VAL_ACCEPT_LANGUAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AcceptLanguage"); +pub const REGSTR_VAL_ACCESSMEDIUM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AccessMedium"); +pub const REGSTR_VAL_ACCESSTYPE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AccessType"); +pub const REGSTR_VAL_ALIASTO: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AliasForCharset"); +pub const REGSTR_VAL_ANCHORCOLOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Anchor Color"); +pub const REGSTR_VAL_ANCHORCOLORHOVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Anchor Color Hover"); +pub const REGSTR_VAL_ANCHORCOLORVISITED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Anchor Color Visited"); +pub const REGSTR_VAL_ANCHORUNDERLINE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Anchor Underline"); +pub const REGSTR_VAL_AUTODETECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoDetect"); +pub const REGSTR_VAL_AUTODIALDLLNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutodialDllName"); +pub const REGSTR_VAL_AUTODIALFCNNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutodialFcnName"); +pub const REGSTR_VAL_AUTODIAL_MONITORCLASSNAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("MS_AutodialMonitor"); +pub const REGSTR_VAL_AUTODIAL_TRYONLYONCE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("TryAutodialOnce"); +pub const REGSTR_VAL_AUTONAVIGATE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SearchForExtensions"); +pub const REGSTR_VAL_AUTOSEARCH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Do404Search"); +pub const REGSTR_VAL_BACKBITMAP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BackBitmap"); +pub const REGSTR_VAL_BACKGROUNDCOLOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Background Color"); +pub const REGSTR_VAL_BODYCHARSET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BodyCharset"); +pub const REGSTR_VAL_BYPASSAUTOCONFIG: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BypassAutoconfig"); +pub const REGSTR_VAL_CACHEPREFIX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CachePrefix"); +pub const REGSTR_VAL_CHECKASSOC: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Check_Associations"); +pub const REGSTR_VAL_CODEDOWNLOAD: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Code Download"); +pub const REGSTR_VAL_CODEDOWNLOAD_DEF: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("yes"); +pub const REGSTR_VAL_CODEPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CodePage"); +pub const REGSTR_VAL_COVEREXCLUDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("CoverExclude"); +pub const REGSTR_VAL_DAYSTOKEEP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DaysToKeep"); +pub const REGSTR_VAL_DEFAULT_CODEPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Default_CodePage"); +pub const REGSTR_VAL_DEFAULT_SCRIPT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Default_Script"); +pub const REGSTR_VAL_DEF_ENCODING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Default_Encoding"); +pub const REGSTR_VAL_DEF_INETENCODING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Default_InternetEncoding"); +pub const REGSTR_VAL_DESCRIPTION: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Description"); +pub const REGSTR_VAL_DIRECTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Directory"); +pub const REGSTR_VAL_DISCONNECTIDLETIME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisconnectIdleTime"); +pub const REGSTR_VAL_ENABLEAUTODIAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableAutodial"); +pub const REGSTR_VAL_ENABLEAUTODIALDISCONNECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableAutodisconnect"); +pub const REGSTR_VAL_ENABLEAUTODISCONNECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableAutodisconnect"); +pub const REGSTR_VAL_ENABLEEXITDISCONNECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableExitDisconnect"); +pub const REGSTR_VAL_ENABLESECURITYCHECK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableSecurityCheck"); +pub const REGSTR_VAL_ENABLEUNATTENDED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableUnattended"); +pub const REGSTR_VAL_ENCODENAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EncodingName"); +pub const REGSTR_VAL_FAMILY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Family"); +pub const REGSTR_VAL_FIXEDWIDTHFONT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("FixedWidthFont"); +pub const REGSTR_VAL_FIXED_FONT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IEFixedFontName"); +pub const REGSTR_VAL_FONT_SCRIPT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Script"); +pub const REGSTR_VAL_FONT_SCRIPTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Scripts"); +pub const REGSTR_VAL_FONT_SCRIPT_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Script"); +pub const REGSTR_VAL_FONT_SIZE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IEFontSize"); +pub const REGSTR_VAL_FONT_SIZE_DEF: u32 = 2u32; +pub const REGSTR_VAL_HEADERCHARSET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("HeaderCharset"); +pub const REGSTR_VAL_HTTP_ERRORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Friendly http errors"); +pub const REGSTR_VAL_IE_CUSTOMCOLORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Custom Colors"); +pub const REGSTR_VAL_INETCPL_ADVANCEDTAB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AdvancedTab"); +pub const REGSTR_VAL_INETCPL_CONNECTIONSTAB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ConnectionsTab"); +pub const REGSTR_VAL_INETCPL_CONTENTTAB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ContentTab"); +pub const REGSTR_VAL_INETCPL_GENERALTAB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("GeneralTab"); +pub const REGSTR_VAL_INETCPL_IEAK: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IEAKContext"); +pub const REGSTR_VAL_INETCPL_PRIVACYTAB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrivacyTab"); +pub const REGSTR_VAL_INETCPL_PROGRAMSTAB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProgramsTab"); +pub const REGSTR_VAL_INETCPL_SECURITYTAB: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SecurityTab"); +pub const REGSTR_VAL_INETENCODING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InternetEncoding"); +pub const REGSTR_VAL_INTERNETENTRY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InternetProfile"); +pub const REGSTR_VAL_INTERNETENTRYBKUP: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("BackupInternetProfile"); +pub const REGSTR_VAL_INTERNETPROFILE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("InternetProfile"); +pub const REGSTR_VAL_JAVAJIT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableJIT"); +pub const REGSTR_VAL_JAVAJIT_DEF: u32 = 0u32; +pub const REGSTR_VAL_JAVALOGGING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("EnableLogging"); +pub const REGSTR_VAL_JAVALOGGING_DEF: u32 = 0u32; +pub const REGSTR_VAL_LEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Level"); +pub const REGSTR_VAL_LOADIMAGES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Display Inline Images"); +pub const REGSTR_VAL_LOCALPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Local Page"); +pub const REGSTR_VAL_MOSDISCONNECT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisconnectTimeout"); +pub const REGSTR_VAL_NEWDIRECTORY: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NewDirectory"); +pub const REGSTR_VAL_NONETAUTODIAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("NoNetAutodial"); +pub const REGSTR_VAL_PLAYSOUNDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Play_Background_Sounds"); +pub const REGSTR_VAL_PLAYVIDEOS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Display Inline Videos"); +pub const REGSTR_VAL_PRIVCONVERTER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("PrivConverter"); +pub const REGSTR_VAL_PROPORTIONALFONT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProportionalFont"); +pub const REGSTR_VAL_PROP_FONT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IEPropFontName"); +pub const REGSTR_VAL_PROXYENABLE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProxyEnable"); +pub const REGSTR_VAL_PROXYOVERRIDE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProxyOverride"); +pub const REGSTR_VAL_PROXYSERVER: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ProxyServer"); +pub const REGSTR_VAL_REDIALATTEMPTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RedialAttempts"); +pub const REGSTR_VAL_REDIALINTERVAL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("RedialWait"); +pub const REGSTR_VAL_RNAINSTALLED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Installed"); +pub const REGSTR_VAL_SAFETYWARNINGLEVEL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Safety Warning Level"); +pub const REGSTR_VAL_SCHANNELENABLEPROTOCOL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Enabled"); +pub const REGSTR_VAL_SCHANNELENABLEPROTOCOL_DEF: u32 = 1u32; +pub const REGSTR_VAL_SCRIPT_FIXED_FONT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IEFixedFontName"); +pub const REGSTR_VAL_SCRIPT_PROP_FONT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("IEPropFontName"); +pub const REGSTR_VAL_SEARCHPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Search Page"); +pub const REGSTR_VAL_SECURITYACTICEXSCRIPTS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Security_RunScripts"); +pub const REGSTR_VAL_SECURITYACTICEXSCRIPTS_DEF: u32 = 1u32; +pub const REGSTR_VAL_SECURITYACTIVEX: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Security_RunActiveXControls"); +pub const REGSTR_VAL_SECURITYACTIVEX_DEF: u32 = 1u32; +pub const REGSTR_VAL_SECURITYALLOWCOOKIES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AllowCookies"); +pub const REGSTR_VAL_SECURITYALLOWCOOKIES_DEF: u32 = 1u32; +pub const REGSTR_VAL_SECURITYDISABLECACHINGOFSSLPAGES: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("DisableCachingOfSSLPages"); +pub const REGSTR_VAL_SECURITYDISABLECACHINGOFSSLPAGES_DEF: u32 = 0u32; +pub const REGSTR_VAL_SECURITYJAVA: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Security_RunJavaApplets"); +pub const REGSTR_VAL_SECURITYJAVA_DEF: u32 = 1u32; +pub const REGSTR_VAL_SECURITYWARNONBADCERTSENDING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WarnOnBadCertSending"); +pub const REGSTR_VAL_SECURITYWARNONBADCERTSENDING_DEF: u32 = 1u32; +pub const REGSTR_VAL_SECURITYWARNONBADCERTVIEWING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WarnOnBadCertRecving"); +pub const REGSTR_VAL_SECURITYWARNONBADCERTVIEWING_DEF: u32 = 1u32; +pub const REGSTR_VAL_SECURITYWARNONSEND: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WarnOnPost"); +pub const REGSTR_VAL_SECURITYWARNONSENDALWAYS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WarnAlwaysOnPost"); +pub const REGSTR_VAL_SECURITYWARNONSENDALWAYS_DEF: u32 = 1u32; +pub const REGSTR_VAL_SECURITYWARNONSEND_DEF: u32 = 1u32; +pub const REGSTR_VAL_SECURITYWARNONVIEW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WarnOnView"); +pub const REGSTR_VAL_SECURITYWARNONVIEW_DEF: u32 = 1u32; +pub const REGSTR_VAL_SECURITYWARNONZONECROSSING: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WarnOnZoneCrossing"); +pub const REGSTR_VAL_SECURITYWARNONZONECROSSING_DEF: u32 = 1u32; +pub const REGSTR_VAL_SHOWADDRESSBAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Show_URLToolBar"); +pub const REGSTR_VAL_SHOWFOCUS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Tabstop - MouseDown"); +pub const REGSTR_VAL_SHOWFOCUS_DEF: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("no"); +pub const REGSTR_VAL_SHOWFULLURLS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Show_FullURL"); +pub const REGSTR_VAL_SHOWTOOLBAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Show_ToolBar"); +pub const REGSTR_VAL_SMOOTHSCROLL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SmoothScroll"); +pub const REGSTR_VAL_SMOOTHSCROLL_DEF: u32 = 1u32; +pub const REGSTR_VAL_STARTPAGE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Start Page"); +pub const REGSTR_VAL_TEXTCOLOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Text Color"); +pub const REGSTR_VAL_TRUSTWARNINGLEVEL_HIGH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("High"); +pub const REGSTR_VAL_TRUSTWARNINGLEVEL_LOW: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("No Security"); +pub const REGSTR_VAL_TRUSTWARNINGLEVEL_MED: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Medium"); +pub const REGSTR_VAL_USEAUTOAPPEND: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Append Completion"); +pub const REGSTR_VAL_USEAUTOCOMPLETE: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Use AutoComplete"); +pub const REGSTR_VAL_USEAUTOSUGGEST: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("AutoSuggest"); +pub const REGSTR_VAL_USEDLGCOLORS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Use_DlgBox_Colors"); +pub const REGSTR_VAL_USEHOVERCOLOR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Use Anchor Hover Color"); +pub const REGSTR_VAL_USEIBAR: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UseBar"); +pub const REGSTR_VAL_USEICM: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("UseICM"); +pub const REGSTR_VAL_USEICM_DEF: u32 = 0u32; +pub const REGSTR_VAL_USERAGENT: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("User Agent"); +pub const REGSTR_VAL_USESTYLESHEETS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Use Stylesheets"); +pub const REGSTR_VAL_USESTYLESHEETS_DEF: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("yes"); +pub const REGSTR_VAL_VISIBLEBANDS: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("VisibleBands"); +pub const REGSTR_VAL_VISIBLEBANDS_DEF: u32 = 7u32; +pub const REGSTR_VAL_WEBCHARSET: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("WebCharset"); +pub const SCMP_BOTTOM: SCROLLABLECONTEXTMENU_PLACEMENT = 1i32; +pub const SCMP_FULL: SCROLLABLECONTEXTMENU_PLACEMENT = 4i32; +pub const SCMP_LEFT: SCROLLABLECONTEXTMENU_PLACEMENT = 2i32; +pub const SCMP_RIGHT: SCROLLABLECONTEXTMENU_PLACEMENT = 3i32; +pub const SCMP_TOP: SCROLLABLECONTEXTMENU_PLACEMENT = 0i32; +pub const STATURLFLAG_ISCACHED: u32 = 1u32; +pub const STATURLFLAG_ISTOPLEVEL: u32 = 2u32; +pub const STATURL_QUERYFLAG_ISCACHED: u32 = 65536u32; +pub const STATURL_QUERYFLAG_NOTITLE: u32 = 262144u32; +pub const STATURL_QUERYFLAG_NOURL: u32 = 131072u32; +pub const STATURL_QUERYFLAG_TOPLEVEL: u32 = 524288u32; +pub const SURFACE_LOCK_ALLOW_DISCARD: u32 = 2u32; +pub const SURFACE_LOCK_EXCLUSIVE: u32 = 1u32; +pub const SURFACE_LOCK_WAIT: u32 = 4u32; +pub const SZBACKBITMAP: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("BackBitmap"); +pub const SZJAVAVMPATH: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("\\Java VM"); +pub const SZNOTEXT: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("NoText"); +pub const SZTOOLBAR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("\\Toolbar"); +pub const SZTRUSTWARNLEVEL: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Trust Warning Level"); +pub const SZVISIBLE: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("VisibleBands"); +pub const SZ_IE_DEFAULT_HTML_EDITOR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Default HTML Editor"); +pub const SZ_IE_IBAR: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Bar"); +pub const SZ_IE_IBAR_BANDS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Bands"); +pub const SZ_IE_MAIN: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Main"); +pub const SZ_IE_SEARCHSTRINGS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("UrlTemplate"); +pub const SZ_IE_SECURITY: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Security"); +pub const SZ_IE_SETTINGS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("Settings"); +pub const SZ_IE_THRESHOLDS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("ErrorThresholds"); +pub const S_SURFACE_DISCARDED: i32 = 49155i32; +pub const TARGET_NOTIFY_OBJECT_NAME: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("863a99a0-21bc-11d0-82b4-00a0c90c29c5"); +pub const TF_NAVIGATE: u32 = 2142153644u32; +pub const TIMERMODE_NORMAL: u32 = 0u32; +pub const TIMERMODE_VISIBILITYAWARE: u32 = 1u32; +pub const TOOLSBAND: u32 = 1u32; +pub const TSZCALENDARPROTOCOL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("unk"); +pub const TSZCALLTOPROTOCOL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("callto"); +pub const TSZINTERNETCLIENTSPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft\\Internet Explorer\\Unix"); +pub const TSZLDAPPROTOCOL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("ldap"); +pub const TSZMAILTOPROTOCOL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("mailto"); +pub const TSZMICROSOFTPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Software\\Microsoft"); +pub const TSZNEWSPROTOCOL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("news"); +pub const TSZPROTOCOLSPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("Protocols\\"); +pub const TSZSCHANNELPATH: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\SCHANNEL"); +pub const TSZVSOURCEPROTOCOL: ::windows_sys::core::PCWSTR = ::windows_sys::core::w!("view source"); +pub const msodsvFailed: u32 = 3u32; +pub const msodsvLowSecurityLevel: u32 = 4u32; +pub const msodsvNoMacros: u32 = 0u32; +pub const msodsvPassedTrusted: u32 = 2u32; +pub const msodsvPassedTrustedCert: u32 = 5u32; +pub const msodsvUnsigned: u32 = 1u32; +pub const msoedmDisable: u32 = 2u32; +pub const msoedmDontOpen: u32 = 3u32; +pub const msoedmEnable: u32 = 1u32; +pub const msoslHigh: u32 = 3u32; +pub const msoslMedium: u32 = 2u32; +pub const msoslNone: u32 = 1u32; +pub const msoslUndefined: u32 = 0u32; +pub const wfolders: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbae31f9a_1b81_11d2_a97a_00c04f8ecb02); +pub type ADDURL_FLAG = i32; +pub type ExtensionValidationContexts = i32; +pub type ExtensionValidationResults = i32; +pub type FINDFRAME_FLAGS = i32; +pub type FRAMEOPTIONS_FLAGS = i32; +pub type IELAUNCHOPTION_FLAGS = i32; +pub type INTERNETEXPLORERCONFIGURATION = i32; +pub type MEDIA_ACTIVITY_NOTIFY_TYPE = i32; +pub type NAVIGATEFRAME_FLAGS = i32; +pub type OpenServiceActivityContentType = i32; +pub type OpenServiceErrors = i32; +pub type SCROLLABLECONTEXTMENU_PLACEMENT = i32; +#[repr(C)] +pub struct IELAUNCHURLINFO { + pub cbSize: u32, + pub dwCreationFlags: u32, + pub dwLaunchOptionFlags: u32, +} +impl ::core::marker::Copy for IELAUNCHURLINFO {} +impl ::core::clone::Clone for IELAUNCHURLINFO { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +pub struct NAVIGATEDATA { + pub ulTarget: u32, + pub ulURL: u32, + pub ulRefURL: u32, + pub ulPostData: u32, + pub dwFlags: u32, +} +impl ::core::marker::Copy for NAVIGATEDATA {} +impl ::core::clone::Clone for NAVIGATEDATA { + fn clone(&self) -> Self { + *self + } +} +#[repr(C)] +#[doc = "Required features: `\"Win32_Foundation\"`"] +#[cfg(feature = "Win32_Foundation")] +pub struct STATURL { + pub cbSize: u32, + pub pwcsUrl: ::windows_sys::core::PWSTR, + pub pwcsTitle: ::windows_sys::core::PWSTR, + pub ftLastVisited: super::super::Foundation::FILETIME, + pub ftLastUpdated: super::super::Foundation::FILETIME, + pub ftExpires: super::super::Foundation::FILETIME, + pub dwFlags: u32, +} +#[cfg(feature = "Win32_Foundation")] +impl ::core::marker::Copy for STATURL {} +#[cfg(feature = "Win32_Foundation")] +impl ::core::clone::Clone for STATURL { + fn clone(&self) -> Self { + *self + } +} diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/Web/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/Web/mod.rs new file mode 100644 index 000000000..4fac2e650 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/Web/mod.rs @@ -0,0 +1,3 @@ +#[cfg(feature = "Win32_Web_InternetExplorer")] +#[doc = "Required features: `\"Win32_Web_InternetExplorer\"`"] +pub mod InternetExplorer; diff --git a/src/rust/vendor/windows-sys/src/Windows/Win32/mod.rs b/src/rust/vendor/windows-sys/src/Windows/Win32/mod.rs new file mode 100644 index 000000000..6d803ee4f --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/Win32/mod.rs @@ -0,0 +1,45 @@ +#[cfg(feature = "Win32_Data")] +#[doc = "Required features: `\"Win32_Data\"`"] +pub mod Data; +#[cfg(feature = "Win32_Devices")] +#[doc = "Required features: `\"Win32_Devices\"`"] +pub mod Devices; +#[cfg(feature = "Win32_Foundation")] +#[doc = "Required features: `\"Win32_Foundation\"`"] +pub mod Foundation; +#[cfg(feature = "Win32_Gaming")] +#[doc = "Required features: `\"Win32_Gaming\"`"] +pub mod Gaming; +#[cfg(feature = "Win32_Globalization")] +#[doc = "Required features: `\"Win32_Globalization\"`"] +pub mod Globalization; +#[cfg(feature = "Win32_Graphics")] +#[doc = "Required features: `\"Win32_Graphics\"`"] +pub mod Graphics; +#[cfg(feature = "Win32_Management")] +#[doc = "Required features: `\"Win32_Management\"`"] +pub mod Management; +#[cfg(feature = "Win32_Media")] +#[doc = "Required features: `\"Win32_Media\"`"] +pub mod Media; +#[cfg(feature = "Win32_NetworkManagement")] +#[doc = "Required features: `\"Win32_NetworkManagement\"`"] +pub mod NetworkManagement; +#[cfg(feature = "Win32_Networking")] +#[doc = "Required features: `\"Win32_Networking\"`"] +pub mod Networking; +#[cfg(feature = "Win32_Security")] +#[doc = "Required features: `\"Win32_Security\"`"] +pub mod Security; +#[cfg(feature = "Win32_Storage")] +#[doc = "Required features: `\"Win32_Storage\"`"] +pub mod Storage; +#[cfg(feature = "Win32_System")] +#[doc = "Required features: `\"Win32_System\"`"] +pub mod System; +#[cfg(feature = "Win32_UI")] +#[doc = "Required features: `\"Win32_UI\"`"] +pub mod UI; +#[cfg(feature = "Win32_Web")] +#[doc = "Required features: `\"Win32_Web\"`"] +pub mod Web; diff --git a/src/rust/vendor/windows-sys/src/Windows/mod.rs b/src/rust/vendor/windows-sys/src/Windows/mod.rs new file mode 100644 index 000000000..dc29e10d7 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/Windows/mod.rs @@ -0,0 +1,6 @@ +#[cfg(feature = "Wdk")] +#[doc = "Required features: `\"Wdk\"`"] +pub mod Wdk; +#[cfg(feature = "Win32")] +#[doc = "Required features: `\"Win32\"`"] +pub mod Win32; diff --git a/src/rust/vendor/windows-sys/src/core/literals.rs b/src/rust/vendor/windows-sys/src/core/literals.rs new file mode 100644 index 000000000..d012fb170 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/core/literals.rs @@ -0,0 +1,114 @@ +/// A literal UTF-8 string with a trailing null terminator. +#[macro_export] +macro_rules! s { + ($s:literal) => { + ::core::concat!($s, '\0').as_ptr() + }; +} + +/// A literal UTF-16 wide string with a trailing null terminator. +#[macro_export] +macro_rules! w { + ($s:literal) => {{ + const INPUT: &[u8] = $s.as_bytes(); + const OUTPUT_LEN: usize = $crate::core::utf16_len(INPUT) + 1; + const OUTPUT: &[u16; OUTPUT_LEN] = { + let mut buffer = [0; OUTPUT_LEN]; + let mut input_pos = 0; + let mut output_pos = 0; + while let Some((mut code_point, new_pos)) = $crate::core::decode_utf8_char(INPUT, input_pos) { + input_pos = new_pos; + if code_point <= 0xffff { + buffer[output_pos] = code_point as u16; + output_pos += 1; + } else { + code_point -= 0x10000; + buffer[output_pos] = 0xd800 + (code_point >> 10) as u16; + output_pos += 1; + buffer[output_pos] = 0xdc00 + (code_point & 0x3ff) as u16; + output_pos += 1; + } + } + &{ buffer } + }; + OUTPUT.as_ptr() + }}; +} + +pub use s; +pub use w; + +#[doc(hidden)] +pub const fn decode_utf8_char(bytes: &[u8], mut pos: usize) -> Option<(u32, usize)> { + if bytes.len() == pos { + return None; + } + let ch = bytes[pos] as u32; + pos += 1; + if ch <= 0x7f { + return Some((ch, pos)); + } + if (ch & 0xe0) == 0xc0 { + if bytes.len() - pos < 1 { + return None; + } + let ch2 = bytes[pos] as u32; + pos += 1; + if (ch2 & 0xc0) != 0x80 { + return None; + } + let result: u32 = ((ch & 0x1f) << 6) | (ch2 & 0x3f); + if result <= 0x7f { + return None; + } + return Some((result, pos)); + } + if (ch & 0xf0) == 0xe0 { + if bytes.len() - pos < 2 { + return None; + } + let ch2 = bytes[pos] as u32; + pos += 1; + let ch3 = bytes[pos] as u32; + pos += 1; + if (ch2 & 0xc0) != 0x80 || (ch3 & 0xc0) != 0x80 { + return None; + } + let result = ((ch & 0x0f) << 12) | ((ch2 & 0x3f) << 6) | (ch3 & 0x3f); + if result <= 0x7ff || (0xd800 <= result && result <= 0xdfff) { + return None; + } + return Some((result, pos)); + } + if (ch & 0xf8) == 0xf0 { + if bytes.len() - pos < 3 { + return None; + } + let ch2 = bytes[pos] as u32; + pos += 1; + let ch3 = bytes[pos] as u32; + pos += 1; + let ch4 = bytes[pos] as u32; + pos += 1; + if (ch2 & 0xc0) != 0x80 || (ch3 & 0xc0) != 0x80 || (ch4 & 0xc0) != 0x80 { + return None; + } + let result = ((ch & 0x07) << 18) | ((ch2 & 0x3f) << 12) | ((ch3 & 0x3f) << 6) | (ch4 & 0x3f); + if result <= 0xffff || 0x10ffff < result { + return None; + } + return Some((result, pos)); + } + None +} + +#[doc(hidden)] +pub const fn utf16_len(bytes: &[u8]) -> usize { + let mut pos = 0; + let mut len = 0; + while let Some((code_point, new_pos)) = decode_utf8_char(bytes, pos) { + pos = new_pos; + len += if code_point <= 0xffff { 1 } else { 2 }; + } + len +} diff --git a/src/rust/vendor/windows-sys/src/core/mod.rs b/src/rust/vendor/windows-sys/src/core/mod.rs new file mode 100644 index 000000000..8773a3cf7 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/core/mod.rs @@ -0,0 +1,36 @@ +mod literals; + +#[doc(hidden)] +pub use literals::*; + +pub type HRESULT = i32; +pub type HSTRING = *mut ::core::ffi::c_void; +pub type IUnknown = *mut ::core::ffi::c_void; +pub type IInspectable = *mut ::core::ffi::c_void; +pub type PSTR = *mut u8; +pub type PWSTR = *mut u16; +pub type PCSTR = *const u8; +pub type PCWSTR = *const u16; +pub type BSTR = *const u16; + +#[repr(C)] +pub struct GUID { + pub data1: u32, + pub data2: u16, + pub data3: u16, + pub data4: [u8; 8], +} + +impl ::core::marker::Copy for GUID {} + +impl ::core::clone::Clone for GUID { + fn clone(&self) -> Self { + *self + } +} + +impl GUID { + pub const fn from_u128(uuid: u128) -> Self { + Self { data1: (uuid >> 96) as u32, data2: (uuid >> 80 & 0xffff) as u16, data3: (uuid >> 64 & 0xffff) as u16, data4: (uuid as u64).to_be_bytes() } + } +} diff --git a/src/rust/vendor/windows-sys/src/lib.rs b/src/rust/vendor/windows-sys/src/lib.rs new file mode 100644 index 000000000..592ef0d26 --- /dev/null +++ b/src/rust/vendor/windows-sys/src/lib.rs @@ -0,0 +1,13 @@ +/*! +Learn more about Rust for Windows here: +*/ + +#![no_std] +#![doc(html_no_source)] +#![allow(non_snake_case, non_upper_case_globals, non_camel_case_types, clippy::all)] +#![cfg_attr(not(feature = "docs"), doc(hidden))] + +extern crate self as windows_sys; +pub mod core; + +include!("Windows/mod.rs"); diff --git a/src/rust/vendor/windows-targets/.cargo-checksum.json b/src/rust/vendor/windows-targets/.cargo-checksum.json new file mode 100644 index 000000000..296309465 --- /dev/null +++ b/src/rust/vendor/windows-targets/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"bc53e92f81d6744d83d59a3161ae21df6ba5e7794b4922b243fd5a0e4cd9ca0e","license-apache-2.0":"c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b","license-mit":"c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383","readme.md":"091f8b1d0c59ae0bf8d464a4f4d5c314907f7e2e29eca686bd42929a7df50b9b","src/lib.rs":"0605ad98583e44549d5bd02291fb84ea628857f3700c81844beb16f00e10c47a"},"package":"6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"} \ No newline at end of file diff --git a/src/rust/vendor/windows-targets/Cargo.toml b/src/rust/vendor/windows-targets/Cargo.toml new file mode 100644 index 000000000..c4352a68c --- /dev/null +++ b/src/rust/vendor/windows-targets/Cargo.toml @@ -0,0 +1,50 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +rust-version = "1.56" +name = "windows-targets" +version = "0.52.5" +authors = ["Microsoft"] +description = "Import libs for Windows" +readme = "readme.md" +license = "MIT OR Apache-2.0" +repository = "https://github.com/microsoft/windows-rs" + +[target.aarch64-pc-windows-gnullvm.dependencies.windows_aarch64_gnullvm] +version = "0.52.5" + +[target."cfg(all(any(target_arch = \"x86_64\", target_arch = \"arm64ec\"), target_env = \"msvc\", not(windows_raw_dylib)))".dependencies.windows_x86_64_msvc] +version = "0.52.5" + +[target."cfg(all(target_arch = \"aarch64\", target_env = \"msvc\", not(windows_raw_dylib)))".dependencies.windows_aarch64_msvc] +version = "0.52.5" + +[target."cfg(all(target_arch = \"x86\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))".dependencies.windows_i686_gnu] +version = "0.52.5" + +[target."cfg(all(target_arch = \"x86\", target_env = \"msvc\", not(windows_raw_dylib)))".dependencies.windows_i686_msvc] +version = "0.52.5" + +[target."cfg(all(target_arch = \"x86_64\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))".dependencies.windows_x86_64_gnu] +version = "0.52.5" + +[target.i686-pc-windows-gnullvm.dependencies.windows_i686_gnullvm] +version = "0.52.5" + +[target.x86_64-pc-windows-gnullvm.dependencies.windows_x86_64_gnullvm] +version = "0.52.5" + +[lints.rust] +missing_docs = "warn" +rust_2018_idioms = "warn" +unused_qualifications = "warn" diff --git a/src/rust/vendor/windows-targets/license-apache-2.0 b/src/rust/vendor/windows-targets/license-apache-2.0 new file mode 100644 index 000000000..b5ed4ecec --- /dev/null +++ b/src/rust/vendor/windows-targets/license-apache-2.0 @@ -0,0 +1,201 @@ + 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 (c) Microsoft Corporation. + + 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. diff --git a/src/rust/vendor/windows-targets/license-mit b/src/rust/vendor/windows-targets/license-mit new file mode 100644 index 000000000..9e841e7a2 --- /dev/null +++ b/src/rust/vendor/windows-targets/license-mit @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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 diff --git a/src/rust/vendor/windows-targets/readme.md b/src/rust/vendor/windows-targets/readme.md new file mode 100644 index 000000000..0f0c653df --- /dev/null +++ b/src/rust/vendor/windows-targets/readme.md @@ -0,0 +1,28 @@ +## Import libs for Windows + +The [windows-targets](https://crates.io/crates/windows-targets) crate includes import libs, supports semantic versioning, and optional support for raw-dylib. + +* [Getting started](https://kennykerr.ca/rust-getting-started/) +* [Samples](https://github.com/microsoft/windows-rs/tree/0.56.0/crates/samples) +* [Releases](https://github.com/microsoft/windows-rs/releases) + +Start by adding the following to your Cargo.toml file: + +```toml +[dependencies.windows-targets] +version = "0.52" +``` + +Use the `link` macro to define the external functions you wish to call: + +```rust,no_run +windows_targets::link!("kernel32.dll" "system" fn SetLastError(code: u32)); +windows_targets::link!("kernel32.dll" "system" fn GetLastError() -> u32); + +fn main() { + unsafe { + SetLastError(1234); + assert_eq!(GetLastError(), 1234); + } +} +``` diff --git a/src/rust/vendor/windows-targets/src/lib.rs b/src/rust/vendor/windows-targets/src/lib.rs new file mode 100644 index 000000000..e4751989f --- /dev/null +++ b/src/rust/vendor/windows-targets/src/lib.rs @@ -0,0 +1,55 @@ +/*! +Learn more about Rust for Windows here: +*/ + +#![no_std] + +/// Defines an external function to import. +#[cfg(all(windows_raw_dylib, target_arch = "x86"))] +#[macro_export] +macro_rules! link { + ($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => ( + #[link(name = $library, kind = "raw-dylib", modifiers = "+verbatim", import_name_type = "undecorated")] + extern $abi { + $(#[link_name=$link_name])? + pub fn $($function)*; + } + ) +} + +/// Defines an external function to import. +#[cfg(all(windows_raw_dylib, not(target_arch = "x86")))] +#[macro_export] +macro_rules! link { + ($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => ( + #[link(name = $library, kind = "raw-dylib", modifiers = "+verbatim")] + extern "C" { + $(#[link_name=$link_name])? + pub fn $($function)*; + } + ) +} + +/// Defines an external function to import. +#[cfg(all(windows, not(windows_raw_dylib)))] +#[macro_export] +macro_rules! link { + ($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => ( + #[link(name = "windows.0.52.0")] + extern $abi { + $(#[link_name=$link_name])? + pub fn $($function)*; + } + ) +} + +/// Defines an external function to import. +#[cfg(all(not(windows), not(windows_raw_dylib)))] +#[macro_export] +macro_rules! link { + ($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => ( + extern $abi { + pub fn $($function)*; + } + ) +} diff --git a/src/rust/vendor/windows_aarch64_gnullvm/.cargo-checksum.json b/src/rust/vendor/windows_aarch64_gnullvm/.cargo-checksum.json new file mode 100644 index 000000000..841658e44 --- /dev/null +++ b/src/rust/vendor/windows_aarch64_gnullvm/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"5bce7856d20a6a17a029b12b46354ed586d43592c8c021c8ffa237c5fcf35dfc","build.rs":"9a83c55ec67fd48d6df4adccfbe0f3245f4002b543cacb586005d8991bddb29e","lib/libwindows.0.52.0.a":"8583b882d3030faa43cae37d5f040ad2917278df9c7e85975f51767628b53396","license-apache-2.0":"c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b","license-mit":"c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383","src/lib.rs":"bdf6c7cf1fc01f69cc1d4e52948d1f246fdd310e6323d5dd1efd23f1daf382ef"},"package":"7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"} \ No newline at end of file diff --git a/src/rust/vendor/windows_aarch64_gnullvm/Cargo.toml b/src/rust/vendor/windows_aarch64_gnullvm/Cargo.toml new file mode 100644 index 000000000..33af0b220 --- /dev/null +++ b/src/rust/vendor/windows_aarch64_gnullvm/Cargo.toml @@ -0,0 +1,24 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +rust-version = "1.56" +name = "windows_aarch64_gnullvm" +version = "0.52.5" +authors = ["Microsoft"] +description = "Import lib for Windows" +license = "MIT OR Apache-2.0" +repository = "https://github.com/microsoft/windows-rs" + +[package.metadata.docs.rs] +default-target = "x86_64-pc-windows-msvc" +targets = [] diff --git a/src/rust/vendor/windows_aarch64_gnullvm/build.rs b/src/rust/vendor/windows_aarch64_gnullvm/build.rs new file mode 100644 index 000000000..b5caa2baa --- /dev/null +++ b/src/rust/vendor/windows_aarch64_gnullvm/build.rs @@ -0,0 +1,5 @@ +fn main() { + let dir = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + + println!("cargo:rustc-link-search=native={}", std::path::Path::new(&dir).join("lib").display()); +} diff --git a/src/rust/vendor/windows_aarch64_gnullvm/lib/libwindows.0.52.0.a b/src/rust/vendor/windows_aarch64_gnullvm/lib/libwindows.0.52.0.a new file mode 100644 index 0000000000000000000000000000000000000000..e03a9b10148048898aeb3547f12c0ff8b6698d75 GIT binary patch literal 3856190 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

PxVm2>f`*5>{;$_xV+=H)y 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%0DVRbRu}mE!aRj!SR9u53)7a2=n8I+4dW* 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

c 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%0D}1unM#rxb_UR_n^Bs6IA6 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 P#WZIGXpbX=y+{8KLp@SW literal 0 HcmV?d00001 diff --git a/src/rust/vendor/windows_aarch64_gnullvm/license-apache-2.0 b/src/rust/vendor/windows_aarch64_gnullvm/license-apache-2.0 new file mode 100644 index 000000000..b5ed4ecec --- /dev/null +++ b/src/rust/vendor/windows_aarch64_gnullvm/license-apache-2.0 @@ -0,0 +1,201 @@ + 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 (c) Microsoft Corporation. + + 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. diff --git a/src/rust/vendor/windows_aarch64_gnullvm/license-mit b/src/rust/vendor/windows_aarch64_gnullvm/license-mit new file mode 100644 index 000000000..9e841e7a2 --- /dev/null +++ b/src/rust/vendor/windows_aarch64_gnullvm/license-mit @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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 diff --git a/src/rust/vendor/windows_aarch64_gnullvm/src/lib.rs b/src/rust/vendor/windows_aarch64_gnullvm/src/lib.rs new file mode 100644 index 000000000..0c9ac1ac8 --- /dev/null +++ b/src/rust/vendor/windows_aarch64_gnullvm/src/lib.rs @@ -0,0 +1 @@ +#![no_std] diff --git a/src/rust/vendor/windows_aarch64_msvc/.cargo-checksum.json b/src/rust/vendor/windows_aarch64_msvc/.cargo-checksum.json new file mode 100644 index 000000000..d183ef827 --- /dev/null +++ b/src/rust/vendor/windows_aarch64_msvc/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"01611c00552e077ba6b0aa1a2bfdd25d1aa8157cb453cc3e1e092610c609b2ea","build.rs":"9a83c55ec67fd48d6df4adccfbe0f3245f4002b543cacb586005d8991bddb29e","lib/windows.0.52.0.lib":"33ed26f6a49d4dff5d807fda0e82c7a75d2b7ef068ef1aaa153bef3989b1409d","license-apache-2.0":"c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b","license-mit":"c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383","src/lib.rs":"bdf6c7cf1fc01f69cc1d4e52948d1f246fdd310e6323d5dd1efd23f1daf382ef"},"package":"9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"} \ No newline at end of file diff --git a/src/rust/vendor/windows_aarch64_msvc/Cargo.toml b/src/rust/vendor/windows_aarch64_msvc/Cargo.toml new file mode 100644 index 000000000..97fe26751 --- /dev/null +++ b/src/rust/vendor/windows_aarch64_msvc/Cargo.toml @@ -0,0 +1,24 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +rust-version = "1.56" +name = "windows_aarch64_msvc" +version = "0.52.5" +authors = ["Microsoft"] +description = "Import lib for Windows" +license = "MIT OR Apache-2.0" +repository = "https://github.com/microsoft/windows-rs" + +[package.metadata.docs.rs] +default-target = "x86_64-pc-windows-msvc" +targets = [] diff --git a/src/rust/vendor/windows_aarch64_msvc/build.rs b/src/rust/vendor/windows_aarch64_msvc/build.rs new file mode 100644 index 000000000..b5caa2baa --- /dev/null +++ b/src/rust/vendor/windows_aarch64_msvc/build.rs @@ -0,0 +1,5 @@ +fn main() { + let dir = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + + println!("cargo:rustc-link-search=native={}", std::path::Path::new(&dir).join("lib").display()); +} diff --git a/src/rust/vendor/windows_aarch64_msvc/lib/windows.0.52.0.lib b/src/rust/vendor/windows_aarch64_msvc/lib/windows.0.52.0.lib new file mode 100644 index 0000000000000000000000000000000000000000..23575c0e58117ebe0b52126d3f173feb49e7d86a GIT binary patch literal 5181746 zcmY)1e|XpP{`m3d*-3VGlBCl~lF9boulIhKWOh28&Lo*6Gf5_sNhe8WW@cxSB$=5c z)0s&oGnt(vGm~VJ$z*nRGLy-qlVmbUX1@2w;Jz0|KCfpH_kfiyrh(K#`0cvm~-oHb`gu3yj#b*2vtFm8|ETz z%XSfYt6W6>X77$97oqt09ViGjg;ebI?o4+Pim~rRVS*{AxQnq>0Tuhaq6`C&eRE z%vOq(<4hIBqr=S-Dtf$CtXs8GJjVQrvv>@vc^1?LipL{N1w}dIsudJZaL%fL3hqU$ z$u{j2|C(erQdESSQi>-Bm^>;NLsaG%&bSg!O*icMDXdK~wG>Z}GOH-ou|Bnc3f3Z? znP?g)s)A-c#j_&}dwdq_S)W==MW6RvzKc-Y({revWwuj1pKLh0=TQ@C*kg^@R1b6zoCNrWy8Li?4c$xjG zTq?S}O&KmivA0clCCM%XpmV>#WAmyXH@Zgx8h^YLow#Z zXq#*{QT%6&siJ5P80Kupe}|e9iroVZ_qSVgd7oss2(^u(W4zf&@hRh~H58p;hA}$@ z&xQDGk=aYJXO3Ynd+<5uq*^Ju(hPHS;frL$oqd75qYY=jS1^b8lIKQo*I%NW^{Qry zuO=DJ=qv0CnpG5E4>H{0*MfT#`?-JBK=D8Jt$5AL|XA zHWd_yhL~kk^m*ScauJHPe21Pa(?;?AWW(CN$KinCnL3OgLQDY_hrHfw7oj>Sew=Aq zD2}9?CW@aX8lIt_aCDR@qxgBSVeLN)?nE3bGDj(X$v2$QFX&@l#T^m8t% zn2H15Z&@xv?Vvkcq)Rgm6u(O~8!18prh?-4AtsNC9&f+`7pb}^j>|OLDF&t(#vF*_ zgN8AWN9Z6^M8!ex4~(O>P=rOBGKxR49<`8)c5l!$7pXQ=oDgAFQ4Drw5f%Hq6KA_f z#W*Ko$W+rvaT4oRUY+bWjY-FwGQy8fz*kh7U4@RP6WuJi|q*CW;Zs zri$W};bu7%$GnmAU8LeJM&i`zW*fz*R8vE7+DKDMF`9E#oXu##dc^5DrjsI^^{Ez$ zGbWp@6l2Dj4HRca7|!lYM6hqg*+qz>USzI|RNWMTnWmj0iv6ga6w%D1m?Ii7;fA}8 zK`i@G>?KyP7ZI0j+9-nQhBFExo^w)76ba0uswom9%vy@1AtsNC4)3gKE>dwuXCaw$ zQgsw(bN*^M6@A`V)~dQF&S4x?Pcbgslv14Q%mOO*cqvm{q~aM)!FfTmh9Wi0Fkh zJ1H_#O*O?8%&%DU6@u4^8N5!lP+U3D@R}CMV;k!lCU)yam} zT#YPVr;4cP^{&Zsk!m}|>?Bh~aqS4Rj0#>SvKN?cit92>6U7|PUorO_TtCz-r-Cs= zPPS>LxM8fRqL|D4YAF>x-i;ufAuwUuH~(3Df$8fprt==O4FyGX@Z=i)ZjrRpg1SchT_d7{s|eV&U{ z?Dcl!r<+EKJ6MleM^P}`ET`g_cW1tfREH@F7nws8cg->F6h%|bHj00ym|BWr&RKD$ z#kiaI6(74Bi`kD_K?VB}_slnYD3(k&%&`Rbjx*~imNJgwOqSxl0fw)o`@~Ui*+Lho zIPYb+pL0`ut=*61nWlx}fhlGS#fk~0k>bH5Q$N%#1;_>N*u^vY` z&!4KHcw&?(b&(ZgTx2DmubL>H;{Fw%`xMsl`KpA9e(&i;E>bb)(^$tk6=ST!Gs$Kx zMb#ivOhu3PY?g~uto2!}A8RToo*Q6zuK9DBNd8PlRda4?E5-9cvx=f7#N<-3+k0V( zi&PC18+e^!t_^rG%oI^^$g9nEk*byArSXPm_a)Q~HmtEubb9|zcaf@&V&f>YoQhuW zgQ6kXtfhE8)Uek#c+R$tFdHe};<-}1_AP9iX%14n zz0_+O>LL|;YQj70Q?{4Z<# zq|)o)eZDV`{Cv6B749OxrQ4C=m#W+K765}YwISE7OnZqvdr*;<@vB(^Cfm54ZU^Jhvc2b-^)9j@P z=k@9k#Tg5Yyp1snOh3h$C0@i(7f_Wh5XGD^%r9aK4WAo}xTRh&)CCguxWHLC<{(9K zu6MR`0ky&f#$~xc3ZE;^V?E<1y1;~O-rpv$|-ZcYV zKygmjU^dT%s-(D<@f3G^EwWj!+CXt#&}^jO--*1<6xZ`SsCtT=31%C`4V;f^c7b`T zUEn63Csj+aAl(IS;Y@Db<>ltNfVgeA3*6rC0tFS`oqUesnY$B(Q(WMmob%nBsaVXs zY7fOd#V)XPh6^m~^6p>Y0xQP5KuLr5P=*VXrMke%-QJ_KT|n{qk78A}3p}3W0#C3; zv4(v<8Rh~{m3eDNx`0~m0?%+)>qE>cisv}j=lfh>!xHaB_Vdy~7uc9P*HDWSc`2 zQN>>L5Em8O>7wFim<|_}wBALX9d5R|sBsN0>byl>YN(4+6%>D&=%Oa1x~Pdg9)AW9 zCDI0%O$6%?o27g#q8@6#+;t(UB-B-j3Q%{VXYase1d7E$eib* zu4G+THF|tc8>PBj)HNGjRQ6cI{<3l1WYa=1XS(U6xIWwTQsgXgQ8#9~sDE&mVm{;F z%w65G!dsN&q7-8-!mX@F~+KZjPreW_y< zA1w7+hPo)V#zlRU?V>(z_4qkcR6G0sggI3)6^tc13QaG?r@3YyMJMN?*moyB<4#or z#hzqSN%1-RSM2w5bPYD_w+mkkF=Z5c!wmb{i!TS5Vk(Y$-3wflVlVtNJnE}7vxQEB3s5s{RINwF7 z-4sVAnL3J}MjQ6}6OM8Ziv1iFoT>PEs%fM+mSid^ei>pGQ*qGi%XU$!jpA3%Mb%RD zvu?%N_v5z^!#;l#-74D6bl!G~-;Fml6d^-Q0To@|@29(H)kra5j9E=_++eeWilg4Z z`7T=RrZ|3**+>yO$}FRz$NR%97pmwuZupF^_{lH8y)JR)p8eo z#wZtkX1ZanGZDcWRTV`f1p zpa>2$3#jPu;(49gPLYseSZe|jhnONNxEGN$%d}CPHOXwGNRBq^Db5~l7E{3(V(e_w zLU9h~rK%~$jWjE$IO3f<*F~#c6e--Zs--w@wBb(A13#zmmQcYse_iUL|5oEoWFEzx zpU)Xwu*{o0z(p(WcQP*IeZ^}p#FRm1CB;R|qxjs5kUrRyQt;>g9ZgJ%zbC6=@JadTRsyx%O9X`uK=vROwlpYv6DRCIVZF|VqjSTNjhCJRKjcQfl%nlqbnYA%omXP|DQ?d-?BRCgFECvccVwFuih?v#PjP3!lv5P4FU2!bh`YEq z#oF%@2fdW7_hy(TilyVs28#Q_UG)8&^8>tAte9yS ze+3@o{uF2RAWDK}J;g&K4C{DEFor1Q`BD2R9_D?ukD@HcaDQcZWUARlv2v_gNAW20 zs8WhmAts*+#uSgSU)4sjI@7dMJkI{qZi;f=SKM`!dWHfn_>l8dWfZ$Y z&0;Egy^rR(Xw^Z{%DPk|#mC%}T1U~wxQerE!+%DaH5Bc~yiRkw_7Px4|op<2VOw&ry$$2Wyx)YyqK8k1SGwcZ%*0cwohnYeu4trhmU9{Rm z@kNH&O0hTAR8xF8%CMI&#WAm&aa0$@SB#?=<16qzp2wN+eO~m}Lk(kmjr{{m5f!XY z{4d9F2LHnWo)fj1;v3edDk%;QHY+H;Wn7g@1!D@nSM+))zFTOzDSBp_ofO|sFm)7% zBMf^vj30QuQ~?zSyxuGqtr(*hKc<*<6h~OE;!ci;z1~mhE?RMRKjG+D!`#12a?!uC ze#M>rihe#{)l>X7#*|XQJt4-;H60Ycn`L%Wgru1b6u%#3R#4IF4ajjZs+HonNru-P zhk--QVk!=K$Io#wY9~c#im9XcL%3nCKZt`~*bEn=wp09Ztf{0J6lw~n*z27z-NmRT ziowjM)>51pW{Rme>sPUd{oZi-=3OasNAc%5Qze-i!P z@cAxAwNw0gs;Q?K5j5o#rwlN;RIpz$a+=vnacY9$HK$?}uT%L{ba|&SpV~|@I@+wE zIDL>=OvNEDe3pw*oNYMHNHP@^W1NeLD0MM`O8Qzn=yii?;}6;QF)OP}Uq)Fz6HIY(7S1!pLxa*m2Knu<%8YlUg5R6-n2SI6=dm=oRCIZlvrg4Okr`{sUCfo?F6Just7<7`4L8M99Q3Z{ zo>VJE)oNd_iohY1PS}5+CWZ27HDB}DS|Ew#*KZlvc6vYG03W~d(VI6miecoc` zQ9CH^NimFh50;EHWfb?aU$vZKX_#TorQ)b}ANQenZtuggd4{uDhWm5Oev0LD&0dNJ zI1k0M`T+QI1aBwBgA+_GMagJWLPfv#5bIE#6s1#5J;lSZhG+F*lnpUUsp$0{VZDmG zc?2uRn<|P&IVV+0v5NCnxm0v}k7c?T)l9K^qS-|8c(h?HkE5LPRfSX>@Sfm2)GmrO zX=WqEzs8tyii$yI85KvpCyQK+I!sYH$1r9ko??B9GkywdN0~B;r$bCG6|7IJ%QkHk z&v0L=j-rb7sg)GZ4m9~x@JxvHjH7l@JeOuRQdBdJVvK4$@5~a4ngM1p6@A_d3tf!b zL$M*KF#cZIc9c`GS7B4ZbVy*lPG3KRxUfpaLqu6sD{yoJsP;5*xJTn{d@<>xc zMZdR+^(oF^6JE(MJ1I6#HCriOWxZ+>MSZkcNAcPivzDS^gkdiY;P>V{o`=`P5wDST zs4j{(rkm{)ThdG;#hdI;Ra0!`+*Ad{TgDw5hm%b`#jYg79J}yQgkh~8iGHs&*TpE-+lr4fO*2K?1hawSKO@WvDvo*W3tf!j z4%_ix#!)*dc8@o86rYSSt0_7L8}6t>^m(7=xfpebqH~Vvp!h7^Y^B&U*3?jZKH8K~ zbcGtuwo5Rk_#(@+Q0!&jY9qy$oS$N?U!r@USwzKd@2hDpMm19Gi#FvHU-LS}++SmV zh*?Sn=PCZjzSVw;1G5ZkJAiM-8}8&A92{d-QGCm|Y5^5IGvZLTVZDd&-E`AL(KF6$ zqTu(Eyef*rBTXsA4`F606^Fgv*)B%$EcD_>=2e{(M`jrIas)q3axp)*xtL%2y*}2g z_}o7HI@PeIU(r9>lu*&<{kG7>s1DlUV%=o3f#P?=%?c`xcp=#?R<%(4e!Qur7%gzyznV5Ry9zZ5n;+G_;Utt9u>R1GufZ2q=*=3*h_?9d=WX>Y@`T` zFiWWD@uFtBShbxZntiKv6fuKMF%|ngel{Pg>M7!4O*us{%<$|4#bGa=y{O$THfe#2 zO3j0unRP6Q6OLwuV zks>u9>vu%1b*YcgL8;=(b8wO@!S+_PFsanUeS zN|DZZs(=c{6BjeT>Y$jKVVWr}nQYj@C78zk)q09cM;q3BDW-GYYAF@$Q(Ts3_EBWa zHfrHj3vGk>7iFz*9c zG2LvTc#wNg>nKWwnI$gvVa9rd^(a1<- z-xEi?=J_sGF-J4r=WLa{jh)P^nkha=F*Ot|(Wac@!%&k?1!IU^^UQ9Fk0zVV6s@dR zt*7{SgjqpFpVwCCVio7zhX3T4Zi@C9hBIo%ecepJ5OCQ#^xv@OiXh&d<>`##B&zG1{!8*c)mJsMzm)$-Ig= zzC`ypQ%mvHNVANJ!`{BxE>`WP_Km*;G9$m6@A_}g)UYdqBuCm z@U?gl-)5R-ibJWUj^eunv!0@duLs4M^x*rUW(gJSM;xASIw^jbVtAH*KyS2JOY!4y z!`75oR^T?*gWrA|%WdP;ton{TvskIw%HAGYu5SB^%~A4g-go zGK%Aem=zSEp{9i54}4seQiKgKg;exf#h< zIDxk(&Nu9JBL2=is)Zsg-7sew&Yxg5Q%p)Q6%-c?GE1oF^(Hfq>Y})ic~l$46xO1) zP+Y|R6nnb}=_3til8%c*O&%4jT})*h#r`gx=Hf0}WDZhfWVyIZdgXAljEa75ChJsu z&P-gjz{OpC#Kp}XVah449c&7z;B!UxTyu!xx`n30#pUFs(vWvU9!NuLO+gmiv#i^|nxAJjSO_9s~RS6aBU);udslya` zysy|>9{7D_Zy!beOvBpqaR<+f;{5MG!8lV(apxFQMN!B)6l*BNT_J{f?h;)tu6UV? zTfEb|C(Xqv#^U>#xFz9c6~(;+4R>;{V9jD_wqcz6XSuis7MuMPE2fz(6b~jC*2v$B z5mz$AG$Sa%e;#51uBhy{nqwIBcnBkdTEjqo& zr?@y(=i=5(aB&qmhSyf$Nj|PNQ&e)!s)UMO@2Pn%PIXYM<#lQk#nYUpT0uphw{C%p zQ+p_$VZCZQMb&u2`l|43gjq>Nzqg)o6mze~bD4%Qo|TlbHu;7164z@afDe$1?MeZ z&Ne$KHnC2%j^dR;rjUyL-e%54HBr1e*6^BFQO~)kA}aQIuVuJ6)kwkb5__CM16~g^ z1yt}nibl>;vA0ING1)Np8{p@C-X@AS8CTU(Y)vxjDc%}oR#I$pW+4@w-rLNh7~^d; zagK^RY7*R&cxSe0q1Zm&Y@m2|q*+eI5pTyF7pHbnyvMyM?(97@vrbh?1<$E?pR-ZS z{XTXwj%uU$V3OHP(GoD6aSJ{iWXdRZ4K#&RbbB97b8)JkqBY!bX07;mfLTbzZm*5| zQ0$=%{Jycr-v1-|y!J&dPVJ@mZ>HHnu{+gphP%P{R~~Er1RWtJmx@mB)2S{_HBxl4 zf5nZbU4n%PWojB!+ji~BX`;(nW9nq4qtwhIm@ zF-Itln`7E22Bw?M6vs!K)fAxvO+FQSy+2HMLA9A8EZi)k;*j^pEEiO)=Z_eaYN{zt z80LZ}(v#Xfe)bkrEfgoGnN1YK63jY^KMgl4D2B6MwUpw|&g8k^Dg7=uigl_oiqk?2 zA3sfWd!sX4P&HAUp5%gOG`QfIonFLD7YrPA!I*J|Jp{+QV8VRE=OrLG zM!4YL`FypVA}!7E+BBTc{#6ylq+y2VYmzwTU9ivvRTstN8D=NNg_F%@iYXChHN{0? zrkIKzFMX~Hs{IuF%*oqBF*VC{Qd~0AaCVnq+BDNlacPFxMKPU^D|s82aUN$D^EtSFwrQux znQFFD+%VQuQ_ST&6=yIPH-?!4D)xKxvRzPd2J`Tb>1I2{{PAWZ#ZBx-t)^Ho(Bx6k z?cJQ=f~uKfVVdD=7vh#=Q$w*R!jx0o%6Ti!`c~vRQ$R(JciUVSR2>v~tY5MAJlsCf z@NC?Ue4Y=*+2`X9)~^`z4#ByI0?u3Qrnr-F6=U9s!W6^W3vn0ctxBlq_lg#}pz5Uf zXS&%;QOv#-XIYH9LrozS2ff8vE~uI*?ip{`(>+)+#xTYb@O`Goo!l!9czmB3RP7Y^ zu^zRRV%a#un9FcKd81n(FU|h9@f}g>8l@uj|O%WA5H{v1A zSv66Vjy3Bj9v)&AQ_<^{&2>S=+)&>$q3N z-0SenAhU*|D%@02JR3Ci6zkK?Zi?q-o4pj(3(PT!=T~?&+?QgG8oUr~8YnhQG`lEX zoNhWOY8hAcP`p%V`YGxP3?Hil|LtpVQ<4kvciec#T<|sCex17%jblui3%<$SzLjCP z`=(MC+@39ZHhN5|pSwh7T@BJJXRGiuS*g4tMQ+&WUiZMPw z%TTkF3ic#E%rk^GaD${m`^cRn_&OqKb(tdq-bZI zim}`A-%wLb#bIxEjti;|ici?D+Dy?g(lAB`K4pHz*?)>o)~y(`Q}lYD<-4HbTtCB} z1*VJQ^BJavqHB_Ap!g!$)KcsnWtLIV=Y5&$g8Q5c?&myJ2^GvK{x{ofr#QgpsnrzU zgc#2J8^IZfgFHWKGsU-K4A17bqQ^Tl%LNr@&i6dQA9!E2Q}j+Z%@jYT8`kn8j_?}Q zK=D(msd2$$yxqtBD9)@8zh=4MZ+$L4B-N~=`29#zLPftfV1bKQ9Tdl9m}ZKB6U`oHWoZq@vv$%6e1{ z#mU1=v5Ox**u{@XF??(UP8n^MQ^DDYk@HO_#i`R={An~i#BeU*LjE_Lk!hM;d<1U? z@(mvgfWMR9+eQ&R*2Tv*x%l8AFP{A?_8yOfsivMHag13-krZkQsp$32VjR^d*!$TS8*WxooWr<^^EyZLdE;_jygEQ}?rg(e&P7V9siHVY=zS%j}@Y80+FQ z8(sX24)03NMKw^&Og8H&uHv~+%ySiHg&59Zmgw@Xp5fwE3q{sc(?)U4G{aqAgV_^I zHN~~DhBM>e`{T0{49|Qvu8S}g6mvLNwVdL5XBJY??d7m8wVmRI@urqyF6XN_|GDC* zcjJ5)ul7;Qo9E)^A9nFKGp|}lv5@mpJevz~ORCvSu_(c?r$xARxLHY&JHQlC!TjPj z_Mq5Dex8djsPyh+e#KhvL}92|M#VAju0<|hvG%)AG}E+G@bA^$4vJ##OKqdLn{!ed zDHaC|>sX9?SjWB9F8)5o63Zr78V?W6JYA;1ehGFayJT%U%bMa-#E`DW};bSZD zDD$b+6sy>$%B6xi#bYU^hGO+7vy6%(-s7`fylSB+XT548#S;-`6&2ipSd(K~DgMRl zR4qjX^Qje7aQ@=S`KE)SGTk&#JQZtJQmh?l3aQxZJw3_As~U=RoV!{=#UbyROc$>> zyJt|9WH`Gj(eFJw*TpOL@+{UfzS>Oj9A6J=1rNzf6?V@;of~lh5-*vrWDh_xr zaIb17#Rl$6@tO^Iafm6PqRXqD;^I|3#Y@qqjEX+5Zk~%*-4y?xX__cDjyD@9ULIr0 zDK_z3sRAk(L%fnnL^%HazP)#6IsmUZ=KEH1j&e8k_O{ zP_vi{)+u(*GR(CT{GBl#XZrzKh8XUI?=Rx{-a>uI{uHnI5WAR9RZ)C2%y1_k3GQ9A zvQD*=;^RqX69s=iyjM=~AMQoXqoUnw=XGi$#eX?Z#aaGW^m@BzyLiR3vm2j`HESt4 z2AKjXI=xRPyLeSc(K*sArGm2)pUpI!`DfUZVrnTqk1%T}x;Rg@jEX+*3!XW}{9j;i zx~Zr5l5>Zft z;uU9k0NRkNMR_|xVQLLHYhl@Wp!jw|c@BNbR;?-Uk-#^zSxW(om z#qVaA7K)I`E`jfJ5{?fwMN}N}LbF|h;&Vdrhji0G5f*d_gSNVa!F;|rG0z;M7_!VI zoIJ)Q{3*+{Q4F7Ec2N8|#ne!Y7-g1Hao9VB^{DL>BPWs@HdPd3hnf;9dcAYzx&+lhF)qV2Qkrkvt$jH?*qZ{nagah6L^oXJG|opVq;Ykx=D2*aM! za6ZqCDx%`BHz~&@s7{Itrkm{)laovp#f8JoN{T70Pc5c`=RsV=bEI}sq)#v#DJ~8e z&h}zV4KoE)9P}>Xywom=Y2!^T#igSScW|lTjKy?br&=j4n`$`Y%a9RaR#99&z;MQw zi#{(i*CnVu6j#hNJ1AzPm~|9a4l_%rU>q@Xp<#@fxQcUDZ4|R68_s4HuI4#Vl@wWn zO)(XRy=&&V1jX0fHJHt~YAeOH35K;@i|iqWv&zPG&McyWF~l6kQB4%rry9=udgO$g zH54}tHSGBY!TpK3b4@qJjX8!r--vm$%r1(5q?t_=^P^2U#Z7}u5fw+h1q)q*>ZG`N zhT)EG#=>!CGsP`qObHcz-l9C0pg4m?xRr6#PKw+KrjFvaQHHhMhP)wW85Kvo+vm6h z)k2ZaeX9nFJCaNlMFHce#Z(;g?p)v!R4+wgfnoiHxQjUz^WKG`MP@I>KeJ6MMKSwP zbrg4V-fAtyV(wM3hQ)$8#Xa1kIzX|6b5h$W?j36w<6iLJfqAPa?i*xymhTfi-m)y0 zpt!STxIfucQ}DAak1>|xfx(7-KOi^*v0}dIqIi(?sV0h&Xj4J)5bIN{4rOd7-a#olHw6(nEw&MYsAV7(@ODZs$ox$Vin^k*0KtZg&NlKnBX}Vt9j1V z9t!?U!8<@vKG(44ay&83u;(YRCdD*T{42q%qp09~RT;&T0}N|;Qt(WP${d%#&$$ww z8DTj4XGE_{SijUIRM&dX2VH_hSMy!P`o+Hlu~RRWH{Tccq_!@Q*prCHpe9> z=Gca}ITyuV`2IP8@0~r)s0r^(G_2trY@cBGXTf&7JI1V{*uj1k&&CeC$8)NRsW{>_ zvnIv+{7f$4{Y7R!#m+3Vi-O;O^jOmeXc=dCW?JxJz^tR#HQH2Ce8l@|B}Hq9DW;;= z`Hq~lxAR&l4ls{up!g=%tfAod8NEU(7(;wJ%d}G* z$}lYy-=&)dik?`rn&NxTT`i|L%=4l0sMzQIFw-TdW{O^(2USP$BloS=Qyd95+}#oU zG|F(-KZ$dW+ zIn!LC+DI`j+>}wA>&!wby1bN0E>YD`oHx`IQNibl)X9dkPQ_n_m|QA4yz$(NVyyA_ zE1#$GsNnv@1U^r3#}n{3=2eAM9PlP)x6qm41#T{QFI1e$6=UHv1xOA*xkC$TlFte13UhlFTm#B79WTYBilYz^5 zo#IR{7tAFxv&;^PE0PU+xkB`NGv>QQ)k<+C>r#~z{QWK70xDX(t5}EHKrw5yVePZT zLGS7em#CU3vJwny$P#_tH90O(?V^~SVpzj$TpMQcso?BIHs`N4Qd~F6ETf{wo5Oi1 z&SDO(XP;^Qb<#&E-4Zp6F+hG%4+==A-9Lot&#$ zK}D}u$iCGsio3WERYOrU*c4K+$NMMGiK?Y29%GhM(c|5n=@J!dxEqT{8=j@bV!w9} z>s5TtJy^nds0xaEc@ES9DmX{6bed_RxG&a}QPJluW1osM`SS~J4aIWCS97Uo z_8v%biK?7p1)rxDQPJ)_$n&DADN1-=)KV&XyoYAFM75KmG{tb%rFfXvsUj-6y)w>G zZKZf5+VG4$f|VhLvso#2d5?~DiE2H?su5;66+CC+G1jGc79YcE##a>-kB6E9DmZ&l zo^I+Wo)~GCQNeR2)?}F-6#W0i@hT}Q!VG(^5C^>{*|%a%PogrytfbcXg6|6z5i#26b^n1_nIcgV0)p)a(;@LrFAr%L_^*Jt4?WcHdf#KuN zp?aQaqj)~eG*HyAZdFI|0{5jBQ*p%Gz#S;|&)*r8_+qZ!%N`5 zarO35{F~2LtrQ!l7|whnUQRZAt-p*-L9>?Pl_6#&#b(}DWmIsk;??1G$j zw#kMyY{T2Jri!9zxLHo|4quOoHM}FZH?e)TVb1M%mw8kp#g0@{N5St@dpyJMp?Qp{ zqfTf z@iF75YKpeerh?)>!^~nTdc5{Lm#8?ScKkQr9HiiP9K3c4euvuIO3}f&salFpnOBul zbPhMHp%b4CHSFax!Cu6k`DPcz=j=zVr|4q+Y9+-NVWyahL*CwOm#8?Cz4$WCY@+Dq z9@T1!uLhbzD%i8w$9mL03Vx@-V{Kn!{{&M?X`ER{adfERPL7Jb-p|urqN=AjHpY}t!T91A&PQ#f=u0x(RUdw3 zT`G@?Zm&PXB`U`5$8YRMafZLGa!D@KU8m#jp{kh>9+k z^ym35>68+4lwu_3r8+41{dR8~#i*cJO>x>V!&*+m=uoqS3f3l0XI#aYrz3opX{InRdAf5mwx2<8=u%&R&nlBSq?inF54DvIQRCZCD} z-r1ak+CjnpA0Drk;vBv{6l0u&aiOM&iv8ZXjHB4oxk#B{SW61dn`jy+QpXw2HWhyf znDrFn$Cyfrzm7DkDJBdutYLy+9pY~@%pQt~)6G_jzbBh23Vy%D<81l;lBDwo7@n2$ z1<#6@#JFl3#RZI`IHL2jJ%DD!%Q(1$GoZe zE=e7xxMYFprkFO%v`}0+-Z1B-m_FPrq2iEt*=(1jIw&%-%x;RyXPTW9nQ3Md#T7}W zf?~!H!yGdNYZX^!8`gFuW{xu(D6Wby`hg~&ii2Jb`&4ZdH%v0D?FP(c zT*a7kapP#Sl44$n$)kdC#XqaqI9#B;?`utvwkabM;X?hi`zm?0TqlZ@@AOr6t}0ET8jKJW);O9L(B>) z`n`fhE=ld7xO2MMLQxnrJVS-JYoK8*cL~-aie{S@ihr_CwS%H~yxB-`H_xYHk9T7+ z=cfv(=<)cSk|ed8V#yT4+Lqwn1hbxE>1eZt;=X9Jj$#=fSDeW*+&|ouP|@!#=Uh}b z#RHj!y*z*wDTX;$;K31Q85Kvpl6fvkvGx)?G}Z8oJ%m!$uXv_P@$g`?go;C6*({f& znkgPhHO&18Rx-a@P6hLeN9P)zy+^TXim9h~jQdp;6sw0C_P~FylC=7m_xM7Wq&g`0 z^B0dhD901YhCMuiHA74>72K!z7w4h&QdG=02PvMMV_55xsGMP1DW2l|)K-eM6Afp% z7Eh;`O%&^rObx{|;iim=KCg;(Ddw!gvy%;TJd5??O#{VqV@)kZ^*B>a@%%8emAz2Eb^&ObiK7hk!rpEo-W34OA3cl~+ zt)zH6#4MrWn75aRJr=r8#Gsz_=&Snoj;5<|X6@%X10+*ne zYcD=zKDCRYBg=4i9r#a<;dB3k&RK?e`Tk47N7GFkMOUWTLGdy7rs^rWqf8|g+>7{R zp6R04$GX%OiciNH&hAseenih4vy0-hWK&JCf4C{7g1Zu*^PJjE(aSm&bM@kjShI%W zK!_=)qR;y>*CnVHih~Je9mQ9nri6+E-k}*TK{Zo+9cNZi^bIq`R2=g7IhzEtzXVa-Pb z=Oq4{Yj#l_W!;LokK%u$%rYvDd&d^I1l2>q_hP&q6vxvHV;sj%qfI3hN4yjHE~ z_<5?~&VFuji7v&|Q2Zjylu~iT8#3P|ssj|ioMZM<49zeN6u%l{swjpzQ$cakP*X+) z^N8UErkmo|*`}3ZM9?tD2%H>kR#Aj7u3AXNA&;NoNmQ)$6ofLaYN9wb)~url;~Z2a z#c4xKF%<(|c%e&FJrt+UGJ7Z@GR<}hejdo%Mlq7}S9KI;j4{ioIPOI*aEWR^1wRAi z?VuRNIBFBcSrLY_Jxd()M)RE7MR7LIsf`p->{~6NqTf3w-z6&cbPmR3m@O3N#+kJg zV@H@0Dh9ms3S6SvM-e^4v{Ia(Y-%WC*oR__7;(ts{|8Z`+D#EV$<$L^IM%GBh#O*x zsOa)8n(7i&BgHtLQ!A+8{Kdt*|EilJKGQT&ToP;6P$Ud9i>ToIMdBQ@ha$lIiZcu# zDaNd(NFHhyP{G`(tRSg6T*EnD%eh>~7$PUlY@qmkh$*3h^Aa<&Tw-pQOT59Eg;el+Vm9-rEfhC0k6J;+ z32#o3OH{lsb8yoX!u*IJ1_bVu<0n3eo93kl_*) zYkUApM!UqN>s{iqChy@Gm#9`#R5FfQOvNGZFZnJ}v6jDJd8T14%kfCEVNZ{sYNT08 zMZfnbYg2nDR!lT?6pxKH?CCMAj4%~caHit%xrQ+w$12vNnkk-$c8O0i-cy{pSQ~VS z>vp-s>Ot?BLYJu6%QINdeJVa@J^sdiR4v7ZD8m_Tz~93RclLL2+^bpS64e2UXJ?xo z6dNa-MvCX+O%27SQDzmzKbS{VQgOtqo#zr&2gUOlhOgb{u{qW-CjYKP;y*_k&hVdt zGZb|NhBK(c3%qBliK3qMDc+fSyclklP|@c#yF}GQ(azViT1mxG z?|sfy?WEYlxv6y&9}G8~*$1M_+neDM)mDlRqYYz!hz@7wQ_=1HhxMyEip~gAK?V0M zKFTqCt$l>9SW`vCG4EsULA6nIa}R10#V1i_ITZumzFe267<(T+jWK);d@2rmJu_UQ z;tYH68TX_Z>odW-AokBRyC^lkgqGn zGY9ciwrQm}lxAuvz8+;Nsp$9mShw0v@lBjrK?U=P!-b}U;#vES@lG7WkI`ls6@A`u-XGOM@l(86LvbR+ET)3@U+{NRyn0&i0&b)!qhi1J zi)kBb+IqVz+lPnTnRHN{ly^TIM*Kyfx}t!@BN17)OL!Iv1Tn5$GtQ1T|jZJXCN|YHdCA#X}H@n zMXxuCeXC}QvtrD0Dvo-iIa9Tl;_NiDfg*}?Rr9IfbHq6l4QF@`#;{LSK}DZ;Zk`LM zE{d^PW-G;c35GGwL-Yu_DPks@dWs9;Of^Mpq*+eIG4H~;E}+^d;-;8J zii<`Y_HdEt^Ty3^0o6otG3TkOsNlXte34dam-6(U8;j3z`9fe zMH1^$l~f$@lJi|a?WP#d{izy?ln}F+if%8J^Ha4HY2l`fii2KywhO2hieR$gjDwiK zb80CS{ocfxE})tzej8_2QcQAY0Ts+AE@eKog<>-MR^?P2@Gi@A0ma?(?{fsEj5Mra zis<()FK_|XNs+;Gs)6E)F@|TZ5QE;-*)E`VQd~LFY@nDHW=g2o@BMCu3#hFWnK5P^ z#Z|0RRZ!9AWzBa1)k|@8mSK#mksWP#*RsWccg-vpP^|G9OiwWDDXtxE7E;03Vg}CsQ_0wEHvG(hcJJzhG_yg-wtmzMe z=ftcjrjFu_ip3;R&^Bf!wh537o3B*eX^;cC>m+XsbJsYPq~J>{}UFZ8OC0KKXdMi zz3}~xz(V$;Skppr$h%{P3n~%w#as`FE^o;+7f{L2{==2_%?gDBn#WK!M zRZ(%md$`C26leZ0D!DJ!O!1d7W(CFaA!ZR3oQrsbbt>k11XVnzmQca_ARf&z?B!9c zh&HTgg&6c6o9zOsm15;MvyS5N;ii}h)-F~tzG|U(B4Da1Ru3_p@oLfSJ<0o~8Y$NB zb)m|r;10!8yf=!^c?xSsnQ|%)dVkGv0mVD=SFGdw)fy^}drud-fZ9t@J=xSyJi|U! z1r!`jR-}HO_SbwTI&6py94w#+H$WXSRrb z?-kBZamTM<>tw?-Tk$IEQYBRE^O~l(fZ9y)TC`b3#R+d)feWY(iq{!mZKG&TFq}a% z-WXvPP;t=PUg!dx?qIheFVg9#7m)Dx%0*W=a;%&}TEv15Wiyh3Z zcy0&YVclvY#m+EOPQ{@2?mQPzoYTA5m1P1T``nkRrP#y0s$wcwtN385si)W*X;{Nv(dT{0Iuv*KAv$8s zN-9ox|C#FoYBxn^n&I8*#7CT?DxqS($IpQT6l>_h$DEtujy@IxUU!}gs5XjE7+>+s zC)mexY8Az&A%;DFDi}xfB;_=fQnckvAl zvwpRJiZ1Wl3>Q%K6#XL&Yv>n;z3*6u+CedpU|7Qdz8`AlQNg<@2B#Rt9>fn(W;qo{ zy(4p7K(Y2C_-~roNO6?)t3_1o^Zu9Z0%{Azv1r5C{C%Ckv18tkMJ}M&_m4O})v%`H z_$ktqQE|{ak>vuaiQ?xNvzo4UNp7fFL`ApviyW7vnka@unMw-&zK%DaioM>@$u3FN zQT%F*SxUvAH!R;JsdkE!CYenX!y`;N6$9R{b6t{Zr5KT5Hc*^A!YrbK{fLk(vyI}E z7_*#;BVH)uEA||UQ~5kqO~KEMcnhiM@=jy@s+J;rw5g(keT&mME7eO8G2O722>d2s zxSQXI6W&OkQ+p`R$TV9iB4f=OiZh3s#Z>I~M$L3dYCFYQafUPC`&~(A9q~qUKWYcX z*?gW_Nd=!LqH;|$#W~T2vCa{EjurcJ3hqT*GShH|mmnd=aMlUpgqJwqC8<3Wfyt(kA}QLerby;J zP>ZPO@y2JlB(;?yh4~a`kRpzHsd+9*?WRbZWa=o=qYP(|E(X0|u1iv!K@bxHhBM&j zRgxx#nqn#rc)y+DlGIj;Nuy0U6}{f2Q(cnUL@{}UDWam?yNr3&Dk_e8Q@AI!jpB0l zp{l6hK1BxWQLH5cSBx^HRP6JnX1gR+PjO|0SxiNzH;waC8z_Fq{isD$@OdIL!_-n- z6=oRgD#3Y)teJ*AWZ~*KvxbTjUN-NI+DmZ_>s5^u)7h7*prX&ami;Tnz7{janiUk+ zIa5f*E-xqEB`H29M+|ts&v8krm11U$sicB=#r4dqwov3oni49yy+3fCYCXlQA!aTW zJG>h>7qy&&V4jWJ89;JgGsbK~uyxMiZ*NKp`G%Bbk~{>XExjiQj}6wegm)^NkxZxzfX z=5c0fH^prUW)&4jz4>`AN$sS#J=RoF!8$}yuHh_-@F(`EmQr!pTflp)wo~xEGH(eL z2fT%uE=ko<+`&E+@5CK~ImIH@r`jp*oMM_N7LPO46n8Ps-K$;FJ@sBG?~B?%ac_iS z&G(AqUK!`5_E6lHZ8($rP@ZfUqa6419;*r}4tW)`U6Nvq3h=W$9%uFdmc*MHiU&uT z$oSilHzH8UlmcY z*Q;iIinUea8P=y*+cScFZ76q1HMQQe+>=^L#bIybOqZluD4t6&oYiyS`#RntDh_!6 z$aP7Iv*Pu`SB1q zP;t7|y5#Z;diM^Oj)0qIHg8u2#GqG#e;(gqjj6SfhA{b*fgEv@6>s z?OtHIDc+lIwo|mlnY9%E4l|7TZ_(?uGnU#$@qU6?Pq8P$aQ1ryYY`vtoMNty*)FMb zwfE5wm!w$VN21f~n(UHPEyc%UO(hjayzY4}NwKGHe3E6FDfaPxsErh#jxrmujT=ANQ#$DULCYnnwlWh#xZzcljfZr{+D9>RhT(ih z;*4y=9h`y4NrtnE#F=AE6&0M97*$~UD9&R2s+D4Ng4sa9zenONp<>XBn(LC)9*T3A zUo}#UnP@okF*uj=RGTQqaxRL`9gFi=ud1YCz>Cgv$!a&n`6;HFA|}j~Q_=5TknfV! zUW(YsW(&oI$%eDK5OKVhYAF>*yo=bU>Y^Ao-855NoM6^d#D|(%y!9Y7ezvv z*+`KXX4pfb;I2eqzTvI{NaEM3n<6>Wu$E+uXFaN#A|=wSq)6p`QzcX|he+dNb%-K8 z*X*VUPBL35CUAeMhGJrrSwr#LaI>6Z(lAp-#Zm9lg)Uh!=cSm;c`Nod8JFdlPKqg6 zW+%nvLBkrRrn%&41*V7Mce4!7^5^~J%$Y_$##P*>Vyvr>HO=sjWZ~*)vyLJ=#IT2K z(dS*m`=%K48cb*1s-5E6DW;KP#yG>eXW+UqrkWyWv{^&(d(KlWr&h#eaF^}3r zaWmtpWfb|&6jQ;N;{P~T)j=_Ln%Pcq3*#!jhWK-OazTXQj0*5a&PkO~(dQNNUMS9_ z5VvNUW{P^KJT+yNX0&v{3rV7_1;3>OV#C)?`&|%#S;x{EXLiThP~b` zdb|?$r+B6W_e2@a=pJ#{E6s7qY8%D9+?%STg0mB4xrVbU!+kM^v$;n6;!Z3v4rzgyD1)=Wa=rFGQL_#@z4mv7!QeK-m--*SuyuA zJX~P*QdBao+DP%2aI=Jp6W;P-m#hXT9+_(x;}KM47}i#WN5_~|6f43EXS+f$u6V4( z9HCe_+q6+UKHcn~Se0TLDV~Toto;eB=3LZriYG%%ITf6(SToP;r+A9{Q+p`Z^1dnd zvKD`hF)OKH?P4A4SFC*wZog@HXYRWYt3P57w!wDQZU=&bSuO zk1)*ryy*2d=euOpP4Uk>(@s%0$!wx{AY-?uY1$}W;{McT zipChTf(pJq#LKKl?V#9_VAfH*!oC!HdPN-cwidc%b%5g4T+>R?#5jsEn($hvDWih( z5!+^)Jru8VuWAEDbA&0SqThRibu0Gz2DVQ&4HR#VF;!HsSJ5)p?4x*#dseLZEwrYY zT8g(v8SeOPaopR%yQ2Ci-r+n{7sbx$hBMuXcUhlmq}Ua0)>Hgzw5g1k6FJerGj;c?tH`DcjFW0Q8g6%Ld^<_ zPZ>uQQ_<`7Fpgp`J@|}Ys~(E|>_=^-_&nCEq3C5?wUCN~-WPc;Suw^JI55lXqWChy za0XxEV7ysJ@l}XfN(FZ&4$U;XDZZX!xcjfs7iU&cd=qBMs9+3nn0=}aif=Q`Hi~}M zqc}^xuaW#+l;JGD6DPcZ`7T*;cKp4h=bEe5`nv#v^5pVJ#_0oo=>Mq$Qa36zO56n2KI6 z$a9Lj3t|HIr#4VbWM8U+3g#C4yB}T)#U$oa)fAU{o53$R24{Qo(-3HM}Q^xvs(V6vN%|_lL&w_lLX%RP=c> z^4)mFTr+T8vZ$w+INkzYxo8!i-trUOY9Mp0u z_&hO-&r^KPEZh)fmQgY2&7R}NE7m?6H%>Bj6m#OtT8f)E2USMJQ7>6vbhNvna;h!^~nT4tgbp zZoKNGxMzmxpeW5Y%@p^>n@tpDoR{LP%EVFcz9KhXby1XOnFfmcM;rEdzc}nw@II?n ziU*iat*2PRKGb|FSfk+kKOSp(5KGy=DyE{>dx-t1Z4}F*O%)ZaUp$;|c2QKO7{;!| zUm{I86^Fd#v)p*aGt2Qvz;GvzplYaDNJWqLXto=#nke}DLEZ`~PI!;8XVpoul5&#**7(@JZj%lM< zH^uNSt;5qPW+O%QSi_jrcxH%MKm}_N>sgO#p!gf-r8uj&w^@Ff|mfM407N9QC#qxbbQ)#jBG|9Ys^5SxUvA_ZoMudMLI{H=OY{ygtS74!n-$ zv1TR38|+IJQPJgXXCG=i#hZ+ynkZTl%zBEqLJfEDmN?qlBuQGGt!h((eHi0IEp=gfW5qbig#o$K8!Y;<%j5Cy{eLmW8Qz* zx9XJd21;?jxdb*F}jDEQY!kqPv*GsinV@%eKX83t)`#TJ9KB}0CBi{F%mEzamV{nn_qxfO2VQoL)2`2fU+sZoKNG z_}>iELUC-O*+TJStl=H{5yx4tVy(vo)C#)7rSSK1yb>yo zc)uugDXNoVNQSAW_+^w?PBC9}_p4bhMeU{-Hqq2koHW*~rWnpRY5^799{+x8 zirPsrBF${1IC+d&LlH8u#w>CvinAPpb8}1!#n^z^Kye=HQ;cyQ zqKBArDh9pt^IeK+r-+$kHc?yro|C^m^ks zXT>w)aB;M$qT;9*zrdxaK8i~U4dYyb1kOXXQ6y%VO%#DBvyuwVRU{ReLlnup2Wl6^ z_{nAqMamenoC?+_QWu(TinOVwks>|LR8s^)Oa&F}Nlch&woyzRYt~ZycDN~~g1w7L zGt731OUIdw6q6&&a*E4_8rFT8=<)cumlVa^{5_hK%VW)Yii}Xh9cGAw-W7Q+MRih4 zW&eu3PsNq2N3Efl#yDyT6@%XIxDVA$k(p^Y`%GMwU}`C{q78e>5{x6Ro^AF}WKT2f zDI3?Mn0kuo>{D^Z({XK>VQtrnK5s^@OHr*9*G)Ezc^z_+&1Q<4y7)Q*UZ5U%F zt`8W__LZc8a^$ zk76%(p*Y->Qqk|-&3&sjijs+@mg1h#W*J4PGYhETZpFP>W*bG>WW%1yaNiiSilThD zDWT%9cmG_MqS({@sK_>qSpmM+82Azj&oo9P(D>yA;($@dW3g8YosXzhaElcyfd(qhi2Y z!+I2Vz6MWCF`FsYMw$vL`ni(Hs67<_%rK1k#D*v-pMeH6g%V1Mv8Y? zmtsxtV%G>$PQ@YbU#v@UCjY|jOtY2Zy(q(3zK6D9hV`|HUhm(tT*~{0UCQ3khIe5v zJ`6SMDEQutw~FFF!(GZpocG6_UiWO5q7G7gGS4t}&oY;?pSu#DCmZ(4zuTMA8)M{S zd=Y8b`xiJc#FSFOc;d_XhV%Fm2j`kLimy`4I*LP~ri=>45MQ(ZZ&+_Xzppr}esSFU zj(HU4^&JLs414(@+ok+>v0)5;?j+@CuGvoUzgWXw{wEk$@ONoE&hMuJm+~`TyXqJ{ z=2G1P(?`Mg2E6?gLuQ&C6u(S1>nVmtm`W;+d%v3JQdK9#u&Jhj;-s-=1;y}TrkILe z@7FmlRW(zL2$)S2Co{iVMG+EeSWAdF;+?X{rK*Dzq3lcTq&PL%Y@`T_Fy&Mna;c}Y zuHRI9BU!(yb*X3Oy416%7(LolQJg)(ET!V87d6kND)t$LbLN;%iZN47BgMJnTV!*q2flF1qD;Fc4 zeW-mdmA~JSn$+SYGrnT%WQ-qfim2G*rKGr2wU#1vh$*0gy@|98vza2Db5^W1T?~4` z*)CNveh?Farj}x2xT&DxfcM*Mm#Vf>Oo}#DR2=gzWlgG`V)8^&LvdMzDWigSO-z|# znkg<%Fl#6>*tc3pMVEI4>r&e&rp6f7G!<8JPl|iFQtbDpO?9b?Jx{~$!ptHnI=#$E zE>&%$xGL0?Qo-6q)^x+#vv75S;m)o`HtSbKRCIgSWV+OAnd`a}UQVS;75q8XTkTSF zr@7Qw)!q$bU8-6~F+0jMQQVkgSksM|GtbD!xM{u_pvdD))M1L7`L*h&$Y-s$jC84g zD)^t0H7(?x) z_|s&wiDE&xSw_V%@6YUCvF1Nx;ViR@;*LqCmSRz~Va!FibCg*^#h|yC^{CwxccmHj zbQkz@pI1R~_i)3$?iL5Vl3bUn+9>XsX!shw2c>alJ;l9@tI8salf;O|a&^%T2e%tnfT z@oQB>u{+#wM!WHzGYhCV;I-wtRJGHkzRz8Jz?rE&m)gPIb*}e58tqaQzy1jPcWJMh z;^Qcn`bm>Z{gks7J&Vm@iq8tnL5lr(ri0>h=2r4CdS{z%m-;2=^3`_lP_j!^?D?CZ zOZ~Rc@XWX9pJM7Lz8h&OsOa|w7+`*pe`t28{Fz4`<@b;6bE(JKi} z5t9vbjljuKW*HTOUPzuxQ@bcmNj5bUp%JEniUIG`e3z!$DZ)|=&xGN$aKkgF37!+- ztWz;pI8Ns|wSgic)Ra)cxrpD)FzoF&7&+CYMe_WpUhk~wE=_Ht7#(9)P;uNld!9>E z-4s#N3}+ODbK=Z;iZPLW$E*7jq#OIlI3Vtr# zV~k6Xz&MIA5|9{T%BdLi0tGHjvDN^RxJT7Wkv!2bW-`WePHHtpN~Bpz#St$x-=(R& z6#REcubCn}V0fp}5gchMsW|3M;Jg)Un}CVa4Qrc--?Bc{Krv~Y*-UY1oY_b*IoecH zTo!JsD5iv%WfYeWGra4Ui+(R-zDrZQ0~xrYz;sefWu0ml#g!RmE5)>NW<3Re4)ZFg zIN@b7k7C|TTvcQaP-M+E?G#r}F-;WNu`X@;7MC`o+q-U>OH=&cu0u|gVedKk{Sd>v zzZZMFnT)G8QCuHpimBM=!DxMdmog?K~@rBFu7%KZP3k7z^0HDxu<#_vc)f zrrIbLvTns5@62&&cU5}D&ZVh&RCIWEXSy`SUEPh6v1SDotWn%E*D%LDD4l3(DefI@ zs;J-@QC4X7QrtJi)Kip48TME%j(PXeM;q>FHJ%JH%P7{cUd6k*22b(4V(zD~ zcAD8k@zV<`Bhmv&;a+rp4w6#Xriu+MzB@EunaRlvzWuIl`=@_-B||PEj|~ ztfhE?_ea%H)N_xjf#OB(P4PAHA{v6GmExr=(?-#lZQ3bb&M|u_woEsBC|;RiTJXR=DmuheA7$u+8onCv5jA=eH5?HGR*xtnpv-skMRbduegIZu$^-jZ$_Cq zik3-+uZJL60v#ZJys?WTB_{VMkME_M}r|8g!( zEvMKWZCWVa;~dp~injUYFvY)@cshr@46-i8*Zv^*Z+c!c#gPP4L-F4zvx4F%>re}+ z==J_L$EB$*ieod)Zi*kLm~9ltlT9tfPtj&A#fb=0Me%cp;a&Jy98>A8*m->vzbG(0 z6hmg2c8XtS8TlCe8Qg27_|+uSNHHwl)KZ)jXKE;hk2R|)em%mJP;uBB!Maoz#mV!{ zA&QVfbAaNMd~<>#w8}d*)}^a06k#*Weu~o;8=g50;j6sU$GCLGGp8dW+w7zG&0KSw zVkFOrGh$2=MdWnDGm$uxb*f&9QS3vp?@>65^{8VMqbt0#hq-jMk|HYJG*g_DVRloD zVZCY(#kn(0KgHN`@4Qf#t{C$?L^H11PI3MW!x^8Cm{RWo?oF+sh~>OgHN}NvO#?+- zn%PEiQKo657?*2$C@$ul6nnWC@e>VW#p9A_vz{U$%B-bGj5Mn$0uiQ?B8l@Y8S<&nMOXwWZpN$T$6Db<0;PkGEA9f_E20t*BqwESY+6L2Ci7?O&#UZ)h3E7 z17-`ww0N_T;&$;Y@R*Kh~dVETM> zl;YY_Z^jUpu2xfA$9tmWW8{o9@-cqTKGhnEnPH}i;`$MWbGaV5{JvU2@dtjb)=|u2 zJXK9`1M@5S7_*}dXEqx*#+q7+ISFP9#Z8=(;%;w39`~h=QQW-L%OC2}RT;(qIkSvn zZn$BMb8$nGj%kK>?G7yB_tkcaJ2Ol(#bV}D@-gm8 zF`FrhnNRV1#kiY$QLOcDluS2W6!#RGK8n&}?_TH9RRu*E_ohmz81U{ZaOtX_qMTo= z9*X;C8P5KGRB(Q(o#KH^(@L>qqT%e8;6e7M>M53TziK_jLnF;{ie=7}QE}XRn0+aJ z{V*!|JtZIGFC|7k#_~m`pMw8p>m8)1;@9dh#iN{~Iz+J|->~Nucx&BT) z6i>&R4HVT;W);OVoVzNbqQ_f5-KDE$ioY?gT1T-V)GT%B&yIBI&#_KbN3m(FSxfN` zK3`Q*am=fo=hD?aisxsVHj2%hk75m*@lW=z*vmgr$2@8U6^tuhC^q{k>az@E)Z@hj z!`fa%!*IiM4Wi$BsnDe>?)D|{=XY->#mhlcO|fN|DWamwdu6IiSB(@~W6c_hSBIN& zDvo+hg)Uv~qj)XX@b0{ZZIetL#p|4hT20Z+xN0#Kz1|y{E?qTIY-c@+XSUZ^(hB@EC&QQZUvQsdR;LrRXdwv(Y zrWodUZ<*^!$`y0J`~5j z4$edkQ2b}EVT}Kvll7_wijShrN{X&whH<*YA@5`E`;&t%y(io(r}%8BVg0=kF8#m^ z(?aoOz-*v67-AMv(c^uUOYvyocgz&PB18uhBQf)KYxI`o3kJ?{<3w zDK1^Dr}#e1u($68dlG}JTQT<_ei&nxQqkuf;k`QA>C*Xk)6|c1T)NstaXe`1D1M4G zjPa8g^iIro>54s^z|R?mxqohQK^JS*Qv715SwzJ?Z%CF4ss@T*Mww+)40=P0Tu}8= z{3_pcQ4E`Gwo;rFZ>lMVhnW&8`n+Gyc0sk1Vnm9mr8qglET;%@hV_Jqz1}GqE~wbU zDF}@<>nToU9JPWXY?vvdg7t{gW|%D$;n8Ll#py!~dpKPj@FKEYQ0<`jO`KUt#c^-s zVi#10D9*?;T@;ZyhA|>>Cg-8*C`Lt^rBn=fXK{|IonrJvvx(yD5W||!7W=)ZX)dT5 zDb7hSoY`3R5Y4_+1I78H4RfC_2ECYBE~r{4F5vtXd%r-ie-T?~SYs?M44N8>IM%7k zsbG9@QNHP*7?*9BYaICZ-96s5ixJN_ioM2*e(w_IS3ML7GtEwlMAoC~DFQKO4Moxj z!`hO>5ihyG1yv`-_)OD8k-}N3brh+ghIcPj40vgbquMFbS&!O45oCTyL`F} zs%;b*v1S#;6|75fFIR}Y-qgu1s5VnvIohzMD+T8zrsbJ7ir-B%Jo7tb@|>!q;+S_8 zXP|m0vT_Y)&VP>%UOm+`Qe=-coMpCP9C6KD!yR0M=~-qA#kFG$&s-~xdoy@W?WVXc z+3@aOhn(SN0TtYr_&xWf>M3TjKeddCLGOCbMYU1naxQ8U#UCQf5-NC3%qle96gM!R z;w*2#?2)FN3hqGMIM*=OjhK^WHd5Tge5#a+UN0}l1yw7>%?XBQZbtrS!`zj;E%CpH5DhkLf#M6L2+xg*+DTc-tf#k+&0{l zP;tPUKf?u8GsW$3hG%X^(GXKa1$Qj|G}SaxEa3f9D=7Z#%mOO*c?+{#P;H^OV~pXM zJFtl76mu;S-QJx%r?ycnjxj5#;9SIAydSEaqBv-3DDDn1i>c`GN*G@?QQX71t5p=G zoS!PCqR+c`whJom>Ryz^n>7^ou^+{K-6uM{@`)~}_}|QO+|T%mJ>M_(dlfTXP_~=z#o0cFm7K3yNJX#r z_;eRk+bCA?UaPefPmD0dF8Jhe7hF5iR8Z09{gwHjX3X`WhTmH+c-O?=N(}q_8#Zvq zY9GblXBqDO@2JT%O%%_LGu0FuBh3nm=Y|{BSsUVln}eo-fCgUph{w7+6n^G$Jy|)TnP;timc{tcQ)3i~%o#BG-bh_ZKVP-KE z2fTmr`Kpy-cY;|*@gC2qA}V^lwk#KH?{UEoLJfQS0DJlTj#Vz$+2nl`?}Cau{Rmy` zLoK9&bqN04>FuQG4wy9*pA0pHRJ3{fl3h^oIs3rBY3?!hr=rvAndXA3p5n6zQ$_{v zx!6D3a2EUVd92|qK1XkuSwh88?~6PaR68jSuzt0k;!ECH#a#USa_~#`EDq+F7K*Rp z%t|VbdxtoC#eTjibir@=J;nUrqM!Fk?V|XO`BgQ=zzDODiZ1W_sV=A*C z?G&Lrr+6k5r*a;ul!~KX*nBrZby1u)(@i+N*G(8X!W2^>|2LeGV_GR9(@ZVJnWIb< z#VBV=s5t1IHOEa*?C~s&o@N>;&K~O~oKx>6oZI1zo$4m2EfnX)80I)nobaLx+yvE0 zaX!zfI*J(1PgPLCdc+0OO$$YAvZzi`@D-dKgAtfgmEcm1I5Lm zW+4^(y?EwVEfkk9zv7uokifaBB~RF;^l2lg%cIq|s&t6-T|~A~!+prx>4W zS}0Ny%vy@nVTR{YMW>fG-Az!f6zKu8o+3EXu;$?ZvvmJqS(ax5$FDi(95d(0j4?AZ zBO@atGE;s$z$1~F5i>I~Gh;?XMr1~0Mr34W%zTN6$cUMlIWlLC%!rYhnK3dmB1epw z5fKrQF(Z4w=Xsrfe2%XS?(4pO+;kj1J}|*KiRpQ!iy|)Dv{J+;8_qf&37ofL%mgHc znNli_d4U`^T^*p{-)y~Y6v^SHn2LTch5M@xiXi);_EOB4X0}tLMjQSc!QVHhUm9V` zDbhxm0xDRexGc*Yq?nmtHd0(Z#xS?bMX$%-H>a!p6j#hPbriGNAGMa^${~jRxKeO0 zk)CFDy6JyPcGIt3X!cOdooY5yToY#2P{G-Wd7PhWqqugKVXv-5X28@^T*tnvRa9_Z zVm|w!S}3mPycB13Jr?l%s+Cj>csDR_#a{65x6>EKnktGLhnjpU+Py{Wo7zQj(yFJ@YSM2TW$YUJE7I=XsB61MW?rh zeN_z+SyRqHAEy-8jk6}?_ruA8n7 zQ}8>JJkI6`lyg3cxs~Hd=A)KV(dAXJF14THsW`KdqLO`8>_w&EI>Fx~J@(>hR55Q= zL-EWgQ%nW(7VGDmCW>d7x8f|GMRk;^pm=VmSwcmNSHpE`7sX#Eo2?WZ#u?6Z1D+pd z@~PD-v)pu5N3l8DaLs1C#QjwT#g-98hQgmVH%wC|;gyYACjja?`gl{&t=n@haz~IICB&Bg_<0an$4e;L}wdMO}oO&d=RW z-?iU+BiT(?oI%4(H@&gI9HV$^sp+8Doo?zW-kxOG>$kCIm|?H?h&JyX#(uZOO@Hr% zw?EHKSKMPi-se85hoULVbW;3_u~a`rGast~iVxUN#n*m-14~RF#fOZqdMOU_u{uui z5$jgm`y(96Hr*5-FEiZhW3=$G;@TE`!g|yZiq^%3_5Yi>eYVaFQna(a4#xRB(v(xd z=fu%P<^aVPoRi}0zCh<_Q%nVG5?^v()kM)X#Z*yz6=GIUam?#xKU5dR*O_KNMNg{P zPVvnIQ%S-5ojvZ~E4W5{JJ~SjZ_yWSR#U+qi0>AfJrwha;P}yot*086nlO$Mzil~9TmsDQx>^6)l4xa*=(iY z{nQ@!Iu&8ga9x<#=lvnU#VM}&1Hva5&MF*#9A!$V81%;Gx;WKNaoT*t9-W49Q_U8N z(-~K-rifrZY6TUY-WlmGPBl`DpJtfbc$~?8DETucj5qAf1To;9mF418Geu<3a2Am` zoBdJiDJG6Kt0>MHW|-SKqRWe7?-XN3;atX5brh2rSFNGqn0FrYQJnL6h)y=!Db9~E z%;kJc9%9(@$+#fI6jQ--AY$@O3&n+TW&=fRxGAN$h;bFyT_ifZDd{dw?WVYRvZHtMzf?=-`5r{JE zRRBpNOfeOGUh)zbr;bvj@SLjs6hWRZ#h5|Nm}n{~QimD#E)|#Z+^Q8+9QV?ex;WKM zaoIw%mx90dd$kmovu?$+cDXp=%_?wls-NPD#pV#j>`cSlXXDCbvyCD>(o|4fHPRGO z!M=zL##OBpf0||LDdxnOjTBciU&Z(C)q?qox%uV@#Wi!yK8kq>W-GL|thd4@6P14SVhX9~@ovm^af-dY5sT7I zBgIYZgQ}*;8ey1gmgw{Toay3JGsWV7;j9ZG`1fnjcUAb+0W z9{ISF=TB{;SUSd(P|@ezwaCS(CW>XThCN+|yF*O@6-T@R?yn9|+{3=AZ4`xL%{q#E zhZ)AWSFkr?d6qd$abKEYkMF|@_D5Ax+|M{_ITc-A(Lxue*oz`O!1s;fS$P1(F{X;* z!69Y|6?{*NmCMWk#Y22fbx@SdGY2Rho^5thteR@JP&^W0*n>yJptqWFRV&4#tXnbH zN3n+Q8&yZ~*kn^d1>=a)TyvP>FFaprC&gN>Q#BNiPcY2oajY9|3aDuJ_&4G>RZmgI zIjGfC^mtG39H>1M<&z9!my6@xlld-A^-@%DUTQzZQvtJ$qH>%mrGmAJr}NAaimF+L zYpU?fSi>Bj5y!msnJ!MTx9jmN^HkLo)!}9h1+N!)oD;7X#65S^tC{cO)B%dWPBEJ) zHgJEnjtb^1o?mR5C^mAPs-k#dgyH-A1<~Pcn&;vad%FoQPBYsmHcvJiDP9_5R#9vj zV%WDWqTT!3To%;ii(JF4U}~V!(Tiy;GeOI~i9Upm;siu*TQ1YocL|yYR*^ zvw{l#n;_~J8qTgBZ%#8?C>q9^)l{7D{+Z+AR0~C8&}^r8i~Fkzirw5_Euo^_dz*Qy zZ4`UBPL)w{+?`{b^=9#ru4JsIM1WXgfhjUCb#XzM80)OL#hMjFoQzc@0&6j9OVea`+V z=K48~CYUW0Uxb+wD*C<7MJ`S;*G_!NKB&zUU84=pSeM{B@znyepQ3x3*+lX67_*WJ zt`R-VQ*o~ze8c@z9YybCQ%UjdP_v8*_DS?HZ^eHD`tTj+qd1%I&_CXkQG7ql6j0IY z9m{rciZefkA7TxA_5%hcn6*?4dc5`$r`jow&o#R#evC2f;g1+(K57jW$Go5NU7YHn zIKjTEeH1@WH5=(h7wt~F*L!&4{LJq!w0~r?P&vnj&n3Sx51Qv1UC5uVZ+O6^=jhv8tpP%hxNe9gEY#OgY84P*Y6BG4J#o z7q1ReM6fQ^NO4At*-SBhys4l#lX2B5Dvo;-*nibVaaM-eO%cidDAp2*v%^g(#l#R( zNJW=-&LS7D4p2k|4SODibD5v2q?p7$sVx-eO*R`SqDPvQRIo4NeD0&zlk+i|eNhJ~ zF5qLek0K_{)KOeG&D2uFPB6?N78k`B=6n&RL>bO{3N8*c?8U{HI@GM7qT9Qqz{M-( zdBNC+6_m;m0V;H{6SQKH_QQXA5R4GN)FvD82M3499EEliZ zDHdlMp54W`In6XsWXGBsid#4@RZPX8ms8;4RTssr+()sNTag}f7;V_#JT#ggG> zDHWaG?L1$KF>Xg*(CnbNBi3xB$PYD~O}-fL?qp2G+1!bxtXu7-xQlUAHN~87UEvURh-eiSk8W`6;$+k_bqnu>JY_>bhDS@e(s~T zQ4~d)a*79>Sw=;_SIoHT5XFPD%^r%C)66D{hsGH8@*%-EqGXZbnJK};$z}(|su;r_ ztimIahO>SIt4A5uyjt{nkLJ2~#Th+{HQYxXqoT;FAiE$Kj zdr9IOctj?cx>pg#fOs(XYnBpa$m*T4&o!m zRYg?vd52h^YNq&js$p&)qb1TXw-$Ud)|653^Y$KdZ52J%^Cn4SV(__}PDtJ?p|(tVgY-;)K_o=i*fx#n-b8V}6aE zD6@s)n@Gc%euG~2MXjRZxX16(i&xzgeXLJ)P<+R}Dc1TO`qK?->&N$Lrjgrsa( ze$Ft>wAm%NWV4Op7ZXh-#gLI^1rDL=loQ%7+X`>e_-GFY$T`#D2&dVgY{RR_f!##Q?%t`3+T z6mut;O%&IRG9^?Ddh^&*#lFtNwF}K5ip+Gw*=6FoXtRN0{#e5v&Byg2rhtk8Z^06m zpjgiW+>mM5lN+#*`KzrIH*#L8oMI8@p^B*J@ork^64YLbEXGkgDE`bosA`JEW6Wxb zo1NhtZx+l=WG^y@C~iqJJ1KG|8}=Xvw~jXK?X80S6}jwz>ZQ1iaaA+LlAvL(OK>~$ zRqHA87*{c7o;dE^!MKVs??67|s>2j_&Nh1}mL{8B6nDj#trW|mOcez`H{z|NqTef6 z=n_;5#XSL2M^PAI)=}Kc{;C2h`n=_NE$SAX% zif(W90+*ne+iE;I(=<}7nQCe%9vf{~<6~mbD=l;h>KMgeatwR-7p$FQIQzADoc&Yl zDb}$MY8A!*4K+nnobbvxGu1=!M5ftC!Rs&HHi{>sO(jLeaI=((F7K&qm!MiHD$@;n zP>H9f7{+`WReWD4_M{5Wj5pO3>v+vS@P|Xw#35I(%;Ga{B{27frk7_-|TcZv4d<(l-uUbd(HqWOj zreeU`lj9OpJHUgyMbfqnaq1 z;!G{Yza|>?_+MxqXV~Lre876uDk@ly;OAyM?r{Jg=9q4ZgNw`|ijNkU7K%fe<}k&_ z^9*16FzKeTbALTZTM`KX`pD2 zGg~SC6KTpRI!2ljivJEVE2v;E#F0$XMDcm5VJ)BI=oG^}kKzl~r)nrV!%P{)m(Ju; z(e8C+xCGTm@zrF*GxHU?CzxuAufq*z{WW?b%vy?XxUb@#-=KG_Swr!yGfSyppGDs) z@4MkHL9rL#iGHs?+a)OWydU4sH1!n6n77(Q@dNWzob?aj{URQ7PnTQtn@Wn`jW(qeqlTIlRCIg4U+NOoaf;AohR=uMv)=~K*linw8>fC|)@VU|Cm#B78Trv^%OTmoAne6N18$^SdX|d-PBR=eie_sS|s|so7gY4ha!vdRRzVLIS-XX z#X*msr%6<-c`ytPyedbhLxiuvD;JjPd>DDGhXin-q**dM`bDc%8!J6X4?rC2)FtfYc< zi@W9+&g?Gmx{6m$akn$C<-ylsOaz>nB@}Hc8X&5L$MddqRV@5u1i$x z#e-PMIjJ>N40;dcxhrdleZjQLzUVcxt@ieoqP3A}ZNu#U5AUY4%x_QgO_yn(q=-BgHe54QI{k zD2eMw8TM+u=<}Xk5$LBVPqu%p#T%y`Zv61^L&Y1U~ByQ~YURdA~)ozMS zF{XmzMQ4^!amd@uzN$?WFELNGjEZ(|OPWhmTPgk)W>!$ae77!jiQ6i@zYlkbDvyd5 zZ+pNcs?8Lyjy8o<^m;oMyF_(>;vdXYZKU9RBwjhiYeNik;e8~Dudy$J_mFr^6t6Rm z+D@@6!Y~G}Yb3rg!Yrkt)2q*PiE1Ckn^O&IcoPlbW;GQ9-alD~Vh#U9BllN)4>jVg zQHHg@C60KzXSqbRlj3dGtJYF6=9@g?h3JS$%c)+@SL zui{L)@D=;3YACwdU$u&gW8T+`T%tNi(GxW6Q4hWuXG*CU^m?;hqB=nFZNTu%eT%*@ zQ%psl_uWF5sPn>b;+GRlDHSKYp-Wsqbx{0@>(n-iVcbuxrQ(?P>%}gh4p9uBWp+{gW|FC- z2pMJysp$58JI@7FBgKeVQ$ul5h*?HOmp5{O3#cZF-^H1Y6r)C&0xFJpzh|Cm2Sq6R zqS#B`w-PwnnOrJbJYHuBs5**MA`N?T3dV4q%BP~kJ2l+}6nkyF@gK3{S;@#7_K=Bk;6<86$9ScSuUVjC?>MsY6rzRoRea$=OBu4 z6nh;d+PrhQPO(SlV$yh1MseOy!`YrETD|C5E}*z38s|?m-0OTy9&VOV!E-1sV4qY2 zMGWgz)fBw1#al{6w-=k?0%|A4MXXPiQ%vDHwVaBh-o;#}c2P{_erhAdC1cD=D%f8! zEyuJ{OlO}|tqUYfb%8*pX{Ja@Fk2{+8CMli(dnh6yMSt-2u?9v6T}SmUsX_~^1LhN zmMZ$ZOS4@-agH-{U0~KabAp2Rm3Zv=6_`E8aL?JeGRl-ur1N~JWmK?caaF3>PLUB| z)=BMf6-Ejqlpvt2;#q~P@vZ!Hyr-aOW;4pLkjFqueUJM1=Mbe8>0$xyR|3Z4zY&kK2+$-`L1xhT$jmFV^!ndbtkkz#eU zsi1gth{>gbGZ$+DW;4ZOqscQTbtto>LA7A31$<;x=^#6 zilg5DrMrOINm0gmD$cS@9QU5casky$Q9jLVqF2E1n%xq#YFQ9Z>lhiW{>_-Yvy z9bU~W7f^K+e~mD!sOa-HWV(QAq=ia&PnZ~;P;|>%>89-<($+KDq6f(l3hSC zhgYy|j47g`%lrEr7f|&S+u0w*9JYg>Kk{;^INk79qUVQu^I{wPySMX%R1-vt!+Zo{iccdAV|SEjaUQCc;gbHHmLi%{GcY_EnWq zG3b5AHL8W8pXWnyuYPNNn*rkQ$cakL{saMMsa;8*NBt3UhSe7J;_v2oHEK3Q_m*6MPU11fA4IPgp5>C%0g68+n2i);S%+Fd#Zm9HbeE*+D8`L9tbLs5_fDVh zlGGlG2bfr6lXGj#hINc+Pw*BE=g^pI4j(&q@vr4oa>TQ1I5|Q zL$Nn!V`7LYpn`RZbLNODisl61_W6XMrxZx(BiZ(BPrb|-WDH0;gDk_-2 zNMwK1E{ebeQ%Xg@mz3#}6nmJ2ipS`#l4x?6<0= zxHR0b7ncgg7HJF2K8nkxm>P6) z40<;#c1eo8xd98OnGF;-jx+^Sba;!>T#{lAi*VCuQ%D70C$eUm9Ta~aZ%U~+<}F_6 zlGJ{Rn`2ESMfMPrO~pa)mVirATPSkEOfeOm-mMufN$sY{jW*>}obYaAKNNGg4NI7Z zVh&4iJM&P?f%nZM-OiqgyeX!J;*Jp}kBSa2e~wF1`zUzNjK|#X#8T$3R#MUH-8J7O zsl61-V$22#ejdqNK}EM$km-^X*A(C$=Bd_G6!ILaB~-L{_a?g}RZFp)c`2T;<)X{u zwVou^NUZ+inJ!7~ zpm=D!DW&4LSHk(K0~8M@n2i*x7+)=?qQiS+mP=B*C{|A}jJ;YgzIZgtG*R$+kGF~9 zu~5Un0iYejWbLnQSUpvnZQpcy`M0 z1mi3A^a*j;D-XIPwS|J$dpzd;q&VVL%yLO;JH=CDO$ik}UgbQOq*!Amo{lo>s5tIb z@f@gq6wkz%N{aPEOb!*SNj%HCR1HNn>rw?&ba>A(U&XWX9BLvAbFC44--*96U)4yl zfpbx1R4`xh{9@Bev5|dKn_be2JYz5A8usfYY?*6zyQG)rxTIHBm_CYa3(OvhzsH*O z6x)ZHJSsRZ@#;*&nqI|@NK;9{>nL766-T`~=A-sdycT1)*K61rVhX9?`4g{anu8R( z63ixwH^NLY6|7CvGiTLK@h0P_y%Y`8%vOqjjxjuQ{}en=qH%%QPx01Nvw>pwXv4jC z3+^r6UTF9peH(k?OfAJbW6eq`PI!Bnw`!qym;F}TDfUe=Wfbo@lTF0|Z$I-?%yB>7 zA7KipIN~+UaY>3fHi6eqygG{J$)=LxgP~>#6|LTZSuRO&%>jHEWw_=;@Y;!2Ld9|K zqa2r{4pSUr9MwSaag5na(GqUfP{BCjljWwDqIID;Nbza1*+y}AyeX&ncbHj41?M5! zSfgTYZTKwR@C<*3_Bg}b{u}L*K2I}zj@LVqc)i2hO7R6>qpB!6N0=fi`n)gM7u8D9 zHQO{&d=)UeD7q&a*3yly8CNZ*qTB0XU(^ALZ-Rz1U+UJBmF z;%%iEHQum>QTTm`SwTg&7dp=+E9Mf4lUcuF4JTuCs41qR&pTzIOIA%3V_3hcrZ|=R zDdv2tX!F8mxn#AI;t!E#EfvQ-UYki)j2(_YPBR-R#xgI(T6ldXd2E+=8vCO5QH)D4 zTPRKsGhB1J=1Cw#Vc(aZoW`yA^W5jXq z!sRYm^;5(anm&q)@=Yhjl=-I3C11klrgP>Zj`0;^#|g#~@!94OMMA3CMv=(86?>3~ zz-Y6Q3dRsgIpzpOa;9O-WTa%6W{P0Y)KScsWNIi<$Cxz~mxdZXcPY}w8`hSF%fd`4 z#Y|^PC@vpr*uTrgfH!N2OICdpR}`7!6th{EYNfa`-SEAACHQ?O9&1R)RWYWPB7=FV zGKxP9H_NE#_U0^f$*PIsYW7Dl=GB-RZ8lO|6K>d>Ys7#zkNGOjU>>gJc~JW)GMTU1 zPH|m=;hDS+^O>(Ir?@`EurJq(UT?u-m#hv^+>mT`QY@Tkswi$`992L?x3`FO^InqV zo4KzlrN|y;mQvB~-ID2&RWn7-OjA#B>r}IiB6pliUQ+9l^IE(+=D1|VwRa$&eO6qX zk2|LruHolkl9x_4+bQmfHk`p-SQcR_DefL=R#FrUHOr`A-Qph3NgZ{`%h$N%6$iZg zXS-yzhoXq{Qp}|Y4}_a_6vaGGs*noC6Avyh2Psyj8unx*9*Q#66eXdCIhTlD@8S6_ zSv66t3Ywi1k1&oZr&vA06jRaXJ<5C(b9oeNI5))@Yw%d4SxdzUuarGg>{%)P!Z>Ol z#ai}9ZK8Ob^H3EO>q1Nc6|rkYf7js;) zI!dvb^HBRKUWzl^<0WiiJ!%WZ-^Q6W6t(P|DxiY(~`%nENigF~RU`y@C2rQ$od{_vTWUtd3GNWSS<5f2NswibnQdamI~!E8LV) z>}LLo?~UD}%X@piOIC*{_N1B}6z{MvYBR;&Xd{2dyAg&xdl&n{%zBFVMjQ6>M0IPGo0-K@b__#Iev(P?2lqj z2l0_J%c$t~4lQ!Ys+EGDf${cIv;++IXu&7kM{S{KooF^te9C^QDvHC*L#?Iw_i)3R z{Tpo|hG(MUD%vOqT!^|ow zxWDLQ-ikT*;kzlO+9e;0a>)a;%r1)mO*ZQ(jw)lTt;bkjf)9&0vH{4va|qT;wWmT?qg zjKyhl%wCFdab`0Ge~Vc2h*fnhg}^GLBkF1!IUwOH4b(c^PIm z1^<@sZJ{_n!jw@=4lzYk@GOZ7=9_&KF^r?w;}~2x)-c9}h#g@VBUbc#7iGE>)j%<2 zvZcVR2#*dEYnGGHS<(^DdsW{)j)9#=cKAB=8ZDN z6xXsJs)&kyFOxG=>`x}HD>TO`<}*jZ&oy{_{(8~vEm-JMR13uoX=WeA!Z@>of}dyb zYA6_}5daZ8w4Ly@AmO|W{U|7q& zSU%2_QQSAuaF6@M32z1Wcp${3JjlG&7MD_z>QeYOU$2Ma5!S7^_aj)%^Q3lCJjyy% z4aJ&JQ%nWVig;|1X{IP;-fA1gUm{H<1^?dbt)QaUdz^7p3&pzGrk>*en2)NaC<`^r zrA+jDPb_vRiZwlf@?^svmgC8BW*tSvFvI>-h(7Nro_lqOqLTelyC|NXY-%W~Mj7T( zC76$RhI3YjDb}+t)j;uVtl30S9cETjG3Y&)>rzxJMGf;&J1G7-(UiHAjpJR)CO)sW zQ@l9Au;v%Bndfv%g-fa3E=3)nsAn9tiQ-MpN3Ejbgx8ScQWR@wz&{gAEk$F5DWiC6xZ&P! ziEeK<_gC!qZoC~dbrgG|OeMuTp@zA<=@H zxnD4*cz>yBr)XMW4paPVu3_%{eKCcYpEFYS{O$iqWEN%VT@1E%04L0tQGv7(OXAxc$isEMUVII zESI7VQnaO+dWz3t%zBFU(PlLj$GrdKxfI3T{s;Wt1h0YOzmrWh#gS2ly*eUJc%L(l zYNt4wYB=ko_#(luS6`qr!m!3pe91ah0TrxMbS*RoD86D`wVk4yanxEWj(cA(aVe^U zqKAD~%%un41WYYOZ@6J^dIkFnCy8 zJHdPub2)*ZV@x%zc0o7N6jO1``$e`3szVg~ZUnD^;+Ip*W{RQVW-Z09hMFQO`n_R` zT~HmQ_;s4uN-;dltfAtB_nW0IsJbXZ7MLcA-v&)R#fVt5k>aFrrj%kN^HVFRVBO+( zIi`hT6yvH|ir+IowVH|(Ug#1RR2>v2&oPY@qnVGYp*SVf6jRabjmdODwU2`L`Fo8N zVR5F8;t#A#t)ime3t!-Z>M+G08CP+Zf5h0?WqI5%K6QA`RqJbRPGG4DLaQH*gOqSH-1#rZL23kClk?X9P{Ak;AC z1!B;PVeeEI#f8jI?Wc&HW@;!d8g5wUMWV->!Z?bLr{LmTbChE0Vk3XXC48)oP)u83 z+9;+o4|RYdZliH*f`8ZcnkZ5d%yx=k zl&PkeG1@TZ3~}5`W&Mh0KNXi|m^~C}JWr~U;<6E@go+d1%zPJA-4wj`;O(WD#W;$y znT0FHnAKEp&SEz6QSB60G9R^@B7KV4NO2Y8s8v)9co~abP#vQ9(=4-tVor>yrMP;c z*+4OOtXV?^|Gf~`FhA8rF>jG+qqugC*+-Gdxu|Uv*YUApPp-p!)~EJRTpuv?6bq&p zu3dl|CK=X#0~U@mRTMXdn-VIzy+xddYNoh}=TdE^$l^N1TC?!yA!ZpBJ>KHQE~wfl zZk})UQ)DNb?G(3+Hx(2)BMf8ah@&3wsSm0;id@b^l~LU0%nB-wc}sF#P<2r7|E203 zq{y3VSaTlkNH?6#9mr2LjTCn#n|g|+(Wa8(t`Jj5#Sw2A_fgz~-p5gp{gk!8*Y|T(c_h} zKZ-pq#b3Ces-#%UI#fOtt={9aTu|+%SjYNQ6~+IBnj$KWd1YBHs9GqVNH(0s6DS{J zimB-K_&4;RYM`iKo~n%EsZnM*73_5*^+%tWPyl zte<0cQ9K)I)=+W6t7Z(vIJ_4<_#D@%y%aT5&1QJY`NGYxZm6+5C$6~#Y7Od%Cr9`9)nD(+o} z*QS{*6g$V6Ra6}JUe9$wb%0_Q^H%FA-WckFZ?Zr9+qPM1=V2+-h=KjpLfCg(7j5E_ZUYNQ^7c5|5DRO z@qU&$NYNBDdno?Jd{rF77OgpJ(<{geDl)7>bj} znYC1$@J2Hib(G>1)~R+=jEObX6sL|b#Z<6gA}q(v2tV#-oHoI5kJB)2s9~;W40kim zWS>+m1@CM2SnC9w6=k^BS%_rbYCQ$-efG*ICXP1iD9#yWN-3har(&*AV$eI6XGrx^ zOv*D|6z458Z4}W9%pr>NXPbQ#lV_PmiVFgU&s~6+MTR|&!G(ORhFvSe^M>SHUPBENuDlX+5)fy@Wy|i36L-kNx#(fpf)@7Kv((v^&arsiy zOEHVzlBuD%ail4v;;6SM!_82;DQ=o#>L{|}OasNAlg%!Q#eBVD z?u&7AjNzU)BYU(dq2ic#ORk%tIw*1$n!^;grkh5J+*q@b;ao>1TM#0}Ty&@`lz5Cf0b&#Sc z&FrFhfOA!h`2dP17}ipZ2S*$B{z0r9W{N2u8e-(n;<#7Bv!@0q9$spg*TY!FKC5nu zM;4h@iq&(?0gC^p?Ed3xKJWjJUo$f^Gc#2)Q!`aFQ!_KmG$rEX*U6Das%oY}l8Q!> zMWmRinVFfXYMN@Qsi~={s+nr4s;X+LnyO~1s;a4~nW?I(s_FOfdR?z1=Oick`TlXg zJ#*gg>-Y6OC+AoAQ@q(kVqqV%g2bOYn?)oRF-|p)#GTHt2X_j_Bo?y|>IjLu(#>uX zOX3WDF2UWs3~O^YN?9MZn8ZEJ4D-E5u(zUYjHx1V?_g6&VrgHqio|^#4QqZM%4t`z zuH}L?6!+(wQzVvgTd}6g@W4cKltjf?bAZHyqm2BF69qS(_%#CdOR zksGF1`?YvqjzW<1r)Fy^PQrKe%7x8Ug> zhHLj}Y-Jv*l*BWvubNAW3*NRuH%zgX+wd&oREJ1x&oFyPJQpxr6VGACK(m^}^X#)? z49{a{d$WkdKUxwSWs z6pT%LFv@HrafW(|I%n`9^%QkJ6z9FOg>INSO5!8>S6rhX;ase#B=IrptIA27XMNQS zQXKa_8RLejog^->?uxazfKR&_uI*28k#^KfQZOg+zwxGu#3j~UZ6fhm4^v8(x&Ytn z_GXacg!hFpE}#yOXg1pHAo0b1W;KcCoy}qrUvj396g6H8+EsfqzkC+B(CglR*~q~!OSNG^AO)E zHb+TxN;Dfte7lQbZ@w+gd!1QFRZZeMX@xdbBVzNpa4*Cf@}V*Vi@Z$#tN1llcB1vxY>k zZl;{X589bIq`2hurd@S}#1BWCDiVFTPSko5*D`)pL85PK!&v)@lirUQpV~p9U#!_g z;>X-p>qzwPWM+|qcEnGz%pnp35)FGj06*<)7LekiH!$A?6m#PH>VcnSm@On?2AB#G zKWE)l2`LVHg90v~){?l6ajJQwIPJxw6jY^m+_#X^Kg~n8c7YQ%NGOi$CukO=fOOGzZOGSo>B7rewA7f^diBn>iLqe)0^XP9%c zpf8b9WR8&tG9Ser2a(#%&{wLUKM`V_s*1$$ShJ2qT4%$ariruO4P#wEF}E9#KG3Wr zF`~U$NFu`-_B2BrcY&LxxxmdUywR+OVjiQ#LGKrFE}+(u;NOMwW|QKm_sftAs7exJ zyPL(NVBF%C(PkToaXk%X#tGI^WKJ}!NhZb*Fcl;wv@x?t!J3OK#-TQm$nIiTgKWW? z3qG^<_L1Ow^d4>Biiyol9x1B5+!z;7tZ^Gf8p6 zyPJAyD~ZychCM6AJ*~|QQqZ3$qn@I#GThtOEGMzFt(i-T^WJ^zy{aZrKG>`!aeqfc zo%_XUZ`oKEPmyU{xZPO_g}E0yTw6~i1Ddx5se~UBJ`5V?yPc0(B zdm>&jDUNw-Gh9GzA@OK;vzQbYy>&S*p!Sk@jCD|}NUZN*7LekS_xDLIp!Sp4kZibi zHsBwqpHa#Tjoq<5oLK zJlDsRk=W7Pl#qh!PCP%-u(r=*C-qbX3BDuXQRkoHu(vDV0*W=+1^&H%Z$2p)m)Jet z>?84FoY_EP5B1anQk?f*n&bkC{d@^k$%eJ8!ppr(If=ck%rsIQ^Il1F0Y#lxu#f9U zF}Ho-|BLjP+pFS)S3TAR6!(>C{42(+A+f)cnMaB<-fPTP?I&@7by6Eiyw3eam6ABv z%oLL1u=hry3nQ%>TdGmPb; zIPU##lnbbxBrZ`;v1XU>8P|cDMT(;;!Hsg>E)riDWHym#*2gR%@x|6=E-6lW&4VtX z#a@@t@`U#l+Esf;VdVzeGppKJB7;CCs zLNaXy7nut#VL0_}Sn8#-K8j=foq9q#V-X|hQ_=qjWF(u-ByQ|&R*@Ll(aa$Qa}YO; zF}qyC=us|V4CfT%9)n-9&T2o2u>rG*#4SC{5)$K@nIcluc$q<$ps16H@jVS|HeRr& zVgmiCDiT>SW(A4tc4iJKPJ1~cU4q(8;?`KRmc+zPW*#Z1Cvus;qOV*`qCd5g#BHt3 zG*WOM5qZgGBZk>Y^&tHCZottU~`)hr^#1#ikk zm!S5OD2_L4NK9qD)C^J_@k#xTJD9noIOENsp4v;| zcY{qOiMfnhG3L48bAGRo6s(h&mu9w-_ygls%Sg;`YZj2=yvJ+d1a*MKf;h9D1h0p^ zr6d;8j$)4%3g$2V95kCrEb3t@NZiT%)k0F7^%iqoE7p23?qa@*Yv(S(I*BEt40Bt8 zySo|IY8okOywxF>pjhM8;P3Rk zr6ks{eyWHRhrLG_m!i%iSli1`XDuFWX{M3lq_=LIOHg}AJQi!1+hbVY#VjQ8_hyDR z{w|oW*f7S>#s>T&#;hj6_XoVWq&VyGxBdyLio_=RSL;YT(b+5@#d)tX%OxoKs>GA5 zuUbZ8vokrQpp1B`uUSE2OB*wj6kH$T=`m(6iLHao8WPWRG>qvPanakB=MvOG63+(A zCKB7bnfatR=RL=K)IJh?zrb5X;(4w!HHQ?Zyq%+6g4*U1UI@8_7mG~|i9H-sTS&ar z+pHu})z-`;#WC;YbeEvElGxkFl#_U6qDy%7q)XV}!ptDWQSY@3m!PUh92jKQk$AnU zVGUjvXS{=BT!Pv~;tlpottN4(lVQydi3{GFte>L)H*uKptDPj?iZ`s&TR1|yYB`Cw zSqHV4L``#-!0X3^V=KJ(xF4tr634l%R+0F3cSCtz7bcuwoN6hF|Fk!yF5y&vmvFks z947HWz_2zS;7n)39M6ce-iKpdg5p~K5NBh|N)jJ255-=7Bu;tfSXV`zbNG0GVXPnH zJoQuwDHzkI`7Ysqj9pw}{Aw;KSallbyL zvx-E^wl1+%g-dL`!~0sIOH_MFw4n`EMdIt+R+Rrb+72+4B)-wxtRvB`zu{avd~=}L zK%#xDVZ7~eMVz6pE6^ci_K>(T-q6;S=-AJ!Ch@JVri?_VmSzSiE_mOb<`UI85}k|8 zX%gSzwmLzg%Q(Xt@;Wc^s?nx~MAtFq0EzErnC&FG4Kf=^e6O!rPog{Prr3+_xVp0` zC()yWSxn-Z7G^Gqp3GA%Ao2Y+W)3Nsx9By?$j|t}Y_E4Sm#Ait;=K1m%BxEx`jnWH zB(9xgSi@`4m%56!`{GC3Ru@V1Dad0P>7{_r{O=4)kRFa7AW)_m-f;WtM z>L7_g&}=4=(9WK{QKZ-gTxRG(Il_W-X zFpEe*9dQ%=seL3y#Tw>13OCcAqR!2NYfOyJF;yh^8*7g`e2$$srn@O6@ylkWh!p3% zvHYw~lemR;71z`)7#B3#NMsH$>qw06Wy(oRXl-Va;*^&)-X-SHer^ZDxm;1>O-gi$ ziZ&Y~KXUd6cKZ)ss%vusN z7>}Au3f5Hon(I&PBQZ1HtS9js>Zy68IOWaCaEWR&i95O&%G@DnTg)D9_K^53>!~)9 zn8SS3LQ zXhSTSXsSuvP5){&3I6>#Zw4ujdiMlfqFPU)jP@06mx+_!y*VyX9U-wa!)zyUUq7>y zM0s;lObY6V`{_?{ZQPG#?6X=-;sIw^mj}c_uOi+hD#loW2Rj?CjR(bPZ~0i4sCJX! z^JH&1i50EQ0um3=pPEIAlio_^rx@c({I!>1Zhyrp=BM&V!F@|S9B0;%Sl!XgCdDc5 zZ?vzd^Ea%ao?>om@JJWKwepBK=dEQQ6m{0((SV_^N3pKGnL`TJMLagn>?N^2#;hRm z_ZFs*6s)`05NFnq_y^aKnnsE<-o{ZbQEeyjcz?5s#HJ2rF^MPIm^q|iexkC-oFMTe z<5q`BY)&-0Njw#2*rTVgrH@%b;%W9j0iRYZ*ns`oBdpicXM75Q~^L@=y5<97qKoQv5R_Y8HpFD zr>OIS*z4_%afxag74TWI#~SYwv@c%GF|60CsAgP>wyW{44rUH1PI~)Cxa(<~*yzqRM(lVZPjiTj6IN8+A(8ib0qKBc47Wi^= zL*HK(HD1d!m!v95e1-lMb-sdD^si=!U zy{B1BiVI%b9G9dHllVru*+HV+07GBx@J+_4=8)o~*FMc9sf{GApg+aju0V%&W+o}l zcvrH%YCnmN@rE_(h;Q{Wr6fAFHFHUE$@_MpOH#*3bRKD#LuY)4d8oA{x^y)QNx^!E zt0tMfB)Z0#^(4MaJ++t=7rky1U6R^M;(IY>C5i6s4Rh}<7^Ap4%`n%i(WASeZQj30 z>OuSBnjFJ5a1DCWzG6>$;`<%VB2t|9dW~^OYA1;w3^LUD0eW{Z>}7Ak^&@`Bb*Jd- zhv07-ybUC-?PTVW;*8gq{uF)n#gF=$auWTTnS4?l@P3@=k`&j@kI|oXR;)pPan}0@ zb<{x;0|I6{iJ#J+T1H}EOH)J&`V&7JY${2_aD6DQjTro#>rO2tF{rtjNQ&Lwb^TnD zqOa=^%ly;~QXKQH&u~eKde>v{Kto@HF@*W5g`_y=#jy`+7m11Gp&UvxGLNO8s+ zGu9<3)@uxY$vUWYB*u0$vq*8wyCvk3)J78HSTDuc$BE-!Cgl`slZo+N%zRRu^d@Au zB(&kjNcr=qneKxK7k+61TNC zjPW*c(aWQMb%ey^M6;emKI@?7km8(Ikmr)rJ`#oWr&f{pRa-NY6vw?H)s*=R4UZ$MH9nH-oQn1HjcCuMd;~RW*ruiDom2KXf(J`GcT8F~7(hC-KL0!(ROn3z(lOB?WcFpV%+O z82^NYK|`H|_%rLN=9A*2w`i!uFNs2lTV|914jKtrXn>jcJB8-H6Bg8usjQY-(>7 zlH!8*1na7fkfDGqo$LM};Fl6bziS>cj)^>azP$C<_;(w; zM6!pjeoT=(@1f`+s`;v6^Yjd8?NEkaG2J-sozU zx}?M1T+)$v!`>dj+r3N~i5l8fjIBl-_1+1&B(;^q(E+BC#JjYuSc`WB*R42~Z@31I z;k|UTlf-e_QS1fZ`$+mX*T0%gij&@nQ7%dCCh?zvW+jP}ZOu$l9P|D=+9j!7Bu>$v zT0!FdHf9DXYP{1ym!vk6_@Jku&IdTt+LVxjdV=?CyeblB6Af*g#Yg?jY7*x>ohU2=;Z-j@ftYV~ z*W%1N5^Xw~Iixt_eLcq|t3xE(rkkB4zA@0OAz6?3~9J(A6K64&%ID@gQYzG@yR zPJ7=U=aN+wiC*-hSl3?o0rOSsN%ZbxHjwyXSF@NzpH^lDDVU$QHp{S1*P<`uRm`U^ zenh*ff<(WzW{yk#Ne7qwQ|7EF`%?_;XV#GT8RJl;Bx0zq7LfRPYqOBVpcZC6iR-wn zX1nCUv=ukjoF_4qy%6!uOc{w`-OXwe0mh{&NhHLY?IaR|<^YML@#ZLrC@>-c0q@YhRIn5;(9CXRQy66=ZyJU5O#FVk-5Q$>?QF}@7y#ue3LfIA^$!ZIUvRyjVbS3 zlGP~^59OE|5-X{%4w3ll7_*RQ!{DRQpNnN;aEFywKaMAhElHnL`TN5HIGKLnQX3 z8RobLFU1(<_!6qR8`iE0FS8G7E-B7>yyi$&)g)eFAJjS$`?{Di60f!}%<)xm!mA$b zk`>otHU1Sc+eqwZd}PF6=qd@$0`<_9=4$gCytVHZ%v7wz$agqMjE)xHXHI*dz z8)&bb#Alt&5^{-4aV^XOQe5!9kmpj=F%r#2nq4HmIKZqU(Y&)+O5#f`O))8scr8LM zMQtbXW!h1zNVM!=N=b3i`wHVx)g)R4OeKl0_A<*zv~F!?lj5xRwJevSXya>WLpy4t zOZi5cOZg^ipw5wKpJNz*dt8xj_K@g6eYKgymHiECawR%;H_J(Ui*-_qT}tO3E~U#T zQ$^ycIJ2Ha*RH0F#CKU&RYHoBUN^?64w3j?&}<{oy`Nb@;_4PI<(g8L@_oiEdi69F zB!1A|upU1Ur@h`IU5eU4;)l#vts>E?I$s8 zkfF{n1X>x!oW$Hy2AE|ef^E$-Qk?cu$G8-=n?xwatR*qLr(tb|gYUz8b4Wou;)e0& z00};$^tO-~(aV&P$Y^e6km9I!Bljz{gT%;zhOvyqP2J5>Qe5&z6}uG0bv6n&k2K8b zW{jpC#kDaSzvy6i?E3}AG&6;yIO6?sluJ=uW52}M{$?eKTe_OXq&V-5o8(f|VG_JH z^bU|1A2hT%9usIcd%H`y^|&{YG2F&p@EM=VXCDfyUCNYhW*3R#Ja1}qm!g=&^DKof!e-m$LV>atQXRpU+S1D?fOPQDEQs&R|{@B8$sJSj>VQ-hRi1yT3 z5_fW)t79Ymi92EB<^EhR3Rx?OHm#$>qy+s zx~MWzT=aM?lcM&Mcp%wqCQ;GLP^SV9wlVWaamHKD7*!34zoeP1BvvqPRZilemZpRh zj9IK?+-g0EzjilENpZ+o6*Q7ks z!7L=PwwYm!YsCrg(a|nN?Iy8qkfDurc&we7Neb>S8}ePs#!~O`RxU+NBgH9i(>Rx+ znA0Xak#4F;R1P*fNjw>2SSvoSN!i@hl#zIfaj4lOwm8EYY!U30csj!zAh9)Qwv%|K zuUST7TWd3m6pUXy%f6^XB(|rSZ6u!SX;zZh(bX{49eAE~Q8P(##@m_WQWRs`iGQ;G z>L7_-V+?Dy3oj%a`g{Sq`y1A1H(u;w=<`MFX=d_CaoBr_@hk3!FQF>drR=S8Df`ZQ zuTFC*>KuvcV#By!Tk29?ryX&S@u|He-Uu1S`UVbVn0+MP!?+cF*Wex2N9`eTl>QWRJPKaJc$-KZqd!Gk$M9ZXBR}JK7qg7S zzq^^`Bu;cTi%9&(nVF=x=$)M9QpA7R4>g;_DQ>G$67Tmg%>8|w?rm0)_@Jw)AaSOh znNQ-w=7#?YAH)@&g0#a?C^iRNw1TvD9#zC^p~5Q!FPW-o~^ z2h0`{E&G|(B)-zcl#*!G(#$5sDetReT~N{HSJ67rY$NeC+Ept_@cE3lkQA4^uNS$X zI!1!eXS_WmzQK6aRub(7m^CE6+1-?rXy3-nCk6e8D~b){zXBaf41IRMm7`4+iH?KJ zdJ^C2X_k}d)XuQ>ox~aM+Y?<-9VXE^!?35F@trucnM9XZR%e+)2 zi660^YAuO=T}=gvAG4mSj0AsY?9C zokSM>sZtWz?1!2}3fdMq0kfIJt?Y+l4{yc9W+tB$hrQg83#v^dCNVCxh!mH++o+?C zkjTq0yGcwQY&Md}XWVKfi2|-iwU9(1<5AN{ank!$mJ2GbjbEWC*;JC4(!(&PDJX7X zW|88QH+7r~D%NHyO5zM{l;HM0rkupIR%RwC*bgy%yg5K(M#yX-@oU;qt4Yl4WZ2W0 z;)3^^92ZmvNz4kGZ6xmKZ&r|)-OkJ<1?`C6PBe!|%wargD~aC?Fsn$+?dXE@7}tE( zK>U$?`V;&0XVzORVjtB`5_k49?Ae`I+{R2J#SxF!;6YVMVo4V>pA=`kyIDU~O`D#l)c2iqCO@Sr&AEoWcUCK7+?YFL}U2(B%$g7sJ1Nj%io zl#$|+w{oHjsy!t5f4sbd8tXH*z5f*#syUci8aj)W!4DF ziAM$++Ij?QX-~06d`~mD_MrD@&;`|c66-peIixt{JvQ0})ov2&8Hb|n_4s>hGmR7{ zJpR3|pkmE7;2*usQW6^(mntU3Vej#P3o6F+I5u@M3rTU#dt$r`D#r8#DjAnzOqF=D zm7(n?#Sw3F&;`{-5>ItEr6jgAGlir$;62T_R3(Y6JCTsbKZ{UI-5D9IO**e>4IttiRXKmC8W6M@g74^?IrO~)<>-+v8#ib zONukz3u9eSG4>a*d$3{7yYXT-!<=8l9%m+zqS|{Y)&@TYOj6W%F9%#uts}9w zqhZc_#VPL<=B>7p*w@1_hJE6^_v&~TR8=IZ`j zb&SNxF=j7`|Hd2I{4Y-RGRsK3&v+GmypPkZ%uG_8_CCmRL3M=0nK6cI^9(*5U{;Yh z+u1B3@li9w9(^Pjt2j5>>>=@Sj9E$Id|Sg<&I{^@PpGHZ+fQ(T{uO(B0iSkt!T)V^ z!Ov<`s!Md<1`=QBZYoGL>uAbJe6gh|A;nRzdB~-zEhN6w+bko|qLnEo#X;}OgI%gx zMWQABsad3;eesoKvzbJzUZ#}9SKArtd{vzAT4%XbMH{X0HO8s7l4#S%RFL?3dozm^ z$Gx^0E>&$K@eS%J=JpNny;W~1iEpw_s)!UdUi&dFRqZEn1>;dWNpu)sSc?w0vV)mR zinCtFESIYGk@(givx!8fzGgXzZ!<47gA}Jd{(d)AZ6WcUZe|IIF3n5{DOgu=)mTH{ zSD|ar(05mScYu+f(T&?`1&QyqF^uJVf^`<%N19zEu8uLQN%Y|QQ1eM~&bwx!OH~I+ z^klzO6$#!a@z~?sfsoG8De70DiS~MWag6MlsAa$S{)#99rIFqNW?NPwT8s?9Sm(; zFIZDCc$_&%Vn~MBN+OPVDCQ7{q0B?E7DEMXi1~P&$4wZ;IMfajH}^MdNsR7cmXY`c{i^w-U~R>i zd~=ippG|vvNQ{j&>q*?w$t)%@uDO{;iW6RDmP=I!NsLc3J4j6EYZ&VUWYMl#L?XMT znN5mQUJloTVoh>z>o`Lnw_@UGBR?aT`6&4rlg5~RByJ0uoh~(hv`Z~yZPZy3zoI|I zUh_UgYEg!%A~7Y|Y#~wH+pHlmwS!qmit}Dco=a7<$>-^*x6_W=L}D82qiACqrgI&t z3KBC~n^~k_eZ;R>cU4V-??!vON&F_!Y$q{mkXcFMj<$yT#2tb*=gf4eb60r3XFiH` z`n|a5&0{|57>PfOG5bl(k2C8@{IQEEBL(e<1x1Eyd;$0yQ;)s-6Bg30+DqckgUx0V zi@5I95)yZ|GR);pEOurFiMzP1?(#TZI)&tS8eL>c2y zOG(_@*05Li3a$gOw9p(PaUc7owv*s{)*gFPj{Do0nWQ-CElYE$Y8#0M2AEYODmoh0 zphB>(;=$2ok4s%K#-*;DXSntsrrh6Fduyn#IKM`4UOY0+aBV$;wf)R85|6ep`J_1L zt&4Z5Y6FSKx|#)~plz{!tf?aL_gJ%z#D>m>IvWIQD)=6@w~xd|`coT8JWhXVAt|UM zHf0(1bQ7M4G4%BWD!Z9d5>GZa#iXe5HnSgUD~YFindKz5v@+D$A`W>^C%aTtNn&ev zvzQc@yl0r7+D~Fzz-%P(EaOzvc~)HXwlhC~3iaNx>Y%i_AlDO}vOb%wLs}c&UY<&P#%I6IF?Z zI#qa?ajSWxIOFXd>r&Nj60h_(6(sgCE=Ak>1Z|5~X0#M>dWjYLf!vz){`?F@5!M_lxd(ziN6;@xqk zn#8dksywTHwB+EJAx{?pAYB*j_pB=r<^PU61<%qkM6 zIvDyoCFoDQPd!DQ_i>tfYB`AyxPH_uQqZ3`!@j8_Bt9HzXyZeiW!#D}pT$SLOgV{j zt;{r1u!iE}(PlS^^D$-(iBCG21*ACdT^R3D)jkrR#v1B;ii^x&ao@Qp&UydKajB}B z#3jb9*t1LcjQ$jB_L<=NM#zmfdq{j?kXcKjSqC$l6vw?Urn!)+B+%CMk}3twS!PwvhN* zH#46Ur@b~~T}bUD@%6r@j1-r=ws|h34wCprvSBUSC%RCFB18WjaOEgdO`>DaY$Ne4 z`cV}mIx$~0&4s?>T}OdLy`w6muGZj5xEA#Em^n8HtfCOdcur zc{j0+Y6Xc=t<5x29Pw@rxsammn=!hRnNJGFC4Mo|Ft=Y|OkYz$;+M@#2`Nr_W7Azo zZ6d+zbZ-tR&U$e{!+tyGgSDf=E<-3sLdYXjW#+W@M@)(a=MPhP$!`vqe)=A`Nn5`rV zx|=c*g)L1HDUN!-8tFocG5-oh^rzO5n9|iOCQ?EevZkU7Yr2jCLWlgT$}&)vzEl1E{3(3 zgWu85?@L|i4_q5!ejmeL&Bq@*y3n7f_veG&qM!>Y)@Tv<_no{oBo=o!i%D_8yKB4) zDeByXC4M)7>X;*C{v8=xfRcv>m<;T6hWVn#pNn!>4s?{VOV%^jtQe5&@G8c7> z#9zmneI!;Tn_VOxW}Os!^DtKTGwVtGt&b@uv4;7ng`~LXJ(A}_>L7`=iDn~-N4uFa z66>0qLQ=3M;xX1mZE>LujCCXD6m4zd+n?n^>L7{N=tpfOaiF(ZL*n%wri{cv)2wjNgNt&c9M9L z@v0Rh_;){6{#)eyHsvJ|1AW);`90#;KOL(5F3J=zpWlArhCyn<^5Y(Vp5*?svmooEzS3 zpBvu%qQ~F%4p%2hv>0y=xZz)!=!SoFiPyTB8?Fl7@UJ%?mX%vPB74HrqTJ%?L$XRT z^Cx6yxm#|@om_ZJ)KlRHqm*+)i?TC|vuj&S%e*z)N<}$wN9KgQskyg=ZVU!*$w<60 zlyXb_kc=Ue*CR=(X~WYqZiyc@VrY6&TE_5nPBc1pi#FkE`-{(>GNCB9u(+ToqaZFf zKeK51hZL)p{91{HZ&%S|ZA z%Jw@GpIMw)-{!FV24^T8pWWb?ze`3t!?C!jxp`S!dqawfGN;#H!O_k%JeHInHt2|U z~7+bhozoSG`+AmJ1dZzmz|z@yDd)i zb2nwmLsn5q?u6_S#XQ*57H)X>#=vmcArCt8kQZ_2#{8n}TXUxr zXBTN32~%^kYA@iZr*6#WA>=k2nQZa+%qg{li+=9L{M`I0#hH0|LkbJ?awlXK=N9DG zjwITt46aJcq@rFnGHc_%~!#00BAbLrTk0>rE z)X~*mN?`};eyrWHumjuyi;5dmtUpqJw!UiZ*&+1F&vtjI?>78cc!{CKMS1bLQwlSS zCrr#PidMd1iKc5ujK)R~Svzuc(aKXIyZFW_*+ue@WshHMTuS!zVbf}tx#Cgx->Nm!;BFrT6npk`vOtx#(&PN^?cNt|A#r(7743A zWWodRI}c$B^1}s(WZ_c(_5iu%U!k*HH}Pg3ZmIl9WGWLS9&V zk%wt7{6JWHk%zTh*z>d0?BYzGS!LEwE8^)}-D&F4ebh&w2FFKa=42P;CQTVOjaQ;P zZ_3M-8HK%ox=aB*MOSGBJcEkzo4@JvwP%9aCE3x2DTAWnMyIu2I#1Axvh>$`u;5l% zu<5nyA@!o2)_O@<+4;q}In%Y(@EVaPv@9=5E<3BJ=WA;=8n%Ci+vI6I;a{XT8e8~b zU#?(s;Z&Ym%deO~QNiTKHKG>qb@K|QWH+u*e>9!_;7J89Z~1RG{HP-irDqow6cy{z z*IwHZhr({uUeghW(z7QQlw`}VZeHdUOpdsC>-xJ)5nn&@_igPkrCQ{fbbAdUuUdvq z%*@RnIy|+(Z|}<%sXeK!>T8htNjH3Ta+7OZx_${7mL5`9+I}O;Q=r7m{H(nC=U27u zMJv(txna{9jJ3(PG`Lu%^O}QGy2{efuP=iTXof=OdQAwuG&7{mrm$!ViYE6QzXC zh2l&k%24W$`c`UhM>bS{w60X`@4ULZoy?VTb;qS-W=S@O!Y5yQr2cH=)cyI|nb+P5 zA5HzS`ZgM$*ID!8l(&Ey3?cj=E!5u(Yb5-jmMP5Rt%%5}@W51eFrrLEJGEtOJo&u- zru}lx8Wv*AB-pyv2gXJZ0*7igpDZja724iOX;|^QhIhy9&g_H7fSUL zh;pvB)zqnZ#kqxfygrvV5W}tlt<&&q^jZxE6VeCjY+(1nwx)X*cvrB-mqlYcq2;c zs2e}#*B!BT7+-@H^oX71{XpHu+NTvd$l8MuWg0Z%%jg(*cG&Pyp#BhT)ZPedq5hCR z&lu_+iR*?!q449B4CGCnGLd8TYh8DQv+@>k!-0ey3oj8il)4f+7r7O=AazHqK4&AY zLOXAdV|BM0^q{rEduV*#&dQ6DCLX+oMB z4f%t0Wg_?8x2?y*OEkQ|>WbNkMr9lIN|RbPYz7<(e}t^xJ6)>=XTy7_uNAGE@U!8y zBCg-M3D^}Jb~{>|_E=h1Dq0zxnSUv#>sL3Quw#s;?pFOc!?rQ%+32;x#t@}eP2lQqjuz-Uu6K7=A>5wilxQUGTaG=BTF{9}FKsL_;pTY}B_8FH<1=R8T&H)OYA>_pzz7(T_*W z+lE-*=8%YS#!u&UNA3i9-W&PxTzJz_3WcBMu9K5n_q;3Gna0PWjnTIgIX-`^U$lj& zJJq=LeoZ&eDJ$g*Xa1jxHZH_B8UC;BMJXEI z-jJ*;KSaLUqeJB>dv<2+mvR0tCBw_uJu%{td~(1W&$r5_>-znIAyfH!)R4T)qRF+_ z&}EBU=49;#T((Hv$)OXo>pt6Sa4;>qC`UekW#A>ezN~#k)abB3z^AFT1?wKFqMd1U ztaf>{x3E^6mgIxYU_m~wO7i)oIW?cJNa%B?@JdY;39tV-bt6t&Jv+wRMDnN;*GpJ%t9N(>5K+F^Z>K+}VB@xI85-_JWIGXsqz!oqC*Q`(u3yF4J*xe*_;ZUj zQ6TIpiqeZ-@&1W*ZHHkM8k~?G{2?1=_}Chp@MZ1M@$*)>?y)g?!NzSxETI48^f`s( zw0{yEWu6UAXjysk82y6M=au27q&$z`Q5GfqC|4*u%$tMy)eT$a1_$eI4$H6oqH4q; zZsbQiH4HmY_oIC7!*kNSjNHlDe0+B+A9&;zPvrMvf&UWL@Io0y?cV)=SG!Dw`bqgw zHXezKs4X9aMysR8BT7d3o!IpGx-+%Em%exkuaY!8 zD!1)7Z0+yWh(lpF!pB$pOIcTF#L(2te7?6;_f;URRDUqyW<)EsWrk=wwNC)#qs*{{ zjyNoB=?6PpE8zpKKNemhytCR8zORT^Ieg7AqOAt6oNm(5HLMZQc7qzek2t;+G_|m{ z-|!w9o{=#}9t&^1;Tiv$r0&T`<7Y;fDbVDpx(@X#y-^xxPI^kl+EkYf&qb>d*->PT z+CKclb5p%EKI{8wcs#PF#%FykeSmDLt41fI)`{$>L7gG|ZJxXtZg&~~g3!M+UVBMg zra+UYYWuuQ0e{MOReKfM{VM7ye=v^EJN!#BKh%gCjZUU!7A9o#jjG%UVP7?Ba44H-YBAdl}fM3f6Vm^y+v6^@l#9VW18Ff21q{} zX_Kd$IC1%EE;uEVC;3Hue57BK3VV7N?Tj3gF9uHKE2LTR1(W%ffjmo$d``dR_zI>pZ*tVr$RUcSub&PH?|y%SyQ?BYht7G?BJ zmGL7OIwY<38AI3seoW7nZ)252-^^$ywT^t1g!dQZA|uZK7tTv;h@$0!jh_79>N1vlm9hyOuM^m7~y78LNL zVFZ8R5VqXm2P4YVFJ^raSv!AA9xoackptczH5zHeARf~Jc!UH@}y%UtRjwmb6_d8r|9d+WVAN)yq` zMQN$w!$QNJ>^wF7(~yYC*LNK4Bz62NzKA;E>lOX9)RUKm^{xAx9Os2z6Ax#N&e&yT zf0kJPCG9lch^l+T^K%Ma_H^y@n9nKXPuD#y)psmvpFTxD7wu?dXOXQ9aSdw7U7(3B z{HZAAo9IBw|3B8=t+~yk#~RfiO4Z~rneV%lB|A~Zr)|mh?0w^+NlM~`BK4Az4|C(c zz88Q-H-JVzq@Af$#Uj=M8h!4kkDYxwLb0B4r#=YAF+ykt8wBbYqFr(wt&0!Q$|KWT zZ%mC(k@TtM0B2Q_qcq{%-We|0z1i{(oaST|RIDxHIg$C%9533mQdjW~C2VwNEJH5# z@0aWKe{Qy)H%QM?%YyKN4qL7k7Ow)ux~f%83AM+ICU$OnDhV$3{I&lUyP$apS{XrH zc(gGNV|R>IJ<-U)#BoZTkE3Idjb&s!N0ptNOMr{b>S2YcLpeEhdHeXVKmuw;kI-D+ zioh5jA)5VTJV&PWPEV@VC}ve2nVsdrRGaJ7|13>G;&fD**y3M(aglm9Nok-dR5b)H zS9h2Y+;2COb!{{FMUa}`RL2*uSNF@a^$JT^T5y^|Bp6*(QY`$u;x?dHbg0of-E22s z@3xOp1A4uHWB7tG8A{*2G(IwjY)L#p07SzE+vYiu`JvhBMED`SIiIZ1(jTS%w=raN zPfr>vxKmgn^{n0&v8*i&%j-g0(-o=z-PZF{0| zf{;SyMB^Aw5lkZF|d|SDGIHZk9QxJyI0p< z&onM00_jqpryf#aGle|CG7VG2I}NT$x?#Sw?k0o|f&C!EaXt?_2sv^5tQNa5Lqzk1xZW=jr}9`<+f9W633l*DmB z80y+Mrn(%*vICG7+yB4qW@(~YJ^Fu_vz;mTM{B^datP$l&seg(#%j6AvmQ$LCJvF$ z-t#IQzABcxyA`j3^Qlo^I3_p`CGBrb zSu1&l53gsd-Tr~hpVobiotWB&=D$p(YoW@qOjX1uTj9_hbq-53G@?EKgxKXv3RmaRy)ar+GNhNa z*|Z$Xq*}9bte1}YsE6=>+}W6jPmtKg5-V_YwSy*xO@{LxOm(cIoeufRmvEr%#Rn)I zEvxQDd0|qs)cjzQhz#DstT=^4=DAor{h}*^LFj%~PmG?m(&H!Rk81E!5W|`J^B74O3OsrInT0-i7+I^K7!ZJ*BnKiNG8>thkprw^3Hn}p-m)A2~Opq2kxX{4^Jy%eA zy;5GV*X<3iW!dUcmtstX`m;+hx(YzbCO$y>d~8CtKwXl?r}p9*(#u>loShN_E2C?j z#`X)^g~9S+I0Y?Qb7~Z{X`{bOqc3SuJByHBPR^F9g!13o^MG)r6NxsP)UrBzLSu2^ zVc(xQsu_gk=RC%lQn2F@XnqK9o*R{FWPIY!E6TtMa!sq!K}Abtgyrt$!t1pp7XRo|XNn zM6bCx)b%bTx*D6=B2ooGgBEkAiYV0b!zx!1;V-6gB>__%YrWGEKQHzrSQN!t3zrKg zCfi0}tva#rNgI806jrlOMgq@vo6v^P(*Vr>uj$jDM4KxpI5U%7$I4%KdnI{B#w;y ztr3+p)T);+1!_?-HJ9ubN&pe@_nsd8y3h%h9205zS~1S?P7OXf`@VQkIL5`s;grJ9 zw(-ZF8j>&~CQ{TEnnt0ml&s=i=+RD#w`2{q3hJ~@_cSa`RTN72KHkMK;cM*E4^N7j zE^?U_kXEXZY~Q7*zD-@bI?b6t54&|jmus}CEd7PCgk1KB4FlT}&oo*Z!qNO{F& zFz%CV8xRLzDy}&wL3@M9LnrPwLS?Ts)H3uVsy`539)qJ?ZSmt2B z0IE*rmIT`&F&#Ss5`U=r1L4IOd`Ebkjf_m9yD@GYlCY-n!>*8( z-j^v4@^HnDeEdb9Oc=U#sWmAs#WR?#^?-|72D6^oysJg3GzLR>0J!javn34;p!+~% zS&@c#U8)|zj^5-}N6wAdY&8d6evBv+`p%VHA8D1ITaQxzyBc=7rzgCb0;>YD-`^dU zOQ9+(J$fk*omd6f3qs!lsbP<)#vkkLM=bQt+LodW>17(j3}G2BIgjGmgGMKbtMC=ES71wcn6J=zjC+-o1n|qJGXh5Z4MY?%!Qh2yRZ)g>|qnC1(F~= zoakNfjvb}ZqP{J#;^|-9_KqFM;7%a5|Jtk&yrw+Ui@af{eaaN3z zlRo&dRDVNHgziy4lkWSX(XslDH#I(*<8O@`eFE=Zked4QD z0xN^rRs*2noa8bmCI#yG#!b%_Kgl)~tj`lpb$AV>AgNmpOEjWmjejEf$X{4!2e68X zsY$E>)6PefZb@!?Rp9abW0_CB$~UeK$i83ido^nJ#JO}h?&=}>$s;wsH-t&cntS80 zd%up$yTIyV=kQ^i0;{t!^51&xY$PQi;3f=*Bt8b*X!d@coPNZPg8V>j3MInoLT~Ey z@mWZ3uzS zPhW2KxVeaS%gZFDW;LeGI;5Ai$-x}Ur0P(P_0ln)A0aEFF?@*g#R+w_p0;br2b6&l zp_)&jH;=eM?&0yiOigOybmAaTo1GYYlIfutT5ZBrMAcl7de*DW#mi?owLl5Kdf-em zpD*b)UgT6}6+h8CneeR;A-A8#kQIVM|Lrj3ajT!%aRczS|G|ChKZLlx`K@&{VG^XJcht@HAoxCqpA{mF|S zwYHU-5rn6UPo@4-x~U6M>VIoMQHlXM!Y-41SPiRhEF?fDYDR+*8BE+`lJMBE1aVJJ z@AfNtp_}dwp<6C=5ERA4yPVH(X)V1VWLQS19J!=5aEg#P)N=XNuPCM8a%UpAa<0~x ziwLpXXSpF7A#pfQ`+%MJ+YH3xQV_%w*+KpqDT!NJ^%h2R%C^od96@xHToF>odiJ

kdb#$W2seaQ6cBZyj74P$-j2y3jF&CtuZ9Ea;J`;_^Wn+GL!$ z!KEd|*sI+NJ!R1zfDjjU4HP|$ozca#G^?QmZr4x0Y7{`n{TcU*BjXol~@uu1)T_Hf(sO^?VRaxOz6t0iAVWKMmI zH-t)z3D1p$PA3H5bp$+|@W1}=B>b-wr4koRdfwwMl20od7S)P2 z#t%FB`~QxUzvKR^)B6=ZN3eLe=C?EIWhohA9m6BSOO#!jY2AJOY5fbz?7w}lSDB5I zH?tK^d0>WhdnX_1yh-5-Ed;L2E=|NVr*rcon(`YwM!s1*;DK+cU_a(;YKiZ=rq8+8 zm{>4PU=?)^%|ZUbdd_KP^ttMkuytOUYDN`J1b*ZUMQdb2;J@GwIDR>4jStX^yV*@0 zMD_A0(J@ai$2bb-$uR#-R!eevSr?_HkpD@NdJ`vCbZDNg?=+rUCQPa z9%j+m_ZEZW`B(+}4!g&)<*J$D>f1d^k=Am&I<#9jz;W#bu?c`$P;|>FYfgq@djNJ> zbuB5lM;BW2>c^Un)DqR+;^e#8ZiU6M&OenO<=S@-8@L!{uKj$1Zh^jwP9N}f@Dbl@ za(l%6y?!W-@$xn>Y17~cqaoGF5IMYlj*GhHw1CxV&~?&1`U27|*isO9)|# z(XLp4jZSlfN^6yPmjJRiIpHQi6a5n6kRc-LQ?4FrL8H*4w7)s?CW`ywh!pzi8rh8j z?LX;auX{V#s(g1p+bw08Pgat&uS=oMIc{vr(E7)!ud{H1w(V~9aIt;UzMGwhhExoa zd+5&4+VU`_)b1h78%B!e?0)ufwZ=DmU0oibuebLxv=UH;Ti+Wao=#VqF<+0M zc8HJ$(5-PYGAU;wCyz|l*l@N z(20@yjrH>JZl=rxn2g%L|Kq6ryGD(Rn0D*Fw0g)ER`uJVEt6H2xFm|!; zQ>w^{Rr(}qF3P7y3Kb#7#~-mq9=&d2&+}dumU@Q~*%tTi^O9F*&|_-VNP}sM6!s~a zAc~!5R;goU9Q70He}g1)h}y&B!K2It-(rbI@Wb%g8?N=5j4ijEn5>Gxrb#4QtZOjt zVd9^R@QgmDw|3<_0V#iIX6p#5esvtQb_B7H`2Oyv+5P>7pS1f&DUcZQNr64Qd#vT7 zGA$;i`b>gME11|$6Qv*=O+O}yery)&zE7f`rN@1{`MAQ>QP{_gugl%z{R3U-itb^K zm4;G5czip_laKEM7Sa%UO&h3F!REm*+m6c+*8gBxkjGiUh9t`A;}^^>%yx1EKfbzm z^eMZU>s_ks^_YZ0@d+2HVm};zD&SkVJdt~~jY=i9-=k5u(bCnn56@daO5;Ex|JbsK zPvl=tE}wG>K3~l-WLWY>LO&FrAao9*Ye%`@mEj+oEwBb?(pl>3?koF6=lPz^*6WYx zXLP1^n$tT-OAJ5VF4x%FvHwSoCWcPl*W&+YH1rraiW(ej_gZmXw%xuqommF#Ba6;ifv&b4Kw#Ng=pUL8NzS2aDKa%UE(1QxIJ&V zL%*+;_BigFt?b!C#Sd|d^2n@l^Td-kTa@FexDDVp+h?=Y`q>P7W6_PV0gN8Z9ibD1 zH`}w>J*|+ZY8eJ6#^qoDb_EmLzIG2kEot%opLCVI86=_QFMu ztz9?B)u0nVlc~>fi^k*Z2A}Zr<-OTfFiClXE0gw^6e%x9v6rSo4dDuuyjh@uoBvJU zz^H1b2p8)E78kV_vxoUDD$qDP57JP4_%amA$eLb8bg}1%VOH~ghBT!`KzCLA7(ZNO zeymCBipN%AVQktp^wF?Z%1J-tC0!HFiG!i#8<1u|3V2sV{8($**tlV zxof;{iLIu0av}nqOWn{p06X#1jb4qALPbb><1m=q+|ZbXRtNAP&9b~&SkmhlX5MP4f-R9#GbVYL@S zktzM0RBT+}We-Z^r+4=c+LES_3S~@^#jgw~3RL*insETQY%Pmkf=5j}TIQ3a>JU=c z_15mpvk0mV@1hlj%s1JJ=I}(*`(}02H(5q4$q+sziou+cfIc*fepQ(xMS%9twAYa%J}p0>dnQ=KStYW2572PVw7W6>bK#TAao~A5G96r z;>Fr*dvj!tKF1PiV!YTov21G3+eRPbU;!dGF-y#T&igZeAMLqn{qqLj+0laJ>a%VM zD8(jVgTBd{{U?KQXXoVo_Ve$*;UiyO)Geru)vK0hN;_LQKW5Gi!y8 zlNoMggOV1;6h)#vP?X}gGT`@7{&N_Q~yx&$g&W0fa3V+%(Z z5YId7lbQezB>Z<*#6_QZKcD=uSUsh4&OiTJihvO~2fqBY_;vC3-NTROdeA>P|MmPo zUtGy$ut3L@qBJ%lS zgEu*w=be}Yvf<_#<}o+OXIy@Ssb0DW+u5HW!ArV0E=#EtO0xA~{`jLC1WM627UWiM z#2)!p?>MBXiW(ulKPM+-&?WL_^RU(-&?IFta^Kx~b&<$-o-2WgVv3U{61NUXEW4<<_373qu;%IqPM_NrMiF~j@Fpb1ott_af+BnOnd^+ z65)EAg&@(lnAb3t8>_k*>-?2@8!gl3konBPjM-aJByg6NYAO@_2s2w002y9l8j+#+Z5 zcsfN6D8(=^7(LqSoEt6DEQvKa%DSExE%B#|$*Pg1o);~huVyzJOllxgHgsMPyCAS3 z1UHHzN@h#KcdOazu~|O+w9?}IgX8VY237{?vjQ7?=)$P|z1;%Q0lbQc$7`@+Xs(xv zQeG2$v3!`(TeoyRr4-X%ZX>wc{`3I5^i8qGwyEvr2O~MMgNX8lG*mU|zPj?cU42Wz zpz~t(-`gE-z@qazllmDETRr$$IyCh(srVIb1s1a9dNmy~PIDA}x!s)JAYF~68Vv~} zV;qs#-`(sE68mRNm(ealY@U$===Ay-U;bc<%_PM-yDyJ2{PYoD&r~XY`RTg{W0?(H zU4#^*ucnKQ^b|PvpdCX=&`C<_q*T)7Vy>2cupC#9M+U9?@6S*Fm~h?0-{baomxx1d zW79>i3u3& zJG@!iTZXh}K0wm3$w4c!Giykrgdj&`V;MeMWWv#uf(&(ubjyWuPX`Hq_=<*oX2cxW zGXC3(LE2EaBcR7A4c__v>hv?p)CP@TiPr#364iz_gu6t1frFLUr#DJPg`qe0aR5S$ z2qB}?NG;G_d?<^)zp+cQh#NQw_Y#L$)^9Iphro7&$*UIk0e;BA@9*{!2Y=DWX&*2g zxqF4(c5g7dj60V2;ebn)7Efg`A)*0MD7^)uC$=VuLtA{|h4U$~Bcv<|IZAX>Cbmrf z*utUK#op4%`~A9AIUHcYmIGXMg#lvmcZ>tk>XYlGD74Cb+H~{*16ho-T2MVy`H@7P zU+itj8eYB4XNm!g>Ya%&1|aw*eRTKo9%2DkHQXeXC0-8OZ2r7omz!5imSCYrLp@9kwlMJSyV2ZQ zPA&FUa=HCM*Cu#u37w1mXs3^2e>uz{7UOdEz&S%p>AYuDyRjpPBZ^I*Bq+%*ts~Bh zKDVZ5C43o$NH{2?$YCl;n1 ztdV4L_z*StRC1boYtCsOjd35veW31_Gboqtv&axL|hj2UA7&p(VQFGW5 z&Dh}A;)W>OF6=yN#*`y>USU9o$?OBRJc(_f$24spHC~C0F^O%^%;rRC%HXOecjDQ| z6TL_)EAfeFDsDWCX?OGv9IrfY*Q+_!>*u$w+hWBLuUcy5IQnJ~W)pRpe zzQaT#w{L^}HlyNw+%SWf#n1Wdo(5|)Cx@?Dx`CI^*}Xp*0^;ldJ{{@l{!Zx0VE#-F zN6NNX4lb3~&=QmbOXc5Ym=BrVANx#JA)h?O1BUWxf?)|wNb0HD1n5K>!vt_5s^+O( z0XlAKm$-OfrTY6CM^v?TMQQte_NZT)US@vbD%Mgmg3$b2AMRdy+=J<(z1ZopC0hsly_1&bTa>HdpV;UQX|!2Rl^?03BvXh7yk12G@3+tDL~_L z*jHN$t)pA4YLty$k*s3F!(F1O8*i2saqKK%iOX`w>;s?SomI^Y8Z=VhL~A!%h6i9O z*0MYRs~G1~ZXRx06wErTNJw(ro%c7zHD}+B4DR8qPJA0 z9RYdCHAuCKLt#>dFrgT2JFIF*C5_x7t*j?F8%eMCU@9oF9MGzT{tJixqwOLk7Vh1* zC5L|&`MUt%w<0zRq4EyzU5c$&++AS>31>Y@H`)W9oAT6N2#CXZ{m9pRzuKIwSN9*c z*ap~4Bp5<_fjea+>3Ag9tBnXnm+BX3ij6uZ5yKHIIy9NM!zcvH0d}TtghI|`8w1VW zy$%7J>wMozdvW1ulT~wsSSqZX(*6WeYn4ce>ZB$&ei+B(lhaS=j$ho# zF(+&>#T@|kh-QvCDdxv$_7v;Xc#C6RU#^?xOrbS;)~^r>GC|N6voGR!Ak>sRL_1(7 zI5P^4{CV>rw^)fkIKhY{!Cq@Tc5|;)YLY`1o-ff{Pa7CgNdGTf9jE1|ooM5ISoG3*@Op63`Cg9aI54`pddU?#nh8`m? zaXW(e?c@CZxBs}?-5uqml24wT?Y`dA1EoBJdV}|Uu+^)Cnqwku^Zb|&z%mK)L|3`> zQ|t($Q0TS>oc+*|a}buFypGBnjhuIAGj-cgi3=oUhT<8XdZm@CN{~Lg8XVD-FyCRC z{{~|;I&=|2^_XbTEEYDNA-GQ~v^qKf8h|RMD~y9DE-bmOI5Jeb%(_qKfzIB;NX#m+ z!!<+w7PedVI>a(~a5PPO4sJvo+Yl^CeZ|^kKU7qI*(Z+Vbb9SqZQp2dO zns0Mat-|)x8Q}^p7+SNmSXg;wK3m=IPc^aVkess$m7buw*bhz9rC;xGPYkYjYdf+g z2p-DP?GJPrWLL4OA#3=-y-kq{i$3_=)f1h#2v(cb{m^= zxN4&jo2^tdK$iv)vl;`kNiWe>e{8|@NU>Trs%QkX#JVWL81H83NV$zk-IAU> zVy)#|>xb8*D-e2$go&^862;Wx1jZnj(*MXIE@zdD_h0YoG@}u~WnSuQpp}%s?s54Q z*5N-b_umn0Q#yIFeq27_Hsjm3_X~6zviZ`@oJ=tqw%O?=|5ymafRr9SY1^_6^C|-a zshbhDde3qD6m~W6zFnG9N_0Dl(cdg+U9kCHzQWpD7sqjrVD*lT!fyF< zxu8WwOjNar;}(*|g7m4p6KqFBH7!}q5`r$3e?GWnIigs)NG%X0}-2^3A>?I?QTFCJj^! z*mO>>uG+^w?>UIc@kc^&`e;&gl^*Afu;HOgQ8JORq7^^$Gi51bI%`@GhB5L4r%TO* zG=g0%p@>*G>RsSn=11IpaX`PLMLR7$M=n^#SbLa;h(xm>tZ2oj@yL(Jnzl0KkGGWg z#A^?D!2?y6SLU;V+Hsseyg-O0pJ^Kj%UL=7h;OWeRuWdVLQAGxx$Ro*2zBz8*rmpr zG4f=xft^m?daF`Foz}C}Za)snpuN^OFjmV#6WK61EL_8*{))fV%TCL2wVPlXYgDjM zGq<#~T$*Hb6J5cVE3GqPu%&%LoiWwERxC95+ebz4HFV@S)M}j6fG=@r&m1+IPF~sd z=Ltd%#p2}*x9|{$dtBZj0b+DbGq~;kxoUbus{}JjSn?MacF2@iL{FxusXejNk36iQ z%9*e*<%sB?eEaxtdyiB&G7k%x-ddpd9b~C|yQA*g?>C3_8qH6B(e z1;FG3y+P$SA#InM{(5$H@eG$|-9Fo{v0$J|UZ|YlQX#1nEOkOYAB+HhdavqlAo$9r z74sIh3R+eb%m~C>6V!8X2_Pa<5X8Sutc(&`{mD&!78Fe_I5{&_uen4#BmFj)5^&Vl zeBqv)q1n3JVG)~dbEi+S-FB^O+c{RGs2eyXSPr?iodqK_mt!G!`*?F}^64-yXHYuO zRF@{QL@PL1N!|u-2%wvRL$r%-1-%Z9BC$P^PP)^?08LobtqI34JqKgA)Nzs*CN8+< zJbJakQPt>c1d9$mmhpJ64aD>9jrQnc+#$3l(fcJ9S?-uMl}a6uFcc7>BfuBtR#^hucc`s187g zPv`%7TtHGZP`SYPsT_=GfJ$Y$>XboFAlz zMU*W)dvLA@D~CGeNMYI8iw|wO>4UvCq0lD?9+JHLP-FI?ZGJj}c#xtSppGC;Q);W| zVjjJJe==?5ICoCP%1X{Ben22Ev80Zav5A|Y9CnaTs8A?Z82Nm_>i5m^L!3w*p^&3i zJl>~%bx344e;k#3f#AcR??0eyUw`1|;e1)h;enn>=uD4OxC2ZcCs-EJR4`o_Hvg=B z$h~csMw%qbiA9dmi+5c0sWnY4VGckH*>+#2J)58&VJ{>+oEzG!`7k8) zG0lx}?WUX?S~}LP&Zo&tWN#cJq>y5Rh%~s@!(`c=Ygugkps0AR=}W36OHtDj%a3V& z=t@O!cE~Cr5AcxULzc6m3DQ>?(RX;NnL4j(Tu$CRZct7hFpr1NDVM?>f)JdnrK%Sb zj~=^5ll}C+Vfe%AGjBKn6CGndC{T`R2*^y#K9+!7r#xhgwM{M!w7EuPm`Ujz9)x-z z$Pymy>->OA`LD3&E2L$FI2FDIll%>Vupp4!PxBXq3bQ0d4MO%2F4Wx;RnWeA|n^S*AFL*&#N-9)u20 zjiUa^EfOCvfpv}3?GGQ!7V|?agWD46(n^Dggn@2zJ5!`o68Y)w;|d4!F^~3vKHEOf zvrb94Bif{$=tE{?>HwKye3+&oHKqv0mucFRonxHg6d49_j2kXZcxWd{ z(TbLux1jM`#bX7k3v5J&GkH>bEYpawu^KHFRT`7e0G;)rX|_u%;PO@4;%H>B_JaCt zlqpUN+ayOIaGO0#r1X;efvEX~-MwosdZ^=DyL8Wy+F{Gf9X_w+Bipy-FCs#A=@yHt zEiSM4^%p$DYzzkgT%N7B>0q)T!7>e#5uFC-g_jNk;CkV?L(^>cV*jD+;A%4uF4ac_ z#3F-QLZzr^op0xVf1n9H8k1u#pI%{#fsQz13ohtPok{`TW5MiZS`2!K`SkD+jqX@P?M`dqoFG4d!Np2NB)Sr})t`M%q3N5e2VmQnLXuyPX!mB&=~T%EmQ! zv5HV+nz&dMfwxy=g(2;C(z=qp2qrq-wpCDHS%wuX9yxdAwL@(fs+9y%p~BbSXg=ih zcNbF17-{%* zZ)}MMk@|go$eQPle6y@jPP=sR+=CX6cJPS!9_?DKPr3JpbCe@Fm79fdlt)j$O#5?8 z5>2PhF>Z`~IK@utW9nn$jdEQXhx}>0NlS+khRuvqhT)@J>C)z0>z8lnv^X_5_%Fbe zQfwd2d45lW8^k!0x=?+kEE|_(DBXPaq_K^|PIPH*92_LLW8`5Et7Xwm>SINwLrrR+ zXii3T5X;G+l9DtLtu#jD>>vlTc#NXZdp|O3edY-j`a*v6b09SSKuHR4%SQur&RZ;K zbgP2tuz(HZ)FbTm(H`3CQlbmAPwm{8P5qp4tXrK=aTt}ScgG4T(vPi4P z_#N|`L+RHv9Pvx8RD zqT;00BJUWa@nj@6K)H3QA$2*TomS^`)i7SGEO=AJWR(s=#ziG7WDYIGQWT6KoX9LP zFrL=^0Qwg;aQh0Y0P1leD`i68lttBw`dlJY&=mdwJ_`9zupvyYKVfmKg=kP0UXiyX z?Nq46mD7}UjA^sIhdRDBP6t5M4q3)sJLwuqkQ0-R{qqTbEW^!jaWHI5p&#Ndy&C?M}7o zJ-xes_?oXgkd+=THa*~@AF#6*uRqYm!Y{Y4mzxEat;?MPe1C`@hB`p{Hov~PyV)Ii zGqjRV{@TC8qwBNH!`0SakI{)qfK&g(VtR>BC;n?MmmFPfU*n!)w5XLB<-(jlJpI?> zY^{+DLi)MA$F~d?58KU2QA)pOJG%F=qd9Tmoi9H=-ry#Gy*alNLxAgV9&ruU-4e&S zw!5#->6)$PS@*lF7*r#c74Q2(4mQhYVAE);!r*g8n5Ysg$ZLhk1Zi}9=7yq zxb>k4m1A$g^)mi-u~{s?@U4v=J@2t1{dq!(=RGy&e`LR z*7fO(G`3nquafvNm=i5h&Olx$4 z_^KOtVwN&Cmb;-)WSQu~l$6tF~ ze~6;)i>#F~BNkwp3rHarrezyeoxCu$7#o|mY-0*gnpayto$#+ce!fNRyT~tP3VN;C()4sf z<#2w})DArya?y&TkR$4}E*7Liy4DFTLk4wP8CN`h^|{^@PDWdI2VXjjZ5k;yc5Lfqc z2X}LfrJ*-4)&s)qQ@l=yCL1qb##)NB=)u4CVZ>5?LS80LmaY}^Qex5fa%?ke(HX#h z?WG;=8owY054R%W0CWkU+6`jnO*&Fq@y=0bqKA8+tLS}$8pO(rrAc!`=n*9?YT^>> zPW;ziK9JtNxxjW~Q!|2Cc~@vzGh&k~^YSaM&HR#aEu!q0%o4mxD{FbZ#K>iyx`5ZA zELe5un<#UGXZi$CZm5>xL=h?{+=JVRRiG6xwHd&wlVpMSFpk;8MU|?Z)7@^SS2K7S zert(dV-j{TSmq+8bP-+`{Ogvuk_| zzNUBI+I<>c#=kB$WUM1uG4sy0_=H*WPX2fJma7fd06e>v=V`LI^$4-)3VwCvQO6kx zpdw9e{EO#E_ItfReTkkhpF&r=*=CP653_|vhrgOERQa$(2a=ZyzZ9e9 zB20R6G_uRz4j^u6eWMxarzQwz*L=i`0@1jJB0Iv*uIZQ)U7++H&vd-H$25UX4W!W7 z^`BoC^e#kJ3=-(<8Y34ziX$mTW7$#k4l~)B%@|D?s9G`eG|6eB_Y*t}(iZK>rvy#3 zLN<4L1!qm9$OBziXl@ssGHKlNCM?nQo%OQh!@MD*-jdzk zb~=t5Sv*c4pK#lg6p}XQa2$8Ys?`>GW74aJh`R2PiKJnO`Qx?`#(MDVT4o&d6RrI| zyT;&kE;H9!{^B}Ci<y(*#a<;zS^IgZ-1wa$5r+E2PlQDycf3@7<23s^$bU_^!vJJn3 zh>y+{ENTj=9Qcbz$9O?-1KX=>9|-JKX|ZKBOpE!Pw&y9Q-ra5_XaaGCZq|{z{a#P=Zl=rw%#H_PLIxSM_j^-$fQ~c zZH9qfRtPAYEg~Vz@U9O|PH!J6g_5E}S{XyN>C_W^cQ0Awm`X?NCMPC$$PkUo+lWEh zFK+H0s1%(pKGCy!&+un^&~AdDP%GB7?5%sle(O9WKzn?>n*Nj zr~|GN9S3O`I!bym+u&;hlOu_nIY%vUDy9KiMA>DvE9HAkHKd&@8TkyeT_GWQTs6<} zsV#%Uso0HJWaasOBjxgvuAxCWFk$yt(V)pU&tpkJpJUwZQI-@G=WJ)V0n!sxSU7*6 zX>N;cL0EqBJe9X1qJp2VuFFu^lZ?DDrF-+NB2$L8p@CGzh4+MpzOSyY_pb3mGFpJS z6g|kTJrxm7uNtqAO#frE!w89kQN(23&+(#pfhh-kw($eF#tG;+q_ArrVy2K&h=jCP zt#lHh%Zv!K=~CybtxpTS=~;x8Bagw^g2gNqGq1ekW+H?ku_PnmPiH$+{*dlQNF15R zdx2G`TTC=y4JQl}a=dAlEHN&KhRPiipA>Fcc>t1F3MBR0lo{wyOb9*JG(t?;E|hAs zXAHHwFoQ0)(c+E9w|t7!&{WQ0&>*h}+@#R}tYVB%sDx?xw{DTi2$LSow$Jlo*+Ig` zz-Pn{5c8!MMQon5<*FrXC*lbYi4h{=8iqC* zg853my%!3_1uMaF9N!$@P%G(1%u+TwaTUN!8Pt}rGQ^KCXa>UdyhB(3J7^YndbyLB zcQt!CBz3r6tyM`s=q{XYFkZ^tcpyGONT8B>8Bzz{F43a2{!Yqlj`h;&L^oddgD+ae zLB_jb+7v@EObbAb%WQHL?je>P!ov)bDpZCE0zugjzn7C_XgvUxJKyefwB%*wR~lOm z$03DX3j7OP__1hLX$?UAd~k&$2=U=_k2?|Iy|1giydO?V`S0bBm?5VA!oOx{slV{A zjvlKy6)-m6*;lEZ2tWK#(+KdV9b(p>_(OWQQlQ&!`m2rzt1nFi+>Qe)!wQj%!*8-2 zE1whqT`qOv_7Twr?_P$%Un#~VCuw=Ce$kCk8D>h`!V3XraxBM0>c*Lp76~At`~x?~ zL|Rkbj94=y4oSt4DCLnRCBGS`dYS&x;b^f#gInmSG=7L>ZQV4d4kqKsO9C9i6`-Un zCD+U9uP0xnSVUHp*8yJc!w{~3@xjaLubO?yfOkjVhDg+u!*hgj{3mIXLfzO;xSjZv z=D|t_YQAbZahXh^Ja5CmAWTMhCDcVX^b6dQCsE2nzR$;Qmc^(K+!G8|{=j1?_c)t~ zxjuaQf5qF@JAAuiUcG)M93V}>#n(v+z%$g5hvg1i{^)MP)A@Xh{dcct`~BzE?;WHy z0`h44xSKDj-rHD|U;>=$HO~_*O1B`+QgCP^B{!S@&*OGSuZ2r2k{EP^k#6UK*EI2X zxqLuk|E+f^z1l76M(1WcC3Wy1*^6>PQ?1Tjqho!|^R>6!HoKYNNZ5XI@yE|BOOlj7 zKtIlI7tJZF(N{WrLg)QP&KW#-qevcnMWa@p*z9tb;#E2bgVG-58t)92>O-ME{h}-M zDU=9{^$h7`BQE(tZ%q|PXgfE(yVU3zNIF|R_+3thX8Dk%pziA8Qs3%-R@d=Dele$cem(*p)V|m_v8~XbAk$VrMlEZA!;$l*CD$tC;gllT$uB zQ>Yha4oN0p#S<%K+B#^5-G+8!e1vFN1H&h|-lSI0sR>ikz=c#nA5KWNOeG5?bxTt2 z1r4)I*WA)9LwZ>;od8iZV4hs;X*TASwybu1SyZMNm{ODefzS53d7~6!;X?;3SftVR46x905`olsE8UBh}_P@GRCmH#WK$Y>MUapkSt3(m3zCjv+l%3AU)^61q*gM zsUxD{^RSec%pIWvan@@GJ9H~Ba_xbGRk!o9B7MHm={ii_(P+Z>nuXx4_PZmSuNG@k zZZGqQ8z}HIN0{xsq3>($wYoSuu-PXu58Ps@uR!2Ro~GtYNiZqMMr`7yp;&?sO?sD1 zNf6rX7n-#?PRg-FTH=x+PcfIP?J=cN>(?@*mle|q5Jdy#3Ej9udv~?3!R)_uBAP$z zc5l{k+(}kR%;L>a)JA&w3Z;*_t4ZH-*1*chA7?~KIFXB2+P{{cTtaGT$gxCPqu$v< zURYU51cy#x78kTKQkob~#*CqM4Q!yBhdUi6&@{ZMu)GE*F=i(6a183gQF#_l#d?j2 zKw?bT%Fz6YEYD5l(G+8dl>o;3TH={95^Z$(r0m|w=`A=`Vr4pfMiVVseBW)?trYbEH_BN5bpIAdPL8lriHB^B zld||Dmb6USv@V2$7E)c>cRHPvy#F9ePb~$bWH5M$y&}2G6%AUpM2x}=oCyng*j7KL z7p1`{+=7Mh#tECHXDfK6N%Up2!66h^Kt>Km(v*!nX`F?aHU*s2>~ys34ShC*=&wS9 z5G!2u?l5J=4L=Q5we#si9?_=lL@!b+E&dKZy~dRq=yu*b)*ViHV2d~%7azEnxW8(L^vFZ-1Q(8hvd}Et^k@g^ zli9=k7RTk+UuhrV+4k;kw$ZJt$1oEPb~+ujV>rzM?^5Mt?BZacz^ADPL@(D+u<1|( zo6%L?m}m}dvW22`6JV#uiOPe<)tvWNcHTj|Cp8r#A+w{K`I7IG`v5SZ+)^O-7JiNn{X`BhviVC zMGbKlPLT&@Zm)Uqn@VcCYnT|_a3BILarqECyf~Mt!PR+v-jwW@Q2wBS2m78Jm^^E3a#nQy^ zXrk339-~-Q8)dBDMK)@iRBF&LsS-*FTR(L2wCd2H<;s$auxdI+(C$-MwQPA)SxdGw zpazFf3gA;T7}eCQ;yfjL*oLJ^7+W0HGGL~Yc&8f9H=CSkIDufpvQQG9gRLHAMjBQD zA~&(!8fKQV3&mp^hLMI4EK=B6vilV0 zRCVcR(^-bk?#teB6TF1nGQca;sZr1KQ3<(GlPxBZ1=OBqTCiBfg=gcW!8uPeg6b|7 zTp!zBVLDlTzP+2RHn5Pd-(gWpRv+vkBfX|gf|0i4P+V~F6y|6!EZ=W8 zvgc`MbTgE5u_S{|Iad{oks@UIX2D2vuW1<2>(qVto!ALv@Q}EodlCY>_K>+sgRP$S z2Z>IFI{t`^JZ#ZVNGE5vbk%G~Q4Xi=LYU@Ep&H^uAQK)O)IK?*yO?xu278ST4wogG z%kCx^(AMJhWT~6O>XbnaKEX>4kM||L!Zc=%q2g&MSKFd!m)7)P%3&TD2Tqwtkw45M zhRpNhjg4>=CC8dnBST*?wQU>1IZ$$T0QO?d96EJ5)ODmO8%J0;Y5IeB7P04bmWgF- zaS?63g!8!No#f0Ew}m=nb*_w=!5UiY!;VGLl#SdKXCbE1VFw%|gx;_`XoKT0Fn3W$ z-i^rIlMlH1bpH1XTyeMLt-K|aPW*O5Yb!UVm1ifPkoyy2+99Hmur15r2c#{`+Iqg2F<+l=tR%A zv&F@HyP@$JPRp;C=iASEuUL+$6nB8^R`cR<5I%o$@vyw3CBE01YfjYeB6Fpn6O-V@ z+l%Muk{@UFk&P&&-!#LySvQ>Yh~SR}y39m1u=`@na@)Yi6_2Z@^W`X`Nr zvh(WGa<`s+Wm(6MxYOhxcI(Cn^>So1-L{y8MTLMdr$I#r&qVCEI~He(k>d29{Echb z>%HD7)P!YzmOSYKvRJ1vVw=>K%9jvnVb<|xizJh25*=b2@=VtzgRuR4vD~#XTg!n+ z8;h$Bp<4S>C=qH)kU~v}83+DB3y@v>9oXySB}|nB^;%krr1Q?PPMW$!rNA+%ps^sM zH_+*f${(VjP~+pOEi%)YS9xRN*-_jd+K!)Oh>`7PpFrxB3wFzzeD#F*7NZ81UTZ%h`Y|h-W`F58`Erk;w+&-i;z}Oqp%zh(&C8 z+k0K64?_D>)c7i-cC+aOp+Qe@t?GtSsdJ?vjg7(D3k-JZJ;@p3WSv!5IQjG9#pxeU zpI=;Fec&w$?PFT9Z;Ycdqyv^-4oTk~2O)kw#oej%2V65P*RbJ+SRDlnKp6#mphAkL zu`+36tr3*Lq2n9E(yKJ`EHY>iAn7^JPesnYK2CiV&$W^gm!xqxZim zSpSg-aKw%;c1FhRZ$mX)F?Cf=YFC5U00AZsaN4Jsi%HKY)!SMm#G2!dLKs;0^* zBq>341m;BThjFA7ImT=WBU}7i2ygG{1N%%Cd5U_5i0leaOnsc09quSh4|sQ2rNWX{ zRl0Efh{%v$rtNEnh^%WOeEtF3zbSr6pt63}2zaw^vTT^cEnC$~D z*)w4}nPpUc!#F*mYK`Np0jN?T zplf9ImoZZrrziAsk0-ICZwsc-+3gk!N6%1k)k`aBe``oq zB7gHth*vHmgL`$xPjM&r_HMDhIlj0vnXi9)efjo+4$08UOi5jos52)<0(*gcFmz%{ zmu-Ezl?P34FKUExFx9D%%ycBW_xp#(Bj4xQ-ZA;)&-tF-jmJ&SG&aMDs;6J-JLNgn zq$rcJN`}Rp$2C24T5On+@UiS6ucZGNZwQj@{_$aX`4yL2Vp~WOkDdYTdc%3~zJ=H! zmhEgMIv$562Elj({{3=?=CKWQ6M#f~?VXKJ3n9Ts1DB=F)?F05n0U9357L{O#4^TH znDj7AkrEQdxj81%T0*GrZXX>3FpB*kd4!7GrFQCJ&LC~H^bRzs(Lvzj)x_=J%Xe}R z#~ni)fJQu`7dbQey2d=~siNU7M+ZVjuJdxzGJTO^(4g+5D=Su5I4-D*4Rwb5d%Ag| z+9#zUE3-18O05wt`(It-APrwli$eE+_ds;iIfN_F#YxPmxbmFG%_CuZ5ITS0xygq? zh9_9lh}m7pEw|BKl&Hc*`mA2nD<;WGhKjtzXuBh4u~p$CAOEGrBP!1L25R%H-=W~B z1CL6`26bA#?MDm>pXH88&Z6|VjTRFGfvN)CQ_wOF;dmslr+X-?oibBvdFY}~CD~f7 zH_r6(An964YeqrQaplzHN3EMs9dQy1&7)pUs^KyG z$0KI+xxNoA1WMI+`I_dJxIg6OmSQZNx}?Btf9s{S%%1H!j6$IeXr(1F=B-p&HKPKr z$(1?sfH%9j-jpZ1Pc@TqKuYCgn6L0U(CXMk%hWt>HIIvM z^>~tQ?P|hi-ZTsvvWU=?GB0jCjepDi!mL2$+DJ#b!>WdjU1?~eVn(U@8nLKUFkRjR1O07u2I(;}4#*m@KmtJAPV%PT+-=cDIIlIPv0M{i#`U^XizRuUn%g5br zd()-18OYRdJQia)&YbqaN&E*U}>nj9CbJhf5mv`x!RT z-5i;@M&smif4{HiwC0 zSF@RV^7`3-y<6_EdK8{A?B$T4-Ffz3cn0=k=_s6te()&f3`;Ux!wo9{;L1Rta_a`D z6zYY|b})p#;p_c_#OX@riSO=tMfc%xr<29g9D}~#-eFnwY0BH&-PD2_5hrYEZ#y<( z<5B|n6EnR-MFvfXGIm-nqI120A#-dk_aqpK9#MX;uK7emP1Bn7CaeMP0HcprW=B%> z?fnAdE;JyRJAUwse;i7R3$oc^*F8N3`s(7`EZq&jUaU6*TX)+$G>le4(8d1W88(er zhJ1G&<`u@h#P?c3>CGKIX*Z0bpXB3fTCoJ8Agb}vj)7{m@#3}>#kPga}R z?rZBoP?;l?@LT)X@u_JhA@+KddXQA&1dUoYw+y{mH)SnyEmZAd@6XfCoO~;OMXjC? zbm=y$R-tnBz!3{r`E8}lUAo9gmB6Zp#_xhhRM)FI1MLbDzSVP%S~%U~8q(LZUEQpl z03y10{f3Ty;`VH81Nv`N(?1?p3mR!-iy2Pqnx(tr`4dc+erebxuL+~md}usA;Y6=~ ztTxjQR58uIgdkX?I3~ac1}(yDO_tifS-U-0bcSt~E_`Tn7WuU~GL4PVsj$DzZsTUf%q#78-=2BEa${Rom@H=Ai~WrZANbhea<`{lVl;R_ZAEQrr#6pe zAH}oLJmi6tL$IWi3aUk@p;B9QcJ(}vRH`gmHo3wlKE*Il9pw4vSa%)p3#5F^L3DK< z5vXFrL$fF8Pd@tEB^r^Sy5c=hjhrd3(ClEh^H- z+1%bkovC~ib&RpL3pO(^DVo?lpy~Af^X&5fBzzXLZ!~hpXpBF7>I74URGEvTwN0ix zSap(-53yBTd1jdNOEm4UOk+Yp(gdxLDR+5=`4tfEARPsK3n5><$`AAY`zoQgH^}mHgbnXi}CZ5lm{%f zB9kSqGSc3}Ck(=-+pqII8Y8a%xKDxyVWewQCDC+xu{|sN)}GNiy=H>R8!Hw+gjWZ( zJ-0%YpH-E%Dfu9+5axqVL5wskqHGMjr0j(x<{?}~I<`wx!UeLEl#|~jtZjBct+O7C#8Gx-~9v0&zm#0)m&MsfuFeX^W3b#ak zr4nTeiVh9ktkgKln*}V!8ZujQwUsFnH)|51gzsieJipAEoX-FCh%2#7lY&EppCox~ zYE1G-TSoNgT2~9KV!p)oTg>*Tg(2QF=~Gv=J2eM3oib}+oDY*yHQX_?S)(H?{$-1* zZlK1u!QSFJ($`yz5$jY*)g91`ovY_>u|iq*n%Y+vo3thRT2Kb{>49$<+Tnud*DKHXp^gl%cC z4Sh@#J2ctJ9&;JQl{$zUHlG;(WwtcqGz+o%v`Oa9&;(WNmHpy;q&23cPCVLH%WC-+ zr?rEs=W*6Nf5~5r+zHnnn6khF9oM!_jw>w`O}iN{t>q3P+d*ipcTnY16KE2ci7cxO zI)$)%HQ(Q(DBNRDQAh6ytb1{OwLM+m)I(fBNI$6=?^4YO9mmF}awMfL_V1Uozj>*# zWtb6?or^t>9?sr8rv(HEN}FsVKct90dYed=c`B{3pc zbSPEBC|LLw=(x62!L!Ddk_FMle*d_%C1#ME6TA{C-IIokZnE(Mg%i=D64@1TV2f9hnc`>NBcZ{V1VTO$xWiRTDKdFR)a1E7I8G(F%o=k2z?%XIu)K zr_((0ff)3!Pi&J&145=t31}z467!WZ((iik7(Q7jq>+sY?`s~j*_w$_qX9LHnh}xP z0On!>tF%lP8@k(UxiE`Ylp;By)1A;FNcpAhwN4=bl`5-lsSUg)S0)ek;Cbj+d0vhZ zPoc_hWk(@X{QPX55>j21^xz!PO0h)$1Gws4Jy%m9tOiu>n-RAG%B8Mu^$~|LgCk8& zOqy{s;~JXk4CBQSBhfY?1uc#(%Vh5WVw{ww0YO9ZqrH|`q~E3Q z&Z_-1J#1CJS4X@)E7K@3EqHhJJS_^U-{7E!m4>Vcsa}JN9{p1i7biRZPL&6o-a={W z4jBnFwR81+?19IcMljXdOk_zLG^sl{}HX$8*p`&nR$@DFr z(BUmva*IoucAmK{X+sV#HtI~ZEJi>1`gXUjRfR%I@sVb&4g*b807A+RuL++A4A#bs zfjA3SwWT4ePA*A`UT)huDC>ql)Ggz|9V!SFGJFh&mb+zp`y+*n z@O(Q@svVLD0T|3^V5qpo?FP4ZcAc2bB9}OP7MCYzGnl zVlTXl4OUEXyJ)?dZ~(HHxt)D6QN+YUy~aJLixp1qV-wpgeGKnbxPO}N@siCSTdd9E zMv(SI#CK{@C{hQW&F1(J&>bg z=9ozN7Qh#?FRMFDFJn{DQleplk(>V#&bP%ci=U4wphP@5|MmRmf1?_OsJo|=|)NPsY8+be#Zt3C$S*4^lXN~L){8+kTxXXK*!h-35qC* zKCbDYt9K4M5_n@vldcpiLtpT&lshc zkcSx1;Xth@U~cfbU41&mP)zjBmmeQ*%m`qFs{Hlp%W^#xWI|BgSC0?4n6nOd%&>Qg zq1eUdfO0}`y4aL_*aJ2)V5+r0mb}9XZ#PlS<|&_Z*aDR_TzhzjvMm;D{pi7{BQKl{ zbPC8i(ss92$*Odi(GVN2@zM)@5xIkuhgcnc*n(jgZRtno;NIuiJ+Gkl-Y1;S!bnTn z8%c#&4vkdop_f3_>hp@Gj2mFNl7uE|GD@DLd|Ujw`1#+C>vM={qtGYC&!d>zG%X#M zL|AML^?p7n4j$Ppa%3ccpI>c${>27jeCshvq%!X4qh&R%MH?$l7-wOmg#kNl>_6ux zo+((|zIBbk1!dg%fBkV$eirp3$&n_JP?Pd&U@@g~vLB!5lH|YC*#&eGbo1A8@n*Yi zZLdj@gH+0pMmlW9Ggup)6%Se{ac$5}uFTRUVLY4A1IRiuiooO*M!sMorB~s1gQnQS$Xn$lI@?bZ&Nwxj;(>KrPWjxxFYX{vyZkVs`X@`j^A4*lga9_-J zf7e6jy<8>yHH=4TQ1qVRDhpH2*>(r39u3CrG*T~D3GUFePuzE674So^8Pfn%EdKAY zrQ-imBJ(5U)K^|@%{?0l01<7wypJ8G6%q&UAj2B&05G3ARtQcRLO)-9+~EosEdZUo zF*^!*PPf95%Q(E;ZmR0#khGz8Gh}37&;=d1Liw?M$~zet$WKfp&X=^RuzTd4@0e2A zFYC?P(;Pu32dW4m!$mV01=qm`H@Dp=+UN}izMX*qPb?*$6bQIUh1KUhNL2`q841UF z-9w)L^Us_EEf0-?VnO5I;;`DPDCl)k^HknwKKkw+-4C9LqAvu~%=8fW(mK)#qitrK zw6gT5DY0>04pTt)di&Qjr=q?NNGL2L#>npo6fP`7Xk0z0Zzb*TmY&4| zk2vQt$liVU?LUrfu8az0$A9T?@^X1Y!vkFHHE+{|L)>W&6i94&&z@azb7Q7FYUmB? zG$_97Wu1I9F0qorLGKr8*ajgLtkY0awMJX_e&PHlM}pqZ6Co9>)0hnD=TS(l3|Pmc zAnd;!T>$o9PF}vI#Uxr)C^n7Y3u_v~Jqn)dtUYq^!+rQEmeqSPZVUsH;y>oqz~ z`0_QccDST%5}^E)OX6||ynIc2A!^)yt>Fc6;N`TF^Vz3%29++h4G(&ZaUgn{E7wa= zXkk{K&M)H|@(h<&*CAgIfQuq_b-Tpo=D%Nk#wA9tuJOw@oD&Ra$F$pHI|uI^D~T~l z`L>vSny)voIgRcBOvTM~Z_kE8r8coIVq@8q?kJVt7g)r^mO^i<3LVG! zRw%_MRIE|F10)um(Ao7!Wm7yZ=t1&jyT_Z;9DIjm8ZiK)(EP7Le_pM(r}zjNh9-(h zh}0GN46v~hv=7a!7z{uWVcl<`n51-Id$2x*f)G8Njy^I(WHP9bi_2X+93WhsxR8;Zm&va`v1%bx zDpSkIDLWz3+gc3z60Vm1hZ$PewO^(*Nq-F~3M z0Nb)2A|A5U0-v;GeNs2xXMR}FgstK!6<~=*@1WWe_BB3FZ)GCG957@<5rU8>ucV6D zFY63}3^OL5OwP&AB5!_?n0$GOodSj}Ka0GvNla|)fSBKED_G0AlX{l!35-(zy9H!S z)$pi!4viSonp~}^B-pEB@Y)R0(=R68UL1JMoTZU}?YAu>PU={hC9-2)v}qJ8bexPr zR?v04-F(I#G2cIUvGC~SSz^_(WheH679^~xatV`u(sV<}qe5&*v#7GpY6XOg|6}|} z*=Mo}cC9=zoy|rpzCu7H-{zLsE7EF>>qjl&jnnKk1i{vb=R>9QPQD zgXm;|k7IYpNT+#ryPW@xSLa9ZX?To-B7-0+9Q6i#^(-4nQ++e?VzElR#U?I18cB!f ziOAsI1i{6hZuAOYR3`eb?%M2@mB`;RlHsqF(As#UV>^!wxA@g0L$d&))qzpRqsQw~ zn+32oNtD=RvGA}QfQ!p8>(ex36+R0RPLN?hee^X zu-T&O%57v~&|`~Er`bF;8iQlDYU;+fb zem7px#?#aJ97}k=|0e&w**@Ze%DScGNb-o*BAW(D>6rkNTC9_di6}?gh@<{8wv?b2 z!r+5cL_}VdA6}hc)po_y6avx=Sh44%-mr%%A9F38WtLe+v_um$1?MW^aS<83hglmR zH&oOv@O++|hN6=%79dMbWbAo)VLtt`oImnoqZfC$+|$Mn{0_~vd>}zd{jW>$DcYnC!F(`jLJ8Wf8tv~59xB^u)ZoPFv42XQc<4WWorpBk2E zBt8|s`a~bPb`F~2T4co@|9bK@RN=}~q-XoUjTskq!crV2@u?iWtI`r;`HhvwPzTAy z2&OvT1+Nl(aT6>i0Fry#b{4`B11}BSa5}tV{P{-RSC>K-QLmaTSTum+QdQ0^7o=xr zmYM8*CK2}^y0+X|Drk{oKRorDwx^^NZQ{bq(xS*L!+XgD@=qQz#~&zjrU~=nz-y)~ zjjYjT1uWo8Zxd!X6O1(0%h~4fzL``3Fe=#>oB8^2ky{+#qKW_eD1ogq%V;520>y-W za2dfI>2hYjH#?+fo4L}!K22MV1Y%7%RYj@C_?3+7`|TecnAl~?UvmM!i&{rb^drKv7|pr z5WQR_v_X`JQfC4^fP7vQd&}!e8jS;=e!=UH+CEM(I4Za6`_ubX*=b&@NDB4B;#~r; z=*_3u)%M-YvQ*UYl9nAw<;;Bf@F$X`?ve5`{#BEJm)Wki^kABg&VVu0wjO1=C-`ck z>+JUrv%7oLLaH!Jy!&gn2TxJ}ChbI&wt;(_4=b*vP!m#N=$I@dP8g53;mH6@#m0PR z?hRjrv`C$wd_~iWK&7aHly|k#*<#D4}hyyScPpRDDPA*KM;W=KjakZC=BqUT2;wNPYJ__u6sZomG zRK%N4{EMXvnU%AUih!T*W}h3xzeoz_cU#S4Bfy_h=gx-__ko_j8}S&3)3iIuHuGzvFEd|SRBGF zTi2KrDDg_6Z;Na68sHumR3V?dn9t~LtA9PB|H20`%C)wm8B%1M<>!=ZwoB|5$Etsa=VqmGIxS4qVdGzH>4{%*R(Sn(p00okxpO{jHO0GTe#M^V|9TTMUd! z5@B=ftX|=kVew8MT8wvNlI!8HDRBGpMEDhDzAz7 z`*)?{@0^V9ey5Q=`afLij+3Z#(4wmuV-7j_?st^KgBC`d%t9OnCV^B+)u&0r3py!g z8omK2;@a_``!^d=2Ox`oLt4pmjIHM*=bSt;=@8%CzDPGg2#~2>CJf0p3R89~@GD}r zp<%AWs$C)0;qs+r8KZmKi(5S zM3OqI0EX!3|?6rCp%dtaxc1UEyu4!y! zp+-5Rv+ZNnxFu%v&MwOS`DTxAdNe@`3@Gs?&pzbi1WiI55nS*?lCyymy4S0lkb*_E zVwr|dMX#ah=%qd-BbJ1bMMr!x>4`p-zJzJ<>|;As(X2(>B8x5E4uVVb|A+hJF1$C( z$Y|R9iPPm|XJSALcIxwqzPYC~Vgm*rY33nUMU!F}?ADxZ10%V7#9}R^Chc?GVwpyt z>rLag%&RUUm2cQjupjO5ewgV2ZhoCUE>;ig?Tt*F@b0CU1PO)paWzyHo)r`C&HbFr z`dfB8IWw31t~yT#mM6Jf2O!_y(iJv*q-k5=OjG)U46!+s zZDCohK6V~WwL1TdPVb#9+Ria)&75fHj!k6=ZQullkL?iHqHwmx?a?mhy`17^B*vhX z66??P{f@pd9^U;y>CIr>R!|El-_sjJf>&392jKW-V_*s2!Z^O={JY!UvcJ z6u-{M%MRAC41jBjV;zfVqJ`W^l%KJTZpqR6_9k=9I20imj|Zt-tgG>_PdPeM`jJ|tyjR7=)|nl zsRXbEA%*ks(nzT@A#PG&_HI_81=Ua=lFDtl?zNp>UQ@2 zclD)?X?0n)K1aB)xG*OWh~tVC$ChS& zV`eN?|Adv)$VRT9_o0Y$M=F@43UMEdU+Y z#?5i16|*7}yc0K@rEvE)E6{OmjS{PcD|Oq7y6}Z*;@=WENdpHqKaAKmwGyxcGo8+- zrs4dG<0oofZe>-EkzJLd`!LjK7;9iwc{t>UufGVUIyPTB z9m(5HY|}phvv5rMM-53YxEmV>BDR)+pKkZKmiFiG+f7{-s)6Bvj0P29Z7o_e0xMO@ zOXzlsSKc;yhdd(ko7200B3H2!e2x7Z%jYrzzL%w+8qZk{EL`kPmy3rrme((DKTSB0 z`tBOr7FQEaM{FkMNU(v@aL|hxj##+H0zix%$m;0#)3>SK8o&W0u;^L$d6zOxoyeBt zlg+*!cmGOqPCIN!7`gTlW~ST0yYrkJZ8?Etj1i`C5X6*?H;V^c4}zh9FE|sZjmf-< zn_Kj|zUMgu6w7?-ODXk)dZ2hgr5FbO?)JCls*(e&c`NgIN-3z}jq=uUu!NPas;&#l z4+P%m^Tb1C$NHe$fyKqo6?P&IixOKZoRNjPL2!nUL%31^m)oLD&S$@&9k6pa`>L(E z{Hr8QywXCaMXMv{J|1>$&Z8448b4oQ#W4rI6wYg+ry(mhw}?SN9R2X>rX`{0b~V(w z3{XzAK$Do}#euPs&G$B06Y_FEhE1By=vvq6Pl_g5wo01P9@RbVfSr;xu6da=X!s+` z*v#D8g47l<2HLeI9EhOd!4l50!=+>W3#=ybhyY#b*Op#DbKHxGNBdNJnw1iZuYa+5 zP1*4g^Ga^j#9`vEyV`rYLm~XnXd`CdB0t-_88zwU5n z87u#ITHW)Ss_E`^NsuVM!CDtSW(EsV(Er`6arxe!R_^^(_eYKiL*36e=YP`_8>uq~ z7BCRRH}lX@Xg1Iwk4ztgBd3<@w#pD9_EfHE*Uj_geue%&cJT4ioaTLku?F_Tja7P( zbTB@SdtVR;B{ZI}MZa|hhB#|(zb$XkrQdB<-*AT!Hci$~1JX;-PRqo|@j3n~kxg*J z032*X5FiPn0F6t{Y}oiY0GqgNhU-EwP~)F$o_`L*aG=#G_dw1lMn=;<-fq6{Mj7M4 zsMEzr*pw^yf?MH&%JNByQzaU=hZ4T8B2h(aNtBz4(nA~yZ>mGfg-h*U{MLK&IYC*A z-YzKfrxR^Iw=wa6>nKg73BW!Lc zY?GyeiuoK6SkqmeOlqq@wLdLzg2)c75>=TNFQ$3SX!JaaH|yAxRDojh9tz4u2oAN) zCE_-|UL1HPW|qh8tt>f`?8J~diiI_sqOhLGeFBdNxvp_AQDi?crhpgq4>Ts&LiptR zMeAJ#A|!}sTloPFP0D8uj?$~;g%=mz$sX%taf1@AC9NG$G2x-Y_vWZfl#XV}1lsg- zi4F-myf!Q5NV7J4#*EEqZ9rKoHz$66MlW)@xaR>QKH$0eKFfkX4M&lxIhW}>ywlv^ zCH?aZmlBz;jcDC*oCPfy=KP^Co+4DC4mjOP~G%a?jd4%t=_3I}Q znEK{)`yx%w->15F&58(LZ*i2@4!c)8$BDti$SwZiqeC@Gybv5c_Q6@QLU8aAUS}T4 z6Qro1Vq1Cz*UNv^mqZTsI?bzKj8dVB=p4j>^$JCPVwsOq6rT2}sYY~`JFwSr)-AvI zefAAoZfH=eGwu$GhaYMv2Gma)!~SFZ=COgRCPB#(qbc(NCgt67+qn1k^Z` z;?M=IcpvgGs@5>d`;Kz?bp?p2Z%%ig*ZBMda~Ko>~p! zz-tyAkL>Yr*3b2pJtL?;n|2|S-UT#im(5)t!vsqB&1%PY_D_v(l}SQl^K_k9BjG81 zSHr`W{Q8VFc9>E5TC(Y`MW#`QgrRQpVxUVNF?4N{yh$1wOo4B8|0{S27^0^ATaQE3 z@V7kYuhas`u^vasR+&4$3JMBN z%i|3;YHELIgnD@hK}=O|CLGsIR|%BCi%1S=v5c}q3pwed&nsAyf*1ERu|hXg1)Ts=W*}W(n-`$IIlVr^HY4pl74t!OdM(Z=>&nb_W{~o6(6Dq5 zDRmHGoaf)Zor_}5nXyn^6rU1(DwDhEmB-K#6NQ{|>$a`ysn3j@WAJ8uw~~FB^x>gC z5UmGKcQWvfVHfJeFK`3Qw$-f+%QRYT>ovIA?Uxude`QuP_s!||C;2|TdE7sJS>t3V zs)gA7XU3-HD5PIMRI3e5j2wgxck6g7+sE(g300R)v~F5COnTGH<0MIVTf2l&3?4Nj zoY0nKg~ZX5wA+67(ltmi(J1H1^14lYG_}!D*6C5vqH?snO_B#bM9gZu$CnIjep^o8 zkC!jF`?4ib)$BQ9;q(U|dwd#}E3%&vgT^Nm=V|*prfJbtYr%Li^JJ_diHwdjGzfei z?5Ps;GI3a*{f?etKwE~+ISFv2aCEz7*E|h&E-=g}XIW!z^lVMdW?iT?KuK%;txO+F zCP^OD0r4>bx@ZQZR41h?!9?Tp`UxvN7hmY;OY~2lFz#SNgIY=uU9L0q1ycj`su?bt zzvF}d5yx_4TO%$DVjfLMyj!-logAMzUS>%aUbnIY|GkMq5M7f&IRC92)#H?NhH9_s zksK!*{0^ECh1U6MzpGP)`Up9u6HpiA%<%QgMw~oC(lnD}3h8t4y1YEOzBU?0SUDy_ zk!hjIKVI#($I~Mk%h+H_m>mvHnGwBQuBbUgd1?W52($0SG~NQYmTJY|p^VWn--*=@ z`E~al4cGE@ZzZO_IpsAY@-p{_c4r6zKu_qEy-lXRIsI{4x(b+dr?Ka^8rL4^xFah1 z7(Z^&%Ha6t?dxJ&>2FT|ae_tF;?vO`J}akfi1?Vm!ERp}e*{UB)&KbY0=2Q+)q=q8 zu@ayzR?0!r!J(*)>5CAWJylKtV8r5Z%Ko9vI1t8QaoQh{@h_{-m2tonwZ7u*Rlt^nmW=uKEwk40bhR8_T&A( z=i|Snbs&`9=Q-<@4XY(RZ>HPFHM)HdKk3femXJBz^oA|%EM)}RmUf=gP}3Hg&!RD& zBDEE*d0rxJtXEF6P#e^!RsqXRTiO|dffmn;FUu9a_v`MR0ocS{>zqOmV(7mbmxEc} zPwR(z0pA?s6fG{Uf{Nw76rT~A%V(9|oK6pm{SIr)`2AkFPI&r{KaSp={#AM!e8Y$m z6NK1rh0Bd}S*B|=GSq1Kmb_fP_TRn!fM=7v+|+gE6BJ4`Y*I#u5mZ(rGa z2J_9?;+fVlT}|cC!_T`3ouX8Ht?u+i`tR#?8W$Q4Um}Zb7wBev zzIa7YhZSR3|7Hk7dbIoRq)^T^7BO0~`HI!o_?*zhD5dEDsfRh+UVeVQ7#e7dP8*FE zPA47fR@`V(Ftv@BUu}qwlnG;?=&gUw@^<4X3dKKnikK`xAzaPY6=S1HU^*9xc`^V$!+VHj57{3 za&*=|U(m}B!|1(>4)t2-c|YSeps5>sJ4iDG8gs$d2-eI_w1VXd^Nu)EL*C5?X@=0< z-;-lTiXuJ}Z-;uVYmAhQ{Dhi;y&lpFUp0N)pi`iZe=vPTH`2VFi_&hSAy?4roUL!S zKQSVMi0*dZvBE!9?pfXntslGDd|p4V(Aze(EHySHdz*9+G41EB7ds4L15l&$3ETE@ z$HrXS<0(NOkM@T35o+XTwB(J?ALt`&Frz`|-Ox-=S-9P+MS{`g>oAAmIg}fk=k1Tz zZ7Q75DiQe&GIEO*7Pl|hTBqL|UWVGN_|4{w-ipuLb>!&(}tMl*!Fcs@e`~WOsY4B=5 z&b87yHPGq!K1d3Q@cp&3ibs+2{uX;WZ6_81y=mwOd>VW33E`2R?UTT=kBSc%Hr;Ku zviI0|=>V}@hFIBc?}tZvw)exbjUP08%eL!^sNN8uL^wA8Uzz>7qN+CqC=rhB|CZUW zE3$f1fD+-@K2~ZK{sw)LdX=S@*{3py>=r7H@evXn;;^k{@0Bk%Oct*v(*|EpctUue zHnDZC5<(~1arJF#dn1C-JYp=|Cy6R6&~clip2~j7$i6ApWu%^Sto+tSv1c`eL*-cl zm6_BGb~qi2tY=x&mZ_p3Wl0};btyZ*(QIhdw<+M{;&tB|OAly-s=PFmU5kjosWs<5 zrGl)p#%e6y+2>NyNIlC%uChw{(6eNDXH3P_ng}{`DrTOno#}fKx^$)@%wEt5W^q4z zh8UU61<|Jxh!r%L%A-vY+FuL8_SoJWJ=J2O@r;RF=~T6V5ttE!M>~#a4sNr>!8V*V zrW=xhsZI-^SD`qnlmqy!XBT;7Cax40BXeM~hD}rBrkJolB2!EBWC}=SaA~6_%I{!8 zM8$$F4+&3O1#VZ=o(e<2)|3lB;ZxijqI4b z%7WoMYrrFJ5U;I~36SJ2gi^FMNi(HL$@FLRe0caMqc5s|p%J*>*hH_s2ZjsHVKysr zZOP?|Nx*5K3c1ikmxtWwX3JmMlX^c2~z7 z^a+1)R_1rDU@ZhECD!I;gEiQ=Ndj##x98Yz_w{M9HT|g>PO(rY6Kky@ohmJ?+;Wu? z3$yUiGzA2mt zs?LFmL7FK=^rZ&Vx3sDH2+qnQ(^OSUq_(1J){51tn{q28d|8mwXP}iwrcchs)EwhM zEcg0>V^t{D%41$PJ22JpZUmj+i-u!AU7Aw{O+&)hi%rN7lziJXYbm+;V+R9S34#*p zwGW2JWE*`4+oL`V)yl(ZsA$P>7RAElq!CwM9f$HSFFR_*eRq@+EAxJM zq}b*Gi#{b=`&;c+X0U4HVza)eZDpxK;mC6DK3pr0Of7>x4Vp&7N1ERAUQDJnxX6ZNd(04n4?hlh#AMb=#OlzSzg%<(u#EBmK-u z$*OKIml9)oI32?5FrDXR@}%DQfqnC4L|1>rnX}L`X=s32;0~P86F&8__|(N#0&CGP zyE^C?$A)q!otDjS+4ffChv=Jt>=jJJK24YXstb8ii+HP#_X8&LgGQD?LP z9k-9MlBJAGJgRJH+Lraa=(bi(ZKB_u*kh^j6VH8dWMeYpX{_}HPk1gpVXrS@%(LZ6 z1i5>*1Tim5LuxtTv$I_O2?~dRt{f)5T|A^@xp2SRX@c z|LA-G?0tGX-9PDGZ}MP{#rP98=uBZ`infqeX<=buu6aoigCz~M{t7C2zj=CE${jSc zws*5Oy*OBjnAr1D)1*ZOdW-SVW!%UcBAsp~GG*9Vi$HXcpky7u4ZRRi4D4y1dHzK-v3#O12Jbu2{CQ6up8)f zE|)*1Ew;QgSUMO7NIjf|$;RLOn!demCpma;{+zIHm^LBe&~#m6>16_+(|*ztrj?+m zoP9d`al6{zO?T#uX)Rl0e1vG38{@xtb1Rk$ylNe%lHZ&^mQ{_P*I$t3U)>tP0a(Sf zf-zSxh+*T<)e*fxm5&qZaR-#Xu%RGVKe||X1%i z^)sV7K)CPQ6>vr%KeaQ$b3pgu%>P-62Ww(Vr5b>}xKC^KD5kcR_vziEJ}h~0mv>AG z1)({`I738+RLkjh_09R}g-!^jTWs$5V2VjrOzK437ze_K48f_X9zYm`_E8-+Y83h( z)63@g=QB2jU6?SP6s*s9$2?F-%}Nt7zAY!fOBz{PK$uPKTF*36W-aRm$dAwT{puAEz zkOUSzIVsL%mDZvi-9FPjFO;<|eQZjM zIK{%EONcWO2`=}W(6B0|^)O269O^*TkxeU~AUa- z6xQ#0zEt0v5FFh(bGBX~&1iP98BZ{yQKD}up7JX~>}gL|+GW1?5c6gCPOCXo1dUH+ zcTd2LCS@Jzd|XR6sb!OG^L6*mEc;bfd*8-3sVpO8ob-169ou)OJ6Vo$dAGvg2?nRk z>u{dNcKCc1j3mfitFl8}liGSU%WIZq+^$up904;!WqVIpsZB#1_;8{V!ZA!x53v~I z6~Pemb|IP9_DvcW$a>0Q3w(7T7Vz*9v^E($(70DPACx*lzIZU(Ks~>+t!&9r)Z#_KV%#4^gUqGmc3RvTV3vUxS|GQF^}8L8mIHx9`L6r zL0L<7K%H;4)ZSg+E=(J#o1iRcb-3eX-7mI8&P-e_JK;FbEagmGW?0sW#d; zf8zAt#*9GaUhJ+Pu}k!>bP=LPgpJ-gPJu;#Zi79(See-?2E1yX?`~hr#g@H1NTOxY zZ?Qeb3bd~`n-80{tELiT4_3=Y9L-zE^WUY^cjC#kmPXrhs*LRLZ5p5Gr9kgMLkmFV z;fMbziH2|2(w$)x%FW6aGNFerY}Wbh?UyCJ*y!bAQ`E_ciF4g> zLF4SV#|(!p=uvd_OQ60vXa}eqQ&%yk5yx&DzaWlH&A)$1Hh#s5Mi!&@*bBPY;m~Ju zA?~Z`AY#%)Dki_b@mAZjWNAddfR(5mq#&grBqjFN+_PhA_eeQvoV`I%JDZpDF7MFU-I$>GW{W zD~;_1cKx^#UNtRYqcfymHcWG3Yg=!}5J$G`+u5abZ_QCNdo%ha zk1sZufZi^@pyY4XQY9(A&a#ivVSe$X%&*w@hqIL6UNft>+DIuT8gVAXh7+-(!Cm)} zZ^$Ne>@8}wD1o|SCMp$*eD&MqNYkls)x$_4oyup9?@ys7B#(^8pYa;FH=R!uYbty> zYiK398}&;mBFma1F71t6!a$Ffx>B=cY{U@@IKuy{djZ=3JFw{R>G4UAz!_5R4sQYO z4J8TY5`<2^pP`Dqk}hss8ku3lp65bPR!QgM&C84F_Sl#QNNlzNq+x{~P@sQ~JK``O zu~|_vG_SmvczpQjEnjku6uI3lpWB+_Fk8m>!R659~WPH08kpW&b^Ws4| z4k7jmvq17P-|0?{P8%fWM$PXLgTj#UFszrxcpBygc?FXREQPC{D%3H} z7A7lpxYhiG)8l3o9US$dhX{!Hlpb{{u6#9`@9+-k*{1bxK?FU^u@>|Nl!e%^Ov6|_ zF4HLf&m z5;xJa9Ja9H^&sXe(W>?!bWS&=8leAJK3A~b<;2N(>YeM%B(fWNT57a5GBK9|YWe@ruDZY8C>j z@@icx!@z!os~(C@-`SJEEmZkg`#u;~6Dx-ms_lXADrVj-24U;+2vdhnadMSIz%ED0 z$WWr0eF*Z%Y^BK&sqHC(N7UGzS124KEG){L; zn9Nm{RXb?C^5x)~5j}x)H_ty~7qca00wejeQxr%ZuuO zpt>+N%u-VA@v6DPE%q;VQ$TS?E9w_gGAq*x z6c!u7Zp2CRak~8~&59jE^kUC5{xoH-G4x0uI!JWxNgv(%sUWtR5Y&Ews4qLGYH-!W zwoy8llNu3fy7A2!yi5qB`{nMRd|mEDqmXvJRfjls&V;nEP&qJH6IoSSSvpf?oP|ei zhDq(oSxKH%WW^T7E&Q}CML>nb;X<_{&YufZK#Vz~m(@>l9N?vv_=G1c(3Rm4+Yoet zMryU^(u&neYVvPtajCU5Dd6R>bG%=!?(hLiyKzzZhocDxc(5cpYUIt?@5LG7L9_X4 z?NN@>Uf`d)HlAM1aRhlpAYIv#JJHaB8HuI$MBtC zQmDjg$UI<;Mgs>uLUk-N-K!l4=XD-)9+w!+ji{(=3CH-MUC}Oo6tLVyYvOHlt|8f1 z0PulkA4{vpT6h1u-<9tztcJe*N+-0UO>rwQjG0%_$(y@7(D`LnUN4X%$JjljAD*2!2>!Ep)`^2aGrtq7 zfJOvkpdz!37#uPF^NnT1fQa!Ql~L|!CZSC7MtVX}>ymhsIK2{$s|ixsU#M`F4jlE4 zI;Eb_bdd}5x*b7vr41QJu*XG{4B`ZP^kZ{X3C) zsCJr4)lYK98B6eD`Ls`Iui4{OvrFfo+2KXAPiCjs!>Wfi9Q9C6c) z)GWd4mZtle);{bIqufBxO09gEX4MG}dMJ6%%YjnCyapxu^RgCFDJ&&*6w5U7FhnDI z1u0eNVITr_p}6KDI#yZ;CqDb}jBa1{1-XxXCms=^G3C)L^ zw3Q(o(_%WLuNj#GJRgHqxMJ~RX6K{`UGd$FDm zw&EkrVW35`#1-2)E*ER`WVc4A#P{^!O*#2j+5Wut!zi zyqf3i< zYT+=iV{~Cj91im$!+Zda+;NnsUq97ZXTEpfVFxF7()H`+ zISHB$9;g>J!qrn}!B-mB)E?$pMyL`)OF1uCn$s?r)vzsSFSnAUSv19@WL!e>Hl%lC z-f~0O0)1QB2iGCX7&0q)d$^koQ3is-@dwQ^O%?#lM|bLK^t1^sbhPl*d4NG zsF}UA0FG^@^u%sn9EWyudTy5s>TjisJWH7Yb@+0YG6U-8>MUgjv@N%m@HQ%v)I|$k z+#QNOF-D=c0pmHw7&{bo8i*NdABs4Q*e2T46wO3h;DO#uUX$M2QFt>ECA~D31k6NH z;Ka|QZ5&pXgqvENZB9#h8n>!CdejDgW*lmy#FM`99a`$Ci9PgiW{Lu%xzPdO7A;3+8JlQ+BY`>)&oI!WweV zNi2Ms{>!xeL6yK%#}=4QN7~9xY>P_*rs3Ga(&Djild$yE!FS8{+BE4-}>OEV^Ju(if@-FUZ$r!D1 zqty>qC&wuq+5>kvJ>gU`%ePWy@g5@6U?(3v2p9W|GETG5x7saVM89Wr+U6@|plujN zJN+K%ETpVvC9iGKO3rdtx=JbWho-5OM%I=m1T$JMg&QlTl{Uqs;>9Q=6swj#{L5gKV*1qKANU!jjY1e2t-dc4U30HKq%>nEl#7v_oaXJ!=$dyN5ZK%)d@I zw;I{@tiLq6?HN5xoYuX%i{-bMlLUu>Y`%ZoKGZ!EL0BKLU#RDZP&k*kT>uF+*(Bfq z902Yg%jr8^BN;;VV#5m|E3bx4IsHG_ezUwUcTj0I;}E_Mf?X1Fq4hiwDUPy;L;t2N zLfPtFC^=T7eB_R|C?eoxfrhjTpLf~@WeCZnFrlcJ(@uLiBxsahK0W9zKqH`^AFp(L zK%emUYO|ulz*pX~lM)LzkFNCg)%L8vu(1h;Tei3|y$F>PP`pUAU8G%1%X$-HFNfrE ziIji8#G0RG#>j|)!scSGf`Vy5v_;mIL&%A_pkpJ?SBnR2zk*O6ePTh01;8){g>GT< zu{;AoBa4Z%dsK&7b-mDWY9+RuBk~Y-eCR3w_WO46{D?L7p5UZlovj~j#GA7b09Vcg z`F-*9wD^Qea~n4T#O1c`W+RZHdU<6=2E`6GULrhoM4N8sIo@JjN>hiQR+BG z3KqlHxRKn{KqFJe5pT~kH_{{kL~J`WVn#*`TGG3tTH0c7WW@ODbFVxz5+ZZ_RRn}B zU!E4vr%Sj<$K=~W-b0n|8)hN042+}gtsHpV_SZ)#J%2&7jdHD*qdL(wPE@_sN?zk@ zWx{Zs0Vk3NoDA@6t2S9sS!3AOF$YW(7UIee)H;5zq492M6UEH)FB9pjCcyRL+jM%O zk&=h&n@`k(`$k_J{PtD2lNaXQckWu!2`TMWFJuoD{uj`X?!M8+ZuH?^9%~yVIz6m< z4i^Y+#)_2U&z=SoYqRKl506`&)8;)&UZ_k_KaWH1nWD)UWO;C z+uB0b$MQp4#rh~G6VSFui1?D7rb;*Sc%)~a{TTBJ%QTu3F@&=pM~TLmZ`m0C)+p2h z+CujzB|FZ;uP4N`XZrQW(q3I)CG`6O=lMOfD(yr#HDZ-ykP}`7`|bHE+BO2}POLE2 zd84;y8G-&RrK~>EkB54;hd$BY(vjD!b0YJg3GYPoK>w3BCd4XI+=on3lF;AN?c%%9 z>z;Y87>@R+rH+yHU z$AX42YPfH%mNfzKiyB(G=fspPC&Gh?r952W?lIF_t&dknH}AM1MRO-FM|GhGDz`Se z)a<`U?rP&W$LO&bQZ@TVx!nGZ0tukg38tkTm0Jt@kFH)W5`8_{UPgw9ti3hcv;5Nc zr@Y|2>=G^K&89X(^${JD<^9j}Q!<4v7rU=5)Afn+rq+`3Kz~k8wZiJt`>U7D=~YR# z@^G=HtzI}U*` zr*ZaU9N&s%8fl!1#zh)N>Q&LGUfFM!60C^yp&R2%059^HQw9muLwfASX^g(XiqwwN zI1wHO<1`r(Wqwp+gpxcP-Rb2l!4VAZYbglvh^Fy)qjw#&XZpo2XLFOUm(ddr<;A6d z|H6e!i)Vd*_HveBl<=uF!%jpGZLCS3@RzzlVXP@i>6ylw+=x;T>SHShtU@J#zxU*w zrceBr$KSggDb2Xb!Nf4~ir!CYLzaQ5j;R>E4%ZCHMAHzcfb8+zS>{xFFRM>B6jou& zA8?KxzQ9VFYd=9$rHxC?39`Z4+1bJkdpd6FKD`R{$xbh4ef1kE%oFRvf z?bf~!y*ThpP?pCb^<#)ownF!4EHw_>aU+7&ZzqMN-&a4MA4~Z)N#(_XXTr2R36<=j zKrV6QVYFApYOe^Qy($KeKJGuSmvqAHC%PWaG*~@U`0qj7FCO?7ht_-$-64hT+e%`w z1gQBCGEs3-&q^CL!?$?Qlt}_@q-u6qWl!@5bybx30e7^t&3G%2p!cf=b zoblA?a+xrY@2y6_hm#v;i*aDOrdI@DQAGY-XJo{%^LOo8esN23V@9ewF$v;GwU_ae z{g^WX{%OXmTU1Vr6s&T{v5xTB=Cg+yKlUUFw}^>Hv)*=e+{^T-8y!yo61ibqBPc&z zw}r?gAWVC77?-%6Xb|3%%M46)Op)nzxa5$ShgF05A}dz;$@G=07Wa|s)A?$%h<>ta z0jxC^1^*h?`
!+l>=f6AAIdCn}AuL)uu9iOldwy6&C5{JqRsbb`jnWavp`xNrx z;B*9II3qfzn3qJR=qX@c)c7Fp7NlXjI+yg4LnGdg#`>f zsR)UKB%;II?SyY9hM>#?I8#Oj1`TC)E?FTs==a>wIwtxuX?{B?vGAexjEi)r4=d-p z8E%h>1_hmvjkxhnP_T5&DoW)Uucjw-cJOIL23+s~Dtw)vs*my`OIt+Gh{5AaXj&NZ z2>IFiu1ioO6GqHm5L)ia`nX|Y<}mEinc~Q%=93D59j%@p7so5CO>3}`oo}%jp?$5^ zM>I7XUdvOo+B22_V8xbQHDx8|%O9qtkha0gs4$rT%M(e>Cu)5>|M=lXN4(8yr%tSb z=N}tnm|gglAyxM6X1ky0gOa+iRDdr3(&20 z+D9M43eeg()`}Viu-v27is@3@GNs7Cuv?f&vXb^&-yv3l-)-W#WpgKnpcN@8CQgKh zv)%3DSu>aFxg=xNsOww8@wppOd#;Yc8Hhhl!@z1*IbO1v9dA-80;`M%e-Xb*BA7Oez>1|65*QLT_U zi#yCU?&~Ye%jn5YFScj=ay`0QJe-tR7)0J8>834>_0Y@G9OFF31v%Z~c=TpIa2M)Ufg(n zwJ6LARIce5d6{{#>*zai70~;xrGf;=GBD(=npD>aRIZ=w?Zj0eBS&2Vid_!|9r>1P z9$S@yRSh3EVfwh`){Gt8orI_M{>G4akx(eOnrQzrac2tOVaBNd5SOmA;U$2E)?{EH zoVEg>J>%EWZnwEz(k)!ED0K+2WB=aE=t++LPcpVc_;aN$@7E{(Yw99@=AebAFP9oU zemGm9eAPAE`a}zXTu;gfWZ3h|WJh_W1Y^`uEG5a*fU(Sg?V0_^ad9V*Qm52GM2c2WbZg zC0h=$9DeZp5L z7kBkd>^x?8(eM%2FuO939w#%mvn{Fq`L7Eca#aEwG(%sfPktd%l+#fILOySe|YNP=T zcVOVK4S`4)IYTh)4uy(dXN8hqKHY9M@4lnUxz`@(YuT1}jSHn0D=KiWFgioFHYtke zGtRl!Q4)QZoRS7bt)yymXVet^h_6lpEz2{u zUK?r6A51{d{f*0~#rEgtHGKpOE1_I0H0GA{vld@(uVWf(rP%wZQ7{S=F0He>yINoK z`t*Y*(&gdyZz?Ss|ScgVZ%Xn$TXyUId64vAF*hi+8vFWd{#uxz%Fa z=am3ebbftyOfR>Xk5yioxMT5|reW}Hj69QXVYj^NHO$DtAV7F|VX9pMVyNFyHWob^iLAv^$r)9h!nT3R(4NT(j%AGj~MI2QDJT*G@s zUr^0=9Y(cryIL%tS`O~~O8^zO!$+FI?WkDd%R`FDrfDN*Yng#WF`N=SbcLOSx2ru} z`o}M>-D4eCc?Ho>sJWK=pPcjTg29XiN-MuG$!+>P`|#o>QeVRyaC#4HST^-&0~Ri| zZ*On@PP|)|hQ^HZxu6a!89It0yp<-C_bpO06?-riJcgh1w)X%(Z zs)|M}niimaB1@$}yNy!xarRp}JmeE`$nsX? z8%G;uZlJNmA~iLjX7+4D@5?WpQP;*AJnxXD8LzCNQbs8xeIYp5HeEwf^F?j+@n}fT z?tE3U@h&#ovtG`UTlfcavLiIz*43KzWI)U8^l8?VwZ)<=Xwoj-4Aep>EjPLOe!ujs zG}()Is`>6t=L3dt3SgPisN)dA4$Rb=Oel3-kYLHMiWPc)x0j#qXz;7sf}%sywPNUK zcedTuleI>u%Ae=IN3c($C#ddMx~`gD-Z}%703xCx8ed*S(ok162rP98dq>g7xTAxn z7WmM2w1|ndCOyJ<$T#U44)iQTw9zQbV3pSCQrx-++evv_qqbvLXBVg?&W3bzWh@ohxpZU>0|aE-u<`?oIAjdR;7&dsS6m` z-apfkR55Xi$&_mBad!|M&Hcm^UcHq_h`R6awS)ta2a1X|t<4Ur^`D;086Rd#!z`tO zrRUj?sv#8}RyDXMxx<-2E1cc@^0>j^+OA8joaAlTo^R%N*JWi=wP6N*G7lo$^rmmv zh?GWHGFPC+|MRk+$c))@nv$xG@eq^kTOi5D#As`7WGOc~r%|o9mjEg+4}8X`CJfQ0 zg(-czZhgraMH{0HkJz&G%tNDcV2ul!7a~W3>Moy4VGSxxF3dCJy)UdHDX3kN=|trL zD+^209Y%3zMPEaDwsXsp%Nq%+0kG8V=izSpEK$NOl-U1sE{r(d!UD%s)5^6lU8u?i zc6wP>6di>;zkcFnKDKWgpH`-yXUkX#$e=E)Z2GgPC=~dmN@lLT`>vqVk!B=QD2QjD zP_I;m>QWtxJ53EdiM~RP-)gS!HkJ5Wc%Ya0*VIb>l=W2Eatj~sEKxj|p*UaWc-GQv zr4S<>#p#K8q{iOsqZxuaqPT0NDy6Z5OFK+SrS{+hScOqVj9ruXf5gEqKIc} zNzC|)S&gLfNEBV&DI!}n`T$NXY{MwwmX#(++yf!e9V@w7&?-lkFBY|7GM)q`kV>Zw}Wk%+-9CDB{|2&vLmjFA8 ziQQ|mI^n1V+N5tLr0^AtNlRX%6{0gkw6@C1(K0TZ*a(E8OUEZ-29UqNLJ{+j@MU-N z`F^#+zW8Zc^CYKkbZuQwRa;GJoO-ieC<%Q0yw z1#O4X!3f>;JjWPgx_4!cAy_>rvh6NPfFhzztq*HD^?~M9T%<5#>M*B~F-scJAv8G4 zFNSW!Vu=JsDDRaND#9uE^UBC8)Ab?yQ0 zG+k*l8YLYt8gq+e;lTDPXPi&wAYtWPqd{nE)H-n$*t&G(+Y}fL zXsQ(*u{!Ecs4sM=ZLx*=VH=avT3=`Y53fTcPF;;JDh`OEByAeMfU2X%dH90U)}yJ9 zP2zpEa~uOON4ungVF|cqD*|ZfPtI1HN^dc-Z z(4LP!eZJ;nZucwr$+d-JUea|4SK#>@^gex|Q|_aVg$$p+8AloxtUANHZ{`>{Sfn2C zD!=h>aglx&r9<_3?54Ld%IurbTIa zwoCFquTjZ$G4L2qkax3sjFJ|ekBebwTHK4lFFK^rIG2E;<1aq)GJaZY<&FT!8YiL$ zxk;+F=xCU?OF3Y5S5G@SL_1)|L}Mm2&OP>nE=J0a6^0`t2Ki7i+F6frq8cmX!IqPQ|$=?XdPB8;9iOD#uP)*3c%h2%~$s$ta| zPZ;WEo>^5171M1r#=G5^gP)#njFjx-PzW?U=X}Kx-nhR{*uk^B#c?{D2f1&@gmsuZ zws<<-FZT5|u){oI@I_%SkFML6AuM~uHjz?#Te-M4Qf7^gEvK~Tu%c1gls}OoW^2X( z^x~SeHXY?Kao0*2E!miWTzS_HxfsF*;LOG$$9+f@DQugOw50zDfqAWzk!df!T)%AE zamtd4PFop?_9YG%*>CBCnGWCM!>j#ar@gtcN@AbdEq4HRZ?91j{db#}uM_t6O!v!r z&TwzSu@Wox!mS~k0H@1`u9^JoBT7R$xd)T<3_%@vls_B>J8FKw7S%y@i02JGxyG;CL}uj zwo5Rn?Ty7B?$iu)%!Vi%y&YOhTX)&@awE}xZ2n5MJ>AMkv_}AJuwNFqqM>6}WTBf<}j|rS+2l3mTnR&APB6!RSi+=(C!FDRRS1$|Vt9dAy*C z_`JbT588#kQ1)=Kj~!u4^t$ZO7;0~oD(eYF(@z*=h?UXVt;;XiqrJ-u#|4>8NV$!h z%?0i3z;Oyb!GaY-8`ycoDvrm^N~aqRv2q*>{;}McKCx!KF|^!{tjWV?+Il_7M*%wH zRI_Kzj5yh!n@}E1IjLd@Z1Y5DLN1}Az`g*CK7{X&d9#MfMa zxbYcLb}iN>zMxjI@-UanuGoqJUKJZ&PvP47X+tF_WOxfTg~_S_U4}=^j?i>nwnse& z8l5!1JLQzstaQafB4f&h2z=hhP&~@k@%e-+U_;CI$w-AoTPs^$8oQYJu}EQea~@8k zL#tMo_Cc@1tENl+pyjZpktTUmO-as%DW$YNTh`AQ#zR_D3)O;E$7fUU$b(fU^xdLU z5w3dlhKppD34<5E^%Sz~VhdLamvPB&2rtE;DH9kfog(-{%kOl>xYE_VR za2TEDm!yu>=|R>(&B2t)_S5to>rgD;1D5-Nj-A_oc?Ki2Nc2e7B4ePP1ZOlQ{ftGj zZf_5zWXj+enhZ_PxM~Qw?!eJ9=52K@c7LGroh76qmi=zA!-@IdT;7%#Rmk!&OJ5Q` zT&h$PA~J&ZjG91}PiqG!98{IL*D$L=3rfv72q{Fu4-?Mb+R&yI5{8;bmtYhEprB`Nym*rBQ=G)(88;rv&kW$ty%79y}f*+<7ME! zzf+h(N&w?vh9+9wJWJ3k_(*dcAS=fB4P&Nb3nuis(JF)uxs!}zkohidwdzmc0?{ros8&)#V)Yq zUuG}N`oxQ!TtvoK*E`ErE|xhP6SGz>%$BdVI5sJ>IK9Mw8?Y4%4}*p1%ls>uQMtfe zjK^4m2DmW@$Sb+6X(u;Kdh5$+Quffp8A65RGy2?r74g@TK`I-aA`ajbXFaWVn0eZn z6Lk);X7JdXVh8%bTF=T6X0?M37HQs2+_SXXimPi8CP0UDk__n}%Rj+~pcYxm$YEp~CDC{5L5C(BE3pz+jfTV!IMJJ1H5zR6)WqI_ln_|; zMyp0CV2`PWTN>&U%Rz--D@C_z6hTC=>O7#i#}vZaZ2@2fgY@jAV96VpZMkx4>+1a_?hj36t)gT_I^7gurX}(G}fqS zqUAl(Fi1n=TV?hvzi3IYAWe#a8gpfU`}7%^j#l=};mTwb%4}saiFFOKt0YybK9@zv zkyO`iiKT43AR^6TU4R^|R-kdi?6DZFv&Q9diQ&Px_N#-MO=@k!e7>+N(75%I3EgbBmCZ5Y z4N*3}$+@SSHly@O?9f~*G+kb)`UNo+Yr7tW+^=F|o7{yu!PrqB=8DIAl93zs5;t*1ro3D~{0x-vmxP zA)wC|jS{1YmRVeS!26ClZ*A;~F=We@dOCcAnlv(;%nLAQf+sZ5ic4R8#W#URVq(iK zLm%3)q{N0)#Do$it4gI~X=Qb5;+bXE#FuAYs1!Z5YvRHCfUywVUV-GW_f3#jT&l zL&S)!fZ--@Gh({8m*k_{AFssoY<1|8@9Lqj&f?+>$!M>HfD2ygriEp}l z#j;-H-EZjj&(wjn5xI94IcuTw>dLc^Q}RV~GEr$K z*{8zIWe9_8MTXUGyIe-vkx{hE*(bc5Zt=8S{k+CeD50x0;0!Hb%=uMTDsN;7x9e_p zc=?8&Qs+^{*P1=XwagWgY^eTMC5I^9ZrqA`J zq4j_y$l$VQ?3^n7zo-WUhXs(q+%`4hB=jrqE|N2<4q*%u9e{|?SG+o^~ zXOs;*7d^M9D&2zy`iPX-==(HI+xBf7fRC$NCT6h18qfF*@ydi7)Jz??%F|=W~ zvAHIrw`8e9ds$o6n<}iK6&f4Dq=#GToW`yZ$rfGsWHOx}Sx%QdS%9AfS>SWQ9-JDb z{EW5uv=W~Cb(Ce+R)?v^`Et7(ssvDUR`^1oX>e!03LEG41veMq1P=Qyr<9=Yc}045 zXI05uE1dq&u*_IE?#OJlS`N35Hmg`YErPcLBIJ=7f>r~Om(v<+>9(m*FTjeBRFFfGLOb| zX4gFmI*50@y`>UM_d&%0s>59J_YliCbdY+;o=n5pM4vOM?AKX+rJrK-U|KTm-*QyS z`oZ}8J8tG)zACF5DNQ|v=e(($p#{yL_Ri~~Pezn>z|J9G=5nqEGn-|GHSf!-Tq(JO zsUQqXVJy@xFr{??Rm@>M-QR35(}9!5ZC3@u_)Sc_)9vCrdc1y2+6a|n-%>64iD;3Y zZDQuh92+OHNg067?#OJlT3=M&*(z3xMG)+%w6gr$hP8iTIs=zEtOfQ736P1t+ruuLPmViYou#`MOPvz6>6J~dzqsqlFE*AkN# zF`KG5@PY@0RzsKP+*r$VVWp<3CEQ05&9F%QY4=rF3IAU1a5uLcThe9_Y-l+l>JBu- z!wGY2WwU5Esdw6gY@5a1*R8ONxbY5cMi#Z4Wvt-3GgF<}11!=taiAqU_?)-BpJG}8 zV=cUS#aw;&@?*D)ORN=fv!!!yoqH8%TpI6|A@z=JAkR;kCf;%YSjQ^jX3Gr{c65&# zEnC%M29y)cq>45j9wX~Q5Gk?bnkL=8b7X5r2PJ%CInX&(oXoXk5$SBd9hsJP*XfU_ z#s}#?ceP5)IIwvFF%BpCxW;IM9jK@}4KzBs1*G$-ZVoYCNd?6&i7@RgL3p%F8IuWK7C1{p}7`K9;az%l`AQ?(Z|RHY*Ps0q+(G>r5Dp8nj|IBg0(bc!_h&e zvP>_n92uv@GoW375zjTHcFrmnO0Iv|>-crrn#~Rx=16h7{UF#S($i>OW50sYWTFNfC zfE&%@i<`@%t2y0{(X>hJ-Jc&${XrsQ4EWj9`w+4dr# z{w4gz;@5lp)XOQ2sYnGEjvz;%5)CEICkI#Pfs#`2QLN>;`hTj(|<>Gbw*k6R8wl|oNi%c+VxW`=2T0RN=fzamZ!@vGl4^i2$?Ru(&uwp z86)kPa6^BgMdy_7KBvJRY>~S6>)WK<&vBb4{d9llO+sP)4WD{)vq8t?3Ul zpz~#VO0Lh5H96R6x6}xb^*KTk))P)Iv4f*n-@=lD(iOe>)e$t)Ai~Nq<2%T^*+2m0m;zxg*rQ$XAX;C4Q6CQo} z3lLcs_0Q|o=JqRoTYd*MK2GLI7wC(MN1YaLRWMPg3Ia6l`;k8tXk09J%I#Lbao=HO zD%}$q4{Z=%pyLU-ZWjlu$2lS9DjN=-+F4Kt7LM%;qSJ#WCG`0n8T63XUj5X*o z>^g~U3nO2PZIGUAyVssA->P0_Q_Ka*sl``a8;U$rm^grz%Coe3*1-UDTx-qRknlu8 z-?+LAtkv#f*@DJ;6Zat)EYnEbuNv}|8iSq*!p5V{uy>KDi19}!+DBw(*-ye3|LQz^ zd+t32$yxI657pE+NO`6Y^dy-?Y~nxyH%w;q%Q%^p^xm-n>mLbnnq}3Q(=PEUV!YG| z)DhWQ?j}o%|7O0_O5EsE0E`D^jY%$-{0EJ>N_(^N!#Y8815e?WAxZ*!VS_M7!| zuAUfq>UlF7{5L@2oJDP1ntWEt#;eYdb~#WH6GD;o))nZuNn#1trIUz8X05+rLba5Q zI;Yy6dt)@$`s)ErHoiyx`tbSv`@e49eg5$GzfO;CXuRX%^6KNKo4-!au1`K)T-|*9 z^jF~)OAo94=QUP)|1T}1a1WAn5aAx^9c|23N0EYtGMGoLmH3bW(LEuUhE%lfyL$p%6uuEB#n93s!lsIC~w8 zd0Azj;X0=+c1hCiU9oibj~lX_175HB!R+V>+AlhLldYAXO@Do7${CpYWErOQ%34io zANl?Oa#w#>eXRuiw@G>Bh!zxCFyhOK$h3gKv=;N) zzg*qDJ-u8$&=x}0uh8~KN3z5O4j{;^%4E@ujM7`W%7hC#X{1-i(W2Y z;og>)9ph%S9R`WEAeF$J=-0#ZbhmtYT{~5L9BXv?wD7so%OSa3e4UP`Nw<_*34Y@h zz=xV__s=hXpnp)yMvjSe7#moNnA2#nX-tX@o=P@2hRVR8V(@OUz59+cph~1o!l!7_ zqLKd1+7-nNfeh(MhEBG)%l>r#)XLo1kLK1KNo=4w*xaIo9JDh_gstQK!^z`x`}O)K zO1^Gm?B$Rg?RLwD_4R7QgQ7HpXA&m^NvF6uPSqj9X!nt9Nu~M;$6849r|MeNXrBM_` z{`L5H`?7sy7)*WhZh3e0*XJFkG3bx7G& zm;d%3|Miv*aXvwR&*>hbvOTn5eW*?7I5@9=Pq&3G^fu@b+RJSksC70csRj{$T;8!S z0+beJ^kqnyCHXqP#G%&7>yTqTmXt*xZggn=sdJnKPaNe<~_UIr4>S?+SwDbx_I z@in}>U*3-5*W((BB9f;`(jpT?e3(iG@Z7HcAjnXEPN|y8CFxSATWRVcSZCpf{nN$zc@JCE zTAJo7MOEv3TDM#=e_=Om}I9U7(6JOf~TL z_kF$8FiQ1V%abW(@Ia-?8kRC}J*FC2jpy7m0CTD1>kEQ$r3XcaK9TU9xOcUKKdMCf z>v4Jax}Fmf=;La-#x2RZjHtdxdilE*TEoxJcj#l|`}X#$IpiaSSlD_fpWbU_COb~f zOzHv9%Yi zBAfHoV8%X4HCU4Y&76WkCsu-{z=&aUUykl!LkHs9(tPMs)`?nAG5Rv5Nb?_<2I-T* z!=guP!W@$YzaA;X*ER3Nd?U`i+rHc%J#UIVFZ=ZfaPho(ol)W9i~HsI&&86yYf#Z| zH|sTqvFh7ngr;(hWMat{>cFH9?D3DSo2}(OWW$ zve8Cg4Wp+h$$7w}-cyRcjb^T%GQ9SzVg*HKeTVnpGj2be&eku>m!HR*JD*S~L3Qb` z>YEaCjju8X$phU;k4&MqMDxZd$))rWcbXZS%P*FCO_%{LX_LleNRbd&Uw(2yb3t{W z(ZKjb*;7P+afcfyALwOFNy0lbT(B8Vn%tAn6s-B#Dn*W0&9wXm z?Udsz^hG!^(UYo;v>XQ$DTgdbkDdyXNiZWM&c&{LW?b)|X?$qX3)lxBi|ZYx#%>!& z;UdSqJl=nz0ww-*XQTSLWim!PAOU=L3p; zkBP?Z3R4wV?JUD6rDu8lX-rHi1)yCmrtc+J&)>M6uRT9lSW z!pSSsJK6GpSJHW~>Np>Rio;lg<||k9t3Wo&9Y#FNSX}P$Q=6-s zO)Sp|`0Ei4ES{II>+}fs&B&=jNH^QG!sIRpIlzh zdX#(Yjl!2k9scOVCzogs=)>%;urJp4wQrbWtPxrKd~zwZm{W$Pt!pHr{Nz&VS7qvK zO#*Zxr1g-_Sf){32?0~ab^H;zGD})TH>y}I7D2G5Qe|E4S1-#VtSJ(7a*kR!o#;#C zJv#YnTdL?72O?Vsc+d>>go=~-Kp*23sVbP4qLH`eu~_bKXwqyd)tAPtl7dS4y;$Rp zl6|XFtmq-f_x6PN=GXG}>6PnNnE3{M=KV7(W9`@NBR-Kehcl#?>C9q=kTd(&wK2>r zG1|Y->Wshk7?+jx7nnNAWRl+nVV%!dfq@1h5%t`Q_3d_|{@r4gsP*Wq1s9~z^)X@} z9W~&aPkS8NTN&lig}lQE?Q%tnVoEHV!0|NglvbY|3m;$W&q|Sp4!@xNl)K5YRMc}% ztM_E>0*{XKfNwilx!3a4$s+q23wdwpj(QCq>?U*UTUso1^bMEJ&=J@abV;Ee@Oso^ zs9b)CIEEtBmKm2I(e3otH){45;-GnKHXuYMy`R2KD>h@FBkO#>#(G(N@)>56IW|(l z*{siz)%1(UU^ba!-_4X6FYQY~WO#5dfX!{+|510}BHpvUB(yY+(F~Gf|t=vM?C(EE@TW)va3Ka^&hNOjH6Y))y}3F6TVd5lYm0^2s#hfuSRQ4G^Unx+UI|e+&L@m_A?eEE z2uTtrvbJc*gcBLdKZR-~mbu)~(nM;O3egBWPeR6;&}qG+W%FWpxr=hE^|;v4nLRvc zD|{=lOw=TNh;wGz;vh-`FzBaxR%rS6nBc=*=wiP-SR9##CX|{^%36JLjDPMID{2gx zAP*M5-EXl530Yq#?b)$5&p(wwKOI(@e+uB%wf;rIjeq;?bkQ{Y_7=ctBClxr`lv31q zN!LNiL7Hpuk_m)x*J(AR)09sCw8K}9RkPww#}ZqvQp%%dUVo)s0Gst^ZZ9SBQS2-l zPz_sA-ObULWlz2$=~u-Jz?YSlXov05PNp`VP&e4bURsf6&HIO_Nk2zFKiRSeIO z0iFM)s2pIWA&W&UCPCic)`IOVRdmKe9u2WRh*79IEfN8Up}NY`X(e@vn+uM9=tw%6x-5$TLnGuZATPI!mL4(Io-OiZjj6oe7)mk-|PGR zj^5lh$R2PZJ6P>|q4K8}^pLU9A0KpUFx{i!;5Ip}`k>UOz@WSGikpR1B?(i4BU{9( zF)x}8b%->z#Az4HvDH02-`#9Ja%K~+ms?-x!;WH&|6MrM6ozc*0s^XQOw%B$ z+*#Ac-;=H7EqY4JH7bP|Y>&o{2ra=|*iBC;5IdJ`+bKw$J?a>i^;_&3Mjo1^V}8Qf z3{+PTVIhj3;~^Gew4{!ZjWpA+b}1P;jwM)>-j*fGAD_!ND!G`*jZK4!VJir{v!`dw z1arKJC69sAVC&m*hqwE`&>Ldq`ebyMJ7ZlREKb9DAMcBS@?dbZ@vVGcYq9O5BMr_$ z-a{fGI7I`_>W@@yO29BJP4huDiMP*-*f`0Gnzf{zcgkbmcP9y^{JCRpejD4jrPkUq zA7mMO^Hhp`<&q>}ni`_iu8t`1L0&xY*+~+ss1CHrpxm9n>7ptg%5^1sj7H|UCwT_; z;PQwhRm&2(6}eCqh{R}-Kd&g0&=td#q^_0a*Yrn>?iC~S^}~-gB>6mI3-;@%2-efl z?&fiU&VIFFMBa|R68zhrTwCFYCe^2(RuA7)^nu0U$!~*Vq-6CI^#L6%TZJbq%r&rU^ZtUg|A9iI0li)| zPTY{YG}u*fe(?IM#jfG};BmYmTrkBojyW{EQ`!ucJPxM{dqMCw5AB`hER?u9wHn|rWF11jYc_fbf z449lX+X&@3u0i!3 z(4d>7W7b6JbIq4CdGh+lKYbqPb6{c3_qG+-V|g^3@*<#kySKo0THRr};{6kiTF}7j z(XMothe)+rHK{E?vh%pPQ8VIPhZ4paX{lVrGC_T_N$dxx4?_rLXm`d$WE`;M+;(9M z{ZCX9F245Y0BOt#PDeP%2s7(WFM)ecId_x9vhsnJ56pfy(mIsQnwmmwX54eNr_xW% zrw(yRT6u{zGdW?#&e(u`AI1Q3tz6@3OMCdX(;b(8yg!?<2z7oAVrj*l&WVh+pr0p+ z@$o*U?SOI6l65`WXr)f`sxT&OTOiSH=tpFX{HVOdkA`*H_1$mPn$Yua>i~1fr7G|| zjNhNpm{+w~1&ufT_zS)An=O{F(UkA{tBskbwrRhiWo>Yh{kn5QgR}F}AZfCpW@rUWjqMVi4T=DW~ zo%SDKfa(En-Cd%b!p;U1CsTIxvFB(EnBl$OVn7%t-QZBWMyirvi5DE5(>JCoBxUW9 z0fu@ljAkqP!w5#gvM{PR3xP+^q#6~MND`P-Hn_yJ5&#t=9Pyj$m7Uo}LPpCXO6MTCtATg z?OM7ufwNM?YDga)XNB`J(Fh-zdSOL5S1nei_wRA}VzR0{IZOEd9KJnLENaJhL}^2y z8xg1ZKzlJ=ej7>8L~jHqh;XM2+bA^FtP-F(-4hwLkeU{h1?#oTyq3`sNzZg%`F!B- zaPumu&)$lC6P0wNZfkvGb!>04e>*|jyoj1fBaAjLsYu609d^7tYNbtn3onJ8jr-N& zp>|v3!Q*)4=s*ee6Yll7W3|di96WUl%_zb>I@vZ*9-KBrs!Tr}R=-loz3`n{L^K~I z1qnDFoIa*^VDkp6$z8RG;(?ADZuHFhCs}$+n-G#fIy4E(aD0#!D0fV>JA3bq|ZFa(DQ6Xwf&X*X%x!UZO ze4Z60@)+$c{Ep*1S1V^ja!QS)gx*dawKCzW%(AJdekvnXOf`bYLxs=B~l1m+7C|9`=Dg~qHB!;~7{7pX+vX_+D=^sY>aSR#JD*>amL zZFOmrBGiQ;1YaPn)rt%>CH7XsmZl;%&6xVtmrCJUd)Cse+mk4)ATu6H)5cldwQ>+p zf0b&U{4{#J6iL@uFvUrfiS|KOfzf7^wS6*-x4gRe|Lk#{2d@GDzueyeIRl&?Mth2m zSbzJMkvJy5>Ua|?bwA0Iw>$|f8(SfBY{Geu$2GPStncswJ>tH(Y7X(-N~h*STkbw+ zc-1#2b5@tT3moZ8FHnwzJ~|G*y?H1Xvuei^ic3lSw=~%tfRWzOJ;q}+5Thn?r-i!z zY4IHmDwg}Tt`vKhK~eX^`Txh+n{2n0>{!EkrOK>zSN%g-O`2aywn~)Jw{qe|lSdNE z6v<*^r|u+Q{oeor5db3MP*oF&v9W<@PxQ_2my`7#ufx%iK#3Lf9Nf^kXzLWXr9*o? zuped7(XGU_jdoBAT5FUL*~k?%YBa)@p~&qey2qo|1+Ua$s_6oouBaB&yb1!RC%KCk zSC_e1Sjcl_2dCKe^$L3>V^sAxxsnCkM?n3F`4+7PpJGnC6+3uO>+D!5=vU_j(vCN< zre!YByj9+7WW1*p!vlqOc%HEC_;_)L2T1TWcu%aT=}#iy9f^)ANt&9HNx?stb3Q22 zAk_Rar{VeE=+&0VYXW2Ff>cAefByP|dz9dp-&U$kA&Zm4$jvzyVic$0pqnjSDDk8? z4aWpRei~USKQM3mf#e;s*jg@5qirKlhhK9A#(Z7~K&>-*B$;8X&W?x8e;zkjh)0Ed zz+UB-#B2$y9`9|Q9cU_EOt)I~)n<-e7c&~5eA-Np-}bmDj=Og~LGnSxl48yk7)YwS z88%qUmK$X{wAN^c1xij(>)j5sJtpO7N-VuVaWp>G(%QleA3B}VnOoT!Z1kh7r=2cu z&0VU>L?G05@ca$-@!_fg+COa6EnaKk&LCO~rMBMa6tvd3xVgN~JJO7f#e-HV$4Yi( z86ZB)bVbJvr=-l}^#sLs)Z<-G4K=d^N~AZ#^K72ZK39mdFHB>&0G@~QQ%5{g@i4=7 z>txbEhKsKz%`K*_O2m$!=U)y_Gv1z*sOmN>`lgauH0Z>0NMPonn(io5g(xt3xR?_K zlTHK;KWxn6|AE@qv82dz{_iWdq5o(l#!yu2<^NJ0mC{$%?3 zCi#?#3-}JK_`K+aPKo0eu;Tx!9^|;eegSK~*uqp#N^PPm=Gmz#j728EO`TAHl1j52 zC7CNK7HitCBAqlc-qdnArSVUiPBx~U6V5A!l9Gg)u)#BhgFm+ZK|yKMKR{JiO{&}5 zqSN0v6E^HxA4^l{^*>+)=dvUNo|kK~oGb+~O!T=lYjV{cFvFgQxfLp@0kiDc8u!!V zJ_Mt1pl8PYwU+^CdlxYD6Lr5(K}GP<()sM4!pqeJ4=Un2x1FWUfN8EtlS0SKE8>IfbPVnxDx6jSZ-ODz`j1SIzjh ze|)$)I~o!Lfv1Ngl$P8Ti!RU3wyH7Gu2!<|G;-P$Tj$e@$>eM0 zg@J1ySm^8vVwt$@aG+a+t0*)CeZAy~*Kx5(A`@Oo*BWp5Vk2S|oDZqcb8fj>_!&EK zQ10m~L<@rlo9I2_V-rn&7g?UIHT;YvHrmu5cy5u3W7&St0zID#C+*ZeJ0@~L3R7mH zh#|j>1nUZNlMoxgh)kV^1Cx3^DVZov&ykioG1%edpTGS#Dk|{@Hj>kGZZ;_@GFb+P zm#2lju8^Ay_*mGB#Z}EZo6AJDT5CGo_YD z?Wv;$W<`Hc4k9h=$+QlhY-TB?fc7X`V2gitbWHu0GN_%|2t->Pr^<7SHZ_d*uDoEf zc>7FU2z+z0OQ%BAUS{I6qg}7)DxwPy!yQ4?lVw`^+@#Z-^@5p|xaiPGIfh3oD{=!DQ?LlOv3)$Lh%>_-s;OWlE$qLz(mluQ{Q?GKv`u1;E;&27nS zCGhrtxm-Rk5C4U0elXag?JG$w;zo;?T5~X1!9$TNMww$nO|_kf_?OY*OO8tt7N_B$ zh-z+e5RBWiY(^muP5FRIQ`py+;08S#Cx~RWKv!@mIV0%pYrbnN)E!u^9Kd4E0MDzk zTg_GiuUBSaRiPlB8B2!pBW|>w_|wtEPoG-^E563CsaFfT`jTnlovPV96NzP6DR(nn zNppztHOx43x&+L!WiJkuk63@EjRRu9o<||_%7LGJ zWAvV%>p+o9w+FFTqm)y&lJ_keF3mu=Tj2@sl{De%vB82*sJrOyVY!Y#=@yK9KA@M0 z`fSo&MA7?=5#$mvSUDrDQX z3PM{`@eaLgvAtT;u0HH<9g#WPD5g3KB`O7oyi|}mj$pAfa&)Oo0{~uzA{Q;=({h1x z2b6ni)qs(YLqM0q0h3)6MV@9F4ygOGYFqBC;4Nn8n)FijTHy4M%kY;Dizn|2(BOGe zE?peO)YFzgyOttt#XM|2q1_h_;BlF3J%v4t-fJ4lg;(9<4NF>NLdw$OxK^ zW~bq#sa%rFPb1szFrVi#-yx1EZ@@@Qb*0Yc7S#{wEi&?}IE@toujInwlno9E%v=E_ zbIBc8x%(!~wy|4Df~LfULSW-T^T$)XFN;15ww__2ORv|r@6xNwj zusmd}fbwy+e@T5b_-Fyc!;LNIlwk8sx>$((4Oq>VI3$`4AyspFHz8XpZfhm&?n6O; z*kEV6GHH`T!aV!&;yju)kmu5Ic^q(AOlj9^vTQNW&Y!nZGZ1)^f!Sip&=7Ynu6Tl7 zjj7w)GKHFITRIRQ?bwPW8?&IdXloaktZNs5wkA=N7V{P%!2?jZLyDJRQZhQw^ZndI z;ycju@iC;+^og5+CXZWGH!z@L>UT66@raF_H_1b>9MWH3rkkzsRV=YC%adv;q)nms zv1qv_L6f~B_BPxEb@JL`o=tN%Y1o5XRu(z$QZ<33>NC70J`R>sNnD~K47L+6%ci*v-ym?0Cqt1dQSiN61Ovc&u+4=9)W-S;uCYKr zB0u;sk4R*uOD|G~N7)wbXrNZ&HU8{F(n+}2q6Uci+vTkY#8NzKh-zKO&R>QYkd#t$ zKHb(o=;pcoHTvB2+#s9rNb#%e)E8Rb@NfJh&IN6-yu%#3M!y2R&9tVE=rR#2!KH3x z%w2XNGz%GP)Imf55F37*hT_bfMuT}apL{VnMQn>T*e1A27RYlcH|vmiG-$X?fbE@*zi5ax|QlC=SgY>tI&95Q^1Mh!!=rG?5iZgZw=lAlJ8 z04y_5M|eSTrD`$pJREfHP>ykkqp%eSyo-w|9ScyK;tZVg6;H4kuQL*u#gL63UX)q> zH7s;oiQqfL*uaD%ZeD#p;=N2UWdXxOtB|&AO}VoKlOFQiG)NVe8=)r1d>Nb+FlN6X zZ;ihUQ~p6VP~g%E5#It%DNIZSDqhZFiMenK*ydMUo9-}iheshWCx>@Olm8j;_CBGj z&vR6nSdhS!DN%`yo1YTscDbgsk@IfJQ;T_P=$O@PgLyVyPR17WMV?F(A3fUC@VS)~ z1oV7gGijoE)N9zDjq)uP*mC}$)LO`+POSyWg>JHUe2;qj=5r=}{uOwV6(fze!g#AWO}QA1!WOAAC^-F7nD!IciTn4AMbjx8vmw!zF)3tFpq zUJ;ka;Z8(})l+d>*77gR3geA!tkueiNh@P_(UBQ#?m=qJ zpDM|KMRv|x@q^g~tJpTTg_{t^q-V_!JYYn0F;SD8HAg*VhOM3G$UUa&sTk&X7{pqV zbw5hjs^2#MhKicr2Oey#P@&dZ)$@OH?_@vUeG ztU6EFILUo9-bsF(dv|2nu6xL8k+$aEnCPu!7pf$1jPH-}?=5(N-5q5rlA9iB#}|S-UuXup0jfPGdRQKKDz^bP z`8Rm5xUw%`gMW={OXz+QAE1l|jl(8{MuEV?P$BPD)QB3aX3Hc`2?WRqs=5AMp`4IV z@sgmKzKfKM>k{uabr%2up}9Tty7z`u+Jl@X0oN;eO6xRcAPwb^=3Noe)FIM}$L zsfyiO!`n&{G$jtcT(2;?`!WpQG4&zh;xyXJ{gg*;2&eqCvi0TcZN;x)<*ZtI%&<|K zzbw~_&Ck6?fCscN+>``O2`FD1oo>#gq$ABr;x*HlQpj#hnV|GR6w_%B#i%&=k!(yZ zuQ$6CNfWseUnlO_klaAjik>Z#MqtM;T)sQ9;M1Ro;jAooq=-7yYkb=L%z>icUTW(O z1Ryy*N2)&EIheA}fq^ftB`A?yp5bQKk*=k_eb2nT#Q7txs?kKw5p5N zBU()~Q^;E~uU*D68kd3urkT~3v})Gc2x`tXTP88ZpO#b}HbQWS@hgn6I9vgACn2$9a(At1REoI#*}T-kEHW$_njK_bf>m+d4}xAN(6RT zd7flFG9x<;2M_&VETQiz5X~WmnOE7_Sax}aJ`qZWK=JQ`5=iY-TEg^BV~04hd=i)z z4E!?=m2CydysU=jUq(kB3nhttDU{sHe5aw%{RP>t@Xa}uvs^4O9$fEfCiZLog?#7;ntEKmf{H71&X`mrf$nM- z^8D*hnmM^2FndG8u^KWVQ7&&EqV12Ct)S(j5=o25Xa({hhqaobuI??ryjd$U9<;Dg zWtM^lPuLY0biGkwuq!YyKWx$iW)uj#Je8tBQy}u_Zpw?iu9eviwmLi6F!9H7&rfEt zg2x){o6R%b(2}B-=n7gs=M|;Q^KQ0%+21_eC!L1C>7i<*X?@LlDtzLOEVTzhu34zG zE%%>k?^(<5rpVf*Ex0yYircYxn(>xyjpS5YX18VGbCtBcKVsU7i4JOVi_y#_sL4$` zFTG{A=Tb$f5vA0DS=Wjt?4A$Z;y@H{?o&O7hA{NLI(Sfvy1M48bBfhh2Pq!Vn&bVf zVG)BF1;Mvm67rF9jbA0{X_oxUDltz;aDzHdzYPj-hJxMn!MK89ur}Kjjl^!0jU)+$ z!=ceWg&G}bO%;ws-WTA|bM#pwP+9Y3C}mb)$y>p^drIvUC~z;1`@@E=(p#kacU2<_ zqMobza=6(@t|)^J9r7#z$vPgkI^5w#Mr!&Mcg4y@$8innG*VZ9zE9VprYl}=@g-pC z-8@mz6C|r%e0B`(%%bkY?9ejbk+e0*1E-+h%U7yjk@4mEkqXHcg~ACd46;Uqyl^;%Vv|68WVP_;c7`L<3R&X=K1eLO(3NMT0Efz-_r$SkEgwXce9f!+K6v zB2dWrm(#)L4y#!zF2lgqMiJ5vgU>1D*e3t75-t?*%;q{dtH6tT1zTGhGzz1|OJ-Dg z0U!koKdg=>0;Pt-O%l+OM)2!l^W|bH7UieW&1*iCxa#n79A2P0idQHT%Rm)ZJ>orp zQTppIwW)&DY-0>%*U8grkAz4ZPM+49MDEs@1p0roA2ak(mQTxJA^R0OxUq^2=eO8; zO*=w<{pA765E8x`Hab+z<@8rakdyx|VYqHIV1tiVS zfCXxvSV|llZ(6ZbSnL=e+j*g8Yd8BwFOq%T8&_svCVP0rGP3T*Mwf%;+ajoZgnd6W z+Wa=&(t>?U&T)DjUg0mK>4)mVnc5K+g*GKgMU7KTnKF4OU|m2 zW%U}iwz%#UW$U|CxT4S1u+`zZmvnrHwOSReP{%I!e=X>)2Sh3VRGS!^r{048DiZB2 z;Gj158;S%kThmcYn3G>cvOTWpiZMv!myuuxb&~L}BGJCba_{>d%RLY6*_!++IweB# z%SZ-1B1xlrgkh0>7wH^Jgcv|UCcld08*Zbdp2Tu5zl;RwDFXUY@Y!nnf>|19$S*6w zDrS<an@tuObF z#$8yq%iWGn^{`*rQRGxpa)_z%VUkBYb8^WWNHb5}k#)!CwUEGMY;wuY!lAnX=-36l z&jyZh8jkU)_9dBQ?aKP) zB?t~NHnFwJg-+NN+Sb56UgL#P%7Ts_oey0dsW>1-t)2>cder}qDy6>-$@RroJg;=| z^#X%(-bP9E2pa2diJG_;Fg&#M-|$R8epra80W)l0Zl~O;LZOD8&SFVV5DkkDIREs$ z=tNj`+?btuTu3QEKA(V(w57&TRf{H9e3EbF4ddUEl)=(N%|{GXpb-kN2E^v&Yjz` zWZ9bucCQBmDe|PuKdqir_{nr~SUL5ujed4oj+yjg|BBnQ&{5H^jKacMD1hai)1eTy zL%*^FdzWdp9+LFSNKleFb!G?tWh7~piIn_I*bEbcItx>Nt0p7TBg{WlCYkZD(LC|) z$BR#Ye0})*_3`V)`OVFT^NZiVP9Hx^A0`iv4_7HRyE=gNjzfZ=rNZQc4 znqHjWjf6DGS@Zh-^X=)Fj2eZGJAdI{G3{V@^BqsAY0x@i=%p|frUH|zdyGAQq*;kx5DB*oJD6=m3LI5avnuUqSdroky_6Ki=zuT;qc$Bx8ZHgyXw@5Y0 zH)GpCldGE<#&0i=_cz&8K_*v|eJWv+k(SmFReUJZ@>(_>bW}`wll9#Wo0Ja2haGlA zqG%hXS_Tc}BXT$*0EPGk^cj<@->^@Tb`a2)hau9(-!C4se=V8UpdH_|8jMRzH2tlT z5wo64!tgCXuO((Z%C@}EYi}|TN|kJKb&Yu@oeO0z_&mOl6B--Wh?TFjso;DQAoGEQt15Fvzl02@l_KK?nZZT)zcIyXuST2FAnQ&sotQhg1uVa(4+xhUyr4%MPqC_Gc_2iT3SX3 zEIMB-jF$B+NDydNcwFNGf`vrNp7rX>RnjY=eYut^Wd3$QRhMhIh5#d2ymgAy&0nZR z^6wPG;{JO{N-wMJ`)Y1 ztfaI8ffq`#7wY2nT*n^)MB+am56jg%)1J9!c+uAMrm+=FtDT0Rg0#|U2pFPWk(1kt zixfGJSyzKVA)78=k2uLbeB97wRD~39Vp5-c^F*|78{C;-xKToEK9G-Hv~sut@0S>U zEfWpur_0`3M>eqVs=yA11c@A9ZrX6suvQ6GCqGOsL3Tl)a*&=aPtr;Y9~b&~CU21h zMoq;XJ(JHZy>rehXYd;H%w69^SouY8*C!Ds9o&ntq|QVuErJXh_t>tF_C_blO43C^ z#WkVvT#oTQdUI&=k!1%uS*vXl{Bt;4O(PxuedVDR!-41gF6zl=+JNc5totEju=EKV zR-WEa4V7RO2y$%o4qs+QinQn^A?5RA|2V0W(xIMZB4St^4~$!E2*pX-I7o|qvk;mx zWI@NV9%Mzfj~3yNH3mVuN6x*gUvMd7&Z}N(@<@FJZr?CKryu$+e9DqD6O=#N$jYpxT6;%k-ZbW5|1nhEha}O2rIur zi&^Vre?qJ1A{AuG7eyPH=tT`af1@Gitx}TrG(+N5npLbQj3Y{kzvf|GYP)RF_X33K zig%ux2q=(c#y63%A2fEf^}e-GiO5y}t<_4D_K+i;nN+Brb!6Q>90uDGsKL zyV?P0$g+m_UYP2;xYU!Jt{x^!Je`DfYN~ci`g=I=Oj)ozE@ydKE_t0t>9Em|HP8}> z$Unm{^7YqW-Z_W_^9&m;(AUJKNuAF%0M=3D{2L}xXR8k@G~mhWmLy|MqJUFeon-vV z&fD3VChjoylZ`-<8xftLO5I^Af-HukaV3SE7%dt3#eq+(;-+60*yCda>_j#Eu)#eD z3C~XaKsOZAJtd_a1johhZHs$OG|`HMC;*pd`e_!!dF4>N`pI?PC35J;uqd72hTwWP z;Bw<)tGMx~0tG7tMqQW(F{rv|KgJ+|accbUB{E@-)Sqpa?<;JDe}+-$7Yv%H z-cP}@2!2zgmp+a{upl_x=PFWh0>56(aC%+JPj=D|ywb5*YH2Y5ex}uvw9V+AE;KPF zno@M#&FYT2ZfDiR5 zltwKHFx-N9k14WI!W8QIJ2%S7o<&jv6|y>_$z8llmTEj9zRU+u+NH`^ z1^f0(a@S+$iyup@cC5c+y9V9eBbkt9bP7w<0P;Th!zdc;>;=1>$Gu#CQeLM*O6z_5c-Cjc@_m5(xjaLVIR z2U&SH`8%CsZma}%oHk;|egQor;7oDJ)%m?H!>9`_$N`nq?XXzRfaR_4H4bF6`Z0VO z(2joF=!YNCuv`Pmgpb3RJ*i!L8-H&NJyC>-##7IF8?tQiz#L4y^ zvkE^c{$_8Y2Z_ULpf$_E6PyFW23m}xVkx%Wgj1{{H>IF$pdwgZ*Ts<P2q|#@uaRsb*4R`0J4+jXWYz8M9KY+ z95v&g0h!YY);}E1%x1v;VNiTCu>ja=tSfE^Y`%BJBFG0SW~+0|LZMZm?={7EltRMA zHU?1MyNSTap?xAy}C414>!sc9@Cxk2-(}f}PT)6e9*B##~}(0$(5_H~L9~ z{0Fs@0+pm@JCoK-Wx2ylJc+K4fMVinOd|xYq|wL-8QM)L@cV}cGy@+u7$ldK>KX^q z87s>t-j`=dJyZ^=H9>Tn#T}usIGCS*V)_^-5OC=rb)r$^!`Ia#GFb3MYeRwlr{n84yiWL(d#PGww`GJ%KNHpF?A4MTTzK^y zNLyCW*a1U3mqS;+pH3glk^44J+MzG<_PD}Cik-;{HB^t#)D0z~*3EfZ&G_Wcq>{iV zJ7<$y_8JdJNdT))v7Vp-=OY5ST@GM&h8T%rjs?#H&@7nd=Vtu@OXEN3+1@M6P+_Bb z?jNwpkfTky5;-GGMaiBe&~a=$;elkJGB~W!N&=aa%U#HL(=Rg?GrLNdAYt37`<4Qo zvv{)gf{JTnWT}#O38`b|1#FcM=DP7>1v5as;wk|ONF2Vua9B*RD;h(GNN!143w;>c zQJfch%HU_V#pNU`bhlj@(V_GS1#8>ag*hV_w!Dv+am1{noVMVJ^6?;y^R4B2qOd2m zxK8KM;g5F&XOwR3p5y%Bk9Ws%j7?Ubr1-jer(lL*N^O#Jd6nOlP-M-rWJ?&^m!j@N zkTJuso}|yCNGl#g9@C_^2aFCitTYQ^YhI-mQQ?24%W}){k%pi^p}^-3JbebVgX4Dj%@$k-kt3&~EvE8G zbj2iS(=B>U@21s#p9)TZ_9e7fRd4`OCPh?sTDbL82c_L>)f!EW%N%)}maqk6j3F}Y zd-&_^eCGx)ElI*o&-J~77%8Zr+H-yHAPS{kfU5C`r0l6+1$^&G3S3*(LW6Z{>@4x~ z3WBqpQDL>eZ>!N}$kf$X*%)Jpj2>hk7U}z^3t@EZ*Aw@kf* zD3rQP)p$fwu2--EwiswN(w4Q*VBH!^r~2AuK}w5QY%?%k!+|esSE6f}u?V&O@$a{@ zz3zkTNfWN@hmGiKFvVsiRW0q<(%+#L0~urVWj()( z{qwW7wrw597;PDC2n@-s$tqqmp{;8lLLFm78HZRhtmCz1L~RPtsInnMT@LZ6vSlP~ z(-ob-=Q_n&gj!dEl{=v$gbU2m(>`j=2pu(E>^6IT2#m*enso0Y%cThDDakUQEc@jO zgfCL4grbAtS{_c;+rY*-NqT2J&EclY8zx?amSU2dFR64K^!IX$bJy?QOqYZX#f@6SVv4=ad1uRem=)&}B4=yD5kglKqmqNF#?N_U7Uf_TU3@&h zdrurHUJk|YS2W0pnK4l~@TxEhuY~Nk9WGhF!_qM)Y}t{nc4|4TMN*uw0*Wrv4PERn z#lIma5bcu2g`n7TP_d0j`I9x?_%eGc#YaWO=lj`WdBk3~9U60cD5@uI`nDpweM(R}l5Nq5@BOVPaE(I(3du%uhr3hdT*>c^=hMHpH5rvHa z)D)wiE2{d7;&Kz@JFX?#Tx>X4S76~+1+ge|`-iqS7A(v5RX8PRX}AN5`Q(LGO_|5MXyY#W)P`i;b7 zDtKhZ04b9~@kCvR6WK7v8M9FQ?OQNm&|sB_CAA{RzA03BQ3R-fF|W>1lYC97TjN|+ z8=?lF#v`KM*Ept>*&@zv(y0*Y^ZBdKMhGgBU>j8p*a)F3(x8qIRFrn&*e0YYYJhhA zA(bjV6+^ZlYiPu98PCr%KQ}(wHIFILAgEuJDEinSWL@o+OQ)uS15jDk-a2@x&xv_3 zn=U3EJwjL4_}13NG!C|h?n>puJ|}Ma8paqHIJO$Q3J!pVtAYVE!=j1Mm-i&btET1i zGiXYB(>iHr)Y`HZYW%6J89zcRW8#(a+;^70l+Xpu%D+mkp)3tV^vz0YcJ!gJQ+%`{ zb!H357S-vD74UC7a1t zJE`z5CrN(1Zk->m+pOUHnBlS?_JV#GJ2TwPl5pjJUGWRVXZb(hUHWxJ7wQ6(e+k3M zJ`{_U{7cwsk2mQ7rvC}WBptn^wo3mM<#!u_%6~y$lK=WYq2e*`vN-#bo`QIK!}#jr zpnFO@#&;k;;N_>+8Q#>B7<-IeSh0J;rhM5LrYX~s)R?AMOX4s&jN3G>q6WWdUijx{ z%BPy`mY=S&QADJSAaVHy>Jr`KJQsu!LRS<*R~ye^3?g&WVcR$px}tG^q1*OX)7g}R zbSJl_h%#C}YpS2pPJYuVkKeGZG@qtqn+DD9+{3j<{%y0APmZtzjSCuye3hBUtPAt? zxR%rvyQHgUmagVBUA%~+iaqtTNV+jX(Ue8{#g9)zYq@aT9$K zdVyDe4RcMQWIyjCwywroR9LX^zCq%;nvq#E53o@w9mI&+~zo2 zT^{qBt$n$dEEd=?jVnP`skv);jgdtl!3LJI>@`9b!EZf)e=0vu@QkHq3ah#m8XcdH zO4eLdcPn#p=8ut#Pa$_I^&mHz?YvWOoz!YoSyFk~%r(>_A=fhU1xNQ$yGU05G21Q8 zG3&OBP@D@MQ)-I8%$5gQDqh?zx1|a8pyT8w!E(?hz=_!#sdBfQ%?g+BeAidjbq)0d zsTRZNX&a7I*`PfWyOTx&tFkiLoHSu6Nq>s&+iLjy?Z43gm7bBLRFE|^^z*Ozn%Z2Y zZ`Fr#XG}6yi`xS4QP5Jq_$iI6AD9J*F>#XQL&3apgA)@Qc3#=0VHNDl!xUeHEIFZI zQztRaf9B0Qqm*TG&MDJM<^d%#;t%4dm# z21G}A7D>Oau_HQqlQ6^Z9*|tE^YsB&f8p$)Hf~AH3OwYEC7!d_V5F-W%^bh>Pyu1A z>jV{~^-Mz`(3Ed1)~dy0aG_1im7&=H*^&Ue!Np?7*|XaFpWZov=CX z=DAXpS7Zw6-D)hN;-(IPRIPD5(U*$^)fRf`c&Kmo_W9`x&tvfHLr+?|fAoDmq6fJ8 z{Q1Kb?X08MgmjDINt!3*;#$ETNTn!%#ra{DdUw2Sj-H1>f2mSxvx*fo`_WbILD&*?oC^VaYKRoxPF~&|5y$`KR;1F$Rtw412g;LcxO`41yfY_C8)@= z0hK}*ck3-y!y7F$QE9N}^AJH_1?nR@km*N?}h5{CrN^ zzJ}@j7pmW7pPYucBdxT!f4s*Lz@B0u@V%~xB(w`2Ska7zqpQ*a=pPM4}T%A%NfBofC znQCy5I`{!LRp$ALUw;woVc5Om3SoV9O*sM0tdtayrf}xr0JwApBeMv~XYsIUl;ixZ zoaUWiq#&GPSvgfB^uab%vuOHrd6?tefuylAJ*b@PB`z-r6v0}POCF0KFby}=9L2-Oqlyr-o+X{p8xtE`{wDnj z6?u?usGhB)l;JK3YQ!_Kmf(XtBGj+?Fj{fr*FR~i({PPd4(x&7n?6)q29$i`OWT5zht1`$e-gEqj z+p>Ne_z+5okp*EXIVYDD0}#o_8{#nr$+YD)`(lhoEh)5k^ov2zkw5SJN!EhI{d2R% zp@_I=rz0eoD_5QsKnbx0qmoqY5_-?2v?>V4plw)1HNRz=*}*o49s&)+0JiAtd*c^lPh>l;UFzqJheV7 zF1ANtIuz@QI|8a%PUs3H>tm&BgWlKMht0-b$u2qKg_TZB4W*Yn$9VzV8;XM%C874e z)M_n~@vRoW$3zJQca^K0NNDzFqOF#ANS7}y-L;rH*V6bRCywcBmz`lwnV3o;ismFsgyF(Ou!`DoY8B2Wcq zKqKngN-363MjBYj$5VhjnQsDNQDxCxO&ELUGrKhoq;%BI7yo_S^A+30Zd2;CT3pIU z(Y)LI#FPs42O`f%GMjpX{A_@E6{{m8_<%<$XzXc=qXjL;c&}<4O6=sDztGi3z6eY` z4om2i%VX#6QSOF7Ali079Z1aNQZUfjvY|{p{EE=iEun8}QcRLy`f@xhHb2*VQCG

4T%#$mP6y{wVkx+DPoh4(vwydC+Z|m9Xa(+e4 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�%= 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%0DioNvmIVUfw?0_4WRLf`1v<8I4BT= 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

i8m!NkUD`;{OT?#wz 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

I3Js#W}VZb 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%0DjE^xzhIiGHE)p@mlx>>JYk{cRpUrBLFZclWS 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 z z`UX5=gSYOE)ujWRb?+_tu43!npTS~~n3phBcxL;~U^>FPFP5_5Q?@Q(ibuztz%NV5 zyUW=j^dCg@$?sowq1z!fiSq4}rjlF(UKTI0VzbG_x0gt`yd=V9637b^JCk3s^T8N5 zZ1?rC@tfbUPY_rUaH{UBX^7HXNH9=xe1Dn)^1J1*A>lC?npFyix2YcC!9;vvURBF0 zXkJF)GP%5q>F*XDlv{F9aX?b)(3+1Uqf)c^ucej=ULo)_id)JO4U29CHpO@!_gd09 zZhG7hiM$VsJ3EC~B7=0RHhY{6Eu1FVPmhvlxxTl!;8oL7X)>kb!cfXRm})4U%8I@QW$($^p4e!w3d1r7WZx+Kr(|fI0lP^?l*M3dqYl@Ja!KAks zs{Ru%t02v|HFQgFWC8)Qhv(X$p~W*vf%Bm{jn-W}G3!%0zVK|FP%)K;ieUmvFSvIx zPrxcimA*uQNHF4m?0^J~r*wL;D3yyb0DvEay`?MW3uHK z(4wGPo`%JgsdZcS@tB`gIKXKKlN-6!ShL2vF|t`vqu3lfCKoU5;>_y-g%pMqnhlDJ zZ4T&yY_dmIOd??oh;9T|RtHol^l)9e&nFa%KtY8R00`-TcB2G?H%<9HgLp; zY(%+YE9*8vEy0AqM%xsx%5sNccjhE;%FD!)@-tDMPluH9zGe}}uGMVf&*gz-et*hYlW)l~4^RSMfP6eHWBfO39eQR;Rq&oj#3X~OVu&CV)bbz zC@!~0F)5Zf434-ABUx1*V0G-Ga}=M)tiJI23e1~`Un0lMaKm)?@~t@H&?w}JaSg%O zjhpa1jCyMl=hk=}LE~}+St_6wV1ffvn-20^ZT9<6B%H$Z2kkm^Bf^k?2!*geA)SCM zWrTK&?tBkQ96DYsl=1vbqr8DoP=LuU7kdU2feA#RgSj;}BBoh2O{@!%D1Ay$hGN0CNoAsO@nVVzd(h%wVwR(8 zoQ_`z+jv)-p54S_;HC(mfe8xSbKk=0J9<2a%7Bt;KLnLX8ZESo?0IW4!)vC{PauST z3$Hqa{YAWb#KAVZl(C`>_7;tAh4z{x$2O={e*hqx|g%}4Gs*8ZdfV7)1fu&t-#~=HIVJM3s zFHu6C7tyUw>ycV=$h|{$iY5!(VnrBpbl!sx__-9qM8(;iPIcoLlRFX-RGA~WppItK zNTTg0#kg%CLkL2IHA4*?%0$|RA#Ph^TeQxh`KBaEoi1kawh^m()394@rv_Jdz|I|m zAAkuKfr2o_2C|i8c`U{9I9c_C)RWGg9())B65pwXA&6U_v1GmSW@Cl~)K&@u<^c ztJ|^*qUO|Qg$EcCC%?l9h&IB2D$%|~GsUALPJ(_5yE>GMl;BjfJD7r?Z>9^2Lg&qM z3Fa7Xo=ey}-A8UnFb-ihE@i}Jk1#^%< z=&RBH*JdC3h=yIjZ5O%g^@IwxTsjc z;$kqREhf&BZf`t*nKu1zC3zP|d{3)ec)gDL25&wk9;SJ49DDqh1hqSLj{CLvuxTQ* z4jpckQ;6KV1e812bHO};ZV130+yK|tQrS5y+j>Kcy7!Lu~WDyZfU4!QOry1OuIuCahi&tFGV2k z*RmCr=(G@KpRWJGjWZ_B{fS!TD~55~3>bn<|8g1$Bx3bxHl$DVLI?A54r?f0NJG+a z=FAW$@~k_3$#jdhW7WAIXDcR3yfIaxwp5w7hv9`51s9@(egH*%wETE5=8a2A>4PzP zCF$7YQ(}^DiU6GghG=N*Ay)8{4|veWi26DCu#|x%4U{&$P}20mQfQ>7fYS@=UhyT$ zR{40?8TAHoCgv_WaOg&@`vZdtgAJUwpoPY=3I_!H=bTT0{t{145#ly6S+^YAq1G)?vq8ijZ*dqjk7R;zF3>ynC={7JByzF` z#h{WoCeO{$klO=tPW3g1iZpEyVh?rDAE1Ho)2SnT!;+!rId{g8R5f}d@13zMW#wCn zL1y&1K)V>0BpkW^cx5)TZLsansgnSsYAN?(VkZ5(DB z46*!VmKvRkT=;3|<8^98a2#AE!h9S3r2=?S`&1Wix+52M!9kgmkzabe5&hhNvIV^#e~UIp9eZ*ywfJafIvPwi`=|60HJI={ z$E`BxWAUkFOJA(f**aN{DcZq=&MF!%IW9v~q=n~(^sOn}xkvpRN+Bkp7(k+oiYI*u zZ5QpDJ$G3}FW&Mk40||~$qdx#*>Xc{C@j-$iOZ%2QiB!V{^ZuZ2fJHa5@kq}s2}2W zVidzCOOA|;XT7byYNO;8H1;@j+LtK7r7+$2u&5YwE7~k#TJ`rp$7!q29 z`*bOzWxb_iI0+mc8@wFjZF-c~gfdlW+_WgSo-$R8oGx1N))=&=kb5CJJniHd!L3Fm zR_CVmYQ#bdRwmiSqqnFGJ-k&VdvIgsFP6`+ngf!e1~i2Q%~dlw{7Qq{RT>;|rGexM z8V*;maHL8OWWS{L%-j}B$;zK6tB6ge9!^EU+qftoFB({h#h)tG1 zw0`xYB<%yO=)&-ZiU{y1EZbY^3YFY9Q3kSJC6{ZX%uGUyH}9*_KKu;De!n~z;>;wi z%PA8m6cZ)WxG6ez6Pm&tVX?JE=ggJ|c*ukkE}x^Wy(odbockdzN#dCq7*P;6 zFh{xHMF#sfX0Q;(WKzlF?(70%*c4XqWYsBT%*?T8i~ebAh+|bkqxNakOdR&s*1_Fd zFK->th(Y@qOvC{`6B|ycC1~fS#E~eUc`#0UcvMU%AXhz)VxVrKECtI@wBP_@C>*TL z$YjT@*4{xzodY+W-@ww{l^8%#PE=}x`Ofyv@pv-hlf>eN9>jQ|8#3Q}_jJm`p}xL* z+TGcNV2X-$&W9%$ z|2aDLX6Kw@XJ>aP#fYQWbO`~|4oy^tcwgudlX_5*4EYO}fM6adDKTO_m>Oa`O^*p5y2VayO3?Opml%Jg`rssno&)>$G9qNZA5fV>5@`qb{!tqjfeg|hL zrIXu-ExM5RCvo}=o#oUx_O`PUEuZ@yJrVhC%1GCXyc3vwIPnP9v-Sj zae#|Hsovysz||q&TzB#*<$Z{e5`#BsLYDGP!#6tUE_ZBbuU-WgynD_!Ci}H6G)@xedz){;6_I7$$g0xs6*KdR;kr?{Nv0 z2WA^mXvm40FHi- z4P(8WKsf@FvN$5ryt&}7VBn}_R)|4fh2*k27(=${Ith&mV>nT4%@5{0hS-eGZ}0Ca ztIR05DCm>UePbLHH)SyuW+u7Ux>0T=O45{ufh8q0M8^Jv%Q^^Qf{6Z<+NbqA+&VA**KyrDo3+lNE|71Xo^bRBAl~FHX8b*#ztgly<~vlP)_9Upo^1NOZuRN33^5Qd5bq4)Xg!87x#et z8Px&NuzQcE!qIsy_9qe-3etYa9Ry^|&(Vf8LBT=U>W;C+4F|3MJ_uYWUJUp4-u_uE)RDnXO@5egTaDI1DG_Z{zKL! zk)KyihJ9xn$&<_2unch+TC)4pKv@wDOqc1PB&lej}A`~lR-F`&U2QQax zb+{xGAtgkhCxr!czgFQiNhbU`?h3}ugED(CP6+!AD3~A7B)PI6f-pRz}i9W@Rtr7#ckT)9B`pVbGS-;-GoP)Qo zRdK9GgY#Q3?ARmgAC+yS;Ivm&p|Qnk;Ge2`o^zw)VJdRF@fj0v_!NLYkVk#mLU_SVZWW7qp_X1XFW0LJ$$SaOZ`W zNXXorHIy#hkiA+4b-<7kH1fc$2Bg7!6H3G5B~MnU;s$7J=T%?s%Hm9FdxIZ+Z4QT& zDupD9S4HH!kHYQpAgv)x?xJ81B)6sogPA|Ml6=8oD)Qyiy!jKQ84bH81EAfqt2bpz z2mtj7Q85~lSr2RATG1{hwZ^fqiew5zu3EzY(a#C?^yWc2v43H^;qfWCZ221pWdp`n zV%12~L*bL14@@b%gi{bpCry*btr38NM^Vx9k1LtwS^}-8)Nfv?O$yaJvB#53(BxHE z_C{OrhjVxm#WZk<0u-KwTNmqByP}fY9QSXYPig+c`ZlGq+D$v9)g=!tNHmoQ zVw8N{p<}d&!BjC#^(T-5sDT_rxDe5#qN}hOurY)93f|L_HIXvv{bHurl9|wjhK67l zj}MZdJs3qGQ5FT&uZjl^u#a^Z)O`ItZuAo9!Pe$0YJF;;P15$UL1k$H5AV0rM2O-L z$GsWK6;^RfdsJOOrFbGsLSn*H@VKJ%!AA>BR#@aoUz&C-cxfUCq6)iyS&@-4)+mU_ z7gchH;z<;*(A;v2AfVO8t7aFfXeNs3gYfD1Eaa?u6J98K+~^-7;RdBvwV?S`3unD* zK@2Mk1X&1Ds^(Dl$xPWfMC0uFYMTZJh6dObyL{1YJ=ADWuI6)BS5LTLdw?U_zA~ePPzQ7kBupgtaJ!&UV)YVU51v=eQ{?&JdDsNOiiECJL83V+ zRFl--+4>gpVqyt%Omu8s*da3?MB%wGY#9O!IB-q;&KPfmU=oBR8xQ0XY%tToyop$N zO2E635)=HgK|Fo6_S7W^ishI(=Kqx_n0NW*s3 z8)6Hhf0HgYkjWLZIYEI|MYk$hztW@IF_t}|Vv1qc6@eR_t1hjGjMVDjc?)}tv?0Pf zl_r*)H#)`#bIG*Eq8(#>;jR8!CdMV(g4$Oo@&0f*>+<|U^8oZ+3^kPX9eSdNZHpy) zDX%C|nA~_{4q;I7?qDkq->5`aR^}m8g>{eKbe8=t-S0D*;_j#sE?fr$79|-nJb9^t z!sB4LX!Ziudekh0!o#fnqyd)r;?dO7_AW+;xGqJwjyz=f##9e;Zc+#W~MLZ)S zig1G~`vcG|@$^z+0^KV(iW?NYDA?=z)FVsestv38aUY|^2*qdQH1?8)Xv5G3$lfEE&CoSfBuT=5 z1NMy(G)aM@()NzkQrKYI$PnpPYWV2NFz%ukwyd1*U`}Vf6c~{tQWleJp!y{c{8d%{+C z;NIoE7G%p%k4)7Yf)boRyE*uo?|_z@|$p^zG&=QODZXbCpSq*qGxNlk(-pr;mLH@tigv|Zk# zQySF;;3Xu=A5EEO0glEuqFX2Ho2-kBpRMDbJThn^llhazY~};x9Lxbi7BUjjW&>IY zO1=~u`w@jQjvL>^K6#1rrr5P2Hnwc#X^ErJS-uyUqq7|J$6ZsB{EeNNYPdhy+}qmO zQE#7gAQMZU)vj9;M2~w6?LZi>NAaT-au{ns^CG2Ed9c5C?K+amGQk5l-jG)}7ZleW zds8V{KQsHc1T-xSc2v>K%ud?fbZ#I&bN$B6fPkg*us=3sNS^?;LxH-<>=v^}I*K^t z7?o}&V&ueHDCqQ*#tpCL0s9@ETh={z=b}ay@u4W`3;k!1LYn5#{ElsF@1mk4PxIbv zFhySa*a%O0)ySu`j2(vyayphn0}%mv3osGxj=-RvRzv@83t!5Pu&JNMLZhfR+eP?qED1DjwRAT`)RUDwIee zLR`qC0ouoN7R(2k@upV91quyVS{p*3J_mDg*xY+pYMSu64P)ce*}HQ~9oE={th4l( z+n>D0ekKz!JxH>O$R3MQ%*m<+8a_0`n1Wx8(?_%#63x}AWckuRFSKFQ`al^bGjMy0 zl*bBc!Z-pp-BSg8o0}HeP7plEEff}PXQfd`xel^BnD6p-+vIk2q$PlZgxH1rXcfp5 z39uCnv#m|>lZWO`v&(Y>-a?hUz+KP&Vq!9Eg%70axZAq`vjj8*ZAt*M>PaaCk5fBp zq1ynMvDtA2iDf7Ci?_FTt$xX)Z&yRwf2B3IN4ID=AZyUq& z^UimQ?Q#(H-3hCG2MgZr_JZAqEtP8c4V5au1x8_qfpLk~K{r_GF=e@!ynl(uhBq;f z!Rb_7cH3E!htA*ilh!KqX*xvuM)^s`#7p4GL)SL+iB$MJ-nxN&)nH4)i%k~3m#o!L z#mXVw>bx^jV(e=Y83fUeJ&fmw_k-@UIZo1NA8j{|9yv^qROb}NqPY(eg3QOkLDJwb z<{fQNg<$5>S&BCO-@C&+dWGrlPsS}eFC-M<`K6#NvlV{ffSI9t9X!V3VKB6yi02dx;?>` zB{4F^Fj)dl(?eMb?UJm5j6c<&DB4^kP}=t%ZPC5Eh6{GZ9?yjrC6S`=LtIKl(4VL8qX zP#7Uuo+^bniQ?2%O0m;7b<2xP^^npTm|;ViMdx7gNVOb=l-5P;+PB!xpm5kzpd~hs z5Ec!4c-d$7{-mCNG}tIDpai*vJDFS1{fxnx$e7n5B1?EfT$J7J+sqZ2BC_FU`AFr( z%d{aOcU%ZZW{PdJ2#|c!Cv&VU_)ddiy*;~F%NHaknzu5O&|XBT;RQEZ9-CF52;LEG zVqmg+7j+zXYf{D68Tlg4`Gqz3P#5=hvKYWJfkP4#$TInHY`fk507`l#K+o!%2`JUd z7R5mhE8P^EB-?o1xDbTta7IRcrn-z1DR46&LzMV^7aEyNObk)BK0C|Mt!r3QwgP#C=MQ@?C14sCL)~Bu&JZ((1$A7a`Lr+ znh}%}9X)_0FSh5ryYij)9Wtna@=?v21scJyAnrX<+c-;Bb8D%a>KsPn6N1vnVKHpe|22FDVc$2SO*L<1kTg+sT4`FZ3wSlo1_ zI>Z@L1SfNB32F(htkGlh;d|v!r}GyHl;HHeW#S@7km6}~f#DZTN|@Cdu!L5k!iT?T zh+e8K!6iaSs=fDvG0Ep+)h2I*88$EmLG*>2oUw3&7UUF)5i%T=e6b_+mZM_o zO%9hf7H#-585Te~pp#a1Tkxq=i4N*q9_q>ah@WUx$za9Qf2 z@>EhY44Xb>S2gE8otFXCHrOCYVsPqt%S3?+#Kt5fO-bIzDYa^0lU}B8u{cCXBpA)j z*KxsV22c8gfS8SP<21)Utee;P>f*VL`-a6lTfQpA=L{#D%0L6tuDSUJg(Pza5RDdF zNn$}~9K3ZvCCBW-YL)d7)lY({W)AkiPdaIiBS=SzqxOCL=&k;Ol7NB5jJh(Jk@Qlf z*cK>7!lEraawf=e!sLzO!v9d%V>}SkOPO#T9Fnmyp21n1Rd}woTEHJssVC}DT7h%R z5b50fN|8QzXdZV#U zeAJ~UK#a>B0#OQeZT4{ibdz+MG>da+lkGgV5QP?~W#-Yu9cXgQ>Y)QgjV@z@BO6N| zN3q%{M+ySTkrMSB^L$Mm(y%>;ba7GQv1wrrlqjp&#y}}c{#cBx3nEo7FAyW6a}5iR zT6uvMvO>u#9~2;TZe5iT6gkXDqDFZb*IS)jb@L(kRGGo6bD59~}C0d*rs+ zc4M;ykdeCP4MJQrCgfe0P#x#J5;IJD6WX-#A^d`@$QDmaoE{dS-3j7FV?uuegJaL3 zQ*)&_dr}V+!6JGt&>l_sC@QQzs`GnC>X_?}JNwKb=pQ9bD!EK6kS~voJUpQjeY1wEM3@FkY&hE6UTt(?Dec?ysDbTT=j*&`Bhw3HXx zmkFWg{rc1tzH$#7&l zm|71n7XI`Dd44(*%lIM{m~OC{o1T>oN5%4C514w1bFx>_Q=L< zR774r4aqM@Z550}-(I#%NFvjS;TmSmM=l=J615^}*dR=)l6T~&U+f%r~iZ<$FTM!R6Cg0I=J1ed0LB z!6oXv*=2e{c0j`J;x5ut7=W^!sUhCiBb#+k%y;gf2f&g5hjN*njn7~<0t;`NLeb?E zN~g0xV&2UJ>Y*5iY!8?+W^7}1A|w=m^JfQDum+&|Hs&JC&IIlR*okuFqoy_nNAO}n zVUt~x#)%rNXA?wH-r!J~>cgmE?%|;7jY*#h9dtSh|4c}tsZE`c(hyNcxTRo-N3)PK zjP$fNUMLAQLhGzO^5?~&^IG7>HsM8eA}}k_;Vmw`ze8rLLPK1};vX&9(zL0I8yT(f zfEMuB4KxH9^NNakYU^Nu6rW(HVP{)V5d5p+>{wLVitzQL=E57NvSl$c18Xi2}rInV;(mXz- z%KBqGK-6Xjxz&%uldLZ%CL+Qnw;*E|E)hXYycrf2MG$EhyrIbX)WtKb- z$E&fz27=2z9C7{wl4MLsHn*D$7ZH6AcqOcls})+?3^8A`aPxB zSE=)4C!b@f5pH)caE+&9gW&?s1q1|I>>gIkh=iekK;$S$*$=Z@Spji-OPM4TIy@}% zZ>o8VaMCRtXel$O?}?YMhm)a>oV$3l1XD#nIFV5ZKFNy_ufxxvw4dWnHR8h+(99?| zQd-&_sE`I&;dtZ+bC~c#g+5r|90_g~Md*+OS+gY69?adUfX&drH^z{U{^1C*m`_k0 zQNKVtHU40=-$ZxJ=JR3aTf3N_4G!);xPALz|D^|aUq0C0+}|WJjqm+=!UtE1P6t;v zl0I1OJxX|t<|&Bj;L2!z1=m(w!JhO8i{0Us8SIoWj$Ii(a|Qn;V!ABM)mIVbdNE87 zTl+}h;3Lawc5!96frLGMc>wALX!iz}C*s;x$*ZQ!su?kdZ-KR z{u1}bD%}}u3q}k#McYrGwXD!UiI6Ty? z&=CoOtX;6{0hLO_#LXs$OS%@QaWKr_VQhj06Pd6L2K|N+kV2=ySRncI1Fce&le6pB zBwc0hK0g^TzoMf#O*6`6p9pXX!ugf{)&8T=VwGa*hsE)XY}OD6&_c)=PcJKG`A6dxk~H&+nS)4G!dZY>_9ycZ`^oH$7M^l-y5+H*a| z9<08*{X`%h)m}DZ*(edaQdi#XWN%zsLo1nv-Wtvz|_l8HQ)Pj1Jj2`3Ali z-Xd8!Sa9}-$H~aBxjSE^6bT4}dm6CaGpiC=5l@sRt{Y4!4m2>Xi^UzZ>G1Q@UMkms zgMBP6S3t8&;KGI~nOG8f@>Ki^(#Tm6P7I2dPU;zxwKx0E17uwc(iw+?_wi zHTE#8>+-ZT5qv zU}c0ok}2$-626!{j#Jn;u7Z0eQUR#vP0=xVNRgKVD54V{XHX2K+SwUB29)4Gw?bc+ z7Wk!lu>SdR3gP^;n`mqmR203VM1Mpc)7kk&JxvvQ?^K~yL%i&kN)R?zQVp;=oz)}f zT+8m!2_zh&K*9$Sch-faRjOou9s zC1*h5Lo20vRv%RtxLv8A6!b^vx%!D}e}p|5y!D%iYz~{IM2mT}7$s+OL#&F%^9r%i z&0AP6)}tKaJxZ)7kLo_C)-fjJc(frIkb2RSOpW@ZAszF^a16Pi@=QeCANeY)1Vbu4 zN9oER9l-)41w!;hA&y|R((Pw@`_U03VLqAh8JkqP=6L5K)h0*BBYG$*5hO($K?9TK zo+hdngLazvBdI|ED5L}B2L zwIR;6*M^qSygy2GXdtK7cgdYY5J$;n$Ouyk95+g$vQMISKo}HYGUKFXO)Vcr^EvJU zPBsZB1#Vbx)Y->Nt|DNz!^pgNYP8861(NE7^#|u~zpifF6Oy-Yf z<3uhd{li|WIEW7ALp`d=5&D+IOb)C3WIQmY?j?i|?A>K@#R(s*wG+V5$kOA;P`Zt= zzr3hq<0rugE1cuxAU2tf&JQPv<=b>4ky8-)`I9=rw4acaX;sZ2a|schPR?c+pA!B3 zbT(d`rlcC|AI5N2^^fMsc_sX(bo{l}$z&E=QwVWl6o$q3Y>|-2%xdf-WL;CooOMYa zQ?(DDWL-kLo0)-NPa92?R)h(hX>UBgmZYORQj>|Px|&Zlq#_4QD#! zQKALUPx_PIX+poi{be#`CqtMJCHm_5Fctr>mt5S=hiAtL;h2wc}8B152)>8wO#1SU7 z36JyiSd4QY$)Z~h&_~0_gl5O-iRp4S#6+l$M05C*2oN31kW_#vlzp}CY3O1HL0?Q4sQ}d>q~Rn{ zuxHhwZXYG&mpn1gOKlsRRcUoFp0TUf##wcmUVLD2dpJnUt98-)RCn;ysM|Zi&IO(8 zq8CmRk;?-4DH?a4n)VYTwTW#+58*z=e`)s*uhHaVQ|*2caXEPEyqi*E8o-qDLj8KM z98B#2!2771nB{1cR_OajnBn{-hx zX3Nz02<+uNpg4UXOp9}2I*|RagfB# z?4q1$FOW#nJgsj!n`3#FYU(tYCZQL(ncjJK*&j?c4ic*Rb6yZVbC8&aK}8R>Wug~4 z$0{JHZ#$ogF>fuC?|tu+!M`id1WxOCTEDJtyziQPe&|h*hf54{pTbhCb1B=^)!44b zY$PzW0qtAbCV7&^wMkAW^o>33CH@;p|IlhS&5|&bO){p8T%TT<^O-bf-2yhr7Z|-J zIRZP^Bu8l4nr89LQ)^Pd)$7}gUb{4oXD{VQ3z3iV+@*0mpXBiDPt*Phlhaih)0G+8 ziLSzv7FyqYG?}85#b}z*GZM`(_;#U}v!sP0u;xrlMZl7-bQ(U?7Au($426+d=W1-} zijdgEs-_T+ul!cSni6+tqFLn3SY;N%_%@a4jz==(^JOycnOnwyvL*;EELY&E0Y%o1 zwFF20HL;2OYciw8ev;g}fn=OyWzX3}X4pM5$V)kDB~UX*tTp!FWYF8C_Jf(Hwx7z>V53whwLMTn_IrMz`5TTx@pjOd zfU93q%6;|=b>U13RhdlkRbottl~+vkH8)B~D{I)(SF8v@^#paDLf~!G2m!IKIS9O+ zvLGO6vfog=g}Wn}wK`Mypd)?h3hA2uPY*w1*YUBA0h5OK(`X75OWBdUAKEYp|&QtyBaC!XBJ#}`z4jU5~gND_ZY z2^2GxnM&eyC3nz?bp9{?H+)2Yq4VV9DBCw9YD$I(21(%)5cW>z_55XpZKXQUY;3&H z>2Oj{I)26o<+X-#jd(!lSe|Dch3H>EfApWE?K$Jb?-QN7_x5au}fOQAAo%yjh$9h(Ei%&-RdI$3LX~4RV z{d;}r1J51x=X@Jw0O>nc%3TKWvw--iK)eN0rc^Pm6X&fCr&febaY{1zDZr7NN%yvK zE4hx?PCCQNYl?i$beB=xeKtz+EkLFVu+}7z1*A{*kZOh5SoTZu_+~;95!|16g4wPV zpEZj1s1&Iy{3JnSk?hN(ar1U)*9vpHHxU{-5W41MF1G-MV2w+&)N8#_(C8`~eZsZ$jd5a`D|uQ^F^q&*BLZg$VoT0jVXSB(OgbSh_4kyJW=uSLZo#f+T0C# zCkW#lKcm=w1TW>0R*Eqq?tg1rs+pP5lc-0kNrPxaCl*s*h*puCjpzOKjm*`55J)m< ztk2bNz^^b@4_1xeOG)B*YE>f`#!3h$3~d=!j*O)(2|%@e}x zlE#vEHTL-JRv#e1UZo!?&B%^{_FxK)9lgxas~!fC2adK#Myg$P&5vkLEI@e`a*|mizXP(_V@$k{vVg{6 z6Bozpsjv{z&+>e_Q$LOv)Wx6N~DR{AZBjGh3MO!caF5rsn4xRgtM>^B?4_tUkF z>%+8)_h>!;d8pZMGMIXw>nm8ywCNj4J?u9|SnZIWEzIvfXpnB6;*@}WPqSUlGCdG! z={^wPwaizh9eyEjz5zIU7q|y{WNxy4`r0!gTyu#m;5|&>J^dK*Ua8|f%2mdtl8$qaad0p!m7&IxQ9{}ckfJO#M=IE zS{iNcM_60941u1Z=Jx<+j}!S`5&3bJ@7)NwE!OqSjQ-u|zwQtgF2jd~5iK8dErBCH zcz+AG$oowpaIDfUo;6F|Xq5X>;NC9a20(#hCDcrAN&oS(pmJN>!qk*ZzypB5u@YKA zH~IC7M(4{uK68g1MLeM!3-$>&$WY)|DR+gkd`YmprQovdDyASWF9v9$p*M5iC5m?)Dn$I5XEL zD~GSk;jX2IOY60-4UsqbTDCj5OCu=P<}IltRbL~Rcz5L#nyRp8dYmKZR~K-@?D_(> zl1vq}Nna(XYu7lGYV|8Km~H1p&t~ShUji9^pJ2YscQ}QW8WwKjnRRLJ^m#$0nV1>e zqA70Ux-5*~&(+bQB3&oibwRr+Z>-=EqTcW^=Iz-!THCx8W+&GSnx~1Um&(Z6G!&P{ zC0fu0ToqIlW>=}cLh06U2bjfSf z#Ff@4PkXrhCRw(a8`o+2(8C&$!oE?UY`X3TyP{oPXrb*B&g+~DX! z9%1t{7J#objuhr5R}3CKc=d6t)35Mw*IcKCp7zTPs+h&Ep=?X-^vf)oT#U>ML3)C4 z4Y;Kh%zG>@y(gCdYdlt#bl2|&+HQplN)}|bI6Ml(GjOaTt0km&F%sSH#*MM%s8vGx z(h#ZTh*h%s{1Qf@S20QTLk|Lvf_>zm00YM=rCHj=d8b7#s9_pQN-3{j%!u+@Bkf+} zJ)xHmuK{|8hs?R{RNj`Kh6^W{33Q+>X9*VO(EPM-l&!`k zn3=)S4)$k;NVSHzPOQ&}v7#buj8!PXPYD|V8twehj`^qgXhzEs%rKhk=SuscpQ?DcM(#1U=C=k&HL-78ilv_8QzERkHC8IY zw**+NkqSM>Ckqmcn($UjqPiNl<^tB6W2`7+>%{sbgN3u?y~mudH^o?O^Ht~(-)OML zu(?C)3Y+mdOYjo~iS4jb9b!|gk{0$2F;=Z9uM_PP>S%3itRVHTkI`CUmGt(n^RRZS zqoF)0P!p5J{bEUP|5^{zyrs?ZGLI%aYejt`iy9SgbJT)X=`|iIsV3{g+dAd6Q%8$3 z*BGrZ@Bh))kap+z9`rji-1mw%>-*JFO>`O~X8N*sVqWt96cJ|)NhPv1?9S)ad>3!K zwd~b0yJ>U+_WwG}dgV2jl?)P{7Wh8_5_A!`*P5inEyM28Hr8fe3s@#|0}?( zb=+&k`kxV2>wIO(k|gDS1Xyj6N|w6+-63r)XSiURjlKL8UeRod-KOO^J(zTepS6Ufq99;I*yA(wzOjIJ`CVEG4A>93ZvM zQ(^A%pBxg-l+?4;bTlYge*MQ7E6P}7tjx$mC(r+bU|}b09W&d~{=&Zxky_@d)V}_m zMM6D&99H@NR`71&9kvr7w(L1dBh0@MBs!#=s;OD1-9_^+1Ej}0M*oWl>v5LgKM%0lB0ZbwF=(#(&kR!c5Jx`qORJ{6RB4?4r-BLN z`%6F@%Svf?>7N9svJAle`28)sLQuu#b&ZirRwqAPLT=l?6tuDbSaI>f!lGJF4^u$< zM>Vvza$6czf5=Cp8*lD+5O%c4eEZQRF{EN1?0gt~^Yu+Y~3P7SSf-ZCXhqx|xfUemZ$_w(S3dtn4Xt(FGWAIE`PU<~ z)>xVO8m;jDnqp0+7wZ`H3P|4@B1M^MJT7D`VCe3YziN>1)?RM`T`it#oVB)=DD5Zw zl_X+&nJi&`PX;q8*v6wm$%gAMCo$V1mUK9ONfF6z^YN~p{~{xGtyyz40c>23rPcFa zh_Kq0V97G-&l{}bWju}BU#4%S8&Ccm5P3V44LI+O3+9{6OSPaU__GF=4I10lU&)U7 z&jd)gOtV+v$>i~|m==ahu%;zjY7Kunz$JW^|`n+MkGUZ`1upxUOpXSoeYdcowy-6qU}@{;>#k`vT?|gWmd1s}yDd ze>B3z5znJR`<;{m;&&wx+m>&sZ~r4n#Eq!yYb?Em-S0n~MvOAq7_rb^zSAMf`SbOi zoz3j%JdIZRhYTv6b;4Hv#pW^g8|THrtZA-G>+e5k@No?_4`;1=hZ5Q!sG&s_+IXCP zE@K@+*Fye&py`;&S-Y`3!qL4Q%unzJ@E8+zxGFq1(ys3>rQr7^Q-F(e*P4RsnK{xk zD1+Y{rC_t)mtw$``&=B@_^rCQpWZ*Z*tix-J8r)xNHUG?rhYuw<;n3t}=2YGuTZzE&C(k1w_7ya9cAF+iD6?&E$!HTEQJ_murXdqYJQu+!|g-2C*x!Ke`~TF zFRB@NSR8MjMxLX`k>rYMAKu*HO9!OPAlQ zn0jR*t^lnKGL7?C>f?WtkLOBO6;j;=?y{npaNANY%+|g=k%Bs8V+k%G{>B8NTzl^i zWQ`FEv+m!Zi1ZW#*KBGL-n?E5bHiV+h<3*E7W^T+e86pF&^pYZcqv zgkL$iHdkl1yosu`1NUq4=xtk3;Rb?Vt*G0)@olmh0ydWD0^Y9*@U(zimg@C_JpW3I zr}N*BvpoNbB>wv3xukXa<%%sEbZe^HLjU;73?3=8v)xrwX)3MleyJj2g^?De#(iUH z-up{{hMsuFqZ`y(v$i(snZAhju70tPb#si@Dcg)OrMq8$ksyszie(>km6eixFfuxU z__fHWj6Yqmj2^K4jj*Nt)}N+m=E|x_G@46cMqf?V8$UI|iVCqYR>=n7rx>hg zZ?|p!N|--6gV{Qtg*Dz!Qp_8;6?r*bS1p#bTt6|1*fx))KKdsR;^Bv3u|gMivaWP} zI?{~xknY+3))H=%;ikP!NsfNJ#if;dHmhrGFF!7W8D+CMW~M)&{oWsIF=hR@#+(*V ze@qs&bzU^9VU37Spf4+clu(5JGTeD`sK`x z^HBcAHD=T%(mZktfGf1<$7R|Yr?gb5-;i6PAvA;=KYr1t57PaY1&H)k_?_S~PK zHg2({+4naJ=IzM@DxN(&JR1$IKJqH#Td6ER7-O}~SEdJ~8#6!PW6>Nb&e&Q@@f&Jr zVb+?KVo68#P_S@22tTBYqwkydcebOUta@*GGnEj&afz44?AUoge&Ai!)ZS=TZviq8P*Jw+wuT+6%_*2H%O z1qKI&DQ@E$EUk&}5TXnm`ntAzHts%b5Mtx`rZri@zI_>XTfJOnZcmn*FI#N8XOOyd zp>bK4<_2G%!Hlxm95XYorMuR5>XIJIN->qPpx5a}_N-Pig^EpbY-^siwYoH3Pi zH>90D?8d`?<5pc-$$d2tcjgbP;qc}0U{BFJm^jO(d4%=R>`9HS;89QaLI7U%iO`C47E1Y>&6@B zvSe}l<%BhY0see4rVgR@{9t3WlBVj*LNuD)_U{j-)z)x;gWQj=&wEdZ%hvJzdprvb zK^y0`GzWNhh`KqRj4wu$<$N7>&81R)7jU6ug$^FQ`dn8^vc*zsGL7Z7FzfzO!6nt- z8rCf(d+ILF zxFy8Tt0CSRc8}Zc6_pS_R}txCfoB2Gc6=ykUp_|>!$US9VB=aW%t=36@Gu7KEe|)B zi<8N0u(;quej#Y%wozK&d{z=Q1Zu#mR2vo7?zBYAj1jc9 z`3#GwPmT|&nJwNBcC97*>540g8r*i6=)xP9Y(ZY%p2CYdy2f~!`2_8=y)D4YE4SB) z`Dr=Kmia7=!=Gv}<-RKFeA-G)L0aD$qPdN)y>6^9YAmg#eXmc+;qKmnx%OfpxZ7)x zu1w!Vwy$r>;jTrtO4jRd6l68#{&?LA`H6yhZ`g-E)Euv%yXR)nK(|(@dV`?eU5*Z` z*}bC>H=3L^ma4+O^(QDU=?lygJk(9LU5l0WtzVzPj0S?ni;M< zFFac7+DfOF{&4qtN&~BbjhlAc=aT8N-bOm&I40ak? z=CXwQ-%7YG^IJMY^IsMB6gv#imSt5tP0P46C;Tsp>0h&Or&@ITFs5iX_b!$2e^yl7 zj@zU2p<)R8_-pn*m2g|u>~k4?*89*(|D)jQCE;}K(FZ5v%B$d;rX)U4b!TnIoRUWN zKS)aSmD!iha7)P%`i_>Zsf76N(}*ogyL86y-w7h0(Z{Y`H5(21HlR$`(Rd6fVgK7p zu%m1@#xB_a{u{;a4L!*U8*yX2YnidEipdg+q@-GX|(-225FNf|Jc~w!Tqgk*jFjdjlSPu(u-ERIAeJlO4GNy1J{p`qR;<5a zu-0UKRvJtHI$_}{d%8=QhP7Vx;u5FA;~}8AJQjM(zm~=fMRKi(->ZmvI%EF$=O}+Q ziMR%?H~UMLZ-uDlZ(e;dy$bFIz|7- z8QCnxcr7j4U@dc7S|$B4#vE33M1$W$Ym1c`2|pA0`=b`Crf_LogQXtqyBLT2=EvMu z{*e%=ZC{zuKhnv;KMbU;)5C*JRl@Nj!f>sL5SGl}2j;lbiN0k=*G{hb~f zHM|5|^V%!O%kMCFxZ=3Nr30jL!6EFHeQ2p~`RxV~hae}j1&TBTYh0Rz+gKLjm>M^Qcjm-4wOd;(wz<9q)E=L^gUfxiMB| zr9dmp-{4`jZx5wh{d$80yROIGkNrA}1$C?0Nr|saYuvY#W-h-ri5Lk?cn^18Xong?ebST z$@R-Eo+u{Pkh{W|^vfc&HRLVRThqSLFLh{mx1g$Jt#QAZv6rX&yMBqoT7yKEYU~#q zB)M6$UWCnim4fZXFS2MdvBi~_c*eS&JeI5kf1$zK?C~L3oli%L%%(M0Li`13#Hjmf zideeQ>*q6K)n{{-mN_eFI)9#zBm0?<8QMA-bcd}+g%a}5Eh0xn+gM&pW&3k{fv10wKQ#aCETA< z!i@^HDekpGx&CAiH-c$ie}#F(Pf{E#Qr6L{6p(&mh!kb2Y1x%_?tg+J-C1{!lF1$2 z#PF>-%(nR~%x-_YV(!ef_Atb^oGBI1eq0@`W!_5d?#Eg*twp?rVCNDob6LXuF(urV z`7N!(KB~A-4eobm$JK)Nhg;^egm;m`Yn#7Je@6Qp=MGQxx~wV)#kG0QmRU*A&HQJI zNM`XNOyj<$ppQ5;D6qo6fhBELNE_#^bhdSwMUASkF=}aExKLDUL)cP2OIY(5E6P~Y zIxNl0W{M@xRYaL;UV?>r*+&ATC`*lzO6_|pNHC^Z->uQ5UGIs-V+$z0u6Nw4b|Q1` z#(6Bs$k<}4#Ya?ijb)^;{u;$tQROwoDwXBXV!5lF*Ks3esYiKaF)^1QOLcmphC!o3 zZCryT)DNdnaRhnN{-))^8HYiPx;dxqxG1BIYqWrPl16MPL(gXrU%=>h>>=_Ss^JX? zRJ-O574NQscH?B}eCkm-J+ZN0V<{_XhpIAmnCZsIrBkGRLY_=vc+|EZd@eJpJcqjO zG0ON9$2j*VxK?kXHM)Y)U*p`C)?J4#9dd{b+1{VvPurGNSa)@Em~Gou2J;5W`$IL% z+SS*{c8%7u6rL}n=-}0*sAU7=Hs9c|bOO2tTfxHK z@WTXN+x(U0*RRy@!lAP145?(R{(!MYBbb}q9*irx2jR|q;I7_mhg{mh*(YRrzK>Q^0&FgBfMBIc8>sOE(p~2+SMH!LV=c0L7Aa4fD$a;;l4dl*y(ovUL9SW&%+b z^7G9xJN>HvFT-w|?~FWMLEUZ@u@jfLH$Z+f1OZBgZAo z7c!Ww^O@18l125`8O*h>luMQ$UzsKXE%~hIsX-QSf>yYSDD!y{%R76G5xGk4fHSaU2Sg8P-)_n>2`7&~p>88jf zd(r0zx!ZfRoMxuSjZ3(McD;rcWvwwooQ3b1uYd)f? zky`c`nQ@m^Q&&AS++Rt%BB=~EFVjqaL6!j<9_EX~$ssQH!9xhq#AdCC&m<9B%S}c< zOV&Y88$`a3X^oOoSoOa*#9WW;6f7a03h>q{Jq3xq5}>Y8ehQdhk-=;$K_%_cmmAF6 zlL@+3JWr*U)Tf>_YTQ~%$X`}OZky-Qtm!==av{S_$FCCVyYr|~W}Bium(he=MGx_= zH0loD2y1dq*L8)Rf8&}irQu7{X&_Y6$C^~Mx9P}?24qkCB_<7Zv#rK?ElKq|4URQt za!u;-zWeaSHRQGSm4y}8J8H;UrL_zPeIIUM3KlLcPf#FHk&3p@<}k!5=euu@o3&jXER=(RseX7S+A{!*U zQ1KiN-hr6R&}Jgj-NtC8GW|?J!yZ5%a)Z~s(Oz2P70UE81dkVx(lSMty9U(Eh)V0L zPp_c@ueH5Zsa)TlLToEFnKd%K2kZS4W z^(pk0WnFrK<#i$6T1&Zv``Q9-+wv`)?|CA`ZCkR1@%lA{bcox9M8&&zvRw2hXYpZ% z#^YxJv6DuOinA%=#`9(>^r1KPKlWPm;GND7;{PZ3tJ8U^UmY%w-?^vG4p~Kin{nvx z3!S&#cxpiJxxJIN1^M46;_vtBxA}RY^TKy4-!(%czV9~<{Utuae_Q8`OnI}PsdshW z_SQFm{3FUNKc9AI(3?%>lcU9x@7{gSlec&7z8v_&@j?$;3BVKmM}M@_k-WZ6*$D56 z4!yMVtp@Gj?t|O65B6VraQEed?alqLpx^uClTTi;T0S_ue`W%^VY>n4;R4*fPiFLa)M3}r^KuTpOGHp_vO*Up{$_jdOWwr}oj?e5&) zzqi|IJbqq#UtK2O@|sSEWQG2v%B>)i8xpG1p>iXc{9z@K1W>uDOkP)V=PmRBJi|xM z7dlTqrt*C=VyBcmK`?0J^z~N!eLa5}VSK7T93mAf$gt*SA9wcRJM*U&*+5sfYHRrN`NPB<@ z#I|`XtXFCO4~E<0`4EanoSByc7rb_`g$lVd->cPQVZ5cizdD}U{TmdTVVLjMh_v&U zLJSMFF=C-iX~(aQ*b=WGHMGwMg9_aSfjQVK-QiNN5j4fP-j+dod`S;QQo<-Xt@n{>P}(r+e>c&kj$M?RD{> zF0MeB=>6)Z?3%ZRf~?TKU5IsWymR+f%d#xptV#QI3B<=(p0rOFB8Fg%w zcMe!uZ&1LsEXmTj5ZZ|gu)=ILZvmNpn%*9yeK%n7Jp^&48kb)IhxXbWPMD#lI3>$7 z+F#qP=y(Kc@*wn>x?q^S>FYRts;UY__KiZ`9yTs-rTj|~~+Cg(z?QlxB?9<-a?e22iJ3(z>$fo_X zu(}${Vqr!?J7+Ok+c{V1ok7|&+nL|p-|UYD}oxSENOPQhaUBl)ZSLN+{f(5AuJ&zA;cj!Aqlw*CIk|41Lic41Y$6U zv4H?KHurrWCLGT9uX^=f)qAhLuCMF0Mw;H=O0CgT|G)a`tM9I=!SZb?Rz+$TW{jwk zRUyWWkvmTu^|0mJ1G<890APJK?$~RdLqes?Mv5Ghhl}vIP{UfjO>M@5WU+BGZnn7n z+Ne?GIFaMYafNkm0r5U|ZGZO}}{@~7| zL8U20a~UT`VSFppm(-5>%#m|Us2q!lJylJqc`NmXv6vzykHJ!PBnQi7qFC>Gqz|`p zs!CF`Nt2cCrJ;MO_uZk1`Ir?R3NbwJR2`{^=MGPdH=P}vl2?&FL`XVkT+Y}p(C?Ux zy;DVcA4s-d^PVcw2d!uD7S93yp0tYeWNXqUT13KPM|v9zyQ+p{7JN{qX*zSw^BU5- z34r5lXbtII^f~s+)R1cB7yv@b7HkR0nz|saojGq3OSwEgnJPNI3epI9bSg-Y$B(9L z^Hq>g)1eY$_8cBJ6{Om^JFMS4Ki*ctfEwJa!kM#W*9arKlAAx4RdQ`c* zjyHDut*mquP(9*2D%C4OpGWP@S-bI+0m$Acfeb-nJSx=}LP+bIjgGEsWFMcssRKv# zgQPeYhFe=nFZ=lHO)!q9=MHy0DO*iA$h%~x-q6pgiYcEX#;a16nm(Cg2fFr?@aV>S z3bC`%P|hXA4IURWPs&!)=jH9^Igl8~vy%aLz9<__ILfywF;I#$ea>_w3{Pa zo;6mvUfzx{$*HV`%|V?88BUgYX-UnRUg)2XO7WVW-@}%;yS#hs*Vz++Yd$v7^h9GU`?JJidBjHmfow4&q;T3rF5YYr* z4E|9n(YOWT!oHa`IwcL{g)&P@SEh&ybV1|7ccZ-e`hb>MGbQe7uSHe5iBaRpFf9@_ z@b8G4l#Yx&R6$8MlZGvMxpaGc&SjzrUZ6!&Cfca$OqME6M?#{As%iljlO~m@nKMS+ z=eGT0YX0a8y^1}XpG*H1>SO+@`h@(;yvN7<-TV>t4$r~Lok)GmmxtMhiF%;th@Qts z(^2wIrSma;)-0;rKm7n81Hq2 zggf3VBpjY8UOw;jmGryk6P|ev&l>ObAUQw6w+++BLGxFq=lgoFD}CuTfZk>EIyUuX z^tRIT9XTG(FCO{F<#j%j8J;k&+2a#FNaKNrQMBZ%jloXtW=xMZ=`%WKb5cmxIZt+I zf#^y-jMSzd6h)jD?|K<<#U{uZqed!xuhg?x9QJy2m#W2}U~ufj3J4Wxzv9UQgnA%0yX$UU?lsY)Yn1xv8fU)XEW-Znbkyq)Y) zkdioMmrdFdMzt3l2iMy_(VnK7%PC!R5z;X;W6D8!w&jnA0$={>v*>rB`NUtsP^{Oy zC!hFR)-!mE=Yap}G@tk~E059h7sX#W2g0dq4Eno0al z`W*XZGKmMmVE{)504IgqoIPjqJGorHp2;GPkZUK42)X{#l%2jT;{Ejd=MtWI4v(8G z;(>8JSmjp#P2E<+pp?VW&B0^dHsL zcBA=abj@TfdHD+YGos0-Z*I`o^ERZ;VMhd)vM zkEC`<|5uVy5*MkoxIJWgE`E~WxmgLd0^g^2oPRM^-~hP|@DQECb}37FI(OQ%P~?*S zAY%(gNV;PSAnE8p#>;05UQNGy5#gEV@T{=~2h4k!MW___X*;1lFPQ?@NoGY{dDjE)!xSxRdk{4WNGoXI!k(L1=a?ycL{~T%wKB_+=`#SHj1izL&q2J&+O!UiBOYoASB`Az~qWb?d z5mM6s76Byzkk0?~S-Y!43pn;a=y&BV0?a_D)_*rWYrl-vpEzd$T7#~at)$uP3aea} zXBb^SLY5s}4_W@Bl$AbRe=q(1nS^Ja!{bKR9|*@~8r~A(JEGUmfIsO=3;SjBBYi(M z^>+FiqSvi)2(-ENSEVI<{N(hsD5EnyD85sxxO(zYd=sONW=2Flo{J^yCmf zJaZljJwvm~7}1G2-A0pc?r1k|B`dp)ZS0IMDDp)A*7e70qyn8wMJi}h`2?t#GYQlJ zFW?L#CZUb=3Ee%U$2$=UW@b$4EcfO9P|buQq15aAne@-0amg?0kI25xd*YJc%%0G1 z@EjbKSEX^ueWO`FQL~1{R|-vBA*`@$vQ;siEep(pcGG^8aP_-#bb@&ZjZVIUp0!^l zIyngb0yjiivdJj1j+w1E!{K#Igfc>^od^X|{jrptz6j-h`u%eV&pe06O@wk#T$dR* zSDcl995ior8o9G6SMg2D{i^dXUraxR1S;-W1a{8-!-_SX?^y}4bmvXVr=Z<0sZr5s zwMmZ-YNHc?S9@Jt&~vqOIoYNAqn2;)G^kdgwtg3lPOsPP?a(o-?N(=78$jJYc5+%q z+e~&?QLgv@AJOI0H=j?x3)TC-uEv*tnfK`Z-_IXW@9-S(Po{eRl_kCJ8T~}H|LcgN zvi7f_BwAjk&l-0iw*fyv=-ixy+JNs>9L~QO8*p&E26i2mKqlvNr|qmC^!3!#MaB}0 zkaNcpK+gYCeIj3%cp>4L=kU0(1P9A|p*^S&@H=A_up`*K^h$Wd{7B!ADXkP_6)Hv~ zu?-b}US9DtGoqTr=~H<>ihVxy28|3mUaoce!<+rhUh8IZF=-5jy@a;1(n)n>0k#u$ zOh}8auBr+fw3Z?w)I(|~fFOC{SmJT(`kgADNlgXodR^WnKLuyY|%9!O&<7PW)Dgm1$MMttH z!YdyWbv-J3A}UFV)4DV&mhnI$+Ijl1zeWOy7 z`ipix#_Nfw9Ff5LsQmlVq91vUJ!HC2d~3bqTUOClnbkV9`5;mNI#%bV(_;$R1 zF68LkDU&qKWqgsT8I6!}r)C5h{|k(YUcT-DoR0Pa!ZXj|SyMAQP|gdz^XgR=G=Fva z<~n%+rkO=>P5+So%a_ylkb+UgVwHI2Wp0#~I{8dm*3>-iAc z1d?(ev}zwn4-wWSAu$~@GsalwD+K!teL4q8vrsGW3u>D3FY})6fvWwFz<*_G1zuXT z0;O?JRR80K`;z{5NGOSeR2rtw=9M|qGxj3{%gsWl=KuD50@ORB`451*z^g&$%U0HG zR<_F}`YfaKM@Y1z^C8iHqPXbS`S;Q9pG|n?IXrH3{sHk^rtKY3R-FMMb5^IGcaM7q z!>-~>`Z_lCMf5I2&pRU#Xn5!EN{g9vYIbo?P|js8+X>^w&L?RYxOtE2?7OYON_UOw z`K2^`tJ^D-`NjBLESTneG&t?Bq4QGEb)a_9PlOgv9s#{r$o9MiN3x{UH1--dTkY1M zRblGNY?01Nc3?;$T8Ho<*R$H)D{>`(A$3xL49`km6LEEKeYm$r8(1q&vWe%#oM%=} z5iip0jwS==YEFO)+zLS^M@QwFgaCN)3Yqg{MIWH?BXgr~4-8$PQW@aRwL`Av!m!nD z>cP|1-gNb7(nCt%A&(bW76&muGLuhu!AD2!|0_uBN2G%&fk?5^YN3jvK{E$nS!vw53N0TaWfj|Li9Vs z30T~Wii^EuQk*!FyC}<2I8jquxr@@Jp|m`utMgFpqIAc0=Z&p+eILnPlr?i*W^T*i zVX4eI4enXezUHMf!Q<_sbjKpFxb7cTtm!$EwhqdRjk36pw0eVKqfL7#2UPS(TLa1_ zSM98Hc1+F+>0qoKEN)82Lc87FoE#Ng%nh4MomuH_(nlKYR&%k@Zf`Vt+sU9DbMKZ| zLK;HI6Hm?(#c$YNoT-LD`!aQZQGPOv-^Wv+7)+Fey)QnPniK_l_s z+pXS_Y7gp+Di})XIr2JQ4g1dO_%kK3kj}!P)$wuMg~Jk}FJ45?-Ox;2xx9LHZR5t$ z^7`W1%Ie0|wJ9ktkGzhL=lS?LUMrE1Ijb|gs;le3QHOqsDzy+fe^*+}$4|~>tyy8w zm1*QE)bP;2VnsFAIuzABx_q0Bt7f%Umr}rFG7-@rk-GOtD|zhd7D5T<_DFTEr_B*f zf}9KH@bUr|a3&or9mOv>1y_c>+PlGy!5hczT!4ky?P2bu8RWNTO~$I!2v%>e4ZZnK<%RRx$q0TG@)b`Go88 z&|29z?$%^wWjgN2TiJM?k8fqQ8oL{;Y~XF1rI@L_n8~`G&w71BtZaTJquaawaB5xr zRjG^J9;y7jq>1>7RrhDp=u$>mcC4}|vdecBgAA%s@y1sZA?DAKw>fIuch=^dt%&So zvT$f^P8@e@vN)^AK|j=c3#EYPspOSW3&(q%La zTu%2Mi-t#AdqGT)$^e(!enyVJmUJ4s$@1+%(&<+n6(7w9Zs+CGZ8~r)9%{Jjd&y?W z?J1H`CpVr}q+*iXV0vPoTBPFwT{YitH~KpP%T&Hb%rQoV+y^?uKh;ag$cYitk!vm51g)$QbA`c+-!Adu})wXJaUQi zC2*#KOF{kkoR&~0Dd>5iUD4eR;t|@n7QhCvmdN%VxUz`dNjOQtaKWNtBrBveaCQUd zD5NwjP+Al+SwFs~7KrtTa}*r>+R?K^iwar^Gk{YR40=bk&BtUE(xVeBtUKO~|#RChaD14BY^Y|awX>c~#WIC&)RcCM4-vfM-gIcUD>%uHlw+mfv44V#xC zHtFlw)Z6J@$T?=#I0ShK>#s^nm~^?UDwIF%dRJFy2)dWImmW<-&Q0i5W_$hJ6I7e+ zbO)`ieK&8B-6h3poZGICO}Z1b9m)GReKRw*x(rDQR^G>1MM+7VrP6$; z?&GW);hi^4VhwR5@8g^Z?}bLnrvwk&Tkh5aA`s$jKVj4}@=vpz{$BB5!vSN3L!n?(m#a(Yy zr!6aA=_8ez!*0vscn!%9;Wt|ZJ}%|y-D1n)c^_@dv?>gm!#YE+3EDErEnZc&p~9Bs z9Zx~gj%R1*MOrIaf7G?k%~qqIG*>!wTx@T+H`r+HCR8uoZ1u~hqtazS?E(E>$6$KO zPM(udbe+^3TYArAS@h-|=7;qA{M6Ggq-#TOTcv-;Z8^VGdT#zb>2q1;0nhzb#dGlQ zUY*{j@Ur543Kb)tXyAuYl`@b8BBEE#be4|BOlbf1#|T)ztDcF_I~BgO#Nku#IWP_b zJK97_<$Cs|7prm-%UFA)9;^4c;-1gK0kHu!E#+@918-i z+EGL1txmIuO@Zd61^+GPNBVwj>PzTrNJg?S7D04Z_{-9=K7R82>8y$wVhzuEs^5!h zK&hr*7~ZCv1RA~l#qJO$h)xWB+c4>D?vK#=(`uH)G@U+WOtc%x;k-WBLJHq*CB4CF z(o?7E&}rc*T^rpZr9lKrdB)KP>zLA4q-CR9rg$Rs-33-tNzR?Nn$xA_C6$yzY&GLJ zOe?Vlt0~k~cY)Q6=X#9Q)cW}Du$t3jTg~#aCJQy2#a}^I(-^2iw5G4vqtiw&sR-#( zYm<6Q6FPBpXl`FFDSYa3+-o`2J0UGI(`HL*?o0l@vffyvWzQU0>ChPI=hY|VU*zJuU@EHU$-WUM3IIS=)6U9sMw&YA3OJ4nm`& zZ&Mu2znB~6CeK@7hA4{>*+Zc`&pP+EB7&Kknqy+45%TQBMv&(}R-ee$DM_+?^9h>?>dK(fJ*&`8Xcl*yOR&stnRETCj z@7crgpc;<4sa+S6dizSPUvCX|F4AGrH>qL$dRe&-Xfxr7ous{&^!m1vCyOJa>qyp) z`kvuWRNGhfK~zx^Eh~qrc2qUO!_WsIl=CB5JDLdZg;v0`)WR%yoz|eP+EEo#C03z= zA>|c+`qZ?YE*o|7Gk0nVYDd=_k0uxP7n;pp((kX+sVNnA>Gk(Jn`)ck^a*pzw3G@@ z^Z{1~`7wtIYEmzor6LI@g%of%P9g(#z0n$6?WBAd4S!sUe>7vB0@o*M1*>Boi-PF2 zaJXU~Yh;JP>Iv7=(TsWO^crmnl*@+HSRlXab}{W^YB`nIR4gVaYQTZ=v$n4u18oLtxE0=i!(E>#i?4; zr>9NNVn`k3T$WaI_56j@;?T**>-+sdvWv#*h2~p_{lRY1p*uROTdW;JsxLS?dAdG| z(kSPEDLVT0C+?c75N~{R#8Yu|n@}LZmar&v#Iuy#O4?nj%rEs?x02;f<7PX74O&O#h>th)>m zfIzorH~&hhIqTV@d7h}j3B_yOjb5YE$7V=HOSuo(Lx`9!XFXXxY>dTO#YIXc#gTL7 zSb#!3Yo6%9X~k<@njyuDwPdeLSKV~BFSZ-o{YlYt-ZMj3064jLtxMw4ZQmjXq$D+K z$yU;%&9vo^v$k3DPzU+JxyEbVtG(8Ct3zS$9h4uOaa^QiQuD>h56(GW>rx%^0Og0v zmZPt9t$VT2YF}*h2iR|*2%}BLgXDJk1__VQNOjJ+OkKJf5Z%4-r`NiRjXf$AYl#sO zBi1|I=_qM7r($JIN_u9_mFWTspcYA#<{q7y~zy0!^O7g4rL-c;$v*Ye} zE1m=XiFC)^%Zoeis^wy$t~RVfsavT`N6B1EWpz3;kooSr4-hstAECSN-b0^bzs&Bt zgW@x=L-J-L_TUNqpSe@U0m>!(0<#BigoHbL@F3xTp0d<;KFKTT_s=Ih^Bf*Gd+-jD z^D+m#EZV9?CTRZZ>|T0(%3XZZYhc6qmoKBALiXd8$0P8^%YR(8&d(Z68dOs@LRs+o z;FW8yPkVdUIy;R{vz>b8qpd)CV%OA^y203*L=LuFreq`XRM`Q*ZQgW3ahHam-kL&UpM9l~W}ju$?q|${n4U z40-NqT2LD82~#V51;5(s?lowAku>W4J%`)-i{mqd zycX|Iq>t_n?=PP7k=~zHxkRtH89F6fnZ*?C{ z7B&a1TgoN{_W>%Wi2i4kYRTRnf%C-bWDkoeGL1z|0NkL@G zCr!rF;qkh484F%_N<>0Y!Jy$!&`0p%NbX}Va(<#-WaU0~n}TS&a;WyP+atU41$(g# zIFkF=YvuVkKBJ{T4%}O;YahGKL~)i-GoWfEpUISTK-GTaJ!YutttUM?JUCVDX!%{F zYo_~Nk4Srzv>TB!3vLa6Mnv1ptVxFD8TF4V+e=^QRXoXllm0EVX7oGi6Y?+fo|@60 zgTdOW4Y8{W$H*Hq~56`LFzw|J_|2j z9SOemOX(T&9G*3Gq&vX>ag0NSxT~sC$XwQ$R=5D(r7yiKKF9n>-;YgwC4CJqDpib1 zY&9xAqofGn!Q@*(0&EBuH6m_Qogo*7Thz02xzX$IG}_)6sn@-!p0mw{n4Xz4rsXPM zL4T$guDM^d8#m~mL+!?I=#R+0&U@^}A7oGHH+T*ra4NMMukzT9^7toeGf?*Q*$kJI zl9))PWI8*>Ah#DkN$`4Ml&v{tCDdMgA3bZojJ-HOZUa6oTXDd=AIna-B7R3~1PbxyrI*5W^CNvfHuV+s zRbV6B5y|a?`}d_qPrCTbjHLhIv?ZY=CnPA%Z@~CIPYn*XVYSg~>?X9ggib7JZtU+- zjh$}7q^JY$*IV1vVo5D?o=h-GnAV@STFrvx5K?<8w;VRLI4?WPvy})oxvrI!rLo8q z^YoNyG<36~`eGgMlrEb|N@Oa&jzyq&)@QQBZLXJ|NP5Dj>s!R%Pz(G=^sN1w_gLV+ zupgrLcn&jK?NHBno$Jyyj?Q+`Qp@NuCa_SOdjqll)2irM?)ci9YM_S8qCPLDW_@^5 zgJDO)I(6}(T-dynbhZaO9>ZKFPC9d0qj!N**vazT3fh7Rk;_oly5RaPFnrIkC{fb! zP@})RdoyV^ljfCS#d+L1&st`WoGM0=o}E)gZL)1@Xk1ssO^`>PeMgJLqi5yRQ12dg zWov45YGraXaXp~Vv}vL{ecRnl>exLPy0~7Bdvdx~`kI{O-MxXYCf=W{MtX)tjc(u7 zBu#G4xXz!a=hUFMqlUiLcuXipQazNVe+qi&Gf1+ZRzVS|#bEY`X)$hDftEKBEl+qrVjkT3458k-ePkPrnyShj*cV=?)m6hmSPYB6C zbRkyKGcjt;de#?;1L#7uslmCz0>+3nA?K~41F=X;FjK^o>UMC33^(|z; zLvxc~8#s_w0x0J)Q&p18L6l71cSmy{`$!9{w zP0rqz&wM34^8&&%&jHrtGY^#W5q}1FcwjgdhScrBCv;|c= z9%b@z$ZbI!r?H4bxcwrvzOP)nbm_**<<+Ze8#k7g*B94TRyVG$O-W_^F0lpioR75y zTE&FSU!A>)ld}c#J&(36C@*!`f;o{bU~=f{#?kI$b7$zVGkt`@QnJ+;wg(Rm>6o$0 z4V)KH(QJah(Df=kTVk3<#Y{-Vs=FPo18S*7cRJ9n!~N-sbLl2Z3v8v2mW8stjHcyi z?&c~Cd!peIoaA!2WKmFZo}}yLaP8)@Mg}K&Y~I#l6vgZOXzu2!ljlNnSbz?5Wa>18 zvk;W@rGug?=12N|Z0ZZ?Yfw;RjYJX+S$|fwlFyrnn}VRxch-5bgwP?#z0>s#q};FG zd@ETOXFq#0xz*ZC`X}BtOnUovV+QFG83jx(8JTvQ0vte-&_Sc_MlvrcSc@`RJeBT36+o+ zP}1)9)8(TkDu@uN#LUc?;$5C|MDL?7i~CvhyU@J)FJUOwYu=Mr|1Ikoyv1|Ce|4Hy zf0>n6_sPQ8j!Z~o2qR`YiB&{ITbJpx_DpF0{}=&tGZC6k|4#ZG`(^U!2f|?hhj4jR z{zPP*X3rT@nalO-nOyn^xps2tkn2B9+3Cxr-%r1PF5#Ky@VLpP9~jqzoy97Fz9Ttw zt^PD`wczV*7v^8Sgx-vB7puk+<}p_NWocQH&6yLO+|Qj^nEC~|*SLIpgqGI{5-AN_ zFJI~xWHjV%QXny6j&R*`yjRcTs|(9AI0}-OpeD$>TXbt|r&2 zBV;ukZcRQnmL@MRVQBI^sT7cb${h~30&*4W02!!c@L*$?&XrkGy-b(8&7_SRrhB{U zAZj};wXL2zp)+Nz{Fy?QN=DzztZA6Y>$y~#@#aX7A9;tOJ^$jn;k4@J(o{^c2o-y< zK9+x!dN-f;Da@w1ln1O_N&piknzWiH3hkuT2zp8ZuvC7g&zTS}&td&6(csHrVSYk$ zSU*6|+AovCI%vLwh7c9QI``t0Iakr4v&M8XjF5b%lL3sGS3H>5oyP8VWIVsd+r?oLgblr-xOduXGz zZl|EtB%>=odfT;gOGKC2T~7yNrGRv=r3S1pZY)t!nogfG={lFD4WcQvy+xXAzAbi# z9p@~#5XMPqJfilOo2NTre|_{sueU>He|_V;^Ccy*#yFz(cVaUjwZ9x8VgA(Nw7vYHNjE&y@B5sgtuO=Nj9cueQIwkztN`<8xYz|vRiz}nVb7B?l z`NJNK^_}ix8?8Z`E`{7_CASjXkl7C+g>0CNk`X&JKnZm}Zqe=Ni;Z4$GBkKPJb{hij{gt%ft*aAgoi6Z!6Bpc*@_9wn#X0kf~@>~aQJn_ZSxY8gr z*YOJ&iuIcJ?8&IQi3RwtOmiJCE$2E4nqs2v6$G^+y?xQ!)COq>T{@vs-4v6Pcx5*OaJF*ia;~lXI5-~NUQ^D#j z{mU28o3KQMH4>3;Wc^)fF~f_`4^9rqM`Qw6(Cu%aVZhof?j)O!lF1`iXtme6MJ~X0 zf^)=2SQ^~{E2qZe1>l5SEW|2m)`_OhpzUlNO(XrBQ)AL|yS)+%^(7h!Kk_)wFh>d1Ri zO1IqE*nPUBe5EV;(0WpF+=XC=SmhC(l+0=zc~2^y=i_@)+ERzi*=*Zh0HS9ZUcV?>Wjz}gBt=);^Ze4aq#LFXZcj9?IzTMGEO1%3Btta(ZYzv^eh4O0Oj|AhM4~-b0J$`S>21w!k5);;?510(T#8>uq6q zt-8FJkDr`AH7)6K%(u9?etKvynP-*OmvQXZZ+8^#LMJxtUg4zHljrj1y*)!Md$953Ufl$}0h5*4mR zhTcGAUZia8PRuRCJ;d%s8fowQ0dbG3X(N&^QicmQY|Ww^pygtt)gJbeg-(;E7bh76EeEl-J8EYqcRU(&qP`-M zn6|H2MMTN)NHx=8IXk&(aPTL_<}fj@7Qazs#gE$A$rIsvu=nUg51O|+@ie96P z7N$M|OS#rvZS?xd1|fnP+vKo>h1bjf=FgU}BUUwY!?R zX&75WheY+~X<}>}=p&@GV5G8fSng`}4e(IdLeZ)}YIikHjPt?vkfY$hZ6eC~=B4v0 zNJW^}v8gYow@!28yVhOlFYL9DQt34| z&B4?G#vsd?%jn6k@N(%vB1_w9hn~xgw|0Av(5azhm(wGmCrI0fD0i)^uTG@GHSX2i zr;N{f(rY!^RM2*|Yj~zpvrIgL9!tKY-}&dWZ)#qAnuSRCkF@kLP@>P1kBKWd7=mb0=rh19ueqj6kJL&zt)~ zx)M#nu8{l3zCy%yOJtPjJiW$V<7TVfB0JS;_HkETG2rYco5LRc{=`i>hYwNj^a;IN z0bYiPqNA4M^o@L?wxF2ftRkW$9MYLMEIH1q!5xOUPA1n!Eyp<#t_SOXA9|4Ou2c8d zkmIZxOIR#d^_Qh(O&XSxoCx63*NN;rF7q$?y9r6SYBY5IN}v3GoK3aT(RK5rnU%@y zFd(B&7s-?6rYWY|X-_G2GjoQ{yocl%^>pZ9y4;JiMRw{P%39@Le4S9gpFg7B&3ihb z{$Is&z(1RILY=ZYp@O(DQDbm{D6^A&BPlA0kaUiw&zZiuykF|WLog(QS!!N-g?zsGk-i_B`fB<*A|*I-Nek_Xk3m(MVKz$|kr^3j zTbOQ`f^E6JwD90qc0~t)q_aen-EDRyE*KBdYf`&Xm3flQ(NVE0alFUk58?kvyCRbR zyUnh|&p~Z=MJuGBIXz-_B``lV$~;wRhM7~wheUKT%C4L(5RaVL?DkZW>huY{wfW?3|*rE=U8jY_az)Qw6?G*oySvU!-!GK+Z} z@}q>Sy{zha2#rI&Lvc0#VoudP2>t@K4htdU=IlAsaFk2+>zK%6gj73`2c-IADKmYM z$NlvC=MbKG4v(A28Fv=MQJRd@kHql ztJZWD(S~UHv!05C9;doHF4go)tsb>rcY7mLyxtp0ad=*74x!`d>-e}0sUiAjw2m)t z%aqQ;;nneR{KX;-;qj;_Kql2kU&qIDJwnH8T@o~JhhE1A?zArZ%#~|8zal2Yo6k~8 zZs*n#tqF8C!<*k}^pfUSKK-mR#H43rG-Xv2m!>yhp;pioXniy>us$Mcj=uF#1HZ!& z#%z^0BASQ8YklJQ3z@FP`iQuB^sP@k*CVWt)+IsncId6o?6?s|)tWwY+T>$GJbUhR zDb+We-0D7>tZz2x<}P(*)Rpd_wbk0x7e+Z1@Ew&&>eHiiWSd*{meIuR)m3|a(w)r* zOVy||uVAOari;|>-NlZ2eV=z2i^wL*cr-Ip&QJU?=`mln=dm(tf!`M0Xk1lq@{KdoBbXCxhB=R8&Xc^V5& z1j$cPvFy?EExJ)^l;tUB3`79IV z$lc(x#8uiuY-xzkQdL8iX_3S1v&8Y3R8KuVi%2Wq4L(ae-=lmMZ4QIxuFi;lLOx4q zw@8K0Qn|XbdUQ}!&+JZ4^S4^xukR%7_O+Eoy0y0332<4meN1OW^xO@aKkl-dx-@_J z(iid{MRReOHGdqBYt#H9e%=k5Kc4SVnqO;`yG8Q{-sjY>(EL@adv-cg<^k2j^I0RI z8s%S_(e&VrKr#G+@yOg!8k2=Ie znz}Mgp!5K!%NXtQZUu^kqpnjt=*i4&U3{B4Q_lAOnVL~W+SCKh}yC-)0U z|9Hw&U+(wS^!pbPo_P+Bo4(5f=DpaYmPK4;fkWo7&VWj{p=&g3>!v#Y&^D}(_1h<)FX?cI z(T-=!}LDz+y@8bZ)(laN%na?n>Y0y_t{1xiaIicv;|fgut&NN+|hllR}#f z>7epqPu213=F5n#WunHwCpJwZ$PmlLQM*T^EC>_zl#2I=xbP)KDP0|h86kon-S-l|a6F^R2Y`gw%J2W4{l=oX&D? zxs-p1(0sAf0{t#D!hIjewqEm|2={~5GkA;VfPYUK;Xc_K;Mh7O#2ZIMMKP@6W@$Pt zBEmR3YYNeMl=^N0;5Zu^rM`VB`Z&v2$bYW(`jeY4<`~;`8!|a6LU7 zQ1!vk^?5y-K0TzCH|6%{NYqq&u*6LFL+zypT^Z z$hbza#?{T)#wXdB4^dkK?p_+-MtStu3uqPNE>$Ht7+npVoMU`wRFrZo>d@;o+PYg~ zwcBoO?k_ercVfnwB?k&t>cuopRFN|5Tsy{a)uS6>`B5!WXv?=6?IE34wcgllM__Sr z8LC1Wt25lCvJ`>YZn}0^Z5KzZ5oSHs|D`li)P@wgn!Ki-PL)lwhAT((cslnIB5FVi zaiQ77sr4J(ve-7vS_$>ym=&V3g!sIg#x|W5xbkew&nQmP7kU-@U*1Ij7MdOWLG=mw zmw8Wi@W=B<)H^(fl*H51?BJ(l44i0g5DMsV1y#-r3TKcSN0APuSDqRC7W#N!W)NHr z%?y4GJ!`*AX0S$X;p0Q{QEY!oHffxg>t_CrnK}DIKg(5}mvtB=P6c&++92 zkJIn}!g>ymo4jDnyd9AhG{P1%2X*EIVVcZKi>f{jOaI%kDO@C8nG*!XTt*PTFD?(!bp$|hX9#@Ib7V-XOueFEUF|SYAK+X@bsIWI4 z)CC8~`5_3^V*@^&#tNH5sJf+dv9ULxJE5<)sN3|h!cgTLW>8^ys!X$tZG^z_Hq;V*9es}dGM1=bo&h1+7>Q-_Om=-mE|X7XtkDRWbgU6%^5;{= z`K-}X@q5BE&*4X7jq2y`2!mwl>9Dz|()6x=y{$A#Db<`^N*}3O zWm~Pbz%nrr!s|(IE>q@OciB_X1eaPVMV&#wI%GctSqBF1byavuMQ0GT;+-$zAt5rs z@tv!}iyU9RA=ULP;NYHh@KziB0c8cO`J&3A^;5{~o$**%1R!$`+TxH39@eLifn@@b zLKXsffms);yGKWy+F@fNM7m&NF3x&#JNFUV454ZF2rI8~vz?ed zE-~YqWmerZAuc?!qG7Jn9d!w=DR+k`<|i|Er%QNoSX|EWl#R8~+D$gP>y6z#WC3k< zif1qjk}G8Mq>V|3toI5F!A1^|O>XWUaIlgAoz_5gYY89PQsr>TxJW8p7Sx}_Ey z$jzkcGBb$F1gJJ$(Gif5qvX6@)mdgRwF?!AHtX?rk;!_IJ%<7ri z$yEQB#<{ApxO5+M66vvU8d~*#Ie4x}NWCLYB2)*M#wxH-io$6R)$jGl%Ia_cSK(@B zvEACc*=_WwA0*0a=k^4uzOP4CE;s04Tcxa2M?^KSO+}Cg&v+}U>r3Neut3%LRB5&c zYyS|0$>=WC?WHks$WM=sd7zWz)u>%i`MU6|b7aC)r`IDZ%C1whNi}Qbh@So;xdXUGKvmU)u*M=;EffOv{W*=ejU}Bl_N#! zm@}S8_S0xgssl?StM^aWT2-tI|lco~u-cSSpyg zQoU6gZTWWeTyf)4omDAPhrBB~y}V#_q~qdpeX5sAqiKItGct00afqs)s*D&ZDO|Qe zbyaD^TKv_lC|Jl&A(Ntds2*8aq!dxFF8ji1VbwwP$jXIbtKB3cLuVNjrcP|lI5gEi z<)9U&O^kL_s@GelpmiYCYlRkFSG&{I>v*2gf~u!_oskmaw;q-1bvCH6WfJ@yS-s9+ z!sgh^SBAhi)Uh6HYT3_DX*rB8CnybB5m%;#)3N;F9 zl0rOBo$wWEE~$=YM4!N-4iq<6dsu)-3i9 z+0XzTfY+#*<&c%1%OhKZmLktGbFBQ{TWf>sjn?35N00exuSrwf*?zFs9qvW&n(Gl% z9x&lvN+=h{!iq=B;j!|H33Z7|eFJ{5;`Pf(mGX@VSG(dBOkTci zEnz92Ib`J{^T-pDXXP<-$Px0)?Kf1O^R2an+FdjCT+kg6$XwoDdC|AtGEC?K^nGfG z*`=LGbj)?1I&bxr7-Q>7_vA-($4yQBH2tqTzsma&-blX-?FD@=KFoT}dwN0NZ#{#z zcn?fY~VTIM~V-%Ov*@iept^qurM_RI8u*2gP+ zdI-PR%?M&0ccx-r%qKDZpCjbZ>HmZremG^Cum2Of5&qnI4v(Au&w6<~%6m?|o}f9X z({sjrnwOST+}~kd$EGgP+v>hg>J{>yR#UyAZf@?KIlJ52HD2>5zlzH+Kr65GuhZ%O zXnIMS8;$KL`}3!c+dqXwb90_PFzkDVCdQ@*@{Svw&E)Eqs=D_Fml~bzA#HbG>0F{; zxdce@k3@#U9@IqjGHN1^8?=&cHopj!q&u47u!$X;XOO{o{cMvGvL=p1hQl6I6n}Xg zZNr4kMV)$j-2Qw+HKVJ|BNeNxx4&oQI7aDfZqG0}lP@gd^B$oH6i2^ocN*AIMM~44 zKxdoxI`$rgIOnMZK0vDl-N_m;KfH=|4b!Qy)(KMkHoO#_t8bxGS)*g54>kHbQAnN` z6xJI($|;h%Id6~R6lYj+u6laDUrT7{QqIuQP1qOdd}M3^r0d{H;8LD)GK6krgT2|K zbFsFmS!EZu{^Tff8RBYC=vmf?I0T}7E1@CYYEcfQZ$swjVN%OwZP2xB5O=$`%<&9{ z#WrlM^NP-8gR2k0s&}n$=Wn5pS!1hM*YH@MHl3dEoby;d!8`{H z3+-(r+jn-2bPj5h|tBqDK zYJ6FmqfphxzAAJ@7x3b+JoX(~8+1c!ELd07R%Ed;e;cNgxlTg#K<7yIfW#<_9Y^Q0 zMxjWPB(Y>l#rmGh(xdA+L%Z18>t~CAj^=ZmGU*sORP;R?)QW`B1#p)>h5Ni<_P z%lQrHe|AwPy$;a(oFVG#pzOhkXOiowMd!1|LhtT{;nr5-EO6=kaaiboPO(~@R(~hf zujOV9J?k}=pP*yJ;MJf{7&$?gh(^+#6Dr({ zmP~HVp+m$*EP{#c0HeRq6=Gx6F>j-KK~lW*HZCJ7#^Bl_BOa+I3wa-{cl3f(BgY_e zd#+G#OcAl+HZ!uuxX0jfdwx-Q)VS1=o=#{T+?_sW*qfic^s|by^o3rc^PUcn4^%vd8uT;L4iL-Oj$PLYshQ!F7OFL(^blPG zna+%2-Uafl^!d8BUd`9gE|9M+@$1xk>gE?9LU_jafk@Z-ne!%q$ffZ((+4t7R5H@& z^npMcKSKZGHm+=|K?@-KV3R_SY1FNmg@tuR)uExM8Ke72P;pwE`u$qfCho8(q|v~^#TwAX9x z()|Rtl0F&*ro?!RCjq@ox*yk$`vGy|qiBRPr^;ISmlf~zL=?61!}QP0I&idd)!B=w z^qkS3u1|qAJyYi2=F`5s7o=MGSyjB9sD8%Dqp5z*XSAfLrM#x8QQh74>A~MiNLupC zni{+g)zsf)n3sMx{d$w(Awc4Fwv>OfGi9CqVn%0=kX1)#Lsox1<(*GwKZkz*B*HV# z;c=t0C&%Xy?VSs$QaeF&Q>PxsEh*-urTK#Sk-i^OQta2`IrSqodj4p|YMeWr6>kD` zJC|Kk70UK78FagYoojnd$^tDVbf_fV%%C>C-Za0X0NiML8TwgIb`6SA)hG=@-b%7S zr!7Q*ha@BmZ8b+$i_eC*;#>G*i_BZ!oJkq zY|uq$iU1twR0lqHC%LL&=J=ha%lWh?KA{VT%8Zcm;jA&gh1w>1VpVN(G#xci!NsAf z>X}i|#8KR|6C0-$#gCr5aYEHVUEJliYQE8xSM#fE35sQqN!0Z1s)5SoFPA}&#}7wZ)mcZO%J9HsQ~x+H8(YtG`26 zHhX~O95=3PLGPnSNmXhMGO63OMzhuR7(OwtnGvfxt%a)>n+I4vV#eaDifx9xu(6SQ zJ?eV73Lz8YpY?DYVSuXP+W6%0n42cLy}C3lXKz$Jw?Kir=dUg*IGd~Lx;7Q2O`x_} z;CxP1<+ah_YG}8w7F)yhMXI`Q0ehvh*&a6O@UI$a;54nO1{Y|^rLc+x($&wc0aY9J zqSqyT90jUcT%f>R1GVsg@winDnWdmEK5$;2sx8}8&>5k0Xj%)lM;$?4p$_Ym1XXFa z@zn{Q2T6gdJ=+v4+@xO8x+&oN4posh6yQ`?WrX$7w`I3i%6+a+OVy@r>ae6-wZZRHn?D8YgnI< ziLp6*L+%Id0tv$c}8iR z6D_d3jA(h>fsD@QPG?OGc^&+_35MfxXm#ZqZPw9yQ(c(=_ka{#T9K~N+0!OC%d6qf zWhyHpB-E*_Ktg{7qoS9uvT_go?umqFp2M@IvN9nak0`5@R(;5v)LBwN3DUf@2*1hv zNZ*f5eLj7yEUDO(bM+Maxzgf0esi$1M>|6L4{YwWL-uWRc|6CuuhYRrn-pB5nxN1A zwxOo%A3|`mMPJCH+)wOrY`cT&z&JmIU~(~>W7Els?6n)T?FxgX+C4Vdv=Xvs7IU2+ zLeRMg%CYKJx-wC1hjg<~%6A9U`5}Y?&XzhB-KIbzBWY?6UM^=${>riAW$Z}gqj6e> z#oUP+aO|^q+)QOjeVAW_YL7d6T1Fi_BX-1_ZSiV28mDE{#orMo+ky$3i#pBqOCbR1 zOPlN0nIGx9|29jrQaDSU4y?4wHXApo9GM@NG3xA!to^89D_=nrA_K3I-V}YQI}f@& zB>r(>8k!9(sHx-D4=@)aPpjlkoI~cFaLr8%b)tIm{m@*FD5J2r>=AP4>P!QBWcAIYX<)06AY{-Laz4uXa6MMv?4i22w6f8oGeM|1Wl=8* zhrwcr<@SysPfmC%{d$l**%93RgM2t4Q3(KBwIWC4={G`88?xSnqc^BHFyd93`b8)L0IckGdB?{IU!^Xu( z0Lb4I)K_W(HQ6E-BXZ zIn#NX=g&T*c&EThdz%*MpF=ae@6#WVeVzC0ZTevLgnonP;ECRoW_X`$4QisHAw=}? z6fD|joz8?N&+5LL0JM)??wJQ?L$kW?qG#=w$?De1F#v?*4%zKZ*3^aBlJiC_=JNPt z%CBOt9A3p;9V6t?$>%~IKdL^(pU*|4_HpYuJZ|#2wR4vb3oX_K%|o3*;k_7l`qBb> z-uy`4k4>%7*Qy+DN;4A^`j*%6O-eB~n%RN3qhm8qH^hBJ8e)k>`n>fXT_@0^t~+$V z_PXusQx=N-K1epXj4fh_6p;d^LAOT@_qzQu4wK8+qU)v_lTNws4!3u-laljQJYp_i zifE!59i|C;;cYnbU~@Xcxb5k4MF9@+g^Rt~OZFN)y3f>tkz;bbEr>N-OltB%L-$R( zxEziCNH@@JAT|Nk`>-*4q7X#>h(cU^YOaYxV>pa>Bt={4>os(>)25`2J3#rYdVCuc zjS!clm=_wGj}G@tWPGW+-H#h7!&gKo4(b}+DHDgrXePud4qBz)Zq~R~5VJUlIK~f} zA#x_UZcM~44knh$ey6e9+5|EV0FOmCZbBiSV>)9>=;=beLRXI$7O7ZO40lh(JT_WU6^VJuMX4(0vC(v& zkv%vu-qDDAXwa!kbO3RW1}n!sIT1l}b7$k8oY=8BM)DoxZ}V|aPDl{f&K!xjCm&Q4 zcSpoMIZDtx9E!L{)6B&^`iau=QkrY8+fF*$`i6#4wJ(t{ce=ekHHEk!g&zYr>=`ejSojiU%mPH=$2dfI5gO5A zt9HF}M#>QxpC6t?36Zu=w5W3HOkd&0fN?Uj36FwM7dGEEZ1t$W31>^I(-I>wr_Y;W zRi3^22+gEUp_H>%OZ2;U(Es+!cT&`k+7HqDc~3U=rz)NU{Qmh@j;+W;QiJyr z?&CRLN%`f!3e$bl*&(=jPW3wogX3>#PW9{QbL^MNsn*RmV1)3FbuYwLWA>C;4!LCB z!{k**NT!olg=GF>$~s@4EKY4YMtJ5qJZ|!;li=`Z7sFC$LGw|kn}Hmbd1=}G4D%y> zKQ{H5^tCd*nyJJQo`xP=dA)6I?{4>IruAwY-T!jNWB*a(|83Ht>yKSdc6Fp_eKPqO z)=zMMNBK0_vMyL&_!+;YaC8$U_1j!(Z6$-&F8MYVM!kr?X(6V)uXNn(AQsV67ex=# zZ&-*c9lBb0t3fB0;J6Cq#l?-3!Tt3rT$8wt951(P>es4py{xupI#!x~)j}pmvLosYWV?NXrv3`u!9g?b@OTV+z{Fuc=RtKLZGj7!V{V)u)`%NaNxVT< zVr(Zj@>5G}oH54fvFNb0AJV8~cZPd4a@M0mP}BO^3dBgRGO^~*WN0@Yx_*Pq&DM>J z?Z$RLUSDvxEc~<|wXjs|nGKR4kCuRU`F}mAvASWF!Tc!?W?`6ejo|6=LJ#dvmNBDs z0cXvBqJ$SGuiT!f59U}U6K9;Ic-iI7v->~*1+fyvap1=te5L8NciP*>`c>CH#dCn8 z;Qe6~6hvIQlDRqfu>cBU=YYfi(E$9y@Wm^f+ZXU7WqkkCi;+3a{lk9b0>h>A&FyD- zUnMG?FR)vKmt&GZg*f|u(xgA+#f{T&oHzM{Ip$)!(eK|Vt?mM&#q-Odzjq{htXy;R z{C|q*bxJie&p+V9EwEZF(~M{N{Tg#^*df1iK)a|ZLaafW8PD>6S0Kj8G1vX~zf!d1 zZ9};1%WtJ2-dJ5M4Y5w1{?BSmcaZY+;_p7R3xoO|KWbsHVu@nn-0wE1IIr}^`tarkU6L3t!ybu(_x@c~h>;S^S@iETc)B&W z&Wx2uk|I95$J_QB-a`qtAjqkcaOj>3|o$E zioFGI>eYn(t<~5|xN)r)zowX+{ktkYGu(W{BmU;lX&`UFS*pEzvnJecUn zziAYD?8uq*^&cJVPLtMHLCT};27~?|MxsyBa(p9?UKqGot1&j~8+hcxpvB0{8vpki z89NhTH0aDJtC~j_l#-ywj+;UM`qAjIV`sdSe>VcXFmSmgVX(h$1a@KAVr(vEewT}_ zlDm4UUBx1mGp?89YpXF`K=~*=x&(EYudxtyimOtbYsGx02Qzv$J-Xvw8t1>Q!Yqic zcqSRVe^Z557@!o7>#X?K8V@HL>xyiw%rIm7R~qXwqHxlNl?86`*gT#)x(xqi883Ep zOqSuR4O+9cwGZc+#)uNE3n?8Rw}0qgR3W->^7ZG@s;Hy?^As=XQQ=;f?`wz%xEme+ zS&B%#_`Qwp^;TzQdbvmEc*OMJaFyP#(s*jut1Y921uy3+qe=g%2eYu~<(SM${K_iK z!XRxX2UYDEynj-KR~VoakK3*Ik2T&(|3-Q_PTpq{zap7P@*nweU7;1vCKt>7!whw) zyZPu1G*_YyK|65!bUR&Xz;bLRX8#8)wmWF)49_y!_V1^-9ZEZyUZS!x5+gEm`}YhY zwXyb52dPg3GMVJB(5TeXnTc}Iq=@H}>jU|_CA`QvWXAT69BaLGlQ!XR$IB`=w!c%t ziyIr)UGU{ORymJGwL-e93%jOmLnfX_4*zcl;1?9I9N)7(v8V0JIQ+%#uv17R+MEcn zHe6@L-*T{(8>X^Kl}R=6sJS}K-(-;8$(D|ni#Y#=2eqgu#F&gP_@&jD?jYs7^;jD8 zRQ~lGag|O)sW5EP@o{m{mlV-rN9M`XAk+WXax5K()fGE1^Y_Kon6aZ|?C0YJL^?M@ zRTkoPKIbQVkq6Zss8n(|?ekZ2#B7MP6SLcE4Uq41f#oZNsjhz^gY3eJ$Lo<^)G_`_ zj`~oe*L;lDrs_ea^H3<+xz(jH7YtpU=x-m5UNCcFbk8b6C3b%VdST$=+2*|d+as_G z!xm$6cJ46?``|jxZ~0LRgO$!PmlGIzP-Ewo!yI@p3&WJpsb?L-3iWf$2ix77jkXFT zb63wj5F2Xm%sh(M8oXtOpr<t!?$9Zeb5!i)c%dr{Vv&mpD&?UBYSO6{;bu$1zdi+c-sxb<`F!AE`#$bQJDD1+( zrP!R8exr=NWc0l2c!*J%de-OrP+ds5gfm?Jyedq_tVzeqo!<4iqp%}qn9DVM4vSq7 zYdOa~{si_+d^U?*7_u0d+h6oqUgVPLsulM$8QkdcdTb`*vg`P1@Gk}67ltpE zc5a{To6Gpc#7d+Da%W9FJObT?7SFp!tHAcJFvul^E#^4q(LUryE(n@ErSr_XAiC2iT^C%}_p4I0R?i$d8j0npw7q~v_DX|=t=*6q7fQ@UF8+Uo##+u! zr7-X4{*JPaHIGN&QMO+oDRctGi zqcWNJ`#h+wFiRzh>(YIxL2S@@fVJ%n<@QeATZQNjP|j0N&J3CVmuS2tI)S*peM6r3 z9{aOjoZ_|mo83+a+m$XiHh1Wr%h)k8m@mpO*=dyXm9fz;ti*H&DV0>N+WUeOPo4Hx zaYRnhaEh@#GK9SA^LcD{&|)rge%GfNWL$q+k7Z->t_DP z1(iw`*KhrdYD^bUKA(&)@pO%-F9`9PKJgftxqO;~n4dEdyJooT-%~x9(JO_qe4ko{ zSs0|4uMFN(s_+T}6yq^*>624D*L^7rP%f(s;_*tv!Vu+%9*YjI@KZG6LK7!}RUa54 z#^Yk)CzbHrr7xX7u9o%57FIbF79)A0Bt+exlq0Pyl|x@S2N|p<7O-NaG0nbXam;6rsqUo0hDlz_Qgyu5nj zdZRVC(p^nDO*-6QMc?hSe2exj)7_&ndEn`D#(m9iJ^V09jPJh43-r6t`#67?p0!`| zp8Gg|!hVR}<2m3zGrf=VDfS2_dK)KlijNz#=(_=@v$R2e7w5MT0>|4X{oa0Acb#JM zje0$czJ6W$-h4B6an{Q-e0mKxaasZzQkyt)zATeZ{e-EhC#8dZpqbnpZr{Id#y&zO zotrozlRuyS;V05}@GZT!a?X6-Q}KrI%yanB+{9Twe@EQIY4I*>F6z966Ip%pI;P&d z&iqKwW;IMYYUt8Az7Xs==J-yD52Cg-J~FZbd8BaL3G(HU%X>DKQd zrL8gm>n-Fm4htQ*z#<4BDM$;zdK-x4sVn0=I&|Yc++QE`$QW#NSGz6Th-o3vt!LRF z1JOK{UGx&67gwWg4wm0GY_!SdWFK$64MbvmBJ|$^sk=vwG+Qkkd>5hZs061`8dwDb^Bn*LGoGQY_9(K`$*~B?G!k1lPdQ{j=TP{-xG# ziw?@kr%fy&TwfvjXUmui?RIxloglVIHxb@!Y(8oekkb;zUoO*x{#hIULbBEEC5zp5 zoAT9F;NsD9@d^586*|e$pgY*#i_ZFWe}I6 z<5eLo4tqFih)%#C&E!qI&0cFS4votKqNnxYJ}H_Euvr5l zcc(V`S~X()$j*53DbJ>PLsu)|B<-YuJAxzh<}A~{fbP|Y`*ge_A~{HYrynVc+!{l- zDxqm_VWX?vhq$qMbQLn;=uaiI1|4x&uXK1Yp&!wkYA|b%55}US8};G-mErEqgwB&) z>JF*gY_l?#m_Y01krH(Jq6_um{tDI^4EplzWOE3ewbbgPJlc%G<#ZQ1QGsjPLC9%& zC~553aB|(n%pST>2@jsSW^5GFjA!=lA&#Q|l#o;xUB0xXb9ROq3p!38?myI^#jP*l zj2a7PsnKJqkPgUFqqkJy9f+kyS80k?gQezt0`!tT+^6GFbqE*f#c}HjeWVKM8u?aR z)Jf4S1*YAOhKDs2G#80_YfZFr$z-PaOTC3hC-&9b-(KS<90kAXI0UOY4B3LVhg2wY@S}5`)J*v12e-)wi3!N zZEf`n8C?%xW(~cT2FtiZ zHH^-qy^s?{w`GP{T-suZcmIkSoItMc35<1ls`nz z+OK&}KjjDPhv+??1O7A8eo9NsC)!PksONFb!00Zo=`6vJ_fmcFX2KyL=so%|o4Cl;{I7FHPM!^CNvfHnmD$E4wJwY;!%7 z>VfjwYBw8ut?&*?F3XEN;o{b{y=G&OPz1F}vFNQwJ@j`FoO=nV|FAVXGnORUb0O$7|`fwq-)(SrC&1;>unewR~JCWaB+)z z^j2FPaFQwzIgof{Tx_p)ivww;gF%(Ra@?>{abBd_DGsc~F7-OKRp;L$l*C3hAs=4; zHW1O%rGr(a_K9z;QTq%van>a#Mr9Vdxv)1t?GY!uy>4${*g2#UOT_4y%$nLEo}!s` zN8h*UHrD>M4JwuxE;p+7hI>$L(0tH=^T@0}wJV%3RkzhfuhHpKK7)2=N8x!Y;`h@$ zs(s-Gk61b&DNUN@fSicgWMoI}1t-k8iNvt-;RKJ?cEBZsUlVWbo7;@2!XSn?2Ip9<`H0hpi6obYiu? zdy6_#)V1YWN>RFICRNN|&W5PH-oUSGWiojIwaXh=#suTyzYF`T4fK)Z(jQZt3BQ+nsKL;GXO!l*y=QOzjXwM zIdrw-+mGH(;>YgE`@7S(gpBbbbGv?s1kKC1oVTT97Ktu~GuAu^bYTe=2mnbbJn+N9zN+V?)v3CLp- zp3dsi7P{)-LCRB3-y@r;5OIc9)db3|i^qVteHp|z?0UxOVx8d=Rubsj)gQ(;AC zUhZsGGoD|Nvl_CR86ja7;LMT8YG#8PTN=UL5n0U)By1iIMOIVM%w;vz0~Kp)tN%cM zzprIv^j>YQlL0$T7Ta6>>vWZRLg(dR6YxSWp$&)hj{wQu)PaWGCP3Rrdb_O-#f)o7 zqe&;0WFXm_U^I{BM`aZ|Pk=^wIKn_g43Dd~tI}~967r`qescLt>_JH}mpjd?Th8F* zNK91~yH8T2g&rM4d5iq^7L_2!o;N1Dh`lEYYqQaz5uv4_LG4(*Tsq`jobzOeu+IxS zP=H4Qne=WY)ZMwTM@bEc3SF+bP5VS5#>t#kh5aZV+#FCmi(LOdcBE*;-R`Z#<}FEW z3?`Gc!QPZ=%p7o2x+Xj^AL4uLPSJP`Dk@i~7&%9o%p3Nl7&PoBZFPr`qq1U?qcST5 zJ5vnmmE<-Q&RVkB?OB2<#^X8yutUY*)q%xD%-Ev>ES1e9u=+G9mwm@B6`)?;-W@=* zEi`X6sITuLy&d)tV2){@IK6{iDh4yR8tb%ue4)SCZqe4{@o~AB4|`UsaU<|N`W4k1 z>{u~)Yji5ctz@;^Zf&BIlfJQ2B}da)|I3XIbpcV+zROhk8e#Mf_N^FPCA-Bz ziqW`AEq1LKwDefAcs$0tQT6C_edxe8U78nZKTtlA;xTe}$6ZyI zCge-~j@GN|$=inL^NkoOm(5ajX^n^dRTDx{HEE4H7K3L(@%O!VVeQN$UK|MDCfkE%Uu9JLWAXPbC59zOynV5*w4 zMpM!Bw{c@M-Or9O;6{quD+@zOWCKyYiYQ7m}x~OwDim|vzLRENeEb16Aha%EHkF~lu zzf9G0>4UY|TBrOFmNW&xG2`>_5_>FF^)|yR%pZ_uPO?(UNzOA- z)!Q;&E+pc0K7G!JNxl={r)gxq{S$Ab-@SwWw_ny-)U)Q_aVGP7%@67KdC$I-_g6dz z{HLY+Ql4a3ICjM>q!x*Y;Bg>DSD23q0Ca-^-IcJtxE{C7Q>_{0Qht7@^$l-@EEPDBNq#UQ; z{W<+_p2M?dM@oHih)*3=xlPqn&>YlRx5a##mzLD*;B)%tV^f#tYvpbfS~7k?@UN)H zW~Q^PC?~R7f;w(H`(ktx=i}itLRGIN4NS(xscfVeN1ShaI%b-KGvq$3^4h5>;VB zbL#oy;&6Ep)PfN~*^ZSC>c>X&tODEwk1BBLn)>SN2DaAqfNF3BuDu5A_d)A{^Nvvu z)-^8TYsE4U%cUp#b06^(Rp1P(y#LKWX72; z*rt1Fji3&kBGo4^OtuJ>;1n-4hL@8;gS;o*RcD4MmX$2XDvS};DpZ3_e@2Cp6Jv39 z3RPfQ3wwzdv8ufWMl8)9O@zG>R_ar9EY)`jc#LO zGCne@zq+=qqX5;7oojaVvfn*oZ~0w22v`YT#fxNBY$T><1+`&=WS7*(#hUZz|5uYn zK~1>WL04ZS#pQ=kA=cGzVrZd&YA-u^+{o!P)QK}xG!Q#b;~@gcRJCD)8qG~kPE}>tAZ5y>Smz&ig>a{r>l!iDqpRw}22iZG zxmqJ?#Fh2oiJ+lItTwZx$*`;`X?!$~oWegtjkuydJT?|*Z&4$r^8;x?9u!PMl6@ke4={r4{lz@w*8?SKq2R8(JrRm*P|Y#hhJOE64Eh z(WPQ*>Vmj-=DZ1ub9sC+Qz;%Hk4~i+^7zq|X}(G^>bI11&Yr{LrczuxcSjeCjSdN! zhdRr}_hQ`XOAG9I^CNvfMpqI0%f&?Vh>CI5@*?Xt?Ar$zj;gNC89^yz2wy{_J@*q- z73;xXceuBdU^gXgpV(i%z1O3i2Xx?yYM#sB;QeJk1W75kZ{#^6ut{BKU}GSAG9V{t z)X&z)i}d-_98T9S-fC?o3!9r=x4bP+b?eVP;13aCu#`!l28XKE8oO>do$)EbRK#(DJ00>#Wg4zf zFUcj^08<#cRI<3d>nHnBouP^`nY`;KRbZAyT8!w)aotN&_QYz$xDk4!`lW>T1i~YI zKio|gwYkSkF5kuhu`zm(8Q~{ZBRYTwdrxqKA;%LO1 z4O{~r#ZktVPNkT13{5(TwOMdxq#vgY0^y*OvVa;lQcnB*rNYGCdow~DK$*g??@)2Q z`AD}-!i*NM2>G4!)U|LPboEcUv6+Ww)uH5sEuxUT@_pmITcJq_D8`~#BqX?yg#g@q2Ovd@Y2=B z^$h;OX!JO2k1v93%kNiWdl#H|=DBRk?~TBA1}#VS=(kfe>fcq!`c#nAm>A89D-Kon z-Tou4LnfVZ&aeKRGJZXn9{qM7jrq5Im=2r8qh!3!-y+1-#;|X^vMM)MjOWoL=rR7y zN<3$HVkzR{?%$}ui$mk`3cpThI5EEMJrf|tgyo6aPv~n3@R_6PCn9eZ8^T}AnAFD>37~YQ(-et;xE?TL_ zXg$DK;UB5QbA~6LLCy;Qa0Ol*8kg66AEB+#NnP#as)=XpOtJ$kmKsL8{t)3(|GAE} zmv7PbfvoK|B6H1ky#JsC`_SC{-h8ZTWI z#`OTIz6>yDt9X=*_wfUjsPUZTI*h-+5;N^*NOv(rjF!=^|GN@7mcLxh=YLfq+F3!< zjTI?bjK%(+4h?RXOe89^e!kB^txU>^*AJ(6zqbM}a&(N<{GI|@Gl^d_S*vWJ{|0*; z-c!Phm0FIM-(5m0q;teG$91oLmy4!TEM<1eF&X>yomH4cmdX(siTREy!~$ETnw|3u zzP*T-rFF`zmEv-C?AyG!MfQqOnfTz{Ueq`p!0mAQRtGbBbd25l76-|_(xBWd^Q>F`kza_k`JV_67n3aNDAtHhWEPZ*f4-?2 zF>ZtmNB<+?EmQBj>5rOp&GA1};yJ?;OAP1Zd}9S(9NJk=MGo656w%BSztIo$Oy*!gHYHQsh}lxGC;y6jqzo zQp!xDdm&4)`j^SJzmvmthAW;)CO`9UeWfSjs2xr^ff47sM|il* zDF2lYGY-+CgHVzBmz9WxA&S=u=Wl*>C89GxF&-Cl{tLp>2OJ&j+WhAnt}|Rqnu7XJ zxE_Xo=0hz^sTh-y+OP6q#*LEEd;heEs8e~X-QHk=eSKf)M~xdPlPCQrCCs{dhdJ-y z9~V)L?u#2Iqlf-cC1OEn#d?9$L;tW6(HWo^kL!p12SvPvTNJA`ZnoOAQ<9pI@#TuW3EH2H`8=*&A z;RK2=D&y6qBR!rYvS@$Ri&~R@WGurMj=*+UE!Pwt&5T{qf5nR&iOJMa-d=%ebYek_ z!YM;T48||Ej!?1m~ZB%TKRxuC~!zLJt9W!^X%3~wZBS-GxH@uEpUhIXftrlH8 zyT3M6M`z}4t$e;2D>y9Tdts#(iR<_n*r?m<`<>02&KdCNE@a>OE@m>I3yy}xgt45r z9*u=vbiGQ%I9cL+xVIJYsD8elYz}ceQ0)5Q_D$?DxN)Q9qR_5`irW`1GzObHYsp@F zAIDoSc6WChow!|SoLAMU#;0Q`>pJA7c%W=Hs)@!?rh$fWy{tQpVjgGfR z9Zb09ML4lW^5|jsQ*U+9$UU~!P8?r3%hM{NDiKx**8GZ_7|qYr_jep@xW{E75_6cD z&+QUk^n5ZoqAdqapAKE6@Wmta;V0#qkrvjUO0T2S_4L`G^hs}bWy$oMBW z9XwrI%5;4kDl?Of3e?H+^$V&IqejT}V%(^}%asq^Al{42D>B^ud>?k)XgyMkv-dyG zMMNN#36XLbqL4YC>~k69!ZMZno{T;F90u1JtQ?i`ct5+0T2%64JkEZ8RvC{IVlg)7 z6Md!!J9<``80NYMGjc|mJj5doV(MWxDqUPLce#wfwKA@{s=h|wh_N~wW%RoIdd5Rq z&rxg2M02NTtd-FmF%o+Xp8O6nXm81}(B}x1OUFy3w}-{}w~Uopbunw=D3=4iT8$XT zRYpp$xOg?@^tr0wWj|`%NST#!$;GT8m(Q(?H?#!4lkGeEH> z=j`M|1-#m_*bG-6^k7bIlou^Ty~V;PoJdT@HZPYjZ50rS%XoQ9CEOY+wM;C(Si-Ab zCSr@lSdR-nOoy#vL}ru=Wkj=7qAq#2(kX-_76Fmr!IbOvQl+GS^X5=efq^J>b zr(L`v$I->9+WKcW{qk}PwVuvsZg=OWm(Uz`iZv&fow(n^@+@*O9>>X-Rp3RAja)Rrv!Ol{5x6$hK3#vxUX>R}dy@52uae-T_FX1R~ zV5ORf>l1o$6{m+s6w>heD%PL!>@c6*;-F8pjklPD}vKFPXp3Uqq|*Pgo34^XRUG( zr#r_WhtbT{S=_-Qhv9Njr>6q9(QPLBBp|_KiW#I0v|?JozS6{Lz1t86m76^UY_^@+m!-u-|00R*aZ#Et zI>+r>6}sFLr9bvIDUl zu_$!7K4}bg7&2$IJkdgqF|VB0_=FN#7-ih)T93D|3jU3AT7B0J*NyPFdLyt{;EnIF zyV05V*fKtM>6-Tn=63xpREOr*s(fp~J1W zKbB~mn)(#|cSyXOn!2}@Tpn%Tv!Omt&C#1T=@07n?9}b^_qJPfbL&00`dPf5L_a^M z-s@kpQ?u_=&&}w6!*d_gAJlI=2mCvxo-F?57K5l4Pu+R@6X{?7U-hi~b;oMEN!N?^ zwuVPuvi_we~7B%}a|*8w=~pYn$iSy}34XS}UDg9&dRJb}{+#lt&zeC|=+i^c1V?9`FTa2H^ZLn#uF#Y0oK)6d6?cZSs0ng>P7^emm; zjc?qUGKmAuWA(qx;2HXd{F&qVzu@1G;D>t2(Vf;G>Gz?jb^3YfQfay`sWH>v#PTUU z;9g#bX?-?_onzDYwmKawuvcU@4Sg_PT0LjWtK#%>bV6R*Ov!gx?a?iU;=YI}6TtdV z3ysNYpbzpw7tOQnMyLHqa;DQ5Zp>Q{)`w6$^gnJk23HmduD8A1ZMD;+Nq(5YKe6h-nFysRj~Q0IY<+~*33C7gTI(& z4&97vX^)~1bllZWLbTfC#l%7nqlHCVv&l;HLoK=-EBhHl7kU;UA7_(JKM+NmSp{u{ zo9)o4xZ1dqEYh{)E8xWF`Pty;>!H;Fxkaf4r_rrk=tR=m$)2N<8%57U5P+jy|BDOan=!C zUvD$fd&am(5V{e8wm=>2y{<|Yid>y3B);>;WgH%=M6^lt#>?!7hYm}Vzx8%nY*RQX z0o{npyTnB-w@VMufd%4V29rE*j&k#d4#WbUO`JCx7n?@+VU9*S&-trK+G*^Ge+$KB z;(6#jv~a}-b!J=;Z#kWY&O;lOl-mZGVS$u#84vUwT9{DX3!`+jRBn= zXnS%yBl-#}5CbhxuBHNAg*hTs&592=3?*z9xjJa{6_zn4t;f+_Xrso_pfYE( zmPNztzUU1^|Jc?Rr9IlX*}YBofv*SWKsd`Ey@4{Xa|xT%2Bn)jo%u#VnR-*{$cDUt zIEubNjYu~g2*7m|S%yk0V=JOBu!xCRyAA10C9_ANFR+Bzn`Cwb9f3u}2>ui^ljsIi zh$OZ*W+u@QSj3#{Ork5WggDWeL|0%DF~UqTng@M>3UR61xZFu1=>aZwjJ`nHg0JC@ zlhI(4PMR$QIQ;cE6Tv}Gpp8}tZup}yy9W9J1=>!7Qlp?POw({#Z1e&Gi)<)LQ-@PRJ1qN@SD>Eomx{d)$YO`1Ov zBlYOllSsJTG+gSr3@`fha;&*d2XF;5&v)K9ZI3QJ;6;fEIPBNENE4znPvCTV-GX}e zpDRY=q9<>0EsDl<*#FNYYS4)%P(%fmEqXC$2fcR^r;#>y0&y4#N5`GOp+Fl|mL-kC zCgM#KBMIoY16GWz7pK+HZ3i6WyQ0wK$ml@o7X#9IUkT+<(VON#EfDLC>aa_X z&`L)Ol|)@_^!rI`zCGM+1jdV}Pid1b?*aNWA<0IRa!=Yk{jF|K+J`V?<2CE(N&C3* z4Bp~7;NPiw(rz`GIMJpw)TceF(aK$E#!9V|SDDVXiM%WAJ%qsVwr*G2+vt1Dm+nf7 z%QGO%59S1T#`L9)kx8pB4Kn#T#W=KSRrRIahQAY@ehwdXUs`O=}hrvqAKGmXVjQ6H- zmab0{3Eo?dRA8MyO$_hgxoM(=Y|{v^#hFhG3JTEg5PFhh0?`&r101fOQ#Ue znRX{R*VvU6z?sl_OFD-JudRSqAkJ6bIW+ifgoY!5ZvbuZ+6riav~g89@Z1OubZxeW zo#LeVuQ5g*;k}ty1+x6HnDq<~?hLhhRw(zVIPlvvPAENG<%{sxs1uA-#?tj+LUF9t zQku$+ll`wTE(0Pwww)dw>UV|?8=a(<7oJ*%6v{hU*~1HK8yA)@P+1TT7=*c)0azdE$R=maVYeYGBqo|8 z29I7NvEzsiZYv6TVOi`w0TeQrV(+QK6uZ#=F%QZvlu@|v6<WH8~3tk^Ldlw4l z8MI^_zM(^vjRWhcON~PpR0oZNJ4*o_0M2m~DK35<%K`3Aa&!XZ$O|;p#M_O% z0ad0&;Xc>bjh+C)-b~Wnc9)t}6}OA@6+e%s*O9Bkt>owlFflEPi%7-KW0AQtB+wf` z$W)!Y+a5lUq!g7_mBW@;AwFXM!+1<)RiQfon8QYjlWg+2EmBteJRa2%{Xu2|9RfgY zZ+9CV*Q9#W$(@FZ{s18EjE1scfFso#naen%R{+RVEGTuBSsiQ6qd$io^$IU04x?v4 zqGmb^MG~raz=HLrmg~qw|3DGfC_lD&eyLmE_{CI9_?KiA^yAuA`RdZlV_b1_rJJ(syn-O3`;95C@~( z=p1HrBYF@BcdbE(WAYR0O)b+Mj(!9}MK&XzW^_<_AI&Fv5)__A5DqCuaogf9t{ zH@(d2L8n3$ehJij^>F(EIu;0ZwbyEI?QJCK)pip(zhS$(9b^44dmlO%GURA8%&i}E zFl30<9EbCm+xgJVK)Cm(jqZ?FP~P&y@E1J|IjTcF`OA{ydZ~#3j zaSE6d@qRf?f*PI5F_hTtyS_NtLcLA_by=LaVJ#zXM8}GT)sDW40%AO?-62=^5-#d^ zBrX(4=HEwL!`vN&sO_mhkG!rDMUjnv|A-p#BcgM60-?qzL${Po z%vHu&!>Bx}9zi(YxjhV(NCLMp*s%yN!Ful~j@|nR%{J;+--}^lx?hN&ZQEL;hpd(NFTP`6J>TogEQ)mH-9{2z*QuD%jnH}qJ-)6d~?-B&UZ4v$YH8wt)@^AR(Z z3|CaYr0~8*f27}sroNJXI+{zg>og{t>{@b%Upal^nATIc?r2Q;UgRZ>U85!&;U;I;!xY4VLMKV`n;0r_SoJ5WC6J-> zGjH7l_Fk9V3Xpjl8#yxFjNHlGjg3y`cuGmvJk}pXduAdQDxmHruFE`5mrVZdIk`#1 z&^KKDjm+RkL@nr1Fts^Xpb{}qnZFU3rf^rmdP^1;3zAtJfvZJ24yGgS3L{EpaJn)J z8FNk@J3ahmnW@p3F=v&_x5_+?LXAGJoRuf@H43?6&#IbaUtP)F6C!gq3O}l3opflb zlQhdRYtucGCYJFcthn52iKMR`b`)}>GIP_-BI`=XD}jBv&c#Y(?#95?f*uFi!Fkvw zGKZ5Ro5EfR?ybc*pF(DGa&%MR>rB4)957ab%l-T zlG&TC%#+<9$&wixjd`OaOJ-^m>J61FnW0h0H$k#wrbgk%l`O};fsBI8)O1Crh7l}( zX?ElyUr3lTTca>J!SY7sYJ_FRMxu@rEMJYm`Ry`iBXMhrl{ej-?vVK#iO-3ZFU`m9 z(*{@`9sf_7T~}V=Ed8x+=H{dHtofRCWNtobK1A>F9Ppo|GB1;d7^EdA!9FET|`n&m>ow|Kqh2oFte}5Xi`3?O+{nq)LN$?L4vo#W6 zYzoJJWlZZdbuOjPW^y=Vq}0mcKuZ6Y;+!jo11>*-@bq(dT<35m#pPOQ9Ain;o0piW z97J67OUm)A{z$(MO+7?EnN*G%`}k}Qvj+3Bq&oQ=t?CMqqnFS)RYj3Fx@n%G_UAV) z_BvG2rH#VDut!%cicUo2alCN3iV{^tWZLIH27H}7LTB|)O-&$)7 z#R2W%^X;$@5m`_bMAZGd+ZbAWreRbGxxchI;)duGQI$kX*9EU{{9LQbB8Bf-V7?O0 z*^8>OXfYW!nmb~;H>3ukB0Y6OWbk}*5ouLpq>lA=insqPJ3InZCrTT2FgKha%?HU| zHI(-avsV>nmA&eh`lA_#y(+vB+EX_gTgiH|h22|!ulXKFtc=HSWK-e4!DgU4Klhq+ z3*U$iB-~b=U>O)HRP~2iXx!ONun|@_H)M2l4%d!S8=6Uv`Mw^Sqf+SkL>nvuGQ?IJ zU9#$1;@HK3ZW+)diJoiyAs7)B!9q{mNUfsWi@n`OyK9ma7ZEnVLQmXC9TAbcBM%n9 zLXVk3Z;6>crBmR!=l?01KUdsjj{a6RKJ`I*)_l!6;!__pAENho4)}Md_|z@NGMMN_ zk41^V6l5}3yG&<`F^@>Sn*cb@){RKLmA=P(>4;QRjsaknxG}C4n+-)7Q&($+&z#mu zC6~urm`KzZd9)%?kjKv|wz(ov*kwO&Jcq}1Bq}<0$8PCbIo6tom|OV~(5+rlU{C9h z^!w1%I{kEno-k&953gKa@Rah9Mva}7tHKj{k}gXdCW~!4C1KdyNm43E98vRNcZhqh zMFc2K=nREHgD!~Q*7d_)Bbcr@#q&P|dnB)lT^aY&KiAcrACX^?{hW2^&QD}d$TxTn z6ZTA{JD-a4y(}^(szF~s(4;{P$dVrQo#*K+ZIkQKKP4EK9tD@{>d{}PXU&(^qZ8mB zV1l)&FYk^Y)!~F(o8HA}(=ifiX;Vn(|Dl-Y(x!LN-yctS`Z+wVwdsU-JWi(?qA3=A zojHlASyASvUs8l$r$5r~LsMT%KdUvXF>+SF8qbv$-{EGOwDOZ@$NMi?TCEV%M}``8 zTpNRan`(TiRhB}ZWSF)R>X&VF26RMghD26(_FfnPW4$I06*XKgR63+JL)r(bHa!Zo zKA&hs?G{j%2a;OaGtMPMEyZ>N5V>eJDzp~pyDxOt=zie2(QpT>m7Uk~qphtZ4dXF~ zjT$W;JCM_k%CzSZr%|gVu$MO|qMK}NoX4jyS~F9;Fta#^7FAjjZ#|*=NGsr)*$mf{ zUM??$JeWkwR*k$s4(w$D@44jGE#g@Ub+@(B?xJCz-}IWEoaWF)Y>U3{!t#O} z-6Gx_-Jy}uQ6%DAgg&8th(T6ksp58OM7@j+_-N+5eJ5F=$}Q=V|O+ZTs^4@W7L=+Y4)xf0$ON`oua(fe|4SCidd8mKe5{rAHqM0v|t5Puo3@1JtK zc6TtOD+&~Qv-4I%kn=*bhYrgF##(QuB|C*E?>}nfjUn9yy}j9+r>jlUJp>;!b7mhq zKQo*EP>l%3HU!b38Sfz)Ka?TT4IgSRsM>ao0o0P&%;_uWLwHFatiTMUkm2bEOf*CD z2O=^N#`l|ubo04v9Nz>mWR?B%EFgw&RYH}eiRn@zPOw<@s}3vZtp70n5*p; z$~FvAy=9B@XaB;$MCWT55*Mfca|4M^D5@mQAhVYC<+%B08cz#S=I;g4$mrnr<(Tq3 zv^drvlNb2Y3dBld%v)->yN%vkM2&0-a=YrEXl!xT+IgWI0%w%bfPbvflt&T6>g1^V zqXJ&I&6yW>*_Pi7>G$_&wAI1342mqEcPvQ3UZi^aa{l&e~Mcik}r zjbO&HhMq%Qc$YB(={{Oe-YaLu5uHG`;hhE+;y(+UD;Ah9XF0q69R?PTXxpT!ZOopme_$X|<$VPEg!8?B-$o;wSFRe&Wauu<*`2><;L159=qmB? zpG_vR{<{Y1;;7#dfh0?Kyrq@#CVt02GqjLWKo+b&l}x?DZ&%}5fWCBc8sN7qJW-e% zhUM^jpH154H%%-YxF3YXMLmDRL~3-JqYg#k)ZDEk-EA}@2idTUPW|-^JK3dbrcS5V zw7?ADT2>`zFTdTu!cle>khfgUFmv~72GU$GP2Al5szzFtaVNvGRY!@2QORl4UnyWm zjd?k^i+Ir6a@@A*%F~ev7O}pv!}*nO%`inyZ*6p$R4N?$?pAN<`g9O3$K$uKxE8Fp z1arIAn;G0NRL&y!baAFKIL+b|`Wx5-p-WHVIJS3#%upM2VxjUxs~y=8j(y^L)%7(BXWA+XR1*ruH%2& zz%|ma3Ed4z&Sn^wIeq(6Wn4p^=*&;UATi$8vJtp=?N1uG@#D2zj_xN68#LQ7D3$R@^n9DpvH<(b5ixA8V}~5v3R3!m+{7aB*PV_?NkK5eCLwW z`9GYYwY#l2QB21lZJls2%pWu{4ZT1s7P0A465p4* zCmq%&D(ikgW6NqQYahoYlk*EuO*9gHiAR8@;&z1ZXU0(o`FZo6+yB0g!3~>nPNv^f zKn=GHIkfN1(C7}&I4g*;VZNt;7AXhdShG0$>$^?Fs%=hOHf;#5zXUN+oA1ie#loyI zOMO=?XXk&Xfky#NseKDe#2b&%_TN#3XDtnHG=`hsuF)u5iy4c-O)lpDZ3Vn6kZPER zBKhoyqmId1eY1^LHJ#q8k=skZN#iYu;|DBlfcngg{kUm3=6ob;4r2vU$gMnldEL#N2pzOa2dABRSVH1b%)N%TI*39 z))p*pesdn`$VT5>xj@IS1bQ}{A3n74)>oWjnoSj^abe~j zU7NXEZk6#xFqHusiZ5ycTQBhAgsv3^ctnXx~DIE|) zQ7vQcg|=Ag&_PwfQE-PZfIjx^(g-$JZVd8P33)vxvcr4Ex%)|m+@aE8gXIg@@53Vh zT+Y6waT`>(jB{KpBhGgXaUNGwA?f1QmELymd^+Fm?V@bD863Uj?z+94VWT9x$lawb z9W7@Q?!7Z{*_B3yjtXhPWudijzFoNm%A4oRT7JkvE^ZuoS-v&t-n3^2zZE)4U}Ig% zMxd@+j%4j{dh=@wnDJ~K&Sw4^jkiB-ITPS+-UXPrW{D8(?Ufk@> zb+(rS`zJW8iwX;de~i_@VO=Onms} z%DbckHMb)IfhgsAhD_dDue&YFg;2s9hRN9oU!GyEFP@|OGt$9w*C4i(UiIB8IsLt+ zu&KaBuv++5w&CTy61fu=&gXdLfEMh7vN`6B&-t+D41B1%N_WN^k+Z^94aAbls|w+H zqjPm=D>-_Wy^c}m%gNLma!kl>oCvr>TfioGeHC7yCgkGZ%Q@ciU@)Tks9ZBui?H{K zb;KuNTb?!0DJIdSuAe9|5zd~yKgTSZ)0SHFrIX|GnHzF+6Sg&3EL{rr&~Ud+pg;@2|BF(MCK)zWJi>@Z$)yWXo!)NJ`q4)4oM zyev=}h{wqAt27=J8Y=<8!4Uz) zsdy(1tn415Ff_-i#0fGd3^Wm9r5P+a{Qk4YNX>B*F*lRq;5xijoc=rG!X;nQVy{27 zj3s)^MBQA8LnVVZZQ`v*!egZMsDTGZwSAdxskPYYyEeG|?R^Sui3&4~*cLpA)TveW^Ku&6PM5J2V3#XkTjM-9SoTVj{0kp3)cFc(EyU@ECE27b)bd=e{h& z-n$DICwyTM&sah+JQyyUcMpdh?iDkh_zOzN)yB22zTn~=cb71$4QyXbuDkpB8Z+r6 zL$my#+9mgvEG|lT#KzuqgaM*rKF`KyIVpaw!j$FD8%bwN9L|y3rD1zKV>x|^ zg&bwIIy4is{}l7=O7u_8l4%Z5k0Ii1R_7YGIW^ z!4{Fe`#VSD?Fv_vA8huh)6jzQpF<}4@f3~KY6)&`_7`}8&gm2P>E&B3Z} z5|t3ab#{&l^ZQ8Ceo>B1m!eN5!p}w8ZykdlHrHHcu8`(t(Zq)~rv_ZYA$-nwl!!!97QRdlUUJO}*zzWBWNf1;PT;i!GO#7#6p1>ZC^on4xm-{SUe0^m5?qQ9FjgR{r< zzdw!Myj6ctzx6F{Q8|Y14!*|CSG&!e*3N1!kGDJqcaX}Lr#xD>xIrF2tG)-fr-5rq zZcnIxrrT`kP7C@^KZk$Ux41>;?zn5*@{YVZ^APhIwTzjwq_L~e)Quz_*j%nm z?1I474K?zFkNLd|X-5_1PXt%&g$`V0Rqh*?^DD$|2wZjMXJk%0Vu;9Yh+PrLIQveV z-cBqIoZ0D9+J(#Y&!-8=rM2hjZ*}*>4`Im0Yu2$Je%yElZ}A-P?^Ji1-YS%;n#_rA zh^YUN8zP}q?}%y`bynf;j<ZsyzH=B~odhl)L zbXg{EWA?-`GHLCJkjc*}#<}*y+wgb7)6e0f-V@{Vx5lQZcvo*OVs4Ai2kGi{Nc?`4 z{z$(MO>NT8>f24_jE~zFovUor*4yIPeUXcVi#P-{=7r@4+K()Y!-J*5lmKcc^gtUM zamdh6*Sgr=ZquzhBBdqU)x*#^T1CVmLzlnCI=3X|rEBs%24KsK8aG&3B#Zrm9$8GS+Z?x1)`!aj^z21}!qf*oPn7?c{g(7-vo@9A#U1pmH7YB1f!H z^WI+#C02q55?5IuvceiE8J=C8TiBqpJ@xGt8q%MqOx>@@4lB&^eN!6Jn@R>zWQHw7 z^S-HlBQhCqkq=gg(h|=~MWoHBLH#-FsD48CxX1!4RNCG*(?)l&MaO`vhU)!eGI1J_ z|IINshO{_>@tC<38D9fW-#}-xHKz1re$|7!9pWnG_mecCfMXycGmj#ho71@1Yg*R- z{^wDL8Vc4Z&b7=uDoG`kiS*L;aA!9^B1pq}^Oo^CGS7-o&roL<1M9z17~IUiB3$%$ z#Kh%#yD~3J;O2MU?VGoZ4$5NHghf6polxo!U4PCpsF`0ysItyA7AjZWl=)IX&2KQ% zZ1ty*(Rf*8ny~0L2lIx7ed8UR$h0DHqV7{3nI^Pq|49wwU__=vc?SDA*n#q10|zHE z9fQ9$Tqp%oZ!TgwQ9+Su8ud6YiXJJivO%-a&jZszk!kEi=eM>xbl@LuWFL@`n9@x@ z83K7v*?SQZ8H>jGY}kQJG;sm6v`cXlLx!{uRK{k*4&*=$!(_TTuoIb>OWnrh4%wwS ziTT@le4Rd}P47HI`bpA0(seIa49(Kt>SjnkK+l@5Sx1KSqvk{O9?t>)sVYNi2+Krw zA>70KsAOR9>X^=w8F_Z}UG)7NU+ZQ^-$LJGzI1jpCcp6g5q6+VFzZR<%xNwBxilVT za-*{}N=6#3+$f~+GxQ%`uH5LY^tb<}|2{+i>6gxp#^x@tFb*jZj}z~1r=O1(@A7qA zZysXqKC&8vh9O3RpSYV!zYa~U(c8+rsF-bT?-37_)>dn}byUahs8nd|UNECoR>7-% zCXEXbk;Uo7qZgCrF?H^k{`x8XM#|!NoMR5J=c$B)C;+(P zeTJ|obF9VWYP*@}7+E%<{_9VdOBdE3?nsAKSwzf<)0lN-Co7gJAVJr{k`zciAw1MN z)k`<}4GK7F6#seSGVqu=iMQLQ^Hf$F*W0^v;tAbTk;q95z@5%68_0L?e-qrKAM`3# z{Jxg{joHDi3iQ7h-;n>9b=Z?1&L0u)@Ems8rzm^!Nt&$_wI(4$j{+%pznjhiVc@B> z7v4eN?y@Dp)4I0gFVnN;OWTt1c!h5dw$xF}Omt=RGp@G!SWI{Z@(OSWG56fxi6; zOtGgAs7@&am+MVN_kIPgs1zEC`^_>c^C8rvm#a-e4}S%&3}-Af`oj@jk |^!n?WBNqgwRmEA<)*+q@VVh$zV_d%;>C1 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�)tQ&&FA@zO#ZoS(YB<087brXjDuW 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 literal 0 HcmV?d00001 diff --git a/src/rust/vendor/windows_aarch64_msvc/license-apache-2.0 b/src/rust/vendor/windows_aarch64_msvc/license-apache-2.0 new file mode 100644 index 000000000..b5ed4ecec --- /dev/null +++ b/src/rust/vendor/windows_aarch64_msvc/license-apache-2.0 @@ -0,0 +1,201 @@ + 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 (c) Microsoft Corporation. + + 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. diff --git a/src/rust/vendor/windows_aarch64_msvc/license-mit b/src/rust/vendor/windows_aarch64_msvc/license-mit new file mode 100644 index 000000000..9e841e7a2 --- /dev/null +++ b/src/rust/vendor/windows_aarch64_msvc/license-mit @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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 diff --git a/src/rust/vendor/windows_aarch64_msvc/src/lib.rs b/src/rust/vendor/windows_aarch64_msvc/src/lib.rs new file mode 100644 index 000000000..0c9ac1ac8 --- /dev/null +++ b/src/rust/vendor/windows_aarch64_msvc/src/lib.rs @@ -0,0 +1 @@ +#![no_std] diff --git a/src/rust/vendor/windows_i686_gnu/.cargo-checksum.json b/src/rust/vendor/windows_i686_gnu/.cargo-checksum.json new file mode 100644 index 000000000..488d64f53 --- /dev/null +++ b/src/rust/vendor/windows_i686_gnu/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"9653fad6c637ee915f272aad4cfe67cf31242d6a2fd96124e571a36213e0ee0f","build.rs":"9a83c55ec67fd48d6df4adccfbe0f3245f4002b543cacb586005d8991bddb29e","lib/libwindows.0.52.0.a":"f5e34350f9909e631c3e44b01c1d8b87204faecf1aa45118c5499bb9e76eeedd","license-apache-2.0":"c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b","license-mit":"c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383","src/lib.rs":"bdf6c7cf1fc01f69cc1d4e52948d1f246fdd310e6323d5dd1efd23f1daf382ef"},"package":"88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"} \ No newline at end of file diff --git a/src/rust/vendor/windows_i686_gnu/Cargo.toml b/src/rust/vendor/windows_i686_gnu/Cargo.toml new file mode 100644 index 000000000..d351dda3e --- /dev/null +++ b/src/rust/vendor/windows_i686_gnu/Cargo.toml @@ -0,0 +1,24 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +rust-version = "1.56" +name = "windows_i686_gnu" +version = "0.52.5" +authors = ["Microsoft"] +description = "Import lib for Windows" +license = "MIT OR Apache-2.0" +repository = "https://github.com/microsoft/windows-rs" + +[package.metadata.docs.rs] +default-target = "x86_64-pc-windows-msvc" +targets = [] diff --git a/src/rust/vendor/windows_i686_gnu/build.rs b/src/rust/vendor/windows_i686_gnu/build.rs new file mode 100644 index 000000000..b5caa2baa --- /dev/null +++ b/src/rust/vendor/windows_i686_gnu/build.rs @@ -0,0 +1,5 @@ +fn main() { + let dir = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + + println!("cargo:rustc-link-search=native={}", std::path::Path::new(&dir).join("lib").display()); +} diff --git a/src/rust/vendor/windows_i686_gnu/lib/libwindows.0.52.0.a b/src/rust/vendor/windows_i686_gnu/lib/libwindows.0.52.0.a new file mode 100644 index 0000000000000000000000000000000000000000..b396a5019f7db5a4231c682407d6b9e00779cf6a GIT binary patch literal 13123844 zcmY)1dwkaO|3C1D$z&!oGim4Z>DuYq>DqZRlO&lWNhUK%k|deQBs0lOCP^kqGD#+r znMsl)nSCvkQNu)G^*-ZZ7aD>?N4 z|6j`gxvI?#bLFaf1klyX5pc}{1dKl**LfmL?FgWmLlH0w2)KK^+%o|IbZ@oX*NgzV zze654hyZ%ae<~bExdJ+Nf)U?6S3Jx9u-= zcgh~ii+->@rXT&~r!feipX=op>nHuXMt-yTbo8VgAB+GxF-&?K2%wXB(mN9Y)MtI6 ze(R+P#Bn(_1%Y(hY&m@i0_ltvIkOvqG{jqc3J^%Xlf|zZf#knZhPEMa*eV1DdPwjf z1X8G7r*OMW5xo-ai9m`S5buRRatxECU<6W1xHxU3^d!m5K_Iy-C(0Qqd1Dbs1yiJG z1_EjLbSa*OKq{FdBjzEHMlO?4jR>UCt7Xha1XAe+8M_66G;WiO-;6+-utO$pM<7kI z>r`gP(c}T;b}Us4m}1A!RGUN74#;#HX~q$`%M*b#t6yf@NcVckeM1mP_Yai^YAT3xT3$0$Nvs|ctzbvxzg`OTP&-f#dp0#s_p0mEw^HuV~It0>- zt@2VY0%=u|te%NLYFa64b|R48@RK)75J+!Lled>5klwL9pm!}VdaqB~;}J+3i)B*< z0%^0=Nn30#ZME9A)gkaRn@c-9r6Ux9)R`kYOA$z2^JG^e0%`XK={|%&`hJ-FV7bzd zbL6L02&A9e<(D1=(&0!sVsYr0)knu`k&j}b;#L=5p+%`g3h($>AX>L{uBh!1q%>lPZ&Xgc02_il(3-) zq6n8njYSZ})Jfbb1SKp)kYk@D9YPSLoDgRZf+z!$<&PlB9wE7<2%>yjlL`l1I1WK{ z(P+821VMDkEV*l>9VmdUmb z+4HVjMHhl-$}yR0{iJC}WV&6Z85W1`@{+rUA&Bk?mwR&%ME8}-{Z<1#uvQ-2gCLr3 z^Qk6MYSR%!3yNi-^@ZxjOMNARXi<$cG$Du0(^@F6vMtY}L-nG8bd;6u`4?(oi&MVsFkj*&= zqAdfqjzth{8zf7)TWQit76oz@H5Ia#{O5JbDC%I;YRqHgOo?WvNzl?bAJvt@rB zg6M#q*K}};9NLQ@`pr|0Mk9!RFOWYh7y5I${Iv{0^!E<=$LgkkkGln97~DM45ln+d zif1{3X>g@@Ek-bTuazO42qvE+a;`6e>AYAuzXHK@L7fDwMlc1nOUPaXQ&_J=+FXhb zm)H^nQ@pJ~j#^1tfnZ7*;A}uJrO%SgnFuDA&7qtDc{WnPR4JNa`Msdzw%jWoj6 zppkQBR5gNW^gJ13BbC~1G`38}6(N|$XUYTzf@xx;ObSFWl?|BejbOUzu-v>I!F0i*Vk@$SS@s??GfEIUhW==;CoUKJf}t~>k&*An z8H!+f)bgdr(&cemm!6n_;3tP8c+pa6ScqU+Z0E%i%kSAkvdjy?)aWbAtzKG@Co4-3 zOsgi!YO8^o=F6HU1k>7WvTh%Oo9*)YaB0awFl`tutrZBSHroqoUnLv65lkP2%EuOy zKCxpz9f9C&%VhgX1k(=d4RvgkPK!x9H%ph@N4uJ3cN2oCd%f(jKG0t4H|?vF{fiMy z2Nub}1qh}?RdRR^g6YT%IW`r+bi7h$A1M0Q?p}rL9PeQN>fkQk}5JH18 z#WN2fG&o(n>{#-Sl_A3rLO#CY>xB^V8zlZf2%X<2!@Lnffq@b{6d@F9>r=SJrbvrH z(Uup*+I-Qpr$~%B7~l|*!02%dC}ITm5^0-UeW42 zX(~kst(hYBK01Wf&6j4YiPo=@7F(A#G)wDRgiu?Pw6`LJHtvv3I}t*gyJgEUgwWO= z+18H``rK2#7>W@3(#}cxUy*#}L*NQ!lhf=_D30j0u3Rxgw^AJiA zYb2@*p%imM;{6axj&w<~d?{s;IAxv`8+qSaiA7OIJ*mD`z5$ij+`bi|bjL2a^B_X$u6~(q_0XJ5skDAkmDNIX^Q7A9qIo4Ue-uKg zW}?*2KqxJkEeox$R97SQmOt6^xSPF352eLzvSbHBY3VjuW;s*i7FphbP+GBDR(2tj zR&~p2yG%`;vc}e;wYCPWvvsI>yR6@dP-?OHwBZOsTWx+@lC&2fbYmn!Kdh9G79o^A zw*2XnmGbFogwki5DD9ms`<5Y;_FFtU zU^&t+p7N_dLg}|+Icjt1_o?!S&80t^aP#O!7@Za_r;kM# zozW!rSy>p_bGMt%NQ9B^9PyinF!En0L)#HX!*)tw55g#ZFk^ zGHN}-X!Jq3G7w>O)dacP>ZEHr#Z8U$Q)Eq+?J?bs?`a6ss zAC9mmVi8t9R~9uRj2dhY$Uf(Gdv+Yc=sC-Sp5H6WqY*|crpwAkgwZO?kzTcU^jeX; zZn@DLbL7o62&1<;j{0H zDPN317=1Za{#S=E`pR;kuWb$54e9nq811n&Xs?|Iw9n3Y+TSb(tRHmnxE$(182uJ3 zM=d7(zEJ+KdGx3Cm`*yRcM8I&Z<+M3Mwki52Jz@bIGqMLJq6)(#&|h%0mA95HFEYz zgp+S5!u`AueqM#xXJX-WL74>DduSMK}$&e5u&hrjn&HVmrcVx$GAv4Pn zPP3|I_I!lXoF=L4KsZ$$kOwSRdN5cXN=G<7Z2hH2X33*V5KfP6lgBM5svjzgA`wmv zHkTF`%aV}@r={a$*$jkJ;{sW}65+I>T~=;FIIXfC(CPtAHqx47vi1(h-hu>P(THnFyz@ zJlQoI;k3I}x@|4`-dBF`M>zdhB0o(*IQ=|dep!uh`qgTt-}Z@pUlmTjACo^0BAou* zBPTr(PJi3pP~TALw>(V*CW}V{B52TJ@mz@r8r&jYTM=`=)4hf z{v1Tm1#2W=FCr-DxP+WQ1ciG^sJScvJI94NqlGaK}Ga|@o`BC~F$?QP{ zWe<_uU_?-Us1!~?1YNjPE^0&sU2Jjal09;%jdYpiNTV%J8si~X_9B9=Iws@nJ{k|X z_9PmaOv{b#_K|zy5kdDR z$$im?xZm!ZJ58$V5kd3T%luu4pqehJwcKdIfQ6Pj)%DAhRyRFmeWj;ueR{_7q-Q6| zb8`?u&)3Nd&4{2EEe^eOSYEcZY4sp!%0UFJnIUU!KCQD_sdR4f2vr|qUMg;xiEB_WF zg8s8LOynu^l83m zf~pWnAq^5%k4TDGC{eYDq?pAL*N8|;SS5)zQu0bkwab)d*C}JIWVIlYvfCxsM#^uN zLOYHwv}5R^O>*&OMA9YO<M{WQ#-P7K1AG%9MkMq^ZYbn#H6$2FaZsh@`u`GHVML{F5_FHpY9L?nGZM!uPZNcwh~d^Zb` z^!I{{HNZl;W1fGCET0CYirPg6j^9>QC*qT+k9GN=Lj{dm&LXQE!i(iEjN1JPwe~Z zD0*?UyfhtA^s?nZuPl*QS0IXBYm?WHA&S;{N%K%d(fR^uDMu99W81BDIije|`bzB` zvT-+}Xj8v@9F8dZ#3i4OK@@#9MLw@a6n$amA$_??{?~;l`pW90udPP1_tkFQDTtyy zWwLiZqG+G3LHl>gfs=?L`;6P|SKA-@ZMGa;f++gEUH-6G)Z-~9EqCg5NuTwV`pey- zQ4Ti`8);Cbc-AAD1}_n><%lNlbuwflqRD5!oI4oNbl!mTy%0?o_)36{6yzuNWmhzX z4TuM}`dL^NesPL#Dza(oa?c@8NUgJ>$6CBy3x zO~vg}av0Hcsi#~PifFn#N3Ix)Xu5K`TvdZ;y4qsXH5=sGPDImnd*u2Jh^)uqUoM0xpx7g>Aod$|58NL11sghRfwjC z*2%-Ih^9xj%A=MqJ$6FsJP=Lx{@QKP2t-qZ#iPZGWr?jxOE<}~4n$LlWJn8k#@`m+{ntfz_CZefjqHI`$Xlk{%)V5pNk0Y8s4402=&*@cFqego>(;f-kOwE48tC0#j)rdWXUK1h5lu(8$nPf+O()`|rwGw>a)R{ELNxW&Nx${X#Gp$~9gG+{twc_r zj~F^*m7KW?F=W33b@M4g4Ec^0ze$K8|LHPxHezVlS_$kx3UU0wemv~V(7=sV(+12=%BA0%0vtu9w$fU zB8HBwmE$dlp%c60FE7NLwE4XjkNWIb>bJg{ShS1Bam3PT@pAfP#L^k{a%K}^=`1^* z&bDL8H&pxz5KI13W$1jw(y+x6xCyZoyjMa`AeJIxC8`v$6jLQ}ZHOg@ha}BHET!z1 zv}nXq#ze_lj#$dxCwapVO9drTG#;@ue2NrXUR1J8E**+kx@@#uUWQn@qE4>diCDVI zYNl}x8DE50nouDVS0R=r?T{OXAeL@&$<5Y7nqs-pRLh^HEt2V7h^0Hd?UYj(OZ4v2|5aZ#mJTJ@T~WOwW`c z_SrndE?pt^opCHR_Q;EN483IQ(aY8sdd2FcSIgzKnTVy=*NFYLGnU>wChPqWOD)z* z+OR-cI}l6nTd(MYO!?4yMjus+ePmBVFCml9Y=QP=A=Qnk2lwAi9 zOS}8!JBvx*r^pZ13;J=C{A4xJ&x_<2i%GxQd^%z^(J`A($7jol`G}<+%a=~>lirhv zrGG7F`p>iz#L)%) z5^x-G6znab(TJn)0*M@lIEt>6*ha)r{1$N>K^!F=lN4KvoEC%9dnGFnag=TAQm)lT z`QxQ<2IA<#8o6j0;^<)$3CJ%8`J4zPJMcl%2#650n(i8h+k$&yCI(Na5>mhF}o zEH=HEgSeNH5Vz85rd69{buZ$YZ2#6wkhRkhN9$}~nyuEitS8iB=gS5!#JxL5-rI~g zYPU6MqxFG4DwU6|H?-AirELr4^FYLX5s$cz)zY~UaXVWP*JbA*?V5zR-O~{Ft?em& z*Drfh5J&sQ%KkdU(E-bi4xW@>harxB8*tQ#IQo6M{9$#`pG)PhCdAR-yXBt~h@*b% znTf|R@fe4A8Z=Ej=OLc#{i~Z-JL1W{M{*l-9PxBcsGJ*!csg&moIeBcWS>X51+*ZZ zf;z;0V;xUnha_?+;wjo8u`a|@{3vnMAfA%yBxOC~$+<)9d!%^E@|JANi*ju~<=0AK z6XNN@O>$8u;^|_WOCyHJNFT)0s7x8{MEn@b&)&DXU9|x5bak~{VCrlQYzgA&al1}WSkLLnMtN!x;^}GYA3d{Kp6x{ZbFGMf z-dA2oM?Aggl$RzUo?ft)ME#M9O;#BXas{B}?I{3PP3!$&%84ca+gx@I7rc3E#|cc*ms zBc8tZlOL>R`q5(2Pjlqwg@~tLn&sEsi2u#L2cwfLUpP-bO{n@ShLt` z-UJHnlF$Q4pzvOa@m(DhT~ zhDAuA8`sHA>ybb=Z;)FKA%Ug_%CsCL&~&SrW(=2^rAQ!q-|9Bo@}oKBQdxlnsv0nN zCK9N6j?9~n1e#wfH7k%nwU!Gl*e(k@kU({|=k%n9Jmrf7dfFk+6d-|~wH)ZV8hL&J z66l2{d9fV{^wJ)A`8X12wU0DqB7xReU9{G6qIH%Jy=A?nw_WniSR~N9bLG7{B+&a7 zk3QHUANC=EHYdrJ@kpSp)&ttMT(-9%fp%EU)Nxq;=Z^&Xsz|;rK>~dJ1XbTePcgvst*dc!&Kmz^MBlfou3Dj32 z{TAOi?D6d8Q3nSNS|*-0(%=o^)ddIHW7_R(Z#d|jA#$!S9CTi|oIeTIr9E5|W^vP`=aM103a>r0O=+0odD-sU6+xkHF6wAGn;Gp}a$^CQTpa)jS zgROATL%ZbR!*EdTU|HY|2Q7@3x{+{Dz2!}d=14;o9JJVaLrZF8=@K|-*+yyH3kNMf z0mq8{aICaEX_XyMt2^X1FF5G+5%NYk9Q5W&dFv1y)G|yq42OeSEhlPQChb-ieK;15 zj|$+}yi~Sy!a<)}ZS>hl`FtK6^u;Fm@;Dr{Ge^3n!$G^&%WgaW$==(#eP0R({a`i! zXnojkvFX5mIoJmW{TeL4*}8Oes{CFF2mLW${#*_R{k28@J`4x-`AB~;93~MH#bYWG zX;7WmV>XcnH;dOMB$D?Q8L|h74t8Z?1@Aww_~Vc zl1!;VB28T<)3zazrtg;-{Ya#{g5~Z4B+@+-P$I|0l<%v!t(vyeespCkb#a^-`9*MLx6N$@)A@TVc^1@6c(u>vdQXLZM zrGY{y&j0fH$0HIZoD+lLn5uWo>I$6dA9_K^xgt_-_95Mpi4eHfkfJz zE?Y{GNLv@nwgX6{&n*^xVQbNs^W}f7NTjd&WS1`zX}43lXCsmJY>^)ZBawdem!E2o zNI&nBUo3ArJVK5vL?Rt)mgBZ3^r!77{Z%f1TYu=EF6keFM3aPK@u)=-4QiFsJ&{Cb zOqDYmkwj;8iO&cm`IaK-+#Pb>NhHzG6d5)XNfc;v$X*}2g$+XzMGTjy8Azg-g%a0< zBudyOiHDIyDPBlQ?L$&pnPgNViLx3bdlix>cdO*@MG_SalHvYHqGG3%Oh6Kim?k5a zBZ)>e%jk_rqAPvnsxe5St1Tv7V>QvW-7?V|Ni-=?%94;olPw;V7fD40l4#0YnOct| znzliv+j=zP1d?X%LDH-ovDd;$G^bQ5OOQlWRs+o)g{0~fBt2Lo57|f$x5y(0kVKCj zmxUfkqPje(xBXmX^PjSFfS$Hq&@*lF>@FnHbG_0SjwD(>QdU?WY2|#e=gcHpZEI1J z?GvrBHEFHwF|AvVq~>KvddupimS7}p7>uNM%jG>=gWk7e=mR^RKHMrF*?C1Kr>(9ad} zOC^%%*9Q4*HInG)cCqhXljwx4OFb?*Y4fSKTKX&(>fh~_dyU`uNT#U$5_1g6 z6mL0^!(Wm@kxVJ^Vt-qdO!oTM&0hN^lWT$GY(O&QZ4`U$n@mM}Wq1#gsraN^QjBD} zbf#QZi)6ao)}t#H%av=9Ojm7{t2>cQ*VtM#!57Kb^&+BjB-0FknVE-Vnl(vgS0kC`ESE}~OI15%?j9sl^yb>)G|IE9kxb8Z$@7PiOfU4v3Olc8ucJ}#9{W+9nA zT`r$lZ)iuLbl6Cp19lc5nd~*N+pb0=)9%gE-H&9l&!gOah(|L0XtmH!b}aoo;1?U| z*HvPlNhQ22gD49c%Las>38G#hav$#~SM2gywLc@QFSBi=Io?ufxl@&|%nd{eRa zMG7sNCJlBT(Bj3iWD!zm=~7u{BQ>_l@|{Sb6`iv308(hxF?rSUr`N0(WUrUq-mqNh zO{ zNq>}!{kuFV^jD48Yv>gEXPf-H9Vzsm#Wks?9FkK{B9%Oc$Y5`zl9#`DCn1%FxWs2T zQptC`_)SJC`B%u$SxBW}wG!BXR0>`$p*B+ZCW-7oDn(mP6uV#IZ6wElq=QJMl*8ie zMJix%bn$>oDv?T;+I6~Ywp_j%sdPn?T)6|O zbk%XWx*w@D-b*IrA(bYMkV#{aN@dkDc@0vjd_cu!q|%gbnQ9~54!I)|sdT61PIuYb zba#&2<3cLgZ3>FopZPCrtqb*QviU#NYeY@Cf$+GKHP^DNn7x6xL+jke8`?G~SQSZwOB zeWK14va0aEE(59vOMRNB)cdwY>e`z%M=-zNv`HnPvM+z#1#blB$6QCpLK zxAThr@RL7%kxG9B%iozurGKpN^sm)I|4nyuo>B$3Q!C-5)8@+Q3*e+P7R#AS;iR*c z$=R#nq;uBGxh-(gd98AOJDhaEfPjr~QqU#|*#Reo9hXRdI4L?(V#mNq@#W%}4kslw zN=gHqmE*B?B&<1Sef)*XeSLO;=ct z=*l{|Y8#w%^-j5F51cf?MJIa=Mg{f|Dx7iv2r1PO{%xxlObBY5Fvo zVL8yu88XZEk7n1(oEkW(vO%iW!bx*?Nc9mo$zGGYJ#4wrBSYoUNI2=SQh9s=ob-g{ zNKcNFr{=*)PcM~c*1<{7S}c05Ri1BylU}eM(Tls}rTuWy%Ln9@V{p=|z4DrkwAM$~ z`NB!f!(_dU)MB~Ph9qen0VlPUN&5^qX=A-?vfj|M$vmE_At^YAy5)WB8`%5eM%jW zR*p2vsFf^Rld|h1w+(5OzhCTckkV*)tk~ZmrBO+NjL1V8jVzN<^+==9?J~yJq0$2~ z_6X8wT%TO)g*3X(SFU#7D`ho2)dt&#u$`mMcAAeWeEnJY*w1+%1pnLK-a?Bnv%}Ms+??ZzC;=m4;DB zBl~@p+mc$O(b56S8jwbf%VoKZw4zN`ZbTZb+9s=aAdQ;rI;|P7b}!OsU5_-|Nb3i* z*hm`&wAx5*2jv4lq|t|=@{t2+^l_1VQh+r2bcB4Chcx0FqUrm>< z?J|9{OulVL8hzI+-`i#SVXOSui8T7DTYk2^pY+bu@99sQ zLx1&3uMg6wZ;04$yVB@CyWgara#Bw1K{|PQ%iwUNlh;u3jz&5SNf)1Zq?7LeKO4z^ zlnfn@bQ(5U0_P!}f;%PD;*$M7+AYfFQjAmLijYnTqa|@1(ka>2qtuy_HUsIDF(7Le z(kXk6fcsjdbCFi)^Heo8^)=q|>F_c$U|e0P7hbeBR0~b)$-Uo2A7A>9oPtBzx|5 zYpX#zwOem!qpeAsj>yMDkWQcY%ctH*r_T!H^E{-}7uF~G(k1`1k-i!(Ut1mYjh&

+r(qp;P$w=u< zLOS(TO8;!6n+(hsk9o+TK{evpfD9VELcCTXgS=PEkoCwQpRMA%7a8Q&CH^+j&_fas zj|>VLFCmMOL18N;!q%lITa#ioO59FlP=dvw#66OH7#Wm$QqqA8%1jbhC^9I=C3&Nf zK?S3vXfiTr_zWqYiwr7hkP(f@ppkZ+My(P1t}BDa?31hfkU>}5x^&HSxwae`bln8G z-eS`Y18yuu2HiAPZk~h;x}{8Ror(;)ZMNKQy{9{N%AMPgL3bUO*~5@Qb26oJI5Mcp zYNWX}Qf+n6ycU_i1sPP+CAE8zK?_dE!X9K$o%NZXggiAE8T7QbJmZfHdNx{~%R~m* zzk%)cf?cK;o$^v1GU#QypI))c^lFK`HVql{`Vx7g9U1iIK6z^|GU#o)PVXF+caI>0 z+B~E^7#Xy2lx&)U4B9+Xwp1a5whq{4=L2oGV`xX2bl6CpwkNc6mUPWS2H9umZo6BN zLEW9QXAd%H?*Z9oeWjngvm8Q{AIndE23)A=59fj=@SAY6h% zkx3zT8-;mGgpCxHBrz^zQrv(98!0hfk^_-Rsly~~C^FOgk(oJGTyu~~ISrDx7MWDg zAw`FfNf$-S#p94km&}(-n~+JD?UKunBa_AiOX(zJ(%5A(?ie!Z+QD+29Y@z^$_*9B zq#LW`rp3sln+M#o1etWJxx}#TS+WIuhdPuWveVUUbm1W4JDvLvN7fAI& zWYWA9GJhR1sb-7RZbl|8uvql?AbG;}k)HIDr)(eTX_q`R6`AzxQh9DWGU@r9@|@8<0usH%ZF@WYW8y@?JVJ>3yr2K3Fav zT21uPZu!{uh_?F5Hk(7+M~Xe3GpWOBqRv^evmTk$wMKTeAanOJWPWSs1nr5Jz0;6M z`&P+*+ebQZNPZcCOtSC8+>Ur4la7_h@j7JEiJkISI5NrJW4rxhbeOMtMtw0uiY-`ijL9)&E zownN?+A&c&79fi{Z4T|+gRCw)zjh6i-8NFUuj~m%7VV9eeKyj5tCt{4|u;qq7k*QveY>4b|0PZF;N zxX8OrhMa(l&WV?EtKp*aHpuzM;G$u{a0U9n6*Nmi8sVa_LlWr;7uo0AZm~shQT#k{ zY=w)GEEc7DN!ob0D5G4m?0CvvF1efGqI|1|iXg*%;iBR|DT#%PMkL9|F>ukSnKHT- zE*i5*O83G=V=aHW#t*LXme+)0nOFoDO&TR-)<2qDCFKj@q6+H)O<65dt*x@dIvguUEPpy?=Q16) z9O=Yz>Dd4mowWR@*Vdvw%a8uE+)VZ

nDN*>svqPA@?=oiRnuoQZ5YYp$HV0NHd- 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


nZS~Qf4*9kpqUbw+`QFYC`XN?+ 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

O>ap?vk$tAd9{pD&JTR^z9V+ZUM5spMk7H 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≥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%0D~{=c*G1>$pbOAz)eDQ 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

    (kOvIA`GAfH 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 J#iz;aW3zauYc}kJ%F(LNKN( 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:+$n`3euJFp6~8 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

    `vd&k(vK4fO{?Vr)6xNC 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 z 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

    hA`W_l%vHCDstrq}_C$O}+ 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≺i!sArF!VlqtsA3=A(^x=?eJt4pv%o&0e}V_Ul(UaL zb3MsE;z-_so6?$h|JQrV=xBN}Jz~jqG2#LKuljArck#91P#o10Uck=n7Pz%A!lVV& zsVbYA1bVuio|wz7)++~e>C&}Ls36^K1s2n(DQj(f|qt{0p}|8;Ofwx zv_dp~L|qa=fdl8+=$(}Iqxft(50mJ}i)VbEl=m8*>zpCAT6ta+PT8fBXCx|QEM2u; z39i|Wo$oTQTG5dc%m4;1aU~YI(gzj&Pq3bi<~4YO_IvlI@ybVr5-VOK zBb0^$mQE#=wHgC`7k;y-51PYoispXgX@^#{U3e(VAbd_NZMU}Je5eamgaC?Kjevmz zyBUZviW+xZ<@ryyh|2xhYHK!I9Qp7I-oZ|WL-jt6u*K1C{XN_s3V{@tl_{b8fbQ6V z&usLpH#F(}*i%Mkt6A?LI}RG(R;BMI${qLNObH4DOS4z zl?X_{guel+Kw@O*z(+P6BllpdsCYYu1wKdNY!6m@P8ah_g%Oj08H|)xATc6ynO5tO zhL2<7^SxZu^L99!J%gRRyx_!c98)f&79Rl`r|eaDEebI~*PiWcc4U?z8f$-{qM*E> zMsQ!sS209pRS2phrx;+Szmf%d`XY~ng}!NYWL8C|T%O3RN=u(Mn{j! z9M?acMl*DHJ&cX4qQ|p>DJRBIPFkX|;MJ>jNg(|kHDYeg`t`B|);YAYzrfW6*fsStY*sUMN+^wp&lgf! zV$c(7Of9rTqa(9atK!1+`upE1GD{cAhyd^z*bEJcfq`OF)t$gYj$3VX?(L`ZvvB$O zH2UK4Nva6y$AML(W==5OFk~dIwg)m=U-Uo0oXU7_We=J&50`6lFCz}Cd<6x;)U=EF z5vdy{_AIHgB?=F>VYa+#CjXn-j5;-we^aZc<*zEtgsg;)szo9uaA8x$cvoqk=B#s7opC2T z=J7+1774C(WqOEx`EY`xzP0gx&HsQlmfcND@X~Hg;jC#MqoBIyBJ^o_MG`x5g_(^f zQ^d|y_GI3LmcEF#NfWqw7~R-0VbY|cU?ynDauNw+7fw_#@JfqZWhA)8mMJZQ4eMu| zYZXb97fg3)g___ZvnLc9MqTl(SL=oAHbaMY{i1r|={%Xv9zVWw55mlrvnatJk@~$^ zs~Ng1I*NjpX^xVbBzpP|d}*VjMxHJq$4&$TA4t^|#&^T>$0r9-uZIa8V2>hx&Dc6%(HqObhifKO*rE z*t4e_JZO0Eve)57@BnG$Wm2vj9@0l79!B=u=yluw64@jBaV)egtX!4*Kd`;aeCP

    B;%tQ9NBHD-Tw~iuHs(S3+q) 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 literal 0 HcmV?d00001 diff --git a/src/rust/vendor/windows_i686_gnu/license-apache-2.0 b/src/rust/vendor/windows_i686_gnu/license-apache-2.0 new file mode 100644 index 000000000..b5ed4ecec --- /dev/null +++ b/src/rust/vendor/windows_i686_gnu/license-apache-2.0 @@ -0,0 +1,201 @@ + 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 (c) Microsoft Corporation. + + 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. diff --git a/src/rust/vendor/windows_i686_gnu/license-mit b/src/rust/vendor/windows_i686_gnu/license-mit new file mode 100644 index 000000000..9e841e7a2 --- /dev/null +++ b/src/rust/vendor/windows_i686_gnu/license-mit @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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 diff --git a/src/rust/vendor/windows_i686_gnu/src/lib.rs b/src/rust/vendor/windows_i686_gnu/src/lib.rs new file mode 100644 index 000000000..0c9ac1ac8 --- /dev/null +++ b/src/rust/vendor/windows_i686_gnu/src/lib.rs @@ -0,0 +1 @@ +#![no_std] diff --git a/src/rust/vendor/windows_i686_gnullvm/.cargo-checksum.json b/src/rust/vendor/windows_i686_gnullvm/.cargo-checksum.json new file mode 100644 index 000000000..73a9eace7 --- /dev/null +++ b/src/rust/vendor/windows_i686_gnullvm/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"6405f908afd6b1f48b7a726ccca5a7aa5cc73725b22308c6cd29bb43cece30a7","build.rs":"9a83c55ec67fd48d6df4adccfbe0f3245f4002b543cacb586005d8991bddb29e","lib/libwindows.0.52.0.a":"d621a17fa48dd94ed99dc3f2778c149f37bccd9b9b198bf985ad2286eff9eea1","license-apache-2.0":"c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b","license-mit":"c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383","src/lib.rs":"bdf6c7cf1fc01f69cc1d4e52948d1f246fdd310e6323d5dd1efd23f1daf382ef"},"package":"87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"} \ No newline at end of file diff --git a/src/rust/vendor/windows_i686_gnullvm/Cargo.toml b/src/rust/vendor/windows_i686_gnullvm/Cargo.toml new file mode 100644 index 000000000..a3accb9a6 --- /dev/null +++ b/src/rust/vendor/windows_i686_gnullvm/Cargo.toml @@ -0,0 +1,24 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +rust-version = "1.56" +name = "windows_i686_gnullvm" +version = "0.52.5" +authors = ["Microsoft"] +description = "Import lib for Windows" +license = "MIT OR Apache-2.0" +repository = "https://github.com/microsoft/windows-rs" + +[package.metadata.docs.rs] +default-target = "x86_64-pc-windows-msvc" +targets = [] diff --git a/src/rust/vendor/windows_i686_gnullvm/build.rs b/src/rust/vendor/windows_i686_gnullvm/build.rs new file mode 100644 index 000000000..b5caa2baa --- /dev/null +++ b/src/rust/vendor/windows_i686_gnullvm/build.rs @@ -0,0 +1,5 @@ +fn main() { + let dir = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + + println!("cargo:rustc-link-search=native={}", std::path::Path::new(&dir).join("lib").display()); +} diff --git a/src/rust/vendor/windows_i686_gnullvm/lib/libwindows.0.52.0.a b/src/rust/vendor/windows_i686_gnullvm/lib/libwindows.0.52.0.a new file mode 100644 index 0000000000000000000000000000000000000000..7880896e8fd99ff3e611fb278d7faf27f7d15de5 GIT binary patch literal 4062250 zcmY)1e_Y=4{`m2i*_qkt%uedM>gwu;nIy@~WHOVTWRfH^naRu~$;?b9JDDU&W+sy) znPetOlF4L}naRv_W+utbOlFdu%*@R9@p`_Ve|)~*+wJ~+T-UDadcS_XLu)&q6Q*9j z=!V>BV@{9y|Nq~_|MS#6{=ff!RMZ(~PM$a=A%SG1jxF%T>J;&tKMv9kMmsn4+Hc{16yd0~VDH?e$c&!nyM5!8zra)Cj z@#+Z0{=aGsI?eM;kl0S~TDoG6uc0MDHBh|nQI!;}j3XGc6>mhVI*K-*;=OHnbF3<% z)*)xzQWGRNvvqijy%qK`+83+66mK(cv6EtbhGH+*}<<5L86!9^DM$`g z*8C-QvTjjH@zqGRkXnOIFV_`2D85ctT@-y&6xZy-HzBHwT8EteJQF1PD89{98z^=q zs#c2s#;Q7s-Q!ddwV0pvU9Q?iv1gXrMDhJp)kHB6p;+?(eqh~V3AOe)d$UcD*hcYV zvf>{45&PIrv6|wiKvhgF)@=pf8L(z)44B?kCioN><`$wq)Y7IF5W1V6n z#c+bEr}&lmh!ScYb`C5yL1LKVH_k=uqBuBPZKe1vo@;`{ z4vIgyj$qAy;z*oYP4O4=6-CtI91v`>)i#QwW~dH|5ffD{#nAz(lw#y)wTxN=&fhXj zu;`)~m8|Sz9FwS;DMn9I?G(o*C|)}jV`5Z2#owdUN{WDyYALmboqsGa!J?O9>>Ra| z;<(w0wI7FZDT+Cc!#}61Hj2P_)j)ClcvVdi6r`9_5Q4|5athBVRZQU>p^B(Ap! zV9`$zI#X?;@J(0iD8k|tdlLqKh+0k&&N!lgTAaNV!G4HtipZ&|ks`{kDyVhHIf40! z-4x@q)pm*#GgT+Wgh`6CoPd)!KT$~$Jz5o0>xgr5p$Qhl6fuk|c2Jy>s@7A)#;Da4 zr?UToy*<_1@5C`*(M@q$qT)^Jb z&g8l1qL>`7)=-?qzK9x%1fC1~7-ustQAVvJ&XffvSa7dQ!8sXf14UwjVr_{ycf49b zF*Q)Fq&P1~@!ENq7NC|>oIgsjr{`OHouoVyECwhp$W^;2rq5IMG5(dMwoxRfsr3{W zPE>UiDcskBIi%pCF{+eW?1wdjGZI4-7c(!xm=_~;w&ILZaY?4yNRh_7&#VYOz-9vMj|lE|v&L*tvqŴA?4#I0ab>FFY_G&D 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 NMKHw@qK>M!|1YvUYd>=eF-$!JLrOXnzJBx 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%0A7@3#j8}xpS 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%0DrA_(5l9OpcmxEkbsT6i(ZMK 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

    Y z*ve1er&L2lc+J1p`aB#D&L#kuJlkFYv zRM6SaP8IB(vkJ#IG_J3w$SrlE(egJy&W+nXk09Io0WI?R><#5No_Ug63BCpX8V}=D z>Y8~jW@N9r8JsQw=!dR-xLOz&CcAXOQ5OxbMdU?;5suoER>H$jp0A2oQDe}^3G{Yc z&PUUJUbfCb&wksQ<695rO)(%$Ud574)$73N7VWq~RdhNU7a^>C&uoU9ojJ?68^VdX z%kVM8-9D z1B%8l>{vZP>OGnxr!&>}NBe|u4`!2t+3K3i5!ZvXaU_bdQxvg= z!37E*c=OK-*5tc3g5;iH46f%zy{Kjg)(m+bgXNfv+D->EXjPU zTx4>Wp-nC#`P%RSZLvf*z(mc%3uDBXjGe0KbR)z(JH$CZCQK*~rVE{w*G09;ok_;o zsRq;Bf}wF?$juLncSUe`E#@&JGdI{Uzmp(jlA>{ZoI%sIQI#sMOOx*oIZTnI$ebLm zp&2u(GC9n(yaU`)raLi*C0-++p^oO8B(de?oDmU~rX*?unCC&#A?7Zl=526I$;WJ2 z&!LM^nU)FE_Gcv`JJmgNG?Z%5A|f8Y&7Y5z?6^Lij}V79Dp);T@7Ro)aibb4ZBPGwJ@QbC<*{#kBT$EfUS zJlJGFX8WB8XWdg9i`NHzjQG3RD)!VSbH60-_rvmcFf;cG=j`TmR4xizeDRHucyC7d zYNtnm##4mZwR#g(rN(X2OeNF23@75#-E%RGjzh;{dXb67*ds0)&c(8#q~vTW@K$?J z1W6d`xh#gocvY9n8)|KNgXqOK3S!wtxa&qt8XpG1m|xQ*n?*M#hYWFZ-<05Z@(yNr z@F}+PoP5rrl2CV-IJAGWS{4XhyfU6xwh>*n_lT`-LAE|}a9}S+j+~O&cPm|Fo3G=< zS9|n4s&lY2>E`6IR@Q@y;Fv?qWrkgD(D2Cn1x|Uts;kv}cf2g$p=_IJxgynnJ5$b) zv5USptrh{ad{1pidD9-A*>jnNp4)lJ_ZW7zxRUyQF>2(Vx4$B1YxXs}h}>KM5tMJl z(&xm@TJLq`CfH_TJiZ0DJsh@g(7zTS-r;Nu9wKM=IWVd>n#T=t$DE1z%!#E#OpJof z(&kMtALaH=GwK*2od`od^8zk0cb~BL?Qr#GF-8bd;Nk=W7|~9@TneqB`>gFcJZ|w>d4g5iuGJJ=K!> zLQc&|aXZH-b?PCc}Xsyg?xsveu-W}hcZ_OFrb!8|+K*aQ`Kr+hV*%621-`tUJm z9bDwnx`{pwEO5a}CE{ zA!ZB?EX4aWQk!%uzs*S5?xkoc8f%AK?;|p;s~g?%)=Ot0s}g#>AB;TpoQqhBtVsMi z7M?0WdoTPYo>eG+RWuep%l5IXZ8%;!3z21Q7d=>8md?W38a}SQ z5GA*_9Lq=VnRu4ZW2hXHW8={;_z`S8p?Z{h=1)v1Zd-S7ahb%$xa8NuALp0*~ubA%k1KK z9O-QM16TK7j22h^p@o=-$taC@I9QM-W@U=W?1^xii5;1e5@CgMLTP1reOdo#GM&;J zHMaa?zt%r_Vi@=6X(Om#JUIN$CrUd18y~-?zS{ZDkIKntIr`ye`rDnI-@_LZ{QY2l z@LhcVa_7gtHoy18{CMYI;){Q1zA>M_+&)>n{Pj=h|(oe3MpQxqKfBW6$Cy()s`eT3R^Y$n7m456*|4g&uZ<}Ah=TCOd z@bUHQ!O_Xf)3ew62gAM7!O7Xn)7Q-s@sG#nhlkzY*!i~k75ximFV2sD_IiK!YtfdgCspcp3C#gfMEW~82c6tp&g+-T5v#^q$`1Jax zRXJ;z3BTpSx!-Ukm+s%VZrYD%ZjY(*<dkWWTB1NMt6q35cAsA>J3nBnU zJYbXC){WuPw{}JNa>Mp)B6ksbmpl*;05WAbxQd9lbxU9_TL!IQ$U+EI#(H$_Z#)+$7d zL|PP9gI>PJSSE5Ed9*S#_-ynx0V}pX$=d#sd?e}5iwXp`td%0Ab2x=`im5%tSw(06 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 HKtA~Y8GZS| literal 0 HcmV?d00001 diff --git a/src/rust/vendor/windows_i686_gnullvm/license-apache-2.0 b/src/rust/vendor/windows_i686_gnullvm/license-apache-2.0 new file mode 100644 index 000000000..b5ed4ecec --- /dev/null +++ b/src/rust/vendor/windows_i686_gnullvm/license-apache-2.0 @@ -0,0 +1,201 @@ + 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 (c) Microsoft Corporation. + + 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. diff --git a/src/rust/vendor/windows_i686_gnullvm/license-mit b/src/rust/vendor/windows_i686_gnullvm/license-mit new file mode 100644 index 000000000..9e841e7a2 --- /dev/null +++ b/src/rust/vendor/windows_i686_gnullvm/license-mit @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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 diff --git a/src/rust/vendor/windows_i686_gnullvm/src/lib.rs b/src/rust/vendor/windows_i686_gnullvm/src/lib.rs new file mode 100644 index 000000000..0c9ac1ac8 --- /dev/null +++ b/src/rust/vendor/windows_i686_gnullvm/src/lib.rs @@ -0,0 +1 @@ +#![no_std] diff --git a/src/rust/vendor/windows_i686_msvc/.cargo-checksum.json b/src/rust/vendor/windows_i686_msvc/.cargo-checksum.json new file mode 100644 index 000000000..bb1450e22 --- /dev/null +++ b/src/rust/vendor/windows_i686_msvc/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"405cd9bed75f895c16b57194f7a0bedab3b606d49b1dd34c791efbc489076afd","build.rs":"9a83c55ec67fd48d6df4adccfbe0f3245f4002b543cacb586005d8991bddb29e","lib/windows.0.52.0.lib":"14a27a20c732f4c0d44c629b4d19a3a191675e55d1b2283a4a51782115914943","license-apache-2.0":"c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b","license-mit":"c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383","src/lib.rs":"bdf6c7cf1fc01f69cc1d4e52948d1f246fdd310e6323d5dd1efd23f1daf382ef"},"package":"db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"} \ No newline at end of file diff --git a/src/rust/vendor/windows_i686_msvc/Cargo.toml b/src/rust/vendor/windows_i686_msvc/Cargo.toml new file mode 100644 index 000000000..08dc7a026 --- /dev/null +++ b/src/rust/vendor/windows_i686_msvc/Cargo.toml @@ -0,0 +1,24 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +rust-version = "1.56" +name = "windows_i686_msvc" +version = "0.52.5" +authors = ["Microsoft"] +description = "Import lib for Windows" +license = "MIT OR Apache-2.0" +repository = "https://github.com/microsoft/windows-rs" + +[package.metadata.docs.rs] +default-target = "x86_64-pc-windows-msvc" +targets = [] diff --git a/src/rust/vendor/windows_i686_msvc/build.rs b/src/rust/vendor/windows_i686_msvc/build.rs new file mode 100644 index 000000000..b5caa2baa --- /dev/null +++ b/src/rust/vendor/windows_i686_msvc/build.rs @@ -0,0 +1,5 @@ +fn main() { + let dir = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + + println!("cargo:rustc-link-search=native={}", std::path::Path::new(&dir).join("lib").display()); +} diff --git a/src/rust/vendor/windows_i686_msvc/lib/windows.0.52.0.lib b/src/rust/vendor/windows_i686_msvc/lib/windows.0.52.0.lib new file mode 100644 index 0000000000000000000000000000000000000000..af7978977c3e12915b9e369e6da3f0d87a2f2b92 GIT binary patch literal 5527122 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

    oXtv#Sk`Y!smHk9*#*)}5tk>doxdZ_ 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%0DQ(IWz$Br#^wvC(S;w%s;bq> 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

    Y9_l38|Q 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�-J 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 z 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�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

    cKYWu zro2I=qu83pVasF8^|L9daDz$*vin9^yq_r}R&uw5vUoqOsOG&buU=AC=%+GXTsu^9 z>7P4?RL00BQx-TiM&mx-E%}7vh!F31&Zi+WAQ!k-7Sjlw#bp^P>?O`NN8aH|^3Ja5{`D8!ry5P@IEkPq`~4{o!q_4UKtF8x`SPf0 z-0yQzeNQJ;zQcPJRa9N+=b7t025D)d1}g==yoBdlosIJUzAWWo^8Nm1RD<#>3y??+ z$tL;~a&;Kx-+HM=oB>o9uJDMGdR{V0?Q<{Dh~k`WOdq#z)JlJGO43r*Oml%Po76p_ z7Zqvq+JVtfXxv^>FHgO&gliQw(M=Y1pQ#(NFDSC7!k``|p1TuO_x1TjCOp$oOCs@d zo$tO#k)KDBeRmORl|HvfE?y00&n&feo>L^61}U3HS#HlxX;s#rpgdyFGI$ku-w12_ znTjQAMH-tiR}WBo@iTIcu(p@_Tzlf_ikH`(@Y^$pF??Fal4*24yCEg@Pt7=5jSH_{ zQM>(9QrcKINknj2-YbPerceK<42vh5#6I6xf0CkMU2a*!!*47JPvaAHR#i1T2#LH+ z@k*}Zb5}K$*ZBmEV+TOE9Lk6Jc*Rk56z3a|$$@21z`pjIHHU`^{k4yCQmsTn_HIMP zuO6#W#r1J88oYA-iP*udHVY#0`o$CW91`))4VyLDhyy!ag*}p#U2?RP2$qmOoNOXB zcSmfZ1!IpVks)^2X8Gr+5VUTQ=G!+yUv@Ow$mp1?qTsm>C=0J$#`9eZgl0*~c-5>2 zf_jUSYE313O;BUoDx+FJ?z*6?=Q!nQ^{aG)h21x5y*Cx>IMlCNS1eh-%4^r7_Vh-^ zsUUaBVWVJ;mP3kDs9&W|7h5uj-R@?CSUjR~SycQkN?9ZA7G%yZU|DMj2#E^NUiLF} zK3G#sy<(P^oKWj}RnY2@C@bHBC}p!FZj0zZ?ub&oTSh#n5l*PIzIE^?K?<<+ddv<>u`U$hY79=NtxAZD_1CBaZTrWt`QSA(4s6ckF z2n{$dS&c>^^|ngNoT3z-zv5D;D8oKMncKIdsxVaW{ux&qcL3Ul+O_Aih{j< zsW|S8K|H*abVE#e#E?81AYL{q6&JtG;KEBihUv|nLyB~*L0YM=dXXqyKW&h%?}o|7 zUQA6H>2%=fIejzZ_K%X8DV>VXa|&kLQ$JFX;k`C-q|p#iX+N4>WlJkHmy<|_%ZXX> zt{py>F-4j%Nh8BvBudAOr=&%&5YoHxc1a8V7!r2YSjq$UV7kHeZzmm1SrhGA0D06# zXobB72zz)W<&44GoSiT&Gh`S&TpHyO95!h17J=tlqt2iYldM{!TMw(Ln=s@!58}&F z4;8d@vUEeAFM))G@DM?{r5gwn!ACDrEBL{J0_A;V+}E>$5hV`~QY2M5z%&`zV@GL= z2P#&cKHAsp*lS97;B42`F1vr!$z_k?p#_3H^NXz!*7t6MWCak|eWE;@yL8fIupTww z@hz)sT>V64TI?+2VU1x!(N{?vDkoaWqimu>hin5)wWEw^O(L5|>@b6hr=?eVj;CXf z#!P{$C2bX-2gjG6m*UxOqZ5s8z^m)VB=Y5y=;QX3y1&_gtFDXPWCb6h(T^VN5heO~ zRYnt;zgidf`Sy{Jn=4bQ6=m?U?kIhBh2p{GJV;R=9`f5&2~W)BDQPi(gxafDR3_|Y z2FrMe+N*!m&i8O&3pozZ^LcSoi)uiY1F8de!))PO0}!IYy+^ z*y`ApgCh!jG4$$QiWb7lTCniK1aH=$yK*1I2K+{o>g9PkcRY!pXkr1!?j^Af&dq6Q z%JdjSFh%&%Pj5Q(494>BnKCDnFswp0snNWLVnHQA^;U;@+~bZWW=IANv=Q|lpAvO9W@<)}>W2YIcv}eX7a%G0n z&s!BOZf%H6N-q+1);cvKt+%?JPz0_PL+hbf_DE7%>=Z>@3u}i)@Ig?&wN9OUPEJ`c zhThqel#lU_DQBeJj%yJFU9ttIyN1~kLfGghDPo>!;Y6iBTyy26$Q$DW3Hb_0UZfPJ%VxkT9% zhYgMyI=>!(cr(5|lm;;Uq7l@3`jsGwo88Nyag$!(z}S5wa^QX`iI|pFMO8y$<^Eqz z$|7XCh;w^I*&e^hS-PiQ$MI#Iki-AYdA{%6I#v|E3G_cXC9f^yx3&mf^xuL8Zx77) zzCEzZv9_*&KK)!!c8p&)yL2FkI*^)s13W_zfhTgb5i}1?9EOZ*ql@f$+vSk{D}nxB zJCh_{-R@ZM7sCN8k@9h}#ZO1N$ zhS(0{@$bF0!x#weeC%>~l&%K;fAq#T1%fS)l-~NcLJOub^WRHvQC9H3=Dhu_I@oV> z;Ln0v6@Emja?8KiM3C$oqND?9AS3lU6eVnXvK@ZV%VB>1*=9q=8pJ$srOhXC3-pfJ zakgv`n&zK0b~Ay3yI2NyDT&ti#U03dl&vtj&ZSf5s(;Yw7}oV85ognXv`L<;g~~wu z`<#U%33CXgvD%pJ4hL}WePg%dWUvz?>F;v#Vs{yE>E4Cf1Sgq^1dUrdl zjv;8p-`cHMj8>aLW79@(C5w77?r-ci;P6Adro8)HGNrrz+Cer%o2{L9JM_mc81J8I z#B8K{+OE0%rgrPU;Gtr12p|D6B&)Y&}Re_BSz#>D*k{>w>bIe&}dJwJo4@!CzP{P|2R2SyB#L z5u=ZPrV&GUQoKIjT#UO(Eu1^jgi>%`78`X_;|CwNWsf#;x z1orz55f^(6TzPtblg}M!WA%5*TkJw-1L`%WEI@TdIQ*NYp0_HC}-a{ zThIxX8{vF>BuwDKI-~*maUFXd)=~IlgDVV~y8jJw%BK3BK}?Og#oAg3$q`rqIEmsU z>THZP0yrah#l9(B_FbbDvv3se#7XXL5eb7UakB0=@{~sZj?n^L%$J~Qdp$nV#J8v6 zoMs+Y_)_PvEVsezf7@uo-T+Lxg<#zbPIA{7b?*I^!JAy17%d!9*!`ns`I`oBJZiVF zlmKLNz?zat9VJg*uv^^lBOTwjJ@bLV)s!&18jWa?{W z{AoOSCwkSfL)0zTQHRnY_Sm7I))GLpj~?f&47Kjj1Xvd)GV zA50^KOQJN`AL%5K%9>8HZ6T)>pM_ZOQNQ`6?tXrWp!(Tnl#TEQ zI#qg>ZU~}AI_Q4A-9kcfL7s6z(CmA@fljb=qrI(h`?X-7xqq zi;qSxcuwIVSx>2USlnpyf6-#9tVA4W48`p0qy=*PY;VU-iJ44aAX?zp?>!C~doWNx zU!bnT`ASpSA`VrLQftXO>y`5Ae9meMs4_h2h4n=+72v>!a?tgZ0m@eS>?ZtbWr4C) zK2vN7noDylD`8St`fQy;`BXk_kt?#w9loqfK>|Nz5y$WlFcvhT->yYAvORRsR z{E-4x++=|=Zq3rbBe%y?p25d9XYcUrxg*k#Sq>lFobG8oP??7xF3|mYN?AxB(pYh$ zk!}`aYf%G&yQZU#t*xjy)CY4eT(E?c&hc)mkzS+|#iEQZb0v#9X?&oJoUSSZ%I_~> zrM$n43T0o!Yun%*T!Ts*;-wicD}~yb-sflmCU;dpc6g^A0ITV}4zieMZ@o!rk@sli zR@f{}*YTV4-3|+F5c>V@B3%YLlu0VgQ~UB0SJo+S{5xGOa2m#Jx?|VESl_#Pp?m64 z%1U^L$yW!1%KA=Kk9b=-+YmPHSX0*D+sk>Lqf2EoywxPyCVyq4OhvigVz%M9t*bYi z+}u@FS+6Ny^c!7tKk0JVLwLLQO)jFRd{LIk8%*YiG_!GlXS$K6)k}G*Uhm{i)%`N# zsR+mGoYcMUBRtR#4sG&-J@^AnxvHel;a$Nq$Vn^)(| zS-7??yE)RHNRl`)mJ++Cl+JpUPHj~iPoQ?BSL)nDP;N~el+92$cXX*cO)t-Rm{?*A zD4XMuTfFV@3X|ijksKt{f-lQS)6K)+=fDiyu>eBeM(6m_Liku-TE-lKEQ-U@)#phj zvb$fBli{2K2NXzFQYKWYj0=jGJFnCU@x>+lG+C;|q01#x(d`$RAng7U8vI!XIlVklL1q?p3Vo)*6du$zUk$@cedhg1It9jqy`W z;(^&sF2u3fjxoj?SWhw7$3I8t$z}ZCNRH5xjF#l52bG5Csm%xr?TI-V3-HheJ$v`0 zc8%LKGCuMF&sw)c!efLf46tr`ic9j6Ah=bSliK%Eb~$CmRvPfJuT%0^Cvx6h%x<;LdjceZYH z^!PI9@zDa`c2WB21j>hWq{t3dAt}0e!HnBuYVSK-pq4F7Hj(h4bc@6+nCCgV1hrG3 z<_=g-sv~<2Gwj<1YT1QB_UICs21yAq-Q$gJvYC!mgL>kY0#hD@3?N(QQhwf6kvN84 zUYRcE$tC79E^sRuTS9Kv3&h+`@$9F=MnpTjNl;Do&y^!8BkWL4O$(Tnl}hmIHMRRR zdg6Qb-?6`A%=>1WPi{Wkk*Ch|QGx8(diblD&>L$uwQTF*6AA6OS|FBhJ?yb1n4!&d zY&>ixp*2?AOjCUMqf5+Z-KLgpc6=h?o2eCvWeS|B|nT5v;;Eijij zw*^#`WXW!UyxZ)!OwJ}d_I~u7EL!A}rRG(?mRjozIy-2tVw785or35yT)`|}EnxTE zk+X?6x30JOX@%4@PuEM{DBsPz#toXa5N-pCAfTyO*gbW4aq;%XTuvOR-`s6?CcBMB zy9O@orno?Ebd|ljsT0bqMwX>o9cDD2O4wfe2&&&Irs|W=AT>P!$B;21-tskumOZDA zof%J^*J(5;$%w@#@I^M2w&D4D8KteRrOCc;d^xlgdaR~%@&dd}4>>Bej(BNWcir

    inI|=8X+GK&1utPo_dI|^$bKRD-1 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%0D5-%+t;ixrz$H-N3shvVz&*v+- z>fEfK94{Td%hwn1@jjQbqjsMrnsZoOYvBg!a-v7KxPR$qHId30^|=Q3)-uOb9+jZ1 z*=H1!6nH&ub$3lH(*2|Ch}%={E|wTs>Q5_riyrqGToJW~!IdM3^{I?S`N5PG=+&S) zpigEj&bNfF4|HSp6B$QkK3o??K2x3(3BFJLaYa&fd%GqMR+R0DX~MnG11#T-s2A1U`7B8u=;`756@qV3^^f<{CQap#q zU-%F+3)f(|Q{g*|+h6$LHaw{RJtstfxO*&Qkw1V@j<+6*ySS%vS{yCR1SdC z>0=*ruHz!5a-u!!U5eO><8FBDiF~?uYK~5W=A|m+SC&%S;!#BvQ19@wrsh zJ?6%wvv1er&^biw{%wkqJSy(2=9$oNI|J6nTT|W|6-K5z%4ECAX}a)P-0h)qFP^t3 zD!*vVZh2|i#2SOD6W^S%9>9;?#QW)v`H&v2Nb~lgkuEwBc~i#a(c~&FRrx{-(+vis zI*Rg8Z>(aL(%NF8XD0bf zl}gscW9zXvJ85iRTjrGn6!Sd!A+Gm$O~yOik9(KK9gbgJQzu@T=$!f0Hg9ewn1(9h zUzO9^+e`IHM;7H6UzxM>WS{ZkM!2O#R_GNOSy>+{G#RFLDBLD^B2BJ+d%3}UP^TT6 z!a5?y{=3B-_goic?r4r-Gc%ODm~0>}j4eAAUpnB_(FQySSoCwHWEr zi>s-n;gvFxulb@fQ_b#yq@8RGH-dd5#D1ZV9i6O)?WyDByUH&pvB`aD95a`alWvfX zI-2R{TlB+odF_E~pruT7M*TdCsieJhNcX}iQC`}H#9YrV%eR!CYjf50&bT?<9a2iO zUs}duGMMA%05bch;dJB|Kii@&^pXypMr=-XI^|TI++KpX_*s=)cOi?%+2f<~oziDG z#CSFC_2Oos*5!c~ON>tFpSdM}BG`r^zxC-BUmg1euPAhr4T4PKode}=ogJj$XibWYF(XwJF03q`6w$ZOoRn0z!d z9W~bDCCZ=%TR^m@p3J#}=4GmKsA7we%87C%CtRL8sPZ)ee6-^^jb6QLtS?Y!FJ)$( z;9V*oia3TDF}p277eYH!Mp(lx=8=+LBOMe>?heQ&LUdD)+9MCH;?S;Y=ItEFsS!lgJ(x$_(Lpq~|EoYujw(kc;Q~Vozj!9~$!wn>(}Fjy96UYkwv=P z5SKS$=?v`k>`wfwMyvYMT*kgt(jKbGNS{Lv{~T!LA9FrOyc!K#gR3In@CZPzDc|53 zfA$U%hd#TIsea(Df^6No&CH$J^rlHYkpswsuT|5lTx#*ULq7GY=B7EF=~mRQq1S-t zixMvzgSij^*1x}0ouUnaugr7(jGoX9W?0XL#KvnPmg`uNm4g* zc0>=OwK@Yftgc%owP48ST*-K828U_o7S(m~q7pCs78vqzA8zvaK*J4I#F~R>M{`=# zAIx$lA(*z;Q!&WTr#&pA&2<(jBH}%#N991g6>g}Vr@o3lbPoB@{8LncgV!m_2|gqv zr-s20JlNMo)ie*bsMB1X5IoE1cEf`*9u>T9oQQg{@s43$Ayq?t6sp;L;MSjD_GG!u zu6Sjk&+vfle1;l2q@tNPvh`;uUrrW}0;v<^0Gl&TJQAKeTVRR7(iUAB8FGQ0OF!SRAo&uA0>p|d_#Nu{maDQvmq3X zEEv4G&LO%m*^0W|xTylNU~NV9IEPGfu^&xsrdvd?)W|{|G}zfaWJ>6pH)c6FsKICU z@zt@pLjY+6S3Z)9PM;Y zE8hMtyjLeVEFDk8o$_-_3q{IB`O(QTH+=z$>|y9QBkn#gw}!VfJ$Whhva04b(^dt+ zQX;#1pNy8Jf7vnJq9{~6x1PA0->A8FPH(kl)QbW108|aL3W)crAcoH;it6u~6Vp`k zOd)DQKFl~Z_#QS{-LdYpR}+5lDfn)MM}xV-_!1wtyork~BdRdIIO9$aser6Ks8gdr z1 za8xCBU4^dGO6{_#%gKNrfC^r@z)DS25NpsUPb~`9$X)0V=?1zEJVLYP=!D<`n@gSI z;oWIbcB(| zdS{zTPxN$K(WVmCHIMRjFIL8;57vH-aA&2)i4KB!R+3_p$>Yj zG%Hp*(3H+DiZXBSP;0Ohz&4(1)6$O5rgaXsQz$obJ5Ar97wO_2pIq0l<9g)f-azM6 z5cw!3SdRenww271Ar!Aw*gGFHmg^%IUBeHWhH+WO@cKUexfZQynWsO&P z^C%wzi^mh3THUmQSU&6&6Fs`g@%T+Nk!r7-OUYWBig4!X!NykU7)P$99xktm8>ig7 zNV$fd!ANgzWYg;C7wnluu1>z8qBW>YgdgVN*xTG3%SZUq`9z-d*^pg6x|g!i8Nv;i zy*Oy;rx;F948Cu-)BH$EMDu$6jCi=sC_dnITxhw@dOS+*eR7sX3tt~-kGkH~uBpb7 zJMngUs_cluZo3(wbR^N-oteqD7$tqGpwHfvbRD@miPz1D3ytLt-~PCa+8@?SItEE9E6Ng`UP+vAk@6Y!*g(EhdG(Ar*=*Ws z}VF_ee8m;LTE_E4x& zXOKRMkNc z+n{F-rZ0=X- zr)adIWFs>xSvDn9c2uAEXDKym=3#JWHEGcSLFI)g@u(vo?3X#Y<`+@W$?`99CWjMC zbPJgldg;oLSW0wO_opVYhWkmoJ(1zfX$}3{WR=8{S}K%n{F9udt1RjH9_|uxBs|NB zwDo5`E+5wKa#DZdc|<$WALryOXA*wKgEBRLdpu`8&-+Owy(obUzE$X1wcLB-531SW>(}FHaJ|cq9p+q{3T?^<-{LVw z_Wnmz%<|EzjY$T@yf zvx_%>)Zrl){bZd!LQf`;fB$<9pWNQm)pns`sS))X4t097QP&GuATRWFO?7()hQ>1J ze#qBMDt8U^3M*Z|D3kwHmpX<{R;WwBR|G9ZOXlMTsT%?5>=L`*Iao z-2w`Kp$z3|zNEQnfK11I>REcTM}WJiq;jKfbzju{tvd#}DFf-}K-TmN#pftYSkbH~ z+?sk;IQMP;e8HxtnX?eS)6*+%-1pEvw*^0R{!s2gaxO521|QC{j}OkEiE)~LvlUX%-z z4^@ABG$pmD!0|ZU0d^;@R^9xFVo_`2sC8_q9d-Nbok1yR7ZXwT>%#`|K-43}p!uuq zrWMN0e5isPA6xEB#cN5M>&b&h8p-{^5}jU|u1#)K@%MoexsErdQReUcCE_&Qf(Y-^ zj--5F#-uR2x2aV*bQeQeg!g7d9!(7lv{_uGli6TSD(NsObadHQb%^L>`>i zdq;`qiYJ~&;1j&vqNxYdOX7)nAS3j)GS3xHJbUO&|E(!6?owCGWqRwQ2A|GTE6?|l z-jdN)V=4u;4?5k2A(j%^oHr}3diWw9EOK~Eo?WQT0Xghaz6Lp@ZtbDDVX#hKuh?;XOt-cUuaH2w z=-1`E>oB>|mFW4!=63 ztMV$I*vWQtVYt#t`s;CTuDQS0+1O7{6|^>0y?pQ|L8siWGCoO0rg&d*U9}dE0OG#V z;Btn6i7YpbynD1G<|04)6((1YacyMJoO3qmccuU(ZsD(wRj0`{!tCT1?CbkyD%XSv<5to}IJPBI44dO65eXXIZRpZAGi`nK?_JgVbQ% zKy3Jo60ZjNfQSF|oW~U=2dEu5CEse05D=eML99VW5Zyo3Bu;Iz!|4P~V(s+oPh2(m z6q7dAb@1ezlr}^jE9*%XtA_dVj38IAJyEf^X`d6$J8eeAvj%phCn)Bjso5;z41bRX zRa-rtY3g`+vv`?0EqN^kLsBWxiQAPam#R}*bZIyBN=rcT{)^7mAE$^hJpt#mQKh>G z^p-F`H(7Fvr4l3lW4Gp)Tx2O9)yq7F`3LCHw`6K_5HEL*B+Zy>U`r-QJnFkWHuk2p zf*zewXOiQ=Rsltpk5U}EbIQBNkz}w=KHXZ6Qp7b>_ag45k6SLtl#i>&GO=wxX>o(I zeVz!G^X?~1l6lF}-MYl`A#FWgO)Xzt7E@8acxY0&^4<-vYNZWqT6rsz(}2eGOJ_DGlJE(Y-^qVu4xNvl3Ek@JAZ*eUT`@uXvkV$`;xMcpfs z_(a;IpL1lCD=lr!Vk)pO8zt)ONowI6l}b0{BMT~US{2mry%6cnu@bQ~tYQgKw)+to zj}zPr>zjQ#A8svBEmuFk9~NxgkS--Ydda9tbqQI6b*56=nPYkBWN`fkivQPg8hafT zE!@PC0sFmbvPz00C851H&PbG`dH^4G#rvsFgIZaXCQhuaC?aU))Rsz(EqCUp=Vn}E zCnloVYiQ!(c8gTTRTb%&BJY1ivz9jL61M8yN+Nb>NwV&w59ftOl|XxF@(b1#lvjCR1z#`pz^Vnb|2;r+Ro}u!c%>+s z(Ic9cu0BUFxwQs)u`5zm)YLnBC=Hz_9?of5JCx>pveJuso1xYWjplOBq-q3;om^C{ zqq&r`GPz2rFEI_BT`W4Zs?b_$sS)q~C0;qWmh#Z5TX1-#M4o&!LF95Mr_Hvhr^fME zb+icX5rFOm9aO}aSkw0FNMq>HgFMp%zR%%qkmB)1Im~%QeGs|Ay+P=!l8AG8#-X~e z;JpcP?w4{FscCUI2UzU6l#|~YA9FVCGMiRj@N%8-tihX5R`k-8HpiVJog=(jIr~%2 zOs5^Ys#hy#Hswrrx}_~n&H?8EGa0AV=?6z4C^DEpS3!w z7-q2zK$)IkfJE5C&6{ES{Q&7`5%Ity>T-}Vw7rEqomQ}dpToQ2 zbpE}|B~MY`l}xk8$(`_V$1LxK2A68o;$}X_w35du?*%??4e}xja(==6|EN0;@VJiS z07G<>Wm}fz-YHqO+#Boz72^9u0_2JRmf6|a*_m0D7eAY{FGPva zYs+aZmupX^5!Ma8m8aLBzqr1?&`mcad^h|40-jz&-?_}$=cn|!-l&^yneeK&y;at! zx1U!gD*Zjci#6*ZCb5)pI_$Y#at&*mv8!(}xo|Iwiz@uBT5eWvb`is4K^RN^IR?>G zAmOsaS+&pB)NX&cou41VEomla?^(!P7@UnS9+*m3Ot1%+v!ZV*^Ps-kZfc|(4dO9O zGF@skx7xjEb=2?2$uO!R6Wg;FU}eV}6#Wbwl3FJgSIeamDPJl&wqK;k9Fq}WSS+Dq;( z@M(&NVK6h%aQXt2mBi=E7J75N3+*KCbsYs&q`RpOqcxT(sGlQdWbp1m5> zF|UjqKe0ew=s{vmNgYXh%4wq~6nOe3#$KvoBI6Nzyds{!Dv}td-%11Z?QKTPWJdLI zDHG%dUJ%-99gU&-P^iXb`uNzCx41eRZNP4(`)He-;y!wAMzB)E^@^F^->q%;jXl)r zs$3^97UyFWmokAjAt*3iBbIS3?y2XV1nZn#mlBW8tS-WR6Q&-3Id8dta`jP^s@g7s8A8E37DwhM=2(}WkGMxEf0g=9_4P+ADPkA@&{aa z&MKn;9#Q56pHaBm`)e{DUWqyeQ!X#e8hm(0J3iWsYMVc14PIR!*40ODL?4zB$-V>e z4Ap8}rIv>h4NE;k1mO7yifRnDu(~0YIK;~g%P}X_Z=Ch<5C@xHeQ4ySV2`w?FB8@&y1hpe~N8LZM1L?B|uV05t8Dlm6 zhm$#3NMu*65j`6>0_DQJWo@*5wDPPHqck5qFCZu>b z;Z;Gzmka_q)icT%E%VPNHOt`--5a=j=YKMZRJhg{;BYBs&LRJ($-#v^Y1i?eB6+C z6>L#((dK`vY3}4FanHE(z~5-r>ZserD0+K2$Y~zkin;NBozXDW$woL26Q+@EWzE73~aKQ5>1lbS@yPoc8H z<;DG(Ce6alSrV6?HvObox@PKn7x>OoQao;$P-baf(s$&p5ZytX)R@(dH zoTpf}K#F_E?QDO9v}2ukz0o-f@6iX(9H)&xlC$dCN11i~hbC>K9sFiA*Rv0sta`?g zS#5ui(^ee`%3}H8qV<12XJvb6Xxs#M|NEhwr^1d^1!*|ehx)9zQ|$-c)L)E*(o$~&iCJpOneX;CphWD;-=s zrkq9edj`vu5H9YQXa4X^@NR<@t~a^8^>&HC z36An!dh9c-0{APM*Y36Ai-TFPtDD0(*{(r)80s&3sNoXC-S+)bN<9;IAczeMgW_I4 zfQ&r#C+_qX>FjbX_{9n>C?|eMTfo^K?{K!DoUT?U^X*P%xV^*OIQ~L`i8Gr`^HMzO z!DDRg9=;zRdOqOV@bgvLP#y;P`u14U7?Jk2LK_S}-`OMkLi^6;zy6$$dvse_^)>Lh z+>f{V_|xJ2=4_g`Xs!xl$8Fd;42oA4bF=WXHm$TJN@?5~;%AC9JNQ>Dx7^M7Pp2%Z zahOC*Y4|96Y$}X3 z`iU~xNQVfv9~lea#~oxyRDhATf>y;N&G}A#%t6I!guzV4j{MOw6GRGkB-=ojuGIsc zbMdV(vp=G#-9cIzZ3|xIY#AFsFx?aB`8=Tia86He$|2kZJ>cq*TT8H{{pM!)hctO% zG0l6yE|)Hn#ZtxXbw8LgG5zC}P|(E~WH36MLBnD`x7WSd&kxpHoQL8E3@&sOGD4sz zyQL__bIW)rzQ4o+SE~(_kE}LEHlgues6(^D|Ap&22viEE%iMG-YPiK@HkBYyrsj2nCs~$ zYTWO3aN$Xe{s_|1%EpqI?3q>EX}*ggqqiiS&gs7IEYO#eb_|8=wjsA@P{U0t6Aktq zPOhzP#pCR;nDE8HZ?}lMVH0!O{@V(CWhUC{LfT(0LgiZvJY!ESh51RTT(s)96sfHU zN~^24sqr z=iwvG*l1r{pu)4m!#ZMKIGgEfG%@P-)niZA@j^VS9PO(uTDZrW^Co?jMVl`PLna%)gomKtxZIPw=WCZqNSw5)V@8n{9Yjet;?p8(=SB`8<2{ z#Vs(;pI74h!Qy^*xx%w7^0#o^FO+Qy?CKhK|C7L~ix4bs7Qc=0kt#lP}HLmV0 z@h~(ZxQER7vhN_m?TvMzBJQKd2fr62H!cxt;4wYy6?m)U-wD6n;JhE*jM%CxHlG>K zPDXL{tqx0ID zzXer3bvR@VF>##7V9UjuJ26OSgz$E7gl6eF!FR}<{jkB(OA1MD z0W&ikrEIvu*nsn^D)UuVyR|Y~E@oK~%9)-!NW58YT1-`6r7X%~ZO<^*oy@W*ihoY`)Ao^BOO?Lm)q zzaOObHAQ+fSm>Q;!%l}KIiX5s47GXG^@+U+h+Dx~p|38sBCo2ACrB(&6zGxXZd+f) zv4i6!ID7P!MY66s9q1q6a&%r%B)UUUM|1*k8UANRnBE+6-#J>|&r47q&htCKwEBZEIPJPw`f^DIM#J_p*6oG)Rh6F~+Vs%CXT`1y3A>t|`u2Ha(Ufem3RC{s_khbm-V~7S^3kwmSarCii7NZXNyg zoQ&~xftTi7iszo`G(dw|3rj5BT(0g*G;wQt0JWz(o$ZC*UeuCS; zoy1?P+n_wbgQMH2Pk6r3ZFjcAJt2%;@}eTUZZEWlycg#BaG6|MOwxUWv#1Xhc@!29 zd@JO!L7oBqJ81F3-)84-Rf1* zLlDIh#N3SUOUWnU!ORXl7K+azb?_N$Tad&$iaYO4dbp+KBBpXRJMYlcxuu!q;IkkX zC3SmBIx*_PqgE$3!2LOhI}y}t7(_=$!y)__u75oqeavLK&COrv^+zgkwPeJLrOM+s z!ury;7U;F*Q+oV^m=*Ct2eFonN~V`Da4^GdX3lnceokz_!RS)E3)v|~azg(v(P=9lv!J)2|iYOkNe zk>Rb-&=Ub?quyk(m9Cyo;%*ucVmX?n8j>6FXBq6{?aeKyw~Ujnnh?G-cr+#6q}*tb zvv(%diJ+#n#Yy=MJUv*}xOk1dnhj}Or@I5J;jjRwq2STxY}jXNCRlS9B6a+#C3@Gh zFX64tGcsluLUG!Vt`j9--mQY?4(>4)N>AX5<(gqX-OWywSvZ@!2Ys5&uH`($+3ioY ziAr%`Fb>2ZPKN3a&q)(~?@wXKV1tB`nHhevO`hqr;StlzB3(~%vul&C10HMS4jAz# zy4e_l1#h+_ct$Kc4aN2l*McXEZ$a5@C~g6F@Bet+g6wT;FidPmshsG^=E1rik1G*t z;4$91$ELicxHalTy1ZMcw~pH(u6GbIp4c8%sg~xLk8v`~!XsufBYT~LSqe#&%Z}#^ zjFEJYE)b2pT&q~1xR(s`S|>AnWI2EDqck(>LbX$>2ta}hmq#;=eq+7efw&E*6%#7O zT#c?r>NYgsP&(>nhZnkzc9#EMVx*7A0~SlGMSd3t`nFwc8A4GCaUb;Q>Hp|7<$)M1!9Ti=JelE zDpm%j1sQ(p=g~ZPfBdgSnqxUiN0jT^zZ7ZZ5H9gZa(nhar!>5#HmoB{-AMb#`LF-U zK{Tx+dn)T>|0ByT54Dudjr2b_*x`DX+qwQ;6Llp7FuLvIl(dJOr|0i1-dyiO8{Trq z5+?c~&Hsr6>u->?x;?GSM7DfslRjy9ZCkD2G6k2^lGfZp5a#G z$9cLvv2rcM+!}w(U>}9VmW%Dya0^1k;AT-}N7)}Nz^H6e>8?(R=!d?m&x=IC%u+i2`2XP4?R@qYpBQGBiR@^_F*TrhMNh`o{ll$ ze~>cgF7;t8MJ;uCXl(*wY36((zwaQHoIP@)=lqT_fFH_;Z8*HQqBNb+>ZDj|nVI~c zMNFNT!FrLi96q3#_0?ha+=gOp!}n{N^E_ZJ67g(uw+`>~lgrCfOy*)9-&-bUPExA? zlAOzEqxX2ZpBLC|{>y@}QXFrg=2F2eM8HGPzjJ)vTT z!JrC$*^RR+-sPm$z+`-2zoVIW!JvwjSr?RIoygGMY12v@o0!JzYrm~&osPeVqI{Jy z#NTod!}m3Ah5n`{wg=}|`;DggL{jP6M%-79{2L58ywBV^`E`SgPi|Ac%gMOn-f|k@ z*IZ08K`obRt<+z2Q_JSIoXS`(zv80S;MwBtIDT0(qYLe3w5;ps2EXLS?d89eG3jMM zh@I=gz0O7(lALW5Up~H`*gbqX^cQ{HI&2r_KJXoy3-O?}Wx+7o@a-iY?4WiqsC;CZ z9{xg!2x1$$pE2=OKcDhuM(~Jc55u_AbA@FJN_RExp5<*trUF8YZ}a>jCg7BUZlr8Z z^ZuNR4Pn$)cja@+NYPte%wQrn!fz=Ov*;6*4goS8C{bJt_s_CyyW8TqWn}qhoaFN4 zikZx*{HLAF&|V(&>}>}@_x_YcR0-kk;&8!I&79|c(%BAjQHS~@n4Raxom8izTD*q2 zie*3H%B$>Ch?-uVZLT%#fYz9J6U2~nq< zOeNMJoX7b4trj$gGsDtGEGII$<4px(bGtT+nUUx3b28CtwoHy%d-_HvwFb+XvFhHS znW_?j3Z%0)et9n$;`bJbYwckNQlu=ESS#^+9K;$llgGb?F}&YhB&tVpG0PIKqAd}U z?z3FA-|w=xP4LR}j*d3qF&;#N0EdnpzG`yjG z<@D3nTU78f!aaLBxi$D2x!QhT$FUcq-sW(t6u2VQR2=_n$Mb{lfVi>$8jfFszm>a< z|7wdJUgL@Lpnp}7Hr;7A2DMaHo;Lq`L3(>Ha8%`?4Tnj$CLJMk`ZD#C0%iDq)=G^1k-V0-Y zf6he{b`diE&)SMnI?`N3{b!bWB}H5(?=uV@hMdKt@cUHGLi}`tM`fCVcUR7e_%wqC zj*5PiP$3RW{ffuabK8c|%=Z~YJll1#lkhgOg%sOoT!zWE$%JBsHcZ?zg^-RFctI9&g)GG<9$QX=E?9g#I)}dq z!1*Rd4kG%)LnVmo<C9qI!+rnEPLgC~c-gwO+TQFzou0+$Le#0@ z&cU;bWA636n!BtV#AP>#c%3q|zC{b)ou@qZ-&3G(ae=m*`lpwYj)EsP*;e7Z!7GE& zcij@N277~!gFNxM3woA<}S5|?$kx`Xme+%S6k%ZQD!v5t2E0fE0U$uSt2E# zU55KgKeu#&Amwsn`wGoXwZv}vPwplbmCRcL7ab^t@H)_(zvgU-2j?bhiAcwi%Mv`3 z^E@$Wp;_^q20X3komOqHzjL&;A`J%CGEl@CfSbuxqIE`ttuyWD;>iv4?b^ytJd>W2 z1?Cd3WW3ZeIh(YH@HP#G5QW!0_04$Kmk(lZ$9v&bT4v&ET4XA~?)9BV0ML19P5vIbNtvs0e?vnPSf zE~YFrzJkZk<3)WkaPCSu)16M-v_WzS@%Z;KcKzi zw1t&K=E_8Hq6BBiGGjVx6U$B;@tAU_=o!sRACN3RC25&EVmddYM>YKfJQ}0cXbm#N zd8ww$#9S-vGW!U}u3?_Jk-oFcu7l{&y?bHpyv!tmR*D+k(nY#-_u}flz0~BP2@+0Y z^zBP*n%kW#UoD;!9^Ns$*k+cT)zb0gR?3S^+RPSS#+`_V?Tz&5%;0^Slh(r-dvR55 zXmCe16?{Hm^zNY&v2@Ur&n2_79Mrt|b~4CRU#PC-vgr;uh@9#Z%aX^k#5c3{v+S}W zlCn8jnsTs93r9Y;p59_@u6+ffR(-bFAnhYJx04Q{89ihlt)*-(r{InP+o^cPqswKK z-(KPsdTK2pX-_%wZ45cwFT_Rt-C822+l^(4ihJwvP~#i7FLW{sV{Iv9DV>X1ctMGd z#=adoP$%*E4q|we1h;aYS0aY%CCrI*cL>G*Q=TgK4CcL7dA-mK|#5-<1N zHfN+g=i(=xQ(*5V>Diiu0S3W&FkGK*GD*Sr3!K({Rz{*6=~cMT28X7y3d=>Zr1Qp+ zZ)C`2ceRwv`EYM=l8=qrt#B_n=MC7axSdYwP)!ptw;BmP36+$GTfVb<&Q$nz?lXCM zdC28-kJU!+x;p7uJ>=5Bi|5-D2l;I1`O{N&gh9G%v3kgsUYxPa8F`OA=ShrVcv_K4 z4+o+B<^qd*%f#qCwaA@~2N)kn)bJaAk41xVY)>I>W7z26wR5N*=6n%P&PZ^Lhp=#8 zgl8VnFYqLrRx%@`v&Ze@PedA&Rvv*vKnI3c8K8l86de5t}KouSGmQr9-ZO z>vlg_dO3g0<2ZKNcoJ)hDUW`7D)jrYik-!3SQ9K~d2+^|2CVBfE4?@kUZm zT}oo9;d*(EgIUA4GQE7bCMx?!J!DuzhAvk@;c6$dma%1e`YA7)UwKf8xiA~9ce%6bo+1%$6}lH2 z2`K#aP91&q>@IkAxvEIU$0#UTw`B6lXO*E&c&OoPh?AvHO`z=yyPJ-9z!Vk7;t|V| z#~ykPjPL(CndA)(^}jOI|M5`Ehj4LUJts8GBlvG8wX7iOWd4`UB=rC`OQ3I^s}}U1 zPG&70Ze~vZ!$YmX%gxN`zdNZgr-9?kMF#$x%`|M$(7P~B3;(N^OLJ>EbEHztk^hAu z!~BMlJ>CcOBK@~f~3f9s^yu>UY8=D%?;YalYGkH6MLNdBR;dzJPc zykfZd{3{oegvi=>Oi)wtL&k8Ub)-cKg+nQ+r8!%Jl@>Cj~=!<+DMXil-TaHIyKXuX6zYA>40ds zPI@J2J1WIJ=KO}AP}J7xehW)uq$!FuoUs^*`V%K}cTZR!SIj1yB9#}2!u4TBEvKw_ zMm-h`-k*FdXVyhy*33s04G-oj^AY^q8*N-Rr7K3U1ReCm<4!>@|2XHSp7oP`yh(3# z?xs>b^AVJ?Nx)eUXe%D{>~#mA4S$4fm>u;y7(@zgg64Vf54#_$2y6ux5%`fpD~`iu z4&;K_CbD?!x%>P-Bw~KgxfW;lthNy)=5l)S!^G_kj>m&x54>J$F#aNLaB6fSwjC(zZRzZJ4Yq#@^=;2tyn<@XYqo|apHCEXh)aVPv;O|Evpdld2BQ8dDvQdA?I2)7R`4Zkpqx@CvD ze5^ftGD_*AaHIjZWBhK;%`T>Kq9ISp7OYyw`CSEWahh$g z*alhnD#vXELkzw_QwoaK%I}uJ5;UqUXRA ztS3GDAx4t_W===TQ*91eU>&_JVd15c#br?cMow4B34tumum9^smKiK>36!*l9QD_H z)Y4H+O6A7&SBunOZOE~H#bmA5a2jNMM!%f1#vJgaqsi6A`K6qC6tdKz7UuSBG-xL6 zKD?L_tQ)x4u3yZ_7&RWu;(XWdP^=B8Pli#SWWa=+v68blJ~kl3Q{dBP% zF!1;epS4-biOl};Q%IZv@f}8I8|@+a0ny?O*MrBWEHd=ic>9cWizH~6IbN#&8Ndz2p zRE#_OeiwHk4v$gt?7Eok_9ho|rV}-KqdtYQgi948$KU6o2k-b?PShK1;;!DozrmnE z(!(;8f`-f5xL2A|`QFZW;lDShu5NeNW4PynH$~2uw{|g=^UZ#bn`(L=f@3>4{&$b# zm$!Ox|GC(b?{f3YTfLmhoJGFVphn$Be=AO)w zG0KeWw>g+)5fYCqv&VjGPF#t)F(jkXP78kEeOAe7F_jtHZ*fygSJ7f7qoKYzXD$z- zQ44R61~J}$TfyY=wc?3A*b95zHyKp$07L0sxU{i=;$AYmZ!Gb^JsHU3?BH)Od32zq zAo6~ri7LSoA@Rs^>RkIke!kXV34%t%Bh7gdzb0=( zcB6kbTt6^+@T(of>2RXwmK7tRzA7g!L6k@xF}}KxlI$hpTMXsWJrnrCdWdc^0KiS?e*820CJ>^jzrhmBPhKDW#+t3t6%ac>KJ zPEJ&J{^34BkLJA@`uEvInmMPo(JAgFcVF~bK5p6Am2;VM%l$>}QlsC8=;iQpD5oVp z)5$zB>NbFDUDrsp1jqdhFSmxQI*)CHmFqv<$;F6Ds3^3nC;m@!lEY8@+(bv@o-29w`RF4 zfWCuhZqN4NL^_uoJ7(E6%q+7*_Z)0mE0!xt+F!0VM%T$K8+u|UBT*d(vxd`(hln=( z`J9+~PFI`oTuv{2btqV~b8%PqTM7$?r$%?5>F|?QAb=HTcla)JQVDc=I-NKCd*W}wxKTHT|A?Sb%>g7 z>Mq-o>n0UdtbG|L?jvWpHj1>eQ7)%>Mik}qbtbK>$ZKVtGg*`2HY+!ZuhlG_P!qly z81KMq6s-r3L8nihV)myx2v`SK@rZJ(@YOzUaFhr467{PLYF@?|@=hBaZ;@Z|e&LZ> z)B>+G_%zCEvAW9*kEUU$uP~^y(MDs`8LC1w;bZNg-UfZW+n^fbTWkGj&f+_p^5KE? zQ8XJtJh*xt+FnlL`SsXe=u144GK-0|!RyH5iP;Op(~8*bLpi;y>bw<_Ebbu_i?CMW zWsmt;ZUZru8Q0Yk6@wpwYqK!px>6#Rw=;1M8Qv*_hei;F71}13nCFS_!~wPV&}=;12mS@i2o$duj{H(T8H}?~GFOM;B^h~Pu(Y~xcUl|DR!8FAa`)#i zR!n@^ls0m+=0vdN%iQw3h`3R^zc7FjTv2PGXCF?*dV;Z)4il}>Yettt%$z_Nc-2*vOSJsF}gECawPtKRSKW8q)pna_&758t- zGp0`lt9Qy|*&-t*ad!;+a#C6tpm9DL^;aUOIW!2j>^*(NliH*rcRK4}mMk^4S4O?X z7|QWk#)7!FoV9R=W*V`?wtHMEGaT>s60htS7xNema2xWDj@q5pLcD^}K~O6*qFatB zOI+)u-fB_jJEOrCQEj)pn9At$7iLtn{AOp4?&@9K3vAkSuZ2oB9t~@#1I?|_=QHH8 zlcCNLeqM=eD?KTV>*sTc*6xAm=JBXl(+%}Qu+_==>~A4*wAt>}UgwqZY~1XjmM(V1 z8gR;UetA4--RCH3)VHTnPVwBnJRK;{CJM~ks81@W6f7vGd9)tBU3ODWTaBXgrOQC6 zlyYa=XXUIF$OW!#cxCwRP1Urw{*UkwK+;@+$rP+q74S^&0bpJWi5tadlmj3 zEG^vn+e>8d^FuNx)$JV2^{_xkE1b%Brk|Noaif~;dXL+0f&1N4!FU!D>>iZ(>?V0cCS5v3gWieC6+9Y2MVKio|dwgF*AGnSTsBf zT0Xv*mMrfC&+5WcWzZ~Ba3U7r+*02inQ|wlNs9ywoJL<&! zD1l3g%^uVWZa3{lNN0f?i6`4_(5pO3y6qm-abJptTXFcRJLoyN9fFZ~lHH1>sMT)F zQ}H#d6o3y|H5cPX3oCO6+N|7-`4jDSEVehI=616aEj4;j9=q#sH%VuMs}1=Co3CmU zkuqvxs;=F6@s7#W>3MvK-a-Fqzfp3riTmuac<|=@aYXHOVk|>`dH`;{t?dDp@~4-} zFsq>C(iHca^DaJ?<(EuMF`J8ixjtj-tvuMT=UHV~S>-WAYuz&%48ek?*G4c7q|`<6 z?0W9Z@Fnl-6ti`PLX4x<+@)qjrS8=wK=A7j+{`}OVq=IAhDUhN;+f@E^0g@&-lKp* z{;K@<447V(0+gTL1V7I9Vq-n(R2gpR zOmiNrtJ7A@b~;)1K&Y+A<@-M@<)vD3y3=md;9ud04|Nd3{VJSy_aP|}3%`~EtK|~w z@v)*G`N0OM6jUuHan|L7h*YJnWatXr@9}P6*4G}h6?IjW^jI|X3ajGXJA%ZT)s?dl zeRzI#3nJD^$0_kxb9ch1f6q-fO)6}*;B;+6E|H~@q`F}8kaoGg?wZA`9t2}LG4TN! zS^D;>TU!`$c+)EV1iu`G|6Z?uNPj;vaoy2d+wfvi<0d?U(bt3F*LS7g>)(z{-2RUA zb9hLiFZ|ql((mi^~XrFJuk2l2*m?=36O z-MhGO;x7GHN19;h0v3P%)Ti|Sh+OnIyXDLHa(&L z;?`EDbKBm%dtaDIB>Z4}>5-hwL>9*s2@?}VLy?h?2#Rr+#?ZOz)azQ`7WuUdb)+jOgkZ1p&hB={K860kC zD|ary`9MX0&5t@AyaAn$lk!;T{W)t;x^DH)~?g!7u_?^3@=fMzzEX+p_vsex$59z~st}Q=As}p_!J!bFRv+#$Ewk+)2 z@1}nu|HaUjg`N9-`A6tGy&F9~-MOz-3PJaASN86`Ku)y^ay+}YZo+tJp3F)G<-7OW zfT8rDdt9sT-fyB&%73YQyz+m!+MZEm|E@lA`)}7Ss$3$kXZG(g5?R>4Q6fK)cF(te z{w$-ZN_JmT_>;TgC;uLf?H;>}JNFm zUw6VN(H`b%1?+2C6DSm!p7>0I_Dw$8!sgH8+ryo`X+QI{2ZOznt{N2F+Dz&WTA{a? zy|24Qot_q9eN9X#lNokZS1aZrQ=e@{u~p;8;tJX6%%R@RolbLtSKb4>)9HSonh=i{ zN}>L$Mfsh|-ax6_%RD`}_G?Phm6{h{)D8$``k>(;^c0KG!v{X*Os zh3*Si2mLk_yPO`tbL&)3bUV9K!W@?jXM9_Y%thnS-64`!B8Ux9aD6U=9VCZdlYd{0 z%AE`8_7JIAWJW|6YH;t7!f6!F9@$^$c&%-qTg35gm=0|NH~Ms&h;0B{f_jWIj%LJ& z!h-@vpS#1PTSTPdUY#3P19g8&?Ld<%fX-#1&~2iot4`-{t_Co<9@8x%GL;{|C2OHQ zX6_B>CK2h%Ayw!z#03QO`Ji?>TNWA~p6Esqsp;K;d!kj1_`C^uYbvgCrUi7HIJO0< zkmk-?zuhJajH@#@qm)V z9m)k6XdLVc`rB|a?XGtX(rY|S&V+!IRu=h2!NM6%Oy>4I<#C0K>8O{M*iwC_P|_R; z>QmTTk0#BiFB7&J%ueVn5Dz#tn)gaMN(TPW7!=O_lxmF zr2DyI%|QB(O6Sf-PCkm6})%O=$_L94M9& zE?zygP*ndiVrU<)kTbeocw$XmW$#PR=*S4xXb-Txu;XzuHila41>KN}+VRRbqw7wI zrO+JRarT0STz-3D=Vx?mGixs32g++}*uA)KQeZ7;qtepHdtrE~zQrme55u8x3&N3B zqI)185wCJGi1BSTspPWJo{h1ja7U{P?n4T*8S8>!ojLfL{QHVz&klY&^z^2btn=W~ zNT|Gaih9cru1oU<7m}M&z%=oesb*!c&6A z45UL5HtSpsyBjncYttBDbyEu7^1RF9Ip_BNy&f)R{p85}+iJ7S**8=r14kKqnoo6c zXytumZXl>mh9;)cOw}3k4$65R>-1(=M^qVOCF;SwiZPQ;5fXE`Sa7O}kuDhrIBZ6> z`^VCdn6pL|F;cFjJBnf??k$%`N)<3ts!xpSlv}EHffagA_Bz`>V68o*$`(+l6f4&I zfZ`tND+_BLF+YteSfo7nG7-}}nIsrFO!X>&Hl~B}5%t8`;@OI-ROC!|C&fh0!%r0| z(AQmFkVm%{;DR}5H{wU| zEXg8H+(VB|_8gE{iXek~i?aBD@a&omN-<+aYQY9AfaRmh?9~)EW|6Iqig{d=AVrD+ z&wO0n5+-GWh1%VosEk`-jwy1CZvz!=&dn96gmHC?C~^$wxi~wmZg5iWoX@Q%iXkiT zgC*Oup74xA@nS%m86^oEFvxdUUR!}H%cCD}0Y3SGm8Z>tMOSdZC^I`B`MgV9x?s+M z;+4gDyvZM|h}MF#gjr5yPV40HR@7XeDY_}|WRuzXl3#cE1of`VY@&Ua%5Sec*{!n*NO+f!gW1VnhK*`8Q$njM#X->>fUH# z1bfULSa0;s$BBe1{iVv7jfoh`8d6P@Tp1B#S*OHOXpZg}Z*&H^g1phxX3iT;A1JM@ z+a?c9W+q96ES`g&Q}aO>Ued&8pw1{1!-*E#&8RnsAVqRHiHG2o2468=@j_8l{ByWT zPyY}-;S<-0+u`wXy_lvMeWg(0dN7QVyd7uT!>zeX{dSr(3+JMm+A`^=-15iJ4qt>S z7Uy|AwKM<4h)^xmBKTnb5&F&-@%v%N=aB!jG~)O1&c2ElQ5Cg>ZpQmdxM0bf%-oB4 z9Plp#iW}vsalk)vc}CBqR2fND!An=n{(ag6&!dx`$wUN?ke-1U~`( z{^7vWpTm#qh~S!~G;Im}#;f|0n36WCGB4jU9F(IC3j!1TF zkw_&{!-(8X4EYp}(hDM{VBsU~4zV)ZQDtZJcr)nYVBbw!Rem+bS-R&Y-zbHd@G#GmZ_T4V`nr?bc_G&yznpAba z4zkCm^g`%0-S(Pf*b&LAGk_$u1GV&<8FRYvRrG~kf26KaXvo2PR7cM<*IO|+9d85a z_BUk%Dq3xVXRWuH)x>d4x^#VUcdvAUQ+%wTI%q<%6cs7r9{@4m36lTLKN&5Hxoq}Lcpr*j-I;rdy< zS5>!mVeXyjG-t9??cy3}={S!)&zaoIs$1whr|6emx6pYmWp^FA#kI7=BhTnII@2ls z1EO2#glF^3HSQV!`5O0VH*}EGiBGk_139^ncqXa9WdPJR=tOKvoW&xt*($< zJKpk#hB?Vaxq;(GY|hX7B14nMB%Aa-et z`6FOKG#`+=2MpxYUrL1U)IY-SdnR5Bzq;-o3N2^Of`!kO7T-19M!#KGHqYnjeolG3 zu}^~OxD&ajJ1bDrA9B9P4%UNcFst>Cd%5XliUare{nhq;7D(PBkM;RP=+R3RX}Z-~ zi8hKIl5;$8S9rkxVj$EGEL1H#f zpO`_(fM>1njn3hgwS@CotSBKK`xo=B4=5t6;JAs)Yk*;=Il%a~8Y?qNEGfAOSo;l@ z8A%?@^k}FXfjOm^*-+xR!tjQUs7Dv0iLy@-@yNUc%kA{A-6<|``O0JFZ&J}_M}3;T zDD_2U;+aonwfW;bj&~@QiW`RFTkwkZfSj8P@SM-3&~?Gp@4P)FV?`(>rNvE6+DlGK zZ!=g$DGg(C6-aK?%s$4b!6GDwVm66liQ)9x3v-s$J#=F3oH@nl>=z&tEfOfGZ7n@< z-#9sWK5}pbXX5_$5}01rK<53cwi>wT>*o=x4=~(b5gOVvE|2rMNTZCgUbLYMJFH?` zFzuwh%MVONpD*4|-csga8bppTzO6QvT<>nyG}W_{J-lrWwU?PleX3S~qlw%4D%i^u z5?UBcv0QSaN!1E8FEt~k!cGGoFDA|%RVY|ehYxhA;oI)TEhwMHYIDcwE~-bcG`+ll zJKjPI=B>~%`8ay+V9D^0*9bD0lh+p*VM&OFdd{!Zbzqj0>=|r?|L-DtS~N8lqv}v zPiEVLeq-3&Dq2Tjqw2AZF!F)w2^>$TqL?9|#cs;i1tT?7Qvisq7C8Jz-QEB!iLg^2 zH-l77z@!D*WZa6UIszaoYnhRRdtV=fHP|*|b|tDI0MxRlAkd=locqvGN--z%!%dxB zf*Zw3JQ}upX)HvxJ&9MNM^@20MlmPz!`0FHynWCVOXw8i9is@7`QeFZ6F7wpLfjjV zZvefQ6iYIX#g1n$&Rz`UFr!A1BPl0T4!Khn#fZ!gVO`fSJIuIIJP2Atuz$mb6Qmir zos{A}h|_2#SnR5Zl1rSYx&XeTK`|clXpqcZ0uomC&PC1mwwk@n#q?4v2a<d86GM zkQo%J?>(z&FZ7L~I8tJ6cNKwoXRGy)dy|ABIOgZ>9X05+u8ry3qs`wsI zzTPIp#4938KkwkKgi}z>Sj8w^<>u&Wy6geX($5?=5cLM(+>M3#O{qdP8i zA~Uuxd+hv9YsRX9VWTCmQ>C>9v3Gf>ZiT3YL!RCHWgxkv|4;YyZmJ$Q!Q6Pdty7gC zvA!uf_gY=>@-;f$Mh^~i_=gmtB5sZ6RQwWX4ebv4IOT5(Y)|#Hg?m|=_KoR&zq4%( z1zw;mEuwMiZUjc?iRNeD?RrS^IH-@(+`um|D7Utv_0i@{tMn86vIzfGjnMm${-4s{ zeGz(p==dB406jg8(0hWrvtoT&MMq-wsr$>k;B_#WU99G@dcOiJ73kz1=c=)KKYE$Q z&%{(2OEzFnEUEkVX?I92sW&nadt)TE5V41n`qydqd=Y!-F~B!e^yl#7I%2PGNllwV zzdaIu#Wp>RetIx{cOCrt5c;kxs-ze%`#ywuLHbL{^sN37e%~{(1;09j_ey$<+mlKk zcCE|9*^#5d{&dje=QsfECBKbpe=@cv+78qXrmDHt;2psmDNta+A$Tw5one*nH z9zZ(M^z^K1Cd8+-z(9aJyn(VDYG|ESJyulH31}U8sdm&lco?>p8O#T|c#n@U%j9jU z(mHe0+|3ftDJNOvlj7P%j#7tsi(8SKL&ed-%r^2=Eew`g-P4!Q@B|0?G+YzHjq=5) zRnzQnb*jjJ1^mpaRU@J_3EvFyIAl-LSu%`oQjuS4VW8HJo)sva0Yj3vt-cxYc)Kvy zj=WuPmy%<_3_cF80fGZqUE9_o6HE)p0|qTH2SZIro%)X3cj#P{wICk}L+hgR)-e!L zt$WaOI-7!-pz{#8t(q~!`Q?pB%d5bZVNGo~z{~}mgS>61Ywwvntc`%&vit~)fX_Bx zfWLb^{AYgos;0f){1ANaI|Kc`<8#P=N_qx*tYf-&Dla*UkG2tN8qSLyyqefgZr=Tn)J&lveEoP1C||03<3@8t71`1^+e zPk#9Bwq<#1^P<~^0fXDe%~{(4!?SiJZ9VZ^N#t+(lWfJ zn^j1|45INlL|lz`%6wUxr)=vcL``5o!>HAcPmYFAZ(#aDqus&F3w)VZ#U~RRZZCvw z;BI^=D`shab!#+i#TR=g*Xa={Fh_UD$_h1FHV;l6<;E<{r;j?rT^CjXjaqZP3+*KC zk>4=`OZ&*hf>N%`()=P+CRuH7_M+Bedp&6++qj#lZi;EljU{EvEX~7Y;uD_ud}mtI z9p{lEadyV!vcf2HhM1}@2~?`z@knwU%9c?aRr76^`a?M~#3662dXHqMbCo$Kil-6u z<5Paj()?U+)K$i(sy+a#4XnK#u7GUgwN?Pe5K(T-(!9#&IJH4VLYNtFIO+C|YMKL@*1)VjzyYuzuv7+}vZz*TS$=&&S=d?Iw z%4lAu%k}fU7_xbEdl>1=Pzc-Hsa$#dHE2Fk29383#v&E(9o!644o!)Q!M>S5?^p|s z&8I1GVL#cx9EJ=j?kg8LLHRTp(|nsb6Jjxs+m|V?#^wd|jf+XAyc&~*JEe-b-=VB# zS1*afvk!IOrkAabca+*XHPiuT_jnTw{T44aJH#`ha=Pd*M!=$PFV z>t21BwR(Fa^p^5$GG=t|DC#w%BrkHKx+x`c^&~0Nrc8`B(ZD*nu`x(97I#S22P3Pm zSg(t6ZZdKM$M;y$SYLnhP9C#?;hl=-!M;YdfC+s#!TPD)&f zx?s=FMuYRixWC*PZNjVOnJN-fnf*;=PR=Y zAkZXTJ3HU6sN~4_xV_x?}y$j+rUxl(wO*GZAr7E6Z z9Xx2+-kIDmO0g>CcI2HF z)5hi!88k>`8@Az~bIBZLF_DvCirX-WWJ>(Au!(e{_aNU(p4%e zlUZTIJoe!y;os)Qv1;tYcf!A8e$_QTg@3aNH6`J>2mG^7eM-e5W1N=y!d~ow^EzI2 zpE$j^cy3{7`Q*ylx!JkZnU#g*wUaA5xgpjDc`kW-n0SXVl2?d#K*`hj2EKTQtKl>M zX?za81l=h8{I6}4tS8zzkfD833g*6pV932G)vrT)GepSyJ<9jtY} zhra}Os~xgdG*{k+Db&*+ZR(OTZB%|o59Cha)$lLm&>)tm=oWuItY9!7p{1u9XwYbR;&%>TH1GTXJz9P@#W4akukpco~~ARPD{4|-gdmS$F0G52QYZ0>~h zrJ4;X!ROD$$$6-MHd5Z$9ru-!p)WCcx}U}FiDiiMJ$$jro4xzkg7UBHaD(NDo+ zF1sFAEaI9k6#2L^TH*6t+(2#1-DrNU#XEAKAgtoPaeK(;q$~(+RsO01Dj(5mx-L7U zTb}GEgHHeKl!SqqSacWNH~~`WsZfLU)$TV)R3#>aqYu$mkI=92Sq2BP5W_}};e4jz zKwMQa98syyyhHgIR-7Tv`a<8sXQUjwVob1H7!B599Yq?bznFWg?UW9et*sHfKMZ^Q0z7ny$!CQ{ zD3vAdUhVpiQdFmP}VDwR((;D#7Z*Nmi zU?7vT%6p2r)ac_;U>=TG4anu0z5B5GHdH@&?p!f8x@(YA8iI8r0?FL0b`%-3LT%?e zkM|h!70&0h)h#GX-pbFEMNtwTBhe# zjvcj>guIuGmXDm&;;>4!Ja^;L%6XZO3tc~F8y6zgMzD)kkP}+JMohli5&MgHUS=UdOcHj`~{Q$tOf> z?wqd$^TzVCOc1FYa3`eKdic{z*}^C;L;3i7*1;{%``6_3{Ah*?@n|Pr5A8KG>aRAq zc}L0lJD>Nv=iZsWAfY zYM4{R>5RSBh7bjP;>U3=K&9)2v#8fHrpn1ja?#ur)0iHv<}_{Lsl&Yr!pICgG1H@w zFt2>2%v^#_s(KYc<9fi;(_4XhDyKr6NegYCqwOJ7*EMaBf`d%lXO9=<2B0rzbd{%s zW_A+Ody@fn7k6qonGqq8aS41?>K%{(8t17wkV3 zy3Y;ba%YG|FV|9u^4-U?g3yw>OHt<&2%K7hT#U7N8Z!K#-ZCl+&{FglRs*Ec%+2=8 z6@RYR%5NaEeK7Y*?%G;j$oTr6&Or~GbC0ZHzQpm2u7Y{#3B({8cX~OdXpj%F%XbUR z?Z$km4f!fVOR}E(1#T4PR14AyD8|v%He`#(Nb#!Uy#KR>HZ07j?IV3?uxJ2@x!k#B z#^jRWqi)W~$ZbGc5FFqO;wPswy5?w!o}C(K>PPECEKpQvfK=BU@~k$D7oO(%FbUvr z&G&E^i>V;JbI>yuFM_rlk+tQ>RM4n!`_7&ImK3K#E(@Nyz%%U2Oe)o^*#IwhmWvlO z?pzjqTJcP+e&9CGN3HbsIE=~o>Cy^kDKqNANJH2>bLWAyHd;!hIwyfN&g-03NK-VpOn|b$!*(>F-5L`SRdi?JxK*oE z7b>Pz3dWF1HFt+osGNrNB4}Bq8Y^f|;O-v_mD4h6wp)j;B#*9q9_$N++G!a%w-JkI z@klc{b+?;4(h|gFB-^P$Rv2cnY;m^eZAE4(%_!O{QQs)>LJ$0goVOXReXF+(`CETg$yH?yqNjaXme+ zL{vhJ!SSF;1FaD5WM8PVMyf-Ri;6q!wt%Z;eoLX}=EV@Tz__s}9=Pfp{hNzz$Sol~ z`~}q_CVR9QRziD@k9@MHwvh0Xp2tUtQD)B`M=vTAxlZ-yvqQkX$z(4=fsy96A$@3& z8b1cgKUX{JS!O%P;>Y*4b0waCTP+rri>1HOWX+*Uaim9xN0~cg++Y%C?_M1x8;xe9 zJs5>xEHRg}O!gMJ#}2_I*@` zF0GgysKq=h3hz4#mDx&8c@@=DT+mY4=IsAMjkc6N8&MgoIH8{}1>Z+-YpYPPZ6@wu z{Tv8pDw-%_N#i^+g}QB24XQ57o9kzxdYjMSmiN=MM`6XkLiM)k0Z26*UZI+erIf`? z&P!0J;5OZ%V(bNDzqpLVY%YGOP|3{*6|wD+Fq?>ztU?91$yswF4Ah)lG=;9;7WcOo zx^T4=dYa+^jE^k_|{2kqxaoz7ak3|U5yC*x6&(tU`_ zK)p7jueW=V^1!5zV(dJ&!4rv%dESpoc?~Gn+`&sp%z_D=S5E&w(&Q;`8(FPkenf7q zK0*^a%@IUHN2DC+l0EDM&P6?4V=>df4OB}tkU3w^!xi}`q=WX@yYA2($RktxK&GxX z+Tg$MhNEF|3zF*(kKV%kwue<}gXIztw}6xMhZ-#~1f8nzW=mO2Z+96YU!}PEaf0@Eps`G6G$!GiWueJGBK9+^9rdpr2Ds<)rOGas5Ye0)x0(j zaJ3=bSn)W4(#XE*s5YbTuIf2u+40>A^d=QZEaVt4#(M+ zq#c*$mz9E~xppSB`$9PKhP6%34pWvB4Z}2hZUHuOD|dPMLCq zZ>o&hxN4a=nAIi!%F&PEqgz2g5~SKZ{Qs!NhO<3RKf2ad0tt>6A^u*K(0pNb(o-*i z>RrYv%AQ0&&gqp!hPBXnMM6-c6Y6Y78 z^H@4}SDx;cF1nfvdcp-`tiswbc}R;yUgZ~G!B#bA%k`z_;O|}!|CwLDSGRx9{1ANa zt1s<(og4X2Nb5^K+Un%4Y@wLQ0|ia9(RA#i+27H&FmA0)W=F-m;`Gl0gd15Z?+l;O zU&hFyvxvU%9q8{*zt_L%iqo}?nEr?H_u$Rc7}ZK6xBqtStjcBbu}tOZF)~@GJdHB> zr)lqem8Y+Rzkd+$^yl#7y7Kg{jPSS(wIFzv=A+I{72Q?(O9}5w^^frTo{3k&ukKRR zS-aVtHTzU)$z5~X9Y(pbf(Xx-81A43syiky7xJ!IT8igq25DXtQq zR)vTa{qm6A`C8jhu<2GJa5c1{##*BX*JzC)l$C?1M>J)^+rZ@a6zn;*_)j*Qoe{p) z2Bi^)ksb|aQ>3!M-8&U*JJk}5nt_yIwh7`HnLMn|9r-@`VUP%)1#%4juBvVKUihr} z<+JTRXnqL3*OtnYQrqq^rCHw<>kflkz`8R8thCukXLvGmcIEcn+X2IkZdLp4&AUHp zCL!3ulaAf~J9G+7E}2hcEW9z2S+MX>GC!I2&S&9W4}bp<;OWod$F+r5qhzM7px?&X zc!p?_*->Rq>a_B(c!T~@B7CR*5q{q@@ml!RZRHs)XYD-WbEU-xC-*_p9Q4l90Rh}5 z<19Tc61Je}&rYA2vrf!839G;7KjBTtSgvP>QNsuKfBOBA=`#xkmMpBSgSgdYKUASk zW=XX9dielN3(e70x3;47(dJF7^b`DY6#lEK$={{_r}TH9CV!9Pb0{c}O*Q!=%}(u# z636^}RN^#rB@xnpQB{H_vvPI0{(dVEl<=25A2_B}_4ga$v*wrH_39a`!oOU@yHGM& zoI0$RKrV~dGP-+=EEaS(%Hqehe+e`zy;#P9wh z7C@#j?i>OdI{$&Ls>f<*&shi~_~;Cr65;T>7N2ZWJ+B;5FOSZ>DQ_jZcN7g&W?2Z2 z%W$C+Zpu5^hq1)4Jp*QZA3T)9wD9wff1Hn@GY(o%{ zkrq0&7KwCM9m3wXZ`v&A+pIRu7Fgmp>1`1v&-=9Lt_DMdv)kZWc zB$wMKZvg-|qE+paHyERd-)j4$mXR|5?J8R$dl7F;S*1~%I;>SlE{Bf*YXM)Ags+mN zJVp)+)(Oht$LOC??{6A%cp&{_hyaB5IgQWZpKI%+_R$?Ew5|3xluyb?qlr)eer2&M|ItCHJs!Y&Q15>Efa{(1sCDD z1@M)s_dm|uF`;1TZzPzNm{-PYzBG`#q9E04zU|WFN$2i?ea&}g<73EwrRB(~MX|I` z9n^v0xnBJL_nL3`$c|Bo1OSbEnNMmve$BVdX+p<3>b9Z_#_?>N4&*A+k%g!$a8S-G zJmMQsQaNRYQa*^mgOii-6Y9iq^ee-wWprv+bfWTVrIfN}H1L(i^a1s18I2W>Rn7X* zXiAlFyE435MyG=wbE8|8Z-S!d6o5(%%g>d+&ImZEi%h? zL?07XZ#sJ-8lE0RaIM=@#R<-mr$S*sQ`X3%dQBzXbQsT5zi2P?kLop*cvENT0mHO| z;{Gu_s?b#CO$YJx#ke(psEesS6Y^H0;bLPjoJ*28IZFWwJMA4qqnb=MZ90U;z1B$; zn2?6fL3~K_EbZbu>=#F(I!h*LI*8NQem3J zq%1ttlEE9HPd8yEp(gbpRwfxVIwznYILIM*bayyk9PwE`B6Ko<=$SVR$GFiTVu?&F zl?k;2pi)v{vB}4kVcy_nhRr3H1H0G3#Ig|hf*kl2f@YNCQgx(MhV=Lv+^~7oPBu$+ zaqp(;NGTVB{4T(A3`r`w;HytXS3au@k*Xm%h+%We)fb@(NGTCC&qb^SVNNMH?svLI zJwAJkFQB?dUMf`>*(sITp{VvzN;URFtWL8FG^%-I(}MO6&Q_y(M=8y;)i4Bb$CAq2 zC{eAW5-(6rnYp9-M##gxUMqnhjgwtUSSuebC#q#+)57!&V;545AEeE;2Tf&X&w_t8 z-o#7Dol2&5l3BgOJ(+4Ixp;Sg>ANdLs+{B`g7Ld^A~U8`&j*S5V%XI&rHV-|-mZ-) z)k<;_L&lV|8mUSV5%HQ87ostFweEvdpNL3Qp(vljv&NFBl}HteTtss-k`oyVjw%$n zh?Bc#HByBlCo@oUGdl%ks~~f_)iNh?w{|9q#VPRu`^RV+io_}Lz>9!E4?ES~438pl z$~>?vc85oiI3?b`pz}6Y3yq?2%Dgbki5X9d#wqb|5eA$V86L&rlzBnc1$X?OP_#A#*$LQ2LvSY4U(rvDawAL9mtiu1W(^^Qg)k}Z!a`@F5Hr!9R zyA{V$Ld(y%jSjn4iP4X?)TffFEASY|g$UkAQ-*EIpnH|tcs+wRJ5q5#^b}gwCpnLc z-R+vZs1pq-Br}Ie$C6`p43u>q zJlah+o7@%Zh@`RNm7|M!SU$Czp~vfP>a0?KbTZRe`5b%vqWIQf!_7@q;XXRTXmFkV zeO-YIIXJ;Wi4heqQCEriyA;<>{4vZlFAIH=3_-P;=*hadPXF zqrxt&CzZv;I=_SvMVCU?j4GO9~&=TbO ze!|@Xx7f@3&e*?8Ua}VVKzU=vebLLVbKE%#{4RG3cG&`dxtqG{7Wjgjn_A$-1twkD zSz#V)hr`US;{`4V^|4XAh2cr*#f4tfQYL4&9J878NjriA-F6LJPNL=uTzEPL(l^{H zOxjzHI_IEjMu9%G{mf1DOiG+?b>aCK2t0KUtyn{H%%e8bJ+NXX zC%w}JX1@iM((=nNYa^1%5yw4Za?2KIkY|nK-s$A(fyP?(xyh4%Tg~R+susP>$<;22 zu$_-vuP-&ZtV=@NTgEr=5--&fDY-0rw8RTQ`@h&pg)weH*f9i;!Ruj#ffo0e@xi>P z%ua>MKB|kU%s3zRQmwAmI?jij)EdXxW67aU@nD(la}tRA%vlx(%3PulU-uW8 zy%z36OVMC}Z#ou5S=`ry9!niB3#Ux3ezq*%6;8y%_C}gFAL=1t?m+gLtyqTJ0dOwD z-BQr0klTGHZJyo~ie`;?q`A1BJ8Y)o;4PLYMqk`+^Nh7q7+85P8R~5|b*2+F60FKP zC{CxC%Dp^DnR-k8gezYA?`6J!IZmaaOa@v>^9h~*2STm z$>=D`-?N#pa!y3>N_6pRNzCQ!ILhO5aOc~}zy^0Sldhs2$D9i&qtC$&?JH-)QC^?T zOwaHtQDdj)T8>INel|5VSOckyU!3y&3~Fs>Jw}Ep^G`Du2B;|7&1hxR>$Q8E#ft~I z414xjyb-26z!EpFL_@{vGTD{Kqi}ve$_UKavvIf4?yWSa^J&5E5VB_ly%2g$nSmKu z7o9jwN6(dbG>p_EzX5cvIydDAdg#kraW7hrW6Jgl-I+Y{hPNP;GgxXv`4C*Vf{;s| z=d^M=w1Bb){Vi}_!*sJ5sisA_dmzdp^z*glRa7(b5n!Z{vI_kzpbLn=@n<3wD8sNs zce|Lxz~4;i^+`CQ|6+J ze3_)4atodO%O&-cYdEF_p;FJq&rmjJiSM}llCO0};wb;HL^V!;g(GiQy1#j>*jqu? zDG#wsj?k{uTE4is)k&v3PY+$M^DsJhZlH`v2c2S`gGQY5uTyqpiJBf)ib_o`V~jSX z9LX|QWh@73an2t}nUb0dle#=RqZ}NTW3VffYHk%%rli57+Br~Y8&64viItBqqrE9t zQd8$3=5D>y9&GUk7ICjVw+c7HTBh7d&7Y+uOp2>0R8rzWk8O%?WK#BIPE4XrES;Y0 ziU*dnRVb@cw` zq3p{t8Kn-oTy&~QN1M~!l!fW$22!~>R=Jp|pEj4W+I+i(QV3ljUwFm9O*^99Y0V zF@l3ja|DlMZuq!O(g*>$c?>%Uj z1V*&%oaOPxJOxHjc^-*{70+XMILSb1X4Sdk*0}OCo?2=o=hG2fiSB_C!BMM#l+PN| zJLO$GwHU)o77<;$hxBgBa}vh49h4U_CCx!Xva!shqsYmj@)o9?qj37|k#BOxvcaur zr$$U`rrM4B#Rby4&!BfibT_4dSBN!L2Jc6fSrRhx^4q8J9(MXTbdT6Dy$n{eB z0UgZ3QVDd9A(cbM(%$&@UZu6RF@1c=|UmS14y$t@aYR$9XqJJX) z#aHvp_1ZF?`X8OvJiA&ivR(1Hq1@b$gkZ10WVX2Ts%Jk9|GM&ElDxzZzQhOe}v>hqP&u%ilwpx@TkLuTb|4KZFC%al_-j-;y&I$DjT%{bd0Zq0WZn**w(7ubqJp0mPHkTvD^@U&t+iMz`QgssG* z!D@3W>NZdoYgp}EiqtIxrJS`D-*8c4nx`nf1DC2#VR9KS23!ifnQb2Wm_%?uYz1 zq^42I&=27dad9uXd@J(jq}!CWPt>qSab)uE6gJ4zZR2At4hkp)SGEt*@y4O#lK0Km%JZiwR zi=;$z7~}`%KTt5kI5HQ(LpkRenW~+m9gq{u?}KTSYo5_ye^iA<DaK4{OL!j(J9d z!_j3LQ_3^XxERnwAyFZ{^w@M5+f3Qz8BGWDSd%E18HPwXy=Y1q)D8Oz}egxsF&posCXW^oGFTgbWqjXYe7_IB~nCWMqM3kZi0i1jyOR?&)F4Y zoaqiDBRa)LKCTRpZY&DClJLlR`aof={TrcwbYGG2e4^?F5Xhrish2~`(XE3`ED5T3Oc^al_YNk} zC#v$*!BFYW!9gvFtDMT{0J?X`sJpLo=(eH2D@~=me~i4+?Lx-$O{7?Q7$V&y*u>H# ziiwQQp__t?xcfSX?g1=bu+Cv*l>Gd_n}vAIC`k+J6iw7xWrqCt84oTq;w)t+M5{73 zIC<|gBAse1lV2<^jAcV!`ixfBsfK$^jlA+1abeaz(1?4-j3xQuGZt#JU>dX9$@8Ak zE{A?0zq?Hg*DuV7lHWZeQs8Fb36b-fkgq+XK@q9&GZfP|@~@k;(sm@3&B-ieC--2! zA1p(k?{^yhuBuPn^&V{M?<>3;i|^E$U)o1}ed<$xgwd&8aj4_*`~DOX?A@Ep#3lEp zzXbr?h*tHczrh?P_`cSWGXL!=u3I*F*_g6Qo`b2wdJD+q@DbqI_PrrHMh**}bdfc($Ta1DdThaaqUU3MGo;F)L&!V=*G5PWghBuq3_jAgx{6G9xnXJ3jE}Bp{q7? z{&V$-((*!E=pM5;z&IcFAwrc!$b=lV(9ggW2K z<)_)`{?p%AT18yk;a;;HgRRl96<Qq6z@v%Lvrx-t7(v7*%nF5Y z;bnN<%^i%rXTL-h@QiV7Xo3j9!@Ojk?|c-P7Chb2g1A2%kX#O-p3VTrgaTfTK`;iS z(!6sKb59%7f(=MXw+2AGCb`O=Pv!U^_LtgSEHO}=0&xr2Xlt$oT}WqZ_hV28RujZ? zz*Mw)vabd00p5`|hV6BT&?^psl+TU8lYIP5(2j-_7MG&51)LN3gx#ubc zUhidh`_`fpb2*uRjDuVE?#I2kcpb;DW#>EO@q@h-r0vl~x~e1tImDgxArV}3+vi49 z1-u`_p9b#%S$LQw`$wQP*9uzGrq_e8>Jsz(t=A}KdT6@}?J!npQ11}c?N9VA|YMO`EJfd1_A{-lP%m5nJ7>?i}YK$2U zu%r%oT7{8B*Hmg%g0U>AK!@q_gC0*F=D0n)dRs!J#TA>D`E_*+76j-Z# z0owDhO6}1?GmN_Z4w(OSwd{~5j~sm!4;8hnwibELrAMJf52@6mwtDlt8$se>3U{ z8>X?=DxFj^ccV3Xm?8M!N-YAD)wx|rTXM(kTCiUSiL{>r=g%VensrTov2}6CbEd#J(mhq%Xp6gL@<_*x+tseB+NP-4?2n+VZ}WU)Z~Nl* zFsp8&YJ0#V(}07ZQ?SId#!1$vt};ASgS5V0$tnUFZ+05(ZnM#EthYODEQ!}>wcz)- z2RX9vX0$bl;x-=gM54`sWc}}s+Zfy`M&AFYYO9RV1p6u2yOSmPTN(?krvI+gCa5)- zYlqO?n3=c#s@57~>D9K+XjN*B5!wjrK3)N&ARGkfvxE)-L z?0+%ak>GPxUpV7u3( zqUiyrPwqbD@2j;VcujIA;J;(r04|;ggtG^;hIR@KNT5&KBQyAB!ruzo5^9%le%-%e z+L1tcw+j(evg^>xegTrfoqGS8ZGn19!oPO#1$3ifV%^Dk-T#Vh*~Ync5B9eWOO?r6 z;5p^uyF7n6rUhVWTX{~ntVUmpDPF)c{#i%=Qx*zLDN3qHxT z0Mf7q(WP$3R^ZY(;B53iWBA=@xD~fBDuA@rIpyX!vOmo4%ULylTD>(#_7$5UUKgCN z8(h;M~;YAP!8I%njA)!Gq!YT|V02gbAki_rv*fXDx~A7?E~YK+KrQJ=aJ$FvFm!cR zgveEN^z5p}eCOC!*m&s}aItE?&C%n2c(l0Zy#8X)QNP8o@di*EQs>sU&(R)Ubg;=+ zC!;TavtnC9^%bWte}iv>%e5vR1I`cs>jgf%d#ioUo~x=lZ|`~9UVt;yr$bjZ^N)QCmD zTc8Bpal2L@#Tc4XFl)b9t!29%=iu=!V7AaZcG$wuQRC|9zP(zTYL0Q>PWZo2p+z;u zJbG3hp74LZYD)sGGcLmEZI#-9w?0P5T&VZd69;+(#^mQJv?q(Ss%g*S&KGa3(jJQT z_B2Mkdvmc3Z>i849nzpxV_ogyV)uSl(5^<3G`7z*J5i%I>hGdt|4fB8)g2AWt+byO zv`0sQhn@-!G8WNKRcH^!rh38}#d6KXB>ZH>wz$$Nq!ua{DfkoB+L5b5c=n;&NYV#> zjY|XZ=x}@Jk5_C}Dm8lHTid#HoH*I}F z@guT!Sxu477FVhNhpV-u)|lbLo<08Mu*d(9s68cvIxudFv+;khTFXjJsyUXKvGL!$ z!xmcNC0>D?e)@rGZK~PE=lq}FU!g^HMlo|9$TwAJ3kj5c?Jb@o?p*zSRa#-HM$SwV zw~VtL-zaTaO|~Pqr@TSdCJ5hb_iD4VJ$GLid;Y!S+68fnV;p+&x$~T0(UbK(lJ+>A zeA0c6%OU*kLTeg>!NoX9GZhl7PXP^}OxQ-pHb|tcIKae*eV5saczqBh_}DOCBt*>j z><}1Z@|`T-ISFE!;BH30!^JnEp7l_K?nqoz+P9Bs16&L0X3zs$A(lHAOZ#okcIfzT z-GtDazyqF$t6M-CzSY?RIM?;y?R0Aj#8Rl8rB;>?7O5ET(ef{7p`3J@=a&_Zywubd_5d|Kj;&U7a9r0y<_opE^d~jZw<6uvY3_hwJvfrgrOca_1gqHk8$Dd3ctopZnc|G z@M;Lpyj$HC%NMhYeYKl?ZUi^Rht834YUAaj&dB#yar{ud$yg6x$#4%$xjQZ%caKGf zuYP_7%eRMIOlEriWKBJ1*4dY_d~3?(vc~lM^$hur1H0ezFJ<|=+4C>)kkvl2 z`#t|+mLJ-4&Px6wA6f4y?#|2Q&f|xB0j%{e9M=YG0Hmw^phwT(-RBp0*edEAD#&fQ z2SC~e?%nLqAKM0N0OX_3>~Npwp~D8}Q}l8^qwhYK__-PE?nr^wAF}=R;s;l#=#p&4)%N93!t#jE~t&pTE9doWO@V1*C z#N(oCFF8he3!IO7BM%*EZiX*9*x=iNG`5j_7#7bkS3}~0n>*a@+gRz$a_7;Jn+k7C zq!;p*TS?4j_KcyMt-#h4OSzmkYvAT$nW;b@8Yk0z!jF0Shlzv^LyPr zK6e4)EE+w~A{akpyO`uHVD^hX--5u|=Ay%65BYL=J$f8JwBL+{&}FzjV_3S%IPYGE z%No=3^9O#a!98bAUYj0r>OBvPN#b_U4IkNK ztcb_kQy1ZdU<*ecc7Eay9&_gG)$-75J#91gLzClM9T$%})9-aZ*QZ|O`i<##gX8aF zzhCF)`jktp{XWO>L;KC_C$IHzYdvc-y6rVA-|D!0#FZZ+p$K}-Bns*yM4qh;Cv8g-RGym zp-HOc_j_djCg|}QM~|a>M-4k6PR#UZn&$xXw1Zhwyn`nK4&VG(bBwHtc2Mr6Xjm9z z`K)^OQha}X)zRZL(ju^?zI9`fZqaF6Qe&CIeGyr zopH`{d6$<8{;eP?ckX(*cc#;Q(J~RFJ?4CQ3to1ryF&elj5T>}Tx5`Ei24UFBEC#m?6!2oIj{VDLB`TvQ)x(uk{c9+Oun9(`}{dqpW6d0INWJB z@I|(;K6AQc*3C{UgmuaTF7G*G@y)pDo1J*Q(OFO82Gqn1k2>W%h)3Nmh%WWp5Or=X zZ+YJti)h+IhElZK{UNZ6lP+g7<9@`=&PJT}u})|UxV3hts|BFS9amBEo-=FhWj=1Z z3zha8@DN*Z*rob~(`_&Huyd{&d*Kr(vh>|Q@mSwrh-Bg!s zRS+a4SAqa2K_W;907ZBDaQ6T_@o?|-?v5ms;`HkD-s76Y>BTjPM}F5`W#hrQ8mY=(L<+=@Qq;lj()NlF4Qq<_mL&dj(y z9y&%CVt5)4Y)zodx$Mko4;>%3h1xJ^>H5h@D6Kd_jla#;2DrRbYI5ZA_w3HF%K5Dx zdSlSv+J+YZpw>WdyU=~HwPDT;Zt?NKgD!^dq+D))c(b2daN@*Nk9ETs&rN02=z(JR zPCUY#=X7Hkvpj$&=5pT4vpw8q8h2@07tD%S&K|ACnB}v|*rnTGDV4k7e1lDe%$*(- zn}Z#hel{MTz&U|$i)^LfKRrmM?SyWVdlW2f6PIOkJ=-RD8VTDOo@K-A9j;?r04{tz zE%0aq+PG`k7L-o~@fdjG$#_%u8kS$G0^*r?hi3$i0{?28pSd#7Z!;C~(zGcQYyI^` zlD6T!q5%YRf;EJjH&>0>zR>mI4$qh^fy}O~(kA7UPD)}PuL<8ky<)7^1Ve==9(bTkx>(8I$!!^JL(<%e{y2OkwLXwRa7(d{%mPx%htFGlXq&W@BJP zm8<#mbYZ&+!zP!JXFrA&gq~KVEf8$A6w4M<;F%6rYw4--mId2TuGZ31Mz+To_!F?? zHaeXIo*0G6*J~yNc%Z#-{3KodxHs~iJZ8(Fc@XY76a1PGxAHt`%(ex;m*=sh_?q

    L^Vjbh^ojqo(mK~UJlSHJl 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

    J>h$%uR=oby^QHBn331oeGB|{b$`5E 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 literal 0 HcmV?d00001 diff --git a/src/rust/vendor/windows_i686_msvc/license-apache-2.0 b/src/rust/vendor/windows_i686_msvc/license-apache-2.0 new file mode 100644 index 000000000..b5ed4ecec --- /dev/null +++ b/src/rust/vendor/windows_i686_msvc/license-apache-2.0 @@ -0,0 +1,201 @@ + 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 (c) Microsoft Corporation. + + 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. diff --git a/src/rust/vendor/windows_i686_msvc/license-mit b/src/rust/vendor/windows_i686_msvc/license-mit new file mode 100644 index 000000000..9e841e7a2 --- /dev/null +++ b/src/rust/vendor/windows_i686_msvc/license-mit @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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 diff --git a/src/rust/vendor/windows_i686_msvc/src/lib.rs b/src/rust/vendor/windows_i686_msvc/src/lib.rs new file mode 100644 index 000000000..0c9ac1ac8 --- /dev/null +++ b/src/rust/vendor/windows_i686_msvc/src/lib.rs @@ -0,0 +1 @@ +#![no_std] diff --git a/src/rust/vendor/windows_x86_64_gnu/.cargo-checksum.json b/src/rust/vendor/windows_x86_64_gnu/.cargo-checksum.json new file mode 100644 index 000000000..6884b14e4 --- /dev/null +++ b/src/rust/vendor/windows_x86_64_gnu/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"eb28ed71f562685b15ddf6bacd58c1893555d1a66f28217a8134fa72c1418ef2","build.rs":"9a83c55ec67fd48d6df4adccfbe0f3245f4002b543cacb586005d8991bddb29e","lib/libwindows.0.52.0.a":"111a6f2a6284312da2f2d6aba570e5c4f5c50e481203d67f5c7a018f7cf14c33","license-apache-2.0":"c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b","license-mit":"c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383","src/lib.rs":"bdf6c7cf1fc01f69cc1d4e52948d1f246fdd310e6323d5dd1efd23f1daf382ef"},"package":"4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"} \ No newline at end of file diff --git a/src/rust/vendor/windows_x86_64_gnu/Cargo.toml b/src/rust/vendor/windows_x86_64_gnu/Cargo.toml new file mode 100644 index 000000000..61626998b --- /dev/null +++ b/src/rust/vendor/windows_x86_64_gnu/Cargo.toml @@ -0,0 +1,24 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +rust-version = "1.56" +name = "windows_x86_64_gnu" +version = "0.52.5" +authors = ["Microsoft"] +description = "Import lib for Windows" +license = "MIT OR Apache-2.0" +repository = "https://github.com/microsoft/windows-rs" + +[package.metadata.docs.rs] +default-target = "x86_64-pc-windows-msvc" +targets = [] diff --git a/src/rust/vendor/windows_x86_64_gnu/build.rs b/src/rust/vendor/windows_x86_64_gnu/build.rs new file mode 100644 index 000000000..b5caa2baa --- /dev/null +++ b/src/rust/vendor/windows_x86_64_gnu/build.rs @@ -0,0 +1,5 @@ +fn main() { + let dir = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + + println!("cargo:rustc-link-search=native={}", std::path::Path::new(&dir).join("lib").display()); +} diff --git a/src/rust/vendor/windows_x86_64_gnu/lib/libwindows.0.52.0.a b/src/rust/vendor/windows_x86_64_gnu/lib/libwindows.0.52.0.a new file mode 100644 index 0000000000000000000000000000000000000000..68328835bfc4da545aa88c621cd655dd187870f6 GIT binary patch literal 12617938 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 z z>|Hc{nBJaq$&(YCrkmCZ=xwG7gX0y!;5$>IU#j*IMnO;PVpxNnrYF`E2tjKK`5C=v zO#yCrq{F?cXo=@w7egp$v6E+BI#eF%zoR3o1rS&F0LNGcLOeMrIt&D9d0vDb+mwY7 z&r0vqEBSu(4*BpjS<06*uDADf^&@rm4AF7qi?=ATsBum*g^lll_b(-1*CfFQ8ax#f z-aIDbdfFA83+A@{wS8($Z}1myQE{W^wYtUTXhfZsk-Ej5a~=#92+%GPyfo2ABY(%l zNsn;Bi3N|=tgd#0JP=K*ey?^EQ1EVHHjXXuftr*SZ&R?aLaD(1S)5-xwVW$l*}$=0 zN7`O=b4*1f6Ro85Chgx>j}O>Hd$+}+ij98weoD^>EZ=TvT~wqP|M|4}^9RB&;vA_K zYbmHyPO$9hV%wKe6~qWx6l^o`*6%FyUk<`s{_W6) ztp6L~iEVy@9_cy!lmEYwdZK!gW~%l?eZ2kZlVbBm1)jsFhV0M%?bj;Q$hENa!%}#4 zz?|3aAl>tWK4^0~hrHVS`MA2d$3l5J=niY>%Q|GHYO%q%)Ej)^^yZ&W*gyLV`uT3U zAQMe{eBR#Bumb2u+Oc@^8TC#wn`n{;dTso&I{L{J3R8_co$ON2Y7+LKa$Z_p`3o(- zpbA)q_6tWdq4P!WfaXX$0Ftegl1L}JON_^bIW0{;St%(tvUwo*Z;R5my9hKT1zsCKb>C~A*x*Pr^B?x)AjbhQLd zgA?)Lr64@lErx0#2Qvu7mIfTdO=Lhg8XvStH|~rDWkH)=JDy>8x5M+!t2(l2p)hM1 zebyal*)p-tii+_1_LmjDwba+1ah-*@O1^d4?C@qkjb-4>0)tIq7lsC5xF|1pzVfTK zfeDP4q0sw#r%r;P**@+u>Ls5%4w;0bi#rjt=XS{Q01JTg$WUKk*vakD;^YNl)Q0H! z_RVAUPk0@vvs>LXS`BKBBwvq{fxgFGLKw2!!G z11)y$Y+&Y5m*t@2A%Xbdta00MI>#jn=n#2HH)jIiR7d)vxInb+v;B zLzqQ(s5_UbRKjJv4adMet`0i&I^u@NOA!x`{m`~{LIReAg-CS>JYEkUR~U3V9x*M^ zV;5oQsFk{3VcHbu1kv|&tTf5ZT2ctdMZ@hrfB!LKq5DPnDq&=k#@WxOa&0_lJD)GWg zB!*OV6e>C%pl1$WHMHGgcWgsJG$`DN=q^%CZxOc#3kS6?n^F#OP$e)b`9nd`yD5_ zJyN7!uU#F*SB$TCPS6SJIzYbU&A{JvB*) z;n~xpZ9gQp9`-tST*Lqyz|BrLC8eY~$gNXPqXaK))+XCPrR8uY(M%vl6Jlo-8 z@jY`m!U)cj&W75I4_o@i-Du)CwV?Va2^muU;}f<=CV^n8;JQL0qqWW-|1(+Cnk5gm zY`x`g$uLsAt~i8F;<{aG5AnvAsq=Pqej|fFt(M{g zm0M^fbRz<&$BfQ)zVnf6m}0$;R_^DJQOOUM*d$8}USsbo zn@7?4%>`ClAACa3ANb=ymY-9>Igg(DsF@9w{XmRb-%<~bm^{Cc`q|xt9Ji@}Z1Gk3 z5C^?+BXfR3ZEYzY2xynf#e`-%AH;Br7KiQ&6_Hmj_Md z%r>$*-mkv(8mk$Wn&^QB=+=j24_RX#bRFw!-pXVZh<-V&t#WN_x8gRkN4<}*+c(EX zMY8Tunpp>hSxZG!XLI1p0%KP_s%0)03UA#bGPBMKvqn`?XKg3ERu(m-g1R6uN*8)- zSD@WMg-u86!tz}fte5#ONB(SFY$XDyCI9&P3kvRTOS2{FHDK3z72mf9m;m(sT8G)W za$wWYk+JK3+FVB4HQf-b?xQavMsJ>oTIBi<>m5manpha9`M|9qk^zP4_V(@5@w9vV z4Lfse?sUW%;m`ZTZZ$dZFzc|QXTQE3JqDbW7_vMLxqW-W|q6ypH=l&bQc$C|ozK$8lCRhDQ= zp*QdXwN0^OxnQdJg?6FR3b;y|NVUO@ws*Cb6o!xts}sHwZ! zX|gPx1;zS@H@n;3a6u)2aH%{KYo(bETeS~ryI?#DFAw<6ZVbYZ#-_r-77c>}14sF3 z^_VDPl|#JNP4qj|G6smHRVDf~5O1Jpv>x#i#Z-~%2lC=-2fEC8*&*=}%d8J8GO8ZC zC=^P3>Kzgrseur$`BuQ8-3jzL+l_#$FcEz$sA~qRo(zdS&dRe5ze22R=~hPhnr~_q zdL+6w^^FiTD;vx@ZkZUx=@j_Dl$B(N2QFDuQRz0uvX%5{y!VDU)*h$c^+7B|=Qy?4 zTL@ZOMBQ;#YH6<21IHGjU+8=XT$Jc9VkWF|-JTGmnqD3hZT&(*^?~VRurW_QMtNpS zEH?bXSM_IGZlojY@4@?JC3~ag?ngS*nOZ>l%ELyNYfot=FsdR4akRaUq*$l3>q$3Ck2$$kaLtnyppCwdF{AJJ|flGo^E$8L5vg zzg#pEqn*VT2h?cG&bW zly8gHgoYiKg-9{!+71cd8a0hJnKbD7NQ0rd$Kf$iXvJw^kis6^x214k<^hUHJ~EW;;a%%}OubrY#+AZxuEjzpPNMMkM9cf!Y|S4cvNC$!1l*hj9~2<%x)bVbfeRz6hgJB zKT8qS<`i$cbQ!9A1BClOICLG~X~LI@+|Dw#ij1f^kS&zN{ALa+$a|n z^y)-4{qw%R8&ayS2oUa%)r0M9_K5r*-(ShRqe(?gX?$3NywhaIhwbFbHo>HmGjmYK zNXLUlGFDiD*gLfg60+wdb-r`n^J}0~pE|bU#QL^!89I*9XQ0$)Dq9pbL&X1+4&ud> zkze_*Ee)1Zq4|-iNf zf~FZBQ5H3{seDrtg7iex#zu%!kXoTn>+cwL(Hx9R>&REdULR?qfM1SULQptkUQPvK ztLfKdkX$iQaG_Ah%K|~#>6>gpv7Tc(^zfjL1Z(>nV0xp3eBhEr6-2i&maWo*2k-XO z;kV!6$#Mbu&#PS;Zc`&8SgU2z!tNPs<<>a1Xm`LsXOJn@$8-JZ?li=)7ANOSRK~EH z>QI~+k>4}mGcl}AJ!a=SF;KTdirSL0+(Desu=}>zhuX{laMUtMyr!dlOPc0E;=1f% zqPafe@Z3kVQP=l4D~Vrnt!f*Y>!U0$hW_`rp=Hnb^^pUN-AxB6Z(U2xdeIo%bfL@1 zlGf*x-=Wj#pk^Jroy=>$vtNXcXM&rb+=pP5f~xU-%#bMb&w3Z9tKZT_9LsZYi5X`` zyGldJ9u@D(vbUpd18FwB`rWR#oYgpKE}j{sx@_WYlCPv}E{1AdR%T$ZDLIm(oLJfUHo zU|m_T{z8X~{!ag4GaG#_c6Y#_)axU>_-|ajsKd&K(bIdZw80cxI~GzOgP%~UH|dkN zlXb1Lo*Yd?>O&T*=-JcL=uBnmhb97M`4TyA(Zj<%M|V8TZ?&8t>sseMjVYiGN6HIw zH4&;Wy1n}i+97%^|NZIlOJ6(D;!`P{wd6Opt-{`x+|PN(a2L=whdsbfIsGIh?Xm2} z6P@#P{jYDaU>cusL!8e(yywtT)*;oUO1n{$|=lB-glhqbS%wlnme4X?bbE{utzjax3J|e^^?nafPH(vjYHWbIwPNU;B zqX!-E$XoJ4Ulub2y(N~3Of=p1@(i?+j*X$;9pF>5X584Sx14B|2 z-2ROrOA4hu!?(xN{&W*o`FW^4!5@F1alyF_D3{;Q@Qw7A<^cw9c7LN<@#$Zu?lbNv&|GYI{R{k^#0@e5# zPCr^7xURvtL`dhznibWnI{Egnvd@^$d1E*!e7wR5Tj-w-F>4XzD2TTBniqBj`^|N8 zJ~Fg4)b+1%Cp9=>qME;0l=FilCrniTwtDcd#+>KsUAb(ry?x-dR#YnDR-I&C2xq>u zT>q56B#u6P%TqBCdxtNxKIJm48DL~>Q{NLcI=;$Q#}kguQvMVAa`db-FK$93Q<9wQdJzK}3iLQ0+a+6?_?44RLE@OJy{a zGw)i0s>lRREP5BUADd7yf@KX|3-jR%mauN6>Z0x;3SKNkrC@GrJ<~;rklLCedDbDR z7{SoV(tMC6e8{Ot)kOq6$d}xt<~r-m-ovazjUv8sf9TCVQ>^a=uBY(L-l44G_ZtV=lk$eXym~~R z9m_fS0A?zG1Ni+P-g&YB$u``=j`<2OLU{2DD+ldxoJyVJ$r-+?2_m$Qo#=y?M;#$ssMh(wq8&)}-xeX&O)b z9QdoQ_~>oR|CdA>;&&|Ojt7Bwq=iT)e?0$6i*O{9f3fAz6~ov^yu)B{nKozhVMA+r zZt10F_1x>SpHb2)6Nb0woVLHvInd-Kl==-ltjp)eFT00dHtUDmi><5hUsBYDVGLizK!#?eLs7(+ z2UJSb9%E!&w8Y*uS_=YDB7cK@v)|t0oMF^E{dkrs4MIvq%izs_@$8hl>q`o7 zt~^N99Wh*KqwR-72N=NQaq_u6mlXCoG7_4$mvx1Lp6GZRazso4>p%8>3xxy1oo_36 zuXgcnfB5?KxYi-9zhS`Ab`Q<9ma+zDsik`LCF#ZX->@NM{cuT}Qkr4JF0k9Ythn04 zrbaKxE{;_J%ubdx?{L0Mzag%_RuChkk7mV03=hTA!&>V4+A1m*tgX|#tck3Iti`(J z@1mp~Q5xFB9&hoo!#MVcjR{lP0fTvuWqT{pVA`?=yUvHFz1H(n znu#Mmrs6xpWArgBH`8d6-<$_yRf^oTR+SV4L$WR5 zY_~gnS=(7J6$9)Fhr;4xG21E~1qX|Mp6(bz!NG!Gl3bzd(I1)qtlX~YP?&r4(Bt!w zaeYs^y=@IS9ZQF|Uo1sy0igyODSrRC+^+V=``zh}dpd_)<@Cmt7|c+iAL+cPcEH~p z)~j#tH;2RSFv=$+&CaZDv?Jn<)hh^{$-#Tcw=sYj+g?dGc-U9?gp!@xH{!B{EhS&N zvn3^rIqNG z-O=Dk%jK6;k@s0xItYUIYn&YEQq(L4c=kY!IQp$P5j<1~0YWObV}Kdufh^j!fDz$Q zJ!7d$`1bN*G$;skq%h%FNCzA>o0E-YV$Me>A~5o57zaecWd_%RfIX?T}UiRK{>32#YdaUWET!2-)=&uWI_h`BPL3-ST%VRQ>c7%W2lPjtE+MbE~9`2jwT~gdK*odjDAx z?9o2He%Rlys?dy!7N^~w`jwi!+JSmO6zI>Wtm+gthUYS`?s1B-tHcv{c3Azz5_-kI zJKz)?o%^Yn0<*W;nltqL*2WDYW>*(CJ3Tr)Vs<63dh?hL{M2%cb+(1VtljRhh=r@s zC)oj&QC+zanAF|f5#C2)rgSIpsI;;bvGeV%76~g#CM+nY_fP2n1E`r3@?fJ ztg3~F3eBC`z7^blG4mDD3io(p0@>q|$UghVjflkw_+XUL> z^ATTx$wlt6p-xp5Jjevjx;Iz_p^Ncq&Y@fqZ0?!w8XSl6f$On|G|+jX&V0&Vh#2)M z+-z%wMqCkT@``%F5nd~WD3?DHD`RR*?4!r{wB;Fz6k#mO^rYF)CPzLP@9aqq?#Xte z0Jiv!8wScbPrKfOzim!en0;VHuPvK)LSp84zh?{WVR_^NW#Vz)9u1jdZtg1P;>eDY z&SOo{BS+66Iv)?u+=}e|p!v^fo9fK>V5B$F)59?+70sGrafWjqxAy7Vf}jyL@zlp2 zA{MT!-<8pDje*^>{ifw<#h{}u8CbNbH3!re3V9e47%wsO5zc{|vGPHwx(hbp^gZwC z$BBCU{xvT^?Je(;SG4oY$QkNa{@})Gb9!zS$v^(Ju z`Th3eY4`7e6{NAW#s`n+Z|lw7y*7U(B_J(X2ZvxrRIEC>u$D;w(HaSvA2K`3s+oe^piqrPSF32<&6DfqY;y< zcdO^!Q!Kv?5+26|*a{?%xZh=b*v^=yZq3Rin#cz!xuK-%p-!F`OLU%ghuh@}Vx|!f zm-j0>_Rk~kx5c(qpja! zxoF|Klm!u?8zjXaBsF6jj!!glJB6i*b!nzgM~w=xrhaA4PsKzr=1W7YeLe2~=l=+; zYX@4}Dw9oUTj>=WgP}M!P1eM>9GvsQoNvEx4!bRVE}qx52D5<_n<@mwWQuDZpE)l~ z^P}V42@IDy-krcRj8Eg6*DgmcH@9>Ur-$4~%g^gYiQ#ZO)i+pcSQ{2ljl6W60kg@ScKhl$^`l)+4n$zaWrx4bG+1KzI>6(D5^R z&t8zMv2;rA zu@%*`%>lz&*r%d#Sd=V~8plNmk*;X}vU@=F?mk^S=My7q#t+!Kk&+$!4=VA3ZBn-> z=L=$hdF};bA0MK;UC7!+6+&F#UGR%4co`FCNN1hD#&SAZJtZ9T)5iYQrez(Tjf~9(8K|l+vomYL11~>s4rvXNG++dv$ zZ)BD#PM34&=)sa=fwQ;&WepCuI;@ZF)caPgMl4*J*Np16jIN=iVitfpQg|inK$bSWFiq(RVOdgzcK!o-QxS_+YUAr7@ghk79o-PCwvx^50h997o_n#b z_$kwi5T~WEg#y-xce}q_x$S^)w7$aKA2ARxXk5a&hSMgO11}tvdGB7X$us>5H`x$n zy-QMyM|{)jyZ0#9WJABAM@5wN9*Gl=SGy1ENAI!$WW_&o9yu^*ynEBQFa}<@&uHg* z-GV?HK)(5B4&Q-6awis~IWeN$TFC)`i$pekI><(A7`_vw= zlB+DNxE2;Dxj@~rKD*=}?m)7BO}|_(+Aeu>x!o}7qg!)G-|ic@Hp)6nAv%F4972)P zUt3u!ODm+4@we#6TJd*CV?+5AS|H(DS+iTf3Il`2RiIu)aMHzyH*eg&dc#tssgmjZ z3!F1TV``YdU-f!eobZZ(Bxvy%sT5Wv@V3+N8Zl@q|E$&Y`0~i{XF&YWPpZi9Htm;J zPskeX^_hA1E~!Q{LNiSt_mL3o`?CwF1!C!NaMHzGFrDTBH3}h22E+$Zy+e9}29O^O5`;@_r6zL!LGUP7}jMj-2L)dP+?F&8~ z(0{r`g9)TdE}<0p(4JL{VLp0#cP3;B>m8bqfbq712RA0nVL=g-*Hw%|DNCB@1@24V zm@wi%Xx^gAiG(+$&xQ7wR17c-_r}tpfN*rsp#L60Msa=dh|cP9N1LUj%=7?9iu88c zn7cn73>tSoy5{;7H2=0X-EZBdj`lL!lsT_Prn!k{jkSgk35cRW3`Mit_}WnOrnG1TT31=5Obmo*kIc zD((mRx_B-Kwy3<8ZKD9y5$0*B(Y6}NA)Uo6CLY_L7WQlNho%*-QhG2*Ej3{aUZ_?XXF|{JK);v z5th~5*w(KRC*~5a$@l)HU6fwS{1_ou&jdlz$0lq@gOU3QI z%>ne2Dy26oUH#?}`c1D2Hf-Vm`)L`jV$SQoXw{jONlTOH)()&n>{`cKhI-!{B!*N~@y{4M; z!eGR2hp)0*-e**Mzs$-swEa<_=@m^zpLN-_4#*v7@j7E54#_9uIuyF z4y#n2?`#%iK~PXWjL|c*`0C%o6W*Nmw+Qyroz6E5@cEBTTl0bQq4i-57^V*&T!3~- zhgnF=bVZC`%Y4G9?d5A8_&7U% z;LfW0ra=ZVzybUdlM!#w z+J1ANtQc`c`U)41&~FqMY$FY);yBDJdWp?wymq(CJW-wMRh6bI-tD$``t+!kVE*dk z$!2T^H~~30at8AlVkPPd8qUgb5=_IQtL#HCRa|4Yjl0p5^$amjyo9h+*^7q>hz)n^*2D6TuD)$%=2dEm_R4=u*WHZsg0}nIwXvihwB@MMEXgjUkQ= zO}+{U3>sJLx`s;~SD&d%NKhmCJV&qEUko+HxV5oA2Af8f z(X9^O&Nh#094>;DR{iNEeI-y^S>gWM`eA?J`gv>>sHVs0745!?Ed;4O(X?a4eXPkv z`aTEw>9BgC#>F*ODgx#e@pZsN3@4o{kzU7TQGwX24QTV0N-IgMq{;=YrFY$L51J2N zZy)d0CGQ4rvB5{0?tCBKCP~->vs@47yiQD4hb~(4*7|7eD!!a~uzLwv$YDu*W%P_9 z;}h;t^3kuoACIyMgSzi`-!b8iC7gXoqoe@RL^^s9yqzl+&w=S`dZX{FQ%4*K?fAEm z>fGd4By2F;fR1>-t?ina_DLdH8X9iKNRgfrkFB`U*>+E8Cb~APdm7*jh-X(}G{@pa z*=$7veK@$bAK|ee$P_(Vv+#t=7Be-!S+w}_7*Ko)2B!Np^>3)1`^V!J1c~~%PF)cn zn3A>4Vvx;LHOWI;pX*x^A8w~-cIsDV9bQs(zRXw#qh{uxq{?{S-LB_kHt9^ER!37K6*${|d`kl9@_-jqj4@mNgZB&U1auY4 zM8LNE?$g@ku;p;Zc3kQ?YR~$j?inli-c|TiJ8*xSez+=LE}_SYq$hld+3f~RATB?( z)iCmc+moDdr;I~Ls$P0~T;`9VV zd-M!(Y&y_ zB|B*(e4_*NWqm6X?sUYVE7K!Y=v{fvdM?c}aL|U|dTb(0et8QkVr&x)7)CguOE%aP z5^ql*GeW<49G$ZevVyEPr-$|MsuWOC=~T6glR?bu&X`!*Ta}NtN=y9b?H;d#e7cM4 zLR-dy`HfX%ku)1W`Yb{jgKodui0jv{w7%3uu%^4$q9|J# zXtssK+vl=8nrDSs>p}Hx2|&+Q2|3ed7t6MYwOq?pn#%H^d1lJL*T5T8tBIafwro zB9=MF12%{A=!hlCA-~#hiw! zl?N;+Y!)x0s8r|#1@}~Vk}xmJ=2uG# zZmtmP-T??E4#p>0FdRZ<$O?!M)uN_&>*IkiYv z99tZbMd3a{Y1qXU3zIgt`BnzdX{?Hi7_N{*ArJ#_Dk}D@^Y=?J4bsUE{--CX({T+#qqZ% z44LoSic(WV^x{Y}b~xr=bF*Cne?;Lp;#kM{?p6>NNB6?kF7PKT7M6v(J?Crof)4nj z7sa!W7yRyH(aQJ*FBs=V&ZeQ~K@c1|P8;)MB^|Jf;~(@K&fl>X1Q)b3peO3P>tN zq1yfRkN+n%UJ<-F{>N_j=n~&9{|&1nY3@Up;`D1eI?ioavQ?-fo)LX$Mw}4&WQab1 z9_hcm2hm@@B34G`y{#ghrIiKLRUTEH8Pz^S@u_Mb@~9G)9!4LYTvI6Y%Uj7cGj#4k zFcQGHU`CvTr8C4bxal2ahCD^gyUYx!eOunI^_Ona@?mlhvYkorn(vWEe0UL8pIISk zjQw5GD$;*@OPxK$ft}yb8^lOab?n-VC0w3P8AoW3*#I+uZve*;;*7RKsj))3&3f@b zrupPE`ZHPEAQ>Omht^F*O}pr05Whp6_q3<-cELyd+HsoZX2wq~t=GGx!1?{sR=RFa z#BkNVj*2pyLT%_u|mX4vU`N$WC3ol5Sl-ifYjIL*2zi2*p(?s~PMdgVRVfo%2U_bqdSqTi6db1K}mji$O z>ciKsN1C*;ErSjSs|YlDd$;W16)D;vycVMXxeE)sn;>*tQ2pne^CjbS?qnR{A7BEc zM6?>;$08Af*2gGluU~z{ffju)hIHs7MpxW3Zr?D%+yFY(vh}9zr|F{rKPl#&aWTaK z`nX=>kTM?s&~ygKU1-_@q|M#cuC->qa-5JgJTzr3i&}dc0~o}ZlEaupOoxXYZ|Uef z?hY>g&(lVIw8E27x|YeABCJFVS|4uEB6O^cin9S8!SC-Fk~pVDs5iVc)Vk#*Re%=u z=nA1@vd2BGcFALNVVii%mV)?%k5Ie4m$@FF(nQz@4(~_NVpuUFrU|QMwZ= zTg(HbbH*vyJ34&$(7>SSjq(5|phwGjqg^&ZSE{@wY})7i4=C;;RSd?@U+iLI%MAOMW8AA*vGWAn0ub8ol*XN?lSi_%= zXlZe5!4cz}3z5E@>eN$eGt&bvWv12y4|BW5s9G*l3os!|I6oM{Aw3fhYwY%k`wJ7; zE^W5AUw>LZqEDN~OlfV7J5YUDBP{jft^ANn282Vm#1=t$r2pLH;o)PcWd$@kZN_X0NzouVB5)5*@p2w!mK}i*$k5==mt|Vp+q@l>& zlP&0Ro{Sl>!g*5%--S$gu5z?E`jjPtLJpAkmD z-M?N}iReCxiJL|b5MQ+3j$3Ltz#a&DR11Qj-RfbDli@Kq??=%qhA@9pSHHGjF}rOi zDfqMXm!~^EZSdXt`&v&DE(n5nqU)`k!h?yEa_8sEI#aypVid6LPwf1BS=SXv5RSI$ z#WB8)kgo5^lm;VW{fefC`(v(lf<~1qYt6eX0U=enPqQEZ`5ldR$v^aok4;fAf(>=t zl4wbcFmyVwPlFaZWi-G5Xu}s5sougxkTvxdFAIIP2Mo5Z+n`tNFO^N)gRq*dq#EeA zSy{;B-V;shR(g3ve`DZQCX`&oMxJP$ff7zj-ds^prNBw&3X9iq-PD>lesRw+=jVt&3}y?T5SP(z6Bb22k{>{q@t}0m6m!E@Rnn zm?=UVA%fN>%Y|QYZbkyqWm_@sN`Hrh$AggDDOsc4P^j9f^0C%9cp?1@ot3u-K z^Lo(HJS)iBO>5gFe)JW%l-p@V@SLA9t_YN#`T6fmS`i$)8V3}G)Rr#vMlYbE!cv7v zeJbTVl4jGI&)0GN@02zoFR`^-A)#g3>{4e@)B*-g>@Id0<5}tQJ}5cQJ5tJ=rY~zv zsp*7;9G*W3qCJ0d(a)+f6N2m_bw0$%`X2pqh_m%PL=!u@4zrMswCcq*UZQDeRQWf| zHu}su!n1OSSW~+EWTe(Xb&mo|uM%3S?V6d;MJ7rB;^+jLTi)Mp)mK7ECDmX*tuSJA zB^lv@Z$RhxK&n9?sD3AkKOly|W}NRWr?H#<>4ax;JMx7k=40q!;JK*^3R@m~pIZuj z`E9dr!;QTCvvndY17|eO(AnPNh4*x@$TN}0_`JLwy8bJEt(#=+PyyBY%~FS)&5#Xzh7VNbgh|Gef`>gIjg1x zf*q>(rV%Y2^i$IrS0__r&2UnoY*@zE_Wm?7Hp6&dkUcZ)agX-&I z=*pKAc6b#t*BR{}5Dl|w1DpW8F$3Izan{JP2=CE6S64{7eV7Lt;0_eiGg5LFB}=5c zK^oIB5Qw~w$pp<9lZmkVn$MeLXLDuuHm=yMIax~=#s~Cv@u8lPDb%{yXl`W+u@3Ee zfT;T|UunR88SEG3uQ90KlH*m!arJ+I?7~+5d*qLAZAp$+P!6!4z0(ySccITjfb3#m zuU}nX{Qmp9OIc%#(f^jhjLJ3U+C@k&!cW>Es5wL76i?ANn@uf}Jn~45WMDn=*KtoPKJ2rS{aSx%Qv3B^-?LE%j59Ok0QfIB|Lecx4>&8*zTf#%jL{7b6L|Hp2-UiRP>-5U1+gG;B~&F%q50Nc@X3xYst z<1fhMr$hVZlkTio5X>ob&&v{*!%*F# zrz*z^M8v>6VQXD1?}Qi8=Hb)=)}dGDx9|u$4$>PxXBcKnDPy3?~nio5r28Ywy)dG zlYNghVDj?L@Al;A?Mb&H7sLqlCxa^r?}nZU22s{QhmZVnet3%@cOL z_1cEz9v3C*WLo6>EeRc*bt%qWX)*TDzl7*Urg`o)JjanrsWEgHdC~NnXVjy-k2yL# z@L8Z)V)oaY(>+Em?jC#VT64ef5q;Z>^Hx4vC<9EVvQu$bxf2y57OuDjRA1gy2-aet znR_1i9G_Qu7!@BI(9Wa}hxeeGvLF;fUMCSD#NvTM<$_a>&-fvEcX|2o{H@d0JS;DF zUr%(@x%7_RLsN6V(YfWn?%v?FuX*=K`;Foam->_@kS~A7nZtKzMq@cGsQ`xJQZbBO zZXU59U&FZC6`{-|rTrLcHgAfHbL1MmTC`=hbRH-^%Y*~5@uTI}vgYEv?Ml47+3mYY z056VQsl-$z@B(Ww?(VSUuQfB;Z65KAXg6`h+s4XX2p#bL8#g3v4uO(ubxKKn_;Olp zwv<(`?@(+*4%ghL_Cilpvb><^dZCuF3j(Dk_3o5b!fFTq>`%x6*0!x6+RD7tTxImr z`upzNdLi8tTI{B2CaZx&TP^RxU@p$F2bm^|aHp&-SrCAVwF$ltNv9(o*Hl%f#Ro4c zQOwRTX#Rk$epu4Cy18HbJ)ASP#C*!UO+!7E#LA{Ts~_ zvV>h2qeBblvTUNtyR>FLjvj2^+H}!RXm;m%)Qc)zT~VW z>?eeu=sOdf2#pUs`9v)U+JYC9GqdGy&tdpr=VI}qOa#$KOF>B`5ET&zi`~~ZNPlga zMRIFVP^sW+&{*AjwKGN?@mDFAm1g6;$)bAd@*BP6vXYyj_bcF%tERw-LO1sZylwv1 z8gJa#L8<9{yTbQ8blC1C)s#o4;lM}7ukq1iTk1IrGpT8Pghq!OANurXuQ#T2BHE!E zTu8MqwTk$IyA6V1oJ6*(*ptSV^(+dJm-K|f5qHV$e13pbe&tJQj%bLtyKJE9r z!%0row1P5mH4&3fj=`U0(Vx91?TNkK!6V$0>Olj0Ld{CZmZ}&7>@9$}IEhb&i zZKYYg+MRE29?%om-eK}otAm$Rou?-9wSGTgh;d}26Ey9MB@+9gHc-q7L> zq>mPKp!{G>`w%R`C{)1AU$MoYn) z=lmQ=VIh;OnRzG+OLV}JZeP{dy%LcaRGRKV8m`n{PH9JQn>6H5tM{)ky3jjja;4ge z;&l;UG3==ovd{hlR%Hy_V1b3cXk|2zY}44$ioOmww-WaAW`)WrEX8mLSlLo`e0^BU zZn@qVO-R5P3%S{Cw|IVDKRlo-{2fOx+80&ld|=e9rMl*Ta@3IonV#(GgsW0YOeqc& z^i&yje|!ZLk3Me{z*4Q7!zR4W)uh<8n?I%s{xa7r+AD;w!zxBF6oU2P`}+3%=Eu5M zu%qpgE_%WyE^F83enwUEvfG`0?}vFMuw6cFPZ<2QgF!PY*D^eN%i|#Zb|BjV0qt)s zANv&TAFIO#OB}k@TtfC%15mGJv@L0}!#_%DZB>wDvpQbV{la(K@FA)8gt&N?G}*~! zIDVigyx;!vWwc~r#cBu-0dg~lK{4# zRv2lNEtXVBu?Cw5YGkupuH1h{Y(9^8;owE{TZ}HPZr8Q5iORg-d$gGJ!}~{SXCx|# z9j%aMJeabS9&=KP)u(tkR?!HQ>UksU=4KlAkylHM|2^H%JpMwYYmIuKJ9&=%u=IDq z$y7#u+QfmDxioFCq+srmI(Tj=PXhT8Y24y~gw|)(kb1HGw4NwnjlqyqH5dYxQpVl9 z;h7s4ZlBr{O2d`Dy{fr(=o-JgyD^GSIC!OZwO$ZOFG7RGTiH>2TNM*AL{b2}V?V7h zcHO&bKOu~gVL6#pPA`dUJb1IRr{@OyuEWT1$+a=!&#MQTojdTWw%+l8LE*~aEuM%j z%LKGMiqREv$@orBjk7C@{R(5un-FJ*w3uG~_=*lgJ6;H9{Qp6x#O}7Jp=JKOh54ck z0t~W?4b5|)xL}mqf97II;kj0@m&^x=*tcB}v!DxF?8pGGwD_8{z0Y!LJg!PoA;Tz% zZsc^vCj3`AQe$)DmJ}=qKv4wn5tJ1Um|nSA_=*9B2j^$*;|nq^J*OXE|I)R7CW1qCUhnl4Q{iTu;H#T6ym6jrmd^(fK-2hu znt~wW53RZnr+^g1)s3#dS^olCD-IcUI!i+#cHGqsl^Xb@Qlk^^2@IDyYnH&P8#xz| zTv@I;=<0^%0xjSkQi7ANhZc0#$UR=)MZtAn4sv|=VZ7N}ge=Z&*%)ps7l5l9t@YA9 zO7PVU%5RK~0mk*1G>+ndpJOZ{Xl4Jf!iL8iUv-{5q@^G8Vq2Pm$D6+tIK0%iYbyv^Fn-!I{eModd)-W21zT9w8Qju|G_mU!Vr{6Yr_t+HIU&E!@ zDzXia-AtT(Vlh6|%yfKwpUzp!Lwws-SYPnapJ6K|!J3dt8KhM~v~ zxR%@7``34Os1s3UKCYf=HHB2LR%qvftK0jxIBjbCv~QN&3l?)7_^}Vi|D>2@=pvq> z4W?%)yzEX$f)BLlIwU|dttMe3kLkpwB4J}q0#;>jzM|A=SDusZ^6Vv{_oY65*{mOU zS!&y1-cw-SrqbFUwUkw)x*Jhc)=PHBSEU6i0KIS64T_o2g%lh|F?<5VJ20Z>*9D9? z5IoBo7FL#_A$6UC2`g57r>F-tOEErL9ZT_dcnjil}GpXf@ zEk>5DdeC^dy+I^Y`zIX^aCrT6x=&h1nD*-JuYcm5HY*j*x<74kYsD~jas2aY|M=&} z1EwTw@V#Of(@kbgf3rr8K0adgn2*t1#6D!X=bxDNMZ4v{SUY10-~TBKH8ebH6-usI z$h-cZeypcr1jESykDHVFcj?*xnJFu|Uyh;V>SZgrSc1-5zV|wg;sE}6d#jIl3ofJS zTHkgCI05>uF~AMLI#nD=hBr_weTg9lhSj|4dB48d;N`<>1J26r5&L<)L;&L6;J;g$ z@(hxQ4@#fjAbtI6(E2n7?KNwC86aD^=3iJuLGSZ4-0EUaI~5G}x*{2>HA?h!>YE&C z7yLRn>wJRg7OB0Y*CRC6Jn_m@_DtZ+yKt3-&(s`x%U2i6nc6Fh0xyn@;COJ=$}8?e zq&=K;Z2|5?ZftE8V%`I3RxSP=pU6dbhC%6v9cCeNiAn^;1e^XZ$7joI=&TSO7YW z6;1dNN2qGkSP&x=d_5N98=2_aI%@-*fjR~kXF2?fvpRIbqfeTiv10*BssihH zh_4(MLF@P^r(sY-$+NxqRxvHg$>EIr%rb|UEqgu?LnWaKOK=|sA(d~zz4F(??rA?u zgdO%z9tgvdyUeXg7FLRQxt`wF%MRJ`Jq-gVnrkkFcm>314 zCWY5T7GAqf;Th_DaSv<^QQ)jALS?WTM&&uS}l=d{_W&_vF2Q>)c zVR9|R&@{L6hSj{BYcg0|cs>lA5$n*F=hi7Q&1NLBh2a4@hK1T;k@aV?BE zrk22V`TH6t84gd8p{ja%{DdKuRGjfGUO}5md+uX>8kjn1Lr1; zJpibUXj%-PJ*~$|uftwfGAoP&Yg+kmF{Cyv6Pq0`;huP)0JajXxx(Gp&}@WB|w z_B;D*vt81U{;6^oumhu}AB{EQ8Szo+4(SU^q$}})gTnRt<3(HF>OC}EfS!}}tg_@ZClmt3>W<_6z6bus%W zK<9!-CYw+G9lSP#Z4c``PRhU=VHnQqttSS1E5Y10#G^EB@hZ6x&xu09Mh!i-UR-f2 zY&tBB$4Mf#hHu0P!KczT2W)I`d2Ep9efm@&Dbg#ShK`93Il!@1xLCBc*}KX5MTwC7 zr6f9Hg8rrEsI8_9tXR={y4z{X8S;f38bMk<_9)ju4iwGyHbkzM zGWzIDphPckS^7roVu0Bw8S%sB$M1Mq=2}oe?kW~y!M*4AIM^5~d1+4;cEN6TIyJGZ z@oal3s(|a;0cerQ4@6yL$?xo7dsy?}<*i87q5)9GF6#V<#3lFB4 zM9TbgA06?D#rSD&_@Er(p;8wMg@!nEg8kmhY4tvEg_y@l?!U!8JssoD5b^AdPvw@8 zbLVHED!oriHjvb0)F)`3hv|@HT+X`KSviF_zyxqKfSA@rL0ibsZo-xq=P(IN}4M5h;iP(r6U~ zLsZMg$-Mz)00YnRu>sfhD~J&akqus6zZ%scxK+U?Ldi^U-|4I^ul&5cs$X6MX$`PuyVMqt`pE+SP64}|D92$!> z_Qp;F3Xs1Tyu-%%$JG!5W9sAG>QUb*1Ed%FCMAz^M)jIT_)$e~Hq2X_i$fI{@TQySl4Z8gZ@QeV;0 z&JA-^c8+E{9`|rUzGem;h`I)f#HbDTHi+B(4OqyK#HjCF13}hnAi5aq0*9)XTo*vn z>jGT3N8V*fB-B@ao}gk#`TV4S?@tOYQW1{fB~pEkB^Qo-$<>eQ_;PF530v$?!RsrD zYgQ_z!1T73Q~~OZEhz%q*vMI5NRm-^twWS8Z52~sKF%#Tb@cjGq4#l4`s<*_5YmcX z7>no_<^3yIMW}O?MHMBr0C$g_cf98f8Jc#%IYjqUTwxb7K1YvZTCjmZE5WOTUR}xl zg7e2O>s#y>{{`=PEuAHGb;Zgc>xg4*Y$IasiiWPRMWgRK>#jQmJ)b@<@k5h@6+*vY zZ{D^aQ@bd+y25kd6X%|VnsX?E^SdIuDU^MN8j(;_c23#MRZOr!BT#Z*F-I;|dc~IxJIC73gmH=!{4!zyGqP;ucoUdZ?A) z%hN_yY4e%FSgERyM@6Xb<0)(|w#()dg9V4@x3VnQj-5L8W_`}j7>(4N7v`|O#egK< z>W=epXPPAsG5p#CzFc?QZ?F&G@Vr0KLh}ob%jwx}*_w<()4$m}}qxT@(76 zHU^y^H#k1_I}Q!UF*B&*TK@DC{eDtRvfcXlardyfd47#WrGH@{7vGM(d2*)%z90fE zHO|jP>nF7ENR=wK(I4;u7<}5ncBofO#w0QQo&;BogiZS>YVS37i;?R3HcV&3_7wx{ z;>cSZ|1sZVZ?O3hl?J?zmg`)cm!5G}c%K4BZtcg$2BG2y!QC*@q0RQHbO z0#!=%@39sFrU9|QY>RzBG!QPwEwv<+6v`MTZrEgvBXLgH{zzFSosHgO4_k_Yh zM{xbJIndTbguXt=sVM#omKKY@WrFhZzjt4H9ol>ha0aZZD~O9n?DE6MFfrYuarN76 zr!=N1s7C*^-ap_7;pIgBoK~ja(8odEafSAxTizn}QwHAmPu-WlVIXCgBU==+8T(Ti z_kw7dw!8kK44aa00`%3cWjIa`)O98mBPE=w&qqn4OCf4Sf79;AZ#sfXm}^-lRykI2vKo$~iJ4*hzey7+0i3UOO!H)~PS$WQC9 z*gbInlhJxnEr|r+qr$*Uw)@UOg`geM;qz8%y0wHT4U?v zJ3Q$6E?*Df$E71 zloZ#LM$ZH_JXBJGRfnTD>5!N40dPdp7O8IHaQ7NU^XyaaN~RD9o`=#|t8wro=FYl@ zw8nXNar||?eZu4@jjmcfGQj5d;jg<@=%RPPe7?T<=M$ExHOE(2$=5$I|E?r20b`LA zcUX7sptcdee23~0_4WF2ptIh-rqd>-G!yiKghNmLV(J3#X}v+q78BbMORb-@y?iHE z_=~lCn5_APGjwzWGJ%)x&enT6EAzwGuQYQEi?5q@c7`2F`+{hhw%+24vdeeq9<2E+ z4ShTuLU|r82=t91hvU zAP6#L_w~cqk2rqler3y)r}QO%fXlLp=VmY8=|OX`ritj~I~rw`RfzpLGfySSHpNq` zc?hF|y?lq+BuQP)g@JI|Sx%Tu7LYAY0zbyQ4cQ@h87mx67 zdMxRqIT*LSb^ZRDWAx&9MjtFW;49fJw+EO39==B%puO}2hD#mJPhh{4LvBV_if84U z=Q3oGH?p)DW8!SCUuBz_{QA|~`vW@07aC=|Y(Lb{F7e&5-Qo4^e?A>g@17o4Eo(E% z*T22HyxM*G^^MmU#tM*EJ3wAx7Qs+g=>#>0NcB#)!o|m zSy#-6X_6}j*n4y^aVR*=g4#Ny0mhN^_ijkmE-!GG@a;YvV`Fb00n&?4m`rY&5+Hx^ zadWFZ+yV9gf-GDS+EqvE(nd_L+<9RE(hL4RUJ6C9peUluD#n9yj5G^5)}OcEw)mtY zjwsqaZg2=FZ_v=dYw|*2+^NfrO+XB=2c)gZe&L`IrsWzW&Q{c%p{T&KUxGYe#S$8Z zaVRN$pz-{l*O*7c;Z*7?!%3$Fdw?&Fv>M@(zA$UPJmh%u(fR9F7e~0n#|<&>bon;U zpqJFe@q<3{{1c<^$2C3xse$)v{iVV7Yn&8*j|md`g7EPHPg}Rmcvf~_QF;BUDX}sO zJzG>a$*04!GWj%R^T~5I!COPv5C0Ax8bU08tNRl^0OHLZ7&P9AX(SFfp9{MN@luSF z|GcY+lQ)lehY@Gx?h%KGMt2H1J~$D+#R-R#p;AArzixhnI0d|UGG%h-@TNpLrq95H zB0*O614Ppr?TMd|0~})Fok?7H z7W@Y~bkU@2;!V*Y?(mzfTuUnmIx|Iw(2~glZ`)e;D?NXCymS4?V6l+)srA z>(y}(jLTPwZz9!ufO8OuRGSZ5`jrDvG^(;oQS~@qKH;qCAFnZHWW82(5U2vouAN@| zqkVgQxC;frp#RI+w{5qT>)6&Wbti32a#QeO4v9J|XF*nIS@b#=vp zLwZ>-Y}jHO{TeMcS|6gf0U*mxWDN&ExaXLEy2XkCmp^zTY2v_phc9g-a=|hU??^Sz z8XCtc9gvkrb%S<9*lfGlH>rfL&)!&*3hU$hPb%`}9MEySQNvXq%i1AQ^mZK}c8$o} zb%1dDKImevGRyFWgrUCi0XHbA-mxYXJNoP`HECgm4*y~=Lx6?`eel(f8CGA$0Ruky zR;k#~XK$xT3+owg`A_e$Rmj&p*mFqF4t5P&{rvLj%qJBK#1ekW>~_acap29+=7f~5 zHVT$$crU$%@lygFkPWY6RLl-;sWIWvZt>{)W6&c3VYEUTW$fTv1}pU}Yo@W9EuUvH zo1_*zmPw;^tD#{WZXaV4ayhR;v05JesH?I_9C$w9svg2jS;FDB209o>*WBAum4Fm} zC${zzkaYfW+#Jw^;x)?kpH3Wj)~ex&-`XmWPWyaFPZ8;5*05)*ZCckByLwp*BvP@d zEN`z#8!LSk6N3gy_`T`Mx4ynz&DY;u!WQF2ZY;ATF+qbwpX5n1Y)Qq{mIyj)Dkk2SwcH*3ZjD0%uuRDh)iX5LvVrtk;`^8N9o=z7#{iiZ zBP$i#%JMdwR9H{w&1|3HZT4uc<->?t>i6GyOZ;W+013f}ym1Ho<3h@DNr?J5`@oBB zc#NS_wqAxO%qF4z#^0jtMEc_(=;R=+G!Epg%mno$HqIF%D$4`8Hpj(ZQ)W-W!{e z_^759lN=6u>PoIw(V%sKjZ71vHF);nV*hdT6U`N7ST5(ckC=q6K_$@a18u3hz^!XE zDwvP=K%=GWQd;uc5Al~40M&~aOa1tXMiw6Fl{2c)rj)yzhD zWHzIo+1VVJ#41D|_P`+7bM}Hjtl3@jN|RR7ln$L5Q;1@ zUlCy+WewWmLrB1L2QZgf;y$8A>RB%A$|`Y^=RQVGZtO8Lu~_8HL>u!KtJG_9X#GT1 zMJVAra#Otq|B;KNpCPh3E!Fa{F3@CtO;$> z)dS6TP3!@;*v0E@S2C)Mt(7O|VwEW)^9-aa4!mfrI?Fs>TTxYw{~qYL&Z^}~TzO$e z8`3np0hoQD!zi^o+@Y_&owu79MrbZ?E@d{!FQiiMlM^y0R22|vJ<;DbEJ4{m<`Mq$ zxaI{*wd&CHLlwgQVTVSwwGR5Mh_TE}wo5Y!m+Qq5U%Z#~D-CNnd6YO?hDkQdJ7;(~ z^-{x%uc(!%0CDkoI*y&3kl!6Ovp4m_eRX;wtM24}F%JeImYw-dW47Qm0Tp&9d zHgzilDQoV&Y-kL(>JkpzTMyj4Oo_p|u@M zvA?_?ZuRbO9Dr-wby8S0&&HsWg7pcFjxi#SMQ+qc&S77@r9;naA(2P$>4)LVBjnfI z9!`s=-b&E?ARs3k1YQafl zaBG}R9`D5`dH~O)73;G|_3=OIvj~5DXT(n;H42b&SO82g{6t)zDDqh3)(EGN$X)9K zQE6T1m)DTi1#&NDZ*Ddy_kX-L@8Sm>QdMP8s!vAS$dqB?#3-jb|LSd%MD=JDT`h2h z-#m+$AiL$04UQkl9)4H_ex$W_*lG1VyM4q=ld46je^w(=if6kd(irpNz%%A7@9S^G z)76ub23FF3TLZe9QqZkg17RiYx7Q`Ugv&D@)b`m|6H*I6C$a_|m+ijW-_F}QFes~_ z{xtf6vEKXTFY1+QDwJnv;r%my#E(+{Y^)ev4h7HnkYAfn(GyAg?ez&|U0Ts^a$Fvv zML&#+JVJg^KU|jw{`YC~0jn;}GO;N2&&Ke@zUs0+SVz5`|9!MYx{26|;Le1K7G6Cwf8e8->Ig4N!?VV(6RY6kV*W#?_PtD>F0qQG#MX)E z0q^PL(!~=t0U3@HGw*TpGbK9t`3B$Im%GiHt{%Xh(`|+#LwcDeaE4ImvT2FFkm`oD zD5YmCOJ45vE^;HFpFA^VKd}a(d#vtQ#jn3rj@@e&guIZ}?80l$b*7kBTWON(>@mx* zYGsFo_*@U@f}uN-YD+o*Q*j$e4B-KwF(1MyFsb$Rx1y88MnnehJSPST9Vdh*92ZW) z`1+eHv!_Go=(Iac*eLbSYA8z4jJ2JsSk#8280iZEuBzT{>FO9dL2qR@!M%tLt5im5 zAwRWPZ+DxYbpvjWU3^47*M=hIGu>c2iSVz=uNlbq?#Pc%b!vQZY?zRmtb5FI3M=92z-Q8iFIzO&V z9NuDyk2V}r4955!6C+|w?qj#;FYGnKCZ>{w69k5^403^^Lk{PgTOA?wa!AYuIeo(a z?e^__SH2sx0G$*pI*EY3JIeyDoe8Hy5;ooukhh1;?Pm4%nI;;_kuEK~Xl1A|`#{Gw z-E8EY0ONSPD7rR!f-r_^)=p9sbf=L9p+2TQ6(Km>xg(N(3rPZWB5j@$0PF2O&MwYN zr-U`IHGQKTOdN3hu(0Qv{zWT!n#KT6HRU_jlx|@-?N+{xGdMBL`u2Q|O9JIgjm*4- zy&n1;l#F`G(*VrH@)hb>2)eBs z_^emLOff39EPD%MfK}cx+Z#s;CBjzwO6sX`nxR!b4dYGxqD}{^9!nkn2Nq#tZ0%4b9T>{SYd#JB|;=8h-!FZv zY8np-(B07Fl)1XbiLgqXHdbTY_v^9nfy_(-$VzL(# zc(iPKZ}g@}uz?TEN0^XZF=gWQW`Qjp5Y`es&BB^=w8D7RklwOoNDv2J^U?7rW;FFc z!d5DqM9{zJ1zgTS+SVJgQwYMaZRt83!0VxmikJ|Ce z`F2bDpqeVk4&e3f?NItbMaKKxki!pM)^<1mDgLc>Rz-u)JoYPy(^Zv%zGlg6J)R2Z-#&K<@+ z(Uiw$Y%f6Hr@Kx=_)zyT5V;wL`ueeWtKF28E>$aKZSFiXjxSTzq^Rf-T>_ChnV zL-ac=(Qxi~1@#D{2HM^PHd+;r-VlIv&hCz%n;V@ubV#zT>{ znW`ejF*zs=;Teuz#B4maUb{tHmMHqEwdif!_SU z=$Ae>mIJk$cYJ(M2V;NT@@a`)VtYKiyIZ!&;~>_3d-Td%ZOVQ<776}ogC*y4T#slw zGrmIYeu#pyDHIIBTdUqWnr6WYX2_Q`z$uMK`}~k&*nRiy z|FAbPp?84n)RW4EGa7Ig4iu@Zwy4sVhm;_?6bjD;v<%j76-6vOnwoGQ4Lb4c1GQs| za_y_@-#UP}m4i*@IsknKa7^G6k@jI0Ld^OL!w6f61-f?zq&4%s5 zby(G4$44q2EPEHT_fMWpu|UUd@eEvwBa7$*q@CL4{k}EA6BOFX!(VFCp-G032Hs0= zdHhie5T*kBe99z=Z15MskIQe=)>co0n0eUkg6m1zkqY!Ns)(?|h2ECJcc^MD1zAVx zgzt91w&K8RdEj`I0}yoMT(n4SipKJ_vXI`q{OAN4VR zUk;F#*34w;kTLr}*R1mGg4kz{qX+ko%Qj1&Vc7e$y~D%}cNwk2bwbB!ZWs=gENnER zt6mp4kF2JOm7#RKXr)cby%(}Mx88ii?SR#J%HJYsXmz`y@R@$g-IsOEk(b#gGhbo! zNa|TGq+*@FKNziyQ~dc0V>X_5y5lTyJvdoNarPiXT%zQJp{{c>(={H~5l8LL)mMW^ zNSBM<114zJ^@RIQEP`?q9p(poB&<9#k#^{u>d=gRXnaMZmXB!TBYw+=HQpIyu2PrK z1mW!PkS+!3<#@^a{gv!^CzGX?L@D>h$r6f0-qr=9VEF61_Y`*(m36`AbQ9r^`R#LC zfZ{~Bl#|-X56U(@k%*Bn^Xu14<6AD{nb7LLrw|h^nOV?E&UuC3Q-5^4b0N zpNk!CMs*%ISxvS3TbE+`SW=5S_|@vea(zEToXnZv8Pdx%!7>E-fGxmxIF|$yX{%MS zf3u|PFXx|-|cp|&_k;orLU877)Ii3 zJ2^AuJ8~Umws_hA#w4+^+U)seZoI%8wQbLkCc_Mmt?LvEUj3)?#>AFk=L&^IGGSm- z#FAGhbI>kTXePyBnTAW9pixpCgVFot!x1~Lo|Zh5+BGf3@R)Xj5S$pKu({cx7!c}|0#x{X&js(yLb2P}k5<$Q zoG%l6sA*nIM#}t_G6sFZB!Tn$i_z!Lsk;f+1EKg%C8R`}M-T1$o7hh9s!1z-npJnK z7?rfJwaF+sYtylNiJfXe`a9f*E`Iu+CxRsoRb297prmN3RpLV{h^EvnZOYE1 z_kDKAxc7WndSq@7>pWBRhdcE^slG^$@2gIofTWICJAF?H`n0%c&>O10r>OpJ{__%B zW9b`UaN8n3!XJ^Mjrty6COJl~^t@A+x~8|f6m6OIcY-sDU~jEY?Z|nl zEo+IZ)!XIaX})z6)l#_Nct>a{#1N{-?QXfXb5v7|F_xul48f;qkM=2$amGHJ*6-2| z^_f0P@=_q$TviX<=tAjurx-(Tf~Cx-2{!=sA!AEtUr9>h{a`TF8M_Fb)UOGRj^BSj z@x{{M!Mj0UqUE{4BfVjARMn&`8f*|v$B1Fege(>?%%4WtSK2e>Oj#ItU_R)P$ZE;t&Y~KYE(6 z!>jCMkf6~?+(}u}RuX3tD>iM~P=#JdxH0GoMaF40^_#rmgg`$*g3t;du+K zK(UOg5l8AhG4R+CM@nsAM&u&Cp`)%CCkkV%JsCV}XK7Fdif>lSd0$mEct`3zDDbIF z4YU(>#?f(hCgP-(CT)d6)Esx{nX*p$)`-!TA`?zI%1D3Yf-3jv65Eu`zbSk(!MUKapGa_(uJHx5VKxt7n=N z>pdCJPT0wYEvY3xdKpmqxDAOX{Cc4!n_o4ke!dKCq(_s`Noz7SlrYqt@L6=Nw-=w@ za|hXHWJ6j=D(i!2NMp-V+Xarmps9nd3l4Ci$A!B0tST0Kq}hAvHElY4UH)snySr*9 zpEaWfD#9|F%@WQ-3BSu*t6@sF7l)`sFbQWuqsF_K$@0fT-hSwfLQm{8aTcn~oMJDo zyaOrBc}E|i2kHhdnzWLglf0j_@{r*dSG!p*QZQK2pjF)*0{Q}UdA`I(FxTm_H>jB$ z?vRjW32wrK_aiSGtKArX&S_97uH%*P2c(Pu5h)_ldwNBMGr!6EPgm%_d$< zxL-o5agbpE?F7*Xa(`%cMo2lH;Fb6&L+!LpHQs{3t0pZr7r8HlvedjF3A@&}v09^4 zeZ&yQ9dRoiY9p?*r$;VA(^mRKAq9E0_yzP}X zCVg1~RT>dHpHOF(QZ$sF0VnvNL)&gnK-Dc_pgRayHEWqwlTzY_^8sU82tV2x_|emv z9m&QM8Ih7EZSWEp!4Cm8Vzkwe+(g5pW=!|c z##SeK-YH9?@{ne z(aw-j`yMa}OAmx~>wmnX1ImQHcQ@599@ED&tQ#m_ZTt*xhjEBO>VoPp){rAJcKZW% zTKkvEfb?u<-LZ@RB%_7aWZG7IC$Dyi$+xSgo&+@4>O68<>J?p$X%@noMt~2hFpz}e z_&$gLF(2=mvfPxGe9+CFW-;~zVF%zpZdGxtwy5L@3}UJclG92E1uXjS8g&uLDw3 zl}GK~+i+e=DJ2d{_|X}|Z*eCfSN9lc16bSscmU%`0W9|hjdx~NSy zixVi?^_beW(rDjfs)0TB{7QyX-s$`xoDm*!C?Tk>bRb-o2X!-JjJ2c3y>?5RhPlh6 zN(M!=50kXU;R))ss4B%=kZ=U)*|~jUn|NTG^cwdBpttIbTc}!Z!p^*flz%hFu0uY& zC7QQL&yL0$yZJ81jbc9rZ@dlVCV(6QokW(coVTh&&ZLEQRt=SakqtVFP;s1zf+8S= z_rawNX$Lgda%t3Qm2@hvCKONzg=cm|UhG#%7#0{Cbu8dy!4qSr_hQ8DnY;=d#kGvR zNA7pD7@I&CIndFZ9XiTq+Lgc9@i(q2oAf$|-*0v8$g|rdEg%jfjjH zH1At3zL24!i*ADES}uf6tN2TD3Yy2vw(;~p4FMIWiyu*|JTf~k3e$v-^ob#ps9L(j z6&buZII4F5N{E|51nyTlt&CiGnda{Uq)OmyMUQEXzO`Hc{)LrQ2y76NgI zVP7x4Z8q*TNy030W+M8#XMWk)U#!P7EmO1;cAT?gJ0(?^KxGDb>Jr5REzH90L#aUH zmcoR8>H7``k#VLh^a1x4Y}|l;-Yp+6Bf!TTobqMJbv_MPsc%EBvxuGXI@OTPqG(cO zv=eqxr+Pa!&1AIOy#lin7Hc6lX&;=$j0PQ%dcFAjh$GDJKCih-^aYT2+;^;LD~Sh5 zSS`LsyeDq`-YCRWr5ctzV-Yy~#YI`Rv8(Kc=33D+Z!>z7jmBzF74#t$aUM_wy-rTH z-jtzyo=gsGmW{X%z=2kWwygGPD;s*s*E3E6k<>&mvzi$kL#PQcspnIGJj)^?@)pAN zVjUMOu}dnC%wZfvp~3^b-X*7J;~>CDp)lpkZ)wYMYv9gTj0|SadcXyg!B!7_^SCoC z$~|YwLKb|q;NuLmHC3(Le4Rrr!W7A*im#oX*9gBf@vfJKw*7m~*Bq#F%FmT7I;4C#Jte zG`uE@p;$!OVe-$XO8{BtX0gK_&;Hm8JDwVHss)VZ4?3k6H66wpxHeB#;o#ux)iXvh zOPor(zISVoh8%A}&OveMSTz;PG+bH+jgnIslH+Ww@-pK>2ngGEGG{#?%;uxj=$k`$ znRoJz$*rVKUP~9S(}Dl=fn}ss;d;^+P1D9JpPj6n`E`anj^(VcJ-?XHf$S&*Z;$u) zbOj_1+}+7sZVCG3{J`Wq+kQPKGhxS(8bBzQcex_P9~S$!XpwLj6pqHOi`V~uG=ok#u&@;3#T_3iSdXK5 zAzAOZDb7AqgT8;n4IA2YP7qLJudpVYCVmjHn`OPTGy&+73avx?=NxqyABs_B_{uFV>_|={<6>$MWt< z_90cZ35wU(m3l5vtL+H5S$47BZ+5N7)et*?6k&)~D&Ze8=kqdc#oLe9e|yf4*V&JkYk+`U(A1hHBu2U)A{4|gbu(?=M!!XULVG470)!k z;0{Qgq95Zag37$p0z5(JAQF_yI*O^Kbo!Gn3)t&SI{QUXuZ7Wxbwhf)Ns6JP8ep`d z6W1o1CE@`mO`LLo2A%3BjSq}U06Z6lP!GD!{RBxWacfgx<&9=#j%g3Y-E$c?l~Gi2 zb&8Q-_WG|f+%dKVZR0#@jP}RFa<%{Q${p^?&6G#lk^2@;&1}H@olH^;<7Ii$WWlZqT~kS5fgFSI;fB7#7_gaj61z^9KyUOIqjH zn_Hd`$B9>bRmOa^mm5hm&SQLpXuQWb4!bqs)sTYJv#M3c`uZDK8r>_Ll!$$9#$Jc? zY-2aDVH-C$b0Xr(dAks$m&=8|<>J399Ce3$t*dSZU@BI31|TiHqOrTA2Vg4Jm=8dRHOgQ1as*iMD?=b77WvX9kVZJ^YAQouw?vE>*u2fk_I1a>2(Jd_}@hD)rKs41ug&wT?-u%^JfW zx^1}yHNc@+Yb`6zWYNCS9N^HT%5{y|rrp}r&5AszIC+c{QmZzK{XHfV>L_3U zreclO03OyKFhCEjua}w;!zka4Zu`v{elDDAif&FuM4?R?>PyjgA%?CA@Ga+ zapzLL^^g-|5{Eg0UFc&H*}$9pDE&LA3Ho}PW0|x%S3_>r_=}BwXF6a-{x=N9TJeKc zR-btdON!X=GEIcJ-!5s;hwEslzmWW*2?s5VLtHem#;K|4>_iHYu)H)3R5FybFj&XV z607uPKjZBR*2^hYvr_cl?5#NySFw__iWPbn8f$kbYyG-i9q$&ULfPOvKwKI=49s^B z@llE8P42^Hf1pvaG2dgPap59gUWMvNYKlP^-$qBCm~fhm80DRG5Qz*Wt+LJ*YiX${ zV`4_9RR>@%<}ZoHD{oOy(yH&c0}peYH1%e-fno}i-v2Ikn}JRT-R$P;{R(d>_U$VO z-J@3WAe2wGalF$>+w2o2l=SK=B;soMZBOr|Dk`&2b><&aceJgcAL7+Ish_1Lm|xcW z7qFyLcp=xs=MfdcPYT{Pk;Z4gI@@7V>5OJm?`f3U%5{&-_AB#g)#&gZ(^~Wa=X9(D^DQj9h5MQ`;WrzjAqW;8u?Sf-&44X~CjFnG6m z@abY@TGDaw-R#Xw3yD5eJM+CWp^ruT`tb8_%&g+;>vD6qywzK4inS5S^71(V8H-tg zub2$Sn?SwmX^LU7DZPe~##_8HVqRa~8!JSs2`(?sW*YyOFe|6Mhn}`K$t8<&Bi1?k zw^duyk^oIaftm}-6M#iKx;i>nkj^l4*Cy>e0uH}n1X3mra8F$k0U&XWQi0OJ1VX1T5rHU4=yF)uK=M$E5>Rz=vPy}iMMq=#?gysy zw4azDWKdQ+qy5Ga3v>+4L~|s|t2+Ye&TesZ!4doMG&(ZCNFf%|$w*yw#rs{A29|!^ z@5Dv$5#QFYk87+T)KBaQz@o?F;coL&ueop{emLNOv!mWsY$f#j%liKY z%h~~r+e%tXKp{6o*gKuZ!?>2des^W1wVI(g<@&UkC${Fj3B%G}Zg=>JO#j>VbWT)y zJ4||VH?O^Rd)8mtJGW>0MODD+$g?6=hmfzoU2b*PH%%NdQaVwpy6Uo>JE^zv$t@AdW? zn#=Q$R4ay+vkgld|1OgnQ2kI*XS4x$HNM4}l)KUlsnt##1T8BQpc85M2@pgB=GWhZ zcYNB$kc-IR-Uj1EAJrMtn)^*#)WT|390bl*;}v@tYpoCUmQPkyk$DIn3xkA?<3du7 z3nyVHems~PQ^af$nFp`Wc+uD55InVFw$lX8mK8JapIc6tV9rQA%NeUINL$~;3z>Z1 zWJINJlCk^^Em|r~x|Li$JmEF%&)w#@y<9wf!x!(z<@OzIxzm1SOn~k=zFf*1!KL;| zO)mpkhnA~M2PtbaQVuMj$h}|U0KLn5jZzT$$Jt?C2bviovS^H+E7F?)EJES%v3J28 zl{rRlsnD!7P0P=6ToQfNZ^??-XE=pI*{ENmFbjhhF{74%i4LrjLt{N9B)W(~9XAYN z025`VhnT-w%=fs^5rY#-i_bqXH$?@td3n7UQJ{Z=54lsy1N{0xb%Rpl!$yPhGI`>j z1^0tvnP73KmqYTFhQ*f)>{6&p*P|5AXo~6U<;C{L9|#<4y!Y5w@^P_#pw(TUu)b1+ zEufbwG~3O}%_a+{vwc#5Z1a=>r2!Q{W5UZTvm|Rqwov7BB4_Ldc&=HYo&ddQXqyZ% z2pwsc=t-7Dws>|(Wp@Qgs4A{Jj)?bKm<{mUSmX@5K+NBj78f0UcnuIM04xoAd+_5s}Oi#~_qPNtBLd#Fp39 zUU)B5MU+jKNJbZ_*od^TN-6O1CSnB|m&-xVEaJlZg|qeeOjio2tXgiRl>AK@QJakp z^aK-)k7%G~+r=$?3mJtt;uH&|dL^;bn&)D8iLW%LLL6}<#FDgKrdzpV`h80&B*M?z z`QJyrc(|OOl4%Y}VncgCd^w;B+di!i;R4WmZ5Jm_I+hw%<`oka0QUoSSfv>n0dOxK z);Ka%s&TBE2}T-gnqs(EbEv+}>mla<*nD3|C2OTpW?YMuSbI9BpKThF5i$oKl)o?T z=)3Vm^LDYHqQMSLwWjG4fx<0?tNBGd6&6nLoERbkPVP{6C;XnK!OrypTU8g>4JRF# zX-+zX*)qD9My@%pg|x^G^Mrq@nA6w}59IQ~R7QCYY&w)Yz5*0}1w7ZqokJz!{&LGJlV;Kk*Lhq zGSEsxj<)yIC;yIG9`#Eh4YINK2xEJ-Xe8H9^8M@VxI?MM%9Z{1%IcBpC%p2MwYQaK zMA!1_NMYGVCrFtUaelsjqAxcw04uw$FE{w8#^;*XWK9ra(|3sweJ3Q&-n>|~=j*3g znD1`_V5AdW^}?D%`@`<=^ssZ;CMK&LV~@x_<*_cgv( z{DmTb=I1ZG*Z$Ipha9U?ULIOs>T=DLQ!SLbmaBU3;;-xN?Hj*O&CBG8KBm6;hAkTO zd9W0~3~4e<=eswF3}G1#n!m&MAG4>g6FULFc73|CPN)fmEMJ_s+3@$^-lL+Lv8)x8 zi?bDO%scSn;I>vV@nT2~_RgQz^QYx4D)AOouYN5##hS*oK%Qa+93Ap}B@w*3IL{*$ zIKcwCXFkwjad*Q)0pc$?NhpW-s-f~Bqe}f zaRku?jn8K5#e;UH(;SEHC5Jd8vOIFQ*ObLXV@-=&P1IscPXEA~3AZwPl48M|4ZZy? zZ{ZD7?aqYY}s`?e5@J+7MNSfQC~ z9iY+V%FNb>N`0^>8c&b@B$)JKA{HVc=N-;dv5b#L=pXcsSK!L7<2F3MXXbdG3Kh( zr_4U~yHS7t35VmB31`_`S(iKy;Rt+LFL=l1P}2}tmscWk4~n6X*?KkrS$s7=?y=Po zi*KpA+N2E#v#%E@)SFvVp=1m<0E_r`VfLd_;#@C8q&W6AQ*FT<#QXVj)%Ht`@q%E! z1Rru@t3{`+Ryi|qoPd7JXwUVRx?|!(3Mwu;bU zZLO4els7R!t(Gou#{dW==T^3_CUfxrp3c9;*7a!rrjntX#rOY4JYJ+_L)kCrOXz;_ z_bXkZF+y{>>kA}bzBHSqABggI+v(64Ps0N;86x9FlP~?E@!+j)I_pOw-8*`-K!$DS58TjM zBO}ViUte%wl6+jOd?Ugk6EYB#)IpQJ(2uYw1R=JKVSAX>a^|NP6}!M85sN3h=+4Uk zF*h-y!H#Sk!`tnYBU7Ymdh^SyKY~>2CMOYo3CV5t^AsOQ9x|Mwqz%jG5uU0?(0rKH}oC9rnZG zolocNbBv`l%Sl;T>j9Z*LdW^NInp@4Q)w@c(lOUamF8gtM?DjnT+JH39W~T z0yCoY`Z0x^W=kU{&Qd8S^x@?x<+VdvInX4ANv#pZg^!%TP$;iqYM|pJ7N(*v`jwGs zx7Z~SDEf_)SeQ-%v0ymS!mvu2H1M3n!l>9Fbm;cwM&vbJ@|Z)jGLkT-i%tn)oN};k zQf26Y;W!^~gy=Jh&kHKufH|}_N=s{}Pf?53R7+x&@`k=lr?Im&NNLM4X?emk!_0h> z%$=^fCE$)aws#`o#nLe4OMxq&C`~Vqqrs(tb{^F{8vFC2#4o{4r@oL(qK=clql$kt z^&u~)W`JX@q=cv&du^Uk5wi>lpH^_Y^kYH8?4VKBd*h9X#!Xn{f-R5q)vXm0X=_dDfLb-G&tpm!ZdPx43$Dg=a8_5QNbrNF zh=%<^iaITyT#c{k)FgcZC783FC5h2-Y0>0aBBUsVg(@cvax0uhMvUWXRbGw%8wD*y zHvxMcs*J|G*I^Jk_}UX4X(GX?4$#~;?E?NMURc{VtT8SKCb)Mc`OQj?9D}sh`-wS$ z2~J|cCtK8IG|}oyOw_E5OuLnjS|vOE#z`z>B`I1k99Y0tcf8d-y;920+XTH6LbM);qz_)@E$k%4DJYlLP0)ueL>sn9`mj~r!lp*3wa7ur=k{G6n(VDwSD~*=hF^%4o9YYg4NcGbLHbiTRH?YKg zh;^p3!Hj`+nz)^X${JZ|={D(!8P^OfnUtHfWO!t0--ZlL%?O!e7s(iw6@&K~M+0;p zB&<+4KG}h5Dq~(9i@;W8D-h3;XK%jKG=z~5YBp5wr%2I;zS>}$6;8AGm+5Dnm5!F% zF&U71BX$gp?9i&_#V$>c4r+X#*2PFoZ&6IrCIHQzDTdAW!fqwG@l7Nm-$3Bw{J@8W z5mj~sh`YU=J;^&_U*0m%>-aP=d`%Y?VbP8RakKfnzi%U}3@rAsWPmS=%$@4cpw+vj z8rH9UStd3LLl&D=RKt*knpNCV7fFdV27FbGR$b`Wie0%@$Q)iLH+SE*r0B{AFULX9 zEe#us#Eypt`(?H<1!&ySx3HoS;HZZ$P<^p?s+N&xXGJyY8&0%fAd|kFpyIh9R9!Pe z6O;^+utza%T9uJ#yDxbX#im%k)06yCy;JJNb7=8tVPRo*-99FBrUQaTQk{P3WKhbN{dzQCi zk~<6Cz|gZ_AhP5f;6c+TsMXPWU}ZJcs(UFK!pQ1@({rh65fkGyM1v#D|9)B?KJTs< z+c#zTpPz!rVXxe&UY9Uapd|V-{U| zX~7eqig+;t76c`13n?G38$@-}TsfxF)@#TIl;BebtDdgjHq)0W1YueINB^32D{LII zvoZ+HBY)}8wZ^?XN_4evFK-f44ujA>(l-~LL6B{ry$kYL#!)8pd&fHcufH{Y+CG45 z8_LkUOUVEa^xDB^6NDkud+b8xGZ1TjJLrUF5>F~veF_(&0(O3qcp`=h5A=pUir&D- zNv)uRBiE^V?z7CRnDfqUnadC_vscn&NR!z$zfszrW$4Mr5b=yb=Xgi3x^m-2nvb+= zgYF<DfFnz@%2t8RQDA6~uYwwxec9lhM{v*L+CtGeHcVpZ&~YH#4U_}E^ZGS{z%uA1OtIDot$i0Y*Z%=thz3_my-k^^Yu0aI)d_cxt*`< zRRPnSDbys?FceO!cU$fBOuJ--2&FxK+F)d~!a;c{*`T?W@hY(y{7K1`gHuI+EJ}ad z@`9{7g#Bm-GFzsR5^J~H?D(*VTkJSAJTF%!FYKj?UXEi53LUI^IBkH=;GzpK+K1Hv zsA7zN=o}VoIqW_2nAJGanVX;QMawkK98ppW1l9exnaj-*6uS^DkEsT?y5m@NuiHQ+e(|6iOxWp_nOg&_mlNYhODJ&uD4 z-ONcQtnsewx);R==x4h?G@9IhIK&CFZy#V%O553#xHo0f%Fjz1|mhs|D4E zbvqt@1gqZm-3sR|$psoMKsM>1z{j36ooLUHAfq~EnlWo#poDMQq{!!%Nra|lsa;)% z6zhm4zUAL6pBC8R?BnX8#xHZmv`7Oz*T=<=g?Z_saG;oRngtZDc2cNh26RN)STYRa zjwy6XC6JCV)D7u|z=Cc~J%Y@sy2c_)^?5J)bav9h-d<25)4@fr42^09uREH@ctc7@ zpJf&7demqQa+g#Z)c6uHqyaA6XdjNoxFVE1X1L-C9;c`QtIlRSnU1(jsv{I#y351r z`l8#R(85`-bmajum`X0T*4FC;2Vg2TC8;;arAWoJ)`f!MyUI`jLTs3sWsawe$`K&V7`Ej1VuT<96gN<9c@J{S%q+qHi^0=`t>b2sx(SwP zm>6~%9J}lJlFpteN5!=01vzZX#jCaRY2A_=U`?{B6}(L>R{H5KO2e}q+lzJ4h8#?( z8>rz}&SdWS#*6Yd)a(|Y6TE5(nO8=;aY{=pbaU-&TfH#k6o zj&bZ477HjjKztheEE&BD09=tb#ac!L<30y>?v zmRN1ccp@qmX=T+n<~rF^ds|7Mo-owy(k<$mG*hTAY6j^-y0|yPeeWMZ317dxrBEX5 zn~CO+Z4K*{op>io&K;?ihrG(T!2vrm;EH)=kjif3@jm4omTL5|vpP0@{*;la7)~&o z4|`f0ReHy+>Bbj9iw?9B-<_WG-XTd!MSKwE#r>&JnPIg{B)d)nk*rX{f47~`ATZT& zbFfk$S~&0c!kd9!S698Bsi_v2)XH@*4IEk&V^HRZJI8TV(}YeM&PBaTCy6kDsdzH| zC~Jp$6CRS@z{g3gRA)lN@c(DISec1FNl+0|yq{3L>`4h;#!oW&;y<(LGBcJki;jNY zZJveP%_zK~>9{GVap5#v_I%cf|qW|HQV3iC_|#^!7x-lLR zxgFEg!M!nCK-M`?9Ddoo^fHLyx^3H2c%Wxn zwM0)^HVa_I+&HuX#;{mC3aNlqhw{0LjR+m5vqv2E*NoO`Vj3B&pyLal=Bk7b>q461 z&e~G#ti&AUC8mv_{rt4lxl=D|Pcu3&68B}yd!m7e|L*UjBgr!%Z3%=XSCsl^O|U4X z=MVG!qlqp*lKf)t<08+5=qFMec9U6#4ObbE)zjR!x4Xk@cb2=6l#|?1NBIC++BoR< z4`v8tatv@s_2LhQ14d@$4tR_SZ%Y#Na*~K{pjn}b(Uwkz4{Nda_~SeiT=aK$`wk`4v1Ts_n{%h-lx8iP`*N?kcM zK$dC_&cd5gD(TGM2~gwa>$@;#`3a*eoJegk4kJii7#-F$>KB2&@UT|IN1Aqltl)dDsR5@YZl?f-0OcxKsEdI0P@*6D%>20dK*%V1{Q{|3Hla9DF zZ=D)$V5*Y_p*q2Lh-1QQv=oYAP?C?_5-iggIYk=5C%Jnj4MHIof(X+96kZAMZh1w%;MluYO#naumbdLQ3_s-(Ot;M&0X`TQ`)yA7u4whOwEu#9hV zs9N9PjL`WVRNebXkd{#RyWSZltMDD|Z1=pStDAo;?`lwEoRm;3i|z+p+i-Z~gG7px zW1JAgs@K%d6B7i2B(ZyS6Y!8iT692oxoF{Lv3sIRNVN?a!Uo`vohGbePQ;BjHr;|`cVLo9Gh4+XSIVN=iH)GIfCDfW^Ql^WFvhAd+NP)CpJ5dBNy-#xeK^gN zt7wJ|*AN~7wcun76fVYx!HS1txbYq`bpdvgiy1fyunVDB8ah|z|D=Nsg8Nx2C^ zfzFRx9)Wv>Ds3!GvdU4>e5-p$4{+1NFTNGB)2Kk>%CvOHEaJkWh1Be_HtxN=lhmxp z5F;yhnvF7ng6=6!KhHf;teDZjPk(8qWH%`^DC1{Qsu}=uox0>A3Fh4|thy+2e*J&9 z{;}L`)^zKGWI;^v5vy3Ci_h@}gi}{bg6d6|W85I;3k*^25H)7Ri;s%~ zIu&0`D6Eqj);iXF-i_Tlcd*fu$&cB;#;P5o(_Y-2)^{9Z0kg#mT9rKxzhfBfkDK+w zSks|K>k@~#EvH8o}t&rRp-igfMFtNk1b^+lX!Dz)EX13nA$l9nwPe?S(5h(C}!` z%CnJGVlJ8@O?NnA#kd)VHnRg-BXmtfbhsllUDrrNJqI?O*gizHh&Ro?w~e|z!)n(q zw^yrB#=qHwsy^25sGYsg?V&)_X07L9bpM1c6J51Y6~%i^yDg(uQB`BG>HLHGx4h&T zsPXYj`rpzi-}Z4zC{y}xvGS-L$NUoJ3phzd@7*dPyV{ULV7 zGSv`k>o(vPi!yhI2Tm_qP`SJv4-ZeWtJT^h_KBc@q1ZAQbZ7{c6$(`|c+i~EDp=9L zX9XERCgn6>O~VX3TrGftff`?5cJeSh+O$f4pDQ`A>G*!0ONTFaa53Xp3*6;DPZcOO zlG0AuiLK7iQfqY#<%Z5JOyVQ12-IZcN0RT@NPf;zN^H-ue( z3E7M3FC`{P6ub?NxIEGpJtmmSn-?eM@Q_G7qiJ(>NL*F9GAYf1`=R7yjHY;w6Hj;+c&$$)F7t*<`CGyJr zQJ+NyH|mPB{?#LnRrrS0XWoVv!;TdgTR~i7Ki}W29$egwq{W=Se_;*z8guSgQA$%C z7_TgE>ri^WA5-8JgCCdc??cT1l1>fI?%^_tKOziuO?u?IoYL}rp(YsTf(?~FR7RM> zOaL2V3PVo{Z4AaqJ}s#36MHu&9qON;(5=p)7Q@N8_RXs%_# zNVM2*Oc;eMH9=({Lh8jPpbYdnWuuLDYR;ZwnMNLnXvDbiI6RL@fqV!o%mXNp@JkV* zh7}7+ToeM7@V$M{^pK_Es04{|g{i)4xUILpTvMI%UY~n=pzG=~yt;Ny2G5H9mB-oP6;08O}$v zDNyV;Zm?|u;f4W?E&Tx!{?*z3wjN%=Es#hGy4(DpjJ^8Ggg7}Y(`YYRV%n+D`(GmV zQS_l`>ggy!mX!JgjF^Psr9O;^d5xBLc{mmyY3AWIO^z2L^YEqZYM<{_0ITxTm{9?+ zi}jDqckU-IT03lo;9M`(G&xS?*Tlj}J<9}TSnMa>u*W@R2EuYLHUVUy*U{dv7H6ZP zSf-H&VtPtrr*wx|5C!rfl!`_(;74t6wjPWkPG7aNZrvc2o+0VDj-(Q7ydm}4v z_y71j!<*9#yY8{wfAfB|`B|cn01&zJUfMJLqEnF28sebIX2A-H!!N-d$x6YZcN99C zbwS?f6hkkEgl7hxz0*bp#y^gWT_7|OaQXfr(WmJ;Z!1Nig_`Y&Dj@8D8Oxg;77OD> zI5{ezrAG#`&SpDS=`qdazklNNR-45}Q1TaFMeZ)J!U1c@WCQeOH?Mm>24E*f2I+UN z9HTR7ODH9>R$_kFfk=?m7*T$?7&SqO(VI&e0n&);#_X1gQva;ArjxdCk!%0*0XInr z`D*{TxYLs?_t|peH@40b0DbAYhtffAr9@8}4QgYcOHG-0&@1C}YXW9XPx`H}X zVi2X&Ajs4PuZY}fo6yTia)t6uOM2?NNf5e6Ef_(_k1~mWxw$*Sn7T#*c%bLjLY_iK zn3;tP<=aO0?R>wmoy8Cy02;?38~{qZiSQac&>MuOdS5AixIK5fxKojKg9*@yjCF5B z>~d};DJI$20J7`2)@}eQSN(0LFQrf-?5sCa#_#?t^J>aM5MC{I_q29ueT&7T_2BLV zAd!^Ui>FdCLf+=^K+nV@)8n{k{opHbf_J6rGzj5*-JdhIJ-C>hb(ZScfL7d&A=(g z9V@Xym5$bvj~%Ft3GGu}sExu)EdBZA;{46N?DUWq*Hf$n$ExxF_~Vo_mXzE0{nZO> zR8nr^kJm4-QAvpnQ&7dyyVXL6oG+#)M0^_N@7CiSuZ%<+Idok|C1X5CFr;}?4g(*D zUM3ioH?(vrdBsj)C04%Jaxg4$jy14SOTwg;${JXyWnt1vWd$n|PioOjxychbr;@$W zSekaxw!Tx0h{e{>S{5v5NINwVoFxQZZCy-sO?VX@XibEvszM3+gBHt#>=;3t3*SW0 z2Jbb0e>JVCc(3`#>uF8JgJx|JTG=%5tZ2~c+6tpnuwH}Oh}~|k>&qty0g{?Jp=$|= zt|nRtp)a*KI2M-dR*N}ni8Aig>zfWiv(#VEx6_DZK30r~eY@SFQ zjaNoo{t0k3lVk8yT8glJH=U$h%~bR4{NXQIbXQ$V zAkV+X($lw}KYvU$DwycZZm!2V1ok@TUq4^#>-Grk(H8E^-8@&3y^pRsqbVGHSK2-sC^bnogugf%#Q2<*o(hVd6+CPjge@tzpt^D ze3+hPpF;5U>uz~i3@d6weRv`tRn>+jTI0&fY62&E!|KXvNquGcsKQn-32B%Etd!JQ zmQPe#iznfgdMPg&V?0C3NPkpuC168JY>cZeYiD(rfpO(Ea1tI>(P32k`YXl`7-Q>1 zS#Gnhg{;{s%rMMGNi1un8EcnX*K|woj;P?hw~MMrukdO9ez({^YO^!DeOx@vt5%MZ z)&pHfSkKbv)Kd70KIv;ne)P}*;Bo})SjQH#9KD*E52gAV>Z3FykYnYwSYBXk6PjXH zLpGz<4;Cq8gc$0U&jjWjeT;iV=BwElQKrBzU`C8cSoW?-);^FKp91NV9pk&~$*Hrwk>M340P z_}y&Ynx3*{c#)eBAdzoZed%aW#&;9v6NEA321w3F`!%hMk`kO=S<9_;6V6+f_r=aG zXNZ$Y4a>qQNWvZ`k?0hBs5wj^tDdBfz&7HgFR_W(lbjz~x3d^mEY%ptTJ^Gcdu$l< zjOM(sV>TOI8Le3fH$qwT1aMYaG>({sM|#638RaA|89kAe9Vhzm`>R1b0rcF-c-HSv zBfY73s&XFB-(Q`Mr{_c;{&+ozCxD(i8PEEKY@|08PgTz2`N!+i@$?+$1A3SUCL=QNq5UI>)&(?l{# zf(OlsBno}(cVdQO@sOblt#WNDH_*oQKaAgpL{t6979 zAoP!;IOv*`gguHwQ3<&UAN>eDRLl;yA=d6W2>s(I4!SlbVUOZaRQfphezlK-$7_gv zCze80h!(bu?FBO+H)9tG%DL@)n!?<)cRrHxZj7wfuMbo;P#KqTU z=Vf1A$s(kIHH=GFV?}>DE_t05%@c9)wYDG1;t1Y0)-7f3B&+U8fa?C)9e1_0BHih> z`#;Vmblq=O%ZK&i&RunRHG%=~28BRYM$Htbr z1Fi?al|>iSlQzpnMvTp3Ps>cOH}^1KuD>o*;N$J%^O|lQpeWNBFD6A3Of>$v z+#PVw?($#A<<0tHy+4GVNGE9^T+Vmj>pdQC_E)RYPTm%bAa-8+UiT|eo}~q z_>iWq2YNujmL1%bEEo5m7C1b>6v+gG27g#31v=iP6-+Nyo{6v7BsD?@a#J2SlwcIF zsrhtF$l~sPk8|(bwj?0kz?54NXNvt?aF64 zi1p!gM442CpF56^wq`jdUB*@5Mycc;`@+?sBuXbX0@~y&k6IW8pb=Bv^`=>BSXhrB zPqwWd7{z(G7Mq-1%8s z_#9)Yo;;c;L`e8Yx_yw34G8vU9+C2ev&k2G+MaN+zFVTvMK4=E9y9LB^uMDaTr3tk zEUq^D{Svb*C`kv?2~t&)mDrJBbcZ?$Fjp#2@2is+Cf4d8-xlb&4phzQrj(Lx6NE9; zS~-f(Ifj#+d1~<(JZ@2Vksyhq0b)MY8a|iA`qzZaLE)96*V~K`^W{c!{@H8vpy<#k zPLy+8FHky=e069-5yNp334wK~HIWt5{AkuKkz#^YEoxauIu2tJEsTA0R!T04^5U0G zv;;L;Zd#w*61s>ZZ(y6rf>n+4Nq+)rv{HZ0&w@Wikox1WX1VPriHT#k4^;kpoaKq* zb=k2H79a%^LBB&ykFLB+b2jB*2ciPByZr8ln!(r4h%R>XCci8buZ*b zsQ_;dSgQB!c&KL!RHHqiLTu^+S8wtclbAID^;(znuADQUHnfq}x=%iFX-qCQpEeka zkgp||ypawqT3dR7>^sX4zadMlVAOl_h+bp9diMjv93M7~i5*(BxXV5n_K;<*papqR z$N!RX0^3C*j{2ksDW7_mH@9?#{n_K<_Pb33tvCi9X!)+V*VBHuAi8pQRC=ap)`PZ; z_JpMYk!>}Mmihi073kkn3}KBchG{Tc2xB_i<@ca*C!E1nuQYU_>n>UbY&xL}H9oUe zfUTY}*J~Nj=;WQJ1Z1$L;X0QXiUXU@$qtmm%UR8e_ECc_lx<|3-hy*8#z9RuQg4Hk z)7EGgzMxG@t8LnmvS!a{+9m6fu9Q^+9P~nG+B9l!YDB&}^+2#2ddrxM>{Q^;2=vd@ z<{OSZ{)tgAUK@0SX@-ytGc(kDZgx;`Bl`i!;*45lNay@5Jpmvpjf0&fh*HE<=ANjl z4R7)}#_5_TL<+HRm=q&a`awa1Vy`(P# z=-~V5rK=Y(JC2?5jrxpv4Zc{KGF@w;(`l&JlH)hu>~WGG-qmnMW}6dx0WnbMz|N8e zsS`ZcrG%hcKh?Y_3EP*Qj_&Qg$9<@e8f2-ME@2$O>*D>|WaZmucg*OEsGdYG!&9zU z+-u@XF*aQdGuObX2j6MtYQ?AG(I9$N$DJkm8N+B(H9yvoZqq69j@ia$kxQepBGVBW zULnMe>^{ndRsV*@zhS-e@&z6l|FJL+iTZ*%GeJ~u3&qqKQ`kcFndT-Ir9`9!*4T0^ zZ^e|wQ*I5YFR|BUhd7s8?DF9XE4!BaM>M=Q8;MGqYzfW#RtVaroHiAhskPHq3d3t- zT?{5=erPj#D(xre-tL$6R#GcXqJ~zjavfHrtGM#$aN^@O(u!1B?G5AQHUEV=wbw?2 zafi;>_1aFRz4jfI7~UAT*y%Z;S6=8I^@PeGl*f1L2P%W9xrk*N-niHJ`WrO(cw}VW zfx7$|PrMnYQ#98yAthQ8)(*#Gqv&DJB)-|%U;;oPIMIh88A#8zzIZ!{A44*8@#XIJ zh^c;co8GRk=RbMOt)=n~OGYMG@Q+6(A2)Rmv5_ds-z$wpYPdy4jLm9=88Lpg8o7CahmuEF>!}B&|g=)j_W7br^*oHLUd>s~WnzEDgkisg6q&4#z5$ zwCUxYcTUTsft61xu@1U@thdP9<^)5G@On~`lEy$LnIq6~jW?dlo-`4)pLBe8Yts`< zthc_Gl=v&D_b4R{bw9Wu6WtF~a^Xz^`Pij|qPw`Cruyn<1j9%SWh7@v=;*Y0*(kQgIhU=xGSR)8jV_&71Q-mCQ=$V? z9UuFkqw#LyKE@G4C>MK7=d7qX2?NUrfLjiiLrvzz0CGg1DdGcsq-mm)YI2MkLL;cR zxN{NTZPG9u?!q)k8m7acc{%^CgVfONbx6-PAp|zZhvpPeh)fKs1h&d=W1~t6%DEJ@ zi_9`i(@qwc!L50H3SlsVJ;b$R_2nx>zlRWJ6dJ=lq>rFFUW$1OUrK4ys(q!(D%$8|du3U>+Et9a7%PCqv_V^*P7sHYjv^!7|pc9#(y^${b0aJL`hkgHy zH_h|6rcj}uZBh!kJzHZ=TIZqe9^Dj_KI-ffrlkJd&9^iM<*P^!(Cis=?Hb`A^pCRn zp}cGRFFDOnM`||Yg>ZyzVS$tV6cPXzhIpH@6>9unwEBnIjBn;WM3WtFjux$2 zwCRR)Vic;pGBMWT6-OD{VOE1C47fFn_My=*tMLi9rV)}TRLJp>ob*zc@fEUseD0;w z8QP-o0cgc}fkG5wX@aQx)W!MRfNEEk&yMmdpjC@bL9XlYqqIKL_#h?-%N(PtyX})E zJ53rLr&^#N)OXx$uo?j$vi33njlqs+)sB8NbIaMZ*m|()%og+AEqZ(!6?C=3gGOh4 zmzCWaR;{w!Fb`Bo`_-B16*|*Eu)0?}oaBLH%VSDFt3sYXDv_*F!KS0%O+tR@0{_aj_#9-R|Pl9BWePXwmWA;_p)$N)vrriGppS@dy!#O^?}qX=yY0D$7-GJX5HqcYpVq1 zgypPgZ#7DGhda#~Hsxcto4<_22JHz=ce!8(=De$t0$>?#<3P;kAi8ny6Ebd$#QxNv4fW4tGca!7CA;D>UCOzBi_OTGH8?= z;@GZK#p(qeha1g)P*hx3z;L;Eb_pkil1EQP6}-){?`?@la$~U@XcY@)?MjgxztKHC z-*C&i^yO(Oz1P*89}M-h-THe9$ZE)6s$q{#=X7 z69c3l3!(>zfh5jf?gJp)(C`*QKYv8_?EF!EZato<{9>Q^1`qbH=KK9mylomrOb97|J+E4lQD_Xg zNCPW*7eXwA>)wSRrBYhb2g95$=^|W1A^=yoVT*aHqmbiE*ePG3#@7Mg{j#owqLNR= zrVjTA3mViSc5_%&r=nHMje|n2ILvAc=7A6lR19c!@=O6g<_JW|JdoHfK(#9~J;=W# zl^hl{YC41%r!z+g`eMI7E>JDF{hF`3EbQp`PKTU6DrH^;*xbvHN$ zAWp!;0a}Sa8++Wn!h67EJhk1HhW%3DD!M#6qA6YQwA5$rCV!$1;BEvrwsz2TuS@Z=7>Rx z`yN7U2N}M;g&1cFy&}ri7AsJzxbZS~H4@6IlhrNxDBvotJZb_|IdCoH_-+pYn>FuY z^xP_Xh>Zc%qE=vf^X~Svv9VIaEy2t$hpA|1 zB0)Y9&5bTnC==p9FLO83Bt!k*Y@dF?K^q4rD)D$&VL$#+KicUN{;#%=^Y@s$EAg@t z{N62Y@VW1}TVVaten}&f#!E2Lz|p95dbOt-;lt`J+GriG=o9`g5qSx$hGAvII6TdD z^GSWgkJVy*=i<;L4=XzCi$2O#qgBu_9cx($e&blOT~p(yBK3*ML=hDnQwf`(Dx!j) zFSdtAZ(2kJ=k-?}7g51y_{Mm0|M5MJgNmhd2v<@J&yxBZd$Dj=gm()k!-}-9uILkEJ&7p@>2dpfwfwcH zuaHh84`^xm4)6asH$iQmjo9;EI zscmoN#>$kTU098&kgAw?XpUVE(j*0S`Nn9;H~wvp7%U1R!ozY;V}}-ad9H{YC_n>- zj$|S5ck`dzznbVak>KuNU?-A?(lvVvRVbWLb|}~)dRV=?dsw_*&2_rS2-?qBJXJ^K zjoE6La;TojV5=rrc~rSg6Ro^Lu?VqSdq=-n;syec@-vVhbJQBl9{z{XF*3(6PB#ks zT_0PU*(_7LX`V7G+r>AdVst z3-ntL5w;Tf%{lIsi^$+!o$*)j?>&x8{x-k;9!hi&gST8`OKx?rJVH)qK{PQxLArTp z3BnH|YuQ0UN`^cxOA^Fv9wt|Kj4(+!xF1&TDQZx z4q-OVE@%h6S_%I~nS8hY;Zv*148y0CFf?X(Lh1HdS!HSij4l+B8AcZh7$y`Rq1f_> zP(-FSJ}!PNR+y~DbP)2g3$TN8z0M7ok2B#w?9caaA* z&UZ#akd*Ht4;m$mHEx{nE!amKTA(u0T`#^a@61$7lMuQ;m@UCZfS;TBolddW#CAgA z;MHum{MB-iC@QlIlN6P~>47Kng+WwUKtCUrIH$`5FV7Dv^eASeDo-M9;gFOJibZ7xONA_uA3)Py!7=wn;82wE;%nPnLNs}|+Kr^QcKq4gOEZIxe{$+#+LSaV!K zigo$joT`F`b(%b{Q;5ykDyW*K+f&el*%G>dR8RG17bd52L0i*V1y$3u)C#sRwGYy< zurO5mu=>0^Jn9w`eR@DQzTe+GVmZS@dlRrSFle3xMbSjqh#GE(W=fE8S$#78TUoI& zqeJ;yk~5>oETbiDV^Hey)6H(a-eWm^Fw?|=7mO*d+WX(lrhO6M5Lf~$G=QA7UD;Mb zzj=u0s*IIY#^?L{eZ9dYO6#*W*P6A(l!}SBm8~ANf;I`G^5WlfoSd0bk*%E~VbnFm z2&1&axLakj!-}$h)sG>~Ko7wZUOb~SO(eK;t;U>AFI?f2_Crw@Zgd)~<~1I?+bVci zUC*%<2?ulTO`B|Gj?t>Ep-}y6kFD5QnPX&DxOZ(&JmBdh-FTW@00-3d9T9;FWa;udx30}-k}kiy zbot#hQ%23j$b2cN6#iOZo|4p+uLg~iqzivNFpSKKPZ#qgq3OAFp$`aMd6BOQO(RJc z{<>fonH4E7*ybK)p{|<{gzkf!Y7tL&z5=1m|&nx8OITW}u0H%V$(K^KWI9;oh1Hqs;%8 zCo@iOl7|)E*W$#o5m~%tS0hj^)Tfp@Mr85C0+*3WZw1AOj0IC<8o~L{3Qr|a32G0C z4_ua%VY(tCY8LF2b|Y9H%qv7CP)TVIy$`QkI=t%B0U~1|NrzWle`*+gI=r&!@XA!D zrekAax*jD!)O@fVPa`-BeR<$sr?O3RVPz(aJ{`Ensq7>jq`#?*J{`EXX?UL()B!ag zOjn~y+|#s&-h%WqmC>gI_c9GnEV%Mux|phD%Y*G;8o|Y)PY3Q@Dmy6;@&#KN`X-|t zS(I~%(KKsq$iU#|inwUXjI3fVqXCuJ(XXhb<(#HtZCL!w_UM<>5`kjQLqMf&(yyqc zxd6<0$j@redq_}8`S`IJ38Es_na&BvomDU6kC++Fe0St6K#cPikGY$|%^pMbjF<7EfCL6G5XH z7+N(fy%W&B>y7*B3n73;z@`59YP(NQU4yj=V=*OVH;Pg$sfT^}g^x^^%K>5=yo z^(-f@ypQu|I&&bJWU|AcA!}4RvKKQ?_93#qUGtY?km4g>xq`E^-b0Rmepd1~O66Hx zz>!*q12#|6$>y4IV_Xny=ehO!%6d5@eA1iT9@-qSLU8ahhI^$K)|bZ3KoB#n^rcEwsv`e1J!?j>#u&~=L9zIO!OG_y-*SWz&l|04Qw+f#>4spshRcO5*OiDk z@SGowr{1tVe|*0&pg<=|tO{4{N))}5Didq+K1=+ zAS9*uH@X@6{^L^+j-;onG3P56h6mWb6*=1; z5H4;d*dFLsTW{5f1J7HmyyB;9aOrc+$=RZjIFnvpTZ7f&ZuQ_Qzmb%>{&seA{TIcB z8rjm`dYOCr<8{V?w6ZR7^66t;;@pX&pf^|ySexcsRn=#id+JRQ$J+U_e#*UTK($y! zy;%#r#ik@W3jLp`By}P)2zdj^8P*A!vnISu2AWt)yrm67X8%|Mh=^C|b;KqW*6eUc zM(2lH{X*KyMMB|zTu|WBlWX`JT>Zm2}7T-X(Uuypw4AmH;2G zW^dlVdvksL=6_=IkwTfU)~o>-#lC47p#%9au-4v0P1Ee8P$nD(Q`(}aQ`-{Fm5{Ct zA8HPRth!*($|a0ZeKik4dh7`*F=)Nx#>+m>-yWAM8aD3RcKIOuJeQSmxXOTfog1_{ zGIVxZJ5RCD8%p~_uSQtZx7?xmEh(5|ReH6&r6qPFr3g1YIk@!sJuMxLL6yNw0dt*U zh}Li=!3GUYZ#H$uuE(}o=*p&r?wdY zcZOw_B~IRt2!LCsK>r_S@3!66l4A?jC!NZwuFigxB{{9OWvL{2yL-RnphQ|`nIg4$ zv90sHT)oMT3gXdJ$xi;h~N{Oi|UU1k*+5wFp6FM#Kw3%f_hJTb0_u|I8|^yF!j+1KrUdn1pI zwDufQ*$0brsmU_LWOs{spTHt?9PFRp`RmS8s1w!<)p+C%dql`!C73Sebd%IBQqOXU z)K~}Efu{3iJ$s_JyR(85FsFf9vrC&VYnH;5cB~LY=&$p=a^J!!omNWUR0Ve=CybnT zZ#Y|Px0L5tl#bXW2b1OxTIZb%jJrkZ$0%-j!PP)5?v_l@IvvHZDugcBQEa^6tZ<5Z zxHNDyyo7d&*16r-H|XV^B=!%6@E>P)S7)Ce+L2f%ZUr`UNB}R2Bd-ieWU28w+VUE1 zq}7RAL29;)t~}R9Kc%+Iu~eEmVfKKc_C0&lfpqzxKXYw2$_M?iwxoRE&%4bA2S+zA z=h{q1nfpR5qqTo4_1_D<;H44zPfVL=OjIAx+zEw7eRQSAd85pK=>$-e`7fO#j57cA z_ueO0fA{{lOKd>qY}_R_Aae{9+uj)xI?k6Yz$6TuB*RBPbDG5T)iTO=Q zn%~NIi2f>bb`Z}s(v%@_uU|gutIXT*5w8r3cZ!9O-wLDTH~mU%l>Am0F)ulx^9f~} zE;yQ(OeG1B<|X4K-k}Tzw?aOm50d%(Lmwo23w4-$irm*@kmHl((aM|I!4F>?&k2#Z zIe&Y<{9QvVpKQzWr$q-q&B?}y`B4~}8_So^i&a!DgnU>CB^Sz<&x0m0eV&i?P7C-m(!=pQBk^V07Poe^Edh#ToM86eO~B2CHBcbuy*g;-19dP zFoxZ8-X;2koN|=qJ@ZJAI+m|Rl>?b$T=+bx6cTz)$d^VcIa9xV-gGi&$LCLDa1OOE z7r9R6ZMY~l2Io}$@_E(CoDE+A7$evSc~&VU*Xn1;w_fO63Uz4ZgfLTP?Gm!&;Hr`Y zyX0cy%tHq(ioKtRXOlDuK%&J{sBp`7L41` z@+(xyVA6L%v;wYi2Uvxb6N-Q^N(qn;iYFKUPFQVl*Ryp;`=jJ5I2*FRiK>l|`3o-j zpnUjTU?QjQb3nl*&&o&0_9m+OA=4M!>&GlF1kLgC6*GL5RX1XGSB4K|% ze?rzR`Bt7FuKq0F#O9aEWjo}P8*4RkV^X$t%f-FiB$PQHFez`>y=REYJ|F0o_tu9+ zYAh^?J=J?PJ23=T|88Z`QpL%P;ftr>Qaa^#ESyee`bd}R*+P)kt9*pE%gM}wFPMTu zQc+hd3(C2*{C0)XB&O?&q@dDkD!)5jsSgDW#j%Rab|{R3mtK>8xL#8gIsGnRrOi=t z=e^S2T>ULc*(xI!_$#EWN(^mMmT{IL)2rtE(vDO+Xa z0)K^+Rf(ZZ$}(;#D_JYL4z;#O!ptH{~+DO*fR*#4fRY?YA({t79p5<{Dm zW!zF$zCy~Hs9K0AD+Enh{t79p64MWLwV+a0^Y4&$Dly%Vc7nRNiD}0$iA+1D9pjpI z<-@0)iJZPKl?9iUq}eTRd;Na|-v=!0Z_G+TN`ICEUvNBRKIwuO15>=a|% zccn@{Ds-Ys4+`7As|EUiZS)ih6)(#%fKBM5}uJXhA#txLtfV%m6(1=SwSU!c@^4==N?b^PMSjPWWd%)H{)j1SB6B;YY{8w+W6Bm>Qnq|_p0|_@rTp&iTF(F8 z4BhUEfczBa)NDi-hI3^$jmJgUmLa1o1iIcX2}>yoIpU+QO1!Xge3mN=sZGj9%yeE@ zZG<6?QjirLBV;_Kl$=*Seb%d@YQtwf#W@Z2!)3oJa{4X}73UmSK71CeqN?vJAH}_X z$fSi(a%uSr+0eM578xfNj3h6sji}`A5&d$uivCP6RfQBSCi@{ zt8O4G_vOimHB0Rl&V}ld4RxROPQGRZUjiXi~K>N~)Hxka)>}&)(c^c8w69|BvkxE+6Z7 zkN#M8Wg3eVultF;#Qny8{l-gBAz|UrrNWWGl7h-cGIwYxQhPY))$L}PnnPuiFc-63 zT{q?fYgOn@4bBex=F~PKrOL|5L2NMRqsng&n*+TKkIM*WxR-3BZ$FK3Ahfyiu*M_h z&tLY-)pGylAIKQvK(O_4i3c~%zvHCI);2IEKo!ZME()r=qbvzN#xsO(l_>E%#xvyW zay_?E^#nn-jN`;!%PFpo@dUwvl;3vLdW??{JzYA+u_YUaEM`wn<+P7GikLzW-feJN z1J`Znsj?t)AL@7z;e)eCW5CHg!O0%e47&aao(98<882EANTmrM?l zZHnN_+|yHYQWtS65^;x$GG(!@Z?Rm_xMjAJS z4!~SIa;WYMZS>sc&$PnKV$g5c;3>uKh$6ogaTQx z7hCp^Mypuv(DO}lYOoQWZ*T>~(}G|7GjmP^9PKVwdKESaP(HRp+tG1fG%oL4;1+j2 zrfy|vnxiNk)U6J%Q5GqV+Ya{R(S~ETs*&swON50(l|Yj{nC9fdT;Xo`gy_V=6QA*G^m1X!%~bqq!)zth$W^Tj zNGE4_?Y0K4T8c2cJjUFX8n7FL*;;2%1>ug%=2$1aqHF4X9ROFnMZ=3Gy7^CdPtQhb zowyZ{wu9^xdWf^;1ej!)F1Jd2sGeH|e&e2vVr(Tyx#Qhsv-KwX0C*>9irrD;%v z*?m?j5{D+qB_suydwYMr!dtuEK@~BM{_1)@+iC;lc`a1Q59?~U6d zV6WR&M@DEFLNZ*|&$qx;qgCW_7a>)NW21g*NE2HIkxjJgE8PoMzv&mA%v;iA$KB#( zvqxTf`i}e5sB4aHS&gG(JXqR&K+2=KLw2Dy)9&<4ArfK$_U|zzyzG2Kw*a(lhL;iJ z>4)Ue%ik#2YrD56h0Zr6M}3fil*L&iHXct3l&X^E2dF?_;aM_dqFRuP@+3D}Br~ns ztj@sshR^e#9roYRLY0fu?$H5WqVsENQ=DQ!a_&1kwEV-Kxk#ZR9_r{zl>;#_1kno2Jg6lXX=GFxqQt9`W> z(JFUk%TD8u&?=Y8`aaR9h+|_IgEngrZFsfPp;b%k**5elugrTi<(p>|>MlttLTt={ z>`>&nCBgjX%+Wi@_>>p>!I-vk0VJK>;RThbb!Tc8P9WmL_WogmtMc_ahepVs*t+U$ zI&ag35*|@@Ozj$j#E+P2jPe0#L`*emN=N%uevWXVQ|Nko%53G#4CT%-gB;Am?iIIQ zyI|Ky&M;{FTH;DA--k8p9df>Tz@yODix+hDU3Vl1jYFMoON~NdnKABg18QPN#o*xr z2#KOB;&WOK?gW)t){EhVx~gpo3FDa%|Bq96yKF9 z4P#A|0o>_HjW*O%SY`*#&{*hfTJapk6ndalE=+3N&-d16WR}W=!C5IY769Q=y>T}G zx!f&2Y*u)FLsN~-c3{;xM^D4@ijhSsEE)`Cp73&E;@)*ULH=}(iw!rsWv%wuYzKm;KfJVFRDP-tV8?3S0tEWkbZW(!^H@6^kiEBUoyjC{Gn$5YdO+ zPzt9Vp~}E0*@s4oHP=*f4oAJvsZ1dV%aW6ndw;`lj(s>gKfnCcUaHVan{S&8?&VHW z`V1wE3DAo&!^I3B$9MDPt+e^hOqMxv$F%yq_icqTerDb@$j|St9b zn2pUQk{wwQZ@I>$)c!fsb<;?l@aTt&^DeHv$m7+R zV^I8-PmRG6SBY6b-lOFl-k54!6&iV?V z6}P-#ols>#*&l`v+=XVkH)d1SIk>CY3g&2ez-cn z`P}8uD2$wHGO)YmYA1xL%R*hPbYSmoqD%2KSzGI*>vdhw)ykl15Ew{DX#J{I26s*@MF7cmev~KwL_jHN>R+9T& z%G0KL4Egc#-UsErbfCUX-k!3xVeNp6?8-Y&g4(gvMn zW{hH{+VW~!LUv*mlKJa#&%$0%!H$;}ZV3=vpV@K{bS*iX1SMeP9|YFlhyx0o1rTSt!bgh7|*-+be#$r=W@ z=;fXni1tQ@|I{#9{z)*_DD#odf0Ap-Focf^)st&%U8npxgGzDnEy{o`0G>E_AoUF&1!~11K-2{ITTS`PJJ!1U@gm zOZD9sn+#MPs(1z(0RkV3*q3V@kLN3ZF88_*C_}0Yo7wGJ*H$Xu$Qjqm9WGj)?GL)J zlp!YLS1#(wm0nJggC3eFANWI09n@&#uOh|buHQk?O6hx0G8?%tll)4Hsa9SK3mf8Q z*w`|c$#ds3p5PCdXpHJN7;hl(?G=ZjWp#ufadONc_PlzIsFmJfH!{~!b$KL++=p(N2_pJ{hc%Z)D-B@#I^s%EC)TY9 z`{!$1>u&c=bYgjzqFHxpgm=6x^chtQ-j`V5z>aO*$&mZc@7jS}5cv-q(=IhDmZU7fV{-ZNfMsLcoQCG<{y}XljCd~$r`-gvAUtU~&x$a`E2YPNb-LX5{ zO>71Q#i9!}2Bl<<&?xt@92{Yw=MKW4@g7WA%xUZo(CCV34V>~gRh)HYvxGayP(TZV zY65K4!ST6LZK$s%7*)II$f_=x>9l(WX>Vyu!^P%_8hxh{#4Yb;-L1+_QVgUZB1-Vx zI^~ea9#A1RUfHm0o%#fTh`Mm-y{+6X1@6q1L>Uuu-7E$YCmaoSuJGyrZ?29mN3rKQ zb@QjO9SEHpY*{+ny{(^0Vj_`3aBGYoWfp6kCO-a2QH6yQH;XsI`03M!EY)O-ygYX~ zjX;1dd5Lm79%Ojle?QxG#b-o-E^;Fs715rXm&o)N^)7u+p_SI}e|)*R(20yzTEE>Z zBz#bdJJ~qo@D+QoWuqPZP|_;O{FgTUQN~|Q8!y==Mciq_?s%^X^abF%^VJ3$k}%I! z{C49c<@d*hRyt0ApInzj)hbdvC^Jlwn>%>{-J?~aC>}FBRDTIBvYR{V^LuUm79?sC zrg|vLP_r%H5{)-^jhF?|2pG-=1`z)3JJMH?=q|VW!)*0_HM70py&T6l7u#o!ea)yr zbaO|gBgC)?D)#P8=EN)km1BT#eQXhhzHjb$6h`B24+r7R-Q8l1x9~inN^b6G$P)Z$ z0$_P;H)7_+*akymn|@}o*~($%`(ckG*fz$h0$_U_WwIzLUsh7SecLYL3%X8H%F6wJ zf8xSIxkGhwF?zP$a&A+g3vP89g(vPRj>f4JZf)kXVD?8=y1m)+e-Dltg<>%qW zj<$G-{9facG@aq_68b>hIWvPx`U=ZC8reC;fO{?7JXT88MbfKt1+ezx9_!eEp_h zFF1ee4owCTeW22uBig)K6FJ-)FZkDgBYcM~&s#gu=q2*I57W-VNsM3Af;AqfGSBc{ zP{!APn?Jtt<7OIw`mMiI&wX3ToIgI16Z6&TpS0_KwS3%ok+x$O@6J)&9=30^WjItN z333A&YL5ZCMNlSqM>o3jbX=!o>{hDZmutPu+Dr6zsHq!a{KN*+#wF1uxiatfR+@qc zAG}T3GQJa(pIF4Rqd7t3KaeeTmvSd20dm!j*3@FOL~+a0T+qu~iROx4PLjjw2O2S{ zR$V>Z$iWO-2tF>+oRj}c(5(it+e@e(cqQOC~dvK zMM4xeJQoF?w`=YBh9VF(M&?%Vk!NXZtzzxap}uMKJ=jGx}UswwW(Z||O$ zI$KR$rQQ%R@i0%{Rzglj4CK>=p0})#8O1Hn``_zJ2)x9HAqs10_w9lkq+|<6Ftnm5vp`W;IH5~HN+c*)+ji_99QG)3!Eb?J_vW=59~Hk9Bw?ri5PIVi5vG1osMzOr-kqH3#I2z5gz1|P zOwu^-C>W~7_shk~^$8K3R1=D{VMR|FP5oqo=p`qv_V6@r^c37ASzz?; zf#O}mXYUpZi=E}{ISHRh8&>0<(#%B_G;UULwMSvG!bfom63GIicMlZr8V4mY!}S`h zqQrJ(Ol9KI`@@cpsRw>v%)`(Wb!fWmmX@v1J`b#y{U-}*WRi&_Xjrw0s;JHNbLU2Cwp2YjVTq{yV z9(TSm0{g|joKKvLY#itXfZ2=lMHLAy-b6<%a-0}EHWF)pNH2bf!r+k>^7ehqt3SAJXuk5@LoWEbF`MU*z-L|r*hOwu^-ecV)8V0c%JA}-pecg+c5hmS^QlQ=EVbDhHtnO$#W&I=u) zwq0nM!?{I%wT{W$jbN>5sr7iD8Lla=xwA_A+_J8Rf>)-NRZ?b_&!2emhpwHx!$f?s z*GkWyFl~6ntFgwY5}=#!yeI07ch};sv)cm}{=&@;lN_?pc)$b|vz7QDl8?r3uqG0R zHtLK+<``eGIgmq81F428bpC|R_=|0H(235UcyfU*Re79Ylj`QM$9_Yzn1bg|?`OE} zq>Y0hteohyk~F-s!P#G`@#IA3Pdo^~ip4E19@0G7O8J{Md&n+HTI_%Kq%RH+z(kB? zXd3q3?zh3AXxNjcZD8k}MI#L!g8!Tu;)x~N1HPDJy<|CeorD}af2tdyIpH8#C-b z1Ui`1@AIeY`6|>9`fZ3#8(T06!{p55Y2OIU>ExqVm_A+s^jS1zTJ0RN#s=$)M+iTL=iI-0wO9EVm{SDv_~_E- zA0?hY{khm~LLf|V{-X6aS|befrLn9x|Bm31Ud8KIC)kOm%Bd3PFeolb=gmwkCIeYZaFO5NW`RH@pPD;bWRH-M;vpT)iBUFY9fI!fMIM z!0-*Eed-TOT_@0=vfs3tWkW@%9L}@ofHy1?U;aLO`s;udJ?a==V|`7Jx+Xv``m)~5 zzG>Avgblbw#Y;Q0FMmIw4#p~M4V`);qjdWB-!TU{A1fPfnwSgawQ+O#Q@!u*2&sd` z`ji33sM@GNup1Fsa4-FQO%V+_j)OIXv95G5e$|=Slc=YV`bh2kRUHR;Z1V(5USHyj zwqjDYDEXs}qnu=Z5V*8bM~rl=Y6b0Z$fcbxI>K1@Y=80k^aKegG)Q%(}8+oLl z1Fhp;5PipkCAw}Dhem2*cln_D<^*oFc)PJ3BaJYA>Mr|M8o&Re^99-e56YLtSM*Jd z(SIK{wxl{j2l9uRZq}b5^w5+VVW|e%z>Vu=PID?s=Nqh&x3G)!^0#bbiySWl12-41 z53gM!*YvlDK7k5*av;hIA&#$dr5&oxNfKj=G@aM<`IJu8mglF_OF-ch3 zX|-rEYw_|gs-5UgQ}dkUh}B1vY+-fvuymA<_->#}TC%@>A@3f%Uv6KhnJjb2)%Fw% zR&X!=dj4nK5gtUBziH!4Eg4;*u_QUh6H6f*kxI$8`m@%ARZ=ynZu2#ba#Vi#8$%Au zEfn48&AWBJG0up_AQpR;+s*oAvBr*Syw8Z&_$-)kV2T#(&?0-L$Z}?4GU?}XbJ$(u zK_kx$a%R?CkOZj*MTeidQ15cS@Qx(e2K98Ep49%S=_HWnYjF)_zv=`y=ykn8&AU#y z<4jtp88-2JmxmquM60gDH{r)>mwSJe8A@9tCLbW%qDz8PE|_QgG{b@ki7+ed0yCrp z{iJX^>kft14pYwuJTS4x>nZDJ%8||3af(9vyhgvncJcRU%dp=7nHWbfbR}wvL6~Nb zQukxXQ#!^mJ00O=mZWqXG2=*N<9_oE6CoS#c@tg!Mwb~cB%vFErk=|f{kFu((aYcR zm}u9=H{#3Rdp zb;L?7x2M^2e6pO*A|(Kcmi7vP=KqjShXm5)2RQn4hQNxXtNw~^ zM(OmWjE$8IH%*Nc^a(#LaNIKX6kY0YTpVF{R&5fwiSuAAk~$kxs*F{Qt_jm-uEb%V zo5#8?%N?`gsHfQLlc)1nwaD$-$onT)^7{APR6`T8o?zkWAihJXosB3SohElSC0Dk2 zO^pd8(%ybB=QP8*7o&TBE`F@;b*T)U-Olb9wDN zXB$NP$?meI@DUo@(bAnP_Koo&;xZ>3&unwv1SSJv=Ti}|ZyfzB9W2ejR;jx=F%9f#?98fU>XS@%RJK>dwC-bi&kHE{JrVxVQ2*sS}y~1^fR>40hh|m{^IMY@^J+{0@djD4)Dy zQ?~aZ{b-)!{>hFjPjdv7SGM2LEi*|J_NdnyDuh@U8zTA;VkRPNS(bycDtcJ2pQ_^Q zW4993_`XGyzR5Jlp_8f}EIPVZ<;xm-J!P|ukBSRyq?MT*PY~VZ?uAwrvKkMIVG&b} z9kxPTJlfHQPV5El9BwBT!Dg`|W9a+R#k60SD_n@QorkLLV#F~El92haP3o8K7!_m zV-~K~K9jo4{~oFl%ynW7+G%M$N{eQBPq9J76|j$nZN!cVZRLEor0i4Xk&t z*UO^HM@rF8Y2Hp2p+(mq&yV9FmraXO#J#2sj(R17lur%lW=nC{?>(I67dOee0-5J>hf`+bi;UA&g41r-+PCtoUT_6D zK^wnl#gK=_&_)Y2L#{wT!|gl2)mOg%Tcv{*HzyR=cDR~1i`VGQAVhqP zH#Gz4H+Zj^ZE`=xia54V3_umrMk!n=fO!El2{9ukHjViQh3(5}^AcDV6h(NOMwhiwLj9lVF` zLT9N(ix!T4m1&t6b535Evc%%#zP{UaXwiDW-rLm$_H{kspuuv5rM2izf)~x*0Z%89 z-W5H9{-t_^@^cR%VeE~A&%X&L7h&6_nN~tN+PW2M^>~FS|HxOhI6Mevr^83rJTvunj^<3 zXWl}BdaayIQqPKgy<$>F-T35L44pITO?I%@KD=VEq7zhCb85Dz+6}%RaWV@y%0)J) zlIW+UucM`&%N9S=VKC|#e=b$5_e>8KojsO6%YORE_dw5Wrg_S4Ic(9v7JkB<2Es%e zetBx$TAbdkoYvVvQ-$%PSQ{A$9B<*US{?UCLTYRT`>yOsEWC$-z;N2N3ww_zGTi1hS5dJ@~w6m~9X8jv1CXJhiNFIMKuAbKSq+8Y*Bej`7`@)c6+Q{qAYM z4K;6&I~RnR88^hSQNf+9-#C6`a}V7I7H1R0p%Ky9qQ3QRf3?YGIK)WD2->pYBw24$ zmoIp%Mc(_EntEi%kI>n!ZbT+; z$XErxsC}HtA+s=Bcbpt-`Xw>fEU6U_kMv?5N;EYerBJ9G2aMt}@8)gOqU@<+apApe ze(FqLH%P(FD=q4@E;joe^{ME^Zl6y?E1*v6*c_5*rz~eh+pmF_Bkc67uOE_+LTQL& zH@*B$r@?#8*uNj?M^>~F`u2S+x4nO9c`@UR3oT>^S=4dz;tnJlTOHK^=3;lJTvuMU zczAk;sYY2U!uVy=tRq3C0aYhd7B14D5g_4XD^3>HdoQm{3zD}>R0Ej%u)w-99p(>n zm7(q!QCj_wf+GtJNo;HnYdWBvB;-Q_1-^yE1yL0Y3mQ#-PRZ7j^F80hHyO9+WM?NtgYuJD#|YOwgAC0+*$T0L5{UUg$m->Gyv za|*~hx~m)`9-BgZclcH>{5ZxEoVTx`+k!b0URM2EG;6HonAFyrt!z?<0zmW0$(@D&S$S>4gpiD zHF9#e>XrH0m7UQ{p(>R2L)trDJaFqB$5<8TjD@LM-}sNvDzD8?l!Y%J!zJ+0gS4_R zO6VepWR-FMZCRf3zM3Q3EWa(2_(@6CMsr9p0U*LQ)Hl6Nf;#5m+ORPW1Pe{ixcN!0 z%+b25mqW70IPJSs95vWp7&-57WdasCe1ILfqEYK%BQEgBEp;X`CbaMCbw$TmSDSYS zY$4+dU%%tzJ5Hp(-(k7_FSqG*np05mye(g(76zPR0hiO!!n)5}>^CPbOq!cI;@O-6 z@6lFcUMHdVAT633vGRO*5ei9w(&jf@g@Ls#+*sjeEK;ZlFK5zbacfpDoExD1k#M%V<+k#dq8^grYkP zw+DKztMWK$9h>XDGI<@cgUmyh{D2R;NbqXj)Ip@(qwodE-|uis8D@dLecRC$-}PAC z7%vE%PKSunMLa?REbmA0s>=58s&lpp(2IP0HD)Bfu(bep+Q>?#ZyDvVi34DpxlQdF zgvLQvv*t)qBaz~6q#s27!~2{qkdpH=ee$*E-|z|<^%SL{{($B8PaI@dC`{x^&LR@)tq9;q|Mz_*vj&1(5XHB=i~4^_T2 z0?Yr+9qTN5wGjxEs*eusOIuVqPm}|exFi<)nw5_$Mdenz#r)p;$BG-Pj##j=`>U?J z)Bpx)!}5ved6H%%p}j((R`SAPt#DdnRm?o;MK`vp&~a#QYRXgK3O$*!3G(A&fu%a! zf#~nz8RLY|D}%0r(CF;|yWA@|?P^1dGu(styx9N3^&{QQ(UTN_ zn=S6Rnj`0Fu|{8YrThBFI1p?SPjXZv7G6HC;tlHbqM(hqgzbv~ap+r+BsQ(g6Enj_ z)AxUgDdQ^ol@6D*d<+R!AlWI*tqZ?$9T}$AFEXg>(i_rH|l(V-j_LVVuB@BaCH#P ziCtkV8ZXWr!XqHGpok^9m8daYT2O$<;NOrj7CxqxBhwNs0s8T^=dqgq-hi$JGMO(X5X4%|8vEX<{o5<}Sng z3P))fVaoNLk0Weln0>DI!#P`qIGJ=5+o=Z&V1%8X2Fs_Lq>&*Bn@%^5H5heT4;#7g zpw}=&*eE%pl1EuTV50FdJCm8aV7p3%#ShTtd8UCJU!ts^q@y@xt(L&LwbTBO1xnNM zi5{a^+P>jwj-cZ)A)HP|j75uXp@%~ZcZ-V_GcTAkhL52vE9maN; zXwak?KMsyLZ+XGM`-f+x8o21`TwWM)kvp4!6!y!@!3u74ARr0bb%EHr=X39iq(?^B z6BKsw6E-<-LzdOn8k#-GI<{?us$=xDeW*Gt)rcW$bu?_U3#G=Ycc;VH9W0zgNq(dCZ@TkOcPct)vyJc5gO(9a)w}_RZ-TO>{KC{Qd~5btBsFXCkoq4hF@QB9_mpP*3nNxh9p!Y0ajh~XP zHdlItZ7_Np;iRc&qr4}hv|+j28hD&ft0XM)Xek=N-UWY!Q!n=t>kRkS4I=(e?0==Z zvZP#du18GQq#HAO?Kt1pY6=Ri?dyjbrsds4p|wfwqS+IOpx~I!V|#$76O*7eV^_~> zT-LpQrdd(^v1~NOF$>!z&RkIH+3jK}M8Yf1J!nb>Ud(aQ#9Y2~eBIE{c{7DcFHH1U zx<@hbc*-8hKq+!?N!3TdT8a=W#)GRWtrY%QLT(5^O>Fs<&I`v-m&Y!(U-_+DIi)*d*s?)Kb<6}?}1>|eeS_XFm&{5h z7x}Z*Kxx2%1(XIFLfvE4n~%j?(dZFj^TI22BmDj0DU=Cau*rdFOv1i++F(M@4;7rB zdW>9=ds%oUgiF0{X?2Q2N~Z6w+4cK#PNG(lO`Z4!pUz7;t6FL5*iOI2oo1;4m)ifz z!y+|77vyS(Y7uD@JI5X5__&jsqFWl@aA4*LX&Sz!J9f_8%ReX6EAbP(o{9rOPmBBS zhdpg%oJ^b}^lJBZg(tjLv$siWDXH2x$ww)PY+%`Vhld$xBg1{UIoBmuhMHFGM&nc= zU8WF9DXV6bM1M-Llx{ZXH(P0SS%Tmpa)GuWxBC;SN`?-!g5MIo;y*&%O23Q479n?D zSC~AcQXoU$&@|?#X<6Net(0{@Uz8%qIyiiWB_}@EEM?w#jZUUDpz3h%jF$4bUsET( z;SiKsw9~p;(|GXbP|tAH)V))5*BN^kO-19=l+x;d*`c#GP!!BGXa+nk21wxUDxlm4 zdOe}AyPAn2Bq5A-{RXMVtG%5-CYyiJZYuHk<^LdEorMm{_#s2L8YMS7F&CxT3hBbT z;B(hn61j^t;h*W!R4s->%9MWa|HwiK2c`}2keE*PQFq4qKLN>IoHFvm9ur(`u&1f^ z@;#>m8g4Tl2y|Q5g0!6KMbBYkH9qJ~_ht4)(MMH~Qn01GT z>ijSx!ag!9PHF=R>yMgv=(P~@uhEgiqGUJw0)7iI-x^dOGcIvce5e_VbEeDn7Ce)6 zB^oii;&{<`1cXbM?bbxIH>C%lh$zKThOhw1d^Exv=cDE3 zd(IElBYelb$Y2Ryn{VBax)Fm%Q9)abZZTcHs7+`q@0kAj#{pQxndKrYj5wXlPK$`} z&1(y*1Zdr|OhZ-~iPacM(V#{1SN^ul0eDp=vL0xbE3DN?GFLg6v`~Ou619Oe4<%6H z(;Cpb!w%0=ZR0~4)y5w)>T*L0lFs({jKCzx+sMb~>g8%C=XpzR zu-vOVFz8H;rK{sOqtp+%y`6OE+4~};9kb)=tLmf764!~9k`85iKczJIiI0-CZG)+& z=s?Q{Ak!0nGvaDvD;DAtk6dl^a9Zi9>HSU3=KE>M8Hg-PVxG*hBJ&aG^AVZ7{BE81!eeOdyM@rOPXo#MN%*H?P% z>uSB*(^SfpU7>un8NdukGRqvm1C|3tJA@AE6D+oJ`5Q0q>=)OI{r62x4Jbx{xw3s? z>{g1iCM}M{m0!3}h0Hu!?gp64z~i|l75<(U2VSUjb3Gf$9&%bALlXyb>r6w8{tP#{tVzi}^L`E4@80 z$5Lr{aBzxY*p*~E?l{hy3GO4LX}Ein>SX#fk>)>N^`fnlsE&l8Elt^u!`Tu{cRGR^ z)U?#0+|v!(Y4N%wJ$;I^H<~{+pQvu&z`}g~fR~h?7Z-<@S88Q^i!_7*Y_U~$b@uwS zE9FAl$rKXdi0tKH^5*e4K5C^OG01u5vw#*%6I9Hqks$h57H9luFv{?S#gVPAf`bSj z^0NHd;r9~zmFcN7tcWeP7{1}QDB4(#E=!S_2mcivbD_6~H_;kbTNh5!`G|@P%Vg4_ zp+#iB!D0ZCxQ^)Xa$(ctj`4t$l$%m+DVaW&t#_OC304}SxApmDIbpz~UaREIO}Wu< z!orA2*61Wto6Dp0BOZE2u1eol&9NdaZ31f!clE|G-$ad z-mxL|tXQR2p2$5j?N(KV0DC?3!)A6EIRP5cqW0OUap}u><|sBq?wR+Cm)Yz0joodX zV?i1>DWs4WN=t#A=4p(3G-%-=cIz{{oFJ`m$8_bW#tU<~ws5l0c{$r|XL{x^*i2Z2 z(lJHFnPFbz zj^4>ypg())Px&2zuLH_a(1$G4t1wYmF_lr+4Z1h zRG(z3wdM17%-OicUTXvP!G{hmdRNp@qmd%jQ5eNPEqA(SW{OcToLj~PWGhQjJGStB zsYiWJVHQrggLIT}dpPQuFOsZVbQ{W)ew%qy3pMvr#7nu$vp|9u*Ly^-$Cw~=P!qC{ z_|=7m<*cN^i`kIO7sXIT zNcr^Q#`)XRYC&-3J$`eeWfbi%>qndg#*qnMwxX*!WlBFSo2eOPe&mx17#m>@HMAJC zZ`z3+ujvFDvB)EHQM-Vi2(jZK@ej2^F`kGWukZdDw?d9j=~BC8#uYK~bh~yo+Rss^ z)ehseIGJKg=ylnC5VT@4S z?y*#(nVC&&7KUk0&&(DBIceHPGZ{H$sZfvD!#EWk1^;;8zo6i#?c{3{$yRab+$WbP zj{mNNda1b}1F^=c2#v!0N!pc9Pl)oFu6YKmMt~BkLYfHs6uyfvD2Ks@GPDWWUyj_T@(!;(I2MI9P(f^;II1 z`zKD66ANpHTcewH!bIfa4o4_4?S|`GG3jEJ2sb3Ij+tVSm7f>~K5XcnH0>xg&FchZ zN-L-nCm8n z?|;o+WeL-=DRgoI>yG2PL6|L_&Ov5|Ln%JgblG^I%X!$aEMvOl5XUnT`#{bZSXpkO zH9-ej(bv76`nk)9+FwI>_-A8?I(ee|eREjN|KH_eRcoG_ni&Y6(k_F1Q7(bNFS{kN zanx3qsv8;jaq)m!Q5!Pj1|c}xH>`b4EP4+KQJ1TkzQOj|4JGQUKa=%pZzG|7T%gNF zu^E?nG@qs5#|51OL*uS{W@K+uoz@w^rYGA~!i69?_VF7p4g19sC%JyXO7ZRYw;fGX zglon#gk`+f4HrxEg`Kn2!}r7bhx&Vh5TLPAL5Tg6>auz%ZELU9EbuBB_e zKO&5Et$a;V#$dU_lxJp3em{|X8ja={{w2GtklE(h3V*Bo5mJTAy-IN_@(>;YNlZt> zAUNGQ9jm(9+`r;9U>5<%A`Y!u6h_*>y`y3_#~T8jX3y~2ScHE1jx9KOG~orXfLBfD zX6K^EQjNryPA9~QZMo`$A$5;;0JnV8q4J&z5MI!C`S~K*8Fy} z(dB_Le*J>Ov$PBQ9jbhJUqttoq!5Ig*S99}oe21r?mPAsM3or2qzfc1K!qT}>z9iS zG6%f$0liS_bJMOg>Ji!ICK^&gF#X^&1JMJ} zbA9|ZY>quz>!&(EuT`scPmf%`bTVf?!&swC8T0W3$qMcQk0}OY+H$wGF`R3mz?Wjh zD}FVLJEedRHDmbHL9eT^m}5GVKjFaN&?kLuHU(ukC+C#f_?sY+4QyID;1Z^vc#ix1?6A^}N-0FbhwsbX+4}ST ztXv)Cg4037*VK{GZmn#4j$P+EQ3p^jNFI?FzXn!9`R6ee?g?F|$3 zDRSgk(1BJAOs}WuSr9&BI&#i|-nA-D9Sbn@<|~RW>N4Px;GLho9DpX?p&vYxB6k-o{d>Tz2n~hAk>l3DG zCq&(QtOPyb*0-^8WUw|}EmB$oY3MDY;ME>99VAJpRa>LT{p#U%$xg zw>FJZn#_R|B%PgJ#fu2=?N*O~jm6^qLS3MYT`=Eg%AmTI`Hp6GC? z!kk)ZKe-!(1K9LjR&5nVIJvjSUTkazM+q5p4<{(l=abk-Hj9WVxqkVwUe&heDjQ3T z8BW`k1miv7A!hxZOaM)F?Ls{>bRijba>RP6;u`VIBi)kuu%M+39L#7; zX4uUmow*cZef>@HOpc|}HcAttO1XLD`jrj@;#rC5gJ z-9n;W>Pk(H-aLN6?Y$#cGVJE@TUWVQjgmkaUqh&o(5oo}+D-1LZnZ$q zRV(IBqoVlj(=W8ps6%*Bv$)U*@yXS0&x&H=@pNHAjB+qF>Z_9`0a`CusJN5e;(Jt;W=Z}I*Tz5kTDkwD5HxFH%1 zc#Bt)$|d%0<4G&M-Ms(JlMU!G(lOr+b+I&-Q;an9K(K5!;ZWerEd|}(6moFU-41Jw@fPs|uN)((xY5T`lrwX;JJcwpqlD~2xT5bk z?iP)hT*llI8dbm1TOB} z-swRAZT?))O*Q3-CEBFoO6p=B(pWB*Y;n@WkjkR#6Y7V0h+%}ba*RVT!86vYc&qsp zeNPum?-hm$U%X9)k9KR+qn1Os0J0+la|5sCesa!+Z504lr-*E8kK4Lj1wUGp5pt0{3o3kb6h zcJ**`q16bz#a))t*OCxpBA?O_yE(!<%~4t-$|LpuD0C_@PfQDW2RP~NST!d z8#FI=ypZdRR?1}fZZdO*vE7mlWy#|l3)^)ZH^x13JHr#_^z`OPwIM*a7Rb;yYUPE= zxA9T8#HTfL19I!`X-l)3bia?%Ji(_zukKNveMLdK!(j@|J~UOUBE|V0n1&#-+g;fd zMz8nKzDXM;D1A(TE^YoHO`ggAy}w^=thUL)qJx&jHY;v^*kk1*6movi9(yb?d9uMB z|LE;KM8y#Sx_l=FdGldYx)x!_=M>|1ht3-=Tc*ty{5H2mODi{Knb007v@rB|fZ?LC zy3rxV=83i@7{!o>Zqe3lbvA4w`leaI3ihAAU~(u%ztazR(9DA96g^CObjJh9=wyDL zZc`jskUNJ$s4Z$!@ODSr8SbE7E z7K&=lfw_*mL2H5#pn*#y_B_djX+R9>`45Z7Bp9MV7;9YOLJK}f?1ERSM2gA`X1xy^ zY>92WZ!%{5-lDv(}-^)Gq1MH=z0oaOtmylw<51J~KmVs6s}7V`;%wI#FHWcA6} zVNN4YMA2}V(}+nTOvoIgBvbDN1$u5~v`KAo2|~2n`;gcT;;h%S>^Bz{Qq@}WRDm_LTyk0{J`KV(^AYD42SgK9Fc}?al z%f?0L@-$B^ecIq*G};0%WoAH98$Ld?V2D3GLTr9(#|taHgNV;(8ABd$0Zc&B*&nv+ ze#FwsiHQy+PC{ZI%{OP&2`h*8bLm8Kc9yFKL)4G)Z+Dm-kVGuyB9H!Q))6ap_GQ{N z@Qzy2eY7VK9Yt!DBSFhZ(>AhzB~~n4@`}AMd^@12MzK8Nuulg0-{}t+6WTElxxR)# znw3*BpiMeWk>M+v52A9|R#+WyyVF(*ozJe7&M>dxN8=h>RmY>ZyE^roc`Qev#do^< z*4)Z+0^RPuZfCE!d-Ut(*MI$|K0pT)B(z^0$_n z0T{%s{c5csf&G3vd!|Wu%S9uU<@A#2_tDkk-rE2JVaqtcyB(Kh*0%(%F69U(A=K zW8FT~J3(OR9@k+$ZhkN3es(BBL?$CTdWNL9$NL6WE88G=l*R{$sUyocU|>2Ox=Y=jam4SzHF%*vLTW1U6m%zyGiQtiDQ7 zXyp$pNR>K-?{Og(O|$vyj-xDm(NrT%kLY5|0L;Z!5e;Dg^Zz;Q@N66Ti5>izF7l|W6(WUVRJ;1_!(YlLdgbw7qoob6m zhfo0>HPVucO@5h3^f_;YeIwJHf?^nbwtk~yMtp6?jvR_pjVBO~Q+$e)eU&3;YZ}3C z)nhe_7kvj+_p5L!AUW%Zl_UtMozDL^Td5r-g41v`l1?w_jt;b3?4^1fYh34|e$y+s&z|I(q*<+zCMa+jT}eF5aCX?EiNH>~ zC2pIQy6NHVwbsx_Xt2YpXfg%Z)jcVg>u}>Rh`hv!gnp0h4zzInjOo6o0|KN|q6t7E z+AlcpcM7VG#1hwxXRF!v#d4`=b?``!@{g;Oj+klL_lwK@FJ5N;czuowh}^wSDFor~ z8D;}%Xw&4hv+&wCvBi1CCkHxt7G)dz*+6 z&~#9{Zq{iaZQ*c2!)4*(LvN4ss?K%uj4_6-IL{`9G)T+;$ZEZOd11Ygto(+-x5 zG4F5#_a1v(HaH_pTNbQ1okKHUm|ob%jWV@sT1ufAb#^#=h1GKSV-&|pq6wkCdxafthCsSE+kK4&s%d*8!wK~l|*|N)@C)(!R%2RlKX)u3|@CV#q^zyRQr|PwT)rnPbxn3=Id$(6R z0aVoYd@}?x?)+z#Tj1fvZFj2*bsx+G;o(Kr=(U;A365U=KzF$~&)Z6O0zBZ&8-01k zsmPXgoku-F0!)w8>(qyA>MbdkV-Ixi0RFwA7NX%BjdM&PfjqxPTcY7W))_evQ` zQtC2A8d+s3r{3F1s13FMX~bz@)dPmwjvQ>Kz>rNcS%~mUna5KW$!cBSu&9 zhXm+u+Frr|&SedxM(3bbP9!!P!^ zbsniSduB9ulucGKqsFhNEb=%>VbwEfU6W{gmhgDQIzu%-Xz z+c%uYSnO_bw!+@9IYJ_s-glu3P|=gXh7#`O%V~L>Pmqz2i_{ay(>81G;v}n%&UStB zpFLvPa+v%fx-)8LPdet5qiEChAT5L0360!3>U+!{o@_dy_jV7D=t!MpvS*UD+LNG0 zWIO+WcFfjdCkPB-`3C)vr`f8_vDgI}5Mm>T@$&@hnPfAU13HNKn*XlW*p)=r36(6K z%#NK*7b5L2b0yAsL{?%wmTC;*yVDLlu|#9)l8b`7UfwZ-9qHvva|r#iewwb^1_aTy zG0thRUrXv_a(#VS@)QkPO1yB7xh0&$ce9*h7~z@!bG3Y2?>D<2+x6<7i{FcX&Jcs0 z?4Q_~iYeRAw`k{3d#~l7qApc;;?K9Zd-Z97?J`Q$%`X}9`4)9um_cc z3WstHPhedLb{O+uxR1;)uXNL0z13-N=Qx=o9gDuaRRg~GBV1=QLbU`s#o}y+B(mtt z1OYu)%=OUg%B>f5#5Bb~MeG#McR$~+X3wfP0&9+1&2aD2`k(XFs^%y!D>>?d?!LTV z&OabsFqL&yqM{Qwg0DI6>%U#>-eKcXH6vdlefOp*6>%?bnbje(RGI1$_H5ig{3F^^ znb?xAXh&tjh?rWYnLG4yny^%9(JidThDj^y{&gL_$y0+Q44li~DT~AnuXhqoT>kd{ zhahDs2c3E3Bsw-z53h?W5xLmO+8=K+e_f-@KG0D_Od8U}c=hl!YuZZn=#&-mIc{rs z`a%7fopagAJi}Qv2HBuRxQopTHo2hop=%^oIA4pZyILGG#@f}jk+!-`-bd-jt*6mN zFBf;JBwF`!VbVe4U+C>nuBBy`*-ER6F)qmc(|5c#OPc^O5gk3$KnXv3EATb6l=taL z*T%F-i`DYo7&Pex9g><(v>{=rTOAwdQWyY*;;Y|^1S4GNE^vy6Hwx%XBHnR9lI&d+ z3<*Qs>dZiw{Q3zsxkM7YaF3be8tDm?@T)5wU+q&#K_$=@f8sZg*bl;Jzk!60xd&gk z$!-xjJlbJg{U;uyzJVKMN0izS6?^p2 z*b&hMpC(Fbi<(oYqE87!-Rjanm;8;|rPdG5^R2vPdgI;#+2np6hy2~!IS$*_K=eq@ zu9jPNv`zK7^?53l#TPieLZh#Xo#eLagI3-$tLu?TZmUFcS#MM2Ewi^NOtJZji4>YF z^Y*HYZ0VP`Q)R|LvnhS~r#HX!KgJEg6kg{#%RHlV9Sj!&ig&6xEJ=#LO>VYORTJ@V zoxuvU+!58e&$q|Ay1Y2AVzVfM&Y+5oM~^Laks`v#!DyllGt)@kGCOAr(}ja1Da~=@ zcDgmida7i-b9jX(IP13GRs*Kh&UG2nbRdtJsMpc9o5AU3R1cZQGuWV`KC z(7CZ%{b-ypiHq2#VZE&Gyv{1@3wbM5CVil#Mpv*)Ivr} z?8uOW`VuEv94VY`ySWDU|A!(}_$&jT1;zdU^%kEDQJHN~OEp>)TIG4M?56S&`Wg3y z(>&bOhIe%9nXFC>0lf!QvbTPfzug{LnJXQkkZ1c4Iu83v65_v`kuG0I}U5r5uat`B&45}VyzAjN;CGeP-WE*p>K z65c~4EHW@whuwEMr^&C@xTHuR@X`It%VCdzy({fUh?6M&yhl6d7hy&j?g;HOy}nv* z21Bj9S--vDrNS8YG2`=|HdY63n&9(ZG7eVHq61!pl!dPtp=7bBYL03}E=MJh*p}WQ?h~tf zJS>h$DZ^DWubo6IVxl3Zo%>*TdBUENh+WPQ`k`$nc7kDMH%lGEY0qg$fyz7S z1e$)rAq)K;uNtl%3mRenSB8AvOQ)Hyy~g5DDD4T9@m-efH8|I@*yX8rZ#1)Q1#bWs zx163!K#hV{*HL=?K6K7_sn=SAZGAPud)G$IOKYL!^_IfD2}3vmLO;26SL@MEp42Z> zoW$K~K`WL~dZl#`yQYmAHsc-^b^Bg%twW2v>9nw=A}b8OShG#{;JuVlv~{jObEm;n zgNNPD!I}Y zyTt)~7crItPN0&#HEK&=0;)vO#3R+Kq@EC& zy+&Md(qp25j>|8cv3EdQ1yQKStj}2S=IP|p|4G6-B(%CA*GH{VHlom{agVgt+kC6B z8Z}#1Yo%#hqH+N{ozSi{DvWg+wMDQrZ1fysLc2}Op%Epvwqos;$64gCg|tm@+9}SO zO{?H^8id(-CF+!N0(1wvwlm~2uA`yzLm_`U(dYfw8Lqj&>Mt8@+PVyb2AyCE2CL-u z+i$wi2wnDiX;GBnt8VBlIV8&XYlj<#S}StlWs!mG&vOQ8m&s1d0@tX=HZi9?VoYd7Lqihls^2&sjSXd6s=+r_)(9=oydqLlNgmsS?4zm7vPV(h52 zI8?rY(9KoY9)}x*pKZr4&z>wQb4}l97jzsmSxy)gV*%D6IebhJ1y6DL#ZID~wOrFc)!_ z6f{(q=bP6z5-8SG7YvK6Fk*s98=pcX+&=w>Zt%8G`QfiK0}Y=nUtl)>%&s;GBKyeF zjTdGr&~tqiU(N_=@=MKLgrQz{GP9UhE$qIBjIaHrdVbxd467v!r!6 z+WXGdW>rs_oJcm>D81Pe5j36B71b>Sz2|!Z>EbpvJY#WdCF8S;sUCwyz5TK+^&OJ1 zeU@nXk|(NEZ_=zjN-%cA9n`Jg_AB(cWXX&~hF`Aum8^36LQ^{lKch_PpZ(OEf{w9{ z;4!`^oQYT9n#LV5@{XL<8WN(MWWK4zy3wnEaX)YFaYeM=e9?(bphcDE>3pJ+rz6NZ zJ8Z>%i=93cXcH0#Z!k>tgofsFfj!ZImVBOY{No z&T-cRQ0q7h9SB}GFP)|t;E`S^m8mK*M%tg2KNe>fy8cm9J~h;kM>gr$2TogX`N0VK zh|!jPqSfQUZVYQI{B@Y|wXnU*J^qkVi5wz*#c%fPtln|yyj5Kh4)OL+? zQ8H<&Jwx3QImH-bx|ME<;V`Kk9yY}fiQ64xtev>sXn*Cr`TKRYo@b?~0m!A_IA4b| zg4-=mTcGm79+-`*BS!?$r4D=B@r8yHgNK=%m8%wIOj9#*4znJ7Mk7HUvRR!*(?3<* z@-PJv2C{)&K(B-QvfVhw*eo_4He2nmuLZ+CniKi7SU>Mw#V$%Ir&#zj+wI@s6cWuQ z=NELR4AsWfix_x3uldHVHAT3Oz4iQ4LQq{)@bLS<(FQC!*Zc<6*trBRnsfyL(f(@)N;QC^s_(?hx}DX0sE-!n2oi`?!CkB(Py;e~3PoG!IE{rvLq{_j#JMI%mL ztio_V@W_{~vB=Knk%CJ8Ru6C-!TVo%c+P+2s6dI`T%k&6(Z}b}N{p$?xgf0Jf^bk$q&|FDJ zQXA~Qa!VkJ-{N_TJ>r-mkMH!I$`;-Qt};!Az?M!3(STC)d4FM@m!UpTh!5Fh*bqcF z8NdY93?FKSz72exD3{(0forPZ=hEmc=I=4_aX{2Z*9RQ&0Y*)S*CP=(;)n&RBb#on zkM#sDdUfQ{6nX@#s}YJ0?FpJ6p7!o`xC~L5>@c|7*lVc?AflUJD2PYmVZ;#&dZK^M zd+)Ka(ch9VNhzR&j3xy``jrr~T$pk&pcL8<%l|=3EeDo^-k2p;=c1&PHwbT0GToTU51jwn~Y$e%kUJ&O}#tg2NV;IOU)# zNX}olhR(@5rk|go#j(nj85xqD(=#l%-KCjX>Y-v?2bB4spVU%D(Qeyk;ul$9v_2P3 z^)dy@TRrWSOB-83?vbO@>bg}K7~G6ijYUrB ze>(Lgn($aeB{*Pe%F&8u(iiYrBMSRz05(xE!J4x2{;+b>!?G>-?{@Q=4Gx`Z zWHj1v^q6|2^!j`ZpZ<&46=z+<>$foAIb>l&YaGM%=Nx9eY+<@4>n4Lq@Ac<@j%UzP zG}o$E)r|2G;%2@Q7wHz8Tyt8_v?RA?vvlNIhZeUQc^AF}A89uJ>@-I{oz_#W|C&s{ z9u;4<@-}=KKGKZ->@`O|oz^q0CcfM(E7I@3I<)w*k$2%s@R4TY&rWmX(`h}?+MT^F zF}HAbQ}P(!1Lg<`lj+Yt6WuFeR|AZ?-RSKH9C@UEyvUjO&(9 z+*1`W*NLr8ucmFyj(6Xe$&33R2iN{~5WB>DTnM+N`)XuXBvb1dtW5)mPm5=~5qER{ z_Y2GsdG~rybT(@asjckbI)m93_c3m8O1Va8@uoIi?s`wL$Yc6=_MP1s zFc|xSo(VP{EaqV|X$rCM&&77rE;?N8oD?jX)2Dltv3y52+|_95A>&UC_eCvXRPElC z(vzjhjuoA@z?v0r9&txENIiuapr^)@j-m?ru0K;mRH9U6QxWK@z|@KrcL=q z`>NJ?nKTuBHR#nA3lTLx@XM;#v;EU|6w*P!8_%4g0{hr9R%+BZ^V7(QiOb)X@80P6 zbs5&WjW`*Y>cq+AUX5{RTJ4i$U<>IKDcEQ#x2h)qaWMmdxmFx~zS!*e?%A4U6D-yE zym?qWPN@ljbPq3&i*0Diq-}LGy%U^C3!$itjg(v|gqv@5L9@m#d(uPZt`lCZc?rn{ zyH!($)7E9R&MgIcu38zXDBf%G?$z79TT|9R7uSpcU0ZCjT;8^fLxyOZo+}+tabn`_ zE^u+x=8c}y;FhLFUk`yVCjeTX1gWtGb525zAawYY96W;;g5nBg3n-V~9L7wc-Vazk z&I&C$(DI|rOi$)W1d&xF*WutD#rx&sa)rrXTutQ`t4`KXe}z3=w8!K<7SJ9M#3o#0 zUTVn|WA;)|-_cl+#d0L+UkKU>3Tm6*ec|2>*4|f(pZ1#V1Od?9Y`I&=mP={*`EsC# z?eaP7ub-x|9b63W7Ti!t(6=Ez2M8uyFV~VopxX!};XmeM{BI! zz=$IjMyr$F!iXal$_o5x6%2xZ3STUrP!V}=oQewc1pymbDJ z4t2!dR(Djc@rdHR=5gmMqt~u6TN9~q+EJ?h!$uE)_!yU9d(3OturgC|V5$>GsKtv9 z8&lH}sv!t<<_?R!3lzMJC~{%qEWhhC!3h=+_BuR8&_gZ1%QfCu0dpP1FkSbV=e^!a zLLb?!dBy6m5D@X!!>00DOFs2;8=lc?TZ;Nb@nLd_{+Vi<;6L`+SkqD;r*gOP)W;VS zu}$E8`cxq}+?BUu-QB~dwLBdos;#Lx6}FKOOxI5u3K#IJ*7DPP$@KF zgKmULkMH9xTae;Ja1Vk1b+-C}b6YP9q>4R^+RI6TVO|VJqp7k!X`Ulgdi?^B1jvU~eA1 z|Bk`?8@%z?q3)I);}wZ_WJq=$p#!;%XUF)TzvOmR>XhhYRFvV%-K(l!_?z93+KE-r z-SUzED$@Mpu9zt~Y>J`SSj!_|^QllC3cDlxZZ;KG1}%*VRPtIwd9i`AbfEhE#DP#eJ#>OcF)Ws`yLQIxz`Gcg^M)q{|%* zMnl8gO7X1+BbyxE${o}1jPAsL{<49q4{{JXj*HR81E$eaoPHN^re?^WzuF6JEh}_D z&vlhz%LY{VKBUZ&wB?_9#hgH}g>mtK-XUNockH&(KY#JQ^*x_@q7u~>IL+TjXn+3t zw3*Gri>*OKAL0HYC;0OhJx}tmc)`*-tNaOX7<>J@Px3(hafIol9)1~MM z;jEBPh*tjRFS=xPRD)-jXt+vRV~fa6TzH}8W=g5I>366fOdy)x*91xKDZg9>tP<1H z!r|)j!g5H$?yXin=WDW3=F%*!yi9Bs2G$%h2khYRrMGgKa16&h&?84AF)uu7o=M$U<(OeG+jD{dv%9!54cFt=we5mX-Dbx`@lI( z278^h^o<;DdA+6BJ!m~HXrfiiMT}|Zbyqmh@^+T11uZ(GKsZB6E%tm>%nnFh%s-pT z#mkCzdh1~DM9L`IsMZd27$|e6!BnHK+k$KNJzg}ecNF+0Rn~I5$DIRVu%ALIoVb;C zlJe)TyLc=T$V&IMI=Hr=%szVq@~2*FS&V z&whpg>$f4UaxWOy=vee?>hmgrF3`|1GXZ0+c1hv~+?>$rh8j0&mHIXceY*EZYrV~T z8lzFOWwlnMS7S*Tl?&MExSM5jtdrJSc;u90OlY^+r}1w!qQur#K9Y)NB8M%cHMEQI z6lcw*j&?c?!t6MC0dHx4Qh)mFUQo^NR!=)OOvcvxo6`KO5uC^g(B&&;Z@=Tdr@O`f zU>c^TVu$?s>tV5d!8_@DECBOCc_VkgpTFor+inaQgu-dYk?tN`!e2%s!vy;CS9Uk9 z##x3zqq#TNOMde6X4tT9N#iB%H|@fb&1xk=2H1DBUh?uhJsKV!4mUx0(ajz6l>j&a z|14A2#la{tcglYF;8c(m*KpW{cjnWu0|%*aLk$KbbcH0&)fX2gDROCDF+m&Z7JD2u z7+5-yEHj2fD?_;4W;RqD7RKonJ0Tr=w95)y**$`h!$A z49dX>Mb{vy^TvsAIv>nqm6^0`ClEn7p(ZnPCve%KkE_WV%vnBJ2QHjejhXS&=&*ac z{J9w?^#p;SV>RY92k4R7%z|@-N0v^j#j3^A`1kwG>#!hTcY54d*Xi>1y3gq4|2e6hU$zWF6DK{p=kfWT${ zm@geyfQuzMooTpRxo0+EuT%?tBdX!=fD$Iwe81V=t`5(*yAGR$-z1#&xb+FdqZIYW zDMZUXi(m7_&yahZq~xB@Pqgy)d9lad^->&{c45{4{QPva!;o(|N3VP>tL1d`wj|aN zt^V5YzAu_V2Ri9hR{X{%_GnS{VWvlGgNQ%;l&=$D2=prBLfZX-(-Xyay&P}uVN|u< z+8GEZ;GfqxN`WIgW&m^*d7L&_<2cR1c1R3BZHwcOrj_dVhs6q=%Hnn_3^5uL8qp~N zttDnZF>0y_RxDn$VhCi5Kt}Bluz5Av%|QhbKG31m>)3oGXNbr?JUrY|Tz>g{emk>! zI&(~6*t4^kRK-$pGS4+e$4hWAb&LdV5gRPis8P~ueEqkpf1)k^ zw0V{(ukB`~L%0M0vphXD*XAvV>;v_731kr22bH&$z%pYXS}4X^l8QZ#Ztl3n+^inr z%rTRq>z!FvG4b%i7Cj$MbG>w;53Ax^ihAdn5ks`^%X_;|PqZ07s5KDraRKa}&u2Pf zl?8^)#kNxVeqG8`hwiU+<~qppDMu$<7JD9+AIr|&gzZ4D&T+TnVVY(j@#nv?%>7c^`!DNmsphe{IBzp*} z06iCt=96u?8^RuNSx8#e0qDh=mwE+7gpKkx$Vm|~_OYA$qw_Achj|HaBP@$7cP zJ`My%h7@Bs>uq1IF6~%?=tat`fRaTS=iTng?VIg#B^Q_ua~SQ$8s2!UYS3Nh??0(> zli4CCCS7N4`lljMC=J>KYF;?t(nB(Be zqiWKyGZ^crgbI|7l!sMrve}9~ukR6zL>?7!=#fHANVd>am!#xWNmG1U$XEuS-3oZlTIg^H4no&18{VrpaQ(B)MhUq*qi) zdnIZTKfqwU45Fpi%&!^Nh;|v!PTOAd*&@~2R^=W+bbA#!={XQOG!mA#YuLG>#V)LA_R+{zWB0o*$)T z(Xc5gnPD6fVY2(5GZsMKKRj$u1-P%K9$IHphf%dlGgTK1@@Lq_%m5Yk?&yjcd^Gys z-My(*PHvedM-?;Yr;^y*^nkT0c~ufl(FG$7jE3+9d9$9|l@BMkOzUyAARbqV^Vk8! zs&pXI$yKM5hKEDFz$vX~d_%XB9?7iP%keGp5<(P#Br6O_Oy{$R3r`BIKk`b+E3>r1W`Xktb{N*+LggT?Rv(H1SmK%9aO_ z2zvRn(w$(^V3{y%JV{@2H~($QPL(PByVH8{Rjws#$&b(!u`(dG+H@rg zA{Ca@qFOG9B~oJHMq8ZuSube0R3*6)gZF9s?_kbnq{KSf+{nKfG3g8>r!xMs=^_Hw zk{Fd302UcD>_8205@d{zEq|CFkKggVxJHm@4$B(e%|rF`&^XGHtO>W$j8_ewDVQp* zJi7#tSxHzqbCAv_e}R1584ok`R!KSo7kPaAh=wMKX!IO%aX2_WgRN$}s;@`+Da4^)ElW ztvyO6ySSF?5*(ur>}0d9Uw47H(E4_ zQG}VZTdp5oi1o+r&ZGs}IfXD=ww(EN({g6w0cE5@-MVZ{H(=3GTgR*{{d&H@@t<$_ z`ugWW+tcFA%VjJ|v1ciO1!SGJP!&S1vXpbr12ko)mtCxGP}aIy(b1+LZUzvp?D0ZA zgie}rTo_p!-zVtt19l>9*{mNBQxva4hSk>P(&U9G8$w?frH)4zqed#TV~uY6qDT!} zDy-N_t=Br!eWWTYTanhFq_xp*P}Y*F7%DYj*3q>xRty=eo%WsSW;L|XXR#Gk+e7^b zPnvi!^oWHgKYyGYWnS*{GhvFQk2$_RsH*S!37GXBGwpY*d zG!}WNA6$~NEy`N^7hbW~#c)@I#HqFO<1%#)^qRb)$2e)yK#Y54MOQ-Nq=ztQhYC7b zJTAoDvgv+$4Awqfo(~6X20?em*T$zyOUtMvh0x>lEbPyp)TZe%R>p64=M$FX@-RR} z7)wt8$6sxv9shzH#> zEoL5dd)OzU@_3d;G9+V$9!1sOYj&ySnORz1!zwZi*KI`dHCw=-5u@i)6OVqVxK@J#sV&>I~N9x6OUKx2}&i8J%i0n)fLTLjnT^mmIsnA^?_;Eq%r$U0nA;t{iyd5y9bwy)FuG4U!Gu7Pi1);rqU znw*e+q7wMQOA%$fSAoL%1EH^IMU?F&+>Eq@LEq)rr}G}|MKECj(?W@#-lMc5eO2lB z(JBX%UaGdPP*+)E?3d{BOy^L`GoM>EAnDLOI6g_MEHUU#99y8O)zm^*u;|DZ*0=O- zm5O1~v0&Aq+q%#<#yS=(YqW^Qm*dOv3$v=qWXL(d=myd10b0kcjQD za?qqjidIZ2Ha=_*ICdYa8mwqg*&K+Nhl}3l)qO7@4MluauXBbfja0uyyx!hnzfw0G z2P3Sj_55)g7NrIOJ3oAup>^#GS_Eti&(PW|@U~Go>g=WXja^vtHO5pv54^nAqX#UU zn=c*9Dv`Q$d3f35zyV@L{TH7-$0bUO!+MWP3#FQmuzqKptH)-(E@$5wxn`niKhoH3 zSufD*!Uh<1G&vH+hwWUg78Gq0JCO;4rc&N9o=TBaSaexI%MvNG-fr8_L?(>$^TpMU)|wd_zfZJrfrEnUc4odq|Ca; zWpVT#x94ejW@3_KSM-txH22Bk$}<x#gGz?aY@chth)X-KR%hHy%S;P;L*J~e+RQPCD%;KnUA}i0)d9b zTg^|~J-4}C-O3oyuH7@IRPvU?F8b6!HIuRo4|pHSYDtO}vlUi)>jm{lrngp-+*{K+4n8cdwzSt~zD3h6J#>hO z?dQ{v<+C=e1lckjd*9cqFw0NseyH5gNBMFOg%g^eav0wU;h)%~f!7=#(4_YYArkUO zHokXVE^TP#ULp>(a!9BJdGqq|WnXTAa6rsB*T&fC~fABxo=WV(OxtL0&QiL~`yr5su{PX6L zP7&s#cm>olV*E!^AzgZ^Xbxz(wQ-8ER?78NQqhOa=#3je`3D5Lt*-iMfKhHqih0TH+x|1UA{ehx0^Jdk4jWWLs+zuBQ^QlBNZBZ z)E$L;n1<$Zn803-)2jcc`O$TbRg%4@F<@FX&BdesroUFHvh!b9yHj@__fVG8|CK>( znI%ERN~dl_`p3_W`r98r8wEm5Qs^$Qp2aTzI{wZrN zmv}36j|tzm)sik4lYXrWGmy@?&{k|ts9Z*3ER`ja@99b({#0T(2GHErIi|9_VcO^_s>B&h=6V0=#sn@hww8ZcOI29w>LFD^ zJK@l>TvyTYUcE_^bh>ho(u=lpWCuE66^Gm;%$z!cQ-bs-dKuaDhXD0fy)K*pH9V=m z(_i_^s`p8YGw+BA0e$Pg$9GyCRa^^hkeZr%_;|F5sYH^Nyo^p8ooRe60|y>P;9gJ> zJHea0o+(AQ3-^H1DGU%CRId*WfJP*xEdZRT!~Fcy+aD)-NF$}fZ}>F6I(*#eMC#)` z#3$Q0ug4Il2XIvqC?6NDC@5Jj3+NCwFDbS*o~_(V-sHW!QXKkti|}$@UsLd|W+_TT z43E{q6d|ol(mO)DtjA3&LsWoL8q?S(tsP38L+cWOp;!_;w*hdCiC(d>Y~ z=VxltydARy8|m!$2Sq5mf3vB#-CR_`uZQ`Pt|>%ml5vv}rG>yfj_qzwZ#L3zdSUfw{ru<$&`Om3nH|>` z%Ww3oP5Q{ZJTJ;!z#$X}YnAMPp;!{O0|w#&jn6-6{$2V&F6AvkT3KYA?XYcXVrS>g zX^j(VsYcX`w8>ZqcK{t!pjX37;pk|TcK#y8xBT=LlVY-ymX%Twp}o7ia!)f{YoS1> zEPH;kpBCM)Mch_181jIKOylK*^b=1PVxI#|RcNt5MZQ5=wsO|7+1I>@Z*`5`MELe& zjPw4!3MK1SXv}*^^RaO3>XGc)qObi71$e8=8i8j5G~B=w=9-wxai^ik2OJezg9ZTy9Ag2W%F~78*rrgvMGg?U zP#Cl}ZsN{cJc2Y8K!wAiz`g*Qd;Cai3bG4ot2;%>;hUB-WFZRJTQG4;m&ONC%W@S~ zk_7g%Trp`z`=|Qg6GDM7FfOLpXL_#>=eSo?4cCj5b~I5jy(Csmx+Ds-3+vDaNZJOE zT37!$uW%4kC!**(LRU8m+vsxq)5#jszg`s)+0H+-wITw}3sBgMt6Wtw%}^!^Bl*C; zKHcPRdbLUNK(eME5Y|*9Ps}qmv(T_qS8LiqP^6Y+x-rGeJ(!W0xD<=I-%`w&mtze* zd~(}u;o>D81ZmuKpm=Mqa_xfRtU3(_KlqZ_e*X{*dwc9v$g9PA1I<}c1 zF-uUu@3{ni;7gZXxOuSUy{_Wyg9x0(D$cxA_e`@w<)lb0tBHQ*sj^rkE?_0MHe+6i zZysd%_*Su41VRmk9s2j2AYJi4o9Z_6~X%@NJ5u7l9u}j?0E(3;}(}>r& zBBYgtrcKIa*V5OLFflS>Y$sW0J0pgjZsSUU>gKX0i@|%EVQ5OT=^C+S z$rc4D4^2oFHi~qWvOW22tyL*lc@yPqjjN^TDw{mhRXN&a^tDxZ9qkkk zi&4wm4VJ+sL=txcW3cL=KDc%B>_7n;ZfiSp+5cny^>(wOtLK*5{T3tZUaA9VF=)_T z>S^VbKd{u^(gWb~HrOZ+8>D3`PaHeNl@E^H;hEwmx*tWwv_W9o$&~E|0h^ZkWVoyh zTe0IQlbV-&B|(07&Y3IHY%TvbU69hw{g08jfQtnma?Go&rZA>ZL@NIAZ*NPaVCB`g zH~6M|zndR)5p1D=uS|P>@-+*2*P}{JC$E;7*_su3Vy3In%7@{mcSg0M4VMj}t80Rb zbaPx1WOr~^n<8fkotnjsWq2uQ^J3zi&eK+;Wm{*o9r1!>Q8h)p9aOCsersMql`m_2 zxIm?Q zg-bN`_-ZRJ5}NC;R~yuU`c`cR)MDBpT+dfVh?eoac&d$H#}T$5EnB6EW2bay+0F6y zbJ?m>Y-DNqeTyxK2ndIQebOnUu(7|k6FY@yHk)o@2eu$ByNO+4tJtxOcGr8q72<4z z-LajJ#9s3;p?2Mfkzyy8|norXsl(%2F4@)kw*t1(sNZb z+Z1ACSkGytUL5=N!su1d#7@MW$Z5Ev7rI#WIzA3+MLNSJCWWUct*-^_hpZ^AKIcb2 zX$9|T_Jft2Hk$O^yZB?;z*5pZWk5d+-0HhDCy*WM2VU?dIY^MH}1E&(FBs@nL6q z7OMPo_FUBi3KiTec03(P#Vc{d=nv^^0~VP&En<(ZC9RYtbZXo@^B`H30L$r3`BOW|_)u`>R3 zyMBB+(X&t}(sF-Ogpdpu;v8k?cm0jO()nmyUUkNufs*izm;|_<7f*|BQlN6msg)-Q zPPe|@ep?@Q>DdQ!jG~VV64J9!I3LdUA+5@VnHIM~u117?hlOHv)iqC2of9dsc9;Vl zuz+<*$B-Vddl+}UKH+qaM8<^C*LC2Nw=6( zY^0LzLu6s$*qX=Lkz`=d9W-SFN&TJw8ZAep-XpOMb@iwcq(AA>(WU|6TSrAqymQ(B ze;TT-0~~F^SFxg2Yi<$MT3QNnfNASZ1{S^`V58`n^v=H-v1ye{=}!qeKd*2BK$~1N zXD|rZ=-Be90UFZZ?N+;|yA8D|^R`ZZRw+Xstp*rsF9E8e{`7w{!rSSA@(7ntja< zVAiY2_B_5$n%i&}&bG#J4(;O$@Ir$9F zozZ~5WqLW7GUN})Ei}V!W_slkU$=~>Ryx~Jo71wKROQ(7&aU7rMIbki&~*`TzMhRr zN9MDn{{1GWotD(Uk((%b7$~k5vqubCN|oE7QNkWh>La#Az#&U*&9w4@vt>fmI}}#%^}JJUz^IDBE?-!wRW{(|~UiP-E=Vc0HieMXT?N z)59~nWFz3^ITn}iZn^xVZ}eE)%;lz)({s&om+jqCd3vQ0Uv3U;kuQ!fPo0V39(=hw z(2Hgtclmm|TkN8$)2JR=9OC#GN1A{j4%TI0=oe)27aW6XMo1L}>KoVgu6g@nY^Ipv>duSkUJff7+W`)q# z#mC#rcXu~exui`Xf|AWrDX;}K#?;teH4k1&zp8-|^0ZofRno*tt{6s^q|X=HQL#b~9~im*fuf&paTh0b(^L~D z=4nePN!ilX>S2y6$s~N0#4RVbpr&U7gczcU_1yxy$p*u(ENz81OHN9VE>+vZ6vw8? za3T-V@j2=nK13z+G?V#=k$8PowTEVTqM|#dyin7i9?E?~VmG%p#aJYj;vZuyi{{YOq0?DNY5QUf zEzIQ%3ua}BSPAG)ssLq_AsHS3jYzx<01@TL<4~V^;Hv}1;*WC~$M$iDQ1+V-a(&z( zzojdPbCHX&B*oZW=WUK&%?6-73iPS9q1#*@kbO2=8U*YQcR#1FZfT{TMiy7=bU$QW zc^n}{Fb#ss>f!)FLEIi34s$gU72gyF4eXlUE^&S?xt*XKSyi|OI71dxk?UH(3p2b^ zTW6639YTRn0t%sZH@1MvG{iNu)@W;Wv)KPig9(QX@KA$Q~zTO(r(F< zBpv1qp_1ssoVz{dy{m(C0dMI6XvvTWO5*|A%cVxnJgtb3B1`!xjhdIzTFvoyVsJll!Dcc7}X-vrT zBwePe(+DTRyPDShSUYiyh0@QOK5~%4Am&flLQJ!$oZnJ)x-bCWL`w|{p+G35J%k`c zLoy|AhG}dkN_%ca`nW;5DT~mvaZh3Wp_GMg07K6=SjE)_P%9@EaAoU#1 zrjiSj`WNo$ZSYAw1DT6+f-Ah`O+)a;1&3t~dh{)bS{46sdHIE!lJoK7>WB1mPB`Ce z{*8S3GRL-!(-LQzzbsOGv%g)q2YkWi=dvGogw%x}>WSlFP7i%RDn1_{ap%oQJQQ)r z){kddEgxgG_!3L9hnXmM?#o`pQCdiNMGNAovAy%2-uqfDrEU!7 z6tu>mim0mGv=Y_*`17ZqaCnU0WOa(2sY}`XxQvs>H6XL;e^#=2qcF zmayM=pzg1ajJKLc^hbj&bRqP0zfg~h4iU?7-8hID&FxtnY=YQOr~Lsqz0D8Fp-;<+ zZ9Z9a)Q-LJHb2>_w2qyTHa{8Zw)q7eOYp%qA6ACj{6Yxh;2Te#nM|UFq)F{8Tr#}a z(u8)F3@KV@$2Xn>G4#~fo^LsaDqYje2JIsvq1w+O_c-LRmEB;+>j`;I8@xF-Qr)PWPAshWRGP z5`cUk3s+Iva4VQv_5S3{g{Ik|)uGrR&@eW;`+pAo&K6!JzH!vA*;coQ4%9d8<~Kf^yjlKxvJHA_aPqaUqY`qzaEd=0KZ0 z_iCHOtJPki5KaKwZjfeCq^NDP1n%*xc*aieBg%IeXfDNu`mcFdAVk=GgiqgASYuT|?=|Q_u zga5)Q7V1WEe0V;sq<89!K}Oi4RwZ$ri#@YKFLuwTrx6bWMyM^OohMpdD4{;BqG0tN z9dO#UKHnU%T?MbOl~?Xxs}=GwN#@6m}$m+=V7}3(aOD=2Ab7PAOx)f_Om#5c9y^Q!nmLK48vA&#W zK2UmH822xy!+eWwU?hz=Hf?ZPe<Kj|^?TaF{*KzYv-qmA@jm zIy!esw9@t!FDMU|u(TeRSRJp$3Qlw@5iPLWw7^M&SHL>(02P=1y#V;7OoX4`j8WxpF_K!3bZuehA$x%EnI&ld2B#P4# z`RfanvC%RVYYbU0z6_Qrwp+P9i_s1en*x4R;L!CEC2Nc64(LK@1r&1|V@gV36BXf%E1EoI9U&JAN)I~a?AK4v#fnWx(=^se1f zoJZPR_^PQx_Nb;Eamm|Q++nX!yY`mIl@g1g{DOmq+qL+Zu8Mg)ub1JMcv}i!wc&Ry z*QRX5(MlY*HQc(uzhbO6<^Tun{OZSk&6RsBUo5%nAys@z#W8b*H(;r4gv#X+uhr`E z>D~ma06qJOZIj`Z*tK=uuCX{WI_O5qD`sr1^g7KJ8S9wl^(^VOm|N%J+*zZV)_z7b zde)J6v}tKDztNXuR^Q4F+i02%Fg~&vmM|^0^KaaDH|R(r^mX%GZ`6eFMlGd9nyKcP z9NWau{u_>k=__?75Mv4zP%M-0=<>lq-wZLfHJWFM5bMg3nzU*>X>1W|j9Bk1vJS?) z1k_U=4im-pRq@gMQOmq6KFNL9&FqO*Wg0TnQ%TwsgEY2 zMscETQVLm(S6HV(?cux`o@Yx^nNW&mFErHk3F}t}%-Dq2wS*f)Bnd~7W231(d$c4v zzC_0>n9Lipl$*0>Jmol=TNJY8_bjK+6Qg}_{)~}$u_d0v=h0}pfR56y7D5~HG@Iky zgEu_XM_|o%Imfa!j&@_3F__YdhFJF5ZbB$M^t9}Vb>k3w-yw!V>gl{HgyCY`3Bs%$NXd!6 zajSwN1m$1Rl{MKWz70cZb19*(jb&A%Ed&v1*hbmk7))LRYlYW)E6@d4Ote$ez6%) z3GE}}>R7j1ZeZ0CLtF94Jf|W|_z`(Uf(>-FL_yQ+nX3rao;qLSvgtx-{pFf^Sm6fc zFE}{ePtk@rY-@E0W~bR5ZHjoqmZ<+P2l*#aTM~w@Qi2{f<%XVDSK;6!s=P!Jj6PH>m*#v_LbMM zRC009pTZI=sA~7;^#=W5xt}nEln@8OF;-b%FIaF51nfCnX?9fv5H8(P?h+)4DxUW- zp|L6FL~!9ksyL0}5O>((a!JiRI*fKTtBk9S3r1no_TlmM=8eu+2;o9u&+|;4X7kmK zvvs959u7?oCS~Sw$wPqBPxhjiN2k8Bjnc<_6}u{Wwi=FwpcKc#%0q%__TBg)bYt}& zKmO>_27N=-SJ9Z@pH-M{8`V+WGyHnJ=^EJYgo{L{ltB}htTr0X;ZZdn54(e0V=*ZE~@Vh?&-))Xfc@4_9l$m#!O;_z0nr&vX4 ze_d0M?OVN9hxCe}Zxo=YzdGFM1K}vxDdSMg|Me*UmV{lxrb#=d{=p8H`gi+ z#;&2ia%eoLKNj-qqoy@pVg2=yQUPh@SA;3k*C|5?q@oJ2Xucw}XaYH*Uf6&mBV#^r zi>$n#7~fX!)gkGOnHJY3P;Fu?e5uHVpDf ztS*j(3NEs40ux%-4!Rgpas{igBebra{dtldp>^%h4yZ45p~cey52XGVy$Ib0I4Q}7 zR3*H;1tqrVK(Es;o1&;0fp(B#N;9Ees~vTV1|gnJ#P$WPOxpxg+C-77%D*FWj}G!cv^b!tQyGnqbd_$U7`$W zQeXqyCw9>%V`ZUI0)5&IF_0w;2YO}J@9MJ(w^9OqZo`9xDrG=%0t>vCB-k;dEGSN3 z0T0E}+Y5M4VUI&qye-GJ$jVei4sBv1%~&BzyKOQluz`~ic)6^fuo(|EQ`u~eCaQSk zU2>pA`sKp&ZaSo8ope!tpkEIVcJ(VI(y#B^_fRiiAMX!1*Rhx%PvM6)iF(UxE#dx! z!^^%s=~r!3MxagSOq>04N;l)JCLgpd@#y6I`sjJBCA9~#YejQf3$(jYA&CCc$5;nVaHxm$7}6uSr}t&|@G!0}tk_DgtXjls(ATIRgF!16s_8H`H|*-2m4nP&ieiEF?RafKl;uy9E6^L zvA{Jcw(*PKB#_H9B|5YL_w*)&{majT@&3o(2jdMm4*MT}pAdE-1vb>kwp%9@C$LZ} zN!LK7MEYTOTT5N;jswjzmxyk#8SiS2B^~Sc^NsMKLX+`M_@zV)`d?TbD?XG-8g3T%9vaRsUR0JI-2zRKzChfStuE<#EL;W>b z8EAeh9Qd8|#sb%**ha7E&0)9wbpa-X-D`KVjb5``;n?TWoOX)~;$29A4b>NSO(@Qw zg|TF)b}}=tHd0+FJt}2Lf6SR;Wx$t#kwkKY@yLsWjJlv%ffefTdIMMrKjU4^vG7^H zAAiD!Dn-US;g=HMEmy2R9R5(nApLecA}Lc!{b2Zo)rm!CJR*VokMC0pFeULj;}O_M z{XDiub^3F|Xg$Xe_uOo%%3~R*X4vZuubY(m(!_YA$1AW4Z+MNRprW9%*jtyU1O*0px-S`Mlb5x8XIG>IDvf z#GD`CmFRca16IXk&%js-c-rI`3q-VrLfN6-(rNyO^#Y&%)3M#oqh(QOL)z0rT`$uD z?6!GGVLV8s`kL_aB0eq)`)h$({jrcY^R@p9-HTbGj@ZLj4=&%qH-wH|t1@CA&8NRi z$Jd;oN}wo2isNA|D9(%dK26W)T8YVlwVHn+G`c{Ac5>h?w)TK*Cpi((CTwSC+>?B- zcw=aC^t%QohaGPH@5ea@n6<`3S*O=V#^vHH=GK#Jmou+jyC$EWok&!RkIjqMfnE-x?{-SH4#S=c6*vOT_K ztQYMHTR*v~#)#MJEv^#TY$SOn=6a(wF_e-c(^>!trmBsEBhj#(*Z7bEEqkmwF+3@i zuNzlLkd5|8s9bJd7nai*3qcCpD+6iNM#9NghSvO@lvRz^XebyYPb+cQ$fjmio%)qX zuc_-=VZ>Ji|JOz)k>Yq*f3a&uV6Em~2+fTsCgpwPd5m@X0bj8I#q zfiALIT_{DLo}R9ERG|bdo^XYXZzejdz7?zs@@ui9mMU|CwJ-NCUxJ;X*aq)nQLGk? zj`c;mm&aL4jGlJ1x5w+-Jw72Smx#NZv(d_1e)5HG9gie~2Q3MyV33Y>JjHw3oy-YY>^ct=j zVu*-+TcwOtW?md z__}MpkqCe%77XgVh*Cq%!-~)N?Ci<`lJKuf9N7O2BZ@ixhgc%V~5P+n!eZ zwQ|IKtn;c6CKLxmHXoGNt__xqaHb_sbTqIO4p-REM+uqBb7RYXcDesO1TzsiwOsD94Em;c1D2Nb==H;J#*?MY8?c1-aoh}%25hWx@MDTMnb)=S zxISV;oV%2IrLv6c$NU^q?}kfHhfEl@@M6N?$c4w9-6ug@nQ7P^4?S-}?TJ;o_T?Vy zk+uZW*_=CdmtGU6LYd^IV|P5P-(3G<>6l_b!p0-!D2BnEoC;{UbgC5@kGC*gIjvfX zV)c(t=hG6eZH1Zz6rGf}xT{F5{-jL6cfGgN7^R&IP!|H8r3P`)wSNb)SBm*!Ta_@Wq-`lByXY{>jnd5g;Cq>C$))%rBxga zOY-5hEnA~EIV348e>KELe>7zGU2S4wI<3)A__NeRR`I*`)mM_b ze{*6$q3&oZQ7}?=rZyKwXFP<#?>GIVaB8FBxbHC&Q_X2j3?=91tHNl?K)PZ_S09t$3K4f@MWNGOf^{&q-MrQOFpI ze0e@^PV02@MpJ-mFpk)>Mbn2hUNiF3Kb;C>s`7f4aC_DRc2ADDB&-1|+avX*evREb zlrHOHVq}ZnzJA66`?@{gt1TH?WCxARwDfkwo~@dWzAn|QBU6>vvm_}wY)4oFR>sqt z9O|bxWx}Ld9TA;hh9dPKjA6(u*5X-pGoQwS{^CM=-55&(+4|W_K)S2*n5sim&Vdd<$Xl2VheY2gRuPCP~duWl1&*Vw=BE~{#FEnkna6${8@#*98X@wzE z>6OQM4Z~(@7w!Sqhut&E__y`$d_?DaH9yUJX^}&UG$vXfO6k~o(wJiXZt;Y#Ew6N6 zDNPUKm66~u2ID~m;aXjZ+4H6Hz%bSEaIszHmQSkdAces5^FC*IDW=?>b-*gNDUc0G z4AsxBUE&rHcCQbsm9M)>1_pW>I7@nH5wN_00fnzPeG2qb>3aKozgjL=OIu1>Ncc9M zi6^lvKQ7Lv-5pQWN3^nR?(r={gh6KpC4AMuVN}W zxH`0@W{^~Rpu_X=yr+4j>4cm#_d~NkF0PK$)_>gbDDU^WpDo5_f4o^euD2f#^X-uy zY~0B=-T;{Wk%kqQ=fiO)_m^5({`JRsRj!yZBK$}_r8l94!f{3tg=Mopu5iK6X=NE& zHv2;r>Ri{fi19mmRT)#GRM3COKq$s$f1uRQ(k|N72fyjH119l%jIlQOhPcX|ycArr z*I-El)sNnrz2tAxhZ`Jpq=CK88m@soR3C-&4sl`koxolNWkB(D7O2?w`46!G8w z(Dt1Mz}X+a;o8K_DlEhSH2dR*j(%+yu|^2a{&=^eGt{Z{7k9Kw7;m?-lU_^Y@89cP z14cCaV>Um0&2|2E^>4h+Q|^w9F-RYuPZzchDiPyIVk!{DV!|dI1V$XZ?@@}{LdfwmE#J3uXK)SrQ z>are=FDVpZvp?>z5x~2oWyCo7iXurGK$S1$xi}!~3Y50}Kdx0Tzok9jV-@Uqy?t|j zz~UdZX=1enW?6(vxkYJ1b8(3i^M^aUmRowuAxf)HGg22`HJ-p&r`GQ#Jkp{X-T+dD za}sy)uI50X*>)H%FK=O7fesM2wfpp~@ok9W$<<1(1gYfTclnM6)oAA^jnb=K+K?XP z!4>8Z84&JUG=Df(dwjau(ZcQR{CJmcd2zYdrHLJ+)LXi7-i~gv=MGdlAFeLL@Sss4 z;or!qqMTgL#|Cco(omqQ#%QC(!-JkyMguKM>s)~P%9_-%fmT2_+&N84Y&lbf)Y_m= zK&f7Lov4gPJ19gYU{jBa6fwp~E!_w(-}vUE$7;g0R+<{xv7_p#VVsYr9i|r#yJ16` z7J0-2h+Zre_u)Q-Jd+J4+^6LLXkPO)$t?wD>GylPUjJ`nTupR?XPGuE3%n9WgKeM#sXGJBP(&>ebnnxQgDZDoKikiTUo;csp6Ik@P%gN=dopCjA(L1gV z;)4x}%D5n!Eg`pTLBNJ1IAjy`9t~31SnbB%3JJ29X9Wv79SJzp5wPeWglpU$h1Ine zy)-ONdsyrJdR{L(It42HGV=2Uhhya7R?qi{POtWf4zMk51h!!z*6|?Lse4{%$xkm@ z8+CrsVzxea@HSlJ^Q0JfUTA61ho(f8tSr^q48>g(454WwarO$U~{hS}~VW%Q<#+yO|wG-4e_07g1G z3SNa{;iW@?Zn^eS=SP6*vg4%S{rTD0S#B1HC*-;qIY;3H+{8p zW|cf!EfQx`$ukokf8QO_igDh1;*3XxuC5EN)h%(shLvx)@9{trO&6kta#&jELa|Wh zOSV!65=Sg#^tD}}fp&?TU>~prdV6xQ^Pmfnbvl6wm~}pF>GaHTz6lc1VUdOl#AuYb z&;p5z0gJ>UaBnDy2&Wwi}P~5E7QV@xnuqrnf8NYic*py0z5SYv&mu^KpD+G=+f#5@ z@#x`rSRA)sO_4S-=hG!Ri^CjM7uWl3W;=W+tlLwwZy`l|WbplBu{j@6U}?wHYRF8? z6l=FDyas?4_ygWL-+Z3qCed;fWRM~tzM^1zZK{#jn;QEObF775aj%mU?g+6m^p+3m zbVg1#4o9$1<8rsz@OCp-9E`4FSt}^IIIa|`W=Qydt`8?{|K`kc3KpAP-yDtPBc92; z<4x4{>+uLlmBy4IkCdFQNP57POR6KEvB8*j?(J}BE3P&@mc-lQpKjl|xVL!GOe5Ia zblQqMc=K{v#p&HA_H1!%lAia+8Pm+3wIEi`N@CPJL7`cGr=+zx;>0CCK5*leT=}q> zzo;4+K{Xt_?17Wl>cH|tm1OH|8g(SyaC@hg^&(_;jd?y+8`e9#O?R13a+eg0FlcPB zeuOp&D}9*1ea5&Pt3P#veHX8qeVvK~?9%PU7^E0z;sW@O>*p2Xbba8h!}QOsTGtt) z&92ifY)-Cp?jx_OHS)}quhqqQIM48rX?w^Uk;gn6 zWTKYLH;XepD)VNIJNEZC&q!pw*w-g0-2tr%5kIYkpz54fCh;3UxD>e?+%HrTo0&xn z-tPGxYixIOJdIPg3VCtj(V@)i^JepLhiMG$@JW@FTI_0`?#Sq}$VxiMiaus{potx| zbyxrTQ%2bXgcka^8`R8j(W9WQKm6?<7l*@KE+^@LMU2h$Jq-;JfB%wlN~MHIfTkS# z`6{Ise{HV3027UiSxMp4EnSzNPJMt_Y;AB)(Fz;s=`?8Q!$rU-+B5^f#8+*Jl%b?T z3j2g3SND4BnUE_`xHQx0#>;}DqlPHb{BRO0pmNjExGUUp`?5!iPh(GY5F|U6q}x-& za#qlF;4MGeu+N)-T{dJZ4NI(C{c`oUpYM>8PX`Qr|CZ-vMn|$GlgJuQz`KYL7_5W zxj%3WmL`U>N)qZdBx9o&$s})>ls0)lSzme^V}SJSX(h4VlwS0L;6kY z#i3gZs`a{i!3}%QG`--+`S3j~VSmJ%j6thk#D#aj-j~%fOnNMqDNJc>kM!-J(-=U@ z;i8$E$69P{rEp-ZL*)h&f*B?R80G$^Z&7)L!gOkrTh`0S9hG-2`R;swGUNKx*!OwH zQ_iD272X|U-&&H`_G+_yACI2I`>66!a@x*Ef2I3o-~_*JhyI_@9xT7aO1qhm|cIIp*+5liAaQWi*DltB#gP|WjUL)*5%e4oTNWOa3hwweYt<$MsOa#?$= zsMShWw{&y_V~x_{>qymZ0xK~Hk2;KlEV9+R?_w-TKW*tEPK*VPt7U4CxYp}HdX%JJ z)_c+_)a7P=Gzk#FfgWyt(0BC>F#_!4{P?vVm#1{F!Df7Rjh!NliIZB176;QeeZ(T>4flEwc0B?XQ1J zg@?N50YjG8vGnsqONtj*Dn{IBp-Cf89JlpzKZefO�A6fV#u%TQV%Rl8n3RN!GQz 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

    aZ$IP{umc^>&cICQMaD@ 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%0ASiB^@^TrlkFVo> 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

    H~2%e;8W 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℞X(AMC^-dcak&P(aBR(T5W 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�} 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�kL($YFd{4l9WKo}QM&%W6_ClM@DM6i%3)+d0uo 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≧$iU71$TsTU9I!Y}q#2bop$Q+Mz1s#VXanF|EI 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

    PxVm2>f`*5>{;$_xV+=H)y zNT}xbs(^}q?-lN;INK}OvCuSA{AaG&OHsr56lbf!e-ljw#m;b3O!4XZPdT&r~19 zTgwddc?m1(aeUa=E6np*xZKDkz+a`{A zUoLbB>L5is_fa(z{|lLNiX+@p6;jdXeZ~IOA&QRKW;eyx>{o4~ILdxh5f%L&UpJ7T z+9^8cnf(;s^1ReGimoxHn2O`xckD;8m+#O$%j}`}o_VPXiXP6TR#W`oOg0s5-mx^7 zpz0}pc3xkNX| zCGtHe-X@9xBg{%Fx?JMG4KDF_b6w(~BvVeo_mX(|RP=d+m$*cAfZ~K{rkaAE{o$2R z{DE~;F~!g!rjX)9XSm0Sg8K;m4es?&oV3)mQ4C8rjTC>JWp+{w4;W@KT=aV};2)Iw_(Tnl_4kFu`o0h~;@G-mO@~MVR#zV+WcQRCIX3xh_%FQ^Y45 z&K{4@Xj4Q5XA=oohQ0B>`6njMF?AH%|69Munipd7 zR8vE7(Rj0kVoH=Lqqvy&Qk76l9c1#T==J`b?GjZtMamM>L2=1qBfrKpey=z?|Nc(A zG}Ex>OEI0_tAiAmO*cH7%aA(KtfYc{h|3om*0>xqc+RSp;xCiUHVS@5h*v>zMT9A# znB`11746=Y%vG`Gm6)AmHd9>1-!oN61$z^7SVOVS99*4Y4pOAeHgy!&Of)>3YcQAh zNtIIkHO%Bwam?f2=ZUJ7;%_s}E{b^}v!3GG!Dbm1%uZy?GF+2^zcVkzz5kB+!%Y#z zb*!USQe+M=E2uc;{e$;kbyFCrkLV}A*PTD))kB9n|%~FPBv8( zi^EMZ7011smbyg6nQy|9*@kDp_h%&D%yUrX6ibJi*SuZLN=`8=1X_EY>H`%}9q zRwS8C6ntHPw}v8jkl|V8iX+~goLlXq$eU`mQrs0`nE74EcZT;MU$l95&vc1u2Sq`& zSxZH~ch54Hs5&WDW}1T(_p*-KLs2-vY^Jy`+!Rx+Vm~U2ibLN0%tx`t{aDR9iZxc_ z0oGBh@ql1|qG+k%Tt#@0`KUUIV&<&MDIOYTR#U7QXjo^BIP5)~<`Nap>S2^5nhg|> z3^93Bba`ttU7}((Yw@pCvx}mXbyNk#qr(k*c@*ndS7lMbe8gkChiWgy`YC2B#p7el z8j20hWKqEy;tA%Xn9UO?n`E|8JQ-n1DEK}QFPDm=-cy`YHBppvPQ@9^@pPhL=1-$y zl;PP`;2Gwwc(Z2Kcy_#DR?lMdaKjp#MW6TFBA2LG=Q&i)Gt8C=G70#nL%PZIsZProzXQ*NC{}Jp})GROuDE>R$?4;Pqb5lIC zop^P)$)$qXie2nSv6o$VZKBysu{+GzRgozm7dqOf|(D0aHd%%Q|W$6+PaY z=`K<6Y~MuPB(s&`tubaTMg3sI8R|u+_x603s2V65CK&GB0KO){TS`Tfw|BBjR8UV* zQJW|}3NtHQ;>Y1&{btq^pNulB_lY>}wPd?Q)lBi}G{dv}6s^O|GAa&xpUrWJs+Qu= zL{mxeIrme=6o;KzNX35d3$9Z;DcYtO)@Z|*tfP1bz7$^lYf6yK(sdWxQc{FH2X2Yy1|2$N4mhxaq*`(-d{U1EQQ_bW40SyUWQ^ac{s< zH%=X*`0Z@7i(+8Nlu`U{s98b9QEyO&8>bp6em~7@qZk}%N+?cnCW{L0Er!fAJ1G9Z zb!rV2{oc?;Zk%eOIB|-pqzD^f@~B{+;-qv_M=@-?8}~=9DE`Dcs+c0e znI%-PS8+zF*-kMg+!Rr9+&hzNR69i^`-vKe-EQ33+)webF;#9{V6ht)%esoa#Ud`+ ztfv?oW(wT6_z7T^q5WRMR5woTqDYK0r4-`^nH5wV@y4gSacZv{H-Z26bCcY-B<7&F zE(zz2a^oh}xpC)n-(=39nkX({&x$i$fJs5Kj^e_>W;qqiK}_bpY9GZ#lMJ)C2vZ_W zF~!9^3zb6!`xjH^81_FEf94shYKjz|vEm#lxMYaQqoUKB#(os%oQ6v$8~%=6is{j2 zJ;h~VrjUw$FO@SY_LhpvGYqr395dLT+ClLb&Z){MW)3$c6jzKec~o?JvlhB>s+Ho( zwEySqe&DJs&&QA7bIv(uX6DQ}GBYD1#}E#O!6Q57>42f40|vf zBX}OvTq^kd%VhklY}Y-TW7S%Uo1@J_*M0O5*FC3$>wXLCQFADATbp8vG0ao3$77He zGV3VD^0AU%BcFAv8j4#7n{5;YysubG0mdbn^%RA@Oa;aGfGMY#5M|0JZtH9oQ53Z^ z>_rhKwlcFRCbclLC~j|Rrcz9HW(pODy+3lV)j^6W`DVZCK6SC{erJa3J}qpPQ{2_j z@EqNR>5-1T<74v2s58zZc8(rieujWxvsm~MKLeUFxPqbOHZ?gVt%Yy zM)5#rvzTH5`=Vx0Jjgv#lc+f473a9_s+QuRA*PyQVY1mk@o>njq*xSfn8PCcwUb#y z!S@q*B@~ZD820!Plr%H!MF}2lYNk+e#9LC}x+~_m1dk0e+bBx=nY9#;2Mu$497|)( zDvBp~U#+GnV;zdmk1{;j#W3e5v8;nxNbwXOtJxIGohhVZulF?jskT#;rqv&>7CQmo`YE9SHk&#}LXy?zd>+M5Lw&$l(~_48QW((p{I#tY6&rsAl# zrpR?y$0%OpJylP!HqRWOc!`hIK8kfCObx}$8DCZhW!6x<6=k@mZ=tHa;hI%=yNM~J;-I%R*L7F56z{OFY6rzO z_EE9cZFrY?DfaYTY)>{DDgNHq$gfe&JQaIhjrZ6e#ooM!9Xx+(0mb{R%`7S!yqyKE zyQ-!52lG;u6uWwul@uRzF^u^EYFe2YR2=dCIm&fcdnk5ue--y&H$F@=+=CCXhwG@d z6#N<8V=W({Hp0xK__(>5N(I*y{2T;t2gSeo8^-(>_C=Y66rZ#(Q>ZxP)#bSEian{r zr_5h%r{K@#9(%tZpGBJziUV!TbSmn-&ly+kr8t;rc2ayXz^tb@6l+Q;zHDpQgD-KI z`>JM9eAU!&FTO&33p0n}YmQgbs5tELXYuZeXOBORcmF12xaK!F+QH1F__s6pRP6SS z^>^LXT8jS!OgTkEC&Szu@NE+_m5K%x>++meL-B(QQ%%u?j}`AV!4C(UofJ(|%m#`d z^)eL{&AOQ-6hCfnW>YkGhIup>d%T~dyI568(V~Z0Nx`4fy?GQZo0}`+uv-UXq{|WduyCG$Z+m?Xv6VpEyek)Pc5cs+uBU0;)wUN92cwhQ?z5P ziuJa`1sR5GUV!$gW+TPVgJu~;he)%K;ur1AEGinjhqRv# zwi9DqJi&0>#ps-3Dkv_AGV`f8>S8Y~bFq<`F7~p%rktW{C$qrCM)BSi+~+HHd)=6W z+C;(6r1Vx%M0YWBsW|5SD#yjD?G!OR&2ozF9SrO5E|{N)%{EmOabdHRBGASZQNh|p ze7e~}5$t1DQzWoPHJb|VwFr$cTq}e`uBX_;M1*5ZF%_&&{F-?xuEpOGi0#37iaqXu zD_fgMRMdDq* zHTP9*py(H6=22YJ(iBp`yhKulVa-Xnwx?N6!S^h9Q>obR{WjCZs$CSx{S9+W#&sRc zEQ%EFvyxxq`lcqI3dRrvlFd4b8=_1J1%JQ5n@+`1Z(yE_Rji4>V-TChy3}Th8~Yia zog0xJZFmOLaZ^V#n~DZ+5OY&|DSpSeY8yoc^HuD527b?dRm&&_cQVX2kSBg|HctdL=@S;*#otEp7f zdN-%JSXD(as+Zx~qcFO&nNN|^%oI>j9R#ER2WV=|!8VWG3r&&%>*uk)eg`&Y5&vT%7w#H)u`>1wP z+{U`pMv9_Xvxs6M>rykRIOa{tb+L+PYZ7iBWHwPu=Kd(=HW`2HWEN0NX=?JQIOyHM zxT=O?YKp0(xHDjuP)uXL)C?+)dUs{JSha&d(^Mhs?#RKezVvGmGA#cGD7pu0o*y2ep_94z& z*v?F$;-L31$EwW~i#S%5Qv8)`sM%C7PqBEIsib%$)-0mn>mA-?D)xJi4tBAMYdwl3 zF=ipfV@(Zv@tCObN|RiyT1oMEgqcOf5pQX(i&Z-*p6GAZQItg*o}V&2$up$5Ur!3o z5zG3T)f7*$4~o5eO4NGGQ(dfDPw{lLSwvCJdKB|27dt$@9uliq%QINf$*`6c;;{GZ z2p6liQmpK0c#c+ruZeiGsW|4XVl8Sn#q-H#4aMrNrkLUd?w2a0VxPBWu!~hZe{1k! zz$~R$+uls0V!!uNhKp64^AgsDOc}+?oTp||QSViZaH@v1Yd z_f^4K#Rl%X;+zfm8|NwZ=x^e%w~_U!O%$&MOesZWTQix8I`4JPQ&kk3dKk{xgg086 zLMoV(*qm%CDBg@Qizv3VFhx|4XcHsTChB?14 zj(IyrxmdNG;vY$79mTG0W)Z~)d>*S@DyqGjJ}y@Axl)6Fwlh`gj?#E~S&02~BQKp#UbJnL=+vkGyiGwMIa}MGQ zuCI7@z7P%Gped!6#wRWigW%gxRy9J*i=#cr>7~WXlQSyQE|}wc8H5robzp!i*r3qImHh; zn*|h2nwT6aws}9~JXK23w1p|6Vz2k3R2Qc|7t!JN4<-Oxj40vqBF;-Vk#QEOR`;@s-ox;FbgRz<+_T!y;N`?L}Wj+isG^e zGo6b4Ue`1irLVrY47qYVV3ZE>10@=+?#*QBmXllH*i4MRW(l9HPYm z?^mfVPOYPe;eM&PR2=cTvu}#M?T*+O7Z^s72_r%95SU8ziw-Ij(#l;dObK#RZ(2Y+7-{~mFO8^IH#vL=KZF?#i?Bs zy;4j$MelZI1{L*QpAjxjRa0Em%f$iZwQ8l z%uvzO7|HvJV@C?+D>8FU9Yt2A*+!Ag+7;{0#?8@Y6~(Bq zSx+&Vk5vUlPOOW&g>~hYxVSM>%^?>zcCm}g&v0?KvM#lPq9DpFrx+J$cy7j_u)Uc@ z#Zhm3j*C+}C?+JkxZ8NIXtj%*$bN`PEzLA4SiiV^g4s_onP*q+ba7KAySO`; zHB4gYcq)o#uPKM4fC6UyOYdnikV$aDaAcpQ_Y})_569M zi<`~-?(Jpx_+HFuW2R8S{KS13W)sC+=B^e|+~2|!QBmW~>+j;!T8h6!n)wv-n;Q0R zzS!qIknZBtMv4V7hV?AKgYC_9DtHz|@es3>;-P?9NU_kFOe(f`4|AMiEe~T+bHkh# ziCXWksV+`!pjaGh7E?UZ(oCj;`z1;SnM#UBxt=PeSklhSq@uxltkA`&Jrtz_4A(Bj zpft4i!heWt^vWQ9Q+YY9+<;j)rS37l*y4 zhq*Y#{yvTJuqmT>rk$Bi1<#mR!TJ<)T7hR7U(KN6fVXmpi&Na=m3Xd?Sx&+CXn2gh zN-!_+e5Tn>v6}N#ImHVRW)>BkBi67U#ahIJJ}FE6!7EDe9xlLW-|j8s_*7d-TmN7k6}x_wNW7r)E%b$U8Q|#i=Ta|AYY zB9aYji@=4EW-bMPcf!k~Vz+k@=PAa&2%S0`&gmo?yo*P z5>e*@m$E;RsV;C?jN$%YhOXR0wTR;K)`s&g7l*tkuBmoVT#@DizhoW1WbdLEdcSJw z0;+(DYA+`20WNQW!Q_J_)P~RzecYJBfm!PPKLegjXqJPgyO39rkJ8{ zN5i>&adlh6{ka-Y=2Ij!H?t|OWxi@2MSt#}nnCefXC_l|)JraM0mWV= z%T8bM2W*r58$HH4pF|eB{rAUi3@@w44KB~nO=@DiT z#Z9bJO{JpV8gS8IB&eD^(LgdfZ{oufZMp9T1ZjEd8&{Kt|cb2mx{fZh)JBMxYi`x&UtDA z6$iY@tXFaWCgYDhGinvZl+I=@74_a7oTqqh?f~D{;4$Z^xHDjuP)uuOrcrU&yDP^9 z6wlLLm_Eet{7%Q8dYN*H8J)~Lio2c3qk_4JnSBgvn2CEL4d?v1Cyu(nY>pH6vSziO zg1@ifvEOrWUn|4B?-TpIxdU84t)aM|xv64`dCd*`Jx}cQ{*vqhY9+<|j)u9-#{-nWc5M^Mt)a7>9f=slY50*YfE#S-q3Vh&40z4zE)7f_WHr7>m! z#pBN8P_e^X+SdgXb6tuj7+*2=6N2$Y8S7M=D4q8t(lv!TlFc4KZ6OmIn;a z%yQA-J)Q3Ys+OXBkXcXhOjpCbe@1YgSixGCb^VEEb)y@=A!5qa40}R)C0c&E+5{egFngS~JcxzK#K&_#8sk32iFJWC%Gl7cT z-pf2+if7?vR74r}vI4I#PnAo>E^mE57f>rGUhQONQE}MYFw6y16~*7eW+}zSR%R*{ z++*?DAhVI8vYTP=Dh2mSygtfor`XiXET?#*onh=ZM4h*peO8qeZ!#~%9>0k#ElnX6 ztXsUreO2ozssg5r;_bGEYrQRwdRwzyKy9OVC&^S$Y>PAtDBf*m@~GfG3%<|6+d%R6 zXfvM*t|zM57qyk*J?5zvQ|xGA7<-4=f1BKYF@=Dy7)f%J3}j z68pRlhPZ&*Oi>eSN+|xxI#mu8Ro-syhgwGQVS6);iv8Z6!7iY-P<+Jv)pCm3j%F^! z$Ifs+J{DY0>=*2p_>A!tV}FJNoy{C7j(DGsZ~?WM;vn-^ODXuC2X8hNhrC0>TtIE2_>%jfcqYEY zVb-k*si^Vz`a(dhrl{{^W>In2`+Beos7i_>F@`-of^S-z=~OT;adecarucUsvzFo* z*Hc{UnBW}opESc>{Ra(Q%sh&3xt^LqXSjIR)J&$L*84$!7q3=PH0fk!Q*qS$;RF}2 z_E7NmP`phPKk8-{Q8a6A3aQ|F;>Vn))>1U@Y`9i)QSb3}jCi$~qD9awq2PNSydo;< zyq1GqysDx&Cv28d@UtVlsZ?-1aW21I8}`Rs!#rfA#L z)Ei;-ZjQPSL5WnMZLk>s3Wm?DaZlxOlah;u6-cmQi%+ zWad*`%JZXgso3g8az7P&7KzKaFN!r>CRm5)nqz7xF6TZe_Tq9xbu(NmN;G&^jB@dc zXXgrZ3z{VqzvOyq3Kex;^k5gSwov@4hhdJtLJaFu#T4DyC&k*ji=AFwD@6A)q?HGzuVULx05>nOsJW+BC|TbapJ zaDPP)&QohCuIysi+bhwN^{PB7_ISTZcJXQz1z-2^SX(c#-|Nlutk{#@=)-!{Oezj| zSEadlwV9%Cz?4v2-P{yW!T6$Irr|m3higKnlp=}G7sWYAg8MG6<$9`uqJLL2hl+ad zx7jXURZ}GQG)pP2Yh}0>*NGZ0rH_kOYbdVoV&+oO;0<7WwTUYGe4^$P)X!>~t5ect)~uGxJn)sW|G5%5m{(C&g&)zgk9-!}w|n z6+DCDmO+NGZ$WOru(n)`X=j+z7_rC8OLp;UHO1HnGmVP<9zP!>Uah0JwUe1m1@jjL z?6Kk*EWkLvE?%);<1t}?;hYJ$Ey@&A6giVm#cpq6Ul*@d zQcPl>)dGs!o0&W+c6gIHPpzQ%V+S*bVoDP;iHbws9fdAl)lf_wY*_nL+}Yn$QtXMUCca+2bvhhe?V;Y7W8!Sif3s79*i~I>jzOBVP;Tq$a`pri&yN) zLs%GNN+=#?eX58G_FOC)WVqHM{I#1|NU@lCs(dPTd5)#TJ}NlIkOfo@qDOJR8)EEI8H60c$s-A*7CAozeEM|QjA@JS3-t!Ucvg- zhPA90d~S(X)6E8o4bg_RY{1{xKQ)DldT%4olsZ81TAtZWQ8~bDqIf;VFqhY{sf8(^ zVu$xeFBh-MC^ok;?B!;$-+ME|#j8q+EzxEk70gq-HNd-tHXJ=?`Aj@^#G_cd!Nsv`~asK$Hk%^Hdw-ApOP`<+b*#ZLA{F`u1c zpZAXuE?(`T*p+IkC_Z3qs+^)G%CLqS{IivrK*b(!H|tZC6d(35D=GFcjw+`3sF~q; z_(&Y_YMGy6F17f$k6A^rw~JX!@vnAfIu%D<{3lCXeBBTi|0#1&ocAgAN1EAG9P&Qn znraKhfq+>~@p&gRpW+~MS4C9Rd0z~6@oF>0A;wXQD86iI3aQxT9cGPc1;tmaQE|>! zsBdEOsi^V3?(gE&YKkM#hJ87LZ<-tC_>HLbj;6VIwSnT_%u_9+IM&8+P6K<^u*b!J z%W(*v_}@}~g&(vxGpVTen&i8n+C%ZfA*PC=Y1k~I_)&zJLB&C@S+)zR8j2q$nN<|c zqs)AYpENUtRMdJc(p^whQv9@sSw+#Zi&;oT+U_UMS6E_mfyuV*(GREsHo!(OXtR2=epjdDS?gQ9nTvw@-y z^Ha+yu3~;_7DZpiRkJCsW{*@674=@fJQq~#SwCEpY*tewbup|f3D>qTlc-?6qCfko zs$DR7z6)N*GoBJK>|YA5?`GuJ7|_*}QQQz^N-0u18OBS+K(4LWr-9+hIJ3cu)$_8 z#qbekH^qn?!`w$;B0ikwmA0L3jl z1Bz?jg4|i&81_eT%`wPhKhy>n%+GVdTccdCpt+gmf`!qjbHVYOya}-`s7feqYiW2^ zZWFaGIFaXZQj!ba&Kec><#xe5#N=GVeon?8`x*BCkC@WM1@GA7g8VGc;GN7tv6pvZ zTE3~FxGT+UrkLK#FwS)RiTSE>iW#g=Ev2|S!px(X*}}}BxTl?AP4{3{Q!|B%29KX( z5mfsrW@nq76!)eW_W54S37eG^_i-N-&&GY2+uAUPxwxO}D)!@kQSZ&mbwS0x&u4xQ zumqV7+4T1jBU~;}O=U z)>D)OOc}+a%t0-nSkla}Z%f2p@3B-DRE+T$N~29N#pBIQ5f%HqrGs2hZKimF{Z-`@ zWt|MqVVOAMJvrC~)dm-Qif3ziHy3=mrI|@l-qf(~<%0E#XC@o&#WPqj!5pM`mhsen zij|pWH^pR~1lQ-8T@DX(u~#3UhJ9CS zDgGI07E$bOWu{Y6?|qo-f~uBc596vDijSDDs-~#rb6qj_T72Bg@Z5h4{v7EQQ}E|V zZyv?ImSzSON4-z-Tu|+%s7o_d6rU!U)fD@=j$+LH_^gTHnfgqy-{Jt{sPz<|cQfqC z=Q!BhaLz%&wZ#_$Oa%o$BhxFT_>$|Z1r&V0f;X9pgWgxeTu^b3zCwL3!y4-GHP4$W zp*X_+s3Iy@gZO5I*-mjZ)oh~pcgU1e9E&isDgM*cu*Uz0JzhhK3o6#wfN!JCV!GHR zxHe`66%F1GCbC4yr1T{1htEzWs+Gg9CZopS^v*jR|ob;u|FN~iymeT zMMShIqqwlMVV(ThGNB`LRP0wr!TiKU6U<(UPN^>8V(x!u=64ButvK!ybm6|K8j4Ff zR&Ah&44IV_mvuE<|1xxKZl+Liz`J~~OHf-WqWZanEB3jBZtU$ZrlP-T3ieR+NHxr>2d<1VoO305wlXuQIO6?ggiBC6D0=lbl@z^W4SU}k zeVQ5erH^2b#Z?)GdGp`!6Z-ZtWfWI;FmtIm=Jn(HY7@mZVY8SbshweOlEeX*(0`#z z_-(pNNDdg*myGKo4C7yil$K@|6%F3?`7S}R-s>?S$!w&!fpHaM-hkBBW+oL!yn)#+ zK~+)`KgB&2hn)if#&dpG5{1htidpN-&g9|wW|_U@HZWUwb{Iu-1R z_FHy&oW53f44WUze`Z7 zDEL_hUNOb|CZ>RjJ>CPUE$GpY4E|!V`=y%ED$P#gm+?=2I-=T*X|M3C=<$cT=il?Iu z&)m}}=enwl;u+Sa7E!EdZDvq$#Cw)&sy!6^3<7T_1wV(tWA4vkRis%=@qAk|or-#I zb+$`T+bCY>W!S$Lu!i}ma*7u_8ScZ2Slh%*qvD|V67yAiDAuK#O%yNpFdHZ;cvjR3 zidWb-wS;0l^H;N|U|+IP(!ngGc#DtK0*b1ZW-1lOytgO01a**NEBm1KP`s0F*z0$&Ey=8-csFcT zQEZPkD=7XRFqIV5gUn8f_xM=tqS(Q6qG~AK&oEmkcJ?%DDgF^M6%@OA81`rvKHzy! z@@v#|F{Kp$Y;WdK>~3r3P<+_ha1TGko(RKOd+D=C^rnZ*=8YHMau(cm@9cOkW#;>QEbdWz;<&0LC~IKz2A5zIxj zNHVJ_e%i$pQ?zVp3aO~^>($iaDQyRuN_f6$iX?2f2`9PUoU^j47cwkMUIz75lw5 z!(2#hrZ~T+;acaTZIoF=@w3)uIu-RE|6dIuwU^=o=A#(%0<`a8$|-){$;_qb;7kD( zwcalVxR6>$5fNibDK2bpW>a+J`B0Oo*yr)zKSPSST!c=24fmoGF79R)Qgm)^m`i8D z{ScRMAJr-fz7O7;Lq&skX`TzIT@;bYrjp{aUS=glSH@BEC@yC|6ysbj*i#WT*leY^ zf_11h6x|{XYv8}JhJM-F%%I|!7hT{&iu)IhUuBzWikN<;f}(rKFxT#gWxk3v$0CmF zs3}zJ_X5mUZJ~${ni7g&3p0x%fsa)Y6?I;SaTIF~A+eWPO%d*9cqYR5bw^W7(S!S` zCQ-rs#Fax#6-7_(ui8NI8?K`&D0;=3s)4ZOwEl7+3sul-Ws<+~2IDxGvhTrt6Tx zIEpb+1Y?Nn8At7)7?5tZQ{2F~ioLu6sbRB}tVb=O$Y^a?3xAFdWgPK-&wA8BiorQ%H^m>)%~pybea%{mp#j6a z7>Z$?OfkjqHfA;zTvv?9HC$r^My8rdicI!REvLxhc~J`}vU%>*R4SOexOs@FrWnQj zQ0pm12MuG6MowqLTyt;>%t-z8qfYtU=P()7b@zCS{ItQ!JEX#YAzK=z1v5*klH~pndd{5Qv9)n z;rjf4P=@}v+nd6Esg)FWbTHGXsPm>WPqm)n&L}gFih6I_U>8!{(`mRX)-0r$-qhq# z!Cb|kn1@#YYB9yE=B9v(UEZJjxsX~(F+0Mr z=GkJu$M=$l)H;ee?7x~%abFXYPerviw~q^{WfXj!!ka<`_f+sT3U39)Us$)AM={?S z?(clT_~L=SW);PPE@n0rN4y6!T}biFK8WIwVQ-4@P%ATmiap-KWEWBu6c4j*#he}% zN4-UiueMSAwU=2=vACU?OvM53kzp>RwosHXFU6cn@F??AQ>du(_@45RT2Jv9^HQ^^ zXz)t2T}UyfQasN1s)S-`bCXBKc8~w|9#YKV36yc1;+QhQSmH^>Q%fn9wKYXl?DC%K zmt)W=a+03Hiu=ngR7gCiJ{JaEj z0mXC9WK+SK#HyZVImPoG%v37&d#eYzkXldiLZq2b10JQgOsv&%D%TidO?>DaD31hP~e) zSocPrhu1P(s4{F;P`uv76jN++rjUvnkFTMG)M|>&%uUUqc$4!K=kR?2p*Qz>TL!t1 z+C=dd_eiaxsN(u+9u*B9UsDOGdWx+%hWTv8JM5L(K(Vctsi1f_#&DnB#rAe)78MQN z-iv%JH_sPhB0^J!=T~beh9wa;&E^H;G?!?G8Nn>Q9HmeMlC*$GMw|T z{w~DVRYLnXPJF_#YBfb&gkk-4VxRYEstYN``xN^-o0(J`@jhcsY6r!EB(sv@^GLIh z;$SPowGN6y-WQoJq_}Ti;7~uqJ{-cAtVxwp9A+Ffm5Kx2R~as(Dku#ou z;z&Eg7)J!pk@$vZNo}S$8Z;#o|88NXP{BIHG1j42!!i7)k6A;}5N#GyeB0Wv7vBoT zK%&buJ1BmTY$_?5^fD_ce%Q&(rD*C*E)_eyA2E)qplB9jmQeh-m6=4v9OANqTV}i zgiBOh`#iKsG4gAi&&O&FMcY`jl;UR{%p8h#O-un5?1#7@$&^#HZ)=!KdvVbFIrmX* zr|6JkHc|Y7>#Gt9ejb50m5Kx2g+pATs-o!F)2ybrDB6@!@UtAfc~l(pF6LQKbrhXP znQDql`Wo)lCFsIFs~J?VE^%qL;hakm+0U$|xU7?5O_!l7`>GhDt2pFcp6?RXPKv1h zW-Y}PjH5W`3c>Rsy0IT>BgHSH%v>stdeN*;@i`QYUnLpl_$$OPzM4Y?`y{&O7_QYF zd~dwBn<6gNtfL69-|^hvAlFV{O^W^H>nw>Oo&m-BLP#8JYAC{dtaefSnvYdAMUND- zh2l!qpqT%a=*hiTWfZ@OFtaFnH8TZN?Dcwc9kq?3PqL|?xGL5xrRdAJY6cZYysL9u zqGByqqhG4oL~%_oQ%=G6(0dChu5E3Y>$T|L#1v4$nBuqTW-CQ9`=Yr2$+)hkSx=GD z!|-{|&kRVsp6jZ46a$)?$y6NnZpd|sYA;1a*U+8g;bCi1aj4<=$#D>H)% z<{@q$VweM8TS=VEJQQ=7j6e1?t0<;~%uac3XHn0I1YtXWQR z7vre86w{lS2`+I)XVkdFyE#wHDkv6o zHS?%w@E*)@iK?2SxToPB6oapIcQRh7}$R(;uijtsVP9=Dh>#1o}ux_!0f0ih&wFHj^%o2)HuBSMsR2=di zAK?qo>;+oigQ-rS+1u_C|0&G%z33?&f+=FQ=Ic0R&hPWwN~Nz zPNtY*b!)>tTP+wvyfDZx#tT@}$E=}vF~%_Fi&)#i%%+0pQt&+;UJb>%6jMR*aB z(kuEX4pm7}6Ky!B2LELJs*s93-fs3yt)cj^vtjKYVh_)Y%A;bJ_fdbBs5s{% z)OIz+6dyBBHHC^p-rm73QL(nY_*cM`Q0!}Iim2GIwhb)2V`P<+b%Dz5dZ zINpQoA%ii446E)_?;FGjdTwT0pkourih9<7jC-1g@2Ul!hGGrn@{oMW-i=(l?(H|A>kGS z%sPsnMwx{aEt{LkR2=fo8REifGexVADWf>IoeQ_#;KJukap5+DO(n(ov1SoPTjrxC zP;t=vS%wQM#`ziAF*h}jiX+|y%tdXdXwP0L=FuK}pNBVtih8d@whOCjieDs|wGZOn8k4tO1hxv<(saS?l=mQZwRZVIW`<6X?&E3S1hI1@uH0*U0u4ra*s9>)}w;qP) zvKxNc$;_pQZemz_wAkhSs+S9^Qi>S%Nlm5Vu-AQ%3#&?s*l1Hi5y$#e9uyuTOZ3D1Ot@Fvf30o!2YFh1C{{-aXAq3Vzn1H=p9F)@BA3hrPbcM^#f?&3qJd zxf=agms&`1O)E2%3dRvhgAIF_gljt*u63*RTHS#>81B@;hXlk@Ssu`{@pZlh$17$?4tNRW2(&*gTpTT2d*`w%!P+?ZPh?A ztibGb;Suv(cqHd$b~CIy6IpEx*Ub`KQ)F{p#T>J7bF$e;F^cP|l@z0+%n}NIo}f3I z;+CeSkctCd?l2ctTPen{7it+rUMI7F3f3jYW*g2K3%)+#t){p&(s0hLC}?YDxNu=C zxc>Mp-UQa7xZVWZ*4|8~;*eLwHPv>CiM>oY#iR(sdMAlv-tDYcan0K?Im7TgPR1Y8 zO%=tIB(t94j-G~f-GQl5hJBujJKLFAR2=oD<-4%jO>tMM*+4NpU`kwgMv4pH-2!zU z-;WVi>nQGFKNaiZXAy+&;TmFAreWT*@aG<8DaGv8W)c-V=i*-0tXSW@;QzD2E2g-w zxnb|_6T7^*eO*|sq`1GMnM(z867#rMiv693zp#gDImP_8W(pOoTRgxXDc1Y|7IZeV zs5tCBIM{{NCW_)1!~H16LoH1a6^tzw4lrvd9%g*S+#eRlyhY4^aeHic;YU_^C7oPY zaU6diB>bo|`Bd!omaqm@N%2_Nlv9*)O;t?scq=oF3f3r=G6%Jj;)wx_n3B}XQM@^#QpjV#l!iq7<@l1xuO}PMePfghZ|>s4Z#FggRMdN0idS!4t?Lho0fEA%5R7E?VZ+}<42FlA9__m*6_ltfmtKR7mO~PIAHkA zS+0?n{IOSOjxIcYq&w|{v)}KXIbnF-$gIrMjyv&UD_l+ zpYfw}Gq27YKPIbSc;VOr*T_qLuE*aNPpUJ~;9I_4!$OCl5H~ zqZ3CAJmWg2eQZZ%j+0sT&K#FMJa>H7ILEI}f8oS&X%q9a(#8%b7@N;67(HBWVCJ~9 zU$o(k%W`)co=yr2Fy4(yvY_W0A^H*4I;g3ZBQDJwhuqce|?tDHRI}`3yUGK(T^eb%St(zJ< z{-)!ft0PBdjT?8>sH~B=PpEkq){t72X z&dl^TOa2jgTNWSi^fmIDt@!MBt}bfqcwTM%4F9i-#;$Vmoionto0T{EjES9m>AQ|S zby_EmK6_UFt&^8NvGgReyW^=|XCyu<1PXPH%(?mP&w2x05b>q0Kf^lhM`Rz%;#Qegn z%zmSDbqgAO{rFiqSw-k){z4WMo(bqoAtKZ$*X^u=EIu>* zr%2YgYYO;H2fxMb-RP?)&&Xp(<=--=pKF=F#w)~#TUrB#;$~(zp$KEnN-$tBx&G^xo{R+m8IsUOc z39_{R^Qi9}@!HeIlkpoHv5}*`bHtS4W8_~?XHUz&@xABquY$(UJMmBclW(8g%!y}R z@~rpHy6PE6oOa=}-aF;&8^&i9OuQy{?1~ zv4za$%vX-jo!9j@TYPPbgU5{;o$n7m^F=#8H*0vo$$yw$b^3>m9K$?MJ?6v=bH|R$ zI_4y|H7)@MoFi(Ro?&d%Ek!jXwDgBgb!dzx&PO z=jRm`jLo%4bH-^OHg?R_MLayG9VV|dek8Z!j3ZCn5&ya_<-~aQ(P?ApYbVCBk4_vh zA&ak=*%$OrE}So378Z=oyZP*Q^iu!(N&ny1(~1AD*E?m8^wiOrCl)0C>|;wCd-?P^ zo_5a3S)B3m>F0dMo;CKR;FGiXpHBM!zTU|d{14YVb07Vwx&^21;~6hEHb*<>%vqdx z`LuKR`t|t#N7}nJx0U4B!umrMG3DyhGv`s3>?(FkmX0Ks=KEe8w74a4Op$C}Y-?W5 zUq1^#UH~L=ld1_vSWI9oB=WLz=Y8*1ljZY(WhNTLqw6HEuUsE<5gvieme)KSK3mD( zBt?6&8#*zJ=nk?mJ0lBYq3tr4G=iai>Lunx=j+9ga)Oq~#?1C8*4q_LE}U*@Y>hgY z5^028JW8*{mpYl3cSe0g9UUfJqfrCg;3VGg2d+(_MlA zCcBU@HkI6nPL|sp6$wWFk}Y1Ut=<>A8e7f}FRO7wb2r^Q4ZF$maV5?=Q3oq78m#tivb~(5lQmroGoKk9RgEVENPHcY z=3?n?hv_`bUUSkXTO|l_*>b_@bfi@HGz8*myHQFEfw*!~V?(s%WtxNjpbU`^#5*Zxm4zb0Rn61;t2nDV> ztUH`O{A)ko(BN=~O%Rj=fiQd0sK{y{RQPOohHCIAXe-j#4RtyGm~NjFu!a>1yFVyS zf#iVEqgOQib9l{&95fib9#>eY%u%6xUj!{q8DkiQHEK_@XvXz(BZ{!qW`;VeX+$Zh z$N^=E-cHw>)%W>q*zjv06<#18W2GW&Sf-X}EjKJE04M9ju?_4)rqMsw*qKnW1M`3> zs4%||%K}Kht@Z}P)YXgR6#yw{FuU{Naf)7J&a;$Vc)c}>QC><=%QLBhnrheebTch( zDT$2%X|up0usCwv0;|L#sSB%eY?s3dMegyADt?4Z$RSccqu3&xk|{LiM|C;Ypu*gs z12^5~)<%lU$rKtB<}MG7#3Dvx&=;&;-?nF)!_)S}aB`00rWH2Qn3&oQJi0)~V2S7y@aAq`rRHit4|Gdy9V%^=f) zx2yez?L^Yd;1@zTltmOH%EZr&e`??{XGgts-V0FPA%V`ZWsp}05{xhyURzWdZ+}=$ zzb*zIr=95EVns>7u%Q6)&O&J0+8ldiQ$nO{O`y@=!veqO37pHeX2kh?OYUY6vMo!p zrTxqKfPIuSMoWc^7Z<&=0`Ulk{0KPJBPd_dgPlLz&0mK9f3?Jn#N%r7GNqj&!tJYT zyxGOu9Ui;nsF(H7)WVRH7GK+)NGHki44o>gi|`svyM(3k&;tFI{qeHuzteDyN?UQc z0XWGXjB>|_f4d6}C{v8cidB`*T@O@4YERSt@XwY5$Z(JjxgDohf1JE&O8?c=af z$RZLfwKTPb$xmV|?KAFAB1V2zXujv;e6!urj1FxNYXr&iV!wUnXW{hZqx$W&h^=T# z9K2nf8&BC)b~)^(*pN2mjnOHEPLu3bCR(pEEPu=&%fN6=h#9WnYaaBbUVnvOU8V5|Vy9&b1h!a;%+J5o@F97Vv(^VwzO!2A%TuEbS zR;7^|i@b8f719by99qnlt)Sr4dWdvi*=Qi`GuV8?P(J^2*er*ITXjOQgz^&4#jt$Z zJ=22?Xbn_7Z6L)~+36GJb=NYZLj5{wxQH>LK4gRIea8SDlcK&UqG%&m`y>zPN33x4 zt#KW5TFpwEPPokS3RjWU7%UnGgwXp!Rz)5z zbw5Gw@qyb{j_}W?4-4|QC9`IP$$Q9Ss;EY|@&L!=q#I#h{aB(W7CJ4e5$?_9XpU9& zhz;5p8%NKYhDp^{<2kHQyuk`1(Dh=Pw)%3~TJZ>nD|s4qDO2i6N=i&@(X+shkr#RU z39D@vQN_+@6JE=FoMX0Yzk9}(^xZ3`H`ZvT6!y))%Lv@IqltGyjmOqyAB7S1uxG11 z4kl8z&S#n+^1^a^orvH?6-x&xTql92PPD9|X=9WOramsFPu#e04_(V5^u_Rf;M%6p zBC}|8O`e8L+U-StQ-nsS@Vo&P+v0G7j-e_Xp|}F1Hwm#+txD2TrA*k{B9yizVUMEa z2ihw+tEUn!X0G$5?B^Yw7Hn4=G?iC)!kZ->RBCU7{R%7GpX zdrs={9twFx`x;S%K-uuo!K*RUah%97|5^^8wi0ctBJYzuEpbTRDj!&O@-Y_8mlcl; zug;|P^vXlW%=I~D_IQx0{&!TLIpv!xNZU>l#>|b zXN-lYT|t2gunIB`XUnnMjVcu#Gnb!67u1*p4K$WX6-lhBTC_D=gC;g8e021`rS~EY z9=>A1=_Hb6G`3>VQ+f(e`RR021&X%T2PL}K`dofRue4Q1$EH&2B<-A>kusv}hr^P+ zMigL?apbsyvLr@2qd;0;sb`DP>eHZlC)s+e)A2-z9Am5t**d2RO@v*16Aj@zY2(Wh znp7oe7z68?D3Vk&+6s@g+#M$SrGUEXBW&d8J2pyMw^KQZOK(J(%sIITWGTk&ly`&^ zM1E8`@63>%LfUzRsae8>io%m6Im07XBrY6UzTgFe^k7uKJDM(YOPeU^QD+krvA5t5 zttI37)|harLtM$P;(%qBd2aYf)1f%ffaAmzoeGs0(4*m31oq*bUQf>1twvVRQrqYe zV4x00n0FMb0_C;5B1Jo)3~|WWA(=8G!Gig;ld1N*6}n||a|&z+(!!t{QPQD6AXUg9 zOpdVdscrpQY+(or8{gR^_Y zh$=-!spwrwT8)k0o~xvlbHj)bNwOSdn$Krdf!@ibM0eI0r6U=XrJ!`F%6A z;=;iiSFR8Fr`Gk#8fF3SX|;t;L5qQo@-Uz406d5ds2TuFTgno7E7$S%N=Udp?Wl#k za^5kK)zt>>S@4B<>t%wzyv5O|_3h@n99g@bZnr-$OL)?gkFwtNXgOamr{9LtuiMoE zw-4N&pSWPM4Gay_umuVexZg9*i86MLjcwSS^Kd!ceuF&|6wId;7VKW%k)yxbf%V}grEN{KT?m65FWeOS)Oehn0^h|o4~b`>E(!C)`M zBL;#zb&jdd6CbW9Zg06amgc1i+6Wb%$A9_w7aNu#VG&gx?4Y~F35?{UtZZ8fETC6FwKKss z%8^_iQTJ>#SxBk3b{a^vMbEOYP+nHij7<5)eRYbf5yp5PjCec?V?4@5cD>2-6VfA$ zvz7~i%a~m)l8S_#lqwvHsdYXOM;yS4ca@T*h7mtofVPU3*Aye=X680Z#iynxZ#Cq6 z;MS)|I!MfVa0HrNWS{EaYAX&|`lyVhi>7hu_VX!ZO*JyRGs4ybsLH<4N6;0Em zEkC#6xeGwAG`feBI|v-e_Nxf(w7d&(eW-pXYFZD|S`!ncX+`B5urbYf(FOJFm4|=K zUH}q%{EXn;$*(y~hx%}Yx_79Yv&^O4AGpNe_4ElZm+jTkbn%2Z4pA}Y8CA?OpcltO zFODOS8CRU4xWV+|*XdRR0|IzfUiZ569h-&X%t)>xaKVO%DX zdRGBN*`*(F1ouo{jT;5(-k(MP~ppXh=C>4BJRbM8y(?g%RNbK zNP)io&U|zUmrES;PA}!xQ$~4N4^69dWYyy9+Fhh0KU+qwZLKcC8}$114zu^kksMGS zizu1NfvV@uG_pqw)KH7asm&Oh&MK9tbhx#JDz)5B<#;`%Iit0FjAi4fES)piro}3R z^rmy#Rj9;VWGU??9HBTag^FUU-g2H7w3fHFtJcP$Z5eKwjT>R_#L#ztwdum(|T zq$Ey)E=Ce6GZJ(d?|$ri@)Gq(qHDaCgIqYPGsEGXC6=(J56=TVhv`6<*HkY;CfeXG zx3td{fey=pE{0t#Q!A8Wwek|DZ1u8A7>mS;vwz9;n8s}U+iO!DPI~k778w_a3V9n^ zuS%U5wX9Ug@M}30gtEbhOi~V&--VC0M(E0`7a8It8d+TdC zVbQQT9SWgWI}yCdU~`HIWK*0ZsTQh`=YROg=_m-5FG*J0JkFay>TOnrwymX}p>fUw z%80WCmUf2i4P6$P^2Cd)MGO=+IMXf74044Tjj-Uki$$H{oS9Y-;@Dk{Q$DjeZ>Z;T z#|Q{chjMG(vT7t=Zdpy^#W7i_Wz;8@q5hez!c={%Ah4Axk;eHP;YezdQn1*PD`iq? z)qv7tC-wtf0>YVjGt^*!;dm-W`9gc;u)bLB)S$AHg~?707R>FGZzN%7%5Set*_ZU@ z9Z+N(g$j8aTCdW9IUA%wx6n>f?J%+yx!`=6E2+d-SvFQo_*((EC|h9{&xSo-`N*m?UOn4w7BV2jVi4MbuFl5R zvQx%(_$HsbnCf_B|8NS%_@0e6|6$<6-!*792|pfn%LxP@)+qUM0o@57;49m+ zf?`jL*`5^?TzF~~@r3fiqWzQZR3kWnw9jCt8iqXktZ)DO6+d+hdk- zF#x%bpys<{X^AZ}+7pe6*eXZ(d~Pu$s}qf(UXCq}s77LygNGqkpGgb>_0Zt~^+^1D z@-U>UGl@!1O&=9$&VLRo`@Goje!klZs0KZztzYR)?-ZVwrpVa^wr=LkA=X<*T(H>U z*NbVz!J|VdT2|52K`5_bvS|bbNAFmA+*8w(rgwmk72`a4azbW(a&}npOxcD;$%K-1 zC8G`=9io`-FxQ1Xp2mCKAvRi(uI18}D1^lu1ZQUQCjC~ivm~+8@2p*|3$^@oIwB@r ziIdMtecUg3{_Wp>`}>J}o={7Y6^s1azj-7iG4j_2`D;S5$NX+TQ9s2>6_lm>K%}sj zSR0(;i?58zfmZ+L)F2R47#9EBSlao{=$ZybBi}%teJ4ckE2A^I zdOPj$qz*GaKh=uF*G7SlFnMfFKR$TOkK$rM%{m#i;cQV$$(#)fiibawPai)lpRnL? z;(~%fB0k|9CEY-nei-@9etCXz@f#N9lfDWJuIO_*q?e9Y*jL=y#yxiVEvzcReQQNq zxjVe=xc^Hx#QoHv%&#)CphJS-J}@Sua8dO)OfG-;iE%$}m_nY?q>`2P8FI&!XJkLK zwKRElwM1UmIIPshp>;J5D-9V9IQv3t2v`nB2Ow_^<#XwcOsuwOnj?v&eFh&$cQMeE zXO9u#GkUW9bay&?nd9tv`6YHPrg(8aBWuzBqxCC_A(F-D7Mo-IG|-LR{GlE7Q>;`0 zoo7CALBY_3e|flMm#+#27}?`mFxe0Bfp=}82Bqd4Qy%1*mx|R$cONop9JnKDyQ3r4 zz}4T`UY3xR`nzaT#l+Snrt4sUVIvize4qy@D<~!tE|!!uJyI5$gk3zx?~TM>cxXZG z@nNAIKK3Y|{z0m}AjNLQFy{q=gE8#lqn5rv-2K7#Sto7+{brC-MPdP&s^me!ZdcT>j*ECoNh2l@3LT{oqqV0d? zhpUMp5Z5>wrNk15!#>8#c0Sg@fV$VafQnz&`MklY7l@A}mKzu7Beo|lSTVA^iWW$RhmF<#ZmhZ93F_I%7l5PO6 z(YM4%>LYH{UGSM*dT$pqBihEoezBlIN62qFzn;h`4Zk1SafJ#I041jVHX<6sD=l z9_6dL*Z-vw`TPH*ME>3{k(5$=J$(I)wXQjJ^HH&ohK}Zd_qa1~K+{PdFyFlXvUrCk zljfB^eZIK(GP%6Iy1Dyu{^9oQW^#RZb#wB6fz0h~#O(Mz*`BWF=(FH1sRf_Q;p=r; z*)hJ-8s-x|1izf^a3)w9`L}o+@;iRtOy~G;1Fi#Fy~s2j&z;?&g`~4{=P7DGnwXO#AjhQX5nnsP zCpIwtL?Mc)i$nT^I_3fiXCwo(yFRR3p$8qIXdw6SOSQ zrV?6Dzs?t!wZYYDJ-M)G03e(ahpa_+6^Xb1`Z7;cdO_B}F*P-PSM%*nz9n|*>K`}1 zfBHfbKy*jl-~V>v!;*p`#bOhEJXQm%$YF0Wji-Sr>`>)9pBk!#N97S;wfFWe=8NWa za)`zvRQoUS-o+E0T1p<31maZU7|qHFaZHfUaXbnKrTJ^VysxLH67HY#%?{s1!UDzW zAx9R;3>qfs zdTAg>U*NEqT>oOJNj2B+cR9@|6dGYOvo!#quILhcBNq_}Q`9I z{ZGsyOgFFTinzNK-E~ISFkuEL$uM1YJXUfkFk^E_JZrj#ry%?l7Tm(<*~wu>L{OSndO(~VSznH+rQv@ zK<}gh^Ip>GY~=a~x?l9;RL;5b4$~3sQ7L)Fc2i2hyEiS0ZxyZMIc;UXTB6&DwXiL3 zY_B1yTlcsp`~7P|pz{lm69l+h%&=hA(?FB#xb$x4m{0sGDb~bJno(L;TRPfFmvz&I zDVn!*k~e$#mKD)0Mp-3!BfDOxHGRVNxM7yQ`a)B0Jjog=q#QUcxXyV0i2dq&njNo6 zY{hR*=UXO|OgekBN$^+pG|&s`boO6Z=cRjT^ULFaTGEU$`IwCZ>Nn@XTPA2s9`t5t zkjV1^AF5lSr8>vK)AXr3%7?O6JPtS}4g1}EAax_Y+X1#jNFe`o!Bi(moWNYw2ln-kdG)>GGU^ zDv5oidQvua3Pn;=}>GrpO>;`F6~O;IPvjy z>CHWKsYOETw0}3NQ=D?5+YtD`4&7KBh;q76BN7~Qj33blp^s;AJ!r+6gG~Ya;;&!B zO{_qXdFq@2m2ug!pY>%bK>RNb(Hb!oPnvZJwB7>d>`${J`CFIDM5wMdzT;56Pkr{G zr^{?}^x$S?f)%q#X$c)6)+pfk`Xy%M$i`oN-LaCcn3L+! z)xIH3tFL^y_g_wr<&ULBc6OwtcG|j2?`JQ3i|445n2JS@3nPQsd_Mc@Y3Nw$riL~e zTC7qh%(n%B)p;L_GL0Tm#i5@WJ?W*y?}l4=yv{u4W;Oa!Qhd=zNf={8peJUe>$U?AXKz4IXnBnEa#95e-7L?)B8p#)`(% zF~3zAZrU(v(`SVSFTg*h+Yc{ahuLhHeZsM`oX%Kj`Plr;c`*zmZE&aHj*ET)_G6SBgYp7-4nL#dVa?@ICL~pIz1-On}^Ii9_Oeq`j%1M z`S3X1FLuAv4&6)KV@{hb4kHfa+6*V#@a>Ubu#iHh(&!-Xk;@+uvy*q2+2c*Pa^)AV zhG71zl}Ub)hMRd0Z-jk3EwJFQUSuk%4so|5lpS+Rzb~G&LM4<_@zc z5AktwB8*xLkhWMT`B;ls$g!g3rML=QtdE{voBjM{_S@{+%kFJYu48qc+TUk$zLoUX z-%ixeLv_U3K5{X|rK7i!a{k--KQHgD_Ph0dcaDA*`WaiSAl$9~_<=@ckK=@g04diQ zCL7$7jrWVjOkdx%;yp1Ys`71lc;sS?%fsGEjARjghT(LE34AOZ|CX}N$`1JWgew#< zFq8+I*80+CoZeIs4;bmy%VGCB$Bs4u?=HCzqIy8f7Nh#(Qa1ct<3Q*@%f_qyhF+0x zc{!$(^^EjW_8~=!xn_pgGIpyV9}Ne!hAud}y3359~kJqZIgx#&32 z``F@OW-LE0CwC9~w{5IQnWuQ2{6b4h-%Y#59!^w76#DRalD~Log_6G8=hY863i=VB zXeGW_Yeuvi4=CTdc^Gd z*>p3@P$Q|xyZH`h`_TWxf+{VbZWBI|3+oP>efWHr&6JM#t)+ToAD}7KUJrop-$IU} zNXyp_Z;>_2-Qx9RR4J*AAT-uOHjSv>n(8C>XEmwr?#_B19=>%_jX7`HydJurb0%XB z!4 zof=HJZ=_Mx9Ebrr1I7{65)BLGos(N@E9oG0RECfhl_y2so4SJ$v*X>TVfSOT`8LV%oX@9E%M~uikxxz15*ei zPvhSI8ka9FceL*u-)%pPh%M2i26pC;SZWcmB_vTBg2l)AQ{z{RiY?ygRpjcTyx`g- zAArYk;CVU1>loFwxL<3V@3CBi9&GC{tagyGWw&g8I7bc=4m?Af)h|0NTGFU$fsJ>o z<(ryA4H>Hoe(@7s$bEVIV6p7>uFP(1r!zOgCpDd-Sa7NLv412!_gA4X~ zpGYJ6YdLUa3)jhkUSAsf@p#ts(`tG8gbc`2m8d63V_%okD+tBHZiG1>3Z$j|F>SWM zHuebBrmSzsQij69d^X}eI_a8h)5v?Wl=l=q ztePD-8CCud({&Lg$uE4SiRX`w?B=7}MRQx4*eMIV z{qRf@SYB3}SKd&K@6pjrQBU<|zmM#iw|@8f=GD2fmZlu8vNwBre&aTsZA2ZZV~7Ix=F(jga`4zzCdk2F%YvG4zMdoJE^(?J zc}Q7j1*OKMrWM-LAE~O`2n43F5xu8-vnaAYHYTVb=yWuZp$4oeI&mk`GX}Q72oY zkOR5=W4pld_P4D)SWYK5@3#x|4KNnPNE`>(urmm^?4e70(p5;Rp{B~D7}<>6NqI%?-(p}b%iY-@*r&bqC2iWP^Zfaqfd_@b5!j<|uwJQ*#2N|fUeZR`7Vu_sg0hee`l zi9+&Z(0(?T@6rm^$sGC&ZSMvbk8wLDUoPczRc;sIE$Qr}NOS%=oZL59?WeFqmJ)m%tq)hiSa?E%f=rPXs99A+1o-B&9c^;`(QnlP+=c=s^>J1igvlKnehfGpuh3+PEU^!^& zE6q`$jy>5+VCrS{%|~>M4eV@c{4tS~olyz4rSBjG?MgP&)hlnX(*qx|z~PwrOKOgc zq(SEB>OHs;o3H|HYXOa};ZRtiXdNNd7OG7G^+JWu??p@rwF4qyk3#}mIUTC8ww5A* zu|s#38c^o9ig6yb8GHmKWttohG^Q0q*}~XCPj9OhQCu0(D=TzztXq$`9*!c6rA-=} zj+9jGti+(up2-Y(wMr7JwFnaSJ}~JsUH>*Z;z^KB9|Uyi)FT0Of=G5_pPuyOlA>69 z-(lsw%wSR9mnK9peLz>V^YK%TELN1*A~i=BD>`|F-8F~uiXol6I{kCPw+&+%0h{LV zjYt1gYDMuMCv2z5p!Y-cO z^!QwEDNdX~kSq7I6IEdB;+v0X2E|YQZL}ybaWO-xz~HC>D5;P@qc2{Q-g!$ew;Tok zHf(C3i**S!`eL2*&iW1Ryr%V|9772kD{0eQ1@Rub{PvI>;!me)Q&muGA&aRV4TkubvE)HMxe&??iz)y`BpkHhLh@q65p3fgMHZ^ZSBH zGnh^&wn-=`)Onoa^5F)BPn&2E1slwMry&S=#5L~T(Q!%Gqfi3!$W*6_sDs7lpi6=h zHrHRHpoMRITv}sA6xbz&vn!&we~0sqBcIUvzS;Hqb>I0snw-PKP#9DDwB4SUT~0@I z;_>NsEI;Aw*X4_x(Zi^Y_BmkPA0Kmiz$@v1zF65w4H7Fjj|~gh(T=aLt;xoS_6Q5~ zq1jO*1USkL+Nv>U>X&E-pf6DS6TUTb70RvUz;u9 zLAZRmocWzlPb} z^a&eZY&cHA=5;;RQhj|OK*#&{XQV_2GR?_;#7EkB-Knb(PeskiJzYFeu0OwE3HSRP z&CJQD((v<=SDq10OfMeeIFDgTR?&QdjExO_l*dJCWGxzpoSt*a7|MbccZmbl^9Ed{ znt>btxbP&|Ib;#^ZA0s+v~yWz(KH!C8+Ee991c;KqnUdo%R=<^`+uH)eCP2=Y8l(z zX7#G_0JAei5+Jq13?xB-!!*_gy9{&M7@A}To$t%g9vE4OR$gSV_XBq>s`APqZH@Ol z=LZ5`qvFTQ2|eD`)chD}b{BHM)`*Qf>s(z-kp!F;8#!5J-m5$VjSp3)HbO@dX^n-S zG;3Uo2L}*SSfenQ^}K3=SjwbQ_6e7LD)C{VgK?eOSt- zgH-G_tgS)HE27p4-!lRUYzBuj7%9m>@j|H3r`nHYHrcAxf2RL9$Gvkx9HCR`x+ie7 z#uhZ(O_0Z4@+##t8w&N>N^UPCZEDpkzxGA|*3JvQOPR7g`<*}@V> zTKdFx{wmfSd0Cx4q5Ys^wka+zwG4cBS=O>s&kUCJBZ;1R58&*y#3C_BT>hq>XSxfn zd8X^i65>W}4a#5?qT~A$5tZ>4_u+0-Y_zR zPk(PPU#fqLzcQe|CZ+lrdbZdPJ6x3hj1JbQTN>B#>3zn?1+*AzJfPO%e$cKW<*wyT zaD_C@1Eau}xHOiIsCx?$q_LIu^WY*ST7EA(n2oV6##y8JU)lF7)3hZ;UJ>v<&No}S z035s2YdVOh6+Pa~bT(fFG?53aPuL+9MW*B(RuC1Dx-qdL$POiUG5vmecX#>~?@ufb z&8L_vlo`j8nH_y#g;xwltOWYN3NPbzJ!!Oo1q`X}+y;N)qLvq>sDnAinyRazrPABY zPf$YTHD;VQ!cH_*?K=9{mujW;L+fHTp3%h~cZj5e1FeY$5ZmeUiz49V_p0o&HWkdO z0xrF$%uHsGhaF68t>#s1$?F3v^&J(Y$SXY`(>~n#(8RW?nnv7m_%UuMRq7a%ZECOS zxvsHTal^^)2v0KdhJ{xy9ilt^j`P5t+2|ZQ7eA)1XjcsSHgu0A?O!gnqz^gP7B+w# zwpMnDDJXUGeCsV8yd-rV+|JfKWG^2(ukp63mW!sT><@Ew6ZBRaTA)rHpPK%#;J%^^ zp>m5Pc0x>OZN!LHh1^>VInm`Q`6+QHsb>t!nXLe6{XY z-94`{h#2jdCdi>asY*@rgata6mKLGQHPnt+;L$hs7f9ZyH={P>LCzjp$TeeS!@go(uf3GMYvos`sfUIYf5x?|&YiA`+}^hnbJYwO0j2LyI#T9+(1b`=L4Tm`Yl z30g-f(tvS8d#p?jvLry}2az(?GK|JBaiKbTGQ;L-iPPHEEiX14JWe<+jL)SNzmz0G zszRgA6VDx$97x<46Im;nl`YmzV6}gG=GTFBA)C>N zF-txVGC%K+NYi|&+m$7j6;YKi94Kai_fzvVhB|le&Gw9D_jc|h_qdeMF+7(mwvve zK5vH&wJsQps$?WyM_J;#!~uqyb|N`RL1Jh(r@lC0%I~loAD>>HHlrs69ulNehG&=8 zUubvGCwy3!FD6aXuRLvm#$sG89-m!)K`-bFe~;k{+L$k>k&mE8(hWA$Ybe;+#1tScMI~Yj{ z61hn8>0i?I`RsQi>!CRf4y|%S`lE34`zI{hifQf)R#CNV6k^zkI#?tpFwN3FBZvTu z)_2bPFT4v1rI8Y(ge3;q)bfSDQ}uDfDK}jlS~|k8@hDO!Cag|; z;bZQPQ~W}*IHyy(Ko9gm>{A20ZJiv;1lnpno@OsdhRMTc5MSx$MM^ z7q-Ru(z0Vfv4igNm$T>j0>iA!FE!BWQz8n)q=2Q1>2^zRk1y1%<+>P&t!2aE`qy$) z&2N=(qZ1WtMq-1$6CrB?W{@rsb+FDnVZ*eLqD@DUcC5GlCq@`YnkIgAK2>oLOIEfq z8O<0I)qx+9T5yHRszY2vT`DHm6+}p7$KgNp7y2gsj_j7z__&GZ- z0TT<0RQgKTp}1T9MK0WKQS-{ zQwd|soDu0QU)*3}2TudyAO;bSaM~pB*t(kzG8iYOXhvd-la-j`aniSGI|=+Ey0Lf( z(Mc+^563-{Xfn>~LmrGIKiTN|L3&k@Qw3saC)Q*!Cc%@q_G4%8hNl)zvEfbzNBU9l z>M(8#YO>v{kFXJCzBSX&{|0x!AugnGpX8}>k7tQTw1+M9{U8gSnqXoX&6f03sd>_{ zAQNodnIrQgJ&0o&Gxn_7v{C&%;FUlQ=QKxpIJ43db5xEc>=6zgk$1V<(6?3*JuGykNZ`JYHo?1Y#!%mK^kv)V|JZ|NXd255eDMUt)nH8!tj1ytiDbc zUt}j%ipR*hXcdPhG%@^fPveEhFCQ1vr`qf~sfoqtO3^rJp8*fb>(r1~G0KZ01J9NG zAGkG&u7~E7VO<;(*K}o4%D;}*#vECw(Z|}u7EIbBBS9W?VB^lTd6L)3kSFPAdCHDf zVbam4VLInzs55LjAkaK0R@ld@m<)yFElbU|(ffuOS=L4SDDq62j{z6=(J7~tWhrE= zicHz70)xvj(C(0I&&axHWm^-P+%QUdT}09Fo5|*4!|O$uUO^4p%_7PdIa8Lwc&PTN zbs(&oU=Md~ms&Fgah#>{*mNzqw&ZsHl|CPk^DqZZY)Po{OGyke?LN=eaxlUuYYApb zn%CmCyre`c#ARVJlo$K>FekPIxMi1CSn-&_UOjx{7ZCQqqw&BFHhB;x9n~RjN>_(& z)42VTlV11oqe6k(%5}VrwniGN3YT{Ul_fHMWq45s%N5IFRZX%AcoUdrX~#NrK?E!< z4BFkXxm)3$%HQ67*kCW}C6@B7sA7i=>Wo^sAh4HJG~X>tYnORFLvD#Jk`5C7u@{C; zLWTcca$BG(9HNTN3N#j_-OrmQRH#^^ZEusr&C-r_=z<7X zY8iP_5S>%XGmclwx@g#n2qbPeJkT!#BSckGljnu3_OOMTy2ygh$p`~a$K7DSVNU=X zcZLDQ4sRj;g3k(~!qW+yFZgu%9o7ojm%j2KpMB`@Retm!IXg!62ffIdF=D0lW%G58 zYv!^0QWi~fZzkD@wBC;Z15c=a_KgtWfSugoiH)%K2n(a0H2oim%hrvW5GQxBTdj$= zRW)4SsiH|09doEJR&ItNf7L*5u872AoaA&sGvy^S{lg|tZ_9PZ0*$KaW@!n*b~6Uonb(0=hG@}kEJt?x-g7F@pKC) z1S9Dn5qk?Jp~C-bj}6_qkU#tvI=3ljBE={#odt3@u$eTXxNGfB(9wO5;;k`#&WqDL5$0WHPl$eIg`|N%9ClF;7D9zXq7P8p|K`l z%G2Xl>#OBJe~cC9MPo(P7K$r(vXFLcq#8qn;jjm*^VYp|^=-@#q-&WE0P3M;9+4!*I zG}ZW&cqP#GtGMQql@;_Iy~Jc_ZDuV(d0~~WZ)ks7VIQCTYA7UEtWElM2SsCQ5odHg zyB+9{vBG6MVnyZt2ns$Qa)%+ucm&`frx+61GF>1%eadB{67KB}$x}JjXhROc=NV24 zM1mHBN$iXHC;#_>0i9D!|JbGv6_g(m z`#-ktSF6R{ivAy_%M%~gDCh;4P&J%UXSkNCT;}!&DCcAuuEU^BcPQi`S25;jpU&i>~}PZxn6CDoUKgIf`VJ^F$}p|m8b383NlX4zXXnS6qT0_wfr$m z*T}|lq=dr-^{@SOu_d+q$a1`^Fk{LeZu;=^0sEY39Qu!KC{~=a{f3rW^RveUCsSy8 zrtnDu-1W3rtbX7duZ(Y`jzJG6&sY|8ktpOxBx{gcj~J)I3MHE>%43P-8Hqx+6%Al7 zRQON(#X?12g9>x?W0@-+PMYv{!?+LbETI4~nbB8Y$biKv zdB7q(@g}Jpa|}vuS-aH^?M8_r1r??~Lr7W98|9L{SaQAivU*A=e@73MRVEo$aws){(7Ld)B{? z)59<&QAl60|FH$w3l%<>HS!<863U3l40qoAW6OVvY`Ig7ANr{!R1l@j!V-RJ#U_oc zqJ0~gT576}lWkX-`O*&Gt)v+S#|bhHJ43d^EkCRP>5xU>I$6F4eCDuTURd}d2nqw= z_>p_gVB1Lwa)S@EEO(`yBsaV$WAmrl{;|!!ie|qoo*{G6Z>{y7!Uk|&ni)k=ta?dB z?%X@!AGkim%M@DIZ2)V~U{p1MxV488J{wsGd?|&&$r}*o+cz-0U@Wg z(ItPl!3EDJtwbSdK!yxh;Ozgi+yTb$R$Mqd5>W&kp?Q>{ml0M?yU$kWcP{u!pg%F7rn}r8L$Ts0UulP_FuX9v z^MEWQRm}k=E`|An^NbgG$XOM2v0_lMMV_^xepk8clfKx)$yXL*)B%fhH&K|%Vyz$! zTEY$6yl2v-R9Q+0YiWn(^2PX2B?_6V5Fy{=i!V#+aBv=knlAHtN(Va0N6TZmV%=?~ z%Pq#7%9v;ACYf@X>6BYx)4e;0v@hR)7C_B5GUW+B?-bybxs>;E~s5nZ0CETW3#Z!<=*gbK&g zMMSYMM++;Sz5`He}F{p$xqRzON!aREngaywR$J(^XWwKgk z(PTLnNy$AS1*-UM{Wx|9?Ze`6+j~<(g}G$xq^B7Vz9t#BmA10vajQYjMg$UT&UgB% z8)A8n`wA1@h!l2#4_IKUC*8(JehJzOH6ATPi+93`=hYF+3=sua7(Y=9!*PTP$4mG$ z-9j0~EGt$V?uD30jKm`^F*18bmm1x@Qvk&+W_Zm3CatBCa}l?$#}&lw!*ogIKm3%! z6rPsW_+)kxX?p*fyQmaZAPzVsvkROh9_dqCBk-Ea{4m`t=ELS&>SOoIbk`{)vtfINAmmWZ#wxZY@p}|iu z&PIPxzGa%=MrP2d5>odfUm%+}fu=I)1MM;k!1`D0pL$S5T-ws=UEK@u?f-#ISy$x$jWoP!2~ zV+?eUVaDX3!CdfbSd8#*qopa>mIFIAI|*+=5H8p}+VD_*Z~(-`)Or&z7jGPtMa@LFckxuX@QF4lSr zw0Y1)C>vjs(Bko4OBo>>eN&R0c#Lz3SB5DB%Pnea;||A=PG|he{D`0XjZ^?Cgg{lf zoOi(!PG!;4RrU?8+yyz^j!zsbu}C`X(4wu>GHB9ozS_g;mgZT?JC9sJhA^cQlUjZwA7$Yxf+x(dr$`&4SzT?= z8(aG&FR@mt7+59SJUrv0UsR1aCL~6S3>H@%Up*p*3@l-T0)SrY{#{cmy4FlrVTU&qid}id>iVU7h~rvkLHdCk`gU-tEcyA#GT+fF z=Dk8Jm;Pj#J82~j$vza6>W3DYkE*N4mhIb?Zo8!1lIGsOi>+2Ha7U5~eNP>i?THUt zl=L_=M)yB`KhuZB4!W1RFuB_q$u!zO*Mj#_%`jb3fg6#=N*(1%P--IRbKmgLOA8~t zT2gDpt4aKc@K7$S+GC-9j137Q^-d6P>HstX!2uAwd1Gl}*iLWQ2R7YZ6DT%PPnVSZ zu%sskVd=P*ABB;-tI*`1MTf7PZR8W0(AI#`ORtu-^0Vl;2MdMj$s)u(*Zj9&T|X6i zClMsx`fHqZM>eKX#n&UfM3A}nl1j-11(RMR$N843RAE5$?B#7Cafz?-8D1@@O|~e#b{K*0?7V z9e<3|U#ZL2(TLYwJ?81gbRipM){ojM5A$0GjD<3f=)AmJaTXY?Pf3UgJ&KU6V;z*Y zNSFUBS2!49Oaz1q(u!KfmxYA+9VmS~EyTncs(UtEx-vIRpH_x3cG8O-4I4}$xu~?X zdbe3^G0RaOhqf+^BZ{T$?A=;fSV%)9*$wMVdiE1PrBr1=wm|K@TVpMiM(J~*};79Be zF&v|4*Aj8d$pvrh7h%Tpn+W-WcjtD6 zkIK_#0h*kS<&}l3!6U;Nc(*!z#Qx3s?)7HR3t;?gbhI4{r6f|pS9Z}HU{ZJEeD#8L zN1Cc~E@UGbbi6&P`A1l+&p-mJT%p-Qd}*rK2~@@(t`oFNJu|8x##J8+();6l$U$pQ z{8ZM8z~VME;S!a*j3kZ5Fm5r&GzSZdP2T3an7mLv<}C}okVqsE8!b!IcT&G903j)!?qKI_ag*<%!~_gd}Z za;la~TXmYW6k#9l;>nCKuh0nA0@fL96m49j4vJBU$2iWz%If*pWCJLjQiVq6tSKz7 z3w_M_<(WlpSo+P_wDhN6$%6jw@jwUo!`uRz{FRRjGy|HI<<{jF} zNum%-i4N0M72~`%eTCUeV*yb8qx~mbA+xJa+r+-1&T`|jl8!LqjICUykFB_@WoDSS zS!1(DNn`srQE@PGlE#M+_R`LwyDUH z20~>Jd7KgPr7@DhW09z|Oj~YaqrY!MDUMQp0RSP%bkmECg z8F5aOIuy3Uk=DmpF#PD!3Rv5i_A%ZX`pr7?YUOf@ah|DSmKoG$0DO)WQ4kMfeGFOH z;IU)8Ok=9lXtCqaa+?|77h0nUm^|L(BRXmhq}EO{5ktmoF#~zhu~XE?*w8s=yvbJD z5|Y_ne%sMAUA^!M7r#^Mm|IoMwZnisy_Y+#W1Q11eRjL?RSYKOVSeDVw$RP1(lIWT zC#AS3!nmXCWmy;9I!O4QU%J=pv&QJc_%x!8*J(owxi{+LF7i=U8)xSA(o0v9bnC5E zhA}flip;yLRfo87T~rpv>SF_Ivmt^U@@dq{Sbj!zlpN^SQ_||%5oM*(cYV+09a$(k z!$zxl`tY#A#W(mPd&;?Q+sG|TEuH~+yPU4K&#T?7oPUzuv0h+nFvi;F_0wiL8}da# z)5Qf2^_R)=jy74?P~SQ=A}2EWoI?R3U1NtM*gJHM@V?M=uMGJ74zMf{^{`ZnbR3MX zwWm=vPUW{w9t&v(?XydTXJgTdz%w;wFwQCYDCcf+k?**OFxw=?KGT zU*^O)n6>mg#c{D_BtCvlU6E<4C0-dzq?#sGAP`ARtpa93VGmEWq9u@Ygb_vpPMn6E zN*hm+2JvK_k4MQzSX>e&O_`_4sH^YAnaVH6yTzj0Yib!|4H>9h9!{bNTe8Y}Rm7gd>83e@iZ7xNE8Pl* z7NN)M^B|R=rJi9Op^!(I?5#$Pc#LCX(6mFb`Gjk3oPHpvOmXj+aWu&SFGVBmy+N;=EL7qjzJ{}$ggwUJptYs8w5J%Q|x0HO8<(#Xu z;vd!yQcXXh>4y9}S*;TCz=RrvJShq!f*5DbF%qH}OQR-lwvMEfM!#$|!^oRBwAQ-i zG!c{DqAn^H^{`C@gpN{9jixb7;npgo?_cq<*13>nA=)_rY!rL0DB5n3HFmSc+E!9w zTu=99pD-t{5yUu{^~mCLt9TcHb8W}+FNR;kCe?D8J;7>^knY&F6>5*B*XvDrG;2YS0M+c_9vOdNy?(v8j)^?kfaC2cHM zosGcAJFNWa`K!&0J}^_NQ*y(qy$v@>P}xo~&NEJ1W{^L47~C1duwIP9ygwQ2GTn&B zI3@*}75IOPOZ@PWr?lF2J>70m+%uK)9YBen2L-*SqOUy6msE5ua9WzL@_cz%y*%s| z;}^#yNavietia*B*y~~Te!hFbhb;n;_%90F49On`xqTjR!|wEnzWU3{c!6S+hp$k@ zyz)&fR?{rdev2zzXR9AMDl5~mXibj5$~5{8-zEAw-5__xl^WKl&+GHm55Dz{4_~oY zRwn54>r;FTaz>Mx~Xo~Y!f*TD@YvX)Dn?lL8jtYG2Voa-HKVQD4Rk{|(7C<T`)pR;F+f8O=eh8UAECyWs^@2pA{wSOO{> z2Q@}&ju?{PjkZ<|j*d}9R?()?kU=A;IFx&FD*tY@T-dOY04h&KD78rat`?+zlqgiN zVo*#4kbf&Jml=%fG8-Q8dGv<`UN&eUAF$49!-*}+%1s*zIA>d{NW9JThd6q2UVl~{ zh5=|d@8}{`(yO4ta0^SAQvs=Pgt~XA++O1|n7iBeC_TD-1>dZ|CmG&PH@Gw^6pQ7g zq(_*U``^)KPH!_zkj%x+}?djd&Dt$_DBcp`x;?RUJyNvpuS)m_=yb#h|B5r z8!kIExFqxF_n56);`w?~=qmH*vz0W@cy4!e4TB;zs+PNcHFyLYj5Pk$aq~8);?%S# zb6MgoQqn%qMFtvMWD)vez^l=rMHZoH9m;`O6k(}Wep=D}y^f(20q=)J=U#%!4K$DF zbTxv=7J4W14b^*#F5-r>U*pDEY%$b?BJ*fmxa8_mmUtwdk@w&5=^K2Vqk5u*0iG-~ z)-tL%;7lH{uxuh=Ne9Vq*aoe7Y*t4PrJTd>$)k9P#qWxi#A45(jvYf!RYH`oi@%TX z`Hfd2m!6>yd#g7%<)rL!Fv6I6NT@Ozs4>VSp|M6&@=a@y&N><(AByZDU1=wNSmJo4 zwDnI3ecGU+iiU4hZC4vkigGJZ27L0v)i4l?G-5Vq*s18?@+_NsdE4F9^g1dN6 z-C>${zTTafK+@B5ha$sWhxoSC2|sZ)XfbrJ3htp>3^d#>P%9P2<@DP?6^W-qO(5xq z<^GRhu|B!XKSXYN(Wkh|QB7s!FSQ%ty~X6`UY&nZjVv0zx^y&0`+kUDAfk?1l z@Y$D#ZGE5%Ns`I(J8AKRo-dyGp4Zthldtg7Guj9Rj}JV|WRz8ZS6KysmTrK0RO$D!P&{90fX_A%ASV6I*#ca$93XWzvj6Ev|acocHvVSy*h}w)> z3Kvg!C{0K#X&D|#g(x=gNxGfz%df;u;SWFQffp40_F8(>v({U!x~xfWMJY}b5W7lr zk2NHI;S!km;XLkoyW5X`-){B7klu5^Zwu3QeV(97$71m@RHC9soSbgdwzKQo&l5WJ zN2_&IC9Obgqdcv+5%lt5kMDV5=@0qT{S-a2BB46D@yCOFkX}|R?pCP9>E64(M*N0e zuEsMIFREC+piTU_eZ@A8mlLwkN-e`0Cv=rqBubReQ)R0;Tv40p_8CP+IifshrHa9a zomxsO9^*`w)R=77Jn}}GdC+Mb(FkYh!^?X2`uiSpTQoV(O$lcl8;O(=KYg~dXQ5F$ z8#T)*b2;WJ>S3uj!rNtNIEVeV+v;{9w-{$F7h;Jw3kr^AK&i^&&8AA0BkQRSadl}R z;*J@ODi-M(*M3lUucVeTU>wl3gJjcE(i}Hu21b-tTPP8q;k8WjnnG>FAqTtC92}Am ziIv3tqA{MNBMjW$oJy0&p)NMzJ4|Se_GNirS*Fn`rl>qZRlrqVYQF;{)V8z|UdaR2 zYC}~A&&pRmE=jIZ9{`IkG#w(@lMIbRwe7S_t6~;It-P`}_$KY2FX?zH!HvMFZj^IvIuy^?bKh_o~ z9ZkzrNhq8wE9m>_e20%0m{>mioU?OXooAO~OYb0fnYdnafa%^oT{{lvt)^7EbZF^F z4}U4!qYiiS6R_LQ$Ke3qADjnaXst}FTF>2BZyox+l zC6_&F(kputbb6hnSQL3Dy?v$Qo0K5|LNrpxsEI4^D)QKxUNPLHxAewylIbPSm(}tp zph}D7!q7>lyS>poV3%7NoKz#Dz}Bu#y!FOvT4u=yOH<;2BU$7aSy=G&;i%DcAlD9J ziZ$s(<;h1id2Fp^;!#t}@S;Ftwq$3-Z8U|M4+#a;RdxFCu?abUGzM#Ire`9u<5h~w zUyTpqagA9zUyJ-rADTa!qT-^a(KH~*Fa9V3n;u0RX-PKN95ko*;Q(B};vS?-=jn04 z;%kNbLNJkfsAYi~>J$KE|tq@ld9CNCyUI#@Af>F*+N9Z}G_u`CEjfWVGPA30eq zSXJR-u)1H<2S=}NO93>p2rb{^p*R#g2|M+A`~87-4UVii5Ta9)^R}&1+84+7q^2!i zMIc_Dt#}tzder1YBUo<VN{A?wH z#4f+r2kh$HZ#JtZnz?HPg1enQ;&$!Fll(W%?G0|^-fpMZG)G@j>*u+`^>Uua59f2N zL*Sb2VS{(?9&jMrAHL``z81%TzDKibtc9QMchA@!nbry93#wR<1GTS} zJRHMdd2Yl)UZo?<=gHa2>;m^SpnrhX7Mg#6lsuX)w&KVENcCnEC@vj<7+b65<9zcH zxf5u{nI-auY4hTGy4eo2Xi43woO&nJF&R~k#0d?4B$ML;IK(cI29{mgGD7y4&{~!+ z=i)*H2|a0njYAPc+q%KVwcFb(awl_*NMq^kKRB?JDfF`c1W{z4NA$;7NzQhyhV?qS zMEm9s)F?bp+sy9WU1+Ig&{E_hZ`19htqbVc z(Q#!Dsu8U<7CtN=a5k4R*=1C#2zhrsUR8v=>RKn>7I4@O?~33$f@T*6Pa zi&Z?WM_J8JZ9(HJf)B$CS4e$EPXw2X(W~)sj!yewgz*pE9qOPBo2!TI8nbU}bh>bH zs5liX5A*Zl_L!NBG1lOU^vY)+7W~~4SCn17wL;A?K5~g8JapCr+rN_|T#!bgc#EgW z44Z8x=Yp=mis9+{PImQlo=v`S3_{?b!k{^x;zog5xdhva$2inY=p zx}68|h*j$sXrn3Nf~rrV6V(`Lp{8bydn&rhhL72j z8d;(hnM0SXi(-qE4Zm2XGU3?nE{e>dRc1>@MX`>7y7o$p#fxgD=q&sC`E`pfTxtJ;H=K0X+y1U@YM2QYmj$1n|m84`{^uTI9#lmK7CB!K!a@g`1S8NqIY|Z4_ zSkfw~DmPJ#^VB;xVkh;u4L-3$@kSO{+2^Zf+OwM$ngDG#GxwOY1ARpG0@J6pU{ceD z4`Cq*vBop)D^)mEX3?btn|NA{Wky9zad~-{Wt#4qKE-zkW9h@vj;3<{G;+hD&hZih z-8=@%tVV8G+wC6LC05UBZl+S1^by7q_2hAU3UfCyG)0DKQ3opnPJ`8BODIbB{bE=? zVL>Lj<;BK+zbYnnA7JfJZ_!sDZdr@a;^p->mYu1&3n9i9J`XmZ@o0LR)2u}mJK3hz z7H@H7whX$)^x6svZ?$~-11BIb%0*wBW1V1spc88jdxR&NCd6wUO3aQ@^Y4f0H;OSa zO0Z%m88qsq6KRM+1p|!Krh?Hm2?Oc7)hUgl*^UZUJG76Ytr>!kRgPN*7i`ImrCC<{ zGm@T0=qy&eq|M=V3Q-G?<9nT3PE>6hg;;hXg-yE`Y`>2RBkyalnwBX?X=-OB^R!&E z=;*a??A(-+oDUrVd3zi?HEwPiMhrz-ZDEU#@2LvzN6nb1>I1YLw2%0X(#7g&b+vgv zU%l`_-ZEivL&1)|TA{tsH7{#OAqJXg^8QLQg0XU_)9f_qh3A^%NpoNP9N_Vg88NSn z_;+J`r;PZuMH%s<1Jd?-eGaT=2fY!?Z2Jn7uf%LMmRTKZCULkPrrDd6t){q4?*J!y z4F0%Sq}M@y_Wa0qouu^mXDR#D$W8oQFy&>KOj)7A?>2WUYMrI+L!+L90Y+M-g3&Eq z-GpOX9*VxFt1(oBZhtISYbx_kRDK*zxw)VN4Qk98$phBi{AJ*GB5!JduZ3qc4fF1T zy8&DviIPPPRuwjl>#kRr6P2ovm@&ZH2@|M<9^dwA^yomM?qj?)lO0qrV!((!Cui&@ zY-6IG5S8XNiAgJSrw{+yZk*XN5B8r5xlt$ceXb!zB;BeD(do2!%%}}qboa4+fUAjP< zQZT_n?pslVz2aFT4NZ~`5|?r)vw|)6ePj*Ai(?m3cak@JGG@1@C6DCRILgLPSf4B{ zQ)pS0)9Esj4l<`pV{N*i(J^u=oXptfk73u+Of5AX5>3=Tz}Z2MIe!hZa<#C#_0F zSnvpI$uxkq^OO9DwbnvvMbwKYJ&^Ds(uHhl%rJLDTUATGsdg@_EVoxsh&WJnxjfP= zu_~r06px1YDxJdd!akn9Yl`x9g#5jaqBG4hfwRC_HqU4^ZN-jrw|YNtUSsMY`=VqD zEt`K;d!_{~&NN$WI^m6CoR{0PfN9&a5Rh`Wqth{CgR&}Rj4LEBXxp)q8`gG*L$>M3 zEL}p%M82=FQMFuU+&r#{AE=d$%i#t0Jma2N&fF5R2x`6xfCE;4Gaw1dMhm!KJEhpHk3b(jcxD3$AnD}x>m%z+Lg;ug5&$YdBTrIwm25|Lf;EOF0^75$L-`A4Iwh>`!2~C>XgWMs zU>vY|nE`DKICd6iO9#@oCn?;?1ndXI#42?Sb@^ zD!$LlwQtL;D8lOYte}(7;5TVurPo%~iOK*GT2l2+^0J!HsvfttS%&9ZEqODgraE6f z#6=fsRBY)bQm5OfzVa(f+#S&$WhK9_`gZJ_N^o*+ahRoQO``|xPNZ(UaiB0=T})%G z4`C;W^m2C1xGNiFp-exsEWhT&yh3k+1Df1}Q6!8+mNg(QBQLrt# zlr~f{#xb_NsMy9ql#l<(yN`)j0!1$wQa*VEkdt&zi!3p48abp#?H?e$^CG0CfjUo@ ze%>skni`4t$oZXyNOIp|dXr8Qr=wHs{OXm+-oGNc)If)tab{|&17_S_hd!4E+iSbI zec<3Ba&tfL$5bGC{Kel zv1D!pGcd|9BkuLnLx zqCA9LW(>HRl#oO4>JQG*44Z*ImQk=yZdu4Xtg5vvFSjf`K88E($e4wD%+NfoaL)hv zrFK6;jkQj*)-kiySSB9knAj*9-uddmR37*Vl9D!zHq$_;!UpeNnG!)2ws`)$P$@?k zr|VVr`I|ktd?Cl3;>+zLCiT-yvzS&=Yg?*znHMcFc)4YnNs}D85k`1dQv@H@7mTg` zxI8_(9UeA$1`_G8QX4~UP6$YCi`C1EyXJ6q+RMXdeETq6kKQxQfX?%M_4v5Ju^Sri z;sRN^=Hes}iMLw8Gaspxd-72hdPN;x=`U$LqQcdGtt85k*}K`VBP|}OJGpWG?)=wu zr{CrD=llf+2C%L*e4IXD8{NscR#GdN<#)Vl`3n2n^%N~!EL99{`OXLWl%;^RAjai3 zfNd*ymV1^Y;#HZ?l8VF=ic3^y^bsg@w4Z6$?qZ_vj1m=qma0ggg$?Vym|}1 z#xmjTxtwB%jqfAEj1ef@RxqNTQ{7~AE3O>+bi~byZlYE88==MDej9!`v=UY9?Ho6- z;!At*IQ^`;yXle@^tVd?93Fm4bMVAc!LZ)`Hv9G8#wsr9do}mB^I!jssxBU6`ED0= z+0uajd`y|VRS^25947TND~U9gs~mSj1z5ukDpzcdLsiwBQ(jIJ^gpI+Il-W;iyfnF z;_4)xV{LRD_BB2t+GL-y;Pj0ZY8MA&4L)e4yjN1iz(ptcj^OZu+AZ!0r4`2T5tdpSQ{~7RhB#EL8P-o=N5obf7vRt8^4`26B+*i!`=jE1#H#x30kE4uqihaEqFab#43=q1MSR+*obnR$= zt%h5X!q!?zU&1?|<5PgrE9Z1|wIdd`)QiB1r}*hD6zw4kXHyJ}u}3QOgRNvl*OGK- zI<8dZ0e+4qa71imK-UhQ3iJ+nM_^z?X}cEqO}s^!M%hu7T|Q*0xhx|Q2IQFafN-u=-|NMQD zUS>yuBy}E&E4LoeE6fH{5Q7`qD|ud`?Z9e|{hAo5+eoe&Ne8JjkBh{xj8<8=TK@XZ zSf?`kwUPG9g7(VvZUvj69=#js*R=6kN%b5mY`M7}eX%2!KduX8P;#I{2&GmffJSRURbm($HR>7p~CN*d%9ZnB~~1G6)LW>JHs zO#R2ffM|OYxl|E?551FPUX~d|HgCf``;G~)#m)~EyHEAYk; zjU_vPLcV4LR-t*(*hz?yMl(5gX+>|d=li8FSGOH-^R}>i+G2tB1mTkNy^Kgzs37Wy zhis})LEPYaLVBREZG$dt0?J7gl1E4ak)K|7G5@;3X&ME|l7d8As>@ynD+aS%>pBvn zeIhwnFmzci%@=&VTjln^i+U~E_UD0?Z2Pm{g8gUiFn;`aN9i=-;+>ZM%1zy3K%;Kq zRng(0BzQztmOv<#L;8`=wLp@TG4MTZx~#C0x;2{Xw&0xMCo zptXEEJW)RoTUr`|(S$W(`u$;njrb#dZ9(+v#Pqu?Yhx05iP0wY9B`bB@4`DdA5*4u zOuwUvxqHUp;)icnKX5SM>JcHS)FZmW##AreIDm1`8E)}LV?D)j6e}uNYKifE#tmJ| zi;d5VuehR@2%)^N>ZT&k>u7}e=^87bHCIl2I7I#CVZWss`03hbGmwoa+vF8hI=n<6 z`8W=KXDumk^n116;N|w|+5|I34$Y*mGw>0ePuHz1qfvyI(%8aS{-rggW+Z(LD^zxf zX2|F!bm~^JxkwT4@H)jaU@1wa(3rgVj-lCfk&*;=tw>|H=&!H~pXpcD&@x}j+VV4e zvc5jy=8v%livhjoie?K_?K$DDKn{o>T6B*cwFbiijoZ*XL4wHdMoT?oj+6D=<8E(` zoqc_JrcY{*v=)NsrRwVweUe*xfRwA}du$#)52eY&NOvDo@@@_)9gGz2=zxU&Ef$sJ zUaK{mKe$6Z3hb`q9>$iDfwkCyv`KY)L7ZmMG+|n+5w9is! zbGH+ezEb#{e=@AbX@(DUl_!pr&_|v7ngdMaZP^V? zvy3tlkNh*a%^(Dn{&}%JUC+~8kwj=kJ#0>nL6>yULNTUY(z8u+52)alom0h;MX)6#3B`Y|G^Bqqf_xYr?=JT~;wUuWU zef|Uw*w@v99-7~cWZMZaOuLa#JM?w$r;BeVm}*SFoaS9s<(a2~#alrCc1%1C zMO&T>IDv|H%e~B0uLDuC)L>6fTJUMA6RifB+gK>MD;h5843mI~n?=P=3TXt2=3%j) zp{CLHCz%S&OfUTGhQfVXOSlBoU}0H_FvdSwI!1#9HKZ$8m97v zx)GR%!@>bf)j+XRME{SncWZAe$FV^Dle(*F`t&^7aZ>SgoVaZ#={Ya;DYjy3B1aUq1@~2?8Lv<$g#kE-Zj|Zr;g8jLR{wEr6Dqo0SGQo)iVDHMe+|7Zc3I(+(eK zB?@)FU}tHkA#T=zC6-c$*DinY++oglE1?!rGAp1%4eDAaDy_$Dh4@Vw=oBi}`%omogN6<@G;uf*MIlS0 zD$2cZap*eu6p0?xFm)mhRDwE<&^NDsM0iR^{Rv7Y{uBz+vo8@bh_l~tHEp5B#j;MV zm$bygzdNbeC}JBXKo__|m0Jr^7l+elNDUNMU@Y+^z$61U9ql>w*pdaud}G-tgfP|$ zO+n<}&K@CZMjTGg-;5eAarAOEzy$06VZ~#JTi$7ON8c;9mB7tvFOgoLccQs{fo@~Nb~gJ)$`MS>2M9=BR=vEfgLgT)h% z4cVOd@W9bc9zaCl(E=_paFDfa1seDOj`*c%4L-V7$;hPtWs3e#migzjYZ}yW24SXO ztA+8@*N!0Q(t_Bw`~`lW7F@d$jrXPI7X$2!Atum;pa2=q`%J_v2e2&ny%aP`HFid8 z1Ug>}kny~)M2x=5_nqF9EdCn6T5PcT?Vz5^+dHLP3zLDI7iUdl;76Zy4Rz~%VrSExVc+zYSPK?PFe%ZVjosB(Is9Oz}eARGBsup$K)|4 zwQD6(tggv86|9A&Npe3`eukMjjGIh* zkr=V0m)q;(llgiyZWCrkx_O!inunidHkvUHJHpHC^ns6tCgU(rAL;b;jQMG{)r@du z)d~9eS+V!YOPnS;R_rp8*d;vLEm&al7pi3c^Ao!g zhP9P^t)S1}9JRx)V5fX<9H);bMrgJb;vpLY!CK*I&M48B0UF3smYAe-khN+B)vm`P z+kC5t*nO!gD6tkCe?dpFEKB*q|etcrs4=ez1Owh+3z&CLEqCH6$}n zYS8ARXc_-%J@Pe(T&yHN)aP1Td_5r-v*m}fd1q>v;p{MFc@;Yg}Z2+&eQaaqRepYni98<&C@K+AW-LkW=|GPXV&3^{fQWdyBt(|d(> zbyQ&u(Ac-khzJ~q5>u`LTZfc_wdDh0)ICi;Amql4XOPq^KF>RuOY?qbSd z@0Kk6)7B7to#)HT*$O*v=xQK7gBIa540nsC*=q9P@%usr-xd+o5RR4p#d#gr)^raN6{vQbE_`CYp<4z4fnWU!a6O7LW(;N zd2^=FEMl2A+dC4GQ3?}%Hw_|8wA$yds57))@s6YDR+fCMJ+s4v4fr$l$K_5T@A8cE z#XUAH;LaIb8nD71vdWFP*FqRIp{j<(Jp26`4|F`M>EiSp$`EC+Bdc;Mh}N3VFU zg=vZCq0Uq^0X6)*Zhvan28^~<^!jJ2LGXkQc42GejH%k&N`$Ef@spkAd_;XFE435N zo}mqL%GN{qe)1)fa*Z7KUD!qtrD6JtPd`?0r<&nH8HD9#|3EGLJ2r#+*S_+aMFyt+ zKi+NbcHi%&{4bP&|K||D!Zz5t6D_(+ZWmUYgFC5212yjXyv}G~AU%63-&0b_B~25p z#)mELPh8>t#KRZdAWAoiuxGiXX^wo%aH~aoMbF>g2o2qDd?C<~A*ixlv=dp~KM&~9 za1^VGMH=(t>VADaw=(jeM@8fEZnoQ-Jc(}4LL@AGRkvYjUF4YxY(pjwB53%( z&sVq`Q)uP4kzV66QLL2GvH)$GU}FJu?A827;2Oj+Ie`M#VN-SBZ!f3>f19WU-~Sft zfkz~yly8EYf}etxUy=tMuCH`m8QbufXCr|Ew;`Sx%hdP3`Er)AeJI3&V59WiP2Uc9 zj|dTEB6X3gm=(ZDyHCGy{H?o%5hymKA8?fQ`SdU8pcHt^B z)GbT}h~W_!85o%^PbD0MYm-HxXjjUVv08wf=aO2ONm>_yO#_9RUD^NL^4YpmR`J~M zoZl6%iOq59z}|A@2lEDwI<6TJ9~6q*n{w(HWlop{=y+UDO_;lUDC*2}VNLR(a?z{j z4{j;L32ef#vpukLby)^|aU_g*ARRxOjK1ZZmzZOwB5K_!t3<)@Ty7GsiCPUR;4PNI zO%HZA&mB1Cml{RhSq)dKI-%681kU`4L8^1`HB#d3t_uhusXdc&RoAw66f7xZ&FAX& z_N3rol!unlaJht4bV5UNgGSf~l!mWs&39+FV@+5r#gt=UL*d%mUMh`ZhEMs`GSP*% zD}`Pvjau)QZP}Z&e5+&PDx8I{3cJKGf=RuY9I6+~lf+ELF+q$V^Djm!mTR%TGo`g5 z%^rFZxY^KFJuXHGJf%}S>9t<Cs%QBe@SX296u;a?_`k0MrIJt5U5zv3_YxZD#`& zF9jiD1G_CLnqPfr)wYypZ`+n-m6WEY=8hPzpbLw(($vC1U)_#%x%gs}p*k~8X&Paw zuw2V%U@5^4aP}m))?0%Nn9cLXjs6>n2Ek#8ZF%LYB$1E>8gXMln4O12L?I{@boS-L zfH$M=v9HG_OfQ($YsIe9jHOQqH=Fq#Jrphr*;*ZQq4%3V4d~0vp0P|;MqbEtXY?0Wnh#@Z!gsf;@UkF4)t;Gql|xpD&s>fK1QASC<3o1Bbypv)e7*G z4$W7iL82gftu||2#B`wQ({Dt^A|>)`j}_6e$ool0%}2Vu=$P*5c1sJp)$`7P$TKUF zu|c(fV}9nJC>`_3q^=}^sP$>faj3$vf0*azxcjhP>}mLa&c~30Q5dp>`D|5qVwQGBn?(s=cIXirF@`UMmS0 zYxSX%2ETNeP53+>Yw4#h{MMF$GSlf_3*vL7w_xh!FboO zA-m*|^iY%!bgUui8#Qd&Mw#>>dNlg+&%=ECjO`EG#g_wJqeW@WaSwuNJ?Ttjigq+- z%0y-efk{EjsqY=6chx<1ons$od3sIgpAIUppJ6fgF3{T1pBbPa0`& z+9TFS!_<`Y*oa+I(XxHbv67mC9&@&J94ZNxjY|=aHf}3L+ak_hV`}mlZcH)5)|fdg zu`M6A5?mq2Z=Hsi1u-BM9N8|P{$M1evhlc9_YzMw?^_BdNrU6(HQ}|Cx;O?+1uh<) zUW-j8^19g=lDv#~qGe0H@EI8}O`zIHF{E&_g7IR>ZifZibqv{R6gC#OseZ@y!^C3T zgN^^`H;f9UbKXX09ccM7lnTwkr{6kwN~eq+dM!74sA35oCsTlWKk7ImVF%l?G~#SK z$l9j)U1l!Idc&vR95mu;JS{tfqs<*lno5lm52Q#`Jo@6K&Z{WNHEB$-{cd)jSWlhM z>c5#Sme{^RvkAP?bc@dw%yk$}FF4lHn@IifE= zFw;|}Y*A{|jiIh2R!fF3vh$4FnV;y&%05wVnk>`C_hce6QJPt}#YQw7XrR2sD#`k; z^_N?v$~o2=BAczTeEKaB1U-}Mk`+)f*pRL5kK>274l)|_U0jv2TN1c~gD<8((ljg> z_^wfh@#0QdHr&DsVdmjgkzc1J0u3a?FK=DIR{Yy9*%^S7?c!SU^3WBqSkQ4^gG z4m#9o%<l z<^bj4959|x+1sGe{i-MD_kWH=s!Q#aRirrKl>of1dpmnTjk*8x2xHRH72O*>u)(rv z?JceazngDgp>WbO;M6(I!-Hjw$b6CIqXxBg=>4rp9Mgw!^&R!6B`;0#$QJl_^Y8N| zeF1;a?EC$nFQMf&r5K)KCm>x;7fpHTlm!e|aWyYq)R7suQZQY(#8^U{vRg6_Q+rb( zjI5Vfe6>E%hbknV1hU!_&ZM;|D=eGR)~Yfcy^i)Gn^O@~i^pTAR4(mFjvB&LxN2oi zEcm*d5}xUN?jX0WW+I*Ry;Sk(gsu%iWxd3rZ(g#%PqZ#m^of#H!+AXSDsz;1O+FP@ z`n--Th-^~3+}oYkwR)@flm&cDUeL5e*2rRQdPCw*w7hcTcr6uuJV>=lr+gh%Nz$Lr zOJeXTdkM;vp^j!lRJsG^Gg2y5BCvY6OM8VA*o#eBG&rAJ|2P|#zYr5p$|iiwuUZs zl~t#IUA~hA22?7}Bcw6)eI`3A`x;M!a5oofKb9`Y zkn0JovXcxnk^h;$q}oKsbZN38daT-QbevN1V6!%h62H;z{0y?1z#{f(Dj3JN{#0$r z+mdz^3=ed?&9g+g(%2nXC?=gjgJo=QmdOLl=X1JkrG*sS0vWq}GTZeuL?OYA)@F%E zjU{5R%3Tw5`~x`T*Bpo{J};t_bEOB>7urOyxSOAC*FR`C+iK^5oG1O9j$PoWgLJ|K z5?&hC>mQmoy{y;XpzpHV&*_pr9)K% zdv5q;S!zC|SqezbtX0I3ef@AEt{eeT%ly$(U=I+5447Ga$bLwkkPaRHa4yfSZ<&P5t-l-W#YQCMrsa~qgU|yI~E6N z8k_7mcgnh1{F{ShnT%O>t&LOwidhGZxW>5UclO&ooW;5UtnCIH%K_~9@`-hp3pC<( z)`joG&3BX`jrp%ys%^+W<~T&L#bUf%!b?u&U^)*oO`6%(shswva;^do6yoQ3(HYXw3fviaVmB) zX|RySTP>v0U?GpTn#je2a*Ett?aE~FaA|mpt>}ezti)d6`kIgT8=l)_vzp(XB*dzd zYlJ#U8kZfG7$#@;m@o=IPg3G}i`6~e72o51RjDpz9yAe@&=2%5S{_P9nzR|r-KJ)J zHNvC%_|kTstGK7z}b(FX_2vN3!fy1|Dz#VG+ho0ab@H?Z>g9p(*(QGW&*Stzm=u76Te zS927m08|?eCQAXRypqb+Vh0VlWHoRpoEMi@AFglzIDdWf>iXj9_QUlb_d9fCCNGL* z!k~tnp6}2{+3+(*7hh>~K=0+93}6Xs6>`HPH{5>s@_(umV5fruMOWMKnm{pQA;-O$ z5XN-lPQ^meS$&rU1QsA)~|4?_pczpe{vnn%^mkm?)>lHN|XUoI(Z2k!I;su!>NP=d);g|P% zRV51s{^jMXo111{oQ=azl*nzztNmIwRiC0|VvV6t_1`QHJ4{dfc#mwLF8 ze-kamy_Q~@jot2g9Z1p4WLEok3;`c;0W+@inB%%tJ}gkYO+{l}9v6JYLHoB0+ONj` zdlQ~vE$Ns-PsU<>hAm_gtNC&DgzXlyFLZY$y1lfiyQ-!lt1AUby(~UPR5dPE-^&~x z)wjjn*<#O+A0nV5QPagjw`PSDTWlwQVuq`htl-ciNDEw*e*Tk7-MMaQ`SCPOP&+)Q zdHZ;H`m(~YA9U8S{avPKemo6js$HjF)Bpv%2Mr&4G`GKFmJwqu;aWg>_$DS%N>HmI zN&gO0C!8$vACe2?4Kzp6-hzvaYBtnrz$d!xp7(ptaS=ULhk+3|_cr>Kvi(x+eSj|m?$+f8ys9u{MYYBm{WN_2r=`!V0 zmk&3u@a_(14u$#G3Z2BsA=wWijJ{Sp0WCe6`X<47f~7wHyhHWG1=`!GZ>5q(A^3S$ zI#jy2(;+3@BL2(Cc@K?3idr=>Y(*%sq{|aNw{Jhb|HmKar?)yT{MRc8C6K50m<^e4 zHL1p;JRA>`{feItqdR@Y_w#@Keo?*d5lN*E|7(3ArYZjwNkO;VcHCcjuD+ZAb-b9f z#L{<31U`>L_l9p|V(S>8Q#bpnJP>2lGU62Qk1M3~!!tdbYIK7@_1>eWH{X8v8cHkg`+9r%;r#_>cgW0(crUVw zc5sVngIdl1`)f>D8g6e>l zv^i+U$}?#-D3Obm4_B8&qz3Q9VUG>qn1HzDCvQ$BL<3!)?VY|CPuYkGQ>Kb?ivzOQ z$D$+M`BNID(huMk15*eyY{l4}ynr%cYub!T#lp?(J2oC}x9H=S5TSD~n*=9Boo=S2 zSYc-kF*u{vxrw^wbV3yUq5%W9v{uKpv`t`ILv3lNrO`KIf!otm+qASz?%PReX{V*p zZ*PGc(~$ww(t^_J{jK?Iv$^~FFwx^Gj6t94^=w01qOayWmcxB!XUp}MU;c%o z7GsITw39>W7t-!ERnlv2^%gKCS;L9AvqAgF$_)C`8i$XKeiWs;51FNdF_hrmtQfK{*4qqULK3-U@AnE)P`32v#wtvoajclY%Ljer) z(cMT5IB{o#XLZm4FW0^CVV^gP`SRYyeu9--Ht{KgK z8^tK|*g z^k{?M?fTzTN2WPWg?B-eukI5w-s9((vUYWM8G|bB#&0tRTu7oiN z^(7ir%$S_7Po>d|ZV6REsck|uXv+HeZ1!+6fIFQs4TU%C#5b~|m}8?vtDulA_M7(meqbXDwa)MNFkr9jG)7?9_M7vsSzP1I9Fx1&bFV&1Be z{F2e@%za|%*Np#b`BH(;=LKrPB(4WE91K%aryO?la!tT$i+BopzMRsmL~%97`sryQ zR|T|$!ZL9H$9ztzPQj!VtvSOq7hnBt?U9tTvPexX5`r75sb96@B(ZK|gGNV~>Ovz* zA6nWdgQOpH!Mr;Ycw_xMpB$5;X8dy#YcXs(K zt_^Snf=z*q#R_D+Uri{P2O#A|d%Am+Ql2Bp>c2&M05W^nTpASf_(pTNwP-A{wc{gj zKKT^uLRciuu3`hW3#yQl(25{2+=ZE|urXTP!FNXGn=1JnHN5PYwh35gIS-++Zwph@ z?#orjnDDzVZBg46yhL^+-nKY)+DGF(k>p(oh}I_}o%fjrc1Rk`*mUe- zH(&#H392Q#bhLuRunqHJgH@CrR?w+1sH6FNz*848qa=jtQig1d<8!sOL&d>M@hL41 zXrg68i|grZqX_&abLz!tdn0hG*h1<+rEV_8UbNit4oCkTPK7 zYLT2-{cTL|Z&^8QZ74kVn6oSEtgS5#?9MjY6F$=+v62Rc0c*83iZT>yIoab=S~aFo z%ZI5-Z7O;!^MlyYzF?NkbLW<70L$a#vjH$b%Bx;0&&R2jJ#SLF#e#XOP0|coEMs3T zc6Vf}l+Ws=!dBsUvk|6Km2;wYm4=Y^zH6PT)+mZMMHZT15M_iI;tt=q9& zbpuP?jx{LzRGCG(}-(eAp1A&{>*|&fxn@;W0g&ZK&pG}6>a#%or z75#8?vzl#okL&&E7upmE%?Kr2^yEF0fP_aq)_>y!v$I;kA)gbXg+lnIJT?((j!3m~ z4rPgNPCIxSWQjHo&up*(-^Zq}r zm$Sf_nkX*M!0vO#Ij;~%+H)>I&f}(qVxvUUt8n`XE%Q=t+qnaXkL!%#_^@;h3u znQB=L8?mjImEHSnSx!pV>|%R1Z%~jFbBOWP;#{V$=N{^~NLv6u}ZDZjH3o9 zs4!c&3Qy^9HzZLq{i56X_KAYQf7KSbSXq8FymfS0$v88P29i8zT!mGq9YnXihy-mK zd;pySQMyn;!l4%t#kRi#Y5si+d~~uF(!svE%QvzCgU@hXE`FkJCy<1u7vNwRI%KqM zFV%D6#Ku6k!HJH%b5dTb#2TIpR1^;NX$$|&fsZg}7Oc41z);^yGJ+JOMt10P4_PG2UvnQl9MVI^K;>%RsXTl&IrPC#A!Y9sA z$_Mw;M1G3rdH0Jw+6c!qu+@#y1Akta!LogE}ss#TZr@Uie?m#h@B4@>|-lV z(GZ7~mrMUe?p^>8=*&;?|gZqso?#OyS$1e6pVyESxh@7u?eA}6@ z3=nuUL0MnmP_6|7zh3O8+zMD;?O@nAdn{$!R91SQ+Eo-&wZ}7GVk%p$KDDjXq4NbT$5Zl4zgT2CgiCWvCNMveq2%P6^E67qOtcp zrgubh4O^m{MxWA6X3{x;y$>}x^RV^OX$yT=t%XsTEvE~6Cmgh_PY+Yw;jha*2&0yD zxj()8wp#zdU9%7K*LRzfHyu*qO*miYc7?n0XrZ6GVmrEdgLMY7quRK6azbD4rR+I3 zk65ZeY3~A71S6kCoO-LGsEesOzMw6Ob1xfdcOkB-U5M}Lapx7PC*6mP?>bI%Q#=#6 z`E~z)c&ABj^g$O2*C1m)0zLGL_4WLoF9M-sA8h3%#AX*S1=DhE9o^An1)It6Nv)FP ziJr^lDlZ2SDZ~Nle8Du^99Ko$U#veS@% zhizc9-Qr#zxHB=z%=QW|@`v9|J7U_rMrW94yRjIL+5Zgd{QiB8`&JisSwcrqr+c+t z_eVOUSI{txzi0h>I!BY&{Vc`fvEy=q&lpj?6Ni!gUd9iLB{0`D3U4r&` zwxEk@c>gXgZkLTiyQVfpny`0+)11{>Zp<;7r7!n?;xZDxb(*4QoQ@;=gxNAE#pM{Z ztDu~|Ertvdm^&OLEolX7_^yiEvG}^Vd1I+NVbP~LG7Hw&kMp~4m=yXQJ2j{~O#{B| zddX25h`cUUN#xu$*8AkeT~+NRsV3jEn5$Zm*Zr_TbI(lyUlLxN8AqCP!?LZoTxC#} z73q_KyQud35gSOF4}3oYJ;R0jjp>=uuSHdWjK{>8281xr!>h;e$pHIoiyi42$yj!mMgnuJDH26=g z%RNol`Jj3@=p^M)Ly*X#Hm~i-7uAeY->jFoWVi)dmUBk5W>Xd-&u06(N7MZDXw>M) zU27#a1b)i_^N3o+)uZeCxpw`yUUZmY%K<03Dgy~uk2VPqcv&Z}>k*2DC*Dndl$NgQyqCrd!XrsLEjuz@6;1n(3S$) zDSFuG(CI4?N@^IlVbOD!7i+SLuYRqWQFkez;#Hcyv1t0(Tf99EY^}|d^|({nbJ>s ztIq%9>^?lHjs)nq?ZSJZ)mAPv=Be+6_a9l6Nm99COFA17hrlmd-0?4$c z7zIraQ}S7J&Z;9>)20_GchF$<*ok}WA z?A4rl!zsRE%>HYKV*itS?)qsJIJ_jXD zC`-_Zf?SV3c_HKFEh1%RAU#R@=sb z(Ch!)XCK5;KxsxY6#+w~@tOp7=sJyj&vpZRn!trO<@rZKUePP8-4d`Rp>ko##;ujzDOG719wFAKbk#p(5^WR2i;q<(S*Mj7rO|0J{72sh#lV3Mfgh#3Mlb2WMw`npXfgE+6XM@^^+8&L z;?7vN>-X!Ggpt=_nOeXxUwTo-xMDF0AF9>>c7WVa@c+ahAG)TEv$Jy~DQ2p|FAm`a{AmZUvtgLC{ zSvYKf<*nAG`pKq%t5gv6Os#cl9&cK7pDRy7>g*r!0Lva~>3@w`}5a_FRiOYxk0& zrt`+=G48eK$@^KP)FeoSUcXLQw$VEWHo#s-8du|~rg<+pqUmDVX?O9(n{w%vLWDUL zS>F%yID;(7)Z?l}iyk$E`n!`#`KfYSYV_k|Mo1lI?3HgJc}Yblq_Apca$`mA2>_{l z?d$Wy1?ic7UyRZXY;+d8-2u~u+Ov^1@_L@&Mhkm{u(hWxKI0IQMFvdnHhHR93k!mp z4c73^=LU>)ekQfaVY zmPd3mvuJk`qxmO2d`js=<@3Wz_v@HFVWs;pL5lWT*O(utsRJ8H2KI5pFqY`#)@aIw z({qYo?eIMc6QLJl$5{V?#acY%5{9wQzQhQ-&9zd7NQ$Kr6CQLXY7*C#CGKH3u<^^C z4z|m39kGrr+ZyOLXAV>08&oyyAr>U9bsEmZsu<3-w@yqR2T-g4eFoY0nBvw~8Ge?i zm);F4g{_cQr}Y%TjQs?HWX%Z=cwuzw7x*Tm)(0vgragt0MI1A%hj0S#-vo3*gDNwo z5_oce{PCJ9wHC~mi-JY@56y^r4VlaGajKJ86?GbJiD8hGt!~g#Nk^KtM?r7>B8oug zrJ+pQYW?cePF&RhDeb&TLZ%|?f9Sr6RsbD8&X&Xf!ECuo{G534g6(*T^(UFA7R5wh z^`vK5OM$3(tY@3jR?1)3zig`@IGKa<@d(e3)}Xa--0s6Dm|^c*%s=8#xFmzhKh1FuW8h@S&VdL9vd@7-bYsJAc%ClaNX_XZq# z7jE`2Kj{&P)#aRq_J-I2Y50C@zTGV+pXT~nD1#8b`LTIA`^t~-V5GPI%Si{6R5!ev z!xuUa^kpvdm^-i3OM460WHD(YlMmv5I39ndOvIl$6IesVBBaE`x?9)_Dj7(-7Nzbx zm0sBC%Ld{zY*KQX79Q$gaxhh5Jki==x9;;GsI=iINIMIp>O2&nUta4DT zE#@<^v7v9Z_GOigOvp1UNip(f5<+Ij6g3S&SK3sfh0FV;aOOiOMkUp)Nn1MpQhPa+ zuu2LgB--f2Sva(WblSCC<$jxdjhar>{5*eN&7Kx_s4nzOZ18s|9O*kxDBZmUCvG-g zukeB&j;G<&n1tE^k%v6`z(wD34VdtKrct=Whc3ILE=|^0Z^Rv0$kIMU22A*)5KWX0 z=|<@X$T*vQ0rOfrl0|L%m7$~(J&TSsw9WM@p~bGk?$csD>x9wI))t7p*bWGa3~nEt z07Z+;4N+)V!nS#6J~--4B9B%=c6U~Cd1s|I3a+mu;m{hbvVpewnzW3V`qGGfQ>E31 zrk_cT|Jc?ouWd^mqix>R-B`#2+#YptPa7fNC(qvtKbJJki>uxIPWEGIwTak>{a5bf zdiGyUd+#MUih!CDv61ax6ZWsU?ON@$TpB-|toikB_B`L_O~61Dbd#?!#g3H|S?c91KSZftfgV3O!n^ZZgmxzOnyuzuCT-hk?o|th1%w#5Xfh;Dmy`@H`#zr z_A#p$6mIXSAiZz35_on)Q;noF+JuI7!sspK<C`A*nB;Is?^~-gHi!*PHIjM~v=c^eDX%BiQqD*$r8TK08UBX#!=VLJ zS6nzIYEtzjt0~q-CO6@b2S0E>c3Yy6nqVngBPVU4(J_)#(*&r~b+V>yHh}Q! zfTGu$GqxT3uac?(Gi-FgE@vxj;h@O} z+=N*-e3$GPi&Gn+ER^0g2e?_vNvXY%qq)7Dl-g@Md=ORnKz0#LIjJ>iE<@~W8_J@a zS({+FSbbR^R@fpjmKdKB&61y~WT5%supfEaL`QTJZ>w${L;4s=EsOE2Xy%*9qDK`S zYfx>eTUN3#Sb1ipc9Upw$m?54uG#gVqJfT(*)eT^=4;mmI7v(;V(0nr`sW6_bz{sb znuP|nQ`R4SToj(riNPv5dB~_0*eqhmDmw558i^;2W*XEo^nO${)u?^A7%=m>pU^Y? zI-h(+-N-X5?$hrLI8mz04|c_1%L`p~=S4Ny4bX=I=hOKY${w@VNPSBrK{GVcMzfQ6 z&3->u3GDP2_Gad)RZ^d%(iCH^27Q~)f6^UU?xUN5C8WIwg){>#9~HXK23E=>UNcE< z@$Y7qh@x(n;7zv^1zjA}+Rsb#P{NwDk}Bz%KlQ24Rqs>Dykg1ap22D|OJ-|3V;H}b zj1WehudKm99{b2B;6qd3=A8m5uX$Q{)!)xIr;=PZIB|~G+vfA_?QHun-}BkfX{q=G z&czchW!bH9soK1mIT;F6PmXf3$F&ZVRtBriHC~X#t?cR}op^yx2CEL0p+WRUqF&dA zP_-0H_sss>;S!-G?#aWl;^^7IuSy#1o5lGaI&gHmelz=dJ-=IQ7Ib1MM@x(dX|$$FF35 zz>l~MNO`Y+c1(f>Tz=foT7CVqzUo(kR=w+(%A+?9PPa&j`lI-@THxJ7+!l={3vYX! zdS~H~8vd#4c1>>lFUZ;T$D6kw&i?0*M^t3INxa_j^Z;Eba55ze+MDlm3CZ2{mo4rK zZHgZ5bl_#L(ZIkzEFn504>+97mnbNDG)cmxgC|BzIXPSG&+w39`6KLC?=G$=8NN_M zeBxc6aYqb3Kch4QdG2PjMwr>_YSKW3%h$b}zoIIL#|H4D;Pg5J$8>kG`hE6vKqc*= z%3Wid<`te2UE-D&6beuyqRj0*N%4O{Xou(P)#K%SFX#Pv%clhl@6F=ju*F#j(kZ`< z)SFOOVNl_EwZ{86cSsQ_vK+mD8TKVz#g01~_ycmnWDiyD(-&-2y?$7Mqd%Rj73#uh zK;><)-(C~p6qW*z@;*mit+S+F6F`hLSF={96u?JUVgE<$0+Cy z8E=#nbbP8oDk*e_SvDv7%?1Z@5DPYKk(`Ox1g54+!ST?;o-S%}aYN2{*jukcswu%t zt1~P(e^tXuzpRz>S2b+(%SkTIP)%`GYQ-%~@!~w76B<`F>4OgNpoMQd9Uy34R3Pwd zzQd?E9cQt-n{DsuHYAsjc-SW3R_pb0xxgUpj;jl&mqiB5P+p9NN}Q&vN#cox2HcuC zrXu=WqVH(UTlsA*5mJL=Sq&Sp>H95(%GzjO^-NX+>oxlDR^Kyz&$cWteLGuz-Q!j! zZ96$xBWh##mYPpnoDE=k7g}HFmzUJ=T!i{k+p3yw&29B7TCFsT4JYl!d@TmnJ@T(_YW9^FK5r?@V7HF;=I^eEeYIv z<_G8!FMX+)r2hJn;MIL^HFJ@oAMWsGJl_|Vf?a&-1$6S{XL&%)sHXDH3QEJ(YC5Y& z6laTi{HOP`jVZAfa@_UmD~}U=2y3zpq|O3=+jvOn%6EjPbTr$8QpjnRmgTD&LWlK! z6!s@vsX{jZmMpPKRn+UAzoHW}a-PO%Izghx57BrHfqL%SA6a}FnrUE;?4Z?`qw@BL zU_HBQn&qow;3*xSFHI@S7p%Z-4*T=N#;3A@d!I^E;*zRjJ^N~gS%QZ?_7+dHw(C7U z<@5WpN6LAIO?Y0|>(~3l7XRkrT`pa*1u18|(2`H$)Ra%{ve3{~xE{A5=%m%(M3CtD zLRxexnDAWQpz6AF*|F+UM7lt{*eJy}MA)H0gWhPRdA+q1 zV;}BJ81-dn^%fiG=wf$GurlPTc&^2*Z^+l8XhfYZ7hK6jz8rG4^urRQcq!c}DYw@b z$X83;rDS6?s4&6{Rx$QlAGUXN6*CPzQMoV>oS);*oFDydc8@Zn<-=;fc$)JqiJIKk z1`K=*{8#TV``&z1Br+dy3-mpL`ZU`<%YG)Kln7J(8lTd{zr)KD(Mm?Kwk}rR@o@1y z5{xfVob&jn7|CV1wp`vUiPZE2wHka4n9%rVl+`Z}3H=x6a`p`uVeN2m5=*pV!9mv2 zdb`DI@l`S6RtwKiVNWHk`*AO}7Um9iI=H)|WE~BJqz3Wc z0P&IT^2p^AR(`)tPBV*vt#3t8|q`#cwKh2N;g5uLPie_WTRIqR%EJ|J1aV_$H(-|w%q+)^D`F? z^=VPTe6HGHh`L5qHq|lRGvZ6{i1q7{p!nI>Vx`?E>9q}R zV}LH=_PKnD=+?QS)WN-uei6}L(5L&Zc3ed_5qCDQ!2+8<&`bHUwG*Ihpp$jlZ*E?n zkpUZI#X5HB%<^YDMzoV<+HSUsEF=vdhdj3O9rvhp8hYS$A!)W!n}yL?qOSa2x_UR< zb*4auPJuD|5_;l?^vYu@*6#-6lUk#cvlbkuvqtfk<3=`>4BBaorvFW9j3}9{`C4YT zVUoK~hr@k+l2&VOF`_e1=mZcs7y2WsWUvR=i0Po6>SP#YCce!5o(`>OU z6{VzkRksqa$xkzw-d^=K;*(k}vOz7zmBl59oR?AsWZ_T4Jk9bUS>Y}hRb+>k)6!%z z*;J!B5L+AA6Whu|m_5p6LHh;sOA;JddjU7M-jC}`sx+esCD=04KTX?$Ip2-?%f3I2 zQBlu0!J2*+&Xwqab}?n<=5&sP7xWh- zK?y-fiNhDP3YZLknyu=TCC&=;H_IG^}*qV2M* zaf%6NbtI+bm|`OCZH%UI#Y8XdE%21RRzf27X0!%e?bq+FPR`{|vCStS zTQBQG&hr_-^04(@I+6=Bb2R#3w=PyC_?#80CD{t^R%5pK^oifiO zIg`$Ekxk2O=ev5z=Y(C)vqW~!jZ70z{PZE*HFf-KvWr)j7#4lS+X_Y70Vz)`8J@ML z9V-gHI+~q2=RxB7yGZGwdpfqnFW%FSg3EqLw-b_28lXwQcMh|CD55`c=)t&)=Ff5& z{}q-k@p7+xHOUd=G?9*@l1eFVWfi|6524t^TR(f`u^?FI^Tz2$;nF~};#xMAolGWz0 za_UAkLUk#FcOH|r{7@V@az^J&WzHLN4_F?Ch$7dqVsXyDKcU}&NhR*erJ%J#ES~c& z=9)XQTKXVVL@R*h-SmkGazvYk?blIIty@_*VfIY^l?1g;<)9~wPUx#bF)n3b%;nS8 z1C2*-w_=!DOkwFjot|TY#H8w0R_H4regP>=G-=yAyeW+)l-g$`m~%JQZUf3SEv=%w zqFarMM&txm9U0g0SQ1p@3XF5~_pm*Fjni#pQ-~I9e7Q%1S>>mZp`Se$5&vouIz_wV zuNawcuEwBi6QuPZMsq2Hy2htxuh8$=KjJeERzPwl+LIX$x<`6}Cv-mNI`x|r4PJEg zi_*47W^Xvyt&e>bOQT%!?T=dTy4`3N^1^smm=T<)n0LqDC2J~@E-SZ)pLRJ#m2L(X1AQg6`nhwRD!rBRNT+9!f|_h9B%nd^GJ+HWzs z3wlAA>YE#oyr=zKu$RZEnfTC3o6T|H0)yi$ zViV(1YH9F}7;jNp#TTgs4sP~3q1aAf)d}qrLK+am#0)vhb=IC-)Oaz>KN{ONYH3SG z_tMbdwiYnwR!f+c{DnN=zYWEF@%pKh3A9SZVdOg$i^ad^+xo4$o;jp3dA6pul`>bu zuEuy+m2M0CbG??EJth_`I5NnAr zWmCyHU1Hk`(VD}_skhIaILr@iXO$SxP6OjYOC@K!U;Y9&+F~-o+mAMP7#S35V7|5_78~u zes*<*X(wEmS(@sT5gxTJXS;8`jzvY|g4Pmub*34APkN*>u{D-&2g6y?@=GM|us!4a z>ZJTB7&>t0=cgyMj7WbQisePOwn$;3Rjm3~m}o#3U!OzLq+sQL#|j}z#U*y|@(;mr zY6Q(r9cOx%WzgqEq^-vxZeMmX%-XSeE?kQU^Xl}Lue6oBT)it{P~a)Wb|;S7V6XF? z7D#yZO!)>HahtX3NmFXFpp6nL(@xE&1{E$Xt5TBkvT93PEErOzmp_%e$8D-*358Y^ z)luY&`NiV3` z|GmJt)BG&9Rfby9qQ#4`TT^hky){a93gdnpa7RLqVhr)C))(NmVIqmzHO z^4c<2-|F9{r9KAV$XQ}oeij{c5NiInpH=p0v7<{_Pp+_QT7HS-dX9r=|JI8qgR^q( znnC1Ib2NFiO5*yvNiiIT-z1Y?Rq})ehepW$T5rCYA;F_o-EMLU%hgiDMr>Lc?)h!K zIFo%&HEJIA8X3Q_(WuhpwPjVHw(rGBs!T9^mq9z@s&S+nH0D@&fol0xB=xe$lWYAY zlAGJ>b|toR^zu55xBIYKKA%{!mv~LIW~cYx>E3IeR^6#$CvbZAKOonwKgBZ-I(}Z!rc}TGF;nfVWtHNPgj|FOGjIDW@qG3d)_Fmbr-CR zmYl;{sQnWmR99u}%N+WHJJnoAixtzl-zL5q;*%ItWhiAx!7)*2k=HY}Z+W{$cV z!%a*R$pMx}^V33TGu7(8UCSJGV<^&Wgc)m64v=z9XP{<(gp}*%1!2^=m4!*an!WX> zm6h!Fy!iN95d8GN14oc z#4)96GsV_xJL^Uk;v5{XQjzPdMvtgJGNVKUGow_UGVY;Z_A^Qq{G{SfrB_H2bcA%S zDZ15fo@0X4%r%hlmSyt_e*sb9K z3wtnoME$9oFoj~j)<5w1JJ3}~Xd29K(bTTK{&4u`lY-Z{^2`Nx8u6yuU765JL9s)J zlel+YIs?&NSbR2#zh%1r` z$-T#G%g7)HHlwT*RQQU#G zS$sm=RLN4nPD2@=D*B)t4g%{?|6e8*INGh*Q`G)9QEl2oalo*GD9 z;H5B$3l<+(+7d6Bj0~@X+zX{=Z;Mk#(S&3j;!|7gjo-08ILN| z#j6OMUBx=~JDR{TX4##xT%r;!DH9Akp9_*&?1)Ls`Kx2XXTCxf#S~s}c0OX7&w0r1 zo>iv2thEA-xZbLelbEz=9%H+KoplvC`vx6rxQ0bFlD4JEa!;}r2E74nNU+IWkS;ue zJIfU^T)G=dtnsfV;Wy0amJ-bO(vBK5OaU5krKozcEv;T60gRZj&BJ~EcE3iS2kRLe zln#v=2s$llltD++@pz}jM*wr*dMrwGWuVof z2fysts|j#E=^Kxl6DZn6Upm@VDB)s)Z@t7rk+d(DiV5cp6bv4<#~5a3u=xt3vGo(Rzu3dj zxE>BVH0j)^>`EAX6zSRX3KrNGPc(#)^g@ipnQ`dw#^MVO-qzHuY$FJIcouKFz$P2c z4A6@^u=M-E=@z~og5d~`8o^Xl8A~Zt77wC3_#+LQsq1Xpp-ux&7otR!_XLY=hYi`9 zLY8jZb{wYQw*h%)N{fGo8Xv5Tz6p{b9Xg>=%579}CD#l2loQ81!JSX_Xvn4>6R}cm zW3f8>^!17c4`MKYV?LgQrL#MkRuN6+lb) znY!h&f%44fqy6IGIpwGry`#g|mMh$eK) z=F42W3dj0y&n|8+Pp?w-Dx1*0c=h3ZuFI0KCViObGV@efg=2jzwXFVpc@bpOMi!h~oT|!o&l>7Ppc{EGVi0exhrQKW5v(}^3O`>$gs+UFo-cs$%b%UhS z3@=i)G|OM5v~qo!G6kbg+*dNapQaQgQIooSywqoszF|W)rAPbrbFot`l^xYC{eWEE z^#*dv=LKf(cw0n^a2Je5IvO6OP6o`dh89x;eT;0kl%v@9OATzRk`V1URjQcazna{v zNDOPiZAcaBxLBzBioOqJEjmxudXP+Mh8_bg!BnGZpTQE!=ceUzBAoL3^DxvTIific zaA>DtZ(V85z&Msr(B>(T`W$7{=28J-m)k4NqV4 z$)^i!{S3Y_)cG)9{nhfwnQ&ZE&R2a(+QAuTKmnpHf!}Uv=em9w4Vd#o+6kY*oFAG` z;WIeq+w^S;ed-q3!%EH?gh*h4*`7L3DL*)i(u_kE2^K>oHS)tMR1OCxI+zZ$17FSu z=rlO$&;sBAw}Q1WRb;@l<)BdevQPy!MH@D-d||s;g$-=TPK;li+T4;`3EKD9x|>x& zT?d#FBY``eu3ub~93HhyzgXy9zgS@I2)B^1Guq-VEZs&UQ$S6zn*$P2-T1=U9iV7i zK39fWfXLIDDfU90Y@oJB0qX3PNuWY=vp@xt_ogWFSVyLNQ|fHvlsx()wb;b30Fmda zPs+wr$*!6xXb>8l z*i~Whz~CdTR^OWMcHY?sz|=cKAIGEIIzk`8ntB{2!G~d@=x0%3wbZvh!9ovB{ZDKQ zl!S%^Y^Rnbj9DUtVNW{O%G| zmf|TD+sT@mD!K??#4(ojyod6;wRcvmi|m0Gtx;Oa$%;yBh))~ETkH)q;I_n6ZcNc8 zNDOyr8(Oa7Y`$Zhe!Ir-6jNT}w*w4sb??{Bas5>TEbs6%$7@UUJSvadaq$KAy3(zc zlwfq~Yao7!4TUxc4=fHs7fnv)TqF-Nu&4b8;Vd7QE}uH1FAXVYUs~pkNhZB4l#-V(F=#_b z19j7zOoguvL*;8z ze|ul_Yg5FX_40M8fv8`fU`1FheGAR@h}na}YsplJ1AjYWxi&|nK>`_GmlsV~AN4gnmW$5+}kGK%|xnHrRm-15EKPDWtW78%x!}89G z&jr%Uz7Y-oeer$1I=|AUDUo!3*fb}8lE#GYpUXbFk`4lN)^O>cmI1QHZpZq4j@{mi zI}%C~+v)VBT*UPPW)~|x)9>45)+h~~51E2} z$f~FdnG^JSa!|X}5cXM+o>|x9XhsMfYZsF!>$QE8!yaXAjtJJcLl3^-DFwelA60Km z=>4Q#q%M0`T?Ko7R`Mz~WOoT(GzKNXo*=iWZt>o)>)8*pR9>Uf&|c&A@$mFzh3A%C zJ~cGa;7cQ=)559T_hlHaZ=?&NlcwO{G){zHM)cJC?rE6=tSXg*Ur;CwM z9K?&p{k5!65ZT@NL8x{EDlLpp2&M}@>T$0U=L&T;%@uS~`p7^7JN{?v&$h*Z=!$vv z8aqttmRJf#b!RNu{MuM{$170TQSf@nSCwnC98hPsehts@p7Xo;_xZA32Fe9mUxA<= z;7h2fZMinuZpJg#yzq!VW+e2RTZ7XKu=I$9s#Qx-bvG*&@!z|OHXg=t^?*bgogzOH zp1RR5HR1RAf#UAxEw$KT&bKQZP;%qA26Q~zcO_ciccmFh`=L^Iutg_->dm!MRfwrr z$F7_1TsuN4UNEia+LBH=X-zEW6(&(|8?M}}+JapDx8h+agw)oTkXgMKB7TVtZN3IZ zLThGOZ`OB*9cQ~X03-1*B(do)Ma|lYl%XwBsA1ic zr5K|5if5;(#ny^rG4F@I%TXH6>h4)j8=4)!$-tS;>+rE@?D8)k5NF-xrZ# z4aPFI+@%{lC}75SGbqJ+GKT_5m#PJbR;l>#;H*~2Ic>cbC~~QDZ0EY+jY5%Yu25^1 z4cPI`>I3X@pFDCjbDKqlBDb|gjoh%vcHOG^D(O|tS8kk%ASR~2Z7PNdNb70E9xVJOAx-2GWu2GjosY04%G~d^@5<7Fz;i(^)MnBIXdy{=*>M&>9 zO0*gEV8XY(Wg&-i3`m8B+i(XovHg~=-76(f*o-7hIy9?a7oiF?;<{pB6q2^qNJFx) z7valtJ;&1_badjwcJa_wwj%7pb@Q}d?;oLK%e@CZf4yArJE5*SuSZ1$^%~|hhukYz zk`)6uJ?0^Tq24*-v%fif!5xA7c2x(m*V^bwLwjz*)7nVpJ+1iddjDI)|btG4?Y_O*lhW_BKFT5*)n-k2J(VBJgV^*|^ zBo^$>k&vRd+r`t9nM88hRp$JrgE%xjjR)BEd+xA~trg^L-MxrFkct;{dN_u})0VZJ zAQipvJFqu>xO$ zBY|^B&%|9keD|^=E7jxOQs2HKHu z)Q*1lT_Bp7u%gSX>osj9dQQX1FA(;9nAsb19SnharovfRL8?E?AG zF2bjhanYg1Hs8ErPI1Y@9^EOfiyf8j*H4?Wf5p0uwH-6$3o4Owh-31L-ST!ehjJ%R zcMD>fcra*zC}3h-cdK3O0%-YVYMAVoFj%B#Uf?27eB)#Qcd-+)f(f6~jGrNpfESGh zTb=T>SE? zF`v?@k%~$_HdRV}|B}TH%6uShv@Te})>*BKT`?Tyvm74G#yKp*r2=fTUyV0G8X6UM zUKzZjop;1mj_8)_Sysuanh_L{h;(551DQR^ikNKB<-Z zCyM^|66wW-KA&`}2BPL~A-MBw)L>+IrzL$ZF5HD*5W_qy_X}K5Oug6En_(YPNv|ml zmv~ZC3ez@D$CEjWX#LPL8E^t@Vcswya$@-aZ% zAbhEsll9tfXS;UqarI5Xo{x5v`j{>@73jwp~7rEESfCqwXf$tu!Y}wS0Ka1TUvF27%e_MnZ=&;u+foXj!V6H zH(>n~lmc$yOb4$gt+&slDL$z&BWQXOrW!)l2+)X2pD5iv>UC6fOjkaPxw7r6ct)l* zW|t2crMfp$1fwvDIPSAAI;`X2PNy^ig$h@~s7vap^|s>Q#LPapjGMF-Y->U3Gq^g2=04cX8%gP`frV_;}kIkoHWPRiBEQUvfk zm&IgC0ncMya}6s|EtaxPQ)c*GJH|Ua`ht#7%Uqjmhm+s!oPh%K|3I5pJmEKXVWFdIiI3zH=s2~}HcOudV1 zk08;vNy~Q$g2SATB+;wLiZ;7D7WcP|J$832e9fhcQ*5z2Wywd}&}?r(VH&MV^_G~G zi861ooi@`|Co&M=k&ZpP=GCgiYx1rHs>#>@V9&0RZYG=7ZfDmr{djgQa?s4!vuhLL zaVW%wuIJ}A!r8S*;&RAMf@YRY3L|#m=uUQ(^3~y9OQ&iP44J}na&EF)->clIq~~2~ z2#?VwZPMmLJk=!AB?v||rt+g!Z2O+u>0A7c$GiIm5fj-|INq;6NO!i62#cn4G0VF- z?6GjTTFqrnx;NrEFSf>uzv!KRt%I#2mK}e}7rX{L+hDb^Oy~7x4Pna8?IZRQKCYLg zkJ9BzlTTV%>x6tM{-H44Ho}x0UBJt&sJORL&!bqyig|WfuF#TJ-GPM}o$ibUr84c? zbpoeHZED+941NPT9_O{zK5mVv%Gs6QVjymOEs-RZDC&G6(rnv>$-%1{&r_lybCO!@9_?r8Mu9#y>Yvax&APNEX8uiAWBWDuG%nPW_HVtCkcclRx zPd9JDBcg@fTa22W?Ik6sAA`A(W!Py}*ma=gGRJndMG(T$255FOy791@wc;Z-+S*D8 zn%&C&5*ym_ve7U`LO;y1;$HO-5-T2tBv!g4RU&0*%T~n1juj7WQ2c6pX5-5ESPLz` zJxdi*Vp!X)52k)6fj81&DBNyvvu!&wXSbId>dlq{U<=%&>c1sOr8AnLW9%1xzV z8N2OL_8JY(w9I~Fi4A$u?MH5+wjViS(R!Co-F{@TKy|l;v4!2^(K<=(NCugzP~@6T z$j!U~JAU1nECEcu7xR^7T(hW9wAboTBR4Fv-N&ulnJhtalLd%+GCL5rAXl&Hg=({5 z+52vH{#FHxIks+cGrL9+ya+oTzd^Kk;X%*uca6e};jU4Vb(=%0FP*^qWW@c3(8NYh z8ro~SMneGOuF)WNyF!y7IQh_bsuyk7Xz-#5hx)Q~-|rgLPPt9;F?nde>;_HEscfuW z_i`rbqkBM|HqBVNeV#}XhjnZ%(z?&HsCYrAhdrIGo|o`V&6i3zprxNpucWZ^Da@o6 zm4F(JM~rmrT!e8Omb?W{J>~}lNWQ26v+TAb8%yowhLiL8*BN$X6x}JtF-usFUO&k4 z&4e|}Y8G#Cb0uf@T4pV*+pxCSjQ@4LeUg-sBVp{9=Ae@t(Uh)ts%m@PO3=QkM-pGM zkQHpm4xtfx8V<8PQA5(r#Il6m;?~tskA!ekrU^xZ5-v4K>Uqlo(($51*OY4wQ^69p z?V}HT%qf{IyLv)(Q2lqSEs17KbBgFV%|#N@vVw{AuDx+#>!gW=(2_X)AZyz42)ib# zt2<<2O8z1%k^&QEZ2A5?+w#s5E=}ra{-FOfUuhj|F3VWmm%}b)yQ|p37L))t9Xt*B ze!X9OUEJ}O^0({tH&)8pvcrhhOQ=(f1$Uz3as%{~yamdi(a{`+xj#etKJ9GJ#AU zIHn8uPrOUQQ?YVqsdB2@voHw$N;h&UmyWxo@#0(BPSdzNOjbvn2*cAvoe9kx~LSk2A zEOy`60R2^z#$h!_^tYAP)Q8uQSC?hflov*ISw_tT81Q-U8i(Jv(qp8cS!dHH4#q)r zy_Qg4|La!Soj~=__28tg8+}Nn!z{an1GM6>a!Sr%%t6Yf&AT_Vrwz)&1GjZ|I5-a9 zQ`~5+zn$)d$G=p99hF_7=`hQ#r2~F~S6!A-3kt-(l+fNj>LB55Pzs85Hhn6=udsvk z3s%>d<$%DerHi9r-})f)q-fLB1Kv_CSyivPmGxn}e_a1^P9ds4Rfa1d=^zOnnc)yy zXX9Y2&xUSTk_PI^I2&hi_pS6H;LTNYHO6-Rf3zG<;_|b}ek`@NUDe+zEg5A~HbRk0 zZxP5W47@AkhDG*!bZKWxE{la*k;ud-9!E&z@KdvF(Wp^64;1ZUyCTZu8GT;mB9?JA z#^w>NB1`3$N~n~|_oEfg4(r*qy@G$ru9#!nL?@=Y9gA8>@4rDJv-(r~&RS3MNwR?A zY+TNktsulvw`0+5Y4e}ePH`#YzVl~zQhGPX0lMF> zKAbp*ghgJIgb>~LZztX*4EcEBs^&u4o%D!hR$IcVE@8a>xmj=b*Ej1c-e(@1!nwdD z6^0X>SqeSk9M(8_ARVL)UT8hN`}45a&gro$>^uJO12>KC9wwW1iNlv%}Y~=z17Ehxb}I1p9b?c*3UL2V9_w5Ifyo+F5uz+ur|} zZRfnHKInI{roG!O9#%KYHKq~ev1;)+fmP@1@bKz!e)sL>83BEwa0Wz~=TEbmps%_p zy#7h5$0*ho-Pt~2XDC)1%n13@VUFFU9D+<59j;pF*p$LU(K9Z~I6LgPvIwKP62{qc zSsQRnMXd(!0oWckdl{n@-y^CTm$Ps4v-zB>h5lCQ^?Y`ZtSNFqpE>y4AmS8J!tutGgCo@?V!p9 zC_{0y0T*lQ62?Dp{1-11eBR=OYH2DGsB-^#m~WraRif##+3K!V@soedN0O?EktQDJ z_&LAhyBP3!LN|H0-a>OEN!#MbyZv^uIcCDBMczLx-_Dnt)04OQOTt&(pH)J)IQC=W zN1Wf8_!cbgM?Np^&;Q_rMminlCvSthgo07zJC>F=Gwejam#Ue=Mu+P5e!pFOIqWg` zVB;S0T=Z(b(%i1}_$u9_UgOPt#xJN=ZgqPWq`x1KLX}nBo^^r2@Xz^u8FN*xN23O| zpIy)C!>zV2Rt@v)%h~FH$pQ**9c@-m5>e3IVFDW;Y`o&IU2JenK>fSyBwq9V;faG( zYkc)G;$G|O@p*?iqGjS?A_}^FAwj15q7yaN_lLVW+N~i(T{NiIpxeu5OT^(zmzIgh z=%V%Y<%xakP_I!-RpnNv8S-4mO60Z9vlVuD{ntPDb5x;wU*nmbh`cU!!?91IoB@50NtPDiOy;$D5O@D^ zhkaK#$|%hk``ZbE9>&=;7bw#zW2C}Ze#aW1xVk=1P9$4f zlB2Wp;z3I-o7)u0kfPVpe)<0TH|vJF08RP97BOp9p@2rCaYt53W6i;@EF(p{y_+>UG-{v$DE+8Z0;mO;;h@9aG#Q6$1)d`s34$Jt$*g`(8WFxa z{`!nXy>5Pls@1@G{@o@euPD0on1xupI|F^`HVV2_Yup6TCstHU5@N0k ztL$zA^dC608-r6#A%M<5r{Rzlk#45{9I)_+6?!yitTubB_FyvJK59-wo9|;yXwjfg z9y((fJ)v!rO(nxcCnbVoXh>l4*OLtXzF6Z*N3mVO%1^GcH>{E1s*`ltBF1p>LxYMnOo7Uf!9vj8>MTjsxxA@K^Kpj%NH0XfnI?E zmqz7K4{bMS?|FIVF{BK;4nCr-@x#^=;5_dsFe?NDXRp2Q+ryRyUMBJPqK92a#vUdl zk?n?{bND+GO9zG@wwTO%WtDkpv5<;NZ(=MS*g)g4f0*pW@KF~F_Aq+~I*DuEU_jfd zD*6Wd!yQYa=EH>PYOK9OEq9JglLbcdreYWNSlH=Pxzi`WnXZ}HjnbS zRI?XGeL85xiUc-YYG}Zq%&>e@$CRBUu6c`b5b;`G6ISZL%(r*veNG8!4Mb5FBar{0 ziakASeAX*G(m{zjv_ojrO;gOWq&+Uilw@j7#1BDps?#5qa8>VQN!y-9v#k+#c+k>C zXqqRSG)eAA;Cgq{4kz|<+Z~DXkTbM}Ggto}5xb51#S(XB?%rW*@EYUKSR}%}4d7m9 zxqsMT`!kk$P%fB?qenFK>(c1}AGL;-56?%}-LZV8C3Jqp^P#$PHiyK+gk7w$4G&$; zA(;3#|2W$ljej@khR+S<7^&NW@eLZ^C+>`-Xfhp5Hrm?D{hp@TNtz}%G2Tto^}j@) z69ts_k3(}tk~OdBus~JfX7&@Nv&duC9!s-@8l#1WtovqKX?8=H#n}7cNVeE;eCM0h z1kUr_ji@l|%Yg1&U23C&AOH2`!_B9wFQ31h zpI%;`ou2>m3zit4UcWy%CKHc`jN5-+T#t2Ga!m8?)0`$rj%j{AyS=-(`+PU!^{vZ; zmAg-KsUAvZH9f^yuco(1TWSaRd|aLq&i$h6Qn7IO@|o@vz^FF=IjLb|EwE8`_pp5h zq5VvQbNVYvcxRu?7a%?m z0+4w-S~`jjxX~;eS=4OhPnwWgFmkSzwBlLKXdudiKL3m|KC4q~^Uo;5Baug=rajzP zI4p6EfejeYUrj={H_!t`I|R}YGR7lat^t|+HFR1Zo=J@yrKgg^l|?Q`mV_INvPBa= zwcjRv!htO3IQS8fw4W}Mr^Yh<8D!53oKUf+IS?U)@Q_7!s_|0wN_TCuEko`k6&1|rE!Q)8CK&6D zl>`kMSVDjW4-bKzkifKL({aR-?t~1OT9%PqW2W~x;2eE#*x`Y77WPp%9CUOSMJf;l z3+zO*fXTlv_Gjp~dFe%7^q8?xV5w~LpN8!(-d%iKZ}@H+5~gruVJd{RLExWJCY?Fa zmft~o`w3kU9HO=o^B#20|6TlCs97=+f|cVj38}_LDBW1hXRdRE8F713*<)OdVr&7I ze?DDpzc0Q{FW3r1lo$@I%grCt?m_B8kUSVTpSKudbB+fC=l(lZ0J7&2TL?Rg!9699 zNg?Q*#Y*0ZBujaU<_70kY6tO(>}$^z5X=W^Yl!Q{Nb4@<`9VT@02W(;YY^#(=QSpjaWW! zzX-M2!;h%*jIPMz#5;^X?Pyz^(F+`PxJ5{@;77n|*iY2?SCH(;Q#Q=Mio~2IS@wF* zUsc3JKTK;&Q?A|^NWl@uzxanQk?go>A(ksS4xAo7+KKdu9)OMieX*TRQ3vw7z7L_s zc-c{d2j6(aOqqiQbp#?WaWv4&=}dmLBOC?-kLD&mEO(g7;@CV`ICMFyQ#ceE-c*Cj zA1o9ZXeLu7iPKgvpglc)zWeZZ%2FHxuV#-BiXG^3A)u&eIGKYZP8R`F4ed4l?yiu3 ztqgfYf5)OK8ko;S0|yo@GRa->wk5pq@6T`DE(L-dcMe?PkZWnM-(jDKFnc)Y+-+)( zi_!p3TKsu2ssxh!POC6v%iTr-NgkdLIw+&SAtf8b1gM?0`-$Hz3rh|*g~ET?{P?1#%x zOA#>nPw9A4b$rVUYC!9;0sHfaZeZctk}bF0kjA7@{@D5dnSn8nDiG`bX9bru&Dba) zPf~cuawCQA0@eG9kp+y@@K9Lzouo8UbG^Va7&T%`D{Lww z?5C3*8gR91WNx$~HnPjyv)7W+recyBi>z3j9_z!wUT5Y$ z@L8=-TWy_N+Fa2@o$emfht*B29dNX0(AId*Xbu$y?$N_-k0r|@IOM0IA#8$%+*B}x zTg$~#@6tqfku$@?(IUoYh(|-O!fN5n;x1r&>if&Po2D=jMO_)VXXA0?z5#S8HwH~g zI9Z?~F^ZeZN)|-DofM`^d2cj|0uK0+otds!WTX3+t3F9W2Ui_k9q()f3NJqvST&&V zFkx=b4kQj024#?@1`G}rhQB1?tpm5!-z>mdL*#ZUb zi%nt2PiqB-d@rU>ujSPx?U!V13w~+8+Ix#_|37HXfEu}Ar=WSV`_cSuKckF3`F>sM z0Zm_-#&ImNacnU6TbZVTAb*lE0FuhjD8pv54Q^xm22V-ef`Nmyc)UzYNM_1#^37pI zb3J3o3~$zR}D;f}3Q2;427r+*{;*p6sABUz5; z-R&KAD4?+6eN=-1DqNhP@^n8*?-z@_N`QfK$c^A7u~q!`W&wl8Ug44JP5ZFjP$0!Qfgm1d=wSSXnmj@vOXBp&lbunj8_dBy6np&o2*Od9wMQ57Bz1Gnft!LwH7q zXS%Bffirwt*;!Q-Pgb_f@i zJ!x4SNiGsMp;_bn{FYn5!jw>9Sf4l9Y`tAZvxc^u5N&^h zdS`S%v+*;UH83(v8)#_3h!$x?kia27mI+trO9o^(Q;4k7P<`_#V%h!`KAjyqV40mV zagf(^iZwgcVs<23y2c(Mngedc24tSS>y6idF)w*&+<~VMVPkc81`Q~74_|SSNqSnS z%?-+2RMuTth*)7upHhl?>Qf42RT+P0J1E#%?oY8G{o8>D1?eS=K;nJCHB^ssYZaH( zB^m<_2~7R=!&Lh6YZ!;QQif{rB}PMvjqo}Xt$UvdyvCcu8v@Al2oziKS%#=HTy#E5 zsUfSMV;yI$7sMz(gB}C?2FJ>>L#qa!bH{fquziq~AAtuW2X&701HCw-?Gv%g{(vfo z&xjYBXnq<{c>Fnm%k(gTOqV-+oqEyHeMz?574rZfR%1yhGk8k{PFbb3&8O=}oV89Po4nAOG7z@s8QD^7*;oo9mf7#yM2JoZ z(=;j7#S-a^INSK3i?SChr#A~jVb)K>>`gJFM>J6E+lY*Kom5>swBc!0EgxYNV`AIp zL^WR$nC+rn)}CHVOaeRpzZQ6{zS3R=H4l2jGFuM~H)6V9)WG4BOklRDQ!7EqIAKSsTq)YcZ(%5zFk)=coU& z9eHXuK$&YG8SjUEvyd;OH*jnTuBiOmh>|QQu>BzxK)7if~Z@> z>?Flz{9F)U!-dsqe|D324Jph}sEO8<>Nd;HmRcxS!4{-vEI;7oRgx_U2~2ByA`^1k z6M#1cIU)}Ree5dQ@KT2mSHTjyexuMP^RHHB#+pPN;NGMa_xRO@l~}uYFk4I&iJ44b z=I8evRvVCcvb2FpA2@MUA46DZEt5SY*Fe-4h_~E`PXXw8+Td|psjUMT-ALSclpcPD z%qHD`Mqg(XkoL36Zgd9Q2oi2AEaIM8`*9mWnW2%eoPKxG7L8Fx@jz4O`z0m|ch-1L z-1?P`8_=wQeS6bxjcX!sN0P0)d=RyP=!ov;zw>Z8~hYd?0S)_+(+sHaBoV#0?dH_%6@StS`p;##vfhleb5I&{7}kqwSIC=@zufphn` z%kqwP0aKwN-C6Ok*g$KY595BrR-+Z0Xnu|t^r&Mq@?u2`oa&_VW|*98pl!4PSS((z za6JeQv3bG*R@gV_yHWwVSU>D0KJK{XY%h9Cw`JA5jYf&KFyh#Hv!WW2$fTFy0>=O# z8&Cmw>Fn{Sg#})GAC_iF3r5ZXmxm-)0F?K*c)@DK%@+4n(ybau3g$mg4rBP34m5ch z6~%a{?DA-3yIsBFx?B4Asa`|^69YuFCX-Cd&n%;H5S975Mh5aYhLAEAEs^B*_4(@t zHx)Y9kidKj8Ku8FDMr3A7exy?$rE8UY?kdAHBfV5r|+Vm=V0KYhWU-Fod3pZQy%0O z4+nVG3MHCS1imAgdA8ZmDL&q;W}l$Y39??x9^*Hl@NBkU{h-kun*GnLG|XTY6PWq^ zI{=RpIM277Zdn=inlS5IxiZ%*99YXe_V&m=Zc3^L14q8BB#z%z3S;Wl-VFH}v>0gF z%PwRnaPdhUmY4yawYta6@j$H;WWDSc_zft$SPqERmjj?F3qv^DiVsYlBB%+>e0y4! zBnt=D3(o$QI^Z4FZ0Ir*dN3nF(o2=%%f^Dv*?yx{qqnupHZ0Y8v*u6G_Na7193KK##TZT(>BlBAJb~W-ADXHB)$aKxX$QI-0($F zm4F`6plzxj_p3kgI^n32ll0u%?M-N#N;bu~}m z+#p8>!m2;eYEa^~+6Xyc>LW$s^OMi)P|#U@|GdS)+?r-GEkMUJzmjbS6CbxztZ;r1 zXCL+Kn@%q{t`|#&y4abBoMa6Z&D{Gn63y$z_bX}k?-#_SV5-}_pvGtAGbof2i!%Uz zK0UWC{9_KAy@cNIo>e^F5n45#tPV1=0+pwQ(O9WGMzD*Vm#7^B4I+S5G`<^+E; zu3B{Hpbcb%-$_c1&Xa>k`FE7c&@&6;*fRsb|8fadnbDJyGR_7vl9^P9uBk*~7P*lVsQhne7NOL_@&y)N)4eMv zhXK~H=`u82@5x7#IX|GPv3y)F?41a|qjZIH`BrzE)7$flixXUV3WWsCalgnwey1S# zK+BeSq&N(m=l9X5PMkMjFV8gGCH`|F@GfyqF~r8J0u}#bSdDv^zQbr zf71uyVYAJ391r%q(9ud#=e2NTacSkcfJrSFIaDN@84X0aP0ck<03r|dHiiPI-r=}f zu;b7dB9b^-`vr-nEY3zpg3S{SKxf}n>}CV7~@(;Eq*9`BCqwK_QHNWDqv zi1nt0(QiokO`L!QJ2d2o4TW*hFd6CLpd%)#;>?o?P5Ph7|U2Zy?kqn#9n};uphlgqV(q^^}s~($W)1>6@cX!u#Se;gr zMeWDOOI)hCdc~T}mj!JBXT6FBjR#wJ&+E#Gosh`PBhGAjyvu{E;89wV?-rm@hZ9H z+u&;qiVp4bdKKzq>f=yD24@}2Mg7Hc)f6Juvs>aKy@4HHjPpd7`a{!STtW!!_-098 zNt8hF9n5@vw)ycTF!L|ZX?ut@LTJCRnyZz>JdeX9$p}>8{G3#`YUaDLx82I!J zY1Nvo9;GKR5)?gs+FD#lp&@}u!(6hXKpuYxXI3gaoE@MhFz{bCRxn%DouSOdwT}<4 zuq7^l*?<90Kg!4iBc?AhZ)1AhaAO=s4PIy#I50#(*v^B$Wbb@kG4WlHAftu}vO?D2IeOJ7LFU zXToK@_SLkYYc6QP!tLvxF4K*v?xnqjj~m`^vV1vEKQ2U`1ijuh&QjIgaY4z^qCszz zo99qr-~~xhHeaeh^`7^b&5ASshYpF%!^`Hs4x5(=_xbK|lfw2pQp*YhLD17#Fk+@T zFa@Yx?>~c{G_6Ibzk?K|Sc-=bJQz5VV`Mz$7KM4rRW#*i&_ZTK%N`6IpBiM}Js3E8 zP^`pafhZ47$RV-z4aRMJw5(0n5`H}_SC1FZ3c}nmso75)djbP+j?Yh}@&OL{PrRAy zn$Ddp-UZ1q%{w%AXH;1<)WsvOIt0yeb)jj_Jt(C0rdg`xCuKt_NlAi&QvD%l=nn)# ze;Te@xDw_0H+n}gVtH~%p~TSsu@EGX<=AzP9yDD_WM&=$l(@)~a*2>e+zYB6M#I^v z4&RD9P|JAL@&VkY(4flw_~E?C+^vZA8t;Z0j`kY=JU>T|jV_fMst&{>8#B5M9_YAJ zF>(KNxa!<2{>Yi@dYvfg(gi(e`_oZ{r%(K?m(1_*Iju9~58Xl0si`38(K=NuPB*p% z3+E$EFX|>jF^j1N#}b?5%r%=1jCr@bT>&dYWy-fxtMX)p-g;SpOGl52ZwX6m>`r_5 z!FRA4Hz0|L%U{<2)!6?{^Wb8<7X&@5tJMoYh}=TPz|?2{s$+sOBY~;k2BOH%ETiv$ z%DnbxfI5z?tDvNe1xxlVC(ZmVcLe2F7G(5LXX%|zt_5nEU#qyT@cpOFq`5tZKf?xA_3-CD`j+ru9d&6~+(&j2QkcFH)|d^+%r?fXJPT)*WO^Te z#j}>QrK~Th5hO74Wj&W<1`?;i%%OGXy&oA38uA^dsN>h0!rBD$pFxXdsZb`QV}>Fr z#I8gJI2Xu~pxO^bis@a6VifzG3QmQDGSM$K@RTnLV@BQf>{I)DG#j+29%9?A^VeeZDJ z%5KS*6RS4-v`cwOiH?q!BcH_(mj_c`}+B3@OjP1ywP46cd zS94z&8N@~SAQFd@j<#3DaB8tOh}x_%ko37DEmHbfWqNhMG|drINMqAG^j?yfh0!}{Q%>*69v2R_j@dL*AsU{V@_OcT+tzn1LcfYEi6`f z_@ReKxA+2B`SfMBRBI94A3M^OZ<~ z^vsX4M+<{o=TiNsFJz_4j%goJW>K%3(@OCTQi~q@>H6V2PWD@W<1Rg_Gx2aBNpV2V z2SuZSh|%v(x0hw@<;#12A8>Ijg%V@6+5CW0bbpdKn z=++!aJgL#ewOF4!a&GaE_&leMp!9$oNU?0GcBYMXV%CBqPBN#&!4prnD5%+lCEJJ= z%Lu}wa$wB!d~3}56hwgcp2l<#zy~Kn1G~(vmJKX?-Wx!>#hdAd%rH~N=>`B880MYs zJm4!$&GmqdV&DrL^{VEYnjX-rtP zm>{+gVD4Q0$(!lzOkiSDZ(E_+jZ){kam&JQ$ZXqCU558%m&a2GocFL|1**bgqc)^EigMl~>&3kd8G%ZA3e9mfX9g-Jc|+3|&<1BEQnk<+ zbCwz*rdLcfQLoF*yQsmym^XMB#GZW?yF6+YQkEqxwl+QixeiqX87dAtr-$SoEF8OC z(?}YwEMAS&I26hZ9#vF1{qCf=;*8HBca9>N8RO|=Ndx|P4xFw8W^2?fzM1x$!;Uug zC_jNc-?kV9wnCXJ2U07G14Yi;@mj278_a3j(acyvM^?{d*;(QD`DN7%=Toj@82TI^ z8wYZ1w5g-yM}X$IH9f9kl6lSe{G(o=gTk<46ToDKI6x4gD+Wu>LL z8u@T_?jDE0Jbbr->J&1Y!qAI1m67h=G_2jXiDoxj?QY;y93>=7^^L$BH+_5ZHA$|M z1)bhGoRZhTRT|c@x$D`kceZ38`Yf2!({7^2q-uiCX-V&|Q;NMn7uq3{9nx8ED_Nat zP{*w<4C0o{Le*BhFI1s5kFdr-jzy|Um2;q%OS8E=Fybab*29KIyCPJLJJK=rqEIKM zyFwM_>Jx96lwk>FOQ>G^@|(bppNpv(hfWrBdabMmm4*WA&s0ReJ1O;_t~bjy9f0S&fMyL{t*FejW>T^C;Shgv ztBEXL)RWwXZmi2d( z%Kfk`r)BWA|#UK3Xki#|CQ-iV{nzvFlUu)HXPd{lvehx-`S`zkP zNzg!%uk=_xHUf%<=F(c8|qj~eu?Xh46MfD-?XJI71$FUrL84We+MaUOP=Vi9EwkW2PwXW zXj@`?0*Niq%XMBWkkY)C;(lL4$PO5-c(z}pIjW&>PXCq$y*pnB4H}r`oc{duBt#2D z`CiW^B120JBssoc|4X|jgrK3ou#aOtwSw3r3D!MWw5b`$^Zq#@lzDCyp}>peI!4+c98d_1?BE0Y~hT3T%J_+m*#(2M`w<`W&7Nl$oy zM{B%;nR)apO0X_iEzqwbkvnr(4^j>d7}N=O8^mIyFf*$%e8C(i$Ae~NyV*R^P(Cv8 z>9CjUAoc@rp05t{I>{FnW8#-CHxv63NOl>**&c!LTgyAQ@LP;hbY|k}hy$LSkg8E~ zAp0aI7c_bJvWrI~Kc|G<=ooOIMm$+XO^q_YL9>E(h0}}8#wt9cV}l=^mIRzQ#v|x>QCgj#TLwLhJ;y{m|xbFb1S~XO_Xb+-mTnw?qWr{<+kud6GB=ZWbC(IBo zG_r_9CZBGMBl2(o6b;Q%o0C26@vKER3dDmYm^tU#D-gTO&uCC!cJIaYkR3NC7f6&44ut{Rd%uo=D?AQH3`^6uo)$QUZ&d$c^vK`QPe4n38 zUvF@H7l;MPOtZ!$4wxM0zTl!Im4`r+FZYYN#Ncd~8JTI*x>a68s}ba|vHrn@c4~7! zd)(r9@qUB`4a_sVVCl;Ac!jBsb6Sc{`30qsAm~vmW}*YMTZ_eccDK{T`*~T@#`~lCXS>ZGd#EG6ivj8yDcuM> zVD|_s4FxlLpKmUE9RiJixxg3eyU_f%Nw3fvq({vUFa%6~gEwp1f5-iZ$QpFJuQ#jZ z0~OyHf$M#f0*>V-Y#Yn@A`p0}>iGk2v=9y~u1c*zOKStsH|MoGu-^P+QGH&n#1Z{0gZo$h7j!!Q6KQM{SBCxnfB*)%Tj#~@bZXoSf4-RQn&9bY6j0%=t`NX(XnC= zXY|n3aQ;g?ZDEwR_*AyWZl8T_7c(L2u~j$&*^H(r{x3ctCJBH*mfTN6m(F}Q09z9K^N`> zE$+Lr;sBr3lH^H*Sx+Td6IU`}ND)&R)8e@)B{1+WH;YFh@vk6}7c)37v>pyRpVzBq zPk)OPrGa;EBeL+b$*7n>ZUyC(NF6rEz8|pfwf4T5=wMRL@ss#lYy|{esvHsqDil`k zOX$2rH19TthwqdI>V)l2N>DhT*C8`fK;_#<6wi0l*8{&C{4#wWV6$wzp#wh9ah>t) z@Pa+A$Eplw%+wg?m{&&+{9^s{{Oa`jqy)uBZL_`GE&jMY?4Hnz{Iq^|adt9?N3E-i ztM|w+IFA5rB6-g7cPB;KgPe1M?#_OP=IXS&+x-2+e~B($I9%RKv0c1tHB3Q- zd4YR3QKh^RmlwEpfbeeD%cm!OJ>&23GkNB5p!rH1@|ov>6V_UzoTdaZMuAtj$JF~? zg4`MKTb@BCuLahQBFU#j&Ooyq;rq(7ca_w+wH}gl%mNu)Z=<#$p=&$ElCwVqSO4!I>j>=qBcac zc@UEcX5td@AT|@s=;gd{KZd!{YEH_1tw*z69^68+H5HppM&~u${isp%%4App{Boey zCrUE8LqlzdTHzRro=S{r;vW0hMImFEEsMKh%bo)&D?6>Fjq`A{L14}&DBAr8u1CT9 zgf)WdLI8$5v)Fh!Cw|{hjjpyd5baPkj2X%w{OTwzW0lPtW+Z!v81~OJaA44(Z0|j_ z(rCQf(u@3eXohQP4&0pTi)Ykf>jN#9+c(1rOO}JAnNC<_Q;#^6ssKbDdbPaFRWr2( zBPZ7Pw=b_~)hl}-II3rEcX~Nr#BX_RaafW@R?!&Kzm~ffELrq26oAI#6D?OOJP!6h z1_vDW)j7dK3}4B|Tz zJ@i1+zM1G$6PeLNAM9H_Nvz@o_Rd>VZ?*US|*r@%RY=V zdb9E6yl_A27n7YSA0>;cz|ljm)nTC4>VQI(B-R2D?bJ74$Q5-BjQypyIPojy?B(+T zTY#qEY(^TB#y;9x>49F(Z&o9OcQcIl*}GMtU~OjuxZrY0%3OM?gE=3Jw>_X^wAe0> z_4%DO)6YET1%JEO?aPL5$HIVLhlsD}c@vF#;QUw6_iG8+UqL@$>G<8|2i7|KFOgUa z{vGBReol{6lMf){Vp|Mm6R2-bw$Nru;l?^=|1n6r-qR=~5i8WVh!JCsi~VDTWp<}FfNwE z!n$34TeJ7=hu|&oXHtne#a`-*q1mv3S$u0FFWFekTY-zj9+g-qy#h`x##nzWUU~9N#0p|l^;H{ zJJdDkKAPkNZ-aHDF?FfL4V4tmrVI%0VlP>9d)U&;i>*^VB1{^DKVLk2pB_WfhM@4T z7C)x;Xj4GsNHkB1+FwEOLDh+=?Cl)hv_4?P;AZ)F0;2tN86WINl5oNwg4~ZI4f)ad zH1=c-JxF7)aaz(qXupT`#}<=aZ+ys5i2b<3Jg@$7>X2GNDzvEl*2kmCqZT9=- z3T*rmO>OcZ12=MU+!CF%0t;$ zTYMfW2hmuUS9{LH9A#r|iW7Iy^3F}ou;zD^9n+3ER+L$EOqV^h>@Lb8JEko|8Dqai z_LlbjOx&bx{f%m$WRl^hopzLs<90?Lca&xA?a#knE%rYUt=z9|K2e1JPo@Y=qngDRCU7jBR~>eACu|l5FiZf4-jX zwlT5zRt7AxZ~5b`5A7OP&+IjS27;(ZU)j0mJ(h{KEKVDjh-0#-?cXuc@Nix+6GCg=TJuVlw*yS)`=9(uA10qam>fLNGH@`z;pC%PGAo35`5BB|Hi%iCXO)S@` z;UVj{O0%b}+O)_pnR7txp@08wy+_0D1yetJ?&Zg@v)U&sifK?_C~!SAk<Hjt5q8$_V?lll1+#jR z7Xv*JG(GCiwVWllGBD<0Q9xz3bpk5jGG{CaBwGyqmIzj+U_q`Id6C7%G~TLBQ8Yr2 zOIsXs7H%Ift#QnV5SksGLhF1O;;t2nIvkEgxpCgpNmAHjiBDvESRK}}Q5$vahBfvF zx_|i*$CW&_0$-uVy?A)u(vT@W*vki5QJ0Y!rWAs#9ZSK*lYC~8e*5W`M8?lwh2iNN zqA@5p+lI#vKUz*)V1-Q!hgbqZepZ=!z{2E#Am%{}xxV$ePO+Ewr!4#8e&1rd_`1Xi zxO68mCH+@;y;Uo|w3_Uw*`vhXZY+t>yNLH%)~{?`O7tklsXWf?En8*SvMJYw4Q^v8 zZ@cgYHTXcC+37Kr9nO;h?poZ6m%>Ek5DXl?YQ_i1F18T}yx6ptqL^A{u|%36M6KF_ z^j4+Nav@C0$!g1Ce_6K$3znNCcu}yx_J$nilm{~>*lMkk0Ymf0C@B>H|JdxX3Shm) zmI*9sIKwiYKbDW!6pC8y8M8R@GE%eWO=5_fnlT|`JXkm(3AN?JNiX$ltZ#!QXKB3? zc(L~Tznib!_o%~~-7AcSjyfc8Y)*7Ux23e#6;abIS^abQ^7{J{2ecyIIni6XDDbVc z9kG*W)h1OibY~q3NiY%7s&T!*ayl+Q>bC;U;|n%E;ajWYa6<0Urt#?ytW?9k9$fZA z+hwnpk5~_Fb>X~lP9IH(zqMjo)LnK&`-rlL=5*2Yn2p(GN3`c+hH{A+y}QwFBrvaHsPJbXT5_ILMTr^fq9U-kqki@vCZW_Au*HZO(SZ9k;hgpjjVH15 z9%>9KaxDT6M7euLM!*Tcm?t@qm@x;6fSvEKXgNA4zg@as%HAjxkHxAKcZ?6r2&4XB z=!w!f9Fv;Wa~F$V^p~3cf0NNX-m6fIsvtlX224MWMPVYRbHpMh@#E(38F zbAn#4eSoCujG9GMb;sqy4UFY#Wvk1!bR^{Dq5{raPk%&K2ny#C`&b_oDqsXS2&t^+Fu+%%6&q?K!t`zCRVnz0(f#gg9ojDtTta4 zxMY-cJJmU%>GQ5nYuZBl+TP&nr&-aQE}tFL>oIIPItgVlB7GGxri`1%oTx}KFqDs^pBt<)f7H%wDG=i1; zZH@*83nENv4V>OwW0{QnHT2lHH!|49`uNC=+Z0q99xjxiqyD%@@3j@5XJ8D=?lIg zST~2hAP(y(!NwsWmg(^)6r30wuASRI?3a)Ghhr;mm2zb5-0jC(+Fyzx8D2dXg5npN z2p0{!&m3C?#2h%|#XyY}ELcnuHCwRErW*EcvHOP7ieUqEsl^rO^pfM69$VF{>ET!U zL1GQ@(G*)lOI$$~;z?-J@Xpc2EzS;}vpqMsi$};~Q#*bkTk52h85LC!T>8 zLxkCI284G`cMuF?!~&ZmGSNnpOp?5(VP47strSjaJZDbyhVK2muH^zX1u3?Rf4-;c zlVi(3izC8pIRk~q-Fq|>KH^9NTCNr>_o6p+Lu^&IrbBa0HnCdb5}4x(B7Bzy3hiq( zkhx#MO!Y|KnDA}#oEV6*cOAiF9Eh^+zhqBsh`1$hAQD|PeV1!~tYZH3q({cg`;KY( z01H^P6O0nGAYxMwlkyt&6ire-cq&3O-20wu9yBAv`ti85#5S-HA|6W30`)&)I;2Mu zkuj6(XI)R1;E2{gHjSOpY#TDKsq9f(G(+K=`tIgHf8cTb+|aXb$?1h%{FRd8?}fd7 z_zdN^li;Xcjx*@x^m#yg}~+%v+cAHPhgdSc-=&Uj4REd zf9y7x6vAFD9O^AwfH4-p+22dDW^1jRLIZ}pdmdp4&3w-bZT(xb`uz9P>sxl`7TcRK zz}X_0Wt13==k5N^gp1zL4SrX%vnjYaeRuKs_IMfwob1Wn0V}RnbVBVXT5zs21E(!F z=H$O(#S=BQ5>ghY4C8A_e$2|64;|xQn-#8-r-IpQn`}I`vY`_Lu=0!!U)oRWpUd55 zO?&9*s6D!!W%gt@j65IFoEeF^*z-=m3srva@tv=hTRsO3?Ooc3gDt4POqG1O*y}FR zi?!L8(;xOB8kqeR)+n!jOgogEqsQGDWhV8f4^%Hrw>S56@X7l>`KBA({xFA2y0TP? ze^F7;_*mad)4mTc=P!SPnSz-^a~+Fslb$iN{9j&W#!mo;@tNjPlG=O3hTzRJ59-K| zg!9M>;r0gLwL>f@1rzT(WW5YD{Rp$23^d-m)yhxlh5Zz6EE>oBhV!OhFBe~@)!pU{ z$JIYBcCXlm&Syzst^~Tjz-kuJ$+Vn)eDpw&%cbgV!}KXmK0q8acSD!0C%kFhUc8%g zZcgO7v}52=4syPDr_u3jNdlceJz!7n75ZqqSKi!xzF4j3E(vlIAB!1b)0f-naWfX) z+~xW($;2RM4QGX~{$hutYbjehNV&8WLJQ6buZyri zki)`f?E1U@{<_EV)73Rz3~aU5MHIc{4NcswwV2mtsan`#l?NTVjbW(s)sCmh@bV4O zfks<3bo#(s>62m=_WGC0r|IGKVKvEN98~qExJUBd3Qr+^;CG20BHbMNK*s{0yO^vU zx^8YipdR1q~@lp2nfPL{yb#w$)ZS?+N-11ZnSX0_>n`^`5r zT2bnI{UB8fJ3d(cbi3T2e!RUnIW6JFLYB%+^7s(bq8GS_k6;HXA1h72kt0-??>3kj z{PgvIutfd@XT^>Ms`rBBOgO=YKPo4vR6|G@XQ5yPc*VD&wC~#&;2@ zP=2d)nzkor^q++>&MJo*w;CSu0XWOQAMx$W$?Fd`R7qe9EWK)0SI-JGp2Kp58XD)e zo}ZnboTbo!fk`OrR$~&6Cc)VWH>8&L=;M`}9`DxGKYVmq=SYK{X=?x&WNB4>o&W5L=~K*#G@RUvLX3QnSKH!-QxV8u1uGv7zOR@_`o7#!$!Qu1Rvnt-q`Kn_ z?TH^U<>|q~;f-U?k)UyK^{O=RVA@l?Vu9tVQ8^S{tO#-hETOQk~8cFu1w&wmZBSsn8qF0tqw{wrZp2)bq zfFp2dnO@Rro3Sw)i*`CTVai5f!lS@}Lvn8k-m4B7Gx07JW_ycx*EP3EC~d^sV)TtZ z0vvAk2$iL)9Bm8^IP`LeCDHM^HKN#U&xhnCs(}NmoD7fI)4=-ysQ~jw2~iioY)My( ztBdzPxu($GSAZH9ZA0oPQ6Gu2;%;;Mio;HxHJjv&q#1Ftp?k@(I6%$U8AB--xf7SBi$HSsiQNa_~D z3s~1D)J+jTtq^6f|F2u(OjG*;B1H_zB4GsLcpf5-#_;K{0;+ z!|$w5M~<5|{jO4-WRIi<&2VW!JUZ;btZJBGMvumz2Jr}dM8|TEssN3NbZR~};eg+B zy@W-VB3eCiS&Sf}RU`7U2XqPqE&=#qaeFx0Fx2Cy{3toDX}C*hO(#Z9Piyd*F9C@DG}vqf zAo8@=G@jRy)E=cITNoVC9HMcORAbc+m$~2L$ztieSz@YI&LbTY^eA|UFxQ~Uaf8e$ zc2ciTGb3TqSLu6O3zi>dg66pGBN5rRXNvsbgr=wn!zHOm7IkZ3T@klST?{In3H4f~;erBApA%12o zdY8(A26{P-pP4D%{=~qTmxc&5`lgeFV}0uMbIBBMbm(r(r9L0V=?Y!Yv4(W~i$d)A zR}pvpM_{tw#t6+B2gbbQc_R-zN6vqrR@=Y)cDr6|_un`6O}gs^F{aPYd+NQ*usSVL zQpb9{Xi2VHS5UGRN*RtilzB7}!oFL5R=`=l*8xeRewB*QUV;vujc2G~@6Edj-Oael zpaaCN!$&_izeqEixNj0&OdMjS)jdw^?4UXB?aO96;4>U_WTcbr%FilGQ8UGmz(jjU z(SI&it556qe_{-cjSeNINq0qFV}lgdCxIP9ks+fYnU^tRKjC_-cbmPfPR4*u28O(Q zM4fp4?CJ1TTFn7Q`)M`^==<5q90;P`ITmKn%sbW`a7`@cD;hPVhbFw(TQh`uSn+q( z#T!T$YUs#`^CCL0K^a7;rEZXG-I=XbQw2=v=z>P;eGMy?dc0`mDz+(QIO@n+xGOAF z!1g-4U{*SM{Fs(K(W>Q77c+W?sdJyNM?-!blUlsAM~=F0IOQ4*33+urtSmWESCV_V z{JO(JCJdWm-JYJcJCF=CQP7@n03>EDlbXY>v)^wXmKa4&8@p+kfuj9NONPkA+pK1h zF8I-2iuCEoKo2^?w+ z|Iu#J>BEF;ATfuj2Ra|;L~BxHz3fRG6*Z0cZN#Wz_-;l<{wfMDW5#~0D>vS+J7|V` zPZ!l>b$g=k=}TTeV?)qvgFjPyv)YU-Xru1AeZWef1HIR@pa|Z9*U9jG5H#tXyx4_7Z$7hTxoa%GT_Ozhza@bNvY%p6T_$4qTk1h&3&wngEYKz?QfI z&2TkoiQK-8B|=KX02*5Em@!qCSOjsvN=2S~mWeq{-dN%>jN}s4SmK&C?q)oVZ~!0C zvApfHa_Jd}#mS-INPII|F)z&|eI!bn6zc7>pr)mPv;6Fh@@IV+ut!{4eOUZfsP}^f z)$az*^0Oz(pY>(Hj$EmO&#Bg?wYKtBcA)!GL}I-IEC0iC_e^&T-BFjDK1hdW(J6we z_m63F@h;FMJYezD%S3@H*WMR?S5tDU#;;m^;nW5 zXT(7Cf?E5j)=hwW5MYfzBSWUd9f&dJ&li?An$-z#djS@E2~gf{fi*Q4COmoHeyN1- zbVu{@`NLr?-PZR#q})HTm>!GFZEWb|eFcoSv~dGa{I^S`J;Xx&X|gTOkq-M^WX%d? zz@KxH6C-)Ep6m&jk;;KoW^c54B%mRl8*H79bs6!K0qzL zBD3{dostQT>XDN}gULhQ(8NUk6)f^jCX+-RUVF#J<(KPlSQe+I=}NLPCv$Cls<73C z7raJodQ^01-;D50eaVLz{g^JMP$>>EO0dL1Ahjx*Uj__$A%5Wv|{Yrv2f2hW-> zbtKGYWoHS&tE$`Ofe<>4$oqJCi^S0o7RBfxPeH@bx=5VXvSAd9`TEyP6vmBy0hSRNO1oPj9VqfCF7OMkG+V3XCOjeV&-zLS) zZQ4NLyPS1RC2!^#;6aOC9bx0@HM#&U0)cn2-oNY)-0tSBt9tEQMT3S8Me<&t6vIdm z^!~M+{`mAnZb%#Q!;HQ8&c4DJzM4Ry?+`f5Czw)OT__WHphcBMb2b z&)QMqn&@&+;`oF?ntPW(C+AZHO>XZJ>|=K*CI@M}jxEGsv*93HiNVG>zviu3u&BR^ zgg%^2=wHzQv29WIk$jRbXujeWdwkK1yPU8~n+^4-#~8N$OKpa>99!}u0UF+E$uvix z3oztmyF_fQ#$rHH7iLnzGqCBDcHbM#6x`4z#_07x>OQrtPpsjg#GqTEP0qiw6vM4_ z_ruG9?-!!+8v4)}l(_gLVyC>_3`o>~BqmS#S)>w3avI8@-NZ&|;l#qg5!M(=5!Hbt z36EHk)$mERVoqbWcZZMRL!`DA*tz6~^buCzX^-E!UeuCII> zJ9g)*q;8MP`^e4~09*Ly_Qgf4&X2x8Ec)@t8c7UadoetZM7{jps(1*RF6% zj4%gj5dnH54?ixK&r9unNU7*$)gzy#_t+h4Y+vrh?_LZJIFc()itnM$;gxw-o&*eeVmI)j z|JXb^wSk;>9&$^Di5U+$sdo6u_|{=>4>lYh_M_M;iJ;X|K(D8E4lB9>wyn#coLp%J`86CC86x)u>D> zJZC;Q$y(GNaH|;f=B0D~A)s;a2z6YoQz<)@sz_kcGNI|QjWx>Z9|MLwNer(N5?)9J zjlZ;2DbjzhP_vl@T0!*SET8?T{8?Y(;0-b)>qX&Ad`=m}8-+9a1Fhog8J@%+%g2}R zm@>dcM*POodql1dWhtic@}0fvL0hUk61}A>uRcXR(2jKgQLa8;5X+pkV2T5vHK9}` zx19*Iu4?<8ERfXQ(okaX0xC^3|ISj3hMS92p?ckbsaZPz_2oOg29|sLrq4)%-GQb) z>Y*fP$}-hqUBYQNBL5XD?S-1PlfJ)L^25t!2ma8w{c(@d$o>&aZ`nz2g!scxD#Tu% z9C{M=;N*cN!1F1<{<3x&QS^qcBxPterXmnJjliSD#(0C+q4v9ZpokQH4^%lvpyFU# zDueJE)5Gk+X6=&h!nj_1o33!Y?DOH7=pB~XSga=fRT&Mi_n5UtvY@?xks|{+5(~JT zRv6oB&1)$0d(9A6QJi%#m~AjeGSEq}9&?nlF$ROBZ?s>P8)4e)&}awvF)fXv(+W?G z?uD_qxN(z#YQ6Qi%5zq&q4-y9SeCIfBP%%%*Wc3HNN1xu5aM$ zGMn<$37tmZU11gy^HSXEe!)7kubBPdXD}8t-|X-j`xvHhVEsw2Rm;pakAAfn31;=e zJUcS3DhH`s;8Sw=edG5ZGq3Fw(WR#F4T{^^V6z!-hHh;~v|bZ5!{waM+?e-lM5-r# zxrAvzu_>^A>LN3J+p-|UZ|XDgcg(=U0z9{QO(QNpMszCpqYi z(rPbji-&>UzFaQq>5k8)%I35^-MzNUf;OFcA^QN_&4M`_ODr*9MbjCy^PG!ift*Wc z!TrPuUDT(Ql}vP(59`c`-qO`VKGu$335+x@e#b@SxO<%M4{8ICV?m176=)Z_JXv#k zDC@LawQI{JC{|L#W<6q-LOs1cVyUesf)AbQL{@-i!g)9%Ovu6DqMB&&B6UB zC5`~j^HUtIQPP1UVZ&SyG9>`fc7vPQhzyzXo(GHZ{bu;nlQv9wJu0u8;}5yGF_e~= z8V9Ru_gJI)g4?b~CX%?>`1Jlt<|5^X<2XrowbsxIErtOjwHljwLxvl;28%;oU_*t z=7y((*g;VBy2aWj(=S9 zyp@7^^?6O+Z!$`{3g*0K@hCzS%!(72hSG~A+{Pg4l|2iv2F6|KOP~6*) z3iWJ*^MR6b#H-fr_rnV=NnGQkNYq*-wF6<*r-7=NK@zU4(1+AVWk_Y-a`$3A=w7*!7*C+TJG|#D?Y;ed8-9vCr_mA12p1RV@qV^+dF6#h6 zp#>u+e+2!TIN)gQXq;RplAZQBlVm2S+EZ?{*`SUaKO!8x3?qhhok$)>7e5;bX*T&B zH@f3V&#v}BG|(u5 zBjRXdhwD(OobYE8N**4u#3N^ga&Y_d=$%Us1S_=r6l?yLTUllz&(VOwdD6$k^9R8|CBc!hbmXT-^BgLSOEg7Lt8Lb}ohvmLL}e^4Hrfg!siZ_R zf|Wn>=~u;(v{<;oJ$(C@-RplHHZKd$iwqYX`z}c=92zj>=25;qvpsd<27IKor$^Vv zaO(I#3vHZ-<$emJ6lE_S*x-hUCn>Zl1(bQaeOo6g6(|?aUR3N?LMYn3sOoP1_}gEH zu@=Emy%=NC3vZMj@Ew|R1!*xbzS+y^;K=F}PAvc85=TSMn4Y)vys5_F{JcxRkjE*B zyqE&0)2H#bW=uoL5@XGbhB`(v5n3MV4Yw={b*uVI6jbjt>-TkmyeDgRmTy-7;F|1=2 zFD@P@tUj@IxY7!nkyN|6E>@)g7QResyDu6ptYM$3WzJCAS&)vE$AsY?9@FwZuQ+RX z>za+=V*QpkJmCK6JXRo@BjHhft{F$Vp^l8=%?>AP?p{4<5~IN-E~@K83=%Ay(6(r~ z9581uAAYnUhr1T&<$wDtduI#;1ILbMlNtc-+2H(uqh+y?VlRM_BC1kXgkZ8XSQtvG z6+WheX#N{FQc9vaRg*Rgo_E%+DTp)c6#%xep61cKV?{G+B8i&%HRXz~G>V`-Cv^*0 zf4?b2$3eM|66 zER`@5XQmB2sDx&xHhejyJvhtfxGF!Smyff#U%Wiyv@M@hhLz`3hz*ck(LS!>=jl^tEln;MrwwCM+;O_<0wOo#zK)HR|W7L z7Gfj-kw<4V#SHN9h-EGtEBpLmiH(QsJ^f1hXgQ)$ATs`)q}W_zLi!nHsL<@N4|_%l zn&FzGft!7`u`YH=1JM>5ia26|rTjC>WQNnaLd;3f9G4mw9ot(NEV`NG=qe#vC|Z<} z5hnA`DEqv=$Iyz#qJb=bYR~91Hdp1R^m)DVRBIq=2iyEpWHe{Ej_k(2iJ4pE=CyrBYHq!D(Z1mi4JH;yt?YC>v zrZ5)q568K{ka{RN6vROD4zuM?ZSrXdx*dD^M6=&6#k5GZRiMD79r0u)lo$>kaJUGX z_VKrCX%Qe{Dh&kSM6~52ZJkR2*S%k?ez1&x2!8RnzT^mBw~Eh-CijZC9AAoKJPV=~yN5zFj>8v$~zxQc;= zM;>>v4N@G#oNS=Y!xA2W4OGl9f6L}c+176b8|9Xwc}W*b);z`ef7|6+x^S~r66+0% zs4Zvhw3^fzb`Nil)Oct#LOQ)|GZ)oAA+|Y2wRB5*cq<-*u45hh=ALT__wZJcj`_NN z_`ch$%S}i@aZE5fds?LP{_^zdoDMvCqT58dK@T@)MW&0nVEQ!Rv>`gFkW&M-5!z{7 zZ?-&q&?#j>uZM_c6tiTgNzZ^|sBy7c&fCG-X_d7G0wIdBEosDSJRPW8Ac~E|e?hF7&F$(|7}&fpi%sjc@JH z`hZzcOrY7MQIB)9=WP}C#X4-ggX(d)S>cukzpV?LD|fNa;l#4*5qNmps2R+B9tdhg z2@M$3$IdK964UoS7&9Qoyr;RFe;m-t)O|LwY#$LOeJucphBYiW;^6b2NcQdj=U;w% z|Ga&9^@TMj14t~AV2!(lCc40lH-=$V)DTSkYdkHQ8^U5pB?n~8yziJ+rojC21}d|%x3oD2X0$_I6oya1^>Mpw zE^cFt;&xfozT#!wCgbM|k19H^VKHTmoIZJ)HCHQ|;^1vnrqSXkXs==EpwS)4KZzyc z$Fy=xt~E+e?7+piA|B(qo_5@OL{Ee$>R&~Zh7|aVXMO!*nba4h$llVn^o_K08tp~o z4R+CAeF+_pao+Fce0qM_P>wu2WXU@mdGYP_*0DN+ank#}3?m}LkBM7s+-=V_V}<6p z;#^@j|7Zf^ZiD7OPE+L%NC$}B%X7RL()v3+Nr6rd+kp^bY8LJz!JgOUzvX0g`>S^U zeZJYgo&cmjhP}hNC&2iRVU&-+_>WYVwT2oU}9wDz$B+{(+8re>I0vBv&EUJ^xqWSlBJm3WN@pcOrmwt(oO zKBVr3ZBe4O=>B8~&hu|Ego2@kp_<8>cDPLe(S*=|fm9?;OI1N>zhz}IHn2&%N3l6B z(+yNUw~cHpUn&6$4H)+)iDGq$fjm5)0@()1-GqdU@sqm>r-;CQWeL@OCi9xm5wa_q zzE0SXc*epA%P~3IZAL7!o#VM7e%vo#zM~29ZHLW0?t4ayt)LO?CR8;Jt9Q$vCs*>P zVJ}M>qPg4LFCQl~sZdU_?XqIR{y1TAksKS?mL{U5gh6haU_L#0Oa3cX?%%LtIrh;8 zRHVgoQo|b824k47zR*J2j35tT(fRc0?0p;JPXU!bVdIT%{?J{FpL$5SXx;D%nbQ+$ z-006DyLXwT&RRk&;Y!VQD0udY-A+d0K$fEhz=%2yMKn$WhCK0r3@b1C(Qfw;Ya!^i z8Yq@R&^cE)ECeqkd89v!OmtZmrcX=TihNvp!~$N1p>EqnZBpIz zOtA)?jHY-l9!DM)G-+_xdHr~O__|u|zfU{m@_k+0eN$iFN|J>Y9mH(_1Ri%b{Ct)8#2 ztnp_04-I*q@J@(?MCNY71XZRcC~z_IoQNT;EZRDOr9-)L=OuL=+BCL&r7}*<1F!uy zDQ~5<#*tPJ794Sq>r$U6spYw$++1oL4i!7nL`sxm<>K*f1?(o_^pIjg8mq<9@?YdgI@9F+z2zLC$v(m__@22gG&J@>hutL`j^F+d_ zL>R&&mPXfDDMtF*Sed8cPOgW=>{t|H7!fqGu_)+XJg)pG9pCB8sh*L&sf`}r5&hO5 z6ppVbYRxm%9!X-{n;X=zv}9zrS%op@YUWK^uqh2^>utxoe8s0D@?a$lY3t5=(H`Jq zExhXgIZU{fq0@6o)Rb!2jz##qrL|4yyiTeIH^Yug z46E!8+ZSs2O4Of+qNaP`%LGra&x!4UUjADm*!*WxqG5hMN~}l3*3AMN6W{;&fZC1r zc$Hw_e85p-9~Rg~k-0srIumsxxI=j3KTSrmZfze>kCF&-@?3%>hJ`=k^P;rKL!pB@XzY)sM!7Iv0aRyz1Wyo@+gYMoY# z@Eiy6N4RNWHe~sno8ULo05m>rWkxyhE)v)n*4w?FV

    HR8UCj+ngiTu+jhCt?|wx!>Uis<+y;z!qg=3POm)ODYtJa`t#+X5umD4z4^DR)QS^o`RYEB?*Y%nx z5ju^+3wM2(?FdDGFlmdPsk~}@7({sADb9I$wDK=Lq=H5&@XD+YlT5ztH1av=$U^&s zk4;to2yQyMhCC_xTl<2} zB|fOD)mYxFTy8c$4qGGf>TmLM1UH@Q2buAw75A8n1-&4RS=#Dg7Q~rSV8V0LB4kKo zeqR594RjQ%{wfk`j+w0W+JWeY&($*^R&ch`X0_6H1%YW=pB-pI>h$D@=ndWbd0ne{ zZZSst@Lgv9;%~Lwq%akJn{;%~HO8|Bw_gX16;7B~@Wr4=8<8V0|LGUZebR*oO| z%om7b)qyMYvbVJLk@MrI+Wphl4tIQp4XQE4GD0Ips3zUff$*3`Ra@FsU7c(y1Fzf2F>z&dbTnM1s&D-mIZynj1lexAm@X+sx-m^-Y zBfM&beu%3CaF#FWFKbIeiP5t^sKS*>n9Jz^Z83B*j$(jTjd$MRpu0bi4pk}w*K>te zaVr5so;VYDF|G6W1ClfI(iYSEHO{)_@gFF7Ajp4~TLRhdu+K(j{ZShn(cv`oIw2)N zXd72+M2?SQGHH#Brj(Dl7#V zFmdF4CK8Z&HvB2oF`Ep~4A(o~oXJ@$3g6V{?4HvP&o@&BT7^5jtxxl8C`+E=<<}Ek z1i%E_v$#m(${PD_}falS`P4;E>P!fMYP*;2lkz<<1E?oNg9_D=FM8 zU151Grv7Ox9b@blI9ma0w8i&1QPXXUo#dIc4&D%NT6UhF++6|3G7xzEy#mbc;W?c! zE8S}bVb%9jie1gIj@@595Y&3%QGKqzbq>i|XncsFoi!LtOY`Ub?`Q_nfGr=Ne@8bn zN+;T^9HVux#;VF2s^F7lp)N+WYIMi{yILozy1ZVk z-VEUSLve2--T)AlBVM%zhyT0kKv?yC_nh_6G^>i>xSo7Fhnn##3PM^yA)Y3v#p455 z)}=0pGu!#-uvgDVkC1rT7|}D?cErsY+_xx~|B@>2xyi7{%ffbOG&e~^Az+1V)p6M7 zG+>02o0}7)8StjXCj$Gm5a1UiGi@=Q@ht2tK19-%+t^5(4813`Xi(iiL+NCAa1L*S zmLWanRqX_ZW!VvHs3bmnHaFb9 z7Q`>Tv(=*|^(>m#UCQOmDQeYK(MT6H8n<1A$?-8X$Bi#cWB2b0iKv;GlfuZrGU3&* zV$OzJ^^jmn>i|wVJ6@|sG)X7@2vFk=SKlFmA?{l1?~657xIVUNZhWY;v-^2Y=GyI` zTZ*U!s+^kGl#$BdVB^R^u9u6i(~7$gDLi6vCnB&yFQPvb7P0nVvFeA&2GbF2e0rvB z%MPU|17n^PjKqxPEp3zC+qZInHtPpE=J1)K*Iz1Gep@eAvg`QJ(8-J3?$VpTk$$!ZT<#X_BV5dESyJ`2lTw{{d2QLPY z#M%VfxIgKD!qc2;w3Krau-!O0q;|ON_?O>!n~f2|o}0VXUJfQ`KU8nE=RG8V!(I}E zu!97nW{2q{{%$%{$C$MJRw)YS_i2R_RQuJIcSmHZjqm;*t7Y2|#fgmuI}(^E=RD6s zn}L}a0pq=%KK$o^Q)Iivb9cL0(TuLHqU#jX>N-fV(t|elV9W+%Np@t%9Nyxp?`T_Z z0?k>OYWMF4c22c|eKIK5N&ZV#@Fu)rr@brf6a3%HY4vzgf)d;8$97g=dMi6NLC$KR zj;7X~4#1TZFkS3&4QCa6Ugz+T#ikO^)4AUL!iwF`zr?b*hZgr#*&{_qgjIjMe%DQm z<<$y*R9%UKBMxVhc}J{49uYiP(3`Cf2pS*nVX>7o?-sA0p6;<P1WczDFRFD(0};|c;hrjIJJ(~}MmYX!cqykHOYZfkvT8w$D|)~w=e z0W3Y>tM0%Hp~(3EN&B+pwvt?1{ZdzTbe#JrOLmn`TeeD)%O~!Of+i`MZHi=bu&sVM zzkU~hL?)1l+xm4MU3q@qQG4wG)INlH>k5TEbw(34}6JoYZ3w9x75a-MdOndDJpsfU#> z(Nup+s333xfKS^Ol&5r%h!$yd*qlCz!&iLZTdEB54=PZTorQ{7%(M(A=T0#s`;OK{ z7ZVm=$3+?-8NF-Yo?{d+~*_lqB1b%pSPX{I!1CG$#qp*vPJeoV_ z95ulJ^VwsxZJ}M=XiIVoy?l4sMH>wMMLdQZaHA&FpHb;6b49R4EXYQ>I0v4h* zKL$qdKC_kI(G~l%_2ub#=R_^Nk-9ixJNWbU@;JjG&zY60IE^G9Fj*|qDWEqruCn40 zyV1d;FB45O8Z%Tm{LomicER(J z1eb3^>_~^rBlu{>b7yg)k2B&Q+*1bQ?di{Cyc3*Ba#vt${8g-&ic6&*~{ zmM(s}-*QXN7k2AqP?o0X4Sm5l!^T7Yo2c@-w0d0yj>1cQOBM>WVsF8$!vChkRo{_#?e#cGuJ&(IwqXBg&@VKE`3AdcY zwxbm$K3s!jpaBZH1k9XuxT5>|EG-=Y4oJzekxz$!8*J`H3|6-EdizRiH7Ablc5`0W zyq+Jzl{i{?QwXFVD#$D<`wV?sGOqKa9lgB?-_EN8e-t{PLVEvavEaZzUr9qevhq0{lbh zr`eB(6!*_(F3|814+F@tQW`6DfuiBZ{DAjvSUmmoJX}dllEllmQzyb|j`@K7?IdAT zne@}~aPBReCr_B!z0{Nx7{~#I*1wtWIeQ$ zha&dbYuK)IBYl*?lxqFcP~6Nm*ug>P&zP>cYh{d*1WIJDzw`6Yky* zVgb7$wyzx<(tmuq%0i*m8WZNsVL4yWGveLa#(++aT;uk9x>8_ue36~Z4MAc6kQ_BW zpU=0LOjGH`NA!Rgg*2wYB_)FhlA@Q~Qq-7q_O!65!zSjzlC_D{1KY}gowOw@&~ z0AsqeMm4by|g-Iwt z6ip1#c30()m01V<_8LGb@*ME|`|WPK-afs2pgRgxr6cz7MX?ni|AMjZ@%hKE#OhWD z26Xa)zJBpHFnMRS3W|q9e7nJ=%ExEAU#1~gobGR-#YX{JN(ag9LJJpilA*cf(t1%7 zERN~{?TSmoyE7>;HPuR3F9mHW9i&%p1e76iXmRumH_YL$3MEI2z6W9 zjDRF|3d1BtNX++-N0oGzxclxR$VyNZ{a!xF<_I#egEMQ?b}U^^oP{p$Z-bYuB}-o|az=wIPuwa^yCGGZz1aDATx|99x%h|$m78HXPqFOc+mxIryX5eEfLti z$j0r@XMK*uBwd+CqPU*~Z$QfxYB?OC@CLL)>70rlVk5zHmo{B*lkWi;;)#tuLLQTg zHLGouVY+>fK$-;n@&>+7eMYVhFvU7b@!fJykIkMR?)TWcfjJ4)jh5KO^Qny*ul~^n zuzu)8{AJQtXY?BC*QII=1K$1=K{PQX0xfa@#>U(+%g7sckKJwm#0+#c*!gL8ar<_DnD z0=zk`*0|#QfQxBgocsNctXPQ zB>f6q{4UMG<+pGzc@+_h{i{#7H2bUyDrTPs7S^xJWkeMT*{WpGEk%&;-u@e#xv51z zoY~)rOJ38E50eXyz`L5@aGT?7wK-Uzp%~=bpJ;JlkC5qi;-b;LnJxA-TREdusnDiXi%kqT(? zPS2aenG3Xhe1@@z{8a`-T9G_oe8(#i7;JwdSVd87RHbG(M`+hT$Z$+oDa7F8M#|Ig zv0B{Rfu*2g(4eWA-|0++29$sQ71yZo zE)W;-kSsFq>#EQY5^jef{X5*i%k|>D3kl--{N_q3J{6?1Dp)X7=H+r-#+YEiAUV@A z`t^)5jgbwp;Hj(4R&yZn=|ykOi90HNXs3NxP_)ouigOk87;P#Qq~U^+{QkJ1tz`0Q zA(#F{D7aDuWLYTJ2)inji74E>9%Kok>t=^GDCdq3B?LEtyO(QB5a@w4w1+7m{M-9? z^wr=@{|fbPPB33DBAP{$a(onHN%>v4^r@HL4W+xH(AfyAAv%0f2VA9(`y_n!!0yol zE5tQaOMIlA%ersNQO$T!ja4l%5uclY@~H^r-t2Dff{J-h`{C*8W~$(yK3qUkLsBf> zBG}IBm}eyH&N+w_uJ*;*(d#>bc!Y4Tl9(E7n7gLOYb>ANPh|E^M1yi`yKY3_n(futBlBZK?QX)%z-G?FYKx6&XPC+Xp(8%~xi zdQmQZ$5(F*F)^}%-3~`2uhIu%QH%lif>!*B$k`}B^%NQFB#ohRCV+rQ{WBK_NHHarsXNELNPKU!vbg+sO`tDkJ=KD-wg( z+G?f#KP=+ii!>RFl2fDCnA9)p=s|>6QrXmlVXk-$jL71)8!X=7wv_b?tu?kp!AC7m zF>cPENAZc*=7!dqpC3CdkBls6rpY5=99wzeUL#G41BUp2{Z1r*{q2VLtnid1BzpY$ z#jh>i5i9)V{aqm7sFlRsJLDanrQxlPXX?|rCpR)Y)WW_IgI7`yOUI&8=iEveW+NX& z=@9>E55w*&y$+Q;D<0Ui zs7mA0(|-Ac4A;d$O~#5|Nu3s}ExyCzRU4aTjyfQbeaRkM$;|Z{O6$+hwd8cG>0U}2 zw<>au*vDr_)J-dwnO^?wX1;&f;X4p#FtyYhS|mJhlb2;w;WV_j@b3EN?Qef?%TG=B zQr9;@tLTU|J~UF0avQI`taKvP#wTMv6YgnKBK0qEtxJ3dt_JY@y-wB}@B7ja6y7awOx%t^(Kk(-pJk z9R%7-eK;7cT}Y$rC(pAm@3Yc{=<#$K;90+t0q>Ml&i;O)V4o2vKR0XPKd8`9ve~kB^TBtaoU}-o@;mj`X=KwWmc`=#>-> zo~@U(D_8cXm&CqnIF;lPHy~oe$RAkE#~A_{;2H6l?RC&jOZtv(ioGGVSlZi}Q$@FF zR{gt@c@LC73Cq?K41~4_LMApMBYerLu1~r)S%pQsdOp z6pi^hFVbK$;`KWdF#NQILiif6e7-?V704G$gbadmhl*?3ugZJm*;>RFo)5dj_ak=u_G|`Y7;;II{&^$fRd;P8=C@z2Hi%K*P%!2vl*#3r)e&1CWOoU!zooj;V>Pm&R3R4pX1-jz#J`wTB#))Y z(cvHVhLD+%adaksvy>qj*Gf+?INE$b8*lEnH@Gm74y@**ONgv&PU!H97W&d98;EGh zm^$9e|M~Nr{Ns;c0jno_zwJmSMkPn4-rfA|ALsl1j7Lji&yy<|)R0!f5(|F!!uiD! z(chWNU-^EyA?H4`Sw)zjRnB{SUWW@la()B;TVXs2@ zkW;1@mkp``YDv%4G`##DPxn%MbD?&F5=%q!*wm#6iUXei9!q2M z7gLWuZc?qNqB08fdeIlHOr6O14N-t+eS%b`RlYBCaNRFDq(u!5G6?0tPv|eJ}YiL@pav^%Pw%;(k z?fd03wtbnePMJ{Q_Bb4~TvSPq*|MQF5}O0<`p>mpbD8JZj^ib{kt~H*#VYcU43!>C z2(ST*M!CP^^q(mMUQY;pt!|TBtr@P|0}ijwxJe7fE3r6pSGPO`W#s z`km3$!KgO8-)u%jv^HnM1~o9BW~l+b(K0yqWj%uk)sz<)@G^3{zJPKu0#H4)XqIOX z=Lg(%`vt-gbwGl*<%LqrF_LLFK^e}c0~PP@u+5G&3?hssEa+XMJkfju-sX@&$X6NC zx5v#F4D%#|MH$3mG>UmzY_M$$)c4s|$7#32iBWtIrPpH8sv`-v^hioR{n1Fr$|%)J zlov7tTfzp#w`uDl8@`u_-iB%TvUyNQ(#b_27&B-?;GbzQw>D`mSye zgPMLB)npJ|O<74EEi`FVL#FEbB}%GFneK}V(!zF|ktWBtKCy{hJt;bt(m_7l{`MwW zF=(b1iSJw7Gmi~-bguw|9UjV)nCVE}shKmSLvfR;snyUN+oWjR?DAmOA3jtDJ=fVRt*iB;JU zFal6}4kjICM~7$D@>*!@7Zlaq@`^OyhuMC{N*86;43#5a=t%%gWu#L>>R~zYYqXhl z$k#D9!p4hPy685<%@%cx-WfH+*%3t6^!0RH;C@AlpZ?4|+Ju;AoV@)og))Mkjyml~ zIQ>%2J$*a}UH&>Ml{qGtlFLC(HvN?)Fw9Dw)V==9Jk5Smn1451G$S(_S!Re3V%(dT zi!{phaHVIdGX5vkCKMpD2L)F7P%+e+)662uQ7d#~Le%N^1WXZLIT(DjG>HU6dZH69IbTKJ}MAX4mw*GK|lY#Xc43%!xMccaYnV@7qo5GQCu z(r3D79N)(2!57*&Nhecu>7vKiG>f!+x_#e~Cr%~F+t6-#rHDKz9ZpfvhYahI*i`%9 zDrFWktj)!$(jxI{_GLUgW8)qkpx8g{w`eVgwr?2RNRG)4l{9g_-ePoV_C$tEA1{G? zoX^)M+7Zlm8OLg3jMs(}efXY7H&5fb@6U7=+pPG7OfP@O>BCEvv~948PRxxo@Eh@^ z$gozSMQE&WJle%qv7^)h3G=-**ATXqWDP&kk~{lUZCErBJwCm>CYhDv<*6!hb#QcA z+{mjM5FKR4ZOmamKcEp9EU*k2DXZsyUbRh%BWfHZK|Y`V`L-4C)X?Ln=OeDL7;;z; z9e?jO&%5iVJ>Q^l<^tlMl8)=l#ZSk>AO-8|c<5PFX)wZIz~fPQjF`wDR|_5(DlCVc zHabzB5%k+}X%inVj#7XI9R?-uehcLa%3+71Xwelt#hRgnxiOd#t4&7*>u4C zfu_xJ_41#8I~(GK9y~9W-$x2Wf^@vmk0-om5!(TA!xT0S$Srw8ywIB+ojU6F)w|ve zy?knEvpk|Kp}F74)(sxC7tuq5k}WXJi7J z*ljs@rlmo5b^jXZ2Cbv}*FZOD9rWJ=-Jtc*f$qO|bqA`unghjFZ`$aVvp*$wKrWs) zOtBG=`!W)RTExbp=EX)_T|66jqQUmgU zOme)Iv7Yn!axU@4uZCD`)U4!JKpv10zZx0q7bPEkYo~jbCF-71v|G9;_LPEjt&J$H zNFA)Gby({w75TE*0p)wCX3G<&r5*Kx$*iqz2@C?>tZtayhJ<=_~R0iBWA^$wSe zJ+C&pNsqn*wj}XU86~kU*2~$R=Dhfno1{W!Po7FcAj#w*8Cv9Q?2%L+`?qYgn6d=g z2r8#%G4VsAh1ZjoC32kP!?`oQg0OY1fp}e)`EJ0Hxb_mIoED?NS}*PVb$K9Pwu1D3 zdpP2N(dzK^a{G*H0dHrAyL6;BC1)4lZ6dwWqfa;z^priX$c@a+_Hu9-dq9Cu}z;V6T7E_t`g!wS>QzB zb);P(%7%k-lzE6TRw?o=Gg>Kn{El6(#njM_o~C_pIDV#^(y*t<0{R}whq*Qx;cQ~{ zW#b&w;?a@gI}+vcW{fKMctxs}IeIOmqYI^IFkdSEBrQ>LdOiJoA)HP2rl8b-zDIG| zLY^5NIo{?;dz~;(Z?n{K$24dzHc`l06fverI*b8#5@1Y^#=Y;6B08GVjp1Lno8_17 zmgfzvR}pAXA6?c<`{3(BoQk+`D-DNU$AnA0sxGURq@D$Ba9JZW8O_~X#q7xAWpvzw zT>7*tl~sn9yS{o847xnEk$6kD^vUXOP9BI@ax7DIPAU`jP0B=RY>W^swgAq%)t>Gi zPuXVF2%{_aVM%AHS}~@_QYe>=1koC_3>)f^0DSX|j$BzUu+~J>@Vqp=r4fvbD{?Di z6l!9Sj3Ku&uHz+i(B~3aTNbNWX{}cDA|`!FUML=^n*~Njr6Vw}6W@*&m>})1u{9GX zjdQBk^jeCpcd0XZD2JOY)P!jmktL*D)JckL#q7wt&L|58J(1&?p0uV%c2Fbwepbwm zeBdVpyM88K<7c6JJGtwt8nv3HsAOS%%< zr6HAWrL}0auZ|H~X&DViaMz~qJsMht#_a_u zw3tUJC6;PNEBD)JwP<8AvBKw(Z7Dcnr)KozN{?8{)qP^c))qG+_iQ2V^&qwquMq>9 z%JibuQO_@0gqFn)r)L+rJraW&F`%jAL#IUL49%504aKV{ICjr^26eL0^GCHH+q&72 zRTa<_eVxRy+88pbt4tDl302P$dN|FPT$kG{QAp*LbW-y0RA~wvHI#rS^o6z-QF16_ z#!1;xv1B-*Br?dSx`-)xNJct3NjN8EXS9}`p3ACZrsU8T?g-y64_|8;C3j>Fbgg$Q zBjiv5!z_bjT&SZn=B=c1vQ5&1vuyKksabU47DYGPQ>n->CbT$SF_QhD23)AEL}_rc?z)A^ z48+1YL1Cw{6b_O}A%`f%fDm=B&9sy3fZg!>5(l=RfZhAr z^2hn*f!<2M^)LK^RfanuHF@|4-!#PKVkS=?UbiI0@-6^Y!t0a;*UTFagW2UWre@nyM10YuB^+S8U+HcVJw5apbEM z{s_rN<|8JKYq}=`FEPl{DTy>xBY~57-*HtF-BpBTDy~QATRA+0>;T_r;l!yut%)^W z<1U66ok<3(G_++$URoiyYGNNxZFwM3TJk?+%u^NOfT%XOcf%g5N+Kky3~kiMg;;b` z7~HWTkH8t`%%|U;D@#jB+^#46aXs6AOREg>7AbD-zYeLY@fy1xX}20)2LrGKEFTF? z4NU@QC?mGtQR>sm#vj)vqzL-vt@Wn-RxULi)MQlY7?QKhY5%lTl{Y1zd^{+-#KwW* zRz-+$Z*YO^7VnJG0n|Udgkcp~IR$k=)skPmq2?zq3>m6Q(0WgC$%YEzSXYenV}326b9~>A=v$@a`hLAwH&x$2irG!`v?dO^wq5Ps&A9 zCs7+oA~jiLSUp{xL1hSUx#HcR97-v-e-<}oWOR02g+tWUMjLmJ&h$!3og>@Df};*d zWUbjZE19_i8t6FO#nTqT zl2k?5S80z^I@ZqE>Du`O;%u_}2L4(blOrKECd7lX`Q3Wtkq$fnLI9a@K3cVsOEPGD3zpB+cWC4c@{k z6{pY4@|=!upT8^@xFJ?cNlWy2jVI%LEHml+blmcd*^jttoYTI?^18K}Q*^Mm1v}hg zMPoRx72E&$YvBHwy-2}~xmhm1sX_+iZyxOV5IgLp4zv05@RO>7==4vJzQni|abMuE zYabGyE$y>I=zh11kdq%(u+nn5L|U)$=yZl=l_ec; zWQY1{leV5NC>sJCohB#4g@wE_hQ)#80p)S2Ly6TsfSO zRwvKnZT>hy(P+rxrz2E2mjDdRlo)AL2KmDpN~BG&(pI9IF-=_WPESu5g;E8OMGPfW zx=I#EsbGzk*u|U36nx`H$_uYtBH3!LB9>&0PIO#gDWa$~STB|?SMrYCDtLWR?|NKE>+NN5;R?y&Vd-3XKQd2*!{Jrfq> zGFE~WhSvr&#N2+BX`eQ`*mlk6^l1MY+1PxT5u($hVL9)=w=WxdBxQGebD|4c(xI=j z0hYuu0XRP)nm+NwR4*Y$?zfOqGs&>fJerrzEHo1wjtVbdSDJMiibsCO5d(R`O3kxi zA~|fDwevag;%!BB5;P5WQ7Z(&{c&;eK-&BY9s1bB8rNV(#{Qc$)2>x@rt$T-VR%zCWah_&qHP zStAG>QBF_t34=1tmO$LGhjjewuzfuKK%;{Jr8KEcrjxD)Hl%a2*`Bb3xEOP=#SLlQ z?QmeXEj#2Lvxa3iw8Nn%&CCILl>O!Q5ob?NI1GC{;agp(sf7*cTt3dQ|93sxJe_F! zRIITA4eC40_p2SRd3JOaz@Q%5VcAP+94{8`sD^%mi;l50$INiu$!}o|c)$R3|4~s+ zyisXfpO4nDm(`*rV+OQ+#p6(;^{WOA=rg5oAIH!khBVO|FX*rEY*$B-0SxGw)PmHY zA$@vVo7Rm^PNucq<)YxmwVw7-YmG)EX(N75%j&?{KGSw9NVNtsq6;5`@ow0E@Ij+3 ztVvgajOg0q=7SXuYV=iQL|@Z)xD#s-PEQhpP-%wScx2X?>;rX|2U(2itFfqIjh!Y) z{26S20BIZZ(4`hO;M1aN&SQ-gXi#5i(mT2eU{FuD&8L(YYx6UvpWqYPd}!h76%^mh z8i+&Pgof!+g9h}uRy0)R5JQ?wGa4&0fB`*q6B_EOK|}iLb~aA=rkU-wkH{v|ipK7V z&4E@HCl_(!%5vYGYt(>F3^Pne(v3e2BG9y&Z#NHfIy>tV$I!b{!CXnigwc}={bfPr z^d!-X!CiV6J8;%82jrXXkqtw(lVi+AzW41KX3uVcaN8bD&MG?=H=s3+4a^P1X8Yw| zVbLQG46kFA5SmS{z^S-0JMz2z_UB92zT*yRP&17WqC(k&I*{w+bz7E1hqA|XgcD0r zoYg2I(3I0dKN;NraU2g?mZRb@s=p|7++WasQX}A@2G@<_q zI92b|WD(pXtzTzoKhkAvO~X-D8i#$g_Suo#dX0@FG1byU^$ZJix<1h5vEy_lwXg@G z%IeCZ%yiZ?b6-~YLt2_r=F>ZCYjHzbwI2T1&y|Jvv~$8DqaZ?6w>Ftf=dbR^KZhl4~1a$_%hk)KD=*ZMsJ5U#m6Lt1B~g>oQNVWiWJdk+U_vq z!bEbm!1kpBdM&;s%_d<7F{Fuf%B{x6BcrGAyISfo8@4bdPZOsrsZk9~E2}HJo1J{o zRHMS^%I%l*puk81wxAJxC7FV_h_(V5(1lH)uD)rcP#1~Ql|+>x{oJQwVKXWeHN@-s zayrb8N1S4K#&nyC7;bIE)f#l^Lsm9~8PSFt{pO_;ZWIZ7SO@CvadlX_HMv@m#SCe~ zlhJ5_4)lR=hbsm;F|1KT8t43w^=x51(4yeIjF97+AK`JiIvN9UC&t+ahxzI0V*{-D>2 z;$xMaQspp%+R_2nj-JFF)ZnM4Rg|L{X#{z|lF9tE$IX=UUK1nzhXaoLHClSu!Gd~) z#s`dA>?hPHT3NAzU!nh?`ztzm<2}#lAq)5Gz` zrq42eSuDSto-n!XBwzrXrk5wqQ}kxwh~8YByKOFfwV-i*w6*cDTh9A&hrSFN(YHWd z&T)zJ3l2Keh{h*8_c&WW;ewayOT2G2ptV7cXf6#}*U8taGGbIy+X&(5n{FaTjTZ1DR*rZc7Aru{yT0NA8PRpxtgtvT zFz7~_8_bZl+&P(jExsgL#IPpY8A$ig%bgV}Xz5`TJFFdvN6+kbk`KK|;*V+BVmBl1 zCXBO})Fi-=o_}p|6g$?ytTEX%*Belwh>4nbsb*ZAz=m{U*!~?m-nmci=yQ-ET~t7^ zSdP~K%?>zUxEy3i*Fc^zYe-h#iQ~27k+DULous|9)Y?hKY^WzT#U>JSVtg!eqGnkf zA8{Xg6Yf=7butpyAx)dCT;Wq}=%iv|!Zh$HHV(8ib^UdQyWP4)TO;AIuhvdO+dUo* z9mxl0CCdz3Lq#53zuIH2ric+u+u1@Bvg_#Df`;|clIYM9ovdJvuhI!FHD}LDw-pzK z%d9X)$YCG(^Ta?OoIXe}Vn~zB;nSFu4_&2i5Z=KC_8Of--9xQ-ypO=j?P7*yYh00l zX+|f%E6}jFlSYWpIDLc&@EY$;(vS*=Yx+J~(1?!)I-H)?@}$&E1$3mvLX>LYpvN>G z>P4J+!_wQ{NR>uNgQMNkre3LzoB0+uVZC-ndb1#7rIDCyDRm>0 zY-H?2?Y+T8FGF$?_XMZeMbkA>m`lo8>}2hOV-u%)!sw*nT`$_HJ3aI?-<^frPmg6s zEHz}Y_cbE6)IMf;}Ge3o>a;qHC%7mZUy+z9S`eP~Iv|&*JiVb;J^5x~FfBe0}n(97#`%o1pb& zlFp3kX~de6?oKV$gGRSeu^9jl=yxODAXA~$Lk4u!BlDDsP!W&F3*T*^gT0E=vx%jn z=4)IM&8(iR)K}aPuzq>K!RaVP8^{!0%e`C2Ozv1!gqWgUwrWDtXzg8ev^CW9E%w3{6ccxtnBj+LIwAJ!swk^Xa8K3LXz3Sv+b_Hpf9 z>rv^+{Js{d@MZ30<%QFigxqjmJHVhGlapF)ttU`q5QCabPIfdI#Gs~}mmNKsKdeP^ z5~~5Z38-SWD~Lf&IWIf@WWLwJ9noryeh?R&s;DD2cpL=BSY?j=Sne7K2vwX$G7wRc z$FA_SdG>|_H9zfeM{|_ViO^NbbcwGK970XexL8m#j}F7GX5|sJGwz@hb?={Equ!yX zS*R8Yd!8rQYjnQCanWuBrrM#&!ANE<7Sd~1J%2BvX>?jD+bD3Fud3HXQtQ%~1tT)e zmdv0>(-7}lG3!cBv-}s$cEnz7Q{!1i;k}eK7K_kdxA)6v%0>o%nOORb zEN|{zbHAax+g@Wj5}y|9DJ?!q?DQ5tgI`g%|4NHr?6`hztQkqBoXl%d%H-K=DxjF{ z2*1Yucoh&+^=ehG!ldqSJlVK&o#v^VLi7v=YY{zYStA;)69ziXSM7e zYC$0Kx;S)-*I3@F-H!M)A9w`_duDgr^~&sM>}6>MpJ>CceROq4Dz_psQB?<$kKxfVVlc8$>Fq4A*PG|R7vn#I0a`)eX)3|X;P+tf+yaF2mhGzPQG ztF1-T$iaHy4M*bBe2~W6#9=hPt;AonWV2^1u8mPEJk7pV=hwtFlKIQltjlBZ4Gddx z?}P4w&6`c|VZyGi_xK}PkWlUzVxvX@BYM!qkZ3MgjUEMz=)rq`!+I1jqK9@sJ~ zU-#S1>Obg9=sv)aBpVX)_R&VKX@q)Q! zy&}gJM5Yt~FI2CWST1fDd0x_1lGWikm!B@6Yn>MMs$DxqiQ)D&;JHcMKS7_-j@xha z{!H31ZS~Zct~RPT_0=Utk!5#vU=zjGe=;^23bQLuyCK3X5k^-oPv@f~D9o%9{FFSkEujnYet~8x9HT&m`Y~u7J<+yE*M^mL%hZ@n-WcEM? zS}eDxf%X`$S9IP#P+*v`Jl?oD;GU15NhzFI5+hj@`_*iN=C!fxn6dnETODfF=vP)ed(7fzK;+^&Yj z_T-xD5`)AUk?dO+`7!$#JN@k+k@LdnT4#3OxMdINz=NAXv4Awc#A)w~HF?79LEFFn zG9ljo_PDx@?-f%sJPH1&Y=BVE`nqe`6>3}fa~@7s6$K`n8mAo-zMA^c(clqG>&z=Ui>l8J(*2aMKm#D zx!$@-t}pQ@0w)|hJzi#n_VOx9l|Py8rM6$NJdHy>^@ppP-jUM92Q`+(l+lsH_#*e@ zS%!#x{Nrj*51^+nFjh!7eaQ{IiyR3uqa&yHQ|RZ_RzZX4Xe!q@zz0=V26#Cp9o(o^ zRoQx2G-gb!P1(ItQ1eH$Xy(^xp4BM8>(L{5c#aS6=wiDa$zZ}ywX)*ZaLldTeFGW#THU7cG9R(W4SBh#R#ER(kNAjE z`rf{!f_<&_;}Y*VOsjQjB#TV8#TN`7zOHt79OW5nZ02ynK%4@psTL;}wpW(29lm9( z=5~dx?|;Eg@_MyF>$hHOB9G>JgMXEkoVI105)3`i0;riHFv*Ta!*^jLtxYWSDtlTs zr;aPsWFt4ps+69owkq^A3tHeN8)*b4*-00NmRugmss=yN3I@qzB@SEInweFnmN9f% zUANFlzQT#uj!YtvskUC-HN#jd^OvnvOrg~CW!1`sCPR_%Fp5!#kbkQd? zVCFVuWQ(TR!6(@`?eOgGGLJS!(zHUq!osu)Ao>%w(vExI>p5fgHsB3N>trw#S7s$o zPfwTY#88grUvY&@X(l@SF)dg(T<#xdb2Fi6G!@KbZ4X~w9^B4QY=f`-&ssBfQ2X5O z<*BqWZ&=#z?WyIXJw72uuM*EW=cARj{G_Yg20hYj?r2i>ppNv4j$HruGRJ#&_HBYH z0x@_{KTRUnYv@7y;^%=r+70eiTK#p%mDjcE=tksLWUy{PrSQkRWE5WX>QypTM36CE zxwH=`E11dJ%mBE_lB}-Ym*1wB+k)L;kNE^KDkkN#dZ0%kQ+16M4YfI~RM4vUYL0qf zUZrfEw5TyZ({5Zl&uy}yV8*nWM^`$n0!o|#4eBc|5ax2wD|!)hSa&{+P9xmoQodPs z)yL?+U}3O0Ae!ljyme|q$;jv1JBgn8!yX^7xuRbXR*5~RLoO1bQ!Kr-G>D0s9;$sS zRe>)G75F;651TC?h!}S`>CXaF?MyeI$cdTikYf5&?QwKfhHE+HD`P?lR znLnsyzkF;yj`;SulHDYM-Z6K zrhKV)=`}ISz!5hq+@Oc$%j>I4#}rX-dyjWVaO0=FlhcrTSUTH^jK^D;xtta$!;It) zUr)ycUfZf9Gug{<4&$yOv--oCfbWL(+u8_hs!p88L~`g_#$xq^760sK-$p1l)ux{@ z_Kiey$1Yl@b=ozI0w;PaNzyET_SJI|X8c4e%lSO7*Js($sDx5eErwrKyU`l@w%Qd! z_hL%1|GN4rp^0&Vy>?A;$IU z(Y8rHkxa7H2u-(FR(#9)Y?^7h_w9!Y@R*KQc;j!Z8#F4=iMrblYompw6`5#Db7OkT z)=0e4k`|WNTWlmJTCTpXjV5M=pJ+usPK_#$zF~EXj{P(>O>?-4-_>uvm6TnaqlQAM ziK#?pv;>Ve7Y;quLiIsrJUW%YL_5`2nNc$p{#8~|u1>VkDFb|qf==n`DX|{0r->lm zo>g}3rPt98>|%bXWxG2b9_Hq8=j1}B4@lL+R5mMu@yN6QIzF?o^7@w1S3W$S*2fj! zykQD(F;GE7zaG!!k;B}-@?+D+5FpqGGT7-(-;MM`vRxL zYji(6<3%7m54@Z$9mcX4}lbN})7;rTFsrf*IkKD~e6 zvd{jP`NF;b{nLkkK3tyPpQjbR^TS~~UtveU#df{j-|V-KtM&3TmNhPy^zG*SY!o2z zAAx-y)AKp`bMbXK|Mq5uT@X9`e>khdVvVWnaYCfuiM!q&Tzt+h8cIT%NS`kjmw4%Z zJ$uo(U{CCsO_mtZYWi(?Oqwp2k25scPD{%j((oR=Vn>`=L$aUnY3&Z*>X#h_h2Ltq z#fPTv%aH`>f?9odb(-`Nc@U_2H#lu`NazM?Jt z=4ati(|3v6x8}#~{^gu86{&;$++vHDQY%yB-=-@A$i8W5mF)Ff}nl%(wc z9d`ra8m>yxa6-x7(Iw;dxJoKfjRfAw3F1N70D6y^<*BJ!q*!XUG_;Jqx%-7}-C~WE zK1@7a;tmEnrLlh@dqeELjw|dw!%Y&Ad}1}S(jL&2UslXev&0>qMq14F3wE0UDY9I+ z2DsxIxX5)iXz9C>&FVIb&d)-kSPWR7BYf6>u&PlGZ)lMO>3P*-Bs-4%CvRKuB0>}N z$K7&c?VO*rlor{?6W{1QoY*Vb9B+8y$c z%q@+@ab@5VHX@ycKcwZ3?ze~)Fe{WzHN6sZ^&h-$`8y|r1Ke!0i}^gLA?Lylw`DE& z7ucCeUBKJ#RQB#7qFCh4l#bDu@pMG1(43!#vy4n(L4De!^HXaXA>Y9bl{GfQ3R2J#`*^M>k&LN9U{kM$w(JXrCFqx~^R{)Aa-5eO1!VisljcdbOeF;o zXGBunkM%ZjNEUKGn>s@Azr(a1U>0?=+|yht<@X`E9x$?8+oZ!@OYGu5lZ_g$bq6eJ z$_Ddh7?AA(7Uh6gh&X{{kg`Q>&9w4C0*c{)k>%=U3lcS{vxb6=b#$-gz$ywMI_oGG z?{8Bbr$GqyVl72{M82%woi;p}yZefB(G4Nt)_c(?HEY466;|A1B)RSW4c?B#6!(Os ztH0Frtl`*Y~$q=>)M90-2+<)FScm_7+!@(xu93k@U1wD{=RNFE7t| zF38iFkGD0|N_gEG$_N^rC=upuFk^0)vo+-#7S%9{<~dYNGT48gumfqiNX1KMPZZUL z-jy;Q)q=_zlYO_{U%bD&x}+rP=*W<)D=DW^pam7;0aYa4<7)2r)T{1axOu3<1$D<) zHQipE5hMp%KB|{R}|1z1&_OE{>1aNmmsV@2+46ZqL>Z8dF7r2C9)vj~>Tyv0NW#gVAF|CuYwlrRc$O!dX5qEk`RWW5q-d<)DqlVPM7V{ZPK15%H7SG$^^7*{&l+MfRk2G00 z)4$>iLWm|UR}n*hTHZY#95^JV{LWlmULbD%ow;S+Mtl^qSll&oE1r>802yFohFWqNxuts zfj*JFV15Z%#O>yak*G#N`cPb=u-k+w9GE%}u>Jf*)|&QE*V8UcVO6dbNj+Mlo2 zYyjmRKuZ?$nlaDJOw@G=Jch46^cjxaa!(QDy*e>^c_ZK z^c7Tn)o?*=G2NjX{VvKCS{GmOots6v%p%WK^bHozZT?C(;i#3w#d?L5RCmZdR^-W* z%-ao~=)ky~zAIniEDfG5!5AgW#_RzdZ{_Keo{qxq=(xeE{(QB=+X9Ubg;mK`RkBFd zj7lz5o;$>N_Oxu$EoN6bxTF`0609&<^CUYslo3et?Skuf`sFwS<%r-tw$(v7O8%wH zO(P~IP=jw85NYp~P;_X^9@f^&KDX6Ss#q4QYi?$gx=OyPl|pT`n+(i&rDZe1 zPm+Ah8bMR zn`hC2uc=nT!1$-NmTKwhmsuDk0z|zfHNRz#~~L)poR~tH zgBC+$+w;xh5=RjCs~s(Arx*ncEBEmSzRa7-0+$@gVrl-b3m%eOmST~&%kP-ik{37h z&{}e(raB24{k;82PeLuRScuR5Vu9OfM{lHRbd%3I9!m2r?llq5hHN$8$?1QZo}0w1 zsZIj(C%EoQLy84Wcv{}5G}byK6+-#E5+WE=iutG2{%P~Y3{vV=s>hw6!B+N;nzqI8 zK-XG@tiB(%O_EfI6a*d|Fpjv9vn5H+P@Fvs#!UgEF+o$lh*$>FC|QP3>*BF?g6K^f z@PH;!rWvDbuSr?c)!`h=?=;(3FwO)G<}+5&w?9ziaYiX4YhuQmWjfMngBf!}Prdo{ zC2T~_GCE(zHZ|V60enqru-RwvmTag@&1z&z6T|xpjcCO&lDpZ8n}pjX|H>SE<{20r z3~;T6-`3kNv-L-AkvZ=n=V=!0x*s?Xup?P)?gj*xgBBAs{(=q|R<0ygZolD5O|=rA zO#KlPmXeX^=vR+CF-^bX^@7#lYQd_rR&ae-VUd8Qa`>pZ-!3q*J3kAF;!nVO`!kdv z@_@|e$jaNFy22LN2_+)@9e3y6DW$a@3CAl}T0zsoDDSS^@lL$?*CqD(k&_`~P)=Rm&J zq^z46X-cFxH$x)gc1`<^w98<38(Pum(d=x6w!ZSQ{nLK=4ljP=Pf|{2`7P0C_pGG8 zCboE6kI;yV{!HxRQ$4CBTs>-;-m7HA)uUP_l(6Z<3oEyng6|icp*CE+XDSyh+97?% zH|oAnKQHMzz@DH(eC+Bl-qIld%j~e^ikRJDA9}28KL)Vv9;=bP*goS(6{VAkBuayP z`;$(yIM0;S!8%U_8^m0<1jmsNxQ(?2;|vGfKm$I>uW+aG%Rljay^A9TZjLn~TbZ`9 zLENvNn>1BYV@DWHzmi();htXi#WtS1MFh63li%C>{bU` zzoXp(_?#iJRr!iFBI|8CSsVW?%`dhav6KTvcOr?l9LRiLieBPG1}iY37Qreq!uTMx zPgmHZ{2f_LO;SxV+7@P1AW%m!NE~nAwRfr3ysc2f5h`_K2IqP(M^ACd7F@q&kTuT5 znvP$f8Q9?Szy)>>88<7k_tr6sfr=c<{DJp@vFwS~A?26x!ScqWTeC&F7stRPNU^1Z z%?ynh6TA4~cP$v2b*ObLf&xQ>p(plrG z_@)t9iEklzZ8F)iIi$$e$BZq;4Jp*yAS*v_m$XluPN&eEuejULo%V{GjWqNkg_YqG zEMXKXkB&%0nuvCt+F?JZ+QKYs85R+8WvZ!Guji@un(8FBr~RDI zrE8Mh8A^=IdNZ=}yR0KtZK_#e%p7Nupup!NKImNrYF=@8fkv8%02x^%FvqJ7zBxYbt$h8b=MgIPj zOlMLDYjr2A_5YA)IHb(qe#QNkTC~?ZG0;-8#D8P6MzxeulQNcfMqnmn^RS`y(CkTt zHgWy1#e=3VcdG?9V{X#AVMEKhD-P>!XcRa?;Vc_lu5mTW6h_vsVeg+%i!KdkR9cODv%+;#Tilhv5pIcHJgctp z#@EEUT+P;L^{}GUngwaqD#alAbY1>1YGk~&Dh_tk+)uM)V7!AA`Jtsn$%ZBuv1_75XhIB9GXUG`Lv5cqoB~ltUGA?Zc zZt>1qa%-!NR4h}c9Ws*o%_`+Q)yK#3iVaWA5;C{rvkue=(CD`&Rak=YsrwAglnTjn z<>eZ60B4qqW>0QqXoC;lI(Gs}YteF0l53YZ4)sdwp*dA5v`Kg2Tpd1~@RCf9WeQh1 zZ*kWU%q?fn1!-s%I&EKau`{$5EvilIfL2-$ZDN-l;nE5q|LRt?FOgJN63$27YP`pz;h(NJQK6qU87sx=E_A6VRPY@< zkz*P4rD*YfXvxuo1G0Ds{Q<*TXxM5fU<7h5Ws^vv_0W|8M*Fy2No9Dy{J!Ld1hH@= ztC_boa{8zAGz5#&H8$w-YiuB(K$kTJ7q%J{rT&+&MU}a)mIq6Tk*cvEZF=yc0I&Wn z7JOb3x8Qsez_dW*>4BIozp061aSvJg`yyQoew8|NljLd2t2a@#l zJA0Mdz+BR6=BRvS+{=e)P7rY~GM+gd%ZVSD&743IA5rJa+vQ=qKIQK%f~VTnaK|+? zg}TzwskaTPibud7_hnc|mj74w)L*OuWigrUnw+C8ceh#YU#~B`O<9!p5U4 z%)$ZfWTXOhSjAch$nyxZT5MF?Q!O+k33Z6u9ad!jMs^8ur(DF88cDd0*E`}^BeJ!p zM%JV<7L|2?LoV82)?bLJLU=-mW9t?d+N@9pgRhQQv7{cJuMQ>OYErf8Ixn)l|iKVvXl- zs$37qDzJ$V;v|v=SH%%yKsrB?qL4zJGbGPXzy30Oj)V}Mvn1#1-PhThHI5^mnV;hG zZ~NJT4)9~;e|_cx!sjJ)ys-($8(g1W1!He_w8M1xQXYZy{LP0f?zi$4gEx`$Oin4{ zT}^-U^5*o2%S#V(V~&w1oSvi}m1uP;XG9Wb7`w9hd}EEEY8}yHTeK?GqP1MroEED{ zlw3+!PM^G!f$z$R$l^;Vqse+U%pKH_&YE;IB<_F)zKf^zTjQFqDk2E_e;?_y5w_U9 z#}y@Y>Yks))V_o!)*+NE+#wBG79-nl(sd$w7Bj+p4sBCfMRynNs3y+`8y!cXrZ&kVCJW;JJV|7xaGWhvm;B-PLphG_H9J z$th1Vv%+%FVQ{yP>Y|^9hejt|&Ph_dBTkSJ!^qK>M*;FL!@-W*C5}B6pDe-Q4!Ax| zzut;2OrR_+u9I}h?}jek?_ZB9kWO0Pvi$j+J{MjtH>)KcTcK~1XI+MP-DCgK6{Hc% z>UsCjmHgZn)mqY%?Tc2D3*5horW@ZNmy5gA5f`H+l`X@1%Xdv-5WSa#N*%!p)L5!nA4L; zRvXo4oHUxP)|&X1Vv%%DK+?uPE$`zOXxLoPHE8REaikV&ofD`~I!KMKf%-UO8h6@# zx=O}1WVI!lYRbX5CLeH<#>lW+6+6q|2uMY8RY9|Ci7k*$t9&ZBHVe3goWp^y4gH*>1)O%+b z>Y^jX`FNZiz74j=1nA@;`k4>-E{GF(ixUP&^ErKRr3q=;OGg9iVL*!O7z|}`Oiwfd z{Qmf3q=+)26T8d(?8oKm3m;TJa{=)>kz{Ms%?x*g(REWIugW~`7XSX+C zs|wYi!yvEKmt@CKJn}fhI7>kssQBAmVdJ;sQr%E4{}wKif?`Soe7c(>?R(legr7bgT-Oau)BU>Ro+X}dBE2N9m)rBle>EBGn#zDS08w~wf^Kf1D*DaOWg2|*7 zOD(rUGC^^43tzTq0+~<6|LTHrHRYECq#D}aDuGl?MGzBY9GQT0Lo!%iFk=Y+QqI*g zc8BE@xVrFRhcaF#oS|eSt;>N;e+unDn-rKVzmy|eFu_Pal+Kmz>Vp4Rn%?{m2`*ph zA%JX2whw@teyHpn*3op|+tq~)6~w>cI7dzJ% zSD!ZvnVDkw(uGX+ zQjo?6vTh<}gIPl%vJx8<47#Xn*Z!`#@9r3RDkXU5|c8#IOdMg+C1juzRK`)kqk^yc&e=ve-6L3fC9-$bPp z_w?Y%o8F#?OL52el12%I{ct!GOiM8;XDBT)eN9^~aKDHXaEw51z)?0B#>DDDhrw5; zir*UY2)b;xI3{<^QrM&RtM3k_VT;n+S;d-$JmU0xzJ9{3-p8+a1XzKNSmWtZ7K7wq zjY&5JBRy#MGuoJWB+c2jY}9$7M!J6eKZ6~V`K5a5Ncey2eIH1 z!QxO~5T_lT+)7chlor{PYaSPf36YEuR+HQ-Q{q~}4s}32-ko+kED7RXLNS4x3N6v& zp)q}@P;jAGB&e78x{5O|sG&)*r&+Wd{E&GNPzhgCtpp8Z3Q|KgqAE5?FQIFWl}r^9 zH;wL>$0Xxv7R@UyiS1e=>U@&)Fve=rQOAhFQJB>!5jlTCv8KD=lTS6(OVlNnrd3*o z9TH0;bcR`#YS3YL>#@uzq}0gnV4<`~%AfmfN&!{OIy|Q*`DwG0HaCzhyisZNq1Icm zo#nx8HGJAF(5E=DM6y`!!|Cn|SCeY0mB?0InXIW+Lbe>(-px{4B&|U4opi~0K^JP+ zmoFY?yP-=THw@_Y<%>sI;=IC*^z`D?*@uRb`~;nrJ{-^y3QoH4?Pfz`gYS4w!3p)b zm4?d?cdei$R`}oc+tUsoD_Wt3Q%SZGnNlIKsD;%{j@TAEIZUE)v|@Ip<7TtpwW5w% zN!)#%(M!OsP|c|1J}!wFe?(q&b3x=E`DHWR*$}lE}2R3X_YfSZU5it#m z2vmX=!&N`c3E$10S8GKFj7E;$IZVnK&S8tfASJ!|dNSVTikH>L^^2Mg~t3zQ^>Ni*RyX+lNdSZFuYBR zP=9Ril49Acr8JAyAxKF#OR-4QH>3hzLYjty9Q%e`$?z0c5(-cb8N@T+S%lL0=UiO1 z1cysy%%|A17QIZiGHubyFm?#{(ZMBGC^MkZ(`J{5JGzy+T;eJzzA8M&&5=CTl;7-w zIO)o9<~eCh*=dK0xWau4O#>)<@HS(_i==JgtArhEOcte1rT_y<3T99nWe-KFrz!J? zw3OQIQ$!ewj_VRhg!*p!C zl#-QNVN17CyR=I)fpf56N*%plaOdy_w-PWs<`hXCkG3=pTJcld^4c$EYP7{BbB8tTPO|x^r$hNp%k37YEpWGMdbl;o zR#YcJ!&7Ydp^Ny|C}%S96}Kanlhrl+WJZGpb9J2`c)wn4RQ3It*+DV~ibVuUYa*`OT7Dt^QF8bxj;|0MKvIskt5>=Mskh%R$xEyvUH-1S-N2|~@ zv`x+THHISmcqYOQr5%jx#8RZ5W2TkoE0F0<9vY*Y!SpqHpgjD_94Bc#&j^XtHso1p zp4OJ+&q0GJO+Pvo8WL@=5sdYRoKW&=OB*w9=_a09)Uu51yY=btH9M9=7J)9OE!))d zII59A10ro)UOePzwB$3kod*1hTj%z_S^gzmHDMw1hEW^psJpiun zf^Uvy(6soA#e57Y=cOH_XKp;zO01VlnNDBd@lV71w0W*_z)=h`tyVlyFD`}HQ4Dgn z%d*>X}4IBn_Xtn&k*Xd zn-UvyisUU`i%pL((!x8fU8J60Mtehit7V3ZRO+cd6?#wg5?HzXvE6^OgF6zb$W}(G zNZtinptiX1@xSwyk@Hl{?_{TOOKV=eh<9234UTa=`I@RiXR@&J!KJR5ak~ zk%p4eNXrDBj?)gUhMTYe>4^sag64fy_sji?cD<1GZeq-fO@b znnnM9e}6;koS!~i;2_jjauoQQY9)Xq0fHEbnwlhV<=cWbAKq{2bOSZK*wl0xQu`8g z_$iVh`jFJ;j+E{Vigd;@MZyf`HizGF0M?K2J=-0x5P zZpG!H!x)q!lc8LRD~;dgJl7zw4XI|PQLa)3nLxwO3J6?TphHzfo&#PUq$1A&$EQ9y z%S)i)XL;gR_NioEU}QxvUS~a?==51u*6WD|k6ng1p2>MdTSC&t`6Sn48hKJ|Qn&;I zOwy{D5>I~Er)TW)FvwOrw_6-gE$dg8hl*fvC<^KICMl{W<|rs6ID}A5d?`C7dv~WV zXm2$UB5GfPlBAW;l(~AqfCXK|md2XL{dWD!SwIr)K+@((y2TQUaW+u#(Rvp?1u8z( zx&q)(g+SuS_93;Rgce7Kz%U}AEnNm&sFei95?-?s3U0ADU-SK3R4bl$xW`~mNzeLw zJS(l+B;~M3603*>zs3%$+ZmpbWMBye2pTvcjv0e+LG4zu`%9N|7}^k9Je6pNWkQR? zNHZ-IIkX|SGJKgKxvYLLq2Nw<+JtWzVwEN25j4il01kLQ4}>y6LKz{0Dij|Alt9Zz zx;Y4iD-?=Kfl$Em(?Cbdb{Wt3@+~V(7_fd{(T-~@=cT(iSo5BCcSg)?>GDylU;0&X z-W_kZTXs|UDO{llbI(_tlUYF;T7|wlF1%7DSe!;2%6yDLK=R95SX%WOn$-mKJIX3L zPq^G;^Uw){W{i2+(GIhc_jWi`AzHPWQX`Kvj_o;vq-eRd2HmSj%?Q3v&h?dv5~sYK zv4L1!*XX2^4F9yebPPgL$(@O?Bv(8H6_gOmK&LsU&#RpJ0i*T76eKHU$gPZ)C@Y{e zi$<+$N|L8l=zd9pSj4R4O-X`4Q<6Z-&vOOVdqX{05yQ$ojfa7y3li2**anVj_ z){(ph3kKcZ`D{UV&J#|LbCSN8lO>@l7K|BAZu4?^p<@Yx=deXNND4T? z?Z8DI74ncwu`T=FHS&`t4aiGe@BOB^bH3_Xz2V&sxdi7`I30uiNWsdP+I z<_&aGl8R7Etnt)ixiR@(5-DE(64kO2}eEK_Dj5g_?(M|ei zj!l10jJ2z$$?+_r^jONKe->%eKeK#F)?{Zxvm`mBL4*1C2@9YfA0OAK0@7DgKP|grpV^tOm_-m;wTHMlu-3L1BRIe&1DC^U!O#XZOCDp2m5+PHL8l=llL)YA_Ns(5~ zF(jOUE44^qG=zJe)~lJWd{A3sC=pUUE=ccjp=XaPQl(Wp5bf&7X_lxN19HwOD;M~N zZs(hKEmJBB9>t*wp-Gy3Rzii-qMLC_sBrvombMRS3F3rs)By=u#gxReGIlky;<|*( zGC`_ko=+4{cD`YpP3t#U`KJ0vb`7OQTCIS!X$_*LZPBKbTAS9*f>eq@V!tsR7Ej*g zP>m>_F{Jj4iRuU2a}=XZKU>)1DJc_jiX`n^)$*XfJ(sUqV_n3TkVj}diSKhaQBv6{ zp+^4hh%4K8v5>#fLrbD~WKJ(qRi&1aDpiCEb=hmETSh&hdTB?)4 z@uS&VbCL8GLV!a-NZFKdL~u9|d~6D##@W~aL{dL6#nS$3)8}v4RIVip9=dS0!&Hr(qBQJLx#dqy6N@@x2cOEG$GcMKSy~{vHU(*NC?pJ`f`=VIkL(6tPYExg-Z9m z?6EH;izPyc!*&Oc)13~NE9|;hf5AbeOO^+&BB(yR-TXtg`DF(iQh-&h1}h}Re!|yY zz7s90ttl-sMfGx3po!GMQv55dra+1l%j2uw&HD6ozFFMhVncBVTev1b#O^5Y^SCbZ ztG&|_iG(c|LuHErow9{y{syBXY}w#Dcj-u~Y;B>6JIIuH$y#VqL0{%k0Rv4FVWLw$ z`3G9MjFh*S((kv}@{QQ|h~V<54o4)>Z(QuRhr`_(cU0gQ9s2t?MJ5BY-ru)tI{iMR zaSW1mUE%XS&XkR)n}9MJZCaJX+d&#~-#QtcEnII;hvnz5%jJ5+?P-6VOnDb<amKf40xj!lf?VntYM^0gO(9Q(KM|sBaPFL zN%L`wi;rw}$u;pYIUG&V&K4Zn9vV+2NM}TKwZOGz=ZE=fb!L8we@wt=bG}{R7F_~r zAoS(97@q79zvIQ_mnWXR74h;x5poRj3~Y0a8`!}^&xG?=9N^83UvVAN*n_@Sx4x|7<1JoyY-EvaYw<6fCXsbES)xE9 zHZ+e$k^GL$Wlu{S@1aEvm8j`iD(#^DbG1L7X0)XRS5%QyNLQ(JwZfM6vC#rJh641+ z#+4E>jt<2WoBukh-0$fM2%{Q$mckkg_GafJ=JeANJnrpgjg@P;ts)@}$z!ohAQpqR|cs@!3zw>&XZvRziP4`mR-YK_%CdC>KQIb9EK*E9I zkv6XCfu(iPwcAEWSt^TlN=*2g%>967C}b2lzS(1&zKEp+mDPbON6iwa9ae`i@z4rz z=?RLXMM2)aYP?RD&VD!!FjXF|putrmHk1)`5rE7O4&*pz1s@Rf#Ei$vSzQllHOm}>F$uaqK~0M!NS1MSZo0;nGBH^7d=E$+5lo^Q6BmuE~mHST?$ zO4GK6Y_y9MZVlPmder@Ggosf zg2g3I3Bf-tFDSu;Ysgk6O|jr6K{XU0G(inaNIfiMs% z??P@$HEB;G4X?4XxRb35u8+_10k>$_?q*NiUb#eWse!~hJQ_xaL*Qw~Cz_&VY`of| z8^vHJ)%Jkc$8(WwB}}PhrYTeM*a6(?Fq|zTXR@)CHO!v8jh#{J+O^sxZJ}C&%IR5a zTZ~$Fjp%8TwjfBa#OTVUwx_o1+tG$wT8+r0;dbp7j5aTA@(r{>?2-0d_%3~t`}L)` zG<4^M)I{|=g&g9K)Al&4b3eHk@|?7uCh~SFs+ZuKE{s8SPOiYPj6jYq>F@$faY(+% zgUZqx_u28FffKMMI~hNWO40X3kEf@;v3#BT1zVT?44Eo_i(W9H^H0nBxLLoL%KHJE zaA$ba(Gd%NP6y#DculL&bu}XkEK)NnxuAq*(STQ^ZV2Cw78dt%!Bp7jP4JHDV za7ofqtpp0_kJ)}<*rf>~**;&jVBN>$m5JJiW0w`nrc&>vTyNu9lE*DA)?Sz1+P#_| zYsr0!H(T{A6*KiK5w&Bb^a#kqO3v^`rAuaZl_(_E<=eR07tb{s!k&SpLynQG`UaM% zXa*fOr7RS)vMhF<<4O9jcs%)b`7ey-D4iRcqGkVlDxW5xe7YOy-F7bua$grwvjp9o zloayuQB%%u9)IFloCOBskE@?&J|yy>mCN-AVL}FhT~rv#supZhDdCJtAF(pZg#~qc zT%Uj8?h@-Fcgyu7ZtKDb8>eJ0&xUwK8uv`dRU23t{INt}$$|lSNCrb>GS^Dwv9q#^ zdVPOeI9Lz;L8m&eju`*o}`);*h=^k%XIz_1?@8Xp(c)WdQZF0ES z*&J4KgKGYGkuFrF1n4r0{0{T(g=#RO5xtU1A4__|F+0|QVkURPlGkiHNoPip+b`d& zj(E6WIm0$Jz-_ojp%F9~3KhhGY6o-WSLR@42upSJ;ffwvg9%SCxaItt_R!QfF|?u; zG&ziwa&n%LHtbP=WCZ;DWc*TB4MVq&yL7oGWogx2F$E*(f+MJ#CvjrV*k@)=EaZ__iO#110xxzDBLJr~5Uy^zE;)w;npX0tiN+14V z>Hqk9qT`35(^WO+bG-FVG8(A(KHnHsNIk4H@uD-MZOfimsa-drN@Lx$uzgFc@H%QT zZ!_k|1-wR@&kkvpv9Yu$=krcDJZo=C$^)OZ*>z8@WYT~%or`wPx2z(I zPo>-Ei&JYT+aH@b<}s;a z(CCEq2IQjGGfR(JDXV){yz;%;eAsSK(=h|UK$<>NvbB&=?CEz@UwbLBVosLCW7PUV z6^nHx`61e4Sy@B?1B(F-0|2Y%^K!-qSm~>8;76BjbfizleC2HwkC@fU*0odPg+qGS ze5}=WST5DdP}J4P5b=KXZF!C}^z!|Ka()VI*duz?3~!5Y{lOHxtF*?wO6yRxE5$w) z{*A3IGKo&z$y-k;UJ%`4TtCTDrJmWK*U;1uhI(p|IDTF3H@JE!U(3q_r*lrj9&b$g z^MJITzMzax`Xy4>RVO|;+YPU=T_K$9hF7G2?r^5c*P@DKuyld)#dg2vWeYT3TzEN> ze7ADTva&Q_F9YAVKY0Y72pNafo3&{c(^e=XQp_-N@Qh}DJaJ>ZCB!%^L8OT+EfZz& zL~dnnPaB@cWHb{h95!1WuyqB~KI;14FE>xPJvuuSa-D|vv%`_zP5Ob=Wa!WHaWWe6 zyz~;{^wR0-5xY$`l;CRoeZcavXyD;{W3(bWnQPqi9GeR`PLggn#!_Dt&4}e>k!v=e zH5g%#nJx(vHj|Cap7IUXsNc~hMM*VJDp=~R<6;_fMkH_PWfLh{p?u;OEp!)MUW8&- zJ;fn)&_mmp{D_B-36?>Ke4nMV3Z#ji{cfAMAD1}vzE7PD!3)9JPR%$WTq{n5PxtTs z%PTPyr^Pqg$puf$_}@NVUD8?2qPe0JB=z-}t^U_yd;FCTJ3_O*Bvyz9kL|O(%8C72 zZsgBlTFAxxAM3kIJc`MxfbvwUi%xD}J6CG$lR!mu_%u<%sOd9anBYfW_~KkKMN2re zR?@J&4)*U(aHxLEC)`~}OXPfxCi|V@F@UpLFK6?0FcB8NI!q_eFNc+N85#+t^pH)4 z70b#7)0iY0aYiK5*aq1d2)oe?K{nLDFVK;pS6nXMVXfnY3{dMGuJr(Or_-*Ra6PWo zKrLlE4u*39!^s7eo}_BBlcC)_i_`pg|FY9sz&m_0&7)^9Xcy)tG7W?ss zxzN|IvcRbx*J{8`-v@ee2rKTW&~yU>??@249j23)n9-tO%D)s>rdXsL4@i~v_tn49 zQ>Pn~#aN$jwcHKWm=4p)pYYY|dUp7hyuHg|i~5sN1sgNOGYu64KH@YVaA-d7i5X9$ zMBnH_aZAkjs|DT}!8in`v`?6r&~44BJLqtXWIkL16V3S&rBR!WHgA`lqIfd4rhC0L zTEhjkneTZGryb9dg+AA4z=;djKhvi!L+K!8ea2($iVSfs@IB!MFEZqnrIzTl>$I|- zY?D~XbJC?3C4346h~l|mYOg^ZSUyO)dkAOGj1f3DR!2kWAd7beTYK1)Y;wvIy>>a@ zl%uQ8RAeX9UEN5+UB1&I&uyleQ<8MF0Np9d`rc;C4s^J+5ogzNMkG@oOQ|bPTVdD7 z76^~XF?8i&RYVSKYEzT#xbde^vO*WmO@~GL(m`J|gAsv9^_a$|4kRbV0DoM|yAzJj zadvdnFkqUVF^@=9l}BuprcG`ULH0;gLlfh}@gINB9|=;c!chq5R*JqH$8r(JN$%G; z|A1i{O|bF|k55rHj7aWgyYrJnBkFmfG>rDeJ+miIvr=|kiz`mPi0d~{V7WyDUhoXR zKVO9mBNu(1rVQFfj3T%D{`Y7F?JA-VNzn^dWUiGfZ(H^Fyz&)Fnl-n8-;=APq_p}~ zI?~qAUHmGpiC@4Omdt)OlEa?%6JLl{&|0&?*YTYk1D-YI>+r9boK z*Zi&ds>3p}w)1|A^U?g>?h2RO{XfdyZ7a?s=@QfV_chfJKKKNQ~E9qjEfmvqqFQXbs#^;q8*hVW~)2d;di#}`2q2w zB^zT;*~ueryl_Ax`YTFB9@E>|cP`cwx)6ph=$T;q!Te4)lQOLe1OD&%X5AJY&bGnr zD4Elz%ayTwcc=Z#URdzsc^;t+bd@dJffOG1{Lo~_lFnRUHxo~<@Iej4bF64~*X!^5 zr-@$e$4TYOe67usCQ_ZAL|L!)FyQ6TSdWzxWFp3fsn)t)tp+B`3+w#?iw1m+A!f%1 z$(xerHDI@oEo0iQ+RRUpG$b9&efLbquXO~=8*#WfEaC$kn_TW`;k`DbtG7XeV*G;I zeQ!3rajT++#XJP&T5|&K3V0>O*&u_*wQ8n(Ko;*n(H2Jn}nLe$3 zg#|4OpC^r^x+1Xidtaz*0f@rlZ&01Bcp+&>GhN5F#WhM|4(Iv3iKeh-tEZS|ipjfI zFLu1|rugP6=lYV9m-6;yoYY0O^SE|^5(Ev02WX#`>u1_K#@`!CzVlA#c-`XQ#W=YO zDo-!Lu7I=HIefYff!Ve3YZYazJ|QTxto5Vy}H}tpw#XBAOFw){XeeP*6o|nOfdgB$#hL%wi8R3|Im|6a&{@6W=guiru&R+ z+Xg-%=86d2t|A|pRu1ihgMwf`BWq%bS2W+Al;MHwUOr?E2qcQw9k#5L<_`9&v@%*7M-dWylQs0u1@1_n-~IL187EqB zI_4Uiv$TTP&!)ow@cm-GyhE?pS_1l;WC@MoVrfIjW8w@n2bur;A5%P-3?E!(N)R95*a%gFc)fO79-+D(anJs+ zp!b0ynSmmSNSx^BP7{pt&!&4CoFe$r3CH+Q$|FO?hd4-QYWix~>#YochwZi!L&afa zup!2lVi~A5qHc=q`6`(bgAg+Pb8Br4eD3XT6v66#*3EEmQ4QO`gI)ShauFVDWQs(xKCT?`gN}w5BriO&N`sDBitJyN$(_I-Xmf5a20 zv(2+-^GMnlPk$}uKWRzD8Un28Wszay&AXBjRboiG^R;imN7Bd$P4(YD2^<6or!6-_ z_;=K5`#{RnW|KfdZNDN58ZLmU3*}BFR)4rH?`6eSLr1Gg8W}pHhU!9=%{4%91K=hV zXu^oUEO&~F32J|yaOuP|PB;qTu+JCS4i>wbamg*`qL>&OV=z`?eYHowpCBq_*X!?8hT zXkJkA3aT|`Ae_c?8SELM-mvm?7LBVbS>>${J51W%V4;F9NJlMT?m&~6GPltiBKSi1ueG8|)UGGW+W0#=ZS^EsmU8dyZwm(wdV*J7)efFhd&?k^+I5x^#BT z)fP9iQhS?K(#-U-vGrO4Yw)UmY(@Gu$ja=kiYGXHvusCU=>#LSdy(CW&!iE9 zjBVACR5p{f!NRbe<`fue0<*N#%qg;fw#f?wEB7Z&AjMs^p$7xKx7O^3yMp!prZkx~ zBJ#m@xWA(oeoWk3`}fc5`Q~v!@2=S3U?8$k(Y3Z=44Iq}m9JgqR4y30>KM%>f^99t%%b;05X`kaQ|y zyuh4sc5dTj`wmyTkQw=FY;wKBGltt8z3XNAC>bNkqs+}d;R@EP>p#q%xuPwRnH_UQ zgz2(nDh`;>^|&;5;ws8*xVxgRo>mr2GR4jTh7RLMlodsSAuf6eYp1{Z@Izcs8G|N5 z8!p_mrQT+l`Fy-wV2Yb&e_-?ddUHM7JfP&_Jr;hp9A|3|>0e`o0(!_w3;8iFU;0i5 zSMZoOIKk!qxQwj^mmz3|?qvOlg*e;}g5%tDdkJ+b$l|o_B{ums#ctsz1O*>G0BmhH zAEPAt)8uA7N+R-Nw%z_*Z|W~<>DX(ICqyLBFCf8d%{OxRg~if|Hd!AkfX zTPp0E&5WBDihXk@tBP`i?lu%!#i>l2RK36@&nCDn4ggS)1jbPuTDk241^I+H3f}8tNw&9!b!Z@ zPxu^uj6I}slU;R0dn__L>WF#?*cL&Ql*kD&rG43gc{#R_5y5vLI^QYv zsr_iax}?}b(@ns)!C(`Ou|2f&AE!UC%_l^|1jV9=gFzD%+|~2yHdqtq2!k6dTAUe1 zk})!PtH>@MBrmWI^X2IdW5vt)Jy%#di-2XxC@j7=Rj?d|1ut8sWd1aIQRIhM!K1`# zagmxJJ0Gy`O+MxWq50CO$cur{@LyIo?y+B4Lv+!!F!4y$E+v-`bt1D;6lAUwjmL+} z8HV4qX<~YWDv*g0;^zxA7pUzkS=9agO(&2re!h@>MGg8E&|YR})WQb+4bUPO;&A&J z<}48(96~9Ks0v(&rJdU0c>MVjt?*F4pm{BJUWSQH{#M}e5gW;(xbdxIQ*vQhxeLTM zBiSU{ycv*8W!xh^eFc^r(+aK?jvxn`Q3GukRt+(GdE4spcy1WTw zqP!j79&OPo(R&ZHrtqe^C8Woq!CaG0LY z71M2;bi(iwWBtX7l3^$|&U@UwYf%F>IV;AzHjua-MYj}L(sOLYVR}@2tRL^5=_0r- zyvpu?q8UEllS%E@4h0=rp zPYoJvV5jyC$mSejEXIz?sr_;NAXnv}!$c4<*-3-t3tVi2snjL6XpPc~1ILTYA6RMJ zFK4uyLVOx(jEU{`e#c>G9f#t^L6OzgikMR)agVYH|N0DK5 z_3C(!_XbwGkF)=lKEa0X)RqXp2r*l9jgLmcf2!`$+HZVAv0N=5OB`K2o>Cm9!UekB5Pe>CRCx}t?O)hnD0bWSdK?U zhZI0XGqVzP3@>)L%^H48s?4u1X#VA`V>1EPKqz=DX1?3t^ba>Wyh6nH#Jri3JBwP4 z`OW^}0@rPMV2L(X2=8?F(+cPrjR9$)Znr3^m$=fw!1kyZhiWB&UT-fZ zY8S3%5wMqR9<u)g=r9(r?wIkxpN&;G;<=4n_t#)l1x?-O1DK zN4{ys^ZTk=37`pk60?vTYC`1)S;2Z21mOpSThjA`Ez7&oK%sdBs#?5QQ#$DW{0jiTkW5^Om6v)0KEd__T+t5uS2-%f*WmZHu1gwL05g-hajol z209ZsI;~SfrY)7VG^M%aN4)2xF22WGf3PO1(I8_yRWzw7l)Xo(u|% zx9n|_(t4=~*g$ChG?i6Xt@{&-0k8Jvl81eXdxeEoU=Q00xc|s1clbgCYYdv*(EDq6 zt!+inLg1J1W1j6J?eMd!c_=3)l>>gL&xso3&ce2l)&3suDdHT>>VZn6j~#!VO)DE; zw=rXmN?xr(QQo2oQ4VaUbd7DLN85f3d34}p#R)q!Oie$fTK|ZZ@vg_m~J- zOW@sMdcJ9bKAQNJx9gEle~snF(v!9A8(##5<26ib9p5d{HRoF}PJa!A3D2K!N}(lI zm2fy;8C4uO`#HV%cD9>83OKk8#dkd(@db;2E%;GkwmcLk4o!>g@S@izeE*ktIFg!D z_`<}YF0tuG)IEK{7_TlzpfcDiFMZnp&O!aFthCxoVK`(jAe-efi$o@hs9_f^E?T;^ zoLjBrE?r{ z$~{HS9ZrQ8a1&O2D%sOK8O!Pk8)GU*tk&Q-zMla^U&>fjUJ=`69-xdB@{=?fnk2Fq9kX z8fS}S61=MmVP@>~*XwZ8R;6gaV6p=Rdpc_(kS?rsK^qu z%<%ecN*-f%o@8nEr31Sl<8X2A9(x94n}i1@OAjzY1QMsjKqrZh=GN0vpL%)pOSKpa zZe}`_h;0Lpa||#ue~5UcCHlJ23n#NJRwL<%#LK38$}9bPoq0wLEYda!G^F2i09`s@ z*moy0TpAf0K54c+{r7&hRCp3)EbrpdJqqVI4~Nn7!v@c5TVS?s;$`H(GBqO@;!jxX zwAq53fTqQ(-Tn!?RB0DF@8-3>iihoGWU%~hhTYG%yk|*cmm~oxQ~FDqmDBc+FLK2N z`m*M)^p{}=ZOXB2u_!U>4JJ&q_HDL$n7_jwPfg`yWWt?5cDrCiX$*_)bQZq33PLt6I3(_45FxMI=vF@DAI)}L-D2baVQut9_9nfX z;qLYn_Fmqz1_TvNVLxcd#JYe#=xi{DSr&yx-+)28{#tMdjZm;#iQ4_{YdNXyEKE?N zIB{&R%9qtG+E?BzBS~?BEwnOW6IGGB*gn##LT>SJMP!y{#ui&4PHt|sbpqH0J&sNm zYgh!wf{0tsw`7d=0^#iR*TwSg7#GNx@hNSwKvt(M47I@mZ!!-}5w#=|=%MBSGt{X{ z?dlf+(XSJtTWYHI(55#Rs`w9!Kw?@8?{HQ%O!da(9(>6+ipIAuK?vpM& z(50L6P4n^)Alt$ChG^6{oo#feLu-jyoH-Oop10>*1lk1|_j&$n*N<<2?-V_6lwgu5 z${zxHJ2^p>>%tzNM@1Gv3UJo+Odldek_$7QKAg`5oqQ8Gerwe^J+0*KM z)CHSkle(rR@r!1PnK!xj{Hz~Y!M^JG>~S1|tc&dJZ*TEtlzv(@+*y{;C$nEN7hupP z$T;+9&v1d#6U}wdBDTbcd%8)USoji$=}7H@o^7kRa_ECjFLm?Q8}$gBB+eY#8?`&Z z(0++ef`tt=EJ_pO{fvA3{M@(UlPsY>Jl%6l6FdtO{?i&SV9w94%(A-^ihA)W?KG;L ze8Bp$k{55#xvg0u^bsK2dChy|7NXZ+v-RDUcM2eQ=q})xq*^Z0-Md0BC z8Tu!56jmNQW=<6*JiT>oAFwtdFE3apdB?I=KFs3_Eh`2*yieCH0T{LDUSwl$>DlUT zuFC>rD~=gj%fZzYqh$GrfoWF0%y+L2*>TX&p7)=N372;)*93;kI&}FG1y0dSG4nU5 z=V$%MO8O4*{KGLy~@IsYeBi{)qZ#ZD_?rFHRi1qw%b} z>J1-7Q&^wo(cN;`>VnPtB<&c86K(kA33eRKxM)HO0jz$CqlCER7jx60R6vJOM9W$QXt=vx6v8AIYw?>BmNAV$!)gg&y zVCC9m&$wf)96d(;K4>KMJ^8GPekOo5*(0*+CfR5=M??|_j*LL~yr|B$C&>g-mpCFc zt#Aaz^%`%;X_L^4$M%I|>D{q%dW-t~_I9_?N!KLld=O+d?y?Sz2JUF}%;_VWd*sP? zNm=n|3ewp++tTdr**ec~h>=b=V9SP+wBBaqtm?R!UXJU#!fL{RN7#0)SBa(6+wbQ% zB6Po8|CBf%0u(zF>@1F)O}fOwziim79WS>iU$~;RjP1p}PuJ_q`F`8Bi6|$C6KC-Q zd&=4}JPv`mAmP^ZK0JNIA~p*Ho_A04R+hWJ?z99KSw)9=NAgB8hB;MJnbPaltMs`I zWLgqe&ZpV0#pC{QYHG1rc>x&g+OA^?y^L7o%Vpb{bhhqg*uZ977~`;+m8dw(vobVb z=C)@D(8h5>mwe{Eu`LUAHx&yK?s5IYX8OV)MXrBLBan`Dvfkmk;q~LiZ1+vdiLjEq zV~ytKB73Ostk^fI3vyO;Jn!*q_EGFz)}c#ZKX8g>ikW-)JwNM5R#Fc?rc>?x$1gAD zopGUs3?GdXB*`DhEzJVdMFESQpz@lVZt)O!C(R69Fv9p{?dwRO6mjOHCW8|Vj3kVB zY{kiOy^4~G^oWUFg1RVRujg1-ro;Scu2S2MDdm`-a`7lG0k4JQR)#-6V9qJh7hUy0s~GD#Okk6$g&(EyuWLw%KC8`eL*=PCXcRi$w#weko^%cYQ>qlcv7+*51qGM#;PryQ3Brn( z?}vQ#cnN{mJDPW6eYL^`3lp~T@o(%buPplfG%UFW2uWd$JTNggREjCBV251Q&ei>5 zEzP=IyMMn(=`&PU8-7T!1=&T8#WvJuyDx&e=Xz}zC=(iIVxj2)H$TbA(k;cONF2Gt zIPIG>90ZHb5#}APOh5}I5f0!cAF;02;scN0iZ@yJBKwN2E6M>)7Fcgq-tDo4j4yos zhLi6&k^X**Mf-pArqi?aA#JiCfj>jL%GIG*n9wE*xT20;%#gCh{su`x(%jT!V8=@1 zOA|;RVtQ>9iBtp`C-p@jv9|CQQ(TCFnMT}LLE}-fL_6ZL(5;c`bSB>{{#wz6b4uyt ziS-^GAlhV|y(!Yfpa)%f!Xi_uIB|HGiXJ8-^5U12b8!~lwz)BA&cCd^#PAb0L zrl=Bk5br3O!g7*XE_(!Sr~t}@I5-QRDq zKM9MPRCAd(&?F`TFdQf%DkfiCFE>@5M7u_c!f1(tXN1G2$Ow` zJwKTkx8U`f%#?2@`6K~w&pX9oUWjjHc5&|kZzsKNd+sepmCXmC4=PK@!_%wH+bFDf z`3Nljn-8Jn5r|da+%O0l(-%iJDM{d7mLcRcJsUVN~{NUO7B*-|8DCq z#7gcVN-{6vVxEzlb_{8&6rIVMVw$lg2sr6WyRGKzFtp*b;7nxLleun!{Bu6Xf*tNa zl)HG&(8n2T8gq$LXrY-PN)ctOw;X~iEr$q8h7E+xX6oym%!AW0i|uV``;ea)2zSy0 z49<=LC*<(yN^fzBEfMd{J6lid%uh!QhG^{h3xLj!&A4J;Ew8rn6IF<~+ZhAQ4lT}b zKjQOzhd0u`hnu6%)(4c%mzQ!;@~m>BuezjO6wcbv8@ipwnb<0xN)+uT4}yrx<0se# zG|M7dssUl>SJVs=ok9xaNE4aT|0QG`SCM--XcD7CRkZ2@C&9bZFto~se&!GKOV21J z5!g;N#Cijo;3|!b`}+m<;o<>G42-nDL6lA$IXrm6wc9*rqe05DNi?qg$6+3Nr9@(q zXiXXTG^@v-c0NWQ>ztT4ppRB?br8*oonb6$7w2*a=uV-kILy;8C{k&_Wo6)_Jl`)K z_8a~fcAigavjsX)B(E^0pi^DxG?6JM$ZS_AM>ikB@VbG>NXp76nl{Q)y3!*JOq)^$ z-vrWjc?4b)c6cs#xZ`S$&(VyAYaWuKnPwt>n7iCP^UdEQ0|_u~XYBj7Pb2Jgn0==E z;eux_>+DNMu}wXA1hb;!S*W8gE}KNxL@)-+JJ$7Du04o;xGbVkbNZS`)h0Cp+o zCOyEw0u9%l%7J{ux{@;l9jnO$YuIyQ--epVTrAfTt}FUgG?=@@UQP6Mw6!NpkVQ1@ z0{XakThbS(s2^Y#~lc%Mgv-O0c_d%|3iUg7LNbeFyunQah2M&hap(04V=CY5J zrmQ<#P3flCHs4p7B6rs2>B9`u@?oOTze#+pEWCaR;X-v%JOUE}14LO)Y zMdPLE9*R~HG#pRaBaJCva6KgP2}pEe%Txu+wfx>D_=fv&N?-aVqHL`#B4KX8PE zFCZr7NNy~8^cQPa>)Qpj&ra^~^REJ%?QYL4QVV{=h4At{ zw;wQj#gj}ZK}BHxvN&YHY}t_}v~B@Y+BA^5!m2k~F`P|9Di z&(S6iG9$))e!IrBT^uTKn0jgRMQ&%|`4F!AwxyMclgep+xNMhaPKI_mP_^e1Bym|M zm>TP=mD0ure${kLZ3h>2r*Msnv;i;1gW3}L1P0H8u=N^Mtjby4rXlL_>A6 zfo0<@9%ewymRI^h4rkX$URbRgjkASxrGnN{rjC@8{4p`rZZ;aXTv1+j!sY{QM6SCO zh%%BNWNFw2yc9mthxL9=!zye3JS{PKNOeKFz4~dymc)U)u)GDthDsXHD=CWu2ZztF z@Wcn3rREE#7iSLl&S+|#`!&+O(?PZ>pJ1J>Xwdj$z;jJz+TJO;>x_eoPlbncs2uaZ zY|&Zkh$1ZvnnSn60Hh)!ciBW4drhw=C_1!E#2Khw;>Hb99@O4Wf;F4}rrlH$@YDZ| zd}Rxra2l@#x-wE}4oa>vvnBF{cfnWRs=E1$mEj-51u81DlggL*8vZE@DIS z9z5JBl>AN>}hJfe8F_0A=bwO30~H{yz;^=D9NPy~BRKk;M>i$q=zAW#EVY zz4#dg5f?kuUgT3ZyVQ_23#_y52vCtl`;)WcM4M0se*cLFuL=YH6FPEOlnk>kz*k|w z`)4(#4`=RB^8(YV^N1VTEd(idC5j;U5^!cbiz1dT+ih8gH>EiuD9c40IlO-D;Z;Tv z2E4RsUI6)49QI|Th`cl(jrfk{qvck6E)^6IzT;k8ZV9sWeHc;`C~)?=zS^yyn%aIlyKPyfA*+nXC=NsUfJL)d zawTRWHL-Cd*RE+EOV{eE#F4ZTfL#*p1Bn3f@<0|QJgot}+i&qa)kd~GGoeTu1uHMfg!^Xo#0Y4Ns&PIot!x@2gJZ7NoZH!0hXX|EWjOZs?#yyOdAbZuh)Oz zfeJ#86^D5`i9F`Aa>U2kll4}|%aPjTW7Z&~8vJSeAcVq6q5Jyj%uaWmt+qRwN;$(7 z%4h2dh4}}yblPMN;2KMQ!q(Uw)(0!6zwq+TZvJV$`?jXs05OXKR<=)!{2FQklNMZT zDB9mYJYZtM z%(OyyHBbZ|_akh>Jp2r9N8!EI#R}b=ur+~RT+K2^;~C$wO%@^Vg$X}c%%S)aYotot z(jqFYNDnahJHTFLPWTGkr+!*=ncaK4(M$KGAoQI`uz%jk4Ai--6BegousTEQy(jY< z%D&B;KWV)tNen5^a|U1$7!KPi(M!Y8MX`v&j5}EPWzIiw#&1feY%GuR2=|XYmZ#=- zpU__Ydh_Q{dVrzt3J!Vc%|S<;NwMQz;+;=$zo0H57}^MLQXRGyfUmJj^Pf+*Eop|H zE2y)lyP-$%tg6DDN}wVyEc2)ay2vM3ybMWCpW^IIi?DH%)-BxKUE?L?hxy6=@rk}N z@A^Fsh|M<`*5S4&+E|V*i^>oL z^f`ZEXY#Ai#fRP=UPddvHXmMvHXm@zX7()I8d^k_4Hkc*eH(}yr;X_F>Y;yfi8j^@ zn3{8Aa#c?Av3R{*uMS!%klxnk$HmY_t=`S%hQi=fBRW`4QAFrkCE z=XgE~kz?FE>b1dwEBWSIzCV<2Korj>wId7SIhkNv#X{8v3zyjB@rYv{=t1!4`HnsT zID?@tLvy0NfH7-lwz~n30ngB@!T00?_Lopk30-O1d0KTnTZV9)p@|vg0~UYcn?Ll) z?@`vIH(YMlo4jxeOqN;lCqc9HL-#?Wlg8I8QcKzP zF*j+?xTH7o8X(e&%DGPqJxfDh4)Q1q9Jkf(#_B;sp9O~dICxR~&-qB282JOIge)}t z#eRvKFMr^88$uf#rbi0Xd%U#Y;*ZUG|0L(5|D2EI1D3bm17^{^$mY5be9nAm4_Tmm zA93wGn`uj*5(irUy~p`Xs!T$k1SH>)uV3kXyu0;7T;Ee86WU~f)7#FSn(tYd@U${U zThX+;jlOm}Xle9=m~3tF@C|b|;ghdH|IjHC&o}W@RlgWT(BZrj=)lqkjPf~k0gIrsh$673xI0b+9jkQ9WeB00Ym@W(DN&+Ai1xXN+rA6>g}Z?0Hu|O{%psIEy8&h;brZqf_LC)vBb& zzlkbV$6_@bEZSYl(=O@3s7AJGcZ%lQh}`^GW5)e2v1;4L%|`0OA=MorbxZ zp+HO}+5x5W<+}0Gi~4hp)mysZq{sv7cs*O<5Fst}*~b!`P8t}N`+&*MpgTAc;m{mJ z1WUNMHH;WM&Ee@#6Pb^+%bu1fq;3!;i2^oE3}5}6J;_2QiYYi_Rp6F1Wm1s^v~)eY z!VHgwnirT{j3>CE3_D^}JUPJP`A8i?ASVsHE_<>LYkUw913FYuOU7xa6{C+ zi`;MP{qpXAE#}KR4=v^9NbDh{T?Tm(4vb#tc-=FJeWJd)M1G9K#<|9r+dgN&CZ}UI z&sh5!E_!3v;#f7}ax)V@*pXe7Bff<*EJGv2Ap`?}*+IvR5-ul#lFAzT2eoB%9UIwphwJrLY})yUE4XkiT?_t{>Lo6!6#SZC zdwrXR=pCj!Gkd^Ng1r=`2&M^(SK4Lhv~5x!NUxx-HuPR4+lt&0qbLsZQc7p$Ae~VN zP*u*>S5G(%7!n}MtB({3+Nr&zYIcV=1Ol_y^=vFc-+sdu92|w*JST3}RA%rqu%h$; zBZV?>2C3qksQSpXTsZ*pP;97{v0oBn3UwzlG~W>}36Dq6h;?_dUQ;EV(ijtmXK63? zJG83uzQ`R&1EJ&BPtTtC$IapT4c&K)ppY5=U9^kMX1!?uaT?}ijlzK-eLydi`rNcP zje3NBQz5l$uK<}nS=@d^nq1+$AuZB>dhBJ6UT<(rT7bvPHKxP}-V3MkTv&QWC@XY> z<)DQeirt?9C$>Tq%9kL~R<7R4F2aaMu_`r>ysOg4ka~hS1t|;!PogQTq+daY)T0%D zY6I+AHEMf$nOW~NYw4BRMRuqO;no-4P)RHd;^{zctTQ`j!-og}FM@`X z14UQ+Exm^gFRcH=oJnQnGwYcSXp&b#YqCl7yXTe=9jz%FKa??9i(&tIX=CUYH=whm zA?;J3gE~2<)Y9*Oy4k>nlsztC`Y}Jl&BXiVj)T_;8~*y+VtcguygSkhq!`}`8{Tq9 zM!VG5;zB9y%$m&5^ym$m5Z(ujtuw7TpHK{V%6a!J2L|9>;8vya(JZ!ZPH^;ku6zv< z>KlaQ6TZvT`GLPh5NripY2h;`DaU-;r>@7;CzeCn@9!;%19A-e=Y9jbfY*fm!SS00+J*NIsb_{b-D7;dZmo- zInzDG76wZ^5AaxnAi()I&mq?0{xNx@UGtyaYN;&OL zn#7Ql6PW(R0d75t`3Y}07Lj8&xJw#a4y+Jk^)9#@YJD@u-bSrjT--4QQe;E4oYZXQ z11YLT+$$_?+~U@^5jpDuo30koZ-RX2kx&R~FD@J;W@=R%tOw9g}g`rspnMlHFhd;W1{4=}i> z4>+M#VNOlIpWF??0c@Jpps&J|runzSj%;iOM-Az^hagWWozLg7k$L2o|2FNH)v|qi z&hl7dTGz3;CO96hhIowMm@li~OqlR(KtLH6MG4zC{EV;S#7S+ddXQuVU0X;CRNr>y zxQ^OR4qdNkK5mDl5EFU>xv`|L6V?WWfY@@3}kgq-p)#+&n-gX-7VpzrJT z?BNAdhBAxj{i73zl~r_x_*uO3n@$w45^}Cw^qv-ji_Fkxyx~$ODbH_`(=l6FaqxsY z%L2pEU76Q&TF}733^zHF8iP(=3b4HacYZUH9$;8v4T+{SKDV-TAP~>;P`h}3QzZ#0 zfjipYVHY)SEVYiJvL>`>dfdtW%E(?i`W*DE%Mp6uQXXh^CknyrBG{hKS7Zj>kDr0?R^{3R^uPU0tnysE<8ev}C{=^p=jRr4jz9~+}aI+gxSB-~6N`JYYr<8%MrC#gBn7?ktT`XgCFRDN#$+swS@9$=dz}OYcfR7oN_TWHc23VyH%6~&T>g^l$ulpT zo{((g1xT}HjY@B4%Z3i=2Uh4@R*8;VD7u~<(!fY68ennf_SOyp*rzUq813Ew5iQXs zl~7aXcbdm?v1HXWCI(iXTp!Us&>;pYwk(%|3u{gwm}%HjLVhE${eLDNWCne_kQ)TUueaQf!tWR;A0}6@({Z@ zbe`q{_i##QOp>GnR6E@KAlIl{AF7F28LF!doxb6>Xhd#8Y9TTi-KTH z#9Hc{m+EAadSM<(gIz6*vgC1$g>4$gaX^Neo_R6DgXZ+~W=}0D=eBC8eIulb)nk?< zB;UP9-4e-b#wMAeTczbJLBvaWd;!qgiFt7mZfJ{gWzifg>d7U}SiIp0S#xAP-v;9V zaVcV}o5JV~AKE?X!;3c;(<+g81TuGhW zS^R!Ic3NWcWQ{xi>Cy!wPN|&BcVJL>uGiYN&>f%fby8<+blz~;GHt%#7rGJBDk(^v z*6s;a;XEERg!CdmI$1&Ux`IbT;ZbP#Fkl@f-(mg03U;ABVsglmKk$=gz|2t$#HeUI zy3>I)bc~_qn`{CcYu$p}FqC4Aq}3}|ve-DZsiBt4UKY_I>{|Q@U!}&thghScTS)Pe z*Tr@u?HN~egY||iCrS_>;_wYx(W}N|)qvaiM1meCrLaWAg;V(J`Av$35J(yrr?}99 z4-&V)3TdPWybo(^iS^*SDVz5v5P6dmE>}7CY(<;H4)n3t9?;c+8P5Ar;iXU}2B9lF&+ckKym> zpK}Z@f=w3&e9I*Ig>hti>5i!f^wEkYxxDnMRnGFkgabUT)!I%&rUxy5N9j3Dh8mL-COt3zmJ#UPky3Y(1%b6fm_3g2z4 zVuaATth3&7G~$CaFl;S_4V%OCt%b)eR0|%SZF`xcc@t(4#G?y$WGo^-k1{99ZfI2RLOW` z;PBl!5)0xQ6Q~R7&r$z>C^gF;*X!^5CoN@IYLZ5e%iyFcbH&GZ&+<1gJB9IR-7Dmt z=RblvsWL8)p7S|v4KvsWl*adtcq_7@(|btUS-8kOHs>aJ#|jZgh@BM0jUxkh(rJ^& zlwR5xyk0|uI_l6Rn_ktpbih%YO}=?eW-fK(BKv$8ku7~(&+d2&z}U=$I@^e;LWxEG zM_EJjn>tZN@J`t9e4;Ux0gm86+&FjwZ52l>m-8%XNOUN15)!*Zc!j=W+oxcD`YSWjt#g^60g{0ZHQY>UL0pL0e&D~Agp68&YEhl*x@s2;Wki~FBZ zWLW!3q4OEO(j#flh-31LZR13_vD#Eo48_HEEO!>)=^nq@D5-L(dlDM{>t^Z)a5s$HQ7a?sh2Ye(RaGL!_P}u#1F19GHE!7?Xj7`dMVq}F@Op9MY(MW#?iSjYZV&a6e-o;} zy~1^vH|t;XJDD9~QjtZpjOgew67`Sw4J?<~ASl!WfMADrz@N__X<}}M_2iAPd$Dt9 zCbvtMUg&rjm(50)LFC(NErWFn5<>eD#BEvgE4wbSXJ7YQEh*H~O6N=Gq6_^<95~2w z^qHsvlQ+6$P~494_VbVB`er8A<^wzuHxBL`UHsC}wA8p7h@F$rbou}8fBsIP8p@qD zeqI5zu|jxPxDbn;ijnJ%vul8$sYaR}nZHTUCO*VLLo{ajmkjE=|GnSh*)|FjdxQyl z4Iv&{-)%4#vD=cFSK&M~12m5RZFe7MH}mC$xd6y^%4R7GOc6Wh2^#=$Ab#-!NBrm{ z1n^blSe~l)?O8x(!5Am$nvgL?X=C4etcM?Oo}YHymEB>Tj>9pfa(@Uw;}3d(h5Mqk ziv+jdB&E!v#CZk za|rTUTaqJ`NC&LdJOZ=@%n~^ZtN#r@j>uU5Dk~`pLpu}UKi^2}C<$ERQIs_#R@6Ff zQ5@!t(;}OQ7_)Xfd!o0oul6_ePG>6?WBEZAr{0hkQjObOv~P9=_tCA~gEXTS>44IG zMpqIKGaT)A_(Wi*-2%7GN+Wdr{6sA@^-B)`+zzj$$rNB{dt~fc#D_Ti73dOgV0-{H zyC=AjZHo({LpVB7!!EHoq6F}Y?wIeznIoyht=Q3Wws}Na39C~a=20mM&CaBmiZiRH zyPv$+{O6}*TtLM4I$g~NLdXA_VK#7nHM^xEavEHQKutyePI{MD^klKS96<+-dAE!9bkFaSdQoMM*3G-ITXNw(F!*|ynI`?wg?Qz)68f;zhRiHh2TtwW>2bFNMDLr%%HWY*1+$Y0_f?%kHU zC$dF>BEYwoy#Vu2p}W3pUsr2=+(U8WY+h_Bu5iKG%c$Ps z;g%v=J&gPhEpz#7AwFn3lvbXr>+1yaaY`fMx_-nU;BjG3)z9B_f{Z&|Ef?Dz@6|SB z5M^xa`5HLN9L+<3U5%Xfzx}C zBn264a9{`ucN<&0iDfPauAS)VgMKAld(iJ_O zP&MwqX~+Kges{Zmj2TI(IiYgyS}raR8GKnq729Hf>@{={R(yz6AVjG#^aJ~Cw#9de zCU1c6WrF@|yOh?4TT^sUWIl32>>L^Ibexe`IA6cbXE-=|N;khz2yKsP)>>DAJ|&wwdZP=2Bq~1>s=&qa4OSCwXUkS% zv57Is8X6^x-!)myq?oZEov`7p{GF|^HwicA%(aN8*)a;|tANoiU$tMFKv{_m^)0kK zovuso!-(iN4SqGlIRT_CGsy&U;9szlw9Ueo)$LT4 zNq0e0C#Drgua~J6vA`G>G~8zWbBkevC(FAe7~_uE(+IRYq@YIm*ADr$#sA%Y`5jZr z8!l;BVg@%$+;`l#drM32|MgLS6-~<$(bqiT>ou@Pe2aT^$q3zCtIlR=y=-@;5-7Td zC{Bh53#kyroCsMkw8u#hadrb%3C*_i7?QEY&g*SRe|WWjT=`6sd7ov`ZqisFif|Hd zK}q;7G$9Z<_MmyZ<#+K3F_Uy6ZL%vv;-f9D{TE0S1S?(#tU6SkMwxLb#aW{M>+isQ z;(1B&T7SEi9=VkcKgT>eM;H!40EJKlDTgGvn=M{Jz}`J+S7gFeoFk0**ErF?CKdmp zyR+qOmHAlOE9|YrSJB$$;A)omdK$|bWVQ6vOfbet_#-pMAj%~USyF6D4lyK@O$mmS zP5)h)!Fnv4xKM^hs8lrUr!%?B!y3L0Jj*#=j0o{zH~XZ&8t2#i_Jl8hVS~*zK!|CF zMEfojPl7Yq!7c*xhJFT}yfpNl?#L8G6gbZH@*~TyZgF7>e+pQu&W6E@M%WR6=@8B> zECaf8gyF~rP>5}ia&(is*}?+36+z@8EsvWsVYEv@`qZN!LHl|IS7KWyf%LhLfDV)T zM;|Xr)FN>^S^f9GX?fFwr~ zB)cy5Km^Gc>E1gs`%R6mW&;0=R;cBBPw(9rz}-WX1Adkzu1}VEN0k~7UJjbAB0_e^W#{4i) z_Q#~=S94ceTD>LJ2&RIFqlG<=sG!_A!dSQrl*46G3s-Zytxst1G3k!0*f|rT(=neh z;J|^hfAd$QIeI;Z#sMKLF5{2{SF^FFRpHqqhvKt4qF#cDj+kMBz;SHET9xL=dP#IP z!w_>fl&lU>CDDbVRzp<4arNJo$?;Tes1+DH(CroWwT;eT!7=JbaF0;xm!pz@>)ZJq zwq455MPf{6SEDT0%o_E+3McUzkc=ONCWj;R4SB;Fg-yDL(b@Yd1DJ-1KJ9m22K1-% zFV{cid2D2^|8^~=LrVXkNG6b+Rv8+~e^zihRnfq1Yb+YLwii`X!XfZsNJLe_V!{*} z|8`S-AP<{hjPpP^u!O+n?tPF%oBokjubX>_GII_KWdZ>wv3~o4D_XLzltk2A5y1_H zhDLrT?V8IrtY6?))JVr$($_FqmeAqb1Y`C=$rcr3kv33{bNI+eq=KONh{sJ9c<-Ah zI3#pgGJ%wgPSBXsNg=^3qGlIMMc5m$xE0@HN$bZ<*u8`t^f+IjU#^ z%juZ0q4tO(L@*1)CZ*ENj0WiKSI}TeS`_r7$#2)od(2}KMSmvU5|@&xj(#TH6Nas- zqn}AfQ+cN3-%%@9rwUbmH!T(*=S<`uO+Lq*13yy%<-0w78rHT2M_^Tn0?k+w)7Vq94$ke-nR8 z7*s+#W5Q3@$vy$4Hb>Sgnbq{$w6c>!wC#7+>I&AS=*49SY6^sHzoN#Nq{}=sF`(Jj zKE$gC%nHP2#D7Mey_!J$ztj=+i_LC7TfSe;9&l4UgQCQcpXRvCk5ZpN!C`tjFQA#@ zKdY`iA#iCJ7e%b37D4EjX?W3+2A85vPQzTzX={@J+Hcd+gWVcN|LMA#+UUB#jwgS> zS!x53bBqKr?anW&#I1bW@96Pyq~(?UbRFHVKnngltVzrH;iXs7Pt+q?U8IW}zGH(y z{4Ks8e>}T*kNiEl{uf9`k`%jz3(ofsyIc>T zSGU?*W4{{q8%lSAN3GlKo8zI>8Mxu}CyGB!r9W(N^#ATFN*+F7piQX~*CRjQaHx#f z$&JPDyIKQxyiQKT$dWPb1ctfba6O)JMf`p}liGi~mcI>DDdhGKJiaSgj=BW=0d2Ox z*H;*U9a-;>Kp4gaV;p6$dT+>6sRouZWVlI}~{bOO$VCNOVhxe&7(+{I!}k@aXfvPpsR^+pvrcD=<^3*Ux* zy{4ngd@myiL%Ffq-tiKV35D^@gU?(EqN^gVV+ard!)Cd&P##gGJ}z$X^w0v|XAr6= zVg*PgoM7gPh%c)>Ui+;EtMmYa3nW=DoKPy!8992whmKAZ(A+M9(}~OnD7f5s_7_3H z;g~Bmjbx8#;!GIYVdBMuVL=j+blXe<20_G0$oOoFdK@JYDK|!8%N=dmlV$|R3?#5) zUC(YUFoj)MCJSi1-bL?}wps&pkp;B19Mlj{fs-(G(h0`d6%Hy&8vtJ-%QcCKLtwXa zI^1a9G{G20!Ll`gj+2y?e~)c$c!JRm+U?LxKL!g!b+GXXMQD911pS?~{LQD10iHuP zRFVaBEJ~#RXJ3iqb#yhv z?RP1ur@v5-vAGz2(#iWGG`yCp4_GUqca)FUMNn|OV_BO@bO1I~V{z}RRb(X}M2#$x zndUdsS!7rqVCFO6)B(o6amtTF+GIhlp?J5PVWN-X%ET;8c$$-pHR1+sIOwy zvb?gSfxb$NChO3+OA6ntF4;aMd1YB^+rng$io{z{7^b08hwwL9L-WaSEyld|N2WVr z!PmicXx%p8p&y!rDB0LZ_KQJ+F_nQ(jI0FU`NyMCIV3B2X&U3?OX=dd7 zHb$0aM$2zQH;ExJFqO``mf2%^X(mYmGSxmtCW#~WTe{FIBnTz))j;Zup9@UB=dSHl zCo}Z*Z2KKo-=V9|-I3%h80vb%Z-ua{ATHo+Iur|8~4?&x|Lg#77h_rQBD2O`Cy z0V3dEn30&Rc1N4d?D-9~L!D6Y7&vgrrjqq0IhuaGqK^=~WU#23y%7@K`b8 zX{R!CROonIaf_DhL25rQYLh1esW3hq9Uq^5Z1d^WJw#!~x8QsZILNin5TPdOtg0d# zZo&@FbK}7;b`Me6WSS!nd~c^?Xq&LJ?5b=&ik0*3?E2HuMM&T(7~{xpK|<7HEkz^P zWRvJ(yi4ccu_SaA^p-VYV=!`B2NRx3DT+M77#6cRcPsG zAaiF+E%genvnOe(#@UfASsDgJXTxLcL2r_5&E+AQQKslWKAyijiVZ*&jB#YNAX`|2 z!qO~)P1aiuY1!Kt+Lts9;FzvOT*9o$-G{AN zRZwx3q77)031l+bQoW)jb=~)vwn>=G<#ctNr$vZPlU1KxlT1gcGCrMt{u0tNJ4YBY zm{1T@oTXj^nq&f*jCSei-bs39XSJxw*SyZ@>10of5S=EgR$Y@q8l}cK|9nPAsC|X~ z!>1~lK(gh64QU%RmYB)32?y3&f{qwtKQyU>uPhl@_XIE4v0YCxBzqt<@xTXH)+CAw z5Q>F2djv#Ha7rm%g22#U2kkJ@XiIAX2RCV!~|0;~FR1=@AjS#PW>}!#jCm zVYZY{23^c>QS;h3MJf!8{L@~N>UI=XTxf)93!c~O^N*)j*O#Y9pWc9TK>G>{SamvR z!&jvm%6-Q}5w<#eSX;v}u<$knW2k+2r$`)$sk0KGB8kXk5xC|aqUd{YN=wF1 z8%&Jz!Bm7K@&<@#>FjpBI=|NXyf7G#zcG>sK`o19}^(vW-XCx@r_<1*UkPD1{h zqvR)eP_U#+Y6rtn!6fM_C_g3~ISGS{VX$0Q}S}u7*>m9mUVxorC)e(6wFRYA+ zpvPfDG8;4=xdnBJ(?#4$(eg-gbo$4re++yC*vgbyDI&8acT)OFk!{Uzf#KxF``yE* z`Q2hq{uY7Zeqhglld;zzIu*m4Lm$w@__eohE(bC}UwwYp26D;K>oKN@2p=h#&<1hU zoh`K?T)}nrc*tg;Fn)`o5T-PGGmMYDJm^i5!{zc|GRhQv{l}-%ld~_MLaOzmDJ+@p z&@J9c<*7N8j(i9yJK{|EBdMGSF|9jA7l)kg3GeAwqTS@9c(}InDr%I;O`@%KO0#J$ zMeH852S?2Y2A$8>Yi$+Ypz==YDqA_Ss!L`9yVo@~e{@gQxAf6xN)n85=c}+POM#4> zq%3@HLuo_mL-Q)gM(7R-LBZ*e7~OXdOA|SkI&$d4;c8yrrNCV}aHdp;xH$y|76QQS z;3at3Tx~vQL5~YY5Kc!2v2*B<9p9FxnTdQz(WS(B5tFQO&Pe(b(VPim(-CUioFk0n z4_O-IP7tR8lgrE)H+BpnsO$?+X-Y}VhVrRgu~1WQjr zro)=MqW<`DcJdZ>j3w@h!faZ=kV_E!;)Z|tv#UouzKIC?_Oq;f=|{4OlZdlhx`Ju) zOfNq9x3?2#5i$QKcV}O(_qX48|CT-iIjxacL63CTVab=>Vu?GQsWUx)Gp%tZw%yR^ z;`rNQdAGq4bx^9PVx_xExhQY&G)mP>GkHT$@T@UKGtJbKb0bexC0yS^RFQ3SQKy+? zq7wXiJ{mDqbC~&cl4&Q((fXmYJ-fZd@QB}@!qHyZNYe|&C#di?!2BAA?2mZEjXOI1 z*QgKvaS?F?!Q~cQ#wLPG5FfE;3wx-jAm|9Dmk6@ut|H#_5C>Mkhj@Hxx`V_Y=YdVU4VJvlcR`gKVbO{LzPqrBtQ zBGE*}Pgg{tL36~aR}%0DVRbRu}mE!aRj!SR9u53)7a2=n8I+4dW* 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

  1. JAd5qnEIusl&zpQGSSjKkNK&_?tOg%#y*B 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 literal 0 HcmV?d00001 diff --git a/src/rust/vendor/windows_x86_64_gnullvm/license-apache-2.0 b/src/rust/vendor/windows_x86_64_gnullvm/license-apache-2.0 new file mode 100644 index 000000000..b5ed4ecec --- /dev/null +++ b/src/rust/vendor/windows_x86_64_gnullvm/license-apache-2.0 @@ -0,0 +1,201 @@ + 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 (c) Microsoft Corporation. + + 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. diff --git a/src/rust/vendor/windows_x86_64_gnullvm/license-mit b/src/rust/vendor/windows_x86_64_gnullvm/license-mit new file mode 100644 index 000000000..9e841e7a2 --- /dev/null +++ b/src/rust/vendor/windows_x86_64_gnullvm/license-mit @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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 diff --git a/src/rust/vendor/windows_x86_64_gnullvm/src/lib.rs b/src/rust/vendor/windows_x86_64_gnullvm/src/lib.rs new file mode 100644 index 000000000..0c9ac1ac8 --- /dev/null +++ b/src/rust/vendor/windows_x86_64_gnullvm/src/lib.rs @@ -0,0 +1 @@ +#![no_std] diff --git a/src/rust/vendor/windows_x86_64_msvc/.cargo-checksum.json b/src/rust/vendor/windows_x86_64_msvc/.cargo-checksum.json new file mode 100644 index 000000000..a3738818b --- /dev/null +++ b/src/rust/vendor/windows_x86_64_msvc/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"1a525a53037c66b2eaf6428af7be96be0caaadf7b2bb55ee854eb1519a1d8d3e","build.rs":"9a83c55ec67fd48d6df4adccfbe0f3245f4002b543cacb586005d8991bddb29e","lib/windows.0.52.0.lib":"62a75b87a720e0e9bb3cf526c4b95a456c85440be30bcda291ab5c7fdb1465b4","license-apache-2.0":"c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b","license-mit":"c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383","src/lib.rs":"bdf6c7cf1fc01f69cc1d4e52948d1f246fdd310e6323d5dd1efd23f1daf382ef"},"package":"bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"} \ No newline at end of file diff --git a/src/rust/vendor/windows_x86_64_msvc/Cargo.toml b/src/rust/vendor/windows_x86_64_msvc/Cargo.toml new file mode 100644 index 000000000..baf877078 --- /dev/null +++ b/src/rust/vendor/windows_x86_64_msvc/Cargo.toml @@ -0,0 +1,24 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +rust-version = "1.56" +name = "windows_x86_64_msvc" +version = "0.52.5" +authors = ["Microsoft"] +description = "Import lib for Windows" +license = "MIT OR Apache-2.0" +repository = "https://github.com/microsoft/windows-rs" + +[package.metadata.docs.rs] +default-target = "x86_64-pc-windows-msvc" +targets = [] diff --git a/src/rust/vendor/windows_x86_64_msvc/build.rs b/src/rust/vendor/windows_x86_64_msvc/build.rs new file mode 100644 index 000000000..b5caa2baa --- /dev/null +++ b/src/rust/vendor/windows_x86_64_msvc/build.rs @@ -0,0 +1,5 @@ +fn main() { + let dir = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + + println!("cargo:rustc-link-search=native={}", std::path::Path::new(&dir).join("lib").display()); +} diff --git a/src/rust/vendor/windows_x86_64_msvc/lib/windows.0.52.0.lib b/src/rust/vendor/windows_x86_64_msvc/lib/windows.0.52.0.lib new file mode 100644 index 0000000000000000000000000000000000000000..cb1eb734dcb508a2d94d2f2f118de1a3e61b5364 GIT binary patch literal 5181746 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

    4T%#$mP6y{wVkx+DPoh4(vwydC+Z|m9Xa(+e4 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�%= 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%0DioNvmIVUfw?0_4WRLf`1v<8I4BT= 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

    i8m!NkUD`;{OT?#wz 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

    I3Js#W}VZb zYK4&5Cp2(jtq?UM7Zw@!#W9inQ(A`#nSE1=)VXemwZ=wXE(TXS|HQb;fY-bIX0dya9fmTkYGypFJ^-PO& zK6|!;&kE-%3|7f~swcM|V;ijw*Ts+Qkc`M|d3B{`OYS7s^in}B#{t~V;1biXwSm`puVRCSZGYU_FhdPOJoK84S z>T)x@<+xg|bA*V=C#+9NIX#WYk#T*_i8zOAy~wASmg{=4KH#;}m|WI$yj{*-aUeI; zbad=sY`$GGIKG>;2>S(rE-yl6bh3dyBhDHznnkLt0%-|09V{MBt& zA|{)<%RJOKHTE>!;S6|Z#1M)(k`dc;wT+xYjBxDF65{dUy>H%Sz-@pjT(yPKu*mi8 z;dnV>&VADZ#hMYbS_HV6Erg#Q_VzLjdO-n!0*7O$0H=eS-AT$Oc;dR~exyf@GKPwZ z9vtP#!K)^y4=Sn{MMMrQJ`yV|&|Sbk&S7VX{iQ+%4YYnc76f}l;Ly%Xb1zQo16Pd< zoQPFHj)3g~nda>222sr;A_u;yt;7|FQc!pT2Wrhi)Yja=Jw2wc>JH`&!n|IvWyYt* zGjJ~dI62RKnUK2MUhMp-SVdBHMqQ#6z5#FX8h4E-UmFfiBagFiJT4ovJ&_sLms+sD zWM=GLnEddt&5;V$2@S^D6`1DZ7nqp-PI77hNkxzTl)UTjpo`)~Vh(H?tuFv(7(rh4IWzs+BoE2B zDb6ha3pqczo7(%x6j|fEpvKED3``y7HRuiQ3=7i8=mFj)fhPP}^$|fx8L`Dg;!AX3 z8XX9Ma=qk`zOWJAtiM@fJ7pFZiX?E118nCmCG^wf#rg^Jg)h^9K`6`}SM+EN$9L)w z2Sz-!PU~Kt0lmCy#1q*|#B6KMzQQH^Bi;$bDxzHutS`N>#=)ntch z<@^*uek;qJDPnr~FyP@oVGPwTzD^ky6jr(pSw+P(nXHUlG^@x1F7o*R1kqeW5_~)W z!B}*nSthVvxC^PrXX*II>tR5zz!>Y@7VmF{v0}hTsaG^zFN`(XD^Q8Kf8+BuQlZH+ zo?h^qBo7PyVwC9g^X<}=7S7F7D7F?Ma-u+a7z8^CNywYeW3pa6Hf>peQ5$9*_l*dH z6KTlt(WaX>VRyqyWjsG)uY88z;j$?Ym=X6^LX<@BJ_UDvDVz~sdCIb13-&!ACUH2Z zPtx=8eLNZLBdd8V`Sf^Qz!l9l=8ZKuFZYcU5MDQRO39AAyd6vp0>W{?+()hP?0YFz zLBW3}2X^O+hXcP6KiAfXEcy0i^6}>M_rD*w2TP&@j3x~1NIP1}$ZuruWw(eyRv4A1 zxZOO@TZY@qzw|QE8MYMkz2))JB5X_or59v6Ja~Ea@~_j?Ca2rNFYJI2p_)U)b4Brl z#sXJW;RKi>QVVPL%AZx;j&(bm(%5pWWBnH=Oi(hB!7V<0!NHW>y-r2Ukb zT!ikEB*|8(nz+w0g(%D#gbin|VMApAoO7c;%7fLJL(?Q=GA-YV=FrG#Wu>{Y(+eZm z`h2WAeok(BHO|;;gnaZBHkTaxi;kWbC~Jo!5YZ^+3*r z&X0_8YAVu*o@Zq}UEQn@mC0OdS*`o%5N;*qb!0H+mL=qaAIy`}Nm#2@Z%7BoJnB94K~ZAP9DNBnWzNCfU#>n1IQQm6@(p>VF9pI@xtDzVq6xdEPR4zuTv z%hw6+0l}Pw5J@Iz&4KYPN$|voX_1&SoCRe-aE{%DTGB)kRIUN2UYhT*kW{#u# zmu9+Z>h^r}ma?Yp*k#$3zVoGyBFVNYvZT_I#Qp2<^8j1`kgt?J=bqEmv9J+bUJ?XB zFycmXj?L7Y;f688iIZS4z>COl29bioBxo=`t)#?+Pn`L}0$pmHK zRWqUI^Vchmty%*Qcl5mIQw)6EZ!2RCJc3)leZ~&Qf;SlPGbdaiR;)x2FrkelD?m$W z%eKT8?&znkO^jX_9#cO%G^655%LFb_zXyvltWuudVj8Zd384-GOWCfG7SDyw2Gktw zOl~EP0Z7q26=j5YodPlzrRage6iM#{4`QO+6~5;I#_^ZMrqz>Q7_8d)^CCw?qzVY) zaUD4jPqsR2V$s@UZj>m<4G_4T`I;Zg3Zw-d=r{0#$VX-CiKC+gu8$mx(iSlw$bq-K zpT-&UX5AN1>5+j4(5F=yp3P=dZa8gR)#O4$ihOu9*@j zP+>OS%4JQX2q-f+P|LBy#{)AAS}Bh6dWOR_SExX~vlK;+lr!RS6nsm+Nx=#HxV~kU;Z}b8f_TEN6Zw zf!1I=&(p^XUmXD4#6H>qLXUftS-_e|#I=dXH6^OJ1{?s^WMYM#&9r}IkT!a0?+0jw zT4{vZHn3HWxX6b~<9{7&77RB3tz6d+W4HkQ1aH7zHgEhxgawLm$Vd(*`=AfnYT6(z z=Wn>E0H>?z2HvT`cZP!lH)k2J<FKVm-$5yy3oBoD_AbC$yz4mW3~XVhXCm zwVar!5^9)C5rMb##gu4EDX5mKH_v#p#q&6$#h2tzo(tFeN=y`MGM-PiFf>=Q)PYt| z#92w$*I-v8{!>WtTo&Vak}c(^6U@CU_+_qmJ>=^1zT!BkV&JQ{j&N`D;!23 z^yO;xRd-EpthQJy?rAl{g+;!oX3MTnPy2Rc4q)0`KSOxlzxtoj)5;($$Nz?b~S4dr*RmUp}U zhSt`159{axn?qb1-2-M&m_gtw%2eKoNd?h9N63itea&8_TWabR=q?a(2imopb~8fga-+EY_UsiE?~-`oktEEj5Q6DM z%s1n36yZ9}*fS*oV`d&!C?LHm6&aMk1}}x!gxNfuz+zzFs>uAio+6vR>EcbH70=l+ zy=mL!H+aKO3nW!GeB1$JczE1^rZc4^NT89b1}cG>uZNrhGrY2s=_?gckt-W7tgIf-G2Kf?y6@o}1>>NFjk1+W8!LJXY8z;dT}RLko3)Tl$nT+L9)a zrQ(pm#h#L`;C{|`Z4V4E*^_aYi}r zB(0PqhM>l0G&*Qh#!&H!%_Uodu?SZZo!1-bw3W=!mhJ^K+>Pt+Df)7{SxTe8q--CV zb?swS%|7mazD9z#kJvNcmL<@ySS_q!pVh(NrK!(*4gt z=Bd;)-5RFAf-HT2Mw0`Wf!S!0cdgQv4Hk1~E}`2Azz=*7z#MJckUXQdskV5l2|5DT zdRjPhZj>wOM$F+eudRMYIy0S3x-C?9=*QZqQuSNuX|?;Y(l#^rSvmt=_J7npG&150 zc^!{OI6ArFFOJld3CT2uqYPE8I7FD@A|+PxE~iefl7SZXhE866!sVLI068e>6X4{D z*%TAaDV6ok?GbtMIhSgOoE>bpT18q)$5exZ3=u$`Hb5D7@Xs$NIC!36%0N(Ts2eD_ z-!G4b=7I~ndJ>XK`Qw7^t(?O#20zZxl%gjAKhS%L(DdGL&lp;5vSwLjn=6%R^HT!* zqytq-p(z;q;bLoUc`ZJX<*ZPuZs*Mu5-;G${rbYns$e1V#-QxBM z`o`}EAoy1z#1xCv0@U+Te52`EtcFN24Ok}02vwu35A7>9*m|ONGP{y$)_y8zI-9!) zEw4rCt0UMyd^SFn+)lk-VEduXd*+R3G1N_oZ>X=>jnJK+XlyW`Qmmi}*2^ja*>6f9 znh8-9Ob>w!RGHyeCFwDTsPJ%Rh-wjbYPe7UH*}9{91&mw-{~ElC@N3IaRryM^^9ns z|HkvxEPf|!X;?UH&a*vcjL*0{*L1uwfuc5oTJxqsr@cF-k!sn@9s+jNM%ZR*k62`# zWx7qE+u43U=WQys-gCSmpT2lsU!(=<&jmoVb3q0k?OYOd=7I`7mjv!L39ybO;@i2R zKK=YSL6ZGUc2 z+`vqr$bJR;GXXf#jVJq*KvD9@EJ4oQ?!f#!vUK5Tj@Vn~sh}dUnL{Awfe%gZM7Fky)EZNJ z*jWkqN2VJ{JvQACEnA^xFkP>Aa-OBrSlA6EE9SlVx-+8rFf&3w71NX%fpIHI3{3bu z`qN;Ox3SOq0j45yG};W(91e#4pSR`ej6vwY@5scmFd&mnp^cK8$gtn9wwPkLX|Zt; zD3AzNak)O==+`a#2?e(3Ya=EP*HB2mgw6n>3>iNI9L>-oLme`q*gRP1%?R7l?X&ER z@$f8G{=$ayBW`lki;lpEa-CO>j%0DjE^xzhIiGHE)p@mlx>>JYk{cRpUrBLFZclWS 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 z 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 literal 0 HcmV?d00001 diff --git a/src/rust/vendor/windows_x86_64_msvc/license-apache-2.0 b/src/rust/vendor/windows_x86_64_msvc/license-apache-2.0 new file mode 100644 index 000000000..b5ed4ecec --- /dev/null +++ b/src/rust/vendor/windows_x86_64_msvc/license-apache-2.0 @@ -0,0 +1,201 @@ + 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 (c) Microsoft Corporation. + + 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. diff --git a/src/rust/vendor/windows_x86_64_msvc/license-mit b/src/rust/vendor/windows_x86_64_msvc/license-mit new file mode 100644 index 000000000..9e841e7a2 --- /dev/null +++ b/src/rust/vendor/windows_x86_64_msvc/license-mit @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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 diff --git a/src/rust/vendor/windows_x86_64_msvc/src/lib.rs b/src/rust/vendor/windows_x86_64_msvc/src/lib.rs new file mode 100644 index 000000000..0c9ac1ac8 --- /dev/null +++ b/src/rust/vendor/windows_x86_64_msvc/src/lib.rs @@ -0,0 +1 @@ +#![no_std] From b09c3337f8ea3f67979ca20ec3eb533b95037553 Mon Sep 17 00:00:00 2001 From: Niklas Dusenlund Date: Mon, 12 Aug 2024 16:04:45 +0200 Subject: [PATCH 3/3] Build stdlib ourselves --- src/CMakeLists.txt | 10 +- src/rust/Cargo.lock | 8 +- .../vendor/libc-0.2.146/.cargo-checksum.json | 1 - src/rust/vendor/libc-0.2.146/CONTRIBUTING.md | 93 - src/rust/vendor/libc-0.2.146/Cargo.toml | 64 - src/rust/vendor/libc-0.2.146/LICENSE-APACHE | 176 - src/rust/vendor/libc-0.2.146/LICENSE-MIT | 25 - src/rust/vendor/libc-0.2.146/README.md | 110 - src/rust/vendor/libc-0.2.146/build.rs | 246 - src/rust/vendor/libc-0.2.146/rustfmt.toml | 1 - .../libc-0.2.146/src/fixed_width_ints.rs | 99 - .../libc-0.2.146/src/fuchsia/aarch64.rs | 67 - .../vendor/libc-0.2.146/src/fuchsia/align.rs | 142 - .../vendor/libc-0.2.146/src/fuchsia/mod.rs | 4300 ------------ .../libc-0.2.146/src/fuchsia/no_align.rs | 129 - .../libc-0.2.146/src/fuchsia/riscv64.rs | 44 - .../vendor/libc-0.2.146/src/fuchsia/x86_64.rs | 152 - .../vendor/libc-0.2.146/src/hermit/aarch64.rs | 2 - .../vendor/libc-0.2.146/src/hermit/mod.rs | 64 - .../vendor/libc-0.2.146/src/hermit/x86_64.rs | 2 - src/rust/vendor/libc-0.2.146/src/lib.rs | 163 - src/rust/vendor/libc-0.2.146/src/macros.rs | 343 - src/rust/vendor/libc-0.2.146/src/psp.rs | 4174 ----------- src/rust/vendor/libc-0.2.146/src/sgx.rs | 47 - .../vendor/libc-0.2.146/src/solid/aarch64.rs | 4 - src/rust/vendor/libc-0.2.146/src/solid/arm.rs | 4 - src/rust/vendor/libc-0.2.146/src/solid/mod.rs | 904 --- src/rust/vendor/libc-0.2.146/src/switch.rs | 49 - .../vendor/libc-0.2.146/src/unix/aix/mod.rs | 3355 --------- .../libc-0.2.146/src/unix/aix/powerpc64.rs | 644 -- .../vendor/libc-0.2.146/src/unix/align.rs | 6 - .../src/unix/bsd/apple/b32/align.rs | 7 - .../src/unix/bsd/apple/b32/mod.rs | 119 - .../src/unix/bsd/apple/b64/aarch64/align.rs | 56 - .../src/unix/bsd/apple/b64/aarch64/mod.rs | 14 - .../src/unix/bsd/apple/b64/align.rs | 7 - .../src/unix/bsd/apple/b64/mod.rs | 124 - .../src/unix/bsd/apple/b64/x86_64/align.rs | 7 - .../src/unix/bsd/apple/b64/x86_64/mod.rs | 180 - .../src/unix/bsd/apple/long_array.rs | 8 - .../libc-0.2.146/src/unix/bsd/apple/mod.rs | 6125 ----------------- .../unix/bsd/freebsdlike/dragonfly/errno.rs | 13 - .../src/unix/bsd/freebsdlike/dragonfly/mod.rs | 1726 ----- .../unix/bsd/freebsdlike/freebsd/aarch64.rs | 146 - .../src/unix/bsd/freebsdlike/freebsd/arm.rs | 50 - .../bsd/freebsdlike/freebsd/freebsd11/b64.rs | 32 - .../bsd/freebsdlike/freebsd/freebsd11/mod.rs | 488 -- .../bsd/freebsdlike/freebsd/freebsd12/b64.rs | 34 - .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 505 -- .../freebsdlike/freebsd/freebsd12/x86_64.rs | 5 - .../bsd/freebsdlike/freebsd/freebsd13/b64.rs | 34 - .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 546 -- .../freebsdlike/freebsd/freebsd13/x86_64.rs | 5 - .../bsd/freebsdlike/freebsd/freebsd14/b64.rs | 34 - .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 546 -- .../freebsdlike/freebsd/freebsd14/x86_64.rs | 12 - .../src/unix/bsd/freebsdlike/freebsd/mod.rs | 5692 --------------- .../unix/bsd/freebsdlike/freebsd/powerpc.rs | 47 - .../unix/bsd/freebsdlike/freebsd/powerpc64.rs | 47 - .../unix/bsd/freebsdlike/freebsd/riscv64.rs | 154 - .../src/unix/bsd/freebsdlike/freebsd/x86.rs | 201 - .../bsd/freebsdlike/freebsd/x86_64/align.rs | 197 - .../bsd/freebsdlike/freebsd/x86_64/mod.rs | 334 - .../src/unix/bsd/freebsdlike/mod.rs | 1896 ----- .../vendor/libc-0.2.146/src/unix/bsd/mod.rs | 917 --- .../src/unix/bsd/netbsdlike/mod.rs | 762 -- .../src/unix/bsd/netbsdlike/netbsd/aarch64.rs | 103 - .../src/unix/bsd/netbsdlike/netbsd/arm.rs | 22 - .../src/unix/bsd/netbsdlike/netbsd/mod.rs | 3178 --------- .../src/unix/bsd/netbsdlike/netbsd/powerpc.rs | 21 - .../src/unix/bsd/netbsdlike/netbsd/sparc64.rs | 8 - .../src/unix/bsd/netbsdlike/netbsd/x86.rs | 15 - .../src/unix/bsd/netbsdlike/netbsd/x86_64.rs | 40 - .../unix/bsd/netbsdlike/openbsd/aarch64.rs | 30 - .../src/unix/bsd/netbsdlike/openbsd/arm.rs | 16 - .../src/unix/bsd/netbsdlike/openbsd/mips64.rs | 8 - .../src/unix/bsd/netbsdlike/openbsd/mod.rs | 1988 ------ .../unix/bsd/netbsdlike/openbsd/powerpc.rs | 16 - .../unix/bsd/netbsdlike/openbsd/powerpc64.rs | 16 - .../unix/bsd/netbsdlike/openbsd/riscv64.rs | 16 - .../unix/bsd/netbsdlike/openbsd/sparc64.rs | 8 - .../src/unix/bsd/netbsdlike/openbsd/x86.rs | 16 - .../src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 130 - .../vendor/libc-0.2.146/src/unix/haiku/b32.rs | 20 - .../vendor/libc-0.2.146/src/unix/haiku/b64.rs | 20 - .../vendor/libc-0.2.146/src/unix/haiku/mod.rs | 2094 ------ .../libc-0.2.146/src/unix/haiku/native.rs | 1366 ---- .../libc-0.2.146/src/unix/haiku/x86_64.rs | 264 - .../libc-0.2.146/src/unix/hermit/aarch64.rs | 2 - .../libc-0.2.146/src/unix/hermit/mod.rs | 1023 --- .../libc-0.2.146/src/unix/hermit/x86_64.rs | 2 - .../src/unix/linux_like/android/b32/arm.rs | 550 -- .../src/unix/linux_like/android/b32/mod.rs | 244 - .../unix/linux_like/android/b32/x86/align.rs | 7 - .../unix/linux_like/android/b32/x86/mod.rs | 622 -- .../linux_like/android/b64/aarch64/align.rs | 29 - .../linux_like/android/b64/aarch64/int128.rs | 7 - .../linux_like/android/b64/aarch64/mod.rs | 427 -- .../src/unix/linux_like/android/b64/mod.rs | 355 - .../linux_like/android/b64/riscv64/align.rs | 7 - .../linux_like/android/b64/riscv64/mod.rs | 353 - .../linux_like/android/b64/x86_64/align.rs | 7 - .../unix/linux_like/android/b64/x86_64/mod.rs | 802 --- .../src/unix/linux_like/android/mod.rs | 3659 ---------- .../src/unix/linux_like/emscripten/align.rs | 74 - .../src/unix/linux_like/emscripten/mod.rs | 1898 ----- .../unix/linux_like/emscripten/no_align.rs | 63 - .../src/unix/linux_like/linux/align.rs | 192 - .../unix/linux_like/linux/arch/generic/mod.rs | 292 - .../unix/linux_like/linux/arch/mips/mod.rs | 288 - .../src/unix/linux_like/linux/arch/mod.rs | 15 - .../unix/linux_like/linux/arch/powerpc/mod.rs | 243 - .../unix/linux_like/linux/arch/sparc/mod.rs | 228 - .../src/unix/linux_like/linux/gnu/align.rs | 13 - .../linux_like/linux/gnu/b32/arm/align.rs | 53 - .../unix/linux_like/linux/gnu/b32/arm/mod.rs | 874 --- .../linux_like/linux/gnu/b32/m68k/align.rs | 7 - .../unix/linux_like/linux/gnu/b32/m68k/mod.rs | 849 --- .../linux_like/linux/gnu/b32/mips/align.rs | 7 - .../unix/linux_like/linux/gnu/b32/mips/mod.rs | 818 --- .../src/unix/linux_like/linux/gnu/b32/mod.rs | 358 - .../unix/linux_like/linux/gnu/b32/powerpc.rs | 824 --- .../linux_like/linux/gnu/b32/riscv32/align.rs | 44 - .../linux_like/linux/gnu/b32/riscv32/mod.rs | 812 --- .../linux_like/linux/gnu/b32/sparc/align.rs | 7 - .../linux_like/linux/gnu/b32/sparc/mod.rs | 856 --- .../linux_like/linux/gnu/b32/x86/align.rs | 7 - .../unix/linux_like/linux/gnu/b32/x86/mod.rs | 1109 --- .../linux_like/linux/gnu/b64/aarch64/align.rs | 58 - .../linux_like/linux/gnu/b64/aarch64/ilp32.rs | 64 - .../linux/gnu/b64/aarch64/int128.rs | 7 - .../linux_like/linux/gnu/b64/aarch64/lp64.rs | 73 - .../linux_like/linux/gnu/b64/aarch64/mod.rs | 938 --- .../linux/gnu/b64/loongarch64/align.rs | 40 - .../linux/gnu/b64/loongarch64/mod.rs | 885 --- .../linux_like/linux/gnu/b64/mips64/align.rs | 7 - .../linux_like/linux/gnu/b64/mips64/mod.rs | 933 --- .../src/unix/linux_like/linux/gnu/b64/mod.rs | 126 - .../linux/gnu/b64/powerpc64/align.rs | 7 - .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 978 --- .../linux_like/linux/gnu/b64/riscv64/align.rs | 44 - .../linux_like/linux/gnu/b64/riscv64/mod.rs | 851 --- .../unix/linux_like/linux/gnu/b64/s390x.rs | 963 --- .../linux_like/linux/gnu/b64/sparc64/align.rs | 7 - .../linux_like/linux/gnu/b64/sparc64/mod.rs | 930 --- .../linux_like/linux/gnu/b64/x86_64/align.rs | 24 - .../linux_like/linux/gnu/b64/x86_64/mod.rs | 834 --- .../linux/gnu/b64/x86_64/not_x32.rs | 451 -- .../linux_like/linux/gnu/b64/x86_64/x32.rs | 404 -- .../src/unix/linux_like/linux/gnu/mod.rs | 1410 ---- .../src/unix/linux_like/linux/gnu/no_align.rs | 10 - .../src/unix/linux_like/linux/mod.rs | 4921 ------------- .../linux_like/linux/musl/b32/arm/align.rs | 7 - .../unix/linux_like/linux/musl/b32/arm/mod.rs | 858 --- .../unix/linux_like/linux/musl/b32/hexagon.rs | 673 -- .../linux_like/linux/musl/b32/mips/align.rs | 7 - .../linux_like/linux/musl/b32/mips/mod.rs | 793 --- .../src/unix/linux_like/linux/musl/b32/mod.rs | 65 - .../unix/linux_like/linux/musl/b32/powerpc.rs | 809 --- .../linux/musl/b32/riscv32/align.rs | 7 - .../linux_like/linux/musl/b32/riscv32/mod.rs | 794 --- .../linux_like/linux/musl/b32/x86/align.rs | 7 - .../unix/linux_like/linux/musl/b32/x86/mod.rs | 899 --- .../linux/musl/b64/aarch64/align.rs | 42 - .../linux/musl/b64/aarch64/int128.rs | 7 - .../linux_like/linux/musl/b64/aarch64/mod.rs | 660 -- .../unix/linux_like/linux/musl/b64/mips64.rs | 690 -- .../src/unix/linux_like/linux/musl/b64/mod.rs | 167 - .../linux_like/linux/musl/b64/powerpc64.rs | 697 -- .../linux/musl/b64/riscv64/align.rs | 44 - .../linux_like/linux/musl/b64/riscv64/mod.rs | 726 -- .../unix/linux_like/linux/musl/b64/s390x.rs | 726 -- .../linux_like/linux/musl/b64/x86_64/align.rs | 25 - .../linux_like/linux/musl/b64/x86_64/mod.rs | 917 --- .../src/unix/linux_like/linux/musl/lfs64.rs | 241 - .../src/unix/linux_like/linux/musl/mod.rs | 806 --- .../src/unix/linux_like/linux/no_align.rs | 130 - .../unix/linux_like/linux/non_exhaustive.rs | 9 - .../src/unix/linux_like/linux/uclibc/align.rs | 28 - .../unix/linux_like/linux/uclibc/arm/align.rs | 13 - .../unix/linux_like/linux/uclibc/arm/mod.rs | 925 --- .../linux_like/linux/uclibc/arm/no_align.rs | 10 - .../linux/uclibc/mips/mips32/align.rs | 13 - .../linux/uclibc/mips/mips32/mod.rs | 692 -- .../linux/uclibc/mips/mips32/no_align.rs | 10 - .../linux/uclibc/mips/mips64/align.rs | 10 - .../linux/uclibc/mips/mips64/mod.rs | 207 - .../linux/uclibc/mips/mips64/no_align.rs | 7 - .../unix/linux_like/linux/uclibc/mips/mod.rs | 310 - .../src/unix/linux_like/linux/uclibc/mod.rs | 392 -- .../unix/linux_like/linux/uclibc/no_align.rs | 53 - .../linux_like/linux/uclibc/x86_64/l4re.rs | 53 - .../linux_like/linux/uclibc/x86_64/mod.rs | 345 - .../linux_like/linux/uclibc/x86_64/other.rs | 5 - .../libc-0.2.146/src/unix/linux_like/mod.rs | 1901 ----- src/rust/vendor/libc-0.2.146/src/unix/mod.rs | 1625 ----- .../src/unix/newlib/aarch64/mod.rs | 54 - .../libc-0.2.146/src/unix/newlib/align.rs | 61 - .../libc-0.2.146/src/unix/newlib/arm/mod.rs | 56 - .../src/unix/newlib/espidf/mod.rs | 110 - .../libc-0.2.146/src/unix/newlib/generic.rs | 27 - .../src/unix/newlib/horizon/mod.rs | 268 - .../libc-0.2.146/src/unix/newlib/mod.rs | 789 --- .../libc-0.2.146/src/unix/newlib/no_align.rs | 51 - .../src/unix/newlib/powerpc/mod.rs | 16 - .../libc-0.2.146/src/unix/newlib/vita/mod.rs | 201 - .../vendor/libc-0.2.146/src/unix/no_align.rs | 6 - .../libc-0.2.146/src/unix/nto/aarch64.rs | 36 - .../vendor/libc-0.2.146/src/unix/nto/mod.rs | 3285 --------- .../libc-0.2.146/src/unix/nto/neutrino.rs | 1288 ---- .../libc-0.2.146/src/unix/nto/x86_64.rs | 132 - .../vendor/libc-0.2.146/src/unix/redox/mod.rs | 1335 ---- .../libc-0.2.146/src/unix/solarish/compat.rs | 220 - .../libc-0.2.146/src/unix/solarish/illumos.rs | 88 - .../libc-0.2.146/src/unix/solarish/mod.rs | 3302 --------- .../libc-0.2.146/src/unix/solarish/solaris.rs | 101 - .../libc-0.2.146/src/unix/solarish/x86.rs | 29 - .../libc-0.2.146/src/unix/solarish/x86_64.rs | 190 - .../src/unix/solarish/x86_common.rs | 65 - .../libc-0.2.146/src/vxworks/aarch64.rs | 4 - .../vendor/libc-0.2.146/src/vxworks/arm.rs | 4 - .../vendor/libc-0.2.146/src/vxworks/mod.rs | 1930 ------ .../libc-0.2.146/src/vxworks/powerpc.rs | 4 - .../libc-0.2.146/src/vxworks/powerpc64.rs | 4 - .../vendor/libc-0.2.146/src/vxworks/x86.rs | 4 - .../vendor/libc-0.2.146/src/vxworks/x86_64.rs | 4 - src/rust/vendor/libc-0.2.146/src/wasi.rs | 830 --- .../libc-0.2.146/src/windows/gnu/align.rs | 19 - .../libc-0.2.146/src/windows/gnu/mod.rs | 23 - .../vendor/libc-0.2.146/src/windows/mod.rs | 600 -- .../libc-0.2.146/src/windows/msvc/mod.rs | 20 - src/rust/vendor/libc-0.2.146/src/xous.rs | 49 - .../vendor/libc-0.2.146/tests/const_fn.rs | 5 - .../vendor/version_check/.cargo-checksum.json | 2 +- src/rust/vendor/version_check/Cargo.toml | 28 +- src/rust/vendor/version_check/README.md | 14 +- src/rust/vendor/version_check/src/channel.rs | 9 +- src/rust/vendor/version_check/src/date.rs | 66 +- src/rust/vendor/version_check/src/lib.rs | 402 +- src/rust/vendor/version_check/src/version.rs | 10 +- 240 files changed, 424 insertions(+), 111607 deletions(-) delete mode 100644 src/rust/vendor/libc-0.2.146/.cargo-checksum.json delete mode 100644 src/rust/vendor/libc-0.2.146/CONTRIBUTING.md delete mode 100644 src/rust/vendor/libc-0.2.146/Cargo.toml delete mode 100644 src/rust/vendor/libc-0.2.146/LICENSE-APACHE delete mode 100644 src/rust/vendor/libc-0.2.146/LICENSE-MIT delete mode 100644 src/rust/vendor/libc-0.2.146/README.md delete mode 100644 src/rust/vendor/libc-0.2.146/build.rs delete mode 100644 src/rust/vendor/libc-0.2.146/rustfmt.toml delete mode 100644 src/rust/vendor/libc-0.2.146/src/fixed_width_ints.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/fuchsia/aarch64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/fuchsia/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/fuchsia/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/fuchsia/no_align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/fuchsia/riscv64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/fuchsia/x86_64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/hermit/aarch64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/hermit/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/hermit/x86_64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/lib.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/macros.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/psp.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/sgx.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/solid/aarch64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/solid/arm.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/solid/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/switch.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/aix/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/aix/powerpc64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/long_array.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/errno.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/aarch64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/arm.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/riscv64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/aarch64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/arm.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/powerpc.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/sparc64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86_64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/aarch64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/arm.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mips64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/riscv64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/sparc64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86_64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/haiku/b32.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/haiku/b64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/haiku/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/haiku/native.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/haiku/x86_64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/hermit/aarch64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/hermit/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/hermit/x86_64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/arm.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/int128.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/no_align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/generic/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mips/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/powerpc/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/sparc/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/powerpc.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/s390x.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/no_align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/hexagon.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/powerpc.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mips64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/powerpc64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/s390x.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/lfs64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/no_align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/non_exhaustive.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/no_align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/no_align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/other.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/linux_like/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/aarch64/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/arm/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/espidf/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/generic.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/horizon/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/no_align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/powerpc/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/newlib/vita/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/no_align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/nto/aarch64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/nto/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/nto/neutrino.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/nto/x86_64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/redox/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/compat.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/illumos.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/solaris.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/x86.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_common.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/aarch64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/arm.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/powerpc.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/powerpc64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/x86.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/vxworks/x86_64.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/wasi.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/windows/gnu/align.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/windows/gnu/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/windows/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/windows/msvc/mod.rs delete mode 100644 src/rust/vendor/libc-0.2.146/src/xous.rs delete mode 100644 src/rust/vendor/libc-0.2.146/tests/const_fn.rs diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1a9352547..99ea3cc72 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -205,7 +205,7 @@ if(CMAKE_BUILD_TYPE STREQUAL "DEBUG") set(RUST_PROFILE "debug") else() set(RUST_PROFILE "release") - set(RUST_CARGO_FLAG "--release") + set(RUST_CARGO_FLAGS "--release") # For binary reproducibility, strip path prefixes that can be different depending on environment (e.g. /home/, etc.). set(RUSTFLAGS "--remap-path-prefix=${CMAKE_CURRENT_SOURCE_DIR}/rust=src --remap-path-prefix=$ENV{HOME}=") endif() @@ -231,6 +231,7 @@ if(CMAKE_CROSSCOMPILING) set(RUST_TARGET_ARCH thumbv7em-none-eabi) set(RUST_TARGET_ARCH_DIR ${RUST_TARGET_ARCH}) set(RUST_TARGET_ARCH_ARG --target ${RUST_TARGET_ARCH}) + set(RUST_CARGO_FLAGS ${RUST_CARGO_FLAGS} -Zbuild-std=core,alloc -Zbuild-std-features=panic_immediate_abort,optimize_for_size) else() set(RUST_TARGET_ARCH_DIR .) endif() @@ -436,7 +437,7 @@ if(NOT CMAKE_CROSSCOMPILING) CMAKE_CURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} FIRMWARE_VERSION_SHORT=${FIRMWARE_VERSION} # only one test thread because of unsafe concurrent access to `SafeData`, `mock_sd()` and `mock_memory()`. Using mutexes instead leads to mutex poisoning and very messy output in case of a unit test failure. - ${CARGO} test $<$:-v> --all-features --target-dir ${RUST_BINARY_DIR}/all-features ${RUST_CARGO_FLAG} -- --nocapture --test-threads 1 + ${CARGO} test $<$:-v> --all-features --target-dir ${RUST_BINARY_DIR}/all-features ${RUST_CARGO_FLAGS} -- --nocapture --test-threads 1 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/rust/ ) add_dependencies(rust-test bitbox_merged generate-protobufs) @@ -518,7 +519,8 @@ foreach(type ${RUST_LIBS}) RUSTFLAGS=${RUSTFLAGS} FIRMWARE_VERSION_SHORT=${FIRMWARE_VERSION} $<$:RUSTC_WRAPPER=${SCCACHE_PROGRAM}> - ${CARGO} build $<$:-vv> --offline --features target-${type} --target-dir ${RUST_BINARY_DIR}/feature-${type} ${RUST_CARGO_FLAG} ${RUST_TARGET_ARCH_ARG} + RUSTC_BOOTSTRAP=1 + ${CARGO} build $<$:-vv> --offline --features target-${type} --target-dir ${RUST_BINARY_DIR}/feature-${type} ${RUST_CARGO_FLAGS} ${RUST_TARGET_ARCH_ARG} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${lib} ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/lib${type}_rust_c.a # DEPFILES are only supported with the Ninja build tool @@ -544,7 +546,7 @@ if(CMAKE_CROSSCOMPILING) CMAKE_CURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} SYSROOT=${CMAKE_SYSROOT} INCLUDES="${RUST_INCLUDES}" - ${CARGO} doc --document-private-items --target-dir ${CMAKE_BINARY_DIR}/docs-rust ${RUST_CARGO_FLAG} --target thumbv7em-none-eabi + ${CARGO} doc --document-private-items --target-dir ${CMAKE_BINARY_DIR}/docs-rust --target thumbv7em-none-eabi COMMAND ${CMAKE_COMMAND} -E echo "See docs at file://${CMAKE_BINARY_DIR}/docs-rust/thumbv7em-none-eabi/doc/bitbox02_rust/index.html" WORKING_DIRECTORY ${LIBBITBOX02_RUST_SOURCE_DIR} diff --git a/src/rust/Cargo.lock b/src/rust/Cargo.lock index af1ef09a5..ad7cfd159 100644 --- a/src/rust/Cargo.lock +++ b/src/rust/Cargo.lock @@ -431,9 +431,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.146" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "minicbor" @@ -692,9 +692,9 @@ dependencies = [ [[package]] name = "version_check" -version = "0.9.2" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "x25519-dalek" diff --git a/src/rust/vendor/libc-0.2.146/.cargo-checksum.json b/src/rust/vendor/libc-0.2.146/.cargo-checksum.json deleted file mode 100644 index 0b6b1a56e..000000000 --- a/src/rust/vendor/libc-0.2.146/.cargo-checksum.json +++ /dev/null @@ -1 +0,0 @@ -{"files":{"CONTRIBUTING.md":"bdc90b52cf803faac96e594069a86dd8ea150d5ba7fb3e6cadfc08dac4c7b0ce","Cargo.toml":"1923cc2c3bb1b4849872da9eab12ff3e60ad065e74d41148dbf7d1e5812c0bd9","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"ecc47e284f8d007fc048666d5108dd41cdc440ab9eedfe8c47d1634613522787","build.rs":"5bd78d7e4e79b183fb1dab92cd640a611330131d54c479c69adbe87cbdc95ae3","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"7f986e5f5e68d25ef04d386fd2f640e8be8f15427a8d4a458ea01d26b8dca0ca","src/fuchsia/aarch64.rs":"893fcec48142d273063ffd814dca33fbec92205fd39ada97075f85201d803996","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"30f4dc83ef120300d61896696512436377c5f36f1431d98ab7e01e498c0c47d5","src/fuchsia/no_align.rs":"303f3f1b255e0088b5715094353cf00476131d8e94e6aebb3f469557771c8b8a","src/fuchsia/riscv64.rs":"617cd75e79e0e20f664db764a4dc2a396d9fd11a4d95371acd91ed4811293b11","src/fuchsia/x86_64.rs":"93a3632b5cf67d2a6bcb7dc0a558605252d5fe689e0f38d8aa2ec5852255ac87","src/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/hermit/mod.rs":"d3bfce41e4463d4be8020a2d063c9bfa8b665f45f1cc6cbf3163f5d01e7cb21f","src/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/lib.rs":"24111461547739f3646f95bcb66c43f2ae679a727ff5938299434c522c02e458","src/macros.rs":"b457eb028b8e8ab3c24bb7292b874ad4e491edbb83594f6a3da024df5348c088","src/psp.rs":"dd31aabd46171d474ec5828372e28588935120e7355c90c105360d8fa9264c1c","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/solid/aarch64.rs":"a726e47f324adf73a4a0b67a2c183408d0cad105ae66acf36db37a42ab7f8707","src/solid/arm.rs":"e39a4f74ebbef3b97b8c95758ad741123d84ed3eb48d9cf4f1f4872097fc27fe","src/solid/mod.rs":"5f4151dca5132e4b4e4c23ab9737e12856dddbdc0ca3f7dbc004328ef3c8acde","src/switch.rs":"9da3dd39b3de45a7928789926e8572d00e1e11a39e6f7289a1349aadce90edba","src/unix/aix/mod.rs":"54229b5e774669c16912112e8b50fa938db76f534971222a11723a05195a0948","src/unix/aix/powerpc64.rs":"cf374d81139d45f9d77c6a764f640bfbf7e0a5903689652c8296f8e10d55169b","src/unix/align.rs":"2cdc7c826ef7ae61f5171c5ae8c445a743d86f1a7f2d9d7e4ceeec56d6874f65","src/unix/bsd/apple/b32/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b32/mod.rs":"2546ad3eb6aecb95f916648bc63264117c92b4b4859532b34cb011e4c75a5a72","src/unix/bsd/apple/b64/aarch64/align.rs":"e8eb38d064b5fefec6f37d42873820a0483e7c758ed336cc59a7155455ca89c9","src/unix/bsd/apple/b64/aarch64/mod.rs":"44c217a4f263afe7a97435de9323d20a96c37836f899ca0925306d4b7e073c27","src/unix/bsd/apple/b64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/mod.rs":"f5e278a1af7fb358891d1c9be4eb7e815aaca0c5cb738d0c3604ba2208a856f7","src/unix/bsd/apple/b64/x86_64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/x86_64/mod.rs":"8c87c5855038aae5d433c8f5eb3b29b0a175879a0245342b3bfd83bdf4cfd936","src/unix/bsd/apple/long_array.rs":"3cf1f19b812e6d093c819dc65ce55b13491963e0780eda0d0bd1577603e81948","src/unix/bsd/apple/mod.rs":"a6662488273ffff2a097403281db6b5f4cd1a325f7a1582264bb8da0b553a822","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"f2e78625fe1eb14f43e730a3987eba888cb8ac04c23008e7c2d2f7c72258b9e6","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"6c8e216385f53a4bf5f171749b57602fc34a4e4b160a44ca31c058cb0c8a2126","src/unix/bsd/freebsdlike/freebsd/arm.rs":"59d6a670eea562fb87686e243e0a84603d29a2028a3d4b3f99ccc01bd04d2f47","src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs":"9808d152c1196aa647f1b0f0cf84dac8c930da7d7f897a44975545e3d9d17681","src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs":"e243ae0e89623d4fa9f85afe14369cc5fd5f2028ea715773dbec722ba80dac1f","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"bef9fae288a4f29e941ea369be1cd20b170040e60665a4d49a4a9e79009b72d8","src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs":"3c514e037694ce22724abb3c9c4687defda7f0e3456b615ca73593e860e38b16","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs":"318abe48bfdd1c74ecd6afbd6c9329c5c72ce4f7d420edd6be2fc12b223ae32f","src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs":"e7b5863e222d6cc416b6b0fbe71690fad909e899b4c4ae810bbca117e4fcb650","src/unix/bsd/freebsdlike/freebsd/mod.rs":"4c3cd57aaf7fbce072e28e0d2d285b5fda9702e924561d2fd01e49e6ee186a98","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","src/unix/bsd/freebsdlike/freebsd/riscv64.rs":"fa4bed4c58cad24ba3395941c7fa6b11e089551a04714f9561078e400f5b2b62","src/unix/bsd/freebsdlike/freebsd/x86.rs":"6766e2ce85e187b306cd3b0b8d7e15b8f4042c5cff81d89b3af69ecc99c70ab0","src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs":"0e1f69a88fca1c32874b1daf5db3d446fefbe518dca497f096cc9168c39dde70","src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs":"51e4dd0c8ae247bb652feda5adad9333ea3bb30c750c3a3935e0b0e47d7803eb","src/unix/bsd/freebsdlike/mod.rs":"0eacafac87fb3a32ef1b85980fece2792e70eba9856af18a7407cc35be68ea57","src/unix/bsd/mod.rs":"dad51a24a524e92bfe9de3ac3b7d394d86058b9b8a1ccd4efa9bbb5c78e7fa1a","src/unix/bsd/netbsdlike/mod.rs":"0a66f7de43710e35a6a546e6c39066aa8b91a6efadb71db88738b0a577fd5537","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"65dcb58d11e8d8028401a9d07ca3eb4cb4f053e04249cc877353449d84ccc4cb","src/unix/bsd/netbsdlike/netbsd/arm.rs":"58cdbb70b0d6f536551f0f3bb3725d2d75c4690db12c26c034e7d6ec4a924452","src/unix/bsd/netbsdlike/netbsd/mod.rs":"90dd33ef20dc3be8aef5bd152a6a06e7ab34f9527b3978487b593aaa16a907bd","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"ee7ff5d89d0ed22f531237b5059aa669df93a3b5c489fa641465ace8d405bf41","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"9489f4b3e4566f43bb12dfb92238960613dac7f6a45cc13068a8d152b902d7d9","src/unix/bsd/netbsdlike/netbsd/x86.rs":"20692320e36bfe028d1a34d16fe12ca77aa909cb02bda167376f98f1a09aefe7","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"1afe5ef46b14397cdd68664b5b232e4f5b035b6db1d4cf411c899d51ebca9f30","src/unix/bsd/netbsdlike/openbsd/aarch64.rs":"dd91931d373b7ecaf6e2de25adadee10d16fa9b12c2cbacdff3eb291e1ba36af","src/unix/bsd/netbsdlike/openbsd/arm.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/mips64.rs":"8532a189ae10c7d668d9d4065da8b05d124e09bd39442c9f74a7f231c43eca48","src/unix/bsd/netbsdlike/openbsd/mod.rs":"892e0b409ced2dfd81d98cbe9630eb83979c1668d323b304a91be13aa711d5db","src/unix/bsd/netbsdlike/openbsd/powerpc.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/powerpc64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/riscv64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/sparc64.rs":"d04fd287afbaa2c5df9d48c94e8374a532a3ba491b424ddf018270c7312f4085","src/unix/bsd/netbsdlike/openbsd/x86.rs":"6f7f5c4fde2a2259eb547890cbd86570cea04ef85347d7569e94e679448bec87","src/unix/bsd/netbsdlike/openbsd/x86_64.rs":"d31db31630289c85af3339dbe357998a21ca584cbae31607448fe2cf7675a4e1","src/unix/haiku/b32.rs":"a2efdbf7158a6da341e1db9176b0ab193ba88b449616239ed95dced11f54d87b","src/unix/haiku/b64.rs":"ff8115367d3d7d354f792d6176dfaaa26353f57056197b563bf4681f91ff7985","src/unix/haiku/mod.rs":"d7ec086b73db4f72799179627aa6330a513dcf786b06e19c75ff884d1235948e","src/unix/haiku/native.rs":"dbfcbf4954a79d1df2ff58e0590bbcb8c57dfc7a32392aa73ee4726b66bd6cc8","src/unix/haiku/x86_64.rs":"3ec3aeeb7ed208b8916f3e32d42bfd085ff5e16936a1a35d9a52789f043b7237","src/unix/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/unix/hermit/mod.rs":"a1494a0bddf301cceb0d9b8529a84b5882fe855ceae77a1c4e8d6034e705e26c","src/unix/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/unix/linux_like/android/b32/arm.rs":"ce582de7e983a33d3bfad13075c53aac9016cee35f06ad8653ee9072c3ec2564","src/unix/linux_like/android/b32/mod.rs":"7c173e0375119bf06a3081652faede95e5bcd6858e7576b7533d037978737c8f","src/unix/linux_like/android/b32/x86/align.rs":"812914e4241df82e32b12375ca3374615dc3a4bdd4cf31f0423c5815320c0dab","src/unix/linux_like/android/b32/x86/mod.rs":"e6d107efbcd37b5b85dfa18f683300cbf768ffa0237997a9fa52b184a53323ac","src/unix/linux_like/android/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/android/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/android/b64/aarch64/mod.rs":"171f8c37a2d2e45065bd3547dfcec70b02aa3da34cd99d259d150c753f620846","src/unix/linux_like/android/b64/mod.rs":"71e4fcbe952bfa4a5f9022f3972e906917b38f729b9d8ef57cd5d179104894ac","src/unix/linux_like/android/b64/riscv64/align.rs":"0bf138f84e5327d8339bcd4adf071a6832b516445e597552c82bbd881095e3a8","src/unix/linux_like/android/b64/riscv64/mod.rs":"19d4bf2237c47127eba9144e0b82e995bc079315e719179a91813b0ae7b0e49d","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"4ec2de11a9b65c4325b7b991f0b99a414975e0e61ba8668caca5d921e9b314d1","src/unix/linux_like/android/mod.rs":"0fd148ab2c1d08817b81345b579492b54ac4376647ade089ce1d7cfea6b365fd","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/mod.rs":"712c52856ee323b8057b9452e4ab484a0e652581a530b67c3db25e819919d718","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"87401c80ff504def5cd4309a53a63fdd481642980b9daaa7fee0164a807c2c61","src/unix/linux_like/linux/arch/generic/mod.rs":"778742250aa456cb94efe67a4f8d0213827d90ab74eb5074f9afb9a30e6ea71c","src/unix/linux_like/linux/arch/mips/mod.rs":"60ace1dd76aa88d6b3b5e52fef4bec7881d452780dfff635474067b512e03df1","src/unix/linux_like/linux/arch/mod.rs":"466a29622e47c6c7f1500682b2eb17f5566dd81b322cd6348f0fdd355cec593a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"bef6b7af9e5e2b4e5545c9c7e3e23a8b743277a0ed95853e7eddc38e44299f02","src/unix/linux_like/linux/arch/sparc/mod.rs":"91593ec0440f1dd8f8e612028f432c44c14089286e2aca50e10511ab942db8c3","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"6ec0eb3ee93f7ae99fd714b4deabfb5e97fbcefd8c26f5a45fb8e7150899cdeb","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"9ab3e97b579a9122690cd01026e14528862860346b700aafbb755a7e04054f7f","src/unix/linux_like/linux/gnu/b32/m68k/align.rs":"8faa92f77a9232c035418d45331774e64a9a841d99c91791570a203bf2b45bcb","src/unix/linux_like/linux/gnu/b32/m68k/mod.rs":"6aab7f1b864e9691d14aa7d389f717c4077b8eed72a7f11e3b8c7fef245e4046","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"6b9a5dac6f937ddc1453e808e3c43502c87143332df9e43ac64fb8b1eda6c116","src/unix/linux_like/linux/gnu/b32/mod.rs":"caade9dc8b7179711102da342819bdf330c42c796b4587d0ed419550dab2e9ad","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"5c5d90326b54b57b98eff4745fe7a3fb02f053b2dc782241a73e807b491936a3","src/unix/linux_like/linux/gnu/b32/riscv32/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"491a9a97cf712985b75d3ad714691ef60898d88c78bc386a6917de0a6774cc26","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"80894eece66e9348f45d1b07ad37c757ea694bbd10ed49d3f920b34e9f51a9a3","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"c703cc5e9de2dc31d9e5831bfb6f354d6e3518b2ae02263f68a9a70f1c0167e2","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"ea39d5fd8ca5a71314127d1e1f542bca34ac566eac9a95662076d91ea4bee548","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"bf4611b737813deef6787babf6c01698605f3b75482269b8546318667bc68e29","src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"11a950697fdda0258c6e37c6b13993348c8de4134105ed4faa79358e53175072","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"d7be998105fc2f6248b7fdfcedb5a0519122d28625fcfd5dccf72617fb30c45e","src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs":"060aa33cc737966c691aab8511c5c5729e551458ce18d0e284e0d45f39beeb60","src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs":"18edada8aa5d4127d9aa1bd81c62b5a4209f1efd8b2b2631e801c9e855ab1480","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"628c410b9aaec3c8f43838a28616b577a1d6de60a9799b09bb884d80281f96eb","src/unix/linux_like/linux/gnu/b64/mod.rs":"3c6555f30a7a8852757b31a542ea73fb6a16a6e27e838397e819278ad56e57a4","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"c778a136f06c2ffeacea19fa14ce79b828f91b67a002dec5ce87289bae36234e","src/unix/linux_like/linux/gnu/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"c8f07efc5ddd5d874f1ebc329cd6907818d132ac3e30f4f2a4b04be3fb388551","src/unix/linux_like/linux/gnu/b64/s390x.rs":"a2fd9277c2dcf76f7a16a3bcca745d5a9932c765c0dc2feb31c3641be25eb0aa","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"e8047e9966a2b90063e0151a0278c54885e7b323286cf5ab55cbaf151fc772d3","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"62e822478356db4a73b6bbd1b36d825b893939ab4b308ec11b0578bcc4b49769","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"891e595d33714b9883b92f0554d1d361fba2b6c3f6cac09a288252f44c6ec667","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"38f74ce15d9662ce4818815a2b87be1618d5e45f190f7e4db84ff3285b4421fb","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"b20218a11364a6dec87f96d6c0d8b19e660697ab09ad5ee0e9b3a9dafedaaebb","src/unix/linux_like/linux/gnu/mod.rs":"a105e27dac14401935ad2acb60618c0d0c078f65d5bc06c92940d6ab93659b96","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"657a86280094d5ce31e1f85d116c95637cb994baeb724b78dcbd7684b9be1b96","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"f5b217a93f99c2852f7fd1459f529798372fa7df84ee0cfd3d8cdd5b2021b8cf","src/unix/linux_like/linux/musl/b32/hexagon.rs":"226a8b64ce9c75abbbee6d2dceb0b44f7b6c750c4102ebd4d015194afee6666e","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"16f614dd59695497a01b542deacd1669335678bdd0b14d16dde482fb5c4e02f4","src/unix/linux_like/linux/musl/b32/mod.rs":"31677597fd9544c4b1ec1477628288f6273fabbc06e38f33da862ad55f019ce1","src/unix/linux_like/linux/musl/b32/powerpc.rs":"69e3ab4471f876055215a7fccabe514e69299ecfe2fa95d989e4d799e03f43e9","src/unix/linux_like/linux/musl/b32/riscv32/align.rs":"efd2accf33b87de7c7547903359a5da896edc33cd6c719552c7474b60d4a5d48","src/unix/linux_like/linux/musl/b32/riscv32/mod.rs":"7b067c7989a80e35daa9987af799d97dd1fb3df71ef82285137f51fbad2354d9","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"de632ac323bd2bb4f83d4826d6eb7e29d4b0e6293aa0c4cb9c99ef0fcabc71b7","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"6ba32725d24d7d8e6aa111f3b57aafa318f83b606abe96561329151829821133","src/unix/linux_like/linux/musl/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"31e75179cbb4e26425b3f5b052e358f593153da662884655e60801d852e55dc2","src/unix/linux_like/linux/musl/b64/mips64.rs":"9a5d29f666332bb056d0e2951e9de989aa1dc016075f009db3f2f628e0cdda8c","src/unix/linux_like/linux/musl/b64/mod.rs":"884243eb5af7df963d858d5baf47e622b45f04e0ae701728b134e986191b614b","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"e77f4cf5d65320023043e4354725397f6b079c1b7b6b3cef2c3293350b46b303","src/unix/linux_like/linux/musl/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/musl/b64/riscv64/mod.rs":"a80b1813148dec8bc396c02638978c0b4e5e040edafd56d98f8683fe2ae51ab5","src/unix/linux_like/linux/musl/b64/s390x.rs":"80a92e54e47016d051c7bd55bee9580cbedd298164199d71a67d49167e744432","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"77309276ad7a42cbe59ca381f23590b7a143aded05555b34a5b307b808cbca6e","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"032863c74d3ca73cb75483218f9bd774ae1ae7d3646d2ffb21e4cc7d4b5e0e3d","src/unix/linux_like/linux/musl/lfs64.rs":"3e4fb381f3a0756520bde0f1692d4fa45e4ae8133bf7d7c64b0e3fdd512f235f","src/unix/linux_like/linux/musl/mod.rs":"f79e4d7bef14f422c6a77f1573ff503a82305bfa5ac3e4c6f571c09212b75620","src/unix/linux_like/linux/no_align.rs":"1a754a4af299894a79835aa092d8322d301179e2b20609defd6bb4bc880e6b4a","src/unix/linux_like/linux/non_exhaustive.rs":"181a05bf94fdb911db83ce793b993bd6548a4115b306a7ef3c10f745a8fea3e9","src/unix/linux_like/linux/uclibc/align.rs":"9ed16138d8e439bd90930845a65eafa7ebd67366e6bf633936d44014f6e4c959","src/unix/linux_like/linux/uclibc/arm/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/arm/mod.rs":"50288ff9e411ab0966da24838f2c2a5618021bc19c422a04f577b2979ef4081e","src/unix/linux_like/linux/uclibc/arm/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips32/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs":"d0c4434e2bf813372c418a8f516c706cdccc9f7be2f0921b2207b0afdb66fe81","src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips64/align.rs":"a7bdcb18a37a2d91e64d5fad83ea3edc78f5412adb28f77ab077dbb26dd08b2d","src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs":"3f38ee6a4690b9d7594be20d216467a34d955f7653c2c8ce1e6147daeb53f1e0","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"a048fce1c2d9b1ad57305642e8ad05ca0f0c7e4753267a2e2d6b4fee5db3b072","src/unix/linux_like/linux/uclibc/mod.rs":"1c3d25cddcfefa2bd17bdc81550826be31a08eef235e13f825f169a5029c8bca","src/unix/linux_like/linux/uclibc/no_align.rs":"3f28637046524618adaa1012e26cb7ffe94b9396e6b518cccdc69d59f274d709","src/unix/linux_like/linux/uclibc/x86_64/l4re.rs":"024eba5753e852dbdd212427351affe7e83f9916c1864bce414d7aa2618f192e","src/unix/linux_like/linux/uclibc/x86_64/mod.rs":"196d03affbefb85716937c15904831e731eb222ee906e05e42102d639a8152ea","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"640f1fd760d2fb61f0a3af5b1e9b43a69d706588759d61d2f7ee3b83cc972854","src/unix/mod.rs":"22bebe5c76ea2ff9e7a2aa38e13d6466800d04ef799e2ba8253864a72c314444","src/unix/newlib/aarch64/mod.rs":"bac93836a9a57b2c710f32f852e92a4d11ad6759ab0fb6ad33e71d60e53278af","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"cbba6b3e957eceb496806e60de8725a23ff3fa0015983b4b4fa27b233732b526","src/unix/newlib/espidf/mod.rs":"816f235f4aa4baabba7f2606b31d0fdb03988c52194c966728de8690bf17299d","src/unix/newlib/generic.rs":"eab066d9f0a0f3eb53cc1073d01496bba0110989e1f6a59838afd19f870cd599","src/unix/newlib/horizon/mod.rs":"7cc5cc120437421db139bfa6a90b18168cd3070bdd0f5be96d40fe4c996f3ca1","src/unix/newlib/mod.rs":"9e36de3fd78e10cb6b9a59dc5ebe5a1b44a63ccb91433bb33653fb30d0c303c6","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"0202ffd57caf75b6afa2c9717750ffb96e375ac33df0ae9609a3f831be393b67","src/unix/newlib/vita/mod.rs":"68e0ce186b44e0b3031eb824710e7454dc2a9df98db98120840c3c6f4d885871","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/nto/aarch64.rs":"4709c9afdc8d583be876598e7c238499ee3e8da5bd2baa614d9c7dd414851555","src/unix/nto/mod.rs":"8b8f5d0e5251f5385849c554629e9320c0f7ddf37078a458cc8767a9214392e9","src/unix/nto/neutrino.rs":"62198d95ccc0fe7ece6f9d5c0b29fc22303ef458886efb5e09aad524eca2ab7b","src/unix/nto/x86_64.rs":"a3e18e93c2999da1cd7a6f748a4b60c07aefb73d8ea2aafec19a84cfb040bc8e","src/unix/redox/mod.rs":"73658b0d28c82a122875aa2b45c489834f4de58c378add7932bbaf3ffb2ae789","src/unix/solarish/compat.rs":"00f1ee3faec9da69204e42f025f6735dd13d894071a154425dcc43ecbdd06e7f","src/unix/solarish/illumos.rs":"cd93c2d84722bbf9933a92842a8998eb0b2afc962f50bc2546ad127b82809fa7","src/unix/solarish/mod.rs":"55ce4624745e31ad226b47fde177a46176a89da3fa5030663673a115102471f9","src/unix/solarish/solaris.rs":"41b350a89ddf01cd12a10f93640f92be53be0b0d976021cdc08da17bf3e72edf","src/unix/solarish/x86.rs":"e86e806df0caed72765040eaa2f3c883198d1aa91508540adf9b7008c77f522e","src/unix/solarish/x86_64.rs":"ec2b01f194eb8a6a27133c57681da195a949e03098f3ea1e847227a9c09ef5fc","src/unix/solarish/x86_common.rs":"ac869d9c3c95645c22460468391eb1982023c3a8e02b9e06a72e3aef3d5f1eac","src/vxworks/aarch64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/arm.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/mod.rs":"e4edcbcf43a325e738c9465507594d0c87abf3f0e2b9b046c1425f8d44bdad0f","src/vxworks/powerpc.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/powerpc64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/x86.rs":"552f007f38317620b23889cb7c49d1d115841252439060122f52f434fbc6e5ba","src/vxworks/x86_64.rs":"018d92be3ad628a129eff9f2f5dfbc0883d8b8e5f2fa917b900a7f98ed6b514a","src/wasi.rs":"09ee3b3348b212b050f6ca8ae008a28679ea44a375674307a4e7c9ca0d3ed7d5","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"a9a95e9ebc0102c334650607351d4d4dbaff0eaf7730eed1c8020d20e9bbebfd","src/windows/msvc/mod.rs":"c068271e00fca6b62bc4bf44bcf142cfc38caeded9b6c4e01d1ceef3ccf986f4","src/xous.rs":"eb0675f25ba01f73072d2b70907fb8abb1148facefe5a20756c49250f3d65fae","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"} \ No newline at end of file diff --git a/src/rust/vendor/libc-0.2.146/CONTRIBUTING.md b/src/rust/vendor/libc-0.2.146/CONTRIBUTING.md deleted file mode 100644 index 8c551dbdb..000000000 --- a/src/rust/vendor/libc-0.2.146/CONTRIBUTING.md +++ /dev/null @@ -1,93 +0,0 @@ -# Contributing to `libc` - -Welcome! If you are reading this document, it means you are interested in contributing -to the `libc` crate. - -## Adding an API - -Want to use an API which currently isn't bound in `libc`? It's quite easy to add -one! - -The internal structure of this crate is designed to minimize the number of -`#[cfg]` attributes in order to easily be able to add new items which apply -to all platforms in the future. As a result, the crate is organized -hierarchically based on platform. Each module has a number of `#[cfg]`'d -children, but only one is ever actually compiled. Each module then reexports all -the contents of its children. - -This means that for each platform that libc supports, the path from a -leaf module to the root will contain all bindings for the platform in question. -Consequently, this indicates where an API should be added! Adding an API at a -particular level in the hierarchy means that it is supported on all the child -platforms of that level. For example, when adding a Unix API it should be added -to `src/unix/mod.rs`, but when adding a Linux-only API it should be added to -`src/unix/linux_like/linux/mod.rs`. - -If you're not 100% sure at what level of the hierarchy an API should be added -at, fear not! This crate has CI support which tests any binding against all -platforms supported, so you'll see failures if an API is added at the wrong -level or has different signatures across platforms. - -New symbol(s) (i.e. functions, constants etc.) should also be added to the -symbols list(s) found in the `libc-test/semver` directory. These lists keep -track of what symbols are public in the libc crate and ensures they remain -available between changes to the crate. If the new symbol(s) are available on -all supported Unixes it should be added to `unix.txt` list1, -otherwise they should be added to the OS specific list(s). - -With that in mind, the steps for adding a new API are: - -1. Determine where in the module hierarchy your API should be added. -2. Add the API, including adding new symbol(s) to the semver lists. -3. Send a PR to this repo. -4. Wait for CI to pass, fixing errors. -5. Wait for a merge! - -1: Note that this list has nothing to do with any Unix or Posix -standard, it's just a list shared between all OSs that declare `#[cfg(unix)]`. - -## Test before you commit - -We have two automated tests running on [GitHub Actions](https://github.com/rust-lang/libc/actions): - -1. [`libc-test`](https://github.com/gnzlbg/ctest) - - `cd libc-test && cargo test` - - Use the `skip_*()` functions in `build.rs` if you really need a workaround. -2. Style checker - - `rustc ci/style.rs && ./style src` - -## Breaking change policy - -Sometimes an upstream adds a breaking change to their API e.g. removing outdated items, -changing the type signature, etc. And we probably should follow that change to build the -`libc` crate successfully. It's annoying to do the equivalent of semver-major versioning -for each such change. Instead, we mark the item as deprecated and do the actual change -after a certain period. The steps are: - -1. Add `#[deprecated(since = "", note="")]` attribute to the item. - - The `since` field should have a next version of `libc` - (e.g., if the current version is `0.2.1`, it should be `0.2.2`). - - The `note` field should have a reason to deprecate and a tracking issue to call for comments - (e.g., "We consider removing this as the upstream removed it. - If you're using it, please comment on #XXX"). -2. If we don't see any concerns for a while, do the change actually. - -## Supported target policy - -When Rust removes a support for a target, the libc crate also may remove the support anytime. - -## Releasing your change to crates.io - -Now that you've done the amazing job of landing your new API or your new -platform in this crate, the next step is to get that sweet, sweet usage from -crates.io! The only next step is to bump the version of libc and then publish -it. If you'd like to get a release out ASAP you can follow these steps: - -1. Increment the patch version number in `Cargo.toml` and `libc-test/Cargo.toml`. -1. Send a PR to this repository. It should [look like this][example-pr], but it'd - also be nice to fill out the description with a small rationale for the - release (any rationale is ok though!). -1. Once merged, the release will be tagged and published by one of the libc crate - maintainers. - -[example-pr]: https://github.com/rust-lang/libc/pull/2120 diff --git a/src/rust/vendor/libc-0.2.146/Cargo.toml b/src/rust/vendor/libc-0.2.146/Cargo.toml deleted file mode 100644 index 4f114eeed..000000000 --- a/src/rust/vendor/libc-0.2.146/Cargo.toml +++ /dev/null @@ -1,64 +0,0 @@ -# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO -# -# When uploading crates to the registry Cargo will automatically -# "normalize" Cargo.toml files for maximal compatibility -# with all versions of Cargo and also rewrite `path` dependencies -# to registry (e.g., crates.io) dependencies. -# -# If you are reading this file be aware that the original Cargo.toml -# will likely look very different (and much more reasonable). -# See Cargo.toml.orig for the original contents. - -[package] -name = "libc" -version = "0.2.146" -authors = ["The Rust Project Developers"] -build = "build.rs" -exclude = [ - "/ci/*", - "/.github/*", - "/.cirrus.yml", - "/triagebot.toml", -] -description = """ -Raw FFI bindings to platform libraries like libc. -""" -homepage = "https://github.com/rust-lang/libc" -documentation = "https://docs.rs/libc/" -readme = "README.md" -keywords = [ - "libc", - "ffi", - "bindings", - "operating", - "system", -] -categories = [ - "external-ffi-bindings", - "no-std", - "os", -] -license = "MIT OR Apache-2.0" -repository = "https://github.com/rust-lang/libc" - -[package.metadata.docs.rs] -features = [ - "const-extern-fn", - "extra_traits", -] - -[dependencies.rustc-std-workspace-core] -version = "1.0.0" -optional = true - -[features] -align = [] -const-extern-fn = [] -default = ["std"] -extra_traits = [] -rustc-dep-of-std = [ - "align", - "rustc-std-workspace-core", -] -std = [] -use_std = ["std"] diff --git a/src/rust/vendor/libc-0.2.146/LICENSE-APACHE b/src/rust/vendor/libc-0.2.146/LICENSE-APACHE deleted file mode 100644 index 1b5ec8b78..000000000 --- a/src/rust/vendor/libc-0.2.146/LICENSE-APACHE +++ /dev/null @@ -1,176 +0,0 @@ - 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 diff --git a/src/rust/vendor/libc-0.2.146/LICENSE-MIT b/src/rust/vendor/libc-0.2.146/LICENSE-MIT deleted file mode 100644 index 78061811c..000000000 --- a/src/rust/vendor/libc-0.2.146/LICENSE-MIT +++ /dev/null @@ -1,25 +0,0 @@ -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. diff --git a/src/rust/vendor/libc-0.2.146/README.md b/src/rust/vendor/libc-0.2.146/README.md deleted file mode 100644 index 43d706d0f..000000000 --- a/src/rust/vendor/libc-0.2.146/README.md +++ /dev/null @@ -1,110 +0,0 @@ -# libc - Raw FFI bindings to platforms' system libraries - -[![GHA Status]][GitHub Actions] [![Cirrus CI Status]][Cirrus CI] [![Latest Version]][crates.io] [![Documentation]][docs.rs] ![License] - -`libc` provides all of the definitions necessary to easily interoperate with C -code (or "C-like" code) on each of the platforms that Rust supports. This -includes type definitions (e.g. `c_int`), constants (e.g. `EINVAL`) as well as -function headers (e.g. `malloc`). - -This crate exports all underlying platform types, functions, and constants under -the crate root, so all items are accessible as `libc::foo`. The types and values -of all the exported APIs match the platform that libc is compiled for. - -More detailed information about the design of this library can be found in its -[associated RFC][rfc]. - -[rfc]: https://github.com/rust-lang/rfcs/blob/HEAD/text/1291-promote-libc.md - -## Usage - -Add the following to your `Cargo.toml`: - -```toml -[dependencies] -libc = "0.2" -``` - -## Features - -* `std`: by default `libc` links to the standard library. Disable this - feature to remove this dependency and be able to use `libc` in `#![no_std]` - crates. - -* `extra_traits`: all `struct`s implemented in `libc` are `Copy` and `Clone`. - This feature derives `Debug`, `Eq`, `Hash`, and `PartialEq`. - -* `const-extern-fn`: Changes some `extern fn`s into `const extern fn`s. - If you use Rust >= 1.62, this feature is implicitly enabled. - Otherwise it requires a nightly rustc. - -* **deprecated**: `use_std` is deprecated, and is equivalent to `std`. - -## Rust version support - -The minimum supported Rust toolchain version is currently **Rust 1.13.0**. -(libc does not currently have any policy regarding changes to the minimum -supported Rust version; such policy is a work in progress.) APIs requiring -newer Rust features are only available on newer Rust toolchains: - -| Feature | Version | -|----------------------|---------| -| `union` | 1.19.0 | -| `const mem::size_of` | 1.24.0 | -| `repr(align)` | 1.25.0 | -| `extra_traits` | 1.25.0 | -| `core::ffi::c_void` | 1.30.0 | -| `repr(packed(N))` | 1.33.0 | -| `cfg(target_vendor)` | 1.33.0 | -| `const-extern-fn` | 1.62.0 | - -## Platform support - -[Platform-specific documentation (HEAD)][docs.head]. - -See -[`ci/build.sh`](https://github.com/rust-lang/libc/blob/HEAD/ci/build.sh) -for the platforms on which `libc` is guaranteed to build for each Rust -toolchain. The test-matrix at [GitHub Actions] and [Cirrus CI] show the -platforms in which `libc` tests are run. - -

    - -## License - -This project is licensed under either of - -* [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) - ([LICENSE-APACHE](https://github.com/rust-lang/libc/blob/HEAD/LICENSE-APACHE)) - -* [MIT License](https://opensource.org/licenses/MIT) - ([LICENSE-MIT](https://github.com/rust-lang/libc/blob/HEAD/LICENSE-MIT)) - -at your option. - -## Contributing - -We welcome all people who want to contribute. Please see the [contributing -instructions] for more information. - -[contributing instructions]: https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md - -Contributions in any form (issues, pull requests, etc.) to this project -must adhere to Rust's [Code of Conduct]. - -[Code of Conduct]: https://www.rust-lang.org/policies/code-of-conduct - -Unless you explicitly state otherwise, any contribution intentionally submitted -for inclusion in `libc` by you, as defined in the Apache-2.0 license, shall be -dual licensed as above, without any additional terms or conditions. - -[GitHub Actions]: https://github.com/rust-lang/libc/actions -[GHA Status]: https://github.com/rust-lang/libc/workflows/CI/badge.svg -[Cirrus CI]: https://cirrus-ci.com/github/rust-lang/libc -[Cirrus CI Status]: https://api.cirrus-ci.com/github/rust-lang/libc.svg -[crates.io]: https://crates.io/crates/libc -[Latest Version]: https://img.shields.io/crates/v/libc.svg -[Documentation]: https://docs.rs/libc/badge.svg -[docs.rs]: https://docs.rs/libc -[License]: https://img.shields.io/crates/l/libc.svg -[docs.head]: https://rust-lang.github.io/libc/#platform-specific-documentation diff --git a/src/rust/vendor/libc-0.2.146/build.rs b/src/rust/vendor/libc-0.2.146/build.rs deleted file mode 100644 index 79bec0ea4..000000000 --- a/src/rust/vendor/libc-0.2.146/build.rs +++ /dev/null @@ -1,246 +0,0 @@ -use std::env; -use std::process::Command; -use std::str; -use std::string::String; - -// List of cfgs this build script is allowed to set. The list is needed to support check-cfg, as we -// need to know all the possible cfgs that this script will set. If you need to set another cfg -// make sure to add it to this list as well. -const ALLOWED_CFGS: &'static [&'static str] = &[ - "freebsd10", - "freebsd11", - "freebsd12", - "freebsd13", - "freebsd14", - "libc_align", - "libc_cfg_target_vendor", - "libc_const_extern_fn", - "libc_const_extern_fn_unstable", - "libc_const_size_of", - "libc_core_cvoid", - "libc_deny_warnings", - "libc_int128", - "libc_long_array", - "libc_non_exhaustive", - "libc_packedN", - "libc_priv_mod_use", - "libc_ptr_addr_of", - "libc_thread_local", - "libc_underscore_const_names", - "libc_union", -]; - -// Extra values to allow for check-cfg. -const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[ - ("target_os", &["switch", "aix", "ohos"]), - ("target_env", &["illumos", "wasi", "aix", "ohos"]), - ("target_arch", &["loongarch64"]), -]; - -fn main() { - // Avoid unnecessary re-building. - println!("cargo:rerun-if-changed=build.rs"); - - let (rustc_minor_ver, is_nightly) = rustc_minor_nightly(); - let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); - let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok(); - let const_extern_fn_cargo_feature = env::var("CARGO_FEATURE_CONST_EXTERN_FN").is_ok(); - let libc_ci = env::var("LIBC_CI").is_ok(); - let libc_check_cfg = env::var("LIBC_CHECK_CFG").is_ok(); - - if env::var("CARGO_FEATURE_USE_STD").is_ok() { - println!( - "cargo:warning=\"libc's use_std cargo feature is deprecated since libc 0.2.55; \ - please consider using the `std` cargo feature instead\"" - ); - } - - // The ABI of libc used by libstd is backward compatible with FreeBSD 10. - // The ABI of libc from crates.io is backward compatible with FreeBSD 11. - // - // On CI, we detect the actual FreeBSD version and match its ABI exactly, - // running tests to ensure that the ABI is correct. - match which_freebsd() { - Some(10) if libc_ci || rustc_dep_of_std => set_cfg("freebsd10"), - Some(11) if libc_ci => set_cfg("freebsd11"), - Some(12) if libc_ci => set_cfg("freebsd12"), - Some(13) if libc_ci => set_cfg("freebsd13"), - Some(14) if libc_ci => set_cfg("freebsd14"), - Some(_) | None => set_cfg("freebsd11"), - } - - // On CI: deny all warnings - if libc_ci { - set_cfg("libc_deny_warnings"); - } - - // Rust >= 1.15 supports private module use: - if rustc_minor_ver >= 15 || rustc_dep_of_std { - set_cfg("libc_priv_mod_use"); - } - - // Rust >= 1.19 supports unions: - if rustc_minor_ver >= 19 || rustc_dep_of_std { - set_cfg("libc_union"); - } - - // Rust >= 1.24 supports const mem::size_of: - if rustc_minor_ver >= 24 || rustc_dep_of_std { - set_cfg("libc_const_size_of"); - } - - // Rust >= 1.25 supports repr(align): - if rustc_minor_ver >= 25 || rustc_dep_of_std || align_cargo_feature { - set_cfg("libc_align"); - } - - // Rust >= 1.26 supports i128 and u128: - if rustc_minor_ver >= 26 || rustc_dep_of_std { - set_cfg("libc_int128"); - } - - // Rust >= 1.30 supports `core::ffi::c_void`, so libc can just re-export it. - // Otherwise, it defines an incompatible type to retaining - // backwards-compatibility. - if rustc_minor_ver >= 30 || rustc_dep_of_std { - set_cfg("libc_core_cvoid"); - } - - // Rust >= 1.33 supports repr(packed(N)) and cfg(target_vendor). - if rustc_minor_ver >= 33 || rustc_dep_of_std { - set_cfg("libc_packedN"); - set_cfg("libc_cfg_target_vendor"); - } - - // Rust >= 1.40 supports #[non_exhaustive]. - if rustc_minor_ver >= 40 || rustc_dep_of_std { - set_cfg("libc_non_exhaustive"); - } - - // Rust >= 1.47 supports long array: - if rustc_minor_ver >= 47 || rustc_dep_of_std { - set_cfg("libc_long_array"); - } - - if rustc_minor_ver >= 51 || rustc_dep_of_std { - set_cfg("libc_ptr_addr_of"); - } - - // Rust >= 1.37.0 allows underscores as anonymous constant names. - if rustc_minor_ver >= 37 || rustc_dep_of_std { - set_cfg("libc_underscore_const_names"); - } - - // #[thread_local] is currently unstable - if rustc_dep_of_std { - set_cfg("libc_thread_local"); - } - - // Rust >= 1.62.0 allows to use `const_extern_fn` for "Rust" and "C". - if rustc_minor_ver >= 62 { - set_cfg("libc_const_extern_fn"); - } else { - // Rust < 1.62.0 requires a crate feature and feature gate. - if const_extern_fn_cargo_feature { - if !is_nightly || rustc_minor_ver < 40 { - panic!("const-extern-fn requires a nightly compiler >= 1.40"); - } - set_cfg("libc_const_extern_fn_unstable"); - set_cfg("libc_const_extern_fn"); - } - } - - // check-cfg is a nightly cargo/rustc feature to warn when unknown cfgs are used across the - // codebase. libc can configure it if the appropriate environment variable is passed. Since - // rust-lang/rust enforces it, this is useful when using a custom libc fork there. - // - // https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg - if libc_check_cfg { - for cfg in ALLOWED_CFGS { - println!("cargo:rustc-check-cfg=values({})", cfg); - } - for &(name, values) in CHECK_CFG_EXTRA { - let values = values.join("\",\""); - println!("cargo:rustc-check-cfg=values({},\"{}\")", name, values); - } - } -} - -fn rustc_minor_nightly() -> (u32, bool) { - macro_rules! otry { - ($e:expr) => { - match $e { - Some(e) => e, - None => panic!("Failed to get rustc version"), - } - }; - } - - let rustc = otry!(env::var_os("RUSTC")); - let output = Command::new(rustc) - .arg("--version") - .output() - .ok() - .expect("Failed to get rustc version"); - if !output.status.success() { - panic!( - "failed to run rustc: {}", - String::from_utf8_lossy(output.stderr.as_slice()) - ); - } - - let version = otry!(str::from_utf8(&output.stdout).ok()); - let mut pieces = version.split('.'); - - if pieces.next() != Some("rustc 1") { - panic!("Failed to get rustc version"); - } - - let minor = pieces.next(); - - // If `rustc` was built from a tarball, its version string - // will have neither a git hash nor a commit date - // (e.g. "rustc 1.39.0"). Treat this case as non-nightly, - // since a nightly build should either come from CI - // or a git checkout - let nightly_raw = otry!(pieces.next()).split('-').nth(1); - let nightly = nightly_raw - .map(|raw| raw.starts_with("dev") || raw.starts_with("nightly")) - .unwrap_or(false); - let minor = otry!(otry!(minor).parse().ok()); - - (minor, nightly) -} - -fn which_freebsd() -> Option { - let output = std::process::Command::new("freebsd-version").output().ok(); - if output.is_none() { - return None; - } - let output = output.unwrap(); - if !output.status.success() { - return None; - } - - let stdout = String::from_utf8(output.stdout).ok(); - if stdout.is_none() { - return None; - } - let stdout = stdout.unwrap(); - - match &stdout { - s if s.starts_with("10") => Some(10), - s if s.starts_with("11") => Some(11), - s if s.starts_with("12") => Some(12), - s if s.starts_with("13") => Some(13), - s if s.starts_with("14") => Some(14), - _ => None, - } -} - -fn set_cfg(cfg: &str) { - if !ALLOWED_CFGS.contains(&cfg) { - panic!("trying to set cfg {}, but it is not in ALLOWED_CFGS", cfg); - } - println!("cargo:rustc-cfg={}", cfg); -} diff --git a/src/rust/vendor/libc-0.2.146/rustfmt.toml b/src/rust/vendor/libc-0.2.146/rustfmt.toml deleted file mode 100644 index dc85c9946..000000000 --- a/src/rust/vendor/libc-0.2.146/rustfmt.toml +++ /dev/null @@ -1 +0,0 @@ -error_on_line_overflow = true diff --git a/src/rust/vendor/libc-0.2.146/src/fixed_width_ints.rs b/src/rust/vendor/libc-0.2.146/src/fixed_width_ints.rs deleted file mode 100644 index 999de8f54..000000000 --- a/src/rust/vendor/libc-0.2.146/src/fixed_width_ints.rs +++ /dev/null @@ -1,99 +0,0 @@ -//! This module contains type aliases for C's fixed-width integer types . -//! -//! These aliases are deprecated: use the Rust types instead. - -#[deprecated(since = "0.2.55", note = "Use i8 instead.")] -pub type int8_t = i8; -#[deprecated(since = "0.2.55", note = "Use i16 instead.")] -pub type int16_t = i16; -#[deprecated(since = "0.2.55", note = "Use i32 instead.")] -pub type int32_t = i32; -#[deprecated(since = "0.2.55", note = "Use i64 instead.")] -pub type int64_t = i64; -#[deprecated(since = "0.2.55", note = "Use u8 instead.")] -pub type uint8_t = u8; -#[deprecated(since = "0.2.55", note = "Use u16 instead.")] -pub type uint16_t = u16; -#[deprecated(since = "0.2.55", note = "Use u32 instead.")] -pub type uint32_t = u32; -#[deprecated(since = "0.2.55", note = "Use u64 instead.")] -pub type uint64_t = u64; - -cfg_if! { - if #[cfg(all(libc_int128, target_arch = "aarch64", not(target_os = "windows")))] { - // This introduces partial support for FFI with __int128 and - // equivalent types on platforms where Rust's definition is validated - // to match the standard C ABI of that platform. - // - // Rust does not guarantee u128/i128 are sound for FFI, and its - // definitions are in fact known to be incompatible. [0] - // - // However these problems aren't fundamental, and are just platform - // inconsistencies. Specifically at the time of this writing: - // - // * For x64 SysV ABIs (everything but Windows), the types are underaligned. - // * For all Windows ABIs, Microsoft doesn't actually officially define __int128, - // and as a result different implementations don't actually agree on its ABI. - // - // But on the other major aarch64 platforms (android, linux, ios, macos) we have - // validated that rustc has the right ABI for these types. This is important because - // aarch64 uses these types in some fundamental OS types like user_fpsimd_struct, - // which represents saved simd registers. - // - // Any API which uses these types will need to `#[ignore(improper_ctypes)]` - // until the upstream rust issue is resolved, but this at least lets us make - // progress on platforms where this type is important. - // - // The list of supported architectures and OSes is intentionally very restricted, - // as careful work needs to be done to verify that a particular platform - // has a conformant ABI. - // - // [0]: https://github.com/rust-lang/rust/issues/54341 - - /// C `__int128` (a GCC extension that's part of many ABIs) - pub type __int128 = i128; - /// C `unsigned __int128` (a GCC extension that's part of many ABIs) - pub type __uint128 = u128; - /// C __int128_t (alternate name for [__int128][]) - pub type __int128_t = i128; - /// C __uint128_t (alternate name for [__uint128][]) - pub type __uint128_t = u128; - - cfg_if! { - if #[cfg(libc_underscore_const_names)] { - macro_rules! static_assert_eq { - ($a:expr, $b:expr) => { - const _: [(); $a] = [(); $b]; - }; - } - - // NOTE: if you add more platforms to here, you may need to cfg - // these consts. They should always match the platform's values - // for `sizeof(__int128)` and `_Alignof(__int128)`. - const _SIZE_128: usize = 16; - const _ALIGN_128: usize = 16; - - // Since Rust doesn't officially guarantee that these types - // have compatible ABIs, we const assert that these values have the - // known size/align of the target platform's libc. If rustc ever - // tries to regress things, it will cause a compilation error. - // - // This isn't a bullet-proof solution because e.g. it doesn't - // catch the fact that llvm and gcc disagree on how x64 __int128 - // is actually *passed* on the stack (clang underaligns it for - // the same reason that rustc *never* properly aligns it). - static_assert_eq!(core::mem::size_of::<__int128>(), _SIZE_128); - static_assert_eq!(core::mem::align_of::<__int128>(), _ALIGN_128); - - static_assert_eq!(core::mem::size_of::<__uint128>(), _SIZE_128); - static_assert_eq!(core::mem::align_of::<__uint128>(), _ALIGN_128); - - static_assert_eq!(core::mem::size_of::<__int128_t>(), _SIZE_128); - static_assert_eq!(core::mem::align_of::<__int128_t>(), _ALIGN_128); - - static_assert_eq!(core::mem::size_of::<__uint128_t>(), _SIZE_128); - static_assert_eq!(core::mem::align_of::<__uint128_t>(), _ALIGN_128); - } - } - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/fuchsia/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/fuchsia/aarch64.rs deleted file mode 100644 index 33e3934d6..000000000 --- a/src/rust/vendor/libc-0.2.146/src/fuchsia/aarch64.rs +++ /dev/null @@ -1,67 +0,0 @@ -pub type c_char = u8; -pub type __u64 = ::c_ulonglong; -pub type wchar_t = u32; -pub type nlink_t = ::c_ulong; -pub type blksize_t = ::c_long; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad0: ::c_ulong, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - __pad1: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_uint; 2], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad0: ::c_ulong, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - __pad1: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_uint; 2], - } - - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, - } -} - -// From https://cs.opensource.google/fuchsia/fuchsia/+/main:zircon/third_party/ulib/musl/include/bits/signal.h;l=20-21;drc=0827b18ab9540c46f8037f407d17ea15a79e9ba7 -pub const MINSIGSTKSZ: ::size_t = 6144; -pub const SIGSTKSZ: ::size_t = 12288; diff --git a/src/rust/vendor/libc-0.2.146/src/fuchsia/align.rs b/src/rust/vendor/libc-0.2.146/src/fuchsia/align.rs deleted file mode 100644 index 3409bf0c6..000000000 --- a/src/rust/vendor/libc-0.2.146/src/fuchsia/align.rs +++ /dev/null @@ -1,142 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - #[cfg_attr( - any( - target_pointer_width = "32", - target_arch = "x86_64" - ), - repr(align(4)))] - #[cfg_attr( - not(any( - target_pointer_width = "32", - target_arch = "x86_64" - )), - repr(align(8)))] - pub struct pthread_mutexattr_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct pthread_rwlockattr_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], - } - - #[repr(align(4))] - pub struct pthread_condattr_t { - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - - s_no_extra_traits! { - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "arm", - target_arch = "x86_64")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "arm", - target_arch = "x86_64"))), - repr(align(8)))] - pub struct pthread_mutex_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "arm", - target_arch = "x86_64")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "arm", - target_arch = "x86_64"))), - repr(align(8)))] - pub struct pthread_rwlock_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - #[cfg_attr(target_arch = "x86", - repr(align(4)))] - #[cfg_attr(not(target_arch = "x86"), - repr(align(8)))] - pub struct pthread_cond_t { - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_cond_t {} - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_cond_t") - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for pthread_mutex_t { - fn eq(&self, other: &pthread_mutex_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_mutex_t {} - impl ::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_mutex_t") - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for pthread_rwlock_t { - fn eq(&self, other: &pthread_rwlock_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_rwlock_t {} - impl ::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_rwlock_t") - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - } - } - }; -} diff --git a/src/rust/vendor/libc-0.2.146/src/fuchsia/mod.rs b/src/rust/vendor/libc-0.2.146/src/fuchsia/mod.rs deleted file mode 100644 index 3e922e766..000000000 --- a/src/rust/vendor/libc-0.2.146/src/fuchsia/mod.rs +++ /dev/null @@ -1,4300 +0,0 @@ -//! Definitions found commonly among almost all Unix derivatives -//! -//! More functions and definitions can be found in the more specific modules -//! according to the platform in question. - -// PUB_TYPE - -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; -pub type intmax_t = i64; -pub type uintmax_t = u64; - -pub type locale_t = *mut ::c_void; - -pub type size_t = usize; -pub type ptrdiff_t = isize; -pub type intptr_t = isize; -pub type uintptr_t = usize; -pub type ssize_t = isize; - -pub type pid_t = i32; -pub type uid_t = u32; -pub type gid_t = u32; -pub type in_addr_t = u32; -pub type in_port_t = u16; -pub type sighandler_t = ::size_t; -pub type cc_t = ::c_uchar; -pub type sa_family_t = u16; -pub type pthread_key_t = ::c_uint; -pub type speed_t = ::c_uint; -pub type tcflag_t = ::c_uint; -pub type clockid_t = ::c_int; -pub type key_t = ::c_int; -pub type id_t = ::c_uint; -pub type useconds_t = u32; -pub type dev_t = u64; -pub type socklen_t = u32; -pub type pthread_t = c_ulong; -pub type mode_t = u32; -pub type ino64_t = u64; -pub type off64_t = i64; -pub type blkcnt64_t = i64; -pub type rlim64_t = u64; -pub type mqd_t = ::c_int; -pub type nfds_t = ::c_ulong; -pub type nl_item = ::c_int; -pub type idtype_t = ::c_uint; -pub type loff_t = ::c_longlong; - -pub type __u8 = ::c_uchar; -pub type __u16 = ::c_ushort; -pub type __s16 = ::c_short; -pub type __u32 = ::c_uint; -pub type __s32 = ::c_int; - -pub type Elf32_Half = u16; -pub type Elf32_Word = u32; -pub type Elf32_Off = u32; -pub type Elf32_Addr = u32; - -pub type Elf64_Half = u16; -pub type Elf64_Word = u32; -pub type Elf64_Off = u64; -pub type Elf64_Addr = u64; -pub type Elf64_Xword = u64; - -pub type clock_t = c_long; -pub type time_t = c_long; -pub type suseconds_t = c_long; -pub type ino_t = u64; -pub type off_t = i64; -pub type blkcnt_t = i64; - -pub type shmatt_t = ::c_ulong; -pub type msgqnum_t = ::c_ulong; -pub type msglen_t = ::c_ulong; -pub type fsblkcnt_t = ::c_ulonglong; -pub type fsfilcnt_t = ::c_ulonglong; -pub type rlim_t = ::c_ulonglong; - -pub type c_long = i64; -pub type c_ulong = u64; - -// FIXME: why are these uninhabited types? that seems... wrong? -// Presumably these should be `()` or an `extern type` (when that stabilizes). -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { - fn clone(&self) -> timezone { - *self - } -} -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum DIR {} -impl ::Copy for DIR {} -impl ::Clone for DIR { - fn clone(&self) -> DIR { - *self - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos64_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos64_t {} -impl ::Clone for fpos64_t { - fn clone(&self) -> fpos64_t { - *self - } -} - -// PUB_STRUCT - -s! { - pub struct group { - pub gr_name: *mut ::c_char, - pub gr_passwd: *mut ::c_char, - pub gr_gid: ::gid_t, - pub gr_mem: *mut *mut ::c_char, - } - - pub struct utimbuf { - pub actime: time_t, - pub modtime: time_t, - } - - pub struct timeval { - pub tv_sec: time_t, - pub tv_usec: suseconds_t, - } - - pub struct timespec { - pub tv_sec: time_t, - pub tv_nsec: ::c_long, - } - - // FIXME: the rlimit and rusage related functions and types don't exist - // within zircon. Are there reasons for keeping them around? - pub struct rlimit { - pub rlim_cur: rlim_t, - pub rlim_max: rlim_t, - } - - pub struct rusage { - pub ru_utime: timeval, - pub ru_stime: timeval, - pub ru_maxrss: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad1: u32, - pub ru_ixrss: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad2: u32, - pub ru_idrss: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad3: u32, - pub ru_isrss: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad4: u32, - pub ru_minflt: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad5: u32, - pub ru_majflt: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad6: u32, - pub ru_nswap: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad7: u32, - pub ru_inblock: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad8: u32, - pub ru_oublock: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad9: u32, - pub ru_msgsnd: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad10: u32, - pub ru_msgrcv: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad11: u32, - pub ru_nsignals: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad12: u32, - pub ru_nvcsw: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad13: u32, - pub ru_nivcsw: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad14: u32, - } - - pub struct in_addr { - pub s_addr: in_addr_t, - } - - pub struct in6_addr { - pub s6_addr: [u8; 16], - } - - pub struct ip_mreq { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct ip_mreqn { - pub imr_multiaddr: in_addr, - pub imr_address: in_addr, - pub imr_ifindex: ::c_int, - } - - pub struct ipv6_mreq { - pub ipv6mr_multiaddr: in6_addr, - pub ipv6mr_interface: ::c_uint, - } - - pub struct hostent { - pub h_name: *mut ::c_char, - pub h_aliases: *mut *mut ::c_char, - pub h_addrtype: ::c_int, - pub h_length: ::c_int, - pub h_addr_list: *mut *mut ::c_char, - } - - pub struct iovec { - pub iov_base: *mut ::c_void, - pub iov_len: ::size_t, - } - - pub struct pollfd { - pub fd: ::c_int, - pub events: ::c_short, - pub revents: ::c_short, - } - - pub struct winsize { - pub ws_row: ::c_ushort, - pub ws_col: ::c_ushort, - pub ws_xpixel: ::c_ushort, - pub ws_ypixel: ::c_ushort, - } - - pub struct linger { - pub l_onoff: ::c_int, - pub l_linger: ::c_int, - } - - pub struct sigval { - // Actually a union of an int and a void* - pub sival_ptr: *mut ::c_void - } - - // - pub struct itimerval { - pub it_interval: ::timeval, - pub it_value: ::timeval, - } - - // - pub struct tms { - pub tms_utime: ::clock_t, - pub tms_stime: ::clock_t, - pub tms_cutime: ::clock_t, - pub tms_cstime: ::clock_t, - } - - pub struct servent { - pub s_name: *mut ::c_char, - pub s_aliases: *mut *mut ::c_char, - pub s_port: ::c_int, - pub s_proto: *mut ::c_char, - } - - pub struct protoent { - pub p_name: *mut ::c_char, - pub p_aliases: *mut *mut ::c_char, - pub p_proto: ::c_int, - } - - pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, - __td: *mut ::c_void, - __lock: [::c_int; 2], - __err: ::c_int, - __ret: ::ssize_t, - pub aio_offset: off_t, - __next: *mut ::c_void, - __prev: *mut ::c_void, - #[cfg(target_pointer_width = "32")] - __dummy4: [::c_char; 24], - #[cfg(target_pointer_width = "64")] - __dummy4: [::c_char; 16], - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - pub __c_ispeed: ::speed_t, - pub __c_ospeed: ::speed_t, - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct ucred { - pub pid: ::pid_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - } - - pub struct sockaddr { - pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_in { - pub sin_family: sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [u8; 8], - } - - pub struct sockaddr_in6 { - pub sin6_family: sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - } - - pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: socklen_t, - - pub ai_addr: *mut ::sockaddr, - - pub ai_canonname: *mut c_char, - - pub ai_next: *mut addrinfo, - } - - pub struct sockaddr_ll { - pub sll_family: ::c_ushort, - pub sll_protocol: ::c_ushort, - pub sll_ifindex: ::c_int, - pub sll_hatype: ::c_ushort, - pub sll_pkttype: ::c_uchar, - pub sll_halen: ::c_uchar, - pub sll_addr: [::c_uchar; 8] - } - - pub struct fd_set { - fds_bits: [::c_ulong; FD_SETSIZE / ULONG_SIZE], - } - - pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - pub tm_gmtoff: ::c_long, - pub tm_zone: *const ::c_char, - } - - pub struct sched_param { - pub sched_priority: ::c_int, - pub sched_ss_low_priority: ::c_int, - pub sched_ss_repl_period: ::timespec, - pub sched_ss_init_budget: ::timespec, - pub sched_ss_max_repl: ::c_int, - } - - pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, - } - - pub struct epoll_event { - pub events: u32, - pub u64: u64, - } - - pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, - } - - pub struct rlimit64 { - pub rlim_cur: rlim64_t, - pub rlim_max: rlim64_t, - } - - pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - } - - pub struct ifaddrs { - pub ifa_next: *mut ifaddrs, - pub ifa_name: *mut c_char, - pub ifa_flags: ::c_uint, - pub ifa_addr: *mut ::sockaddr, - pub ifa_netmask: *mut ::sockaddr, - pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union - pub ifa_data: *mut ::c_void - } - - pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - } - - pub struct spwd { - pub sp_namp: *mut ::c_char, - pub sp_pwdp: *mut ::c_char, - pub sp_lstchg: ::c_long, - pub sp_min: ::c_long, - pub sp_max: ::c_long, - pub sp_warn: ::c_long, - pub sp_inact: ::c_long, - pub sp_expire: ::c_long, - pub sp_flag: ::c_ulong, - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - #[cfg(target_endian = "little")] - pub f_fsid: ::c_ulong, - #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))] - __f_unused: ::c_int, - #[cfg(target_endian = "big")] - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct dqblk { - pub dqb_bhardlimit: u64, - pub dqb_bsoftlimit: u64, - pub dqb_curspace: u64, - pub dqb_ihardlimit: u64, - pub dqb_isoftlimit: u64, - pub dqb_curinodes: u64, - pub dqb_btime: u64, - pub dqb_itime: u64, - pub dqb_valid: u32, - } - - pub struct signalfd_siginfo { - pub ssi_signo: u32, - pub ssi_errno: i32, - pub ssi_code: i32, - pub ssi_pid: u32, - pub ssi_uid: u32, - pub ssi_fd: i32, - pub ssi_tid: u32, - pub ssi_band: u32, - pub ssi_overrun: u32, - pub ssi_trapno: u32, - pub ssi_status: i32, - pub ssi_int: i32, - pub ssi_ptr: u64, - pub ssi_utime: u64, - pub ssi_stime: u64, - pub ssi_addr: u64, - pub ssi_addr_lsb: u16, - _pad2: u16, - pub ssi_syscall: i32, - pub ssi_call_addr: u64, - pub ssi_arch: u32, - _pad: [u8; 28], - } - - pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, - } - - pub struct fsid_t { - __val: [::c_int; 2], - } - - pub struct cpu_set_t { - #[cfg(all(target_pointer_width = "32", - not(target_arch = "x86_64")))] - bits: [u32; 32], - #[cfg(not(all(target_pointer_width = "32", - not(target_arch = "x86_64"))))] - bits: [u64; 16], - } - - pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, - } - - // System V IPC - pub struct msginfo { - pub msgpool: ::c_int, - pub msgmap: ::c_int, - pub msgmax: ::c_int, - pub msgmnb: ::c_int, - pub msgmni: ::c_int, - pub msgssz: ::c_int, - pub msgtql: ::c_int, - pub msgseg: ::c_ushort, - } - - pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::c_uint, - } - - pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, - } - - pub struct input_event { - pub time: ::timeval, - pub type_: ::__u16, - pub code: ::__u16, - pub value: ::__s32, - } - - pub struct input_id { - pub bustype: ::__u16, - pub vendor: ::__u16, - pub product: ::__u16, - pub version: ::__u16, - } - - pub struct input_absinfo { - pub value: ::__s32, - pub minimum: ::__s32, - pub maximum: ::__s32, - pub fuzz: ::__s32, - pub flat: ::__s32, - pub resolution: ::__s32, - } - - pub struct input_keymap_entry { - pub flags: ::__u8, - pub len: ::__u8, - pub index: ::__u16, - pub keycode: ::__u32, - pub scancode: [::__u8; 32], - } - - pub struct input_mask { - pub type_: ::__u32, - pub codes_size: ::__u32, - pub codes_ptr: ::__u64, - } - - pub struct ff_replay { - pub length: ::__u16, - pub delay: ::__u16, - } - - pub struct ff_trigger { - pub button: ::__u16, - pub interval: ::__u16, - } - - pub struct ff_envelope { - pub attack_length: ::__u16, - pub attack_level: ::__u16, - pub fade_length: ::__u16, - pub fade_level: ::__u16, - } - - pub struct ff_constant_effect { - pub level: ::__s16, - pub envelope: ff_envelope, - } - - pub struct ff_ramp_effect { - pub start_level: ::__s16, - pub end_level: ::__s16, - pub envelope: ff_envelope, - } - - pub struct ff_condition_effect { - pub right_saturation: ::__u16, - pub left_saturation: ::__u16, - - pub right_coeff: ::__s16, - pub left_coeff: ::__s16, - - pub deadband: ::__u16, - pub center: ::__s16, - } - - pub struct ff_periodic_effect { - pub waveform: ::__u16, - pub period: ::__u16, - pub magnitude: ::__s16, - pub offset: ::__s16, - pub phase: ::__u16, - - pub envelope: ff_envelope, - - pub custom_len: ::__u32, - pub custom_data: *mut ::__s16, - } - - pub struct ff_rumble_effect { - pub strong_magnitude: ::__u16, - pub weak_magnitude: ::__u16, - } - - pub struct ff_effect { - pub type_: ::__u16, - pub id: ::__s16, - pub direction: ::__u16, - pub trigger: ff_trigger, - pub replay: ff_replay, - // FIXME this is actually a union - #[cfg(target_pointer_width = "64")] - pub u: [u64; 4], - #[cfg(target_pointer_width = "32")] - pub u: [u32; 7], - } - - pub struct dl_phdr_info { - #[cfg(target_pointer_width = "64")] - pub dlpi_addr: Elf64_Addr, - #[cfg(target_pointer_width = "32")] - pub dlpi_addr: Elf32_Addr, - - pub dlpi_name: *const ::c_char, - - #[cfg(target_pointer_width = "64")] - pub dlpi_phdr: *const Elf64_Phdr, - #[cfg(target_pointer_width = "32")] - pub dlpi_phdr: *const Elf32_Phdr, - - #[cfg(target_pointer_width = "64")] - pub dlpi_phnum: Elf64_Half, - #[cfg(target_pointer_width = "32")] - pub dlpi_phnum: Elf32_Half, - - pub dlpi_adds: ::c_ulonglong, - pub dlpi_subs: ::c_ulonglong, - pub dlpi_tls_modid: ::size_t, - pub dlpi_tls_data: *mut ::c_void, - } - - pub struct Elf32_Phdr { - pub p_type: Elf32_Word, - pub p_offset: Elf32_Off, - pub p_vaddr: Elf32_Addr, - pub p_paddr: Elf32_Addr, - pub p_filesz: Elf32_Word, - pub p_memsz: Elf32_Word, - pub p_flags: Elf32_Word, - pub p_align: Elf32_Word, - } - - pub struct Elf64_Phdr { - pub p_type: Elf64_Word, - pub p_flags: Elf64_Word, - pub p_offset: Elf64_Off, - pub p_vaddr: Elf64_Addr, - pub p_paddr: Elf64_Addr, - pub p_filesz: Elf64_Xword, - pub p_memsz: Elf64_Xword, - pub p_align: Elf64_Xword, - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct pthread_attr_t { - __size: [u64; 7] - } - - pub struct sigset_t { - __val: [::c_ulong; 16], - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - __pad1: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - __pad2: ::socklen_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub __pad1: ::c_int, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct sem_t { - __val: [::c_int; 8], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct termios2 { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; 19], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - } - - pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_uint, - } -} - -s_no_extra_traits! { - pub struct sysinfo { - pub uptime: ::c_ulong, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub __reserved: [::c_char; 256], - } - - pub struct sockaddr_un { - pub sun_family: sa_family_t, - pub sun_path: [::c_char; 108] - } - - pub struct sockaddr_storage { - pub ss_family: sa_family_t, - __ss_pad2: [u8; 128 - 2 - 8], - __ss_align: ::size_t, - } - - pub struct utsname { - pub sysname: [::c_char; 65], - pub nodename: [::c_char; 65], - pub release: [::c_char; 65], - pub version: [::c_char; 65], - pub machine: [::c_char; 65], - pub domainname: [::c_char; 65] - } - - pub struct dirent { - pub d_ino: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], - } - - pub struct dirent64 { - pub d_ino: ::ino64_t, - pub d_off: ::off64_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], - } - - // x32 compatibility - // See https://sourceware.org/bugzilla/show_bug.cgi?id=21279 - pub struct mq_attr { - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub mq_flags: i64, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub mq_maxmsg: i64, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub mq_msgsize: i64, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub mq_curmsgs: i64, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pad: [i64; 4], - - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_flags: ::c_long, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_maxmsg: ::c_long, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_msgsize: ::c_long, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_curmsgs: ::c_long, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pad: [::c_long; 4], - } - - pub struct sockaddr_nl { - pub nl_family: ::sa_family_t, - nl_pad: ::c_ushort, - pub nl_pid: u32, - pub nl_groups: u32 - } - - pub struct sigevent { - pub sigev_value: ::sigval, - pub sigev_signo: ::c_int, - pub sigev_notify: ::c_int, - pub sigev_notify_function: fn(::sigval), - pub sigev_notify_attributes: *mut pthread_attr_t, - pub __pad: [::c_char; 56 - 3 * 8 /* 8 == sizeof(long) */], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for sysinfo { - fn eq(&self, other: &sysinfo) -> bool { - self.uptime == other.uptime - && self.loads == other.loads - && self.totalram == other.totalram - && self.freeram == other.freeram - && self.sharedram == other.sharedram - && self.bufferram == other.bufferram - && self.totalswap == other.totalswap - && self.freeswap == other.freeswap - && self.procs == other.procs - && self.pad == other.pad - && self.totalhigh == other.totalhigh - && self.freehigh == other.freehigh - && self.mem_unit == other.mem_unit - && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for sysinfo {} - impl ::fmt::Debug for sysinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sysinfo") - .field("uptime", &self.uptime) - .field("loads", &self.loads) - .field("totalram", &self.totalram) - .field("freeram", &self.freeram) - .field("sharedram", &self.sharedram) - .field("bufferram", &self.bufferram) - .field("totalswap", &self.totalswap) - .field("freeswap", &self.freeswap) - .field("procs", &self.procs) - .field("pad", &self.pad) - .field("totalhigh", &self.totalhigh) - .field("freehigh", &self.freehigh) - .field("mem_unit", &self.mem_unit) - // FIXME: .field("__reserved", &self.__reserved) - .finish() - } - } - impl ::hash::Hash for sysinfo { - fn hash(&self, state: &mut H) { - self.uptime.hash(state); - self.loads.hash(state); - self.totalram.hash(state); - self.freeram.hash(state); - self.sharedram.hash(state); - self.bufferram.hash(state); - self.totalswap.hash(state); - self.freeswap.hash(state); - self.procs.hash(state); - self.pad.hash(state); - self.totalhigh.hash(state); - self.freehigh.hash(state); - self.mem_unit.hash(state); - self.__reserved.hash(state); - } - } - - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for sockaddr_un {} - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) - .finish() - } - } - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_family == other.ss_family - && self.__ss_align == other.__ss_align - && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_family", &self.ss_family) - .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_pad2", &self.__ss_pad2) - .finish() - } - } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_family.hash(state); - self.__ss_align.hash(state); - self.__ss_pad2.hash(state); - } - } - - impl PartialEq for utsname { - fn eq(&self, other: &utsname) -> bool { - self.sysname - .iter() - .zip(other.sysname.iter()) - .all(|(a,b)| a == b) - && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a,b)| a == b) - && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a,b)| a == b) - && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a,b)| a == b) - && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for utsname {} - impl ::fmt::Debug for utsname { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) - .finish() - } - } - impl ::hash::Hash for utsname { - fn hash(&self, state: &mut H) { - self.sysname.hash(state); - self.nodename.hash(state); - self.release.hash(state); - self.version.hash(state); - self.machine.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for dirent64 { - fn eq(&self, other: &dirent64) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent64 {} - impl ::fmt::Debug for dirent64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent64") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - impl ::hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for mq_attr { - fn eq(&self, other: &mq_attr) -> bool { - self.mq_flags == other.mq_flags && - self.mq_maxmsg == other.mq_maxmsg && - self.mq_msgsize == other.mq_msgsize && - self.mq_curmsgs == other.mq_curmsgs - } - } - impl Eq for mq_attr {} - impl ::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mq_attr") - .field("mq_flags", &self.mq_flags) - .field("mq_maxmsg", &self.mq_maxmsg) - .field("mq_msgsize", &self.mq_msgsize) - .field("mq_curmsgs", &self.mq_curmsgs) - .finish() - } - } - impl ::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { - self.mq_flags.hash(state); - self.mq_maxmsg.hash(state); - self.mq_msgsize.hash(state); - self.mq_curmsgs.hash(state); - } - } - - impl PartialEq for sockaddr_nl { - fn eq(&self, other: &sockaddr_nl) -> bool { - self.nl_family == other.nl_family && - self.nl_pid == other.nl_pid && - self.nl_groups == other.nl_groups - } - } - impl Eq for sockaddr_nl {} - impl ::fmt::Debug for sockaddr_nl { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_nl") - .field("nl_family", &self.nl_family) - .field("nl_pid", &self.nl_pid) - .field("nl_groups", &self.nl_groups) - .finish() - } - } - impl ::hash::Hash for sockaddr_nl { - fn hash(&self, state: &mut H) { - self.nl_family.hash(state); - self.nl_pid.hash(state); - self.nl_groups.hash(state); - } - } - - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_value == other.sigev_value - && self.sigev_signo == other.sigev_signo - && self.sigev_notify == other.sigev_notify - && self.sigev_notify_function - == other.sigev_notify_function - && self.sigev_notify_attributes - == other.sigev_notify_attributes - } - } - impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sigevent") - .field("sigev_value", &self.sigev_value) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_notify", &self.sigev_notify) - .field("sigev_notify_function", &self.sigev_notify_function) - .field("sigev_notify_attributes", - &self.sigev_notify_attributes) - .finish() - } - } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_value.hash(state); - self.sigev_signo.hash(state); - self.sigev_notify.hash(state); - self.sigev_notify_function.hash(state); - self.sigev_notify_attributes.hash(state); - } - } - } -} - -// PUB_CONST - -pub const INT_MIN: c_int = -2147483648; -pub const INT_MAX: c_int = 2147483647; - -pub const SIG_DFL: sighandler_t = 0 as sighandler_t; -pub const SIG_IGN: sighandler_t = 1 as sighandler_t; -pub const SIG_ERR: sighandler_t = !0 as sighandler_t; - -pub const DT_UNKNOWN: u8 = 0; -pub const DT_FIFO: u8 = 1; -pub const DT_CHR: u8 = 2; -pub const DT_DIR: u8 = 4; -pub const DT_BLK: u8 = 6; -pub const DT_REG: u8 = 8; -pub const DT_LNK: u8 = 10; -pub const DT_SOCK: u8 = 12; - -pub const FD_CLOEXEC: ::c_int = 0x1; - -pub const USRQUOTA: ::c_int = 0; -pub const GRPQUOTA: ::c_int = 1; - -pub const SIGIOT: ::c_int = 6; - -pub const S_ISUID: ::c_int = 0x800; -pub const S_ISGID: ::c_int = 0x400; -pub const S_ISVTX: ::c_int = 0x200; - -pub const IF_NAMESIZE: ::size_t = 16; -pub const IFNAMSIZ: ::size_t = IF_NAMESIZE; - -pub const LOG_EMERG: ::c_int = 0; -pub const LOG_ALERT: ::c_int = 1; -pub const LOG_CRIT: ::c_int = 2; -pub const LOG_ERR: ::c_int = 3; -pub const LOG_WARNING: ::c_int = 4; -pub const LOG_NOTICE: ::c_int = 5; -pub const LOG_INFO: ::c_int = 6; -pub const LOG_DEBUG: ::c_int = 7; - -pub const LOG_KERN: ::c_int = 0; -pub const LOG_USER: ::c_int = 1 << 3; -pub const LOG_MAIL: ::c_int = 2 << 3; -pub const LOG_DAEMON: ::c_int = 3 << 3; -pub const LOG_AUTH: ::c_int = 4 << 3; -pub const LOG_SYSLOG: ::c_int = 5 << 3; -pub const LOG_LPR: ::c_int = 6 << 3; -pub const LOG_NEWS: ::c_int = 7 << 3; -pub const LOG_UUCP: ::c_int = 8 << 3; -pub const LOG_LOCAL0: ::c_int = 16 << 3; -pub const LOG_LOCAL1: ::c_int = 17 << 3; -pub const LOG_LOCAL2: ::c_int = 18 << 3; -pub const LOG_LOCAL3: ::c_int = 19 << 3; -pub const LOG_LOCAL4: ::c_int = 20 << 3; -pub const LOG_LOCAL5: ::c_int = 21 << 3; -pub const LOG_LOCAL6: ::c_int = 22 << 3; -pub const LOG_LOCAL7: ::c_int = 23 << 3; - -pub const LOG_PID: ::c_int = 0x01; -pub const LOG_CONS: ::c_int = 0x02; -pub const LOG_ODELAY: ::c_int = 0x04; -pub const LOG_NDELAY: ::c_int = 0x08; -pub const LOG_NOWAIT: ::c_int = 0x10; - -pub const LOG_PRIMASK: ::c_int = 7; -pub const LOG_FACMASK: ::c_int = 0x3f8; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -pub const PRIO_MIN: ::c_int = -20; -pub const PRIO_MAX: ::c_int = 20; - -pub const IPPROTO_ICMP: ::c_int = 1; -pub const IPPROTO_ICMPV6: ::c_int = 58; -pub const IPPROTO_TCP: ::c_int = 6; -pub const IPPROTO_UDP: ::c_int = 17; -pub const IPPROTO_IP: ::c_int = 0; -pub const IPPROTO_IPV6: ::c_int = 41; - -pub const INADDR_LOOPBACK: in_addr_t = 2130706433; -pub const INADDR_ANY: in_addr_t = 0; -pub const INADDR_BROADCAST: in_addr_t = 4294967295; -pub const INADDR_NONE: in_addr_t = 4294967295; - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 2147483647; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; - -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; - -// Linux-specific fcntls -pub const F_SETLEASE: ::c_int = 1024; -pub const F_GETLEASE: ::c_int = 1025; -pub const F_NOTIFY: ::c_int = 1026; -pub const F_CANCELLK: ::c_int = 1029; -pub const F_DUPFD_CLOEXEC: ::c_int = 1030; -pub const F_SETPIPE_SZ: ::c_int = 1031; -pub const F_GETPIPE_SZ: ::c_int = 1032; -pub const F_ADD_SEALS: ::c_int = 1033; -pub const F_GET_SEALS: ::c_int = 1034; - -pub const F_SEAL_SEAL: ::c_int = 0x0001; -pub const F_SEAL_SHRINK: ::c_int = 0x0002; -pub const F_SEAL_GROW: ::c_int = 0x0004; -pub const F_SEAL_WRITE: ::c_int = 0x0008; - -// FIXME(#235): Include file sealing fcntls once we have a way to verify them. - -pub const SIGTRAP: ::c_int = 5; - -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; - -pub const CLOCK_REALTIME: ::clockid_t = 0; -pub const CLOCK_MONOTONIC: ::clockid_t = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 3; -pub const CLOCK_MONOTONIC_RAW: ::clockid_t = 4; -pub const CLOCK_REALTIME_COARSE: ::clockid_t = 5; -pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = 6; -pub const CLOCK_BOOTTIME: ::clockid_t = 7; -pub const CLOCK_REALTIME_ALARM: ::clockid_t = 8; -pub const CLOCK_BOOTTIME_ALARM: ::clockid_t = 9; -pub const CLOCK_SGI_CYCLE: ::clockid_t = 10; -pub const CLOCK_TAI: ::clockid_t = 11; -pub const TIMER_ABSTIME: ::c_int = 1; - -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_LOCKS: ::c_int = 10; -pub const RLIMIT_SIGPENDING: ::c_int = 11; -pub const RLIMIT_MSGQUEUE: ::c_int = 12; -pub const RLIMIT_NICE: ::c_int = 13; -pub const RLIMIT_RTPRIO: ::c_int = 14; - -pub const RUSAGE_SELF: ::c_int = 0; - -pub const O_RDONLY: ::c_int = 0; -pub const O_WRONLY: ::c_int = 1; -pub const O_RDWR: ::c_int = 2; - -pub const S_IFIFO: ::mode_t = 4096; -pub const S_IFCHR: ::mode_t = 8192; -pub const S_IFBLK: ::mode_t = 24576; -pub const S_IFDIR: ::mode_t = 16384; -pub const S_IFREG: ::mode_t = 32768; -pub const S_IFLNK: ::mode_t = 40960; -pub const S_IFSOCK: ::mode_t = 49152; -pub const S_IFMT: ::mode_t = 61440; -pub const S_IRWXU: ::mode_t = 448; -pub const S_IXUSR: ::mode_t = 64; -pub const S_IWUSR: ::mode_t = 128; -pub const S_IRUSR: ::mode_t = 256; -pub const S_IRWXG: ::mode_t = 56; -pub const S_IXGRP: ::mode_t = 8; -pub const S_IWGRP: ::mode_t = 16; -pub const S_IRGRP: ::mode_t = 32; -pub const S_IRWXO: ::mode_t = 7; -pub const S_IXOTH: ::mode_t = 1; -pub const S_IWOTH: ::mode_t = 2; -pub const S_IROTH: ::mode_t = 4; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const LC_CTYPE: ::c_int = 0; -pub const LC_NUMERIC: ::c_int = 1; -pub const LC_TIME: ::c_int = 2; -pub const LC_COLLATE: ::c_int = 3; -pub const LC_MONETARY: ::c_int = 4; -pub const LC_MESSAGES: ::c_int = 5; -pub const LC_ALL: ::c_int = 6; -pub const LC_CTYPE_MASK: ::c_int = 1 << LC_CTYPE; -pub const LC_NUMERIC_MASK: ::c_int = 1 << LC_NUMERIC; -pub const LC_TIME_MASK: ::c_int = 1 << LC_TIME; -pub const LC_COLLATE_MASK: ::c_int = 1 << LC_COLLATE; -pub const LC_MONETARY_MASK: ::c_int = 1 << LC_MONETARY; -pub const LC_MESSAGES_MASK: ::c_int = 1 << LC_MESSAGES; -// LC_ALL_MASK defined per platform - -pub const MAP_FILE: ::c_int = 0x0000; -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_FIXED: ::c_int = 0x0010; - -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -// MS_ flags for msync(2) -pub const MS_ASYNC: ::c_int = 0x0001; -pub const MS_INVALIDATE: ::c_int = 0x0002; -pub const MS_SYNC: ::c_int = 0x0004; - -// MS_ flags for mount(2) -pub const MS_RDONLY: ::c_ulong = 0x01; -pub const MS_NOSUID: ::c_ulong = 0x02; -pub const MS_NODEV: ::c_ulong = 0x04; -pub const MS_NOEXEC: ::c_ulong = 0x08; -pub const MS_SYNCHRONOUS: ::c_ulong = 0x10; -pub const MS_REMOUNT: ::c_ulong = 0x20; -pub const MS_MANDLOCK: ::c_ulong = 0x40; -pub const MS_DIRSYNC: ::c_ulong = 0x80; -pub const MS_NOATIME: ::c_ulong = 0x0400; -pub const MS_NODIRATIME: ::c_ulong = 0x0800; -pub const MS_BIND: ::c_ulong = 0x1000; -pub const MS_MOVE: ::c_ulong = 0x2000; -pub const MS_REC: ::c_ulong = 0x4000; -pub const MS_SILENT: ::c_ulong = 0x8000; -pub const MS_POSIXACL: ::c_ulong = 0x010000; -pub const MS_UNBINDABLE: ::c_ulong = 0x020000; -pub const MS_PRIVATE: ::c_ulong = 0x040000; -pub const MS_SLAVE: ::c_ulong = 0x080000; -pub const MS_SHARED: ::c_ulong = 0x100000; -pub const MS_RELATIME: ::c_ulong = 0x200000; -pub const MS_KERNMOUNT: ::c_ulong = 0x400000; -pub const MS_I_VERSION: ::c_ulong = 0x800000; -pub const MS_STRICTATIME: ::c_ulong = 0x1000000; -pub const MS_ACTIVE: ::c_ulong = 0x40000000; -pub const MS_NOUSER: ::c_ulong = 0x80000000; -pub const MS_MGC_VAL: ::c_ulong = 0xc0ed0000; -pub const MS_MGC_MSK: ::c_ulong = 0xffff0000; -pub const MS_RMT_MASK: ::c_ulong = 0x800051; - -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EWOULDBLOCK: ::c_int = EAGAIN; - -pub const SCM_RIGHTS: ::c_int = 0x01; -pub const SCM_CREDENTIALS: ::c_int = 0x02; - -pub const PROT_GROWSDOWN: ::c_int = 0x1000000; -pub const PROT_GROWSUP: ::c_int = 0x2000000; - -pub const MAP_TYPE: ::c_int = 0x000f; - -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; -pub const MADV_FREE: ::c_int = 8; -pub const MADV_REMOVE: ::c_int = 9; -pub const MADV_DONTFORK: ::c_int = 10; -pub const MADV_DOFORK: ::c_int = 11; -pub const MADV_MERGEABLE: ::c_int = 12; -pub const MADV_UNMERGEABLE: ::c_int = 13; -pub const MADV_HUGEPAGE: ::c_int = 14; -pub const MADV_NOHUGEPAGE: ::c_int = 15; -pub const MADV_DONTDUMP: ::c_int = 16; -pub const MADV_DODUMP: ::c_int = 17; -pub const MADV_HWPOISON: ::c_int = 100; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; - -pub const IFF_UP: ::c_int = 0x1; -pub const IFF_BROADCAST: ::c_int = 0x2; -pub const IFF_DEBUG: ::c_int = 0x4; -pub const IFF_LOOPBACK: ::c_int = 0x8; -pub const IFF_POINTOPOINT: ::c_int = 0x10; -pub const IFF_NOTRAILERS: ::c_int = 0x20; -pub const IFF_RUNNING: ::c_int = 0x40; -pub const IFF_NOARP: ::c_int = 0x80; -pub const IFF_PROMISC: ::c_int = 0x100; -pub const IFF_ALLMULTI: ::c_int = 0x200; -pub const IFF_MASTER: ::c_int = 0x400; -pub const IFF_SLAVE: ::c_int = 0x800; -pub const IFF_MULTICAST: ::c_int = 0x1000; -pub const IFF_PORTSEL: ::c_int = 0x2000; -pub const IFF_AUTOMEDIA: ::c_int = 0x4000; -pub const IFF_DYNAMIC: ::c_int = 0x8000; -pub const IFF_TUN: ::c_int = 0x0001; -pub const IFF_TAP: ::c_int = 0x0002; -pub const IFF_NO_PI: ::c_int = 0x1000; - -pub const SOL_IP: ::c_int = 0; -pub const SOL_TCP: ::c_int = 6; -pub const SOL_UDP: ::c_int = 17; -pub const SOL_IPV6: ::c_int = 41; -pub const SOL_ICMPV6: ::c_int = 58; -pub const SOL_RAW: ::c_int = 255; -pub const SOL_DECNET: ::c_int = 261; -pub const SOL_X25: ::c_int = 262; -pub const SOL_PACKET: ::c_int = 263; -pub const SOL_ATM: ::c_int = 264; -pub const SOL_AAL: ::c_int = 265; -pub const SOL_IRDA: ::c_int = 266; -pub const SOL_NETBEUI: ::c_int = 267; -pub const SOL_LLC: ::c_int = 268; -pub const SOL_DCCP: ::c_int = 269; -pub const SOL_NETLINK: ::c_int = 270; -pub const SOL_TIPC: ::c_int = 271; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_UNIX: ::c_int = 1; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_INET: ::c_int = 2; -pub const AF_AX25: ::c_int = 3; -pub const AF_IPX: ::c_int = 4; -pub const AF_APPLETALK: ::c_int = 5; -pub const AF_NETROM: ::c_int = 6; -pub const AF_BRIDGE: ::c_int = 7; -pub const AF_ATMPVC: ::c_int = 8; -pub const AF_X25: ::c_int = 9; -pub const AF_INET6: ::c_int = 10; -pub const AF_ROSE: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_NETBEUI: ::c_int = 13; -pub const AF_SECURITY: ::c_int = 14; -pub const AF_KEY: ::c_int = 15; -pub const AF_NETLINK: ::c_int = 16; -pub const AF_ROUTE: ::c_int = AF_NETLINK; -pub const AF_PACKET: ::c_int = 17; -pub const AF_ASH: ::c_int = 18; -pub const AF_ECONET: ::c_int = 19; -pub const AF_ATMSVC: ::c_int = 20; -pub const AF_RDS: ::c_int = 21; -pub const AF_SNA: ::c_int = 22; -pub const AF_IRDA: ::c_int = 23; -pub const AF_PPPOX: ::c_int = 24; -pub const AF_WANPIPE: ::c_int = 25; -pub const AF_LLC: ::c_int = 26; -pub const AF_CAN: ::c_int = 29; -pub const AF_TIPC: ::c_int = 30; -pub const AF_BLUETOOTH: ::c_int = 31; -pub const AF_IUCV: ::c_int = 32; -pub const AF_RXRPC: ::c_int = 33; -pub const AF_ISDN: ::c_int = 34; -pub const AF_PHONET: ::c_int = 35; -pub const AF_IEEE802154: ::c_int = 36; -pub const AF_CAIF: ::c_int = 37; -pub const AF_ALG: ::c_int = 38; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_UNIX: ::c_int = AF_UNIX; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_AX25: ::c_int = AF_AX25; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_NETROM: ::c_int = AF_NETROM; -pub const PF_BRIDGE: ::c_int = AF_BRIDGE; -pub const PF_ATMPVC: ::c_int = AF_ATMPVC; -pub const PF_X25: ::c_int = AF_X25; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_ROSE: ::c_int = AF_ROSE; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_NETBEUI: ::c_int = AF_NETBEUI; -pub const PF_SECURITY: ::c_int = AF_SECURITY; -pub const PF_KEY: ::c_int = AF_KEY; -pub const PF_NETLINK: ::c_int = AF_NETLINK; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_PACKET: ::c_int = AF_PACKET; -pub const PF_ASH: ::c_int = AF_ASH; -pub const PF_ECONET: ::c_int = AF_ECONET; -pub const PF_ATMSVC: ::c_int = AF_ATMSVC; -pub const PF_RDS: ::c_int = AF_RDS; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_IRDA: ::c_int = AF_IRDA; -pub const PF_PPPOX: ::c_int = AF_PPPOX; -pub const PF_WANPIPE: ::c_int = AF_WANPIPE; -pub const PF_LLC: ::c_int = AF_LLC; -pub const PF_CAN: ::c_int = AF_CAN; -pub const PF_TIPC: ::c_int = AF_TIPC; -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -pub const PF_IUCV: ::c_int = AF_IUCV; -pub const PF_RXRPC: ::c_int = AF_RXRPC; -pub const PF_ISDN: ::c_int = AF_ISDN; -pub const PF_PHONET: ::c_int = AF_PHONET; -pub const PF_IEEE802154: ::c_int = AF_IEEE802154; -pub const PF_CAIF: ::c_int = AF_CAIF; -pub const PF_ALG: ::c_int = AF_ALG; - -pub const SOMAXCONN: ::c_int = 128; - -pub const MSG_OOB: ::c_int = 1; -pub const MSG_PEEK: ::c_int = 2; -pub const MSG_DONTROUTE: ::c_int = 4; -pub const MSG_CTRUNC: ::c_int = 8; -pub const MSG_TRUNC: ::c_int = 0x20; -pub const MSG_DONTWAIT: ::c_int = 0x40; -pub const MSG_EOR: ::c_int = 0x80; -pub const MSG_WAITALL: ::c_int = 0x100; -pub const MSG_FIN: ::c_int = 0x200; -pub const MSG_SYN: ::c_int = 0x400; -pub const MSG_CONFIRM: ::c_int = 0x800; -pub const MSG_RST: ::c_int = 0x1000; -pub const MSG_ERRQUEUE: ::c_int = 0x2000; -pub const MSG_NOSIGNAL: ::c_int = 0x4000; -pub const MSG_MORE: ::c_int = 0x8000; -pub const MSG_WAITFORONE: ::c_int = 0x10000; -pub const MSG_FASTOPEN: ::c_int = 0x20000000; -pub const MSG_CMSG_CLOEXEC: ::c_int = 0x40000000; - -pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; - -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; - -pub const IP_TOS: ::c_int = 1; -pub const IP_TTL: ::c_int = 2; -pub const IP_HDRINCL: ::c_int = 3; -pub const IP_RECVTOS: ::c_int = 13; -pub const IP_FREEBIND: ::c_int = 15; -pub const IP_TRANSPARENT: ::c_int = 19; -pub const IP_MULTICAST_IF: ::c_int = 32; -pub const IP_MULTICAST_TTL: ::c_int = 33; -pub const IP_MULTICAST_LOOP: ::c_int = 34; -pub const IP_ADD_MEMBERSHIP: ::c_int = 35; -pub const IP_DROP_MEMBERSHIP: ::c_int = 36; - -pub const IPV6_UNICAST_HOPS: ::c_int = 16; -pub const IPV6_MULTICAST_IF: ::c_int = 17; -pub const IPV6_MULTICAST_HOPS: ::c_int = 18; -pub const IPV6_MULTICAST_LOOP: ::c_int = 19; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; -pub const IPV6_V6ONLY: ::c_int = 26; -pub const IPV6_RECVPKTINFO: ::c_int = 49; -pub const IPV6_RECVTCLASS: ::c_int = 66; -pub const IPV6_TCLASS: ::c_int = 67; - -pub const TCP_NODELAY: ::c_int = 1; -pub const TCP_MAXSEG: ::c_int = 2; -pub const TCP_CORK: ::c_int = 3; -pub const TCP_KEEPIDLE: ::c_int = 4; -pub const TCP_KEEPINTVL: ::c_int = 5; -pub const TCP_KEEPCNT: ::c_int = 6; -pub const TCP_SYNCNT: ::c_int = 7; -pub const TCP_LINGER2: ::c_int = 8; -pub const TCP_DEFER_ACCEPT: ::c_int = 9; -pub const TCP_WINDOW_CLAMP: ::c_int = 10; -pub const TCP_INFO: ::c_int = 11; -pub const TCP_QUICKACK: ::c_int = 12; -pub const TCP_CONGESTION: ::c_int = 13; - -pub const SO_DEBUG: ::c_int = 1; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; - -pub const SS_ONSTACK: ::c_int = 1; -pub const SS_DISABLE: ::c_int = 2; - -pub const PATH_MAX: ::c_int = 4096; - -pub const FD_SETSIZE: usize = 1024; - -pub const EPOLLIN: ::c_int = 0x1; -pub const EPOLLPRI: ::c_int = 0x2; -pub const EPOLLOUT: ::c_int = 0x4; -pub const EPOLLRDNORM: ::c_int = 0x40; -pub const EPOLLRDBAND: ::c_int = 0x80; -pub const EPOLLWRNORM: ::c_int = 0x100; -pub const EPOLLWRBAND: ::c_int = 0x200; -pub const EPOLLMSG: ::c_int = 0x400; -pub const EPOLLERR: ::c_int = 0x8; -pub const EPOLLHUP: ::c_int = 0x10; -pub const EPOLLET: ::c_int = 0x80000000; - -pub const EPOLL_CTL_ADD: ::c_int = 1; -pub const EPOLL_CTL_MOD: ::c_int = 3; -pub const EPOLL_CTL_DEL: ::c_int = 2; - -pub const MNT_DETACH: ::c_int = 0x2; -pub const MNT_EXPIRE: ::c_int = 0x4; - -pub const Q_GETFMT: ::c_int = 0x800004; -pub const Q_GETINFO: ::c_int = 0x800005; -pub const Q_SETINFO: ::c_int = 0x800006; -pub const QIF_BLIMITS: u32 = 1; -pub const QIF_SPACE: u32 = 2; -pub const QIF_ILIMITS: u32 = 4; -pub const QIF_INODES: u32 = 8; -pub const QIF_BTIME: u32 = 16; -pub const QIF_ITIME: u32 = 32; -pub const QIF_LIMITS: u32 = 5; -pub const QIF_USAGE: u32 = 10; -pub const QIF_TIMES: u32 = 48; -pub const QIF_ALL: u32 = 63; - -pub const MNT_FORCE: ::c_int = 0x1; - -pub const Q_SYNC: ::c_int = 0x800001; -pub const Q_QUOTAON: ::c_int = 0x800002; -pub const Q_QUOTAOFF: ::c_int = 0x800003; -pub const Q_GETQUOTA: ::c_int = 0x800007; -pub const Q_SETQUOTA: ::c_int = 0x800008; - -pub const TCIOFF: ::c_int = 2; -pub const TCION: ::c_int = 3; -pub const TCOOFF: ::c_int = 0; -pub const TCOON: ::c_int = 1; -pub const TCIFLUSH: ::c_int = 0; -pub const TCOFLUSH: ::c_int = 1; -pub const TCIOFLUSH: ::c_int = 2; -pub const NL0: ::c_int = 0x00000000; -pub const NL1: ::c_int = 0x00000100; -pub const TAB0: ::c_int = 0x00000000; -pub const CR0: ::c_int = 0x00000000; -pub const FF0: ::c_int = 0x00000000; -pub const BS0: ::c_int = 0x00000000; -pub const VT0: ::c_int = 0x00000000; -pub const VERASE: usize = 2; -pub const VKILL: usize = 3; -pub const VINTR: usize = 0; -pub const VQUIT: usize = 1; -pub const VLNEXT: usize = 15; -pub const IGNBRK: ::tcflag_t = 0x00000001; -pub const BRKINT: ::tcflag_t = 0x00000002; -pub const IGNPAR: ::tcflag_t = 0x00000004; -pub const PARMRK: ::tcflag_t = 0x00000008; -pub const INPCK: ::tcflag_t = 0x00000010; -pub const ISTRIP: ::tcflag_t = 0x00000020; -pub const INLCR: ::tcflag_t = 0x00000040; -pub const IGNCR: ::tcflag_t = 0x00000080; -pub const ICRNL: ::tcflag_t = 0x00000100; -pub const IXANY: ::tcflag_t = 0x00000800; -pub const IMAXBEL: ::tcflag_t = 0x00002000; -pub const OPOST: ::tcflag_t = 0x1; -pub const CS5: ::tcflag_t = 0x00000000; -pub const CRTSCTS: ::tcflag_t = 0x80000000; -pub const ECHO: ::tcflag_t = 0x00000008; -pub const OCRNL: ::tcflag_t = 0o000010; -pub const ONOCR: ::tcflag_t = 0o000020; -pub const ONLRET: ::tcflag_t = 0o000040; -pub const OFILL: ::tcflag_t = 0o000100; -pub const OFDEL: ::tcflag_t = 0o000200; - -pub const CLONE_VM: ::c_int = 0x100; -pub const CLONE_FS: ::c_int = 0x200; -pub const CLONE_FILES: ::c_int = 0x400; -pub const CLONE_SIGHAND: ::c_int = 0x800; -pub const CLONE_PTRACE: ::c_int = 0x2000; -pub const CLONE_VFORK: ::c_int = 0x4000; -pub const CLONE_PARENT: ::c_int = 0x8000; -pub const CLONE_THREAD: ::c_int = 0x10000; -pub const CLONE_NEWNS: ::c_int = 0x20000; -pub const CLONE_SYSVSEM: ::c_int = 0x40000; -pub const CLONE_SETTLS: ::c_int = 0x80000; -pub const CLONE_PARENT_SETTID: ::c_int = 0x100000; -pub const CLONE_CHILD_CLEARTID: ::c_int = 0x200000; -pub const CLONE_DETACHED: ::c_int = 0x400000; -pub const CLONE_UNTRACED: ::c_int = 0x800000; -pub const CLONE_CHILD_SETTID: ::c_int = 0x01000000; -pub const CLONE_NEWUTS: ::c_int = 0x04000000; -pub const CLONE_NEWIPC: ::c_int = 0x08000000; -pub const CLONE_NEWUSER: ::c_int = 0x10000000; -pub const CLONE_NEWPID: ::c_int = 0x20000000; -pub const CLONE_NEWNET: ::c_int = 0x40000000; -pub const CLONE_IO: ::c_int = 0x80000000; -pub const CLONE_NEWCGROUP: ::c_int = 0x02000000; - -pub const WNOHANG: ::c_int = 0x00000001; -pub const WUNTRACED: ::c_int = 0x00000002; -pub const WSTOPPED: ::c_int = WUNTRACED; -pub const WEXITED: ::c_int = 0x00000004; -pub const WCONTINUED: ::c_int = 0x00000008; -pub const WNOWAIT: ::c_int = 0x01000000; - -// ::Options set using PTRACE_SETOPTIONS. -pub const PTRACE_O_TRACESYSGOOD: ::c_int = 0x00000001; -pub const PTRACE_O_TRACEFORK: ::c_int = 0x00000002; -pub const PTRACE_O_TRACEVFORK: ::c_int = 0x00000004; -pub const PTRACE_O_TRACECLONE: ::c_int = 0x00000008; -pub const PTRACE_O_TRACEEXEC: ::c_int = 0x00000010; -pub const PTRACE_O_TRACEVFORKDONE: ::c_int = 0x00000020; -pub const PTRACE_O_TRACEEXIT: ::c_int = 0x00000040; -pub const PTRACE_O_TRACESECCOMP: ::c_int = 0x00000080; -pub const PTRACE_O_EXITKILL: ::c_int = 0x00100000; -pub const PTRACE_O_SUSPEND_SECCOMP: ::c_int = 0x00200000; -pub const PTRACE_O_MASK: ::c_int = 0x003000ff; - -// Wait extended result codes for the above trace options. -pub const PTRACE_EVENT_FORK: ::c_int = 1; -pub const PTRACE_EVENT_VFORK: ::c_int = 2; -pub const PTRACE_EVENT_CLONE: ::c_int = 3; -pub const PTRACE_EVENT_EXEC: ::c_int = 4; -pub const PTRACE_EVENT_VFORK_DONE: ::c_int = 5; -pub const PTRACE_EVENT_EXIT: ::c_int = 6; -pub const PTRACE_EVENT_SECCOMP: ::c_int = 7; -// PTRACE_EVENT_STOP was added to glibc in 2.26 -// pub const PTRACE_EVENT_STOP: ::c_int = 128; - -pub const __WNOTHREAD: ::c_int = 0x20000000; -pub const __WALL: ::c_int = 0x40000000; -pub const __WCLONE: ::c_int = 0x80000000; - -pub const SPLICE_F_MOVE: ::c_uint = 0x01; -pub const SPLICE_F_NONBLOCK: ::c_uint = 0x02; -pub const SPLICE_F_MORE: ::c_uint = 0x04; -pub const SPLICE_F_GIFT: ::c_uint = 0x08; - -pub const RTLD_LOCAL: ::c_int = 0; -pub const RTLD_LAZY: ::c_int = 1; - -pub const POSIX_FADV_NORMAL: ::c_int = 0; -pub const POSIX_FADV_RANDOM: ::c_int = 1; -pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_FADV_WILLNEED: ::c_int = 3; - -pub const AT_FDCWD: ::c_int = -100; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x100; -pub const AT_REMOVEDIR: ::c_int = 0x200; -pub const AT_EACCESS: ::c_int = 0x200; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; -pub const AT_NO_AUTOMOUNT: ::c_int = 0x800; -pub const AT_EMPTY_PATH: ::c_int = 0x1000; - -pub const LOG_CRON: ::c_int = 9 << 3; -pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -pub const LOG_FTP: ::c_int = 11 << 3; -pub const LOG_PERROR: ::c_int = 0x20; - -pub const PIPE_BUF: usize = 4096; - -pub const SI_LOAD_SHIFT: ::c_uint = 16; - -pub const CLD_EXITED: ::c_int = 1; -pub const CLD_KILLED: ::c_int = 2; -pub const CLD_DUMPED: ::c_int = 3; -pub const CLD_TRAPPED: ::c_int = 4; -pub const CLD_STOPPED: ::c_int = 5; -pub const CLD_CONTINUED: ::c_int = 6; - -pub const SIGEV_SIGNAL: ::c_int = 0; -pub const SIGEV_NONE: ::c_int = 1; -pub const SIGEV_THREAD: ::c_int = 2; - -pub const P_ALL: idtype_t = 0; -pub const P_PID: idtype_t = 1; -pub const P_PGID: idtype_t = 2; - -pub const UTIME_OMIT: c_long = 1073741822; -pub const UTIME_NOW: c_long = 1073741823; - -pub const POLLIN: ::c_short = 0x1; -pub const POLLPRI: ::c_short = 0x2; -pub const POLLOUT: ::c_short = 0x4; -pub const POLLERR: ::c_short = 0x8; -pub const POLLHUP: ::c_short = 0x10; -pub const POLLNVAL: ::c_short = 0x20; -pub const POLLRDNORM: ::c_short = 0x040; -pub const POLLRDBAND: ::c_short = 0x080; - -pub const ABDAY_1: ::nl_item = 0x20000; -pub const ABDAY_2: ::nl_item = 0x20001; -pub const ABDAY_3: ::nl_item = 0x20002; -pub const ABDAY_4: ::nl_item = 0x20003; -pub const ABDAY_5: ::nl_item = 0x20004; -pub const ABDAY_6: ::nl_item = 0x20005; -pub const ABDAY_7: ::nl_item = 0x20006; - -pub const DAY_1: ::nl_item = 0x20007; -pub const DAY_2: ::nl_item = 0x20008; -pub const DAY_3: ::nl_item = 0x20009; -pub const DAY_4: ::nl_item = 0x2000A; -pub const DAY_5: ::nl_item = 0x2000B; -pub const DAY_6: ::nl_item = 0x2000C; -pub const DAY_7: ::nl_item = 0x2000D; - -pub const ABMON_1: ::nl_item = 0x2000E; -pub const ABMON_2: ::nl_item = 0x2000F; -pub const ABMON_3: ::nl_item = 0x20010; -pub const ABMON_4: ::nl_item = 0x20011; -pub const ABMON_5: ::nl_item = 0x20012; -pub const ABMON_6: ::nl_item = 0x20013; -pub const ABMON_7: ::nl_item = 0x20014; -pub const ABMON_8: ::nl_item = 0x20015; -pub const ABMON_9: ::nl_item = 0x20016; -pub const ABMON_10: ::nl_item = 0x20017; -pub const ABMON_11: ::nl_item = 0x20018; -pub const ABMON_12: ::nl_item = 0x20019; - -pub const MON_1: ::nl_item = 0x2001A; -pub const MON_2: ::nl_item = 0x2001B; -pub const MON_3: ::nl_item = 0x2001C; -pub const MON_4: ::nl_item = 0x2001D; -pub const MON_5: ::nl_item = 0x2001E; -pub const MON_6: ::nl_item = 0x2001F; -pub const MON_7: ::nl_item = 0x20020; -pub const MON_8: ::nl_item = 0x20021; -pub const MON_9: ::nl_item = 0x20022; -pub const MON_10: ::nl_item = 0x20023; -pub const MON_11: ::nl_item = 0x20024; -pub const MON_12: ::nl_item = 0x20025; - -pub const AM_STR: ::nl_item = 0x20026; -pub const PM_STR: ::nl_item = 0x20027; - -pub const D_T_FMT: ::nl_item = 0x20028; -pub const D_FMT: ::nl_item = 0x20029; -pub const T_FMT: ::nl_item = 0x2002A; -pub const T_FMT_AMPM: ::nl_item = 0x2002B; - -pub const ERA: ::nl_item = 0x2002C; -pub const ERA_D_FMT: ::nl_item = 0x2002E; -pub const ALT_DIGITS: ::nl_item = 0x2002F; -pub const ERA_D_T_FMT: ::nl_item = 0x20030; -pub const ERA_T_FMT: ::nl_item = 0x20031; - -pub const CODESET: ::nl_item = 14; - -pub const CRNCYSTR: ::nl_item = 0x4000F; - -pub const RUSAGE_THREAD: ::c_int = 1; -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const RADIXCHAR: ::nl_item = 0x10000; -pub const THOUSEP: ::nl_item = 0x10001; - -pub const YESEXPR: ::nl_item = 0x50000; -pub const NOEXPR: ::nl_item = 0x50001; -pub const YESSTR: ::nl_item = 0x50002; -pub const NOSTR: ::nl_item = 0x50003; - -pub const FILENAME_MAX: ::c_uint = 4096; -pub const L_tmpnam: ::c_uint = 20; -pub const _PC_LINK_MAX: ::c_int = 0; -pub const _PC_MAX_CANON: ::c_int = 1; -pub const _PC_MAX_INPUT: ::c_int = 2; -pub const _PC_NAME_MAX: ::c_int = 3; -pub const _PC_PATH_MAX: ::c_int = 4; -pub const _PC_PIPE_BUF: ::c_int = 5; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; -pub const _PC_NO_TRUNC: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_SYNC_IO: ::c_int = 9; -pub const _PC_ASYNC_IO: ::c_int = 10; -pub const _PC_PRIO_IO: ::c_int = 11; -pub const _PC_SOCK_MAXBUF: ::c_int = 12; -pub const _PC_FILESIZEBITS: ::c_int = 13; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_XFER_ALIGN: ::c_int = 17; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; -pub const _PC_SYMLINK_MAX: ::c_int = 19; -pub const _PC_2_SYMLINKS: ::c_int = 20; - -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_CHILD_MAX: ::c_int = 1; -pub const _SC_CLK_TCK: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 3; -pub const _SC_OPEN_MAX: ::c_int = 4; -pub const _SC_STREAM_MAX: ::c_int = 5; -pub const _SC_TZNAME_MAX: ::c_int = 6; -pub const _SC_JOB_CONTROL: ::c_int = 7; -pub const _SC_SAVED_IDS: ::c_int = 8; -pub const _SC_REALTIME_SIGNALS: ::c_int = 9; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 10; -pub const _SC_TIMERS: ::c_int = 11; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 12; -pub const _SC_PRIORITIZED_IO: ::c_int = 13; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 14; -pub const _SC_FSYNC: ::c_int = 15; -pub const _SC_MAPPED_FILES: ::c_int = 16; -pub const _SC_MEMLOCK: ::c_int = 17; -pub const _SC_MEMLOCK_RANGE: ::c_int = 18; -pub const _SC_MEMORY_PROTECTION: ::c_int = 19; -pub const _SC_MESSAGE_PASSING: ::c_int = 20; -pub const _SC_SEMAPHORES: ::c_int = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 22; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 23; -pub const _SC_AIO_MAX: ::c_int = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 25; -pub const _SC_DELAYTIMER_MAX: ::c_int = 26; -pub const _SC_MQ_OPEN_MAX: ::c_int = 27; -pub const _SC_MQ_PRIO_MAX: ::c_int = 28; -pub const _SC_VERSION: ::c_int = 29; -pub const _SC_PAGESIZE: ::c_int = 30; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_RTSIG_MAX: ::c_int = 31; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 32; -pub const _SC_SEM_VALUE_MAX: ::c_int = 33; -pub const _SC_SIGQUEUE_MAX: ::c_int = 34; -pub const _SC_TIMER_MAX: ::c_int = 35; -pub const _SC_BC_BASE_MAX: ::c_int = 36; -pub const _SC_BC_DIM_MAX: ::c_int = 37; -pub const _SC_BC_SCALE_MAX: ::c_int = 38; -pub const _SC_BC_STRING_MAX: ::c_int = 39; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 40; -pub const _SC_EXPR_NEST_MAX: ::c_int = 42; -pub const _SC_LINE_MAX: ::c_int = 43; -pub const _SC_RE_DUP_MAX: ::c_int = 44; -pub const _SC_2_VERSION: ::c_int = 46; -pub const _SC_2_C_BIND: ::c_int = 47; -pub const _SC_2_C_DEV: ::c_int = 48; -pub const _SC_2_FORT_DEV: ::c_int = 49; -pub const _SC_2_FORT_RUN: ::c_int = 50; -pub const _SC_2_SW_DEV: ::c_int = 51; -pub const _SC_2_LOCALEDEF: ::c_int = 52; -pub const _SC_UIO_MAXIOV: ::c_int = 60; -pub const _SC_IOV_MAX: ::c_int = 60; -pub const _SC_THREADS: ::c_int = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 68; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 69; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 70; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; -pub const _SC_TTY_NAME_MAX: ::c_int = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 73; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 74; -pub const _SC_THREAD_STACK_MIN: ::c_int = 75; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 76; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 82; -pub const _SC_NPROCESSORS_CONF: ::c_int = 83; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 84; -pub const _SC_PHYS_PAGES: ::c_int = 85; -pub const _SC_AVPHYS_PAGES: ::c_int = 86; -pub const _SC_ATEXIT_MAX: ::c_int = 87; -pub const _SC_PASS_MAX: ::c_int = 88; -pub const _SC_XOPEN_VERSION: ::c_int = 89; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 90; -pub const _SC_XOPEN_UNIX: ::c_int = 91; -pub const _SC_XOPEN_CRYPT: ::c_int = 92; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 93; -pub const _SC_XOPEN_SHM: ::c_int = 94; -pub const _SC_2_CHAR_TERM: ::c_int = 95; -pub const _SC_2_UPE: ::c_int = 97; -pub const _SC_XOPEN_XPG2: ::c_int = 98; -pub const _SC_XOPEN_XPG3: ::c_int = 99; -pub const _SC_XOPEN_XPG4: ::c_int = 100; -pub const _SC_NZERO: ::c_int = 109; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 125; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 126; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 128; -pub const _SC_XOPEN_LEGACY: ::c_int = 129; -pub const _SC_XOPEN_REALTIME: ::c_int = 130; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 131; -pub const _SC_ADVISORY_INFO: ::c_int = 132; -pub const _SC_BARRIERS: ::c_int = 133; -pub const _SC_CLOCK_SELECTION: ::c_int = 137; -pub const _SC_CPUTIME: ::c_int = 138; -pub const _SC_THREAD_CPUTIME: ::c_int = 139; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 149; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 153; -pub const _SC_SPIN_LOCKS: ::c_int = 154; -pub const _SC_REGEXP: ::c_int = 155; -pub const _SC_SHELL: ::c_int = 157; -pub const _SC_SPAWN: ::c_int = 159; -pub const _SC_SPORADIC_SERVER: ::c_int = 160; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 161; -pub const _SC_TIMEOUTS: ::c_int = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 165; -pub const _SC_2_PBS: ::c_int = 168; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 169; -pub const _SC_2_PBS_LOCATE: ::c_int = 170; -pub const _SC_2_PBS_MESSAGE: ::c_int = 171; -pub const _SC_2_PBS_TRACK: ::c_int = 172; -pub const _SC_SYMLOOP_MAX: ::c_int = 173; -pub const _SC_STREAMS: ::c_int = 174; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 175; -pub const _SC_V6_ILP32_OFF32: ::c_int = 176; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 177; -pub const _SC_V6_LP64_OFF64: ::c_int = 178; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 179; -pub const _SC_HOST_NAME_MAX: ::c_int = 180; -pub const _SC_TRACE: ::c_int = 181; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 182; -pub const _SC_TRACE_INHERIT: ::c_int = 183; -pub const _SC_TRACE_LOG: ::c_int = 184; -pub const _SC_IPV6: ::c_int = 235; -pub const _SC_RAW_SOCKETS: ::c_int = 236; -pub const _SC_V7_ILP32_OFF32: ::c_int = 237; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 238; -pub const _SC_V7_LP64_OFF64: ::c_int = 239; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 240; -pub const _SC_SS_REPL_MAX: ::c_int = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 242; -pub const _SC_TRACE_NAME_MAX: ::c_int = 243; -pub const _SC_TRACE_SYS_MAX: ::c_int = 244; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 245; -pub const _SC_XOPEN_STREAMS: ::c_int = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248; - -pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY; -pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY; - -pub const GLOB_ERR: ::c_int = 1 << 0; -pub const GLOB_MARK: ::c_int = 1 << 1; -pub const GLOB_NOSORT: ::c_int = 1 << 2; -pub const GLOB_DOOFFS: ::c_int = 1 << 3; -pub const GLOB_NOCHECK: ::c_int = 1 << 4; -pub const GLOB_APPEND: ::c_int = 1 << 5; -pub const GLOB_NOESCAPE: ::c_int = 1 << 6; - -pub const GLOB_NOSPACE: ::c_int = 1; -pub const GLOB_ABORTED: ::c_int = 2; -pub const GLOB_NOMATCH: ::c_int = 3; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_MADV_WILLNEED: ::c_int = 3; - -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; - -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; - -pub const IFF_LOWER_UP: ::c_int = 0x10000; -pub const IFF_DORMANT: ::c_int = 0x20000; -pub const IFF_ECHO: ::c_int = 0x40000; - -pub const ST_RDONLY: ::c_ulong = 1; -pub const ST_NOSUID: ::c_ulong = 2; -pub const ST_NODEV: ::c_ulong = 4; -pub const ST_NOEXEC: ::c_ulong = 8; -pub const ST_SYNCHRONOUS: ::c_ulong = 16; -pub const ST_MANDLOCK: ::c_ulong = 64; -pub const ST_WRITE: ::c_ulong = 128; -pub const ST_APPEND: ::c_ulong = 256; -pub const ST_IMMUTABLE: ::c_ulong = 512; -pub const ST_NOATIME: ::c_ulong = 1024; -pub const ST_NODIRATIME: ::c_ulong = 2048; - -pub const RTLD_NEXT: *mut ::c_void = -1i64 as *mut ::c_void; -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; -pub const RTLD_NODELETE: ::c_int = 0x1000; -pub const RTLD_NOW: ::c_int = 0x2; - -pub const TCP_MD5SIG: ::c_int = 14; - -align_const! { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - size: [0; __SIZEOF_PTHREAD_MUTEX_T], - }; - pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - size: [0; __SIZEOF_PTHREAD_COND_T], - }; - pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - size: [0; __SIZEOF_PTHREAD_RWLOCK_T], - }; -} -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; -pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; -pub const __SIZEOF_PTHREAD_COND_T: usize = 48; - -pub const RENAME_NOREPLACE: ::c_int = 1; -pub const RENAME_EXCHANGE: ::c_int = 2; -pub const RENAME_WHITEOUT: ::c_int = 4; - -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; -pub const SCHED_BATCH: ::c_int = 3; -pub const SCHED_IDLE: ::c_int = 5; - -// netinet/in.h -// NOTE: These are in addition to the constants defined in src/unix/mod.rs - -// IPPROTO_IP defined in src/unix/mod.rs -/// Hop-by-hop option header -pub const IPPROTO_HOPOPTS: ::c_int = 0; -// IPPROTO_ICMP defined in src/unix/mod.rs -/// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; -/// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; -// IPPROTO_TCP defined in src/unix/mod.rs -/// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; -/// pup -pub const IPPROTO_PUP: ::c_int = 12; -// IPPROTO_UDP defined in src/unix/mod.rs -/// xns idp -pub const IPPROTO_IDP: ::c_int = 22; -/// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; -/// DCCP -pub const IPPROTO_DCCP: ::c_int = 33; -// IPPROTO_IPV6 defined in src/unix/mod.rs -/// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; -/// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; -/// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; -/// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; -/// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; -/// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; -// IPPROTO_ICMPV6 defined in src/unix/mod.rs -/// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; -/// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; -pub const IPPROTO_MTP: ::c_int = 92; -pub const IPPROTO_BEETPH: ::c_int = 94; -/// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; -/// Protocol indep. multicast -pub const IPPROTO_PIM: ::c_int = 103; -/// IP Payload Comp. Protocol -pub const IPPROTO_COMP: ::c_int = 108; -/// SCTP -pub const IPPROTO_SCTP: ::c_int = 132; -pub const IPPROTO_MH: ::c_int = 135; -pub const IPPROTO_UDPLITE: ::c_int = 136; -pub const IPPROTO_MPLS: ::c_int = 137; -/// raw IP packet -pub const IPPROTO_RAW: ::c_int = 255; -pub const IPPROTO_MAX: ::c_int = 256; - -pub const AF_IB: ::c_int = 27; -pub const AF_MPLS: ::c_int = 28; -pub const AF_NFC: ::c_int = 39; -pub const AF_VSOCK: ::c_int = 40; -pub const PF_IB: ::c_int = AF_IB; -pub const PF_MPLS: ::c_int = AF_MPLS; -pub const PF_NFC: ::c_int = AF_NFC; -pub const PF_VSOCK: ::c_int = AF_VSOCK; - -// System V IPC -pub const IPC_PRIVATE: ::key_t = 0; - -pub const IPC_CREAT: ::c_int = 0o1000; -pub const IPC_EXCL: ::c_int = 0o2000; -pub const IPC_NOWAIT: ::c_int = 0o4000; - -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; -pub const IPC_INFO: ::c_int = 3; -pub const MSG_STAT: ::c_int = 11; -pub const MSG_INFO: ::c_int = 12; - -pub const MSG_NOERROR: ::c_int = 0o10000; -pub const MSG_EXCEPT: ::c_int = 0o20000; -pub const MSG_COPY: ::c_int = 0o40000; - -pub const SHM_R: ::c_int = 0o400; -pub const SHM_W: ::c_int = 0o200; - -pub const SHM_RDONLY: ::c_int = 0o10000; -pub const SHM_RND: ::c_int = 0o20000; -pub const SHM_REMAP: ::c_int = 0o40000; -pub const SHM_EXEC: ::c_int = 0o100000; - -pub const SHM_LOCK: ::c_int = 11; -pub const SHM_UNLOCK: ::c_int = 12; - -pub const SHM_HUGETLB: ::c_int = 0o4000; -pub const SHM_NORESERVE: ::c_int = 0o10000; - -pub const EPOLLRDHUP: ::c_int = 0x2000; -pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000; -pub const EPOLLONESHOT: ::c_int = 0x40000000; - -pub const QFMT_VFS_OLD: ::c_int = 1; -pub const QFMT_VFS_V0: ::c_int = 2; -pub const QFMT_VFS_V1: ::c_int = 4; - -pub const EFD_SEMAPHORE: ::c_int = 0x1; - -pub const LOG_NFACILITIES: ::c_int = 24; - -pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t; - -pub const RB_AUTOBOOT: ::c_int = 0x01234567u32 as i32; -pub const RB_HALT_SYSTEM: ::c_int = 0xcdef0123u32 as i32; -pub const RB_ENABLE_CAD: ::c_int = 0x89abcdefu32 as i32; -pub const RB_DISABLE_CAD: ::c_int = 0x00000000u32 as i32; -pub const RB_POWER_OFF: ::c_int = 0x4321fedcu32 as i32; -pub const RB_SW_SUSPEND: ::c_int = 0xd000fce2u32 as i32; -pub const RB_KEXEC: ::c_int = 0x45584543u32 as i32; - -pub const AI_PASSIVE: ::c_int = 0x0001; -pub const AI_CANONNAME: ::c_int = 0x0002; -pub const AI_NUMERICHOST: ::c_int = 0x0004; -pub const AI_V4MAPPED: ::c_int = 0x0008; -pub const AI_ALL: ::c_int = 0x0010; -pub const AI_ADDRCONFIG: ::c_int = 0x0020; - -pub const AI_NUMERICSERV: ::c_int = 0x0400; - -pub const EAI_BADFLAGS: ::c_int = -1; -pub const EAI_NONAME: ::c_int = -2; -pub const EAI_AGAIN: ::c_int = -3; -pub const EAI_FAIL: ::c_int = -4; -pub const EAI_FAMILY: ::c_int = -6; -pub const EAI_SOCKTYPE: ::c_int = -7; -pub const EAI_SERVICE: ::c_int = -8; -pub const EAI_MEMORY: ::c_int = -10; -pub const EAI_OVERFLOW: ::c_int = -12; - -pub const NI_NUMERICHOST: ::c_int = 1; -pub const NI_NUMERICSERV: ::c_int = 2; -pub const NI_NOFQDN: ::c_int = 4; -pub const NI_NAMEREQD: ::c_int = 8; -pub const NI_DGRAM: ::c_int = 16; - -pub const SYNC_FILE_RANGE_WAIT_BEFORE: ::c_uint = 1; -pub const SYNC_FILE_RANGE_WRITE: ::c_uint = 2; -pub const SYNC_FILE_RANGE_WAIT_AFTER: ::c_uint = 4; - -pub const EAI_SYSTEM: ::c_int = -11; - -pub const AIO_CANCELED: ::c_int = 0; -pub const AIO_NOTCANCELED: ::c_int = 1; -pub const AIO_ALLDONE: ::c_int = 2; -pub const LIO_READ: ::c_int = 0; -pub const LIO_WRITE: ::c_int = 1; -pub const LIO_NOP: ::c_int = 2; -pub const LIO_WAIT: ::c_int = 0; -pub const LIO_NOWAIT: ::c_int = 1; - -pub const MREMAP_MAYMOVE: ::c_int = 1; -pub const MREMAP_FIXED: ::c_int = 2; - -pub const PR_SET_PDEATHSIG: ::c_int = 1; -pub const PR_GET_PDEATHSIG: ::c_int = 2; - -pub const PR_GET_DUMPABLE: ::c_int = 3; -pub const PR_SET_DUMPABLE: ::c_int = 4; - -pub const PR_GET_UNALIGN: ::c_int = 5; -pub const PR_SET_UNALIGN: ::c_int = 6; -pub const PR_UNALIGN_NOPRINT: ::c_int = 1; -pub const PR_UNALIGN_SIGBUS: ::c_int = 2; - -pub const PR_GET_KEEPCAPS: ::c_int = 7; -pub const PR_SET_KEEPCAPS: ::c_int = 8; - -pub const PR_GET_FPEMU: ::c_int = 9; -pub const PR_SET_FPEMU: ::c_int = 10; -pub const PR_FPEMU_NOPRINT: ::c_int = 1; -pub const PR_FPEMU_SIGFPE: ::c_int = 2; - -pub const PR_GET_FPEXC: ::c_int = 11; -pub const PR_SET_FPEXC: ::c_int = 12; -pub const PR_FP_EXC_SW_ENABLE: ::c_int = 0x80; -pub const PR_FP_EXC_DIV: ::c_int = 0x010000; -pub const PR_FP_EXC_OVF: ::c_int = 0x020000; -pub const PR_FP_EXC_UND: ::c_int = 0x040000; -pub const PR_FP_EXC_RES: ::c_int = 0x080000; -pub const PR_FP_EXC_INV: ::c_int = 0x100000; -pub const PR_FP_EXC_DISABLED: ::c_int = 0; -pub const PR_FP_EXC_NONRECOV: ::c_int = 1; -pub const PR_FP_EXC_ASYNC: ::c_int = 2; -pub const PR_FP_EXC_PRECISE: ::c_int = 3; - -pub const PR_GET_TIMING: ::c_int = 13; -pub const PR_SET_TIMING: ::c_int = 14; -pub const PR_TIMING_STATISTICAL: ::c_int = 0; -pub const PR_TIMING_TIMESTAMP: ::c_int = 1; - -pub const PR_SET_NAME: ::c_int = 15; -pub const PR_GET_NAME: ::c_int = 16; - -pub const PR_GET_ENDIAN: ::c_int = 19; -pub const PR_SET_ENDIAN: ::c_int = 20; -pub const PR_ENDIAN_BIG: ::c_int = 0; -pub const PR_ENDIAN_LITTLE: ::c_int = 1; -pub const PR_ENDIAN_PPC_LITTLE: ::c_int = 2; - -pub const PR_GET_SECCOMP: ::c_int = 21; -pub const PR_SET_SECCOMP: ::c_int = 22; - -pub const PR_CAPBSET_READ: ::c_int = 23; -pub const PR_CAPBSET_DROP: ::c_int = 24; - -pub const PR_GET_TSC: ::c_int = 25; -pub const PR_SET_TSC: ::c_int = 26; -pub const PR_TSC_ENABLE: ::c_int = 1; -pub const PR_TSC_SIGSEGV: ::c_int = 2; - -pub const PR_GET_SECUREBITS: ::c_int = 27; -pub const PR_SET_SECUREBITS: ::c_int = 28; - -pub const PR_SET_TIMERSLACK: ::c_int = 29; -pub const PR_GET_TIMERSLACK: ::c_int = 30; - -pub const PR_TASK_PERF_EVENTS_DISABLE: ::c_int = 31; -pub const PR_TASK_PERF_EVENTS_ENABLE: ::c_int = 32; - -pub const PR_MCE_KILL: ::c_int = 33; -pub const PR_MCE_KILL_CLEAR: ::c_int = 0; -pub const PR_MCE_KILL_SET: ::c_int = 1; - -pub const PR_MCE_KILL_LATE: ::c_int = 0; -pub const PR_MCE_KILL_EARLY: ::c_int = 1; -pub const PR_MCE_KILL_DEFAULT: ::c_int = 2; - -pub const PR_MCE_KILL_GET: ::c_int = 34; - -pub const PR_SET_MM: ::c_int = 35; -pub const PR_SET_MM_START_CODE: ::c_int = 1; -pub const PR_SET_MM_END_CODE: ::c_int = 2; -pub const PR_SET_MM_START_DATA: ::c_int = 3; -pub const PR_SET_MM_END_DATA: ::c_int = 4; -pub const PR_SET_MM_START_STACK: ::c_int = 5; -pub const PR_SET_MM_START_BRK: ::c_int = 6; -pub const PR_SET_MM_BRK: ::c_int = 7; -pub const PR_SET_MM_ARG_START: ::c_int = 8; -pub const PR_SET_MM_ARG_END: ::c_int = 9; -pub const PR_SET_MM_ENV_START: ::c_int = 10; -pub const PR_SET_MM_ENV_END: ::c_int = 11; -pub const PR_SET_MM_AUXV: ::c_int = 12; -pub const PR_SET_MM_EXE_FILE: ::c_int = 13; -pub const PR_SET_MM_MAP: ::c_int = 14; -pub const PR_SET_MM_MAP_SIZE: ::c_int = 15; - -pub const PR_SET_PTRACER: ::c_int = 0x59616d61; -pub const PR_SET_PTRACER_ANY: ::c_ulong = 0xffffffffffffffff; - -pub const PR_SET_CHILD_SUBREAPER: ::c_int = 36; -pub const PR_GET_CHILD_SUBREAPER: ::c_int = 37; - -pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38; -pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39; - -pub const PR_GET_TID_ADDRESS: ::c_int = 40; - -pub const PR_SET_THP_DISABLE: ::c_int = 41; -pub const PR_GET_THP_DISABLE: ::c_int = 42; - -pub const PR_MPX_ENABLE_MANAGEMENT: ::c_int = 43; -pub const PR_MPX_DISABLE_MANAGEMENT: ::c_int = 44; - -pub const PR_SET_FP_MODE: ::c_int = 45; -pub const PR_GET_FP_MODE: ::c_int = 46; -pub const PR_FP_MODE_FR: ::c_int = 1 << 0; -pub const PR_FP_MODE_FRE: ::c_int = 1 << 1; - -pub const PR_CAP_AMBIENT: ::c_int = 47; -pub const PR_CAP_AMBIENT_IS_SET: ::c_int = 1; -pub const PR_CAP_AMBIENT_RAISE: ::c_int = 2; -pub const PR_CAP_AMBIENT_LOWER: ::c_int = 3; -pub const PR_CAP_AMBIENT_CLEAR_ALL: ::c_int = 4; - -pub const ITIMER_REAL: ::c_int = 0; -pub const ITIMER_VIRTUAL: ::c_int = 1; -pub const ITIMER_PROF: ::c_int = 2; - -pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC; -pub const TFD_NONBLOCK: ::c_int = O_NONBLOCK; -pub const TFD_TIMER_ABSTIME: ::c_int = 1; - -pub const XATTR_CREATE: ::c_int = 0x1; -pub const XATTR_REPLACE: ::c_int = 0x2; - -pub const _POSIX_VDISABLE: ::cc_t = 0; - -pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01; -pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02; -pub const FALLOC_FL_COLLAPSE_RANGE: ::c_int = 0x08; -pub const FALLOC_FL_ZERO_RANGE: ::c_int = 0x10; -pub const FALLOC_FL_INSERT_RANGE: ::c_int = 0x20; -pub const FALLOC_FL_UNSHARE_RANGE: ::c_int = 0x40; - -// On Linux, libc doesn't define this constant, libattr does instead. -// We still define it for Linux as it's defined by libc on other platforms, -// and it's mentioned in the man pages for getxattr and setxattr. -pub const ENOATTR: ::c_int = ::ENODATA; - -pub const SO_ORIGINAL_DST: ::c_int = 80; -pub const IUTF8: ::tcflag_t = 0x00004000; -pub const CMSPAR: ::tcflag_t = 0o10000000000; - -pub const MFD_CLOEXEC: ::c_uint = 0x0001; -pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; - -// these are used in the p_type field of Elf32_Phdr and Elf64_Phdr, which has -// the type Elf32Word and Elf64Word respectively. Luckily, both of those are u32 -// so we can use that type here to avoid having to cast. -pub const PT_NULL: u32 = 0; -pub const PT_LOAD: u32 = 1; -pub const PT_DYNAMIC: u32 = 2; -pub const PT_INTERP: u32 = 3; -pub const PT_NOTE: u32 = 4; -pub const PT_SHLIB: u32 = 5; -pub const PT_PHDR: u32 = 6; -pub const PT_TLS: u32 = 7; -pub const PT_NUM: u32 = 8; -pub const PT_LOOS: u32 = 0x60000000; -pub const PT_GNU_EH_FRAME: u32 = 0x6474e550; -pub const PT_GNU_STACK: u32 = 0x6474e551; -pub const PT_GNU_RELRO: u32 = 0x6474e552; - -// Ethernet protocol IDs. -pub const ETH_P_IP: ::c_int = 0x0800; - -pub const SFD_CLOEXEC: ::c_int = 0x080000; - -pub const NCCS: usize = 32; - -pub const O_TRUNC: ::c_int = 0x00040000; -pub const O_NOATIME: ::c_int = 0x00002000; -pub const O_CLOEXEC: ::c_int = 0x00000100; -pub const O_TMPFILE: ::c_int = 0x00004000; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const BUFSIZ: ::c_uint = 1024; -pub const TMP_MAX: ::c_uint = 10000; -pub const FOPEN_MAX: ::c_uint = 1000; -pub const O_PATH: ::c_int = 0x00400000; -pub const O_EXEC: ::c_int = O_PATH; -pub const O_SEARCH: ::c_int = O_PATH; -pub const O_ACCMODE: ::c_int = 03 | O_SEARCH; -pub const O_NDELAY: ::c_int = O_NONBLOCK; -pub const NI_MAXHOST: ::socklen_t = 255; -pub const PTHREAD_STACK_MIN: ::size_t = 2048; -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const POSIX_MADV_DONTNEED: ::c_int = 4; - -pub const RLIM_INFINITY: ::rlim_t = !0; -pub const RLIMIT_RTTIME: ::c_int = 15; -pub const RLIMIT_NLIMITS: ::c_int = 16; -pub const RLIM_NLIMITS: ::c_int = RLIMIT_NLIMITS; - -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; - -pub const SOCK_DCCP: ::c_int = 6; -pub const SOCK_PACKET: ::c_int = 10; - -pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: ::c_int = 16; -pub const TCP_THIN_DUPACK: ::c_int = 17; -pub const TCP_USER_TIMEOUT: ::c_int = 18; -pub const TCP_REPAIR: ::c_int = 19; -pub const TCP_REPAIR_QUEUE: ::c_int = 20; -pub const TCP_QUEUE_SEQ: ::c_int = 21; -pub const TCP_REPAIR_OPTIONS: ::c_int = 22; -pub const TCP_FASTOPEN: ::c_int = 23; -pub const TCP_TIMESTAMP: ::c_int = 24; - -pub const SIGUNUSED: ::c_int = ::SIGSYS; - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; - -pub const CPU_SETSIZE: ::c_int = 128; - -pub const PTRACE_TRACEME: ::c_int = 0; -pub const PTRACE_PEEKTEXT: ::c_int = 1; -pub const PTRACE_PEEKDATA: ::c_int = 2; -pub const PTRACE_PEEKUSER: ::c_int = 3; -pub const PTRACE_POKETEXT: ::c_int = 4; -pub const PTRACE_POKEDATA: ::c_int = 5; -pub const PTRACE_POKEUSER: ::c_int = 6; -pub const PTRACE_CONT: ::c_int = 7; -pub const PTRACE_KILL: ::c_int = 8; -pub const PTRACE_SINGLESTEP: ::c_int = 9; -pub const PTRACE_GETREGS: ::c_int = 12; -pub const PTRACE_SETREGS: ::c_int = 13; -pub const PTRACE_GETFPREGS: ::c_int = 14; -pub const PTRACE_SETFPREGS: ::c_int = 15; -pub const PTRACE_ATTACH: ::c_int = 16; -pub const PTRACE_DETACH: ::c_int = 17; -pub const PTRACE_GETFPXREGS: ::c_int = 18; -pub const PTRACE_SETFPXREGS: ::c_int = 19; -pub const PTRACE_SYSCALL: ::c_int = 24; -pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; -pub const PTRACE_GETREGSET: ::c_int = 0x4204; -pub const PTRACE_SETREGSET: ::c_int = 0x4205; -pub const PTRACE_SEIZE: ::c_int = 0x4206; -pub const PTRACE_INTERRUPT: ::c_int = 0x4207; -pub const PTRACE_LISTEN: ::c_int = 0x4208; -pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; - -pub const EPOLLWAKEUP: ::c_int = 0x20000000; - -pub const EFD_NONBLOCK: ::c_int = ::O_NONBLOCK; - -pub const SFD_NONBLOCK: ::c_int = ::O_NONBLOCK; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const TIOCINQ: ::c_int = ::FIONREAD; - -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_TIMESTAMP: ::c_int = 29; -pub const SO_MARK: ::c_int = 36; -pub const SO_RXQ_OVFL: ::c_int = 40; -pub const SO_PEEK_OFF: ::c_int = 42; -pub const SO_BUSY_POLL: ::c_int = 46; - -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; - -pub const O_ASYNC: ::c_int = 0x00000400; - -pub const FIOCLEX: ::c_int = 0x5451; -pub const FIONBIO: ::c_int = 0x5421; - -pub const RLIMIT_RSS: ::c_int = 5; -pub const RLIMIT_NOFILE: ::c_int = 7; -pub const RLIMIT_AS: ::c_int = 9; -pub const RLIMIT_NPROC: ::c_int = 6; -pub const RLIMIT_MEMLOCK: ::c_int = 8; - -pub const O_APPEND: ::c_int = 0x00100000; -pub const O_CREAT: ::c_int = 0x00010000; -pub const O_EXCL: ::c_int = 0x00020000; -pub const O_NOCTTY: ::c_int = 0x00000200; -pub const O_NONBLOCK: ::c_int = 0x00000010; -pub const O_SYNC: ::c_int = 0x00000040 | O_DSYNC; -pub const O_RSYNC: ::c_int = O_SYNC; -pub const O_DSYNC: ::c_int = 0x00000020; - -pub const SOCK_CLOEXEC: ::c_int = 0o2000000; -pub const SOCK_NONBLOCK: ::c_int = 0o4000; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_SEQPACKET: ::c_int = 5; - -pub const SOL_SOCKET: ::c_int = 1; - -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_PASSCRED: ::c_int = 16; -pub const SO_PEERCRED: ::c_int = 17; -pub const SO_RCVLOWAT: ::c_int = 18; -pub const SO_SNDLOWAT: ::c_int = 19; -pub const SO_RCVTIMEO: ::c_int = 20; -pub const SO_SNDTIMEO: ::c_int = 21; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const EXTPROC: ::tcflag_t = 0x00010000; - -pub const MAP_HUGETLB: ::c_int = 0x040000; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; - -pub const VEOF: usize = 4; -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; - -pub const TCGETS: ::c_int = 0x5401; -pub const TCSETS: ::c_int = 0x5402; -pub const TCSETSW: ::c_int = 0x5403; -pub const TCSETSF: ::c_int = 0x5404; -pub const TCGETA: ::c_int = 0x5405; -pub const TCSETA: ::c_int = 0x5406; -pub const TCSETAW: ::c_int = 0x5407; -pub const TCSETAF: ::c_int = 0x5408; -pub const TCSBRK: ::c_int = 0x5409; -pub const TCXONC: ::c_int = 0x540A; -pub const TCFLSH: ::c_int = 0x540B; -pub const TIOCGSOFTCAR: ::c_int = 0x5419; -pub const TIOCSSOFTCAR: ::c_int = 0x541A; -pub const TIOCLINUX: ::c_int = 0x541C; -pub const TIOCGSERIAL: ::c_int = 0x541E; -pub const TIOCEXCL: ::c_int = 0x540C; -pub const TIOCNXCL: ::c_int = 0x540D; -pub const TIOCSCTTY: ::c_int = 0x540E; -pub const TIOCGPGRP: ::c_int = 0x540F; -pub const TIOCSPGRP: ::c_int = 0x5410; -pub const TIOCOUTQ: ::c_int = 0x5411; -pub const TIOCSTI: ::c_int = 0x5412; -pub const TIOCGWINSZ: ::c_int = 0x5413; -pub const TIOCSWINSZ: ::c_int = 0x5414; -pub const TIOCMGET: ::c_int = 0x5415; -pub const TIOCMBIS: ::c_int = 0x5416; -pub const TIOCMBIC: ::c_int = 0x5417; -pub const TIOCMSET: ::c_int = 0x5418; -pub const FIONREAD: ::c_int = 0x541B; -pub const TIOCCONS: ::c_int = 0x541D; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; - -pub const O_DIRECTORY: ::c_int = 0x00080000; -pub const O_DIRECT: ::c_int = 0x00000800; -pub const O_LARGEFILE: ::c_int = 0x00001000; -pub const O_NOFOLLOW: ::c_int = 0x00000080; - -// intentionally not public, only used for fd_set -cfg_if! { - if #[cfg(target_pointer_width = "32")] { - const ULONG_SIZE: usize = 32; - } else if #[cfg(target_pointer_width = "64")] { - const ULONG_SIZE: usize = 64; - } else { - // Unknown target_pointer_width - } -} - -// END_PUB_CONST - -f! { - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - (*set).fds_bits[fd / size] &= !(1 << (fd % size)); - return - } - - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 - } - - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - (*set).fds_bits[fd / size] |= 1 << (fd % size); - return - } - - pub fn FD_ZERO(set: *mut fd_set) -> () { - for slot in (*set).fds_bits.iter_mut() { - *slot = 0; - } - } - - pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { - for slot in cpuset.bits.iter_mut() { - *slot = 0; - } - } - - pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - cpuset.bits[idx] |= 1 << offset; - () - } - - pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - cpuset.bits[idx] &= !(1 << offset); - () - } - - pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - 0 != (cpuset.bits[idx] & (1 << offset)) - } - - pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { - set1.bits == set2.bits - } - - pub fn major(dev: ::dev_t) -> ::c_uint { - let mut major = 0; - major |= (dev & 0x00000000000fff00) >> 8; - major |= (dev & 0xfffff00000000000) >> 32; - major as ::c_uint - } - - pub fn minor(dev: ::dev_t) -> ::c_uint { - let mut minor = 0; - minor |= (dev & 0x00000000000000ff) >> 0; - minor |= (dev & 0x00000ffffff00000) >> 12; - minor as ::c_uint - } - - pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { - cmsg.offset(1) as *mut c_uchar - } - - pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) - -> *mut cmsghdr - { - if ((*cmsg).cmsg_len as ::size_t) < ::mem::size_of::() { - 0 as *mut cmsghdr - } else if __CMSG_NEXT(cmsg).add(::mem::size_of::()) - >= __MHDR_END(mhdr) { - 0 as *mut cmsghdr - } else { - __CMSG_NEXT(cmsg).cast() - } - } - - pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as ::size_t >= ::mem::size_of::() { - (*mhdr).msg_control.cast() - } else { - 0 as *mut cmsghdr - } - } - - pub {const} fn CMSG_ALIGN(len: ::size_t) -> ::size_t { - (len + ::mem::size_of::<::size_t>() - 1) - & !(::mem::size_of::<::size_t>() - 1) - } - - pub {const} fn CMSG_SPACE(len: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(len as ::size_t) + CMSG_ALIGN(::mem::size_of::())) - as ::c_uint - } - - pub {const} fn CMSG_LEN(len: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(::mem::size_of::()) + len as ::size_t) as ::c_uint - } -} - -safe_f! { - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { - (status & 0xff) == 0x7f - } - - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { - (status >> 8) & 0xff - } - - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { - status == 0xffff - } - - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { - ((status & 0x7f) + 1) as i8 >= 2 - } - - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { - status & 0x7f - } - - pub {const} fn WIFEXITED(status: ::c_int) -> bool { - (status & 0x7f) == 0 - } - - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { - (status >> 8) & 0xff - } - - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { - (status & 0x80) != 0 - } - - pub {const} fn QCMD(cmd: ::c_int, type_: ::c_int) -> ::c_int { - (cmd << 8) | (type_ & 0x00ff) - } - - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; - let mut dev = 0; - dev |= (major & 0x00000fff) << 8; - dev |= (major & 0xfffff000) << 32; - dev |= (minor & 0x000000ff) << 0; - dev |= (minor & 0xffffff00) << 12; - dev - } -} - -fn __CMSG_LEN(cmsg: *const cmsghdr) -> ::ssize_t { - ((unsafe { (*cmsg).cmsg_len as ::size_t } + ::mem::size_of::<::c_long>() - 1) - & !(::mem::size_of::<::c_long>() - 1)) as ::ssize_t -} - -fn __CMSG_NEXT(cmsg: *const cmsghdr) -> *mut c_uchar { - (unsafe { cmsg.offset(__CMSG_LEN(cmsg)) }) as *mut c_uchar -} - -fn __MHDR_END(mhdr: *const msghdr) -> *mut c_uchar { - unsafe { (*mhdr).msg_control.offset((*mhdr).msg_controllen as isize) }.cast() -} - -// EXTERN_FN - -#[link(name = "c")] -#[link(name = "fdio")] -extern "C" {} - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum FILE {} -impl ::Copy for FILE {} -impl ::Clone for FILE { - fn clone(&self) -> FILE { - *self - } -} -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos_t {} -impl ::Clone for fpos_t { - fn clone(&self) -> fpos_t { - *self - } -} - -extern "C" { - pub fn isalnum(c: c_int) -> c_int; - pub fn isalpha(c: c_int) -> c_int; - pub fn iscntrl(c: c_int) -> c_int; - pub fn isdigit(c: c_int) -> c_int; - pub fn isgraph(c: c_int) -> c_int; - pub fn islower(c: c_int) -> c_int; - pub fn isprint(c: c_int) -> c_int; - pub fn ispunct(c: c_int) -> c_int; - pub fn isspace(c: c_int) -> c_int; - pub fn isupper(c: c_int) -> c_int; - pub fn isxdigit(c: c_int) -> c_int; - pub fn isblank(c: c_int) -> c_int; - pub fn tolower(c: c_int) -> c_int; - pub fn toupper(c: c_int) -> c_int; - pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; - pub fn freopen(filename: *const c_char, mode: *const c_char, file: *mut FILE) -> *mut FILE; - pub fn fflush(file: *mut FILE) -> c_int; - pub fn fclose(file: *mut FILE) -> c_int; - pub fn remove(filename: *const c_char) -> c_int; - pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; - pub fn tmpfile() -> *mut FILE; - pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int; - pub fn setbuf(stream: *mut FILE, buf: *mut c_char); - pub fn getchar() -> c_int; - pub fn putchar(c: c_int) -> c_int; - pub fn fgetc(stream: *mut FILE) -> c_int; - pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; - pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; - pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; - pub fn puts(s: *const c_char) -> c_int; - pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; - pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; - pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; - pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; - pub fn ftell(stream: *mut FILE) -> c_long; - pub fn rewind(stream: *mut FILE); - pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int; - pub fn fsetpos(stream: *mut FILE, ptr: *const fpos_t) -> c_int; - pub fn feof(stream: *mut FILE) -> c_int; - pub fn ferror(stream: *mut FILE) -> c_int; - pub fn perror(s: *const c_char); - pub fn atof(s: *const c_char) -> c_double; - pub fn atoi(s: *const c_char) -> c_int; - pub fn atol(s: *const c_char) -> c_long; - pub fn atoll(s: *const c_char) -> c_longlong; - pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; - pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float; - pub fn strtol(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_long; - pub fn strtoll(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_longlong; - pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulong; - pub fn strtoull(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulonglong; - pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; - pub fn malloc(size: size_t) -> *mut c_void; - pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; - pub fn free(p: *mut c_void); - pub fn abort() -> !; - pub fn exit(status: c_int) -> !; - pub fn _exit(status: c_int) -> !; - pub fn atexit(cb: extern "C" fn()) -> c_int; - pub fn system(s: *const c_char) -> c_int; - pub fn getenv(s: *const c_char) -> *mut c_char; - - pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; - pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; - pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; - pub fn strncat(s: *mut c_char, ct: *const c_char, n: size_t) -> *mut c_char; - pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; - pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; - pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; - pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char; - pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char; - pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t; - pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t; - pub fn strdup(cs: *const c_char) -> *mut c_char; - pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; - pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; - pub fn strlen(cs: *const c_char) -> size_t; - pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; - pub fn strerror(n: c_int) -> *mut c_char; - pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; - pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; - pub fn wcslen(buf: *const wchar_t) -> size_t; - pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; - - pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; - pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t; - pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; - pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; - pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; - pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; - - pub fn abs(i: c_int) -> c_int; - pub fn labs(i: c_long) -> c_long; - pub fn rand() -> c_int; - pub fn srand(seed: c_uint); - - pub fn getpwnam(name: *const ::c_char) -> *mut passwd; - pub fn getpwuid(uid: ::uid_t) -> *mut passwd; - - pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn printf(format: *const ::c_char, ...) -> ::c_int; - pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int; - pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn scanf(format: *const ::c_char, ...) -> ::c_int; - pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn getchar_unlocked() -> ::c_int; - pub fn putchar_unlocked(c: ::c_int) -> ::c_int; - - pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int; - pub fn connect(socket: ::c_int, address: *const sockaddr, len: socklen_t) -> ::c_int; - pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; - pub fn accept(socket: ::c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> ::c_int; - pub fn getpeername( - socket: ::c_int, - address: *mut sockaddr, - address_len: *mut socklen_t, - ) -> ::c_int; - pub fn getsockname( - socket: ::c_int, - address: *mut sockaddr, - address_len: *mut socklen_t, - ) -> ::c_int; - pub fn setsockopt( - socket: ::c_int, - level: ::c_int, - name: ::c_int, - value: *const ::c_void, - option_len: socklen_t, - ) -> ::c_int; - pub fn socketpair( - domain: ::c_int, - type_: ::c_int, - protocol: ::c_int, - socket_vector: *mut ::c_int, - ) -> ::c_int; - pub fn sendto( - socket: ::c_int, - buf: *const ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *const sockaddr, - addrlen: socklen_t, - ) -> ::ssize_t; - pub fn shutdown(socket: ::c_int, how: ::c_int) -> ::c_int; - - pub fn chmod(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn fchmod(fd: ::c_int, mode: mode_t) -> ::c_int; - - pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; - - pub fn mkdir(path: *const c_char, mode: mode_t) -> ::c_int; - - pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; - - pub fn pclose(stream: *mut ::FILE) -> ::c_int; - pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; - pub fn fileno(stream: *mut ::FILE) -> ::c_int; - - pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; - - pub fn opendir(dirname: *const c_char) -> *mut ::DIR; - pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; - pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, result: *mut *mut ::dirent) - -> ::c_int; - pub fn closedir(dirp: *mut ::DIR) -> ::c_int; - pub fn rewinddir(dirp: *mut ::DIR); - - pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int, ...) -> ::c_int; - pub fn fchmodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - flags: ::c_int, - ) -> ::c_int; - pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; - pub fn fchownat( - dirfd: ::c_int, - pathname: *const ::c_char, - owner: ::uid_t, - group: ::gid_t, - flags: ::c_int, - ) -> ::c_int; - pub fn fstatat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut stat, - flags: ::c_int, - ) -> ::c_int; - pub fn linkat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - flags: ::c_int, - ) -> ::c_int; - pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn readlinkat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut ::c_char, - bufsiz: ::size_t, - ) -> ::ssize_t; - pub fn renameat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - ) -> ::c_int; - pub fn symlinkat( - target: *const ::c_char, - newdirfd: ::c_int, - linkpath: *const ::c_char, - ) -> ::c_int; - pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int) -> ::c_int; - - pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; - pub fn alarm(seconds: ::c_uint) -> ::c_uint; - pub fn chdir(dir: *const c_char) -> ::c_int; - pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; - pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; - pub fn close(fd: ::c_int) -> ::c_int; - pub fn dup(fd: ::c_int) -> ::c_int; - pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; - pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; - pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; - pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; - pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; - pub fn execve( - prog: *const c_char, - argv: *const *const c_char, - envp: *const *const c_char, - ) -> ::c_int; - pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; - pub fn fork() -> pid_t; - pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; - pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; - pub fn getegid() -> gid_t; - pub fn geteuid() -> uid_t; - pub fn getgid() -> gid_t; - pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int; - pub fn getlogin() -> *mut c_char; - pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int; - pub fn getpgid(pid: pid_t) -> pid_t; - pub fn getpgrp() -> pid_t; - pub fn getpid() -> pid_t; - pub fn getppid() -> pid_t; - pub fn getuid() -> uid_t; - pub fn isatty(fd: ::c_int) -> ::c_int; - pub fn link(src: *const c_char, dst: *const c_char) -> ::c_int; - pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; - pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; - pub fn pause() -> ::c_int; - pub fn pipe(fds: *mut ::c_int) -> ::c_int; - pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int; - pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) -> ::ssize_t; - pub fn rmdir(path: *const c_char) -> ::c_int; - pub fn seteuid(uid: uid_t) -> ::c_int; - pub fn setegid(gid: gid_t) -> ::c_int; - pub fn setgid(gid: gid_t) -> ::c_int; - pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int; - pub fn setsid() -> pid_t; - pub fn setuid(uid: uid_t) -> ::c_int; - pub fn sleep(secs: ::c_uint) -> ::c_uint; - pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> ::c_int; - pub fn tcgetpgrp(fd: ::c_int) -> pid_t; - pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; - pub fn ttyname(fd: ::c_int) -> *mut c_char; - pub fn unlink(c: *const c_char) -> ::c_int; - pub fn wait(status: *mut ::c_int) -> pid_t; - pub fn waitpid(pid: pid_t, status: *mut ::c_int, options: ::c_int) -> pid_t; - pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t; - pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; - pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; - pub fn umask(mask: mode_t) -> mode_t; - - pub fn utime(file: *const c_char, buf: *const utimbuf) -> ::c_int; - - pub fn kill(pid: pid_t, sig: ::c_int) -> ::c_int; - - pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn munlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn mlockall(flags: ::c_int) -> ::c_int; - pub fn munlockall() -> ::c_int; - - pub fn mmap( - addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, - offset: off_t, - ) -> *mut ::c_void; - pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; - - pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint; - pub fn if_indextoname(ifindex: ::c_uint, ifname: *mut ::c_char) -> *mut ::c_char; - - pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; - - pub fn fsync(fd: ::c_int) -> ::c_int; - - pub fn setenv(name: *const c_char, val: *const c_char, overwrite: ::c_int) -> ::c_int; - pub fn unsetenv(name: *const c_char) -> ::c_int; - - pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; - - pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; - - pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; - - pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) -> *mut ::c_char; - - pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; - - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn times(buf: *mut ::tms) -> ::clock_t; - - pub fn pthread_self() -> ::pthread_t; - pub fn pthread_join(native: ::pthread_t, value: *mut *mut ::c_void) -> ::c_int; - pub fn pthread_exit(value: *mut ::c_void) -> !; - pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, stack_size: ::size_t) -> ::c_int; - pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, state: ::c_int) -> ::c_int; - pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; - pub fn sched_yield() -> ::c_int; - pub fn pthread_key_create( - key: *mut pthread_key_t, - dtor: ::Option, - ) -> ::c_int; - pub fn pthread_key_delete(key: pthread_key_t) -> ::c_int; - pub fn pthread_getspecific(key: pthread_key_t) -> *mut ::c_void; - pub fn pthread_setspecific(key: pthread_key_t, value: *const ::c_void) -> ::c_int; - pub fn pthread_mutex_init( - lock: *mut pthread_mutex_t, - attr: *const pthread_mutexattr_t, - ) -> ::c_int; - pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> ::c_int; - - pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int; - pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> ::c_int; - pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, _type: ::c_int) -> ::c_int; - - pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) - -> ::c_int; - pub fn pthread_cond_wait(cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_cond_timedwait( - cond: *mut pthread_cond_t, - lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> ::c_int; - pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> ::c_int; - pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int; - pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> ::c_int; - pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> ::c_int; - pub fn pthread_rwlock_init( - lock: *mut pthread_rwlock_t, - attr: *const pthread_rwlockattr_t, - ) -> ::c_int; - pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> ::c_int; - pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> ::c_int; - pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> ::c_int; - pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> ::c_int; - pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> ::c_int; - pub fn pthread_rwlock_unlock(lock: *mut pthread_rwlock_t) -> ::c_int; - pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) -> ::c_int; - pub fn pthread_rwlockattr_destroy(attr: *mut pthread_rwlockattr_t) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - - pub fn getsockopt( - sockfd: ::c_int, - level: ::c_int, - optname: ::c_int, - optval: *mut ::c_void, - optlen: *mut ::socklen_t, - ) -> ::c_int; - pub fn raise(signum: ::c_int) -> ::c_int; - pub fn sigaction(signum: ::c_int, act: *const sigaction, oldact: *mut sigaction) -> ::c_int; - - pub fn utimes(filename: *const ::c_char, times: *const ::timeval) -> ::c_int; - pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; - pub fn dlerror() -> *mut ::c_char; - pub fn dlsym(handle: *mut ::c_void, symbol: *const ::c_char) -> *mut ::c_void; - pub fn dlclose(handle: *mut ::c_void) -> ::c_int; - pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; - - pub fn getaddrinfo( - node: *const c_char, - service: *const c_char, - hints: *const addrinfo, - res: *mut *mut addrinfo, - ) -> ::c_int; - pub fn freeaddrinfo(res: *mut addrinfo); - pub fn gai_strerror(errcode: ::c_int) -> *const ::c_char; - pub fn res_init() -> ::c_int; - - pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; - pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; - pub fn mktime(tm: *mut tm) -> time_t; - pub fn time(time: *mut time_t) -> time_t; - pub fn gmtime(time_p: *const time_t) -> *mut tm; - pub fn localtime(time_p: *const time_t) -> *mut tm; - - pub fn mknod(pathname: *const ::c_char, mode: ::mode_t, dev: ::dev_t) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; - pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn getservbyname(name: *const ::c_char, proto: *const ::c_char) -> *mut servent; - pub fn getprotobyname(name: *const ::c_char) -> *mut protoent; - pub fn getprotobynumber(proto: ::c_int) -> *mut protoent; - pub fn usleep(secs: ::c_uint) -> ::c_int; - pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; - pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; - pub fn putenv(string: *mut c_char) -> ::c_int; - pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; - pub fn select( - nfds: ::c_int, - readfds: *mut fd_set, - writefds: *mut fd_set, - errorfds: *mut fd_set, - timeout: *mut timeval, - ) -> ::c_int; - pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char; - pub fn localeconv() -> *mut lconv; - - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_wait(sem: *mut sem_t) -> ::c_int; - pub fn sem_trywait(sem: *mut sem_t) -> ::c_int; - pub fn sem_post(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> ::c_int; - pub fn fstatvfs(fd: ::c_int, buf: *mut statvfs) -> ::c_int; - - pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::ssize_t; - - pub fn sigemptyset(set: *mut sigset_t) -> ::c_int; - pub fn sigaddset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; - pub fn sigfillset(set: *mut sigset_t) -> ::c_int; - pub fn sigdelset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; - pub fn sigismember(set: *const sigset_t, signum: ::c_int) -> ::c_int; - - pub fn sigprocmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sigpending(set: *mut sigset_t) -> ::c_int; - - pub fn timegm(tm: *mut ::tm) -> time_t; - - pub fn getsid(pid: pid_t) -> pid_t; - - pub fn sysconf(name: ::c_int) -> ::c_long; - - pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; - - pub fn pselect( - nfds: ::c_int, - readfds: *mut fd_set, - writefds: *mut fd_set, - errorfds: *mut fd_set, - timeout: *const timespec, - sigmask: *const sigset_t, - ) -> ::c_int; - pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int; - pub fn ftello(stream: *mut ::FILE) -> ::off_t; - pub fn tcdrain(fd: ::c_int) -> ::c_int; - pub fn cfgetispeed(termios: *const ::termios) -> ::speed_t; - pub fn cfgetospeed(termios: *const ::termios) -> ::speed_t; - pub fn cfmakeraw(termios: *mut ::termios); - pub fn cfsetispeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; - pub fn cfsetospeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; - pub fn cfsetspeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; - pub fn tcgetattr(fd: ::c_int, termios: *mut ::termios) -> ::c_int; - pub fn tcsetattr(fd: ::c_int, optional_actions: ::c_int, termios: *const ::termios) -> ::c_int; - pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int; - pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int; - pub fn tcgetsid(fd: ::c_int) -> ::pid_t; - pub fn tcsendbreak(fd: ::c_int, duration: ::c_int) -> ::c_int; - pub fn mkstemp(template: *mut ::c_char) -> ::c_int; - pub fn mkdtemp(template: *mut ::c_char) -> *mut ::c_char; - - pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char; - - pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int); - pub fn closelog(); - pub fn setlogmask(maskpri: ::c_int) -> ::c_int; - pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); - - pub fn grantpt(fd: ::c_int) -> ::c_int; - pub fn posix_openpt(flags: ::c_int) -> ::c_int; - pub fn ptsname(fd: ::c_int) -> *mut ::c_char; - pub fn unlockpt(fd: ::c_int) -> ::c_int; - - pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - - pub fn pthread_getattr_np(native: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn setgroups(ngroups: ::size_t, ptr: *const ::gid_t) -> ::c_int; - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; - - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - - pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; - - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: dev_t, - ) -> ::c_int; - pub fn pthread_condattr_getclock( - attr: *const pthread_condattr_t, - clock_id: *mut clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_setclock( - attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn accept4( - fd: ::c_int, - addr: *mut ::sockaddr, - len: *mut ::socklen_t, - flg: ::c_int, - ) -> ::c_int; - pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> ::c_int; - pub fn clearenv() -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; - pub fn setreuid(ruid: ::uid_t, euid: ::uid_t) -> ::c_int; - pub fn setregid(rgid: ::gid_t, egid: ::gid_t) -> ::c_int; - pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; - pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; - pub fn acct(filename: *const ::c_char) -> ::c_int; - pub fn brk(addr: *mut ::c_void) -> ::c_int; - pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; - pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; - pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *const termios, - winp: *const ::winsize, - ) -> ::c_int; - pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - pub fn fexecve( - fd: ::c_int, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; - - pub fn setpwent(); - pub fn endpwent(); - pub fn getpwent() -> *mut passwd; - - pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; - - // System V IPC - pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; - pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; - pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; - pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; - pub fn semget(key: ::key_t, nsems: ::c_int, semflag: ::c_int) -> ::c_int; - pub fn semop(semid: ::c_int, sops: *mut ::sembuf, nsops: ::size_t) -> ::c_int; - pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; - pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; - pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; - pub fn msgsnd( - msqid: ::c_int, - msgp: *const ::c_void, - msgsz: ::size_t, - msgflg: ::c_int, - ) -> ::c_int; - - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn __errno_location() -> *mut ::c_int; - - pub fn fallocate(fd: ::c_int, mode: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn readahead(fd: ::c_int, offset: ::off64_t, count: ::size_t) -> ::ssize_t; - pub fn signalfd(fd: ::c_int, mask: *const ::sigset_t, flags: ::c_int) -> ::c_int; - pub fn timerfd_create(clockid: ::c_int, flags: ::c_int) -> ::c_int; - pub fn timerfd_gettime(fd: ::c_int, curr_value: *mut itimerspec) -> ::c_int; - pub fn timerfd_settime( - fd: ::c_int, - flags: ::c_int, - new_value: *const itimerspec, - old_value: *mut itimerspec, - ) -> ::c_int; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn quotactl( - cmd: ::c_int, - special: *const ::c_char, - id: ::c_int, - data: *mut ::c_char, - ) -> ::c_int; - pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; - pub fn sigtimedwait( - set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn reboot(how_to: ::c_int) -> ::c_int; - pub fn setfsgid(gid: ::gid_t) -> ::c_int; - pub fn setfsuid(uid: ::uid_t) -> ::c_int; - - // Not available now on Android - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn if_nameindex() -> *mut if_nameindex; - pub fn if_freenameindex(ptr: *mut if_nameindex); - pub fn sync_file_range( - fd: ::c_int, - offset: ::off64_t, - nbytes: ::off64_t, - flags: ::c_uint, - ) -> ::c_int; - pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; - pub fn freeifaddrs(ifa: *mut ::ifaddrs); - - pub fn glob( - pattern: *const c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - pub fn globfree(pglob: *mut ::glob_t); - - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; - - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - - pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; - - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - - pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn vhangup() -> ::c_int; - pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - ) -> ::c_int; - pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - timeout: *mut ::timespec, - ) -> ::c_int; - pub fn sync(); - pub fn syscall(num: ::c_long, ...) -> ::c_long; - pub fn sched_getaffinity(pid: ::pid_t, cpusetsize: ::size_t, cpuset: *mut cpu_set_t) - -> ::c_int; - pub fn sched_setaffinity( - pid: ::pid_t, - cpusetsize: ::size_t, - cpuset: *const cpu_set_t, - ) -> ::c_int; - pub fn umount(target: *const ::c_char) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn tee(fd_in: ::c_int, fd_out: ::c_int, len: ::size_t, flags: ::c_uint) -> ::ssize_t; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; - pub fn splice( - fd_in: ::c_int, - off_in: *mut ::loff_t, - fd_out: ::c_int, - off_out: *mut ::loff_t, - len: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; - pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; - pub fn swapoff(puath: *const ::c_char) -> ::c_int; - pub fn vmsplice( - fd: ::c_int, - iov: *const ::iovec, - nr_segs: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; - pub fn mount( - src: *const ::c_char, - target: *const ::c_char, - fstype: *const ::c_char, - flags: ::c_ulong, - data: *const ::c_void, - ) -> ::c_int; - pub fn personality(persona: ::c_ulong) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; - pub fn ppoll( - fds: *mut ::pollfd, - nfds: nfds_t, - timeout: *const ::timespec, - sigmask: *const sigset_t, - ) -> ::c_int; - pub fn pthread_mutex_timedlock( - lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn clone( - cb: extern "C" fn(*mut ::c_void) -> ::c_int, - child_stack: *mut ::c_void, - flags: ::c_int, - arg: *mut ::c_void, - ... - ) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; - pub fn pthread_attr_getguardsize( - attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t, - ) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; - pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; - pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; - pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; - pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn getdtablesize() -> ::c_int; - pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - pub fn getpwnam_r( - name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn getpwuid_r( - uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - - pub fn setgrent(); - pub fn endgrent(); - pub fn getgrent() -> *mut ::group; - - pub fn getgrouplist( - user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; - pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut ::dl_phdr_info, - size: ::size_t, - data: *mut ::c_void, - ) -> ::c_int, - >, - data: *mut ::c_void, - ) -> ::c_int; -} - -cfg_if! { - if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else if #[cfg(any(target_arch = "x86_64"))] { - mod x86_64; - pub use self::x86_64::*; - } else if #[cfg(any(target_arch = "riscv64"))] { - mod riscv64; - pub use self::riscv64::*; - } else { - // Unknown target_arch - } -} - -cfg_if! { - if #[cfg(libc_align)] { - #[macro_use] - mod align; - } else { - #[macro_use] - mod no_align; - } -} -expand_align!(); - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/fuchsia/no_align.rs b/src/rust/vendor/libc-0.2.146/src/fuchsia/no_align.rs deleted file mode 100644 index 7ca90e0e4..000000000 --- a/src/rust/vendor/libc-0.2.146/src/fuchsia/no_align.rs +++ /dev/null @@ -1,129 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - pub struct pthread_mutexattr_t { - #[cfg(target_arch = "x86_64")] - __align: [::c_int; 0], - #[cfg(not(target_arch = "x86_64"))] - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - pub struct pthread_rwlockattr_t { - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], - } - - pub struct pthread_condattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - - s_no_extra_traits! { - pub struct pthread_mutex_t { - #[cfg(any(target_arch = "arm", - all(target_arch = "x86_64", - target_pointer_width = "32")))] - __align: [::c_long; 0], - #[cfg(not(any(target_arch = "arm", - all(target_arch = "x86_64", - target_pointer_width = "32"))))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - pub struct pthread_rwlock_t { - __align: [::c_long; 0], - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - pub struct pthread_cond_t { - __align: [*const ::c_void; 0], - #[cfg(not(target_env = "musl"))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - // Ignore __align field - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_cond_t {} - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_cond_t") - // Ignore __align field - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - // Ignore __align field - self.size.hash(state); - } - } - - impl PartialEq for pthread_mutex_t { - fn eq(&self, other: &pthread_mutex_t) -> bool { - // Ignore __align field - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_mutex_t {} - impl ::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_mutex_t") - // Ignore __align field - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { - // Ignore __align field - self.size.hash(state); - } - } - - impl PartialEq for pthread_rwlock_t { - fn eq(&self, other: &pthread_rwlock_t) -> bool { - // Ignore __align field - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_rwlock_t {} - impl ::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_rwlock_t") - // Ignore __align field - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { - // Ignore __align field - self.size.hash(state); - } - } - } - } - }; -} diff --git a/src/rust/vendor/libc-0.2.146/src/fuchsia/riscv64.rs b/src/rust/vendor/libc-0.2.146/src/fuchsia/riscv64.rs deleted file mode 100644 index de2b7197d..000000000 --- a/src/rust/vendor/libc-0.2.146/src/fuchsia/riscv64.rs +++ /dev/null @@ -1,44 +0,0 @@ -// From psABI Calling Convention for RV64 -pub type c_char = u8; -pub type __u64 = ::c_ulonglong; -pub type wchar_t = i32; - -pub type nlink_t = ::c_ulong; -pub type blksize_t = ::c_long; - -pub type stat64 = stat; -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - __pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_long; 3], - } - - // Not actually used, IPC calls just return ENOSYS - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/fuchsia/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/fuchsia/x86_64.rs deleted file mode 100644 index dca3c247d..000000000 --- a/src/rust/vendor/libc-0.2.146/src/fuchsia/x86_64.rs +++ /dev/null @@ -1,152 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; -pub type nlink_t = u64; -pub type blksize_t = ::c_long; -pub type __u64 = ::c_ulonglong; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - __pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_long; 3], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - __pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __reserved: [::c_long; 3], - } - - pub struct mcontext_t { - __private: [u64; 32], - } - - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_int, - __unused1: ::c_long, - __unused2: ::c_long - } -} - -s_no_extra_traits! { - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, - __private: [u8; 512], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - && self - .__private - .iter() - .zip(other.__private.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - // FIXME: .field("__private", &self.__private) - .finish() - } - } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - self.__private.hash(state); - } - } - } -} - -// offsets in user_regs_structs, from sys/reg.h -pub const R15: ::c_int = 0; -pub const R14: ::c_int = 1; -pub const R13: ::c_int = 2; -pub const R12: ::c_int = 3; -pub const RBP: ::c_int = 4; -pub const RBX: ::c_int = 5; -pub const R11: ::c_int = 6; -pub const R10: ::c_int = 7; -pub const R9: ::c_int = 8; -pub const R8: ::c_int = 9; -pub const RAX: ::c_int = 10; -pub const RCX: ::c_int = 11; -pub const RDX: ::c_int = 12; -pub const RSI: ::c_int = 13; -pub const RDI: ::c_int = 14; -pub const ORIG_RAX: ::c_int = 15; -pub const RIP: ::c_int = 16; -pub const CS: ::c_int = 17; -pub const EFLAGS: ::c_int = 18; -pub const RSP: ::c_int = 19; -pub const SS: ::c_int = 20; -pub const FS_BASE: ::c_int = 21; -pub const GS_BASE: ::c_int = 22; -pub const DS: ::c_int = 23; -pub const ES: ::c_int = 24; -pub const FS: ::c_int = 25; -pub const GS: ::c_int = 26; - -pub const MAP_32BIT: ::c_int = 0x0040; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; diff --git a/src/rust/vendor/libc-0.2.146/src/hermit/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/hermit/aarch64.rs deleted file mode 100644 index 1a92e3b4f..000000000 --- a/src/rust/vendor/libc-0.2.146/src/hermit/aarch64.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = u32; diff --git a/src/rust/vendor/libc-0.2.146/src/hermit/mod.rs b/src/rust/vendor/libc-0.2.146/src/hermit/mod.rs deleted file mode 100644 index bffcefdd8..000000000 --- a/src/rust/vendor/libc-0.2.146/src/hermit/mod.rs +++ /dev/null @@ -1,64 +0,0 @@ -// libc port for HermitCore (https://hermitcore.org) -// -// Ported by Colin Fink -// and Stefan Lankes - -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; -pub type intmax_t = i64; -pub type uintmax_t = u64; - -pub type size_t = usize; -pub type ptrdiff_t = isize; -pub type intptr_t = isize; -pub type uintptr_t = usize; -pub type ssize_t = isize; - -pub type c_long = i64; -pub type c_ulong = u64; - -pub type wint_t = u32; -pub type wctype_t = i64; - -pub type regoff_t = size_t; -pub type off_t = c_long; - -cfg_if! { - if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } else { - // Unknown target_arch - } -} - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/hermit/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/hermit/x86_64.rs deleted file mode 100644 index 76ec3ce82..000000000 --- a/src/rust/vendor/libc-0.2.146/src/hermit/x86_64.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; diff --git a/src/rust/vendor/libc-0.2.146/src/lib.rs b/src/rust/vendor/libc-0.2.146/src/lib.rs deleted file mode 100644 index d9bd318d1..000000000 --- a/src/rust/vendor/libc-0.2.146/src/lib.rs +++ /dev/null @@ -1,163 +0,0 @@ -//! libc - Raw FFI bindings to platforms' system libraries -//! -//! [Documentation for other platforms][pd]. -//! -//! [pd]: https://rust-lang.github.io/libc/#platform-specific-documentation -#![crate_name = "libc"] -#![crate_type = "rlib"] -#![allow( - renamed_and_removed_lints, // Keep this order. - unknown_lints, // Keep this order. - bad_style, - overflowing_literals, - improper_ctypes, - // This lint is renamed but we run CI for old stable rustc so should be here. - redundant_semicolon, - redundant_semicolons, - unused_macros, - unused_macro_rules, -)] -#![cfg_attr(libc_deny_warnings, deny(warnings))] -// Attributes needed when building as part of the standard library -#![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, no_core))] -#![cfg_attr(libc_thread_local, feature(thread_local))] -// Enable extra lints: -#![cfg_attr(feature = "extra_traits", deny(missing_debug_implementations))] -#![deny(missing_copy_implementations, safe_packed_borrows)] -#![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)] -#![cfg_attr(feature = "rustc-dep-of-std", no_core)] -#![cfg_attr(libc_const_extern_fn_unstable, feature(const_extern_fn))] - -#[macro_use] -mod macros; - -cfg_if! { - if #[cfg(feature = "rustc-dep-of-std")] { - extern crate rustc_std_workspace_core as core; - #[allow(unused_imports)] - use core::iter; - #[allow(unused_imports)] - use core::ops; - #[allow(unused_imports)] - use core::option; - } -} - -cfg_if! { - if #[cfg(libc_priv_mod_use)] { - #[cfg(libc_core_cvoid)] - #[allow(unused_imports)] - use core::ffi; - #[allow(unused_imports)] - use core::fmt; - #[allow(unused_imports)] - use core::hash; - #[allow(unused_imports)] - use core::num; - #[allow(unused_imports)] - use core::mem; - #[doc(hidden)] - #[allow(unused_imports)] - use core::clone::Clone; - #[doc(hidden)] - #[allow(unused_imports)] - use core::marker::{Copy, Send, Sync}; - #[doc(hidden)] - #[allow(unused_imports)] - use core::option::Option; - } else { - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::fmt; - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::hash; - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::num; - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::mem; - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::clone::Clone; - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::marker::{Copy, Send, Sync}; - #[doc(hidden)] - #[allow(unused_imports)] - pub use core::option::Option; - } -} - -cfg_if! { - if #[cfg(windows)] { - mod fixed_width_ints; - pub use fixed_width_ints::*; - - mod windows; - pub use windows::*; - } else if #[cfg(target_os = "fuchsia")] { - mod fixed_width_ints; - pub use fixed_width_ints::*; - - mod fuchsia; - pub use fuchsia::*; - } else if #[cfg(target_os = "switch")] { - mod fixed_width_ints; - pub use fixed_width_ints::*; - - mod switch; - pub use switch::*; - } else if #[cfg(target_os = "psp")] { - mod fixed_width_ints; - pub use fixed_width_ints::*; - - mod psp; - pub use psp::*; - } else if #[cfg(target_os = "vxworks")] { - mod fixed_width_ints; - pub use fixed_width_ints::*; - - mod vxworks; - pub use vxworks::*; - } else if #[cfg(target_os = "solid_asp3")] { - mod fixed_width_ints; - pub use fixed_width_ints::*; - - mod solid; - pub use solid::*; - } else if #[cfg(unix)] { - mod fixed_width_ints; - pub use fixed_width_ints::*; - - mod unix; - pub use unix::*; - } else if #[cfg(target_os = "hermit")] { - mod fixed_width_ints; - pub use fixed_width_ints::*; - - mod hermit; - pub use hermit::*; - } else if #[cfg(all(target_env = "sgx", target_vendor = "fortanix"))] { - mod fixed_width_ints; - pub use fixed_width_ints::*; - - mod sgx; - pub use sgx::*; - } else if #[cfg(any(target_env = "wasi", target_os = "wasi"))] { - mod fixed_width_ints; - pub use fixed_width_ints::*; - - mod wasi; - pub use wasi::*; - } else if #[cfg(target_os = "xous")] { - mod fixed_width_ints; - pub use fixed_width_ints::*; - - mod xous; - pub use xous::*; - } else { - // non-supported targets: empty... - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/macros.rs b/src/rust/vendor/libc-0.2.146/src/macros.rs deleted file mode 100644 index fd473702f..000000000 --- a/src/rust/vendor/libc-0.2.146/src/macros.rs +++ /dev/null @@ -1,343 +0,0 @@ -/// A macro for defining #[cfg] if-else statements. -/// -/// This is similar to the `if/elif` C preprocessor macro by allowing definition -/// of a cascade of `#[cfg]` cases, emitting the implementation which matches -/// first. -/// -/// This allows you to conveniently provide a long list #[cfg]'d blocks of code -/// without having to rewrite each clause multiple times. -macro_rules! cfg_if { - // match if/else chains with a final `else` - ($( - if #[cfg($($meta:meta),*)] { $($it:item)* } - ) else * else { - $($it2:item)* - }) => { - cfg_if! { - @__items - () ; - $( ( ($($meta),*) ($($it)*) ), )* - ( () ($($it2)*) ), - } - }; - - // match if/else chains lacking a final `else` - ( - if #[cfg($($i_met:meta),*)] { $($i_it:item)* } - $( - else if #[cfg($($e_met:meta),*)] { $($e_it:item)* } - )* - ) => { - cfg_if! { - @__items - () ; - ( ($($i_met),*) ($($i_it)*) ), - $( ( ($($e_met),*) ($($e_it)*) ), )* - ( () () ), - } - }; - - // Internal and recursive macro to emit all the items - // - // Collects all the negated `cfg`s in a list at the beginning and after the - // semicolon is all the remaining items - (@__items ($($not:meta,)*) ; ) => {}; - (@__items ($($not:meta,)*) ; ( ($($m:meta),*) ($($it:item)*) ), - $($rest:tt)*) => { - // Emit all items within one block, applying an appropriate #[cfg]. The - // #[cfg] will require all `$m` matchers specified and must also negate - // all previous matchers. - cfg_if! { @__apply cfg(all($($m,)* not(any($($not),*)))), $($it)* } - - // Recurse to emit all other items in `$rest`, and when we do so add all - // our `$m` matchers to the list of `$not` matchers as future emissions - // will have to negate everything we just matched as well. - cfg_if! { @__items ($($not,)* $($m,)*) ; $($rest)* } - }; - - // Internal macro to Apply a cfg attribute to a list of items - (@__apply $m:meta, $($it:item)*) => { - $(#[$m] $it)* - }; -} - -macro_rules! s { - ($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($( - s!(it: $(#[$attr])* pub $t $i { $($field)* }); - )*); - (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => ( - compile_error!("unions cannot derive extra traits, use s_no_extra_traits instead"); - ); - (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( - __item! { - #[repr(C)] - #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] - #[allow(deprecated)] - $(#[$attr])* - pub struct $i { $($field)* } - } - #[allow(deprecated)] - impl ::Copy for $i {} - #[allow(deprecated)] - impl ::Clone for $i { - fn clone(&self) -> $i { *self } - } - ); -} - -macro_rules! s_no_extra_traits { - ($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($( - s_no_extra_traits!(it: $(#[$attr])* pub $t $i { $($field)* }); - )*); - (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => ( - cfg_if! { - if #[cfg(libc_union)] { - __item! { - #[repr(C)] - $(#[$attr])* - pub union $i { $($field)* } - } - - impl ::Copy for $i {} - impl ::Clone for $i { - fn clone(&self) -> $i { *self } - } - } - } - ); - (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => ( - __item! { - #[repr(C)] - $(#[$attr])* - pub struct $i { $($field)* } - } - #[allow(deprecated)] - impl ::Copy for $i {} - #[allow(deprecated)] - impl ::Clone for $i { - fn clone(&self) -> $i { *self } - } - ); -} - -macro_rules! e { - ($($(#[$attr:meta])* pub enum $i:ident { $($field:tt)* })*) => ($( - __item! { - #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] - $(#[$attr])* - pub enum $i { $($field)* } - } - impl ::Copy for $i {} - impl ::Clone for $i { - fn clone(&self) -> $i { *self } - } - )*); -} - -macro_rules! s_paren { - ($($(#[$attr:meta])* pub struct $i:ident ( $($field:tt)* ); )* ) => ($( - __item! { - #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] - $(#[$attr])* - pub struct $i ( $($field)* ); - } - impl ::Copy for $i {} - impl ::Clone for $i { - fn clone(&self) -> $i { *self } - } - )*); -} - -// This is a pretty horrible hack to allow us to conditionally mark -// some functions as 'const', without requiring users of this macro -// to care about the "const-extern-fn" feature. -// -// When 'const-extern-fn' is enabled, we emit the captured 'const' keyword -// in the expanded function. -// -// When 'const-extern-fn' is disabled, we always emit a plain 'pub unsafe extern fn'. -// Note that the expression matched by the macro is exactly the same - this allows -// users of this macro to work whether or not 'const-extern-fn' is enabled -// -// Unfortunately, we need to duplicate most of this macro between the 'cfg_if' blocks. -// This is because 'const unsafe extern fn' won't even parse on older compilers, -// so we need to avoid emitting it at all of 'const-extern-fn'. -// -// Specifically, moving the 'cfg_if' into the macro body will *not* work. -// Doing so would cause the '#[cfg(feature = "const-extern-fn")]' to be emitted -// into user code. The 'cfg' gate will not stop Rust from trying to parse the -// 'pub const unsafe extern fn', so users would get a compiler error even when -// the 'const-extern-fn' feature is disabled -// -// Note that users of this macro need to place 'const' in a weird position -// (after the closing ')' for the arguments, but before the return type). -// This was the only way I could satisfy the following two requirements: -// 1. Avoid ambiguity errors from 'macro_rules!' (which happen when writing '$foo:ident fn' -// 2. Allow users of this macro to mix 'pub fn foo' and 'pub const fn bar' within the same -// 'f!' block -cfg_if! { - if #[cfg(libc_const_extern_fn)] { - macro_rules! f { - ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( - $($arg:ident: $argty:ty),* - ) -> $ret:ty { - $($body:stmt);* - })*) => ($( - #[inline] - $(#[$attr])* - pub $($constness)* unsafe extern fn $i($($arg: $argty),* - ) -> $ret { - $($body);* - } - )*) - } - - macro_rules! safe_f { - ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( - $($arg:ident: $argty:ty),* - ) -> $ret:ty { - $($body:stmt);* - })*) => ($( - #[inline] - $(#[$attr])* - pub $($constness)* extern fn $i($($arg: $argty),* - ) -> $ret { - $($body);* - } - )*) - } - - macro_rules! const_fn { - ($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident( - $($arg:ident: $argty:ty),* - ) -> $ret:ty { - $($body:stmt);* - })*) => ($( - #[inline] - $(#[$attr])* - $($constness)* fn $i($($arg: $argty),* - ) -> $ret { - $($body);* - } - )*) - } - - } else { - macro_rules! f { - ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( - $($arg:ident: $argty:ty),* - ) -> $ret:ty { - $($body:stmt);* - })*) => ($( - #[inline] - $(#[$attr])* - pub unsafe extern fn $i($($arg: $argty),* - ) -> $ret { - $($body);* - } - )*) - } - - macro_rules! safe_f { - ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident( - $($arg:ident: $argty:ty),* - ) -> $ret:ty { - $($body:stmt);* - })*) => ($( - #[inline] - $(#[$attr])* - pub extern fn $i($($arg: $argty),* - ) -> $ret { - $($body);* - } - )*) - } - - macro_rules! const_fn { - ($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident( - $($arg:ident: $argty:ty),* - ) -> $ret:ty { - $($body:stmt);* - })*) => ($( - #[inline] - $(#[$attr])* - fn $i($($arg: $argty),* - ) -> $ret { - $($body);* - } - )*) - } - } -} - -macro_rules! __item { - ($i:item) => { - $i - }; -} - -macro_rules! align_const { - ($($(#[$attr:meta])* - pub const $name:ident : $t1:ty - = $t2:ident { $($field:tt)* };)*) => ($( - #[cfg(libc_align)] - $(#[$attr])* - pub const $name : $t1 = $t2 { - $($field)* - }; - #[cfg(not(libc_align))] - $(#[$attr])* - pub const $name : $t1 = $t2 { - $($field)* - __align: [], - }; - )*) -} - -// This macro is used to deprecate items that should be accessed via the mach2 crate -macro_rules! deprecated_mach { - (pub const $id:ident: $ty:ty = $expr:expr;) => { - #[deprecated( - since = "0.2.55", - note = "Use the `mach2` crate instead", - )] - #[allow(deprecated)] - pub const $id: $ty = $expr; - }; - ($(pub const $id:ident: $ty:ty = $expr:expr;)*) => { - $( - deprecated_mach!( - pub const $id: $ty = $expr; - ); - )* - }; - (pub type $id:ident = $ty:ty;) => { - #[deprecated( - since = "0.2.55", - note = "Use the `mach2` crate instead", - )] - #[allow(deprecated)] - pub type $id = $ty; - }; - ($(pub type $id:ident = $ty:ty;)*) => { - $( - deprecated_mach!( - pub type $id = $ty; - ); - )* - } -} - -#[cfg(not(libc_ptr_addr_of))] -macro_rules! ptr_addr_of { - ($place:expr) => { - &$place - }; -} - -#[cfg(libc_ptr_addr_of)] -macro_rules! ptr_addr_of { - ($place:expr) => { - ::core::ptr::addr_of!($place) - }; -} diff --git a/src/rust/vendor/libc-0.2.146/src/psp.rs b/src/rust/vendor/libc-0.2.146/src/psp.rs deleted file mode 100644 index 575232dad..000000000 --- a/src/rust/vendor/libc-0.2.146/src/psp.rs +++ /dev/null @@ -1,4174 +0,0 @@ -//! PSP C type definitions -//! -//! These type declarations are not enough, as they must be ultimately resolved -//! by the linker. Crates that use these definitions must, somewhere in the -//! crate graph, include a stub provider crate such as the `psp` crate. - -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; -pub type intmax_t = i64; -pub type uintmax_t = u64; - -pub type size_t = usize; -pub type ptrdiff_t = isize; -pub type intptr_t = isize; -pub type uintptr_t = usize; -pub type ssize_t = isize; - -pub type c_char = u8; -pub type c_long = i64; -pub type c_ulong = u64; - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} - -pub type SceKernelVTimerHandler = unsafe extern "C" fn( - uid: SceUid, - arg1: *mut SceKernelSysClock, - arg2: *mut SceKernelSysClock, - arg3: *mut c_void, -) -> u32; - -pub type SceKernelVTimerHandlerWide = - unsafe extern "C" fn(uid: SceUid, arg1: i64, arg2: i64, arg3: *mut c_void) -> u32; - -pub type SceKernelThreadEventHandler = - unsafe extern "C" fn(mask: i32, thid: SceUid, common: *mut c_void) -> i32; - -pub type SceKernelAlarmHandler = unsafe extern "C" fn(common: *mut c_void) -> u32; - -pub type SceKernelCallbackFunction = - unsafe extern "C" fn(arg1: i32, arg2: i32, arg: *mut c_void) -> i32; - -pub type SceKernelThreadEntry = unsafe extern "C" fn(args: usize, argp: *mut c_void) -> i32; - -pub type PowerCallback = extern "C" fn(unknown: i32, power_info: i32); - -pub type IoPermissions = i32; - -pub type UmdCallback = fn(unknown: i32, event: i32) -> i32; - -pub type SceMpegRingbufferCb = - ::Option i32>; - -pub type GuCallback = ::Option; -pub type GuSwapBuffersCallback = - ::Option; - -pub type SceNetAdhocctlHandler = - ::Option; - -pub type AdhocMatchingCallback = ::Option< - unsafe extern "C" fn( - matching_id: i32, - event: i32, - mac: *mut u8, - opt_len: i32, - opt_data: *mut c_void, - ), ->; - -pub type SceNetApctlHandler = ::Option< - unsafe extern "C" fn(oldState: i32, newState: i32, event: i32, error: i32, pArg: *mut c_void), ->; - -pub type HttpMallocFunction = ::Option *mut c_void>; -pub type HttpReallocFunction = - ::Option *mut c_void>; -pub type HttpFreeFunction = ::Option; -pub type HttpPasswordCB = ::Option< - unsafe extern "C" fn( - request: i32, - auth_type: HttpAuthType, - realm: *const u8, - username: *mut u8, - password: *mut u8, - need_entity: i32, - entity_body: *mut *mut u8, - entity_size: *mut usize, - save: *mut i32, - ) -> i32, ->; - -pub type socklen_t = u32; - -e! { - #[repr(u32)] - pub enum AudioFormat { - Stereo = 0, - Mono = 0x10, - } - - #[repr(u32)] - pub enum DisplayMode { - Lcd = 0, - } - - #[repr(u32)] - pub enum DisplayPixelFormat { - Psm5650 = 0, - Psm5551 = 1, - Psm4444 = 2, - Psm8888 = 3, - } - - #[repr(u32)] - pub enum DisplaySetBufSync { - Immediate = 0, - NextFrame = 1, - } - - #[repr(i32)] - pub enum AudioOutputFrequency { - Khz48 = 48000, - Khz44_1 = 44100, - Khz32 = 32000, - Khz24 = 24000, - Khz22_05 = 22050, - Khz16 = 16000, - Khz12 = 12000, - Khz11_025 = 11025, - Khz8 = 8000, - } - - #[repr(i32)] - pub enum AudioInputFrequency { - Khz44_1 = 44100, - Khz22_05 = 22050, - Khz11_025 = 11025, - } - - #[repr(u32)] - pub enum CtrlMode { - Digital = 0, - Analog, - } - - #[repr(i32)] - pub enum GeMatrixType { - Bone0 = 0, - Bone1, - Bone2, - Bone3, - Bone4, - Bone5, - Bone6, - Bone7, - World, - View, - Projection, - TexGen, - } - - #[repr(i32)] - pub enum GeListState { - Done = 0, - Queued, - DrawingDone, - StallReached, - CancelDone, - } - - #[repr(u8)] - pub enum GeCommand { - Nop = 0, - Vaddr = 0x1, - Iaddr = 0x2, - Prim = 0x4, - Bezier = 0x5, - Spline = 0x6, - BoundingBox = 0x7, - Jump = 0x8, - BJump = 0x9, - Call = 0xa, - Ret = 0xb, - End = 0xc, - Signal = 0xe, - Finish = 0xf, - Base = 0x10, - VertexType = 0x12, - OffsetAddr = 0x13, - Origin = 0x14, - Region1 = 0x15, - Region2 = 0x16, - LightingEnable = 0x17, - LightEnable0 = 0x18, - LightEnable1 = 0x19, - LightEnable2 = 0x1a, - LightEnable3 = 0x1b, - DepthClampEnable = 0x1c, - CullFaceEnable = 0x1d, - TextureMapEnable = 0x1e, - FogEnable = 0x1f, - DitherEnable = 0x20, - AlphaBlendEnable = 0x21, - AlphaTestEnable = 0x22, - ZTestEnable = 0x23, - StencilTestEnable = 0x24, - AntiAliasEnable = 0x25, - PatchCullEnable = 0x26, - ColorTestEnable = 0x27, - LogicOpEnable = 0x28, - BoneMatrixNumber = 0x2a, - BoneMatrixData = 0x2b, - MorphWeight0 = 0x2c, - MorphWeight1 = 0x2d, - MorphWeight2 = 0x2e, - MorphWeight3 = 0x2f, - MorphWeight4 = 0x30, - MorphWeight5 = 0x31, - MorphWeight6 = 0x32, - MorphWeight7 = 0x33, - PatchDivision = 0x36, - PatchPrimitive = 0x37, - PatchFacing = 0x38, - WorldMatrixNumber = 0x3a, - WorldMatrixData = 0x3b, - ViewMatrixNumber = 0x3c, - ViewMatrixData = 0x3d, - ProjMatrixNumber = 0x3e, - ProjMatrixData = 0x3f, - TGenMatrixNumber = 0x40, - TGenMatrixData = 0x41, - ViewportXScale = 0x42, - ViewportYScale = 0x43, - ViewportZScale = 0x44, - ViewportXCenter = 0x45, - ViewportYCenter = 0x46, - ViewportZCenter = 0x47, - TexScaleU = 0x48, - TexScaleV = 0x49, - TexOffsetU = 0x4a, - TexOffsetV = 0x4b, - OffsetX = 0x4c, - OffsetY = 0x4d, - ShadeMode = 0x50, - ReverseNormal = 0x51, - MaterialUpdate = 0x53, - MaterialEmissive = 0x54, - MaterialAmbient = 0x55, - MaterialDiffuse = 0x56, - MaterialSpecular = 0x57, - MaterialAlpha = 0x58, - MaterialSpecularCoef = 0x5b, - AmbientColor = 0x5c, - AmbientAlpha = 0x5d, - LightMode = 0x5e, - LightType0 = 0x5f, - LightType1 = 0x60, - LightType2 = 0x61, - LightType3 = 0x62, - Light0X = 0x63, - Light0Y, - Light0Z, - Light1X, - Light1Y, - Light1Z, - Light2X, - Light2Y, - Light2Z, - Light3X, - Light3Y, - Light3Z, - Light0DirectionX = 0x6f, - Light0DirectionY, - Light0DirectionZ, - Light1DirectionX, - Light1DirectionY, - Light1DirectionZ, - Light2DirectionX, - Light2DirectionY, - Light2DirectionZ, - Light3DirectionX, - Light3DirectionY, - Light3DirectionZ, - Light0ConstantAtten = 0x7b, - Light0LinearAtten, - Light0QuadtraticAtten, - Light1ConstantAtten, - Light1LinearAtten, - Light1QuadtraticAtten, - Light2ConstantAtten, - Light2LinearAtten, - Light2QuadtraticAtten, - Light3ConstantAtten, - Light3LinearAtten, - Light3QuadtraticAtten, - Light0ExponentAtten = 0x87, - Light1ExponentAtten, - Light2ExponentAtten, - Light3ExponentAtten, - Light0CutoffAtten = 0x8b, - Light1CutoffAtten, - Light2CutoffAtten, - Light3CutoffAtten, - Light0Ambient = 0x8f, - Light0Diffuse, - Light0Specular, - Light1Ambient, - Light1Diffuse, - Light1Specular, - Light2Ambient, - Light2Diffuse, - Light2Specular, - Light3Ambient, - Light3Diffuse, - Light3Specular, - Cull = 0x9b, - FrameBufPtr = 0x9c, - FrameBufWidth = 0x9d, - ZBufPtr = 0x9e, - ZBufWidth = 0x9f, - TexAddr0 = 0xa0, - TexAddr1, - TexAddr2, - TexAddr3, - TexAddr4, - TexAddr5, - TexAddr6, - TexAddr7, - TexBufWidth0 = 0xa8, - TexBufWidth1, - TexBufWidth2, - TexBufWidth3, - TexBufWidth4, - TexBufWidth5, - TexBufWidth6, - TexBufWidth7, - ClutAddr = 0xb0, - ClutAddrUpper = 0xb1, - TransferSrc, - TransferSrcW, - TransferDst, - TransferDstW, - TexSize0 = 0xb8, - TexSize1, - TexSize2, - TexSize3, - TexSize4, - TexSize5, - TexSize6, - TexSize7, - TexMapMode = 0xc0, - TexShadeLs = 0xc1, - TexMode = 0xc2, - TexFormat = 0xc3, - LoadClut = 0xc4, - ClutFormat = 0xc5, - TexFilter = 0xc6, - TexWrap = 0xc7, - TexLevel = 0xc8, - TexFunc = 0xc9, - TexEnvColor = 0xca, - TexFlush = 0xcb, - TexSync = 0xcc, - Fog1 = 0xcd, - Fog2 = 0xce, - FogColor = 0xcf, - TexLodSlope = 0xd0, - FramebufPixFormat = 0xd2, - ClearMode = 0xd3, - Scissor1 = 0xd4, - Scissor2 = 0xd5, - MinZ = 0xd6, - MaxZ = 0xd7, - ColorTest = 0xd8, - ColorRef = 0xd9, - ColorTestmask = 0xda, - AlphaTest = 0xdb, - StencilTest = 0xdc, - StencilOp = 0xdd, - ZTest = 0xde, - BlendMode = 0xdf, - BlendFixedA = 0xe0, - BlendFixedB = 0xe1, - Dith0 = 0xe2, - Dith1, - Dith2, - Dith3, - LogicOp = 0xe6, - ZWriteDisable = 0xe7, - MaskRgb = 0xe8, - MaskAlpha = 0xe9, - TransferStart = 0xea, - TransferSrcPos = 0xeb, - TransferDstPos = 0xec, - TransferSize = 0xee, - Vscx = 0xf0, - Vscy = 0xf1, - Vscz = 0xf2, - Vtcs = 0xf3, - Vtct = 0xf4, - Vtcq = 0xf5, - Vcv = 0xf6, - Vap = 0xf7, - Vfc = 0xf8, - Vscv = 0xf9, - - Unknown03 = 0x03, - Unknown0D = 0x0d, - Unknown11 = 0x11, - Unknown29 = 0x29, - Unknown34 = 0x34, - Unknown35 = 0x35, - Unknown39 = 0x39, - Unknown4E = 0x4e, - Unknown4F = 0x4f, - Unknown52 = 0x52, - Unknown59 = 0x59, - Unknown5A = 0x5a, - UnknownB6 = 0xb6, - UnknownB7 = 0xb7, - UnknownD1 = 0xd1, - UnknownED = 0xed, - UnknownEF = 0xef, - UnknownFA = 0xfa, - UnknownFB = 0xfb, - UnknownFC = 0xfc, - UnknownFD = 0xfd, - UnknownFE = 0xfe, - NopFF = 0xff, - } - - #[repr(i32)] - pub enum SceSysMemPartitionId { - SceKernelUnknownPartition = 0, - SceKernelPrimaryKernelPartition = 1, - SceKernelPrimaryUserPartition = 2, - SceKernelOtherKernelPartition1 = 3, - SceKernelOtherKernelPartition2 = 4, - SceKernelVshellPARTITION = 5, - SceKernelScUserPartition = 6, - SceKernelMeUserPartition = 7, - SceKernelExtendedScKernelPartition = 8, - SceKernelExtendedSc2KernelPartition = 9, - SceKernelExtendedMeKernelPartition = 10, - SceKernelVshellKernelPartition = 11, - SceKernelExtendedKernelPartition = 12, - } - - #[repr(i32)] - pub enum SceSysMemBlockTypes { - Low = 0, - High, - Addr, - } - - #[repr(u32)] - pub enum Interrupt { - Gpio = 4, - Ata = 5, - Umd = 6, - Mscm0 = 7, - Wlan = 8, - Audio = 10, - I2c = 12, - Sircs = 14, - Systimer0 = 15, - Systimer1 = 16, - Systimer2 = 17, - Systimer3 = 18, - Thread0 = 19, - Nand = 20, - Dmacplus = 21, - Dma0 = 22, - Dma1 = 23, - Memlmd = 24, - Ge = 25, - Vblank = 30, - Mecodec = 31, - Hpremote = 36, - Mscm1 = 60, - Mscm2 = 61, - Thread1 = 65, - Interrupt = 66, - } - - #[repr(u32)] - pub enum SubInterrupt { - Gpio = Interrupt::Gpio as u32, - Ata = Interrupt::Ata as u32, - Umd = Interrupt::Umd as u32, - Dmacplus = Interrupt::Dmacplus as u32, - Ge = Interrupt::Ge as u32, - Display = Interrupt::Vblank as u32, - } - - #[repr(u32)] - pub enum SceKernelIdListType { - Thread = 1, - Semaphore = 2, - EventFlag = 3, - Mbox = 4, - Vpl = 5, - Fpl = 6, - Mpipe = 7, - Callback = 8, - ThreadEventHandler = 9, - Alarm = 10, - VTimer = 11, - SleepThread = 64, - DelayThread = 65, - SuspendThread = 66, - DormantThread = 67, - } - - #[repr(i32)] - pub enum UsbCamResolution { - Px160_120 = 0, - Px176_144 = 1, - Px320_240 = 2, - Px352_288 = 3, - Px640_480 = 4, - Px1024_768 = 5, - Px1280_960 = 6, - Px480_272 = 7, - Px360_272 = 8, - } - - #[repr(i32)] - pub enum UsbCamResolutionEx { - Px160_120 = 0, - Px176_144 = 1, - Px320_240 = 2, - Px352_288 = 3, - Px360_272 = 4, - Px480_272 = 5, - Px640_480 = 6, - Px1024_768 = 7, - Px1280_960 = 8, - } - - #[repr(i32)] - pub enum UsbCamDelay { - NoDelay = 0, - Delay10Sec = 1, - Delay20Sec = 2, - Delay30Sec = 3, - } - - #[repr(i32)] - pub enum UsbCamFrameRate { - Fps3_75 = 0, - Fps5 = 1, - Fps7_5 = 2, - Fps10 = 3, - Fps15 = 4, - Fps20 = 5, - Fps30 = 6, - Fps60 = 7, - } - - #[repr(i32)] - pub enum UsbCamWb { - Auto = 0, - Daylight = 1, - Fluorescent = 2, - Incadescent = 3, - } - - #[repr(i32)] - pub enum UsbCamEffectMode { - Normal = 0, - Negative = 1, - Blackwhite = 2, - Sepia = 3, - Blue = 4, - Red = 5, - Green = 6, - } - - #[repr(i32)] - pub enum UsbCamEvLevel { - Pos2_0 = 0, - Pos1_7 = 1, - Pos1_5 = 2, - Pos1_3 = 3, - Pos1_0 = 4, - Pos0_7 = 5, - Pos0_5 = 6, - Pos0_3 = 7, - Zero = 8, - Neg0_3, - Neg0_5, - Neg0_7, - Neg1_0, - Neg1_3, - Neg1_5, - Neg1_7, - Neg2_0, - } - - #[repr(i32)] - pub enum RtcCheckValidError { - InvalidYear = -1, - InvalidMonth = -2, - InvalidDay = -3, - InvalidHour = -4, - InvalidMinutes = -5, - InvalidSeconds = -6, - InvalidMicroseconds = -7, - } - - #[repr(u32)] - pub enum PowerTick { - All = 0, - Suspend = 1, - Display = 6, - } - - #[repr(u32)] - pub enum IoAssignPerms { - RdWr = 0, - RdOnly = 1, - } - - #[repr(u32)] - pub enum IoWhence { - Set = 0, - Cur = 1, - End = 2, - } - - #[repr(u32)] - pub enum UmdType { - Game = 0x10, - Video = 0x20, - Audio = 0x40, - } - - #[repr(u32)] - pub enum GuPrimitive { - Points = 0, - Lines = 1, - LineStrip = 2, - Triangles = 3, - TriangleStrip = 4, - TriangleFan = 5, - Sprites = 6, - } - - #[repr(u32)] - pub enum PatchPrimitive { - Points = 0, - LineStrip = 2, - TriangleStrip = 4, - } - - #[repr(u32)] - pub enum GuState { - AlphaTest = 0, - DepthTest = 1, - ScissorTest = 2, - StencilTest = 3, - Blend = 4, - CullFace = 5, - Dither = 6, - Fog = 7, - ClipPlanes = 8, - Texture2D = 9, - Lighting = 10, - Light0 = 11, - Light1 = 12, - Light2 = 13, - Light3 = 14, - LineSmooth = 15, - PatchCullFace = 16, - ColorTest = 17, - ColorLogicOp = 18, - FaceNormalReverse = 19, - PatchFace = 20, - Fragment2X = 21, - } - - #[repr(u32)] - pub enum MatrixMode { - Projection = 0, - View = 1, - Model = 2, - Texture = 3, - } - - #[repr(u32)] - pub enum TexturePixelFormat { - Psm5650 = 0, - Psm5551 = 1, - Psm4444 = 2, - Psm8888 = 3, - PsmT4 = 4, - PsmT8 = 5, - PsmT16 = 6, - PsmT32 = 7, - PsmDxt1 = 8, - PsmDxt3 = 9, - PsmDxt5 = 10, - } - - #[repr(u32)] - pub enum SplineMode { - FillFill = 0, - OpenFill = 1, - FillOpen = 2, - OpenOpen = 3, - } - - #[repr(u32)] - pub enum ShadingModel { - Flat = 0, - Smooth = 1, - } - - #[repr(u32)] - pub enum LogicalOperation { - Clear = 0, - And = 1, - AndReverse = 2, - Copy = 3, - AndInverted = 4, - Noop = 5, - Xor = 6, - Or = 7, - Nor = 8, - Equiv = 9, - Inverted = 10, - OrReverse = 11, - CopyInverted = 12, - OrInverted = 13, - Nand = 14, - Set = 15, - } - - #[repr(u32)] - pub enum TextureFilter { - Nearest = 0, - Linear = 1, - NearestMipmapNearest = 4, - LinearMipmapNearest = 5, - NearestMipmapLinear = 6, - LinearMipmapLinear = 7, - } - - #[repr(u32)] - pub enum TextureMapMode { - TextureCoords = 0, - TextureMatrix = 1, - EnvironmentMap = 2, - } - - #[repr(u32)] - pub enum TextureLevelMode { - Auto = 0, - Const = 1, - Slope = 2, - } - - #[repr(u32)] - pub enum TextureProjectionMapMode { - Position = 0, - Uv = 1, - NormalizedNormal = 2, - Normal = 3, - } - - #[repr(u32)] - pub enum GuTexWrapMode { - Repeat = 0, - Clamp = 1, - } - - #[repr(u32)] - pub enum FrontFaceDirection { - Clockwise = 0, - CounterClockwise = 1, - } - - #[repr(u32)] - pub enum AlphaFunc { - Never = 0, - Always, - Equal, - NotEqual, - Less, - LessOrEqual, - Greater, - GreaterOrEqual, - } - - #[repr(u32)] - pub enum StencilFunc { - Never = 0, - Always, - Equal, - NotEqual, - Less, - LessOrEqual, - Greater, - GreaterOrEqual, - } - - #[repr(u32)] - pub enum ColorFunc { - Never = 0, - Always, - Equal, - NotEqual, - } - - #[repr(u32)] - pub enum DepthFunc { - Never = 0, - Always, - Equal, - NotEqual, - Less, - LessOrEqual, - Greater, - GreaterOrEqual, - } - - #[repr(u32)] - pub enum TextureEffect { - Modulate = 0, - Decal = 1, - Blend = 2, - Replace = 3, - Add = 4, - } - - #[repr(u32)] - pub enum TextureColorComponent { - Rgb = 0, - Rgba = 1, - } - - #[repr(u32)] - pub enum MipmapLevel { - None = 0, - Level1, - Level2, - Level3, - Level4, - Level5, - Level6, - Level7, - } - - #[repr(u32)] - pub enum BlendOp { - Add = 0, - Subtract = 1, - ReverseSubtract = 2, - Min = 3, - Max = 4, - Abs = 5, - } - - #[repr(u32)] - pub enum BlendSrc { - SrcColor = 0, - OneMinusSrcColor = 1, - SrcAlpha = 2, - OneMinusSrcAlpha = 3, - Fix = 10, - } - - #[repr(u32)] - pub enum BlendDst { - DstColor = 0, - OneMinusDstColor = 1, - DstAlpha = 4, - OneMinusDstAlpha = 5, - Fix = 10, - } - - #[repr(u32)] - pub enum StencilOperation { - Keep = 0, - Zero = 1, - Replace = 2, - Invert = 3, - Incr = 4, - Decr = 5, - } - - #[repr(u32)] - pub enum LightMode { - SingleColor = 0, - SeparateSpecularColor = 1, - } - - #[repr(u32)] - pub enum LightType { - Directional = 0, - Pointlight = 1, - Spotlight = 2, - } - - #[repr(u32)] - pub enum GuContextType { - Direct = 0, - Call = 1, - Send = 2, - } - - #[repr(u32)] - pub enum GuQueueMode { - Tail = 0, - Head = 1, - } - - #[repr(u32)] - pub enum GuSyncMode { - Finish = 0, - Signal = 1, - Done = 2, - List = 3, - Send = 4, - } - - #[repr(u32)] - pub enum GuSyncBehavior { - Wait = 0, - NoWait = 1, - } - - #[repr(u32)] - pub enum GuCallbackId { - Signal = 1, - Finish = 4, - } - - #[repr(u32)] - pub enum SignalBehavior { - Suspend = 1, - Continue = 2, - } - - #[repr(u32)] - pub enum ClutPixelFormat { - Psm5650 = 0, - Psm5551 = 1, - Psm4444 = 2, - Psm8888 = 3, - } - - #[repr(C)] - pub enum KeyType { - Directory = 1, - Integer = 2, - String = 3, - Bytes = 4, - } - - #[repr(u32)] - pub enum UtilityMsgDialogMode { - Error, - Text, - } - - #[repr(u32)] - pub enum UtilityMsgDialogPressed { - Unknown1, - Yes, - No, - Back, - } - - #[repr(u32)] - pub enum UtilityDialogButtonAccept { - Circle, - Cross, - } - - #[repr(u32)] - pub enum SceUtilityOskInputLanguage { - Default, - Japanese, - English, - French, - Spanish, - German, - Italian, - Dutch, - Portugese, - Russian, - Korean, - } - - #[repr(u32)] - pub enum SceUtilityOskInputType { - All, - LatinDigit, - LatinSymbol, - LatinLowercase = 4, - LatinUppercase = 8, - JapaneseDigit = 0x100, - JapaneseSymbol = 0x200, - JapaneseLowercase = 0x400, - JapaneseUppercase = 0x800, - JapaneseHiragana = 0x1000, - JapaneseHalfWidthKatakana = 0x2000, - JapaneseKatakana = 0x4000, - JapaneseKanji = 0x8000, - RussianLowercase = 0x10000, - RussianUppercase = 0x20000, - Korean = 0x40000, - Url = 0x80000, - } - - #[repr(u32)] - pub enum SceUtilityOskState { - None, - Initializing, - Initialized, - Visible, - Quit, - Finished, - } - - #[repr(u32)] - pub enum SceUtilityOskResult { - Unchanged, - Cancelled, - Changed, - } - - #[repr(u32)] - pub enum SystemParamLanguage { - Japanese, - English, - French, - Spanish, - German, - Italian, - Dutch, - Portugese, - Russian, - Korean, - ChineseTraditional, - ChineseSimplified, - } - - #[repr(u32)] - pub enum SystemParamId { - StringNickname = 1, - AdhocChannel, - WlanPowerSave, - DateFormat, - TimeFormat, - Timezone, - DaylightSavings, - Language, - Unknown, - } - - #[repr(u32)] - pub enum SystemParamAdhocChannel { - ChannelAutomatic = 0, - Channel1 = 1, - Channel6 = 6, - Channel11 = 11, - } - - #[repr(u32)] - pub enum SystemParamWlanPowerSaveState { - Off, - On, - } - - #[repr(u32)] - pub enum SystemParamDateFormat { - YYYYMMDD, - MMDDYYYY, - DDMMYYYY, - } - - #[repr(u32)] - pub enum SystemParamTimeFormat { - Hour24, - Hour12, - } - - #[repr(u32)] - pub enum SystemParamDaylightSavings { - Std, - Dst, - } - - #[repr(u32)] - pub enum AvModule { - AvCodec, - SasCore, - Atrac3Plus, - MpegBase, - Mp3, - Vaudio, - Aac, - G729, - } - - #[repr(u32)] - pub enum Module { - NetCommon = 0x100, - NetAdhoc, - NetInet, - NetParseUri, - NetHttp, - NetSsl, - - UsbPspCm = 0x200, - UsbMic, - UsbCam, - UsbGps, - - AvCodec = 0x300, - AvSascore, - AvAtrac3Plus, - AvMpegBase, - AvMp3, - AvVaudio, - AvAac, - AvG729, - - NpCommon = 0x400, - NpService, - NpMatching2, - NpDrm = 0x500, - - Irda = 0x600, - } - - #[repr(u32)] - pub enum NetModule { - NetCommon = 1, - NetAdhoc, - NetInet, - NetParseUri, - NetHttp, - NetSsl, - } - - #[repr(u32)] - pub enum UsbModule { - UsbPspCm = 1, - UsbAcc, - UsbMic, - UsbCam, - UsbGps, - } - - #[repr(u32)] - pub enum NetParam { - Name, - Ssid, - Secure, - WepKey, - IsStaticIp, - Ip, - NetMask, - Route, - ManualDns, - PrimaryDns, - SecondaryDns, - ProxyUser, - ProxyPass, - UseProxy, - ProxyServer, - ProxyPort, - Unknown1, - Unknown2, - } - - #[repr(u32)] - pub enum UtilityNetconfAction { - ConnectAP, - DisplayStatus, - ConnectAdhoc, - } - - #[repr(u32)] - pub enum UtilitySavedataMode { - AutoLoad, - AutoSave, - Load, - Save, - ListLoad, - ListSave, - ListDelete, - Delete, - } - - #[repr(u32)] - pub enum UtilitySavedataFocus { - Unknown1, - FirstList, - LastList, - Latest, - Oldest, - Unknown2, - Unknown3, - FirstEmpty, - LastEmpty, - } - - #[repr(u32)] - pub enum UtilityGameSharingMode { - Single = 1, - Multiple, - } - - #[repr(u32)] - pub enum UtilityGameSharingDataType { - File = 1, - Memory, - } - - #[repr(u32)] - pub enum UtilityHtmlViewerInterfaceMode { - Full, - Limited, - None, - } - - #[repr(u32)] - pub enum UtilityHtmlViewerCookieMode { - Disabled = 0, - Enabled, - Confirm, - Default, - } - - #[repr(u32)] - pub enum UtilityHtmlViewerTextSize { - Large, - Normal, - Small, - } - - #[repr(u32)] - pub enum UtilityHtmlViewerDisplayMode { - Normal, - Fit, - SmartFit, - } - - #[repr(u32)] - pub enum UtilityHtmlViewerConnectMode { - Last, - ManualOnce, - ManualAll, - } - - #[repr(u32)] - pub enum UtilityHtmlViewerDisconnectMode { - Enable, - Disable, - Confirm, - } - - #[repr(u32)] - pub enum ScePspnetAdhocPtpState { - Closed, - Listen, - SynSent, - SynReceived, - Established, - } - - #[repr(u32)] - pub enum AdhocMatchingMode { - Host = 1, - Client, - Ptp, - } - - #[repr(u32)] - pub enum ApctlState { - Disconnected, - Scanning, - Joining, - GettingIp, - GotIp, - EapAuth, - KeyExchange, - } - - #[repr(u32)] - pub enum ApctlEvent { - ConnectRequest, - ScanRequest, - ScanComplete, - Established, - GetIp, - DisconnectRequest, - Error, - Info, - EapAuth, - KeyExchange, - Reconnect, - } - - #[repr(u32)] - pub enum ApctlInfo { - ProfileName, - Bssid, - Ssid, - SsidLength, - SecurityType, - Strength, - Channel, - PowerSave, - Ip, - SubnetMask, - Gateway, - PrimaryDns, - SecondaryDns, - UseProxy, - ProxyUrl, - ProxyPort, - EapType, - StartBrowser, - Wifisp, - } - - #[repr(u32)] - pub enum ApctlInfoSecurityType { - None, - Wep, - Wpa, - } - - #[repr(u32)] - pub enum HttpMethod { - Get, - Post, - Head, - } - - #[repr(u32)] - pub enum HttpAuthType { - Basic, - Digest, - } -} - -s_paren! { - #[repr(transparent)] - pub struct SceUid(pub i32); - - #[repr(transparent)] - pub struct SceMpeg(*mut *mut c_void); - - #[repr(transparent)] - pub struct SceMpegStream(*mut c_void); - - #[repr(transparent)] - pub struct Mp3Handle(pub i32); - - #[repr(transparent)] - pub struct RegHandle(u32); -} - -s! { - pub struct sockaddr { - pub sa_len: u8, - pub sa_family: u8, - pub sa_data: [u8;14], - } - - pub struct in_addr { - pub s_addr: u32, - } - - pub struct AudioInputParams { - pub unknown1: i32, - pub gain: i32, - pub unknown2: i32, - pub unknown3: i32, - pub unknown4: i32, - pub unknown5: i32, - } - - pub struct Atrac3BufferInfo { - pub puc_write_position_first_buf: *mut u8, - pub ui_writable_byte_first_buf: u32, - pub ui_min_write_byte_first_buf: u32, - pub ui_read_position_first_buf: u32, - pub puc_write_position_second_buf: *mut u8, - pub ui_writable_byte_second_buf: u32, - pub ui_min_write_byte_second_buf: u32, - pub ui_read_position_second_buf: u32, - } - - pub struct SceCtrlData { - pub timestamp: u32, - pub buttons: i32, - pub lx: u8, - pub ly: u8, - pub rsrv: [u8; 6], - } - - pub struct SceCtrlLatch { - pub ui_make: u32, - pub ui_break: u32, - pub ui_press: u32, - pub ui_release: u32, - } - - pub struct GeStack { - pub stack: [u32; 8], - } - - pub struct GeCallbackData { - pub signal_func: ::Option, - pub signal_arg: *mut c_void, - pub finish_func: ::Option, - pub finish_arg: *mut c_void, - } - - pub struct GeListArgs { - pub size: u32, - pub context: *mut GeContext, - pub num_stacks: u32, - pub stacks: *mut GeStack, - } - - pub struct GeBreakParam { - pub buf: [u32; 4], - } - - pub struct SceKernelLoadExecParam { - pub size: usize, - pub args: usize, - pub argp: *mut c_void, - pub key: *const u8, - } - - pub struct timeval { - pub tv_sec: i32, - pub tv_usec: i32, - } - - pub struct timezone { - pub tz_minutes_west: i32, - pub tz_dst_time: i32, - } - - pub struct IntrHandlerOptionParam { - size: i32, - entry: u32, - common: u32, - gp: u32, - intr_code: u16, - sub_count: u16, - intr_level: u16, - enabled: u16, - calls: u32, - field_1c: u32, - total_clock_lo: u32, - total_clock_hi: u32, - min_clock_lo: u32, - min_clock_hi: u32, - max_clock_lo: u32, - max_clock_hi: u32, - } - - pub struct SceKernelLMOption { - pub size: usize, - pub m_pid_text: SceUid, - pub m_pid_data: SceUid, - pub flags: u32, - pub position: u8, - pub access: u8, - pub c_reserved: [u8; 2usize], - } - - pub struct SceKernelSMOption { - pub size: usize, - pub m_pid_stack: SceUid, - pub stack_size: usize, - pub priority: i32, - pub attribute: u32, - } - - pub struct SceKernelModuleInfo { - pub size: usize, - pub n_segment: u8, - pub reserved: [u8; 3usize], - pub segment_addr: [i32; 4usize], - pub segment_size: [i32; 4usize], - pub entry_addr: u32, - pub gp_value: u32, - pub text_addr: u32, - pub text_size: u32, - pub data_size: u32, - pub bss_size: u32, - pub attribute: u16, - pub version: [u8; 2usize], - pub name: [u8; 28usize], - } - - pub struct DebugProfilerRegs { - pub enable: u32, - pub systemck: u32, - pub cpuck: u32, - pub internal: u32, - pub memory: u32, - pub copz: u32, - pub vfpu: u32, - pub sleep: u32, - pub bus_access: u32, - pub uncached_load: u32, - pub uncached_store: u32, - pub cached_load: u32, - pub cached_store: u32, - pub i_miss: u32, - pub d_miss: u32, - pub d_writeback: u32, - pub cop0_inst: u32, - pub fpu_inst: u32, - pub vfpu_inst: u32, - pub local_bus: u32, - } - - pub struct SceKernelSysClock { - pub low: u32, - pub hi: u32, - } - - pub struct SceKernelThreadOptParam { - pub size: usize, - pub stack_mpid: SceUid, - } - - pub struct SceKernelThreadInfo { - pub size: usize, - pub name: [u8; 32], - pub attr: u32, - pub status: i32, - pub entry: SceKernelThreadEntry, - pub stack: *mut c_void, - pub stack_size: i32, - pub gp_reg: *mut c_void, - pub init_priority: i32, - pub current_priority: i32, - pub wait_type: i32, - pub wait_id: SceUid, - pub wakeup_count: i32, - pub exit_status: i32, - pub run_clocks: SceKernelSysClock, - pub intr_preempt_count: u32, - pub thread_preempt_count: u32, - pub release_count: u32, - } - - pub struct SceKernelThreadRunStatus { - pub size: usize, - pub status: i32, - pub current_priority: i32, - pub wait_type: i32, - pub wait_id: i32, - pub wakeup_count: i32, - pub run_clocks: SceKernelSysClock, - pub intr_preempt_count: u32, - pub thread_preempt_count: u32, - pub release_count: u32, - } - - pub struct SceKernelSemaOptParam { - pub size: usize, - } - - pub struct SceKernelSemaInfo { - pub size: usize, - pub name: [u8; 32], - pub attr: u32, - pub init_count: i32, - pub current_count: i32, - pub max_count: i32, - pub num_wait_threads: i32, - } - - pub struct SceKernelEventFlagInfo { - pub size: usize, - pub name: [u8; 32], - pub attr: u32, - pub init_pattern: u32, - pub current_pattern: u32, - pub num_wait_threads: i32, - } - - pub struct SceKernelEventFlagOptParam { - pub size: usize, - } - - pub struct SceKernelMbxOptParam { - pub size: usize, - } - - pub struct SceKernelMbxInfo { - pub size: usize, - pub name: [u8; 32usize], - pub attr: u32, - pub num_wait_threads: i32, - pub num_messages: i32, - pub first_message: *mut c_void, - } - - pub struct SceKernelVTimerInfo { - pub size: usize, - pub name: [u8; 32], - pub active: i32, - pub base: SceKernelSysClock, - pub current: SceKernelSysClock, - pub schedule: SceKernelSysClock, - pub handler: SceKernelVTimerHandler, - pub common: *mut c_void, - } - - pub struct SceKernelThreadEventHandlerInfo { - pub size: usize, - pub name: [u8; 32], - pub thread_id: SceUid, - pub mask: i32, - pub handler: SceKernelThreadEventHandler, - pub common: *mut c_void, - } - - pub struct SceKernelAlarmInfo { - pub size: usize, - pub schedule: SceKernelSysClock, - pub handler: SceKernelAlarmHandler, - pub common: *mut c_void, - } - - pub struct SceKernelSystemStatus { - pub size: usize, - pub status: u32, - pub idle_clocks: SceKernelSysClock, - pub comes_out_of_idle_count: u32, - pub thread_switch_count: u32, - pub vfpu_switch_count: u32, - } - - pub struct SceKernelMppInfo { - pub size: usize, - pub name: [u8; 32], - pub attr: u32, - pub buf_size: i32, - pub free_size: i32, - pub num_send_wait_threads: i32, - pub num_receive_wait_threads: i32, - } - - pub struct SceKernelVplOptParam { - pub size: usize, - } - - pub struct SceKernelVplInfo { - pub size: usize, - pub name: [u8; 32], - pub attr: u32, - pub pool_size: i32, - pub free_size: i32, - pub num_wait_threads: i32, - } - - pub struct SceKernelFplOptParam { - pub size: usize, - } - - pub struct SceKernelFplInfo { - pub size: usize, - pub name: [u8; 32usize], - pub attr: u32, - pub block_size: i32, - pub num_blocks: i32, - pub free_blocks: i32, - pub num_wait_threads: i32, - } - - pub struct SceKernelVTimerOptParam { - pub size: usize, - } - - pub struct SceKernelCallbackInfo { - pub size: usize, - pub name: [u8; 32usize], - pub thread_id: SceUid, - pub callback: SceKernelCallbackFunction, - pub common: *mut c_void, - pub notify_count: i32, - pub notify_arg: i32, - } - - pub struct UsbCamSetupStillParam { - pub size: i32, - pub resolution: UsbCamResolution, - pub jpeg_size: i32, - pub reverse_flags: i32, - pub delay: UsbCamDelay, - pub comp_level: i32, - } - - pub struct UsbCamSetupStillExParam { - pub size: i32, - pub unk: u32, - pub resolution: UsbCamResolutionEx, - pub jpeg_size: i32, - pub comp_level: i32, - pub unk2: u32, - pub unk3: u32, - pub flip: i32, - pub mirror: i32, - pub delay: UsbCamDelay, - pub unk4: [u32; 5usize], - } - - pub struct UsbCamSetupVideoParam { - pub size: i32, - pub resolution: UsbCamResolution, - pub framerate: UsbCamFrameRate, - pub white_balance: UsbCamWb, - pub saturation: i32, - pub brightness: i32, - pub contrast: i32, - pub sharpness: i32, - pub effect_mode: UsbCamEffectMode, - pub frame_size: i32, - pub unk: u32, - pub evl_evel: UsbCamEvLevel, - } - - pub struct UsbCamSetupVideoExParam { - pub size: i32, - pub unk: u32, - pub resolution: UsbCamResolutionEx, - pub framerate: UsbCamFrameRate, - pub unk2: u32, - pub unk3: u32, - pub white_balance: UsbCamWb, - pub saturation: i32, - pub brightness: i32, - pub contrast: i32, - pub sharpness: i32, - pub unk4: u32, - pub unk5: u32, - pub unk6: [u32; 3usize], - pub effect_mode: UsbCamEffectMode, - pub unk7: u32, - pub unk8: u32, - pub unk9: u32, - pub unk10: u32, - pub unk11: u32, - pub frame_size: i32, - pub unk12: u32, - pub ev_level: UsbCamEvLevel, - } - - pub struct ScePspDateTime { - pub year: u16, - pub month: u16, - pub day: u16, - pub hour: u16, - pub minutes: u16, - pub seconds: u16, - pub microseconds: u32, - } - - pub struct SceIoStat { - pub st_mode: i32, - pub st_attr: i32, - pub st_size: i64, - pub st_ctime: ScePspDateTime, - pub st_atime: ScePspDateTime, - pub st_mtime: ScePspDateTime, - pub st_private: [u32; 6usize], - } - - pub struct UmdInfo { - pub size: u32, - pub type_: UmdType, - } - - pub struct SceMpegRingbuffer { - pub packets: i32, - pub unk0: u32, - pub unk1: u32, - pub unk2: u32, - pub unk3: u32, - pub data: *mut c_void, - pub callback: SceMpegRingbufferCb, - pub cb_param: *mut c_void, - pub unk4: u32, - pub unk5: u32, - pub sce_mpeg: *mut c_void, - } - - pub struct SceMpegAu { - pub pts_msb: u32, - pub pts: u32, - pub dts_msb: u32, - pub dts: u32, - pub es_buffer: u32, - pub au_size: u32, - } - - pub struct SceMpegAvcMode { - pub unk0: i32, - pub pixel_format: super::DisplayPixelFormat, - } - - #[repr(align(64))] - pub struct SceMpegLLI { - pub src: *mut c_void, - pub dst: *mut c_void, - pub next: *mut c_void, - pub size: i32, - } - - #[repr(align(64))] - pub struct SceMpegYCrCbBuffer { - pub frame_buffer_height16: i32, - pub frame_buffer_width16: i32, - pub unknown: i32, - pub unknown2: i32, - pub y_buffer: *mut c_void, - pub y_buffer2: *mut c_void, - pub cr_buffer: *mut c_void, - pub cb_buffer: *mut c_void, - pub cr_buffer2: *mut c_void, - pub cb_buffer2: *mut c_void, - - pub frame_height: i32, - pub frame_width: i32, - pub frame_buffer_width: i32, - pub unknown3: [i32; 11usize], - } - - pub struct ScePspSRect { - pub x: i16, - pub y: i16, - pub w: i16, - pub h: i16, - } - - pub struct ScePspIRect { - pub x: i32, - pub y: i32, - pub w: i32, - pub h: i32, - } - - pub struct ScePspL64Rect { - pub x: u64, - pub y: u64, - pub w: u64, - pub h: u64, - } - - pub struct ScePspSVector2 { - pub x: i16, - pub y: i16, - } - - pub struct ScePspIVector2 { - pub x: i32, - pub y: i32, - } - - pub struct ScePspL64Vector2 { - pub x: u64, - pub y: u64, - } - - pub struct ScePspSVector3 { - pub x: i16, - pub y: i16, - pub z: i16, - } - - pub struct ScePspIVector3 { - pub x: i32, - pub y: i32, - pub z: i32, - } - - pub struct ScePspL64Vector3 { - pub x: u64, - pub y: u64, - pub z: u64, - } - - pub struct ScePspSVector4 { - pub x: i16, - pub y: i16, - pub z: i16, - pub w: i16, - } - - pub struct ScePspIVector4 { - pub x: i32, - pub y: i32, - pub z: i32, - pub w: i32, - } - - pub struct ScePspL64Vector4 { - pub x: u64, - pub y: u64, - pub z: u64, - pub w: u64, - } - - pub struct ScePspIMatrix2 { - pub x: ScePspIVector2, - pub y: ScePspIVector2, - } - - pub struct ScePspIMatrix3 { - pub x: ScePspIVector3, - pub y: ScePspIVector3, - pub z: ScePspIVector3, - } - - #[repr(align(16))] - pub struct ScePspIMatrix4 { - pub x: ScePspIVector4, - pub y: ScePspIVector4, - pub z: ScePspIVector4, - pub w: ScePspIVector4, - } - - pub struct ScePspIMatrix4Unaligned { - pub x: ScePspIVector4, - pub y: ScePspIVector4, - pub z: ScePspIVector4, - pub w: ScePspIVector4, - } - - pub struct SceMp3InitArg { - pub mp3_stream_start: u32, - pub unk1: u32, - pub mp3_stream_end: u32, - pub unk2: u32, - pub mp3_buf: *mut c_void, - pub mp3_buf_size: i32, - pub pcm_buf: *mut c_void, - pub pcm_buf_size: i32, - } - - pub struct OpenPSID { - pub data: [u8; 16usize], - } - - pub struct UtilityDialogCommon { - pub size: u32, - pub language: SystemParamLanguage, - pub button_accept: UtilityDialogButtonAccept, - pub graphics_thread: i32, - pub access_thread: i32, - pub font_thread: i32, - pub sound_thread: i32, - pub result: i32, - pub reserved: [i32; 4usize], - } - - pub struct UtilityNetconfAdhoc { - pub name: [u8; 8usize], - pub timeout: u32, - } - - pub struct UtilityNetconfData { - pub base: UtilityDialogCommon, - pub action: UtilityNetconfAction, - pub adhocparam: *mut UtilityNetconfAdhoc, - pub hotspot: i32, - pub hotspot_connected: i32, - pub wifisp: i32, - } - - pub struct UtilitySavedataFileData { - pub buf: *mut c_void, - pub buf_size: usize, - pub size: usize, - pub unknown: i32, - } - - pub struct UtilitySavedataListSaveNewData { - pub icon0: UtilitySavedataFileData, - pub title: *mut u8, - } - - pub struct UtilityGameSharingParams { - pub base: UtilityDialogCommon, - pub unknown1: i32, - pub unknown2: i32, - pub name: [u8; 8usize], - pub unknown3: i32, - pub unknown4: i32, - pub unknown5: i32, - pub result: i32, - pub filepath: *mut u8, - pub mode: UtilityGameSharingMode, - pub datatype: UtilityGameSharingDataType, - pub data: *mut c_void, - pub datasize: u32, - } - - pub struct UtilityHtmlViewerParam { - pub base: UtilityDialogCommon, - pub memaddr: *mut c_void, - pub memsize: u32, - pub unknown1: i32, - pub unknown2: i32, - pub initialurl: *mut u8, - pub numtabs: u32, - pub interfacemode: UtilityHtmlViewerInterfaceMode, - pub options: i32, - pub dldirname: *mut u8, - pub dlfilename: *mut u8, - pub uldirname: *mut u8, - pub ulfilename: *mut u8, - pub cookiemode: UtilityHtmlViewerCookieMode, - pub unknown3: u32, - pub homeurl: *mut u8, - pub textsize: UtilityHtmlViewerTextSize, - pub displaymode: UtilityHtmlViewerDisplayMode, - pub connectmode: UtilityHtmlViewerConnectMode, - pub disconnectmode: UtilityHtmlViewerDisconnectMode, - pub memused: u32, - pub unknown4: [i32; 10usize], - } - - pub struct SceUtilityOskData { - pub unk_00: i32, - pub unk_04: i32, - pub language: SceUtilityOskInputLanguage, - pub unk_12: i32, - pub inputtype: SceUtilityOskInputType, - pub lines: i32, - pub unk_24: i32, - pub desc: *mut u16, - pub intext: *mut u16, - pub outtextlength: i32, - pub outtext: *mut u16, - pub result: SceUtilityOskResult, - pub outtextlimit: i32, - } - - pub struct SceUtilityOskParams { - pub base: UtilityDialogCommon, - pub datacount: i32, - pub data: *mut SceUtilityOskData, - pub state: SceUtilityOskState, - pub unk_60: i32, - } - - pub struct SceNetMallocStat { - pub pool: i32, - pub maximum: i32, - pub free: i32, - } - - pub struct SceNetAdhocctlAdhocId { - pub unknown: i32, - pub adhoc_id: [u8; 9usize], - pub unk: [u8; 3usize], - } - - pub struct SceNetAdhocctlScanInfo { - pub next: *mut SceNetAdhocctlScanInfo, - pub channel: i32, - pub name: [u8; 8usize], - pub bssid: [u8; 6usize], - pub unknown: [u8; 2usize], - pub unknown2: i32, - } - - pub struct SceNetAdhocctlGameModeInfo { - pub count: i32, - pub macs: [[u8; 6usize]; 16usize], - } - - pub struct SceNetAdhocPtpStat { - pub next: *mut SceNetAdhocPtpStat, - pub ptp_id: i32, - pub mac: [u8; 6usize], - pub peermac: [u8; 6usize], - pub port: u16, - pub peerport: u16, - pub sent_data: u32, - pub rcvd_data: u32, - pub state: ScePspnetAdhocPtpState, - } - - pub struct SceNetAdhocPdpStat { - pub next: *mut SceNetAdhocPdpStat, - pub pdp_id: i32, - pub mac: [u8; 6usize], - pub port: u16, - pub rcvd_data: u32, - } - - pub struct AdhocPoolStat { - pub size: i32, - pub maxsize: i32, - pub freesize: i32, - } -} - -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - pub struct GeContext { - pub context: [u32; 512], - } - - #[allow(missing_debug_implementations)] - pub struct SceKernelUtilsSha1Context { - pub h: [u32; 5usize], - pub us_remains: u16, - pub us_computed: u16, - pub ull_total_len: u64, - pub buf: [u8; 64usize], - } - - #[allow(missing_debug_implementations)] - pub struct SceKernelUtilsMt19937Context { - pub count: u32, - pub state: [u32; 624usize], - } - - #[allow(missing_debug_implementations)] - pub struct SceKernelUtilsMd5Context { - pub h: [u32; 4usize], - pub pad: u32, - pub us_remains: u16, - pub us_computed: u16, - pub ull_total_len: u64, - pub buf: [u8; 64usize], - } - - #[allow(missing_debug_implementations)] - pub struct SceIoDirent { - pub d_stat: SceIoStat, - pub d_name: [u8; 256usize], - pub d_private: *mut c_void, - pub dummy: i32, - } - - #[cfg_attr(feature = "extra_traits", derive(Debug))] - pub struct ScePspFRect { - pub x: f32, - pub y: f32, - pub w: f32, - pub h: f32, - } - - #[repr(align(16))] - #[cfg_attr(feature = "extra_traits", derive(Debug))] - pub struct ScePspFVector3 { - pub x: f32, - pub y: f32, - pub z: f32, - } - - #[repr(align(16))] - #[cfg_attr(feature = "extra_traits", derive(Debug))] - pub struct ScePspFVector4 { - pub x: f32, - pub y: f32, - pub z: f32, - pub w: f32, - } - - #[cfg_attr(feature = "extra_traits", derive(Debug))] - pub struct ScePspFVector4Unaligned { - pub x: f32, - pub y: f32, - pub z: f32, - pub w: f32, - } - - #[cfg_attr(feature = "extra_traits", derive(Debug))] - pub struct ScePspFVector2 { - pub x: f32, - pub y: f32, - } - - #[cfg_attr(feature = "extra_traits", derive(Debug))] - pub struct ScePspFMatrix2 { - pub x: ScePspFVector2, - pub y: ScePspFVector2, - } - - #[cfg_attr(feature = "extra_traits", derive(Debug))] - pub struct ScePspFMatrix3 { - pub x: ScePspFVector3, - pub y: ScePspFVector3, - pub z: ScePspFVector3, - } - - #[cfg_attr(feature = "extra_traits", derive(Debug))] - #[repr(align(16))] - pub struct ScePspFMatrix4 { - pub x: ScePspFVector4, - pub y: ScePspFVector4, - pub z: ScePspFVector4, - pub w: ScePspFVector4, - } - - #[allow(missing_debug_implementations)] - pub struct ScePspFMatrix4Unaligned { - pub x: ScePspFVector4, - pub y: ScePspFVector4, - pub z: ScePspFVector4, - pub w: ScePspFVector4, - } - - #[allow(missing_debug_implementations)] - pub union ScePspVector3 { - pub fv: ScePspFVector3, - pub iv: ScePspIVector3, - pub f: [f32; 3usize], - pub i: [i32; 3usize], - } - - #[allow(missing_debug_implementations)] - pub union ScePspVector4 { - pub fv: ScePspFVector4, - pub iv: ScePspIVector4, - pub qw: u128, - pub f: [f32; 4usize], - pub i: [i32; 4usize], - } - - #[allow(missing_debug_implementations)] - pub union ScePspMatrix2 { - pub fm: ScePspFMatrix2, - pub im: ScePspIMatrix2, - pub fv: [ScePspFVector2; 2usize], - pub iv: [ScePspIVector2; 2usize], - pub v: [ScePspVector2; 2usize], - pub f: [[f32; 2usize]; 2usize], - pub i: [[i32; 2usize]; 2usize], - } - - #[allow(missing_debug_implementations)] - pub union ScePspMatrix3 { - pub fm: ScePspFMatrix3, - pub im: ScePspIMatrix3, - pub fv: [ScePspFVector3; 3usize], - pub iv: [ScePspIVector3; 3usize], - pub v: [ScePspVector3; 3usize], - pub f: [[f32; 3usize]; 3usize], - pub i: [[i32; 3usize]; 3usize], - } - - #[allow(missing_debug_implementations)] - pub union ScePspVector2 { - pub fv: ScePspFVector2, - pub iv: ScePspIVector2, - pub f: [f32; 2usize], - pub i: [i32; 2usize], - } - - #[allow(missing_debug_implementations)] - pub union ScePspMatrix4 { - pub fm: ScePspFMatrix4, - pub im: ScePspIMatrix4, - pub fv: [ScePspFVector4; 4usize], - pub iv: [ScePspIVector4; 4usize], - pub v: [ScePspVector4; 4usize], - pub f: [[f32; 4usize]; 4usize], - pub i: [[i32; 4usize]; 4usize], - } - - #[allow(missing_debug_implementations)] - pub struct Key { - pub key_type: KeyType, - pub name: [u8; 256usize], - pub name_len: u32, - pub unk2: u32, - pub unk3: u32, - } - - #[allow(missing_debug_implementations)] - pub struct UtilityMsgDialogParams { - pub base: UtilityDialogCommon, - pub unknown: i32, - pub mode: UtilityMsgDialogMode, - pub error_value: u32, - pub message: [u8; 512usize], - pub options: i32, - pub button_pressed: UtilityMsgDialogPressed, - } - - #[allow(missing_debug_implementations)] - pub union UtilityNetData { - pub as_uint: u32, - pub as_string: [u8; 128usize], - } - - #[allow(missing_debug_implementations)] - pub struct UtilitySavedataSFOParam { - pub title: [u8; 128usize], - pub savedata_title: [u8; 128usize], - pub detail: [u8; 1024usize], - pub parental_level: u8, - pub unknown: [u8; 3usize], - } - - #[allow(missing_debug_implementations)] - pub struct SceUtilitySavedataParam { - pub base: UtilityDialogCommon, - pub mode: UtilitySavedataMode, - pub unknown1: i32, - pub overwrite: i32, - pub game_name: [u8; 13usize], - pub reserved: [u8; 3usize], - pub save_name: [u8; 20usize], - pub save_name_list: *mut [u8; 20usize], - pub file_name: [u8; 13usize], - pub reserved1: [u8; 3usize], - pub data_buf: *mut c_void, - pub data_buf_size: usize, - pub data_size: usize, - pub sfo_param: UtilitySavedataSFOParam, - pub icon0_file_data: UtilitySavedataFileData, - pub icon1_file_data: UtilitySavedataFileData, - pub pic1_file_data: UtilitySavedataFileData, - pub snd0_file_data: UtilitySavedataFileData, - pub new_data: *mut UtilitySavedataListSaveNewData, - pub focus: UtilitySavedataFocus, - pub unknown2: [i32; 4usize], - pub key: [u8; 16], - pub unknown3: [u8; 20], - } - - #[allow(missing_debug_implementations)] - pub struct SceNetAdhocctlPeerInfo { - pub next: *mut SceNetAdhocctlPeerInfo, - pub nickname: [u8; 128usize], - pub mac: [u8; 6usize], - pub unknown: [u8; 6usize], - pub timestamp: u32, - } - - #[allow(missing_debug_implementations)] - pub struct SceNetAdhocctlParams { - pub channel: i32, - pub name: [u8; 8usize], - pub bssid: [u8; 6usize], - pub nickname: [u8; 128usize], - } - - #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] - pub union SceNetApctlInfo { - pub name: [u8; 64usize], - pub bssid: [u8; 6usize], - pub ssid: [u8; 32usize], - pub ssid_length: u32, - pub security_type: u32, - pub strength: u8, - pub channel: u8, - pub power_save: u8, - pub ip: [u8; 16usize], - pub sub_net_mask: [u8; 16usize], - pub gateway: [u8; 16usize], - pub primary_dns: [u8; 16usize], - pub secondary_dns: [u8; 16usize], - pub use_proxy: u32, - pub proxy_url: [u8; 128usize], - pub proxy_port: u16, - pub eap_type: u32, - pub start_browser: u32, - pub wifisp: u32, - } -} - -pub const INT_MIN: c_int = -2147483648; -pub const INT_MAX: c_int = 2147483647; - -pub const AUDIO_VOLUME_MAX: u32 = 0x8000; -pub const AUDIO_CHANNEL_MAX: u32 = 8; -pub const AUDIO_NEXT_CHANNEL: i32 = -1; -pub const AUDIO_SAMPLE_MIN: u32 = 64; -pub const AUDIO_SAMPLE_MAX: u32 = 65472; - -pub const PSP_CTRL_SELECT: i32 = 0x000001; -pub const PSP_CTRL_START: i32 = 0x000008; -pub const PSP_CTRL_UP: i32 = 0x000010; -pub const PSP_CTRL_RIGHT: i32 = 0x000020; -pub const PSP_CTRL_DOWN: i32 = 0x000040; -pub const PSP_CTRL_LEFT: i32 = 0x000080; -pub const PSP_CTRL_LTRIGGER: i32 = 0x000100; -pub const PSP_CTRL_RTRIGGER: i32 = 0x000200; -pub const PSP_CTRL_TRIANGLE: i32 = 0x001000; -pub const PSP_CTRL_CIRCLE: i32 = 0x002000; -pub const PSP_CTRL_CROSS: i32 = 0x004000; -pub const PSP_CTRL_SQUARE: i32 = 0x008000; -pub const PSP_CTRL_HOME: i32 = 0x010000; -pub const PSP_CTRL_HOLD: i32 = 0x020000; -pub const PSP_CTRL_NOTE: i32 = 0x800000; -pub const PSP_CTRL_SCREEN: i32 = 0x400000; -pub const PSP_CTRL_VOLUP: i32 = 0x100000; -pub const PSP_CTRL_VOLDOWN: i32 = 0x200000; -pub const PSP_CTRL_WLAN_UP: i32 = 0x040000; -pub const PSP_CTRL_REMOTE: i32 = 0x080000; -pub const PSP_CTRL_DISC: i32 = 0x1000000; -pub const PSP_CTRL_MS: i32 = 0x2000000; - -pub const USB_CAM_PID: i32 = 0x282; -pub const USB_BUS_DRIVER_NAME: &str = "USBBusDriver"; -pub const USB_CAM_DRIVER_NAME: &str = "USBCamDriver"; -pub const USB_CAM_MIC_DRIVER_NAME: &str = "USBCamMicDriver"; -pub const USB_STOR_DRIVER_NAME: &str = "USBStor_Driver"; - -pub const ACTIVATED: i32 = 0x200; -pub const CONNECTED: i32 = 0x020; -pub const ESTABLISHED: i32 = 0x002; - -pub const USB_CAM_FLIP: i32 = 1; -pub const USB_CAM_MIRROR: i32 = 0x100; - -pub const THREAD_ATTR_VFPU: i32 = 0x00004000; -pub const THREAD_ATTR_USER: i32 = 0x80000000; -pub const THREAD_ATTR_USBWLAN: i32 = 0xa0000000; -pub const THREAD_ATTR_VSH: i32 = 0xc0000000; -pub const THREAD_ATTR_SCRATCH_SRAM: i32 = 0x00008000; -pub const THREAD_ATTR_NO_FILLSTACK: i32 = 0x00100000; -pub const THREAD_ATTR_CLEAR_STACK: i32 = 0x00200000; - -pub const EVENT_WAIT_MULTIPLE: i32 = 0x200; - -pub const EVENT_WAIT_AND: i32 = 0; -pub const EVENT_WAIT_OR: i32 = 1; -pub const EVENT_WAIT_CLEAR: i32 = 0x20; - -pub const POWER_INFO_POWER_SWITCH: i32 = 0x80000000; -pub const POWER_INFO_HOLD_SWITCH: i32 = 0x40000000; -pub const POWER_INFO_STANDBY: i32 = 0x00080000; -pub const POWER_INFO_RESUME_COMPLETE: i32 = 0x00040000; -pub const POWER_INFO_RESUMING: i32 = 0x00020000; -pub const POWER_INFO_SUSPENDING: i32 = 0x00010000; -pub const POWER_INFO_AC_POWER: i32 = 0x00001000; -pub const POWER_INFO_BATTERY_LOW: i32 = 0x00000100; -pub const POWER_INFO_BATTERY_EXIST: i32 = 0x00000080; -pub const POWER_INFO_BATTERY_POWER: i32 = 0x0000007; - -pub const FIO_S_IFLNK: i32 = 0x4000; -pub const FIO_S_IFDIR: i32 = 0x1000; -pub const FIO_S_IFREG: i32 = 0x2000; -pub const FIO_S_ISUID: i32 = 0x0800; -pub const FIO_S_ISGID: i32 = 0x0400; -pub const FIO_S_ISVTX: i32 = 0x0200; -pub const FIO_S_IRUSR: i32 = 0x0100; -pub const FIO_S_IWUSR: i32 = 0x0080; -pub const FIO_S_IXUSR: i32 = 0x0040; -pub const FIO_S_IRGRP: i32 = 0x0020; -pub const FIO_S_IWGRP: i32 = 0x0010; -pub const FIO_S_IXGRP: i32 = 0x0008; -pub const FIO_S_IROTH: i32 = 0x0004; -pub const FIO_S_IWOTH: i32 = 0x0002; -pub const FIO_S_IXOTH: i32 = 0x0001; - -pub const FIO_SO_IFLNK: i32 = 0x0008; -pub const FIO_SO_IFDIR: i32 = 0x0010; -pub const FIO_SO_IFREG: i32 = 0x0020; -pub const FIO_SO_IROTH: i32 = 0x0004; -pub const FIO_SO_IWOTH: i32 = 0x0002; -pub const FIO_SO_IXOTH: i32 = 0x0001; - -pub const PSP_O_RD_ONLY: i32 = 0x0001; -pub const PSP_O_WR_ONLY: i32 = 0x0002; -pub const PSP_O_RD_WR: i32 = 0x0003; -pub const PSP_O_NBLOCK: i32 = 0x0004; -pub const PSP_O_DIR: i32 = 0x0008; -pub const PSP_O_APPEND: i32 = 0x0100; -pub const PSP_O_CREAT: i32 = 0x0200; -pub const PSP_O_TRUNC: i32 = 0x0400; -pub const PSP_O_EXCL: i32 = 0x0800; -pub const PSP_O_NO_WAIT: i32 = 0x8000; - -pub const UMD_NOT_PRESENT: i32 = 0x01; -pub const UMD_PRESENT: i32 = 0x02; -pub const UMD_CHANGED: i32 = 0x04; -pub const UMD_INITING: i32 = 0x08; -pub const UMD_INITED: i32 = 0x10; -pub const UMD_READY: i32 = 0x20; - -pub const PLAY_PAUSE: i32 = 0x1; -pub const FORWARD: i32 = 0x4; -pub const BACK: i32 = 0x8; -pub const VOL_UP: i32 = 0x10; -pub const VOL_DOWN: i32 = 0x20; -pub const HOLD: i32 = 0x80; - -pub const GU_PI: f32 = 3.141593; - -pub const GU_TEXTURE_8BIT: i32 = 1; -pub const GU_TEXTURE_16BIT: i32 = 2; -pub const GU_TEXTURE_32BITF: i32 = 3; -pub const GU_COLOR_5650: i32 = 4 << 2; -pub const GU_COLOR_5551: i32 = 5 << 2; -pub const GU_COLOR_4444: i32 = 6 << 2; -pub const GU_COLOR_8888: i32 = 7 << 2; -pub const GU_NORMAL_8BIT: i32 = 1 << 5; -pub const GU_NORMAL_16BIT: i32 = 2 << 5; -pub const GU_NORMAL_32BITF: i32 = 3 << 5; -pub const GU_VERTEX_8BIT: i32 = 1 << 7; -pub const GU_VERTEX_16BIT: i32 = 2 << 7; -pub const GU_VERTEX_32BITF: i32 = 3 << 7; -pub const GU_WEIGHT_8BIT: i32 = 1 << 9; -pub const GU_WEIGHT_16BIT: i32 = 2 << 9; -pub const GU_WEIGHT_32BITF: i32 = 3 << 9; -pub const GU_INDEX_8BIT: i32 = 1 << 11; -pub const GU_INDEX_16BIT: i32 = 2 << 11; -pub const GU_WEIGHTS1: i32 = (((1 - 1) & 7) << 14) as i32; -pub const GU_WEIGHTS2: i32 = (((2 - 1) & 7) << 14) as i32; -pub const GU_WEIGHTS3: i32 = (((3 - 1) & 7) << 14) as i32; -pub const GU_WEIGHTS4: i32 = (((4 - 1) & 7) << 14) as i32; -pub const GU_WEIGHTS5: i32 = (((5 - 1) & 7) << 14) as i32; -pub const GU_WEIGHTS6: i32 = (((6 - 1) & 7) << 14) as i32; -pub const GU_WEIGHTS7: i32 = (((7 - 1) & 7) << 14) as i32; -pub const GU_WEIGHTS8: i32 = (((8 - 1) & 7) << 14) as i32; -pub const GU_VERTICES1: i32 = (((1 - 1) & 7) << 18) as i32; -pub const GU_VERTICES2: i32 = (((2 - 1) & 7) << 18) as i32; -pub const GU_VERTICES3: i32 = (((3 - 1) & 7) << 18) as i32; -pub const GU_VERTICES4: i32 = (((4 - 1) & 7) << 18) as i32; -pub const GU_VERTICES5: i32 = (((5 - 1) & 7) << 18) as i32; -pub const GU_VERTICES6: i32 = (((6 - 1) & 7) << 18) as i32; -pub const GU_VERTICES7: i32 = (((7 - 1) & 7) << 18) as i32; -pub const GU_VERTICES8: i32 = (((8 - 1) & 7) << 18) as i32; -pub const GU_TRANSFORM_2D: i32 = 1 << 23; -pub const GU_TRANSFORM_3D: i32 = 0; - -pub const GU_COLOR_BUFFER_BIT: i32 = 1; -pub const GU_STENCIL_BUFFER_BIT: i32 = 2; -pub const GU_DEPTH_BUFFER_BIT: i32 = 4; -pub const GU_FAST_CLEAR_BIT: i32 = 16; - -pub const GU_AMBIENT: i32 = 1; -pub const GU_DIFFUSE: i32 = 2; -pub const GU_SPECULAR: i32 = 4; -pub const GU_UNKNOWN_LIGHT_COMPONENT: i32 = 8; - -pub const SYSTEM_REGISTRY: [u8; 7] = *b"/system"; -pub const REG_KEYNAME_SIZE: u32 = 27; - -pub const UTILITY_MSGDIALOG_ERROR: i32 = 0; -pub const UTILITY_MSGDIALOG_TEXT: i32 = 1; -pub const UTILITY_MSGDIALOG_YES_NO_BUTTONS: i32 = 0x10; -pub const UTILITY_MSGDIALOG_DEFAULT_NO: i32 = 0x100; - -pub const UTILITY_HTMLVIEWER_OPEN_SCE_START_PAGE: i32 = 0x000001; -pub const UTILITY_HTMLVIEWER_DISABLE_STARTUP_LIMITS: i32 = 0x000002; -pub const UTILITY_HTMLVIEWER_DISABLE_EXIT_DIALOG: i32 = 0x000004; -pub const UTILITY_HTMLVIEWER_DISABLE_CURSOR: i32 = 0x000008; -pub const UTILITY_HTMLVIEWER_DISABLE_DOWNLOAD_COMPLETE_DIALOG: i32 = 0x000010; -pub const UTILITY_HTMLVIEWER_DISABLE_DOWNLOAD_START_DIALOG: i32 = 0x000020; -pub const UTILITY_HTMLVIEWER_DISABLE_DOWNLOAD_DESTINATION_DIALOG: i32 = 0x000040; -pub const UTILITY_HTMLVIEWER_LOCK_DOWNLOAD_DESTINATION_DIALOG: i32 = 0x000080; -pub const UTILITY_HTMLVIEWER_DISABLE_TAB_DISPLAY: i32 = 0x000100; -pub const UTILITY_HTMLVIEWER_ENABLE_ANALOG_HOLD: i32 = 0x000200; -pub const UTILITY_HTMLVIEWER_ENABLE_FLASH: i32 = 0x000400; -pub const UTILITY_HTMLVIEWER_DISABLE_LRTRIGGER: i32 = 0x000800; - -extern "C" { - pub fn sceAudioChReserve(channel: i32, sample_count: i32, format: AudioFormat) -> i32; - pub fn sceAudioChRelease(channel: i32) -> i32; - pub fn sceAudioOutput(channel: i32, vol: i32, buf: *mut c_void) -> i32; - pub fn sceAudioOutputBlocking(channel: i32, vol: i32, buf: *mut c_void) -> i32; - pub fn sceAudioOutputPanned( - channel: i32, - left_vol: i32, - right_vol: i32, - buf: *mut c_void, - ) -> i32; - pub fn sceAudioOutputPannedBlocking( - channel: i32, - left_vol: i32, - right_vol: i32, - buf: *mut c_void, - ) -> i32; - pub fn sceAudioGetChannelRestLen(channel: i32) -> i32; - pub fn sceAudioGetChannelRestLength(channel: i32) -> i32; - pub fn sceAudioSetChannelDataLen(channel: i32, sample_count: i32) -> i32; - pub fn sceAudioChangeChannelConfig(channel: i32, format: AudioFormat) -> i32; - pub fn sceAudioChangeChannelVolume(channel: i32, left_vol: i32, right_vol: i32) -> i32; - pub fn sceAudioOutput2Reserve(sample_count: i32) -> i32; - pub fn sceAudioOutput2Release() -> i32; - pub fn sceAudioOutput2ChangeLength(sample_count: i32) -> i32; - pub fn sceAudioOutput2OutputBlocking(vol: i32, buf: *mut c_void) -> i32; - pub fn sceAudioOutput2GetRestSample() -> i32; - pub fn sceAudioSRCChReserve( - sample_count: i32, - freq: AudioOutputFrequency, - channels: i32, - ) -> i32; - pub fn sceAudioSRCChRelease() -> i32; - pub fn sceAudioSRCOutputBlocking(vol: i32, buf: *mut c_void) -> i32; - pub fn sceAudioInputInit(unknown1: i32, gain: i32, unknown2: i32) -> i32; - pub fn sceAudioInputInitEx(params: *mut AudioInputParams) -> i32; - pub fn sceAudioInputBlocking(sample_count: i32, freq: AudioInputFrequency, buf: *mut c_void); - pub fn sceAudioInput(sample_count: i32, freq: AudioInputFrequency, buf: *mut c_void); - pub fn sceAudioGetInputLength() -> i32; - pub fn sceAudioWaitInputEnd() -> i32; - pub fn sceAudioPollInputEnd() -> i32; - - pub fn sceAtracGetAtracID(ui_codec_type: u32) -> i32; - pub fn sceAtracSetDataAndGetID(buf: *mut c_void, bufsize: usize) -> i32; - pub fn sceAtracDecodeData( - atrac_id: i32, - out_samples: *mut u16, - out_n: *mut i32, - out_end: *mut i32, - out_remain_frame: *mut i32, - ) -> i32; - pub fn sceAtracGetRemainFrame(atrac_id: i32, out_remain_frame: *mut i32) -> i32; - pub fn sceAtracGetStreamDataInfo( - atrac_id: i32, - write_pointer: *mut *mut u8, - available_bytes: *mut u32, - read_offset: *mut u32, - ) -> i32; - pub fn sceAtracAddStreamData(atrac_id: i32, bytes_to_add: u32) -> i32; - pub fn sceAtracGetBitrate(atrac_id: i32, out_bitrate: *mut i32) -> i32; - pub fn sceAtracSetLoopNum(atrac_id: i32, nloops: i32) -> i32; - pub fn sceAtracReleaseAtracID(atrac_id: i32) -> i32; - pub fn sceAtracGetNextSample(atrac_id: i32, out_n: *mut i32) -> i32; - pub fn sceAtracGetMaxSample(atrac_id: i32, out_max: *mut i32) -> i32; - pub fn sceAtracGetBufferInfoForReseting( - atrac_id: i32, - ui_sample: u32, - pbuffer_info: *mut Atrac3BufferInfo, - ) -> i32; - pub fn sceAtracGetChannel(atrac_id: i32, pui_channel: *mut u32) -> i32; - pub fn sceAtracGetInternalErrorInfo(atrac_id: i32, pi_result: *mut i32) -> i32; - pub fn sceAtracGetLoopStatus( - atrac_id: i32, - pi_loop_num: *mut i32, - pui_loop_status: *mut u32, - ) -> i32; - pub fn sceAtracGetNextDecodePosition(atrac_id: i32, pui_sample_position: *mut u32) -> i32; - pub fn sceAtracGetSecondBufferInfo( - atrac_id: i32, - pui_position: *mut u32, - pui_data_byte: *mut u32, - ) -> i32; - pub fn sceAtracGetSoundSample( - atrac_id: i32, - pi_end_sample: *mut i32, - pi_loop_start_sample: *mut i32, - pi_loop_end_sample: *mut i32, - ) -> i32; - pub fn sceAtracResetPlayPosition( - atrac_id: i32, - ui_sample: u32, - ui_write_byte_first_buf: u32, - ui_write_byte_second_buf: u32, - ) -> i32; - pub fn sceAtracSetData(atrac_id: i32, puc_buffer_addr: *mut u8, ui_buffer_byte: u32) -> i32; - pub fn sceAtracSetHalfwayBuffer( - atrac_id: i32, - puc_buffer_addr: *mut u8, - ui_read_byte: u32, - ui_buffer_byte: u32, - ) -> i32; - pub fn sceAtracSetHalfwayBufferAndGetID( - puc_buffer_addr: *mut u8, - ui_read_byte: u32, - ui_buffer_byte: u32, - ) -> i32; - pub fn sceAtracSetSecondBuffer( - atrac_id: i32, - puc_second_buffer_addr: *mut u8, - ui_second_buffer_byte: u32, - ) -> i32; - - pub fn sceCtrlSetSamplingCycle(cycle: i32) -> i32; - pub fn sceCtrlGetSamplingCycle(pcycle: *mut i32) -> i32; - pub fn sceCtrlSetSamplingMode(mode: CtrlMode) -> i32; - pub fn sceCtrlGetSamplingMode(pmode: *mut i32) -> i32; - pub fn sceCtrlPeekBufferPositive(pad_data: *mut SceCtrlData, count: i32) -> i32; - pub fn sceCtrlPeekBufferNegative(pad_data: *mut SceCtrlData, count: i32) -> i32; - pub fn sceCtrlReadBufferPositive(pad_data: *mut SceCtrlData, count: i32) -> i32; - pub fn sceCtrlReadBufferNegative(pad_data: *mut SceCtrlData, count: i32) -> i32; - pub fn sceCtrlPeekLatch(latch_data: *mut SceCtrlLatch) -> i32; - pub fn sceCtrlReadLatch(latch_data: *mut SceCtrlLatch) -> i32; - pub fn sceCtrlSetIdleCancelThreshold(idlereset: i32, idleback: i32) -> i32; - pub fn sceCtrlGetIdleCancelThreshold(idlereset: *mut i32, idleback: *mut i32) -> i32; - - pub fn sceDisplaySetMode(mode: DisplayMode, width: usize, height: usize) -> u32; - pub fn sceDisplayGetMode(pmode: *mut i32, pwidth: *mut i32, pheight: *mut i32) -> i32; - pub fn sceDisplaySetFrameBuf( - top_addr: *const u8, - buffer_width: usize, - pixel_format: DisplayPixelFormat, - sync: DisplaySetBufSync, - ) -> u32; - pub fn sceDisplayGetFrameBuf( - top_addr: *mut *mut c_void, - buffer_width: *mut usize, - pixel_format: *mut DisplayPixelFormat, - sync: DisplaySetBufSync, - ) -> i32; - pub fn sceDisplayGetVcount() -> u32; - pub fn sceDisplayWaitVblank() -> i32; - pub fn sceDisplayWaitVblankCB() -> i32; - pub fn sceDisplayWaitVblankStart() -> i32; - pub fn sceDisplayWaitVblankStartCB() -> i32; - pub fn sceDisplayGetAccumulatedHcount() -> i32; - pub fn sceDisplayGetCurrentHcount() -> i32; - pub fn sceDisplayGetFramePerSec() -> f32; - pub fn sceDisplayIsForeground() -> i32; - pub fn sceDisplayIsVblank() -> i32; - - pub fn sceGeEdramGetSize() -> u32; - pub fn sceGeEdramGetAddr() -> *mut u8; - pub fn sceGeEdramSetAddrTranslation(width: i32) -> i32; - pub fn sceGeGetCmd(cmd: i32) -> u32; - pub fn sceGeGetMtx(type_: GeMatrixType, matrix: *mut c_void) -> i32; - pub fn sceGeGetStack(stack_id: i32, stack: *mut GeStack) -> i32; - pub fn sceGeSaveContext(context: *mut GeContext) -> i32; - pub fn sceGeRestoreContext(context: *const GeContext) -> i32; - pub fn sceGeListEnQueue( - list: *const c_void, - stall: *mut c_void, - cbid: i32, - arg: *mut GeListArgs, - ) -> i32; - pub fn sceGeListEnQueueHead( - list: *const c_void, - stall: *mut c_void, - cbid: i32, - arg: *mut GeListArgs, - ) -> i32; - pub fn sceGeListDeQueue(qid: i32) -> i32; - pub fn sceGeListUpdateStallAddr(qid: i32, stall: *mut c_void) -> i32; - pub fn sceGeListSync(qid: i32, sync_type: i32) -> GeListState; - pub fn sceGeDrawSync(sync_type: i32) -> GeListState; - pub fn sceGeBreak(mode: i32, p_param: *mut GeBreakParam) -> i32; - pub fn sceGeContinue() -> i32; - pub fn sceGeSetCallback(cb: *mut GeCallbackData) -> i32; - pub fn sceGeUnsetCallback(cbid: i32) -> i32; - - pub fn sceKernelExitGame(); - pub fn sceKernelRegisterExitCallback(id: SceUid) -> i32; - pub fn sceKernelLoadExec(file: *const u8, param: *mut SceKernelLoadExecParam) -> i32; - - pub fn sceKernelAllocPartitionMemory( - partition: SceSysMemPartitionId, - name: *const u8, - type_: SceSysMemBlockTypes, - size: u32, - addr: *mut c_void, - ) -> SceUid; - pub fn sceKernelGetBlockHeadAddr(blockid: SceUid) -> *mut c_void; - pub fn sceKernelFreePartitionMemory(blockid: SceUid) -> i32; - pub fn sceKernelTotalFreeMemSize() -> usize; - pub fn sceKernelMaxFreeMemSize() -> usize; - pub fn sceKernelDevkitVersion() -> u32; - pub fn sceKernelSetCompiledSdkVersion(version: u32) -> i32; - pub fn sceKernelGetCompiledSdkVersion() -> u32; - - pub fn sceKernelLibcTime(t: *mut i32) -> i32; - pub fn sceKernelLibcClock() -> u32; - pub fn sceKernelLibcGettimeofday(tp: *mut timeval, tzp: *mut timezone) -> i32; - pub fn sceKernelDcacheWritebackAll(); - pub fn sceKernelDcacheWritebackInvalidateAll(); - pub fn sceKernelDcacheWritebackRange(p: *const c_void, size: u32); - pub fn sceKernelDcacheWritebackInvalidateRange(p: *const c_void, size: u32); - pub fn sceKernelDcacheInvalidateRange(p: *const c_void, size: u32); - pub fn sceKernelIcacheInvalidateAll(); - pub fn sceKernelIcacheInvalidateRange(p: *const c_void, size: u32); - pub fn sceKernelUtilsMt19937Init(ctx: *mut SceKernelUtilsMt19937Context, seed: u32) -> i32; - pub fn sceKernelUtilsMt19937UInt(ctx: *mut SceKernelUtilsMt19937Context) -> u32; - pub fn sceKernelUtilsMd5Digest(data: *mut u8, size: u32, digest: *mut u8) -> i32; - pub fn sceKernelUtilsMd5BlockInit(ctx: *mut SceKernelUtilsMd5Context) -> i32; - pub fn sceKernelUtilsMd5BlockUpdate( - ctx: *mut SceKernelUtilsMd5Context, - data: *mut u8, - size: u32, - ) -> i32; - pub fn sceKernelUtilsMd5BlockResult(ctx: *mut SceKernelUtilsMd5Context, digest: *mut u8) - -> i32; - pub fn sceKernelUtilsSha1Digest(data: *mut u8, size: u32, digest: *mut u8) -> i32; - pub fn sceKernelUtilsSha1BlockInit(ctx: *mut SceKernelUtilsSha1Context) -> i32; - pub fn sceKernelUtilsSha1BlockUpdate( - ctx: *mut SceKernelUtilsSha1Context, - data: *mut u8, - size: u32, - ) -> i32; - pub fn sceKernelUtilsSha1BlockResult( - ctx: *mut SceKernelUtilsSha1Context, - digest: *mut u8, - ) -> i32; - - pub fn sceKernelRegisterSubIntrHandler( - int_no: i32, - no: i32, - handler: *mut c_void, - arg: *mut c_void, - ) -> i32; - pub fn sceKernelReleaseSubIntrHandler(int_no: i32, no: i32) -> i32; - pub fn sceKernelEnableSubIntr(int_no: i32, no: i32) -> i32; - pub fn sceKernelDisableSubIntr(int_no: i32, no: i32) -> i32; - pub fn QueryIntrHandlerInfo( - intr_code: SceUid, - sub_intr_code: SceUid, - data: *mut IntrHandlerOptionParam, - ) -> i32; - - pub fn sceKernelCpuSuspendIntr() -> u32; - pub fn sceKernelCpuResumeIntr(flags: u32); - pub fn sceKernelCpuResumeIntrWithSync(flags: u32); - pub fn sceKernelIsCpuIntrSuspended(flags: u32) -> i32; - pub fn sceKernelIsCpuIntrEnable() -> i32; - - pub fn sceKernelLoadModule( - path: *const u8, - flags: i32, - option: *mut SceKernelLMOption, - ) -> SceUid; - pub fn sceKernelLoadModuleMs( - path: *const u8, - flags: i32, - option: *mut SceKernelLMOption, - ) -> SceUid; - pub fn sceKernelLoadModuleByID( - fid: SceUid, - flags: i32, - option: *mut SceKernelLMOption, - ) -> SceUid; - pub fn sceKernelLoadModuleBufferUsbWlan( - buf_size: usize, - buf: *mut c_void, - flags: i32, - option: *mut SceKernelLMOption, - ) -> SceUid; - pub fn sceKernelStartModule( - mod_id: SceUid, - arg_size: usize, - argp: *mut c_void, - status: *mut i32, - option: *mut SceKernelSMOption, - ) -> i32; - pub fn sceKernelStopModule( - mod_id: SceUid, - arg_size: usize, - argp: *mut c_void, - status: *mut i32, - option: *mut SceKernelSMOption, - ) -> i32; - pub fn sceKernelUnloadModule(mod_id: SceUid) -> i32; - pub fn sceKernelSelfStopUnloadModule(unknown: i32, arg_size: usize, argp: *mut c_void) -> i32; - pub fn sceKernelStopUnloadSelfModule( - arg_size: usize, - argp: *mut c_void, - status: *mut i32, - option: *mut SceKernelSMOption, - ) -> i32; - pub fn sceKernelQueryModuleInfo(mod_id: SceUid, info: *mut SceKernelModuleInfo) -> i32; - pub fn sceKernelGetModuleIdList( - read_buf: *mut SceUid, - read_buf_size: i32, - id_count: *mut i32, - ) -> i32; - - pub fn sceKernelVolatileMemLock(unk: i32, ptr: *mut *mut c_void, size: *mut i32) -> i32; - pub fn sceKernelVolatileMemTryLock(unk: i32, ptr: *mut *mut c_void, size: *mut i32) -> i32; - pub fn sceKernelVolatileMemUnlock(unk: i32) -> i32; - - pub fn sceKernelStdin() -> SceUid; - pub fn sceKernelStdout() -> SceUid; - pub fn sceKernelStderr() -> SceUid; - - pub fn sceKernelGetThreadmanIdType(uid: SceUid) -> SceKernelIdListType; - pub fn sceKernelCreateThread( - name: *const u8, - entry: SceKernelThreadEntry, - init_priority: i32, - stack_size: i32, - attr: i32, - option: *mut SceKernelThreadOptParam, - ) -> SceUid; - pub fn sceKernelDeleteThread(thid: SceUid) -> i32; - pub fn sceKernelStartThread(id: SceUid, arg_len: usize, arg_p: *mut c_void) -> i32; - pub fn sceKernelExitThread(status: i32) -> i32; - pub fn sceKernelExitDeleteThread(status: i32) -> i32; - pub fn sceKernelTerminateThread(thid: SceUid) -> i32; - pub fn sceKernelTerminateDeleteThread(thid: SceUid) -> i32; - pub fn sceKernelSuspendDispatchThread() -> i32; - pub fn sceKernelResumeDispatchThread(state: i32) -> i32; - pub fn sceKernelSleepThread() -> i32; - pub fn sceKernelSleepThreadCB() -> i32; - pub fn sceKernelWakeupThread(thid: SceUid) -> i32; - pub fn sceKernelCancelWakeupThread(thid: SceUid) -> i32; - pub fn sceKernelSuspendThread(thid: SceUid) -> i32; - pub fn sceKernelResumeThread(thid: SceUid) -> i32; - pub fn sceKernelWaitThreadEnd(thid: SceUid, timeout: *mut u32) -> i32; - pub fn sceKernelWaitThreadEndCB(thid: SceUid, timeout: *mut u32) -> i32; - pub fn sceKernelDelayThread(delay: u32) -> i32; - pub fn sceKernelDelayThreadCB(delay: u32) -> i32; - pub fn sceKernelDelaySysClockThread(delay: *mut SceKernelSysClock) -> i32; - pub fn sceKernelDelaySysClockThreadCB(delay: *mut SceKernelSysClock) -> i32; - pub fn sceKernelChangeCurrentThreadAttr(unknown: i32, attr: i32) -> i32; - pub fn sceKernelChangeThreadPriority(thid: SceUid, priority: i32) -> i32; - pub fn sceKernelRotateThreadReadyQueue(priority: i32) -> i32; - pub fn sceKernelReleaseWaitThread(thid: SceUid) -> i32; - pub fn sceKernelGetThreadId() -> i32; - pub fn sceKernelGetThreadCurrentPriority() -> i32; - pub fn sceKernelGetThreadExitStatus(thid: SceUid) -> i32; - pub fn sceKernelCheckThreadStack() -> i32; - pub fn sceKernelGetThreadStackFreeSize(thid: SceUid) -> i32; - pub fn sceKernelReferThreadStatus(thid: SceUid, info: *mut SceKernelThreadInfo) -> i32; - pub fn sceKernelReferThreadRunStatus( - thid: SceUid, - status: *mut SceKernelThreadRunStatus, - ) -> i32; - pub fn sceKernelCreateSema( - name: *const u8, - attr: u32, - init_val: i32, - max_val: i32, - option: *mut SceKernelSemaOptParam, - ) -> SceUid; - pub fn sceKernelDeleteSema(sema_id: SceUid) -> i32; - pub fn sceKernelSignalSema(sema_id: SceUid, signal: i32) -> i32; - pub fn sceKernelWaitSema(sema_id: SceUid, signal: i32, timeout: *mut u32) -> i32; - pub fn sceKernelWaitSemaCB(sema_id: SceUid, signal: i32, timeout: *mut u32) -> i32; - pub fn sceKernelPollSema(sema_id: SceUid, signal: i32) -> i32; - pub fn sceKernelReferSemaStatus(sema_id: SceUid, info: *mut SceKernelSemaInfo) -> i32; - pub fn sceKernelCreateEventFlag( - name: *const u8, - attr: i32, - bits: i32, - opt: *mut SceKernelEventFlagOptParam, - ) -> SceUid; - pub fn sceKernelSetEventFlag(ev_id: SceUid, bits: u32) -> i32; - pub fn sceKernelClearEventFlag(ev_id: SceUid, bits: u32) -> i32; - pub fn sceKernelPollEventFlag(ev_id: SceUid, bits: u32, wait: i32, out_bits: *mut u32) -> i32; - pub fn sceKernelWaitEventFlag( - ev_id: SceUid, - bits: u32, - wait: i32, - out_bits: *mut u32, - timeout: *mut u32, - ) -> i32; - pub fn sceKernelWaitEventFlagCB( - ev_id: SceUid, - bits: u32, - wait: i32, - out_bits: *mut u32, - timeout: *mut u32, - ) -> i32; - pub fn sceKernelDeleteEventFlag(ev_id: SceUid) -> i32; - pub fn sceKernelReferEventFlagStatus(event: SceUid, status: *mut SceKernelEventFlagInfo) - -> i32; - pub fn sceKernelCreateMbx( - name: *const u8, - attr: u32, - option: *mut SceKernelMbxOptParam, - ) -> SceUid; - pub fn sceKernelDeleteMbx(mbx_id: SceUid) -> i32; - pub fn sceKernelSendMbx(mbx_id: SceUid, message: *mut c_void) -> i32; - pub fn sceKernelReceiveMbx(mbx_id: SceUid, message: *mut *mut c_void, timeout: *mut u32) - -> i32; - pub fn sceKernelReceiveMbxCB( - mbx_id: SceUid, - message: *mut *mut c_void, - timeout: *mut u32, - ) -> i32; - pub fn sceKernelPollMbx(mbx_id: SceUid, pmessage: *mut *mut c_void) -> i32; - pub fn sceKernelCancelReceiveMbx(mbx_id: SceUid, num: *mut i32) -> i32; - pub fn sceKernelReferMbxStatus(mbx_id: SceUid, info: *mut SceKernelMbxInfo) -> i32; - pub fn sceKernelSetAlarm( - clock: u32, - handler: SceKernelAlarmHandler, - common: *mut c_void, - ) -> SceUid; - pub fn sceKernelSetSysClockAlarm( - clock: *mut SceKernelSysClock, - handler: *mut SceKernelAlarmHandler, - common: *mut c_void, - ) -> SceUid; - pub fn sceKernelCancelAlarm(alarm_id: SceUid) -> i32; - pub fn sceKernelReferAlarmStatus(alarm_id: SceUid, info: *mut SceKernelAlarmInfo) -> i32; - pub fn sceKernelCreateCallback( - name: *const u8, - func: SceKernelCallbackFunction, - arg: *mut c_void, - ) -> SceUid; - pub fn sceKernelReferCallbackStatus(cb: SceUid, status: *mut SceKernelCallbackInfo) -> i32; - pub fn sceKernelDeleteCallback(cb: SceUid) -> i32; - pub fn sceKernelNotifyCallback(cb: SceUid, arg2: i32) -> i32; - pub fn sceKernelCancelCallback(cb: SceUid) -> i32; - pub fn sceKernelGetCallbackCount(cb: SceUid) -> i32; - pub fn sceKernelCheckCallback() -> i32; - pub fn sceKernelGetThreadmanIdList( - type_: SceKernelIdListType, - read_buf: *mut SceUid, - read_buf_size: i32, - id_count: *mut i32, - ) -> i32; - pub fn sceKernelReferSystemStatus(status: *mut SceKernelSystemStatus) -> i32; - pub fn sceKernelCreateMsgPipe( - name: *const u8, - part: i32, - attr: i32, - unk1: *mut c_void, - opt: *mut c_void, - ) -> SceUid; - pub fn sceKernelDeleteMsgPipe(uid: SceUid) -> i32; - pub fn sceKernelSendMsgPipe( - uid: SceUid, - message: *mut c_void, - size: u32, - unk1: i32, - unk2: *mut c_void, - timeout: *mut u32, - ) -> i32; - pub fn sceKernelSendMsgPipeCB( - uid: SceUid, - message: *mut c_void, - size: u32, - unk1: i32, - unk2: *mut c_void, - timeout: *mut u32, - ) -> i32; - pub fn sceKernelTrySendMsgPipe( - uid: SceUid, - message: *mut c_void, - size: u32, - unk1: i32, - unk2: *mut c_void, - ) -> i32; - pub fn sceKernelReceiveMsgPipe( - uid: SceUid, - message: *mut c_void, - size: u32, - unk1: i32, - unk2: *mut c_void, - timeout: *mut u32, - ) -> i32; - pub fn sceKernelReceiveMsgPipeCB( - uid: SceUid, - message: *mut c_void, - size: u32, - unk1: i32, - unk2: *mut c_void, - timeout: *mut u32, - ) -> i32; - pub fn sceKernelTryReceiveMsgPipe( - uid: SceUid, - message: *mut c_void, - size: u32, - unk1: i32, - unk2: *mut c_void, - ) -> i32; - pub fn sceKernelCancelMsgPipe(uid: SceUid, send: *mut i32, recv: *mut i32) -> i32; - pub fn sceKernelReferMsgPipeStatus(uid: SceUid, info: *mut SceKernelMppInfo) -> i32; - pub fn sceKernelCreateVpl( - name: *const u8, - part: i32, - attr: i32, - size: u32, - opt: *mut SceKernelVplOptParam, - ) -> SceUid; - pub fn sceKernelDeleteVpl(uid: SceUid) -> i32; - pub fn sceKernelAllocateVpl( - uid: SceUid, - size: u32, - data: *mut *mut c_void, - timeout: *mut u32, - ) -> i32; - pub fn sceKernelAllocateVplCB( - uid: SceUid, - size: u32, - data: *mut *mut c_void, - timeout: *mut u32, - ) -> i32; - pub fn sceKernelTryAllocateVpl(uid: SceUid, size: u32, data: *mut *mut c_void) -> i32; - pub fn sceKernelFreeVpl(uid: SceUid, data: *mut c_void) -> i32; - pub fn sceKernelCancelVpl(uid: SceUid, num: *mut i32) -> i32; - pub fn sceKernelReferVplStatus(uid: SceUid, info: *mut SceKernelVplInfo) -> i32; - pub fn sceKernelCreateFpl( - name: *const u8, - part: i32, - attr: i32, - size: u32, - blocks: u32, - opt: *mut SceKernelFplOptParam, - ) -> i32; - pub fn sceKernelDeleteFpl(uid: SceUid) -> i32; - pub fn sceKernelAllocateFpl(uid: SceUid, data: *mut *mut c_void, timeout: *mut u32) -> i32; - pub fn sceKernelAllocateFplCB(uid: SceUid, data: *mut *mut c_void, timeout: *mut u32) -> i32; - pub fn sceKernelTryAllocateFpl(uid: SceUid, data: *mut *mut c_void) -> i32; - pub fn sceKernelFreeFpl(uid: SceUid, data: *mut c_void) -> i32; - pub fn sceKernelCancelFpl(uid: SceUid, pnum: *mut i32) -> i32; - pub fn sceKernelReferFplStatus(uid: SceUid, info: *mut SceKernelFplInfo) -> i32; - pub fn sceKernelUSec2SysClock(usec: u32, clock: *mut SceKernelSysClock) -> i32; - pub fn sceKernelUSec2SysClockWide(usec: u32) -> i64; - pub fn sceKernelSysClock2USec( - clock: *mut SceKernelSysClock, - low: *mut u32, - high: *mut u32, - ) -> i32; - pub fn sceKernelSysClock2USecWide(clock: i64, low: *mut u32, high: *mut u32) -> i32; - pub fn sceKernelGetSystemTime(time: *mut SceKernelSysClock) -> i32; - pub fn sceKernelGetSystemTimeWide() -> i64; - pub fn sceKernelGetSystemTimeLow() -> u32; - pub fn sceKernelCreateVTimer(name: *const u8, opt: *mut SceKernelVTimerOptParam) -> SceUid; - pub fn sceKernelDeleteVTimer(uid: SceUid) -> i32; - pub fn sceKernelGetVTimerBase(uid: SceUid, base: *mut SceKernelSysClock) -> i32; - pub fn sceKernelGetVTimerBaseWide(uid: SceUid) -> i64; - pub fn sceKernelGetVTimerTime(uid: SceUid, time: *mut SceKernelSysClock) -> i32; - pub fn sceKernelGetVTimerTimeWide(uid: SceUid) -> i64; - pub fn sceKernelSetVTimerTime(uid: SceUid, time: *mut SceKernelSysClock) -> i32; - pub fn sceKernelSetVTimerTimeWide(uid: SceUid, time: i64) -> i64; - pub fn sceKernelStartVTimer(uid: SceUid) -> i32; - pub fn sceKernelStopVTimer(uid: SceUid) -> i32; - pub fn sceKernelSetVTimerHandler( - uid: SceUid, - time: *mut SceKernelSysClock, - handler: SceKernelVTimerHandler, - common: *mut c_void, - ) -> i32; - pub fn sceKernelSetVTimerHandlerWide( - uid: SceUid, - time: i64, - handler: SceKernelVTimerHandlerWide, - common: *mut c_void, - ) -> i32; - pub fn sceKernelCancelVTimerHandler(uid: SceUid) -> i32; - pub fn sceKernelReferVTimerStatus(uid: SceUid, info: *mut SceKernelVTimerInfo) -> i32; - pub fn sceKernelRegisterThreadEventHandler( - name: *const u8, - thread_id: SceUid, - mask: i32, - handler: SceKernelThreadEventHandler, - common: *mut c_void, - ) -> SceUid; - pub fn sceKernelReleaseThreadEventHandler(uid: SceUid) -> i32; - pub fn sceKernelReferThreadEventHandlerStatus( - uid: SceUid, - info: *mut SceKernelThreadEventHandlerInfo, - ) -> i32; - pub fn sceKernelReferThreadProfiler() -> *mut DebugProfilerRegs; - pub fn sceKernelReferGlobalProfiler() -> *mut DebugProfilerRegs; - - pub fn sceUsbStart(driver_name: *const u8, size: i32, args: *mut c_void) -> i32; - pub fn sceUsbStop(driver_name: *const u8, size: i32, args: *mut c_void) -> i32; - pub fn sceUsbActivate(pid: u32) -> i32; - pub fn sceUsbDeactivate(pid: u32) -> i32; - pub fn sceUsbGetState() -> i32; - pub fn sceUsbGetDrvState(driver_name: *const u8) -> i32; -} - -extern "C" { - pub fn sceUsbCamSetupStill(param: *mut UsbCamSetupStillParam) -> i32; - pub fn sceUsbCamSetupStillEx(param: *mut UsbCamSetupStillExParam) -> i32; - pub fn sceUsbCamStillInputBlocking(buf: *mut u8, size: usize) -> i32; - pub fn sceUsbCamStillInput(buf: *mut u8, size: usize) -> i32; - pub fn sceUsbCamStillWaitInputEnd() -> i32; - pub fn sceUsbCamStillPollInputEnd() -> i32; - pub fn sceUsbCamStillCancelInput() -> i32; - pub fn sceUsbCamStillGetInputLength() -> i32; - pub fn sceUsbCamSetupVideo( - param: *mut UsbCamSetupVideoParam, - work_area: *mut c_void, - work_area_size: i32, - ) -> i32; - pub fn sceUsbCamSetupVideoEx( - param: *mut UsbCamSetupVideoExParam, - work_area: *mut c_void, - work_area_size: i32, - ) -> i32; - pub fn sceUsbCamStartVideo() -> i32; - pub fn sceUsbCamStopVideo() -> i32; - pub fn sceUsbCamReadVideoFrameBlocking(buf: *mut u8, size: usize) -> i32; - pub fn sceUsbCamReadVideoFrame(buf: *mut u8, size: usize) -> i32; - pub fn sceUsbCamWaitReadVideoFrameEnd() -> i32; - pub fn sceUsbCamPollReadVideoFrameEnd() -> i32; - pub fn sceUsbCamGetReadVideoFrameSize() -> i32; - pub fn sceUsbCamSetSaturation(saturation: i32) -> i32; - pub fn sceUsbCamSetBrightness(brightness: i32) -> i32; - pub fn sceUsbCamSetContrast(contrast: i32) -> i32; - pub fn sceUsbCamSetSharpness(sharpness: i32) -> i32; - pub fn sceUsbCamSetImageEffectMode(effect_mode: UsbCamEffectMode) -> i32; - pub fn sceUsbCamSetEvLevel(exposure_level: UsbCamEvLevel) -> i32; - pub fn sceUsbCamSetReverseMode(reverse_flags: i32) -> i32; - pub fn sceUsbCamSetZoom(zoom: i32) -> i32; - pub fn sceUsbCamGetSaturation(saturation: *mut i32) -> i32; - pub fn sceUsbCamGetBrightness(brightness: *mut i32) -> i32; - pub fn sceUsbCamGetContrast(contrast: *mut i32) -> i32; - pub fn sceUsbCamGetSharpness(sharpness: *mut i32) -> i32; - pub fn sceUsbCamGetImageEffectMode(effect_mode: *mut UsbCamEffectMode) -> i32; - pub fn sceUsbCamGetEvLevel(exposure_level: *mut UsbCamEvLevel) -> i32; - pub fn sceUsbCamGetReverseMode(reverse_flags: *mut i32) -> i32; - pub fn sceUsbCamGetZoom(zoom: *mut i32) -> i32; - pub fn sceUsbCamAutoImageReverseSW(on: i32) -> i32; - pub fn sceUsbCamGetAutoImageReverseState() -> i32; - pub fn sceUsbCamGetLensDirection() -> i32; - - pub fn sceUsbstorBootRegisterNotify(event_flag: SceUid) -> i32; - pub fn sceUsbstorBootUnregisterNotify(event_flag: u32) -> i32; - pub fn sceUsbstorBootSetCapacity(size: u32) -> i32; - - pub fn scePowerRegisterCallback(slot: i32, cbid: SceUid) -> i32; - pub fn scePowerUnregisterCallback(slot: i32) -> i32; - pub fn scePowerIsPowerOnline() -> i32; - pub fn scePowerIsBatteryExist() -> i32; - pub fn scePowerIsBatteryCharging() -> i32; - pub fn scePowerGetBatteryChargingStatus() -> i32; - pub fn scePowerIsLowBattery() -> i32; - pub fn scePowerGetBatteryLifePercent() -> i32; - pub fn scePowerGetBatteryLifeTime() -> i32; - pub fn scePowerGetBatteryTemp() -> i32; - pub fn scePowerGetBatteryElec() -> i32; - pub fn scePowerGetBatteryVolt() -> i32; - pub fn scePowerSetCpuClockFrequency(cpufreq: i32) -> i32; - pub fn scePowerSetBusClockFrequency(busfreq: i32) -> i32; - pub fn scePowerGetCpuClockFrequency() -> i32; - pub fn scePowerGetCpuClockFrequencyInt() -> i32; - pub fn scePowerGetCpuClockFrequencyFloat() -> f32; - pub fn scePowerGetBusClockFrequency() -> i32; - pub fn scePowerGetBusClockFrequencyInt() -> i32; - pub fn scePowerGetBusClockFrequencyFloat() -> f32; - pub fn scePowerSetClockFrequency(pllfreq: i32, cpufreq: i32, busfreq: i32) -> i32; - pub fn scePowerLock(unknown: i32) -> i32; - pub fn scePowerUnlock(unknown: i32) -> i32; - pub fn scePowerTick(t: PowerTick) -> i32; - pub fn scePowerGetIdleTimer() -> i32; - pub fn scePowerIdleTimerEnable(unknown: i32) -> i32; - pub fn scePowerIdleTimerDisable(unknown: i32) -> i32; - pub fn scePowerRequestStandby() -> i32; - pub fn scePowerRequestSuspend() -> i32; - - pub fn sceWlanDevIsPowerOn() -> i32; - pub fn sceWlanGetSwitchState() -> i32; - pub fn sceWlanGetEtherAddr(ether_addr: *mut u8) -> i32; - - pub fn sceWlanDevAttach() -> i32; - pub fn sceWlanDevDetach() -> i32; - - pub fn sceRtcGetTickResolution() -> u32; - pub fn sceRtcGetCurrentTick(tick: *mut u64) -> i32; - pub fn sceRtcGetCurrentClock(tm: *mut ScePspDateTime, tz: i32) -> i32; - pub fn sceRtcGetCurrentClockLocalTime(tm: *mut ScePspDateTime) -> i32; - pub fn sceRtcConvertUtcToLocalTime(tick_utc: *const u64, tick_local: *mut u64) -> i32; - pub fn sceRtcConvertLocalTimeToUTC(tick_local: *const u64, tick_utc: *mut u64) -> i32; - pub fn sceRtcIsLeapYear(year: i32) -> i32; - pub fn sceRtcGetDaysInMonth(year: i32, month: i32) -> i32; - pub fn sceRtcGetDayOfWeek(year: i32, month: i32, day: i32) -> i32; - pub fn sceRtcCheckValid(date: *const ScePspDateTime) -> i32; - pub fn sceRtcSetTick(date: *mut ScePspDateTime, tick: *const u64) -> i32; - pub fn sceRtcGetTick(date: *const ScePspDateTime, tick: *mut u64) -> i32; - pub fn sceRtcCompareTick(tick1: *const u64, tick2: *const u64) -> i32; - pub fn sceRtcTickAddTicks(dest_tick: *mut u64, src_tick: *const u64, num_ticks: u64) -> i32; - pub fn sceRtcTickAddMicroseconds(dest_tick: *mut u64, src_tick: *const u64, num_ms: u64) - -> i32; - pub fn sceRtcTickAddSeconds(dest_tick: *mut u64, src_tick: *const u64, num_seconds: u64) - -> i32; - pub fn sceRtcTickAddMinutes(dest_tick: *mut u64, src_tick: *const u64, num_minutes: u64) - -> i32; - pub fn sceRtcTickAddHours(dest_tick: *mut u64, src_tick: *const u64, num_hours: u64) -> i32; - pub fn sceRtcTickAddDays(dest_tick: *mut u64, src_tick: *const u64, num_days: u64) -> i32; - pub fn sceRtcTickAddWeeks(dest_tick: *mut u64, src_tick: *const u64, num_weeks: u64) -> i32; - pub fn sceRtcTickAddMonths(dest_tick: *mut u64, src_tick: *const u64, num_months: u64) -> i32; - pub fn sceRtcTickAddYears(dest_tick: *mut u64, src_tick: *const u64, num_years: u64) -> i32; - pub fn sceRtcSetTime_t(date: *mut ScePspDateTime, time: u32) -> i32; - pub fn sceRtcGetTime_t(date: *const ScePspDateTime, time: *mut u32) -> i32; - pub fn sceRtcSetTime64_t(date: *mut ScePspDateTime, time: u64) -> i32; - pub fn sceRtcGetTime64_t(date: *const ScePspDateTime, time: *mut u64) -> i32; - pub fn sceRtcSetDosTime(date: *mut ScePspDateTime, dos_time: u32) -> i32; - pub fn sceRtcGetDosTime(date: *mut ScePspDateTime, dos_time: u32) -> i32; - pub fn sceRtcSetWin32FileTime(date: *mut ScePspDateTime, time: *mut u64) -> i32; - pub fn sceRtcGetWin32FileTime(date: *mut ScePspDateTime, time: *mut u64) -> i32; - pub fn sceRtcParseDateTime(dest_tick: *mut u64, date_string: *const u8) -> i32; - pub fn sceRtcFormatRFC3339( - psz_date_time: *mut char, - p_utc: *const u64, - time_zone_minutes: i32, - ) -> i32; - pub fn sceRtcFormatRFC3339LocalTime(psz_date_time: *mut char, p_utc: *const u64) -> i32; - pub fn sceRtcParseRFC3339(p_utc: *mut u64, psz_date_time: *const u8) -> i32; - pub fn sceRtcFormatRFC2822( - psz_date_time: *mut char, - p_utc: *const u64, - time_zone_minutes: i32, - ) -> i32; - pub fn sceRtcFormatRFC2822LocalTime(psz_date_time: *mut char, p_utc: *const u64) -> i32; - - pub fn sceIoOpen(file: *const u8, flags: i32, permissions: IoPermissions) -> SceUid; - pub fn sceIoOpenAsync(file: *const u8, flags: i32, permissions: IoPermissions) -> SceUid; - pub fn sceIoClose(fd: SceUid) -> i32; - pub fn sceIoCloseAsync(fd: SceUid) -> i32; - pub fn sceIoRead(fd: SceUid, data: *mut c_void, size: u32) -> i32; - pub fn sceIoReadAsync(fd: SceUid, data: *mut c_void, size: u32) -> i32; - pub fn sceIoWrite(fd: SceUid, data: *const c_void, size: usize) -> i32; - pub fn sceIoWriteAsync(fd: SceUid, data: *const c_void, size: u32) -> i32; - pub fn sceIoLseek(fd: SceUid, offset: i64, whence: IoWhence) -> i64; - pub fn sceIoLseekAsync(fd: SceUid, offset: i64, whence: IoWhence) -> i32; - pub fn sceIoLseek32(fd: SceUid, offset: i32, whence: IoWhence) -> i32; - pub fn sceIoLseek32Async(fd: SceUid, offset: i32, whence: IoWhence) -> i32; - pub fn sceIoRemove(file: *const u8) -> i32; - pub fn sceIoMkdir(dir: *const u8, mode: IoPermissions) -> i32; - pub fn sceIoRmdir(path: *const u8) -> i32; - pub fn sceIoChdir(path: *const u8) -> i32; - pub fn sceIoRename(oldname: *const u8, newname: *const u8) -> i32; - pub fn sceIoDopen(dirname: *const u8) -> SceUid; - pub fn sceIoDread(fd: SceUid, dir: *mut SceIoDirent) -> i32; - pub fn sceIoDclose(fd: SceUid) -> i32; - pub fn sceIoDevctl( - dev: *const u8, - cmd: u32, - indata: *mut c_void, - inlen: i32, - outdata: *mut c_void, - outlen: i32, - ) -> i32; - pub fn sceIoAssign( - dev1: *const u8, - dev2: *const u8, - dev3: *const u8, - mode: IoAssignPerms, - unk1: *mut c_void, - unk2: i32, - ) -> i32; - pub fn sceIoUnassign(dev: *const u8) -> i32; - pub fn sceIoGetstat(file: *const u8, stat: *mut SceIoStat) -> i32; - pub fn sceIoChstat(file: *const u8, stat: *mut SceIoStat, bits: i32) -> i32; - pub fn sceIoIoctl( - fd: SceUid, - cmd: u32, - indata: *mut c_void, - inlen: i32, - outdata: *mut c_void, - outlen: i32, - ) -> i32; - pub fn sceIoIoctlAsync( - fd: SceUid, - cmd: u32, - indata: *mut c_void, - inlen: i32, - outdata: *mut c_void, - outlen: i32, - ) -> i32; - pub fn sceIoSync(device: *const u8, unk: u32) -> i32; - pub fn sceIoWaitAsync(fd: SceUid, res: *mut i64) -> i32; - pub fn sceIoWaitAsyncCB(fd: SceUid, res: *mut i64) -> i32; - pub fn sceIoPollAsync(fd: SceUid, res: *mut i64) -> i32; - pub fn sceIoGetAsyncStat(fd: SceUid, poll: i32, res: *mut i64) -> i32; - pub fn sceIoCancel(fd: SceUid) -> i32; - pub fn sceIoGetDevType(fd: SceUid) -> i32; - pub fn sceIoChangeAsyncPriority(fd: SceUid, pri: i32) -> i32; - pub fn sceIoSetAsyncCallback(fd: SceUid, cb: SceUid, argp: *mut c_void) -> i32; - - pub fn sceJpegInitMJpeg() -> i32; - pub fn sceJpegFinishMJpeg() -> i32; - pub fn sceJpegCreateMJpeg(width: i32, height: i32) -> i32; - pub fn sceJpegDeleteMJpeg() -> i32; - pub fn sceJpegDecodeMJpeg(jpeg_buf: *mut u8, size: usize, rgba: *mut c_void, unk: u32) -> i32; - - pub fn sceUmdCheckMedium() -> i32; - pub fn sceUmdGetDiscInfo(info: *mut UmdInfo) -> i32; - pub fn sceUmdActivate(unit: i32, drive: *const u8) -> i32; - pub fn sceUmdDeactivate(unit: i32, drive: *const u8) -> i32; - pub fn sceUmdWaitDriveStat(state: i32) -> i32; - pub fn sceUmdWaitDriveStatWithTimer(state: i32, timeout: u32) -> i32; - pub fn sceUmdWaitDriveStatCB(state: i32, timeout: u32) -> i32; - pub fn sceUmdCancelWaitDriveStat() -> i32; - pub fn sceUmdGetDriveStat() -> i32; - pub fn sceUmdGetErrorStat() -> i32; - pub fn sceUmdRegisterUMDCallBack(cbid: i32) -> i32; - pub fn sceUmdUnRegisterUMDCallBack(cbid: i32) -> i32; - pub fn sceUmdReplacePermit() -> i32; - pub fn sceUmdReplaceProhibit() -> i32; - - pub fn sceMpegInit() -> i32; - pub fn sceMpegFinish(); - pub fn sceMpegRingbufferQueryMemSize(packets: i32) -> i32; - pub fn sceMpegRingbufferConstruct( - ringbuffer: *mut SceMpegRingbuffer, - packets: i32, - data: *mut c_void, - size: i32, - callback: SceMpegRingbufferCb, - cb_param: *mut c_void, - ) -> i32; - pub fn sceMpegRingbufferDestruct(ringbuffer: *mut SceMpegRingbuffer); - pub fn sceMpegRingbufferAvailableSize(ringbuffer: *mut SceMpegRingbuffer) -> i32; - pub fn sceMpegRingbufferPut( - ringbuffer: *mut SceMpegRingbuffer, - num_packets: i32, - available: i32, - ) -> i32; - pub fn sceMpegQueryMemSize(unk: i32) -> i32; - pub fn sceMpegCreate( - handle: SceMpeg, - data: *mut c_void, - size: i32, - ringbuffer: *mut SceMpegRingbuffer, - frame_width: i32, - unk1: i32, - unk2: i32, - ) -> i32; - pub fn sceMpegDelete(handle: SceMpeg); - pub fn sceMpegQueryStreamOffset(handle: SceMpeg, buffer: *mut c_void, offset: *mut i32) -> i32; - pub fn sceMpegQueryStreamSize(buffer: *mut c_void, size: *mut i32) -> i32; - pub fn sceMpegRegistStream(handle: SceMpeg, stream_id: i32, unk: i32) -> SceMpegStream; - pub fn sceMpegUnRegistStream(handle: SceMpeg, stream: SceMpegStream); - pub fn sceMpegFlushAllStream(handle: SceMpeg) -> i32; - pub fn sceMpegMallocAvcEsBuf(handle: SceMpeg) -> *mut c_void; - pub fn sceMpegFreeAvcEsBuf(handle: SceMpeg, buf: *mut c_void); - pub fn sceMpegQueryAtracEsSize(handle: SceMpeg, es_size: *mut i32, out_size: *mut i32) -> i32; - pub fn sceMpegInitAu(handle: SceMpeg, es_buffer: *mut c_void, au: *mut SceMpegAu) -> i32; - pub fn sceMpegGetAvcAu( - handle: SceMpeg, - stream: SceMpegStream, - au: *mut SceMpegAu, - unk: *mut i32, - ) -> i32; - pub fn sceMpegAvcDecodeMode(handle: SceMpeg, mode: *mut SceMpegAvcMode) -> i32; - pub fn sceMpegAvcDecode( - handle: SceMpeg, - au: *mut SceMpegAu, - iframe_width: i32, - buffer: *mut c_void, - init: *mut i32, - ) -> i32; - pub fn sceMpegAvcDecodeStop( - handle: SceMpeg, - frame_width: i32, - buffer: *mut c_void, - status: *mut i32, - ) -> i32; - pub fn sceMpegGetAtracAu( - handle: SceMpeg, - stream: SceMpegStream, - au: *mut SceMpegAu, - unk: *mut c_void, - ) -> i32; - pub fn sceMpegAtracDecode( - handle: SceMpeg, - au: *mut SceMpegAu, - buffer: *mut c_void, - init: i32, - ) -> i32; - - pub fn sceMpegBaseYCrCbCopyVme(yuv_buffer: *mut c_void, buffer: *mut i32, type_: i32) -> i32; - pub fn sceMpegBaseCscInit(width: i32) -> i32; - pub fn sceMpegBaseCscVme( - rgb_buffer: *mut c_void, - rgb_buffer2: *mut c_void, - width: i32, - y_cr_cb_buffer: *mut SceMpegYCrCbBuffer, - ) -> i32; - pub fn sceMpegbase_BEA18F91(lli: *mut SceMpegLLI) -> i32; - - pub fn sceHprmPeekCurrentKey(key: *mut i32) -> i32; - pub fn sceHprmPeekLatch(latch: *mut [u32; 4]) -> i32; - pub fn sceHprmReadLatch(latch: *mut [u32; 4]) -> i32; - pub fn sceHprmIsHeadphoneExist() -> i32; - pub fn sceHprmIsRemoteExist() -> i32; - pub fn sceHprmIsMicrophoneExist() -> i32; - - pub fn sceGuDepthBuffer(zbp: *mut c_void, zbw: i32); - pub fn sceGuDispBuffer(width: i32, height: i32, dispbp: *mut c_void, dispbw: i32); - pub fn sceGuDrawBuffer(psm: DisplayPixelFormat, fbp: *mut c_void, fbw: i32); - pub fn sceGuDrawBufferList(psm: DisplayPixelFormat, fbp: *mut c_void, fbw: i32); - pub fn sceGuDisplay(state: bool) -> bool; - pub fn sceGuDepthFunc(function: DepthFunc); - pub fn sceGuDepthMask(mask: i32); - pub fn sceGuDepthOffset(offset: i32); - pub fn sceGuDepthRange(near: i32, far: i32); - pub fn sceGuFog(near: f32, far: f32, color: u32); - pub fn sceGuInit(); - pub fn sceGuTerm(); - pub fn sceGuBreak(mode: i32); - pub fn sceGuContinue(); - pub fn sceGuSetCallback(signal: GuCallbackId, callback: GuCallback) -> GuCallback; - pub fn sceGuSignal(behavior: SignalBehavior, signal: i32); - pub fn sceGuSendCommandf(cmd: GeCommand, argument: f32); - pub fn sceGuSendCommandi(cmd: GeCommand, argument: i32); - pub fn sceGuGetMemory(size: i32) -> *mut c_void; - pub fn sceGuStart(context_type: GuContextType, list: *mut c_void); - pub fn sceGuFinish() -> i32; - pub fn sceGuFinishId(id: u32) -> i32; - pub fn sceGuCallList(list: *const c_void); - pub fn sceGuCallMode(mode: i32); - pub fn sceGuCheckList() -> i32; - pub fn sceGuSendList(mode: GuQueueMode, list: *const c_void, context: *mut GeContext); - pub fn sceGuSwapBuffers() -> *mut c_void; - pub fn sceGuSync(mode: GuSyncMode, behavior: GuSyncBehavior) -> GeListState; - pub fn sceGuDrawArray( - prim: GuPrimitive, - vtype: i32, - count: i32, - indices: *const c_void, - vertices: *const c_void, - ); - pub fn sceGuBeginObject( - vtype: i32, - count: i32, - indices: *const c_void, - vertices: *const c_void, - ); - pub fn sceGuEndObject(); - pub fn sceGuSetStatus(state: GuState, status: i32); - pub fn sceGuGetStatus(state: GuState) -> bool; - pub fn sceGuSetAllStatus(status: i32); - pub fn sceGuGetAllStatus() -> i32; - pub fn sceGuEnable(state: GuState); - pub fn sceGuDisable(state: GuState); - pub fn sceGuLight(light: i32, type_: LightType, components: i32, position: &ScePspFVector3); - pub fn sceGuLightAtt(light: i32, atten0: f32, atten1: f32, atten2: f32); - pub fn sceGuLightColor(light: i32, component: i32, color: u32); - pub fn sceGuLightMode(mode: LightMode); - pub fn sceGuLightSpot(light: i32, direction: &ScePspFVector3, exponent: f32, cutoff: f32); - pub fn sceGuClear(flags: i32); - pub fn sceGuClearColor(color: u32); - pub fn sceGuClearDepth(depth: u32); - pub fn sceGuClearStencil(stencil: u32); - pub fn sceGuPixelMask(mask: u32); - pub fn sceGuColor(color: u32); - pub fn sceGuColorFunc(func: ColorFunc, color: u32, mask: u32); - pub fn sceGuColorMaterial(components: i32); - pub fn sceGuAlphaFunc(func: AlphaFunc, value: i32, mask: i32); - pub fn sceGuAmbient(color: u32); - pub fn sceGuAmbientColor(color: u32); - pub fn sceGuBlendFunc(op: BlendOp, src: BlendSrc, dest: BlendDst, src_fix: u32, dest_fix: u32); - pub fn sceGuMaterial(components: i32, color: u32); - pub fn sceGuModelColor(emissive: u32, ambient: u32, diffuse: u32, specular: u32); - pub fn sceGuStencilFunc(func: StencilFunc, ref_: i32, mask: i32); - pub fn sceGuStencilOp(fail: StencilOperation, zfail: StencilOperation, zpass: StencilOperation); - pub fn sceGuSpecular(power: f32); - pub fn sceGuFrontFace(order: FrontFaceDirection); - pub fn sceGuLogicalOp(op: LogicalOperation); - pub fn sceGuSetDither(matrix: &ScePspIMatrix4); - pub fn sceGuShadeModel(mode: ShadingModel); - pub fn sceGuCopyImage( - psm: DisplayPixelFormat, - sx: i32, - sy: i32, - width: i32, - height: i32, - srcw: i32, - src: *mut c_void, - dx: i32, - dy: i32, - destw: i32, - dest: *mut c_void, - ); - pub fn sceGuTexEnvColor(color: u32); - pub fn sceGuTexFilter(min: TextureFilter, mag: TextureFilter); - pub fn sceGuTexFlush(); - pub fn sceGuTexFunc(tfx: TextureEffect, tcc: TextureColorComponent); - pub fn sceGuTexImage( - mipmap: MipmapLevel, - width: i32, - height: i32, - tbw: i32, - tbp: *const c_void, - ); - pub fn sceGuTexLevelMode(mode: TextureLevelMode, bias: f32); - pub fn sceGuTexMapMode(mode: TextureMapMode, a1: u32, a2: u32); - pub fn sceGuTexMode(tpsm: TexturePixelFormat, maxmips: i32, a2: i32, swizzle: i32); - pub fn sceGuTexOffset(u: f32, v: f32); - pub fn sceGuTexProjMapMode(mode: TextureProjectionMapMode); - pub fn sceGuTexScale(u: f32, v: f32); - pub fn sceGuTexSlope(slope: f32); - pub fn sceGuTexSync(); - pub fn sceGuTexWrap(u: GuTexWrapMode, v: GuTexWrapMode); - pub fn sceGuClutLoad(num_blocks: i32, cbp: *const c_void); - pub fn sceGuClutMode(cpsm: ClutPixelFormat, shift: u32, mask: u32, a3: u32); - pub fn sceGuOffset(x: u32, y: u32); - pub fn sceGuScissor(x: i32, y: i32, w: i32, h: i32); - pub fn sceGuViewport(cx: i32, cy: i32, width: i32, height: i32); - pub fn sceGuDrawBezier( - v_type: i32, - u_count: i32, - v_count: i32, - indices: *const c_void, - vertices: *const c_void, - ); - pub fn sceGuPatchDivide(ulevel: u32, vlevel: u32); - pub fn sceGuPatchFrontFace(a0: u32); - pub fn sceGuPatchPrim(prim: PatchPrimitive); - pub fn sceGuDrawSpline( - v_type: i32, - u_count: i32, - v_count: i32, - u_edge: i32, - v_edge: i32, - indices: *const c_void, - vertices: *const c_void, - ); - pub fn sceGuSetMatrix(type_: MatrixMode, matrix: &ScePspFMatrix4); - pub fn sceGuBoneMatrix(index: u32, matrix: &ScePspFMatrix4); - pub fn sceGuMorphWeight(index: i32, weight: f32); - pub fn sceGuDrawArrayN( - primitive_type: GuPrimitive, - v_type: i32, - count: i32, - a3: i32, - indices: *const c_void, - vertices: *const c_void, - ); - - pub fn sceGumDrawArray( - prim: GuPrimitive, - v_type: i32, - count: i32, - indices: *const c_void, - vertices: *const c_void, - ); - pub fn sceGumDrawArrayN( - prim: GuPrimitive, - v_type: i32, - count: i32, - a3: i32, - indices: *const c_void, - vertices: *const c_void, - ); - pub fn sceGumDrawBezier( - v_type: i32, - u_count: i32, - v_count: i32, - indices: *const c_void, - vertices: *const c_void, - ); - pub fn sceGumDrawSpline( - v_type: i32, - u_count: i32, - v_count: i32, - u_edge: i32, - v_edge: i32, - indices: *const c_void, - vertices: *const c_void, - ); - pub fn sceGumFastInverse(); - pub fn sceGumFullInverse(); - pub fn sceGumLoadIdentity(); - pub fn sceGumLoadMatrix(m: &ScePspFMatrix4); - pub fn sceGumLookAt(eye: &ScePspFVector3, center: &ScePspFVector3, up: &ScePspFVector3); - pub fn sceGumMatrixMode(mode: MatrixMode); - pub fn sceGumMultMatrix(m: &ScePspFMatrix4); - pub fn sceGumOrtho(left: f32, right: f32, bottom: f32, top: f32, near: f32, far: f32); - pub fn sceGumPerspective(fovy: f32, aspect: f32, near: f32, far: f32); - pub fn sceGumPopMatrix(); - pub fn sceGumPushMatrix(); - pub fn sceGumRotateX(angle: f32); - pub fn sceGumRotateY(angle: f32); - pub fn sceGumRotateZ(angle: f32); - pub fn sceGumRotateXYZ(v: &ScePspFVector3); - pub fn sceGumRotateZYX(v: &ScePspFVector3); - pub fn sceGumScale(v: &ScePspFVector3); - pub fn sceGumStoreMatrix(m: &mut ScePspFMatrix4); - pub fn sceGumTranslate(v: &ScePspFVector3); - pub fn sceGumUpdateMatrix(); - - pub fn sceMp3ReserveMp3Handle(args: *mut SceMp3InitArg) -> i32; - pub fn sceMp3ReleaseMp3Handle(handle: Mp3Handle) -> i32; - pub fn sceMp3InitResource() -> i32; - pub fn sceMp3TermResource() -> i32; - pub fn sceMp3Init(handle: Mp3Handle) -> i32; - pub fn sceMp3Decode(handle: Mp3Handle, dst: *mut *mut i16) -> i32; - pub fn sceMp3GetInfoToAddStreamData( - handle: Mp3Handle, - dst: *mut *mut u8, - to_write: *mut i32, - src_pos: *mut i32, - ) -> i32; - pub fn sceMp3NotifyAddStreamData(handle: Mp3Handle, size: i32) -> i32; - pub fn sceMp3CheckStreamDataNeeded(handle: Mp3Handle) -> i32; - pub fn sceMp3SetLoopNum(handle: Mp3Handle, loop_: i32) -> i32; - pub fn sceMp3GetLoopNum(handle: Mp3Handle) -> i32; - pub fn sceMp3GetSumDecodedSample(handle: Mp3Handle) -> i32; - pub fn sceMp3GetMaxOutputSample(handle: Mp3Handle) -> i32; - pub fn sceMp3GetSamplingRate(handle: Mp3Handle) -> i32; - pub fn sceMp3GetBitRate(handle: Mp3Handle) -> i32; - pub fn sceMp3GetMp3ChannelNum(handle: Mp3Handle) -> i32; - pub fn sceMp3ResetPlayPosition(handle: Mp3Handle) -> i32; - - pub fn sceRegOpenRegistry(reg: *mut Key, mode: i32, handle: *mut RegHandle) -> i32; - pub fn sceRegFlushRegistry(handle: RegHandle) -> i32; - pub fn sceRegCloseRegistry(handle: RegHandle) -> i32; - pub fn sceRegOpenCategory( - handle: RegHandle, - name: *const u8, - mode: i32, - dir_handle: *mut RegHandle, - ) -> i32; - pub fn sceRegRemoveCategory(handle: RegHandle, name: *const u8) -> i32; - pub fn sceRegCloseCategory(dir_handle: RegHandle) -> i32; - pub fn sceRegFlushCategory(dir_handle: RegHandle) -> i32; - pub fn sceRegGetKeyInfo( - dir_handle: RegHandle, - name: *const u8, - key_handle: *mut RegHandle, - type_: *mut KeyType, - size: *mut usize, - ) -> i32; - pub fn sceRegGetKeyInfoByName( - dir_handle: RegHandle, - name: *const u8, - type_: *mut KeyType, - size: *mut usize, - ) -> i32; - pub fn sceRegGetKeyValue( - dir_handle: RegHandle, - key_handle: RegHandle, - buf: *mut c_void, - size: usize, - ) -> i32; - pub fn sceRegGetKeyValueByName( - dir_handle: RegHandle, - name: *const u8, - buf: *mut c_void, - size: usize, - ) -> i32; - pub fn sceRegSetKeyValue( - dir_handle: RegHandle, - name: *const u8, - buf: *const c_void, - size: usize, - ) -> i32; - pub fn sceRegGetKeysNum(dir_handle: RegHandle, num: *mut i32) -> i32; - pub fn sceRegGetKeys(dir_handle: RegHandle, buf: *mut u8, num: i32) -> i32; - pub fn sceRegCreateKey(dir_handle: RegHandle, name: *const u8, type_: i32, size: usize) -> i32; - pub fn sceRegRemoveRegistry(key: *mut Key) -> i32; - - pub fn sceOpenPSIDGetOpenPSID(openpsid: *mut OpenPSID) -> i32; - - pub fn sceUtilityMsgDialogInitStart(params: *mut UtilityMsgDialogParams) -> i32; - pub fn sceUtilityMsgDialogShutdownStart(); - pub fn sceUtilityMsgDialogGetStatus() -> i32; - pub fn sceUtilityMsgDialogUpdate(n: i32); - pub fn sceUtilityMsgDialogAbort() -> i32; - pub fn sceUtilityNetconfInitStart(data: *mut UtilityNetconfData) -> i32; - pub fn sceUtilityNetconfShutdownStart() -> i32; - pub fn sceUtilityNetconfUpdate(unknown: i32) -> i32; - pub fn sceUtilityNetconfGetStatus() -> i32; - pub fn sceUtilityCheckNetParam(id: i32) -> i32; - pub fn sceUtilityGetNetParam(conf: i32, param: NetParam, data: *mut UtilityNetData) -> i32; - pub fn sceUtilitySavedataInitStart(params: *mut SceUtilitySavedataParam) -> i32; - pub fn sceUtilitySavedataGetStatus() -> i32; - pub fn sceUtilitySavedataShutdownStart() -> i32; - pub fn sceUtilitySavedataUpdate(unknown: i32); - pub fn sceUtilityGameSharingInitStart(params: *mut UtilityGameSharingParams) -> i32; - pub fn sceUtilityGameSharingShutdownStart(); - pub fn sceUtilityGameSharingGetStatus() -> i32; - pub fn sceUtilityGameSharingUpdate(n: i32); - pub fn sceUtilityHtmlViewerInitStart(params: *mut UtilityHtmlViewerParam) -> i32; - pub fn sceUtilityHtmlViewerShutdownStart() -> i32; - pub fn sceUtilityHtmlViewerUpdate(n: i32) -> i32; - pub fn sceUtilityHtmlViewerGetStatus() -> i32; - pub fn sceUtilitySetSystemParamInt(id: SystemParamId, value: i32) -> i32; - pub fn sceUtilitySetSystemParamString(id: SystemParamId, str: *const u8) -> i32; - pub fn sceUtilityGetSystemParamInt(id: SystemParamId, value: *mut i32) -> i32; - pub fn sceUtilityGetSystemParamString(id: SystemParamId, str: *mut u8, len: i32) -> i32; - pub fn sceUtilityOskInitStart(params: *mut SceUtilityOskParams) -> i32; - pub fn sceUtilityOskShutdownStart() -> i32; - pub fn sceUtilityOskUpdate(n: i32) -> i32; - pub fn sceUtilityOskGetStatus() -> i32; - pub fn sceUtilityLoadNetModule(module: NetModule) -> i32; - pub fn sceUtilityUnloadNetModule(module: NetModule) -> i32; - pub fn sceUtilityLoadAvModule(module: AvModule) -> i32; - pub fn sceUtilityUnloadAvModule(module: AvModule) -> i32; - pub fn sceUtilityLoadUsbModule(module: UsbModule) -> i32; - pub fn sceUtilityUnloadUsbModule(module: UsbModule) -> i32; - pub fn sceUtilityLoadModule(module: Module) -> i32; - pub fn sceUtilityUnloadModule(module: Module) -> i32; - pub fn sceUtilityCreateNetParam(conf: i32) -> i32; - pub fn sceUtilitySetNetParam(param: NetParam, val: *const c_void) -> i32; - pub fn sceUtilityCopyNetParam(src: i32, dest: i32) -> i32; - pub fn sceUtilityDeleteNetParam(conf: i32) -> i32; - - pub fn sceNetInit( - poolsize: i32, - calloutprio: i32, - calloutstack: i32, - netintrprio: i32, - netintrstack: i32, - ) -> i32; - pub fn sceNetTerm() -> i32; - pub fn sceNetFreeThreadinfo(thid: i32) -> i32; - pub fn sceNetThreadAbort(thid: i32) -> i32; - pub fn sceNetEtherStrton(name: *mut u8, mac: *mut u8); - pub fn sceNetEtherNtostr(mac: *mut u8, name: *mut u8); - pub fn sceNetGetLocalEtherAddr(mac: *mut u8) -> i32; - pub fn sceNetGetMallocStat(stat: *mut SceNetMallocStat) -> i32; - - pub fn sceNetAdhocctlInit( - stacksize: i32, - priority: i32, - adhoc_id: *mut SceNetAdhocctlAdhocId, - ) -> i32; - pub fn sceNetAdhocctlTerm() -> i32; - pub fn sceNetAdhocctlConnect(name: *const u8) -> i32; - pub fn sceNetAdhocctlDisconnect() -> i32; - pub fn sceNetAdhocctlGetState(event: *mut i32) -> i32; - pub fn sceNetAdhocctlCreate(name: *const u8) -> i32; - pub fn sceNetAdhocctlJoin(scaninfo: *mut SceNetAdhocctlScanInfo) -> i32; - pub fn sceNetAdhocctlGetAdhocId(id: *mut SceNetAdhocctlAdhocId) -> i32; - pub fn sceNetAdhocctlCreateEnterGameMode( - name: *const u8, - unknown: i32, - num: i32, - macs: *mut u8, - timeout: u32, - unknown2: i32, - ) -> i32; - pub fn sceNetAdhocctlJoinEnterGameMode( - name: *const u8, - hostmac: *mut u8, - timeout: u32, - unknown: i32, - ) -> i32; - pub fn sceNetAdhocctlGetGameModeInfo(gamemodeinfo: *mut SceNetAdhocctlGameModeInfo) -> i32; - pub fn sceNetAdhocctlExitGameMode() -> i32; - pub fn sceNetAdhocctlGetPeerList(length: *mut i32, buf: *mut c_void) -> i32; - pub fn sceNetAdhocctlGetPeerInfo( - mac: *mut u8, - size: i32, - peerinfo: *mut SceNetAdhocctlPeerInfo, - ) -> i32; - pub fn sceNetAdhocctlScan() -> i32; - pub fn sceNetAdhocctlGetScanInfo(length: *mut i32, buf: *mut c_void) -> i32; - pub fn sceNetAdhocctlAddHandler(handler: SceNetAdhocctlHandler, unknown: *mut c_void) -> i32; - pub fn sceNetAdhocctlDelHandler(id: i32) -> i32; - pub fn sceNetAdhocctlGetNameByAddr(mac: *mut u8, nickname: *mut u8) -> i32; - pub fn sceNetAdhocctlGetAddrByName( - nickname: *mut u8, - length: *mut i32, - buf: *mut c_void, - ) -> i32; - pub fn sceNetAdhocctlGetParameter(params: *mut SceNetAdhocctlParams) -> i32; - - pub fn sceNetAdhocInit() -> i32; - pub fn sceNetAdhocTerm() -> i32; - pub fn sceNetAdhocPdpCreate(mac: *mut u8, port: u16, buf_size: u32, unk1: i32) -> i32; - pub fn sceNetAdhocPdpDelete(id: i32, unk1: i32) -> i32; - pub fn sceNetAdhocPdpSend( - id: i32, - dest_mac_addr: *mut u8, - port: u16, - data: *mut c_void, - len: u32, - timeout: u32, - nonblock: i32, - ) -> i32; - pub fn sceNetAdhocPdpRecv( - id: i32, - src_mac_addr: *mut u8, - port: *mut u16, - data: *mut c_void, - data_length: *mut c_void, - timeout: u32, - nonblock: i32, - ) -> i32; - pub fn sceNetAdhocGetPdpStat(size: *mut i32, stat: *mut SceNetAdhocPdpStat) -> i32; - pub fn sceNetAdhocGameModeCreateMaster(data: *mut c_void, size: i32) -> i32; - pub fn sceNetAdhocGameModeCreateReplica(mac: *mut u8, data: *mut c_void, size: i32) -> i32; - pub fn sceNetAdhocGameModeUpdateMaster() -> i32; - pub fn sceNetAdhocGameModeUpdateReplica(id: i32, unk1: i32) -> i32; - pub fn sceNetAdhocGameModeDeleteMaster() -> i32; - pub fn sceNetAdhocGameModeDeleteReplica(id: i32) -> i32; - pub fn sceNetAdhocPtpOpen( - srcmac: *mut u8, - srcport: u16, - destmac: *mut u8, - destport: u16, - buf_size: u32, - delay: u32, - count: i32, - unk1: i32, - ) -> i32; - pub fn sceNetAdhocPtpConnect(id: i32, timeout: u32, nonblock: i32) -> i32; - pub fn sceNetAdhocPtpListen( - srcmac: *mut u8, - srcport: u16, - buf_size: u32, - delay: u32, - count: i32, - queue: i32, - unk1: i32, - ) -> i32; - pub fn sceNetAdhocPtpAccept( - id: i32, - mac: *mut u8, - port: *mut u16, - timeout: u32, - nonblock: i32, - ) -> i32; - pub fn sceNetAdhocPtpSend( - id: i32, - data: *mut c_void, - data_size: *mut i32, - timeout: u32, - nonblock: i32, - ) -> i32; - pub fn sceNetAdhocPtpRecv( - id: i32, - data: *mut c_void, - data_size: *mut i32, - timeout: u32, - nonblock: i32, - ) -> i32; - pub fn sceNetAdhocPtpFlush(id: i32, timeout: u32, nonblock: i32) -> i32; - pub fn sceNetAdhocPtpClose(id: i32, unk1: i32) -> i32; - pub fn sceNetAdhocGetPtpStat(size: *mut i32, stat: *mut SceNetAdhocPtpStat) -> i32; -} - -extern "C" { - pub fn sceNetAdhocMatchingInit(memsize: i32) -> i32; - pub fn sceNetAdhocMatchingTerm() -> i32; - pub fn sceNetAdhocMatchingCreate( - mode: AdhocMatchingMode, - max_peers: i32, - port: u16, - buf_size: i32, - hello_delay: u32, - ping_delay: u32, - init_count: i32, - msg_delay: u32, - callback: AdhocMatchingCallback, - ) -> i32; - pub fn sceNetAdhocMatchingDelete(matching_id: i32) -> i32; - pub fn sceNetAdhocMatchingStart( - matching_id: i32, - evth_pri: i32, - evth_stack: i32, - inth_pri: i32, - inth_stack: i32, - opt_len: i32, - opt_data: *mut c_void, - ) -> i32; - pub fn sceNetAdhocMatchingStop(matching_id: i32) -> i32; - pub fn sceNetAdhocMatchingSelectTarget( - matching_id: i32, - mac: *mut u8, - opt_len: i32, - opt_data: *mut c_void, - ) -> i32; - pub fn sceNetAdhocMatchingCancelTarget(matching_id: i32, mac: *mut u8) -> i32; - pub fn sceNetAdhocMatchingCancelTargetWithOpt( - matching_id: i32, - mac: *mut u8, - opt_len: i32, - opt_data: *mut c_void, - ) -> i32; - pub fn sceNetAdhocMatchingSendData( - matching_id: i32, - mac: *mut u8, - data_len: i32, - data: *mut c_void, - ) -> i32; - pub fn sceNetAdhocMatchingAbortSendData(matching_id: i32, mac: *mut u8) -> i32; - pub fn sceNetAdhocMatchingSetHelloOpt( - matching_id: i32, - opt_len: i32, - opt_data: *mut c_void, - ) -> i32; - pub fn sceNetAdhocMatchingGetHelloOpt( - matching_id: i32, - opt_len: *mut i32, - opt_data: *mut c_void, - ) -> i32; - pub fn sceNetAdhocMatchingGetMembers( - matching_id: i32, - length: *mut i32, - buf: *mut c_void, - ) -> i32; - pub fn sceNetAdhocMatchingGetPoolMaxAlloc() -> i32; - pub fn sceNetAdhocMatchingGetPoolStat(poolstat: *mut AdhocPoolStat) -> i32; -} - -extern "C" { - pub fn sceNetApctlInit(stack_size: i32, init_priority: i32) -> i32; - pub fn sceNetApctlTerm() -> i32; - pub fn sceNetApctlGetInfo(code: ApctlInfo, pinfo: *mut SceNetApctlInfo) -> i32; - pub fn sceNetApctlAddHandler(handler: SceNetApctlHandler, parg: *mut c_void) -> i32; - pub fn sceNetApctlDelHandler(handler_id: i32) -> i32; - pub fn sceNetApctlConnect(conn_index: i32) -> i32; - pub fn sceNetApctlDisconnect() -> i32; - pub fn sceNetApctlGetState(pstate: *mut ApctlState) -> i32; - - pub fn sceNetInetInit() -> i32; - pub fn sceNetInetTerm() -> i32; - pub fn sceNetInetAccept(s: i32, addr: *mut sockaddr, addr_len: *mut socklen_t) -> i32; - pub fn sceNetInetBind(s: i32, my_addr: *const sockaddr, addr_len: socklen_t) -> i32; - pub fn sceNetInetConnect(s: i32, serv_addr: *const sockaddr, addr_len: socklen_t) -> i32; - pub fn sceNetInetGetsockopt( - s: i32, - level: i32, - opt_name: i32, - opt_val: *mut c_void, - optl_en: *mut socklen_t, - ) -> i32; - pub fn sceNetInetListen(s: i32, backlog: i32) -> i32; - pub fn sceNetInetRecv(s: i32, buf: *mut c_void, len: usize, flags: i32) -> usize; - pub fn sceNetInetRecvfrom( - s: i32, - buf: *mut c_void, - flags: usize, - arg1: i32, - from: *mut sockaddr, - from_len: *mut socklen_t, - ) -> usize; - pub fn sceNetInetSend(s: i32, buf: *const c_void, len: usize, flags: i32) -> usize; - pub fn sceNetInetSendto( - s: i32, - buf: *const c_void, - len: usize, - flags: i32, - to: *const sockaddr, - to_len: socklen_t, - ) -> usize; - pub fn sceNetInetSetsockopt( - s: i32, - level: i32, - opt_name: i32, - opt_val: *const c_void, - opt_len: socklen_t, - ) -> i32; - pub fn sceNetInetShutdown(s: i32, how: i32) -> i32; - pub fn sceNetInetSocket(domain: i32, type_: i32, protocol: i32) -> i32; - pub fn sceNetInetClose(s: i32) -> i32; - pub fn sceNetInetGetErrno() -> i32; - - pub fn sceSslInit(unknown1: i32) -> i32; - pub fn sceSslEnd() -> i32; - pub fn sceSslGetUsedMemoryMax(memory: *mut u32) -> i32; - pub fn sceSslGetUsedMemoryCurrent(memory: *mut u32) -> i32; - - pub fn sceHttpInit(unknown1: u32) -> i32; - pub fn sceHttpEnd() -> i32; - pub fn sceHttpCreateTemplate(agent: *mut u8, unknown1: i32, unknown2: i32) -> i32; - pub fn sceHttpDeleteTemplate(templateid: i32) -> i32; - pub fn sceHttpCreateConnection( - templateid: i32, - host: *mut u8, - unknown1: *mut u8, - port: u16, - unknown2: i32, - ) -> i32; - pub fn sceHttpCreateConnectionWithURL(templateid: i32, url: *const u8, unknown1: i32) -> i32; - pub fn sceHttpDeleteConnection(connection_id: i32) -> i32; - pub fn sceHttpCreateRequest( - connection_id: i32, - method: HttpMethod, - path: *mut u8, - content_length: u64, - ) -> i32; - pub fn sceHttpCreateRequestWithURL( - connection_id: i32, - method: HttpMethod, - url: *mut u8, - content_length: u64, - ) -> i32; - pub fn sceHttpDeleteRequest(request_id: i32) -> i32; - pub fn sceHttpSendRequest(request_id: i32, data: *mut c_void, data_size: u32) -> i32; - pub fn sceHttpAbortRequest(request_id: i32) -> i32; - pub fn sceHttpReadData(request_id: i32, data: *mut c_void, data_size: u32) -> i32; - pub fn sceHttpGetContentLength(request_id: i32, content_length: *mut u64) -> i32; - pub fn sceHttpGetStatusCode(request_id: i32, status_code: *mut i32) -> i32; - pub fn sceHttpSetResolveTimeOut(id: i32, timeout: u32) -> i32; - pub fn sceHttpSetResolveRetry(id: i32, count: i32) -> i32; - pub fn sceHttpSetConnectTimeOut(id: i32, timeout: u32) -> i32; - pub fn sceHttpSetSendTimeOut(id: i32, timeout: u32) -> i32; - pub fn sceHttpSetRecvTimeOut(id: i32, timeout: u32) -> i32; - pub fn sceHttpEnableKeepAlive(id: i32) -> i32; - pub fn sceHttpDisableKeepAlive(id: i32) -> i32; - pub fn sceHttpEnableRedirect(id: i32) -> i32; - pub fn sceHttpDisableRedirect(id: i32) -> i32; - pub fn sceHttpEnableCookie(id: i32) -> i32; - pub fn sceHttpDisableCookie(id: i32) -> i32; - pub fn sceHttpSaveSystemCookie() -> i32; - pub fn sceHttpLoadSystemCookie() -> i32; - pub fn sceHttpAddExtraHeader(id: i32, name: *mut u8, value: *mut u8, unknown1: i32) -> i32; - pub fn sceHttpDeleteHeader(id: i32, name: *const u8) -> i32; - pub fn sceHttpsInit(unknown1: i32, unknown2: i32, unknown3: i32, unknown4: i32) -> i32; - pub fn sceHttpsEnd() -> i32; - pub fn sceHttpsLoadDefaultCert(unknown1: i32, unknown2: i32) -> i32; - pub fn sceHttpDisableAuth(id: i32) -> i32; - pub fn sceHttpDisableCache(id: i32) -> i32; - pub fn sceHttpEnableAuth(id: i32) -> i32; - pub fn sceHttpEnableCache(id: i32) -> i32; - pub fn sceHttpEndCache() -> i32; - pub fn sceHttpGetAllHeader(request: i32, header: *mut *mut u8, header_size: *mut u32) -> i32; - pub fn sceHttpGetNetworkErrno(request: i32, err_num: *mut i32) -> i32; - pub fn sceHttpGetProxy( - id: i32, - activate_flag: *mut i32, - mode: *mut i32, - proxy_host: *mut u8, - len: usize, - proxy_port: *mut u16, - ) -> i32; - pub fn sceHttpInitCache(max_size: usize) -> i32; - pub fn sceHttpSetAuthInfoCB(id: i32, cbfunc: HttpPasswordCB) -> i32; - pub fn sceHttpSetProxy( - id: i32, - activate_flag: i32, - mode: i32, - new_proxy_host: *const u8, - new_proxy_port: u16, - ) -> i32; - pub fn sceHttpSetResHeaderMaxSize(id: i32, header_size: u32) -> i32; - pub fn sceHttpSetMallocFunction( - malloc_func: HttpMallocFunction, - free_func: HttpFreeFunction, - realloc_func: HttpReallocFunction, - ) -> i32; - - pub fn sceNetResolverInit() -> i32; - pub fn sceNetResolverCreate(rid: *mut i32, buf: *mut c_void, buf_length: u32) -> i32; - pub fn sceNetResolverDelete(rid: i32) -> i32; - pub fn sceNetResolverStartNtoA( - rid: i32, - hostname: *const u8, - addr: *mut in_addr, - timeout: u32, - retry: i32, - ) -> i32; - pub fn sceNetResolverStartAtoN( - rid: i32, - addr: *const in_addr, - hostname: *mut u8, - hostname_len: u32, - timeout: u32, - retry: i32, - ) -> i32; - pub fn sceNetResolverStop(rid: i32) -> i32; - pub fn sceNetResolverTerm() -> i32; -} diff --git a/src/rust/vendor/libc-0.2.146/src/sgx.rs b/src/rust/vendor/libc-0.2.146/src/sgx.rs deleted file mode 100644 index 7da626939..000000000 --- a/src/rust/vendor/libc-0.2.146/src/sgx.rs +++ /dev/null @@ -1,47 +0,0 @@ -//! SGX C types definition - -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; -pub type intmax_t = i64; -pub type uintmax_t = u64; - -pub type size_t = usize; -pub type ptrdiff_t = isize; -pub type intptr_t = isize; -pub type uintptr_t = usize; -pub type ssize_t = isize; - -pub type c_char = i8; -pub type c_long = i64; -pub type c_ulong = u64; - -pub const INT_MIN: c_int = -2147483648; -pub const INT_MAX: c_int = 2147483647; - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/solid/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/solid/aarch64.rs deleted file mode 100644 index ceabea397..000000000 --- a/src/rust/vendor/libc-0.2.146/src/solid/aarch64.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = u32; -pub type c_long = i64; -pub type c_ulong = u64; diff --git a/src/rust/vendor/libc-0.2.146/src/solid/arm.rs b/src/rust/vendor/libc-0.2.146/src/solid/arm.rs deleted file mode 100644 index 04cc1542d..000000000 --- a/src/rust/vendor/libc-0.2.146/src/solid/arm.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = u32; -pub type c_long = i32; -pub type c_ulong = u32; diff --git a/src/rust/vendor/libc-0.2.146/src/solid/mod.rs b/src/rust/vendor/libc-0.2.146/src/solid/mod.rs deleted file mode 100644 index f0f2ae89b..000000000 --- a/src/rust/vendor/libc-0.2.146/src/solid/mod.rs +++ /dev/null @@ -1,904 +0,0 @@ -//! Interface to the [SOLID] C library -//! -//! [SOLID]: https://solid.kmckk.com/ - -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; -pub type intmax_t = i64; -pub type uintmax_t = u64; - -pub type uintptr_t = usize; -pub type intptr_t = isize; -pub type ptrdiff_t = isize; -pub type size_t = ::uintptr_t; -pub type ssize_t = ::intptr_t; - -pub type clock_t = c_uint; -pub type time_t = i64; -pub type clockid_t = c_int; -pub type timer_t = c_int; -pub type suseconds_t = c_int; -pub type useconds_t = c_uint; - -pub type sighandler_t = size_t; - -// sys/ansi.h -pub type __caddr_t = *mut c_char; -pub type __gid_t = u32; -pub type __in_addr_t = u32; -pub type __in_port_t = u16; -pub type __mode_t = u32; -pub type __off_t = i64; -pub type __pid_t = i32; -pub type __sa_family_t = u8; -pub type __socklen_t = c_uint; -pub type __uid_t = u32; -pub type __fsblkcnt_t = u64; -pub type __fsfilcnt_t = u64; - -// locale.h -pub type locale_t = usize; - -// nl_types.h -pub type nl_item = c_long; - -// sys/types.h -pub type __va_list = *mut c_char; -pub type u_int8_t = u8; -pub type u_int16_t = u16; -pub type u_int32_t = u32; -pub type u_int64_t = u64; -pub type u_char = c_uchar; -pub type u_short = c_ushort; -pub type u_int = c_uint; -pub type u_long = c_ulong; -pub type unchar = c_uchar; -pub type ushort = c_ushort; -pub type uint = c_uint; -pub type ulong = c_ulong; -pub type u_quad_t = u64; -pub type quad_t = i64; -pub type qaddr_t = *mut quad_t; -pub type longlong_t = i64; -pub type u_longlong_t = u64; -pub type blkcnt_t = i64; -pub type blksize_t = i32; -pub type fsblkcnt_t = __fsblkcnt_t; -pub type fsfilcnt_t = __fsfilcnt_t; -pub type caddr_t = __caddr_t; -pub type daddr_t = i64; -pub type dev_t = u64; -pub type fixpt_t = u32; -pub type gid_t = __gid_t; -pub type idtype_t = c_int; -pub type id_t = u32; -pub type ino_t = u64; -pub type key_t = c_long; -pub type mode_t = __mode_t; -pub type nlink_t = u32; -pub type off_t = __off_t; -pub type pid_t = __pid_t; -pub type lwpid_t = i32; -pub type rlim_t = u64; -pub type segsz_t = i32; -pub type swblk_t = i32; -pub type mqd_t = c_int; -pub type cpuid_t = c_ulong; -pub type psetid_t = c_int; - -s! { - // stat.h - pub struct stat { - pub st_dev: dev_t, - pub st_ino: ino_t, - pub st_mode: c_short, - pub st_nlink: c_short, - pub st_uid: c_short, - pub st_gid: c_short, - pub st_rdev: dev_t, - pub st_size: off_t, - pub st_atime: time_t, - pub st_mtime: time_t, - pub st_ctime: time_t, - pub st_blksize: blksize_t, - } - - // time.h - pub struct tm { - pub tm_sec: c_int, - pub tm_min: c_int, - pub tm_hour: c_int, - pub tm_mday: c_int, - pub tm_mon: c_int, - pub tm_year: c_int, - pub tm_wday: c_int, - pub tm_yday: c_int, - pub tm_isdst: c_int, - pub tm_gmtoff: c_long, - pub tm_zone: *mut c_char, - } - - // stdlib.h - pub struct qdiv_t { - pub quot: quad_t, - pub rem: quad_t, - } - pub struct lldiv_t { - pub quot: c_longlong, - pub rem: c_longlong, - } - pub struct div_t { - pub quot: c_int, - pub rem: c_int, - } - pub struct ldiv_t { - pub quot: c_long, - pub rem: c_long, - } - - // locale.h - pub struct lconv { - pub decimal_point: *mut c_char, - pub thousands_sep: *mut c_char, - pub grouping: *mut c_char, - pub int_curr_symbol: *mut c_char, - pub currency_symbol: *mut c_char, - pub mon_decimal_point: *mut c_char, - pub mon_thousands_sep: *mut c_char, - pub mon_grouping: *mut c_char, - pub positive_sign: *mut c_char, - pub negative_sign: *mut c_char, - pub int_frac_digits: c_char, - pub frac_digits: c_char, - pub p_cs_precedes: c_char, - pub p_sep_by_space: c_char, - pub n_cs_precedes: c_char, - pub n_sep_by_space: c_char, - pub p_sign_posn: c_char, - pub n_sign_posn: c_char, - pub int_p_cs_precedes: c_char, - pub int_n_cs_precedes: c_char, - pub int_p_sep_by_space: c_char, - pub int_n_sep_by_space: c_char, - pub int_p_sign_posn: c_char, - pub int_n_sign_posn: c_char, - } - - pub struct iovec { - pub iov_base: *mut c_void, - pub iov_len: size_t, - } - - pub struct timeval { - pub tv_sec: c_long, - pub tv_usec: c_long, - } -} - -pub const INT_MIN: c_int = -2147483648; -pub const INT_MAX: c_int = 2147483647; - -pub const EXIT_FAILURE: c_int = 1; -pub const EXIT_SUCCESS: c_int = 0; -pub const RAND_MAX: c_int = 0x7fffffff; -pub const EOF: c_int = -1; -pub const SEEK_SET: c_int = 0; -pub const SEEK_CUR: c_int = 1; -pub const SEEK_END: c_int = 2; -pub const _IOFBF: c_int = 0; -pub const _IONBF: c_int = 2; -pub const _IOLBF: c_int = 1; -pub const BUFSIZ: c_uint = 1024; -pub const FOPEN_MAX: c_uint = 20; -pub const FILENAME_MAX: c_uint = 1024; - -pub const O_RDONLY: c_int = 1; -pub const O_WRONLY: c_int = 2; -pub const O_RDWR: c_int = 4; -pub const O_APPEND: c_int = 8; -pub const O_CREAT: c_int = 0x10; -pub const O_EXCL: c_int = 0x400; -pub const O_TEXT: c_int = 0x100; -pub const O_BINARY: c_int = 0x200; -pub const O_TRUNC: c_int = 0x20; -pub const S_IEXEC: c_short = 0x0040; -pub const S_IWRITE: c_short = 0x0080; -pub const S_IREAD: c_short = 0x0100; -pub const S_IFCHR: c_short = 0x2000; -pub const S_IFDIR: c_short = 0x4000; -pub const S_IFMT: c_short = 0o160000; -pub const S_IFIFO: c_short = 0o0010000; -pub const S_IFBLK: c_short = 0o0060000; -pub const S_IFREG: c_short = 0o0100000; - -pub const LC_ALL: c_int = 0; -pub const LC_COLLATE: c_int = 1; -pub const LC_CTYPE: c_int = 2; -pub const LC_MONETARY: c_int = 3; -pub const LC_NUMERIC: c_int = 4; -pub const LC_TIME: c_int = 5; -pub const LC_MESSAGES: c_int = 6; -pub const _LC_LAST: c_int = 7; - -pub const EPERM: c_int = 1; -pub const ENOENT: c_int = 2; -pub const ESRCH: c_int = 3; -pub const EINTR: c_int = 4; -pub const EIO: c_int = 5; -pub const ENXIO: c_int = 6; -pub const E2BIG: c_int = 7; -pub const ENOEXEC: c_int = 8; -pub const EBADF: c_int = 9; -pub const ECHILD: c_int = 10; -pub const EAGAIN: c_int = 11; -pub const ENOMEM: c_int = 12; -pub const EACCES: c_int = 13; -pub const EFAULT: c_int = 14; -pub const ENOTBLK: c_int = 15; -pub const EBUSY: c_int = 16; -pub const EEXIST: c_int = 17; -pub const EXDEV: c_int = 18; -pub const ENODEV: c_int = 19; -pub const ENOTDIR: c_int = 20; -pub const EISDIR: c_int = 21; -pub const EINVAL: c_int = 22; -pub const ENFILE: c_int = 23; -pub const EMFILE: c_int = 24; -pub const ENOTTY: c_int = 25; -pub const ETXTBSY: c_int = 26; -pub const EFBIG: c_int = 27; -pub const ENOSPC: c_int = 28; -pub const ESPIPE: c_int = 29; -pub const EROFS: c_int = 30; -pub const EMLINK: c_int = 31; -pub const EPIPE: c_int = 32; -pub const EDOM: c_int = 33; -pub const ERANGE: c_int = 34; - -pub const EDEADLK: c_int = 35; -pub const ENAMETOOLONG: c_int = 36; -pub const ENOLCK: c_int = 37; -pub const ENOSYS: c_int = 38; -pub const ENOTEMPTY: c_int = 39; -pub const ELOOP: c_int = 40; -pub const EWOULDBLOCK: c_int = EAGAIN; -pub const ENOMSG: c_int = 42; -pub const EIDRM: c_int = 43; -pub const ECHRNG: c_int = 44; -pub const EL2NSYNC: c_int = 45; -pub const EL3HLT: c_int = 46; -pub const EL3RST: c_int = 47; -pub const ELNRNG: c_int = 48; -pub const EUNATCH: c_int = 49; -pub const ENOCSI: c_int = 50; -pub const EL2HLT: c_int = 51; -pub const EBADE: c_int = 52; -pub const EBADR: c_int = 53; -pub const EXFULL: c_int = 54; -pub const ENOANO: c_int = 55; -pub const EBADRQC: c_int = 56; -pub const EBADSLT: c_int = 57; - -pub const EDEADLOCK: c_int = EDEADLK; - -pub const EBFONT: c_int = 59; -pub const ENOSTR: c_int = 60; -pub const ENODATA: c_int = 61; -pub const ETIME: c_int = 62; -pub const ENOSR: c_int = 63; -pub const ENONET: c_int = 64; -pub const ENOPKG: c_int = 65; -pub const EREMOTE: c_int = 66; -pub const ENOLINK: c_int = 67; -pub const EADV: c_int = 68; -pub const ESRMNT: c_int = 69; -pub const ECOMM: c_int = 70; -pub const EPROTO: c_int = 71; -pub const EMULTIHOP: c_int = 72; -pub const EDOTDOT: c_int = 73; -pub const EBADMSG: c_int = 74; -pub const EOVERFLOW: c_int = 75; -pub const ENOTUNIQ: c_int = 76; -pub const EBADFD: c_int = 77; -pub const EREMCHG: c_int = 78; -pub const ELIBACC: c_int = 79; -pub const ELIBBAD: c_int = 80; -pub const ELIBSCN: c_int = 81; -pub const ELIBMAX: c_int = 82; -pub const ELIBEXEC: c_int = 83; -pub const EILSEQ: c_int = 84; -pub const ERESTART: c_int = 85; -pub const ESTRPIPE: c_int = 86; -pub const EUSERS: c_int = 87; -pub const ENOTSOCK: c_int = 88; -pub const EDESTADDRREQ: c_int = 89; -pub const EMSGSIZE: c_int = 90; -pub const EPROTOTYPE: c_int = 91; -pub const ENOPROTOOPT: c_int = 92; -pub const EPROTONOSUPPORT: c_int = 93; -pub const ESOCKTNOSUPPORT: c_int = 94; -pub const EOPNOTSUPP: c_int = 95; -pub const EPFNOSUPPORT: c_int = 96; -pub const EAFNOSUPPORT: c_int = 97; -pub const EADDRINUSE: c_int = 98; -pub const EADDRNOTAVAIL: c_int = 99; -pub const ENETDOWN: c_int = 100; -pub const ENETUNREACH: c_int = 101; -pub const ENETRESET: c_int = 102; -pub const ECONNABORTED: c_int = 103; -pub const ECONNRESET: c_int = 104; -pub const ENOBUFS: c_int = 105; -pub const EISCONN: c_int = 106; -pub const ENOTCONN: c_int = 107; -pub const ESHUTDOWN: c_int = 108; -pub const ETOOMANYREFS: c_int = 109; -pub const ETIMEDOUT: c_int = 110; -pub const ECONNREFUSED: c_int = 111; -pub const EHOSTDOWN: c_int = 112; -pub const EHOSTUNREACH: c_int = 113; -pub const EALREADY: c_int = 114; -pub const EINPROGRESS: c_int = 115; -pub const ESTALE: c_int = 116; -pub const EUCLEAN: c_int = 117; -pub const ENOTNAM: c_int = 118; -pub const ENAVAIL: c_int = 119; -pub const EISNAM: c_int = 120; -pub const EREMOTEIO: c_int = 121; -pub const EDQUOT: c_int = 122; - -pub const ENOMEDIUM: c_int = 123; -pub const EMEDIUMTYPE: c_int = 124; -pub const ECANCELED: c_int = 125; -pub const ENOKEY: c_int = 126; -pub const EKEYEXPIRED: c_int = 127; -pub const EKEYREVOKED: c_int = 128; -pub const EKEYREJECTED: c_int = 129; - -pub const EOWNERDEAD: c_int = 130; -pub const ENOTRECOVERABLE: c_int = 131; - -pub const ENOTSUP: c_int = 132; -pub const EFTYPE: c_int = 133; - -// signal codes -pub const SIGHUP: c_int = 1; -pub const SIGINT: c_int = 2; -pub const SIGQUIT: c_int = 3; -pub const SIGILL: c_int = 4; -pub const SIGTRAP: c_int = 5; -pub const SIGABRT: c_int = 6; -pub const SIGIOT: c_int = SIGABRT; -pub const SIGEMT: c_int = 7; -pub const SIGFPE: c_int = 8; -pub const SIGKILL: c_int = 9; -pub const SIGBUS: c_int = 10; -pub const SIGSEGV: c_int = 11; -pub const SIGSYS: c_int = 12; -pub const SIGPIPE: c_int = 13; -pub const SIGALRM: c_int = 14; -pub const SIGTERM: c_int = 15; -pub const SIGURG: c_int = 16; -pub const SIGSTOP: c_int = 17; -pub const SIGTSTP: c_int = 18; -pub const SIGCONT: c_int = 19; -pub const SIGCHLD: c_int = 20; -pub const SIGTTIN: c_int = 21; -pub const SIGTTOU: c_int = 22; -pub const SIGIO: c_int = 23; -pub const SIGXCPU: c_int = 24; -pub const SIGXFSZ: c_int = 25; -pub const SIGVTALRM: c_int = 26; -pub const SIGPROF: c_int = 27; -pub const SIGWINCH: c_int = 28; -pub const SIGINFO: c_int = 29; -pub const SIGUSR1: c_int = 30; -pub const SIGUSR2: c_int = 31; -pub const SIGPWR: c_int = 32; - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum FILE {} -impl ::Copy for FILE {} -impl ::Clone for FILE { - fn clone(&self) -> FILE { - *self - } -} -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos_t {} -impl ::Copy for fpos_t {} -impl ::Clone for fpos_t { - fn clone(&self) -> fpos_t { - *self - } -} - -extern "C" { - // ctype.h - pub fn isalnum(c: c_int) -> c_int; - pub fn isalpha(c: c_int) -> c_int; - pub fn iscntrl(c: c_int) -> c_int; - pub fn isdigit(c: c_int) -> c_int; - pub fn isgraph(c: c_int) -> c_int; - pub fn islower(c: c_int) -> c_int; - pub fn isprint(c: c_int) -> c_int; - pub fn ispunct(c: c_int) -> c_int; - pub fn isspace(c: c_int) -> c_int; - pub fn isupper(c: c_int) -> c_int; - pub fn isxdigit(c: c_int) -> c_int; - pub fn isblank(c: c_int) -> c_int; - pub fn tolower(c: c_int) -> c_int; - pub fn toupper(c: c_int) -> c_int; - - // stdio.h - pub fn __get_stdio_file(fileno: c_int) -> *mut FILE; - pub fn clearerr(arg1: *mut FILE); - pub fn fclose(arg1: *mut FILE) -> c_int; - pub fn feof(arg1: *mut FILE) -> c_int; - pub fn ferror(arg1: *mut FILE) -> c_int; - pub fn fflush(arg1: *mut FILE) -> c_int; - pub fn fgetc(arg1: *mut FILE) -> c_int; - pub fn fgets(arg1: *mut c_char, arg2: c_int, arg3: *mut FILE) -> *mut c_char; - pub fn fopen(arg1: *const c_char, arg2: *const c_char) -> *mut FILE; - pub fn fprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int; - pub fn fputc(arg1: c_int, arg2: *mut FILE) -> c_int; - pub fn fputs(arg1: *const c_char, arg2: *mut FILE) -> c_int; - pub fn fread(arg1: *mut c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t; - pub fn freopen(arg1: *const c_char, arg2: *const c_char, arg3: *mut FILE) -> *mut FILE; - pub fn fscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int; - pub fn fseek(arg1: *mut FILE, arg2: c_long, arg3: c_int) -> c_int; - pub fn ftell(arg1: *mut FILE) -> c_long; - pub fn fwrite(arg1: *const c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t; - pub fn getc(arg1: *mut FILE) -> c_int; - pub fn getchar() -> c_int; - pub fn perror(arg1: *const c_char); - pub fn printf(arg1: *const c_char, ...) -> c_int; - pub fn putc(arg1: c_int, arg2: *mut FILE) -> c_int; - pub fn putchar(arg1: c_int) -> c_int; - pub fn puts(arg1: *const c_char) -> c_int; - pub fn remove(arg1: *const c_char) -> c_int; - pub fn rewind(arg1: *mut FILE); - pub fn scanf(arg1: *const c_char, ...) -> c_int; - pub fn setbuf(arg1: *mut FILE, arg2: *mut c_char); - pub fn setvbuf(arg1: *mut FILE, arg2: *mut c_char, arg3: c_int, arg4: size_t) -> c_int; - pub fn sscanf(arg1: *const c_char, arg2: *const c_char, ...) -> c_int; - pub fn tmpfile() -> *mut FILE; - pub fn ungetc(arg1: c_int, arg2: *mut FILE) -> c_int; - pub fn vfprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int; - pub fn vprintf(arg1: *const c_char, arg2: __va_list) -> c_int; - pub fn gets(arg1: *mut c_char) -> *mut c_char; - pub fn sprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int; - pub fn tmpnam(arg1: *const c_char) -> *mut c_char; - pub fn vsprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int; - pub fn rename(arg1: *const c_char, arg2: *const c_char) -> c_int; - pub fn asiprintf(arg1: *mut *mut c_char, arg2: *const c_char, ...) -> c_int; - pub fn fiprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int; - pub fn fiscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int; - pub fn iprintf(arg1: *const c_char, ...) -> c_int; - pub fn iscanf(arg1: *const c_char, ...) -> c_int; - pub fn siprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int; - pub fn siscanf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int; - pub fn sniprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int; - pub fn vasiprintf(arg1: *mut *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int; - pub fn vfiprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int; - pub fn vfiscanf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int; - pub fn viprintf(arg1: *const c_char, arg2: __va_list) -> c_int; - pub fn viscanf(arg1: *const c_char, arg2: __va_list) -> c_int; - pub fn vsiprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int; - pub fn vsiscanf(arg1: *const c_char, arg2: *const c_char, arg3: __va_list) -> c_int; - pub fn vsniprintf( - arg1: *mut c_char, - arg2: size_t, - arg3: *const c_char, - arg4: __va_list, - ) -> c_int; - pub fn vdiprintf(arg1: c_int, arg2: *const c_char, arg3: __va_list) -> c_int; - pub fn diprintf(arg1: c_int, arg2: *const c_char, ...) -> c_int; - pub fn fgetpos(arg1: *mut FILE, arg2: *mut fpos_t) -> c_int; - pub fn fsetpos(arg1: *mut FILE, arg2: *const fpos_t) -> c_int; - pub fn fdopen(arg1: c_int, arg2: *const c_char) -> *mut FILE; - pub fn fileno(arg1: *mut FILE) -> c_int; - pub fn flockfile(arg1: *mut FILE); - pub fn ftrylockfile(arg1: *mut FILE) -> c_int; - pub fn funlockfile(arg1: *mut FILE); - pub fn getc_unlocked(arg1: *mut FILE) -> c_int; - pub fn getchar_unlocked() -> c_int; - pub fn putc_unlocked(arg1: c_int, arg2: *mut FILE) -> c_int; - pub fn putchar_unlocked(arg1: c_int) -> c_int; - pub fn snprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int; - pub fn vsnprintf( - arg1: *mut c_char, - arg2: size_t, - arg3: *const c_char, - arg4: __va_list, - ) -> c_int; - pub fn getw(arg1: *mut FILE) -> c_int; - pub fn putw(arg1: c_int, arg2: *mut FILE) -> c_int; - pub fn tempnam(arg1: *const c_char, arg2: *const c_char) -> *mut c_char; - pub fn fseeko(stream: *mut FILE, offset: off_t, whence: c_int) -> c_int; - pub fn ftello(stream: *mut FILE) -> off_t; - - // stdlib.h - pub fn atof(arg1: *const c_char) -> f64; - pub fn strtod(arg1: *const c_char, arg2: *mut *mut c_char) -> f64; - pub fn drand48() -> f64; - pub fn erand48(arg1: *mut c_ushort) -> f64; - pub fn strtof(arg1: *const c_char, arg2: *mut *mut c_char) -> f32; - pub fn strtold(arg1: *const c_char, arg2: *mut *mut c_char) -> f64; - pub fn strtod_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64; - pub fn strtof_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f32; - pub fn strtold_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64; - pub fn _Exit(arg1: c_int) -> !; - pub fn abort() -> !; - pub fn abs(arg1: c_int) -> c_int; - pub fn atexit(arg1: ::Option) -> c_int; - pub fn atoi(arg1: *const c_char) -> c_int; - pub fn atol(arg1: *const c_char) -> c_long; - pub fn itoa(arg1: c_int, arg2: *mut c_char, arg3: c_int) -> *mut c_char; - pub fn ltoa(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> *mut c_char; - pub fn ultoa(arg1: c_ulong, arg2: *mut c_char, arg3: c_int) -> *mut c_char; - pub fn bsearch( - arg1: *const c_void, - arg2: *const c_void, - arg3: size_t, - arg4: size_t, - arg5: ::Option c_int>, - ) -> *mut c_void; - pub fn calloc(arg1: size_t, arg2: size_t) -> *mut c_void; - pub fn div(arg1: c_int, arg2: c_int) -> div_t; - pub fn exit(arg1: c_int) -> !; - pub fn free(arg1: *mut c_void); - pub fn getenv(arg1: *const c_char) -> *mut c_char; - pub fn labs(arg1: c_long) -> c_long; - pub fn ldiv(arg1: c_long, arg2: c_long) -> ldiv_t; - pub fn malloc(arg1: size_t) -> *mut c_void; - pub fn qsort( - arg1: *mut c_void, - arg2: size_t, - arg3: size_t, - arg4: ::Option c_int>, - ); - pub fn rand() -> c_int; - pub fn realloc(arg1: *mut c_void, arg2: size_t) -> *mut c_void; - pub fn srand(arg1: c_uint); - pub fn strtol(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_long; - pub fn strtoul(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulong; - pub fn mblen(arg1: *const c_char, arg2: size_t) -> c_int; - pub fn mbstowcs(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> size_t; - pub fn wctomb(arg1: *mut c_char, arg2: wchar_t) -> c_int; - pub fn mbtowc(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> c_int; - pub fn wcstombs(arg1: *mut c_char, arg2: *const wchar_t, arg3: size_t) -> size_t; - pub fn rand_r(arg1: *mut c_uint) -> c_int; - pub fn jrand48(arg1: *mut c_ushort) -> c_long; - pub fn lcong48(arg1: *mut c_ushort); - pub fn lrand48() -> c_long; - pub fn mrand48() -> c_long; - pub fn nrand48(arg1: *mut c_ushort) -> c_long; - pub fn seed48(arg1: *mut c_ushort) -> *mut c_ushort; - pub fn srand48(arg1: c_long); - pub fn putenv(arg1: *mut c_char) -> c_int; - pub fn a64l(arg1: *const c_char) -> c_long; - pub fn l64a(arg1: c_long) -> *mut c_char; - pub fn random() -> c_long; - pub fn setstate(arg1: *mut c_char) -> *mut c_char; - pub fn initstate(arg1: c_uint, arg2: *mut c_char, arg3: size_t) -> *mut c_char; - pub fn srandom(arg1: c_uint); - pub fn mkostemp(arg1: *mut c_char, arg2: c_int) -> c_int; - pub fn mkostemps(arg1: *mut c_char, arg2: c_int, arg3: c_int) -> c_int; - pub fn mkdtemp(arg1: *mut c_char) -> *mut c_char; - pub fn mkstemp(arg1: *mut c_char) -> c_int; - pub fn mktemp(arg1: *mut c_char) -> *mut c_char; - pub fn atoll(arg1: *const c_char) -> c_longlong; - pub fn llabs(arg1: c_longlong) -> c_longlong; - pub fn lldiv(arg1: c_longlong, arg2: c_longlong) -> lldiv_t; - pub fn strtoll(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_longlong; - pub fn strtoull(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulonglong; - pub fn aligned_alloc(arg1: size_t, arg2: size_t) -> *mut c_void; - pub fn at_quick_exit(arg1: ::Option) -> c_int; - pub fn quick_exit(arg1: c_int); - pub fn setenv(arg1: *const c_char, arg2: *const c_char, arg3: c_int) -> c_int; - pub fn unsetenv(arg1: *const c_char) -> c_int; - pub fn humanize_number( - arg1: *mut c_char, - arg2: size_t, - arg3: i64, - arg4: *const c_char, - arg5: c_int, - arg6: c_int, - ) -> c_int; - pub fn dehumanize_number(arg1: *const c_char, arg2: *mut i64) -> c_int; - pub fn getenv_r(arg1: *const c_char, arg2: *mut c_char, arg3: size_t) -> c_int; - pub fn heapsort( - arg1: *mut c_void, - arg2: size_t, - arg3: size_t, - arg4: ::Option c_int>, - ) -> c_int; - pub fn mergesort( - arg1: *mut c_void, - arg2: size_t, - arg3: size_t, - arg4: ::Option c_int>, - ) -> c_int; - pub fn radixsort( - arg1: *mut *const c_uchar, - arg2: c_int, - arg3: *const c_uchar, - arg4: c_uint, - ) -> c_int; - pub fn sradixsort( - arg1: *mut *const c_uchar, - arg2: c_int, - arg3: *const c_uchar, - arg4: c_uint, - ) -> c_int; - pub fn getprogname() -> *const c_char; - pub fn setprogname(arg1: *const c_char); - pub fn qabs(arg1: quad_t) -> quad_t; - pub fn strtoq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> quad_t; - pub fn strtouq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> u_quad_t; - pub fn strsuftoll( - arg1: *const c_char, - arg2: *const c_char, - arg3: c_longlong, - arg4: c_longlong, - ) -> c_longlong; - pub fn strsuftollx( - arg1: *const c_char, - arg2: *const c_char, - arg3: c_longlong, - arg4: c_longlong, - arg5: *mut c_char, - arg6: size_t, - ) -> c_longlong; - pub fn l64a_r(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> c_int; - pub fn qdiv(arg1: quad_t, arg2: quad_t) -> qdiv_t; - pub fn strtol_l( - arg1: *const c_char, - arg2: *mut *mut c_char, - arg3: c_int, - arg4: locale_t, - ) -> c_long; - pub fn strtoul_l( - arg1: *const c_char, - arg2: *mut *mut c_char, - arg3: c_int, - arg4: locale_t, - ) -> c_ulong; - pub fn strtoll_l( - arg1: *const c_char, - arg2: *mut *mut c_char, - arg3: c_int, - arg4: locale_t, - ) -> c_longlong; - pub fn strtoull_l( - arg1: *const c_char, - arg2: *mut *mut c_char, - arg3: c_int, - arg4: locale_t, - ) -> c_ulonglong; - pub fn strtoq_l( - arg1: *const c_char, - arg2: *mut *mut c_char, - arg3: c_int, - arg4: locale_t, - ) -> quad_t; - pub fn strtouq_l( - arg1: *const c_char, - arg2: *mut *mut c_char, - arg3: c_int, - arg4: locale_t, - ) -> u_quad_t; - pub fn _mb_cur_max_l(arg1: locale_t) -> size_t; - pub fn mblen_l(arg1: *const c_char, arg2: size_t, arg3: locale_t) -> c_int; - pub fn mbstowcs_l( - arg1: *mut wchar_t, - arg2: *const c_char, - arg3: size_t, - arg4: locale_t, - ) -> size_t; - pub fn wctomb_l(arg1: *mut c_char, arg2: wchar_t, arg3: locale_t) -> c_int; - pub fn mbtowc_l(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t, arg4: locale_t) - -> c_int; - pub fn wcstombs_l( - arg1: *mut c_char, - arg2: *const wchar_t, - arg3: size_t, - arg4: locale_t, - ) -> size_t; - - // string.h - pub fn memchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void; - pub fn memcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int; - pub fn memcpy(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void; - pub fn memmove(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void; - pub fn memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void; - pub fn strcat(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char; - pub fn strchr(arg1: *const c_char, arg2: c_int) -> *mut c_char; - pub fn strcmp(arg1: *const c_char, arg2: *const c_char) -> c_int; - pub fn strcoll(arg1: *const c_char, arg2: *const c_char) -> c_int; - pub fn strcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char; - pub fn strcspn(arg1: *const c_char, arg2: *const c_char) -> size_t; - pub fn strerror(arg1: c_int) -> *mut c_char; - pub fn strlen(arg1: *const c_char) -> size_t; - pub fn strncat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char; - pub fn strncmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int; - pub fn strncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char; - pub fn strpbrk(arg1: *const c_char, arg2: *const c_char) -> *mut c_char; - pub fn strrchr(arg1: *const c_char, arg2: c_int) -> *mut c_char; - pub fn strspn(arg1: *const c_char, arg2: *const c_char) -> size_t; - pub fn strstr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char; - pub fn strtok(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char; - pub fn strtok_r(arg1: *mut c_char, arg2: *const c_char, arg3: *mut *mut c_char) -> *mut c_char; - pub fn strerror_r(arg1: c_int, arg2: *mut c_char, arg3: size_t) -> c_int; - pub fn strxfrm(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t; - pub fn memccpy( - arg1: *mut c_void, - arg2: *const c_void, - arg3: c_int, - arg4: size_t, - ) -> *mut c_void; - pub fn strdup(arg1: *const c_char) -> *mut c_char; - pub fn stpcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char; - pub fn stpncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char; - pub fn strnlen(arg1: *const c_char, arg2: size_t) -> size_t; - pub fn memmem( - arg1: *const c_void, - arg2: size_t, - arg3: *const c_void, - arg4: size_t, - ) -> *mut c_void; - pub fn strcasestr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char; - pub fn strlcat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t; - pub fn strlcpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t; - pub fn strsep(arg1: *mut *mut c_char, arg2: *const c_char) -> *mut c_char; - pub fn stresep(arg1: *mut *mut c_char, arg2: *const c_char, arg3: c_int) -> *mut c_char; - pub fn strndup(arg1: *const c_char, arg2: size_t) -> *mut c_char; - pub fn memrchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void; - pub fn explicit_memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void; - pub fn consttime_memequal(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int; - pub fn strcoll_l(arg1: *const c_char, arg2: *const c_char, arg3: locale_t) -> c_int; - pub fn strxfrm_l( - arg1: *mut c_char, - arg2: *const c_char, - arg3: size_t, - arg4: locale_t, - ) -> size_t; - pub fn strerror_l(arg1: c_int, arg2: locale_t) -> *mut c_char; - - // strings.h - pub fn bcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int; - pub fn bcopy(arg1: *const c_void, arg2: *mut c_void, arg3: size_t); - pub fn bzero(arg1: *mut c_void, arg2: size_t); - pub fn ffs(arg1: c_int) -> c_int; - pub fn popcount(arg1: c_uint) -> c_uint; - pub fn popcountl(arg1: c_ulong) -> c_uint; - pub fn popcountll(arg1: c_ulonglong) -> c_uint; - pub fn popcount32(arg1: u32) -> c_uint; - pub fn popcount64(arg1: u64) -> c_uint; - pub fn rindex(arg1: *const c_char, arg2: c_int) -> *mut c_char; - pub fn strcasecmp(arg1: *const c_char, arg2: *const c_char) -> c_int; - pub fn strncasecmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int; - - // signal.h - pub fn signal(arg1: c_int, arg2: sighandler_t) -> sighandler_t; - pub fn raise(arg1: c_int) -> c_int; - - // time.h - pub fn asctime(arg1: *const tm) -> *mut c_char; - pub fn clock() -> clock_t; - pub fn ctime(arg1: *const time_t) -> *mut c_char; - pub fn difftime(arg1: time_t, arg2: time_t) -> f64; - pub fn gmtime(arg1: *const time_t) -> *mut tm; - pub fn localtime(arg1: *const time_t) -> *mut tm; - pub fn time(arg1: *mut time_t) -> time_t; - pub fn mktime(arg1: *mut tm) -> time_t; - pub fn strftime( - arg1: *mut c_char, - arg2: size_t, - arg3: *const c_char, - arg4: *const tm, - ) -> size_t; - pub fn utime(arg1: *const c_char, arg2: *mut time_t) -> c_int; - pub fn asctime_r(arg1: *const tm, arg2: *mut c_char) -> *mut c_char; - pub fn ctime_r(arg1: *const time_t, arg2: *mut c_char) -> *mut c_char; - pub fn gmtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm; - pub fn localtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm; - - // sys/stat.h - pub fn stat(arg1: *const c_char, arg2: *mut stat) -> c_int; - pub fn lstat(arg1: *const c_char, arg2: *mut stat) -> c_int; - pub fn fstat(arg1: c_int, arg2: *mut stat) -> c_int; - pub fn chmod(arg1: *const c_char, arg2: __mode_t) -> c_int; - pub fn mkdir(arg1: *const c_char, arg2: __mode_t) -> c_int; - - // fcntl.h - pub fn open(arg1: *const c_char, arg2: c_int, ...) -> c_int; - pub fn creat(arg1: *const c_char, arg2: c_int) -> c_int; - pub fn close(arg1: c_int) -> c_int; - pub fn read(arg1: c_int, arg2: *mut c_void, arg3: c_int) -> c_int; - pub fn write(arg1: c_int, arg2: *const c_void, arg3: c_int) -> c_int; - pub fn unlink(arg1: *const c_char) -> c_int; - pub fn tell(arg1: c_int) -> c_long; - pub fn dup(arg1: c_int) -> c_int; - pub fn dup2(arg1: c_int, arg2: c_int) -> c_int; - pub fn access(arg1: *const c_char, arg2: c_int) -> c_int; - pub fn rmdir(arg1: *const c_char) -> c_int; - pub fn chdir(arg1: *const c_char) -> c_int; - pub fn _exit(arg1: c_int); - pub fn getwd(arg1: *mut c_char) -> *mut c_char; - pub fn getcwd(arg1: *mut c_char, arg2: size_t) -> *mut c_char; - pub static mut optarg: *mut c_char; - pub static mut opterr: c_int; - pub static mut optind: c_int; - pub static mut optopt: c_int; - pub static mut optreset: c_int; - pub fn getopt(arg1: c_int, arg2: *mut *mut c_char, arg3: *const c_char) -> c_int; - pub static mut suboptarg: *mut c_char; - pub fn getsubopt( - arg1: *mut *mut c_char, - arg2: *const *mut c_char, - arg3: *mut *mut c_char, - ) -> c_int; - pub fn fcntl(arg1: c_int, arg2: c_int, ...) -> c_int; - pub fn getpid() -> pid_t; - pub fn sleep(arg1: c_uint) -> c_uint; - pub fn usleep(arg1: useconds_t) -> c_int; - - // locale.h - pub fn localeconv() -> *mut lconv; - pub fn setlocale(arg1: c_int, arg2: *const c_char) -> *mut c_char; - pub fn duplocale(arg1: locale_t) -> locale_t; - pub fn freelocale(arg1: locale_t); - pub fn localeconv_l(arg1: locale_t) -> *mut lconv; - pub fn newlocale(arg1: c_int, arg2: *const c_char, arg3: locale_t) -> locale_t; - - // langinfo.h - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - pub fn nl_langinfo_l(item: ::nl_item, locale: locale_t) -> *mut ::c_char; - - // malloc.h - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - - // sys/types.h - pub fn lseek(arg1: c_int, arg2: __off_t, arg3: c_int) -> __off_t; -} - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} - -cfg_if! { - if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else if #[cfg(any(target_arch = "arm"))] { - mod arm; - pub use self::arm::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/switch.rs b/src/rust/vendor/libc-0.2.146/src/switch.rs deleted file mode 100644 index 030ab20d7..000000000 --- a/src/rust/vendor/libc-0.2.146/src/switch.rs +++ /dev/null @@ -1,49 +0,0 @@ -//! Switch C type definitions - -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; -pub type intmax_t = i64; -pub type uintmax_t = u64; - -pub type size_t = usize; -pub type ptrdiff_t = isize; -pub type intptr_t = isize; -pub type uintptr_t = usize; -pub type ssize_t = isize; - -pub type off_t = i64; -pub type c_char = u8; -pub type c_long = i64; -pub type c_ulong = u64; -pub type wchar_t = u32; - -pub const INT_MIN: c_int = -2147483648; -pub const INT_MAX: c_int = 2147483647; - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/aix/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/aix/mod.rs deleted file mode 100644 index 325d7d654..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/aix/mod.rs +++ /dev/null @@ -1,3355 +0,0 @@ -pub type c_char = i8; -pub type caddr_t = *mut ::c_char; -// FIXME: clockid_t must be c_long, but time.rs accepts only i32 -pub type clockid_t = ::c_int; -pub type blkcnt_t = ::c_long; -pub type clock_t = ::c_int; -pub type daddr_t = ::c_long; -pub type dev_t = ::c_ulong; -pub type fpos64_t = ::c_longlong; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type idtype_t = ::c_int; -pub type ino_t = ::c_ulong; -pub type key_t = ::c_int; -pub type mode_t = ::c_uint; -pub type nlink_t = ::c_short; -pub type rlim_t = ::c_ulong; -pub type speed_t = ::c_uint; -pub type tcflag_t = ::c_uint; -pub type time_t = ::c_long; -pub type time64_t = ::int64_t; -pub type timer_t = ::c_long; -pub type wchar_t = ::c_uint; -pub type nfds_t = ::c_int; -pub type projid_t = ::c_int; -pub type id_t = ::c_uint; -pub type blksize64_t = ::c_ulonglong; -pub type blkcnt64_t = ::c_ulonglong; -pub type sctp_assoc_t = ::uint32_t; - -pub type suseconds_t = ::c_int; -pub type useconds_t = ::c_uint; -pub type off_t = ::c_long; -pub type off64_t = ::c_longlong; - -pub type socklen_t = ::c_uint; -pub type sa_family_t = ::c_uchar; -pub type in_port_t = ::c_ushort; -pub type in_addr_t = ::c_uint; - -pub type signal_t = ::c_int; -pub type pthread_t = ::c_uint; -pub type pthread_key_t = ::c_uint; -pub type thread_t = pthread_t; -pub type blksize_t = ::c_long; -pub type nl_item = ::c_int; -pub type mqd_t = ::c_int; -pub type shmatt_t = ::c_ulong; -pub type regoff_t = ::c_long; -pub type rlim64_t = ::c_ulonglong; - -pub type sem_t = ::c_int; -pub type pollset_t = ::c_int; - -pub type pthread_rwlockattr_t = *mut ::c_void; -pub type pthread_condattr_t = *mut ::c_void; -pub type pthread_mutexattr_t = *mut ::c_void; -pub type pthread_attr_t = *mut ::c_void; -pub type pthread_barrierattr_t = *mut ::c_void; -pub type posix_spawn_file_actions_t = *mut ::c_char; -pub type iconv_t = *mut ::c_void; - -e! { - pub enum uio_rw { - UIO_READ = 0, - UIO_WRITE, - UIO_READ_NO_MOVE, - UIO_WRITE_NO_MOVE, - UIO_PWRITE, - } -} - -s! { - pub struct fsid_t { - pub val: [::c_uint; 2], - } - - pub struct fsid64_t { - pub val: [::uint64_t; 2], - } - - pub struct timezone { - pub tz_minuteswest: ::c_int, - pub tz_dsttime: ::c_int, - } - - pub struct ip_mreq { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct dirent { - pub d_offset: ::c_ulong, - pub d_ino: ::ino_t, - pub d_reclen: ::c_ushort, - pub d_namlen: ::c_ushort, - pub d_name: [::c_char; 256] - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS] - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_sysid: ::c_uint, - pub l_pid: ::pid_t, - pub l_vfs: ::c_int, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: socklen_t, - pub msg_flags: ::c_int, - } - - pub struct statvfs64 { - pub f_bsize: ::blksize64_t, - pub f_frsize: ::blksize64_t, - pub f_blocks: ::blkcnt64_t, - pub f_bfree: ::blkcnt64_t, - pub f_bavail: ::blkcnt64_t, - pub f_files: ::blkcnt64_t, - pub f_ffree: ::blkcnt64_t, - pub f_favail: ::blkcnt64_t, - pub f_fsid: fsid64_t, - pub f_basetype: [::c_char; 16], - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub f_fstr: [::c_char; 32], - pub f_filler: [::c_ulong; 16] - } - - pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub left_parenthesis: *mut ::c_char, - pub right_parenthesis: *mut ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, - } - - pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int - } - - pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::c_ulong, - pub ai_canonname: *mut ::c_char, - pub ai_addr: *mut ::sockaddr, - pub ai_next: *mut addrinfo, - pub ai_eflags: ::c_int, - } - - pub struct in_addr { - pub s_addr: in_addr_t - } - - pub struct ip_mreq_source { - pub imr_multiaddr: in_addr, - pub imr_sourceaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct sockaddr { - pub sa_len: ::c_uchar, - pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 120], - } - - pub struct sockaddr_in { - pub sin_len: ::c_uchar, - pub sin_family: sa_family_t, - pub sin_port: in_port_t, - pub sin_addr: in_addr, - pub sin_zero: [::c_char; 8] - } - - pub struct sockaddr_in6 { - pub sin6_len: ::c_uchar, - pub sin6_family: ::c_uchar, - pub sin6_port: ::uint16_t, - pub sin6_flowinfo: ::uint32_t, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: ::uint32_t - } - - pub struct sockaddr_storage { - pub __ss_len: ::c_uchar, - pub ss_family: sa_family_t, - __ss_pad1: [::c_char; 6], - __ss_align: ::int64_t, - __ss_pad2: [::c_char; 1265], - } - - pub struct sockaddr_un { - pub sun_len: ::c_uchar, - pub sun_family: sa_family_t, - pub sun_path: [::c_char; 1023] - } - - pub struct st_timespec { - pub tv_sec: ::time_t, - pub tv_nsec: ::c_int, - } - - pub struct statfs64 { - pub f_version: ::c_int, - pub f_type: ::c_int, - pub f_bsize: blksize64_t, - pub f_blocks: blkcnt64_t, - pub f_bfree: blkcnt64_t, - pub f_bavail: blkcnt64_t, - pub f_files: ::uint64_t, - pub f_ffree: ::uint64_t, - pub f_fsid: fsid64_t, - pub f_vfstype: ::c_int, - pub f_fsize: blksize64_t, - pub f_vfsnumber: ::c_int, - pub f_vfsoff: ::c_int, - pub f_vfslen: ::c_int, - pub f_vfsvers: ::c_int, - pub f_fname: [::c_char; 32], - pub f_fpack: [::c_char; 32], - pub f_name_max: ::c_int, - } - - pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char - } - - pub struct utsname { - pub sysname: [::c_char; 32], - pub nodename: [::c_char; 32], - pub release: [::c_char; 32], - pub version: [::c_char; 32], - pub machine: [::c_char; 32], - } - - pub struct xutsname { - pub nid: ::c_uint, - pub reserved: ::c_int, - pub longnid: ::c_ulonglong, - } - - pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct sigevent { - pub sigev_value: ::sigval, - pub sigev_signo: ::c_int, - pub sigev_notify: ::c_int, - pub sigev_notify_function: extern fn(val: ::sigval), - pub sigev_notify_attributes: *mut pthread_attr_t, - } - - // Should be union with another 'sival_int' - pub struct sigval64 { - pub sival_ptr: ::c_ulonglong, - } - - pub struct sigevent64 { - pub sigev_value: sigval64, - pub sigev_signo: ::c_int, - pub sigev_notify: ::c_int, - pub sigev_notify_function: ::c_ulonglong, - pub sigev_notify_attributes: ::c_ulonglong, - } - - pub struct osigevent { - pub sevt_value: *mut ::c_void, - pub sevt_signo: signal_t, - } - - pub struct poll_ctl { - pub cmd: ::c_short, - pub events: ::c_short, - pub fd: ::c_int, - } - - pub struct sf_parms { - pub header_data: *mut ::c_void, - pub header_length: ::c_uint, - pub file_descriptor: ::c_int, - pub file_size: ::uint64_t, - pub file_offset: ::uint64_t, - pub file_bytes: ::int64_t, - pub trailer_data: *mut ::c_void, - pub trailer_length: ::c_uint, - pub bytes_sent: ::uint64_t, - } - - pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::c_uint, - } - - pub struct sched_param { - pub sched_priority: ::c_int, - pub sched_policy: ::c_int, - pub sched_reserved: [::c_int; 6], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - pub __pad: [::c_int; 4], - } - - pub struct posix_spawnattr_t { - pub posix_attr_flags: ::c_short, - pub posix_attr_pgroup: ::pid_t, - pub posix_attr_sigmask: ::sigset_t, - pub posix_attr_sigdefault: ::sigset_t, - pub posix_attr_schedpolicy: ::c_int, - pub posix_attr_schedparam: sched_param, - } - - pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut c_char, - pub gl_offs: ::size_t, - pub gl_padr: *mut ::c_void, - pub gl_ptx: *mut ::c_void, - } - - pub struct mallinfo { - pub arena: ::c_ulong, - pub ordblks: ::c_int, - pub smblks: ::c_int, - pub hblks: ::c_int, - pub hblkhd: ::c_int, - pub usmblks: ::c_ulong, - pub fsmblks: ::c_ulong, - pub uordblks: ::c_ulong, - pub fordblks: ::c_ulong, - pub keepcost: ::c_int, - } - - pub struct utmp_exit_status { - pub e_termination: ::c_short, - pub e_exit: ::c_short, - } - - pub struct utmp { - pub ut_user: [::c_char; 256], - pub ut_id: [::c_char; 14], - pub ut_line: [::c_char; 64], - pub ut_pid: ::pid_t, - pub ut_type: ::c_short, - pub ut_time: time64_t, - pub ut_exit: utmp_exit_status, - pub ut_host: [::c_char; 256], - pub __dbl_word_pad: ::c_int, - pub __reservedA: [::c_int; 2], - pub __reservedV: [::c_int; 6], - } - - pub struct regmatch_t { - pub rm_so: regoff_t, - pub rm_eo: regoff_t, - } - - pub struct regex_t { - pub re_nsub: ::size_t, - pub re_comp: *mut ::c_void, - pub re_cflags: ::c_int, - pub re_erroff: ::size_t, - pub re_len: ::size_t, - pub re_ucoll: [::wchar_t; 2], - pub re_lsub: [*mut ::c_void; 24], - pub re_esub: [*mut ::c_void; 24], - pub re_map: *mut ::c_uchar, - pub __maxsub: ::c_int, - pub __unused: [*mut ::c_void; 34], - } - - pub struct rlimit64 { - pub rlim_cur: rlim64_t, - pub rlim_max: rlim64_t, - } - - pub struct shmid_ds { - pub shm_perm: ipc_perm, - pub shm_segsz: ::size_t, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - pub shm_nattch: shmatt_t, - pub shm_cnattch: shmatt_t, - pub shm_atime: time_t, - pub shm_dtime: time_t, - pub shm_ctime: time_t, - pub shm_handle: ::uint32_t, - pub shm_extshm: ::c_int, - pub shm_pagesize: ::int64_t, - pub shm_lba: ::uint64_t, - pub shm_reserved: ::int64_t, - pub shm_reserved1: ::int64_t, - } - - pub struct stat64 { - pub st_dev: dev_t, - pub st_ino: ino_t, - pub st_mode: mode_t, - pub st_nlink: nlink_t, - pub st_flag: ::c_ushort, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: dev_t, - pub st_ssize: ::c_int, - pub st_atim: st_timespec, - pub st_mtim: st_timespec, - pub st_ctim: st_timespec, - pub st_blksize: blksize_t, - pub st_blocks: blkcnt_t, - pub st_vfstype: ::c_int, - pub st_vfs: ::c_uint, - pub st_type: ::c_uint, - pub st_gen: ::c_uint, - pub st_reserved: [::c_uint; 10], - pub st_size: off64_t, - } - - pub struct mntent { - pub mnt_fsname: *mut ::c_char, - pub mnt_dir: *mut ::c_char, - pub mnt_type: *mut ::c_char, - pub mnt_opts: *mut ::c_char, - pub mnt_freq: ::c_int, - pub mnt_passno: ::c_int, - } - - pub struct ipc_perm { - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: mode_t, - pub seq: ::c_ushort, - pub __reserved: ::c_ushort, - pub key: key_t, - } - - pub struct entry { - pub key: *mut ::c_char, - pub data: *mut ::c_void, - } - - pub struct mq_attr { - pub mq_flags: ::c_long, - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_curmsgs: ::c_long, - } - - pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, - } - - pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, - } - - pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, - } -} - -s_no_extra_traits! { - #[cfg(libc_union)] - pub union __sigaction_sa_union { - pub __su_handler: extern fn(c: ::c_int), - pub __su_sigaction: extern fn(c: ::c_int, info: *mut siginfo_t, ptr: *mut ::c_void), - } - - pub struct sigaction { - #[cfg(libc_union)] - pub sa_union: __sigaction_sa_union, - pub sa_mask: sigset_t, - pub sa_flags: ::c_int, - } - - #[cfg(libc_union)] - pub union __poll_ctl_ext_u { - pub addr: *mut ::c_void, - pub data32: u32, - pub data: u64, - } - - pub struct poll_ctl_ext { - pub version: u8, - pub command: u8, - pub events: ::c_short, - pub fd: ::c_int, - #[cfg(libc_union)] - pub u: __poll_ctl_ext_u, - pub reversed64: [u64; 6], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - #[cfg(libc_union)] - impl PartialEq for __sigaction_sa_union { - fn eq(&self, other: &__sigaction_sa_union) -> bool { - unsafe { - self.__su_handler == other.__su_handler - && self.__su_sigaction == other.__su_sigaction - } - } - } - #[cfg(libc_union)] - impl Eq for __sigaction_sa_union {} - #[cfg(libc_union)] - impl ::fmt::Debug for __sigaction_sa_union { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("__sigaction_sa_union") - .field("__su_handler", unsafe { &self.__su_handler }) - .field("__su_sigaction", unsafe { &self.__su_sigaction }) - .finish() - } - } - #[cfg(libc_union)] - impl ::hash::Hash for __sigaction_sa_union { - fn hash(&self, state: &mut H) { - unsafe { - self.__su_handler.hash(state); - self.__su_sigaction.hash(state); - } - } - } - - impl PartialEq for sigaction { - fn eq(&self, other: &sigaction) -> bool { - #[cfg(libc_union)] - let union_eq = self.sa_union == other.sa_union; - #[cfg(not(libc_union))] - let union_eq = true; - self.sa_mask == other.sa_mask - && self.sa_flags == other.sa_flags - && union_eq - } - } - impl Eq for sigaction {} - impl ::fmt::Debug for sigaction { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let mut struct_formatter = f.debug_struct("sigaction"); - #[cfg(libc_union)] - struct_formatter.field("sa_union", &self.sa_union); - struct_formatter.field("sa_mask", &self.sa_mask); - struct_formatter.field("sa_flags", &self.sa_flags); - struct_formatter.finish() - } - } - impl ::hash::Hash for sigaction { - fn hash(&self, state: &mut H) { - #[cfg(libc_union)] - self.sa_union.hash(state); - self.sa_mask.hash(state); - self.sa_flags.hash(state); - } - } - - #[cfg(libc_union)] - impl PartialEq for __poll_ctl_ext_u { - fn eq(&self, other: &__poll_ctl_ext_u) -> bool { - unsafe { - self.addr == other.addr - && self.data32 == other.data32 - && self.data == other.data - } - } - } - #[cfg(libc_union)] - impl Eq for __poll_ctl_ext_u {} - #[cfg(libc_union)] - impl ::fmt::Debug for __poll_ctl_ext_u { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("__poll_ctl_ext_u") - .field("addr", unsafe { &self.addr }) - .field("data32", unsafe { &self.data32 }) - .field("data", unsafe { &self.data }) - .finish() - } - } - #[cfg(libc_union)] - impl ::hash::Hash for __poll_ctl_ext_u { - fn hash(&self, state: &mut H) { - unsafe { - self.addr.hash(state); - self.data32.hash(state); - self.data.hash(state); - } - } - } - - impl PartialEq for poll_ctl_ext { - fn eq(&self, other: &poll_ctl_ext) -> bool { - #[cfg(libc_union)] - let union_eq = self.u == other.u; - #[cfg(not(libc_union))] - let union_eq = true; - self.version == other.version - && self.command == other.command - && self.events == other.events - && self.fd == other.fd - && self.reversed64 == other.reversed64 - && union_eq - } - } - impl Eq for poll_ctl_ext {} - impl ::fmt::Debug for poll_ctl_ext { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let mut struct_formatter = f.debug_struct("poll_ctl_ext"); - struct_formatter.field("version", &self.version); - struct_formatter.field("command", &self.command); - struct_formatter.field("events", &self.events); - struct_formatter.field("fd", &self.fd); - #[cfg(libc_union)] - struct_formatter.field("u", &self.u); - struct_formatter.field("reversed64", &self.reversed64); - struct_formatter.finish() - } - } - impl ::hash::Hash for poll_ctl_ext { - fn hash(&self, state: &mut H) { - self.version.hash(state); - self.command.hash(state); - self.events.hash(state); - self.fd.hash(state); - #[cfg(libc_union)] - self.u.hash(state); - self.reversed64.hash(state); - } - } - } -} - -// dlfcn.h -pub const RTLD_LAZY: ::c_int = 0x4; -pub const RTLD_NOW: ::c_int = 0x2; -pub const RTLD_GLOBAL: ::c_int = 0x10000; -pub const RTLD_LOCAL: ::c_int = 0x80000; -pub const RTLD_DEFAULT: *mut ::c_void = -1isize as *mut ::c_void; -pub const RTLD_MYSELF: *mut ::c_void = -2isize as *mut ::c_void; -pub const RTLD_NEXT: *mut ::c_void = -3isize as *mut ::c_void; - -// fcntl.h -pub const O_RDONLY: ::c_int = 0x0; -pub const O_WRONLY: ::c_int = 0x1; -pub const O_RDWR: ::c_int = 0x2; -pub const O_NDELAY: ::c_int = 0x8000; -pub const O_APPEND: ::c_int = 0x8; -pub const O_DSYNC: ::c_int = 0x400000; -pub const O_CREAT: ::c_int = 0x100; -pub const O_EXCL: ::c_int = 0x400; -pub const O_NOCTTY: ::c_int = 0x800; -pub const O_TRUNC: ::c_int = 0x200; -pub const O_NOFOLLOW: ::c_int = 0x1000000; -pub const O_DIRECTORY: ::c_int = 0x80000; -pub const O_SEARCH: ::c_int = 0x20; -pub const O_EXEC: ::c_int = 0x20; -pub const O_CLOEXEC: ::c_int = 0x800000; -pub const O_ACCMODE: ::c_int = O_RDONLY | O_WRONLY | O_RDWR; -pub const O_DIRECT: ::c_int = 0x8000000; -pub const O_TTY_INIT: ::c_int = 0; -pub const O_RSYNC: ::c_int = 0x200000; -pub const O_LARGEFILE: ::c_int = 0x4000000; -pub const F_CLOSEM: ::c_int = 10; -pub const F_DUPFD_CLOEXEC: ::c_int = 16; -pub const F_GETLK64: ::c_int = 11; -pub const F_SETLK64: ::c_int = 12; -pub const F_SETLKW64: ::c_int = 13; -pub const F_DUP2FD: ::c_int = 14; -pub const F_TSTLK: ::c_int = 15; -pub const F_GETLK: ::c_int = F_GETLK64; -pub const F_SETLK: ::c_int = F_SETLK64; -pub const F_SETLKW: ::c_int = F_SETLKW64; -pub const F_GETOWN: ::c_int = 8; -pub const F_SETOWN: ::c_int = 9; -pub const AT_FDCWD: ::c_int = -2; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 1; -pub const AT_SYMLINK_FOLLOW: ::c_int = 2; -pub const AT_REMOVEDIR: ::c_int = 1; -pub const AT_EACCESS: ::c_int = 1; -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; -pub const O_SYNC: ::c_int = 16; -pub const O_NONBLOCK: ::c_int = 4; -pub const FASYNC: ::c_int = 0x20000; -pub const POSIX_FADV_NORMAL: ::c_int = 1; -pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_FADV_RANDOM: ::c_int = 3; -pub const POSIX_FADV_WILLNEED: ::c_int = 4; -pub const POSIX_FADV_DONTNEED: ::c_int = 5; -pub const POSIX_FADV_NOREUSE: ::c_int = 6; - -// glob.h -pub const GLOB_APPEND: ::c_int = 0x1; -pub const GLOB_DOOFFS: ::c_int = 0x2; -pub const GLOB_ERR: ::c_int = 0x4; -pub const GLOB_MARK: ::c_int = 0x8; -pub const GLOB_NOCHECK: ::c_int = 0x10; -pub const GLOB_NOSORT: ::c_int = 0x20; -pub const GLOB_NOESCAPE: ::c_int = 0x80; -pub const GLOB_NOSPACE: ::c_int = 0x2000; -pub const GLOB_ABORTED: ::c_int = 0x1000; -pub const GLOB_NOMATCH: ::c_int = 0x4000; -pub const GLOB_NOSYS: ::c_int = 0x8000; - -// langinfo.h -pub const DAY_1: ::nl_item = 13; -pub const DAY_2: ::nl_item = 14; -pub const DAY_3: ::nl_item = 15; -pub const DAY_4: ::nl_item = 16; -pub const DAY_5: ::nl_item = 17; -pub const DAY_6: ::nl_item = 18; -pub const DAY_7: ::nl_item = 19; -pub const ABDAY_1: ::nl_item = 6; -pub const ABDAY_2: ::nl_item = 7; -pub const ABDAY_3: ::nl_item = 8; -pub const ABDAY_4: ::nl_item = 9; -pub const ABDAY_5: ::nl_item = 10; -pub const ABDAY_6: ::nl_item = 11; -pub const ABDAY_7: ::nl_item = 12; -pub const MON_1: ::nl_item = 32; -pub const MON_2: ::nl_item = 33; -pub const MON_3: ::nl_item = 34; -pub const MON_4: ::nl_item = 35; -pub const MON_5: ::nl_item = 36; -pub const MON_6: ::nl_item = 37; -pub const MON_7: ::nl_item = 38; -pub const MON_8: ::nl_item = 39; -pub const MON_9: ::nl_item = 40; -pub const MON_10: ::nl_item = 41; -pub const MON_11: ::nl_item = 42; -pub const MON_12: ::nl_item = 43; -pub const ABMON_1: ::nl_item = 20; -pub const ABMON_2: ::nl_item = 21; -pub const ABMON_3: ::nl_item = 22; -pub const ABMON_4: ::nl_item = 23; -pub const ABMON_5: ::nl_item = 24; -pub const ABMON_6: ::nl_item = 25; -pub const ABMON_7: ::nl_item = 26; -pub const ABMON_8: ::nl_item = 27; -pub const ABMON_9: ::nl_item = 28; -pub const ABMON_10: ::nl_item = 29; -pub const ABMON_11: ::nl_item = 30; -pub const ABMON_12: ::nl_item = 31; -pub const RADIXCHAR: ::nl_item = 44; -pub const THOUSEP: ::nl_item = 45; -pub const YESSTR: ::nl_item = 46; -pub const NOSTR: ::nl_item = 47; -pub const CRNCYSTR: ::nl_item = 48; -pub const D_T_FMT: ::nl_item = 1; -pub const D_FMT: ::nl_item = 2; -pub const T_FMT: ::nl_item = 3; -pub const AM_STR: ::nl_item = 4; -pub const PM_STR: ::nl_item = 5; -pub const CODESET: ::nl_item = 49; -pub const T_FMT_AMPM: ::nl_item = 55; -pub const ERA: ::nl_item = 56; -pub const ERA_D_FMT: ::nl_item = 57; -pub const ERA_D_T_FMT: ::nl_item = 58; -pub const ERA_T_FMT: ::nl_item = 59; -pub const ALT_DIGITS: ::nl_item = 60; -pub const YESEXPR: ::nl_item = 61; -pub const NOEXPR: ::nl_item = 62; - -// locale.h -pub const LC_GLOBAL_LOCALE: ::locale_t = -1isize as ::locale_t; -pub const LC_CTYPE: ::c_int = 1; -pub const LC_NUMERIC: ::c_int = 3; -pub const LC_TIME: ::c_int = 4; -pub const LC_COLLATE: ::c_int = 0; -pub const LC_MONETARY: ::c_int = 2; -pub const LC_MESSAGES: ::c_int = 4; -pub const LC_ALL: ::c_int = -1; -pub const LC_CTYPE_MASK: ::c_int = 2; -pub const LC_NUMERIC_MASK: ::c_int = 16; -pub const LC_TIME_MASK: ::c_int = 32; -pub const LC_COLLATE_MASK: ::c_int = 1; -pub const LC_MONETARY_MASK: ::c_int = 8; -pub const LC_MESSAGES_MASK: ::c_int = 4; -pub const LC_ALL_MASK: ::c_int = LC_CTYPE_MASK - | LC_NUMERIC_MASK - | LC_TIME_MASK - | LC_COLLATE_MASK - | LC_MONETARY_MASK - | LC_MESSAGES_MASK; - -// netdb.h -pub const NI_MAXHOST: ::socklen_t = 1025; -pub const NI_MAXSERV: ::socklen_t = 32; -pub const NI_NOFQDN: ::socklen_t = 0x1; -pub const NI_NUMERICHOST: ::socklen_t = 0x2; -pub const NI_NAMEREQD: ::socklen_t = 0x4; -pub const NI_NUMERICSERV: ::socklen_t = 0x8; -pub const NI_DGRAM: ::socklen_t = 0x10; -pub const NI_NUMERICSCOPE: ::socklen_t = 0x40; -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 13; -pub const AI_CANONNAME: ::c_int = 0x01; -pub const AI_PASSIVE: ::c_int = 0x02; -pub const AI_NUMERICHOST: ::c_int = 0x04; -pub const AI_ADDRCONFIG: ::c_int = 0x08; -pub const AI_V4MAPPED: ::c_int = 0x10; -pub const AI_ALL: ::c_int = 0x20; -pub const AI_NUMERICSERV: ::c_int = 0x40; -pub const AI_EXTFLAGS: ::c_int = 0x80; -pub const AI_DEFAULT: ::c_int = AI_V4MAPPED | AI_ADDRCONFIG; -pub const IPV6_ADDRFORM: ::c_int = 22; -pub const IPV6_ADDR_PREFERENCES: ::c_int = 74; -pub const IPV6_CHECKSUM: ::c_int = 39; -pub const IPV6_DONTFRAG: ::c_int = 45; -pub const IPV6_DSTOPTS: ::c_int = 54; -pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 16777215; -pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 251658240; -pub const IPV6_HOPLIMIT: ::c_int = 40; -pub const IPV6_HOPOPTS: ::c_int = 52; -pub const IPV6_NEXTHOP: ::c_int = 48; -pub const IPV6_PATHMTU: ::c_int = 46; -pub const IPV6_PKTINFO: ::c_int = 33; -pub const IPV6_PREFER_SRC_CGA: ::c_int = 16; -pub const IPV6_PREFER_SRC_COA: ::c_int = 2; -pub const IPV6_PREFER_SRC_HOME: ::c_int = 1; -pub const IPV6_PREFER_SRC_NONCGA: ::c_int = 32; -pub const IPV6_PREFER_SRC_PUBLIC: ::c_int = 4; -pub const IPV6_PREFER_SRC_TMP: ::c_int = 8; -pub const IPV6_RECVDSTOPTS: ::c_int = 56; -pub const IPV6_RECVHOPLIMIT: ::c_int = 41; -pub const IPV6_RECVHOPOPTS: ::c_int = 53; -pub const IPV6_RECVPATHMTU: ::c_int = 47; -pub const IPV6_RECVRTHDR: ::c_int = 51; -pub const IPV6_RECVTCLASS: ::c_int = 42; -pub const IPV6_RTHDR: ::c_int = 50; -pub const IPV6_RTHDRDSTOPTS: ::c_int = 55; -pub const IPV6_TCLASS: ::c_int = 43; - -// net/bpf.h -pub const DLT_NULL: ::c_int = 0x18; -pub const DLT_EN10MB: ::c_int = 0x6; -pub const DLT_EN3MB: ::c_int = 0x1a; -pub const DLT_AX25: ::c_int = 0x5; -pub const DLT_PRONET: ::c_int = 0xd; -pub const DLT_IEEE802: ::c_int = 0x7; -pub const DLT_ARCNET: ::c_int = 0x23; -pub const DLT_SLIP: ::c_int = 0x1c; -pub const DLT_PPP: ::c_int = 0x17; -pub const DLT_FDDI: ::c_int = 0xf; -pub const DLT_ATM: ::c_int = 0x25; -pub const DLT_IPOIB: ::c_int = 0xc7; -pub const BIOCSETF: ::c_ulong = 0x80104267; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; -pub const BIOCGBLEN: ::c_int = 0x40044266; -pub const BIOCSBLEN: ::c_int = 0xc0044266; -pub const BIOCFLUSH: ::c_int = 0x20004268; -pub const BIOCPROMISC: ::c_int = 0x20004269; -pub const BIOCGDLT: ::c_int = 0x4004426a; -pub const BIOCSRTIMEOUT: ::c_int = 0x8010426d; -pub const BIOCGSTATS: ::c_int = 0x4008426f; -pub const BIOCIMMEDIATE: ::c_int = 0x80044270; -pub const BIOCVERSION: ::c_int = 0x40044271; -pub const BIOCSDEVNO: ::c_int = 0x20004272; -pub const BIOCGETIF: ::c_ulong = 0x4020426b; -pub const BIOCSETIF: ::c_ulong = 0xffffffff8020426c; -pub const BPF_ABS: ::c_int = 32; -pub const BPF_ADD: ::c_int = 0; -pub const BPF_ALIGNMENT: ::c_ulong = 4; -pub const BPF_ALU: ::c_int = 4; -pub const BPF_AND: ::c_int = 80; -pub const BPF_B: ::c_int = 16; -pub const BPF_DIV: ::c_int = 48; -pub const BPF_H: ::c_int = 8; -pub const BPF_IMM: ::c_int = 0; -pub const BPF_IND: ::c_int = 64; -pub const BPF_JA: ::c_int = 0; -pub const BPF_JEQ: ::c_int = 16; -pub const BPF_JGE: ::c_int = 48; -pub const BPF_JGT: ::c_int = 32; -pub const BPF_JMP: ::c_int = 5; -pub const BPF_JSET: ::c_int = 64; -pub const BPF_K: ::c_int = 0; -pub const BPF_LD: ::c_int = 0; -pub const BPF_LDX: ::c_int = 1; -pub const BPF_LEN: ::c_int = 128; -pub const BPF_LSH: ::c_int = 96; -pub const BPF_MAXINSNS: ::c_int = 512; -pub const BPF_MEM: ::c_int = 96; -pub const BPF_MEMWORDS: ::c_int = 16; -pub const BPF_MISC: ::c_int = 7; -pub const BPF_MSH: ::c_int = 160; -pub const BPF_MUL: ::c_int = 32; -pub const BPF_NEG: ::c_int = 128; -pub const BPF_OR: ::c_int = 64; -pub const BPF_RET: ::c_int = 6; -pub const BPF_RSH: ::c_int = 112; -pub const BPF_ST: ::c_int = 2; -pub const BPF_STX: ::c_int = 3; -pub const BPF_SUB: ::c_int = 16; -pub const BPF_W: ::c_int = 0; -pub const BPF_X: ::c_int = 8; - -// net/if.h -pub const IFNET_SLOWHZ: ::c_int = 1; -pub const IFQ_MAXLEN: ::c_int = 50; -pub const IF_NAMESIZE: ::c_int = 16; -pub const IFNAMSIZ: ::c_int = 16; -pub const IFF_UP: ::c_int = 0x1; -pub const IFF_BROADCAST: ::c_int = 0x2; -pub const IFF_DEBUG: ::c_int = 0x4; -pub const IFF_LOOPBACK: ::c_int = 0x8; -pub const IFF_POINTOPOINT: ::c_int = 0x10; -pub const IFF_NOTRAILERS: ::c_int = 0x20; -pub const IFF_RUNNING: ::c_int = 0x40; -pub const IFF_NOARP: ::c_int = 0x80; -pub const IFF_PROMISC: ::c_int = 0x100; -pub const IFF_ALLMULTI: ::c_int = 0x200; -pub const IFF_MULTICAST: ::c_int = 0x80000; -pub const IFF_LINK0: ::c_int = 0x100000; -pub const IFF_LINK1: ::c_int = 0x200000; -pub const IFF_LINK2: ::c_int = 0x400000; -pub const IFF_OACTIVE: ::c_int = 0x400; -pub const IFF_SIMPLEX: ::c_int = 0x800; - -// net/if_arp.h -pub const ARPHRD_ETHER: ::c_int = 1; -pub const ARPHRD_802_5: ::c_int = 6; -pub const ARPHRD_802_3: ::c_int = 6; -pub const ARPHRD_FDDI: ::c_int = 1; -pub const ARPOP_REQUEST: ::c_int = 1; -pub const ARPOP_REPLY: ::c_int = 2; - -// net/route.h -pub const RTM_ADD: ::c_int = 0x1; -pub const RTM_DELETE: ::c_int = 0x2; -pub const RTM_CHANGE: ::c_int = 0x3; -pub const RTM_GET: ::c_int = 0x4; -pub const RTM_LOSING: ::c_int = 0x5; -pub const RTM_REDIRECT: ::c_int = 0x6; -pub const RTM_MISS: ::c_int = 0x7; -pub const RTM_LOCK: ::c_int = 0x8; -pub const RTM_OLDADD: ::c_int = 0x9; -pub const RTM_OLDDEL: ::c_int = 0xa; -pub const RTM_RESOLVE: ::c_int = 0xb; -pub const RTM_NEWADDR: ::c_int = 0xc; -pub const RTM_DELADDR: ::c_int = 0xd; -pub const RTM_IFINFO: ::c_int = 0xe; -pub const RTM_EXPIRE: ::c_int = 0xf; -pub const RTM_RTLOST: ::c_int = 0x10; -pub const RTM_GETNEXT: ::c_int = 0x11; -pub const RTM_SAMEADDR: ::c_int = 0x12; -pub const RTM_SET: ::c_int = 0x13; -pub const RTV_MTU: ::c_int = 0x1; -pub const RTV_HOPCOUNT: ::c_int = 0x2; -pub const RTV_EXPIRE: ::c_int = 0x4; -pub const RTV_RPIPE: ::c_int = 0x8; -pub const RTV_SPIPE: ::c_int = 0x10; -pub const RTV_SSTHRESH: ::c_int = 0x20; -pub const RTV_RTT: ::c_int = 0x40; -pub const RTV_RTTVAR: ::c_int = 0x80; -pub const RTA_DST: ::c_int = 0x1; -pub const RTA_GATEWAY: ::c_int = 0x2; -pub const RTA_NETMASK: ::c_int = 0x4; -pub const RTA_GENMASK: ::c_int = 0x8; -pub const RTA_IFP: ::c_int = 0x10; -pub const RTA_IFA: ::c_int = 0x20; -pub const RTA_AUTHOR: ::c_int = 0x40; -pub const RTA_BRD: ::c_int = 0x80; -pub const RTA_DOWNSTREAM: ::c_int = 0x100; -pub const RTAX_DST: ::c_int = 0; -pub const RTAX_GATEWAY: ::c_int = 1; -pub const RTAX_NETMASK: ::c_int = 2; -pub const RTAX_GENMASK: ::c_int = 3; -pub const RTAX_IFP: ::c_int = 4; -pub const RTAX_IFA: ::c_int = 5; -pub const RTAX_AUTHOR: ::c_int = 6; -pub const RTAX_BRD: ::c_int = 7; -pub const RTAX_MAX: ::c_int = 8; -pub const RTF_UP: ::c_int = 0x1; -pub const RTF_GATEWAY: ::c_int = 0x2; -pub const RTF_HOST: ::c_int = 0x4; -pub const RTF_REJECT: ::c_int = 0x8; -pub const RTF_DYNAMIC: ::c_int = 0x10; -pub const RTF_MODIFIED: ::c_int = 0x20; -pub const RTF_DONE: ::c_int = 0x40; -pub const RTF_MASK: ::c_int = 0x80; -pub const RTF_CLONING: ::c_int = 0x100; -pub const RTF_XRESOLVE: ::c_int = 0x200; -pub const RTF_LLINFO: ::c_int = 0x400; -pub const RTF_STATIC: ::c_int = 0x800; -pub const RTF_BLACKHOLE: ::c_int = 0x1000; -pub const RTF_BUL: ::c_int = 0x2000; -pub const RTF_PROTO2: ::c_int = 0x4000; -pub const RTF_PROTO1: ::c_int = 0x8000; -pub const RTF_CLONE: ::c_int = 0x10000; -pub const RTF_CLONED: ::c_int = 0x20000; -pub const RTF_PROTO3: ::c_int = 0x40000; -pub const RTF_BCE: ::c_int = 0x80000; -pub const RTF_PINNED: ::c_int = 0x100000; -pub const RTF_LOCAL: ::c_int = 0x200000; -pub const RTF_BROADCAST: ::c_int = 0x400000; -pub const RTF_MULTICAST: ::c_int = 0x800000; -pub const RTF_ACTIVE_DGD: ::c_int = 0x1000000; -pub const RTF_STOPSRCH: ::c_int = 0x2000000; -pub const RTF_FREE_IN_PROG: ::c_int = 0x4000000; -pub const RTF_PERMANENT6: ::c_int = 0x8000000; -pub const RTF_UNREACHABLE: ::c_int = 0x10000000; -pub const RTF_CACHED: ::c_int = 0x20000000; -pub const RTF_SMALLMTU: ::c_int = 0x40000; - -// netinet/in.h -pub const IPPROTO_HOPOPTS: ::c_int = 0; -pub const IPPROTO_IGMP: ::c_int = 2; -pub const IPPROTO_GGP: ::c_int = 3; -pub const IPPROTO_IPIP: ::c_int = 4; -pub const IPPROTO_EGP: ::c_int = 8; -pub const IPPROTO_PUP: ::c_int = 12; -pub const IPPROTO_IDP: ::c_int = 22; -pub const IPPROTO_TP: ::c_int = 29; -pub const IPPROTO_ROUTING: ::c_int = 43; -pub const IPPROTO_FRAGMENT: ::c_int = 44; -pub const IPPROTO_QOS: ::c_int = 45; -pub const IPPROTO_RSVP: ::c_int = 46; -pub const IPPROTO_GRE: ::c_int = 47; -pub const IPPROTO_ESP: ::c_int = 50; -pub const IPPROTO_AH: ::c_int = 51; -pub const IPPROTO_NONE: ::c_int = 59; -pub const IPPROTO_DSTOPTS: ::c_int = 60; -pub const IPPROTO_LOCAL: ::c_int = 63; -pub const IPPROTO_EON: ::c_int = 80; -pub const IPPROTO_BIP: ::c_int = 0x53; -pub const IPPROTO_SCTP: ::c_int = 132; -pub const IPPROTO_MH: ::c_int = 135; -pub const IPPROTO_GIF: ::c_int = 140; -pub const IPPROTO_RAW: ::c_int = 255; -pub const IPPROTO_MAX: ::c_int = 256; -pub const IP_OPTIONS: ::c_int = 1; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_TOS: ::c_int = 3; -pub const IP_TTL: ::c_int = 4; -pub const IP_UNICAST_HOPS: ::c_int = 4; -pub const IP_RECVOPTS: ::c_int = 5; -pub const IP_RECVRETOPTS: ::c_int = 6; -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_RETOPTS: ::c_int = 8; -pub const IP_MULTICAST_IF: ::c_int = 9; -pub const IP_MULTICAST_TTL: ::c_int = 10; -pub const IP_MULTICAST_HOPS: ::c_int = 10; -pub const IP_MULTICAST_LOOP: ::c_int = 11; -pub const IP_ADD_MEMBERSHIP: ::c_int = 12; -pub const IP_DROP_MEMBERSHIP: ::c_int = 13; -pub const IP_RECVMACHDR: ::c_int = 14; -pub const IP_RECVIFINFO: ::c_int = 15; -pub const IP_BROADCAST_IF: ::c_int = 16; -pub const IP_DHCPMODE: ::c_int = 17; -pub const IP_RECVIF: ::c_int = 20; -pub const IP_ADDRFORM: ::c_int = 22; -pub const IP_DONTFRAG: ::c_int = 25; -pub const IP_FINDPMTU: ::c_int = 26; -pub const IP_PMTUAGE: ::c_int = 27; -pub const IP_RECVINTERFACE: ::c_int = 32; -pub const IP_RECVTTL: ::c_int = 34; -pub const IP_BLOCK_SOURCE: ::c_int = 58; -pub const IP_UNBLOCK_SOURCE: ::c_int = 59; -pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 60; -pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 61; -pub const IP_DEFAULT_MULTICAST_TTL: ::c_int = 1; -pub const IP_DEFAULT_MULTICAST_LOOP: ::c_int = 1; -pub const IP_INC_MEMBERSHIPS: ::c_int = 20; -pub const IP_INIT_MEMBERSHIP: ::c_int = 20; -pub const IPV6_UNICAST_HOPS: ::c_int = IP_TTL; -pub const IPV6_MULTICAST_IF: ::c_int = IP_MULTICAST_IF; -pub const IPV6_MULTICAST_HOPS: ::c_int = IP_MULTICAST_TTL; -pub const IPV6_MULTICAST_LOOP: ::c_int = IP_MULTICAST_LOOP; -pub const IPV6_RECVPKTINFO: ::c_int = 35; -pub const IPV6_V6ONLY: ::c_int = 37; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = IP_ADD_MEMBERSHIP; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = IP_DROP_MEMBERSHIP; -pub const IPV6_JOIN_GROUP: ::c_int = IP_ADD_MEMBERSHIP; -pub const IPV6_LEAVE_GROUP: ::c_int = IP_DROP_MEMBERSHIP; -pub const MCAST_BLOCK_SOURCE: ::c_int = 64; -pub const MCAST_EXCLUDE: ::c_int = 2; -pub const MCAST_INCLUDE: ::c_int = 1; -pub const MCAST_JOIN_GROUP: ::c_int = 62; -pub const MCAST_JOIN_SOURCE_GROUP: ::c_int = 66; -pub const MCAST_LEAVE_GROUP: ::c_int = 63; -pub const MCAST_LEAVE_SOURCE_GROUP: ::c_int = 67; -pub const MCAST_UNBLOCK_SOURCE: ::c_int = 65; - -// netinet/ip.h -pub const MAXTTL: ::c_int = 255; -pub const IPDEFTTL: ::c_int = 64; -pub const IPOPT_CONTROL: ::c_int = 0; -pub const IPOPT_EOL: ::c_int = 0; -pub const IPOPT_LSRR: ::c_int = 131; -pub const IPOPT_MINOFF: ::c_int = 4; -pub const IPOPT_NOP: ::c_int = 1; -pub const IPOPT_OFFSET: ::c_int = 2; -pub const IPOPT_OLEN: ::c_int = 1; -pub const IPOPT_OPTVAL: ::c_int = 0; -pub const IPOPT_RESERVED1: ::c_int = 0x20; -pub const IPOPT_RESERVED2: ::c_int = 0x60; -pub const IPOPT_RR: ::c_int = 7; -pub const IPOPT_SSRR: ::c_int = 137; -pub const IPOPT_TS: ::c_int = 68; -pub const IPOPT_TS_PRESPEC: ::c_int = 3; -pub const IPOPT_TS_TSANDADDR: ::c_int = 1; -pub const IPOPT_TS_TSONLY: ::c_int = 0; -pub const IPTOS_LOWDELAY: ::c_int = 16; -pub const IPTOS_PREC_CRITIC_ECP: ::c_int = 160; -pub const IPTOS_PREC_FLASH: ::c_int = 96; -pub const IPTOS_PREC_FLASHOVERRIDE: ::c_int = 128; -pub const IPTOS_PREC_IMMEDIATE: ::c_int = 64; -pub const IPTOS_PREC_INTERNETCONTROL: ::c_int = 192; -pub const IPTOS_PREC_NETCONTROL: ::c_int = 224; -pub const IPTOS_PREC_PRIORITY: ::c_int = 32; -pub const IPTOS_PREC_ROUTINE: ::c_int = 16; -pub const IPTOS_RELIABILITY: ::c_int = 4; -pub const IPTOS_THROUGHPUT: ::c_int = 8; -pub const IPVERSION: ::c_int = 4; - -// netinet/tcp.h -pub const TCP_NODELAY: ::c_int = 0x1; -pub const TCP_MAXSEG: ::c_int = 0x2; -pub const TCP_RFC1323: ::c_int = 0x4; -pub const TCP_KEEPALIVE: ::c_int = 0x8; -pub const TCP_KEEPIDLE: ::c_int = 0x11; -pub const TCP_KEEPINTVL: ::c_int = 0x12; -pub const TCP_KEEPCNT: ::c_int = 0x13; -pub const TCP_NODELAYACK: ::c_int = 0x14; - -// pthread.h -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 0; -pub const PTHREAD_PROCESS_PRIVATE: ::c_ushort = 1; -pub const PTHREAD_STACK_MIN: ::size_t = PAGESIZE as ::size_t * 4; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 5; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 3; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 4; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; -pub const PTHREAD_MUTEX_ROBUST: ::c_int = 1; -pub const PTHREAD_MUTEX_STALLED: ::c_int = 0; -pub const PTHREAD_PRIO_INHERIT: ::c_int = 3; -pub const PTHREAD_PRIO_NONE: ::c_int = 1; -pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; - -// regex.h -pub const REG_EXTENDED: ::c_int = 1; -pub const REG_ICASE: ::c_int = 2; -pub const REG_NEWLINE: ::c_int = 4; -pub const REG_NOSUB: ::c_int = 8; -pub const REG_NOTBOL: ::c_int = 0x100; -pub const REG_NOTEOL: ::c_int = 0x200; -pub const REG_NOMATCH: ::c_int = 1; -pub const REG_BADPAT: ::c_int = 2; -pub const REG_ECOLLATE: ::c_int = 3; -pub const REG_ECTYPE: ::c_int = 4; -pub const REG_EESCAPE: ::c_int = 5; -pub const REG_ESUBREG: ::c_int = 6; -pub const REG_EBRACK: ::c_int = 7; -pub const REG_EPAREN: ::c_int = 8; -pub const REG_EBRACE: ::c_int = 9; -pub const REG_BADBR: ::c_int = 10; -pub const REG_ERANGE: ::c_int = 11; -pub const REG_ESPACE: ::c_int = 12; -pub const REG_BADRPT: ::c_int = 13; -pub const REG_ECHAR: ::c_int = 14; -pub const REG_EBOL: ::c_int = 15; -pub const REG_EEOL: ::c_int = 16; -pub const REG_ENOSYS: ::c_int = 17; - -// rpcsvc/mount.h -pub const NFSMNT_ACDIRMAX: ::c_int = 2048; -pub const NFSMNT_ACDIRMIN: ::c_int = 1024; -pub const NFSMNT_ACREGMAX: ::c_int = 512; -pub const NFSMNT_ACREGMIN: ::c_int = 256; -pub const NFSMNT_INT: ::c_int = 64; -pub const NFSMNT_NOAC: ::c_int = 128; -pub const NFSMNT_RETRANS: ::c_int = 16; -pub const NFSMNT_RSIZE: ::c_int = 4; -pub const NFSMNT_SOFT: ::c_int = 1; -pub const NFSMNT_TIMEO: ::c_int = 8; -pub const NFSMNT_WSIZE: ::c_int = 2; - -// rpcsvc/rstat.h -pub const CPUSTATES: ::c_int = 4; - -// search.h -pub const FIND: ::c_int = 0; -pub const ENTER: ::c_int = 1; - -// semaphore.h -pub const SEM_FAILED: *mut sem_t = -1isize as *mut ::sem_t; - -// spawn.h -pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x1; -pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x2; -pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x4; -pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x8; -pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x10; -pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x20; -pub const POSIX_SPAWN_FORK_HANDLERS: ::c_int = 0x1000; - -// stdio.h -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const _IOFBF: ::c_int = 0o000; -pub const _IONBF: ::c_int = 0o004; -pub const _IOLBF: ::c_int = 0o100; -pub const BUFSIZ: ::c_uint = 4096; -pub const FOPEN_MAX: ::c_uint = 32767; -pub const FILENAME_MAX: ::c_uint = 255; -pub const L_tmpnam: ::c_uint = 21; -pub const TMP_MAX: ::c_uint = 16384; - -// stdlib.h -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 32767; - -// sys/access.h -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; - -// sys/aio.h -pub const LIO_NOP: ::c_int = 0; -pub const LIO_READ: ::c_int = 1; -pub const LIO_WRITE: ::c_int = 2; -pub const LIO_NOWAIT: ::c_int = 0; -pub const LIO_WAIT: ::c_int = 1; -pub const AIO_ALLDONE: ::c_int = 2; -pub const AIO_CANCELED: ::c_int = 0; -pub const AIO_NOTCANCELED: ::c_int = 1; - -// sys/errno.h -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EDEADLK: ::c_int = 45; -pub const ENOLCK: ::c_int = 49; -pub const ECANCELED: ::c_int = 117; -pub const ENOTSUP: ::c_int = 124; -pub const EPROCLIM: ::c_int = 83; -pub const EDQUOT: ::c_int = 88; -pub const EOWNERDEAD: ::c_int = 95; -pub const ENOTRECOVERABLE: ::c_int = 94; -pub const ENOSTR: ::c_int = 123; -pub const ENODATA: ::c_int = 122; -pub const ETIME: ::c_int = 119; -pub const ENOSR: ::c_int = 118; -pub const EREMOTE: ::c_int = 93; -pub const ENOATTR: ::c_int = 112; -pub const ESAD: ::c_int = 113; -pub const ENOTRUST: ::c_int = 114; -pub const ENOLINK: ::c_int = 126; -pub const EPROTO: ::c_int = 121; -pub const EMULTIHOP: ::c_int = 125; -pub const EBADMSG: ::c_int = 120; -pub const ENAMETOOLONG: ::c_int = 86; -pub const EOVERFLOW: ::c_int = 127; -pub const EILSEQ: ::c_int = 116; -pub const ENOSYS: ::c_int = 109; -pub const ELOOP: ::c_int = 85; -pub const ERESTART: ::c_int = 82; -pub const ENOTEMPTY: ::c_int = 87; -pub const EUSERS: ::c_int = 84; -pub const ENOTSOCK: ::c_int = 57; -pub const EDESTADDRREQ: ::c_int = 58; -pub const EMSGSIZE: ::c_int = 59; -pub const EPROTOTYPE: ::c_int = 60; -pub const ENOPROTOOPT: ::c_int = 61; -pub const EPROTONOSUPPORT: ::c_int = 62; -pub const ESOCKTNOSUPPORT: ::c_int = 63; -pub const EOPNOTSUPP: ::c_int = 64; -pub const EPFNOSUPPORT: ::c_int = 65; -pub const EAFNOSUPPORT: ::c_int = 66; -pub const EADDRINUSE: ::c_int = 67; -pub const EADDRNOTAVAIL: ::c_int = 68; -pub const ENETDOWN: ::c_int = 69; -pub const ENETUNREACH: ::c_int = 70; -pub const ENETRESET: ::c_int = 71; -pub const ECONNABORTED: ::c_int = 72; -pub const ECONNRESET: ::c_int = 73; -pub const ENOBUFS: ::c_int = 74; -pub const EISCONN: ::c_int = 75; -pub const ENOTCONN: ::c_int = 76; -pub const ESHUTDOWN: ::c_int = 77; -pub const ETOOMANYREFS: ::c_int = 115; -pub const ETIMEDOUT: ::c_int = 78; -pub const ECONNREFUSED: ::c_int = 79; -pub const EHOSTDOWN: ::c_int = 80; -pub const EHOSTUNREACH: ::c_int = 81; -pub const EWOULDBLOCK: ::c_int = EAGAIN; -pub const EALREADY: ::c_int = 56; -pub const EINPROGRESS: ::c_int = 55; -pub const ESTALE: ::c_int = 52; - -// sys/dr.h -pub const LPAR_INFO_FORMAT1: ::c_int = 1; -pub const LPAR_INFO_FORMAT2: ::c_int = 2; -pub const WPAR_INFO_FORMAT: ::c_int = 3; -pub const PROC_MODULE_INFO: ::c_int = 4; -pub const NUM_PROC_MODULE_TYPES: ::c_int = 5; -pub const LPAR_INFO_VRME_NUM_POOLS: ::c_int = 6; -pub const LPAR_INFO_VRME_POOLS: ::c_int = 7; -pub const LPAR_INFO_VRME_LPAR: ::c_int = 8; -pub const LPAR_INFO_VRME_RESET_HWMARKS: ::c_int = 9; -pub const LPAR_INFO_VRME_ALLOW_DESIRED: ::c_int = 10; -pub const EMTP_INFO_FORMAT: ::c_int = 11; -pub const LPAR_INFO_LPM_CAPABILITY: ::c_int = 12; -pub const ENERGYSCALE_INFO: ::c_int = 13; - -// sys/file.h -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; - -// sys/flock.h -pub const F_RDLCK: ::c_short = 0o01; -pub const F_WRLCK: ::c_short = 0o02; -pub const F_UNLCK: ::c_short = 0o03; - -// sys/fs/quota_common.h -pub const Q_QUOTAON: ::c_int = 0x100; -pub const Q_QUOTAOFF: ::c_int = 0x200; -pub const Q_SETUSE: ::c_int = 0x500; -pub const Q_SYNC: ::c_int = 0x600; -pub const Q_GETQUOTA: ::c_int = 0x300; -pub const Q_SETQLIM: ::c_int = 0x400; -pub const Q_SETQUOTA: ::c_int = 0x400; - -// sys/ioctl.h -pub const IOCPARM_MASK: ::c_int = 0x7f; -pub const IOC_VOID: ::c_int = 0x20000000; -pub const IOC_OUT: ::c_int = 0x40000000; -pub const IOC_IN: ::c_int = 0x40000000 << 1; -pub const IOC_INOUT: ::c_int = IOC_IN | IOC_OUT; -pub const FIOCLEX: ::c_int = 536897025; -pub const FIONCLEX: ::c_int = 536897026; -pub const FIONREAD: ::c_int = 1074030207; -pub const FIONBIO: ::c_int = -2147195266; -pub const FIOASYNC: ::c_int = -2147195267; -pub const FIOSETOWN: ::c_int = -2147195268; -pub const FIOGETOWN: ::c_int = 1074030203; -pub const TIOCGETD: ::c_int = 0x40047400; -pub const TIOCSETD: ::c_int = 0x80047401; -pub const TIOCHPCL: ::c_int = 0x20007402; -pub const TIOCMODG: ::c_int = 0x40047403; -pub const TIOCMODS: ::c_int = 0x80047404; -pub const TIOCM_LE: ::c_int = 0x1; -pub const TIOCM_DTR: ::c_int = 0x2; -pub const TIOCM_RTS: ::c_int = 0x4; -pub const TIOCM_ST: ::c_int = 0x8; -pub const TIOCM_SR: ::c_int = 0x10; -pub const TIOCM_CTS: ::c_int = 0x20; -pub const TIOCM_CAR: ::c_int = 0x40; -pub const TIOCM_CD: ::c_int = 0x40; -pub const TIOCM_RNG: ::c_int = 0x80; -pub const TIOCM_RI: ::c_int = 0x80; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const TIOCGETP: ::c_int = 0x40067408; -pub const TIOCSETP: ::c_int = 0x80067409; -pub const TIOCSETN: ::c_int = 0x8006740a; -pub const TIOCEXCL: ::c_int = 0x2000740d; -pub const TIOCNXCL: ::c_int = 0x2000740e; -pub const TIOCFLUSH: ::c_int = 0x80047410; -pub const TIOCSETC: ::c_int = 0x80067411; -pub const TIOCGETC: ::c_int = 0x40067412; -pub const TANDEM: ::c_int = 0x1; -pub const CBREAK: ::c_int = 0x2; -pub const LCASE: ::c_int = 0x4; -pub const MDMBUF: ::c_int = 0x800000; -pub const XTABS: ::c_int = 0xc00; -pub const SIOCADDMULTI: ::c_int = -2145359567; -pub const SIOCADDRT: ::c_int = -2143784438; -pub const SIOCDARP: ::c_int = -2142476000; -pub const SIOCDELMULTI: ::c_int = -2145359566; -pub const SIOCDELRT: ::c_int = -2143784437; -pub const SIOCDIFADDR: ::c_int = -2144835303; -pub const SIOCGARP: ::c_int = -1068734170; -pub const SIOCGIFADDR: ::c_int = -1071093471; -pub const SIOCGIFBRDADDR: ::c_int = -1071093469; -pub const SIOCGIFCONF: ::c_int = -1072666299; -pub const SIOCGIFDSTADDR: ::c_int = -1071093470; -pub const SIOCGIFFLAGS: ::c_int = -1071093487; -pub const SIOCGIFHWADDR: ::c_int = -1068209771; -pub const SIOCGIFMETRIC: ::c_int = -1071093481; -pub const SIOCGIFMTU: ::c_int = -1071093418; -pub const SIOCGIFNETMASK: ::c_int = -1071093467; -pub const SIOCSARP: ::c_int = -2142476002; -pub const SIOCSIFADDR: ::c_int = -2144835316; -pub const SIOCSIFBRDADDR: ::c_int = -2144835309; -pub const SIOCSIFDSTADDR: ::c_int = -2144835314; -pub const SIOCSIFFLAGS: ::c_int = -2144835312; -pub const SIOCSIFMETRIC: ::c_int = -2144835304; -pub const SIOCSIFMTU: ::c_int = -2144835240; -pub const SIOCSIFNETMASK: ::c_int = -2144835306; -pub const TIOCUCNTL: ::c_int = -2147191706; -pub const TIOCCONS: ::c_int = -2147191710; -pub const TIOCPKT: ::c_int = -2147191696; -pub const TIOCPKT_DATA: ::c_int = 0; -pub const TIOCPKT_FLUSHREAD: ::c_int = 1; -pub const TIOCPKT_FLUSHWRITE: ::c_int = 2; -pub const TIOCPKT_NOSTOP: ::c_int = 0x10; -pub const TIOCPKT_DOSTOP: ::c_int = 0x20; -pub const TIOCPKT_START: ::c_int = 8; -pub const TIOCPKT_STOP: ::c_int = 4; - -// sys/ipc.h -pub const IPC_ALLOC: ::c_int = 0o100000; -pub const IPC_CREAT: ::c_int = 0o020000; -pub const IPC_EXCL: ::c_int = 0o002000; -pub const IPC_NOWAIT: ::c_int = 0o004000; -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 101; -pub const IPC_R: ::c_int = 0o0400; -pub const IPC_W: ::c_int = 0o0200; -pub const IPC_O: ::c_int = 0o1000; -pub const IPC_NOERROR: ::c_int = 0o10000; -pub const IPC_STAT: ::c_int = 102; -pub const IPC_PRIVATE: ::key_t = -1; -pub const SHM_LOCK: ::c_int = 201; -pub const SHM_UNLOCK: ::c_int = 202; - -// sys/ldr.h -pub const L_GETINFO: ::c_int = 2; -pub const L_GETMESSAGE: ::c_int = 1; -pub const L_GETLIBPATH: ::c_int = 3; -pub const L_GETXINFO: ::c_int = 8; - -// sys/limits.h -pub const PATH_MAX: ::c_int = 1023; -pub const PAGESIZE: ::c_int = 4096; -pub const IOV_MAX: ::c_int = 16; -pub const AIO_LISTIO_MAX: ::c_int = 4096; -pub const PIPE_BUF: usize = 32768; -pub const OPEN_MAX: ::c_int = 65534; -pub const MAX_INPUT: ::c_int = 512; -pub const MAX_CANON: ::c_int = 256; -pub const ARG_MAX: ::c_int = 1048576; -pub const BC_BASE_MAX: ::c_int = 99; -pub const BC_DIM_MAX: ::c_int = 0x800; -pub const BC_SCALE_MAX: ::c_int = 99; -pub const BC_STRING_MAX: ::c_int = 0x800; -pub const CHARCLASS_NAME_MAX: ::c_int = 14; -pub const CHILD_MAX: ::c_int = 128; -pub const COLL_WEIGHTS_MAX: ::c_int = 4; -pub const EXPR_NEST_MAX: ::c_int = 32; -pub const NZERO: ::c_int = 20; - -// sys/lockf.h -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; - -// sys/machine.h -pub const BIG_ENDIAN: ::c_int = 4321; -pub const LITTLE_ENDIAN: ::c_int = 1234; -pub const PDP_ENDIAN: ::c_int = 3412; - -// sys/mman.h -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; -pub const MAP_FILE: ::c_int = 0; -pub const MAP_SHARED: ::c_int = 1; -pub const MAP_PRIVATE: ::c_int = 2; -pub const MAP_FIXED: ::c_int = 0x100; -pub const MAP_ANON: ::c_int = 0x10; -pub const MAP_ANONYMOUS: ::c_int = 0x10; -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; -pub const MAP_TYPE: ::c_int = 0xf0; -pub const MCL_CURRENT: ::c_int = 0x100; -pub const MCL_FUTURE: ::c_int = 0x200; -pub const MS_SYNC: ::c_int = 0x20; -pub const MS_ASYNC: ::c_int = 0x10; -pub const MS_INVALIDATE: ::c_int = 0x40; -pub const POSIX_MADV_NORMAL: ::c_int = 1; -pub const POSIX_MADV_RANDOM: ::c_int = 3; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_MADV_WILLNEED: ::c_int = 4; -pub const POSIX_MADV_DONTNEED: ::c_int = 5; -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; - -// sys/mode.h -pub const S_IFMT: mode_t = 0o170000; -pub const S_IFREG: mode_t = 0o100000; -pub const S_IFDIR: mode_t = 0o40000; -pub const S_IFBLK: mode_t = 0o60000; -pub const S_IFCHR: mode_t = 0o20000; -pub const S_IFIFO: mode_t = 0o10000; -pub const S_IRWXU: mode_t = 0o700; -pub const S_IRUSR: mode_t = 0o400; -pub const S_IWUSR: mode_t = 0o200; -pub const S_IXUSR: mode_t = 0o100; -pub const S_IRWXG: mode_t = 0o70; -pub const S_IRGRP: mode_t = 0o40; -pub const S_IWGRP: mode_t = 0o20; -pub const S_IXGRP: mode_t = 0o10; -pub const S_IRWXO: mode_t = 7; -pub const S_IROTH: mode_t = 4; -pub const S_IWOTH: mode_t = 2; -pub const S_IXOTH: mode_t = 1; -pub const S_IFLNK: mode_t = 0o120000; -pub const S_IFSOCK: mode_t = 0o140000; -pub const S_IEXEC: mode_t = 0o100; -pub const S_IWRITE: mode_t = 0o200; -pub const S_IREAD: mode_t = 0o400; - -// sys/msg.h -pub const MSG_NOERROR: ::c_int = 0o10000; - -// sys/m_signal.h -pub const SIGSTKSZ: ::size_t = 4096; -pub const MINSIGSTKSZ: ::size_t = 1200; - -// sys/params.h -pub const MAXPATHLEN: ::c_int = PATH_MAX + 1; -pub const MAXSYMLINKS: ::c_int = 20; -pub const MAXHOSTNAMELEN: ::c_int = 256; -pub const MAXUPRC: ::c_int = 128; -pub const NGROUPS_MAX: ::c_ulong = 2048; -pub const NGROUPS: ::c_ulong = NGROUPS_MAX; -pub const NOFILE: ::c_int = OPEN_MAX; - -// sys/poll.h -pub const POLLIN: ::c_short = 0x0001; -pub const POLLPRI: ::c_short = 0x0004; -pub const POLLOUT: ::c_short = 0x0002; -pub const POLLERR: ::c_short = 0x4000; -pub const POLLHUP: ::c_short = 0x2000; -pub const POLLMSG: ::c_short = 0x0080; -pub const POLLSYNC: ::c_short = 0x8000; -pub const POLLNVAL: ::c_short = POLLSYNC; -pub const POLLNORM: ::c_short = POLLIN; -pub const POLLRDNORM: ::c_short = 0x0010; -pub const POLLWRNORM: ::c_short = POLLOUT; -pub const POLLRDBAND: ::c_short = 0x0020; -pub const POLLWRBAND: ::c_short = 0x0040; - -// sys/pollset.h -pub const PS_ADD: ::c_uchar = 0; -pub const PS_MOD: ::c_uchar = 1; -pub const PS_DELETE: ::c_uchar = 2; -pub const PS_REPLACE: ::c_uchar = 3; - -// sys/ptrace.h -pub const PT_TRACE_ME: ::c_int = 0; -pub const PT_READ_I: ::c_int = 1; -pub const PT_READ_D: ::c_int = 2; -pub const PT_WRITE_I: ::c_int = 4; -pub const PT_WRITE_D: ::c_int = 5; -pub const PT_CONTINUE: ::c_int = 7; -pub const PT_KILL: ::c_int = 8; -pub const PT_STEP: ::c_int = 9; -pub const PT_READ_GPR: ::c_int = 11; -pub const PT_READ_FPR: ::c_int = 12; -pub const PT_WRITE_GPR: ::c_int = 14; -pub const PT_WRITE_FPR: ::c_int = 15; -pub const PT_READ_BLOCK: ::c_int = 17; -pub const PT_WRITE_BLOCK: ::c_int = 19; -pub const PT_ATTACH: ::c_int = 30; -pub const PT_DETACH: ::c_int = 31; -pub const PT_REGSET: ::c_int = 32; -pub const PT_REATT: ::c_int = 33; -pub const PT_LDINFO: ::c_int = 34; -pub const PT_MULTI: ::c_int = 35; -pub const PT_NEXT: ::c_int = 36; -pub const PT_SET: ::c_int = 37; -pub const PT_CLEAR: ::c_int = 38; -pub const PT_LDXINFO: ::c_int = 39; -pub const PT_QUERY: ::c_int = 40; -pub const PT_WATCH: ::c_int = 41; -pub const PTT_CONTINUE: ::c_int = 50; -pub const PTT_STEP: ::c_int = 51; -pub const PTT_READ_SPRS: ::c_int = 52; -pub const PTT_WRITE_SPRS: ::c_int = 53; -pub const PTT_READ_GPRS: ::c_int = 54; -pub const PTT_WRITE_GPRS: ::c_int = 55; -pub const PTT_READ_FPRS: ::c_int = 56; -pub const PTT_WRITE_FPRS: ::c_int = 57; -pub const PTT_READ_VEC: ::c_int = 58; -pub const PTT_WRITE_VEC: ::c_int = 59; -pub const PTT_WATCH: ::c_int = 60; -pub const PTT_SET_TRAP: ::c_int = 61; -pub const PTT_CLEAR_TRAP: ::c_int = 62; -pub const PTT_READ_UKEYSET: ::c_int = 63; -pub const PT_GET_UKEY: ::c_int = 64; -pub const PTT_READ_FPSCR_HI: ::c_int = 65; -pub const PTT_WRITE_FPSCR_HI: ::c_int = 66; -pub const PTT_READ_VSX: ::c_int = 67; -pub const PTT_WRITE_VSX: ::c_int = 68; -pub const PTT_READ_TM: ::c_int = 69; -pub const PTRACE_ATTACH: ::c_int = 14; -pub const PTRACE_CONT: ::c_int = 7; -pub const PTRACE_DETACH: ::c_int = 15; -pub const PTRACE_GETFPREGS: ::c_int = 12; -pub const PTRACE_GETREGS: ::c_int = 10; -pub const PTRACE_KILL: ::c_int = 8; -pub const PTRACE_PEEKDATA: ::c_int = 2; -pub const PTRACE_PEEKTEXT: ::c_int = 1; -pub const PTRACE_PEEKUSER: ::c_int = 3; -pub const PTRACE_POKEDATA: ::c_int = 5; -pub const PTRACE_POKETEXT: ::c_int = 4; -pub const PTRACE_POKEUSER: ::c_int = 6; -pub const PTRACE_SETFPREGS: ::c_int = 13; -pub const PTRACE_SETREGS: ::c_int = 11; -pub const PTRACE_SINGLESTEP: ::c_int = 9; -pub const PTRACE_SYSCALL: ::c_int = 16; -pub const PTRACE_TRACEME: ::c_int = 0; - -// sys/resource.h -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_RSS: ::c_int = 5; -pub const RLIMIT_AS: ::c_int = 6; -pub const RLIMIT_NOFILE: ::c_int = 7; -pub const RLIMIT_THREADS: ::c_int = 8; -pub const RLIMIT_NPROC: ::c_int = 9; -pub const RUSAGE_SELF: ::c_int = 0; -pub const RUSAGE_CHILDREN: ::c_int = -1; -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; -pub const RUSAGE_THREAD: ::c_int = 1; -pub const RLIM_SAVED_MAX: ::c_ulong = RLIM_INFINITY - 1; -pub const RLIM_SAVED_CUR: ::c_ulong = RLIM_INFINITY - 2; -pub const RLIM_NLIMITS: ::c_int = 10; - -// sys/sched.h -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; -pub const SCHED_LOCAL: ::c_int = 3; -pub const SCHED_GLOBAL: ::c_int = 4; -pub const SCHED_FIFO2: ::c_int = 5; -pub const SCHED_FIFO3: ::c_int = 6; -pub const SCHED_FIFO4: ::c_int = 7; - -// sys/sem.h -pub const SEM_UNDO: ::c_int = 0o10000; -pub const GETNCNT: ::c_int = 3; -pub const GETPID: ::c_int = 4; -pub const GETVAL: ::c_int = 5; -pub const GETALL: ::c_int = 6; -pub const GETZCNT: ::c_int = 7; -pub const SETVAL: ::c_int = 8; -pub const SETALL: ::c_int = 9; - -// sys/shm.h -pub const SHMLBA: ::c_int = 0x10000000; -pub const SHMLBA_EXTSHM: ::c_int = 0x1000; -pub const SHM_SHMAT: ::c_int = 0x80000000; -pub const SHM_RDONLY: ::c_int = 0o10000; -pub const SHM_RND: ::c_int = 0o20000; -pub const SHM_PIN: ::c_int = 0o4000; -pub const SHM_LGPAGE: ::c_int = 0o20000000000; -pub const SHM_MAP: ::c_int = 0o4000; -pub const SHM_FMAP: ::c_int = 0o2000; -pub const SHM_COPY: ::c_int = 0o40000; -pub const SHM_CLEAR: ::c_int = 0; -pub const SHM_HGSEG: ::c_int = 0o10000000000; -pub const SHM_R: ::c_int = IPC_R; -pub const SHM_W: ::c_int = IPC_W; -pub const SHM_DEST: ::c_int = 0o2000; - -// sys/signal.h -pub const SA_ONSTACK: ::c_int = 0x00000001; -pub const SA_RESETHAND: ::c_int = 0x00000002; -pub const SA_RESTART: ::c_int = 0x00000008; -pub const SA_SIGINFO: ::c_int = 0x00000100; -pub const SA_NODEFER: ::c_int = 0x00000200; -pub const SA_NOCLDWAIT: ::c_int = 0x00000400; -pub const SA_NOCLDSTOP: ::c_int = 0x00000004; -pub const SS_ONSTACK: ::c_int = 0x00000001; -pub const SS_DISABLE: ::c_int = 0x00000002; -pub const SIGCHLD: ::c_int = 20; -pub const SIGBUS: ::c_int = 10; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIGEV_NONE: ::c_int = 1; -pub const SIGEV_SIGNAL: ::c_int = 2; -pub const SIGEV_THREAD: ::c_int = 3; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGSYS: ::c_int = 12; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; -pub const SIGUSR1: ::c_int = 30; -pub const SIGUSR2: ::c_int = 31; -pub const SIGPWR: ::c_int = 29; -pub const SIGWINCH: ::c_int = 28; -pub const SIGURG: ::c_int = 16; -pub const SIGPOLL: ::c_int = SIGIO; -pub const SIGIO: ::c_int = 23; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGCONT: ::c_int = 19; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGVTALRM: ::c_int = 34; -pub const SIGPROF: ::c_int = 32; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGTRAP: ::c_int = 5; -pub const SIGCLD: ::c_int = 20; -pub const SIGRTMAX: ::c_int = 57; -pub const SIGRTMIN: ::c_int = 50; -pub const SI_USER: ::c_int = 0; -pub const SI_UNDEFINED: ::c_int = 8; -pub const SI_EMPTY: ::c_int = 9; -pub const BUS_ADRALN: ::c_int = 1; -pub const BUS_ADRERR: ::c_int = 2; -pub const BUS_OBJERR: ::c_int = 3; -pub const BUS_UEGARD: ::c_int = 4; -pub const CLD_EXITED: ::c_int = 10; -pub const CLD_KILLED: ::c_int = 11; -pub const CLD_DUMPED: ::c_int = 12; -pub const CLD_TRAPPED: ::c_int = 13; -pub const CLD_STOPPED: ::c_int = 14; -pub const CLD_CONTINUED: ::c_int = 15; -pub const FPE_INTDIV: ::c_int = 20; -pub const FPE_INTOVF: ::c_int = 21; -pub const FPE_FLTDIV: ::c_int = 22; -pub const FPE_FLTOVF: ::c_int = 23; -pub const FPE_FLTUND: ::c_int = 24; -pub const FPE_FLTRES: ::c_int = 25; -pub const FPE_FLTINV: ::c_int = 26; -pub const FPE_FLTSUB: ::c_int = 27; -pub const ILL_ILLOPC: ::c_int = 30; -pub const ILL_ILLOPN: ::c_int = 31; -pub const ILL_ILLADR: ::c_int = 32; -pub const ILL_ILLTRP: ::c_int = 33; -pub const ILL_PRVOPC: ::c_int = 34; -pub const ILL_PRVREG: ::c_int = 35; -pub const ILL_COPROC: ::c_int = 36; -pub const ILL_BADSTK: ::c_int = 37; -pub const ILL_TMBADTHING: ::c_int = 38; -pub const POLL_IN: ::c_int = 40; -pub const POLL_OUT: ::c_int = 41; -pub const POLL_MSG: ::c_int = -3; -pub const POLL_ERR: ::c_int = 43; -pub const POLL_PRI: ::c_int = 44; -pub const POLL_HUP: ::c_int = 45; -pub const SEGV_MAPERR: ::c_int = 50; -pub const SEGV_ACCERR: ::c_int = 51; -pub const SEGV_KEYERR: ::c_int = 52; -pub const TRAP_BRKPT: ::c_int = 60; -pub const TRAP_TRACE: ::c_int = 61; -pub const SI_QUEUE: ::c_int = 71; -pub const SI_TIMER: ::c_int = 72; -pub const SI_ASYNCIO: ::c_int = 73; -pub const SI_MESGQ: ::c_int = 74; - -// sys/socket.h -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_UNIX: ::c_int = 1; -pub const AF_INET: ::c_int = 2; -pub const AF_IMPLINK: ::c_int = 3; -pub const AF_PUP: ::c_int = 4; -pub const AF_CHAOS: ::c_int = 5; -pub const AF_NS: ::c_int = 6; -pub const AF_ECMA: ::c_int = 8; -pub const AF_DATAKIT: ::c_int = 9; -pub const AF_CCITT: ::c_int = 10; -pub const AF_SNA: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_DLI: ::c_int = 13; -pub const AF_LAT: ::c_int = 14; -pub const SO_TIMESTAMPNS: ::c_int = 0x100a; -pub const SOMAXCONN: ::c_int = 1024; -pub const AF_LOCAL: ::c_int = AF_UNIX; -pub const UIO_MAXIOV: ::c_int = 1024; -pub const pseudo_AF_XTP: ::c_int = 19; -pub const AF_HYLINK: ::c_int = 15; -pub const AF_APPLETALK: ::c_int = 16; -pub const AF_ISO: ::c_int = 7; -pub const AF_OSI: ::c_int = AF_ISO; -pub const AF_ROUTE: ::c_int = 17; -pub const AF_LINK: ::c_int = 18; -pub const AF_INET6: ::c_int = 24; -pub const AF_INTF: ::c_int = 20; -pub const AF_RIF: ::c_int = 21; -pub const AF_NDD: ::c_int = 23; -pub const AF_MAX: ::c_int = 30; -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_UNIX: ::c_int = AF_UNIX; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -pub const PF_PUP: ::c_int = AF_PUP; -pub const PF_CHAOS: ::c_int = AF_CHAOS; -pub const PF_NS: ::c_int = AF_NS; -pub const PF_ISO: ::c_int = AF_ISO; -pub const PF_OSI: ::c_int = AF_ISO; -pub const PF_ECMA: ::c_int = AF_ECMA; -pub const PF_DATAKIT: ::c_int = AF_DATAKIT; -pub const PF_CCITT: ::c_int = AF_CCITT; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_DLI: ::c_int = AF_DLI; -pub const PF_LAT: ::c_int = AF_LAT; -pub const PF_HYLINK: ::c_int = AF_HYLINK; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_LINK: ::c_int = AF_LINK; -pub const PF_XTP: ::c_int = 19; -pub const PF_RIF: ::c_int = AF_RIF; -pub const PF_INTF: ::c_int = AF_INTF; -pub const PF_NDD: ::c_int = AF_NDD; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_MAX: ::c_int = AF_MAX; -pub const SF_CLOSE: ::c_int = 1; -pub const SF_REUSE: ::c_int = 2; -pub const SF_DONT_CACHE: ::c_int = 4; -pub const SF_SYNC_CACHE: ::c_int = 8; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOL_SOCKET: ::c_int = 0xffff; -pub const SO_DEBUG: ::c_int = 0x0001; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_USE_IFBUFS: ::c_int = 0x0400; -pub const SO_CKSUMRECV: ::c_int = 0x0800; -pub const SO_NOREUSEADDR: ::c_int = 0x1000; -pub const SO_KERNACCEPT: ::c_int = 0x2000; -pub const SO_NOMULTIPATH: ::c_int = 0x4000; -pub const SO_AUDIT: ::c_int = 0x8000; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SCM_RIGHTS: ::c_int = 0x01; -pub const MSG_OOB: ::c_int = 0x1; -pub const MSG_PEEK: ::c_int = 0x2; -pub const MSG_DONTROUTE: ::c_int = 0x4; -pub const MSG_EOR: ::c_int = 0x8; -pub const MSG_TRUNC: ::c_int = 0x10; -pub const MSG_CTRUNC: ::c_int = 0x20; -pub const MSG_WAITALL: ::c_int = 0x40; -pub const MSG_MPEG2: ::c_int = 0x80; -pub const MSG_NOSIGNAL: ::c_int = 0x100; -pub const MSG_WAITFORONE: ::c_int = 0x200; -pub const MSG_ARGEXT: ::c_int = 0x400; -pub const MSG_NONBLOCK: ::c_int = 0x4000; -pub const MSG_COMPAT: ::c_int = 0x8000; -pub const MSG_MAXIOVLEN: ::c_int = 16; -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -// sys/stat.h -pub const UTIME_NOW: ::c_int = -2; -pub const UTIME_OMIT: ::c_int = -3; - -// sys/statvfs.h -pub const ST_RDONLY: ::c_ulong = 0x0001; -pub const ST_NOSUID: ::c_ulong = 0x0040; -pub const ST_NODEV: ::c_ulong = 0x0080; - -// sys/stropts.h -pub const I_NREAD: ::c_int = 0x20005301; -pub const I_PUSH: ::c_int = 0x20005302; -pub const I_POP: ::c_int = 0x20005303; -pub const I_LOOK: ::c_int = 0x20005304; -pub const I_FLUSH: ::c_int = 0x20005305; -pub const I_SRDOPT: ::c_int = 0x20005306; -pub const I_GRDOPT: ::c_int = 0x20005307; -pub const I_STR: ::c_int = 0x20005308; -pub const I_SETSIG: ::c_int = 0x20005309; -pub const I_GETSIG: ::c_int = 0x2000530a; -pub const I_FIND: ::c_int = 0x2000530b; -pub const I_LINK: ::c_int = 0x2000530c; -pub const I_UNLINK: ::c_int = 0x2000530d; -pub const I_PEEK: ::c_int = 0x2000530f; -pub const I_FDINSERT: ::c_int = 0x20005310; -pub const I_SENDFD: ::c_int = 0x20005311; -pub const I_RECVFD: ::c_int = 0x20005312; -pub const I_SWROPT: ::c_int = 0x20005314; -pub const I_GWROPT: ::c_int = 0x20005315; -pub const I_LIST: ::c_int = 0x20005316; -pub const I_PLINK: ::c_int = 0x2000531d; -pub const I_PUNLINK: ::c_int = 0x2000531e; -pub const I_FLUSHBAND: ::c_int = 0x20005313; -pub const I_CKBAND: ::c_int = 0x20005318; -pub const I_GETBAND: ::c_int = 0x20005319; -pub const I_ATMARK: ::c_int = 0x20005317; -pub const I_SETCLTIME: ::c_int = 0x2000531b; -pub const I_GETCLTIME: ::c_int = 0x2000531c; -pub const I_CANPUT: ::c_int = 0x2000531a; - -// sys/syslog.h -pub const LOG_CRON: ::c_int = 9 << 3; -pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -pub const LOG_NFACILITIES: ::c_int = 24; -pub const LOG_PERROR: ::c_int = 0x20; - -// sys/systemcfg.h -pub const SC_ARCH: ::c_int = 1; -pub const SC_IMPL: ::c_int = 2; -pub const SC_VERS: ::c_int = 3; -pub const SC_WIDTH: ::c_int = 4; -pub const SC_NCPUS: ::c_int = 5; -pub const SC_L1C_ATTR: ::c_int = 6; -pub const SC_L1C_ISZ: ::c_int = 7; -pub const SC_L1C_DSZ: ::c_int = 8; -pub const SC_L1C_ICA: ::c_int = 9; -pub const SC_L1C_DCA: ::c_int = 10; -pub const SC_L1C_IBS: ::c_int = 11; -pub const SC_L1C_DBS: ::c_int = 12; -pub const SC_L1C_ILS: ::c_int = 13; -pub const SC_L1C_DLS: ::c_int = 14; -pub const SC_L2C_SZ: ::c_int = 15; -pub const SC_L2C_AS: ::c_int = 16; -pub const SC_TLB_ATTR: ::c_int = 17; -pub const SC_ITLB_SZ: ::c_int = 18; -pub const SC_DTLB_SZ: ::c_int = 19; -pub const SC_ITLB_ATT: ::c_int = 20; -pub const SC_DTLB_ATT: ::c_int = 21; -pub const SC_RESRV_SZ: ::c_int = 22; -pub const SC_PRI_LC: ::c_int = 23; -pub const SC_PRO_LC: ::c_int = 24; -pub const SC_RTC_TYPE: ::c_int = 25; -pub const SC_VIRT_AL: ::c_int = 26; -pub const SC_CAC_CONG: ::c_int = 27; -pub const SC_MOD_ARCH: ::c_int = 28; -pub const SC_MOD_IMPL: ::c_int = 29; -pub const SC_XINT: ::c_int = 30; -pub const SC_XFRAC: ::c_int = 31; -pub const SC_KRN_ATTR: ::c_int = 32; -pub const SC_PHYSMEM: ::c_int = 33; -pub const SC_SLB_ATTR: ::c_int = 34; -pub const SC_SLB_SZ: ::c_int = 35; -pub const SC_MAX_NCPUS: ::c_int = 37; -pub const SC_MAX_REALADDR: ::c_int = 38; -pub const SC_ORIG_ENT_CAP: ::c_int = 39; -pub const SC_ENT_CAP: ::c_int = 40; -pub const SC_DISP_WHE: ::c_int = 41; -pub const SC_CAPINC: ::c_int = 42; -pub const SC_VCAPW: ::c_int = 43; -pub const SC_SPLP_STAT: ::c_int = 44; -pub const SC_SMT_STAT: ::c_int = 45; -pub const SC_SMT_TC: ::c_int = 46; -pub const SC_VMX_VER: ::c_int = 47; -pub const SC_LMB_SZ: ::c_int = 48; -pub const SC_MAX_XCPU: ::c_int = 49; -pub const SC_EC_LVL: ::c_int = 50; -pub const SC_AME_STAT: ::c_int = 51; -pub const SC_ECO_STAT: ::c_int = 52; -pub const SC_DFP_VER: ::c_int = 53; -pub const SC_VRM_STAT: ::c_int = 54; -pub const SC_PHYS_IMP: ::c_int = 55; -pub const SC_PHYS_VER: ::c_int = 56; -pub const SC_SPCM_STATUS: ::c_int = 57; -pub const SC_SPCM_MAX: ::c_int = 58; -pub const SC_TM_VER: ::c_int = 59; -pub const SC_NX_CAP: ::c_int = 60; -pub const SC_PKS_STATE: ::c_int = 61; -pub const SC_MMA_VER: ::c_int = 62; -pub const POWER_RS: ::c_int = 1; -pub const POWER_PC: ::c_int = 2; -pub const IA64: ::c_int = 3; -pub const POWER_RS1: ::c_int = 0x1; -pub const POWER_RSC: ::c_int = 0x2; -pub const POWER_RS2: ::c_int = 0x4; -pub const POWER_601: ::c_int = 0x8; -pub const POWER_604: ::c_int = 0x10; -pub const POWER_603: ::c_int = 0x20; -pub const POWER_620: ::c_int = 0x40; -pub const POWER_630: ::c_int = 0x80; -pub const POWER_A35: ::c_int = 0x100; -pub const POWER_RS64II: ::c_int = 0x200; -pub const POWER_RS64III: ::c_int = 0x400; -pub const POWER_4: ::c_int = 0x800; -pub const POWER_RS64IV: ::c_int = POWER_4; -pub const POWER_MPC7450: ::c_int = 0x1000; -pub const POWER_5: ::c_int = 0x2000; -pub const POWER_6: ::c_int = 0x4000; -pub const POWER_7: ::c_int = 0x8000; -pub const POWER_8: ::c_int = 0x10000; -pub const POWER_9: ::c_int = 0x20000; - -// sys/time.h -pub const FD_SETSIZE: usize = 65534; -pub const TIMEOFDAY: ::c_int = 9; -pub const CLOCK_REALTIME: ::clockid_t = TIMEOFDAY as clockid_t; -pub const CLOCK_MONOTONIC: ::clockid_t = 10; -pub const TIMER_ABSTIME: ::c_int = 999; -pub const ITIMER_REAL: ::c_int = 0; -pub const ITIMER_VIRTUAL: ::c_int = 1; -pub const ITIMER_PROF: ::c_int = 2; -pub const ITIMER_VIRT: ::c_int = 3; -pub const ITIMER_REAL1: ::c_int = 20; -pub const ITIMER_REAL_TH: ::c_int = ITIMER_REAL1; -pub const DST_AUST: ::c_int = 2; -pub const DST_CAN: ::c_int = 6; -pub const DST_EET: ::c_int = 5; -pub const DST_MET: ::c_int = 4; -pub const DST_NONE: ::c_int = 0; -pub const DST_USA: ::c_int = 1; -pub const DST_WET: ::c_int = 3; - -// sys/termio.h -pub const CSTART: ::tcflag_t = 0o21; -pub const CSTOP: ::tcflag_t = 0o23; -pub const TCGETA: ::c_int = TIOC | 5; -pub const TCSETA: ::c_int = TIOC | 6; -pub const TCSETAW: ::c_int = TIOC | 7; -pub const TCSETAF: ::c_int = TIOC | 8; -pub const TCSBRK: ::c_int = TIOC | 9; -pub const TCXONC: ::c_int = TIOC | 11; -pub const TCFLSH: ::c_int = TIOC | 12; -pub const TCGETS: ::c_int = TIOC | 1; -pub const TCSETS: ::c_int = TIOC | 2; -pub const TCSANOW: ::c_int = 0; -pub const TCSETSW: ::c_int = TIOC | 3; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSETSF: ::c_int = TIOC | 4; -pub const TCSAFLUSH: ::c_int = 2; -pub const TCIFLUSH: ::c_int = 0; -pub const TCOFLUSH: ::c_int = 1; -pub const TCIOFLUSH: ::c_int = 2; -pub const TCOOFF: ::c_int = 0; -pub const TCOON: ::c_int = 1; -pub const TCIOFF: ::c_int = 2; -pub const TCION: ::c_int = 3; -pub const TIOC: ::c_int = 0x5400; -pub const TIOCGWINSZ: ::c_int = 0x40087468; -pub const TIOCSWINSZ: ::c_int = 0x80087467; -pub const TIOCLBIS: ::c_int = 0x8004747f; -pub const TIOCLBIC: ::c_int = 0x8004747e; -pub const TIOCLSET: ::c_int = 0x8004747d; -pub const TIOCLGET: ::c_int = 0x4004747c; -pub const TIOCSBRK: ::c_int = 0x2000747b; -pub const TIOCCBRK: ::c_int = 0x2000747a; -pub const TIOCSDTR: ::c_int = 0x20007479; -pub const TIOCCDTR: ::c_int = 0x20007478; -pub const TIOCSLTC: ::c_int = 0x80067475; -pub const TIOCGLTC: ::c_int = 0x40067474; -pub const TIOCOUTQ: ::c_int = 0x40047473; -pub const TIOCNOTTY: ::c_int = 0x20007471; -pub const TIOCSTOP: ::c_int = 0x2000746f; -pub const TIOCSTART: ::c_int = 0x2000746e; -pub const TIOCGPGRP: ::c_int = 0x40047477; -pub const TIOCSPGRP: ::c_int = 0x80047476; -pub const TIOCGSID: ::c_int = 0x40047448; -pub const TIOCSTI: ::c_int = 0x80017472; -pub const TIOCMSET: ::c_int = 0x8004746d; -pub const TIOCMBIS: ::c_int = 0x8004746c; -pub const TIOCMBIC: ::c_int = 0x8004746b; -pub const TIOCMGET: ::c_int = 0x4004746a; -pub const TIOCREMOTE: ::c_int = 0x80047469; - -// sys/user.h -pub const MAXCOMLEN: ::c_int = 32; -pub const UF_SYSTEM: ::c_int = 0x1000; - -// sys/vattr.h -pub const AT_FLAGS: ::c_int = 0x80; -pub const AT_GID: ::c_int = 8; -pub const AT_UID: ::c_int = 4; - -// sys/wait.h -pub const P_ALL: ::c_int = 0; -pub const P_PID: ::c_int = 1; -pub const P_PGID: ::c_int = 2; -pub const WNOHANG: ::c_int = 0x1; -pub const WUNTRACED: ::c_int = 0x2; -pub const WEXITED: ::c_int = 0x04; -pub const WCONTINUED: ::c_int = 0x01000000; -pub const WNOWAIT: ::c_int = 0x10; -pub const WSTOPPED: ::c_int = _W_STOPPED; -pub const _W_STOPPED: ::c_int = 0x00000040; -pub const _W_SLWTED: ::c_int = 0x0000007c; -pub const _W_SEWTED: ::c_int = 0x0000007d; -pub const _W_SFWTED: ::c_int = 0x0000007e; -pub const _W_STRC: ::c_int = 0x0000007f; - -// termios.h -pub const NCCS: usize = 16; -pub const OLCUC: ::tcflag_t = 2; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS5: ::tcflag_t = 0x00000000; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const ECHO: ::tcflag_t = 0x20000; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOCTL: ::tcflag_t = 0x00020000; -pub const ECHOPRT: ::tcflag_t = 0x00040000; -pub const ECHOKE: ::tcflag_t = 0x00080000; -pub const IGNBRK: ::tcflag_t = 0x00000001; -pub const BRKINT: ::tcflag_t = 0x00000002; -pub const IGNPAR: ::tcflag_t = 0x00000004; -pub const PARMRK: ::tcflag_t = 0x00000008; -pub const INPCK: ::tcflag_t = 0x00000010; -pub const ISTRIP: ::tcflag_t = 0x00000020; -pub const INLCR: ::tcflag_t = 0x00000040; -pub const IGNCR: ::tcflag_t = 0x00000080; -pub const ICRNL: ::tcflag_t = 0x00000100; -pub const IXON: ::tcflag_t = 0x0001; -pub const IXOFF: ::tcflag_t = 0x00000400; -pub const IXANY: ::tcflag_t = 0x00001000; -pub const IMAXBEL: ::tcflag_t = 0x00010000; -pub const OPOST: ::tcflag_t = 0x00000001; -pub const ONLCR: ::tcflag_t = 0x00000004; -pub const OCRNL: ::tcflag_t = 0x00000008; -pub const ONOCR: ::tcflag_t = 0x00000010; -pub const ONLRET: ::tcflag_t = 0x00000020; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const IEXTEN: ::tcflag_t = 0x00200000; -pub const TOSTOP: ::tcflag_t = 0x00010000; -pub const FLUSHO: ::tcflag_t = 0x00100000; -pub const PENDIN: ::tcflag_t = 0x20000000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const VINTR: usize = 0; -pub const VQUIT: usize = 1; -pub const VERASE: usize = 2; -pub const VKILL: usize = 3; -pub const VEOF: usize = 4; -pub const VEOL: usize = 5; -pub const VSTART: usize = 7; -pub const VSTOP: usize = 8; -pub const VSUSP: usize = 9; -pub const VMIN: usize = 4; -pub const VTIME: usize = 5; -pub const VEOL2: usize = 6; -pub const VDSUSP: usize = 10; -pub const VREPRINT: usize = 11; -pub const VDISCRD: usize = 12; -pub const VWERSE: usize = 13; -pub const VLNEXT: usize = 14; -pub const B0: ::speed_t = 0x0; -pub const B50: ::speed_t = 0x1; -pub const B75: ::speed_t = 0x2; -pub const B110: ::speed_t = 0x3; -pub const B134: ::speed_t = 0x4; -pub const B150: ::speed_t = 0x5; -pub const B200: ::speed_t = 0x6; -pub const B300: ::speed_t = 0x7; -pub const B600: ::speed_t = 0x8; -pub const B1200: ::speed_t = 0x9; -pub const B1800: ::speed_t = 0xa; -pub const B2400: ::speed_t = 0xb; -pub const B4800: ::speed_t = 0xc; -pub const B9600: ::speed_t = 0xd; -pub const B19200: ::speed_t = 0xe; -pub const B38400: ::speed_t = 0xf; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const IUCLC: ::tcflag_t = 0x00000800; -pub const OFILL: ::tcflag_t = 0x00000040; -pub const OFDEL: ::tcflag_t = 0x00000080; -pub const CRDLY: ::tcflag_t = 0x00000300; -pub const CR0: ::tcflag_t = 0x00000000; -pub const CR1: ::tcflag_t = 0x00000100; -pub const CR2: ::tcflag_t = 0x00000200; -pub const CR3: ::tcflag_t = 0x00000300; -pub const TABDLY: ::tcflag_t = 0x00000c00; -pub const TAB0: ::tcflag_t = 0x00000000; -pub const TAB1: ::tcflag_t = 0x00000400; -pub const TAB2: ::tcflag_t = 0x00000800; -pub const TAB3: ::tcflag_t = 0x00000c00; -pub const BSDLY: ::tcflag_t = 0x00001000; -pub const BS0: ::tcflag_t = 0x00000000; -pub const BS1: ::tcflag_t = 0x00001000; -pub const FFDLY: ::tcflag_t = 0x00002000; -pub const FF0: ::tcflag_t = 0x00000000; -pub const FF1: ::tcflag_t = 0x00002000; -pub const NLDLY: ::tcflag_t = 0x00004000; -pub const NL0: ::tcflag_t = 0x00000000; -pub const NL1: ::tcflag_t = 0x00004000; -pub const VTDLY: ::tcflag_t = 0x00008000; -pub const VT0: ::tcflag_t = 0x00000000; -pub const VT1: ::tcflag_t = 0x00008000; -pub const OXTABS: ::tcflag_t = 0x00040000; -pub const ONOEOT: ::tcflag_t = 0x00080000; -pub const CBAUD: ::tcflag_t = 0x0000000f; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const CIBAUD: ::tcflag_t = 0x000f0000; -pub const IBSHIFT: ::tcflag_t = 16; -pub const PAREXT: ::tcflag_t = 0x00100000; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const XCASE: ::tcflag_t = 0x00000004; -pub const ALTWERASE: ::tcflag_t = 0x00400000; - -// time.h -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 11; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 12; - -// unistd.h -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const _POSIX_VDISABLE: ::c_int = 0xff; -pub const _PC_LINK_MAX: ::c_int = 11; -pub const _PC_MAX_CANON: ::c_int = 12; -pub const _PC_MAX_INPUT: ::c_int = 13; -pub const _PC_NAME_MAX: ::c_int = 14; -pub const _PC_PATH_MAX: ::c_int = 16; -pub const _PC_PIPE_BUF: ::c_int = 17; -pub const _PC_NO_TRUNC: ::c_int = 15; -pub const _PC_VDISABLE: ::c_int = 18; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 10; -pub const _PC_ASYNC_IO: ::c_int = 19; -pub const _PC_PRIO_IO: ::c_int = 21; -pub const _PC_SYNC_IO: ::c_int = 20; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 26; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 27; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 28; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 29; -pub const _PC_REC_XFER_ALIGN: ::c_int = 30; -pub const _PC_SYMLINK_MAX: ::c_int = 25; -pub const _PC_2_SYMLINKS: ::c_int = 31; -pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 32; -pub const _PC_FILESIZEBITS: ::c_int = 22; -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_CHILD_MAX: ::c_int = 1; -pub const _SC_CLK_TCK: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 3; -pub const _SC_OPEN_MAX: ::c_int = 4; -pub const _SC_JOB_CONTROL: ::c_int = 7; -pub const _SC_SAVED_IDS: ::c_int = 8; -pub const _SC_VERSION: ::c_int = 9; -pub const _SC_PASS_MAX: ::c_int = 45; -pub const _SC_PAGESIZE: ::c_int = _SC_PAGE_SIZE; -pub const _SC_PAGE_SIZE: ::c_int = 48; -pub const _SC_XOPEN_VERSION: ::c_int = 46; -pub const _SC_NPROCESSORS_CONF: ::c_int = 71; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 72; -pub const _SC_STREAM_MAX: ::c_int = 5; -pub const _SC_TZNAME_MAX: ::c_int = 6; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 75; -pub const _SC_AIO_MAX: ::c_int = 76; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 77; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 78; -pub const _SC_DELAYTIMER_MAX: ::c_int = 79; -pub const _SC_FSYNC: ::c_int = 80; -pub const _SC_MAPPED_FILES: ::c_int = 84; -pub const _SC_MEMLOCK: ::c_int = 85; -pub const _SC_MEMLOCK_RANGE: ::c_int = 86; -pub const _SC_MEMORY_PROTECTION: ::c_int = 87; -pub const _SC_MESSAGE_PASSING: ::c_int = 88; -pub const _SC_MQ_OPEN_MAX: ::c_int = 89; -pub const _SC_MQ_PRIO_MAX: ::c_int = 90; -pub const _SC_PRIORITIZED_IO: ::c_int = 91; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 92; -pub const _SC_REALTIME_SIGNALS: ::c_int = 93; -pub const _SC_RTSIG_MAX: ::c_int = 94; -pub const _SC_SEMAPHORES: ::c_int = 95; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 96; -pub const _SC_SEM_VALUE_MAX: ::c_int = 97; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 98; -pub const _SC_SIGQUEUE_MAX: ::c_int = 99; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 100; -pub const _SC_TIMERS: ::c_int = 102; -pub const _SC_TIMER_MAX: ::c_int = 103; -pub const _SC_2_C_BIND: ::c_int = 51; -pub const _SC_2_C_DEV: ::c_int = 32; -pub const _SC_2_C_VERSION: ::c_int = 52; -pub const _SC_2_FORT_DEV: ::c_int = 33; -pub const _SC_2_FORT_RUN: ::c_int = 34; -pub const _SC_2_LOCALEDEF: ::c_int = 35; -pub const _SC_2_SW_DEV: ::c_int = 36; -pub const _SC_2_UPE: ::c_int = 53; -pub const _SC_2_VERSION: ::c_int = 31; -pub const _SC_BC_BASE_MAX: ::c_int = 23; -pub const _SC_BC_DIM_MAX: ::c_int = 24; -pub const _SC_BC_SCALE_MAX: ::c_int = 25; -pub const _SC_BC_STRING_MAX: ::c_int = 26; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 50; -pub const _SC_EXPR_NEST_MAX: ::c_int = 28; -pub const _SC_LINE_MAX: ::c_int = 29; -pub const _SC_RE_DUP_MAX: ::c_int = 30; -pub const _SC_XOPEN_CRYPT: ::c_int = 56; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 57; -pub const _SC_XOPEN_SHM: ::c_int = 55; -pub const _SC_2_CHAR_TERM: ::c_int = 54; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 109; -pub const _SC_ATEXIT_MAX: ::c_int = 47; -pub const _SC_IOV_MAX: ::c_int = 58; -pub const _SC_XOPEN_UNIX: ::c_int = 73; -pub const _SC_T_IOV_MAX: ::c_int = 0; -pub const _SC_PHYS_PAGES: ::c_int = 113; -pub const _SC_AVPHYS_PAGES: ::c_int = 114; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 101; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 81; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 82; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 83; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 68; -pub const _SC_THREAD_STACK_MIN: ::c_int = 69; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 70; -pub const _SC_TTY_NAME_MAX: ::c_int = 104; -pub const _SC_THREADS: ::c_int = 60; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 61; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 62; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 64; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 65; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 66; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 59; -pub const _SC_XOPEN_LEGACY: ::c_int = 112; -pub const _SC_XOPEN_REALTIME: ::c_int = 110; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 111; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 105; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 106; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 107; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 108; -pub const _SC_2_PBS: ::c_int = 132; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 133; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 134; -pub const _SC_2_PBS_LOCATE: ::c_int = 135; -pub const _SC_2_PBS_MESSAGE: ::c_int = 136; -pub const _SC_2_PBS_TRACK: ::c_int = 137; -pub const _SC_ADVISORY_INFO: ::c_int = 130; -pub const _SC_BARRIERS: ::c_int = 138; -pub const _SC_CLOCK_SELECTION: ::c_int = 139; -pub const _SC_CPUTIME: ::c_int = 140; -pub const _SC_HOST_NAME_MAX: ::c_int = 126; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 141; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 142; -pub const _SC_REGEXP: ::c_int = 127; -pub const _SC_SHELL: ::c_int = 128; -pub const _SC_SPAWN: ::c_int = 143; -pub const _SC_SPIN_LOCKS: ::c_int = 144; -pub const _SC_SPORADIC_SERVER: ::c_int = 145; -pub const _SC_SS_REPL_MAX: ::c_int = 156; -pub const _SC_SYMLOOP_MAX: ::c_int = 129; -pub const _SC_THREAD_CPUTIME: ::c_int = 146; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 147; -pub const _SC_TIMEOUTS: ::c_int = 148; -pub const _SC_TRACE: ::c_int = 149; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 150; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 157; -pub const _SC_TRACE_INHERIT: ::c_int = 151; -pub const _SC_TRACE_LOG: ::c_int = 152; -pub const _SC_TRACE_NAME_MAX: ::c_int = 158; -pub const _SC_TRACE_SYS_MAX: ::c_int = 159; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 160; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 153; -pub const _SC_V6_ILP32_OFF32: ::c_int = 121; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 122; -pub const _SC_V6_LP64_OFF64: ::c_int = 123; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 124; -pub const _SC_XOPEN_STREAMS: ::c_int = 125; -pub const _SC_IPV6: ::c_int = 154; -pub const _SC_RAW_SOCKETS: ::c_int = 155; - -// utmp.h -pub const EMPTY: ::c_short = -1; -pub const RUN_LVL: ::c_short = 1; -pub const BOOT_TIME: ::c_short = 2; -pub const OLD_TIME: ::c_short = 3; -pub const NEW_TIME: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const USER_PROCESS: ::c_short = 7; -pub const DEAD_PROCESS: ::c_short = 8; -pub const ACCOUNTING: ::c_short = 9; - -f! { - pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { - (*mhdr).msg_control as *mut cmsghdr - } else { - 0 as *mut cmsghdr - } - } - - pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { - if cmsg.is_null() { - CMSG_FIRSTHDR(mhdr) - } else { - if (cmsg as usize + (*cmsg).cmsg_len as usize + ::mem::size_of::<::cmsghdr>()) > - ((*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize) { - 0 as *mut ::cmsghdr - } else { - // AIX does not have any alignment/padding for ancillary data, so we don't need _CMSG_ALIGN here. - (cmsg as usize + (*cmsg).cmsg_len as usize) as *mut cmsghdr - } - } - } - - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar).offset(::mem::size_of::<::cmsghdr>() as isize) - } - - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - ::mem::size_of::<::cmsghdr>() as ::c_uint + length - } - - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - ::mem::size_of::<::cmsghdr>() as ::c_uint + length - } - - pub fn FD_ZERO(set: *mut fd_set) -> () { - for slot in (*set).fds_bits.iter_mut() { - *slot = 0; - } - } - - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of::<::c_long>() * 8; - let fd = fd as usize; - (*set).fds_bits[fd / bits] |= 1 << (fd % bits); - return - } - - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of::<::c_long>() * 8; - let fd = fd as usize; - (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); - return - } - - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { - let bits = ::mem::size_of::<::c_long>() * 8; - let fd = fd as usize; - return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0 - } - - pub fn major(dev: ::dev_t) -> ::c_uint { - let x = dev >> 16; - x as ::c_uint - } - - pub fn minor(dev: ::dev_t) -> ::c_uint { - let y = dev & 0xFFFF; - y as ::c_uint - } - - pub fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; - let mut dev = 0; - dev |= major << 16; - dev |= minor; - dev - } -} - -safe_f! { - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { - (status & _W_STOPPED) != 0 - } - - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { - if WIFSTOPPED(status) { - (((status as ::c_uint) >> 8) & 0xff) as ::c_int - } else { - -1 - } - } - - pub {const} fn WIFEXITED(status: ::c_int) -> bool { - (status & 0xFF) == 0 - } - - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { - if WIFEXITED(status) { - (((status as ::c_uint) >> 8) & 0xff) as ::c_int - } else { - -1 - } - } - - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { - !WIFEXITED(status) && !WIFSTOPPED(status) - } - - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { - if WIFSIGNALED(status) { - (((status as ::c_uint) >> 16) & 0xff) as ::c_int - } else { - -1 - } - } - - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { - (status & WCONTINUED) != 0 - } - - // AIX doesn't have native WCOREDUMP. - pub {const} fn WCOREDUMP(_status: ::c_int) -> bool { - false - } -} - -#[link(name = "thread")] -extern "C" { - pub fn thr_kill(id: thread_t, sig: ::c_int) -> ::c_int; - pub fn thr_self() -> thread_t; -} - -#[link(name = "pthread")] -extern "C" { - pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn pthread_attr_getguardsize( - attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t, - ) -> ::c_int; - pub fn pthread_attr_getschedparam( - attr: *const ::pthread_attr_t, - param: *mut sched_param, - ) -> ::c_int; - pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; - pub fn pthread_attr_setschedparam( - attr: *mut ::pthread_attr_t, - param: *const sched_param, - ) -> ::c_int; - pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_barrier_init( - barrier: *mut pthread_barrier_t, - attr: *const ::pthread_barrierattr_t, - count: ::c_uint, - ) -> ::c_int; - pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_getpshared( - attr: *const ::pthread_barrierattr_t, - shared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_setpshared( - attr: *mut ::pthread_barrierattr_t, - shared: ::c_int, - ) -> ::c_int; - pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; - pub fn pthread_condattr_getclock( - attr: *const pthread_condattr_t, - clock_id: *mut clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_getpshared( - attr: *const pthread_condattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_condattr_setclock( - attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn pthread_getattr_np(native: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; - pub fn pthread_getschedparam( - thread: ::pthread_t, - policy: *mut ::c_int, - param: *mut sched_param, - ) -> ::c_int; - pub fn pthread_kill(thread: ::pthread_t, signal: ::c_int) -> ::c_int; - pub fn pthread_mutex_consistent(mutex: *mut ::pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_timedlock( - lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_mutexattr_getprotocol( - attr: *const pthread_mutexattr_t, - protocol: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_getpshared( - attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_getrobust( - attr: *mut ::pthread_mutexattr_t, - robust: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setprotocol( - attr: *mut pthread_mutexattr_t, - protocol: ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setpshared( - attr: *mut pthread_mutexattr_t, - pshared: ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setrobust( - attr: *mut ::pthread_mutexattr_t, - robust: ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_getpshared( - attr: *const pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; - pub fn pthread_setschedparam( - thread: ::pthread_t, - policy: ::c_int, - param: *const sched_param, - ) -> ::c_int; - pub fn pthread_setschedprio(native: ::pthread_t, priority: ::c_int) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> ::c_int; -} - -#[link(name = "iconv")] -extern "C" { - pub fn iconv( - cd: iconv_t, - inbuf: *mut *mut ::c_char, - inbytesleft: *mut ::size_t, - outbuf: *mut *mut ::c_char, - outbytesleft: *mut ::size_t, - ) -> ::size_t; - pub fn iconv_close(cd: iconv_t) -> ::c_int; - pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; -} - -extern "C" { - pub fn acct(filename: *const ::c_char) -> ::c_int; - pub fn aio_cancel(fildes: ::c_int, aiocbp: *mut ::aiocb) -> ::c_int; - pub fn aio_error(aiocbp: *mut ::aiocb) -> ::c_int; - #[link_name = "_posix_aio_fsync"] - pub fn aio_fsync(op: ::c_int, aiocbp: *mut ::aiocb) -> ::c_int; - pub fn aio_read(aiocbp: *mut ::aiocb) -> ::c_int; - // pub fn aio_suspend - // pub fn aio_write - pub fn basename(path: *mut ::c_char) -> *mut ::c_char; - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; - pub fn brk(addr: *mut ::c_void) -> ::c_int; - pub fn clearenv() -> ::c_int; - pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; - pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; - pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - pub fn creat64(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; - pub fn drand48() -> ::c_double; - pub fn duplocale(arg1: ::locale_t) -> ::locale_t; - pub fn endgrent(); - pub fn endmntent(streamp: *mut ::FILE) -> ::c_int; - pub fn endpwent(); - pub fn endutent(); - pub fn endutxent(); - pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; - pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; - pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn fexecve( - fd: ::c_int, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - pub fn ffs(value: ::c_int) -> ::c_int; - pub fn ffsl(value: ::c_long) -> ::c_int; - pub fn ffsll(value: ::c_longlong) -> ::c_int; - pub fn fgetgrent(file: *mut ::FILE) -> *mut ::group; - pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; - pub fn fgetpwent(file: *mut ::FILE) -> *mut ::passwd; - pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn freelocale(loc: ::locale_t); - pub fn freopen64( - filename: *const c_char, - mode: *const c_char, - file: *mut ::FILE, - ) -> *mut ::FILE; - pub fn fseeko64(stream: *mut ::FILE, offset: ::off64_t, whence: ::c_int) -> ::c_int; - pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; - pub fn fstat64(fildes: ::c_int, buf: *mut stat64) -> ::c_int; - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn fstatfs64(fd: ::c_int, buf: *mut statfs64) -> ::c_int; - pub fn fstatvfs64(fd: ::c_int, buf: *mut statvfs64) -> ::c_int; - pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; - pub fn ftok(path: *const ::c_char, id: ::c_int) -> ::key_t; - pub fn ftruncate64(fd: ::c_int, length: off64_t) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; - pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int; - pub fn getdtablesize() -> ::c_int; - pub fn getgrent() -> *mut ::group; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn getgrset(user: *mut ::c_char) -> *mut ::c_char; - pub fn gethostid() -> ::c_long; - pub fn getmntent(stream: *mut ::FILE) -> *mut ::mntent; - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::size_t, - host: *mut ::c_char, - hostlen: ::size_t, - serv: *mut ::c_char, - sevlen: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn getpagesize() -> ::c_int; - pub fn getpeereid(socket: ::c_int, euid: *mut ::uid_t, egid: *mut ::gid_t) -> ::c_int; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn getpwent() -> *mut ::passwd; - pub fn getpwnam_r( - name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn getpwuid_r( - uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int; - pub fn getutent() -> *mut utmp; - pub fn getutid(u: *const utmp) -> *mut utmp; - pub fn getutline(u: *const utmp) -> *mut utmp; - pub fn getutxent() -> *mut utmpx; - pub fn getutxid(ut: *const utmpx) -> *mut utmpx; - pub fn getutxline(ut: *const utmpx) -> *mut utmpx; - pub fn glob( - pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - pub fn globfree(pglob: *mut ::glob_t); - pub fn hasmntopt(mnt: *const ::mntent, opt: *const ::c_char) -> *mut ::c_char; - pub fn hcreate(nelt: ::size_t) -> ::c_int; - pub fn hdestroy(); - pub fn hsearch(entry: entry, action: ::c_int) -> *mut entry; - pub fn if_freenameindex(ptr: *mut if_nameindex); - pub fn if_nameindex() -> *mut if_nameindex; - pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; - pub fn ioctl(fildes: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn lcong48(p: *mut ::c_ushort); - pub fn lfind( - key: *const ::c_void, - base: *const ::c_void, - nelp: *mut ::size_t, - width: ::size_t, - compar: ::Option ::c_int>, - ) -> *mut ::c_void; - pub fn lio_listio( - mode: ::c_int, - aiocb_list: *const *mut aiocb, - nitems: ::c_int, - sevp: *mut sigevent, - ) -> ::c_int; - pub fn loadquery(flags: ::c_int, buf: *mut ::c_char, buflen: ::c_uint) -> ::c_int; - pub fn lpar_get_info(command: ::c_int, buf: *mut ::c_void, bufsize: ::size_t) -> ::c_int; - pub fn lpar_set_resources(id: ::c_int, resource: *mut ::c_void) -> ::c_int; - pub fn lrand48() -> c_long; - pub fn lsearch( - key: *const ::c_void, - base: *mut ::c_void, - nelp: *mut ::size_t, - width: ::size_t, - compar: ::Option ::c_int>, - ) -> *mut ::c_void; - pub fn lseek64(fd: ::c_int, offset: off64_t, whence: ::c_int) -> off64_t; - pub fn lstat64(path: *const c_char, buf: *mut stat64) -> ::c_int; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - pub fn makecontext(ucp: *mut ::ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); - pub fn mallinfo() -> ::mallinfo; - pub fn mallopt(param: ::c_int, value: ::c_int) -> ::c_int; - pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; - pub fn memset_s(s: *mut ::c_void, smax: ::size_t, c: ::c_int, n: ::size_t) -> ::c_int; - pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: dev_t, - ) -> ::c_int; - pub fn mount(device: *const ::c_char, path: *const ::c_char, flags: ::c_int) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) -> ::c_int; - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_receive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - ) -> ::ssize_t; - pub fn mq_send( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - ) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; - pub fn mq_timedreceive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::ssize_t; - pub fn mq_timedsend( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::c_int; - pub fn mrand48() -> c_long; - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; - pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; - pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; - pub fn msgsnd( - msqid: ::c_int, - msgp: *const ::c_void, - msgsz: ::size_t, - msgflg: ::c_int, - ) -> ::c_int; - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - pub fn nl_langinfo_l(item: ::nl_item, loc: ::locale_t) -> *mut ::c_char; - pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn open64(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn pollset_create(maxfd: ::c_int) -> pollset_t; - pub fn pollset_ctl( - ps: pollset_t, - pollctl_array: *mut poll_ctl, - array_length: ::c_int, - ) -> ::c_int; - pub fn pollset_destroy(ps: pollset_t) -> ::c_int; - pub fn pollset_poll( - ps: pollset_t, - polldata_array: *mut ::pollfd, - array_length: ::c_int, - timeout: ::c_int, - ) -> ::c_int; - pub fn pollset_query(ps: pollset_t, pollfd_query: *mut ::pollfd) -> ::c_int; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; - pub fn posix_fadvise64( - fd: ::c_int, - offset: ::off64_t, - len: ::off64_t, - advise: ::c_int, - ) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn posix_fallocate64(fd: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - pub fn posix_spawn( - pid: *mut ::pid_t, - path: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawn_file_actions_addclose( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; - pub fn posix_spawn_file_actions_adddup2( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - newfd: ::c_int, - ) -> ::c_int; - pub fn posix_spawn_file_actions_addopen( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - path: *const ::c_char, - oflag: ::c_int, - mode: ::mode_t, - ) -> ::c_int; - pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_getflags( - attr: *const posix_spawnattr_t, - flags: *mut ::c_short, - ) -> ::c_int; - pub fn posix_spawnattr_getpgroup( - attr: *const posix_spawnattr_t, - flags: *mut ::pid_t, - ) -> ::c_int; - pub fn posix_spawnattr_getschedparam( - attr: *const posix_spawnattr_t, - param: *mut ::sched_param, - ) -> ::c_int; - pub fn posix_spawnattr_getschedpolicy( - attr: *const posix_spawnattr_t, - flags: *mut ::c_int, - ) -> ::c_int; - pub fn posix_spawnattr_getsigdefault( - attr: *const posix_spawnattr_t, - default: *mut sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getsigmask( - attr: *const posix_spawnattr_t, - default: *mut sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; - pub fn posix_spawnattr_setschedparam( - attr: *mut posix_spawnattr_t, - param: *const ::sched_param, - ) -> ::c_int; - pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; - pub fn posix_spawnattr_setsigdefault( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigmask( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnp( - pid: *mut ::pid_t, - file: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn pread64(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off64_t) -> ::ssize_t; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn ptrace64( - request: ::c_int, - id: ::c_longlong, - addr: ::c_longlong, - data: ::c_int, - buff: *mut ::c_int, - ) -> ::c_int; - pub fn pututline(u: *const utmp) -> *mut utmp; - pub fn pututxline(ut: *const utmpx) -> *mut utmpx; - pub fn pwrite64( - fd: ::c_int, - buf: *const ::c_void, - count: ::size_t, - offset: off64_t, - ) -> ::ssize_t; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - #[link_name = "__linux_quotactl"] - pub fn quotactl( - cmd: ::c_int, - special: *const ::c_char, - id: ::c_int, - data: *mut ::c_char, - ) -> ::c_int; - pub fn rand() -> ::c_int; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - timeout: *mut ::timespec, - ) -> ::c_int; - pub fn recvmsg(sockfd: ::c_int, msg: *mut msghdr, flags: ::c_int) -> ::ssize_t; - pub fn regcomp(preg: *mut regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; - pub fn regerror( - errcode: ::c_int, - preg: *const ::regex_t, - errbuf: *mut ::c_char, - errbuf_size: ::size_t, - ) -> ::size_t; - pub fn regexec( - preg: *const regex_t, - input: *const ::c_char, - nmatch: ::size_t, - pmatch: *mut regmatch_t, - eflags: ::c_int, - ) -> ::c_int; - pub fn regfree(preg: *mut regex_t); - pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; - pub fn sched_getparam(pid: ::pid_t, param: *mut sched_param) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; - pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sctp_opt_info( - sd: ::c_int, - id: ::sctp_assoc_t, - opt: ::c_int, - arg_size: *mut ::c_void, - size: *mut ::size_t, - ) -> ::c_int; - pub fn sctp_peeloff(s: ::c_int, id: ::sctp_assoc_t) -> ::c_int; - pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn semget(key: ::key_t, nsems: ::c_int, semflag: ::c_int) -> ::c_int; - pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int; - pub fn send_file(socket: *mut ::c_int, iobuf: *mut sf_parms, flags: ::c_uint) -> ::ssize_t; - pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - ) -> ::c_int; - pub fn sendmsg(sockfd: ::c_int, msg: *const msghdr, flags: ::c_int) -> ::ssize_t; - pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; - pub fn setgrent(); - pub fn sethostid(hostid: ::c_int) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn setmntent(filename: *const ::c_char, ty: *const ::c_char) -> *mut ::FILE; - pub fn setpriority(which: ::c_int, who: id_t, priority: ::c_int) -> ::c_int; - pub fn setpwent(); - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; - pub fn setitimer( - which: ::c_int, - new_value: *const ::itimerval, - old_value: *mut ::itimerval, - ) -> ::c_int; - pub fn setutent(); - pub fn setutxent(); - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; - pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; - pub fn sigtimedwait( - set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; - pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; - pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; - pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; - pub fn shmget(key: key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; - pub fn splice(socket1: ::c_int, socket2: ::c_int, flags: ::c_int) -> ::c_int; - pub fn srand(seed: ::c_uint); - pub fn srand48(seed: ::c_long); - pub fn stat64(path: *const c_char, buf: *mut stat64) -> ::c_int; - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - pub fn statfs64(path: *const ::c_char, buf: *mut statfs64) -> ::c_int; - pub fn statvfs64(path: *const ::c_char, buf: *mut statvfs64) -> ::c_int; - pub fn statx( - path: *const ::c_char, - buf: *mut stat, - length: ::c_int, - command: ::c_int, - ) -> ::c_int; - pub fn strcasecmp_l( - string1: *const ::c_char, - string2: *const ::c_char, - locale: ::locale_t, - ) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - pub fn strftime( - arg1: *mut c_char, - arg2: ::size_t, - arg3: *const c_char, - arg4: *const tm, - ) -> ::size_t; - pub fn strncasecmp_l( - string1: *const ::c_char, - string2: *const ::c_char, - length: ::size_t, - locale: ::locale_t, - ) -> ::c_int; - pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; - pub fn strsep(string: *mut *mut ::c_char, delim: *const ::c_char) -> *mut ::c_char; - pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; - pub fn swapoff(puath: *const ::c_char) -> ::c_int; - pub fn swapon(path: *const ::c_char) -> ::c_int; - pub fn sync(); - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn timer_create( - clockid: ::clockid_t, - sevp: *mut ::sigevent, - timerid: *mut ::timer_t, - ) -> ::c_int; - pub fn timer_delete(timerid: timer_t) -> ::c_int; - pub fn timer_getoverrun(timerid: timer_t) -> ::c_int; - pub fn timer_gettime(timerid: timer_t, value: *mut itimerspec) -> ::c_int; - pub fn timer_settime( - timerid: ::timer_t, - flags: ::c_int, - new_value: *const ::itimerspec, - old_value: *mut ::itimerspec, - ) -> ::c_int; - pub fn truncate64(path: *const c_char, length: off64_t) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; - pub fn updwtmp(file: *const ::c_char, u: *mut utmp); - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn utmpname(file: *const ::c_char) -> ::c_int; - pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn wait4( - pid: ::pid_t, - status: *mut ::c_int, - options: ::c_int, - rusage: *mut ::rusage, - ) -> ::pid_t; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - - // Use AIX thread-safe version errno. - pub fn _Errno() -> *mut ::c_int; -} - -cfg_if! { - if #[cfg(target_arch = "powerpc64")] { - mod powerpc64; - pub use self::powerpc64::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/aix/powerpc64.rs b/src/rust/vendor/libc-0.2.146/src/unix/aix/powerpc64.rs deleted file mode 100644 index 2cacf29f6..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/aix/powerpc64.rs +++ /dev/null @@ -1,644 +0,0 @@ -pub type c_long = i64; -pub type c_ulong = u64; - -s! { - pub struct sigset_t { - pub ss_set: [c_ulong; 4], - } - - pub struct fd_set { - pub fds_bits: [c_long; 1024], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_sysid: ::c_uint, - pub l_pid: ::pid_t, - pub l_vfs: ::c_int, - pub l_start: ::off_t, - pub l_len: ::off_t, - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_basetype: [::c_char; 16], - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub f_fstr: [::c_char; 32], - pub f_filler: [::c_ulong; 16] - } - - pub struct pthread_rwlock_t { - __rw_word: [::c_long; 10], - } - - pub struct pthread_cond_t { - __cv_word: [::c_long; 6], - } - - pub struct pthread_mutex_t { - __mt_word: [::c_long; 8], - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_flag: ::c_ushort, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_ssize: ::c_int, - pub st_atime: ::st_timespec, - pub st_mtime: ::st_timespec, - pub st_ctime: ::st_timespec, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_vfstype: ::c_int, - pub st_vfs: ::c_uint, - pub st_type: ::c_uint, - pub st_gen: ::c_uint, - pub st_reserved: [::c_uint; 9], - pub st_padto_ll: ::c_uint, - pub st_size: ::off_t, - } - - pub struct statfs { - pub f_version: ::c_int, - pub f_type: ::c_int, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsblkcnt_t, - pub f_ffree: ::fsblkcnt_t, - pub f_fsid: ::fsid64_t, - pub f_vfstype: ::c_int, - pub f_fsize: ::c_ulong, - pub f_vfsnumber: ::c_int, - pub f_vfsoff: ::c_int, - pub f_vfslen: ::c_int, - pub f_vfsvers: ::c_int, - pub f_fname: [::c_char; 32], - pub f_fpack: [::c_char; 32], - pub f_name_max: ::c_int, - } - - pub struct aiocb { - pub aio_lio_opcode: ::c_int, - pub aio_fildes: ::c_int, - pub aio_word1: ::c_int, - pub aio_offset: ::off_t, - pub aio_buf: *mut ::c_void, - pub aio_return: ::ssize_t, - pub aio_errno: ::c_int, - pub aio_nbytes: ::size_t, - pub aio_reqprio: ::c_int, - pub aio_sigevent: ::sigevent, - pub aio_word2: ::c_int, - pub aio_fp: ::c_int, - pub aio_handle: *mut aiocb, - pub aio_reserved: [::c_uint; 2], - pub aio_sigev_tid: c_long, - } - - pub struct ucontext_t { - pub __sc_onstack: ::c_int, - pub uc_sigmask: ::sigset_t, - pub __sc_uerror: ::c_int, - pub uc_mcontext: ::mcontext_t, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - // Should be pointer to __extctx_t - pub __extctx: *mut ::c_void, - pub __extctx_magic: ::c_int, - pub __pad: [::c_int; 1], - } - - pub struct mcontext_t { - pub gpr: [::c_ulonglong; 32], - pub msr: ::c_ulonglong, - pub iar: ::c_ulonglong, - pub lr: ::c_ulonglong, - pub ctr: ::c_ulonglong, - pub cr: ::c_uint, - pub xer: ::c_uint, - pub fpscr: ::c_uint, - pub fpscrx: ::c_uint, - pub except: [::c_ulonglong; 1], - // Should be array of double type - pub fpr: [::uint64_t; 32], - pub fpeu: ::c_char, - pub fpinfo: ::c_char, - pub fpscr24_31: ::c_char, - pub pad: [::c_char; 1], - pub excp_type: ::c_int, - } - - pub struct utmpx { - pub ut_user: [::c_char; 256], - pub ut_id: [::c_char; 14], - pub ut_line: [::c_char; 64], - pub ut_pid: ::pid_t, - pub ut_type: ::c_short, - pub ut_tv: ::timeval, - pub ut_host: [::c_char; 256], - pub __dbl_word_pad: ::c_int, - pub __reservedA: [::c_int; 2], - pub __reservedV: [::c_int; 6], - } - - pub struct pthread_spinlock_t { - pub __sp_word: [::c_long; 3], - } - - pub struct pthread_barrier_t { - pub __br_word: [::c_long; 5], - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_first: ::c_uint, - pub msg_last: ::c_uint, - pub msg_cbytes: ::c_uint, - pub msg_qnum: ::c_uint, - pub msg_qbytes: ::c_ulong, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - pub msg_rwait: ::c_int, - pub msg_wwait: ::c_int, - pub msg_reqevents: ::c_ushort, - } -} - -s_no_extra_traits! { - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub si_pid: ::pid_t, - pub si_uid: ::uid_t, - pub si_status: ::c_int, - pub si_addr: *mut ::c_void, - pub si_band: ::c_long, - pub si_value: ::sigval, - pub __si_flags: ::c_int, - pub __pad: [::c_int; 3], - } - - #[cfg(libc_union)] - pub union _kernel_simple_lock { - pub _slock: ::c_long, - // Should be pointer to 'lock_data_instrumented' - pub _slockp: *mut ::c_void, - } - - pub struct fileops_t { - pub fo_rw: extern fn(file: *mut file, rw: ::uio_rw, io: *mut ::c_void, ext: ::c_long, - secattr: *mut ::c_void) -> ::c_int, - pub fo_ioctl: extern fn(file: *mut file, a: ::c_long, b: ::caddr_t, c: ::c_long, - d: ::c_long) -> ::c_int, - pub fo_select: extern fn(file: *mut file, a: ::c_int, b: *mut ::c_ushort, - c: extern fn()) -> ::c_int, - pub fo_close: extern fn(file: *mut file) -> ::c_int, - pub fo_fstat: extern fn(file: *mut file, sstat: *mut ::stat) -> ::c_int, - } - - pub struct file { - pub f_flag: ::c_long, - pub f_count: ::c_int, - pub f_options: ::c_short, - pub f_type: ::c_short, - // Should be pointer to 'vnode' - pub f_data: *mut ::c_void, - pub f_offset: ::c_longlong, - pub f_dir_off: ::c_long, - // Should be pointer to 'cred' - pub f_cred: *mut ::c_void, - #[cfg(libc_union)] - pub f_lock: _kernel_simple_lock, - #[cfg(libc_union)] - pub f_offset_lock: _kernel_simple_lock, - pub f_vinfo: ::caddr_t, - pub f_ops: *mut fileops_t, - pub f_parentp: ::caddr_t, - pub f_fnamep: ::caddr_t, - pub f_fdata: [::c_char; 160], - } - - #[cfg(libc_union)] - pub union __ld_info_file { - pub _ldinfo_fd: ::c_int, - pub _ldinfo_fp: *mut file, - pub _core_offset: ::c_long, - } - - pub struct ld_info { - pub ldinfo_next: ::c_uint, - pub ldinfo_flags: ::c_uint, - #[cfg(libc_union)] - pub _file: __ld_info_file, - pub ldinfo_textorg: *mut ::c_void, - pub ldinfo_textsize: ::c_ulong, - pub ldinfo_dataorg: *mut ::c_void, - pub ldinfo_datasize: ::c_ulong, - pub ldinfo_filename: [::c_char; 2], - } - - #[cfg(libc_union)] - pub union __pollfd_ext_u { - pub addr: *mut ::c_void, - pub data32: u32, - pub data: u64, - } - - pub struct pollfd_ext { - pub fd: ::c_int, - pub events: ::c_ushort, - pub revents: ::c_ushort, - #[cfg(libc_union)] - pub data: __pollfd_ext_u, - } -} - -impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { - self.si_addr - } - - pub unsafe fn si_value(&self) -> ::sigval { - self.si_value - } - - pub unsafe fn si_pid(&self) -> ::pid_t { - self.si_pid - } - - pub unsafe fn si_uid(&self) -> ::uid_t { - self.si_uid - } - - pub unsafe fn si_status(&self) -> ::c_int { - self.si_status - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for siginfo_t { - fn eq(&self, other: &siginfo_t) -> bool { - #[cfg(libc_union)] - let value_eq = self.si_value == other.si_value; - #[cfg(not(libc_union))] - let value_eq = true; - self.si_signo == other.si_signo - && self.si_errno == other.si_errno - && self.si_code == other.si_code - && self.si_pid == other.si_pid - && self.si_uid == other.si_uid - && self.si_status == other.si_status - && self.si_addr == other.si_addr - && self.si_band == other.si_band - && self.__si_flags == other.__si_flags - && value_eq - } - } - impl Eq for siginfo_t {} - impl ::fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let mut struct_formatter = f.debug_struct("siginfo_t"); - struct_formatter.field("si_signo", &self.si_signo); - struct_formatter.field("si_errno", &self.si_errno); - struct_formatter.field("si_code", &self.si_code); - struct_formatter.field("si_pid", &self.si_pid); - struct_formatter.field("si_uid", &self.si_uid); - struct_formatter.field("si_status", &self.si_status); - struct_formatter.field("si_addr", &self.si_addr); - struct_formatter.field("si_band", &self.si_band); - #[cfg(libc_union)] - struct_formatter.field("si_value", &self.si_value); - struct_formatter.field("__si_flags", &self.__si_flags); - struct_formatter.finish() - } - } - impl ::hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { - self.si_signo.hash(state); - self.si_errno.hash(state); - self.si_code.hash(state); - self.si_pid.hash(state); - self.si_uid.hash(state); - self.si_status.hash(state); - self.si_addr.hash(state); - self.si_band.hash(state); - #[cfg(libc_union)] - self.si_value.hash(state); - self.__si_flags.hash(state); - } - } - - #[cfg(libc_union)] - impl PartialEq for _kernel_simple_lock { - fn eq(&self, other: &_kernel_simple_lock) -> bool { - unsafe { - self._slock == other._slock - && self._slockp == other._slockp - } - } - } - #[cfg(libc_union)] - impl Eq for _kernel_simple_lock {} - #[cfg(libc_union)] - impl ::fmt::Debug for _kernel_simple_lock { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("_kernel_simple_lock") - .field("_slock", unsafe { &self._slock }) - .field("_slockp", unsafe { &self._slockp }) - .finish() - } - } - #[cfg(libc_union)] - impl ::hash::Hash for _kernel_simple_lock { - fn hash(&self, state: &mut H) { - unsafe { - self._slock.hash(state); - self._slockp.hash(state); - } - } - } - - impl PartialEq for fileops_t { - fn eq(&self, other: &fileops_t) -> bool { - self.fo_rw == other.fo_rw - && self.fo_ioctl == other.fo_ioctl - && self.fo_select == other.fo_select - && self.fo_close == other.fo_close - && self.fo_fstat == other.fo_fstat - } - } - impl Eq for fileops_t {} - impl ::fmt::Debug for fileops_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let mut struct_formatter = f.debug_struct("fileops_t"); - struct_formatter.field("fo_rw", &self.fo_rw); - struct_formatter.field("fo_ioctl", &self.fo_ioctl); - struct_formatter.field("fo_select", &self.fo_select); - struct_formatter.field("fo_close", &self.fo_close); - struct_formatter.field("fo_fstat", &self.fo_fstat); - struct_formatter.finish() - } - } - impl ::hash::Hash for fileops_t { - fn hash(&self, state: &mut H) { - self.fo_rw.hash(state); - self.fo_ioctl.hash(state); - self.fo_select.hash(state); - self.fo_close.hash(state); - self.fo_fstat.hash(state); - } - } - - impl PartialEq for file { - fn eq(&self, other: &file) -> bool { - #[cfg(libc_union)] - let lock_eq = self.f_lock == other.f_lock - && self.f_offset_lock == other.f_offset_lock; - #[cfg(not(libc_union))] - let lock_eq = true; - self.f_flag == other.f_flag - && self.f_count == other.f_count - && self.f_options == other.f_options - && self.f_type == other.f_type - && self.f_data == other.f_data - && self.f_offset == other.f_offset - && self.f_dir_off == other.f_dir_off - && self.f_cred == other.f_cred - && self.f_vinfo == other.f_vinfo - && self.f_ops == other.f_ops - && self.f_parentp == other.f_parentp - && self.f_fnamep == other.f_fnamep - && self.f_fdata == other.f_fdata - && lock_eq - } - } - impl Eq for file {} - impl ::fmt::Debug for file { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let mut struct_formatter = f.debug_struct("file"); - struct_formatter.field("f_flag", &self.f_flag); - struct_formatter.field("f_count", &self.f_count); - struct_formatter.field("f_options", &self.f_options); - struct_formatter.field("f_type", &self.f_type); - struct_formatter.field("f_data", &self.f_data); - struct_formatter.field("f_offset", &self.f_offset); - struct_formatter.field("f_dir_off", &self.f_dir_off); - struct_formatter.field("f_cred", &self.f_cred); - #[cfg(libc_union)] - struct_formatter.field("f_lock", &self.f_lock); - #[cfg(libc_union)] - struct_formatter.field("f_offset_lock", &self.f_offset_lock); - struct_formatter.field("f_vinfo", &self.f_vinfo); - struct_formatter.field("f_ops", &self.f_ops); - struct_formatter.field("f_parentp", &self.f_parentp); - struct_formatter.field("f_fnamep", &self.f_fnamep); - struct_formatter.field("f_fdata", &self.f_fdata); - struct_formatter.finish() - } - } - impl ::hash::Hash for file { - fn hash(&self, state: &mut H) { - self.f_flag.hash(state); - self.f_count.hash(state); - self.f_options.hash(state); - self.f_type.hash(state); - self.f_data.hash(state); - self.f_offset.hash(state); - self.f_dir_off.hash(state); - self.f_cred.hash(state); - #[cfg(libc_union)] - self.f_lock.hash(state); - #[cfg(libc_union)] - self.f_offset_lock.hash(state); - self.f_vinfo.hash(state); - self.f_ops.hash(state); - self.f_parentp.hash(state); - self.f_fnamep.hash(state); - self.f_fdata.hash(state); - } - } - - #[cfg(libc_union)] - impl PartialEq for __ld_info_file { - fn eq(&self, other: &__ld_info_file) -> bool { - unsafe { - self._ldinfo_fd == other._ldinfo_fd - && self._ldinfo_fp == other._ldinfo_fp - && self._core_offset == other._core_offset - } - } - } - #[cfg(libc_union)] - impl Eq for __ld_info_file {} - #[cfg(libc_union)] - impl ::fmt::Debug for __ld_info_file { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("__ld_info_file") - .field("_ldinfo_fd", unsafe { &self._ldinfo_fd }) - .field("_ldinfo_fp", unsafe { &self._ldinfo_fp }) - .field("_core_offset", unsafe { &self._core_offset }) - .finish() - } - } - #[cfg(libc_union)] - impl ::hash::Hash for __ld_info_file { - fn hash(&self, state: &mut H) { - unsafe { - self._ldinfo_fd.hash(state); - self._ldinfo_fp.hash(state); - self._core_offset.hash(state); - } - } - } - - impl PartialEq for ld_info { - fn eq(&self, other: &ld_info) -> bool { - #[cfg(libc_union)] - let file_eq = self._file == other._file; - #[cfg(not(libc_union))] - let file_eq = true; - self.ldinfo_next == other.ldinfo_next - && self.ldinfo_flags == other.ldinfo_flags - && self.ldinfo_textorg == other.ldinfo_textorg - && self.ldinfo_textsize == other.ldinfo_textsize - && self.ldinfo_dataorg == other.ldinfo_dataorg - && self.ldinfo_datasize == other.ldinfo_datasize - && self.ldinfo_filename == other.ldinfo_filename - && file_eq - } - } - impl Eq for ld_info {} - impl ::fmt::Debug for ld_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let mut struct_formatter = f.debug_struct("ld_info"); - struct_formatter.field("ldinfo_next", &self.ldinfo_next); - struct_formatter.field("ldinfo_flags", &self.ldinfo_flags); - struct_formatter.field("ldinfo_textorg", &self.ldinfo_textorg); - struct_formatter.field("ldinfo_textsize", &self.ldinfo_textsize); - struct_formatter.field("ldinfo_dataorg", &self.ldinfo_dataorg); - struct_formatter.field("ldinfo_datasize", &self.ldinfo_datasize); - struct_formatter.field("ldinfo_filename", &self.ldinfo_filename); - #[cfg(libc_union)] - struct_formatter.field("_file", &self._file); - struct_formatter.finish() - } - } - impl ::hash::Hash for ld_info { - fn hash(&self, state: &mut H) { - self.ldinfo_next.hash(state); - self.ldinfo_flags.hash(state); - self.ldinfo_textorg.hash(state); - self.ldinfo_textsize.hash(state); - self.ldinfo_dataorg.hash(state); - self.ldinfo_datasize.hash(state); - self.ldinfo_filename.hash(state); - #[cfg(libc_union)] - self._file.hash(state); - } - } - - #[cfg(libc_union)] - impl PartialEq for __pollfd_ext_u { - fn eq(&self, other: &__pollfd_ext_u) -> bool { - unsafe { - self.addr == other.addr - && self.data32 == other.data32 - && self.data == other.data - } - } - } - #[cfg(libc_union)] - impl Eq for __pollfd_ext_u {} - #[cfg(libc_union)] - impl ::fmt::Debug for __pollfd_ext_u { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("__pollfd_ext_u") - .field("addr", unsafe { &self.addr }) - .field("data32", unsafe { &self.data32 }) - .field("data", unsafe { &self.data }) - .finish() - } - } - #[cfg(libc_union)] - impl ::hash::Hash for __pollfd_ext_u { - fn hash(&self, state: &mut H) { - unsafe { - self.addr.hash(state); - self.data.hash(state); - self.data32.hash(state); - } - } - } - - impl PartialEq for pollfd_ext { - fn eq(&self, other: &pollfd_ext) -> bool { - #[cfg(libc_union)] - let data_eq = self.data == other.data; - #[cfg(not(libc_union))] - let data_eq = true; - self.fd == other.fd - && self.events == other.events - && self.revents == other.revents - && data_eq - } - } - impl Eq for pollfd_ext {} - impl ::fmt::Debug for pollfd_ext { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let mut struct_formatter = f.debug_struct("pollfd_ext"); - struct_formatter.field("fd", &self.fd); - struct_formatter.field("events", &self.events); - struct_formatter.field("revents", &self.revents); - #[cfg(libc_union)] - struct_formatter.field("data", &self.data); - struct_formatter.finish() - } - } - impl ::hash::Hash for pollfd_ext { - fn hash(&self, state: &mut H) { - self.fd.hash(state); - self.events.hash(state); - self.revents.hash(state); - #[cfg(libc_union)] - self.data.hash(state); - } - } - } -} - -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - __mt_word: [0, 2, 0, 0, 0, 0, 0, 0], -}; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - __cv_word: [0, 0, 0, 0, 2, 0], -}; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - __rw_word: [2, 0, 0, 0, 0, 0, 0, 0, 0, 0], -}; -pub const RLIM_INFINITY: ::c_ulong = 0x7fffffffffffffff; - -extern "C" { - pub fn getsystemcfg(label: ::c_int) -> ::c_ulong; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/align.rs deleted file mode 100644 index 4fdba9a6a..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/align.rs +++ /dev/null @@ -1,6 +0,0 @@ -s! { - #[repr(align(4))] - pub struct in6_addr { - pub s6_addr: [u8; 16], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/align.rs deleted file mode 100644 index ca1fe1ce2..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 2] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/mod.rs deleted file mode 100644 index 0f1722f97..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b32/mod.rs +++ /dev/null @@ -1,119 +0,0 @@ -//! 32-bit specific Apple (ios/darwin) definitions - -pub type c_long = i32; -pub type c_ulong = u32; -pub type boolean_t = ::c_int; - -s! { - pub struct if_data { - pub ifi_type: ::c_uchar, - pub ifi_typelen: ::c_uchar, - pub ifi_physical: ::c_uchar, - pub ifi_addrlen: ::c_uchar, - pub ifi_hdrlen: ::c_uchar, - pub ifi_recvquota: ::c_uchar, - pub ifi_xmitquota: ::c_uchar, - pub ifi_unused1: ::c_uchar, - pub ifi_mtu: u32, - pub ifi_metric: u32, - pub ifi_baudrate: u32, - pub ifi_ipackets: u32, - pub ifi_ierrors: u32, - pub ifi_opackets: u32, - pub ifi_oerrors: u32, - pub ifi_collisions: u32, - pub ifi_ibytes: u32, - pub ifi_obytes: u32, - pub ifi_imcasts: u32, - pub ifi_omcasts: u32, - pub ifi_iqdrops: u32, - pub ifi_noproto: u32, - pub ifi_recvtiming: u32, - pub ifi_xmittiming: u32, - pub ifi_lastchange: ::timeval, - pub ifi_unused2: u32, - pub ifi_hwassist: u32, - pub ifi_reserved1: u32, - pub ifi_reserved2: u32, - } - - pub struct bpf_hdr { - pub bh_tstamp: ::timeval, - pub bh_caplen: u32, - pub bh_datalen: u32, - pub bh_hdrlen: ::c_ushort, - } - - pub struct malloc_zone_t { - __private: [::uintptr_t; 18], // FIXME: keeping private for now - } -} - -s_no_extra_traits! { - pub struct pthread_attr_t { - __sig: c_long, - __opaque: [::c_char; 36] - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_attr_t { - fn eq(&self, other: &pthread_attr_t) -> bool { - self.__sig == other.__sig - && self.__opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_attr_t {} - impl ::fmt::Debug for pthread_attr_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_attr_t") - .field("__sig", &self.__sig) - // FIXME: .field("__opaque", &self.__opaque) - .finish() - } - } - impl ::hash::Hash for pthread_attr_t { - fn hash(&self, state: &mut H) { - self.__sig.hash(state); - self.__opaque.hash(state); - } - } - } -} - -#[doc(hidden)] -#[deprecated(since = "0.2.55")] -pub const NET_RT_MAXID: ::c_int = 10; - -pub const __PTHREAD_MUTEX_SIZE__: usize = 40; -pub const __PTHREAD_COND_SIZE__: usize = 24; -pub const __PTHREAD_CONDATTR_SIZE__: usize = 4; -pub const __PTHREAD_RWLOCK_SIZE__: usize = 124; -pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 12; - -pub const TIOCTIMESTAMP: ::c_ulong = 0x40087459; -pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40087458; - -pub const BIOCSETF: ::c_ulong = 0x80084267; -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8008426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4008426e; -pub const BIOCSETFNR: ::c_ulong = 0x8008427e; - -extern "C" { - pub fn exchangedata( - path1: *const ::c_char, - path2: *const ::c_char, - options: ::c_ulong, - ) -> ::c_int; -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/align.rs deleted file mode 100644 index 29db97ec7..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/align.rs +++ /dev/null @@ -1,56 +0,0 @@ -pub type mcontext_t = *mut __darwin_mcontext64; - -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - pub struct max_align_t { - priv_: f64 - } -} - -s! { - pub struct ucontext_t { - pub uc_onstack: ::c_int, - pub uc_sigmask: ::sigset_t, - pub uc_stack: ::stack_t, - pub uc_link: *mut ::ucontext_t, - pub uc_mcsize: usize, - pub uc_mcontext: mcontext_t, - __mcontext_data: __darwin_mcontext64, - } - - pub struct __darwin_mcontext64 { - pub __es: __darwin_arm_exception_state64, - pub __ss: __darwin_arm_thread_state64, - pub __ns: __darwin_arm_neon_state64, - } - - pub struct __darwin_arm_exception_state64 { - pub __far: u64, - pub __esr: u32, - pub __exception: u32, - } - - pub struct __darwin_arm_thread_state64 { - pub __x: [u64; 29], - pub __fp: u64, - pub __lr: u64, - pub __sp: u64, - pub __pc: u64, - pub __cpsr: u32, - pub __pad: u32, - } - - // This type natively uses a uint128, but for a while we hacked - // it in with repr(align) and `[u64; 2]`. uint128 isn't available - // all the way back to our earliest supported versions so we - // preserver the old shim. - #[cfg_attr(not(libc_int128), repr(align(16)))] - pub struct __darwin_arm_neon_state64 { - #[cfg(libc_int128)] - pub __v: [::__uint128_t; 32], - #[cfg(not(libc_int128))] - pub __v: [[u64; 2]; 32], - pub __fpsr: u32, - pub __fpcr: u32, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/mod.rs deleted file mode 100644 index 79e9ac842..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/aarch64/mod.rs +++ /dev/null @@ -1,14 +0,0 @@ -pub type boolean_t = ::c_int; - -s! { - pub struct malloc_zone_t { - __private: [::uintptr_t; 18], // FIXME: needs arm64 auth pointers support - } -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/align.rs deleted file mode 100644 index ca1fe1ce2..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 2] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/mod.rs deleted file mode 100644 index 48d94bcd6..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/mod.rs +++ /dev/null @@ -1,124 +0,0 @@ -//! 64-bit specific Apple (ios/darwin) definitions - -pub type c_long = i64; -pub type c_ulong = u64; - -s! { - pub struct timeval32 { - pub tv_sec: i32, - pub tv_usec: i32, - } - - pub struct if_data { - pub ifi_type: ::c_uchar, - pub ifi_typelen: ::c_uchar, - pub ifi_physical: ::c_uchar, - pub ifi_addrlen: ::c_uchar, - pub ifi_hdrlen: ::c_uchar, - pub ifi_recvquota: ::c_uchar, - pub ifi_xmitquota: ::c_uchar, - pub ifi_unused1: ::c_uchar, - pub ifi_mtu: u32, - pub ifi_metric: u32, - pub ifi_baudrate: u32, - pub ifi_ipackets: u32, - pub ifi_ierrors: u32, - pub ifi_opackets: u32, - pub ifi_oerrors: u32, - pub ifi_collisions: u32, - pub ifi_ibytes: u32, - pub ifi_obytes: u32, - pub ifi_imcasts: u32, - pub ifi_omcasts: u32, - pub ifi_iqdrops: u32, - pub ifi_noproto: u32, - pub ifi_recvtiming: u32, - pub ifi_xmittiming: u32, - pub ifi_lastchange: timeval32, - pub ifi_unused2: u32, - pub ifi_hwassist: u32, - pub ifi_reserved1: u32, - pub ifi_reserved2: u32, - } - - pub struct bpf_hdr { - pub bh_tstamp: ::timeval32, - pub bh_caplen: u32, - pub bh_datalen: u32, - pub bh_hdrlen: ::c_ushort, - } -} - -s_no_extra_traits! { - pub struct pthread_attr_t { - __sig: c_long, - __opaque: [::c_char; 56] - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_attr_t { - fn eq(&self, other: &pthread_attr_t) -> bool { - self.__sig == other.__sig - && self.__opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_attr_t {} - impl ::fmt::Debug for pthread_attr_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_attr_t") - .field("__sig", &self.__sig) - // FIXME: .field("__opaque", &self.__opaque) - .finish() - } - } - impl ::hash::Hash for pthread_attr_t { - fn hash(&self, state: &mut H) { - self.__sig.hash(state); - self.__opaque.hash(state); - } - } - } -} - -#[doc(hidden)] -#[deprecated(since = "0.2.55")] -pub const NET_RT_MAXID: ::c_int = 11; - -pub const __PTHREAD_MUTEX_SIZE__: usize = 56; -pub const __PTHREAD_COND_SIZE__: usize = 40; -pub const __PTHREAD_CONDATTR_SIZE__: usize = 8; -pub const __PTHREAD_RWLOCK_SIZE__: usize = 192; -pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 16; - -pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; -pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40107458; - -pub const BIOCSETF: ::c_ulong = 0x80104267; -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; -pub const BIOCSETFNR: ::c_ulong = 0x8010427e; - -extern "C" { - pub fn exchangedata( - path1: *const ::c_char, - path2: *const ::c_char, - options: ::c_uint, - ) -> ::c_int; -} - -cfg_if! { - if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } else if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/align.rs deleted file mode 100644 index ca1fe1ce2..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 2] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/mod.rs deleted file mode 100644 index 653650c26..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/b64/x86_64/mod.rs +++ /dev/null @@ -1,180 +0,0 @@ -pub type boolean_t = ::c_uint; -pub type mcontext_t = *mut __darwin_mcontext64; - -s! { - pub struct ucontext_t { - pub uc_onstack: ::c_int, - pub uc_sigmask: ::sigset_t, - pub uc_stack: ::stack_t, - pub uc_link: *mut ::ucontext_t, - pub uc_mcsize: usize, - pub uc_mcontext: mcontext_t, - } - - pub struct __darwin_mcontext64 { - pub __es: __darwin_x86_exception_state64, - pub __ss: __darwin_x86_thread_state64, - pub __fs: __darwin_x86_float_state64, - } - - pub struct __darwin_x86_exception_state64 { - pub __trapno: u16, - pub __cpu: u16, - pub __err: u32, - pub __faultvaddr: u64, - } - - pub struct __darwin_x86_thread_state64 { - pub __rax: u64, - pub __rbx: u64, - pub __rcx: u64, - pub __rdx: u64, - pub __rdi: u64, - pub __rsi: u64, - pub __rbp: u64, - pub __rsp: u64, - pub __r8: u64, - pub __r9: u64, - pub __r10: u64, - pub __r11: u64, - pub __r12: u64, - pub __r13: u64, - pub __r14: u64, - pub __r15: u64, - pub __rip: u64, - pub __rflags: u64, - pub __cs: u64, - pub __fs: u64, - pub __gs: u64, - } - - pub struct __darwin_x86_float_state64 { - pub __fpu_reserved: [::c_int; 2], - __fpu_fcw: ::c_short, - __fpu_fsw: ::c_short, - pub __fpu_ftw: u8, - pub __fpu_rsrv1: u8, - pub __fpu_fop: u16, - pub __fpu_ip: u32, - pub __fpu_cs: u16, - pub __fpu_rsrv2: u16, - pub __fpu_dp: u32, - pub __fpu_ds: u16, - pub __fpu_rsrv3: u16, - pub __fpu_mxcsr: u32, - pub __fpu_mxcsrmask: u32, - pub __fpu_stmm0: __darwin_mmst_reg, - pub __fpu_stmm1: __darwin_mmst_reg, - pub __fpu_stmm2: __darwin_mmst_reg, - pub __fpu_stmm3: __darwin_mmst_reg, - pub __fpu_stmm4: __darwin_mmst_reg, - pub __fpu_stmm5: __darwin_mmst_reg, - pub __fpu_stmm6: __darwin_mmst_reg, - pub __fpu_stmm7: __darwin_mmst_reg, - pub __fpu_xmm0: __darwin_xmm_reg, - pub __fpu_xmm1: __darwin_xmm_reg, - pub __fpu_xmm2: __darwin_xmm_reg, - pub __fpu_xmm3: __darwin_xmm_reg, - pub __fpu_xmm4: __darwin_xmm_reg, - pub __fpu_xmm5: __darwin_xmm_reg, - pub __fpu_xmm6: __darwin_xmm_reg, - pub __fpu_xmm7: __darwin_xmm_reg, - pub __fpu_xmm8: __darwin_xmm_reg, - pub __fpu_xmm9: __darwin_xmm_reg, - pub __fpu_xmm10: __darwin_xmm_reg, - pub __fpu_xmm11: __darwin_xmm_reg, - pub __fpu_xmm12: __darwin_xmm_reg, - pub __fpu_xmm13: __darwin_xmm_reg, - pub __fpu_xmm14: __darwin_xmm_reg, - pub __fpu_xmm15: __darwin_xmm_reg, - // this field is actually [u8; 96], but defining it with a bigger type - // allows us to auto-implement traits for it since the length of the - // array is less than 32 - __fpu_rsrv4: [u32; 24], - pub __fpu_reserved1: ::c_int, - } - - pub struct __darwin_mmst_reg { - pub __mmst_reg: [::c_char; 10], - pub __mmst_rsrv: [::c_char; 6], - } - - pub struct __darwin_xmm_reg { - pub __xmm_reg: [::c_char; 16], - } - - pub struct malloc_introspection_t { - _private: [::uintptr_t; 16], // FIXME: keeping private for now - } - - pub struct malloc_zone_t { - _reserved1: *mut ::c_void, - _reserved2: *mut ::c_void, - pub size: ::Option ::size_t>, - pub malloc: ::Option *mut ::c_void>, - pub calloc: ::Option *mut ::c_void>, - pub valloc: ::Option *mut ::c_void>, - pub free: ::Option, - pub realloc: ::Option *mut ::c_void>, - pub destroy: ::Option, - pub zone_name: *const ::c_char, - pub batch_malloc: ::Option ::c_uint>, - pub batch_free: ::Option, - pub introspect: *mut malloc_introspection_t, - pub version: ::c_uint, - pub memalign: ::Option *mut ::c_void>, - pub free_definite_size: ::Option, - pub pressure_relief: ::Option ::size_t>, - pub claimed_address: ::Option ::boolean_t>, - } -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/long_array.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/long_array.rs deleted file mode 100644 index 4c56a275a..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/long_array.rs +++ /dev/null @@ -1,8 +0,0 @@ -s! { - pub struct ctl_info { - pub ctl_id: u32, - pub ctl_name: [::c_char; MAX_KCTL_NAME], - } -} - -pub const MAX_KCTL_NAME: usize = 96; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/mod.rs deleted file mode 100644 index c6f254ea5..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/apple/mod.rs +++ /dev/null @@ -1,6125 +0,0 @@ -//! Apple (ios/darwin)-specific definitions -//! -//! This covers *-apple-* triples currently -pub type c_char = i8; -pub type wchar_t = i32; -pub type clock_t = c_ulong; -pub type time_t = c_long; -pub type suseconds_t = i32; -pub type dev_t = i32; -pub type ino_t = u64; -pub type mode_t = u16; -pub type nlink_t = u16; -pub type blksize_t = i32; -pub type rlim_t = u64; -pub type pthread_key_t = c_ulong; -pub type sigset_t = u32; -pub type clockid_t = ::c_uint; -pub type fsblkcnt_t = ::c_uint; -pub type fsfilcnt_t = ::c_uint; -pub type speed_t = ::c_ulong; -pub type tcflag_t = ::c_ulong; -pub type nl_item = ::c_int; -pub type id_t = ::c_uint; -pub type sem_t = ::c_int; -pub type idtype_t = ::c_uint; -pub type integer_t = ::c_int; -pub type cpu_type_t = integer_t; -pub type cpu_subtype_t = integer_t; -pub type natural_t = u32; -pub type mach_msg_type_number_t = natural_t; -pub type kern_return_t = ::c_int; -pub type uuid_t = [u8; 16]; -pub type task_info_t = *mut integer_t; -pub type host_info_t = *mut integer_t; -pub type task_flavor_t = natural_t; -pub type rusage_info_t = *mut ::c_void; -pub type vm_offset_t = ::uintptr_t; -pub type vm_size_t = ::uintptr_t; -pub type vm_address_t = vm_offset_t; - -pub type posix_spawnattr_t = *mut ::c_void; -pub type posix_spawn_file_actions_t = *mut ::c_void; -pub type key_t = ::c_int; -pub type shmatt_t = ::c_ushort; - -pub type sae_associd_t = u32; -pub type sae_connid_t = u32; - -pub type mach_port_t = ::c_uint; -pub type host_t = ::c_uint; -pub type host_flavor_t = integer_t; -pub type host_info64_t = *mut integer_t; -pub type processor_flavor_t = ::c_int; -pub type thread_flavor_t = natural_t; -pub type thread_inspect_t = ::mach_port_t; -pub type thread_act_t = ::mach_port_t; -pub type thread_act_array_t = *mut ::thread_act_t; -pub type policy_t = ::c_int; -pub type mach_vm_address_t = u64; -pub type mach_vm_offset_t = u64; -pub type mach_vm_size_t = u64; -pub type vm_map_t = ::mach_port_t; -pub type mem_entry_name_port_t = ::mach_port_t; -pub type memory_object_t = ::mach_port_t; -pub type memory_object_offset_t = ::c_ulonglong; -pub type vm_inherit_t = ::c_uint; -pub type vm_prot_t = ::c_int; - -pub type ledger_t = ::mach_port_t; -pub type ledger_array_t = *mut ::ledger_t; - -pub type iconv_t = *mut ::c_void; - -pub type processor_cpu_load_info_t = *mut processor_cpu_load_info; -pub type processor_cpu_load_info_data_t = processor_cpu_load_info; -pub type processor_basic_info_t = *mut processor_basic_info; -pub type processor_basic_info_data_t = processor_basic_info; -pub type processor_set_basic_info_data_t = processor_set_basic_info; -pub type processor_set_basic_info_t = *mut processor_set_basic_info; -pub type processor_set_load_info_data_t = processor_set_load_info; -pub type processor_set_load_info_t = *mut processor_set_load_info; -pub type processor_info_t = *mut integer_t; -pub type processor_info_array_t = *mut integer_t; - -pub type mach_task_basic_info_data_t = mach_task_basic_info; -pub type mach_task_basic_info_t = *mut mach_task_basic_info; -pub type task_thread_times_info_data_t = task_thread_times_info; -pub type task_thread_times_info_t = *mut task_thread_times_info; - -pub type thread_info_t = *mut integer_t; -pub type thread_basic_info_t = *mut thread_basic_info; -pub type thread_basic_info_data_t = thread_basic_info; -pub type thread_identifier_info_t = *mut thread_identifier_info; -pub type thread_identifier_info_data_t = thread_identifier_info; -pub type thread_extended_info_t = *mut thread_extended_info; -pub type thread_extended_info_data_t = thread_extended_info; - -pub type thread_t = ::mach_port_t; -pub type thread_policy_flavor_t = natural_t; -pub type thread_policy_t = *mut integer_t; -pub type thread_latency_qos_t = integer_t; -pub type thread_throughput_qos_t = integer_t; -pub type thread_standard_policy_data_t = thread_standard_policy; -pub type thread_standard_policy_t = *mut thread_standard_policy; -pub type thread_extended_policy_data_t = thread_extended_policy; -pub type thread_extended_policy_t = *mut thread_extended_policy; -pub type thread_time_constraint_policy_data_t = thread_time_constraint_policy; -pub type thread_time_constraint_policy_t = *mut thread_time_constraint_policy; -pub type thread_precedence_policy_data_t = thread_precedence_policy; -pub type thread_precedence_policy_t = *mut thread_precedence_policy; -pub type thread_affinity_policy_data_t = thread_affinity_policy; -pub type thread_affinity_policy_t = *mut thread_affinity_policy; -pub type thread_background_policy_data_t = thread_background_policy; -pub type thread_background_policy_t = *mut thread_background_policy; -pub type thread_latency_qos_policy_data_t = thread_latency_qos_policy; -pub type thread_latency_qos_policy_t = *mut thread_latency_qos_policy; -pub type thread_throughput_qos_policy_data_t = thread_throughput_qos_policy; -pub type thread_throughput_qos_policy_t = *mut thread_throughput_qos_policy; - -pub type pthread_introspection_hook_t = - extern "C" fn(event: ::c_uint, thread: ::pthread_t, addr: *mut ::c_void, size: ::size_t); -pub type pthread_jit_write_callback_t = ::Option ::c_int>; - -pub type os_unfair_lock = os_unfair_lock_s; -pub type os_unfair_lock_t = *mut os_unfair_lock; - -pub type os_log_t = *mut ::c_void; -pub type os_log_type_t = u8; -pub type os_signpost_id_t = u64; -pub type os_signpost_type_t = u8; - -pub type vm_statistics_t = *mut vm_statistics; -pub type vm_statistics_data_t = vm_statistics; -pub type vm_statistics64_t = *mut vm_statistics64; -pub type vm_statistics64_data_t = vm_statistics64; - -pub type task_t = ::mach_port_t; -pub type task_inspect_t = ::mach_port_t; - -pub type sysdir_search_path_enumeration_state = ::c_uint; - -pub type CCStatus = i32; -pub type CCCryptorStatus = i32; -pub type CCRNGStatus = ::CCCryptorStatus; - -pub type copyfile_state_t = *mut ::c_void; -pub type copyfile_flags_t = u32; - -pub type attrgroup_t = u32; -pub type vol_capabilities_set_t = [u32; 4]; - -deprecated_mach! { - pub type mach_timebase_info_data_t = mach_timebase_info; -} - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { - fn clone(&self) -> timezone { - *self - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -#[repr(u32)] -pub enum qos_class_t { - QOS_CLASS_USER_INTERACTIVE = 0x21, - QOS_CLASS_USER_INITIATED = 0x19, - QOS_CLASS_DEFAULT = 0x15, - QOS_CLASS_UTILITY = 0x11, - QOS_CLASS_BACKGROUND = 0x09, - QOS_CLASS_UNSPECIFIED = 0x00, -} -impl ::Copy for qos_class_t {} -impl ::Clone for qos_class_t { - fn clone(&self) -> qos_class_t { - *self - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -#[repr(u32)] -pub enum sysdir_search_path_directory_t { - SYSDIR_DIRECTORY_APPLICATION = 1, - SYSDIR_DIRECTORY_DEMO_APPLICATION = 2, - SYSDIR_DIRECTORY_DEVELOPER_APPLICATION = 3, - SYSDIR_DIRECTORY_ADMIN_APPLICATION = 4, - SYSDIR_DIRECTORY_LIBRARY = 5, - SYSDIR_DIRECTORY_DEVELOPER = 6, - SYSDIR_DIRECTORY_USER = 7, - SYSDIR_DIRECTORY_DOCUMENTATION = 8, - SYSDIR_DIRECTORY_DOCUMENT = 9, - SYSDIR_DIRECTORY_CORESERVICE = 10, - SYSDIR_DIRECTORY_AUTOSAVED_INFORMATION = 11, - SYSDIR_DIRECTORY_DESKTOP = 12, - SYSDIR_DIRECTORY_CACHES = 13, - SYSDIR_DIRECTORY_APPLICATION_SUPPORT = 14, - SYSDIR_DIRECTORY_DOWNLOADS = 15, - SYSDIR_DIRECTORY_INPUT_METHODS = 16, - SYSDIR_DIRECTORY_MOVIES = 17, - SYSDIR_DIRECTORY_MUSIC = 18, - SYSDIR_DIRECTORY_PICTURES = 19, - SYSDIR_DIRECTORY_PRINTER_DESCRIPTION = 20, - SYSDIR_DIRECTORY_SHARED_PUBLIC = 21, - SYSDIR_DIRECTORY_PREFERENCE_PANES = 22, - SYSDIR_DIRECTORY_ALL_APPLICATIONS = 100, - SYSDIR_DIRECTORY_ALL_LIBRARIES = 101, -} -impl ::Copy for sysdir_search_path_directory_t {} -impl ::Clone for sysdir_search_path_directory_t { - fn clone(&self) -> sysdir_search_path_directory_t { - *self - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -#[repr(u32)] -pub enum sysdir_search_path_domain_mask_t { - SYSDIR_DOMAIN_MASK_USER = (1 << 0), - SYSDIR_DOMAIN_MASK_LOCAL = (1 << 1), - SYSDIR_DOMAIN_MASK_NETWORK = (1 << 2), - SYSDIR_DOMAIN_MASK_SYSTEM = (1 << 3), - SYSDIR_DOMAIN_MASK_ALL = 0x0ffff, -} -impl ::Copy for sysdir_search_path_domain_mask_t {} -impl ::Clone for sysdir_search_path_domain_mask_t { - fn clone(&self) -> sysdir_search_path_domain_mask_t { - *self - } -} - -s! { - pub struct ip_mreq { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct ip_mreqn { - pub imr_multiaddr: in_addr, - pub imr_address: in_addr, - pub imr_ifindex: ::c_int, - } - - pub struct ip_mreq_source { - pub imr_multiaddr: in_addr, - pub imr_sourceaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_offset: ::off_t, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_reqprio: ::c_int, - pub aio_sigevent: sigevent, - pub aio_lio_opcode: ::c_int - } - - pub struct glob_t { - pub gl_pathc: ::size_t, - __unused1: ::c_int, - pub gl_offs: ::size_t, - __unused2: ::c_int, - pub gl_pathv: *mut *mut ::c_char, - - __unused3: *mut ::c_void, - - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - __unused6: *mut ::c_void, - __unused7: *mut ::c_void, - __unused8: *mut ::c_void, - } - - pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::socklen_t, - pub ai_canonname: *mut ::c_char, - pub ai_addr: *mut ::sockaddr, - pub ai_next: *mut addrinfo, - } - - #[deprecated( - since = "0.2.55", - note = "Use the `mach2` crate instead", - )] - pub struct mach_timebase_info { - pub numer: u32, - pub denom: u32, - } - - pub struct stat { - pub st_dev: dev_t, - pub st_mode: mode_t, - pub st_nlink: nlink_t, - pub st_ino: ino_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: dev_t, - pub st_atime: time_t, - pub st_atime_nsec: c_long, - pub st_mtime: time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: time_t, - pub st_ctime_nsec: c_long, - pub st_birthtime: time_t, - pub st_birthtime_nsec: c_long, - pub st_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: blksize_t, - pub st_flags: u32, - pub st_gen: u32, - pub st_lspare: i32, - pub st_qspare: [i64; 2], - } - - pub struct pthread_mutexattr_t { - __sig: ::c_long, - __opaque: [u8; 8], - } - - pub struct pthread_condattr_t { - __sig: ::c_long, - __opaque: [u8; __PTHREAD_CONDATTR_SIZE__], - } - - pub struct pthread_rwlockattr_t { - __sig: ::c_long, - __opaque: [u8; __PTHREAD_RWLOCKATTR_SIZE__], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub si_pid: ::pid_t, - pub si_uid: ::uid_t, - pub si_status: ::c_int, - pub si_addr: *mut ::c_void, - //Requires it to be union for tests - //pub si_value: ::sigval, - _pad: [usize; 9], - } - - pub struct sigaction { - // FIXME: this field is actually a union - pub sa_sigaction: ::sighandler_t, - pub sa_mask: sigset_t, - pub sa_flags: ::c_int, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - } - - pub struct fstore_t { - pub fst_flags: ::c_uint, - pub fst_posmode: ::c_int, - pub fst_offset: ::off_t, - pub fst_length: ::off_t, - pub fst_bytesalloc: ::off_t, - } - - pub struct radvisory { - pub ra_offset: ::off_t, - pub ra_count: ::c_int, - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - } - - pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, - } - - pub struct sockaddr_in { - pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], - } - - pub struct kevent64_s { - pub ident: u64, - pub filter: i16, - pub flags: u16, - pub fflags: u32, - pub data: i64, - pub udata: u64, - pub ext: [u64; 2], - } - - pub struct dqblk { - pub dqb_bhardlimit: u64, - pub dqb_bsoftlimit: u64, - pub dqb_curbytes: u64, - pub dqb_ihardlimit: u32, - pub dqb_isoftlimit: u32, - pub dqb_curinodes: u32, - pub dqb_btime: u32, - pub dqb_itime: u32, - pub dqb_id: u32, - pub dqb_spare: [u32; 4], - } - - pub struct if_msghdr { - pub ifm_msglen: ::c_ushort, - pub ifm_version: ::c_uchar, - pub ifm_type: ::c_uchar, - pub ifm_addrs: ::c_int, - pub ifm_flags: ::c_int, - pub ifm_index: ::c_ushort, - pub ifm_data: if_data, - } - - pub struct ifa_msghdr { - pub ifam_msglen: ::c_ushort, - pub ifam_version: ::c_uchar, - pub ifam_type: ::c_uchar, - pub ifam_addrs: ::c_int, - pub ifam_flags: ::c_int, - pub ifam_index: ::c_ushort, - pub ifam_metric: ::c_int, - } - - pub struct ifma_msghdr { - pub ifmam_msglen: ::c_ushort, - pub ifmam_version: ::c_uchar, - pub ifmam_type: ::c_uchar, - pub ifmam_addrs: ::c_int, - pub ifmam_flags: ::c_int, - pub ifmam_index: ::c_ushort, - } - - pub struct ifma_msghdr2 { - pub ifmam_msglen: ::c_ushort, - pub ifmam_version: ::c_uchar, - pub ifmam_type: ::c_uchar, - pub ifmam_addrs: ::c_int, - pub ifmam_flags: ::c_int, - pub ifmam_index: ::c_ushort, - pub ifmam_refcount: i32, - } - - pub struct rt_metrics { - pub rmx_locks: u32, - pub rmx_mtu: u32, - pub rmx_hopcount: u32, - pub rmx_expire: i32, - pub rmx_recvpipe: u32, - pub rmx_sendpipe: u32, - pub rmx_ssthresh: u32, - pub rmx_rtt: u32, - pub rmx_rttvar: u32, - pub rmx_pksent: u32, - pub rmx_state: u32, - pub rmx_filler: [u32; 3], - } - - pub struct rt_msghdr { - pub rtm_msglen: ::c_ushort, - pub rtm_version: ::c_uchar, - pub rtm_type: ::c_uchar, - pub rtm_index: ::c_ushort, - pub rtm_flags: ::c_int, - pub rtm_addrs: ::c_int, - pub rtm_pid: ::pid_t, - pub rtm_seq: ::c_int, - pub rtm_errno: ::c_int, - pub rtm_use: ::c_int, - pub rtm_inits: u32, - pub rtm_rmx: rt_metrics, - } - - pub struct rt_msghdr2 { - pub rtm_msglen: ::c_ushort, - pub rtm_version: ::c_uchar, - pub rtm_type: ::c_uchar, - pub rtm_index: ::c_ushort, - pub rtm_flags: ::c_int, - pub rtm_addrs: ::c_int, - pub rtm_refcnt: i32, - pub rtm_parentflags: ::c_int, - pub rtm_reserved: ::c_int, - pub rtm_use: ::c_int, - pub rtm_inits: u32, - pub rtm_rmx: rt_metrics, - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - } - - pub struct flock { - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - pub l_type: ::c_short, - pub l_whence: ::c_short, - } - - pub struct sf_hdtr { - pub headers: *mut ::iovec, - pub hdr_cnt: ::c_int, - pub trailers: *mut ::iovec, - pub trl_cnt: ::c_int, - } - - pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, - } - - pub struct proc_taskinfo { - pub pti_virtual_size: u64, - pub pti_resident_size: u64, - pub pti_total_user: u64, - pub pti_total_system: u64, - pub pti_threads_user: u64, - pub pti_threads_system: u64, - pub pti_policy: i32, - pub pti_faults: i32, - pub pti_pageins: i32, - pub pti_cow_faults: i32, - pub pti_messages_sent: i32, - pub pti_messages_received: i32, - pub pti_syscalls_mach: i32, - pub pti_syscalls_unix: i32, - pub pti_csw: i32, - pub pti_threadnum: i32, - pub pti_numrunning: i32, - pub pti_priority: i32, - } - - pub struct proc_bsdinfo { - pub pbi_flags: u32, - pub pbi_status: u32, - pub pbi_xstatus: u32, - pub pbi_pid: u32, - pub pbi_ppid: u32, - pub pbi_uid: ::uid_t, - pub pbi_gid: ::gid_t, - pub pbi_ruid: ::uid_t, - pub pbi_rgid: ::gid_t, - pub pbi_svuid: ::uid_t, - pub pbi_svgid: ::gid_t, - pub rfu_1: u32, - pub pbi_comm: [::c_char; MAXCOMLEN], - pub pbi_name: [::c_char; 32], // MAXCOMLEN * 2, but macro isn't happy... - pub pbi_nfiles: u32, - pub pbi_pgid: u32, - pub pbi_pjobc: u32, - pub e_tdev: u32, - pub e_tpgid: u32, - pub pbi_nice: i32, - pub pbi_start_tvsec: u64, - pub pbi_start_tvusec: u64, - } - - pub struct proc_taskallinfo { - pub pbsd: proc_bsdinfo, - pub ptinfo: proc_taskinfo, - } - - pub struct xsw_usage { - pub xsu_total: u64, - pub xsu_avail: u64, - pub xsu_used: u64, - pub xsu_pagesize: u32, - pub xsu_encrypted: ::boolean_t, - } - - pub struct xucred { - pub cr_version: ::c_uint, - pub cr_uid: ::uid_t, - pub cr_ngroups: ::c_short, - pub cr_groups: [::gid_t;16] - } - - #[deprecated( - since = "0.2.55", - note = "Use the `mach2` crate instead", - )] - pub struct mach_header { - pub magic: u32, - pub cputype: cpu_type_t, - pub cpusubtype: cpu_subtype_t, - pub filetype: u32, - pub ncmds: u32, - pub sizeofcmds: u32, - pub flags: u32, - } - - #[deprecated( - since = "0.2.55", - note = "Use the `mach2` crate instead", - )] - pub struct mach_header_64 { - pub magic: u32, - pub cputype: cpu_type_t, - pub cpusubtype: cpu_subtype_t, - pub filetype: u32, - pub ncmds: u32, - pub sizeofcmds: u32, - pub flags: u32, - pub reserved: u32, - } - - pub struct segment_command { - pub cmd: u32, - pub cmdsize: u32, - pub segname: [::c_char; 16], - pub vmaddr: u32, - pub vmsize: u32, - pub fileoff: u32, - pub filesize: u32, - pub maxprot: vm_prot_t, - pub initprot: vm_prot_t, - pub nsects: u32, - pub flags: u32, - } - - pub struct segment_command_64 { - pub cmd: u32, - pub cmdsize: u32, - pub segname: [::c_char; 16], - pub vmaddr: u64, - pub vmsize: u64, - pub fileoff: u64, - pub filesize: u64, - pub maxprot: vm_prot_t, - pub initprot: vm_prot_t, - pub nsects: u32, - pub flags: u32, - } - - pub struct load_command { - pub cmd: u32, - pub cmdsize: u32, - } - - pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 12], - } - - pub struct sockaddr_inarp { - pub sin_len: ::c_uchar, - pub sin_family: ::c_uchar, - pub sin_port: ::c_ushort, - pub sin_addr: ::in_addr, - pub sin_srcaddr: ::in_addr, - pub sin_tos: ::c_ushort, - pub sin_other: ::c_ushort, - } - - pub struct sockaddr_ctl { - pub sc_len: ::c_uchar, - pub sc_family: ::c_uchar, - pub ss_sysaddr: u16, - pub sc_id: u32, - pub sc_unit: u32, - pub sc_reserved: [u32; 5], - } - - pub struct in_pktinfo { - pub ipi_ifindex: ::c_uint, - pub ipi_spec_dst: ::in_addr, - pub ipi_addr: ::in_addr, - } - - pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_uint, - } - - // sys/ipc.h: - - pub struct ipc_perm { - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub _seq: ::c_ushort, - pub _key: ::key_t, - } - - // sys/sem.h - - pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, - } - - // sys/shm.h - - pub struct arphdr { - pub ar_hrd: u16, - pub ar_pro: u16, - pub ar_hln: u8, - pub ar_pln: u8, - pub ar_op: u16, - } - - pub struct in_addr { - pub s_addr: ::in_addr_t, - } - - // net/ndrv.h - pub struct sockaddr_ndrv { - pub snd_len: ::c_uchar, - pub snd_family: ::c_uchar, - pub snd_name: [::c_uchar; 16] // IFNAMSIZ from if.h - } - - // sys/socket.h - - pub struct sa_endpoints_t { - pub sae_srcif: ::c_uint, // optional source interface - pub sae_srcaddr: *const ::sockaddr, // optional source address - pub sae_srcaddrlen: ::socklen_t, // size of source address - pub sae_dstaddr: *const ::sockaddr, // destination address - pub sae_dstaddrlen: ::socklen_t, // size of destination address - } - - pub struct timex { - pub modes: ::c_uint, - pub offset: ::c_long, - pub freq: ::c_long, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub status: ::c_int, - pub constant: ::c_long, - pub precision: ::c_long, - pub tolerance: ::c_long, - pub ppsfreq: ::c_long, - pub jitter: ::c_long, - pub shift: ::c_int, - pub stabil: ::c_long, - pub jitcnt: ::c_long, - pub calcnt: ::c_long, - pub errcnt: ::c_long, - pub stbcnt: ::c_long, - } - - pub struct ntptimeval { - pub time: ::timespec, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub tai: ::c_long, - pub time_state: ::c_int, - } - - pub struct thread_standard_policy { - pub no_data: natural_t, - } - - pub struct thread_extended_policy { - pub timeshare: boolean_t, - } - - pub struct thread_time_constraint_policy { - pub period: u32, - pub computation: u32, - pub constraint: u32, - pub preemptible: boolean_t, - } - - pub struct thread_precedence_policy { - pub importance: integer_t, - } - - pub struct thread_affinity_policy { - pub affinity_tag: integer_t, - } - - pub struct thread_background_policy { - pub priority: integer_t, - } - - pub struct thread_latency_qos_policy { - pub thread_latency_qos_tier: thread_latency_qos_t, - } - - pub struct thread_throughput_qos_policy { - pub thread_throughput_qos_tier: thread_throughput_qos_t, - } - - // malloc/malloc.h - pub struct malloc_statistics_t { - pub blocks_in_use: ::c_uint, - pub size_in_use: ::size_t, - pub max_size_in_use: ::size_t, - pub size_allocated: ::size_t, - } - - pub struct mstats { - pub bytes_total: ::size_t, - pub chunks_used: ::size_t, - pub bytes_used: ::size_t, - pub chunks_free: ::size_t, - pub bytes_free: ::size_t, - } - - pub struct vm_range_t { - pub address: ::vm_address_t, - pub size: ::vm_size_t, - } - - // sched.h - pub struct sched_param { - pub sched_priority: ::c_int, - __opaque: [::c_char; 4], - } - - pub struct vinfo_stat { - pub vst_dev: u32, - pub vst_mode: u16, - pub vst_nlink: u16, - pub vst_ino: u64, - pub vst_uid: ::uid_t, - pub vst_gid: ::gid_t, - pub vst_atime: i64, - pub vst_atimensec: i64, - pub vst_mtime: i64, - pub vst_mtimensec: i64, - pub vst_ctime: i64, - pub vst_ctimensec: i64, - pub vst_birthtime: i64, - pub vst_birthtimensec: i64, - pub vst_size: ::off_t, - pub vst_blocks: i64, - pub vst_blksize: i32, - pub vst_flags: u32, - pub vst_gen: u32, - pub vst_rdev: u32, - pub vst_qspare: [i64; 2], - } - - pub struct vnode_info { - pub vi_stat: vinfo_stat, - pub vi_type: ::c_int, - pub vi_pad: ::c_int, - pub vi_fsid: ::fsid_t, - } - - pub struct vnode_info_path { - pub vip_vi: vnode_info, - // Normally it's `vip_path: [::c_char; MAXPATHLEN]` but because libc supports an old rustc - // version, we go around this limitation like this. - pub vip_path: [[::c_char; 32]; 32], - } - - pub struct proc_vnodepathinfo { - pub pvi_cdir: vnode_info_path, - pub pvi_rdir: vnode_info_path, - } - - pub struct vm_statistics { - pub free_count: natural_t, - pub active_count: natural_t, - pub inactive_count: natural_t, - pub wire_count: natural_t, - pub zero_fill_count: natural_t, - pub reactivations: natural_t, - pub pageins: natural_t, - pub pageouts: natural_t, - pub faults: natural_t, - pub cow_faults: natural_t, - pub lookups: natural_t, - pub hits: natural_t, - pub purgeable_count: natural_t, - pub purges: natural_t, - pub speculative_count: natural_t, - } - - pub struct task_thread_times_info { - pub user_time: time_value_t, - pub system_time: time_value_t, - } - - pub struct rusage_info_v0 { - pub ri_uuid: [u8; 16], - pub ri_user_time: u64, - pub ri_system_time: u64, - pub ri_pkg_idle_wkups: u64, - pub ri_interrupt_wkups: u64, - pub ri_pageins: u64, - pub ri_wired_size: u64, - pub ri_resident_size: u64, - pub ri_phys_footprint: u64, - pub ri_proc_start_abstime: u64, - pub ri_proc_exit_abstime: u64, - } - - pub struct rusage_info_v1 { - pub ri_uuid: [u8; 16], - pub ri_user_time: u64, - pub ri_system_time: u64, - pub ri_pkg_idle_wkups: u64, - pub ri_interrupt_wkups: u64, - pub ri_pageins: u64, - pub ri_wired_size: u64, - pub ri_resident_size: u64, - pub ri_phys_footprint: u64, - pub ri_proc_start_abstime: u64, - pub ri_proc_exit_abstime: u64, - pub ri_child_user_time: u64, - pub ri_child_system_time: u64, - pub ri_child_pkg_idle_wkups: u64, - pub ri_child_interrupt_wkups: u64, - pub ri_child_pageins: u64, - pub ri_child_elapsed_abstime: u64, - } - - pub struct rusage_info_v2 { - pub ri_uuid: [u8; 16], - pub ri_user_time: u64, - pub ri_system_time: u64, - pub ri_pkg_idle_wkups: u64, - pub ri_interrupt_wkups: u64, - pub ri_pageins: u64, - pub ri_wired_size: u64, - pub ri_resident_size: u64, - pub ri_phys_footprint: u64, - pub ri_proc_start_abstime: u64, - pub ri_proc_exit_abstime: u64, - pub ri_child_user_time: u64, - pub ri_child_system_time: u64, - pub ri_child_pkg_idle_wkups: u64, - pub ri_child_interrupt_wkups: u64, - pub ri_child_pageins: u64, - pub ri_child_elapsed_abstime: u64, - pub ri_diskio_bytesread: u64, - pub ri_diskio_byteswritten: u64, - } - - pub struct rusage_info_v3 { - pub ri_uuid: [u8; 16], - pub ri_user_time: u64, - pub ri_system_time: u64, - pub ri_pkg_idle_wkups: u64, - pub ri_interrupt_wkups: u64, - pub ri_pageins: u64, - pub ri_wired_size: u64, - pub ri_resident_size: u64, - pub ri_phys_footprint: u64, - pub ri_proc_start_abstime: u64, - pub ri_proc_exit_abstime: u64, - pub ri_child_user_time: u64, - pub ri_child_system_time: u64, - pub ri_child_pkg_idle_wkups: u64, - pub ri_child_interrupt_wkups: u64, - pub ri_child_pageins: u64, - pub ri_child_elapsed_abstime: u64, - pub ri_diskio_bytesread: u64, - pub ri_diskio_byteswritten: u64, - pub ri_cpu_time_qos_default: u64, - pub ri_cpu_time_qos_maintenance: u64, - pub ri_cpu_time_qos_background: u64, - pub ri_cpu_time_qos_utility: u64, - pub ri_cpu_time_qos_legacy: u64, - pub ri_cpu_time_qos_user_initiated: u64, - pub ri_cpu_time_qos_user_interactive: u64, - pub ri_billed_system_time: u64, - pub ri_serviced_system_time: u64, - } - - pub struct rusage_info_v4 { - pub ri_uuid: [u8; 16], - pub ri_user_time: u64, - pub ri_system_time: u64, - pub ri_pkg_idle_wkups: u64, - pub ri_interrupt_wkups: u64, - pub ri_pageins: u64, - pub ri_wired_size: u64, - pub ri_resident_size: u64, - pub ri_phys_footprint: u64, - pub ri_proc_start_abstime: u64, - pub ri_proc_exit_abstime: u64, - pub ri_child_user_time: u64, - pub ri_child_system_time: u64, - pub ri_child_pkg_idle_wkups: u64, - pub ri_child_interrupt_wkups: u64, - pub ri_child_pageins: u64, - pub ri_child_elapsed_abstime: u64, - pub ri_diskio_bytesread: u64, - pub ri_diskio_byteswritten: u64, - pub ri_cpu_time_qos_default: u64, - pub ri_cpu_time_qos_maintenance: u64, - pub ri_cpu_time_qos_background: u64, - pub ri_cpu_time_qos_utility: u64, - pub ri_cpu_time_qos_legacy: u64, - pub ri_cpu_time_qos_user_initiated: u64, - pub ri_cpu_time_qos_user_interactive: u64, - pub ri_billed_system_time: u64, - pub ri_serviced_system_time: u64, - pub ri_logical_writes: u64, - pub ri_lifetime_max_phys_footprint: u64, - pub ri_instructions: u64, - pub ri_cycles: u64, - pub ri_billed_energy: u64, - pub ri_serviced_energy: u64, - pub ri_interval_max_phys_footprint: u64, - pub ri_runnable_time: u64, - } - - pub struct image_offset { - pub uuid: ::uuid_t, - pub offset: u32, - } - - pub struct attrlist { - pub bitmapcount: ::c_ushort, - pub reserved: u16, - pub commonattr: attrgroup_t, - pub volattr: attrgroup_t, - pub dirattr: attrgroup_t, - pub fileattr: attrgroup_t, - pub forkattr: attrgroup_t, - } - - pub struct attrreference_t { - pub attr_dataoffset: i32, - pub attr_length: u32, - } - - pub struct vol_capabilities_attr_t { - pub capabilities: vol_capabilities_set_t, - pub valid: vol_capabilities_set_t, - } - - pub struct attribute_set_t { - pub commonattr: attrgroup_t, - pub volattr: attrgroup_t, - pub dirattr: attrgroup_t, - pub fileattr: attrgroup_t, - pub forkattr: attrgroup_t, - } - - pub struct vol_attributes_attr_t { - pub validattr: attribute_set_t, - pub nativeattr: attribute_set_t, - } -} - -s_no_extra_traits! { - #[cfg_attr(libc_packedN, repr(packed(4)))] - pub struct kevent { - pub ident: ::uintptr_t, - pub filter: i16, - pub flags: u16, - pub fflags: u32, - pub data: ::intptr_t, - pub udata: *mut ::c_void, - } - - #[cfg_attr(libc_packedN, repr(packed(4)))] - pub struct semid_ds { - // Note the manpage shows different types than the system header. - pub sem_perm: ipc_perm, - pub sem_base: i32, - pub sem_nsems: ::c_ushort, - pub sem_otime: ::time_t, - pub sem_pad1: i32, - pub sem_ctime: ::time_t, - pub sem_pad2: i32, - pub sem_pad3: [i32; 4], - } - - #[cfg_attr(libc_packedN, repr(packed(4)))] - pub struct shmid_ds { - pub shm_perm: ipc_perm, - pub shm_segsz: ::size_t, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - pub shm_atime: ::time_t, // FIXME: 64-bit wrong align => wrong offset - pub shm_dtime: ::time_t, // FIXME: 64-bit wrong align => wrong offset - pub shm_ctime: ::time_t, // FIXME: 64-bit wrong align => wrong offset - // FIXME: 64-bit wrong align => wrong offset: - pub shm_internal: *mut ::c_void, - } - - pub struct proc_threadinfo { - pub pth_user_time: u64, - pub pth_system_time: u64, - pub pth_cpu_usage: i32, - pub pth_policy: i32, - pub pth_run_state: i32, - pub pth_flags: i32, - pub pth_sleep_time: i32, - pub pth_curpri: i32, - pub pth_priority: i32, - pub pth_maxpriority: i32, - pub pth_name: [::c_char; MAXTHREADNAMESIZE], - } - - pub struct statfs { - pub f_bsize: u32, - pub f_iosize: i32, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_owner: ::uid_t, - pub f_type: u32, - pub f_flags: u32, - pub f_fssubtype: u32, - pub f_fstypename: [::c_char; 16], - pub f_mntonname: [::c_char; 1024], - pub f_mntfromname: [::c_char; 1024], - pub f_flags_ext: u32, - pub f_reserved: [u32; 7], - } - - pub struct dirent { - pub d_ino: u64, - pub d_seekoff: u64, - pub d_reclen: u16, - pub d_namlen: u16, - pub d_type: u8, - pub d_name: [::c_char; 1024], - } - - pub struct pthread_rwlock_t { - __sig: ::c_long, - __opaque: [u8; __PTHREAD_RWLOCK_SIZE__], - } - - pub struct pthread_mutex_t { - __sig: ::c_long, - __opaque: [u8; __PTHREAD_MUTEX_SIZE__], - } - - pub struct pthread_cond_t { - __sig: ::c_long, - __opaque: [u8; __PTHREAD_COND_SIZE__], - } - - pub struct sockaddr_storage { - pub ss_len: u8, - pub ss_family: ::sa_family_t, - __ss_pad1: [u8; 6], - __ss_align: i64, - __ss_pad2: [u8; 112], - } - - pub struct utmpx { - pub ut_user: [::c_char; _UTX_USERSIZE], - pub ut_id: [::c_char; _UTX_IDSIZE], - pub ut_line: [::c_char; _UTX_LINESIZE], - pub ut_pid: ::pid_t, - pub ut_type: ::c_short, - pub ut_tv: ::timeval, - pub ut_host: [::c_char; _UTX_HOSTSIZE], - ut_pad: [u32; 16], - } - - pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - __unused1: *mut ::c_void, //actually a function pointer - pub sigev_notify_attributes: *mut ::pthread_attr_t - } - - pub struct processor_cpu_load_info { - pub cpu_ticks: [::c_uint; CPU_STATE_MAX as usize], - } - - pub struct processor_basic_info { - pub cpu_type: cpu_type_t, - pub cpu_subtype: cpu_subtype_t, - pub running: ::boolean_t, - pub slot_num: ::c_int, - pub is_master: ::boolean_t, - } - - pub struct processor_set_basic_info { - pub processor_count: ::c_int, - pub default_policy: ::c_int, - } - - pub struct processor_set_load_info { - pub task_count: ::c_int, - pub thread_count: ::c_int, - pub load_average: integer_t, - pub mach_factor: integer_t, - } - - pub struct time_value_t { - pub seconds: integer_t, - pub microseconds: integer_t, - } - - pub struct thread_basic_info { - pub user_time: time_value_t, - pub system_time: time_value_t, - pub cpu_usage: ::integer_t, - pub policy: ::policy_t, - pub run_state: ::integer_t, - pub flags: ::integer_t, - pub suspend_count: ::integer_t, - pub sleep_time: ::integer_t, - } - - pub struct thread_identifier_info { - pub thread_id: u64, - pub thread_handle: u64, - pub dispatch_qaddr: u64, - } - - pub struct thread_extended_info { - pub pth_user_time: u64, - pub pth_system_time: u64, - pub pth_cpu_usage: i32, - pub pth_policy: i32, - pub pth_run_state: i32, - pub pth_flags: i32, - pub pth_sleep_time: i32, - pub pth_curpri: i32, - pub pth_priority: i32, - pub pth_maxpriority: i32, - pub pth_name: [::c_char; MAXTHREADNAMESIZE], - } - - #[cfg_attr(libc_packedN, repr(packed(4)))] - pub struct if_data64 { - pub ifi_type: ::c_uchar, - pub ifi_typelen: ::c_uchar, - pub ifi_physical: ::c_uchar, - pub ifi_addrlen: ::c_uchar, - pub ifi_hdrlen: ::c_uchar, - pub ifi_recvquota: ::c_uchar, - pub ifi_xmitquota: ::c_uchar, - pub ifi_unused1: ::c_uchar, - pub ifi_mtu: u32, - pub ifi_metric: u32, - pub ifi_baudrate: u64, - pub ifi_ipackets: u64, - pub ifi_ierrors: u64, - pub ifi_opackets: u64, - pub ifi_oerrors: u64, - pub ifi_collisions: u64, - pub ifi_ibytes: u64, - pub ifi_obytes: u64, - pub ifi_imcasts: u64, - pub ifi_omcasts: u64, - pub ifi_iqdrops: u64, - pub ifi_noproto: u64, - pub ifi_recvtiming: u32, - pub ifi_xmittiming: u32, - #[cfg(target_pointer_width = "32")] - pub ifi_lastchange: ::timeval, - #[cfg(not(target_pointer_width = "32"))] - pub ifi_lastchange: timeval32, - } - - #[cfg_attr(libc_packedN, repr(packed(4)))] - pub struct if_msghdr2 { - pub ifm_msglen: ::c_ushort, - pub ifm_version: ::c_uchar, - pub ifm_type: ::c_uchar, - pub ifm_addrs: ::c_int, - pub ifm_flags: ::c_int, - pub ifm_index: ::c_ushort, - pub ifm_snd_len: ::c_int, - pub ifm_snd_maxlen: ::c_int, - pub ifm_snd_drops: ::c_int, - pub ifm_timer: ::c_int, - pub ifm_data: if_data64, - } - - #[cfg_attr(libc_packedN, repr(packed(8)))] - pub struct vm_statistics64 { - pub free_count: natural_t, - pub active_count: natural_t, - pub inactive_count: natural_t, - pub wire_count: natural_t, - pub zero_fill_count: u64, - pub reactivations: u64, - pub pageins: u64, - pub pageouts: u64, - pub faults: u64, - pub cow_faults: u64, - pub lookups: u64, - pub hits: u64, - pub purges: u64, - pub purgeable_count: natural_t, - pub speculative_count: natural_t, - pub decompressions: u64, - pub compressions: u64, - pub swapins: u64, - pub swapouts: u64, - pub compressor_page_count: natural_t, - pub throttled_count: natural_t, - pub external_page_count: natural_t, - pub internal_page_count: natural_t, - pub total_uncompressed_pages_in_compressor: u64, - } - - #[cfg_attr(libc_packedN, repr(packed(4)))] - pub struct mach_task_basic_info { - pub virtual_size: mach_vm_size_t, - pub resident_size: mach_vm_size_t, - pub resident_size_max: mach_vm_size_t, - pub user_time: time_value_t, - pub system_time: time_value_t, - pub policy: ::policy_t, - pub suspend_count: integer_t, - } - - #[cfg_attr(libc_packedN, repr(packed(4)))] - pub struct log2phys { - pub l2p_flags: ::c_uint, - pub l2p_contigbytes: ::off_t, - pub l2p_devoffset: ::off_t, - } - - pub struct os_unfair_lock_s { - _os_unfair_lock_opaque: u32, - } - - #[cfg_attr(libc_packedN, repr(packed(1)))] - pub struct sockaddr_vm { - pub svm_len: ::c_uchar, - pub svm_family: ::sa_family_t, - pub svm_reserved1: ::c_ushort, - pub svm_port: ::c_uint, - pub svm_cid: ::c_uint, - } -} - -impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { - self.si_addr - } - - pub unsafe fn si_value(&self) -> ::sigval { - #[repr(C)] - struct siginfo_timer { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - _si_pid: ::pid_t, - _si_uid: ::uid_t, - _si_status: ::c_int, - _si_addr: *mut ::c_void, - si_value: ::sigval, - } - - (*(self as *const siginfo_t as *const siginfo_timer)).si_value - } - - pub unsafe fn si_pid(&self) -> ::pid_t { - self.si_pid - } - - pub unsafe fn si_uid(&self) -> ::uid_t { - self.si_uid - } - - pub unsafe fn si_status(&self) -> ::c_int { - self.si_status - } -} - -cfg_if! { - if #[cfg(libc_union)] { - s_no_extra_traits! { - pub union semun { - pub val: ::c_int, - pub buf: *mut semid_ds, - pub array: *mut ::c_ushort, - } - } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for semun { - fn eq(&self, other: &semun) -> bool { - unsafe { self.val == other.val } - } - } - impl Eq for semun {} - impl ::fmt::Debug for semun { - fn fmt(&self, f: &mut ::fmt::Formatter) - -> ::fmt::Result { - f.debug_struct("semun") - .field("val", unsafe { &self.val }) - .finish() - } - } - impl ::hash::Hash for semun { - fn hash(&self, state: &mut H) { - unsafe { self.val.hash(state) }; - } - } - } - } - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for kevent { - fn eq(&self, other: &kevent) -> bool { - self.ident == other.ident - && self.filter == other.filter - && self.flags == other.flags - && self.fflags == other.fflags - && self.data == other.data - && self.udata == other.udata - } - } - impl Eq for kevent {} - impl ::fmt::Debug for kevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let ident = self.ident; - let filter = self.filter; - let flags = self.flags; - let fflags = self.fflags; - let data = self.data; - let udata = self.udata; - f.debug_struct("kevent") - .field("ident", &ident) - .field("filter", &filter) - .field("flags", &flags) - .field("fflags", &fflags) - .field("data", &data) - .field("udata", &udata) - .finish() - } - } - impl ::hash::Hash for kevent { - fn hash(&self, state: &mut H) { - let ident = self.ident; - let filter = self.filter; - let flags = self.flags; - let fflags = self.fflags; - let data = self.data; - let udata = self.udata; - ident.hash(state); - filter.hash(state); - flags.hash(state); - fflags.hash(state); - data.hash(state); - udata.hash(state); - } - } - - impl PartialEq for semid_ds { - fn eq(&self, other: &semid_ds) -> bool { - let sem_perm = self.sem_perm; - let sem_pad3 = self.sem_pad3; - let other_sem_perm = other.sem_perm; - let other_sem_pad3 = other.sem_pad3; - sem_perm == other_sem_perm - && self.sem_base == other.sem_base - && self.sem_nsems == other.sem_nsems - && self.sem_otime == other.sem_otime - && self.sem_pad1 == other.sem_pad1 - && self.sem_ctime == other.sem_ctime - && self.sem_pad2 == other.sem_pad2 - && sem_pad3 == other_sem_pad3 - } - } - impl Eq for semid_ds {} - impl ::fmt::Debug for semid_ds { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let sem_perm = self.sem_perm; - let sem_base = self.sem_base; - let sem_nsems = self.sem_nsems; - let sem_otime = self.sem_otime; - let sem_pad1 = self.sem_pad1; - let sem_ctime = self.sem_ctime; - let sem_pad2 = self.sem_pad2; - let sem_pad3 = self.sem_pad3; - f.debug_struct("semid_ds") - .field("sem_perm", &sem_perm) - .field("sem_base", &sem_base) - .field("sem_nsems", &sem_nsems) - .field("sem_otime", &sem_otime) - .field("sem_pad1", &sem_pad1) - .field("sem_ctime", &sem_ctime) - .field("sem_pad2", &sem_pad2) - .field("sem_pad3", &sem_pad3) - .finish() - } - } - impl ::hash::Hash for semid_ds { - fn hash(&self, state: &mut H) { - let sem_perm = self.sem_perm; - let sem_base = self.sem_base; - let sem_nsems = self.sem_nsems; - let sem_otime = self.sem_otime; - let sem_pad1 = self.sem_pad1; - let sem_ctime = self.sem_ctime; - let sem_pad2 = self.sem_pad2; - let sem_pad3 = self.sem_pad3; - sem_perm.hash(state); - sem_base.hash(state); - sem_nsems.hash(state); - sem_otime.hash(state); - sem_pad1.hash(state); - sem_ctime.hash(state); - sem_pad2.hash(state); - sem_pad3.hash(state); - } - } - - impl PartialEq for shmid_ds { - fn eq(&self, other: &shmid_ds) -> bool { - let shm_perm = self.shm_perm; - let other_shm_perm = other.shm_perm; - shm_perm == other_shm_perm - && self.shm_segsz == other.shm_segsz - && self.shm_lpid == other.shm_lpid - && self.shm_cpid == other.shm_cpid - && self.shm_nattch == other.shm_nattch - && self.shm_atime == other.shm_atime - && self.shm_dtime == other.shm_dtime - && self.shm_ctime == other.shm_ctime - && self.shm_internal == other.shm_internal - } - } - impl Eq for shmid_ds {} - impl ::fmt::Debug for shmid_ds { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let shm_perm = self.shm_perm; - let shm_segsz = self.shm_segsz; - let shm_lpid = self.shm_lpid; - let shm_cpid = self.shm_cpid; - let shm_nattch = self.shm_nattch; - let shm_atime = self.shm_atime; - let shm_dtime = self.shm_dtime; - let shm_ctime = self.shm_ctime; - let shm_internal = self.shm_internal; - f.debug_struct("shmid_ds") - .field("shm_perm", &shm_perm) - .field("shm_segsz", &shm_segsz) - .field("shm_lpid", &shm_lpid) - .field("shm_cpid", &shm_cpid) - .field("shm_nattch", &shm_nattch) - .field("shm_atime", &shm_atime) - .field("shm_dtime", &shm_dtime) - .field("shm_ctime", &shm_ctime) - .field("shm_internal", &shm_internal) - .finish() - } - } - impl ::hash::Hash for shmid_ds { - fn hash(&self, state: &mut H) { - let shm_perm = self.shm_perm; - let shm_segsz = self.shm_segsz; - let shm_lpid = self.shm_lpid; - let shm_cpid = self.shm_cpid; - let shm_nattch = self.shm_nattch; - let shm_atime = self.shm_atime; - let shm_dtime = self.shm_dtime; - let shm_ctime = self.shm_ctime; - let shm_internal = self.shm_internal; - shm_perm.hash(state); - shm_segsz.hash(state); - shm_lpid.hash(state); - shm_cpid.hash(state); - shm_nattch.hash(state); - shm_atime.hash(state); - shm_dtime.hash(state); - shm_ctime.hash(state); - shm_internal.hash(state); - } - } - - impl PartialEq for proc_threadinfo { - fn eq(&self, other: &proc_threadinfo) -> bool { - self.pth_user_time == other.pth_user_time - && self.pth_system_time == other.pth_system_time - && self.pth_cpu_usage == other.pth_cpu_usage - && self.pth_policy == other.pth_policy - && self.pth_run_state == other.pth_run_state - && self.pth_flags == other.pth_flags - && self.pth_sleep_time == other.pth_sleep_time - && self.pth_curpri == other.pth_curpri - && self.pth_priority == other.pth_priority - && self.pth_maxpriority == other.pth_maxpriority - && self.pth_name - .iter() - .zip(other.pth_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for proc_threadinfo {} - impl ::fmt::Debug for proc_threadinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("proc_threadinfo") - .field("pth_user_time", &self.pth_user_time) - .field("pth_system_time", &self.pth_system_time) - .field("pth_cpu_usage", &self.pth_cpu_usage) - .field("pth_policy", &self.pth_policy) - .field("pth_run_state", &self.pth_run_state) - .field("pth_flags", &self.pth_flags) - .field("pth_sleep_time", &self.pth_sleep_time) - .field("pth_curpri", &self.pth_curpri) - .field("pth_priority", &self.pth_priority) - .field("pth_maxpriority", &self.pth_maxpriority) - // FIXME: .field("pth_name", &self.pth_name) - .finish() - } - } - impl ::hash::Hash for proc_threadinfo { - fn hash(&self, state: &mut H) { - self.pth_user_time.hash(state); - self.pth_system_time.hash(state); - self.pth_cpu_usage.hash(state); - self.pth_policy.hash(state); - self.pth_run_state.hash(state); - self.pth_flags.hash(state); - self.pth_sleep_time.hash(state); - self.pth_curpri.hash(state); - self.pth_priority.hash(state); - self.pth_maxpriority.hash(state); - self.pth_name.hash(state); - } - } - - impl PartialEq for statfs { - fn eq(&self, other: &statfs) -> bool { - self.f_bsize == other.f_bsize - && self.f_iosize == other.f_iosize - && self.f_blocks == other.f_blocks - && self.f_bfree == other.f_bfree - && self.f_bavail == other.f_bavail - && self.f_files == other.f_files - && self.f_ffree == other.f_ffree - && self.f_fsid == other.f_fsid - && self.f_owner == other.f_owner - && self.f_flags == other.f_flags - && self.f_fssubtype == other.f_fssubtype - && self.f_fstypename == other.f_fstypename - && self.f_type == other.f_type - && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a,b)| a == b) - && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a,b)| a == b) - && self.f_reserved == other.f_reserved - } - } - - impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("statfs") - .field("f_bsize", &self.f_bsize) - .field("f_iosize", &self.f_iosize) - .field("f_blocks", &self.f_blocks) - .field("f_bfree", &self.f_bfree) - .field("f_bavail", &self.f_bavail) - .field("f_files", &self.f_files) - .field("f_ffree", &self.f_ffree) - .field("f_fsid", &self.f_fsid) - .field("f_owner", &self.f_owner) - .field("f_flags", &self.f_flags) - .field("f_fssubtype", &self.f_fssubtype) - .field("f_fstypename", &self.f_fstypename) - .field("f_type", &self.f_type) - // FIXME: .field("f_mntonname", &self.f_mntonname) - // FIXME: .field("f_mntfromname", &self.f_mntfromname) - .field("f_reserved", &self.f_reserved) - .finish() - } - } - - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { - self.f_bsize.hash(state); - self.f_iosize.hash(state); - self.f_blocks.hash(state); - self.f_bfree.hash(state); - self.f_bavail.hash(state); - self.f_files.hash(state); - self.f_ffree.hash(state); - self.f_fsid.hash(state); - self.f_owner.hash(state); - self.f_flags.hash(state); - self.f_fssubtype.hash(state); - self.f_fstypename.hash(state); - self.f_type.hash(state); - self.f_mntonname.hash(state); - self.f_mntfromname.hash(state); - self.f_reserved.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_seekoff == other.d_seekoff - && self.d_reclen == other.d_reclen - && self.d_namlen == other.d_namlen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_seekoff", &self.d_seekoff) - .field("d_reclen", &self.d_reclen) - .field("d_namlen", &self.d_namlen) - .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_seekoff.hash(state); - self.d_reclen.hash(state); - self.d_namlen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - impl PartialEq for pthread_rwlock_t { - fn eq(&self, other: &pthread_rwlock_t) -> bool { - self.__sig == other.__sig - && self. - __opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_rwlock_t {} - impl ::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_rwlock_t") - .field("__sig", &self.__sig) - // FIXME: .field("__opaque", &self.__opaque) - .finish() - } - } - impl ::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { - self.__sig.hash(state); - self.__opaque.hash(state); - } - } - - impl PartialEq for pthread_mutex_t { - fn eq(&self, other: &pthread_mutex_t) -> bool { - self.__sig == other.__sig - && self. - __opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for pthread_mutex_t {} - - impl ::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_mutex_t") - .field("__sig", &self.__sig) - // FIXME: .field("__opaque", &self.__opaque) - .finish() - } - } - - impl ::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { - self.__sig.hash(state); - self.__opaque.hash(state); - } - } - - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.__sig == other.__sig - && self. - __opaque - .iter() - .zip(other.__opaque.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for pthread_cond_t {} - - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_cond_t") - .field("__sig", &self.__sig) - // FIXME: .field("__opaque", &self.__opaque) - .finish() - } - } - - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.__sig.hash(state); - self.__opaque.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_len == other.ss_len - && self.ss_family == other.ss_family - && self - .__ss_pad1 - .iter() - .zip(other.__ss_pad1.iter()) - .all(|(a, b)| a == b) - && self.__ss_align == other.__ss_align - && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_storage {} - - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &self.__ss_pad1) - .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_pad2", &self.__ss_pad2) - .finish() - } - } - - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_len.hash(state); - self.ss_family.hash(state); - self.__ss_pad1.hash(state); - self.__ss_align.hash(state); - self.__ss_pad2.hash(state); - } - } - - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_user - .iter() - .zip(other.ut_user.iter()) - .all(|(a,b)| a == b) - && self.ut_id == other.ut_id - && self.ut_line == other.ut_line - && self.ut_pid == other.ut_pid - && self.ut_type == other.ut_type - && self.ut_tv == other.ut_tv - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) - && self.ut_pad == other.ut_pad - } - } - - impl Eq for utmpx {} - - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utmpx") - // FIXME: .field("ut_user", &self.ut_user) - .field("ut_id", &self.ut_id) - .field("ut_line", &self.ut_line) - .field("ut_pid", &self.ut_pid) - .field("ut_type", &self.ut_type) - .field("ut_tv", &self.ut_tv) - // FIXME: .field("ut_host", &self.ut_host) - .field("ut_pad", &self.ut_pad) - .finish() - } - } - - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_user.hash(state); - self.ut_id.hash(state); - self.ut_line.hash(state); - self.ut_pid.hash(state); - self.ut_type.hash(state); - self.ut_tv.hash(state); - self.ut_host.hash(state); - self.ut_pad.hash(state); - } - } - - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_notify == other.sigev_notify - && self.sigev_signo == other.sigev_signo - && self.sigev_value == other.sigev_value - && self.sigev_notify_attributes - == other.sigev_notify_attributes - } - } - - impl Eq for sigevent {} - - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sigevent") - .field("sigev_notify", &self.sigev_notify) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_value", &self.sigev_value) - .field("sigev_notify_attributes", - &self.sigev_notify_attributes) - .finish() - } - } - - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_notify.hash(state); - self.sigev_signo.hash(state); - self.sigev_value.hash(state); - self.sigev_notify_attributes.hash(state); - } - } - - impl PartialEq for processor_cpu_load_info { - fn eq(&self, other: &processor_cpu_load_info) -> bool { - self.cpu_ticks == other.cpu_ticks - } - } - impl Eq for processor_cpu_load_info {} - impl ::fmt::Debug for processor_cpu_load_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("processor_cpu_load_info") - .field("cpu_ticks", &self.cpu_ticks) - .finish() - } - } - impl ::hash::Hash for processor_cpu_load_info { - fn hash(&self, state: &mut H) { - self.cpu_ticks.hash(state); - } - } - - impl PartialEq for processor_basic_info { - fn eq(&self, other: &processor_basic_info) -> bool { - self.cpu_type == other.cpu_type - && self.cpu_subtype == other.cpu_subtype - && self.running == other.running - && self.slot_num == other.slot_num - && self.is_master == other.is_master - } - } - impl Eq for processor_basic_info {} - impl ::fmt::Debug for processor_basic_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("processor_basic_info") - .field("cpu_type", &self.cpu_type) - .field("cpu_subtype", &self.cpu_subtype) - .field("running", &self.running) - .field("slot_num", &self.slot_num) - .field("is_master", &self.is_master) - .finish() - } - } - impl ::hash::Hash for processor_basic_info { - fn hash(&self, state: &mut H) { - self.cpu_type.hash(state); - self.cpu_subtype.hash(state); - self.running.hash(state); - self.slot_num.hash(state); - self.is_master.hash(state); - } - } - - impl PartialEq for processor_set_basic_info { - fn eq(&self, other: &processor_set_basic_info) -> bool { - self.processor_count == other.processor_count - && self.default_policy == other.default_policy - } - } - impl Eq for processor_set_basic_info {} - impl ::fmt::Debug for processor_set_basic_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("processor_set_basic_info") - .field("processor_count", &self.processor_count) - .field("default_policy", &self.default_policy) - .finish() - } - } - impl ::hash::Hash for processor_set_basic_info { - fn hash(&self, state: &mut H) { - self.processor_count.hash(state); - self.default_policy.hash(state); - } - } - - impl PartialEq for processor_set_load_info { - fn eq(&self, other: &processor_set_load_info) -> bool { - self.task_count == other.task_count - && self.thread_count == other.thread_count - && self.load_average == other.load_average - && self.mach_factor == other.mach_factor - } - } - impl Eq for processor_set_load_info {} - impl ::fmt::Debug for processor_set_load_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("processor_set_load_info") - .field("task_count", &self.task_count) - .field("thread_count", &self.thread_count) - .field("load_average", &self.load_average) - .field("mach_factor", &self.mach_factor) - .finish() - } - } - impl ::hash::Hash for processor_set_load_info { - fn hash(&self, state: &mut H) { - self.task_count.hash(state); - self.thread_count.hash(state); - self.load_average.hash(state); - self.mach_factor.hash(state); - } - } - - impl PartialEq for time_value_t { - fn eq(&self, other: &time_value_t) -> bool { - self.seconds == other.seconds - && self.microseconds == other.microseconds - } - } - impl Eq for time_value_t {} - impl ::fmt::Debug for time_value_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("time_value_t") - .field("seconds", &self.seconds) - .field("microseconds", &self.microseconds) - .finish() - } - } - impl ::hash::Hash for time_value_t { - fn hash(&self, state: &mut H) { - self.seconds.hash(state); - self.microseconds.hash(state); - } - } - impl PartialEq for thread_basic_info { - fn eq(&self, other: &thread_basic_info) -> bool { - self.user_time == other.user_time - && self.system_time == other.system_time - && self.cpu_usage == other.cpu_usage - && self.policy == other.policy - && self.run_state == other.run_state - && self.flags == other.flags - && self.suspend_count == other.suspend_count - && self.sleep_time == other.sleep_time - } - } - impl Eq for thread_basic_info {} - impl ::fmt::Debug for thread_basic_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("thread_basic_info") - .field("user_time", &self.user_time) - .field("system_time", &self.system_time) - .field("cpu_usage", &self.cpu_usage) - .field("policy", &self.policy) - .field("run_state", &self.run_state) - .field("flags", &self.flags) - .field("suspend_count", &self.suspend_count) - .field("sleep_time", &self.sleep_time) - .finish() - } - } - impl ::hash::Hash for thread_basic_info { - fn hash(&self, state: &mut H) { - self.user_time.hash(state); - self.system_time.hash(state); - self.cpu_usage.hash(state); - self.policy.hash(state); - self.run_state.hash(state); - self.flags.hash(state); - self.suspend_count.hash(state); - self.sleep_time.hash(state); - } - } - impl PartialEq for thread_extended_info { - fn eq(&self, other: &thread_extended_info) -> bool { - self.pth_user_time == other.pth_user_time - && self.pth_system_time == other.pth_system_time - && self.pth_cpu_usage == other.pth_cpu_usage - && self.pth_policy == other.pth_policy - && self.pth_run_state == other.pth_run_state - && self.pth_flags == other.pth_flags - && self.pth_sleep_time == other.pth_sleep_time - && self.pth_curpri == other.pth_curpri - && self.pth_priority == other.pth_priority - && self.pth_maxpriority == other.pth_maxpriority - && self.pth_name - .iter() - .zip(other.pth_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for thread_extended_info {} - impl ::fmt::Debug for thread_extended_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("proc_threadinfo") - .field("pth_user_time", &self.pth_user_time) - .field("pth_system_time", &self.pth_system_time) - .field("pth_cpu_usage", &self.pth_cpu_usage) - .field("pth_policy", &self.pth_policy) - .field("pth_run_state", &self.pth_run_state) - .field("pth_flags", &self.pth_flags) - .field("pth_sleep_time", &self.pth_sleep_time) - .field("pth_curpri", &self.pth_curpri) - .field("pth_priority", &self.pth_priority) - .field("pth_maxpriority", &self.pth_maxpriority) - // FIXME: .field("pth_name", &self.pth_name) - .finish() - } - } - impl ::hash::Hash for thread_extended_info { - fn hash(&self, state: &mut H) { - self.pth_user_time.hash(state); - self.pth_system_time.hash(state); - self.pth_cpu_usage.hash(state); - self.pth_policy.hash(state); - self.pth_run_state.hash(state); - self.pth_flags.hash(state); - self.pth_sleep_time.hash(state); - self.pth_curpri.hash(state); - self.pth_priority.hash(state); - self.pth_maxpriority.hash(state); - self.pth_name.hash(state); - } - } - impl PartialEq for thread_identifier_info { - fn eq(&self, other: &thread_identifier_info) -> bool { - self.thread_id == other.thread_id - && self.thread_handle == other.thread_handle - && self.dispatch_qaddr == other.dispatch_qaddr - } - } - impl Eq for thread_identifier_info {} - impl ::fmt::Debug for thread_identifier_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("thread_identifier_info") - .field("thread_id", &self.thread_id) - .field("thread_handle", &self.thread_handle) - .field("dispatch_qaddr", &self.dispatch_qaddr) - .finish() - } - } - impl ::hash::Hash for thread_identifier_info { - fn hash(&self, state: &mut H) { - self.thread_id.hash(state); - self.thread_handle.hash(state); - self.dispatch_qaddr.hash(state); - } - } - impl PartialEq for if_data64 { - fn eq(&self, other: &if_data64) -> bool { - self.ifi_type == other.ifi_type && - self.ifi_typelen == other.ifi_typelen && - self.ifi_physical == other.ifi_physical && - self.ifi_addrlen == other.ifi_addrlen && - self.ifi_hdrlen == other.ifi_hdrlen && - self.ifi_recvquota == other.ifi_recvquota && - self.ifi_xmitquota == other.ifi_xmitquota && - self.ifi_unused1 == other.ifi_unused1 && - self.ifi_mtu == other.ifi_mtu && - self.ifi_metric == other.ifi_metric && - self.ifi_baudrate == other.ifi_baudrate && - self.ifi_ipackets == other.ifi_ipackets && - self.ifi_ierrors == other.ifi_ierrors && - self.ifi_opackets == other.ifi_opackets && - self.ifi_oerrors == other.ifi_oerrors && - self.ifi_collisions == other.ifi_collisions && - self.ifi_ibytes == other.ifi_ibytes && - self.ifi_obytes == other.ifi_obytes && - self.ifi_imcasts == other.ifi_imcasts && - self.ifi_omcasts == other.ifi_omcasts && - self.ifi_iqdrops == other.ifi_iqdrops && - self.ifi_noproto == other.ifi_noproto && - self.ifi_recvtiming == other.ifi_recvtiming && - self.ifi_xmittiming == other.ifi_xmittiming && - self.ifi_lastchange == other.ifi_lastchange - } - } - impl Eq for if_data64 {} - impl ::fmt::Debug for if_data64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let ifi_type = self.ifi_type; - let ifi_typelen = self.ifi_typelen; - let ifi_physical = self.ifi_physical; - let ifi_addrlen = self.ifi_addrlen; - let ifi_hdrlen = self.ifi_hdrlen; - let ifi_recvquota = self.ifi_recvquota; - let ifi_xmitquota = self.ifi_xmitquota; - let ifi_unused1 = self.ifi_unused1; - let ifi_mtu = self.ifi_mtu; - let ifi_metric = self.ifi_metric; - let ifi_baudrate = self.ifi_baudrate; - let ifi_ipackets = self.ifi_ipackets; - let ifi_ierrors = self.ifi_ierrors; - let ifi_opackets = self.ifi_opackets; - let ifi_oerrors = self.ifi_oerrors; - let ifi_collisions = self.ifi_collisions; - let ifi_ibytes = self.ifi_ibytes; - let ifi_obytes = self.ifi_obytes; - let ifi_imcasts = self.ifi_imcasts; - let ifi_omcasts = self.ifi_omcasts; - let ifi_iqdrops = self.ifi_iqdrops; - let ifi_noproto = self.ifi_noproto; - let ifi_recvtiming = self.ifi_recvtiming; - let ifi_xmittiming = self.ifi_xmittiming; - let ifi_lastchange = self.ifi_lastchange; - f.debug_struct("if_data64") - .field("ifi_type", &ifi_type) - .field("ifi_typelen", &ifi_typelen) - .field("ifi_physical", &ifi_physical) - .field("ifi_addrlen", &ifi_addrlen) - .field("ifi_hdrlen", &ifi_hdrlen) - .field("ifi_recvquota", &ifi_recvquota) - .field("ifi_xmitquota", &ifi_xmitquota) - .field("ifi_unused1", &ifi_unused1) - .field("ifi_mtu", &ifi_mtu) - .field("ifi_metric", &ifi_metric) - .field("ifi_baudrate", &ifi_baudrate) - .field("ifi_ipackets", &ifi_ipackets) - .field("ifi_ierrors", &ifi_ierrors) - .field("ifi_opackets", &ifi_opackets) - .field("ifi_oerrors", &ifi_oerrors) - .field("ifi_collisions", &ifi_collisions) - .field("ifi_ibytes", &ifi_ibytes) - .field("ifi_obytes", &ifi_obytes) - .field("ifi_imcasts", &ifi_imcasts) - .field("ifi_omcasts", &ifi_omcasts) - .field("ifi_iqdrops", &ifi_iqdrops) - .field("ifi_noproto", &ifi_noproto) - .field("ifi_recvtiming", &ifi_recvtiming) - .field("ifi_xmittiming", &ifi_xmittiming) - .field("ifi_lastchange", &ifi_lastchange) - .finish() - } - } - impl ::hash::Hash for if_data64 { - fn hash(&self, state: &mut H) { - let ifi_type = self.ifi_type; - let ifi_typelen = self.ifi_typelen; - let ifi_physical = self.ifi_physical; - let ifi_addrlen = self.ifi_addrlen; - let ifi_hdrlen = self.ifi_hdrlen; - let ifi_recvquota = self.ifi_recvquota; - let ifi_xmitquota = self.ifi_xmitquota; - let ifi_unused1 = self.ifi_unused1; - let ifi_mtu = self.ifi_mtu; - let ifi_metric = self.ifi_metric; - let ifi_baudrate = self.ifi_baudrate; - let ifi_ipackets = self.ifi_ipackets; - let ifi_ierrors = self.ifi_ierrors; - let ifi_opackets = self.ifi_opackets; - let ifi_oerrors = self.ifi_oerrors; - let ifi_collisions = self.ifi_collisions; - let ifi_ibytes = self.ifi_ibytes; - let ifi_obytes = self.ifi_obytes; - let ifi_imcasts = self.ifi_imcasts; - let ifi_omcasts = self.ifi_omcasts; - let ifi_iqdrops = self.ifi_iqdrops; - let ifi_noproto = self.ifi_noproto; - let ifi_recvtiming = self.ifi_recvtiming; - let ifi_xmittiming = self.ifi_xmittiming; - let ifi_lastchange = self.ifi_lastchange; - ifi_type.hash(state); - ifi_typelen.hash(state); - ifi_physical.hash(state); - ifi_addrlen.hash(state); - ifi_hdrlen.hash(state); - ifi_recvquota.hash(state); - ifi_xmitquota.hash(state); - ifi_unused1.hash(state); - ifi_mtu.hash(state); - ifi_metric.hash(state); - ifi_baudrate.hash(state); - ifi_ipackets.hash(state); - ifi_ierrors.hash(state); - ifi_opackets.hash(state); - ifi_oerrors.hash(state); - ifi_collisions.hash(state); - ifi_ibytes.hash(state); - ifi_obytes.hash(state); - ifi_imcasts.hash(state); - ifi_omcasts.hash(state); - ifi_iqdrops.hash(state); - ifi_noproto.hash(state); - ifi_recvtiming.hash(state); - ifi_xmittiming.hash(state); - ifi_lastchange.hash(state); - } - } - impl PartialEq for if_msghdr2 { - fn eq(&self, other: &if_msghdr2) -> bool { - self.ifm_msglen == other.ifm_msglen && - self.ifm_version == other.ifm_version && - self.ifm_type == other.ifm_type && - self.ifm_addrs == other.ifm_addrs && - self.ifm_flags == other.ifm_flags && - self.ifm_index == other.ifm_index && - self.ifm_snd_len == other.ifm_snd_len && - self.ifm_snd_maxlen == other.ifm_snd_maxlen && - self.ifm_snd_drops == other.ifm_snd_drops && - self.ifm_timer == other.ifm_timer && - self.ifm_data == other.ifm_data - } - } - impl Eq for if_msghdr2 {} - impl ::fmt::Debug for if_msghdr2 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let ifm_msglen = self.ifm_msglen; - let ifm_version = self.ifm_version; - let ifm_type = self.ifm_type; - let ifm_addrs = self.ifm_addrs; - let ifm_flags = self.ifm_flags; - let ifm_index = self.ifm_index; - let ifm_snd_len = self.ifm_snd_len; - let ifm_snd_maxlen = self.ifm_snd_maxlen; - let ifm_snd_drops = self.ifm_snd_drops; - let ifm_timer = self.ifm_timer; - let ifm_data = self.ifm_data; - f.debug_struct("if_msghdr2") - .field("ifm_msglen", &ifm_msglen) - .field("ifm_version", &ifm_version) - .field("ifm_type", &ifm_type) - .field("ifm_addrs", &ifm_addrs) - .field("ifm_flags", &ifm_flags) - .field("ifm_index", &ifm_index) - .field("ifm_snd_len", &ifm_snd_len) - .field("ifm_snd_maxlen", &ifm_snd_maxlen) - .field("ifm_snd_drops", &ifm_snd_drops) - .field("ifm_timer", &ifm_timer) - .field("ifm_data", &ifm_data) - .finish() - } - } - impl ::hash::Hash for if_msghdr2 { - fn hash(&self, state: &mut H) { - let ifm_msglen = self.ifm_msglen; - let ifm_version = self.ifm_version; - let ifm_type = self.ifm_type; - let ifm_addrs = self.ifm_addrs; - let ifm_flags = self.ifm_flags; - let ifm_index = self.ifm_index; - let ifm_snd_len = self.ifm_snd_len; - let ifm_snd_maxlen = self.ifm_snd_maxlen; - let ifm_snd_drops = self.ifm_snd_drops; - let ifm_timer = self.ifm_timer; - let ifm_data = self.ifm_data; - ifm_msglen.hash(state); - ifm_version.hash(state); - ifm_type.hash(state); - ifm_addrs.hash(state); - ifm_flags.hash(state); - ifm_index.hash(state); - ifm_snd_len.hash(state); - ifm_snd_maxlen.hash(state); - ifm_snd_drops.hash(state); - ifm_timer.hash(state); - ifm_data.hash(state); - } - } - impl PartialEq for vm_statistics64 { - fn eq(&self, other: &vm_statistics64) -> bool { - // Otherwise rustfmt crashes... - let total_uncompressed = self.total_uncompressed_pages_in_compressor; - self.free_count == other.free_count && - self.active_count == other.active_count && - self.inactive_count == other.inactive_count && - self.wire_count == other.wire_count && - self.zero_fill_count == other.zero_fill_count && - self.reactivations == other.reactivations && - self.pageins == other.pageins && - self.pageouts == other.pageouts && - self.faults == other.faults && - self.cow_faults == other.cow_faults && - self.lookups == other.lookups && - self.hits == other.hits && - self.purges == other.purges && - self.purgeable_count == other.purgeable_count && - self.speculative_count == other.speculative_count && - self.decompressions == other.decompressions && - self.compressions == other.compressions && - self.swapins == other.swapins && - self.swapouts == other.swapouts && - self.compressor_page_count == other.compressor_page_count && - self.throttled_count == other.throttled_count && - self.external_page_count == other.external_page_count && - self.internal_page_count == other.internal_page_count && - total_uncompressed == other.total_uncompressed_pages_in_compressor - } - } - impl Eq for vm_statistics64 {} - impl ::fmt::Debug for vm_statistics64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let free_count = self.free_count; - let active_count = self.active_count; - let inactive_count = self.inactive_count; - let wire_count = self.wire_count; - let zero_fill_count = self.zero_fill_count; - let reactivations = self.reactivations; - let pageins = self.pageins; - let pageouts = self.pageouts; - let faults = self.faults; - let cow_faults = self.cow_faults; - let lookups = self.lookups; - let hits = self.hits; - let purges = self.purges; - let purgeable_count = self.purgeable_count; - let speculative_count = self.speculative_count; - let decompressions = self.decompressions; - let compressions = self.compressions; - let swapins = self.swapins; - let swapouts = self.swapouts; - let compressor_page_count = self.compressor_page_count; - let throttled_count = self.throttled_count; - let external_page_count = self.external_page_count; - let internal_page_count = self.internal_page_count; - // Otherwise rustfmt crashes... - let total_uncompressed = self.total_uncompressed_pages_in_compressor; - f.debug_struct("vm_statistics64") - .field("free_count", &free_count) - .field("active_count", &active_count) - .field("inactive_count", &inactive_count) - .field("wire_count", &wire_count) - .field("zero_fill_count", &zero_fill_count) - .field("reactivations", &reactivations) - .field("pageins", &pageins) - .field("pageouts", &pageouts) - .field("faults", &faults) - .field("cow_faults", &cow_faults) - .field("lookups", &lookups) - .field("hits", &hits) - .field("purges", &purges) - .field("purgeable_count", &purgeable_count) - .field("speculative_count", &speculative_count) - .field("decompressions", &decompressions) - .field("compressions", &compressions) - .field("swapins", &swapins) - .field("swapouts", &swapouts) - .field("compressor_page_count", &compressor_page_count) - .field("throttled_count", &throttled_count) - .field("external_page_count", &external_page_count) - .field("internal_page_count", &internal_page_count) - .field("total_uncompressed_pages_in_compressor", &total_uncompressed) - .finish() - } - } - impl ::hash::Hash for vm_statistics64 { - fn hash(&self, state: &mut H) { - let free_count = self.free_count; - let active_count = self.active_count; - let inactive_count = self.inactive_count; - let wire_count = self.wire_count; - let zero_fill_count = self.zero_fill_count; - let reactivations = self.reactivations; - let pageins = self.pageins; - let pageouts = self.pageouts; - let faults = self.faults; - let cow_faults = self.cow_faults; - let lookups = self.lookups; - let hits = self.hits; - let purges = self.purges; - let purgeable_count = self.purgeable_count; - let speculative_count = self.speculative_count; - let decompressions = self.decompressions; - let compressions = self.compressions; - let swapins = self.swapins; - let swapouts = self.swapouts; - let compressor_page_count = self.compressor_page_count; - let throttled_count = self.throttled_count; - let external_page_count = self.external_page_count; - let internal_page_count = self.internal_page_count; - // Otherwise rustfmt crashes... - let total_uncompressed = self.total_uncompressed_pages_in_compressor; - free_count.hash(state); - active_count.hash(state); - inactive_count.hash(state); - wire_count.hash(state); - zero_fill_count.hash(state); - reactivations.hash(state); - pageins.hash(state); - pageouts.hash(state); - faults.hash(state); - cow_faults.hash(state); - lookups.hash(state); - hits.hash(state); - purges.hash(state); - purgeable_count.hash(state); - speculative_count.hash(state); - decompressions.hash(state); - compressions.hash(state); - swapins.hash(state); - swapouts.hash(state); - compressor_page_count.hash(state); - throttled_count.hash(state); - external_page_count.hash(state); - internal_page_count.hash(state); - total_uncompressed.hash(state); - } - } - - impl PartialEq for mach_task_basic_info { - fn eq(&self, other: &mach_task_basic_info) -> bool { - self.virtual_size == other.virtual_size - && self.resident_size == other.resident_size - && self.resident_size_max == other.resident_size_max - && self.user_time == other.user_time - && self.system_time == other.system_time - && self.policy == other.policy - && self.suspend_count == other.suspend_count - } - } - impl Eq for mach_task_basic_info {} - impl ::fmt::Debug for mach_task_basic_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let virtual_size = self.virtual_size; - let resident_size = self.resident_size; - let resident_size_max = self.resident_size_max; - let user_time = self.user_time; - let system_time = self.system_time; - let policy = self.policy; - let suspend_count = self.suspend_count; - f.debug_struct("mach_task_basic_info") - .field("virtual_size", &virtual_size) - .field("resident_size", &resident_size) - .field("resident_size_max", &resident_size_max) - .field("user_time", &user_time) - .field("system_time", &system_time) - .field("policy", &policy) - .field("suspend_count", &suspend_count) - .finish() - } - } - impl ::hash::Hash for mach_task_basic_info { - fn hash(&self, state: &mut H) { - let virtual_size = self.virtual_size; - let resident_size = self.resident_size; - let resident_size_max = self.resident_size_max; - let user_time = self.user_time; - let system_time = self.system_time; - let policy = self.policy; - let suspend_count = self.suspend_count; - virtual_size.hash(state); - resident_size.hash(state); - resident_size_max.hash(state); - user_time.hash(state); - system_time.hash(state); - policy.hash(state); - suspend_count.hash(state); - } - } - - impl PartialEq for log2phys { - fn eq(&self, other: &log2phys) -> bool { - self.l2p_flags == other.l2p_flags - && self.l2p_contigbytes == other.l2p_contigbytes - && self.l2p_devoffset == other.l2p_devoffset - } - } - impl Eq for log2phys {} - impl ::fmt::Debug for log2phys { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let l2p_flags = self.l2p_flags; - let l2p_contigbytes = self.l2p_contigbytes; - let l2p_devoffset = self.l2p_devoffset; - f.debug_struct("log2phys") - .field("l2p_flags", &l2p_flags) - .field("l2p_contigbytes", &l2p_contigbytes) - .field("l2p_devoffset", &l2p_devoffset) - .finish() - } - } - impl ::hash::Hash for log2phys { - fn hash(&self, state: &mut H) { - let l2p_flags = self.l2p_flags; - let l2p_contigbytes = self.l2p_contigbytes; - let l2p_devoffset = self.l2p_devoffset; - l2p_flags.hash(state); - l2p_contigbytes.hash(state); - l2p_devoffset.hash(state); - } - } - impl PartialEq for os_unfair_lock { - fn eq(&self, other: &os_unfair_lock) -> bool { - self._os_unfair_lock_opaque == other._os_unfair_lock_opaque - } - } - - impl Eq for os_unfair_lock {} - - impl ::fmt::Debug for os_unfair_lock { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("os_unfair_lock") - .field("_os_unfair_lock_opaque", &self._os_unfair_lock_opaque) - .finish() - } - } - - impl ::hash::Hash for os_unfair_lock { - fn hash(&self, state: &mut H) { - self._os_unfair_lock_opaque.hash(state); - } - } - - impl PartialEq for sockaddr_vm { - fn eq(&self, other: &sockaddr_vm) -> bool { - self.svm_len == other.svm_len - && self.svm_family == other.svm_family - && self.svm_reserved1 == other.svm_reserved1 - && self.svm_port == other.svm_port - && self.svm_cid == other.svm_cid - } - } - - impl Eq for sockaddr_vm {} - - impl ::fmt::Debug for sockaddr_vm { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let svm_len = self.svm_len; - let svm_family = self.svm_family; - let svm_reserved1 = self.svm_reserved1; - let svm_port = self.svm_port; - let svm_cid = self.svm_cid; - - f.debug_struct("sockaddr_vm") - .field("svm_len",&svm_len) - .field("svm_family",&svm_family) - .field("svm_reserved1",&svm_reserved1) - .field("svm_port",&svm_port) - .field("svm_cid",&svm_cid) - .finish() - } - } - - impl ::hash::Hash for sockaddr_vm { - fn hash(&self, state: &mut H) { - let svm_len = self.svm_len; - let svm_family = self.svm_family; - let svm_reserved1 = self.svm_reserved1; - let svm_port = self.svm_port; - let svm_cid = self.svm_cid; - - svm_len.hash(state); - svm_family.hash(state); - svm_reserved1.hash(state); - svm_port.hash(state); - svm_cid.hash(state); - } - } - } -} - -pub const _UTX_USERSIZE: usize = 256; -pub const _UTX_LINESIZE: usize = 32; -pub const _UTX_IDSIZE: usize = 4; -pub const _UTX_HOSTSIZE: usize = 256; - -pub const EMPTY: ::c_short = 0; -pub const RUN_LVL: ::c_short = 1; -pub const BOOT_TIME: ::c_short = 2; -pub const OLD_TIME: ::c_short = 3; -pub const NEW_TIME: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const USER_PROCESS: ::c_short = 7; -pub const DEAD_PROCESS: ::c_short = 8; -pub const ACCOUNTING: ::c_short = 9; -pub const SIGNATURE: ::c_short = 10; -pub const SHUTDOWN_TIME: ::c_short = 11; - -pub const LC_COLLATE_MASK: ::c_int = 1 << 0; -pub const LC_CTYPE_MASK: ::c_int = 1 << 1; -pub const LC_MESSAGES_MASK: ::c_int = 1 << 2; -pub const LC_MONETARY_MASK: ::c_int = 1 << 3; -pub const LC_NUMERIC_MASK: ::c_int = 1 << 4; -pub const LC_TIME_MASK: ::c_int = 1 << 5; -pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK - | LC_CTYPE_MASK - | LC_MESSAGES_MASK - | LC_MONETARY_MASK - | LC_NUMERIC_MASK - | LC_TIME_MASK; - -pub const CODESET: ::nl_item = 0; -pub const D_T_FMT: ::nl_item = 1; -pub const D_FMT: ::nl_item = 2; -pub const T_FMT: ::nl_item = 3; -pub const T_FMT_AMPM: ::nl_item = 4; -pub const AM_STR: ::nl_item = 5; -pub const PM_STR: ::nl_item = 6; - -pub const DAY_1: ::nl_item = 7; -pub const DAY_2: ::nl_item = 8; -pub const DAY_3: ::nl_item = 9; -pub const DAY_4: ::nl_item = 10; -pub const DAY_5: ::nl_item = 11; -pub const DAY_6: ::nl_item = 12; -pub const DAY_7: ::nl_item = 13; - -pub const ABDAY_1: ::nl_item = 14; -pub const ABDAY_2: ::nl_item = 15; -pub const ABDAY_3: ::nl_item = 16; -pub const ABDAY_4: ::nl_item = 17; -pub const ABDAY_5: ::nl_item = 18; -pub const ABDAY_6: ::nl_item = 19; -pub const ABDAY_7: ::nl_item = 20; - -pub const MON_1: ::nl_item = 21; -pub const MON_2: ::nl_item = 22; -pub const MON_3: ::nl_item = 23; -pub const MON_4: ::nl_item = 24; -pub const MON_5: ::nl_item = 25; -pub const MON_6: ::nl_item = 26; -pub const MON_7: ::nl_item = 27; -pub const MON_8: ::nl_item = 28; -pub const MON_9: ::nl_item = 29; -pub const MON_10: ::nl_item = 30; -pub const MON_11: ::nl_item = 31; -pub const MON_12: ::nl_item = 32; - -pub const ABMON_1: ::nl_item = 33; -pub const ABMON_2: ::nl_item = 34; -pub const ABMON_3: ::nl_item = 35; -pub const ABMON_4: ::nl_item = 36; -pub const ABMON_5: ::nl_item = 37; -pub const ABMON_6: ::nl_item = 38; -pub const ABMON_7: ::nl_item = 39; -pub const ABMON_8: ::nl_item = 40; -pub const ABMON_9: ::nl_item = 41; -pub const ABMON_10: ::nl_item = 42; -pub const ABMON_11: ::nl_item = 43; -pub const ABMON_12: ::nl_item = 44; - -pub const CLOCK_REALTIME: ::clockid_t = 0; -pub const CLOCK_MONOTONIC_RAW: ::clockid_t = 4; -pub const CLOCK_MONOTONIC_RAW_APPROX: ::clockid_t = 5; -pub const CLOCK_MONOTONIC: ::clockid_t = 6; -pub const CLOCK_UPTIME_RAW: ::clockid_t = 8; -pub const CLOCK_UPTIME_RAW_APPROX: ::clockid_t = 9; -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 12; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 16; - -pub const ERA: ::nl_item = 45; -pub const ERA_D_FMT: ::nl_item = 46; -pub const ERA_D_T_FMT: ::nl_item = 47; -pub const ERA_T_FMT: ::nl_item = 48; -pub const ALT_DIGITS: ::nl_item = 49; - -pub const RADIXCHAR: ::nl_item = 50; -pub const THOUSEP: ::nl_item = 51; - -pub const YESEXPR: ::nl_item = 52; -pub const NOEXPR: ::nl_item = 53; - -pub const YESSTR: ::nl_item = 54; -pub const NOSTR: ::nl_item = 55; - -pub const CRNCYSTR: ::nl_item = 56; - -pub const D_MD_ORDER: ::nl_item = 57; - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 2147483647; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const SEEK_HOLE: ::c_int = 3; -pub const SEEK_DATA: ::c_int = 4; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; -pub const BUFSIZ: ::c_uint = 1024; -pub const FOPEN_MAX: ::c_uint = 20; -pub const FILENAME_MAX: ::c_uint = 1024; -pub const L_tmpnam: ::c_uint = 1024; -pub const TMP_MAX: ::c_uint = 308915776; -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; -pub const _PC_NO_TRUNC: ::c_int = 8; -pub const _PC_VDISABLE: ::c_int = 9; -pub const O_EVTONLY: ::c_int = 0x00008000; -pub const O_NOCTTY: ::c_int = 0x00020000; -pub const O_DIRECTORY: ::c_int = 0x00100000; -pub const O_SYMLINK: ::c_int = 0x00200000; -pub const O_DSYNC: ::c_int = 0x00400000; -pub const O_CLOEXEC: ::c_int = 0x01000000; -pub const O_NOFOLLOW_ANY: ::c_int = 0x20000000; -pub const S_IFIFO: mode_t = 4096; -pub const S_IFCHR: mode_t = 8192; -pub const S_IFBLK: mode_t = 24576; -pub const S_IFDIR: mode_t = 16384; -pub const S_IFREG: mode_t = 32768; -pub const S_IFLNK: mode_t = 40960; -pub const S_IFSOCK: mode_t = 49152; -pub const S_IFMT: mode_t = 61440; -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; -pub const S_IRWXU: mode_t = 448; -pub const S_IXUSR: mode_t = 64; -pub const S_IWUSR: mode_t = 128; -pub const S_IRUSR: mode_t = 256; -pub const S_IRWXG: mode_t = 56; -pub const S_IXGRP: mode_t = 8; -pub const S_IWGRP: mode_t = 16; -pub const S_IRGRP: mode_t = 32; -pub const S_IRWXO: mode_t = 7; -pub const S_IXOTH: mode_t = 1; -pub const S_IWOTH: mode_t = 2; -pub const S_IROTH: mode_t = 4; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; -pub const F_GETLK: ::c_int = 7; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const PT_TRACE_ME: ::c_int = 0; -pub const PT_READ_I: ::c_int = 1; -pub const PT_READ_D: ::c_int = 2; -pub const PT_READ_U: ::c_int = 3; -pub const PT_WRITE_I: ::c_int = 4; -pub const PT_WRITE_D: ::c_int = 5; -pub const PT_WRITE_U: ::c_int = 6; -pub const PT_CONTINUE: ::c_int = 7; -pub const PT_KILL: ::c_int = 8; -pub const PT_STEP: ::c_int = 9; -pub const PT_ATTACH: ::c_int = 10; -pub const PT_DETACH: ::c_int = 11; -pub const PT_SIGEXC: ::c_int = 12; -pub const PT_THUPDATE: ::c_int = 13; -pub const PT_ATTACHEXC: ::c_int = 14; - -pub const PT_FORCEQUOTA: ::c_int = 30; -pub const PT_DENY_ATTACH: ::c_int = 31; -pub const PT_FIRSTMACH: ::c_int = 32; - -pub const MAP_FILE: ::c_int = 0x0000; -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_FIXED: ::c_int = 0x0010; -pub const MAP_ANON: ::c_int = 0x1000; -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; - -pub const CPU_STATE_USER: ::c_int = 0; -pub const CPU_STATE_SYSTEM: ::c_int = 1; -pub const CPU_STATE_IDLE: ::c_int = 2; -pub const CPU_STATE_NICE: ::c_int = 3; -pub const CPU_STATE_MAX: ::c_int = 4; - -pub const PROCESSOR_BASIC_INFO: ::c_int = 1; -pub const PROCESSOR_CPU_LOAD_INFO: ::c_int = 2; -pub const PROCESSOR_PM_REGS_INFO: ::c_int = 0x10000001; -pub const PROCESSOR_TEMPERATURE: ::c_int = 0x10000002; -pub const PROCESSOR_SET_LOAD_INFO: ::c_int = 4; -pub const PROCESSOR_SET_BASIC_INFO: ::c_int = 5; - -deprecated_mach! { - pub const VM_FLAGS_FIXED: ::c_int = 0x0000; - pub const VM_FLAGS_ANYWHERE: ::c_int = 0x0001; - pub const VM_FLAGS_PURGABLE: ::c_int = 0x0002; - pub const VM_FLAGS_RANDOM_ADDR: ::c_int = 0x0008; - pub const VM_FLAGS_NO_CACHE: ::c_int = 0x0010; - pub const VM_FLAGS_RESILIENT_CODESIGN: ::c_int = 0x0020; - pub const VM_FLAGS_RESILIENT_MEDIA: ::c_int = 0x0040; - pub const VM_FLAGS_OVERWRITE: ::c_int = 0x4000; - pub const VM_FLAGS_SUPERPAGE_MASK: ::c_int = 0x70000; - pub const VM_FLAGS_RETURN_DATA_ADDR: ::c_int = 0x100000; - pub const VM_FLAGS_RETURN_4K_DATA_ADDR: ::c_int = 0x800000; - pub const VM_FLAGS_ALIAS_MASK: ::c_int = 0xFF000000; - pub const VM_FLAGS_USER_ALLOCATE: ::c_int = 0xff07401f; - pub const VM_FLAGS_USER_MAP: ::c_int = 0xff97401f; - pub const VM_FLAGS_USER_REMAP: ::c_int = VM_FLAGS_FIXED | - VM_FLAGS_ANYWHERE | - VM_FLAGS_RANDOM_ADDR | - VM_FLAGS_OVERWRITE | - VM_FLAGS_RETURN_DATA_ADDR | - VM_FLAGS_RESILIENT_CODESIGN; - - pub const VM_FLAGS_SUPERPAGE_SHIFT: ::c_int = 16; - pub const SUPERPAGE_NONE: ::c_int = 0; - pub const SUPERPAGE_SIZE_ANY: ::c_int = 1; - pub const VM_FLAGS_SUPERPAGE_NONE: ::c_int = SUPERPAGE_NONE << - VM_FLAGS_SUPERPAGE_SHIFT; - pub const VM_FLAGS_SUPERPAGE_SIZE_ANY: ::c_int = SUPERPAGE_SIZE_ANY << - VM_FLAGS_SUPERPAGE_SHIFT; - pub const SUPERPAGE_SIZE_2MB: ::c_int = 2; - pub const VM_FLAGS_SUPERPAGE_SIZE_2MB: ::c_int = SUPERPAGE_SIZE_2MB << - VM_FLAGS_SUPERPAGE_SHIFT; - - pub const VM_MEMORY_MALLOC: ::c_int = 1; - pub const VM_MEMORY_MALLOC_SMALL: ::c_int = 2; - pub const VM_MEMORY_MALLOC_LARGE: ::c_int = 3; - pub const VM_MEMORY_MALLOC_HUGE: ::c_int = 4; - pub const VM_MEMORY_SBRK: ::c_int = 5; - pub const VM_MEMORY_REALLOC: ::c_int = 6; - pub const VM_MEMORY_MALLOC_TINY: ::c_int = 7; - pub const VM_MEMORY_MALLOC_LARGE_REUSABLE: ::c_int = 8; - pub const VM_MEMORY_MALLOC_LARGE_REUSED: ::c_int = 9; - pub const VM_MEMORY_ANALYSIS_TOOL: ::c_int = 10; - pub const VM_MEMORY_MALLOC_NANO: ::c_int = 11; - pub const VM_MEMORY_MACH_MSG: ::c_int = 20; - pub const VM_MEMORY_IOKIT: ::c_int = 21; - pub const VM_MEMORY_STACK: ::c_int = 30; - pub const VM_MEMORY_GUARD: ::c_int = 31; - pub const VM_MEMORY_SHARED_PMAP: ::c_int = 32; - pub const VM_MEMORY_DYLIB: ::c_int = 33; - pub const VM_MEMORY_OBJC_DISPATCHERS: ::c_int = 34; - pub const VM_MEMORY_UNSHARED_PMAP: ::c_int = 35; - pub const VM_MEMORY_APPKIT: ::c_int = 40; - pub const VM_MEMORY_FOUNDATION: ::c_int = 41; - pub const VM_MEMORY_COREGRAPHICS: ::c_int = 42; - pub const VM_MEMORY_CORESERVICES: ::c_int = 43; - pub const VM_MEMORY_CARBON: ::c_int = VM_MEMORY_CORESERVICES; - pub const VM_MEMORY_JAVA: ::c_int = 44; - pub const VM_MEMORY_COREDATA: ::c_int = 45; - pub const VM_MEMORY_COREDATA_OBJECTIDS: ::c_int = 46; - pub const VM_MEMORY_ATS: ::c_int = 50; - pub const VM_MEMORY_LAYERKIT: ::c_int = 51; - pub const VM_MEMORY_CGIMAGE: ::c_int = 52; - pub const VM_MEMORY_TCMALLOC: ::c_int = 53; - pub const VM_MEMORY_COREGRAPHICS_DATA: ::c_int = 54; - pub const VM_MEMORY_COREGRAPHICS_SHARED: ::c_int = 55; - pub const VM_MEMORY_COREGRAPHICS_FRAMEBUFFERS: ::c_int = 56; - pub const VM_MEMORY_COREGRAPHICS_BACKINGSTORES: ::c_int = 57; - pub const VM_MEMORY_COREGRAPHICS_XALLOC: ::c_int = 58; - pub const VM_MEMORY_COREGRAPHICS_MISC: ::c_int = VM_MEMORY_COREGRAPHICS; - pub const VM_MEMORY_DYLD: ::c_int = 60; - pub const VM_MEMORY_DYLD_MALLOC: ::c_int = 61; - pub const VM_MEMORY_SQLITE: ::c_int = 62; - pub const VM_MEMORY_JAVASCRIPT_CORE: ::c_int = 63; - pub const VM_MEMORY_JAVASCRIPT_JIT_EXECUTABLE_ALLOCATOR: ::c_int = 64; - pub const VM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE: ::c_int = 65; - pub const VM_MEMORY_GLSL: ::c_int = 66; - pub const VM_MEMORY_OPENCL: ::c_int = 67; - pub const VM_MEMORY_COREIMAGE: ::c_int = 68; - pub const VM_MEMORY_WEBCORE_PURGEABLE_BUFFERS: ::c_int = 69; - pub const VM_MEMORY_IMAGEIO: ::c_int = 70; - pub const VM_MEMORY_COREPROFILE: ::c_int = 71; - pub const VM_MEMORY_ASSETSD: ::c_int = 72; - pub const VM_MEMORY_OS_ALLOC_ONCE: ::c_int = 73; - pub const VM_MEMORY_LIBDISPATCH: ::c_int = 74; - pub const VM_MEMORY_ACCELERATE: ::c_int = 75; - pub const VM_MEMORY_COREUI: ::c_int = 76; - pub const VM_MEMORY_COREUIFILE: ::c_int = 77; - pub const VM_MEMORY_GENEALOGY: ::c_int = 78; - pub const VM_MEMORY_RAWCAMERA: ::c_int = 79; - pub const VM_MEMORY_CORPSEINFO: ::c_int = 80; - pub const VM_MEMORY_ASL: ::c_int = 81; - pub const VM_MEMORY_SWIFT_RUNTIME: ::c_int = 82; - pub const VM_MEMORY_SWIFT_METADATA: ::c_int = 83; - pub const VM_MEMORY_DHMM: ::c_int = 84; - pub const VM_MEMORY_SCENEKIT: ::c_int = 86; - pub const VM_MEMORY_SKYWALK: ::c_int = 87; - pub const VM_MEMORY_APPLICATION_SPECIFIC_1: ::c_int = 240; - pub const VM_MEMORY_APPLICATION_SPECIFIC_16: ::c_int = 255; -} - -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const MS_ASYNC: ::c_int = 0x0001; -pub const MS_INVALIDATE: ::c_int = 0x0002; -pub const MS_SYNC: ::c_int = 0x0010; - -pub const MS_KILLPAGES: ::c_int = 0x0004; -pub const MS_DEACTIVATE: ::c_int = 0x0008; - -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EDEADLK: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EAGAIN: ::c_int = 35; -pub const EWOULDBLOCK: ::c_int = EAGAIN; -pub const EINPROGRESS: ::c_int = 36; -pub const EALREADY: ::c_int = 37; -pub const ENOTSOCK: ::c_int = 38; -pub const EDESTADDRREQ: ::c_int = 39; -pub const EMSGSIZE: ::c_int = 40; -pub const EPROTOTYPE: ::c_int = 41; -pub const ENOPROTOOPT: ::c_int = 42; -pub const EPROTONOSUPPORT: ::c_int = 43; -pub const ESOCKTNOSUPPORT: ::c_int = 44; -pub const ENOTSUP: ::c_int = 45; -pub const EPFNOSUPPORT: ::c_int = 46; -pub const EAFNOSUPPORT: ::c_int = 47; -pub const EADDRINUSE: ::c_int = 48; -pub const EADDRNOTAVAIL: ::c_int = 49; -pub const ENETDOWN: ::c_int = 50; -pub const ENETUNREACH: ::c_int = 51; -pub const ENETRESET: ::c_int = 52; -pub const ECONNABORTED: ::c_int = 53; -pub const ECONNRESET: ::c_int = 54; -pub const ENOBUFS: ::c_int = 55; -pub const EISCONN: ::c_int = 56; -pub const ENOTCONN: ::c_int = 57; -pub const ESHUTDOWN: ::c_int = 58; -pub const ETOOMANYREFS: ::c_int = 59; -pub const ETIMEDOUT: ::c_int = 60; -pub const ECONNREFUSED: ::c_int = 61; -pub const ELOOP: ::c_int = 62; -pub const ENAMETOOLONG: ::c_int = 63; -pub const EHOSTDOWN: ::c_int = 64; -pub const EHOSTUNREACH: ::c_int = 65; -pub const ENOTEMPTY: ::c_int = 66; -pub const EPROCLIM: ::c_int = 67; -pub const EUSERS: ::c_int = 68; -pub const EDQUOT: ::c_int = 69; -pub const ESTALE: ::c_int = 70; -pub const EREMOTE: ::c_int = 71; -pub const EBADRPC: ::c_int = 72; -pub const ERPCMISMATCH: ::c_int = 73; -pub const EPROGUNAVAIL: ::c_int = 74; -pub const EPROGMISMATCH: ::c_int = 75; -pub const EPROCUNAVAIL: ::c_int = 76; -pub const ENOLCK: ::c_int = 77; -pub const ENOSYS: ::c_int = 78; -pub const EFTYPE: ::c_int = 79; -pub const EAUTH: ::c_int = 80; -pub const ENEEDAUTH: ::c_int = 81; -pub const EPWROFF: ::c_int = 82; -pub const EDEVERR: ::c_int = 83; -pub const EOVERFLOW: ::c_int = 84; -pub const EBADEXEC: ::c_int = 85; -pub const EBADARCH: ::c_int = 86; -pub const ESHLIBVERS: ::c_int = 87; -pub const EBADMACHO: ::c_int = 88; -pub const ECANCELED: ::c_int = 89; -pub const EIDRM: ::c_int = 90; -pub const ENOMSG: ::c_int = 91; -pub const EILSEQ: ::c_int = 92; -pub const ENOATTR: ::c_int = 93; -pub const EBADMSG: ::c_int = 94; -pub const EMULTIHOP: ::c_int = 95; -pub const ENODATA: ::c_int = 96; -pub const ENOLINK: ::c_int = 97; -pub const ENOSR: ::c_int = 98; -pub const ENOSTR: ::c_int = 99; -pub const EPROTO: ::c_int = 100; -pub const ETIME: ::c_int = 101; -pub const EOPNOTSUPP: ::c_int = 102; -pub const ENOPOLICY: ::c_int = 103; -pub const ENOTRECOVERABLE: ::c_int = 104; -pub const EOWNERDEAD: ::c_int = 105; -pub const EQFULL: ::c_int = 106; -pub const ELAST: ::c_int = 106; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 14; - -pub const F_DUPFD: ::c_int = 0; -pub const F_DUPFD_CLOEXEC: ::c_int = 67; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; -pub const F_PREALLOCATE: ::c_int = 42; -pub const F_RDADVISE: ::c_int = 44; -pub const F_RDAHEAD: ::c_int = 45; -pub const F_NOCACHE: ::c_int = 48; -pub const F_LOG2PHYS: ::c_int = 49; -pub const F_GETPATH: ::c_int = 50; -pub const F_FULLFSYNC: ::c_int = 51; -pub const F_FREEZE_FS: ::c_int = 53; -pub const F_THAW_FS: ::c_int = 54; -pub const F_GLOBAL_NOCACHE: ::c_int = 55; -pub const F_NODIRECT: ::c_int = 62; -pub const F_LOG2PHYS_EXT: ::c_int = 65; -pub const F_BARRIERFSYNC: ::c_int = 85; -pub const F_GETPATH_NOFIRMLINK: ::c_int = 102; - -pub const F_ALLOCATECONTIG: ::c_uint = 0x02; -pub const F_ALLOCATEALL: ::c_uint = 0x04; - -pub const F_PEOFPOSMODE: ::c_int = 3; -pub const F_VOLPOSMODE: ::c_int = 4; - -pub const AT_FDCWD: ::c_int = -2; -pub const AT_EACCESS: ::c_int = 0x0010; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x0020; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x0040; -pub const AT_REMOVEDIR: ::c_int = 0x0080; - -pub const PTHREAD_INTROSPECTION_THREAD_CREATE: ::c_uint = 1; -pub const PTHREAD_INTROSPECTION_THREAD_START: ::c_uint = 2; -pub const PTHREAD_INTROSPECTION_THREAD_TERMINATE: ::c_uint = 3; -pub const PTHREAD_INTROSPECTION_THREAD_DESTROY: ::c_uint = 4; - -pub const TIOCMODG: ::c_ulong = 0x40047403; -pub const TIOCMODS: ::c_ulong = 0x80047404; -pub const TIOCM_LE: ::c_int = 0x1; -pub const TIOCM_DTR: ::c_int = 0x2; -pub const TIOCM_RTS: ::c_int = 0x4; -pub const TIOCM_ST: ::c_int = 0x8; -pub const TIOCM_SR: ::c_int = 0x10; -pub const TIOCM_CTS: ::c_int = 0x20; -pub const TIOCM_CAR: ::c_int = 0x40; -pub const TIOCM_CD: ::c_int = 0x40; -pub const TIOCM_RNG: ::c_int = 0x80; -pub const TIOCM_RI: ::c_int = 0x80; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const TIOCEXCL: ::c_int = 0x2000740d; -pub const TIOCNXCL: ::c_int = 0x2000740e; -pub const TIOCFLUSH: ::c_ulong = 0x80047410; -pub const TIOCGETD: ::c_ulong = 0x4004741a; -pub const TIOCSETD: ::c_ulong = 0x8004741b; -pub const TIOCIXON: ::c_uint = 0x20007481; -pub const TIOCIXOFF: ::c_uint = 0x20007480; -pub const TIOCSDTR: ::c_uint = 0x20007479; -pub const TIOCCDTR: ::c_uint = 0x20007478; -pub const TIOCGPGRP: ::c_ulong = 0x40047477; -pub const TIOCSPGRP: ::c_ulong = 0x80047476; -pub const TIOCOUTQ: ::c_ulong = 0x40047473; -pub const TIOCSTI: ::c_ulong = 0x80017472; -pub const TIOCNOTTY: ::c_uint = 0x20007471; -pub const TIOCPKT: ::c_ulong = 0x80047470; -pub const TIOCPKT_DATA: ::c_int = 0x0; -pub const TIOCPKT_FLUSHREAD: ::c_int = 0x1; -pub const TIOCPKT_FLUSHWRITE: ::c_int = 0x2; -pub const TIOCPKT_STOP: ::c_int = 0x4; -pub const TIOCPKT_START: ::c_int = 0x8; -pub const TIOCPKT_NOSTOP: ::c_int = 0x10; -pub const TIOCPKT_DOSTOP: ::c_int = 0x20; -pub const TIOCPKT_IOCTL: ::c_int = 0x40; -pub const TIOCSTOP: ::c_uint = 0x2000746f; -pub const TIOCSTART: ::c_uint = 0x2000746e; -pub const TIOCMSET: ::c_ulong = 0x8004746d; -pub const TIOCMBIS: ::c_ulong = 0x8004746c; -pub const TIOCMBIC: ::c_ulong = 0x8004746b; -pub const TIOCMGET: ::c_ulong = 0x4004746a; -pub const TIOCREMOTE: ::c_ulong = 0x80047469; -pub const TIOCGWINSZ: ::c_ulong = 0x40087468; -pub const TIOCSWINSZ: ::c_ulong = 0x80087467; -pub const TIOCUCNTL: ::c_ulong = 0x80047466; -pub const TIOCSTAT: ::c_uint = 0x20007465; -pub const TIOCSCONS: ::c_uint = 0x20007463; -pub const TIOCCONS: ::c_ulong = 0x80047462; -pub const TIOCSCTTY: ::c_uint = 0x20007461; -pub const TIOCEXT: ::c_ulong = 0x80047460; -pub const TIOCSIG: ::c_uint = 0x2000745f; -pub const TIOCDRAIN: ::c_uint = 0x2000745e; -pub const TIOCMSDTRWAIT: ::c_ulong = 0x8004745b; -pub const TIOCMGDTRWAIT: ::c_ulong = 0x4004745a; -pub const TIOCSDRAINWAIT: ::c_ulong = 0x80047457; -pub const TIOCGDRAINWAIT: ::c_ulong = 0x40047456; -pub const TIOCDSIMICROCODE: ::c_uint = 0x20007455; -pub const TIOCPTYGRANT: ::c_uint = 0x20007454; -pub const TIOCPTYGNAME: ::c_uint = 0x40807453; -pub const TIOCPTYUNLK: ::c_uint = 0x20007452; - -pub const BIOCGRSIG: ::c_ulong = 0x40044272; -pub const BIOCSRSIG: ::c_ulong = 0x80044273; -pub const BIOCSDLT: ::c_ulong = 0x80044278; -pub const BIOCGSEESENT: ::c_ulong = 0x40044276; -pub const BIOCSSEESENT: ::c_ulong = 0x80044277; -pub const BIOCGDLTLIST: ::c_ulong = 0xc00c4279; - -pub const FIODTYPE: ::c_ulong = 0x4004667a; - -pub const B0: speed_t = 0; -pub const B50: speed_t = 50; -pub const B75: speed_t = 75; -pub const B110: speed_t = 110; -pub const B134: speed_t = 134; -pub const B150: speed_t = 150; -pub const B200: speed_t = 200; -pub const B300: speed_t = 300; -pub const B600: speed_t = 600; -pub const B1200: speed_t = 1200; -pub const B1800: speed_t = 1800; -pub const B2400: speed_t = 2400; -pub const B4800: speed_t = 4800; -pub const B9600: speed_t = 9600; -pub const B19200: speed_t = 19200; -pub const B38400: speed_t = 38400; -pub const B7200: speed_t = 7200; -pub const B14400: speed_t = 14400; -pub const B28800: speed_t = 28800; -pub const B57600: speed_t = 57600; -pub const B76800: speed_t = 76800; -pub const B115200: speed_t = 115200; -pub const B230400: speed_t = 230400; -pub const EXTA: speed_t = 19200; -pub const EXTB: speed_t = 38400; - -pub const SIGTRAP: ::c_int = 5; - -pub const GLOB_APPEND: ::c_int = 0x0001; -pub const GLOB_DOOFFS: ::c_int = 0x0002; -pub const GLOB_ERR: ::c_int = 0x0004; -pub const GLOB_MARK: ::c_int = 0x0008; -pub const GLOB_NOCHECK: ::c_int = 0x0010; -pub const GLOB_NOSORT: ::c_int = 0x0020; -pub const GLOB_NOESCAPE: ::c_int = 0x2000; - -pub const GLOB_NOSPACE: ::c_int = -1; -pub const GLOB_ABORTED: ::c_int = -2; -pub const GLOB_NOMATCH: ::c_int = -3; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_MADV_WILLNEED: ::c_int = 3; -pub const POSIX_MADV_DONTNEED: ::c_int = 4; - -pub const _SC_IOV_MAX: ::c_int = 56; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 70; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 71; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 73; -pub const _SC_MQ_PRIO_MAX: ::c_int = 75; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 82; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 83; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 85; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 86; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 87; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 88; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 89; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 90; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 91; -pub const _SC_THREAD_STACK_MIN: ::c_int = 93; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 94; -pub const _SC_THREADS: ::c_int = 96; -pub const _SC_TTY_NAME_MAX: ::c_int = 101; -pub const _SC_ATEXIT_MAX: ::c_int = 107; -pub const _SC_XOPEN_CRYPT: ::c_int = 108; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 109; -pub const _SC_XOPEN_LEGACY: ::c_int = 110; -pub const _SC_XOPEN_REALTIME: ::c_int = 111; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 112; -pub const _SC_XOPEN_SHM: ::c_int = 113; -pub const _SC_XOPEN_UNIX: ::c_int = 115; -pub const _SC_XOPEN_VERSION: ::c_int = 116; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 121; -pub const _SC_PHYS_PAGES: ::c_int = 200; - -pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 2; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 1; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 2; -#[cfg(target_arch = "aarch64")] -pub const PTHREAD_STACK_MIN: ::size_t = 16384; -#[cfg(not(target_arch = "aarch64"))] -pub const PTHREAD_STACK_MIN: ::size_t = 8192; - -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_AS: ::c_int = 5; -pub const RLIMIT_RSS: ::c_int = RLIMIT_AS; -pub const RLIMIT_MEMLOCK: ::c_int = 6; -pub const RLIMIT_NPROC: ::c_int = 7; -pub const RLIMIT_NOFILE: ::c_int = 8; -#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::c_int = 9; -pub const _RLIMIT_POSIX_FLAG: ::c_int = 0x1000; - -pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff; - -pub const RUSAGE_SELF: ::c_int = 0; -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; -pub const MADV_FREE: ::c_int = 5; -pub const MADV_ZERO_WIRED_PAGES: ::c_int = 6; -pub const MADV_FREE_REUSABLE: ::c_int = 7; -pub const MADV_FREE_REUSE: ::c_int = 8; -pub const MADV_CAN_REUSE: ::c_int = 9; - -pub const MINCORE_INCORE: ::c_int = 0x1; -pub const MINCORE_REFERENCED: ::c_int = 0x2; -pub const MINCORE_MODIFIED: ::c_int = 0x4; -pub const MINCORE_REFERENCED_OTHER: ::c_int = 0x8; -pub const MINCORE_MODIFIED_OTHER: ::c_int = 0x10; - -pub const CTLIOCGINFO: c_ulong = 0xc0644e03; - -// -// sys/netinet/in.h -// Protocols (RFC 1700) -// NOTE: These are in addition to the constants defined in src/unix/mod.rs - -// IPPROTO_IP defined in src/unix/mod.rs -/// IP6 hop-by-hop options -pub const IPPROTO_HOPOPTS: ::c_int = 0; -// IPPROTO_ICMP defined in src/unix/mod.rs -/// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; -/// gateway2 (deprecated) -pub const IPPROTO_GGP: ::c_int = 3; -/// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; -// IPPROTO_TCP defined in src/unix/mod.rs -/// Stream protocol II. -pub const IPPROTO_ST: ::c_int = 7; -/// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; -/// private interior gateway -pub const IPPROTO_PIGP: ::c_int = 9; -/// BBN RCC Monitoring -pub const IPPROTO_RCCMON: ::c_int = 10; -/// network voice protocol -pub const IPPROTO_NVPII: ::c_int = 11; -/// pup -pub const IPPROTO_PUP: ::c_int = 12; -/// Argus -pub const IPPROTO_ARGUS: ::c_int = 13; -/// EMCON -pub const IPPROTO_EMCON: ::c_int = 14; -/// Cross Net Debugger -pub const IPPROTO_XNET: ::c_int = 15; -/// Chaos -pub const IPPROTO_CHAOS: ::c_int = 16; -// IPPROTO_UDP defined in src/unix/mod.rs -/// Multiplexing -pub const IPPROTO_MUX: ::c_int = 18; -/// DCN Measurement Subsystems -pub const IPPROTO_MEAS: ::c_int = 19; -/// Host Monitoring -pub const IPPROTO_HMP: ::c_int = 20; -/// Packet Radio Measurement -pub const IPPROTO_PRM: ::c_int = 21; -/// xns idp -pub const IPPROTO_IDP: ::c_int = 22; -/// Trunk-1 -pub const IPPROTO_TRUNK1: ::c_int = 23; -/// Trunk-2 -pub const IPPROTO_TRUNK2: ::c_int = 24; -/// Leaf-1 -pub const IPPROTO_LEAF1: ::c_int = 25; -/// Leaf-2 -pub const IPPROTO_LEAF2: ::c_int = 26; -/// Reliable Data -pub const IPPROTO_RDP: ::c_int = 27; -/// Reliable Transaction -pub const IPPROTO_IRTP: ::c_int = 28; -/// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; -/// Bulk Data Transfer -pub const IPPROTO_BLT: ::c_int = 30; -/// Network Services -pub const IPPROTO_NSP: ::c_int = 31; -/// Merit Internodal -pub const IPPROTO_INP: ::c_int = 32; -/// Sequential Exchange -pub const IPPROTO_SEP: ::c_int = 33; -/// Third Party Connect -pub const IPPROTO_3PC: ::c_int = 34; -/// InterDomain Policy Routing -pub const IPPROTO_IDPR: ::c_int = 35; -/// XTP -pub const IPPROTO_XTP: ::c_int = 36; -/// Datagram Delivery -pub const IPPROTO_DDP: ::c_int = 37; -/// Control Message Transport -pub const IPPROTO_CMTP: ::c_int = 38; -/// TP++ Transport -pub const IPPROTO_TPXX: ::c_int = 39; -/// IL transport protocol -pub const IPPROTO_IL: ::c_int = 40; -// IPPROTO_IPV6 defined in src/unix/mod.rs -/// Source Demand Routing -pub const IPPROTO_SDRP: ::c_int = 42; -/// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; -/// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; -/// InterDomain Routing -pub const IPPROTO_IDRP: ::c_int = 45; -/// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; -/// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; -/// Mobile Host Routing -pub const IPPROTO_MHRP: ::c_int = 48; -/// BHA -pub const IPPROTO_BHA: ::c_int = 49; -/// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; -/// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; -/// Integ. Net Layer Security -pub const IPPROTO_INLSP: ::c_int = 52; -/// IP with encryption -pub const IPPROTO_SWIPE: ::c_int = 53; -/// Next Hop Resolution -pub const IPPROTO_NHRP: ::c_int = 54; -/* 55-57: Unassigned */ -// IPPROTO_ICMPV6 defined in src/unix/mod.rs -/// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; -/// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; -/// any host internal protocol -pub const IPPROTO_AHIP: ::c_int = 61; -/// CFTP -pub const IPPROTO_CFTP: ::c_int = 62; -/// "hello" routing protocol -pub const IPPROTO_HELLO: ::c_int = 63; -/// SATNET/Backroom EXPAK -pub const IPPROTO_SATEXPAK: ::c_int = 64; -/// Kryptolan -pub const IPPROTO_KRYPTOLAN: ::c_int = 65; -/// Remote Virtual Disk -pub const IPPROTO_RVD: ::c_int = 66; -/// Pluribus Packet Core -pub const IPPROTO_IPPC: ::c_int = 67; -/// Any distributed FS -pub const IPPROTO_ADFS: ::c_int = 68; -/// Satnet Monitoring -pub const IPPROTO_SATMON: ::c_int = 69; -/// VISA Protocol -pub const IPPROTO_VISA: ::c_int = 70; -/// Packet Core Utility -pub const IPPROTO_IPCV: ::c_int = 71; -/// Comp. Prot. Net. Executive -pub const IPPROTO_CPNX: ::c_int = 72; -/// Comp. Prot. HeartBeat -pub const IPPROTO_CPHB: ::c_int = 73; -/// Wang Span Network -pub const IPPROTO_WSN: ::c_int = 74; -/// Packet Video Protocol -pub const IPPROTO_PVP: ::c_int = 75; -/// BackRoom SATNET Monitoring -pub const IPPROTO_BRSATMON: ::c_int = 76; -/// Sun net disk proto (temp.) -pub const IPPROTO_ND: ::c_int = 77; -/// WIDEBAND Monitoring -pub const IPPROTO_WBMON: ::c_int = 78; -/// WIDEBAND EXPAK -pub const IPPROTO_WBEXPAK: ::c_int = 79; -/// ISO cnlp -pub const IPPROTO_EON: ::c_int = 80; -/// VMTP -pub const IPPROTO_VMTP: ::c_int = 81; -/// Secure VMTP -pub const IPPROTO_SVMTP: ::c_int = 82; -/// Banyon VINES -pub const IPPROTO_VINES: ::c_int = 83; -/// TTP -pub const IPPROTO_TTP: ::c_int = 84; -/// NSFNET-IGP -pub const IPPROTO_IGP: ::c_int = 85; -/// dissimilar gateway prot. -pub const IPPROTO_DGP: ::c_int = 86; -/// TCF -pub const IPPROTO_TCF: ::c_int = 87; -/// Cisco/GXS IGRP -pub const IPPROTO_IGRP: ::c_int = 88; -/// OSPFIGP -pub const IPPROTO_OSPFIGP: ::c_int = 89; -/// Strite RPC protocol -pub const IPPROTO_SRPC: ::c_int = 90; -/// Locus Address Resoloution -pub const IPPROTO_LARP: ::c_int = 91; -/// Multicast Transport -pub const IPPROTO_MTP: ::c_int = 92; -/// AX.25 Frames -pub const IPPROTO_AX25: ::c_int = 93; -/// IP encapsulated in IP -pub const IPPROTO_IPEIP: ::c_int = 94; -/// Mobile Int.ing control -pub const IPPROTO_MICP: ::c_int = 95; -/// Semaphore Comm. security -pub const IPPROTO_SCCSP: ::c_int = 96; -/// Ethernet IP encapsulation -pub const IPPROTO_ETHERIP: ::c_int = 97; -/// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; -/// any private encr. scheme -pub const IPPROTO_APES: ::c_int = 99; -/// GMTP -pub const IPPROTO_GMTP: ::c_int = 100; - -/* 101-254: Partly Unassigned */ -/// Protocol Independent Mcast -pub const IPPROTO_PIM: ::c_int = 103; -/// payload compression (IPComp) -pub const IPPROTO_IPCOMP: ::c_int = 108; -/// PGM -pub const IPPROTO_PGM: ::c_int = 113; -/// SCTP -pub const IPPROTO_SCTP: ::c_int = 132; - -/* 255: Reserved */ -/* BSD Private, local use, namespace incursion */ -/// divert pseudo-protocol -pub const IPPROTO_DIVERT: ::c_int = 254; -/// raw IP packet -pub const IPPROTO_RAW: ::c_int = 255; -pub const IPPROTO_MAX: ::c_int = 256; -/// last return value of *_input(), meaning "all job for this pkt is done". -pub const IPPROTO_DONE: ::c_int = 257; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_UNIX: ::c_int = AF_LOCAL; -pub const AF_INET: ::c_int = 2; -pub const AF_IMPLINK: ::c_int = 3; -pub const AF_PUP: ::c_int = 4; -pub const AF_CHAOS: ::c_int = 5; -pub const AF_NS: ::c_int = 6; -pub const AF_ISO: ::c_int = 7; -pub const AF_OSI: ::c_int = AF_ISO; -pub const AF_ECMA: ::c_int = 8; -pub const AF_DATAKIT: ::c_int = 9; -pub const AF_CCITT: ::c_int = 10; -pub const AF_SNA: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_DLI: ::c_int = 13; -pub const AF_LAT: ::c_int = 14; -pub const AF_HYLINK: ::c_int = 15; -pub const AF_APPLETALK: ::c_int = 16; -pub const AF_ROUTE: ::c_int = 17; -pub const AF_LINK: ::c_int = 18; -pub const pseudo_AF_XTP: ::c_int = 19; -pub const AF_COIP: ::c_int = 20; -pub const AF_CNT: ::c_int = 21; -pub const pseudo_AF_RTIP: ::c_int = 22; -pub const AF_IPX: ::c_int = 23; -pub const AF_SIP: ::c_int = 24; -pub const pseudo_AF_PIP: ::c_int = 25; -pub const AF_NDRV: ::c_int = 27; -pub const AF_ISDN: ::c_int = 28; -pub const AF_E164: ::c_int = AF_ISDN; -pub const pseudo_AF_KEY: ::c_int = 29; -pub const AF_INET6: ::c_int = 30; -pub const AF_NATM: ::c_int = 31; -pub const AF_SYSTEM: ::c_int = 32; -pub const AF_NETBIOS: ::c_int = 33; -pub const AF_PPP: ::c_int = 34; -pub const pseudo_AF_HDRCMPLT: ::c_int = 35; -pub const AF_IEEE80211: ::c_int = 37; -pub const AF_UTUN: ::c_int = 38; -pub const AF_VSOCK: ::c_int = 40; -pub const AF_SYS_CONTROL: ::c_int = 2; - -pub const SYSPROTO_EVENT: ::c_int = 1; -pub const SYSPROTO_CONTROL: ::c_int = 2; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_UNIX: ::c_int = PF_LOCAL; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -pub const PF_PUP: ::c_int = AF_PUP; -pub const PF_CHAOS: ::c_int = AF_CHAOS; -pub const PF_NS: ::c_int = AF_NS; -pub const PF_ISO: ::c_int = AF_ISO; -pub const PF_OSI: ::c_int = AF_ISO; -pub const PF_ECMA: ::c_int = AF_ECMA; -pub const PF_DATAKIT: ::c_int = AF_DATAKIT; -pub const PF_CCITT: ::c_int = AF_CCITT; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_DLI: ::c_int = AF_DLI; -pub const PF_LAT: ::c_int = AF_LAT; -pub const PF_HYLINK: ::c_int = AF_HYLINK; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_LINK: ::c_int = AF_LINK; -pub const PF_XTP: ::c_int = pseudo_AF_XTP; -pub const PF_COIP: ::c_int = AF_COIP; -pub const PF_CNT: ::c_int = AF_CNT; -pub const PF_SIP: ::c_int = AF_SIP; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; -pub const PF_PIP: ::c_int = pseudo_AF_PIP; -pub const PF_NDRV: ::c_int = AF_NDRV; -pub const PF_ISDN: ::c_int = AF_ISDN; -pub const PF_KEY: ::c_int = pseudo_AF_KEY; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_NATM: ::c_int = AF_NATM; -pub const PF_SYSTEM: ::c_int = AF_SYSTEM; -pub const PF_NETBIOS: ::c_int = AF_NETBIOS; -pub const PF_PPP: ::c_int = AF_PPP; -pub const PF_VSOCK: ::c_int = AF_VSOCK; - -pub const NET_RT_DUMP: ::c_int = 1; -pub const NET_RT_FLAGS: ::c_int = 2; -pub const NET_RT_IFLIST: ::c_int = 3; - -pub const SOMAXCONN: ::c_int = 128; - -pub const SOCK_MAXADDRLEN: ::c_int = 255; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const IP_TTL: ::c_int = 4; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_ADD_MEMBERSHIP: ::c_int = 12; -pub const IP_DROP_MEMBERSHIP: ::c_int = 13; -pub const IP_RECVIF: ::c_int = 20; -pub const IP_BOUND_IF: ::c_int = 25; -pub const IP_PKTINFO: ::c_int = 26; -pub const IP_RECVTOS: ::c_int = 27; -pub const IP_DONTFRAG: ::c_int = 28; -pub const IPV6_JOIN_GROUP: ::c_int = 12; -pub const IPV6_LEAVE_GROUP: ::c_int = 13; -pub const IPV6_CHECKSUM: ::c_int = 26; -pub const IPV6_RECVTCLASS: ::c_int = 35; -pub const IPV6_TCLASS: ::c_int = 36; -pub const IPV6_PKTINFO: ::c_int = 46; -pub const IPV6_HOPLIMIT: ::c_int = 47; -pub const IPV6_RECVPKTINFO: ::c_int = 61; -pub const IPV6_DONTFRAG: ::c_int = 62; -pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 70; -pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71; -pub const IP_BLOCK_SOURCE: ::c_int = 72; -pub const IP_UNBLOCK_SOURCE: ::c_int = 73; -pub const IPV6_BOUND_IF: ::c_int = 125; - -pub const TCP_NOPUSH: ::c_int = 4; -pub const TCP_NOOPT: ::c_int = 8; -pub const TCP_KEEPALIVE: ::c_int = 0x10; -pub const TCP_KEEPINTVL: ::c_int = 0x101; -pub const TCP_KEEPCNT: ::c_int = 0x102; -/// Enable/Disable TCP Fastopen on this socket -pub const TCP_FASTOPEN: ::c_int = 0x105; - -pub const SOL_LOCAL: ::c_int = 0; - -pub const LOCAL_PEERCRED: ::c_int = 0x001; -pub const LOCAL_PEERPID: ::c_int = 0x002; -pub const LOCAL_PEEREPID: ::c_int = 0x003; -pub const LOCAL_PEERUUID: ::c_int = 0x004; -pub const LOCAL_PEEREUUID: ::c_int = 0x005; - -pub const SOL_SOCKET: ::c_int = 0xffff; - -pub const SO_DEBUG: ::c_int = 0x01; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_TIMESTAMP: ::c_int = 0x0400; -pub const SO_TIMESTAMP_MONOTONIC: ::c_int = 0x0800; -pub const SO_DONTTRUNC: ::c_int = 0x2000; -pub const SO_WANTMORE: ::c_int = 0x4000; -pub const SO_WANTOOBFLAG: ::c_int = 0x8000; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SO_LABEL: ::c_int = 0x1010; -pub const SO_PEERLABEL: ::c_int = 0x1011; -pub const SO_NREAD: ::c_int = 0x1020; -pub const SO_NKE: ::c_int = 0x1021; -pub const SO_NOSIGPIPE: ::c_int = 0x1022; -pub const SO_NOADDRERR: ::c_int = 0x1023; -pub const SO_NWRITE: ::c_int = 0x1024; -pub const SO_REUSESHAREUID: ::c_int = 0x1025; -pub const SO_NOTIFYCONFLICT: ::c_int = 0x1026; -pub const SO_LINGER_SEC: ::c_int = 0x1080; -pub const SO_RANDOMPORT: ::c_int = 0x1082; -pub const SO_NP_EXTENSIONS: ::c_int = 0x1083; - -pub const MSG_OOB: ::c_int = 0x1; -pub const MSG_PEEK: ::c_int = 0x2; -pub const MSG_DONTROUTE: ::c_int = 0x4; -pub const MSG_EOR: ::c_int = 0x8; -pub const MSG_TRUNC: ::c_int = 0x10; -pub const MSG_CTRUNC: ::c_int = 0x20; -pub const MSG_WAITALL: ::c_int = 0x40; -pub const MSG_DONTWAIT: ::c_int = 0x80; -pub const MSG_EOF: ::c_int = 0x100; -pub const MSG_FLUSH: ::c_int = 0x400; -pub const MSG_HOLD: ::c_int = 0x800; -pub const MSG_SEND: ::c_int = 0x1000; -pub const MSG_HAVEMORE: ::c_int = 0x2000; -pub const MSG_RCVMORE: ::c_int = 0x4000; -pub const MSG_NEEDSA: ::c_int = 0x10000; -pub const MSG_NOSIGNAL: ::c_int = 0x80000; - -pub const SCM_TIMESTAMP: ::c_int = 0x02; -pub const SCM_CREDS: ::c_int = 0x03; - -// https://github.com/aosm/xnu/blob/HEAD/bsd/net/if.h#L140-L156 -pub const IFF_UP: ::c_int = 0x1; // interface is up -pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid -pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging -pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net -pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link -pub const IFF_NOTRAILERS: ::c_int = 0x20; // obsolete: avoid use of trailers -pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated -pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol -pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets -pub const IFF_OACTIVE: ::c_int = 0x400; // transmission in progress -pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions -pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit -pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit -pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit -pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection -pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const SAE_ASSOCID_ANY: ::sae_associd_t = 0; -/// ((sae_associd_t)(-1ULL)) -pub const SAE_ASSOCID_ALL: ::sae_associd_t = 0xffffffff; - -pub const SAE_CONNID_ANY: ::sae_connid_t = 0; -/// ((sae_connid_t)(-1ULL)) -pub const SAE_CONNID_ALL: ::sae_connid_t = 0xffffffff; - -// connectx() flag parameters - -/// resume connect() on read/write -pub const CONNECT_RESUME_ON_READ_WRITE: ::c_uint = 0x1; -/// data is idempotent -pub const CONNECT_DATA_IDEMPOTENT: ::c_uint = 0x2; -/// data includes security that replaces the TFO-cookie -pub const CONNECT_DATA_AUTHENTICATED: ::c_uint = 0x4; - -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; - -pub const MAP_COPY: ::c_int = 0x0002; -pub const MAP_RENAME: ::c_int = 0x0020; -pub const MAP_NORESERVE: ::c_int = 0x0040; -pub const MAP_NOEXTEND: ::c_int = 0x0100; -pub const MAP_HASSEMAPHORE: ::c_int = 0x0200; -pub const MAP_NOCACHE: ::c_int = 0x0400; -pub const MAP_JIT: ::c_int = 0x0800; - -pub const _SC_ARG_MAX: ::c_int = 1; -pub const _SC_CHILD_MAX: ::c_int = 2; -pub const _SC_CLK_TCK: ::c_int = 3; -pub const _SC_NGROUPS_MAX: ::c_int = 4; -pub const _SC_OPEN_MAX: ::c_int = 5; -pub const _SC_JOB_CONTROL: ::c_int = 6; -pub const _SC_SAVED_IDS: ::c_int = 7; -pub const _SC_VERSION: ::c_int = 8; -pub const _SC_BC_BASE_MAX: ::c_int = 9; -pub const _SC_BC_DIM_MAX: ::c_int = 10; -pub const _SC_BC_SCALE_MAX: ::c_int = 11; -pub const _SC_BC_STRING_MAX: ::c_int = 12; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 13; -pub const _SC_EXPR_NEST_MAX: ::c_int = 14; -pub const _SC_LINE_MAX: ::c_int = 15; -pub const _SC_RE_DUP_MAX: ::c_int = 16; -pub const _SC_2_VERSION: ::c_int = 17; -pub const _SC_2_C_BIND: ::c_int = 18; -pub const _SC_2_C_DEV: ::c_int = 19; -pub const _SC_2_CHAR_TERM: ::c_int = 20; -pub const _SC_2_FORT_DEV: ::c_int = 21; -pub const _SC_2_FORT_RUN: ::c_int = 22; -pub const _SC_2_LOCALEDEF: ::c_int = 23; -pub const _SC_2_SW_DEV: ::c_int = 24; -pub const _SC_2_UPE: ::c_int = 25; -pub const _SC_STREAM_MAX: ::c_int = 26; -pub const _SC_TZNAME_MAX: ::c_int = 27; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 28; -pub const _SC_PAGESIZE: ::c_int = 29; -pub const _SC_MEMLOCK: ::c_int = 30; -pub const _SC_MEMLOCK_RANGE: ::c_int = 31; -pub const _SC_MEMORY_PROTECTION: ::c_int = 32; -pub const _SC_MESSAGE_PASSING: ::c_int = 33; -pub const _SC_PRIORITIZED_IO: ::c_int = 34; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 35; -pub const _SC_REALTIME_SIGNALS: ::c_int = 36; -pub const _SC_SEMAPHORES: ::c_int = 37; -pub const _SC_FSYNC: ::c_int = 38; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 39; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 40; -pub const _SC_TIMERS: ::c_int = 41; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 42; -pub const _SC_AIO_MAX: ::c_int = 43; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 44; -pub const _SC_DELAYTIMER_MAX: ::c_int = 45; -pub const _SC_MQ_OPEN_MAX: ::c_int = 46; -pub const _SC_MAPPED_FILES: ::c_int = 47; -pub const _SC_RTSIG_MAX: ::c_int = 48; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 49; -pub const _SC_SEM_VALUE_MAX: ::c_int = 50; -pub const _SC_SIGQUEUE_MAX: ::c_int = 51; -pub const _SC_TIMER_MAX: ::c_int = 52; -pub const _SC_NPROCESSORS_CONF: ::c_int = 57; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 58; -pub const _SC_2_PBS: ::c_int = 59; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 60; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 61; -pub const _SC_2_PBS_LOCATE: ::c_int = 62; -pub const _SC_2_PBS_MESSAGE: ::c_int = 63; -pub const _SC_2_PBS_TRACK: ::c_int = 64; -pub const _SC_ADVISORY_INFO: ::c_int = 65; -pub const _SC_BARRIERS: ::c_int = 66; -pub const _SC_CLOCK_SELECTION: ::c_int = 67; -pub const _SC_CPUTIME: ::c_int = 68; -pub const _SC_FILE_LOCKING: ::c_int = 69; -pub const _SC_HOST_NAME_MAX: ::c_int = 72; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 74; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 76; -pub const _SC_REGEXP: ::c_int = 77; -pub const _SC_SHELL: ::c_int = 78; -pub const _SC_SPAWN: ::c_int = 79; -pub const _SC_SPIN_LOCKS: ::c_int = 80; -pub const _SC_SPORADIC_SERVER: ::c_int = 81; -pub const _SC_THREAD_CPUTIME: ::c_int = 84; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 92; -pub const _SC_TIMEOUTS: ::c_int = 95; -pub const _SC_TRACE: ::c_int = 97; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 98; -pub const _SC_TRACE_INHERIT: ::c_int = 99; -pub const _SC_TRACE_LOG: ::c_int = 100; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 102; -pub const _SC_V6_ILP32_OFF32: ::c_int = 103; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 104; -pub const _SC_V6_LP64_OFF64: ::c_int = 105; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 106; -pub const _SC_IPV6: ::c_int = 118; -pub const _SC_RAW_SOCKETS: ::c_int = 119; -pub const _SC_SYMLOOP_MAX: ::c_int = 120; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_XOPEN_STREAMS: ::c_int = 114; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 122; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 123; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 124; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 125; -pub const _SC_SS_REPL_MAX: ::c_int = 126; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 127; -pub const _SC_TRACE_NAME_MAX: ::c_int = 128; -pub const _SC_TRACE_SYS_MAX: ::c_int = 129; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 130; -pub const _SC_PASS_MAX: ::c_int = 131; -// `confstr` keys (only the values guaranteed by `man confstr`). -pub const _CS_PATH: ::c_int = 1; -pub const _CS_DARWIN_USER_DIR: ::c_int = 65536; -pub const _CS_DARWIN_USER_TEMP_DIR: ::c_int = 65537; -pub const _CS_DARWIN_USER_CACHE_DIR: ::c_int = 65538; - -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; -pub const _PTHREAD_MUTEX_SIG_init: ::c_long = 0x32AAABA7; -pub const _PTHREAD_COND_SIG_init: ::c_long = 0x3CB0B1BB; -pub const _PTHREAD_RWLOCK_SIG_init: ::c_long = 0x2DA8B3B4; -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - __sig: _PTHREAD_MUTEX_SIG_init, - __opaque: [0; __PTHREAD_MUTEX_SIZE__], -}; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - __sig: _PTHREAD_COND_SIG_init, - __opaque: [0; __PTHREAD_COND_SIZE__], -}; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - __sig: _PTHREAD_RWLOCK_SIG_init, - __opaque: [0; __PTHREAD_RWLOCK_SIZE__], -}; - -pub const OS_UNFAIR_LOCK_INIT: os_unfair_lock = os_unfair_lock { - _os_unfair_lock_opaque: 0, -}; - -pub const OS_LOG_TYPE_DEFAULT: ::os_log_type_t = 0x00; -pub const OS_LOG_TYPE_INFO: ::os_log_type_t = 0x01; -pub const OS_LOG_TYPE_DEBUG: ::os_log_type_t = 0x02; -pub const OS_LOG_TYPE_ERROR: ::os_log_type_t = 0x10; -pub const OS_LOG_TYPE_FAULT: ::os_log_type_t = 0x11; - -pub const OS_SIGNPOST_EVENT: ::os_signpost_type_t = 0x00; -pub const OS_SIGNPOST_INTERVAL_BEGIN: ::os_signpost_type_t = 0x01; -pub const OS_SIGNPOST_INTERVAL_END: ::os_signpost_type_t = 0x02; - -pub const MINSIGSTKSZ: ::size_t = 32768; -pub const SIGSTKSZ: ::size_t = 131072; - -pub const FD_SETSIZE: usize = 1024; - -pub const ST_NOSUID: ::c_ulong = 2; - -pub const SCHED_OTHER: ::c_int = 1; -pub const SCHED_FIFO: ::c_int = 4; -pub const SCHED_RR: ::c_int = 2; - -pub const EVFILT_READ: i16 = -1; -pub const EVFILT_WRITE: i16 = -2; -pub const EVFILT_AIO: i16 = -3; -pub const EVFILT_VNODE: i16 = -4; -pub const EVFILT_PROC: i16 = -5; -pub const EVFILT_SIGNAL: i16 = -6; -pub const EVFILT_TIMER: i16 = -7; -pub const EVFILT_MACHPORT: i16 = -8; -pub const EVFILT_FS: i16 = -9; -pub const EVFILT_USER: i16 = -10; -pub const EVFILT_VM: i16 = -12; - -pub const EV_ADD: u16 = 0x1; -pub const EV_DELETE: u16 = 0x2; -pub const EV_ENABLE: u16 = 0x4; -pub const EV_DISABLE: u16 = 0x8; -pub const EV_ONESHOT: u16 = 0x10; -pub const EV_CLEAR: u16 = 0x20; -pub const EV_RECEIPT: u16 = 0x40; -pub const EV_DISPATCH: u16 = 0x80; -pub const EV_FLAG0: u16 = 0x1000; -pub const EV_POLL: u16 = 0x1000; -pub const EV_FLAG1: u16 = 0x2000; -pub const EV_OOBAND: u16 = 0x2000; -pub const EV_ERROR: u16 = 0x4000; -pub const EV_EOF: u16 = 0x8000; -pub const EV_SYSFLAGS: u16 = 0xf000; - -pub const NOTE_TRIGGER: u32 = 0x01000000; -pub const NOTE_FFNOP: u32 = 0x00000000; -pub const NOTE_FFAND: u32 = 0x40000000; -pub const NOTE_FFOR: u32 = 0x80000000; -pub const NOTE_FFCOPY: u32 = 0xc0000000; -pub const NOTE_FFCTRLMASK: u32 = 0xc0000000; -pub const NOTE_FFLAGSMASK: u32 = 0x00ffffff; -pub const NOTE_LOWAT: u32 = 0x00000001; -pub const NOTE_DELETE: u32 = 0x00000001; -pub const NOTE_WRITE: u32 = 0x00000002; -pub const NOTE_EXTEND: u32 = 0x00000004; -pub const NOTE_ATTRIB: u32 = 0x00000008; -pub const NOTE_LINK: u32 = 0x00000010; -pub const NOTE_RENAME: u32 = 0x00000020; -pub const NOTE_REVOKE: u32 = 0x00000040; -pub const NOTE_NONE: u32 = 0x00000080; -pub const NOTE_EXIT: u32 = 0x80000000; -pub const NOTE_FORK: u32 = 0x40000000; -pub const NOTE_EXEC: u32 = 0x20000000; -#[doc(hidden)] -#[deprecated(since = "0.2.49", note = "Deprecated since MacOSX 10.9")] -pub const NOTE_REAP: u32 = 0x10000000; -pub const NOTE_SIGNAL: u32 = 0x08000000; -pub const NOTE_EXITSTATUS: u32 = 0x04000000; -pub const NOTE_EXIT_DETAIL: u32 = 0x02000000; -pub const NOTE_PDATAMASK: u32 = 0x000fffff; -pub const NOTE_PCTRLMASK: u32 = 0xfff00000; -#[doc(hidden)] -#[deprecated(since = "0.2.49", note = "Deprecated since MacOSX 10.9")] -pub const NOTE_EXIT_REPARENTED: u32 = 0x00080000; -pub const NOTE_EXIT_DETAIL_MASK: u32 = 0x00070000; -pub const NOTE_EXIT_DECRYPTFAIL: u32 = 0x00010000; -pub const NOTE_EXIT_MEMORY: u32 = 0x00020000; -pub const NOTE_EXIT_CSERROR: u32 = 0x00040000; -pub const NOTE_VM_PRESSURE: u32 = 0x80000000; -pub const NOTE_VM_PRESSURE_TERMINATE: u32 = 0x40000000; -pub const NOTE_VM_PRESSURE_SUDDEN_TERMINATE: u32 = 0x20000000; -pub const NOTE_VM_ERROR: u32 = 0x10000000; -pub const NOTE_SECONDS: u32 = 0x00000001; -pub const NOTE_USECONDS: u32 = 0x00000002; -pub const NOTE_NSECONDS: u32 = 0x00000004; -pub const NOTE_ABSOLUTE: u32 = 0x00000008; -pub const NOTE_LEEWAY: u32 = 0x00000010; -pub const NOTE_CRITICAL: u32 = 0x00000020; -pub const NOTE_BACKGROUND: u32 = 0x00000040; -pub const NOTE_TRACK: u32 = 0x00000001; -pub const NOTE_TRACKERR: u32 = 0x00000002; -pub const NOTE_CHILD: u32 = 0x00000004; - -pub const OCRNL: ::tcflag_t = 0x00000010; -pub const ONOCR: ::tcflag_t = 0x00000020; -pub const ONLRET: ::tcflag_t = 0x00000040; -pub const OFILL: ::tcflag_t = 0x00000080; -pub const NLDLY: ::tcflag_t = 0x00000300; -pub const TABDLY: ::tcflag_t = 0x00000c04; -pub const CRDLY: ::tcflag_t = 0x00003000; -pub const FFDLY: ::tcflag_t = 0x00004000; -pub const BSDLY: ::tcflag_t = 0x00008000; -pub const VTDLY: ::tcflag_t = 0x00010000; -pub const OFDEL: ::tcflag_t = 0x00020000; - -pub const NL0: ::tcflag_t = 0x00000000; -pub const NL1: ::tcflag_t = 0x00000100; -pub const TAB0: ::tcflag_t = 0x00000000; -pub const TAB1: ::tcflag_t = 0x00000400; -pub const TAB2: ::tcflag_t = 0x00000800; -pub const CR0: ::tcflag_t = 0x00000000; -pub const CR1: ::tcflag_t = 0x00001000; -pub const CR2: ::tcflag_t = 0x00002000; -pub const CR3: ::tcflag_t = 0x00003000; -pub const FF0: ::tcflag_t = 0x00000000; -pub const FF1: ::tcflag_t = 0x00004000; -pub const BS0: ::tcflag_t = 0x00000000; -pub const BS1: ::tcflag_t = 0x00008000; -pub const TAB3: ::tcflag_t = 0x00000004; -pub const VT0: ::tcflag_t = 0x00000000; -pub const VT1: ::tcflag_t = 0x00010000; -pub const IUTF8: ::tcflag_t = 0x00004000; -pub const CRTSCTS: ::tcflag_t = 0x00030000; - -pub const NI_MAXHOST: ::socklen_t = 1025; -pub const NI_MAXSERV: ::socklen_t = 32; -pub const NI_NOFQDN: ::c_int = 0x00000001; -pub const NI_NUMERICHOST: ::c_int = 0x00000002; -pub const NI_NAMEREQD: ::c_int = 0x00000004; -pub const NI_NUMERICSERV: ::c_int = 0x00000008; -pub const NI_NUMERICSCOPE: ::c_int = 0x00000100; -pub const NI_DGRAM: ::c_int = 0x00000010; - -pub const Q_GETQUOTA: ::c_int = 0x300; -pub const Q_SETQUOTA: ::c_int = 0x400; - -pub const RENAME_SWAP: ::c_uint = 0x00000002; -pub const RENAME_EXCL: ::c_uint = 0x00000004; - -pub const RTLD_LOCAL: ::c_int = 0x4; -pub const RTLD_FIRST: ::c_int = 0x100; -pub const RTLD_NODELETE: ::c_int = 0x80; -pub const RTLD_NOLOAD: ::c_int = 0x10; -pub const RTLD_GLOBAL: ::c_int = 0x8; - -pub const _WSTOPPED: ::c_int = 0o177; - -pub const LOG_NETINFO: ::c_int = 12 << 3; -pub const LOG_REMOTEAUTH: ::c_int = 13 << 3; -pub const LOG_INSTALL: ::c_int = 14 << 3; -pub const LOG_RAS: ::c_int = 15 << 3; -pub const LOG_LAUNCHD: ::c_int = 24 << 3; -pub const LOG_NFACILITIES: ::c_int = 25; - -pub const CTLTYPE: ::c_int = 0xf; -pub const CTLTYPE_NODE: ::c_int = 1; -pub const CTLTYPE_INT: ::c_int = 2; -pub const CTLTYPE_STRING: ::c_int = 3; -pub const CTLTYPE_QUAD: ::c_int = 4; -pub const CTLTYPE_OPAQUE: ::c_int = 5; -pub const CTLTYPE_STRUCT: ::c_int = CTLTYPE_OPAQUE; -pub const CTLFLAG_RD: ::c_int = 0x80000000; -pub const CTLFLAG_WR: ::c_int = 0x40000000; -pub const CTLFLAG_RW: ::c_int = CTLFLAG_RD | CTLFLAG_WR; -pub const CTLFLAG_NOLOCK: ::c_int = 0x20000000; -pub const CTLFLAG_ANYBODY: ::c_int = 0x10000000; -pub const CTLFLAG_SECURE: ::c_int = 0x08000000; -pub const CTLFLAG_MASKED: ::c_int = 0x04000000; -pub const CTLFLAG_NOAUTO: ::c_int = 0x02000000; -pub const CTLFLAG_KERN: ::c_int = 0x01000000; -pub const CTLFLAG_LOCKED: ::c_int = 0x00800000; -pub const CTLFLAG_OID2: ::c_int = 0x00400000; -pub const CTL_UNSPEC: ::c_int = 0; -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_VFS: ::c_int = 3; -pub const CTL_NET: ::c_int = 4; -pub const CTL_DEBUG: ::c_int = 5; -pub const CTL_HW: ::c_int = 6; -pub const CTL_MACHDEP: ::c_int = 7; -pub const CTL_USER: ::c_int = 8; -pub const CTL_MAXID: ::c_int = 9; -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_MAXVNODES: ::c_int = 5; -pub const KERN_MAXPROC: ::c_int = 6; -pub const KERN_MAXFILES: ::c_int = 7; -pub const KERN_ARGMAX: ::c_int = 8; -pub const KERN_SECURELVL: ::c_int = 9; -pub const KERN_HOSTNAME: ::c_int = 10; -pub const KERN_HOSTID: ::c_int = 11; -pub const KERN_CLOCKRATE: ::c_int = 12; -pub const KERN_VNODE: ::c_int = 13; -pub const KERN_PROC: ::c_int = 14; -pub const KERN_FILE: ::c_int = 15; -pub const KERN_PROF: ::c_int = 16; -pub const KERN_POSIX1: ::c_int = 17; -pub const KERN_NGROUPS: ::c_int = 18; -pub const KERN_JOB_CONTROL: ::c_int = 19; -pub const KERN_SAVED_IDS: ::c_int = 20; -pub const KERN_BOOTTIME: ::c_int = 21; -pub const KERN_NISDOMAINNAME: ::c_int = 22; -pub const KERN_DOMAINNAME: ::c_int = KERN_NISDOMAINNAME; -pub const KERN_MAXPARTITIONS: ::c_int = 23; -pub const KERN_KDEBUG: ::c_int = 24; -pub const KERN_UPDATEINTERVAL: ::c_int = 25; -pub const KERN_OSRELDATE: ::c_int = 26; -pub const KERN_NTP_PLL: ::c_int = 27; -pub const KERN_BOOTFILE: ::c_int = 28; -pub const KERN_MAXFILESPERPROC: ::c_int = 29; -pub const KERN_MAXPROCPERUID: ::c_int = 30; -pub const KERN_DUMPDEV: ::c_int = 31; -pub const KERN_IPC: ::c_int = 32; -pub const KERN_DUMMY: ::c_int = 33; -pub const KERN_PS_STRINGS: ::c_int = 34; -pub const KERN_USRSTACK32: ::c_int = 35; -pub const KERN_LOGSIGEXIT: ::c_int = 36; -pub const KERN_SYMFILE: ::c_int = 37; -pub const KERN_PROCARGS: ::c_int = 38; -pub const KERN_NETBOOT: ::c_int = 40; -pub const KERN_SYSV: ::c_int = 42; -pub const KERN_AFFINITY: ::c_int = 43; -pub const KERN_TRANSLATE: ::c_int = 44; -pub const KERN_CLASSIC: ::c_int = KERN_TRANSLATE; -pub const KERN_EXEC: ::c_int = 45; -pub const KERN_CLASSICHANDLER: ::c_int = KERN_EXEC; -pub const KERN_AIOMAX: ::c_int = 46; -pub const KERN_AIOPROCMAX: ::c_int = 47; -pub const KERN_AIOTHREADS: ::c_int = 48; -pub const KERN_COREFILE: ::c_int = 50; -pub const KERN_COREDUMP: ::c_int = 51; -pub const KERN_SUGID_COREDUMP: ::c_int = 52; -pub const KERN_PROCDELAYTERM: ::c_int = 53; -pub const KERN_SHREG_PRIVATIZABLE: ::c_int = 54; -pub const KERN_LOW_PRI_WINDOW: ::c_int = 56; -pub const KERN_LOW_PRI_DELAY: ::c_int = 57; -pub const KERN_POSIX: ::c_int = 58; -pub const KERN_USRSTACK64: ::c_int = 59; -pub const KERN_NX_PROTECTION: ::c_int = 60; -pub const KERN_TFP: ::c_int = 61; -pub const KERN_PROCNAME: ::c_int = 62; -pub const KERN_THALTSTACK: ::c_int = 63; -pub const KERN_SPECULATIVE_READS: ::c_int = 64; -pub const KERN_OSVERSION: ::c_int = 65; -pub const KERN_SAFEBOOT: ::c_int = 66; -pub const KERN_RAGEVNODE: ::c_int = 68; -pub const KERN_TTY: ::c_int = 69; -pub const KERN_CHECKOPENEVT: ::c_int = 70; -pub const KERN_THREADNAME: ::c_int = 71; -pub const KERN_MAXID: ::c_int = 72; -pub const KERN_RAGE_PROC: ::c_int = 1; -pub const KERN_RAGE_THREAD: ::c_int = 2; -pub const KERN_UNRAGE_PROC: ::c_int = 3; -pub const KERN_UNRAGE_THREAD: ::c_int = 4; -pub const KERN_OPENEVT_PROC: ::c_int = 1; -pub const KERN_UNOPENEVT_PROC: ::c_int = 2; -pub const KERN_TFP_POLICY: ::c_int = 1; -pub const KERN_TFP_POLICY_DENY: ::c_int = 0; -pub const KERN_TFP_POLICY_DEFAULT: ::c_int = 2; -pub const KERN_KDEFLAGS: ::c_int = 1; -pub const KERN_KDDFLAGS: ::c_int = 2; -pub const KERN_KDENABLE: ::c_int = 3; -pub const KERN_KDSETBUF: ::c_int = 4; -pub const KERN_KDGETBUF: ::c_int = 5; -pub const KERN_KDSETUP: ::c_int = 6; -pub const KERN_KDREMOVE: ::c_int = 7; -pub const KERN_KDSETREG: ::c_int = 8; -pub const KERN_KDGETREG: ::c_int = 9; -pub const KERN_KDREADTR: ::c_int = 10; -pub const KERN_KDPIDTR: ::c_int = 11; -pub const KERN_KDTHRMAP: ::c_int = 12; -pub const KERN_KDPIDEX: ::c_int = 14; -pub const KERN_KDSETRTCDEC: ::c_int = 15; -pub const KERN_KDGETENTROPY: ::c_int = 16; -pub const KERN_KDWRITETR: ::c_int = 17; -pub const KERN_KDWRITEMAP: ::c_int = 18; -#[doc(hidden)] -#[deprecated(since = "0.2.49", note = "Removed in MacOSX 10.12")] -pub const KERN_KDENABLE_BG_TRACE: ::c_int = 19; -#[doc(hidden)] -#[deprecated(since = "0.2.49", note = "Removed in MacOSX 10.12")] -pub const KERN_KDDISABLE_BG_TRACE: ::c_int = 20; -pub const KERN_KDREADCURTHRMAP: ::c_int = 21; -pub const KERN_KDSET_TYPEFILTER: ::c_int = 22; -pub const KERN_KDBUFWAIT: ::c_int = 23; -pub const KERN_KDCPUMAP: ::c_int = 24; -pub const KERN_PROC_ALL: ::c_int = 0; -pub const KERN_PROC_PID: ::c_int = 1; -pub const KERN_PROC_PGRP: ::c_int = 2; -pub const KERN_PROC_SESSION: ::c_int = 3; -pub const KERN_PROC_TTY: ::c_int = 4; -pub const KERN_PROC_UID: ::c_int = 5; -pub const KERN_PROC_RUID: ::c_int = 6; -pub const KERN_PROC_LCID: ::c_int = 7; -pub const KERN_SUCCESS: ::c_int = 0; -pub const KERN_INVALID_ADDRESS: ::c_int = 1; -pub const KERN_PROTECTION_FAILURE: ::c_int = 2; -pub const KERN_NO_SPACE: ::c_int = 3; -pub const KERN_INVALID_ARGUMENT: ::c_int = 4; -pub const KERN_FAILURE: ::c_int = 5; -pub const KERN_RESOURCE_SHORTAGE: ::c_int = 6; -pub const KERN_NOT_RECEIVER: ::c_int = 7; -pub const KERN_NO_ACCESS: ::c_int = 8; -pub const KERN_MEMORY_FAILURE: ::c_int = 9; -pub const KERN_MEMORY_ERROR: ::c_int = 10; -pub const KERN_ALREADY_IN_SET: ::c_int = 11; -pub const KERN_NOT_IN_SET: ::c_int = 12; -pub const KERN_NAME_EXISTS: ::c_int = 13; -pub const KERN_ABORTED: ::c_int = 14; -pub const KERN_INVALID_NAME: ::c_int = 15; -pub const KERN_INVALID_TASK: ::c_int = 16; -pub const KERN_INVALID_RIGHT: ::c_int = 17; -pub const KERN_INVALID_VALUE: ::c_int = 18; -pub const KERN_UREFS_OVERFLOW: ::c_int = 19; -pub const KERN_INVALID_CAPABILITY: ::c_int = 20; -pub const KERN_RIGHT_EXISTS: ::c_int = 21; -pub const KERN_INVALID_HOST: ::c_int = 22; -pub const KERN_MEMORY_PRESENT: ::c_int = 23; -pub const KERN_MEMORY_DATA_MOVED: ::c_int = 24; -pub const KERN_MEMORY_RESTART_COPY: ::c_int = 25; -pub const KERN_INVALID_PROCESSOR_SET: ::c_int = 26; -pub const KERN_POLICY_LIMIT: ::c_int = 27; -pub const KERN_INVALID_POLICY: ::c_int = 28; -pub const KERN_INVALID_OBJECT: ::c_int = 29; -pub const KERN_ALREADY_WAITING: ::c_int = 30; -pub const KERN_DEFAULT_SET: ::c_int = 31; -pub const KERN_EXCEPTION_PROTECTED: ::c_int = 32; -pub const KERN_INVALID_LEDGER: ::c_int = 33; -pub const KERN_INVALID_MEMORY_CONTROL: ::c_int = 34; -pub const KERN_INVALID_SECURITY: ::c_int = 35; -pub const KERN_NOT_DEPRESSED: ::c_int = 36; -pub const KERN_TERMINATED: ::c_int = 37; -pub const KERN_LOCK_SET_DESTROYED: ::c_int = 38; -pub const KERN_LOCK_UNSTABLE: ::c_int = 39; -pub const KERN_LOCK_OWNED: ::c_int = 40; -pub const KERN_LOCK_OWNED_SELF: ::c_int = 41; -pub const KERN_SEMAPHORE_DESTROYED: ::c_int = 42; -pub const KERN_RPC_SERVER_TERMINATED: ::c_int = 43; -pub const KERN_RPC_TERMINATE_ORPHAN: ::c_int = 44; -pub const KERN_RPC_CONTINUE_ORPHAN: ::c_int = 45; -pub const KERN_NOT_SUPPORTED: ::c_int = 46; -pub const KERN_NODE_DOWN: ::c_int = 47; -pub const KERN_NOT_WAITING: ::c_int = 48; -pub const KERN_OPERATION_TIMED_OUT: ::c_int = 49; -pub const KERN_CODESIGN_ERROR: ::c_int = 50; -pub const KERN_POLICY_STATIC: ::c_int = 51; -pub const KERN_INSUFFICIENT_BUFFER_SIZE: ::c_int = 52; -pub const KIPC_MAXSOCKBUF: ::c_int = 1; -pub const KIPC_SOCKBUF_WASTE: ::c_int = 2; -pub const KIPC_SOMAXCONN: ::c_int = 3; -pub const KIPC_MAX_LINKHDR: ::c_int = 4; -pub const KIPC_MAX_PROTOHDR: ::c_int = 5; -pub const KIPC_MAX_HDR: ::c_int = 6; -pub const KIPC_MAX_DATALEN: ::c_int = 7; -pub const KIPC_MBSTAT: ::c_int = 8; -pub const KIPC_NMBCLUSTERS: ::c_int = 9; -pub const KIPC_SOQLIMITCOMPAT: ::c_int = 10; -pub const VM_METER: ::c_int = 1; -pub const VM_LOADAVG: ::c_int = 2; -pub const VM_MACHFACTOR: ::c_int = 4; -pub const VM_SWAPUSAGE: ::c_int = 5; -pub const VM_MAXID: ::c_int = 6; -pub const VM_PROT_NONE: ::vm_prot_t = 0x00; -pub const VM_PROT_READ: ::vm_prot_t = 0x01; -pub const VM_PROT_WRITE: ::vm_prot_t = 0x02; -pub const VM_PROT_EXECUTE: ::vm_prot_t = 0x04; -pub const MEMORY_OBJECT_NULL: ::memory_object_t = 0; -pub const HW_MACHINE: ::c_int = 1; -pub const HW_MODEL: ::c_int = 2; -pub const HW_NCPU: ::c_int = 3; -pub const HW_BYTEORDER: ::c_int = 4; -pub const HW_PHYSMEM: ::c_int = 5; -pub const HW_USERMEM: ::c_int = 6; -pub const HW_PAGESIZE: ::c_int = 7; -pub const HW_DISKNAMES: ::c_int = 8; -pub const HW_DISKSTATS: ::c_int = 9; -pub const HW_EPOCH: ::c_int = 10; -pub const HW_FLOATINGPT: ::c_int = 11; -pub const HW_MACHINE_ARCH: ::c_int = 12; -pub const HW_VECTORUNIT: ::c_int = 13; -pub const HW_BUS_FREQ: ::c_int = 14; -pub const HW_CPU_FREQ: ::c_int = 15; -pub const HW_CACHELINE: ::c_int = 16; -pub const HW_L1ICACHESIZE: ::c_int = 17; -pub const HW_L1DCACHESIZE: ::c_int = 18; -pub const HW_L2SETTINGS: ::c_int = 19; -pub const HW_L2CACHESIZE: ::c_int = 20; -pub const HW_L3SETTINGS: ::c_int = 21; -pub const HW_L3CACHESIZE: ::c_int = 22; -pub const HW_TB_FREQ: ::c_int = 23; -pub const HW_MEMSIZE: ::c_int = 24; -pub const HW_AVAILCPU: ::c_int = 25; -pub const HW_TARGET: ::c_int = 26; -pub const HW_PRODUCT: ::c_int = 27; -pub const HW_MAXID: ::c_int = 28; -pub const USER_CS_PATH: ::c_int = 1; -pub const USER_BC_BASE_MAX: ::c_int = 2; -pub const USER_BC_DIM_MAX: ::c_int = 3; -pub const USER_BC_SCALE_MAX: ::c_int = 4; -pub const USER_BC_STRING_MAX: ::c_int = 5; -pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6; -pub const USER_EXPR_NEST_MAX: ::c_int = 7; -pub const USER_LINE_MAX: ::c_int = 8; -pub const USER_RE_DUP_MAX: ::c_int = 9; -pub const USER_POSIX2_VERSION: ::c_int = 10; -pub const USER_POSIX2_C_BIND: ::c_int = 11; -pub const USER_POSIX2_C_DEV: ::c_int = 12; -pub const USER_POSIX2_CHAR_TERM: ::c_int = 13; -pub const USER_POSIX2_FORT_DEV: ::c_int = 14; -pub const USER_POSIX2_FORT_RUN: ::c_int = 15; -pub const USER_POSIX2_LOCALEDEF: ::c_int = 16; -pub const USER_POSIX2_SW_DEV: ::c_int = 17; -pub const USER_POSIX2_UPE: ::c_int = 18; -pub const USER_STREAM_MAX: ::c_int = 19; -pub const USER_TZNAME_MAX: ::c_int = 20; -pub const USER_MAXID: ::c_int = 21; -pub const CTL_DEBUG_NAME: ::c_int = 0; -pub const CTL_DEBUG_VALUE: ::c_int = 1; -pub const CTL_DEBUG_MAXID: ::c_int = 20; - -pub const PRIO_DARWIN_THREAD: ::c_int = 3; -pub const PRIO_DARWIN_PROCESS: ::c_int = 4; -pub const PRIO_DARWIN_BG: ::c_int = 0x1000; -pub const PRIO_DARWIN_NONUI: ::c_int = 0x1001; - -pub const SEM_FAILED: *mut sem_t = -1isize as *mut ::sem_t; - -pub const AI_PASSIVE: ::c_int = 0x00000001; -pub const AI_CANONNAME: ::c_int = 0x00000002; -pub const AI_NUMERICHOST: ::c_int = 0x00000004; -pub const AI_NUMERICSERV: ::c_int = 0x00001000; -pub const AI_MASK: ::c_int = - AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | AI_NUMERICSERV | AI_ADDRCONFIG; -pub const AI_ALL: ::c_int = 0x00000100; -pub const AI_V4MAPPED_CFG: ::c_int = 0x00000200; -pub const AI_ADDRCONFIG: ::c_int = 0x00000400; -pub const AI_V4MAPPED: ::c_int = 0x00000800; -pub const AI_DEFAULT: ::c_int = AI_V4MAPPED_CFG | AI_ADDRCONFIG; -pub const AI_UNUSABLE: ::c_int = 0x10000000; - -pub const SIGEV_NONE: ::c_int = 0; -pub const SIGEV_SIGNAL: ::c_int = 1; -pub const SIGEV_THREAD: ::c_int = 3; - -pub const AIO_CANCELED: ::c_int = 2; -pub const AIO_NOTCANCELED: ::c_int = 4; -pub const AIO_ALLDONE: ::c_int = 1; -#[deprecated( - since = "0.2.64", - note = "Can vary at runtime. Use sysconf(3) instead" -)] -pub const AIO_LISTIO_MAX: ::c_int = 16; -pub const LIO_NOP: ::c_int = 0; -pub const LIO_WRITE: ::c_int = 2; -pub const LIO_READ: ::c_int = 1; -pub const LIO_WAIT: ::c_int = 2; -pub const LIO_NOWAIT: ::c_int = 1; - -pub const WEXITED: ::c_int = 0x00000004; -pub const WSTOPPED: ::c_int = 0x00000008; -pub const WCONTINUED: ::c_int = 0x00000010; -pub const WNOWAIT: ::c_int = 0x00000020; - -pub const P_ALL: idtype_t = 0; -pub const P_PID: idtype_t = 1; -pub const P_PGID: idtype_t = 2; - -pub const UTIME_OMIT: c_long = -2; -pub const UTIME_NOW: c_long = -1; - -pub const XATTR_NOFOLLOW: ::c_int = 0x0001; -pub const XATTR_CREATE: ::c_int = 0x0002; -pub const XATTR_REPLACE: ::c_int = 0x0004; -pub const XATTR_NOSECURITY: ::c_int = 0x0008; -pub const XATTR_NODEFAULT: ::c_int = 0x0010; -pub const XATTR_SHOWCOMPRESSION: ::c_int = 0x0020; - -pub const NET_RT_IFLIST2: ::c_int = 0x0006; - -// net/route.h -pub const RTF_UP: ::c_int = 0x1; -pub const RTF_GATEWAY: ::c_int = 0x2; -pub const RTF_HOST: ::c_int = 0x4; -pub const RTF_REJECT: ::c_int = 0x8; -pub const RTF_DYNAMIC: ::c_int = 0x10; -pub const RTF_MODIFIED: ::c_int = 0x20; -pub const RTF_DONE: ::c_int = 0x40; -pub const RTF_DELCLONE: ::c_int = 0x80; -pub const RTF_CLONING: ::c_int = 0x100; -pub const RTF_XRESOLVE: ::c_int = 0x200; -pub const RTF_LLINFO: ::c_int = 0x400; -pub const RTF_STATIC: ::c_int = 0x800; -pub const RTF_BLACKHOLE: ::c_int = 0x1000; -pub const RTF_NOIFREF: ::c_int = 0x2000; -pub const RTF_PROTO2: ::c_int = 0x4000; -pub const RTF_PROTO1: ::c_int = 0x8000; -pub const RTF_PRCLONING: ::c_int = 0x10000; -pub const RTF_WASCLONED: ::c_int = 0x20000; -pub const RTF_PROTO3: ::c_int = 0x40000; -pub const RTF_PINNED: ::c_int = 0x100000; -pub const RTF_LOCAL: ::c_int = 0x200000; -pub const RTF_BROADCAST: ::c_int = 0x400000; -pub const RTF_MULTICAST: ::c_int = 0x800000; -pub const RTF_IFSCOPE: ::c_int = 0x1000000; -pub const RTF_CONDEMNED: ::c_int = 0x2000000; -pub const RTF_IFREF: ::c_int = 0x4000000; -pub const RTF_PROXY: ::c_int = 0x8000000; -pub const RTF_ROUTER: ::c_int = 0x10000000; -pub const RTF_DEAD: ::c_int = 0x20000000; -pub const RTF_GLOBAL: ::c_int = 0x40000000; - -pub const RTM_VERSION: ::c_int = 5; - -// Message types -pub const RTM_ADD: ::c_int = 0x1; -pub const RTM_DELETE: ::c_int = 0x2; -pub const RTM_CHANGE: ::c_int = 0x3; -pub const RTM_GET: ::c_int = 0x4; -pub const RTM_LOSING: ::c_int = 0x5; -pub const RTM_REDIRECT: ::c_int = 0x6; -pub const RTM_MISS: ::c_int = 0x7; -pub const RTM_LOCK: ::c_int = 0x8; -pub const RTM_OLDADD: ::c_int = 0x9; -pub const RTM_OLDDEL: ::c_int = 0xa; -pub const RTM_RESOLVE: ::c_int = 0xb; -pub const RTM_NEWADDR: ::c_int = 0xc; -pub const RTM_DELADDR: ::c_int = 0xd; -pub const RTM_IFINFO: ::c_int = 0xe; -pub const RTM_NEWMADDR: ::c_int = 0xf; -pub const RTM_DELMADDR: ::c_int = 0x10; -pub const RTM_IFINFO2: ::c_int = 0x12; -pub const RTM_NEWMADDR2: ::c_int = 0x13; -pub const RTM_GET2: ::c_int = 0x14; - -// Bitmask values for rtm_inits and rmx_locks. -pub const RTV_MTU: ::c_int = 0x1; -pub const RTV_HOPCOUNT: ::c_int = 0x2; -pub const RTV_EXPIRE: ::c_int = 0x4; -pub const RTV_RPIPE: ::c_int = 0x8; -pub const RTV_SPIPE: ::c_int = 0x10; -pub const RTV_SSTHRESH: ::c_int = 0x20; -pub const RTV_RTT: ::c_int = 0x40; -pub const RTV_RTTVAR: ::c_int = 0x80; - -// Bitmask values for rtm_addrs. -pub const RTA_DST: ::c_int = 0x1; -pub const RTA_GATEWAY: ::c_int = 0x2; -pub const RTA_NETMASK: ::c_int = 0x4; -pub const RTA_GENMASK: ::c_int = 0x8; -pub const RTA_IFP: ::c_int = 0x10; -pub const RTA_IFA: ::c_int = 0x20; -pub const RTA_AUTHOR: ::c_int = 0x40; -pub const RTA_BRD: ::c_int = 0x80; - -// Index offsets for sockaddr array for alternate internal encoding. -pub const RTAX_DST: ::c_int = 0; -pub const RTAX_GATEWAY: ::c_int = 1; -pub const RTAX_NETMASK: ::c_int = 2; -pub const RTAX_GENMASK: ::c_int = 3; -pub const RTAX_IFP: ::c_int = 4; -pub const RTAX_IFA: ::c_int = 5; -pub const RTAX_AUTHOR: ::c_int = 6; -pub const RTAX_BRD: ::c_int = 7; -pub const RTAX_MAX: ::c_int = 8; - -pub const KERN_PROCARGS2: ::c_int = 49; - -pub const PROC_PIDTASKALLINFO: ::c_int = 2; -pub const PROC_PIDTBSDINFO: ::c_int = 3; -pub const PROC_PIDTASKINFO: ::c_int = 4; -pub const PROC_PIDTHREADINFO: ::c_int = 5; -pub const PROC_PIDVNODEPATHINFO: ::c_int = 9; -pub const PROC_PIDPATHINFO_MAXSIZE: ::c_int = 4096; -pub const PROC_CSM_ALL: ::c_uint = 0x0001; -pub const PROC_CSM_NOSMT: ::c_uint = 0x0002; -pub const PROC_CSM_TECS: ::c_uint = 0x0004; -pub const MAXCOMLEN: usize = 16; -pub const MAXTHREADNAMESIZE: usize = 64; - -pub const XUCRED_VERSION: ::c_uint = 0; - -pub const LC_SEGMENT: u32 = 0x1; -pub const LC_SEGMENT_64: u32 = 0x19; - -pub const MH_MAGIC: u32 = 0xfeedface; -pub const MH_MAGIC_64: u32 = 0xfeedfacf; - -// net/if_utun.h -pub const UTUN_OPT_FLAGS: ::c_int = 1; -pub const UTUN_OPT_IFNAME: ::c_int = 2; - -// net/bpf.h -pub const DLT_NULL: ::c_uint = 0; // no link-layer encapsulation -pub const DLT_EN10MB: ::c_uint = 1; // Ethernet (10Mb) -pub const DLT_EN3MB: ::c_uint = 2; // Experimental Ethernet (3Mb) -pub const DLT_AX25: ::c_uint = 3; // Amateur Radio AX.25 -pub const DLT_PRONET: ::c_uint = 4; // Proteon ProNET Token Ring -pub const DLT_CHAOS: ::c_uint = 5; // Chaos -pub const DLT_IEEE802: ::c_uint = 6; // IEEE 802 Networks -pub const DLT_ARCNET: ::c_uint = 7; // ARCNET -pub const DLT_SLIP: ::c_uint = 8; // Serial Line IP -pub const DLT_PPP: ::c_uint = 9; // Point-to-point Protocol -pub const DLT_FDDI: ::c_uint = 10; // FDDI -pub const DLT_ATM_RFC1483: ::c_uint = 11; // LLC/SNAP encapsulated atm -pub const DLT_RAW: ::c_uint = 12; // raw IP -pub const DLT_LOOP: ::c_uint = 108; - -// https://github.com/apple/darwin-xnu/blob/HEAD/bsd/net/bpf.h#L100 -// sizeof(i32) -pub const BPF_ALIGNMENT: ::c_int = 4; - -// sys/mount.h -pub const MNT_NODEV: ::c_int = 0x00000010; -pub const MNT_UNION: ::c_int = 0x00000020; -pub const MNT_CPROTECT: ::c_int = 0x00000080; - -// MAC labeled / "quarantined" flag -pub const MNT_QUARANTINE: ::c_int = 0x00000400; - -// Flags set by internal operations. -pub const MNT_LOCAL: ::c_int = 0x00001000; -pub const MNT_QUOTA: ::c_int = 0x00002000; -pub const MNT_ROOTFS: ::c_int = 0x00004000; -pub const MNT_DOVOLFS: ::c_int = 0x00008000; - -pub const MNT_DONTBROWSE: ::c_int = 0x00100000; -pub const MNT_IGNORE_OWNERSHIP: ::c_int = 0x00200000; -pub const MNT_AUTOMOUNTED: ::c_int = 0x00400000; -pub const MNT_JOURNALED: ::c_int = 0x00800000; -pub const MNT_NOUSERXATTR: ::c_int = 0x01000000; -pub const MNT_DEFWRITE: ::c_int = 0x02000000; -pub const MNT_MULTILABEL: ::c_int = 0x04000000; -pub const MNT_NOATIME: ::c_int = 0x10000000; -pub const MNT_SNAPSHOT: ::c_int = 0x40000000; - -// External filesystem command modifier flags. -pub const MNT_NOBLOCK: ::c_int = 0x00020000; - -// sys/spawn.h: -pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; -pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; -pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x04; -pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x08; -pub const POSIX_SPAWN_SETEXEC: ::c_int = 0x40; -pub const POSIX_SPAWN_START_SUSPENDED: ::c_int = 0x80; -pub const POSIX_SPAWN_CLOEXEC_DEFAULT: ::c_int = 0x4000; - -// sys/ipc.h: -pub const IPC_CREAT: ::c_int = 0x200; -pub const IPC_EXCL: ::c_int = 0x400; -pub const IPC_NOWAIT: ::c_int = 0x800; -pub const IPC_PRIVATE: key_t = 0; - -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; - -pub const IPC_R: ::c_int = 0x100; -pub const IPC_W: ::c_int = 0x80; -pub const IPC_M: ::c_int = 0x1000; - -// sys/sem.h -pub const SEM_UNDO: ::c_int = 0o10000; - -pub const GETNCNT: ::c_int = 3; -pub const GETPID: ::c_int = 4; -pub const GETVAL: ::c_int = 5; -pub const GETALL: ::c_int = 6; -pub const GETZCNT: ::c_int = 7; -pub const SETVAL: ::c_int = 8; -pub const SETALL: ::c_int = 9; - -// sys/shm.h -pub const SHM_RDONLY: ::c_int = 0x1000; -pub const SHM_RND: ::c_int = 0x2000; -#[cfg(target_arch = "aarch64")] -pub const SHMLBA: ::c_int = 16 * 1024; -#[cfg(not(target_arch = "aarch64"))] -pub const SHMLBA: ::c_int = 4096; -pub const SHM_R: ::c_int = IPC_R; -pub const SHM_W: ::c_int = IPC_W; - -// Flags for chflags(2) -pub const UF_SETTABLE: ::c_uint = 0x0000ffff; -pub const UF_NODUMP: ::c_uint = 0x00000001; -pub const UF_IMMUTABLE: ::c_uint = 0x00000002; -pub const UF_APPEND: ::c_uint = 0x00000004; -pub const UF_OPAQUE: ::c_uint = 0x00000008; -pub const UF_COMPRESSED: ::c_uint = 0x00000020; -pub const UF_TRACKED: ::c_uint = 0x00000040; -pub const SF_SETTABLE: ::c_uint = 0xffff0000; -pub const SF_ARCHIVED: ::c_uint = 0x00010000; -pub const SF_IMMUTABLE: ::c_uint = 0x00020000; -pub const SF_APPEND: ::c_uint = 0x00040000; -pub const UF_HIDDEN: ::c_uint = 0x00008000; - -// -pub const NTP_API: ::c_int = 4; -pub const MAXPHASE: ::c_long = 500000000; -pub const MAXFREQ: ::c_long = 500000; -pub const MINSEC: ::c_int = 256; -pub const MAXSEC: ::c_int = 2048; -pub const NANOSECOND: ::c_long = 1000000000; -pub const SCALE_PPM: ::c_int = 65; -pub const MAXTC: ::c_int = 10; -pub const MOD_OFFSET: ::c_uint = 0x0001; -pub const MOD_FREQUENCY: ::c_uint = 0x0002; -pub const MOD_MAXERROR: ::c_uint = 0x0004; -pub const MOD_ESTERROR: ::c_uint = 0x0008; -pub const MOD_STATUS: ::c_uint = 0x0010; -pub const MOD_TIMECONST: ::c_uint = 0x0020; -pub const MOD_PPSMAX: ::c_uint = 0x0040; -pub const MOD_TAI: ::c_uint = 0x0080; -pub const MOD_MICRO: ::c_uint = 0x1000; -pub const MOD_NANO: ::c_uint = 0x2000; -pub const MOD_CLKB: ::c_uint = 0x4000; -pub const MOD_CLKA: ::c_uint = 0x8000; -pub const STA_PLL: ::c_int = 0x0001; -pub const STA_PPSFREQ: ::c_int = 0x0002; -pub const STA_PPSTIME: ::c_int = 0x0004; -pub const STA_FLL: ::c_int = 0x0008; -pub const STA_INS: ::c_int = 0x0010; -pub const STA_DEL: ::c_int = 0x0020; -pub const STA_UNSYNC: ::c_int = 0x0040; -pub const STA_FREQHOLD: ::c_int = 0x0080; -pub const STA_PPSSIGNAL: ::c_int = 0x0100; -pub const STA_PPSJITTER: ::c_int = 0x0200; -pub const STA_PPSWANDER: ::c_int = 0x0400; -pub const STA_PPSERROR: ::c_int = 0x0800; -pub const STA_CLOCKERR: ::c_int = 0x1000; -pub const STA_NANO: ::c_int = 0x2000; -pub const STA_MODE: ::c_int = 0x4000; -pub const STA_CLK: ::c_int = 0x8000; -pub const STA_RONLY: ::c_int = STA_PPSSIGNAL - | STA_PPSJITTER - | STA_PPSWANDER - | STA_PPSERROR - | STA_CLOCKERR - | STA_NANO - | STA_MODE - | STA_CLK; -pub const TIME_OK: ::c_int = 0; -pub const TIME_INS: ::c_int = 1; -pub const TIME_DEL: ::c_int = 2; -pub const TIME_OOP: ::c_int = 3; -pub const TIME_WAIT: ::c_int = 4; -pub const TIME_ERROR: ::c_int = 5; - -// -pub const MNT_WAIT: ::c_int = 1; -pub const MNT_NOWAIT: ::c_int = 2; - -// -pub const THREAD_STANDARD_POLICY: ::c_int = 1; -pub const THREAD_STANDARD_POLICY_COUNT: ::c_int = 0; -pub const THREAD_EXTENDED_POLICY: ::c_int = 1; -pub const THREAD_TIME_CONSTRAINT_POLICY: ::c_int = 2; -pub const THREAD_PRECEDENCE_POLICY: ::c_int = 3; -pub const THREAD_AFFINITY_POLICY: ::c_int = 4; -pub const THREAD_AFFINITY_TAG_NULL: ::c_int = 0; -pub const THREAD_BACKGROUND_POLICY: ::c_int = 5; -pub const THREAD_BACKGROUND_POLICY_DARWIN_BG: ::c_int = 0x1000; -pub const THREAD_LATENCY_QOS_POLICY: ::c_int = 7; -pub const THREAD_THROUGHPUT_QOS_POLICY: ::c_int = 8; - -// -pub const TH_STATE_RUNNING: ::c_int = 1; -pub const TH_STATE_STOPPED: ::c_int = 2; -pub const TH_STATE_WAITING: ::c_int = 3; -pub const TH_STATE_UNINTERRUPTIBLE: ::c_int = 4; -pub const TH_STATE_HALTED: ::c_int = 5; -pub const TH_FLAGS_SWAPPED: ::c_int = 0x1; -pub const TH_FLAGS_IDLE: ::c_int = 0x2; -pub const TH_FLAGS_GLOBAL_FORCED_IDLE: ::c_int = 0x4; -pub const THREAD_BASIC_INFO: ::c_int = 3; -pub const THREAD_IDENTIFIER_INFO: ::c_int = 4; -pub const THREAD_EXTENDED_INFO: ::c_int = 5; - -// CommonCrypto/CommonCryptoError.h -pub const kCCSuccess: i32 = 0; -pub const kCCParamError: i32 = -4300; -pub const kCCBufferTooSmall: i32 = -4301; -pub const kCCMemoryFailure: i32 = -4302; -pub const kCCAlignmentError: i32 = -4303; -pub const kCCDecodeError: i32 = -4304; -pub const kCCUnimplemented: i32 = -4305; -pub const kCCOverflow: i32 = -4306; -pub const kCCRNGFailure: i32 = -4307; -pub const kCCUnspecifiedError: i32 = -4308; -pub const kCCCallSequenceError: i32 = -4309; -pub const kCCKeySizeError: i32 = -4310; -pub const kCCInvalidKey: i32 = -4311; - -// mach/host_info.h -pub const HOST_LOAD_INFO: i32 = 1; -pub const HOST_VM_INFO: i32 = 2; -pub const HOST_CPU_LOAD_INFO: i32 = 3; -pub const HOST_VM_INFO64: i32 = 4; -pub const HOST_EXTMOD_INFO64: i32 = 5; -pub const HOST_EXPIRED_TASK_INFO: i32 = 6; - -// mach/vm_statistics.h -pub const VM_PAGE_QUERY_PAGE_PRESENT: i32 = 0x1; -pub const VM_PAGE_QUERY_PAGE_FICTITIOUS: i32 = 0x2; -pub const VM_PAGE_QUERY_PAGE_REF: i32 = 0x4; -pub const VM_PAGE_QUERY_PAGE_DIRTY: i32 = 0x8; -pub const VM_PAGE_QUERY_PAGE_PAGED_OUT: i32 = 0x10; -pub const VM_PAGE_QUERY_PAGE_COPIED: i32 = 0x20; -pub const VM_PAGE_QUERY_PAGE_SPECULATIVE: i32 = 0x40; -pub const VM_PAGE_QUERY_PAGE_EXTERNAL: i32 = 0x80; -pub const VM_PAGE_QUERY_PAGE_CS_VALIDATED: i32 = 0x100; -pub const VM_PAGE_QUERY_PAGE_CS_TAINTED: i32 = 0x200; -pub const VM_PAGE_QUERY_PAGE_CS_NX: i32 = 0x400; - -// mach/task_info.h -pub const TASK_THREAD_TIMES_INFO: u32 = 3; -pub const HOST_CPU_LOAD_INFO_COUNT: u32 = 4; -pub const MACH_TASK_BASIC_INFO: u32 = 20; - -pub const MACH_PORT_NULL: i32 = 0; - -pub const RUSAGE_INFO_V0: ::c_int = 0; -pub const RUSAGE_INFO_V1: ::c_int = 1; -pub const RUSAGE_INFO_V2: ::c_int = 2; -pub const RUSAGE_INFO_V3: ::c_int = 3; -pub const RUSAGE_INFO_V4: ::c_int = 4; - -// copyfile.h -pub const COPYFILE_ACL: ::copyfile_flags_t = 1 << 0; -pub const COPYFILE_STAT: ::copyfile_flags_t = 1 << 1; -pub const COPYFILE_XATTR: ::copyfile_flags_t = 1 << 2; -pub const COPYFILE_DATA: ::copyfile_flags_t = 1 << 3; -pub const COPYFILE_SECURITY: ::copyfile_flags_t = COPYFILE_STAT | COPYFILE_ACL; -pub const COPYFILE_METADATA: ::copyfile_flags_t = COPYFILE_SECURITY | COPYFILE_XATTR; -pub const COPYFILE_RECURSIVE: ::copyfile_flags_t = 1 << 15; -pub const COPYFILE_CHECK: ::copyfile_flags_t = 1 << 16; -pub const COPYFILE_EXCL: ::copyfile_flags_t = 1 << 17; -pub const COPYFILE_NOFOLLOW_SRC: ::copyfile_flags_t = 1 << 18; -pub const COPYFILE_NOFOLLOW_DST: ::copyfile_flags_t = 1 << 19; -pub const COPYFILE_MOVE: ::copyfile_flags_t = 1 << 20; -pub const COPYFILE_UNLINK: ::copyfile_flags_t = 1 << 21; -pub const COPYFILE_NOFOLLOW: ::copyfile_flags_t = COPYFILE_NOFOLLOW_SRC | COPYFILE_NOFOLLOW_DST; -pub const COPYFILE_PACK: ::copyfile_flags_t = 1 << 22; -pub const COPYFILE_UNPACK: ::copyfile_flags_t = 1 << 23; -pub const COPYFILE_CLONE: ::copyfile_flags_t = 1 << 24; -pub const COPYFILE_CLONE_FORCE: ::copyfile_flags_t = 1 << 25; -pub const COPYFILE_RUN_IN_PLACE: ::copyfile_flags_t = 1 << 26; -pub const COPYFILE_DATA_SPARSE: ::copyfile_flags_t = 1 << 27; -pub const COPYFILE_PRESERVE_DST_TRACKED: ::copyfile_flags_t = 1 << 28; -pub const COPYFILE_VERBOSE: ::copyfile_flags_t = 1 << 30; -pub const COPYFILE_RECURSE_ERROR: ::c_int = 0; -pub const COPYFILE_RECURSE_FILE: ::c_int = 1; -pub const COPYFILE_RECURSE_DIR: ::c_int = 2; -pub const COPYFILE_RECURSE_DIR_CLEANUP: ::c_int = 3; -pub const COPYFILE_COPY_DATA: ::c_int = 4; -pub const COPYFILE_COPY_XATTR: ::c_int = 5; -pub const COPYFILE_START: ::c_int = 1; -pub const COPYFILE_FINISH: ::c_int = 2; -pub const COPYFILE_ERR: ::c_int = 3; -pub const COPYFILE_PROGRESS: ::c_int = 4; -pub const COPYFILE_CONTINUE: ::c_int = 0; -pub const COPYFILE_SKIP: ::c_int = 1; -pub const COPYFILE_QUIT: ::c_int = 2; - -// -pub const ATTR_BIT_MAP_COUNT: ::c_ushort = 5; -pub const FSOPT_NOFOLLOW: u32 = 0x1; -pub const FSOPT_NOFOLLOW_ANY: u32 = 0x800; -pub const FSOPT_REPORT_FULLSIZE: u32 = 0x4; -pub const FSOPT_PACK_INVAL_ATTRS: u32 = 0x8; -pub const FSOPT_ATTR_CMN_EXTENDED: u32 = 0x20; -pub const FSOPT_RETURN_REALDEV: u32 = 0x200; -pub const ATTR_CMN_NAME: attrgroup_t = 0x00000001; -pub const ATTR_CMN_DEVID: attrgroup_t = 0x00000002; -pub const ATTR_CMN_FSID: attrgroup_t = 0x00000004; -pub const ATTR_CMN_OBJTYPE: attrgroup_t = 0x00000008; -pub const ATTR_CMN_OBJTAG: attrgroup_t = 0x00000010; -pub const ATTR_CMN_OBJID: attrgroup_t = 0x00000020; -pub const ATTR_CMN_OBJPERMANENTID: attrgroup_t = 0x00000040; -pub const ATTR_CMN_PAROBJID: attrgroup_t = 0x00000080; -pub const ATTR_CMN_SCRIPT: attrgroup_t = 0x00000100; -pub const ATTR_CMN_CRTIME: attrgroup_t = 0x00000200; -pub const ATTR_CMN_MODTIME: attrgroup_t = 0x00000400; -pub const ATTR_CMN_CHGTIME: attrgroup_t = 0x00000800; -pub const ATTR_CMN_ACCTIME: attrgroup_t = 0x00001000; -pub const ATTR_CMN_BKUPTIME: attrgroup_t = 0x00002000; -pub const ATTR_CMN_FNDRINFO: attrgroup_t = 0x00004000; -pub const ATTR_CMN_OWNERID: attrgroup_t = 0x00008000; -pub const ATTR_CMN_GRPID: attrgroup_t = 0x00010000; -pub const ATTR_CMN_ACCESSMASK: attrgroup_t = 0x00020000; -pub const ATTR_CMN_FLAGS: attrgroup_t = 0x00040000; -pub const ATTR_CMN_GEN_COUNT: attrgroup_t = 0x00080000; -pub const ATTR_CMN_DOCUMENT_ID: attrgroup_t = 0x00100000; -pub const ATTR_CMN_USERACCESS: attrgroup_t = 0x00200000; -pub const ATTR_CMN_EXTENDED_SECURITY: attrgroup_t = 0x00400000; -pub const ATTR_CMN_UUID: attrgroup_t = 0x00800000; -pub const ATTR_CMN_GRPUUID: attrgroup_t = 0x01000000; -pub const ATTR_CMN_FILEID: attrgroup_t = 0x02000000; -pub const ATTR_CMN_PARENTID: attrgroup_t = 0x04000000; -pub const ATTR_CMN_FULLPATH: attrgroup_t = 0x08000000; -pub const ATTR_CMN_ADDEDTIME: attrgroup_t = 0x10000000; -pub const ATTR_CMN_DATA_PROTECT_FLAGS: attrgroup_t = 0x40000000; -pub const ATTR_CMN_RETURNED_ATTRS: attrgroup_t = 0x80000000; -pub const ATTR_VOL_FSTYPE: attrgroup_t = 0x00000001; -pub const ATTR_VOL_SIGNATURE: attrgroup_t = 0x00000002; -pub const ATTR_VOL_SIZE: attrgroup_t = 0x00000004; -pub const ATTR_VOL_SPACEFREE: attrgroup_t = 0x00000008; -pub const ATTR_VOL_SPACEAVAIL: attrgroup_t = 0x00000010; -pub const ATTR_VOL_MINALLOCATION: attrgroup_t = 0x00000020; -pub const ATTR_VOL_ALLOCATIONCLUMP: attrgroup_t = 0x00000040; -pub const ATTR_VOL_IOBLOCKSIZE: attrgroup_t = 0x00000080; -pub const ATTR_VOL_OBJCOUNT: attrgroup_t = 0x00000100; -pub const ATTR_VOL_FILECOUNT: attrgroup_t = 0x00000200; -pub const ATTR_VOL_DIRCOUNT: attrgroup_t = 0x00000400; -pub const ATTR_VOL_MAXOBJCOUNT: attrgroup_t = 0x00000800; -pub const ATTR_VOL_MOUNTPOINT: attrgroup_t = 0x00001000; -pub const ATTR_VOL_NAME: attrgroup_t = 0x00002000; -pub const ATTR_VOL_MOUNTFLAGS: attrgroup_t = 0x00004000; -pub const ATTR_VOL_MOUNTEDDEVICE: attrgroup_t = 0x00008000; -pub const ATTR_VOL_ENCODINGSUSED: attrgroup_t = 0x00010000; -pub const ATTR_VOL_CAPABILITIES: attrgroup_t = 0x00020000; -pub const ATTR_VOL_UUID: attrgroup_t = 0x00040000; -pub const ATTR_VOL_SPACEUSED: attrgroup_t = 0x00800000; -pub const ATTR_VOL_QUOTA_SIZE: attrgroup_t = 0x10000000; -pub const ATTR_VOL_RESERVED_SIZE: attrgroup_t = 0x20000000; -pub const ATTR_VOL_ATTRIBUTES: attrgroup_t = 0x40000000; -pub const ATTR_VOL_INFO: attrgroup_t = 0x80000000; -pub const ATTR_DIR_LINKCOUNT: attrgroup_t = 0x00000001; -pub const ATTR_DIR_ENTRYCOUNT: attrgroup_t = 0x00000002; -pub const ATTR_DIR_MOUNTSTATUS: attrgroup_t = 0x00000004; -pub const ATTR_DIR_ALLOCSIZE: attrgroup_t = 0x00000008; -pub const ATTR_DIR_IOBLOCKSIZE: attrgroup_t = 0x00000010; -pub const ATTR_DIR_DATALENGTH: attrgroup_t = 0x00000020; -pub const ATTR_FILE_LINKCOUNT: attrgroup_t = 0x00000001; -pub const ATTR_FILE_TOTALSIZE: attrgroup_t = 0x00000002; -pub const ATTR_FILE_ALLOCSIZE: attrgroup_t = 0x00000004; -pub const ATTR_FILE_IOBLOCKSIZE: attrgroup_t = 0x00000008; -pub const ATTR_FILE_DEVTYPE: attrgroup_t = 0x00000020; -pub const ATTR_FILE_FORKCOUNT: attrgroup_t = 0x00000080; -pub const ATTR_FILE_FORKLIST: attrgroup_t = 0x00000100; -pub const ATTR_FILE_DATALENGTH: attrgroup_t = 0x00000200; -pub const ATTR_FILE_DATAALLOCSIZE: attrgroup_t = 0x00000400; -pub const ATTR_FILE_RSRCLENGTH: attrgroup_t = 0x00001000; -pub const ATTR_FILE_RSRCALLOCSIZE: attrgroup_t = 0x00002000; -pub const ATTR_CMNEXT_RELPATH: attrgroup_t = 0x00000004; -pub const ATTR_CMNEXT_PRIVATESIZE: attrgroup_t = 0x00000008; -pub const ATTR_CMNEXT_LINKID: attrgroup_t = 0x00000010; -pub const ATTR_CMNEXT_NOFIRMLINKPATH: attrgroup_t = 0x00000020; -pub const ATTR_CMNEXT_REALDEVID: attrgroup_t = 0x00000040; -pub const ATTR_CMNEXT_REALFSID: attrgroup_t = 0x00000080; -pub const ATTR_CMNEXT_CLONEID: attrgroup_t = 0x00000100; -pub const ATTR_CMNEXT_EXT_FLAGS: attrgroup_t = 0x00000200; -pub const ATTR_CMNEXT_RECURSIVE_GENCOUNT: attrgroup_t = 0x00000400; -pub const DIR_MNTSTATUS_MNTPOINT: u32 = 0x1; -pub const VOL_CAPABILITIES_FORMAT: usize = 0; -pub const VOL_CAPABILITIES_INTERFACES: usize = 1; -pub const VOL_CAP_FMT_PERSISTENTOBJECTIDS: attrgroup_t = 0x00000001; -pub const VOL_CAP_FMT_SYMBOLICLINKS: attrgroup_t = 0x00000002; -pub const VOL_CAP_FMT_HARDLINKS: attrgroup_t = 0x00000004; -pub const VOL_CAP_FMT_JOURNAL: attrgroup_t = 0x00000008; -pub const VOL_CAP_FMT_JOURNAL_ACTIVE: attrgroup_t = 0x00000010; -pub const VOL_CAP_FMT_NO_ROOT_TIMES: attrgroup_t = 0x00000020; -pub const VOL_CAP_FMT_SPARSE_FILES: attrgroup_t = 0x00000040; -pub const VOL_CAP_FMT_ZERO_RUNS: attrgroup_t = 0x00000080; -pub const VOL_CAP_FMT_CASE_SENSITIVE: attrgroup_t = 0x00000100; -pub const VOL_CAP_FMT_CASE_PRESERVING: attrgroup_t = 0x00000200; -pub const VOL_CAP_FMT_FAST_STATFS: attrgroup_t = 0x00000400; -pub const VOL_CAP_FMT_2TB_FILESIZE: attrgroup_t = 0x00000800; -pub const VOL_CAP_FMT_OPENDENYMODES: attrgroup_t = 0x00001000; -pub const VOL_CAP_FMT_HIDDEN_FILES: attrgroup_t = 0x00002000; -pub const VOL_CAP_FMT_PATH_FROM_ID: attrgroup_t = 0x00004000; -pub const VOL_CAP_FMT_NO_VOLUME_SIZES: attrgroup_t = 0x00008000; -pub const VOL_CAP_FMT_DECMPFS_COMPRESSION: attrgroup_t = 0x00010000; -pub const VOL_CAP_FMT_64BIT_OBJECT_IDS: attrgroup_t = 0x00020000; -pub const VOL_CAP_FMT_DIR_HARDLINKS: attrgroup_t = 0x00040000; -pub const VOL_CAP_FMT_DOCUMENT_ID: attrgroup_t = 0x00080000; -pub const VOL_CAP_FMT_WRITE_GENERATION_COUNT: attrgroup_t = 0x00100000; -pub const VOL_CAP_FMT_NO_IMMUTABLE_FILES: attrgroup_t = 0x00200000; -pub const VOL_CAP_FMT_NO_PERMISSIONS: attrgroup_t = 0x00400000; -pub const VOL_CAP_FMT_SHARED_SPACE: attrgroup_t = 0x00800000; -pub const VOL_CAP_FMT_VOL_GROUPS: attrgroup_t = 0x01000000; -pub const VOL_CAP_FMT_SEALED: attrgroup_t = 0x02000000; -pub const VOL_CAP_INT_SEARCHFS: attrgroup_t = 0x00000001; -pub const VOL_CAP_INT_ATTRLIST: attrgroup_t = 0x00000002; -pub const VOL_CAP_INT_NFSEXPORT: attrgroup_t = 0x00000004; -pub const VOL_CAP_INT_READDIRATTR: attrgroup_t = 0x00000008; -pub const VOL_CAP_INT_EXCHANGEDATA: attrgroup_t = 0x00000010; -pub const VOL_CAP_INT_COPYFILE: attrgroup_t = 0x00000020; -pub const VOL_CAP_INT_ALLOCATE: attrgroup_t = 0x00000040; -pub const VOL_CAP_INT_VOL_RENAME: attrgroup_t = 0x00000080; -pub const VOL_CAP_INT_ADVLOCK: attrgroup_t = 0x00000100; -pub const VOL_CAP_INT_FLOCK: attrgroup_t = 0x00000200; -pub const VOL_CAP_INT_EXTENDED_SECURITY: attrgroup_t = 0x00000400; -pub const VOL_CAP_INT_USERACCESS: attrgroup_t = 0x00000800; -pub const VOL_CAP_INT_MANLOCK: attrgroup_t = 0x00001000; -pub const VOL_CAP_INT_NAMEDSTREAMS: attrgroup_t = 0x00002000; -pub const VOL_CAP_INT_EXTENDED_ATTR: attrgroup_t = 0x00004000; -pub const VOL_CAP_INT_CLONE: attrgroup_t = 0x00010000; -pub const VOL_CAP_INT_SNAPSHOT: attrgroup_t = 0x00020000; -pub const VOL_CAP_INT_RENAME_SWAP: attrgroup_t = 0x00040000; -pub const VOL_CAP_INT_RENAME_EXCL: attrgroup_t = 0x00080000; -pub const VOL_CAP_INT_RENAME_OPENFAIL: attrgroup_t = 0x00100000; - -// -/// Process being created by fork. -pub const SIDL: u32 = 1; -/// Currently runnable. -pub const SRUN: u32 = 2; -/// Sleeping on an address. -pub const SSLEEP: u32 = 3; -/// Process debugging or suspension. -pub const SSTOP: u32 = 4; -/// Awaiting collection by parent. -pub const SZOMB: u32 = 5; - -// sys/vsock.h -pub const VMADDR_CID_ANY: ::c_uint = 0xFFFFFFFF; -pub const VMADDR_CID_HYPERVISOR: ::c_uint = 0; -pub const VMADDR_CID_RESERVED: ::c_uint = 1; -pub const VMADDR_CID_HOST: ::c_uint = 2; -pub const VMADDR_PORT_ANY: ::c_uint = 0xFFFFFFFF; - -cfg_if! { - if #[cfg(libc_const_extern_fn)] { - const fn __DARWIN_ALIGN32(p: usize) -> usize { - const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; - p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 - } - } else if #[cfg(libc_const_size_of)] { - fn __DARWIN_ALIGN32(p: usize) -> usize { - const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; - p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 - } - } else { - fn __DARWIN_ALIGN32(p: usize) -> usize { - let __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::() - 1; - p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32 - } - } -} - -cfg_if! { - if #[cfg(libc_const_size_of)] { - pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / - ::mem::size_of::()) as mach_msg_type_number_t; - pub const THREAD_PRECEDENCE_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_AFFINITY_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_BACKGROUND_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_LATENCY_QOS_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_THROUGHPUT_QOS_POLICY_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / - ::mem::size_of::()) as mach_msg_type_number_t; - pub const THREAD_BASIC_INFO_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_IDENTIFIER_INFO_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - pub const THREAD_EXTENDED_INFO_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - - pub const TASK_THREAD_TIMES_INFO_COUNT: u32 = - (::mem::size_of::() - / ::mem::size_of::()) as u32; - pub const MACH_TASK_BASIC_INFO_COUNT: u32 = (::mem::size_of::() - / ::mem::size_of::()) as u32; - pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = - (::mem::size_of::() / ::mem::size_of::()) - as mach_msg_type_number_t; - } else { - pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t = 1; - pub const THREAD_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t = 4; - pub const THREAD_PRECEDENCE_POLICY_COUNT: mach_msg_type_number_t = 1; - pub const THREAD_AFFINITY_POLICY_COUNT: mach_msg_type_number_t = 1; - pub const THREAD_BACKGROUND_POLICY_COUNT: mach_msg_type_number_t = 1; - pub const THREAD_LATENCY_QOS_POLICY_COUNT: mach_msg_type_number_t = 1; - pub const THREAD_THROUGHPUT_QOS_POLICY_COUNT: mach_msg_type_number_t = 1; - pub const THREAD_BASIC_INFO_COUNT: mach_msg_type_number_t = 10; - pub const THREAD_IDENTIFIER_INFO_COUNT: mach_msg_type_number_t = 6; - pub const THREAD_EXTENDED_INFO_COUNT: mach_msg_type_number_t = 28; - pub const TASK_THREAD_TIMES_INFO_COUNT: u32 = 4; - pub const MACH_TASK_BASIC_INFO_COUNT: u32 = 12; - pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = 38; - } -} - -f! { - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, - cmsg: *const ::cmsghdr) -> *mut ::cmsghdr { - if cmsg.is_null() { - return ::CMSG_FIRSTHDR(mhdr); - }; - let cmsg_len = (*cmsg).cmsg_len as usize; - let next = cmsg as usize + __DARWIN_ALIGN32(cmsg_len as usize); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; - if next + __DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) > max { - 0 as *mut ::cmsghdr - } else { - next as *mut ::cmsghdr - } - } - - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) as isize) - } - - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) - + __DARWIN_ALIGN32(length as usize)) - as ::c_uint - } - - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - (__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) + length as usize) - as ::c_uint - } - - pub {const} fn VM_MAKE_TAG(id: u8) -> u32 { - (id as u32) << 24u32 - } - - pub fn major(dev: dev_t) -> i32 { - (dev >> 24) & 0xff - } - - pub fn minor(dev: dev_t) -> i32 { - dev & 0xffffff - } - - pub fn makedev(major: i32, minor: i32) -> dev_t { - (major << 24) | minor - } -} - -safe_f! { - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { - status >> 8 - } - - pub {const} fn _WSTATUS(status: ::c_int) -> ::c_int { - status & 0x7f - } - - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { - _WSTATUS(status) == _WSTOPPED && WSTOPSIG(status) == 0x13 - } - - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { - _WSTATUS(status) != _WSTOPPED && _WSTATUS(status) != 0 - } - - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { - _WSTATUS(status) == _WSTOPPED && WSTOPSIG(status) != 0x13 - } -} - -extern "C" { - pub fn setgrent(); - #[doc(hidden)] - #[deprecated(since = "0.2.49", note = "Deprecated in MacOSX 10.5")] - #[cfg_attr(not(target_arch = "aarch64"), link_name = "daemon$1050")] - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - #[doc(hidden)] - #[deprecated(since = "0.2.49", note = "Deprecated in MacOSX 10.10")] - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - #[doc(hidden)] - #[deprecated(since = "0.2.49", note = "Deprecated in MacOSX 10.10")] - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; - pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "aio_suspend$UNIX2003" - )] - pub fn aio_suspend( - aiocb_list: *const *const aiocb, - nitems: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn chflags(path: *const ::c_char, flags: ::c_uint) -> ::c_int; - pub fn fchflags(fd: ::c_int, flags: ::c_uint) -> ::c_int; - pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "confstr$UNIX2003" - )] - pub fn confstr(name: ::c_int, buf: *mut ::c_char, len: ::size_t) -> ::size_t; - pub fn lio_listio( - mode: ::c_int, - aiocb_list: *const *mut aiocb, - nitems: ::c_int, - sevp: *mut sigevent, - ) -> ::c_int; - - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; - - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn getutxent() -> *mut utmpx; - pub fn getutxid(ut: *const utmpx) -> *mut utmpx; - pub fn getutxline(ut: *const utmpx) -> *mut utmpx; - pub fn pututxline(ut: *const utmpx) -> *mut utmpx; - pub fn setutxent(); - pub fn endutxent(); - pub fn utmpxname(file: *const ::c_char) -> ::c_int; - - pub fn asctime(tm: *const ::tm) -> *mut ::c_char; - pub fn ctime(clock: *const time_t) -> *mut ::c_char; - pub fn getdate(datestr: *const ::c_char) -> *mut ::tm; - pub fn strftime( - buf: *mut ::c_char, - maxsize: ::size_t, - format: *const ::c_char, - timeptr: *const ::tm, - ) -> ::size_t; - pub fn strptime( - buf: *const ::c_char, - format: *const ::c_char, - timeptr: *mut ::tm, - ) -> *mut ::c_char; - pub fn asctime_r(tm: *const ::tm, result: *mut ::c_char) -> *mut ::c_char; - pub fn ctime_r(clock: *const time_t, result: *mut ::c_char) -> *mut ::c_char; - - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; - pub fn sysctlnametomib( - name: *const ::c_char, - mibp: *mut ::c_int, - sizep: *mut ::size_t, - ) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "mprotect$UNIX2003" - )] - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn semget(key: key_t, nsems: ::c_int, semflg: ::c_int) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "semctl$UNIX2003" - )] - pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int; - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn ftok(pathname: *const c_char, proj_id: ::c_int) -> key_t; - pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; - pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "shmctl$UNIX2003" - )] - pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; - pub fn shmget(key: key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_uint, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn sysctlbyname( - name: *const ::c_char, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; - #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] - pub fn mach_absolute_time() -> u64; - #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] - #[allow(deprecated)] - pub fn mach_timebase_info(info: *mut ::mach_timebase_info) -> ::c_int; - pub fn mach_host_self() -> mach_port_t; - pub fn mach_thread_self() -> mach_port_t; - pub fn pthread_setname_np(name: *const ::c_char) -> ::c_int; - pub fn pthread_getname_np(thread: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn pthread_mach_thread_np(thread: ::pthread_t) -> ::mach_port_t; - pub fn pthread_from_mach_thread_np(port: ::mach_port_t) -> ::pthread_t; - pub fn pthread_create_from_mach_thread( - thread: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn pthread_stack_frame_decode_np( - frame_addr: ::uintptr_t, - return_addr: *mut ::uintptr_t, - ) -> ::uintptr_t; - pub fn pthread_get_stackaddr_np(thread: ::pthread_t) -> *mut ::c_void; - pub fn pthread_get_stacksize_np(thread: ::pthread_t) -> ::size_t; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_condattr_getpshared( - attr: *const pthread_condattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_main_np() -> ::c_int; - pub fn pthread_mutexattr_setpshared( - attr: *mut pthread_mutexattr_t, - pshared: ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_getpshared( - attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_getpshared( - attr: *const pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; - pub fn pthread_threadid_np(thread: ::pthread_t, thread_id: *mut u64) -> ::c_int; - pub fn pthread_attr_set_qos_class_np( - attr: *mut pthread_attr_t, - class: qos_class_t, - priority: ::c_int, - ) -> ::c_int; - pub fn pthread_attr_get_qos_class_np( - attr: *mut pthread_attr_t, - class: *mut qos_class_t, - priority: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_set_qos_class_self_np(class: qos_class_t, priority: ::c_int) -> ::c_int; - pub fn pthread_get_qos_class_np( - thread: ::pthread_t, - class: *mut qos_class_t, - priority: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_attr_getschedparam( - attr: *const ::pthread_attr_t, - param: *mut sched_param, - ) -> ::c_int; - pub fn pthread_attr_setschedparam( - attr: *mut ::pthread_attr_t, - param: *const sched_param, - ) -> ::c_int; - pub fn pthread_getschedparam( - thread: ::pthread_t, - policy: *mut ::c_int, - param: *mut sched_param, - ) -> ::c_int; - pub fn pthread_setschedparam( - thread: ::pthread_t, - policy: ::c_int, - param: *const sched_param, - ) -> ::c_int; - - // Available from Big Sur - pub fn pthread_introspection_hook_install( - hook: ::pthread_introspection_hook_t, - ) -> ::pthread_introspection_hook_t; - pub fn pthread_introspection_setspecific_np( - thread: ::pthread_t, - key: ::pthread_key_t, - value: *const ::c_void, - ) -> ::c_int; - pub fn pthread_introspection_getspecific_np( - thread: ::pthread_t, - key: ::pthread_key_t, - ) -> *mut ::c_void; - pub fn pthread_jit_write_protect_np(enabled: ::c_int); - pub fn pthread_jit_write_protect_supported_np() -> ::c_int; - // An array of pthread_jit_write_with_callback_np must declare - // the list of callbacks e.g. - // #[link_section = "__DATA_CONST,__pth_jit_func"] - // static callbacks: [libc::pthread_jit_write_callback_t; 2] = [native_jit_write_cb, - // std::mem::transmute::(std::ptr::null())]; - // (a handy PTHREAD_JIT_WRITE_CALLBACK_NP macro for other languages). - pub fn pthread_jit_write_with_callback_np( - callback: ::pthread_jit_write_callback_t, - ctx: *mut ::c_void, - ) -> ::c_int; - pub fn pthread_jit_write_freeze_callbacks_np(); - pub fn pthread_cpu_number_np(cpu_number_out: *mut ::size_t) -> ::c_int; - - pub fn os_unfair_lock_lock(lock: os_unfair_lock_t); - pub fn os_unfair_lock_trylock(lock: os_unfair_lock_t) -> bool; - pub fn os_unfair_lock_unlock(lock: os_unfair_lock_t); - pub fn os_unfair_lock_assert_owner(lock: os_unfair_lock_t); - pub fn os_unfair_lock_assert_not_owner(lock: os_unfair_lock_t); - - pub fn os_log_create(subsystem: *const ::c_char, category: *const ::c_char) -> ::os_log_t; - pub fn os_log_type_enabled(oslog: ::os_log_t, tpe: ::os_log_type_t) -> bool; - pub fn os_signpost_id_make_with_pointer( - log: ::os_log_t, - ptr: *const ::c_void, - ) -> ::os_signpost_id_t; - pub fn os_signpost_id_generate(log: ::os_log_t) -> ::os_signpost_id_t; - pub fn os_signpost_enabled(log: ::os_log_t) -> bool; - - pub fn thread_policy_set( - thread: thread_t, - flavor: thread_policy_flavor_t, - policy_info: thread_policy_t, - count: mach_msg_type_number_t, - ) -> kern_return_t; - pub fn thread_policy_get( - thread: thread_t, - flavor: thread_policy_flavor_t, - policy_info: thread_policy_t, - count: *mut mach_msg_type_number_t, - get_default: *mut boolean_t, - ) -> kern_return_t; - pub fn thread_info( - target_act: thread_inspect_t, - flavor: thread_flavor_t, - thread_info_out: thread_info_t, - thread_info_outCnt: *mut mach_msg_type_number_t, - ) -> kern_return_t; - #[cfg_attr(doc, doc(alias = "__errno_location"))] - #[cfg_attr(doc, doc(alias = "errno"))] - pub fn __error() -> *mut ::c_int; - pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int; - pub fn backtrace_symbols(addrs: *const *mut ::c_void, sz: ::c_int) -> *mut *mut ::c_char; - pub fn backtrace_symbols_fd(addrs: *const *mut ::c_void, sz: ::c_int, fd: ::c_int); - pub fn backtrace_from_fp( - startfp: *mut ::c_void, - array: *mut *mut ::c_void, - size: ::c_int, - ) -> ::c_int; - pub fn backtrace_image_offsets( - array: *const *mut ::c_void, - image_offsets: *mut image_offset, - size: ::c_int, - ); - pub fn backtrace_async( - array: *mut *mut ::c_void, - length: ::size_t, - task_id: *mut u32, - ) -> ::size_t; - #[cfg_attr( - all(target_os = "macos", not(target_arch = "aarch64")), - link_name = "statfs$INODE64" - )] - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", not(target_arch = "aarch64")), - link_name = "fstatfs$INODE64" - )] - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn kevent( - kq: ::c_int, - changelist: *const ::kevent, - nchanges: ::c_int, - eventlist: *mut ::kevent, - nevents: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn kevent64( - kq: ::c_int, - changelist: *const ::kevent64_s, - nchanges: ::c_int, - eventlist: *mut ::kevent64_s, - nevents: ::c_int, - flags: ::c_uint, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn mount( - src: *const ::c_char, - target: *const ::c_char, - flags: ::c_int, - data: *mut ::c_void, - ) -> ::c_int; - pub fn fmount( - src: *const ::c_char, - fd: ::c_int, - flags: ::c_int, - data: *mut ::c_void, - ) -> ::c_int; - pub fn ptrace(request: ::c_int, pid: ::pid_t, addr: *mut ::c_char, data: ::c_int) -> ::c_int; - pub fn quotactl( - special: *const ::c_char, - cmd: ::c_int, - id: ::c_int, - data: *mut ::c_char, - ) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn sendfile( - fd: ::c_int, - s: ::c_int, - offset: ::off_t, - len: *mut ::off_t, - hdtr: *mut ::sf_hdtr, - flags: ::c_int, - ) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize, - ) -> ::c_int; - pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize, - ) -> ::pid_t; - pub fn login_tty(fd: ::c_int) -> ::c_int; - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t) -> ::c_int; - pub fn localeconv_l(loc: ::locale_t) -> *mut lconv; - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn querylocale(mask: ::c_int, loc: ::locale_t) -> *const ::c_char; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - pub fn getxattr( - path: *const ::c_char, - name: *const ::c_char, - value: *mut ::c_void, - size: ::size_t, - position: u32, - flags: ::c_int, - ) -> ::ssize_t; - pub fn fgetxattr( - filedes: ::c_int, - name: *const ::c_char, - value: *mut ::c_void, - size: ::size_t, - position: u32, - flags: ::c_int, - ) -> ::ssize_t; - pub fn setxattr( - path: *const ::c_char, - name: *const ::c_char, - value: *const ::c_void, - size: ::size_t, - position: u32, - flags: ::c_int, - ) -> ::c_int; - pub fn fsetxattr( - filedes: ::c_int, - name: *const ::c_char, - value: *const ::c_void, - size: ::size_t, - position: u32, - flags: ::c_int, - ) -> ::c_int; - pub fn listxattr( - path: *const ::c_char, - list: *mut ::c_char, - size: ::size_t, - flags: ::c_int, - ) -> ::ssize_t; - pub fn flistxattr( - filedes: ::c_int, - list: *mut ::c_char, - size: ::size_t, - flags: ::c_int, - ) -> ::ssize_t; - pub fn removexattr(path: *const ::c_char, name: *const ::c_char, flags: ::c_int) -> ::c_int; - pub fn renamex_np(from: *const ::c_char, to: *const ::c_char, flags: ::c_uint) -> ::c_int; - pub fn renameatx_np( - fromfd: ::c_int, - from: *const ::c_char, - tofd: ::c_int, - to: *const ::c_char, - flags: ::c_uint, - ) -> ::c_int; - pub fn fremovexattr(filedes: ::c_int, name: *const ::c_char, flags: ::c_int) -> ::c_int; - - pub fn getgrouplist( - name: *const ::c_char, - basegid: ::c_int, - groups: *mut ::c_int, - ngroups: *mut ::c_int, - ) -> ::c_int; - pub fn initgroups(user: *const ::c_char, basegroup: ::c_int) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "waitid$UNIX2003" - )] - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; - pub fn brk(addr: *const ::c_void) -> *mut ::c_void; - pub fn sbrk(increment: ::c_int) -> *mut ::c_void; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; - #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] - pub fn _dyld_image_count() -> u32; - #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] - #[allow(deprecated)] - pub fn _dyld_get_image_header(image_index: u32) -> *const mach_header; - #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] - pub fn _dyld_get_image_vmaddr_slide(image_index: u32) -> ::intptr_t; - #[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")] - pub fn _dyld_get_image_name(image_index: u32) -> *const ::c_char; - - pub fn posix_spawn( - pid: *mut ::pid_t, - path: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawnp( - pid: *mut ::pid_t, - file: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_getsigdefault( - attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigdefault( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getsigmask( - attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigmask( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getflags( - attr: *const posix_spawnattr_t, - flags: *mut ::c_short, - ) -> ::c_int; - pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; - pub fn posix_spawnattr_getpgroup( - attr: *const posix_spawnattr_t, - flags: *mut ::pid_t, - ) -> ::c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; - pub fn posix_spawnattr_setarchpref_np( - attr: *mut posix_spawnattr_t, - count: ::size_t, - pref: *mut ::cpu_type_t, - subpref: *mut ::cpu_subtype_t, - ocount: *mut ::size_t, - ) -> ::c_int; - pub fn posix_spawnattr_getarchpref_np( - attr: *const posix_spawnattr_t, - count: ::size_t, - pref: *mut ::cpu_type_t, - subpref: *mut ::cpu_subtype_t, - ocount: *mut ::size_t, - ) -> ::c_int; - pub fn posix_spawnattr_set_qos_class_np( - attr: *mut posix_spawnattr_t, - qos_class: ::qos_class_t, - ) -> ::c_int; - pub fn posix_spawnattr_get_qos_class_np( - attr: *const posix_spawnattr_t, - qos_class: *mut ::qos_class_t, - ) -> ::c_int; - - pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_addopen( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - path: *const ::c_char, - oflag: ::c_int, - mode: ::mode_t, - ) -> ::c_int; - pub fn posix_spawn_file_actions_addclose( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; - pub fn posix_spawn_file_actions_adddup2( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - newfd: ::c_int, - ) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; - - pub fn connectx( - socket: ::c_int, - endpoints: *const sa_endpoints_t, - associd: sae_associd_t, - flags: ::c_uint, - iov: *const ::iovec, - iovcnt: ::c_uint, - len: *mut ::size_t, - connid: *mut sae_connid_t, - ) -> ::c_int; - pub fn disconnectx(socket: ::c_int, associd: sae_associd_t, connid: sae_connid_t) -> ::c_int; - - pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; - pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", not(target_arch = "aarch64")), - link_name = "getmntinfo$INODE64" - )] - pub fn getmntinfo(mntbufp: *mut *mut statfs, flags: ::c_int) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", not(target_arch = "aarch64")), - link_name = "getfsstat$INODE64" - )] - pub fn getfsstat(mntbufp: *mut statfs, bufsize: ::c_int, flags: ::c_int) -> ::c_int; - - // Copy-on-write functions. - // According to the man page `flags` is an `int` but in the header - // this is a `uint32_t`. - pub fn clonefile(src: *const ::c_char, dst: *const ::c_char, flags: u32) -> ::c_int; - pub fn clonefileat( - src_dirfd: ::c_int, - src: *const ::c_char, - dst_dirfd: ::c_int, - dst: *const ::c_char, - flags: u32, - ) -> ::c_int; - pub fn fclonefileat( - srcfd: ::c_int, - dst_dirfd: ::c_int, - dst: *const ::c_char, - flags: u32, - ) -> ::c_int; - - pub fn copyfile( - from: *const ::c_char, - to: *const ::c_char, - state: copyfile_state_t, - flags: copyfile_flags_t, - ) -> ::c_int; - pub fn fcopyfile( - from: ::c_int, - to: ::c_int, - state: copyfile_state_t, - flags: copyfile_flags_t, - ) -> ::c_int; - - // Added in macOS 10.13 - // ISO/IEC 9899:2011 ("ISO C11") K.3.7.4.1 - pub fn memset_s(s: *mut ::c_void, smax: ::size_t, c: ::c_int, n: ::size_t) -> ::c_int; - // Added in macOS 10.5 - pub fn memset_pattern4(b: *mut ::c_void, pattern4: *const ::c_void, len: ::size_t); - pub fn memset_pattern8(b: *mut ::c_void, pattern8: *const ::c_void, len: ::size_t); - pub fn memset_pattern16(b: *mut ::c_void, pattern16: *const ::c_void, len: ::size_t); - - // Inherited from BSD but available from Big Sur only - pub fn strtonum( - __numstr: *const ::c_char, - __minval: ::c_longlong, - __maxval: ::c_longlong, - errstrp: *mut *const ::c_char, - ) -> ::c_longlong; - - pub fn mstats() -> mstats; - pub fn malloc_printf(format: *const ::c_char, ...); - pub fn malloc_zone_check(zone: *mut ::malloc_zone_t) -> ::boolean_t; - pub fn malloc_zone_print(zone: *mut ::malloc_zone_t, verbose: ::boolean_t); - pub fn malloc_zone_statistics(zone: *mut ::malloc_zone_t, stats: *mut malloc_statistics_t); - pub fn malloc_zone_log(zone: *mut ::malloc_zone_t, address: *mut ::c_void); - pub fn malloc_zone_print_ptr_info(ptr: *mut ::c_void); - pub fn malloc_default_zone() -> *mut ::malloc_zone_t; - pub fn malloc_zone_from_ptr(ptr: *const ::c_void) -> *mut ::malloc_zone_t; - pub fn malloc_zone_malloc(zone: *mut ::malloc_zone_t, size: ::size_t) -> *mut ::c_void; - pub fn malloc_zone_valloc(zone: *mut ::malloc_zone_t, size: ::size_t) -> *mut ::c_void; - pub fn malloc_zone_calloc( - zone: *mut ::malloc_zone_t, - num_items: ::size_t, - size: ::size_t, - ) -> *mut ::c_void; - pub fn malloc_zone_realloc( - zone: *mut ::malloc_zone_t, - ptr: *mut ::c_void, - size: ::size_t, - ) -> *mut ::c_void; - pub fn malloc_zone_free(zone: *mut ::malloc_zone_t, ptr: *mut ::c_void); - - pub fn proc_listpids( - t: u32, - typeinfo: u32, - buffer: *mut ::c_void, - buffersize: ::c_int, - ) -> ::c_int; - pub fn proc_listallpids(buffer: *mut ::c_void, buffersize: ::c_int) -> ::c_int; - pub fn proc_listpgrppids( - pgrpid: ::pid_t, - buffer: *mut ::c_void, - buffersize: ::c_int, - ) -> ::c_int; - pub fn proc_listchildpids(ppid: ::pid_t, buffer: *mut ::c_void, buffersize: ::c_int) - -> ::c_int; - pub fn proc_pidinfo( - pid: ::c_int, - flavor: ::c_int, - arg: u64, - buffer: *mut ::c_void, - buffersize: ::c_int, - ) -> ::c_int; - pub fn proc_pidfdinfo( - pid: ::c_int, - fd: ::c_int, - flavor: ::c_int, - buffer: *mut ::c_void, - buffersize: ::c_int, - ) -> ::c_int; - pub fn proc_pidfileportinfo( - pid: ::c_int, - fileport: u32, - flavor: ::c_int, - buffer: *mut ::c_void, - buffersize: ::c_int, - ) -> ::c_int; - pub fn proc_pidpath(pid: ::c_int, buffer: *mut ::c_void, buffersize: u32) -> ::c_int; - pub fn proc_name(pid: ::c_int, buffer: *mut ::c_void, buffersize: u32) -> ::c_int; - pub fn proc_regionfilename( - pid: ::c_int, - address: u64, - buffer: *mut ::c_void, - buffersize: u32, - ) -> ::c_int; - pub fn proc_kmsgbuf(buffer: *mut ::c_void, buffersize: u32) -> ::c_int; - pub fn proc_libversion(major: *mut ::c_int, mintor: *mut ::c_int) -> ::c_int; - pub fn proc_pid_rusage(pid: ::c_int, flavor: ::c_int, buffer: *mut rusage_info_t) -> ::c_int; - - // Available from Big Sur - pub fn proc_set_no_smt() -> ::c_int; - pub fn proc_setthread_no_smt() -> ::c_int; - pub fn proc_set_csm(flags: u32) -> ::c_int; - pub fn proc_setthread_csm(flags: u32) -> ::c_int; - /// # Notes - /// - /// `id` is of type [`uuid_t`]. - pub fn gethostuuid(id: *mut u8, timeout: *const ::timespec) -> ::c_int; - - pub fn gethostid() -> ::c_long; - pub fn sethostid(hostid: ::c_long); - - pub fn CCRandomGenerateBytes(bytes: *mut ::c_void, size: ::size_t) -> ::CCRNGStatus; - - pub fn _NSGetExecutablePath(buf: *mut ::c_char, bufsize: *mut u32) -> ::c_int; - pub fn _NSGetEnviron() -> *mut *mut *mut ::c_char; - - pub fn mach_vm_map( - target_task: ::vm_map_t, - address: *mut ::mach_vm_address_t, - size: ::mach_vm_size_t, - mask: ::mach_vm_offset_t, - flags: ::c_int, - object: ::mem_entry_name_port_t, - offset: ::memory_object_offset_t, - copy: ::boolean_t, - cur_protection: ::vm_prot_t, - max_protection: ::vm_prot_t, - inheritance: ::vm_inherit_t, - ) -> ::kern_return_t; - - pub fn vm_deallocate( - target_task: vm_map_t, - address: vm_address_t, - size: vm_size_t, - ) -> ::kern_return_t; - - pub fn host_statistics64( - host_priv: host_t, - flavor: host_flavor_t, - host_info64_out: host_info64_t, - host_info64_outCnt: *mut mach_msg_type_number_t, - ) -> ::kern_return_t; - pub fn host_processor_info( - host: host_t, - flavor: processor_flavor_t, - out_processor_count: *mut natural_t, - out_processor_info: *mut processor_info_array_t, - out_processor_infoCnt: *mut mach_msg_type_number_t, - ) -> ::kern_return_t; - - pub static mut mach_task_self_: ::mach_port_t; - pub fn task_for_pid( - host: ::mach_port_t, - pid: ::pid_t, - task: *mut ::mach_port_t, - ) -> ::kern_return_t; - pub fn task_info( - host: ::mach_port_t, - flavor: task_flavor_t, - task_info_out: task_info_t, - task_info_count: *mut mach_msg_type_number_t, - ) -> ::kern_return_t; - pub fn task_create( - target_task: ::task_t, - ledgers: ::ledger_array_t, - ledgersCnt: ::mach_msg_type_number_t, - inherit_memory: ::boolean_t, - child_task: *mut ::task_t, - ) -> ::kern_return_t; - pub fn task_terminate(target_task: ::task_t) -> ::kern_return_t; - pub fn task_threads( - target_task: ::task_inspect_t, - act_list: *mut ::thread_act_array_t, - act_listCnt: *mut ::mach_msg_type_number_t, - ) -> ::kern_return_t; - pub fn host_statistics( - host_priv: host_t, - flavor: host_flavor_t, - host_info_out: host_info_t, - host_info_outCnt: *mut mach_msg_type_number_t, - ) -> ::kern_return_t; - - // sysdir.h - pub fn sysdir_start_search_path_enumeration( - dir: sysdir_search_path_directory_t, - domainMask: sysdir_search_path_domain_mask_t, - ) -> ::sysdir_search_path_enumeration_state; - pub fn sysdir_get_next_search_path_enumeration( - state: ::sysdir_search_path_enumeration_state, - path: *mut ::c_char, - ) -> ::sysdir_search_path_enumeration_state; - - pub static vm_page_size: vm_size_t; - - pub fn getattrlist( - path: *const ::c_char, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, - options: u32, - ) -> ::c_int; - pub fn fgetattrlist( - fd: ::c_int, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, - options: u32, - ) -> ::c_int; - pub fn getattrlistat( - fd: ::c_int, - path: *const ::c_char, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, - options: ::c_ulong, - ) -> ::c_int; - pub fn setattrlist( - path: *const ::c_char, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, - options: u32, - ) -> ::c_int; - pub fn fsetattrlist( - fd: ::c_int, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, - options: u32, - ) -> ::c_int; - pub fn setattrlistat( - dir_fd: ::c_int, - path: *const ::c_char, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, - options: u32, - ) -> ::c_int; - pub fn getattrlistbulk( - dirfd: ::c_int, - attrList: *mut ::c_void, - attrBuf: *mut ::c_void, - attrBufSize: ::size_t, - options: u64, - ) -> ::c_int; - - pub fn malloc_size(ptr: *const ::c_void) -> ::size_t; - pub fn malloc_good_size(size: ::size_t) -> ::size_t; - - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; - pub fn basename(path: *mut ::c_char) -> *mut ::c_char; -} - -pub unsafe fn mach_task_self() -> ::mach_port_t { - mach_task_self_ -} - -cfg_if! { - if #[cfg(target_os = "macos")] { - extern "C" { - pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - } - } -} -cfg_if! { - if #[cfg(any(target_os = "macos", target_os = "ios"))] { - extern "C" { - pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; - pub fn task_set_info(target_task: ::task_t, - flavor: ::task_flavor_t, - task_info_in: ::task_info_t, - task_info_inCnt: ::mach_msg_type_number_t - ) -> ::kern_return_t; - } - } -} - -// These require a dependency on `libiconv`, and including this when built as -// part of `std` means every Rust program gets it. Ideally we would have a link -// modifier to only include these if they are used, but we do not. -#[cfg_attr(not(feature = "rustc-dep-of-std"), link(name = "iconv"))] -extern "C" { - pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; - pub fn iconv( - cd: iconv_t, - inbuf: *mut *mut ::c_char, - inbytesleft: *mut ::size_t, - outbuf: *mut *mut ::c_char, - outbytesleft: *mut ::size_t, - ) -> ::size_t; - pub fn iconv_close(cd: iconv_t) -> ::c_int; -} - -cfg_if! { - if #[cfg(target_pointer_width = "32")] { - mod b32; - pub use self::b32::*; - } else if #[cfg(target_pointer_width = "64")] { - mod b64; - pub use self::b64::*; - } else { - // Unknown target_arch - } -} - -cfg_if! { - if #[cfg(libc_long_array)] { - mod long_array; - pub use self::long_array::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/errno.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/errno.rs deleted file mode 100644 index 5fe6bb89c..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/errno.rs +++ /dev/null @@ -1,13 +0,0 @@ -// DragonFlyBSD's __error function is declared with "static inline", so it must -// be implemented in the libc crate, as a pointer to a static thread_local. -f! { - #[deprecated(since = "0.2.77", note = "Use `__errno_location()` instead")] - pub fn __error() -> *mut ::c_int { - &mut errno - } -} - -extern "C" { - #[thread_local] - pub static mut errno: ::c_int; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/mod.rs deleted file mode 100644 index b3a5be449..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ /dev/null @@ -1,1726 +0,0 @@ -pub type dev_t = u32; -pub type c_char = i8; -pub type wchar_t = i32; -pub type clock_t = u64; -pub type ino_t = u64; -pub type lwpid_t = i32; -pub type nlink_t = u32; -pub type blksize_t = i64; -pub type clockid_t = ::c_ulong; - -pub type c_long = i64; -pub type c_ulong = u64; -pub type time_t = i64; -pub type suseconds_t = i64; - -pub type uuid_t = ::uuid; - -pub type fsblkcnt_t = u64; -pub type fsfilcnt_t = u64; -pub type idtype_t = ::c_uint; -pub type shmatt_t = ::c_uint; - -pub type mqd_t = ::c_int; -pub type sem_t = *mut sem; - -pub type cpuset_t = cpumask_t; -pub type cpu_set_t = cpumask_t; - -pub type register_t = ::c_long; -pub type umtx_t = ::c_int; -pub type pthread_barrierattr_t = ::c_int; -pub type pthread_barrier_t = ::uintptr_t; -pub type pthread_spinlock_t = ::uintptr_t; - -pub type segsz_t = usize; - -pub type vm_prot_t = u8; -pub type vm_maptype_t = u8; -pub type vm_inherit_t = i8; -pub type vm_subsys_t = ::c_int; -pub type vm_eflags_t = ::c_uint; - -pub type vm_map_t = *mut __c_anonymous_vm_map; -pub type vm_map_entry_t = *mut vm_map_entry; - -pub type pmap = __c_anonymous_pmap; - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum sem {} -impl ::Copy for sem {} -impl ::Clone for sem { - fn clone(&self) -> sem { - *self - } -} - -e! { - #[repr(u32)] - pub enum lwpstat { - LSRUN = 1, - LSSTOP = 2, - LSSLEEP = 3, - } - - #[repr(u32)] - pub enum procstat { - SIDL = 1, - SACTIVE = 2, - SSTOP = 3, - SZOMB = 4, - SCORE = 5, - } -} - -s! { - pub struct kevent { - pub ident: ::uintptr_t, - pub filter: ::c_short, - pub flags: ::c_ushort, - pub fflags: ::c_uint, - pub data: ::intptr_t, - pub udata: *mut ::c_void, - } - - pub struct exit_status { - pub e_termination: u16, - pub e_exit: u16 - } - - pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_offset: ::off_t, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: sigevent, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - _aio_val: ::c_int, - _aio_err: ::c_int - } - - pub struct uuid { - pub time_low: u32, - pub time_mid: u16, - pub time_hi_and_version: u16, - pub clock_seq_hi_and_reserved: u8, - pub clock_seq_low: u8, - pub node: [u8; 6], - } - - pub struct mq_attr { - pub mq_flags: ::c_long, - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_curmsgs: ::c_long, - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub f_owner: ::uid_t, - pub f_type: ::c_uint, - pub f_syncreads: u64, - pub f_syncwrites: u64, - pub f_asyncreads: u64, - pub f_asyncwrites: u64, - pub f_fsid_uuid: ::uuid_t, - pub f_uid_uuid: ::uuid_t, - } - - pub struct stat { - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_dev: ::dev_t, - pub st_mode: ::mode_t, - pub st_padding1: u16, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_size: ::off_t, - pub st_blocks: i64, - pub __old_st_blksize: u32, - pub st_flags: u32, - pub st_gen: u32, - pub st_lspare: i32, - pub st_blksize: i64, - pub st_qspare2: i64, - } - - pub struct if_data { - pub ifi_type: ::c_uchar, - pub ifi_physical: ::c_uchar, - pub ifi_addrlen: ::c_uchar, - pub ifi_hdrlen: ::c_uchar, - pub ifi_recvquota: ::c_uchar, - pub ifi_xmitquota: ::c_uchar, - pub ifi_mtu: ::c_ulong, - pub ifi_metric: ::c_ulong, - pub ifi_link_state: ::c_ulong, - pub ifi_baudrate: u64, - pub ifi_ipackets: ::c_ulong, - pub ifi_ierrors: ::c_ulong, - pub ifi_opackets: ::c_ulong, - pub ifi_oerrors: ::c_ulong, - pub ifi_collisions: ::c_ulong, - pub ifi_ibytes: ::c_ulong, - pub ifi_obytes: ::c_ulong, - pub ifi_imcasts: ::c_ulong, - pub ifi_omcasts: ::c_ulong, - pub ifi_iqdrops: ::c_ulong, - pub ifi_noproto: ::c_ulong, - pub ifi_hwassist: ::c_ulong, - pub ifi_oqdrops: ::c_ulong, - pub ifi_lastchange: ::timeval, - } - - pub struct if_msghdr { - pub ifm_msglen: ::c_ushort, - pub ifm_version: ::c_uchar, - pub ifm_type: ::c_uchar, - pub ifm_addrs: ::c_int, - pub ifm_flags: ::c_int, - pub ifm_index: ::c_ushort, - pub ifm_data: if_data, - } - - pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 12], - pub sdl_rcf: ::c_ushort, - pub sdl_route: [::c_ushort; 16], - } - - pub struct xucred { - pub cr_version: ::c_uint, - pub cr_uid: ::uid_t, - pub cr_ngroups: ::c_short, - pub cr_groups: [::gid_t; 16], - __cr_unused1: *mut ::c_void, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - } - - pub struct cpumask_t { - ary: [u64; 4], - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - shm_internal: *mut ::c_void, - } - - pub struct kinfo_file { - pub f_size: ::size_t, - pub f_pid: ::pid_t, - pub f_uid: ::uid_t, - pub f_fd: ::c_int, - pub f_file: *mut ::c_void, - pub f_type: ::c_short, - pub f_count: ::c_int, - pub f_msgcount: ::c_int, - pub f_offset: ::off_t, - pub f_data: *mut ::c_void, - pub f_flag: ::c_uint, - } - - pub struct kinfo_cputime { - pub cp_user: u64, - pub cp_nice: u64, - pub cp_sys: u64, - pub cp_intr: u64, - pub cp_idel: u64, - cp_unused01: u64, - cp_unused02: u64, - pub cp_sample_pc: u64, - pub cp_sample_sp: u64, - pub cp_msg: [::c_char; 32], - } - - pub struct kinfo_lwp { - pub kl_pid: ::pid_t, - pub kl_tid: ::lwpid_t, - pub kl_flags: ::c_int, - pub kl_stat: ::lwpstat, - pub kl_lock: ::c_int, - pub kl_tdflags: ::c_int, - pub kl_mpcount: ::c_int, - pub kl_prio: ::c_int, - pub kl_tdprio: ::c_int, - pub kl_rtprio: ::rtprio, - pub kl_uticks: u64, - pub kl_sticks: u64, - pub kl_iticks: u64, - pub kl_cpticks: u64, - pub kl_pctcpu: ::c_uint, - pub kl_slptime: ::c_uint, - pub kl_origcpu: ::c_int, - pub kl_estcpu: ::c_int, - pub kl_cpuid: ::c_int, - pub kl_ru: ::rusage, - pub kl_siglist: ::sigset_t, - pub kl_sigmask: ::sigset_t, - pub kl_wchan: ::uintptr_t, - pub kl_wmesg: [::c_char; 9], - pub kl_comm: [::c_char; MAXCOMLEN+1], - } - - pub struct kinfo_proc { - pub kp_paddr: ::uintptr_t, - pub kp_flags: ::c_int, - pub kp_stat: ::procstat, - pub kp_lock: ::c_int, - pub kp_acflag: ::c_int, - pub kp_traceflag: ::c_int, - pub kp_fd: ::uintptr_t, - pub kp_siglist: ::sigset_t, - pub kp_sigignore: ::sigset_t, - pub kp_sigcatch: ::sigset_t, - pub kp_sigflag: ::c_int, - pub kp_start: ::timeval, - pub kp_comm: [::c_char; MAXCOMLEN+1], - pub kp_uid: ::uid_t, - pub kp_ngroups: ::c_short, - pub kp_groups: [::gid_t; NGROUPS], - pub kp_ruid: ::uid_t, - pub kp_svuid: ::uid_t, - pub kp_rgid: ::gid_t, - pub kp_svgid: ::gid_t, - pub kp_pid: ::pid_t, - pub kp_ppid: ::pid_t, - pub kp_pgid: ::pid_t, - pub kp_jobc: ::c_int, - pub kp_sid: ::pid_t, - pub kp_login: [::c_char; 40], // MAXNAMELEN rounded up to the nearest sizeof(long) - pub kp_tdev: ::dev_t, - pub kp_tpgid: ::pid_t, - pub kp_tsid: ::pid_t, - pub kp_exitstat: ::c_ushort, - pub kp_nthreads: ::c_int, - pub kp_nice: ::c_int, - pub kp_swtime: ::c_uint, - pub kp_vm_map_size: ::size_t, - pub kp_vm_rssize: ::segsz_t, - pub kp_vm_swrss: ::segsz_t, - pub kp_vm_tsize: ::segsz_t, - pub kp_vm_dsize: ::segsz_t, - pub kp_vm_ssize: ::segsz_t, - pub kp_vm_prssize: ::c_uint, - pub kp_jailid: ::c_int, - pub kp_ru: ::rusage, - pub kp_cru: ::rusage, - pub kp_auxflags: ::c_int, - pub kp_lwp: ::kinfo_lwp, - pub kp_ktaddr: ::uintptr_t, - kp_spare: [::c_int; 2], - } - - pub struct __c_anonymous_vm_map { - _priv: [::uintptr_t; 36], - } - - pub struct vm_map_entry { - _priv: [::uintptr_t; 15], - pub eflags: ::vm_eflags_t, - pub maptype: ::vm_maptype_t, - pub protection: ::vm_prot_t, - pub max_protection: ::vm_prot_t, - pub inheritance: ::vm_inherit_t, - pub wired_count: ::c_int, - pub id: ::vm_subsys_t, - } - - pub struct __c_anonymous_pmap { - _priv1: [::uintptr_t; 32], - _priv2: [::uintptr_t; 32], - _priv3: [::uintptr_t; 32], - _priv4: [::uintptr_t; 32], - _priv5: [::uintptr_t; 8], - } - - pub struct vmspace { - vm_map: __c_anonymous_vm_map, - vm_pmap: __c_anonymous_pmap, - pub vm_flags: ::c_int, - pub vm_shm: *mut ::c_char, - pub vm_rssize: ::segsz_t, - pub vm_swrss: ::segsz_t, - pub vm_tsize: ::segsz_t, - pub vm_dsize: ::segsz_t, - pub vm_ssize: ::segsz_t, - pub vm_taddr: *mut ::c_char, - pub vm_daddr: *mut ::c_char, - pub vm_maxsaddr: *mut ::c_char, - pub vm_minsaddr: *mut ::c_char, - _unused1: ::c_int, - _unused2: ::c_int, - pub vm_pagesupply: ::c_int, - pub vm_holdcnt: ::c_uint, - pub vm_refcnt: ::c_uint, - } - - pub struct cpuctl_msr_args_t { - pub msr: ::c_int, - pub data: u64, - } - - pub struct cpuctl_cpuid_args_t { - pub level: ::c_int, - pub data: [u32; 4], - } - - pub struct cpuctl_cpuid_count_args_t { - pub level: ::c_int, - pub level_type: ::c_int, - pub data: [u32; 4], - } - - pub struct cpuctl_update_args_t { - pub data: *mut ::c_void, - pub size: ::size_t, - } -} - -s_no_extra_traits! { - pub struct utmpx { - pub ut_name: [::c_char; 32], - pub ut_id: [::c_char; 4], - - pub ut_line: [::c_char; 32], - pub ut_host: [::c_char; 256], - - pub ut_unused: [u8; 16], - pub ut_session: u16, - pub ut_type: u16, - pub ut_pid: ::pid_t, - ut_exit: exit_status, - ut_ss: ::sockaddr_storage, - pub ut_tv: ::timeval, - pub ut_unused2: [u8; 16], - } - - pub struct lastlogx { - pub ll_tv: ::timeval, - pub ll_line: [::c_char; _UTX_LINESIZE], - pub ll_host: [::c_char; _UTX_HOSTSIZE], - pub ll_ss: ::sockaddr_storage, - } - - pub struct dirent { - pub d_fileno: ::ino_t, - pub d_namlen: u16, - pub d_type: u8, - __unused1: u8, - __unused2: u32, - pub d_name: [::c_char; 256], - } - - pub struct statfs { - __spare2: ::c_long, - pub f_bsize: ::c_long, - pub f_iosize: ::c_long, - pub f_blocks: ::c_long, - pub f_bfree: ::c_long, - pub f_bavail: ::c_long, - pub f_files: ::c_long, - pub f_ffree: ::c_long, - pub f_fsid: ::fsid_t, - pub f_owner: ::uid_t, - pub f_type: ::c_int, - pub f_flags: ::c_int, - pub f_syncwrites: ::c_long, - pub f_asyncwrites: ::c_long, - pub f_fstypename: [::c_char; 16], - pub f_mntonname: [::c_char; 80], - pub f_syncreads: ::c_long, - pub f_asyncreads: ::c_long, - __spares1: ::c_short, - pub f_mntfromname: [::c_char; 80], - __spares2: ::c_short, - __spare: [::c_long; 2], - } - - pub struct sigevent { - pub sigev_notify: ::c_int, - // The union is 8-byte in size, so it is aligned at a 8-byte offset. - #[cfg(target_pointer_width = "64")] - __unused1: ::c_int, - pub sigev_signo: ::c_int, //actually a union - // pad the union - #[cfg(target_pointer_width = "64")] - __unused2: ::c_int, - pub sigev_value: ::sigval, - __unused3: *mut ::c_void //actually a function pointer - } - - pub struct mcontext_t { - pub mc_onstack: register_t, - pub mc_rdi: register_t, - pub mc_rsi: register_t, - pub mc_rdx: register_t, - pub mc_rcx: register_t, - pub mc_r8: register_t, - pub mc_r9: register_t, - pub mc_rax: register_t, - pub mc_rbx: register_t, - pub mc_rbp: register_t, - pub mc_r10: register_t, - pub mc_r11: register_t, - pub mc_r12: register_t, - pub mc_r13: register_t, - pub mc_r14: register_t, - pub mc_r15: register_t, - pub mc_xflags: register_t, - pub mc_trapno: register_t, - pub mc_addr: register_t, - pub mc_flags: register_t, - pub mc_err: register_t, - pub mc_rip: register_t, - pub mc_cs: register_t, - pub mc_rflags: register_t, - pub mc_rsp: register_t, - pub mc_ss: register_t, - pub mc_len: ::c_uint, - pub mc_fpformat: ::c_uint, - pub mc_ownedfp: ::c_uint, - __reserved: ::c_uint, - __unused: [::c_uint; 8], - pub mc_fpregs: [[::c_uint; 8]; 32], - } - - pub struct ucontext_t { - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - pub uc_link: *mut ucontext_t, - pub uc_stack: stack_t, - pub uc_cofunc: ::Option, - pub uc_arg: *mut ::c_void, - __pad: [::c_int; 4], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_name == other.ut_name - && self.ut_id == other.ut_id - && self.ut_line == other.ut_line - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) - && self.ut_unused == other.ut_unused - && self.ut_session == other.ut_session - && self.ut_type == other.ut_type - && self.ut_pid == other.ut_pid - && self.ut_exit == other.ut_exit - && self.ut_ss == other.ut_ss - && self.ut_tv == other.ut_tv - && self.ut_unused2 == other.ut_unused2 - } - } - impl Eq for utmpx {} - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utmpx") - .field("ut_name", &self.ut_name) - .field("ut_id", &self.ut_id) - .field("ut_line", &self.ut_line) - // FIXME: .field("ut_host", &self.ut_host) - .field("ut_unused", &self.ut_unused) - .field("ut_session", &self.ut_session) - .field("ut_type", &self.ut_type) - .field("ut_pid", &self.ut_pid) - .field("ut_exit", &self.ut_exit) - .field("ut_ss", &self.ut_ss) - .field("ut_tv", &self.ut_tv) - .field("ut_unused2", &self.ut_unused2) - .finish() - } - } - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_name.hash(state); - self.ut_id.hash(state); - self.ut_line.hash(state); - self.ut_host.hash(state); - self.ut_unused.hash(state); - self.ut_session.hash(state); - self.ut_type.hash(state); - self.ut_pid.hash(state); - self.ut_exit.hash(state); - self.ut_ss.hash(state); - self.ut_tv.hash(state); - self.ut_unused2.hash(state); - } - } - impl PartialEq for lastlogx { - fn eq(&self, other: &lastlogx) -> bool { - self.ll_tv == other.ll_tv - && self.ll_line == other.ll_line - && self.ll_host == other.ll_host - && self.ll_ss == other.ll_ss - } - } - impl Eq for lastlogx {} - impl ::fmt::Debug for lastlogx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("lastlogx") - .field("ll_tv", &self.ll_tv) - .field("ll_line", &self.ll_line) - .field("ll_host", &self.ll_host) - .field("ll_ss", &self.ll_ss) - .finish() - } - } - impl ::hash::Hash for lastlogx { - fn hash(&self, state: &mut H) { - self.ll_tv.hash(state); - self.ll_line.hash(state); - self.ll_host.hash(state); - self.ll_ss.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_fileno == other.d_fileno - && self.d_namlen == other.d_namlen - && self.d_type == other.d_type - // Ignore __unused1 - // Ignore __unused2 - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_fileno", &self.d_fileno) - .field("d_namlen", &self.d_namlen) - .field("d_type", &self.d_type) - // Ignore __unused1 - // Ignore __unused2 - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_fileno.hash(state); - self.d_namlen.hash(state); - self.d_type.hash(state); - // Ignore __unused1 - // Ignore __unused2 - self.d_name.hash(state); - } - } - - impl PartialEq for statfs { - fn eq(&self, other: &statfs) -> bool { - self.f_bsize == other.f_bsize - && self.f_iosize == other.f_iosize - && self.f_blocks == other.f_blocks - && self.f_bfree == other.f_bfree - && self.f_bavail == other.f_bavail - && self.f_files == other.f_files - && self.f_ffree == other.f_ffree - && self.f_fsid == other.f_fsid - && self.f_owner == other.f_owner - && self.f_type == other.f_type - && self.f_flags == other.f_flags - && self.f_syncwrites == other.f_syncwrites - && self.f_asyncwrites == other.f_asyncwrites - && self.f_fstypename == other.f_fstypename - && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a,b)| a == b) - && self.f_syncreads == other.f_syncreads - && self.f_asyncreads == other.f_asyncreads - && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("statfs") - .field("f_bsize", &self.f_bsize) - .field("f_iosize", &self.f_iosize) - .field("f_blocks", &self.f_blocks) - .field("f_bfree", &self.f_bfree) - .field("f_bavail", &self.f_bavail) - .field("f_files", &self.f_files) - .field("f_ffree", &self.f_ffree) - .field("f_fsid", &self.f_fsid) - .field("f_owner", &self.f_owner) - .field("f_type", &self.f_type) - .field("f_flags", &self.f_flags) - .field("f_syncwrites", &self.f_syncwrites) - .field("f_asyncwrites", &self.f_asyncwrites) - // FIXME: .field("f_mntonname", &self.f_mntonname) - .field("f_syncreads", &self.f_syncreads) - .field("f_asyncreads", &self.f_asyncreads) - // FIXME: .field("f_mntfromname", &self.f_mntfromname) - .finish() - } - } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { - self.f_bsize.hash(state); - self.f_iosize.hash(state); - self.f_blocks.hash(state); - self.f_bfree.hash(state); - self.f_bavail.hash(state); - self.f_files.hash(state); - self.f_ffree.hash(state); - self.f_fsid.hash(state); - self.f_owner.hash(state); - self.f_type.hash(state); - self.f_flags.hash(state); - self.f_syncwrites.hash(state); - self.f_asyncwrites.hash(state); - self.f_fstypename.hash(state); - self.f_mntonname.hash(state); - self.f_syncreads.hash(state); - self.f_asyncreads.hash(state); - self.f_mntfromname.hash(state); - } - } - - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_notify == other.sigev_notify - && self.sigev_signo == other.sigev_signo - && self.sigev_value == other.sigev_value - } - } - impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sigevent") - .field("sigev_notify", &self.sigev_notify) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_value", &self.sigev_value) - .finish() - } - } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_notify.hash(state); - self.sigev_signo.hash(state); - self.sigev_value.hash(state); - } - } - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.mc_onstack == other.mc_onstack && - self.mc_rdi == other.mc_rdi && - self.mc_rsi == other.mc_rsi && - self.mc_rdx == other.mc_rdx && - self.mc_rcx == other.mc_rcx && - self.mc_r8 == other.mc_r8 && - self.mc_r9 == other.mc_r9 && - self.mc_rax == other.mc_rax && - self.mc_rbx == other.mc_rbx && - self.mc_rbp == other.mc_rbp && - self.mc_r10 == other.mc_r10 && - self.mc_r11 == other.mc_r11 && - self.mc_r12 == other.mc_r12 && - self.mc_r13 == other.mc_r13 && - self.mc_r14 == other.mc_r14 && - self.mc_r15 == other.mc_r15 && - self.mc_xflags == other.mc_xflags && - self.mc_trapno == other.mc_trapno && - self.mc_addr == other.mc_addr && - self.mc_flags == other.mc_flags && - self.mc_err == other.mc_err && - self.mc_rip == other.mc_rip && - self.mc_cs == other.mc_cs && - self.mc_rflags == other.mc_rflags && - self.mc_rsp == other.mc_rsp && - self.mc_ss == other.mc_ss && - self.mc_len == other.mc_len && - self.mc_fpformat == other.mc_fpformat && - self.mc_ownedfp == other.mc_ownedfp && - self.mc_fpregs.iter().zip(other.mc_fpregs.iter()). - all(|(a, b)| a == b) - } - } - impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mcontext_t") - .field("mc_onstack", &self.mc_onstack) - .field("mc_rdi", &self.mc_rdi) - .field("mc_rsi", &self.mc_rsi) - .field("mc_rdx", &self.mc_rdx) - .field("mc_rcx", &self.mc_rcx) - .field("mc_r8", &self.mc_r8) - .field("mc_r9", &self.mc_r9) - .field("mc_rax", &self.mc_rax) - .field("mc_rbx", &self.mc_rbx) - .field("mc_rbp", &self.mc_rbp) - .field("mc_r10", &self.mc_r10) - .field("mc_r11", &self.mc_r11) - .field("mc_r12", &self.mc_r12) - .field("mc_r13", &self.mc_r13) - .field("mc_r14", &self.mc_r14) - .field("mc_r15", &self.mc_r15) - .field("mc_xflags", &self.mc_xflags) - .field("mc_trapno", &self.mc_trapno) - .field("mc_addr", &self.mc_addr) - .field("mc_flags", &self.mc_flags) - .field("mc_err", &self.mc_err) - .field("mc_rip", &self.mc_rip) - .field("mc_cs", &self.mc_cs) - .field("mc_rflags", &self.mc_rflags) - .field("mc_rsp", &self.mc_rsp) - .field("mc_ss", &self.mc_ss) - .field("mc_len", &self.mc_len) - .field("mc_fpformat", &self.mc_fpformat) - .field("mc_ownedfp", &self.mc_ownedfp) - .field("mc_fpregs", &self.mc_fpregs) - .finish() - } - } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.mc_onstack.hash(state); - self.mc_rdi.hash(state); - self.mc_rsi.hash(state); - self.mc_rdx.hash(state); - self.mc_rcx.hash(state); - self.mc_r8.hash(state); - self.mc_r9.hash(state); - self.mc_rax.hash(state); - self.mc_rbx.hash(state); - self.mc_rbp.hash(state); - self.mc_r10.hash(state); - self.mc_r11.hash(state); - self.mc_r10.hash(state); - self.mc_r11.hash(state); - self.mc_r12.hash(state); - self.mc_r13.hash(state); - self.mc_r14.hash(state); - self.mc_r15.hash(state); - self.mc_xflags.hash(state); - self.mc_trapno.hash(state); - self.mc_addr.hash(state); - self.mc_flags.hash(state); - self.mc_err.hash(state); - self.mc_rip.hash(state); - self.mc_cs.hash(state); - self.mc_rflags.hash(state); - self.mc_rsp.hash(state); - self.mc_ss.hash(state); - self.mc_len.hash(state); - self.mc_fpformat.hash(state); - self.mc_ownedfp.hash(state); - self.mc_fpregs.hash(state); - } - } - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_sigmask == other.uc_sigmask - && self.uc_mcontext == other.uc_mcontext - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_cofunc == other.uc_cofunc - && self.uc_arg == other.uc_arg - } - } - impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_sigmask", &self.uc_sigmask) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_cofunc", &self.uc_cofunc) - .field("uc_arg", &self.uc_arg) - .finish() - } - } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_sigmask.hash(state); - self.uc_mcontext.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_cofunc.hash(state); - self.uc_arg.hash(state); - } - } - } -} - -pub const RAND_MAX: ::c_int = 0x7fff_ffff; -pub const PTHREAD_STACK_MIN: ::size_t = 16384; -pub const SIGSTKSZ: ::size_t = 40960; -pub const SIGCKPT: ::c_int = 33; -pub const SIGCKPTEXIT: ::c_int = 34; -pub const CKPT_FREEZE: ::c_int = 0x1; -pub const CKPT_THAW: ::c_int = 0x2; -pub const MADV_INVAL: ::c_int = 10; -pub const MADV_SETMAP: ::c_int = 11; -pub const O_CLOEXEC: ::c_int = 0x00020000; -pub const O_DIRECTORY: ::c_int = 0x08000000; -pub const F_GETLK: ::c_int = 7; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const F_GETPATH: ::c_int = 19; -pub const ENOMEDIUM: ::c_int = 93; -pub const ENOTRECOVERABLE: ::c_int = 94; -pub const EOWNERDEAD: ::c_int = 95; -pub const EASYNC: ::c_int = 99; -pub const ELAST: ::c_int = 99; -pub const RLIMIT_POSIXLOCKS: ::c_int = 11; -#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::rlim_t = 12; - -pub const Q_GETQUOTA: ::c_int = 0x300; -pub const Q_SETQUOTA: ::c_int = 0x400; - -pub const CTL_UNSPEC: ::c_int = 0; -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_VFS: ::c_int = 3; -pub const CTL_NET: ::c_int = 4; -pub const CTL_DEBUG: ::c_int = 5; -pub const CTL_HW: ::c_int = 6; -pub const CTL_MACHDEP: ::c_int = 7; -pub const CTL_USER: ::c_int = 8; -pub const CTL_P1003_1B: ::c_int = 9; -pub const CTL_LWKT: ::c_int = 10; -pub const CTL_MAXID: ::c_int = 11; -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_MAXVNODES: ::c_int = 5; -pub const KERN_MAXPROC: ::c_int = 6; -pub const KERN_MAXFILES: ::c_int = 7; -pub const KERN_ARGMAX: ::c_int = 8; -pub const KERN_SECURELVL: ::c_int = 9; -pub const KERN_HOSTNAME: ::c_int = 10; -pub const KERN_HOSTID: ::c_int = 11; -pub const KERN_CLOCKRATE: ::c_int = 12; -pub const KERN_VNODE: ::c_int = 13; -pub const KERN_PROC: ::c_int = 14; -pub const KERN_FILE: ::c_int = 15; -pub const KERN_PROF: ::c_int = 16; -pub const KERN_POSIX1: ::c_int = 17; -pub const KERN_NGROUPS: ::c_int = 18; -pub const KERN_JOB_CONTROL: ::c_int = 19; -pub const KERN_SAVED_IDS: ::c_int = 20; -pub const KERN_BOOTTIME: ::c_int = 21; -pub const KERN_NISDOMAINNAME: ::c_int = 22; -pub const KERN_UPDATEINTERVAL: ::c_int = 23; -pub const KERN_OSRELDATE: ::c_int = 24; -pub const KERN_NTP_PLL: ::c_int = 25; -pub const KERN_BOOTFILE: ::c_int = 26; -pub const KERN_MAXFILESPERPROC: ::c_int = 27; -pub const KERN_MAXPROCPERUID: ::c_int = 28; -pub const KERN_DUMPDEV: ::c_int = 29; -pub const KERN_IPC: ::c_int = 30; -pub const KERN_DUMMY: ::c_int = 31; -pub const KERN_PS_STRINGS: ::c_int = 32; -pub const KERN_USRSTACK: ::c_int = 33; -pub const KERN_LOGSIGEXIT: ::c_int = 34; -pub const KERN_IOV_MAX: ::c_int = 35; -pub const KERN_MAXPOSIXLOCKSPERUID: ::c_int = 36; -pub const KERN_MAXID: ::c_int = 37; -pub const KERN_PROC_ALL: ::c_int = 0; -pub const KERN_PROC_PID: ::c_int = 1; -pub const KERN_PROC_PGRP: ::c_int = 2; -pub const KERN_PROC_SESSION: ::c_int = 3; -pub const KERN_PROC_TTY: ::c_int = 4; -pub const KERN_PROC_UID: ::c_int = 5; -pub const KERN_PROC_RUID: ::c_int = 6; -pub const KERN_PROC_ARGS: ::c_int = 7; -pub const KERN_PROC_CWD: ::c_int = 8; -pub const KERN_PROC_PATHNAME: ::c_int = 9; -pub const KERN_PROC_FLAGMASK: ::c_int = 0x10; -pub const KERN_PROC_FLAG_LWP: ::c_int = 0x10; -pub const KIPC_MAXSOCKBUF: ::c_int = 1; -pub const KIPC_SOCKBUF_WASTE: ::c_int = 2; -pub const KIPC_SOMAXCONN: ::c_int = 3; -pub const KIPC_MAX_LINKHDR: ::c_int = 4; -pub const KIPC_MAX_PROTOHDR: ::c_int = 5; -pub const KIPC_MAX_HDR: ::c_int = 6; -pub const KIPC_MAX_DATALEN: ::c_int = 7; -pub const KIPC_MBSTAT: ::c_int = 8; -pub const KIPC_NMBCLUSTERS: ::c_int = 9; -pub const HW_MACHINE: ::c_int = 1; -pub const HW_MODEL: ::c_int = 2; -pub const HW_NCPU: ::c_int = 3; -pub const HW_BYTEORDER: ::c_int = 4; -pub const HW_PHYSMEM: ::c_int = 5; -pub const HW_USERMEM: ::c_int = 6; -pub const HW_PAGESIZE: ::c_int = 7; -pub const HW_DISKNAMES: ::c_int = 8; -pub const HW_DISKSTATS: ::c_int = 9; -pub const HW_FLOATINGPT: ::c_int = 10; -pub const HW_MACHINE_ARCH: ::c_int = 11; -pub const HW_MACHINE_PLATFORM: ::c_int = 12; -pub const HW_SENSORS: ::c_int = 13; -pub const HW_MAXID: ::c_int = 14; -pub const USER_CS_PATH: ::c_int = 1; -pub const USER_BC_BASE_MAX: ::c_int = 2; -pub const USER_BC_DIM_MAX: ::c_int = 3; -pub const USER_BC_SCALE_MAX: ::c_int = 4; -pub const USER_BC_STRING_MAX: ::c_int = 5; -pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6; -pub const USER_EXPR_NEST_MAX: ::c_int = 7; -pub const USER_LINE_MAX: ::c_int = 8; -pub const USER_RE_DUP_MAX: ::c_int = 9; -pub const USER_POSIX2_VERSION: ::c_int = 10; -pub const USER_POSIX2_C_BIND: ::c_int = 11; -pub const USER_POSIX2_C_DEV: ::c_int = 12; -pub const USER_POSIX2_CHAR_TERM: ::c_int = 13; -pub const USER_POSIX2_FORT_DEV: ::c_int = 14; -pub const USER_POSIX2_FORT_RUN: ::c_int = 15; -pub const USER_POSIX2_LOCALEDEF: ::c_int = 16; -pub const USER_POSIX2_SW_DEV: ::c_int = 17; -pub const USER_POSIX2_UPE: ::c_int = 18; -pub const USER_STREAM_MAX: ::c_int = 19; -pub const USER_TZNAME_MAX: ::c_int = 20; -pub const USER_MAXID: ::c_int = 21; -pub const CTL_P1003_1B_ASYNCHRONOUS_IO: ::c_int = 1; -pub const CTL_P1003_1B_MAPPED_FILES: ::c_int = 2; -pub const CTL_P1003_1B_MEMLOCK: ::c_int = 3; -pub const CTL_P1003_1B_MEMLOCK_RANGE: ::c_int = 4; -pub const CTL_P1003_1B_MEMORY_PROTECTION: ::c_int = 5; -pub const CTL_P1003_1B_MESSAGE_PASSING: ::c_int = 6; -pub const CTL_P1003_1B_PRIORITIZED_IO: ::c_int = 7; -pub const CTL_P1003_1B_PRIORITY_SCHEDULING: ::c_int = 8; -pub const CTL_P1003_1B_REALTIME_SIGNALS: ::c_int = 9; -pub const CTL_P1003_1B_SEMAPHORES: ::c_int = 10; -pub const CTL_P1003_1B_FSYNC: ::c_int = 11; -pub const CTL_P1003_1B_SHARED_MEMORY_OBJECTS: ::c_int = 12; -pub const CTL_P1003_1B_SYNCHRONIZED_IO: ::c_int = 13; -pub const CTL_P1003_1B_TIMERS: ::c_int = 14; -pub const CTL_P1003_1B_AIO_LISTIO_MAX: ::c_int = 15; -pub const CTL_P1003_1B_AIO_MAX: ::c_int = 16; -pub const CTL_P1003_1B_AIO_PRIO_DELTA_MAX: ::c_int = 17; -pub const CTL_P1003_1B_DELAYTIMER_MAX: ::c_int = 18; -pub const CTL_P1003_1B_UNUSED1: ::c_int = 19; -pub const CTL_P1003_1B_PAGESIZE: ::c_int = 20; -pub const CTL_P1003_1B_RTSIG_MAX: ::c_int = 21; -pub const CTL_P1003_1B_SEM_NSEMS_MAX: ::c_int = 22; -pub const CTL_P1003_1B_SEM_VALUE_MAX: ::c_int = 23; -pub const CTL_P1003_1B_SIGQUEUE_MAX: ::c_int = 24; -pub const CTL_P1003_1B_TIMER_MAX: ::c_int = 25; -pub const CTL_P1003_1B_MAXID: ::c_int = 26; - -pub const CPUCTL_RSMSR: ::c_int = 0xc0106301; -pub const CPUCTL_WRMSR: ::c_int = 0xc0106302; -pub const CPUCTL_CPUID: ::c_int = 0xc0106303; -pub const CPUCTL_UPDATE: ::c_int = 0xc0106304; -pub const CPUCTL_MSRSBIT: ::c_int = 0xc0106305; -pub const CPUCTL_MSRCBIT: ::c_int = 0xc0106306; -pub const CPUCTL_CPUID_COUNT: ::c_int = 0xc0106307; - -pub const CPU_SETSIZE: ::size_t = ::mem::size_of::<::cpumask_t>() * 8; - -pub const EVFILT_READ: i16 = -1; -pub const EVFILT_WRITE: i16 = -2; -pub const EVFILT_AIO: i16 = -3; -pub const EVFILT_VNODE: i16 = -4; -pub const EVFILT_PROC: i16 = -5; -pub const EVFILT_SIGNAL: i16 = -6; -pub const EVFILT_TIMER: i16 = -7; -pub const EVFILT_EXCEPT: i16 = -8; -pub const EVFILT_USER: i16 = -9; -pub const EVFILT_FS: i16 = -10; - -pub const EV_ADD: u16 = 0x1; -pub const EV_DELETE: u16 = 0x2; -pub const EV_ENABLE: u16 = 0x4; -pub const EV_DISABLE: u16 = 0x8; -pub const EV_ONESHOT: u16 = 0x10; -pub const EV_CLEAR: u16 = 0x20; -pub const EV_RECEIPT: u16 = 0x40; -pub const EV_DISPATCH: u16 = 0x80; -pub const EV_NODATA: u16 = 0x1000; -pub const EV_FLAG1: u16 = 0x2000; -pub const EV_ERROR: u16 = 0x4000; -pub const EV_EOF: u16 = 0x8000; -pub const EV_HUP: u16 = 0x8000; -pub const EV_SYSFLAGS: u16 = 0xf000; - -pub const FIODNAME: ::c_ulong = 0x80106678; - -pub const NOTE_TRIGGER: u32 = 0x01000000; -pub const NOTE_FFNOP: u32 = 0x00000000; -pub const NOTE_FFAND: u32 = 0x40000000; -pub const NOTE_FFOR: u32 = 0x80000000; -pub const NOTE_FFCOPY: u32 = 0xc0000000; -pub const NOTE_FFCTRLMASK: u32 = 0xc0000000; -pub const NOTE_FFLAGSMASK: u32 = 0x00ffffff; -pub const NOTE_LOWAT: u32 = 0x00000001; -pub const NOTE_OOB: u32 = 0x00000002; -pub const NOTE_DELETE: u32 = 0x00000001; -pub const NOTE_WRITE: u32 = 0x00000002; -pub const NOTE_EXTEND: u32 = 0x00000004; -pub const NOTE_ATTRIB: u32 = 0x00000008; -pub const NOTE_LINK: u32 = 0x00000010; -pub const NOTE_RENAME: u32 = 0x00000020; -pub const NOTE_REVOKE: u32 = 0x00000040; -pub const NOTE_EXIT: u32 = 0x80000000; -pub const NOTE_FORK: u32 = 0x40000000; -pub const NOTE_EXEC: u32 = 0x20000000; -pub const NOTE_PDATAMASK: u32 = 0x000fffff; -pub const NOTE_PCTRLMASK: u32 = 0xf0000000; -pub const NOTE_TRACK: u32 = 0x00000001; -pub const NOTE_TRACKERR: u32 = 0x00000002; -pub const NOTE_CHILD: u32 = 0x00000004; - -pub const SO_SNDSPACE: ::c_int = 0x100a; -pub const SO_CPUHINT: ::c_int = 0x1030; -pub const SO_PASSCRED: ::c_int = 0x4000; - -pub const PT_FIRSTMACH: ::c_int = 32; - -pub const PROC_REAP_ACQUIRE: ::c_int = 0x0001; -pub const PROC_REAP_RELEASE: ::c_int = 0x0002; -pub const PROC_REAP_STATUS: ::c_int = 0x0003; -pub const PROC_PDEATHSIG_CTL: ::c_int = 0x0004; -pub const PROC_PDEATHSIG_STATUS: ::c_int = 0x0005; - -// https://github.com/DragonFlyBSD/DragonFlyBSD/blob/HEAD/sys/net/if.h#L101 -pub const IFF_UP: ::c_int = 0x1; // interface is up -pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid -pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging -pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net -pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link -pub const IFF_SMART: ::c_int = 0x20; // interface manages own routes -pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated -pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol -pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets -pub const IFF_OACTIVE_COMPAT: ::c_int = 0x400; // was transmission in progress -pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions -pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit -pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit -pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit -pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection -pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast - // was interface is in polling mode -pub const IFF_POLLING_COMPAT: ::c_int = 0x10000; -pub const IFF_PPROMISC: ::c_int = 0x20000; // user-requested promisc mode -pub const IFF_MONITOR: ::c_int = 0x40000; // user-requested monitor mode -pub const IFF_STATICARP: ::c_int = 0x80000; // static ARP -pub const IFF_NPOLLING: ::c_int = 0x100000; // interface is in polling mode -pub const IFF_IDIRECT: ::c_int = 0x200000; // direct input - -// -// sys/netinet/in.h -// Protocols (RFC 1700) -// NOTE: These are in addition to the constants defined in src/unix/mod.rs - -// IPPROTO_IP defined in src/unix/mod.rs -/// IP6 hop-by-hop options -pub const IPPROTO_HOPOPTS: ::c_int = 0; -// IPPROTO_ICMP defined in src/unix/mod.rs -/// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; -/// gateway^2 (deprecated) -pub const IPPROTO_GGP: ::c_int = 3; -/// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; -// IPPROTO_TCP defined in src/unix/mod.rs -/// Stream protocol II. -pub const IPPROTO_ST: ::c_int = 7; -/// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; -/// private interior gateway -pub const IPPROTO_PIGP: ::c_int = 9; -/// BBN RCC Monitoring -pub const IPPROTO_RCCMON: ::c_int = 10; -/// network voice protocol -pub const IPPROTO_NVPII: ::c_int = 11; -/// pup -pub const IPPROTO_PUP: ::c_int = 12; -/// Argus -pub const IPPROTO_ARGUS: ::c_int = 13; -/// EMCON -pub const IPPROTO_EMCON: ::c_int = 14; -/// Cross Net Debugger -pub const IPPROTO_XNET: ::c_int = 15; -/// Chaos -pub const IPPROTO_CHAOS: ::c_int = 16; -// IPPROTO_UDP defined in src/unix/mod.rs -/// Multiplexing -pub const IPPROTO_MUX: ::c_int = 18; -/// DCN Measurement Subsystems -pub const IPPROTO_MEAS: ::c_int = 19; -/// Host Monitoring -pub const IPPROTO_HMP: ::c_int = 20; -/// Packet Radio Measurement -pub const IPPROTO_PRM: ::c_int = 21; -/// xns idp -pub const IPPROTO_IDP: ::c_int = 22; -/// Trunk-1 -pub const IPPROTO_TRUNK1: ::c_int = 23; -/// Trunk-2 -pub const IPPROTO_TRUNK2: ::c_int = 24; -/// Leaf-1 -pub const IPPROTO_LEAF1: ::c_int = 25; -/// Leaf-2 -pub const IPPROTO_LEAF2: ::c_int = 26; -/// Reliable Data -pub const IPPROTO_RDP: ::c_int = 27; -/// Reliable Transaction -pub const IPPROTO_IRTP: ::c_int = 28; -/// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; -/// Bulk Data Transfer -pub const IPPROTO_BLT: ::c_int = 30; -/// Network Services -pub const IPPROTO_NSP: ::c_int = 31; -/// Merit Internodal -pub const IPPROTO_INP: ::c_int = 32; -/// Sequential Exchange -pub const IPPROTO_SEP: ::c_int = 33; -/// Third Party Connect -pub const IPPROTO_3PC: ::c_int = 34; -/// InterDomain Policy Routing -pub const IPPROTO_IDPR: ::c_int = 35; -/// XTP -pub const IPPROTO_XTP: ::c_int = 36; -/// Datagram Delivery -pub const IPPROTO_DDP: ::c_int = 37; -/// Control Message Transport -pub const IPPROTO_CMTP: ::c_int = 38; -/// TP++ Transport -pub const IPPROTO_TPXX: ::c_int = 39; -/// IL transport protocol -pub const IPPROTO_IL: ::c_int = 40; -// IPPROTO_IPV6 defined in src/unix/mod.rs -/// Source Demand Routing -pub const IPPROTO_SDRP: ::c_int = 42; -/// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; -/// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; -/// InterDomain Routing -pub const IPPROTO_IDRP: ::c_int = 45; -/// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; -/// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; -/// Mobile Host Routing -pub const IPPROTO_MHRP: ::c_int = 48; -/// BHA -pub const IPPROTO_BHA: ::c_int = 49; -/// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; -/// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; -/// Integ. Net Layer Security -pub const IPPROTO_INLSP: ::c_int = 52; -/// IP with encryption -pub const IPPROTO_SWIPE: ::c_int = 53; -/// Next Hop Resolution -pub const IPPROTO_NHRP: ::c_int = 54; -/// IP Mobility -pub const IPPROTO_MOBILE: ::c_int = 55; -/// Transport Layer Security -pub const IPPROTO_TLSP: ::c_int = 56; -/// SKIP -pub const IPPROTO_SKIP: ::c_int = 57; -// IPPROTO_ICMPV6 defined in src/unix/mod.rs -/// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; -/// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; -/// any host internal protocol -pub const IPPROTO_AHIP: ::c_int = 61; -/// CFTP -pub const IPPROTO_CFTP: ::c_int = 62; -/// "hello" routing protocol -pub const IPPROTO_HELLO: ::c_int = 63; -/// SATNET/Backroom EXPAK -pub const IPPROTO_SATEXPAK: ::c_int = 64; -/// Kryptolan -pub const IPPROTO_KRYPTOLAN: ::c_int = 65; -/// Remote Virtual Disk -pub const IPPROTO_RVD: ::c_int = 66; -/// Pluribus Packet Core -pub const IPPROTO_IPPC: ::c_int = 67; -/// Any distributed FS -pub const IPPROTO_ADFS: ::c_int = 68; -/// Satnet Monitoring -pub const IPPROTO_SATMON: ::c_int = 69; -/// VISA Protocol -pub const IPPROTO_VISA: ::c_int = 70; -/// Packet Core Utility -pub const IPPROTO_IPCV: ::c_int = 71; -/// Comp. Prot. Net. Executive -pub const IPPROTO_CPNX: ::c_int = 72; -/// Comp. Prot. HeartBeat -pub const IPPROTO_CPHB: ::c_int = 73; -/// Wang Span Network -pub const IPPROTO_WSN: ::c_int = 74; -/// Packet Video Protocol -pub const IPPROTO_PVP: ::c_int = 75; -/// BackRoom SATNET Monitoring -pub const IPPROTO_BRSATMON: ::c_int = 76; -/// Sun net disk proto (temp.) -pub const IPPROTO_ND: ::c_int = 77; -/// WIDEBAND Monitoring -pub const IPPROTO_WBMON: ::c_int = 78; -/// WIDEBAND EXPAK -pub const IPPROTO_WBEXPAK: ::c_int = 79; -/// ISO cnlp -pub const IPPROTO_EON: ::c_int = 80; -/// VMTP -pub const IPPROTO_VMTP: ::c_int = 81; -/// Secure VMTP -pub const IPPROTO_SVMTP: ::c_int = 82; -/// Banyon VINES -pub const IPPROTO_VINES: ::c_int = 83; -/// TTP -pub const IPPROTO_TTP: ::c_int = 84; -/// NSFNET-IGP -pub const IPPROTO_IGP: ::c_int = 85; -/// dissimilar gateway prot. -pub const IPPROTO_DGP: ::c_int = 86; -/// TCF -pub const IPPROTO_TCF: ::c_int = 87; -/// Cisco/GXS IGRP -pub const IPPROTO_IGRP: ::c_int = 88; -/// OSPFIGP -pub const IPPROTO_OSPFIGP: ::c_int = 89; -/// Strite RPC protocol -pub const IPPROTO_SRPC: ::c_int = 90; -/// Locus Address Resoloution -pub const IPPROTO_LARP: ::c_int = 91; -/// Multicast Transport -pub const IPPROTO_MTP: ::c_int = 92; -/// AX.25 Frames -pub const IPPROTO_AX25: ::c_int = 93; -/// IP encapsulated in IP -pub const IPPROTO_IPEIP: ::c_int = 94; -/// Mobile Int.ing control -pub const IPPROTO_MICP: ::c_int = 95; -/// Semaphore Comm. security -pub const IPPROTO_SCCSP: ::c_int = 96; -/// Ethernet IP encapsulation -pub const IPPROTO_ETHERIP: ::c_int = 97; -/// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; -/// any private encr. scheme -pub const IPPROTO_APES: ::c_int = 99; -/// GMTP -pub const IPPROTO_GMTP: ::c_int = 100; -/// payload compression (IPComp) -pub const IPPROTO_IPCOMP: ::c_int = 108; - -/* 101-254: Partly Unassigned */ -/// Protocol Independent Mcast -pub const IPPROTO_PIM: ::c_int = 103; -/// CARP -pub const IPPROTO_CARP: ::c_int = 112; -/// PGM -pub const IPPROTO_PGM: ::c_int = 113; -/// PFSYNC -pub const IPPROTO_PFSYNC: ::c_int = 240; - -/* 255: Reserved */ -/* BSD Private, local use, namespace incursion, no longer used */ -/// divert pseudo-protocol -pub const IPPROTO_DIVERT: ::c_int = 254; -pub const IPPROTO_MAX: ::c_int = 256; -/// last return value of *_input(), meaning "all job for this pkt is done". -pub const IPPROTO_DONE: ::c_int = 257; - -/// Used by RSS: the layer3 protocol is unknown -pub const IPPROTO_UNKNOWN: ::c_int = 258; - -// sys/netinet/tcp.h -pub const TCP_SIGNATURE_ENABLE: ::c_int = 16; -pub const TCP_KEEPINIT: ::c_int = 32; -pub const TCP_FASTKEEP: ::c_int = 128; - -pub const AF_BLUETOOTH: ::c_int = 33; -pub const AF_MPLS: ::c_int = 34; -pub const AF_IEEE80211: ::c_int = 35; - -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; - -pub const NET_RT_DUMP: ::c_int = 1; -pub const NET_RT_FLAGS: ::c_int = 2; -pub const NET_RT_IFLIST: ::c_int = 3; -pub const NET_RT_MAXID: ::c_int = 4; - -pub const SOMAXOPT_SIZE: ::c_int = 65536; - -pub const MSG_UNUSED09: ::c_int = 0x00000200; -pub const MSG_NOSIGNAL: ::c_int = 0x00000400; -pub const MSG_SYNC: ::c_int = 0x00000800; -pub const MSG_CMSG_CLOEXEC: ::c_int = 0x00001000; -pub const MSG_FBLOCKING: ::c_int = 0x00010000; -pub const MSG_FNONBLOCKING: ::c_int = 0x00020000; -pub const MSG_FMASK: ::c_int = 0xFFFF0000; - -// sys/mount.h -pub const MNT_NODEV: ::c_int = 0x00000010; -pub const MNT_AUTOMOUNTED: ::c_int = 0x00000020; -pub const MNT_TRIM: ::c_int = 0x01000000; -pub const MNT_LOCAL: ::c_int = 0x00001000; -pub const MNT_QUOTA: ::c_int = 0x00002000; -pub const MNT_ROOTFS: ::c_int = 0x00004000; -pub const MNT_USER: ::c_int = 0x00008000; -pub const MNT_IGNORE: ::c_int = 0x00800000; - -// utmpx entry types -pub const EMPTY: ::c_short = 0; -pub const RUN_LVL: ::c_short = 1; -pub const BOOT_TIME: ::c_short = 2; -pub const OLD_TIME: ::c_short = 3; -pub const NEW_TIME: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const USER_PROCESS: ::c_short = 7; -pub const DEAD_PROCESS: ::c_short = 8; -pub const ACCOUNTING: ::c_short = 9; -pub const SIGNATURE: ::c_short = 10; -pub const DOWNTIME: ::c_short = 11; -// utmpx database types -pub const UTX_DB_UTMPX: ::c_uint = 0; -pub const UTX_DB_WTMPX: ::c_uint = 1; -pub const UTX_DB_LASTLOG: ::c_uint = 2; -pub const _UTX_LINESIZE: usize = 32; -pub const _UTX_USERSIZE: usize = 32; -pub const _UTX_IDSIZE: usize = 4; -pub const _UTX_HOSTSIZE: usize = 256; - -pub const LC_COLLATE_MASK: ::c_int = 1 << 0; -pub const LC_CTYPE_MASK: ::c_int = 1 << 1; -pub const LC_MONETARY_MASK: ::c_int = 1 << 2; -pub const LC_NUMERIC_MASK: ::c_int = 1 << 3; -pub const LC_TIME_MASK: ::c_int = 1 << 4; -pub const LC_MESSAGES_MASK: ::c_int = 1 << 5; -pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK - | LC_CTYPE_MASK - | LC_MESSAGES_MASK - | LC_MONETARY_MASK - | LC_NUMERIC_MASK - | LC_TIME_MASK; - -pub const TIOCSIG: ::c_ulong = 0x2000745f; -pub const BTUARTDISC: ::c_int = 0x7; -pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40107458; -pub const TIOCISPTMASTER: ::c_ulong = 0x20007455; -pub const TIOCMODG: ::c_ulong = 0x40047403; -pub const TIOCMODS: ::c_ulong = 0x80047404; -pub const TIOCREMOTE: ::c_ulong = 0x80047469; - -// Constants used by "at" family of system calls. -pub const AT_FDCWD: ::c_int = 0xFFFAFDCD; // invalid file descriptor -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 1; -pub const AT_REMOVEDIR: ::c_int = 2; -pub const AT_EACCESS: ::c_int = 4; -pub const AT_SYMLINK_FOLLOW: ::c_int = 8; - -pub const VCHECKPT: usize = 19; - -pub const _PC_2_SYMLINKS: ::c_int = 22; -pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 23; - -pub const _SC_V7_ILP32_OFF32: ::c_int = 122; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 123; -pub const _SC_V7_LP64_OFF64: ::c_int = 124; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 125; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 126; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 127; - -pub const WCONTINUED: ::c_int = 0x4; -pub const WSTOPPED: ::c_int = 0x2; -pub const WNOWAIT: ::c_int = 0x8; -pub const WEXITED: ::c_int = 0x10; -pub const WTRAPPED: ::c_int = 0x20; - -// Similar to FreeBSD, only the standardized ones are exposed. -// There are more. -pub const P_PID: idtype_t = 0; -pub const P_PGID: idtype_t = 2; -pub const P_ALL: idtype_t = 7; - -// Values for struct rtprio (type_ field) -pub const RTP_PRIO_REALTIME: ::c_ushort = 0; -pub const RTP_PRIO_NORMAL: ::c_ushort = 1; -pub const RTP_PRIO_IDLE: ::c_ushort = 2; -pub const RTP_PRIO_THREAD: ::c_ushort = 3; - -// Flags for chflags(2) -pub const UF_NOHISTORY: ::c_ulong = 0x00000040; -pub const UF_CACHE: ::c_ulong = 0x00000080; -pub const UF_XLINK: ::c_ulong = 0x00000100; -pub const SF_NOHISTORY: ::c_ulong = 0x00400000; -pub const SF_CACHE: ::c_ulong = 0x00800000; -pub const SF_XLINK: ::c_ulong = 0x01000000; - -// timespec constants -pub const UTIME_OMIT: c_long = -2; -pub const UTIME_NOW: c_long = -1; - -pub const MINCORE_SUPER: ::c_int = 0x20; - -// kinfo_proc constants -pub const MAXCOMLEN: usize = 16; -pub const MAXLOGNAME: usize = 33; -pub const NGROUPS: usize = 16; - -pub const RB_PAUSE: ::c_int = 0x40000; -pub const RB_VIDEO: ::c_int = 0x20000000; - -const_fn! { - {const} fn _CMSG_ALIGN(n: usize) -> usize { - (n + (::mem::size_of::<::c_long>() - 1)) & !(::mem::size_of::<::c_long>() - 1) - } -} - -f! { - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) - } - - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - (_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) + length as usize) - as ::c_uint - } - - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) - -> *mut ::cmsghdr - { - let next = cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize) - + _CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; - if next <= max { - (cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize)) - as *mut ::cmsghdr - } else { - 0 as *mut ::cmsghdr - } - } - - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) + - _CMSG_ALIGN(length as usize)) as ::c_uint - } - - pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { - for slot in cpuset.ary.iter_mut() { - *slot = 0; - } - } - - pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let (idx, offset) = ((cpu >> 6) & 3, cpu & 63); - cpuset.ary[idx] |= 1 << offset; - () - } - - pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let (idx, offset) = ((cpu >> 6) & 3, cpu & 63); - cpuset.ary[idx] &= !(1 << offset); - () - } - - pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let (idx, offset) = ((cpu >> 6) & 3, cpu & 63); - 0 != cpuset.ary[idx] & (1 << offset) - } - - pub fn major(dev: ::dev_t) -> ::c_int { - ((dev >> 8) & 0xff) as ::c_int - } - - pub fn minor(dev: ::dev_t) -> ::c_int { - (dev & 0xffff00ff) as ::c_int - } -} - -safe_f! { - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { - (status & 0o177) != 0o177 && (status & 0o177) != 0 - } - - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; - let mut dev = 0; - dev |= major << 8; - dev |= minor; - dev - } -} - -extern "C" { - pub fn __errno_location() -> *mut ::c_int; - pub fn setgrent(); - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - - pub fn setutxdb(_type: ::c_uint, file: *mut ::c_char) -> ::c_int; - - pub fn aio_waitcomplete(iocbp: *mut *mut aiocb, timeout: *mut ::timespec) -> ::c_int; - - pub fn devname_r( - dev: ::dev_t, - mode: ::mode_t, - buf: *mut ::c_char, - len: ::size_t, - ) -> *mut ::c_char; - - pub fn waitid( - idtype: idtype_t, - id: ::id_t, - infop: *mut ::siginfo_t, - options: ::c_int, - ) -> ::c_int; - - pub fn freelocale(loc: ::locale_t); - - pub fn lwp_rtprio( - function: ::c_int, - pid: ::pid_t, - lwpid: lwpid_t, - rtp: *mut super::rtprio, - ) -> ::c_int; - - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; - pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; - pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> ::c_int; - - pub fn sched_getaffinity(pid: ::pid_t, cpusetsize: ::size_t, mask: *mut cpu_set_t) -> ::c_int; - pub fn sched_setaffinity(pid: ::pid_t, cpusetsize: ::size_t, mask: *const cpu_set_t) - -> ::c_int; - pub fn sched_getcpu() -> ::c_int; - pub fn setproctitle(fmt: *const ::c_char, ...); - - pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; - pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; - pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; - pub fn procctl(idtype: ::idtype_t, id: ::id_t, cmd: ::c_int, data: *mut ::c_void) -> ::c_int; - - pub fn updwtmpx(file: *const ::c_char, ut: *const utmpx) -> ::c_int; - pub fn getlastlogx(fname: *const ::c_char, uid: ::uid_t, ll: *mut lastlogx) -> *mut lastlogx; - pub fn updlastlogx(fname: *const ::c_char, uid: ::uid_t, ll: *mut lastlogx) -> ::c_int; - pub fn getutxuser(name: *const ::c_char) -> utmpx; - pub fn utmpxname(file: *const ::c_char) -> ::c_int; - - pub fn sys_checkpoint(tpe: ::c_int, fd: ::c_int, pid: ::pid_t, retval: ::c_int) -> ::c_int; - - pub fn umtx_sleep(ptr: *const ::c_int, value: ::c_int, timeout: ::c_int) -> ::c_int; - pub fn umtx_wakeup(ptr: *const ::c_int, count: ::c_int) -> ::c_int; - - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; - pub fn basename(path: *mut ::c_char) -> *mut ::c_char; -} - -#[link(name = "rt")] -extern "C" { - pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; - pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; - pub fn aio_suspend( - aiocb_list: *const *const aiocb, - nitems: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; - pub fn lio_listio( - mode: ::c_int, - aiocb_list: *const *mut aiocb, - nitems: ::c_int, - sevp: *mut sigevent, - ) -> ::c_int; - - pub fn reallocf(ptr: *mut ::c_void, size: ::size_t) -> *mut ::c_void; - pub fn freezero(ptr: *mut ::c_void, size: ::size_t); -} - -#[link(name = "kvm")] -extern "C" { - pub fn kvm_vm_map_entry_first( - kvm: *mut ::kvm_t, - map: vm_map_t, - entry: vm_map_entry_t, - ) -> vm_map_entry_t; - pub fn kvm_vm_map_entry_next( - kvm: *mut ::kvm_t, - map: vm_map_entry_t, - entry: vm_map_entry_t, - ) -> vm_map_entry_t; -} - -cfg_if! { - if #[cfg(libc_thread_local)] { - mod errno; - pub use self::errno::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/aarch64.rs deleted file mode 100644 index e8be8815c..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/aarch64.rs +++ /dev/null @@ -1,146 +0,0 @@ -pub type c_char = u8; -pub type c_long = i64; -pub type c_ulong = u64; -pub type wchar_t = u32; -pub type time_t = i64; -pub type suseconds_t = i64; -pub type register_t = i64; - -s_no_extra_traits! { - pub struct gpregs { - pub gp_x: [::register_t; 30], - pub gp_lr: ::register_t, - pub gp_sp: ::register_t, - pub gp_elr: ::register_t, - pub gp_spsr: u32, - pub gp_pad: ::c_int, - } - - pub struct fpregs { - pub fp_q: u128, - pub fp_sr: u32, - pub fp_cr: u32, - pub fp_flags: ::c_int, - pub fp_pad: ::c_int, - } - - pub struct mcontext_t { - pub mc_gpregs: gpregs, - pub mc_fpregs: fpregs, - pub mc_flags: ::c_int, - pub mc_pad: ::c_int, - pub mc_spare: [u64; 8], - } -} - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for gpregs { - fn eq(&self, other: &gpregs) -> bool { - self.gp_x.iter().zip(other.gp_x.iter()).all(|(a, b)| a == b) && - self.gp_lr == other.gp_lr && - self.gp_sp == other.gp_sp && - self.gp_elr == other.gp_elr && - self.gp_spsr == other.gp_spsr && - self.gp_pad == other.gp_pad - } - } - impl Eq for gpregs {} - impl ::fmt::Debug for gpregs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("gpregs") - .field("gp_x", &self.gp_x) - .field("gp_lr", &self.gp_lr) - .field("gp_sp", &self.gp_sp) - .field("gp_elr", &self.gp_elr) - .field("gp_spsr", &self.gp_spsr) - .field("gp_pad", &self.gp_pad) - .finish() - } - } - impl ::hash::Hash for gpregs { - fn hash(&self, state: &mut H) { - self.gp_x.hash(state); - self.gp_lr.hash(state); - self.gp_sp.hash(state); - self.gp_elr.hash(state); - self.gp_spsr.hash(state); - self.gp_pad.hash(state); - } - } - impl PartialEq for fpregs { - fn eq(&self, other: &fpregs) -> bool { - self.fp_q == other.fp_q && - self.fp_sr == other.fp_sr && - self.fp_cr == other.fp_cr && - self.fp_flags == other.fp_flags && - self.fp_pad == other.fp_pad - } - } - impl Eq for fpregs {} - impl ::fmt::Debug for fpregs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("fpregs") - .field("fp_q", &self.fp_q) - .field("fp_sr", &self.fp_sr) - .field("fp_cr", &self.fp_cr) - .field("fp_flags", &self.fp_flags) - .field("fp_pad", &self.fp_pad) - .finish() - } - } - impl ::hash::Hash for fpregs { - fn hash(&self, state: &mut H) { - self.fp_q.hash(state); - self.fp_sr.hash(state); - self.fp_cr.hash(state); - self.fp_flags.hash(state); - self.fp_pad.hash(state); - } - } - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.mc_gpregs == other.mc_gpregs && - self.mc_fpregs == other.mc_fpregs && - self.mc_flags == other.mc_flags && - self.mc_pad == other.mc_pad && - self.mc_spare.iter().zip(other.mc_spare.iter()).all(|(a, b)| a == b) - } - } - impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mcontext_t") - .field("mc_gpregs", &self.mc_gpregs) - .field("mc_fpregs", &self.mc_fpregs) - .field("mc_flags", &self.mc_flags) - .field("mc_pad", &self.mc_pad) - .field("mc_spare", &self.mc_spare) - .finish() - } - } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.mc_gpregs.hash(state); - self.mc_fpregs.hash(state); - self.mc_flags.hash(state); - self.mc_pad.hash(state); - self.mc_spare.hash(state); - } - } - } -} - -pub const MAP_32BIT: ::c_int = 0x00080000; -pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/arm.rs deleted file mode 100644 index 300b3dd45..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/arm.rs +++ /dev/null @@ -1,50 +0,0 @@ -pub type c_char = u8; -pub type c_long = i32; -pub type c_ulong = u32; -pub type wchar_t = u32; -pub type time_t = i64; -pub type suseconds_t = i32; -pub type register_t = i32; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_atime_pad: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_mtime_pad: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_ctime_pad: ::c_long, - pub st_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: ::fflags_t, - pub st_gen: u32, - pub st_lspare: i32, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, - pub st_birthtime_pad: ::c_long, - } -} - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 4 - 1; - } -} -pub const MAP_32BIT: ::c_int = 0x00080000; -pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs deleted file mode 100644 index f32128f77..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs +++ /dev/null @@ -1,32 +0,0 @@ -#[repr(C)] -#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] -pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: ::fflags_t, - pub st_gen: u32, - pub st_lspare: i32, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, -} - -impl ::Copy for ::stat {} -impl ::Clone for ::stat { - fn clone(&self) -> ::stat { - *self - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs deleted file mode 100644 index de34069ea..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ /dev/null @@ -1,488 +0,0 @@ -// APIs that were changed after FreeBSD 11 - -// The type of `nlink_t` changed from `u16` to `u64` in FreeBSD 12: -pub type nlink_t = u16; -// Type of `dev_t` changed from `u32` to `u64` in FreeBSD 12: -pub type dev_t = u32; -// Type of `ino_t` changed from `unsigned int` to `unsigned long` in FreeBSD 12: -pub type ino_t = u32; - -s! { - pub struct kevent { - pub ident: ::uintptr_t, - pub filter: ::c_short, - pub flags: ::c_ushort, - pub fflags: ::c_uint, - pub data: ::intptr_t, - pub udata: *mut ::c_void, - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - // Type of shm_nattc changed from `int` to `shmatt_t` (aka `unsigned - // int`) in FreeBSD 12: - pub shm_nattch: ::c_int, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - } - - pub struct kinfo_proc { - /// Size of this structure. - pub ki_structsize: ::c_int, - /// Reserved: layout identifier. - pub ki_layout: ::c_int, - /// Address of command arguments. - pub ki_args: *mut ::pargs, - // This is normally "struct proc". - /// Address of proc. - pub ki_paddr: *mut ::c_void, - // This is normally "struct user". - /// Kernel virtual address of u-area. - pub ki_addr: *mut ::c_void, - // This is normally "struct vnode". - /// Pointer to trace file. - pub ki_tracep: *mut ::c_void, - // This is normally "struct vnode". - /// Pointer to executable file. - pub ki_textvp: *mut ::c_void, - // This is normally "struct filedesc". - /// Pointer to open file info. - pub ki_fd: *mut ::c_void, - // This is normally "struct vmspace". - /// Pointer to kernel vmspace struct. - pub ki_vmspace: *mut ::c_void, - /// Sleep address. - pub ki_wchan: *mut ::c_void, - /// Process identifier. - pub ki_pid: ::pid_t, - /// Parent process ID. - pub ki_ppid: ::pid_t, - /// Process group ID. - pub ki_pgid: ::pid_t, - /// tty process group ID. - pub ki_tpgid: ::pid_t, - /// Process session ID. - pub ki_sid: ::pid_t, - /// Terminal session ID. - pub ki_tsid: ::pid_t, - /// Job control counter. - pub ki_jobc: ::c_short, - /// Unused (just here for alignment). - pub ki_spare_short1: ::c_short, - /// Controlling tty dev. - pub ki_tdev: ::dev_t, - /// Signals arrived but not delivered. - pub ki_siglist: ::sigset_t, - /// Current signal mask. - pub ki_sigmask: ::sigset_t, - /// Signals being ignored. - pub ki_sigignore: ::sigset_t, - /// Signals being caught by user. - pub ki_sigcatch: ::sigset_t, - /// Effective user ID. - pub ki_uid: ::uid_t, - /// Real user ID. - pub ki_ruid: ::uid_t, - /// Saved effective user ID. - pub ki_svuid: ::uid_t, - /// Real group ID. - pub ki_rgid: ::gid_t, - /// Saved effective group ID. - pub ki_svgid: ::gid_t, - /// Number of groups. - pub ki_ngroups: ::c_short, - /// Unused (just here for alignment). - pub ki_spare_short2: ::c_short, - /// Groups. - pub ki_groups: [::gid_t; ::KI_NGROUPS], - /// Virtual size. - pub ki_size: ::vm_size_t, - /// Current resident set size in pages. - pub ki_rssize: ::segsz_t, - /// Resident set size before last swap. - pub ki_swrss: ::segsz_t, - /// Text size (pages) XXX. - pub ki_tsize: ::segsz_t, - /// Data size (pages) XXX. - pub ki_dsize: ::segsz_t, - /// Stack size (pages). - pub ki_ssize: ::segsz_t, - /// Exit status for wait & stop signal. - pub ki_xstat: ::u_short, - /// Accounting flags. - pub ki_acflag: ::u_short, - /// %cpu for process during `ki_swtime`. - pub ki_pctcpu: ::fixpt_t, - /// Time averaged value of `ki_cpticks`. - pub ki_estcpu: ::u_int, - /// Time since last blocked. - pub ki_slptime: ::u_int, - /// Time swapped in or out. - pub ki_swtime: ::u_int, - /// Number of copy-on-write faults. - pub ki_cow: ::u_int, - /// Real time in microsec. - pub ki_runtime: u64, - /// Starting time. - pub ki_start: ::timeval, - /// Time used by process children. - pub ki_childtime: ::timeval, - /// P_* flags. - pub ki_flag: ::c_long, - /// KI_* flags (below). - pub ki_kiflag: ::c_long, - /// Kernel trace points. - pub ki_traceflag: ::c_int, - /// S* process status. - pub ki_stat: ::c_char, - /// Process "nice" value. - pub ki_nice: i8, // signed char - /// Process lock (prevent swap) count. - pub ki_lock: ::c_char, - /// Run queue index. - pub ki_rqindex: ::c_char, - /// Which cpu we are on. - pub ki_oncpu_old: ::c_uchar, - /// Last cpu we were on. - pub ki_lastcpu_old: ::c_uchar, - /// Thread name. - pub ki_tdname: [::c_char; ::TDNAMLEN + 1], - /// Wchan message. - pub ki_wmesg: [::c_char; ::WMESGLEN + 1], - /// Setlogin name. - pub ki_login: [::c_char; ::LOGNAMELEN + 1], - /// Lock name. - pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], - /// Command name. - pub ki_comm: [::c_char; ::COMMLEN + 1], - /// Emulation name. - pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], - /// Login class. - pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], - /// More thread name. - pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], - /// Spare string space. - pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq - /// Spare room for growth. - pub ki_spareints: [::c_int; ::KI_NSPARE_INT], - /// Which cpu we are on. - pub ki_oncpu: ::c_int, - /// Last cpu we were on. - pub ki_lastcpu: ::c_int, - /// PID of tracing process. - pub ki_tracer: ::c_int, - /// P2_* flags. - pub ki_flag2: ::c_int, - /// Default FIB number. - pub ki_fibnum: ::c_int, - /// Credential flags. - pub ki_cr_flags: ::u_int, - /// Process jail ID. - pub ki_jid: ::c_int, - /// Number of threads in total. - pub ki_numthreads: ::c_int, - /// Thread ID. - pub ki_tid: ::lwpid_t, - /// Process priority. - pub ki_pri: ::priority, - /// Process rusage statistics. - pub ki_rusage: ::rusage, - /// rusage of children processes. - pub ki_rusage_ch: ::rusage, - // This is normally "struct pcb". - /// Kernel virtual addr of pcb. - pub ki_pcb: *mut ::c_void, - /// Kernel virtual addr of stack. - pub ki_kstack: *mut ::c_void, - /// User convenience pointer. - pub ki_udata: *mut ::c_void, - // This is normally "struct thread". - pub ki_tdaddr: *mut ::c_void, - pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR], - pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG], - /// PS_* flags. - pub ki_sflag: ::c_long, - /// kthread flag. - pub ki_tdflags: ::c_long, - } -} - -s_no_extra_traits! { - pub struct dirent { - pub d_fileno: ::ino_t, - pub d_reclen: u16, - pub d_type: u8, - // Type of `d_namlen` changed from `char` to `u16` in FreeBSD 12: - pub d_namlen: u8, - pub d_name: [::c_char; 256], - } - - pub struct statfs { - pub f_version: u32, - pub f_type: u32, - pub f_flags: u64, - pub f_bsize: u64, - pub f_iosize: u64, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: i64, - pub f_files: u64, - pub f_ffree: i64, - pub f_syncwrites: u64, - pub f_asyncwrites: u64, - pub f_syncreads: u64, - pub f_asyncreads: u64, - f_spare: [u64; 10], - pub f_namemax: u32, - pub f_owner: ::uid_t, - pub f_fsid: ::fsid_t, - f_charspare: [::c_char; 80], - pub f_fstypename: [::c_char; 16], - // Array length changed from 88 to 1024 in FreeBSD 12: - pub f_mntfromname: [::c_char; 88], - // Array length changed from 88 to 1024 in FreeBSD 12: - pub f_mntonname: [::c_char; 88], - } - - pub struct vnstat { - pub vn_fileid: u64, - pub vn_size: u64, - pub vn_mntdir: *mut ::c_char, - pub vn_dev: u32, - pub vn_fsid: u32, - pub vn_type: ::c_int, - pub vn_mode: u16, - pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for statfs { - fn eq(&self, other: &statfs) -> bool { - self.f_version == other.f_version - && self.f_type == other.f_type - && self.f_flags == other.f_flags - && self.f_bsize == other.f_bsize - && self.f_iosize == other.f_iosize - && self.f_blocks == other.f_blocks - && self.f_bfree == other.f_bfree - && self.f_bavail == other.f_bavail - && self.f_files == other.f_files - && self.f_ffree == other.f_ffree - && self.f_syncwrites == other.f_syncwrites - && self.f_asyncwrites == other.f_asyncwrites - && self.f_syncreads == other.f_syncreads - && self.f_asyncreads == other.f_asyncreads - && self.f_namemax == other.f_namemax - && self.f_owner == other.f_owner - && self.f_fsid == other.f_fsid - && self.f_fstypename == other.f_fstypename - && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a,b)| a == b) - && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("statfs") - .field("f_bsize", &self.f_bsize) - .field("f_iosize", &self.f_iosize) - .field("f_blocks", &self.f_blocks) - .field("f_bfree", &self.f_bfree) - .field("f_bavail", &self.f_bavail) - .field("f_files", &self.f_files) - .field("f_ffree", &self.f_ffree) - .field("f_syncwrites", &self.f_syncwrites) - .field("f_asyncwrites", &self.f_asyncwrites) - .field("f_syncreads", &self.f_syncreads) - .field("f_asyncreads", &self.f_asyncreads) - .field("f_namemax", &self.f_namemax) - .field("f_owner", &self.f_owner) - .field("f_fsid", &self.f_fsid) - .field("f_fstypename", &self.f_fstypename) - .field("f_mntfromname", &&self.f_mntfromname[..]) - .field("f_mntonname", &&self.f_mntonname[..]) - .finish() - } - } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { - self.f_version.hash(state); - self.f_type.hash(state); - self.f_flags.hash(state); - self.f_bsize.hash(state); - self.f_iosize.hash(state); - self.f_blocks.hash(state); - self.f_bfree.hash(state); - self.f_bavail.hash(state); - self.f_files.hash(state); - self.f_ffree.hash(state); - self.f_syncwrites.hash(state); - self.f_asyncwrites.hash(state); - self.f_syncreads.hash(state); - self.f_asyncreads.hash(state); - self.f_namemax.hash(state); - self.f_owner.hash(state); - self.f_fsid.hash(state); - self.f_fstypename.hash(state); - self.f_mntfromname.hash(state); - self.f_mntonname.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_fileno == other.d_fileno - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self.d_namlen == other.d_namlen - && self - .d_name[..self.d_namlen as _] - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_fileno", &self.d_fileno) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - .field("d_namlen", &self.d_namlen) - .field("d_name", &&self.d_name[..self.d_namlen as _]) - .finish() - } - } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_fileno.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_namlen.hash(state); - self.d_name[..self.d_namlen as _].hash(state); - } - } - - impl PartialEq for vnstat { - fn eq(&self, other: &vnstat) -> bool { - let self_vn_devname: &[::c_char] = &self.vn_devname; - let other_vn_devname: &[::c_char] = &other.vn_devname; - - self.vn_fileid == other.vn_fileid && - self.vn_size == other.vn_size && - self.vn_mntdir == other.vn_mntdir && - self.vn_dev == other.vn_dev && - self.vn_fsid == other.vn_fsid && - self.vn_type == other.vn_type && - self.vn_mode == other.vn_mode && - self_vn_devname == other_vn_devname - } - } - impl Eq for vnstat {} - impl ::fmt::Debug for vnstat { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let self_vn_devname: &[::c_char] = &self.vn_devname; - - f.debug_struct("vnstat") - .field("vn_fileid", &self.vn_fileid) - .field("vn_size", &self.vn_size) - .field("vn_mntdir", &self.vn_mntdir) - .field("vn_dev", &self.vn_dev) - .field("vn_fsid", &self.vn_fsid) - .field("vn_type", &self.vn_type) - .field("vn_mode", &self.vn_mode) - .field("vn_devname", &self_vn_devname) - .finish() - } - } - impl ::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { - let self_vn_devname: &[::c_char] = &self.vn_devname; - - self.vn_fileid.hash(state); - self.vn_size.hash(state); - self.vn_mntdir.hash(state); - self.vn_dev.hash(state); - self.vn_fsid.hash(state); - self.vn_type.hash(state); - self.vn_mode.hash(state); - self_vn_devname.hash(state); - } - } - } -} - -pub const ELAST: ::c_int = 96; -pub const RAND_MAX: ::c_int = 0x7fff_fffd; -pub const KI_NSPARE_PTR: usize = 6; -pub const MINCORE_SUPER: ::c_int = 0x20; -/// max length of devicename -pub const SPECNAMELEN: ::c_int = 63; - -safe_f! { - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; - (major << 8) | minor - } -} - -f! { - pub fn major(dev: ::dev_t) -> ::c_int { - ((dev >> 8) & 0xff) as ::c_int - } - - pub fn minor(dev: ::dev_t) -> ::c_int { - (dev & 0xffff00ff) as ::c_int - } -} - -extern "C" { - // Return type ::c_int was removed in FreeBSD 12 - pub fn setgrent() -> ::c_int; - - // Type of `addr` argument changed from `const void*` to `void*` - // in FreeBSD 12 - pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - - // Return type ::c_int was removed in FreeBSD 12 - pub fn freelocale(loc: ::locale_t) -> ::c_int; - - // Return type ::c_int changed to ::ssize_t in FreeBSD 12: - pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::c_int; - - // Type of `path` argument changed from `const void*` to `void*` - // in FreeBSD 12 - pub fn dirname(path: *const ::c_char) -> *mut ::c_char; - pub fn basename(path: *const ::c_char) -> *mut ::c_char; -} - -cfg_if! { - if #[cfg(any(target_arch = "x86_64", - target_arch = "aarch64", - target_arch = "riscv64"))] { - mod b64; - pub use self::b64::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs deleted file mode 100644 index 80c6fa168..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs +++ /dev/null @@ -1,34 +0,0 @@ -#[repr(C)] -#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] -pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - st_padding0: i16, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - st_padding1: i32, - pub st_rdev: ::dev_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, - pub st_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: ::fflags_t, - pub st_gen: u64, - pub st_spare: [u64; 10], -} - -impl ::Copy for ::stat {} -impl ::Clone for ::stat { - fn clone(&self) -> ::stat { - *self - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs deleted file mode 100644 index 10fcaa03a..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ /dev/null @@ -1,505 +0,0 @@ -// APIs in FreeBSD 12 that have changed since 11. - -pub type nlink_t = u64; -pub type dev_t = u64; -pub type ino_t = ::c_ulong; -pub type shmatt_t = ::c_uint; - -s! { - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - } - - pub struct kevent { - pub ident: ::uintptr_t, - pub filter: ::c_short, - pub flags: ::c_ushort, - pub fflags: ::c_uint, - pub data: i64, - pub udata: *mut ::c_void, - pub ext: [u64; 4], - } - - pub struct kvm_page { - pub version: ::c_uint, - pub paddr: ::c_ulong, - pub kmap_vaddr: ::c_ulong, - pub dmap_vaddr: ::c_ulong, - pub prot: ::vm_prot_t, - pub offset: ::u_long, - pub len: ::size_t, - } - - pub struct kinfo_proc { - /// Size of this structure. - pub ki_structsize: ::c_int, - /// Reserved: layout identifier. - pub ki_layout: ::c_int, - /// Address of command arguments. - pub ki_args: *mut ::pargs, - // This is normally "struct proc". - /// Address of proc. - pub ki_paddr: *mut ::c_void, - // This is normally "struct user". - /// Kernel virtual address of u-area. - pub ki_addr: *mut ::c_void, - // This is normally "struct vnode". - /// Pointer to trace file. - pub ki_tracep: *mut ::c_void, - // This is normally "struct vnode". - /// Pointer to executable file. - pub ki_textvp: *mut ::c_void, - // This is normally "struct filedesc". - /// Pointer to open file info. - pub ki_fd: *mut ::c_void, - // This is normally "struct vmspace". - /// Pointer to kernel vmspace struct. - pub ki_vmspace: *mut ::c_void, - /// Sleep address. - pub ki_wchan: *mut ::c_void, - /// Process identifier. - pub ki_pid: ::pid_t, - /// Parent process ID. - pub ki_ppid: ::pid_t, - /// Process group ID. - pub ki_pgid: ::pid_t, - /// tty process group ID. - pub ki_tpgid: ::pid_t, - /// Process session ID. - pub ki_sid: ::pid_t, - /// Terminal session ID. - pub ki_tsid: ::pid_t, - /// Job control counter. - pub ki_jobc: ::c_short, - /// Unused (just here for alignment). - pub ki_spare_short1: ::c_short, - /// Controlling tty dev. - pub ki_tdev_freebsd11: u32, - /// Signals arrived but not delivered. - pub ki_siglist: ::sigset_t, - /// Current signal mask. - pub ki_sigmask: ::sigset_t, - /// Signals being ignored. - pub ki_sigignore: ::sigset_t, - /// Signals being caught by user. - pub ki_sigcatch: ::sigset_t, - /// Effective user ID. - pub ki_uid: ::uid_t, - /// Real user ID. - pub ki_ruid: ::uid_t, - /// Saved effective user ID. - pub ki_svuid: ::uid_t, - /// Real group ID. - pub ki_rgid: ::gid_t, - /// Saved effective group ID. - pub ki_svgid: ::gid_t, - /// Number of groups. - pub ki_ngroups: ::c_short, - /// Unused (just here for alignment). - pub ki_spare_short2: ::c_short, - /// Groups. - pub ki_groups: [::gid_t; ::KI_NGROUPS], - /// Virtual size. - pub ki_size: ::vm_size_t, - /// Current resident set size in pages. - pub ki_rssize: ::segsz_t, - /// Resident set size before last swap. - pub ki_swrss: ::segsz_t, - /// Text size (pages) XXX. - pub ki_tsize: ::segsz_t, - /// Data size (pages) XXX. - pub ki_dsize: ::segsz_t, - /// Stack size (pages). - pub ki_ssize: ::segsz_t, - /// Exit status for wait & stop signal. - pub ki_xstat: ::u_short, - /// Accounting flags. - pub ki_acflag: ::u_short, - /// %cpu for process during `ki_swtime`. - pub ki_pctcpu: ::fixpt_t, - /// Time averaged value of `ki_cpticks`. - pub ki_estcpu: ::u_int, - /// Time since last blocked. - pub ki_slptime: ::u_int, - /// Time swapped in or out. - pub ki_swtime: ::u_int, - /// Number of copy-on-write faults. - pub ki_cow: ::u_int, - /// Real time in microsec. - pub ki_runtime: u64, - /// Starting time. - pub ki_start: ::timeval, - /// Time used by process children. - pub ki_childtime: ::timeval, - /// P_* flags. - pub ki_flag: ::c_long, - /// KI_* flags (below). - pub ki_kiflag: ::c_long, - /// Kernel trace points. - pub ki_traceflag: ::c_int, - /// S* process status. - pub ki_stat: ::c_char, - /// Process "nice" value. - pub ki_nice: i8, // signed char - /// Process lock (prevent swap) count. - pub ki_lock: ::c_char, - /// Run queue index. - pub ki_rqindex: ::c_char, - /// Which cpu we are on. - pub ki_oncpu_old: ::c_uchar, - /// Last cpu we were on. - pub ki_lastcpu_old: ::c_uchar, - /// Thread name. - pub ki_tdname: [::c_char; ::TDNAMLEN + 1], - /// Wchan message. - pub ki_wmesg: [::c_char; ::WMESGLEN + 1], - /// Setlogin name. - pub ki_login: [::c_char; ::LOGNAMELEN + 1], - /// Lock name. - pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], - /// Command name. - pub ki_comm: [::c_char; ::COMMLEN + 1], - /// Emulation name. - pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], - /// Login class. - pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], - /// More thread name. - pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], - /// Spare string space. - pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq - /// Spare room for growth. - pub ki_spareints: [::c_int; ::KI_NSPARE_INT], - /// Controlling tty dev. - pub ki_tdev: ::dev_t, - /// Which cpu we are on. - pub ki_oncpu: ::c_int, - /// Last cpu we were on. - pub ki_lastcpu: ::c_int, - /// PID of tracing process. - pub ki_tracer: ::c_int, - /// P2_* flags. - pub ki_flag2: ::c_int, - /// Default FIB number. - pub ki_fibnum: ::c_int, - /// Credential flags. - pub ki_cr_flags: ::u_int, - /// Process jail ID. - pub ki_jid: ::c_int, - /// Number of threads in total. - pub ki_numthreads: ::c_int, - /// Thread ID. - pub ki_tid: ::lwpid_t, - /// Process priority. - pub ki_pri: ::priority, - /// Process rusage statistics. - pub ki_rusage: ::rusage, - /// rusage of children processes. - pub ki_rusage_ch: ::rusage, - // This is normally "struct pcb". - /// Kernel virtual addr of pcb. - pub ki_pcb: *mut ::c_void, - /// Kernel virtual addr of stack. - pub ki_kstack: *mut ::c_void, - /// User convenience pointer. - pub ki_udata: *mut ::c_void, - // This is normally "struct thread". - pub ki_tdaddr: *mut ::c_void, - pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR], - pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG], - /// PS_* flags. - pub ki_sflag: ::c_long, - /// kthread flag. - pub ki_tdflags: ::c_long, - } -} - -s_no_extra_traits! { - pub struct dirent { - pub d_fileno: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: u16, - pub d_type: u8, - d_pad0: u8, - pub d_namlen: u16, - d_pad1: u16, - pub d_name: [::c_char; 256], - } - - pub struct statfs { - pub f_version: u32, - pub f_type: u32, - pub f_flags: u64, - pub f_bsize: u64, - pub f_iosize: u64, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: i64, - pub f_files: u64, - pub f_ffree: i64, - pub f_syncwrites: u64, - pub f_asyncwrites: u64, - pub f_syncreads: u64, - pub f_asyncreads: u64, - f_spare: [u64; 10], - pub f_namemax: u32, - pub f_owner: ::uid_t, - pub f_fsid: ::fsid_t, - f_charspare: [::c_char; 80], - pub f_fstypename: [::c_char; 16], - pub f_mntfromname: [::c_char; 1024], - pub f_mntonname: [::c_char; 1024], - } - - pub struct vnstat { - pub vn_fileid: u64, - pub vn_size: u64, - pub vn_dev: u64, - pub vn_fsid: u64, - pub vn_mntdir: *mut ::c_char, - pub vn_type: ::c_int, - pub vn_mode: u16, - pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for statfs { - fn eq(&self, other: &statfs) -> bool { - self.f_version == other.f_version - && self.f_type == other.f_type - && self.f_flags == other.f_flags - && self.f_bsize == other.f_bsize - && self.f_iosize == other.f_iosize - && self.f_blocks == other.f_blocks - && self.f_bfree == other.f_bfree - && self.f_bavail == other.f_bavail - && self.f_files == other.f_files - && self.f_ffree == other.f_ffree - && self.f_syncwrites == other.f_syncwrites - && self.f_asyncwrites == other.f_asyncwrites - && self.f_syncreads == other.f_syncreads - && self.f_asyncreads == other.f_asyncreads - && self.f_namemax == other.f_namemax - && self.f_owner == other.f_owner - && self.f_fsid == other.f_fsid - && self.f_fstypename == other.f_fstypename - && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a,b)| a == b) - && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("statfs") - .field("f_bsize", &self.f_bsize) - .field("f_iosize", &self.f_iosize) - .field("f_blocks", &self.f_blocks) - .field("f_bfree", &self.f_bfree) - .field("f_bavail", &self.f_bavail) - .field("f_files", &self.f_files) - .field("f_ffree", &self.f_ffree) - .field("f_syncwrites", &self.f_syncwrites) - .field("f_asyncwrites", &self.f_asyncwrites) - .field("f_syncreads", &self.f_syncreads) - .field("f_asyncreads", &self.f_asyncreads) - .field("f_namemax", &self.f_namemax) - .field("f_owner", &self.f_owner) - .field("f_fsid", &self.f_fsid) - .field("f_fstypename", &self.f_fstypename) - .field("f_mntfromname", &&self.f_mntfromname[..]) - .field("f_mntonname", &&self.f_mntonname[..]) - .finish() - } - } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { - self.f_version.hash(state); - self.f_type.hash(state); - self.f_flags.hash(state); - self.f_bsize.hash(state); - self.f_iosize.hash(state); - self.f_blocks.hash(state); - self.f_bfree.hash(state); - self.f_bavail.hash(state); - self.f_files.hash(state); - self.f_ffree.hash(state); - self.f_syncwrites.hash(state); - self.f_asyncwrites.hash(state); - self.f_syncreads.hash(state); - self.f_asyncreads.hash(state); - self.f_namemax.hash(state); - self.f_owner.hash(state); - self.f_fsid.hash(state); - self.f_charspare.hash(state); - self.f_fstypename.hash(state); - self.f_mntfromname.hash(state); - self.f_mntonname.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_fileno == other.d_fileno - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self.d_namlen == other.d_namlen - && self - .d_name[..self.d_namlen as _] - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_fileno", &self.d_fileno) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - .field("d_namlen", &self.d_namlen) - .field("d_name", &&self.d_name[..self.d_namlen as _]) - .finish() - } - } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_fileno.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_namlen.hash(state); - self.d_name[..self.d_namlen as _].hash(state); - } - } - - impl PartialEq for vnstat { - fn eq(&self, other: &vnstat) -> bool { - let self_vn_devname: &[::c_char] = &self.vn_devname; - let other_vn_devname: &[::c_char] = &other.vn_devname; - - self.vn_fileid == other.vn_fileid && - self.vn_size == other.vn_size && - self.vn_dev == other.vn_dev && - self.vn_fsid == other.vn_fsid && - self.vn_mntdir == other.vn_mntdir && - self.vn_type == other.vn_type && - self.vn_mode == other.vn_mode && - self_vn_devname == other_vn_devname - } - } - impl Eq for vnstat {} - impl ::fmt::Debug for vnstat { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let self_vn_devname: &[::c_char] = &self.vn_devname; - - f.debug_struct("vnstat") - .field("vn_fileid", &self.vn_fileid) - .field("vn_size", &self.vn_size) - .field("vn_dev", &self.vn_dev) - .field("vn_fsid", &self.vn_fsid) - .field("vn_mntdir", &self.vn_mntdir) - .field("vn_type", &self.vn_type) - .field("vn_mode", &self.vn_mode) - .field("vn_devname", &self_vn_devname) - .finish() - } - } - impl ::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { - let self_vn_devname: &[::c_char] = &self.vn_devname; - - self.vn_fileid.hash(state); - self.vn_size.hash(state); - self.vn_dev.hash(state); - self.vn_fsid.hash(state); - self.vn_mntdir.hash(state); - self.vn_type.hash(state); - self.vn_mode.hash(state); - self_vn_devname.hash(state); - } - } - } -} - -pub const RAND_MAX: ::c_int = 0x7fff_fffd; -pub const ELAST: ::c_int = 97; - -/// max length of devicename -pub const SPECNAMELEN: ::c_int = 63; -pub const KI_NSPARE_PTR: usize = 6; - -pub const MINCORE_SUPER: ::c_int = 0x20; - -safe_f! { - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; - let mut dev = 0; - dev |= ((major & 0xffffff00) as dev_t) << 32; - dev |= ((major & 0x000000ff) as dev_t) << 8; - dev |= ((minor & 0x0000ff00) as dev_t) << 24; - dev |= ((minor & 0xffff00ff) as dev_t) << 0; - dev - } -} - -f! { - pub fn major(dev: ::dev_t) -> ::c_int { - (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int - } - - pub fn minor(dev: ::dev_t) -> ::c_int { - (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int - } -} - -extern "C" { - pub fn setgrent(); - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn freelocale(loc: ::locale_t); - pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; - - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; - pub fn basename(path: *mut ::c_char) -> *mut ::c_char; -} - -cfg_if! { - if #[cfg(any(target_arch = "x86_64", - target_arch = "aarch64", - target_arch = "riscv64"))] { - mod b64; - pub use self::b64::*; - } -} - -cfg_if! { - if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs deleted file mode 100644 index 7bf253445..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs +++ /dev/null @@ -1,5 +0,0 @@ -pub const PROC_KPTI_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN; -pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: ::c_int = 1; -pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: ::c_int = 2; -pub const PROC_KPTI_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 1; -pub const PROC_KPTI_STATUS_ACTIVE: ::c_int = 0x80000000; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs deleted file mode 100644 index 80c6fa168..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs +++ /dev/null @@ -1,34 +0,0 @@ -#[repr(C)] -#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] -pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - st_padding0: i16, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - st_padding1: i32, - pub st_rdev: ::dev_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, - pub st_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: ::fflags_t, - pub st_gen: u64, - pub st_spare: [u64; 10], -} - -impl ::Copy for ::stat {} -impl ::Clone for ::stat { - fn clone(&self) -> ::stat { - *self - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs deleted file mode 100644 index 0e04a12e7..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ /dev/null @@ -1,546 +0,0 @@ -// APIs in FreeBSD 14 that have changed since 11. - -pub type nlink_t = u64; -pub type dev_t = u64; -pub type ino_t = ::c_ulong; -pub type shmatt_t = ::c_uint; -pub type kpaddr_t = u64; -pub type kssize_t = i64; -pub type domainset_t = __c_anonymous_domainset; - -s! { - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - } - - pub struct kevent { - pub ident: ::uintptr_t, - pub filter: ::c_short, - pub flags: ::c_ushort, - pub fflags: ::c_uint, - pub data: i64, - pub udata: *mut ::c_void, - pub ext: [u64; 4], - } - - pub struct kvm_page { - pub kp_version: ::u_int, - pub kp_paddr: ::kpaddr_t, - pub kp_kmap_vaddr: ::kvaddr_t, - pub kp_dmap_vaddr: ::kvaddr_t, - pub kp_prot: ::vm_prot_t, - pub kp_offset: ::off_t, - pub kp_len: ::size_t, - } - - pub struct __c_anonymous_domainset { - _priv: [::uintptr_t; 4], - } - - pub struct kinfo_proc { - /// Size of this structure. - pub ki_structsize: ::c_int, - /// Reserved: layout identifier. - pub ki_layout: ::c_int, - /// Address of command arguments. - pub ki_args: *mut ::pargs, - // This is normally "struct proc". - /// Address of proc. - pub ki_paddr: *mut ::c_void, - // This is normally "struct user". - /// Kernel virtual address of u-area. - pub ki_addr: *mut ::c_void, - // This is normally "struct vnode". - /// Pointer to trace file. - pub ki_tracep: *mut ::c_void, - // This is normally "struct vnode". - /// Pointer to executable file. - pub ki_textvp: *mut ::c_void, - // This is normally "struct filedesc". - /// Pointer to open file info. - pub ki_fd: *mut ::c_void, - // This is normally "struct vmspace". - /// Pointer to kernel vmspace struct. - pub ki_vmspace: *mut ::c_void, - /// Sleep address. - pub ki_wchan: *const ::c_void, - /// Process identifier. - pub ki_pid: ::pid_t, - /// Parent process ID. - pub ki_ppid: ::pid_t, - /// Process group ID. - pub ki_pgid: ::pid_t, - /// tty process group ID. - pub ki_tpgid: ::pid_t, - /// Process session ID. - pub ki_sid: ::pid_t, - /// Terminal session ID. - pub ki_tsid: ::pid_t, - /// Job control counter. - pub ki_jobc: ::c_short, - /// Unused (just here for alignment). - pub ki_spare_short1: ::c_short, - /// Controlling tty dev. - pub ki_tdev_freebsd11: u32, - /// Signals arrived but not delivered. - pub ki_siglist: ::sigset_t, - /// Current signal mask. - pub ki_sigmask: ::sigset_t, - /// Signals being ignored. - pub ki_sigignore: ::sigset_t, - /// Signals being caught by user. - pub ki_sigcatch: ::sigset_t, - /// Effective user ID. - pub ki_uid: ::uid_t, - /// Real user ID. - pub ki_ruid: ::uid_t, - /// Saved effective user ID. - pub ki_svuid: ::uid_t, - /// Real group ID. - pub ki_rgid: ::gid_t, - /// Saved effective group ID. - pub ki_svgid: ::gid_t, - /// Number of groups. - pub ki_ngroups: ::c_short, - /// Unused (just here for alignment). - pub ki_spare_short2: ::c_short, - /// Groups. - pub ki_groups: [::gid_t; ::KI_NGROUPS], - /// Virtual size. - pub ki_size: ::vm_size_t, - /// Current resident set size in pages. - pub ki_rssize: ::segsz_t, - /// Resident set size before last swap. - pub ki_swrss: ::segsz_t, - /// Text size (pages) XXX. - pub ki_tsize: ::segsz_t, - /// Data size (pages) XXX. - pub ki_dsize: ::segsz_t, - /// Stack size (pages). - pub ki_ssize: ::segsz_t, - /// Exit status for wait & stop signal. - pub ki_xstat: ::u_short, - /// Accounting flags. - pub ki_acflag: ::u_short, - /// %cpu for process during `ki_swtime`. - pub ki_pctcpu: ::fixpt_t, - /// Time averaged value of `ki_cpticks`. - pub ki_estcpu: ::u_int, - /// Time since last blocked. - pub ki_slptime: ::u_int, - /// Time swapped in or out. - pub ki_swtime: ::u_int, - /// Number of copy-on-write faults. - pub ki_cow: ::u_int, - /// Real time in microsec. - pub ki_runtime: u64, - /// Starting time. - pub ki_start: ::timeval, - /// Time used by process children. - pub ki_childtime: ::timeval, - /// P_* flags. - pub ki_flag: ::c_long, - /// KI_* flags (below). - pub ki_kiflag: ::c_long, - /// Kernel trace points. - pub ki_traceflag: ::c_int, - /// S* process status. - pub ki_stat: ::c_char, - /// Process "nice" value. - pub ki_nice: i8, // signed char - /// Process lock (prevent swap) count. - pub ki_lock: ::c_char, - /// Run queue index. - pub ki_rqindex: ::c_char, - /// Which cpu we are on. - pub ki_oncpu_old: ::c_uchar, - /// Last cpu we were on. - pub ki_lastcpu_old: ::c_uchar, - /// Thread name. - pub ki_tdname: [::c_char; ::TDNAMLEN + 1], - /// Wchan message. - pub ki_wmesg: [::c_char; ::WMESGLEN + 1], - /// Setlogin name. - pub ki_login: [::c_char; ::LOGNAMELEN + 1], - /// Lock name. - pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], - /// Command name. - pub ki_comm: [::c_char; ::COMMLEN + 1], - /// Emulation name. - pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], - /// Login class. - pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], - /// More thread name. - pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], - /// Spare string space. - pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq - /// Spare room for growth. - pub ki_spareints: [::c_int; ::KI_NSPARE_INT], - /// Controlling tty dev. - pub ki_tdev: u64, - /// Which cpu we are on. - pub ki_oncpu: ::c_int, - /// Last cpu we were on. - pub ki_lastcpu: ::c_int, - /// PID of tracing process. - pub ki_tracer: ::c_int, - /// P2_* flags. - pub ki_flag2: ::c_int, - /// Default FIB number. - pub ki_fibnum: ::c_int, - /// Credential flags. - pub ki_cr_flags: ::u_int, - /// Process jail ID. - pub ki_jid: ::c_int, - /// Number of threads in total. - pub ki_numthreads: ::c_int, - /// Thread ID. - pub ki_tid: ::lwpid_t, - /// Process priority. - pub ki_pri: ::priority, - /// Process rusage statistics. - pub ki_rusage: ::rusage, - /// rusage of children processes. - pub ki_rusage_ch: ::rusage, - // This is normally "struct pcb". - /// Kernel virtual addr of pcb. - pub ki_pcb: *mut ::c_void, - /// Kernel virtual addr of stack. - pub ki_kstack: *mut ::c_void, - /// User convenience pointer. - pub ki_udata: *mut ::c_void, - // This is normally "struct thread". - pub ki_tdaddr: *mut ::c_void, - // This is normally "struct pwddesc". - /// Pointer to process paths info. - pub ki_pd: *mut ::c_void, - pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR], - pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG], - /// PS_* flags. - pub ki_sflag: ::c_long, - /// kthread flag. - pub ki_tdflags: ::c_long, - } -} - -s_no_extra_traits! { - pub struct dirent { - pub d_fileno: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: u16, - pub d_type: u8, - d_pad0: u8, - pub d_namlen: u16, - d_pad1: u16, - pub d_name: [::c_char; 256], - } - - pub struct statfs { - pub f_version: u32, - pub f_type: u32, - pub f_flags: u64, - pub f_bsize: u64, - pub f_iosize: u64, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: i64, - pub f_files: u64, - pub f_ffree: i64, - pub f_syncwrites: u64, - pub f_asyncwrites: u64, - pub f_syncreads: u64, - pub f_asyncreads: u64, - f_spare: [u64; 10], - pub f_namemax: u32, - pub f_owner: ::uid_t, - pub f_fsid: ::fsid_t, - f_charspare: [::c_char; 80], - pub f_fstypename: [::c_char; 16], - pub f_mntfromname: [::c_char; 1024], - pub f_mntonname: [::c_char; 1024], - } - - pub struct vnstat { - pub vn_fileid: u64, - pub vn_size: u64, - pub vn_dev: u64, - pub vn_fsid: u64, - pub vn_mntdir: *mut ::c_char, - pub vn_type: ::c_int, - pub vn_mode: u16, - pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for statfs { - fn eq(&self, other: &statfs) -> bool { - self.f_version == other.f_version - && self.f_type == other.f_type - && self.f_flags == other.f_flags - && self.f_bsize == other.f_bsize - && self.f_iosize == other.f_iosize - && self.f_blocks == other.f_blocks - && self.f_bfree == other.f_bfree - && self.f_bavail == other.f_bavail - && self.f_files == other.f_files - && self.f_ffree == other.f_ffree - && self.f_syncwrites == other.f_syncwrites - && self.f_asyncwrites == other.f_asyncwrites - && self.f_syncreads == other.f_syncreads - && self.f_asyncreads == other.f_asyncreads - && self.f_namemax == other.f_namemax - && self.f_owner == other.f_owner - && self.f_fsid == other.f_fsid - && self.f_fstypename == other.f_fstypename - && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a,b)| a == b) - && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("statfs") - .field("f_bsize", &self.f_bsize) - .field("f_iosize", &self.f_iosize) - .field("f_blocks", &self.f_blocks) - .field("f_bfree", &self.f_bfree) - .field("f_bavail", &self.f_bavail) - .field("f_files", &self.f_files) - .field("f_ffree", &self.f_ffree) - .field("f_syncwrites", &self.f_syncwrites) - .field("f_asyncwrites", &self.f_asyncwrites) - .field("f_syncreads", &self.f_syncreads) - .field("f_asyncreads", &self.f_asyncreads) - .field("f_namemax", &self.f_namemax) - .field("f_owner", &self.f_owner) - .field("f_fsid", &self.f_fsid) - .field("f_fstypename", &self.f_fstypename) - .field("f_mntfromname", &&self.f_mntfromname[..]) - .field("f_mntonname", &&self.f_mntonname[..]) - .finish() - } - } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { - self.f_version.hash(state); - self.f_type.hash(state); - self.f_flags.hash(state); - self.f_bsize.hash(state); - self.f_iosize.hash(state); - self.f_blocks.hash(state); - self.f_bfree.hash(state); - self.f_bavail.hash(state); - self.f_files.hash(state); - self.f_ffree.hash(state); - self.f_syncwrites.hash(state); - self.f_asyncwrites.hash(state); - self.f_syncreads.hash(state); - self.f_asyncreads.hash(state); - self.f_namemax.hash(state); - self.f_owner.hash(state); - self.f_fsid.hash(state); - self.f_charspare.hash(state); - self.f_fstypename.hash(state); - self.f_mntfromname.hash(state); - self.f_mntonname.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_fileno == other.d_fileno - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self.d_namlen == other.d_namlen - && self - .d_name[..self.d_namlen as _] - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_fileno", &self.d_fileno) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - .field("d_namlen", &self.d_namlen) - .field("d_name", &&self.d_name[..self.d_namlen as _]) - .finish() - } - } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_fileno.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_namlen.hash(state); - self.d_name[..self.d_namlen as _].hash(state); - } - } - - impl PartialEq for vnstat { - fn eq(&self, other: &vnstat) -> bool { - let self_vn_devname: &[::c_char] = &self.vn_devname; - let other_vn_devname: &[::c_char] = &other.vn_devname; - - self.vn_fileid == other.vn_fileid && - self.vn_size == other.vn_size && - self.vn_dev == other.vn_dev && - self.vn_fsid == other.vn_fsid && - self.vn_mntdir == other.vn_mntdir && - self.vn_type == other.vn_type && - self.vn_mode == other.vn_mode && - self_vn_devname == other_vn_devname - } - } - impl Eq for vnstat {} - impl ::fmt::Debug for vnstat { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let self_vn_devname: &[::c_char] = &self.vn_devname; - - f.debug_struct("vnstat") - .field("vn_fileid", &self.vn_fileid) - .field("vn_size", &self.vn_size) - .field("vn_dev", &self.vn_dev) - .field("vn_fsid", &self.vn_fsid) - .field("vn_mntdir", &self.vn_mntdir) - .field("vn_type", &self.vn_type) - .field("vn_mode", &self.vn_mode) - .field("vn_devname", &self_vn_devname) - .finish() - } - } - impl ::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { - let self_vn_devname: &[::c_char] = &self.vn_devname; - - self.vn_fileid.hash(state); - self.vn_size.hash(state); - self.vn_dev.hash(state); - self.vn_fsid.hash(state); - self.vn_mntdir.hash(state); - self.vn_type.hash(state); - self.vn_mode.hash(state); - self_vn_devname.hash(state); - } - } - } -} - -pub const RAND_MAX: ::c_int = 0x7fff_ffff; -pub const ELAST: ::c_int = 97; - -pub const KF_TYPE_EVENTFD: ::c_int = 13; - -/// max length of devicename -pub const SPECNAMELEN: ::c_int = 255; -pub const KI_NSPARE_PTR: usize = 5; - -/// domainset policies -pub const DOMAINSET_POLICY_INVALID: ::c_int = 0; -pub const DOMAINSET_POLICY_ROUNDROBIN: ::c_int = 1; -pub const DOMAINSET_POLICY_FIRSTTOUCH: ::c_int = 2; -pub const DOMAINSET_POLICY_PREFER: ::c_int = 3; -pub const DOMAINSET_POLICY_INTERLEAVE: ::c_int = 4; - -pub const MINCORE_SUPER: ::c_int = 0x20; - -safe_f! { - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; - let mut dev = 0; - dev |= ((major & 0xffffff00) as dev_t) << 32; - dev |= ((major & 0x000000ff) as dev_t) << 8; - dev |= ((minor & 0x0000ff00) as dev_t) << 24; - dev |= ((minor & 0xffff00ff) as dev_t) << 0; - dev - } -} - -f! { - pub fn major(dev: ::dev_t) -> ::c_int { - (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int - } - - pub fn minor(dev: ::dev_t) -> ::c_int { - (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int - } -} - -extern "C" { - pub fn setgrent(); - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn freelocale(loc: ::locale_t); - pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; - - pub fn cpuset_getdomain( - level: ::cpulevel_t, - which: ::cpuwhich_t, - id: ::id_t, - setsize: ::size_t, - mask: *mut ::domainset_t, - policy: *mut ::c_int, - ) -> ::c_int; - pub fn cpuset_setdomain( - level: ::cpulevel_t, - which: ::cpuwhich_t, - id: ::id_t, - setsize: ::size_t, - mask: *const ::domainset_t, - policy: ::c_int, - ) -> ::c_int; - - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; - pub fn basename(path: *mut ::c_char) -> *mut ::c_char; -} - -#[link(name = "kvm")] -extern "C" { - pub fn kvm_kerndisp(kd: *mut ::kvm_t) -> ::kssize_t; -} - -cfg_if! { - if #[cfg(any(target_arch = "x86_64", - target_arch = "aarch64", - target_arch = "riscv64"))] { - mod b64; - pub use self::b64::*; - } -} - -cfg_if! { - if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs deleted file mode 100644 index 7bf253445..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs +++ /dev/null @@ -1,5 +0,0 @@ -pub const PROC_KPTI_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN; -pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: ::c_int = 1; -pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: ::c_int = 2; -pub const PROC_KPTI_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 1; -pub const PROC_KPTI_STATUS_ACTIVE: ::c_int = 0x80000000; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs deleted file mode 100644 index 80c6fa168..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs +++ /dev/null @@ -1,34 +0,0 @@ -#[repr(C)] -#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))] -pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - st_padding0: i16, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - st_padding1: i32, - pub st_rdev: ::dev_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, - pub st_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: ::fflags_t, - pub st_gen: u64, - pub st_spare: [u64; 10], -} - -impl ::Copy for ::stat {} -impl ::Clone for ::stat { - fn clone(&self) -> ::stat { - *self - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs deleted file mode 100644 index a86ca6e7c..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ /dev/null @@ -1,546 +0,0 @@ -// APIs in FreeBSD 13 that have changed since 11. - -pub type nlink_t = u64; -pub type dev_t = u64; -pub type ino_t = ::c_ulong; -pub type shmatt_t = ::c_uint; -pub type kpaddr_t = u64; -pub type kssize_t = i64; -pub type domainset_t = __c_anonymous_domainset; - -s! { - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - } - - pub struct kevent { - pub ident: ::uintptr_t, - pub filter: ::c_short, - pub flags: ::c_ushort, - pub fflags: ::c_uint, - pub data: i64, - pub udata: *mut ::c_void, - pub ext: [u64; 4], - } - - pub struct kvm_page { - pub kp_version: ::u_int, - pub kp_paddr: ::kpaddr_t, - pub kp_kmap_vaddr: ::kvaddr_t, - pub kp_dmap_vaddr: ::kvaddr_t, - pub kp_prot: ::vm_prot_t, - pub kp_offset: ::off_t, - pub kp_len: ::size_t, - } - - pub struct __c_anonymous_domainset { - _priv: [::uintptr_t; 4], - } - - pub struct kinfo_proc { - /// Size of this structure. - pub ki_structsize: ::c_int, - /// Reserved: layout identifier. - pub ki_layout: ::c_int, - /// Address of command arguments. - pub ki_args: *mut ::pargs, - // This is normally "struct proc". - /// Address of proc. - pub ki_paddr: *mut ::c_void, - // This is normally "struct user". - /// Kernel virtual address of u-area. - pub ki_addr: *mut ::c_void, - // This is normally "struct vnode". - /// Pointer to trace file. - pub ki_tracep: *mut ::c_void, - // This is normally "struct vnode". - /// Pointer to executable file. - pub ki_textvp: *mut ::c_void, - // This is normally "struct filedesc". - /// Pointer to open file info. - pub ki_fd: *mut ::c_void, - // This is normally "struct vmspace". - /// Pointer to kernel vmspace struct. - pub ki_vmspace: *mut ::c_void, - /// Sleep address. - pub ki_wchan: *const ::c_void, - /// Process identifier. - pub ki_pid: ::pid_t, - /// Parent process ID. - pub ki_ppid: ::pid_t, - /// Process group ID. - pub ki_pgid: ::pid_t, - /// tty process group ID. - pub ki_tpgid: ::pid_t, - /// Process session ID. - pub ki_sid: ::pid_t, - /// Terminal session ID. - pub ki_tsid: ::pid_t, - /// Job control counter. - pub ki_jobc: ::c_short, - /// Unused (just here for alignment). - pub ki_spare_short1: ::c_short, - /// Controlling tty dev. - pub ki_tdev_freebsd11: u32, - /// Signals arrived but not delivered. - pub ki_siglist: ::sigset_t, - /// Current signal mask. - pub ki_sigmask: ::sigset_t, - /// Signals being ignored. - pub ki_sigignore: ::sigset_t, - /// Signals being caught by user. - pub ki_sigcatch: ::sigset_t, - /// Effective user ID. - pub ki_uid: ::uid_t, - /// Real user ID. - pub ki_ruid: ::uid_t, - /// Saved effective user ID. - pub ki_svuid: ::uid_t, - /// Real group ID. - pub ki_rgid: ::gid_t, - /// Saved effective group ID. - pub ki_svgid: ::gid_t, - /// Number of groups. - pub ki_ngroups: ::c_short, - /// Unused (just here for alignment). - pub ki_spare_short2: ::c_short, - /// Groups. - pub ki_groups: [::gid_t; ::KI_NGROUPS], - /// Virtual size. - pub ki_size: ::vm_size_t, - /// Current resident set size in pages. - pub ki_rssize: ::segsz_t, - /// Resident set size before last swap. - pub ki_swrss: ::segsz_t, - /// Text size (pages) XXX. - pub ki_tsize: ::segsz_t, - /// Data size (pages) XXX. - pub ki_dsize: ::segsz_t, - /// Stack size (pages). - pub ki_ssize: ::segsz_t, - /// Exit status for wait & stop signal. - pub ki_xstat: ::u_short, - /// Accounting flags. - pub ki_acflag: ::u_short, - /// %cpu for process during `ki_swtime`. - pub ki_pctcpu: ::fixpt_t, - /// Time averaged value of `ki_cpticks`. - pub ki_estcpu: ::u_int, - /// Time since last blocked. - pub ki_slptime: ::u_int, - /// Time swapped in or out. - pub ki_swtime: ::u_int, - /// Number of copy-on-write faults. - pub ki_cow: ::u_int, - /// Real time in microsec. - pub ki_runtime: u64, - /// Starting time. - pub ki_start: ::timeval, - /// Time used by process children. - pub ki_childtime: ::timeval, - /// P_* flags. - pub ki_flag: ::c_long, - /// KI_* flags (below). - pub ki_kiflag: ::c_long, - /// Kernel trace points. - pub ki_traceflag: ::c_int, - /// S* process status. - pub ki_stat: ::c_char, - /// Process "nice" value. - pub ki_nice: i8, // signed char - /// Process lock (prevent swap) count. - pub ki_lock: ::c_char, - /// Run queue index. - pub ki_rqindex: ::c_char, - /// Which cpu we are on. - pub ki_oncpu_old: ::c_uchar, - /// Last cpu we were on. - pub ki_lastcpu_old: ::c_uchar, - /// Thread name. - pub ki_tdname: [::c_char; ::TDNAMLEN + 1], - /// Wchan message. - pub ki_wmesg: [::c_char; ::WMESGLEN + 1], - /// Setlogin name. - pub ki_login: [::c_char; ::LOGNAMELEN + 1], - /// Lock name. - pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1], - /// Command name. - pub ki_comm: [::c_char; ::COMMLEN + 1], - /// Emulation name. - pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1], - /// Login class. - pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1], - /// More thread name. - pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1], - /// Spare string space. - pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq - /// Spare room for growth. - pub ki_spareints: [::c_int; ::KI_NSPARE_INT], - /// Controlling tty dev. - pub ki_tdev: u64, - /// Which cpu we are on. - pub ki_oncpu: ::c_int, - /// Last cpu we were on. - pub ki_lastcpu: ::c_int, - /// PID of tracing process. - pub ki_tracer: ::c_int, - /// P2_* flags. - pub ki_flag2: ::c_int, - /// Default FIB number. - pub ki_fibnum: ::c_int, - /// Credential flags. - pub ki_cr_flags: ::u_int, - /// Process jail ID. - pub ki_jid: ::c_int, - /// Number of threads in total. - pub ki_numthreads: ::c_int, - /// Thread ID. - pub ki_tid: ::lwpid_t, - /// Process priority. - pub ki_pri: ::priority, - /// Process rusage statistics. - pub ki_rusage: ::rusage, - /// rusage of children processes. - pub ki_rusage_ch: ::rusage, - // This is normally "struct pcb". - /// Kernel virtual addr of pcb. - pub ki_pcb: *mut ::c_void, - /// Kernel virtual addr of stack. - pub ki_kstack: *mut ::c_void, - /// User convenience pointer. - pub ki_udata: *mut ::c_void, - // This is normally "struct thread". - pub ki_tdaddr: *mut ::c_void, - // This is normally "struct pwddesc". - /// Pointer to process paths info. - pub ki_pd: *mut ::c_void, - pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR], - pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG], - /// PS_* flags. - pub ki_sflag: ::c_long, - /// kthread flag. - pub ki_tdflags: ::c_long, - } -} - -s_no_extra_traits! { - pub struct dirent { - pub d_fileno: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: u16, - pub d_type: u8, - d_pad0: u8, - pub d_namlen: u16, - d_pad1: u16, - pub d_name: [::c_char; 256], - } - - pub struct statfs { - pub f_version: u32, - pub f_type: u32, - pub f_flags: u64, - pub f_bsize: u64, - pub f_iosize: u64, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: i64, - pub f_files: u64, - pub f_ffree: i64, - pub f_syncwrites: u64, - pub f_asyncwrites: u64, - pub f_syncreads: u64, - pub f_asyncreads: u64, - f_spare: [u64; 10], - pub f_namemax: u32, - pub f_owner: ::uid_t, - pub f_fsid: ::fsid_t, - f_charspare: [::c_char; 80], - pub f_fstypename: [::c_char; 16], - pub f_mntfromname: [::c_char; 1024], - pub f_mntonname: [::c_char; 1024], - } - - pub struct vnstat { - pub vn_fileid: u64, - pub vn_size: u64, - pub vn_dev: u64, - pub vn_fsid: u64, - pub vn_mntdir: *mut ::c_char, - pub vn_type: ::c_int, - pub vn_mode: u16, - pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for statfs { - fn eq(&self, other: &statfs) -> bool { - self.f_version == other.f_version - && self.f_type == other.f_type - && self.f_flags == other.f_flags - && self.f_bsize == other.f_bsize - && self.f_iosize == other.f_iosize - && self.f_blocks == other.f_blocks - && self.f_bfree == other.f_bfree - && self.f_bavail == other.f_bavail - && self.f_files == other.f_files - && self.f_ffree == other.f_ffree - && self.f_syncwrites == other.f_syncwrites - && self.f_asyncwrites == other.f_asyncwrites - && self.f_syncreads == other.f_syncreads - && self.f_asyncreads == other.f_asyncreads - && self.f_namemax == other.f_namemax - && self.f_owner == other.f_owner - && self.f_fsid == other.f_fsid - && self.f_fstypename == other.f_fstypename - && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a,b)| a == b) - && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for statfs {} - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("statfs") - .field("f_bsize", &self.f_bsize) - .field("f_iosize", &self.f_iosize) - .field("f_blocks", &self.f_blocks) - .field("f_bfree", &self.f_bfree) - .field("f_bavail", &self.f_bavail) - .field("f_files", &self.f_files) - .field("f_ffree", &self.f_ffree) - .field("f_syncwrites", &self.f_syncwrites) - .field("f_asyncwrites", &self.f_asyncwrites) - .field("f_syncreads", &self.f_syncreads) - .field("f_asyncreads", &self.f_asyncreads) - .field("f_namemax", &self.f_namemax) - .field("f_owner", &self.f_owner) - .field("f_fsid", &self.f_fsid) - .field("f_fstypename", &self.f_fstypename) - .field("f_mntfromname", &&self.f_mntfromname[..]) - .field("f_mntonname", &&self.f_mntonname[..]) - .finish() - } - } - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { - self.f_version.hash(state); - self.f_type.hash(state); - self.f_flags.hash(state); - self.f_bsize.hash(state); - self.f_iosize.hash(state); - self.f_blocks.hash(state); - self.f_bfree.hash(state); - self.f_bavail.hash(state); - self.f_files.hash(state); - self.f_ffree.hash(state); - self.f_syncwrites.hash(state); - self.f_asyncwrites.hash(state); - self.f_syncreads.hash(state); - self.f_asyncreads.hash(state); - self.f_namemax.hash(state); - self.f_owner.hash(state); - self.f_fsid.hash(state); - self.f_charspare.hash(state); - self.f_fstypename.hash(state); - self.f_mntfromname.hash(state); - self.f_mntonname.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_fileno == other.d_fileno - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self.d_namlen == other.d_namlen - && self - .d_name[..self.d_namlen as _] - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_fileno", &self.d_fileno) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - .field("d_namlen", &self.d_namlen) - .field("d_name", &&self.d_name[..self.d_namlen as _]) - .finish() - } - } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_fileno.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_namlen.hash(state); - self.d_name[..self.d_namlen as _].hash(state); - } - } - - impl PartialEq for vnstat { - fn eq(&self, other: &vnstat) -> bool { - let self_vn_devname: &[::c_char] = &self.vn_devname; - let other_vn_devname: &[::c_char] = &other.vn_devname; - - self.vn_fileid == other.vn_fileid && - self.vn_size == other.vn_size && - self.vn_dev == other.vn_dev && - self.vn_fsid == other.vn_fsid && - self.vn_mntdir == other.vn_mntdir && - self.vn_type == other.vn_type && - self.vn_mode == other.vn_mode && - self_vn_devname == other_vn_devname - } - } - impl Eq for vnstat {} - impl ::fmt::Debug for vnstat { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let self_vn_devname: &[::c_char] = &self.vn_devname; - - f.debug_struct("vnstat") - .field("vn_fileid", &self.vn_fileid) - .field("vn_size", &self.vn_size) - .field("vn_dev", &self.vn_dev) - .field("vn_fsid", &self.vn_fsid) - .field("vn_mntdir", &self.vn_mntdir) - .field("vn_type", &self.vn_type) - .field("vn_mode", &self.vn_mode) - .field("vn_devname", &self_vn_devname) - .finish() - } - } - impl ::hash::Hash for vnstat { - fn hash(&self, state: &mut H) { - let self_vn_devname: &[::c_char] = &self.vn_devname; - - self.vn_fileid.hash(state); - self.vn_size.hash(state); - self.vn_dev.hash(state); - self.vn_fsid.hash(state); - self.vn_mntdir.hash(state); - self.vn_type.hash(state); - self.vn_mode.hash(state); - self_vn_devname.hash(state); - } - } - } -} - -pub const RAND_MAX: ::c_int = 0x7fff_ffff; -pub const ELAST: ::c_int = 97; - -pub const KF_TYPE_EVENTFD: ::c_int = 13; - -/// max length of devicename -pub const SPECNAMELEN: ::c_int = 255; -pub const KI_NSPARE_PTR: usize = 5; - -/// domainset policies -pub const DOMAINSET_POLICY_INVALID: ::c_int = 0; -pub const DOMAINSET_POLICY_ROUNDROBIN: ::c_int = 1; -pub const DOMAINSET_POLICY_FIRSTTOUCH: ::c_int = 2; -pub const DOMAINSET_POLICY_PREFER: ::c_int = 3; -pub const DOMAINSET_POLICY_INTERLEAVE: ::c_int = 4; - -pub const MINCORE_SUPER: ::c_int = 0x60; - -safe_f! { - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; - let mut dev = 0; - dev |= ((major & 0xffffff00) as dev_t) << 32; - dev |= ((major & 0x000000ff) as dev_t) << 8; - dev |= ((minor & 0x0000ff00) as dev_t) << 24; - dev |= ((minor & 0xffff00ff) as dev_t) << 0; - dev - } -} - -f! { - pub fn major(dev: ::dev_t) -> ::c_int { - (((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int - } - - pub fn minor(dev: ::dev_t) -> ::c_int { - (((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int - } -} - -extern "C" { - pub fn setgrent(); - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn freelocale(loc: ::locale_t); - pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; - - pub fn cpuset_getdomain( - level: ::cpulevel_t, - which: ::cpuwhich_t, - id: ::id_t, - setsize: ::size_t, - mask: *mut ::domainset_t, - policy: *mut ::c_int, - ) -> ::c_int; - pub fn cpuset_setdomain( - level: ::cpulevel_t, - which: ::cpuwhich_t, - id: ::id_t, - setsize: ::size_t, - mask: *const ::domainset_t, - policy: ::c_int, - ) -> ::c_int; - - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; - pub fn basename(path: *mut ::c_char) -> *mut ::c_char; -} - -#[link(name = "kvm")] -extern "C" { - pub fn kvm_kerndisp(kd: *mut ::kvm_t) -> ::kssize_t; -} - -cfg_if! { - if #[cfg(any(target_arch = "x86_64", - target_arch = "aarch64", - target_arch = "riscv64"))] { - mod b64; - pub use self::b64::*; - } -} - -cfg_if! { - if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs deleted file mode 100644 index 01d0b4328..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs +++ /dev/null @@ -1,12 +0,0 @@ -pub const PROC_KPTI_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN; -pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: ::c_int = 1; -pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: ::c_int = 2; -pub const PROC_KPTI_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 1; -pub const PROC_KPTI_STATUS_ACTIVE: ::c_int = 0x80000000; -pub const PROC_LA_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN + 2; -pub const PROC_LA_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 3; -pub const PROC_LA_CTL_LA48_ON_EXEC: ::c_int = 1; -pub const PROC_LA_CTL_LA57_ON_EXEC: ::c_int = 2; -pub const PROC_LA_CTL_DEFAULT_ON_EXEC: ::c_int = 3; -pub const PROC_LA_STATUS_LA48: ::c_int = 0x01000000; -pub const PROC_LA_STATUS_LA57: ::c_int = 0x02000000; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/mod.rs deleted file mode 100644 index 4138af576..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ /dev/null @@ -1,5692 +0,0 @@ -pub type fflags_t = u32; -pub type clock_t = i32; - -pub type vm_prot_t = u_char; -pub type kvaddr_t = u64; -pub type segsz_t = isize; -pub type __fixpt_t = u32; -pub type fixpt_t = __fixpt_t; -pub type __lwpid_t = i32; -pub type lwpid_t = __lwpid_t; -pub type blksize_t = i32; -pub type clockid_t = ::c_int; -pub type sem_t = _sem; -pub type timer_t = *mut __c_anonymous__timer; - -pub type fsblkcnt_t = u64; -pub type fsfilcnt_t = u64; -pub type idtype_t = ::c_uint; - -pub type msglen_t = ::c_ulong; -pub type msgqnum_t = ::c_ulong; - -pub type cpulevel_t = ::c_int; -pub type cpuwhich_t = ::c_int; - -pub type mqd_t = *mut ::c_void; -pub type posix_spawnattr_t = *mut ::c_void; -pub type posix_spawn_file_actions_t = *mut ::c_void; - -pub type pthread_spinlock_t = *mut __c_anonymous_pthread_spinlock; -pub type pthread_barrierattr_t = *mut __c_anonymous_pthread_barrierattr; -pub type pthread_barrier_t = *mut __c_anonymous_pthread_barrier; - -pub type uuid_t = ::uuid; -pub type u_int = ::c_uint; -pub type u_char = ::c_uchar; -pub type u_long = ::c_ulong; -pub type u_short = ::c_ushort; - -pub type caddr_t = *mut ::c_char; - -pub type fhandle_t = fhandle; - -pub type au_id_t = ::uid_t; -pub type au_asid_t = ::pid_t; - -pub type cpusetid_t = ::c_int; - -pub type sctp_assoc_t = u32; - -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] -#[repr(u32)] -pub enum devstat_support_flags { - DEVSTAT_ALL_SUPPORTED = 0x00, - DEVSTAT_NO_BLOCKSIZE = 0x01, - DEVSTAT_NO_ORDERED_TAGS = 0x02, - DEVSTAT_BS_UNAVAILABLE = 0x04, -} -impl ::Copy for devstat_support_flags {} -impl ::Clone for devstat_support_flags { - fn clone(&self) -> devstat_support_flags { - *self - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] -#[repr(u32)] -pub enum devstat_trans_flags { - DEVSTAT_NO_DATA = 0x00, - DEVSTAT_READ = 0x01, - DEVSTAT_WRITE = 0x02, - DEVSTAT_FREE = 0x03, -} - -impl ::Copy for devstat_trans_flags {} -impl ::Clone for devstat_trans_flags { - fn clone(&self) -> devstat_trans_flags { - *self - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] -#[repr(u32)] -pub enum devstat_tag_type { - DEVSTAT_TAG_SIMPLE = 0x00, - DEVSTAT_TAG_HEAD = 0x01, - DEVSTAT_TAG_ORDERED = 0x02, - DEVSTAT_TAG_NONE = 0x03, -} -impl ::Copy for devstat_tag_type {} -impl ::Clone for devstat_tag_type { - fn clone(&self) -> devstat_tag_type { - *self - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] -#[repr(u32)] -pub enum devstat_match_flags { - DEVSTAT_MATCH_NONE = 0x00, - DEVSTAT_MATCH_TYPE = 0x01, - DEVSTAT_MATCH_IF = 0x02, - DEVSTAT_MATCH_PASS = 0x04, -} -impl ::Copy for devstat_match_flags {} -impl ::Clone for devstat_match_flags { - fn clone(&self) -> devstat_match_flags { - *self - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] -#[repr(u32)] -pub enum devstat_priority { - DEVSTAT_PRIORITY_MIN = 0x000, - DEVSTAT_PRIORITY_OTHER = 0x020, - DEVSTAT_PRIORITY_PASS = 0x030, - DEVSTAT_PRIORITY_FD = 0x040, - DEVSTAT_PRIORITY_WFD = 0x050, - DEVSTAT_PRIORITY_TAPE = 0x060, - DEVSTAT_PRIORITY_CD = 0x090, - DEVSTAT_PRIORITY_DISK = 0x110, - DEVSTAT_PRIORITY_ARRAY = 0x120, - DEVSTAT_PRIORITY_MAX = 0xfff, -} -impl ::Copy for devstat_priority {} -impl ::Clone for devstat_priority { - fn clone(&self) -> devstat_priority { - *self - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] -#[repr(u32)] -pub enum devstat_type_flags { - DEVSTAT_TYPE_DIRECT = 0x000, - DEVSTAT_TYPE_SEQUENTIAL = 0x001, - DEVSTAT_TYPE_PRINTER = 0x002, - DEVSTAT_TYPE_PROCESSOR = 0x003, - DEVSTAT_TYPE_WORM = 0x004, - DEVSTAT_TYPE_CDROM = 0x005, - DEVSTAT_TYPE_SCANNER = 0x006, - DEVSTAT_TYPE_OPTICAL = 0x007, - DEVSTAT_TYPE_CHANGER = 0x008, - DEVSTAT_TYPE_COMM = 0x009, - DEVSTAT_TYPE_ASC0 = 0x00a, - DEVSTAT_TYPE_ASC1 = 0x00b, - DEVSTAT_TYPE_STORARRAY = 0x00c, - DEVSTAT_TYPE_ENCLOSURE = 0x00d, - DEVSTAT_TYPE_FLOPPY = 0x00e, - DEVSTAT_TYPE_MASK = 0x00f, - DEVSTAT_TYPE_IF_SCSI = 0x010, - DEVSTAT_TYPE_IF_IDE = 0x020, - DEVSTAT_TYPE_IF_OTHER = 0x030, - DEVSTAT_TYPE_IF_MASK = 0x0f0, - DEVSTAT_TYPE_PASS = 0x100, -} -impl ::Copy for devstat_type_flags {} -impl ::Clone for devstat_type_flags { - fn clone(&self) -> devstat_type_flags { - *self - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] -#[repr(u32)] -pub enum devstat_metric { - DSM_NONE, - DSM_TOTAL_BYTES, - DSM_TOTAL_BYTES_READ, - DSM_TOTAL_BYTES_WRITE, - DSM_TOTAL_TRANSFERS, - DSM_TOTAL_TRANSFERS_READ, - DSM_TOTAL_TRANSFERS_WRITE, - DSM_TOTAL_TRANSFERS_OTHER, - DSM_TOTAL_BLOCKS, - DSM_TOTAL_BLOCKS_READ, - DSM_TOTAL_BLOCKS_WRITE, - DSM_KB_PER_TRANSFER, - DSM_KB_PER_TRANSFER_READ, - DSM_KB_PER_TRANSFER_WRITE, - DSM_TRANSFERS_PER_SECOND, - DSM_TRANSFERS_PER_SECOND_READ, - DSM_TRANSFERS_PER_SECOND_WRITE, - DSM_TRANSFERS_PER_SECOND_OTHER, - DSM_MB_PER_SECOND, - DSM_MB_PER_SECOND_READ, - DSM_MB_PER_SECOND_WRITE, - DSM_BLOCKS_PER_SECOND, - DSM_BLOCKS_PER_SECOND_READ, - DSM_BLOCKS_PER_SECOND_WRITE, - DSM_MS_PER_TRANSACTION, - DSM_MS_PER_TRANSACTION_READ, - DSM_MS_PER_TRANSACTION_WRITE, - DSM_SKIP, - DSM_TOTAL_BYTES_FREE, - DSM_TOTAL_TRANSFERS_FREE, - DSM_TOTAL_BLOCKS_FREE, - DSM_KB_PER_TRANSFER_FREE, - DSM_MB_PER_SECOND_FREE, - DSM_TRANSFERS_PER_SECOND_FREE, - DSM_BLOCKS_PER_SECOND_FREE, - DSM_MS_PER_TRANSACTION_OTHER, - DSM_MS_PER_TRANSACTION_FREE, - DSM_BUSY_PCT, - DSM_QUEUE_LENGTH, - DSM_TOTAL_DURATION, - DSM_TOTAL_DURATION_READ, - DSM_TOTAL_DURATION_WRITE, - DSM_TOTAL_DURATION_FREE, - DSM_TOTAL_DURATION_OTHER, - DSM_TOTAL_BUSY_TIME, - DSM_MAX, -} -impl ::Copy for devstat_metric {} -impl ::Clone for devstat_metric { - fn clone(&self) -> devstat_metric { - *self - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))] -#[repr(u32)] -pub enum devstat_select_mode { - DS_SELECT_ADD, - DS_SELECT_ONLY, - DS_SELECT_REMOVE, - DS_SELECT_ADDONLY, -} -impl ::Copy for devstat_select_mode {} -impl ::Clone for devstat_select_mode { - fn clone(&self) -> devstat_select_mode { - *self - } -} - -s! { - pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_offset: ::off_t, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - __unused1: [::c_int; 2], - __unused2: *mut ::c_void, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - // unused 3 through 5 are the __aiocb_private structure - __unused3: ::c_long, - __unused4: ::c_long, - __unused5: *mut ::c_void, - pub aio_sigevent: sigevent - } - - pub struct jail { - pub version: u32, - pub path: *mut ::c_char, - pub hostname: *mut ::c_char, - pub jailname: *mut ::c_char, - pub ip4s: ::c_uint, - pub ip6s: ::c_uint, - pub ip4: *mut ::in_addr, - pub ip6: *mut ::in6_addr, - } - - pub struct statvfs { - pub f_bavail: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_blocks: ::fsblkcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_bsize: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_fsid: ::c_ulong, - pub f_namemax: ::c_ulong, - } - - // internal structure has changed over time - pub struct _sem { - data: [u32; 4], - } - pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - pub msg_cbytes: ::msglen_t, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - } - - pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::ssize_t, - } - - pub struct sockcred { - pub sc_uid: ::uid_t, - pub sc_euid: ::uid_t, - pub sc_gid: ::gid_t, - pub sc_egid: ::gid_t, - pub sc_ngroups: ::c_int, - pub sc_groups: [::gid_t; 1], - } - - pub struct ptrace_vm_entry { - pub pve_entry: ::c_int, - pub pve_timestamp: ::c_int, - pub pve_start: ::c_ulong, - pub pve_end: ::c_ulong, - pub pve_offset: ::c_ulong, - pub pve_prot: ::c_uint, - pub pve_pathlen: ::c_uint, - pub pve_fileid: ::c_long, - pub pve_fsid: u32, - pub pve_path: *mut ::c_char, - } - - pub struct ptrace_lwpinfo { - pub pl_lwpid: lwpid_t, - pub pl_event: ::c_int, - pub pl_flags: ::c_int, - pub pl_sigmask: ::sigset_t, - pub pl_siglist: ::sigset_t, - pub pl_siginfo: ::siginfo_t, - pub pl_tdname: [::c_char; ::MAXCOMLEN as usize + 1], - pub pl_child_pid: ::pid_t, - pub pl_syscall_code: ::c_uint, - pub pl_syscall_narg: ::c_uint, - } - - pub struct ptrace_sc_ret { - pub sr_retval: [::register_t; 2], - pub sr_error: ::c_int, - } - - pub struct ptrace_coredump { - pub pc_fd: ::c_int, - pub pc_flags: u32, - pub pc_limit: ::off_t, - } - - pub struct ptrace_sc_remote { - pub pscr_ret: ptrace_sc_ret, - pub pscr_syscall: ::c_uint, - pub pscr_nargs: ::c_uint, - pub pscr_args: *mut ::register_t, - } - - pub struct cpuset_t { - #[cfg(target_pointer_width = "64")] - __bits: [::c_long; 4], - #[cfg(target_pointer_width = "32")] - __bits: [::c_long; 8], - } - - pub struct cap_rights_t { - cr_rights: [u64; 2], - } - - pub struct umutex { - m_owner: ::lwpid_t, - m_flags: u32, - m_ceilings: [u32; 2], - m_rb_link: ::uintptr_t, - #[cfg(target_pointer_width = "32")] - m_pad: u32, - m_spare: [u32; 2], - - } - - pub struct ucond { - c_has_waiters: u32, - c_flags: u32, - c_clockid: u32, - c_spare: [u32; 1], - } - - pub struct uuid { - pub time_low: u32, - pub time_mid: u16, - pub time_hi_and_version: u16, - pub clock_seq_hi_and_reserved: u8, - pub clock_seq_low: u8, - pub node: [u8; _UUID_NODE_LEN], - } - - pub struct __c_anonymous_pthread_spinlock { - s_clock: umutex, - } - - pub struct __c_anonymous_pthread_barrierattr { - pshared: ::c_int, - } - - pub struct __c_anonymous_pthread_barrier { - b_lock: umutex, - b_cv: ucond, - b_cycle: i64, - b_count: ::c_int, - b_waiters: ::c_int, - b_refcount: ::c_int, - b_destroying: ::c_int, - } - - pub struct kinfo_vmentry { - pub kve_structsize: ::c_int, - pub kve_type: ::c_int, - pub kve_start: u64, - pub kve_end: u64, - pub kve_offset: u64, - pub kve_vn_fileid: u64, - #[cfg(not(freebsd11))] - pub kve_vn_fsid_freebsd11: u32, - #[cfg(freebsd11)] - pub kve_vn_fsid: u32, - pub kve_flags: ::c_int, - pub kve_resident: ::c_int, - pub kve_private_resident: ::c_int, - pub kve_protection: ::c_int, - pub kve_ref_count: ::c_int, - pub kve_shadow_count: ::c_int, - pub kve_vn_type: ::c_int, - pub kve_vn_size: u64, - #[cfg(not(freebsd11))] - pub kve_vn_rdev_freebsd11: u32, - #[cfg(freebsd11)] - pub kve_vn_rdev: u32, - pub kve_vn_mode: u16, - pub kve_status: u16, - #[cfg(not(freebsd11))] - pub kve_vn_fsid: u64, - #[cfg(not(freebsd11))] - pub kve_vn_rdev: u64, - #[cfg(not(freebsd11))] - _kve_is_spare: [::c_int; 8], - #[cfg(freebsd11)] - _kve_is_spare: [::c_int; 12], - pub kve_path: [[::c_char; 32]; 32], - } - - pub struct __c_anonymous_filestat { - pub stqe_next: *mut filestat, - } - - pub struct filestat { - pub fs_type: ::c_int, - pub fs_flags: ::c_int, - pub fs_fflags: ::c_int, - pub fs_uflags: ::c_int, - pub fs_fd: ::c_int, - pub fs_ref_count: ::c_int, - pub fs_offset: ::off_t, - pub fs_typedep: *mut ::c_void, - pub fs_path: *mut ::c_char, - pub next: __c_anonymous_filestat, - pub fs_cap_rights: cap_rights_t, - } - - pub struct filestat_list { - pub stqh_first: *mut filestat, - pub stqh_last: *mut *mut filestat, - } - - pub struct procstat { - pub tpe: ::c_int, - pub kd: ::uintptr_t, - pub vmentries: *mut ::c_void, - pub files: *mut ::c_void, - pub argv: *mut ::c_void, - pub envv: *mut ::c_void, - pub core: ::uintptr_t, - } - - pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, - } - - pub struct __c_anonymous__timer { - _priv: [::c_int; 3], - } - - /// Used to hold a copy of the command line, if it had a sane length. - pub struct pargs { - /// Reference count. - pub ar_ref: u_int, - /// Length. - pub ar_length: u_int, - /// Arguments. - pub ar_args: [::c_uchar; 1], - } - - pub struct priority { - /// Scheduling class. - pub pri_class: u_char, - /// Normal priority level. - pub pri_level: u_char, - /// Priority before propagation. - pub pri_native: u_char, - /// User priority based on p_cpu and p_nice. - pub pri_user: u_char, - } - - pub struct kvm_swap { - pub ksw_devname: [::c_char; 32], - pub ksw_used: u_int, - pub ksw_total: u_int, - pub ksw_flags: ::c_int, - pub ksw_reserved1: u_int, - pub ksw_reserved2: u_int, - } - - pub struct nlist { - /// symbol name (in memory) - pub n_name: *const ::c_char, - /// type defines - pub n_type: ::c_uchar, - /// "type" and binding information - pub n_other: ::c_char, - /// used by stab entries - pub n_desc: ::c_short, - pub n_value: ::c_ulong, - } - - pub struct kvm_nlist { - pub n_name: *const ::c_char, - pub n_type: ::c_uchar, - pub n_value: ::kvaddr_t, - } - - pub struct __c_anonymous_sem { - _priv: ::uintptr_t, - } - - pub struct semid_ds { - pub sem_perm: ::ipc_perm, - pub __sem_base: *mut __c_anonymous_sem, - pub sem_nsems: ::c_ushort, - pub sem_otime: ::time_t, - pub sem_ctime: ::time_t, - } - - pub struct vmtotal { - pub t_vm: u64, - pub t_avm: u64, - pub t_rm: u64, - pub t_arm: u64, - pub t_vmshr: u64, - pub t_avmshr: u64, - pub t_rmshr: u64, - pub t_armshr: u64, - pub t_free: u64, - pub t_rq: i16, - pub t_dw: i16, - pub t_pw: i16, - pub t_sl: i16, - pub t_sw: i16, - pub t_pad: [u16; 3], - } - - pub struct sockstat { - pub inp_ppcb: u64, - pub so_addr: u64, - pub so_pcb: u64, - pub unp_conn: u64, - pub dom_family: ::c_int, - pub proto: ::c_int, - pub so_rcv_sb_state: ::c_int, - pub so_snd_sb_state: ::c_int, - /// Socket address. - pub sa_local: ::sockaddr_storage, - /// Peer address. - pub sa_peer: ::sockaddr_storage, - pub type_: ::c_int, - pub dname: [::c_char; 32], - #[cfg(any(freebsd12, freebsd13, freebsd14))] - pub sendq: ::c_uint, - #[cfg(any(freebsd12, freebsd13, freebsd14))] - pub recvq: ::c_uint, - } - - pub struct shmstat { - pub size: u64, - pub mode: u16, - } - - pub struct spacectl_range { - pub r_offset: ::off_t, - pub r_len: ::off_t - } - - pub struct rusage_ext { - pub rux_runtime: u64, - pub rux_uticks: u64, - pub rux_sticks: u64, - pub rux_iticks: u64, - pub rux_uu: u64, - pub rux_su: u64, - pub rux_tu: u64, - } - - pub struct if_clonereq { - pub ifcr_total: ::c_int, - pub ifcr_count: ::c_int, - pub ifcr_buffer: *mut ::c_char, - } - - pub struct if_msghdr { - /// to skip over non-understood messages - pub ifm_msglen: ::c_ushort, - /// future binary compatibility - pub ifm_version: ::c_uchar, - /// message type - pub ifm_type: ::c_uchar, - /// like rtm_addrs - pub ifm_addrs: ::c_int, - /// value of if_flags - pub ifm_flags: ::c_int, - /// index for associated ifp - pub ifm_index: ::c_ushort, - pub _ifm_spare1: ::c_ushort, - /// statistics and other data about if - pub ifm_data: if_data, - } - - pub struct if_msghdrl { - /// to skip over non-understood messages - pub ifm_msglen: ::c_ushort, - /// future binary compatibility - pub ifm_version: ::c_uchar, - /// message type - pub ifm_type: ::c_uchar, - /// like rtm_addrs - pub ifm_addrs: ::c_int, - /// value of if_flags - pub ifm_flags: ::c_int, - /// index for associated ifp - pub ifm_index: ::c_ushort, - /// spare space to grow if_index, see if_var.h - pub _ifm_spare1: ::c_ushort, - /// length of if_msghdrl incl. if_data - pub ifm_len: ::c_ushort, - /// offset of if_data from beginning - pub ifm_data_off: ::c_ushort, - pub _ifm_spare2: ::c_int, - /// statistics and other data about if - pub ifm_data: if_data, - } - - pub struct ifa_msghdr { - /// to skip over non-understood messages - pub ifam_msglen: ::c_ushort, - /// future binary compatibility - pub ifam_version: ::c_uchar, - /// message type - pub ifam_type: ::c_uchar, - /// like rtm_addrs - pub ifam_addrs: ::c_int, - /// value of ifa_flags - pub ifam_flags: ::c_int, - /// index for associated ifp - pub ifam_index: ::c_ushort, - pub _ifam_spare1: ::c_ushort, - /// value of ifa_ifp->if_metric - pub ifam_metric: ::c_int, - } - - pub struct ifa_msghdrl { - /// to skip over non-understood messages - pub ifam_msglen: ::c_ushort, - /// future binary compatibility - pub ifam_version: ::c_uchar, - /// message type - pub ifam_type: ::c_uchar, - /// like rtm_addrs - pub ifam_addrs: ::c_int, - /// value of ifa_flags - pub ifam_flags: ::c_int, - /// index for associated ifp - pub ifam_index: ::c_ushort, - /// spare space to grow if_index, see if_var.h - pub _ifam_spare1: ::c_ushort, - /// length of ifa_msghdrl incl. if_data - pub ifam_len: ::c_ushort, - /// offset of if_data from beginning - pub ifam_data_off: ::c_ushort, - /// value of ifa_ifp->if_metric - pub ifam_metric: ::c_int, - /// statistics and other data about if or address - pub ifam_data: if_data, - } - - pub struct ifma_msghdr { - /// to skip over non-understood messages - pub ifmam_msglen: ::c_ushort, - /// future binary compatibility - pub ifmam_version: ::c_uchar, - /// message type - pub ifmam_type: ::c_uchar, - /// like rtm_addrs - pub ifmam_addrs: ::c_int, - /// value of ifa_flags - pub ifmam_flags: ::c_int, - /// index for associated ifp - pub ifmam_index: ::c_ushort, - pub _ifmam_spare1: ::c_ushort, - } - - pub struct if_announcemsghdr { - /// to skip over non-understood messages - pub ifan_msglen: ::c_ushort, - /// future binary compatibility - pub ifan_version: ::c_uchar, - /// message type - pub ifan_type: ::c_uchar, - /// index for associated ifp - pub ifan_index: ::c_ushort, - /// if name, e.g. "en0" - pub ifan_name: [::c_char; ::IFNAMSIZ as usize], - /// what type of announcement - pub ifan_what: ::c_ushort, - } - - pub struct ifreq_buffer { - pub length: ::size_t, - pub buffer: *mut ::c_void, - } - - pub struct ifaliasreq { - /// if name, e.g. "en0" - pub ifra_name: [::c_char; ::IFNAMSIZ as usize], - pub ifra_addr: ::sockaddr, - pub ifra_broadaddr: ::sockaddr, - pub ifra_mask: ::sockaddr, - pub ifra_vhid: ::c_int, - } - - /// 9.x compat - pub struct oifaliasreq { - /// if name, e.g. "en0" - pub ifra_name: [::c_char; ::IFNAMSIZ as usize], - pub ifra_addr: ::sockaddr, - pub ifra_broadaddr: ::sockaddr, - pub ifra_mask: ::sockaddr, - } - - pub struct ifmediareq { - /// if name, e.g. "en0" - pub ifm_name: [::c_char; ::IFNAMSIZ as usize], - /// current media options - pub ifm_current: ::c_int, - /// don't care mask - pub ifm_mask: ::c_int, - /// media status - pub ifm_status: ::c_int, - /// active options - pub ifm_active: ::c_int, - /// # entries in ifm_ulist array - pub ifm_count: ::c_int, - /// media words - pub ifm_ulist: *mut ::c_int, - } - - pub struct ifdrv { - /// if name, e.g. "en0" - pub ifd_name: [::c_char; ::IFNAMSIZ as usize], - pub ifd_cmd: ::c_ulong, - pub ifd_len: ::size_t, - pub ifd_data: *mut ::c_void, - } - - pub struct ifi2creq { - /// i2c address (0xA0, 0xA2) - pub dev_addr: u8, - /// read offset - pub offset: u8, - /// read length - pub len: u8, - pub spare0: u8, - pub spare1: u32, - /// read buffer - pub data: [u8; 8], - } - - pub struct ifrsshash { - /// if name, e.g. "en0" - pub ifrh_name: [::c_char; ::IFNAMSIZ as usize], - /// RSS_FUNC_ - pub ifrh_func: u8, - pub ifrh_spare0: u8, - pub ifrh_spare1: u16, - /// RSS_TYPE_ - pub ifrh_types: u32, - } - - pub struct ifmibdata { - /// name of interface - pub ifmd_name: [::c_char; ::IFNAMSIZ as usize], - /// number of promiscuous listeners - pub ifmd_pcount: ::c_int, - /// interface flags - pub ifmd_flags: ::c_int, - /// instantaneous length of send queue - pub ifmd_snd_len: ::c_int, - /// maximum length of send queue - pub ifmd_snd_maxlen: ::c_int, - /// number of drops in send queue - pub ifmd_snd_drops: ::c_int, - /// for future expansion - pub ifmd_filler: [::c_int; 4], - /// generic information and statistics - pub ifmd_data: if_data, - } - - pub struct ifmib_iso_8802_3 { - pub dot3StatsAlignmentErrors: u32, - pub dot3StatsFCSErrors: u32, - pub dot3StatsSingleCollisionFrames: u32, - pub dot3StatsMultipleCollisionFrames: u32, - pub dot3StatsSQETestErrors: u32, - pub dot3StatsDeferredTransmissions: u32, - pub dot3StatsLateCollisions: u32, - pub dot3StatsExcessiveCollisions: u32, - pub dot3StatsInternalMacTransmitErrors: u32, - pub dot3StatsCarrierSenseErrors: u32, - pub dot3StatsFrameTooLongs: u32, - pub dot3StatsInternalMacReceiveErrors: u32, - pub dot3StatsEtherChipSet: u32, - pub dot3StatsMissedFrames: u32, - pub dot3StatsCollFrequencies: [u32; 16], - pub dot3Compliance: u32, - } - - pub struct __c_anonymous_ph { - pub ph1: u64, - pub ph2: u64, - } - - pub struct fid { - pub fid_len: ::c_ushort, - pub fid_data0: ::c_ushort, - pub fid_data: [::c_char; ::MAXFIDSZ as usize], - } - - pub struct fhandle { - pub fh_fsid: ::fsid_t, - pub fh_fid: fid, - } - - pub struct bintime { - pub sec: ::time_t, - pub frac: u64, - } - - pub struct clockinfo { - /// clock frequency - pub hz: ::c_int, - /// micro-seconds per hz tick - pub tick: ::c_int, - pub spare: ::c_int, - /// statistics clock frequency - pub stathz: ::c_int, - /// profiling clock frequency - pub profhz: ::c_int, - } - - pub struct __c_anonymous_stailq_entry_devstat { - pub stqe_next: *mut devstat, - } - - pub struct devstat { - /// Update sequence - pub sequence0: ::u_int, - /// Allocated entry - pub allocated: ::c_int, - /// started ops - pub start_count: ::u_int, - /// completed ops - pub end_count: ::u_int, - /// busy time unaccounted for since this time - pub busy_from: bintime, - pub dev_links: __c_anonymous_stailq_entry_devstat, - /// Devstat device number. - pub device_number: u32, - pub device_name: [::c_char; DEVSTAT_NAME_LEN as usize], - pub unit_number: ::c_int, - pub bytes: [u64; DEVSTAT_N_TRANS_FLAGS as usize], - pub operations: [u64; DEVSTAT_N_TRANS_FLAGS as usize], - pub duration: [bintime; DEVSTAT_N_TRANS_FLAGS as usize], - pub busy_time: bintime, - /// Time the device was created. - pub creation_time: bintime, - /// Block size, bytes - pub block_size: u32, - /// The number of simple, ordered, and head of queue tags sent. - pub tag_types: [u64; 3], - /// Which statistics are supported by a given device. - pub flags: devstat_support_flags, - /// Device type - pub device_type: devstat_type_flags, - /// Controls list pos. - pub priority: devstat_priority, - /// Identification for GEOM nodes - pub id: *const ::c_void, - /// Update sequence - pub sequence1: ::u_int, - } - - pub struct devstat_match { - pub match_fields: devstat_match_flags, - pub device_type: devstat_type_flags, - pub num_match_categories: ::c_int, - } - - pub struct devstat_match_table { - pub match_str: *const ::c_char, - pub type_: devstat_type_flags, - pub match_field: devstat_match_flags, - } - - pub struct device_selection { - pub device_number: u32, - pub device_name: [::c_char; DEVSTAT_NAME_LEN as usize], - pub unit_number: ::c_int, - pub selected: ::c_int, - pub bytes: u64, - pub position: ::c_int, - } - - pub struct devinfo { - pub devices: *mut devstat, - pub mem_ptr: *mut u8, - pub generation: ::c_long, - pub numdevs: ::c_int, - } - - pub struct sockcred2 { - pub sc_version: ::c_int, - pub sc_pid: ::pid_t, - pub sc_uid: ::uid_t, - pub sc_euid: ::uid_t, - pub sc_gid: ::gid_t, - pub sc_egid: ::gid_t, - pub sc_ngroups: ::c_int, - pub sc_groups: [::gid_t; 1], - } - - pub struct ifconf { - pub ifc_len: ::c_int, - #[cfg(libc_union)] - pub ifc_ifcu: __c_anonymous_ifc_ifcu, - } - - pub struct au_mask_t { - pub am_success: ::c_uint, - pub am_failure: ::c_uint, - } - - pub struct au_tid_t { - pub port: u32, - pub machine: u32, - } - - pub struct auditinfo_t { - pub ai_auid: ::au_id_t, - pub ai_mask: ::au_mask_t, - pub ai_termid: au_tid_t, - pub ai_asid: ::au_asid_t, - } - - pub struct tcp_fastopen { - pub enable: ::c_int, - pub psk: [u8; ::TCP_FASTOPEN_PSK_LEN as usize], - } - - pub struct tcp_function_set { - pub function_set_name: [::c_char; ::TCP_FUNCTION_NAME_LEN_MAX as usize], - pub pcbcnt: u32, - } - - 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 tcp_snd_wscale: u8, - pub tcp_rcv_wscale: u8, - 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, - pub __tcpi_last_data_sent: u32, - pub __tcpi_last_ack_sent: u32, - pub tcpi_last_data_recv: u32, - pub __tcpi_last_ack_recv: u32, - 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_snd_wnd: u32, - pub tcpi_snd_bwnd: u32, - pub tcpi_snd_nxt: u32, - pub tcpi_rcv_nxt: u32, - pub tcpi_toe_tid: u32, - pub tcpi_snd_rexmitpack: u32, - pub tcpi_rcv_ooopack: u32, - pub tcpi_snd_zerowin: u32, - #[cfg(freebsd14)] - pub tcpi_delivered_ce: u32, - #[cfg(freebsd14)] - pub tcpi_received_ce: u32, - #[cfg(freebsd14)] - pub __tcpi_delivered_e1_bytes: u32, - #[cfg(freebsd14)] - pub __tcpi_delivered_e0_bytes: u32, - #[cfg(freebsd14)] - pub __tcpi_delivered_ce_bytes: u32, - #[cfg(freebsd14)] - pub __tcpi_received_e1_bytes: u32, - #[cfg(freebsd14)] - pub __tcpi_received_e0_bytes: u32, - #[cfg(freebsd14)] - pub __tcpi_received_ce_bytes: u32, - #[cfg(freebsd14)] - pub __tcpi_pad: [u32; 19], - #[cfg(not(freebsd14))] - pub __tcpi_pad: [u32; 26], - } - - pub struct _umtx_time { - pub _timeout: ::timespec, - pub _flags: u32, - pub _clockid: u32, - } - - pub struct shm_largepage_conf { - pub psind: ::c_int, - pub alloc_policy: ::c_int, - __pad: [::c_int; 10], - } - - pub struct memory_type { - __priva: [::uintptr_t; 32], - __privb: [::uintptr_t; 26], - } - - pub struct memory_type_list { - __priv: [::uintptr_t; 2], - } - - pub struct pidfh { - __priva: [[::uintptr_t; 32]; 8], - __privb: [::uintptr_t; 2], - } - - pub struct sctp_event { - pub se_assoc_id: ::sctp_assoc_t, - pub se_type: u16, - pub se_on: u8, - } - - pub struct sctp_event_subscribe { - pub sctp_data_io_event: u8, - pub sctp_association_event: u8, - pub sctp_address_event: u8, - pub sctp_send_failure_event: u8, - pub sctp_peer_error_event: u8, - pub sctp_shutdown_event: u8, - pub sctp_partial_delivery_event: u8, - pub sctp_adaptation_layer_event: u8, - pub sctp_authentication_event: u8, - pub sctp_sender_dry_event: u8, - pub sctp_stream_reset_event: u8, - } - - pub struct sctp_initmsg { - pub sinit_num_ostreams: u16, - pub sinit_max_instreams: u16, - pub sinit_max_attempts: u16, - pub sinit_max_init_timeo: u16, - } - - pub struct sctp_sndrcvinfo { - pub sinfo_stream: u16, - pub sinfo_ssn: u16, - pub sinfo_flags: u16, - pub sinfo_ppid: u32, - pub sinfo_context: u32, - pub sinfo_timetolive: u32, - pub sinfo_tsn: u32, - pub sinfo_cumtsn: u32, - pub sinfo_assoc_id: ::sctp_assoc_t, - pub sinfo_keynumber: u16, - pub sinfo_keynumber_valid: u16, - pub __reserve_pad: [[u8; 23]; 4], - } - - pub struct sctp_extrcvinfo { - pub sinfo_stream: u16, - pub sinfo_ssn: u16, - pub sinfo_flags: u16, - pub sinfo_ppid: u32, - pub sinfo_context: u32, - pub sinfo_timetolive: u32, - pub sinfo_tsn: u32, - pub sinfo_cumtsn: u32, - pub sinfo_assoc_id: ::sctp_assoc_t, - pub serinfo_next_flags: u16, - pub serinfo_next_stream: u16, - pub serinfo_next_aid: u32, - pub serinfo_next_length: u32, - pub serinfo_next_ppid: u32, - pub sinfo_keynumber: u16, - pub sinfo_keynumber_valid: u16, - pub __reserve_pad: [[u8; 19]; 4], - } - - pub struct sctp_sndinfo { - pub snd_sid: u16, - pub snd_flags: u16, - pub snd_ppid: u32, - pub snd_context: u32, - pub snd_assoc_id: ::sctp_assoc_t, - } - - pub struct sctp_prinfo { - pub pr_policy: u16, - pub pr_value: u32, - } - - pub struct sctp_default_prinfo { - pub pr_policy: u16, - pub pr_value: u32, - pub pr_assoc_id: ::sctp_assoc_t, - } - - pub struct sctp_authinfo { - pub auth_keynumber: u16, - } - - pub struct sctp_rcvinfo { - pub rcv_sid: u16, - pub rcv_ssn: u16, - pub rcv_flags: u16, - pub rcv_ppid: u32, - pub rcv_tsn: u32, - pub rcv_cumtsn: u32, - pub rcv_context: u32, - pub rcv_assoc_id: ::sctp_assoc_t, - } - - pub struct sctp_nxtinfo { - pub nxt_sid: u16, - pub nxt_flags: u16, - pub nxt_ppid: u32, - pub nxt_length: u32, - pub nxt_assoc_id: ::sctp_assoc_t, - } - - pub struct sctp_recvv_rn { - pub recvv_rcvinfo: sctp_rcvinfo, - pub recvv_nxtinfo: sctp_nxtinfo, - } - - pub struct sctp_sendv_spa { - pub sendv_flags: u32, - pub sendv_sndinfo: sctp_sndinfo, - pub sendv_prinfo: sctp_prinfo, - pub sendv_authinfo: sctp_authinfo, - } - - pub struct sctp_snd_all_completes { - pub sall_stream: u16, - pub sall_flags: u16, - pub sall_ppid: u32, - pub sall_context: u32, - pub sall_num_sent: u32, - pub sall_num_failed: u32, - } - - pub struct sctp_pcbinfo { - pub ep_count: u32, - pub asoc_count: u32, - pub laddr_count: u32, - pub raddr_count: u32, - pub chk_count: u32, - pub readq_count: u32, - pub free_chunks: u32, - pub stream_oque: u32, - } - - pub struct sctp_sockstat { - pub ss_assoc_id: ::sctp_assoc_t, - pub ss_total_sndbuf: u32, - pub ss_total_recv_buf: u32, - } - - pub struct sctp_assoc_change { - pub sac_type: u16, - pub sac_flags: u16, - pub sac_length: u32, - pub sac_state: u16, - pub sac_error: u16, - pub sac_outbound_streams: u16, - pub sac_inbound_streams: u16, - pub sac_assoc_id: ::sctp_assoc_t, - pub sac_info: [u8; 0], - } - - pub struct sctp_paddr_change { - pub spc_type: u16, - pub spc_flags: u16, - pub spc_length: u32, - pub spc_aaddr: ::sockaddr_storage, - pub spc_state: u32, - pub spc_error: u32, - pub spc_assoc_id: ::sctp_assoc_t, - } - - pub struct sctp_remote_error { - pub sre_type: u16, - pub sre_flags: u16, - pub sre_length: u32, - pub sre_error: u16, - pub sre_assoc_id: ::sctp_assoc_t, - pub sre_data: [u8; 0], - } - - pub struct sctp_send_failed_event { - pub ssfe_type: u16, - pub ssfe_flags: u16, - pub ssfe_length: u32, - pub ssfe_error: u32, - pub ssfe_info: sctp_sndinfo, - pub ssfe_assoc_id: ::sctp_assoc_t, - pub ssfe_data: [u8; 0], - } - - pub struct sctp_shutdown_event { - pub sse_type: u16, - pub sse_flags: u16, - pub sse_length: u32, - pub sse_assoc_id: ::sctp_assoc_t, - } - - pub struct sctp_adaptation_event { - pub sai_type: u16, - pub sai_flags: u16, - pub sai_length: u32, - pub sai_adaptation_ind: u32, - pub sai_assoc_id: ::sctp_assoc_t, - } - - pub struct sctp_setadaptation { - pub ssb_adaptation_ind: u32, - } - - pub struct sctp_pdapi_event { - pub pdapi_type: u16, - pub pdapi_flags: u16, - pub pdapi_length: u32, - pub pdapi_indication: u32, - pub pdapi_stream: u16, - pub pdapi_seq: u16, - pub pdapi_assoc_id: ::sctp_assoc_t, - } - - pub struct sctp_sender_dry_event { - pub sender_dry_type: u16, - pub sender_dry_flags: u16, - pub sender_dry_length: u32, - pub sender_dry_assoc_id: ::sctp_assoc_t, - } - - pub struct sctp_stream_reset_event { - pub strreset_type: u16, - pub strreset_flags: u16, - pub strreset_length: u32, - pub strreset_assoc_id: ::sctp_assoc_t, - pub strreset_stream_list: [u16; 0], - } - - pub struct sctp_stream_change_event { - pub strchange_type: u16, - pub strchange_flags: u16, - pub strchange_length: u32, - pub strchange_assoc_id: ::sctp_assoc_t, - pub strchange_instrms: u16, - pub strchange_outstrms: u16, - } -} - -s_no_extra_traits! { - pub struct utmpx { - pub ut_type: ::c_short, - pub ut_tv: ::timeval, - pub ut_id: [::c_char; 8], - pub ut_pid: ::pid_t, - pub ut_user: [::c_char; 32], - pub ut_line: [::c_char; 16], - pub ut_host: [::c_char; 128], - pub __ut_spare: [::c_char; 64], - } - - #[cfg(libc_union)] - pub union __c_anonymous_cr_pid { - __cr_unused: *mut ::c_void, - pub cr_pid: ::pid_t, - } - - pub struct xucred { - pub cr_version: ::c_uint, - pub cr_uid: ::uid_t, - pub cr_ngroups: ::c_short, - pub cr_groups: [::gid_t; 16], - #[cfg(libc_union)] - pub cr_pid__c_anonymous_union: __c_anonymous_cr_pid, - #[cfg(not(libc_union))] - __cr_unused1: *mut ::c_void, - } - - pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 46], - } - - pub struct mq_attr { - pub mq_flags: ::c_long, - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_curmsgs: ::c_long, - __reserved: [::c_long; 4] - } - - pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - //The rest of the structure is actually a union. We expose only - //sigev_notify_thread_id because it's the most useful union member. - pub sigev_notify_thread_id: ::lwpid_t, - #[cfg(target_pointer_width = "64")] - __unused1: ::c_int, - __unused2: [::c_long; 7] - } - - pub struct ptsstat { - #[cfg(any(freebsd12, freebsd13, freebsd14))] - pub dev: u64, - #[cfg(not(any(freebsd12, freebsd13, freebsd14)))] - pub dev: u32, - pub devname: [::c_char; SPECNAMELEN as usize + 1], - } - - #[cfg(libc_union)] - pub union __c_anonymous_elf32_auxv_union { - pub a_val: ::c_int, - } - - pub struct Elf32_Auxinfo { - pub a_type: ::c_int, - #[cfg(libc_union)] - pub a_un: __c_anonymous_elf32_auxv_union, - } - - #[cfg(libc_union)] - pub union __c_anonymous_ifi_epoch { - pub tt: ::time_t, - pub ph: u64, - } - - #[cfg(libc_union)] - pub union __c_anonymous_ifi_lastchange { - pub tv: ::timeval, - pub ph: __c_anonymous_ph, - } - - pub struct if_data { - /// ethernet, tokenring, etc - pub ifi_type: u8, - /// e.g., AUI, Thinnet, 10base-T, etc - pub ifi_physical: u8, - /// media address length - pub ifi_addrlen: u8, - /// media header length - pub ifi_hdrlen: u8, - /// current link state - pub ifi_link_state: u8, - /// carp vhid - pub ifi_vhid: u8, - /// length of this data struct - pub ifi_datalen: u16, - /// maximum transmission unit - pub ifi_mtu: u32, - /// routing metric (external only) - pub ifi_metric: u32, - /// linespeed - pub ifi_baudrate: u64, - /// packets received on interface - pub ifi_ipackets: u64, - /// input errors on interface - pub ifi_ierrors: u64, - /// packets sent on interface - pub ifi_opackets: u64, - /// output errors on interface - pub ifi_oerrors: u64, - /// collisions on csma interfaces - pub ifi_collisions: u64, - /// total number of octets received - pub ifi_ibytes: u64, - /// total number of octets sent - pub ifi_obytes: u64, - /// packets received via multicast - pub ifi_imcasts: u64, - /// packets sent via multicast - pub ifi_omcasts: u64, - /// dropped on input - pub ifi_iqdrops: u64, - /// dropped on output - pub ifi_oqdrops: u64, - /// destined for unsupported protocol - pub ifi_noproto: u64, - /// HW offload capabilities, see IFCAP - pub ifi_hwassist: u64, - /// uptime at attach or stat reset - #[cfg(libc_union)] - pub __ifi_epoch: __c_anonymous_ifi_epoch, - /// uptime at attach or stat reset - #[cfg(not(libc_union))] - pub __ifi_epoch: u64, - /// time of last administrative change - #[cfg(libc_union)] - pub __ifi_lastchange: __c_anonymous_ifi_lastchange, - /// time of last administrative change - #[cfg(not(libc_union))] - pub __ifi_lastchange: ::timeval, - } - - #[cfg(libc_union)] - pub union __c_anonymous_ifr_ifru { - pub ifru_addr: ::sockaddr, - pub ifru_dstaddr: ::sockaddr, - pub ifru_broadaddr: ::sockaddr, - pub ifru_buffer: ifreq_buffer, - pub ifru_flags: [::c_short; 2], - pub ifru_index: ::c_short, - pub ifru_jid: ::c_int, - pub ifru_metric: ::c_int, - pub ifru_mtu: ::c_int, - pub ifru_phys: ::c_int, - pub ifru_media: ::c_int, - pub ifru_data: ::caddr_t, - pub ifru_cap: [::c_int; 2], - pub ifru_fib: ::c_uint, - pub ifru_vlan_pcp: ::c_uchar, - } - - pub struct ifreq { - /// if name, e.g. "en0" - pub ifr_name: [::c_char; ::IFNAMSIZ], - #[cfg(libc_union)] - pub ifr_ifru: __c_anonymous_ifr_ifru, - #[cfg(not(libc_union))] - pub ifr_ifru: ::sockaddr, - } - - #[cfg(libc_union)] - pub union __c_anonymous_ifc_ifcu { - pub ifcu_buf: ::caddr_t, - pub ifcu_req: *mut ifreq, - } - - pub struct ifstat { - /// if name, e.g. "en0" - pub ifs_name: [::c_char; ::IFNAMSIZ as usize], - pub ascii: [::c_char; ::IFSTATMAX as usize + 1], - } - - pub struct ifrsskey { - /// if name, e.g. "en0" - pub ifrk_name: [::c_char; ::IFNAMSIZ as usize], - /// RSS_FUNC_ - pub ifrk_func: u8, - pub ifrk_spare0: u8, - pub ifrk_keylen: u16, - pub ifrk_key: [u8; ::RSS_KEYLEN as usize], - } - - pub struct ifdownreason { - pub ifdr_name: [::c_char; ::IFNAMSIZ as usize], - pub ifdr_reason: u32, - pub ifdr_vendor: u32, - pub ifdr_msg: [::c_char; ::IFDR_MSG_SIZE as usize], - } - - #[repr(packed)] - pub struct sctphdr { - pub src_port: u16, - pub dest_port: u16, - pub v_tag: u32, - pub checksum: u32, - } - - #[repr(packed)] - pub struct sctp_chunkhdr { - pub chunk_type: u8, - pub chunk_flags: u8, - pub chunk_length: u16, - } - - #[repr(packed)] - pub struct sctp_paramhdr { - pub param_type: u16, - pub param_length: u16, - } - - #[repr(packed)] - pub struct sctp_gen_error_cause { - pub code: u16, - pub length: u16, - pub info: [u8; 0], - } - - #[repr(packed)] - pub struct sctp_error_cause { - pub code: u16, - pub length: u16, - } - - #[repr(packed)] - pub struct sctp_error_invalid_stream { - pub cause: sctp_error_cause, - pub stream_id: u16, - __reserved: u16, - } - - #[repr(packed)] - pub struct sctp_error_missing_param { - pub cause: sctp_error_cause, - pub num_missing_params: u32, - pub tpe: [u8; 0], - } - - #[repr(packed)] - pub struct sctp_error_stale_cookie { - pub cause: sctp_error_cause, - pub stale_time: u32, - } - - #[repr(packed)] - pub struct sctp_error_out_of_resource { - pub cause: sctp_error_cause, - } - - #[repr(packed)] - pub struct sctp_error_unresolv_addr { - pub cause: sctp_error_cause, - } - - #[repr(packed)] - pub struct sctp_error_unrecognized_chunk { - pub cause: sctp_error_cause, - pub ch: sctp_chunkhdr, - } - - #[repr(packed)] - pub struct sctp_error_no_user_data { - pub cause: sctp_error_cause, - pub tsn: u32, - } - - #[repr(packed)] - pub struct sctp_error_auth_invalid_hmac { - pub cause: sctp_error_cause, - pub hmac_id: u16, - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - && self.ut_tv == other.ut_tv - && self.ut_id == other.ut_id - && self.ut_pid == other.ut_pid - && self.ut_user == other.ut_user - && self.ut_line == other.ut_line - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) - && self - .__ut_spare - .iter() - .zip(other.__ut_spare.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for utmpx {} - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utmpx") - .field("ut_type", &self.ut_type) - .field("ut_tv", &self.ut_tv) - .field("ut_id", &self.ut_id) - .field("ut_pid", &self.ut_pid) - .field("ut_user", &self.ut_user) - .field("ut_line", &self.ut_line) - // FIXME: .field("ut_host", &self.ut_host) - // FIXME: .field("__ut_spare", &self.__ut_spare) - .finish() - } - } - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_type.hash(state); - self.ut_tv.hash(state); - self.ut_id.hash(state); - self.ut_pid.hash(state); - self.ut_user.hash(state); - self.ut_line.hash(state); - self.ut_host.hash(state); - self.__ut_spare.hash(state); - } - } - - #[cfg(libc_union)] - impl PartialEq for __c_anonymous_cr_pid { - fn eq(&self, other: &__c_anonymous_cr_pid) -> bool { - unsafe { self.cr_pid == other.cr_pid} - } - } - #[cfg(libc_union)] - impl Eq for __c_anonymous_cr_pid {} - #[cfg(libc_union)] - impl ::fmt::Debug for __c_anonymous_cr_pid { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("cr_pid") - .field("cr_pid", unsafe { &self.cr_pid }) - .finish() - } - } - #[cfg(libc_union)] - impl ::hash::Hash for __c_anonymous_cr_pid { - fn hash(&self, state: &mut H) { - unsafe { self.cr_pid.hash(state) }; - } - } - - impl PartialEq for xucred { - fn eq(&self, other: &xucred) -> bool { - #[cfg(libc_union)] - let equal_cr_pid = self.cr_pid__c_anonymous_union - == other.cr_pid__c_anonymous_union; - #[cfg(not(libc_union))] - let equal_cr_pid = self.__cr_unused1 == other.__cr_unused1; - - self.cr_version == other.cr_version - && self.cr_uid == other.cr_uid - && self.cr_ngroups == other.cr_ngroups - && self.cr_groups == other.cr_groups - && equal_cr_pid - } - } - impl Eq for xucred {} - impl ::fmt::Debug for xucred { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let mut struct_formatter = f.debug_struct("xucred"); - struct_formatter.field("cr_version", &self.cr_version); - struct_formatter.field("cr_uid", &self.cr_uid); - struct_formatter.field("cr_ngroups", &self.cr_ngroups); - struct_formatter.field("cr_groups", &self.cr_groups); - #[cfg(libc_union)] - struct_formatter.field( - "cr_pid__c_anonymous_union", - &self.cr_pid__c_anonymous_union - ); - struct_formatter.finish() - } - } - impl ::hash::Hash for xucred { - fn hash(&self, state: &mut H) { - self.cr_version.hash(state); - self.cr_uid.hash(state); - self.cr_ngroups.hash(state); - self.cr_groups.hash(state); - #[cfg(libc_union)] - self.cr_pid__c_anonymous_union.hash(state); - #[cfg(not(libc_union))] - self.__cr_unused1.hash(state); - } - } - - impl PartialEq for sockaddr_dl { - fn eq(&self, other: &sockaddr_dl) -> bool { - self.sdl_len == other.sdl_len - && self.sdl_family == other.sdl_family - && self.sdl_index == other.sdl_index - && self.sdl_type == other.sdl_type - && self.sdl_nlen == other.sdl_nlen - && self.sdl_alen == other.sdl_alen - && self.sdl_slen == other.sdl_slen - && self - .sdl_data - .iter() - .zip(other.sdl_data.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for sockaddr_dl {} - impl ::fmt::Debug for sockaddr_dl { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_dl") - .field("sdl_len", &self.sdl_len) - .field("sdl_family", &self.sdl_family) - .field("sdl_index", &self.sdl_index) - .field("sdl_type", &self.sdl_type) - .field("sdl_nlen", &self.sdl_nlen) - .field("sdl_alen", &self.sdl_alen) - .field("sdl_slen", &self.sdl_slen) - // FIXME: .field("sdl_data", &self.sdl_data) - .finish() - } - } - impl ::hash::Hash for sockaddr_dl { - fn hash(&self, state: &mut H) { - self.sdl_len.hash(state); - self.sdl_family.hash(state); - self.sdl_index.hash(state); - self.sdl_type.hash(state); - self.sdl_nlen.hash(state); - self.sdl_alen.hash(state); - self.sdl_slen.hash(state); - self.sdl_data.hash(state); - } - } - - impl PartialEq for mq_attr { - fn eq(&self, other: &mq_attr) -> bool { - self.mq_flags == other.mq_flags && - self.mq_maxmsg == other.mq_maxmsg && - self.mq_msgsize == other.mq_msgsize && - self.mq_curmsgs == other.mq_curmsgs - } - } - impl Eq for mq_attr {} - impl ::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mq_attr") - .field("mq_flags", &self.mq_flags) - .field("mq_maxmsg", &self.mq_maxmsg) - .field("mq_msgsize", &self.mq_msgsize) - .field("mq_curmsgs", &self.mq_curmsgs) - .finish() - } - } - impl ::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { - self.mq_flags.hash(state); - self.mq_maxmsg.hash(state); - self.mq_msgsize.hash(state); - self.mq_curmsgs.hash(state); - } - } - - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_notify == other.sigev_notify - && self.sigev_signo == other.sigev_signo - && self.sigev_value == other.sigev_value - && self.sigev_notify_thread_id - == other.sigev_notify_thread_id - } - } - impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sigevent") - .field("sigev_notify", &self.sigev_notify) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_value", &self.sigev_value) - .field("sigev_notify_thread_id", - &self.sigev_notify_thread_id) - .finish() - } - } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_notify.hash(state); - self.sigev_signo.hash(state); - self.sigev_value.hash(state); - self.sigev_notify_thread_id.hash(state); - } - } - - impl PartialEq for ptsstat { - fn eq(&self, other: &ptsstat) -> bool { - let self_devname: &[::c_char] = &self.devname; - let other_devname: &[::c_char] = &other.devname; - - self.dev == other.dev && self_devname == other_devname - } - } - impl Eq for ptsstat {} - impl ::fmt::Debug for ptsstat { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let self_devname: &[::c_char] = &self.devname; - - f.debug_struct("ptsstat") - .field("dev", &self.dev) - .field("devname", &self_devname) - .finish() - } - } - impl ::hash::Hash for ptsstat { - fn hash(&self, state: &mut H) { - let self_devname: &[::c_char] = &self.devname; - - self.dev.hash(state); - self_devname.hash(state); - } - } - - #[cfg(libc_union)] - impl PartialEq for __c_anonymous_elf32_auxv_union { - fn eq(&self, other: &__c_anonymous_elf32_auxv_union) -> bool { - unsafe { self.a_val == other.a_val} - } - } - #[cfg(libc_union)] - impl Eq for __c_anonymous_elf32_auxv_union {} - #[cfg(libc_union)] - impl ::fmt::Debug for __c_anonymous_elf32_auxv_union { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("a_val") - .field("a_val", unsafe { &self.a_val }) - .finish() - } - } - #[cfg(not(libc_union))] - impl PartialEq for Elf32_Auxinfo { - fn eq(&self, other: &Elf32_Auxinfo) -> bool { - self.a_type == other.a_type - } - } - #[cfg(libc_union)] - impl PartialEq for Elf32_Auxinfo { - fn eq(&self, other: &Elf32_Auxinfo) -> bool { - self.a_type == other.a_type - && self.a_un == other.a_un - } - } - impl Eq for Elf32_Auxinfo {} - #[cfg(not(libc_union))] - impl ::fmt::Debug for Elf32_Auxinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("Elf32_Auxinfo") - .field("a_type", &self.a_type) - .finish() - } - } - #[cfg(libc_union)] - impl ::fmt::Debug for Elf32_Auxinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("Elf32_Auxinfo") - .field("a_type", &self.a_type) - .field("a_un", &self.a_un) - .finish() - } - } - - #[cfg(libc_union)] - impl PartialEq for __c_anonymous_ifr_ifru { - fn eq(&self, other: &__c_anonymous_ifr_ifru) -> bool { - unsafe { - self.ifru_addr == other.ifru_addr && - self.ifru_dstaddr == other.ifru_dstaddr && - self.ifru_broadaddr == other.ifru_broadaddr && - self.ifru_buffer == other.ifru_buffer && - self.ifru_flags == other.ifru_flags && - self.ifru_index == other.ifru_index && - self.ifru_jid == other.ifru_jid && - self.ifru_metric == other.ifru_metric && - self.ifru_mtu == other.ifru_mtu && - self.ifru_phys == other.ifru_phys && - self.ifru_media == other.ifru_media && - self.ifru_data == other.ifru_data && - self.ifru_cap == other.ifru_cap && - self.ifru_fib == other.ifru_fib && - self.ifru_vlan_pcp == other.ifru_vlan_pcp - } - } - } - #[cfg(libc_union)] - impl Eq for __c_anonymous_ifr_ifru {} - #[cfg(libc_union)] - impl ::fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ifr_ifru") - .field("ifru_addr", unsafe { &self.ifru_addr }) - .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) - .field("ifru_broadaddr", unsafe { &self.ifru_broadaddr }) - .field("ifru_buffer", unsafe { &self.ifru_buffer }) - .field("ifru_flags", unsafe { &self.ifru_flags }) - .field("ifru_index", unsafe { &self.ifru_index }) - .field("ifru_jid", unsafe { &self.ifru_jid }) - .field("ifru_metric", unsafe { &self.ifru_metric }) - .field("ifru_mtu", unsafe { &self.ifru_mtu }) - .field("ifru_phys", unsafe { &self.ifru_phys }) - .field("ifru_media", unsafe { &self.ifru_media }) - .field("ifru_data", unsafe { &self.ifru_data }) - .field("ifru_cap", unsafe { &self.ifru_cap }) - .field("ifru_fib", unsafe { &self.ifru_fib }) - .field("ifru_vlan_pcp", unsafe { &self.ifru_vlan_pcp }) - .finish() - } - } - #[cfg(libc_union)] - impl ::hash::Hash for __c_anonymous_ifr_ifru { - fn hash(&self, state: &mut H) { - unsafe { self.ifru_addr.hash(state) }; - unsafe { self.ifru_dstaddr.hash(state) }; - unsafe { self.ifru_broadaddr.hash(state) }; - unsafe { self.ifru_buffer.hash(state) }; - unsafe { self.ifru_flags.hash(state) }; - unsafe { self.ifru_index.hash(state) }; - unsafe { self.ifru_jid.hash(state) }; - unsafe { self.ifru_metric.hash(state) }; - unsafe { self.ifru_mtu.hash(state) }; - unsafe { self.ifru_phys.hash(state) }; - unsafe { self.ifru_media.hash(state) }; - unsafe { self.ifru_data.hash(state) }; - unsafe { self.ifru_cap.hash(state) }; - unsafe { self.ifru_fib.hash(state) }; - unsafe { self.ifru_vlan_pcp.hash(state) }; - } - } - - impl PartialEq for ifreq { - fn eq(&self, other: &ifreq) -> bool { - self.ifr_name == other.ifr_name && self.ifr_ifru == other.ifr_ifru - } - } - impl Eq for ifreq {} - impl ::fmt::Debug for ifreq { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ifreq") - .field("ifr_name", &self.ifr_name) - .field("ifr_ifru", &self.ifr_ifru) - .finish() - } - } - impl ::hash::Hash for ifreq { - fn hash(&self, state: &mut H) { - self.ifr_name.hash(state); - self.ifr_ifru.hash(state); - } - } - - #[cfg(libc_union)] - impl Eq for __c_anonymous_ifc_ifcu {} - - #[cfg(libc_union)] - impl PartialEq for __c_anonymous_ifc_ifcu { - fn eq(&self, other: &__c_anonymous_ifc_ifcu) -> bool { - unsafe { - self.ifcu_buf == other.ifcu_buf && - self.ifcu_req == other.ifcu_req - } - } - } - - #[cfg(libc_union)] - impl ::fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ifc_ifcu") - .field("ifcu_buf", unsafe { &self.ifcu_buf }) - .field("ifcu_req", unsafe { &self.ifcu_req }) - .finish() - } - } - - #[cfg(libc_union)] - impl ::hash::Hash for __c_anonymous_ifc_ifcu { - fn hash(&self, state: &mut H) { - unsafe { self.ifcu_buf.hash(state) }; - unsafe { self.ifcu_req.hash(state) }; - } - } - - impl PartialEq for ifstat { - fn eq(&self, other: &ifstat) -> bool { - let self_ascii: &[::c_char] = &self.ascii; - let other_ascii: &[::c_char] = &other.ascii; - - self.ifs_name == other.ifs_name && self_ascii == other_ascii - } - } - impl Eq for ifstat {} - impl ::fmt::Debug for ifstat { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let ascii: &[::c_char] = &self.ascii; - - f.debug_struct("ifstat") - .field("ifs_name", &self.ifs_name) - .field("ascii", &ascii) - .finish() - } - } - impl ::hash::Hash for ifstat { - fn hash(&self, state: &mut H) { - self.ifs_name.hash(state); - self.ascii.hash(state); - } - } - - impl PartialEq for ifrsskey { - fn eq(&self, other: &ifrsskey) -> bool { - let self_ifrk_key: &[u8] = &self.ifrk_key; - let other_ifrk_key: &[u8] = &other.ifrk_key; - - self.ifrk_name == other.ifrk_name && - self.ifrk_func == other.ifrk_func && - self.ifrk_spare0 == other.ifrk_spare0 && - self.ifrk_keylen == other.ifrk_keylen && - self_ifrk_key == other_ifrk_key - } - } - impl Eq for ifrsskey {} - impl ::fmt::Debug for ifrsskey { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let ifrk_key: &[u8] = &self.ifrk_key; - - f.debug_struct("ifrsskey") - .field("ifrk_name", &self.ifrk_name) - .field("ifrk_func", &self.ifrk_func) - .field("ifrk_spare0", &self.ifrk_spare0) - .field("ifrk_keylen", &self.ifrk_keylen) - .field("ifrk_key", &ifrk_key) - .finish() - } - } - impl ::hash::Hash for ifrsskey { - fn hash(&self, state: &mut H) { - self.ifrk_name.hash(state); - self.ifrk_func.hash(state); - self.ifrk_spare0.hash(state); - self.ifrk_keylen.hash(state); - self.ifrk_key.hash(state); - } - } - - impl PartialEq for ifdownreason { - fn eq(&self, other: &ifdownreason) -> bool { - let self_ifdr_msg: &[::c_char] = &self.ifdr_msg; - let other_ifdr_msg: &[::c_char] = &other.ifdr_msg; - - self.ifdr_name == other.ifdr_name && - self.ifdr_reason == other.ifdr_reason && - self.ifdr_vendor == other.ifdr_vendor && - self_ifdr_msg == other_ifdr_msg - } - } - impl Eq for ifdownreason {} - impl ::fmt::Debug for ifdownreason { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let ifdr_msg: &[::c_char] = &self.ifdr_msg; - - f.debug_struct("ifdownreason") - .field("ifdr_name", &self.ifdr_name) - .field("ifdr_reason", &self.ifdr_reason) - .field("ifdr_vendor", &self.ifdr_vendor) - .field("ifdr_msg", &ifdr_msg) - .finish() - } - } - impl ::hash::Hash for ifdownreason { - fn hash(&self, state: &mut H) { - self.ifdr_name.hash(state); - self.ifdr_reason.hash(state); - self.ifdr_vendor.hash(state); - self.ifdr_msg.hash(state); - } - } - - #[cfg(libc_union)] - impl PartialEq for __c_anonymous_ifi_epoch { - fn eq(&self, other: &__c_anonymous_ifi_epoch) -> bool { - unsafe { - self.tt == other.tt && - self.ph == other.ph - } - } - } - #[cfg(libc_union)] - impl Eq for __c_anonymous_ifi_epoch {} - #[cfg(libc_union)] - impl ::fmt::Debug for __c_anonymous_ifi_epoch { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("__c_anonymous_ifi_epoch") - .field("tt", unsafe { &self.tt }) - .field("ph", unsafe { &self.ph }) - .finish() - } - } - #[cfg(libc_union)] - impl ::hash::Hash for __c_anonymous_ifi_epoch { - fn hash(&self, state: &mut H) { - unsafe { - self.tt.hash(state); - self.ph.hash(state); - } - } - } - - #[cfg(libc_union)] - impl PartialEq for __c_anonymous_ifi_lastchange { - fn eq(&self, other: &__c_anonymous_ifi_lastchange) -> bool { - unsafe { - self.tv == other.tv && - self.ph == other.ph - } - } - } - #[cfg(libc_union)] - impl Eq for __c_anonymous_ifi_lastchange {} - #[cfg(libc_union)] - impl ::fmt::Debug for __c_anonymous_ifi_lastchange { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("__c_anonymous_ifi_lastchange") - .field("tv", unsafe { &self.tv }) - .field("ph", unsafe { &self.ph }) - .finish() - } - } - #[cfg(libc_union)] - impl ::hash::Hash for __c_anonymous_ifi_lastchange { - fn hash(&self, state: &mut H) { - unsafe { - self.tv.hash(state); - self.ph.hash(state); - } - } - } - - impl PartialEq for if_data { - fn eq(&self, other: &if_data) -> bool { - self.ifi_type == other.ifi_type && - self.ifi_physical == other.ifi_physical && - self.ifi_addrlen == other.ifi_addrlen && - self.ifi_hdrlen == other.ifi_hdrlen && - self.ifi_link_state == other.ifi_link_state && - self.ifi_vhid == other.ifi_vhid && - self.ifi_datalen == other.ifi_datalen && - self.ifi_mtu == other.ifi_mtu && - self.ifi_metric == other.ifi_metric && - self.ifi_baudrate == other.ifi_baudrate && - self.ifi_ipackets == other.ifi_ipackets && - self.ifi_ierrors == other.ifi_ierrors && - self.ifi_opackets == other.ifi_opackets && - self.ifi_oerrors == other.ifi_oerrors && - self.ifi_collisions == other.ifi_collisions && - self.ifi_ibytes == other.ifi_ibytes && - self.ifi_obytes == other.ifi_obytes && - self.ifi_imcasts == other.ifi_imcasts && - self.ifi_omcasts == other.ifi_omcasts && - self.ifi_iqdrops == other.ifi_iqdrops && - self.ifi_oqdrops == other.ifi_oqdrops && - self.ifi_noproto == other.ifi_noproto && - self.ifi_hwassist == other.ifi_hwassist && - self.__ifi_epoch == other.__ifi_epoch && - self.__ifi_lastchange == other.__ifi_lastchange - } - } - impl Eq for if_data {} - impl ::fmt::Debug for if_data { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("if_data") - .field("ifi_type", &self.ifi_type) - .field("ifi_physical", &self.ifi_physical) - .field("ifi_addrlen", &self.ifi_addrlen) - .field("ifi_hdrlen", &self.ifi_hdrlen) - .field("ifi_link_state", &self.ifi_link_state) - .field("ifi_vhid", &self.ifi_vhid) - .field("ifi_datalen", &self.ifi_datalen) - .field("ifi_mtu", &self.ifi_mtu) - .field("ifi_metric", &self.ifi_metric) - .field("ifi_baudrate", &self.ifi_baudrate) - .field("ifi_ipackets", &self.ifi_ipackets) - .field("ifi_ierrors", &self.ifi_ierrors) - .field("ifi_opackets", &self.ifi_opackets) - .field("ifi_oerrors", &self.ifi_oerrors) - .field("ifi_collisions", &self.ifi_collisions) - .field("ifi_ibytes", &self.ifi_ibytes) - .field("ifi_obytes", &self.ifi_obytes) - .field("ifi_imcasts", &self.ifi_imcasts) - .field("ifi_omcasts", &self.ifi_omcasts) - .field("ifi_iqdrops", &self.ifi_iqdrops) - .field("ifi_oqdrops", &self.ifi_oqdrops) - .field("ifi_noproto", &self.ifi_noproto) - .field("ifi_hwassist", &self.ifi_hwassist) - .field("__ifi_epoch", &self.__ifi_epoch) - .field("__ifi_lastchange", &self.__ifi_lastchange) - .finish() - } - } - impl ::hash::Hash for if_data { - fn hash(&self, state: &mut H) { - self.ifi_type.hash(state); - self.ifi_physical.hash(state); - self.ifi_addrlen.hash(state); - self.ifi_hdrlen.hash(state); - self.ifi_link_state.hash(state); - self.ifi_vhid.hash(state); - self.ifi_datalen.hash(state); - self.ifi_mtu.hash(state); - self.ifi_metric.hash(state); - self.ifi_baudrate.hash(state); - self.ifi_ipackets.hash(state); - self.ifi_ierrors.hash(state); - self.ifi_opackets.hash(state); - self.ifi_oerrors.hash(state); - self.ifi_collisions.hash(state); - self.ifi_ibytes.hash(state); - self.ifi_obytes.hash(state); - self.ifi_imcasts.hash(state); - self.ifi_omcasts.hash(state); - self.ifi_iqdrops.hash(state); - self.ifi_oqdrops.hash(state); - self.ifi_noproto.hash(state); - self.ifi_hwassist.hash(state); - self.__ifi_epoch.hash(state); - self.__ifi_lastchange.hash(state); - } - } - - impl PartialEq for sctphdr { - fn eq(&self, other: &sctphdr) -> bool { - return {self.src_port} == {other.src_port} && - {self.dest_port} == {other.dest_port} && - {self.v_tag} == {other.v_tag} && - {self.checksum} == {other.checksum} - } - } - impl Eq for sctphdr {} - impl ::fmt::Debug for sctphdr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sctphdr") - .field("src_port", &{self.src_port}) - .field("dest_port", &{self.dest_port}) - .field("v_tag", &{self.v_tag}) - .field("checksum", &{self.checksum}) - .finish() - } - } - impl ::hash::Hash for sctphdr { - fn hash(&self, state: &mut H) { - {self.src_port}.hash(state); - {self.dest_port}.hash(state); - {self.v_tag}.hash(state); - {self.checksum}.hash(state); - } - } - - impl PartialEq for sctp_chunkhdr { - fn eq(&self, other: &sctp_chunkhdr) -> bool { - return {self.chunk_type} == {other.chunk_type} && - {self.chunk_flags} == {other.chunk_flags} && - {self.chunk_length} == {other.chunk_length} - } - } - impl Eq for sctp_chunkhdr {} - impl ::fmt::Debug for sctp_chunkhdr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sctp_chunkhdr") - .field("chunk_type", &{self.chunk_type}) - .field("chunk_flags", &{self.chunk_flags}) - .field("chunk_length", &{self.chunk_length}) - .finish() - } - } - impl ::hash::Hash for sctp_chunkhdr { - fn hash(&self, state: &mut H) { - {self.chunk_type}.hash(state); - {self.chunk_flags}.hash(state); - {self.chunk_length}.hash(state); - } - } - - impl PartialEq for sctp_paramhdr { - fn eq(&self, other: &sctp_paramhdr) -> bool { - return {self.param_type} == {other.param_type} && - {self.param_length} == {other.param_length} - } - } - impl Eq for sctp_paramhdr {} - impl ::fmt::Debug for sctp_paramhdr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sctp_paramhdr") - .field("param_type", &{self.param_type}) - .field("param_length", &{self.param_length}) - .finish() - } - } - impl ::hash::Hash for sctp_paramhdr { - fn hash(&self, state: &mut H) { - {self.param_type}.hash(state); - {self.param_length}.hash(state); - } - } - - impl PartialEq for sctp_gen_error_cause { - fn eq(&self, other: &sctp_gen_error_cause) -> bool { - return {self.code} == {other.code} && - {self.length} == {other.length} && - {self.info}.iter().zip({other.info}.iter()).all(|(a,b)| a == b) - } - } - impl Eq for sctp_gen_error_cause {} - impl ::fmt::Debug for sctp_gen_error_cause { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sctp_gen_error_cause") - .field("code", &{self.code}) - .field("length", &{self.length}) - // FIXME: .field("info", &{self.info}) - .finish() - } - } - impl ::hash::Hash for sctp_gen_error_cause { - fn hash(&self, state: &mut H) { - {self.code}.hash(state); - {self.length}.hash(state); - {self.info}.hash(state); - } - } - - impl PartialEq for sctp_error_cause { - fn eq(&self, other: &sctp_error_cause) -> bool { - return {self.code} == {other.code} && - {self.length} == {other.length} - } - } - impl Eq for sctp_error_cause {} - impl ::fmt::Debug for sctp_error_cause { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sctp_error_cause") - .field("code", &{self.code}) - .field("length", &{self.length}) - .finish() - } - } - impl ::hash::Hash for sctp_error_cause { - fn hash(&self, state: &mut H) { - {self.code}.hash(state); - {self.length}.hash(state); - } - } - - impl PartialEq for sctp_error_invalid_stream { - fn eq(&self, other: &sctp_error_invalid_stream) -> bool { - return {self.cause} == {other.cause} && - {self.stream_id} == {other.stream_id} - } - } - impl Eq for sctp_error_invalid_stream {} - impl ::fmt::Debug for sctp_error_invalid_stream { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sctp_error_invalid_stream") - .field("cause", &{self.cause}) - .field("stream_id", &{self.stream_id}) - .finish() - } - } - impl ::hash::Hash for sctp_error_invalid_stream { - fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - {self.stream_id}.hash(state); - } - } - - impl PartialEq for sctp_error_missing_param { - fn eq(&self, other: &sctp_error_missing_param) -> bool { - return {self.cause} == {other.cause} && - {self.num_missing_params} == {other.num_missing_params} && - {self.tpe}.iter().zip({other.tpe}.iter()).all(|(a,b)| a == b) - } - } - impl Eq for sctp_error_missing_param {} - impl ::fmt::Debug for sctp_error_missing_param { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sctp_error_missing_param") - .field("cause", &{self.cause}) - .field("num_missing_params", &{self.num_missing_params}) - // FIXME: .field("tpe", &{self.tpe}) - .finish() - } - } - impl ::hash::Hash for sctp_error_missing_param { - fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - {self.num_missing_params}.hash(state); - {self.tpe}.hash(state); - } - } - - impl PartialEq for sctp_error_stale_cookie { - fn eq(&self, other: &sctp_error_stale_cookie) -> bool { - return {self.cause} == {other.cause} && - {self.stale_time} == {other.stale_time} - } - } - impl Eq for sctp_error_stale_cookie {} - impl ::fmt::Debug for sctp_error_stale_cookie { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sctp_error_stale_cookie") - .field("cause", &{self.cause}) - .field("stale_time", &{self.stale_time}) - .finish() - } - } - impl ::hash::Hash for sctp_error_stale_cookie { - fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - {self.stale_time}.hash(state); - } - } - - impl PartialEq for sctp_error_out_of_resource { - fn eq(&self, other: &sctp_error_out_of_resource) -> bool { - return {self.cause} == {other.cause} - } - } - impl Eq for sctp_error_out_of_resource {} - impl ::fmt::Debug for sctp_error_out_of_resource { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sctp_error_out_of_resource") - .field("cause", &{self.cause}) - .finish() - } - } - impl ::hash::Hash for sctp_error_out_of_resource { - fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - } - } - - impl PartialEq for sctp_error_unresolv_addr { - fn eq(&self, other: &sctp_error_unresolv_addr) -> bool { - return {self.cause} == {other.cause} - } - } - impl Eq for sctp_error_unresolv_addr {} - impl ::fmt::Debug for sctp_error_unresolv_addr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sctp_error_unresolv_addr") - .field("cause", &{self.cause}) - .finish() - } - } - impl ::hash::Hash for sctp_error_unresolv_addr { - fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - } - } - - impl PartialEq for sctp_error_unrecognized_chunk { - fn eq(&self, other: &sctp_error_unrecognized_chunk) -> bool { - return {self.cause} == {other.cause} && - {self.ch} == {other.ch} - } - } - impl Eq for sctp_error_unrecognized_chunk {} - impl ::fmt::Debug for sctp_error_unrecognized_chunk { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sctp_error_unrecognized_chunk") - .field("cause", &{self.cause}) - .field("ch", &{self.ch}) - .finish() - } - } - impl ::hash::Hash for sctp_error_unrecognized_chunk { - fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - {self.ch}.hash(state); - } - } - - impl PartialEq for sctp_error_no_user_data { - fn eq(&self, other: &sctp_error_no_user_data) -> bool { - return {self.cause} == {other.cause} && - {self.tsn} == {other.tsn} - } - } - impl Eq for sctp_error_no_user_data {} - impl ::fmt::Debug for sctp_error_no_user_data { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sctp_error_no_user_data") - .field("cause", &{self.cause}) - .field("tsn", &{self.tsn}) - .finish() - } - } - impl ::hash::Hash for sctp_error_no_user_data { - fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - {self.tsn}.hash(state); - } - } - - impl PartialEq for sctp_error_auth_invalid_hmac { - fn eq(&self, other: &sctp_error_auth_invalid_hmac) -> bool { - return {self.cause} == {other.cause} && - {self.hmac_id} == {other.hmac_id} - } - } - impl Eq for sctp_error_auth_invalid_hmac {} - impl ::fmt::Debug for sctp_error_auth_invalid_hmac { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sctp_error_invalid_hmac") - .field("cause", &{self.cause}) - .field("hmac_id", &{self.hmac_id}) - .finish() - } - } - impl ::hash::Hash for sctp_error_auth_invalid_hmac { - fn hash(&self, state: &mut H) { - {self.cause}.hash(state); - {self.hmac_id}.hash(state); - } - } - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -#[repr(u32)] -pub enum dot3Vendors { - dot3VendorAMD = 1, - dot3VendorIntel = 2, - dot3VendorNational = 4, - dot3VendorFujitsu = 5, - dot3VendorDigital = 6, - dot3VendorWesternDigital = 7, -} -impl ::Copy for dot3Vendors {} -impl ::Clone for dot3Vendors { - fn clone(&self) -> dot3Vendors { - *self - } -} - -// aio.h -pub const LIO_VECTORED: ::c_int = 4; -pub const LIO_WRITEV: ::c_int = 5; -pub const LIO_READV: ::c_int = 6; - -// sys/devicestat.h -pub const DEVSTAT_N_TRANS_FLAGS: ::c_int = 4; -pub const DEVSTAT_NAME_LEN: ::c_int = 16; - -// sys/cpuset.h -pub const CPU_SETSIZE: ::c_int = 256; - -pub const SIGEV_THREAD_ID: ::c_int = 4; - -pub const EXTATTR_NAMESPACE_EMPTY: ::c_int = 0; -pub const EXTATTR_NAMESPACE_USER: ::c_int = 1; -pub const EXTATTR_NAMESPACE_SYSTEM: ::c_int = 2; - -pub const PTHREAD_STACK_MIN: ::size_t = MINSIGSTKSZ; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 4; -pub const PTHREAD_MUTEX_STALLED: ::c_int = 0; -pub const PTHREAD_MUTEX_ROBUST: ::c_int = 1; -pub const SIGSTKSZ: ::size_t = MINSIGSTKSZ + 32768; -pub const SF_NODISKIO: ::c_int = 0x00000001; -pub const SF_MNOWAIT: ::c_int = 0x00000002; -pub const SF_SYNC: ::c_int = 0x00000004; -pub const SF_USER_READAHEAD: ::c_int = 0x00000008; -pub const SF_NOCACHE: ::c_int = 0x00000010; -pub const O_CLOEXEC: ::c_int = 0x00100000; -pub const O_DIRECTORY: ::c_int = 0x00020000; -pub const O_DSYNC: ::c_int = 0x01000000; -pub const O_EMPTY_PATH: ::c_int = 0x02000000; -pub const O_EXEC: ::c_int = 0x00040000; -pub const O_PATH: ::c_int = 0x00400000; -pub const O_RESOLVE_BENEATH: ::c_int = 0x00800000; -pub const O_SEARCH: ::c_int = O_EXEC; -pub const O_TTY_INIT: ::c_int = 0x00080000; -pub const O_VERIFY: ::c_int = 0x00200000; -pub const F_GETLK: ::c_int = 11; -pub const F_SETLK: ::c_int = 12; -pub const F_SETLKW: ::c_int = 13; -pub const ENOTCAPABLE: ::c_int = 93; -pub const ECAPMODE: ::c_int = 94; -pub const ENOTRECOVERABLE: ::c_int = 95; -pub const EOWNERDEAD: ::c_int = 96; -pub const EINTEGRITY: ::c_int = 97; -pub const RLIMIT_NPTS: ::c_int = 11; -pub const RLIMIT_SWAP: ::c_int = 12; -pub const RLIMIT_KQUEUES: ::c_int = 13; -pub const RLIMIT_UMTXP: ::c_int = 14; -#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::rlim_t = 15; -pub const RLIM_SAVED_MAX: ::rlim_t = ::RLIM_INFINITY; -pub const RLIM_SAVED_CUR: ::rlim_t = ::RLIM_INFINITY; - -pub const CP_USER: ::c_int = 0; -pub const CP_NICE: ::c_int = 1; -pub const CP_SYS: ::c_int = 2; -pub const CP_INTR: ::c_int = 3; -pub const CP_IDLE: ::c_int = 4; -pub const CPUSTATES: ::c_int = 5; - -pub const NI_NOFQDN: ::c_int = 0x00000001; -pub const NI_NUMERICHOST: ::c_int = 0x00000002; -pub const NI_NAMEREQD: ::c_int = 0x00000004; -pub const NI_NUMERICSERV: ::c_int = 0x00000008; -pub const NI_DGRAM: ::c_int = 0x00000010; -pub const NI_NUMERICSCOPE: ::c_int = 0x00000020; - -pub const XU_NGROUPS: ::c_int = 16; - -pub const Q_GETQUOTA: ::c_int = 0x700; -pub const Q_SETQUOTA: ::c_int = 0x800; - -pub const MAP_GUARD: ::c_int = 0x00002000; -pub const MAP_EXCL: ::c_int = 0x00004000; -pub const MAP_PREFAULT_READ: ::c_int = 0x00040000; -pub const MAP_ALIGNED_SUPER: ::c_int = 1 << 24; - -pub const POSIX_FADV_NORMAL: ::c_int = 0; -pub const POSIX_FADV_RANDOM: ::c_int = 1; -pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_FADV_WILLNEED: ::c_int = 3; -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const POLLINIGNEOF: ::c_short = 0x2000; - -pub const EVFILT_READ: i16 = -1; -pub const EVFILT_WRITE: i16 = -2; -pub const EVFILT_AIO: i16 = -3; -pub const EVFILT_VNODE: i16 = -4; -pub const EVFILT_PROC: i16 = -5; -pub const EVFILT_SIGNAL: i16 = -6; -pub const EVFILT_TIMER: i16 = -7; -pub const EVFILT_PROCDESC: i16 = -8; -pub const EVFILT_FS: i16 = -9; -pub const EVFILT_LIO: i16 = -10; -pub const EVFILT_USER: i16 = -11; -pub const EVFILT_SENDFILE: i16 = -12; -pub const EVFILT_EMPTY: i16 = -13; - -pub const EV_ADD: u16 = 0x1; -pub const EV_DELETE: u16 = 0x2; -pub const EV_ENABLE: u16 = 0x4; -pub const EV_DISABLE: u16 = 0x8; -pub const EV_FORCEONESHOT: u16 = 0x100; -pub const EV_KEEPUDATA: u16 = 0x200; - -pub const EV_ONESHOT: u16 = 0x10; -pub const EV_CLEAR: u16 = 0x20; -pub const EV_RECEIPT: u16 = 0x40; -pub const EV_DISPATCH: u16 = 0x80; -pub const EV_SYSFLAGS: u16 = 0xf000; -pub const EV_DROP: u16 = 0x1000; -pub const EV_FLAG1: u16 = 0x2000; -pub const EV_FLAG2: u16 = 0x4000; - -pub const EV_EOF: u16 = 0x8000; -pub const EV_ERROR: u16 = 0x4000; - -pub const NOTE_TRIGGER: u32 = 0x01000000; -pub const NOTE_FFNOP: u32 = 0x00000000; -pub const NOTE_FFAND: u32 = 0x40000000; -pub const NOTE_FFOR: u32 = 0x80000000; -pub const NOTE_FFCOPY: u32 = 0xc0000000; -pub const NOTE_FFCTRLMASK: u32 = 0xc0000000; -pub const NOTE_FFLAGSMASK: u32 = 0x00ffffff; -pub const NOTE_LOWAT: u32 = 0x00000001; -pub const NOTE_FILE_POLL: u32 = 0x00000002; -pub const NOTE_DELETE: u32 = 0x00000001; -pub const NOTE_WRITE: u32 = 0x00000002; -pub const NOTE_EXTEND: u32 = 0x00000004; -pub const NOTE_ATTRIB: u32 = 0x00000008; -pub const NOTE_LINK: u32 = 0x00000010; -pub const NOTE_RENAME: u32 = 0x00000020; -pub const NOTE_REVOKE: u32 = 0x00000040; -pub const NOTE_OPEN: u32 = 0x00000080; -pub const NOTE_CLOSE: u32 = 0x00000100; -pub const NOTE_CLOSE_WRITE: u32 = 0x00000200; -pub const NOTE_READ: u32 = 0x00000400; -pub const NOTE_EXIT: u32 = 0x80000000; -pub const NOTE_FORK: u32 = 0x40000000; -pub const NOTE_EXEC: u32 = 0x20000000; -pub const NOTE_PDATAMASK: u32 = 0x000fffff; -pub const NOTE_PCTRLMASK: u32 = 0xf0000000; -pub const NOTE_TRACK: u32 = 0x00000001; -pub const NOTE_TRACKERR: u32 = 0x00000002; -pub const NOTE_CHILD: u32 = 0x00000004; -pub const NOTE_SECONDS: u32 = 0x00000001; -pub const NOTE_MSECONDS: u32 = 0x00000002; -pub const NOTE_USECONDS: u32 = 0x00000004; -pub const NOTE_NSECONDS: u32 = 0x00000008; -pub const NOTE_ABSTIME: u32 = 0x00000010; - -pub const MADV_PROTECT: ::c_int = 10; - -#[doc(hidden)] -#[deprecated( - since = "0.2.72", - note = "CTL_UNSPEC is deprecated. Use CTL_SYSCTL instead" -)] -pub const CTL_UNSPEC: ::c_int = 0; -pub const CTL_SYSCTL: ::c_int = 0; -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_VFS: ::c_int = 3; -pub const CTL_NET: ::c_int = 4; -pub const CTL_DEBUG: ::c_int = 5; -pub const CTL_HW: ::c_int = 6; -pub const CTL_MACHDEP: ::c_int = 7; -pub const CTL_USER: ::c_int = 8; -pub const CTL_P1003_1B: ::c_int = 9; - -// sys/sysctl.h -pub const CTL_MAXNAME: ::c_int = 24; - -pub const CTLTYPE: ::c_int = 0xf; -pub const CTLTYPE_NODE: ::c_int = 1; -pub const CTLTYPE_INT: ::c_int = 2; -pub const CTLTYPE_STRING: ::c_int = 3; -pub const CTLTYPE_S64: ::c_int = 4; -pub const CTLTYPE_OPAQUE: ::c_int = 5; -pub const CTLTYPE_STRUCT: ::c_int = CTLTYPE_OPAQUE; -pub const CTLTYPE_UINT: ::c_int = 6; -pub const CTLTYPE_LONG: ::c_int = 7; -pub const CTLTYPE_ULONG: ::c_int = 8; -pub const CTLTYPE_U64: ::c_int = 9; -pub const CTLTYPE_U8: ::c_int = 0xa; -pub const CTLTYPE_U16: ::c_int = 0xb; -pub const CTLTYPE_S8: ::c_int = 0xc; -pub const CTLTYPE_S16: ::c_int = 0xd; -pub const CTLTYPE_S32: ::c_int = 0xe; -pub const CTLTYPE_U32: ::c_int = 0xf; - -pub const CTLFLAG_RD: ::c_int = 0x80000000; -pub const CTLFLAG_WR: ::c_int = 0x40000000; -pub const CTLFLAG_RW: ::c_int = CTLFLAG_RD | CTLFLAG_WR; -pub const CTLFLAG_DORMANT: ::c_int = 0x20000000; -pub const CTLFLAG_ANYBODY: ::c_int = 0x10000000; -pub const CTLFLAG_SECURE: ::c_int = 0x08000000; -pub const CTLFLAG_PRISON: ::c_int = 0x04000000; -pub const CTLFLAG_DYN: ::c_int = 0x02000000; -pub const CTLFLAG_SKIP: ::c_int = 0x01000000; -pub const CTLMASK_SECURE: ::c_int = 0x00F00000; -pub const CTLFLAG_TUN: ::c_int = 0x00080000; -pub const CTLFLAG_RDTUN: ::c_int = CTLFLAG_RD | CTLFLAG_TUN; -pub const CTLFLAG_RWTUN: ::c_int = CTLFLAG_RW | CTLFLAG_TUN; -pub const CTLFLAG_MPSAFE: ::c_int = 0x00040000; -pub const CTLFLAG_VNET: ::c_int = 0x00020000; -pub const CTLFLAG_DYING: ::c_int = 0x00010000; -pub const CTLFLAG_CAPRD: ::c_int = 0x00008000; -pub const CTLFLAG_CAPWR: ::c_int = 0x00004000; -pub const CTLFLAG_STATS: ::c_int = 0x00002000; -pub const CTLFLAG_NOFETCH: ::c_int = 0x00001000; -pub const CTLFLAG_CAPRW: ::c_int = CTLFLAG_CAPRD | CTLFLAG_CAPWR; -pub const CTLFLAG_NEEDGIANT: ::c_int = 0x00000800; - -pub const CTLSHIFT_SECURE: ::c_int = 20; -pub const CTLFLAG_SECURE1: ::c_int = CTLFLAG_SECURE | (0 << CTLSHIFT_SECURE); -pub const CTLFLAG_SECURE2: ::c_int = CTLFLAG_SECURE | (1 << CTLSHIFT_SECURE); -pub const CTLFLAG_SECURE3: ::c_int = CTLFLAG_SECURE | (2 << CTLSHIFT_SECURE); - -pub const OID_AUTO: ::c_int = -1; - -pub const CTL_SYSCTL_DEBUG: ::c_int = 0; -pub const CTL_SYSCTL_NAME: ::c_int = 1; -pub const CTL_SYSCTL_NEXT: ::c_int = 2; -pub const CTL_SYSCTL_NAME2OID: ::c_int = 3; -pub const CTL_SYSCTL_OIDFMT: ::c_int = 4; -pub const CTL_SYSCTL_OIDDESCR: ::c_int = 5; -pub const CTL_SYSCTL_OIDLABEL: ::c_int = 6; -pub const CTL_SYSCTL_NEXTNOSKIP: ::c_int = 7; - -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_MAXVNODES: ::c_int = 5; -pub const KERN_MAXPROC: ::c_int = 6; -pub const KERN_MAXFILES: ::c_int = 7; -pub const KERN_ARGMAX: ::c_int = 8; -pub const KERN_SECURELVL: ::c_int = 9; -pub const KERN_HOSTNAME: ::c_int = 10; -pub const KERN_HOSTID: ::c_int = 11; -pub const KERN_CLOCKRATE: ::c_int = 12; -pub const KERN_VNODE: ::c_int = 13; -pub const KERN_PROC: ::c_int = 14; -pub const KERN_FILE: ::c_int = 15; -pub const KERN_PROF: ::c_int = 16; -pub const KERN_POSIX1: ::c_int = 17; -pub const KERN_NGROUPS: ::c_int = 18; -pub const KERN_JOB_CONTROL: ::c_int = 19; -pub const KERN_SAVED_IDS: ::c_int = 20; -pub const KERN_BOOTTIME: ::c_int = 21; -pub const KERN_NISDOMAINNAME: ::c_int = 22; -pub const KERN_UPDATEINTERVAL: ::c_int = 23; -pub const KERN_OSRELDATE: ::c_int = 24; -pub const KERN_NTP_PLL: ::c_int = 25; -pub const KERN_BOOTFILE: ::c_int = 26; -pub const KERN_MAXFILESPERPROC: ::c_int = 27; -pub const KERN_MAXPROCPERUID: ::c_int = 28; -pub const KERN_DUMPDEV: ::c_int = 29; -pub const KERN_IPC: ::c_int = 30; -pub const KERN_DUMMY: ::c_int = 31; -pub const KERN_PS_STRINGS: ::c_int = 32; -pub const KERN_USRSTACK: ::c_int = 33; -pub const KERN_LOGSIGEXIT: ::c_int = 34; -pub const KERN_IOV_MAX: ::c_int = 35; -pub const KERN_HOSTUUID: ::c_int = 36; -pub const KERN_ARND: ::c_int = 37; -pub const KERN_MAXPHYS: ::c_int = 38; - -pub const KERN_PROC_ALL: ::c_int = 0; -pub const KERN_PROC_PID: ::c_int = 1; -pub const KERN_PROC_PGRP: ::c_int = 2; -pub const KERN_PROC_SESSION: ::c_int = 3; -pub const KERN_PROC_TTY: ::c_int = 4; -pub const KERN_PROC_UID: ::c_int = 5; -pub const KERN_PROC_RUID: ::c_int = 6; -pub const KERN_PROC_ARGS: ::c_int = 7; -pub const KERN_PROC_PROC: ::c_int = 8; -pub const KERN_PROC_SV_NAME: ::c_int = 9; -pub const KERN_PROC_RGID: ::c_int = 10; -pub const KERN_PROC_GID: ::c_int = 11; -pub const KERN_PROC_PATHNAME: ::c_int = 12; -pub const KERN_PROC_OVMMAP: ::c_int = 13; -pub const KERN_PROC_OFILEDESC: ::c_int = 14; -pub const KERN_PROC_KSTACK: ::c_int = 15; -pub const KERN_PROC_INC_THREAD: ::c_int = 0x10; -pub const KERN_PROC_VMMAP: ::c_int = 32; -pub const KERN_PROC_FILEDESC: ::c_int = 33; -pub const KERN_PROC_GROUPS: ::c_int = 34; -pub const KERN_PROC_ENV: ::c_int = 35; -pub const KERN_PROC_AUXV: ::c_int = 36; -pub const KERN_PROC_RLIMIT: ::c_int = 37; -pub const KERN_PROC_PS_STRINGS: ::c_int = 38; -pub const KERN_PROC_UMASK: ::c_int = 39; -pub const KERN_PROC_OSREL: ::c_int = 40; -pub const KERN_PROC_SIGTRAMP: ::c_int = 41; -pub const KERN_PROC_CWD: ::c_int = 42; -pub const KERN_PROC_NFDS: ::c_int = 43; -pub const KERN_PROC_SIGFASTBLK: ::c_int = 44; - -pub const KIPC_MAXSOCKBUF: ::c_int = 1; -pub const KIPC_SOCKBUF_WASTE: ::c_int = 2; -pub const KIPC_SOMAXCONN: ::c_int = 3; -pub const KIPC_MAX_LINKHDR: ::c_int = 4; -pub const KIPC_MAX_PROTOHDR: ::c_int = 5; -pub const KIPC_MAX_HDR: ::c_int = 6; -pub const KIPC_MAX_DATALEN: ::c_int = 7; - -pub const HW_MACHINE: ::c_int = 1; -pub const HW_MODEL: ::c_int = 2; -pub const HW_NCPU: ::c_int = 3; -pub const HW_BYTEORDER: ::c_int = 4; -pub const HW_PHYSMEM: ::c_int = 5; -pub const HW_USERMEM: ::c_int = 6; -pub const HW_PAGESIZE: ::c_int = 7; -pub const HW_DISKNAMES: ::c_int = 8; -pub const HW_DISKSTATS: ::c_int = 9; -pub const HW_FLOATINGPT: ::c_int = 10; -pub const HW_MACHINE_ARCH: ::c_int = 11; -pub const HW_REALMEM: ::c_int = 12; - -pub const USER_CS_PATH: ::c_int = 1; -pub const USER_BC_BASE_MAX: ::c_int = 2; -pub const USER_BC_DIM_MAX: ::c_int = 3; -pub const USER_BC_SCALE_MAX: ::c_int = 4; -pub const USER_BC_STRING_MAX: ::c_int = 5; -pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6; -pub const USER_EXPR_NEST_MAX: ::c_int = 7; -pub const USER_LINE_MAX: ::c_int = 8; -pub const USER_RE_DUP_MAX: ::c_int = 9; -pub const USER_POSIX2_VERSION: ::c_int = 10; -pub const USER_POSIX2_C_BIND: ::c_int = 11; -pub const USER_POSIX2_C_DEV: ::c_int = 12; -pub const USER_POSIX2_CHAR_TERM: ::c_int = 13; -pub const USER_POSIX2_FORT_DEV: ::c_int = 14; -pub const USER_POSIX2_FORT_RUN: ::c_int = 15; -pub const USER_POSIX2_LOCALEDEF: ::c_int = 16; -pub const USER_POSIX2_SW_DEV: ::c_int = 17; -pub const USER_POSIX2_UPE: ::c_int = 18; -pub const USER_STREAM_MAX: ::c_int = 19; -pub const USER_TZNAME_MAX: ::c_int = 20; -pub const USER_LOCALBASE: ::c_int = 21; - -pub const CTL_P1003_1B_ASYNCHRONOUS_IO: ::c_int = 1; -pub const CTL_P1003_1B_MAPPED_FILES: ::c_int = 2; -pub const CTL_P1003_1B_MEMLOCK: ::c_int = 3; -pub const CTL_P1003_1B_MEMLOCK_RANGE: ::c_int = 4; -pub const CTL_P1003_1B_MEMORY_PROTECTION: ::c_int = 5; -pub const CTL_P1003_1B_MESSAGE_PASSING: ::c_int = 6; -pub const CTL_P1003_1B_PRIORITIZED_IO: ::c_int = 7; -pub const CTL_P1003_1B_PRIORITY_SCHEDULING: ::c_int = 8; -pub const CTL_P1003_1B_REALTIME_SIGNALS: ::c_int = 9; -pub const CTL_P1003_1B_SEMAPHORES: ::c_int = 10; -pub const CTL_P1003_1B_FSYNC: ::c_int = 11; -pub const CTL_P1003_1B_SHARED_MEMORY_OBJECTS: ::c_int = 12; -pub const CTL_P1003_1B_SYNCHRONIZED_IO: ::c_int = 13; -pub const CTL_P1003_1B_TIMERS: ::c_int = 14; -pub const CTL_P1003_1B_AIO_LISTIO_MAX: ::c_int = 15; -pub const CTL_P1003_1B_AIO_MAX: ::c_int = 16; -pub const CTL_P1003_1B_AIO_PRIO_DELTA_MAX: ::c_int = 17; -pub const CTL_P1003_1B_DELAYTIMER_MAX: ::c_int = 18; -pub const CTL_P1003_1B_MQ_OPEN_MAX: ::c_int = 19; -pub const CTL_P1003_1B_PAGESIZE: ::c_int = 20; -pub const CTL_P1003_1B_RTSIG_MAX: ::c_int = 21; -pub const CTL_P1003_1B_SEM_NSEMS_MAX: ::c_int = 22; -pub const CTL_P1003_1B_SEM_VALUE_MAX: ::c_int = 23; -pub const CTL_P1003_1B_SIGQUEUE_MAX: ::c_int = 24; -pub const CTL_P1003_1B_TIMER_MAX: ::c_int = 25; - -pub const TIOCGPTN: ::c_ulong = 0x4004740f; -pub const TIOCPTMASTER: ::c_ulong = 0x2000741c; -pub const TIOCSIG: ::c_ulong = 0x2004745f; -pub const TIOCM_DCD: ::c_int = 0x40; -pub const H4DISC: ::c_int = 0x7; - -pub const VM_TOTAL: ::c_int = 1; - -pub const BIOCSETFNR: ::c_ulong = 0x80104282; - -pub const FIODGNAME: ::c_ulong = 0x80106678; -pub const FIONWRITE: ::c_ulong = 0x40046677; -pub const FIONSPACE: ::c_ulong = 0x40046676; -pub const FIOSEEKDATA: ::c_ulong = 0xc0086661; -pub const FIOSEEKHOLE: ::c_ulong = 0xc0086662; -pub const FIOSSHMLPGCNF: ::c_ulong = 0x80306664; - -pub const JAIL_API_VERSION: u32 = 2; -pub const JAIL_CREATE: ::c_int = 0x01; -pub const JAIL_UPDATE: ::c_int = 0x02; -pub const JAIL_ATTACH: ::c_int = 0x04; -pub const JAIL_DYING: ::c_int = 0x08; -pub const JAIL_SET_MASK: ::c_int = 0x0f; -pub const JAIL_GET_MASK: ::c_int = 0x08; -pub const JAIL_SYS_DISABLE: ::c_int = 0; -pub const JAIL_SYS_NEW: ::c_int = 1; -pub const JAIL_SYS_INHERIT: ::c_int = 2; - -pub const MNT_ACLS: ::c_int = 0x08000000; -pub const MNT_BYFSID: ::c_int = 0x08000000; -pub const MNT_GJOURNAL: ::c_int = 0x02000000; -pub const MNT_MULTILABEL: ::c_int = 0x04000000; -pub const MNT_NFS4ACLS: ::c_int = 0x00000010; -pub const MNT_SNAPSHOT: ::c_int = 0x01000000; -pub const MNT_UNION: ::c_int = 0x00000020; -pub const MNT_NONBUSY: ::c_int = 0x04000000; - -pub const SCM_BINTIME: ::c_int = 0x04; -pub const SCM_REALTIME: ::c_int = 0x05; -pub const SCM_MONOTONIC: ::c_int = 0x06; -pub const SCM_TIME_INFO: ::c_int = 0x07; -pub const SCM_CREDS2: ::c_int = 0x08; - -pub const SO_BINTIME: ::c_int = 0x2000; -pub const SO_NO_OFFLOAD: ::c_int = 0x4000; -pub const SO_NO_DDP: ::c_int = 0x8000; -pub const SO_REUSEPORT_LB: ::c_int = 0x10000; -pub const SO_LABEL: ::c_int = 0x1009; -pub const SO_PEERLABEL: ::c_int = 0x1010; -pub const SO_LISTENQLIMIT: ::c_int = 0x1011; -pub const SO_LISTENQLEN: ::c_int = 0x1012; -pub const SO_LISTENINCQLEN: ::c_int = 0x1013; -pub const SO_SETFIB: ::c_int = 0x1014; -pub const SO_USER_COOKIE: ::c_int = 0x1015; -pub const SO_PROTOCOL: ::c_int = 0x1016; -pub const SO_PROTOTYPE: ::c_int = SO_PROTOCOL; -pub const SO_TS_CLOCK: ::c_int = 0x1017; -pub const SO_DOMAIN: ::c_int = 0x1019; -pub const SO_VENDOR: ::c_int = 0x80000000; - -pub const SO_TS_REALTIME_MICRO: ::c_int = 0; -pub const SO_TS_BINTIME: ::c_int = 1; -pub const SO_TS_REALTIME: ::c_int = 2; -pub const SO_TS_MONOTONIC: ::c_int = 3; -pub const SO_TS_DEFAULT: ::c_int = SO_TS_REALTIME_MICRO; -pub const SO_TS_CLOCK_MAX: ::c_int = SO_TS_MONOTONIC; - -pub const LOCAL_CREDS: ::c_int = 2; -pub const LOCAL_CREDS_PERSISTENT: ::c_int = 3; -pub const LOCAL_CONNWAIT: ::c_int = 4; -pub const LOCAL_VENDOR: ::c_int = SO_VENDOR; - -pub const PL_EVENT_NONE: ::c_int = 0; -pub const PL_EVENT_SIGNAL: ::c_int = 1; -pub const PL_FLAG_SA: ::c_int = 0x01; -pub const PL_FLAG_BOUND: ::c_int = 0x02; -pub const PL_FLAG_SCE: ::c_int = 0x04; -pub const PL_FLAG_SCX: ::c_int = 0x08; -pub const PL_FLAG_EXEC: ::c_int = 0x10; -pub const PL_FLAG_SI: ::c_int = 0x20; -pub const PL_FLAG_FORKED: ::c_int = 0x40; -pub const PL_FLAG_CHILD: ::c_int = 0x80; -pub const PL_FLAG_BORN: ::c_int = 0x100; -pub const PL_FLAG_EXITED: ::c_int = 0x200; -pub const PL_FLAG_VFORKED: ::c_int = 0x400; -pub const PL_FLAG_VFORK_DONE: ::c_int = 0x800; - -pub const PT_LWPINFO: ::c_int = 13; -pub const PT_GETNUMLWPS: ::c_int = 14; -pub const PT_GETLWPLIST: ::c_int = 15; -pub const PT_CLEARSTEP: ::c_int = 16; -pub const PT_SETSTEP: ::c_int = 17; -pub const PT_SUSPEND: ::c_int = 18; -pub const PT_RESUME: ::c_int = 19; -pub const PT_TO_SCE: ::c_int = 20; -pub const PT_TO_SCX: ::c_int = 21; -pub const PT_SYSCALL: ::c_int = 22; -pub const PT_FOLLOW_FORK: ::c_int = 23; -pub const PT_LWP_EVENTS: ::c_int = 24; -pub const PT_GET_EVENT_MASK: ::c_int = 25; -pub const PT_SET_EVENT_MASK: ::c_int = 26; -pub const PT_GET_SC_ARGS: ::c_int = 27; -pub const PT_GET_SC_RET: ::c_int = 28; -pub const PT_COREDUMP: ::c_int = 29; -pub const PT_GETREGS: ::c_int = 33; -pub const PT_SETREGS: ::c_int = 34; -pub const PT_GETFPREGS: ::c_int = 35; -pub const PT_SETFPREGS: ::c_int = 36; -pub const PT_GETDBREGS: ::c_int = 37; -pub const PT_SETDBREGS: ::c_int = 38; -pub const PT_VM_TIMESTAMP: ::c_int = 40; -pub const PT_VM_ENTRY: ::c_int = 41; -pub const PT_GETREGSET: ::c_int = 42; -pub const PT_SETREGSET: ::c_int = 43; -pub const PT_SC_REMOTE: ::c_int = 44; -pub const PT_FIRSTMACH: ::c_int = 64; - -pub const PTRACE_EXEC: ::c_int = 0x0001; -pub const PTRACE_SCE: ::c_int = 0x0002; -pub const PTRACE_SCX: ::c_int = 0x0004; -pub const PTRACE_SYSCALL: ::c_int = PTRACE_SCE | PTRACE_SCX; -pub const PTRACE_FORK: ::c_int = 0x0008; -pub const PTRACE_LWP: ::c_int = 0x0010; -pub const PTRACE_VFORK: ::c_int = 0x0020; -pub const PTRACE_DEFAULT: ::c_int = PTRACE_EXEC; - -pub const PC_COMPRESS: u32 = 0x00000001; -pub const PC_ALL: u32 = 0x00000002; - -pub const PROC_SPROTECT: ::c_int = 1; -pub const PROC_REAP_ACQUIRE: ::c_int = 2; -pub const PROC_REAP_RELEASE: ::c_int = 3; -pub const PROC_REAP_STATUS: ::c_int = 4; -pub const PROC_REAP_GETPIDS: ::c_int = 5; -pub const PROC_REAP_KILL: ::c_int = 6; -pub const PROC_TRACE_CTL: ::c_int = 7; -pub const PROC_TRACE_STATUS: ::c_int = 8; -pub const PROC_TRAPCAP_CTL: ::c_int = 9; -pub const PROC_TRAPCAP_STATUS: ::c_int = 10; -pub const PROC_PDEATHSIG_CTL: ::c_int = 11; -pub const PROC_PDEATHSIG_STATUS: ::c_int = 12; -pub const PROC_ASLR_CTL: ::c_int = 13; -pub const PROC_ASLR_STATUS: ::c_int = 14; -pub const PROC_PROTMAX_CTL: ::c_int = 15; -pub const PROC_PROTMAX_STATUS: ::c_int = 16; -pub const PROC_STACKGAP_CTL: ::c_int = 17; -pub const PROC_STACKGAP_STATUS: ::c_int = 18; -pub const PROC_NO_NEW_PRIVS_CTL: ::c_int = 19; -pub const PROC_NO_NEW_PRIVS_STATUS: ::c_int = 20; -pub const PROC_WXMAP_CTL: ::c_int = 21; -pub const PROC_WXMAP_STATUS: ::c_int = 22; -pub const PROC_PROCCTL_MD_MIN: ::c_int = 0x10000000; - -pub const PPROT_SET: ::c_int = 1; -pub const PPROT_CLEAR: ::c_int = 2; -pub const PPROT_DESCEND: ::c_int = 0x10; -pub const PPROT_INHERIT: ::c_int = 0x20; - -pub const PROC_TRACE_CTL_ENABLE: ::c_int = 1; -pub const PROC_TRACE_CTL_DISABLE: ::c_int = 2; -pub const PROC_TRACE_CTL_DISABLE_EXEC: ::c_int = 3; - -pub const PROC_TRAPCAP_CTL_ENABLE: ::c_int = 1; -pub const PROC_TRAPCAP_CTL_DISABLE: ::c_int = 2; - -pub const PROC_ASLR_FORCE_ENABLE: ::c_int = 1; -pub const PROC_ASLR_FORCE_DISABLE: ::c_int = 2; -pub const PROC_ASLR_NOFORCE: ::c_int = 3; -pub const PROC_ASLR_ACTIVE: ::c_int = 0x80000000; - -pub const PROC_PROTMAX_FORCE_ENABLE: ::c_int = 1; -pub const PROC_PROTMAX_FORCE_DISABLE: ::c_int = 2; -pub const PROC_PROTMAX_NOFORCE: ::c_int = 3; -pub const PROC_PROTMAX_ACTIVE: ::c_int = 0x80000000; - -pub const PROC_STACKGAP_ENABLE: ::c_int = 0x0001; -pub const PROC_STACKGAP_DISABLE: ::c_int = 0x0002; -pub const PROC_STACKGAP_ENABLE_EXEC: ::c_int = 0x0004; -pub const PROC_STACKGAP_DISABLE_EXEC: ::c_int = 0x0008; - -pub const PROC_NO_NEW_PRIVS_ENABLE: ::c_int = 1; -pub const PROC_NO_NEW_PRIVS_DISABLE: ::c_int = 2; - -pub const PROC_WX_MAPPINGS_PERMIT: ::c_int = 0x0001; -pub const PROC_WX_MAPPINGS_DISALLOW_EXEC: ::c_int = 0x0002; -pub const PROC_WXORX_ENFORCE: ::c_int = 0x80000000; - -pub const AF_SLOW: ::c_int = 33; -pub const AF_SCLUSTER: ::c_int = 34; -pub const AF_ARP: ::c_int = 35; -pub const AF_BLUETOOTH: ::c_int = 36; -pub const AF_IEEE80211: ::c_int = 37; -pub const AF_INET_SDP: ::c_int = 40; -pub const AF_INET6_SDP: ::c_int = 42; - -// sys/net/if.h -pub const IF_MAXUNIT: ::c_int = 0x7fff; -/// (n) interface is up -pub const IFF_UP: ::c_int = 0x1; -/// (i) broadcast address valid -pub const IFF_BROADCAST: ::c_int = 0x2; -/// (n) turn on debugging -pub const IFF_DEBUG: ::c_int = 0x4; -/// (i) is a loopback net -pub const IFF_LOOPBACK: ::c_int = 0x8; -/// (i) is a point-to-point link -pub const IFF_POINTOPOINT: ::c_int = 0x10; -/// (i) calls if_input in net epoch -pub const IFF_KNOWSEPOCH: ::c_int = 0x20; -/// (d) resources allocated -pub const IFF_RUNNING: ::c_int = 0x40; -#[doc(hidden)] -#[deprecated( - since = "0.2.54", - note = "IFF_DRV_RUNNING is deprecated. Use the portable IFF_RUNNING instead" -)] -/// (d) resources allocate -pub const IFF_DRV_RUNNING: ::c_int = 0x40; -/// (n) no address resolution protocol -pub const IFF_NOARP: ::c_int = 0x80; -/// (n) receive all packets -pub const IFF_PROMISC: ::c_int = 0x100; -/// (n) receive all multicast packets -pub const IFF_ALLMULTI: ::c_int = 0x200; -/// (d) tx hardware queue is full -pub const IFF_OACTIVE: ::c_int = 0x400; -#[doc(hidden)] -#[deprecated(since = "0.2.54", note = "Use the portable `IFF_OACTIVE` instead")] -/// (d) tx hardware queue is full -pub const IFF_DRV_OACTIVE: ::c_int = 0x400; -/// (i) can't hear own transmissions -pub const IFF_SIMPLEX: ::c_int = 0x800; -/// per link layer defined bit -pub const IFF_LINK0: ::c_int = 0x1000; -/// per link layer defined bit -pub const IFF_LINK1: ::c_int = 0x2000; -/// per link layer defined bit -pub const IFF_LINK2: ::c_int = 0x4000; -/// use alternate physical connection -pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; -/// (i) supports multicast -pub const IFF_MULTICAST: ::c_int = 0x8000; -/// (i) unconfigurable using ioctl(2) -pub const IFF_CANTCONFIG: ::c_int = 0x10000; -/// (n) user-requested promisc mode -pub const IFF_PPROMISC: ::c_int = 0x20000; -/// (n) user-requested monitor mode -pub const IFF_MONITOR: ::c_int = 0x40000; -/// (n) static ARP -pub const IFF_STATICARP: ::c_int = 0x80000; -/// (n) interface is winding down -pub const IFF_DYING: ::c_int = 0x200000; -/// (n) interface is being renamed -pub const IFF_RENAMING: ::c_int = 0x400000; -/// interface is not part of any groups -pub const IFF_NOGROUP: ::c_int = 0x800000; - -/// link invalid/unknown -pub const LINK_STATE_UNKNOWN: ::c_int = 0; -/// link is down -pub const LINK_STATE_DOWN: ::c_int = 1; -/// link is up -pub const LINK_STATE_UP: ::c_int = 2; - -/// can offload checksum on RX -pub const IFCAP_RXCSUM: ::c_int = 0x00001; -/// can offload checksum on TX -pub const IFCAP_TXCSUM: ::c_int = 0x00002; -/// can be a network console -pub const IFCAP_NETCONS: ::c_int = 0x00004; -/// VLAN-compatible MTU -pub const IFCAP_VLAN_MTU: ::c_int = 0x00008; -/// hardware VLAN tag support -pub const IFCAP_VLAN_HWTAGGING: ::c_int = 0x00010; -/// 9000 byte MTU supported -pub const IFCAP_JUMBO_MTU: ::c_int = 0x00020; -/// driver supports polling -pub const IFCAP_POLLING: ::c_int = 0x00040; -/// can do IFCAP_HWCSUM on VLANs -pub const IFCAP_VLAN_HWCSUM: ::c_int = 0x00080; -/// can do TCP Segmentation Offload -pub const IFCAP_TSO4: ::c_int = 0x00100; -/// can do TCP6 Segmentation Offload -pub const IFCAP_TSO6: ::c_int = 0x00200; -/// can do Large Receive Offload -pub const IFCAP_LRO: ::c_int = 0x00400; -/// wake on any unicast frame -pub const IFCAP_WOL_UCAST: ::c_int = 0x00800; -/// wake on any multicast frame -pub const IFCAP_WOL_MCAST: ::c_int = 0x01000; -/// wake on any Magic Packet -pub const IFCAP_WOL_MAGIC: ::c_int = 0x02000; -/// interface can offload TCP -pub const IFCAP_TOE4: ::c_int = 0x04000; -/// interface can offload TCP6 -pub const IFCAP_TOE6: ::c_int = 0x08000; -/// interface hw can filter vlan tag -pub const IFCAP_VLAN_HWFILTER: ::c_int = 0x10000; -/// can do SIOCGIFCAPNV/SIOCSIFCAPNV -pub const IFCAP_NV: ::c_int = 0x20000; -/// can do IFCAP_TSO on VLANs -pub const IFCAP_VLAN_HWTSO: ::c_int = 0x40000; -/// the runtime link state is dynamic -pub const IFCAP_LINKSTATE: ::c_int = 0x80000; -/// netmap mode supported/enabled -pub const IFCAP_NETMAP: ::c_int = 0x100000; -/// can offload checksum on IPv6 RX -pub const IFCAP_RXCSUM_IPV6: ::c_int = 0x200000; -/// can offload checksum on IPv6 TX -pub const IFCAP_TXCSUM_IPV6: ::c_int = 0x400000; -/// manages counters internally -pub const IFCAP_HWSTATS: ::c_int = 0x800000; -/// hardware supports TX rate limiting -pub const IFCAP_TXRTLMT: ::c_int = 0x1000000; -/// hardware rx timestamping -pub const IFCAP_HWRXTSTMP: ::c_int = 0x2000000; -/// understands M_EXTPG mbufs -pub const IFCAP_MEXTPG: ::c_int = 0x4000000; -/// can do TLS encryption and segmentation for TCP -pub const IFCAP_TXTLS4: ::c_int = 0x8000000; -/// can do TLS encryption and segmentation for TCP6 -pub const IFCAP_TXTLS6: ::c_int = 0x10000000; -/// can do IFCAN_HWCSUM on VXLANs -pub const IFCAP_VXLAN_HWCSUM: ::c_int = 0x20000000; -/// can do IFCAP_TSO on VXLANs -pub const IFCAP_VXLAN_HWTSO: ::c_int = 0x40000000; -/// can do TLS with rate limiting -pub const IFCAP_TXTLS_RTLMT: ::c_int = 0x80000000; - -pub const IFCAP_HWCSUM_IPV6: ::c_int = IFCAP_RXCSUM_IPV6 | IFCAP_TXCSUM_IPV6; -pub const IFCAP_HWCSUM: ::c_int = IFCAP_RXCSUM | IFCAP_TXCSUM; -pub const IFCAP_TSO: ::c_int = IFCAP_TSO4 | IFCAP_TSO6; -pub const IFCAP_WOL: ::c_int = IFCAP_WOL_UCAST | IFCAP_WOL_MCAST | IFCAP_WOL_MAGIC; -pub const IFCAP_TOE: ::c_int = IFCAP_TOE4 | IFCAP_TOE6; -pub const IFCAP_TXTLS: ::c_int = IFCAP_TXTLS4 | IFCAP_TXTLS6; -pub const IFCAP_CANTCHANGE: ::c_int = IFCAP_NETMAP | IFCAP_NV; - -pub const IFQ_MAXLEN: ::c_int = 50; -pub const IFNET_SLOWHZ: ::c_int = 1; - -pub const IFAN_ARRIVAL: ::c_int = 0; -pub const IFAN_DEPARTURE: ::c_int = 1; - -pub const IFSTATMAX: ::c_int = 800; - -pub const RSS_FUNC_NONE: ::c_int = 0; -pub const RSS_FUNC_PRIVATE: ::c_int = 1; -pub const RSS_FUNC_TOEPLITZ: ::c_int = 2; - -pub const RSS_TYPE_IPV4: ::c_int = 0x00000001; -pub const RSS_TYPE_TCP_IPV4: ::c_int = 0x00000002; -pub const RSS_TYPE_IPV6: ::c_int = 0x00000004; -pub const RSS_TYPE_IPV6_EX: ::c_int = 0x00000008; -pub const RSS_TYPE_TCP_IPV6: ::c_int = 0x00000010; -pub const RSS_TYPE_TCP_IPV6_EX: ::c_int = 0x00000020; -pub const RSS_TYPE_UDP_IPV4: ::c_int = 0x00000040; -pub const RSS_TYPE_UDP_IPV6: ::c_int = 0x00000080; -pub const RSS_TYPE_UDP_IPV6_EX: ::c_int = 0x00000100; -pub const RSS_KEYLEN: ::c_int = 128; - -pub const IFNET_PCP_NONE: ::c_int = 0xff; -pub const IFDR_MSG_SIZE: ::c_int = 64; -pub const IFDR_REASON_MSG: ::c_int = 1; -pub const IFDR_REASON_VENDOR: ::c_int = 2; - -// sys/net/if_mib.h - -/// non-interface-specific -pub const IFMIB_SYSTEM: ::c_int = 1; -/// per-interface data table -pub const IFMIB_IFDATA: ::c_int = 2; - -/// generic stats for all kinds of ifaces -pub const IFDATA_GENERAL: ::c_int = 1; -/// specific to the type of interface -pub const IFDATA_LINKSPECIFIC: ::c_int = 2; -/// driver name and unit -pub const IFDATA_DRIVERNAME: ::c_int = 3; - -/// number of interfaces configured -pub const IFMIB_IFCOUNT: ::c_int = 1; - -/// functions not specific to a type of iface -pub const NETLINK_GENERIC: ::c_int = 0; - -pub const DOT3COMPLIANCE_STATS: ::c_int = 1; -pub const DOT3COMPLIANCE_COLLS: ::c_int = 2; - -pub const dot3ChipSetAMD7990: ::c_int = 1; -pub const dot3ChipSetAMD79900: ::c_int = 2; -pub const dot3ChipSetAMD79C940: ::c_int = 3; - -pub const dot3ChipSetIntel82586: ::c_int = 1; -pub const dot3ChipSetIntel82596: ::c_int = 2; -pub const dot3ChipSetIntel82557: ::c_int = 3; - -pub const dot3ChipSetNational8390: ::c_int = 1; -pub const dot3ChipSetNationalSonic: ::c_int = 2; - -pub const dot3ChipSetFujitsu86950: ::c_int = 1; - -pub const dot3ChipSetDigitalDC21040: ::c_int = 1; -pub const dot3ChipSetDigitalDC21140: ::c_int = 2; -pub const dot3ChipSetDigitalDC21041: ::c_int = 3; -pub const dot3ChipSetDigitalDC21140A: ::c_int = 4; -pub const dot3ChipSetDigitalDC21142: ::c_int = 5; - -pub const dot3ChipSetWesternDigital83C690: ::c_int = 1; -pub const dot3ChipSetWesternDigital83C790: ::c_int = 2; - -// sys/netinet/in.h -// Protocols (RFC 1700) -// NOTE: These are in addition to the constants defined in src/unix/mod.rs - -// IPPROTO_IP defined in src/unix/mod.rs -/// IP6 hop-by-hop options -pub const IPPROTO_HOPOPTS: ::c_int = 0; -// IPPROTO_ICMP defined in src/unix/mod.rs -/// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; -/// gateway^2 (deprecated) -pub const IPPROTO_GGP: ::c_int = 3; -/// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; -// IPPROTO_TCP defined in src/unix/mod.rs -/// Stream protocol II. -pub const IPPROTO_ST: ::c_int = 7; -/// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; -/// private interior gateway -pub const IPPROTO_PIGP: ::c_int = 9; -/// BBN RCC Monitoring -pub const IPPROTO_RCCMON: ::c_int = 10; -/// network voice protocol -pub const IPPROTO_NVPII: ::c_int = 11; -/// pup -pub const IPPROTO_PUP: ::c_int = 12; -/// Argus -pub const IPPROTO_ARGUS: ::c_int = 13; -/// EMCON -pub const IPPROTO_EMCON: ::c_int = 14; -/// Cross Net Debugger -pub const IPPROTO_XNET: ::c_int = 15; -/// Chaos -pub const IPPROTO_CHAOS: ::c_int = 16; -// IPPROTO_UDP defined in src/unix/mod.rs -/// Multiplexing -pub const IPPROTO_MUX: ::c_int = 18; -/// DCN Measurement Subsystems -pub const IPPROTO_MEAS: ::c_int = 19; -/// Host Monitoring -pub const IPPROTO_HMP: ::c_int = 20; -/// Packet Radio Measurement -pub const IPPROTO_PRM: ::c_int = 21; -/// xns idp -pub const IPPROTO_IDP: ::c_int = 22; -/// Trunk-1 -pub const IPPROTO_TRUNK1: ::c_int = 23; -/// Trunk-2 -pub const IPPROTO_TRUNK2: ::c_int = 24; -/// Leaf-1 -pub const IPPROTO_LEAF1: ::c_int = 25; -/// Leaf-2 -pub const IPPROTO_LEAF2: ::c_int = 26; -/// Reliable Data -pub const IPPROTO_RDP: ::c_int = 27; -/// Reliable Transaction -pub const IPPROTO_IRTP: ::c_int = 28; -/// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; -/// Bulk Data Transfer -pub const IPPROTO_BLT: ::c_int = 30; -/// Network Services -pub const IPPROTO_NSP: ::c_int = 31; -/// Merit Internodal -pub const IPPROTO_INP: ::c_int = 32; -#[doc(hidden)] -#[deprecated( - since = "0.2.72", - note = "IPPROTO_SEP is deprecated. Use IPPROTO_DCCP instead" -)] -pub const IPPROTO_SEP: ::c_int = 33; -/// Datagram Congestion Control Protocol -pub const IPPROTO_DCCP: ::c_int = 33; -/// Third Party Connect -pub const IPPROTO_3PC: ::c_int = 34; -/// InterDomain Policy Routing -pub const IPPROTO_IDPR: ::c_int = 35; -/// XTP -pub const IPPROTO_XTP: ::c_int = 36; -/// Datagram Delivery -pub const IPPROTO_DDP: ::c_int = 37; -/// Control Message Transport -pub const IPPROTO_CMTP: ::c_int = 38; -/// TP++ Transport -pub const IPPROTO_TPXX: ::c_int = 39; -/// IL transport protocol -pub const IPPROTO_IL: ::c_int = 40; -// IPPROTO_IPV6 defined in src/unix/mod.rs -/// Source Demand Routing -pub const IPPROTO_SDRP: ::c_int = 42; -/// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; -/// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; -/// InterDomain Routing -pub const IPPROTO_IDRP: ::c_int = 45; -/// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; -/// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; -/// Mobile Host Routing -pub const IPPROTO_MHRP: ::c_int = 48; -/// BHA -pub const IPPROTO_BHA: ::c_int = 49; -/// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; -/// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; -/// Integ. Net Layer Security -pub const IPPROTO_INLSP: ::c_int = 52; -/// IP with encryption -pub const IPPROTO_SWIPE: ::c_int = 53; -/// Next Hop Resolution -pub const IPPROTO_NHRP: ::c_int = 54; -/// IP Mobility -pub const IPPROTO_MOBILE: ::c_int = 55; -/// Transport Layer Security -pub const IPPROTO_TLSP: ::c_int = 56; -/// SKIP -pub const IPPROTO_SKIP: ::c_int = 57; -// IPPROTO_ICMPV6 defined in src/unix/mod.rs -/// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; -/// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; -/// any host internal protocol -pub const IPPROTO_AHIP: ::c_int = 61; -/// CFTP -pub const IPPROTO_CFTP: ::c_int = 62; -/// "hello" routing protocol -pub const IPPROTO_HELLO: ::c_int = 63; -/// SATNET/Backroom EXPAK -pub const IPPROTO_SATEXPAK: ::c_int = 64; -/// Kryptolan -pub const IPPROTO_KRYPTOLAN: ::c_int = 65; -/// Remote Virtual Disk -pub const IPPROTO_RVD: ::c_int = 66; -/// Pluribus Packet Core -pub const IPPROTO_IPPC: ::c_int = 67; -/// Any distributed FS -pub const IPPROTO_ADFS: ::c_int = 68; -/// Satnet Monitoring -pub const IPPROTO_SATMON: ::c_int = 69; -/// VISA Protocol -pub const IPPROTO_VISA: ::c_int = 70; -/// Packet Core Utility -pub const IPPROTO_IPCV: ::c_int = 71; -/// Comp. Prot. Net. Executive -pub const IPPROTO_CPNX: ::c_int = 72; -/// Comp. Prot. HeartBeat -pub const IPPROTO_CPHB: ::c_int = 73; -/// Wang Span Network -pub const IPPROTO_WSN: ::c_int = 74; -/// Packet Video Protocol -pub const IPPROTO_PVP: ::c_int = 75; -/// BackRoom SATNET Monitoring -pub const IPPROTO_BRSATMON: ::c_int = 76; -/// Sun net disk proto (temp.) -pub const IPPROTO_ND: ::c_int = 77; -/// WIDEBAND Monitoring -pub const IPPROTO_WBMON: ::c_int = 78; -/// WIDEBAND EXPAK -pub const IPPROTO_WBEXPAK: ::c_int = 79; -/// ISO cnlp -pub const IPPROTO_EON: ::c_int = 80; -/// VMTP -pub const IPPROTO_VMTP: ::c_int = 81; -/// Secure VMTP -pub const IPPROTO_SVMTP: ::c_int = 82; -/// Banyon VINES -pub const IPPROTO_VINES: ::c_int = 83; -/// TTP -pub const IPPROTO_TTP: ::c_int = 84; -/// NSFNET-IGP -pub const IPPROTO_IGP: ::c_int = 85; -/// dissimilar gateway prot. -pub const IPPROTO_DGP: ::c_int = 86; -/// TCF -pub const IPPROTO_TCF: ::c_int = 87; -/// Cisco/GXS IGRP -pub const IPPROTO_IGRP: ::c_int = 88; -/// OSPFIGP -pub const IPPROTO_OSPFIGP: ::c_int = 89; -/// Strite RPC protocol -pub const IPPROTO_SRPC: ::c_int = 90; -/// Locus Address Resoloution -pub const IPPROTO_LARP: ::c_int = 91; -/// Multicast Transport -pub const IPPROTO_MTP: ::c_int = 92; -/// AX.25 Frames -pub const IPPROTO_AX25: ::c_int = 93; -/// IP encapsulated in IP -pub const IPPROTO_IPEIP: ::c_int = 94; -/// Mobile Int.ing control -pub const IPPROTO_MICP: ::c_int = 95; -/// Semaphore Comm. security -pub const IPPROTO_SCCSP: ::c_int = 96; -/// Ethernet IP encapsulation -pub const IPPROTO_ETHERIP: ::c_int = 97; -/// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; -/// any private encr. scheme -pub const IPPROTO_APES: ::c_int = 99; -/// GMTP -pub const IPPROTO_GMTP: ::c_int = 100; -/// payload compression (IPComp) -pub const IPPROTO_IPCOMP: ::c_int = 108; -/// SCTP -pub const IPPROTO_SCTP: ::c_int = 132; -/// IPv6 Mobility Header -pub const IPPROTO_MH: ::c_int = 135; -/// UDP-Lite -pub const IPPROTO_UDPLITE: ::c_int = 136; -/// IP6 Host Identity Protocol -pub const IPPROTO_HIP: ::c_int = 139; -/// IP6 Shim6 Protocol -pub const IPPROTO_SHIM6: ::c_int = 140; - -/* 101-254: Partly Unassigned */ -/// Protocol Independent Mcast -pub const IPPROTO_PIM: ::c_int = 103; -/// CARP -pub const IPPROTO_CARP: ::c_int = 112; -/// PGM -pub const IPPROTO_PGM: ::c_int = 113; -/// MPLS-in-IP -pub const IPPROTO_MPLS: ::c_int = 137; -/// PFSYNC -pub const IPPROTO_PFSYNC: ::c_int = 240; - -/* 255: Reserved */ -/* BSD Private, local use, namespace incursion, no longer used */ -/// OLD divert pseudo-proto -pub const IPPROTO_OLD_DIVERT: ::c_int = 254; -pub const IPPROTO_MAX: ::c_int = 256; -/// last return value of *_input(), meaning "all job for this pkt is done". -pub const IPPROTO_DONE: ::c_int = 257; - -/* Only used internally, so can be outside the range of valid IP protocols. */ -/// divert pseudo-protocol -pub const IPPROTO_DIVERT: ::c_int = 258; -/// SeND pseudo-protocol -pub const IPPROTO_SEND: ::c_int = 259; - -// sys/netinet/TCP.h -pub const TCP_MD5SIG: ::c_int = 16; -pub const TCP_INFO: ::c_int = 32; -pub const TCP_CONGESTION: ::c_int = 64; -pub const TCP_CCALGOOPT: ::c_int = 65; -pub const TCP_MAXUNACKTIME: ::c_int = 68; -pub const TCP_MAXPEAKRATE: ::c_int = 69; -pub const TCP_IDLE_REDUCE: ::c_int = 70; -pub const TCP_REMOTE_UDP_ENCAPS_PORT: ::c_int = 71; -pub const TCP_DELACK: ::c_int = 72; -pub const TCP_FIN_IS_RST: ::c_int = 73; -pub const TCP_LOG_LIMIT: ::c_int = 74; -pub const TCP_SHARED_CWND_ALLOWED: ::c_int = 75; -pub const TCP_PROC_ACCOUNTING: ::c_int = 76; -pub const TCP_USE_CMP_ACKS: ::c_int = 77; -pub const TCP_PERF_INFO: ::c_int = 78; -pub const TCP_LRD: ::c_int = 79; -pub const TCP_KEEPINIT: ::c_int = 128; -pub const TCP_FASTOPEN: ::c_int = 1025; -pub const TCP_PCAP_OUT: ::c_int = 2048; -pub const TCP_PCAP_IN: ::c_int = 4096; -pub const TCP_FASTOPEN_PSK_LEN: ::c_int = 16; -pub const TCP_FUNCTION_NAME_LEN_MAX: ::c_int = 32; - -pub const IP_BINDANY: ::c_int = 24; -pub const IP_BINDMULTI: ::c_int = 25; -pub const IP_RSS_LISTEN_BUCKET: ::c_int = 26; -pub const IP_ORIGDSTADDR: ::c_int = 27; -pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR; - -pub const IP_DONTFRAG: ::c_int = 67; -pub const IP_RECVTOS: ::c_int = 68; - -pub const IPV6_BINDANY: ::c_int = 64; -pub const IPV6_ORIGDSTADDR: ::c_int = 72; -pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR; - -pub const PF_SLOW: ::c_int = AF_SLOW; -pub const PF_SCLUSTER: ::c_int = AF_SCLUSTER; -pub const PF_ARP: ::c_int = AF_ARP; -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -pub const PF_IEEE80211: ::c_int = AF_IEEE80211; -pub const PF_INET_SDP: ::c_int = AF_INET_SDP; -pub const PF_INET6_SDP: ::c_int = AF_INET6_SDP; - -pub const NET_RT_DUMP: ::c_int = 1; -pub const NET_RT_FLAGS: ::c_int = 2; -pub const NET_RT_IFLIST: ::c_int = 3; -pub const NET_RT_IFMALIST: ::c_int = 4; -pub const NET_RT_IFLISTL: ::c_int = 5; - -// System V IPC -pub const IPC_INFO: ::c_int = 3; -pub const MSG_NOERROR: ::c_int = 0o10000; -pub const SHM_LOCK: ::c_int = 11; -pub const SHM_UNLOCK: ::c_int = 12; -pub const SHM_STAT: ::c_int = 13; -pub const SHM_INFO: ::c_int = 14; -pub const SHM_ANON: *mut ::c_char = 1 as *mut ::c_char; - -// The *_MAXID constants never should've been used outside of the -// FreeBSD base system. And with the exception of CTL_P1003_1B_MAXID, -// they were all removed in svn r262489. They remain here for backwards -// compatibility only, and are scheduled to be removed in libc 1.0.0. -#[doc(hidden)] -#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] -pub const CTL_MAXID: ::c_int = 10; -#[doc(hidden)] -#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] -pub const KERN_MAXID: ::c_int = 38; -#[doc(hidden)] -#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] -pub const HW_MAXID: ::c_int = 13; -#[doc(hidden)] -#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] -pub const USER_MAXID: ::c_int = 21; -#[doc(hidden)] -#[deprecated(since = "0.2.74", note = "Removed in FreeBSD 13")] -pub const CTL_P1003_1B_MAXID: ::c_int = 26; - -pub const MSG_NOTIFICATION: ::c_int = 0x00002000; -pub const MSG_NBIO: ::c_int = 0x00004000; -pub const MSG_COMPAT: ::c_int = 0x00008000; -pub const MSG_CMSG_CLOEXEC: ::c_int = 0x00040000; -pub const MSG_NOSIGNAL: ::c_int = 0x20000; -pub const MSG_WAITFORONE: ::c_int = 0x00080000; - -// utmpx entry types -pub const EMPTY: ::c_short = 0; -pub const BOOT_TIME: ::c_short = 1; -pub const OLD_TIME: ::c_short = 2; -pub const NEW_TIME: ::c_short = 3; -pub const USER_PROCESS: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const DEAD_PROCESS: ::c_short = 7; -pub const SHUTDOWN_TIME: ::c_short = 8; -// utmp database types -pub const UTXDB_ACTIVE: ::c_int = 0; -pub const UTXDB_LASTLOGIN: ::c_int = 1; -pub const UTXDB_LOG: ::c_int = 2; - -pub const LC_COLLATE_MASK: ::c_int = 1 << 0; -pub const LC_CTYPE_MASK: ::c_int = 1 << 1; -pub const LC_MONETARY_MASK: ::c_int = 1 << 2; -pub const LC_NUMERIC_MASK: ::c_int = 1 << 3; -pub const LC_TIME_MASK: ::c_int = 1 << 4; -pub const LC_MESSAGES_MASK: ::c_int = 1 << 5; -pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK - | LC_CTYPE_MASK - | LC_MESSAGES_MASK - | LC_MONETARY_MASK - | LC_NUMERIC_MASK - | LC_TIME_MASK; - -pub const WSTOPPED: ::c_int = 2; // same as WUNTRACED -pub const WCONTINUED: ::c_int = 4; -pub const WNOWAIT: ::c_int = 8; -pub const WEXITED: ::c_int = 16; -pub const WTRAPPED: ::c_int = 32; - -// FreeBSD defines a great many more of these, we only expose the -// standardized ones. -pub const P_PID: idtype_t = 0; -pub const P_PGID: idtype_t = 2; -pub const P_ALL: idtype_t = 7; - -pub const UTIME_OMIT: c_long = -2; -pub const UTIME_NOW: c_long = -1; - -pub const B460800: ::speed_t = 460800; -pub const B921600: ::speed_t = 921600; - -pub const AT_FDCWD: ::c_int = -100; -pub const AT_EACCESS: ::c_int = 0x100; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x200; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; -pub const AT_REMOVEDIR: ::c_int = 0x800; -pub const AT_RESOLVE_BENEATH: ::c_int = 0x2000; -pub const AT_EMPTY_PATH: ::c_int = 0x4000; - -pub const AT_NULL: ::c_int = 0; -pub const AT_IGNORE: ::c_int = 1; -pub const AT_EXECFD: ::c_int = 2; -pub const AT_PHDR: ::c_int = 3; -pub const AT_PHENT: ::c_int = 4; -pub const AT_PHNUM: ::c_int = 5; -pub const AT_PAGESZ: ::c_int = 6; -pub const AT_BASE: ::c_int = 7; -pub const AT_FLAGS: ::c_int = 8; -pub const AT_ENTRY: ::c_int = 9; -pub const AT_NOTELF: ::c_int = 10; -pub const AT_UID: ::c_int = 11; -pub const AT_EUID: ::c_int = 12; -pub const AT_GID: ::c_int = 13; -pub const AT_EGID: ::c_int = 14; -pub const AT_EXECPATH: ::c_int = 15; -pub const AT_CANARY: ::c_int = 16; -pub const AT_OSRELDATE: ::c_int = 18; -pub const AT_NCPUS: ::c_int = 19; -pub const AT_PAGESIZES: ::c_int = 20; -pub const AT_TIMEKEEP: ::c_int = 22; -pub const AT_HWCAP: ::c_int = 25; -pub const AT_HWCAP2: ::c_int = 26; -pub const AT_USRSTACKBASE: ::c_int = 35; -pub const AT_USRSTACKLIM: ::c_int = 36; - -pub const TABDLY: ::tcflag_t = 0x00000004; -pub const TAB0: ::tcflag_t = 0x00000000; -pub const TAB3: ::tcflag_t = 0x00000004; - -pub const _PC_ACL_NFS4: ::c_int = 64; - -pub const _SC_CPUSET_SIZE: ::c_int = 122; - -pub const _UUID_NODE_LEN: usize = 6; - -// Flags which can be passed to pdfork(2) -pub const PD_DAEMON: ::c_int = 0x00000001; -pub const PD_CLOEXEC: ::c_int = 0x00000002; -pub const PD_ALLOWED_AT_FORK: ::c_int = PD_DAEMON | PD_CLOEXEC; - -// Values for struct rtprio (type_ field) -pub const RTP_PRIO_REALTIME: ::c_ushort = 2; -pub const RTP_PRIO_NORMAL: ::c_ushort = 3; -pub const RTP_PRIO_IDLE: ::c_ushort = 4; - -pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; -pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; -pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x04; -pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x08; -pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10; -pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20; - -// Flags for chflags(2) -pub const UF_SYSTEM: ::c_ulong = 0x00000080; -pub const UF_SPARSE: ::c_ulong = 0x00000100; -pub const UF_OFFLINE: ::c_ulong = 0x00000200; -pub const UF_REPARSE: ::c_ulong = 0x00000400; -pub const UF_ARCHIVE: ::c_ulong = 0x00000800; -pub const UF_READONLY: ::c_ulong = 0x00001000; -pub const UF_HIDDEN: ::c_ulong = 0x00008000; -pub const SF_SNAPSHOT: ::c_ulong = 0x00200000; - -// fcntl commands -pub const F_ADD_SEALS: ::c_int = 19; -pub const F_GET_SEALS: ::c_int = 20; -pub const F_OGETLK: ::c_int = 7; -pub const F_OSETLK: ::c_int = 8; -pub const F_OSETLKW: ::c_int = 9; -pub const F_RDAHEAD: ::c_int = 16; -pub const F_READAHEAD: ::c_int = 15; -pub const F_SETLK_REMOTE: ::c_int = 14; -pub const F_KINFO: ::c_int = 22; - -// for use with F_ADD_SEALS -pub const F_SEAL_GROW: ::c_int = 4; -pub const F_SEAL_SEAL: ::c_int = 1; -pub const F_SEAL_SHRINK: ::c_int = 2; -pub const F_SEAL_WRITE: ::c_int = 8; - -// for use with fspacectl -pub const SPACECTL_DEALLOC: ::c_int = 1; - -// For getrandom() -pub const GRND_NONBLOCK: ::c_uint = 0x1; -pub const GRND_RANDOM: ::c_uint = 0x2; -pub const GRND_INSECURE: ::c_uint = 0x4; - -// For realhostname* api -pub const HOSTNAME_FOUND: ::c_int = 0; -pub const HOSTNAME_INCORRECTNAME: ::c_int = 1; -pub const HOSTNAME_INVALIDADDR: ::c_int = 2; -pub const HOSTNAME_INVALIDNAME: ::c_int = 3; - -// For rfork -pub const RFFDG: ::c_int = 4; -pub const RFPROC: ::c_int = 16; -pub const RFMEM: ::c_int = 32; -pub const RFNOWAIT: ::c_int = 64; -pub const RFCFDG: ::c_int = 4096; -pub const RFTHREAD: ::c_int = 8192; -pub const RFLINUXTHPN: ::c_int = 65536; -pub const RFTSIGZMB: ::c_int = 524288; -pub const RFSPAWN: ::c_int = 2147483648; - -// For eventfd -pub const EFD_SEMAPHORE: ::c_int = 0x1; -pub const EFD_NONBLOCK: ::c_int = 0x4; -pub const EFD_CLOEXEC: ::c_int = 0x100000; - -pub const MALLOCX_ZERO: ::c_int = 0x40; - -/// size of returned wchan message -pub const WMESGLEN: usize = 8; -/// size of returned lock name -pub const LOCKNAMELEN: usize = 8; -/// size of returned thread name -pub const TDNAMLEN: usize = 16; -/// size of returned ki_comm name -pub const COMMLEN: usize = 19; -/// size of returned ki_emul -pub const KI_EMULNAMELEN: usize = 16; -/// number of groups in ki_groups -pub const KI_NGROUPS: usize = 16; -cfg_if! { - if #[cfg(freebsd11)] { - pub const KI_NSPARE_INT: usize = 4; - } else { - pub const KI_NSPARE_INT: usize = 2; - } -} -pub const KI_NSPARE_LONG: usize = 12; -/// Flags for the process credential. -pub const KI_CRF_CAPABILITY_MODE: usize = 0x00000001; -/// Steal a bit from ki_cr_flags to indicate that the cred had more than -/// KI_NGROUPS groups. -pub const KI_CRF_GRP_OVERFLOW: usize = 0x80000000; -/// controlling tty vnode active -pub const KI_CTTY: usize = 0x00000001; -/// session leader -pub const KI_SLEADER: usize = 0x00000002; -/// proc blocked on lock ki_lockname -pub const KI_LOCKBLOCK: usize = 0x00000004; -/// size of returned ki_login -pub const LOGNAMELEN: usize = 17; -/// size of returned ki_loginclass -pub const LOGINCLASSLEN: usize = 17; - -pub const KF_ATTR_VALID: ::c_int = 0x0001; -pub const KF_TYPE_NONE: ::c_int = 0; -pub const KF_TYPE_VNODE: ::c_int = 1; -pub const KF_TYPE_SOCKET: ::c_int = 2; -pub const KF_TYPE_PIPE: ::c_int = 3; -pub const KF_TYPE_FIFO: ::c_int = 4; -pub const KF_TYPE_KQUEUE: ::c_int = 5; -pub const KF_TYPE_MQUEUE: ::c_int = 7; -pub const KF_TYPE_SHM: ::c_int = 8; -pub const KF_TYPE_SEM: ::c_int = 9; -pub const KF_TYPE_PTS: ::c_int = 10; -pub const KF_TYPE_PROCDESC: ::c_int = 11; -pub const KF_TYPE_DEV: ::c_int = 12; -pub const KF_TYPE_UNKNOWN: ::c_int = 255; - -pub const KF_VTYPE_VNON: ::c_int = 0; -pub const KF_VTYPE_VREG: ::c_int = 1; -pub const KF_VTYPE_VDIR: ::c_int = 2; -pub const KF_VTYPE_VBLK: ::c_int = 3; -pub const KF_VTYPE_VCHR: ::c_int = 4; -pub const KF_VTYPE_VLNK: ::c_int = 5; -pub const KF_VTYPE_VSOCK: ::c_int = 6; -pub const KF_VTYPE_VFIFO: ::c_int = 7; -pub const KF_VTYPE_VBAD: ::c_int = 8; -pub const KF_VTYPE_UNKNOWN: ::c_int = 255; - -/// Current working directory -pub const KF_FD_TYPE_CWD: ::c_int = -1; -/// Root directory -pub const KF_FD_TYPE_ROOT: ::c_int = -2; -/// Jail directory -pub const KF_FD_TYPE_JAIL: ::c_int = -3; -/// Ktrace vnode -pub const KF_FD_TYPE_TRACE: ::c_int = -4; -pub const KF_FD_TYPE_TEXT: ::c_int = -5; -/// Controlling terminal -pub const KF_FD_TYPE_CTTY: ::c_int = -6; -pub const KF_FLAG_READ: ::c_int = 0x00000001; -pub const KF_FLAG_WRITE: ::c_int = 0x00000002; -pub const KF_FLAG_APPEND: ::c_int = 0x00000004; -pub const KF_FLAG_ASYNC: ::c_int = 0x00000008; -pub const KF_FLAG_FSYNC: ::c_int = 0x00000010; -pub const KF_FLAG_NONBLOCK: ::c_int = 0x00000020; -pub const KF_FLAG_DIRECT: ::c_int = 0x00000040; -pub const KF_FLAG_HASLOCK: ::c_int = 0x00000080; -pub const KF_FLAG_SHLOCK: ::c_int = 0x00000100; -pub const KF_FLAG_EXLOCK: ::c_int = 0x00000200; -pub const KF_FLAG_NOFOLLOW: ::c_int = 0x00000400; -pub const KF_FLAG_CREAT: ::c_int = 0x00000800; -pub const KF_FLAG_TRUNC: ::c_int = 0x00001000; -pub const KF_FLAG_EXCL: ::c_int = 0x00002000; -pub const KF_FLAG_EXEC: ::c_int = 0x00004000; - -pub const KVME_TYPE_NONE: ::c_int = 0; -pub const KVME_TYPE_DEFAULT: ::c_int = 1; -pub const KVME_TYPE_VNODE: ::c_int = 2; -pub const KVME_TYPE_SWAP: ::c_int = 3; -pub const KVME_TYPE_DEVICE: ::c_int = 4; -pub const KVME_TYPE_PHYS: ::c_int = 5; -pub const KVME_TYPE_DEAD: ::c_int = 6; -pub const KVME_TYPE_SG: ::c_int = 7; -pub const KVME_TYPE_MGTDEVICE: ::c_int = 8; -// Present in `sys/user.h` but is undefined for whatever reason... -// pub const KVME_TYPE_GUARD: ::c_int = 9; -pub const KVME_TYPE_UNKNOWN: ::c_int = 255; -pub const KVME_PROT_READ: ::c_int = 0x00000001; -pub const KVME_PROT_WRITE: ::c_int = 0x00000002; -pub const KVME_PROT_EXEC: ::c_int = 0x00000004; -pub const KVME_FLAG_COW: ::c_int = 0x00000001; -pub const KVME_FLAG_NEEDS_COPY: ::c_int = 0x00000002; -pub const KVME_FLAG_NOCOREDUMP: ::c_int = 0x00000004; -pub const KVME_FLAG_SUPER: ::c_int = 0x00000008; -pub const KVME_FLAG_GROWS_UP: ::c_int = 0x00000010; -pub const KVME_FLAG_GROWS_DOWN: ::c_int = 0x00000020; -pub const KVME_FLAG_USER_WIRED: ::c_int = 0x00000040; - -pub const KKST_MAXLEN: ::c_int = 1024; -/// Stack is valid. -pub const KKST_STATE_STACKOK: ::c_int = 0; -/// Stack swapped out. -pub const KKST_STATE_SWAPPED: ::c_int = 1; -pub const KKST_STATE_RUNNING: ::c_int = 2; - -// Constants about priority. -pub const PRI_MIN: ::c_int = 0; -pub const PRI_MAX: ::c_int = 255; -pub const PRI_MIN_ITHD: ::c_int = PRI_MIN; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PRI_MAX_ITHD: ::c_int = PRI_MIN_REALTIME - 1; -pub const PI_REALTIME: ::c_int = PRI_MIN_ITHD + 0; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PI_AV: ::c_int = PRI_MIN_ITHD + 4; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PI_NET: ::c_int = PRI_MIN_ITHD + 8; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PI_DISK: ::c_int = PRI_MIN_ITHD + 12; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PI_TTY: ::c_int = PRI_MIN_ITHD + 16; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PI_DULL: ::c_int = PRI_MIN_ITHD + 20; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PI_SOFT: ::c_int = PRI_MIN_ITHD + 24; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PRI_MIN_REALTIME: ::c_int = 48; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PRI_MAX_REALTIME: ::c_int = PRI_MIN_KERN - 1; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PRI_MIN_KERN: ::c_int = 80; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PRI_MAX_KERN: ::c_int = PRI_MIN_TIMESHARE - 1; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PSWP: ::c_int = PRI_MIN_KERN + 0; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PVM: ::c_int = PRI_MIN_KERN + 4; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PINOD: ::c_int = PRI_MIN_KERN + 8; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PRIBIO: ::c_int = PRI_MIN_KERN + 12; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PVFS: ::c_int = PRI_MIN_KERN + 16; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PZERO: ::c_int = PRI_MIN_KERN + 20; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PSOCK: ::c_int = PRI_MIN_KERN + 24; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PWAIT: ::c_int = PRI_MIN_KERN + 28; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PLOCK: ::c_int = PRI_MIN_KERN + 32; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PPAUSE: ::c_int = PRI_MIN_KERN + 36; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const PRI_MIN_TIMESHARE: ::c_int = 120; -pub const PRI_MAX_TIMESHARE: ::c_int = PRI_MIN_IDLE - 1; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -#[allow(deprecated)] -pub const PUSER: ::c_int = PRI_MIN_TIMESHARE; -pub const PRI_MIN_IDLE: ::c_int = 224; -pub const PRI_MAX_IDLE: ::c_int = PRI_MAX; - -pub const NZERO: ::c_int = 0; - -// Resource utilization information. -pub const RUSAGE_THREAD: ::c_int = 1; - -cfg_if! { - if #[cfg(any(freebsd11, target_pointer_width = "32"))] { - pub const ARG_MAX: ::c_int = 256 * 1024; - } else { - pub const ARG_MAX: ::c_int = 2 * 256 * 1024; - } -} -pub const CHILD_MAX: ::c_int = 40; -/// max command name remembered -pub const MAXCOMLEN: usize = 19; -/// max interpreter file name length -pub const MAXINTERP: ::c_int = ::PATH_MAX; -/// max login name length (incl. NUL) -pub const MAXLOGNAME: ::c_int = 33; -/// max simultaneous processes -pub const MAXUPRC: ::c_int = CHILD_MAX; -/// max bytes for an exec function -pub const NCARGS: ::c_int = ARG_MAX; -/// /* max number groups -pub const NGROUPS: ::c_int = NGROUPS_MAX + 1; -/// max open files per process -pub const NOFILE: ::c_int = OPEN_MAX; -/// marker for empty group set member -pub const NOGROUP: ::c_int = 65535; -/// max hostname size -pub const MAXHOSTNAMELEN: ::c_int = 256; -/// max bytes in term canon input line -pub const MAX_CANON: ::c_int = 255; -/// max bytes in terminal input -pub const MAX_INPUT: ::c_int = 255; -/// max bytes in a file name -pub const NAME_MAX: ::c_int = 255; -pub const MAXSYMLINKS: ::c_int = 32; -/// max supplemental group id's -pub const NGROUPS_MAX: ::c_int = 1023; -/// max open files per process -pub const OPEN_MAX: ::c_int = 64; - -pub const _POSIX_ARG_MAX: ::c_int = 4096; -pub const _POSIX_LINK_MAX: ::c_int = 8; -pub const _POSIX_MAX_CANON: ::c_int = 255; -pub const _POSIX_MAX_INPUT: ::c_int = 255; -pub const _POSIX_NAME_MAX: ::c_int = 14; -pub const _POSIX_PIPE_BUF: ::c_int = 512; -pub const _POSIX_SSIZE_MAX: ::c_int = 32767; -pub const _POSIX_STREAM_MAX: ::c_int = 8; - -/// max ibase/obase values in bc(1) -pub const BC_BASE_MAX: ::c_int = 99; -/// max array elements in bc(1) -pub const BC_DIM_MAX: ::c_int = 2048; -/// max scale value in bc(1) -pub const BC_SCALE_MAX: ::c_int = 99; -/// max const string length in bc(1) -pub const BC_STRING_MAX: ::c_int = 1000; -/// max character class name size -pub const CHARCLASS_NAME_MAX: ::c_int = 14; -/// max weights for order keyword -pub const COLL_WEIGHTS_MAX: ::c_int = 10; -/// max expressions nested in expr(1) -pub const EXPR_NEST_MAX: ::c_int = 32; -/// max bytes in an input line -pub const LINE_MAX: ::c_int = 2048; -/// max RE's in interval notation -pub const RE_DUP_MAX: ::c_int = 255; - -pub const _POSIX2_BC_BASE_MAX: ::c_int = 99; -pub const _POSIX2_BC_DIM_MAX: ::c_int = 2048; -pub const _POSIX2_BC_SCALE_MAX: ::c_int = 99; -pub const _POSIX2_BC_STRING_MAX: ::c_int = 1000; -pub const _POSIX2_CHARCLASS_NAME_MAX: ::c_int = 14; -pub const _POSIX2_COLL_WEIGHTS_MAX: ::c_int = 2; -pub const _POSIX2_EQUIV_CLASS_MAX: ::c_int = 2; -pub const _POSIX2_EXPR_NEST_MAX: ::c_int = 32; -pub const _POSIX2_LINE_MAX: ::c_int = 2048; -pub const _POSIX2_RE_DUP_MAX: ::c_int = 255; - -// sys/proc.h -pub const TDF_BORROWING: ::c_int = 0x00000001; -pub const TDF_INPANIC: ::c_int = 0x00000002; -pub const TDF_INMEM: ::c_int = 0x00000004; -pub const TDF_SINTR: ::c_int = 0x00000008; -pub const TDF_TIMEOUT: ::c_int = 0x00000010; -pub const TDF_IDLETD: ::c_int = 0x00000020; -pub const TDF_CANSWAP: ::c_int = 0x00000040; -pub const TDF_KTH_SUSP: ::c_int = 0x00000100; -pub const TDF_ALLPROCSUSP: ::c_int = 0x00000200; -pub const TDF_BOUNDARY: ::c_int = 0x00000400; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_ASTPENDING: ::c_int = 0x00000800; -pub const TDF_SBDRY: ::c_int = 0x00002000; -pub const TDF_UPIBLOCKED: ::c_int = 0x00004000; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_NEEDSUSPCHK: ::c_int = 0x00008000; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_NEEDRESCHED: ::c_int = 0x00010000; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_NEEDSIGCHK: ::c_int = 0x00020000; -pub const TDF_NOLOAD: ::c_int = 0x00040000; -pub const TDF_SERESTART: ::c_int = 0x00080000; -pub const TDF_THRWAKEUP: ::c_int = 0x00100000; -pub const TDF_SEINTR: ::c_int = 0x00200000; -pub const TDF_SWAPINREQ: ::c_int = 0x00400000; -#[deprecated(since = "0.2.133", note = "Removed in FreeBSD 14")] -pub const TDF_UNUSED23: ::c_int = 0x00800000; -pub const TDF_SCHED0: ::c_int = 0x01000000; -pub const TDF_SCHED1: ::c_int = 0x02000000; -pub const TDF_SCHED2: ::c_int = 0x04000000; -pub const TDF_SCHED3: ::c_int = 0x08000000; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_ALRMPEND: ::c_int = 0x10000000; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_PROFPEND: ::c_int = 0x20000000; -#[deprecated(since = "0.2.133", note = "Not stable across OS versions")] -pub const TDF_MACPEND: ::c_int = 0x40000000; - -pub const TDB_SUSPEND: ::c_int = 0x00000001; -pub const TDB_XSIG: ::c_int = 0x00000002; -pub const TDB_USERWR: ::c_int = 0x00000004; -pub const TDB_SCE: ::c_int = 0x00000008; -pub const TDB_SCX: ::c_int = 0x00000010; -pub const TDB_EXEC: ::c_int = 0x00000020; -pub const TDB_FORK: ::c_int = 0x00000040; -pub const TDB_STOPATFORK: ::c_int = 0x00000080; -pub const TDB_CHILD: ::c_int = 0x00000100; -pub const TDB_BORN: ::c_int = 0x00000200; -pub const TDB_EXIT: ::c_int = 0x00000400; -pub const TDB_VFORK: ::c_int = 0x00000800; -pub const TDB_FSTP: ::c_int = 0x00001000; -pub const TDB_STEP: ::c_int = 0x00002000; - -pub const TDP_OLDMASK: ::c_int = 0x00000001; -pub const TDP_INKTR: ::c_int = 0x00000002; -pub const TDP_INKTRACE: ::c_int = 0x00000004; -pub const TDP_BUFNEED: ::c_int = 0x00000008; -pub const TDP_COWINPROGRESS: ::c_int = 0x00000010; -pub const TDP_ALTSTACK: ::c_int = 0x00000020; -pub const TDP_DEADLKTREAT: ::c_int = 0x00000040; -pub const TDP_NOFAULTING: ::c_int = 0x00000080; -pub const TDP_OWEUPC: ::c_int = 0x00000200; -pub const TDP_ITHREAD: ::c_int = 0x00000400; -pub const TDP_SYNCIO: ::c_int = 0x00000800; -pub const TDP_SCHED1: ::c_int = 0x00001000; -pub const TDP_SCHED2: ::c_int = 0x00002000; -pub const TDP_SCHED3: ::c_int = 0x00004000; -pub const TDP_SCHED4: ::c_int = 0x00008000; -pub const TDP_GEOM: ::c_int = 0x00010000; -pub const TDP_SOFTDEP: ::c_int = 0x00020000; -pub const TDP_NORUNNINGBUF: ::c_int = 0x00040000; -pub const TDP_WAKEUP: ::c_int = 0x00080000; -pub const TDP_INBDFLUSH: ::c_int = 0x00100000; -pub const TDP_KTHREAD: ::c_int = 0x00200000; -pub const TDP_CALLCHAIN: ::c_int = 0x00400000; -pub const TDP_IGNSUSP: ::c_int = 0x00800000; -pub const TDP_AUDITREC: ::c_int = 0x01000000; -pub const TDP_RFPPWAIT: ::c_int = 0x02000000; -pub const TDP_RESETSPUR: ::c_int = 0x04000000; -pub const TDP_NERRNO: ::c_int = 0x08000000; -pub const TDP_EXECVMSPC: ::c_int = 0x40000000; - -pub const TDI_SUSPENDED: ::c_int = 0x0001; -pub const TDI_SLEEPING: ::c_int = 0x0002; -pub const TDI_SWAPPED: ::c_int = 0x0004; -pub const TDI_LOCK: ::c_int = 0x0008; -pub const TDI_IWAIT: ::c_int = 0x0010; - -pub const P_ADVLOCK: ::c_int = 0x00000001; -pub const P_CONTROLT: ::c_int = 0x00000002; -pub const P_KPROC: ::c_int = 0x00000004; -pub const P_UNUSED3: ::c_int = 0x00000008; -pub const P_PPWAIT: ::c_int = 0x00000010; -pub const P_PROFIL: ::c_int = 0x00000020; -pub const P_STOPPROF: ::c_int = 0x00000040; -pub const P_HADTHREADS: ::c_int = 0x00000080; -pub const P_SUGID: ::c_int = 0x00000100; -pub const P_SYSTEM: ::c_int = 0x00000200; -pub const P_SINGLE_EXIT: ::c_int = 0x00000400; -pub const P_TRACED: ::c_int = 0x00000800; -pub const P_WAITED: ::c_int = 0x00001000; -pub const P_WEXIT: ::c_int = 0x00002000; -pub const P_EXEC: ::c_int = 0x00004000; -pub const P_WKILLED: ::c_int = 0x00008000; -pub const P_CONTINUED: ::c_int = 0x00010000; -pub const P_STOPPED_SIG: ::c_int = 0x00020000; -pub const P_STOPPED_TRACE: ::c_int = 0x00040000; -pub const P_STOPPED_SINGLE: ::c_int = 0x00080000; -pub const P_PROTECTED: ::c_int = 0x00100000; -pub const P_SIGEVENT: ::c_int = 0x00200000; -pub const P_SINGLE_BOUNDARY: ::c_int = 0x00400000; -pub const P_HWPMC: ::c_int = 0x00800000; -pub const P_JAILED: ::c_int = 0x01000000; -pub const P_TOTAL_STOP: ::c_int = 0x02000000; -pub const P_INEXEC: ::c_int = 0x04000000; -pub const P_STATCHILD: ::c_int = 0x08000000; -pub const P_INMEM: ::c_int = 0x10000000; -pub const P_SWAPPINGOUT: ::c_int = 0x20000000; -pub const P_SWAPPINGIN: ::c_int = 0x40000000; -pub const P_PPTRACE: ::c_int = 0x80000000; -pub const P_STOPPED: ::c_int = P_STOPPED_SIG | P_STOPPED_SINGLE | P_STOPPED_TRACE; - -pub const P2_INHERIT_PROTECTED: ::c_int = 0x00000001; -pub const P2_NOTRACE: ::c_int = 0x00000002; -pub const P2_NOTRACE_EXEC: ::c_int = 0x00000004; -pub const P2_AST_SU: ::c_int = 0x00000008; -pub const P2_PTRACE_FSTP: ::c_int = 0x00000010; -pub const P2_TRAPCAP: ::c_int = 0x00000020; -pub const P2_STKGAP_DISABLE: ::c_int = 0x00000800; -pub const P2_STKGAP_DISABLE_EXEC: ::c_int = 0x00001000; - -pub const P_TREE_ORPHANED: ::c_int = 0x00000001; -pub const P_TREE_FIRST_ORPHAN: ::c_int = 0x00000002; -pub const P_TREE_REAPER: ::c_int = 0x00000004; - -pub const SIDL: ::c_char = 1; -pub const SRUN: ::c_char = 2; -pub const SSLEEP: ::c_char = 3; -pub const SSTOP: ::c_char = 4; -pub const SZOMB: ::c_char = 5; -pub const SWAIT: ::c_char = 6; -pub const SLOCK: ::c_char = 7; - -pub const P_MAGIC: ::c_int = 0xbeefface; - -pub const TDP_SIGFASTBLOCK: ::c_int = 0x00000100; -pub const TDP_UIOHELD: ::c_int = 0x10000000; -pub const TDP_SIGFASTPENDING: ::c_int = 0x80000000; -pub const TDP2_COMPAT32RB: ::c_int = 0x00000002; -pub const P2_PROTMAX_ENABLE: ::c_int = 0x00000200; -pub const P2_PROTMAX_DISABLE: ::c_int = 0x00000400; -pub const TDP2_SBPAGES: ::c_int = 0x00000001; -pub const P2_ASLR_ENABLE: ::c_int = 0x00000040; -pub const P2_ASLR_DISABLE: ::c_int = 0x00000080; -pub const P2_ASLR_IGNSTART: ::c_int = 0x00000100; -pub const P_TREE_GRPEXITED: ::c_int = 0x00000008; - -// libprocstat.h -pub const PS_FST_VTYPE_VNON: ::c_int = 1; -pub const PS_FST_VTYPE_VREG: ::c_int = 2; -pub const PS_FST_VTYPE_VDIR: ::c_int = 3; -pub const PS_FST_VTYPE_VBLK: ::c_int = 4; -pub const PS_FST_VTYPE_VCHR: ::c_int = 5; -pub const PS_FST_VTYPE_VLNK: ::c_int = 6; -pub const PS_FST_VTYPE_VSOCK: ::c_int = 7; -pub const PS_FST_VTYPE_VFIFO: ::c_int = 8; -pub const PS_FST_VTYPE_VBAD: ::c_int = 9; -pub const PS_FST_VTYPE_UNKNOWN: ::c_int = 255; - -pub const PS_FST_TYPE_VNODE: ::c_int = 1; -pub const PS_FST_TYPE_FIFO: ::c_int = 2; -pub const PS_FST_TYPE_SOCKET: ::c_int = 3; -pub const PS_FST_TYPE_PIPE: ::c_int = 4; -pub const PS_FST_TYPE_PTS: ::c_int = 5; -pub const PS_FST_TYPE_KQUEUE: ::c_int = 6; -pub const PS_FST_TYPE_MQUEUE: ::c_int = 8; -pub const PS_FST_TYPE_SHM: ::c_int = 9; -pub const PS_FST_TYPE_SEM: ::c_int = 10; -pub const PS_FST_TYPE_UNKNOWN: ::c_int = 11; -pub const PS_FST_TYPE_NONE: ::c_int = 12; -pub const PS_FST_TYPE_PROCDESC: ::c_int = 13; -pub const PS_FST_TYPE_DEV: ::c_int = 14; -pub const PS_FST_TYPE_EVENTFD: ::c_int = 15; - -pub const PS_FST_UFLAG_RDIR: ::c_int = 0x0001; -pub const PS_FST_UFLAG_CDIR: ::c_int = 0x0002; -pub const PS_FST_UFLAG_JAIL: ::c_int = 0x0004; -pub const PS_FST_UFLAG_TRACE: ::c_int = 0x0008; -pub const PS_FST_UFLAG_TEXT: ::c_int = 0x0010; -pub const PS_FST_UFLAG_MMAP: ::c_int = 0x0020; -pub const PS_FST_UFLAG_CTTY: ::c_int = 0x0040; - -pub const PS_FST_FFLAG_READ: ::c_int = 0x0001; -pub const PS_FST_FFLAG_WRITE: ::c_int = 0x0002; -pub const PS_FST_FFLAG_NONBLOCK: ::c_int = 0x0004; -pub const PS_FST_FFLAG_APPEND: ::c_int = 0x0008; -pub const PS_FST_FFLAG_SHLOCK: ::c_int = 0x0010; -pub const PS_FST_FFLAG_EXLOCK: ::c_int = 0x0020; -pub const PS_FST_FFLAG_ASYNC: ::c_int = 0x0040; -pub const PS_FST_FFLAG_SYNC: ::c_int = 0x0080; -pub const PS_FST_FFLAG_NOFOLLOW: ::c_int = 0x0100; -pub const PS_FST_FFLAG_CREAT: ::c_int = 0x0200; -pub const PS_FST_FFLAG_TRUNC: ::c_int = 0x0400; -pub const PS_FST_FFLAG_EXCL: ::c_int = 0x0800; -pub const PS_FST_FFLAG_DIRECT: ::c_int = 0x1000; -pub const PS_FST_FFLAG_EXEC: ::c_int = 0x2000; -pub const PS_FST_FFLAG_HASLOCK: ::c_int = 0x4000; - -// sys/mount.h - -/// File identifier. -/// These are unique per filesystem on a single machine. -/// -/// Note that the offset of fid_data is 4 bytes, so care must be taken to avoid -/// undefined behavior accessing unaligned fields within an embedded struct. -pub const MAXFIDSZ: ::c_int = 16; -/// Length of type name including null. -pub const MFSNAMELEN: ::c_int = 16; -cfg_if! { - if #[cfg(any(freebsd10, freebsd11))] { - /// Size of on/from name bufs. - pub const MNAMELEN: ::c_int = 88; - } else { - /// Size of on/from name bufs. - pub const MNAMELEN: ::c_int = 1024; - } -} - -/// Using journaled soft updates. -pub const MNT_SUJ: u64 = 0x100000000; -/// Mounted by automountd(8). -pub const MNT_AUTOMOUNTED: u64 = 0x200000000; -/// Filesys metadata untrusted. -pub const MNT_UNTRUSTED: u64 = 0x800000000; - -/// Require TLS. -pub const MNT_EXTLS: u64 = 0x4000000000; -/// Require TLS with client cert. -pub const MNT_EXTLSCERT: u64 = 0x8000000000; -/// Require TLS with user cert. -pub const MNT_EXTLSCERTUSER: u64 = 0x10000000000; - -/// Filesystem is stored locally. -pub const MNT_LOCAL: u64 = 0x000001000; -/// Quotas are enabled on fs. -pub const MNT_QUOTA: u64 = 0x000002000; -/// Identifies the root fs. -pub const MNT_ROOTFS: u64 = 0x000004000; -/// Mounted by a user. -pub const MNT_USER: u64 = 0x000008000; -/// Do not show entry in df. -pub const MNT_IGNORE: u64 = 0x000800000; -/// Filesystem is verified. -pub const MNT_VERIFIED: u64 = 0x400000000; - -/// Do not cover a mount point. -pub const MNT_NOCOVER: u64 = 0x001000000000; -/// Only mount on empty dir. -pub const MNT_EMPTYDIR: u64 = 0x002000000000; -/// Recursively unmount uppers. -pub const MNT_RECURSE: u64 = 0x100000000000; -/// Unmount in async context. -pub const MNT_DEFERRED: u64 = 0x200000000000; - -/// Get configured filesystems. -pub const VFS_VFSCONF: ::c_int = 0; -/// Generic filesystem information. -pub const VFS_GENERIC: ::c_int = 0; - -/// int: highest defined filesystem type. -pub const VFS_MAXTYPENUM: ::c_int = 1; -/// struct: vfsconf for filesystem given as next argument. -pub const VFS_CONF: ::c_int = 2; - -/// Synchronously wait for I/O to complete. -pub const MNT_WAIT: ::c_int = 1; -/// Start all I/O, but do not wait for it. -pub const MNT_NOWAIT: ::c_int = 2; -/// Push data not written by filesystem syncer. -pub const MNT_LAZY: ::c_int = 3; -/// Suspend file system after sync. -pub const MNT_SUSPEND: ::c_int = 4; - -pub const MAXSECFLAVORS: ::c_int = 5; - -/// Statically compiled into kernel. -pub const VFCF_STATIC: ::c_int = 0x00010000; -/// May get data over the network. -pub const VFCF_NETWORK: ::c_int = 0x00020000; -/// Writes are not implemented. -pub const VFCF_READONLY: ::c_int = 0x00040000; -/// Data does not represent real files. -pub const VFCF_SYNTHETIC: ::c_int = 0x00080000; -/// Aliases some other mounted FS. -pub const VFCF_LOOPBACK: ::c_int = 0x00100000; -/// Stores file names as Unicode. -pub const VFCF_UNICODE: ::c_int = 0x00200000; -/// Can be mounted from within a jail. -pub const VFCF_JAIL: ::c_int = 0x00400000; -/// Supports delegated administration. -pub const VFCF_DELEGADMIN: ::c_int = 0x00800000; -/// Stop at Boundary: defer stop requests to kernel->user (AST) transition. -pub const VFCF_SBDRY: ::c_int = 0x01000000; - -// time.h - -/// not on dst -pub const DST_NONE: ::c_int = 0; -/// USA style dst -pub const DST_USA: ::c_int = 1; -/// Australian style dst -pub const DST_AUST: ::c_int = 2; -/// Western European dst -pub const DST_WET: ::c_int = 3; -/// Middle European dst -pub const DST_MET: ::c_int = 4; -/// Eastern European dst -pub const DST_EET: ::c_int = 5; -/// Canada -pub const DST_CAN: ::c_int = 6; - -pub const CPUCLOCK_WHICH_PID: ::c_int = 0; -pub const CPUCLOCK_WHICH_TID: ::c_int = 1; - -pub const MFD_CLOEXEC: ::c_uint = 0x00000001; -pub const MFD_ALLOW_SEALING: ::c_uint = 0x00000002; -pub const MFD_HUGETLB: ::c_uint = 0x00000004; -pub const MFD_HUGE_MASK: ::c_uint = 0xFC000000; -pub const MFD_HUGE_64KB: ::c_uint = 16 << 26; -pub const MFD_HUGE_512KB: ::c_uint = 19 << 26; -pub const MFD_HUGE_1MB: ::c_uint = 20 << 26; -pub const MFD_HUGE_2MB: ::c_uint = 21 << 26; -pub const MFD_HUGE_8MB: ::c_uint = 23 << 26; -pub const MFD_HUGE_16MB: ::c_uint = 24 << 26; -pub const MFD_HUGE_32MB: ::c_uint = 25 << 26; -pub const MFD_HUGE_256MB: ::c_uint = 28 << 26; -pub const MFD_HUGE_512MB: ::c_uint = 29 << 26; -pub const MFD_HUGE_1GB: ::c_uint = 30 << 26; -pub const MFD_HUGE_2GB: ::c_uint = 31 << 26; -pub const MFD_HUGE_16GB: ::c_uint = 34 << 26; - -pub const SHM_LARGEPAGE_ALLOC_DEFAULT: ::c_int = 0; -pub const SHM_LARGEPAGE_ALLOC_NOWAIT: ::c_int = 1; -pub const SHM_LARGEPAGE_ALLOC_HARD: ::c_int = 2; -pub const SHM_RENAME_NOREPLACE: ::c_int = 1 << 0; -pub const SHM_RENAME_EXCHANGE: ::c_int = 1 << 1; - -// sys/umtx.h - -pub const UMTX_OP_WAIT: ::c_int = 2; -pub const UMTX_OP_WAKE: ::c_int = 3; -pub const UMTX_OP_MUTEX_TRYLOCK: ::c_int = 4; -pub const UMTX_OP_MUTEX_LOCK: ::c_int = 5; -pub const UMTX_OP_MUTEX_UNLOCK: ::c_int = 6; -pub const UMTX_OP_SET_CEILING: ::c_int = 7; -pub const UMTX_OP_CV_WAIT: ::c_int = 8; -pub const UMTX_OP_CV_SIGNAL: ::c_int = 9; -pub const UMTX_OP_CV_BROADCAST: ::c_int = 10; -pub const UMTX_OP_WAIT_UINT: ::c_int = 11; -pub const UMTX_OP_RW_RDLOCK: ::c_int = 12; -pub const UMTX_OP_RW_WRLOCK: ::c_int = 13; -pub const UMTX_OP_RW_UNLOCK: ::c_int = 14; -pub const UMTX_OP_WAIT_UINT_PRIVATE: ::c_int = 15; -pub const UMTX_OP_WAKE_PRIVATE: ::c_int = 16; -pub const UMTX_OP_MUTEX_WAIT: ::c_int = 17; -pub const UMTX_OP_NWAKE_PRIVATE: ::c_int = 21; -pub const UMTX_OP_MUTEX_WAKE2: ::c_int = 22; -pub const UMTX_OP_SEM2_WAIT: ::c_int = 23; -pub const UMTX_OP_SEM2_WAKE: ::c_int = 24; -pub const UMTX_OP_SHM: ::c_int = 25; -pub const UMTX_OP_ROBUST_LISTS: ::c_int = 26; - -pub const UMTX_ABSTIME: u32 = 1; - -pub const CPU_LEVEL_ROOT: ::c_int = 1; -pub const CPU_LEVEL_CPUSET: ::c_int = 2; -pub const CPU_LEVEL_WHICH: ::c_int = 3; - -pub const CPU_WHICH_TID: ::c_int = 1; -pub const CPU_WHICH_PID: ::c_int = 2; -pub const CPU_WHICH_CPUSET: ::c_int = 3; -pub const CPU_WHICH_IRQ: ::c_int = 4; -pub const CPU_WHICH_JAIL: ::c_int = 5; - -// sys/signal.h -pub const SIGTHR: ::c_int = 32; -pub const SIGLWP: ::c_int = SIGTHR; -pub const SIGLIBRT: ::c_int = 33; - -// netinet/sctp.h -pub const SCTP_FUTURE_ASSOC: ::c_int = 0; -pub const SCTP_CURRENT_ASSOC: ::c_int = 1; -pub const SCTP_ALL_ASSOC: ::c_int = 2; - -pub const SCTP_NO_NEXT_MSG: ::c_int = 0x0000; -pub const SCTP_NEXT_MSG_AVAIL: ::c_int = 0x0001; -pub const SCTP_NEXT_MSG_ISCOMPLETE: ::c_int = 0x0002; -pub const SCTP_NEXT_MSG_IS_UNORDERED: ::c_int = 0x0004; -pub const SCTP_NEXT_MSG_IS_NOTIFICATION: ::c_int = 0x0008; - -pub const SCTP_RECVV_NOINFO: ::c_int = 0; -pub const SCTP_RECVV_RCVINFO: ::c_int = 1; -pub const SCTP_RECVV_NXTINFO: ::c_int = 2; -pub const SCTP_RECVV_RN: ::c_int = 3; - -pub const SCTP_SENDV_NOINFO: ::c_int = 0; -pub const SCTP_SENDV_SNDINFO: ::c_int = 1; -pub const SCTP_SENDV_PRINFO: ::c_int = 2; -pub const SCTP_SENDV_AUTHINFO: ::c_int = 3; -pub const SCTP_SENDV_SPA: ::c_int = 4; - -pub const SCTP_SEND_SNDINFO_VALID: ::c_int = 0x00000001; -pub const SCTP_SEND_PRINFO_VALID: ::c_int = 0x00000002; -pub const SCTP_SEND_AUTHINFO_VALID: ::c_int = 0x00000004; - -pub const SCTP_NOTIFICATION: ::c_int = 0x0010; -pub const SCTP_COMPLETE: ::c_int = 0x0020; -pub const SCTP_EOF: ::c_int = 0x0100; -pub const SCTP_ABORT: ::c_int = 0x0200; -pub const SCTP_UNORDERED: ::c_int = 0x0400; -pub const SCTP_ADDR_OVER: ::c_int = 0x0800; -pub const SCTP_SENDALL: ::c_int = 0x1000; -pub const SCTP_EOR: ::c_int = 0x2000; -pub const SCTP_SACK_IMMEDIATELY: ::c_int = 0x4000; -pub const SCTP_PR_SCTP_NONE: ::c_int = 0x0000; -pub const SCTP_PR_SCTP_TTL: ::c_int = 0x0001; -pub const SCTP_PR_SCTP_PRIO: ::c_int = 0x0002; -pub const SCTP_PR_SCTP_BUF: ::c_int = SCTP_PR_SCTP_PRIO; -pub const SCTP_PR_SCTP_RTX: ::c_int = 0x0003; -pub const SCTP_PR_SCTP_MAX: ::c_int = SCTP_PR_SCTP_RTX; -pub const SCTP_PR_SCTP_ALL: ::c_int = 0x000f; - -pub const SCTP_INIT: ::c_int = 0x0001; -pub const SCTP_SNDRCV: ::c_int = 0x0002; -pub const SCTP_EXTRCV: ::c_int = 0x0003; -pub const SCTP_SNDINFO: ::c_int = 0x0004; -pub const SCTP_RCVINFO: ::c_int = 0x0005; -pub const SCTP_NXTINFO: ::c_int = 0x0006; -pub const SCTP_PRINFO: ::c_int = 0x0007; -pub const SCTP_AUTHINFO: ::c_int = 0x0008; -pub const SCTP_DSTADDRV4: ::c_int = 0x0009; -pub const SCTP_DSTADDRV6: ::c_int = 0x000a; - -pub const SCTP_RTOINFO: ::c_int = 0x00000001; -pub const SCTP_ASSOCINFO: ::c_int = 0x00000002; -pub const SCTP_INITMSG: ::c_int = 0x00000003; -pub const SCTP_NODELAY: ::c_int = 0x00000004; -pub const SCTP_AUTOCLOSE: ::c_int = 0x00000005; -pub const SCTP_SET_PEER_PRIMARY_ADDR: ::c_int = 0x00000006; -pub const SCTP_PRIMARY_ADDR: ::c_int = 0x00000007; -pub const SCTP_ADAPTATION_LAYER: ::c_int = 0x00000008; -pub const SCTP_ADAPTION_LAYER: ::c_int = 0x00000008; -pub const SCTP_DISABLE_FRAGMENTS: ::c_int = 0x00000009; -pub const SCTP_PEER_ADDR_PARAMS: ::c_int = 0x0000000a; -pub const SCTP_DEFAULT_SEND_PARAM: ::c_int = 0x0000000b; -pub const SCTP_EVENTS: ::c_int = 0x0000000c; -pub const SCTP_I_WANT_MAPPED_V4_ADDR: ::c_int = 0x0000000d; -pub const SCTP_MAXSEG: ::c_int = 0x0000000e; -pub const SCTP_DELAYED_SACK: ::c_int = 0x0000000f; -pub const SCTP_FRAGMENT_INTERLEAVE: ::c_int = 0x00000010; -pub const SCTP_PARTIAL_DELIVERY_POINT: ::c_int = 0x00000011; -pub const SCTP_AUTH_CHUNK: ::c_int = 0x00000012; -pub const SCTP_AUTH_KEY: ::c_int = 0x00000013; -pub const SCTP_HMAC_IDENT: ::c_int = 0x00000014; -pub const SCTP_AUTH_ACTIVE_KEY: ::c_int = 0x00000015; -pub const SCTP_AUTH_DELETE_KEY: ::c_int = 0x00000016; -pub const SCTP_USE_EXT_RCVINFO: ::c_int = 0x00000017; -pub const SCTP_AUTO_ASCONF: ::c_int = 0x00000018; -pub const SCTP_MAXBURST: ::c_int = 0x00000019; -pub const SCTP_MAX_BURST: ::c_int = 0x00000019; -pub const SCTP_CONTEXT: ::c_int = 0x0000001a; -pub const SCTP_EXPLICIT_EOR: ::c_int = 0x00000001b; -pub const SCTP_REUSE_PORT: ::c_int = 0x00000001c; -pub const SCTP_AUTH_DEACTIVATE_KEY: ::c_int = 0x00000001d; -pub const SCTP_EVENT: ::c_int = 0x0000001e; -pub const SCTP_RECVRCVINFO: ::c_int = 0x0000001f; -pub const SCTP_RECVNXTINFO: ::c_int = 0x00000020; -pub const SCTP_DEFAULT_SNDINFO: ::c_int = 0x00000021; -pub const SCTP_DEFAULT_PRINFO: ::c_int = 0x00000022; -pub const SCTP_PEER_ADDR_THLDS: ::c_int = 0x00000023; -pub const SCTP_REMOTE_UDP_ENCAPS_PORT: ::c_int = 0x00000024; -pub const SCTP_ECN_SUPPORTED: ::c_int = 0x00000025; -pub const SCTP_AUTH_SUPPORTED: ::c_int = 0x00000027; -pub const SCTP_ASCONF_SUPPORTED: ::c_int = 0x00000028; -pub const SCTP_RECONFIG_SUPPORTED: ::c_int = 0x00000029; -pub const SCTP_NRSACK_SUPPORTED: ::c_int = 0x00000030; -pub const SCTP_PKTDROP_SUPPORTED: ::c_int = 0x00000031; -pub const SCTP_MAX_CWND: ::c_int = 0x00000032; - -pub const SCTP_STATUS: ::c_int = 0x00000100; -pub const SCTP_GET_PEER_ADDR_INFO: ::c_int = 0x00000101; -pub const SCTP_PEER_AUTH_CHUNKS: ::c_int = 0x00000102; -pub const SCTP_LOCAL_AUTH_CHUNKS: ::c_int = 0x00000103; -pub const SCTP_GET_ASSOC_NUMBER: ::c_int = 0x00000104; -pub const SCTP_GET_ASSOC_ID_LIST: ::c_int = 0x00000105; -pub const SCTP_TIMEOUTS: ::c_int = 0x00000106; -pub const SCTP_PR_STREAM_STATUS: ::c_int = 0x00000107; -pub const SCTP_PR_ASSOC_STATUS: ::c_int = 0x00000108; - -pub const SCTP_COMM_UP: ::c_int = 0x0001; -pub const SCTP_COMM_LOST: ::c_int = 0x0002; -pub const SCTP_RESTART: ::c_int = 0x0003; -pub const SCTP_SHUTDOWN_COMP: ::c_int = 0x0004; -pub const SCTP_CANT_STR_ASSOC: ::c_int = 0x0005; - -pub const SCTP_ASSOC_SUPPORTS_PR: ::c_int = 0x01; -pub const SCTP_ASSOC_SUPPORTS_AUTH: ::c_int = 0x02; -pub const SCTP_ASSOC_SUPPORTS_ASCONF: ::c_int = 0x03; -pub const SCTP_ASSOC_SUPPORTS_MULTIBUF: ::c_int = 0x04; -pub const SCTP_ASSOC_SUPPORTS_RE_CONFIG: ::c_int = 0x05; -pub const SCTP_ASSOC_SUPPORTS_INTERLEAVING: ::c_int = 0x06; -pub const SCTP_ASSOC_SUPPORTS_MAX: ::c_int = 0x06; - -pub const SCTP_ADDR_AVAILABLE: ::c_int = 0x0001; -pub const SCTP_ADDR_UNREACHABLE: ::c_int = 0x0002; -pub const SCTP_ADDR_REMOVED: ::c_int = 0x0003; -pub const SCTP_ADDR_ADDED: ::c_int = 0x0004; -pub const SCTP_ADDR_MADE_PRIM: ::c_int = 0x0005; -pub const SCTP_ADDR_CONFIRMED: ::c_int = 0x0006; - -pub const SCTP_ACTIVE: ::c_int = 0x0001; -pub const SCTP_INACTIVE: ::c_int = 0x0002; -pub const SCTP_UNCONFIRMED: ::c_int = 0x0200; - -pub const SCTP_DATA_UNSENT: ::c_int = 0x0001; -pub const SCTP_DATA_SENT: ::c_int = 0x0002; - -pub const SCTP_PARTIAL_DELIVERY_ABORTED: ::c_int = 0x0001; - -pub const SCTP_AUTH_NEW_KEY: ::c_int = 0x0001; -pub const SCTP_AUTH_NEWKEY: ::c_int = SCTP_AUTH_NEW_KEY; -pub const SCTP_AUTH_NO_AUTH: ::c_int = 0x0002; -pub const SCTP_AUTH_FREE_KEY: ::c_int = 0x0003; - -pub const SCTP_STREAM_RESET_INCOMING_SSN: ::c_int = 0x0001; -pub const SCTP_STREAM_RESET_OUTGOING_SSN: ::c_int = 0x0002; -pub const SCTP_STREAM_RESET_DENIED: ::c_int = 0x0004; -pub const SCTP_STREAM_RESET_FAILED: ::c_int = 0x0008; - -pub const SCTP_ASSOC_RESET_DENIED: ::c_int = 0x0004; -pub const SCTP_ASSOC_RESET_FAILED: ::c_int = 0x0008; - -pub const SCTP_STREAM_CHANGE_DENIED: ::c_int = 0x0004; -pub const SCTP_STREAM_CHANGE_FAILED: ::c_int = 0x0008; - -pub const KENV_DUMP_LOADER: ::c_int = 4; -pub const KENV_DUMP_STATIC: ::c_int = 5; - -pub const RB_PAUSE: ::c_int = 0x100000; -pub const RB_REROOT: ::c_int = 0x200000; -pub const RB_POWERCYCLE: ::c_int = 0x400000; -pub const RB_PROBE: ::c_int = 0x10000000; -pub const RB_MULTIPLE: ::c_int = 0x20000000; - -cfg_if! { - if #[cfg(libc_const_extern_fn)] { - pub const fn MAP_ALIGNED(a: ::c_int) -> ::c_int { - a << 24 - } - } else { - pub fn MAP_ALIGNED(a: ::c_int) -> ::c_int { - a << 24 - } - } -} - -const_fn! { - {const} fn _ALIGN(p: usize) -> usize { - (p + _ALIGNBYTES) & !_ALIGNBYTES - } -} - -f! { - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) - } - - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - _ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length - } - - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) - -> *mut ::cmsghdr - { - if cmsg.is_null() { - return ::CMSG_FIRSTHDR(mhdr); - }; - let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) - + _ALIGN(::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; - if next > max { - 0 as *mut ::cmsghdr - } else { - (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) - as *mut ::cmsghdr - } - } - - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) - as ::c_uint - } - - pub fn MALLOCX_ALIGN(lg: ::c_uint) -> ::c_int { - ffsl(lg as ::c_long - 1) - } - - pub {const} fn MALLOCX_TCACHE(tc: ::c_int) -> ::c_int { - (tc + 2) << 8 as ::c_int - } - - pub {const} fn MALLOCX_ARENA(a: ::c_int) -> ::c_int { - (a + 1) << 20 as ::c_int - } - - pub fn SOCKCREDSIZE(ngrps: usize) -> usize { - let ngrps = if ngrps > 0 { - ngrps - 1 - } else { - 0 - }; - ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps - } - - pub fn uname(buf: *mut ::utsname) -> ::c_int { - __xuname(256, buf as *mut ::c_void) - } - - pub fn CPU_ZERO(cpuset: &mut cpuset_t) -> () { - for slot in cpuset.__bits.iter_mut() { - *slot = 0; - } - } - - pub fn CPU_FILL(cpuset: &mut cpuset_t) -> () { - for slot in cpuset.__bits.iter_mut() { - *slot = !0; - } - } - - pub fn CPU_SET(cpu: usize, cpuset: &mut cpuset_t) -> () { - let bitset_bits = 8 * ::mem::size_of::<::c_long>(); - let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); - cpuset.__bits[idx] |= 1 << offset; - () - } - - pub fn CPU_CLR(cpu: usize, cpuset: &mut cpuset_t) -> () { - let bitset_bits = 8 * ::mem::size_of::<::c_long>(); - let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); - cpuset.__bits[idx] &= !(1 << offset); - () - } - - pub fn CPU_ISSET(cpu: usize, cpuset: &cpuset_t) -> bool { - let bitset_bits = 8 * ::mem::size_of::<::c_long>(); - let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); - 0 != cpuset.__bits[idx] & (1 << offset) - } - - pub fn CPU_COUNT(cpuset: &cpuset_t) -> ::c_int { - let mut s: u32 = 0; - let cpuset_size = ::mem::size_of::(); - let bitset_size = ::mem::size_of::<::c_long>(); - - for i in cpuset.__bits[..(cpuset_size / bitset_size)].iter() { - s += i.count_ones(); - }; - s as ::c_int - } - - pub fn SOCKCRED2SIZE(ngrps: usize) -> usize { - let ngrps = if ngrps > 0 { - ngrps - 1 - } else { - 0 - }; - ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps - } -} - -safe_f! { - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { - (status & 0o177) != 0o177 && (status & 0o177) != 0 && status != 0x13 - } - - pub {const} fn INVALID_SINFO_FLAG(x: ::c_int) -> bool { - (x) & 0xfffffff0 & !(SCTP_EOF | SCTP_ABORT | SCTP_UNORDERED | - SCTP_ADDR_OVER | SCTP_SENDALL | SCTP_EOR | SCTP_SACK_IMMEDIATELY) != 0 - } - - pub {const} fn PR_SCTP_POLICY(x: ::c_int) -> ::c_int { - x & 0x0f - } - - pub {const} fn PR_SCTP_ENABLED(x: ::c_int) -> bool { - PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE && PR_SCTP_POLICY(x) != SCTP_PR_SCTP_ALL - } - - pub {const} fn PR_SCTP_TTL_ENABLED(x: ::c_int) -> bool { - PR_SCTP_POLICY(x) == SCTP_PR_SCTP_TTL - } - - pub {const} fn PR_SCTP_BUF_ENABLED(x: ::c_int) -> bool { - PR_SCTP_POLICY(x) == SCTP_PR_SCTP_BUF - } - - pub {const} fn PR_SCTP_RTX_ENABLED(x: ::c_int) -> bool { - PR_SCTP_POLICY(x) == SCTP_PR_SCTP_RTX - } - - pub {const} fn PR_SCTP_INVALID_POLICY(x: ::c_int) -> bool { - PR_SCTP_POLICY(x) > SCTP_PR_SCTP_MAX - } - - pub {const} fn PR_SCTP_VALID_POLICY(x: ::c_int) -> bool { - PR_SCTP_POLICY(x) <= SCTP_PR_SCTP_MAX - } -} - -cfg_if! { - if #[cfg(not(any(freebsd10, freebsd11)))] { - extern "C" { - pub fn fhlink(fhp: *mut fhandle_t, to: *const ::c_char) -> ::c_int; - pub fn fhlinkat(fhp: *mut fhandle_t, tofd: ::c_int, to: *const ::c_char) -> ::c_int; - pub fn fhreadlink( - fhp: *mut fhandle_t, - buf: *mut ::c_char, - bufsize: ::size_t, - ) -> ::c_int; - pub fn getfhat( - fd: ::c_int, - path: *mut ::c_char, - fhp: *mut fhandle, - flag: ::c_int, - ) -> ::c_int; - } - } -} - -extern "C" { - #[cfg_attr(doc, doc(alias = "__errno_location"))] - #[cfg_attr(doc, doc(alias = "errno"))] - pub fn __error() -> *mut ::c_int; - - pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; - pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_readv(aiocbp: *mut ::aiocb) -> ::c_int; - pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; - pub fn aio_suspend( - aiocb_list: *const *const aiocb, - nitems: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_writev(aiocbp: *mut ::aiocb) -> ::c_int; - - pub fn copy_file_range( - infd: ::c_int, - inoffp: *mut ::off_t, - outfd: ::c_int, - outoffp: *mut ::off_t, - len: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; - - pub fn devname_r( - dev: ::dev_t, - mode: ::mode_t, - buf: *mut ::c_char, - len: ::c_int, - ) -> *mut ::c_char; - - pub fn extattr_delete_fd( - fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - ) -> ::c_int; - pub fn extattr_delete_file( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - ) -> ::c_int; - pub fn extattr_delete_link( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - ) -> ::c_int; - pub fn extattr_get_fd( - fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_get_file( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_get_link( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_list_fd( - fd: ::c_int, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_list_file( - path: *const ::c_char, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_list_link( - path: *const ::c_char, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_set_fd( - fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_set_file( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_set_link( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - - pub fn fspacectl( - fd: ::c_int, - cmd: ::c_int, - rqsr: *const spacectl_range, - flags: ::c_int, - rmsr: *mut spacectl_range, - ) -> ::c_int; - - pub fn jail(jail: *mut ::jail) -> ::c_int; - pub fn jail_attach(jid: ::c_int) -> ::c_int; - pub fn jail_remove(jid: ::c_int) -> ::c_int; - pub fn jail_get(iov: *mut ::iovec, niov: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn jail_set(iov: *mut ::iovec, niov: ::c_uint, flags: ::c_int) -> ::c_int; - - pub fn lio_listio( - mode: ::c_int, - aiocb_list: *const *mut aiocb, - nitems: ::c_int, - sevp: *mut sigevent, - ) -> ::c_int; - - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; - - pub fn getutxuser(user: *const ::c_char) -> *mut utmpx; - pub fn setutxdb(_type: ::c_int, file: *const ::c_char) -> ::c_int; - - pub fn aio_waitcomplete(iocbp: *mut *mut aiocb, timeout: *mut ::timespec) -> ::ssize_t; - pub fn mq_getfd_np(mqd: ::mqd_t) -> ::c_int; - - pub fn waitid( - idtype: idtype_t, - id: ::id_t, - infop: *mut ::siginfo_t, - options: ::c_int, - ) -> ::c_int; - pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> ::c_int; - - pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; - pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; - pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; - pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; - pub fn semget(key: ::key_t, nsems: ::c_int, semflg: ::c_int) -> ::c_int; - pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int; - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut ::msqid_ds) -> ::c_int; - pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; - pub fn msgsnd( - msqid: ::c_int, - msgp: *const ::c_void, - msgsz: ::size_t, - msgflg: ::c_int, - ) -> ::c_int; - pub fn cfmakesane(termios: *mut ::termios); - - pub fn pdfork(fdp: *mut ::c_int, flags: ::c_int) -> ::pid_t; - pub fn pdgetpid(fd: ::c_int, pidp: *mut ::pid_t) -> ::c_int; - pub fn pdkill(fd: ::c_int, signum: ::c_int) -> ::c_int; - - pub fn rtprio_thread(function: ::c_int, lwpid: ::lwpid_t, rtp: *mut super::rtprio) -> ::c_int; - - pub fn posix_spawn( - pid: *mut ::pid_t, - path: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawnp( - pid: *mut ::pid_t, - file: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_getsigdefault( - attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigdefault( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getsigmask( - attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigmask( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getflags( - attr: *const posix_spawnattr_t, - flags: *mut ::c_short, - ) -> ::c_int; - pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; - pub fn posix_spawnattr_getpgroup( - attr: *const posix_spawnattr_t, - flags: *mut ::pid_t, - ) -> ::c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; - pub fn posix_spawnattr_getschedpolicy( - attr: *const posix_spawnattr_t, - flags: *mut ::c_int, - ) -> ::c_int; - pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; - pub fn posix_spawnattr_getschedparam( - attr: *const posix_spawnattr_t, - param: *mut ::sched_param, - ) -> ::c_int; - pub fn posix_spawnattr_setschedparam( - attr: *mut posix_spawnattr_t, - param: *const ::sched_param, - ) -> ::c_int; - - pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_addopen( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - path: *const ::c_char, - oflag: ::c_int, - mode: ::mode_t, - ) -> ::c_int; - pub fn posix_spawn_file_actions_addclose( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; - pub fn posix_spawn_file_actions_adddup2( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - newfd: ::c_int, - ) -> ::c_int; - - pub fn uuidgen(store: *mut uuid, count: ::c_int) -> ::c_int; - - pub fn thr_kill(id: ::c_long, sig: ::c_int) -> ::c_int; - pub fn thr_kill2(pid: ::pid_t, id: ::c_long, sig: ::c_int) -> ::c_int; - pub fn thr_self(tid: *mut ::c_long) -> ::c_int; - pub fn pthread_getthreadid_np() -> ::c_int; - pub fn pthread_getaffinity_np( - td: ::pthread_t, - cpusetsize: ::size_t, - cpusetp: *mut cpuset_t, - ) -> ::c_int; - pub fn pthread_setaffinity_np( - td: ::pthread_t, - cpusetsize: ::size_t, - cpusetp: *const cpuset_t, - ) -> ::c_int; - - // sched.h linux compatibility api - pub fn sched_getaffinity(pid: ::pid_t, cpusetsz: ::size_t, cpuset: *mut ::cpuset_t) -> ::c_int; - pub fn sched_setaffinity( - pid: ::pid_t, - cpusetsz: ::size_t, - cpuset: *const ::cpuset_t, - ) -> ::c_int; - pub fn sched_getcpu() -> ::c_int; - - pub fn pthread_mutex_consistent(mutex: *mut ::pthread_mutex_t) -> ::c_int; - - pub fn pthread_mutexattr_getrobust( - attr: *mut ::pthread_mutexattr_t, - robust: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setrobust( - attr: *mut ::pthread_mutexattr_t, - robust: ::c_int, - ) -> ::c_int; - - pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> ::c_int; - - #[cfg_attr(all(target_os = "freebsd", freebsd11), link_name = "statfs@FBSD_1.0")] - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - #[cfg_attr(all(target_os = "freebsd", freebsd11), link_name = "fstatfs@FBSD_1.0")] - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - - pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; - pub fn __xuname(nmln: ::c_int, buf: *mut ::c_void) -> ::c_int; - - pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::size_t, - flags: ::c_int, - ) -> ::ssize_t; - pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::size_t, - flags: ::c_int, - timeout: *const ::timespec, - ) -> ::ssize_t; - pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; - - pub fn fhopen(fhp: *const fhandle_t, flags: ::c_int) -> ::c_int; - pub fn fhstat(fhp: *const fhandle, buf: *mut ::stat) -> ::c_int; - pub fn fhstatfs(fhp: *const fhandle_t, buf: *mut ::statfs) -> ::c_int; - pub fn getfh(path: *const ::c_char, fhp: *mut fhandle_t) -> ::c_int; - pub fn lgetfh(path: *const ::c_char, fhp: *mut fhandle_t) -> ::c_int; - pub fn getfsstat(buf: *mut ::statfs, bufsize: ::c_long, mode: ::c_int) -> ::c_int; - #[cfg_attr( - all(target_os = "freebsd", freebsd11), - link_name = "getmntinfo@FBSD_1.0" - )] - pub fn getmntinfo(mntbufp: *mut *mut ::statfs, mode: ::c_int) -> ::c_int; - pub fn mount( - type_: *const ::c_char, - dir: *const ::c_char, - flags: ::c_int, - data: *mut ::c_void, - ) -> ::c_int; - pub fn nmount(iov: *mut ::iovec, niov: ::c_uint, flags: ::c_int) -> ::c_int; - - pub fn setproctitle(fmt: *const ::c_char, ...); - pub fn rfork(flags: ::c_int) -> ::c_int; - pub fn cpuset_getaffinity( - level: cpulevel_t, - which: cpuwhich_t, - id: ::id_t, - setsize: ::size_t, - mask: *mut cpuset_t, - ) -> ::c_int; - pub fn cpuset_setaffinity( - level: cpulevel_t, - which: cpuwhich_t, - id: ::id_t, - setsize: ::size_t, - mask: *const cpuset_t, - ) -> ::c_int; - pub fn cpuset(setid: *mut ::cpusetid_t) -> ::c_int; - pub fn cpuset_getid( - level: cpulevel_t, - which: cpuwhich_t, - id: ::id_t, - setid: *mut ::cpusetid_t, - ) -> ::c_int; - pub fn cpuset_setid(which: cpuwhich_t, id: ::id_t, setid: ::cpusetid_t) -> ::c_int; - pub fn cap_enter() -> ::c_int; - pub fn cap_getmode(modep: *mut ::c_uint) -> ::c_int; - pub fn cap_fcntls_get(fd: ::c_int, fcntlrightsp: *mut u32) -> ::c_int; - pub fn cap_fcntls_limit(fd: ::c_int, fcntlrights: u32) -> ::c_int; - pub fn cap_ioctls_get(fd: ::c_int, cmds: *mut u_long, maxcmds: usize) -> isize; - pub fn cap_ioctls_limit(fd: ::c_int, cmds: *const u_long, ncmds: usize) -> ::c_int; - pub fn __cap_rights_init(version: ::c_int, rights: *mut cap_rights_t, ...) - -> *mut cap_rights_t; - pub fn __cap_rights_get(version: ::c_int, fd: ::c_int, rightsp: *mut cap_rights_t) -> ::c_int; - pub fn __cap_rights_set(rights: *mut cap_rights_t, ...) -> *mut cap_rights_t; - pub fn __cap_rights_clear(rights: *mut cap_rights_t, ...) -> *mut cap_rights_t; - pub fn __cap_rights_is_set(rights: *const cap_rights_t, ...) -> bool; - pub fn cap_rights_is_valid(rights: *const cap_rights_t) -> bool; - pub fn cap_rights_limit(fd: ::c_int, rights: *const cap_rights_t) -> ::c_int; - pub fn cap_rights_merge(dst: *mut cap_rights_t, src: *const cap_rights_t) -> *mut cap_rights_t; - pub fn cap_rights_remove(dst: *mut cap_rights_t, src: *const cap_rights_t) - -> *mut cap_rights_t; - pub fn cap_rights_contains(big: *const cap_rights_t, little: *const cap_rights_t) -> bool; - pub fn cap_sandboxed() -> bool; - - pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; - - pub fn ffs(value: ::c_int) -> ::c_int; - pub fn ffsl(value: ::c_long) -> ::c_int; - pub fn ffsll(value: ::c_longlong) -> ::c_int; - pub fn fls(value: ::c_int) -> ::c_int; - pub fn flsl(value: ::c_long) -> ::c_int; - pub fn flsll(value: ::c_longlong) -> ::c_int; - pub fn malloc_stats_print( - write_cb: unsafe extern "C" fn(*mut ::c_void, *const ::c_char), - cbopaque: *mut ::c_void, - opt: *const ::c_char, - ); - pub fn mallctl( - name: *const ::c_char, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn mallctlnametomib( - name: *const ::c_char, - mibp: *mut ::size_t, - miplen: *mut ::size_t, - ) -> ::c_int; - pub fn mallctlbymib( - mib: *const ::size_t, - mible: ::size_t, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn mallocx(size: ::size_t, flags: ::c_int) -> *mut ::c_void; - pub fn rallocx(ptr: *mut ::c_void, size: ::size_t, flags: ::c_int) -> *mut ::c_void; - pub fn xallocx(ptr: *mut ::c_void, size: ::size_t, extra: ::size_t, flags: ::c_int) - -> ::size_t; - pub fn sallocx(ptr: *const ::c_void, flags: ::c_int) -> ::size_t; - pub fn dallocx(ptr: *mut ::c_void, flags: ::c_int); - pub fn sdallocx(ptr: *mut ::c_void, size: ::size_t, flags: ::c_int); - pub fn nallocx(size: ::size_t, flags: ::c_int) -> ::size_t; - - pub fn procctl(idtype: ::idtype_t, id: ::id_t, cmd: ::c_int, data: *mut ::c_void) -> ::c_int; - - pub fn getpagesize() -> ::c_int; - pub fn getpagesizes(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int; - - pub fn clock_getcpuclockid2(arg1: ::id_t, arg2: ::c_int, arg3: *mut clockid_t) -> ::c_int; - pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; - - pub fn strchrnul(s: *const ::c_char, c: ::c_int) -> *mut ::c_char; - - pub fn shm_create_largepage( - path: *const ::c_char, - flags: ::c_int, - psind: ::c_int, - alloc_policy: ::c_int, - mode: ::mode_t, - ) -> ::c_int; - pub fn shm_rename( - path_from: *const ::c_char, - path_to: *const ::c_char, - flags: ::c_int, - ) -> ::c_int; - pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int; - pub fn setaudit(auditinfo: *const auditinfo_t) -> ::c_int; - - pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - - pub fn fdatasync(fd: ::c_int) -> ::c_int; - - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; - pub fn elf_aux_info(aux: ::c_int, buf: *mut ::c_void, buflen: ::c_int) -> ::c_int; - pub fn setproctitle_fast(fmt: *const ::c_char, ...); - pub fn timingsafe_bcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn timingsafe_memcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int; - - pub fn _umtx_op( - obj: *mut ::c_void, - op: ::c_int, - val: ::c_ulong, - uaddr: *mut ::c_void, - uaddr2: *mut ::c_void, - ) -> ::c_int; - - pub fn sctp_peeloff(s: ::c_int, id: ::sctp_assoc_t) -> ::c_int; - pub fn sctp_bindx(s: ::c_int, addrs: *mut ::sockaddr, num: ::c_int, tpe: ::c_int) -> ::c_int; - pub fn sctp_connectx( - s: ::c_int, - addrs: *const ::sockaddr, - addrcnt: ::c_int, - id: *mut ::sctp_assoc_t, - ) -> ::c_int; - pub fn sctp_getaddrlen(family: ::sa_family_t) -> ::c_int; - pub fn sctp_getpaddrs( - s: ::c_int, - asocid: ::sctp_assoc_t, - addrs: *mut *mut ::sockaddr, - ) -> ::c_int; - pub fn sctp_freepaddrs(addrs: *mut ::sockaddr); - pub fn sctp_getladdrs( - s: ::c_int, - asocid: ::sctp_assoc_t, - addrs: *mut *mut ::sockaddr, - ) -> ::c_int; - pub fn sctp_freeladdrs(addrs: *mut ::sockaddr); - pub fn sctp_opt_info( - s: ::c_int, - id: ::sctp_assoc_t, - opt: ::c_int, - arg: *mut ::c_void, - size: *mut ::socklen_t, - ) -> ::c_int; - pub fn sctp_sendv( - sd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - addrs: *mut ::sockaddr, - addrcnt: ::c_int, - info: *mut ::c_void, - infolen: ::socklen_t, - infotype: ::c_uint, - flags: ::c_int, - ) -> ::ssize_t; - pub fn sctp_recvv( - sd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - from: *mut ::sockaddr, - fromlen: *mut ::socklen_t, - info: *mut ::c_void, - infolen: *mut ::socklen_t, - infotype: *mut ::c_uint, - flags: *mut ::c_int, - ) -> ::ssize_t; -} - -#[link(name = "memstat")] -extern "C" { - pub fn memstat_strerror(error: ::c_int) -> *const ::c_char; - pub fn memstat_mtl_alloc() -> *mut memory_type_list; - pub fn memstat_mtl_first(list: *mut memory_type_list) -> *mut memory_type; - pub fn memstat_mtl_next(mtp: *mut memory_type) -> *mut memory_type; - pub fn memstat_mtl_find( - list: *mut memory_type_list, - allocator: ::c_int, - name: *const ::c_char, - ) -> *mut memory_type; - pub fn memstat_mtl_free(list: *mut memory_type_list); - pub fn memstat_mtl_geterror(list: *mut memory_type_list) -> ::c_int; - pub fn memstat_get_name(mtp: *const memory_type) -> *const ::c_char; -} - -#[link(name = "kvm")] -extern "C" { - pub fn kvm_dpcpu_setcpu(kd: *mut ::kvm_t, cpu: ::c_uint) -> ::c_int; - pub fn kvm_getargv(kd: *mut ::kvm_t, p: *const kinfo_proc, nchr: ::c_int) - -> *mut *mut ::c_char; - pub fn kvm_getcptime(kd: *mut ::kvm_t, cp_time: *mut ::c_long) -> ::c_int; - pub fn kvm_getenvv(kd: *mut ::kvm_t, p: *const kinfo_proc, nchr: ::c_int) - -> *mut *mut ::c_char; - pub fn kvm_geterr(kd: *mut ::kvm_t) -> *mut ::c_char; - pub fn kvm_getmaxcpu(kd: *mut ::kvm_t) -> ::c_int; - pub fn kvm_getncpus(kd: *mut ::kvm_t) -> ::c_int; - pub fn kvm_getpcpu(kd: *mut ::kvm_t, cpu: ::c_int) -> *mut ::c_void; - pub fn kvm_counter_u64_fetch(kd: *mut ::kvm_t, base: ::c_ulong) -> u64; - pub fn kvm_getswapinfo( - kd: *mut ::kvm_t, - info: *mut kvm_swap, - maxswap: ::c_int, - flags: ::c_int, - ) -> ::c_int; - pub fn kvm_native(kd: *mut ::kvm_t) -> ::c_int; - pub fn kvm_nlist(kd: *mut ::kvm_t, nl: *mut nlist) -> ::c_int; - pub fn kvm_nlist2(kd: *mut ::kvm_t, nl: *mut kvm_nlist) -> ::c_int; - pub fn kvm_read_zpcpu( - kd: *mut ::kvm_t, - base: ::c_ulong, - buf: *mut ::c_void, - size: ::size_t, - cpu: ::c_int, - ) -> ::ssize_t; - pub fn kvm_read2( - kd: *mut ::kvm_t, - addr: kvaddr_t, - buf: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; -} - -#[link(name = "util")] -extern "C" { - pub fn extattr_namespace_to_string( - attrnamespace: ::c_int, - string: *mut *mut ::c_char, - ) -> ::c_int; - pub fn extattr_string_to_namespace( - string: *const ::c_char, - attrnamespace: *mut ::c_int, - ) -> ::c_int; - pub fn realhostname(host: *mut ::c_char, hsize: ::size_t, ip: *const ::in_addr) -> ::c_int; - pub fn realhostname_sa( - host: *mut ::c_char, - hsize: ::size_t, - addr: *mut ::sockaddr, - addrlen: ::c_int, - ) -> ::c_int; - - pub fn kld_isloaded(name: *const ::c_char) -> ::c_int; - pub fn kld_load(name: *const ::c_char) -> ::c_int; - - pub fn kinfo_getvmmap(pid: ::pid_t, cntp: *mut ::c_int) -> *mut kinfo_vmentry; - - pub fn hexdump(ptr: *const ::c_void, length: ::c_int, hdr: *const ::c_char, flags: ::c_int); - pub fn humanize_number( - buf: *mut ::c_char, - len: ::size_t, - number: i64, - suffix: *const ::c_char, - scale: ::c_int, - flags: ::c_int, - ) -> ::c_int; - - pub fn flopen(path: *const ::c_char, flags: ::c_int, ...) -> ::c_int; - pub fn flopenat(fd: ::c_int, path: *const ::c_char, flags: ::c_int, ...) -> ::c_int; - - pub fn getlocalbase() -> *const ::c_char; - - pub fn pidfile_open( - path: *const ::c_char, - mode: ::mode_t, - pidptr: *mut ::pid_t, - ) -> *mut ::pidfh; - pub fn pidfile_write(path: *mut ::pidfh) -> ::c_int; - pub fn pidfile_close(path: *mut ::pidfh) -> ::c_int; - pub fn pidfile_remove(path: *mut ::pidfh) -> ::c_int; - pub fn pidfile_fileno(path: *const ::pidfh) -> ::c_int; - // FIXME: pidfile_signal in due time (both manpage present and updated image snapshot) -} - -#[link(name = "procstat")] -extern "C" { - pub fn procstat_open_sysctl() -> *mut procstat; - pub fn procstat_getfiles( - procstat: *mut procstat, - kp: *mut kinfo_proc, - mmapped: ::c_int, - ) -> *mut filestat_list; - pub fn procstat_freefiles(procstat: *mut procstat, head: *mut filestat_list); - pub fn procstat_getprocs( - procstat: *mut procstat, - what: ::c_int, - arg: ::c_int, - count: *mut ::c_uint, - ) -> *mut kinfo_proc; - pub fn procstat_freeprocs(procstat: *mut procstat, p: *mut kinfo_proc); - pub fn procstat_getvmmap( - procstat: *mut procstat, - kp: *mut kinfo_proc, - count: *mut ::c_uint, - ) -> *mut kinfo_vmentry; - pub fn procstat_freevmmap(procstat: *mut procstat, vmmap: *mut kinfo_vmentry); - pub fn procstat_close(procstat: *mut procstat); - pub fn procstat_freeargv(procstat: *mut procstat); - pub fn procstat_freeenvv(procstat: *mut procstat); - pub fn procstat_freegroups(procstat: *mut procstat, groups: *mut ::gid_t); - pub fn procstat_freeptlwpinfo(procstat: *mut procstat, pl: *mut ptrace_lwpinfo); - pub fn procstat_getargv( - procstat: *mut procstat, - kp: *mut kinfo_proc, - nchr: ::size_t, - ) -> *mut *mut ::c_char; - pub fn procstat_getenvv( - procstat: *mut procstat, - kp: *mut kinfo_proc, - nchr: ::size_t, - ) -> *mut *mut ::c_char; - pub fn procstat_getgroups( - procstat: *mut procstat, - kp: *mut kinfo_proc, - count: *mut ::c_uint, - ) -> *mut ::gid_t; - pub fn procstat_getosrel( - procstat: *mut procstat, - kp: *mut kinfo_proc, - osrelp: *mut ::c_int, - ) -> ::c_int; - pub fn procstat_getpathname( - procstat: *mut procstat, - kp: *mut kinfo_proc, - pathname: *mut ::c_char, - maxlen: ::size_t, - ) -> ::c_int; - pub fn procstat_getrlimit( - procstat: *mut procstat, - kp: *mut kinfo_proc, - which: ::c_int, - rlimit: *mut ::rlimit, - ) -> ::c_int; - pub fn procstat_getumask( - procstat: *mut procstat, - kp: *mut kinfo_proc, - maskp: *mut ::c_ushort, - ) -> ::c_int; - pub fn procstat_open_core(filename: *const ::c_char) -> *mut procstat; - pub fn procstat_open_kvm(nlistf: *const ::c_char, memf: *const ::c_char) -> *mut procstat; - pub fn procstat_get_socket_info( - proc_: *mut procstat, - fst: *mut filestat, - sock: *mut sockstat, - errbuf: *mut ::c_char, - ) -> ::c_int; - pub fn procstat_get_vnode_info( - proc_: *mut procstat, - fst: *mut filestat, - vn: *mut vnstat, - errbuf: *mut ::c_char, - ) -> ::c_int; - pub fn procstat_get_pts_info( - proc_: *mut procstat, - fst: *mut filestat, - pts: *mut ptsstat, - errbuf: *mut ::c_char, - ) -> ::c_int; - pub fn procstat_get_shm_info( - proc_: *mut procstat, - fst: *mut filestat, - shm: *mut shmstat, - errbuf: *mut ::c_char, - ) -> ::c_int; -} - -#[link(name = "rt")] -extern "C" { - pub fn timer_create(clock_id: clockid_t, evp: *mut sigevent, timerid: *mut timer_t) -> ::c_int; - pub fn timer_delete(timerid: timer_t) -> ::c_int; - pub fn timer_getoverrun(timerid: timer_t) -> ::c_int; - pub fn timer_gettime(timerid: timer_t, value: *mut itimerspec) -> ::c_int; - pub fn timer_settime( - timerid: timer_t, - flags: ::c_int, - value: *const itimerspec, - ovalue: *mut itimerspec, - ) -> ::c_int; -} - -#[link(name = "devstat")] -extern "C" { - pub fn devstat_getnumdevs(kd: *mut ::kvm_t) -> ::c_int; - pub fn devstat_getgeneration(kd: *mut ::kvm_t) -> ::c_long; - pub fn devstat_getversion(kd: *mut ::kvm_t) -> ::c_int; - pub fn devstat_checkversion(kd: *mut ::kvm_t) -> ::c_int; - pub fn devstat_selectdevs( - dev_select: *mut *mut device_selection, - num_selected: *mut ::c_int, - num_selections: *mut ::c_int, - select_generation: *mut ::c_long, - current_generation: ::c_long, - devices: *mut devstat, - numdevs: ::c_int, - matches: *mut devstat_match, - num_matches: ::c_int, - dev_selections: *mut *mut ::c_char, - num_dev_selections: ::c_int, - select_mode: devstat_select_mode, - maxshowdevs: ::c_int, - perf_select: ::c_int, - ) -> ::c_int; - pub fn devstat_buildmatch( - match_str: *mut ::c_char, - matches: *mut *mut devstat_match, - num_matches: *mut ::c_int, - ) -> ::c_int; -} - -cfg_if! { - if #[cfg(freebsd14)] { - mod freebsd14; - pub use self::freebsd14::*; - } else if #[cfg(freebsd13)] { - mod freebsd13; - pub use self::freebsd13::*; - } else if #[cfg(freebsd12)] { - mod freebsd12; - pub use self::freebsd12::*; - } else if #[cfg(any(freebsd10, freebsd11))] { - mod freebsd11; - pub use self::freebsd11::*; - } else { - // Unknown freebsd version - } -} - -cfg_if! { - if #[cfg(target_arch = "x86")] { - mod x86; - pub use self::x86::*; - } else if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } else if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else if #[cfg(target_arch = "arm")] { - mod arm; - pub use self::arm::*; - } else if #[cfg(target_arch = "powerpc64")] { - mod powerpc64; - pub use self::powerpc64::*; - } else if #[cfg(target_arch = "powerpc")] { - mod powerpc; - pub use self::powerpc::*; - } else if #[cfg(target_arch = "riscv64")] { - mod riscv64; - pub use self::riscv64::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc.rs deleted file mode 100644 index a0120c337..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc.rs +++ /dev/null @@ -1,47 +0,0 @@ -pub type c_char = u8; -pub type c_long = i32; -pub type c_ulong = u32; -pub type wchar_t = i32; -pub type time_t = i64; -pub type suseconds_t = i32; -pub type register_t = i32; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: ::fflags_t, - pub st_gen: u32, - pub st_lspare: i32, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, - } -} - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 4 - 1; - } -} - -pub const MAP_32BIT: ::c_int = 0x00080000; -pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs deleted file mode 100644 index 7f5b97522..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs +++ /dev/null @@ -1,47 +0,0 @@ -pub type c_char = u8; -pub type c_long = i64; -pub type c_ulong = u64; -pub type wchar_t = i32; -pub type time_t = i64; -pub type suseconds_t = i64; -pub type register_t = i64; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: ::fflags_t, - pub st_gen: u32, - pub st_lspare: i32, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, - } -} - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} - -pub const MAP_32BIT: ::c_int = 0x00080000; -pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/riscv64.rs deleted file mode 100644 index f9fa1c275..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/riscv64.rs +++ /dev/null @@ -1,154 +0,0 @@ -pub type c_char = u8; -pub type c_long = i64; -pub type c_ulong = u64; -pub type wchar_t = ::c_int; -pub type time_t = i64; -pub type suseconds_t = ::c_long; -pub type register_t = i64; - -s_no_extra_traits! { - pub struct gpregs { - pub gp_ra: ::register_t, - pub gp_sp: ::register_t, - pub gp_gp: ::register_t, - pub gp_tp: ::register_t, - pub gp_t: [::register_t; 7], - pub gp_s: [::register_t; 12], - pub gp_a: [::register_t; 8], - pub gp_sepc: ::register_t, - pub gp_sstatus: ::register_t, - } - - pub struct fpregs { - pub fp_x: [[::register_t; 2]; 32], - pub fp_fcsr: ::register_t, - pub fp_flags: ::c_int, - pub fp_pad: ::c_int, - } - - pub struct mcontext_t { - pub mc_gpregs: gpregs, - pub mc_fpregs: fpregs, - pub mc_flags: ::c_int, - pub mc_pad: ::c_int, - pub mc_spare: [u64; 8], - } -} - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for gpregs { - fn eq(&self, other: &gpregs) -> bool { - self.gp_ra == other.gp_ra && - self.gp_sp == other.gp_sp && - self.gp_gp == other.gp_gp && - self.gp_tp == other.gp_tp && - self.gp_t.iter().zip(other.gp_t.iter()).all(|(a, b)| a == b) && - self.gp_s.iter().zip(other.gp_s.iter()).all(|(a, b)| a == b) && - self.gp_a.iter().zip(other.gp_a.iter()).all(|(a, b)| a == b) && - self.gp_sepc == other.gp_sepc && - self.gp_sstatus == other.gp_sstatus - } - } - impl Eq for gpregs {} - impl ::fmt::Debug for gpregs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("gpregs") - .field("gp_ra", &self.gp_ra) - .field("gp_sp", &self.gp_sp) - .field("gp_gp", &self.gp_gp) - .field("gp_tp", &self.gp_tp) - .field("gp_t", &self.gp_t) - .field("gp_s", &self.gp_s) - .field("gp_a", &self.gp_a) - .field("gp_sepc", &self.gp_sepc) - .field("gp_sstatus", &self.gp_sstatus) - .finish() - } - } - impl ::hash::Hash for gpregs { - fn hash(&self, state: &mut H) { - self.gp_ra.hash(state); - self.gp_sp.hash(state); - self.gp_gp.hash(state); - self.gp_tp.hash(state); - self.gp_t.hash(state); - self.gp_s.hash(state); - self.gp_a.hash(state); - self.gp_sepc.hash(state); - self.gp_sstatus.hash(state); - } - } - impl PartialEq for fpregs { - fn eq(&self, other: &fpregs) -> bool { - self.fp_x == other.fp_x && - self.fp_fcsr == other.fp_fcsr && - self.fp_flags == other.fp_flags && - self.fp_pad == other.fp_pad - } - } - impl Eq for fpregs {} - impl ::fmt::Debug for fpregs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("fpregs") - .field("fp_x", &self.fp_x) - .field("fp_fcsr", &self.fp_fcsr) - .field("fp_flags", &self.fp_flags) - .field("fp_pad", &self.fp_pad) - .finish() - } - } - impl ::hash::Hash for fpregs { - fn hash(&self, state: &mut H) { - self.fp_x.hash(state); - self.fp_fcsr.hash(state); - self.fp_flags.hash(state); - self.fp_pad.hash(state); - } - } - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.mc_gpregs == other.mc_gpregs && - self.mc_fpregs == other.mc_fpregs && - self.mc_flags == other.mc_flags && - self.mc_pad == other.mc_pad && - self.mc_spare.iter().zip(other.mc_spare.iter()).all(|(a, b)| a == b) - } - } - impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mcontext_t") - .field("mc_gpregs", &self.mc_gpregs) - .field("mc_fpregs", &self.mc_fpregs) - .field("mc_flags", &self.mc_flags) - .field("mc_pad", &self.mc_pad) - .field("mc_spare", &self.mc_spare) - .finish() - } - } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.mc_gpregs.hash(state); - self.mc_fpregs.hash(state); - self.mc_flags.hash(state); - self.mc_pad.hash(state); - self.mc_spare.hash(state); - } - } - } -} - -pub const MAP_32BIT: ::c_int = 0x00080000; -pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4 diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86.rs deleted file mode 100644 index 4046ec310..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86.rs +++ /dev/null @@ -1,201 +0,0 @@ -pub type c_char = i8; -pub type c_long = i32; -pub type c_ulong = u32; -pub type wchar_t = i32; -pub type time_t = i32; -pub type suseconds_t = i32; -pub type register_t = i32; - -s_no_extra_traits! { - pub struct mcontext_t { - pub mc_onstack: register_t, - pub mc_gs: register_t, - pub mc_fs: register_t, - pub mc_es: register_t, - pub mc_ds: register_t, - pub mc_edi: register_t, - pub mc_esi: register_t, - pub mc_ebp: register_t, - pub mc_isp: register_t, - pub mc_ebx: register_t, - pub mc_edx: register_t, - pub mc_ecx: register_t, - pub mc_eax: register_t, - pub mc_trapno: register_t, - pub mc_err: register_t, - pub mc_eip: register_t, - pub mc_cs: register_t, - pub mc_eflags: register_t, - pub mc_esp: register_t, - pub mc_ss: register_t, - pub mc_len: ::c_int, - pub mc_fpformat: ::c_int, - pub mc_ownedfp: ::c_int, - pub mc_flags: register_t, - pub mc_fpstate: [[::c_int; 32]; 4], - pub mc_fsbase: register_t, - pub mc_gsbase: register_t, - pub mc_xfpustate: register_t, - pub mc_xfpustate_len: register_t, - pub mc_spare2: [::c_int; 4], - } -} - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: ::fflags_t, - pub st_gen: u32, - pub st_lspare: i32, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, - __unused: [u8; 8], - } - - pub struct ucontext_t { - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: ::mcontext_t, - pub uc_link: *mut ::ucontext_t, - pub uc_stack: ::stack_t, - pub uc_flags: ::c_int, - __spare__: [::c_int; 4], - } -} - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 4 - 1; - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.mc_onstack == other.mc_onstack && - self.mc_gs == other.mc_gs && - self.mc_fs == other.mc_fs && - self.mc_es == other.mc_es && - self.mc_ds == other.mc_ds && - self.mc_edi == other.mc_edi && - self.mc_esi == other.mc_esi && - self.mc_ebp == other.mc_ebp && - self.mc_isp == other.mc_isp && - self.mc_ebx == other.mc_ebx && - self.mc_edx == other.mc_edx && - self.mc_ecx == other.mc_ecx && - self.mc_eax == other.mc_eax && - self.mc_trapno == other.mc_trapno && - self.mc_err == other.mc_err && - self.mc_eip == other.mc_eip && - self.mc_cs == other.mc_cs && - self.mc_eflags == other.mc_eflags && - self.mc_esp == other.mc_esp && - self.mc_ss == other.mc_ss && - self.mc_len == other.mc_len && - self.mc_fpformat == other.mc_fpformat && - self.mc_ownedfp == other.mc_ownedfp && - self.mc_flags == other.mc_flags && - self.mc_fpstate.iter().zip(other.mc_fpstate.iter()).all(|(a, b)| a == b) && - self.mc_fsbase == other.mc_fsbase && - self.mc_gsbase == other.mc_gsbase && - self.mc_xfpustate == other.mc_xfpustate && - self.mc_xfpustate_len == other.mc_xfpustate_len && - self.mc_spare2.iter().zip(other.mc_spare2.iter()).all(|(a, b)| a == b) - } - } - impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mcontext_t") - .field("mc_onstack", &self.mc_onstack) - .field("mc_gs", &self.mc_gs) - .field("mc_fs", &self.mc_fs) - .field("mc_es", &self.mc_es) - .field("mc_ds", &self.mc_ds) - .field("mc_edi", &self.mc_edi) - .field("mc_esi", &self.mc_esi) - .field("mc_ebp", &self.mc_ebp) - .field("mc_isp", &self.mc_isp) - .field("mc_ebx", &self.mc_ebx) - .field("mc_edx", &self.mc_edx) - .field("mc_ecx", &self.mc_ecx) - .field("mc_eax", &self.mc_eax) - .field("mc_trapno", &self.mc_trapno) - .field("mc_err", &self.mc_err) - .field("mc_eip", &self.mc_eip) - .field("mc_cs", &self.mc_cs) - .field("mc_eflags", &self.mc_eflags) - .field("mc_esp", &self.mc_esp) - .field("mc_ss", &self.mc_ss) - .field("mc_len", &self.mc_len) - .field("mc_fpformat", &self.mc_fpformat) - .field("mc_ownedfp", &self.mc_ownedfp) - .field("mc_flags", &self.mc_flags) - .field("mc_fpstate", &self.mc_fpstate) - .field("mc_fsbase", &self.mc_fsbase) - .field("mc_gsbase", &self.mc_gsbase) - .field("mc_xfpustate", &self.mc_xfpustate) - .field("mc_xfpustate_len", &self.mc_xfpustate_len) - .field("mc_spare2", &self.mc_spare2) - .finish() - } - } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.mc_onstack.hash(state); - self.mc_gs.hash(state); - self.mc_fs.hash(state); - self.mc_es.hash(state); - self.mc_ds.hash(state); - self.mc_edi.hash(state); - self.mc_esi.hash(state); - self.mc_ebp.hash(state); - self.mc_isp.hash(state); - self.mc_ebx.hash(state); - self.mc_edx.hash(state); - self.mc_ecx.hash(state); - self.mc_eax.hash(state); - self.mc_trapno.hash(state); - self.mc_err.hash(state); - self.mc_eip.hash(state); - self.mc_cs.hash(state); - self.mc_eflags.hash(state); - self.mc_esp.hash(state); - self.mc_ss.hash(state); - self.mc_len.hash(state); - self.mc_fpformat.hash(state); - self.mc_ownedfp.hash(state); - self.mc_flags.hash(state); - self.mc_fpstate.hash(state); - self.mc_fsbase.hash(state); - self.mc_gsbase.hash(state); - self.mc_xfpustate.hash(state); - self.mc_xfpustate_len.hash(state); - self.mc_spare2.hash(state); - } - } - } -} - -pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs deleted file mode 100644 index 3a016a051..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs +++ /dev/null @@ -1,197 +0,0 @@ -use {c_long, register_t}; - -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } - - #[repr(align(16))] - pub struct mcontext_t { - pub mc_onstack: register_t, - pub mc_rdi: register_t, - pub mc_rsi: register_t, - pub mc_rdx: register_t, - pub mc_rcx: register_t, - pub mc_r8: register_t, - pub mc_r9: register_t, - pub mc_rax: register_t, - pub mc_rbx: register_t, - pub mc_rbp: register_t, - pub mc_r10: register_t, - pub mc_r11: register_t, - pub mc_r12: register_t, - pub mc_r13: register_t, - pub mc_r14: register_t, - pub mc_r15: register_t, - pub mc_trapno: u32, - pub mc_fs: u16, - pub mc_gs: u16, - pub mc_addr: register_t, - pub mc_flags: u32, - pub mc_es: u16, - pub mc_ds: u16, - pub mc_err: register_t, - pub mc_rip: register_t, - pub mc_cs: register_t, - pub mc_rflags: register_t, - pub mc_rsp: register_t, - pub mc_ss: register_t, - pub mc_len: c_long, - pub mc_fpformat: c_long, - pub mc_ownedfp: c_long, - pub mc_fpstate: [c_long; 64], - pub mc_fsbase: register_t, - pub mc_gsbase: register_t, - pub mc_xfpustate: register_t, - pub mc_xfpustate_len: register_t, - pub mc_spare: [c_long; 4], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.mc_onstack == other.mc_onstack && - self.mc_rdi == other.mc_rdi && - self.mc_rsi == other.mc_rsi && - self.mc_rdx == other.mc_rdx && - self.mc_rcx == other.mc_rcx && - self.mc_r8 == other.mc_r8 && - self.mc_r9 == other.mc_r9 && - self.mc_rax == other.mc_rax && - self.mc_rbx == other.mc_rbx && - self.mc_rbp == other.mc_rbp && - self.mc_r10 == other.mc_r10 && - self.mc_r11 == other.mc_r11 && - self.mc_r12 == other.mc_r12 && - self.mc_r13 == other.mc_r13 && - self.mc_r14 == other.mc_r14 && - self.mc_r15 == other.mc_r15 && - self.mc_trapno == other.mc_trapno && - self.mc_fs == other.mc_fs && - self.mc_gs == other.mc_gs && - self.mc_addr == other.mc_addr && - self.mc_flags == other.mc_flags && - self.mc_es == other.mc_es && - self.mc_ds == other.mc_ds && - self.mc_err == other.mc_err && - self.mc_rip == other.mc_rip && - self.mc_cs == other.mc_cs && - self.mc_rflags == other.mc_rflags && - self.mc_rsp == other.mc_rsp && - self.mc_ss == other.mc_ss && - self.mc_len == other.mc_len && - self.mc_fpformat == other.mc_fpformat && - self.mc_ownedfp == other.mc_ownedfp && - self.mc_fpstate.iter().zip(other.mc_fpstate.iter()) - .all(|(a, b)| a == b) && - self.mc_fsbase == other.mc_fsbase && - self.mc_gsbase == other.mc_gsbase && - self.mc_xfpustate == other.mc_xfpustate && - self.mc_xfpustate_len == other.mc_xfpustate_len && - self.mc_spare == other.mc_spare - } - } - impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mcontext_t") - .field("mc_onstack", &self.mc_onstack) - .field("mc_rdi", &self.mc_rdi) - .field("mc_rsi", &self.mc_rsi) - .field("mc_rdx", &self.mc_rdx) - .field("mc_rcx", &self.mc_rcx) - .field("mc_r8", &self.mc_r8) - .field("mc_r9", &self.mc_r9) - .field("mc_rax", &self.mc_rax) - .field("mc_rbx", &self.mc_rbx) - .field("mc_rbp", &self.mc_rbp) - .field("mc_r10", &self.mc_r10) - .field("mc_r11", &self.mc_r11) - .field("mc_r12", &self.mc_r12) - .field("mc_r13", &self.mc_r13) - .field("mc_r14", &self.mc_r14) - .field("mc_r15", &self.mc_r15) - .field("mc_trapno", &self.mc_trapno) - .field("mc_fs", &self.mc_fs) - .field("mc_gs", &self.mc_gs) - .field("mc_addr", &self.mc_addr) - .field("mc_flags", &self.mc_flags) - .field("mc_es", &self.mc_es) - .field("mc_ds", &self.mc_ds) - .field("mc_err", &self.mc_err) - .field("mc_rip", &self.mc_rip) - .field("mc_cs", &self.mc_cs) - .field("mc_rflags", &self.mc_rflags) - .field("mc_rsp", &self.mc_rsp) - .field("mc_ss", &self.mc_ss) - .field("mc_len", &self.mc_len) - .field("mc_fpformat", &self.mc_fpformat) - .field("mc_ownedfp", &self.mc_ownedfp) - // FIXME: .field("mc_fpstate", &self.mc_fpstate) - .field("mc_fsbase", &self.mc_fsbase) - .field("mc_gsbase", &self.mc_gsbase) - .field("mc_xfpustate", &self.mc_xfpustate) - .field("mc_xfpustate_len", &self.mc_xfpustate_len) - .field("mc_spare", &self.mc_spare) - .finish() - } - } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.mc_onstack.hash(state); - self.mc_rdi.hash(state); - self.mc_rsi.hash(state); - self.mc_rdx.hash(state); - self.mc_rcx.hash(state); - self.mc_r8.hash(state); - self.mc_r9.hash(state); - self.mc_rax.hash(state); - self.mc_rbx.hash(state); - self.mc_rbp.hash(state); - self.mc_r10.hash(state); - self.mc_r11.hash(state); - self.mc_r12.hash(state); - self.mc_r13.hash(state); - self.mc_r14.hash(state); - self.mc_r15.hash(state); - self.mc_trapno.hash(state); - self.mc_fs.hash(state); - self.mc_gs.hash(state); - self.mc_addr.hash(state); - self.mc_flags.hash(state); - self.mc_es.hash(state); - self.mc_ds.hash(state); - self.mc_err.hash(state); - self.mc_rip.hash(state); - self.mc_cs.hash(state); - self.mc_rflags.hash(state); - self.mc_rsp.hash(state); - self.mc_ss.hash(state); - self.mc_len.hash(state); - self.mc_fpformat.hash(state); - self.mc_ownedfp.hash(state); - self.mc_fpstate.hash(state); - self.mc_fsbase.hash(state); - self.mc_gsbase.hash(state); - self.mc_xfpustate.hash(state); - self.mc_xfpustate_len.hash(state); - self.mc_spare.hash(state); - } - } - } -} - -s! { - pub struct ucontext_t { - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: ::mcontext_t, - pub uc_link: *mut ::ucontext_t, - pub uc_stack: ::stack_t, - pub uc_flags: ::c_int, - __spare__: [::c_int; 4], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs deleted file mode 100644 index ae1fcf781..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs +++ /dev/null @@ -1,334 +0,0 @@ -pub type c_char = i8; -pub type c_long = i64; -pub type c_ulong = u64; -pub type wchar_t = i32; -pub type time_t = i64; -pub type suseconds_t = i64; -pub type register_t = i64; - -s! { - pub struct reg32 { - pub r_fs: u32, - pub r_es: u32, - pub r_ds: u32, - pub r_edi: u32, - pub r_esi: u32, - pub r_ebp: u32, - pub r_isp: u32, - pub r_ebx: u32, - pub r_edx: u32, - pub r_ecx: u32, - pub r_eax: u32, - pub r_trapno: u32, - pub r_err: u32, - pub r_eip: u32, - pub r_cs: u32, - pub r_eflags: u32, - pub r_esp: u32, - pub r_ss: u32, - pub r_gs: u32, - } - - pub struct reg { - pub r_r15: i64, - pub r_r14: i64, - pub r_r13: i64, - pub r_r12: i64, - pub r_r11: i64, - pub r_r10: i64, - pub r_r9: i64, - pub r_r8: i64, - pub r_rdi: i64, - pub r_rsi: i64, - pub r_rbp: i64, - pub r_rbx: i64, - pub r_rdx: i64, - pub r_rcx: i64, - pub r_rax: i64, - pub r_trapno: u32, - pub r_fs: u16, - pub r_gs: u16, - pub r_err: u32, - pub r_es: u16, - pub r_ds: u16, - pub r_rip: i64, - pub r_cs: i64, - pub r_rflags: i64, - pub r_rsp: i64, - pub r_ss: i64, - } -} - -s_no_extra_traits! { - pub struct fpreg32 { - pub fpr_env: [u32; 7], - pub fpr_acc: [[u8; 10]; 8], - pub fpr_ex_sw: u32, - pub fpr_pad: [u8; 64], - } - - pub struct fpreg { - pub fpr_env: [u64; 4], - pub fpr_acc: [[u8; 16]; 8], - pub fpr_xacc: [[u8; 16]; 16], - pub fpr_spare: [u64; 12], - } - - pub struct xmmreg { - pub xmm_env: [u32; 8], - pub xmm_acc: [[u8; 16]; 8], - pub xmm_reg: [[u8; 16]; 8], - pub xmm_pad: [u8; 224], - } - - #[cfg(libc_union)] - pub union __c_anonymous_elf64_auxv_union { - pub a_val: ::c_long, - pub a_ptr: *mut ::c_void, - pub a_fcn: extern "C" fn(), - } - - pub struct Elf64_Auxinfo { - pub a_type: ::c_long, - #[cfg(libc_union)] - pub a_un: __c_anonymous_elf64_auxv_union, - } - - pub struct kinfo_file { - pub kf_structsize: ::c_int, - pub kf_type: ::c_int, - pub kf_fd: ::c_int, - pub kf_ref_count: ::c_int, - pub kf_flags: ::c_int, - _kf_pad0: ::c_int, - pub kf_offset: i64, - _priv: [::uintptr_t; 38], // FIXME if needed - pub kf_status: u16, - _kf_pad1: u16, - _kf_ispare0: ::c_int, - pub kf_cap_rights: ::cap_rights_t, - _kf_cap_spare: u64, - pub kf_path: [::c_char; ::PATH_MAX as usize], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for fpreg32 { - fn eq(&self, other: &fpreg32) -> bool { - self.fpr_env == other.fpr_env && - self.fpr_acc == other.fpr_acc && - self.fpr_ex_sw == other.fpr_ex_sw && - self.fpr_pad - .iter() - .zip(other.fpr_pad.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for fpreg32 {} - impl ::fmt::Debug for fpreg32 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("fpreg32") - .field("fpr_env", &&self.fpr_env[..]) - .field("fpr_acc", &self.fpr_acc) - .field("fpr_ex_sw", &self.fpr_ex_sw) - .field("fpr_pad", &&self.fpr_pad[..]) - .finish() - } - } - impl ::hash::Hash for fpreg32 { - fn hash(&self, state: &mut H) { - self.fpr_env.hash(state); - self.fpr_acc.hash(state); - self.fpr_ex_sw.hash(state); - self.fpr_pad.hash(state); - } - } - - impl PartialEq for fpreg { - fn eq(&self, other: &fpreg) -> bool { - self.fpr_env == other.fpr_env && - self.fpr_acc == other.fpr_acc && - self.fpr_xacc == other.fpr_xacc && - self.fpr_spare == other.fpr_spare - } - } - impl Eq for fpreg {} - impl ::fmt::Debug for fpreg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("fpreg") - .field("fpr_env", &self.fpr_env) - .field("fpr_acc", &self.fpr_acc) - .field("fpr_xacc", &self.fpr_xacc) - .field("fpr_spare", &self.fpr_spare) - .finish() - } - } - impl ::hash::Hash for fpreg { - fn hash(&self, state: &mut H) { - self.fpr_env.hash(state); - self.fpr_acc.hash(state); - self.fpr_xacc.hash(state); - self.fpr_spare.hash(state); - } - } - - impl PartialEq for xmmreg { - fn eq(&self, other: &xmmreg) -> bool { - self.xmm_env == other.xmm_env && - self.xmm_acc == other.xmm_acc && - self.xmm_reg == other.xmm_reg && - self.xmm_pad - .iter() - .zip(other.xmm_pad.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for xmmreg {} - impl ::fmt::Debug for xmmreg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("xmmreg") - .field("xmm_env", &self.xmm_env) - .field("xmm_acc", &self.xmm_acc) - .field("xmm_reg", &self.xmm_reg) - .field("xmm_pad", &&self.xmm_pad[..]) - .finish() - } - } - impl ::hash::Hash for xmmreg { - fn hash(&self, state: &mut H) { - self.xmm_env.hash(state); - self.xmm_acc.hash(state); - self.xmm_reg.hash(state); - self.xmm_pad.hash(state); - } - } - - #[cfg(libc_union)] - impl PartialEq for __c_anonymous_elf64_auxv_union { - fn eq(&self, other: &__c_anonymous_elf64_auxv_union) -> bool { - unsafe { self.a_val == other.a_val - || self.a_ptr == other.a_ptr - || self.a_fcn == other.a_fcn } - } - } - #[cfg(libc_union)] - impl Eq for __c_anonymous_elf64_auxv_union {} - #[cfg(libc_union)] - impl ::fmt::Debug for __c_anonymous_elf64_auxv_union { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("a_val") - .field("a_val", unsafe { &self.a_val }) - .finish() - } - } - #[cfg(not(libc_union))] - impl PartialEq for Elf64_Auxinfo { - fn eq(&self, other: &Elf64_Auxinfo) -> bool { - self.a_type == other.a_type - } - } - #[cfg(libc_union)] - impl PartialEq for Elf64_Auxinfo { - fn eq(&self, other: &Elf64_Auxinfo) -> bool { - self.a_type == other.a_type - && self.a_un == other.a_un - } - } - impl Eq for Elf64_Auxinfo {} - #[cfg(not(libc_union))] - impl ::fmt::Debug for Elf64_Auxinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("Elf64_Auxinfo") - .field("a_type", &self.a_type) - .finish() - } - } - #[cfg(libc_union)] - impl ::fmt::Debug for Elf64_Auxinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("Elf64_Auxinfo") - .field("a_type", &self.a_type) - .field("a_un", &self.a_un) - .finish() - } - } - - impl PartialEq for kinfo_file { - fn eq(&self, other: &kinfo_file) -> bool { - self.kf_structsize == other.kf_structsize && - self.kf_type == other.kf_type && - self.kf_fd == other.kf_fd && - self.kf_ref_count == other.kf_ref_count && - self.kf_flags == other.kf_flags && - self.kf_offset == other.kf_offset && - self.kf_status == other.kf_status && - self.kf_cap_rights == other.kf_cap_rights && - self.kf_path - .iter() - .zip(other.kf_path.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for kinfo_file {} - impl ::fmt::Debug for kinfo_file { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("kinfo_file") - .field("kf_structsize", &self.kf_structsize) - .field("kf_type", &self.kf_type) - .field("kf_fd", &self.kf_fd) - .field("kf_ref_count", &self.kf_ref_count) - .field("kf_flags", &self.kf_flags) - .field("kf_offset", &self.kf_offset) - .field("kf_status", &self.kf_status) - .field("kf_cap_rights", &self.kf_cap_rights) - .field("kf_path", &&self.kf_path[..]) - .finish() - } - } - impl ::hash::Hash for kinfo_file { - fn hash(&self, state: &mut H) { - self.kf_structsize.hash(state); - self.kf_type.hash(state); - self.kf_fd.hash(state); - self.kf_ref_count.hash(state); - self.kf_flags.hash(state); - self.kf_offset.hash(state); - self.kf_status.hash(state); - self.kf_cap_rights.hash(state); - self.kf_path.hash(state); - } - } - } -} - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} -pub const MAP_32BIT: ::c_int = 0x00080000; -pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 - -pub const _MC_HASSEGS: u32 = 0x1; -pub const _MC_HASBASES: u32 = 0x2; -pub const _MC_HASFPXSTATE: u32 = 0x4; -pub const _MC_FLAG_MASK: u32 = _MC_HASSEGS | _MC_HASBASES | _MC_HASFPXSTATE; - -pub const _MC_FPFMT_NODEV: c_long = 0x10000; -pub const _MC_FPFMT_XMM: c_long = 0x10002; -pub const _MC_FPOWNED_NONE: c_long = 0x20000; -pub const _MC_FPOWNED_FPU: c_long = 0x20001; -pub const _MC_FPOWNED_PCB: c_long = 0x20002; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/mod.rs deleted file mode 100644 index fe69ca420..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/freebsdlike/mod.rs +++ /dev/null @@ -1,1896 +0,0 @@ -pub type mode_t = u16; -pub type pthread_attr_t = *mut ::c_void; -pub type rlim_t = i64; -pub type pthread_mutex_t = *mut ::c_void; -pub type pthread_mutexattr_t = *mut ::c_void; -pub type pthread_cond_t = *mut ::c_void; -pub type pthread_condattr_t = *mut ::c_void; -pub type pthread_rwlock_t = *mut ::c_void; -pub type pthread_rwlockattr_t = *mut ::c_void; -pub type pthread_key_t = ::c_int; -pub type tcflag_t = ::c_uint; -pub type speed_t = ::c_uint; -pub type nl_item = ::c_int; -pub type id_t = i64; -pub type vm_size_t = ::uintptr_t; -pub type key_t = ::c_long; - -// elf.h - -pub type Elf32_Addr = u32; -pub type Elf32_Half = u16; -pub type Elf32_Lword = u64; -pub type Elf32_Off = u32; -pub type Elf32_Sword = i32; -pub type Elf32_Word = u32; - -pub type Elf64_Addr = u64; -pub type Elf64_Half = u16; -pub type Elf64_Lword = u64; -pub type Elf64_Off = u64; -pub type Elf64_Sword = i32; -pub type Elf64_Sxword = i64; -pub type Elf64_Word = u32; -pub type Elf64_Xword = u64; - -pub type iconv_t = *mut ::c_void; - -// It's an alias over "struct __kvm_t". However, its fields aren't supposed to be used directly, -// making the type definition system dependent. Better not bind it exactly. -pub type kvm_t = ::c_void; - -cfg_if! { - if #[cfg(target_pointer_width = "64")] { - type Elf_Addr = Elf64_Addr; - type Elf_Half = Elf64_Half; - type Elf_Phdr = Elf64_Phdr; - } else if #[cfg(target_pointer_width = "32")] { - type Elf_Addr = Elf32_Addr; - type Elf_Half = Elf32_Half; - type Elf_Phdr = Elf32_Phdr; - } -} - -// link.h - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { - fn clone(&self) -> timezone { - *self - } -} - -impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { - self.si_addr - } - - pub unsafe fn si_value(&self) -> ::sigval { - self.si_value - } - - pub unsafe fn si_pid(&self) -> ::pid_t { - self.si_pid - } - - pub unsafe fn si_uid(&self) -> ::uid_t { - self.si_uid - } - - pub unsafe fn si_status(&self) -> ::c_int { - self.si_status - } -} - -s! { - pub struct in_addr { - pub s_addr: ::in_addr_t, - } - - pub struct ip_mreq { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct ip_mreqn { - pub imr_multiaddr: in_addr, - pub imr_address: in_addr, - pub imr_ifindex: ::c_int, - } - - pub struct ip_mreq_source { - pub imr_multiaddr: in_addr, - pub imr_sourceaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_matchc: ::size_t, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - pub gl_pathv: *mut *mut ::c_char, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - __unused6: *mut ::c_void, - __unused7: *mut ::c_void, - __unused8: *mut ::c_void, - } - - pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::socklen_t, - pub ai_canonname: *mut ::c_char, - pub ai_addr: *mut ::sockaddr, - pub ai_next: *mut addrinfo, - } - - pub struct sigset_t { - bits: [u32; 4], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub si_pid: ::pid_t, - pub si_uid: ::uid_t, - pub si_status: ::c_int, - pub si_addr: *mut ::c_void, - pub si_value: ::sigval, - _pad1: ::c_long, - _pad2: [::c_int; 7], - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_flags: ::c_int, - pub sa_mask: sigset_t, - } - - pub struct sched_param { - pub sched_priority: ::c_int, - } - - pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, - } - - pub struct sockaddr_in { - pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - } - - pub struct flock { - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - pub l_type: ::c_short, - pub l_whence: ::c_short, - #[cfg(not(target_os = "dragonfly"))] - pub l_sysid: ::c_int, - } - - pub struct sf_hdtr { - pub headers: *mut ::iovec, - pub hdr_cnt: ::c_int, - pub trailers: *mut ::iovec, - pub trl_cnt: ::c_int, - } - - pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, - } - - pub struct cmsgcred { - pub cmcred_pid: ::pid_t, - pub cmcred_uid: ::uid_t, - pub cmcred_euid: ::uid_t, - pub cmcred_gid: ::gid_t, - pub cmcred_ngroups: ::c_short, - pub cmcred_groups: [::gid_t; CMGROUP_MAX], - } - - pub struct rtprio { - pub type_: ::c_ushort, - pub prio: ::c_ushort, - } - - pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_uint, - } - - pub struct arphdr { - pub ar_hrd: u16, - pub ar_pro: u16, - pub ar_hln: u8, - pub ar_pln: u8, - pub ar_op: u16, - } - - pub struct timex { - pub modes: ::c_uint, - pub offset: ::c_long, - pub freq: ::c_long, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub status: ::c_int, - pub constant: ::c_long, - pub precision: ::c_long, - pub tolerance: ::c_long, - pub ppsfreq: ::c_long, - pub jitter: ::c_long, - pub shift: ::c_int, - pub stabil: ::c_long, - pub jitcnt: ::c_long, - pub calcnt: ::c_long, - pub errcnt: ::c_long, - pub stbcnt: ::c_long, - } - - pub struct ntptimeval { - pub time: ::timespec, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub tai: ::c_long, - pub time_state: ::c_int, - } - - pub struct accept_filter_arg { - pub af_name: [::c_char; 16], - af_arg: [[::c_char; 10]; 24], - } - - pub struct ptrace_io_desc { - pub piod_op: ::c_int, - pub piod_offs: *mut ::c_void, - pub piod_addr: *mut ::c_void, - pub piod_len: ::size_t, - } - - // bpf.h - - pub struct bpf_program { - pub bf_len: ::c_uint, - pub bf_insns: *mut bpf_insn, - } - - pub struct bpf_stat { - pub bs_recv: ::c_uint, - pub bs_drop: ::c_uint, - } - - pub struct bpf_version { - pub bv_major: ::c_ushort, - pub bv_minor: ::c_ushort, - } - - pub struct bpf_hdr { - pub bh_tstamp: ::timeval, - pub bh_caplen: u32, - pub bh_datalen: u32, - pub bh_hdrlen: ::c_ushort, - } - - pub struct bpf_insn { - pub code: ::c_ushort, - pub jt: ::c_uchar, - pub jf: ::c_uchar, - pub k: u32, - } - - pub struct bpf_dltlist { - bfl_len: ::c_uint, - bfl_list: *mut ::c_uint, - } - - // elf.h - - pub struct Elf32_Phdr { - pub p_type: Elf32_Word, - pub p_offset: Elf32_Off, - pub p_vaddr: Elf32_Addr, - pub p_paddr: Elf32_Addr, - pub p_filesz: Elf32_Word, - pub p_memsz: Elf32_Word, - pub p_flags: Elf32_Word, - pub p_align: Elf32_Word, - } - - pub struct Elf64_Phdr { - pub p_type: Elf64_Word, - pub p_flags: Elf64_Word, - pub p_offset: Elf64_Off, - pub p_vaddr: Elf64_Addr, - pub p_paddr: Elf64_Addr, - pub p_filesz: Elf64_Xword, - pub p_memsz: Elf64_Xword, - pub p_align: Elf64_Xword, - } - - // link.h - - pub struct dl_phdr_info { - pub dlpi_addr: Elf_Addr, - pub dlpi_name: *const ::c_char, - pub dlpi_phdr: *const Elf_Phdr, - pub dlpi_phnum: Elf_Half, - pub dlpi_adds: ::c_ulonglong, - pub dlpi_subs: ::c_ulonglong, - pub dlpi_tls_modid: usize, - pub dlpi_tls_data: *mut ::c_void, - } - - pub struct ipc_perm { - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub mode: ::mode_t, - pub seq: ::c_ushort, - pub key: ::key_t, - } - - pub struct eui64 { - pub octet: [u8; EUI64_LEN], - } -} - -s_no_extra_traits! { - pub struct sockaddr_storage { - pub ss_len: u8, - pub ss_family: ::sa_family_t, - __ss_pad1: [u8; 6], - __ss_align: i64, - __ss_pad2: [u8; 112], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_len == other.ss_len - && self.ss_family == other.ss_family - && self.__ss_pad1 == other.__ss_pad1 - && self.__ss_align == other.__ss_align - && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &self.__ss_pad1) - .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_pad2", &self.__ss_pad2) - .finish() - } - } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_len.hash(state); - self.ss_family.hash(state); - self.__ss_pad1.hash(state); - self.__ss_align.hash(state); - self.__ss_pad2.hash(state); - } - } - } -} - -// Non-public helper constant -cfg_if! { - if #[cfg(all(not(libc_const_size_of), target_pointer_width = "32"))] { - const SIZEOF_LONG: usize = 4; - } else if #[cfg(all(not(libc_const_size_of), target_pointer_width = "64"))] { - const SIZEOF_LONG: usize = 8; - } else if #[cfg(libc_const_size_of)] { - const SIZEOF_LONG: usize = ::mem::size_of::<::c_long>(); - } -} - -#[deprecated( - since = "0.2.64", - note = "Can vary at runtime. Use sysconf(3) instead" -)] -pub const AIO_LISTIO_MAX: ::c_int = 16; -pub const AIO_CANCELED: ::c_int = 1; -pub const AIO_NOTCANCELED: ::c_int = 2; -pub const AIO_ALLDONE: ::c_int = 3; -pub const LIO_NOP: ::c_int = 0; -pub const LIO_WRITE: ::c_int = 1; -pub const LIO_READ: ::c_int = 2; -pub const LIO_WAIT: ::c_int = 1; -pub const LIO_NOWAIT: ::c_int = 0; - -pub const SIGEV_NONE: ::c_int = 0; -pub const SIGEV_SIGNAL: ::c_int = 1; -pub const SIGEV_THREAD: ::c_int = 2; -pub const SIGEV_KEVENT: ::c_int = 3; - -pub const CODESET: ::nl_item = 0; -pub const D_T_FMT: ::nl_item = 1; -pub const D_FMT: ::nl_item = 2; -pub const T_FMT: ::nl_item = 3; -pub const T_FMT_AMPM: ::nl_item = 4; -pub const AM_STR: ::nl_item = 5; -pub const PM_STR: ::nl_item = 6; - -pub const DAY_1: ::nl_item = 7; -pub const DAY_2: ::nl_item = 8; -pub const DAY_3: ::nl_item = 9; -pub const DAY_4: ::nl_item = 10; -pub const DAY_5: ::nl_item = 11; -pub const DAY_6: ::nl_item = 12; -pub const DAY_7: ::nl_item = 13; - -pub const ABDAY_1: ::nl_item = 14; -pub const ABDAY_2: ::nl_item = 15; -pub const ABDAY_3: ::nl_item = 16; -pub const ABDAY_4: ::nl_item = 17; -pub const ABDAY_5: ::nl_item = 18; -pub const ABDAY_6: ::nl_item = 19; -pub const ABDAY_7: ::nl_item = 20; - -pub const MON_1: ::nl_item = 21; -pub const MON_2: ::nl_item = 22; -pub const MON_3: ::nl_item = 23; -pub const MON_4: ::nl_item = 24; -pub const MON_5: ::nl_item = 25; -pub const MON_6: ::nl_item = 26; -pub const MON_7: ::nl_item = 27; -pub const MON_8: ::nl_item = 28; -pub const MON_9: ::nl_item = 29; -pub const MON_10: ::nl_item = 30; -pub const MON_11: ::nl_item = 31; -pub const MON_12: ::nl_item = 32; - -pub const ABMON_1: ::nl_item = 33; -pub const ABMON_2: ::nl_item = 34; -pub const ABMON_3: ::nl_item = 35; -pub const ABMON_4: ::nl_item = 36; -pub const ABMON_5: ::nl_item = 37; -pub const ABMON_6: ::nl_item = 38; -pub const ABMON_7: ::nl_item = 39; -pub const ABMON_8: ::nl_item = 40; -pub const ABMON_9: ::nl_item = 41; -pub const ABMON_10: ::nl_item = 42; -pub const ABMON_11: ::nl_item = 43; -pub const ABMON_12: ::nl_item = 44; - -pub const ERA: ::nl_item = 45; -pub const ERA_D_FMT: ::nl_item = 46; -pub const ERA_D_T_FMT: ::nl_item = 47; -pub const ERA_T_FMT: ::nl_item = 48; -pub const ALT_DIGITS: ::nl_item = 49; - -pub const RADIXCHAR: ::nl_item = 50; -pub const THOUSEP: ::nl_item = 51; - -pub const YESEXPR: ::nl_item = 52; -pub const NOEXPR: ::nl_item = 53; - -pub const YESSTR: ::nl_item = 54; -pub const NOSTR: ::nl_item = 55; - -pub const CRNCYSTR: ::nl_item = 56; - -pub const D_MD_ORDER: ::nl_item = 57; - -pub const ALTMON_1: ::nl_item = 58; -pub const ALTMON_2: ::nl_item = 59; -pub const ALTMON_3: ::nl_item = 60; -pub const ALTMON_4: ::nl_item = 61; -pub const ALTMON_5: ::nl_item = 62; -pub const ALTMON_6: ::nl_item = 63; -pub const ALTMON_7: ::nl_item = 64; -pub const ALTMON_8: ::nl_item = 65; -pub const ALTMON_9: ::nl_item = 66; -pub const ALTMON_10: ::nl_item = 67; -pub const ALTMON_11: ::nl_item = 68; -pub const ALTMON_12: ::nl_item = 69; - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const SEEK_DATA: ::c_int = 3; -pub const SEEK_HOLE: ::c_int = 4; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; -pub const BUFSIZ: ::c_uint = 1024; -pub const FOPEN_MAX: ::c_uint = 20; -pub const FILENAME_MAX: ::c_uint = 1024; -pub const L_tmpnam: ::c_uint = 1024; -pub const TMP_MAX: ::c_uint = 308915776; - -pub const O_NOCTTY: ::c_int = 32768; -pub const O_DIRECT: ::c_int = 0x00010000; - -pub const S_IFIFO: mode_t = 4096; -pub const S_IFCHR: mode_t = 8192; -pub const S_IFBLK: mode_t = 24576; -pub const S_IFDIR: mode_t = 16384; -pub const S_IFREG: mode_t = 32768; -pub const S_IFLNK: mode_t = 40960; -pub const S_IFSOCK: mode_t = 49152; -pub const S_IFMT: mode_t = 61440; -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; -pub const S_IRWXU: mode_t = 448; -pub const S_IXUSR: mode_t = 64; -pub const S_IWUSR: mode_t = 128; -pub const S_IRUSR: mode_t = 256; -pub const S_IRWXG: mode_t = 56; -pub const S_IXGRP: mode_t = 8; -pub const S_IWGRP: mode_t = 16; -pub const S_IRGRP: mode_t = 32; -pub const S_IRWXO: mode_t = 7; -pub const S_IXOTH: mode_t = 1; -pub const S_IWOTH: mode_t = 2; -pub const S_IROTH: mode_t = 4; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; -pub const F_DUPFD_CLOEXEC: ::c_int = 17; -pub const F_DUP2FD: ::c_int = 10; -pub const F_DUP2FD_CLOEXEC: ::c_int = 18; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const MAP_FILE: ::c_int = 0x0000; -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_FIXED: ::c_int = 0x0010; -pub const MAP_ANON: ::c_int = 0x1000; -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; - -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const MNT_EXPUBLIC: ::c_int = 0x20000000; -pub const MNT_NOATIME: ::c_int = 0x10000000; -pub const MNT_NOCLUSTERR: ::c_int = 0x40000000; -pub const MNT_NOCLUSTERW: ::c_int = 0x80000000; -pub const MNT_NOSYMFOLLOW: ::c_int = 0x00400000; -pub const MNT_SOFTDEP: ::c_int = 0x00200000; -pub const MNT_SUIDDIR: ::c_int = 0x00100000; -pub const MNT_EXRDONLY: ::c_int = 0x00000080; -pub const MNT_DEFEXPORTED: ::c_int = 0x00000200; -pub const MNT_EXPORTANON: ::c_int = 0x00000400; -pub const MNT_EXKERB: ::c_int = 0x00000800; -pub const MNT_DELEXPORT: ::c_int = 0x00020000; - -pub const MS_SYNC: ::c_int = 0x0000; -pub const MS_ASYNC: ::c_int = 0x0001; -pub const MS_INVALIDATE: ::c_int = 0x0002; - -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EDEADLK: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EAGAIN: ::c_int = 35; -pub const EWOULDBLOCK: ::c_int = 35; -pub const EINPROGRESS: ::c_int = 36; -pub const EALREADY: ::c_int = 37; -pub const ENOTSOCK: ::c_int = 38; -pub const EDESTADDRREQ: ::c_int = 39; -pub const EMSGSIZE: ::c_int = 40; -pub const EPROTOTYPE: ::c_int = 41; -pub const ENOPROTOOPT: ::c_int = 42; -pub const EPROTONOSUPPORT: ::c_int = 43; -pub const ESOCKTNOSUPPORT: ::c_int = 44; -pub const EOPNOTSUPP: ::c_int = 45; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 46; -pub const EAFNOSUPPORT: ::c_int = 47; -pub const EADDRINUSE: ::c_int = 48; -pub const EADDRNOTAVAIL: ::c_int = 49; -pub const ENETDOWN: ::c_int = 50; -pub const ENETUNREACH: ::c_int = 51; -pub const ENETRESET: ::c_int = 52; -pub const ECONNABORTED: ::c_int = 53; -pub const ECONNRESET: ::c_int = 54; -pub const ENOBUFS: ::c_int = 55; -pub const EISCONN: ::c_int = 56; -pub const ENOTCONN: ::c_int = 57; -pub const ESHUTDOWN: ::c_int = 58; -pub const ETOOMANYREFS: ::c_int = 59; -pub const ETIMEDOUT: ::c_int = 60; -pub const ECONNREFUSED: ::c_int = 61; -pub const ELOOP: ::c_int = 62; -pub const ENAMETOOLONG: ::c_int = 63; -pub const EHOSTDOWN: ::c_int = 64; -pub const EHOSTUNREACH: ::c_int = 65; -pub const ENOTEMPTY: ::c_int = 66; -pub const EPROCLIM: ::c_int = 67; -pub const EUSERS: ::c_int = 68; -pub const EDQUOT: ::c_int = 69; -pub const ESTALE: ::c_int = 70; -pub const EREMOTE: ::c_int = 71; -pub const EBADRPC: ::c_int = 72; -pub const ERPCMISMATCH: ::c_int = 73; -pub const EPROGUNAVAIL: ::c_int = 74; -pub const EPROGMISMATCH: ::c_int = 75; -pub const EPROCUNAVAIL: ::c_int = 76; -pub const ENOLCK: ::c_int = 77; -pub const ENOSYS: ::c_int = 78; -pub const EFTYPE: ::c_int = 79; -pub const EAUTH: ::c_int = 80; -pub const ENEEDAUTH: ::c_int = 81; -pub const EIDRM: ::c_int = 82; -pub const ENOMSG: ::c_int = 83; -pub const EOVERFLOW: ::c_int = 84; -pub const ECANCELED: ::c_int = 85; -pub const EILSEQ: ::c_int = 86; -pub const ENOATTR: ::c_int = 87; -pub const EDOOFUS: ::c_int = 88; -pub const EBADMSG: ::c_int = 89; -pub const EMULTIHOP: ::c_int = 90; -pub const ENOLINK: ::c_int = 91; -pub const EPROTO: ::c_int = 92; - -pub const POLLSTANDARD: ::c_short = ::POLLIN - | ::POLLPRI - | ::POLLOUT - | ::POLLRDNORM - | ::POLLRDBAND - | ::POLLWRBAND - | ::POLLERR - | ::POLLHUP - | ::POLLNVAL; - -pub const AI_PASSIVE: ::c_int = 0x00000001; -pub const AI_CANONNAME: ::c_int = 0x00000002; -pub const AI_NUMERICHOST: ::c_int = 0x00000004; -pub const AI_NUMERICSERV: ::c_int = 0x00000008; -pub const AI_ALL: ::c_int = 0x00000100; -pub const AI_ADDRCONFIG: ::c_int = 0x00000400; -pub const AI_V4MAPPED: ::c_int = 0x00000800; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 14; - -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; - -pub const SIGTRAP: ::c_int = 5; - -pub const GLOB_APPEND: ::c_int = 0x0001; -pub const GLOB_DOOFFS: ::c_int = 0x0002; -pub const GLOB_ERR: ::c_int = 0x0004; -pub const GLOB_MARK: ::c_int = 0x0008; -pub const GLOB_NOCHECK: ::c_int = 0x0010; -pub const GLOB_NOSORT: ::c_int = 0x0020; -pub const GLOB_NOESCAPE: ::c_int = 0x2000; - -pub const GLOB_NOSPACE: ::c_int = -1; -pub const GLOB_ABORTED: ::c_int = -2; -pub const GLOB_NOMATCH: ::c_int = -3; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_MADV_WILLNEED: ::c_int = 3; -pub const POSIX_MADV_DONTNEED: ::c_int = 4; - -pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; - -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_RSS: ::c_int = 5; -pub const RLIMIT_MEMLOCK: ::c_int = 6; -pub const RLIMIT_NPROC: ::c_int = 7; -pub const RLIMIT_NOFILE: ::c_int = 8; -pub const RLIMIT_SBSIZE: ::c_int = 9; -pub const RLIMIT_VMEM: ::c_int = 10; -pub const RLIMIT_AS: ::c_int = RLIMIT_VMEM; -pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff; - -pub const RUSAGE_SELF: ::c_int = 0; -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const CLOCK_REALTIME: ::clockid_t = 0; -pub const CLOCK_VIRTUAL: ::clockid_t = 1; -pub const CLOCK_PROF: ::clockid_t = 2; -pub const CLOCK_MONOTONIC: ::clockid_t = 4; -pub const CLOCK_UPTIME: ::clockid_t = 5; -pub const CLOCK_BOOTTIME: ::clockid_t = CLOCK_UPTIME; -pub const CLOCK_UPTIME_PRECISE: ::clockid_t = 7; -pub const CLOCK_UPTIME_FAST: ::clockid_t = 8; -pub const CLOCK_REALTIME_PRECISE: ::clockid_t = 9; -pub const CLOCK_REALTIME_FAST: ::clockid_t = 10; -pub const CLOCK_REALTIME_COARSE: ::clockid_t = CLOCK_REALTIME_FAST; -pub const CLOCK_MONOTONIC_PRECISE: ::clockid_t = 11; -pub const CLOCK_MONOTONIC_FAST: ::clockid_t = 12; -pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = CLOCK_MONOTONIC_FAST; -pub const CLOCK_SECOND: ::clockid_t = 13; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 14; -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 15; - -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; -pub const MADV_FREE: ::c_int = 5; -pub const MADV_NOSYNC: ::c_int = 6; -pub const MADV_AUTOSYNC: ::c_int = 7; -pub const MADV_NOCORE: ::c_int = 8; -pub const MADV_CORE: ::c_int = 9; - -pub const MINCORE_INCORE: ::c_int = 0x1; -pub const MINCORE_REFERENCED: ::c_int = 0x2; -pub const MINCORE_MODIFIED: ::c_int = 0x4; -pub const MINCORE_REFERENCED_OTHER: ::c_int = 0x8; -pub const MINCORE_MODIFIED_OTHER: ::c_int = 0x10; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_UNIX: ::c_int = AF_LOCAL; -pub const AF_INET: ::c_int = 2; -pub const AF_IMPLINK: ::c_int = 3; -pub const AF_PUP: ::c_int = 4; -pub const AF_CHAOS: ::c_int = 5; -pub const AF_NETBIOS: ::c_int = 6; -pub const AF_ISO: ::c_int = 7; -pub const AF_OSI: ::c_int = AF_ISO; -pub const AF_ECMA: ::c_int = 8; -pub const AF_DATAKIT: ::c_int = 9; -pub const AF_CCITT: ::c_int = 10; -pub const AF_SNA: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_DLI: ::c_int = 13; -pub const AF_LAT: ::c_int = 14; -pub const AF_HYLINK: ::c_int = 15; -pub const AF_APPLETALK: ::c_int = 16; -pub const AF_ROUTE: ::c_int = 17; -pub const AF_LINK: ::c_int = 18; -pub const pseudo_AF_XTP: ::c_int = 19; -pub const AF_COIP: ::c_int = 20; -pub const AF_CNT: ::c_int = 21; -pub const pseudo_AF_RTIP: ::c_int = 22; -pub const AF_IPX: ::c_int = 23; -pub const AF_SIP: ::c_int = 24; -pub const pseudo_AF_PIP: ::c_int = 25; -pub const AF_ISDN: ::c_int = 26; -pub const AF_E164: ::c_int = AF_ISDN; -pub const pseudo_AF_KEY: ::c_int = 27; -pub const AF_INET6: ::c_int = 28; -pub const AF_NATM: ::c_int = 29; -pub const AF_ATM: ::c_int = 30; -pub const pseudo_AF_HDRCMPLT: ::c_int = 31; -pub const AF_NETGRAPH: ::c_int = 32; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_UNIX: ::c_int = PF_LOCAL; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -pub const PF_PUP: ::c_int = AF_PUP; -pub const PF_CHAOS: ::c_int = AF_CHAOS; -pub const PF_NETBIOS: ::c_int = AF_NETBIOS; -pub const PF_ISO: ::c_int = AF_ISO; -pub const PF_OSI: ::c_int = AF_ISO; -pub const PF_ECMA: ::c_int = AF_ECMA; -pub const PF_DATAKIT: ::c_int = AF_DATAKIT; -pub const PF_CCITT: ::c_int = AF_CCITT; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_DLI: ::c_int = AF_DLI; -pub const PF_LAT: ::c_int = AF_LAT; -pub const PF_HYLINK: ::c_int = AF_HYLINK; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_LINK: ::c_int = AF_LINK; -pub const PF_XTP: ::c_int = pseudo_AF_XTP; -pub const PF_COIP: ::c_int = AF_COIP; -pub const PF_CNT: ::c_int = AF_CNT; -pub const PF_SIP: ::c_int = AF_SIP; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; -pub const PF_PIP: ::c_int = pseudo_AF_PIP; -pub const PF_ISDN: ::c_int = AF_ISDN; -pub const PF_KEY: ::c_int = pseudo_AF_KEY; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_NATM: ::c_int = AF_NATM; -pub const PF_ATM: ::c_int = AF_ATM; -pub const PF_NETGRAPH: ::c_int = AF_NETGRAPH; - -pub const PIOD_READ_D: ::c_int = 1; -pub const PIOD_WRITE_D: ::c_int = 2; -pub const PIOD_READ_I: ::c_int = 3; -pub const PIOD_WRITE_I: ::c_int = 4; - -pub const PT_TRACE_ME: ::c_int = 0; -pub const PT_READ_I: ::c_int = 1; -pub const PT_READ_D: ::c_int = 2; -pub const PT_WRITE_I: ::c_int = 4; -pub const PT_WRITE_D: ::c_int = 5; -pub const PT_CONTINUE: ::c_int = 7; -pub const PT_KILL: ::c_int = 8; -pub const PT_STEP: ::c_int = 9; -pub const PT_ATTACH: ::c_int = 10; -pub const PT_DETACH: ::c_int = 11; -pub const PT_IO: ::c_int = 12; - -pub const SOMAXCONN: ::c_int = 128; - -pub const MSG_OOB: ::c_int = 0x00000001; -pub const MSG_PEEK: ::c_int = 0x00000002; -pub const MSG_DONTROUTE: ::c_int = 0x00000004; -pub const MSG_EOR: ::c_int = 0x00000008; -pub const MSG_TRUNC: ::c_int = 0x00000010; -pub const MSG_CTRUNC: ::c_int = 0x00000020; -pub const MSG_WAITALL: ::c_int = 0x00000040; -pub const MSG_DONTWAIT: ::c_int = 0x00000080; -pub const MSG_EOF: ::c_int = 0x00000100; - -pub const SCM_TIMESTAMP: ::c_int = 0x02; -pub const SCM_CREDS: ::c_int = 0x03; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_CLOEXEC: ::c_int = 0x10000000; -pub const SOCK_NONBLOCK: ::c_int = 0x20000000; -pub const SOCK_MAXADDRLEN: ::c_int = 255; -pub const IP_TTL: ::c_int = 4; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; -pub const IP_ADD_MEMBERSHIP: ::c_int = 12; -pub const IP_DROP_MEMBERSHIP: ::c_int = 13; -pub const IP_RECVIF: ::c_int = 20; -pub const IPV6_JOIN_GROUP: ::c_int = 12; -pub const IPV6_LEAVE_GROUP: ::c_int = 13; -pub const IPV6_CHECKSUM: ::c_int = 26; -pub const IPV6_RECVPKTINFO: ::c_int = 36; -pub const IPV6_PKTINFO: ::c_int = 46; -pub const IPV6_HOPLIMIT: ::c_int = 47; -pub const IPV6_RECVTCLASS: ::c_int = 57; -pub const IPV6_TCLASS: ::c_int = 61; -pub const IPV6_DONTFRAG: ::c_int = 62; -pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 70; -pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71; -pub const IP_BLOCK_SOURCE: ::c_int = 72; -pub const IP_UNBLOCK_SOURCE: ::c_int = 73; - -pub const TCP_NOPUSH: ::c_int = 4; -pub const TCP_NOOPT: ::c_int = 8; -pub const TCP_KEEPIDLE: ::c_int = 256; -pub const TCP_KEEPINTVL: ::c_int = 512; -pub const TCP_KEEPCNT: ::c_int = 1024; - -pub const SOL_SOCKET: ::c_int = 0xffff; -pub const SO_DEBUG: ::c_int = 0x01; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_TIMESTAMP: ::c_int = 0x0400; -pub const SO_NOSIGPIPE: ::c_int = 0x0800; -pub const SO_ACCEPTFILTER: ::c_int = 0x1000; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; - -pub const LOCAL_PEERCRED: ::c_int = 1; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; - -pub const MAP_COPY: ::c_int = 0x0002; -#[doc(hidden)] -#[deprecated( - since = "0.2.54", - note = "Removed in FreeBSD 11, unused in DragonFlyBSD" -)] -pub const MAP_RENAME: ::c_int = 0x0020; -#[doc(hidden)] -#[deprecated( - since = "0.2.54", - note = "Removed in FreeBSD 11, unused in DragonFlyBSD" -)] -pub const MAP_NORESERVE: ::c_int = 0x0040; -pub const MAP_HASSEMAPHORE: ::c_int = 0x0200; -pub const MAP_STACK: ::c_int = 0x0400; -pub const MAP_NOSYNC: ::c_int = 0x0800; -pub const MAP_NOCORE: ::c_int = 0x020000; - -pub const IPPROTO_RAW: ::c_int = 255; - -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; -pub const _PC_NO_TRUNC: ::c_int = 8; -pub const _PC_VDISABLE: ::c_int = 9; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 10; -pub const _PC_FILESIZEBITS: ::c_int = 12; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_XFER_ALIGN: ::c_int = 17; -pub const _PC_SYMLINK_MAX: ::c_int = 18; -pub const _PC_MIN_HOLE_SIZE: ::c_int = 21; -pub const _PC_ASYNC_IO: ::c_int = 53; -pub const _PC_PRIO_IO: ::c_int = 54; -pub const _PC_SYNC_IO: ::c_int = 55; -pub const _PC_ACL_EXTENDED: ::c_int = 59; -pub const _PC_ACL_PATH_MAX: ::c_int = 60; -pub const _PC_CAP_PRESENT: ::c_int = 61; -pub const _PC_INF_PRESENT: ::c_int = 62; -pub const _PC_MAC_PRESENT: ::c_int = 63; - -pub const _SC_ARG_MAX: ::c_int = 1; -pub const _SC_CHILD_MAX: ::c_int = 2; -pub const _SC_CLK_TCK: ::c_int = 3; -pub const _SC_NGROUPS_MAX: ::c_int = 4; -pub const _SC_OPEN_MAX: ::c_int = 5; -pub const _SC_JOB_CONTROL: ::c_int = 6; -pub const _SC_SAVED_IDS: ::c_int = 7; -pub const _SC_VERSION: ::c_int = 8; -pub const _SC_BC_BASE_MAX: ::c_int = 9; -pub const _SC_BC_DIM_MAX: ::c_int = 10; -pub const _SC_BC_SCALE_MAX: ::c_int = 11; -pub const _SC_BC_STRING_MAX: ::c_int = 12; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 13; -pub const _SC_EXPR_NEST_MAX: ::c_int = 14; -pub const _SC_LINE_MAX: ::c_int = 15; -pub const _SC_RE_DUP_MAX: ::c_int = 16; -pub const _SC_2_VERSION: ::c_int = 17; -pub const _SC_2_C_BIND: ::c_int = 18; -pub const _SC_2_C_DEV: ::c_int = 19; -pub const _SC_2_CHAR_TERM: ::c_int = 20; -pub const _SC_2_FORT_DEV: ::c_int = 21; -pub const _SC_2_FORT_RUN: ::c_int = 22; -pub const _SC_2_LOCALEDEF: ::c_int = 23; -pub const _SC_2_SW_DEV: ::c_int = 24; -pub const _SC_2_UPE: ::c_int = 25; -pub const _SC_STREAM_MAX: ::c_int = 26; -pub const _SC_TZNAME_MAX: ::c_int = 27; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 28; -pub const _SC_MAPPED_FILES: ::c_int = 29; -pub const _SC_MEMLOCK: ::c_int = 30; -pub const _SC_MEMLOCK_RANGE: ::c_int = 31; -pub const _SC_MEMORY_PROTECTION: ::c_int = 32; -pub const _SC_MESSAGE_PASSING: ::c_int = 33; -pub const _SC_PRIORITIZED_IO: ::c_int = 34; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 35; -pub const _SC_REALTIME_SIGNALS: ::c_int = 36; -pub const _SC_SEMAPHORES: ::c_int = 37; -pub const _SC_FSYNC: ::c_int = 38; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 39; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 40; -pub const _SC_TIMERS: ::c_int = 41; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 42; -pub const _SC_AIO_MAX: ::c_int = 43; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 44; -pub const _SC_DELAYTIMER_MAX: ::c_int = 45; -pub const _SC_MQ_OPEN_MAX: ::c_int = 46; -pub const _SC_PAGESIZE: ::c_int = 47; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_RTSIG_MAX: ::c_int = 48; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 49; -pub const _SC_SEM_VALUE_MAX: ::c_int = 50; -pub const _SC_SIGQUEUE_MAX: ::c_int = 51; -pub const _SC_TIMER_MAX: ::c_int = 52; -pub const _SC_IOV_MAX: ::c_int = 56; -pub const _SC_NPROCESSORS_CONF: ::c_int = 57; -pub const _SC_2_PBS: ::c_int = 59; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 60; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 61; -pub const _SC_2_PBS_LOCATE: ::c_int = 62; -pub const _SC_2_PBS_MESSAGE: ::c_int = 63; -pub const _SC_2_PBS_TRACK: ::c_int = 64; -pub const _SC_ADVISORY_INFO: ::c_int = 65; -pub const _SC_BARRIERS: ::c_int = 66; -pub const _SC_CLOCK_SELECTION: ::c_int = 67; -pub const _SC_CPUTIME: ::c_int = 68; -pub const _SC_FILE_LOCKING: ::c_int = 69; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 58; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 70; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 71; -pub const _SC_HOST_NAME_MAX: ::c_int = 72; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 73; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 74; -pub const _SC_MQ_PRIO_MAX: ::c_int = 75; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 76; -pub const _SC_REGEXP: ::c_int = 77; -pub const _SC_SHELL: ::c_int = 78; -pub const _SC_SPAWN: ::c_int = 79; -pub const _SC_SPIN_LOCKS: ::c_int = 80; -pub const _SC_SPORADIC_SERVER: ::c_int = 81; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 82; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 83; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 85; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 86; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 87; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 88; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 89; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 90; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 91; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 92; -pub const _SC_THREAD_STACK_MIN: ::c_int = 93; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 94; -pub const _SC_TIMEOUTS: ::c_int = 95; -pub const _SC_THREADS: ::c_int = 96; -pub const _SC_TRACE: ::c_int = 97; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 98; -pub const _SC_TRACE_INHERIT: ::c_int = 99; -pub const _SC_TRACE_LOG: ::c_int = 100; -pub const _SC_TTY_NAME_MAX: ::c_int = 101; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 102; -pub const _SC_V6_ILP32_OFF32: ::c_int = 103; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 104; -pub const _SC_V6_LP64_OFF64: ::c_int = 105; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 106; -pub const _SC_ATEXIT_MAX: ::c_int = 107; -pub const _SC_XOPEN_CRYPT: ::c_int = 108; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 109; -pub const _SC_XOPEN_LEGACY: ::c_int = 110; -pub const _SC_XOPEN_REALTIME: ::c_int = 111; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 112; -pub const _SC_XOPEN_SHM: ::c_int = 113; -pub const _SC_XOPEN_STREAMS: ::c_int = 114; -pub const _SC_XOPEN_UNIX: ::c_int = 115; -pub const _SC_XOPEN_VERSION: ::c_int = 116; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 117; -pub const _SC_IPV6: ::c_int = 118; -pub const _SC_RAW_SOCKETS: ::c_int = 119; -pub const _SC_SYMLOOP_MAX: ::c_int = 120; -pub const _SC_PHYS_PAGES: ::c_int = 121; - -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_ERRORCHECK; - -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_OTHER: ::c_int = 2; -pub const SCHED_RR: ::c_int = 3; - -pub const FD_SETSIZE: usize = 1024; - -pub const ST_NOSUID: ::c_ulong = 2; - -pub const NI_MAXHOST: ::size_t = 1025; - -pub const XUCRED_VERSION: ::c_uint = 0; - -pub const RTLD_LOCAL: ::c_int = 0; -pub const RTLD_NODELETE: ::c_int = 0x1000; -pub const RTLD_NOLOAD: ::c_int = 0x2000; -pub const RTLD_GLOBAL: ::c_int = 0x100; - -pub const LOG_NTP: ::c_int = 12 << 3; -pub const LOG_SECURITY: ::c_int = 13 << 3; -pub const LOG_CONSOLE: ::c_int = 14 << 3; -pub const LOG_NFACILITIES: ::c_int = 24; - -pub const TIOCEXCL: ::c_ulong = 0x2000740d; -pub const TIOCNXCL: ::c_ulong = 0x2000740e; -pub const TIOCFLUSH: ::c_ulong = 0x80047410; -pub const TIOCGETA: ::c_ulong = 0x402c7413; -pub const TIOCSETA: ::c_ulong = 0x802c7414; -pub const TIOCSETAW: ::c_ulong = 0x802c7415; -pub const TIOCSETAF: ::c_ulong = 0x802c7416; -pub const TIOCGETD: ::c_ulong = 0x4004741a; -pub const TIOCSETD: ::c_ulong = 0x8004741b; -pub const TIOCGDRAINWAIT: ::c_ulong = 0x40047456; -pub const TIOCSDRAINWAIT: ::c_ulong = 0x80047457; -pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; -pub const TIOCMGDTRWAIT: ::c_ulong = 0x4004745a; -pub const TIOCMSDTRWAIT: ::c_ulong = 0x8004745b; -pub const TIOCDRAIN: ::c_ulong = 0x2000745e; -pub const TIOCEXT: ::c_ulong = 0x80047460; -pub const TIOCSCTTY: ::c_ulong = 0x20007461; -pub const TIOCCONS: ::c_ulong = 0x80047462; -pub const TIOCGSID: ::c_ulong = 0x40047463; -pub const TIOCSTAT: ::c_ulong = 0x20007465; -pub const TIOCUCNTL: ::c_ulong = 0x80047466; -pub const TIOCSWINSZ: ::c_ulong = 0x80087467; -pub const TIOCGWINSZ: ::c_ulong = 0x40087468; -pub const TIOCMGET: ::c_ulong = 0x4004746a; -pub const TIOCM_LE: ::c_int = 0x1; -pub const TIOCM_DTR: ::c_int = 0x2; -pub const TIOCM_RTS: ::c_int = 0x4; -pub const TIOCM_ST: ::c_int = 0x8; -pub const TIOCM_SR: ::c_int = 0x10; -pub const TIOCM_CTS: ::c_int = 0x20; -pub const TIOCM_RI: ::c_int = 0x80; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const TIOCM_CD: ::c_int = 0x40; -pub const TIOCM_CAR: ::c_int = 0x40; -pub const TIOCM_RNG: ::c_int = 0x80; -pub const TIOCMBIC: ::c_ulong = 0x8004746b; -pub const TIOCMBIS: ::c_ulong = 0x8004746c; -pub const TIOCMSET: ::c_ulong = 0x8004746d; -pub const TIOCSTART: ::c_ulong = 0x2000746e; -pub const TIOCSTOP: ::c_ulong = 0x2000746f; -pub const TIOCPKT: ::c_ulong = 0x80047470; -pub const TIOCPKT_DATA: ::c_int = 0x0; -pub const TIOCPKT_FLUSHREAD: ::c_int = 0x1; -pub const TIOCPKT_FLUSHWRITE: ::c_int = 0x2; -pub const TIOCPKT_STOP: ::c_int = 0x4; -pub const TIOCPKT_START: ::c_int = 0x8; -pub const TIOCPKT_NOSTOP: ::c_int = 0x10; -pub const TIOCPKT_DOSTOP: ::c_int = 0x20; -pub const TIOCPKT_IOCTL: ::c_int = 0x40; -pub const TIOCNOTTY: ::c_ulong = 0x20007471; -pub const TIOCSTI: ::c_ulong = 0x80017472; -pub const TIOCOUTQ: ::c_ulong = 0x40047473; -pub const TIOCSPGRP: ::c_ulong = 0x80047476; -pub const TIOCGPGRP: ::c_ulong = 0x40047477; -pub const TIOCCDTR: ::c_ulong = 0x20007478; -pub const TIOCSDTR: ::c_ulong = 0x20007479; -pub const TTYDISC: ::c_int = 0x0; -pub const SLIPDISC: ::c_int = 0x4; -pub const PPPDISC: ::c_int = 0x5; -pub const NETGRAPHDISC: ::c_int = 0x6; - -pub const BIOCGRSIG: ::c_ulong = 0x40044272; -pub const BIOCSRSIG: ::c_ulong = 0x80044273; -pub const BIOCSDLT: ::c_ulong = 0x80044278; -pub const BIOCGSEESENT: ::c_ulong = 0x40044276; -pub const BIOCSSEESENT: ::c_ulong = 0x80044277; -pub const BIOCSETF: ::c_ulong = 0x80104267; -pub const BIOCGDLTLIST: ::c_ulong = 0xc0104279; -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; - -pub const FIODTYPE: ::c_ulong = 0x4004667a; -pub const FIOGETLBA: ::c_ulong = 0x40046679; - -pub const B0: speed_t = 0; -pub const B50: speed_t = 50; -pub const B75: speed_t = 75; -pub const B110: speed_t = 110; -pub const B134: speed_t = 134; -pub const B150: speed_t = 150; -pub const B200: speed_t = 200; -pub const B300: speed_t = 300; -pub const B600: speed_t = 600; -pub const B1200: speed_t = 1200; -pub const B1800: speed_t = 1800; -pub const B2400: speed_t = 2400; -pub const B4800: speed_t = 4800; -pub const B9600: speed_t = 9600; -pub const B19200: speed_t = 19200; -pub const B38400: speed_t = 38400; -pub const B7200: speed_t = 7200; -pub const B14400: speed_t = 14400; -pub const B28800: speed_t = 28800; -pub const B57600: speed_t = 57600; -pub const B76800: speed_t = 76800; -pub const B115200: speed_t = 115200; -pub const B230400: speed_t = 230400; -pub const EXTA: speed_t = 19200; -pub const EXTB: speed_t = 38400; - -pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; - -pub const CRTSCTS: ::tcflag_t = 0x00030000; -pub const CCTS_OFLOW: ::tcflag_t = 0x00010000; -pub const CRTS_IFLOW: ::tcflag_t = 0x00020000; -pub const CDTR_IFLOW: ::tcflag_t = 0x00040000; -pub const CDSR_OFLOW: ::tcflag_t = 0x00080000; -pub const CCAR_OFLOW: ::tcflag_t = 0x00100000; -pub const VERASE2: usize = 7; -pub const OCRNL: ::tcflag_t = 0x10; -pub const ONOCR: ::tcflag_t = 0x20; -pub const ONLRET: ::tcflag_t = 0x40; - -pub const CMGROUP_MAX: usize = 16; - -pub const EUI64_LEN: usize = 8; - -// https://github.com/freebsd/freebsd/blob/HEAD/sys/net/bpf.h -pub const BPF_ALIGNMENT: usize = SIZEOF_LONG; - -// Values for rtprio struct (prio field) and syscall (function argument) -pub const RTP_PRIO_MIN: ::c_ushort = 0; -pub const RTP_PRIO_MAX: ::c_ushort = 31; -pub const RTP_LOOKUP: ::c_int = 0; -pub const RTP_SET: ::c_int = 1; - -// Flags for chflags(2) -pub const UF_SETTABLE: ::c_ulong = 0x0000ffff; -pub const UF_NODUMP: ::c_ulong = 0x00000001; -pub const UF_IMMUTABLE: ::c_ulong = 0x00000002; -pub const UF_APPEND: ::c_ulong = 0x00000004; -pub const UF_OPAQUE: ::c_ulong = 0x00000008; -pub const UF_NOUNLINK: ::c_ulong = 0x00000010; -pub const SF_SETTABLE: ::c_ulong = 0xffff0000; -pub const SF_ARCHIVED: ::c_ulong = 0x00010000; -pub const SF_IMMUTABLE: ::c_ulong = 0x00020000; -pub const SF_APPEND: ::c_ulong = 0x00040000; -pub const SF_NOUNLINK: ::c_ulong = 0x00100000; - -pub const TIMER_ABSTIME: ::c_int = 1; - -// -pub const NTP_API: ::c_int = 4; -pub const MAXPHASE: ::c_long = 500000000; -pub const MAXFREQ: ::c_long = 500000; -pub const MINSEC: ::c_int = 256; -pub const MAXSEC: ::c_int = 2048; -pub const NANOSECOND: ::c_long = 1000000000; -pub const SCALE_PPM: ::c_int = 65; -pub const MAXTC: ::c_int = 10; -pub const MOD_OFFSET: ::c_uint = 0x0001; -pub const MOD_FREQUENCY: ::c_uint = 0x0002; -pub const MOD_MAXERROR: ::c_uint = 0x0004; -pub const MOD_ESTERROR: ::c_uint = 0x0008; -pub const MOD_STATUS: ::c_uint = 0x0010; -pub const MOD_TIMECONST: ::c_uint = 0x0020; -pub const MOD_PPSMAX: ::c_uint = 0x0040; -pub const MOD_TAI: ::c_uint = 0x0080; -pub const MOD_MICRO: ::c_uint = 0x1000; -pub const MOD_NANO: ::c_uint = 0x2000; -pub const MOD_CLKB: ::c_uint = 0x4000; -pub const MOD_CLKA: ::c_uint = 0x8000; -pub const STA_PLL: ::c_int = 0x0001; -pub const STA_PPSFREQ: ::c_int = 0x0002; -pub const STA_PPSTIME: ::c_int = 0x0004; -pub const STA_FLL: ::c_int = 0x0008; -pub const STA_INS: ::c_int = 0x0010; -pub const STA_DEL: ::c_int = 0x0020; -pub const STA_UNSYNC: ::c_int = 0x0040; -pub const STA_FREQHOLD: ::c_int = 0x0080; -pub const STA_PPSSIGNAL: ::c_int = 0x0100; -pub const STA_PPSJITTER: ::c_int = 0x0200; -pub const STA_PPSWANDER: ::c_int = 0x0400; -pub const STA_PPSERROR: ::c_int = 0x0800; -pub const STA_CLOCKERR: ::c_int = 0x1000; -pub const STA_NANO: ::c_int = 0x2000; -pub const STA_MODE: ::c_int = 0x4000; -pub const STA_CLK: ::c_int = 0x8000; -pub const STA_RONLY: ::c_int = STA_PPSSIGNAL - | STA_PPSJITTER - | STA_PPSWANDER - | STA_PPSERROR - | STA_CLOCKERR - | STA_NANO - | STA_MODE - | STA_CLK; -pub const TIME_OK: ::c_int = 0; -pub const TIME_INS: ::c_int = 1; -pub const TIME_DEL: ::c_int = 2; -pub const TIME_OOP: ::c_int = 3; -pub const TIME_WAIT: ::c_int = 4; -pub const TIME_ERROR: ::c_int = 5; - -pub const REG_ENOSYS: ::c_int = -1; -pub const REG_ILLSEQ: ::c_int = 17; - -pub const IPC_PRIVATE: ::key_t = 0; -pub const IPC_CREAT: ::c_int = 0o1000; -pub const IPC_EXCL: ::c_int = 0o2000; -pub const IPC_NOWAIT: ::c_int = 0o4000; -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; -pub const IPC_R: ::c_int = 0o400; -pub const IPC_W: ::c_int = 0o200; -pub const IPC_M: ::c_int = 0o10000; - -pub const SHM_RDONLY: ::c_int = 0o10000; -pub const SHM_RND: ::c_int = 0o20000; -pub const SHM_R: ::c_int = 0o400; -pub const SHM_W: ::c_int = 0o200; - -pub const KENV_GET: ::c_int = 0; -pub const KENV_SET: ::c_int = 1; -pub const KENV_UNSET: ::c_int = 2; -pub const KENV_DUMP: ::c_int = 3; -pub const KENV_MNAMELEN: ::c_int = 128; -pub const KENV_MVALLEN: ::c_int = 128; - -pub const RB_ASKNAME: ::c_int = 0x001; -pub const RB_SINGLE: ::c_int = 0x002; -pub const RB_NOSYNC: ::c_int = 0x004; -pub const RB_HALT: ::c_int = 0x008; -pub const RB_INITNAME: ::c_int = 0x010; -pub const RB_DFLTROOT: ::c_int = 0x020; -pub const RB_KDB: ::c_int = 0x040; -pub const RB_RDONLY: ::c_int = 0x080; -pub const RB_DUMP: ::c_int = 0x100; -pub const RB_MINIROOT: ::c_int = 0x200; -pub const RB_VERBOSE: ::c_int = 0x800; -pub const RB_SERIAL: ::c_int = 0x1000; -pub const RB_CDROM: ::c_int = 0x2000; -pub const RB_POWEROFF: ::c_int = 0x4000; -pub const RB_GDB: ::c_int = 0x8000; -pub const RB_MUTE: ::c_int = 0x10000; -pub const RB_SELFTEST: ::c_int = 0x20000; - -safe_f! { - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { - status == 0x13 - } - - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { - status >> 8 - } - - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { - (status & 0o177) == 0o177 - } -} - -extern "C" { - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; - pub fn accept4( - s: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn chflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; - pub fn chflagsat( - fd: ::c_int, - path: *const ::c_char, - flags: ::c_ulong, - atflag: ::c_int, - ) -> ::c_int; - - pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; - - pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; - - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn endutxent(); - pub fn fchflags(fd: ::c_int, flags: ::c_ulong) -> ::c_int; - pub fn fexecve( - fd: ::c_int, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int; - pub fn getgrent_r( - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn getpwent_r( - pwd: *mut ::passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::passwd, - ) -> ::c_int; - pub fn getgrouplist( - name: *const ::c_char, - basegid: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::size_t, - serv: *mut ::c_char, - servlen: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn getpriority(which: ::c_int, who: ::c_int) -> ::c_int; - pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; - pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; - pub fn getutxent() -> *mut utmpx; - pub fn getutxid(ut: *const utmpx) -> *mut utmpx; - pub fn getutxline(ut: *const utmpx) -> *mut utmpx; - pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; - #[cfg_attr( - all(target_os = "freebsd", any(freebsd11, freebsd10)), - link_name = "kevent@FBSD_1.0" - )] - pub fn kevent( - kq: ::c_int, - changelist: *const ::kevent, - nchanges: ::c_int, - eventlist: *mut ::kevent, - nevents: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn lchflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - #[cfg_attr( - all(target_os = "freebsd", any(freebsd11, freebsd10)), - link_name = "mknodat@FBSD_1.1" - )] - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: dev_t, - ) -> ::c_int; - pub fn malloc_usable_size(ptr: *const ::c_void) -> ::size_t; - pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; - pub fn ppoll( - fds: *mut ::pollfd, - nfds: ::nfds_t, - timeout: *const ::timespec, - sigmask: *const sigset_t, - ) -> ::c_int; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn pthread_attr_get_np(tid: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_getguardsize( - attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t, - ) -> ::c_int; - pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; - pub fn pthread_condattr_getclock( - attr: *const pthread_condattr_t, - clock_id: *mut clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_getpshared( - attr: *const pthread_condattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_condattr_setclock( - attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_main_np() -> ::c_int; - pub fn pthread_mutex_timedlock( - lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_mutexattr_getpshared( - attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setpshared( - attr: *mut pthread_mutexattr_t, - pshared: ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_getpshared( - attr: *const pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; - pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_getpshared( - attr: *const ::pthread_barrierattr_t, - shared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_barrierattr_setpshared( - attr: *mut ::pthread_barrierattr_t, - shared: ::c_int, - ) -> ::c_int; - pub fn pthread_barrier_init( - barrier: *mut pthread_barrier_t, - attr: *const ::pthread_barrierattr_t, - count: ::c_uint, - ) -> ::c_int; - pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_get_name_np(tid: ::pthread_t, name: *mut ::c_char, len: ::size_t); - pub fn pthread_set_name_np(tid: ::pthread_t, name: *const ::c_char); - pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const sched_param, - ) -> ::c_int; - pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut sched_param, - ) -> ::c_int; - pub fn ptrace(request: ::c_int, pid: ::pid_t, addr: *mut ::c_char, data: ::c_int) -> ::c_int; - pub fn utrace(addr: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn pututxline(ut: *const utmpx) -> *mut utmpx; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - pub fn querylocale(mask: ::c_int, loc: ::locale_t) -> *const ::c_char; - pub fn rtprio(function: ::c_int, pid: ::pid_t, rtp: *mut rtprio) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, t: *mut ::timespec) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut sched_param) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const sched_param) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sendfile( - fd: ::c_int, - s: ::c_int, - offset: ::off_t, - nbytes: ::size_t, - hdtr: *mut ::sf_hdtr, - sbytes: *mut ::off_t, - flags: ::c_int, - ) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::c_int, prio: ::c_int) -> ::c_int; - pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; - pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; - pub fn setutxent(); - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; - pub fn sigtimedwait( - set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; - pub fn sysctl( - name: *const ::c_int, - namelen: ::c_uint, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *const ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn sysctlbyname( - name: *const ::c_char, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *const ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn sysctlnametomib( - name: *const ::c_char, - mibp: *mut ::c_int, - sizep: *mut ::size_t, - ) -> ::c_int; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - - pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; - pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; - - // #include - pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut dl_phdr_info, - size: usize, - data: *mut ::c_void, - ) -> ::c_int, - >, - data: *mut ::c_void, - ) -> ::c_int; - - pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; - pub fn iconv( - cd: iconv_t, - inbuf: *mut *mut ::c_char, - inbytesleft: *mut ::size_t, - outbuf: *mut *mut ::c_char, - outbytesleft: *mut ::size_t, - ) -> ::size_t; - pub fn iconv_close(cd: iconv_t) -> ::c_int; - - // Added in `FreeBSD` 11.0 - // Added in `DragonFly BSD` 5.4 - pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t); - // ISO/IEC 9899:2011 ("ISO C11") K.3.7.4.1 - pub fn memset_s(s: *mut ::c_void, smax: ::size_t, c: ::c_int, n: ::size_t) -> ::c_int; - pub fn gethostid() -> ::c_long; - pub fn sethostid(hostid: ::c_long); - - pub fn eui64_aton(a: *const ::c_char, e: *mut eui64) -> ::c_int; - pub fn eui64_ntoa(id: *const eui64, a: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn eui64_ntohost(hostname: *mut ::c_char, len: ::size_t, id: *const eui64) -> ::c_int; - pub fn eui64_hostton(hostname: *const ::c_char, id: *mut eui64) -> ::c_int; - - pub fn eaccess(path: *const ::c_char, mode: ::c_int) -> ::c_int; - - pub fn kenv( - action: ::c_int, - name: *const ::c_char, - value: *mut ::c_char, - len: ::c_int, - ) -> ::c_int; - pub fn reboot(howto: ::c_int) -> ::c_int; -} - -#[link(name = "rt")] -extern "C" { - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) -> ::c_int; - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_receive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - ) -> ::ssize_t; - pub fn mq_send( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - ) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; - pub fn mq_timedreceive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::ssize_t; - pub fn mq_timedsend( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::c_int; -} - -#[link(name = "util")] -extern "C" { - pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize, - ) -> ::c_int; - pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize, - ) -> ::pid_t; - pub fn login_tty(fd: ::c_int) -> ::c_int; - pub fn fparseln( - stream: *mut ::FILE, - len: *mut ::size_t, - lineno: *mut ::size_t, - delim: *const ::c_char, - flags: ::c_int, - ) -> *mut ::c_char; -} - -#[link(name = "execinfo")] -extern "C" { - pub fn backtrace(addrlist: *mut *mut ::c_void, len: ::size_t) -> ::size_t; - pub fn backtrace_symbols(addrlist: *const *mut ::c_void, len: ::size_t) -> *mut *mut ::c_char; - pub fn backtrace_symbols_fd( - addrlist: *const *mut ::c_void, - len: ::size_t, - fd: ::c_int, - ) -> ::c_int; -} - -#[link(name = "kvm")] -extern "C" { - pub fn kvm_open( - execfile: *const ::c_char, - corefile: *const ::c_char, - swapfile: *const ::c_char, - flags: ::c_int, - errstr: *const ::c_char, - ) -> *mut ::kvm_t; - pub fn kvm_close(kd: *mut ::kvm_t) -> ::c_int; - pub fn kvm_getprocs( - kd: *mut ::kvm_t, - op: ::c_int, - arg: ::c_int, - cnt: *mut ::c_int, - ) -> *mut ::kinfo_proc; - pub fn kvm_getloadavg(kd: *mut kvm_t, loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; - pub fn kvm_openfiles( - execfile: *const ::c_char, - corefile: *const ::c_char, - swapfile: *const ::c_char, - flags: ::c_int, - errbuf: *mut ::c_char, - ) -> *mut ::kvm_t; - pub fn kvm_read( - kd: *mut ::kvm_t, - addr: ::c_ulong, - buf: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn kvm_write( - kd: *mut ::kvm_t, - addr: ::c_ulong, - buf: *const ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; -} - -cfg_if! { - if #[cfg(target_os = "freebsd")] { - mod freebsd; - pub use self::freebsd::*; - } else if #[cfg(target_os = "dragonfly")] { - mod dragonfly; - pub use self::dragonfly::*; - } else { - // ... - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/mod.rs deleted file mode 100644 index 6ce041357..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/mod.rs +++ /dev/null @@ -1,917 +0,0 @@ -pub type off_t = i64; -pub type useconds_t = u32; -pub type blkcnt_t = i64; -pub type socklen_t = u32; -pub type sa_family_t = u8; -pub type pthread_t = ::uintptr_t; -pub type nfds_t = ::c_uint; -pub type regoff_t = off_t; - -s! { - pub struct sockaddr { - pub sa_len: u8, - pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_in6 { - pub sin6_len: u8, - pub sin6_family: sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - } - - pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_change: ::time_t, - pub pw_class: *mut ::c_char, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - pub pw_expire: ::time_t, - - #[cfg(not(any(target_os = "macos", - target_os = "ios", - target_os = "tvos", - target_os = "watchos", - target_os = "netbsd", - target_os = "openbsd")))] - pub pw_fields: ::c_int, - } - - pub struct ifaddrs { - pub ifa_next: *mut ifaddrs, - pub ifa_name: *mut ::c_char, - pub ifa_flags: ::c_uint, - pub ifa_addr: *mut ::sockaddr, - pub ifa_netmask: *mut ::sockaddr, - pub ifa_dstaddr: *mut ::sockaddr, - pub ifa_data: *mut ::c_void, - #[cfg(target_os = "netbsd")] - pub ifa_addrflags: ::c_uint - } - - pub struct fd_set { - #[cfg(all(target_pointer_width = "64", - any(target_os = "freebsd", target_os = "dragonfly")))] - fds_bits: [i64; FD_SETSIZE / 64], - #[cfg(not(all(target_pointer_width = "64", - any(target_os = "freebsd", target_os = "dragonfly"))))] - fds_bits: [i32; FD_SETSIZE / 32], - } - - pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - pub tm_gmtoff: ::c_long, - pub tm_zone: *mut ::c_char, - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct fsid_t { - __fsid_val: [i32; 2], - } - - pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, - } - - pub struct regex_t { - __re_magic: ::c_int, - __re_nsub: ::size_t, - __re_endp: *const ::c_char, - __re_g: *mut ::c_void, - } - - pub struct regmatch_t { - pub rm_so: regoff_t, - pub rm_eo: regoff_t, - } - - pub struct option { - pub name: *const ::c_char, - pub has_arg: ::c_int, - pub flag: *mut ::c_int, - pub val: ::c_int, - } -} - -s_no_extra_traits! { - pub struct sockaddr_un { - pub sun_len: u8, - pub sun_family: sa_family_t, - pub sun_path: [c_char; 104] - } - - pub struct utsname { - #[cfg(not(target_os = "dragonfly"))] - pub sysname: [::c_char; 256], - #[cfg(target_os = "dragonfly")] - pub sysname: [::c_char; 32], - #[cfg(not(target_os = "dragonfly"))] - pub nodename: [::c_char; 256], - #[cfg(target_os = "dragonfly")] - pub nodename: [::c_char; 32], - #[cfg(not(target_os = "dragonfly"))] - pub release: [::c_char; 256], - #[cfg(target_os = "dragonfly")] - pub release: [::c_char; 32], - #[cfg(not(target_os = "dragonfly"))] - pub version: [::c_char; 256], - #[cfg(target_os = "dragonfly")] - pub version: [::c_char; 32], - #[cfg(not(target_os = "dragonfly"))] - pub machine: [::c_char; 256], - #[cfg(target_os = "dragonfly")] - pub machine: [::c_char; 32], - } - -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_len == other.sun_len - && self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for sockaddr_un {} - - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_len", &self.sun_len) - .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) - .finish() - } - } - - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_len.hash(state); - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for utsname { - fn eq(&self, other: &utsname) -> bool { - self.sysname - .iter() - .zip(other.sysname.iter()) - .all(|(a,b)| a == b) - && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a,b)| a == b) - && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a,b)| a == b) - && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a,b)| a == b) - && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for utsname {} - - impl ::fmt::Debug for utsname { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) - .finish() - } - } - - impl ::hash::Hash for utsname { - fn hash(&self, state: &mut H) { - self.sysname.hash(state); - self.nodename.hash(state); - self.release.hash(state); - self.version.hash(state); - self.machine.hash(state); - } - } - } -} - -pub const LC_ALL: ::c_int = 0; -pub const LC_COLLATE: ::c_int = 1; -pub const LC_CTYPE: ::c_int = 2; -pub const LC_MONETARY: ::c_int = 3; -pub const LC_NUMERIC: ::c_int = 4; -pub const LC_TIME: ::c_int = 5; -pub const LC_MESSAGES: ::c_int = 6; - -pub const FIOCLEX: ::c_ulong = 0x20006601; -pub const FIONCLEX: ::c_ulong = 0x20006602; -pub const FIONREAD: ::c_ulong = 0x4004667f; -pub const FIONBIO: ::c_ulong = 0x8004667e; -pub const FIOASYNC: ::c_ulong = 0x8004667d; -pub const FIOSETOWN: ::c_ulong = 0x8004667c; -pub const FIOGETOWN: ::c_ulong = 0x4004667b; - -pub const PATH_MAX: ::c_int = 1024; -pub const MAXPATHLEN: ::c_int = PATH_MAX; - -pub const IOV_MAX: ::c_int = 1024; - -pub const SA_ONSTACK: ::c_int = 0x0001; -pub const SA_SIGINFO: ::c_int = 0x0040; -pub const SA_RESTART: ::c_int = 0x0002; -pub const SA_RESETHAND: ::c_int = 0x0004; -pub const SA_NOCLDSTOP: ::c_int = 0x0008; -pub const SA_NODEFER: ::c_int = 0x0010; -pub const SA_NOCLDWAIT: ::c_int = 0x0020; - -pub const SS_ONSTACK: ::c_int = 1; -pub const SS_DISABLE: ::c_int = 4; - -pub const SIGCHLD: ::c_int = 20; -pub const SIGBUS: ::c_int = 10; -pub const SIGUSR1: ::c_int = 30; -pub const SIGUSR2: ::c_int = 31; -pub const SIGCONT: ::c_int = 19; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGURG: ::c_int = 16; -pub const SIGIO: ::c_int = 23; -pub const SIGSYS: ::c_int = 12; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGINFO: ::c_int = 29; - -pub const SIG_SETMASK: ::c_int = 3; -pub const SIG_BLOCK: ::c_int = 0x1; -pub const SIG_UNBLOCK: ::c_int = 0x2; - -pub const IP_TOS: ::c_int = 3; -pub const IP_MULTICAST_IF: ::c_int = 9; -pub const IP_MULTICAST_TTL: ::c_int = 10; -pub const IP_MULTICAST_LOOP: ::c_int = 11; - -pub const IPV6_UNICAST_HOPS: ::c_int = 4; -pub const IPV6_MULTICAST_IF: ::c_int = 9; -pub const IPV6_MULTICAST_HOPS: ::c_int = 10; -pub const IPV6_MULTICAST_LOOP: ::c_int = 11; -pub const IPV6_V6ONLY: ::c_int = 27; - -pub const IPTOS_ECN_NOTECT: u8 = 0x00; -pub const IPTOS_ECN_MASK: u8 = 0x03; -pub const IPTOS_ECN_ECT1: u8 = 0x01; -pub const IPTOS_ECN_ECT0: u8 = 0x02; -pub const IPTOS_ECN_CE: u8 = 0x03; - -pub const ST_RDONLY: ::c_ulong = 1; - -pub const SCM_RIGHTS: ::c_int = 0x01; - -pub const NCCS: usize = 20; - -pub const O_ACCMODE: ::c_int = 0x3; -pub const O_RDONLY: ::c_int = 0; -pub const O_WRONLY: ::c_int = 1; -pub const O_RDWR: ::c_int = 2; -pub const O_APPEND: ::c_int = 8; -pub const O_CREAT: ::c_int = 512; -pub const O_TRUNC: ::c_int = 1024; -pub const O_EXCL: ::c_int = 2048; -pub const O_ASYNC: ::c_int = 0x40; -pub const O_SYNC: ::c_int = 0x80; -pub const O_NONBLOCK: ::c_int = 0x4; -pub const O_NOFOLLOW: ::c_int = 0x100; -pub const O_SHLOCK: ::c_int = 0x10; -pub const O_EXLOCK: ::c_int = 0x20; -pub const O_FSYNC: ::c_int = O_SYNC; -pub const O_NDELAY: ::c_int = O_NONBLOCK; - -pub const F_GETOWN: ::c_int = 5; -pub const F_SETOWN: ::c_int = 6; - -pub const F_RDLCK: ::c_short = 1; -pub const F_UNLCK: ::c_short = 2; -pub const F_WRLCK: ::c_short = 3; - -pub const MNT_RDONLY: ::c_int = 0x00000001; -pub const MNT_SYNCHRONOUS: ::c_int = 0x00000002; -pub const MNT_NOEXEC: ::c_int = 0x00000004; -pub const MNT_NOSUID: ::c_int = 0x00000008; -pub const MNT_ASYNC: ::c_int = 0x00000040; -pub const MNT_EXPORTED: ::c_int = 0x00000100; -pub const MNT_UPDATE: ::c_int = 0x00010000; -pub const MNT_RELOAD: ::c_int = 0x00040000; -pub const MNT_FORCE: ::c_int = 0x00080000; - -pub const Q_SYNC: ::c_int = 0x600; -pub const Q_QUOTAON: ::c_int = 0x100; -pub const Q_QUOTAOFF: ::c_int = 0x200; - -pub const TCIOFF: ::c_int = 3; -pub const TCION: ::c_int = 4; -pub const TCOOFF: ::c_int = 1; -pub const TCOON: ::c_int = 2; -pub const TCIFLUSH: ::c_int = 1; -pub const TCOFLUSH: ::c_int = 2; -pub const TCIOFLUSH: ::c_int = 3; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; -pub const VEOF: usize = 0; -pub const VEOL: usize = 1; -pub const VEOL2: usize = 2; -pub const VERASE: usize = 3; -pub const VWERASE: usize = 4; -pub const VKILL: usize = 5; -pub const VREPRINT: usize = 6; -pub const VINTR: usize = 8; -pub const VQUIT: usize = 9; -pub const VSUSP: usize = 10; -pub const VDSUSP: usize = 11; -pub const VSTART: usize = 12; -pub const VSTOP: usize = 13; -pub const VLNEXT: usize = 14; -pub const VDISCARD: usize = 15; -pub const VMIN: usize = 16; -pub const VTIME: usize = 17; -pub const VSTATUS: usize = 18; -pub const _POSIX_VDISABLE: ::cc_t = 0xff; -pub const IGNBRK: ::tcflag_t = 0x00000001; -pub const BRKINT: ::tcflag_t = 0x00000002; -pub const IGNPAR: ::tcflag_t = 0x00000004; -pub const PARMRK: ::tcflag_t = 0x00000008; -pub const INPCK: ::tcflag_t = 0x00000010; -pub const ISTRIP: ::tcflag_t = 0x00000020; -pub const INLCR: ::tcflag_t = 0x00000040; -pub const IGNCR: ::tcflag_t = 0x00000080; -pub const ICRNL: ::tcflag_t = 0x00000100; -pub const IXON: ::tcflag_t = 0x00000200; -pub const IXOFF: ::tcflag_t = 0x00000400; -pub const IXANY: ::tcflag_t = 0x00000800; -pub const IMAXBEL: ::tcflag_t = 0x00002000; -pub const OPOST: ::tcflag_t = 0x1; -pub const ONLCR: ::tcflag_t = 0x2; -pub const OXTABS: ::tcflag_t = 0x4; -pub const ONOEOT: ::tcflag_t = 0x8; -pub const CIGNORE: ::tcflag_t = 0x00000001; -pub const CSIZE: ::tcflag_t = 0x00000300; -pub const CS5: ::tcflag_t = 0x00000000; -pub const CS6: ::tcflag_t = 0x00000100; -pub const CS7: ::tcflag_t = 0x00000200; -pub const CS8: ::tcflag_t = 0x00000300; -pub const CSTOPB: ::tcflag_t = 0x00000400; -pub const CREAD: ::tcflag_t = 0x00000800; -pub const PARENB: ::tcflag_t = 0x00001000; -pub const PARODD: ::tcflag_t = 0x00002000; -pub const HUPCL: ::tcflag_t = 0x00004000; -pub const CLOCAL: ::tcflag_t = 0x00008000; -pub const ECHOKE: ::tcflag_t = 0x00000001; -pub const ECHOE: ::tcflag_t = 0x00000002; -pub const ECHOK: ::tcflag_t = 0x00000004; -pub const ECHO: ::tcflag_t = 0x00000008; -pub const ECHONL: ::tcflag_t = 0x00000010; -pub const ECHOPRT: ::tcflag_t = 0x00000020; -pub const ECHOCTL: ::tcflag_t = 0x00000040; -pub const ISIG: ::tcflag_t = 0x00000080; -pub const ICANON: ::tcflag_t = 0x00000100; -pub const ALTWERASE: ::tcflag_t = 0x00000200; -pub const IEXTEN: ::tcflag_t = 0x00000400; -pub const EXTPROC: ::tcflag_t = 0x00000800; -pub const TOSTOP: ::tcflag_t = 0x00400000; -pub const FLUSHO: ::tcflag_t = 0x00800000; -pub const NOKERNINFO: ::tcflag_t = 0x02000000; -pub const PENDIN: ::tcflag_t = 0x20000000; -pub const NOFLSH: ::tcflag_t = 0x80000000; -pub const MDMBUF: ::tcflag_t = 0x00100000; - -pub const WNOHANG: ::c_int = 0x00000001; -pub const WUNTRACED: ::c_int = 0x00000002; - -pub const RTLD_LAZY: ::c_int = 0x1; -pub const RTLD_NOW: ::c_int = 0x2; -pub const RTLD_NEXT: *mut ::c_void = -1isize as *mut ::c_void; -pub const RTLD_DEFAULT: *mut ::c_void = -2isize as *mut ::c_void; -pub const RTLD_SELF: *mut ::c_void = -3isize as *mut ::c_void; - -pub const LOG_CRON: ::c_int = 9 << 3; -pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -pub const LOG_FTP: ::c_int = 11 << 3; -pub const LOG_PERROR: ::c_int = 0x20; - -pub const TCP_NODELAY: ::c_int = 1; -pub const TCP_MAXSEG: ::c_int = 2; - -pub const PIPE_BUF: usize = 512; - -// si_code values for SIGBUS signal -pub const BUS_ADRALN: ::c_int = 1; -pub const BUS_ADRERR: ::c_int = 2; -pub const BUS_OBJERR: ::c_int = 3; - -// si_code values for SIGCHLD signal -pub const CLD_EXITED: ::c_int = 1; -pub const CLD_KILLED: ::c_int = 2; -pub const CLD_DUMPED: ::c_int = 3; -pub const CLD_TRAPPED: ::c_int = 4; -pub const CLD_STOPPED: ::c_int = 5; -pub const CLD_CONTINUED: ::c_int = 6; - -pub const POLLIN: ::c_short = 0x1; -pub const POLLPRI: ::c_short = 0x2; -pub const POLLOUT: ::c_short = 0x4; -pub const POLLERR: ::c_short = 0x8; -pub const POLLHUP: ::c_short = 0x10; -pub const POLLNVAL: ::c_short = 0x20; -pub const POLLRDNORM: ::c_short = 0x040; -pub const POLLWRNORM: ::c_short = 0x004; -pub const POLLRDBAND: ::c_short = 0x080; -pub const POLLWRBAND: ::c_short = 0x100; - -pub const BIOCGBLEN: ::c_ulong = 0x40044266; -pub const BIOCSBLEN: ::c_ulong = 0xc0044266; -pub const BIOCFLUSH: ::c_uint = 0x20004268; -pub const BIOCPROMISC: ::c_uint = 0x20004269; -pub const BIOCGDLT: ::c_ulong = 0x4004426a; -pub const BIOCGETIF: ::c_ulong = 0x4020426b; -pub const BIOCSETIF: ::c_ulong = 0x8020426c; -pub const BIOCGSTATS: ::c_ulong = 0x4008426f; -pub const BIOCIMMEDIATE: ::c_ulong = 0x80044270; -pub const BIOCVERSION: ::c_ulong = 0x40044271; -pub const BIOCGHDRCMPLT: ::c_ulong = 0x40044274; -pub const BIOCSHDRCMPLT: ::c_ulong = 0x80044275; -pub const SIOCGIFADDR: ::c_ulong = 0xc0206921; - -pub const REG_BASIC: ::c_int = 0o0000; -pub const REG_EXTENDED: ::c_int = 0o0001; -pub const REG_ICASE: ::c_int = 0o0002; -pub const REG_NOSUB: ::c_int = 0o0004; -pub const REG_NEWLINE: ::c_int = 0o0010; -pub const REG_NOSPEC: ::c_int = 0o0020; -pub const REG_PEND: ::c_int = 0o0040; -pub const REG_DUMP: ::c_int = 0o0200; - -pub const REG_NOMATCH: ::c_int = 1; -pub const REG_BADPAT: ::c_int = 2; -pub const REG_ECOLLATE: ::c_int = 3; -pub const REG_ECTYPE: ::c_int = 4; -pub const REG_EESCAPE: ::c_int = 5; -pub const REG_ESUBREG: ::c_int = 6; -pub const REG_EBRACK: ::c_int = 7; -pub const REG_EPAREN: ::c_int = 8; -pub const REG_EBRACE: ::c_int = 9; -pub const REG_BADBR: ::c_int = 10; -pub const REG_ERANGE: ::c_int = 11; -pub const REG_ESPACE: ::c_int = 12; -pub const REG_BADRPT: ::c_int = 13; -pub const REG_EMPTY: ::c_int = 14; -pub const REG_ASSERT: ::c_int = 15; -pub const REG_INVARG: ::c_int = 16; -pub const REG_ATOI: ::c_int = 255; -pub const REG_ITOA: ::c_int = 0o0400; - -pub const REG_NOTBOL: ::c_int = 0o00001; -pub const REG_NOTEOL: ::c_int = 0o00002; -pub const REG_STARTEND: ::c_int = 0o00004; -pub const REG_TRACE: ::c_int = 0o00400; -pub const REG_LARGE: ::c_int = 0o01000; -pub const REG_BACKR: ::c_int = 0o02000; - -pub const TIOCCBRK: ::c_uint = 0x2000747a; -pub const TIOCSBRK: ::c_uint = 0x2000747b; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -pub const ITIMER_REAL: ::c_int = 0; -pub const ITIMER_VIRTUAL: ::c_int = 1; -pub const ITIMER_PROF: ::c_int = 2; - -f! { - pub fn CMSG_FIRSTHDR(mhdr: *const ::msghdr) -> *mut ::cmsghdr { - if (*mhdr).msg_controllen as usize >= ::mem::size_of::<::cmsghdr>() { - (*mhdr).msg_control as *mut ::cmsghdr - } else { - 0 as *mut ::cmsghdr - } - } - - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - let fd = fd as usize; - (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); - return - } - - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - let fd = fd as usize; - return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0 - } - - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - let fd = fd as usize; - (*set).fds_bits[fd / bits] |= 1 << (fd % bits); - return - } - - pub fn FD_ZERO(set: *mut fd_set) -> () { - for slot in (*set).fds_bits.iter_mut() { - *slot = 0; - } - } -} - -safe_f! { - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { - status & 0o177 - } - - pub {const} fn WIFEXITED(status: ::c_int) -> bool { - (status & 0o177) == 0 - } - - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { - status >> 8 - } - - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { - (status & 0o200) != 0 - } - - pub {const} fn QCMD(cmd: ::c_int, type_: ::c_int) -> ::c_int { - (cmd << 8) | (type_ & 0x00ff) - } -} - -extern "C" { - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "getrlimit$UNIX2003" - )] - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "setrlimit$UNIX2003" - )] - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - #[cfg_attr( - all(target_os = "freebsd", any(freebsd12, freebsd11, freebsd10)), - link_name = "rand@FBSD_1.0" - )] - pub fn rand() -> ::c_int; - #[cfg_attr( - all(target_os = "freebsd", any(freebsd12, freebsd11, freebsd10)), - link_name = "srand@FBSD_1.0" - )] - pub fn srand(seed: ::c_uint); - - pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; - pub fn freeifaddrs(ifa: *mut ::ifaddrs); - pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; - pub fn setlogin(name: *const ::c_char) -> ::c_int; - pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - pub fn kqueue() -> ::c_int; - pub fn unmount(target: *const ::c_char, arg: ::c_int) -> ::c_int; - pub fn syscall(num: ::c_int, ...) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__getpwent50")] - pub fn getpwent() -> *mut passwd; - pub fn setpwent(); - pub fn endpwent(); - pub fn endgrent(); - pub fn getgrent() -> *mut ::group; - - pub fn getprogname() -> *const ::c_char; - pub fn setprogname(name: *const ::c_char); - pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; - pub fn if_nameindex() -> *mut if_nameindex; - pub fn if_freenameindex(ptr: *mut if_nameindex); - - pub fn getpeereid(socket: ::c_int, euid: *mut ::uid_t, egid: *mut ::gid_t) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", not(target_arch = "aarch64")), - link_name = "glob$INODE64" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__glob30")] - #[cfg_attr( - all(target_os = "freebsd", any(freebsd11, freebsd10)), - link_name = "glob@FBSD_1.0" - )] - pub fn glob( - pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__globfree30")] - #[cfg_attr( - all(target_os = "freebsd", any(freebsd11, freebsd10)), - link_name = "globfree@FBSD_1.0" - )] - pub fn globfree(pglob: *mut ::glob_t); - - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86_64"), - link_name = "seekdir$INODE64" - )] - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "seekdir$INODE64$UNIX2003" - )] - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86_64"), - link_name = "telldir$INODE64" - )] - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "telldir$INODE64$UNIX2003" - )] - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "msync$UNIX2003" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__msync13")] - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "recvfrom$UNIX2003" - )] - pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__futimes50")] - pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "bind$UNIX2003" - )] - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "writev$UNIX2003" - )] - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "readv$UNIX2003" - )] - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "sendmsg$UNIX2003" - )] - pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "recvmsg$UNIX2003" - )] - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; - - pub fn sync(); - pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "sigaltstack$UNIX2003" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")] - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn getdtablesize() -> ::c_int; - pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_sigmask$UNIX2003" - )] - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_cancel$UNIX2003" - )] - pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")] - pub fn getpwnam_r( - name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")] - pub fn getpwuid_r( - uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "sigwait$UNIX2003" - )] - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "popen$UNIX2003" - )] - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; - pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn acct(filename: *const ::c_char) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "wait4$UNIX2003" - )] - #[cfg_attr( - all(target_os = "freebsd", any(freebsd12, freebsd11, freebsd10)), - link_name = "wait4@FBSD_1.0" - )] - pub fn wait4( - pid: ::pid_t, - status: *mut ::c_int, - options: ::c_int, - rusage: *mut ::rusage, - ) -> ::pid_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "getitimer$UNIX2003" - )] - pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "setitimer$UNIX2003" - )] - pub fn setitimer( - which: ::c_int, - new_value: *const ::itimerval, - old_value: *mut ::itimerval, - ) -> ::c_int; - - pub fn regcomp(preg: *mut regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; - - pub fn regexec( - preg: *const regex_t, - input: *const ::c_char, - nmatch: ::size_t, - pmatch: *mut regmatch_t, - eflags: ::c_int, - ) -> ::c_int; - - pub fn regerror( - errcode: ::c_int, - preg: *const regex_t, - errbuf: *mut ::c_char, - errbuf_size: ::size_t, - ) -> ::size_t; - - pub fn regfree(preg: *mut regex_t); - - pub fn arc4random() -> u32; - pub fn arc4random_buf(buf: *mut ::c_void, size: ::size_t); - pub fn arc4random_uniform(l: u32) -> u32; - - pub fn drand48() -> ::c_double; - pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; - pub fn lrand48() -> ::c_long; - pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn mrand48() -> ::c_long; - pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn srand48(seed: ::c_long); - pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; - pub fn lcong48(p: *mut ::c_ushort); - pub fn getopt_long( - argc: ::c_int, - argv: *const *mut c_char, - optstring: *const c_char, - longopts: *const option, - longindex: *mut ::c_int, - ) -> ::c_int; -} - -cfg_if! { - if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos", target_os = "watchos"))] { - mod apple; - pub use self::apple::*; - } else if #[cfg(any(target_os = "openbsd", target_os = "netbsd"))] { - mod netbsdlike; - pub use self::netbsdlike::*; - } else if #[cfg(any(target_os = "freebsd", target_os = "dragonfly"))] { - mod freebsdlike; - pub use self::freebsdlike::*; - } else { - // Unknown target_os - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/mod.rs deleted file mode 100644 index c43a4b9e8..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/mod.rs +++ /dev/null @@ -1,762 +0,0 @@ -pub type wchar_t = i32; -pub type time_t = i64; -pub type mode_t = u32; -pub type nlink_t = u32; -pub type ino_t = u64; -pub type pthread_key_t = ::c_int; -pub type rlim_t = u64; -pub type speed_t = ::c_uint; -pub type tcflag_t = ::c_uint; -pub type nl_item = c_long; -pub type clockid_t = ::c_int; -pub type id_t = u32; -pub type sem_t = *mut sem; -pub type key_t = c_long; - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { - fn clone(&self) -> timezone { - *self - } -} -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum sem {} -impl ::Copy for sem {} -impl ::Clone for sem { - fn clone(&self) -> sem { - *self - } -} - -s! { - pub struct sched_param { - pub sched_priority: ::c_int, - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - } - - pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_uint, - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS], - pub c_ispeed: ::c_int, - pub c_ospeed: ::c_int, - } - - pub struct flock { - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - pub l_type: ::c_short, - pub l_whence: ::c_short, - } - - pub struct ipc_perm { - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub mode: ::mode_t, - #[cfg(target_os = "openbsd")] - pub seq: ::c_ushort, - #[cfg(target_os = "netbsd")] - pub _seq: ::c_ushort, - #[cfg(target_os = "openbsd")] - pub key: ::key_t, - #[cfg(target_os = "netbsd")] - pub _key: ::key_t, - } - - pub struct ptrace_io_desc { - pub piod_op: ::c_int, - pub piod_offs: *mut ::c_void, - pub piod_addr: *mut ::c_void, - pub piod_len: ::size_t, - } -} - -pub const D_T_FMT: ::nl_item = 0; -pub const D_FMT: ::nl_item = 1; -pub const T_FMT: ::nl_item = 2; -pub const T_FMT_AMPM: ::nl_item = 3; -pub const AM_STR: ::nl_item = 4; -pub const PM_STR: ::nl_item = 5; - -pub const DAY_1: ::nl_item = 6; -pub const DAY_2: ::nl_item = 7; -pub const DAY_3: ::nl_item = 8; -pub const DAY_4: ::nl_item = 9; -pub const DAY_5: ::nl_item = 10; -pub const DAY_6: ::nl_item = 11; -pub const DAY_7: ::nl_item = 12; - -pub const ABDAY_1: ::nl_item = 13; -pub const ABDAY_2: ::nl_item = 14; -pub const ABDAY_3: ::nl_item = 15; -pub const ABDAY_4: ::nl_item = 16; -pub const ABDAY_5: ::nl_item = 17; -pub const ABDAY_6: ::nl_item = 18; -pub const ABDAY_7: ::nl_item = 19; - -pub const MON_1: ::nl_item = 20; -pub const MON_2: ::nl_item = 21; -pub const MON_3: ::nl_item = 22; -pub const MON_4: ::nl_item = 23; -pub const MON_5: ::nl_item = 24; -pub const MON_6: ::nl_item = 25; -pub const MON_7: ::nl_item = 26; -pub const MON_8: ::nl_item = 27; -pub const MON_9: ::nl_item = 28; -pub const MON_10: ::nl_item = 29; -pub const MON_11: ::nl_item = 30; -pub const MON_12: ::nl_item = 31; - -pub const ABMON_1: ::nl_item = 32; -pub const ABMON_2: ::nl_item = 33; -pub const ABMON_3: ::nl_item = 34; -pub const ABMON_4: ::nl_item = 35; -pub const ABMON_5: ::nl_item = 36; -pub const ABMON_6: ::nl_item = 37; -pub const ABMON_7: ::nl_item = 38; -pub const ABMON_8: ::nl_item = 39; -pub const ABMON_9: ::nl_item = 40; -pub const ABMON_10: ::nl_item = 41; -pub const ABMON_11: ::nl_item = 42; -pub const ABMON_12: ::nl_item = 43; - -pub const RADIXCHAR: ::nl_item = 44; -pub const THOUSEP: ::nl_item = 45; -pub const YESSTR: ::nl_item = 46; -pub const YESEXPR: ::nl_item = 47; -pub const NOSTR: ::nl_item = 48; -pub const NOEXPR: ::nl_item = 49; -pub const CRNCYSTR: ::nl_item = 50; - -pub const CODESET: ::nl_item = 51; - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 2147483647; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; -pub const BUFSIZ: ::c_uint = 1024; -pub const FOPEN_MAX: ::c_uint = 20; -pub const FILENAME_MAX: ::c_uint = 1024; -pub const L_tmpnam: ::c_uint = 1024; -pub const O_NOCTTY: ::c_int = 32768; -pub const S_IFIFO: mode_t = 4096; -pub const S_IFCHR: mode_t = 8192; -pub const S_IFBLK: mode_t = 24576; -pub const S_IFDIR: mode_t = 16384; -pub const S_IFREG: mode_t = 32768; -pub const S_IFLNK: mode_t = 40960; -pub const S_IFSOCK: mode_t = 49152; -pub const S_IFMT: mode_t = 61440; -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; -pub const S_IRWXU: mode_t = 448; -pub const S_IXUSR: mode_t = 64; -pub const S_IWUSR: mode_t = 128; -pub const S_IRUSR: mode_t = 256; -pub const S_IRWXG: mode_t = 56; -pub const S_IXGRP: mode_t = 8; -pub const S_IWGRP: mode_t = 16; -pub const S_IRGRP: mode_t = 32; -pub const S_IRWXO: mode_t = 7; -pub const S_IXOTH: mode_t = 1; -pub const S_IWOTH: mode_t = 2; -pub const S_IROTH: mode_t = 4; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; -pub const F_GETLK: ::c_int = 7; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const MAP_FILE: ::c_int = 0x0000; -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_FIXED: ::c_int = 0x0010; -pub const MAP_ANON: ::c_int = 0x1000; -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; - -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -pub const IPC_CREAT: ::c_int = 0o001000; -pub const IPC_EXCL: ::c_int = 0o002000; -pub const IPC_NOWAIT: ::c_int = 0o004000; - -pub const IPC_PRIVATE: ::key_t = 0; - -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; - -pub const IPC_R: ::c_int = 0o000400; -pub const IPC_W: ::c_int = 0o000200; -pub const IPC_M: ::c_int = 0o010000; - -pub const SHM_R: ::c_int = IPC_R; -pub const SHM_W: ::c_int = IPC_W; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const MS_ASYNC: ::c_int = 0x0001; - -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EDEADLK: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EAGAIN: ::c_int = 35; -pub const EWOULDBLOCK: ::c_int = 35; -pub const EINPROGRESS: ::c_int = 36; -pub const EALREADY: ::c_int = 37; -pub const ENOTSOCK: ::c_int = 38; -pub const EDESTADDRREQ: ::c_int = 39; -pub const EMSGSIZE: ::c_int = 40; -pub const EPROTOTYPE: ::c_int = 41; -pub const ENOPROTOOPT: ::c_int = 42; -pub const EPROTONOSUPPORT: ::c_int = 43; -pub const ESOCKTNOSUPPORT: ::c_int = 44; -pub const EOPNOTSUPP: ::c_int = 45; -pub const EPFNOSUPPORT: ::c_int = 46; -pub const EAFNOSUPPORT: ::c_int = 47; -pub const EADDRINUSE: ::c_int = 48; -pub const EADDRNOTAVAIL: ::c_int = 49; -pub const ENETDOWN: ::c_int = 50; -pub const ENETUNREACH: ::c_int = 51; -pub const ENETRESET: ::c_int = 52; -pub const ECONNABORTED: ::c_int = 53; -pub const ECONNRESET: ::c_int = 54; -pub const ENOBUFS: ::c_int = 55; -pub const EISCONN: ::c_int = 56; -pub const ENOTCONN: ::c_int = 57; -pub const ESHUTDOWN: ::c_int = 58; -pub const ETOOMANYREFS: ::c_int = 59; -pub const ETIMEDOUT: ::c_int = 60; -pub const ECONNREFUSED: ::c_int = 61; -pub const ELOOP: ::c_int = 62; -pub const ENAMETOOLONG: ::c_int = 63; -pub const EHOSTDOWN: ::c_int = 64; -pub const EHOSTUNREACH: ::c_int = 65; -pub const ENOTEMPTY: ::c_int = 66; -pub const EPROCLIM: ::c_int = 67; -pub const EUSERS: ::c_int = 68; -pub const EDQUOT: ::c_int = 69; -pub const ESTALE: ::c_int = 70; -pub const EREMOTE: ::c_int = 71; -pub const EBADRPC: ::c_int = 72; -pub const ERPCMISMATCH: ::c_int = 73; -pub const EPROGUNAVAIL: ::c_int = 74; -pub const EPROGMISMATCH: ::c_int = 75; -pub const EPROCUNAVAIL: ::c_int = 76; -pub const ENOLCK: ::c_int = 77; -pub const ENOSYS: ::c_int = 78; -pub const EFTYPE: ::c_int = 79; -pub const EAUTH: ::c_int = 80; -pub const ENEEDAUTH: ::c_int = 81; - -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; - -pub const SIGTRAP: ::c_int = 5; - -pub const GLOB_APPEND: ::c_int = 0x0001; -pub const GLOB_DOOFFS: ::c_int = 0x0002; -pub const GLOB_ERR: ::c_int = 0x0004; -pub const GLOB_MARK: ::c_int = 0x0008; -pub const GLOB_NOCHECK: ::c_int = 0x0010; -pub const GLOB_NOSORT: ::c_int = 0x0020; -pub const GLOB_NOESCAPE: ::c_int = 0x1000; - -pub const GLOB_NOSPACE: ::c_int = -1; -pub const GLOB_ABORTED: ::c_int = -2; -pub const GLOB_NOMATCH: ::c_int = -3; -pub const GLOB_NOSYS: ::c_int = -4; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_MADV_WILLNEED: ::c_int = 3; -pub const POSIX_MADV_DONTNEED: ::c_int = 4; - -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; - -pub const PIOD_READ_D: ::c_int = 1; -pub const PIOD_WRITE_D: ::c_int = 2; -pub const PIOD_READ_I: ::c_int = 3; -pub const PIOD_WRITE_I: ::c_int = 4; -pub const PIOD_READ_AUXV: ::c_int = 5; - -pub const PT_TRACE_ME: ::c_int = 0; -pub const PT_READ_I: ::c_int = 1; -pub const PT_READ_D: ::c_int = 2; -pub const PT_WRITE_I: ::c_int = 4; -pub const PT_WRITE_D: ::c_int = 5; -pub const PT_CONTINUE: ::c_int = 7; -pub const PT_KILL: ::c_int = 8; -pub const PT_ATTACH: ::c_int = 9; -pub const PT_DETACH: ::c_int = 10; -pub const PT_IO: ::c_int = 11; - -// http://man.openbsd.org/OpenBSD-current/man2/clock_getres.2 -// The man page says clock_gettime(3) can accept various values as clockid_t but -// http://fxr.watson.org/fxr/source/kern/kern_time.c?v=OPENBSD;im=excerpts#L161 -// the implementation rejects anything other than the below two -// -// http://netbsd.gw.com/cgi-bin/man-cgi?clock_gettime -// https://github.com/jsonn/src/blob/HEAD/sys/kern/subr_time.c#L222 -// Basically the same goes for NetBSD -pub const CLOCK_REALTIME: ::clockid_t = 0; -pub const CLOCK_MONOTONIC: ::clockid_t = 3; - -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_RSS: ::c_int = 5; -pub const RLIMIT_MEMLOCK: ::c_int = 6; -pub const RLIMIT_NPROC: ::c_int = 7; -pub const RLIMIT_NOFILE: ::c_int = 8; - -pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff; -pub const RLIM_SAVED_MAX: rlim_t = RLIM_INFINITY; -pub const RLIM_SAVED_CUR: rlim_t = RLIM_INFINITY; - -pub const RUSAGE_SELF: ::c_int = 0; -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; -pub const MADV_FREE: ::c_int = 6; - -// sys/fstypes.h in NetBSD, or sys/mount.h in OpenBSD -pub const MNT_NODEV: ::c_int = 0x00000010; -pub const MNT_LOCAL: ::c_int = 0x00001000; -pub const MNT_QUOTA: ::c_int = 0x00002000; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_UNIX: ::c_int = AF_LOCAL; -pub const AF_INET: ::c_int = 2; -pub const AF_IMPLINK: ::c_int = 3; -pub const AF_PUP: ::c_int = 4; -pub const AF_CHAOS: ::c_int = 5; -pub const AF_NS: ::c_int = 6; -pub const AF_ISO: ::c_int = 7; -pub const AF_OSI: ::c_int = AF_ISO; -pub const AF_DATAKIT: ::c_int = 9; -pub const AF_CCITT: ::c_int = 10; -pub const AF_SNA: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_DLI: ::c_int = 13; -pub const AF_LAT: ::c_int = 14; -pub const AF_HYLINK: ::c_int = 15; -pub const AF_APPLETALK: ::c_int = 16; -pub const AF_LINK: ::c_int = 18; -pub const pseudo_AF_XTP: ::c_int = 19; -pub const AF_COIP: ::c_int = 20; -pub const AF_CNT: ::c_int = 21; -pub const pseudo_AF_RTIP: ::c_int = 22; -pub const AF_IPX: ::c_int = 23; -pub const AF_INET6: ::c_int = 24; -pub const pseudo_AF_PIP: ::c_int = 25; -pub const AF_ISDN: ::c_int = 26; -pub const AF_E164: ::c_int = AF_ISDN; -pub const AF_NATM: ::c_int = 27; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_UNIX: ::c_int = PF_LOCAL; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -pub const PF_PUP: ::c_int = AF_PUP; -pub const PF_CHAOS: ::c_int = AF_CHAOS; -pub const PF_NS: ::c_int = AF_NS; -pub const PF_ISO: ::c_int = AF_ISO; -pub const PF_OSI: ::c_int = AF_ISO; -pub const PF_DATAKIT: ::c_int = AF_DATAKIT; -pub const PF_CCITT: ::c_int = AF_CCITT; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_DLI: ::c_int = AF_DLI; -pub const PF_LAT: ::c_int = AF_LAT; -pub const PF_HYLINK: ::c_int = AF_HYLINK; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_LINK: ::c_int = AF_LINK; -pub const PF_XTP: ::c_int = pseudo_AF_XTP; -pub const PF_COIP: ::c_int = AF_COIP; -pub const PF_CNT: ::c_int = AF_CNT; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; -pub const PF_PIP: ::c_int = pseudo_AF_PIP; -pub const PF_ISDN: ::c_int = AF_ISDN; -pub const PF_NATM: ::c_int = AF_NATM; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const IP_TTL: ::c_int = 4; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_ADD_MEMBERSHIP: ::c_int = 12; -pub const IP_DROP_MEMBERSHIP: ::c_int = 13; -pub const IPV6_RECVPKTINFO: ::c_int = 36; -pub const IPV6_PKTINFO: ::c_int = 46; -pub const IPV6_RECVTCLASS: ::c_int = 57; -pub const IPV6_TCLASS: ::c_int = 61; - -pub const SOL_SOCKET: ::c_int = 0xffff; -pub const SO_DEBUG: ::c_int = 0x01; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; - -pub const SOMAXCONN: ::c_int = 128; - -pub const MSG_OOB: ::c_int = 0x1; -pub const MSG_PEEK: ::c_int = 0x2; -pub const MSG_DONTROUTE: ::c_int = 0x4; -pub const MSG_EOR: ::c_int = 0x8; -pub const MSG_TRUNC: ::c_int = 0x10; -pub const MSG_CTRUNC: ::c_int = 0x20; -pub const MSG_WAITALL: ::c_int = 0x40; -pub const MSG_DONTWAIT: ::c_int = 0x80; -pub const MSG_BCAST: ::c_int = 0x100; -pub const MSG_MCAST: ::c_int = 0x200; -pub const MSG_NOSIGNAL: ::c_int = 0x400; -pub const MSG_CMSG_CLOEXEC: ::c_int = 0x800; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; - -pub const IPPROTO_RAW: ::c_int = 255; - -pub const _SC_ARG_MAX: ::c_int = 1; -pub const _SC_CHILD_MAX: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 4; -pub const _SC_OPEN_MAX: ::c_int = 5; -pub const _SC_JOB_CONTROL: ::c_int = 6; -pub const _SC_SAVED_IDS: ::c_int = 7; -pub const _SC_VERSION: ::c_int = 8; -pub const _SC_BC_BASE_MAX: ::c_int = 9; -pub const _SC_BC_DIM_MAX: ::c_int = 10; -pub const _SC_BC_SCALE_MAX: ::c_int = 11; -pub const _SC_BC_STRING_MAX: ::c_int = 12; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 13; -pub const _SC_EXPR_NEST_MAX: ::c_int = 14; -pub const _SC_LINE_MAX: ::c_int = 15; -pub const _SC_RE_DUP_MAX: ::c_int = 16; -pub const _SC_2_VERSION: ::c_int = 17; -pub const _SC_2_C_BIND: ::c_int = 18; -pub const _SC_2_C_DEV: ::c_int = 19; -pub const _SC_2_CHAR_TERM: ::c_int = 20; -pub const _SC_2_FORT_DEV: ::c_int = 21; -pub const _SC_2_FORT_RUN: ::c_int = 22; -pub const _SC_2_LOCALEDEF: ::c_int = 23; -pub const _SC_2_SW_DEV: ::c_int = 24; -pub const _SC_2_UPE: ::c_int = 25; -pub const _SC_STREAM_MAX: ::c_int = 26; -pub const _SC_TZNAME_MAX: ::c_int = 27; -pub const _SC_PAGESIZE: ::c_int = 28; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_FSYNC: ::c_int = 29; -pub const _SC_XOPEN_SHM: ::c_int = 30; - -pub const Q_GETQUOTA: ::c_int = 0x300; -pub const Q_SETQUOTA: ::c_int = 0x400; - -pub const RTLD_GLOBAL: ::c_int = 0x100; - -pub const LOG_NFACILITIES: ::c_int = 24; - -pub const HW_NCPU: ::c_int = 3; - -pub const B0: speed_t = 0; -pub const B50: speed_t = 50; -pub const B75: speed_t = 75; -pub const B110: speed_t = 110; -pub const B134: speed_t = 134; -pub const B150: speed_t = 150; -pub const B200: speed_t = 200; -pub const B300: speed_t = 300; -pub const B600: speed_t = 600; -pub const B1200: speed_t = 1200; -pub const B1800: speed_t = 1800; -pub const B2400: speed_t = 2400; -pub const B4800: speed_t = 4800; -pub const B9600: speed_t = 9600; -pub const B19200: speed_t = 19200; -pub const B38400: speed_t = 38400; -pub const B7200: speed_t = 7200; -pub const B14400: speed_t = 14400; -pub const B28800: speed_t = 28800; -pub const B57600: speed_t = 57600; -pub const B76800: speed_t = 76800; -pub const B115200: speed_t = 115200; -pub const B230400: speed_t = 230400; -pub const EXTA: speed_t = 19200; -pub const EXTB: speed_t = 38400; - -pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; - -pub const CRTSCTS: ::tcflag_t = 0x00010000; -pub const CRTS_IFLOW: ::tcflag_t = CRTSCTS; -pub const CCTS_OFLOW: ::tcflag_t = CRTSCTS; -pub const OCRNL: ::tcflag_t = 0x10; - -pub const TIOCEXCL: ::c_ulong = 0x2000740d; -pub const TIOCNXCL: ::c_ulong = 0x2000740e; -pub const TIOCFLUSH: ::c_ulong = 0x80047410; -pub const TIOCGETA: ::c_ulong = 0x402c7413; -pub const TIOCSETA: ::c_ulong = 0x802c7414; -pub const TIOCSETAW: ::c_ulong = 0x802c7415; -pub const TIOCSETAF: ::c_ulong = 0x802c7416; -pub const TIOCGETD: ::c_ulong = 0x4004741a; -pub const TIOCSETD: ::c_ulong = 0x8004741b; -pub const TIOCMGET: ::c_ulong = 0x4004746a; -pub const TIOCMBIC: ::c_ulong = 0x8004746b; -pub const TIOCMBIS: ::c_ulong = 0x8004746c; -pub const TIOCMSET: ::c_ulong = 0x8004746d; -pub const TIOCSTART: ::c_ulong = 0x2000746e; -pub const TIOCSTOP: ::c_ulong = 0x2000746f; -pub const TIOCSCTTY: ::c_ulong = 0x20007461; -pub const TIOCGWINSZ: ::c_ulong = 0x40087468; -pub const TIOCSWINSZ: ::c_ulong = 0x80087467; -pub const TIOCM_LE: ::c_int = 0o0001; -pub const TIOCM_DTR: ::c_int = 0o0002; -pub const TIOCM_RTS: ::c_int = 0o0004; -pub const TIOCM_ST: ::c_int = 0o0010; -pub const TIOCM_SR: ::c_int = 0o0020; -pub const TIOCM_CTS: ::c_int = 0o0040; -pub const TIOCM_CAR: ::c_int = 0o0100; -pub const TIOCM_RNG: ::c_int = 0o0200; -pub const TIOCM_DSR: ::c_int = 0o0400; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; - -pub const TIMER_ABSTIME: ::c_int = 1; - -#[link(name = "util")] -extern "C" { - pub fn setgrent(); - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - pub fn accept4( - s: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn mincore(addr: *mut ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__clock_getres50")] - pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__clock_gettime50")] - pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__clock_settime50")] - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - pub fn __errno() -> *mut ::c_int; - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn login_tty(fd: ::c_int) -> ::c_int; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: dev_t, - ) -> ::c_int; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn pthread_condattr_setclock( - attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn pthread_mutex_timedlock( - lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_spin_init(lock: *mut pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut pthread_spinlock_t) -> ::c_int; - pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const sched_param, - ) -> ::c_int; - pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut sched_param, - ) -> ::c_int; - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - - pub fn getgrouplist( - name: *const ::c_char, - basegid: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; - pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; - pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; - - pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; - pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; - pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; -} - -extern "C" { - pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn gethostid() -> ::c_long; - pub fn sethostid(hostid: ::c_long) -> ::c_int; - pub fn ftok(path: *const ::c_char, id: ::c_int) -> ::key_t; - - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; - pub fn basename(path: *mut ::c_char) -> *mut ::c_char; - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; -} - -cfg_if! { - if #[cfg(target_os = "netbsd")] { - mod netbsd; - pub use self::netbsd::*; - } else if #[cfg(target_os = "openbsd")] { - mod openbsd; - pub use self::openbsd::*; - } else { - // Unknown target_os - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/aarch64.rs deleted file mode 100644 index 7b895f632..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/aarch64.rs +++ /dev/null @@ -1,103 +0,0 @@ -use PT_FIRSTMACH; - -pub type c_long = i64; -pub type c_ulong = u64; -pub type c_char = u8; -pub type greg_t = u64; -pub type __cpu_simple_lock_nv_t = ::c_uchar; - -s! { - pub struct __fregset { - #[cfg(libc_union)] - pub __qregs: [__c_anonymous__freg; 32], - pub __fpcr: u32, - pub __fpsr: u32, - } - - pub struct mcontext_t { - pub __gregs: [::greg_t; 32], - pub __fregs: __fregset, - __spare: [::greg_t; 8], - } - - pub struct ucontext_t { - pub uc_flags: ::c_uint, - pub uc_link: *mut ucontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - } -} - -s_no_extra_traits! { - #[cfg(libc_union)] - #[repr(align(16))] - pub union __c_anonymous__freg { - pub __b8: [u8; 16], - pub __h16: [u16; 8], - pub __s32: [u32; 4], - pub __d64: [u64; 2], - pub __q128: [u128; 1], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - #[cfg(libc_union)] - impl PartialEq for __c_anonymous__freg { - fn eq(&self, other: &__c_anonymous__freg) -> bool { - unsafe { - self.__b8 == other.__b8 - || self.__h16 == other.__h16 - || self.__s32 == other.__s32 - || self.__d64 == other.__d64 - || self.__q128 == other.__q128 - } - } - } - #[cfg(libc_union)] - impl Eq for __c_anonymous__freg {} - #[cfg(libc_union)] - impl ::fmt::Debug for __c_anonymous__freg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - unsafe { - f.debug_struct("__c_anonymous__freg") - .field("__b8", &self.__b8) - .field("__h16", &self.__h16) - .field("__s32", &self.__s32) - .field("__d64", &self.__d64) - .field("__q128", &self.__q128) - .finish() - } - } - } - #[cfg(libc_union)] - impl ::hash::Hash for __c_anonymous__freg { - fn hash(&self, state: &mut H) { - unsafe { - self.__b8.hash(state); - self.__h16.hash(state); - self.__s32.hash(state); - self.__d64.hash(state); - self.__q128.hash(state); - } - } - } - } -} - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 4 - 1; - } -} - -pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 0; -pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 1; -pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 2; -pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 3; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/arm.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/arm.rs deleted file mode 100644 index 4bf3ccd02..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/arm.rs +++ /dev/null @@ -1,22 +0,0 @@ -use PT_FIRSTMACH; - -pub type c_long = i32; -pub type c_ulong = u32; -pub type c_char = u8; -pub type __cpu_simple_lock_nv_t = ::c_int; - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} - -pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; -pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; -pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3; -pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/mod.rs deleted file mode 100644 index 46035df31..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ /dev/null @@ -1,3178 +0,0 @@ -pub type clock_t = ::c_uint; -pub type suseconds_t = ::c_int; -pub type dev_t = u64; -pub type blksize_t = i32; -pub type fsblkcnt_t = u64; -pub type fsfilcnt_t = u64; -pub type idtype_t = ::c_int; -pub type mqd_t = ::c_int; -type __pthread_spin_t = __cpu_simple_lock_nv_t; -pub type vm_size_t = ::uintptr_t; // FIXME: deprecated since long time -pub type lwpid_t = ::c_uint; -pub type shmatt_t = ::c_uint; -pub type cpuid_t = u64; -pub type cpuset_t = _cpuset; -pub type pthread_spin_t = ::c_uchar; -pub type timer_t = ::c_int; - -// elf.h - -pub type Elf32_Addr = u32; -pub type Elf32_Half = u16; -pub type Elf32_Lword = u64; -pub type Elf32_Off = u32; -pub type Elf32_Sword = i32; -pub type Elf32_Word = u32; - -pub type Elf64_Addr = u64; -pub type Elf64_Half = u16; -pub type Elf64_Lword = u64; -pub type Elf64_Off = u64; -pub type Elf64_Sword = i32; -pub type Elf64_Sxword = i64; -pub type Elf64_Word = u32; -pub type Elf64_Xword = u64; - -pub type iconv_t = *mut ::c_void; - -e! { - pub enum fae_action { - FAE_OPEN, - FAE_DUP2, - FAE_CLOSE, - } -} - -cfg_if! { - if #[cfg(target_pointer_width = "64")] { - type Elf_Addr = Elf64_Addr; - type Elf_Half = Elf64_Half; - type Elf_Phdr = Elf64_Phdr; - } else if #[cfg(target_pointer_width = "32")] { - type Elf_Addr = Elf32_Addr; - type Elf_Half = Elf32_Half; - type Elf_Phdr = Elf32_Phdr; - } -} - -impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { - self.si_addr - } - - pub unsafe fn si_value(&self) -> ::sigval { - #[repr(C)] - struct siginfo_timer { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - __pad1: ::c_int, - _pid: ::pid_t, - _uid: ::uid_t, - value: ::sigval, - } - (*(self as *const siginfo_t as *const siginfo_timer)).value - } - - pub unsafe fn si_status(&self) -> ::c_int { - #[repr(C)] - struct siginfo_timer { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - __pad1: ::c_int, - _pid: ::pid_t, - _uid: ::uid_t, - _value: ::sigval, - _cpid: ::pid_t, - _cuid: ::uid_t, - status: ::c_int, - } - (*(self as *const siginfo_t as *const siginfo_timer)).status - } -} - -s! { - pub struct aiocb { - pub aio_offset: ::off_t, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_sigevent: ::sigevent, - _state: ::c_int, - _errno: ::c_int, - _retval: ::ssize_t - } - - pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_matchc: ::size_t, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - pub gl_pathv: *mut *mut ::c_char, - - __unused3: *mut ::c_void, - - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - __unused6: *mut ::c_void, - __unused7: *mut ::c_void, - __unused8: *mut ::c_void, - } - - pub struct mq_attr { - pub mq_flags: ::c_long, - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_curmsgs: ::c_long, - } - - pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, - } - - pub struct sigset_t { - __bits: [u32; 4], - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_mode: ::mode_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_atime: ::time_t, - pub st_atimensec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtimensec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctimensec: ::c_long, - pub st_birthtime: ::time_t, - pub st_birthtimensec: ::c_long, - pub st_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: u32, - pub st_gen: u32, - pub st_spare: [u32; 2], - } - - pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::socklen_t, - pub ai_canonname: *mut ::c_char, - pub ai_addr: *mut ::sockaddr, - pub ai_next: *mut ::addrinfo, - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - __pad1: ::c_int, - pub si_addr: *mut ::c_void, - __pad2: [u64; 13], - } - - pub struct pthread_attr_t { - pta_magic: ::c_uint, - pta_flags: ::c_int, - pta_private: *mut ::c_void, - } - - pub struct pthread_mutex_t { - ptm_magic: ::c_uint, - ptm_errorcheck: __pthread_spin_t, - #[cfg(any(target_arch = "sparc", target_arch = "sparc64", - target_arch = "x86", target_arch = "x86_64"))] - ptm_pad1: [u8; 3], - // actually a union with a non-unused, 0-initialized field - ptm_unused: __pthread_spin_t, - #[cfg(any(target_arch = "sparc", target_arch = "sparc64", - target_arch = "x86", target_arch = "x86_64"))] - ptm_pad2: [u8; 3], - ptm_owner: ::pthread_t, - ptm_waiters: *mut u8, - ptm_recursed: ::c_uint, - ptm_spare2: *mut ::c_void, - } - - pub struct pthread_mutexattr_t { - ptma_magic: ::c_uint, - ptma_private: *mut ::c_void, - } - - pub struct pthread_rwlockattr_t { - ptra_magic: ::c_uint, - ptra_private: *mut ::c_void, - } - - pub struct pthread_cond_t { - ptc_magic: ::c_uint, - ptc_lock: __pthread_spin_t, - ptc_waiters_first: *mut u8, - ptc_waiters_last: *mut u8, - ptc_mutex: *mut ::pthread_mutex_t, - ptc_private: *mut ::c_void, - } - - pub struct pthread_condattr_t { - ptca_magic: ::c_uint, - ptca_private: *mut ::c_void, - } - - pub struct pthread_rwlock_t { - ptr_magic: ::c_uint, - ptr_interlock: __pthread_spin_t, - ptr_rblocked_first: *mut u8, - ptr_rblocked_last: *mut u8, - ptr_wblocked_first: *mut u8, - ptr_wblocked_last: *mut u8, - ptr_nreaders: ::c_uint, - ptr_owner: ::pthread_t, - ptr_private: *mut ::c_void, - } - - pub struct pthread_spinlock_t { - pts_magic: ::c_uint, - pts_spin: ::pthread_spin_t, - pts_flags: ::c_int, - } - - pub struct kevent { - pub ident: ::uintptr_t, - pub filter: u32, - pub flags: u32, - pub fflags: u32, - pub data: i64, - pub udata: ::intptr_t, /* FIXME: NetBSD 10.0 will finally have same layout as other BSD */ - } - - pub struct dqblk { - pub dqb_bhardlimit: u32, - pub dqb_bsoftlimit: u32, - pub dqb_curblocks: u32, - pub dqb_ihardlimit: u32, - pub dqb_isoftlimit: u32, - pub dqb_curinodes: u32, - pub dqb_btime: i32, - pub dqb_itime: i32, - } - - pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *const ::c_void, - } - - pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, - } - - pub struct if_data { - pub ifi_type: ::c_uchar, - pub ifi_addrlen: ::c_uchar, - pub ifi_hdrlen: ::c_uchar, - pub ifi_link_state: ::c_int, - pub ifi_mtu: u64, - pub ifi_metric: u64, - pub ifi_baudrate: u64, - pub ifi_ipackets: u64, - pub ifi_ierrors: u64, - pub ifi_opackets: u64, - pub ifi_oerrors: u64, - pub ifi_collisions: u64, - pub ifi_ibytes: u64, - pub ifi_obytes: u64, - pub ifi_imcasts: u64, - pub ifi_omcasts: u64, - pub ifi_iqdrops: u64, - pub ifi_noproto: u64, - pub ifi_lastchange: ::timespec, - } - - pub struct if_msghdr { - pub ifm_msglen: ::c_ushort, - pub ifm_version: ::c_uchar, - pub ifm_type: ::c_uchar, - pub ifm_addrs: ::c_int, - pub ifm_flags: ::c_int, - pub ifm_index: ::c_ushort, - pub ifm_data: if_data, - } - - pub struct sockcred { - pub sc_pid: ::pid_t, - pub sc_uid: ::uid_t, - pub sc_euid: ::uid_t, - pub sc_gid: ::gid_t, - pub sc_egid: ::gid_t, - pub sc_ngroups: ::c_int, - pub sc_groups: [::gid_t; 1], - } - - pub struct uucred { - pub cr_unused: ::c_ushort, - pub cr_uid: ::uid_t, - pub cr_gid: ::gid_t, - pub cr_ngroups: ::c_int, - pub cr_groups: [::gid_t; NGROUPS_MAX as usize], - } - - pub struct unpcbid { - pub unp_pid: ::pid_t, - pub unp_euid: ::uid_t, - pub unp_egid: ::gid_t, - } - - pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, - pub sdl_type: u8, - pub sdl_nlen: u8, - pub sdl_alen: u8, - pub sdl_slen: u8, - pub sdl_data: [::c_char; 12], - } - - pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::c_uint, - } - - pub struct __exit_status { - pub e_termination: u16, - pub e_exit: u16, - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - _shm_internal: *mut ::c_void, - } - - pub struct utmp { - pub ut_line: [::c_char; UT_LINESIZE], - pub ut_name: [::c_char; UT_NAMESIZE], - pub ut_host: [::c_char; UT_HOSTSIZE], - pub ut_time: ::time_t - } - - pub struct lastlog { - pub ll_line: [::c_char; UT_LINESIZE], - pub ll_host: [::c_char; UT_HOSTSIZE], - pub ll_time: ::time_t - } - - pub struct timex { - pub modes: ::c_uint, - pub offset: ::c_long, - pub freq: ::c_long, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub status: ::c_int, - pub constant: ::c_long, - pub precision: ::c_long, - pub tolerance: ::c_long, - pub ppsfreq: ::c_long, - pub jitter: ::c_long, - pub shift: ::c_int, - pub stabil: ::c_long, - pub jitcnt: ::c_long, - pub calcnt: ::c_long, - pub errcnt: ::c_long, - pub stbcnt: ::c_long, - } - - pub struct ntptimeval { - pub time: ::timespec, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub tai: ::c_long, - pub time_state: ::c_int, - } - - // elf.h - - pub struct Elf32_Phdr { - pub p_type: Elf32_Word, - pub p_offset: Elf32_Off, - pub p_vaddr: Elf32_Addr, - pub p_paddr: Elf32_Addr, - pub p_filesz: Elf32_Word, - pub p_memsz: Elf32_Word, - pub p_flags: Elf32_Word, - pub p_align: Elf32_Word, - } - - pub struct Elf64_Phdr { - pub p_type: Elf64_Word, - pub p_flags: Elf64_Word, - pub p_offset: Elf64_Off, - pub p_vaddr: Elf64_Addr, - pub p_paddr: Elf64_Addr, - pub p_filesz: Elf64_Xword, - pub p_memsz: Elf64_Xword, - pub p_align: Elf64_Xword, - } - - pub struct Aux32Info { - pub a_type: Elf32_Word, - pub a_v: Elf32_Word, - } - - pub struct Aux64Info { - pub a_type: Elf64_Word, - pub a_v: Elf64_Xword, - } - - // link.h - - pub struct dl_phdr_info { - pub dlpi_addr: Elf_Addr, - pub dlpi_name: *const ::c_char, - pub dlpi_phdr: *const Elf_Phdr, - pub dlpi_phnum: Elf_Half, - pub dlpi_adds: ::c_ulonglong, - pub dlpi_subs: ::c_ulonglong, - pub dlpi_tls_modid: usize, - pub dlpi_tls_data: *mut ::c_void, - } - - pub struct _cpuset { - bits: [u32; 0] - } - - pub struct accept_filter_arg { - pub af_name: [::c_char; 16], - af_arg: [[::c_char; 10]; 24], - } - - pub struct ki_sigset_t { - pub __bits: [u32; 4], - } - - pub struct kinfo_proc2 { - pub p_forw: u64, - pub p_back: u64, - pub p_paddr: u64, - pub p_addr: u64, - pub p_fd: u64, - pub p_cwdi: u64, - pub p_stats: u64, - pub p_limit: u64, - pub p_vmspace: u64, - pub p_sigacts: u64, - pub p_sess: u64, - pub p_tsess: u64, - pub p_ru: u64, - pub p_eflag: i32, - pub p_exitsig: i32, - pub p_flag: i32, - pub p_pid: i32, - pub p_ppid: i32, - pub p_sid: i32, - pub p__pgid: i32, - pub p_tpgid: i32, - pub p_uid: u32, - pub p_ruid: u32, - pub p_gid: u32, - pub p_rgid: u32, - pub p_groups: [u32; KI_NGROUPS as usize], - pub p_ngroups: i16, - pub p_jobc: i16, - pub p_tdev: u32, - pub p_estcpu: u32, - pub p_rtime_sec: u32, - pub p_rtime_usec: u32, - pub p_cpticks: i32, - pub p_pctcpu: u32, - pub p_swtime: u32, - pub p_slptime: u32, - pub p_schedflags: i32, - pub p_uticks: u64, - pub p_sticks: u64, - pub p_iticks: u64, - pub p_tracep: u64, - pub p_traceflag: i32, - pub p_holdcnt: i32, - pub p_siglist: ki_sigset_t, - pub p_sigmask: ki_sigset_t, - pub p_sigignore: ki_sigset_t, - pub p_sigcatch: ki_sigset_t, - pub p_stat: i8, - pub p_priority: u8, - pub p_usrpri: u8, - pub p_nice: u8, - pub p_xstat: u16, - pub p_acflag: u16, - pub p_comm: [::c_char; KI_MAXCOMLEN as usize], - pub p_wmesg: [::c_char; KI_WMESGLEN as usize], - pub p_wchan: u64, - pub p_login: [::c_char; KI_MAXLOGNAME as usize], - pub p_vm_rssize: i32, - pub p_vm_tsize: i32, - pub p_vm_dsize: i32, - pub p_vm_ssize: i32, - pub p_uvalid: i64, - pub p_ustart_sec: u32, - pub p_ustart_usec: u32, - pub p_uutime_sec: u32, - pub p_uutime_usec: u32, - pub p_ustime_sec: u32, - pub p_ustime_usec: u32, - pub p_uru_maxrss: u64, - pub p_uru_ixrss: u64, - pub p_uru_idrss: u64, - pub p_uru_isrss: u64, - pub p_uru_minflt: u64, - pub p_uru_majflt: u64, - pub p_uru_nswap: u64, - pub p_uru_inblock: u64, - pub p_uru_oublock: u64, - pub p_uru_msgsnd: u64, - pub p_uru_msgrcv: u64, - pub p_uru_nsignals: u64, - pub p_uru_nvcsw: u64, - pub p_uru_nivcsw: u64, - pub p_uctime_sec: u32, - pub p_uctime_usec: u32, - pub p_cpuid: u64, - pub p_realflag: u64, - pub p_nlwps: u64, - pub p_nrlwps: u64, - pub p_realstat: u64, - pub p_svuid: u32, - pub p_svgid: u32, - pub p_ename: [::c_char; KI_MAXEMULLEN as usize], - pub p_vm_vsize: i64, - pub p_vm_msize: i64, - } - - pub struct kinfo_lwp { - pub l_forw: u64, - pub l_back: u64, - pub l_laddr: u64, - pub l_addr: u64, - pub l_lid: i32, - pub l_flag: i32, - pub l_swtime: u32, - pub l_slptime: u32, - pub l_schedflags: i32, - pub l_holdcnt: i32, - pub l_priority: u8, - pub l_usrpri: u8, - pub l_stat: i8, - l_pad1: i8, - l_pad2: i32, - pub l_wmesg: [::c_char; KI_WMESGLEN as usize], - pub l_wchan: u64, - pub l_cpuid: u64, - pub l_rtime_sec: u32, - pub l_rtime_usec: u32, - pub l_cpticks: u32, - pub l_pctcpu: u32, - pub l_pid: u32, - pub l_name: [::c_char; KI_LNAMELEN as usize], - } - - pub struct kinfo_vmentry { - pub kve_start: u64, - pub kve_end: u64, - pub kve_offset: u64, - pub kve_type: u32, - pub kve_flags: u32, - pub kve_count: u32, - pub kve_wired_count: u32, - pub kve_advice: u32, - pub kve_attributes: u32, - pub kve_protection: u32, - pub kve_max_protection: u32, - pub kve_ref_count: u32, - pub kve_inheritance: u32, - pub kve_vn_fileid: u64, - pub kve_vn_size: u64, - pub kve_vn_fsid: u64, - pub kve_vn_rdev: u64, - pub kve_vn_type: u32, - pub kve_vn_mode: u32, - pub kve_path: [[::c_char; 32]; 32], - } - - pub struct __c_anonymous_posix_spawn_fae_open { - pub path: *mut ::c_char, - pub oflag: ::c_int, - pub mode: ::mode_t, - } - - pub struct __c_anonymous_posix_spawn_fae_dup2 { - pub newfildes: ::c_int, - } - - pub struct posix_spawnattr_t { - pub sa_flags: ::c_short, - pub sa_pgroup: ::pid_t, - pub sa_schedparam: ::sched_param, - pub sa_schedpolicy: ::c_int, - pub sa_sigdefault: sigset_t, - pub sa_sigmask: sigset_t, - } - - pub struct posix_spawn_file_actions_entry_t { - pub fae_action: fae_action, - pub fae_fildes: ::c_int, - #[cfg(libc_union)] - pub fae_data: __c_anonymous_posix_spawn_fae, - } - - pub struct posix_spawn_file_actions_t { - pub size: ::c_uint, - pub len: ::c_uint, - #[cfg(libc_union)] - pub fae: *mut posix_spawn_file_actions_entry_t, - } - - pub struct ptrace_lwpinfo { - pub pl_lwpid: lwpid_t, - pub pl_event: ::c_int, - } - - pub struct ptrace_lwpstatus { - pub pl_lwpid: lwpid_t, - pub pl_sigpend: sigset_t, - pub pl_sigmask: sigset_t, - pub pl_name: [::c_char; 20], - pub pl_private: *mut ::c_void, - } - - pub struct ptrace_siginfo { - pub psi_siginfo: siginfo_t, - pub psi_lwpid: lwpid_t, - } - - pub struct ptrace_event { - pub pe_set_event: ::c_int, - } - - pub struct sysctldesc { - pub descr_num: i32, - pub descr_ver: u32, - pub descr_len: u32, - pub descr_str: [::c_char; 1], - } - - pub struct ifreq { - pub _priv: [[::c_char; 6]; 24], - } - - pub struct ifconf { - pub ifc_len: ::c_int, - #[cfg(libc_union)] - pub ifc_ifcu: __c_anonymous_ifc_ifcu, - } - - 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 tcp_snd_wscale: u8, - pub tcp_rcv_wscale: u8, - 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, - pub __tcpi_last_data_sent: u32, - pub __tcpi_last_ack_sent: u32, - pub tcpi_last_data_recv: u32, - pub __tcpi_last_ack_recv: u32, - 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_snd_wnd: u32, - pub tcpi_snd_bwnd: u32, - pub tcpi_snd_nxt: u32, - pub tcpi_rcv_nxt: u32, - pub tcpi_toe_tid: u32, - pub tcpi_snd_rexmitpack: u32, - pub tcpi_rcv_ooopack: u32, - pub tcpi_snd_zerowin: u32, - pub __tcpi_pad: [u32; 26], - } -} - -s_no_extra_traits! { - - pub struct utmpx { - pub ut_name: [::c_char; _UTX_USERSIZE], - pub ut_id: [::c_char; _UTX_IDSIZE], - pub ut_line: [::c_char; _UTX_LINESIZE], - pub ut_host: [::c_char; _UTX_HOSTSIZE], - pub ut_session: u16, - pub ut_type: u16, - pub ut_pid: ::pid_t, - pub ut_exit: __exit_status, // FIXME: when anonymous struct are supported - pub ut_ss: sockaddr_storage, - pub ut_tv: ::timeval, - pub ut_pad: [u8; _UTX_PADSIZE], - } - - pub struct lastlogx { - pub ll_tv: ::timeval, - pub ll_line: [::c_char; _UTX_LINESIZE], - pub ll_host: [::c_char; _UTX_HOSTSIZE], - pub ll_ss: sockaddr_storage, - } - - pub struct in_pktinfo { - pub ipi_addr: ::in_addr, - pub ipi_ifindex: ::c_uint, - } - - pub struct arphdr { - pub ar_hrd: u16, - pub ar_pro: u16, - pub ar_hln: u8, - pub ar_pln: u8, - pub ar_op: u16, - } - - pub struct in_addr { - pub s_addr: ::in_addr_t, - } - - pub struct ip_mreq { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct sockaddr_in { - pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [i8; 8], - } - - pub struct dirent { - pub d_fileno: ::ino_t, - pub d_reclen: u16, - pub d_namlen: u16, - pub d_type: u8, - pub d_name: [::c_char; 512], - } - - pub struct statvfs { - pub f_flag: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_iosize: ::c_ulong, - - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_bresvd: ::fsblkcnt_t, - - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fresvd: ::fsfilcnt_t, - - pub f_syncreads: u64, - pub f_syncwrites: u64, - - pub f_asyncreads: u64, - pub f_asyncwrites: u64, - - pub f_fsidx: ::fsid_t, - pub f_fsid: ::c_ulong, - pub f_namemax: ::c_ulong, - pub f_owner: ::uid_t, - - pub f_spare: [u32; 4], - - pub f_fstypename: [::c_char; 32], - pub f_mntonname: [::c_char; 1024], - pub f_mntfromname: [::c_char; 1024], - } - - pub struct sockaddr_storage { - pub ss_len: u8, - pub ss_family: ::sa_family_t, - __ss_pad1: [u8; 6], - __ss_pad2: i64, - __ss_pad3: [u8; 112], - } - - pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - __unused1: *mut ::c_void, //actually a function pointer - pub sigev_notify_attributes: *mut ::c_void - } - - #[cfg(libc_union)] - pub union __c_anonymous_posix_spawn_fae { - pub open: __c_anonymous_posix_spawn_fae_open, - pub dup2: __c_anonymous_posix_spawn_fae_dup2, - } - - #[cfg(libc_union)] - pub union __c_anonymous_ifc_ifcu { - pub ifcu_buf: *mut ::c_void, - pub ifcu_req: *mut ifreq, - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - && self.ut_pid == other.ut_pid - && self.ut_name == other.ut_name - && self.ut_line == other.ut_line - && self.ut_id == other.ut_id - && self.ut_exit == other.ut_exit - && self.ut_session == other.ut_session - && self.ut_tv == other.ut_tv - && self.ut_ss == other.ut_ss - && self - .ut_pad - .iter() - .zip(other.ut_pad.iter()) - .all(|(a,b)| a == b) - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for utmpx {} - - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utmpx") - .field("ut_name", &self.ut_name) - .field("ut_id", &self.ut_id) - .field("ut_line", &self.ut_line) - // FIXME .field("ut_host", &self.ut_host) - .field("ut_session", &self.ut_session) - .field("ut_type", &self.ut_type) - .field("ut_pid", &self.ut_pid) - .field("ut_exit", &self.ut_exit) - .field("ut_ss", &self.ut_ss) - .field("ut_tv", &self.ut_tv) - // FIXME .field("ut_pad", &self.ut_pad) - .finish() - } - } - - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_name.hash(state); - self.ut_type.hash(state); - self.ut_pid.hash(state); - self.ut_line.hash(state); - self.ut_id.hash(state); - self.ut_host.hash(state); - self.ut_exit.hash(state); - self.ut_session.hash(state); - self.ut_tv.hash(state); - self.ut_ss.hash(state); - self.ut_pad.hash(state); - } - } - - impl PartialEq for lastlogx { - fn eq(&self, other: &lastlogx) -> bool { - self.ll_tv == other.ll_tv - && self.ll_line == other.ll_line - && self.ll_ss == other.ll_ss - && self - .ll_host - .iter() - .zip(other.ll_host.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for lastlogx {} - - impl ::fmt::Debug for lastlogx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("lastlogx") - .field("ll_tv", &self.ll_tv) - .field("ll_line", &self.ll_line) - // FIXME.field("ll_host", &self.ll_host) - .field("ll_ss", &self.ll_ss) - .finish() - } - } - - impl ::hash::Hash for lastlogx { - fn hash(&self, state: &mut H) { - self.ll_tv.hash(state); - self.ll_line.hash(state); - self.ll_host.hash(state); - self.ll_ss.hash(state); - } - } - - impl PartialEq for in_pktinfo { - fn eq(&self, other: &in_pktinfo) -> bool { - self.ipi_addr == other.ipi_addr - && self.ipi_ifindex == other.ipi_ifindex - } - } - impl Eq for in_pktinfo {} - impl ::fmt::Debug for in_pktinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("in_pktinfo") - .field("ipi_addr", &self.ipi_addr) - .field("ipi_ifindex", &self.ipi_ifindex) - .finish() - } - } - impl ::hash::Hash for in_pktinfo { - fn hash(&self, state: &mut H) { - self.ipi_addr.hash(state); - self.ipi_ifindex.hash(state); - } - } - - impl PartialEq for arphdr { - fn eq(&self, other: &arphdr) -> bool { - self.ar_hrd == other.ar_hrd - && self.ar_pro == other.ar_pro - && self.ar_hln == other.ar_hln - && self.ar_pln == other.ar_pln - && self.ar_op == other.ar_op - } - } - impl Eq for arphdr {} - impl ::fmt::Debug for arphdr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let ar_hrd = self.ar_hrd; - let ar_pro = self.ar_pro; - let ar_op = self.ar_op; - f.debug_struct("arphdr") - .field("ar_hrd", &ar_hrd) - .field("ar_pro", &ar_pro) - .field("ar_hln", &self.ar_hln) - .field("ar_pln", &self.ar_pln) - .field("ar_op", &ar_op) - .finish() - } - } - impl ::hash::Hash for arphdr { - fn hash(&self, state: &mut H) { - let ar_hrd = self.ar_hrd; - let ar_pro = self.ar_pro; - let ar_op = self.ar_op; - ar_hrd.hash(state); - ar_pro.hash(state); - self.ar_hln.hash(state); - self.ar_pln.hash(state); - ar_op.hash(state); - } - } - - impl PartialEq for in_addr { - fn eq(&self, other: &in_addr) -> bool { - self.s_addr == other.s_addr - } - } - impl Eq for in_addr {} - impl ::fmt::Debug for in_addr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let s_addr = self.s_addr; - f.debug_struct("in_addr") - .field("s_addr", &s_addr) - .finish() - } - } - impl ::hash::Hash for in_addr { - fn hash(&self, state: &mut H) { - let s_addr = self.s_addr; - s_addr.hash(state); - } - } - - impl PartialEq for ip_mreq { - fn eq(&self, other: &ip_mreq) -> bool { - self.imr_multiaddr == other.imr_multiaddr - && self.imr_interface == other.imr_interface - } - } - impl Eq for ip_mreq {} - impl ::fmt::Debug for ip_mreq { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ip_mreq") - .field("imr_multiaddr", &self.imr_multiaddr) - .field("imr_interface", &self.imr_interface) - .finish() - } - } - impl ::hash::Hash for ip_mreq { - fn hash(&self, state: &mut H) { - self.imr_multiaddr.hash(state); - self.imr_interface.hash(state); - } - } - - impl PartialEq for sockaddr_in { - fn eq(&self, other: &sockaddr_in) -> bool { - self.sin_len == other.sin_len - && self.sin_family == other.sin_family - && self.sin_port == other.sin_port - && self.sin_addr == other.sin_addr - && self.sin_zero == other.sin_zero - } - } - impl Eq for sockaddr_in {} - impl ::fmt::Debug for sockaddr_in { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_in") - .field("sin_len", &self.sin_len) - .field("sin_family", &self.sin_family) - .field("sin_port", &self.sin_port) - .field("sin_addr", &self.sin_addr) - .field("sin_zero", &self.sin_zero) - .finish() - } - } - impl ::hash::Hash for sockaddr_in { - fn hash(&self, state: &mut H) { - self.sin_len.hash(state); - self.sin_family.hash(state); - self.sin_port.hash(state); - self.sin_addr.hash(state); - self.sin_zero.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_fileno == other.d_fileno - && self.d_reclen == other.d_reclen - && self.d_namlen == other.d_namlen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_fileno", &self.d_fileno) - .field("d_reclen", &self.d_reclen) - .field("d_namlen", &self.d_namlen) - .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_fileno.hash(state); - self.d_reclen.hash(state); - self.d_namlen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for statvfs { - fn eq(&self, other: &statvfs) -> bool { - self.f_flag == other.f_flag - && self.f_bsize == other.f_bsize - && self.f_frsize == other.f_frsize - && self.f_iosize == other.f_iosize - && self.f_blocks == other.f_blocks - && self.f_bfree == other.f_bfree - && self.f_bavail == other.f_bavail - && self.f_bresvd == other.f_bresvd - && self.f_files == other.f_files - && self.f_ffree == other.f_ffree - && self.f_favail == other.f_favail - && self.f_fresvd == other.f_fresvd - && self.f_syncreads == other.f_syncreads - && self.f_syncwrites == other.f_syncwrites - && self.f_asyncreads == other.f_asyncreads - && self.f_asyncwrites == other.f_asyncwrites - && self.f_fsidx == other.f_fsidx - && self.f_fsid == other.f_fsid - && self.f_namemax == other.f_namemax - && self.f_owner == other.f_owner - && self.f_spare == other.f_spare - && self.f_fstypename == other.f_fstypename - && self - .f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a,b)| a == b) - && self - .f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for statvfs {} - impl ::fmt::Debug for statvfs { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("statvfs") - .field("f_flag", &self.f_flag) - .field("f_bsize", &self.f_bsize) - .field("f_frsize", &self.f_frsize) - .field("f_iosize", &self.f_iosize) - .field("f_blocks", &self.f_blocks) - .field("f_bfree", &self.f_bfree) - .field("f_bavail", &self.f_bavail) - .field("f_bresvd", &self.f_bresvd) - .field("f_files", &self.f_files) - .field("f_ffree", &self.f_ffree) - .field("f_favail", &self.f_favail) - .field("f_fresvd", &self.f_fresvd) - .field("f_syncreads", &self.f_syncreads) - .field("f_syncwrites", &self.f_syncwrites) - .field("f_asyncreads", &self.f_asyncreads) - .field("f_asyncwrites", &self.f_asyncwrites) - .field("f_fsidx", &self.f_fsidx) - .field("f_fsid", &self.f_fsid) - .field("f_namemax", &self.f_namemax) - .field("f_owner", &self.f_owner) - .field("f_spare", &self.f_spare) - .field("f_fstypename", &self.f_fstypename) - // FIXME: .field("f_mntonname", &self.f_mntonname) - // FIXME: .field("f_mntfromname", &self.f_mntfromname) - .finish() - } - } - impl ::hash::Hash for statvfs { - fn hash(&self, state: &mut H) { - self.f_flag.hash(state); - self.f_bsize.hash(state); - self.f_frsize.hash(state); - self.f_iosize.hash(state); - self.f_blocks.hash(state); - self.f_bfree.hash(state); - self.f_bavail.hash(state); - self.f_bresvd.hash(state); - self.f_files.hash(state); - self.f_ffree.hash(state); - self.f_favail.hash(state); - self.f_fresvd.hash(state); - self.f_syncreads.hash(state); - self.f_syncwrites.hash(state); - self.f_asyncreads.hash(state); - self.f_asyncwrites.hash(state); - self.f_fsidx.hash(state); - self.f_fsid.hash(state); - self.f_namemax.hash(state); - self.f_owner.hash(state); - self.f_spare.hash(state); - self.f_fstypename.hash(state); - self.f_mntonname.hash(state); - self.f_mntfromname.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_len == other.ss_len - && self.ss_family == other.ss_family - && self.__ss_pad1 == other.__ss_pad1 - && self.__ss_pad2 == other.__ss_pad2 - && self - .__ss_pad3 - .iter() - .zip(other.__ss_pad3.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &self.__ss_pad1) - .field("__ss_pad2", &self.__ss_pad2) - // FIXME: .field("__ss_pad3", &self.__ss_pad3) - .finish() - } - } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_len.hash(state); - self.ss_family.hash(state); - self.__ss_pad1.hash(state); - self.__ss_pad2.hash(state); - self.__ss_pad3.hash(state); - } - } - - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_notify == other.sigev_notify - && self.sigev_signo == other.sigev_signo - && self.sigev_value == other.sigev_value - && self.sigev_notify_attributes - == other.sigev_notify_attributes - } - } - impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sigevent") - .field("sigev_notify", &self.sigev_notify) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_value", &self.sigev_value) - .field("sigev_notify_attributes", - &self.sigev_notify_attributes) - .finish() - } - } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_notify.hash(state); - self.sigev_signo.hash(state); - self.sigev_value.hash(state); - self.sigev_notify_attributes.hash(state); - } - } - - #[cfg(libc_union)] - impl Eq for __c_anonymous_posix_spawn_fae {} - - #[cfg(libc_union)] - impl PartialEq for __c_anonymous_posix_spawn_fae { - fn eq(&self, other: &__c_anonymous_posix_spawn_fae) -> bool { - unsafe { - self.open == other.open - || self.dup2 == other.dup2 - } - } - } - - #[cfg(libc_union)] - impl ::fmt::Debug for __c_anonymous_posix_spawn_fae { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - unsafe { - f.debug_struct("__c_anonymous_posix_fae") - .field("open", &self.open) - .field("dup2", &self.dup2) - .finish() - } - } - } - - #[cfg(libc_union)] - impl ::hash::Hash for __c_anonymous_posix_spawn_fae { - fn hash(&self, state: &mut H) { - unsafe { - self.open.hash(state); - self.dup2.hash(state); - } - } - } - - #[cfg(libc_union)] - impl Eq for __c_anonymous_ifc_ifcu {} - - #[cfg(libc_union)] - impl PartialEq for __c_anonymous_ifc_ifcu { - fn eq(&self, other: &__c_anonymous_ifc_ifcu) -> bool { - unsafe { - self.ifcu_buf == other.ifcu_buf - || self.ifcu_req == other.ifcu_req - } - } - } - - #[cfg(libc_union)] - impl ::fmt::Debug for __c_anonymous_ifc_ifcu { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - unsafe { - f.debug_struct("__c_anonymous_ifc_ifcu") - .field("ifcu_buf", &self.ifcu_buf) - .field("ifcu_req", &self.ifcu_req) - .finish() - } - } - } - - #[cfg(libc_union)] - impl ::hash::Hash for __c_anonymous_ifc_ifcu { - fn hash(&self, state: &mut H) { - unsafe { - self.ifcu_buf.hash(state); - self.ifcu_req.hash(state); - } - } - } - } -} - -pub const AT_FDCWD: ::c_int = -100; -pub const AT_EACCESS: ::c_int = 0x100; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x200; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; -pub const AT_REMOVEDIR: ::c_int = 0x800; - -pub const AT_NULL: ::c_int = 0; -pub const AT_IGNORE: ::c_int = 1; -pub const AT_EXECFD: ::c_int = 2; -pub const AT_PHDR: ::c_int = 3; -pub const AT_PHENT: ::c_int = 4; -pub const AT_PHNUM: ::c_int = 5; -pub const AT_PAGESZ: ::c_int = 6; -pub const AT_BASE: ::c_int = 7; -pub const AT_FLAGS: ::c_int = 8; -pub const AT_ENTRY: ::c_int = 9; -pub const AT_DCACHEBSIZE: ::c_int = 10; -pub const AT_ICACHEBSIZE: ::c_int = 11; -pub const AT_UCACHEBSIZE: ::c_int = 12; -pub const AT_STACKBASE: ::c_int = 13; -pub const AT_EUID: ::c_int = 2000; -pub const AT_RUID: ::c_int = 2001; -pub const AT_EGID: ::c_int = 2002; -pub const AT_RGID: ::c_int = 2003; -pub const AT_SUN_LDELF: ::c_int = 2004; -pub const AT_SUN_LDSHDR: ::c_int = 2005; -pub const AT_SUN_LDNAME: ::c_int = 2006; -pub const AT_SUN_LDPGSIZE: ::c_int = 2007; -pub const AT_SUN_PLATFORM: ::c_int = 2008; -pub const AT_SUN_HWCAP: ::c_int = 2009; -pub const AT_SUN_IFLUSH: ::c_int = 2010; -pub const AT_SUN_CPU: ::c_int = 2011; -pub const AT_SUN_EMUL_ENTRY: ::c_int = 2012; -pub const AT_SUN_EMUL_EXECFD: ::c_int = 2013; -pub const AT_SUN_EXECNAME: ::c_int = 2014; - -pub const EXTATTR_NAMESPACE_USER: ::c_int = 1; -pub const EXTATTR_NAMESPACE_SYSTEM: ::c_int = 2; - -pub const LC_COLLATE_MASK: ::c_int = 1 << ::LC_COLLATE; -pub const LC_CTYPE_MASK: ::c_int = 1 << ::LC_CTYPE; -pub const LC_MONETARY_MASK: ::c_int = 1 << ::LC_MONETARY; -pub const LC_NUMERIC_MASK: ::c_int = 1 << ::LC_NUMERIC; -pub const LC_TIME_MASK: ::c_int = 1 << ::LC_TIME; -pub const LC_MESSAGES_MASK: ::c_int = 1 << ::LC_MESSAGES; -pub const LC_ALL_MASK: ::c_int = !0; - -pub const ERA: ::nl_item = 52; -pub const ERA_D_FMT: ::nl_item = 53; -pub const ERA_D_T_FMT: ::nl_item = 54; -pub const ERA_T_FMT: ::nl_item = 55; -pub const ALT_DIGITS: ::nl_item = 56; - -pub const O_CLOEXEC: ::c_int = 0x400000; -pub const O_ALT_IO: ::c_int = 0x40000; -pub const O_NOSIGPIPE: ::c_int = 0x1000000; -pub const O_SEARCH: ::c_int = 0x800000; -pub const O_DIRECTORY: ::c_int = 0x200000; -pub const O_DIRECT: ::c_int = 0x00080000; -pub const O_RSYNC: ::c_int = 0x00020000; - -pub const MS_SYNC: ::c_int = 0x4; -pub const MS_INVALIDATE: ::c_int = 0x2; - -// Here because they are not present on OpenBSD -// (https://github.com/openbsd/src/blob/HEAD/sys/sys/resource.h) -pub const RLIMIT_SBSIZE: ::c_int = 9; -pub const RLIMIT_AS: ::c_int = 10; -pub const RLIMIT_NTHR: ::c_int = 11; - -#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::c_int = 12; - -pub const EIDRM: ::c_int = 82; -pub const ENOMSG: ::c_int = 83; -pub const EOVERFLOW: ::c_int = 84; -pub const EILSEQ: ::c_int = 85; -pub const ENOTSUP: ::c_int = 86; -pub const ECANCELED: ::c_int = 87; -pub const EBADMSG: ::c_int = 88; -pub const ENODATA: ::c_int = 89; -pub const ENOSR: ::c_int = 90; -pub const ENOSTR: ::c_int = 91; -pub const ETIME: ::c_int = 92; -pub const ENOATTR: ::c_int = 93; -pub const EMULTIHOP: ::c_int = 94; -pub const ENOLINK: ::c_int = 95; -pub const EPROTO: ::c_int = 96; -pub const EOWNERDEAD: ::c_int = 97; -pub const ENOTRECOVERABLE: ::c_int = 98; -#[deprecated( - since = "0.2.143", - note = "This value will always match the highest defined error number \ - and thus is not stable. \ - See #3040 for more info." -)] -pub const ELAST: ::c_int = 98; - -pub const F_DUPFD_CLOEXEC: ::c_int = 12; -pub const F_CLOSEM: ::c_int = 10; -pub const F_GETNOSIGPIPE: ::c_int = 13; -pub const F_SETNOSIGPIPE: ::c_int = 14; -pub const F_MAXFD: ::c_int = 11; -pub const F_GETPATH: ::c_int = 15; - -pub const FUTEX_WAIT: ::c_int = 0; -pub const FUTEX_WAKE: ::c_int = 1; -pub const FUTEX_FD: ::c_int = 2; -pub const FUTEX_REQUEUE: ::c_int = 3; -pub const FUTEX_CMP_REQUEUE: ::c_int = 4; -pub const FUTEX_WAKE_OP: ::c_int = 5; -pub const FUTEX_LOCK_PI: ::c_int = 6; -pub const FUTEX_UNLOCK_PI: ::c_int = 7; -pub const FUTEX_TRYLOCK_PI: ::c_int = 8; -pub const FUTEX_WAIT_BITSET: ::c_int = 9; -pub const FUTEX_WAKE_BITSET: ::c_int = 10; -pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11; -pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12; -pub const FUTEX_PRIVATE_FLAG: ::c_int = 1 << 7; -pub const FUTEX_CLOCK_REALTIME: ::c_int = 1 << 8; -pub const FUTEX_CMD_MASK: ::c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); -pub const FUTEX_WAITERS: u32 = 1 << 31; -pub const FUTEX_OWNER_DIED: u32 = 1 << 30; -pub const FUTEX_SYNCOBJ_1: u32 = 1 << 29; -pub const FUTEX_SYNCOBJ_0: u32 = 1 << 28; -pub const FUTEX_TID_MASK: u32 = (1 << 28) - 1; -pub const FUTEX_BITSET_MATCH_ANY: u32 = !0; - -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; -pub const IP_RECVIF: ::c_int = 20; -pub const IP_PKTINFO: ::c_int = 25; -pub const IP_RECVPKTINFO: ::c_int = 26; -pub const IPV6_JOIN_GROUP: ::c_int = 12; -pub const IPV6_LEAVE_GROUP: ::c_int = 13; - -pub const TCP_KEEPIDLE: ::c_int = 3; -pub const TCP_KEEPINTVL: ::c_int = 5; -pub const TCP_KEEPCNT: ::c_int = 6; -pub const TCP_KEEPINIT: ::c_int = 7; -pub const TCP_INFO: ::c_int = 9; -pub const TCP_MD5SIG: ::c_int = 0x10; -pub const TCP_CONGCTL: ::c_int = 0x20; - -pub const SOCK_CONN_DGRAM: ::c_int = 6; -pub const SOCK_DCCP: ::c_int = SOCK_CONN_DGRAM; -pub const SOCK_NOSIGPIPE: ::c_int = 0x40000000; -pub const SOCK_FLAGS_MASK: ::c_int = 0xf0000000; - -pub const SO_SNDTIMEO: ::c_int = 0x100b; -pub const SO_RCVTIMEO: ::c_int = 0x100c; -pub const SO_ACCEPTFILTER: ::c_int = 0x1000; -pub const SO_TIMESTAMP: ::c_int = 0x2000; -pub const SO_OVERFLOWED: ::c_int = 0x1009; -pub const SO_NOHEADER: ::c_int = 0x100a; - -// http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/un.h?annotate -pub const LOCAL_OCREDS: ::c_int = 0x0001; // pass credentials to receiver -pub const LOCAL_CONNWAIT: ::c_int = 0x0002; // connects block until accepted -pub const LOCAL_PEEREID: ::c_int = 0x0003; // get peer identification -pub const LOCAL_CREDS: ::c_int = 0x0004; // pass credentials to receiver - -// https://github.com/NetBSD/src/blob/trunk/sys/net/if.h#L373 -pub const IFF_UP: ::c_int = 0x0001; // interface is up -pub const IFF_BROADCAST: ::c_int = 0x0002; // broadcast address valid -pub const IFF_DEBUG: ::c_int = 0x0004; // turn on debugging -pub const IFF_LOOPBACK: ::c_int = 0x0008; // is a loopback net -pub const IFF_POINTOPOINT: ::c_int = 0x0010; // interface is point-to-point link -pub const IFF_NOTRAILERS: ::c_int = 0x0020; // avoid use of trailers -pub const IFF_RUNNING: ::c_int = 0x0040; // resources allocated -pub const IFF_NOARP: ::c_int = 0x0080; // no address resolution protocol -pub const IFF_PROMISC: ::c_int = 0x0100; // receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x0200; // receive all multicast packets -pub const IFF_OACTIVE: ::c_int = 0x0400; // transmission in progress -pub const IFF_SIMPLEX: ::c_int = 0x0800; // can't hear own transmissions -pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit -pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit -pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit -pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast - -// sys/netinet/in.h -// Protocols (RFC 1700) -// NOTE: These are in addition to the constants defined in src/unix/mod.rs - -// IPPROTO_IP defined in src/unix/mod.rs -/// Hop-by-hop option header -pub const IPPROTO_HOPOPTS: ::c_int = 0; -// IPPROTO_ICMP defined in src/unix/mod.rs -/// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; -/// gateway^2 (deprecated) -pub const IPPROTO_GGP: ::c_int = 3; -/// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; -// IPPROTO_TCP defined in src/unix/mod.rs -/// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; -/// pup -pub const IPPROTO_PUP: ::c_int = 12; -// IPPROTO_UDP defined in src/unix/mod.rs -/// xns idp -pub const IPPROTO_IDP: ::c_int = 22; -/// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; -/// DCCP -pub const IPPROTO_DCCP: ::c_int = 33; -// IPPROTO_IPV6 defined in src/unix/mod.rs -/// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; -/// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; -/// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; -/// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; -/// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; -/// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; -/// IP Mobility RFC 2004 -pub const IPPROTO_MOBILE: ::c_int = 55; -/// IPv6 ICMP -pub const IPPROTO_IPV6_ICMP: ::c_int = 58; -// IPPROTO_ICMPV6 defined in src/unix/mod.rs -/// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; -/// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; -/// ISO cnlp -pub const IPPROTO_EON: ::c_int = 80; -/// Ethernet-in-IP -pub const IPPROTO_ETHERIP: ::c_int = 97; -/// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; -/// Protocol indep. multicast -pub const IPPROTO_PIM: ::c_int = 103; -/// IP Payload Comp. Protocol -pub const IPPROTO_IPCOMP: ::c_int = 108; -/// VRRP RFC 2338 -pub const IPPROTO_VRRP: ::c_int = 112; -/// Common Address Resolution Protocol -pub const IPPROTO_CARP: ::c_int = 112; -/// L2TPv3 -pub const IPPROTO_L2TP: ::c_int = 115; -/// SCTP -pub const IPPROTO_SCTP: ::c_int = 132; -/// PFSYNC -pub const IPPROTO_PFSYNC: ::c_int = 240; -pub const IPPROTO_MAX: ::c_int = 256; - -/// last return value of *_input(), meaning "all job for this pkt is done". -pub const IPPROTO_DONE: ::c_int = 257; - -/// sysctl placeholder for (FAST_)IPSEC -pub const CTL_IPPROTO_IPSEC: ::c_int = 258; - -pub const AF_OROUTE: ::c_int = 17; -pub const AF_ARP: ::c_int = 28; -pub const pseudo_AF_KEY: ::c_int = 29; -pub const pseudo_AF_HDRCMPLT: ::c_int = 30; -pub const AF_BLUETOOTH: ::c_int = 31; -pub const AF_IEEE80211: ::c_int = 32; -pub const AF_MPLS: ::c_int = 33; -pub const AF_ROUTE: ::c_int = 34; -pub const NET_RT_DUMP: ::c_int = 1; -pub const NET_RT_FLAGS: ::c_int = 2; -pub const NET_RT_OOOIFLIST: ::c_int = 3; -pub const NET_RT_OOIFLIST: ::c_int = 4; -pub const NET_RT_OIFLIST: ::c_int = 5; -pub const NET_RT_IFLIST: ::c_int = 6; -pub const NET_RT_MAXID: ::c_int = 7; - -pub const PF_OROUTE: ::c_int = AF_OROUTE; -pub const PF_ARP: ::c_int = AF_ARP; -pub const PF_KEY: ::c_int = pseudo_AF_KEY; -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -pub const PF_MPLS: ::c_int = AF_MPLS; -pub const PF_ROUTE: ::c_int = AF_ROUTE; - -pub const MSG_NBIO: ::c_int = 0x1000; -pub const MSG_WAITFORONE: ::c_int = 0x2000; -pub const MSG_NOTIFICATION: ::c_int = 0x4000; - -pub const SCM_TIMESTAMP: ::c_int = 0x08; -pub const SCM_CREDS: ::c_int = 0x10; - -pub const O_DSYNC: ::c_int = 0x10000; - -pub const MAP_RENAME: ::c_int = 0x20; -pub const MAP_NORESERVE: ::c_int = 0x40; -pub const MAP_HASSEMAPHORE: ::c_int = 0x200; -pub const MAP_WIRED: ::c_int = 0x800; -pub const MAP_STACK: ::c_int = 0x2000; -// map alignment aliases for MAP_ALIGNED -pub const MAP_ALIGNMENT_SHIFT: ::c_int = 24; -pub const MAP_ALIGNMENT_MASK: ::c_int = 0xff << MAP_ALIGNMENT_SHIFT; -pub const MAP_ALIGNMENT_64KB: ::c_int = 16 << MAP_ALIGNMENT_SHIFT; -pub const MAP_ALIGNMENT_16MB: ::c_int = 24 << MAP_ALIGNMENT_SHIFT; -pub const MAP_ALIGNMENT_4GB: ::c_int = 32 << MAP_ALIGNMENT_SHIFT; -pub const MAP_ALIGNMENT_1TB: ::c_int = 40 << MAP_ALIGNMENT_SHIFT; -pub const MAP_ALIGNMENT_256TB: ::c_int = 48 << MAP_ALIGNMENT_SHIFT; -pub const MAP_ALIGNMENT_64PB: ::c_int = 56 << MAP_ALIGNMENT_SHIFT; -// mremap flag -pub const MAP_REMAPDUP: ::c_int = 0x004; - -pub const DCCP_TYPE_REQUEST: ::c_int = 0; -pub const DCCP_TYPE_RESPONSE: ::c_int = 1; -pub const DCCP_TYPE_DATA: ::c_int = 2; -pub const DCCP_TYPE_ACK: ::c_int = 3; -pub const DCCP_TYPE_DATAACK: ::c_int = 4; -pub const DCCP_TYPE_CLOSEREQ: ::c_int = 5; -pub const DCCP_TYPE_CLOSE: ::c_int = 6; -pub const DCCP_TYPE_RESET: ::c_int = 7; -pub const DCCP_TYPE_MOVE: ::c_int = 8; - -pub const DCCP_FEATURE_CC: ::c_int = 1; -pub const DCCP_FEATURE_ECN: ::c_int = 2; -pub const DCCP_FEATURE_ACKRATIO: ::c_int = 3; -pub const DCCP_FEATURE_ACKVECTOR: ::c_int = 4; -pub const DCCP_FEATURE_MOBILITY: ::c_int = 5; -pub const DCCP_FEATURE_LOSSWINDOW: ::c_int = 6; -pub const DCCP_FEATURE_CONN_NONCE: ::c_int = 8; -pub const DCCP_FEATURE_IDENTREG: ::c_int = 7; - -pub const DCCP_OPT_PADDING: ::c_int = 0; -pub const DCCP_OPT_DATA_DISCARD: ::c_int = 1; -pub const DCCP_OPT_SLOW_RECV: ::c_int = 2; -pub const DCCP_OPT_BUF_CLOSED: ::c_int = 3; -pub const DCCP_OPT_CHANGE_L: ::c_int = 32; -pub const DCCP_OPT_CONFIRM_L: ::c_int = 33; -pub const DCCP_OPT_CHANGE_R: ::c_int = 34; -pub const DCCP_OPT_CONFIRM_R: ::c_int = 35; -pub const DCCP_OPT_INIT_COOKIE: ::c_int = 36; -pub const DCCP_OPT_NDP_COUNT: ::c_int = 37; -pub const DCCP_OPT_ACK_VECTOR0: ::c_int = 38; -pub const DCCP_OPT_ACK_VECTOR1: ::c_int = 39; -pub const DCCP_OPT_RECV_BUF_DROPS: ::c_int = 40; -pub const DCCP_OPT_TIMESTAMP: ::c_int = 41; -pub const DCCP_OPT_TIMESTAMP_ECHO: ::c_int = 42; -pub const DCCP_OPT_ELAPSEDTIME: ::c_int = 43; -pub const DCCP_OPT_DATACHECKSUM: ::c_int = 44; - -pub const DCCP_REASON_UNSPEC: ::c_int = 0; -pub const DCCP_REASON_CLOSED: ::c_int = 1; -pub const DCCP_REASON_INVALID: ::c_int = 2; -pub const DCCP_REASON_OPTION_ERR: ::c_int = 3; -pub const DCCP_REASON_FEA_ERR: ::c_int = 4; -pub const DCCP_REASON_CONN_REF: ::c_int = 5; -pub const DCCP_REASON_BAD_SNAME: ::c_int = 6; -pub const DCCP_REASON_BAD_COOKIE: ::c_int = 7; -pub const DCCP_REASON_INV_MOVE: ::c_int = 8; -pub const DCCP_REASON_UNANSW_CH: ::c_int = 10; -pub const DCCP_REASON_FRUITLESS_NEG: ::c_int = 11; - -pub const DCCP_CCID: ::c_int = 1; -pub const DCCP_CSLEN: ::c_int = 2; -pub const DCCP_MAXSEG: ::c_int = 4; -pub const DCCP_SERVICE: ::c_int = 8; - -pub const DCCP_NDP_LIMIT: ::c_int = 16; -pub const DCCP_SEQ_NUM_LIMIT: ::c_int = 16777216; -pub const DCCP_MAX_OPTIONS: ::c_int = 32; -pub const DCCP_MAX_PKTS: ::c_int = 100; - -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; -pub const _PC_NO_TRUNC: ::c_int = 8; -pub const _PC_VDISABLE: ::c_int = 9; -pub const _PC_SYNC_IO: ::c_int = 10; -pub const _PC_FILESIZEBITS: ::c_int = 11; -pub const _PC_SYMLINK_MAX: ::c_int = 12; -pub const _PC_2_SYMLINKS: ::c_int = 13; -pub const _PC_ACL_EXTENDED: ::c_int = 14; -pub const _PC_MIN_HOLE_SIZE: ::c_int = 15; - -pub const _SC_SYNCHRONIZED_IO: ::c_int = 31; -pub const _SC_IOV_MAX: ::c_int = 32; -pub const _SC_MAPPED_FILES: ::c_int = 33; -pub const _SC_MEMLOCK: ::c_int = 34; -pub const _SC_MEMLOCK_RANGE: ::c_int = 35; -pub const _SC_MEMORY_PROTECTION: ::c_int = 36; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 37; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 38; -pub const _SC_CLK_TCK: ::c_int = 39; -pub const _SC_ATEXIT_MAX: ::c_int = 40; -pub const _SC_THREADS: ::c_int = 41; -pub const _SC_SEMAPHORES: ::c_int = 42; -pub const _SC_BARRIERS: ::c_int = 43; -pub const _SC_TIMERS: ::c_int = 44; -pub const _SC_SPIN_LOCKS: ::c_int = 45; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 46; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 47; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 48; -pub const _SC_CLOCK_SELECTION: ::c_int = 49; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 50; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 51; -pub const _SC_AIO_MAX: ::c_int = 52; -pub const _SC_MESSAGE_PASSING: ::c_int = 53; -pub const _SC_MQ_OPEN_MAX: ::c_int = 54; -pub const _SC_MQ_PRIO_MAX: ::c_int = 55; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 56; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 57; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 58; -pub const _SC_THREAD_STACK_MIN: ::c_int = 59; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 60; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 61; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 62; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 63; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 64; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 65; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 66; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 67; -pub const _SC_TTY_NAME_MAX: ::c_int = 68; -pub const _SC_HOST_NAME_MAX: ::c_int = 69; -pub const _SC_PASS_MAX: ::c_int = 70; -pub const _SC_REGEXP: ::c_int = 71; -pub const _SC_SHELL: ::c_int = 72; -pub const _SC_SYMLOOP_MAX: ::c_int = 73; -pub const _SC_V6_ILP32_OFF32: ::c_int = 74; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 75; -pub const _SC_V6_LP64_OFF64: ::c_int = 76; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 77; -pub const _SC_2_PBS: ::c_int = 80; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 81; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 82; -pub const _SC_2_PBS_LOCATE: ::c_int = 83; -pub const _SC_2_PBS_MESSAGE: ::c_int = 84; -pub const _SC_2_PBS_TRACK: ::c_int = 85; -pub const _SC_SPAWN: ::c_int = 86; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 87; -pub const _SC_TIMER_MAX: ::c_int = 88; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 89; -pub const _SC_CPUTIME: ::c_int = 90; -pub const _SC_THREAD_CPUTIME: ::c_int = 91; -pub const _SC_DELAYTIMER_MAX: ::c_int = 92; -// These two variables will be supported in NetBSD 8.0 -// pub const _SC_SIGQUEUE_MAX : ::c_int = 93; -// pub const _SC_REALTIME_SIGNALS : ::c_int = 94; -pub const _SC_PHYS_PAGES: ::c_int = 121; -pub const _SC_NPROCESSORS_CONF: ::c_int = 1001; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 1002; -pub const _SC_SCHED_RT_TS: ::c_int = 2001; -pub const _SC_SCHED_PRI_MIN: ::c_int = 2002; -pub const _SC_SCHED_PRI_MAX: ::c_int = 2003; - -pub const FD_SETSIZE: usize = 0x100; - -pub const ST_NOSUID: ::c_ulong = 8; - -pub const BIOCGRSIG: ::c_ulong = 0x40044272; -pub const BIOCSRSIG: ::c_ulong = 0x80044273; -pub const BIOCSDLT: ::c_ulong = 0x80044278; -pub const BIOCGSEESENT: ::c_ulong = 0x40044276; -pub const BIOCSSEESENT: ::c_ulong = 0x80044277; - -// -pub const MNT_UNION: ::c_int = 0x00000020; -pub const MNT_NOCOREDUMP: ::c_int = 0x00008000; -pub const MNT_RELATIME: ::c_int = 0x00020000; -pub const MNT_IGNORE: ::c_int = 0x00100000; -pub const MNT_NFS4ACLS: ::c_int = 0x00200000; -pub const MNT_DISCARD: ::c_int = 0x00800000; -pub const MNT_EXTATTR: ::c_int = 0x01000000; -pub const MNT_LOG: ::c_int = 0x02000000; -pub const MNT_NOATIME: ::c_int = 0x04000000; -pub const MNT_AUTOMOUNTED: ::c_int = 0x10000000; -pub const MNT_SYMPERM: ::c_int = 0x20000000; -pub const MNT_NODEVMTIME: ::c_int = 0x40000000; -pub const MNT_SOFTDEP: ::c_int = 0x80000000; -pub const MNT_POSIX1EACLS: ::c_int = 0x00000800; -pub const MNT_ACLS: ::c_int = MNT_POSIX1EACLS; - -// -pub const NTP_API: ::c_int = 4; -pub const MAXPHASE: ::c_long = 500000000; -pub const MAXFREQ: ::c_long = 500000; -pub const MINSEC: ::c_int = 256; -pub const MAXSEC: ::c_int = 2048; -pub const NANOSECOND: ::c_long = 1000000000; -pub const SCALE_PPM: ::c_int = 65; -pub const MAXTC: ::c_int = 10; -pub const MOD_OFFSET: ::c_uint = 0x0001; -pub const MOD_FREQUENCY: ::c_uint = 0x0002; -pub const MOD_MAXERROR: ::c_uint = 0x0004; -pub const MOD_ESTERROR: ::c_uint = 0x0008; -pub const MOD_STATUS: ::c_uint = 0x0010; -pub const MOD_TIMECONST: ::c_uint = 0x0020; -pub const MOD_PPSMAX: ::c_uint = 0x0040; -pub const MOD_TAI: ::c_uint = 0x0080; -pub const MOD_MICRO: ::c_uint = 0x1000; -pub const MOD_NANO: ::c_uint = 0x2000; -pub const MOD_CLKB: ::c_uint = 0x4000; -pub const MOD_CLKA: ::c_uint = 0x8000; -pub const STA_PLL: ::c_int = 0x0001; -pub const STA_PPSFREQ: ::c_int = 0x0002; -pub const STA_PPSTIME: ::c_int = 0x0004; -pub const STA_FLL: ::c_int = 0x0008; -pub const STA_INS: ::c_int = 0x0010; -pub const STA_DEL: ::c_int = 0x0020; -pub const STA_UNSYNC: ::c_int = 0x0040; -pub const STA_FREQHOLD: ::c_int = 0x0080; -pub const STA_PPSSIGNAL: ::c_int = 0x0100; -pub const STA_PPSJITTER: ::c_int = 0x0200; -pub const STA_PPSWANDER: ::c_int = 0x0400; -pub const STA_PPSERROR: ::c_int = 0x0800; -pub const STA_CLOCKERR: ::c_int = 0x1000; -pub const STA_NANO: ::c_int = 0x2000; -pub const STA_MODE: ::c_int = 0x4000; -pub const STA_CLK: ::c_int = 0x8000; -pub const STA_RONLY: ::c_int = STA_PPSSIGNAL - | STA_PPSJITTER - | STA_PPSWANDER - | STA_PPSERROR - | STA_CLOCKERR - | STA_NANO - | STA_MODE - | STA_CLK; -pub const TIME_OK: ::c_int = 0; -pub const TIME_INS: ::c_int = 1; -pub const TIME_DEL: ::c_int = 2; -pub const TIME_OOP: ::c_int = 3; -pub const TIME_WAIT: ::c_int = 4; -pub const TIME_ERROR: ::c_int = 5; - -pub const LITTLE_ENDIAN: ::c_int = 1234; -pub const BIG_ENDIAN: ::c_int = 4321; - -pub const PL_EVENT_NONE: ::c_int = 0; -pub const PL_EVENT_SIGNAL: ::c_int = 1; -pub const PL_EVENT_SUSPENDED: ::c_int = 2; - -cfg_if! { - if #[cfg(any(target_arch = "sparc", target_arch = "sparc64", - target_arch = "x86", target_arch = "x86_64"))] { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t - = pthread_mutex_t { - ptm_magic: 0x33330003, - ptm_errorcheck: 0, - ptm_pad1: [0; 3], - ptm_unused: 0, - ptm_pad2: [0; 3], - ptm_waiters: 0 as *mut _, - ptm_owner: 0, - ptm_recursed: 0, - ptm_spare2: 0 as *mut _, - }; - } else { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t - = pthread_mutex_t { - ptm_magic: 0x33330003, - ptm_errorcheck: 0, - ptm_unused: 0, - ptm_waiters: 0 as *mut _, - ptm_owner: 0, - ptm_recursed: 0, - ptm_spare2: 0 as *mut _, - }; - } -} - -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - ptc_magic: 0x55550005, - ptc_lock: 0, - ptc_waiters_first: 0 as *mut _, - ptc_waiters_last: 0 as *mut _, - ptc_mutex: 0 as *mut _, - ptc_private: 0 as *mut _, -}; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - ptr_magic: 0x99990009, - ptr_interlock: 0, - ptr_rblocked_first: 0 as *mut _, - ptr_rblocked_last: 0 as *mut _, - ptr_wblocked_first: 0 as *mut _, - ptr_wblocked_last: 0 as *mut _, - ptr_nreaders: 0, - ptr_owner: 0, - ptr_private: 0 as *mut _, -}; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; - -pub const SCHED_NONE: ::c_int = -1; -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; - -pub const EVFILT_AIO: u32 = 2; -pub const EVFILT_PROC: u32 = 4; -pub const EVFILT_READ: u32 = 0; -pub const EVFILT_SIGNAL: u32 = 5; -pub const EVFILT_TIMER: u32 = 6; -pub const EVFILT_VNODE: u32 = 3; -pub const EVFILT_WRITE: u32 = 1; -pub const EVFILT_FS: u32 = 7; -pub const EVFILT_USER: u32 = 8; -pub const EVFILT_EMPTY: u32 = 9; - -pub const EV_ADD: u32 = 0x1; -pub const EV_DELETE: u32 = 0x2; -pub const EV_ENABLE: u32 = 0x4; -pub const EV_DISABLE: u32 = 0x8; -pub const EV_ONESHOT: u32 = 0x10; -pub const EV_CLEAR: u32 = 0x20; -pub const EV_RECEIPT: u32 = 0x40; -pub const EV_DISPATCH: u32 = 0x80; -pub const EV_FLAG1: u32 = 0x2000; -pub const EV_ERROR: u32 = 0x4000; -pub const EV_EOF: u32 = 0x8000; -pub const EV_SYSFLAGS: u32 = 0xf000; - -pub const NOTE_TRIGGER: u32 = 0x01000000; -pub const NOTE_FFNOP: u32 = 0x00000000; -pub const NOTE_FFAND: u32 = 0x40000000; -pub const NOTE_FFOR: u32 = 0x80000000; -pub const NOTE_FFCOPY: u32 = 0xc0000000; -pub const NOTE_FFCTRLMASK: u32 = 0xc0000000; -pub const NOTE_FFLAGSMASK: u32 = 0x00ffffff; -pub const NOTE_LOWAT: u32 = 0x00000001; -pub const NOTE_DELETE: u32 = 0x00000001; -pub const NOTE_WRITE: u32 = 0x00000002; -pub const NOTE_EXTEND: u32 = 0x00000004; -pub const NOTE_ATTRIB: u32 = 0x00000008; -pub const NOTE_LINK: u32 = 0x00000010; -pub const NOTE_RENAME: u32 = 0x00000020; -pub const NOTE_REVOKE: u32 = 0x00000040; -pub const NOTE_EXIT: u32 = 0x80000000; -pub const NOTE_FORK: u32 = 0x40000000; -pub const NOTE_EXEC: u32 = 0x20000000; -pub const NOTE_PDATAMASK: u32 = 0x000fffff; -pub const NOTE_PCTRLMASK: u32 = 0xf0000000; -pub const NOTE_TRACK: u32 = 0x00000001; -pub const NOTE_TRACKERR: u32 = 0x00000002; -pub const NOTE_CHILD: u32 = 0x00000004; -pub const NOTE_MSECONDS: u32 = 0x00000000; -pub const NOTE_SECONDS: u32 = 0x00000001; -pub const NOTE_USECONDS: u32 = 0x00000002; -pub const NOTE_NSECONDS: u32 = 0x00000003; -pub const NOTE_ABSTIME: u32 = 0x000000010; - -pub const TMP_MAX: ::c_uint = 308915776; - -pub const AI_PASSIVE: ::c_int = 0x00000001; -pub const AI_CANONNAME: ::c_int = 0x00000002; -pub const AI_NUMERICHOST: ::c_int = 0x00000004; -pub const AI_NUMERICSERV: ::c_int = 0x00000008; -pub const AI_ADDRCONFIG: ::c_int = 0x00000400; -pub const AI_SRV: ::c_int = 0x00000800; - -pub const NI_MAXHOST: ::socklen_t = 1025; -pub const NI_MAXSERV: ::socklen_t = 32; - -pub const NI_NOFQDN: ::c_int = 0x00000001; -pub const NI_NUMERICHOST: ::c_int = 0x000000002; -pub const NI_NAMEREQD: ::c_int = 0x000000004; -pub const NI_NUMERICSERV: ::c_int = 0x000000008; -pub const NI_DGRAM: ::c_int = 0x00000010; -pub const NI_WITHSCOPEID: ::c_int = 0x00000020; -pub const NI_NUMERICSCOPE: ::c_int = 0x00000040; - -pub const RTLD_NOLOAD: ::c_int = 0x2000; -pub const RTLD_LOCAL: ::c_int = 0x200; - -pub const CTL_MAXNAME: ::c_int = 12; -pub const SYSCTL_NAMELEN: ::c_int = 32; -pub const SYSCTL_DEFSIZE: ::c_int = 8; -pub const CTLTYPE_NODE: ::c_int = 1; -pub const CTLTYPE_INT: ::c_int = 2; -pub const CTLTYPE_STRING: ::c_int = 3; -pub const CTLTYPE_QUAD: ::c_int = 4; -pub const CTLTYPE_STRUCT: ::c_int = 5; -pub const CTLTYPE_BOOL: ::c_int = 6; -pub const CTLFLAG_READONLY: ::c_int = 0x00000000; -pub const CTLFLAG_READWRITE: ::c_int = 0x00000070; -pub const CTLFLAG_ANYWRITE: ::c_int = 0x00000080; -pub const CTLFLAG_PRIVATE: ::c_int = 0x00000100; -pub const CTLFLAG_PERMANENT: ::c_int = 0x00000200; -pub const CTLFLAG_OWNDATA: ::c_int = 0x00000400; -pub const CTLFLAG_IMMEDIATE: ::c_int = 0x00000800; -pub const CTLFLAG_HEX: ::c_int = 0x00001000; -pub const CTLFLAG_ROOT: ::c_int = 0x00002000; -pub const CTLFLAG_ANYNUMBER: ::c_int = 0x00004000; -pub const CTLFLAG_HIDDEN: ::c_int = 0x00008000; -pub const CTLFLAG_ALIAS: ::c_int = 0x00010000; -pub const CTLFLAG_MMAP: ::c_int = 0x00020000; -pub const CTLFLAG_OWNDESC: ::c_int = 0x00040000; -pub const CTLFLAG_UNSIGNED: ::c_int = 0x00080000; -pub const SYSCTL_VERS_MASK: ::c_int = 0xff000000; -pub const SYSCTL_VERS_0: ::c_int = 0x00000000; -pub const SYSCTL_VERS_1: ::c_int = 0x01000000; -pub const SYSCTL_VERSION: ::c_int = SYSCTL_VERS_1; -pub const CTL_EOL: ::c_int = -1; -pub const CTL_QUERY: ::c_int = -2; -pub const CTL_CREATE: ::c_int = -3; -pub const CTL_CREATESYM: ::c_int = -4; -pub const CTL_DESTROY: ::c_int = -5; -pub const CTL_MMAP: ::c_int = -6; -pub const CTL_DESCRIBE: ::c_int = -7; -pub const CTL_UNSPEC: ::c_int = 0; -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_VFS: ::c_int = 3; -pub const CTL_NET: ::c_int = 4; -pub const CTL_DEBUG: ::c_int = 5; -pub const CTL_HW: ::c_int = 6; -pub const CTL_MACHDEP: ::c_int = 7; -pub const CTL_USER: ::c_int = 8; -pub const CTL_DDB: ::c_int = 9; -pub const CTL_PROC: ::c_int = 10; -pub const CTL_VENDOR: ::c_int = 11; -pub const CTL_EMUL: ::c_int = 12; -pub const CTL_SECURITY: ::c_int = 13; -pub const CTL_MAXID: ::c_int = 14; -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_MAXVNODES: ::c_int = 5; -pub const KERN_MAXPROC: ::c_int = 6; -pub const KERN_MAXFILES: ::c_int = 7; -pub const KERN_ARGMAX: ::c_int = 8; -pub const KERN_SECURELVL: ::c_int = 9; -pub const KERN_HOSTNAME: ::c_int = 10; -pub const KERN_HOSTID: ::c_int = 11; -pub const KERN_CLOCKRATE: ::c_int = 12; -pub const KERN_VNODE: ::c_int = 13; -pub const KERN_PROC: ::c_int = 14; -pub const KERN_FILE: ::c_int = 15; -pub const KERN_PROF: ::c_int = 16; -pub const KERN_POSIX1: ::c_int = 17; -pub const KERN_NGROUPS: ::c_int = 18; -pub const KERN_JOB_CONTROL: ::c_int = 19; -pub const KERN_SAVED_IDS: ::c_int = 20; -pub const KERN_OBOOTTIME: ::c_int = 21; -pub const KERN_DOMAINNAME: ::c_int = 22; -pub const KERN_MAXPARTITIONS: ::c_int = 23; -pub const KERN_RAWPARTITION: ::c_int = 24; -pub const KERN_NTPTIME: ::c_int = 25; -pub const KERN_TIMEX: ::c_int = 26; -pub const KERN_AUTONICETIME: ::c_int = 27; -pub const KERN_AUTONICEVAL: ::c_int = 28; -pub const KERN_RTC_OFFSET: ::c_int = 29; -pub const KERN_ROOT_DEVICE: ::c_int = 30; -pub const KERN_MSGBUFSIZE: ::c_int = 31; -pub const KERN_FSYNC: ::c_int = 32; -pub const KERN_OLDSYSVMSG: ::c_int = 33; -pub const KERN_OLDSYSVSEM: ::c_int = 34; -pub const KERN_OLDSYSVSHM: ::c_int = 35; -pub const KERN_OLDSHORTCORENAME: ::c_int = 36; -pub const KERN_SYNCHRONIZED_IO: ::c_int = 37; -pub const KERN_IOV_MAX: ::c_int = 38; -pub const KERN_MBUF: ::c_int = 39; -pub const KERN_MAPPED_FILES: ::c_int = 40; -pub const KERN_MEMLOCK: ::c_int = 41; -pub const KERN_MEMLOCK_RANGE: ::c_int = 42; -pub const KERN_MEMORY_PROTECTION: ::c_int = 43; -pub const KERN_LOGIN_NAME_MAX: ::c_int = 44; -pub const KERN_DEFCORENAME: ::c_int = 45; -pub const KERN_LOGSIGEXIT: ::c_int = 46; -pub const KERN_PROC2: ::c_int = 47; -pub const KERN_PROC_ARGS: ::c_int = 48; -pub const KERN_FSCALE: ::c_int = 49; -pub const KERN_CCPU: ::c_int = 50; -pub const KERN_CP_TIME: ::c_int = 51; -pub const KERN_OLDSYSVIPC_INFO: ::c_int = 52; -pub const KERN_MSGBUF: ::c_int = 53; -pub const KERN_CONSDEV: ::c_int = 54; -pub const KERN_MAXPTYS: ::c_int = 55; -pub const KERN_PIPE: ::c_int = 56; -pub const KERN_MAXPHYS: ::c_int = 57; -pub const KERN_SBMAX: ::c_int = 58; -pub const KERN_TKSTAT: ::c_int = 59; -pub const KERN_MONOTONIC_CLOCK: ::c_int = 60; -pub const KERN_URND: ::c_int = 61; -pub const KERN_LABELSECTOR: ::c_int = 62; -pub const KERN_LABELOFFSET: ::c_int = 63; -pub const KERN_LWP: ::c_int = 64; -pub const KERN_FORKFSLEEP: ::c_int = 65; -pub const KERN_POSIX_THREADS: ::c_int = 66; -pub const KERN_POSIX_SEMAPHORES: ::c_int = 67; -pub const KERN_POSIX_BARRIERS: ::c_int = 68; -pub const KERN_POSIX_TIMERS: ::c_int = 69; -pub const KERN_POSIX_SPIN_LOCKS: ::c_int = 70; -pub const KERN_POSIX_READER_WRITER_LOCKS: ::c_int = 71; -pub const KERN_DUMP_ON_PANIC: ::c_int = 72; -pub const KERN_SOMAXKVA: ::c_int = 73; -pub const KERN_ROOT_PARTITION: ::c_int = 74; -pub const KERN_DRIVERS: ::c_int = 75; -pub const KERN_BUF: ::c_int = 76; -pub const KERN_FILE2: ::c_int = 77; -pub const KERN_VERIEXEC: ::c_int = 78; -pub const KERN_CP_ID: ::c_int = 79; -pub const KERN_HARDCLOCK_TICKS: ::c_int = 80; -pub const KERN_ARND: ::c_int = 81; -pub const KERN_SYSVIPC: ::c_int = 82; -pub const KERN_BOOTTIME: ::c_int = 83; -pub const KERN_EVCNT: ::c_int = 84; -pub const KERN_MAXID: ::c_int = 85; -pub const KERN_PROC_ALL: ::c_int = 0; -pub const KERN_PROC_PID: ::c_int = 1; -pub const KERN_PROC_PGRP: ::c_int = 2; -pub const KERN_PROC_SESSION: ::c_int = 3; -pub const KERN_PROC_TTY: ::c_int = 4; -pub const KERN_PROC_UID: ::c_int = 5; -pub const KERN_PROC_RUID: ::c_int = 6; -pub const KERN_PROC_GID: ::c_int = 7; -pub const KERN_PROC_RGID: ::c_int = 8; -pub const KERN_PROC_ARGV: ::c_int = 1; -pub const KERN_PROC_NARGV: ::c_int = 2; -pub const KERN_PROC_ENV: ::c_int = 3; -pub const KERN_PROC_NENV: ::c_int = 4; -pub const KERN_PROC_PATHNAME: ::c_int = 5; -pub const VM_PROC: ::c_int = 16; -pub const VM_PROC_MAP: ::c_int = 1; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 14; - -pub const AIO_CANCELED: ::c_int = 1; -pub const AIO_NOTCANCELED: ::c_int = 2; -pub const AIO_ALLDONE: ::c_int = 3; -pub const LIO_NOP: ::c_int = 0; -pub const LIO_WRITE: ::c_int = 1; -pub const LIO_READ: ::c_int = 2; -pub const LIO_WAIT: ::c_int = 1; -pub const LIO_NOWAIT: ::c_int = 0; - -pub const SIGEV_NONE: ::c_int = 0; -pub const SIGEV_SIGNAL: ::c_int = 1; -pub const SIGEV_THREAD: ::c_int = 2; - -pub const WSTOPPED: ::c_int = 0x00000002; // same as WUNTRACED -pub const WCONTINUED: ::c_int = 0x00000010; -pub const WEXITED: ::c_int = 0x000000020; -pub const WNOWAIT: ::c_int = 0x00010000; - -pub const WALTSIG: ::c_int = 0x00000004; -pub const WALLSIG: ::c_int = 0x00000008; -pub const WTRAPPED: ::c_int = 0x00000040; -pub const WNOZOMBIE: ::c_int = 0x00020000; - -pub const P_ALL: idtype_t = 0; -pub const P_PID: idtype_t = 1; -pub const P_PGID: idtype_t = 4; - -pub const UTIME_OMIT: c_long = 1073741822; -pub const UTIME_NOW: c_long = 1073741823; - -pub const B460800: ::speed_t = 460800; -pub const B921600: ::speed_t = 921600; - -pub const ONOCR: ::tcflag_t = 0x20; -pub const ONLRET: ::tcflag_t = 0x40; -pub const CDTRCTS: ::tcflag_t = 0x00020000; -pub const CHWFLOW: ::tcflag_t = ::MDMBUF | ::CRTSCTS | ::CDTRCTS; - -// pub const _PATH_UTMPX: &[::c_char; 14] = b"/var/run/utmpx"; -// pub const _PATH_WTMPX: &[::c_char; 14] = b"/var/log/wtmpx"; -// pub const _PATH_LASTLOGX: &[::c_char; 17] = b"/var/log/lastlogx"; -// pub const _PATH_UTMP_UPDATE: &[::c_char; 24] = b"/usr/libexec/utmp_update"; -pub const UT_NAMESIZE: usize = 8; -pub const UT_LINESIZE: usize = 8; -pub const UT_HOSTSIZE: usize = 16; -pub const _UTX_USERSIZE: usize = 32; -pub const _UTX_LINESIZE: usize = 32; -pub const _UTX_PADSIZE: usize = 40; -pub const _UTX_IDSIZE: usize = 4; -pub const _UTX_HOSTSIZE: usize = 256; -pub const EMPTY: u16 = 0; -pub const RUN_LVL: u16 = 1; -pub const BOOT_TIME: u16 = 2; -pub const OLD_TIME: u16 = 3; -pub const NEW_TIME: u16 = 4; -pub const INIT_PROCESS: u16 = 5; -pub const LOGIN_PROCESS: u16 = 6; -pub const USER_PROCESS: u16 = 7; -pub const DEAD_PROCESS: u16 = 8; -pub const ACCOUNTING: u16 = 9; -pub const SIGNATURE: u16 = 10; -pub const DOWN_TIME: u16 = 11; - -pub const SOCK_CLOEXEC: ::c_int = 0x10000000; -pub const SOCK_NONBLOCK: ::c_int = 0x20000000; - -// Uncomment on next NetBSD release -// pub const FIOSEEKDATA: ::c_ulong = 0xc0086661; -// pub const FIOSEEKHOLE: ::c_ulong = 0xc0086662; -pub const OFIOGETBMAP: ::c_ulong = 0xc004667a; -pub const FIOGETBMAP: ::c_ulong = 0xc008667a; -pub const FIONWRITE: ::c_ulong = 0x40046679; -pub const FIONSPACE: ::c_ulong = 0x40046678; -pub const FIBMAP: ::c_ulong = 0xc008667a; - -pub const SIGSTKSZ: ::size_t = 40960; - -pub const REG_ENOSYS: ::c_int = 17; - -pub const PT_DUMPCORE: ::c_int = 12; -pub const PT_LWPINFO: ::c_int = 13; -pub const PT_SYSCALL: ::c_int = 14; -pub const PT_SYSCALLEMU: ::c_int = 15; -pub const PT_SET_EVENT_MASK: ::c_int = 16; -pub const PT_GET_EVENT_MASK: ::c_int = 17; -pub const PT_GET_PROCESS_STATE: ::c_int = 18; -pub const PT_SET_SIGINFO: ::c_int = 19; -pub const PT_GET_SIGINFO: ::c_int = 20; -pub const PT_RESUME: ::c_int = 21; -pub const PT_SUSPEND: ::c_int = 23; -pub const PT_STOP: ::c_int = 23; -pub const PT_LWPSTATUS: ::c_int = 24; -pub const PT_LWPNEXT: ::c_int = 25; -pub const PT_SET_SIGPASS: ::c_int = 26; -pub const PT_GET_SIGPASS: ::c_int = 27; -pub const PT_FIRSTMACH: ::c_int = 32; - -pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; -pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; -pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x04; -pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x08; -pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10; -pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20; -pub const POSIX_SPAWN_RETURNERROR: ::c_int = 0x40; - -// Flags for chflags(2) -pub const SF_APPEND: ::c_ulong = 0x00040000; -pub const SF_ARCHIVED: ::c_ulong = 0x00010000; -pub const SF_IMMUTABLE: ::c_ulong = 0x00020000; -pub const SF_LOG: ::c_ulong = 0x00400000; -pub const SF_SETTABLE: ::c_ulong = 0xffff0000; -pub const SF_SNAPINVAL: ::c_ulong = 0x00800000; -pub const SF_SNAPSHOT: ::c_ulong = 0x00200000; -pub const UF_APPEND: ::c_ulong = 0x00000004; -pub const UF_IMMUTABLE: ::c_ulong = 0x00000002; -pub const UF_NODUMP: ::c_ulong = 0x00000001; -pub const UF_OPAQUE: ::c_ulong = 0x00000008; -pub const UF_SETTABLE: ::c_ulong = 0x0000ffff; - -// sys/sysctl.h -pub const KVME_PROT_READ: ::c_int = 0x00000001; -pub const KVME_PROT_WRITE: ::c_int = 0x00000002; -pub const KVME_PROT_EXEC: ::c_int = 0x00000004; - -pub const KVME_FLAG_COW: ::c_int = 0x00000001; -pub const KVME_FLAG_NEEDS_COPY: ::c_int = 0x00000002; -pub const KVME_FLAG_NOCOREDUMP: ::c_int = 0x000000004; -pub const KVME_FLAG_PAGEABLE: ::c_int = 0x000000008; -pub const KVME_FLAG_GROWS_UP: ::c_int = 0x000000010; -pub const KVME_FLAG_GROWS_DOWN: ::c_int = 0x000000020; - -pub const NGROUPS_MAX: ::c_int = 16; - -pub const KI_NGROUPS: ::c_int = 16; -pub const KI_MAXCOMLEN: ::c_int = 24; -pub const KI_WMESGLEN: ::c_int = 8; -pub const KI_MAXLOGNAME: ::c_int = 24; -pub const KI_MAXEMULLEN: ::c_int = 16; -pub const KI_LNAMELEN: ::c_int = 20; - -// sys/lwp.h -pub const LSIDL: ::c_int = 1; -pub const LSRUN: ::c_int = 2; -pub const LSSLEEP: ::c_int = 3; -pub const LSSTOP: ::c_int = 4; -pub const LSZOMB: ::c_int = 5; -pub const LSONPROC: ::c_int = 7; -pub const LSSUSPENDED: ::c_int = 8; - -pub const _REG_RDI: ::c_int = 0; -pub const _REG_RSI: ::c_int = 1; -pub const _REG_RDX: ::c_int = 2; -pub const _REG_RCX: ::c_int = 3; -pub const _REG_R8: ::c_int = 4; -pub const _REG_R9: ::c_int = 5; -pub const _REG_R10: ::c_int = 6; -pub const _REG_R11: ::c_int = 7; -pub const _REG_R12: ::c_int = 8; -pub const _REG_R13: ::c_int = 9; -pub const _REG_R14: ::c_int = 10; -pub const _REG_R15: ::c_int = 11; -pub const _REG_RBP: ::c_int = 12; -pub const _REG_RBX: ::c_int = 13; -pub const _REG_RAX: ::c_int = 14; -pub const _REG_GS: ::c_int = 15; -pub const _REG_FS: ::c_int = 16; -pub const _REG_ES: ::c_int = 17; -pub const _REG_DS: ::c_int = 18; -pub const _REG_TRAPNO: ::c_int = 19; -pub const _REG_ERR: ::c_int = 20; -pub const _REG_RIP: ::c_int = 21; -pub const _REG_CS: ::c_int = 22; -pub const _REG_RFLAGS: ::c_int = 23; -pub const _REG_RSP: ::c_int = 24; -pub const _REG_SS: ::c_int = 25; - -// sys/xattr.h -pub const XATTR_CREATE: ::c_int = 0x01; -pub const XATTR_REPLACE: ::c_int = 0x02; -// sys/extattr.h -pub const EXTATTR_NAMESPACE_EMPTY: ::c_int = 0; - -// For getrandom() -pub const GRND_NONBLOCK: ::c_uint = 0x1; -pub const GRND_RANDOM: ::c_uint = 0x2; -pub const GRND_INSECURE: ::c_uint = 0x4; - -cfg_if! { - - if #[cfg(libc_const_extern_fn)] { - pub const fn MAP_ALIGNED(alignment: ::c_int) -> ::c_int { - alignment << MAP_ALIGNMENT_SHIFT - } - } else { - pub fn MAP_ALIGNED(alignment: ::c_int) -> ::c_int { - alignment << MAP_ALIGNMENT_SHIFT - } - } -} - -const_fn! { - {const} fn _ALIGN(p: usize) -> usize { - (p + _ALIGNBYTES) & !_ALIGNBYTES - } -} - -f! { - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) - } - - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - _ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length - } - - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) - -> *mut ::cmsghdr - { - if cmsg.is_null() { - return ::CMSG_FIRSTHDR(mhdr); - }; - let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) - + _ALIGN(::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; - if next > max { - 0 as *mut ::cmsghdr - } else { - (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) - as *mut ::cmsghdr - } - } - - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) - as ::c_uint - } - - // dirfd() is a macro on netbsd to access - // the first field of the struct where dirp points to: - // http://cvsweb.netbsd.org/bsdweb.cgi/src/include/dirent.h?rev=1.36 - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int { - *(dirp as *const ::c_int) - } - - pub fn SOCKCREDSIZE(ngrps: usize) -> usize { - let ngrps = if ngrps > 0 { - ngrps - 1 - } else { - 0 - }; - ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps - } - - pub fn PROT_MPROTECT(x: ::c_int) -> ::c_int { - x << 3 - } - - pub fn PROT_MPROTECT_EXTRACT(x: ::c_int) -> ::c_int { - (x >> 3) & 0x7 - } - - pub fn major(dev: ::dev_t) -> ::c_int { - (((dev as u32) & 0x000fff00) >> 8) as ::c_int - } - - pub fn minor(dev: ::dev_t) -> ::c_int { - let mut res = 0; - res |= ((dev as u32) & 0xfff00000) >> 12; - res |= (dev as u32) & 0x000000ff; - res as ::c_int - } -} - -safe_f! { - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { - status >> 8 - } - - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { - (status & 0o177) != 0o177 && (status & 0o177) != 0 - } - - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { - (status & 0o177) == 0o177 - } - - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { - status == 0xffff - } - - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; - let mut dev = 0; - dev |= (major << 8) & 0x000ff00; - dev |= (minor << 12) & 0xfff00000; - dev |= minor & 0xff; - dev - } -} - -extern "C" { - pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; - pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; - pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; - - pub fn reallocarr(ptr: *mut ::c_void, number: ::size_t, size: ::size_t) -> ::c_int; - - pub fn chflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; - pub fn fchflags(fd: ::c_int, flags: ::c_ulong) -> ::c_int; - pub fn lchflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; - - pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - - pub fn extattr_list_fd( - fd: ::c_int, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_list_file( - path: *const ::c_char, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_list_link( - path: *const ::c_char, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_delete_fd( - fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - ) -> ::c_int; - pub fn extattr_delete_file( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - ) -> ::c_int; - pub fn extattr_delete_link( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - ) -> ::c_int; - pub fn extattr_get_fd( - fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_get_file( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_get_link( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t, - ) -> ::ssize_t; - pub fn extattr_namespace_to_string( - attrnamespace: ::c_int, - string: *mut *mut ::c_char, - ) -> ::c_int; - pub fn extattr_set_fd( - fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t, - ) -> ::c_int; - pub fn extattr_set_file( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t, - ) -> ::c_int; - pub fn extattr_set_link( - path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t, - ) -> ::c_int; - pub fn extattr_string_to_namespace( - string: *const ::c_char, - attrnamespace: *mut ::c_int, - ) -> ::c_int; - - pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *mut ::termios, - winp: *mut ::winsize, - ) -> ::c_int; - pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *mut ::termios, - winp: *mut ::winsize, - ) -> ::pid_t; - - #[link_name = "__lutimes50"] - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; - #[link_name = "__gettimeofday50"] - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn sysctl( - name: *const ::c_int, - namelen: ::c_uint, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *const ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn sysctlbyname( - name: *const ::c_char, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *const ::c_void, - newlen: ::size_t, - ) -> ::c_int; - #[link_name = "__kevent50"] - pub fn kevent( - kq: ::c_int, - changelist: *const ::kevent, - nchanges: ::size_t, - eventlist: *mut ::kevent, - nevents: ::size_t, - timeout: *const ::timespec, - ) -> ::c_int; - #[link_name = "__mount50"] - pub fn mount( - src: *const ::c_char, - target: *const ::c_char, - flags: ::c_int, - data: *mut ::c_void, - size: ::size_t, - ) -> ::c_int; - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) -> ::c_int; - pub fn mq_receive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - ) -> ::ssize_t; - pub fn mq_send( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - ) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; - #[link_name = "__mq_timedreceive50"] - pub fn mq_timedreceive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::ssize_t; - #[link_name = "__mq_timedsend50"] - pub fn mq_timedsend( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::c_int; - pub fn ptrace(request: ::c_int, pid: ::pid_t, addr: *mut ::c_void, data: ::c_int) -> ::c_int; - pub fn utrace(label: *const ::c_char, addr: *mut ::c_void, len: ::size_t) -> ::c_int; - pub fn pthread_getname_np(t: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn pthread_setname_np( - t: ::pthread_t, - name: *const ::c_char, - arg: *const ::c_void, - ) -> ::c_int; - pub fn pthread_attr_get_np(thread: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_getattr_np(native: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_getguardsize( - attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t, - ) -> ::c_int; - pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; - pub fn pthread_getaffinity_np( - thread: ::pthread_t, - size: ::size_t, - set: *mut cpuset_t, - ) -> ::c_int; - pub fn pthread_setaffinity_np( - thread: ::pthread_t, - size: ::size_t, - set: *mut cpuset_t, - ) -> ::c_int; - - pub fn _cpuset_create() -> *mut cpuset_t; - pub fn _cpuset_destroy(set: *mut cpuset_t); - pub fn _cpuset_clr(cpu: cpuid_t, set: *mut cpuset_t) -> ::c_int; - pub fn _cpuset_set(cpu: cpuid_t, set: *mut cpuset_t) -> ::c_int; - pub fn _cpuset_isset(cpu: cpuid_t, set: *const cpuset_t) -> ::c_int; - pub fn _cpuset_size(set: *const cpuset_t) -> ::size_t; - pub fn _cpuset_zero(set: *mut cpuset_t); - #[link_name = "__sigtimedwait50"] - pub fn sigtimedwait( - set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; - pub fn waitid( - idtype: idtype_t, - id: ::id_t, - infop: *mut ::siginfo_t, - options: ::c_int, - ) -> ::c_int; - - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t); - pub fn localeconv_l(loc: ::locale_t) -> *mut lconv; - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - #[link_name = "__settimeofday50"] - pub fn settimeofday(tv: *const ::timeval, tz: *const ::c_void) -> ::c_int; - - pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; - - pub fn kqueue1(flags: ::c_int) -> ::c_int; - - pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - ) -> ::c_int; - pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - timeout: *mut ::timespec, - ) -> ::c_int; - - pub fn _lwp_self() -> lwpid_t; - pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; - - // link.h - - pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut dl_phdr_info, - size: usize, - data: *mut ::c_void, - ) -> ::c_int, - >, - data: *mut ::c_void, - ) -> ::c_int; - - // dlfcn.h - - pub fn _dlauxinfo() -> *mut ::c_void; - - pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; - pub fn iconv( - cd: iconv_t, - inbuf: *mut *mut ::c_char, - inbytesleft: *mut ::size_t, - outbuf: *mut *mut ::c_char, - outbytesleft: *mut ::size_t, - ) -> ::size_t; - pub fn iconv_close(cd: iconv_t) -> ::c_int; - - pub fn timer_create( - clockid: ::clockid_t, - sevp: *mut ::sigevent, - timerid: *mut ::timer_t, - ) -> ::c_int; - pub fn timer_delete(timerid: ::timer_t) -> ::c_int; - pub fn timer_getoverrun(timerid: ::timer_t) -> ::c_int; - pub fn timer_gettime(timerid: ::timer_t, curr_value: *mut ::itimerspec) -> ::c_int; - pub fn timer_settime( - timerid: ::timer_t, - flags: ::c_int, - new_value: *const ::itimerspec, - old_value: *mut ::itimerspec, - ) -> ::c_int; - - // Added in `NetBSD` 7.0 - pub fn explicit_memset(b: *mut ::c_void, c: ::c_int, len: ::size_t); - pub fn consttime_memequal(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int; - - pub fn setproctitle(fmt: *const ::c_char, ...); - pub fn mremap( - oldp: *mut ::c_void, - oldsize: ::size_t, - newp: *mut ::c_void, - newsize: ::size_t, - flags: ::c_int, - ) -> *mut ::c_void; - - pub fn sched_rr_get_interval(pid: ::pid_t, t: *mut ::timespec) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - - #[link_name = "__pollts50"] - pub fn pollts( - fds: *mut ::pollfd, - nfds: ::nfds_t, - ts: *const ::timespec, - sigmask: *const ::sigset_t, - ) -> ::c_int; - pub fn ppoll( - fds: *mut ::pollfd, - nfds: ::nfds_t, - ts: *const ::timespec, - sigmask: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawn( - pid: *mut ::pid_t, - path: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawnp( - pid: *mut ::pid_t, - file: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_getsigdefault( - attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigdefault( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getsigmask( - attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigmask( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getflags( - attr: *const posix_spawnattr_t, - flags: *mut ::c_short, - ) -> ::c_int; - pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; - pub fn posix_spawnattr_getpgroup( - attr: *const posix_spawnattr_t, - flags: *mut ::pid_t, - ) -> ::c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; - pub fn posix_spawnattr_getschedpolicy( - attr: *const posix_spawnattr_t, - flags: *mut ::c_int, - ) -> ::c_int; - pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; - pub fn posix_spawnattr_getschedparam( - attr: *const posix_spawnattr_t, - param: *mut ::sched_param, - ) -> ::c_int; - pub fn posix_spawnattr_setschedparam( - attr: *mut posix_spawnattr_t, - param: *const ::sched_param, - ) -> ::c_int; - - pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_addopen( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - path: *const ::c_char, - oflag: ::c_int, - mode: ::mode_t, - ) -> ::c_int; - pub fn posix_spawn_file_actions_addclose( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; - pub fn posix_spawn_file_actions_adddup2( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - newfd: ::c_int, - ) -> ::c_int; - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; -} - -#[link(name = "rt")] -extern "C" { - pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; - pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; - #[link_name = "__aio_suspend50"] - pub fn aio_suspend( - aiocb_list: *const *const aiocb, - nitems: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn lio_listio( - mode: ::c_int, - aiocb_list: *const *mut aiocb, - nitems: ::c_int, - sevp: *mut sigevent, - ) -> ::c_int; -} - -#[link(name = "util")] -extern "C" { - #[cfg_attr(target_os = "netbsd", link_name = "__getpwent_r50")] - pub fn getpwent_r( - pwd: *mut ::passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::passwd, - ) -> ::c_int; - pub fn getgrent_r( - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - - pub fn updwtmpx(file: *const ::c_char, ut: *const utmpx) -> ::c_int; - pub fn getlastlogx(fname: *const ::c_char, uid: ::uid_t, ll: *mut lastlogx) -> *mut lastlogx; - pub fn updlastlogx(fname: *const ::c_char, uid: ::uid_t, ll: *mut lastlogx) -> ::c_int; - pub fn utmpxname(file: *const ::c_char) -> ::c_int; - pub fn getutxent() -> *mut utmpx; - pub fn getutxid(ut: *const utmpx) -> *mut utmpx; - pub fn getutxline(ut: *const utmpx) -> *mut utmpx; - pub fn pututxline(ut: *const utmpx) -> *mut utmpx; - pub fn setutxent(); - pub fn endutxent(); - - pub fn getutmp(ux: *const utmpx, u: *mut utmp); - pub fn getutmpx(u: *const utmp, ux: *mut utmpx); - - pub fn utpname(file: *const ::c_char) -> ::c_int; - pub fn setutent(); - pub fn endutent(); - pub fn getutent() -> *mut utmp; - - pub fn efopen(p: *const ::c_char, m: *const ::c_char) -> ::FILE; - pub fn emalloc(n: ::size_t) -> *mut ::c_void; - pub fn ecalloc(n: ::size_t, c: ::size_t) -> *mut ::c_void; - pub fn erealloc(p: *mut ::c_void, n: ::size_t) -> *mut ::c_void; - pub fn ereallocarr(p: *mut ::c_void, n: ::size_t, s: ::size_t); - pub fn estrdup(s: *const ::c_char) -> *mut ::c_char; - pub fn estrndup(s: *const ::c_char, len: ::size_t) -> *mut ::c_char; - pub fn estrlcpy(dst: *mut ::c_char, src: *const ::c_char, len: ::size_t) -> ::size_t; - pub fn estrlcat(dst: *mut ::c_char, src: *const ::c_char, len: ::size_t) -> ::size_t; - pub fn estrtoi( - nptr: *const ::c_char, - base: ::c_int, - lo: ::intmax_t, - hi: ::intmax_t, - ) -> ::intmax_t; - pub fn estrtou( - nptr: *const ::c_char, - base: ::c_int, - lo: ::uintmax_t, - hi: ::uintmax_t, - ) -> ::uintmax_t; - pub fn easprintf(string: *mut *mut ::c_char, fmt: *const ::c_char, ...) -> ::c_int; - pub fn evasprintf(string: *mut *mut ::c_char, fmt: *const ::c_char, ...) -> ::c_int; - pub fn esetfunc( - cb: ::Option, - ) -> ::Option; - pub fn secure_path(path: *const ::c_char) -> ::c_int; - pub fn snprintb( - buf: *mut ::c_char, - buflen: ::size_t, - fmt: *const ::c_char, - val: u64, - ) -> ::c_int; - pub fn snprintb_m( - buf: *mut ::c_char, - buflen: ::size_t, - fmt: *const ::c_char, - val: u64, - max: ::size_t, - ) -> ::c_int; - - pub fn getbootfile() -> *const ::c_char; - pub fn getbyteorder() -> ::c_int; - pub fn getdiskrawname( - buf: *mut ::c_char, - buflen: ::size_t, - name: *const ::c_char, - ) -> *const ::c_char; - pub fn getdiskcookedname( - buf: *mut ::c_char, - buflen: ::size_t, - name: *const ::c_char, - ) -> *const ::c_char; - pub fn getfsspecname( - buf: *mut ::c_char, - buflen: ::size_t, - spec: *const ::c_char, - ) -> *const ::c_char; - - pub fn strpct( - buf: *mut ::c_char, - bufsiz: ::size_t, - numerator: ::uintmax_t, - denominator: ::uintmax_t, - precision: ::size_t, - ) -> *mut ::c_char; - pub fn strspct( - buf: *mut ::c_char, - bufsiz: ::size_t, - numerator: ::intmax_t, - denominator: ::intmax_t, - precision: ::size_t, - ) -> *mut ::c_char; - #[link_name = "__login50"] - pub fn login(ut: *const utmp); - #[link_name = "__loginx50"] - pub fn loginx(ut: *const utmpx); - pub fn logout(line: *const ::c_char); - pub fn logoutx(line: *const ::c_char, status: ::c_int, tpe: ::c_int); - pub fn logwtmp(line: *const ::c_char, name: *const ::c_char, host: *const ::c_char); - pub fn logwtmpx( - line: *const ::c_char, - name: *const ::c_char, - host: *const ::c_char, - status: ::c_int, - tpe: ::c_int, - ); - - pub fn getxattr( - path: *const ::c_char, - name: *const ::c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; - pub fn lgetxattr( - path: *const ::c_char, - name: *const ::c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; - pub fn fgetxattr( - filedes: ::c_int, - name: *const ::c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; - pub fn setxattr( - path: *const ::c_char, - name: *const ::c_char, - value: *const ::c_void, - size: ::size_t, - ) -> ::c_int; - pub fn lsetxattr( - path: *const ::c_char, - name: *const ::c_char, - value: *const ::c_void, - size: ::size_t, - ) -> ::c_int; - pub fn fsetxattr( - filedes: ::c_int, - name: *const ::c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn listxattr(path: *const ::c_char, list: *mut ::c_char, size: ::size_t) -> ::ssize_t; - pub fn llistxattr(path: *const ::c_char, list: *mut ::c_char, size: ::size_t) -> ::ssize_t; - pub fn flistxattr(filedes: ::c_int, list: *mut ::c_char, size: ::size_t) -> ::ssize_t; - pub fn removexattr(path: *const ::c_char, name: *const ::c_char) -> ::c_int; - pub fn lremovexattr(path: *const ::c_char, name: *const ::c_char) -> ::c_int; - pub fn fremovexattr(fd: ::c_int, path: *const ::c_char, name: *const ::c_char) -> ::c_int; - - pub fn string_to_flags( - string_p: *mut *mut ::c_char, - setp: *mut ::c_ulong, - clrp: *mut ::c_ulong, - ) -> ::c_int; - pub fn flags_to_string(flags: ::c_ulong, def: *const ::c_char) -> ::c_int; - - pub fn kinfo_getvmmap(pid: ::pid_t, cntp: *mut ::size_t) -> *mut kinfo_vmentry; -} - -cfg_if! { - if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else if #[cfg(target_arch = "arm")] { - mod arm; - pub use self::arm::*; - } else if #[cfg(target_arch = "powerpc")] { - mod powerpc; - pub use self::powerpc::*; - } else if #[cfg(target_arch = "sparc64")] { - mod sparc64; - pub use self::sparc64::*; - } else if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } else if #[cfg(target_arch = "x86")] { - mod x86; - pub use self::x86::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/powerpc.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/powerpc.rs deleted file mode 100644 index e12fd5e11..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/powerpc.rs +++ /dev/null @@ -1,21 +0,0 @@ -use PT_FIRSTMACH; - -pub type c_long = i32; -pub type c_ulong = u32; -pub type c_char = u8; -pub type __cpu_simple_lock_nv_t = ::c_int; - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} - -pub const PT_STEP: ::c_int = PT_FIRSTMACH + 0; -pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; -pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/sparc64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/sparc64.rs deleted file mode 100644 index 6a86759e0..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/sparc64.rs +++ /dev/null @@ -1,8 +0,0 @@ -pub type c_long = i64; -pub type c_ulong = u64; -pub type c_char = i8; -pub type __cpu_simple_lock_nv_t = ::c_uchar; - -// should be pub(crate), but that requires Rust 1.18.0 -#[doc(hidden)] -pub const _ALIGNBYTES: usize = 0xf; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86.rs deleted file mode 100644 index daa89a11a..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86.rs +++ /dev/null @@ -1,15 +0,0 @@ -pub type c_long = i32; -pub type c_ulong = u32; -pub type c_char = i8; -pub type __cpu_simple_lock_nv_t = ::c_uchar; - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 4 - 1; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86_64.rs deleted file mode 100644 index 2f6e44545..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/netbsd/x86_64.rs +++ /dev/null @@ -1,40 +0,0 @@ -use PT_FIRSTMACH; - -pub type c_long = i64; -pub type c_ulong = u64; -pub type c_char = i8; -pub type c___greg_t = u64; -pub type __cpu_simple_lock_nv_t = ::c_uchar; - -s! { - pub struct mcontext_t { - pub __gregs: [c___greg_t; 26], - pub _mc_tlsbase: c___greg_t, - pub __fpregs: [[::c_char;32]; 16], - } - - pub struct ucontext_t { - pub uc_flags: ::c_uint, - pub uc_link: *mut ::ucontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: ::mcontext_t, - } -} - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} - -pub const PT_STEP: ::c_int = PT_FIRSTMACH + 0; -pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; -pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; -pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3; -pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/aarch64.rs deleted file mode 100644 index 2bc82e486..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/aarch64.rs +++ /dev/null @@ -1,30 +0,0 @@ -pub type c_long = i64; -pub type c_ulong = u64; -pub type c_char = u8; -pub type ucontext_t = sigcontext; - -s! { - pub struct sigcontext { - __sc_unused: ::c_int, - pub sc_mask: ::c_int, - pub sc_sp: ::c_ulong, - pub sc_lr: ::c_ulong, - pub sc_elr: ::c_ulong, - pub sc_spsr: ::c_ulong, - pub sc_x: [::c_ulong; 30], - pub sc_cookie: ::c_long, - } -} - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} - -pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/arm.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/arm.rs deleted file mode 100644 index f1ab365d1..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/arm.rs +++ /dev/null @@ -1,16 +0,0 @@ -pub type c_long = i32; -pub type c_ulong = u32; -pub type c_char = u8; - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} - -pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mips64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mips64.rs deleted file mode 100644 index 15803ced0..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mips64.rs +++ /dev/null @@ -1,8 +0,0 @@ -pub type c_long = i64; -pub type c_ulong = u64; -pub type c_char = i8; - -#[doc(hidden)] -pub const _ALIGNBYTES: usize = 7; - -pub const _MAX_PAGE_SHIFT: u32 = 14; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mod.rs deleted file mode 100644 index 7fe81b3aa..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ /dev/null @@ -1,1988 +0,0 @@ -use unix::bsd::O_SYNC; - -pub type clock_t = i64; -pub type suseconds_t = ::c_long; -pub type dev_t = i32; -pub type sigset_t = ::c_uint; -pub type blksize_t = i32; -pub type fsblkcnt_t = u64; -pub type fsfilcnt_t = u64; -pub type idtype_t = ::c_uint; -pub type pthread_attr_t = *mut ::c_void; -pub type pthread_mutex_t = *mut ::c_void; -pub type pthread_mutexattr_t = *mut ::c_void; -pub type pthread_cond_t = *mut ::c_void; -pub type pthread_condattr_t = *mut ::c_void; -pub type pthread_rwlock_t = *mut ::c_void; -pub type pthread_rwlockattr_t = *mut ::c_void; -pub type pthread_spinlock_t = ::uintptr_t; -pub type caddr_t = *mut ::c_char; - -// elf.h - -pub type Elf32_Addr = u32; -pub type Elf32_Half = u16; -pub type Elf32_Lword = u64; -pub type Elf32_Off = u32; -pub type Elf32_Sword = i32; -pub type Elf32_Word = u32; - -pub type Elf64_Addr = u64; -pub type Elf64_Half = u16; -pub type Elf64_Lword = u64; -pub type Elf64_Off = u64; -pub type Elf64_Sword = i32; -pub type Elf64_Sxword = i64; -pub type Elf64_Word = u32; -pub type Elf64_Xword = u64; - -// search.h - -pub type ENTRY = entry; -pub type ACTION = ::c_uint; - -cfg_if! { - if #[cfg(target_pointer_width = "64")] { - type Elf_Addr = Elf64_Addr; - type Elf_Half = Elf64_Half; - type Elf_Phdr = Elf64_Phdr; - } else if #[cfg(target_pointer_width = "32")] { - type Elf_Addr = Elf32_Addr; - type Elf_Half = Elf32_Half; - type Elf_Phdr = Elf32_Phdr; - } -} - -s! { - pub struct ip_mreqn { - pub imr_multiaddr: in_addr, - pub imr_address: in_addr, - pub imr_ifindex: ::c_int, - } - - pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_matchc: ::size_t, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - pub gl_pathv: *mut *mut ::c_char, - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - __unused6: *mut ::c_void, - __unused7: *mut ::c_void, - } - - pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, - } - - pub struct ufs_args { - pub fspec: *mut ::c_char, - pub export_info: export_args, - } - - pub struct mfs_args { - pub fspec: *mut ::c_char, - pub export_info: export_args, - // https://github.com/openbsd/src/blob/HEAD/sys/sys/types.h#L134 - pub base: *mut ::c_char, - pub size: ::c_ulong, - } - - pub struct iso_args { - pub fspec: *mut ::c_char, - pub export_info: export_args, - pub flags: ::c_int, - pub sess: ::c_int, - } - - pub struct nfs_args { - pub version: ::c_int, - pub addr: *mut ::sockaddr, - pub addrlen: ::c_int, - pub sotype: ::c_int, - pub proto: ::c_int, - pub fh: *mut ::c_uchar, - pub fhsize: ::c_int, - pub flags: ::c_int, - pub wsize: ::c_int, - pub rsize: ::c_int, - pub readdirsize: ::c_int, - pub timeo: ::c_int, - pub retrans: ::c_int, - pub maxgrouplist: ::c_int, - pub readahead: ::c_int, - pub leaseterm: ::c_int, - pub deadthresh: ::c_int, - pub hostname: *mut ::c_char, - pub acregmin: ::c_int, - pub acregmax: ::c_int, - pub acdirmin: ::c_int, - pub acdirmax: ::c_int, - } - - pub struct msdosfs_args { - pub fspec: *mut ::c_char, - pub export_info: export_args, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub mask: ::mode_t, - pub flags: ::c_int, - } - - pub struct ntfs_args { - pub fspec: *mut ::c_char, - pub export_info: export_args, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub mode: ::mode_t, - pub flag: ::c_ulong, - } - - pub struct udf_args { - pub fspec: *mut ::c_char, - pub lastblock: u32, - } - - pub struct tmpfs_args { - pub ta_version: ::c_int, - pub ta_nodes_max: ::ino_t, - pub ta_size_max: ::off_t, - pub ta_root_uid: ::uid_t, - pub ta_root_gid: ::gid_t, - pub ta_root_mode: ::mode_t, - } - - pub struct fusefs_args { - pub name: *mut ::c_char, - pub fd: ::c_int, - pub max_read: ::c_int, - pub allow_other: ::c_int, - } - - pub struct xucred { - pub cr_uid: ::uid_t, - pub cr_gid: ::gid_t, - pub cr_ngroups: ::c_short, - //https://github.com/openbsd/src/blob/HEAD/sys/sys/syslimits.h#L44 - pub cr_groups: [::gid_t; 16], - } - - pub struct export_args { - pub ex_flags: ::c_int, - pub ex_root: ::uid_t, - pub ex_anon: xucred, - pub ex_addr: *mut ::sockaddr, - pub ex_addrlen: ::c_int, - pub ex_mask: *mut ::sockaddr, - pub ex_masklen: ::c_int, - } - - pub struct ip_mreq { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct in_addr { - pub s_addr: ::in_addr_t, - } - - pub struct sockaddr_in { - pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [i8; 8], - } - - pub struct splice { - pub sp_fd: ::c_int, - pub sp_max: ::off_t, - pub sp_idle: ::timeval, - } - - pub struct kevent { - pub ident: ::uintptr_t, - pub filter: ::c_short, - pub flags: ::c_ushort, - pub fflags: ::c_uint, - pub data: i64, - pub udata: *mut ::c_void, - } - - pub struct stat { - pub st_mode: ::mode_t, - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_size: ::off_t, - pub st_blocks: ::blkcnt_t, - pub st_blksize: ::blksize_t, - pub st_flags: u32, - pub st_gen: u32, - pub st_birthtime: ::time_t, - pub st_birthtime_nsec: ::c_long, - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - } - - pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::socklen_t, - pub ai_addr: *mut ::sockaddr, - pub ai_canonname: *mut ::c_char, - pub ai_next: *mut ::addrinfo, - } - - pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, - } - - pub struct if_data { - pub ifi_type: ::c_uchar, - pub ifi_addrlen: ::c_uchar, - pub ifi_hdrlen: ::c_uchar, - pub ifi_link_state: ::c_uchar, - pub ifi_mtu: u32, - pub ifi_metric: u32, - pub ifi_rdomain: u32, - pub ifi_baudrate: u64, - pub ifi_ipackets: u64, - pub ifi_ierrors: u64, - pub ifi_opackets: u64, - pub ifi_oerrors: u64, - pub ifi_collisions: u64, - pub ifi_ibytes: u64, - pub ifi_obytes: u64, - pub ifi_imcasts: u64, - pub ifi_omcasts: u64, - pub ifi_iqdrops: u64, - pub ifi_oqdrops: u64, - pub ifi_noproto: u64, - pub ifi_capabilities: u32, - pub ifi_lastchange: ::timeval, - } - - pub struct if_msghdr { - pub ifm_msglen: ::c_ushort, - pub ifm_version: ::c_uchar, - pub ifm_type: ::c_uchar, - pub ifm_hdrlen: ::c_ushort, - pub ifm_index: ::c_ushort, - pub ifm_tableid: ::c_ushort, - pub ifm_pad1: ::c_uchar, - pub ifm_pad2: ::c_uchar, - pub ifm_addrs: ::c_int, - pub ifm_flags: ::c_int, - pub ifm_xflags: ::c_int, - pub ifm_data: if_data, - } - - pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 24], - } - - pub struct sockpeercred { - pub uid: ::uid_t, - pub gid: ::gid_t, - pub pid: ::pid_t, - } - - pub struct arphdr { - pub ar_hrd: u16, - pub ar_pro: u16, - pub ar_hln: u8, - pub ar_pln: u8, - pub ar_op: u16, - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::c_int, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - pub shm_nattch: ::c_short, - pub shm_atime: ::time_t, - __shm_atimensec: c_long, - pub shm_dtime: ::time_t, - __shm_dtimensec: c_long, - pub shm_ctime: ::time_t, - __shm_ctimensec: c_long, - pub shm_internal: *mut ::c_void, - } - - // elf.h - pub struct Elf32_Phdr { - pub p_type: Elf32_Word, - pub p_offset: Elf32_Off, - pub p_vaddr: Elf32_Addr, - pub p_paddr: Elf32_Addr, - pub p_filesz: Elf32_Word, - pub p_memsz: Elf32_Word, - pub p_flags: Elf32_Word, - pub p_align: Elf32_Word, - } - - pub struct Elf64_Phdr { - pub p_type: Elf64_Word, - pub p_flags: Elf64_Word, - pub p_offset: Elf64_Off, - pub p_vaddr: Elf64_Addr, - pub p_paddr: Elf64_Addr, - pub p_filesz: Elf64_Xword, - pub p_memsz: Elf64_Xword, - pub p_align: Elf64_Xword, - } - - // link.h - - pub struct dl_phdr_info { - pub dlpi_addr: Elf_Addr, - pub dlpi_name: *const ::c_char, - pub dlpi_phdr: *const Elf_Phdr, - pub dlpi_phnum: Elf_Half, - } - - // sys/sysctl.h - pub struct kinfo_proc { - pub p_forw: u64, - pub p_back: u64, - pub p_paddr: u64, - pub p_addr: u64, - pub p_fd: u64, - pub p_stats: u64, - pub p_limit: u64, - pub p_vmspace: u64, - pub p_sigacts: u64, - pub p_sess: u64, - pub p_tsess: u64, - pub p_ru: u64, - pub p_eflag: i32, - pub p_exitsig: i32, - pub p_flag: i32, - pub p_pid: i32, - pub p_ppid: i32, - pub p_sid: i32, - pub p__pgid: i32, - pub p_tpgid: i32, - pub p_uid: u32, - pub p_ruid: u32, - pub p_gid: u32, - pub p_rgid: u32, - pub p_groups: [u32; KI_NGROUPS as usize], - pub p_ngroups: i16, - pub p_jobc: i16, - pub p_tdev: u32, - pub p_estcpu: u32, - pub p_rtime_sec: u32, - pub p_rtime_usec: u32, - pub p_cpticks: i32, - pub p_pctcpu: u32, - pub p_swtime: u32, - pub p_slptime: u32, - pub p_schedflags: i32, - pub p_uticks: u64, - pub p_sticks: u64, - pub p_iticks: u64, - pub p_tracep: u64, - pub p_traceflag: i32, - pub p_holdcnt: i32, - pub p_siglist: i32, - pub p_sigmask: u32, - pub p_sigignore: u32, - pub p_sigcatch: u32, - pub p_stat: i8, - pub p_priority: u8, - pub p_usrpri: u8, - pub p_nice: u8, - pub p_xstat: u16, - pub p_spare: u16, - pub p_comm: [::c_char; KI_MAXCOMLEN as usize], - pub p_wmesg: [::c_char; KI_WMESGLEN as usize], - pub p_wchan: u64, - pub p_login: [::c_char; KI_MAXLOGNAME as usize], - pub p_vm_rssize: i32, - pub p_vm_tsize: i32, - pub p_vm_dsize: i32, - pub p_vm_ssize: i32, - pub p_uvalid: i64, - pub p_ustart_sec: u64, - pub p_ustart_usec: u32, - pub p_uutime_sec: u32, - pub p_uutime_usec: u32, - pub p_ustime_sec: u32, - pub p_ustime_usec: u32, - pub p_uru_maxrss: u64, - pub p_uru_ixrss: u64, - pub p_uru_idrss: u64, - pub p_uru_isrss: u64, - pub p_uru_minflt: u64, - pub p_uru_majflt: u64, - pub p_uru_nswap: u64, - pub p_uru_inblock: u64, - pub p_uru_oublock: u64, - pub p_uru_msgsnd: u64, - pub p_uru_msgrcv: u64, - pub p_uru_nsignals: u64, - pub p_uru_nvcsw: u64, - pub p_uru_nivcsw: u64, - pub p_uctime_sec: u32, - pub p_uctime_usec: u32, - pub p_psflags: u32, - pub p_acflag: u32, - pub p_svuid: u32, - pub p_svgid: u32, - pub p_emul: [::c_char; KI_EMULNAMELEN as usize], - pub p_rlim_rss_cur: u64, - pub p_cpuid: u64, - pub p_vm_map_size: u64, - pub p_tid: i32, - pub p_rtableid: u32, - pub p_pledge: u64, - pub p_name: [::c_char; KI_MAXCOMLEN as usize], - } - - pub struct kinfo_vmentry { - pub kve_start: ::c_ulong, - pub kve_end: ::c_ulong, - pub kve_guard: ::c_ulong, - pub kve_fspace: ::c_ulong, - pub kve_fspace_augment: ::c_ulong, - pub kve_offset: u64, - pub kve_wired_count: ::c_int, - pub kve_etype: ::c_int, - pub kve_protection: ::c_int, - pub kve_max_protection: ::c_int, - pub kve_advice: ::c_int, - pub kve_inheritance: ::c_int, - pub kve_flags: u8, - } - - pub struct ptrace_state { - pub pe_report_event: ::c_int, - pub pe_other_pid: ::pid_t, - pub pe_tid: ::pid_t, - } - - pub struct ptrace_thread_state { - pub pts_tid: ::pid_t, - } - - // search.h - pub struct entry { - pub key: *mut ::c_char, - pub data: *mut ::c_void, - } -} - -impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_char { - self.si_addr - } - - pub unsafe fn si_value(&self) -> ::sigval { - #[repr(C)] - struct siginfo_timer { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - _pid: ::pid_t, - _uid: ::uid_t, - value: ::sigval, - } - (*(self as *const siginfo_t as *const siginfo_timer)).value - } -} - -s_no_extra_traits! { - pub struct dirent { - pub d_fileno: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: u16, - pub d_type: u8, - pub d_namlen: u8, - __d_padding: [u8; 4], - pub d_name: [::c_char; 256], - } - - pub struct sockaddr_storage { - pub ss_len: u8, - pub ss_family: ::sa_family_t, - __ss_pad1: [u8; 6], - __ss_pad2: i64, - __ss_pad3: [u8; 240], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - pub si_addr: *mut ::c_char, - #[cfg(target_pointer_width = "32")] - __pad: [u8; 112], - #[cfg(target_pointer_width = "64")] - __pad: [u8; 108], - } - - pub struct lastlog { - ll_time: ::time_t, - ll_line: [::c_char; UT_LINESIZE], - ll_host: [::c_char; UT_HOSTSIZE], - } - - pub struct utmp { - pub ut_line: [::c_char; UT_LINESIZE], - pub ut_name: [::c_char; UT_NAMESIZE], - pub ut_host: [::c_char; UT_HOSTSIZE], - pub ut_time: ::time_t, - } - - pub union mount_info { - pub ufs_args: ufs_args, - pub mfs_args: mfs_args, - pub nfs_args: nfs_args, - pub iso_args: iso_args, - pub msdosfs_args: msdosfs_args, - pub ntfs_args: ntfs_args, - pub tmpfs_args: tmpfs_args, - align: [::c_char; 160], - } - -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_fileno == other.d_fileno - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self.d_namlen == other.d_namlen - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for dirent {} - - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_fileno", &self.d_fileno) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - .field("d_namlen", &self.d_namlen) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_fileno.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_namlen.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_len == other.ss_len - && self.ss_family == other.ss_family - } - } - - impl Eq for sockaddr_storage {} - - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .finish() - } - } - - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_len.hash(state); - self.ss_family.hash(state); - } - } - - impl PartialEq for siginfo_t { - fn eq(&self, other: &siginfo_t) -> bool { - self.si_signo == other.si_signo - && self.si_code == other.si_code - && self.si_errno == other.si_errno - && self.si_addr == other.si_addr - } - } - - impl Eq for siginfo_t {} - - impl ::fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("siginfo_t") - .field("si_signo", &self.si_signo) - .field("si_code", &self.si_code) - .field("si_errno", &self.si_errno) - .field("si_addr", &self.si_addr) - .finish() - } - } - - impl ::hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { - self.si_signo.hash(state); - self.si_code.hash(state); - self.si_errno.hash(state); - self.si_addr.hash(state); - } - } - - impl PartialEq for lastlog { - fn eq(&self, other: &lastlog) -> bool { - self.ll_time == other.ll_time - && self - .ll_line - .iter() - .zip(other.ll_line.iter()) - .all(|(a,b)| a == b) - && self - .ll_host - .iter() - .zip(other.ll_host.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for lastlog {} - - impl ::fmt::Debug for lastlog { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("lastlog") - .field("ll_time", &self.ll_time) - // FIXME: .field("ll_line", &self.ll_line) - // FIXME: .field("ll_host", &self.ll_host) - .finish() - } - } - - impl ::hash::Hash for lastlog { - fn hash(&self, state: &mut H) { - self.ll_time.hash(state); - self.ll_line.hash(state); - self.ll_host.hash(state); - } - } - - impl PartialEq for utmp { - fn eq(&self, other: &utmp) -> bool { - self.ut_time == other.ut_time - && self - .ut_line - .iter() - .zip(other.ut_line.iter()) - .all(|(a,b)| a == b) - && self - .ut_name - .iter() - .zip(other.ut_name.iter()) - .all(|(a,b)| a == b) - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for utmp {} - - impl ::fmt::Debug for utmp { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utmp") - // FIXME: .field("ut_line", &self.ut_line) - // FIXME: .field("ut_name", &self.ut_name) - // FIXME: .field("ut_host", &self.ut_host) - .field("ut_time", &self.ut_time) - .finish() - } - } - - impl ::hash::Hash for utmp { - fn hash(&self, state: &mut H) { - self.ut_line.hash(state); - self.ut_name.hash(state); - self.ut_host.hash(state); - self.ut_time.hash(state); - } - } - - impl PartialEq for mount_info { - fn eq(&self, other: &mount_info) -> bool { - unsafe { - self.align - .iter() - .zip(other.align.iter()) - .all(|(a,b)| a == b) - } - } - } - - impl Eq for mount_info { } - - impl ::fmt::Debug for mount_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mount_info") - // FIXME: .field("align", &self.align) - .finish() - } - } - - impl ::hash::Hash for mount_info { - fn hash(&self, state: &mut H) { - unsafe { self.align.hash(state) }; - } - } - } -} - -cfg_if! { - if #[cfg(libc_union)] { - s_no_extra_traits! { - // This type uses the union mount_info: - pub struct statfs { - pub f_flags: u32, - pub f_bsize: u32, - pub f_iosize: u32, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: i64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: i64, - pub f_syncwrites: u64, - pub f_syncreads: u64, - pub f_asyncwrites: u64, - pub f_asyncreads: u64, - pub f_fsid: ::fsid_t, - pub f_namemax: u32, - pub f_owner: ::uid_t, - pub f_ctime: u64, - pub f_fstypename: [::c_char; 16], - pub f_mntonname: [::c_char; 90], - pub f_mntfromname: [::c_char; 90], - pub f_mntfromspec: [::c_char; 90], - pub mount_info: mount_info, - } - } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for statfs { - fn eq(&self, other: &statfs) -> bool { - self.f_flags == other.f_flags - && self.f_bsize == other.f_bsize - && self.f_iosize == other.f_iosize - && self.f_blocks == other.f_blocks - && self.f_bfree == other.f_bfree - && self.f_bavail == other.f_bavail - && self.f_files == other.f_files - && self.f_ffree == other.f_ffree - && self.f_favail == other.f_favail - && self.f_syncwrites == other.f_syncwrites - && self.f_syncreads == other.f_syncreads - && self.f_asyncwrites == other.f_asyncwrites - && self.f_asyncreads == other.f_asyncreads - && self.f_fsid == other.f_fsid - && self.f_namemax == other.f_namemax - && self.f_owner == other.f_owner - && self.f_ctime == other.f_ctime - && self.f_fstypename - .iter() - .zip(other.f_fstypename.iter()) - .all(|(a,b)| a == b) - && self.f_mntonname - .iter() - .zip(other.f_mntonname.iter()) - .all(|(a,b)| a == b) - && self.f_mntfromname - .iter() - .zip(other.f_mntfromname.iter()) - .all(|(a,b)| a == b) - && self.f_mntfromspec - .iter() - .zip(other.f_mntfromspec.iter()) - .all(|(a,b)| a == b) - && self.mount_info == other.mount_info - } - } - - impl Eq for statfs { } - - impl ::fmt::Debug for statfs { - fn fmt(&self, f: &mut ::fmt::Formatter) - -> ::fmt::Result { - f.debug_struct("statfs") - .field("f_flags", &self.f_flags) - .field("f_bsize", &self.f_bsize) - .field("f_iosize", &self.f_iosize) - .field("f_blocks", &self.f_blocks) - .field("f_bfree", &self.f_bfree) - .field("f_bavail", &self.f_bavail) - .field("f_files", &self.f_files) - .field("f_ffree", &self.f_ffree) - .field("f_favail", &self.f_favail) - .field("f_syncwrites", &self.f_syncwrites) - .field("f_syncreads", &self.f_syncreads) - .field("f_asyncwrites", &self.f_asyncwrites) - .field("f_asyncreads", &self.f_asyncreads) - .field("f_fsid", &self.f_fsid) - .field("f_namemax", &self.f_namemax) - .field("f_owner", &self.f_owner) - .field("f_ctime", &self.f_ctime) - // FIXME: .field("f_fstypename", &self.f_fstypename) - // FIXME: .field("f_mntonname", &self.f_mntonname) - // FIXME: .field("f_mntfromname", &self.f_mntfromname) - // FIXME: .field("f_mntfromspec", &self.f_mntfromspec) - .field("mount_info", &self.mount_info) - .finish() - } - } - - impl ::hash::Hash for statfs { - fn hash(&self, state: &mut H) { - self.f_flags.hash(state); - self.f_bsize.hash(state); - self.f_iosize.hash(state); - self.f_blocks.hash(state); - self.f_bfree.hash(state); - self.f_bavail.hash(state); - self.f_files.hash(state); - self.f_ffree.hash(state); - self.f_favail.hash(state); - self.f_syncwrites.hash(state); - self.f_syncreads.hash(state); - self.f_asyncwrites.hash(state); - self.f_asyncreads.hash(state); - self.f_fsid.hash(state); - self.f_namemax.hash(state); - self.f_owner.hash(state); - self.f_ctime.hash(state); - self.f_fstypename.hash(state); - self.f_mntonname.hash(state); - self.f_mntfromname.hash(state); - self.f_mntfromspec.hash(state); - self.mount_info.hash(state); - } - } - } - } - } -} - -pub const UT_NAMESIZE: usize = 32; -pub const UT_LINESIZE: usize = 8; -pub const UT_HOSTSIZE: usize = 256; - -pub const O_CLOEXEC: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x20000; -pub const O_RSYNC: ::c_int = O_SYNC; - -pub const MS_SYNC: ::c_int = 0x0002; -pub const MS_INVALIDATE: ::c_int = 0x0004; - -pub const POLLNORM: ::c_short = ::POLLRDNORM; - -pub const ENOATTR: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const EOVERFLOW: ::c_int = 87; -pub const ECANCELED: ::c_int = 88; -pub const EIDRM: ::c_int = 89; -pub const ENOMSG: ::c_int = 90; -pub const ENOTSUP: ::c_int = 91; -pub const EBADMSG: ::c_int = 92; -pub const ENOTRECOVERABLE: ::c_int = 93; -pub const EOWNERDEAD: ::c_int = 94; -pub const EPROTO: ::c_int = 95; -pub const ELAST: ::c_int = 95; - -pub const F_DUPFD_CLOEXEC: ::c_int = 10; - -pub const UTIME_OMIT: c_long = -1; -pub const UTIME_NOW: c_long = -2; - -pub const AT_FDCWD: ::c_int = -100; -pub const AT_EACCESS: ::c_int = 0x01; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x02; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x04; -pub const AT_REMOVEDIR: ::c_int = 0x08; - -#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: ::c_int = 9; - -pub const SO_TIMESTAMP: ::c_int = 0x0800; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_BINDANY: ::c_int = 0x1000; -pub const SO_NETPROC: ::c_int = 0x1020; -pub const SO_RTABLE: ::c_int = 0x1021; -pub const SO_PEERCRED: ::c_int = 0x1022; -pub const SO_SPLICE: ::c_int = 0x1023; - -// sys/netinet/in.h -// Protocols (RFC 1700) -// NOTE: These are in addition to the constants defined in src/unix/mod.rs - -// IPPROTO_IP defined in src/unix/mod.rs -/// Hop-by-hop option header -pub const IPPROTO_HOPOPTS: ::c_int = 0; -// IPPROTO_ICMP defined in src/unix/mod.rs -/// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; -/// gateway^2 (deprecated) -pub const IPPROTO_GGP: ::c_int = 3; -/// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; -// IPPROTO_TCP defined in src/unix/mod.rs -/// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; -/// pup -pub const IPPROTO_PUP: ::c_int = 12; -// IPPROTO_UDP defined in src/unix/mod.rs -/// xns idp -pub const IPPROTO_IDP: ::c_int = 22; -/// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; -// IPPROTO_IPV6 defined in src/unix/mod.rs -/// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; -/// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; -/// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; -/// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; -/// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; -/// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; -/// IP Mobility RFC 2004 -pub const IPPROTO_MOBILE: ::c_int = 55; -// IPPROTO_ICMPV6 defined in src/unix/mod.rs -/// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; -/// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; -/// ISO cnlp -pub const IPPROTO_EON: ::c_int = 80; -/// Ethernet-in-IP -pub const IPPROTO_ETHERIP: ::c_int = 97; -/// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; -/// Protocol indep. multicast -pub const IPPROTO_PIM: ::c_int = 103; -/// IP Payload Comp. Protocol -pub const IPPROTO_IPCOMP: ::c_int = 108; -/// CARP -pub const IPPROTO_CARP: ::c_int = 112; -/// unicast MPLS packet -pub const IPPROTO_MPLS: ::c_int = 137; -/// PFSYNC -pub const IPPROTO_PFSYNC: ::c_int = 240; -pub const IPPROTO_MAX: ::c_int = 256; - -// Only used internally, so it can be outside the range of valid IP protocols -pub const IPPROTO_DIVERT: ::c_int = 258; - -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; -pub const IP_RECVIF: ::c_int = 30; - -// sys/netinet/in.h -pub const TCP_MD5SIG: ::c_int = 0x04; -pub const TCP_NOPUSH: ::c_int = 0x10; - -pub const MSG_WAITFORONE: ::c_int = 0x1000; - -pub const AF_ECMA: ::c_int = 8; -pub const AF_ROUTE: ::c_int = 17; -pub const AF_ENCAP: ::c_int = 28; -pub const AF_SIP: ::c_int = 29; -pub const AF_KEY: ::c_int = 30; -pub const pseudo_AF_HDRCMPLT: ::c_int = 31; -pub const AF_BLUETOOTH: ::c_int = 32; -pub const AF_MPLS: ::c_int = 33; -pub const pseudo_AF_PFLOW: ::c_int = 34; -pub const pseudo_AF_PIPEX: ::c_int = 35; -pub const NET_RT_DUMP: ::c_int = 1; -pub const NET_RT_FLAGS: ::c_int = 2; -pub const NET_RT_IFLIST: ::c_int = 3; -pub const NET_RT_STATS: ::c_int = 4; -pub const NET_RT_TABLE: ::c_int = 5; -pub const NET_RT_IFNAMES: ::c_int = 6; -#[doc(hidden)] -#[deprecated( - since = "0.2.95", - note = "Possibly increasing over the releases and might not be so used in the field" -)] -pub const NET_RT_MAXID: ::c_int = 7; - -pub const IPV6_JOIN_GROUP: ::c_int = 12; -pub const IPV6_LEAVE_GROUP: ::c_int = 13; - -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_ECMA: ::c_int = AF_ECMA; -pub const PF_ENCAP: ::c_int = AF_ENCAP; -pub const PF_SIP: ::c_int = AF_SIP; -pub const PF_KEY: ::c_int = AF_KEY; -pub const PF_BPF: ::c_int = pseudo_AF_HDRCMPLT; -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -pub const PF_MPLS: ::c_int = AF_MPLS; -pub const PF_PFLOW: ::c_int = pseudo_AF_PFLOW; -pub const PF_PIPEX: ::c_int = pseudo_AF_PIPEX; - -pub const SCM_TIMESTAMP: ::c_int = 0x04; - -pub const O_DSYNC: ::c_int = 128; - -pub const MAP_RENAME: ::c_int = 0x0000; -pub const MAP_NORESERVE: ::c_int = 0x0000; -pub const MAP_HASSEMAPHORE: ::c_int = 0x0000; - -pub const EIPSEC: ::c_int = 82; -pub const ENOMEDIUM: ::c_int = 85; -pub const EMEDIUMTYPE: ::c_int = 86; - -pub const EAI_BADFLAGS: ::c_int = -1; -pub const EAI_NONAME: ::c_int = -2; -pub const EAI_AGAIN: ::c_int = -3; -pub const EAI_FAIL: ::c_int = -4; -pub const EAI_NODATA: ::c_int = -5; -pub const EAI_FAMILY: ::c_int = -6; -pub const EAI_SOCKTYPE: ::c_int = -7; -pub const EAI_SERVICE: ::c_int = -8; -pub const EAI_MEMORY: ::c_int = -10; -pub const EAI_SYSTEM: ::c_int = -11; -pub const EAI_OVERFLOW: ::c_int = -14; - -pub const RUSAGE_THREAD: ::c_int = 1; - -pub const MAP_COPY: ::c_int = 0x0002; -pub const MAP_NOEXTEND: ::c_int = 0x0000; - -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; -pub const _PC_NO_TRUNC: ::c_int = 8; -pub const _PC_VDISABLE: ::c_int = 9; -pub const _PC_2_SYMLINKS: ::c_int = 10; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 11; -pub const _PC_ASYNC_IO: ::c_int = 12; -pub const _PC_FILESIZEBITS: ::c_int = 13; -pub const _PC_PRIO_IO: ::c_int = 14; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 17; -pub const _PC_REC_XFER_ALIGN: ::c_int = 18; -pub const _PC_SYMLINK_MAX: ::c_int = 19; -pub const _PC_SYNC_IO: ::c_int = 20; -pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 21; - -pub const _SC_CLK_TCK: ::c_int = 3; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 31; -pub const _SC_SEM_VALUE_MAX: ::c_int = 32; -pub const _SC_HOST_NAME_MAX: ::c_int = 33; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 34; -pub const _SC_2_PBS: ::c_int = 35; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 36; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 37; -pub const _SC_2_PBS_LOCATE: ::c_int = 38; -pub const _SC_2_PBS_MESSAGE: ::c_int = 39; -pub const _SC_2_PBS_TRACK: ::c_int = 40; -pub const _SC_ADVISORY_INFO: ::c_int = 41; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 42; -pub const _SC_AIO_MAX: ::c_int = 43; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 44; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 45; -pub const _SC_ATEXIT_MAX: ::c_int = 46; -pub const _SC_BARRIERS: ::c_int = 47; -pub const _SC_CLOCK_SELECTION: ::c_int = 48; -pub const _SC_CPUTIME: ::c_int = 49; -pub const _SC_DELAYTIMER_MAX: ::c_int = 50; -pub const _SC_IOV_MAX: ::c_int = 51; -pub const _SC_IPV6: ::c_int = 52; -pub const _SC_MAPPED_FILES: ::c_int = 53; -pub const _SC_MEMLOCK: ::c_int = 54; -pub const _SC_MEMLOCK_RANGE: ::c_int = 55; -pub const _SC_MEMORY_PROTECTION: ::c_int = 56; -pub const _SC_MESSAGE_PASSING: ::c_int = 57; -pub const _SC_MQ_OPEN_MAX: ::c_int = 58; -pub const _SC_MQ_PRIO_MAX: ::c_int = 59; -pub const _SC_PRIORITIZED_IO: ::c_int = 60; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 61; -pub const _SC_RAW_SOCKETS: ::c_int = 62; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 63; -pub const _SC_REALTIME_SIGNALS: ::c_int = 64; -pub const _SC_REGEXP: ::c_int = 65; -pub const _SC_RTSIG_MAX: ::c_int = 66; -pub const _SC_SEMAPHORES: ::c_int = 67; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 68; -pub const _SC_SHELL: ::c_int = 69; -pub const _SC_SIGQUEUE_MAX: ::c_int = 70; -pub const _SC_SPAWN: ::c_int = 71; -pub const _SC_SPIN_LOCKS: ::c_int = 72; -pub const _SC_SPORADIC_SERVER: ::c_int = 73; -pub const _SC_SS_REPL_MAX: ::c_int = 74; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 75; -pub const _SC_SYMLOOP_MAX: ::c_int = 76; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; -pub const _SC_THREAD_CPUTIME: ::c_int = 79; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 80; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 81; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 82; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 83; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 84; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 85; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 86; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 87; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 88; -pub const _SC_THREAD_STACK_MIN: ::c_int = 89; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 90; -pub const _SC_THREADS: ::c_int = 91; -pub const _SC_TIMEOUTS: ::c_int = 92; -pub const _SC_TIMER_MAX: ::c_int = 93; -pub const _SC_TIMERS: ::c_int = 94; -pub const _SC_TRACE: ::c_int = 95; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 96; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 97; -pub const _SC_TRACE_INHERIT: ::c_int = 98; -pub const _SC_TRACE_LOG: ::c_int = 99; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 100; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 101; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 102; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 103; -pub const _SC_TRACE_NAME_MAX: ::c_int = 104; -pub const _SC_TRACE_SYS_MAX: ::c_int = 105; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 106; -pub const _SC_TTY_NAME_MAX: ::c_int = 107; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 108; -pub const _SC_V6_ILP32_OFF32: ::c_int = 109; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 110; -pub const _SC_V6_LP64_OFF64: ::c_int = 111; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 112; -pub const _SC_V7_ILP32_OFF32: ::c_int = 113; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 114; -pub const _SC_V7_LP64_OFF64: ::c_int = 115; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 116; -pub const _SC_XOPEN_CRYPT: ::c_int = 117; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 118; -pub const _SC_XOPEN_LEGACY: ::c_int = 119; -pub const _SC_XOPEN_REALTIME: ::c_int = 120; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 121; -pub const _SC_XOPEN_STREAMS: ::c_int = 122; -pub const _SC_XOPEN_UNIX: ::c_int = 123; -pub const _SC_XOPEN_UUCP: ::c_int = 124; -pub const _SC_XOPEN_VERSION: ::c_int = 125; -pub const _SC_PHYS_PAGES: ::c_int = 500; -pub const _SC_AVPHYS_PAGES: ::c_int = 501; -pub const _SC_NPROCESSORS_CONF: ::c_int = 502; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 503; - -pub const FD_SETSIZE: usize = 1024; - -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_OTHER: ::c_int = 2; -pub const SCHED_RR: ::c_int = 3; - -pub const ST_NOSUID: ::c_ulong = 2; - -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _; - -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3; -pub const PTHREAD_MUTEX_STRICT_NP: ::c_int = 4; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_STRICT_NP; - -pub const EVFILT_READ: i16 = -1; -pub const EVFILT_WRITE: i16 = -2; -pub const EVFILT_AIO: i16 = -3; -pub const EVFILT_VNODE: i16 = -4; -pub const EVFILT_PROC: i16 = -5; -pub const EVFILT_SIGNAL: i16 = -6; -pub const EVFILT_TIMER: i16 = -7; -pub const EVFILT_DEVICE: i16 = -8; -pub const EVFILT_EXCEPT: i16 = -9; - -pub const EV_ADD: u16 = 0x1; -pub const EV_DELETE: u16 = 0x2; -pub const EV_ENABLE: u16 = 0x4; -pub const EV_DISABLE: u16 = 0x8; -pub const EV_ONESHOT: u16 = 0x10; -pub const EV_CLEAR: u16 = 0x20; -pub const EV_RECEIPT: u16 = 0x40; -pub const EV_DISPATCH: u16 = 0x80; -pub const EV_FLAG1: u16 = 0x2000; -pub const EV_ERROR: u16 = 0x4000; -pub const EV_EOF: u16 = 0x8000; - -#[deprecated(since = "0.2.113", note = "Not stable across OS versions")] -pub const EV_SYSFLAGS: u16 = 0xf800; - -pub const NOTE_LOWAT: u32 = 0x00000001; -pub const NOTE_EOF: u32 = 0x00000002; -pub const NOTE_OOB: u32 = 0x00000004; -pub const NOTE_DELETE: u32 = 0x00000001; -pub const NOTE_WRITE: u32 = 0x00000002; -pub const NOTE_EXTEND: u32 = 0x00000004; -pub const NOTE_ATTRIB: u32 = 0x00000008; -pub const NOTE_LINK: u32 = 0x00000010; -pub const NOTE_RENAME: u32 = 0x00000020; -pub const NOTE_REVOKE: u32 = 0x00000040; -pub const NOTE_TRUNCATE: u32 = 0x00000080; -pub const NOTE_EXIT: u32 = 0x80000000; -pub const NOTE_FORK: u32 = 0x40000000; -pub const NOTE_EXEC: u32 = 0x20000000; -pub const NOTE_PDATAMASK: u32 = 0x000fffff; -pub const NOTE_PCTRLMASK: u32 = 0xf0000000; -pub const NOTE_TRACK: u32 = 0x00000001; -pub const NOTE_TRACKERR: u32 = 0x00000002; -pub const NOTE_CHILD: u32 = 0x00000004; -pub const NOTE_CHANGE: u32 = 0x00000001; - -pub const TMP_MAX: ::c_uint = 0x7fffffff; - -pub const AI_PASSIVE: ::c_int = 1; -pub const AI_CANONNAME: ::c_int = 2; -pub const AI_NUMERICHOST: ::c_int = 4; -pub const AI_EXT: ::c_int = 8; -pub const AI_NUMERICSERV: ::c_int = 16; -pub const AI_FQDN: ::c_int = 32; -pub const AI_ADDRCONFIG: ::c_int = 64; - -pub const NI_NUMERICHOST: ::c_int = 1; -pub const NI_NUMERICSERV: ::c_int = 2; -pub const NI_NOFQDN: ::c_int = 4; -pub const NI_NAMEREQD: ::c_int = 8; -pub const NI_DGRAM: ::c_int = 16; - -pub const NI_MAXHOST: ::size_t = 256; - -pub const RTLD_LOCAL: ::c_int = 0; - -pub const CTL_MAXNAME: ::c_int = 12; - -pub const CTLTYPE_NODE: ::c_int = 1; -pub const CTLTYPE_INT: ::c_int = 2; -pub const CTLTYPE_STRING: ::c_int = 3; -pub const CTLTYPE_QUAD: ::c_int = 4; -pub const CTLTYPE_STRUCT: ::c_int = 5; - -pub const CTL_UNSPEC: ::c_int = 0; -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_FS: ::c_int = 3; -pub const CTL_NET: ::c_int = 4; -pub const CTL_DEBUG: ::c_int = 5; -pub const CTL_HW: ::c_int = 6; -pub const CTL_MACHDEP: ::c_int = 7; -pub const CTL_DDB: ::c_int = 9; -pub const CTL_VFS: ::c_int = 10; -pub const CTL_MAXID: ::c_int = 11; - -pub const HW_NCPUONLINE: ::c_int = 25; - -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_MAXVNODES: ::c_int = 5; -pub const KERN_MAXPROC: ::c_int = 6; -pub const KERN_MAXFILES: ::c_int = 7; -pub const KERN_ARGMAX: ::c_int = 8; -pub const KERN_SECURELVL: ::c_int = 9; -pub const KERN_HOSTNAME: ::c_int = 10; -pub const KERN_HOSTID: ::c_int = 11; -pub const KERN_CLOCKRATE: ::c_int = 12; -pub const KERN_PROF: ::c_int = 16; -pub const KERN_POSIX1: ::c_int = 17; -pub const KERN_NGROUPS: ::c_int = 18; -pub const KERN_JOB_CONTROL: ::c_int = 19; -pub const KERN_SAVED_IDS: ::c_int = 20; -pub const KERN_BOOTTIME: ::c_int = 21; -pub const KERN_DOMAINNAME: ::c_int = 22; -pub const KERN_MAXPARTITIONS: ::c_int = 23; -pub const KERN_RAWPARTITION: ::c_int = 24; -pub const KERN_MAXTHREAD: ::c_int = 25; -pub const KERN_NTHREADS: ::c_int = 26; -pub const KERN_OSVERSION: ::c_int = 27; -pub const KERN_SOMAXCONN: ::c_int = 28; -pub const KERN_SOMINCONN: ::c_int = 29; -#[deprecated(since = "0.2.71", note = "Removed in OpenBSD 6.0")] -pub const KERN_USERMOUNT: ::c_int = 30; -pub const KERN_NOSUIDCOREDUMP: ::c_int = 32; -pub const KERN_FSYNC: ::c_int = 33; -pub const KERN_SYSVMSG: ::c_int = 34; -pub const KERN_SYSVSEM: ::c_int = 35; -pub const KERN_SYSVSHM: ::c_int = 36; -#[deprecated(since = "0.2.71", note = "Removed in OpenBSD 6.0")] -pub const KERN_ARND: ::c_int = 37; -pub const KERN_MSGBUFSIZE: ::c_int = 38; -pub const KERN_MALLOCSTATS: ::c_int = 39; -pub const KERN_CPTIME: ::c_int = 40; -pub const KERN_NCHSTATS: ::c_int = 41; -pub const KERN_FORKSTAT: ::c_int = 42; -pub const KERN_NSELCOLL: ::c_int = 43; -pub const KERN_TTY: ::c_int = 44; -pub const KERN_CCPU: ::c_int = 45; -pub const KERN_FSCALE: ::c_int = 46; -pub const KERN_NPROCS: ::c_int = 47; -pub const KERN_MSGBUF: ::c_int = 48; -pub const KERN_POOL: ::c_int = 49; -pub const KERN_STACKGAPRANDOM: ::c_int = 50; -pub const KERN_SYSVIPC_INFO: ::c_int = 51; -pub const KERN_SPLASSERT: ::c_int = 54; -pub const KERN_PROC_ARGS: ::c_int = 55; -pub const KERN_NFILES: ::c_int = 56; -pub const KERN_TTYCOUNT: ::c_int = 57; -pub const KERN_NUMVNODES: ::c_int = 58; -pub const KERN_MBSTAT: ::c_int = 59; -pub const KERN_SEMINFO: ::c_int = 61; -pub const KERN_SHMINFO: ::c_int = 62; -pub const KERN_INTRCNT: ::c_int = 63; -pub const KERN_WATCHDOG: ::c_int = 64; -pub const KERN_PROC: ::c_int = 66; -pub const KERN_MAXCLUSTERS: ::c_int = 67; -pub const KERN_EVCOUNT: ::c_int = 68; -pub const KERN_TIMECOUNTER: ::c_int = 69; -pub const KERN_MAXLOCKSPERUID: ::c_int = 70; -pub const KERN_CPTIME2: ::c_int = 71; -pub const KERN_CACHEPCT: ::c_int = 72; -pub const KERN_FILE: ::c_int = 73; -pub const KERN_CONSDEV: ::c_int = 75; -pub const KERN_NETLIVELOCKS: ::c_int = 76; -pub const KERN_POOL_DEBUG: ::c_int = 77; -pub const KERN_PROC_CWD: ::c_int = 78; -pub const KERN_PROC_NOBROADCASTKILL: ::c_int = 79; -pub const KERN_PROC_VMMAP: ::c_int = 80; -pub const KERN_GLOBAL_PTRACE: ::c_int = 81; -pub const KERN_CONSBUFSIZE: ::c_int = 82; -pub const KERN_CONSBUF: ::c_int = 83; -pub const KERN_AUDIO: ::c_int = 84; -pub const KERN_CPUSTATS: ::c_int = 85; -pub const KERN_PFSTATUS: ::c_int = 86; -pub const KERN_TIMEOUT_STATS: ::c_int = 87; -#[deprecated( - since = "0.2.95", - note = "Possibly increasing over the releases and might not be so used in the field" -)] -pub const KERN_MAXID: ::c_int = 88; - -pub const KERN_PROC_ALL: ::c_int = 0; -pub const KERN_PROC_PID: ::c_int = 1; -pub const KERN_PROC_PGRP: ::c_int = 2; -pub const KERN_PROC_SESSION: ::c_int = 3; -pub const KERN_PROC_TTY: ::c_int = 4; -pub const KERN_PROC_UID: ::c_int = 5; -pub const KERN_PROC_RUID: ::c_int = 6; -pub const KERN_PROC_KTHREAD: ::c_int = 7; -pub const KERN_PROC_SHOW_THREADS: ::c_int = 0x40000000; - -pub const KERN_SYSVIPC_MSG_INFO: ::c_int = 1; -pub const KERN_SYSVIPC_SEM_INFO: ::c_int = 2; -pub const KERN_SYSVIPC_SHM_INFO: ::c_int = 3; - -pub const KERN_PROC_ARGV: ::c_int = 1; -pub const KERN_PROC_NARGV: ::c_int = 2; -pub const KERN_PROC_ENV: ::c_int = 3; -pub const KERN_PROC_NENV: ::c_int = 4; - -pub const KI_NGROUPS: ::c_int = 16; -pub const KI_MAXCOMLEN: ::c_int = 24; -pub const KI_WMESGLEN: ::c_int = 8; -pub const KI_MAXLOGNAME: ::c_int = 32; -pub const KI_EMULNAMELEN: ::c_int = 8; - -pub const KVE_ET_OBJ: ::c_int = 0x00000001; -pub const KVE_ET_SUBMAP: ::c_int = 0x00000002; -pub const KVE_ET_COPYONWRITE: ::c_int = 0x00000004; -pub const KVE_ET_NEEDSCOPY: ::c_int = 0x00000008; -pub const KVE_ET_HOLE: ::c_int = 0x00000010; -pub const KVE_ET_NOFAULT: ::c_int = 0x00000020; -pub const KVE_ET_STACK: ::c_int = 0x00000040; -pub const KVE_ET_WC: ::c_int = 0x000000080; -pub const KVE_ET_CONCEAL: ::c_int = 0x000000100; -pub const KVE_ET_SYSCALL: ::c_int = 0x000000200; -pub const KVE_ET_FREEMAPPED: ::c_int = 0x000000800; - -pub const KVE_PROT_NONE: ::c_int = 0x00000000; -pub const KVE_PROT_READ: ::c_int = 0x00000001; -pub const KVE_PROT_WRITE: ::c_int = 0x00000002; -pub const KVE_PROT_EXEC: ::c_int = 0x00000004; - -pub const KVE_ADV_NORMAL: ::c_int = 0x00000000; -pub const KVE_ADV_RANDOM: ::c_int = 0x00000001; -pub const KVE_ADV_SEQUENTIAL: ::c_int = 0x00000002; - -pub const KVE_INH_SHARE: ::c_int = 0x00000000; -pub const KVE_INH_COPY: ::c_int = 0x00000010; -pub const KVE_INH_NONE: ::c_int = 0x00000020; -pub const KVE_INH_ZERO: ::c_int = 0x00000030; - -pub const KVE_F_STATIC: ::c_int = 0x1; -pub const KVE_F_KMEM: ::c_int = 0x2; - -pub const CHWFLOW: ::tcflag_t = ::MDMBUF | ::CRTSCTS; -pub const OLCUC: ::tcflag_t = 0x20; -pub const ONOCR: ::tcflag_t = 0x40; -pub const ONLRET: ::tcflag_t = 0x80; - -//https://github.com/openbsd/src/blob/HEAD/sys/sys/mount.h -pub const ISOFSMNT_NORRIP: ::c_int = 0x1; // disable Rock Ridge Ext -pub const ISOFSMNT_GENS: ::c_int = 0x2; // enable generation numbers -pub const ISOFSMNT_EXTATT: ::c_int = 0x4; // enable extended attr -pub const ISOFSMNT_NOJOLIET: ::c_int = 0x8; // disable Joliet Ext -pub const ISOFSMNT_SESS: ::c_int = 0x10; // use iso_args.sess - -pub const NFS_ARGSVERSION: ::c_int = 4; // change when nfs_args changes - -pub const NFSMNT_RESVPORT: ::c_int = 0; // always use reserved ports -pub const NFSMNT_SOFT: ::c_int = 0x1; // soft mount (hard is default) -pub const NFSMNT_WSIZE: ::c_int = 0x2; // set write size -pub const NFSMNT_RSIZE: ::c_int = 0x4; // set read size -pub const NFSMNT_TIMEO: ::c_int = 0x8; // set initial timeout -pub const NFSMNT_RETRANS: ::c_int = 0x10; // set number of request retries -pub const NFSMNT_MAXGRPS: ::c_int = 0x20; // set maximum grouplist size -pub const NFSMNT_INT: ::c_int = 0x40; // allow interrupts on hard mount -pub const NFSMNT_NOCONN: ::c_int = 0x80; // Don't Connect the socket -pub const NFSMNT_NQNFS: ::c_int = 0x100; // Use Nqnfs protocol -pub const NFSMNT_NFSV3: ::c_int = 0x200; // Use NFS Version 3 protocol -pub const NFSMNT_KERB: ::c_int = 0x400; // Use Kerberos authentication -pub const NFSMNT_DUMBTIMR: ::c_int = 0x800; // Don't estimate rtt dynamically -pub const NFSMNT_LEASETERM: ::c_int = 0x1000; // set lease term (nqnfs) -pub const NFSMNT_READAHEAD: ::c_int = 0x2000; // set read ahead -pub const NFSMNT_DEADTHRESH: ::c_int = 0x4000; // set dead server retry thresh -pub const NFSMNT_NOAC: ::c_int = 0x8000; // disable attribute cache -pub const NFSMNT_RDIRPLUS: ::c_int = 0x10000; // Use Readdirplus for V3 -pub const NFSMNT_READDIRSIZE: ::c_int = 0x20000; // Set readdir size - -/* Flags valid only in mount syscall arguments */ -pub const NFSMNT_ACREGMIN: ::c_int = 0x40000; // acregmin field valid -pub const NFSMNT_ACREGMAX: ::c_int = 0x80000; // acregmax field valid -pub const NFSMNT_ACDIRMIN: ::c_int = 0x100000; // acdirmin field valid -pub const NFSMNT_ACDIRMAX: ::c_int = 0x200000; // acdirmax field valid - -/* Flags valid only in kernel */ -pub const NFSMNT_INTERNAL: ::c_int = 0xfffc0000; // Bits set internally -pub const NFSMNT_HASWRITEVERF: ::c_int = 0x40000; // Has write verifier for V3 -pub const NFSMNT_GOTPATHCONF: ::c_int = 0x80000; // Got the V3 pathconf info -pub const NFSMNT_GOTFSINFO: ::c_int = 0x100000; // Got the V3 fsinfo -pub const NFSMNT_MNTD: ::c_int = 0x200000; // Mnt server for mnt point -pub const NFSMNT_DISMINPROG: ::c_int = 0x400000; // Dismount in progress -pub const NFSMNT_DISMNT: ::c_int = 0x800000; // Dismounted -pub const NFSMNT_SNDLOCK: ::c_int = 0x1000000; // Send socket lock -pub const NFSMNT_WANTSND: ::c_int = 0x2000000; // Want above -pub const NFSMNT_RCVLOCK: ::c_int = 0x4000000; // Rcv socket lock -pub const NFSMNT_WANTRCV: ::c_int = 0x8000000; // Want above -pub const NFSMNT_WAITAUTH: ::c_int = 0x10000000; // Wait for authentication -pub const NFSMNT_HASAUTH: ::c_int = 0x20000000; // Has authenticator -pub const NFSMNT_WANTAUTH: ::c_int = 0x40000000; // Wants an authenticator -pub const NFSMNT_AUTHERR: ::c_int = 0x80000000; // Authentication error - -pub const MSDOSFSMNT_SHORTNAME: ::c_int = 0x1; // Force old DOS short names only -pub const MSDOSFSMNT_LONGNAME: ::c_int = 0x2; // Force Win'95 long names -pub const MSDOSFSMNT_NOWIN95: ::c_int = 0x4; // Completely ignore Win95 entries - -pub const NTFS_MFLAG_CASEINS: ::c_int = 0x1; -pub const NTFS_MFLAG_ALLNAMES: ::c_int = 0x2; - -pub const TMPFS_ARGS_VERSION: ::c_int = 1; - -pub const MAP_STACK: ::c_int = 0x4000; -pub const MAP_CONCEAL: ::c_int = 0x8000; - -// https://github.com/openbsd/src/blob/HEAD/sys/net/if.h#L187 -pub const IFF_UP: ::c_int = 0x1; // interface is up -pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid -pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging -pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net -pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link -pub const IFF_STATICARP: ::c_int = 0x20; // only static ARP -pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated -pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol -pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets -pub const IFF_OACTIVE: ::c_int = 0x400; // transmission in progress -pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions -pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit -pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit -pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit -pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast - -pub const PTHREAD_STACK_MIN: ::size_t = 1_usize << _MAX_PAGE_SHIFT; -pub const MINSIGSTKSZ: ::size_t = 3_usize << _MAX_PAGE_SHIFT; -pub const SIGSTKSZ: ::size_t = MINSIGSTKSZ + (1_usize << _MAX_PAGE_SHIFT) * 4; - -pub const PT_SET_EVENT_MASK: ::c_int = 12; -pub const PT_GET_EVENT_MASK: ::c_int = 13; -pub const PT_GET_PROCESS_STATE: ::c_int = 14; -pub const PT_GET_THREAD_FIRST: ::c_int = 15; -pub const PT_GET_THREAD_NEXT: ::c_int = 16; -pub const PT_FIRSTMACH: ::c_int = 32; - -pub const SOCK_CLOEXEC: ::c_int = 0x8000; -pub const SOCK_NONBLOCK: ::c_int = 0x4000; -pub const SOCK_DNS: ::c_int = 0x1000; - -pub const BIOCGRSIG: ::c_ulong = 0x40044273; -pub const BIOCSRSIG: ::c_ulong = 0x80044272; -pub const BIOCSDLT: ::c_ulong = 0x8004427a; - -pub const PTRACE_FORK: ::c_int = 0x0002; - -pub const WCONTINUED: ::c_int = 0x08; -pub const WEXITED: ::c_int = 0x04; -pub const WSTOPPED: ::c_int = 0x02; // same as WUNTRACED -pub const WNOWAIT: ::c_int = 0x10; -pub const WTRAPPED: ::c_int = 0x20; - -pub const P_ALL: ::idtype_t = 0; -pub const P_PGID: ::idtype_t = 1; -pub const P_PID: ::idtype_t = 2; - -// search.h -pub const FIND: ::ACTION = 0; -pub const ENTER: ::ACTION = 1; - -// futex.h -pub const FUTEX_WAIT: ::c_int = 1; -pub const FUTEX_WAKE: ::c_int = 2; -pub const FUTEX_REQUEUE: ::c_int = 3; -pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; - -// sysctl.h, kinfo_proc p_eflag constants -pub const EPROC_CTTY: i32 = 0x01; // controlling tty vnode active -pub const EPROC_SLEADER: i32 = 0x02; // session leader -pub const EPROC_UNVEIL: i32 = 0x04; // has unveil settings -pub const EPROC_LKUNVEIL: i32 = 0x08; // unveil is locked - -// Flags for chflags(2) -pub const UF_SETTABLE: ::c_uint = 0x0000ffff; -pub const UF_NODUMP: ::c_uint = 0x00000001; -pub const UF_IMMUTABLE: ::c_uint = 0x00000002; -pub const UF_APPEND: ::c_uint = 0x00000004; -pub const UF_OPAQUE: ::c_uint = 0x00000008; -pub const SF_SETTABLE: ::c_uint = 0xffff0000; -pub const SF_ARCHIVED: ::c_uint = 0x00010000; -pub const SF_IMMUTABLE: ::c_uint = 0x00020000; -pub const SF_APPEND: ::c_uint = 0x00040000; - -// sys/mount.h -pub const MNT_NOPERM: ::c_int = 0x00000020; -pub const MNT_WXALLOWED: ::c_int = 0x00000800; -pub const MNT_EXRDONLY: ::c_int = 0x00000080; -pub const MNT_DEFEXPORTED: ::c_int = 0x00000200; -pub const MNT_EXPORTANON: ::c_int = 0x00000400; -pub const MNT_ROOTFS: ::c_int = 0x00004000; -pub const MNT_NOATIME: ::c_int = 0x00008000; -pub const MNT_DELEXPORT: ::c_int = 0x00020000; -pub const MNT_STALLED: ::c_int = 0x00100000; -pub const MNT_SWAPPABLE: ::c_int = 0x00200000; -pub const MNT_WANTRDWR: ::c_int = 0x02000000; -pub const MNT_SOFTDEP: ::c_int = 0x04000000; -pub const MNT_DOOMED: ::c_int = 0x08000000; - -// For use with vfs_fsync and getfsstat -pub const MNT_WAIT: ::c_int = 1; -pub const MNT_NOWAIT: ::c_int = 2; -pub const MNT_LAZY: ::c_int = 3; - -// sys/_time.h -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 4; -pub const CLOCK_UPTIME: ::clockid_t = 5; -pub const CLOCK_BOOTTIME: ::clockid_t = 6; - -pub const LC_COLLATE_MASK: ::c_int = 1 << ::LC_COLLATE; -pub const LC_CTYPE_MASK: ::c_int = 1 << ::LC_CTYPE; -pub const LC_MONETARY_MASK: ::c_int = 1 << ::LC_MONETARY; -pub const LC_NUMERIC_MASK: ::c_int = 1 << ::LC_NUMERIC; -pub const LC_TIME_MASK: ::c_int = 1 << ::LC_TIME; -pub const LC_MESSAGES_MASK: ::c_int = 1 << ::LC_MESSAGES; - -const _LC_LAST: ::c_int = 7; -pub const LC_ALL_MASK: ::c_int = (1 << _LC_LAST) - 2; - -pub const LC_GLOBAL_LOCALE: ::locale_t = -1isize as ::locale_t; - -const_fn! { - {const} fn _ALIGN(p: usize) -> usize { - (p + _ALIGNBYTES) & !_ALIGNBYTES - } -} - -f! { - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) - } - - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - _ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length - } - - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) - -> *mut ::cmsghdr - { - if cmsg.is_null() { - return ::CMSG_FIRSTHDR(mhdr); - }; - let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) - + _ALIGN(::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; - if next > max { - 0 as *mut ::cmsghdr - } else { - (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) - as *mut ::cmsghdr - } - } - - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) - as ::c_uint - } - - pub fn major(dev: ::dev_t) -> ::c_uint{ - ((dev as ::c_uint) >> 8) & 0xff - } - - pub fn minor(dev: ::dev_t) -> ::c_uint { - let dev = dev as ::c_uint; - let mut res = 0; - res |= (dev) & 0xff; - res |= ((dev) & 0xffff0000) >> 8; - - res - } -} - -safe_f! { - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { - status >> 8 - } - - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { - (status & 0o177) != 0o177 && (status & 0o177) != 0 - } - - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { - (status & 0xff) == 0o177 - } - - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { - (status & 0o177777) == 0o177777 - } - - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; - let mut dev = 0; - dev |= (major & 0xff) << 8; - dev |= minor & 0xff; - dev |= (minor & 0xffff00) << 8; - dev - } -} - -extern "C" { - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; - pub fn settimeofday(tp: *const ::timeval, tz: *const ::timezone) -> ::c_int; - pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - pub fn pledge(promises: *const ::c_char, execpromises: *const ::c_char) -> ::c_int; - pub fn unveil(path: *const ::c_char, permissions: *const ::c_char) -> ::c_int; - pub fn strtonum( - nptr: *const ::c_char, - minval: ::c_longlong, - maxval: ::c_longlong, - errstr: *mut *const ::c_char, - ) -> ::c_longlong; - pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; - pub fn chflags(path: *const ::c_char, flags: ::c_uint) -> ::c_int; - pub fn fchflags(fd: ::c_int, flags: ::c_uint) -> ::c_int; - pub fn chflagsat( - fd: ::c_int, - path: *const ::c_char, - flags: ::c_uint, - atflag: ::c_int, - ) -> ::c_int; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::size_t, - serv: *mut ::c_char, - servlen: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; - pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; - pub fn kevent( - kq: ::c_int, - changelist: *const ::kevent, - nchanges: ::c_int, - eventlist: *mut ::kevent, - nevents: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn getthrid() -> ::pid_t; - pub fn pthread_attr_getguardsize( - attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t, - ) -> ::c_int; - pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; - pub fn pthread_main_np() -> ::c_int; - pub fn pthread_get_name_np(tid: ::pthread_t, name: *mut ::c_char, len: ::size_t); - pub fn pthread_set_name_np(tid: ::pthread_t, name: *const ::c_char); - pub fn pthread_stackseg_np(thread: ::pthread_t, sinfo: *mut ::stack_t) -> ::c_int; - - pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *const ::termios, - winp: *const ::winsize, - ) -> ::c_int; - pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *const ::termios, - winp: *const ::winsize, - ) -> ::pid_t; - - pub fn sysctl( - name: *const ::c_int, - namelen: ::c_uint, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; - pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; - pub fn ptrace(request: ::c_int, pid: ::pid_t, addr: caddr_t, data: ::c_int) -> ::c_int; - pub fn utrace(label: *const ::c_char, addr: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; - // #include - pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut dl_phdr_info, - size: usize, - data: *mut ::c_void, - ) -> ::c_int, - >, - data: *mut ::c_void, - ) -> ::c_int; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn duplocale(base: ::locale_t) -> ::locale_t; - - // Added in `OpenBSD` 5.5 - pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t); - - pub fn setproctitle(fmt: *const ::c_char, ...); - - pub fn freezero(ptr: *mut ::c_void, size: ::size_t); - pub fn malloc_conceal(size: ::size_t) -> *mut ::c_void; - pub fn calloc_conceal(nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; - - pub fn srand48_deterministic(seed: ::c_long); - pub fn seed48_deterministic(xseed: *mut ::c_ushort) -> *mut ::c_ushort; - pub fn lcong48_deterministic(p: *mut ::c_ushort); - - pub fn lsearch( - key: *const ::c_void, - base: *mut ::c_void, - nelp: *mut ::size_t, - width: ::size_t, - compar: ::Option ::c_int>, - ) -> *mut ::c_void; - pub fn lfind( - key: *const ::c_void, - base: *const ::c_void, - nelp: *mut ::size_t, - width: ::size_t, - compar: ::Option ::c_int>, - ) -> *mut ::c_void; - pub fn hcreate(nelt: ::size_t) -> ::c_int; - pub fn hdestroy(); - pub fn hsearch(entry: ::ENTRY, action: ::ACTION) -> *mut ::ENTRY; - - // futex.h - pub fn futex( - uaddr: *mut u32, - op: ::c_int, - val: ::c_int, - timeout: *const ::timespec, - uaddr2: *mut u32, - ) -> ::c_int; - - pub fn mimmutable(addr: *mut ::c_void, len: ::size_t) -> ::c_int; -} - -#[link(name = "execinfo")] -extern "C" { - pub fn backtrace(addrlist: *mut *mut ::c_void, len: ::size_t) -> ::size_t; - pub fn backtrace_symbols(addrlist: *const *mut ::c_void, len: ::size_t) -> *mut *mut ::c_char; - pub fn backtrace_symbols_fd( - addrlist: *const *mut ::c_void, - len: ::size_t, - fd: ::c_int, - ) -> ::c_int; - pub fn backtrace_symbols_fmt( - addrlist: *const *mut ::c_void, - len: ::size_t, - fmt: *const ::c_char, - ) -> *mut *mut ::c_char; -} - -cfg_if! { - if #[cfg(libc_union)] { - extern { - // these functions use statfs which uses the union mount_info: - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn getmntinfo(mntbufp: *mut *mut ::statfs, flags: ::c_int) -> ::c_int; - pub fn getfsstat(buf: *mut statfs, bufsize: ::size_t, flags: ::c_int) -> ::c_int; - } - } -} - -cfg_if! { - if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else if #[cfg(target_arch = "arm")] { - mod arm; - pub use self::arm::*; - } else if #[cfg(target_arch = "mips64")] { - mod mips64; - pub use self::mips64::*; - } else if #[cfg(target_arch = "powerpc")] { - mod powerpc; - pub use self::powerpc::*; - } else if #[cfg(target_arch = "powerpc64")] { - mod powerpc64; - pub use self::powerpc64::*; - } else if #[cfg(target_arch = "riscv64")] { - mod riscv64; - pub use self::riscv64::*; - } else if #[cfg(target_arch = "sparc64")] { - mod sparc64; - pub use self::sparc64::*; - } else if #[cfg(target_arch = "x86")] { - mod x86; - pub use self::x86::*; - } else if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc.rs deleted file mode 100644 index f1ab365d1..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc.rs +++ /dev/null @@ -1,16 +0,0 @@ -pub type c_long = i32; -pub type c_ulong = u32; -pub type c_char = u8; - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_double>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} - -pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs deleted file mode 100644 index 99350ec8d..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs +++ /dev/null @@ -1,16 +0,0 @@ -pub type c_long = i64; -pub type c_ulong = u64; -pub type c_char = u8; - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} - -pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/riscv64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/riscv64.rs deleted file mode 100644 index 99350ec8d..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/riscv64.rs +++ /dev/null @@ -1,16 +0,0 @@ -pub type c_long = i64; -pub type c_ulong = u64; -pub type c_char = u8; - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} - -pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/sparc64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/sparc64.rs deleted file mode 100644 index 070fc9385..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/sparc64.rs +++ /dev/null @@ -1,8 +0,0 @@ -pub type c_long = i64; -pub type c_ulong = u64; -pub type c_char = i8; - -#[doc(hidden)] -pub const _ALIGNBYTES: usize = 0xf; - -pub const _MAX_PAGE_SHIFT: u32 = 13; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86.rs deleted file mode 100644 index e87d0ff1e..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86.rs +++ /dev/null @@ -1,16 +0,0 @@ -pub type c_long = i32; -pub type c_ulong = u32; -pub type c_char = i8; - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 4 - 1; - } -} - -pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86_64.rs deleted file mode 100644 index 60dab0044..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ /dev/null @@ -1,130 +0,0 @@ -use PT_FIRSTMACH; - -pub type c_long = i64; -pub type c_ulong = u64; -pub type c_char = i8; -pub type ucontext_t = sigcontext; - -s! { - pub struct sigcontext { - pub sc_rdi: ::c_long, - pub sc_rsi: ::c_long, - pub sc_rdx: ::c_long, - pub sc_rcx: ::c_long, - pub sc_r8: ::c_long, - pub sc_r9: ::c_long, - pub sc_r10: ::c_long, - pub sc_r11: ::c_long, - pub sc_r12: ::c_long, - pub sc_r13: ::c_long, - pub sc_r14: ::c_long, - pub sc_r15: ::c_long, - pub sc_rbp: ::c_long, - pub sc_rbx: ::c_long, - pub sc_rax: ::c_long, - pub sc_gs: ::c_long, - pub sc_fs: ::c_long, - pub sc_es: ::c_long, - pub sc_ds: ::c_long, - pub sc_trapno: ::c_long, - pub sc_err: ::c_long, - pub sc_rip: ::c_long, - pub sc_cs: ::c_long, - pub sc_rflags: ::c_long, - pub sc_rsp: ::c_long, - pub sc_ss: ::c_long, - pub sc_fpstate: *mut fxsave64, - __sc_unused: ::c_int, - pub sc_mask: ::c_int, - pub sc_cookie: ::c_long, - } -} - -s_no_extra_traits! { - #[repr(packed)] - pub struct fxsave64 { - pub fx_fcw: u16, - pub fx_fsw: u16, - pub fx_ftw: u8, - __fx_unused1: u8, - pub fx_fop: u16, - pub fx_rip: u64, - pub fx_rdp: u64, - pub fx_mxcsr: u32, - pub fx_mxcsr_mask: u32, - pub fx_st: [[u64; 2]; 8], - pub fx_xmm: [[u64; 2]; 16], - __fx_unused3: [u8; 96], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - // `fxsave64` is packed, so field access is unaligned. - // use {x} to create temporary storage, copy field to it, and do aligned access. - impl PartialEq for fxsave64 { - fn eq(&self, other: &fxsave64) -> bool { - return {self.fx_fcw} == {other.fx_fcw} && - {self.fx_fsw} == {other.fx_fsw} && - {self.fx_ftw} == {other.fx_ftw} && - {self.fx_fop} == {other.fx_fop} && - {self.fx_rip} == {other.fx_rip} && - {self.fx_rdp} == {other.fx_rdp} && - {self.fx_mxcsr} == {other.fx_mxcsr} && - {self.fx_mxcsr_mask} == {other.fx_mxcsr_mask} && - {self.fx_st}.iter().zip({other.fx_st}.iter()).all(|(a,b)| a == b) && - {self.fx_xmm}.iter().zip({other.fx_xmm}.iter()).all(|(a,b)| a == b) - } - } - impl Eq for fxsave64 {} - impl ::fmt::Debug for fxsave64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("fxsave64") - .field("fx_fcw", &{self.fx_fcw}) - .field("fx_fsw", &{self.fx_fsw}) - .field("fx_ftw", &{self.fx_ftw}) - .field("fx_fop", &{self.fx_fop}) - .field("fx_rip", &{self.fx_rip}) - .field("fx_rdp", &{self.fx_rdp}) - .field("fx_mxcsr", &{self.fx_mxcsr}) - .field("fx_mxcsr_mask", &{self.fx_mxcsr_mask}) - // FIXME: .field("fx_st", &{self.fx_st}) - // FIXME: .field("fx_xmm", &{self.fx_xmm}) - .finish() - } - } - impl ::hash::Hash for fxsave64 { - fn hash(&self, state: &mut H) { - {self.fx_fcw}.hash(state); - {self.fx_fsw}.hash(state); - {self.fx_ftw}.hash(state); - {self.fx_fop}.hash(state); - {self.fx_rip}.hash(state); - {self.fx_rdp}.hash(state); - {self.fx_mxcsr}.hash(state); - {self.fx_mxcsr_mask}.hash(state); - {self.fx_st}.hash(state); - {self.fx_xmm}.hash(state); - } - } - } -} - -// should be pub(crate), but that requires Rust 1.18.0 -cfg_if! { - if #[cfg(libc_const_size_of)] { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; - } else { - #[doc(hidden)] - pub const _ALIGNBYTES: usize = 8 - 1; - } -} - -pub const _MAX_PAGE_SHIFT: u32 = 12; - -pub const PT_STEP: ::c_int = PT_FIRSTMACH + 0; -pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; -pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; -pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3; -pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/haiku/b32.rs b/src/rust/vendor/libc-0.2.146/src/unix/haiku/b32.rs deleted file mode 100644 index 073ae9d4b..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/haiku/b32.rs +++ /dev/null @@ -1,20 +0,0 @@ -pub type c_long = i32; -pub type c_ulong = u32; -pub type time_t = i32; - -pub type Elf_Addr = ::Elf32_Addr; -pub type Elf_Half = ::Elf32_Half; -pub type Elf_Phdr = ::Elf32_Phdr; - -s! { - pub struct Elf32_Phdr { - pub p_type: ::Elf32_Word, - pub p_offset: ::Elf32_Off, - pub p_vaddr: ::Elf32_Addr, - pub p_paddr: ::Elf32_Addr, - pub p_filesz: ::Elf32_Word, - pub p_memsz: ::Elf32_Word, - pub p_flags: ::Elf32_Word, - pub p_align: ::Elf32_Word, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/haiku/b64.rs b/src/rust/vendor/libc-0.2.146/src/unix/haiku/b64.rs deleted file mode 100644 index 456918052..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/haiku/b64.rs +++ /dev/null @@ -1,20 +0,0 @@ -pub type c_ulong = u64; -pub type c_long = i64; -pub type time_t = i64; - -pub type Elf_Addr = ::Elf64_Addr; -pub type Elf_Half = ::Elf64_Half; -pub type Elf_Phdr = ::Elf64_Phdr; - -s! { - pub struct Elf64_Phdr { - pub p_type: ::Elf64_Word, - pub p_flags: ::Elf64_Word, - pub p_offset: ::Elf64_Off, - pub p_vaddr: ::Elf64_Addr, - pub p_paddr: ::Elf64_Addr, - pub p_filesz: ::Elf64_Xword, - pub p_memsz: ::Elf64_Xword, - pub p_align: ::Elf64_Xword, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/haiku/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/haiku/mod.rs deleted file mode 100644 index 24aa599c0..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/haiku/mod.rs +++ /dev/null @@ -1,2094 +0,0 @@ -pub type rlim_t = ::uintptr_t; -pub type sa_family_t = u8; -pub type pthread_key_t = ::c_int; -pub type nfds_t = ::c_ulong; -pub type tcflag_t = ::c_uint; -pub type speed_t = ::c_uchar; -pub type c_char = i8; -pub type clock_t = i32; -pub type clockid_t = i32; -pub type suseconds_t = i32; -pub type wchar_t = i32; -pub type off_t = i64; -pub type ino_t = i64; -pub type blkcnt_t = i64; -pub type blksize_t = i32; -pub type dev_t = i32; -pub type mode_t = u32; -pub type nlink_t = i32; -pub type useconds_t = u32; -pub type socklen_t = u32; -pub type pthread_t = ::uintptr_t; -pub type pthread_condattr_t = ::uintptr_t; -pub type pthread_mutexattr_t = ::uintptr_t; -pub type pthread_rwlockattr_t = ::uintptr_t; -pub type sigset_t = u64; -pub type fsblkcnt_t = i64; -pub type fsfilcnt_t = i64; -pub type pthread_attr_t = *mut ::c_void; -pub type nl_item = ::c_int; -pub type id_t = i32; -pub type idtype_t = ::c_int; -pub type fd_mask = u32; -pub type regoff_t = ::c_int; -pub type key_t = i32; -pub type msgqnum_t = u32; -pub type msglen_t = u32; - -pub type Elf32_Addr = u32; -pub type Elf32_Half = u16; -pub type Elf32_Off = u32; -pub type Elf32_Sword = i32; -pub type Elf32_Word = u32; - -pub type Elf64_Addr = u64; -pub type Elf64_Half = u16; -pub type Elf64_Off = u64; -pub type Elf64_Sword = i32; -pub type Elf64_Sxword = i64; -pub type Elf64_Word = u32; -pub type Elf64_Xword = u64; - -pub type ENTRY = entry; -pub type ACTION = ::c_int; - -pub type posix_spawnattr_t = *mut ::c_void; -pub type posix_spawn_file_actions_t = *mut ::c_void; - -pub type StringList = _stringlist; - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { - fn clone(&self) -> timezone { - *self - } -} - -impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { - self.si_addr - } - - pub unsafe fn si_pid(&self) -> ::pid_t { - self.si_pid - } - - pub unsafe fn si_uid(&self) -> ::uid_t { - self.si_uid - } - - pub unsafe fn si_status(&self) -> ::c_int { - self.si_status - } -} - -s! { - pub struct in_addr { - pub s_addr: ::in_addr_t, - } - - pub struct ip_mreq { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct sockaddr { - pub sa_len: u8, - pub sa_family: sa_family_t, - pub sa_data: [u8; 30], - } - - pub struct sockaddr_in { - pub sin_len: u8, - pub sin_family: sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [i8; 24], - } - - pub struct sockaddr_in6 { - pub sin6_len: u8, - pub sin6_family: u8, - pub sin6_port: u16, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - } - - pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: socklen_t, - pub ai_canonname: *mut c_char, - pub ai_addr: *mut ::sockaddr, - pub ai_next: *mut addrinfo, - } - - pub struct ifaddrs { - pub ifa_next: *mut ifaddrs, - pub ifa_name: *const ::c_char, - pub ifa_flags: ::c_uint, - pub ifa_addr: *mut ::sockaddr, - pub ifa_netmask: *mut ::sockaddr, - pub ifa_dstaddr: *mut ::sockaddr, - pub ifa_data: *mut ::c_void, - } - - pub struct fd_set { - // size for 1024 bits, and a fd_mask with size u32 - fds_bits: [fd_mask; 32], - } - - pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - pub tm_gmtoff: ::c_int, - pub tm_zone: *mut ::c_char, - } - - pub struct utsname { - pub sysname: [::c_char; 32], - pub nodename: [::c_char; 32], - pub release: [::c_char; 32], - pub version: [::c_char; 32], - pub machine: [::c_char; 32], - } - - pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: socklen_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::c_char, - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - pub c_cc: [::cc_t; ::NCCS], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct stat { - pub st_dev: dev_t, - pub st_ino: ino_t, - pub st_mode: mode_t, - pub st_nlink: nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_size: off_t, - pub st_rdev: dev_t, - pub st_blksize: blksize_t, - pub st_atime: time_t, - pub st_atime_nsec: c_long, - pub st_mtime: time_t, - pub st_mtime_nsec: c_long, - pub st_ctime: time_t, - pub st_ctime_nsec: c_long, - pub st_crtime: time_t, - pub st_crtime_nsec: c_long, - pub st_type: u32, - pub st_blocks: blkcnt_t, - } - - pub struct glob_t { - pub gl_pathc: ::size_t, - __unused1: ::size_t, - pub gl_offs: ::size_t, - __unused2: ::size_t, - pub gl_pathv: *mut *mut c_char, - - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - __unused6: *mut ::c_void, - __unused7: *mut ::c_void, - __unused8: *mut ::c_void, - } - - pub struct pthread_mutex_t { - flags: u32, - lock: i32, - unused: i32, - owner: i32, - owner_count: i32, - } - - pub struct pthread_cond_t { - flags: u32, - unused: i32, - mutex: *mut ::c_void, - waiter_count: i32, - lock: i32, - } - - pub struct pthread_rwlock_t { - flags: u32, - owner: i32, - lock_sem: i32, // this is actually a union - lock_count: i32, - reader_count: i32, - writer_count: i32, - waiters: [*mut ::c_void; 2], - } - - pub struct pthread_spinlock_t { - lock: u32, - } - - pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - pub pw_gecos: *mut ::c_char, - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - pub si_pid: ::pid_t, - pub si_uid: ::uid_t, - pub si_addr: *mut ::c_void, - pub si_status: ::c_int, - pub si_band: c_long, - pub sigval: *mut ::c_void, - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, //actually a union with sa_handler - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - sa_userdata: *mut ::c_void, - } - - pub struct sem_t { - pub type_: i32, - pub named_sem_id: i32, // actually a union with unnamed_sem (i32) - pub padding: [i32; 2], - } - - pub struct ucred { - pub pid: ::pid_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - } - - pub struct sockaddr_dl { - pub sdl_len: u8, - pub sdl_family: u8, - pub sdl_e_type: u16, - pub sdl_index: u32, - pub sdl_type: u8, - pub sdl_nlen: u8, - pub sdl_alen: u8, - pub sdl_slen: u8, - pub sdl_data: [u8; 46], - } - - pub struct spwd { - pub sp_namp: *mut ::c_char, - pub sp_pwdp: *mut ::c_char, - pub sp_lstchg: ::c_int, - pub sp_min: ::c_int, - pub sp_max: ::c_int, - pub sp_warn: ::c_int, - pub sp_inact: ::c_int, - pub sp_expire: ::c_int, - pub sp_flag: ::c_int, - } - - pub struct regex_t { - __buffer: *mut ::c_void, - __allocated: ::size_t, - __used: ::size_t, - __syntax: ::c_ulong, - __fastmap: *mut ::c_char, - __translate: *mut ::c_char, - __re_nsub: ::size_t, - __bitfield: u8, - } - - pub struct regmatch_t { - pub rm_so: regoff_t, - pub rm_eo: regoff_t, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - } - - pub struct ipc_perm { - pub key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - } - - pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, - } - - pub struct entry { - pub key: *mut ::c_char, - pub data: *mut ::c_void, - } - - pub struct option { - pub name: *const ::c_char, - pub has_arg: ::c_int, - pub flag: *mut ::c_int, - pub val: ::c_int, - } - - pub struct _stringlist { - pub sl_str: *mut *mut ::c_char, - pub sl_max: ::size_t, - pub sl_cur: ::size_t, - } - - pub struct dl_phdr_info { - pub dlpi_addr: ::Elf_Addr, - pub dlpi_name: *const ::c_char, - pub dlpi_phdr: *const ::Elf_Phdr, - pub dlpi_phnum: ::Elf_Half, - } -} - -s_no_extra_traits! { - pub struct sockaddr_un { - pub sun_len: u8, - pub sun_family: sa_family_t, - pub sun_path: [::c_char; 126] - } - pub struct sockaddr_storage { - pub ss_len: u8, - pub ss_family: sa_family_t, - __ss_pad1: [u8; 6], - __ss_pad2: u64, - __ss_pad3: [u8; 112], - } - pub struct dirent { - pub d_dev: dev_t, - pub d_pdev: dev_t, - pub d_ino: ino_t, - pub d_pino: i64, - pub d_reclen: ::c_ushort, - pub d_name: [::c_char; 1024], // Max length is _POSIX_PATH_MAX - } - - pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - __unused1: *mut ::c_void, // actually a function pointer - pub sigev_notify_attributes: *mut ::pthread_attr_t, - } - - pub struct utmpx { - pub ut_type: ::c_short, - pub ut_tv: ::timeval, - pub ut_id: [::c_char; 8], - pub ut_pid: ::pid_t, - pub ut_user: [::c_char; 32], - pub ut_line: [::c_char; 16], - pub ut_host: [::c_char; 128], - __ut_reserved: [::c_char; 64], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - && self.ut_tv == other.ut_tv - && self.ut_id == other.ut_id - && self.ut_pid == other.ut_pid - && self.ut_user == other.ut_user - && self.ut_line == other.ut_line - && self.ut_host.iter().zip(other.ut_host.iter()).all(|(a,b)| a == b) - && self.__ut_reserved == other.__ut_reserved - } - } - - impl Eq for utmpx {} - - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utmpx") - .field("ut_type", &self.ut_type) - .field("ut_tv", &self.ut_tv) - .field("ut_id", &self.ut_id) - .field("ut_pid", &self.ut_pid) - .field("ut_user", &self.ut_user) - .field("ut_line", &self.ut_line) - .field("ut_host", &self.ut_host) - .field("__ut_reserved", &self.__ut_reserved) - .finish() - } - } - - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_type.hash(state); - self.ut_tv.hash(state); - self.ut_id.hash(state); - self.ut_pid.hash(state); - self.ut_user.hash(state); - self.ut_line.hash(state); - self.ut_host.hash(state); - self.__ut_reserved.hash(state); - } - } - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_len == other.sun_len - && self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for sockaddr_un {} - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_len", &self.sun_len) - .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) - .finish() - } - } - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_len.hash(state); - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_len == other.ss_len - && self.ss_family == other.ss_family - && self - .__ss_pad1 - .iter() - .zip(other.__ss_pad1.iter()) - .all(|(a, b)| a == b) - && self.__ss_pad2 == other.__ss_pad2 - && self - .__ss_pad3 - .iter() - .zip(other.__ss_pad3.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &self.__ss_pad1) - .field("__ss_pad2", &self.__ss_pad2) - // FIXME: .field("__ss_pad3", &self.__ss_pad3) - .finish() - } - } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_len.hash(state); - self.ss_family.hash(state); - self.__ss_pad1.hash(state); - self.__ss_pad2.hash(state); - self.__ss_pad3.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_dev == other.d_dev - && self.d_pdev == other.d_pdev - && self.d_ino == other.d_ino - && self.d_pino == other.d_pino - && self.d_reclen == other.d_reclen - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_dev", &self.d_dev) - .field("d_pdev", &self.d_pdev) - .field("d_ino", &self.d_ino) - .field("d_pino", &self.d_pino) - .field("d_reclen", &self.d_reclen) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_dev.hash(state); - self.d_pdev.hash(state); - self.d_ino.hash(state); - self.d_pino.hash(state); - self.d_reclen.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_notify == other.sigev_notify - && self.sigev_signo == other.sigev_signo - && self.sigev_value == other.sigev_value - && self.sigev_notify_attributes - == other.sigev_notify_attributes - } - } - impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sigevent") - .field("sigev_notify", &self.sigev_notify) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_value", &self.sigev_value) - .field("sigev_notify_attributes", - &self.sigev_notify_attributes) - .finish() - } - } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_notify.hash(state); - self.sigev_signo.hash(state); - self.sigev_value.hash(state); - self.sigev_notify_attributes.hash(state); - } - } - } -} - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 2147483647; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const L_SET: ::c_int = SEEK_SET; -pub const L_INCR: ::c_int = SEEK_CUR; -pub const L_XTND: ::c_int = SEEK_END; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; - -pub const F_DUPFD: ::c_int = 0x0001; -pub const F_GETFD: ::c_int = 0x0002; -pub const F_SETFD: ::c_int = 0x0004; -pub const F_GETFL: ::c_int = 0x0008; -pub const F_SETFL: ::c_int = 0x0010; -pub const F_GETLK: ::c_int = 0x0020; -pub const F_SETLK: ::c_int = 0x0080; -pub const F_SETLKW: ::c_int = 0x0100; -pub const F_DUPFD_CLOEXEC: ::c_int = 0x0200; - -pub const F_RDLCK: ::c_int = 0x0040; -pub const F_UNLCK: ::c_int = 0x0200; -pub const F_WRLCK: ::c_int = 0x0400; - -pub const AT_FDCWD: ::c_int = -1; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x01; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x02; -pub const AT_REMOVEDIR: ::c_int = 0x04; -pub const AT_EACCESS: ::c_int = 0x08; - -pub const POLLIN: ::c_short = 0x0001; -pub const POLLOUT: ::c_short = 0x0002; -pub const POLLRDNORM: ::c_short = POLLIN; -pub const POLLWRNORM: ::c_short = POLLOUT; -pub const POLLRDBAND: ::c_short = 0x0008; -pub const POLLWRBAND: ::c_short = 0x0010; -pub const POLLPRI: ::c_short = 0x0020; -pub const POLLERR: ::c_short = 0x0004; -pub const POLLHUP: ::c_short = 0x0080; -pub const POLLNVAL: ::c_short = 0x1000; - -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; - -pub const CLOCK_REALTIME: ::c_int = -1; -pub const CLOCK_MONOTONIC: ::c_int = 0; -pub const CLOCK_PROCESS_CPUTIME_ID: ::c_int = -2; -pub const CLOCK_THREAD_CPUTIME_ID: ::c_int = -3; - -pub const RLIMIT_CORE: ::c_int = 0; -pub const RLIMIT_CPU: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_FSIZE: ::c_int = 3; -pub const RLIMIT_NOFILE: ::c_int = 4; -pub const RLIMIT_STACK: ::c_int = 5; -pub const RLIMIT_AS: ::c_int = 6; -pub const RLIM_INFINITY: ::rlim_t = 0xffffffff; -// Haiku specific -pub const RLIMIT_NOVMON: ::c_int = 7; -pub const RLIM_NLIMITS: ::c_int = 8; - -pub const RUSAGE_SELF: ::c_int = 0; - -pub const RTLD_LAZY: ::c_int = 0; - -pub const NCCS: usize = 11; - -pub const O_RDONLY: ::c_int = 0x0000; -pub const O_WRONLY: ::c_int = 0x0001; -pub const O_RDWR: ::c_int = 0x0002; -pub const O_ACCMODE: ::c_int = 0x0003; - -pub const O_EXCL: ::c_int = 0x0100; -pub const O_CREAT: ::c_int = 0x0200; -pub const O_TRUNC: ::c_int = 0x0400; -pub const O_NOCTTY: ::c_int = 0x1000; -pub const O_NOTRAVERSE: ::c_int = 0x2000; - -pub const O_CLOEXEC: ::c_int = 0x00000040; -pub const O_NONBLOCK: ::c_int = 0x00000080; -pub const O_APPEND: ::c_int = 0x00000800; -pub const O_SYNC: ::c_int = 0x00010000; -pub const O_RSYNC: ::c_int = 0x00020000; -pub const O_DSYNC: ::c_int = 0x00040000; -pub const O_NOFOLLOW: ::c_int = 0x00080000; -pub const O_NOCACHE: ::c_int = 0x00100000; -pub const O_DIRECTORY: ::c_int = 0x00200000; - -pub const S_IFIFO: ::mode_t = 4096; -pub const S_IFCHR: ::mode_t = 8192; -pub const S_IFBLK: ::mode_t = 24576; -pub const S_IFDIR: ::mode_t = 16384; -pub const S_IFREG: ::mode_t = 32768; -pub const S_IFLNK: ::mode_t = 40960; -pub const S_IFSOCK: ::mode_t = 49152; -pub const S_IFMT: ::mode_t = 61440; - -pub const S_IRWXU: ::mode_t = 0o00700; -pub const S_IRUSR: ::mode_t = 0o00400; -pub const S_IWUSR: ::mode_t = 0o00200; -pub const S_IXUSR: ::mode_t = 0o00100; -pub const S_IRWXG: ::mode_t = 0o00070; -pub const S_IRGRP: ::mode_t = 0o00040; -pub const S_IWGRP: ::mode_t = 0o00020; -pub const S_IXGRP: ::mode_t = 0o00010; -pub const S_IRWXO: ::mode_t = 0o00007; -pub const S_IROTH: ::mode_t = 0o00004; -pub const S_IWOTH: ::mode_t = 0o00002; -pub const S_IXOTH: ::mode_t = 0o00001; - -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; - -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGCHLD: ::c_int = 5; -pub const SIGABRT: ::c_int = 6; -pub const SIGPIPE: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSTOP: ::c_int = 10; -pub const SIGSEGV: ::c_int = 11; -pub const SIGCONT: ::c_int = 12; -pub const SIGTSTP: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; -pub const SIGTTIN: ::c_int = 16; -pub const SIGTTOU: ::c_int = 17; -pub const SIGUSR1: ::c_int = 18; -pub const SIGUSR2: ::c_int = 19; -pub const SIGWINCH: ::c_int = 20; -pub const SIGKILLTHR: ::c_int = 21; -pub const SIGTRAP: ::c_int = 22; -pub const SIGPOLL: ::c_int = 23; -pub const SIGPROF: ::c_int = 24; -pub const SIGSYS: ::c_int = 25; -pub const SIGURG: ::c_int = 26; -pub const SIGVTALRM: ::c_int = 27; -pub const SIGXCPU: ::c_int = 28; -pub const SIGXFSZ: ::c_int = 29; -pub const SIGBUS: ::c_int = 30; - -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; -pub const SIG_SETMASK: ::c_int = 3; - -pub const SIGEV_NONE: ::c_int = 0; -pub const SIGEV_SIGNAL: ::c_int = 1; -pub const SIGEV_THREAD: ::c_int = 2; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 14; - -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const LC_ALL: ::c_int = 0; -pub const LC_COLLATE: ::c_int = 1; -pub const LC_CTYPE: ::c_int = 2; -pub const LC_MONETARY: ::c_int = 3; -pub const LC_NUMERIC: ::c_int = 4; -pub const LC_TIME: ::c_int = 5; -pub const LC_MESSAGES: ::c_int = 6; - -// FIXME: Haiku does not have MAP_FILE, but libstd/os.rs requires it -pub const MAP_FILE: ::c_int = 0x00; -pub const MAP_SHARED: ::c_int = 0x01; -pub const MAP_PRIVATE: ::c_int = 0x02; -pub const MAP_FIXED: ::c_int = 0x04; -pub const MAP_ANONYMOUS: ::c_int = 0x08; -pub const MAP_NORESERVE: ::c_int = 0x10; -pub const MAP_ANON: ::c_int = MAP_ANONYMOUS; - -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -pub const MS_ASYNC: ::c_int = 0x01; -pub const MS_INVALIDATE: ::c_int = 0x04; -pub const MS_SYNC: ::c_int = 0x02; - -pub const E2BIG: ::c_int = -2147454975; -pub const ECHILD: ::c_int = -2147454974; -pub const EDEADLK: ::c_int = -2147454973; -pub const EFBIG: ::c_int = -2147454972; -pub const EMLINK: ::c_int = -2147454971; -pub const ENFILE: ::c_int = -2147454970; -pub const ENODEV: ::c_int = -2147454969; -pub const ENOLCK: ::c_int = -2147454968; -pub const ENOSYS: ::c_int = -2147454967; -pub const ENOTTY: ::c_int = -2147454966; -pub const ENXIO: ::c_int = -2147454965; -pub const ESPIPE: ::c_int = -2147454964; -pub const ESRCH: ::c_int = -2147454963; -pub const EFPOS: ::c_int = -2147454962; -pub const ESIGPARM: ::c_int = -2147454961; -pub const EDOM: ::c_int = -2147454960; -pub const ERANGE: ::c_int = -2147454959; -pub const EPROTOTYPE: ::c_int = -2147454958; -pub const EPROTONOSUPPORT: ::c_int = -2147454957; -pub const EPFNOSUPPORT: ::c_int = -2147454956; -pub const EAFNOSUPPORT: ::c_int = -2147454955; -pub const EADDRINUSE: ::c_int = -2147454954; -pub const EADDRNOTAVAIL: ::c_int = -2147454953; -pub const ENETDOWN: ::c_int = -2147454952; -pub const ENETUNREACH: ::c_int = -2147454951; -pub const ENETRESET: ::c_int = -2147454950; -pub const ECONNABORTED: ::c_int = -2147454949; -pub const ECONNRESET: ::c_int = -2147454948; -pub const EISCONN: ::c_int = -2147454947; -pub const ENOTCONN: ::c_int = -2147454946; -pub const ESHUTDOWN: ::c_int = -2147454945; -pub const ECONNREFUSED: ::c_int = -2147454944; -pub const EHOSTUNREACH: ::c_int = -2147454943; -pub const ENOPROTOOPT: ::c_int = -2147454942; -pub const ENOBUFS: ::c_int = -2147454941; -pub const EINPROGRESS: ::c_int = -2147454940; -pub const EALREADY: ::c_int = -2147454939; -pub const EILSEQ: ::c_int = -2147454938; -pub const ENOMSG: ::c_int = -2147454937; -pub const ESTALE: ::c_int = -2147454936; -pub const EOVERFLOW: ::c_int = -2147454935; -pub const EMSGSIZE: ::c_int = -2147454934; -pub const EOPNOTSUPP: ::c_int = -2147454933; -pub const ENOTSOCK: ::c_int = -2147454932; -pub const EHOSTDOWN: ::c_int = -2147454931; -pub const EBADMSG: ::c_int = -2147454930; -pub const ECANCELED: ::c_int = -2147454929; -pub const EDESTADDRREQ: ::c_int = -2147454928; -pub const EDQUOT: ::c_int = -2147454927; -pub const EIDRM: ::c_int = -2147454926; -pub const EMULTIHOP: ::c_int = -2147454925; -pub const ENODATA: ::c_int = -2147454924; -pub const ENOLINK: ::c_int = -2147454923; -pub const ENOSR: ::c_int = -2147454922; -pub const ENOSTR: ::c_int = -2147454921; -pub const ENOTSUP: ::c_int = -2147454920; -pub const EPROTO: ::c_int = -2147454919; -pub const ETIME: ::c_int = -2147454918; -pub const ETXTBSY: ::c_int = -2147454917; -pub const ENOATTR: ::c_int = -2147454916; - -// INT_MIN -pub const ENOMEM: ::c_int = -2147483648; - -// POSIX errors that can be mapped to BeOS error codes -pub const EACCES: ::c_int = -2147483646; -pub const EINTR: ::c_int = -2147483638; -pub const EIO: ::c_int = -2147483647; -pub const EBUSY: ::c_int = -2147483634; -pub const EFAULT: ::c_int = -2147478783; -pub const ETIMEDOUT: ::c_int = -2147483639; -pub const EAGAIN: ::c_int = -2147483637; -pub const EWOULDBLOCK: ::c_int = -2147483637; -pub const EBADF: ::c_int = -2147459072; -pub const EEXIST: ::c_int = -2147459070; -pub const EINVAL: ::c_int = -2147483643; -pub const ENAMETOOLONG: ::c_int = -2147459068; -pub const ENOENT: ::c_int = -2147459069; -pub const EPERM: ::c_int = -2147483633; -pub const ENOTDIR: ::c_int = -2147459067; -pub const EISDIR: ::c_int = -2147459063; -pub const ENOTEMPTY: ::c_int = -2147459066; -pub const ENOSPC: ::c_int = -2147459065; -pub const EROFS: ::c_int = -2147459064; -pub const EMFILE: ::c_int = -2147459062; -pub const EXDEV: ::c_int = -2147459061; -pub const ELOOP: ::c_int = -2147459060; -pub const ENOEXEC: ::c_int = -2147478782; -pub const EPIPE: ::c_int = -2147459059; - -pub const IPPROTO_RAW: ::c_int = 255; - -// These are prefixed with POSIX_ on Haiku -pub const MADV_NORMAL: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_RANDOM: ::c_int = 3; -pub const MADV_WILLNEED: ::c_int = 4; -pub const MADV_DONTNEED: ::c_int = 5; -pub const MADV_FREE: ::c_int = 6; - -// https://github.com/haiku/haiku/blob/HEAD/headers/posix/net/if.h#L80 -pub const IFF_UP: ::c_int = 0x0001; -pub const IFF_BROADCAST: ::c_int = 0x0002; // valid broadcast address -pub const IFF_LOOPBACK: ::c_int = 0x0008; -pub const IFF_POINTOPOINT: ::c_int = 0x0010; // point-to-point link -pub const IFF_NOARP: ::c_int = 0x0040; // no address resolution -pub const IFF_AUTOUP: ::c_int = 0x0080; // auto dial -pub const IFF_PROMISC: ::c_int = 0x0100; // receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x0200; // receive all multicast packets -pub const IFF_SIMPLEX: ::c_int = 0x0800; // doesn't receive own transmissions -pub const IFF_LINK: ::c_int = 0x1000; // has link -pub const IFF_AUTO_CONFIGURED: ::c_int = 0x2000; -pub const IFF_CONFIGURING: ::c_int = 0x4000; -pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_INET: ::c_int = 1; -pub const AF_APPLETALK: ::c_int = 2; -pub const AF_ROUTE: ::c_int = 3; -pub const AF_LINK: ::c_int = 4; -pub const AF_INET6: ::c_int = 5; -pub const AF_DLI: ::c_int = 6; -pub const AF_IPX: ::c_int = 7; -pub const AF_NOTIFY: ::c_int = 8; -pub const AF_LOCAL: ::c_int = 9; -pub const AF_UNIX: ::c_int = AF_LOCAL; -pub const AF_BLUETOOTH: ::c_int = 10; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_LINK: ::c_int = AF_LINK; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_UNIX: ::c_int = AF_UNIX; -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; - -pub const IP_OPTIONS: ::c_int = 1; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_TOS: ::c_int = 3; -pub const IP_TTL: ::c_int = 4; -pub const IP_RECVOPTS: ::c_int = 5; -pub const IP_RECVRETOPTS: ::c_int = 6; -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_RETOPTS: ::c_int = 8; -pub const IP_MULTICAST_IF: ::c_int = 9; -pub const IP_MULTICAST_TTL: ::c_int = 10; -pub const IP_MULTICAST_LOOP: ::c_int = 11; -pub const IP_ADD_MEMBERSHIP: ::c_int = 12; -pub const IP_DROP_MEMBERSHIP: ::c_int = 13; -pub const IP_BLOCK_SOURCE: ::c_int = 14; -pub const IP_UNBLOCK_SOURCE: ::c_int = 15; -pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 16; -pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 17; - -pub const TCP_NODELAY: ::c_int = 0x01; -pub const TCP_MAXSEG: ::c_int = 0x02; -pub const TCP_NOPUSH: ::c_int = 0x04; -pub const TCP_NOOPT: ::c_int = 0x08; - -pub const IF_NAMESIZE: ::size_t = 32; -pub const IFNAMSIZ: ::size_t = IF_NAMESIZE; - -pub const IPV6_MULTICAST_IF: ::c_int = 24; -pub const IPV6_MULTICAST_HOPS: ::c_int = 25; -pub const IPV6_MULTICAST_LOOP: ::c_int = 26; -pub const IPV6_UNICAST_HOPS: ::c_int = 27; -pub const IPV6_JOIN_GROUP: ::c_int = 28; -pub const IPV6_LEAVE_GROUP: ::c_int = 29; -pub const IPV6_V6ONLY: ::c_int = 30; -pub const IPV6_PKTINFO: ::c_int = 31; -pub const IPV6_RECVPKTINFO: ::c_int = 32; -pub const IPV6_HOPLIMIT: ::c_int = 33; -pub const IPV6_RECVHOPLIMIT: ::c_int = 34; -pub const IPV6_HOPOPTS: ::c_int = 35; -pub const IPV6_DSTOPTS: ::c_int = 36; -pub const IPV6_RTHDR: ::c_int = 37; - -pub const MSG_OOB: ::c_int = 0x0001; -pub const MSG_PEEK: ::c_int = 0x0002; -pub const MSG_DONTROUTE: ::c_int = 0x0004; -pub const MSG_EOR: ::c_int = 0x0008; -pub const MSG_TRUNC: ::c_int = 0x0010; -pub const MSG_CTRUNC: ::c_int = 0x0020; -pub const MSG_WAITALL: ::c_int = 0x0040; -pub const MSG_DONTWAIT: ::c_int = 0x0080; -pub const MSG_BCAST: ::c_int = 0x0100; -pub const MSG_MCAST: ::c_int = 0x0200; -pub const MSG_EOF: ::c_int = 0x0400; -pub const MSG_NOSIGNAL: ::c_int = 0x0800; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const LOCK_SH: ::c_int = 0x01; -pub const LOCK_EX: ::c_int = 0x02; -pub const LOCK_NB: ::c_int = 0x04; -pub const LOCK_UN: ::c_int = 0x08; - -pub const MINSIGSTKSZ: ::size_t = 8192; -pub const SIGSTKSZ: ::size_t = 16384; - -pub const IOV_MAX: ::c_int = 1024; -pub const PATH_MAX: ::c_int = 1024; - -pub const SA_NOCLDSTOP: ::c_int = 0x01; -pub const SA_NOCLDWAIT: ::c_int = 0x02; -pub const SA_RESETHAND: ::c_int = 0x04; -pub const SA_NODEFER: ::c_int = 0x08; -pub const SA_RESTART: ::c_int = 0x10; -pub const SA_ONSTACK: ::c_int = 0x20; -pub const SA_SIGINFO: ::c_int = 0x40; -pub const SA_NOMASK: ::c_int = SA_NODEFER; -pub const SA_STACK: ::c_int = SA_ONSTACK; -pub const SA_ONESHOT: ::c_int = SA_RESETHAND; - -pub const SS_ONSTACK: ::c_int = 0x1; -pub const SS_DISABLE: ::c_int = 0x2; - -pub const FD_SETSIZE: usize = 1024; - -pub const RTLD_LOCAL: ::c_int = 0x0; -pub const RTLD_NOW: ::c_int = 0x1; -pub const RTLD_GLOBAL: ::c_int = 0x2; -pub const RTLD_DEFAULT: *mut ::c_void = 0isize as *mut ::c_void; - -pub const BUFSIZ: ::c_uint = 8192; -pub const FILENAME_MAX: ::c_uint = 256; -pub const FOPEN_MAX: ::c_uint = 128; -pub const L_tmpnam: ::c_uint = 512; -pub const TMP_MAX: ::c_uint = 32768; - -pub const _PC_CHOWN_RESTRICTED: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_NO_TRUNC: ::c_int = 5; -pub const _PC_PATH_MAX: ::c_int = 6; -pub const _PC_PIPE_BUF: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_LINK_MAX: ::c_int = 25; -pub const _PC_SYNC_IO: ::c_int = 26; -pub const _PC_ASYNC_IO: ::c_int = 27; -pub const _PC_PRIO_IO: ::c_int = 28; -pub const _PC_SOCK_MAXBUF: ::c_int = 29; -pub const _PC_FILESIZEBITS: ::c_int = 30; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 31; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 32; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 33; -pub const _PC_REC_XFER_ALIGN: ::c_int = 34; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 35; -pub const _PC_SYMLINK_MAX: ::c_int = 36; -pub const _PC_2_SYMLINKS: ::c_int = 37; -pub const _PC_XATTR_EXISTS: ::c_int = 38; -pub const _PC_XATTR_ENABLED: ::c_int = 39; - -pub const FIONBIO: ::c_ulong = 0xbe000000; -pub const FIONREAD: ::c_ulong = 0xbe000001; -pub const FIOSEEKDATA: ::c_ulong = 0xbe000002; -pub const FIOSEEKHOLE: ::c_ulong = 0xbe000003; - -pub const _SC_ARG_MAX: ::c_int = 15; -pub const _SC_CHILD_MAX: ::c_int = 16; -pub const _SC_CLK_TCK: ::c_int = 17; -pub const _SC_JOB_CONTROL: ::c_int = 18; -pub const _SC_NGROUPS_MAX: ::c_int = 19; -pub const _SC_OPEN_MAX: ::c_int = 20; -pub const _SC_SAVED_IDS: ::c_int = 21; -pub const _SC_STREAM_MAX: ::c_int = 22; -pub const _SC_TZNAME_MAX: ::c_int = 23; -pub const _SC_VERSION: ::c_int = 24; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 25; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 26; -pub const _SC_PAGESIZE: ::c_int = 27; -pub const _SC_PAGE_SIZE: ::c_int = 27; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 28; -pub const _SC_SEM_VALUE_MAX: ::c_int = 29; -pub const _SC_SEMAPHORES: ::c_int = 30; -pub const _SC_THREADS: ::c_int = 31; -pub const _SC_IOV_MAX: ::c_int = 32; -pub const _SC_UIO_MAXIOV: ::c_int = 32; -pub const _SC_NPROCESSORS_CONF: ::c_int = 34; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 35; -pub const _SC_ATEXIT_MAX: ::c_int = 37; -pub const _SC_PASS_MAX: ::c_int = 39; -pub const _SC_PHYS_PAGES: ::c_int = 40; -pub const _SC_AVPHYS_PAGES: ::c_int = 41; -pub const _SC_PIPE: ::c_int = 42; -pub const _SC_SELECT: ::c_int = 43; -pub const _SC_POLL: ::c_int = 44; -pub const _SC_MAPPED_FILES: ::c_int = 45; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 46; -pub const _SC_THREAD_STACK_MIN: ::c_int = 47; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 48; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 49; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 50; -pub const _SC_REALTIME_SIGNALS: ::c_int = 51; -pub const _SC_MEMORY_PROTECTION: ::c_int = 52; -pub const _SC_SIGQUEUE_MAX: ::c_int = 53; -pub const _SC_RTSIG_MAX: ::c_int = 54; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 55; -pub const _SC_DELAYTIMER_MAX: ::c_int = 56; -pub const _SC_TIMER_MAX: ::c_int = 57; -pub const _SC_TIMERS: ::c_int = 58; -pub const _SC_CPUTIME: ::c_int = 59; -pub const _SC_THREAD_CPUTIME: ::c_int = 60; -pub const _SC_HOST_NAME_MAX: ::c_int = 61; -pub const _SC_REGEXP: ::c_int = 62; -pub const _SC_SYMLOOP_MAX: ::c_int = 63; -pub const _SC_SHELL: ::c_int = 64; -pub const _SC_TTY_NAME_MAX: ::c_int = 65; - -pub const PTHREAD_STACK_MIN: ::size_t = 8192; - -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - flags: 0, - lock: 0, - unused: -42, - owner: -1, - owner_count: 0, -}; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - flags: 0, - unused: -42, - mutex: 0 as *mut _, - waiter_count: 0, - lock: 0, -}; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - flags: 0, - owner: -1, - lock_sem: 0, - lock_count: 0, - reader_count: 0, - writer_count: 0, - waiters: [0 as *mut _; 2], -}; - -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = 0; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 3; - -pub const FIOCLEX: c_ulong = 0; // FIXME: does not exist on Haiku! - -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_SEQPACKET: ::c_int = 5; - -pub const SOL_SOCKET: ::c_int = -1; -pub const SO_ACCEPTCONN: ::c_int = 0x00000001; -pub const SO_BROADCAST: ::c_int = 0x00000002; -pub const SO_DEBUG: ::c_int = 0x00000004; -pub const SO_DONTROUTE: ::c_int = 0x00000008; -pub const SO_KEEPALIVE: ::c_int = 0x00000010; -pub const SO_OOBINLINE: ::c_int = 0x00000020; -pub const SO_REUSEADDR: ::c_int = 0x00000040; -pub const SO_REUSEPORT: ::c_int = 0x00000080; -pub const SO_USELOOPBACK: ::c_int = 0x00000100; -pub const SO_LINGER: ::c_int = 0x00000200; -pub const SO_SNDBUF: ::c_int = 0x40000001; -pub const SO_SNDLOWAT: ::c_int = 0x40000002; -pub const SO_SNDTIMEO: ::c_int = 0x40000003; -pub const SO_RCVBUF: ::c_int = 0x40000004; -pub const SO_RCVLOWAT: ::c_int = 0x40000005; -pub const SO_RCVTIMEO: ::c_int = 0x40000006; -pub const SO_ERROR: ::c_int = 0x40000007; -pub const SO_TYPE: ::c_int = 0x40000008; -pub const SO_NONBLOCK: ::c_int = 0x40000009; -pub const SO_BINDTODEVICE: ::c_int = 0x4000000a; -pub const SO_PEERCRED: ::c_int = 0x4000000b; - -pub const SCM_RIGHTS: ::c_int = 0x01; - -pub const SOMAXCONN: ::c_int = 32; - -pub const NI_MAXHOST: ::size_t = 1025; - -pub const WNOHANG: ::c_int = 0x01; -pub const WUNTRACED: ::c_int = 0x02; -pub const WCONTINUED: ::c_int = 0x04; -pub const WEXITED: ::c_int = 0x08; -pub const WSTOPPED: ::c_int = 0x10; -pub const WNOWAIT: ::c_int = 0x20; - -// si_code values for SIGBUS signal -pub const BUS_ADRALN: ::c_int = 40; -pub const BUS_ADRERR: ::c_int = 41; -pub const BUS_OBJERR: ::c_int = 42; - -// si_code values for SIGCHLD signal -pub const CLD_EXITED: ::c_int = 60; -pub const CLD_KILLED: ::c_int = 61; -pub const CLD_DUMPED: ::c_int = 62; -pub const CLD_TRAPPED: ::c_int = 63; -pub const CLD_STOPPED: ::c_int = 64; -pub const CLD_CONTINUED: ::c_int = 65; - -pub const P_ALL: idtype_t = 0; -pub const P_PID: idtype_t = 1; -pub const P_PGID: idtype_t = 2; - -pub const UTIME_OMIT: c_long = 1000000001; -pub const UTIME_NOW: c_long = 1000000000; - -pub const VINTR: usize = 0; -pub const VQUIT: usize = 1; -pub const VERASE: usize = 2; -pub const VKILL: usize = 3; -pub const VEOF: usize = 4; -pub const VEOL: usize = 5; -pub const VMIN: usize = 4; -pub const VTIME: usize = 5; -pub const VEOL2: usize = 6; -pub const VSWTCH: usize = 7; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VSUSP: usize = 10; - -pub const IGNBRK: ::tcflag_t = 0x01; -pub const BRKINT: ::tcflag_t = 0x02; -pub const IGNPAR: ::tcflag_t = 0x04; -pub const PARMRK: ::tcflag_t = 0x08; -pub const INPCK: ::tcflag_t = 0x10; -pub const ISTRIP: ::tcflag_t = 0x20; -pub const INLCR: ::tcflag_t = 0x40; -pub const IGNCR: ::tcflag_t = 0x80; -pub const ICRNL: ::tcflag_t = 0x100; -pub const IUCLC: ::tcflag_t = 0x200; -pub const IXON: ::tcflag_t = 0x400; -pub const IXANY: ::tcflag_t = 0x800; -pub const IXOFF: ::tcflag_t = 0x1000; - -pub const OPOST: ::tcflag_t = 0x00000001; -pub const OLCUC: ::tcflag_t = 0x00000002; -pub const ONLCR: ::tcflag_t = 0x00000004; -pub const OCRNL: ::tcflag_t = 0x00000008; -pub const ONOCR: ::tcflag_t = 0x00000010; -pub const ONLRET: ::tcflag_t = 0x00000020; -pub const OFILL: ::tcflag_t = 0x00000040; -pub const OFDEL: ::tcflag_t = 0x00000080; -pub const NLDLY: ::tcflag_t = 0x00000100; -pub const NL0: ::tcflag_t = 0x00000000; -pub const NL1: ::tcflag_t = 0x00000100; -pub const CRDLY: ::tcflag_t = 0x00000600; -pub const CR0: ::tcflag_t = 0x00000000; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const TABDLY: ::tcflag_t = 0x00001800; -pub const TAB0: ::tcflag_t = 0x00000000; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const BSDLY: ::tcflag_t = 0x00002000; -pub const BS0: ::tcflag_t = 0x00000000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VTDLY: ::tcflag_t = 0x00004000; -pub const VT0: ::tcflag_t = 0x00000000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const FFDLY: ::tcflag_t = 0x00008000; -pub const FF0: ::tcflag_t = 0x00000000; -pub const FF1: ::tcflag_t = 0x00008000; - -pub const CSIZE: ::tcflag_t = 0x00000020; -pub const CS5: ::tcflag_t = 0x00000000; -pub const CS6: ::tcflag_t = 0x00000000; -pub const CS7: ::tcflag_t = 0x00000000; -pub const CS8: ::tcflag_t = 0x00000020; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const XLOBLK: ::tcflag_t = 0x00001000; -pub const CTSFLOW: ::tcflag_t = 0x00002000; -pub const RTSFLOW: ::tcflag_t = 0x00004000; -pub const CRTSCTS: ::tcflag_t = RTSFLOW | CTSFLOW; - -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const XCASE: ::tcflag_t = 0x00000004; -pub const ECHO: ::tcflag_t = 0x00000008; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const IEXTEN: ::tcflag_t = 0x00000200; -pub const ECHOCTL: ::tcflag_t = 0x00000400; -pub const ECHOPRT: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00001000; -pub const FLUSHO: ::tcflag_t = 0x00002000; -pub const PENDIN: ::tcflag_t = 0x00004000; - -pub const TCGB_CTS: ::c_int = 0x01; -pub const TCGB_DSR: ::c_int = 0x02; -pub const TCGB_RI: ::c_int = 0x04; -pub const TCGB_DCD: ::c_int = 0x08; -pub const TIOCM_CTS: ::c_int = TCGB_CTS; -pub const TIOCM_CD: ::c_int = TCGB_DCD; -pub const TIOCM_CAR: ::c_int = TIOCM_CD; -pub const TIOCM_RI: ::c_int = TCGB_RI; -pub const TIOCM_DSR: ::c_int = TCGB_DSR; -pub const TIOCM_DTR: ::c_int = 0x10; -pub const TIOCM_RTS: ::c_int = 0x20; - -pub const B0: speed_t = 0x00; -pub const B50: speed_t = 0x01; -pub const B75: speed_t = 0x02; -pub const B110: speed_t = 0x03; -pub const B134: speed_t = 0x04; -pub const B150: speed_t = 0x05; -pub const B200: speed_t = 0x06; -pub const B300: speed_t = 0x07; -pub const B600: speed_t = 0x08; -pub const B1200: speed_t = 0x09; -pub const B1800: speed_t = 0x0A; -pub const B2400: speed_t = 0x0B; -pub const B4800: speed_t = 0x0C; -pub const B9600: speed_t = 0x0D; -pub const B19200: speed_t = 0x0E; -pub const B38400: speed_t = 0x0F; -pub const B57600: speed_t = 0x10; -pub const B115200: speed_t = 0x11; -pub const B230400: speed_t = 0x12; -pub const B31250: speed_t = 0x13; - -pub const TCSANOW: ::c_int = 0x01; -pub const TCSADRAIN: ::c_int = 0x02; -pub const TCSAFLUSH: ::c_int = 0x04; - -pub const TCOOFF: ::c_int = 0x01; -pub const TCOON: ::c_int = 0x02; -pub const TCIOFF: ::c_int = 0x04; -pub const TCION: ::c_int = 0x08; - -pub const TCIFLUSH: ::c_int = 0x01; -pub const TCOFLUSH: ::c_int = 0x02; -pub const TCIOFLUSH: ::c_int = 0x03; - -pub const TCGETA: ::c_ulong = 0x8000; -pub const TCSETA: ::c_ulong = TCGETA + 1; -pub const TCSETAF: ::c_ulong = TCGETA + 2; -pub const TCSETAW: ::c_ulong = TCGETA + 3; -pub const TCWAITEVENT: ::c_ulong = TCGETA + 4; -pub const TCSBRK: ::c_ulong = TCGETA + 5; -pub const TCFLSH: ::c_ulong = TCGETA + 6; -pub const TCXONC: ::c_ulong = TCGETA + 7; -pub const TCQUERYCONNECTED: ::c_ulong = TCGETA + 8; -pub const TCGETBITS: ::c_ulong = TCGETA + 9; -pub const TCSETDTR: ::c_ulong = TCGETA + 10; -pub const TCSETRTS: ::c_ulong = TCGETA + 11; -pub const TIOCGWINSZ: ::c_ulong = TCGETA + 12; -pub const TIOCSWINSZ: ::c_ulong = TCGETA + 13; -pub const TCVTIME: ::c_ulong = TCGETA + 14; -pub const TIOCGPGRP: ::c_ulong = TCGETA + 15; -pub const TIOCSPGRP: ::c_ulong = TCGETA + 16; -pub const TIOCSCTTY: ::c_ulong = TCGETA + 17; -pub const TIOCMGET: ::c_ulong = TCGETA + 18; -pub const TIOCMSET: ::c_ulong = TCGETA + 19; -pub const TIOCSBRK: ::c_ulong = TCGETA + 20; -pub const TIOCCBRK: ::c_ulong = TCGETA + 21; -pub const TIOCMBIS: ::c_ulong = TCGETA + 22; -pub const TIOCMBIC: ::c_ulong = TCGETA + 23; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -// utmpx entry types -pub const EMPTY: ::c_short = 0; -pub const BOOT_TIME: ::c_short = 1; -pub const OLD_TIME: ::c_short = 2; -pub const NEW_TIME: ::c_short = 3; -pub const USER_PROCESS: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const DEAD_PROCESS: ::c_short = 7; - -pub const LOG_PID: ::c_int = 1 << 12; -pub const LOG_CONS: ::c_int = 2 << 12; -pub const LOG_ODELAY: ::c_int = 4 << 12; -pub const LOG_NDELAY: ::c_int = 8 << 12; -pub const LOG_SERIAL: ::c_int = 16 << 12; -pub const LOG_PERROR: ::c_int = 32 << 12; -pub const LOG_NOWAIT: ::c_int = 64 << 12; - -// spawn.h -pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; -pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; -pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10; -pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20; -pub const POSIX_SPAWN_SETSID: ::c_int = 0x40; - -const_fn! { - {const} fn CMSG_ALIGN(len: usize) -> usize { - len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) - } -} - -f! { - pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { - (*mhdr).msg_control as *mut cmsghdr - } else { - 0 as *mut cmsghdr - } - } - - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) - } - - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) - as ::c_uint - } - - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length - } - - pub fn CMSG_NXTHDR(mhdr: *const msghdr, - cmsg: *const cmsghdr) -> *mut cmsghdr { - if cmsg.is_null() { - return ::CMSG_FIRSTHDR(mhdr); - }; - let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) - + CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; - if next > max { - 0 as *mut ::cmsghdr - } else { - (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) - as *mut ::cmsghdr - } - } - - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - (*set).fds_bits[fd / size] &= !(1 << (fd % size)); - return - } - - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 - } - - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - (*set).fds_bits[fd / size] |= 1 << (fd % size); - return - } - - pub fn FD_ZERO(set: *mut fd_set) -> () { - for slot in (*set).fds_bits.iter_mut() { - *slot = 0; - } - } -} - -safe_f! { - pub {const} fn WIFEXITED(status: ::c_int) -> bool { - (status & !0xff) == 0 - } - - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { - status & 0xff - } - - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { - ((status >> 8) & 0xff) != 0 - } - - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { - (status >> 8) & 0xff - } - - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { - ((status >> 16) & 0xff) != 0 - } - - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { - (status >> 16) & 0xff - } - - // actually WIFCORED, but this is used everywhere else - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { - (status & 0x10000) != 0 - } - - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { - (status & 0x20000) != 0 - } -} - -extern "C" { - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn getpriority(which: ::c_int, who: id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: id_t, priority: ::c_int) -> ::c_int; - - pub fn endusershell(); - pub fn getpass(prompt: *const ::c_char) -> *mut ::c_char; - pub fn getusershell() -> *mut ::c_char; - pub fn issetugid() -> ::c_int; - pub fn setusershell(); - - pub fn utimensat( - fd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - pub fn _errnop() -> *mut ::c_int; - - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); - pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; - pub fn freeifaddrs(ifa: *mut ::ifaddrs); - pub fn ppoll( - fds: *mut ::pollfd, - numfds: ::nfds_t, - timeout: *const ::timespec, - sigMask: *const sigset_t, - ) -> ::c_int; - - pub fn getspent() -> *mut spwd; - pub fn getspent_r( - pwd: *mut spwd, - buf: *mut ::c_char, - bufferSize: ::size_t, - res: *mut *mut spwd, - ) -> ::c_int; - pub fn setspent(); - pub fn endspent(); - pub fn getspnam(name: *const ::c_char) -> *mut spwd; - pub fn getspnam_r( - name: *const ::c_char, - spwd: *mut spwd, - buffer: *mut ::c_char, - bufferSize: ::size_t, - res: *mut *mut spwd, - ) -> ::c_int; - pub fn sgetspent(line: *const ::c_char) -> *mut spwd; - pub fn sgetspent_r( - line: *const ::c_char, - spwd: *mut spwd, - buffer: *mut ::c_char, - bufferSize: ::size_t, - res: *mut *mut spwd, - ) -> ::c_int; - pub fn fgetspent(file: *mut ::FILE) -> *mut spwd; - pub fn fgetspent_r( - file: *mut ::FILE, - spwd: *mut spwd, - buffer: *mut ::c_char, - bufferSize: ::size_t, - res: *mut *mut spwd, - ) -> ::c_int; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: dev_t, - ) -> ::c_int; - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - - pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; - pub fn pthread_create( - thread: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn pthread_attr_getguardsize( - attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t, - ) -> ::c_int; - pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; - pub fn pthread_condattr_getclock( - attr: *const pthread_condattr_t, - clock_id: *mut clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_setclock( - attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn valloc(numBytes: ::size_t) -> *mut ::c_void; - pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t; - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; - pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; - pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn pthread_mutex_timedlock( - lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; - - pub fn glob( - pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - pub fn globfree(pglob: *mut ::glob_t); - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advice: ::c_int) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; - - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - - pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; - - pub fn writev(fd: ::c_int, iov: *const ::iovec, count: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, count: ::c_int) -> ::ssize_t; - - pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - environment: *const *const ::c_char, - ) -> ::c_int; - pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn getgrouplist( - user: *const ::c_char, - basegroup: ::gid_t, - grouplist: *mut ::gid_t, - groupcount: *mut ::c_int, - ) -> ::c_int; - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn getdtablesize() -> ::c_int; - pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn getpwnam_r( - name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn getpwuid_r( - uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn getpwent() -> *mut passwd; - pub fn setpwent(); - pub fn endpwent(); - pub fn endgrent(); - pub fn getgrent() -> *mut ::group; - pub fn setgrent(); - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; - pub fn getutxent() -> *mut utmpx; - pub fn getutxid(ut: *const utmpx) -> *mut utmpx; - pub fn getutxline(ut: *const utmpx) -> *mut utmpx; - pub fn pututxline(ut: *const utmpx) -> *mut utmpx; - pub fn setutxent(); - pub fn endutxent(); - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; - - pub fn sigtimedwait( - set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; - - pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int; - pub fn setitimer( - which: ::c_int, - new_value: *const ::itimerval, - old_value: *mut ::itimerval, - ) -> ::c_int; - - pub fn regcomp(preg: *mut regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; - - pub fn regexec( - preg: *const regex_t, - input: *const ::c_char, - nmatch: ::size_t, - pmatch: *mut regmatch_t, - eflags: ::c_int, - ) -> ::c_int; - - pub fn regerror( - errcode: ::c_int, - preg: *const regex_t, - errbuf: *mut ::c_char, - errbuf_size: ::size_t, - ) -> ::size_t; - - pub fn regfree(preg: *mut regex_t); - - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; - pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; - pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtype: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; - pub fn msgsnd( - msqid: ::c_int, - msgp: *const ::c_void, - msgsz: ::size_t, - msgflg: ::c_int, - ) -> ::c_int; - pub fn semget(key: ::key_t, nsems: ::c_int, semflg: ::c_int) -> ::c_int; - pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int; - pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; - - pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; - - pub fn lsearch( - key: *const ::c_void, - base: *mut ::c_void, - nelp: *mut ::size_t, - width: ::size_t, - compar: ::Option ::c_int>, - ) -> *mut ::c_void; - pub fn lfind( - key: *const ::c_void, - base: *const ::c_void, - nelp: *mut ::size_t, - width: ::size_t, - compar: ::Option ::c_int>, - ) -> *mut ::c_void; - pub fn hcreate(nelt: ::size_t) -> ::c_int; - pub fn hdestroy(); - pub fn hsearch(entry: ::ENTRY, action: ::ACTION) -> *mut ::ENTRY; - - pub fn drand48() -> ::c_double; - pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; - pub fn lrand48() -> ::c_long; - pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn mrand48() -> ::c_long; - pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn srand48(seed: ::c_long); - pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; - pub fn lcong48(p: *mut ::c_ushort); - - pub fn clearenv() -> ::c_int; - pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; - - pub fn sync(); - pub fn getpagesize() -> ::c_int; - - pub fn brk(addr: *mut ::c_void) -> ::c_int; - pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; - - pub fn posix_spawn( - pid: *mut ::pid_t, - path: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawnp( - pid: *mut ::pid_t, - file: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - - pub fn posix_spawn_file_actions_init(file_actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_destroy( - file_actions: *mut posix_spawn_file_actions_t, - ) -> ::c_int; - pub fn posix_spawn_file_actions_addopen( - file_actions: *mut posix_spawn_file_actions_t, - fildes: ::c_int, - path: *const ::c_char, - oflag: ::c_int, - mode: ::mode_t, - ) -> ::c_int; - pub fn posix_spawn_file_actions_addclose( - file_actions: *mut posix_spawn_file_actions_t, - fildes: ::c_int, - ) -> ::c_int; - pub fn posix_spawn_file_actions_adddup2( - file_actions: *mut posix_spawn_file_actions_t, - fildes: ::c_int, - newfildes: ::c_int, - ) -> ::c_int; - - pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_getflags( - attr: *const posix_spawnattr_t, - _flags: *mut ::c_short, - ) -> ::c_int; - pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; - pub fn posix_spawnattr_getpgroup( - attr: *const posix_spawnattr_t, - _pgroup: *mut ::pid_t, - ) -> ::c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, pgroup: ::pid_t) -> ::c_int; - pub fn posix_spawnattr_getsigdefault( - attr: *const posix_spawnattr_t, - sigdefault: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigdefault( - attr: *mut posix_spawnattr_t, - sigdefault: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getsigmask( - attr: *const posix_spawnattr_t, - _sigmask: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigmask( - attr: *mut posix_spawnattr_t, - sigmask: *const ::sigset_t, - ) -> ::c_int; - pub fn getopt_long( - argc: ::c_int, - argv: *const *mut c_char, - optstring: *const c_char, - longopts: *const option, - longindex: *mut ::c_int, - ) -> ::c_int; - pub fn strcasecmp_l( - string1: *const ::c_char, - string2: *const ::c_char, - locale: ::locale_t, - ) -> ::c_int; - pub fn strncasecmp_l( - string1: *const ::c_char, - string2: *const ::c_char, - length: ::size_t, - locale: ::locale_t, - ) -> ::c_int; -} - -#[link(name = "bsd")] -extern "C" { - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize, - ) -> ::pid_t; - pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize, - ) -> ::c_int; - pub fn strsep(string: *mut *mut ::c_char, delimiters: *const ::c_char) -> *mut ::c_char; - pub fn explicit_bzero(buf: *mut ::c_void, len: ::size_t); - pub fn login_tty(_fd: ::c_int) -> ::c_int; - - pub fn sl_init() -> *mut StringList; - pub fn sl_add(sl: *mut StringList, n: *mut ::c_char) -> ::c_int; - pub fn sl_free(sl: *mut StringList, i: ::c_int); - pub fn sl_find(sl: *mut StringList, n: *mut ::c_char) -> *mut ::c_char; - - pub fn getprogname() -> *const ::c_char; - pub fn setprogname(progname: *const ::c_char); - pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut dl_phdr_info, - size: usize, - data: *mut ::c_void, - ) -> ::c_int, - >, - data: *mut ::c_void, - ) -> ::c_int; -} - -#[link(name = "gnu")] -extern "C" { - pub fn memmem( - source: *const ::c_void, - sourceLength: ::size_t, - search: *const ::c_void, - searchLength: ::size_t, - ) -> *mut ::c_void; -} - -cfg_if! { - if #[cfg(target_pointer_width = "64")] { - mod b64; - pub use self::b64::*; - } else { - mod b32; - pub use self::b32::*; - } -} - -cfg_if! { - if #[cfg(target_arch = "x86")] { - // TODO - // mod x86; - // pub use self::x86::*; - } else if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } else if #[cfg(target_arch = "aarch64")] { - // TODO - // mod aarch64; - // pub use self::aarch64::*; - } -} - -mod native; -pub use self::native::*; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/haiku/native.rs b/src/rust/vendor/libc-0.2.146/src/unix/haiku/native.rs deleted file mode 100644 index 44bcc1e3b..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/haiku/native.rs +++ /dev/null @@ -1,1366 +0,0 @@ -// This module contains bindings to the native Haiku API. The Haiku API -// originates from BeOS, and it was the original way to perform low level -// system and IO operations. The POSIX API was in that era was like a -// compatibility layer. In current Haiku development, both the POSIX API and -// the Haiku API are considered to be co-equal status. However, they are not -// integrated like they are on other UNIX platforms, which means that for many -// low level concepts there are two versions, like processes (POSIX) and -// teams (Haiku), or pthreads and native threads. -// -// Both the POSIX API and the Haiku API live in libroot.so, the library that is -// linked to any binary by default. -// -// This file follows the Haiku API for Haiku R1 beta 2. It is organized by the -// C/C++ header files in which the concepts can be found, while adhering to the -// style guide for this crate. - -// Helper macro to generate u32 constants. The Haiku API uses (non-standard) -// multi-character constants (like 'UPDA' or 'MSGM') to represent 32 bit -// integer constants. - -macro_rules! haiku_constant { - ($a:tt, $b:tt, $c:tt, $d:tt) => { - (($a as u32) << 24) + (($b as u32) << 16) + (($c as u32) << 8) + ($d as u32) - }; -} - -// support/SupportDefs.h -pub type status_t = i32; -pub type bigtime_t = i64; -pub type nanotime_t = i64; -pub type type_code = u32; -pub type perform_code = u32; - -// kernel/OS.h -pub type area_id = i32; -pub type port_id = i32; -pub type sem_id = i32; -pub type team_id = i32; -pub type thread_id = i32; - -pub type thread_func = extern "C" fn(*mut ::c_void) -> status_t; - -// kernel/image.h -pub type image_id = i32; - -e! { - // kernel/OS.h - pub enum thread_state { - B_THREAD_RUNNING = 1, - B_THREAD_READY, - B_THREAD_RECEIVING, - B_THREAD_ASLEEP, - B_THREAD_SUSPENDED, - B_THREAD_WAITING - } - - // kernel/image.h - pub enum image_type { - B_APP_IMAGE = 1, - B_LIBRARY_IMAGE, - B_ADD_ON_IMAGE, - B_SYSTEM_IMAGE - } - - // kernel/scheduler.h - - pub enum be_task_flags { - B_DEFAULT_MEDIA_PRIORITY = 0x000, - B_OFFLINE_PROCESSING = 0x001, - B_STATUS_RENDERING = 0x002, - B_USER_INPUT_HANDLING = 0x004, - B_LIVE_VIDEO_MANIPULATION = 0x008, - B_VIDEO_PLAYBACK = 0x010, - B_VIDEO_RECORDING = 0x020, - B_LIVE_AUDIO_MANIPULATION = 0x040, - B_AUDIO_PLAYBACK = 0x080, - B_AUDIO_RECORDING = 0x100, - B_LIVE_3D_RENDERING = 0x200, - B_NUMBER_CRUNCHING = 0x400, - B_MIDI_PROCESSING = 0x800, - } - - pub enum schduler_mode { - SCHEDULER_MODE_LOW_LATENCY, - SCHEDULER_MODE_POWER_SAVING, - } - - // FindDirectory.h - pub enum path_base_directory { - B_FIND_PATH_INSTALLATION_LOCATION_DIRECTORY, - B_FIND_PATH_ADD_ONS_DIRECTORY, - B_FIND_PATH_APPS_DIRECTORY, - B_FIND_PATH_BIN_DIRECTORY, - B_FIND_PATH_BOOT_DIRECTORY, - B_FIND_PATH_CACHE_DIRECTORY, - B_FIND_PATH_DATA_DIRECTORY, - B_FIND_PATH_DEVELOP_DIRECTORY, - B_FIND_PATH_DEVELOP_LIB_DIRECTORY, - B_FIND_PATH_DOCUMENTATION_DIRECTORY, - B_FIND_PATH_ETC_DIRECTORY, - B_FIND_PATH_FONTS_DIRECTORY, - B_FIND_PATH_HEADERS_DIRECTORY, - B_FIND_PATH_LIB_DIRECTORY, - B_FIND_PATH_LOG_DIRECTORY, - B_FIND_PATH_MEDIA_NODES_DIRECTORY, - B_FIND_PATH_PACKAGES_DIRECTORY, - B_FIND_PATH_PREFERENCES_DIRECTORY, - B_FIND_PATH_SERVERS_DIRECTORY, - B_FIND_PATH_SETTINGS_DIRECTORY, - B_FIND_PATH_SOUNDS_DIRECTORY, - B_FIND_PATH_SPOOL_DIRECTORY, - B_FIND_PATH_TRANSLATORS_DIRECTORY, - B_FIND_PATH_VAR_DIRECTORY, - B_FIND_PATH_IMAGE_PATH = 1000, - B_FIND_PATH_PACKAGE_PATH, - } - - pub enum directory_which { - B_DESKTOP_DIRECTORY = 0, - B_TRASH_DIRECTORY, - B_SYSTEM_DIRECTORY = 1000, - B_SYSTEM_ADDONS_DIRECTORY = 1002, - B_SYSTEM_BOOT_DIRECTORY, - B_SYSTEM_FONTS_DIRECTORY, - B_SYSTEM_LIB_DIRECTORY, - B_SYSTEM_SERVERS_DIRECTORY, - B_SYSTEM_APPS_DIRECTORY, - B_SYSTEM_BIN_DIRECTORY, - B_SYSTEM_DOCUMENTATION_DIRECTORY = 1010, - B_SYSTEM_PREFERENCES_DIRECTORY, - B_SYSTEM_TRANSLATORS_DIRECTORY, - B_SYSTEM_MEDIA_NODES_DIRECTORY, - B_SYSTEM_SOUNDS_DIRECTORY, - B_SYSTEM_DATA_DIRECTORY, - B_SYSTEM_DEVELOP_DIRECTORY, - B_SYSTEM_PACKAGES_DIRECTORY, - B_SYSTEM_HEADERS_DIRECTORY, - B_SYSTEM_ETC_DIRECTORY = 2008, - B_SYSTEM_SETTINGS_DIRECTORY = 2010, - B_SYSTEM_LOG_DIRECTORY = 2012, - B_SYSTEM_SPOOL_DIRECTORY, - B_SYSTEM_TEMP_DIRECTORY, - B_SYSTEM_VAR_DIRECTORY, - B_SYSTEM_CACHE_DIRECTORY = 2020, - B_SYSTEM_NONPACKAGED_DIRECTORY = 2023, - B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY, - B_SYSTEM_NONPACKAGED_TRANSLATORS_DIRECTORY, - B_SYSTEM_NONPACKAGED_MEDIA_NODES_DIRECTORY, - B_SYSTEM_NONPACKAGED_BIN_DIRECTORY, - B_SYSTEM_NONPACKAGED_DATA_DIRECTORY, - B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY, - B_SYSTEM_NONPACKAGED_SOUNDS_DIRECTORY, - B_SYSTEM_NONPACKAGED_DOCUMENTATION_DIRECTORY, - B_SYSTEM_NONPACKAGED_LIB_DIRECTORY, - B_SYSTEM_NONPACKAGED_HEADERS_DIRECTORY, - B_SYSTEM_NONPACKAGED_DEVELOP_DIRECTORY, - B_USER_DIRECTORY = 3000, - B_USER_CONFIG_DIRECTORY, - B_USER_ADDONS_DIRECTORY, - B_USER_BOOT_DIRECTORY, - B_USER_FONTS_DIRECTORY, - B_USER_LIB_DIRECTORY, - B_USER_SETTINGS_DIRECTORY, - B_USER_DESKBAR_DIRECTORY, - B_USER_PRINTERS_DIRECTORY, - B_USER_TRANSLATORS_DIRECTORY, - B_USER_MEDIA_NODES_DIRECTORY, - B_USER_SOUNDS_DIRECTORY, - B_USER_DATA_DIRECTORY, - B_USER_CACHE_DIRECTORY, - B_USER_PACKAGES_DIRECTORY, - B_USER_HEADERS_DIRECTORY, - B_USER_NONPACKAGED_DIRECTORY, - B_USER_NONPACKAGED_ADDONS_DIRECTORY, - B_USER_NONPACKAGED_TRANSLATORS_DIRECTORY, - B_USER_NONPACKAGED_MEDIA_NODES_DIRECTORY, - B_USER_NONPACKAGED_BIN_DIRECTORY, - B_USER_NONPACKAGED_DATA_DIRECTORY, - B_USER_NONPACKAGED_FONTS_DIRECTORY, - B_USER_NONPACKAGED_SOUNDS_DIRECTORY, - B_USER_NONPACKAGED_DOCUMENTATION_DIRECTORY, - B_USER_NONPACKAGED_LIB_DIRECTORY, - B_USER_NONPACKAGED_HEADERS_DIRECTORY, - B_USER_NONPACKAGED_DEVELOP_DIRECTORY, - B_USER_DEVELOP_DIRECTORY, - B_USER_DOCUMENTATION_DIRECTORY, - B_USER_SERVERS_DIRECTORY, - B_USER_APPS_DIRECTORY, - B_USER_BIN_DIRECTORY, - B_USER_PREFERENCES_DIRECTORY, - B_USER_ETC_DIRECTORY, - B_USER_LOG_DIRECTORY, - B_USER_SPOOL_DIRECTORY, - B_USER_VAR_DIRECTORY, - B_APPS_DIRECTORY = 4000, - B_PREFERENCES_DIRECTORY, - B_UTILITIES_DIRECTORY, - B_PACKAGE_LINKS_DIRECTORY, - } -} - -s! { - // kernel/OS.h - pub struct area_info { - pub area: area_id, - pub name: [::c_char; B_OS_NAME_LENGTH], - pub size: usize, - pub lock: u32, - pub protection: u32, - pub team: team_id, - pub ram_size: u32, - pub copy_count: u32, - pub in_count: u32, - pub out_count: u32, - pub address: *mut ::c_void - } - - pub struct port_info { - pub port: port_id, - pub team: team_id, - pub name: [::c_char; B_OS_NAME_LENGTH], - pub capacity: i32, - pub queue_count: i32, - pub total_count: i32, - } - - pub struct port_message_info { - pub size: ::size_t, - pub sender: ::uid_t, - pub sender_group: ::gid_t, - pub sender_team: ::team_id - } - - pub struct team_info { - pub team: team_id, - pub thread_count: i32, - pub image_count: i32, - pub area_count: i32, - pub debugger_nub_thread: thread_id, - pub debugger_nub_port: port_id, - pub argc: i32, - pub args: [::c_char; 64], - pub uid: ::uid_t, - pub gid: ::gid_t - } - - pub struct sem_info { - pub sem: sem_id, - pub team: team_id, - pub name: [::c_char; B_OS_NAME_LENGTH], - pub count: i32, - pub latest_holder: thread_id - } - - pub struct team_usage_info { - pub user_time: bigtime_t, - pub kernel_time: bigtime_t - } - - pub struct thread_info { - pub thread: thread_id, - pub team: team_id, - pub name: [::c_char; B_OS_NAME_LENGTH], - pub state: thread_state, - pub priority: i32, - pub sem: sem_id, - pub user_time: bigtime_t, - pub kernel_time: bigtime_t, - pub stack_base: *mut ::c_void, - pub stack_end: *mut ::c_void - } - - pub struct cpu_info { - pub active_time: bigtime_t, - pub enabled: bool, - pub current_frequency: u64 - } - - pub struct system_info { - pub boot_time: bigtime_t, - pub cpu_count: u32, - pub max_pages: u64, - pub used_pages: u64, - pub cached_pages: u64, - pub block_cache_pages: u64, - pub ignored_pages: u64, - pub needed_memory: u64, - pub free_memory: u64, - pub max_swap_pages: u64, - pub free_swap_pages: u64, - pub page_faults: u32, - pub max_sems: u32, - pub used_sems: u32, - pub max_ports: u32, - pub used_ports: u32, - pub max_threads: u32, - pub used_threads: u32, - pub max_teams: u32, - pub used_teams: u32, - pub kernel_name: [::c_char; B_FILE_NAME_LENGTH], - pub kernel_build_date: [::c_char; B_OS_NAME_LENGTH], - pub kernel_build_time: [::c_char; B_OS_NAME_LENGTH], - pub kernel_version: i64, - pub abi: u32 - } - - pub struct object_wait_info { - pub object: i32, - pub type_: u16, - pub events: u16 - } - - // kernel/fs_attr.h - pub struct attr_info { - pub type_: u32, - pub size: ::off_t - } - - // kernel/fs_index.h - pub struct index_info { - pub type_: u32, - pub size: ::off_t, - pub modification_time: ::time_t, - pub creation_time: ::time_t, - pub uid: ::uid_t, - pub gid: ::gid_t - } - - //kernel/fs_info.h - pub struct fs_info { - pub dev: ::dev_t, - pub root: ::ino_t, - pub flags: u32, - pub block_size: ::off_t, - pub io_size: ::off_t, - pub total_blocks: ::off_t, - pub free_blocks: ::off_t, - pub total_nodes: ::off_t, - pub free_nodes: ::off_t, - pub device_name: [::c_char; 128], - pub volume_name: [::c_char; B_FILE_NAME_LENGTH], - pub fsh_name: [::c_char; B_OS_NAME_LENGTH] - } - - // kernel/image.h - pub struct image_info { - pub id: image_id, - pub image_type: ::c_int, - pub sequence: i32, - pub init_order: i32, - pub init_routine: extern "C" fn(), - pub term_routine: extern "C" fn(), - pub device: ::dev_t, - pub node: ::ino_t, - pub name: [::c_char; ::PATH_MAX as usize], - pub text: *mut ::c_void, - pub data: *mut ::c_void, - pub text_size: i32, - pub data_size: i32, - pub api_version: i32, - pub abi: i32 - } - - pub struct __c_anonymous_eax_0 { - pub max_eax: u32, - pub vendor_id: [::c_char; 12], - } - - pub struct __c_anonymous_eax_1 { - pub stepping: u32, - pub model: u32, - pub family: u32, - pub tpe: u32, - __reserved_0: u32, - pub extended_model: u32, - pub extended_family: u32, - __reserved_1: u32, - pub brand_index: u32, - pub clflush: u32, - pub logical_cpus: u32, - pub apic_id: u32, - pub features: u32, - pub extended_features: u32, - } - - pub struct __c_anonymous_eax_2 { - pub call_num: u8, - pub cache_descriptors: [u8; 15], - } - - pub struct __c_anonymous_eax_3 { - __reserved: [u32; 2], - pub serial_number_high: u32, - pub serial_number_low: u32, - } - - pub struct __c_anonymous_regs { - pub eax: u32, - pub ebx: u32, - pub edx: u32, - pub ecx: u32, - } -} - -s_no_extra_traits! { - #[cfg(libc_union)] - pub union cpuid_info { - pub eax_0: __c_anonymous_eax_0, - pub eax_1: __c_anonymous_eax_1, - pub eax_2: __c_anonymous_eax_2, - pub eax_3: __c_anonymous_eax_3, - pub as_chars: [::c_char; 16], - pub regs: __c_anonymous_regs, - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - #[cfg(libc_union)] - impl PartialEq for cpuid_info { - fn eq(&self, other: &cpuid_info) -> bool { - unsafe { - self.eax_0 == other.eax_0 - || self.eax_1 == other.eax_1 - || self.eax_2 == other.eax_2 - || self.eax_3 == other.eax_3 - || self.as_chars == other.as_chars - || self.regs == other.regs - } - } - } - #[cfg(libc_union)] - impl Eq for cpuid_info {} - #[cfg(libc_union)] - impl ::fmt::Debug for cpuid_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - unsafe { - f.debug_struct("cpuid_info") - .field("eax_0", &self.eax_0) - .field("eax_1", &self.eax_1) - .field("eax_2", &self.eax_2) - .field("eax_3", &self.eax_3) - .field("as_chars", &self.as_chars) - .field("regs", &self.regs) - .finish() - } - } - } - } -} - -// kernel/OS.h -pub const B_OS_NAME_LENGTH: usize = 32; -pub const B_PAGE_SIZE: usize = 4096; -pub const B_INFINITE_TIMEOUT: usize = 9223372036854775807; - -pub const B_RELATIVE_TIMEOUT: u32 = 0x8; -pub const B_ABSOLUTE_TIMEOUT: u32 = 0x10; -pub const B_TIMEOUT_REAL_TIME_BASE: u32 = 0x40; -pub const B_ABSOLUTE_REAL_TIME_TIMEOUT: u32 = B_ABSOLUTE_TIMEOUT | B_TIMEOUT_REAL_TIME_BASE; - -pub const B_NO_LOCK: u32 = 0; -pub const B_LAZY_LOCK: u32 = 1; -pub const B_FULL_LOCK: u32 = 2; -pub const B_CONTIGUOUS: u32 = 3; -pub const B_LOMEM: u32 = 4; -pub const B_32_BIT_FULL_LOCK: u32 = 5; -pub const B_32_BIT_CONTIGUOUS: u32 = 6; - -pub const B_ANY_ADDRESS: u32 = 0; -pub const B_EXACT_ADDRESS: u32 = 1; -pub const B_BASE_ADDRESS: u32 = 2; -pub const B_CLONE_ADDRESS: u32 = 3; -pub const B_ANY_KERNEL_ADDRESS: u32 = 4; -pub const B_RANDOMIZED_ANY_ADDRESS: u32 = 6; -pub const B_RANDOMIZED_BASE_ADDRESS: u32 = 7; - -pub const B_READ_AREA: u32 = 1 << 0; -pub const B_WRITE_AREA: u32 = 1 << 1; -pub const B_EXECUTE_AREA: u32 = 1 << 2; -pub const B_STACK_AREA: u32 = 1 << 3; -pub const B_CLONEABLE_AREA: u32 = 1 << 8; - -pub const B_CAN_INTERRUPT: u32 = 0x01; -pub const B_CHECK_PERMISSION: u32 = 0x04; -pub const B_KILL_CAN_INTERRUPT: u32 = 0x20; -pub const B_DO_NOT_RESCHEDULE: u32 = 0x02; -pub const B_RELEASE_ALL: u32 = 0x08; -pub const B_RELEASE_IF_WAITING_ONLY: u32 = 0x10; - -pub const B_CURRENT_TEAM: team_id = 0; -pub const B_SYSTEM_TEAM: team_id = 1; - -pub const B_TEAM_USAGE_SELF: i32 = 0; -pub const B_TEAM_USAGE_CHILDREN: i32 = -1; - -pub const B_IDLE_PRIORITY: i32 = 0; -pub const B_LOWEST_ACTIVE_PRIORITY: i32 = 1; -pub const B_LOW_PRIORITY: i32 = 5; -pub const B_NORMAL_PRIORITY: i32 = 10; -pub const B_DISPLAY_PRIORITY: i32 = 15; -pub const B_URGENT_DISPLAY_PRIORITY: i32 = 20; -pub const B_REAL_TIME_DISPLAY_PRIORITY: i32 = 100; -pub const B_URGENT_PRIORITY: i32 = 110; -pub const B_REAL_TIME_PRIORITY: i32 = 120; - -pub const B_SYSTEM_TIMEBASE: i32 = 0; -pub const B_FIRST_REAL_TIME_PRIORITY: i32 = B_REAL_TIME_DISPLAY_PRIORITY; - -pub const B_ONE_SHOT_ABSOLUTE_ALARM: u32 = 1; -pub const B_ONE_SHOT_RELATIVE_ALARM: u32 = 2; -pub const B_PERIODIC_ALARM: u32 = 3; - -pub const B_OBJECT_TYPE_FD: u16 = 0; -pub const B_OBJECT_TYPE_SEMAPHORE: u16 = 1; -pub const B_OBJECT_TYPE_PORT: u16 = 2; -pub const B_OBJECT_TYPE_THREAD: u16 = 3; - -pub const B_EVENT_READ: u16 = 0x0001; -pub const B_EVENT_WRITE: u16 = 0x0002; -pub const B_EVENT_ERROR: u16 = 0x0004; -pub const B_EVENT_PRIORITY_READ: u16 = 0x0008; -pub const B_EVENT_PRIORITY_WRITE: u16 = 0x0010; -pub const B_EVENT_HIGH_PRIORITY_READ: u16 = 0x0020; -pub const B_EVENT_HIGH_PRIORITY_WRITE: u16 = 0x0040; -pub const B_EVENT_DISCONNECTED: u16 = 0x0080; -pub const B_EVENT_ACQUIRE_SEMAPHORE: u16 = 0x0001; -pub const B_EVENT_INVALID: u16 = 0x1000; - -// kernel/fs_info.h -pub const B_FS_IS_READONLY: u32 = 0x00000001; -pub const B_FS_IS_REMOVABLE: u32 = 0x00000002; -pub const B_FS_IS_PERSISTENT: u32 = 0x00000004; -pub const B_FS_IS_SHARED: u32 = 0x00000008; -pub const B_FS_HAS_MIME: u32 = 0x00010000; -pub const B_FS_HAS_ATTR: u32 = 0x00020000; -pub const B_FS_HAS_QUERY: u32 = 0x00040000; -pub const B_FS_HAS_SELF_HEALING_LINKS: u32 = 0x00080000; -pub const B_FS_HAS_ALIASES: u32 = 0x00100000; -pub const B_FS_SUPPORTS_NODE_MONITORING: u32 = 0x00200000; -pub const B_FS_SUPPORTS_MONITOR_CHILDREN: u32 = 0x00400000; - -// kernel/fs_query.h -pub const B_LIVE_QUERY: u32 = 0x00000001; -pub const B_QUERY_NON_INDEXED: u32 = 0x00000002; - -// kernel/fs_volume.h -pub const B_MOUNT_READ_ONLY: u32 = 1; -pub const B_MOUNT_VIRTUAL_DEVICE: u32 = 2; -pub const B_FORCE_UNMOUNT: u32 = 1; - -// kernel/image.h -pub const B_FLUSH_DCACHE: u32 = 0x0001; -pub const B_FLUSH_ICACHE: u32 = 0x0004; -pub const B_INVALIDATE_DCACHE: u32 = 0x0002; -pub const B_INVALIDATE_ICACHE: u32 = 0x0008; - -pub const B_SYMBOL_TYPE_DATA: i32 = 0x1; -pub const B_SYMBOL_TYPE_TEXT: i32 = 0x2; -pub const B_SYMBOL_TYPE_ANY: i32 = 0x5; - -// storage/StorageDefs.h -pub const B_DEV_NAME_LENGTH: usize = 128; -pub const B_FILE_NAME_LENGTH: usize = ::FILENAME_MAX as usize; -pub const B_PATH_NAME_LENGTH: usize = ::PATH_MAX as usize; -pub const B_ATTR_NAME_LENGTH: usize = B_FILE_NAME_LENGTH - 1; -pub const B_MIME_TYPE_LENGTH: usize = B_ATTR_NAME_LENGTH - 15; -pub const B_MAX_SYMLINKS: usize = 16; - -// Haiku open modes in BFile are passed as u32 -pub const B_READ_ONLY: u32 = ::O_RDONLY as u32; -pub const B_WRITE_ONLY: u32 = ::O_WRONLY as u32; -pub const B_READ_WRITE: u32 = ::O_RDWR as u32; - -pub const B_FAIL_IF_EXISTS: u32 = ::O_EXCL as u32; -pub const B_CREATE_FILE: u32 = ::O_CREAT as u32; -pub const B_ERASE_FILE: u32 = ::O_TRUNC as u32; -pub const B_OPEN_AT_END: u32 = ::O_APPEND as u32; - -pub const B_FILE_NODE: u32 = 0x01; -pub const B_SYMLINK_NODE: u32 = 0x02; -pub const B_DIRECTORY_NODE: u32 = 0x04; -pub const B_ANY_NODE: u32 = 0x07; - -// support/Errors.h -pub const B_GENERAL_ERROR_BASE: status_t = core::i32::MIN; -pub const B_OS_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x1000; -pub const B_APP_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x2000; -pub const B_INTERFACE_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x3000; -pub const B_MEDIA_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x4000; -pub const B_TRANSLATION_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x4800; -pub const B_MIDI_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x5000; -pub const B_STORAGE_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x6000; -pub const B_POSIX_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x7000; -pub const B_MAIL_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x8000; -pub const B_PRINT_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0x9000; -pub const B_DEVICE_ERROR_BASE: status_t = B_GENERAL_ERROR_BASE + 0xa000; -pub const B_ERRORS_END: status_t = B_GENERAL_ERROR_BASE + 0xffff; - -// General errors -pub const B_NO_MEMORY: status_t = B_GENERAL_ERROR_BASE + 0; -pub const B_IO_ERROR: status_t = B_GENERAL_ERROR_BASE + 1; -pub const B_PERMISSION_DENIED: status_t = B_GENERAL_ERROR_BASE + 2; -pub const B_BAD_INDEX: status_t = B_GENERAL_ERROR_BASE + 3; -pub const B_BAD_TYPE: status_t = B_GENERAL_ERROR_BASE + 4; -pub const B_BAD_VALUE: status_t = B_GENERAL_ERROR_BASE + 5; -pub const B_MISMATCHED_VALUES: status_t = B_GENERAL_ERROR_BASE + 6; -pub const B_NAME_NOT_FOUND: status_t = B_GENERAL_ERROR_BASE + 7; -pub const B_NAME_IN_USE: status_t = B_GENERAL_ERROR_BASE + 8; -pub const B_TIMED_OUT: status_t = B_GENERAL_ERROR_BASE + 9; -pub const B_INTERRUPTED: status_t = B_GENERAL_ERROR_BASE + 10; -pub const B_WOULD_BLOCK: status_t = B_GENERAL_ERROR_BASE + 11; -pub const B_CANCELED: status_t = B_GENERAL_ERROR_BASE + 12; -pub const B_NO_INIT: status_t = B_GENERAL_ERROR_BASE + 13; -pub const B_NOT_INITIALIZED: status_t = B_GENERAL_ERROR_BASE + 13; -pub const B_BUSY: status_t = B_GENERAL_ERROR_BASE + 14; -pub const B_NOT_ALLOWED: status_t = B_GENERAL_ERROR_BASE + 15; -pub const B_BAD_DATA: status_t = B_GENERAL_ERROR_BASE + 16; -pub const B_DONT_DO_THAT: status_t = B_GENERAL_ERROR_BASE + 17; - -pub const B_ERROR: status_t = -1; -pub const B_OK: status_t = 0; -pub const B_NO_ERROR: status_t = 0; - -// Kernel kit errors -pub const B_BAD_SEM_ID: status_t = B_OS_ERROR_BASE + 0; -pub const B_NO_MORE_SEMS: status_t = B_OS_ERROR_BASE + 1; - -pub const B_BAD_THREAD_ID: status_t = B_OS_ERROR_BASE + 0x100; -pub const B_NO_MORE_THREADS: status_t = B_OS_ERROR_BASE + 0x101; -pub const B_BAD_THREAD_STATE: status_t = B_OS_ERROR_BASE + 0x102; -pub const B_BAD_TEAM_ID: status_t = B_OS_ERROR_BASE + 0x103; -pub const B_NO_MORE_TEAMS: status_t = B_OS_ERROR_BASE + 0x104; - -pub const B_BAD_PORT_ID: status_t = B_OS_ERROR_BASE + 0x200; -pub const B_NO_MORE_PORTS: status_t = B_OS_ERROR_BASE + 0x201; - -pub const B_BAD_IMAGE_ID: status_t = B_OS_ERROR_BASE + 0x300; -pub const B_BAD_ADDRESS: status_t = B_OS_ERROR_BASE + 0x301; -pub const B_NOT_AN_EXECUTABLE: status_t = B_OS_ERROR_BASE + 0x302; -pub const B_MISSING_LIBRARY: status_t = B_OS_ERROR_BASE + 0x303; -pub const B_MISSING_SYMBOL: status_t = B_OS_ERROR_BASE + 0x304; -pub const B_UNKNOWN_EXECUTABLE: status_t = B_OS_ERROR_BASE + 0x305; -pub const B_LEGACY_EXECUTABLE: status_t = B_OS_ERROR_BASE + 0x306; - -pub const B_DEBUGGER_ALREADY_INSTALLED: status_t = B_OS_ERROR_BASE + 0x400; - -// Application kit errors -pub const B_BAD_REPLY: status_t = B_APP_ERROR_BASE + 0; -pub const B_DUPLICATE_REPLY: status_t = B_APP_ERROR_BASE + 1; -pub const B_MESSAGE_TO_SELF: status_t = B_APP_ERROR_BASE + 2; -pub const B_BAD_HANDLER: status_t = B_APP_ERROR_BASE + 3; -pub const B_ALREADY_RUNNING: status_t = B_APP_ERROR_BASE + 4; -pub const B_LAUNCH_FAILED: status_t = B_APP_ERROR_BASE + 5; -pub const B_AMBIGUOUS_APP_LAUNCH: status_t = B_APP_ERROR_BASE + 6; -pub const B_UNKNOWN_MIME_TYPE: status_t = B_APP_ERROR_BASE + 7; -pub const B_BAD_SCRIPT_SYNTAX: status_t = B_APP_ERROR_BASE + 8; -pub const B_LAUNCH_FAILED_NO_RESOLVE_LINK: status_t = B_APP_ERROR_BASE + 9; -pub const B_LAUNCH_FAILED_EXECUTABLE: status_t = B_APP_ERROR_BASE + 10; -pub const B_LAUNCH_FAILED_APP_NOT_FOUND: status_t = B_APP_ERROR_BASE + 11; -pub const B_LAUNCH_FAILED_APP_IN_TRASH: status_t = B_APP_ERROR_BASE + 12; -pub const B_LAUNCH_FAILED_NO_PREFERRED_APP: status_t = B_APP_ERROR_BASE + 13; -pub const B_LAUNCH_FAILED_FILES_APP_NOT_FOUND: status_t = B_APP_ERROR_BASE + 14; -pub const B_BAD_MIME_SNIFFER_RULE: status_t = B_APP_ERROR_BASE + 15; -pub const B_NOT_A_MESSAGE: status_t = B_APP_ERROR_BASE + 16; -pub const B_SHUTDOWN_CANCELLED: status_t = B_APP_ERROR_BASE + 17; -pub const B_SHUTTING_DOWN: status_t = B_APP_ERROR_BASE + 18; - -// Storage kit errors -pub const B_FILE_ERROR: status_t = B_STORAGE_ERROR_BASE + 0; -pub const B_FILE_EXISTS: status_t = B_STORAGE_ERROR_BASE + 2; -pub const B_ENTRY_NOT_FOUND: status_t = B_STORAGE_ERROR_BASE + 3; -pub const B_NAME_TOO_LONG: status_t = B_STORAGE_ERROR_BASE + 4; -pub const B_NOT_A_DIRECTORY: status_t = B_STORAGE_ERROR_BASE + 5; -pub const B_DIRECTORY_NOT_EMPTY: status_t = B_STORAGE_ERROR_BASE + 6; -pub const B_DEVICE_FULL: status_t = B_STORAGE_ERROR_BASE + 7; -pub const B_READ_ONLY_DEVICE: status_t = B_STORAGE_ERROR_BASE + 8; -pub const B_IS_A_DIRECTORY: status_t = B_STORAGE_ERROR_BASE + 9; -pub const B_NO_MORE_FDS: status_t = B_STORAGE_ERROR_BASE + 10; -pub const B_CROSS_DEVICE_LINK: status_t = B_STORAGE_ERROR_BASE + 11; -pub const B_LINK_LIMIT: status_t = B_STORAGE_ERROR_BASE + 12; -pub const B_BUSTED_PIPE: status_t = B_STORAGE_ERROR_BASE + 13; -pub const B_UNSUPPORTED: status_t = B_STORAGE_ERROR_BASE + 14; -pub const B_PARTITION_TOO_SMALL: status_t = B_STORAGE_ERROR_BASE + 15; -pub const B_PARTIAL_READ: status_t = B_STORAGE_ERROR_BASE + 16; -pub const B_PARTIAL_WRITE: status_t = B_STORAGE_ERROR_BASE + 17; - -// Mapped posix errors -pub const B_BUFFER_OVERFLOW: status_t = ::EOVERFLOW; -pub const B_TOO_MANY_ARGS: status_t = ::E2BIG; -pub const B_FILE_TOO_LARGE: status_t = ::EFBIG; -pub const B_RESULT_NOT_REPRESENTABLE: status_t = ::ERANGE; -pub const B_DEVICE_NOT_FOUND: status_t = ::ENODEV; -pub const B_NOT_SUPPORTED: status_t = ::EOPNOTSUPP; - -// Media kit errors -pub const B_STREAM_NOT_FOUND: status_t = B_MEDIA_ERROR_BASE + 0; -pub const B_SERVER_NOT_FOUND: status_t = B_MEDIA_ERROR_BASE + 1; -pub const B_RESOURCE_NOT_FOUND: status_t = B_MEDIA_ERROR_BASE + 2; -pub const B_RESOURCE_UNAVAILABLE: status_t = B_MEDIA_ERROR_BASE + 3; -pub const B_BAD_SUBSCRIBER: status_t = B_MEDIA_ERROR_BASE + 4; -pub const B_SUBSCRIBER_NOT_ENTERED: status_t = B_MEDIA_ERROR_BASE + 5; -pub const B_BUFFER_NOT_AVAILABLE: status_t = B_MEDIA_ERROR_BASE + 6; -pub const B_LAST_BUFFER_ERROR: status_t = B_MEDIA_ERROR_BASE + 7; - -pub const B_MEDIA_SYSTEM_FAILURE: status_t = B_MEDIA_ERROR_BASE + 100; -pub const B_MEDIA_BAD_NODE: status_t = B_MEDIA_ERROR_BASE + 101; -pub const B_MEDIA_NODE_BUSY: status_t = B_MEDIA_ERROR_BASE + 102; -pub const B_MEDIA_BAD_FORMAT: status_t = B_MEDIA_ERROR_BASE + 103; -pub const B_MEDIA_BAD_BUFFER: status_t = B_MEDIA_ERROR_BASE + 104; -pub const B_MEDIA_TOO_MANY_NODES: status_t = B_MEDIA_ERROR_BASE + 105; -pub const B_MEDIA_TOO_MANY_BUFFERS: status_t = B_MEDIA_ERROR_BASE + 106; -pub const B_MEDIA_NODE_ALREADY_EXISTS: status_t = B_MEDIA_ERROR_BASE + 107; -pub const B_MEDIA_BUFFER_ALREADY_EXISTS: status_t = B_MEDIA_ERROR_BASE + 108; -pub const B_MEDIA_CANNOT_SEEK: status_t = B_MEDIA_ERROR_BASE + 109; -pub const B_MEDIA_CANNOT_CHANGE_RUN_MODE: status_t = B_MEDIA_ERROR_BASE + 110; -pub const B_MEDIA_APP_ALREADY_REGISTERED: status_t = B_MEDIA_ERROR_BASE + 111; -pub const B_MEDIA_APP_NOT_REGISTERED: status_t = B_MEDIA_ERROR_BASE + 112; -pub const B_MEDIA_CANNOT_RECLAIM_BUFFERS: status_t = B_MEDIA_ERROR_BASE + 113; -pub const B_MEDIA_BUFFERS_NOT_RECLAIMED: status_t = B_MEDIA_ERROR_BASE + 114; -pub const B_MEDIA_TIME_SOURCE_STOPPED: status_t = B_MEDIA_ERROR_BASE + 115; -pub const B_MEDIA_TIME_SOURCE_BUSY: status_t = B_MEDIA_ERROR_BASE + 116; -pub const B_MEDIA_BAD_SOURCE: status_t = B_MEDIA_ERROR_BASE + 117; -pub const B_MEDIA_BAD_DESTINATION: status_t = B_MEDIA_ERROR_BASE + 118; -pub const B_MEDIA_ALREADY_CONNECTED: status_t = B_MEDIA_ERROR_BASE + 119; -pub const B_MEDIA_NOT_CONNECTED: status_t = B_MEDIA_ERROR_BASE + 120; -pub const B_MEDIA_BAD_CLIP_FORMAT: status_t = B_MEDIA_ERROR_BASE + 121; -pub const B_MEDIA_ADDON_FAILED: status_t = B_MEDIA_ERROR_BASE + 122; -pub const B_MEDIA_ADDON_DISABLED: status_t = B_MEDIA_ERROR_BASE + 123; -pub const B_MEDIA_CHANGE_IN_PROGRESS: status_t = B_MEDIA_ERROR_BASE + 124; -pub const B_MEDIA_STALE_CHANGE_COUNT: status_t = B_MEDIA_ERROR_BASE + 125; -pub const B_MEDIA_ADDON_RESTRICTED: status_t = B_MEDIA_ERROR_BASE + 126; -pub const B_MEDIA_NO_HANDLER: status_t = B_MEDIA_ERROR_BASE + 127; -pub const B_MEDIA_DUPLICATE_FORMAT: status_t = B_MEDIA_ERROR_BASE + 128; -pub const B_MEDIA_REALTIME_DISABLED: status_t = B_MEDIA_ERROR_BASE + 129; -pub const B_MEDIA_REALTIME_UNAVAILABLE: status_t = B_MEDIA_ERROR_BASE + 130; - -// Mail kit errors -pub const B_MAIL_NO_DAEMON: status_t = B_MAIL_ERROR_BASE + 0; -pub const B_MAIL_UNKNOWN_USER: status_t = B_MAIL_ERROR_BASE + 1; -pub const B_MAIL_WRONG_PASSWORD: status_t = B_MAIL_ERROR_BASE + 2; -pub const B_MAIL_UNKNOWN_HOST: status_t = B_MAIL_ERROR_BASE + 3; -pub const B_MAIL_ACCESS_ERROR: status_t = B_MAIL_ERROR_BASE + 4; -pub const B_MAIL_UNKNOWN_FIELD: status_t = B_MAIL_ERROR_BASE + 5; -pub const B_MAIL_NO_RECIPIENT: status_t = B_MAIL_ERROR_BASE + 6; -pub const B_MAIL_INVALID_MAIL: status_t = B_MAIL_ERROR_BASE + 7; - -// Print kit errors -pub const B_NO_PRINT_SERVER: status_t = B_PRINT_ERROR_BASE + 0; - -// Device kit errors -pub const B_DEV_INVALID_IOCTL: status_t = B_DEVICE_ERROR_BASE + 0; -pub const B_DEV_NO_MEMORY: status_t = B_DEVICE_ERROR_BASE + 1; -pub const B_DEV_BAD_DRIVE_NUM: status_t = B_DEVICE_ERROR_BASE + 2; -pub const B_DEV_NO_MEDIA: status_t = B_DEVICE_ERROR_BASE + 3; -pub const B_DEV_UNREADABLE: status_t = B_DEVICE_ERROR_BASE + 4; -pub const B_DEV_FORMAT_ERROR: status_t = B_DEVICE_ERROR_BASE + 5; -pub const B_DEV_TIMEOUT: status_t = B_DEVICE_ERROR_BASE + 6; -pub const B_DEV_RECALIBRATE_ERROR: status_t = B_DEVICE_ERROR_BASE + 7; -pub const B_DEV_SEEK_ERROR: status_t = B_DEVICE_ERROR_BASE + 8; -pub const B_DEV_ID_ERROR: status_t = B_DEVICE_ERROR_BASE + 9; -pub const B_DEV_READ_ERROR: status_t = B_DEVICE_ERROR_BASE + 10; -pub const B_DEV_WRITE_ERROR: status_t = B_DEVICE_ERROR_BASE + 11; -pub const B_DEV_NOT_READY: status_t = B_DEVICE_ERROR_BASE + 12; -pub const B_DEV_MEDIA_CHANGED: status_t = B_DEVICE_ERROR_BASE + 13; -pub const B_DEV_MEDIA_CHANGE_REQUESTED: status_t = B_DEVICE_ERROR_BASE + 14; -pub const B_DEV_RESOURCE_CONFLICT: status_t = B_DEVICE_ERROR_BASE + 15; -pub const B_DEV_CONFIGURATION_ERROR: status_t = B_DEVICE_ERROR_BASE + 16; -pub const B_DEV_DISABLED_BY_USER: status_t = B_DEVICE_ERROR_BASE + 17; -pub const B_DEV_DOOR_OPEN: status_t = B_DEVICE_ERROR_BASE + 18; - -pub const B_DEV_INVALID_PIPE: status_t = B_DEVICE_ERROR_BASE + 19; -pub const B_DEV_CRC_ERROR: status_t = B_DEVICE_ERROR_BASE + 20; -pub const B_DEV_STALLED: status_t = B_DEVICE_ERROR_BASE + 21; -pub const B_DEV_BAD_PID: status_t = B_DEVICE_ERROR_BASE + 22; -pub const B_DEV_UNEXPECTED_PID: status_t = B_DEVICE_ERROR_BASE + 23; -pub const B_DEV_DATA_OVERRUN: status_t = B_DEVICE_ERROR_BASE + 24; -pub const B_DEV_DATA_UNDERRUN: status_t = B_DEVICE_ERROR_BASE + 25; -pub const B_DEV_FIFO_OVERRUN: status_t = B_DEVICE_ERROR_BASE + 26; -pub const B_DEV_FIFO_UNDERRUN: status_t = B_DEVICE_ERROR_BASE + 27; -pub const B_DEV_PENDING: status_t = B_DEVICE_ERROR_BASE + 28; -pub const B_DEV_MULTIPLE_ERRORS: status_t = B_DEVICE_ERROR_BASE + 29; -pub const B_DEV_TOO_LATE: status_t = B_DEVICE_ERROR_BASE + 30; - -// translation kit errors -pub const B_TRANSLATION_BASE_ERROR: status_t = B_TRANSLATION_ERROR_BASE + 0; -pub const B_NO_TRANSLATOR: status_t = B_TRANSLATION_ERROR_BASE + 1; -pub const B_ILLEGAL_DATA: status_t = B_TRANSLATION_ERROR_BASE + 2; - -// support/TypeConstants.h -pub const B_AFFINE_TRANSFORM_TYPE: u32 = haiku_constant!('A', 'M', 'T', 'X'); -pub const B_ALIGNMENT_TYPE: u32 = haiku_constant!('A', 'L', 'G', 'N'); -pub const B_ANY_TYPE: u32 = haiku_constant!('A', 'N', 'Y', 'T'); -pub const B_ATOM_TYPE: u32 = haiku_constant!('A', 'T', 'O', 'M'); -pub const B_ATOMREF_TYPE: u32 = haiku_constant!('A', 'T', 'M', 'R'); -pub const B_BOOL_TYPE: u32 = haiku_constant!('B', 'O', 'O', 'L'); -pub const B_CHAR_TYPE: u32 = haiku_constant!('C', 'H', 'A', 'R'); -pub const B_COLOR_8_BIT_TYPE: u32 = haiku_constant!('C', 'L', 'R', 'B'); -pub const B_DOUBLE_TYPE: u32 = haiku_constant!('D', 'B', 'L', 'E'); -pub const B_FLOAT_TYPE: u32 = haiku_constant!('F', 'L', 'O', 'T'); -pub const B_GRAYSCALE_8_BIT_TYPE: u32 = haiku_constant!('G', 'R', 'Y', 'B'); -pub const B_INT16_TYPE: u32 = haiku_constant!('S', 'H', 'R', 'T'); -pub const B_INT32_TYPE: u32 = haiku_constant!('L', 'O', 'N', 'G'); -pub const B_INT64_TYPE: u32 = haiku_constant!('L', 'L', 'N', 'G'); -pub const B_INT8_TYPE: u32 = haiku_constant!('B', 'Y', 'T', 'E'); -pub const B_LARGE_ICON_TYPE: u32 = haiku_constant!('I', 'C', 'O', 'N'); -pub const B_MEDIA_PARAMETER_GROUP_TYPE: u32 = haiku_constant!('B', 'M', 'C', 'G'); -pub const B_MEDIA_PARAMETER_TYPE: u32 = haiku_constant!('B', 'M', 'C', 'T'); -pub const B_MEDIA_PARAMETER_WEB_TYPE: u32 = haiku_constant!('B', 'M', 'C', 'W'); -pub const B_MESSAGE_TYPE: u32 = haiku_constant!('M', 'S', 'G', 'G'); -pub const B_MESSENGER_TYPE: u32 = haiku_constant!('M', 'S', 'N', 'G'); -pub const B_MIME_TYPE: u32 = haiku_constant!('M', 'I', 'M', 'E'); -pub const B_MINI_ICON_TYPE: u32 = haiku_constant!('M', 'I', 'C', 'N'); -pub const B_MONOCHROME_1_BIT_TYPE: u32 = haiku_constant!('M', 'N', 'O', 'B'); -pub const B_OBJECT_TYPE: u32 = haiku_constant!('O', 'P', 'T', 'R'); -pub const B_OFF_T_TYPE: u32 = haiku_constant!('O', 'F', 'F', 'T'); -pub const B_PATTERN_TYPE: u32 = haiku_constant!('P', 'A', 'T', 'N'); -pub const B_POINTER_TYPE: u32 = haiku_constant!('P', 'N', 'T', 'R'); -pub const B_POINT_TYPE: u32 = haiku_constant!('B', 'P', 'N', 'T'); -pub const B_PROPERTY_INFO_TYPE: u32 = haiku_constant!('S', 'C', 'T', 'D'); -pub const B_RAW_TYPE: u32 = haiku_constant!('R', 'A', 'W', 'T'); -pub const B_RECT_TYPE: u32 = haiku_constant!('R', 'E', 'C', 'T'); -pub const B_REF_TYPE: u32 = haiku_constant!('R', 'R', 'E', 'F'); -pub const B_RGB_32_BIT_TYPE: u32 = haiku_constant!('R', 'G', 'B', 'B'); -pub const B_RGB_COLOR_TYPE: u32 = haiku_constant!('R', 'G', 'B', 'C'); -pub const B_SIZE_TYPE: u32 = haiku_constant!('S', 'I', 'Z', 'E'); -pub const B_SIZE_T_TYPE: u32 = haiku_constant!('S', 'I', 'Z', 'T'); -pub const B_SSIZE_T_TYPE: u32 = haiku_constant!('S', 'S', 'Z', 'T'); -pub const B_STRING_TYPE: u32 = haiku_constant!('C', 'S', 'T', 'R'); -pub const B_STRING_LIST_TYPE: u32 = haiku_constant!('S', 'T', 'R', 'L'); -pub const B_TIME_TYPE: u32 = haiku_constant!('T', 'I', 'M', 'E'); -pub const B_UINT16_TYPE: u32 = haiku_constant!('U', 'S', 'H', 'T'); -pub const B_UINT32_TYPE: u32 = haiku_constant!('U', 'L', 'N', 'G'); -pub const B_UINT64_TYPE: u32 = haiku_constant!('U', 'L', 'L', 'G'); -pub const B_UINT8_TYPE: u32 = haiku_constant!('U', 'B', 'Y', 'T'); -pub const B_VECTOR_ICON_TYPE: u32 = haiku_constant!('V', 'I', 'C', 'N'); -pub const B_XATTR_TYPE: u32 = haiku_constant!('X', 'A', 'T', 'R'); -pub const B_NETWORK_ADDRESS_TYPE: u32 = haiku_constant!('N', 'W', 'A', 'D'); -pub const B_MIME_STRING_TYPE: u32 = haiku_constant!('M', 'I', 'M', 'S'); -pub const B_ASCII_TYPE: u32 = haiku_constant!('T', 'E', 'X', 'T'); - -extern "C" { - // kernel/OS.h - pub fn create_area( - name: *const ::c_char, - startAddress: *mut *mut ::c_void, - addressSpec: u32, - size: usize, - lock: u32, - protection: u32, - ) -> area_id; - pub fn clone_area( - name: *const ::c_char, - destAddress: *mut *mut ::c_void, - addressSpec: u32, - protection: u32, - source: area_id, - ) -> area_id; - pub fn find_area(name: *const ::c_char) -> area_id; - pub fn area_for(address: *mut ::c_void) -> area_id; - pub fn delete_area(id: area_id) -> status_t; - pub fn resize_area(id: area_id, newSize: usize) -> status_t; - pub fn set_area_protection(id: area_id, newProtection: u32) -> status_t; - pub fn _get_area_info(id: area_id, areaInfo: *mut area_info, size: usize) -> status_t; - pub fn _get_next_area_info( - team: team_id, - cookie: *mut isize, - areaInfo: *mut area_info, - size: usize, - ) -> status_t; - - pub fn create_port(capacity: i32, name: *const ::c_char) -> port_id; - pub fn find_port(name: *const ::c_char) -> port_id; - pub fn read_port( - port: port_id, - code: *mut i32, - buffer: *mut ::c_void, - bufferSize: ::size_t, - ) -> ::ssize_t; - pub fn read_port_etc( - port: port_id, - code: *mut i32, - buffer: *mut ::c_void, - bufferSize: ::size_t, - flags: u32, - timeout: bigtime_t, - ) -> ::ssize_t; - pub fn write_port( - port: port_id, - code: i32, - buffer: *const ::c_void, - bufferSize: ::size_t, - ) -> status_t; - pub fn write_port_etc( - port: port_id, - code: i32, - buffer: *const ::c_void, - bufferSize: ::size_t, - flags: u32, - timeout: bigtime_t, - ) -> status_t; - pub fn close_port(port: port_id) -> status_t; - pub fn delete_port(port: port_id) -> status_t; - pub fn port_buffer_size(port: port_id) -> ::ssize_t; - pub fn port_buffer_size_etc(port: port_id, flags: u32, timeout: bigtime_t) -> ::ssize_t; - pub fn port_count(port: port_id) -> ::ssize_t; - pub fn set_port_owner(port: port_id, team: team_id) -> status_t; - - pub fn _get_port_info(port: port_id, buf: *mut port_info, portInfoSize: ::size_t) -> status_t; - pub fn _get_next_port_info( - port: port_id, - cookie: *mut i32, - portInfo: *mut port_info, - portInfoSize: ::size_t, - ) -> status_t; - pub fn _get_port_message_info_etc( - port: port_id, - info: *mut port_message_info, - infoSize: ::size_t, - flags: u32, - timeout: bigtime_t, - ) -> status_t; - - pub fn create_sem(count: i32, name: *const ::c_char) -> sem_id; - pub fn delete_sem(id: sem_id) -> status_t; - pub fn acquire_sem(id: sem_id) -> status_t; - pub fn acquire_sem_etc(id: sem_id, count: i32, flags: u32, timeout: bigtime_t) -> status_t; - pub fn release_sem(id: sem_id) -> status_t; - pub fn release_sem_etc(id: sem_id, count: i32, flags: u32) -> status_t; - pub fn switch_sem(semToBeReleased: sem_id, id: sem_id) -> status_t; - pub fn switch_sem_etc( - semToBeReleased: sem_id, - id: sem_id, - count: i32, - flags: u32, - timeout: bigtime_t, - ) -> status_t; - pub fn get_sem_count(id: sem_id, threadCount: *mut i32) -> status_t; - pub fn set_sem_owner(id: sem_id, team: team_id) -> status_t; - pub fn _get_sem_info(id: sem_id, info: *mut sem_info, infoSize: ::size_t) -> status_t; - pub fn _get_next_sem_info( - team: team_id, - cookie: *mut i32, - info: *mut sem_info, - infoSize: ::size_t, - ) -> status_t; - - pub fn kill_team(team: team_id) -> status_t; - pub fn _get_team_info(team: team_id, info: *mut team_info, size: ::size_t) -> status_t; - pub fn _get_next_team_info(cookie: *mut i32, info: *mut team_info, size: ::size_t) -> status_t; - - pub fn spawn_thread( - func: thread_func, - name: *const ::c_char, - priority: i32, - data: *mut ::c_void, - ) -> thread_id; - pub fn kill_thread(thread: thread_id) -> status_t; - pub fn resume_thread(thread: thread_id) -> status_t; - pub fn suspend_thread(thread: thread_id) -> status_t; - - pub fn rename_thread(thread: thread_id, newName: *const ::c_char) -> status_t; - pub fn set_thread_priority(thread: thread_id, newPriority: i32) -> status_t; - pub fn suggest_thread_priority( - what: u32, - period: i32, - jitter: ::bigtime_t, - length: ::bigtime_t, - ) -> i32; - pub fn estimate_max_scheduling_latency(th: ::thread_id) -> ::bigtime_t; - pub fn exit_thread(status: status_t); - pub fn wait_for_thread(thread: thread_id, returnValue: *mut status_t) -> status_t; - pub fn on_exit_thread(callback: extern "C" fn(*mut ::c_void), data: *mut ::c_void) -> status_t; - - pub fn find_thread(name: *const ::c_char) -> thread_id; - - pub fn get_scheduler_mode() -> i32; - pub fn set_scheduler_mode(mode: i32) -> status_t; - - pub fn send_data( - thread: thread_id, - code: i32, - buffer: *const ::c_void, - bufferSize: ::size_t, - ) -> status_t; - pub fn receive_data(sender: *mut thread_id, buffer: *mut ::c_void, bufferSize: ::size_t) - -> i32; - pub fn has_data(thread: thread_id) -> bool; - - pub fn snooze(amount: bigtime_t) -> status_t; - pub fn snooze_etc(amount: bigtime_t, timeBase: ::c_int, flags: u32) -> status_t; - pub fn snooze_until(time: bigtime_t, timeBase: ::c_int) -> status_t; - - pub fn _get_thread_info(id: thread_id, info: *mut thread_info, size: ::size_t) -> status_t; - pub fn _get_next_thread_info( - team: team_id, - cookie: *mut i32, - info: *mut thread_info, - size: ::size_t, - ) -> status_t; - - pub fn get_pthread_thread_id(thread: ::pthread_t) -> thread_id; - - pub fn _get_team_usage_info( - team: team_id, - who: i32, - info: *mut team_usage_info, - size: ::size_t, - ) -> status_t; - - pub fn real_time_clock() -> ::c_ulong; - pub fn set_real_time_clock(secsSinceJan1st1970: ::c_ulong); - pub fn real_time_clock_usecs() -> bigtime_t; - pub fn system_time() -> bigtime_t; - pub fn system_time_nsecs() -> nanotime_t; - // set_timezone() is deprecated and a no-op - - pub fn set_alarm(when: bigtime_t, flags: u32) -> bigtime_t; - pub fn debugger(message: *const ::c_char); - pub fn disable_debugger(state: ::c_int) -> ::c_int; - - pub fn get_system_info(info: *mut system_info) -> status_t; - pub fn _get_cpu_info_etc( - firstCPU: u32, - cpuCount: u32, - info: *mut cpu_info, - size: ::size_t, - ) -> status_t; - pub fn is_computer_on() -> i32; - pub fn is_computer_on_fire() -> ::c_double; - pub fn send_signal(threadID: thread_id, signal: ::c_uint) -> ::c_int; - pub fn set_signal_stack(base: *mut ::c_void, size: ::size_t); - - pub fn wait_for_objects(infos: *mut object_wait_info, numInfos: ::c_int) -> ::ssize_t; - pub fn wait_for_objects_etc( - infos: *mut object_wait_info, - numInfos: ::c_int, - flags: u32, - timeout: bigtime_t, - ) -> ::ssize_t; - - // kernel/fs_attr.h - pub fn fs_read_attr( - fd: ::c_int, - attribute: *const ::c_char, - type_: u32, - pos: ::off_t, - buffer: *mut ::c_void, - readBytes: ::size_t, - ) -> ::ssize_t; - pub fn fs_write_attr( - fd: ::c_int, - attribute: *const ::c_char, - type_: u32, - pos: ::off_t, - buffer: *const ::c_void, - writeBytes: ::size_t, - ) -> ::ssize_t; - pub fn fs_remove_attr(fd: ::c_int, attribute: *const ::c_char) -> ::c_int; - pub fn fs_stat_attr( - fd: ::c_int, - attribute: *const ::c_char, - attrInfo: *mut attr_info, - ) -> ::c_int; - - pub fn fs_open_attr( - path: *const ::c_char, - attribute: *const ::c_char, - type_: u32, - openMode: ::c_int, - ) -> ::c_int; - pub fn fs_fopen_attr( - fd: ::c_int, - attribute: *const ::c_char, - type_: u32, - openMode: ::c_int, - ) -> ::c_int; - pub fn fs_close_attr(fd: ::c_int) -> ::c_int; - - pub fn fs_open_attr_dir(path: *const ::c_char) -> *mut ::DIR; - pub fn fs_lopen_attr_dir(path: *const ::c_char) -> *mut ::DIR; - pub fn fs_fopen_attr_dir(fd: ::c_int) -> *mut ::DIR; - pub fn fs_close_attr_dir(dir: *mut ::DIR) -> ::c_int; - pub fn fs_read_attr_dir(dir: *mut ::DIR) -> *mut ::dirent; - pub fn fs_rewind_attr_dir(dir: *mut ::DIR); - - // kernel/fs_image.h - pub fn fs_create_index( - device: ::dev_t, - name: *const ::c_char, - type_: u32, - flags: u32, - ) -> ::c_int; - pub fn fs_remove_index(device: ::dev_t, name: *const ::c_char) -> ::c_int; - pub fn fs_stat_index( - device: ::dev_t, - name: *const ::c_char, - indexInfo: *mut index_info, - ) -> ::c_int; - - pub fn fs_open_index_dir(device: ::dev_t) -> *mut ::DIR; - pub fn fs_close_index_dir(indexDirectory: *mut ::DIR) -> ::c_int; - pub fn fs_read_index_dir(indexDirectory: *mut ::DIR) -> *mut ::dirent; - pub fn fs_rewind_index_dir(indexDirectory: *mut ::DIR); - - // kernel/fs_info.h - pub fn dev_for_path(path: *const ::c_char) -> ::dev_t; - pub fn next_dev(pos: *mut i32) -> ::dev_t; - pub fn fs_stat_dev(dev: ::dev_t, info: *mut fs_info) -> ::c_int; - - // kernel/fs_query.h - pub fn fs_open_query(device: ::dev_t, query: *const ::c_char, flags: u32) -> *mut ::DIR; - pub fn fs_open_live_query( - device: ::dev_t, - query: *const ::c_char, - flags: u32, - port: port_id, - token: i32, - ) -> *mut ::DIR; - pub fn fs_close_query(d: *mut ::DIR) -> ::c_int; - pub fn fs_read_query(d: *mut ::DIR) -> *mut ::dirent; - pub fn get_path_for_dirent(dent: *mut ::dirent, buf: *mut ::c_char, len: ::size_t) -> status_t; - - // kernel/fs_volume.h - pub fn fs_mount_volume( - where_: *const ::c_char, - device: *const ::c_char, - filesystem: *const ::c_char, - flags: u32, - parameters: *const ::c_char, - ) -> ::dev_t; - pub fn fs_unmount_volume(path: *const ::c_char, flags: u32) -> status_t; - - // kernel/image.h - pub fn load_image( - argc: i32, - argv: *mut *const ::c_char, - environ: *mut *const ::c_char, - ) -> thread_id; - pub fn load_add_on(path: *const ::c_char) -> image_id; - pub fn unload_add_on(image: image_id) -> status_t; - pub fn get_image_symbol( - image: image_id, - name: *const ::c_char, - symbolType: i32, - symbolLocation: *mut *mut ::c_void, - ) -> status_t; - pub fn get_nth_image_symbol( - image: image_id, - n: i32, - nameBuffer: *mut ::c_char, - nameLength: *mut i32, - symbolType: *mut i32, - symbolLocation: *mut *mut ::c_void, - ) -> status_t; - pub fn clear_caches(address: *mut ::c_void, length: ::size_t, flags: u32); - pub fn _get_image_info(image: image_id, info: *mut image_info, size: ::size_t) -> status_t; - pub fn _get_next_image_info( - team: team_id, - cookie: *mut i32, - info: *mut image_info, - size: ::size_t, - ) -> status_t; - pub fn find_path( - codePointer: *const ::c_void, - baseDirectory: path_base_directory, - subPath: *const ::c_char, - pathBuffer: *mut ::c_char, - bufferSize: usize, - ) -> status_t; - pub fn find_path_etc( - codePointer: *const ::c_void, - dependency: *const ::c_char, - architecture: *const ::c_char, - baseDirectory: path_base_directory, - subPath: *const ::c_char, - flags: u32, - pathBuffer: *mut ::c_char, - bufferSize: ::size_t, - ) -> status_t; - pub fn find_path_for_path( - path: *const ::c_char, - baseDirectory: path_base_directory, - subPath: *const ::c_char, - pathBuffer: *mut ::c_char, - bufferSize: ::size_t, - ) -> status_t; - pub fn find_path_for_path_etc( - path: *const ::c_char, - dependency: *const ::c_char, - architectur: *const ::c_char, - baseDirectory: path_base_directory, - subPath: *const ::c_char, - flags: u32, - pathBuffer: *mut ::c_char, - bufferSize: ::size_t, - ) -> status_t; - pub fn find_paths( - baseDirectory: path_base_directory, - subPath: *const ::c_char, - _paths: *mut *mut *mut ::c_char, - pathCount: *mut ::size_t, - ) -> status_t; - pub fn find_paths_etc( - architecture: *const ::c_char, - baseDirectory: path_base_directory, - subPath: *const ::c_char, - flags: u32, - _paths: *mut *mut *mut ::c_char, - pathCount: *mut ::size_t, - ) -> status_t; - pub fn find_directory( - which: directory_which, - volume: ::dev_t, - createIt: bool, - pathString: *mut ::c_char, - length: i32, - ) -> status_t; -} - -cfg_if! { - if #[cfg(libc_union)] { - extern "C" { - pub fn get_cpuid(info: *mut cpuid_info, eaxRegister: u32, cpuNum: u32) -> status_t; - } - } -} - -// The following functions are defined as macros in C/C++ -#[inline] -pub unsafe fn get_cpu_info(firstCPU: u32, cpuCount: u32, info: *mut cpu_info) -> status_t { - _get_cpu_info_etc( - firstCPU, - cpuCount, - info, - core::mem::size_of::() as ::size_t, - ) -} - -#[inline] -pub unsafe fn get_area_info(id: area_id, info: *mut area_info) -> status_t { - _get_area_info(id, info, core::mem::size_of::() as usize) -} - -#[inline] -pub unsafe fn get_next_area_info( - team: team_id, - cookie: *mut isize, - info: *mut area_info, -) -> status_t { - _get_next_area_info( - team, - cookie, - info, - core::mem::size_of::() as usize, - ) -} - -#[inline] -pub unsafe fn get_port_info(port: port_id, buf: *mut port_info) -> status_t { - _get_port_info(port, buf, core::mem::size_of::() as ::size_t) -} - -#[inline] -pub unsafe fn get_next_port_info( - port: port_id, - cookie: *mut i32, - portInfo: *mut port_info, -) -> status_t { - _get_next_port_info( - port, - cookie, - portInfo, - core::mem::size_of::() as ::size_t, - ) -} - -#[inline] -pub unsafe fn get_port_message_info_etc( - port: port_id, - info: *mut port_message_info, - flags: u32, - timeout: bigtime_t, -) -> status_t { - _get_port_message_info_etc( - port, - info, - core::mem::size_of::() as ::size_t, - flags, - timeout, - ) -} - -#[inline] -pub unsafe fn get_sem_info(id: sem_id, info: *mut sem_info) -> status_t { - _get_sem_info(id, info, core::mem::size_of::() as ::size_t) -} - -#[inline] -pub unsafe fn get_next_sem_info(team: team_id, cookie: *mut i32, info: *mut sem_info) -> status_t { - _get_next_sem_info( - team, - cookie, - info, - core::mem::size_of::() as ::size_t, - ) -} - -#[inline] -pub unsafe fn get_team_info(team: team_id, info: *mut team_info) -> status_t { - _get_team_info(team, info, core::mem::size_of::() as ::size_t) -} - -#[inline] -pub unsafe fn get_next_team_info(cookie: *mut i32, info: *mut team_info) -> status_t { - _get_next_team_info(cookie, info, core::mem::size_of::() as ::size_t) -} - -#[inline] -pub unsafe fn get_team_usage_info(team: team_id, who: i32, info: *mut team_usage_info) -> status_t { - _get_team_usage_info( - team, - who, - info, - core::mem::size_of::() as ::size_t, - ) -} - -#[inline] -pub unsafe fn get_thread_info(id: thread_id, info: *mut thread_info) -> status_t { - _get_thread_info(id, info, core::mem::size_of::() as ::size_t) -} - -#[inline] -pub unsafe fn get_next_thread_info( - team: team_id, - cookie: *mut i32, - info: *mut thread_info, -) -> status_t { - _get_next_thread_info( - team, - cookie, - info, - core::mem::size_of::() as ::size_t, - ) -} - -// kernel/image.h -#[inline] -pub unsafe fn get_image_info(image: image_id, info: *mut image_info) -> status_t { - _get_image_info(image, info, core::mem::size_of::() as ::size_t) -} - -#[inline] -pub unsafe fn get_next_image_info( - team: team_id, - cookie: *mut i32, - info: *mut image_info, -) -> status_t { - _get_next_image_info( - team, - cookie, - info, - core::mem::size_of::() as ::size_t, - ) -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/haiku/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/haiku/x86_64.rs deleted file mode 100644 index 1b0462f20..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/haiku/x86_64.rs +++ /dev/null @@ -1,264 +0,0 @@ -s_no_extra_traits! { - pub struct fpu_state { - pub control: ::c_ushort, - pub status: ::c_ushort, - pub tag: ::c_ushort, - pub opcode: ::c_ushort, - pub rip: ::c_ulong, - pub rdp: ::c_ulong, - pub mxcsr: ::c_uint, - pub mscsr_mask: ::c_uint, - pub _fpreg: [[::c_uchar; 8]; 16], - pub _xmm: [[::c_uchar; 16]; 16], - pub _reserved_416_511: [::c_uchar; 96], - } - - pub struct xstate_hdr { - pub bv: ::c_ulong, - pub xcomp_bv: ::c_ulong, - pub _reserved: [::c_uchar; 48], - } - - pub struct savefpu { - pub fp_fxsave: fpu_state, - pub fp_xstate: xstate_hdr, - pub _fp_ymm: [[::c_uchar; 16]; 16], - } - - pub struct mcontext_t { - pub rax: ::c_ulong, - pub rbx: ::c_ulong, - pub rcx: ::c_ulong, - pub rdx: ::c_ulong, - pub rdi: ::c_ulong, - pub rsi: ::c_ulong, - pub rbp: ::c_ulong, - pub r8: ::c_ulong, - pub r9: ::c_ulong, - pub r10: ::c_ulong, - pub r11: ::c_ulong, - pub r12: ::c_ulong, - pub r13: ::c_ulong, - pub r14: ::c_ulong, - pub r15: ::c_ulong, - pub rsp: ::c_ulong, - pub rip: ::c_ulong, - pub rflags: ::c_ulong, - pub fpu: savefpu, - } - - pub struct ucontext_t { - pub uc_link: *mut ucontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for fpu_state { - fn eq(&self, other: &fpu_state) -> bool { - self.control == other.control - && self.status == other.status - && self.tag == other.tag - && self.opcode == other.opcode - && self.rip == other.rip - && self.rdp == other.rdp - && self.mxcsr == other.mxcsr - && self.mscsr_mask == other.mscsr_mask - && self._fpreg.iter().zip(other._fpreg.iter()).all(|(a, b)| a == b) - && self._xmm.iter().zip(other._xmm.iter()).all(|(a, b)| a == b) - && self._reserved_416_511. - iter(). - zip(other._reserved_416_511.iter()). - all(|(a, b)| a == b) - } - } - impl Eq for fpu_state {} - impl ::fmt::Debug for fpu_state { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("fpu_state") - .field("control", &self.control) - .field("status", &self.status) - .field("tag", &self.tag) - .field("opcode", &self.opcode) - .field("rip", &self.rip) - .field("rdp", &self.rdp) - .field("mxcsr", &self.mxcsr) - .field("mscsr_mask", &self.mscsr_mask) - // FIXME: .field("_fpreg", &self._fpreg) - // FIXME: .field("_xmm", &self._xmm) - // FIXME: .field("_reserved_416_511", &self._reserved_416_511) - .finish() - } - } - impl ::hash::Hash for fpu_state { - fn hash(&self, state: &mut H) { - self.control.hash(state); - self.status.hash(state); - self.tag.hash(state); - self.opcode.hash(state); - self.rip.hash(state); - self.rdp.hash(state); - self.mxcsr.hash(state); - self.mscsr_mask.hash(state); - self._fpreg.hash(state); - self._xmm.hash(state); - self._reserved_416_511.hash(state); - } - } - - impl PartialEq for xstate_hdr { - fn eq(&self, other: &xstate_hdr) -> bool { - self.bv == other.bv - && self.xcomp_bv == other.xcomp_bv - && self._reserved.iter().zip(other._reserved.iter()).all(|(a, b)| a == b) - } - } - impl Eq for xstate_hdr {} - impl ::fmt::Debug for xstate_hdr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("xstate_hdr") - .field("bv", &self.bv) - .field("xcomp_bv", &self.xcomp_bv) - // FIXME: .field("_reserved", &field._reserved) - .finish() - } - } - impl ::hash::Hash for xstate_hdr { - fn hash(&self, state: &mut H) { - self.bv.hash(state); - self.xcomp_bv.hash(state); - self._reserved.hash(state); - } - } - - impl PartialEq for savefpu { - fn eq(&self, other: &savefpu) -> bool { - self.fp_fxsave == other.fp_fxsave - && self.fp_xstate == other.fp_xstate - && self._fp_ymm.iter().zip(other._fp_ymm.iter()).all(|(a, b)| a == b) - } - } - impl Eq for savefpu {} - impl ::fmt::Debug for savefpu { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("savefpu") - .field("fp_fxsave", &self.fp_fxsave) - .field("fp_xstate", &self.fp_xstate) - // FIXME: .field("_fp_ymm", &field._fp_ymm) - .finish() - } - } - impl ::hash::Hash for savefpu { - fn hash(&self, state: &mut H) { - self.fp_fxsave.hash(state); - self.fp_xstate.hash(state); - self._fp_ymm.hash(state); - } - } - - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.rax == other.rax - && self.rbx == other.rbx - && self.rbx == other.rbx - && self.rcx == other.rcx - && self.rdx == other.rdx - && self.rdi == other.rdi - && self.rsi == other.rsi - && self.r8 == other.r8 - && self.r9 == other.r9 - && self.r10 == other.r10 - && self.r11 == other.r11 - && self.r12 == other.r12 - && self.r13 == other.r13 - && self.r14 == other.r14 - && self.r15 == other.r15 - && self.rsp == other.rsp - && self.rip == other.rip - && self.rflags == other.rflags - && self.fpu == other.fpu - } - } - impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mcontext_t") - .field("rax", &self.rax) - .field("rbx", &self.rbx) - .field("rcx", &self.rcx) - .field("rdx", &self.rdx) - .field("rdi", &self.rdi) - .field("rsi", &self.rsi) - .field("rbp", &self.rbp) - .field("r8", &self.r8) - .field("r9", &self.r9) - .field("r10", &self.r10) - .field("r11", &self.r11) - .field("r12", &self.r12) - .field("r13", &self.r13) - .field("r14", &self.r14) - .field("r15", &self.r15) - .field("rsp", &self.rsp) - .field("rip", &self.rip) - .field("rflags", &self.rflags) - .field("fpu", &self.fpu) - .finish() - - } - } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.rax.hash(state); - self.rbx.hash(state); - self.rcx.hash(state); - self.rdx.hash(state); - self.rdi.hash(state); - self.rsi.hash(state); - self.rbp.hash(state); - self.r8.hash(state); - self.r9.hash(state); - self.r10.hash(state); - self.r11.hash(state); - self.r12.hash(state); - self.r13.hash(state); - self.r14.hash(state); - self.r15.hash(state); - self.rsp.hash(state); - self.rip.hash(state); - self.rflags.hash(state); - self.fpu.hash(state); - } - } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_link == other.uc_link - && self.uc_sigmask == other.uc_sigmask - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - } - } - impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_link", &self.uc_link) - .field("uc_sigmask", &self.uc_sigmask) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .finish() - } - } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_link.hash(state); - self.uc_sigmask.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - } - } - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/hermit/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/unix/hermit/aarch64.rs deleted file mode 100644 index 1a92e3b4f..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/hermit/aarch64.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = u32; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/hermit/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/hermit/mod.rs deleted file mode 100644 index 6a656a859..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/hermit/mod.rs +++ /dev/null @@ -1,1023 +0,0 @@ -// liblibc port for HermitCore (https://hermitcore.org) -// HermitCore is a unikernel based on lwIP, newlib, and -// pthread-embedded. -// Consider these definitions when porting liblibc to another -// lwIP/newlib/pte-based target. -// -// Ported by Colin Finck - -pub type c_long = i64; -pub type c_ulong = u64; - -pub type speed_t = ::c_uint; -pub type mode_t = u32; -pub type dev_t = i16; -pub type nfds_t = ::c_ulong; -pub type socklen_t = u32; -pub type sa_family_t = u8; -pub type clock_t = c_ulong; -pub type time_t = c_long; -pub type suseconds_t = c_long; -pub type off_t = i64; -pub type rlim_t = ::c_ulonglong; -pub type sigset_t = ::c_ulong; -pub type ino_t = u16; -pub type nlink_t = u16; -pub type blksize_t = c_long; -pub type blkcnt_t = c_long; -pub type stat64 = stat; -pub type clockid_t = c_ulong; -pub type pthread_t = pte_handle_t; -pub type pthread_attr_t = usize; -pub type pthread_cond_t = usize; -pub type pthread_condattr_t = usize; -pub type pthread_key_t = usize; -pub type pthread_mutex_t = usize; -pub type pthread_mutexattr_t = usize; -pub type pthread_rwlock_t = usize; -pub type pthread_rwlockattr_t = usize; - -s_no_extra_traits! { - pub struct dirent { - pub d_ino: ::c_long, - pub d_off: off_t, - pub d_reclen: u16, - pub d_name: [::c_char; 256], - } - - // Dummy - pub struct sockaddr_un { - pub sun_family: sa_family_t, - pub sun_path: [::c_char; 108], - } - - pub struct sockaddr { - pub sa_len: u8, - pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_in { - pub sin_len: u8, - pub sin_family: sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], - } - - pub struct fd_set { - fds_bits: [::c_ulong; FD_SETSIZE / ULONG_SIZE], - } - - pub struct sockaddr_storage { - pub s2_len: u8, - pub ss_family: sa_family_t, - pub s2_data1: [::c_char; 2], - pub s2_data2: [u32; 3], - pub s2_data3: [u32; 3], - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: dev_t, - pub st_size: off_t, - pub st_atime: time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: blksize_t, - pub st_blocks: blkcnt_t, - pub st_spare4: [::c_long; 2], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for sockaddr_un {} - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) - .finish() - } - } - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for sockaddr { - fn eq(&self, other: &sockaddr) -> bool { - self.sa_len == other.sa_len - && self.sa_family == other.sa_family - && self - .sa_data - .iter() - .zip(other.sa_data.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for sockaddr {} - impl ::fmt::Debug for sockaddr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr") - .field("sa_len", &self.sa_len) - .field("sa_family", &self.sa_family) - // FIXME: .field("sa_data", &self.sa_data) - .finish() - } - } - impl ::hash::Hash for sockaddr { - fn hash(&self, state: &mut H) { - self.sa_len.hash(state); - self.sa_family.hash(state); - self.sa_data.hash(state); - } - } - - impl PartialEq for sockaddr_in { - fn eq(&self, other: &sockaddr_in) -> bool { - self.sin_len == other.sin_len - && self.sin_family == other.sin_family - && self.sin_port == other.sin_port - && self.sin_addr == other.sin_addr - && self - .sin_zero - .iter() - .zip(other.sin_zero.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for sockaddr_in {} - impl ::fmt::Debug for sockaddr_in { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_in") - .field("sin_len", &self.sin_len) - .field("sin_family", &self.sin_family) - .field("sin_port", &self.sin_port) - .field("sin_addr", &self.sin_addr) - // FIXME: .field("sin_zero", &self.sin_zero) - .finish() - } - } - impl ::hash::Hash for sockaddr_in { - fn hash(&self, state: &mut H) { - self.sin_len.hash(state); - self.sin_family.hash(state); - self.sin_port.hash(state); - self.sin_addr.hash(state); - self.sin_zero.hash(state); - } - } - - impl PartialEq for fd_set { - fn eq(&self, other: &fd_set) -> bool { - self.fds_bits - .iter() - .zip(other.fds_bits.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for fd_set {} - impl ::fmt::Debug for fd_set { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("fd_set") - // FIXME: .field("fds_bits", &self.fds_bits) - .finish() - } - } - impl ::hash::Hash for fd_set { - fn hash(&self, state: &mut H) { - self.fds_bits.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.s2_len == other.s2_len - && self.ss_family == other.ss_family - && self.s2_data1 - .iter() - .zip(other.s2_data1.iter()) - .all(|(a,b)| a == b) - && self.s2_data2 - .iter() - .zip(other.s2_data2.iter()) - .all(|(a,b)| a == b) - && self.s2_data3 - .iter() - .zip(other.s2_data3.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_storage") - .field("s2_len", &self.s2_len) - .field("ss_family", &self.ss_family) - // FIXME: .field("s2_data1", &self.s2_data1) - // FIXME: .field("s2_data2", &self.s2_data2) - // FIXME: .field("s2_data3", &self.s2_data3) - .finish() - } - } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.s2_len.hash(state); - self.ss_family.hash(state); - self.s2_data1.hash(state); - self.s2_data2.hash(state); - self.s2_data3.hash(state); - } - } - - impl PartialEq for stat { - fn eq(&self, other: &stat) -> bool { - self.st_dev == other.st_dev - && self.st_ino == other.st_ino - && self.st_mode == other.st_mode - && self.st_nlink == other.st_nlink - && self.st_uid == other.st_uid - && self.st_gid == other.st_gid - && self.st_rdev == other.st_rdev - && self.st_size == other.st_size - && self.st_atime == other.st_atime - && self.st_atime_nsec == other.st_atime_nsec - && self.st_mtime == other.st_mtime - && self.st_mtime_nsec == other.st_mtime_nsec - && self.st_ctime == other.st_ctime - && self.st_ctime_nsec == other.st_ctime_nsec - && self.st_blksize == other.st_blksize - && self.st_blocks == other.st_blocks - && self - .st_spare4 - .iter() - .zip(other.st_spare4.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for stat {} - impl ::fmt::Debug for stat { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("stat") - .field("st_dev", &self.st_dev) - .field("st_ino", &self.st_ino) - .field("st_mode", &self.st_mode) - .field("st_nlink", &self.st_nlink) - .field("st_uid", &self.st_uid) - .field("st_gid", &self.st_gid) - .field("st_rdev", &self.st_rdev) - .field("st_size", &self.st_size) - .field("st_atime", &self.st_atime) - .field("st_atime_nsec", &self.st_atime_nsec) - .field("st_mtime", &self.st_mtime) - .field("st_mtime_nsec", &self.st_mtime_nsec) - .field("st_ctime", &self.st_ctime) - .field("st_ctime_nsec", &self.st_ctime_nsec) - .field("st_blksize", &self.st_blksize) - .field("st_blocks", &self.st_blocks) - // FIXME: .field("st_spare4", &self.st_spare4) - .finish() - } - } - impl ::hash::Hash for stat { - fn hash(&self, state: &mut H) { - self.st_dev.hash(state); - self.st_ino.hash(state); - self.st_mode.hash(state); - self.st_nlink.hash(state); - self.st_uid.hash(state); - self.st_gid.hash(state); - self.st_rdev.hash(state); - self.st_size.hash(state); - self.st_atime.hash(state); - self.st_atime_nsec.hash(state); - self.st_mtime.hash(state); - self.st_mtime_nsec.hash(state); - self.st_ctime.hash(state); - self.st_ctime_nsec.hash(state); - self.st_blksize.hash(state); - self.st_blocks.hash(state); - self.st_spare4.hash(state); - } - } - } -} - -s! { - pub struct in_addr { - pub s_addr: ::in_addr_t, - } - - pub struct ip_mreq { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: socklen_t, - pub ai_addr: *mut ::sockaddr, - pub ai_canonname: *mut c_char, - pub ai_next: *mut addrinfo, - } - - pub struct Dl_info {} - - pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, - } - - pub struct passwd { // Unverified - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - } - - pub struct pte_handle_t { - pub p: usize, - pub x: ::c_uint, - } - - pub struct sched_param { - pub sched_priority: ::c_int, - } - - pub struct sem_t { - pub value: i32, - pub lock: usize, - pub sem: usize, - } - - pub struct sigaction { - pub sa_flags: ::c_int, - pub sa_mask: sigset_t, - pub sa_handler: usize, - } - - pub struct sockaddr_in6 { - pub sin6_len: u8, - pub sin6_family: sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - } - - pub struct statvfs {} - - pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - } - - pub struct tms { - pub tms_utime: ::clock_t, - pub tms_stime: ::clock_t, - pub tms_cutime: ::clock_t, - pub tms_cstime: ::clock_t, - } - - pub struct termios {} - - pub struct utsname {} -} - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_INET: ::c_int = 2; -pub const AF_INET6: ::c_int = 10; - -// Dummy -pub const AF_UNIX: ::c_int = 1; - -pub const CLOCK_REALTIME: ::clockid_t = 1; -pub const CLOCK_MONOTONIC: ::clockid_t = 4; - -// Dummy -pub const EAI_SYSTEM: ::c_int = -11; - -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const EWOULDBLOCK: ::c_int = EAGAIN; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EMULTIHOP: ::c_int = 72; -pub const EDOTDOT: ::c_int = 73; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; - -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; -pub const F_GETOWN: ::c_int = 5; -pub const F_SETOWN: ::c_int = 6; -pub const F_GETLK: ::c_int = 7; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const F_RGETLK: ::c_int = 10; -pub const F_RSETLK: ::c_int = 11; -pub const F_CNVT: ::c_int = 12; -pub const F_RSETLKW: ::c_int = 13; -pub const F_DUPFD_CLOEXEC: ::c_int = 14; - -pub const FD_SETSIZE: usize = 1024; - -// Dummy -pub const FIOCLEX: ::c_int = 0x5451; - -pub const FIONBIO: ::c_int = 0x8004667e; -pub const FIONREAD: ::c_int = 0x4004667f; - -pub const IP_ADD_MEMBERSHIP: ::c_int = 3; -pub const IP_DROP_MEMBERSHIP: ::c_int = 4; - -pub const IP_TOS: ::c_int = 1; -pub const IP_TTL: ::c_int = 2; - -pub const IP_MULTICAST_TTL: ::c_int = 5; -pub const IP_MULTICAST_IF: ::c_int = 6; -pub const IP_MULTICAST_LOOP: ::c_int = 7; - -pub const IPV6_JOIN_GROUP: ::c_int = 12; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 12; -pub const IPV6_LEAVE_GROUP: ::c_int = 13; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 13; -pub const IPV6_V6ONLY: ::c_int = 27; - -// Dummy -pub const IPV6_MULTICAST_LOOP: ::c_int = 7; - -pub const MSG_PEEK: ::c_int = 0x01; -pub const MSG_WAITALL: ::c_int = 0x02; -pub const MSG_OOB: ::c_int = 0x04; -pub const MSG_DONTWAIT: ::c_int = 0x08; -pub const MSG_MORE: ::c_int = 0x10; - -pub const O_ACCMODE: ::c_int = 3; -pub const O_RDONLY: ::c_int = 0; -pub const O_WRONLY: ::c_int = 1; -pub const O_RDWR: ::c_int = 2; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_TRUNC: ::c_int = 512; -pub const O_CLOEXEC: ::c_int = 524288; - -pub const POLLIN: ::c_short = 0x1; -pub const POLLPRI: ::c_short = 0x2; -pub const POLLOUT: ::c_short = 0x4; -pub const POLLERR: ::c_short = 0x8; -pub const POLLHUP: ::c_short = 0x10; -pub const POLLNVAL: ::c_short = 0x20; - -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = usize::max_value(); -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = usize::max_value(); -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = usize::max_value(); - -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_STACK_MIN: ::size_t = 0; - -// Dummy -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; - -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_CHILD_MAX: ::c_int = 1; -pub const _SC_CLK_TCK: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 3; -pub const _SC_OPEN_MAX: ::c_int = 4; -pub const _SC_JOB_CONTROL: ::c_int = 5; -pub const _SC_SAVED_IDS: ::c_int = 6; -pub const _SC_VERSION: ::c_int = 7; -pub const _SC_PAGESIZE: ::c_int = 8; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_NPROCESSORS_CONF: ::c_int = 9; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 10; -pub const _SC_PHYS_PAGES: ::c_int = 11; -pub const _SC_AVPHYS_PAGES: ::c_int = 12; -pub const _SC_MQ_OPEN_MAX: ::c_int = 13; -pub const _SC_MQ_PRIO_MAX: ::c_int = 14; -pub const _SC_RTSIG_MAX: ::c_int = 15; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 16; -pub const _SC_SEM_VALUE_MAX: ::c_int = 17; -pub const _SC_SIGQUEUE_MAX: ::c_int = 18; -pub const _SC_TIMER_MAX: ::c_int = 19; -pub const _SC_TZNAME_MAX: ::c_int = 20; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 21; -pub const _SC_FSYNC: ::c_int = 22; -pub const _SC_MAPPED_FILES: ::c_int = 23; -pub const _SC_MEMLOCK: ::c_int = 24; -pub const _SC_MEMLOCK_RANGE: ::c_int = 25; -pub const _SC_MEMORY_PROTECTION: ::c_int = 26; -pub const _SC_MESSAGE_PASSING: ::c_int = 27; -pub const _SC_PRIORITIZED_IO: ::c_int = 28; -pub const _SC_REALTIME_SIGNALS: ::c_int = 29; -pub const _SC_SEMAPHORES: ::c_int = 30; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 31; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 32; -pub const _SC_TIMERS: ::c_int = 33; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 34; -pub const _SC_AIO_MAX: ::c_int = 35; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 36; -pub const _SC_DELAYTIMER_MAX: ::c_int = 37; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 38; -pub const _SC_THREAD_STACK_MIN: ::c_int = 39; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 40; -pub const _SC_TTY_NAME_MAX: ::c_int = 41; -pub const _SC_THREADS: ::c_int = 42; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 43; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 44; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 45; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 46; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 47; -pub const _SC_THREAD_PRIO_CEILING: ::c_int = _SC_THREAD_PRIO_PROTECT; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 48; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 49; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 50; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 51; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 52; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 53; -pub const _SC_ADVISORY_INFO: ::c_int = 54; -pub const _SC_ATEXIT_MAX: ::c_int = 55; -pub const _SC_BARRIERS: ::c_int = 56; -pub const _SC_BC_BASE_MAX: ::c_int = 57; -pub const _SC_BC_DIM_MAX: ::c_int = 58; -pub const _SC_BC_SCALE_MAX: ::c_int = 59; -pub const _SC_BC_STRING_MAX: ::c_int = 60; -pub const _SC_CLOCK_SELECTION: ::c_int = 61; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 62; -pub const _SC_CPUTIME: ::c_int = 63; -pub const _SC_EXPR_NEST_MAX: ::c_int = 64; -pub const _SC_HOST_NAME_MAX: ::c_int = 65; -pub const _SC_IOV_MAX: ::c_int = 66; -pub const _SC_IPV6: ::c_int = 67; -pub const _SC_LINE_MAX: ::c_int = 68; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 69; -pub const _SC_RAW_SOCKETS: ::c_int = 70; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 71; -pub const _SC_REGEXP: ::c_int = 72; -pub const _SC_RE_DUP_MAX: ::c_int = 73; -pub const _SC_SHELL: ::c_int = 74; -pub const _SC_SPAWN: ::c_int = 75; -pub const _SC_SPIN_LOCKS: ::c_int = 76; -pub const _SC_SPORADIC_SERVER: ::c_int = 77; -pub const _SC_SS_REPL_MAX: ::c_int = 78; -pub const _SC_SYMLOOP_MAX: ::c_int = 79; -pub const _SC_THREAD_CPUTIME: ::c_int = 80; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 81; -pub const _SC_TIMEOUTS: ::c_int = 82; -pub const _SC_TRACE: ::c_int = 83; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 84; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 85; -pub const _SC_TRACE_INHERIT: ::c_int = 86; -pub const _SC_TRACE_LOG: ::c_int = 87; -pub const _SC_TRACE_NAME_MAX: ::c_int = 88; -pub const _SC_TRACE_SYS_MAX: ::c_int = 89; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 90; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 91; -pub const _SC_V7_ILP32_OFF32: ::c_int = 92; -pub const _SC_V6_ILP32_OFF32: ::c_int = _SC_V7_ILP32_OFF32; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = _SC_V7_ILP32_OFF32; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 93; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = _SC_V7_ILP32_OFFBIG; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = _SC_V7_ILP32_OFFBIG; -pub const _SC_V7_LP64_OFF64: ::c_int = 94; -pub const _SC_V6_LP64_OFF64: ::c_int = _SC_V7_LP64_OFF64; -pub const _SC_XBS5_LP64_OFF64: ::c_int = _SC_V7_LP64_OFF64; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 95; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = _SC_V7_LPBIG_OFFBIG; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = _SC_V7_LPBIG_OFFBIG; -pub const _SC_XOPEN_CRYPT: ::c_int = 96; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 97; -pub const _SC_XOPEN_LEGACY: ::c_int = 98; -pub const _SC_XOPEN_REALTIME: ::c_int = 99; -pub const _SC_STREAM_MAX: ::c_int = 100; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 101; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 102; -pub const _SC_XOPEN_SHM: ::c_int = 103; -pub const _SC_XOPEN_STREAMS: ::c_int = 104; -pub const _SC_XOPEN_UNIX: ::c_int = 105; -pub const _SC_XOPEN_VERSION: ::c_int = 106; -pub const _SC_2_CHAR_TERM: ::c_int = 107; -pub const _SC_2_C_BIND: ::c_int = 108; -pub const _SC_2_C_DEV: ::c_int = 109; -pub const _SC_2_FORT_DEV: ::c_int = 110; -pub const _SC_2_FORT_RUN: ::c_int = 111; -pub const _SC_2_LOCALEDEF: ::c_int = 112; -pub const _SC_2_PBS: ::c_int = 113; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 114; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 115; -pub const _SC_2_PBS_LOCATE: ::c_int = 116; -pub const _SC_2_PBS_MESSAGE: ::c_int = 117; -pub const _SC_2_PBS_TRACK: ::c_int = 118; -pub const _SC_2_SW_DEV: ::c_int = 119; -pub const _SC_2_UPE: ::c_int = 120; -pub const _SC_2_VERSION: ::c_int = 121; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 122; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 123; -pub const _SC_XOPEN_UUCP: ::c_int = 124; -pub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 125; -pub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 126; -pub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 127; -pub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 128; -pub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 129; -pub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 130; -pub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 131; -pub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 132; -pub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 133; -pub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 134; -pub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 135; -pub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 136; -pub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 137; -pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 138; -pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 139; - -pub const S_BLKSIZE: ::mode_t = 1024; -pub const S_IREAD: ::mode_t = 256; -pub const S_IWRITE: ::mode_t = 128; -pub const S_IEXEC: ::mode_t = 64; -pub const S_ENFMT: ::mode_t = 1024; -pub const S_IFMT: ::mode_t = 61440; -pub const S_IFDIR: ::mode_t = 16384; -pub const S_IFCHR: ::mode_t = 8192; -pub const S_IFBLK: ::mode_t = 24576; -pub const S_IFREG: ::mode_t = 32768; -pub const S_IFLNK: ::mode_t = 40960; -pub const S_IFSOCK: ::mode_t = 49152; -pub const S_IFIFO: ::mode_t = 4096; -pub const S_IRUSR: ::mode_t = 256; -pub const S_IWUSR: ::mode_t = 128; -pub const S_IXUSR: ::mode_t = 64; -pub const S_IRGRP: ::mode_t = 32; -pub const S_IWGRP: ::mode_t = 16; -pub const S_IXGRP: ::mode_t = 8; -pub const S_IROTH: ::mode_t = 4; -pub const S_IWOTH: ::mode_t = 2; -pub const S_IXOTH: ::mode_t = 1; - -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const SIG_SETMASK: ::c_int = 0; - -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const SO_DEBUG: ::c_int = 0x0001; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SO_CONTIMEO: ::c_int = 0x1009; -pub const SO_NO_CHECK: ::c_int = 0x100a; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; - -pub const SOL_SOCKET: ::c_int = 0xfff; - -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; - -pub const TCP_NODELAY: ::c_int = 0x01; -pub const TCP_KEEPALIVE: ::c_int = 0x02; -pub const TCP_KEEPIDLE: ::c_int = 0x03; -pub const TCP_KEEPINTVL: ::c_int = 0x04; -pub const TCP_KEEPCNT: ::c_int = 0x05; - -const ULONG_SIZE: usize = 64; - -pub const WNOHANG: ::c_int = 0x00000001; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -safe_f! { - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { - (status >> 8) & 0xff - } - - pub {const} fn WIFEXITED(status: ::c_int) -> bool { - (status & 0xff) == 0 - } - - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { - status & 0x7f - } -} - -extern "C" { - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); - - pub fn bind(s: ::c_int, name: *const ::sockaddr, namelen: ::socklen_t) -> ::c_int; - - pub fn clock_gettime(clock_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn getpwuid_r( - uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - - // Dummy - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - - pub fn memalign(align: ::size_t, nbytes: ::size_t) -> *mut ::c_void; - - pub fn pthread_create( - tid: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - start: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - arg: *mut ::c_void, - ) -> ::c_int; - - pub fn pthread_sigmask(how: ::c_int, set: *const ::sigset_t, oset: *mut ::sigset_t) -> ::c_int; - - pub fn recvfrom( - s: ::c_int, - mem: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - from: *mut ::sockaddr, - fromlen: *mut ::socklen_t, - ) -> ::c_int; - - pub fn setgroups(ngroups: ::c_int, grouplist: *const ::gid_t) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; -} - -cfg_if! { - if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/hermit/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/hermit/x86_64.rs deleted file mode 100644 index 76ec3ce82..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/hermit/x86_64.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/arm.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/arm.rs deleted file mode 100644 index a062175ee..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/arm.rs +++ /dev/null @@ -1,550 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = u32; -pub type greg_t = i32; -pub type mcontext_t = sigcontext; - -s! { - pub struct sigcontext { - pub trap_no: ::c_ulong, - pub error_code: ::c_ulong, - pub oldmask: ::c_ulong, - pub arm_r0: ::c_ulong, - pub arm_r1: ::c_ulong, - pub arm_r2: ::c_ulong, - pub arm_r3: ::c_ulong, - pub arm_r4: ::c_ulong, - pub arm_r5: ::c_ulong, - pub arm_r6: ::c_ulong, - pub arm_r7: ::c_ulong, - pub arm_r8: ::c_ulong, - pub arm_r9: ::c_ulong, - pub arm_r10: ::c_ulong, - pub arm_fp: ::c_ulong, - pub arm_ip: ::c_ulong, - pub arm_sp: ::c_ulong, - pub arm_lr: ::c_ulong, - pub arm_pc: ::c_ulong, - pub arm_cpsr: ::c_ulong, - pub fault_address: ::c_ulong, - } -} - -cfg_if! { - if #[cfg(libc_union)] { - s_no_extra_traits! { - pub struct __c_anonymous_uc_sigmask_with_padding { - pub uc_sigmask: ::sigset_t, - /* Android has a wrong (smaller) sigset_t on x86. */ - __padding_rt_sigset: u32, - } - - pub union __c_anonymous_uc_sigmask { - uc_sigmask: __c_anonymous_uc_sigmask_with_padding, - uc_sigmask64: ::sigset64_t, - } - - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask, - /* The kernel adds extra padding after uc_sigmask to match - * glibc sigset_t on ARM. */ - __padding: [c_char; 120], - __align: [::c_longlong; 0], - uc_regspace: [::c_ulong; 128], - } - } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for __c_anonymous_uc_sigmask_with_padding { - fn eq( - &self, other: &__c_anonymous_uc_sigmask_with_padding - ) -> bool { - self.uc_sigmask == other.uc_sigmask - // Ignore padding - } - } - impl Eq for __c_anonymous_uc_sigmask_with_padding {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uc_sigmask_with_padding") - .field("uc_sigmask_with_padding", &self.uc_sigmask) - // Ignore padding - .finish() - } - } - impl ::hash::Hash for __c_anonymous_uc_sigmask_with_padding { - fn hash(&self, state: &mut H) { - self.uc_sigmask.hash(state) - // Ignore padding - } - } - - impl PartialEq for __c_anonymous_uc_sigmask { - fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { - unsafe { self.uc_sigmask == other.uc_sigmask } - } - } - impl Eq for __c_anonymous_uc_sigmask {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uc_sigmask") - .field("uc_sigmask", unsafe { &self.uc_sigmask }) - .finish() - } - } - impl ::hash::Hash for __c_anonymous_uc_sigmask { - fn hash(&self, state: &mut H) { - unsafe { self.uc_sigmask.hash(state) } - } - } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &Self) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask__c_anonymous_union - == other.uc_sigmask__c_anonymous_union - && &self.uc_regspace[..] == &other.uc_regspace[..] - // Ignore padding field - } - } - impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field( - "uc_sigmask__c_anonymous_union", - &self.uc_sigmask__c_anonymous_union - ) - .field("uc_regspace", &&self.uc_regspace[..]) - // Ignore padding field - .finish() - } - } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask__c_anonymous_union.hash(state); - self.uc_regspace[..].hash(state); - // Ignore padding field - } - } - } - } - } -} - -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_LARGEFILE: ::c_int = 0o400000; - -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_pause: ::c_long = 29; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS_getdents: ::c_long = 141; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_pivot_root: ::c_long = 218; -pub const SYS_mincore: ::c_long = 219; -pub const SYS_madvise: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_io_setup: ::c_long = 243; -pub const SYS_io_destroy: ::c_long = 244; -pub const SYS_io_getevents: ::c_long = 245; -pub const SYS_io_submit: ::c_long = 246; -pub const SYS_io_cancel: ::c_long = 247; -pub const SYS_exit_group: ::c_long = 248; -pub const SYS_lookup_dcookie: ::c_long = 249; -pub const SYS_epoll_create: ::c_long = 250; -pub const SYS_epoll_ctl: ::c_long = 251; -pub const SYS_epoll_wait: ::c_long = 252; -pub const SYS_remap_file_pages: ::c_long = 253; -pub const SYS_set_tid_address: ::c_long = 256; -pub const SYS_timer_create: ::c_long = 257; -pub const SYS_timer_settime: ::c_long = 258; -pub const SYS_timer_gettime: ::c_long = 259; -pub const SYS_timer_getoverrun: ::c_long = 260; -pub const SYS_timer_delete: ::c_long = 261; -pub const SYS_clock_settime: ::c_long = 262; -pub const SYS_clock_gettime: ::c_long = 263; -pub const SYS_clock_getres: ::c_long = 264; -pub const SYS_clock_nanosleep: ::c_long = 265; -pub const SYS_statfs64: ::c_long = 266; -pub const SYS_fstatfs64: ::c_long = 267; -pub const SYS_tgkill: ::c_long = 268; -pub const SYS_utimes: ::c_long = 269; -pub const SYS_arm_fadvise64_64: ::c_long = 270; -pub const SYS_pciconfig_iobase: ::c_long = 271; -pub const SYS_pciconfig_read: ::c_long = 272; -pub const SYS_pciconfig_write: ::c_long = 273; -pub const SYS_mq_open: ::c_long = 274; -pub const SYS_mq_unlink: ::c_long = 275; -pub const SYS_mq_timedsend: ::c_long = 276; -pub const SYS_mq_timedreceive: ::c_long = 277; -pub const SYS_mq_notify: ::c_long = 278; -pub const SYS_mq_getsetattr: ::c_long = 279; -pub const SYS_waitid: ::c_long = 280; -pub const SYS_socket: ::c_long = 281; -pub const SYS_bind: ::c_long = 282; -pub const SYS_connect: ::c_long = 283; -pub const SYS_listen: ::c_long = 284; -pub const SYS_accept: ::c_long = 285; -pub const SYS_getsockname: ::c_long = 286; -pub const SYS_getpeername: ::c_long = 287; -pub const SYS_socketpair: ::c_long = 288; -pub const SYS_send: ::c_long = 289; -pub const SYS_sendto: ::c_long = 290; -pub const SYS_recv: ::c_long = 291; -pub const SYS_recvfrom: ::c_long = 292; -pub const SYS_shutdown: ::c_long = 293; -pub const SYS_setsockopt: ::c_long = 294; -pub const SYS_getsockopt: ::c_long = 295; -pub const SYS_sendmsg: ::c_long = 296; -pub const SYS_recvmsg: ::c_long = 297; -pub const SYS_semop: ::c_long = 298; -pub const SYS_semget: ::c_long = 299; -pub const SYS_semctl: ::c_long = 300; -pub const SYS_msgsnd: ::c_long = 301; -pub const SYS_msgrcv: ::c_long = 302; -pub const SYS_msgget: ::c_long = 303; -pub const SYS_msgctl: ::c_long = 304; -pub const SYS_shmat: ::c_long = 305; -pub const SYS_shmdt: ::c_long = 306; -pub const SYS_shmget: ::c_long = 307; -pub const SYS_shmctl: ::c_long = 308; -pub const SYS_add_key: ::c_long = 309; -pub const SYS_request_key: ::c_long = 310; -pub const SYS_keyctl: ::c_long = 311; -pub const SYS_semtimedop: ::c_long = 312; -pub const SYS_vserver: ::c_long = 313; -pub const SYS_ioprio_set: ::c_long = 314; -pub const SYS_ioprio_get: ::c_long = 315; -pub const SYS_inotify_init: ::c_long = 316; -pub const SYS_inotify_add_watch: ::c_long = 317; -pub const SYS_inotify_rm_watch: ::c_long = 318; -pub const SYS_mbind: ::c_long = 319; -pub const SYS_get_mempolicy: ::c_long = 320; -pub const SYS_set_mempolicy: ::c_long = 321; -pub const SYS_openat: ::c_long = 322; -pub const SYS_mkdirat: ::c_long = 323; -pub const SYS_mknodat: ::c_long = 324; -pub const SYS_fchownat: ::c_long = 325; -pub const SYS_futimesat: ::c_long = 326; -pub const SYS_fstatat64: ::c_long = 327; -pub const SYS_unlinkat: ::c_long = 328; -pub const SYS_renameat: ::c_long = 329; -pub const SYS_linkat: ::c_long = 330; -pub const SYS_symlinkat: ::c_long = 331; -pub const SYS_readlinkat: ::c_long = 332; -pub const SYS_fchmodat: ::c_long = 333; -pub const SYS_faccessat: ::c_long = 334; -pub const SYS_pselect6: ::c_long = 335; -pub const SYS_ppoll: ::c_long = 336; -pub const SYS_unshare: ::c_long = 337; -pub const SYS_set_robust_list: ::c_long = 338; -pub const SYS_get_robust_list: ::c_long = 339; -pub const SYS_splice: ::c_long = 340; -pub const SYS_arm_sync_file_range: ::c_long = 341; -pub const SYS_tee: ::c_long = 342; -pub const SYS_vmsplice: ::c_long = 343; -pub const SYS_move_pages: ::c_long = 344; -pub const SYS_getcpu: ::c_long = 345; -pub const SYS_epoll_pwait: ::c_long = 346; -pub const SYS_kexec_load: ::c_long = 347; -pub const SYS_utimensat: ::c_long = 348; -pub const SYS_signalfd: ::c_long = 349; -pub const SYS_timerfd_create: ::c_long = 350; -pub const SYS_eventfd: ::c_long = 351; -pub const SYS_fallocate: ::c_long = 352; -pub const SYS_timerfd_settime: ::c_long = 353; -pub const SYS_timerfd_gettime: ::c_long = 354; -pub const SYS_signalfd4: ::c_long = 355; -pub const SYS_eventfd2: ::c_long = 356; -pub const SYS_epoll_create1: ::c_long = 357; -pub const SYS_dup3: ::c_long = 358; -pub const SYS_pipe2: ::c_long = 359; -pub const SYS_inotify_init1: ::c_long = 360; -pub const SYS_preadv: ::c_long = 361; -pub const SYS_pwritev: ::c_long = 362; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 363; -pub const SYS_perf_event_open: ::c_long = 364; -pub const SYS_recvmmsg: ::c_long = 365; -pub const SYS_accept4: ::c_long = 366; -pub const SYS_fanotify_init: ::c_long = 367; -pub const SYS_fanotify_mark: ::c_long = 368; -pub const SYS_prlimit64: ::c_long = 369; -pub const SYS_name_to_handle_at: ::c_long = 370; -pub const SYS_open_by_handle_at: ::c_long = 371; -pub const SYS_clock_adjtime: ::c_long = 372; -pub const SYS_syncfs: ::c_long = 373; -pub const SYS_sendmmsg: ::c_long = 374; -pub const SYS_setns: ::c_long = 375; -pub const SYS_process_vm_readv: ::c_long = 376; -pub const SYS_process_vm_writev: ::c_long = 377; -pub const SYS_kcmp: ::c_long = 378; -pub const SYS_finit_module: ::c_long = 379; -pub const SYS_sched_setattr: ::c_long = 380; -pub const SYS_sched_getattr: ::c_long = 381; -pub const SYS_renameat2: ::c_long = 382; -pub const SYS_seccomp: ::c_long = 383; -pub const SYS_getrandom: ::c_long = 384; -pub const SYS_memfd_create: ::c_long = 385; -pub const SYS_bpf: ::c_long = 386; -pub const SYS_execveat: ::c_long = 387; -pub const SYS_userfaultfd: ::c_long = 388; -pub const SYS_membarrier: ::c_long = 389; -pub const SYS_mlock2: ::c_long = 390; -pub const SYS_copy_file_range: ::c_long = 391; -pub const SYS_preadv2: ::c_long = 392; -pub const SYS_pwritev2: ::c_long = 393; -pub const SYS_pkey_mprotect: ::c_long = 394; -pub const SYS_pkey_alloc: ::c_long = 395; -pub const SYS_pkey_free: ::c_long = 396; -pub const SYS_statx: ::c_long = 397; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; - -// offsets in mcontext_t.gregs from sys/ucontext.h -pub const REG_R0: ::c_int = 0; -pub const REG_R1: ::c_int = 1; -pub const REG_R2: ::c_int = 2; -pub const REG_R3: ::c_int = 3; -pub const REG_R4: ::c_int = 4; -pub const REG_R5: ::c_int = 5; -pub const REG_R6: ::c_int = 6; -pub const REG_R7: ::c_int = 7; -pub const REG_R8: ::c_int = 8; -pub const REG_R9: ::c_int = 9; -pub const REG_R10: ::c_int = 10; -pub const REG_R11: ::c_int = 11; -pub const REG_R12: ::c_int = 12; -pub const REG_R13: ::c_int = 13; -pub const REG_R14: ::c_int = 14; -pub const REG_R15: ::c_int = 15; - -pub const NGREG: ::c_int = 18; - -f! { - // Sadly, Android before 5.0 (API level 21), the accept4 syscall is not - // exposed by the libc. As work-around, we implement it through `syscall` - // directly. This workaround can be removed if the minimum version of - // Android is bumped. When the workaround is removed, `accept4` can be - // moved back to `linux_like/mod.rs` - pub fn accept4( - fd: ::c_int, - addr: *mut ::sockaddr, - len: *mut ::socklen_t, - flg: ::c_int - ) -> ::c_int { - ::syscall(SYS_accept4, fd, addr, len, flg) as ::c_int - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/mod.rs deleted file mode 100644 index 1f4f796f2..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/mod.rs +++ /dev/null @@ -1,244 +0,0 @@ -// The following definitions are correct for arm and i686, -// but may be wrong for mips - -pub type c_long = i32; -pub type c_ulong = u32; -pub type mode_t = u16; -pub type off64_t = ::c_longlong; -pub type sigset_t = ::c_ulong; -pub type socklen_t = i32; -pub type time64_t = i64; -pub type __u64 = ::c_ulonglong; - -s! { - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct rlimit64 { - pub rlim_cur: u64, - pub rlim_max: u64, - } - - pub struct stat { - pub st_dev: ::c_ulonglong, - __pad0: [::c_uchar; 4], - __st_ino: ::ino_t, - pub st_mode: ::c_uint, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulonglong, - __pad3: [::c_uchar; 4], - pub st_size: ::c_longlong, - pub st_blksize: ::blksize_t, - pub st_blocks: ::c_ulonglong, - pub st_atime: ::c_long, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::c_long, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::c_long, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::c_ulonglong, - } - - pub struct stat64 { - pub st_dev: ::c_ulonglong, - __pad0: [::c_uchar; 4], - __st_ino: ::ino_t, - pub st_mode: ::c_uint, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulonglong, - __pad3: [::c_uchar; 4], - pub st_size: ::c_longlong, - pub st_blksize: ::blksize_t, - pub st_blocks: ::c_ulonglong, - pub st_atime: ::c_long, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::c_long, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::c_long, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::c_ulonglong, - } - - pub struct statfs64 { - pub f_type: u32, - pub f_bsize: u32, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::__fsid_t, - pub f_namelen: u32, - pub f_frsize: u32, - pub f_flags: u32, - pub f_spare: [u32; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::c_ulong, - pub f_bfree: ::c_ulong, - pub f_bavail: ::c_ulong, - pub f_files: ::c_ulong, - pub f_ffree: ::c_ulong, - pub f_favail: ::c_ulong, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - } - - pub struct pthread_attr_t { - pub flags: u32, - pub stack_base: *mut ::c_void, - pub stack_size: ::size_t, - pub guard_size: ::size_t, - pub sched_policy: i32, - pub sched_priority: i32, - } - - pub struct pthread_mutex_t { value: ::c_int } - - pub struct pthread_cond_t { value: ::c_int } - - pub struct pthread_rwlock_t { - lock: pthread_mutex_t, - cond: pthread_cond_t, - numLocks: ::c_int, - writerThreadId: ::c_int, - pendingReaders: ::c_int, - pendingWriters: ::c_int, - attr: i32, - __reserved: [::c_char; 12], - } - - pub struct pthread_barrier_t { - __private: [i32; 8], - } - - pub struct pthread_spinlock_t { - __private: [i32; 2], - } - - pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - } - - pub struct statfs { - pub f_type: u32, - pub f_bsize: u32, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::__fsid_t, - pub f_namelen: u32, - pub f_frsize: u32, - pub f_flags: u32, - pub f_spare: [u32; 4], - } - - pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 8], - } -} - -s_no_extra_traits! { - pub struct sigset64_t { - __bits: [::c_ulong; 2] - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl ::fmt::Debug for sigset64_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sigset64_t") - .field("__bits", &self.__bits) - .finish() - } - } - } -} - -// These constants must be of the same type of sigaction.sa_flags -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; - -pub const RTLD_GLOBAL: ::c_int = 2; -pub const RTLD_NOW: ::c_int = 0; -pub const RTLD_DEFAULT: *mut ::c_void = -1isize as *mut ::c_void; - -pub const PTRACE_GETFPREGS: ::c_int = 14; -pub const PTRACE_SETFPREGS: ::c_int = 15; - -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { value: 0 }; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { value: 0 }; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - lock: PTHREAD_MUTEX_INITIALIZER, - cond: PTHREAD_COND_INITIALIZER, - numLocks: 0, - writerThreadId: 0, - pendingReaders: 0, - pendingWriters: 0, - attr: 0, - __reserved: [0; 12], -}; -pub const PTHREAD_STACK_MIN: ::size_t = 4096 * 2; -pub const CPU_SETSIZE: ::size_t = 32; -pub const __CPU_BITS: ::size_t = 32; - -pub const UT_LINESIZE: usize = 8; -pub const UT_NAMESIZE: usize = 8; -pub const UT_HOSTSIZE: usize = 16; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; - -extern "C" { - pub fn timegm64(tm: *const ::tm) -> ::time64_t; -} - -cfg_if! { - if #[cfg(target_arch = "x86")] { - mod x86; - pub use self::x86::*; - } else if #[cfg(target_arch = "arm")] { - mod arm; - pub use self::arm::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/align.rs deleted file mode 100644 index 04df4a05d..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [f64; 2] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/mod.rs deleted file mode 100644 index e549f3b51..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b32/x86/mod.rs +++ /dev/null @@ -1,622 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; -pub type greg_t = i32; - -s! { - pub struct _libc_fpreg { - pub significand: [u16; 4], - pub exponent: u16, - } - - pub struct _libc_fpstate { - pub cw: ::c_ulong, - pub sw: ::c_ulong, - pub tag: ::c_ulong, - pub ipoff: ::c_ulong, - pub cssel: ::c_ulong, - pub dataoff: ::c_ulong, - pub datasel: ::c_ulong, - pub _st: [_libc_fpreg; 8], - pub status: ::c_ulong, - } - - pub struct mcontext_t { - pub gregs: [greg_t; 19], - pub fpregs: *mut _libc_fpstate, - pub oldmask: ::c_ulong, - pub cr2: ::c_ulong, - } -} - -cfg_if! { - if #[cfg(libc_union)] { - s_no_extra_traits! { - pub struct __c_anonymous_uc_sigmask_with_padding { - pub uc_sigmask: ::sigset_t, - /* Android has a wrong (smaller) sigset_t on x86. */ - __padding_rt_sigset: u32, - } - - pub union __c_anonymous_uc_sigmask { - uc_sigmask: __c_anonymous_uc_sigmask_with_padding, - uc_sigmask64: ::sigset64_t, - } - - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask, - __padding_rt_sigset: u32, - __fpregs_mem: _libc_fpstate, - } - } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for __c_anonymous_uc_sigmask_with_padding { - fn eq( - &self, other: &__c_anonymous_uc_sigmask_with_padding - ) -> bool { - self.uc_sigmask == other.uc_sigmask - // Ignore padding - } - } - impl Eq for __c_anonymous_uc_sigmask_with_padding {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask_with_padding { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uc_sigmask_with_padding") - .field("uc_sigmask_with_padding", &self.uc_sigmask) - // Ignore padding - .finish() - } - } - impl ::hash::Hash for __c_anonymous_uc_sigmask_with_padding { - fn hash(&self, state: &mut H) { - self.uc_sigmask.hash(state) - // Ignore padding - } - } - - impl PartialEq for __c_anonymous_uc_sigmask { - fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { - unsafe { self.uc_sigmask == other.uc_sigmask } - } - } - impl Eq for __c_anonymous_uc_sigmask {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uc_sigmask") - .field("uc_sigmask", unsafe { &self.uc_sigmask }) - .finish() - } - } - impl ::hash::Hash for __c_anonymous_uc_sigmask { - fn hash(&self, state: &mut H) { - unsafe { self.uc_sigmask.hash(state) } - } - } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &Self) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask__c_anonymous_union - == other.uc_sigmask__c_anonymous_union - // Ignore padding field - } - } - impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field( - "uc_sigmask__c_anonymous_union", - &self.uc_sigmask__c_anonymous_union - ) - // Ignore padding field - .finish() - } - } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask__c_anonymous_union.hash(state); - // Ignore padding field - } - } - } - } - } -} - -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_LARGEFILE: ::c_int = 0o0100000; - -pub const MAP_32BIT: ::c_int = 0x40; - -// Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86old: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -// FIXME: SYS__llseek is in the NDK sources but for some reason is -// not available in the tests -// pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -// FIXME: SYS__newselect is in the NDK sources but for some reason is -// not available in the tests -// pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -// FIXME: SYS__llseek is in the NDK sources but for some reason is -// not available in the tests -// pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_vm86: ::c_long = 166; -pub const SYS_query_module: ::c_long = 167; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_getpmsg: ::c_long = 188; -pub const SYS_putpmsg: ::c_long = 189; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_pivot_root: ::c_long = 217; -pub const SYS_mincore: ::c_long = 218; -pub const SYS_madvise: ::c_long = 219; -pub const SYS_getdents64: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_set_thread_area: ::c_long = 243; -pub const SYS_get_thread_area: ::c_long = 244; -pub const SYS_io_setup: ::c_long = 245; -pub const SYS_io_destroy: ::c_long = 246; -pub const SYS_io_getevents: ::c_long = 247; -pub const SYS_io_submit: ::c_long = 248; -pub const SYS_io_cancel: ::c_long = 249; -pub const SYS_fadvise64: ::c_long = 250; -pub const SYS_exit_group: ::c_long = 252; -pub const SYS_lookup_dcookie: ::c_long = 253; -pub const SYS_epoll_create: ::c_long = 254; -pub const SYS_epoll_ctl: ::c_long = 255; -pub const SYS_epoll_wait: ::c_long = 256; -pub const SYS_remap_file_pages: ::c_long = 257; -pub const SYS_set_tid_address: ::c_long = 258; -pub const SYS_timer_create: ::c_long = 259; -pub const SYS_timer_settime: ::c_long = 260; -pub const SYS_timer_gettime: ::c_long = 261; -pub const SYS_timer_getoverrun: ::c_long = 262; -pub const SYS_timer_delete: ::c_long = 263; -pub const SYS_clock_settime: ::c_long = 264; -pub const SYS_clock_gettime: ::c_long = 265; -pub const SYS_clock_getres: ::c_long = 266; -pub const SYS_clock_nanosleep: ::c_long = 267; -pub const SYS_statfs64: ::c_long = 268; -pub const SYS_fstatfs64: ::c_long = 269; -pub const SYS_tgkill: ::c_long = 270; -pub const SYS_utimes: ::c_long = 271; -pub const SYS_fadvise64_64: ::c_long = 272; -pub const SYS_vserver: ::c_long = 273; -pub const SYS_mbind: ::c_long = 274; -pub const SYS_get_mempolicy: ::c_long = 275; -pub const SYS_set_mempolicy: ::c_long = 276; -pub const SYS_mq_open: ::c_long = 277; -pub const SYS_mq_unlink: ::c_long = 278; -pub const SYS_mq_timedsend: ::c_long = 279; -pub const SYS_mq_timedreceive: ::c_long = 280; -pub const SYS_mq_notify: ::c_long = 281; -pub const SYS_mq_getsetattr: ::c_long = 282; -pub const SYS_kexec_load: ::c_long = 283; -pub const SYS_waitid: ::c_long = 284; -pub const SYS_add_key: ::c_long = 286; -pub const SYS_request_key: ::c_long = 287; -pub const SYS_keyctl: ::c_long = 288; -pub const SYS_ioprio_set: ::c_long = 289; -pub const SYS_ioprio_get: ::c_long = 290; -pub const SYS_inotify_init: ::c_long = 291; -pub const SYS_inotify_add_watch: ::c_long = 292; -pub const SYS_inotify_rm_watch: ::c_long = 293; -pub const SYS_migrate_pages: ::c_long = 294; -pub const SYS_openat: ::c_long = 295; -pub const SYS_mkdirat: ::c_long = 296; -pub const SYS_mknodat: ::c_long = 297; -pub const SYS_fchownat: ::c_long = 298; -pub const SYS_futimesat: ::c_long = 299; -pub const SYS_fstatat64: ::c_long = 300; -pub const SYS_unlinkat: ::c_long = 301; -pub const SYS_renameat: ::c_long = 302; -pub const SYS_linkat: ::c_long = 303; -pub const SYS_symlinkat: ::c_long = 304; -pub const SYS_readlinkat: ::c_long = 305; -pub const SYS_fchmodat: ::c_long = 306; -pub const SYS_faccessat: ::c_long = 307; -pub const SYS_pselect6: ::c_long = 308; -pub const SYS_ppoll: ::c_long = 309; -pub const SYS_unshare: ::c_long = 310; -pub const SYS_set_robust_list: ::c_long = 311; -pub const SYS_get_robust_list: ::c_long = 312; -pub const SYS_splice: ::c_long = 313; -pub const SYS_sync_file_range: ::c_long = 314; -pub const SYS_tee: ::c_long = 315; -pub const SYS_vmsplice: ::c_long = 316; -pub const SYS_move_pages: ::c_long = 317; -pub const SYS_getcpu: ::c_long = 318; -pub const SYS_epoll_pwait: ::c_long = 319; -pub const SYS_utimensat: ::c_long = 320; -pub const SYS_signalfd: ::c_long = 321; -pub const SYS_timerfd_create: ::c_long = 322; -pub const SYS_eventfd: ::c_long = 323; -pub const SYS_fallocate: ::c_long = 324; -pub const SYS_timerfd_settime: ::c_long = 325; -pub const SYS_timerfd_gettime: ::c_long = 326; -pub const SYS_signalfd4: ::c_long = 327; -pub const SYS_eventfd2: ::c_long = 328; -pub const SYS_epoll_create1: ::c_long = 329; -pub const SYS_dup3: ::c_long = 330; -pub const SYS_pipe2: ::c_long = 331; -pub const SYS_inotify_init1: ::c_long = 332; -pub const SYS_preadv: ::c_long = 333; -pub const SYS_pwritev: ::c_long = 334; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 335; -pub const SYS_perf_event_open: ::c_long = 336; -pub const SYS_recvmmsg: ::c_long = 337; -pub const SYS_fanotify_init: ::c_long = 338; -pub const SYS_fanotify_mark: ::c_long = 339; -pub const SYS_prlimit64: ::c_long = 340; -pub const SYS_name_to_handle_at: ::c_long = 341; -pub const SYS_open_by_handle_at: ::c_long = 342; -pub const SYS_clock_adjtime: ::c_long = 343; -pub const SYS_syncfs: ::c_long = 344; -pub const SYS_sendmmsg: ::c_long = 345; -pub const SYS_setns: ::c_long = 346; -pub const SYS_process_vm_readv: ::c_long = 347; -pub const SYS_process_vm_writev: ::c_long = 348; -pub const SYS_kcmp: ::c_long = 349; -pub const SYS_finit_module: ::c_long = 350; -pub const SYS_sched_setattr: ::c_long = 351; -pub const SYS_sched_getattr: ::c_long = 352; -pub const SYS_renameat2: ::c_long = 353; -pub const SYS_seccomp: ::c_long = 354; -pub const SYS_getrandom: ::c_long = 355; -pub const SYS_memfd_create: ::c_long = 356; -pub const SYS_bpf: ::c_long = 357; -pub const SYS_execveat: ::c_long = 358; -pub const SYS_socket: ::c_long = 359; -pub const SYS_socketpair: ::c_long = 360; -pub const SYS_bind: ::c_long = 361; -pub const SYS_connect: ::c_long = 362; -pub const SYS_listen: ::c_long = 363; -pub const SYS_accept4: ::c_long = 364; -pub const SYS_getsockopt: ::c_long = 365; -pub const SYS_setsockopt: ::c_long = 366; -pub const SYS_getsockname: ::c_long = 367; -pub const SYS_getpeername: ::c_long = 368; -pub const SYS_sendto: ::c_long = 369; -pub const SYS_sendmsg: ::c_long = 370; -pub const SYS_recvfrom: ::c_long = 371; -pub const SYS_recvmsg: ::c_long = 372; -pub const SYS_shutdown: ::c_long = 373; -pub const SYS_userfaultfd: ::c_long = 374; -pub const SYS_membarrier: ::c_long = 375; -pub const SYS_mlock2: ::c_long = 376; -pub const SYS_copy_file_range: ::c_long = 377; -pub const SYS_preadv2: ::c_long = 378; -pub const SYS_pwritev2: ::c_long = 379; -pub const SYS_pkey_mprotect: ::c_long = 380; -pub const SYS_pkey_alloc: ::c_long = 381; -pub const SYS_pkey_free: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; - -// offsets in user_regs_structs, from sys/reg.h -pub const EBX: ::c_int = 0; -pub const ECX: ::c_int = 1; -pub const EDX: ::c_int = 2; -pub const ESI: ::c_int = 3; -pub const EDI: ::c_int = 4; -pub const EBP: ::c_int = 5; -pub const EAX: ::c_int = 6; -pub const DS: ::c_int = 7; -pub const ES: ::c_int = 8; -pub const FS: ::c_int = 9; -pub const GS: ::c_int = 10; -pub const ORIG_EAX: ::c_int = 11; -pub const EIP: ::c_int = 12; -pub const CS: ::c_int = 13; -pub const EFL: ::c_int = 14; -pub const UESP: ::c_int = 15; -pub const SS: ::c_int = 16; - -// offsets in mcontext_t.gregs from sys/ucontext.h -pub const REG_GS: ::c_int = 0; -pub const REG_FS: ::c_int = 1; -pub const REG_ES: ::c_int = 2; -pub const REG_DS: ::c_int = 3; -pub const REG_EDI: ::c_int = 4; -pub const REG_ESI: ::c_int = 5; -pub const REG_EBP: ::c_int = 6; -pub const REG_ESP: ::c_int = 7; -pub const REG_EBX: ::c_int = 8; -pub const REG_EDX: ::c_int = 9; -pub const REG_ECX: ::c_int = 10; -pub const REG_EAX: ::c_int = 11; -pub const REG_TRAPNO: ::c_int = 12; -pub const REG_ERR: ::c_int = 13; -pub const REG_EIP: ::c_int = 14; -pub const REG_CS: ::c_int = 15; -pub const REG_EFL: ::c_int = 16; -pub const REG_UESP: ::c_int = 17; -pub const REG_SS: ::c_int = 18; - -// socketcall values from linux/net.h (only the needed ones, and not public) -const SYS_ACCEPT4: ::c_int = 18; - -f! { - // Sadly, Android before 5.0 (API level 21), the accept4 syscall is not - // exposed by the libc. As work-around, we implement it as raw syscall. - // Note that for x86, the `accept4` syscall is not available either, - // and we must use the `socketcall` syscall instead. - // This workaround can be removed if the minimum Android version is bumped. - // When the workaround is removed, `accept4` can be moved back - // to `linux_like/mod.rs` - pub fn accept4( - fd: ::c_int, - addr: *mut ::sockaddr, - len: *mut ::socklen_t, - flg: ::c_int - ) -> ::c_int { - // Arguments are passed as array of `long int` - // (which is big enough on x86 for a pointer). - let mut args = [ - fd as ::c_long, - addr as ::c_long, - len as ::c_long, - flg as ::c_long, - ]; - ::syscall(SYS_socketcall, SYS_ACCEPT4, args[..].as_mut_ptr()) - } -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/align.rs deleted file mode 100644 index 154c2c54c..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/align.rs +++ /dev/null @@ -1,29 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f32; 8] - } -} - -s! { - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[repr(align(16))] - pub struct mcontext_t { - pub fault_address: ::c_ulonglong, - pub regs: [::c_ulonglong; 31], - pub sp: ::c_ulonglong, - pub pc: ::c_ulonglong, - pub pstate: ::c_ulonglong, - // nested arrays to get the right size/length while being able to - // auto-derive traits like Debug - __reserved: [[u64; 32]; 16], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/int128.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/int128.rs deleted file mode 100644 index 4535e73ee..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/int128.rs +++ /dev/null @@ -1,7 +0,0 @@ -s! { - pub struct user_fpsimd_struct { - pub vregs: [::__uint128_t; 32], - pub fpsr: u32, - pub fpcr: u32, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/mod.rs deleted file mode 100644 index e7247fbb6..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/aarch64/mod.rs +++ /dev/null @@ -1,427 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = u32; -pub type __u64 = ::c_ulonglong; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::c_uint, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::c_ulong, - pub st_size: ::off64_t, - pub st_blksize: ::c_int, - __pad2: ::c_int, - pub st_blocks: ::c_long, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused4: ::c_uint, - __unused5: ::c_uint, - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::c_uint, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::c_ulong, - pub st_size: ::off64_t, - pub st_blksize: ::c_int, - __pad2: ::c_int, - pub st_blocks: ::c_long, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused4: ::c_uint, - __unused5: ::c_uint, - } - - pub struct user_regs_struct { - pub regs: [u64; 31], - pub sp: u64, - pub pc: u64, - pub pstate: u64, - } -} - -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_LARGEFILE: ::c_int = 0o400000; - -pub const SIGSTKSZ: ::size_t = 16384; -pub const MINSIGSTKSZ: ::size_t = 5120; - -// From NDK's asm/hwcap.h -pub const HWCAP_FP: ::c_ulong = 1 << 0; -pub const HWCAP_ASIMD: ::c_ulong = 1 << 1; -pub const HWCAP_EVTSTRM: ::c_ulong = 1 << 2; -pub const HWCAP_AES: ::c_ulong = 1 << 3; -pub const HWCAP_PMULL: ::c_ulong = 1 << 4; -pub const HWCAP_SHA1: ::c_ulong = 1 << 5; -pub const HWCAP_SHA2: ::c_ulong = 1 << 6; -pub const HWCAP_CRC32: ::c_ulong = 1 << 7; -pub const HWCAP_ATOMICS: ::c_ulong = 1 << 8; -pub const HWCAP_FPHP: ::c_ulong = 1 << 9; -pub const HWCAP_ASIMDHP: ::c_ulong = 1 << 10; -pub const HWCAP_CPUID: ::c_ulong = 1 << 11; -pub const HWCAP_ASIMDRDM: ::c_ulong = 1 << 12; -pub const HWCAP_JSCVT: ::c_ulong = 1 << 13; -pub const HWCAP_FCMA: ::c_ulong = 1 << 14; -pub const HWCAP_LRCPC: ::c_ulong = 1 << 15; -pub const HWCAP_DCPOP: ::c_ulong = 1 << 16; -pub const HWCAP_SHA3: ::c_ulong = 1 << 17; -pub const HWCAP_SM3: ::c_ulong = 1 << 18; -pub const HWCAP_SM4: ::c_ulong = 1 << 19; -pub const HWCAP_ASIMDDP: ::c_ulong = 1 << 20; -pub const HWCAP_SHA512: ::c_ulong = 1 << 21; -pub const HWCAP_SVE: ::c_ulong = 1 << 22; -pub const HWCAP_ASIMDFHM: ::c_ulong = 1 << 23; -pub const HWCAP_DIT: ::c_ulong = 1 << 24; -pub const HWCAP_USCAT: ::c_ulong = 1 << 25; -pub const HWCAP_ILRCPC: ::c_ulong = 1 << 26; -pub const HWCAP_FLAGM: ::c_ulong = 1 << 27; -pub const HWCAP_SSBS: ::c_ulong = 1 << 28; -pub const HWCAP_SB: ::c_ulong = 1 << 29; -pub const HWCAP_PACA: ::c_ulong = 1 << 30; -pub const HWCAP_PACG: ::c_ulong = 1 << 31; -pub const HWCAP2_DCPODP: ::c_ulong = 1 << 0; -pub const HWCAP2_SVE2: ::c_ulong = 1 << 1; -pub const HWCAP2_SVEAES: ::c_ulong = 1 << 2; -pub const HWCAP2_SVEPMULL: ::c_ulong = 1 << 3; -pub const HWCAP2_SVEBITPERM: ::c_ulong = 1 << 4; -pub const HWCAP2_SVESHA3: ::c_ulong = 1 << 5; -pub const HWCAP2_SVESM4: ::c_ulong = 1 << 6; -pub const HWCAP2_FLAGM2: ::c_ulong = 1 << 7; -pub const HWCAP2_FRINT: ::c_ulong = 1 << 8; -pub const HWCAP2_SVEI8MM: ::c_ulong = 1 << 9; -pub const HWCAP2_SVEF32MM: ::c_ulong = 1 << 10; -pub const HWCAP2_SVEF64MM: ::c_ulong = 1 << 11; -pub const HWCAP2_SVEBF16: ::c_ulong = 1 << 12; -pub const HWCAP2_I8MM: ::c_ulong = 1 << 13; -pub const HWCAP2_BF16: ::c_ulong = 1 << 14; -pub const HWCAP2_DGH: ::c_ulong = 1 << 15; -pub const HWCAP2_RNG: ::c_ulong = 1 << 16; -pub const HWCAP2_BTI: ::c_ulong = 1 << 17; -pub const HWCAP2_MTE: ::c_ulong = 1 << 18; -pub const HWCAP2_ECV: ::c_ulong = 1 << 19; -pub const HWCAP2_AFP: ::c_ulong = 1 << 20; -pub const HWCAP2_RPRES: ::c_ulong = 1 << 21; -pub const HWCAP2_MTE3: ::c_ulong = 1 << 22; -pub const HWCAP2_SME: ::c_ulong = 1 << 23; -pub const HWCAP2_SME_I16I64: ::c_ulong = 1 << 24; -pub const HWCAP2_SME_F64F64: ::c_ulong = 1 << 25; -pub const HWCAP2_SME_I8I32: ::c_ulong = 1 << 26; -pub const HWCAP2_SME_F16F32: ::c_ulong = 1 << 27; -pub const HWCAP2_SME_B16F32: ::c_ulong = 1 << 28; -pub const HWCAP2_SME_F32F32: ::c_ulong = 1 << 29; -pub const HWCAP2_SME_FA64: ::c_ulong = 1 << 30; -pub const HWCAP2_WFXT: ::c_ulong = 1 << 31; -pub const HWCAP2_EBF16: ::c_ulong = 1 << 32; -pub const HWCAP2_SVE_EBF16: ::c_ulong = 1 << 33; - -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_dup: ::c_long = 23; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_flock: ::c_long = 32; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_renameat: ::c_long = 38; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_mount: ::c_long = 40; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_openat: ::c_long = 56; -pub const SYS_close: ::c_long = 57; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_sync: ::c_long = 81; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_acct: ::c_long = 89; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_personality: ::c_long = 92; -pub const SYS_exit: ::c_long = 93; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_futex: ::c_long = 98; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_kill: ::c_long = 129; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_times: ::c_long = 153; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_uname: ::c_long = 160; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_umask: ::c_long = 166; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_semop: ::c_long = 193; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_socket: ::c_long = 198; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_accept: ::c_long = 202; -pub const SYS_connect: ::c_long = 203; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_brk: ::c_long = 214; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_arch_specific_syscall: ::c_long = 244; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_setns: ::c_long = 268; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_syscalls: ::c_long = 436; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} - -cfg_if! { - if #[cfg(libc_int128)] { - mod int128; - pub use self::int128::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/mod.rs deleted file mode 100644 index 67d0dacf1..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/mod.rs +++ /dev/null @@ -1,355 +0,0 @@ -// The following definitions are correct for aarch64 and x86_64, -// but may be wrong for mips64 - -pub type c_long = i64; -pub type c_ulong = u64; -pub type mode_t = u32; -pub type off64_t = i64; -pub type socklen_t = u32; - -s! { - pub struct sigset_t { - __val: [::c_ulong; 1], - } - - pub struct sigaction { - pub sa_flags: ::c_int, - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_restorer: ::Option, - } - - pub struct rlimit64 { - pub rlim_cur: ::c_ulonglong, - pub rlim_max: ::c_ulonglong, - } - - pub struct pthread_attr_t { - pub flags: u32, - pub stack_base: *mut ::c_void, - pub stack_size: ::size_t, - pub guard_size: ::size_t, - pub sched_policy: i32, - pub sched_priority: i32, - __reserved: [::c_char; 16], - } - - pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - } - - pub struct statfs { - pub f_type: u64, - pub f_bsize: u64, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::__fsid_t, - pub f_namelen: u64, - pub f_frsize: u64, - pub f_flags: u64, - pub f_spare: [u64; 4], - } - - pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 0], - } - - pub struct statfs64 { - pub f_type: u64, - pub f_bsize: u64, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::__fsid_t, - pub f_namelen: u64, - pub f_frsize: u64, - pub f_flags: u64, - pub f_spare: [u64; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct pthread_barrier_t { - __private: [i64; 4], - } - - pub struct pthread_spinlock_t { - __private: i64, - } -} - -s_no_extra_traits! { - pub struct pthread_mutex_t { - value: ::c_int, - __reserved: [::c_char; 36], - } - - pub struct pthread_cond_t { - value: ::c_int, - __reserved: [::c_char; 44], - } - - pub struct pthread_rwlock_t { - numLocks: ::c_int, - writerThreadId: ::c_int, - pendingReaders: ::c_int, - pendingWriters: ::c_int, - attr: i32, - __reserved: [::c_char; 36], - } - - pub struct sigset64_t { - __bits: [::c_ulong; 1] - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_mutex_t { - fn eq(&self, other: &pthread_mutex_t) -> bool { - self.value == other.value - && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for pthread_mutex_t {} - - impl ::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_mutex_t") - .field("value", &self.value) - // FIXME: .field("__reserved", &self.__reserved) - .finish() - } - } - - impl ::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { - self.value.hash(state); - self.__reserved.hash(state); - } - } - - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.value == other.value - && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for pthread_cond_t {} - - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_cond_t") - .field("value", &self.value) - // FIXME: .field("__reserved", &self.__reserved) - .finish() - } - } - - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.value.hash(state); - self.__reserved.hash(state); - } - } - - impl PartialEq for pthread_rwlock_t { - fn eq(&self, other: &pthread_rwlock_t) -> bool { - self.numLocks == other.numLocks - && self.writerThreadId == other.writerThreadId - && self.pendingReaders == other.pendingReaders - && self.pendingWriters == other.pendingWriters - && self.attr == other.attr - && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for pthread_rwlock_t {} - - impl ::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_rwlock_t") - .field("numLocks", &self.numLocks) - .field("writerThreadId", &self.writerThreadId) - .field("pendingReaders", &self.pendingReaders) - .field("pendingWriters", &self.pendingWriters) - .field("attr", &self.attr) - // FIXME: .field("__reserved", &self.__reserved) - .finish() - } - } - - impl ::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { - self.numLocks.hash(state); - self.writerThreadId.hash(state); - self.pendingReaders.hash(state); - self.pendingWriters.hash(state); - self.attr.hash(state); - self.__reserved.hash(state); - } - } - - impl ::fmt::Debug for sigset64_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sigset64_t") - .field("__bits", &self.__bits) - .finish() - } - } - } -} - -// These constants must be of the same type of sigaction.sa_flags -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; - -pub const RTLD_GLOBAL: ::c_int = 0x00100; -pub const RTLD_NOW: ::c_int = 2; -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; - -// From NDK's linux/auxvec.h -pub const AT_NULL: ::c_ulong = 0; -pub const AT_IGNORE: ::c_ulong = 1; -pub const AT_EXECFD: ::c_ulong = 2; -pub const AT_PHDR: ::c_ulong = 3; -pub const AT_PHENT: ::c_ulong = 4; -pub const AT_PHNUM: ::c_ulong = 5; -pub const AT_PAGESZ: ::c_ulong = 6; -pub const AT_BASE: ::c_ulong = 7; -pub const AT_FLAGS: ::c_ulong = 8; -pub const AT_ENTRY: ::c_ulong = 9; -pub const AT_NOTELF: ::c_ulong = 10; -pub const AT_UID: ::c_ulong = 11; -pub const AT_EUID: ::c_ulong = 12; -pub const AT_GID: ::c_ulong = 13; -pub const AT_EGID: ::c_ulong = 14; -pub const AT_PLATFORM: ::c_ulong = 15; -pub const AT_HWCAP: ::c_ulong = 16; -pub const AT_CLKTCK: ::c_ulong = 17; -pub const AT_SECURE: ::c_ulong = 23; -pub const AT_BASE_PLATFORM: ::c_ulong = 24; -pub const AT_RANDOM: ::c_ulong = 25; -pub const AT_HWCAP2: ::c_ulong = 26; -pub const AT_EXECFN: ::c_ulong = 31; - -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - value: 0, - __reserved: [0; 36], -}; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - value: 0, - __reserved: [0; 44], -}; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - numLocks: 0, - writerThreadId: 0, - pendingReaders: 0, - pendingWriters: 0, - attr: 0, - __reserved: [0; 36], -}; -pub const PTHREAD_STACK_MIN: ::size_t = 4096 * 4; -pub const CPU_SETSIZE: ::size_t = 1024; -pub const __CPU_BITS: ::size_t = 64; - -pub const UT_LINESIZE: usize = 32; -pub const UT_NAMESIZE: usize = 32; -pub const UT_HOSTSIZE: usize = 256; - -f! { - // Sadly, Android before 5.0 (API level 21), the accept4 syscall is not - // exposed by the libc. As work-around, we implement it through `syscall` - // directly. This workaround can be removed if the minimum version of - // Android is bumped. When the workaround is removed, `accept4` can be - // moved back to `linux_like/mod.rs` - pub fn accept4( - fd: ::c_int, - addr: *mut ::sockaddr, - len: *mut ::socklen_t, - flg: ::c_int - ) -> ::c_int { - ::syscall(SYS_accept4, fd, addr, len, flg) as ::c_int - } -} - -extern "C" { - pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; - pub fn __system_property_wait( - pi: *const ::prop_info, - __old_serial: u32, - __new_serial_ptr: *mut u32, - __relative_timeout: *const ::timespec, - ) -> bool; -} - -cfg_if! { - if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } else if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else if #[cfg(target_arch = "riscv64")] { - mod riscv64; - pub use self::riscv64::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/align.rs deleted file mode 100644 index 8e949963a..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f32; 8] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/mod.rs deleted file mode 100644 index 9d414dc15..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/riscv64/mod.rs +++ /dev/null @@ -1,353 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = u32; -pub type greg_t = i64; -pub type __u64 = ::c_ulonglong; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::c_uint, - pub st_nlink: ::c_uint, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::c_ulong, - pub st_size: ::off64_t, - pub st_blksize: ::c_int, - __pad2: ::c_int, - pub st_blocks: ::c_long, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused4: ::c_uint, - __unused5: ::c_uint, - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::c_uint, - pub st_nlink: ::c_uint, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::c_ulong, - pub st_size: ::off64_t, - pub st_blksize: ::c_int, - __pad2: ::c_int, - pub st_blocks: ::c_long, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused4: ::c_uint, - __unused5: ::c_uint, - } -} - -pub const O_DIRECT: ::c_int = 0x40000; -pub const O_DIRECTORY: ::c_int = 0x200000; -pub const O_NOFOLLOW: ::c_int = 0x400000; -pub const O_LARGEFILE: ::c_int = 0x100000; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; - -// From NDK's asm/hwcap.h -pub const COMPAT_HWCAP_ISA_I: ::c_ulong = 1 << (b'I' - b'A'); -pub const COMPAT_HWCAP_ISA_M: ::c_ulong = 1 << (b'M' - b'A'); -pub const COMPAT_HWCAP_ISA_A: ::c_ulong = 1 << (b'A' - b'A'); -pub const COMPAT_HWCAP_ISA_F: ::c_ulong = 1 << (b'F' - b'A'); -pub const COMPAT_HWCAP_ISA_D: ::c_ulong = 1 << (b'D' - b'A'); -pub const COMPAT_HWCAP_ISA_C: ::c_ulong = 1 << (b'C' - b'A'); - -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_dup: ::c_long = 23; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_flock: ::c_long = 32; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_renameat: ::c_long = 38; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_mount: ::c_long = 40; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_openat: ::c_long = 56; -pub const SYS_close: ::c_long = 57; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_sync: ::c_long = 81; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_acct: ::c_long = 89; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_personality: ::c_long = 92; -pub const SYS_exit: ::c_long = 93; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_futex: ::c_long = 98; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_kill: ::c_long = 129; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_times: ::c_long = 153; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_uname: ::c_long = 160; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_umask: ::c_long = 166; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_semop: ::c_long = 193; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_socket: ::c_long = 198; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_accept: ::c_long = 202; -pub const SYS_connect: ::c_long = 203; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_brk: ::c_long = 214; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_arch_specific_syscall: ::c_long = 244; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_setns: ::c_long = 268; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_syscalls: ::c_long = 436; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/align.rs deleted file mode 100644 index 7ca870fd0..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/mod.rs deleted file mode 100644 index be6b5011c..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/b64/x86_64/mod.rs +++ /dev/null @@ -1,802 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; -pub type greg_t = i64; -pub type __u64 = ::c_ulonglong; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::c_ulong, - pub st_mode: ::c_uint, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::c_long, - pub st_blocks: ::c_long, - pub st_atime: ::c_long, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::c_long, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::c_long, - pub st_ctime_nsec: ::c_long, - __unused: [::c_long; 3], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::c_ulong, - pub st_mode: ::c_uint, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::c_long, - pub st_blocks: ::c_long, - pub st_atime: ::c_long, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::c_long, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::c_long, - pub st_ctime_nsec: ::c_long, - __unused: [::c_long; 3], - } - - pub struct _libc_xmmreg { - pub element: [u32; 4], - } - - pub struct user_regs_struct { - pub r15: ::c_ulong, - pub r14: ::c_ulong, - pub r13: ::c_ulong, - pub r12: ::c_ulong, - pub rbp: ::c_ulong, - pub rbx: ::c_ulong, - pub r11: ::c_ulong, - pub r10: ::c_ulong, - pub r9: ::c_ulong, - pub r8: ::c_ulong, - pub rax: ::c_ulong, - pub rcx: ::c_ulong, - pub rdx: ::c_ulong, - pub rsi: ::c_ulong, - pub rdi: ::c_ulong, - pub orig_rax: ::c_ulong, - pub rip: ::c_ulong, - pub cs: ::c_ulong, - pub eflags: ::c_ulong, - pub rsp: ::c_ulong, - pub ss: ::c_ulong, - pub fs_base: ::c_ulong, - pub gs_base: ::c_ulong, - pub ds: ::c_ulong, - pub es: ::c_ulong, - pub fs: ::c_ulong, - pub gs: ::c_ulong, - } - - pub struct user { - pub regs: user_regs_struct, - pub u_fpvalid: ::c_int, - pub i387: user_fpregs_struct, - pub u_tsize: ::c_ulong, - pub u_dsize: ::c_ulong, - pub u_ssize: ::c_ulong, - pub start_code: ::c_ulong, - pub start_stack: ::c_ulong, - pub signal: ::c_long, - __reserved: ::c_int, - #[cfg(target_pointer_width = "32")] - __pad1: u32, - pub u_ar0: *mut user_regs_struct, - #[cfg(target_pointer_width = "32")] - __pad2: u32, - pub u_fpstate: *mut user_fpregs_struct, - pub magic: ::c_ulong, - pub u_comm: [::c_char; 32], - pub u_debugreg: [::c_ulong; 8], - pub error_code: ::c_ulong, - pub fault_address: ::c_ulong, - } - -} - -cfg_if! { - if #[cfg(libc_union)] { - s_no_extra_traits! { - pub union __c_anonymous_uc_sigmask { - uc_sigmask: ::sigset_t, - uc_sigmask64: ::sigset64_t, - } - } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for __c_anonymous_uc_sigmask { - fn eq(&self, other: &__c_anonymous_uc_sigmask) -> bool { - unsafe { self.uc_sigmask == other.uc_sigmask } - } - } - impl Eq for __c_anonymous_uc_sigmask {} - impl ::fmt::Debug for __c_anonymous_uc_sigmask { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uc_sigmask") - .field("uc_sigmask", unsafe { &self.uc_sigmask }) - .finish() - } - } - impl ::hash::Hash for __c_anonymous_uc_sigmask { - fn hash(&self, state: &mut H) { - unsafe { self.uc_sigmask.hash(state) } - } - } - } - } - } -} - -s_no_extra_traits! { - pub struct _libc_fpxreg { - pub significand: [u16; 4], - pub exponent: u16, - __padding: [u16; 3], - } - - pub struct _libc_fpstate { - pub cwd: u16, - pub swd: u16, - pub ftw: u16, - pub fop: u16, - pub rip: u64, - pub rdp: u64, - pub mxcsr: u32, - pub mxcr_mask: u32, - pub _st: [_libc_fpxreg; 8], - pub _xmm: [_libc_xmmreg; 16], - __private: [u32; 24], - } - - pub struct mcontext_t { - pub gregs: [greg_t; 23], - pub fpregs: *mut _libc_fpstate, - __private: [u64; 8], - } - - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - pub uc_sigmask64: __c_anonymous_uc_sigmask, - __fpregs_mem: _libc_fpstate, - } - - pub struct user_fpregs_struct { - pub cwd: ::c_ushort, - pub swd: ::c_ushort, - pub ftw: ::c_ushort, - pub fop: ::c_ushort, - pub rip: ::c_ulong, - pub rdp: ::c_ulong, - pub mxcsr: ::c_uint, - pub mxcr_mask: ::c_uint, - pub st_space: [::c_uint; 32], - pub xmm_space: [::c_uint; 64], - padding: [::c_uint; 24], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for _libc_fpxreg { - fn eq(&self, other: &Self) -> bool { - self.significand == other.significand - && self.exponent == other.exponent - // Ignore padding field - } - } - impl Eq for _libc_fpxreg {} - impl ::fmt::Debug for _libc_fpxreg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("_libc_fpxreg") - .field("significand", &self.significand) - .field("exponent", &self.exponent) - // Ignore padding field - .finish() - } - } - impl ::hash::Hash for _libc_fpxreg { - fn hash(&self, state: &mut H) { - self.significand.hash(state); - self.exponent.hash(state); - // Ignore padding field - } - } - - impl PartialEq for _libc_fpstate { - fn eq(&self, other: &Self) -> bool { - self.cwd == other.cwd - && self.swd == other.swd - && self.ftw == other.ftw - && self.fop == other.fop - && self.rip == other.rip - && self.rdp == other.rdp - && self.mxcsr == other.mxcsr - && self.mxcr_mask == other.mxcr_mask - && self._st == other._st - && self._xmm == other._xmm - // Ignore padding field - } - } - impl Eq for _libc_fpstate {} - impl ::fmt::Debug for _libc_fpstate { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("_libc_fpstate") - .field("cwd", &self.cwd) - .field("swd", &self.swd) - .field("ftw", &self.ftw) - .field("fop", &self.fop) - .field("rip", &self.rip) - .field("rdp", &self.rdp) - .field("mxcsr", &self.mxcsr) - .field("mxcr_mask", &self.mxcr_mask) - .field("_st", &self._st) - .field("_xmm", &self._xmm) - // Ignore padding field - .finish() - } - } - impl ::hash::Hash for _libc_fpstate { - fn hash(&self, state: &mut H) { - self.cwd.hash(state); - self.swd.hash(state); - self.ftw.hash(state); - self.fop.hash(state); - self.rip.hash(state); - self.rdp.hash(state); - self.mxcsr.hash(state); - self.mxcr_mask.hash(state); - self._st.hash(state); - self._xmm.hash(state); - // Ignore padding field - } - } - - impl PartialEq for mcontext_t { - fn eq(&self, other: &Self) -> bool { - self.gregs == other.gregs - && self.fpregs == other.fpregs - // Ignore padding field - } - } - impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mcontext_t") - .field("gregs", &self.gregs) - .field("fpregs", &self.fpregs) - // Ignore padding field - .finish() - } - } - impl ::hash::Hash for mcontext_t { - fn hash(&self, state: &mut H) { - self.gregs.hash(state); - self.fpregs.hash(state); - // Ignore padding field - } - } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &Self) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask64 == other.uc_sigmask64 - // Ignore padding field - } - } - impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask64", &self.uc_sigmask64) - // Ignore padding field - .finish() - } - } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask64.hash(state); - // Ignore padding field - } - } - - impl PartialEq for user_fpregs_struct { - fn eq(&self, other: &user_fpregs_struct) -> bool { - self.cwd == other.cwd - && self.swd == other.swd - && self.ftw == other.ftw - && self.fop == other.fop - && self.rip == other.rip - && self.rdp == other.rdp - && self.mxcsr == other.mxcsr - && self.mxcr_mask == other.mxcr_mask - && self.st_space == other.st_space - && self - .xmm_space - .iter() - .zip(other.xmm_space.iter()) - .all(|(a,b)| a == b) - // Ignore padding field - } - } - - impl Eq for user_fpregs_struct {} - - impl ::fmt::Debug for user_fpregs_struct { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("user_fpregs_struct") - .field("cwd", &self.cwd) - .field("swd", &self.swd) - .field("ftw", &self.ftw) - .field("fop", &self.fop) - .field("rip", &self.rip) - .field("rdp", &self.rdp) - .field("mxcsr", &self.mxcsr) - .field("mxcr_mask", &self.mxcr_mask) - .field("st_space", &self.st_space) - // FIXME: .field("xmm_space", &self.xmm_space) - // Ignore padding field - .finish() - } - } - - impl ::hash::Hash for user_fpregs_struct { - fn hash(&self, state: &mut H) { - self.cwd.hash(state); - self.swd.hash(state); - self.ftw.hash(state); - self.fop.hash(state); - self.rip.hash(state); - self.rdp.hash(state); - self.mxcsr.hash(state); - self.mxcr_mask.hash(state); - self.st_space.hash(state); - self.xmm_space.hash(state); - // Ignore padding field - } - } - } -} - -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_LARGEFILE: ::c_int = 0o0100000; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; - -pub const MAP_32BIT: ::c_int = 0x40; - -// Syscall table - -pub const SYS_read: ::c_long = 0; -pub const SYS_write: ::c_long = 1; -pub const SYS_open: ::c_long = 2; -pub const SYS_close: ::c_long = 3; -pub const SYS_stat: ::c_long = 4; -pub const SYS_fstat: ::c_long = 5; -pub const SYS_lstat: ::c_long = 6; -pub const SYS_poll: ::c_long = 7; -pub const SYS_lseek: ::c_long = 8; -pub const SYS_mmap: ::c_long = 9; -pub const SYS_mprotect: ::c_long = 10; -pub const SYS_munmap: ::c_long = 11; -pub const SYS_brk: ::c_long = 12; -pub const SYS_rt_sigaction: ::c_long = 13; -pub const SYS_rt_sigprocmask: ::c_long = 14; -pub const SYS_rt_sigreturn: ::c_long = 15; -pub const SYS_ioctl: ::c_long = 16; -pub const SYS_pread64: ::c_long = 17; -pub const SYS_pwrite64: ::c_long = 18; -pub const SYS_readv: ::c_long = 19; -pub const SYS_writev: ::c_long = 20; -pub const SYS_access: ::c_long = 21; -pub const SYS_pipe: ::c_long = 22; -pub const SYS_select: ::c_long = 23; -pub const SYS_sched_yield: ::c_long = 24; -pub const SYS_mremap: ::c_long = 25; -pub const SYS_msync: ::c_long = 26; -pub const SYS_mincore: ::c_long = 27; -pub const SYS_madvise: ::c_long = 28; -pub const SYS_shmget: ::c_long = 29; -pub const SYS_shmat: ::c_long = 30; -pub const SYS_shmctl: ::c_long = 31; -pub const SYS_dup: ::c_long = 32; -pub const SYS_dup2: ::c_long = 33; -pub const SYS_pause: ::c_long = 34; -pub const SYS_nanosleep: ::c_long = 35; -pub const SYS_getitimer: ::c_long = 36; -pub const SYS_alarm: ::c_long = 37; -pub const SYS_setitimer: ::c_long = 38; -pub const SYS_getpid: ::c_long = 39; -pub const SYS_sendfile: ::c_long = 40; -pub const SYS_socket: ::c_long = 41; -pub const SYS_connect: ::c_long = 42; -pub const SYS_accept: ::c_long = 43; -pub const SYS_sendto: ::c_long = 44; -pub const SYS_recvfrom: ::c_long = 45; -pub const SYS_sendmsg: ::c_long = 46; -pub const SYS_recvmsg: ::c_long = 47; -pub const SYS_shutdown: ::c_long = 48; -pub const SYS_bind: ::c_long = 49; -pub const SYS_listen: ::c_long = 50; -pub const SYS_getsockname: ::c_long = 51; -pub const SYS_getpeername: ::c_long = 52; -pub const SYS_socketpair: ::c_long = 53; -pub const SYS_setsockopt: ::c_long = 54; -pub const SYS_getsockopt: ::c_long = 55; -pub const SYS_clone: ::c_long = 56; -pub const SYS_fork: ::c_long = 57; -pub const SYS_vfork: ::c_long = 58; -pub const SYS_execve: ::c_long = 59; -pub const SYS_exit: ::c_long = 60; -pub const SYS_wait4: ::c_long = 61; -pub const SYS_kill: ::c_long = 62; -pub const SYS_uname: ::c_long = 63; -pub const SYS_semget: ::c_long = 64; -pub const SYS_semop: ::c_long = 65; -pub const SYS_semctl: ::c_long = 66; -pub const SYS_shmdt: ::c_long = 67; -pub const SYS_msgget: ::c_long = 68; -pub const SYS_msgsnd: ::c_long = 69; -pub const SYS_msgrcv: ::c_long = 70; -pub const SYS_msgctl: ::c_long = 71; -pub const SYS_fcntl: ::c_long = 72; -pub const SYS_flock: ::c_long = 73; -pub const SYS_fsync: ::c_long = 74; -pub const SYS_fdatasync: ::c_long = 75; -pub const SYS_truncate: ::c_long = 76; -pub const SYS_ftruncate: ::c_long = 77; -pub const SYS_getdents: ::c_long = 78; -pub const SYS_getcwd: ::c_long = 79; -pub const SYS_chdir: ::c_long = 80; -pub const SYS_fchdir: ::c_long = 81; -pub const SYS_rename: ::c_long = 82; -pub const SYS_mkdir: ::c_long = 83; -pub const SYS_rmdir: ::c_long = 84; -pub const SYS_creat: ::c_long = 85; -pub const SYS_link: ::c_long = 86; -pub const SYS_unlink: ::c_long = 87; -pub const SYS_symlink: ::c_long = 88; -pub const SYS_readlink: ::c_long = 89; -pub const SYS_chmod: ::c_long = 90; -pub const SYS_fchmod: ::c_long = 91; -pub const SYS_chown: ::c_long = 92; -pub const SYS_fchown: ::c_long = 93; -pub const SYS_lchown: ::c_long = 94; -pub const SYS_umask: ::c_long = 95; -pub const SYS_gettimeofday: ::c_long = 96; -pub const SYS_getrlimit: ::c_long = 97; -pub const SYS_getrusage: ::c_long = 98; -pub const SYS_sysinfo: ::c_long = 99; -pub const SYS_times: ::c_long = 100; -pub const SYS_ptrace: ::c_long = 101; -pub const SYS_getuid: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_getgid: ::c_long = 104; -pub const SYS_setuid: ::c_long = 105; -pub const SYS_setgid: ::c_long = 106; -pub const SYS_geteuid: ::c_long = 107; -pub const SYS_getegid: ::c_long = 108; -pub const SYS_setpgid: ::c_long = 109; -pub const SYS_getppid: ::c_long = 110; -pub const SYS_getpgrp: ::c_long = 111; -pub const SYS_setsid: ::c_long = 112; -pub const SYS_setreuid: ::c_long = 113; -pub const SYS_setregid: ::c_long = 114; -pub const SYS_getgroups: ::c_long = 115; -pub const SYS_setgroups: ::c_long = 116; -pub const SYS_setresuid: ::c_long = 117; -pub const SYS_getresuid: ::c_long = 118; -pub const SYS_setresgid: ::c_long = 119; -pub const SYS_getresgid: ::c_long = 120; -pub const SYS_getpgid: ::c_long = 121; -pub const SYS_setfsuid: ::c_long = 122; -pub const SYS_setfsgid: ::c_long = 123; -pub const SYS_getsid: ::c_long = 124; -pub const SYS_capget: ::c_long = 125; -pub const SYS_capset: ::c_long = 126; -pub const SYS_rt_sigpending: ::c_long = 127; -pub const SYS_rt_sigtimedwait: ::c_long = 128; -pub const SYS_rt_sigqueueinfo: ::c_long = 129; -pub const SYS_rt_sigsuspend: ::c_long = 130; -pub const SYS_sigaltstack: ::c_long = 131; -pub const SYS_utime: ::c_long = 132; -pub const SYS_mknod: ::c_long = 133; -pub const SYS_uselib: ::c_long = 134; -pub const SYS_personality: ::c_long = 135; -pub const SYS_ustat: ::c_long = 136; -pub const SYS_statfs: ::c_long = 137; -pub const SYS_fstatfs: ::c_long = 138; -pub const SYS_sysfs: ::c_long = 139; -pub const SYS_getpriority: ::c_long = 140; -pub const SYS_setpriority: ::c_long = 141; -pub const SYS_sched_setparam: ::c_long = 142; -pub const SYS_sched_getparam: ::c_long = 143; -pub const SYS_sched_setscheduler: ::c_long = 144; -pub const SYS_sched_getscheduler: ::c_long = 145; -pub const SYS_sched_get_priority_max: ::c_long = 146; -pub const SYS_sched_get_priority_min: ::c_long = 147; -pub const SYS_sched_rr_get_interval: ::c_long = 148; -pub const SYS_mlock: ::c_long = 149; -pub const SYS_munlock: ::c_long = 150; -pub const SYS_mlockall: ::c_long = 151; -pub const SYS_munlockall: ::c_long = 152; -pub const SYS_vhangup: ::c_long = 153; -pub const SYS_modify_ldt: ::c_long = 154; -pub const SYS_pivot_root: ::c_long = 155; -// FIXME: SYS__sysctl is in the NDK sources but for some reason is -// not available in the tests -// pub const SYS__sysctl: ::c_long = 156; -pub const SYS_prctl: ::c_long = 157; -pub const SYS_arch_prctl: ::c_long = 158; -pub const SYS_adjtimex: ::c_long = 159; -pub const SYS_setrlimit: ::c_long = 160; -pub const SYS_chroot: ::c_long = 161; -pub const SYS_sync: ::c_long = 162; -pub const SYS_acct: ::c_long = 163; -pub const SYS_settimeofday: ::c_long = 164; -pub const SYS_mount: ::c_long = 165; -pub const SYS_umount2: ::c_long = 166; -pub const SYS_swapon: ::c_long = 167; -pub const SYS_swapoff: ::c_long = 168; -pub const SYS_reboot: ::c_long = 169; -pub const SYS_sethostname: ::c_long = 170; -pub const SYS_setdomainname: ::c_long = 171; -pub const SYS_iopl: ::c_long = 172; -pub const SYS_ioperm: ::c_long = 173; -pub const SYS_create_module: ::c_long = 174; -pub const SYS_init_module: ::c_long = 175; -pub const SYS_delete_module: ::c_long = 176; -pub const SYS_get_kernel_syms: ::c_long = 177; -pub const SYS_query_module: ::c_long = 178; -pub const SYS_quotactl: ::c_long = 179; -pub const SYS_nfsservctl: ::c_long = 180; -pub const SYS_getpmsg: ::c_long = 181; -pub const SYS_putpmsg: ::c_long = 182; -pub const SYS_afs_syscall: ::c_long = 183; -pub const SYS_tuxcall: ::c_long = 184; -pub const SYS_security: ::c_long = 185; -pub const SYS_gettid: ::c_long = 186; -pub const SYS_readahead: ::c_long = 187; -pub const SYS_setxattr: ::c_long = 188; -pub const SYS_lsetxattr: ::c_long = 189; -pub const SYS_fsetxattr: ::c_long = 190; -pub const SYS_getxattr: ::c_long = 191; -pub const SYS_lgetxattr: ::c_long = 192; -pub const SYS_fgetxattr: ::c_long = 193; -pub const SYS_listxattr: ::c_long = 194; -pub const SYS_llistxattr: ::c_long = 195; -pub const SYS_flistxattr: ::c_long = 196; -pub const SYS_removexattr: ::c_long = 197; -pub const SYS_lremovexattr: ::c_long = 198; -pub const SYS_fremovexattr: ::c_long = 199; -pub const SYS_tkill: ::c_long = 200; -pub const SYS_time: ::c_long = 201; -pub const SYS_futex: ::c_long = 202; -pub const SYS_sched_setaffinity: ::c_long = 203; -pub const SYS_sched_getaffinity: ::c_long = 204; -pub const SYS_set_thread_area: ::c_long = 205; -pub const SYS_io_setup: ::c_long = 206; -pub const SYS_io_destroy: ::c_long = 207; -pub const SYS_io_getevents: ::c_long = 208; -pub const SYS_io_submit: ::c_long = 209; -pub const SYS_io_cancel: ::c_long = 210; -pub const SYS_get_thread_area: ::c_long = 211; -pub const SYS_lookup_dcookie: ::c_long = 212; -pub const SYS_epoll_create: ::c_long = 213; -pub const SYS_epoll_ctl_old: ::c_long = 214; -pub const SYS_epoll_wait_old: ::c_long = 215; -pub const SYS_remap_file_pages: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_set_tid_address: ::c_long = 218; -pub const SYS_restart_syscall: ::c_long = 219; -pub const SYS_semtimedop: ::c_long = 220; -pub const SYS_fadvise64: ::c_long = 221; -pub const SYS_timer_create: ::c_long = 222; -pub const SYS_timer_settime: ::c_long = 223; -pub const SYS_timer_gettime: ::c_long = 224; -pub const SYS_timer_getoverrun: ::c_long = 225; -pub const SYS_timer_delete: ::c_long = 226; -pub const SYS_clock_settime: ::c_long = 227; -pub const SYS_clock_gettime: ::c_long = 228; -pub const SYS_clock_getres: ::c_long = 229; -pub const SYS_clock_nanosleep: ::c_long = 230; -pub const SYS_exit_group: ::c_long = 231; -pub const SYS_epoll_wait: ::c_long = 232; -pub const SYS_epoll_ctl: ::c_long = 233; -pub const SYS_tgkill: ::c_long = 234; -pub const SYS_utimes: ::c_long = 235; -pub const SYS_vserver: ::c_long = 236; -pub const SYS_mbind: ::c_long = 237; -pub const SYS_set_mempolicy: ::c_long = 238; -pub const SYS_get_mempolicy: ::c_long = 239; -pub const SYS_mq_open: ::c_long = 240; -pub const SYS_mq_unlink: ::c_long = 241; -pub const SYS_mq_timedsend: ::c_long = 242; -pub const SYS_mq_timedreceive: ::c_long = 243; -pub const SYS_mq_notify: ::c_long = 244; -pub const SYS_mq_getsetattr: ::c_long = 245; -pub const SYS_kexec_load: ::c_long = 246; -pub const SYS_waitid: ::c_long = 247; -pub const SYS_add_key: ::c_long = 248; -pub const SYS_request_key: ::c_long = 249; -pub const SYS_keyctl: ::c_long = 250; -pub const SYS_ioprio_set: ::c_long = 251; -pub const SYS_ioprio_get: ::c_long = 252; -pub const SYS_inotify_init: ::c_long = 253; -pub const SYS_inotify_add_watch: ::c_long = 254; -pub const SYS_inotify_rm_watch: ::c_long = 255; -pub const SYS_migrate_pages: ::c_long = 256; -pub const SYS_openat: ::c_long = 257; -pub const SYS_mkdirat: ::c_long = 258; -pub const SYS_mknodat: ::c_long = 259; -pub const SYS_fchownat: ::c_long = 260; -pub const SYS_futimesat: ::c_long = 261; -pub const SYS_newfstatat: ::c_long = 262; -pub const SYS_unlinkat: ::c_long = 263; -pub const SYS_renameat: ::c_long = 264; -pub const SYS_linkat: ::c_long = 265; -pub const SYS_symlinkat: ::c_long = 266; -pub const SYS_readlinkat: ::c_long = 267; -pub const SYS_fchmodat: ::c_long = 268; -pub const SYS_faccessat: ::c_long = 269; -pub const SYS_pselect6: ::c_long = 270; -pub const SYS_ppoll: ::c_long = 271; -pub const SYS_unshare: ::c_long = 272; -pub const SYS_set_robust_list: ::c_long = 273; -pub const SYS_get_robust_list: ::c_long = 274; -pub const SYS_splice: ::c_long = 275; -pub const SYS_tee: ::c_long = 276; -pub const SYS_sync_file_range: ::c_long = 277; -pub const SYS_vmsplice: ::c_long = 278; -pub const SYS_move_pages: ::c_long = 279; -pub const SYS_utimensat: ::c_long = 280; -pub const SYS_epoll_pwait: ::c_long = 281; -pub const SYS_signalfd: ::c_long = 282; -pub const SYS_timerfd_create: ::c_long = 283; -pub const SYS_eventfd: ::c_long = 284; -pub const SYS_fallocate: ::c_long = 285; -pub const SYS_timerfd_settime: ::c_long = 286; -pub const SYS_timerfd_gettime: ::c_long = 287; -pub const SYS_accept4: ::c_long = 288; -pub const SYS_signalfd4: ::c_long = 289; -pub const SYS_eventfd2: ::c_long = 290; -pub const SYS_epoll_create1: ::c_long = 291; -pub const SYS_dup3: ::c_long = 292; -pub const SYS_pipe2: ::c_long = 293; -pub const SYS_inotify_init1: ::c_long = 294; -pub const SYS_preadv: ::c_long = 295; -pub const SYS_pwritev: ::c_long = 296; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 297; -pub const SYS_perf_event_open: ::c_long = 298; -pub const SYS_recvmmsg: ::c_long = 299; -pub const SYS_fanotify_init: ::c_long = 300; -pub const SYS_fanotify_mark: ::c_long = 301; -pub const SYS_prlimit64: ::c_long = 302; -pub const SYS_name_to_handle_at: ::c_long = 303; -pub const SYS_open_by_handle_at: ::c_long = 304; -pub const SYS_clock_adjtime: ::c_long = 305; -pub const SYS_syncfs: ::c_long = 306; -pub const SYS_sendmmsg: ::c_long = 307; -pub const SYS_setns: ::c_long = 308; -pub const SYS_getcpu: ::c_long = 309; -pub const SYS_process_vm_readv: ::c_long = 310; -pub const SYS_process_vm_writev: ::c_long = 311; -pub const SYS_kcmp: ::c_long = 312; -pub const SYS_finit_module: ::c_long = 313; -pub const SYS_sched_setattr: ::c_long = 314; -pub const SYS_sched_getattr: ::c_long = 315; -pub const SYS_renameat2: ::c_long = 316; -pub const SYS_seccomp: ::c_long = 317; -pub const SYS_getrandom: ::c_long = 318; -pub const SYS_memfd_create: ::c_long = 319; -pub const SYS_kexec_file_load: ::c_long = 320; -pub const SYS_bpf: ::c_long = 321; -pub const SYS_execveat: ::c_long = 322; -pub const SYS_userfaultfd: ::c_long = 323; -pub const SYS_membarrier: ::c_long = 324; -pub const SYS_mlock2: ::c_long = 325; -pub const SYS_copy_file_range: ::c_long = 326; -pub const SYS_preadv2: ::c_long = 327; -pub const SYS_pwritev2: ::c_long = 328; -pub const SYS_pkey_mprotect: ::c_long = 329; -pub const SYS_pkey_alloc: ::c_long = 330; -pub const SYS_pkey_free: ::c_long = 331; -pub const SYS_statx: ::c_long = 332; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; - -// offsets in user_regs_structs, from sys/reg.h -pub const R15: ::c_int = 0; -pub const R14: ::c_int = 1; -pub const R13: ::c_int = 2; -pub const R12: ::c_int = 3; -pub const RBP: ::c_int = 4; -pub const RBX: ::c_int = 5; -pub const R11: ::c_int = 6; -pub const R10: ::c_int = 7; -pub const R9: ::c_int = 8; -pub const R8: ::c_int = 9; -pub const RAX: ::c_int = 10; -pub const RCX: ::c_int = 11; -pub const RDX: ::c_int = 12; -pub const RSI: ::c_int = 13; -pub const RDI: ::c_int = 14; -pub const ORIG_RAX: ::c_int = 15; -pub const RIP: ::c_int = 16; -pub const CS: ::c_int = 17; -pub const EFLAGS: ::c_int = 18; -pub const RSP: ::c_int = 19; -pub const SS: ::c_int = 20; -pub const FS_BASE: ::c_int = 21; -pub const GS_BASE: ::c_int = 22; -pub const DS: ::c_int = 23; -pub const ES: ::c_int = 24; -pub const FS: ::c_int = 25; -pub const GS: ::c_int = 26; - -// offsets in mcontext_t.gregs from sys/ucontext.h -pub const REG_R8: ::c_int = 0; -pub const REG_R9: ::c_int = 1; -pub const REG_R10: ::c_int = 2; -pub const REG_R11: ::c_int = 3; -pub const REG_R12: ::c_int = 4; -pub const REG_R13: ::c_int = 5; -pub const REG_R14: ::c_int = 6; -pub const REG_R15: ::c_int = 7; -pub const REG_RDI: ::c_int = 8; -pub const REG_RSI: ::c_int = 9; -pub const REG_RBP: ::c_int = 10; -pub const REG_RBX: ::c_int = 11; -pub const REG_RDX: ::c_int = 12; -pub const REG_RAX: ::c_int = 13; -pub const REG_RCX: ::c_int = 14; -pub const REG_RSP: ::c_int = 15; -pub const REG_RIP: ::c_int = 16; -pub const REG_EFL: ::c_int = 17; -pub const REG_CSGSFS: ::c_int = 18; -pub const REG_ERR: ::c_int = 19; -pub const REG_TRAPNO: ::c_int = 20; -pub const REG_OLDMASK: ::c_int = 21; -pub const REG_CR2: ::c_int = 22; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/mod.rs deleted file mode 100644 index f3622fdb0..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/android/mod.rs +++ /dev/null @@ -1,3659 +0,0 @@ -//! Android-specific definitions for linux-like values - -pub type clock_t = ::c_long; -pub type time_t = ::c_long; -pub type suseconds_t = ::c_long; -pub type off_t = ::c_long; -pub type blkcnt_t = ::c_ulong; -pub type blksize_t = ::c_ulong; -pub type nlink_t = u32; -pub type useconds_t = u32; -pub type pthread_t = ::c_long; -pub type pthread_mutexattr_t = ::c_long; -pub type pthread_rwlockattr_t = ::c_long; -pub type pthread_barrierattr_t = ::c_int; -pub type pthread_condattr_t = ::c_long; -pub type pthread_key_t = ::c_int; -pub type fsfilcnt_t = ::c_ulong; -pub type fsblkcnt_t = ::c_ulong; -pub type nfds_t = ::c_uint; -pub type rlim_t = ::c_ulong; -pub type dev_t = ::c_ulong; -pub type ino_t = ::c_ulong; -pub type ino64_t = u64; -pub type __CPU_BITTYPE = ::c_ulong; -pub type idtype_t = ::c_int; -pub type loff_t = ::c_longlong; -pub type __kernel_loff_t = ::c_longlong; -pub type __kernel_pid_t = ::c_int; - -pub type __u8 = ::c_uchar; -pub type __u16 = ::c_ushort; -pub type __s16 = ::c_short; -pub type __u32 = ::c_uint; -pub type __s32 = ::c_int; - -// linux/elf.h - -pub type Elf32_Addr = u32; -pub type Elf32_Half = u16; -pub type Elf32_Off = u32; -pub type Elf32_Word = u32; - -pub type Elf64_Addr = u64; -pub type Elf64_Half = u16; -pub type Elf64_Off = u64; -pub type Elf64_Word = u32; -pub type Elf64_Xword = u64; - -s! { - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct __fsid_t { - __val: [::c_int; 2], - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::size_t, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::size_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - } - - pub struct termios2 { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; 19], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - } - - pub struct mallinfo { - pub arena: ::size_t, - pub ordblks: ::size_t, - pub smblks: ::size_t, - pub hblks: ::size_t, - pub hblkhd: ::size_t, - pub usmblks: ::size_t, - pub fsmblks: ::size_t, - pub uordblks: ::size_t, - pub fordblks: ::size_t, - pub keepcost: ::size_t, - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::__kernel_loff_t, - pub l_len: ::__kernel_loff_t, - pub l_pid: ::__kernel_pid_t, - } - - pub struct cpu_set_t { - #[cfg(target_pointer_width = "64")] - __bits: [__CPU_BITTYPE; 16], - #[cfg(target_pointer_width = "32")] - __bits: [__CPU_BITTYPE; 1], - } - - pub struct sem_t { - count: ::c_uint, - #[cfg(target_pointer_width = "64")] - __reserved: [::c_int; 3], - } - - pub struct exit_status { - pub e_termination: ::c_short, - pub e_exit: ::c_short, - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - #[cfg(target_pointer_width = "64")] - __f_reserved: [u32; 6], - } - - pub struct signalfd_siginfo { - pub ssi_signo: u32, - pub ssi_errno: i32, - pub ssi_code: i32, - pub ssi_pid: u32, - pub ssi_uid: u32, - pub ssi_fd: i32, - pub ssi_tid: u32, - pub ssi_band: u32, - pub ssi_overrun: u32, - pub ssi_trapno: u32, - pub ssi_status: i32, - pub ssi_int: i32, - pub ssi_ptr: ::c_ulonglong, - pub ssi_utime: ::c_ulonglong, - pub ssi_stime: ::c_ulonglong, - pub ssi_addr: ::c_ulonglong, - pub ssi_addr_lsb: u16, - _pad2: u16, - pub ssi_syscall: i32, - pub ssi_call_addr: u64, - pub ssi_arch: u32, - _pad: [u8; 28], - } - - pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, - } - - pub struct ucred { - pub pid: ::pid_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - } - - pub struct genlmsghdr { - pub cmd: u8, - pub version: u8, - pub reserved: u16, - } - - pub struct nlmsghdr { - pub nlmsg_len: u32, - pub nlmsg_type: u16, - pub nlmsg_flags: u16, - pub nlmsg_seq: u32, - pub nlmsg_pid: u32, - } - - pub struct nlmsgerr { - pub error: ::c_int, - pub msg: nlmsghdr, - } - - pub struct nl_pktinfo { - pub group: u32, - } - - pub struct nl_mmap_req { - pub nm_block_size: ::c_uint, - pub nm_block_nr: ::c_uint, - pub nm_frame_size: ::c_uint, - pub nm_frame_nr: ::c_uint, - } - - pub struct nl_mmap_hdr { - pub nm_status: ::c_uint, - pub nm_len: ::c_uint, - pub nm_group: u32, - pub nm_pid: u32, - pub nm_uid: u32, - pub nm_gid: u32, - } - - pub struct nlattr { - pub nla_len: u16, - pub nla_type: u16, - } - - pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_int, - } - - pub struct inotify_event { - pub wd: ::c_int, - pub mask: u32, - pub cookie: u32, - pub len: u32 - } - - pub struct sock_extended_err { - pub ee_errno: u32, - pub ee_origin: u8, - pub ee_type: u8, - pub ee_code: u8, - pub ee_pad: u8, - pub ee_info: u32, - pub ee_data: u32, - } - - pub struct regex_t { - re_magic: ::c_int, - re_nsub: ::size_t, - re_endp: *const ::c_char, - re_guts: *mut ::c_void, - } - - pub struct regmatch_t { - pub rm_so: ::ssize_t, - pub rm_eo: ::ssize_t, - } - - pub struct sockaddr_vm { - pub svm_family: ::sa_family_t, - pub svm_reserved1: ::c_ushort, - pub svm_port: ::c_uint, - pub svm_cid: ::c_uint, - pub svm_zero: [u8; 4] - } - - // linux/elf.h - - pub struct Elf32_Phdr { - pub p_type: Elf32_Word, - pub p_offset: Elf32_Off, - pub p_vaddr: Elf32_Addr, - pub p_paddr: Elf32_Addr, - pub p_filesz: Elf32_Word, - pub p_memsz: Elf32_Word, - pub p_flags: Elf32_Word, - pub p_align: Elf32_Word, - } - - pub struct Elf64_Phdr { - pub p_type: Elf64_Word, - pub p_flags: Elf64_Word, - pub p_offset: Elf64_Off, - pub p_vaddr: Elf64_Addr, - pub p_paddr: Elf64_Addr, - pub p_filesz: Elf64_Xword, - pub p_memsz: Elf64_Xword, - pub p_align: Elf64_Xword, - } - - // link.h - - pub struct dl_phdr_info { - #[cfg(target_pointer_width = "64")] - pub dlpi_addr: Elf64_Addr, - #[cfg(target_pointer_width = "32")] - pub dlpi_addr: Elf32_Addr, - - pub dlpi_name: *const ::c_char, - - #[cfg(target_pointer_width = "64")] - pub dlpi_phdr: *const Elf64_Phdr, - #[cfg(target_pointer_width = "32")] - pub dlpi_phdr: *const Elf32_Phdr, - - #[cfg(target_pointer_width = "64")] - pub dlpi_phnum: Elf64_Half, - #[cfg(target_pointer_width = "32")] - pub dlpi_phnum: Elf32_Half, - - // These fields were added in Android R - pub dlpi_adds: ::c_ulonglong, - pub dlpi_subs: ::c_ulonglong, - pub dlpi_tls_modid: ::size_t, - pub dlpi_tls_data: *mut ::c_void, - } - - // linux/filter.h - pub struct sock_filter { - pub code: ::__u16, - pub jt: ::__u8, - pub jf: ::__u8, - pub k: ::__u32, - } - - pub struct sock_fprog { - pub len: ::c_ushort, - pub filter: *mut sock_filter, - } - - // linux/seccomp.h - pub struct seccomp_data { - pub nr: ::c_int, - pub arch: ::__u32, - pub instruction_pointer: ::__u64, - pub args: [::__u64; 6], - } - - pub struct ptrace_peeksiginfo_args { - pub off: ::__u64, - pub flags: ::__u32, - pub nr: ::__s32, - } - - // linux/input.h - pub struct input_event { - pub time: ::timeval, - pub type_: ::__u16, - pub code: ::__u16, - pub value: ::__s32, - } - - pub struct input_id { - pub bustype: ::__u16, - pub vendor: ::__u16, - pub product: ::__u16, - pub version: ::__u16, - } - - pub struct input_absinfo { - pub value: ::__s32, - pub minimum: ::__s32, - pub maximum: ::__s32, - pub fuzz: ::__s32, - pub flat: ::__s32, - pub resolution: ::__s32, - } - - pub struct input_keymap_entry { - pub flags: ::__u8, - pub len: ::__u8, - pub index: ::__u16, - pub keycode: ::__u32, - pub scancode: [::__u8; 32], - } - - pub struct input_mask { - pub type_: ::__u32, - pub codes_size: ::__u32, - pub codes_ptr: ::__u64, - } - - pub struct ff_replay { - pub length: ::__u16, - pub delay: ::__u16, - } - - pub struct ff_trigger { - pub button: ::__u16, - pub interval: ::__u16, - } - - pub struct ff_envelope { - pub attack_length: ::__u16, - pub attack_level: ::__u16, - pub fade_length: ::__u16, - pub fade_level: ::__u16, - } - - pub struct ff_constant_effect { - pub level: ::__s16, - pub envelope: ff_envelope, - } - - pub struct ff_ramp_effect { - pub start_level: ::__s16, - pub end_level: ::__s16, - pub envelope: ff_envelope, - } - - pub struct ff_condition_effect { - pub right_saturation: ::__u16, - pub left_saturation: ::__u16, - - pub right_coeff: ::__s16, - pub left_coeff: ::__s16, - - pub deadband: ::__u16, - pub center: ::__s16, - } - - pub struct ff_periodic_effect { - pub waveform: ::__u16, - pub period: ::__u16, - pub magnitude: ::__s16, - pub offset: ::__s16, - pub phase: ::__u16, - - pub envelope: ff_envelope, - - pub custom_len: ::__u32, - pub custom_data: *mut ::__s16, - } - - pub struct ff_rumble_effect { - pub strong_magnitude: ::__u16, - pub weak_magnitude: ::__u16, - } - - pub struct ff_effect { - pub type_: ::__u16, - pub id: ::__s16, - pub direction: ::__u16, - pub trigger: ff_trigger, - pub replay: ff_replay, - // FIXME this is actually a union - #[cfg(target_pointer_width = "64")] - pub u: [u64; 4], - #[cfg(target_pointer_width = "32")] - pub u: [u32; 7], - } - - // linux/uinput.h - pub struct uinput_ff_upload { - pub request_id: ::__u32, - pub retval: ::__s32, - pub effect: ff_effect, - pub old: ff_effect, - } - - pub struct uinput_ff_erase { - pub request_id: ::__u32, - pub retval: ::__s32, - pub effect_id: ::__u32, - } - - pub struct uinput_abs_setup { - pub code: ::__u16, - pub absinfo: input_absinfo, - } - - pub struct option { - pub name: *const ::c_char, - pub has_arg: ::c_int, - pub flag: *mut ::c_int, - pub val: ::c_int, - } -} - -s_no_extra_traits! { - pub struct sockaddr_nl { - pub nl_family: ::sa_family_t, - nl_pad: ::c_ushort, - pub nl_pid: u32, - pub nl_groups: u32 - } - - pub struct dirent { - pub d_ino: u64, - pub d_off: i64, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], - } - - pub struct dirent64 { - pub d_ino: u64, - pub d_off: i64, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct lastlog { - ll_time: ::time_t, - ll_line: [::c_char; UT_LINESIZE], - ll_host: [::c_char; UT_HOSTSIZE], - } - - pub struct utmp { - pub ut_type: ::c_short, - pub ut_pid: ::pid_t, - pub ut_line: [::c_char; UT_LINESIZE], - pub ut_id: [::c_char; 4], - pub ut_user: [::c_char; UT_NAMESIZE], - pub ut_host: [::c_char; UT_HOSTSIZE], - pub ut_exit: exit_status, - pub ut_session: ::c_long, - pub ut_tv: ::timeval, - pub ut_addr_v6: [i32; 4], - unused: [::c_char; 20], - } - - pub struct sockaddr_alg { - pub salg_family: ::sa_family_t, - pub salg_type: [::c_uchar; 14], - pub salg_feat: u32, - pub salg_mask: u32, - pub salg_name: [::c_uchar; 64], - } - - pub struct uinput_setup { - pub id: input_id, - pub name: [::c_char; UINPUT_MAX_NAME_SIZE], - pub ff_effects_max: ::__u32, - } - - pub struct uinput_user_dev { - pub name: [::c_char; UINPUT_MAX_NAME_SIZE], - pub id: input_id, - pub ff_effects_max: ::__u32, - pub absmax: [::__s32; ABS_CNT], - pub absmin: [::__s32; ABS_CNT], - pub absfuzz: [::__s32; ABS_CNT], - pub absflat: [::__s32; ABS_CNT], - } - - /// WARNING: The `PartialEq`, `Eq` and `Hash` implementations of this - /// type are unsound and will be removed in the future. - #[deprecated( - note = "this struct has unsafe trait implementations that will be \ - removed in the future", - since = "0.2.80" - )] - pub struct af_alg_iv { - pub ivlen: u32, - pub iv: [::c_uchar; 0], - } - - pub struct prop_info { - __name: [::c_char; 32], - __serial: ::c_uint, - __value: [[::c_char; 4]; 23], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for sockaddr_nl { - fn eq(&self, other: &sockaddr_nl) -> bool { - self.nl_family == other.nl_family && - self.nl_pid == other.nl_pid && - self.nl_groups == other.nl_groups - } - } - impl Eq for sockaddr_nl {} - impl ::fmt::Debug for sockaddr_nl { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_nl") - .field("nl_family", &self.nl_family) - .field("nl_pid", &self.nl_pid) - .field("nl_groups", &self.nl_groups) - .finish() - } - } - impl ::hash::Hash for sockaddr_nl { - fn hash(&self, state: &mut H) { - self.nl_family.hash(state); - self.nl_pid.hash(state); - self.nl_groups.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for dirent {} - - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for dirent64 { - fn eq(&self, other: &dirent64) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for dirent64 {} - - impl ::fmt::Debug for dirent64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent64") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - - impl ::hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for siginfo_t { - fn eq(&self, other: &siginfo_t) -> bool { - self.si_signo == other.si_signo - && self.si_errno == other.si_errno - && self.si_code == other.si_code - // Ignore _pad - // Ignore _align - } - } - - impl Eq for siginfo_t {} - - impl ::fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("siginfo_t") - .field("si_signo", &self.si_signo) - .field("si_errno", &self.si_errno) - .field("si_code", &self.si_code) - // Ignore _pad - // Ignore _align - .finish() - } - } - - impl ::hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { - self.si_signo.hash(state); - self.si_errno.hash(state); - self.si_code.hash(state); - // Ignore _pad - // Ignore _align - } - } - - impl PartialEq for lastlog { - fn eq(&self, other: &lastlog) -> bool { - self.ll_time == other.ll_time - && self - .ll_line - .iter() - .zip(other.ll_line.iter()) - .all(|(a,b)| a == b) - && self - .ll_host - .iter() - .zip(other.ll_host.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for lastlog {} - - impl ::fmt::Debug for lastlog { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("lastlog") - .field("ll_time", &self.ll_time) - .field("ll_line", &self.ll_line) - // FIXME: .field("ll_host", &self.ll_host) - .finish() - } - } - - impl ::hash::Hash for lastlog { - fn hash(&self, state: &mut H) { - self.ll_time.hash(state); - self.ll_line.hash(state); - self.ll_host.hash(state); - } - } - - impl PartialEq for utmp { - fn eq(&self, other: &utmp) -> bool { - self.ut_type == other.ut_type - && self.ut_pid == other.ut_pid - && self - .ut_line - .iter() - .zip(other.ut_line.iter()) - .all(|(a,b)| a == b) - && self.ut_id == other.ut_id - && self - .ut_user - .iter() - .zip(other.ut_user.iter()) - .all(|(a,b)| a == b) - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) - && self.ut_exit == other.ut_exit - && self.ut_session == other.ut_session - && self.ut_tv == other.ut_tv - && self.ut_addr_v6 == other.ut_addr_v6 - && self.unused == other.unused - } - } - - impl Eq for utmp {} - - impl ::fmt::Debug for utmp { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utmp") - .field("ut_type", &self.ut_type) - .field("ut_pid", &self.ut_pid) - .field("ut_line", &self.ut_line) - .field("ut_id", &self.ut_id) - .field("ut_user", &self.ut_user) - // FIXME: .field("ut_host", &self.ut_host) - .field("ut_exit", &self.ut_exit) - .field("ut_session", &self.ut_session) - .field("ut_tv", &self.ut_tv) - .field("ut_addr_v6", &self.ut_addr_v6) - .field("unused", &self.unused) - .finish() - } - } - - impl ::hash::Hash for utmp { - fn hash(&self, state: &mut H) { - self.ut_type.hash(state); - self.ut_pid.hash(state); - self.ut_line.hash(state); - self.ut_id.hash(state); - self.ut_user.hash(state); - self.ut_host.hash(state); - self.ut_exit.hash(state); - self.ut_session.hash(state); - self.ut_tv.hash(state); - self.ut_addr_v6.hash(state); - self.unused.hash(state); - } - } - - impl PartialEq for sockaddr_alg { - fn eq(&self, other: &sockaddr_alg) -> bool { - self.salg_family == other.salg_family - && self - .salg_type - .iter() - .zip(other.salg_type.iter()) - .all(|(a, b)| a == b) - && self.salg_feat == other.salg_feat - && self.salg_mask == other.salg_mask - && self - .salg_name - .iter() - .zip(other.salg_name.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_alg {} - - impl ::fmt::Debug for sockaddr_alg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_alg") - .field("salg_family", &self.salg_family) - .field("salg_type", &self.salg_type) - .field("salg_feat", &self.salg_feat) - .field("salg_mask", &self.salg_mask) - .field("salg_name", &&self.salg_name[..]) - .finish() - } - } - - impl ::hash::Hash for sockaddr_alg { - fn hash(&self, state: &mut H) { - self.salg_family.hash(state); - self.salg_type.hash(state); - self.salg_feat.hash(state); - self.salg_mask.hash(state); - self.salg_name.hash(state); - } - } - - impl PartialEq for uinput_setup { - fn eq(&self, other: &uinput_setup) -> bool { - self.id == other.id - && self.name[..] == other.name[..] - && self.ff_effects_max == other.ff_effects_max - } - } - impl Eq for uinput_setup {} - - impl ::fmt::Debug for uinput_setup { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uinput_setup") - .field("id", &self.id) - .field("name", &&self.name[..]) - .field("ff_effects_max", &self.ff_effects_max) - .finish() - } - } - - impl ::hash::Hash for uinput_setup { - fn hash(&self, state: &mut H) { - self.id.hash(state); - self.name.hash(state); - self.ff_effects_max.hash(state); - } - } - - impl PartialEq for uinput_user_dev { - fn eq(&self, other: &uinput_user_dev) -> bool { - self.name[..] == other.name[..] - && self.id == other.id - && self.ff_effects_max == other.ff_effects_max - && self.absmax[..] == other.absmax[..] - && self.absmin[..] == other.absmin[..] - && self.absfuzz[..] == other.absfuzz[..] - && self.absflat[..] == other.absflat[..] - } - } - impl Eq for uinput_user_dev {} - - impl ::fmt::Debug for uinput_user_dev { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uinput_setup") - .field("name", &&self.name[..]) - .field("id", &self.id) - .field("ff_effects_max", &self.ff_effects_max) - .field("absmax", &&self.absmax[..]) - .field("absmin", &&self.absmin[..]) - .field("absfuzz", &&self.absfuzz[..]) - .field("absflat", &&self.absflat[..]) - .finish() - } - } - - impl ::hash::Hash for uinput_user_dev { - fn hash(&self, state: &mut H) { - self.name.hash(state); - self.id.hash(state); - self.ff_effects_max.hash(state); - self.absmax.hash(state); - self.absmin.hash(state); - self.absfuzz.hash(state); - self.absflat.hash(state); - } - } - - #[allow(deprecated)] - impl af_alg_iv { - fn as_slice(&self) -> &[u8] { - unsafe { - ::core::slice::from_raw_parts( - self.iv.as_ptr(), - self.ivlen as usize - ) - } - } - } - - #[allow(deprecated)] - impl PartialEq for af_alg_iv { - fn eq(&self, other: &af_alg_iv) -> bool { - *self.as_slice() == *other.as_slice() - } - } - - #[allow(deprecated)] - impl Eq for af_alg_iv {} - - #[allow(deprecated)] - impl ::fmt::Debug for af_alg_iv { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("af_alg_iv") - .field("ivlen", &self.ivlen) - .finish() - } - } - - #[allow(deprecated)] - impl ::hash::Hash for af_alg_iv { - fn hash(&self, state: &mut H) { - self.as_slice().hash(state); - } - } - - impl PartialEq for prop_info { - fn eq(&self, other: &prop_info) -> bool { - self.__name == other.__name && - self.__serial == other.__serial && - self.__value == other.__value - } - } - impl Eq for prop_info {} - impl ::fmt::Debug for prop_info { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("prop_info") - .field("__name", &self.__name) - .field("__serial", &self.__serial) - .field("__value", &self.__value) - .finish() - } - } - } -} - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MS_NOUSER: ::c_ulong = 0xffffffff80000000; -pub const MS_RMT_MASK: ::c_ulong = 0x02800051; - -pub const O_TRUNC: ::c_int = 512; -pub const O_CLOEXEC: ::c_int = 0x80000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_NOATIME: ::c_int = 0o1000000; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -// sys/eventfd.h -pub const EFD_SEMAPHORE: ::c_int = 0x1; -pub const EFD_CLOEXEC: ::c_int = O_CLOEXEC; -pub const EFD_NONBLOCK: ::c_int = O_NONBLOCK; - -// sys/timerfd.h -pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC; -pub const TFD_NONBLOCK: ::c_int = O_NONBLOCK; -pub const TFD_TIMER_ABSTIME: ::c_int = 1; -pub const TFD_TIMER_CANCEL_ON_SET: ::c_int = 2; - -pub const USER_PROCESS: ::c_short = 7; - -pub const _POSIX_VDISABLE: ::cc_t = 0; - -// linux/falloc.h -pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01; -pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02; -pub const FALLOC_FL_NO_HIDE_STALE: ::c_int = 0x04; -pub const FALLOC_FL_COLLAPSE_RANGE: ::c_int = 0x08; -pub const FALLOC_FL_ZERO_RANGE: ::c_int = 0x10; -pub const FALLOC_FL_INSERT_RANGE: ::c_int = 0x20; -pub const FALLOC_FL_UNSHARE_RANGE: ::c_int = 0x40; - -pub const BUFSIZ: ::c_uint = 1024; -pub const FILENAME_MAX: ::c_uint = 4096; -pub const FOPEN_MAX: ::c_uint = 20; -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; -pub const L_tmpnam: ::c_uint = 4096; -pub const TMP_MAX: ::c_uint = 308915776; -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_2_SYMLINKS: ::c_int = 7; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 8; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 9; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 10; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 11; -pub const _PC_REC_XFER_ALIGN: ::c_int = 12; -pub const _PC_SYMLINK_MAX: ::c_int = 13; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 14; -pub const _PC_NO_TRUNC: ::c_int = 15; -pub const _PC_VDISABLE: ::c_int = 16; -pub const _PC_ASYNC_IO: ::c_int = 17; -pub const _PC_PRIO_IO: ::c_int = 18; -pub const _PC_SYNC_IO: ::c_int = 19; - -pub const FIONBIO: ::c_int = 0x5421; - -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_BC_BASE_MAX: ::c_int = 1; -pub const _SC_BC_DIM_MAX: ::c_int = 2; -pub const _SC_BC_SCALE_MAX: ::c_int = 3; -pub const _SC_BC_STRING_MAX: ::c_int = 4; -pub const _SC_CHILD_MAX: ::c_int = 5; -pub const _SC_CLK_TCK: ::c_int = 6; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 7; -pub const _SC_EXPR_NEST_MAX: ::c_int = 8; -pub const _SC_LINE_MAX: ::c_int = 9; -pub const _SC_NGROUPS_MAX: ::c_int = 10; -pub const _SC_OPEN_MAX: ::c_int = 11; -pub const _SC_PASS_MAX: ::c_int = 12; -pub const _SC_2_C_BIND: ::c_int = 13; -pub const _SC_2_C_DEV: ::c_int = 14; -pub const _SC_2_C_VERSION: ::c_int = 15; -pub const _SC_2_CHAR_TERM: ::c_int = 16; -pub const _SC_2_FORT_DEV: ::c_int = 17; -pub const _SC_2_FORT_RUN: ::c_int = 18; -pub const _SC_2_LOCALEDEF: ::c_int = 19; -pub const _SC_2_SW_DEV: ::c_int = 20; -pub const _SC_2_UPE: ::c_int = 21; -pub const _SC_2_VERSION: ::c_int = 22; -pub const _SC_JOB_CONTROL: ::c_int = 23; -pub const _SC_SAVED_IDS: ::c_int = 24; -pub const _SC_VERSION: ::c_int = 25; -pub const _SC_RE_DUP_MAX: ::c_int = 26; -pub const _SC_STREAM_MAX: ::c_int = 27; -pub const _SC_TZNAME_MAX: ::c_int = 28; -pub const _SC_XOPEN_CRYPT: ::c_int = 29; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 30; -pub const _SC_XOPEN_SHM: ::c_int = 31; -pub const _SC_XOPEN_VERSION: ::c_int = 32; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 33; -pub const _SC_XOPEN_REALTIME: ::c_int = 34; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 35; -pub const _SC_XOPEN_LEGACY: ::c_int = 36; -pub const _SC_ATEXIT_MAX: ::c_int = 37; -pub const _SC_IOV_MAX: ::c_int = 38; -pub const _SC_PAGESIZE: ::c_int = 39; -pub const _SC_PAGE_SIZE: ::c_int = 40; -pub const _SC_XOPEN_UNIX: ::c_int = 41; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 42; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 43; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 44; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 45; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 46; -pub const _SC_AIO_MAX: ::c_int = 47; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 48; -pub const _SC_DELAYTIMER_MAX: ::c_int = 49; -pub const _SC_MQ_OPEN_MAX: ::c_int = 50; -pub const _SC_MQ_PRIO_MAX: ::c_int = 51; -pub const _SC_RTSIG_MAX: ::c_int = 52; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 53; -pub const _SC_SEM_VALUE_MAX: ::c_int = 54; -pub const _SC_SIGQUEUE_MAX: ::c_int = 55; -pub const _SC_TIMER_MAX: ::c_int = 56; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 57; -pub const _SC_FSYNC: ::c_int = 58; -pub const _SC_MAPPED_FILES: ::c_int = 59; -pub const _SC_MEMLOCK: ::c_int = 60; -pub const _SC_MEMLOCK_RANGE: ::c_int = 61; -pub const _SC_MEMORY_PROTECTION: ::c_int = 62; -pub const _SC_MESSAGE_PASSING: ::c_int = 63; -pub const _SC_PRIORITIZED_IO: ::c_int = 64; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 65; -pub const _SC_REALTIME_SIGNALS: ::c_int = 66; -pub const _SC_SEMAPHORES: ::c_int = 67; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 68; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 69; -pub const _SC_TIMERS: ::c_int = 70; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 71; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 72; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 73; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 74; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 75; -pub const _SC_THREAD_STACK_MIN: ::c_int = 76; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 77; -pub const _SC_TTY_NAME_MAX: ::c_int = 78; -pub const _SC_THREADS: ::c_int = 79; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 80; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 81; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 82; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 83; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 84; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 85; -pub const _SC_NPROCESSORS_CONF: ::c_int = 96; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 97; -pub const _SC_PHYS_PAGES: ::c_int = 98; -pub const _SC_AVPHYS_PAGES: ::c_int = 99; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 100; - -pub const _SC_2_PBS: ::c_int = 101; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 102; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 103; -pub const _SC_2_PBS_LOCATE: ::c_int = 104; -pub const _SC_2_PBS_MESSAGE: ::c_int = 105; -pub const _SC_2_PBS_TRACK: ::c_int = 106; -pub const _SC_ADVISORY_INFO: ::c_int = 107; -pub const _SC_BARRIERS: ::c_int = 108; -pub const _SC_CLOCK_SELECTION: ::c_int = 109; -pub const _SC_CPUTIME: ::c_int = 110; -pub const _SC_HOST_NAME_MAX: ::c_int = 111; -pub const _SC_IPV6: ::c_int = 112; -pub const _SC_RAW_SOCKETS: ::c_int = 113; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 114; -pub const _SC_REGEXP: ::c_int = 115; -pub const _SC_SHELL: ::c_int = 116; -pub const _SC_SPAWN: ::c_int = 117; -pub const _SC_SPIN_LOCKS: ::c_int = 118; -pub const _SC_SPORADIC_SERVER: ::c_int = 119; -pub const _SC_SS_REPL_MAX: ::c_int = 120; -pub const _SC_SYMLOOP_MAX: ::c_int = 121; -pub const _SC_THREAD_CPUTIME: ::c_int = 122; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 123; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 124; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 125; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 126; -pub const _SC_TIMEOUTS: ::c_int = 127; -pub const _SC_TRACE: ::c_int = 128; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 129; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 130; -pub const _SC_TRACE_INHERIT: ::c_int = 131; -pub const _SC_TRACE_LOG: ::c_int = 132; -pub const _SC_TRACE_NAME_MAX: ::c_int = 133; -pub const _SC_TRACE_SYS_MAX: ::c_int = 134; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 135; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 136; -pub const _SC_V7_ILP32_OFF32: ::c_int = 137; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 138; -pub const _SC_V7_LP64_OFF64: ::c_int = 139; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 140; -pub const _SC_XOPEN_STREAMS: ::c_int = 141; -pub const _SC_XOPEN_UUCP: ::c_int = 142; - -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; - -pub const F_SEAL_FUTURE_WRITE: ::c_int = 0x0010; - -pub const IFF_LOWER_UP: ::c_int = 0x10000; -pub const IFF_DORMANT: ::c_int = 0x20000; -pub const IFF_ECHO: ::c_int = 0x40000; - -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; - -// stdio.h -pub const RENAME_NOREPLACE: ::c_int = 1; -pub const RENAME_EXCHANGE: ::c_int = 2; -pub const RENAME_WHITEOUT: ::c_int = 4; - -pub const FIOCLEX: ::c_int = 0x5451; -pub const FIONCLEX: ::c_int = 0x5450; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const LC_PAPER: ::c_int = 7; -pub const LC_NAME: ::c_int = 8; -pub const LC_ADDRESS: ::c_int = 9; -pub const LC_TELEPHONE: ::c_int = 10; -pub const LC_MEASUREMENT: ::c_int = 11; -pub const LC_IDENTIFICATION: ::c_int = 12; -pub const LC_PAPER_MASK: ::c_int = 1 << LC_PAPER; -pub const LC_NAME_MASK: ::c_int = 1 << LC_NAME; -pub const LC_ADDRESS_MASK: ::c_int = 1 << LC_ADDRESS; -pub const LC_TELEPHONE_MASK: ::c_int = 1 << LC_TELEPHONE; -pub const LC_MEASUREMENT_MASK: ::c_int = 1 << LC_MEASUREMENT; -pub const LC_IDENTIFICATION_MASK: ::c_int = 1 << LC_IDENTIFICATION; -pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK - | ::LC_NUMERIC_MASK - | ::LC_TIME_MASK - | ::LC_COLLATE_MASK - | ::LC_MONETARY_MASK - | ::LC_MESSAGES_MASK - | LC_PAPER_MASK - | LC_NAME_MASK - | LC_ADDRESS_MASK - | LC_TELEPHONE_MASK - | LC_MEASUREMENT_MASK - | LC_IDENTIFICATION_MASK; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; - -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; - -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_DCCP: ::c_int = 6; -pub const SOCK_PACKET: ::c_int = 10; - -pub const IPPROTO_MAX: ::c_int = 256; - -pub const SOL_SOCKET: ::c_int = 1; -pub const SOL_SCTP: ::c_int = 132; -pub const SOL_IPX: ::c_int = 256; -pub const SOL_AX25: ::c_int = 257; -pub const SOL_ATALK: ::c_int = 258; -pub const SOL_NETROM: ::c_int = 259; -pub const SOL_ROSE: ::c_int = 260; - -/* DCCP socket options */ -pub const DCCP_SOCKOPT_PACKET_SIZE: ::c_int = 1; -pub const DCCP_SOCKOPT_SERVICE: ::c_int = 2; -pub const DCCP_SOCKOPT_CHANGE_L: ::c_int = 3; -pub const DCCP_SOCKOPT_CHANGE_R: ::c_int = 4; -pub const DCCP_SOCKOPT_GET_CUR_MPS: ::c_int = 5; -pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: ::c_int = 6; -pub const DCCP_SOCKOPT_SEND_CSCOV: ::c_int = 10; -pub const DCCP_SOCKOPT_RECV_CSCOV: ::c_int = 11; -pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: ::c_int = 12; -pub const DCCP_SOCKOPT_CCID: ::c_int = 13; -pub const DCCP_SOCKOPT_TX_CCID: ::c_int = 14; -pub const DCCP_SOCKOPT_RX_CCID: ::c_int = 15; -pub const DCCP_SOCKOPT_QPOLICY_ID: ::c_int = 16; -pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: ::c_int = 17; -pub const DCCP_SOCKOPT_CCID_RX_INFO: ::c_int = 128; -pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192; - -/// maximum number of services provided on the same listening port -pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32; - -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_PASSCRED: ::c_int = 16; -pub const SO_PEERCRED: ::c_int = 17; -pub const SO_RCVLOWAT: ::c_int = 18; -pub const SO_SNDLOWAT: ::c_int = 19; -pub const SO_RCVTIMEO: ::c_int = 20; -pub const SO_SNDTIMEO: ::c_int = 21; -pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_ATTACH_FILTER: ::c_int = 26; -pub const SO_DETACH_FILTER: ::c_int = 27; -pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -pub const SO_TIMESTAMP: ::c_int = 29; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_PEERSEC: ::c_int = 31; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PASSSEC: ::c_int = 34; -pub const SO_MARK: ::c_int = 36; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; -pub const SO_RXQ_OVFL: ::c_int = 40; -pub const SO_PEEK_OFF: ::c_int = 42; -pub const SO_BUSY_POLL: ::c_int = 46; - -pub const IPTOS_ECN_NOTECT: u8 = 0x00; - -pub const O_ACCMODE: ::c_int = 3; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 0x101000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; -pub const O_DSYNC: ::c_int = 4096; -pub const O_RSYNC: ::c_int = O_SYNC; - -pub const NI_MAXHOST: ::size_t = 1025; -pub const NI_MAXSERV: ::size_t = 32; - -pub const NI_NOFQDN: ::c_int = 0x00000001; -pub const NI_NUMERICHOST: ::c_int = 0x00000002; -pub const NI_NAMEREQD: ::c_int = 0x00000004; -pub const NI_NUMERICSERV: ::c_int = 0x00000008; -pub const NI_DGRAM: ::c_int = 0x00000010; - -pub const NCCS: usize = 19; -pub const TCSBRKP: ::c_int = 0x5425; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 0x1; -pub const TCSAFLUSH: ::c_int = 0x2; -pub const VEOF: usize = 4; -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0o200000; - -pub const MAP_HUGETLB: ::c_int = 0x040000; - -pub const PTRACE_TRACEME: ::c_int = 0; -pub const PTRACE_PEEKTEXT: ::c_int = 1; -pub const PTRACE_PEEKDATA: ::c_int = 2; -pub const PTRACE_PEEKUSER: ::c_int = 3; -pub const PTRACE_POKETEXT: ::c_int = 4; -pub const PTRACE_POKEDATA: ::c_int = 5; -pub const PTRACE_POKEUSER: ::c_int = 6; -pub const PTRACE_CONT: ::c_int = 7; -pub const PTRACE_KILL: ::c_int = 8; -pub const PTRACE_SINGLESTEP: ::c_int = 9; -pub const PTRACE_GETREGS: ::c_int = 12; -pub const PTRACE_SETREGS: ::c_int = 13; -pub const PTRACE_ATTACH: ::c_int = 16; -pub const PTRACE_DETACH: ::c_int = 17; -pub const PTRACE_SYSCALL: ::c_int = 24; -pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; -pub const PTRACE_GETREGSET: ::c_int = 0x4204; -pub const PTRACE_SETREGSET: ::c_int = 0x4205; - -pub const PTRACE_EVENT_STOP: ::c_int = 128; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_RSS: ::c_int = 5; -pub const RLIMIT_NPROC: ::c_int = 6; -pub const RLIMIT_NOFILE: ::c_int = 7; -pub const RLIMIT_MEMLOCK: ::c_int = 8; -pub const RLIMIT_AS: ::c_int = 9; -pub const RLIMIT_LOCKS: ::c_int = 10; -pub const RLIMIT_SIGPENDING: ::c_int = 11; -pub const RLIMIT_MSGQUEUE: ::c_int = 12; -pub const RLIMIT_NICE: ::c_int = 13; -pub const RLIMIT_RTPRIO: ::c_int = 14; - -pub const RLIM_NLIMITS: ::c_int = 16; -pub const RLIM_INFINITY: ::rlim_t = !0; - -pub const TCGETS: ::c_int = 0x5401; -pub const TCSETS: ::c_int = 0x5402; -pub const TCSETSW: ::c_int = 0x5403; -pub const TCSETSF: ::c_int = 0x5404; -pub const TCGETS2: ::c_int = 0x802c542a; -pub const TCSETS2: ::c_int = 0x402c542b; -pub const TCSETSW2: ::c_int = 0x402c542c; -pub const TCSETSF2: ::c_int = 0x402c542d; -pub const TCGETA: ::c_int = 0x5405; -pub const TCSETA: ::c_int = 0x5406; -pub const TCSETAW: ::c_int = 0x5407; -pub const TCSETAF: ::c_int = 0x5408; -pub const TCSBRK: ::c_int = 0x5409; -pub const TCXONC: ::c_int = 0x540A; -pub const TCFLSH: ::c_int = 0x540B; -pub const TIOCGSOFTCAR: ::c_int = 0x5419; -pub const TIOCSSOFTCAR: ::c_int = 0x541A; -pub const TIOCINQ: ::c_int = 0x541B; -pub const TIOCLINUX: ::c_int = 0x541C; -pub const TIOCGSERIAL: ::c_int = 0x541E; -pub const TIOCEXCL: ::c_int = 0x540C; -pub const TIOCNXCL: ::c_int = 0x540D; -pub const TIOCSCTTY: ::c_int = 0x540E; -pub const TIOCGPGRP: ::c_int = 0x540F; -pub const TIOCSPGRP: ::c_int = 0x5410; -pub const TIOCOUTQ: ::c_int = 0x5411; -pub const TIOCSTI: ::c_int = 0x5412; -pub const TIOCGWINSZ: ::c_int = 0x5413; -pub const TIOCSWINSZ: ::c_int = 0x5414; -pub const TIOCMGET: ::c_int = 0x5415; -pub const TIOCMBIS: ::c_int = 0x5416; -pub const TIOCMBIC: ::c_int = 0x5417; -pub const TIOCMSET: ::c_int = 0x5418; -pub const FIONREAD: ::c_int = 0x541B; -pub const TIOCCONS: ::c_int = 0x541D; -pub const TIOCSBRK: ::c_int = 0x5427; -pub const TIOCCBRK: ::c_int = 0x5428; -cfg_if! { - if #[cfg(any(target_arch = "x86", - target_arch = "x86_64", - target_arch = "arm", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "s390x"))] { - pub const FICLONE: ::c_int = 0x40049409; - pub const FICLONERANGE: ::c_int = 0x4020940D; - } else if #[cfg(any(target_arch = "mips", - target_arch = "mips64", - target_arch = "powerpc", - target_arch = "powerpc64"))] { - pub const FICLONE: ::c_int = 0x80049409; - pub const FICLONERANGE: ::c_int = 0x8020940D; - } -} - -pub const ST_RDONLY: ::c_ulong = 1; -pub const ST_NOSUID: ::c_ulong = 2; -pub const ST_NODEV: ::c_ulong = 4; -pub const ST_NOEXEC: ::c_ulong = 8; -pub const ST_SYNCHRONOUS: ::c_ulong = 16; -pub const ST_MANDLOCK: ::c_ulong = 64; -pub const ST_NOATIME: ::c_ulong = 1024; -pub const ST_NODIRATIME: ::c_ulong = 2048; -pub const ST_RELATIME: ::c_ulong = 4096; - -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; - -pub const AI_PASSIVE: ::c_int = 0x00000001; -pub const AI_CANONNAME: ::c_int = 0x00000002; -pub const AI_NUMERICHOST: ::c_int = 0x00000004; -pub const AI_NUMERICSERV: ::c_int = 0x00000008; -pub const AI_MASK: ::c_int = - AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | AI_NUMERICSERV | AI_ADDRCONFIG; -pub const AI_ALL: ::c_int = 0x00000100; -pub const AI_V4MAPPED_CFG: ::c_int = 0x00000200; -pub const AI_ADDRCONFIG: ::c_int = 0x00000400; -pub const AI_V4MAPPED: ::c_int = 0x00000800; -pub const AI_DEFAULT: ::c_int = AI_V4MAPPED_CFG | AI_ADDRCONFIG; - -// linux/kexec.h -pub const KEXEC_ON_CRASH: ::c_int = 0x00000001; -pub const KEXEC_PRESERVE_CONTEXT: ::c_int = 0x00000002; -pub const KEXEC_ARCH_MASK: ::c_int = 0xffff0000; -pub const KEXEC_FILE_UNLOAD: ::c_int = 0x00000001; -pub const KEXEC_FILE_ON_CRASH: ::c_int = 0x00000002; -pub const KEXEC_FILE_NO_INITRAMFS: ::c_int = 0x00000004; - -pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead; -pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793; -pub const LINUX_REBOOT_MAGIC2A: ::c_int = 85072278; -pub const LINUX_REBOOT_MAGIC2B: ::c_int = 369367448; -pub const LINUX_REBOOT_MAGIC2C: ::c_int = 537993216; - -pub const LINUX_REBOOT_CMD_RESTART: ::c_int = 0x01234567; -pub const LINUX_REBOOT_CMD_HALT: ::c_int = 0xCDEF0123; -pub const LINUX_REBOOT_CMD_CAD_ON: ::c_int = 0x89ABCDEF; -pub const LINUX_REBOOT_CMD_CAD_OFF: ::c_int = 0x00000000; -pub const LINUX_REBOOT_CMD_POWER_OFF: ::c_int = 0x4321FEDC; -pub const LINUX_REBOOT_CMD_RESTART2: ::c_int = 0xA1B2C3D4; -pub const LINUX_REBOOT_CMD_SW_SUSPEND: ::c_int = 0xD000FCE2; -pub const LINUX_REBOOT_CMD_KEXEC: ::c_int = 0x45584543; - -pub const REG_BASIC: ::c_int = 0; -pub const REG_EXTENDED: ::c_int = 1; -pub const REG_ICASE: ::c_int = 2; -pub const REG_NOSUB: ::c_int = 4; -pub const REG_NEWLINE: ::c_int = 8; -pub const REG_NOSPEC: ::c_int = 16; -pub const REG_PEND: ::c_int = 32; -pub const REG_DUMP: ::c_int = 128; - -pub const REG_NOMATCH: ::c_int = 1; -pub const REG_BADPAT: ::c_int = 2; -pub const REG_ECOLLATE: ::c_int = 3; -pub const REG_ECTYPE: ::c_int = 4; -pub const REG_EESCAPE: ::c_int = 5; -pub const REG_ESUBREG: ::c_int = 6; -pub const REG_EBRACK: ::c_int = 7; -pub const REG_EPAREN: ::c_int = 8; -pub const REG_EBRACE: ::c_int = 9; -pub const REG_BADBR: ::c_int = 10; -pub const REG_ERANGE: ::c_int = 11; -pub const REG_ESPACE: ::c_int = 12; -pub const REG_BADRPT: ::c_int = 13; -pub const REG_EMPTY: ::c_int = 14; -pub const REG_ASSERT: ::c_int = 15; -pub const REG_INVARG: ::c_int = 16; -pub const REG_ATOI: ::c_int = 255; -pub const REG_ITOA: ::c_int = 256; - -pub const REG_NOTBOL: ::c_int = 1; -pub const REG_NOTEOL: ::c_int = 2; -pub const REG_STARTEND: ::c_int = 4; -pub const REG_TRACE: ::c_int = 256; -pub const REG_LARGE: ::c_int = 512; -pub const REG_BACKR: ::c_int = 1024; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const BOTHER: ::speed_t = 0o010000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; -pub const IBSHIFT: ::tcflag_t = 16; - -pub const BLKIOMIN: ::c_int = 0x1278; -pub const BLKIOOPT: ::c_int = 0x1279; -pub const BLKSSZGET: ::c_int = 0x1268; -pub const BLKPBSZGET: ::c_int = 0x127B; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 14; - -pub const NETLINK_ROUTE: ::c_int = 0; -pub const NETLINK_UNUSED: ::c_int = 1; -pub const NETLINK_USERSOCK: ::c_int = 2; -pub const NETLINK_FIREWALL: ::c_int = 3; -pub const NETLINK_SOCK_DIAG: ::c_int = 4; -pub const NETLINK_NFLOG: ::c_int = 5; -pub const NETLINK_XFRM: ::c_int = 6; -pub const NETLINK_SELINUX: ::c_int = 7; -pub const NETLINK_ISCSI: ::c_int = 8; -pub const NETLINK_AUDIT: ::c_int = 9; -pub const NETLINK_FIB_LOOKUP: ::c_int = 10; -pub const NETLINK_CONNECTOR: ::c_int = 11; -pub const NETLINK_NETFILTER: ::c_int = 12; -pub const NETLINK_IP6_FW: ::c_int = 13; -pub const NETLINK_DNRTMSG: ::c_int = 14; -pub const NETLINK_KOBJECT_UEVENT: ::c_int = 15; -pub const NETLINK_GENERIC: ::c_int = 16; -pub const NETLINK_SCSITRANSPORT: ::c_int = 18; -pub const NETLINK_ECRYPTFS: ::c_int = 19; -pub const NETLINK_RDMA: ::c_int = 20; -pub const NETLINK_CRYPTO: ::c_int = 21; -pub const NETLINK_INET_DIAG: ::c_int = NETLINK_SOCK_DIAG; - -pub const MAX_LINKS: ::c_int = 32; - -pub const NLM_F_REQUEST: ::c_int = 1; -pub const NLM_F_MULTI: ::c_int = 2; -pub const NLM_F_ACK: ::c_int = 4; -pub const NLM_F_ECHO: ::c_int = 8; -pub const NLM_F_DUMP_INTR: ::c_int = 16; - -pub const NLM_F_ROOT: ::c_int = 0x100; -pub const NLM_F_MATCH: ::c_int = 0x200; -pub const NLM_F_ATOMIC: ::c_int = 0x400; -pub const NLM_F_DUMP: ::c_int = NLM_F_ROOT | NLM_F_MATCH; - -pub const NLM_F_REPLACE: ::c_int = 0x100; -pub const NLM_F_EXCL: ::c_int = 0x200; -pub const NLM_F_CREATE: ::c_int = 0x400; -pub const NLM_F_APPEND: ::c_int = 0x800; - -pub const NLMSG_NOOP: ::c_int = 0x1; -pub const NLMSG_ERROR: ::c_int = 0x2; -pub const NLMSG_DONE: ::c_int = 0x3; -pub const NLMSG_OVERRUN: ::c_int = 0x4; -pub const NLMSG_MIN_TYPE: ::c_int = 0x10; - -// linux/netfilter/nfnetlink.h -pub const NFNLGRP_NONE: ::c_int = 0; -pub const NFNLGRP_CONNTRACK_NEW: ::c_int = 1; -pub const NFNLGRP_CONNTRACK_UPDATE: ::c_int = 2; -pub const NFNLGRP_CONNTRACK_DESTROY: ::c_int = 3; -pub const NFNLGRP_CONNTRACK_EXP_NEW: ::c_int = 4; -pub const NFNLGRP_CONNTRACK_EXP_UPDATE: ::c_int = 5; -pub const NFNLGRP_CONNTRACK_EXP_DESTROY: ::c_int = 6; -pub const NFNLGRP_NFTABLES: ::c_int = 7; -pub const NFNLGRP_ACCT_QUOTA: ::c_int = 8; - -pub const NFNETLINK_V0: ::c_int = 0; - -pub const NFNL_SUBSYS_NONE: ::c_int = 0; -pub const NFNL_SUBSYS_CTNETLINK: ::c_int = 1; -pub const NFNL_SUBSYS_CTNETLINK_EXP: ::c_int = 2; -pub const NFNL_SUBSYS_QUEUE: ::c_int = 3; -pub const NFNL_SUBSYS_ULOG: ::c_int = 4; -pub const NFNL_SUBSYS_OSF: ::c_int = 5; -pub const NFNL_SUBSYS_IPSET: ::c_int = 6; -pub const NFNL_SUBSYS_ACCT: ::c_int = 7; -pub const NFNL_SUBSYS_CTNETLINK_TIMEOUT: ::c_int = 8; -pub const NFNL_SUBSYS_CTHELPER: ::c_int = 9; -pub const NFNL_SUBSYS_NFTABLES: ::c_int = 10; -pub const NFNL_SUBSYS_NFT_COMPAT: ::c_int = 11; -pub const NFNL_SUBSYS_COUNT: ::c_int = 12; - -pub const NFNL_MSG_BATCH_BEGIN: ::c_int = NLMSG_MIN_TYPE; -pub const NFNL_MSG_BATCH_END: ::c_int = NLMSG_MIN_TYPE + 1; - -// linux/netfilter/nfnetlink_log.h -pub const NFULNL_MSG_PACKET: ::c_int = 0; -pub const NFULNL_MSG_CONFIG: ::c_int = 1; - -pub const NFULA_UNSPEC: ::c_int = 0; -pub const NFULA_PACKET_HDR: ::c_int = 1; -pub const NFULA_MARK: ::c_int = 2; -pub const NFULA_TIMESTAMP: ::c_int = 3; -pub const NFULA_IFINDEX_INDEV: ::c_int = 4; -pub const NFULA_IFINDEX_OUTDEV: ::c_int = 5; -pub const NFULA_IFINDEX_PHYSINDEV: ::c_int = 6; -pub const NFULA_IFINDEX_PHYSOUTDEV: ::c_int = 7; -pub const NFULA_HWADDR: ::c_int = 8; -pub const NFULA_PAYLOAD: ::c_int = 9; -pub const NFULA_PREFIX: ::c_int = 10; -pub const NFULA_UID: ::c_int = 11; -pub const NFULA_SEQ: ::c_int = 12; -pub const NFULA_SEQ_GLOBAL: ::c_int = 13; -pub const NFULA_GID: ::c_int = 14; -pub const NFULA_HWTYPE: ::c_int = 15; -pub const NFULA_HWHEADER: ::c_int = 16; -pub const NFULA_HWLEN: ::c_int = 17; -pub const NFULA_CT: ::c_int = 18; -pub const NFULA_CT_INFO: ::c_int = 19; - -pub const NFULNL_CFG_CMD_NONE: ::c_int = 0; -pub const NFULNL_CFG_CMD_BIND: ::c_int = 1; -pub const NFULNL_CFG_CMD_UNBIND: ::c_int = 2; -pub const NFULNL_CFG_CMD_PF_BIND: ::c_int = 3; -pub const NFULNL_CFG_CMD_PF_UNBIND: ::c_int = 4; - -pub const NFULA_CFG_UNSPEC: ::c_int = 0; -pub const NFULA_CFG_CMD: ::c_int = 1; -pub const NFULA_CFG_MODE: ::c_int = 2; -pub const NFULA_CFG_NLBUFSIZ: ::c_int = 3; -pub const NFULA_CFG_TIMEOUT: ::c_int = 4; -pub const NFULA_CFG_QTHRESH: ::c_int = 5; -pub const NFULA_CFG_FLAGS: ::c_int = 6; - -pub const NFULNL_COPY_NONE: ::c_int = 0x00; -pub const NFULNL_COPY_META: ::c_int = 0x01; -pub const NFULNL_COPY_PACKET: ::c_int = 0x02; - -pub const NFULNL_CFG_F_SEQ: ::c_int = 0x0001; -pub const NFULNL_CFG_F_SEQ_GLOBAL: ::c_int = 0x0002; -pub const NFULNL_CFG_F_CONNTRACK: ::c_int = 0x0004; - -// linux/netfilter/nfnetlink_log.h -pub const NFQNL_MSG_PACKET: ::c_int = 0; -pub const NFQNL_MSG_VERDICT: ::c_int = 1; -pub const NFQNL_MSG_CONFIG: ::c_int = 2; -pub const NFQNL_MSG_VERDICT_BATCH: ::c_int = 3; - -pub const NFQA_UNSPEC: ::c_int = 0; -pub const NFQA_PACKET_HDR: ::c_int = 1; -pub const NFQA_VERDICT_HDR: ::c_int = 2; -pub const NFQA_MARK: ::c_int = 3; -pub const NFQA_TIMESTAMP: ::c_int = 4; -pub const NFQA_IFINDEX_INDEV: ::c_int = 5; -pub const NFQA_IFINDEX_OUTDEV: ::c_int = 6; -pub const NFQA_IFINDEX_PHYSINDEV: ::c_int = 7; -pub const NFQA_IFINDEX_PHYSOUTDEV: ::c_int = 8; -pub const NFQA_HWADDR: ::c_int = 9; -pub const NFQA_PAYLOAD: ::c_int = 10; -pub const NFQA_CT: ::c_int = 11; -pub const NFQA_CT_INFO: ::c_int = 12; -pub const NFQA_CAP_LEN: ::c_int = 13; -pub const NFQA_SKB_INFO: ::c_int = 14; -pub const NFQA_EXP: ::c_int = 15; -pub const NFQA_UID: ::c_int = 16; -pub const NFQA_GID: ::c_int = 17; -pub const NFQA_SECCTX: ::c_int = 18; -/* - FIXME: These are not yet available in musl sanitized kernel headers and - make the tests fail. Enable them once musl has them. - - See https://github.com/rust-lang/libc/pull/1628 for more details. -pub const NFQA_VLAN: ::c_int = 19; -pub const NFQA_L2HDR: ::c_int = 20; - -pub const NFQA_VLAN_UNSPEC: ::c_int = 0; -pub const NFQA_VLAN_PROTO: ::c_int = 1; -pub const NFQA_VLAN_TCI: ::c_int = 2; -*/ - -pub const NFQNL_CFG_CMD_NONE: ::c_int = 0; -pub const NFQNL_CFG_CMD_BIND: ::c_int = 1; -pub const NFQNL_CFG_CMD_UNBIND: ::c_int = 2; -pub const NFQNL_CFG_CMD_PF_BIND: ::c_int = 3; -pub const NFQNL_CFG_CMD_PF_UNBIND: ::c_int = 4; - -pub const NFQNL_COPY_NONE: ::c_int = 0; -pub const NFQNL_COPY_META: ::c_int = 1; -pub const NFQNL_COPY_PACKET: ::c_int = 2; - -pub const NFQA_CFG_UNSPEC: ::c_int = 0; -pub const NFQA_CFG_CMD: ::c_int = 1; -pub const NFQA_CFG_PARAMS: ::c_int = 2; -pub const NFQA_CFG_QUEUE_MAXLEN: ::c_int = 3; -pub const NFQA_CFG_MASK: ::c_int = 4; -pub const NFQA_CFG_FLAGS: ::c_int = 5; - -pub const NFQA_CFG_F_FAIL_OPEN: ::c_int = 0x0001; -pub const NFQA_CFG_F_CONNTRACK: ::c_int = 0x0002; -pub const NFQA_CFG_F_GSO: ::c_int = 0x0004; -pub const NFQA_CFG_F_UID_GID: ::c_int = 0x0008; -pub const NFQA_CFG_F_SECCTX: ::c_int = 0x0010; -pub const NFQA_CFG_F_MAX: ::c_int = 0x0020; - -pub const NFQA_SKB_CSUMNOTREADY: ::c_int = 0x0001; -pub const NFQA_SKB_GSO: ::c_int = 0x0002; -pub const NFQA_SKB_CSUM_NOTVERIFIED: ::c_int = 0x0004; - -pub const GENL_NAMSIZ: ::c_int = 16; - -pub const GENL_MIN_ID: ::c_int = NLMSG_MIN_TYPE; -pub const GENL_MAX_ID: ::c_int = 1023; - -pub const GENL_ADMIN_PERM: ::c_int = 0x01; -pub const GENL_CMD_CAP_DO: ::c_int = 0x02; -pub const GENL_CMD_CAP_DUMP: ::c_int = 0x04; -pub const GENL_CMD_CAP_HASPOL: ::c_int = 0x08; -pub const GENL_UNS_ADMIN_PERM: ::c_int = 0x10; - -pub const GENL_ID_CTRL: ::c_int = NLMSG_MIN_TYPE; -pub const GENL_ID_VFS_DQUOT: ::c_int = NLMSG_MIN_TYPE + 1; -pub const GENL_ID_PMCRAID: ::c_int = NLMSG_MIN_TYPE + 2; - -pub const CTRL_CMD_UNSPEC: ::c_int = 0; -pub const CTRL_CMD_NEWFAMILY: ::c_int = 1; -pub const CTRL_CMD_DELFAMILY: ::c_int = 2; -pub const CTRL_CMD_GETFAMILY: ::c_int = 3; -pub const CTRL_CMD_NEWOPS: ::c_int = 4; -pub const CTRL_CMD_DELOPS: ::c_int = 5; -pub const CTRL_CMD_GETOPS: ::c_int = 6; -pub const CTRL_CMD_NEWMCAST_GRP: ::c_int = 7; -pub const CTRL_CMD_DELMCAST_GRP: ::c_int = 8; -pub const CTRL_CMD_GETMCAST_GRP: ::c_int = 9; - -pub const CTRL_ATTR_UNSPEC: ::c_int = 0; -pub const CTRL_ATTR_FAMILY_ID: ::c_int = 1; -pub const CTRL_ATTR_FAMILY_NAME: ::c_int = 2; -pub const CTRL_ATTR_VERSION: ::c_int = 3; -pub const CTRL_ATTR_HDRSIZE: ::c_int = 4; -pub const CTRL_ATTR_MAXATTR: ::c_int = 5; -pub const CTRL_ATTR_OPS: ::c_int = 6; -pub const CTRL_ATTR_MCAST_GROUPS: ::c_int = 7; - -pub const CTRL_ATTR_OP_UNSPEC: ::c_int = 0; -pub const CTRL_ATTR_OP_ID: ::c_int = 1; -pub const CTRL_ATTR_OP_FLAGS: ::c_int = 2; - -pub const CTRL_ATTR_MCAST_GRP_UNSPEC: ::c_int = 0; -pub const CTRL_ATTR_MCAST_GRP_NAME: ::c_int = 1; -pub const CTRL_ATTR_MCAST_GRP_ID: ::c_int = 2; - -pub const NETLINK_ADD_MEMBERSHIP: ::c_int = 1; -pub const NETLINK_DROP_MEMBERSHIP: ::c_int = 2; -pub const NETLINK_PKTINFO: ::c_int = 3; -pub const NETLINK_BROADCAST_ERROR: ::c_int = 4; -pub const NETLINK_NO_ENOBUFS: ::c_int = 5; -pub const NETLINK_RX_RING: ::c_int = 6; -pub const NETLINK_TX_RING: ::c_int = 7; -pub const NETLINK_LISTEN_ALL_NSID: ::c_int = 8; -pub const NETLINK_LIST_MEMBERSHIPS: ::c_int = 9; -pub const NETLINK_CAP_ACK: ::c_int = 10; -pub const NETLINK_EXT_ACK: ::c_int = 11; -pub const NETLINK_GET_STRICT_CHK: ::c_int = 12; - -pub const GRND_NONBLOCK: ::c_uint = 0x0001; -pub const GRND_RANDOM: ::c_uint = 0x0002; -pub const GRND_INSECURE: ::c_uint = 0x0004; - -pub const SECCOMP_MODE_DISABLED: ::c_uint = 0; -pub const SECCOMP_MODE_STRICT: ::c_uint = 1; -pub const SECCOMP_MODE_FILTER: ::c_uint = 2; - -pub const SECCOMP_FILTER_FLAG_TSYNC: ::c_ulong = 1; -pub const SECCOMP_FILTER_FLAG_LOG: ::c_ulong = 2; -pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: ::c_ulong = 4; -pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: ::c_ulong = 8; - -pub const SECCOMP_RET_ACTION_FULL: ::c_uint = 0xffff0000; -pub const SECCOMP_RET_ACTION: ::c_uint = 0x7fff0000; -pub const SECCOMP_RET_DATA: ::c_uint = 0x0000ffff; - -pub const SECCOMP_RET_KILL_PROCESS: ::c_uint = 0x80000000; -pub const SECCOMP_RET_KILL_THREAD: ::c_uint = 0x00000000; -pub const SECCOMP_RET_KILL: ::c_uint = SECCOMP_RET_KILL_THREAD; -pub const SECCOMP_RET_TRAP: ::c_uint = 0x00030000; -pub const SECCOMP_RET_ERRNO: ::c_uint = 0x00050000; -pub const SECCOMP_RET_USER_NOTIF: ::c_uint = 0x7fc00000; -pub const SECCOMP_RET_TRACE: ::c_uint = 0x7ff00000; -pub const SECCOMP_RET_LOG: ::c_uint = 0x7ffc0000; -pub const SECCOMP_RET_ALLOW: ::c_uint = 0x7fff0000; - -pub const NLA_F_NESTED: ::c_int = 1 << 15; -pub const NLA_F_NET_BYTEORDER: ::c_int = 1 << 14; -pub const NLA_TYPE_MASK: ::c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); - -pub const NLA_ALIGNTO: ::c_int = 4; - -pub const SIGEV_THREAD_ID: ::c_int = 4; - -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; - -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const SFD_CLOEXEC: ::c_int = O_CLOEXEC; -pub const SFD_NONBLOCK: ::c_int = O_NONBLOCK; - -pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK; - -pub const SO_ORIGINAL_DST: ::c_int = 80; - -pub const IP_RECVFRAGSIZE: ::c_int = 25; - -pub const IPV6_FLOWINFO: ::c_int = 11; -pub const IPV6_MULTICAST_ALL: ::c_int = 29; -pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; -pub const IPV6_FLOWLABEL_MGR: ::c_int = 32; -pub const IPV6_FLOWINFO_SEND: ::c_int = 33; -pub const IPV6_RECVFRAGSIZE: ::c_int = 77; -pub const IPV6_FREEBIND: ::c_int = 78; -pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff; -pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000; - -pub const IUTF8: ::tcflag_t = 0x00004000; -pub const CMSPAR: ::tcflag_t = 0o10000000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const MFD_CLOEXEC: ::c_uint = 0x0001; -pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; -pub const MFD_HUGETLB: ::c_uint = 0x0004; -pub const MFD_HUGE_64KB: ::c_uint = 0x40000000; -pub const MFD_HUGE_512KB: ::c_uint = 0x4c000000; -pub const MFD_HUGE_1MB: ::c_uint = 0x50000000; -pub const MFD_HUGE_2MB: ::c_uint = 0x54000000; -pub const MFD_HUGE_8MB: ::c_uint = 0x5c000000; -pub const MFD_HUGE_16MB: ::c_uint = 0x60000000; -pub const MFD_HUGE_32MB: ::c_uint = 0x64000000; -pub const MFD_HUGE_256MB: ::c_uint = 0x70000000; -pub const MFD_HUGE_512MB: ::c_uint = 0x74000000; -pub const MFD_HUGE_1GB: ::c_uint = 0x78000000; -pub const MFD_HUGE_2GB: ::c_uint = 0x7c000000; -pub const MFD_HUGE_16GB: ::c_uint = 0x88000000; -pub const MFD_HUGE_MASK: ::c_uint = 63; -pub const MFD_HUGE_SHIFT: ::c_uint = 26; - -// these are used in the p_type field of Elf32_Phdr and Elf64_Phdr, which has -// the type Elf32Word and Elf64Word respectively. Luckily, both of those are u32 -// so we can use that type here to avoid having to cast. -pub const PT_NULL: u32 = 0; -pub const PT_LOAD: u32 = 1; -pub const PT_DYNAMIC: u32 = 2; -pub const PT_INTERP: u32 = 3; -pub const PT_NOTE: u32 = 4; -pub const PT_SHLIB: u32 = 5; -pub const PT_PHDR: u32 = 6; -pub const PT_TLS: u32 = 7; -pub const PT_LOOS: u32 = 0x60000000; -pub const PT_GNU_EH_FRAME: u32 = 0x6474e550; -pub const PT_GNU_STACK: u32 = 0x6474e551; -pub const PT_GNU_RELRO: u32 = 0x6474e552; -pub const PT_HIOS: u32 = 0x6fffffff; -pub const PT_LOPROC: u32 = 0x70000000; -pub const PT_HIPROC: u32 = 0x7fffffff; - -// uapi/linux/mount.h -pub const OPEN_TREE_CLONE: ::c_uint = 0x01; -pub const OPEN_TREE_CLOEXEC: ::c_uint = O_CLOEXEC as ::c_uint; - -// linux/netfilter.h -pub const NF_DROP: ::c_int = 0; -pub const NF_ACCEPT: ::c_int = 1; -pub const NF_STOLEN: ::c_int = 2; -pub const NF_QUEUE: ::c_int = 3; -pub const NF_REPEAT: ::c_int = 4; -pub const NF_STOP: ::c_int = 5; -pub const NF_MAX_VERDICT: ::c_int = NF_STOP; - -pub const NF_VERDICT_MASK: ::c_int = 0x000000ff; -pub const NF_VERDICT_FLAG_QUEUE_BYPASS: ::c_int = 0x00008000; - -pub const NF_VERDICT_QMASK: ::c_int = 0xffff0000; -pub const NF_VERDICT_QBITS: ::c_int = 16; - -pub const NF_VERDICT_BITS: ::c_int = 16; - -pub const NF_INET_PRE_ROUTING: ::c_int = 0; -pub const NF_INET_LOCAL_IN: ::c_int = 1; -pub const NF_INET_FORWARD: ::c_int = 2; -pub const NF_INET_LOCAL_OUT: ::c_int = 3; -pub const NF_INET_POST_ROUTING: ::c_int = 4; -pub const NF_INET_NUMHOOKS: ::c_int = 5; - -pub const NF_NETDEV_INGRESS: ::c_int = 0; -pub const NF_NETDEV_NUMHOOKS: ::c_int = 1; - -pub const NFPROTO_UNSPEC: ::c_int = 0; -pub const NFPROTO_INET: ::c_int = 1; -pub const NFPROTO_IPV4: ::c_int = 2; -pub const NFPROTO_ARP: ::c_int = 3; -pub const NFPROTO_NETDEV: ::c_int = 5; -pub const NFPROTO_BRIDGE: ::c_int = 7; -pub const NFPROTO_IPV6: ::c_int = 10; -pub const NFPROTO_DECNET: ::c_int = 12; -pub const NFPROTO_NUMPROTO: ::c_int = 13; - -// linux/netfilter_ipv4.h -pub const NF_IP_PRE_ROUTING: ::c_int = 0; -pub const NF_IP_LOCAL_IN: ::c_int = 1; -pub const NF_IP_FORWARD: ::c_int = 2; -pub const NF_IP_LOCAL_OUT: ::c_int = 3; -pub const NF_IP_POST_ROUTING: ::c_int = 4; -pub const NF_IP_NUMHOOKS: ::c_int = 5; - -pub const NF_IP_PRI_FIRST: ::c_int = ::INT_MIN; -pub const NF_IP_PRI_CONNTRACK_DEFRAG: ::c_int = -400; -pub const NF_IP_PRI_RAW: ::c_int = -300; -pub const NF_IP_PRI_SELINUX_FIRST: ::c_int = -225; -pub const NF_IP_PRI_CONNTRACK: ::c_int = -200; -pub const NF_IP_PRI_MANGLE: ::c_int = -150; -pub const NF_IP_PRI_NAT_DST: ::c_int = -100; -pub const NF_IP_PRI_FILTER: ::c_int = 0; -pub const NF_IP_PRI_SECURITY: ::c_int = 50; -pub const NF_IP_PRI_NAT_SRC: ::c_int = 100; -pub const NF_IP_PRI_SELINUX_LAST: ::c_int = 225; -pub const NF_IP_PRI_CONNTRACK_HELPER: ::c_int = 300; -pub const NF_IP_PRI_CONNTRACK_CONFIRM: ::c_int = ::INT_MAX; -pub const NF_IP_PRI_LAST: ::c_int = ::INT_MAX; - -// linux/netfilter_ipv6.h -pub const NF_IP6_PRE_ROUTING: ::c_int = 0; -pub const NF_IP6_LOCAL_IN: ::c_int = 1; -pub const NF_IP6_FORWARD: ::c_int = 2; -pub const NF_IP6_LOCAL_OUT: ::c_int = 3; -pub const NF_IP6_POST_ROUTING: ::c_int = 4; -pub const NF_IP6_NUMHOOKS: ::c_int = 5; - -pub const NF_IP6_PRI_FIRST: ::c_int = ::INT_MIN; -pub const NF_IP6_PRI_CONNTRACK_DEFRAG: ::c_int = -400; -pub const NF_IP6_PRI_RAW: ::c_int = -300; -pub const NF_IP6_PRI_SELINUX_FIRST: ::c_int = -225; -pub const NF_IP6_PRI_CONNTRACK: ::c_int = -200; -pub const NF_IP6_PRI_MANGLE: ::c_int = -150; -pub const NF_IP6_PRI_NAT_DST: ::c_int = -100; -pub const NF_IP6_PRI_FILTER: ::c_int = 0; -pub const NF_IP6_PRI_SECURITY: ::c_int = 50; -pub const NF_IP6_PRI_NAT_SRC: ::c_int = 100; -pub const NF_IP6_PRI_SELINUX_LAST: ::c_int = 225; -pub const NF_IP6_PRI_CONNTRACK_HELPER: ::c_int = 300; -pub const NF_IP6_PRI_LAST: ::c_int = ::INT_MAX; - -// linux/netfilter_ipv6/ip6_tables.h -pub const IP6T_SO_ORIGINAL_DST: ::c_int = 80; - -// linux/netfilter/nf_tables.h -pub const NFT_TABLE_MAXNAMELEN: ::c_int = 256; -pub const NFT_CHAIN_MAXNAMELEN: ::c_int = 256; -pub const NFT_SET_MAXNAMELEN: ::c_int = 256; -pub const NFT_OBJ_MAXNAMELEN: ::c_int = 256; -pub const NFT_USERDATA_MAXLEN: ::c_int = 256; - -pub const NFT_REG_VERDICT: ::c_int = 0; -pub const NFT_REG_1: ::c_int = 1; -pub const NFT_REG_2: ::c_int = 2; -pub const NFT_REG_3: ::c_int = 3; -pub const NFT_REG_4: ::c_int = 4; -pub const __NFT_REG_MAX: ::c_int = 5; -pub const NFT_REG32_00: ::c_int = 8; -pub const NFT_REG32_01: ::c_int = 9; -pub const NFT_REG32_02: ::c_int = 10; -pub const NFT_REG32_03: ::c_int = 11; -pub const NFT_REG32_04: ::c_int = 12; -pub const NFT_REG32_05: ::c_int = 13; -pub const NFT_REG32_06: ::c_int = 14; -pub const NFT_REG32_07: ::c_int = 15; -pub const NFT_REG32_08: ::c_int = 16; -pub const NFT_REG32_09: ::c_int = 17; -pub const NFT_REG32_10: ::c_int = 18; -pub const NFT_REG32_11: ::c_int = 19; -pub const NFT_REG32_12: ::c_int = 20; -pub const NFT_REG32_13: ::c_int = 21; -pub const NFT_REG32_14: ::c_int = 22; -pub const NFT_REG32_15: ::c_int = 23; - -pub const NFT_REG_SIZE: ::c_int = 16; -pub const NFT_REG32_SIZE: ::c_int = 4; - -pub const NFT_CONTINUE: ::c_int = -1; -pub const NFT_BREAK: ::c_int = -2; -pub const NFT_JUMP: ::c_int = -3; -pub const NFT_GOTO: ::c_int = -4; -pub const NFT_RETURN: ::c_int = -5; - -pub const NFT_MSG_NEWTABLE: ::c_int = 0; -pub const NFT_MSG_GETTABLE: ::c_int = 1; -pub const NFT_MSG_DELTABLE: ::c_int = 2; -pub const NFT_MSG_NEWCHAIN: ::c_int = 3; -pub const NFT_MSG_GETCHAIN: ::c_int = 4; -pub const NFT_MSG_DELCHAIN: ::c_int = 5; -pub const NFT_MSG_NEWRULE: ::c_int = 6; -pub const NFT_MSG_GETRULE: ::c_int = 7; -pub const NFT_MSG_DELRULE: ::c_int = 8; -pub const NFT_MSG_NEWSET: ::c_int = 9; -pub const NFT_MSG_GETSET: ::c_int = 10; -pub const NFT_MSG_DELSET: ::c_int = 11; -pub const NFT_MSG_NEWSETELEM: ::c_int = 12; -pub const NFT_MSG_GETSETELEM: ::c_int = 13; -pub const NFT_MSG_DELSETELEM: ::c_int = 14; -pub const NFT_MSG_NEWGEN: ::c_int = 15; -pub const NFT_MSG_GETGEN: ::c_int = 16; -pub const NFT_MSG_TRACE: ::c_int = 17; -pub const NFT_MSG_NEWOBJ: ::c_int = 18; -pub const NFT_MSG_GETOBJ: ::c_int = 19; -pub const NFT_MSG_DELOBJ: ::c_int = 20; -pub const NFT_MSG_GETOBJ_RESET: ::c_int = 21; -pub const NFT_MSG_MAX: ::c_int = 25; - -pub const NFT_SET_ANONYMOUS: ::c_int = 0x1; -pub const NFT_SET_CONSTANT: ::c_int = 0x2; -pub const NFT_SET_INTERVAL: ::c_int = 0x4; -pub const NFT_SET_MAP: ::c_int = 0x8; -pub const NFT_SET_TIMEOUT: ::c_int = 0x10; -pub const NFT_SET_EVAL: ::c_int = 0x20; - -pub const NFT_SET_POL_PERFORMANCE: ::c_int = 0; -pub const NFT_SET_POL_MEMORY: ::c_int = 1; - -pub const NFT_SET_ELEM_INTERVAL_END: ::c_int = 0x1; - -pub const NFT_DATA_VALUE: ::c_uint = 0; -pub const NFT_DATA_VERDICT: ::c_uint = 0xffffff00; - -pub const NFT_DATA_RESERVED_MASK: ::c_uint = 0xffffff00; - -pub const NFT_DATA_VALUE_MAXLEN: ::c_int = 64; - -pub const NFT_BYTEORDER_NTOH: ::c_int = 0; -pub const NFT_BYTEORDER_HTON: ::c_int = 1; - -pub const NFT_CMP_EQ: ::c_int = 0; -pub const NFT_CMP_NEQ: ::c_int = 1; -pub const NFT_CMP_LT: ::c_int = 2; -pub const NFT_CMP_LTE: ::c_int = 3; -pub const NFT_CMP_GT: ::c_int = 4; -pub const NFT_CMP_GTE: ::c_int = 5; - -pub const NFT_RANGE_EQ: ::c_int = 0; -pub const NFT_RANGE_NEQ: ::c_int = 1; - -pub const NFT_LOOKUP_F_INV: ::c_int = 1 << 0; - -pub const NFT_DYNSET_OP_ADD: ::c_int = 0; -pub const NFT_DYNSET_OP_UPDATE: ::c_int = 1; - -pub const NFT_DYNSET_F_INV: ::c_int = 1 << 0; - -pub const NFT_PAYLOAD_LL_HEADER: ::c_int = 0; -pub const NFT_PAYLOAD_NETWORK_HEADER: ::c_int = 1; -pub const NFT_PAYLOAD_TRANSPORT_HEADER: ::c_int = 2; - -pub const NFT_PAYLOAD_CSUM_NONE: ::c_int = 0; -pub const NFT_PAYLOAD_CSUM_INET: ::c_int = 1; - -pub const NFT_META_LEN: ::c_int = 0; -pub const NFT_META_PROTOCOL: ::c_int = 1; -pub const NFT_META_PRIORITY: ::c_int = 2; -pub const NFT_META_MARK: ::c_int = 3; -pub const NFT_META_IIF: ::c_int = 4; -pub const NFT_META_OIF: ::c_int = 5; -pub const NFT_META_IIFNAME: ::c_int = 6; -pub const NFT_META_OIFNAME: ::c_int = 7; -pub const NFT_META_IIFTYPE: ::c_int = 8; -pub const NFT_META_OIFTYPE: ::c_int = 9; -pub const NFT_META_SKUID: ::c_int = 10; -pub const NFT_META_SKGID: ::c_int = 11; -pub const NFT_META_NFTRACE: ::c_int = 12; -pub const NFT_META_RTCLASSID: ::c_int = 13; -pub const NFT_META_SECMARK: ::c_int = 14; -pub const NFT_META_NFPROTO: ::c_int = 15; -pub const NFT_META_L4PROTO: ::c_int = 16; -pub const NFT_META_BRI_IIFNAME: ::c_int = 17; -pub const NFT_META_BRI_OIFNAME: ::c_int = 18; -pub const NFT_META_PKTTYPE: ::c_int = 19; -pub const NFT_META_CPU: ::c_int = 20; -pub const NFT_META_IIFGROUP: ::c_int = 21; -pub const NFT_META_OIFGROUP: ::c_int = 22; -pub const NFT_META_CGROUP: ::c_int = 23; -pub const NFT_META_PRANDOM: ::c_int = 24; - -pub const NFT_CT_STATE: ::c_int = 0; -pub const NFT_CT_DIRECTION: ::c_int = 1; -pub const NFT_CT_STATUS: ::c_int = 2; -pub const NFT_CT_MARK: ::c_int = 3; -pub const NFT_CT_SECMARK: ::c_int = 4; -pub const NFT_CT_EXPIRATION: ::c_int = 5; -pub const NFT_CT_HELPER: ::c_int = 6; -pub const NFT_CT_L3PROTOCOL: ::c_int = 7; -pub const NFT_CT_SRC: ::c_int = 8; -pub const NFT_CT_DST: ::c_int = 9; -pub const NFT_CT_PROTOCOL: ::c_int = 10; -pub const NFT_CT_PROTO_SRC: ::c_int = 11; -pub const NFT_CT_PROTO_DST: ::c_int = 12; -pub const NFT_CT_LABELS: ::c_int = 13; -pub const NFT_CT_PKTS: ::c_int = 14; -pub const NFT_CT_BYTES: ::c_int = 15; - -pub const NFT_LIMIT_PKTS: ::c_int = 0; -pub const NFT_LIMIT_PKT_BYTES: ::c_int = 1; - -pub const NFT_LIMIT_F_INV: ::c_int = 1 << 0; - -pub const NFT_QUEUE_FLAG_BYPASS: ::c_int = 0x01; -pub const NFT_QUEUE_FLAG_CPU_FANOUT: ::c_int = 0x02; -pub const NFT_QUEUE_FLAG_MASK: ::c_int = 0x03; - -pub const NFT_QUOTA_F_INV: ::c_int = 1 << 0; - -pub const NFT_REJECT_ICMP_UNREACH: ::c_int = 0; -pub const NFT_REJECT_TCP_RST: ::c_int = 1; -pub const NFT_REJECT_ICMPX_UNREACH: ::c_int = 2; - -pub const NFT_REJECT_ICMPX_NO_ROUTE: ::c_int = 0; -pub const NFT_REJECT_ICMPX_PORT_UNREACH: ::c_int = 1; -pub const NFT_REJECT_ICMPX_HOST_UNREACH: ::c_int = 2; -pub const NFT_REJECT_ICMPX_ADMIN_PROHIBITED: ::c_int = 3; - -pub const NFT_NAT_SNAT: ::c_int = 0; -pub const NFT_NAT_DNAT: ::c_int = 1; - -pub const NFT_TRACETYPE_UNSPEC: ::c_int = 0; -pub const NFT_TRACETYPE_POLICY: ::c_int = 1; -pub const NFT_TRACETYPE_RETURN: ::c_int = 2; -pub const NFT_TRACETYPE_RULE: ::c_int = 3; - -pub const NFT_NG_INCREMENTAL: ::c_int = 0; -pub const NFT_NG_RANDOM: ::c_int = 1; - -// linux/input.h -pub const FF_MAX: ::__u16 = 0x7f; -pub const FF_CNT: usize = FF_MAX as usize + 1; - -// linux/input-event-codes.h -pub const INPUT_PROP_MAX: ::__u16 = 0x1f; -pub const INPUT_PROP_CNT: usize = INPUT_PROP_MAX as usize + 1; -pub const EV_MAX: ::__u16 = 0x1f; -pub const EV_CNT: usize = EV_MAX as usize + 1; -pub const SYN_MAX: ::__u16 = 0xf; -pub const SYN_CNT: usize = SYN_MAX as usize + 1; -pub const KEY_MAX: ::__u16 = 0x2ff; -pub const KEY_CNT: usize = KEY_MAX as usize + 1; -pub const REL_MAX: ::__u16 = 0x0f; -pub const REL_CNT: usize = REL_MAX as usize + 1; -pub const ABS_MAX: ::__u16 = 0x3f; -pub const ABS_CNT: usize = ABS_MAX as usize + 1; -pub const SW_MAX: ::__u16 = 0x0f; -pub const SW_CNT: usize = SW_MAX as usize + 1; -pub const MSC_MAX: ::__u16 = 0x07; -pub const MSC_CNT: usize = MSC_MAX as usize + 1; -pub const LED_MAX: ::__u16 = 0x0f; -pub const LED_CNT: usize = LED_MAX as usize + 1; -pub const REP_MAX: ::__u16 = 0x01; -pub const REP_CNT: usize = REP_MAX as usize + 1; -pub const SND_MAX: ::__u16 = 0x07; -pub const SND_CNT: usize = SND_MAX as usize + 1; - -// linux/uinput.h -pub const UINPUT_VERSION: ::c_uint = 5; -pub const UINPUT_MAX_NAME_SIZE: usize = 80; - -// bionic/libc/kernel/uapi/linux/if_tun.h -pub const IFF_TUN: ::c_int = 0x0001; -pub const IFF_TAP: ::c_int = 0x0002; -pub const IFF_NAPI: ::c_int = 0x0010; -pub const IFF_NAPI_FRAGS: ::c_int = 0x0020; -pub const IFF_NO_PI: ::c_int = 0x1000; -pub const IFF_ONE_QUEUE: ::c_int = 0x2000; -pub const IFF_VNET_HDR: ::c_int = 0x4000; -pub const IFF_TUN_EXCL: ::c_int = 0x8000; -pub const IFF_MULTI_QUEUE: ::c_int = 0x0100; -pub const IFF_ATTACH_QUEUE: ::c_int = 0x0200; -pub const IFF_DETACH_QUEUE: ::c_int = 0x0400; -pub const IFF_PERSIST: ::c_int = 0x0800; -pub const IFF_NOFILTER: ::c_int = 0x1000; - -// start android/platform/bionic/libc/kernel/uapi/linux/if_ether.h -// from https://android.googlesource.com/platform/bionic/+/HEAD/libc/kernel/uapi/linux/if_ether.h -pub const ETH_ALEN: ::c_int = 6; -pub const ETH_HLEN: ::c_int = 14; -pub const ETH_ZLEN: ::c_int = 60; -pub const ETH_DATA_LEN: ::c_int = 1500; -pub const ETH_FRAME_LEN: ::c_int = 1514; -pub const ETH_FCS_LEN: ::c_int = 4; -pub const ETH_MIN_MTU: ::c_int = 68; -pub const ETH_MAX_MTU: ::c_int = 0xFFFF; -pub const ETH_P_LOOP: ::c_int = 0x0060; -pub const ETH_P_PUP: ::c_int = 0x0200; -pub const ETH_P_PUPAT: ::c_int = 0x0201; -pub const ETH_P_TSN: ::c_int = 0x22F0; -pub const ETH_P_IP: ::c_int = 0x0800; -pub const ETH_P_X25: ::c_int = 0x0805; -pub const ETH_P_ARP: ::c_int = 0x0806; -pub const ETH_P_BPQ: ::c_int = 0x08FF; -pub const ETH_P_IEEEPUP: ::c_int = 0x0a00; -pub const ETH_P_IEEEPUPAT: ::c_int = 0x0a01; -pub const ETH_P_BATMAN: ::c_int = 0x4305; -pub const ETH_P_DEC: ::c_int = 0x6000; -pub const ETH_P_DNA_DL: ::c_int = 0x6001; -pub const ETH_P_DNA_RC: ::c_int = 0x6002; -pub const ETH_P_DNA_RT: ::c_int = 0x6003; -pub const ETH_P_LAT: ::c_int = 0x6004; -pub const ETH_P_DIAG: ::c_int = 0x6005; -pub const ETH_P_CUST: ::c_int = 0x6006; -pub const ETH_P_SCA: ::c_int = 0x6007; -pub const ETH_P_TEB: ::c_int = 0x6558; -pub const ETH_P_RARP: ::c_int = 0x8035; -pub const ETH_P_ATALK: ::c_int = 0x809B; -pub const ETH_P_AARP: ::c_int = 0x80F3; -pub const ETH_P_8021Q: ::c_int = 0x8100; -/* see rust-lang/libc#924 pub const ETH_P_ERSPAN: ::c_int = 0x88BE;*/ -pub const ETH_P_IPX: ::c_int = 0x8137; -pub const ETH_P_IPV6: ::c_int = 0x86DD; -pub const ETH_P_PAUSE: ::c_int = 0x8808; -pub const ETH_P_SLOW: ::c_int = 0x8809; -pub const ETH_P_WCCP: ::c_int = 0x883E; -pub const ETH_P_MPLS_UC: ::c_int = 0x8847; -pub const ETH_P_MPLS_MC: ::c_int = 0x8848; -pub const ETH_P_ATMMPOA: ::c_int = 0x884c; -pub const ETH_P_PPP_DISC: ::c_int = 0x8863; -pub const ETH_P_PPP_SES: ::c_int = 0x8864; -pub const ETH_P_LINK_CTL: ::c_int = 0x886c; -pub const ETH_P_ATMFATE: ::c_int = 0x8884; -pub const ETH_P_PAE: ::c_int = 0x888E; -pub const ETH_P_AOE: ::c_int = 0x88A2; -pub const ETH_P_8021AD: ::c_int = 0x88A8; -pub const ETH_P_802_EX1: ::c_int = 0x88B5; -pub const ETH_P_TIPC: ::c_int = 0x88CA; -pub const ETH_P_MACSEC: ::c_int = 0x88E5; -pub const ETH_P_8021AH: ::c_int = 0x88E7; -pub const ETH_P_MVRP: ::c_int = 0x88F5; -pub const ETH_P_1588: ::c_int = 0x88F7; -pub const ETH_P_NCSI: ::c_int = 0x88F8; -pub const ETH_P_PRP: ::c_int = 0x88FB; -pub const ETH_P_FCOE: ::c_int = 0x8906; -/* see rust-lang/libc#924 pub const ETH_P_IBOE: ::c_int = 0x8915;*/ -pub const ETH_P_TDLS: ::c_int = 0x890D; -pub const ETH_P_FIP: ::c_int = 0x8914; -pub const ETH_P_80221: ::c_int = 0x8917; -pub const ETH_P_HSR: ::c_int = 0x892F; -/* see rust-lang/libc#924 pub const ETH_P_NSH: ::c_int = 0x894F;*/ -pub const ETH_P_LOOPBACK: ::c_int = 0x9000; -pub const ETH_P_QINQ1: ::c_int = 0x9100; -pub const ETH_P_QINQ2: ::c_int = 0x9200; -pub const ETH_P_QINQ3: ::c_int = 0x9300; -pub const ETH_P_EDSA: ::c_int = 0xDADA; -/* see rust-lang/libc#924 pub const ETH_P_IFE: ::c_int = 0xED3E;*/ -pub const ETH_P_AF_IUCV: ::c_int = 0xFBFB; -pub const ETH_P_802_3_MIN: ::c_int = 0x0600; -pub const ETH_P_802_3: ::c_int = 0x0001; -pub const ETH_P_AX25: ::c_int = 0x0002; -pub const ETH_P_ALL: ::c_int = 0x0003; -pub const ETH_P_802_2: ::c_int = 0x0004; -pub const ETH_P_SNAP: ::c_int = 0x0005; -pub const ETH_P_DDCMP: ::c_int = 0x0006; -pub const ETH_P_WAN_PPP: ::c_int = 0x0007; -pub const ETH_P_PPP_MP: ::c_int = 0x0008; -pub const ETH_P_LOCALTALK: ::c_int = 0x0009; -pub const ETH_P_CAN: ::c_int = 0x000C; -pub const ETH_P_CANFD: ::c_int = 0x000D; -pub const ETH_P_PPPTALK: ::c_int = 0x0010; -pub const ETH_P_TR_802_2: ::c_int = 0x0011; -pub const ETH_P_MOBITEX: ::c_int = 0x0015; -pub const ETH_P_CONTROL: ::c_int = 0x0016; -pub const ETH_P_IRDA: ::c_int = 0x0017; -pub const ETH_P_ECONET: ::c_int = 0x0018; -pub const ETH_P_HDLC: ::c_int = 0x0019; -pub const ETH_P_ARCNET: ::c_int = 0x001A; -pub const ETH_P_DSA: ::c_int = 0x001B; -pub const ETH_P_TRAILER: ::c_int = 0x001C; -pub const ETH_P_PHONET: ::c_int = 0x00F5; -pub const ETH_P_IEEE802154: ::c_int = 0x00F6; -pub const ETH_P_CAIF: ::c_int = 0x00F7; -pub const ETH_P_XDSA: ::c_int = 0x00F8; -/* see rust-lang/libc#924 pub const ETH_P_MAP: ::c_int = 0x00F9;*/ -// end android/platform/bionic/libc/kernel/uapi/linux/if_ether.h - -pub const SIOCADDRT: ::c_ulong = 0x0000890B; -pub const SIOCDELRT: ::c_ulong = 0x0000890C; -pub const SIOCGIFNAME: ::c_ulong = 0x00008910; -pub const SIOCSIFLINK: ::c_ulong = 0x00008911; -pub const SIOCGIFCONF: ::c_ulong = 0x00008912; -pub const SIOCGIFFLAGS: ::c_ulong = 0x00008913; -pub const SIOCSIFFLAGS: ::c_ulong = 0x00008914; -pub const SIOCGIFADDR: ::c_ulong = 0x00008915; -pub const SIOCSIFADDR: ::c_ulong = 0x00008916; -pub const SIOCGIFDSTADDR: ::c_ulong = 0x00008917; -pub const SIOCSIFDSTADDR: ::c_ulong = 0x00008918; -pub const SIOCGIFBRDADDR: ::c_ulong = 0x00008919; -pub const SIOCSIFBRDADDR: ::c_ulong = 0x0000891A; -pub const SIOCGIFNETMASK: ::c_ulong = 0x0000891B; -pub const SIOCSIFNETMASK: ::c_ulong = 0x0000891C; -pub const SIOCGIFMETRIC: ::c_ulong = 0x0000891D; -pub const SIOCSIFMETRIC: ::c_ulong = 0x0000891E; -pub const SIOCGIFMEM: ::c_ulong = 0x0000891F; -pub const SIOCSIFMEM: ::c_ulong = 0x00008920; -pub const SIOCGIFMTU: ::c_ulong = 0x00008921; -pub const SIOCSIFMTU: ::c_ulong = 0x00008922; -pub const SIOCSIFHWADDR: ::c_ulong = 0x00008924; -pub const SIOCGIFENCAP: ::c_ulong = 0x00008925; -pub const SIOCSIFENCAP: ::c_ulong = 0x00008926; -pub const SIOCGIFHWADDR: ::c_ulong = 0x00008927; -pub const SIOCGIFSLAVE: ::c_ulong = 0x00008929; -pub const SIOCSIFSLAVE: ::c_ulong = 0x00008930; -pub const SIOCADDMULTI: ::c_ulong = 0x00008931; -pub const SIOCDELMULTI: ::c_ulong = 0x00008932; -pub const SIOCDARP: ::c_ulong = 0x00008953; -pub const SIOCGARP: ::c_ulong = 0x00008954; -pub const SIOCSARP: ::c_ulong = 0x00008955; -pub const SIOCDRARP: ::c_ulong = 0x00008960; -pub const SIOCGRARP: ::c_ulong = 0x00008961; -pub const SIOCSRARP: ::c_ulong = 0x00008962; -pub const SIOCGIFMAP: ::c_ulong = 0x00008970; -pub const SIOCSIFMAP: ::c_ulong = 0x00008971; - -// linux/module.h -pub const MODULE_INIT_IGNORE_MODVERSIONS: ::c_uint = 0x0001; -pub const MODULE_INIT_IGNORE_VERMAGIC: ::c_uint = 0x0002; - -#[deprecated( - since = "0.2.55", - note = "ENOATTR is not available on Android; use ENODATA instead" -)] -pub const ENOATTR: ::c_int = ::ENODATA; - -// linux/if_alg.h -pub const ALG_SET_KEY: ::c_int = 1; -pub const ALG_SET_IV: ::c_int = 2; -pub const ALG_SET_OP: ::c_int = 3; -pub const ALG_SET_AEAD_ASSOCLEN: ::c_int = 4; -pub const ALG_SET_AEAD_AUTHSIZE: ::c_int = 5; - -pub const ALG_OP_DECRYPT: ::c_int = 0; -pub const ALG_OP_ENCRYPT: ::c_int = 1; - -// sys/mman.h -pub const MLOCK_ONFAULT: ::c_int = 0x01; - -// uapi/linux/vm_sockets.h -pub const VMADDR_CID_ANY: ::c_uint = 0xFFFFFFFF; -pub const VMADDR_CID_HYPERVISOR: ::c_uint = 0; -pub const VMADDR_CID_LOCAL: ::c_uint = 1; -pub const VMADDR_CID_HOST: ::c_uint = 2; -pub const VMADDR_PORT_ANY: ::c_uint = 0xFFFFFFFF; - -// uapi/linux/inotify.h -pub const IN_ACCESS: u32 = 0x0000_0001; -pub const IN_MODIFY: u32 = 0x0000_0002; -pub const IN_ATTRIB: u32 = 0x0000_0004; -pub const IN_CLOSE_WRITE: u32 = 0x0000_0008; -pub const IN_CLOSE_NOWRITE: u32 = 0x0000_0010; -pub const IN_CLOSE: u32 = IN_CLOSE_WRITE | IN_CLOSE_NOWRITE; -pub const IN_OPEN: u32 = 0x0000_0020; -pub const IN_MOVED_FROM: u32 = 0x0000_0040; -pub const IN_MOVED_TO: u32 = 0x0000_0080; -pub const IN_MOVE: u32 = IN_MOVED_FROM | IN_MOVED_TO; -pub const IN_CREATE: u32 = 0x0000_0100; -pub const IN_DELETE: u32 = 0x0000_0200; -pub const IN_DELETE_SELF: u32 = 0x0000_0400; -pub const IN_MOVE_SELF: u32 = 0x0000_0800; -pub const IN_UNMOUNT: u32 = 0x0000_2000; -pub const IN_Q_OVERFLOW: u32 = 0x0000_4000; -pub const IN_IGNORED: u32 = 0x0000_8000; -pub const IN_ONLYDIR: u32 = 0x0100_0000; -pub const IN_DONT_FOLLOW: u32 = 0x0200_0000; -pub const IN_EXCL_UNLINK: u32 = 0x0400_0000; - -pub const IN_MASK_CREATE: u32 = 0x1000_0000; -pub const IN_MASK_ADD: u32 = 0x2000_0000; -pub const IN_ISDIR: u32 = 0x4000_0000; -pub const IN_ONESHOT: u32 = 0x8000_0000; - -pub const IN_ALL_EVENTS: u32 = IN_ACCESS - | IN_MODIFY - | IN_ATTRIB - | IN_CLOSE_WRITE - | IN_CLOSE_NOWRITE - | IN_OPEN - | IN_MOVED_FROM - | IN_MOVED_TO - | IN_DELETE - | IN_CREATE - | IN_DELETE_SELF - | IN_MOVE_SELF; - -pub const IN_CLOEXEC: ::c_int = O_CLOEXEC; -pub const IN_NONBLOCK: ::c_int = O_NONBLOCK; - -pub const FUTEX_WAIT: ::c_int = 0; -pub const FUTEX_WAKE: ::c_int = 1; -pub const FUTEX_FD: ::c_int = 2; -pub const FUTEX_REQUEUE: ::c_int = 3; -pub const FUTEX_CMP_REQUEUE: ::c_int = 4; -pub const FUTEX_WAKE_OP: ::c_int = 5; -pub const FUTEX_LOCK_PI: ::c_int = 6; -pub const FUTEX_UNLOCK_PI: ::c_int = 7; -pub const FUTEX_TRYLOCK_PI: ::c_int = 8; -pub const FUTEX_WAIT_BITSET: ::c_int = 9; -pub const FUTEX_WAKE_BITSET: ::c_int = 10; -pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11; -pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12; - -pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; -pub const FUTEX_CLOCK_REALTIME: ::c_int = 256; -pub const FUTEX_CMD_MASK: ::c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); - -// linux/errqueue.h -pub const SO_EE_ORIGIN_NONE: u8 = 0; -pub const SO_EE_ORIGIN_LOCAL: u8 = 1; -pub const SO_EE_ORIGIN_ICMP: u8 = 2; -pub const SO_EE_ORIGIN_ICMP6: u8 = 3; -pub const SO_EE_ORIGIN_TXSTATUS: u8 = 4; -pub const SO_EE_ORIGIN_TIMESTAMPING: u8 = SO_EE_ORIGIN_TXSTATUS; - -// errno.h -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EWOULDBLOCK: ::c_int = EAGAIN; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -// linux/sched.h -pub const SCHED_NORMAL: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; -pub const SCHED_BATCH: ::c_int = 3; -pub const SCHED_IDLE: ::c_int = 5; -pub const SCHED_DEADLINE: ::c_int = 6; - -pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000; - -pub const CLONE_PIDFD: ::c_int = 0x1000; - -// linux/membarrier.h -pub const MEMBARRIER_CMD_QUERY: ::c_int = 0; -pub const MEMBARRIER_CMD_GLOBAL: ::c_int = 1 << 0; -pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: ::c_int = 1 << 1; -pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: ::c_int = 1 << 2; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: ::c_int = 1 << 3; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: ::c_int = 1 << 4; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 5; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 6; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 7; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 8; - -// linux/mempolicy.h -pub const MPOL_DEFAULT: ::c_int = 0; -pub const MPOL_PREFERRED: ::c_int = 1; -pub const MPOL_BIND: ::c_int = 2; -pub const MPOL_INTERLEAVE: ::c_int = 3; -pub const MPOL_LOCAL: ::c_int = 4; -pub const MPOL_F_NUMA_BALANCING: ::c_int = 1 << 13; -pub const MPOL_F_RELATIVE_NODES: ::c_int = 1 << 14; -pub const MPOL_F_STATIC_NODES: ::c_int = 1 << 15; - -// bits/seek_constants.h -pub const SEEK_DATA: ::c_int = 3; -pub const SEEK_HOLE: ::c_int = 4; - -// sys/socket.h -pub const AF_NFC: ::c_int = 39; -pub const AF_VSOCK: ::c_int = 40; -pub const PF_NFC: ::c_int = AF_NFC; -pub const PF_VSOCK: ::c_int = AF_VSOCK; - -pub const SOMAXCONN: ::c_int = 128; - -// sys/prctl.h -pub const PR_SET_PDEATHSIG: ::c_int = 1; -pub const PR_GET_PDEATHSIG: ::c_int = 2; -pub const PR_GET_SECUREBITS: ::c_int = 27; -pub const PR_SET_SECUREBITS: ::c_int = 28; - -// sys/system_properties.h -pub const PROP_VALUE_MAX: ::c_int = 92; -pub const PROP_NAME_MAX: ::c_int = 32; - -// sys/prctl.h -pub const PR_SET_VMA: ::c_int = 0x53564d41; -pub const PR_SET_VMA_ANON_NAME: ::c_int = 0; -pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38; -pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39; -pub const PR_GET_SECCOMP: ::c_int = 21; -pub const PR_SET_SECCOMP: ::c_int = 22; -pub const PR_GET_TIMING: ::c_int = 13; -pub const PR_SET_TIMING: ::c_int = 14; -pub const PR_TIMING_STATISTICAL: ::c_int = 0; -pub const PR_TIMING_TIMESTAMP: ::c_int = 1; - -// linux/if_addr.h -pub const IFA_UNSPEC: ::c_ushort = 0; -pub const IFA_ADDRESS: ::c_ushort = 1; -pub const IFA_LOCAL: ::c_ushort = 2; -pub const IFA_LABEL: ::c_ushort = 3; -pub const IFA_BROADCAST: ::c_ushort = 4; -pub const IFA_ANYCAST: ::c_ushort = 5; -pub const IFA_CACHEINFO: ::c_ushort = 6; -pub const IFA_MULTICAST: ::c_ushort = 7; - -pub const IFA_F_SECONDARY: u32 = 0x01; -pub const IFA_F_TEMPORARY: u32 = 0x01; -pub const IFA_F_NODAD: u32 = 0x02; -pub const IFA_F_OPTIMISTIC: u32 = 0x04; -pub const IFA_F_DADFAILED: u32 = 0x08; -pub const IFA_F_HOMEADDRESS: u32 = 0x10; -pub const IFA_F_DEPRECATED: u32 = 0x20; -pub const IFA_F_TENTATIVE: u32 = 0x40; -pub const IFA_F_PERMANENT: u32 = 0x80; - -// linux/if_link.h -pub const IFLA_UNSPEC: ::c_ushort = 0; -pub const IFLA_ADDRESS: ::c_ushort = 1; -pub const IFLA_BROADCAST: ::c_ushort = 2; -pub const IFLA_IFNAME: ::c_ushort = 3; -pub const IFLA_MTU: ::c_ushort = 4; -pub const IFLA_LINK: ::c_ushort = 5; -pub const IFLA_QDISC: ::c_ushort = 6; -pub const IFLA_STATS: ::c_ushort = 7; -pub const IFLA_COST: ::c_ushort = 8; -pub const IFLA_PRIORITY: ::c_ushort = 9; -pub const IFLA_MASTER: ::c_ushort = 10; -pub const IFLA_WIRELESS: ::c_ushort = 11; -pub const IFLA_PROTINFO: ::c_ushort = 12; -pub const IFLA_TXQLEN: ::c_ushort = 13; -pub const IFLA_MAP: ::c_ushort = 14; -pub const IFLA_WEIGHT: ::c_ushort = 15; -pub const IFLA_OPERSTATE: ::c_ushort = 16; -pub const IFLA_LINKMODE: ::c_ushort = 17; -pub const IFLA_LINKINFO: ::c_ushort = 18; -pub const IFLA_NET_NS_PID: ::c_ushort = 19; -pub const IFLA_IFALIAS: ::c_ushort = 20; -pub const IFLA_NUM_VF: ::c_ushort = 21; -pub const IFLA_VFINFO_LIST: ::c_ushort = 22; -pub const IFLA_STATS64: ::c_ushort = 23; -pub const IFLA_VF_PORTS: ::c_ushort = 24; -pub const IFLA_PORT_SELF: ::c_ushort = 25; -pub const IFLA_AF_SPEC: ::c_ushort = 26; -pub const IFLA_GROUP: ::c_ushort = 27; -pub const IFLA_NET_NS_FD: ::c_ushort = 28; -pub const IFLA_EXT_MASK: ::c_ushort = 29; -pub const IFLA_PROMISCUITY: ::c_ushort = 30; -pub const IFLA_NUM_TX_QUEUES: ::c_ushort = 31; -pub const IFLA_NUM_RX_QUEUES: ::c_ushort = 32; -pub const IFLA_CARRIER: ::c_ushort = 33; -pub const IFLA_PHYS_PORT_ID: ::c_ushort = 34; -pub const IFLA_CARRIER_CHANGES: ::c_ushort = 35; -pub const IFLA_PHYS_SWITCH_ID: ::c_ushort = 36; -pub const IFLA_LINK_NETNSID: ::c_ushort = 37; -pub const IFLA_PHYS_PORT_NAME: ::c_ushort = 38; -pub const IFLA_PROTO_DOWN: ::c_ushort = 39; -pub const IFLA_GSO_MAX_SEGS: ::c_ushort = 40; -pub const IFLA_GSO_MAX_SIZE: ::c_ushort = 41; -pub const IFLA_PAD: ::c_ushort = 42; -pub const IFLA_XDP: ::c_ushort = 43; -pub const IFLA_EVENT: ::c_ushort = 44; -pub const IFLA_NEW_NETNSID: ::c_ushort = 45; -pub const IFLA_IF_NETNSID: ::c_ushort = 46; -pub const IFLA_TARGET_NETNSID: ::c_ushort = IFLA_IF_NETNSID; -pub const IFLA_CARRIER_UP_COUNT: ::c_ushort = 47; -pub const IFLA_CARRIER_DOWN_COUNT: ::c_ushort = 48; -pub const IFLA_NEW_IFINDEX: ::c_ushort = 49; -pub const IFLA_MIN_MTU: ::c_ushort = 50; -pub const IFLA_MAX_MTU: ::c_ushort = 51; - -pub const IFLA_INFO_UNSPEC: ::c_ushort = 0; -pub const IFLA_INFO_KIND: ::c_ushort = 1; -pub const IFLA_INFO_DATA: ::c_ushort = 2; -pub const IFLA_INFO_XSTATS: ::c_ushort = 3; -pub const IFLA_INFO_SLAVE_KIND: ::c_ushort = 4; -pub const IFLA_INFO_SLAVE_DATA: ::c_ushort = 5; - -// linux/rtnetlink.h -pub const TCA_UNSPEC: ::c_ushort = 0; -pub const TCA_KIND: ::c_ushort = 1; -pub const TCA_OPTIONS: ::c_ushort = 2; -pub const TCA_STATS: ::c_ushort = 3; -pub const TCA_XSTATS: ::c_ushort = 4; -pub const TCA_RATE: ::c_ushort = 5; -pub const TCA_FCNT: ::c_ushort = 6; -pub const TCA_STATS2: ::c_ushort = 7; -pub const TCA_STAB: ::c_ushort = 8; - -pub const RTM_NEWLINK: u16 = 16; -pub const RTM_DELLINK: u16 = 17; -pub const RTM_GETLINK: u16 = 18; -pub const RTM_SETLINK: u16 = 19; -pub const RTM_NEWADDR: u16 = 20; -pub const RTM_DELADDR: u16 = 21; -pub const RTM_GETADDR: u16 = 22; -pub const RTM_NEWROUTE: u16 = 24; -pub const RTM_DELROUTE: u16 = 25; -pub const RTM_GETROUTE: u16 = 26; -pub const RTM_NEWNEIGH: u16 = 28; -pub const RTM_DELNEIGH: u16 = 29; -pub const RTM_GETNEIGH: u16 = 30; -pub const RTM_NEWRULE: u16 = 32; -pub const RTM_DELRULE: u16 = 33; -pub const RTM_GETRULE: u16 = 34; -pub const RTM_NEWQDISC: u16 = 36; -pub const RTM_DELQDISC: u16 = 37; -pub const RTM_GETQDISC: u16 = 38; -pub const RTM_NEWTCLASS: u16 = 40; -pub const RTM_DELTCLASS: u16 = 41; -pub const RTM_GETTCLASS: u16 = 42; -pub const RTM_NEWTFILTER: u16 = 44; -pub const RTM_DELTFILTER: u16 = 45; -pub const RTM_GETTFILTER: u16 = 46; -pub const RTM_NEWACTION: u16 = 48; -pub const RTM_DELACTION: u16 = 49; -pub const RTM_GETACTION: u16 = 50; -pub const RTM_NEWPREFIX: u16 = 52; -pub const RTM_GETMULTICAST: u16 = 58; -pub const RTM_GETANYCAST: u16 = 62; -pub const RTM_NEWNEIGHTBL: u16 = 64; -pub const RTM_GETNEIGHTBL: u16 = 66; -pub const RTM_SETNEIGHTBL: u16 = 67; -pub const RTM_NEWNDUSEROPT: u16 = 68; -pub const RTM_NEWADDRLABEL: u16 = 72; -pub const RTM_DELADDRLABEL: u16 = 73; -pub const RTM_GETADDRLABEL: u16 = 74; -pub const RTM_GETDCB: u16 = 78; -pub const RTM_SETDCB: u16 = 79; -pub const RTM_NEWNETCONF: u16 = 80; -pub const RTM_GETNETCONF: u16 = 82; -pub const RTM_NEWMDB: u16 = 84; -pub const RTM_DELMDB: u16 = 85; -pub const RTM_GETMDB: u16 = 86; -pub const RTM_NEWNSID: u16 = 88; -pub const RTM_DELNSID: u16 = 89; -pub const RTM_GETNSID: u16 = 90; - -pub const RTM_F_NOTIFY: ::c_uint = 0x100; -pub const RTM_F_CLONED: ::c_uint = 0x200; -pub const RTM_F_EQUALIZE: ::c_uint = 0x400; -pub const RTM_F_PREFIX: ::c_uint = 0x800; - -pub const RTA_UNSPEC: ::c_ushort = 0; -pub const RTA_DST: ::c_ushort = 1; -pub const RTA_SRC: ::c_ushort = 2; -pub const RTA_IIF: ::c_ushort = 3; -pub const RTA_OIF: ::c_ushort = 4; -pub const RTA_GATEWAY: ::c_ushort = 5; -pub const RTA_PRIORITY: ::c_ushort = 6; -pub const RTA_PREFSRC: ::c_ushort = 7; -pub const RTA_METRICS: ::c_ushort = 8; -pub const RTA_MULTIPATH: ::c_ushort = 9; -pub const RTA_PROTOINFO: ::c_ushort = 10; // No longer used -pub const RTA_FLOW: ::c_ushort = 11; -pub const RTA_CACHEINFO: ::c_ushort = 12; -pub const RTA_SESSION: ::c_ushort = 13; // No longer used -pub const RTA_MP_ALGO: ::c_ushort = 14; // No longer used -pub const RTA_TABLE: ::c_ushort = 15; -pub const RTA_MARK: ::c_ushort = 16; -pub const RTA_MFC_STATS: ::c_ushort = 17; - -pub const RTN_UNSPEC: ::c_uchar = 0; -pub const RTN_UNICAST: ::c_uchar = 1; -pub const RTN_LOCAL: ::c_uchar = 2; -pub const RTN_BROADCAST: ::c_uchar = 3; -pub const RTN_ANYCAST: ::c_uchar = 4; -pub const RTN_MULTICAST: ::c_uchar = 5; -pub const RTN_BLACKHOLE: ::c_uchar = 6; -pub const RTN_UNREACHABLE: ::c_uchar = 7; -pub const RTN_PROHIBIT: ::c_uchar = 8; -pub const RTN_THROW: ::c_uchar = 9; -pub const RTN_NAT: ::c_uchar = 10; -pub const RTN_XRESOLVE: ::c_uchar = 11; - -pub const RTPROT_UNSPEC: ::c_uchar = 0; -pub const RTPROT_REDIRECT: ::c_uchar = 1; -pub const RTPROT_KERNEL: ::c_uchar = 2; -pub const RTPROT_BOOT: ::c_uchar = 3; -pub const RTPROT_STATIC: ::c_uchar = 4; - -pub const RT_SCOPE_UNIVERSE: ::c_uchar = 0; -pub const RT_SCOPE_SITE: ::c_uchar = 200; -pub const RT_SCOPE_LINK: ::c_uchar = 253; -pub const RT_SCOPE_HOST: ::c_uchar = 254; -pub const RT_SCOPE_NOWHERE: ::c_uchar = 255; - -pub const RT_TABLE_UNSPEC: ::c_uchar = 0; -pub const RT_TABLE_COMPAT: ::c_uchar = 252; -pub const RT_TABLE_DEFAULT: ::c_uchar = 253; -pub const RT_TABLE_MAIN: ::c_uchar = 254; -pub const RT_TABLE_LOCAL: ::c_uchar = 255; - -pub const RTMSG_NEWDEVICE: u32 = 0x11; -pub const RTMSG_DELDEVICE: u32 = 0x12; -pub const RTMSG_NEWROUTE: u32 = 0x21; -pub const RTMSG_DELROUTE: u32 = 0x22; - -// Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the -// following are only available on newer Linux versions than the versions -// currently used in CI in some configurations, so we define them here. -cfg_if! { - if #[cfg(not(target_arch = "s390x"))] { - pub const XFS_SUPER_MAGIC: ::c_long = 0x58465342; - } else if #[cfg(target_arch = "s390x")] { - pub const XFS_SUPER_MAGIC: ::c_uint = 0x58465342; - } -} - -f! { - pub fn CMSG_NXTHDR(mhdr: *const msghdr, - cmsg: *const cmsghdr) -> *mut cmsghdr { - let next = (cmsg as usize - + super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) - as *mut cmsghdr; - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; - if (next.offset(1)) as usize > max { - 0 as *mut cmsghdr - } else { - next as *mut cmsghdr - } - } - - pub fn CPU_ALLOC_SIZE(count: ::c_int) -> ::size_t { - let _dummy: cpu_set_t = ::mem::zeroed(); - let size_in_bits = 8 * ::mem::size_of_val(&_dummy.__bits[0]); - ((count as ::size_t + size_in_bits - 1) / 8) as ::size_t - } - - pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { - for slot in cpuset.__bits.iter_mut() { - *slot = 0; - } - } - - pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - cpuset.__bits[idx] |= 1 << offset; - () - } - - pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.__bits[0]); // 32, 64 etc - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - cpuset.__bits[idx] &= !(1 << offset); - () - } - - pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.__bits[0]); - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - 0 != (cpuset.__bits[idx] & (1 << offset)) - } - - pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> ::c_int { - let mut s: u32 = 0; - let size_of_mask = ::mem::size_of_val(&cpuset.__bits[0]); - for i in cpuset.__bits[..(size / size_of_mask)].iter() { - s += i.count_ones(); - }; - s as ::c_int - } - - pub fn CPU_COUNT(cpuset: &cpu_set_t) -> ::c_int { - CPU_COUNT_S(::mem::size_of::(), cpuset) - } - - pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { - set1.__bits == set2.__bits - } - - pub fn major(dev: ::dev_t) -> ::c_int { - ((dev >> 8) & 0xfff) as ::c_int - } - pub fn minor(dev: ::dev_t) -> ::c_int { - ((dev & 0xff) | ((dev >> 12) & 0xfff00)) as ::c_int - } - pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { - return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1) - } - - pub fn SO_EE_OFFENDER(ee: *const ::sock_extended_err) -> *mut ::sockaddr { - ee.offset(1) as *mut ::sockaddr - } -} - -safe_f! { - pub {const} fn makedev(ma: ::c_uint, mi: ::c_uint) -> ::dev_t { - let ma = ma as ::dev_t; - let mi = mi as ::dev_t; - ((ma & 0xfff) << 8) | (mi & 0xff) | ((mi & 0xfff00) << 12) - } - -} - -extern "C" { - pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn prlimit( - pid: ::pid_t, - resource: ::c_int, - new_limit: *const ::rlimit, - old_limit: *mut ::rlimit, - ) -> ::c_int; - pub fn prlimit64( - pid: ::pid_t, - resource: ::c_int, - new_limit: *const ::rlimit64, - old_limit: *mut ::rlimit64, - ) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; - pub fn mlock2(addr: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::size_t, - serv: *mut ::c_char, - sevlen: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, count: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, count: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn process_vm_readv( - pid: ::pid_t, - local_iov: *const ::iovec, - local_iov_count: ::c_ulong, - remote_iov: *const ::iovec, - remote_iov_count: ::c_ulong, - flags: ::c_ulong, - ) -> ::ssize_t; - pub fn process_vm_writev( - pid: ::pid_t, - local_iov: *const ::iovec, - local_iov_count: ::c_ulong, - remote_iov: *const ::iovec, - remote_iov_count: ::c_ulong, - flags: ::c_ulong, - ) -> ::ssize_t; - pub fn ptrace(request: ::c_int, ...) -> ::c_long; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - pub fn __sched_cpualloc(count: ::size_t) -> *mut ::cpu_set_t; - pub fn __sched_cpufree(set: *mut ::cpu_set_t); - pub fn __sched_cpucount(setsize: ::size_t, set: *const cpu_set_t) -> ::c_int; - pub fn sched_getcpu() -> ::c_int; - pub fn mallinfo() -> ::mallinfo; - // available from API 23 - pub fn malloc_info(options: ::c_int, stream: *mut ::FILE) -> ::c_int; - - pub fn malloc_usable_size(ptr: *const ::c_void) -> ::size_t; - - pub fn utmpname(name: *const ::c_char) -> ::c_int; - pub fn setutent(); - pub fn getutent() -> *mut utmp; - - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn fallocate(fd: ::c_int, mode: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn fallocate64(fd: ::c_int, mode: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn posix_fallocate64(fd: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; - pub fn getxattr( - path: *const c_char, - name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; - pub fn lgetxattr( - path: *const c_char, - name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; - pub fn fgetxattr( - filedes: ::c_int, - name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; - pub fn setxattr( - path: *const c_char, - name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn lsetxattr( - path: *const c_char, - name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn fsetxattr( - filedes: ::c_int, - name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn listxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn llistxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn flistxattr(filedes: ::c_int, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn removexattr(path: *const c_char, name: *const c_char) -> ::c_int; - pub fn lremovexattr(path: *const c_char, name: *const c_char) -> ::c_int; - pub fn fremovexattr(filedes: ::c_int, name: *const c_char) -> ::c_int; - pub fn signalfd(fd: ::c_int, mask: *const ::sigset_t, flags: ::c_int) -> ::c_int; - pub fn timerfd_create(clock: ::clockid_t, flags: ::c_int) -> ::c_int; - pub fn timerfd_gettime(fd: ::c_int, current_value: *mut itimerspec) -> ::c_int; - pub fn timerfd_settime( - fd: ::c_int, - flags: ::c_int, - new_value: *const itimerspec, - old_value: *mut itimerspec, - ) -> ::c_int; - pub fn syscall(num: ::c_long, ...) -> ::c_long; - pub fn sched_getaffinity(pid: ::pid_t, cpusetsize: ::size_t, cpuset: *mut cpu_set_t) - -> ::c_int; - pub fn sched_setaffinity( - pid: ::pid_t, - cpusetsize: ::size_t, - cpuset: *const cpu_set_t, - ) -> ::c_int; - pub fn epoll_create(size: ::c_int) -> ::c_int; - pub fn epoll_create1(flags: ::c_int) -> ::c_int; - pub fn epoll_wait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - ) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) - -> ::c_int; - pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param, - ) -> ::c_int; - pub fn unshare(flags: ::c_int) -> ::c_int; - pub fn umount(target: *const ::c_char) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn tee(fd_in: ::c_int, fd_out: ::c_int, len: ::size_t, flags: ::c_uint) -> ::ssize_t; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; - pub fn splice( - fd_in: ::c_int, - off_in: *mut ::loff_t, - fd_out: ::c_int, - off_out: *mut ::loff_t, - len: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; - pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; - pub fn setns(fd: ::c_int, nstype: ::c_int) -> ::c_int; - pub fn swapoff(puath: *const ::c_char) -> ::c_int; - pub fn vmsplice( - fd: ::c_int, - iov: *const ::iovec, - nr_segs: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; - pub fn mount( - src: *const ::c_char, - target: *const ::c_char, - fstype: *const ::c_char, - flags: ::c_ulong, - data: *const ::c_void, - ) -> ::c_int; - pub fn personality(persona: ::c_uint) -> ::c_int; - pub fn prctl(option: ::c_int, ...) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; - pub fn ppoll( - fds: *mut ::pollfd, - nfds: nfds_t, - timeout: *const ::timespec, - sigmask: *const sigset_t, - ) -> ::c_int; - pub fn pthread_mutex_timedlock( - lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_getpshared( - attr: *const ::pthread_barrierattr_t, - shared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_barrierattr_setpshared( - attr: *mut ::pthread_barrierattr_t, - shared: ::c_int, - ) -> ::c_int; - pub fn pthread_barrier_init( - barrier: *mut pthread_barrier_t, - attr: *const ::pthread_barrierattr_t, - count: ::c_uint, - ) -> ::c_int; - pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn clone( - cb: extern "C" fn(*mut ::c_void) -> ::c_int, - child_stack: *mut ::c_void, - flags: ::c_int, - arg: *mut ::c_void, - ... - ) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; - pub fn pthread_attr_getguardsize( - attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t, - ) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; - pub fn pthread_condattr_getpshared( - attr: *const pthread_condattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn sysinfo(info: *mut ::sysinfo) -> ::c_int; - pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; - pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; - pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sendfile( - out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut off_t, - count: ::size_t, - ) -> ::ssize_t; - pub fn setfsgid(gid: ::gid_t) -> ::c_int; - pub fn setfsuid(uid: ::uid_t) -> ::c_int; - pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; - pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - pub fn getpwnam_r( - name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn getpwuid_r( - uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn sigtimedwait( - set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - pub fn getgrouplist( - user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; - pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; - pub fn pthread_mutexattr_getpshared( - attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; - pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn __errno() -> *mut ::c_int; - pub fn inotify_rm_watch(fd: ::c_int, wd: u32) -> ::c_int; - pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *const ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - ) -> ::c_int; - pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn inotify_init() -> ::c_int; - pub fn inotify_init1(flags: ::c_int) -> ::c_int; - pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int; - - pub fn regcomp(preg: *mut ::regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; - - pub fn regexec( - preg: *const ::regex_t, - input: *const ::c_char, - nmatch: ::size_t, - pmatch: *mut regmatch_t, - eflags: ::c_int, - ) -> ::c_int; - - pub fn regerror( - errcode: ::c_int, - preg: *const ::regex_t, - errbuf: *mut ::c_char, - errbuf_size: ::size_t, - ) -> ::size_t; - - pub fn regfree(preg: *mut ::regex_t); - - pub fn android_set_abort_message(msg: *const ::c_char); - - pub fn gettid() -> ::pid_t; - - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; - - pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int; - - pub fn __system_property_set(__name: *const ::c_char, __value: *const ::c_char) -> ::c_int; - pub fn __system_property_get(__name: *const ::c_char, __value: *mut ::c_char) -> ::c_int; - pub fn __system_property_find(__name: *const ::c_char) -> *const prop_info; - pub fn __system_property_find_nth(__n: ::c_uint) -> *const prop_info; - pub fn __system_property_foreach( - __callback: unsafe extern "C" fn(__pi: *const prop_info, __cookie: *mut ::c_void), - __cookie: *mut ::c_void, - ) -> ::c_int; - - // #include - /// Only available in API Version 21+ - pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut dl_phdr_info, - size: usize, - data: *mut ::c_void, - ) -> ::c_int, - >, - data: *mut ::c_void, - ) -> ::c_int; - - pub fn arc4random() -> u32; - pub fn arc4random_uniform(__upper_bound: u32) -> u32; - pub fn arc4random_buf(__buf: *mut ::c_void, __n: ::size_t); - - pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; - - pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; - - pub fn dirname(path: *const ::c_char) -> *mut ::c_char; - pub fn basename(path: *const ::c_char) -> *mut ::c_char; - pub fn getopt_long( - argc: ::c_int, - argv: *const *mut c_char, - optstring: *const c_char, - longopts: *const option, - longindex: *mut ::c_int, - ) -> ::c_int; - - pub fn sync(); - pub fn syncfs(fd: ::c_int) -> ::c_int; - - pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; -} - -cfg_if! { - if #[cfg(target_pointer_width = "32")] { - mod b32; - pub use self::b32::*; - } else if #[cfg(target_pointer_width = "64")] { - mod b64; - pub use self::b64::*; - } else { - // Unknown target_pointer_width - } -} - -impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { - #[repr(C)] - struct siginfo_sigfault { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - si_addr: *mut ::c_void, - } - (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr - } - - pub unsafe fn si_value(&self) -> ::sigval { - #[repr(C)] - struct siginfo_timer { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - _si_tid: ::c_int, - _si_overrun: ::c_int, - si_sigval: ::sigval, - } - (*(self as *const siginfo_t as *const siginfo_timer)).si_sigval - } -} - -cfg_if! { - if #[cfg(libc_union)] { - // Internal, for casts to access union fields - #[repr(C)] - struct sifields_sigchld { - si_pid: ::pid_t, - si_uid: ::uid_t, - si_status: ::c_int, - si_utime: ::c_long, - si_stime: ::c_long, - } - impl ::Copy for sifields_sigchld {} - impl ::Clone for sifields_sigchld { - fn clone(&self) -> sifields_sigchld { - *self - } - } - - // Internal, for casts to access union fields - #[repr(C)] - union sifields { - _align_pointer: *mut ::c_void, - sigchld: sifields_sigchld, - } - - // Internal, for casts to access union fields. Note that some variants - // of sifields start with a pointer, which makes the alignment of - // sifields vary on 32-bit and 64-bit architectures. - #[repr(C)] - struct siginfo_f { - _siginfo_base: [::c_int; 3], - sifields: sifields, - } - - impl siginfo_t { - unsafe fn sifields(&self) -> &sifields { - &(*(self as *const siginfo_t as *const siginfo_f)).sifields - } - - pub unsafe fn si_pid(&self) -> ::pid_t { - self.sifields().sigchld.si_pid - } - - pub unsafe fn si_uid(&self) -> ::uid_t { - self.sifields().sigchld.si_uid - } - - pub unsafe fn si_status(&self) -> ::c_int { - self.sifields().sigchld.si_status - } - - pub unsafe fn si_utime(&self) -> ::c_long { - self.sifields().sigchld.si_utime - } - - pub unsafe fn si_stime(&self) -> ::c_long { - self.sifields().sigchld.si_stime - } - } - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/align.rs deleted file mode 100644 index b9ea3f39e..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/align.rs +++ /dev/null @@ -1,74 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - #[allow(missing_debug_implementations)] - #[repr(align(4))] - pub struct pthread_mutex_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - #[repr(align(4))] - pub struct pthread_rwlock_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - #[repr(align(4))] - pub struct pthread_mutexattr_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - #[repr(align(4))] - pub struct pthread_rwlockattr_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], - } - - #[repr(align(4))] - pub struct pthread_condattr_t { - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - - s_no_extra_traits! { - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct pthread_cond_t { - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } - - } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_cond_t {} - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_cond_t") - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - } - } - }; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/mod.rs deleted file mode 100644 index 5b947b634..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/mod.rs +++ /dev/null @@ -1,1898 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; -pub type useconds_t = u32; -pub type dev_t = u32; -pub type socklen_t = u32; -pub type pthread_t = c_ulong; -pub type mode_t = u32; -pub type ino64_t = u64; -pub type off64_t = i64; -pub type blkcnt64_t = i32; -pub type rlim64_t = u64; -pub type shmatt_t = ::c_ulong; -pub type mqd_t = ::c_int; -pub type msgqnum_t = ::c_ulong; -pub type msglen_t = ::c_ulong; -pub type nfds_t = ::c_ulong; -pub type nl_item = ::c_int; -pub type idtype_t = ::c_uint; -pub type loff_t = i64; -pub type pthread_key_t = ::c_uint; - -pub type clock_t = c_long; -pub type time_t = c_long; -pub type suseconds_t = c_long; -pub type ino_t = u64; -pub type off_t = i64; -pub type blkcnt_t = i32; - -pub type blksize_t = c_long; -pub type fsblkcnt_t = u32; -pub type fsfilcnt_t = u32; -pub type rlim_t = ::c_ulonglong; -pub type c_long = i32; -pub type c_ulong = u32; -pub type nlink_t = u32; - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos64_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos64_t {} -impl ::Clone for fpos64_t { - fn clone(&self) -> fpos64_t { - *self - } -} - -s! { - pub struct rlimit64 { - pub rlim_cur: rlim64_t, - pub rlim_max: rlim64_t, - } - - pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - } - - pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - } - - pub struct spwd { - pub sp_namp: *mut ::c_char, - pub sp_pwdp: *mut ::c_char, - pub sp_lstchg: ::c_long, - pub sp_min: ::c_long, - pub sp_max: ::c_long, - pub sp_warn: ::c_long, - pub sp_inact: ::c_long, - pub sp_expire: ::c_long, - pub sp_flag: ::c_ulong, - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct dqblk { - pub dqb_bhardlimit: u64, - pub dqb_bsoftlimit: u64, - pub dqb_curspace: u64, - pub dqb_ihardlimit: u64, - pub dqb_isoftlimit: u64, - pub dqb_curinodes: u64, - pub dqb_btime: u64, - pub dqb_itime: u64, - pub dqb_valid: u32, - } - - pub struct signalfd_siginfo { - pub ssi_signo: u32, - pub ssi_errno: i32, - pub ssi_code: i32, - pub ssi_pid: u32, - pub ssi_uid: u32, - pub ssi_fd: i32, - pub ssi_tid: u32, - pub ssi_band: u32, - pub ssi_overrun: u32, - pub ssi_trapno: u32, - pub ssi_status: i32, - pub ssi_int: i32, - pub ssi_ptr: u64, - pub ssi_utime: u64, - pub ssi_stime: u64, - pub ssi_addr: u64, - pub ssi_addr_lsb: u16, - _pad2: u16, - pub ssi_syscall: i32, - pub ssi_call_addr: u64, - pub ssi_arch: u32, - _pad: [u8; 28], - } - - pub struct fsid_t { - __val: [::c_int; 2], - } - - pub struct cpu_set_t { - bits: [u32; 32], - } - - pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, - } - - // System V IPC - pub struct msginfo { - pub msgpool: ::c_int, - pub msgmap: ::c_int, - pub msgmax: ::c_int, - pub msgmnb: ::c_int, - pub msgmni: ::c_int, - pub msgssz: ::c_int, - pub msgtql: ::c_int, - pub msgseg: ::c_ushort, - } - - pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, - } - - pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, - __td: *mut ::c_void, - __lock: [::c_int; 2], - __err: ::c_int, - __ret: ::ssize_t, - pub aio_offset: off_t, - __next: *mut ::c_void, - __prev: *mut ::c_void, - __dummy4: [::c_char; 24], - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_int, - __unused1: ::c_long, - __unused2: ::c_long - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - pub __c_ispeed: ::speed_t, - pub __c_ospeed: ::speed_t, - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct pthread_attr_t { - __size: [u32; 11] - } - - pub struct sigset_t { - __val: [::c_ulong; 32], - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct sem_t { - __val: [::c_int; 4], - } - pub struct stat { - pub st_dev: ::dev_t, - __st_dev_padding: ::c_int, - __st_ino_truncated: ::c_long, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_int, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::ino_t, - } - - pub struct stat64 { - pub st_dev: ::dev_t, - __st_dev_padding: ::c_int, - __st_ino_truncated: ::c_long, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_int, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::ino_t, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_int, - pub shm_dtime: ::time_t, - __unused2: ::c_int, - pub shm_ctime: ::time_t, - __unused3: ::c_int, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __unused1: ::c_int, - pub msg_rtime: ::time_t, - __unused2: ::c_int, - pub msg_ctime: ::time_t, - __unused3: ::c_int, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u32, - pub f_bfree: u32, - pub f_bavail: u32, - pub f_files: u32, - pub f_ffree: u32, - pub f_favail: u32, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct arpd_request { - pub req: ::c_ushort, - pub ip: u32, - pub dev: ::c_ulong, - pub stamp: ::c_ulong, - pub updated: ::c_ulong, - pub ha: [::c_uchar; ::MAX_ADDR_LEN], - } -} - -s_no_extra_traits! { - pub struct dirent { - pub d_ino: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], - } - - pub struct dirent64 { - pub d_ino: ::ino64_t, - pub d_off: ::off64_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], - } - - pub struct sysinfo { - pub uptime: ::c_ulong, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub __reserved: [::c_char; 256], - } - - pub struct mq_attr { - pub mq_flags: ::c_long, - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_curmsgs: ::c_long, - pad: [::c_long; 4] - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent {} - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for dirent64 { - fn eq(&self, other: &dirent64) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for dirent64 {} - impl ::fmt::Debug for dirent64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent64") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - impl ::hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for sysinfo { - fn eq(&self, other: &sysinfo) -> bool { - self.uptime == other.uptime - && self.loads == other.loads - && self.totalram == other.totalram - && self.freeram == other.freeram - && self.sharedram == other.sharedram - && self.bufferram == other.bufferram - && self.totalswap == other.totalswap - && self.freeswap == other.freeswap - && self.procs == other.procs - && self.pad == other.pad - && self.totalhigh == other.totalhigh - && self.freehigh == other.freehigh - && self.mem_unit == other.mem_unit - && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for sysinfo {} - impl ::fmt::Debug for sysinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sysinfo") - .field("uptime", &self.uptime) - .field("loads", &self.loads) - .field("totalram", &self.totalram) - .field("freeram", &self.freeram) - .field("sharedram", &self.sharedram) - .field("bufferram", &self.bufferram) - .field("totalswap", &self.totalswap) - .field("freeswap", &self.freeswap) - .field("procs", &self.procs) - .field("pad", &self.pad) - .field("totalhigh", &self.totalhigh) - .field("freehigh", &self.freehigh) - .field("mem_unit", &self.mem_unit) - // FIXME: .field("__reserved", &self.__reserved) - .finish() - } - } - impl ::hash::Hash for sysinfo { - fn hash(&self, state: &mut H) { - self.uptime.hash(state); - self.loads.hash(state); - self.totalram.hash(state); - self.freeram.hash(state); - self.sharedram.hash(state); - self.bufferram.hash(state); - self.totalswap.hash(state); - self.freeswap.hash(state); - self.procs.hash(state); - self.pad.hash(state); - self.totalhigh.hash(state); - self.freehigh.hash(state); - self.mem_unit.hash(state); - self.__reserved.hash(state); - } - } - - impl PartialEq for mq_attr { - fn eq(&self, other: &mq_attr) -> bool { - self.mq_flags == other.mq_flags && - self.mq_maxmsg == other.mq_maxmsg && - self.mq_msgsize == other.mq_msgsize && - self.mq_curmsgs == other.mq_curmsgs - } - } - impl Eq for mq_attr {} - impl ::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mq_attr") - .field("mq_flags", &self.mq_flags) - .field("mq_maxmsg", &self.mq_maxmsg) - .field("mq_msgsize", &self.mq_msgsize) - .field("mq_curmsgs", &self.mq_curmsgs) - .finish() - } - } - impl ::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { - self.mq_flags.hash(state); - self.mq_maxmsg.hash(state); - self.mq_msgsize.hash(state); - self.mq_curmsgs.hash(state); - } - } - } -} - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MS_NOUSER: ::c_ulong = 0x80000000; -pub const MS_RMT_MASK: ::c_ulong = 0x02800051; - -pub const ABDAY_1: ::nl_item = 0x20000; -pub const ABDAY_2: ::nl_item = 0x20001; -pub const ABDAY_3: ::nl_item = 0x20002; -pub const ABDAY_4: ::nl_item = 0x20003; -pub const ABDAY_5: ::nl_item = 0x20004; -pub const ABDAY_6: ::nl_item = 0x20005; -pub const ABDAY_7: ::nl_item = 0x20006; - -pub const DAY_1: ::nl_item = 0x20007; -pub const DAY_2: ::nl_item = 0x20008; -pub const DAY_3: ::nl_item = 0x20009; -pub const DAY_4: ::nl_item = 0x2000A; -pub const DAY_5: ::nl_item = 0x2000B; -pub const DAY_6: ::nl_item = 0x2000C; -pub const DAY_7: ::nl_item = 0x2000D; - -pub const ABMON_1: ::nl_item = 0x2000E; -pub const ABMON_2: ::nl_item = 0x2000F; -pub const ABMON_3: ::nl_item = 0x20010; -pub const ABMON_4: ::nl_item = 0x20011; -pub const ABMON_5: ::nl_item = 0x20012; -pub const ABMON_6: ::nl_item = 0x20013; -pub const ABMON_7: ::nl_item = 0x20014; -pub const ABMON_8: ::nl_item = 0x20015; -pub const ABMON_9: ::nl_item = 0x20016; -pub const ABMON_10: ::nl_item = 0x20017; -pub const ABMON_11: ::nl_item = 0x20018; -pub const ABMON_12: ::nl_item = 0x20019; - -pub const MON_1: ::nl_item = 0x2001A; -pub const MON_2: ::nl_item = 0x2001B; -pub const MON_3: ::nl_item = 0x2001C; -pub const MON_4: ::nl_item = 0x2001D; -pub const MON_5: ::nl_item = 0x2001E; -pub const MON_6: ::nl_item = 0x2001F; -pub const MON_7: ::nl_item = 0x20020; -pub const MON_8: ::nl_item = 0x20021; -pub const MON_9: ::nl_item = 0x20022; -pub const MON_10: ::nl_item = 0x20023; -pub const MON_11: ::nl_item = 0x20024; -pub const MON_12: ::nl_item = 0x20025; - -pub const AM_STR: ::nl_item = 0x20026; -pub const PM_STR: ::nl_item = 0x20027; - -pub const D_T_FMT: ::nl_item = 0x20028; -pub const D_FMT: ::nl_item = 0x20029; -pub const T_FMT: ::nl_item = 0x2002A; -pub const T_FMT_AMPM: ::nl_item = 0x2002B; - -pub const ERA: ::nl_item = 0x2002C; -pub const ERA_D_FMT: ::nl_item = 0x2002E; -pub const ALT_DIGITS: ::nl_item = 0x2002F; -pub const ERA_D_T_FMT: ::nl_item = 0x20030; -pub const ERA_T_FMT: ::nl_item = 0x20031; - -pub const CODESET: ::nl_item = 14; - -pub const CRNCYSTR: ::nl_item = 0x4000F; - -pub const RUSAGE_THREAD: ::c_int = 1; -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const RADIXCHAR: ::nl_item = 0x10000; -pub const THOUSEP: ::nl_item = 0x10001; - -pub const YESEXPR: ::nl_item = 0x50000; -pub const NOEXPR: ::nl_item = 0x50001; -pub const YESSTR: ::nl_item = 0x50002; -pub const NOSTR: ::nl_item = 0x50003; - -pub const FILENAME_MAX: ::c_uint = 4096; -pub const L_tmpnam: ::c_uint = 20; -pub const _PC_LINK_MAX: ::c_int = 0; -pub const _PC_MAX_CANON: ::c_int = 1; -pub const _PC_MAX_INPUT: ::c_int = 2; -pub const _PC_NAME_MAX: ::c_int = 3; -pub const _PC_PATH_MAX: ::c_int = 4; -pub const _PC_PIPE_BUF: ::c_int = 5; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; -pub const _PC_NO_TRUNC: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_SYNC_IO: ::c_int = 9; -pub const _PC_ASYNC_IO: ::c_int = 10; -pub const _PC_PRIO_IO: ::c_int = 11; -pub const _PC_SOCK_MAXBUF: ::c_int = 12; -pub const _PC_FILESIZEBITS: ::c_int = 13; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_XFER_ALIGN: ::c_int = 17; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; -pub const _PC_SYMLINK_MAX: ::c_int = 19; -pub const _PC_2_SYMLINKS: ::c_int = 20; - -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_CHILD_MAX: ::c_int = 1; -pub const _SC_CLK_TCK: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 3; -pub const _SC_OPEN_MAX: ::c_int = 4; -pub const _SC_STREAM_MAX: ::c_int = 5; -pub const _SC_TZNAME_MAX: ::c_int = 6; -pub const _SC_JOB_CONTROL: ::c_int = 7; -pub const _SC_SAVED_IDS: ::c_int = 8; -pub const _SC_REALTIME_SIGNALS: ::c_int = 9; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 10; -pub const _SC_TIMERS: ::c_int = 11; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 12; -pub const _SC_PRIORITIZED_IO: ::c_int = 13; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 14; -pub const _SC_FSYNC: ::c_int = 15; -pub const _SC_MAPPED_FILES: ::c_int = 16; -pub const _SC_MEMLOCK: ::c_int = 17; -pub const _SC_MEMLOCK_RANGE: ::c_int = 18; -pub const _SC_MEMORY_PROTECTION: ::c_int = 19; -pub const _SC_MESSAGE_PASSING: ::c_int = 20; -pub const _SC_SEMAPHORES: ::c_int = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 22; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 23; -pub const _SC_AIO_MAX: ::c_int = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 25; -pub const _SC_DELAYTIMER_MAX: ::c_int = 26; -pub const _SC_MQ_OPEN_MAX: ::c_int = 27; -pub const _SC_MQ_PRIO_MAX: ::c_int = 28; -pub const _SC_VERSION: ::c_int = 29; -pub const _SC_PAGESIZE: ::c_int = 30; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_RTSIG_MAX: ::c_int = 31; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 32; -pub const _SC_SEM_VALUE_MAX: ::c_int = 33; -pub const _SC_SIGQUEUE_MAX: ::c_int = 34; -pub const _SC_TIMER_MAX: ::c_int = 35; -pub const _SC_BC_BASE_MAX: ::c_int = 36; -pub const _SC_BC_DIM_MAX: ::c_int = 37; -pub const _SC_BC_SCALE_MAX: ::c_int = 38; -pub const _SC_BC_STRING_MAX: ::c_int = 39; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 40; -pub const _SC_EXPR_NEST_MAX: ::c_int = 42; -pub const _SC_LINE_MAX: ::c_int = 43; -pub const _SC_RE_DUP_MAX: ::c_int = 44; -pub const _SC_2_VERSION: ::c_int = 46; -pub const _SC_2_C_BIND: ::c_int = 47; -pub const _SC_2_C_DEV: ::c_int = 48; -pub const _SC_2_FORT_DEV: ::c_int = 49; -pub const _SC_2_FORT_RUN: ::c_int = 50; -pub const _SC_2_SW_DEV: ::c_int = 51; -pub const _SC_2_LOCALEDEF: ::c_int = 52; -pub const _SC_UIO_MAXIOV: ::c_int = 60; -pub const _SC_IOV_MAX: ::c_int = 60; -pub const _SC_THREADS: ::c_int = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 68; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 69; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 70; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; -pub const _SC_TTY_NAME_MAX: ::c_int = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 73; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 74; -pub const _SC_THREAD_STACK_MIN: ::c_int = 75; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 76; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 82; -pub const _SC_NPROCESSORS_CONF: ::c_int = 83; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 84; -pub const _SC_PHYS_PAGES: ::c_int = 85; -pub const _SC_AVPHYS_PAGES: ::c_int = 86; -pub const _SC_ATEXIT_MAX: ::c_int = 87; -pub const _SC_PASS_MAX: ::c_int = 88; -pub const _SC_XOPEN_VERSION: ::c_int = 89; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 90; -pub const _SC_XOPEN_UNIX: ::c_int = 91; -pub const _SC_XOPEN_CRYPT: ::c_int = 92; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 93; -pub const _SC_XOPEN_SHM: ::c_int = 94; -pub const _SC_2_CHAR_TERM: ::c_int = 95; -pub const _SC_2_UPE: ::c_int = 97; -pub const _SC_XOPEN_XPG2: ::c_int = 98; -pub const _SC_XOPEN_XPG3: ::c_int = 99; -pub const _SC_XOPEN_XPG4: ::c_int = 100; -pub const _SC_NZERO: ::c_int = 109; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 125; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 126; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 128; -pub const _SC_XOPEN_LEGACY: ::c_int = 129; -pub const _SC_XOPEN_REALTIME: ::c_int = 130; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 131; -pub const _SC_ADVISORY_INFO: ::c_int = 132; -pub const _SC_BARRIERS: ::c_int = 133; -pub const _SC_CLOCK_SELECTION: ::c_int = 137; -pub const _SC_CPUTIME: ::c_int = 138; -pub const _SC_THREAD_CPUTIME: ::c_int = 139; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 149; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 153; -pub const _SC_SPIN_LOCKS: ::c_int = 154; -pub const _SC_REGEXP: ::c_int = 155; -pub const _SC_SHELL: ::c_int = 157; -pub const _SC_SPAWN: ::c_int = 159; -pub const _SC_SPORADIC_SERVER: ::c_int = 160; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 161; -pub const _SC_TIMEOUTS: ::c_int = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 165; -pub const _SC_2_PBS: ::c_int = 168; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 169; -pub const _SC_2_PBS_LOCATE: ::c_int = 170; -pub const _SC_2_PBS_MESSAGE: ::c_int = 171; -pub const _SC_2_PBS_TRACK: ::c_int = 172; -pub const _SC_SYMLOOP_MAX: ::c_int = 173; -pub const _SC_STREAMS: ::c_int = 174; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 175; -pub const _SC_V6_ILP32_OFF32: ::c_int = 176; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 177; -pub const _SC_V6_LP64_OFF64: ::c_int = 178; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 179; -pub const _SC_HOST_NAME_MAX: ::c_int = 180; -pub const _SC_TRACE: ::c_int = 181; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 182; -pub const _SC_TRACE_INHERIT: ::c_int = 183; -pub const _SC_TRACE_LOG: ::c_int = 184; -pub const _SC_IPV6: ::c_int = 235; -pub const _SC_RAW_SOCKETS: ::c_int = 236; -pub const _SC_V7_ILP32_OFF32: ::c_int = 237; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 238; -pub const _SC_V7_LP64_OFF64: ::c_int = 239; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 240; -pub const _SC_SS_REPL_MAX: ::c_int = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 242; -pub const _SC_TRACE_NAME_MAX: ::c_int = 243; -pub const _SC_TRACE_SYS_MAX: ::c_int = 244; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 245; -pub const _SC_XOPEN_STREAMS: ::c_int = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248; - -pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY; -pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY; - -pub const GLOB_ERR: ::c_int = 1 << 0; -pub const GLOB_MARK: ::c_int = 1 << 1; -pub const GLOB_NOSORT: ::c_int = 1 << 2; -pub const GLOB_DOOFFS: ::c_int = 1 << 3; -pub const GLOB_NOCHECK: ::c_int = 1 << 4; -pub const GLOB_APPEND: ::c_int = 1 << 5; -pub const GLOB_NOESCAPE: ::c_int = 1 << 6; - -pub const GLOB_NOSPACE: ::c_int = 1; -pub const GLOB_ABORTED: ::c_int = 2; -pub const GLOB_NOMATCH: ::c_int = 3; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_MADV_WILLNEED: ::c_int = 3; - -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; - -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; - -pub const ST_RDONLY: ::c_ulong = 1; -pub const ST_NOSUID: ::c_ulong = 2; -pub const ST_NODEV: ::c_ulong = 4; -pub const ST_NOEXEC: ::c_ulong = 8; -pub const ST_SYNCHRONOUS: ::c_ulong = 16; -pub const ST_MANDLOCK: ::c_ulong = 64; -pub const ST_WRITE: ::c_ulong = 128; -pub const ST_APPEND: ::c_ulong = 256; -pub const ST_IMMUTABLE: ::c_ulong = 512; -pub const ST_NOATIME: ::c_ulong = 1024; -pub const ST_NODIRATIME: ::c_ulong = 2048; - -pub const RTLD_NEXT: *mut ::c_void = -1i64 as *mut ::c_void; -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; -pub const RTLD_NODELETE: ::c_int = 0x1000; -pub const RTLD_NOW: ::c_int = 0x2; - -align_const! { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - size: [0; __SIZEOF_PTHREAD_MUTEX_T], - }; - pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - size: [0; __SIZEOF_PTHREAD_COND_T], - }; - pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - size: [0; __SIZEOF_PTHREAD_RWLOCK_T], - }; -} - -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; -pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; -pub const __SIZEOF_PTHREAD_COND_T: usize = 48; - -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; -pub const SCHED_BATCH: ::c_int = 3; -pub const SCHED_IDLE: ::c_int = 5; - -pub const AF_IB: ::c_int = 27; -pub const AF_MPLS: ::c_int = 28; -pub const AF_NFC: ::c_int = 39; -pub const AF_VSOCK: ::c_int = 40; -pub const PF_IB: ::c_int = AF_IB; -pub const PF_MPLS: ::c_int = AF_MPLS; -pub const PF_NFC: ::c_int = AF_NFC; -pub const PF_VSOCK: ::c_int = AF_VSOCK; - -// System V IPC -pub const IPC_PRIVATE: ::key_t = 0; - -pub const IPC_CREAT: ::c_int = 0o1000; -pub const IPC_EXCL: ::c_int = 0o2000; -pub const IPC_NOWAIT: ::c_int = 0o4000; - -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; -pub const IPC_INFO: ::c_int = 3; -pub const MSG_STAT: ::c_int = 11; -pub const MSG_INFO: ::c_int = 12; - -pub const MSG_NOERROR: ::c_int = 0o10000; -pub const MSG_EXCEPT: ::c_int = 0o20000; - -pub const SHM_R: ::c_int = 0o400; -pub const SHM_W: ::c_int = 0o200; - -pub const SHM_RDONLY: ::c_int = 0o10000; -pub const SHM_RND: ::c_int = 0o20000; -pub const SHM_REMAP: ::c_int = 0o40000; -pub const SHM_EXEC: ::c_int = 0o100000; - -pub const SHM_LOCK: ::c_int = 11; -pub const SHM_UNLOCK: ::c_int = 12; - -pub const SHM_HUGETLB: ::c_int = 0o4000; -pub const SHM_NORESERVE: ::c_int = 0o10000; - -pub const QFMT_VFS_OLD: ::c_int = 1; -pub const QFMT_VFS_V0: ::c_int = 2; - -pub const EFD_SEMAPHORE: ::c_int = 0x1; - -pub const LOG_NFACILITIES: ::c_int = 24; - -pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t; - -pub const RB_AUTOBOOT: ::c_int = 0x01234567u32 as i32; -pub const RB_HALT_SYSTEM: ::c_int = 0xcdef0123u32 as i32; -pub const RB_ENABLE_CAD: ::c_int = 0x89abcdefu32 as i32; -pub const RB_DISABLE_CAD: ::c_int = 0x00000000u32 as i32; -pub const RB_POWER_OFF: ::c_int = 0x4321fedcu32 as i32; -pub const RB_SW_SUSPEND: ::c_int = 0xd000fce2u32 as i32; -pub const RB_KEXEC: ::c_int = 0x45584543u32 as i32; - -pub const AI_PASSIVE: ::c_int = 0x0001; -pub const AI_CANONNAME: ::c_int = 0x0002; -pub const AI_NUMERICHOST: ::c_int = 0x0004; -pub const AI_V4MAPPED: ::c_int = 0x0008; -pub const AI_ALL: ::c_int = 0x0010; -pub const AI_ADDRCONFIG: ::c_int = 0x0020; - -pub const AI_NUMERICSERV: ::c_int = 0x0400; - -pub const EAI_BADFLAGS: ::c_int = -1; -pub const EAI_NONAME: ::c_int = -2; -pub const EAI_AGAIN: ::c_int = -3; -pub const EAI_FAIL: ::c_int = -4; -pub const EAI_FAMILY: ::c_int = -6; -pub const EAI_SOCKTYPE: ::c_int = -7; -pub const EAI_SERVICE: ::c_int = -8; -pub const EAI_MEMORY: ::c_int = -10; -pub const EAI_OVERFLOW: ::c_int = -12; - -pub const NI_NUMERICHOST: ::c_int = 1; -pub const NI_NUMERICSERV: ::c_int = 2; -pub const NI_NOFQDN: ::c_int = 4; -pub const NI_NAMEREQD: ::c_int = 8; -pub const NI_DGRAM: ::c_int = 16; - -pub const SYNC_FILE_RANGE_WAIT_BEFORE: ::c_uint = 1; -pub const SYNC_FILE_RANGE_WRITE: ::c_uint = 2; -pub const SYNC_FILE_RANGE_WAIT_AFTER: ::c_uint = 4; - -pub const EAI_SYSTEM: ::c_int = -11; - -pub const AIO_CANCELED: ::c_int = 0; -pub const AIO_NOTCANCELED: ::c_int = 1; -pub const AIO_ALLDONE: ::c_int = 2; -pub const LIO_READ: ::c_int = 0; -pub const LIO_WRITE: ::c_int = 1; -pub const LIO_NOP: ::c_int = 2; -pub const LIO_WAIT: ::c_int = 0; -pub const LIO_NOWAIT: ::c_int = 1; - -pub const MREMAP_MAYMOVE: ::c_int = 1; -pub const MREMAP_FIXED: ::c_int = 2; - -pub const PR_SET_PDEATHSIG: ::c_int = 1; -pub const PR_GET_PDEATHSIG: ::c_int = 2; - -pub const PR_GET_DUMPABLE: ::c_int = 3; -pub const PR_SET_DUMPABLE: ::c_int = 4; - -pub const PR_GET_UNALIGN: ::c_int = 5; -pub const PR_SET_UNALIGN: ::c_int = 6; -pub const PR_UNALIGN_NOPRINT: ::c_int = 1; -pub const PR_UNALIGN_SIGBUS: ::c_int = 2; - -pub const PR_GET_KEEPCAPS: ::c_int = 7; -pub const PR_SET_KEEPCAPS: ::c_int = 8; - -pub const PR_GET_FPEMU: ::c_int = 9; -pub const PR_SET_FPEMU: ::c_int = 10; -pub const PR_FPEMU_NOPRINT: ::c_int = 1; -pub const PR_FPEMU_SIGFPE: ::c_int = 2; - -pub const PR_GET_FPEXC: ::c_int = 11; -pub const PR_SET_FPEXC: ::c_int = 12; -pub const PR_FP_EXC_SW_ENABLE: ::c_int = 0x80; -pub const PR_FP_EXC_DIV: ::c_int = 0x010000; -pub const PR_FP_EXC_OVF: ::c_int = 0x020000; -pub const PR_FP_EXC_UND: ::c_int = 0x040000; -pub const PR_FP_EXC_RES: ::c_int = 0x080000; -pub const PR_FP_EXC_INV: ::c_int = 0x100000; -pub const PR_FP_EXC_DISABLED: ::c_int = 0; -pub const PR_FP_EXC_NONRECOV: ::c_int = 1; -pub const PR_FP_EXC_ASYNC: ::c_int = 2; -pub const PR_FP_EXC_PRECISE: ::c_int = 3; - -pub const PR_GET_TIMING: ::c_int = 13; -pub const PR_SET_TIMING: ::c_int = 14; -pub const PR_TIMING_STATISTICAL: ::c_int = 0; -pub const PR_TIMING_TIMESTAMP: ::c_int = 1; - -pub const PR_SET_NAME: ::c_int = 15; -pub const PR_GET_NAME: ::c_int = 16; - -pub const PR_GET_ENDIAN: ::c_int = 19; -pub const PR_SET_ENDIAN: ::c_int = 20; -pub const PR_ENDIAN_BIG: ::c_int = 0; -pub const PR_ENDIAN_LITTLE: ::c_int = 1; -pub const PR_ENDIAN_PPC_LITTLE: ::c_int = 2; - -pub const PR_GET_SECCOMP: ::c_int = 21; -pub const PR_SET_SECCOMP: ::c_int = 22; - -pub const PR_CAPBSET_READ: ::c_int = 23; -pub const PR_CAPBSET_DROP: ::c_int = 24; - -pub const PR_GET_TSC: ::c_int = 25; -pub const PR_SET_TSC: ::c_int = 26; -pub const PR_TSC_ENABLE: ::c_int = 1; -pub const PR_TSC_SIGSEGV: ::c_int = 2; - -pub const PR_GET_SECUREBITS: ::c_int = 27; -pub const PR_SET_SECUREBITS: ::c_int = 28; - -pub const PR_SET_TIMERSLACK: ::c_int = 29; -pub const PR_GET_TIMERSLACK: ::c_int = 30; - -pub const PR_TASK_PERF_EVENTS_DISABLE: ::c_int = 31; -pub const PR_TASK_PERF_EVENTS_ENABLE: ::c_int = 32; - -pub const PR_MCE_KILL: ::c_int = 33; -pub const PR_MCE_KILL_CLEAR: ::c_int = 0; -pub const PR_MCE_KILL_SET: ::c_int = 1; - -pub const PR_MCE_KILL_LATE: ::c_int = 0; -pub const PR_MCE_KILL_EARLY: ::c_int = 1; -pub const PR_MCE_KILL_DEFAULT: ::c_int = 2; - -pub const PR_MCE_KILL_GET: ::c_int = 34; - -pub const PR_SET_MM: ::c_int = 35; -pub const PR_SET_MM_START_CODE: ::c_int = 1; -pub const PR_SET_MM_END_CODE: ::c_int = 2; -pub const PR_SET_MM_START_DATA: ::c_int = 3; -pub const PR_SET_MM_END_DATA: ::c_int = 4; -pub const PR_SET_MM_START_STACK: ::c_int = 5; -pub const PR_SET_MM_START_BRK: ::c_int = 6; -pub const PR_SET_MM_BRK: ::c_int = 7; -pub const PR_SET_MM_ARG_START: ::c_int = 8; -pub const PR_SET_MM_ARG_END: ::c_int = 9; -pub const PR_SET_MM_ENV_START: ::c_int = 10; -pub const PR_SET_MM_ENV_END: ::c_int = 11; -pub const PR_SET_MM_AUXV: ::c_int = 12; -pub const PR_SET_MM_EXE_FILE: ::c_int = 13; -pub const PR_SET_MM_MAP: ::c_int = 14; -pub const PR_SET_MM_MAP_SIZE: ::c_int = 15; - -pub const PR_SET_PTRACER: ::c_int = 0x59616d61; -pub const PR_SET_PTRACER_ANY: ::c_ulong = 0xffffffffffffffff; - -pub const PR_SET_CHILD_SUBREAPER: ::c_int = 36; -pub const PR_GET_CHILD_SUBREAPER: ::c_int = 37; - -pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38; -pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39; - -pub const PR_GET_TID_ADDRESS: ::c_int = 40; - -pub const PR_SET_THP_DISABLE: ::c_int = 41; -pub const PR_GET_THP_DISABLE: ::c_int = 42; - -pub const PR_MPX_ENABLE_MANAGEMENT: ::c_int = 43; -pub const PR_MPX_DISABLE_MANAGEMENT: ::c_int = 44; - -pub const PR_SET_FP_MODE: ::c_int = 45; -pub const PR_GET_FP_MODE: ::c_int = 46; -pub const PR_FP_MODE_FR: ::c_int = 1 << 0; -pub const PR_FP_MODE_FRE: ::c_int = 1 << 1; - -pub const PR_CAP_AMBIENT: ::c_int = 47; -pub const PR_CAP_AMBIENT_IS_SET: ::c_int = 1; -pub const PR_CAP_AMBIENT_RAISE: ::c_int = 2; -pub const PR_CAP_AMBIENT_LOWER: ::c_int = 3; -pub const PR_CAP_AMBIENT_CLEAR_ALL: ::c_int = 4; - -pub const ITIMER_REAL: ::c_int = 0; -pub const ITIMER_VIRTUAL: ::c_int = 1; -pub const ITIMER_PROF: ::c_int = 2; - -pub const _POSIX_VDISABLE: ::cc_t = 0; - -pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01; -pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02; - -// On Linux, libc doesn't define this constant, libattr does instead. -// We still define it for Linux as it's defined by libc on other platforms, -// and it's mentioned in the man pages for getxattr and setxattr. -pub const SFD_CLOEXEC: ::c_int = 0x080000; - -pub const NCCS: usize = 32; - -pub const O_TRUNC: ::c_int = 512; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_CLOEXEC: ::c_int = 0x80000; - -// Defined as wasi value. -pub const EPERM: ::c_int = 63; -pub const ENOENT: ::c_int = 44; -pub const ESRCH: ::c_int = 71; -pub const EINTR: ::c_int = 27; -pub const EIO: ::c_int = 29; -pub const ENXIO: ::c_int = 60; -pub const E2BIG: ::c_int = 1; -pub const ENOEXEC: ::c_int = 45; -pub const EBADF: ::c_int = 8; -pub const ECHILD: ::c_int = 12; -pub const EAGAIN: ::c_int = 6; -pub const ENOMEM: ::c_int = 48; -pub const EACCES: ::c_int = 2; -pub const EFAULT: ::c_int = 21; -pub const ENOTBLK: ::c_int = 105; -pub const EBUSY: ::c_int = 10; -pub const EEXIST: ::c_int = 20; -pub const EXDEV: ::c_int = 75; -pub const ENODEV: ::c_int = 43; -pub const ENOTDIR: ::c_int = 54; -pub const EISDIR: ::c_int = 31; -pub const EINVAL: ::c_int = 28; -pub const ENFILE: ::c_int = 41; -pub const EMFILE: ::c_int = 33; -pub const ENOTTY: ::c_int = 59; -pub const ETXTBSY: ::c_int = 74; -pub const EFBIG: ::c_int = 22; -pub const ENOSPC: ::c_int = 51; -pub const ESPIPE: ::c_int = 70; -pub const EROFS: ::c_int = 69; -pub const EMLINK: ::c_int = 34; -pub const EPIPE: ::c_int = 64; -pub const EDOM: ::c_int = 18; -pub const ERANGE: ::c_int = 68; -pub const EWOULDBLOCK: ::c_int = EAGAIN; -pub const ENOLINK: ::c_int = 47; -pub const EPROTO: ::c_int = 65; -pub const EDEADLK: ::c_int = 16; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const ENAMETOOLONG: ::c_int = 37; -pub const ENOLCK: ::c_int = 46; -pub const ENOSYS: ::c_int = 52; -pub const ENOTEMPTY: ::c_int = 55; -pub const ELOOP: ::c_int = 32; -pub const ENOMSG: ::c_int = 49; -pub const EIDRM: ::c_int = 24; -pub const EMULTIHOP: ::c_int = 36; -pub const EBADMSG: ::c_int = 9; -pub const EOVERFLOW: ::c_int = 61; -pub const EILSEQ: ::c_int = 25; -pub const ENOTSOCK: ::c_int = 57; -pub const EDESTADDRREQ: ::c_int = 17; -pub const EMSGSIZE: ::c_int = 35; -pub const EPROTOTYPE: ::c_int = 67; -pub const ENOPROTOOPT: ::c_int = 50; -pub const EPROTONOSUPPORT: ::c_int = 66; -pub const EAFNOSUPPORT: ::c_int = 5; -pub const EADDRINUSE: ::c_int = 3; -pub const EADDRNOTAVAIL: ::c_int = 4; -pub const ENETDOWN: ::c_int = 38; -pub const ENETUNREACH: ::c_int = 40; -pub const ENETRESET: ::c_int = 39; -pub const ECONNABORTED: ::c_int = 13; -pub const ECONNRESET: ::c_int = 15; -pub const ENOBUFS: ::c_int = 42; -pub const EISCONN: ::c_int = 30; -pub const ENOTCONN: ::c_int = 53; -pub const ETIMEDOUT: ::c_int = 73; -pub const ECONNREFUSED: ::c_int = 14; -pub const EHOSTUNREACH: ::c_int = 23; -pub const EALREADY: ::c_int = 7; -pub const EINPROGRESS: ::c_int = 26; -pub const ESTALE: ::c_int = 72; -pub const EDQUOT: ::c_int = 19; -pub const ECANCELED: ::c_int = 11; -pub const EOWNERDEAD: ::c_int = 62; -pub const ENOTRECOVERABLE: ::c_int = 56; - -pub const ENOSTR: ::c_int = 100; -pub const EBFONT: ::c_int = 101; -pub const EBADSLT: ::c_int = 102; -pub const EBADRQC: ::c_int = 103; -pub const ENOANO: ::c_int = 104; -pub const ECHRNG: ::c_int = 106; -pub const EL3HLT: ::c_int = 107; -pub const EL3RST: ::c_int = 108; -pub const ELNRNG: ::c_int = 109; -pub const EUNATCH: ::c_int = 110; -pub const ENOCSI: ::c_int = 111; -pub const EL2HLT: ::c_int = 112; -pub const EBADE: ::c_int = 113; -pub const EBADR: ::c_int = 114; -pub const EXFULL: ::c_int = 115; -pub const ENODATA: ::c_int = 116; -pub const ETIME: ::c_int = 117; -pub const ENOSR: ::c_int = 118; -pub const ENONET: ::c_int = 119; -pub const ENOPKG: ::c_int = 120; -pub const EREMOTE: ::c_int = 121; -pub const EADV: ::c_int = 122; -pub const ESRMNT: ::c_int = 123; -pub const ECOMM: ::c_int = 124; -pub const EDOTDOT: ::c_int = 125; -pub const ENOTUNIQ: ::c_int = 126; -pub const EBADFD: ::c_int = 127; -pub const EREMCHG: ::c_int = 128; -pub const ELIBACC: ::c_int = 129; -pub const ELIBBAD: ::c_int = 130; -pub const ELIBSCN: ::c_int = 131; -pub const ELIBMAX: ::c_int = 132; -pub const ELIBEXEC: ::c_int = 133; -pub const ERESTART: ::c_int = 134; -pub const ESTRPIPE: ::c_int = 135; -pub const EUSERS: ::c_int = 136; -pub const ESOCKTNOSUPPORT: ::c_int = 137; -pub const EOPNOTSUPP: ::c_int = 138; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 139; -pub const ESHUTDOWN: ::c_int = 140; -pub const ETOOMANYREFS: ::c_int = 141; -pub const EHOSTDOWN: ::c_int = 142; -pub const EUCLEAN: ::c_int = 143; -pub const ENOTNAM: ::c_int = 144; -pub const ENAVAIL: ::c_int = 145; -pub const EISNAM: ::c_int = 146; -pub const EREMOTEIO: ::c_int = 147; -pub const ENOMEDIUM: ::c_int = 148; -pub const EMEDIUMTYPE: ::c_int = 149; -pub const ENOKEY: ::c_int = 150; -pub const EKEYEXPIRED: ::c_int = 151; -pub const EKEYREVOKED: ::c_int = 152; -pub const EKEYREJECTED: ::c_int = 153; -pub const ERFKILL: ::c_int = 154; -pub const EHWPOISON: ::c_int = 155; -pub const EL2NSYNC: ::c_int = 156; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const BUFSIZ: ::c_uint = 1024; -pub const TMP_MAX: ::c_uint = 10000; -pub const FOPEN_MAX: ::c_uint = 1000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_EXEC: ::c_int = 0o10000000; -pub const O_SEARCH: ::c_int = 0o10000000; -pub const O_ACCMODE: ::c_int = 0o10000003; -pub const O_NDELAY: ::c_int = O_NONBLOCK; -pub const NI_MAXHOST: ::socklen_t = 255; -pub const PTHREAD_STACK_MIN: ::size_t = 2048; -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const POSIX_MADV_DONTNEED: ::c_int = 0; - -pub const RLIM_INFINITY: ::rlim_t = !0; -pub const RLIMIT_NLIMITS: ::c_int = 15; -pub const RLIM_NLIMITS: ::c_int = RLIMIT_NLIMITS; - -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; - -#[doc(hidden)] -#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = ::SIGSYS; - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; - -pub const CPU_SETSIZE: ::c_int = 128; - -pub const QFMT_VFS_V1: ::c_int = 4; - -pub const PTRACE_TRACEME: ::c_int = 0; -pub const PTRACE_PEEKTEXT: ::c_int = 1; -pub const PTRACE_PEEKDATA: ::c_int = 2; -pub const PTRACE_PEEKUSER: ::c_int = 3; -pub const PTRACE_POKETEXT: ::c_int = 4; -pub const PTRACE_POKEDATA: ::c_int = 5; -pub const PTRACE_POKEUSER: ::c_int = 6; -pub const PTRACE_CONT: ::c_int = 7; -pub const PTRACE_KILL: ::c_int = 8; -pub const PTRACE_SINGLESTEP: ::c_int = 9; -pub const PTRACE_ATTACH: ::c_int = 16; -pub const PTRACE_DETACH: ::c_int = 17; -pub const PTRACE_SYSCALL: ::c_int = 24; -pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; -pub const PTRACE_GETREGSET: ::c_int = 0x4204; -pub const PTRACE_SETREGSET: ::c_int = 0x4205; -pub const PTRACE_SEIZE: ::c_int = 0x4206; -pub const PTRACE_INTERRUPT: ::c_int = 0x4207; -pub const PTRACE_LISTEN: ::c_int = 0x4208; -pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; - -pub const PTRACE_GETFPREGS: ::c_uint = 14; -pub const PTRACE_SETFPREGS: ::c_uint = 15; -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_GETREGS: ::c_uint = 12; -pub const PTRACE_SETREGS: ::c_uint = 13; - -pub const EFD_NONBLOCK: ::c_int = ::O_NONBLOCK; - -pub const SFD_NONBLOCK: ::c_int = ::O_NONBLOCK; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const TIOCINQ: ::c_int = ::FIONREAD; - -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const CLOCK_SGI_CYCLE: ::clockid_t = 10; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_TIMESTAMP: ::c_int = 29; -pub const SO_MARK: ::c_int = 36; -pub const SO_RXQ_OVFL: ::c_int = 40; -pub const SO_PEEK_OFF: ::c_int = 42; -pub const SO_BUSY_POLL: ::c_int = 46; - -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 28; - -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_ASYNC: ::c_int = 0x2000; - -pub const FIOCLEX: ::c_int = 0x5451; -pub const FIONBIO: ::c_int = 0x5421; - -pub const RLIMIT_RSS: ::c_int = 5; -pub const RLIMIT_NOFILE: ::c_int = 7; -pub const RLIMIT_AS: ::c_int = 9; -pub const RLIMIT_NPROC: ::c_int = 6; -pub const RLIMIT_MEMLOCK: ::c_int = 8; -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_LOCKS: ::c_int = 10; -pub const RLIMIT_SIGPENDING: ::c_int = 11; -pub const RLIMIT_MSGQUEUE: ::c_int = 12; -pub const RLIMIT_NICE: ::c_int = 13; -pub const RLIMIT_RTPRIO: ::c_int = 14; - -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; - -pub const SOCK_NONBLOCK: ::c_int = 2048; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_SEQPACKET: ::c_int = 5; - -pub const IPPROTO_MAX: ::c_int = 256; - -pub const SOL_SOCKET: ::c_int = 1; - -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_LINGER: ::c_int = 13; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_RCVLOWAT: ::c_int = 18; -pub const SO_SNDLOWAT: ::c_int = 19; -pub const SO_RCVTIMEO: ::c_int = 20; -pub const SO_SNDTIMEO: ::c_int = 21; -pub const SO_ACCEPTCONN: ::c_int = 30; - -pub const IPV6_RTHDR_LOOSE: ::c_int = 0; -pub const IPV6_RTHDR_STRICT: ::c_int = 1; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const EXTPROC: ::tcflag_t = 0x00010000; - -pub const MAP_HUGETLB: ::c_int = 0x040000; - -pub const F_GETLK: ::c_int = 12; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 13; -pub const F_SETLKW: ::c_int = 14; -pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const VEOF: usize = 4; -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; - -pub const TCGETS: ::c_int = 0x5401; -pub const TCSETS: ::c_int = 0x5402; -pub const TCSETSW: ::c_int = 0x5403; -pub const TCSETSF: ::c_int = 0x5404; -pub const TCGETA: ::c_int = 0x5405; -pub const TCSETA: ::c_int = 0x5406; -pub const TCSETAW: ::c_int = 0x5407; -pub const TCSETAF: ::c_int = 0x5408; -pub const TCSBRK: ::c_int = 0x5409; -pub const TCXONC: ::c_int = 0x540A; -pub const TCFLSH: ::c_int = 0x540B; -pub const TIOCGSOFTCAR: ::c_int = 0x5419; -pub const TIOCSSOFTCAR: ::c_int = 0x541A; -pub const TIOCLINUX: ::c_int = 0x541C; -pub const TIOCGSERIAL: ::c_int = 0x541E; -pub const TIOCEXCL: ::c_int = 0x540C; -pub const TIOCNXCL: ::c_int = 0x540D; -pub const TIOCSCTTY: ::c_int = 0x540E; -pub const TIOCGPGRP: ::c_int = 0x540F; -pub const TIOCSPGRP: ::c_int = 0x5410; -pub const TIOCOUTQ: ::c_int = 0x5411; -pub const TIOCSTI: ::c_int = 0x5412; -pub const TIOCGWINSZ: ::c_int = 0x5413; -pub const TIOCSWINSZ: ::c_int = 0x5414; -pub const TIOCMGET: ::c_int = 0x5415; -pub const TIOCMBIS: ::c_int = 0x5416; -pub const TIOCMBIC: ::c_int = 0x5417; -pub const TIOCMSET: ::c_int = 0x5418; -pub const FIONREAD: ::c_int = 0x541B; -pub const TIOCCONS: ::c_int = 0x541D; - -pub const SYS_gettid: ::c_long = 224; // Valid for arm (32-bit) and x86 (32-bit) - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const O_TMPFILE: ::c_int = 0x400000; - -pub const MAX_ADDR_LEN: usize = 7; -pub const ARPD_UPDATE: ::c_ushort = 0x01; -pub const ARPD_LOOKUP: ::c_ushort = 0x02; -pub const ARPD_FLUSH: ::c_ushort = 0x03; -pub const ATF_MAGIC: ::c_int = 0x80; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -pub const SOMAXCONN: ::c_int = 128; - -f! { - pub fn CMSG_NXTHDR(mhdr: *const msghdr, - cmsg: *const cmsghdr) -> *mut cmsghdr { - if ((*cmsg).cmsg_len as usize) < ::mem::size_of::() { - return 0 as *mut cmsghdr; - }; - let next = (cmsg as usize + - super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) - as *mut cmsghdr; - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; - if (next.offset(1)) as usize > max { - 0 as *mut cmsghdr - } else { - next as *mut cmsghdr - } - } - - pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { - for slot in cpuset.bits.iter_mut() { - *slot = 0; - } - } - - pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - cpuset.bits[idx] |= 1 << offset; - () - } - - pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - cpuset.bits[idx] &= !(1 << offset); - () - } - - pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - 0 != (cpuset.bits[idx] & (1 << offset)) - } - - pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { - set1.bits == set2.bits - } - - pub fn major(dev: ::dev_t) -> ::c_uint { - // see - // https://github.com/emscripten-core/emscripten/blob/ - // main/system/lib/libc/musl/include/sys/sysmacros.h - let mut major = 0; - major |= (dev & 0x00000fff) >> 8; - major |= (dev & 0xfffff000) >> 31 >> 1; - major as ::c_uint - } - - pub fn minor(dev: ::dev_t) -> ::c_uint { - // see - // https://github.com/emscripten-core/emscripten/blob/ - // main/system/lib/libc/musl/include/sys/sysmacros.h - let mut minor = 0; - minor |= (dev & 0x000000ff) >> 0; - minor |= (dev & 0xffffff00) >> 12; - minor as ::c_uint - } -} - -safe_f! { - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; - let mut dev = 0; - dev |= (major & 0x00000fff) << 8; - dev |= (major & 0xfffff000) << 31 << 1; - dev |= (minor & 0x000000ff) << 0; - dev |= (minor & 0xffffff00) << 12; - dev - } -} - -extern "C" { - pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); - - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - - pub fn setpwent(); - pub fn endpwent(); - pub fn getpwent() -> *mut passwd; - - pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; - - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn __errno_location() -> *mut ::c_int; - - pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn freopen64( - filename: *const c_char, - mode: *const c_char, - file: *mut ::FILE, - ) -> *mut ::FILE; - pub fn tmpfile64() -> *mut ::FILE; - pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; - pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; - pub fn fseeko64(stream: *mut ::FILE, offset: ::off64_t, whence: ::c_int) -> ::c_int; - pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; - pub fn accept4( - fd: ::c_int, - addr: *mut ::sockaddr, - len: *mut ::socklen_t, - flg: ::c_int, - ) -> ::c_int; - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; - - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn if_nameindex() -> *mut if_nameindex; - pub fn if_freenameindex(ptr: *mut if_nameindex); - - pub fn mremap( - addr: *mut ::c_void, - len: ::size_t, - new_len: ::size_t, - flags: ::c_int, - ... - ) -> *mut ::c_void; - - pub fn glob( - pattern: *const c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - pub fn globfree(pglob: *mut ::glob_t); - - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; - - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - - pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - - pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_uint, - ) -> ::c_int; - pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_uint, - timeout: *mut ::timespec, - ) -> ::c_int; - pub fn sync(); - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; -} - -cfg_if! { - if #[cfg(libc_align)] { - #[macro_use] - mod align; - } else { - #[macro_use] - mod no_align; - } -} -expand_align!(); diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/no_align.rs deleted file mode 100644 index 768dc73a4..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/emscripten/no_align.rs +++ /dev/null @@ -1,63 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - pub struct pthread_mutex_t { - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - pub struct pthread_rwlock_t { - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - pub struct pthread_mutexattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - pub struct pthread_rwlockattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], - } - - pub struct pthread_condattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - - s_no_extra_traits! { - pub struct pthread_cond_t { - __align: [*const ::c_void; 0], - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - } - - cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.size - .iter() - .zip(other.size.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for pthread_cond_t {} - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_cond_t") - // FIXME: .field("size", &self.size) - .finish() - } - } - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - } - } - }; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/align.rs deleted file mode 100644 index 97f811dac..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/align.rs +++ /dev/null @@ -1,192 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - #[cfg_attr(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "loongarch64"), - repr(align(4)))] - #[cfg_attr(not(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "loongarch64")), - repr(align(8)))] - pub struct pthread_mutexattr_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - #[cfg_attr(any(target_env = "musl", target_env = "ohos", target_pointer_width = "32"), - repr(align(4)))] - #[cfg_attr(all(not(target_env = "musl"), - not(target_env = "ohos"), - target_pointer_width = "64"), - repr(align(8)))] - pub struct pthread_rwlockattr_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], - } - - #[repr(align(4))] - pub struct pthread_condattr_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - - #[repr(align(4))] - pub struct pthread_barrierattr_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T], - } - - #[repr(align(8))] - pub struct fanotify_event_metadata { - pub event_len: __u32, - pub vers: __u8, - pub reserved: __u8, - pub metadata_len: __u16, - pub mask: __u64, - pub fd: ::c_int, - pub pid: ::c_int, - } - } - - s_no_extra_traits! { - #[cfg_attr(all(any(target_env = "musl", target_env = "ohos"), - target_pointer_width = "32"), - repr(align(4)))] - #[cfg_attr(all(any(target_env = "musl", target_env = "ohos"), - target_pointer_width = "64"), - repr(align(8)))] - #[cfg_attr(all(not(any(target_env = "musl", target_env = "ohos")), - target_arch = "x86"), - repr(align(4)))] - #[cfg_attr(all(not(any(target_env = "musl", target_env = "ohos")), - not(target_arch = "x86")), - repr(align(8)))] - pub struct pthread_cond_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86"))), - repr(align(8)))] - pub struct pthread_mutex_t { - #[doc(hidden)] - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86"))), - repr(align(8)))] - pub struct pthread_rwlock_t { - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "hexagon", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "x86_64", - target_arch = "x86"))), - repr(align(8)))] - pub struct pthread_barrier_t { - size: [u8; ::__SIZEOF_PTHREAD_BARRIER_T], - } - - // linux/can.h - #[repr(align(8))] - #[allow(missing_debug_implementations)] - pub struct can_frame { - pub can_id: canid_t, - pub can_dlc: u8, - __pad: u8, - __res0: u8, - __res1: u8, - pub data: [u8; CAN_MAX_DLEN], - } - - #[repr(align(8))] - #[allow(missing_debug_implementations)] - pub struct canfd_frame { - pub can_id: canid_t, - pub len: u8, - pub flags: u8, - __res0: u8, - __res1: u8, - pub data: [u8; CANFD_MAX_DLEN], - } - - #[repr(align(8))] - #[allow(missing_debug_implementations)] - pub struct canxl_frame { - pub prio: canid_t, - pub flags: u8, - pub sdt: u8, - pub len: u16, - pub af: u32, - pub data: [u8; CANXL_MAX_DLEN], - } - } - }; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/generic/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/generic/mod.rs deleted file mode 100644 index 7bc94c6f0..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/generic/mod.rs +++ /dev/null @@ -1,292 +0,0 @@ -s! { - pub struct termios2 { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; 19], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - } -} - -// include/uapi/asm-generic/socket.h -// arch/alpha/include/uapi/asm/socket.h -// tools/include/uapi/asm-generic/socket.h -// arch/mips/include/uapi/asm/socket.h -pub const SOL_SOCKET: ::c_int = 1; - -// Defined in unix/linux_like/mod.rs -// pub const SO_DEBUG: ::c_int = 1; -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_PASSCRED: ::c_int = 16; -pub const SO_PEERCRED: ::c_int = 17; -pub const SO_RCVLOWAT: ::c_int = 18; -pub const SO_SNDLOWAT: ::c_int = 19; -pub const SO_RCVTIMEO: ::c_int = 20; -pub const SO_SNDTIMEO: ::c_int = 21; -// pub const SO_RCVTIMEO_OLD: ::c_int = 20; -// pub const SO_SNDTIMEO_OLD: ::c_int = 21; -pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; -pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_ATTACH_FILTER: ::c_int = 26; -pub const SO_DETACH_FILTER: ::c_int = 27; -pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -pub const SO_PEERNAME: ::c_int = 28; -pub const SO_TIMESTAMP: ::c_int = 29; -// pub const SO_TIMESTAMP_OLD: ::c_int = 29; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_PEERSEC: ::c_int = 31; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PASSSEC: ::c_int = 34; -pub const SO_TIMESTAMPNS: ::c_int = 35; -// pub const SO_TIMESTAMPNS_OLD: ::c_int = 35; -pub const SO_MARK: ::c_int = 36; -pub const SO_TIMESTAMPING: ::c_int = 37; -// pub const SO_TIMESTAMPING_OLD: ::c_int = 37; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; -pub const SO_RXQ_OVFL: ::c_int = 40; -pub const SO_WIFI_STATUS: ::c_int = 41; -pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -pub const SO_PEEK_OFF: ::c_int = 42; -pub const SO_NOFCS: ::c_int = 43; -pub const SO_LOCK_FILTER: ::c_int = 44; -pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; -pub const SO_BUSY_POLL: ::c_int = 46; -pub const SO_MAX_PACING_RATE: ::c_int = 47; -pub const SO_BPF_EXTENSIONS: ::c_int = 48; -pub const SO_INCOMING_CPU: ::c_int = 49; -pub const SO_ATTACH_BPF: ::c_int = 50; -pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; -pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 52; -pub const SO_CNX_ADVICE: ::c_int = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 54; -pub const SO_MEMINFO: ::c_int = 55; -pub const SO_INCOMING_NAPI_ID: ::c_int = 56; -pub const SO_COOKIE: ::c_int = 57; -pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 58; -pub const SO_PEERGROUPS: ::c_int = 59; -pub const SO_ZEROCOPY: ::c_int = 60; -pub const SO_TXTIME: ::c_int = 61; -pub const SCM_TXTIME: ::c_int = SO_TXTIME; -pub const SO_BINDTOIFINDEX: ::c_int = 62; -cfg_if! { - // Some of these platforms in CI already have these constants. - // But they may still not have those _OLD ones. - if #[cfg(all(any(target_arch = "x86", - target_arch = "x86_64", - target_arch = "aarch64", - target_arch = "loongarch64"), - not(any(target_env = "musl", target_env = "ohos"))))] { - pub const SO_TIMESTAMP_NEW: ::c_int = 63; - pub const SO_TIMESTAMPNS_NEW: ::c_int = 64; - pub const SO_TIMESTAMPING_NEW: ::c_int = 65; - pub const SO_RCVTIMEO_NEW: ::c_int = 66; - pub const SO_SNDTIMEO_NEW: ::c_int = 67; - pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 68; - } -} -// pub const SO_PREFER_BUSY_POLL: ::c_int = 69; -// pub const SO_BUSY_POLL_BUDGET: ::c_int = 70; - -cfg_if! { - if #[cfg(any(target_arch = "x86", - target_arch = "x86_64", - target_arch = "arm", - target_arch = "aarch64", - target_arch = "riscv64", - target_arch = "s390x", - target_arch = "loongarch64"))] { - pub const FICLONE: ::c_ulong = 0x40049409; - pub const FICLONERANGE: ::c_ulong = 0x4020940D; - } -} - -// Defined in unix/linux_like/mod.rs -// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; -pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; - -// Ioctl Constants - -pub const TCGETS: ::Ioctl = 0x5401; -pub const TCSETS: ::Ioctl = 0x5402; -pub const TCSETSW: ::Ioctl = 0x5403; -pub const TCSETSF: ::Ioctl = 0x5404; -pub const TCGETA: ::Ioctl = 0x5405; -pub const TCSETA: ::Ioctl = 0x5406; -pub const TCSETAW: ::Ioctl = 0x5407; -pub const TCSETAF: ::Ioctl = 0x5408; -pub const TCSBRK: ::Ioctl = 0x5409; -pub const TCXONC: ::Ioctl = 0x540A; -pub const TCFLSH: ::Ioctl = 0x540B; -pub const TIOCEXCL: ::Ioctl = 0x540C; -pub const TIOCNXCL: ::Ioctl = 0x540D; -pub const TIOCSCTTY: ::Ioctl = 0x540E; -pub const TIOCGPGRP: ::Ioctl = 0x540F; -pub const TIOCSPGRP: ::Ioctl = 0x5410; -pub const TIOCOUTQ: ::Ioctl = 0x5411; -pub const TIOCSTI: ::Ioctl = 0x5412; -pub const TIOCGWINSZ: ::Ioctl = 0x5413; -pub const TIOCSWINSZ: ::Ioctl = 0x5414; -pub const TIOCMGET: ::Ioctl = 0x5415; -pub const TIOCMBIS: ::Ioctl = 0x5416; -pub const TIOCMBIC: ::Ioctl = 0x5417; -pub const TIOCMSET: ::Ioctl = 0x5418; -pub const TIOCGSOFTCAR: ::Ioctl = 0x5419; -pub const TIOCSSOFTCAR: ::Ioctl = 0x541A; -pub const FIONREAD: ::Ioctl = 0x541B; -pub const TIOCINQ: ::Ioctl = FIONREAD; -pub const TIOCLINUX: ::Ioctl = 0x541C; -pub const TIOCCONS: ::Ioctl = 0x541D; -pub const TIOCGSERIAL: ::Ioctl = 0x541E; -pub const TIOCSSERIAL: ::Ioctl = 0x541F; -pub const TIOCPKT: ::Ioctl = 0x5420; -pub const FIONBIO: ::Ioctl = 0x5421; -pub const TIOCNOTTY: ::Ioctl = 0x5422; -pub const TIOCSETD: ::Ioctl = 0x5423; -pub const TIOCGETD: ::Ioctl = 0x5424; -pub const TCSBRKP: ::Ioctl = 0x5425; -pub const TIOCSBRK: ::Ioctl = 0x5427; -pub const TIOCCBRK: ::Ioctl = 0x5428; -pub const TIOCGSID: ::Ioctl = 0x5429; -pub const TCGETS2: ::Ioctl = 0x802c542a; -pub const TCSETS2: ::Ioctl = 0x402c542b; -pub const TCSETSW2: ::Ioctl = 0x402c542c; -pub const TCSETSF2: ::Ioctl = 0x402c542d; -pub const TIOCGRS485: ::Ioctl = 0x542E; -pub const TIOCSRS485: ::Ioctl = 0x542F; -pub const TIOCGPTN: ::Ioctl = 0x80045430; -pub const TIOCSPTLCK: ::Ioctl = 0x40045431; -pub const TIOCGDEV: ::Ioctl = 0x80045432; -pub const TCGETX: ::Ioctl = 0x5432; -pub const TCSETX: ::Ioctl = 0x5433; -pub const TCSETXF: ::Ioctl = 0x5434; -pub const TCSETXW: ::Ioctl = 0x5435; -pub const TIOCSIG: ::Ioctl = 0x40045436; -pub const TIOCVHANGUP: ::Ioctl = 0x5437; -pub const TIOCGPKT: ::Ioctl = 0x80045438; -pub const TIOCGPTLCK: ::Ioctl = 0x80045439; -pub const TIOCGEXCL: ::Ioctl = 0x80045440; -pub const TIOCGPTPEER: ::Ioctl = 0x5441; -// pub const TIOCGISO7816: ::Ioctl = 0x80285442; -// pub const TIOCSISO7816: ::Ioctl = 0xc0285443; -pub const FIONCLEX: ::Ioctl = 0x5450; -pub const FIOCLEX: ::Ioctl = 0x5451; -pub const FIOASYNC: ::Ioctl = 0x5452; -pub const TIOCSERCONFIG: ::Ioctl = 0x5453; -pub const TIOCSERGWILD: ::Ioctl = 0x5454; -pub const TIOCSERSWILD: ::Ioctl = 0x5455; -pub const TIOCGLCKTRMIOS: ::Ioctl = 0x5456; -pub const TIOCSLCKTRMIOS: ::Ioctl = 0x5457; -pub const TIOCSERGSTRUCT: ::Ioctl = 0x5458; -pub const TIOCSERGETLSR: ::Ioctl = 0x5459; -pub const TIOCSERGETMULTI: ::Ioctl = 0x545A; -pub const TIOCSERSETMULTI: ::Ioctl = 0x545B; -pub const TIOCMIWAIT: ::Ioctl = 0x545C; -pub const TIOCGICOUNT: ::Ioctl = 0x545D; -pub const BLKIOMIN: ::Ioctl = 0x1278; -pub const BLKIOOPT: ::Ioctl = 0x1279; -pub const BLKSSZGET: ::Ioctl = 0x1268; -pub const BLKPBSZGET: ::Ioctl = 0x127B; - -cfg_if! { - if #[cfg(any(target_arch = "arm", - target_arch = "s390x"))] { - pub const FIOQSIZE: ::Ioctl = 0x545E; - } else { - pub const FIOQSIZE: ::Ioctl = 0x5460; - } -} - -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const TIOCM_DSR: ::c_int = 0x100; - -pub const BOTHER: ::speed_t = 0o010000; -pub const IBSHIFT: ::tcflag_t = 16; - -// RLIMIT Constants - -cfg_if! { - if #[cfg(any(target_env = "gnu", - target_env = "uclibc"))] { - - pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; - pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; - pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; - pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; - pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; - pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; - pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; - pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; - pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; - pub const RLIMIT_AS: ::__rlimit_resource_t = 9; - pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; - pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; - pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; - pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; - pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; - pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; - pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; - - } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { - - pub const RLIMIT_CPU: ::c_int = 0; - pub const RLIMIT_FSIZE: ::c_int = 1; - pub const RLIMIT_DATA: ::c_int = 2; - pub const RLIMIT_STACK: ::c_int = 3; - pub const RLIMIT_CORE: ::c_int = 4; - pub const RLIMIT_RSS: ::c_int = 5; - pub const RLIMIT_NPROC: ::c_int = 6; - pub const RLIMIT_NOFILE: ::c_int = 7; - pub const RLIMIT_MEMLOCK: ::c_int = 8; - pub const RLIMIT_AS: ::c_int = 9; - pub const RLIMIT_LOCKS: ::c_int = 10; - pub const RLIMIT_SIGPENDING: ::c_int = 11; - pub const RLIMIT_MSGQUEUE: ::c_int = 12; - pub const RLIMIT_NICE: ::c_int = 13; - pub const RLIMIT_RTPRIO: ::c_int = 14; - pub const RLIMIT_RTTIME: ::c_int = 15; - pub const RLIM_NLIMITS: ::c_int = 15; - pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS; - } -} - -cfg_if! { - if #[cfg(target_env = "gnu")] { - pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; - } - else if #[cfg(target_env = "uclibc")] { - pub const RLIM_NLIMITS: ::__rlimit_resource_t = 15; - } -} - -pub const RLIM_INFINITY: ::rlim_t = !0; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mips/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mips/mod.rs deleted file mode 100644 index 34c00a293..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mips/mod.rs +++ /dev/null @@ -1,288 +0,0 @@ -s! { - pub struct termios2 { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; 23], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - } -} - -// arch/mips/include/uapi/asm/socket.h -pub const SOL_SOCKET: ::c_int = 0xffff; - -// Defined in unix/linux_like/mod.rs -// pub const SO_DEBUG: ::c_int = 0x0001; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_TYPE: ::c_int = 0x1008; -// pub const SO_STYLE: ::c_int = SO_TYPE; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -// NOTE: These definitions are now being renamed with _OLD postfix, -// but CI haven't support them yet. -// Some related consts could be found in b32.rs and b64.rs -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -// pub const SO_SNDTIMEO_OLD: ::c_int = 0x1005; -// pub const SO_RCVTIMEO_OLD: ::c_int = 0x1006; -pub const SO_ACCEPTCONN: ::c_int = 0x1009; -pub const SO_PROTOCOL: ::c_int = 0x1028; -pub const SO_DOMAIN: ::c_int = 0x1029; - -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_PASSCRED: ::c_int = 17; -pub const SO_PEERCRED: ::c_int = 18; -pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; -pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_ATTACH_FILTER: ::c_int = 26; -pub const SO_DETACH_FILTER: ::c_int = 27; -pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -pub const SO_PEERNAME: ::c_int = 28; -pub const SO_PEERSEC: ::c_int = 30; -pub const SO_SNDBUFFORCE: ::c_int = 31; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PASSSEC: ::c_int = 34; -pub const SO_MARK: ::c_int = 36; -pub const SO_RXQ_OVFL: ::c_int = 40; -pub const SO_WIFI_STATUS: ::c_int = 41; -pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -pub const SO_PEEK_OFF: ::c_int = 42; -pub const SO_NOFCS: ::c_int = 43; -pub const SO_LOCK_FILTER: ::c_int = 44; -pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; -pub const SO_BUSY_POLL: ::c_int = 46; -pub const SO_MAX_PACING_RATE: ::c_int = 47; -pub const SO_BPF_EXTENSIONS: ::c_int = 48; -pub const SO_INCOMING_CPU: ::c_int = 49; -pub const SO_ATTACH_BPF: ::c_int = 50; -pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; -pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 52; -pub const SO_CNX_ADVICE: ::c_int = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 54; -pub const SO_MEMINFO: ::c_int = 55; -pub const SO_INCOMING_NAPI_ID: ::c_int = 56; -pub const SO_COOKIE: ::c_int = 57; -pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 58; -pub const SO_PEERGROUPS: ::c_int = 59; -pub const SO_ZEROCOPY: ::c_int = 60; -pub const SO_TXTIME: ::c_int = 61; -pub const SCM_TXTIME: ::c_int = SO_TXTIME; -pub const SO_BINDTOIFINDEX: ::c_int = 62; -// NOTE: These definitions are now being renamed with _OLD postfix, -// but CI haven't support them yet. -// Some related consts could be found in b32.rs and b64.rs -pub const SO_TIMESTAMP: ::c_int = 29; -pub const SO_TIMESTAMPNS: ::c_int = 35; -pub const SO_TIMESTAMPING: ::c_int = 37; -// pub const SO_TIMESTAMP_OLD: ::c_int = 29; -// pub const SO_TIMESTAMPNS_OLD: ::c_int = 35; -// pub const SO_TIMESTAMPING_OLD: ::c_int = 37; -// pub const SO_TIMESTAMP_NEW: ::c_int = 63; -// pub const SO_TIMESTAMPNS_NEW: ::c_int = 64; -// pub const SO_TIMESTAMPING_NEW: ::c_int = 65; -// pub const SO_RCVTIMEO_NEW: ::c_int = 66; -// pub const SO_SNDTIMEO_NEW: ::c_int = 67; -// pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 68; -// pub const SO_PREFER_BUSY_POLL: ::c_int = 69; -// pub const SO_BUSY_POLL_BUDGET: ::c_int = 70; - -pub const FICLONE: ::c_ulong = 0x80049409; -pub const FICLONERANGE: ::c_ulong = 0x8020940D; - -// Defined in unix/linux_like/mod.rs -// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; -pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; - -// Ioctl Constants - -pub const TCGETS: ::Ioctl = 0x540d; -pub const TCSETS: ::Ioctl = 0x540e; -pub const TCSETSW: ::Ioctl = 0x540f; -pub const TCSETSF: ::Ioctl = 0x5410; -pub const TCGETA: ::Ioctl = 0x5401; -pub const TCSETA: ::Ioctl = 0x5402; -pub const TCSETAW: ::Ioctl = 0x5403; -pub const TCSETAF: ::Ioctl = 0x5404; -pub const TCSBRK: ::Ioctl = 0x5405; -pub const TCXONC: ::Ioctl = 0x5406; -pub const TCFLSH: ::Ioctl = 0x5407; -pub const TIOCEXCL: ::Ioctl = 0x740d; -pub const TIOCNXCL: ::Ioctl = 0x740e; -pub const TIOCSCTTY: ::Ioctl = 0x5480; -pub const TIOCGPGRP: ::Ioctl = 0x40047477; -pub const TIOCSPGRP: ::Ioctl = 0x80047476; -pub const TIOCOUTQ: ::Ioctl = 0x7472; -pub const TIOCSTI: ::Ioctl = 0x5472; -pub const TIOCGWINSZ: ::Ioctl = 0x40087468; -pub const TIOCSWINSZ: ::Ioctl = 0x80087467; -pub const TIOCMGET: ::Ioctl = 0x741d; -pub const TIOCMBIS: ::Ioctl = 0x741b; -pub const TIOCMBIC: ::Ioctl = 0x741c; -pub const TIOCMSET: ::Ioctl = 0x741a; -pub const TIOCGSOFTCAR: ::Ioctl = 0x5481; -pub const TIOCSSOFTCAR: ::Ioctl = 0x5482; -pub const FIONREAD: ::Ioctl = 0x467f; -pub const TIOCINQ: ::Ioctl = FIONREAD; -pub const TIOCLINUX: ::Ioctl = 0x5483; -pub const TIOCCONS: ::Ioctl = 0x80047478; -pub const TIOCGSERIAL: ::Ioctl = 0x5484; -pub const TIOCSSERIAL: ::Ioctl = 0x5485; -pub const TIOCPKT: ::Ioctl = 0x5470; -pub const FIONBIO: ::Ioctl = 0x667e; -pub const TIOCNOTTY: ::Ioctl = 0x5471; -pub const TIOCSETD: ::Ioctl = 0x7401; -pub const TIOCGETD: ::Ioctl = 0x7400; -pub const TCSBRKP: ::Ioctl = 0x5486; -pub const TIOCSBRK: ::Ioctl = 0x5427; -pub const TIOCCBRK: ::Ioctl = 0x5428; -pub const TIOCGSID: ::Ioctl = 0x7416; -pub const TCGETS2: ::Ioctl = 0x4030542a; -pub const TCSETS2: ::Ioctl = 0x8030542b; -pub const TCSETSW2: ::Ioctl = 0x8030542c; -pub const TCSETSF2: ::Ioctl = 0x8030542d; -pub const TIOCGPTN: ::Ioctl = 0x40045430; -pub const TIOCSPTLCK: ::Ioctl = 0x80045431; -pub const TIOCGDEV: ::Ioctl = 0x40045432; -pub const TIOCSIG: ::Ioctl = 0x80045436; -pub const TIOCVHANGUP: ::Ioctl = 0x5437; -pub const TIOCGPKT: ::Ioctl = 0x40045438; -pub const TIOCGPTLCK: ::Ioctl = 0x40045439; -pub const TIOCGEXCL: ::Ioctl = 0x40045440; -pub const TIOCGPTPEER: ::Ioctl = 0x20005441; -//pub const TIOCGISO7816: ::Ioctl = 0x40285442; -//pub const TIOCSISO7816: ::Ioctl = 0xc0285443; -pub const FIONCLEX: ::Ioctl = 0x6602; -pub const FIOCLEX: ::Ioctl = 0x6601; -pub const FIOASYNC: ::Ioctl = 0x667d; -pub const TIOCSERCONFIG: ::Ioctl = 0x5488; -pub const TIOCSERGWILD: ::Ioctl = 0x5489; -pub const TIOCSERSWILD: ::Ioctl = 0x548a; -pub const TIOCGLCKTRMIOS: ::Ioctl = 0x548b; -pub const TIOCSLCKTRMIOS: ::Ioctl = 0x548c; -pub const TIOCSERGSTRUCT: ::Ioctl = 0x548d; -pub const TIOCSERGETLSR: ::Ioctl = 0x548e; -pub const TIOCSERGETMULTI: ::Ioctl = 0x548f; -pub const TIOCSERSETMULTI: ::Ioctl = 0x5490; -pub const TIOCMIWAIT: ::Ioctl = 0x5491; -pub const TIOCGICOUNT: ::Ioctl = 0x5492; -pub const FIOQSIZE: ::Ioctl = 0x667f; -pub const TIOCSLTC: ::Ioctl = 0x7475; -pub const TIOCGETP: ::Ioctl = 0x7408; -pub const TIOCSETP: ::Ioctl = 0x7409; -pub const TIOCSETN: ::Ioctl = 0x740a; -pub const BLKIOMIN: ::Ioctl = 0x20001278; -pub const BLKIOOPT: ::Ioctl = 0x20001279; -pub const BLKSSZGET: ::Ioctl = 0x20001268; -pub const BLKPBSZGET: ::Ioctl = 0x2000127B; - -cfg_if! { - if #[cfg(target_env = "musl")] { - pub const TIOCGRS485: ::Ioctl = 0x4020542e; - pub const TIOCSRS485: ::Ioctl = 0xc020542f; - } -} - -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x010; -pub const TIOCM_SR: ::c_int = 0x020; -pub const TIOCM_CTS: ::c_int = 0x040; -pub const TIOCM_CAR: ::c_int = 0x100; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RNG: ::c_int = 0x200; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const TIOCM_DSR: ::c_int = 0x400; - -pub const BOTHER: ::speed_t = 0o010000; -pub const IBSHIFT: ::tcflag_t = 16; - -// RLIMIT Constants - -cfg_if! { - if #[cfg(any(target_env = "gnu", - target_env = "uclibc"))] { - - pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; - pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; - pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; - pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; - pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; - pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 5; - pub const RLIMIT_AS: ::__rlimit_resource_t = 6; - pub const RLIMIT_RSS: ::__rlimit_resource_t = 7; - pub const RLIMIT_NPROC: ::__rlimit_resource_t = 8; - pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 9; - pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; - pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; - pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; - pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; - pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; - pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; - pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; - - } else if #[cfg(target_env = "musl")] { - - pub const RLIMIT_CPU: ::c_int = 0; - pub const RLIMIT_FSIZE: ::c_int = 1; - pub const RLIMIT_DATA: ::c_int = 2; - pub const RLIMIT_STACK: ::c_int = 3; - pub const RLIMIT_CORE: ::c_int = 4; - pub const RLIMIT_NOFILE: ::c_int = 5; - pub const RLIMIT_AS: ::c_int = 6; - pub const RLIMIT_RSS: ::c_int = 7; - pub const RLIMIT_NPROC: ::c_int = 8; - pub const RLIMIT_MEMLOCK: ::c_int = 9; - pub const RLIMIT_LOCKS: ::c_int = 10; - pub const RLIMIT_SIGPENDING: ::c_int = 11; - pub const RLIMIT_MSGQUEUE: ::c_int = 12; - pub const RLIMIT_NICE: ::c_int = 13; - pub const RLIMIT_RTPRIO: ::c_int = 14; - pub const RLIMIT_RTTIME: ::c_int = 15; - pub const RLIM_NLIMITS: ::c_int = 15; - pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS; - pub const RLIM_INFINITY: ::rlim_t = !0; - } -} - -cfg_if! { - if #[cfg(target_env = "gnu")] { - pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; - } else if #[cfg(target_env = "uclibc")] { - pub const RLIM_NLIMITS: ::__rlimit_resource_t = 15; - } -} - -cfg_if! { - if #[cfg(target_arch = "mips64", - any(target_env = "gnu", - target_env = "uclibc"))] { - pub const RLIM_INFINITY: ::rlim_t = !0; - } -} - -cfg_if! { - if #[cfg(target_arch = "mips", - any(target_env = "gnu", - target_env = "uclibc"))] { - pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mod.rs deleted file mode 100644 index c1528f593..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/mod.rs +++ /dev/null @@ -1,15 +0,0 @@ -cfg_if! { - if #[cfg(any(target_arch = "mips", target_arch = "mips64"))] { - mod mips; - pub use self::mips::*; - } else if #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))] { - mod powerpc; - pub use self::powerpc::*; - } else if #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] { - mod sparc; - pub use self::sparc::*; - } else { - mod generic; - pub use self::generic::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/powerpc/mod.rs deleted file mode 100644 index 64c3eaab5..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ /dev/null @@ -1,243 +0,0 @@ -// arch/powerpc/include/uapi/asm/socket.h - -pub const SOL_SOCKET: ::c_int = 1; - -// Defined in unix/linux_like/mod.rs -// pub const SO_DEBUG: ::c_int = 1; -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -// powerpc only differs in these -pub const SO_RCVLOWAT: ::c_int = 16; -pub const SO_SNDLOWAT: ::c_int = 17; -pub const SO_RCVTIMEO: ::c_int = 18; -pub const SO_SNDTIMEO: ::c_int = 19; -// pub const SO_RCVTIMEO_OLD: ::c_int = 18; -// pub const SO_SNDTIMEO_OLD: ::c_int = 19; -pub const SO_PASSCRED: ::c_int = 20; -pub const SO_PEERCRED: ::c_int = 21; -// end -pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; -pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_ATTACH_FILTER: ::c_int = 26; -pub const SO_DETACH_FILTER: ::c_int = 27; -pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -pub const SO_PEERNAME: ::c_int = 28; -pub const SO_TIMESTAMP: ::c_int = 29; -// pub const SO_TIMESTAMP_OLD: ::c_int = 29; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_PEERSEC: ::c_int = 31; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PASSSEC: ::c_int = 34; -pub const SO_TIMESTAMPNS: ::c_int = 35; -// pub const SO_TIMESTAMPNS_OLD: ::c_int = 35; -pub const SO_MARK: ::c_int = 36; -pub const SO_TIMESTAMPING: ::c_int = 37; -// pub const SO_TIMESTAMPING_OLD: ::c_int = 37; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; -pub const SO_RXQ_OVFL: ::c_int = 40; -pub const SO_WIFI_STATUS: ::c_int = 41; -pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -pub const SO_PEEK_OFF: ::c_int = 42; -pub const SO_NOFCS: ::c_int = 43; -pub const SO_LOCK_FILTER: ::c_int = 44; -pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; -pub const SO_BUSY_POLL: ::c_int = 46; -pub const SO_MAX_PACING_RATE: ::c_int = 47; -pub const SO_BPF_EXTENSIONS: ::c_int = 48; -pub const SO_INCOMING_CPU: ::c_int = 49; -pub const SO_ATTACH_BPF: ::c_int = 50; -pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; -pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 52; -pub const SO_CNX_ADVICE: ::c_int = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 54; -pub const SO_MEMINFO: ::c_int = 55; -pub const SO_INCOMING_NAPI_ID: ::c_int = 56; -pub const SO_COOKIE: ::c_int = 57; -pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 58; -pub const SO_PEERGROUPS: ::c_int = 59; -pub const SO_ZEROCOPY: ::c_int = 60; -pub const SO_TXTIME: ::c_int = 61; -pub const SCM_TXTIME: ::c_int = SO_TXTIME; -pub const SO_BINDTOIFINDEX: ::c_int = 62; -// pub const SO_TIMESTAMP_NEW: ::c_int = 63; -// pub const SO_TIMESTAMPNS_NEW: ::c_int = 64; -// pub const SO_TIMESTAMPING_NEW: ::c_int = 65; -// pub const SO_RCVTIMEO_NEW: ::c_int = 66; -// pub const SO_SNDTIMEO_NEW: ::c_int = 67; -// pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 68; -// pub const SO_PREFER_BUSY_POLL: ::c_int = 69; -// pub const SO_BUSY_POLL_BUDGET: ::c_int = 70; - -pub const FICLONE: ::c_ulong = 0x80049409; -pub const FICLONERANGE: ::c_ulong = 0x8020940D; - -// Defined in unix/linux_like/mod.rs -// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; -pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; - -// Ioctl Constants - -cfg_if! { - if #[cfg(target_env = "gnu")] { - pub const TCGETS: ::Ioctl = 0x403c7413; - pub const TCSETS: ::Ioctl = 0x803c7414; - pub const TCSETSW: ::Ioctl = 0x803c7415; - pub const TCSETSF: ::Ioctl = 0x803c7416; - } else if #[cfg(target_env = "musl")] { - pub const TCGETS: ::Ioctl = 0x402c7413; - pub const TCSETS: ::Ioctl = 0x802c7414; - pub const TCSETSW: ::Ioctl = 0x802c7415; - pub const TCSETSF: ::Ioctl = 0x802c7416; - } -} - -pub const TCGETA: ::Ioctl = 0x40147417; -pub const TCSETA: ::Ioctl = 0x80147418; -pub const TCSETAW: ::Ioctl = 0x80147419; -pub const TCSETAF: ::Ioctl = 0x8014741C; -pub const TCSBRK: ::Ioctl = 0x2000741D; -pub const TCXONC: ::Ioctl = 0x2000741E; -pub const TCFLSH: ::Ioctl = 0x2000741F; -pub const TIOCEXCL: ::Ioctl = 0x540C; -pub const TIOCNXCL: ::Ioctl = 0x540D; -pub const TIOCSCTTY: ::Ioctl = 0x540E; -pub const TIOCGPGRP: ::Ioctl = 0x40047477; -pub const TIOCSPGRP: ::Ioctl = 0x80047476; -pub const TIOCOUTQ: ::Ioctl = 0x40047473; -pub const TIOCSTI: ::Ioctl = 0x5412; -pub const TIOCGWINSZ: ::Ioctl = 0x40087468; -pub const TIOCSWINSZ: ::Ioctl = 0x80087467; -pub const TIOCMGET: ::Ioctl = 0x5415; -pub const TIOCMBIS: ::Ioctl = 0x5416; -pub const TIOCMBIC: ::Ioctl = 0x5417; -pub const TIOCMSET: ::Ioctl = 0x5418; -pub const TIOCGSOFTCAR: ::Ioctl = 0x5419; -pub const TIOCSSOFTCAR: ::Ioctl = 0x541A; -pub const FIONREAD: ::Ioctl = 0x4004667F; -pub const TIOCINQ: ::Ioctl = FIONREAD; -pub const TIOCLINUX: ::Ioctl = 0x541C; -pub const TIOCCONS: ::Ioctl = 0x541D; -pub const TIOCGSERIAL: ::Ioctl = 0x541E; -pub const TIOCSSERIAL: ::Ioctl = 0x541F; -pub const TIOCPKT: ::Ioctl = 0x5420; -pub const FIONBIO: ::Ioctl = 0x8004667e; -pub const TIOCNOTTY: ::Ioctl = 0x5422; -pub const TIOCSETD: ::Ioctl = 0x5423; -pub const TIOCGETD: ::Ioctl = 0x5424; -pub const TCSBRKP: ::Ioctl = 0x5425; -pub const TIOCSBRK: ::Ioctl = 0x5427; -pub const TIOCCBRK: ::Ioctl = 0x5428; -pub const TIOCGSID: ::Ioctl = 0x5429; -pub const TIOCGRS485: ::Ioctl = 0x542e; -pub const TIOCSRS485: ::Ioctl = 0x542f; -pub const TIOCGPTN: ::Ioctl = 0x40045430; -pub const TIOCSPTLCK: ::Ioctl = 0x80045431; -pub const TIOCGDEV: ::Ioctl = 0x40045432; -pub const TIOCSIG: ::Ioctl = 0x80045436; -pub const TIOCVHANGUP: ::Ioctl = 0x5437; -pub const TIOCGPKT: ::Ioctl = 0x40045438; -pub const TIOCGPTLCK: ::Ioctl = 0x40045439; -pub const TIOCGEXCL: ::Ioctl = 0x40045440; -pub const TIOCGPTPEER: ::Ioctl = 0x20005441; -//pub const TIOCGISO7816: ::Ioctl = 0x40285442; -//pub const TIOCSISO7816: ::Ioctl = 0xc0285443; -pub const FIONCLEX: ::Ioctl = 0x20006602; -pub const FIOCLEX: ::Ioctl = 0x20006601; -pub const FIOASYNC: ::Ioctl = 0x8004667d; -pub const TIOCSERCONFIG: ::Ioctl = 0x5453; -pub const TIOCSERGWILD: ::Ioctl = 0x5454; -pub const TIOCSERSWILD: ::Ioctl = 0x5455; -pub const TIOCGLCKTRMIOS: ::Ioctl = 0x5456; -pub const TIOCSLCKTRMIOS: ::Ioctl = 0x5457; -pub const TIOCSERGSTRUCT: ::Ioctl = 0x5458; -pub const TIOCSERGETLSR: ::Ioctl = 0x5459; -pub const TIOCSERGETMULTI: ::Ioctl = 0x545A; -pub const TIOCSERSETMULTI: ::Ioctl = 0x545B; -pub const TIOCMIWAIT: ::Ioctl = 0x545C; -pub const TIOCGICOUNT: ::Ioctl = 0x545D; -pub const BLKIOMIN: ::Ioctl = 0x20001278; -pub const BLKIOOPT: ::Ioctl = 0x20001279; -pub const BLKSSZGET: ::Ioctl = 0x20001268; -pub const BLKPBSZGET: ::Ioctl = 0x2000127B; -//pub const FIOQSIZE: ::Ioctl = 0x40086680; - -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const TIOCM_DSR: ::c_int = 0x100; - -pub const BOTHER: ::speed_t = 0o0037; -pub const IBSHIFT: ::tcflag_t = 16; - -// RLIMIT Constants - -cfg_if! { - if #[cfg(target_env = "gnu")] { - - pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; - pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; - pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; - pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; - pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; - pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; - pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; - pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; - pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; - pub const RLIMIT_AS: ::__rlimit_resource_t = 9; - pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; - pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; - pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; - pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; - pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; - pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; - pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; - pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; - - } else if #[cfg(target_env = "musl")] { - - pub const RLIMIT_CPU: ::c_int = 0; - pub const RLIMIT_FSIZE: ::c_int = 1; - pub const RLIMIT_DATA: ::c_int = 2; - pub const RLIMIT_STACK: ::c_int = 3; - pub const RLIMIT_CORE: ::c_int = 4; - pub const RLIMIT_RSS: ::c_int = 5; - pub const RLIMIT_NPROC: ::c_int = 6; - pub const RLIMIT_NOFILE: ::c_int = 7; - pub const RLIMIT_MEMLOCK: ::c_int = 8; - pub const RLIMIT_AS: ::c_int = 9; - pub const RLIMIT_LOCKS: ::c_int = 10; - pub const RLIMIT_SIGPENDING: ::c_int = 11; - pub const RLIMIT_MSGQUEUE: ::c_int = 12; - pub const RLIMIT_NICE: ::c_int = 13; - pub const RLIMIT_RTPRIO: ::c_int = 14; - pub const RLIMIT_RTTIME: ::c_int = 15; - pub const RLIM_NLIMITS: ::c_int = 15; - pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS; - } -} -pub const RLIM_INFINITY: ::rlim_t = !0; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/sparc/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/sparc/mod.rs deleted file mode 100644 index da3e388e3..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/arch/sparc/mod.rs +++ /dev/null @@ -1,228 +0,0 @@ -s! { - pub struct termios2 { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; 19], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - } -} - -// arch/sparc/include/uapi/asm/socket.h -pub const SOL_SOCKET: ::c_int = 0xffff; - -// Defined in unix/linux_like/mod.rs -// pub const SO_DEBUG: ::c_int = 0x0001; -pub const SO_PASSCRED: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_PEERCRED: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_BSDCOMPAT: ::c_int = 0x0400; -pub const SO_RCVLOWAT: ::c_int = 0x0800; -pub const SO_SNDLOWAT: ::c_int = 0x1000; -pub const SO_RCVTIMEO: ::c_int = 0x2000; -pub const SO_SNDTIMEO: ::c_int = 0x4000; -// pub const SO_RCVTIMEO_OLD: ::c_int = 0x2000; -// pub const SO_SNDTIMEO_OLD: ::c_int = 0x4000; -pub const SO_ACCEPTCONN: ::c_int = 0x8000; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDBUFFORCE: ::c_int = 0x100a; -pub const SO_RCVBUFFORCE: ::c_int = 0x100b; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SO_PROTOCOL: ::c_int = 0x1028; -pub const SO_DOMAIN: ::c_int = 0x1029; -pub const SO_NO_CHECK: ::c_int = 0x000b; -pub const SO_PRIORITY: ::c_int = 0x000c; -pub const SO_BINDTODEVICE: ::c_int = 0x000d; -pub const SO_ATTACH_FILTER: ::c_int = 0x001a; -pub const SO_DETACH_FILTER: ::c_int = 0x001b; -pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -pub const SO_PEERNAME: ::c_int = 0x001c; -pub const SO_PEERSEC: ::c_int = 0x001e; -pub const SO_PASSSEC: ::c_int = 0x001f; -pub const SO_MARK: ::c_int = 0x0022; -pub const SO_RXQ_OVFL: ::c_int = 0x0024; -pub const SO_WIFI_STATUS: ::c_int = 0x0025; -pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -pub const SO_PEEK_OFF: ::c_int = 0x0026; -pub const SO_NOFCS: ::c_int = 0x0027; -pub const SO_LOCK_FILTER: ::c_int = 0x0028; -pub const SO_SELECT_ERR_QUEUE: ::c_int = 0x0029; -pub const SO_BUSY_POLL: ::c_int = 0x0030; -pub const SO_MAX_PACING_RATE: ::c_int = 0x0031; -pub const SO_BPF_EXTENSIONS: ::c_int = 0x0032; -pub const SO_INCOMING_CPU: ::c_int = 0x0033; -pub const SO_ATTACH_BPF: ::c_int = 0x0034; -pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; -pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 0x0035; -pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 0x0036; -pub const SO_CNX_ADVICE: ::c_int = 0x0037; -pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 0x0038; -pub const SO_MEMINFO: ::c_int = 0x0039; -pub const SO_INCOMING_NAPI_ID: ::c_int = 0x003a; -pub const SO_COOKIE: ::c_int = 0x003b; -pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 0x003c; -pub const SO_PEERGROUPS: ::c_int = 0x003d; -pub const SO_ZEROCOPY: ::c_int = 0x003e; -pub const SO_TXTIME: ::c_int = 0x003f; -pub const SCM_TXTIME: ::c_int = SO_TXTIME; -pub const SO_BINDTOIFINDEX: ::c_int = 0x0041; -pub const SO_SECURITY_AUTHENTICATION: ::c_int = 0x5001; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 0x5002; -pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 0x5004; -pub const SO_TIMESTAMP: ::c_int = 0x001d; -pub const SO_TIMESTAMPNS: ::c_int = 0x0021; -pub const SO_TIMESTAMPING: ::c_int = 0x0023; -// pub const SO_TIMESTAMP_OLD: ::c_int = 0x001d; -// pub const SO_TIMESTAMPNS_OLD: ::c_int = 0x0021; -// pub const SO_TIMESTAMPING_OLD: ::c_int = 0x0023; -// pub const SO_TIMESTAMP_NEW: ::c_int = 0x0046; -// pub const SO_TIMESTAMPNS_NEW: ::c_int = 0x0042; -// pub const SO_TIMESTAMPING_NEW: ::c_int = 0x0043; -// pub const SO_RCVTIMEO_NEW: ::c_int = 0x0044; -// pub const SO_SNDTIMEO_NEW: ::c_int = 0x0045; -// pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 0x0047; -// pub const SO_PREFER_BUSY_POLL: ::c_int = 0x0048; -// pub const SO_BUSY_POLL_BUDGET: ::c_int = 0x0049; - -// Defined in unix/linux_like/mod.rs -// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; -pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; - -// Ioctl Constants - -pub const TCGETS: ::Ioctl = 0x40245408; -pub const TCSETS: ::Ioctl = 0x80245409; -pub const TCSETSW: ::Ioctl = 0x8024540a; -pub const TCSETSF: ::Ioctl = 0x8024540b; -pub const TCGETA: ::Ioctl = 0x40125401; -pub const TCSETA: ::Ioctl = 0x80125402; -pub const TCSETAW: ::Ioctl = 0x80125403; -pub const TCSETAF: ::Ioctl = 0x80125404; -pub const TCSBRK: ::Ioctl = 0x20005405; -pub const TCXONC: ::Ioctl = 0x20005406; -pub const TCFLSH: ::Ioctl = 0x20005407; -pub const TIOCEXCL: ::Ioctl = 0x2000740d; -pub const TIOCNXCL: ::Ioctl = 0x2000740e; -pub const TIOCSCTTY: ::Ioctl = 0x20007484; -pub const TIOCGPGRP: ::Ioctl = 0x40047483; -pub const TIOCSPGRP: ::Ioctl = 0x80047482; -pub const TIOCOUTQ: ::Ioctl = 0x40047473; -pub const TIOCSTI: ::Ioctl = 0x80017472; -pub const TIOCGWINSZ: ::Ioctl = 0x40087468; -pub const TIOCSWINSZ: ::Ioctl = 0x80087467; -pub const TIOCMGET: ::Ioctl = 0x4004746a; -pub const TIOCMBIS: ::Ioctl = 0x8004746c; -pub const TIOCMBIC: ::Ioctl = 0x8004746b; -pub const TIOCMSET: ::Ioctl = 0x8004746d; -pub const TIOCGSOFTCAR: ::Ioctl = 0x40047464; -pub const TIOCSSOFTCAR: ::Ioctl = 0x80047465; -pub const FIONREAD: ::Ioctl = 0x4004667f; -pub const TIOCINQ: ::Ioctl = FIONREAD; -pub const TIOCLINUX: ::Ioctl = 0x541C; -pub const TIOCCONS: ::Ioctl = 0x20007424; -pub const TIOCGSERIAL: ::Ioctl = 0x541E; -pub const TIOCSSERIAL: ::Ioctl = 0x541F; -pub const TIOCPKT: ::Ioctl = 0x80047470; -pub const FIONBIO: ::Ioctl = 0x8004667e; -pub const TIOCNOTTY: ::Ioctl = 0x20007471; -pub const TIOCSETD: ::Ioctl = 0x80047401; -pub const TIOCGETD: ::Ioctl = 0x40047400; -pub const TCSBRKP: ::Ioctl = 0x5425; -pub const TIOCSBRK: ::Ioctl = 0x2000747b; -pub const TIOCCBRK: ::Ioctl = 0x2000747a; -pub const TIOCGSID: ::Ioctl = 0x40047485; -pub const TCGETS2: ::Ioctl = 0x402c540c; -pub const TCSETS2: ::Ioctl = 0x802c540d; -pub const TCSETSW2: ::Ioctl = 0x802c540e; -pub const TCSETSF2: ::Ioctl = 0x802c540f; -pub const TIOCGPTN: ::Ioctl = 0x40047486; -pub const TIOCSPTLCK: ::Ioctl = 0x80047487; -pub const TIOCGDEV: ::Ioctl = 0x40045432; -pub const TIOCSIG: ::Ioctl = 0x80047488; -pub const TIOCVHANGUP: ::Ioctl = 0x20005437; -pub const TIOCGPKT: ::Ioctl = 0x40045438; -pub const TIOCGPTLCK: ::Ioctl = 0x40045439; -pub const TIOCGEXCL: ::Ioctl = 0x40045440; -pub const TIOCGPTPEER: ::Ioctl = 0x20007489; -pub const FIONCLEX: ::Ioctl = 0x20006602; -pub const FIOCLEX: ::Ioctl = 0x20006601; -pub const TIOCSERCONFIG: ::Ioctl = 0x5453; -pub const TIOCSERGWILD: ::Ioctl = 0x5454; -pub const TIOCSERSWILD: ::Ioctl = 0x5455; -pub const TIOCGLCKTRMIOS: ::Ioctl = 0x5456; -pub const TIOCSLCKTRMIOS: ::Ioctl = 0x5457; -pub const TIOCSERGSTRUCT: ::Ioctl = 0x5458; -pub const TIOCSERGETLSR: ::Ioctl = 0x5459; -pub const TIOCSERGETMULTI: ::Ioctl = 0x545A; -pub const TIOCSERSETMULTI: ::Ioctl = 0x545B; -pub const TIOCMIWAIT: ::Ioctl = 0x545C; -pub const TIOCGICOUNT: ::Ioctl = 0x545D; -pub const TIOCSTART: ::Ioctl = 0x2000746e; -pub const TIOCSTOP: ::Ioctl = 0x2000746f; -pub const BLKIOMIN: ::Ioctl = 0x20001278; -pub const BLKIOOPT: ::Ioctl = 0x20001279; -pub const BLKSSZGET: ::Ioctl = 0x20001268; -pub const BLKPBSZGET: ::Ioctl = 0x2000127B; - -//pub const FIOASYNC: ::Ioctl = 0x4004667d; -//pub const FIOQSIZE: ::Ioctl = ; -//pub const TIOCGISO7816: ::Ioctl = 0x40285443; -//pub const TIOCSISO7816: ::Ioctl = 0xc0285444; -//pub const TIOCGRS485: ::Ioctl = 0x40205441; -//pub const TIOCSRS485: ::Ioctl = 0xc0205442; - -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const TIOCM_DSR: ::c_int = 0x100; - -pub const BOTHER: ::speed_t = 0x1000; -pub const IBSHIFT: ::tcflag_t = 16; - -// RLIMIT Constants - -pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; -pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; -pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; -pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; -pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; -pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; -pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 6; -pub const RLIMIT_NPROC: ::__rlimit_resource_t = 7; -pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; -pub const RLIMIT_AS: ::__rlimit_resource_t = 9; -pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; -pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; -pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; -pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; -pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; -pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; -pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16; -pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS; - -cfg_if! { - if #[cfg(target_arch = "sparc64")] { - pub const RLIM_INFINITY: ::rlim_t = !0; - } else if #[cfg(target_arch = "sparc")] { - pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/align.rs deleted file mode 100644 index 4a0e07460..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/align.rs +++ /dev/null @@ -1,13 +0,0 @@ -s! { - // FIXME this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/align.rs deleted file mode 100644 index 2645ec4c3..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/align.rs +++ /dev/null @@ -1,53 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [i64; 2] - } - - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: ::mcontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_regspace: [::c_ulong; 128], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - } - } - impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_link) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - .finish() - } - } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - } - } - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/mod.rs deleted file mode 100644 index fd690a17e..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ /dev/null @@ -1,874 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = u32; - -s! { - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong - } - - pub struct stat64 { - pub st_dev: ::dev_t, - __pad1: ::c_uint, - __st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_uint, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::ino64_t, - } - - pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_ulong, - pub shm_dtime: ::time_t, - __unused2: ::c_ulong, - pub shm_ctime: ::time_t, - __unused3: ::c_ulong, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __glibc_reserved1: ::c_ulong, - pub msg_rtime: ::time_t, - __glibc_reserved2: ::c_ulong, - pub msg_ctime: ::time_t, - __glibc_reserved3: ::c_ulong, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct seccomp_notif_sizes { - pub seccomp_notif: ::__u16, - pub seccomp_notif_resp: ::__u16, - pub seccomp_data: ::__u16, - } - - pub struct mcontext_t { - pub trap_no: ::c_ulong, - pub error_code: ::c_ulong, - pub oldmask: ::c_ulong, - pub arm_r0: ::c_ulong, - pub arm_r1: ::c_ulong, - pub arm_r2: ::c_ulong, - pub arm_r3: ::c_ulong, - pub arm_r4: ::c_ulong, - pub arm_r5: ::c_ulong, - pub arm_r6: ::c_ulong, - pub arm_r7: ::c_ulong, - pub arm_r8: ::c_ulong, - pub arm_r9: ::c_ulong, - pub arm_r10: ::c_ulong, - pub arm_fp: ::c_ulong, - pub arm_ip: ::c_ulong, - pub arm_sp: ::c_ulong, - pub arm_lr: ::c_ulong, - pub arm_pc: ::c_ulong, - pub arm_cpsr: ::c_ulong, - pub fault_address: ::c_ulong, - } - - pub struct user_regs { - pub arm_r0: ::c_ulong, - pub arm_r1: ::c_ulong, - pub arm_r2: ::c_ulong, - pub arm_r3: ::c_ulong, - pub arm_r4: ::c_ulong, - pub arm_r5: ::c_ulong, - pub arm_r6: ::c_ulong, - pub arm_r7: ::c_ulong, - pub arm_r8: ::c_ulong, - pub arm_r9: ::c_ulong, - pub arm_r10: ::c_ulong, - pub arm_fp: ::c_ulong, - pub arm_ip: ::c_ulong, - pub arm_sp: ::c_ulong, - pub arm_lr: ::c_ulong, - pub arm_pc: ::c_ulong, - pub arm_cpsr: ::c_ulong, - pub arm_orig_r0: ::c_ulong, - } -} - -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_LARGEFILE: ::c_int = 0o400000; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; - -pub const EFD_NONBLOCK: ::c_int = 0x800; -pub const SFD_NONBLOCK: ::c_int = 0x0800; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; -pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; -pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; -pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; - -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -// Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_pause: ::c_long = 29; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_pivot_root: ::c_long = 218; -pub const SYS_mincore: ::c_long = 219; -pub const SYS_madvise: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_io_setup: ::c_long = 243; -pub const SYS_io_destroy: ::c_long = 244; -pub const SYS_io_getevents: ::c_long = 245; -pub const SYS_io_submit: ::c_long = 246; -pub const SYS_io_cancel: ::c_long = 247; -pub const SYS_exit_group: ::c_long = 248; -pub const SYS_lookup_dcookie: ::c_long = 249; -pub const SYS_epoll_create: ::c_long = 250; -pub const SYS_epoll_ctl: ::c_long = 251; -pub const SYS_epoll_wait: ::c_long = 252; -pub const SYS_remap_file_pages: ::c_long = 253; -pub const SYS_set_tid_address: ::c_long = 256; -pub const SYS_timer_create: ::c_long = 257; -pub const SYS_timer_settime: ::c_long = 258; -pub const SYS_timer_gettime: ::c_long = 259; -pub const SYS_timer_getoverrun: ::c_long = 260; -pub const SYS_timer_delete: ::c_long = 261; -pub const SYS_clock_settime: ::c_long = 262; -pub const SYS_clock_gettime: ::c_long = 263; -pub const SYS_clock_getres: ::c_long = 264; -pub const SYS_clock_nanosleep: ::c_long = 265; -pub const SYS_statfs64: ::c_long = 266; -pub const SYS_fstatfs64: ::c_long = 267; -pub const SYS_tgkill: ::c_long = 268; -pub const SYS_utimes: ::c_long = 269; -pub const SYS_arm_fadvise64_64: ::c_long = 270; -pub const SYS_pciconfig_iobase: ::c_long = 271; -pub const SYS_pciconfig_read: ::c_long = 272; -pub const SYS_pciconfig_write: ::c_long = 273; -pub const SYS_mq_open: ::c_long = 274; -pub const SYS_mq_unlink: ::c_long = 275; -pub const SYS_mq_timedsend: ::c_long = 276; -pub const SYS_mq_timedreceive: ::c_long = 277; -pub const SYS_mq_notify: ::c_long = 278; -pub const SYS_mq_getsetattr: ::c_long = 279; -pub const SYS_waitid: ::c_long = 280; -pub const SYS_socket: ::c_long = 281; -pub const SYS_bind: ::c_long = 282; -pub const SYS_connect: ::c_long = 283; -pub const SYS_listen: ::c_long = 284; -pub const SYS_accept: ::c_long = 285; -pub const SYS_getsockname: ::c_long = 286; -pub const SYS_getpeername: ::c_long = 287; -pub const SYS_socketpair: ::c_long = 288; -pub const SYS_send: ::c_long = 289; -pub const SYS_sendto: ::c_long = 290; -pub const SYS_recv: ::c_long = 291; -pub const SYS_recvfrom: ::c_long = 292; -pub const SYS_shutdown: ::c_long = 293; -pub const SYS_setsockopt: ::c_long = 294; -pub const SYS_getsockopt: ::c_long = 295; -pub const SYS_sendmsg: ::c_long = 296; -pub const SYS_recvmsg: ::c_long = 297; -pub const SYS_semop: ::c_long = 298; -pub const SYS_semget: ::c_long = 299; -pub const SYS_semctl: ::c_long = 300; -pub const SYS_msgsnd: ::c_long = 301; -pub const SYS_msgrcv: ::c_long = 302; -pub const SYS_msgget: ::c_long = 303; -pub const SYS_msgctl: ::c_long = 304; -pub const SYS_shmat: ::c_long = 305; -pub const SYS_shmdt: ::c_long = 306; -pub const SYS_shmget: ::c_long = 307; -pub const SYS_shmctl: ::c_long = 308; -pub const SYS_add_key: ::c_long = 309; -pub const SYS_request_key: ::c_long = 310; -pub const SYS_keyctl: ::c_long = 311; -pub const SYS_semtimedop: ::c_long = 312; -pub const SYS_vserver: ::c_long = 313; -pub const SYS_ioprio_set: ::c_long = 314; -pub const SYS_ioprio_get: ::c_long = 315; -pub const SYS_inotify_init: ::c_long = 316; -pub const SYS_inotify_add_watch: ::c_long = 317; -pub const SYS_inotify_rm_watch: ::c_long = 318; -pub const SYS_mbind: ::c_long = 319; -pub const SYS_get_mempolicy: ::c_long = 320; -pub const SYS_set_mempolicy: ::c_long = 321; -pub const SYS_openat: ::c_long = 322; -pub const SYS_mkdirat: ::c_long = 323; -pub const SYS_mknodat: ::c_long = 324; -pub const SYS_fchownat: ::c_long = 325; -pub const SYS_futimesat: ::c_long = 326; -pub const SYS_fstatat64: ::c_long = 327; -pub const SYS_unlinkat: ::c_long = 328; -pub const SYS_renameat: ::c_long = 329; -pub const SYS_linkat: ::c_long = 330; -pub const SYS_symlinkat: ::c_long = 331; -pub const SYS_readlinkat: ::c_long = 332; -pub const SYS_fchmodat: ::c_long = 333; -pub const SYS_faccessat: ::c_long = 334; -pub const SYS_pselect6: ::c_long = 335; -pub const SYS_ppoll: ::c_long = 336; -pub const SYS_unshare: ::c_long = 337; -pub const SYS_set_robust_list: ::c_long = 338; -pub const SYS_get_robust_list: ::c_long = 339; -pub const SYS_splice: ::c_long = 340; -pub const SYS_arm_sync_file_range: ::c_long = 341; -pub const SYS_tee: ::c_long = 342; -pub const SYS_vmsplice: ::c_long = 343; -pub const SYS_move_pages: ::c_long = 344; -pub const SYS_getcpu: ::c_long = 345; -pub const SYS_epoll_pwait: ::c_long = 346; -pub const SYS_kexec_load: ::c_long = 347; -pub const SYS_utimensat: ::c_long = 348; -pub const SYS_signalfd: ::c_long = 349; -pub const SYS_timerfd_create: ::c_long = 350; -pub const SYS_eventfd: ::c_long = 351; -pub const SYS_fallocate: ::c_long = 352; -pub const SYS_timerfd_settime: ::c_long = 353; -pub const SYS_timerfd_gettime: ::c_long = 354; -pub const SYS_signalfd4: ::c_long = 355; -pub const SYS_eventfd2: ::c_long = 356; -pub const SYS_epoll_create1: ::c_long = 357; -pub const SYS_dup3: ::c_long = 358; -pub const SYS_pipe2: ::c_long = 359; -pub const SYS_inotify_init1: ::c_long = 360; -pub const SYS_preadv: ::c_long = 361; -pub const SYS_pwritev: ::c_long = 362; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 363; -pub const SYS_perf_event_open: ::c_long = 364; -pub const SYS_recvmmsg: ::c_long = 365; -pub const SYS_accept4: ::c_long = 366; -pub const SYS_fanotify_init: ::c_long = 367; -pub const SYS_fanotify_mark: ::c_long = 368; -pub const SYS_prlimit64: ::c_long = 369; -pub const SYS_name_to_handle_at: ::c_long = 370; -pub const SYS_open_by_handle_at: ::c_long = 371; -pub const SYS_clock_adjtime: ::c_long = 372; -pub const SYS_syncfs: ::c_long = 373; -pub const SYS_sendmmsg: ::c_long = 374; -pub const SYS_setns: ::c_long = 375; -pub const SYS_process_vm_readv: ::c_long = 376; -pub const SYS_process_vm_writev: ::c_long = 377; -pub const SYS_kcmp: ::c_long = 378; -pub const SYS_finit_module: ::c_long = 379; -pub const SYS_sched_setattr: ::c_long = 380; -pub const SYS_sched_getattr: ::c_long = 381; -pub const SYS_renameat2: ::c_long = 382; -pub const SYS_seccomp: ::c_long = 383; -pub const SYS_getrandom: ::c_long = 384; -pub const SYS_memfd_create: ::c_long = 385; -pub const SYS_bpf: ::c_long = 386; -pub const SYS_execveat: ::c_long = 387; -pub const SYS_userfaultfd: ::c_long = 388; -pub const SYS_membarrier: ::c_long = 389; -pub const SYS_mlock2: ::c_long = 390; -pub const SYS_copy_file_range: ::c_long = 391; -pub const SYS_preadv2: ::c_long = 392; -pub const SYS_pwritev2: ::c_long = 393; -pub const SYS_pkey_mprotect: ::c_long = 394; -pub const SYS_pkey_alloc: ::c_long = 395; -pub const SYS_pkey_free: ::c_long = 396; -pub const SYS_statx: ::c_long = 397; -pub const SYS_rseq: ::c_long = 398; -pub const SYS_kexec_file_load: ::c_long = 401; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/align.rs deleted file mode 100644 index 639394a30..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(2))] - pub struct max_align_t { - priv_: [i8; 20] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs deleted file mode 100644 index 69725ee7c..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ /dev/null @@ -1,849 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; - -s! { - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - f_spare: [::__fsword_t; 4], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct ipc_perm { - __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - __seq: ::c_ushort, - __pad1: ::c_ushort, - __glibc_reserved1: ::c_ulong, - __glibc_reserved2: ::c_ulong, - } - - pub struct stat64 { - pub st_dev: ::dev_t, - __pad1: ::c_ushort, - pub __st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_ushort, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_ulong, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_ulong, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_ulong, - pub st_ino: ::ino64_t, - } - - pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsblkcnt64_t, - pub f_ffree: ::fsblkcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsblkcnt64_t, - pub f_ffree: ::fsblkcnt64_t, - pub f_favail: ::fsblkcnt64_t, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __glibc_reserved1: ::c_long, - pub shm_dtime: ::time_t, - __glibc_reserved2: ::c_long, - pub shm_ctime: ::time_t, - __glibc_reserved3: ::c_long, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __glibc_reserved5: ::c_ulong, - __glibc_reserved6: ::c_ulong, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __glibc_reserved1: ::c_uint, - pub msg_rtime: ::time_t, - __glibc_reserved2: ::c_uint, - pub msg_ctime: ::time_t, - __glibc_reserved3: ::c_uint, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } -} - -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_LARGEFILE: ::c_int = 0x20000; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_32BIT: ::c_int = 0x0040; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; - -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_SYSEMU: ::c_uint = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const EFD_NONBLOCK: ::c_int = 0x800; -pub const SFD_NONBLOCK: ::c_int = 0x0800; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time32: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_chown16: ::c_long = 16; -pub const SYS_stat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_oldumount: ::c_long = 22; -pub const SYS_setuid16: ::c_long = 23; -pub const SYS_getuid16: ::c_long = 24; -pub const SYS_stime32: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_fstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime32: ::c_long = 30; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid16: ::c_long = 46; -pub const SYS_getgid16: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid16: ::c_long = 49; -pub const SYS_getegid16: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid16: ::c_long = 70; -pub const SYS_setregid16: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_old_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups16: ::c_long = 80; -pub const SYS_setgroups16: ::c_long = 81; -pub const SYS_old_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_lstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_old_readdir: ::c_long = 89; -pub const SYS_old_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown16: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_newstat: ::c_long = 106; -pub const SYS_newlstat: ::c_long = 107; -pub const SYS_newfstat: ::c_long = 108; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_newuname: ::c_long = 122; -pub const SYS_cacheflush: ::c_long = 123; -pub const SYS_adjtimex_time32: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_setfsuid16: ::c_long = 138; -pub const SYS_setfsgid16: ::c_long = 139; -pub const SYS_llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS_select: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval_time32: ::c_long = 161; -pub const SYS_nanosleep_time32: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid16: ::c_long = 164; -pub const SYS_getresuid16: ::c_long = 165; -pub const SYS_getpagesize: ::c_long = 166; -pub const SYS_query_module: ::c_long = 167; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid16: ::c_long = 170; -pub const SYS_getresgid16: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait_time32: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_lchown16: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_getpmsg: ::c_long = 188; -pub const SYS_putpmsg: ::c_long = 189; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_getrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_chown: ::c_long = 198; -pub const SYS_getuid: ::c_long = 199; -pub const SYS_getgid: ::c_long = 200; -pub const SYS_geteuid: ::c_long = 201; -pub const SYS_getegid: ::c_long = 202; -pub const SYS_setreuid: ::c_long = 203; -pub const SYS_setregid: ::c_long = 204; -pub const SYS_getgroups: ::c_long = 205; -pub const SYS_setgroups: ::c_long = 206; -pub const SYS_fchown: ::c_long = 207; -pub const SYS_setresuid: ::c_long = 208; -pub const SYS_getresuid: ::c_long = 209; -pub const SYS_setresgid: ::c_long = 210; -pub const SYS_getresgid: ::c_long = 211; -pub const SYS_lchown: ::c_long = 212; -pub const SYS_setuid: ::c_long = 213; -pub const SYS_setgid: ::c_long = 214; -pub const SYS_setfsuid: ::c_long = 215; -pub const SYS_setfsgid: ::c_long = 216; -pub const SYS_pivot_root: ::c_long = 217; -pub const SYS_getdents64: ::c_long = 220; -pub const SYS_gettid: ::c_long = 221; -pub const SYS_tkill: ::c_long = 222; -pub const SYS_setxattr: ::c_long = 223; -pub const SYS_lsetxattr: ::c_long = 224; -pub const SYS_fsetxattr: ::c_long = 225; -pub const SYS_getxattr: ::c_long = 226; -pub const SYS_lgetxattr: ::c_long = 227; -pub const SYS_fgetxattr: ::c_long = 228; -pub const SYS_listxattr: ::c_long = 229; -pub const SYS_llistxattr: ::c_long = 230; -pub const SYS_flistxattr: ::c_long = 231; -pub const SYS_removexattr: ::c_long = 232; -pub const SYS_lremovexattr: ::c_long = 233; -pub const SYS_fremovexattr: ::c_long = 234; -pub const SYS_futex_time32: ::c_long = 235; -pub const SYS_sendfile64: ::c_long = 236; -pub const SYS_mincore: ::c_long = 237; -pub const SYS_madvise: ::c_long = 238; -pub const SYS_fcntl64: ::c_long = 239; -pub const SYS_readahead: ::c_long = 240; -pub const SYS_io_setup: ::c_long = 241; -pub const SYS_io_destroy: ::c_long = 242; -pub const SYS_io_getevents_time32: ::c_long = 243; -pub const SYS_io_submit: ::c_long = 244; -pub const SYS_io_cancel: ::c_long = 245; -pub const SYS_fadvise64: ::c_long = 246; -pub const SYS_exit_group: ::c_long = 247; -pub const SYS_lookup_dcookie: ::c_long = 248; -pub const SYS_epoll_create: ::c_long = 249; -pub const SYS_epoll_ctl: ::c_long = 250; -pub const SYS_epoll_wait: ::c_long = 251; -pub const SYS_remap_file_pages: ::c_long = 252; -pub const SYS_set_tid_address: ::c_long = 253; -pub const SYS_timer_create: ::c_long = 254; -pub const SYS_timer_settime32: ::c_long = 255; -pub const SYS_timer_gettime32: ::c_long = 256; -pub const SYS_timer_getoverrun: ::c_long = 257; -pub const SYS_timer_delete: ::c_long = 258; -pub const SYS_clock_settime32: ::c_long = 259; -pub const SYS_clock_gettime32: ::c_long = 260; -pub const SYS_clock_getres_time32: ::c_long = 261; -pub const SYS_clock_nanosleep_time32: ::c_long = 262; -pub const SYS_statfs64: ::c_long = 263; -pub const SYS_fstatfs64: ::c_long = 264; -pub const SYS_tgkill: ::c_long = 265; -pub const SYS_utimes_time32: ::c_long = 266; -pub const SYS_fadvise64_64: ::c_long = 267; -pub const SYS_mbind: ::c_long = 268; -pub const SYS_get_mempolicy: ::c_long = 269; -pub const SYS_set_mempolicy: ::c_long = 270; -pub const SYS_mq_open: ::c_long = 271; -pub const SYS_mq_unlink: ::c_long = 272; -pub const SYS_mq_timedsend_time32: ::c_long = 273; -pub const SYS_mq_timedreceive_time32: ::c_long = 274; -pub const SYS_mq_notify: ::c_long = 275; -pub const SYS_mq_getsetattr: ::c_long = 276; -pub const SYS_waitid: ::c_long = 277; -pub const SYS_add_key: ::c_long = 279; -pub const SYS_request_key: ::c_long = 280; -pub const SYS_keyctl: ::c_long = 281; -pub const SYS_ioprio_set: ::c_long = 282; -pub const SYS_ioprio_get: ::c_long = 283; -pub const SYS_inotify_init: ::c_long = 284; -pub const SYS_inotify_add_watch: ::c_long = 285; -pub const SYS_inotify_rm_watch: ::c_long = 286; -pub const SYS_migrate_pages: ::c_long = 287; -pub const SYS_openat: ::c_long = 288; -pub const SYS_mkdirat: ::c_long = 289; -pub const SYS_mknodat: ::c_long = 290; -pub const SYS_fchownat: ::c_long = 291; -pub const SYS_futimesat_time32: ::c_long = 292; -pub const SYS_fstatat64: ::c_long = 293; -pub const SYS_unlinkat: ::c_long = 294; -pub const SYS_renameat: ::c_long = 295; -pub const SYS_linkat: ::c_long = 296; -pub const SYS_symlinkat: ::c_long = 297; -pub const SYS_readlinkat: ::c_long = 298; -pub const SYS_fchmodat: ::c_long = 299; -pub const SYS_faccessat: ::c_long = 300; -pub const SYS_pselect6_time32: ::c_long = 301; -pub const SYS_ppoll_time32: ::c_long = 302; -pub const SYS_unshare: ::c_long = 303; -pub const SYS_set_robust_list: ::c_long = 304; -pub const SYS_get_robust_list: ::c_long = 305; -pub const SYS_splice: ::c_long = 306; -pub const SYS_sync_file_range: ::c_long = 307; -pub const SYS_tee: ::c_long = 308; -pub const SYS_vmsplice: ::c_long = 309; -pub const SYS_move_pages: ::c_long = 310; -pub const SYS_sched_setaffinity: ::c_long = 311; -pub const SYS_sched_getaffinity: ::c_long = 312; -pub const SYS_kexec_load: ::c_long = 313; -pub const SYS_getcpu: ::c_long = 314; -pub const SYS_epoll_pwait: ::c_long = 315; -pub const SYS_utimensat_time32: ::c_long = 316; -pub const SYS_signalfd: ::c_long = 317; -pub const SYS_timerfd_create: ::c_long = 318; -pub const SYS_eventfd: ::c_long = 319; -pub const SYS_fallocate: ::c_long = 320; -pub const SYS_timerfd_settime32: ::c_long = 321; -pub const SYS_timerfd_gettime32: ::c_long = 322; -pub const SYS_signalfd4: ::c_long = 323; -pub const SYS_eventfd2: ::c_long = 324; -pub const SYS_epoll_create1: ::c_long = 325; -pub const SYS_dup3: ::c_long = 326; -pub const SYS_pipe2: ::c_long = 327; -pub const SYS_inotify_init1: ::c_long = 328; -pub const SYS_preadv: ::c_long = 329; -pub const SYS_pwritev: ::c_long = 330; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 331; -pub const SYS_perf_event_open: ::c_long = 332; -pub const SYS_get_thread_area: ::c_long = 333; -pub const SYS_set_thread_area: ::c_long = 334; -pub const SYS_atomic_cmpxchg_32: ::c_long = 335; -pub const SYS_atomic_barrier: ::c_long = 336; -pub const SYS_fanotify_init: ::c_long = 337; -pub const SYS_fanotify_mark: ::c_long = 338; -pub const SYS_prlimit64: ::c_long = 339; -pub const SYS_name_to_handle_at: ::c_long = 340; -pub const SYS_open_by_handle_at: ::c_long = 341; -pub const SYS_clock_adjtime32: ::c_long = 342; -pub const SYS_syncfs: ::c_long = 343; -pub const SYS_setns: ::c_long = 344; -pub const SYS_process_vm_readv: ::c_long = 345; -pub const SYS_process_vm_writev: ::c_long = 346; -pub const SYS_kcmp: ::c_long = 347; -pub const SYS_finit_module: ::c_long = 348; -pub const SYS_sched_setattr: ::c_long = 349; -pub const SYS_sched_getattr: ::c_long = 350; -pub const SYS_renameat2: ::c_long = 351; -pub const SYS_getrandom: ::c_long = 352; -pub const SYS_memfd_create: ::c_long = 353; -pub const SYS_bpf: ::c_long = 354; -pub const SYS_execveat: ::c_long = 355; -pub const SYS_socket: ::c_long = 356; -pub const SYS_socketpair: ::c_long = 357; -pub const SYS_bind: ::c_long = 358; -pub const SYS_connect: ::c_long = 359; -pub const SYS_listen: ::c_long = 360; -pub const SYS_accept4: ::c_long = 361; -pub const SYS_getsockopt: ::c_long = 362; -pub const SYS_setsockopt: ::c_long = 363; -pub const SYS_getsockname: ::c_long = 364; -pub const SYS_getpeername: ::c_long = 365; -pub const SYS_sendto: ::c_long = 366; -pub const SYS_sendmsg: ::c_long = 367; -pub const SYS_recvfrom: ::c_long = 368; -pub const SYS_recvmsg: ::c_long = 369; -pub const SYS_shutdown: ::c_long = 370; -pub const SYS_recvmmsg_time32: ::c_long = 371; -pub const SYS_sendmmsg: ::c_long = 372; -pub const SYS_userfaultfd: ::c_long = 373; -pub const SYS_membarrier: ::c_long = 374; -pub const SYS_mlock2: ::c_long = 375; -pub const SYS_copy_file_range: ::c_long = 376; -pub const SYS_preadv2: ::c_long = 377; -pub const SYS_pwritev2: ::c_long = 378; -pub const SYS_statx: ::c_long = 379; -pub const SYS_seccomp: ::c_long = 380; -pub const SYS_pkey_mprotect: ::c_long = 381; -pub const SYS_pkey_alloc: ::c_long = 382; -pub const SYS_pkey_free: ::c_long = 383; -pub const SYS_rseq: ::c_long = 384; -pub const SYS_semget: ::c_long = 393; -pub const SYS_semctl: ::c_long = 394; -pub const SYS_shmget: ::c_long = 395; -pub const SYS_shmctl: ::c_long = 396; -pub const SYS_shmat: ::c_long = 397; -pub const SYS_shmdt: ::c_long = 398; -pub const SYS_msgget: ::c_long = 399; -pub const SYS_msgsnd: ::c_long = 400; -pub const SYS_msgrcv: ::c_long = 401; -pub const SYS_msgctl: ::c_long = 402; -pub const SYS_clock_gettime: ::c_long = 403; -pub const SYS_clock_settime: ::c_long = 404; -pub const SYS_clock_adjtime: ::c_long = 405; -pub const SYS_clock_getres: ::c_long = 406; -pub const SYS_clock_nanosleep: ::c_long = 407; -pub const SYS_timer_gettime: ::c_long = 408; -pub const SYS_timer_settime: ::c_long = 409; -pub const SYS_timerfd_gettime: ::c_long = 410; -pub const SYS_timerfd_settime: ::c_long = 411; -pub const SYS_utimensat: ::c_long = 412; -pub const SYS_pselect6: ::c_long = 413; -pub const SYS_ppoll: ::c_long = 414; -pub const SYS_io_pgetevents: ::c_long = 416; -pub const SYS_recvmmsg: ::c_long = 417; -pub const SYS_mq_timedsend: ::c_long = 418; -pub const SYS_mq_timedreceive: ::c_long = 419; -pub const SYS_semtimedop: ::c_long = 420; -pub const SYS_rt_sigtimedwait: ::c_long = 421; -pub const SYS_futex: ::c_long = 422; -pub const SYS_sched_rr_get_interval: ::c_long = 423; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/align.rs deleted file mode 100644 index 8c228ebab..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [f32; 4] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/mod.rs deleted file mode 100644 index 6a03f0ba8..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ /dev/null @@ -1,818 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; - -s! { - pub struct stat64 { - pub st_dev: ::c_ulong, - st_pad1: [::c_long; 3], - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulong, - st_pad2: [::c_long; 2], - pub st_size: ::off64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - st_pad3: ::c_long, - pub st_blocks: ::blkcnt64_t, - st_pad5: [::c_long; 14], - } - - pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsblkcnt_t, - pub f_ffree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::c_long, - f_spare: [::c_long; 6], - } - - pub struct statfs64 { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_bavail: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 5], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct sigaction { - pub sa_flags: ::c_int, - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_restorer: ::Option, - _resv: [::c_int; 1], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - pub _pad: [::c_int; 29], - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_uint, - pub __seq: ::c_ushort, - __pad1: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - #[cfg(target_endian = "big")] - __glibc_reserved1: ::c_ulong, - pub msg_stime: ::time_t, - #[cfg(target_endian = "little")] - __glibc_reserved1: ::c_ulong, - #[cfg(target_endian = "big")] - __glibc_reserved2: ::c_ulong, - pub msg_rtime: ::time_t, - #[cfg(target_endian = "little")] - __glibc_reserved2: ::c_ulong, - #[cfg(target_endian = "big")] - __glibc_reserved3: ::c_ulong, - pub msg_ctime: ::time_t, - #[cfg(target_endian = "little")] - __glibc_reserved3: ::c_ulong, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_sysid: ::c_long, - pub l_pid: ::pid_t, - pad: [::c_long; 4], - } -} - -pub const O_LARGEFILE: ::c_int = 0x2000; - -pub const SYS_syscall: ::c_long = 4000 + 0; -pub const SYS_exit: ::c_long = 4000 + 1; -pub const SYS_fork: ::c_long = 4000 + 2; -pub const SYS_read: ::c_long = 4000 + 3; -pub const SYS_write: ::c_long = 4000 + 4; -pub const SYS_open: ::c_long = 4000 + 5; -pub const SYS_close: ::c_long = 4000 + 6; -pub const SYS_waitpid: ::c_long = 4000 + 7; -pub const SYS_creat: ::c_long = 4000 + 8; -pub const SYS_link: ::c_long = 4000 + 9; -pub const SYS_unlink: ::c_long = 4000 + 10; -pub const SYS_execve: ::c_long = 4000 + 11; -pub const SYS_chdir: ::c_long = 4000 + 12; -pub const SYS_time: ::c_long = 4000 + 13; -pub const SYS_mknod: ::c_long = 4000 + 14; -pub const SYS_chmod: ::c_long = 4000 + 15; -pub const SYS_lchown: ::c_long = 4000 + 16; -pub const SYS_break: ::c_long = 4000 + 17; -pub const SYS_lseek: ::c_long = 4000 + 19; -pub const SYS_getpid: ::c_long = 4000 + 20; -pub const SYS_mount: ::c_long = 4000 + 21; -pub const SYS_umount: ::c_long = 4000 + 22; -pub const SYS_setuid: ::c_long = 4000 + 23; -pub const SYS_getuid: ::c_long = 4000 + 24; -pub const SYS_stime: ::c_long = 4000 + 25; -pub const SYS_ptrace: ::c_long = 4000 + 26; -pub const SYS_alarm: ::c_long = 4000 + 27; -pub const SYS_pause: ::c_long = 4000 + 29; -pub const SYS_utime: ::c_long = 4000 + 30; -pub const SYS_stty: ::c_long = 4000 + 31; -pub const SYS_gtty: ::c_long = 4000 + 32; -pub const SYS_access: ::c_long = 4000 + 33; -pub const SYS_nice: ::c_long = 4000 + 34; -pub const SYS_ftime: ::c_long = 4000 + 35; -pub const SYS_sync: ::c_long = 4000 + 36; -pub const SYS_kill: ::c_long = 4000 + 37; -pub const SYS_rename: ::c_long = 4000 + 38; -pub const SYS_mkdir: ::c_long = 4000 + 39; -pub const SYS_rmdir: ::c_long = 4000 + 40; -pub const SYS_dup: ::c_long = 4000 + 41; -pub const SYS_pipe: ::c_long = 4000 + 42; -pub const SYS_times: ::c_long = 4000 + 43; -pub const SYS_prof: ::c_long = 4000 + 44; -pub const SYS_brk: ::c_long = 4000 + 45; -pub const SYS_setgid: ::c_long = 4000 + 46; -pub const SYS_getgid: ::c_long = 4000 + 47; -pub const SYS_signal: ::c_long = 4000 + 48; -pub const SYS_geteuid: ::c_long = 4000 + 49; -pub const SYS_getegid: ::c_long = 4000 + 50; -pub const SYS_acct: ::c_long = 4000 + 51; -pub const SYS_umount2: ::c_long = 4000 + 52; -pub const SYS_lock: ::c_long = 4000 + 53; -pub const SYS_ioctl: ::c_long = 4000 + 54; -pub const SYS_fcntl: ::c_long = 4000 + 55; -pub const SYS_mpx: ::c_long = 4000 + 56; -pub const SYS_setpgid: ::c_long = 4000 + 57; -pub const SYS_ulimit: ::c_long = 4000 + 58; -pub const SYS_umask: ::c_long = 4000 + 60; -pub const SYS_chroot: ::c_long = 4000 + 61; -pub const SYS_ustat: ::c_long = 4000 + 62; -pub const SYS_dup2: ::c_long = 4000 + 63; -pub const SYS_getppid: ::c_long = 4000 + 64; -pub const SYS_getpgrp: ::c_long = 4000 + 65; -pub const SYS_setsid: ::c_long = 4000 + 66; -pub const SYS_sigaction: ::c_long = 4000 + 67; -pub const SYS_sgetmask: ::c_long = 4000 + 68; -pub const SYS_ssetmask: ::c_long = 4000 + 69; -pub const SYS_setreuid: ::c_long = 4000 + 70; -pub const SYS_setregid: ::c_long = 4000 + 71; -pub const SYS_sigsuspend: ::c_long = 4000 + 72; -pub const SYS_sigpending: ::c_long = 4000 + 73; -pub const SYS_sethostname: ::c_long = 4000 + 74; -pub const SYS_setrlimit: ::c_long = 4000 + 75; -pub const SYS_getrlimit: ::c_long = 4000 + 76; -pub const SYS_getrusage: ::c_long = 4000 + 77; -pub const SYS_gettimeofday: ::c_long = 4000 + 78; -pub const SYS_settimeofday: ::c_long = 4000 + 79; -pub const SYS_getgroups: ::c_long = 4000 + 80; -pub const SYS_setgroups: ::c_long = 4000 + 81; -pub const SYS_symlink: ::c_long = 4000 + 83; -pub const SYS_readlink: ::c_long = 4000 + 85; -pub const SYS_uselib: ::c_long = 4000 + 86; -pub const SYS_swapon: ::c_long = 4000 + 87; -pub const SYS_reboot: ::c_long = 4000 + 88; -pub const SYS_readdir: ::c_long = 4000 + 89; -pub const SYS_mmap: ::c_long = 4000 + 90; -pub const SYS_munmap: ::c_long = 4000 + 91; -pub const SYS_truncate: ::c_long = 4000 + 92; -pub const SYS_ftruncate: ::c_long = 4000 + 93; -pub const SYS_fchmod: ::c_long = 4000 + 94; -pub const SYS_fchown: ::c_long = 4000 + 95; -pub const SYS_getpriority: ::c_long = 4000 + 96; -pub const SYS_setpriority: ::c_long = 4000 + 97; -pub const SYS_profil: ::c_long = 4000 + 98; -pub const SYS_statfs: ::c_long = 4000 + 99; -pub const SYS_fstatfs: ::c_long = 4000 + 100; -pub const SYS_ioperm: ::c_long = 4000 + 101; -pub const SYS_socketcall: ::c_long = 4000 + 102; -pub const SYS_syslog: ::c_long = 4000 + 103; -pub const SYS_setitimer: ::c_long = 4000 + 104; -pub const SYS_getitimer: ::c_long = 4000 + 105; -pub const SYS_stat: ::c_long = 4000 + 106; -pub const SYS_lstat: ::c_long = 4000 + 107; -pub const SYS_fstat: ::c_long = 4000 + 108; -pub const SYS_iopl: ::c_long = 4000 + 110; -pub const SYS_vhangup: ::c_long = 4000 + 111; -pub const SYS_idle: ::c_long = 4000 + 112; -pub const SYS_vm86: ::c_long = 4000 + 113; -pub const SYS_wait4: ::c_long = 4000 + 114; -pub const SYS_swapoff: ::c_long = 4000 + 115; -pub const SYS_sysinfo: ::c_long = 4000 + 116; -pub const SYS_ipc: ::c_long = 4000 + 117; -pub const SYS_fsync: ::c_long = 4000 + 118; -pub const SYS_sigreturn: ::c_long = 4000 + 119; -pub const SYS_clone: ::c_long = 4000 + 120; -pub const SYS_setdomainname: ::c_long = 4000 + 121; -pub const SYS_uname: ::c_long = 4000 + 122; -pub const SYS_modify_ldt: ::c_long = 4000 + 123; -pub const SYS_adjtimex: ::c_long = 4000 + 124; -pub const SYS_mprotect: ::c_long = 4000 + 125; -pub const SYS_sigprocmask: ::c_long = 4000 + 126; -pub const SYS_create_module: ::c_long = 4000 + 127; -pub const SYS_init_module: ::c_long = 4000 + 128; -pub const SYS_delete_module: ::c_long = 4000 + 129; -pub const SYS_get_kernel_syms: ::c_long = 4000 + 130; -pub const SYS_quotactl: ::c_long = 4000 + 131; -pub const SYS_getpgid: ::c_long = 4000 + 132; -pub const SYS_fchdir: ::c_long = 4000 + 133; -pub const SYS_bdflush: ::c_long = 4000 + 134; -pub const SYS_sysfs: ::c_long = 4000 + 135; -pub const SYS_personality: ::c_long = 4000 + 136; -pub const SYS_afs_syscall: ::c_long = 4000 + 137; -pub const SYS_setfsuid: ::c_long = 4000 + 138; -pub const SYS_setfsgid: ::c_long = 4000 + 139; -pub const SYS__llseek: ::c_long = 4000 + 140; -pub const SYS_getdents: ::c_long = 4000 + 141; -pub const SYS__newselect: ::c_long = 4000 + 142; -pub const SYS_flock: ::c_long = 4000 + 143; -pub const SYS_msync: ::c_long = 4000 + 144; -pub const SYS_readv: ::c_long = 4000 + 145; -pub const SYS_writev: ::c_long = 4000 + 146; -pub const SYS_cacheflush: ::c_long = 4000 + 147; -pub const SYS_cachectl: ::c_long = 4000 + 148; -pub const SYS_sysmips: ::c_long = 4000 + 149; -pub const SYS_getsid: ::c_long = 4000 + 151; -pub const SYS_fdatasync: ::c_long = 4000 + 152; -pub const SYS__sysctl: ::c_long = 4000 + 153; -pub const SYS_mlock: ::c_long = 4000 + 154; -pub const SYS_munlock: ::c_long = 4000 + 155; -pub const SYS_mlockall: ::c_long = 4000 + 156; -pub const SYS_munlockall: ::c_long = 4000 + 157; -pub const SYS_sched_setparam: ::c_long = 4000 + 158; -pub const SYS_sched_getparam: ::c_long = 4000 + 159; -pub const SYS_sched_setscheduler: ::c_long = 4000 + 160; -pub const SYS_sched_getscheduler: ::c_long = 4000 + 161; -pub const SYS_sched_yield: ::c_long = 4000 + 162; -pub const SYS_sched_get_priority_max: ::c_long = 4000 + 163; -pub const SYS_sched_get_priority_min: ::c_long = 4000 + 164; -pub const SYS_sched_rr_get_interval: ::c_long = 4000 + 165; -pub const SYS_nanosleep: ::c_long = 4000 + 166; -pub const SYS_mremap: ::c_long = 4000 + 167; -pub const SYS_accept: ::c_long = 4000 + 168; -pub const SYS_bind: ::c_long = 4000 + 169; -pub const SYS_connect: ::c_long = 4000 + 170; -pub const SYS_getpeername: ::c_long = 4000 + 171; -pub const SYS_getsockname: ::c_long = 4000 + 172; -pub const SYS_getsockopt: ::c_long = 4000 + 173; -pub const SYS_listen: ::c_long = 4000 + 174; -pub const SYS_recv: ::c_long = 4000 + 175; -pub const SYS_recvfrom: ::c_long = 4000 + 176; -pub const SYS_recvmsg: ::c_long = 4000 + 177; -pub const SYS_send: ::c_long = 4000 + 178; -pub const SYS_sendmsg: ::c_long = 4000 + 179; -pub const SYS_sendto: ::c_long = 4000 + 180; -pub const SYS_setsockopt: ::c_long = 4000 + 181; -pub const SYS_shutdown: ::c_long = 4000 + 182; -pub const SYS_socket: ::c_long = 4000 + 183; -pub const SYS_socketpair: ::c_long = 4000 + 184; -pub const SYS_setresuid: ::c_long = 4000 + 185; -pub const SYS_getresuid: ::c_long = 4000 + 186; -pub const SYS_query_module: ::c_long = 4000 + 187; -pub const SYS_poll: ::c_long = 4000 + 188; -pub const SYS_nfsservctl: ::c_long = 4000 + 189; -pub const SYS_setresgid: ::c_long = 4000 + 190; -pub const SYS_getresgid: ::c_long = 4000 + 191; -pub const SYS_prctl: ::c_long = 4000 + 192; -pub const SYS_rt_sigreturn: ::c_long = 4000 + 193; -pub const SYS_rt_sigaction: ::c_long = 4000 + 194; -pub const SYS_rt_sigprocmask: ::c_long = 4000 + 195; -pub const SYS_rt_sigpending: ::c_long = 4000 + 196; -pub const SYS_rt_sigtimedwait: ::c_long = 4000 + 197; -pub const SYS_rt_sigqueueinfo: ::c_long = 4000 + 198; -pub const SYS_rt_sigsuspend: ::c_long = 4000 + 199; -pub const SYS_pread64: ::c_long = 4000 + 200; -pub const SYS_pwrite64: ::c_long = 4000 + 201; -pub const SYS_chown: ::c_long = 4000 + 202; -pub const SYS_getcwd: ::c_long = 4000 + 203; -pub const SYS_capget: ::c_long = 4000 + 204; -pub const SYS_capset: ::c_long = 4000 + 205; -pub const SYS_sigaltstack: ::c_long = 4000 + 206; -pub const SYS_sendfile: ::c_long = 4000 + 207; -pub const SYS_getpmsg: ::c_long = 4000 + 208; -pub const SYS_putpmsg: ::c_long = 4000 + 209; -pub const SYS_mmap2: ::c_long = 4000 + 210; -pub const SYS_truncate64: ::c_long = 4000 + 211; -pub const SYS_ftruncate64: ::c_long = 4000 + 212; -pub const SYS_stat64: ::c_long = 4000 + 213; -pub const SYS_lstat64: ::c_long = 4000 + 214; -pub const SYS_fstat64: ::c_long = 4000 + 215; -pub const SYS_pivot_root: ::c_long = 4000 + 216; -pub const SYS_mincore: ::c_long = 4000 + 217; -pub const SYS_madvise: ::c_long = 4000 + 218; -pub const SYS_getdents64: ::c_long = 4000 + 219; -pub const SYS_fcntl64: ::c_long = 4000 + 220; -pub const SYS_gettid: ::c_long = 4000 + 222; -pub const SYS_readahead: ::c_long = 4000 + 223; -pub const SYS_setxattr: ::c_long = 4000 + 224; -pub const SYS_lsetxattr: ::c_long = 4000 + 225; -pub const SYS_fsetxattr: ::c_long = 4000 + 226; -pub const SYS_getxattr: ::c_long = 4000 + 227; -pub const SYS_lgetxattr: ::c_long = 4000 + 228; -pub const SYS_fgetxattr: ::c_long = 4000 + 229; -pub const SYS_listxattr: ::c_long = 4000 + 230; -pub const SYS_llistxattr: ::c_long = 4000 + 231; -pub const SYS_flistxattr: ::c_long = 4000 + 232; -pub const SYS_removexattr: ::c_long = 4000 + 233; -pub const SYS_lremovexattr: ::c_long = 4000 + 234; -pub const SYS_fremovexattr: ::c_long = 4000 + 235; -pub const SYS_tkill: ::c_long = 4000 + 236; -pub const SYS_sendfile64: ::c_long = 4000 + 237; -pub const SYS_futex: ::c_long = 4000 + 238; -pub const SYS_sched_setaffinity: ::c_long = 4000 + 239; -pub const SYS_sched_getaffinity: ::c_long = 4000 + 240; -pub const SYS_io_setup: ::c_long = 4000 + 241; -pub const SYS_io_destroy: ::c_long = 4000 + 242; -pub const SYS_io_getevents: ::c_long = 4000 + 243; -pub const SYS_io_submit: ::c_long = 4000 + 244; -pub const SYS_io_cancel: ::c_long = 4000 + 245; -pub const SYS_exit_group: ::c_long = 4000 + 246; -pub const SYS_lookup_dcookie: ::c_long = 4000 + 247; -pub const SYS_epoll_create: ::c_long = 4000 + 248; -pub const SYS_epoll_ctl: ::c_long = 4000 + 249; -pub const SYS_epoll_wait: ::c_long = 4000 + 250; -pub const SYS_remap_file_pages: ::c_long = 4000 + 251; -pub const SYS_set_tid_address: ::c_long = 4000 + 252; -pub const SYS_restart_syscall: ::c_long = 4000 + 253; -pub const SYS_fadvise64: ::c_long = 4000 + 254; -pub const SYS_statfs64: ::c_long = 4000 + 255; -pub const SYS_fstatfs64: ::c_long = 4000 + 256; -pub const SYS_timer_create: ::c_long = 4000 + 257; -pub const SYS_timer_settime: ::c_long = 4000 + 258; -pub const SYS_timer_gettime: ::c_long = 4000 + 259; -pub const SYS_timer_getoverrun: ::c_long = 4000 + 260; -pub const SYS_timer_delete: ::c_long = 4000 + 261; -pub const SYS_clock_settime: ::c_long = 4000 + 262; -pub const SYS_clock_gettime: ::c_long = 4000 + 263; -pub const SYS_clock_getres: ::c_long = 4000 + 264; -pub const SYS_clock_nanosleep: ::c_long = 4000 + 265; -pub const SYS_tgkill: ::c_long = 4000 + 266; -pub const SYS_utimes: ::c_long = 4000 + 267; -pub const SYS_mbind: ::c_long = 4000 + 268; -pub const SYS_get_mempolicy: ::c_long = 4000 + 269; -pub const SYS_set_mempolicy: ::c_long = 4000 + 270; -pub const SYS_mq_open: ::c_long = 4000 + 271; -pub const SYS_mq_unlink: ::c_long = 4000 + 272; -pub const SYS_mq_timedsend: ::c_long = 4000 + 273; -pub const SYS_mq_timedreceive: ::c_long = 4000 + 274; -pub const SYS_mq_notify: ::c_long = 4000 + 275; -pub const SYS_mq_getsetattr: ::c_long = 4000 + 276; -pub const SYS_vserver: ::c_long = 4000 + 277; -pub const SYS_waitid: ::c_long = 4000 + 278; -/* pub const SYS_sys_setaltroot: ::c_long = 4000 + 279; */ -pub const SYS_add_key: ::c_long = 4000 + 280; -pub const SYS_request_key: ::c_long = 4000 + 281; -pub const SYS_keyctl: ::c_long = 4000 + 282; -pub const SYS_set_thread_area: ::c_long = 4000 + 283; -pub const SYS_inotify_init: ::c_long = 4000 + 284; -pub const SYS_inotify_add_watch: ::c_long = 4000 + 285; -pub const SYS_inotify_rm_watch: ::c_long = 4000 + 286; -pub const SYS_migrate_pages: ::c_long = 4000 + 287; -pub const SYS_openat: ::c_long = 4000 + 288; -pub const SYS_mkdirat: ::c_long = 4000 + 289; -pub const SYS_mknodat: ::c_long = 4000 + 290; -pub const SYS_fchownat: ::c_long = 4000 + 291; -pub const SYS_futimesat: ::c_long = 4000 + 292; -pub const SYS_fstatat64: ::c_long = 4000 + 293; -pub const SYS_unlinkat: ::c_long = 4000 + 294; -pub const SYS_renameat: ::c_long = 4000 + 295; -pub const SYS_linkat: ::c_long = 4000 + 296; -pub const SYS_symlinkat: ::c_long = 4000 + 297; -pub const SYS_readlinkat: ::c_long = 4000 + 298; -pub const SYS_fchmodat: ::c_long = 4000 + 299; -pub const SYS_faccessat: ::c_long = 4000 + 300; -pub const SYS_pselect6: ::c_long = 4000 + 301; -pub const SYS_ppoll: ::c_long = 4000 + 302; -pub const SYS_unshare: ::c_long = 4000 + 303; -pub const SYS_splice: ::c_long = 4000 + 304; -pub const SYS_sync_file_range: ::c_long = 4000 + 305; -pub const SYS_tee: ::c_long = 4000 + 306; -pub const SYS_vmsplice: ::c_long = 4000 + 307; -pub const SYS_move_pages: ::c_long = 4000 + 308; -pub const SYS_set_robust_list: ::c_long = 4000 + 309; -pub const SYS_get_robust_list: ::c_long = 4000 + 310; -pub const SYS_kexec_load: ::c_long = 4000 + 311; -pub const SYS_getcpu: ::c_long = 4000 + 312; -pub const SYS_epoll_pwait: ::c_long = 4000 + 313; -pub const SYS_ioprio_set: ::c_long = 4000 + 314; -pub const SYS_ioprio_get: ::c_long = 4000 + 315; -pub const SYS_utimensat: ::c_long = 4000 + 316; -pub const SYS_signalfd: ::c_long = 4000 + 317; -pub const SYS_timerfd: ::c_long = 4000 + 318; -pub const SYS_eventfd: ::c_long = 4000 + 319; -pub const SYS_fallocate: ::c_long = 4000 + 320; -pub const SYS_timerfd_create: ::c_long = 4000 + 321; -pub const SYS_timerfd_gettime: ::c_long = 4000 + 322; -pub const SYS_timerfd_settime: ::c_long = 4000 + 323; -pub const SYS_signalfd4: ::c_long = 4000 + 324; -pub const SYS_eventfd2: ::c_long = 4000 + 325; -pub const SYS_epoll_create1: ::c_long = 4000 + 326; -pub const SYS_dup3: ::c_long = 4000 + 327; -pub const SYS_pipe2: ::c_long = 4000 + 328; -pub const SYS_inotify_init1: ::c_long = 4000 + 329; -pub const SYS_preadv: ::c_long = 4000 + 330; -pub const SYS_pwritev: ::c_long = 4000 + 331; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 4000 + 332; -pub const SYS_perf_event_open: ::c_long = 4000 + 333; -pub const SYS_accept4: ::c_long = 4000 + 334; -pub const SYS_recvmmsg: ::c_long = 4000 + 335; -pub const SYS_fanotify_init: ::c_long = 4000 + 336; -pub const SYS_fanotify_mark: ::c_long = 4000 + 337; -pub const SYS_prlimit64: ::c_long = 4000 + 338; -pub const SYS_name_to_handle_at: ::c_long = 4000 + 339; -pub const SYS_open_by_handle_at: ::c_long = 4000 + 340; -pub const SYS_clock_adjtime: ::c_long = 4000 + 341; -pub const SYS_syncfs: ::c_long = 4000 + 342; -pub const SYS_sendmmsg: ::c_long = 4000 + 343; -pub const SYS_setns: ::c_long = 4000 + 344; -pub const SYS_process_vm_readv: ::c_long = 4000 + 345; -pub const SYS_process_vm_writev: ::c_long = 4000 + 346; -pub const SYS_kcmp: ::c_long = 4000 + 347; -pub const SYS_finit_module: ::c_long = 4000 + 348; -pub const SYS_sched_setattr: ::c_long = 4000 + 349; -pub const SYS_sched_getattr: ::c_long = 4000 + 350; -pub const SYS_renameat2: ::c_long = 4000 + 351; -pub const SYS_seccomp: ::c_long = 4000 + 352; -pub const SYS_getrandom: ::c_long = 4000 + 353; -pub const SYS_memfd_create: ::c_long = 4000 + 354; -pub const SYS_bpf: ::c_long = 4000 + 355; -pub const SYS_execveat: ::c_long = 4000 + 356; -pub const SYS_userfaultfd: ::c_long = 4000 + 357; -pub const SYS_membarrier: ::c_long = 4000 + 358; -pub const SYS_mlock2: ::c_long = 4000 + 359; -pub const SYS_copy_file_range: ::c_long = 4000 + 360; -pub const SYS_preadv2: ::c_long = 4000 + 361; -pub const SYS_pwritev2: ::c_long = 4000 + 362; -pub const SYS_pkey_mprotect: ::c_long = 4000 + 363; -pub const SYS_pkey_alloc: ::c_long = 4000 + 364; -pub const SYS_pkey_free: ::c_long = 4000 + 365; -pub const SYS_statx: ::c_long = 4000 + 366; -pub const SYS_rseq: ::c_long = 4000 + 367; -pub const SYS_pidfd_send_signal: ::c_long = 4000 + 424; -pub const SYS_io_uring_setup: ::c_long = 4000 + 425; -pub const SYS_io_uring_enter: ::c_long = 4000 + 426; -pub const SYS_io_uring_register: ::c_long = 4000 + 427; -pub const SYS_open_tree: ::c_long = 4000 + 428; -pub const SYS_move_mount: ::c_long = 4000 + 429; -pub const SYS_fsopen: ::c_long = 4000 + 430; -pub const SYS_fsconfig: ::c_long = 4000 + 431; -pub const SYS_fsmount: ::c_long = 4000 + 432; -pub const SYS_fspick: ::c_long = 4000 + 433; -pub const SYS_pidfd_open: ::c_long = 4000 + 434; -pub const SYS_clone3: ::c_long = 4000 + 435; -pub const SYS_close_range: ::c_long = 4000 + 436; -pub const SYS_openat2: ::c_long = 4000 + 437; -pub const SYS_pidfd_getfd: ::c_long = 4000 + 438; -pub const SYS_faccessat2: ::c_long = 4000 + 439; -pub const SYS_process_madvise: ::c_long = 4000 + 440; -pub const SYS_epoll_pwait2: ::c_long = 4000 + 441; -pub const SYS_mount_setattr: ::c_long = 4000 + 442; -pub const SYS_quotactl_fd: ::c_long = 4000 + 443; -pub const SYS_landlock_create_ruleset: ::c_long = 4000 + 444; -pub const SYS_landlock_add_rule: ::c_long = 4000 + 445; -pub const SYS_landlock_restrict_self: ::c_long = 4000 + 446; -pub const SYS_memfd_secret: ::c_long = 4000 + 447; -pub const SYS_process_mrelease: ::c_long = 4000 + 448; -pub const SYS_futex_waitv: ::c_long = 4000 + 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 4000 + 450; - -pub const O_DIRECT: ::c_int = 0x8000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; - -pub const O_APPEND: ::c_int = 8; -pub const O_CREAT: ::c_int = 256; -pub const O_EXCL: ::c_int = 1024; -pub const O_NOCTTY: ::c_int = 2048; -pub const O_NONBLOCK: ::c_int = 128; -pub const O_SYNC: ::c_int = 0x4010; -pub const O_RSYNC: ::c_int = 0x4010; -pub const O_DSYNC: ::c_int = 0x10; -pub const O_FSYNC: ::c_int = 0x4010; -pub const O_ASYNC: ::c_int = 0x1000; -pub const O_NDELAY: ::c_int = 0x80; - -pub const EDEADLK: ::c_int = 45; -pub const ENAMETOOLONG: ::c_int = 78; -pub const ENOLCK: ::c_int = 46; -pub const ENOSYS: ::c_int = 89; -pub const ENOTEMPTY: ::c_int = 93; -pub const ELOOP: ::c_int = 90; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EDEADLOCK: ::c_int = 56; -pub const EMULTIHOP: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EBADMSG: ::c_int = 77; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const EUSERS: ::c_int = 94; -pub const ENOTSOCK: ::c_int = 95; -pub const EDESTADDRREQ: ::c_int = 96; -pub const EMSGSIZE: ::c_int = 97; -pub const EPROTOTYPE: ::c_int = 98; -pub const ENOPROTOOPT: ::c_int = 99; -pub const EPROTONOSUPPORT: ::c_int = 120; -pub const ESOCKTNOSUPPORT: ::c_int = 121; -pub const EOPNOTSUPP: ::c_int = 122; -pub const EPFNOSUPPORT: ::c_int = 123; -pub const EAFNOSUPPORT: ::c_int = 124; -pub const EADDRINUSE: ::c_int = 125; -pub const EADDRNOTAVAIL: ::c_int = 126; -pub const ENETDOWN: ::c_int = 127; -pub const ENETUNREACH: ::c_int = 128; -pub const ENETRESET: ::c_int = 129; -pub const ECONNABORTED: ::c_int = 130; -pub const ECONNRESET: ::c_int = 131; -pub const ENOBUFS: ::c_int = 132; -pub const EISCONN: ::c_int = 133; -pub const ENOTCONN: ::c_int = 134; -pub const ESHUTDOWN: ::c_int = 143; -pub const ETOOMANYREFS: ::c_int = 144; -pub const ETIMEDOUT: ::c_int = 145; -pub const ECONNREFUSED: ::c_int = 146; -pub const EHOSTDOWN: ::c_int = 147; -pub const EHOSTUNREACH: ::c_int = 148; -pub const EALREADY: ::c_int = 149; -pub const EINPROGRESS: ::c_int = 150; -pub const ESTALE: ::c_int = 151; -pub const EUCLEAN: ::c_int = 135; -pub const ENOTNAM: ::c_int = 137; -pub const ENAVAIL: ::c_int = 138; -pub const EISNAM: ::c_int = 139; -pub const EREMOTEIO: ::c_int = 140; -pub const EDQUOT: ::c_int = 1133; -pub const ENOMEDIUM: ::c_int = 159; -pub const EMEDIUMTYPE: ::c_int = 160; -pub const ECANCELED: ::c_int = 158; -pub const ENOKEY: ::c_int = 161; -pub const EKEYEXPIRED: ::c_int = 162; -pub const EKEYREVOKED: ::c_int = 163; -pub const EKEYREJECTED: ::c_int = 164; -pub const EOWNERDEAD: ::c_int = 165; -pub const ENOTRECOVERABLE: ::c_int = 166; -pub const ERFKILL: ::c_int = 167; - -pub const MAP_NORESERVE: ::c_int = 0x400; -pub const MAP_ANON: ::c_int = 0x800; -pub const MAP_ANONYMOUS: ::c_int = 0x800; -pub const MAP_GROWSDOWN: ::c_int = 0x1000; -pub const MAP_DENYWRITE: ::c_int = 0x2000; -pub const MAP_EXECUTABLE: ::c_int = 0x4000; -pub const MAP_LOCKED: ::c_int = 0x8000; -pub const MAP_POPULATE: ::c_int = 0x10000; -pub const MAP_NONBLOCK: ::c_int = 0x20000; -pub const MAP_STACK: ::c_int = 0x40000; - -pub const SOCK_STREAM: ::c_int = 2; -pub const SOCK_DGRAM: ::c_int = 1; - -pub const SA_SIGINFO: ::c_int = 0x00000008; -pub const SA_NOCLDWAIT: ::c_int = 0x00010000; - -pub const SIGCHLD: ::c_int = 18; -pub const SIGBUS: ::c_int = 10; -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGWINCH: ::c_int = 20; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGCONT: ::c_int = 25; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGURG: ::c_int = 21; -pub const SIGIO: ::c_int = 22; -pub const SIGSYS: ::c_int = 12; -pub const SIGPOLL: ::c_int = 22; -pub const SIGPWR: ::c_int = 19; -pub const SIG_SETMASK: ::c_int = 3; -pub const SIG_BLOCK: ::c_int = 0x1; -pub const SIG_UNBLOCK: ::c_int = 0x2; - -pub const POLLWRNORM: ::c_short = 0x004; -pub const POLLWRBAND: ::c_short = 0x100; - -pub const VEOF: usize = 16; -pub const VEOL: usize = 17; -pub const VEOL2: usize = 6; -pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0x00000100; -pub const TOSTOP: ::tcflag_t = 0x00008000; -pub const FLUSHO: ::tcflag_t = 0x00002000; -pub const EXTPROC: ::tcflag_t = 0o200000; -pub const TCSANOW: ::c_int = 0x540e; -pub const TCSADRAIN: ::c_int = 0x540f; -pub const TCSAFLUSH: ::c_int = 0x5410; - -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; - -pub const MAP_HUGETLB: ::c_int = 0x080000; - -pub const EFD_NONBLOCK: ::c_int = 0x80; - -pub const F_GETLK: ::c_int = 14; -pub const F_GETOWN: ::c_int = 23; -pub const F_SETOWN: ::c_int = 24; - -pub const SFD_NONBLOCK: ::c_int = 0x80; - -pub const RTLD_DEEPBIND: ::c_int = 0x10; -pub const RTLD_GLOBAL: ::c_int = 0x4; -pub const RTLD_NOLOAD: ::c_int = 0x8; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const EHWPOISON: ::c_int = 168; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mod.rs deleted file mode 100644 index 66d1d016f..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/mod.rs +++ /dev/null @@ -1,358 +0,0 @@ -//! 32-bit specific definitions for linux-like values - -use pthread_mutex_t; - -pub type c_long = i32; -pub type c_ulong = u32; -pub type clock_t = i32; - -pub type shmatt_t = ::c_ulong; -pub type msgqnum_t = ::c_ulong; -pub type msglen_t = ::c_ulong; -pub type nlink_t = u32; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; -pub type __fsword_t = i32; -pub type fsblkcnt64_t = u64; -pub type fsfilcnt64_t = u64; -pub type __syscall_ulong_t = ::c_ulong; - -cfg_if! { - if #[cfg(target_arch = "riscv32")] { - pub type time_t = i64; - pub type suseconds_t = i64; - pub type ino_t = u64; - pub type off_t = i64; - pub type blkcnt_t = i64; - pub type fsblkcnt_t = u64; - pub type fsfilcnt_t = u64; - pub type rlim_t = u64; - pub type blksize_t = i64; - } else { - pub type time_t = i32; - pub type suseconds_t = i32; - pub type ino_t = u32; - pub type off_t = i32; - pub type blkcnt_t = i32; - pub type fsblkcnt_t = ::c_ulong; - pub type fsfilcnt_t = ::c_ulong; - pub type rlim_t = c_ulong; - pub type blksize_t = i32; - } -} - -s! { - pub struct stat { - #[cfg(not(target_arch = "mips"))] - pub st_dev: ::dev_t, - #[cfg(target_arch = "mips")] - pub st_dev: ::c_ulong, - - #[cfg(not(target_arch = "mips"))] - __pad1: ::c_short, - #[cfg(target_arch = "mips")] - st_pad1: [::c_long; 3], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - #[cfg(not(target_arch = "mips"))] - pub st_rdev: ::dev_t, - #[cfg(target_arch = "mips")] - pub st_rdev: ::c_ulong, - #[cfg(not(target_arch = "mips"))] - __pad2: ::c_short, - #[cfg(target_arch = "mips")] - st_pad2: [::c_long; 2], - pub st_size: ::off_t, - #[cfg(target_arch = "mips")] - st_pad3: ::c_long, - #[cfg(not(target_arch = "mips"))] - pub st_blksize: ::blksize_t, - #[cfg(not(target_arch = "mips"))] - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - #[cfg(not(target_arch = "mips"))] - __unused4: ::c_long, - #[cfg(not(target_arch = "mips"))] - __unused5: ::c_long, - #[cfg(target_arch = "mips")] - pub st_blksize: ::blksize_t, - #[cfg(target_arch = "mips")] - pub st_blocks: ::blkcnt_t, - #[cfg(target_arch = "mips")] - st_pad5: [::c_long; 14], - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct pthread_attr_t { - __size: [u32; 9] - } - - pub struct sigset_t { - __val: [::c_ulong; 32], - } - - pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - #[deprecated( - since = "0.2.58", - note = "This padding field might become private in the future" - )] - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 8], - } - - pub struct semid_ds { - pub sem_perm: ipc_perm, - #[cfg(target_arch = "powerpc")] - __reserved: ::__syscall_ulong_t, - pub sem_otime: ::time_t, - #[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))] - __reserved: ::__syscall_ulong_t, - #[cfg(target_arch = "powerpc")] - __reserved2: ::__syscall_ulong_t, - pub sem_ctime: ::time_t, - #[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))] - __reserved2: ::__syscall_ulong_t, - pub sem_nsems: ::__syscall_ulong_t, - __glibc_reserved3: ::__syscall_ulong_t, - __glibc_reserved4: ::__syscall_ulong_t, - } -} - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; - -cfg_if! { - if #[cfg(target_arch = "sparc")] { - pub const O_NOATIME: ::c_int = 0x200000; - pub const O_PATH: ::c_int = 0x1000000; - pub const O_TMPFILE: ::c_int = 0x2000000 | O_DIRECTORY; - - pub const SA_ONSTACK: ::c_int = 1; - - pub const PTRACE_DETACH: ::c_uint = 11; - - pub const F_SETLK: ::c_int = 8; - pub const F_SETLKW: ::c_int = 9; - - pub const F_RDLCK: ::c_int = 1; - pub const F_WRLCK: ::c_int = 2; - pub const F_UNLCK: ::c_int = 3; - - pub const SFD_CLOEXEC: ::c_int = 0x400000; - - pub const NCCS: usize = 17; - - pub const O_TRUNC: ::c_int = 0x400; - pub const O_CLOEXEC: ::c_int = 0x400000; - - pub const EBFONT: ::c_int = 109; - pub const ENOSTR: ::c_int = 72; - pub const ENODATA: ::c_int = 111; - pub const ETIME: ::c_int = 73; - pub const ENOSR: ::c_int = 74; - pub const ENONET: ::c_int = 80; - pub const ENOPKG: ::c_int = 113; - pub const EREMOTE: ::c_int = 71; - pub const ENOLINK: ::c_int = 82; - pub const EADV: ::c_int = 83; - pub const ESRMNT: ::c_int = 84; - pub const ECOMM: ::c_int = 85; - pub const EPROTO: ::c_int = 86; - pub const EDOTDOT: ::c_int = 88; - - pub const SA_NODEFER: ::c_int = 0x20; - pub const SA_RESETHAND: ::c_int = 0x4; - pub const SA_RESTART: ::c_int = 0x2; - pub const SA_NOCLDSTOP: ::c_int = 0x00000008; - - pub const EPOLL_CLOEXEC: ::c_int = 0x400000; - - pub const EFD_CLOEXEC: ::c_int = 0x400000; - } else { - pub const O_NOATIME: ::c_int = 0o1000000; - pub const O_PATH: ::c_int = 0o10000000; - pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - - pub const SA_ONSTACK: ::c_int = 0x08000000; - - pub const PTRACE_DETACH: ::c_uint = 17; - - pub const F_SETLK: ::c_int = 6; - pub const F_SETLKW: ::c_int = 7; - - pub const F_RDLCK: ::c_int = 0; - pub const F_WRLCK: ::c_int = 1; - pub const F_UNLCK: ::c_int = 2; - - pub const SFD_CLOEXEC: ::c_int = 0x080000; - - pub const NCCS: usize = 32; - - pub const O_TRUNC: ::c_int = 512; - pub const O_CLOEXEC: ::c_int = 0x80000; - pub const EBFONT: ::c_int = 59; - pub const ENOSTR: ::c_int = 60; - pub const ENODATA: ::c_int = 61; - pub const ETIME: ::c_int = 62; - pub const ENOSR: ::c_int = 63; - pub const ENONET: ::c_int = 64; - pub const ENOPKG: ::c_int = 65; - pub const EREMOTE: ::c_int = 66; - pub const ENOLINK: ::c_int = 67; - pub const EADV: ::c_int = 68; - pub const ESRMNT: ::c_int = 69; - pub const ECOMM: ::c_int = 70; - pub const EPROTO: ::c_int = 71; - pub const EDOTDOT: ::c_int = 73; - - pub const SA_NODEFER: ::c_int = 0x40000000; - pub const SA_RESETHAND: ::c_int = 0x80000000; - pub const SA_RESTART: ::c_int = 0x10000000; - pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - - pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - - pub const EFD_CLOEXEC: ::c_int = 0x80000; - } -} - -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; -} - -pub const PTRACE_GETFPREGS: ::c_uint = 14; -pub const PTRACE_SETFPREGS: ::c_uint = 15; -pub const PTRACE_GETREGS: ::c_uint = 12; -pub const PTRACE_SETREGS: ::c_uint = 13; - -extern "C" { - pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; -} - -cfg_if! { - if #[cfg(target_arch = "x86")] { - mod x86; - pub use self::x86::*; - } else if #[cfg(target_arch = "arm")] { - mod arm; - pub use self::arm::*; - } else if #[cfg(target_arch = "mips")] { - mod mips; - pub use self::mips::*; - } else if #[cfg(target_arch = "m68k")] { - mod m68k; - pub use self::m68k::*; - } else if #[cfg(target_arch = "powerpc")] { - mod powerpc; - pub use self::powerpc::*; - } else if #[cfg(target_arch = "sparc")] { - mod sparc; - pub use self::sparc::*; - } else if #[cfg(target_arch = "riscv32")] { - mod riscv32; - pub use self::riscv32::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/powerpc.rs deleted file mode 100644 index e70b216bf..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ /dev/null @@ -1,824 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = i32; - -s! { - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct ipc_perm { - __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - __seq: u32, - __pad1: u32, - __glibc_reserved1: u64, - __glibc_reserved2: u64, - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_ushort, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, - } - - pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - __glibc_reserved1: ::c_uint, - pub shm_atime: ::time_t, - __glibc_reserved2: ::c_uint, - pub shm_dtime: ::time_t, - __glibc_reserved3: ::c_uint, - pub shm_ctime: ::time_t, - __glibc_reserved4: ::c_uint, - pub shm_segsz: ::size_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __glibc_reserved5: ::c_ulong, - __glibc_reserved6: ::c_ulong, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - __glibc_reserved1: ::c_uint, - pub msg_stime: ::time_t, - __glibc_reserved2: ::c_uint, - pub msg_rtime: ::time_t, - __glibc_reserved3: ::c_uint, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } -} - -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const O_DIRECT: ::c_int = 0x20000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_LARGEFILE: ::c_int = 0o200000; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_LOCKED: ::c_int = 0x00080; -pub const MAP_NORESERVE: ::c_int = 0x00040; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLOCK: ::c_int = 58; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const MCL_CURRENT: ::c_int = 0x2000; -pub const MCL_FUTURE: ::c_int = 0x4000; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; - -pub const EFD_NONBLOCK: ::c_int = 0x800; -pub const SFD_NONBLOCK: ::c_int = 0x0800; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGSTKSZ: ::size_t = 0x4000; -pub const MINSIGSTKSZ: ::size_t = 4096; -pub const CBAUD: ::tcflag_t = 0xff; -pub const TAB1: ::tcflag_t = 0x400; -pub const TAB2: ::tcflag_t = 0x800; -pub const TAB3: ::tcflag_t = 0xc00; -pub const CR1: ::tcflag_t = 0x1000; -pub const CR2: ::tcflag_t = 0x2000; -pub const CR3: ::tcflag_t = 0x3000; -pub const FF1: ::tcflag_t = 0x4000; -pub const BS1: ::tcflag_t = 0x8000; -pub const VT1: ::tcflag_t = 0x10000; -pub const VWERASE: usize = 0xa; -pub const VREPRINT: usize = 0xb; -pub const VSUSP: usize = 0xc; -pub const VSTART: usize = 0xd; -pub const VSTOP: usize = 0xe; -pub const VDISCARD: usize = 0x10; -pub const VTIME: usize = 0x7; -pub const IXON: ::tcflag_t = 0x200; -pub const IXOFF: ::tcflag_t = 0x400; -pub const ONLCR: ::tcflag_t = 0x2; -pub const CSIZE: ::tcflag_t = 0x300; -pub const CS6: ::tcflag_t = 0x100; -pub const CS7: ::tcflag_t = 0x200; -pub const CS8: ::tcflag_t = 0x300; -pub const CSTOPB: ::tcflag_t = 0x400; -pub const CREAD: ::tcflag_t = 0x800; -pub const PARENB: ::tcflag_t = 0x1000; -pub const PARODD: ::tcflag_t = 0x2000; -pub const HUPCL: ::tcflag_t = 0x4000; -pub const CLOCAL: ::tcflag_t = 0x8000; -pub const ECHOKE: ::tcflag_t = 0x1; -pub const ECHOE: ::tcflag_t = 0x2; -pub const ECHOK: ::tcflag_t = 0x4; -pub const ECHONL: ::tcflag_t = 0x10; -pub const ECHOPRT: ::tcflag_t = 0x20; -pub const ECHOCTL: ::tcflag_t = 0x40; -pub const ISIG: ::tcflag_t = 0x80; -pub const ICANON: ::tcflag_t = 0x100; -pub const PENDIN: ::tcflag_t = 0x20000000; -pub const NOFLSH: ::tcflag_t = 0x80000000; -pub const VSWTC: usize = 9; -pub const OLCUC: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o001400; -pub const CRDLY: ::tcflag_t = 0o030000; -pub const TABDLY: ::tcflag_t = 0o006000; -pub const BSDLY: ::tcflag_t = 0o100000; -pub const FFDLY: ::tcflag_t = 0o040000; -pub const VTDLY: ::tcflag_t = 0o200000; -pub const XTABS: ::tcflag_t = 0o006000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const CBAUDEX: ::speed_t = 0o000020; -pub const B57600: ::speed_t = 0o0020; -pub const B115200: ::speed_t = 0o0021; -pub const B230400: ::speed_t = 0o0022; -pub const B460800: ::speed_t = 0o0023; -pub const B500000: ::speed_t = 0o0024; -pub const B576000: ::speed_t = 0o0025; -pub const B921600: ::speed_t = 0o0026; -pub const B1000000: ::speed_t = 0o0027; -pub const B1152000: ::speed_t = 0o0030; -pub const B1500000: ::speed_t = 0o0031; -pub const B2000000: ::speed_t = 0o0032; -pub const B2500000: ::speed_t = 0o0033; -pub const B3000000: ::speed_t = 0o0034; -pub const B3500000: ::speed_t = 0o0035; -pub const B4000000: ::speed_t = 0o0036; - -pub const VEOL: usize = 6; -pub const VEOL2: usize = 8; -pub const VMIN: usize = 5; -pub const IEXTEN: ::tcflag_t = 0x400; -pub const TOSTOP: ::tcflag_t = 0x400000; -pub const FLUSHO: ::tcflag_t = 0x800000; -pub const EXTPROC: ::tcflag_t = 0x10000000; - -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_query_module: ::c_long = 166; -pub const SYS_poll: ::c_long = 167; -pub const SYS_nfsservctl: ::c_long = 168; -pub const SYS_setresgid: ::c_long = 169; -pub const SYS_getresgid: ::c_long = 170; -pub const SYS_prctl: ::c_long = 171; -pub const SYS_rt_sigreturn: ::c_long = 172; -pub const SYS_rt_sigaction: ::c_long = 173; -pub const SYS_rt_sigprocmask: ::c_long = 174; -pub const SYS_rt_sigpending: ::c_long = 175; -pub const SYS_rt_sigtimedwait: ::c_long = 176; -pub const SYS_rt_sigqueueinfo: ::c_long = 177; -pub const SYS_rt_sigsuspend: ::c_long = 178; -pub const SYS_pread64: ::c_long = 179; -pub const SYS_pwrite64: ::c_long = 180; -pub const SYS_chown: ::c_long = 181; -pub const SYS_getcwd: ::c_long = 182; -pub const SYS_capget: ::c_long = 183; -pub const SYS_capset: ::c_long = 184; -pub const SYS_sigaltstack: ::c_long = 185; -pub const SYS_sendfile: ::c_long = 186; -pub const SYS_getpmsg: ::c_long = 187; /* some people actually want streams */ -pub const SYS_putpmsg: ::c_long = 188; /* some people actually want streams */ -pub const SYS_vfork: ::c_long = 189; -pub const SYS_ugetrlimit: ::c_long = 190; /* SuS compliant getrlimit */ -pub const SYS_readahead: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_pciconfig_read: ::c_long = 198; -pub const SYS_pciconfig_write: ::c_long = 199; -pub const SYS_pciconfig_iobase: ::c_long = 200; -pub const SYS_multiplexer: ::c_long = 201; -pub const SYS_getdents64: ::c_long = 202; -pub const SYS_pivot_root: ::c_long = 203; -pub const SYS_fcntl64: ::c_long = 204; -pub const SYS_madvise: ::c_long = 205; -pub const SYS_mincore: ::c_long = 206; -pub const SYS_gettid: ::c_long = 207; -pub const SYS_tkill: ::c_long = 208; -pub const SYS_setxattr: ::c_long = 209; -pub const SYS_lsetxattr: ::c_long = 210; -pub const SYS_fsetxattr: ::c_long = 211; -pub const SYS_getxattr: ::c_long = 212; -pub const SYS_lgetxattr: ::c_long = 213; -pub const SYS_fgetxattr: ::c_long = 214; -pub const SYS_listxattr: ::c_long = 215; -pub const SYS_llistxattr: ::c_long = 216; -pub const SYS_flistxattr: ::c_long = 217; -pub const SYS_removexattr: ::c_long = 218; -pub const SYS_lremovexattr: ::c_long = 219; -pub const SYS_fremovexattr: ::c_long = 220; -pub const SYS_futex: ::c_long = 221; -pub const SYS_sched_setaffinity: ::c_long = 222; -pub const SYS_sched_getaffinity: ::c_long = 223; -pub const SYS_tuxcall: ::c_long = 225; -pub const SYS_sendfile64: ::c_long = 226; -pub const SYS_io_setup: ::c_long = 227; -pub const SYS_io_destroy: ::c_long = 228; -pub const SYS_io_getevents: ::c_long = 229; -pub const SYS_io_submit: ::c_long = 230; -pub const SYS_io_cancel: ::c_long = 231; -pub const SYS_set_tid_address: ::c_long = 232; -pub const SYS_fadvise64: ::c_long = 233; -pub const SYS_exit_group: ::c_long = 234; -pub const SYS_lookup_dcookie: ::c_long = 235; -pub const SYS_epoll_create: ::c_long = 236; -pub const SYS_epoll_ctl: ::c_long = 237; -pub const SYS_epoll_wait: ::c_long = 238; -pub const SYS_remap_file_pages: ::c_long = 239; -pub const SYS_timer_create: ::c_long = 240; -pub const SYS_timer_settime: ::c_long = 241; -pub const SYS_timer_gettime: ::c_long = 242; -pub const SYS_timer_getoverrun: ::c_long = 243; -pub const SYS_timer_delete: ::c_long = 244; -pub const SYS_clock_settime: ::c_long = 245; -pub const SYS_clock_gettime: ::c_long = 246; -pub const SYS_clock_getres: ::c_long = 247; -pub const SYS_clock_nanosleep: ::c_long = 248; -pub const SYS_swapcontext: ::c_long = 249; -pub const SYS_tgkill: ::c_long = 250; -pub const SYS_utimes: ::c_long = 251; -pub const SYS_statfs64: ::c_long = 252; -pub const SYS_fstatfs64: ::c_long = 253; -pub const SYS_fadvise64_64: ::c_long = 254; -pub const SYS_rtas: ::c_long = 255; -pub const SYS_sys_debug_setcontext: ::c_long = 256; -pub const SYS_migrate_pages: ::c_long = 258; -pub const SYS_mbind: ::c_long = 259; -pub const SYS_get_mempolicy: ::c_long = 260; -pub const SYS_set_mempolicy: ::c_long = 261; -pub const SYS_mq_open: ::c_long = 262; -pub const SYS_mq_unlink: ::c_long = 263; -pub const SYS_mq_timedsend: ::c_long = 264; -pub const SYS_mq_timedreceive: ::c_long = 265; -pub const SYS_mq_notify: ::c_long = 266; -pub const SYS_mq_getsetattr: ::c_long = 267; -pub const SYS_kexec_load: ::c_long = 268; -pub const SYS_add_key: ::c_long = 269; -pub const SYS_request_key: ::c_long = 270; -pub const SYS_keyctl: ::c_long = 271; -pub const SYS_waitid: ::c_long = 272; -pub const SYS_ioprio_set: ::c_long = 273; -pub const SYS_ioprio_get: ::c_long = 274; -pub const SYS_inotify_init: ::c_long = 275; -pub const SYS_inotify_add_watch: ::c_long = 276; -pub const SYS_inotify_rm_watch: ::c_long = 277; -pub const SYS_spu_run: ::c_long = 278; -pub const SYS_spu_create: ::c_long = 279; -pub const SYS_pselect6: ::c_long = 280; -pub const SYS_ppoll: ::c_long = 281; -pub const SYS_unshare: ::c_long = 282; -pub const SYS_splice: ::c_long = 283; -pub const SYS_tee: ::c_long = 284; -pub const SYS_vmsplice: ::c_long = 285; -pub const SYS_openat: ::c_long = 286; -pub const SYS_mkdirat: ::c_long = 287; -pub const SYS_mknodat: ::c_long = 288; -pub const SYS_fchownat: ::c_long = 289; -pub const SYS_futimesat: ::c_long = 290; -pub const SYS_fstatat64: ::c_long = 291; -pub const SYS_unlinkat: ::c_long = 292; -pub const SYS_renameat: ::c_long = 293; -pub const SYS_linkat: ::c_long = 294; -pub const SYS_symlinkat: ::c_long = 295; -pub const SYS_readlinkat: ::c_long = 296; -pub const SYS_fchmodat: ::c_long = 297; -pub const SYS_faccessat: ::c_long = 298; -pub const SYS_get_robust_list: ::c_long = 299; -pub const SYS_set_robust_list: ::c_long = 300; -pub const SYS_move_pages: ::c_long = 301; -pub const SYS_getcpu: ::c_long = 302; -pub const SYS_epoll_pwait: ::c_long = 303; -pub const SYS_utimensat: ::c_long = 304; -pub const SYS_signalfd: ::c_long = 305; -pub const SYS_timerfd_create: ::c_long = 306; -pub const SYS_eventfd: ::c_long = 307; -pub const SYS_sync_file_range2: ::c_long = 308; -pub const SYS_fallocate: ::c_long = 309; -pub const SYS_subpage_prot: ::c_long = 310; -pub const SYS_timerfd_settime: ::c_long = 311; -pub const SYS_timerfd_gettime: ::c_long = 312; -pub const SYS_signalfd4: ::c_long = 313; -pub const SYS_eventfd2: ::c_long = 314; -pub const SYS_epoll_create1: ::c_long = 315; -pub const SYS_dup3: ::c_long = 316; -pub const SYS_pipe2: ::c_long = 317; -pub const SYS_inotify_init1: ::c_long = 318; -pub const SYS_perf_event_open: ::c_long = 319; -pub const SYS_preadv: ::c_long = 320; -pub const SYS_pwritev: ::c_long = 321; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; -pub const SYS_fanotify_init: ::c_long = 323; -pub const SYS_fanotify_mark: ::c_long = 324; -pub const SYS_prlimit64: ::c_long = 325; -pub const SYS_socket: ::c_long = 326; -pub const SYS_bind: ::c_long = 327; -pub const SYS_connect: ::c_long = 328; -pub const SYS_listen: ::c_long = 329; -pub const SYS_accept: ::c_long = 330; -pub const SYS_getsockname: ::c_long = 331; -pub const SYS_getpeername: ::c_long = 332; -pub const SYS_socketpair: ::c_long = 333; -pub const SYS_send: ::c_long = 334; -pub const SYS_sendto: ::c_long = 335; -pub const SYS_recv: ::c_long = 336; -pub const SYS_recvfrom: ::c_long = 337; -pub const SYS_shutdown: ::c_long = 338; -pub const SYS_setsockopt: ::c_long = 339; -pub const SYS_getsockopt: ::c_long = 340; -pub const SYS_sendmsg: ::c_long = 341; -pub const SYS_recvmsg: ::c_long = 342; -pub const SYS_recvmmsg: ::c_long = 343; -pub const SYS_accept4: ::c_long = 344; -pub const SYS_name_to_handle_at: ::c_long = 345; -pub const SYS_open_by_handle_at: ::c_long = 346; -pub const SYS_clock_adjtime: ::c_long = 347; -pub const SYS_syncfs: ::c_long = 348; -pub const SYS_sendmmsg: ::c_long = 349; -pub const SYS_setns: ::c_long = 350; -pub const SYS_process_vm_readv: ::c_long = 351; -pub const SYS_process_vm_writev: ::c_long = 352; -pub const SYS_finit_module: ::c_long = 353; -pub const SYS_kcmp: ::c_long = 354; -pub const SYS_sched_setattr: ::c_long = 355; -pub const SYS_sched_getattr: ::c_long = 356; -pub const SYS_renameat2: ::c_long = 357; -pub const SYS_seccomp: ::c_long = 358; -pub const SYS_getrandom: ::c_long = 359; -pub const SYS_memfd_create: ::c_long = 360; -pub const SYS_bpf: ::c_long = 361; -pub const SYS_execveat: ::c_long = 362; -pub const SYS_switch_endian: ::c_long = 363; -pub const SYS_userfaultfd: ::c_long = 364; -pub const SYS_membarrier: ::c_long = 365; -pub const SYS_mlock2: ::c_long = 378; -pub const SYS_copy_file_range: ::c_long = 379; -pub const SYS_preadv2: ::c_long = 380; -pub const SYS_pwritev2: ::c_long = 381; -pub const SYS_kexec_file_load: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_rseq: ::c_long = 387; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs deleted file mode 100644 index 48d152a57..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs +++ /dev/null @@ -1,44 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - pub struct ucontext_t { - pub __uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct mcontext_t { - pub __gregs: [::c_ulong; 32], - pub __fpregs: __riscv_mc_fp_state, - } - - #[allow(missing_debug_implementations)] - pub union __riscv_mc_fp_state { - pub __f: __riscv_mc_f_ext_state, - pub __d: __riscv_mc_d_ext_state, - pub __q: __riscv_mc_q_ext_state, - } - - #[allow(missing_debug_implementations)] - pub struct __riscv_mc_f_ext_state { - pub __f: [::c_uint; 32], - pub __fcsr: ::c_uint, - } - - #[allow(missing_debug_implementations)] - pub struct __riscv_mc_d_ext_state { - pub __f: [::c_ulonglong; 32], - pub __fcsr: ::c_uint, - } - - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct __riscv_mc_q_ext_state { - pub __f: [::c_ulonglong; 64], - pub __fcsr: ::c_uint, - pub __glibc_reserved: [::c_uint; 3], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs deleted file mode 100644 index f3b130cbc..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ /dev/null @@ -1,812 +0,0 @@ -//! RISC-V-specific definitions for 32-bit linux-like values - -pub type c_char = u8; -pub type wchar_t = ::c_int; - -s! { - pub struct pthread_attr_t { - __size: [::c_ulong; 7], - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_int; 2usize], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_int; 2], - } - - pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], - } - - pub struct statfs64 { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_favail: ::fsfilcnt64_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [u64; 0], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused5: ::c_ulong, - __unused6: ::c_ulong, - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct user_regs_struct { - pub pc: ::c_ulong, - pub ra: ::c_ulong, - pub sp: ::c_ulong, - pub gp: ::c_ulong, - pub tp: ::c_ulong, - pub t0: ::c_ulong, - pub t1: ::c_ulong, - pub t2: ::c_ulong, - pub s0: ::c_ulong, - pub s1: ::c_ulong, - pub a0: ::c_ulong, - pub a1: ::c_ulong, - pub a2: ::c_ulong, - pub a3: ::c_ulong, - pub a4: ::c_ulong, - pub a5: ::c_ulong, - pub a6: ::c_ulong, - pub a7: ::c_ulong, - pub s2: ::c_ulong, - pub s3: ::c_ulong, - pub s4: ::c_ulong, - pub s5: ::c_ulong, - pub s6: ::c_ulong, - pub s7: ::c_ulong, - pub s8: ::c_ulong, - pub s9: ::c_ulong, - pub s10: ::c_ulong, - pub s11: ::c_ulong, - pub t3: ::c_ulong, - pub t4: ::c_ulong, - pub t5: ::c_ulong, - pub t6: ::c_ulong, - } -} - -pub const O_LARGEFILE: ::c_int = 0; -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 1052672; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 256; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SA_SIGINFO: ::c_int = 4; -pub const SA_NOCLDWAIT: ::c_int = 2; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; -pub const POLLWRNORM: ::c_short = 256; -pub const POLLWRBAND: ::c_short = 512; -pub const O_ASYNC: ::c_int = 8192; -pub const O_NDELAY: ::c_int = 2048; -pub const EFD_NONBLOCK: ::c_int = 2048; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const SFD_NONBLOCK: ::c_int = 2048; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const O_DIRECT: ::c_int = 16384; -pub const O_DIRECTORY: ::c_int = 65536; -pub const O_NOFOLLOW: ::c_int = 131072; -pub const MAP_HUGETLB: ::c_int = 262144; -pub const MAP_LOCKED: ::c_int = 8192; -pub const MAP_NORESERVE: ::c_int = 16384; -pub const MAP_ANON: ::c_int = 32; -pub const MAP_ANONYMOUS: ::c_int = 32; -pub const MAP_DENYWRITE: ::c_int = 2048; -pub const MAP_EXECUTABLE: ::c_int = 4096; -pub const MAP_POPULATE: ::c_int = 32768; -pub const MAP_NONBLOCK: ::c_int = 65536; -pub const MAP_STACK: ::c_int = 131072; -pub const MAP_SYNC: ::c_int = 0x080000; -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const MCL_CURRENT: ::c_int = 1; -pub const MCL_FUTURE: ::c_int = 2; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 4111; -pub const TAB1: ::tcflag_t = 2048; -pub const TAB2: ::tcflag_t = 4096; -pub const TAB3: ::tcflag_t = 6144; -pub const CR1: ::tcflag_t = 512; -pub const CR2: ::tcflag_t = 1024; -pub const CR3: ::tcflag_t = 1536; -pub const FF1: ::tcflag_t = 32768; -pub const BS1: ::tcflag_t = 8192; -pub const VT1: ::tcflag_t = 16384; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 1024; -pub const IXOFF: ::tcflag_t = 4096; -pub const ONLCR: ::tcflag_t = 4; -pub const CSIZE: ::tcflag_t = 48; -pub const CS6: ::tcflag_t = 16; -pub const CS7: ::tcflag_t = 32; -pub const CS8: ::tcflag_t = 48; -pub const CSTOPB: ::tcflag_t = 64; -pub const CREAD: ::tcflag_t = 128; -pub const PARENB: ::tcflag_t = 256; -pub const PARODD: ::tcflag_t = 512; -pub const HUPCL: ::tcflag_t = 1024; -pub const CLOCAL: ::tcflag_t = 2048; -pub const ECHOKE: ::tcflag_t = 2048; -pub const ECHOE: ::tcflag_t = 16; -pub const ECHOK: ::tcflag_t = 32; -pub const ECHONL: ::tcflag_t = 64; -pub const ECHOPRT: ::tcflag_t = 1024; -pub const ECHOCTL: ::tcflag_t = 512; -pub const ISIG: ::tcflag_t = 1; -pub const ICANON: ::tcflag_t = 2; -pub const PENDIN: ::tcflag_t = 16384; -pub const NOFLSH: ::tcflag_t = 128; -pub const CIBAUD: ::tcflag_t = 269418496; -pub const CBAUDEX: ::tcflag_t = 4096; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 2; -pub const NLDLY: ::tcflag_t = 256; -pub const CRDLY: ::tcflag_t = 1536; -pub const TABDLY: ::tcflag_t = 6144; -pub const BSDLY: ::tcflag_t = 8192; -pub const FFDLY: ::tcflag_t = 32768; -pub const VTDLY: ::tcflag_t = 16384; -pub const XTABS: ::tcflag_t = 6144; -pub const B0: ::speed_t = 0; -pub const B50: ::speed_t = 1; -pub const B75: ::speed_t = 2; -pub const B110: ::speed_t = 3; -pub const B134: ::speed_t = 4; -pub const B150: ::speed_t = 5; -pub const B200: ::speed_t = 6; -pub const B300: ::speed_t = 7; -pub const B600: ::speed_t = 8; -pub const B1200: ::speed_t = 9; -pub const B1800: ::speed_t = 10; -pub const B2400: ::speed_t = 11; -pub const B4800: ::speed_t = 12; -pub const B9600: ::speed_t = 13; -pub const B19200: ::speed_t = 14; -pub const B38400: ::speed_t = 15; -pub const EXTA: ::speed_t = 14; -pub const EXTB: ::speed_t = 15; -pub const B57600: ::speed_t = 4097; -pub const B115200: ::speed_t = 4098; -pub const B230400: ::speed_t = 4099; -pub const B460800: ::speed_t = 4100; -pub const B500000: ::speed_t = 4101; -pub const B576000: ::speed_t = 4102; -pub const B921600: ::speed_t = 4103; -pub const B1000000: ::speed_t = 4104; -pub const B1152000: ::speed_t = 4105; -pub const B1500000: ::speed_t = 4106; -pub const B2000000: ::speed_t = 4107; -pub const B2500000: ::speed_t = 4108; -pub const B3000000: ::speed_t = 4109; -pub const B3500000: ::speed_t = 4110; -pub const B4000000: ::speed_t = 4111; -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 32768; -pub const TOSTOP: ::tcflag_t = 256; -pub const FLUSHO: ::tcflag_t = 4096; -pub const EXTPROC: ::tcflag_t = 65536; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -pub const NGREG: usize = 32; -pub const REG_PC: usize = 0; -pub const REG_RA: usize = 1; -pub const REG_SP: usize = 2; -pub const REG_TP: usize = 4; -pub const REG_S0: usize = 8; -pub const REG_S1: usize = 9; -pub const REG_A0: usize = 10; -pub const REG_S2: usize = 18; -pub const REG_NARGS: usize = 8; - -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_close: ::c_long = 57; -pub const SYS_fstat: ::c_long = 80; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_brk: ::c_long = 214; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_dup: ::c_long = 23; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_sendfile: ::c_long = 71; -pub const SYS_socket: ::c_long = 198; -pub const SYS_connect: ::c_long = 203; -pub const SYS_accept: ::c_long = 202; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_exit: ::c_long = 93; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_kill: ::c_long = 129; -pub const SYS_uname: ::c_long = 160; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semop: ::c_long = 193; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_flock: ::c_long = 32; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_umask: ::c_long = 166; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_times: ::c_long = 153; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_personality: ::c_long = 92; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_sync: ::c_long = 81; -pub const SYS_acct: ::c_long = 89; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_mount: ::c_long = 40; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_futex: ::c_long = 98; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_fadvise64: ::c_long = 223; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_openat: ::c_long = 56; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_newfstatat: ::c_long = 79; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_setns: ::c_long = 268; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_rseq: ::c_long = 293; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/align.rs deleted file mode 100644 index 98fda883c..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [i64; 3] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs deleted file mode 100644 index 57ad9fe8e..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ /dev/null @@ -1,856 +0,0 @@ -//! SPARC-specific definitions for 32-bit linux-like values - -pub type c_char = i8; -pub type wchar_t = i32; - -s! { - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - __reserved: ::c_short, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_ushort, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_long; 2], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_ushort, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __reserved: [::c_long; 2], - } - - pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - __pad1: ::c_ushort, - pub mode: ::c_ushort, - __pad2: ::c_ushort, - pub __seq: ::c_ushort, - __unused1: ::c_ulonglong, - __unused2: ::c_ulonglong, - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - __pad1: ::c_uint, - pub shm_atime: ::time_t, - __pad2: ::c_uint, - pub shm_dtime: ::time_t, - __pad3: ::c_uint, - pub shm_ctime: ::time_t, - pub shm_segsz: ::size_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __reserved1: ::c_ulong, - __reserved2: ::c_ulong, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - __pad1: ::c_uint, - pub msg_stime: ::time_t, - __pad2: ::c_uint, - pub msg_rtime: ::time_t, - __pad3: ::c_uint, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ushort, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved1: ::c_ulong, - __glibc_reserved2: ::c_ulong, - } -} - -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const O_APPEND: ::c_int = 0x8; -pub const O_CREAT: ::c_int = 0x200; -pub const O_EXCL: ::c_int = 0x800; -pub const O_NOCTTY: ::c_int = 0x8000; -pub const O_NONBLOCK: ::c_int = 0x4000; -pub const O_SYNC: ::c_int = 0x802000; -pub const O_RSYNC: ::c_int = 0x802000; -pub const O_DSYNC: ::c_int = 0x2000; -pub const O_FSYNC: ::c_int = 0x802000; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0200; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLK: ::c_int = 78; -pub const ENAMETOOLONG: ::c_int = 63; -pub const ENOLCK: ::c_int = 79; -pub const ENOSYS: ::c_int = 90; -pub const ENOTEMPTY: ::c_int = 66; -pub const ELOOP: ::c_int = 62; -pub const ENOMSG: ::c_int = 75; -pub const EIDRM: ::c_int = 77; -pub const ECHRNG: ::c_int = 94; -pub const EL2NSYNC: ::c_int = 95; -pub const EL3HLT: ::c_int = 96; -pub const EL3RST: ::c_int = 97; -pub const ELNRNG: ::c_int = 98; -pub const EUNATCH: ::c_int = 99; -pub const ENOCSI: ::c_int = 100; -pub const EL2HLT: ::c_int = 101; -pub const EBADE: ::c_int = 102; -pub const EBADR: ::c_int = 103; -pub const EXFULL: ::c_int = 104; -pub const ENOANO: ::c_int = 105; -pub const EBADRQC: ::c_int = 106; -pub const EBADSLT: ::c_int = 107; -pub const EMULTIHOP: ::c_int = 87; -pub const EOVERFLOW: ::c_int = 92; -pub const ENOTUNIQ: ::c_int = 115; -pub const EBADFD: ::c_int = 93; -pub const EBADMSG: ::c_int = 76; -pub const EREMCHG: ::c_int = 89; -pub const ELIBACC: ::c_int = 114; -pub const ELIBBAD: ::c_int = 112; -pub const ELIBSCN: ::c_int = 124; -pub const ELIBMAX: ::c_int = 123; -pub const ELIBEXEC: ::c_int = 110; -pub const EILSEQ: ::c_int = 122; -pub const ERESTART: ::c_int = 116; -pub const ESTRPIPE: ::c_int = 91; -pub const EUSERS: ::c_int = 68; -pub const ENOTSOCK: ::c_int = 38; -pub const EDESTADDRREQ: ::c_int = 39; -pub const EMSGSIZE: ::c_int = 40; -pub const EPROTOTYPE: ::c_int = 41; -pub const ENOPROTOOPT: ::c_int = 42; -pub const EPROTONOSUPPORT: ::c_int = 43; -pub const ESOCKTNOSUPPORT: ::c_int = 44; -pub const EOPNOTSUPP: ::c_int = 45; -pub const EPFNOSUPPORT: ::c_int = 46; -pub const EAFNOSUPPORT: ::c_int = 47; -pub const EADDRINUSE: ::c_int = 48; -pub const EADDRNOTAVAIL: ::c_int = 49; -pub const ENETDOWN: ::c_int = 50; -pub const ENETUNREACH: ::c_int = 51; -pub const ENETRESET: ::c_int = 52; -pub const ECONNABORTED: ::c_int = 53; -pub const ECONNRESET: ::c_int = 54; -pub const ENOBUFS: ::c_int = 55; -pub const EISCONN: ::c_int = 56; -pub const ENOTCONN: ::c_int = 57; -pub const ESHUTDOWN: ::c_int = 58; -pub const ETOOMANYREFS: ::c_int = 59; -pub const ETIMEDOUT: ::c_int = 60; -pub const ECONNREFUSED: ::c_int = 61; -pub const EHOSTDOWN: ::c_int = 64; -pub const EHOSTUNREACH: ::c_int = 65; -pub const EALREADY: ::c_int = 37; -pub const EINPROGRESS: ::c_int = 36; -pub const ESTALE: ::c_int = 70; -pub const EDQUOT: ::c_int = 69; -pub const ENOMEDIUM: ::c_int = 125; -pub const EMEDIUMTYPE: ::c_int = 126; -pub const ECANCELED: ::c_int = 127; -pub const ENOKEY: ::c_int = 128; -pub const EKEYEXPIRED: ::c_int = 129; -pub const EKEYREVOKED: ::c_int = 130; -pub const EKEYREJECTED: ::c_int = 131; -pub const EOWNERDEAD: ::c_int = 132; -pub const ENOTRECOVERABLE: ::c_int = 133; -pub const EHWPOISON: ::c_int = 135; -pub const ERFKILL: ::c_int = 134; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SA_SIGINFO: ::c_int = 0x200; -pub const SA_NOCLDWAIT: ::c_int = 0x100; - -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 20; -pub const SIGBUS: ::c_int = 10; -pub const SIGUSR1: ::c_int = 30; -pub const SIGUSR2: ::c_int = 31; -pub const SIGCONT: ::c_int = 19; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGURG: ::c_int = 16; -pub const SIGIO: ::c_int = 23; -pub const SIGSYS: ::c_int = 12; -pub const SIGPOLL: ::c_int = 23; -pub const SIGPWR: ::c_int = 29; -pub const SIG_SETMASK: ::c_int = 4; -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; - -pub const POLLWRNORM: ::c_short = 4; -pub const POLLWRBAND: ::c_short = 0x100; - -pub const O_ASYNC: ::c_int = 0x40; -pub const O_NDELAY: ::c_int = 0x4004; - -pub const EFD_NONBLOCK: ::c_int = 0x4000; - -pub const F_GETLK: ::c_int = 7; -pub const F_GETOWN: ::c_int = 5; -pub const F_SETOWN: ::c_int = 6; - -pub const SFD_NONBLOCK: ::c_int = 0x4000; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const O_DIRECTORY: ::c_int = 0o200000; -pub const O_NOFOLLOW: ::c_int = 0o400000; -pub const O_LARGEFILE: ::c_int = 0x40000; -pub const O_DIRECT: ::c_int = 0x100000; - -pub const MAP_LOCKED: ::c_int = 0x0100; -pub const MAP_NORESERVE: ::c_int = 0x00040; - -pub const EDEADLOCK: ::c_int = 108; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; - -pub const MCL_CURRENT: ::c_int = 0x2000; -pub const MCL_FUTURE: ::c_int = 0x4000; - -pub const SIGSTKSZ: ::size_t = 16384; -pub const MINSIGSTKSZ: ::size_t = 4096; -pub const CBAUD: ::tcflag_t = 0x0000100f; -pub const TAB1: ::tcflag_t = 0x800; -pub const TAB2: ::tcflag_t = 0x1000; -pub const TAB3: ::tcflag_t = 0x1800; -pub const CR1: ::tcflag_t = 0x200; -pub const CR2: ::tcflag_t = 0x400; -pub const CR3: ::tcflag_t = 0x600; -pub const FF1: ::tcflag_t = 0x8000; -pub const BS1: ::tcflag_t = 0x2000; -pub const VT1: ::tcflag_t = 0x4000; -pub const VWERASE: usize = 0xe; -pub const VREPRINT: usize = 0xc; -pub const VSUSP: usize = 0xa; -pub const VSTART: usize = 0x8; -pub const VSTOP: usize = 0x9; -pub const VDISCARD: usize = 0xd; -pub const VTIME: usize = 0x5; -pub const IXON: ::tcflag_t = 0x400; -pub const IXOFF: ::tcflag_t = 0x1000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x30; -pub const CS6: ::tcflag_t = 0x10; -pub const CS7: ::tcflag_t = 0x20; -pub const CS8: ::tcflag_t = 0x30; -pub const CSTOPB: ::tcflag_t = 0x40; -pub const CREAD: ::tcflag_t = 0x80; -pub const PARENB: ::tcflag_t = 0x100; -pub const PARODD: ::tcflag_t = 0x200; -pub const HUPCL: ::tcflag_t = 0x400; -pub const CLOCAL: ::tcflag_t = 0x800; -pub const ECHOKE: ::tcflag_t = 0x800; -pub const ECHOE: ::tcflag_t = 0x10; -pub const ECHOK: ::tcflag_t = 0x20; -pub const ECHONL: ::tcflag_t = 0x40; -pub const ECHOPRT: ::tcflag_t = 0x400; -pub const ECHOCTL: ::tcflag_t = 0x200; -pub const ISIG: ::tcflag_t = 0x1; -pub const ICANON: ::tcflag_t = 0x2; -pub const PENDIN: ::tcflag_t = 0x4000; -pub const NOFLSH: ::tcflag_t = 0x80; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0x00001000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0x1001; -pub const B115200: ::speed_t = 0x1002; -pub const B230400: ::speed_t = 0x1003; -pub const B460800: ::speed_t = 0x1004; -pub const B76800: ::speed_t = 0x1005; -pub const B153600: ::speed_t = 0x1006; -pub const B307200: ::speed_t = 0x1007; -pub const B614400: ::speed_t = 0x1008; -pub const B921600: ::speed_t = 0x1009; -pub const B500000: ::speed_t = 0x100a; -pub const B576000: ::speed_t = 0x100b; -pub const B1000000: ::speed_t = 0x100c; -pub const B1152000: ::speed_t = 0x100d; -pub const B1500000: ::speed_t = 0x100e; -pub const B2000000: ::speed_t = 0x100f; - -pub const VEOL: usize = 5; -pub const VEOL2: usize = 6; -pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0x8000; -pub const TOSTOP: ::tcflag_t = 0x100; -pub const FLUSHO: ::tcflag_t = 0x1000; -pub const EXTPROC: ::tcflag_t = 0x10000; - -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_wait4: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execv: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_chown: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_brk: ::c_long = 17; -pub const SYS_perfctr: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_capget: ::c_long = 21; -pub const SYS_capset: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_vmsplice: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_sigaltstack: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_lchown32: ::c_long = 31; -pub const SYS_fchown32: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_chown32: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_stat: ::c_long = 38; -pub const SYS_sendfile: ::c_long = 39; -pub const SYS_lstat: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_getuid32: ::c_long = 44; -pub const SYS_umount2: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_getgid32: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_reboot: ::c_long = 55; -pub const SYS_mmap2: ::c_long = 56; -pub const SYS_symlink: ::c_long = 57; -pub const SYS_readlink: ::c_long = 58; -pub const SYS_execve: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_fstat: ::c_long = 62; -pub const SYS_fstat64: ::c_long = 63; -pub const SYS_getpagesize: ::c_long = 64; -pub const SYS_msync: ::c_long = 65; -pub const SYS_vfork: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_geteuid32: ::c_long = 69; -pub const SYS_getegid32: ::c_long = 70; -pub const SYS_mmap: ::c_long = 71; -pub const SYS_setreuid32: ::c_long = 72; -pub const SYS_munmap: ::c_long = 73; -pub const SYS_mprotect: ::c_long = 74; -pub const SYS_madvise: ::c_long = 75; -pub const SYS_vhangup: ::c_long = 76; -pub const SYS_truncate64: ::c_long = 77; -pub const SYS_mincore: ::c_long = 78; -pub const SYS_getgroups: ::c_long = 79; -pub const SYS_setgroups: ::c_long = 80; -pub const SYS_getpgrp: ::c_long = 81; -pub const SYS_setgroups32: ::c_long = 82; -pub const SYS_setitimer: ::c_long = 83; -pub const SYS_ftruncate64: ::c_long = 84; -pub const SYS_swapon: ::c_long = 85; -pub const SYS_getitimer: ::c_long = 86; -pub const SYS_setuid32: ::c_long = 87; -pub const SYS_sethostname: ::c_long = 88; -pub const SYS_setgid32: ::c_long = 89; -pub const SYS_dup2: ::c_long = 90; -pub const SYS_setfsuid32: ::c_long = 91; -pub const SYS_fcntl: ::c_long = 92; -pub const SYS_select: ::c_long = 93; -pub const SYS_setfsgid32: ::c_long = 94; -pub const SYS_fsync: ::c_long = 95; -pub const SYS_setpriority: ::c_long = 96; -pub const SYS_socket: ::c_long = 97; -pub const SYS_connect: ::c_long = 98; -pub const SYS_accept: ::c_long = 99; -pub const SYS_getpriority: ::c_long = 100; -pub const SYS_rt_sigreturn: ::c_long = 101; -pub const SYS_rt_sigaction: ::c_long = 102; -pub const SYS_rt_sigprocmask: ::c_long = 103; -pub const SYS_rt_sigpending: ::c_long = 104; -pub const SYS_rt_sigtimedwait: ::c_long = 105; -pub const SYS_rt_sigqueueinfo: ::c_long = 106; -pub const SYS_rt_sigsuspend: ::c_long = 107; -pub const SYS_setresuid32: ::c_long = 108; -pub const SYS_getresuid32: ::c_long = 109; -pub const SYS_setresgid32: ::c_long = 110; -pub const SYS_getresgid32: ::c_long = 111; -pub const SYS_setregid32: ::c_long = 112; -pub const SYS_recvmsg: ::c_long = 113; -pub const SYS_sendmsg: ::c_long = 114; -pub const SYS_getgroups32: ::c_long = 115; -pub const SYS_gettimeofday: ::c_long = 116; -pub const SYS_getrusage: ::c_long = 117; -pub const SYS_getsockopt: ::c_long = 118; -pub const SYS_getcwd: ::c_long = 119; -pub const SYS_readv: ::c_long = 120; -pub const SYS_writev: ::c_long = 121; -pub const SYS_settimeofday: ::c_long = 122; -pub const SYS_fchown: ::c_long = 123; -pub const SYS_fchmod: ::c_long = 124; -pub const SYS_recvfrom: ::c_long = 125; -pub const SYS_setreuid: ::c_long = 126; -pub const SYS_setregid: ::c_long = 127; -pub const SYS_rename: ::c_long = 128; -pub const SYS_truncate: ::c_long = 129; -pub const SYS_ftruncate: ::c_long = 130; -pub const SYS_flock: ::c_long = 131; -pub const SYS_lstat64: ::c_long = 132; -pub const SYS_sendto: ::c_long = 133; -pub const SYS_shutdown: ::c_long = 134; -pub const SYS_socketpair: ::c_long = 135; -pub const SYS_mkdir: ::c_long = 136; -pub const SYS_rmdir: ::c_long = 137; -pub const SYS_utimes: ::c_long = 138; -pub const SYS_stat64: ::c_long = 139; -pub const SYS_sendfile64: ::c_long = 140; -pub const SYS_getpeername: ::c_long = 141; -pub const SYS_futex: ::c_long = 142; -pub const SYS_gettid: ::c_long = 143; -pub const SYS_getrlimit: ::c_long = 144; -pub const SYS_setrlimit: ::c_long = 145; -pub const SYS_pivot_root: ::c_long = 146; -pub const SYS_prctl: ::c_long = 147; -pub const SYS_pciconfig_read: ::c_long = 148; -pub const SYS_pciconfig_write: ::c_long = 149; -pub const SYS_getsockname: ::c_long = 150; -pub const SYS_inotify_init: ::c_long = 151; -pub const SYS_inotify_add_watch: ::c_long = 152; -pub const SYS_poll: ::c_long = 153; -pub const SYS_getdents64: ::c_long = 154; -pub const SYS_fcntl64: ::c_long = 155; -pub const SYS_inotify_rm_watch: ::c_long = 156; -pub const SYS_statfs: ::c_long = 157; -pub const SYS_fstatfs: ::c_long = 158; -pub const SYS_umount: ::c_long = 159; -pub const SYS_sched_set_affinity: ::c_long = 160; -pub const SYS_sched_get_affinity: ::c_long = 161; -pub const SYS_getdomainname: ::c_long = 162; -pub const SYS_setdomainname: ::c_long = 163; -pub const SYS_quotactl: ::c_long = 165; -pub const SYS_set_tid_address: ::c_long = 166; -pub const SYS_mount: ::c_long = 167; -pub const SYS_ustat: ::c_long = 168; -pub const SYS_setxattr: ::c_long = 169; -pub const SYS_lsetxattr: ::c_long = 170; -pub const SYS_fsetxattr: ::c_long = 171; -pub const SYS_getxattr: ::c_long = 172; -pub const SYS_lgetxattr: ::c_long = 173; -pub const SYS_getdents: ::c_long = 174; -pub const SYS_setsid: ::c_long = 175; -pub const SYS_fchdir: ::c_long = 176; -pub const SYS_fgetxattr: ::c_long = 177; -pub const SYS_listxattr: ::c_long = 178; -pub const SYS_llistxattr: ::c_long = 179; -pub const SYS_flistxattr: ::c_long = 180; -pub const SYS_removexattr: ::c_long = 181; -pub const SYS_lremovexattr: ::c_long = 182; -pub const SYS_sigpending: ::c_long = 183; -pub const SYS_query_module: ::c_long = 184; -pub const SYS_setpgid: ::c_long = 185; -pub const SYS_fremovexattr: ::c_long = 186; -pub const SYS_tkill: ::c_long = 187; -pub const SYS_exit_group: ::c_long = 188; -pub const SYS_uname: ::c_long = 189; -pub const SYS_init_module: ::c_long = 190; -pub const SYS_personality: ::c_long = 191; -pub const SYS_remap_file_pages: ::c_long = 192; -pub const SYS_epoll_create: ::c_long = 193; -pub const SYS_epoll_ctl: ::c_long = 194; -pub const SYS_epoll_wait: ::c_long = 195; -pub const SYS_ioprio_set: ::c_long = 196; -pub const SYS_getppid: ::c_long = 197; -pub const SYS_sigaction: ::c_long = 198; -pub const SYS_sgetmask: ::c_long = 199; -pub const SYS_ssetmask: ::c_long = 200; -pub const SYS_sigsuspend: ::c_long = 201; -pub const SYS_oldlstat: ::c_long = 202; -pub const SYS_uselib: ::c_long = 203; -pub const SYS_readdir: ::c_long = 204; -pub const SYS_readahead: ::c_long = 205; -pub const SYS_socketcall: ::c_long = 206; -pub const SYS_syslog: ::c_long = 207; -pub const SYS_lookup_dcookie: ::c_long = 208; -pub const SYS_fadvise64: ::c_long = 209; -pub const SYS_fadvise64_64: ::c_long = 210; -pub const SYS_tgkill: ::c_long = 211; -pub const SYS_waitpid: ::c_long = 212; -pub const SYS_swapoff: ::c_long = 213; -pub const SYS_sysinfo: ::c_long = 214; -pub const SYS_ipc: ::c_long = 215; -pub const SYS_sigreturn: ::c_long = 216; -pub const SYS_clone: ::c_long = 217; -pub const SYS_ioprio_get: ::c_long = 218; -pub const SYS_adjtimex: ::c_long = 219; -pub const SYS_sigprocmask: ::c_long = 220; -pub const SYS_create_module: ::c_long = 221; -pub const SYS_delete_module: ::c_long = 222; -pub const SYS_get_kernel_syms: ::c_long = 223; -pub const SYS_getpgid: ::c_long = 224; -pub const SYS_bdflush: ::c_long = 225; -pub const SYS_sysfs: ::c_long = 226; -pub const SYS_afs_syscall: ::c_long = 227; -pub const SYS_setfsuid: ::c_long = 228; -pub const SYS_setfsgid: ::c_long = 229; -pub const SYS__newselect: ::c_long = 230; -pub const SYS_time: ::c_long = 231; -pub const SYS_splice: ::c_long = 232; -pub const SYS_stime: ::c_long = 233; -pub const SYS_statfs64: ::c_long = 234; -pub const SYS_fstatfs64: ::c_long = 235; -pub const SYS__llseek: ::c_long = 236; -pub const SYS_mlock: ::c_long = 237; -pub const SYS_munlock: ::c_long = 238; -pub const SYS_mlockall: ::c_long = 239; -pub const SYS_munlockall: ::c_long = 240; -pub const SYS_sched_setparam: ::c_long = 241; -pub const SYS_sched_getparam: ::c_long = 242; -pub const SYS_sched_setscheduler: ::c_long = 243; -pub const SYS_sched_getscheduler: ::c_long = 244; -pub const SYS_sched_yield: ::c_long = 245; -pub const SYS_sched_get_priority_max: ::c_long = 246; -pub const SYS_sched_get_priority_min: ::c_long = 247; -pub const SYS_sched_rr_get_interval: ::c_long = 248; -pub const SYS_nanosleep: ::c_long = 249; -pub const SYS_mremap: ::c_long = 250; -pub const SYS__sysctl: ::c_long = 251; -pub const SYS_getsid: ::c_long = 252; -pub const SYS_fdatasync: ::c_long = 253; -pub const SYS_nfsservctl: ::c_long = 254; -pub const SYS_sync_file_range: ::c_long = 255; -pub const SYS_clock_settime: ::c_long = 256; -pub const SYS_clock_gettime: ::c_long = 257; -pub const SYS_clock_getres: ::c_long = 258; -pub const SYS_clock_nanosleep: ::c_long = 259; -pub const SYS_sched_getaffinity: ::c_long = 260; -pub const SYS_sched_setaffinity: ::c_long = 261; -pub const SYS_timer_settime: ::c_long = 262; -pub const SYS_timer_gettime: ::c_long = 263; -pub const SYS_timer_getoverrun: ::c_long = 264; -pub const SYS_timer_delete: ::c_long = 265; -pub const SYS_timer_create: ::c_long = 266; -pub const SYS_io_setup: ::c_long = 268; -pub const SYS_io_destroy: ::c_long = 269; -pub const SYS_io_submit: ::c_long = 270; -pub const SYS_io_cancel: ::c_long = 271; -pub const SYS_io_getevents: ::c_long = 272; -pub const SYS_mq_open: ::c_long = 273; -pub const SYS_mq_unlink: ::c_long = 274; -pub const SYS_mq_timedsend: ::c_long = 275; -pub const SYS_mq_timedreceive: ::c_long = 276; -pub const SYS_mq_notify: ::c_long = 277; -pub const SYS_mq_getsetattr: ::c_long = 278; -pub const SYS_waitid: ::c_long = 279; -pub const SYS_tee: ::c_long = 280; -pub const SYS_add_key: ::c_long = 281; -pub const SYS_request_key: ::c_long = 282; -pub const SYS_keyctl: ::c_long = 283; -pub const SYS_openat: ::c_long = 284; -pub const SYS_mkdirat: ::c_long = 285; -pub const SYS_mknodat: ::c_long = 286; -pub const SYS_fchownat: ::c_long = 287; -pub const SYS_futimesat: ::c_long = 288; -pub const SYS_fstatat64: ::c_long = 289; -pub const SYS_unlinkat: ::c_long = 290; -pub const SYS_renameat: ::c_long = 291; -pub const SYS_linkat: ::c_long = 292; -pub const SYS_symlinkat: ::c_long = 293; -pub const SYS_readlinkat: ::c_long = 294; -pub const SYS_fchmodat: ::c_long = 295; -pub const SYS_faccessat: ::c_long = 296; -pub const SYS_pselect6: ::c_long = 297; -pub const SYS_ppoll: ::c_long = 298; -pub const SYS_unshare: ::c_long = 299; -pub const SYS_set_robust_list: ::c_long = 300; -pub const SYS_get_robust_list: ::c_long = 301; -pub const SYS_migrate_pages: ::c_long = 302; -pub const SYS_mbind: ::c_long = 303; -pub const SYS_get_mempolicy: ::c_long = 304; -pub const SYS_set_mempolicy: ::c_long = 305; -pub const SYS_kexec_load: ::c_long = 306; -pub const SYS_move_pages: ::c_long = 307; -pub const SYS_getcpu: ::c_long = 308; -pub const SYS_epoll_pwait: ::c_long = 309; -pub const SYS_utimensat: ::c_long = 310; -pub const SYS_signalfd: ::c_long = 311; -pub const SYS_timerfd_create: ::c_long = 312; -pub const SYS_eventfd: ::c_long = 313; -pub const SYS_fallocate: ::c_long = 314; -pub const SYS_timerfd_settime: ::c_long = 315; -pub const SYS_timerfd_gettime: ::c_long = 316; -pub const SYS_signalfd4: ::c_long = 317; -pub const SYS_eventfd2: ::c_long = 318; -pub const SYS_epoll_create1: ::c_long = 319; -pub const SYS_dup3: ::c_long = 320; -pub const SYS_pipe2: ::c_long = 321; -pub const SYS_inotify_init1: ::c_long = 322; -pub const SYS_accept4: ::c_long = 323; -pub const SYS_preadv: ::c_long = 324; -pub const SYS_pwritev: ::c_long = 325; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 326; -pub const SYS_perf_event_open: ::c_long = 327; -pub const SYS_recvmmsg: ::c_long = 328; -pub const SYS_fanotify_init: ::c_long = 329; -pub const SYS_fanotify_mark: ::c_long = 330; -pub const SYS_prlimit64: ::c_long = 331; -pub const SYS_name_to_handle_at: ::c_long = 332; -pub const SYS_open_by_handle_at: ::c_long = 333; -pub const SYS_clock_adjtime: ::c_long = 334; -pub const SYS_syncfs: ::c_long = 335; -pub const SYS_sendmmsg: ::c_long = 336; -pub const SYS_setns: ::c_long = 337; -pub const SYS_process_vm_readv: ::c_long = 338; -pub const SYS_process_vm_writev: ::c_long = 339; -pub const SYS_kern_features: ::c_long = 340; -pub const SYS_kcmp: ::c_long = 341; -pub const SYS_finit_module: ::c_long = 342; -pub const SYS_sched_setattr: ::c_long = 343; -pub const SYS_sched_getattr: ::c_long = 344; -pub const SYS_renameat2: ::c_long = 345; -pub const SYS_seccomp: ::c_long = 346; -pub const SYS_getrandom: ::c_long = 347; -pub const SYS_memfd_create: ::c_long = 348; -pub const SYS_bpf: ::c_long = 349; -pub const SYS_execveat: ::c_long = 350; -pub const SYS_membarrier: ::c_long = 351; -pub const SYS_userfaultfd: ::c_long = 352; -pub const SYS_bind: ::c_long = 353; -pub const SYS_listen: ::c_long = 354; -pub const SYS_setsockopt: ::c_long = 355; -pub const SYS_mlock2: ::c_long = 356; -pub const SYS_copy_file_range: ::c_long = 357; -pub const SYS_preadv2: ::c_long = 358; -pub const SYS_pwritev2: ::c_long = 359; -pub const SYS_statx: ::c_long = 360; -pub const SYS_rseq: ::c_long = 365; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -// Reserved in the kernel, but not actually implemented yet -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/align.rs deleted file mode 100644 index 96634749f..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 6] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/mod.rs deleted file mode 100644 index 93622387e..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ /dev/null @@ -1,1109 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; -pub type greg_t = i32; - -s! { - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct _libc_fpreg { - pub significand: [u16; 4], - pub exponent: u16, - } - - pub struct _libc_fpstate { - pub cw: ::c_ulong, - pub sw: ::c_ulong, - pub tag: ::c_ulong, - pub ipoff: ::c_ulong, - pub cssel: ::c_ulong, - pub dataoff: ::c_ulong, - pub datasel: ::c_ulong, - pub _st: [_libc_fpreg; 8], - pub status: ::c_ulong, - } - - pub struct user_fpregs_struct { - pub cwd: ::c_long, - pub swd: ::c_long, - pub twd: ::c_long, - pub fip: ::c_long, - pub fcs: ::c_long, - pub foo: ::c_long, - pub fos: ::c_long, - pub st_space: [::c_long; 20], - } - - pub struct user_regs_struct { - pub ebx: ::c_long, - pub ecx: ::c_long, - pub edx: ::c_long, - pub esi: ::c_long, - pub edi: ::c_long, - pub ebp: ::c_long, - pub eax: ::c_long, - pub xds: ::c_long, - pub xes: ::c_long, - pub xfs: ::c_long, - pub xgs: ::c_long, - pub orig_eax: ::c_long, - pub eip: ::c_long, - pub xcs: ::c_long, - pub eflags: ::c_long, - pub esp: ::c_long, - pub xss: ::c_long, - } - - pub struct user { - pub regs: user_regs_struct, - pub u_fpvalid: ::c_int, - pub i387: user_fpregs_struct, - pub u_tsize: ::c_ulong, - pub u_dsize: ::c_ulong, - pub u_ssize: ::c_ulong, - pub start_code: ::c_ulong, - pub start_stack: ::c_ulong, - pub signal: ::c_long, - __reserved: ::c_int, - pub u_ar0: *mut user_regs_struct, - pub u_fpstate: *mut user_fpregs_struct, - pub magic: ::c_ulong, - pub u_comm: [c_char; 32], - pub u_debugreg: [::c_int; 8], - } - - pub struct mcontext_t { - pub gregs: [greg_t; 19], - pub fpregs: *mut _libc_fpstate, - pub oldmask: ::c_ulong, - pub cr2: ::c_ulong, - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong - } - - pub struct stat64 { - pub st_dev: ::dev_t, - __pad1: ::c_uint, - __st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_uint, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::ino64_t, - } - - pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_ulong, - pub shm_dtime: ::time_t, - __unused2: ::c_ulong, - pub shm_ctime: ::time_t, - __unused3: ::c_ulong, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __glibc_reserved1: ::c_ulong, - pub msg_rtime: ::time_t, - __glibc_reserved2: ::c_ulong, - pub msg_ctime: ::time_t, - __glibc_reserved3: ::c_ulong, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct seccomp_notif_sizes { - pub seccomp_notif: ::__u16, - pub seccomp_notif_resp: ::__u16, - pub seccomp_data: ::__u16, - } -} - -s_no_extra_traits! { - pub struct user_fpxregs_struct { - pub cwd: ::c_ushort, - pub swd: ::c_ushort, - pub twd: ::c_ushort, - pub fop: ::c_ushort, - pub fip: ::c_long, - pub fcs: ::c_long, - pub foo: ::c_long, - pub fos: ::c_long, - pub mxcsr: ::c_long, - __reserved: ::c_long, - pub st_space: [::c_long; 32], - pub xmm_space: [::c_long; 32], - padding: [::c_long; 56], - } - - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, - __private: [u8; 112], - __ssp: [::c_ulong; 4], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for user_fpxregs_struct { - fn eq(&self, other: &user_fpxregs_struct) -> bool { - self.cwd == other.cwd - && self.swd == other.swd - && self.twd == other.twd - && self.fop == other.fop - && self.fip == other.fip - && self.fcs == other.fcs - && self.foo == other.foo - && self.fos == other.fos - && self.mxcsr == other.mxcsr - // Ignore __reserved field - && self.st_space == other.st_space - && self.xmm_space == other.xmm_space - // Ignore padding field - } - } - - impl Eq for user_fpxregs_struct {} - - impl ::fmt::Debug for user_fpxregs_struct { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("user_fpxregs_struct") - .field("cwd", &self.cwd) - .field("swd", &self.swd) - .field("twd", &self.twd) - .field("fop", &self.fop) - .field("fip", &self.fip) - .field("fcs", &self.fcs) - .field("foo", &self.foo) - .field("fos", &self.fos) - .field("mxcsr", &self.mxcsr) - // Ignore __reserved field - .field("st_space", &self.st_space) - .field("xmm_space", &self.xmm_space) - // Ignore padding field - .finish() - } - } - - impl ::hash::Hash for user_fpxregs_struct { - fn hash(&self, state: &mut H) { - self.cwd.hash(state); - self.swd.hash(state); - self.twd.hash(state); - self.fop.hash(state); - self.fip.hash(state); - self.fcs.hash(state); - self.foo.hash(state); - self.fos.hash(state); - self.mxcsr.hash(state); - // Ignore __reserved field - self.st_space.hash(state); - self.xmm_space.hash(state); - // Ignore padding field - } - } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - // Ignore __private field - } - } - - impl Eq for ucontext_t {} - - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - // Ignore __private field - .finish() - } - } - - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - // Ignore __private field - } - } - } -} - -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_LARGEFILE: ::c_int = 0o0100000; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_32BIT: ::c_int = 0x0040; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; - -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_SYSEMU: ::c_uint = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const EFD_NONBLOCK: ::c_int = 0x800; -pub const SFD_NONBLOCK: ::c_int = 0x0800; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -// Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86old: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_vm86: ::c_long = 166; -pub const SYS_query_module: ::c_long = 167; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_getpmsg: ::c_long = 188; -pub const SYS_putpmsg: ::c_long = 189; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_pivot_root: ::c_long = 217; -pub const SYS_mincore: ::c_long = 218; -pub const SYS_madvise: ::c_long = 219; -pub const SYS_getdents64: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_set_thread_area: ::c_long = 243; -pub const SYS_get_thread_area: ::c_long = 244; -pub const SYS_io_setup: ::c_long = 245; -pub const SYS_io_destroy: ::c_long = 246; -pub const SYS_io_getevents: ::c_long = 247; -pub const SYS_io_submit: ::c_long = 248; -pub const SYS_io_cancel: ::c_long = 249; -pub const SYS_fadvise64: ::c_long = 250; -pub const SYS_exit_group: ::c_long = 252; -pub const SYS_lookup_dcookie: ::c_long = 253; -pub const SYS_epoll_create: ::c_long = 254; -pub const SYS_epoll_ctl: ::c_long = 255; -pub const SYS_epoll_wait: ::c_long = 256; -pub const SYS_remap_file_pages: ::c_long = 257; -pub const SYS_set_tid_address: ::c_long = 258; -pub const SYS_timer_create: ::c_long = 259; -pub const SYS_timer_settime: ::c_long = 260; -pub const SYS_timer_gettime: ::c_long = 261; -pub const SYS_timer_getoverrun: ::c_long = 262; -pub const SYS_timer_delete: ::c_long = 263; -pub const SYS_clock_settime: ::c_long = 264; -pub const SYS_clock_gettime: ::c_long = 265; -pub const SYS_clock_getres: ::c_long = 266; -pub const SYS_clock_nanosleep: ::c_long = 267; -pub const SYS_statfs64: ::c_long = 268; -pub const SYS_fstatfs64: ::c_long = 269; -pub const SYS_tgkill: ::c_long = 270; -pub const SYS_utimes: ::c_long = 271; -pub const SYS_fadvise64_64: ::c_long = 272; -pub const SYS_vserver: ::c_long = 273; -pub const SYS_mbind: ::c_long = 274; -pub const SYS_get_mempolicy: ::c_long = 275; -pub const SYS_set_mempolicy: ::c_long = 276; -pub const SYS_mq_open: ::c_long = 277; -pub const SYS_mq_unlink: ::c_long = 278; -pub const SYS_mq_timedsend: ::c_long = 279; -pub const SYS_mq_timedreceive: ::c_long = 280; -pub const SYS_mq_notify: ::c_long = 281; -pub const SYS_mq_getsetattr: ::c_long = 282; -pub const SYS_kexec_load: ::c_long = 283; -pub const SYS_waitid: ::c_long = 284; -pub const SYS_add_key: ::c_long = 286; -pub const SYS_request_key: ::c_long = 287; -pub const SYS_keyctl: ::c_long = 288; -pub const SYS_ioprio_set: ::c_long = 289; -pub const SYS_ioprio_get: ::c_long = 290; -pub const SYS_inotify_init: ::c_long = 291; -pub const SYS_inotify_add_watch: ::c_long = 292; -pub const SYS_inotify_rm_watch: ::c_long = 293; -pub const SYS_migrate_pages: ::c_long = 294; -pub const SYS_openat: ::c_long = 295; -pub const SYS_mkdirat: ::c_long = 296; -pub const SYS_mknodat: ::c_long = 297; -pub const SYS_fchownat: ::c_long = 298; -pub const SYS_futimesat: ::c_long = 299; -pub const SYS_fstatat64: ::c_long = 300; -pub const SYS_unlinkat: ::c_long = 301; -pub const SYS_renameat: ::c_long = 302; -pub const SYS_linkat: ::c_long = 303; -pub const SYS_symlinkat: ::c_long = 304; -pub const SYS_readlinkat: ::c_long = 305; -pub const SYS_fchmodat: ::c_long = 306; -pub const SYS_faccessat: ::c_long = 307; -pub const SYS_pselect6: ::c_long = 308; -pub const SYS_ppoll: ::c_long = 309; -pub const SYS_unshare: ::c_long = 310; -pub const SYS_set_robust_list: ::c_long = 311; -pub const SYS_get_robust_list: ::c_long = 312; -pub const SYS_splice: ::c_long = 313; -pub const SYS_sync_file_range: ::c_long = 314; -pub const SYS_tee: ::c_long = 315; -pub const SYS_vmsplice: ::c_long = 316; -pub const SYS_move_pages: ::c_long = 317; -pub const SYS_getcpu: ::c_long = 318; -pub const SYS_epoll_pwait: ::c_long = 319; -pub const SYS_utimensat: ::c_long = 320; -pub const SYS_signalfd: ::c_long = 321; -pub const SYS_timerfd_create: ::c_long = 322; -pub const SYS_eventfd: ::c_long = 323; -pub const SYS_fallocate: ::c_long = 324; -pub const SYS_timerfd_settime: ::c_long = 325; -pub const SYS_timerfd_gettime: ::c_long = 326; -pub const SYS_signalfd4: ::c_long = 327; -pub const SYS_eventfd2: ::c_long = 328; -pub const SYS_epoll_create1: ::c_long = 329; -pub const SYS_dup3: ::c_long = 330; -pub const SYS_pipe2: ::c_long = 331; -pub const SYS_inotify_init1: ::c_long = 332; -pub const SYS_preadv: ::c_long = 333; -pub const SYS_pwritev: ::c_long = 334; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 335; -pub const SYS_perf_event_open: ::c_long = 336; -pub const SYS_recvmmsg: ::c_long = 337; -pub const SYS_fanotify_init: ::c_long = 338; -pub const SYS_fanotify_mark: ::c_long = 339; -pub const SYS_prlimit64: ::c_long = 340; -pub const SYS_name_to_handle_at: ::c_long = 341; -pub const SYS_open_by_handle_at: ::c_long = 342; -pub const SYS_clock_adjtime: ::c_long = 343; -pub const SYS_syncfs: ::c_long = 344; -pub const SYS_sendmmsg: ::c_long = 345; -pub const SYS_setns: ::c_long = 346; -pub const SYS_process_vm_readv: ::c_long = 347; -pub const SYS_process_vm_writev: ::c_long = 348; -pub const SYS_kcmp: ::c_long = 349; -pub const SYS_finit_module: ::c_long = 350; -pub const SYS_sched_setattr: ::c_long = 351; -pub const SYS_sched_getattr: ::c_long = 352; -pub const SYS_renameat2: ::c_long = 353; -pub const SYS_seccomp: ::c_long = 354; -pub const SYS_getrandom: ::c_long = 355; -pub const SYS_memfd_create: ::c_long = 356; -pub const SYS_bpf: ::c_long = 357; -pub const SYS_execveat: ::c_long = 358; -pub const SYS_socket: ::c_long = 359; -pub const SYS_socketpair: ::c_long = 360; -pub const SYS_bind: ::c_long = 361; -pub const SYS_connect: ::c_long = 362; -pub const SYS_listen: ::c_long = 363; -pub const SYS_accept4: ::c_long = 364; -pub const SYS_getsockopt: ::c_long = 365; -pub const SYS_setsockopt: ::c_long = 366; -pub const SYS_getsockname: ::c_long = 367; -pub const SYS_getpeername: ::c_long = 368; -pub const SYS_sendto: ::c_long = 369; -pub const SYS_sendmsg: ::c_long = 370; -pub const SYS_recvfrom: ::c_long = 371; -pub const SYS_recvmsg: ::c_long = 372; -pub const SYS_shutdown: ::c_long = 373; -pub const SYS_userfaultfd: ::c_long = 374; -pub const SYS_membarrier: ::c_long = 375; -pub const SYS_mlock2: ::c_long = 376; -pub const SYS_copy_file_range: ::c_long = 377; -pub const SYS_preadv2: ::c_long = 378; -pub const SYS_pwritev2: ::c_long = 379; -pub const SYS_pkey_mprotect: ::c_long = 380; -pub const SYS_pkey_alloc: ::c_long = 381; -pub const SYS_pkey_free: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_rseq: ::c_long = 386; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -// offsets in user_regs_structs, from sys/reg.h -pub const EBX: ::c_int = 0; -pub const ECX: ::c_int = 1; -pub const EDX: ::c_int = 2; -pub const ESI: ::c_int = 3; -pub const EDI: ::c_int = 4; -pub const EBP: ::c_int = 5; -pub const EAX: ::c_int = 6; -pub const DS: ::c_int = 7; -pub const ES: ::c_int = 8; -pub const FS: ::c_int = 9; -pub const GS: ::c_int = 10; -pub const ORIG_EAX: ::c_int = 11; -pub const EIP: ::c_int = 12; -pub const CS: ::c_int = 13; -pub const EFL: ::c_int = 14; -pub const UESP: ::c_int = 15; -pub const SS: ::c_int = 16; - -// offsets in mcontext_t.gregs from sys/ucontext.h -pub const REG_GS: ::c_int = 0; -pub const REG_FS: ::c_int = 1; -pub const REG_ES: ::c_int = 2; -pub const REG_DS: ::c_int = 3; -pub const REG_EDI: ::c_int = 4; -pub const REG_ESI: ::c_int = 5; -pub const REG_EBP: ::c_int = 6; -pub const REG_ESP: ::c_int = 7; -pub const REG_EBX: ::c_int = 8; -pub const REG_EDX: ::c_int = 9; -pub const REG_ECX: ::c_int = 10; -pub const REG_EAX: ::c_int = 11; -pub const REG_TRAPNO: ::c_int = 12; -pub const REG_ERR: ::c_int = 13; -pub const REG_EIP: ::c_int = 14; -pub const REG_CS: ::c_int = 15; -pub const REG_EFL: ::c_int = 16; -pub const REG_UESP: ::c_int = 17; -pub const REG_SS: ::c_int = 18; - -pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; -pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; -pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; -pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; - -extern "C" { - pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; - pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; - pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs deleted file mode 100644 index 06173be66..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs +++ /dev/null @@ -1,58 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f32; 8] - } -} - -s! { - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[repr(align(16))] - pub struct mcontext_t { - pub fault_address: ::c_ulonglong, - pub regs: [::c_ulonglong; 31], - pub sp: ::c_ulonglong, - pub pc: ::c_ulonglong, - pub pstate: ::c_ulonglong, - // nested arrays to get the right size/length while being able to - // auto-derive traits like Debug - __reserved: [[u64; 32]; 16], - } - - #[repr(align(16))] - pub struct user_fpsimd_struct { - pub vregs: [[u64; 2]; 32], - pub fpsr: ::c_uint, - pub fpcr: ::c_uint, - } - - #[repr(align(8))] - pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, - } -} - -extern "C" { - pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; - pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; - pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs deleted file mode 100644 index 0848fb588..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs +++ /dev/null @@ -1,64 +0,0 @@ -use pthread_mutex_t; - -pub type c_long = i32; -pub type c_ulong = u32; - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 48; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; - -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} - -pub const SYS_sync_file_range2: ::c_long = 84; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs deleted file mode 100644 index 4535e73ee..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs +++ /dev/null @@ -1,7 +0,0 @@ -s! { - pub struct user_fpsimd_struct { - pub vregs: [::__uint128_t; 32], - pub fpsr: u32, - pub fpcr: u32, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs deleted file mode 100644 index 3802caf64..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs +++ /dev/null @@ -1,73 +0,0 @@ -use pthread_mutex_t; - -pub type c_long = i64; -pub type c_ulong = u64; - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 8; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 48; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 8; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 8; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; - -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - ], - }; -} - -pub const SYS_renameat: ::c_long = 38; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_setrlimit: ::c_long = 164; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs deleted file mode 100644 index f46ea941b..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ /dev/null @@ -1,938 +0,0 @@ -//! AArch64-specific definitions for 64-bit linux-like values - -pub type c_char = u8; -pub type wchar_t = u32; -pub type nlink_t = u32; -pub type blksize_t = i32; -pub type suseconds_t = i64; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; - -s! { - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - #[cfg(target_arch = "sparc64")] - __reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - __pad2: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_int; 2], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - __pad2: ::c_int, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_int; 2], - } - - pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct pthread_attr_t { - __size: [usize; 8] - } - - pub struct user_regs_struct { - pub regs: [::c_ulonglong; 31], - pub sp: ::c_ulonglong, - pub pc: ::c_ulonglong, - pub pstate: ::c_ulonglong, - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_uint, - pub __seq: ::c_ushort, - __pad1: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct seccomp_notif_sizes { - pub seccomp_notif: ::__u16, - pub seccomp_notif_resp: ::__u16, - pub seccomp_data: ::__u16, - } -} - -pub const VEOF: usize = 4; - -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; - -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; - -pub const PTRACE_DETACH: ::c_uint = 17; - -pub const EFD_NONBLOCK: ::c_int = 0x800; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; - -pub const SFD_NONBLOCK: ::c_int = 0x0800; - -pub const SFD_CLOEXEC: ::c_int = 0x080000; - -pub const NCCS: usize = 32; - -pub const O_TRUNC: ::c_int = 512; - -pub const O_CLOEXEC: ::c_int = 0x80000; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; - -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLOCK: ::c_int = 35; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const SIGSTKSZ: ::size_t = 16384; -pub const MINSIGSTKSZ: ::size_t = 5120; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; -pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; -pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; -pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; - -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -// sys/auxv.h -pub const HWCAP_FP: ::c_ulong = 1 << 0; -pub const HWCAP_ASIMD: ::c_ulong = 1 << 1; -pub const HWCAP_EVTSTRM: ::c_ulong = 1 << 2; -pub const HWCAP_AES: ::c_ulong = 1 << 3; -pub const HWCAP_PMULL: ::c_ulong = 1 << 4; -pub const HWCAP_SHA1: ::c_ulong = 1 << 5; -pub const HWCAP_SHA2: ::c_ulong = 1 << 6; -pub const HWCAP_CRC32: ::c_ulong = 1 << 7; -pub const HWCAP_ATOMICS: ::c_ulong = 1 << 8; -pub const HWCAP_FPHP: ::c_ulong = 1 << 9; -pub const HWCAP_ASIMDHP: ::c_ulong = 1 << 10; -pub const HWCAP_CPUID: ::c_ulong = 1 << 11; -pub const HWCAP_ASIMDRDM: ::c_ulong = 1 << 12; -pub const HWCAP_JSCVT: ::c_ulong = 1 << 13; -pub const HWCAP_FCMA: ::c_ulong = 1 << 14; -pub const HWCAP_LRCPC: ::c_ulong = 1 << 15; -pub const HWCAP_DCPOP: ::c_ulong = 1 << 16; -pub const HWCAP_SHA3: ::c_ulong = 1 << 17; -pub const HWCAP_SM3: ::c_ulong = 1 << 18; -pub const HWCAP_SM4: ::c_ulong = 1 << 19; -pub const HWCAP_ASIMDDP: ::c_ulong = 1 << 20; -pub const HWCAP_SHA512: ::c_ulong = 1 << 21; -pub const HWCAP_SVE: ::c_ulong = 1 << 22; -pub const HWCAP_ASIMDFHM: ::c_ulong = 1 << 23; -pub const HWCAP_DIT: ::c_ulong = 1 << 24; -pub const HWCAP_USCAT: ::c_ulong = 1 << 25; -pub const HWCAP_ILRCPC: ::c_ulong = 1 << 26; -pub const HWCAP_FLAGM: ::c_ulong = 1 << 27; -pub const HWCAP_SSBS: ::c_ulong = 1 << 28; -pub const HWCAP_SB: ::c_ulong = 1 << 29; -pub const HWCAP_PACA: ::c_ulong = 1 << 30; -pub const HWCAP_PACG: ::c_ulong = 1 << 31; -// FIXME: enable these again once linux-api-headers are up to date enough on CI. -// See discussion in https://github.com/rust-lang/libc/pull/1638 -//pub const HWCAP2_DCPODP: ::c_ulong = 1 << 0; -//pub const HWCAP2_SVE2: ::c_ulong = 1 << 1; -//pub const HWCAP2_SVEAES: ::c_ulong = 1 << 2; -//pub const HWCAP2_SVEPMULL: ::c_ulong = 1 << 3; -//pub const HWCAP2_SVEBITPERM: ::c_ulong = 1 << 4; -//pub const HWCAP2_SVESHA3: ::c_ulong = 1 << 5; -//pub const HWCAP2_SVESM4: ::c_ulong = 1 << 6; -//pub const HWCAP2_FLAGM2: ::c_ulong = 1 << 7; -//pub const HWCAP2_FRINT: ::c_ulong = 1 << 8; -//pub const HWCAP2_MTE: ::c_ulong = 1 << 18; - -// linux/prctl.h -pub const PR_PAC_RESET_KEYS: ::c_int = 54; -pub const PR_SET_TAGGED_ADDR_CTRL: ::c_int = 55; -pub const PR_GET_TAGGED_ADDR_CTRL: ::c_int = 56; -pub const PR_PAC_SET_ENABLED_KEYS: ::c_int = 60; -pub const PR_PAC_GET_ENABLED_KEYS: ::c_int = 61; - -pub const PR_TAGGED_ADDR_ENABLE: ::c_ulong = 1; - -pub const PR_PAC_APIAKEY: ::c_ulong = 1 << 0; -pub const PR_PAC_APIBKEY: ::c_ulong = 1 << 1; -pub const PR_PAC_APDAKEY: ::c_ulong = 1 << 2; -pub const PR_PAC_APDBKEY: ::c_ulong = 1 << 3; -pub const PR_PAC_APGAKEY: ::c_ulong = 1 << 4; - -pub const PR_SME_SET_VL: ::c_int = 63; -pub const PR_SME_GET_VL: ::c_int = 64; -pub const PR_SME_VL_LEN_MAX: ::c_int = 0xffff; - -pub const PR_SME_SET_VL_INHERIT: ::c_ulong = 1 << 17; -pub const PR_SME_SET_VL_ONE_EXEC: ::c_ulong = 1 << 18; - -// Syscall table -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_dup: ::c_long = 23; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_flock: ::c_long = 32; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_linkat: ::c_long = 37; -// 38 is renameat only on LP64 -pub const SYS_umount2: ::c_long = 39; -pub const SYS_mount: ::c_long = 40; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_openat: ::c_long = 56; -pub const SYS_close: ::c_long = 57; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_newfstatat: ::c_long = 79; -pub const SYS_fstat: ::c_long = 80; -pub const SYS_sync: ::c_long = 81; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -// 84 sync_file_range on LP64 and sync_file_range2 on ILP32 -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_acct: ::c_long = 89; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_personality: ::c_long = 92; -pub const SYS_exit: ::c_long = 93; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_futex: ::c_long = 98; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_kill: ::c_long = 129; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_times: ::c_long = 153; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_uname: ::c_long = 160; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -// 163 is getrlimit only on LP64 -// 164 is setrlimit only on LP64 -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_umask: ::c_long = 166; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_semop: ::c_long = 193; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_socket: ::c_long = 198; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_accept: ::c_long = 202; -pub const SYS_connect: ::c_long = 203; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_brk: ::c_long = 214; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_setns: ::c_long = 268; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_rseq: ::c_long = 293; -pub const SYS_kexec_file_load: ::c_long = 294; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -extern "C" { - pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; -} - -cfg_if! { - if #[cfg(target_pointer_width = "32")] { - mod ilp32; - pub use self::ilp32::*; - } else { - mod lp64; - pub use self::lp64::*; - } -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} - -cfg_if! { - if #[cfg(libc_int128)] { - mod int128; - pub use self::int128::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs deleted file mode 100644 index dc191f51f..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs +++ /dev/null @@ -1,40 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } -} - -s! { - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[repr(align(16))] - pub struct mcontext_t { - pub __pc: ::c_ulonglong, - pub __gregs: [::c_ulonglong; 32], - pub __flags: ::c_uint, - pub __extcontext: [::c_ulonglong; 0], - } - - #[repr(align(8))] - pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs deleted file mode 100644 index ea59181bc..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ /dev/null @@ -1,885 +0,0 @@ -use pthread_mutex_t; - -pub type c_char = i8; -pub type c_long = i64; -pub type c_ulong = u64; -pub type wchar_t = i32; - -pub type blksize_t = i32; -pub type nlink_t = u32; -pub type suseconds_t = i64; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - __pad2: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_int; 2], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_int; 2], - } - - pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], - } - - pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct pthread_attr_t { - __size: [::c_ulong; 7] - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [u64; 0], - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_uint, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong - } - - pub struct user_regs_struct { - pub regs: [u64; 32], - pub orig_a0: u64, - pub csr_era: u64, - pub csr_badv: u64, - pub reserved: [u64; 10], - - } - - pub struct user_fp_struct { - pub fpr: [u64; 32], - pub fcc: u64, - pub fcsr: u32, - } -} - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; - -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} - -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_dup: ::c_long = 23; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_flock: ::c_long = 32; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_mount: ::c_long = 40; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_openat: ::c_long = 56; -pub const SYS_close: ::c_long = 57; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_sendfile: ::c_long = 71; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_sync: ::c_long = 81; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_acct: ::c_long = 89; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_personality: ::c_long = 92; -pub const SYS_exit: ::c_long = 93; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_futex: ::c_long = 98; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_kill: ::c_long = 129; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_times: ::c_long = 153; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_uname: ::c_long = 160; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_umask: ::c_long = 166; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_semop: ::c_long = 193; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_socket: ::c_long = 198; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_accept: ::c_long = 202; -pub const SYS_connect: ::c_long = 203; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_brk: ::c_long = 214; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_fadvise64: ::c_long = 223; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_recvmmsg: ::c_long = 243; -//pub const SYS_arch_specific_syscall: ::c_long = 244; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_setns: ::c_long = 268; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_io_pgetevents: ::c_long = 292; -pub const SYS_rseq: ::c_long = 293; -pub const SYS_kexec_file_load: ::c_long = 294; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; -pub const O_DIRECT: ::c_int = 0o00040000; -pub const O_DIRECTORY: ::c_int = 0o00200000; -pub const O_NOFOLLOW: ::c_int = 0o00400000; -pub const O_TRUNC: ::c_int = 0o00001000; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_CLOEXEC: ::c_int = 0o02000000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; -pub const O_APPEND: ::c_int = 0o00002000; -pub const O_CREAT: ::c_int = 0o00000100; -pub const O_EXCL: ::c_int = 0o00000200; -pub const O_NOCTTY: ::c_int = 0o00000400; -pub const O_NONBLOCK: ::c_int = 0o00004000; -pub const FASYNC: ::c_int = 0o00020000; -pub const O_SYNC: ::c_int = 0o04010000; -pub const O_RSYNC: ::c_int = 0o04010000; -pub const O_FSYNC: ::c_int = O_SYNC; -pub const O_ASYNC: ::c_int = 0o00020000; -pub const O_DSYNC: ::c_int = 0o00010000; -pub const O_NDELAY: ::c_int = O_NONBLOCK; -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; -pub const F_GETLK: ::c_int = 5; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; -pub const F_GETOWN: ::c_int = 9; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const EDEADLK: ::c_int = 35; -pub const EDEADLOCK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; - -pub const MAP_NORESERVE: ::c_int = 0x4000; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x1000; -pub const MAP_LOCKED: ::c_int = 0x2000; -pub const MAP_POPULATE: ::c_int = 0x8000; -pub const MAP_NONBLOCK: ::c_int = 0x10000; -pub const MAP_STACK: ::c_int = 0x20000; -pub const MAP_HUGETLB: ::c_int = 0x40000; -pub const MAP_SYNC: ::c_int = 0x080000; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const MCL_ONFAULT: ::c_int = 0x0004; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SFD_NONBLOCK: ::c_int = 0x800; -pub const SFD_CLOEXEC: ::c_int = 0x080000; -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGCHLD: ::c_int = 17; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGURG: ::c_int = 23; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGIO: ::c_int = 29; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIGSYS: ::c_int = 31; -pub const SIGUNUSED: ::c_int = 31; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const PTRACE_GETFPREGS: ::c_uint = 14; -pub const PTRACE_SETFPREGS: ::c_uint = 15; -pub const PTRACE_DETACH: ::c_uint = 17; -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_GETREGS: ::c_uint = 12; -pub const PTRACE_SETREGS: ::c_uint = 13; -pub const PTRACE_SYSEMU: ::c_uint = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; - -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const VEOF: usize = 4; -pub const VTIME: usize = 5; -pub const VMIN: usize = 6; -pub const VSWTC: usize = 7; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VSUSP: usize = 10; -pub const VEOL: usize = 11; -pub const VREPRINT: usize = 12; -pub const VDISCARD: usize = 13; -pub const VWERASE: usize = 14; -pub const VEOL2: usize = 16; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; -pub const SIGSTKSZ: ::size_t = 16384; -pub const MINSIGSTKSZ: ::size_t = 4096; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const XCASE: ::tcflag_t = 0x00000004; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; - -pub const NCCS: usize = 32; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; -pub const EFD_NONBLOCK: ::c_int = 0x800; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/align.rs deleted file mode 100644 index 7ca870fd0..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs deleted file mode 100644 index 66b29a8aa..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ /dev/null @@ -1,933 +0,0 @@ -use pthread_mutex_t; - -pub type blksize_t = i64; -pub type c_char = i8; -pub type c_long = i64; -pub type c_ulong = u64; -pub type nlink_t = u64; -pub type suseconds_t = i64; -pub type wchar_t = i32; -pub type __u64 = ::c_ulong; -pub type __s64 = ::c_long; - -s! { - pub struct stat { - pub st_dev: ::c_ulong, - st_pad1: [::c_long; 2], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulong, - st_pad2: [::c_ulong; 1], - pub st_size: ::off_t, - st_pad3: ::c_long, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - st_pad4: ::c_long, - pub st_blocks: ::blkcnt_t, - st_pad5: [::c_long; 7], - } - - pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsblkcnt_t, - pub f_ffree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::c_long, - f_spare: [::c_long; 6], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct stat64 { - pub st_dev: ::c_ulong, - st_pad1: [::c_long; 2], - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulong, - st_pad2: [::c_long; 2], - pub st_size: ::off64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - st_pad3: ::c_long, - pub st_blocks: ::blkcnt64_t, - st_pad5: [::c_long; 7], - } - - pub struct statfs64 { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_bavail: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 5], - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct pthread_attr_t { - __size: [::c_ulong; 7] - } - - pub struct sigaction { - pub sa_flags: ::c_int, - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_restorer: ::Option, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - _pad: ::c_int, - _pad2: [::c_long; 14], - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_uint, - pub __seq: ::c_ushort, - __pad1: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong - } -} - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; - -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} - -pub const SYS_read: ::c_long = 5000 + 0; -pub const SYS_write: ::c_long = 5000 + 1; -pub const SYS_open: ::c_long = 5000 + 2; -pub const SYS_close: ::c_long = 5000 + 3; -pub const SYS_stat: ::c_long = 5000 + 4; -pub const SYS_fstat: ::c_long = 5000 + 5; -pub const SYS_lstat: ::c_long = 5000 + 6; -pub const SYS_poll: ::c_long = 5000 + 7; -pub const SYS_lseek: ::c_long = 5000 + 8; -pub const SYS_mmap: ::c_long = 5000 + 9; -pub const SYS_mprotect: ::c_long = 5000 + 10; -pub const SYS_munmap: ::c_long = 5000 + 11; -pub const SYS_brk: ::c_long = 5000 + 12; -pub const SYS_rt_sigaction: ::c_long = 5000 + 13; -pub const SYS_rt_sigprocmask: ::c_long = 5000 + 14; -pub const SYS_ioctl: ::c_long = 5000 + 15; -pub const SYS_pread64: ::c_long = 5000 + 16; -pub const SYS_pwrite64: ::c_long = 5000 + 17; -pub const SYS_readv: ::c_long = 5000 + 18; -pub const SYS_writev: ::c_long = 5000 + 19; -pub const SYS_access: ::c_long = 5000 + 20; -pub const SYS_pipe: ::c_long = 5000 + 21; -pub const SYS__newselect: ::c_long = 5000 + 22; -pub const SYS_sched_yield: ::c_long = 5000 + 23; -pub const SYS_mremap: ::c_long = 5000 + 24; -pub const SYS_msync: ::c_long = 5000 + 25; -pub const SYS_mincore: ::c_long = 5000 + 26; -pub const SYS_madvise: ::c_long = 5000 + 27; -pub const SYS_shmget: ::c_long = 5000 + 28; -pub const SYS_shmat: ::c_long = 5000 + 29; -pub const SYS_shmctl: ::c_long = 5000 + 30; -pub const SYS_dup: ::c_long = 5000 + 31; -pub const SYS_dup2: ::c_long = 5000 + 32; -pub const SYS_pause: ::c_long = 5000 + 33; -pub const SYS_nanosleep: ::c_long = 5000 + 34; -pub const SYS_getitimer: ::c_long = 5000 + 35; -pub const SYS_setitimer: ::c_long = 5000 + 36; -pub const SYS_alarm: ::c_long = 5000 + 37; -pub const SYS_getpid: ::c_long = 5000 + 38; -pub const SYS_sendfile: ::c_long = 5000 + 39; -pub const SYS_socket: ::c_long = 5000 + 40; -pub const SYS_connect: ::c_long = 5000 + 41; -pub const SYS_accept: ::c_long = 5000 + 42; -pub const SYS_sendto: ::c_long = 5000 + 43; -pub const SYS_recvfrom: ::c_long = 5000 + 44; -pub const SYS_sendmsg: ::c_long = 5000 + 45; -pub const SYS_recvmsg: ::c_long = 5000 + 46; -pub const SYS_shutdown: ::c_long = 5000 + 47; -pub const SYS_bind: ::c_long = 5000 + 48; -pub const SYS_listen: ::c_long = 5000 + 49; -pub const SYS_getsockname: ::c_long = 5000 + 50; -pub const SYS_getpeername: ::c_long = 5000 + 51; -pub const SYS_socketpair: ::c_long = 5000 + 52; -pub const SYS_setsockopt: ::c_long = 5000 + 53; -pub const SYS_getsockopt: ::c_long = 5000 + 54; -pub const SYS_clone: ::c_long = 5000 + 55; -pub const SYS_fork: ::c_long = 5000 + 56; -pub const SYS_execve: ::c_long = 5000 + 57; -pub const SYS_exit: ::c_long = 5000 + 58; -pub const SYS_wait4: ::c_long = 5000 + 59; -pub const SYS_kill: ::c_long = 5000 + 60; -pub const SYS_uname: ::c_long = 5000 + 61; -pub const SYS_semget: ::c_long = 5000 + 62; -pub const SYS_semop: ::c_long = 5000 + 63; -pub const SYS_semctl: ::c_long = 5000 + 64; -pub const SYS_shmdt: ::c_long = 5000 + 65; -pub const SYS_msgget: ::c_long = 5000 + 66; -pub const SYS_msgsnd: ::c_long = 5000 + 67; -pub const SYS_msgrcv: ::c_long = 5000 + 68; -pub const SYS_msgctl: ::c_long = 5000 + 69; -pub const SYS_fcntl: ::c_long = 5000 + 70; -pub const SYS_flock: ::c_long = 5000 + 71; -pub const SYS_fsync: ::c_long = 5000 + 72; -pub const SYS_fdatasync: ::c_long = 5000 + 73; -pub const SYS_truncate: ::c_long = 5000 + 74; -pub const SYS_ftruncate: ::c_long = 5000 + 75; -pub const SYS_getdents: ::c_long = 5000 + 76; -pub const SYS_getcwd: ::c_long = 5000 + 77; -pub const SYS_chdir: ::c_long = 5000 + 78; -pub const SYS_fchdir: ::c_long = 5000 + 79; -pub const SYS_rename: ::c_long = 5000 + 80; -pub const SYS_mkdir: ::c_long = 5000 + 81; -pub const SYS_rmdir: ::c_long = 5000 + 82; -pub const SYS_creat: ::c_long = 5000 + 83; -pub const SYS_link: ::c_long = 5000 + 84; -pub const SYS_unlink: ::c_long = 5000 + 85; -pub const SYS_symlink: ::c_long = 5000 + 86; -pub const SYS_readlink: ::c_long = 5000 + 87; -pub const SYS_chmod: ::c_long = 5000 + 88; -pub const SYS_fchmod: ::c_long = 5000 + 89; -pub const SYS_chown: ::c_long = 5000 + 90; -pub const SYS_fchown: ::c_long = 5000 + 91; -pub const SYS_lchown: ::c_long = 5000 + 92; -pub const SYS_umask: ::c_long = 5000 + 93; -pub const SYS_gettimeofday: ::c_long = 5000 + 94; -pub const SYS_getrlimit: ::c_long = 5000 + 95; -pub const SYS_getrusage: ::c_long = 5000 + 96; -pub const SYS_sysinfo: ::c_long = 5000 + 97; -pub const SYS_times: ::c_long = 5000 + 98; -pub const SYS_ptrace: ::c_long = 5000 + 99; -pub const SYS_getuid: ::c_long = 5000 + 100; -pub const SYS_syslog: ::c_long = 5000 + 101; -pub const SYS_getgid: ::c_long = 5000 + 102; -pub const SYS_setuid: ::c_long = 5000 + 103; -pub const SYS_setgid: ::c_long = 5000 + 104; -pub const SYS_geteuid: ::c_long = 5000 + 105; -pub const SYS_getegid: ::c_long = 5000 + 106; -pub const SYS_setpgid: ::c_long = 5000 + 107; -pub const SYS_getppid: ::c_long = 5000 + 108; -pub const SYS_getpgrp: ::c_long = 5000 + 109; -pub const SYS_setsid: ::c_long = 5000 + 110; -pub const SYS_setreuid: ::c_long = 5000 + 111; -pub const SYS_setregid: ::c_long = 5000 + 112; -pub const SYS_getgroups: ::c_long = 5000 + 113; -pub const SYS_setgroups: ::c_long = 5000 + 114; -pub const SYS_setresuid: ::c_long = 5000 + 115; -pub const SYS_getresuid: ::c_long = 5000 + 116; -pub const SYS_setresgid: ::c_long = 5000 + 117; -pub const SYS_getresgid: ::c_long = 5000 + 118; -pub const SYS_getpgid: ::c_long = 5000 + 119; -pub const SYS_setfsuid: ::c_long = 5000 + 120; -pub const SYS_setfsgid: ::c_long = 5000 + 121; -pub const SYS_getsid: ::c_long = 5000 + 122; -pub const SYS_capget: ::c_long = 5000 + 123; -pub const SYS_capset: ::c_long = 5000 + 124; -pub const SYS_rt_sigpending: ::c_long = 5000 + 125; -pub const SYS_rt_sigtimedwait: ::c_long = 5000 + 126; -pub const SYS_rt_sigqueueinfo: ::c_long = 5000 + 127; -pub const SYS_rt_sigsuspend: ::c_long = 5000 + 128; -pub const SYS_sigaltstack: ::c_long = 5000 + 129; -pub const SYS_utime: ::c_long = 5000 + 130; -pub const SYS_mknod: ::c_long = 5000 + 131; -pub const SYS_personality: ::c_long = 5000 + 132; -pub const SYS_ustat: ::c_long = 5000 + 133; -pub const SYS_statfs: ::c_long = 5000 + 134; -pub const SYS_fstatfs: ::c_long = 5000 + 135; -pub const SYS_sysfs: ::c_long = 5000 + 136; -pub const SYS_getpriority: ::c_long = 5000 + 137; -pub const SYS_setpriority: ::c_long = 5000 + 138; -pub const SYS_sched_setparam: ::c_long = 5000 + 139; -pub const SYS_sched_getparam: ::c_long = 5000 + 140; -pub const SYS_sched_setscheduler: ::c_long = 5000 + 141; -pub const SYS_sched_getscheduler: ::c_long = 5000 + 142; -pub const SYS_sched_get_priority_max: ::c_long = 5000 + 143; -pub const SYS_sched_get_priority_min: ::c_long = 5000 + 144; -pub const SYS_sched_rr_get_interval: ::c_long = 5000 + 145; -pub const SYS_mlock: ::c_long = 5000 + 146; -pub const SYS_munlock: ::c_long = 5000 + 147; -pub const SYS_mlockall: ::c_long = 5000 + 148; -pub const SYS_munlockall: ::c_long = 5000 + 149; -pub const SYS_vhangup: ::c_long = 5000 + 150; -pub const SYS_pivot_root: ::c_long = 5000 + 151; -pub const SYS__sysctl: ::c_long = 5000 + 152; -pub const SYS_prctl: ::c_long = 5000 + 153; -pub const SYS_adjtimex: ::c_long = 5000 + 154; -pub const SYS_setrlimit: ::c_long = 5000 + 155; -pub const SYS_chroot: ::c_long = 5000 + 156; -pub const SYS_sync: ::c_long = 5000 + 157; -pub const SYS_acct: ::c_long = 5000 + 158; -pub const SYS_settimeofday: ::c_long = 5000 + 159; -pub const SYS_mount: ::c_long = 5000 + 160; -pub const SYS_umount2: ::c_long = 5000 + 161; -pub const SYS_swapon: ::c_long = 5000 + 162; -pub const SYS_swapoff: ::c_long = 5000 + 163; -pub const SYS_reboot: ::c_long = 5000 + 164; -pub const SYS_sethostname: ::c_long = 5000 + 165; -pub const SYS_setdomainname: ::c_long = 5000 + 166; -pub const SYS_create_module: ::c_long = 5000 + 167; -pub const SYS_init_module: ::c_long = 5000 + 168; -pub const SYS_delete_module: ::c_long = 5000 + 169; -pub const SYS_get_kernel_syms: ::c_long = 5000 + 170; -pub const SYS_query_module: ::c_long = 5000 + 171; -pub const SYS_quotactl: ::c_long = 5000 + 172; -pub const SYS_nfsservctl: ::c_long = 5000 + 173; -pub const SYS_getpmsg: ::c_long = 5000 + 174; -pub const SYS_putpmsg: ::c_long = 5000 + 175; -pub const SYS_afs_syscall: ::c_long = 5000 + 176; -pub const SYS_gettid: ::c_long = 5000 + 178; -pub const SYS_readahead: ::c_long = 5000 + 179; -pub const SYS_setxattr: ::c_long = 5000 + 180; -pub const SYS_lsetxattr: ::c_long = 5000 + 181; -pub const SYS_fsetxattr: ::c_long = 5000 + 182; -pub const SYS_getxattr: ::c_long = 5000 + 183; -pub const SYS_lgetxattr: ::c_long = 5000 + 184; -pub const SYS_fgetxattr: ::c_long = 5000 + 185; -pub const SYS_listxattr: ::c_long = 5000 + 186; -pub const SYS_llistxattr: ::c_long = 5000 + 187; -pub const SYS_flistxattr: ::c_long = 5000 + 188; -pub const SYS_removexattr: ::c_long = 5000 + 189; -pub const SYS_lremovexattr: ::c_long = 5000 + 190; -pub const SYS_fremovexattr: ::c_long = 5000 + 191; -pub const SYS_tkill: ::c_long = 5000 + 192; -pub const SYS_futex: ::c_long = 5000 + 194; -pub const SYS_sched_setaffinity: ::c_long = 5000 + 195; -pub const SYS_sched_getaffinity: ::c_long = 5000 + 196; -pub const SYS_cacheflush: ::c_long = 5000 + 197; -pub const SYS_cachectl: ::c_long = 5000 + 198; -pub const SYS_sysmips: ::c_long = 5000 + 199; -pub const SYS_io_setup: ::c_long = 5000 + 200; -pub const SYS_io_destroy: ::c_long = 5000 + 201; -pub const SYS_io_getevents: ::c_long = 5000 + 202; -pub const SYS_io_submit: ::c_long = 5000 + 203; -pub const SYS_io_cancel: ::c_long = 5000 + 204; -pub const SYS_exit_group: ::c_long = 5000 + 205; -pub const SYS_lookup_dcookie: ::c_long = 5000 + 206; -pub const SYS_epoll_create: ::c_long = 5000 + 207; -pub const SYS_epoll_ctl: ::c_long = 5000 + 208; -pub const SYS_epoll_wait: ::c_long = 5000 + 209; -pub const SYS_remap_file_pages: ::c_long = 5000 + 210; -pub const SYS_rt_sigreturn: ::c_long = 5000 + 211; -pub const SYS_set_tid_address: ::c_long = 5000 + 212; -pub const SYS_restart_syscall: ::c_long = 5000 + 213; -pub const SYS_semtimedop: ::c_long = 5000 + 214; -pub const SYS_fadvise64: ::c_long = 5000 + 215; -pub const SYS_timer_create: ::c_long = 5000 + 216; -pub const SYS_timer_settime: ::c_long = 5000 + 217; -pub const SYS_timer_gettime: ::c_long = 5000 + 218; -pub const SYS_timer_getoverrun: ::c_long = 5000 + 219; -pub const SYS_timer_delete: ::c_long = 5000 + 220; -pub const SYS_clock_settime: ::c_long = 5000 + 221; -pub const SYS_clock_gettime: ::c_long = 5000 + 222; -pub const SYS_clock_getres: ::c_long = 5000 + 223; -pub const SYS_clock_nanosleep: ::c_long = 5000 + 224; -pub const SYS_tgkill: ::c_long = 5000 + 225; -pub const SYS_utimes: ::c_long = 5000 + 226; -pub const SYS_mbind: ::c_long = 5000 + 227; -pub const SYS_get_mempolicy: ::c_long = 5000 + 228; -pub const SYS_set_mempolicy: ::c_long = 5000 + 229; -pub const SYS_mq_open: ::c_long = 5000 + 230; -pub const SYS_mq_unlink: ::c_long = 5000 + 231; -pub const SYS_mq_timedsend: ::c_long = 5000 + 232; -pub const SYS_mq_timedreceive: ::c_long = 5000 + 233; -pub const SYS_mq_notify: ::c_long = 5000 + 234; -pub const SYS_mq_getsetattr: ::c_long = 5000 + 235; -pub const SYS_vserver: ::c_long = 5000 + 236; -pub const SYS_waitid: ::c_long = 5000 + 237; -/* pub const SYS_sys_setaltroot: ::c_long = 5000 + 238; */ -pub const SYS_add_key: ::c_long = 5000 + 239; -pub const SYS_request_key: ::c_long = 5000 + 240; -pub const SYS_keyctl: ::c_long = 5000 + 241; -pub const SYS_set_thread_area: ::c_long = 5000 + 242; -pub const SYS_inotify_init: ::c_long = 5000 + 243; -pub const SYS_inotify_add_watch: ::c_long = 5000 + 244; -pub const SYS_inotify_rm_watch: ::c_long = 5000 + 245; -pub const SYS_migrate_pages: ::c_long = 5000 + 246; -pub const SYS_openat: ::c_long = 5000 + 247; -pub const SYS_mkdirat: ::c_long = 5000 + 248; -pub const SYS_mknodat: ::c_long = 5000 + 249; -pub const SYS_fchownat: ::c_long = 5000 + 250; -pub const SYS_futimesat: ::c_long = 5000 + 251; -pub const SYS_newfstatat: ::c_long = 5000 + 252; -pub const SYS_unlinkat: ::c_long = 5000 + 253; -pub const SYS_renameat: ::c_long = 5000 + 254; -pub const SYS_linkat: ::c_long = 5000 + 255; -pub const SYS_symlinkat: ::c_long = 5000 + 256; -pub const SYS_readlinkat: ::c_long = 5000 + 257; -pub const SYS_fchmodat: ::c_long = 5000 + 258; -pub const SYS_faccessat: ::c_long = 5000 + 259; -pub const SYS_pselect6: ::c_long = 5000 + 260; -pub const SYS_ppoll: ::c_long = 5000 + 261; -pub const SYS_unshare: ::c_long = 5000 + 262; -pub const SYS_splice: ::c_long = 5000 + 263; -pub const SYS_sync_file_range: ::c_long = 5000 + 264; -pub const SYS_tee: ::c_long = 5000 + 265; -pub const SYS_vmsplice: ::c_long = 5000 + 266; -pub const SYS_move_pages: ::c_long = 5000 + 267; -pub const SYS_set_robust_list: ::c_long = 5000 + 268; -pub const SYS_get_robust_list: ::c_long = 5000 + 269; -pub const SYS_kexec_load: ::c_long = 5000 + 270; -pub const SYS_getcpu: ::c_long = 5000 + 271; -pub const SYS_epoll_pwait: ::c_long = 5000 + 272; -pub const SYS_ioprio_set: ::c_long = 5000 + 273; -pub const SYS_ioprio_get: ::c_long = 5000 + 274; -pub const SYS_utimensat: ::c_long = 5000 + 275; -pub const SYS_signalfd: ::c_long = 5000 + 276; -pub const SYS_timerfd: ::c_long = 5000 + 277; -pub const SYS_eventfd: ::c_long = 5000 + 278; -pub const SYS_fallocate: ::c_long = 5000 + 279; -pub const SYS_timerfd_create: ::c_long = 5000 + 280; -pub const SYS_timerfd_gettime: ::c_long = 5000 + 281; -pub const SYS_timerfd_settime: ::c_long = 5000 + 282; -pub const SYS_signalfd4: ::c_long = 5000 + 283; -pub const SYS_eventfd2: ::c_long = 5000 + 284; -pub const SYS_epoll_create1: ::c_long = 5000 + 285; -pub const SYS_dup3: ::c_long = 5000 + 286; -pub const SYS_pipe2: ::c_long = 5000 + 287; -pub const SYS_inotify_init1: ::c_long = 5000 + 288; -pub const SYS_preadv: ::c_long = 5000 + 289; -pub const SYS_pwritev: ::c_long = 5000 + 290; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 5000 + 291; -pub const SYS_perf_event_open: ::c_long = 5000 + 292; -pub const SYS_accept4: ::c_long = 5000 + 293; -pub const SYS_recvmmsg: ::c_long = 5000 + 294; -pub const SYS_fanotify_init: ::c_long = 5000 + 295; -pub const SYS_fanotify_mark: ::c_long = 5000 + 296; -pub const SYS_prlimit64: ::c_long = 5000 + 297; -pub const SYS_name_to_handle_at: ::c_long = 5000 + 298; -pub const SYS_open_by_handle_at: ::c_long = 5000 + 299; -pub const SYS_clock_adjtime: ::c_long = 5000 + 300; -pub const SYS_syncfs: ::c_long = 5000 + 301; -pub const SYS_sendmmsg: ::c_long = 5000 + 302; -pub const SYS_setns: ::c_long = 5000 + 303; -pub const SYS_process_vm_readv: ::c_long = 5000 + 304; -pub const SYS_process_vm_writev: ::c_long = 5000 + 305; -pub const SYS_kcmp: ::c_long = 5000 + 306; -pub const SYS_finit_module: ::c_long = 5000 + 307; -pub const SYS_getdents64: ::c_long = 5000 + 308; -pub const SYS_sched_setattr: ::c_long = 5000 + 309; -pub const SYS_sched_getattr: ::c_long = 5000 + 310; -pub const SYS_renameat2: ::c_long = 5000 + 311; -pub const SYS_seccomp: ::c_long = 5000 + 312; -pub const SYS_getrandom: ::c_long = 5000 + 313; -pub const SYS_memfd_create: ::c_long = 5000 + 314; -pub const SYS_bpf: ::c_long = 5000 + 315; -pub const SYS_execveat: ::c_long = 5000 + 316; -pub const SYS_userfaultfd: ::c_long = 5000 + 317; -pub const SYS_membarrier: ::c_long = 5000 + 318; -pub const SYS_mlock2: ::c_long = 5000 + 319; -pub const SYS_copy_file_range: ::c_long = 5000 + 320; -pub const SYS_preadv2: ::c_long = 5000 + 321; -pub const SYS_pwritev2: ::c_long = 5000 + 322; -pub const SYS_pkey_mprotect: ::c_long = 5000 + 323; -pub const SYS_pkey_alloc: ::c_long = 5000 + 324; -pub const SYS_pkey_free: ::c_long = 5000 + 325; -pub const SYS_statx: ::c_long = 5000 + 326; -pub const SYS_rseq: ::c_long = 5000 + 327; -pub const SYS_pidfd_send_signal: ::c_long = 5000 + 424; -pub const SYS_io_uring_setup: ::c_long = 5000 + 425; -pub const SYS_io_uring_enter: ::c_long = 5000 + 426; -pub const SYS_io_uring_register: ::c_long = 5000 + 427; -pub const SYS_open_tree: ::c_long = 5000 + 428; -pub const SYS_move_mount: ::c_long = 5000 + 429; -pub const SYS_fsopen: ::c_long = 5000 + 430; -pub const SYS_fsconfig: ::c_long = 5000 + 431; -pub const SYS_fsmount: ::c_long = 5000 + 432; -pub const SYS_fspick: ::c_long = 5000 + 433; -pub const SYS_pidfd_open: ::c_long = 5000 + 434; -pub const SYS_clone3: ::c_long = 5000 + 435; -pub const SYS_close_range: ::c_long = 5000 + 436; -pub const SYS_openat2: ::c_long = 5000 + 437; -pub const SYS_pidfd_getfd: ::c_long = 5000 + 438; -pub const SYS_faccessat2: ::c_long = 5000 + 439; -pub const SYS_process_madvise: ::c_long = 5000 + 440; -pub const SYS_epoll_pwait2: ::c_long = 5000 + 441; -pub const SYS_mount_setattr: ::c_long = 5000 + 442; -pub const SYS_quotactl_fd: ::c_long = 5000 + 443; -pub const SYS_landlock_create_ruleset: ::c_long = 5000 + 444; -pub const SYS_landlock_add_rule: ::c_long = 5000 + 445; -pub const SYS_landlock_restrict_self: ::c_long = 5000 + 446; -pub const SYS_memfd_secret: ::c_long = 5000 + 447; -pub const SYS_process_mrelease: ::c_long = 5000 + 448; -pub const SYS_futex_waitv: ::c_long = 5000 + 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 5000 + 450; - -pub const SFD_CLOEXEC: ::c_int = 0x080000; - -pub const NCCS: usize = 32; - -pub const O_TRUNC: ::c_int = 512; - -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_CLOEXEC: ::c_int = 0x80000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const O_DIRECT: ::c_int = 0x8000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; - -pub const O_APPEND: ::c_int = 8; -pub const O_CREAT: ::c_int = 256; -pub const O_EXCL: ::c_int = 1024; -pub const O_NOCTTY: ::c_int = 2048; -pub const O_NONBLOCK: ::c_int = 128; -pub const O_SYNC: ::c_int = 0x4010; -pub const O_RSYNC: ::c_int = 0x4010; -pub const O_DSYNC: ::c_int = 0x10; -pub const O_FSYNC: ::c_int = 0x4010; -pub const O_ASYNC: ::c_int = 0x1000; -pub const O_NDELAY: ::c_int = 0x80; - -pub const EDEADLK: ::c_int = 45; -pub const ENAMETOOLONG: ::c_int = 78; -pub const ENOLCK: ::c_int = 46; -pub const ENOSYS: ::c_int = 89; -pub const ENOTEMPTY: ::c_int = 93; -pub const ELOOP: ::c_int = 90; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EDEADLOCK: ::c_int = 56; -pub const EMULTIHOP: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EBADMSG: ::c_int = 77; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const EUSERS: ::c_int = 94; -pub const ENOTSOCK: ::c_int = 95; -pub const EDESTADDRREQ: ::c_int = 96; -pub const EMSGSIZE: ::c_int = 97; -pub const EPROTOTYPE: ::c_int = 98; -pub const ENOPROTOOPT: ::c_int = 99; -pub const EPROTONOSUPPORT: ::c_int = 120; -pub const ESOCKTNOSUPPORT: ::c_int = 121; -pub const EOPNOTSUPP: ::c_int = 122; -pub const EPFNOSUPPORT: ::c_int = 123; -pub const EAFNOSUPPORT: ::c_int = 124; -pub const EADDRINUSE: ::c_int = 125; -pub const EADDRNOTAVAIL: ::c_int = 126; -pub const ENETDOWN: ::c_int = 127; -pub const ENETUNREACH: ::c_int = 128; -pub const ENETRESET: ::c_int = 129; -pub const ECONNABORTED: ::c_int = 130; -pub const ECONNRESET: ::c_int = 131; -pub const ENOBUFS: ::c_int = 132; -pub const EISCONN: ::c_int = 133; -pub const ENOTCONN: ::c_int = 134; -pub const ESHUTDOWN: ::c_int = 143; -pub const ETOOMANYREFS: ::c_int = 144; -pub const ETIMEDOUT: ::c_int = 145; -pub const ECONNREFUSED: ::c_int = 146; -pub const EHOSTDOWN: ::c_int = 147; -pub const EHOSTUNREACH: ::c_int = 148; -pub const EALREADY: ::c_int = 149; -pub const EINPROGRESS: ::c_int = 150; -pub const ESTALE: ::c_int = 151; -pub const EUCLEAN: ::c_int = 135; -pub const ENOTNAM: ::c_int = 137; -pub const ENAVAIL: ::c_int = 138; -pub const EISNAM: ::c_int = 139; -pub const EREMOTEIO: ::c_int = 140; -pub const EDQUOT: ::c_int = 1133; -pub const ENOMEDIUM: ::c_int = 159; -pub const EMEDIUMTYPE: ::c_int = 160; -pub const ECANCELED: ::c_int = 158; -pub const ENOKEY: ::c_int = 161; -pub const EKEYEXPIRED: ::c_int = 162; -pub const EKEYREVOKED: ::c_int = 163; -pub const EKEYREJECTED: ::c_int = 164; -pub const EOWNERDEAD: ::c_int = 165; -pub const ENOTRECOVERABLE: ::c_int = 166; -pub const ERFKILL: ::c_int = 167; - -pub const MAP_NORESERVE: ::c_int = 0x400; -pub const MAP_ANON: ::c_int = 0x800; -pub const MAP_ANONYMOUS: ::c_int = 0x800; -pub const MAP_GROWSDOWN: ::c_int = 0x1000; -pub const MAP_DENYWRITE: ::c_int = 0x2000; -pub const MAP_EXECUTABLE: ::c_int = 0x4000; -pub const MAP_LOCKED: ::c_int = 0x8000; -pub const MAP_POPULATE: ::c_int = 0x10000; -pub const MAP_NONBLOCK: ::c_int = 0x20000; -pub const MAP_STACK: ::c_int = 0x40000; -pub const MAP_HUGETLB: ::c_int = 0x080000; - -pub const SOCK_STREAM: ::c_int = 2; -pub const SOCK_DGRAM: ::c_int = 1; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000008; -pub const SA_NOCLDWAIT: ::c_int = 0x00010000; - -pub const SIGCHLD: ::c_int = 18; -pub const SIGBUS: ::c_int = 10; -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGWINCH: ::c_int = 20; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGCONT: ::c_int = 25; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGURG: ::c_int = 21; -pub const SIGIO: ::c_int = 22; -pub const SIGSYS: ::c_int = 12; -pub const SIGPOLL: ::c_int = 22; -pub const SIGPWR: ::c_int = 19; -pub const SIG_SETMASK: ::c_int = 3; -pub const SIG_BLOCK: ::c_int = 0x1; -pub const SIG_UNBLOCK: ::c_int = 0x2; - -pub const POLLWRNORM: ::c_short = 0x004; -pub const POLLWRBAND: ::c_short = 0x100; - -pub const VEOF: usize = 16; -pub const VEOL: usize = 17; -pub const VEOL2: usize = 6; -pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0x00000100; -pub const TOSTOP: ::tcflag_t = 0x00008000; -pub const FLUSHO: ::tcflag_t = 0x00002000; -pub const EXTPROC: ::tcflag_t = 0o200000; -pub const TCSANOW: ::c_int = 0x540e; -pub const TCSADRAIN: ::c_int = 0x540f; -pub const TCSAFLUSH: ::c_int = 0x5410; - -pub const PTRACE_GETFPREGS: ::c_uint = 14; -pub const PTRACE_SETFPREGS: ::c_uint = 15; -pub const PTRACE_DETACH: ::c_uint = 17; -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_GETREGS: ::c_uint = 12; -pub const PTRACE_SETREGS: ::c_uint = 13; - -pub const EFD_NONBLOCK: ::c_int = 0x80; - -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; -pub const F_GETLK: ::c_int = 14; -pub const F_GETOWN: ::c_int = 23; -pub const F_SETOWN: ::c_int = 24; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const SFD_NONBLOCK: ::c_int = 0x80; - -pub const RTLD_DEEPBIND: ::c_int = 0x10; -pub const RTLD_GLOBAL: ::c_int = 0x4; -pub const RTLD_NOLOAD: ::c_int = 0x8; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const EHWPOISON: ::c_int = 168; - -extern "C" { - pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mod.rs deleted file mode 100644 index 443958cff..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/mod.rs +++ /dev/null @@ -1,126 +0,0 @@ -//! 64-bit specific definitions for linux-like values - -pub type ino_t = u64; -pub type off_t = i64; -pub type blkcnt_t = i64; -pub type shmatt_t = u64; -pub type msgqnum_t = u64; -pub type msglen_t = u64; -pub type fsblkcnt_t = u64; -pub type fsfilcnt_t = u64; -pub type rlim_t = u64; -#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] -pub type __syscall_ulong_t = ::c_ulonglong; -#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] -pub type __syscall_ulong_t = ::c_ulong; - -cfg_if! { - if #[cfg(all(target_arch = "aarch64", target_pointer_width = "32"))] { - pub type clock_t = i32; - pub type time_t = i32; - pub type __fsword_t = i32; - } else { - pub type __fsword_t = i64; - pub type clock_t = i64; - pub type time_t = i64; - } -} - -s! { - pub struct sigset_t { - #[cfg(target_pointer_width = "32")] - __val: [u32; 32], - #[cfg(target_pointer_width = "64")] - __val: [u64; 16], - } - - pub struct sysinfo { - pub uptime: i64, - pub loads: [u64; 3], - pub totalram: u64, - pub freeram: u64, - pub sharedram: u64, - pub bufferram: u64, - pub totalswap: u64, - pub freeswap: u64, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: u64, - pub freehigh: u64, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 0], - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - __msg_cbytes: u64, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: u64, - __glibc_reserved5: u64, - } - - pub struct semid_ds { - pub sem_perm: ipc_perm, - pub sem_otime: ::time_t, - #[cfg(not(any( - target_arch = "aarch64", - target_arch = "loongarch64", - target_arch = "mips64", - target_arch = "powerpc64", - target_arch = "riscv64", - target_arch = "sparc64")))] - __reserved: ::__syscall_ulong_t, - pub sem_ctime: ::time_t, - #[cfg(not(any( - target_arch = "aarch64", - target_arch = "loongarch64", - target_arch = "mips64", - target_arch = "powerpc64", - target_arch = "riscv64", - target_arch = "sparc64")))] - __reserved2: ::__syscall_ulong_t, - pub sem_nsems: ::__syscall_ulong_t, - __glibc_reserved3: ::__syscall_ulong_t, - __glibc_reserved4: ::__syscall_ulong_t, - } -} - -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; - -pub const O_LARGEFILE: ::c_int = 0; - -cfg_if! { - if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else if #[cfg(any(target_arch = "powerpc64"))] { - mod powerpc64; - pub use self::powerpc64::*; - } else if #[cfg(any(target_arch = "sparc64"))] { - mod sparc64; - pub use self::sparc64::*; - } else if #[cfg(any(target_arch = "mips64"))] { - mod mips64; - pub use self::mips64::*; - } else if #[cfg(any(target_arch = "s390x"))] { - mod s390x; - pub use self::s390x::*; - } else if #[cfg(any(target_arch = "x86_64"))] { - mod x86_64; - pub use self::x86_64::*; - } else if #[cfg(any(target_arch = "riscv64"))] { - mod riscv64; - pub use self::riscv64::*; - } else if #[cfg(any(target_arch = "loongarch64"))] { - mod loongarch64; - pub use self::loongarch64::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs deleted file mode 100644 index 29d1e1c7b..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [i64; 4] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs deleted file mode 100644 index 2b225e480..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ /dev/null @@ -1,978 +0,0 @@ -//! PowerPC64-specific definitions for 64-bit linux-like values - -use pthread_mutex_t; - -pub type c_long = i64; -pub type c_ulong = u64; -pub type c_char = u8; -pub type wchar_t = i32; -pub type nlink_t = u64; -pub type blksize_t = i64; -pub type suseconds_t = i64; -pub type __u64 = ::c_ulong; -pub type __s64 = ::c_long; - -s! { - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - #[cfg(target_arch = "sparc64")] - __reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - __pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_long; 3], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - __pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __reserved: [::c_long; 3], - } - - pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct pthread_attr_t { - __size: [u64; 7] - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: u32, - __pad1: u32, - __unused1: u64, - __unused2: ::c_ulong, - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_segsz: ::size_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } -} - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const VEOF: usize = 4; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; - -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; - -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; - -pub const PTRACE_DETACH: ::c_uint = 17; - -pub const EFD_NONBLOCK: ::c_int = 0x800; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; - -pub const SFD_NONBLOCK: ::c_int = 0x0800; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const SFD_CLOEXEC: ::c_int = 0x080000; - -pub const NCCS: usize = 32; - -pub const O_TRUNC: ::c_int = 512; - -pub const O_CLOEXEC: ::c_int = 0x80000; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; - -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} - -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_DIRECT: ::c_int = 0x20000; - -pub const MAP_LOCKED: ::c_int = 0x00080; -pub const MAP_NORESERVE: ::c_int = 0x00040; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLOCK: ::c_int = 58; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; - -pub const MCL_CURRENT: ::c_int = 0x2000; -pub const MCL_FUTURE: ::c_int = 0x4000; - -pub const SIGSTKSZ: ::size_t = 0x4000; -pub const MINSIGSTKSZ: ::size_t = 4096; -pub const CBAUD: ::tcflag_t = 0xff; -pub const TAB1: ::tcflag_t = 0x400; -pub const TAB2: ::tcflag_t = 0x800; -pub const TAB3: ::tcflag_t = 0xc00; -pub const CR1: ::tcflag_t = 0x1000; -pub const CR2: ::tcflag_t = 0x2000; -pub const CR3: ::tcflag_t = 0x3000; -pub const FF1: ::tcflag_t = 0x4000; -pub const BS1: ::tcflag_t = 0x8000; -pub const VT1: ::tcflag_t = 0x10000; -pub const VWERASE: usize = 0xa; -pub const VREPRINT: usize = 0xb; -pub const VSUSP: usize = 0xc; -pub const VSTART: usize = 0xd; -pub const VSTOP: usize = 0xe; -pub const VDISCARD: usize = 0x10; -pub const VTIME: usize = 0x7; -pub const IXON: ::tcflag_t = 0x200; -pub const IXOFF: ::tcflag_t = 0x400; -pub const ONLCR: ::tcflag_t = 0x2; -pub const CSIZE: ::tcflag_t = 0x300; -pub const CS6: ::tcflag_t = 0x100; -pub const CS7: ::tcflag_t = 0x200; -pub const CS8: ::tcflag_t = 0x300; -pub const CSTOPB: ::tcflag_t = 0x400; -pub const CREAD: ::tcflag_t = 0x800; -pub const PARENB: ::tcflag_t = 0x1000; -pub const PARODD: ::tcflag_t = 0x2000; -pub const HUPCL: ::tcflag_t = 0x4000; -pub const CLOCAL: ::tcflag_t = 0x8000; -pub const ECHOKE: ::tcflag_t = 0x1; -pub const ECHOE: ::tcflag_t = 0x2; -pub const ECHOK: ::tcflag_t = 0x4; -pub const ECHONL: ::tcflag_t = 0x10; -pub const ECHOPRT: ::tcflag_t = 0x20; -pub const ECHOCTL: ::tcflag_t = 0x40; -pub const ISIG: ::tcflag_t = 0x80; -pub const ICANON: ::tcflag_t = 0x100; -pub const PENDIN: ::tcflag_t = 0x20000000; -pub const NOFLSH: ::tcflag_t = 0x80000000; -pub const VSWTC: usize = 9; -pub const OLCUC: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o001400; -pub const CRDLY: ::tcflag_t = 0o030000; -pub const TABDLY: ::tcflag_t = 0o006000; -pub const BSDLY: ::tcflag_t = 0o100000; -pub const FFDLY: ::tcflag_t = 0o040000; -pub const VTDLY: ::tcflag_t = 0o200000; -pub const XTABS: ::tcflag_t = 0o006000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const CBAUDEX: ::speed_t = 0o000020; -pub const B57600: ::speed_t = 0o0020; -pub const B115200: ::speed_t = 0o0021; -pub const B230400: ::speed_t = 0o0022; -pub const B460800: ::speed_t = 0o0023; -pub const B500000: ::speed_t = 0o0024; -pub const B576000: ::speed_t = 0o0025; -pub const B921600: ::speed_t = 0o0026; -pub const B1000000: ::speed_t = 0o0027; -pub const B1152000: ::speed_t = 0o0030; -pub const B1500000: ::speed_t = 0o0031; -pub const B2000000: ::speed_t = 0o0032; -pub const B2500000: ::speed_t = 0o0033; -pub const B3000000: ::speed_t = 0o0034; -pub const B3500000: ::speed_t = 0o0035; -pub const B4000000: ::speed_t = 0o0036; - -pub const VEOL: usize = 6; -pub const VEOL2: usize = 8; -pub const VMIN: usize = 5; -pub const IEXTEN: ::tcflag_t = 0x400; -pub const TOSTOP: ::tcflag_t = 0x400000; -pub const FLUSHO: ::tcflag_t = 0x800000; -pub const EXTPROC: ::tcflag_t = 0x10000000; - -// Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_query_module: ::c_long = 166; -pub const SYS_poll: ::c_long = 167; -pub const SYS_nfsservctl: ::c_long = 168; -pub const SYS_setresgid: ::c_long = 169; -pub const SYS_getresgid: ::c_long = 170; -pub const SYS_prctl: ::c_long = 171; -pub const SYS_rt_sigreturn: ::c_long = 172; -pub const SYS_rt_sigaction: ::c_long = 173; -pub const SYS_rt_sigprocmask: ::c_long = 174; -pub const SYS_rt_sigpending: ::c_long = 175; -pub const SYS_rt_sigtimedwait: ::c_long = 176; -pub const SYS_rt_sigqueueinfo: ::c_long = 177; -pub const SYS_rt_sigsuspend: ::c_long = 178; -pub const SYS_pread64: ::c_long = 179; -pub const SYS_pwrite64: ::c_long = 180; -pub const SYS_chown: ::c_long = 181; -pub const SYS_getcwd: ::c_long = 182; -pub const SYS_capget: ::c_long = 183; -pub const SYS_capset: ::c_long = 184; -pub const SYS_sigaltstack: ::c_long = 185; -pub const SYS_sendfile: ::c_long = 186; -pub const SYS_getpmsg: ::c_long = 187; /* some people actually want streams */ -pub const SYS_putpmsg: ::c_long = 188; /* some people actually want streams */ -pub const SYS_vfork: ::c_long = 189; -pub const SYS_ugetrlimit: ::c_long = 190; /* SuS compliant getrlimit */ -pub const SYS_readahead: ::c_long = 191; -pub const SYS_pciconfig_read: ::c_long = 198; -pub const SYS_pciconfig_write: ::c_long = 199; -pub const SYS_pciconfig_iobase: ::c_long = 200; -pub const SYS_multiplexer: ::c_long = 201; -pub const SYS_getdents64: ::c_long = 202; -pub const SYS_pivot_root: ::c_long = 203; -pub const SYS_madvise: ::c_long = 205; -pub const SYS_mincore: ::c_long = 206; -pub const SYS_gettid: ::c_long = 207; -pub const SYS_tkill: ::c_long = 208; -pub const SYS_setxattr: ::c_long = 209; -pub const SYS_lsetxattr: ::c_long = 210; -pub const SYS_fsetxattr: ::c_long = 211; -pub const SYS_getxattr: ::c_long = 212; -pub const SYS_lgetxattr: ::c_long = 213; -pub const SYS_fgetxattr: ::c_long = 214; -pub const SYS_listxattr: ::c_long = 215; -pub const SYS_llistxattr: ::c_long = 216; -pub const SYS_flistxattr: ::c_long = 217; -pub const SYS_removexattr: ::c_long = 218; -pub const SYS_lremovexattr: ::c_long = 219; -pub const SYS_fremovexattr: ::c_long = 220; -pub const SYS_futex: ::c_long = 221; -pub const SYS_sched_setaffinity: ::c_long = 222; -pub const SYS_sched_getaffinity: ::c_long = 223; -pub const SYS_tuxcall: ::c_long = 225; -pub const SYS_io_setup: ::c_long = 227; -pub const SYS_io_destroy: ::c_long = 228; -pub const SYS_io_getevents: ::c_long = 229; -pub const SYS_io_submit: ::c_long = 230; -pub const SYS_io_cancel: ::c_long = 231; -pub const SYS_set_tid_address: ::c_long = 232; -pub const SYS_exit_group: ::c_long = 234; -pub const SYS_lookup_dcookie: ::c_long = 235; -pub const SYS_epoll_create: ::c_long = 236; -pub const SYS_epoll_ctl: ::c_long = 237; -pub const SYS_epoll_wait: ::c_long = 238; -pub const SYS_remap_file_pages: ::c_long = 239; -pub const SYS_timer_create: ::c_long = 240; -pub const SYS_timer_settime: ::c_long = 241; -pub const SYS_timer_gettime: ::c_long = 242; -pub const SYS_timer_getoverrun: ::c_long = 243; -pub const SYS_timer_delete: ::c_long = 244; -pub const SYS_clock_settime: ::c_long = 245; -pub const SYS_clock_gettime: ::c_long = 246; -pub const SYS_clock_getres: ::c_long = 247; -pub const SYS_clock_nanosleep: ::c_long = 248; -pub const SYS_swapcontext: ::c_long = 249; -pub const SYS_tgkill: ::c_long = 250; -pub const SYS_utimes: ::c_long = 251; -pub const SYS_statfs64: ::c_long = 252; -pub const SYS_fstatfs64: ::c_long = 253; -pub const SYS_rtas: ::c_long = 255; -pub const SYS_sys_debug_setcontext: ::c_long = 256; -pub const SYS_migrate_pages: ::c_long = 258; -pub const SYS_mbind: ::c_long = 259; -pub const SYS_get_mempolicy: ::c_long = 260; -pub const SYS_set_mempolicy: ::c_long = 261; -pub const SYS_mq_open: ::c_long = 262; -pub const SYS_mq_unlink: ::c_long = 263; -pub const SYS_mq_timedsend: ::c_long = 264; -pub const SYS_mq_timedreceive: ::c_long = 265; -pub const SYS_mq_notify: ::c_long = 266; -pub const SYS_mq_getsetattr: ::c_long = 267; -pub const SYS_kexec_load: ::c_long = 268; -pub const SYS_add_key: ::c_long = 269; -pub const SYS_request_key: ::c_long = 270; -pub const SYS_keyctl: ::c_long = 271; -pub const SYS_waitid: ::c_long = 272; -pub const SYS_ioprio_set: ::c_long = 273; -pub const SYS_ioprio_get: ::c_long = 274; -pub const SYS_inotify_init: ::c_long = 275; -pub const SYS_inotify_add_watch: ::c_long = 276; -pub const SYS_inotify_rm_watch: ::c_long = 277; -pub const SYS_spu_run: ::c_long = 278; -pub const SYS_spu_create: ::c_long = 279; -pub const SYS_pselect6: ::c_long = 280; -pub const SYS_ppoll: ::c_long = 281; -pub const SYS_unshare: ::c_long = 282; -pub const SYS_splice: ::c_long = 283; -pub const SYS_tee: ::c_long = 284; -pub const SYS_vmsplice: ::c_long = 285; -pub const SYS_openat: ::c_long = 286; -pub const SYS_mkdirat: ::c_long = 287; -pub const SYS_mknodat: ::c_long = 288; -pub const SYS_fchownat: ::c_long = 289; -pub const SYS_futimesat: ::c_long = 290; -pub const SYS_newfstatat: ::c_long = 291; -pub const SYS_unlinkat: ::c_long = 292; -pub const SYS_renameat: ::c_long = 293; -pub const SYS_linkat: ::c_long = 294; -pub const SYS_symlinkat: ::c_long = 295; -pub const SYS_readlinkat: ::c_long = 296; -pub const SYS_fchmodat: ::c_long = 297; -pub const SYS_faccessat: ::c_long = 298; -pub const SYS_get_robust_list: ::c_long = 299; -pub const SYS_set_robust_list: ::c_long = 300; -pub const SYS_move_pages: ::c_long = 301; -pub const SYS_getcpu: ::c_long = 302; -pub const SYS_epoll_pwait: ::c_long = 303; -pub const SYS_utimensat: ::c_long = 304; -pub const SYS_signalfd: ::c_long = 305; -pub const SYS_timerfd_create: ::c_long = 306; -pub const SYS_eventfd: ::c_long = 307; -pub const SYS_sync_file_range2: ::c_long = 308; -pub const SYS_fallocate: ::c_long = 309; -pub const SYS_subpage_prot: ::c_long = 310; -pub const SYS_timerfd_settime: ::c_long = 311; -pub const SYS_timerfd_gettime: ::c_long = 312; -pub const SYS_signalfd4: ::c_long = 313; -pub const SYS_eventfd2: ::c_long = 314; -pub const SYS_epoll_create1: ::c_long = 315; -pub const SYS_dup3: ::c_long = 316; -pub const SYS_pipe2: ::c_long = 317; -pub const SYS_inotify_init1: ::c_long = 318; -pub const SYS_perf_event_open: ::c_long = 319; -pub const SYS_preadv: ::c_long = 320; -pub const SYS_pwritev: ::c_long = 321; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; -pub const SYS_fanotify_init: ::c_long = 323; -pub const SYS_fanotify_mark: ::c_long = 324; -pub const SYS_prlimit64: ::c_long = 325; -pub const SYS_socket: ::c_long = 326; -pub const SYS_bind: ::c_long = 327; -pub const SYS_connect: ::c_long = 328; -pub const SYS_listen: ::c_long = 329; -pub const SYS_accept: ::c_long = 330; -pub const SYS_getsockname: ::c_long = 331; -pub const SYS_getpeername: ::c_long = 332; -pub const SYS_socketpair: ::c_long = 333; -pub const SYS_send: ::c_long = 334; -pub const SYS_sendto: ::c_long = 335; -pub const SYS_recv: ::c_long = 336; -pub const SYS_recvfrom: ::c_long = 337; -pub const SYS_shutdown: ::c_long = 338; -pub const SYS_setsockopt: ::c_long = 339; -pub const SYS_getsockopt: ::c_long = 340; -pub const SYS_sendmsg: ::c_long = 341; -pub const SYS_recvmsg: ::c_long = 342; -pub const SYS_recvmmsg: ::c_long = 343; -pub const SYS_accept4: ::c_long = 344; -pub const SYS_name_to_handle_at: ::c_long = 345; -pub const SYS_open_by_handle_at: ::c_long = 346; -pub const SYS_clock_adjtime: ::c_long = 347; -pub const SYS_syncfs: ::c_long = 348; -pub const SYS_sendmmsg: ::c_long = 349; -pub const SYS_setns: ::c_long = 350; -pub const SYS_process_vm_readv: ::c_long = 351; -pub const SYS_process_vm_writev: ::c_long = 352; -pub const SYS_finit_module: ::c_long = 353; -pub const SYS_kcmp: ::c_long = 354; -pub const SYS_sched_setattr: ::c_long = 355; -pub const SYS_sched_getattr: ::c_long = 356; -pub const SYS_renameat2: ::c_long = 357; -pub const SYS_seccomp: ::c_long = 358; -pub const SYS_getrandom: ::c_long = 359; -pub const SYS_memfd_create: ::c_long = 360; -pub const SYS_bpf: ::c_long = 361; -pub const SYS_execveat: ::c_long = 362; -pub const SYS_switch_endian: ::c_long = 363; -pub const SYS_userfaultfd: ::c_long = 364; -pub const SYS_membarrier: ::c_long = 365; -pub const SYS_mlock2: ::c_long = 378; -pub const SYS_copy_file_range: ::c_long = 379; -pub const SYS_preadv2: ::c_long = 380; -pub const SYS_pwritev2: ::c_long = 381; -pub const SYS_kexec_file_load: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_rseq: ::c_long = 387; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -extern "C" { - pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs deleted file mode 100644 index 48d152a57..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs +++ /dev/null @@ -1,44 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - pub struct ucontext_t { - pub __uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct mcontext_t { - pub __gregs: [::c_ulong; 32], - pub __fpregs: __riscv_mc_fp_state, - } - - #[allow(missing_debug_implementations)] - pub union __riscv_mc_fp_state { - pub __f: __riscv_mc_f_ext_state, - pub __d: __riscv_mc_d_ext_state, - pub __q: __riscv_mc_q_ext_state, - } - - #[allow(missing_debug_implementations)] - pub struct __riscv_mc_f_ext_state { - pub __f: [::c_uint; 32], - pub __fcsr: ::c_uint, - } - - #[allow(missing_debug_implementations)] - pub struct __riscv_mc_d_ext_state { - pub __f: [::c_ulonglong; 32], - pub __fcsr: ::c_uint, - } - - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct __riscv_mc_q_ext_state { - pub __f: [::c_ulonglong; 64], - pub __fcsr: ::c_uint, - pub __glibc_reserved: [::c_uint; 3], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs deleted file mode 100644 index c65a562ac..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ /dev/null @@ -1,851 +0,0 @@ -//! RISC-V-specific definitions for 64-bit linux-like values - -pub type c_char = u8; -pub type c_long = i64; -pub type c_ulong = u64; -pub type wchar_t = ::c_int; - -pub type nlink_t = ::c_uint; -pub type blksize_t = ::c_int; -pub type fsblkcnt64_t = ::c_ulong; -pub type fsfilcnt64_t = ::c_ulong; -pub type suseconds_t = i64; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; - -s! { - pub struct pthread_attr_t { - __size: [::c_ulong; 7], - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_int; 2usize], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_int; 2], - } - - pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], - } - - pub struct statfs64 { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_favail: ::fsfilcnt64_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [u64; 0], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused5: ::c_ulong, - __unused6: ::c_ulong, - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct user_regs_struct { - pub pc: ::c_ulong, - pub ra: ::c_ulong, - pub sp: ::c_ulong, - pub gp: ::c_ulong, - pub tp: ::c_ulong, - pub t0: ::c_ulong, - pub t1: ::c_ulong, - pub t2: ::c_ulong, - pub s0: ::c_ulong, - pub s1: ::c_ulong, - pub a0: ::c_ulong, - pub a1: ::c_ulong, - pub a2: ::c_ulong, - pub a3: ::c_ulong, - pub a4: ::c_ulong, - pub a5: ::c_ulong, - pub a6: ::c_ulong, - pub a7: ::c_ulong, - pub s2: ::c_ulong, - pub s3: ::c_ulong, - pub s4: ::c_ulong, - pub s5: ::c_ulong, - pub s6: ::c_ulong, - pub s7: ::c_ulong, - pub s8: ::c_ulong, - pub s9: ::c_ulong, - pub s10: ::c_ulong, - pub s11: ::c_ulong, - pub t3: ::c_ulong, - pub t4: ::c_ulong, - pub t5: ::c_ulong, - pub t6: ::c_ulong, - } -} - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 1052672; -pub const O_NOATIME: ::c_int = 262144; -pub const O_PATH: ::c_int = 2097152; -pub const O_TMPFILE: ::c_int = 4259840; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 256; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SA_ONSTACK: ::c_int = 134217728; -pub const SA_SIGINFO: ::c_int = 4; -pub const SA_NOCLDWAIT: ::c_int = 2; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; -pub const POLLWRNORM: ::c_short = 256; -pub const POLLWRBAND: ::c_short = 512; -pub const O_ASYNC: ::c_int = 8192; -pub const O_NDELAY: ::c_int = 2048; -pub const PTRACE_DETACH: ::c_uint = 17; -pub const EFD_NONBLOCK: ::c_int = 2048; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; -pub const SFD_NONBLOCK: ::c_int = 2048; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; -pub const SFD_CLOEXEC: ::c_int = 524288; -pub const NCCS: usize = 32; -pub const O_TRUNC: ::c_int = 512; -pub const O_CLOEXEC: ::c_int = 524288; -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; -pub const SA_NODEFER: ::c_int = 1073741824; -pub const SA_RESETHAND: ::c_int = -2147483648; -pub const SA_RESTART: ::c_int = 268435456; -pub const SA_NOCLDSTOP: ::c_int = 1; -pub const EPOLL_CLOEXEC: ::c_int = 524288; -pub const EFD_CLOEXEC: ::c_int = 524288; -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const O_DIRECT: ::c_int = 16384; -pub const O_DIRECTORY: ::c_int = 65536; -pub const O_NOFOLLOW: ::c_int = 131072; -pub const MAP_HUGETLB: ::c_int = 262144; -pub const MAP_LOCKED: ::c_int = 8192; -pub const MAP_NORESERVE: ::c_int = 16384; -pub const MAP_ANON: ::c_int = 32; -pub const MAP_ANONYMOUS: ::c_int = 32; -pub const MAP_DENYWRITE: ::c_int = 2048; -pub const MAP_EXECUTABLE: ::c_int = 4096; -pub const MAP_POPULATE: ::c_int = 32768; -pub const MAP_NONBLOCK: ::c_int = 65536; -pub const MAP_STACK: ::c_int = 131072; -pub const MAP_SYNC: ::c_int = 0x080000; -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const PTRACE_GETFPREGS: ::c_uint = 14; -pub const PTRACE_SETFPREGS: ::c_uint = 15; -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_GETREGS: ::c_uint = 12; -pub const PTRACE_SETREGS: ::c_uint = 13; -pub const MCL_CURRENT: ::c_int = 1; -pub const MCL_FUTURE: ::c_int = 2; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 4111; -pub const TAB1: ::tcflag_t = 2048; -pub const TAB2: ::tcflag_t = 4096; -pub const TAB3: ::tcflag_t = 6144; -pub const CR1: ::tcflag_t = 512; -pub const CR2: ::tcflag_t = 1024; -pub const CR3: ::tcflag_t = 1536; -pub const FF1: ::tcflag_t = 32768; -pub const BS1: ::tcflag_t = 8192; -pub const VT1: ::tcflag_t = 16384; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 1024; -pub const IXOFF: ::tcflag_t = 4096; -pub const ONLCR: ::tcflag_t = 4; -pub const CSIZE: ::tcflag_t = 48; -pub const CS6: ::tcflag_t = 16; -pub const CS7: ::tcflag_t = 32; -pub const CS8: ::tcflag_t = 48; -pub const CSTOPB: ::tcflag_t = 64; -pub const CREAD: ::tcflag_t = 128; -pub const PARENB: ::tcflag_t = 256; -pub const PARODD: ::tcflag_t = 512; -pub const HUPCL: ::tcflag_t = 1024; -pub const CLOCAL: ::tcflag_t = 2048; -pub const ECHOKE: ::tcflag_t = 2048; -pub const ECHOE: ::tcflag_t = 16; -pub const ECHOK: ::tcflag_t = 32; -pub const ECHONL: ::tcflag_t = 64; -pub const ECHOPRT: ::tcflag_t = 1024; -pub const ECHOCTL: ::tcflag_t = 512; -pub const ISIG: ::tcflag_t = 1; -pub const ICANON: ::tcflag_t = 2; -pub const PENDIN: ::tcflag_t = 16384; -pub const NOFLSH: ::tcflag_t = 128; -pub const CIBAUD: ::tcflag_t = 269418496; -pub const CBAUDEX: ::tcflag_t = 4096; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 2; -pub const NLDLY: ::tcflag_t = 256; -pub const CRDLY: ::tcflag_t = 1536; -pub const TABDLY: ::tcflag_t = 6144; -pub const BSDLY: ::tcflag_t = 8192; -pub const FFDLY: ::tcflag_t = 32768; -pub const VTDLY: ::tcflag_t = 16384; -pub const XTABS: ::tcflag_t = 6144; -pub const B0: ::speed_t = 0; -pub const B50: ::speed_t = 1; -pub const B75: ::speed_t = 2; -pub const B110: ::speed_t = 3; -pub const B134: ::speed_t = 4; -pub const B150: ::speed_t = 5; -pub const B200: ::speed_t = 6; -pub const B300: ::speed_t = 7; -pub const B600: ::speed_t = 8; -pub const B1200: ::speed_t = 9; -pub const B1800: ::speed_t = 10; -pub const B2400: ::speed_t = 11; -pub const B4800: ::speed_t = 12; -pub const B9600: ::speed_t = 13; -pub const B19200: ::speed_t = 14; -pub const B38400: ::speed_t = 15; -pub const EXTA: ::speed_t = 14; -pub const EXTB: ::speed_t = 15; -pub const B57600: ::speed_t = 4097; -pub const B115200: ::speed_t = 4098; -pub const B230400: ::speed_t = 4099; -pub const B460800: ::speed_t = 4100; -pub const B500000: ::speed_t = 4101; -pub const B576000: ::speed_t = 4102; -pub const B921600: ::speed_t = 4103; -pub const B1000000: ::speed_t = 4104; -pub const B1152000: ::speed_t = 4105; -pub const B1500000: ::speed_t = 4106; -pub const B2000000: ::speed_t = 4107; -pub const B2500000: ::speed_t = 4108; -pub const B3000000: ::speed_t = 4109; -pub const B3500000: ::speed_t = 4110; -pub const B4000000: ::speed_t = 4111; -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 32768; -pub const TOSTOP: ::tcflag_t = 256; -pub const FLUSHO: ::tcflag_t = 4096; -pub const EXTPROC: ::tcflag_t = 65536; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -pub const NGREG: usize = 32; -pub const REG_PC: usize = 0; -pub const REG_RA: usize = 1; -pub const REG_SP: usize = 2; -pub const REG_TP: usize = 4; -pub const REG_S0: usize = 8; -pub const REG_S1: usize = 9; -pub const REG_A0: usize = 10; -pub const REG_S2: usize = 18; -pub const REG_NARGS: usize = 8; - -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_close: ::c_long = 57; -pub const SYS_fstat: ::c_long = 80; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_brk: ::c_long = 214; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_dup: ::c_long = 23; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_sendfile: ::c_long = 71; -pub const SYS_socket: ::c_long = 198; -pub const SYS_connect: ::c_long = 203; -pub const SYS_accept: ::c_long = 202; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_exit: ::c_long = 93; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_kill: ::c_long = 129; -pub const SYS_uname: ::c_long = 160; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semop: ::c_long = 193; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_flock: ::c_long = 32; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_umask: ::c_long = 166; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_times: ::c_long = 153; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_personality: ::c_long = 92; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_sync: ::c_long = 81; -pub const SYS_acct: ::c_long = 89; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_mount: ::c_long = 40; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_futex: ::c_long = 98; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_fadvise64: ::c_long = 223; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_openat: ::c_long = 56; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_newfstatat: ::c_long = 79; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_setns: ::c_long = 268; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_rseq: ::c_long = 293; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/s390x.rs deleted file mode 100644 index c2c4f31cf..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ /dev/null @@ -1,963 +0,0 @@ -//! s390x - -use pthread_mutex_t; - -pub type blksize_t = i64; -pub type c_char = u8; -pub type c_long = i64; -pub type c_ulong = u64; -pub type nlink_t = u64; -pub type suseconds_t = i64; -pub type wchar_t = i32; -pub type greg_t = u64; -pub type __u64 = u64; -pub type __s64 = i64; - -s! { - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - __glibc_reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - pub sa_mask: ::sigset_t, - } - - pub struct statfs { - pub f_type: ::c_uint, - pub f_bsize: ::c_uint, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_uint, - pub f_frsize: ::c_uint, - pub f_flags: ::c_uint, - f_spare: [::c_uint; 4], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - _pad: ::c_int, - _pad2: [::c_long; 14], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - st_pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - __glibc_reserved: [::c_long; 3], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - st_pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - __glibc_reserved: [::c_long; 3], - } - - pub struct pthread_attr_t { - __size: [::c_ulong; 7] - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_ushort, - __pad1: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct __psw_t { - pub mask: u64, - pub addr: u64, - } - - pub struct fpregset_t { - pub fpc: u32, - __pad: u32, - pub fprs: [fpreg_t; 16], - } - - pub struct mcontext_t { - pub psw: __psw_t, - pub gregs: [u64; 16], - pub aregs: [u32; 16], - pub fpregs: fpregset_t, - } - - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, - } - - pub struct statfs64 { - pub f_type: ::c_uint, - pub f_bsize: ::c_uint, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_uint, - pub f_frsize: ::c_uint, - pub f_flags: ::c_uint, - pub f_spare: [::c_uint; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } -} - -s_no_extra_traits! { - // FIXME: This is actually a union. - pub struct fpreg_t { - pub d: ::c_double, - // f: ::c_float, - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for fpreg_t { - fn eq(&self, other: &fpreg_t) -> bool { - self.d == other.d - } - } - - impl Eq for fpreg_t {} - - impl ::fmt::Debug for fpreg_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("fpreg_t") - .field("d", &self.d) - .finish() - } - } - - impl ::hash::Hash for fpreg_t { - fn hash(&self, state: &mut H) { - let d: u64 = unsafe { ::mem::transmute(self.d) }; - d.hash(state); - } - } - } -} - -pub const POSIX_FADV_DONTNEED: ::c_int = 6; -pub const POSIX_FADV_NOREUSE: ::c_int = 7; - -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const SFD_CLOEXEC: ::c_int = 0x080000; - -pub const NCCS: usize = 32; - -pub const O_TRUNC: ::c_int = 512; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_CLOEXEC: ::c_int = 0x80000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; - -align_const! { - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} - -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNREFUSED: ::c_int = 111; -pub const ECONNRESET: ::c_int = 104; -pub const EDEADLK: ::c_int = 35; -pub const ENOSYS: ::c_int = 38; -pub const ENOTCONN: ::c_int = 107; -pub const ETIMEDOUT: ::c_int = 110; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NONBLOCK: ::c_int = 2048; -pub const SA_NOCLDWAIT: ::c_int = 2; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 4; -pub const SIGBUS: ::c_int = 7; -pub const SIGSTKSZ: ::size_t = 0x2000; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const SIG_SETMASK: ::c_int = 2; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const O_NOCTTY: ::c_int = 256; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLOCK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; - -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; - -pub const EXTPROC: ::tcflag_t = 0x00010000; - -pub const PTRACE_DETACH: ::c_uint = 17; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const EFD_NONBLOCK: ::c_int = 0x800; - -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const SFD_NONBLOCK: ::c_int = 0x0800; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const VTIME: usize = 5; -pub const VSWTC: usize = 7; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VSUSP: usize = 10; -pub const VREPRINT: usize = 12; -pub const VDISCARD: usize = 13; -pub const VWERASE: usize = 14; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const ONLCR: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const FF1: ::tcflag_t = 0x00008000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const CBAUD: ::speed_t = 0o010017; -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const CSIZE: ::tcflag_t = 0o000060; -pub const CS6: ::tcflag_t = 0o000020; -pub const CS7: ::tcflag_t = 0o000040; -pub const CS8: ::tcflag_t = 0o000060; -pub const CSTOPB: ::tcflag_t = 0o000100; -pub const CREAD: ::tcflag_t = 0o000200; -pub const PARENB: ::tcflag_t = 0o000400; -pub const PARODD: ::tcflag_t = 0o001000; -pub const HUPCL: ::tcflag_t = 0o002000; -pub const CLOCAL: ::tcflag_t = 0o004000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; -pub const CIBAUD: ::tcflag_t = 0o02003600000; - -pub const ISIG: ::tcflag_t = 0o000001; -pub const ICANON: ::tcflag_t = 0o000002; -pub const XCASE: ::tcflag_t = 0o000004; -pub const ECHOE: ::tcflag_t = 0o000020; -pub const ECHOK: ::tcflag_t = 0o000040; -pub const ECHONL: ::tcflag_t = 0o000100; -pub const NOFLSH: ::tcflag_t = 0o000200; -pub const ECHOCTL: ::tcflag_t = 0o001000; -pub const ECHOPRT: ::tcflag_t = 0o002000; -pub const ECHOKE: ::tcflag_t = 0o004000; -pub const PENDIN: ::tcflag_t = 0o040000; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const IXON: ::tcflag_t = 0o002000; -pub const IXOFF: ::tcflag_t = 0o010000; - -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_restart_syscall: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_signal: ::c_long = 48; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_lookup_dcookie: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ -pub const SYS_getdents: ::c_long = 141; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_query_module: ::c_long = 167; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_getpmsg: ::c_long = 188; -pub const SYS_putpmsg: ::c_long = 189; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_pivot_root: ::c_long = 217; -pub const SYS_mincore: ::c_long = 218; -pub const SYS_madvise: ::c_long = 219; -pub const SYS_getdents64: ::c_long = 220; -pub const SYS_readahead: ::c_long = 222; -pub const SYS_setxattr: ::c_long = 224; -pub const SYS_lsetxattr: ::c_long = 225; -pub const SYS_fsetxattr: ::c_long = 226; -pub const SYS_getxattr: ::c_long = 227; -pub const SYS_lgetxattr: ::c_long = 228; -pub const SYS_fgetxattr: ::c_long = 229; -pub const SYS_listxattr: ::c_long = 230; -pub const SYS_llistxattr: ::c_long = 231; -pub const SYS_flistxattr: ::c_long = 232; -pub const SYS_removexattr: ::c_long = 233; -pub const SYS_lremovexattr: ::c_long = 234; -pub const SYS_fremovexattr: ::c_long = 235; -pub const SYS_gettid: ::c_long = 236; -pub const SYS_tkill: ::c_long = 237; -pub const SYS_futex: ::c_long = 238; -pub const SYS_sched_setaffinity: ::c_long = 239; -pub const SYS_sched_getaffinity: ::c_long = 240; -pub const SYS_tgkill: ::c_long = 241; -pub const SYS_io_setup: ::c_long = 243; -pub const SYS_io_destroy: ::c_long = 244; -pub const SYS_io_getevents: ::c_long = 245; -pub const SYS_io_submit: ::c_long = 246; -pub const SYS_io_cancel: ::c_long = 247; -pub const SYS_exit_group: ::c_long = 248; -pub const SYS_epoll_create: ::c_long = 249; -pub const SYS_epoll_ctl: ::c_long = 250; -pub const SYS_epoll_wait: ::c_long = 251; -pub const SYS_set_tid_address: ::c_long = 252; -pub const SYS_fadvise64: ::c_long = 253; -pub const SYS_timer_create: ::c_long = 254; -pub const SYS_timer_settime: ::c_long = 255; -pub const SYS_timer_gettime: ::c_long = 256; -pub const SYS_timer_getoverrun: ::c_long = 257; -pub const SYS_timer_delete: ::c_long = 258; -pub const SYS_clock_settime: ::c_long = 259; -pub const SYS_clock_gettime: ::c_long = 260; -pub const SYS_clock_getres: ::c_long = 261; -pub const SYS_clock_nanosleep: ::c_long = 262; -pub const SYS_statfs64: ::c_long = 265; -pub const SYS_fstatfs64: ::c_long = 266; -pub const SYS_remap_file_pages: ::c_long = 267; -pub const SYS_mbind: ::c_long = 268; -pub const SYS_get_mempolicy: ::c_long = 269; -pub const SYS_set_mempolicy: ::c_long = 270; -pub const SYS_mq_open: ::c_long = 271; -pub const SYS_mq_unlink: ::c_long = 272; -pub const SYS_mq_timedsend: ::c_long = 273; -pub const SYS_mq_timedreceive: ::c_long = 274; -pub const SYS_mq_notify: ::c_long = 275; -pub const SYS_mq_getsetattr: ::c_long = 276; -pub const SYS_kexec_load: ::c_long = 277; -pub const SYS_add_key: ::c_long = 278; -pub const SYS_request_key: ::c_long = 279; -pub const SYS_keyctl: ::c_long = 280; -pub const SYS_waitid: ::c_long = 281; -pub const SYS_ioprio_set: ::c_long = 282; -pub const SYS_ioprio_get: ::c_long = 283; -pub const SYS_inotify_init: ::c_long = 284; -pub const SYS_inotify_add_watch: ::c_long = 285; -pub const SYS_inotify_rm_watch: ::c_long = 286; -pub const SYS_migrate_pages: ::c_long = 287; -pub const SYS_openat: ::c_long = 288; -pub const SYS_mkdirat: ::c_long = 289; -pub const SYS_mknodat: ::c_long = 290; -pub const SYS_fchownat: ::c_long = 291; -pub const SYS_futimesat: ::c_long = 292; -pub const SYS_unlinkat: ::c_long = 294; -pub const SYS_renameat: ::c_long = 295; -pub const SYS_linkat: ::c_long = 296; -pub const SYS_symlinkat: ::c_long = 297; -pub const SYS_readlinkat: ::c_long = 298; -pub const SYS_fchmodat: ::c_long = 299; -pub const SYS_faccessat: ::c_long = 300; -pub const SYS_pselect6: ::c_long = 301; -pub const SYS_ppoll: ::c_long = 302; -pub const SYS_unshare: ::c_long = 303; -pub const SYS_set_robust_list: ::c_long = 304; -pub const SYS_get_robust_list: ::c_long = 305; -pub const SYS_splice: ::c_long = 306; -pub const SYS_sync_file_range: ::c_long = 307; -pub const SYS_tee: ::c_long = 308; -pub const SYS_vmsplice: ::c_long = 309; -pub const SYS_move_pages: ::c_long = 310; -pub const SYS_getcpu: ::c_long = 311; -pub const SYS_epoll_pwait: ::c_long = 312; -pub const SYS_utimes: ::c_long = 313; -pub const SYS_fallocate: ::c_long = 314; -pub const SYS_utimensat: ::c_long = 315; -pub const SYS_signalfd: ::c_long = 316; -pub const SYS_timerfd: ::c_long = 317; -pub const SYS_eventfd: ::c_long = 318; -pub const SYS_timerfd_create: ::c_long = 319; -pub const SYS_timerfd_settime: ::c_long = 320; -pub const SYS_timerfd_gettime: ::c_long = 321; -pub const SYS_signalfd4: ::c_long = 322; -pub const SYS_eventfd2: ::c_long = 323; -pub const SYS_inotify_init1: ::c_long = 324; -pub const SYS_pipe2: ::c_long = 325; -pub const SYS_dup3: ::c_long = 326; -pub const SYS_epoll_create1: ::c_long = 327; -pub const SYS_preadv: ::c_long = 328; -pub const SYS_pwritev: ::c_long = 329; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 330; -pub const SYS_perf_event_open: ::c_long = 331; -pub const SYS_fanotify_init: ::c_long = 332; -pub const SYS_fanotify_mark: ::c_long = 333; -pub const SYS_prlimit64: ::c_long = 334; -pub const SYS_name_to_handle_at: ::c_long = 335; -pub const SYS_open_by_handle_at: ::c_long = 336; -pub const SYS_clock_adjtime: ::c_long = 337; -pub const SYS_syncfs: ::c_long = 338; -pub const SYS_setns: ::c_long = 339; -pub const SYS_process_vm_readv: ::c_long = 340; -pub const SYS_process_vm_writev: ::c_long = 341; -pub const SYS_s390_runtime_instr: ::c_long = 342; -pub const SYS_kcmp: ::c_long = 343; -pub const SYS_finit_module: ::c_long = 344; -pub const SYS_sched_setattr: ::c_long = 345; -pub const SYS_sched_getattr: ::c_long = 346; -pub const SYS_renameat2: ::c_long = 347; -pub const SYS_seccomp: ::c_long = 348; -pub const SYS_getrandom: ::c_long = 349; -pub const SYS_memfd_create: ::c_long = 350; -pub const SYS_bpf: ::c_long = 351; -pub const SYS_s390_pci_mmio_write: ::c_long = 352; -pub const SYS_s390_pci_mmio_read: ::c_long = 353; -pub const SYS_execveat: ::c_long = 354; -pub const SYS_userfaultfd: ::c_long = 355; -pub const SYS_membarrier: ::c_long = 356; -pub const SYS_recvmmsg: ::c_long = 357; -pub const SYS_sendmmsg: ::c_long = 358; -pub const SYS_socket: ::c_long = 359; -pub const SYS_socketpair: ::c_long = 360; -pub const SYS_bind: ::c_long = 361; -pub const SYS_connect: ::c_long = 362; -pub const SYS_listen: ::c_long = 363; -pub const SYS_accept4: ::c_long = 364; -pub const SYS_getsockopt: ::c_long = 365; -pub const SYS_setsockopt: ::c_long = 366; -pub const SYS_getsockname: ::c_long = 367; -pub const SYS_getpeername: ::c_long = 368; -pub const SYS_sendto: ::c_long = 369; -pub const SYS_sendmsg: ::c_long = 370; -pub const SYS_recvfrom: ::c_long = 371; -pub const SYS_recvmsg: ::c_long = 372; -pub const SYS_shutdown: ::c_long = 373; -pub const SYS_mlock2: ::c_long = 374; -pub const SYS_copy_file_range: ::c_long = 375; -pub const SYS_preadv2: ::c_long = 376; -pub const SYS_pwritev2: ::c_long = 377; -pub const SYS_lchown: ::c_long = 198; -pub const SYS_setuid: ::c_long = 213; -pub const SYS_getuid: ::c_long = 199; -pub const SYS_setgid: ::c_long = 214; -pub const SYS_getgid: ::c_long = 200; -pub const SYS_geteuid: ::c_long = 201; -pub const SYS_setreuid: ::c_long = 203; -pub const SYS_setregid: ::c_long = 204; -pub const SYS_getrlimit: ::c_long = 191; -pub const SYS_getgroups: ::c_long = 205; -pub const SYS_fchown: ::c_long = 207; -pub const SYS_setresuid: ::c_long = 208; -pub const SYS_setresgid: ::c_long = 210; -pub const SYS_getresgid: ::c_long = 211; -pub const SYS_select: ::c_long = 142; -pub const SYS_getegid: ::c_long = 202; -pub const SYS_setgroups: ::c_long = 206; -pub const SYS_getresuid: ::c_long = 209; -pub const SYS_chown: ::c_long = 212; -pub const SYS_setfsuid: ::c_long = 215; -pub const SYS_setfsgid: ::c_long = 216; -pub const SYS_newfstatat: ::c_long = 293; -pub const SYS_statx: ::c_long = 379; -pub const SYS_rseq: ::c_long = 383; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -extern "C" { - - pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn getcontext(ucp: *mut ::ucontext_t) -> ::c_int; - pub fn setcontext(ucp: *const ::ucontext_t) -> ::c_int; - pub fn makecontext(ucp: *mut ::ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ::ucontext_t, ucp: *const ::ucontext_t) -> ::c_int; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs deleted file mode 100644 index 29d1e1c7b..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [i64; 4] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs deleted file mode 100644 index 2427c7a0a..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ /dev/null @@ -1,930 +0,0 @@ -//! SPARC64-specific definitions for 64-bit linux-like values - -use pthread_mutex_t; - -pub type c_long = i64; -pub type c_ulong = u64; -pub type c_char = i8; -pub type wchar_t = i32; -pub type nlink_t = u32; -pub type blksize_t = i64; -pub type suseconds_t = i32; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; - -s! { - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - #[cfg(target_arch = "sparc64")] - __reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - __reserved: ::c_short, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct stat { - pub st_dev: ::dev_t, - __pad0: u64, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad1: u64, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_long; 2], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - __pad0: u64, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: ::c_int, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __reserved: [::c_long; 2], - } - - pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct pthread_attr_t { - __size: [u64; 7] - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - __pad0: u16, - pub __seq: ::c_ushort, - __unused1: ::c_ulonglong, - __unused2: ::c_ulonglong, - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_segsz: ::size_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __reserved1: ::c_ulong, - __reserved2: ::c_ulong - } -} - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; - -pub const O_APPEND: ::c_int = 0x8; -pub const O_CREAT: ::c_int = 0x200; -pub const O_EXCL: ::c_int = 0x800; -pub const O_NOCTTY: ::c_int = 0x8000; -pub const O_NONBLOCK: ::c_int = 0x4000; -pub const O_SYNC: ::c_int = 0x802000; -pub const O_RSYNC: ::c_int = 0x802000; -pub const O_DSYNC: ::c_int = 0x2000; -pub const O_FSYNC: ::c_int = 0x802000; -pub const O_NOATIME: ::c_int = 0x200000; -pub const O_PATH: ::c_int = 0x1000000; -pub const O_TMPFILE: ::c_int = 0x2000000 | O_DIRECTORY; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0200; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLK: ::c_int = 78; -pub const ENAMETOOLONG: ::c_int = 63; -pub const ENOLCK: ::c_int = 79; -pub const ENOSYS: ::c_int = 90; -pub const ENOTEMPTY: ::c_int = 66; -pub const ELOOP: ::c_int = 62; -pub const ENOMSG: ::c_int = 75; -pub const EIDRM: ::c_int = 77; -pub const ECHRNG: ::c_int = 94; -pub const EL2NSYNC: ::c_int = 95; -pub const EL3HLT: ::c_int = 96; -pub const EL3RST: ::c_int = 97; -pub const ELNRNG: ::c_int = 98; -pub const EUNATCH: ::c_int = 99; -pub const ENOCSI: ::c_int = 100; -pub const EL2HLT: ::c_int = 101; -pub const EBADE: ::c_int = 102; -pub const EBADR: ::c_int = 103; -pub const EXFULL: ::c_int = 104; -pub const ENOANO: ::c_int = 105; -pub const EBADRQC: ::c_int = 106; -pub const EBADSLT: ::c_int = 107; -pub const EMULTIHOP: ::c_int = 87; -pub const EOVERFLOW: ::c_int = 92; -pub const ENOTUNIQ: ::c_int = 115; -pub const EBADFD: ::c_int = 93; -pub const EBADMSG: ::c_int = 76; -pub const EREMCHG: ::c_int = 89; -pub const ELIBACC: ::c_int = 114; -pub const ELIBBAD: ::c_int = 112; -pub const ELIBSCN: ::c_int = 124; -pub const ELIBMAX: ::c_int = 123; -pub const ELIBEXEC: ::c_int = 110; -pub const EILSEQ: ::c_int = 122; -pub const ERESTART: ::c_int = 116; -pub const ESTRPIPE: ::c_int = 91; -pub const EUSERS: ::c_int = 68; -pub const ENOTSOCK: ::c_int = 38; -pub const EDESTADDRREQ: ::c_int = 39; -pub const EMSGSIZE: ::c_int = 40; -pub const EPROTOTYPE: ::c_int = 41; -pub const ENOPROTOOPT: ::c_int = 42; -pub const EPROTONOSUPPORT: ::c_int = 43; -pub const ESOCKTNOSUPPORT: ::c_int = 44; -pub const EOPNOTSUPP: ::c_int = 45; -pub const EPFNOSUPPORT: ::c_int = 46; -pub const EAFNOSUPPORT: ::c_int = 47; -pub const EADDRINUSE: ::c_int = 48; -pub const EADDRNOTAVAIL: ::c_int = 49; -pub const ENETDOWN: ::c_int = 50; -pub const ENETUNREACH: ::c_int = 51; -pub const ENETRESET: ::c_int = 52; -pub const ECONNABORTED: ::c_int = 53; -pub const ECONNRESET: ::c_int = 54; -pub const ENOBUFS: ::c_int = 55; -pub const EISCONN: ::c_int = 56; -pub const ENOTCONN: ::c_int = 57; -pub const ESHUTDOWN: ::c_int = 58; -pub const ETOOMANYREFS: ::c_int = 59; -pub const ETIMEDOUT: ::c_int = 60; -pub const ECONNREFUSED: ::c_int = 61; -pub const EHOSTDOWN: ::c_int = 64; -pub const EHOSTUNREACH: ::c_int = 65; -pub const EALREADY: ::c_int = 37; -pub const EINPROGRESS: ::c_int = 36; -pub const ESTALE: ::c_int = 70; -pub const EDQUOT: ::c_int = 69; -pub const ENOMEDIUM: ::c_int = 125; -pub const EMEDIUMTYPE: ::c_int = 126; -pub const ECANCELED: ::c_int = 127; -pub const ENOKEY: ::c_int = 128; -pub const EKEYEXPIRED: ::c_int = 129; -pub const EKEYREVOKED: ::c_int = 130; -pub const EKEYREJECTED: ::c_int = 131; -pub const EOWNERDEAD: ::c_int = 132; -pub const ENOTRECOVERABLE: ::c_int = 133; -pub const EHWPOISON: ::c_int = 135; -pub const ERFKILL: ::c_int = 134; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SA_ONSTACK: ::c_int = 1; -pub const SA_SIGINFO: ::c_int = 0x200; -pub const SA_NOCLDWAIT: ::c_int = 0x100; - -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 20; -pub const SIGBUS: ::c_int = 10; -pub const SIGUSR1: ::c_int = 30; -pub const SIGUSR2: ::c_int = 31; -pub const SIGCONT: ::c_int = 19; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGURG: ::c_int = 16; -pub const SIGIO: ::c_int = 23; -pub const SIGSYS: ::c_int = 12; -pub const SIGPOLL: ::c_int = 23; -pub const SIGPWR: ::c_int = 29; -pub const SIG_SETMASK: ::c_int = 4; -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; - -pub const POLLWRNORM: ::c_short = 4; -pub const POLLWRBAND: ::c_short = 0x100; - -pub const O_ASYNC: ::c_int = 0x40; -pub const O_NDELAY: ::c_int = 0x4004; - -pub const PTRACE_DETACH: ::c_uint = 17; - -pub const EFD_NONBLOCK: ::c_int = 0x4000; - -pub const F_GETLK: ::c_int = 7; -pub const F_GETOWN: ::c_int = 5; -pub const F_SETOWN: ::c_int = 6; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const F_RDLCK: ::c_int = 1; -pub const F_WRLCK: ::c_int = 2; -pub const F_UNLCK: ::c_int = 3; - -pub const SFD_NONBLOCK: ::c_int = 0x4000; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const SFD_CLOEXEC: ::c_int = 0x400000; - -pub const NCCS: usize = 17; -pub const O_TRUNC: ::c_int = 0x400; - -pub const O_CLOEXEC: ::c_int = 0x400000; - -pub const EBFONT: ::c_int = 109; -pub const ENOSTR: ::c_int = 72; -pub const ENODATA: ::c_int = 111; -pub const ETIME: ::c_int = 73; -pub const ENOSR: ::c_int = 74; -pub const ENONET: ::c_int = 80; -pub const ENOPKG: ::c_int = 113; -pub const EREMOTE: ::c_int = 71; -pub const ENOLINK: ::c_int = 82; -pub const EADV: ::c_int = 83; -pub const ESRMNT: ::c_int = 84; -pub const ECOMM: ::c_int = 85; -pub const EPROTO: ::c_int = 86; -pub const EDOTDOT: ::c_int = 88; - -pub const SA_NODEFER: ::c_int = 0x20; -pub const SA_RESETHAND: ::c_int = 0x4; -pub const SA_RESTART: ::c_int = 0x2; -pub const SA_NOCLDSTOP: ::c_int = 0x00000008; - -pub const EPOLL_CLOEXEC: ::c_int = 0x400000; - -pub const EFD_CLOEXEC: ::c_int = 0x400000; -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; - -align_const! { - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} - -pub const O_DIRECTORY: ::c_int = 0o200000; -pub const O_NOFOLLOW: ::c_int = 0o400000; -pub const O_DIRECT: ::c_int = 0x100000; - -pub const MAP_LOCKED: ::c_int = 0x0100; -pub const MAP_NORESERVE: ::c_int = 0x00040; - -pub const EDEADLOCK: ::c_int = 108; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; - -pub const MCL_CURRENT: ::c_int = 0x2000; -pub const MCL_FUTURE: ::c_int = 0x4000; - -pub const SIGSTKSZ: ::size_t = 16384; -pub const MINSIGSTKSZ: ::size_t = 4096; -pub const CBAUD: ::tcflag_t = 0x0000100f; -pub const TAB1: ::tcflag_t = 0x800; -pub const TAB2: ::tcflag_t = 0x1000; -pub const TAB3: ::tcflag_t = 0x1800; -pub const CR1: ::tcflag_t = 0x200; -pub const CR2: ::tcflag_t = 0x400; -pub const CR3: ::tcflag_t = 0x600; -pub const FF1: ::tcflag_t = 0x8000; -pub const BS1: ::tcflag_t = 0x2000; -pub const VT1: ::tcflag_t = 0x4000; -pub const VWERASE: usize = 0xe; -pub const VREPRINT: usize = 0xc; -pub const VSUSP: usize = 0xa; -pub const VSTART: usize = 0x8; -pub const VSTOP: usize = 0x9; -pub const VDISCARD: usize = 0xd; -pub const VTIME: usize = 0x5; -pub const IXON: ::tcflag_t = 0x400; -pub const IXOFF: ::tcflag_t = 0x1000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x30; -pub const CS6: ::tcflag_t = 0x10; -pub const CS7: ::tcflag_t = 0x20; -pub const CS8: ::tcflag_t = 0x30; -pub const CSTOPB: ::tcflag_t = 0x40; -pub const CREAD: ::tcflag_t = 0x80; -pub const PARENB: ::tcflag_t = 0x100; -pub const PARODD: ::tcflag_t = 0x200; -pub const HUPCL: ::tcflag_t = 0x400; -pub const CLOCAL: ::tcflag_t = 0x800; -pub const ECHOKE: ::tcflag_t = 0x800; -pub const ECHOE: ::tcflag_t = 0x10; -pub const ECHOK: ::tcflag_t = 0x20; -pub const ECHONL: ::tcflag_t = 0x40; -pub const ECHOPRT: ::tcflag_t = 0x400; -pub const ECHOCTL: ::tcflag_t = 0x200; -pub const ISIG: ::tcflag_t = 0x1; -pub const ICANON: ::tcflag_t = 0x2; -pub const PENDIN: ::tcflag_t = 0x4000; -pub const NOFLSH: ::tcflag_t = 0x80; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0x00001000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0x1001; -pub const B115200: ::speed_t = 0x1002; -pub const B230400: ::speed_t = 0x1003; -pub const B460800: ::speed_t = 0x1004; -pub const B76800: ::speed_t = 0x1005; -pub const B153600: ::speed_t = 0x1006; -pub const B307200: ::speed_t = 0x1007; -pub const B614400: ::speed_t = 0x1008; -pub const B921600: ::speed_t = 0x1009; -pub const B500000: ::speed_t = 0x100a; -pub const B576000: ::speed_t = 0x100b; -pub const B1000000: ::speed_t = 0x100c; -pub const B1152000: ::speed_t = 0x100d; -pub const B1500000: ::speed_t = 0x100e; -pub const B2000000: ::speed_t = 0x100f; - -pub const VEOL: usize = 5; -pub const VEOL2: usize = 6; -pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0x8000; -pub const TOSTOP: ::tcflag_t = 0x100; -pub const FLUSHO: ::tcflag_t = 0x1000; -pub const EXTPROC: ::tcflag_t = 0x10000; - -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_wait4: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execv: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_chown: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_brk: ::c_long = 17; -pub const SYS_perfctr: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_capget: ::c_long = 21; -pub const SYS_capset: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_vmsplice: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_sigaltstack: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_stat: ::c_long = 38; -pub const SYS_sendfile: ::c_long = 39; -pub const SYS_lstat: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_umount2: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_memory_ordering: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_reboot: ::c_long = 55; -pub const SYS_symlink: ::c_long = 57; -pub const SYS_readlink: ::c_long = 58; -pub const SYS_execve: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_fstat: ::c_long = 62; -pub const SYS_fstat64: ::c_long = 63; -pub const SYS_getpagesize: ::c_long = 64; -pub const SYS_msync: ::c_long = 65; -pub const SYS_vfork: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_mmap: ::c_long = 71; -pub const SYS_munmap: ::c_long = 73; -pub const SYS_mprotect: ::c_long = 74; -pub const SYS_madvise: ::c_long = 75; -pub const SYS_vhangup: ::c_long = 76; -pub const SYS_mincore: ::c_long = 78; -pub const SYS_getgroups: ::c_long = 79; -pub const SYS_setgroups: ::c_long = 80; -pub const SYS_getpgrp: ::c_long = 81; -pub const SYS_setitimer: ::c_long = 83; -pub const SYS_swapon: ::c_long = 85; -pub const SYS_getitimer: ::c_long = 86; -pub const SYS_sethostname: ::c_long = 88; -pub const SYS_dup2: ::c_long = 90; -pub const SYS_fcntl: ::c_long = 92; -pub const SYS_select: ::c_long = 93; -pub const SYS_fsync: ::c_long = 95; -pub const SYS_setpriority: ::c_long = 96; -pub const SYS_socket: ::c_long = 97; -pub const SYS_connect: ::c_long = 98; -pub const SYS_accept: ::c_long = 99; -pub const SYS_getpriority: ::c_long = 100; -pub const SYS_rt_sigreturn: ::c_long = 101; -pub const SYS_rt_sigaction: ::c_long = 102; -pub const SYS_rt_sigprocmask: ::c_long = 103; -pub const SYS_rt_sigpending: ::c_long = 104; -pub const SYS_rt_sigtimedwait: ::c_long = 105; -pub const SYS_rt_sigqueueinfo: ::c_long = 106; -pub const SYS_rt_sigsuspend: ::c_long = 107; -pub const SYS_setresuid: ::c_long = 108; -pub const SYS_getresuid: ::c_long = 109; -pub const SYS_setresgid: ::c_long = 110; -pub const SYS_getresgid: ::c_long = 111; -pub const SYS_recvmsg: ::c_long = 113; -pub const SYS_sendmsg: ::c_long = 114; -pub const SYS_gettimeofday: ::c_long = 116; -pub const SYS_getrusage: ::c_long = 117; -pub const SYS_getsockopt: ::c_long = 118; -pub const SYS_getcwd: ::c_long = 119; -pub const SYS_readv: ::c_long = 120; -pub const SYS_writev: ::c_long = 121; -pub const SYS_settimeofday: ::c_long = 122; -pub const SYS_fchown: ::c_long = 123; -pub const SYS_fchmod: ::c_long = 124; -pub const SYS_recvfrom: ::c_long = 125; -pub const SYS_setreuid: ::c_long = 126; -pub const SYS_setregid: ::c_long = 127; -pub const SYS_rename: ::c_long = 128; -pub const SYS_truncate: ::c_long = 129; -pub const SYS_ftruncate: ::c_long = 130; -pub const SYS_flock: ::c_long = 131; -pub const SYS_lstat64: ::c_long = 132; -pub const SYS_sendto: ::c_long = 133; -pub const SYS_shutdown: ::c_long = 134; -pub const SYS_socketpair: ::c_long = 135; -pub const SYS_mkdir: ::c_long = 136; -pub const SYS_rmdir: ::c_long = 137; -pub const SYS_utimes: ::c_long = 138; -pub const SYS_stat64: ::c_long = 139; -pub const SYS_sendfile64: ::c_long = 140; -pub const SYS_getpeername: ::c_long = 141; -pub const SYS_futex: ::c_long = 142; -pub const SYS_gettid: ::c_long = 143; -pub const SYS_getrlimit: ::c_long = 144; -pub const SYS_setrlimit: ::c_long = 145; -pub const SYS_pivot_root: ::c_long = 146; -pub const SYS_prctl: ::c_long = 147; -pub const SYS_pciconfig_read: ::c_long = 148; -pub const SYS_pciconfig_write: ::c_long = 149; -pub const SYS_getsockname: ::c_long = 150; -pub const SYS_inotify_init: ::c_long = 151; -pub const SYS_inotify_add_watch: ::c_long = 152; -pub const SYS_poll: ::c_long = 153; -pub const SYS_getdents64: ::c_long = 154; -pub const SYS_inotify_rm_watch: ::c_long = 156; -pub const SYS_statfs: ::c_long = 157; -pub const SYS_fstatfs: ::c_long = 158; -pub const SYS_umount: ::c_long = 159; -pub const SYS_sched_set_affinity: ::c_long = 160; -pub const SYS_sched_get_affinity: ::c_long = 161; -pub const SYS_getdomainname: ::c_long = 162; -pub const SYS_setdomainname: ::c_long = 163; -pub const SYS_utrap_install: ::c_long = 164; -pub const SYS_quotactl: ::c_long = 165; -pub const SYS_set_tid_address: ::c_long = 166; -pub const SYS_mount: ::c_long = 167; -pub const SYS_ustat: ::c_long = 168; -pub const SYS_setxattr: ::c_long = 169; -pub const SYS_lsetxattr: ::c_long = 170; -pub const SYS_fsetxattr: ::c_long = 171; -pub const SYS_getxattr: ::c_long = 172; -pub const SYS_lgetxattr: ::c_long = 173; -pub const SYS_getdents: ::c_long = 174; -pub const SYS_setsid: ::c_long = 175; -pub const SYS_fchdir: ::c_long = 176; -pub const SYS_fgetxattr: ::c_long = 177; -pub const SYS_listxattr: ::c_long = 178; -pub const SYS_llistxattr: ::c_long = 179; -pub const SYS_flistxattr: ::c_long = 180; -pub const SYS_removexattr: ::c_long = 181; -pub const SYS_lremovexattr: ::c_long = 182; -pub const SYS_sigpending: ::c_long = 183; -pub const SYS_query_module: ::c_long = 184; -pub const SYS_setpgid: ::c_long = 185; -pub const SYS_fremovexattr: ::c_long = 186; -pub const SYS_tkill: ::c_long = 187; -pub const SYS_exit_group: ::c_long = 188; -pub const SYS_uname: ::c_long = 189; -pub const SYS_init_module: ::c_long = 190; -pub const SYS_personality: ::c_long = 191; -pub const SYS_remap_file_pages: ::c_long = 192; -pub const SYS_epoll_create: ::c_long = 193; -pub const SYS_epoll_ctl: ::c_long = 194; -pub const SYS_epoll_wait: ::c_long = 195; -pub const SYS_ioprio_set: ::c_long = 196; -pub const SYS_getppid: ::c_long = 197; -pub const SYS_sigaction: ::c_long = 198; -pub const SYS_sgetmask: ::c_long = 199; -pub const SYS_ssetmask: ::c_long = 200; -pub const SYS_sigsuspend: ::c_long = 201; -pub const SYS_oldlstat: ::c_long = 202; -pub const SYS_uselib: ::c_long = 203; -pub const SYS_readdir: ::c_long = 204; -pub const SYS_readahead: ::c_long = 205; -pub const SYS_socketcall: ::c_long = 206; -pub const SYS_syslog: ::c_long = 207; -pub const SYS_lookup_dcookie: ::c_long = 208; -pub const SYS_fadvise64: ::c_long = 209; -pub const SYS_fadvise64_64: ::c_long = 210; -pub const SYS_tgkill: ::c_long = 211; -pub const SYS_waitpid: ::c_long = 212; -pub const SYS_swapoff: ::c_long = 213; -pub const SYS_sysinfo: ::c_long = 214; -pub const SYS_ipc: ::c_long = 215; -pub const SYS_sigreturn: ::c_long = 216; -pub const SYS_clone: ::c_long = 217; -pub const SYS_ioprio_get: ::c_long = 218; -pub const SYS_adjtimex: ::c_long = 219; -pub const SYS_sigprocmask: ::c_long = 220; -pub const SYS_create_module: ::c_long = 221; -pub const SYS_delete_module: ::c_long = 222; -pub const SYS_get_kernel_syms: ::c_long = 223; -pub const SYS_getpgid: ::c_long = 224; -pub const SYS_bdflush: ::c_long = 225; -pub const SYS_sysfs: ::c_long = 226; -pub const SYS_afs_syscall: ::c_long = 227; -pub const SYS_setfsuid: ::c_long = 228; -pub const SYS_setfsgid: ::c_long = 229; -pub const SYS__newselect: ::c_long = 230; -pub const SYS_splice: ::c_long = 232; -pub const SYS_stime: ::c_long = 233; -pub const SYS_statfs64: ::c_long = 234; -pub const SYS_fstatfs64: ::c_long = 235; -pub const SYS__llseek: ::c_long = 236; -pub const SYS_mlock: ::c_long = 237; -pub const SYS_munlock: ::c_long = 238; -pub const SYS_mlockall: ::c_long = 239; -pub const SYS_munlockall: ::c_long = 240; -pub const SYS_sched_setparam: ::c_long = 241; -pub const SYS_sched_getparam: ::c_long = 242; -pub const SYS_sched_setscheduler: ::c_long = 243; -pub const SYS_sched_getscheduler: ::c_long = 244; -pub const SYS_sched_yield: ::c_long = 245; -pub const SYS_sched_get_priority_max: ::c_long = 246; -pub const SYS_sched_get_priority_min: ::c_long = 247; -pub const SYS_sched_rr_get_interval: ::c_long = 248; -pub const SYS_nanosleep: ::c_long = 249; -pub const SYS_mremap: ::c_long = 250; -pub const SYS__sysctl: ::c_long = 251; -pub const SYS_getsid: ::c_long = 252; -pub const SYS_fdatasync: ::c_long = 253; -pub const SYS_nfsservctl: ::c_long = 254; -pub const SYS_sync_file_range: ::c_long = 255; -pub const SYS_clock_settime: ::c_long = 256; -pub const SYS_clock_gettime: ::c_long = 257; -pub const SYS_clock_getres: ::c_long = 258; -pub const SYS_clock_nanosleep: ::c_long = 259; -pub const SYS_sched_getaffinity: ::c_long = 260; -pub const SYS_sched_setaffinity: ::c_long = 261; -pub const SYS_timer_settime: ::c_long = 262; -pub const SYS_timer_gettime: ::c_long = 263; -pub const SYS_timer_getoverrun: ::c_long = 264; -pub const SYS_timer_delete: ::c_long = 265; -pub const SYS_timer_create: ::c_long = 266; -pub const SYS_io_setup: ::c_long = 268; -pub const SYS_io_destroy: ::c_long = 269; -pub const SYS_io_submit: ::c_long = 270; -pub const SYS_io_cancel: ::c_long = 271; -pub const SYS_io_getevents: ::c_long = 272; -pub const SYS_mq_open: ::c_long = 273; -pub const SYS_mq_unlink: ::c_long = 274; -pub const SYS_mq_timedsend: ::c_long = 275; -pub const SYS_mq_timedreceive: ::c_long = 276; -pub const SYS_mq_notify: ::c_long = 277; -pub const SYS_mq_getsetattr: ::c_long = 278; -pub const SYS_waitid: ::c_long = 279; -pub const SYS_tee: ::c_long = 280; -pub const SYS_add_key: ::c_long = 281; -pub const SYS_request_key: ::c_long = 282; -pub const SYS_keyctl: ::c_long = 283; -pub const SYS_openat: ::c_long = 284; -pub const SYS_mkdirat: ::c_long = 285; -pub const SYS_mknodat: ::c_long = 286; -pub const SYS_fchownat: ::c_long = 287; -pub const SYS_futimesat: ::c_long = 288; -pub const SYS_fstatat64: ::c_long = 289; -pub const SYS_unlinkat: ::c_long = 290; -pub const SYS_renameat: ::c_long = 291; -pub const SYS_linkat: ::c_long = 292; -pub const SYS_symlinkat: ::c_long = 293; -pub const SYS_readlinkat: ::c_long = 294; -pub const SYS_fchmodat: ::c_long = 295; -pub const SYS_faccessat: ::c_long = 296; -pub const SYS_pselect6: ::c_long = 297; -pub const SYS_ppoll: ::c_long = 298; -pub const SYS_unshare: ::c_long = 299; -pub const SYS_set_robust_list: ::c_long = 300; -pub const SYS_get_robust_list: ::c_long = 301; -pub const SYS_migrate_pages: ::c_long = 302; -pub const SYS_mbind: ::c_long = 303; -pub const SYS_get_mempolicy: ::c_long = 304; -pub const SYS_set_mempolicy: ::c_long = 305; -pub const SYS_kexec_load: ::c_long = 306; -pub const SYS_move_pages: ::c_long = 307; -pub const SYS_getcpu: ::c_long = 308; -pub const SYS_epoll_pwait: ::c_long = 309; -pub const SYS_utimensat: ::c_long = 310; -pub const SYS_signalfd: ::c_long = 311; -pub const SYS_timerfd_create: ::c_long = 312; -pub const SYS_eventfd: ::c_long = 313; -pub const SYS_fallocate: ::c_long = 314; -pub const SYS_timerfd_settime: ::c_long = 315; -pub const SYS_timerfd_gettime: ::c_long = 316; -pub const SYS_signalfd4: ::c_long = 317; -pub const SYS_eventfd2: ::c_long = 318; -pub const SYS_epoll_create1: ::c_long = 319; -pub const SYS_dup3: ::c_long = 320; -pub const SYS_pipe2: ::c_long = 321; -pub const SYS_inotify_init1: ::c_long = 322; -pub const SYS_accept4: ::c_long = 323; -pub const SYS_preadv: ::c_long = 324; -pub const SYS_pwritev: ::c_long = 325; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 326; -pub const SYS_perf_event_open: ::c_long = 327; -pub const SYS_recvmmsg: ::c_long = 328; -pub const SYS_fanotify_init: ::c_long = 329; -pub const SYS_fanotify_mark: ::c_long = 330; -pub const SYS_prlimit64: ::c_long = 331; -pub const SYS_name_to_handle_at: ::c_long = 332; -pub const SYS_open_by_handle_at: ::c_long = 333; -pub const SYS_clock_adjtime: ::c_long = 334; -pub const SYS_syncfs: ::c_long = 335; -pub const SYS_sendmmsg: ::c_long = 336; -pub const SYS_setns: ::c_long = 337; -pub const SYS_process_vm_readv: ::c_long = 338; -pub const SYS_process_vm_writev: ::c_long = 339; -pub const SYS_kern_features: ::c_long = 340; -pub const SYS_kcmp: ::c_long = 341; -pub const SYS_finit_module: ::c_long = 342; -pub const SYS_sched_setattr: ::c_long = 343; -pub const SYS_sched_getattr: ::c_long = 344; -pub const SYS_renameat2: ::c_long = 345; -pub const SYS_seccomp: ::c_long = 346; -pub const SYS_getrandom: ::c_long = 347; -pub const SYS_memfd_create: ::c_long = 348; -pub const SYS_bpf: ::c_long = 349; -pub const SYS_execveat: ::c_long = 350; -pub const SYS_membarrier: ::c_long = 351; -pub const SYS_userfaultfd: ::c_long = 352; -pub const SYS_bind: ::c_long = 353; -pub const SYS_listen: ::c_long = 354; -pub const SYS_setsockopt: ::c_long = 355; -pub const SYS_mlock2: ::c_long = 356; -pub const SYS_copy_file_range: ::c_long = 357; -pub const SYS_preadv2: ::c_long = 358; -pub const SYS_pwritev2: ::c_long = 359; -pub const SYS_statx: ::c_long = 360; -pub const SYS_rseq: ::c_long = 365; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -// Reserved in the kernel, but not actually implemented yet -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -extern "C" { - pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs deleted file mode 100644 index ba3075edd..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs +++ /dev/null @@ -1,24 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } -} - -s! { - #[repr(align(8))] - pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs deleted file mode 100644 index e6307e282..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ /dev/null @@ -1,834 +0,0 @@ -//! x86_64-specific definitions for 64-bit linux-like values - -pub type c_char = i8; -pub type wchar_t = i32; -pub type nlink_t = u64; -pub type blksize_t = i64; -pub type greg_t = i64; -pub type suseconds_t = i64; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; - -s! { - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - #[cfg(target_arch = "sparc64")] - __reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct statfs { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - f_spare: [::__fsword_t; 5], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [u64; 0], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - __pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: i64, - pub st_mtime: ::time_t, - pub st_mtime_nsec: i64, - pub st_ctime: ::time_t, - pub st_ctime_nsec: i64, - __unused: [i64; 3], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - __pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: i64, - pub st_mtime: ::time_t, - pub st_mtime_nsec: i64, - pub st_ctime: ::time_t, - pub st_ctime_nsec: i64, - __reserved: [i64; 3], - } - - pub struct statfs64 { - pub f_type: ::__fsword_t, - pub f_bsize: ::__fsword_t, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_fsid: ::fsid_t, - pub f_namelen: ::__fsword_t, - pub f_frsize: ::__fsword_t, - pub f_flags: ::__fsword_t, - pub f_spare: [::__fsword_t; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct pthread_attr_t { - #[cfg(target_pointer_width = "32")] - __size: [u32; 8], - #[cfg(target_pointer_width = "64")] - __size: [u64; 7] - } - - pub struct _libc_fpxreg { - pub significand: [u16; 4], - pub exponent: u16, - __private: [u16; 3], - } - - pub struct _libc_xmmreg { - pub element: [u32; 4], - } - - pub struct _libc_fpstate { - pub cwd: u16, - pub swd: u16, - pub ftw: u16, - pub fop: u16, - pub rip: u64, - pub rdp: u64, - pub mxcsr: u32, - pub mxcr_mask: u32, - pub _st: [_libc_fpxreg; 8], - pub _xmm: [_libc_xmmreg; 16], - __private: [u64; 12], - } - - pub struct user_regs_struct { - pub r15: ::c_ulonglong, - pub r14: ::c_ulonglong, - pub r13: ::c_ulonglong, - pub r12: ::c_ulonglong, - pub rbp: ::c_ulonglong, - pub rbx: ::c_ulonglong, - pub r11: ::c_ulonglong, - pub r10: ::c_ulonglong, - pub r9: ::c_ulonglong, - pub r8: ::c_ulonglong, - pub rax: ::c_ulonglong, - pub rcx: ::c_ulonglong, - pub rdx: ::c_ulonglong, - pub rsi: ::c_ulonglong, - pub rdi: ::c_ulonglong, - pub orig_rax: ::c_ulonglong, - pub rip: ::c_ulonglong, - pub cs: ::c_ulonglong, - pub eflags: ::c_ulonglong, - pub rsp: ::c_ulonglong, - pub ss: ::c_ulonglong, - pub fs_base: ::c_ulonglong, - pub gs_base: ::c_ulonglong, - pub ds: ::c_ulonglong, - pub es: ::c_ulonglong, - pub fs: ::c_ulonglong, - pub gs: ::c_ulonglong, - } - - pub struct user { - pub regs: user_regs_struct, - pub u_fpvalid: ::c_int, - pub i387: user_fpregs_struct, - pub u_tsize: ::c_ulonglong, - pub u_dsize: ::c_ulonglong, - pub u_ssize: ::c_ulonglong, - pub start_code: ::c_ulonglong, - pub start_stack: ::c_ulonglong, - pub signal: ::c_longlong, - __reserved: ::c_int, - #[cfg(target_pointer_width = "32")] - __pad1: u32, - pub u_ar0: *mut user_regs_struct, - #[cfg(target_pointer_width = "32")] - __pad2: u32, - pub u_fpstate: *mut user_fpregs_struct, - pub magic: ::c_ulonglong, - pub u_comm: [::c_char; 32], - pub u_debugreg: [::c_ulonglong; 8], - } - - pub struct mcontext_t { - pub gregs: [greg_t; 23], - pub fpregs: *mut _libc_fpstate, - __private: [u64; 8], - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: u64, - __unused2: u64 - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: u64, - __unused5: u64 - } - - pub struct seccomp_notif_sizes { - pub seccomp_notif: ::__u16, - pub seccomp_notif_resp: ::__u16, - pub seccomp_data: ::__u16, - } - - pub struct ptrace_rseq_configuration { - pub rseq_abi_pointer: ::__u64, - pub rseq_abi_size: ::__u32, - pub signature: ::__u32, - pub flags: ::__u32, - pub pad: ::__u32, - } -} - -s_no_extra_traits! { - pub struct user_fpregs_struct { - pub cwd: ::c_ushort, - pub swd: ::c_ushort, - pub ftw: ::c_ushort, - pub fop: ::c_ushort, - pub rip: ::c_ulonglong, - pub rdp: ::c_ulonglong, - pub mxcsr: ::c_uint, - pub mxcr_mask: ::c_uint, - pub st_space: [::c_uint; 32], - pub xmm_space: [::c_uint; 64], - padding: [::c_uint; 24], - } - - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, - __private: [u8; 512], - // FIXME: the shadow stack field requires glibc >= 2.28. - // Re-add once we drop compatibility with glibc versions older than - // 2.28. - // - // __ssp: [::c_ulonglong; 4], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for user_fpregs_struct { - fn eq(&self, other: &user_fpregs_struct) -> bool { - self.cwd == other.cwd - && self.swd == other.swd - && self.ftw == other.ftw - && self.fop == other.fop - && self.rip == other.rip - && self.rdp == other.rdp - && self.mxcsr == other.mxcsr - && self.mxcr_mask == other.mxcr_mask - && self.st_space == other.st_space - && self - .xmm_space - .iter() - .zip(other.xmm_space.iter()) - .all(|(a,b)| a == b) - // Ignore padding field - } - } - - impl Eq for user_fpregs_struct {} - - impl ::fmt::Debug for user_fpregs_struct { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("user_fpregs_struct") - .field("cwd", &self.cwd) - .field("ftw", &self.ftw) - .field("fop", &self.fop) - .field("rip", &self.rip) - .field("rdp", &self.rdp) - .field("mxcsr", &self.mxcsr) - .field("mxcr_mask", &self.mxcr_mask) - .field("st_space", &self.st_space) - // FIXME: .field("xmm_space", &self.xmm_space) - // Ignore padding field - .finish() - } - } - - impl ::hash::Hash for user_fpregs_struct { - fn hash(&self, state: &mut H) { - self.cwd.hash(state); - self.ftw.hash(state); - self.fop.hash(state); - self.rip.hash(state); - self.rdp.hash(state); - self.mxcsr.hash(state); - self.mxcr_mask.hash(state); - self.st_space.hash(state); - self.xmm_space.hash(state); - // Ignore padding field - } - } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - // Ignore __private field - } - } - - impl Eq for ucontext_t {} - - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - // Ignore __private field - .finish() - } - } - - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - // Ignore __private field - } - } - } -} - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; - -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; - -pub const PTRACE_DETACH: ::c_uint = 17; -pub const PTRACE_GET_RSEQ_CONFIGURATION: ::c_uint = 0x420f; - -pub const EFD_NONBLOCK: ::c_int = 0x800; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; - -pub const SFD_NONBLOCK: ::c_int = 0x0800; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const SFD_CLOEXEC: ::c_int = 0x080000; - -pub const NCCS: usize = 32; - -pub const O_TRUNC: ::c_int = 512; - -pub const O_CLOEXEC: ::c_int = 0x80000; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; - -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; - -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_32BIT: ::c_int = 0x0040; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; - -pub const PTRACE_GETFPREGS: ::c_uint = 14; -pub const PTRACE_SETFPREGS: ::c_uint = 15; -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_GETREGS: ::c_uint = 12; -pub const PTRACE_SETREGS: ::c_uint = 13; -pub const PTRACE_PEEKSIGINFO_SHARED: ::c_uint = 1; -pub const PTRACE_SYSEMU: ::c_uint = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32; - -pub const PR_GET_SPECULATION_CTRL: ::c_int = 52; -pub const PR_SET_SPECULATION_CTRL: ::c_int = 53; -pub const PR_SPEC_NOT_AFFECTED: ::c_uint = 0; -pub const PR_SPEC_PRCTL: ::c_uint = 1 << 0; -pub const PR_SPEC_ENABLE: ::c_uint = 1 << 1; -pub const PR_SPEC_DISABLE: ::c_uint = 1 << 2; -pub const PR_SPEC_FORCE_DISABLE: ::c_uint = 1 << 3; -pub const PR_SPEC_DISABLE_NOEXEC: ::c_uint = 1 << 4; -pub const PR_SPEC_STORE_BYPASS: ::c_int = 0; -pub const PR_SPEC_INDIRECT_BRANCH: ::c_int = 1; -// FIXME: perharps for later -//pub const PR_SPEC_L1D_FLUSH: ::c_int = 2; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const EXTPROC: ::tcflag_t = 0x00010000; - -// offsets in user_regs_structs, from sys/reg.h -pub const R15: ::c_int = 0; -pub const R14: ::c_int = 1; -pub const R13: ::c_int = 2; -pub const R12: ::c_int = 3; -pub const RBP: ::c_int = 4; -pub const RBX: ::c_int = 5; -pub const R11: ::c_int = 6; -pub const R10: ::c_int = 7; -pub const R9: ::c_int = 8; -pub const R8: ::c_int = 9; -pub const RAX: ::c_int = 10; -pub const RCX: ::c_int = 11; -pub const RDX: ::c_int = 12; -pub const RSI: ::c_int = 13; -pub const RDI: ::c_int = 14; -pub const ORIG_RAX: ::c_int = 15; -pub const RIP: ::c_int = 16; -pub const CS: ::c_int = 17; -pub const EFLAGS: ::c_int = 18; -pub const RSP: ::c_int = 19; -pub const SS: ::c_int = 20; -pub const FS_BASE: ::c_int = 21; -pub const GS_BASE: ::c_int = 22; -pub const DS: ::c_int = 23; -pub const ES: ::c_int = 24; -pub const FS: ::c_int = 25; -pub const GS: ::c_int = 26; - -// offsets in mcontext_t.gregs from sys/ucontext.h -pub const REG_R8: ::c_int = 0; -pub const REG_R9: ::c_int = 1; -pub const REG_R10: ::c_int = 2; -pub const REG_R11: ::c_int = 3; -pub const REG_R12: ::c_int = 4; -pub const REG_R13: ::c_int = 5; -pub const REG_R14: ::c_int = 6; -pub const REG_R15: ::c_int = 7; -pub const REG_RDI: ::c_int = 8; -pub const REG_RSI: ::c_int = 9; -pub const REG_RBP: ::c_int = 10; -pub const REG_RBX: ::c_int = 11; -pub const REG_RDX: ::c_int = 12; -pub const REG_RAX: ::c_int = 13; -pub const REG_RCX: ::c_int = 14; -pub const REG_RSP: ::c_int = 15; -pub const REG_RIP: ::c_int = 16; -pub const REG_EFL: ::c_int = 17; -pub const REG_CSGSFS: ::c_int = 18; -pub const REG_ERR: ::c_int = 19; -pub const REG_TRAPNO: ::c_int = 20; -pub const REG_OLDMASK: ::c_int = 21; -pub const REG_CR2: ::c_int = 22; - -pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0; -pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1; -pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2; -pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3; - -extern "C" { - pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; - pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; - pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int; - pub fn iopl(level: ::c_int) -> ::c_int; - pub fn ioperm(from: ::c_ulong, num: ::c_ulong, turn_on: ::c_int) -> ::c_int; -} - -cfg_if! { - if #[cfg(target_pointer_width = "32")] { - mod x32; - pub use self::x32::*; - } else { - mod not_x32; - pub use self::not_x32::*; - } -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs deleted file mode 100644 index 3831dfad9..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs +++ /dev/null @@ -1,451 +0,0 @@ -use pthread_mutex_t; - -pub type c_long = i64; -pub type c_ulong = u64; - -s! { - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } -} - -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; - -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} - -// Syscall table - -pub const SYS_read: ::c_long = 0; -pub const SYS_write: ::c_long = 1; -pub const SYS_open: ::c_long = 2; -pub const SYS_close: ::c_long = 3; -pub const SYS_stat: ::c_long = 4; -pub const SYS_fstat: ::c_long = 5; -pub const SYS_lstat: ::c_long = 6; -pub const SYS_poll: ::c_long = 7; -pub const SYS_lseek: ::c_long = 8; -pub const SYS_mmap: ::c_long = 9; -pub const SYS_mprotect: ::c_long = 10; -pub const SYS_munmap: ::c_long = 11; -pub const SYS_brk: ::c_long = 12; -pub const SYS_rt_sigaction: ::c_long = 13; -pub const SYS_rt_sigprocmask: ::c_long = 14; -pub const SYS_rt_sigreturn: ::c_long = 15; -pub const SYS_ioctl: ::c_long = 16; -pub const SYS_pread64: ::c_long = 17; -pub const SYS_pwrite64: ::c_long = 18; -pub const SYS_readv: ::c_long = 19; -pub const SYS_writev: ::c_long = 20; -pub const SYS_access: ::c_long = 21; -pub const SYS_pipe: ::c_long = 22; -pub const SYS_select: ::c_long = 23; -pub const SYS_sched_yield: ::c_long = 24; -pub const SYS_mremap: ::c_long = 25; -pub const SYS_msync: ::c_long = 26; -pub const SYS_mincore: ::c_long = 27; -pub const SYS_madvise: ::c_long = 28; -pub const SYS_shmget: ::c_long = 29; -pub const SYS_shmat: ::c_long = 30; -pub const SYS_shmctl: ::c_long = 31; -pub const SYS_dup: ::c_long = 32; -pub const SYS_dup2: ::c_long = 33; -pub const SYS_pause: ::c_long = 34; -pub const SYS_nanosleep: ::c_long = 35; -pub const SYS_getitimer: ::c_long = 36; -pub const SYS_alarm: ::c_long = 37; -pub const SYS_setitimer: ::c_long = 38; -pub const SYS_getpid: ::c_long = 39; -pub const SYS_sendfile: ::c_long = 40; -pub const SYS_socket: ::c_long = 41; -pub const SYS_connect: ::c_long = 42; -pub const SYS_accept: ::c_long = 43; -pub const SYS_sendto: ::c_long = 44; -pub const SYS_recvfrom: ::c_long = 45; -pub const SYS_sendmsg: ::c_long = 46; -pub const SYS_recvmsg: ::c_long = 47; -pub const SYS_shutdown: ::c_long = 48; -pub const SYS_bind: ::c_long = 49; -pub const SYS_listen: ::c_long = 50; -pub const SYS_getsockname: ::c_long = 51; -pub const SYS_getpeername: ::c_long = 52; -pub const SYS_socketpair: ::c_long = 53; -pub const SYS_setsockopt: ::c_long = 54; -pub const SYS_getsockopt: ::c_long = 55; -pub const SYS_clone: ::c_long = 56; -pub const SYS_fork: ::c_long = 57; -pub const SYS_vfork: ::c_long = 58; -pub const SYS_execve: ::c_long = 59; -pub const SYS_exit: ::c_long = 60; -pub const SYS_wait4: ::c_long = 61; -pub const SYS_kill: ::c_long = 62; -pub const SYS_uname: ::c_long = 63; -pub const SYS_semget: ::c_long = 64; -pub const SYS_semop: ::c_long = 65; -pub const SYS_semctl: ::c_long = 66; -pub const SYS_shmdt: ::c_long = 67; -pub const SYS_msgget: ::c_long = 68; -pub const SYS_msgsnd: ::c_long = 69; -pub const SYS_msgrcv: ::c_long = 70; -pub const SYS_msgctl: ::c_long = 71; -pub const SYS_fcntl: ::c_long = 72; -pub const SYS_flock: ::c_long = 73; -pub const SYS_fsync: ::c_long = 74; -pub const SYS_fdatasync: ::c_long = 75; -pub const SYS_truncate: ::c_long = 76; -pub const SYS_ftruncate: ::c_long = 77; -pub const SYS_getdents: ::c_long = 78; -pub const SYS_getcwd: ::c_long = 79; -pub const SYS_chdir: ::c_long = 80; -pub const SYS_fchdir: ::c_long = 81; -pub const SYS_rename: ::c_long = 82; -pub const SYS_mkdir: ::c_long = 83; -pub const SYS_rmdir: ::c_long = 84; -pub const SYS_creat: ::c_long = 85; -pub const SYS_link: ::c_long = 86; -pub const SYS_unlink: ::c_long = 87; -pub const SYS_symlink: ::c_long = 88; -pub const SYS_readlink: ::c_long = 89; -pub const SYS_chmod: ::c_long = 90; -pub const SYS_fchmod: ::c_long = 91; -pub const SYS_chown: ::c_long = 92; -pub const SYS_fchown: ::c_long = 93; -pub const SYS_lchown: ::c_long = 94; -pub const SYS_umask: ::c_long = 95; -pub const SYS_gettimeofday: ::c_long = 96; -pub const SYS_getrlimit: ::c_long = 97; -pub const SYS_getrusage: ::c_long = 98; -pub const SYS_sysinfo: ::c_long = 99; -pub const SYS_times: ::c_long = 100; -pub const SYS_ptrace: ::c_long = 101; -pub const SYS_getuid: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_getgid: ::c_long = 104; -pub const SYS_setuid: ::c_long = 105; -pub const SYS_setgid: ::c_long = 106; -pub const SYS_geteuid: ::c_long = 107; -pub const SYS_getegid: ::c_long = 108; -pub const SYS_setpgid: ::c_long = 109; -pub const SYS_getppid: ::c_long = 110; -pub const SYS_getpgrp: ::c_long = 111; -pub const SYS_setsid: ::c_long = 112; -pub const SYS_setreuid: ::c_long = 113; -pub const SYS_setregid: ::c_long = 114; -pub const SYS_getgroups: ::c_long = 115; -pub const SYS_setgroups: ::c_long = 116; -pub const SYS_setresuid: ::c_long = 117; -pub const SYS_getresuid: ::c_long = 118; -pub const SYS_setresgid: ::c_long = 119; -pub const SYS_getresgid: ::c_long = 120; -pub const SYS_getpgid: ::c_long = 121; -pub const SYS_setfsuid: ::c_long = 122; -pub const SYS_setfsgid: ::c_long = 123; -pub const SYS_getsid: ::c_long = 124; -pub const SYS_capget: ::c_long = 125; -pub const SYS_capset: ::c_long = 126; -pub const SYS_rt_sigpending: ::c_long = 127; -pub const SYS_rt_sigtimedwait: ::c_long = 128; -pub const SYS_rt_sigqueueinfo: ::c_long = 129; -pub const SYS_rt_sigsuspend: ::c_long = 130; -pub const SYS_sigaltstack: ::c_long = 131; -pub const SYS_utime: ::c_long = 132; -pub const SYS_mknod: ::c_long = 133; -pub const SYS_uselib: ::c_long = 134; -pub const SYS_personality: ::c_long = 135; -pub const SYS_ustat: ::c_long = 136; -pub const SYS_statfs: ::c_long = 137; -pub const SYS_fstatfs: ::c_long = 138; -pub const SYS_sysfs: ::c_long = 139; -pub const SYS_getpriority: ::c_long = 140; -pub const SYS_setpriority: ::c_long = 141; -pub const SYS_sched_setparam: ::c_long = 142; -pub const SYS_sched_getparam: ::c_long = 143; -pub const SYS_sched_setscheduler: ::c_long = 144; -pub const SYS_sched_getscheduler: ::c_long = 145; -pub const SYS_sched_get_priority_max: ::c_long = 146; -pub const SYS_sched_get_priority_min: ::c_long = 147; -pub const SYS_sched_rr_get_interval: ::c_long = 148; -pub const SYS_mlock: ::c_long = 149; -pub const SYS_munlock: ::c_long = 150; -pub const SYS_mlockall: ::c_long = 151; -pub const SYS_munlockall: ::c_long = 152; -pub const SYS_vhangup: ::c_long = 153; -pub const SYS_modify_ldt: ::c_long = 154; -pub const SYS_pivot_root: ::c_long = 155; -pub const SYS__sysctl: ::c_long = 156; -pub const SYS_prctl: ::c_long = 157; -pub const SYS_arch_prctl: ::c_long = 158; -pub const SYS_adjtimex: ::c_long = 159; -pub const SYS_setrlimit: ::c_long = 160; -pub const SYS_chroot: ::c_long = 161; -pub const SYS_sync: ::c_long = 162; -pub const SYS_acct: ::c_long = 163; -pub const SYS_settimeofday: ::c_long = 164; -pub const SYS_mount: ::c_long = 165; -pub const SYS_umount2: ::c_long = 166; -pub const SYS_swapon: ::c_long = 167; -pub const SYS_swapoff: ::c_long = 168; -pub const SYS_reboot: ::c_long = 169; -pub const SYS_sethostname: ::c_long = 170; -pub const SYS_setdomainname: ::c_long = 171; -pub const SYS_iopl: ::c_long = 172; -pub const SYS_ioperm: ::c_long = 173; -pub const SYS_create_module: ::c_long = 174; -pub const SYS_init_module: ::c_long = 175; -pub const SYS_delete_module: ::c_long = 176; -pub const SYS_get_kernel_syms: ::c_long = 177; -pub const SYS_query_module: ::c_long = 178; -pub const SYS_quotactl: ::c_long = 179; -pub const SYS_nfsservctl: ::c_long = 180; -pub const SYS_getpmsg: ::c_long = 181; -pub const SYS_putpmsg: ::c_long = 182; -pub const SYS_afs_syscall: ::c_long = 183; -pub const SYS_tuxcall: ::c_long = 184; -pub const SYS_security: ::c_long = 185; -pub const SYS_gettid: ::c_long = 186; -pub const SYS_readahead: ::c_long = 187; -pub const SYS_setxattr: ::c_long = 188; -pub const SYS_lsetxattr: ::c_long = 189; -pub const SYS_fsetxattr: ::c_long = 190; -pub const SYS_getxattr: ::c_long = 191; -pub const SYS_lgetxattr: ::c_long = 192; -pub const SYS_fgetxattr: ::c_long = 193; -pub const SYS_listxattr: ::c_long = 194; -pub const SYS_llistxattr: ::c_long = 195; -pub const SYS_flistxattr: ::c_long = 196; -pub const SYS_removexattr: ::c_long = 197; -pub const SYS_lremovexattr: ::c_long = 198; -pub const SYS_fremovexattr: ::c_long = 199; -pub const SYS_tkill: ::c_long = 200; -pub const SYS_time: ::c_long = 201; -pub const SYS_futex: ::c_long = 202; -pub const SYS_sched_setaffinity: ::c_long = 203; -pub const SYS_sched_getaffinity: ::c_long = 204; -pub const SYS_set_thread_area: ::c_long = 205; -pub const SYS_io_setup: ::c_long = 206; -pub const SYS_io_destroy: ::c_long = 207; -pub const SYS_io_getevents: ::c_long = 208; -pub const SYS_io_submit: ::c_long = 209; -pub const SYS_io_cancel: ::c_long = 210; -pub const SYS_get_thread_area: ::c_long = 211; -pub const SYS_lookup_dcookie: ::c_long = 212; -pub const SYS_epoll_create: ::c_long = 213; -pub const SYS_epoll_ctl_old: ::c_long = 214; -pub const SYS_epoll_wait_old: ::c_long = 215; -pub const SYS_remap_file_pages: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_set_tid_address: ::c_long = 218; -pub const SYS_restart_syscall: ::c_long = 219; -pub const SYS_semtimedop: ::c_long = 220; -pub const SYS_fadvise64: ::c_long = 221; -pub const SYS_timer_create: ::c_long = 222; -pub const SYS_timer_settime: ::c_long = 223; -pub const SYS_timer_gettime: ::c_long = 224; -pub const SYS_timer_getoverrun: ::c_long = 225; -pub const SYS_timer_delete: ::c_long = 226; -pub const SYS_clock_settime: ::c_long = 227; -pub const SYS_clock_gettime: ::c_long = 228; -pub const SYS_clock_getres: ::c_long = 229; -pub const SYS_clock_nanosleep: ::c_long = 230; -pub const SYS_exit_group: ::c_long = 231; -pub const SYS_epoll_wait: ::c_long = 232; -pub const SYS_epoll_ctl: ::c_long = 233; -pub const SYS_tgkill: ::c_long = 234; -pub const SYS_utimes: ::c_long = 235; -pub const SYS_vserver: ::c_long = 236; -pub const SYS_mbind: ::c_long = 237; -pub const SYS_set_mempolicy: ::c_long = 238; -pub const SYS_get_mempolicy: ::c_long = 239; -pub const SYS_mq_open: ::c_long = 240; -pub const SYS_mq_unlink: ::c_long = 241; -pub const SYS_mq_timedsend: ::c_long = 242; -pub const SYS_mq_timedreceive: ::c_long = 243; -pub const SYS_mq_notify: ::c_long = 244; -pub const SYS_mq_getsetattr: ::c_long = 245; -pub const SYS_kexec_load: ::c_long = 246; -pub const SYS_waitid: ::c_long = 247; -pub const SYS_add_key: ::c_long = 248; -pub const SYS_request_key: ::c_long = 249; -pub const SYS_keyctl: ::c_long = 250; -pub const SYS_ioprio_set: ::c_long = 251; -pub const SYS_ioprio_get: ::c_long = 252; -pub const SYS_inotify_init: ::c_long = 253; -pub const SYS_inotify_add_watch: ::c_long = 254; -pub const SYS_inotify_rm_watch: ::c_long = 255; -pub const SYS_migrate_pages: ::c_long = 256; -pub const SYS_openat: ::c_long = 257; -pub const SYS_mkdirat: ::c_long = 258; -pub const SYS_mknodat: ::c_long = 259; -pub const SYS_fchownat: ::c_long = 260; -pub const SYS_futimesat: ::c_long = 261; -pub const SYS_newfstatat: ::c_long = 262; -pub const SYS_unlinkat: ::c_long = 263; -pub const SYS_renameat: ::c_long = 264; -pub const SYS_linkat: ::c_long = 265; -pub const SYS_symlinkat: ::c_long = 266; -pub const SYS_readlinkat: ::c_long = 267; -pub const SYS_fchmodat: ::c_long = 268; -pub const SYS_faccessat: ::c_long = 269; -pub const SYS_pselect6: ::c_long = 270; -pub const SYS_ppoll: ::c_long = 271; -pub const SYS_unshare: ::c_long = 272; -pub const SYS_set_robust_list: ::c_long = 273; -pub const SYS_get_robust_list: ::c_long = 274; -pub const SYS_splice: ::c_long = 275; -pub const SYS_tee: ::c_long = 276; -pub const SYS_sync_file_range: ::c_long = 277; -pub const SYS_vmsplice: ::c_long = 278; -pub const SYS_move_pages: ::c_long = 279; -pub const SYS_utimensat: ::c_long = 280; -pub const SYS_epoll_pwait: ::c_long = 281; -pub const SYS_signalfd: ::c_long = 282; -pub const SYS_timerfd_create: ::c_long = 283; -pub const SYS_eventfd: ::c_long = 284; -pub const SYS_fallocate: ::c_long = 285; -pub const SYS_timerfd_settime: ::c_long = 286; -pub const SYS_timerfd_gettime: ::c_long = 287; -pub const SYS_accept4: ::c_long = 288; -pub const SYS_signalfd4: ::c_long = 289; -pub const SYS_eventfd2: ::c_long = 290; -pub const SYS_epoll_create1: ::c_long = 291; -pub const SYS_dup3: ::c_long = 292; -pub const SYS_pipe2: ::c_long = 293; -pub const SYS_inotify_init1: ::c_long = 294; -pub const SYS_preadv: ::c_long = 295; -pub const SYS_pwritev: ::c_long = 296; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 297; -pub const SYS_perf_event_open: ::c_long = 298; -pub const SYS_recvmmsg: ::c_long = 299; -pub const SYS_fanotify_init: ::c_long = 300; -pub const SYS_fanotify_mark: ::c_long = 301; -pub const SYS_prlimit64: ::c_long = 302; -pub const SYS_name_to_handle_at: ::c_long = 303; -pub const SYS_open_by_handle_at: ::c_long = 304; -pub const SYS_clock_adjtime: ::c_long = 305; -pub const SYS_syncfs: ::c_long = 306; -pub const SYS_sendmmsg: ::c_long = 307; -pub const SYS_setns: ::c_long = 308; -pub const SYS_getcpu: ::c_long = 309; -pub const SYS_process_vm_readv: ::c_long = 310; -pub const SYS_process_vm_writev: ::c_long = 311; -pub const SYS_kcmp: ::c_long = 312; -pub const SYS_finit_module: ::c_long = 313; -pub const SYS_sched_setattr: ::c_long = 314; -pub const SYS_sched_getattr: ::c_long = 315; -pub const SYS_renameat2: ::c_long = 316; -pub const SYS_seccomp: ::c_long = 317; -pub const SYS_getrandom: ::c_long = 318; -pub const SYS_memfd_create: ::c_long = 319; -pub const SYS_kexec_file_load: ::c_long = 320; -pub const SYS_bpf: ::c_long = 321; -pub const SYS_execveat: ::c_long = 322; -pub const SYS_userfaultfd: ::c_long = 323; -pub const SYS_membarrier: ::c_long = 324; -pub const SYS_mlock2: ::c_long = 325; -pub const SYS_copy_file_range: ::c_long = 326; -pub const SYS_preadv2: ::c_long = 327; -pub const SYS_pwritev2: ::c_long = 328; -pub const SYS_pkey_mprotect: ::c_long = 329; -pub const SYS_pkey_alloc: ::c_long = 330; -pub const SYS_pkey_free: ::c_long = 331; -pub const SYS_statx: ::c_long = 332; -pub const SYS_rseq: ::c_long = 334; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -extern "C" { - pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs deleted file mode 100644 index 06aa0da2d..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs +++ /dev/null @@ -1,404 +0,0 @@ -use pthread_mutex_t; - -pub type c_long = i32; -pub type c_ulong = u32; - -s! { - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } -} - -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 44; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; - -align_const! { - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - }; -} - -// Syscall table - -pub const __X32_SYSCALL_BIT: ::c_long = 0x40000000; - -pub const SYS_read: ::c_long = __X32_SYSCALL_BIT + 0; -pub const SYS_write: ::c_long = __X32_SYSCALL_BIT + 1; -pub const SYS_open: ::c_long = __X32_SYSCALL_BIT + 2; -pub const SYS_close: ::c_long = __X32_SYSCALL_BIT + 3; -pub const SYS_stat: ::c_long = __X32_SYSCALL_BIT + 4; -pub const SYS_fstat: ::c_long = __X32_SYSCALL_BIT + 5; -pub const SYS_lstat: ::c_long = __X32_SYSCALL_BIT + 6; -pub const SYS_poll: ::c_long = __X32_SYSCALL_BIT + 7; -pub const SYS_lseek: ::c_long = __X32_SYSCALL_BIT + 8; -pub const SYS_mmap: ::c_long = __X32_SYSCALL_BIT + 9; -pub const SYS_mprotect: ::c_long = __X32_SYSCALL_BIT + 10; -pub const SYS_munmap: ::c_long = __X32_SYSCALL_BIT + 11; -pub const SYS_brk: ::c_long = __X32_SYSCALL_BIT + 12; -pub const SYS_rt_sigprocmask: ::c_long = __X32_SYSCALL_BIT + 14; -pub const SYS_pread64: ::c_long = __X32_SYSCALL_BIT + 17; -pub const SYS_pwrite64: ::c_long = __X32_SYSCALL_BIT + 18; -pub const SYS_access: ::c_long = __X32_SYSCALL_BIT + 21; -pub const SYS_pipe: ::c_long = __X32_SYSCALL_BIT + 22; -pub const SYS_select: ::c_long = __X32_SYSCALL_BIT + 23; -pub const SYS_sched_yield: ::c_long = __X32_SYSCALL_BIT + 24; -pub const SYS_mremap: ::c_long = __X32_SYSCALL_BIT + 25; -pub const SYS_msync: ::c_long = __X32_SYSCALL_BIT + 26; -pub const SYS_mincore: ::c_long = __X32_SYSCALL_BIT + 27; -pub const SYS_madvise: ::c_long = __X32_SYSCALL_BIT + 28; -pub const SYS_shmget: ::c_long = __X32_SYSCALL_BIT + 29; -pub const SYS_shmat: ::c_long = __X32_SYSCALL_BIT + 30; -pub const SYS_shmctl: ::c_long = __X32_SYSCALL_BIT + 31; -pub const SYS_dup: ::c_long = __X32_SYSCALL_BIT + 32; -pub const SYS_dup2: ::c_long = __X32_SYSCALL_BIT + 33; -pub const SYS_pause: ::c_long = __X32_SYSCALL_BIT + 34; -pub const SYS_nanosleep: ::c_long = __X32_SYSCALL_BIT + 35; -pub const SYS_getitimer: ::c_long = __X32_SYSCALL_BIT + 36; -pub const SYS_alarm: ::c_long = __X32_SYSCALL_BIT + 37; -pub const SYS_setitimer: ::c_long = __X32_SYSCALL_BIT + 38; -pub const SYS_getpid: ::c_long = __X32_SYSCALL_BIT + 39; -pub const SYS_sendfile: ::c_long = __X32_SYSCALL_BIT + 40; -pub const SYS_socket: ::c_long = __X32_SYSCALL_BIT + 41; -pub const SYS_connect: ::c_long = __X32_SYSCALL_BIT + 42; -pub const SYS_accept: ::c_long = __X32_SYSCALL_BIT + 43; -pub const SYS_sendto: ::c_long = __X32_SYSCALL_BIT + 44; -pub const SYS_shutdown: ::c_long = __X32_SYSCALL_BIT + 48; -pub const SYS_bind: ::c_long = __X32_SYSCALL_BIT + 49; -pub const SYS_listen: ::c_long = __X32_SYSCALL_BIT + 50; -pub const SYS_getsockname: ::c_long = __X32_SYSCALL_BIT + 51; -pub const SYS_getpeername: ::c_long = __X32_SYSCALL_BIT + 52; -pub const SYS_socketpair: ::c_long = __X32_SYSCALL_BIT + 53; -pub const SYS_clone: ::c_long = __X32_SYSCALL_BIT + 56; -pub const SYS_fork: ::c_long = __X32_SYSCALL_BIT + 57; -pub const SYS_vfork: ::c_long = __X32_SYSCALL_BIT + 58; -pub const SYS_exit: ::c_long = __X32_SYSCALL_BIT + 60; -pub const SYS_wait4: ::c_long = __X32_SYSCALL_BIT + 61; -pub const SYS_kill: ::c_long = __X32_SYSCALL_BIT + 62; -pub const SYS_uname: ::c_long = __X32_SYSCALL_BIT + 63; -pub const SYS_semget: ::c_long = __X32_SYSCALL_BIT + 64; -pub const SYS_semop: ::c_long = __X32_SYSCALL_BIT + 65; -pub const SYS_semctl: ::c_long = __X32_SYSCALL_BIT + 66; -pub const SYS_shmdt: ::c_long = __X32_SYSCALL_BIT + 67; -pub const SYS_msgget: ::c_long = __X32_SYSCALL_BIT + 68; -pub const SYS_msgsnd: ::c_long = __X32_SYSCALL_BIT + 69; -pub const SYS_msgrcv: ::c_long = __X32_SYSCALL_BIT + 70; -pub const SYS_msgctl: ::c_long = __X32_SYSCALL_BIT + 71; -pub const SYS_fcntl: ::c_long = __X32_SYSCALL_BIT + 72; -pub const SYS_flock: ::c_long = __X32_SYSCALL_BIT + 73; -pub const SYS_fsync: ::c_long = __X32_SYSCALL_BIT + 74; -pub const SYS_fdatasync: ::c_long = __X32_SYSCALL_BIT + 75; -pub const SYS_truncate: ::c_long = __X32_SYSCALL_BIT + 76; -pub const SYS_ftruncate: ::c_long = __X32_SYSCALL_BIT + 77; -pub const SYS_getdents: ::c_long = __X32_SYSCALL_BIT + 78; -pub const SYS_getcwd: ::c_long = __X32_SYSCALL_BIT + 79; -pub const SYS_chdir: ::c_long = __X32_SYSCALL_BIT + 80; -pub const SYS_fchdir: ::c_long = __X32_SYSCALL_BIT + 81; -pub const SYS_rename: ::c_long = __X32_SYSCALL_BIT + 82; -pub const SYS_mkdir: ::c_long = __X32_SYSCALL_BIT + 83; -pub const SYS_rmdir: ::c_long = __X32_SYSCALL_BIT + 84; -pub const SYS_creat: ::c_long = __X32_SYSCALL_BIT + 85; -pub const SYS_link: ::c_long = __X32_SYSCALL_BIT + 86; -pub const SYS_unlink: ::c_long = __X32_SYSCALL_BIT + 87; -pub const SYS_symlink: ::c_long = __X32_SYSCALL_BIT + 88; -pub const SYS_readlink: ::c_long = __X32_SYSCALL_BIT + 89; -pub const SYS_chmod: ::c_long = __X32_SYSCALL_BIT + 90; -pub const SYS_fchmod: ::c_long = __X32_SYSCALL_BIT + 91; -pub const SYS_chown: ::c_long = __X32_SYSCALL_BIT + 92; -pub const SYS_fchown: ::c_long = __X32_SYSCALL_BIT + 93; -pub const SYS_lchown: ::c_long = __X32_SYSCALL_BIT + 94; -pub const SYS_umask: ::c_long = __X32_SYSCALL_BIT + 95; -pub const SYS_gettimeofday: ::c_long = __X32_SYSCALL_BIT + 96; -pub const SYS_getrlimit: ::c_long = __X32_SYSCALL_BIT + 97; -pub const SYS_getrusage: ::c_long = __X32_SYSCALL_BIT + 98; -pub const SYS_sysinfo: ::c_long = __X32_SYSCALL_BIT + 99; -pub const SYS_times: ::c_long = __X32_SYSCALL_BIT + 100; -pub const SYS_getuid: ::c_long = __X32_SYSCALL_BIT + 102; -pub const SYS_syslog: ::c_long = __X32_SYSCALL_BIT + 103; -pub const SYS_getgid: ::c_long = __X32_SYSCALL_BIT + 104; -pub const SYS_setuid: ::c_long = __X32_SYSCALL_BIT + 105; -pub const SYS_setgid: ::c_long = __X32_SYSCALL_BIT + 106; -pub const SYS_geteuid: ::c_long = __X32_SYSCALL_BIT + 107; -pub const SYS_getegid: ::c_long = __X32_SYSCALL_BIT + 108; -pub const SYS_setpgid: ::c_long = __X32_SYSCALL_BIT + 109; -pub const SYS_getppid: ::c_long = __X32_SYSCALL_BIT + 110; -pub const SYS_getpgrp: ::c_long = __X32_SYSCALL_BIT + 111; -pub const SYS_setsid: ::c_long = __X32_SYSCALL_BIT + 112; -pub const SYS_setreuid: ::c_long = __X32_SYSCALL_BIT + 113; -pub const SYS_setregid: ::c_long = __X32_SYSCALL_BIT + 114; -pub const SYS_getgroups: ::c_long = __X32_SYSCALL_BIT + 115; -pub const SYS_setgroups: ::c_long = __X32_SYSCALL_BIT + 116; -pub const SYS_setresuid: ::c_long = __X32_SYSCALL_BIT + 117; -pub const SYS_getresuid: ::c_long = __X32_SYSCALL_BIT + 118; -pub const SYS_setresgid: ::c_long = __X32_SYSCALL_BIT + 119; -pub const SYS_getresgid: ::c_long = __X32_SYSCALL_BIT + 120; -pub const SYS_getpgid: ::c_long = __X32_SYSCALL_BIT + 121; -pub const SYS_setfsuid: ::c_long = __X32_SYSCALL_BIT + 122; -pub const SYS_setfsgid: ::c_long = __X32_SYSCALL_BIT + 123; -pub const SYS_getsid: ::c_long = __X32_SYSCALL_BIT + 124; -pub const SYS_capget: ::c_long = __X32_SYSCALL_BIT + 125; -pub const SYS_capset: ::c_long = __X32_SYSCALL_BIT + 126; -pub const SYS_rt_sigsuspend: ::c_long = __X32_SYSCALL_BIT + 130; -pub const SYS_utime: ::c_long = __X32_SYSCALL_BIT + 132; -pub const SYS_mknod: ::c_long = __X32_SYSCALL_BIT + 133; -pub const SYS_personality: ::c_long = __X32_SYSCALL_BIT + 135; -pub const SYS_ustat: ::c_long = __X32_SYSCALL_BIT + 136; -pub const SYS_statfs: ::c_long = __X32_SYSCALL_BIT + 137; -pub const SYS_fstatfs: ::c_long = __X32_SYSCALL_BIT + 138; -pub const SYS_sysfs: ::c_long = __X32_SYSCALL_BIT + 139; -pub const SYS_getpriority: ::c_long = __X32_SYSCALL_BIT + 140; -pub const SYS_setpriority: ::c_long = __X32_SYSCALL_BIT + 141; -pub const SYS_sched_setparam: ::c_long = __X32_SYSCALL_BIT + 142; -pub const SYS_sched_getparam: ::c_long = __X32_SYSCALL_BIT + 143; -pub const SYS_sched_setscheduler: ::c_long = __X32_SYSCALL_BIT + 144; -pub const SYS_sched_getscheduler: ::c_long = __X32_SYSCALL_BIT + 145; -pub const SYS_sched_get_priority_max: ::c_long = __X32_SYSCALL_BIT + 146; -pub const SYS_sched_get_priority_min: ::c_long = __X32_SYSCALL_BIT + 147; -pub const SYS_sched_rr_get_interval: ::c_long = __X32_SYSCALL_BIT + 148; -pub const SYS_mlock: ::c_long = __X32_SYSCALL_BIT + 149; -pub const SYS_munlock: ::c_long = __X32_SYSCALL_BIT + 150; -pub const SYS_mlockall: ::c_long = __X32_SYSCALL_BIT + 151; -pub const SYS_munlockall: ::c_long = __X32_SYSCALL_BIT + 152; -pub const SYS_vhangup: ::c_long = __X32_SYSCALL_BIT + 153; -pub const SYS_modify_ldt: ::c_long = __X32_SYSCALL_BIT + 154; -pub const SYS_pivot_root: ::c_long = __X32_SYSCALL_BIT + 155; -pub const SYS_prctl: ::c_long = __X32_SYSCALL_BIT + 157; -pub const SYS_arch_prctl: ::c_long = __X32_SYSCALL_BIT + 158; -pub const SYS_adjtimex: ::c_long = __X32_SYSCALL_BIT + 159; -pub const SYS_setrlimit: ::c_long = __X32_SYSCALL_BIT + 160; -pub const SYS_chroot: ::c_long = __X32_SYSCALL_BIT + 161; -pub const SYS_sync: ::c_long = __X32_SYSCALL_BIT + 162; -pub const SYS_acct: ::c_long = __X32_SYSCALL_BIT + 163; -pub const SYS_settimeofday: ::c_long = __X32_SYSCALL_BIT + 164; -pub const SYS_mount: ::c_long = __X32_SYSCALL_BIT + 165; -pub const SYS_umount2: ::c_long = __X32_SYSCALL_BIT + 166; -pub const SYS_swapon: ::c_long = __X32_SYSCALL_BIT + 167; -pub const SYS_swapoff: ::c_long = __X32_SYSCALL_BIT + 168; -pub const SYS_reboot: ::c_long = __X32_SYSCALL_BIT + 169; -pub const SYS_sethostname: ::c_long = __X32_SYSCALL_BIT + 170; -pub const SYS_setdomainname: ::c_long = __X32_SYSCALL_BIT + 171; -pub const SYS_iopl: ::c_long = __X32_SYSCALL_BIT + 172; -pub const SYS_ioperm: ::c_long = __X32_SYSCALL_BIT + 173; -pub const SYS_init_module: ::c_long = __X32_SYSCALL_BIT + 175; -pub const SYS_delete_module: ::c_long = __X32_SYSCALL_BIT + 176; -pub const SYS_quotactl: ::c_long = __X32_SYSCALL_BIT + 179; -pub const SYS_getpmsg: ::c_long = __X32_SYSCALL_BIT + 181; -pub const SYS_putpmsg: ::c_long = __X32_SYSCALL_BIT + 182; -pub const SYS_afs_syscall: ::c_long = __X32_SYSCALL_BIT + 183; -pub const SYS_tuxcall: ::c_long = __X32_SYSCALL_BIT + 184; -pub const SYS_security: ::c_long = __X32_SYSCALL_BIT + 185; -pub const SYS_gettid: ::c_long = __X32_SYSCALL_BIT + 186; -pub const SYS_readahead: ::c_long = __X32_SYSCALL_BIT + 187; -pub const SYS_setxattr: ::c_long = __X32_SYSCALL_BIT + 188; -pub const SYS_lsetxattr: ::c_long = __X32_SYSCALL_BIT + 189; -pub const SYS_fsetxattr: ::c_long = __X32_SYSCALL_BIT + 190; -pub const SYS_getxattr: ::c_long = __X32_SYSCALL_BIT + 191; -pub const SYS_lgetxattr: ::c_long = __X32_SYSCALL_BIT + 192; -pub const SYS_fgetxattr: ::c_long = __X32_SYSCALL_BIT + 193; -pub const SYS_listxattr: ::c_long = __X32_SYSCALL_BIT + 194; -pub const SYS_llistxattr: ::c_long = __X32_SYSCALL_BIT + 195; -pub const SYS_flistxattr: ::c_long = __X32_SYSCALL_BIT + 196; -pub const SYS_removexattr: ::c_long = __X32_SYSCALL_BIT + 197; -pub const SYS_lremovexattr: ::c_long = __X32_SYSCALL_BIT + 198; -pub const SYS_fremovexattr: ::c_long = __X32_SYSCALL_BIT + 199; -pub const SYS_tkill: ::c_long = __X32_SYSCALL_BIT + 200; -pub const SYS_time: ::c_long = __X32_SYSCALL_BIT + 201; -pub const SYS_futex: ::c_long = __X32_SYSCALL_BIT + 202; -pub const SYS_sched_setaffinity: ::c_long = __X32_SYSCALL_BIT + 203; -pub const SYS_sched_getaffinity: ::c_long = __X32_SYSCALL_BIT + 204; -pub const SYS_io_destroy: ::c_long = __X32_SYSCALL_BIT + 207; -pub const SYS_io_getevents: ::c_long = __X32_SYSCALL_BIT + 208; -pub const SYS_io_cancel: ::c_long = __X32_SYSCALL_BIT + 210; -pub const SYS_lookup_dcookie: ::c_long = __X32_SYSCALL_BIT + 212; -pub const SYS_epoll_create: ::c_long = __X32_SYSCALL_BIT + 213; -pub const SYS_remap_file_pages: ::c_long = __X32_SYSCALL_BIT + 216; -pub const SYS_getdents64: ::c_long = __X32_SYSCALL_BIT + 217; -pub const SYS_set_tid_address: ::c_long = __X32_SYSCALL_BIT + 218; -pub const SYS_restart_syscall: ::c_long = __X32_SYSCALL_BIT + 219; -pub const SYS_semtimedop: ::c_long = __X32_SYSCALL_BIT + 220; -pub const SYS_fadvise64: ::c_long = __X32_SYSCALL_BIT + 221; -pub const SYS_timer_settime: ::c_long = __X32_SYSCALL_BIT + 223; -pub const SYS_timer_gettime: ::c_long = __X32_SYSCALL_BIT + 224; -pub const SYS_timer_getoverrun: ::c_long = __X32_SYSCALL_BIT + 225; -pub const SYS_timer_delete: ::c_long = __X32_SYSCALL_BIT + 226; -pub const SYS_clock_settime: ::c_long = __X32_SYSCALL_BIT + 227; -pub const SYS_clock_gettime: ::c_long = __X32_SYSCALL_BIT + 228; -pub const SYS_clock_getres: ::c_long = __X32_SYSCALL_BIT + 229; -pub const SYS_clock_nanosleep: ::c_long = __X32_SYSCALL_BIT + 230; -pub const SYS_exit_group: ::c_long = __X32_SYSCALL_BIT + 231; -pub const SYS_epoll_wait: ::c_long = __X32_SYSCALL_BIT + 232; -pub const SYS_epoll_ctl: ::c_long = __X32_SYSCALL_BIT + 233; -pub const SYS_tgkill: ::c_long = __X32_SYSCALL_BIT + 234; -pub const SYS_utimes: ::c_long = __X32_SYSCALL_BIT + 235; -pub const SYS_mbind: ::c_long = __X32_SYSCALL_BIT + 237; -pub const SYS_set_mempolicy: ::c_long = __X32_SYSCALL_BIT + 238; -pub const SYS_get_mempolicy: ::c_long = __X32_SYSCALL_BIT + 239; -pub const SYS_mq_open: ::c_long = __X32_SYSCALL_BIT + 240; -pub const SYS_mq_unlink: ::c_long = __X32_SYSCALL_BIT + 241; -pub const SYS_mq_timedsend: ::c_long = __X32_SYSCALL_BIT + 242; -pub const SYS_mq_timedreceive: ::c_long = __X32_SYSCALL_BIT + 243; -pub const SYS_mq_getsetattr: ::c_long = __X32_SYSCALL_BIT + 245; -pub const SYS_add_key: ::c_long = __X32_SYSCALL_BIT + 248; -pub const SYS_request_key: ::c_long = __X32_SYSCALL_BIT + 249; -pub const SYS_keyctl: ::c_long = __X32_SYSCALL_BIT + 250; -pub const SYS_ioprio_set: ::c_long = __X32_SYSCALL_BIT + 251; -pub const SYS_ioprio_get: ::c_long = __X32_SYSCALL_BIT + 252; -pub const SYS_inotify_init: ::c_long = __X32_SYSCALL_BIT + 253; -pub const SYS_inotify_add_watch: ::c_long = __X32_SYSCALL_BIT + 254; -pub const SYS_inotify_rm_watch: ::c_long = __X32_SYSCALL_BIT + 255; -pub const SYS_migrate_pages: ::c_long = __X32_SYSCALL_BIT + 256; -pub const SYS_openat: ::c_long = __X32_SYSCALL_BIT + 257; -pub const SYS_mkdirat: ::c_long = __X32_SYSCALL_BIT + 258; -pub const SYS_mknodat: ::c_long = __X32_SYSCALL_BIT + 259; -pub const SYS_fchownat: ::c_long = __X32_SYSCALL_BIT + 260; -pub const SYS_futimesat: ::c_long = __X32_SYSCALL_BIT + 261; -pub const SYS_newfstatat: ::c_long = __X32_SYSCALL_BIT + 262; -pub const SYS_unlinkat: ::c_long = __X32_SYSCALL_BIT + 263; -pub const SYS_renameat: ::c_long = __X32_SYSCALL_BIT + 264; -pub const SYS_linkat: ::c_long = __X32_SYSCALL_BIT + 265; -pub const SYS_symlinkat: ::c_long = __X32_SYSCALL_BIT + 266; -pub const SYS_readlinkat: ::c_long = __X32_SYSCALL_BIT + 267; -pub const SYS_fchmodat: ::c_long = __X32_SYSCALL_BIT + 268; -pub const SYS_faccessat: ::c_long = __X32_SYSCALL_BIT + 269; -pub const SYS_pselect6: ::c_long = __X32_SYSCALL_BIT + 270; -pub const SYS_ppoll: ::c_long = __X32_SYSCALL_BIT + 271; -pub const SYS_unshare: ::c_long = __X32_SYSCALL_BIT + 272; -pub const SYS_splice: ::c_long = __X32_SYSCALL_BIT + 275; -pub const SYS_tee: ::c_long = __X32_SYSCALL_BIT + 276; -pub const SYS_sync_file_range: ::c_long = __X32_SYSCALL_BIT + 277; -pub const SYS_utimensat: ::c_long = __X32_SYSCALL_BIT + 280; -pub const SYS_epoll_pwait: ::c_long = __X32_SYSCALL_BIT + 281; -pub const SYS_signalfd: ::c_long = __X32_SYSCALL_BIT + 282; -pub const SYS_timerfd_create: ::c_long = __X32_SYSCALL_BIT + 283; -pub const SYS_eventfd: ::c_long = __X32_SYSCALL_BIT + 284; -pub const SYS_fallocate: ::c_long = __X32_SYSCALL_BIT + 285; -pub const SYS_timerfd_settime: ::c_long = __X32_SYSCALL_BIT + 286; -pub const SYS_timerfd_gettime: ::c_long = __X32_SYSCALL_BIT + 287; -pub const SYS_accept4: ::c_long = __X32_SYSCALL_BIT + 288; -pub const SYS_signalfd4: ::c_long = __X32_SYSCALL_BIT + 289; -pub const SYS_eventfd2: ::c_long = __X32_SYSCALL_BIT + 290; -pub const SYS_epoll_create1: ::c_long = __X32_SYSCALL_BIT + 291; -pub const SYS_dup3: ::c_long = __X32_SYSCALL_BIT + 292; -pub const SYS_pipe2: ::c_long = __X32_SYSCALL_BIT + 293; -pub const SYS_inotify_init1: ::c_long = __X32_SYSCALL_BIT + 294; -pub const SYS_perf_event_open: ::c_long = __X32_SYSCALL_BIT + 298; -pub const SYS_fanotify_init: ::c_long = __X32_SYSCALL_BIT + 300; -pub const SYS_fanotify_mark: ::c_long = __X32_SYSCALL_BIT + 301; -pub const SYS_prlimit64: ::c_long = __X32_SYSCALL_BIT + 302; -pub const SYS_name_to_handle_at: ::c_long = __X32_SYSCALL_BIT + 303; -pub const SYS_open_by_handle_at: ::c_long = __X32_SYSCALL_BIT + 304; -pub const SYS_clock_adjtime: ::c_long = __X32_SYSCALL_BIT + 305; -pub const SYS_syncfs: ::c_long = __X32_SYSCALL_BIT + 306; -pub const SYS_setns: ::c_long = __X32_SYSCALL_BIT + 308; -pub const SYS_getcpu: ::c_long = __X32_SYSCALL_BIT + 309; -pub const SYS_kcmp: ::c_long = __X32_SYSCALL_BIT + 312; -pub const SYS_finit_module: ::c_long = __X32_SYSCALL_BIT + 313; -pub const SYS_sched_setattr: ::c_long = __X32_SYSCALL_BIT + 314; -pub const SYS_sched_getattr: ::c_long = __X32_SYSCALL_BIT + 315; -pub const SYS_renameat2: ::c_long = __X32_SYSCALL_BIT + 316; -pub const SYS_seccomp: ::c_long = __X32_SYSCALL_BIT + 317; -pub const SYS_getrandom: ::c_long = __X32_SYSCALL_BIT + 318; -pub const SYS_memfd_create: ::c_long = __X32_SYSCALL_BIT + 319; -pub const SYS_kexec_file_load: ::c_long = __X32_SYSCALL_BIT + 320; -pub const SYS_bpf: ::c_long = __X32_SYSCALL_BIT + 321; -pub const SYS_userfaultfd: ::c_long = __X32_SYSCALL_BIT + 323; -pub const SYS_membarrier: ::c_long = __X32_SYSCALL_BIT + 324; -pub const SYS_mlock2: ::c_long = __X32_SYSCALL_BIT + 325; -pub const SYS_copy_file_range: ::c_long = __X32_SYSCALL_BIT + 326; -pub const SYS_pkey_mprotect: ::c_long = __X32_SYSCALL_BIT + 329; -pub const SYS_pkey_alloc: ::c_long = __X32_SYSCALL_BIT + 330; -pub const SYS_pkey_free: ::c_long = __X32_SYSCALL_BIT + 331; -pub const SYS_statx: ::c_long = __X32_SYSCALL_BIT + 332; -pub const SYS_rseq: ::c_long = __X32_SYSCALL_BIT + 334; -pub const SYS_pidfd_send_signal: ::c_long = __X32_SYSCALL_BIT + 424; -pub const SYS_io_uring_setup: ::c_long = __X32_SYSCALL_BIT + 425; -pub const SYS_io_uring_enter: ::c_long = __X32_SYSCALL_BIT + 426; -pub const SYS_io_uring_register: ::c_long = __X32_SYSCALL_BIT + 427; -pub const SYS_open_tree: ::c_long = __X32_SYSCALL_BIT + 428; -pub const SYS_move_mount: ::c_long = __X32_SYSCALL_BIT + 429; -pub const SYS_fsopen: ::c_long = __X32_SYSCALL_BIT + 430; -pub const SYS_fsconfig: ::c_long = __X32_SYSCALL_BIT + 431; -pub const SYS_fsmount: ::c_long = __X32_SYSCALL_BIT + 432; -pub const SYS_fspick: ::c_long = __X32_SYSCALL_BIT + 433; -pub const SYS_pidfd_open: ::c_long = __X32_SYSCALL_BIT + 434; -pub const SYS_clone3: ::c_long = __X32_SYSCALL_BIT + 435; -pub const SYS_close_range: ::c_long = __X32_SYSCALL_BIT + 436; -pub const SYS_openat2: ::c_long = __X32_SYSCALL_BIT + 437; -pub const SYS_pidfd_getfd: ::c_long = __X32_SYSCALL_BIT + 438; -pub const SYS_faccessat2: ::c_long = __X32_SYSCALL_BIT + 439; -pub const SYS_process_madvise: ::c_long = __X32_SYSCALL_BIT + 440; -pub const SYS_epoll_pwait2: ::c_long = __X32_SYSCALL_BIT + 441; -pub const SYS_mount_setattr: ::c_long = __X32_SYSCALL_BIT + 442; -pub const SYS_quotactl_fd: ::c_long = __X32_SYSCALL_BIT + 443; -pub const SYS_landlock_create_ruleset: ::c_long = __X32_SYSCALL_BIT + 444; -pub const SYS_landlock_add_rule: ::c_long = __X32_SYSCALL_BIT + 445; -pub const SYS_landlock_restrict_self: ::c_long = __X32_SYSCALL_BIT + 446; -pub const SYS_memfd_secret: ::c_long = __X32_SYSCALL_BIT + 447; -pub const SYS_process_mrelease: ::c_long = __X32_SYSCALL_BIT + 448; -pub const SYS_futex_waitv: ::c_long = __X32_SYSCALL_BIT + 449; -pub const SYS_set_mempolicy_home_node: ::c_long = __X32_SYSCALL_BIT + 450; -pub const SYS_rt_sigaction: ::c_long = __X32_SYSCALL_BIT + 512; -pub const SYS_rt_sigreturn: ::c_long = __X32_SYSCALL_BIT + 513; -pub const SYS_ioctl: ::c_long = __X32_SYSCALL_BIT + 514; -pub const SYS_readv: ::c_long = __X32_SYSCALL_BIT + 515; -pub const SYS_writev: ::c_long = __X32_SYSCALL_BIT + 516; -pub const SYS_recvfrom: ::c_long = __X32_SYSCALL_BIT + 517; -pub const SYS_sendmsg: ::c_long = __X32_SYSCALL_BIT + 518; -pub const SYS_recvmsg: ::c_long = __X32_SYSCALL_BIT + 519; -pub const SYS_execve: ::c_long = __X32_SYSCALL_BIT + 520; -pub const SYS_ptrace: ::c_long = __X32_SYSCALL_BIT + 521; -pub const SYS_rt_sigpending: ::c_long = __X32_SYSCALL_BIT + 522; -pub const SYS_rt_sigtimedwait: ::c_long = __X32_SYSCALL_BIT + 523; -pub const SYS_rt_sigqueueinfo: ::c_long = __X32_SYSCALL_BIT + 524; -pub const SYS_sigaltstack: ::c_long = __X32_SYSCALL_BIT + 525; -pub const SYS_timer_create: ::c_long = __X32_SYSCALL_BIT + 526; -pub const SYS_mq_notify: ::c_long = __X32_SYSCALL_BIT + 527; -pub const SYS_kexec_load: ::c_long = __X32_SYSCALL_BIT + 528; -pub const SYS_waitid: ::c_long = __X32_SYSCALL_BIT + 529; -pub const SYS_set_robust_list: ::c_long = __X32_SYSCALL_BIT + 530; -pub const SYS_get_robust_list: ::c_long = __X32_SYSCALL_BIT + 531; -pub const SYS_vmsplice: ::c_long = __X32_SYSCALL_BIT + 532; -pub const SYS_move_pages: ::c_long = __X32_SYSCALL_BIT + 533; -pub const SYS_preadv: ::c_long = __X32_SYSCALL_BIT + 534; -pub const SYS_pwritev: ::c_long = __X32_SYSCALL_BIT + 535; -pub const SYS_rt_tgsigqueueinfo: ::c_long = __X32_SYSCALL_BIT + 536; -pub const SYS_recvmmsg: ::c_long = __X32_SYSCALL_BIT + 537; -pub const SYS_sendmmsg: ::c_long = __X32_SYSCALL_BIT + 538; -pub const SYS_process_vm_readv: ::c_long = __X32_SYSCALL_BIT + 539; -pub const SYS_process_vm_writev: ::c_long = __X32_SYSCALL_BIT + 540; -pub const SYS_setsockopt: ::c_long = __X32_SYSCALL_BIT + 541; -pub const SYS_getsockopt: ::c_long = __X32_SYSCALL_BIT + 542; -pub const SYS_io_setup: ::c_long = __X32_SYSCALL_BIT + 543; -pub const SYS_io_submit: ::c_long = __X32_SYSCALL_BIT + 544; -pub const SYS_execveat: ::c_long = __X32_SYSCALL_BIT + 545; -pub const SYS_preadv2: ::c_long = __X32_SYSCALL_BIT + 546; -pub const SYS_pwritev2: ::c_long = __X32_SYSCALL_BIT + 547; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/mod.rs deleted file mode 100644 index ba4664bf5..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/mod.rs +++ /dev/null @@ -1,1410 +0,0 @@ -pub type pthread_t = c_ulong; -pub type __priority_which_t = ::c_uint; -pub type __rlimit_resource_t = ::c_uint; -pub type Lmid_t = ::c_long; -pub type regoff_t = ::c_int; - -cfg_if! { - if #[cfg(doc)] { - // Used in `linux::arch` to define ioctl constants. - pub(crate) type Ioctl = ::c_ulong; - } else { - #[doc(hidden)] - pub type Ioctl = ::c_ulong; - } -} - -s! { - pub struct statx { - pub stx_mask: u32, - pub stx_blksize: u32, - pub stx_attributes: u64, - pub stx_nlink: u32, - pub stx_uid: u32, - pub stx_gid: u32, - pub stx_mode: u16, - __statx_pad1: [u16; 1], - pub stx_ino: u64, - pub stx_size: u64, - pub stx_blocks: u64, - pub stx_attributes_mask: u64, - pub stx_atime: ::statx_timestamp, - pub stx_btime: ::statx_timestamp, - pub stx_ctime: ::statx_timestamp, - pub stx_mtime: ::statx_timestamp, - pub stx_rdev_major: u32, - pub stx_rdev_minor: u32, - pub stx_dev_major: u32, - pub stx_dev_minor: u32, - pub stx_mnt_id: u64, - pub stx_dio_mem_align: u32, - pub stx_dio_offset_align: u32, - __statx_pad3: [u64; 12], - } - - pub struct statx_timestamp { - pub tv_sec: i64, - pub tv_nsec: u32, - pub __statx_timestamp_pad1: [i32; 1], - } - - pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, - __next_prio: *mut aiocb, - __abs_prio: ::c_int, - __policy: ::c_int, - __error_code: ::c_int, - __return_value: ::ssize_t, - pub aio_offset: off_t, - #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))] - __unused1: [::c_char; 4], - __glibc_reserved: [::c_char; 32] - } - - pub struct __exit_status { - pub e_termination: ::c_short, - pub e_exit: ::c_short, - } - - pub struct __timeval { - pub tv_sec: i32, - pub tv_usec: i32, - } - - pub struct glob64_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut ::c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::size_t, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::size_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - #[cfg(not(any( - target_arch = "sparc", - target_arch = "sparc64", - target_arch = "mips", - target_arch = "mips64")))] - pub c_ispeed: ::speed_t, - #[cfg(not(any( - target_arch = "sparc", - target_arch = "sparc64", - target_arch = "mips", - target_arch = "mips64")))] - pub c_ospeed: ::speed_t, - } - - pub struct mallinfo { - pub arena: ::c_int, - pub ordblks: ::c_int, - pub smblks: ::c_int, - pub hblks: ::c_int, - pub hblkhd: ::c_int, - pub usmblks: ::c_int, - pub fsmblks: ::c_int, - pub uordblks: ::c_int, - pub fordblks: ::c_int, - pub keepcost: ::c_int, - } - - pub struct mallinfo2 { - pub arena: ::size_t, - pub ordblks: ::size_t, - pub smblks: ::size_t, - pub hblks: ::size_t, - pub hblkhd: ::size_t, - pub usmblks: ::size_t, - pub fsmblks: ::size_t, - pub uordblks: ::size_t, - pub fordblks: ::size_t, - pub keepcost: ::size_t, - } - - pub struct nl_pktinfo { - pub group: u32, - } - - pub struct nl_mmap_req { - pub nm_block_size: ::c_uint, - pub nm_block_nr: ::c_uint, - pub nm_frame_size: ::c_uint, - pub nm_frame_nr: ::c_uint, - } - - pub struct nl_mmap_hdr { - pub nm_status: ::c_uint, - pub nm_len: ::c_uint, - pub nm_group: u32, - pub nm_pid: u32, - pub nm_uid: u32, - pub nm_gid: u32, - } - - pub struct rtentry { - pub rt_pad1: ::c_ulong, - pub rt_dst: ::sockaddr, - pub rt_gateway: ::sockaddr, - pub rt_genmask: ::sockaddr, - pub rt_flags: ::c_ushort, - pub rt_pad2: ::c_short, - pub rt_pad3: ::c_ulong, - pub rt_tos: ::c_uchar, - pub rt_class: ::c_uchar, - #[cfg(target_pointer_width = "64")] - pub rt_pad4: [::c_short; 3usize], - #[cfg(not(target_pointer_width = "64"))] - pub rt_pad4: ::c_short, - pub rt_metric: ::c_short, - pub rt_dev: *mut ::c_char, - pub rt_mtu: ::c_ulong, - pub rt_window: ::c_ulong, - pub rt_irtt: ::c_ushort, - } - - pub struct timex { - pub modes: ::c_uint, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub offset: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub offset: ::c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub freq: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub freq: ::c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub maxerror: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub maxerror: ::c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub esterror: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub esterror: ::c_long, - pub status: ::c_int, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub constant: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub constant: ::c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub precision: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub precision: ::c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub tolerance: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub tolerance: ::c_long, - pub time: ::timeval, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub tick: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub tick: ::c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub ppsfreq: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub ppsfreq: ::c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub jitter: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub jitter: ::c_long, - pub shift: ::c_int, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub stabil: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub stabil: ::c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub jitcnt: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub jitcnt: ::c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub calcnt: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub calcnt: ::c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub errcnt: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub errcnt: ::c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub stbcnt: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub stbcnt: ::c_long, - pub tai: ::c_int, - pub __unused1: i32, - pub __unused2: i32, - pub __unused3: i32, - pub __unused4: i32, - pub __unused5: i32, - pub __unused6: i32, - pub __unused7: i32, - pub __unused8: i32, - pub __unused9: i32, - pub __unused10: i32, - pub __unused11: i32, - } - - pub struct ntptimeval { - pub time: ::timeval, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub tai: ::c_long, - pub __glibc_reserved1: ::c_long, - pub __glibc_reserved2: ::c_long, - pub __glibc_reserved3: ::c_long, - pub __glibc_reserved4: ::c_long, - } - - pub struct regex_t { - __buffer: *mut ::c_void, - __allocated: ::size_t, - __used: ::size_t, - __syntax: ::c_ulong, - __fastmap: *mut ::c_char, - __translate: *mut ::c_char, - __re_nsub: ::size_t, - __bitfield: u8, - } - - pub struct Elf64_Chdr { - pub ch_type: ::Elf64_Word, - pub ch_reserved: ::Elf64_Word, - pub ch_size: ::Elf64_Xword, - pub ch_addralign: ::Elf64_Xword, - } - - pub struct Elf32_Chdr { - pub ch_type: ::Elf32_Word, - pub ch_size: ::Elf32_Word, - pub ch_addralign: ::Elf32_Word, - } - - pub struct seminfo { - pub semmap: ::c_int, - pub semmni: ::c_int, - pub semmns: ::c_int, - pub semmnu: ::c_int, - pub semmsl: ::c_int, - pub semopm: ::c_int, - pub semume: ::c_int, - pub semusz: ::c_int, - pub semvmx: ::c_int, - pub semaem: ::c_int, - } - - pub struct ptrace_peeksiginfo_args { - pub off: ::__u64, - pub flags: ::__u32, - pub nr: ::__s32, - } - - pub struct __c_anonymous_ptrace_syscall_info_entry { - pub nr: ::__u64, - pub args: [::__u64; 6], - } - - pub struct __c_anonymous_ptrace_syscall_info_exit { - pub sval: ::__s64, - pub is_error: ::__u8, - } - - pub struct __c_anonymous_ptrace_syscall_info_seccomp { - pub nr: ::__u64, - pub args: [::__u64; 6], - pub ret_data: ::__u32, - } - - pub struct ptrace_syscall_info { - pub op: ::__u8, - pub pad: [::__u8; 3], - pub arch: ::__u32, - pub instruction_pointer: ::__u64, - pub stack_pointer: ::__u64, - #[cfg(libc_union)] - pub u: __c_anonymous_ptrace_syscall_info_data, - } -} - -impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { - #[repr(C)] - struct siginfo_sigfault { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - si_addr: *mut ::c_void, - } - (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr - } - - pub unsafe fn si_value(&self) -> ::sigval { - #[repr(C)] - struct siginfo_timer { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - _si_tid: ::c_int, - _si_overrun: ::c_int, - si_sigval: ::sigval, - } - (*(self as *const siginfo_t as *const siginfo_timer)).si_sigval - } -} - -cfg_if! { - if #[cfg(libc_union)] { - // Internal, for casts to access union fields - #[repr(C)] - struct sifields_sigchld { - si_pid: ::pid_t, - si_uid: ::uid_t, - si_status: ::c_int, - si_utime: ::c_long, - si_stime: ::c_long, - } - impl ::Copy for sifields_sigchld {} - impl ::Clone for sifields_sigchld { - fn clone(&self) -> sifields_sigchld { - *self - } - } - - // Internal, for casts to access union fields - #[repr(C)] - union sifields { - _align_pointer: *mut ::c_void, - sigchld: sifields_sigchld, - } - - // Internal, for casts to access union fields. Note that some variants - // of sifields start with a pointer, which makes the alignment of - // sifields vary on 32-bit and 64-bit architectures. - #[repr(C)] - struct siginfo_f { - _siginfo_base: [::c_int; 3], - sifields: sifields, - } - - impl siginfo_t { - unsafe fn sifields(&self) -> &sifields { - &(*(self as *const siginfo_t as *const siginfo_f)).sifields - } - - pub unsafe fn si_pid(&self) -> ::pid_t { - self.sifields().sigchld.si_pid - } - - pub unsafe fn si_uid(&self) -> ::uid_t { - self.sifields().sigchld.si_uid - } - - pub unsafe fn si_status(&self) -> ::c_int { - self.sifields().sigchld.si_status - } - - pub unsafe fn si_utime(&self) -> ::c_long { - self.sifields().sigchld.si_utime - } - - pub unsafe fn si_stime(&self) -> ::c_long { - self.sifields().sigchld.si_stime - } - } - - pub union __c_anonymous_ptrace_syscall_info_data { - pub entry: __c_anonymous_ptrace_syscall_info_entry, - pub exit: __c_anonymous_ptrace_syscall_info_exit, - pub seccomp: __c_anonymous_ptrace_syscall_info_seccomp, - } - impl ::Copy for __c_anonymous_ptrace_syscall_info_data {} - impl ::Clone for __c_anonymous_ptrace_syscall_info_data { - fn clone(&self) -> __c_anonymous_ptrace_syscall_info_data { - *self - } - } - } -} - -s_no_extra_traits! { - pub struct utmpx { - pub ut_type: ::c_short, - pub ut_pid: ::pid_t, - pub ut_line: [::c_char; __UT_LINESIZE], - pub ut_id: [::c_char; 4], - - pub ut_user: [::c_char; __UT_NAMESIZE], - pub ut_host: [::c_char; __UT_HOSTSIZE], - pub ut_exit: __exit_status, - - #[cfg(any(target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64", - all(target_pointer_width = "32", - not(target_arch = "x86_64"))))] - pub ut_session: ::c_long, - #[cfg(any(target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64", - all(target_pointer_width = "32", - not(target_arch = "x86_64"))))] - pub ut_tv: ::timeval, - - #[cfg(not(any(target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64", - all(target_pointer_width = "32", - not(target_arch = "x86_64")))))] - pub ut_session: i32, - #[cfg(not(any(target_arch = "aarch64", - target_arch = "s390x", - target_arch = "loongarch64", - all(target_pointer_width = "32", - not(target_arch = "x86_64")))))] - pub ut_tv: __timeval, - - pub ut_addr_v6: [i32; 4], - __glibc_reserved: [::c_char; 20], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - && self.ut_pid == other.ut_pid - && self.ut_line == other.ut_line - && self.ut_id == other.ut_id - && self.ut_user == other.ut_user - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) - && self.ut_exit == other.ut_exit - && self.ut_session == other.ut_session - && self.ut_tv == other.ut_tv - && self.ut_addr_v6 == other.ut_addr_v6 - && self.__glibc_reserved == other.__glibc_reserved - } - } - - impl Eq for utmpx {} - - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utmpx") - .field("ut_type", &self.ut_type) - .field("ut_pid", &self.ut_pid) - .field("ut_line", &self.ut_line) - .field("ut_id", &self.ut_id) - .field("ut_user", &self.ut_user) - // FIXME: .field("ut_host", &self.ut_host) - .field("ut_exit", &self.ut_exit) - .field("ut_session", &self.ut_session) - .field("ut_tv", &self.ut_tv) - .field("ut_addr_v6", &self.ut_addr_v6) - .field("__glibc_reserved", &self.__glibc_reserved) - .finish() - } - } - - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_type.hash(state); - self.ut_pid.hash(state); - self.ut_line.hash(state); - self.ut_id.hash(state); - self.ut_user.hash(state); - self.ut_host.hash(state); - self.ut_exit.hash(state); - self.ut_session.hash(state); - self.ut_tv.hash(state); - self.ut_addr_v6.hash(state); - self.__glibc_reserved.hash(state); - } - } - - #[cfg(libc_union)] - impl PartialEq for __c_anonymous_ptrace_syscall_info_data { - fn eq(&self, other: &__c_anonymous_ptrace_syscall_info_data) -> bool { - unsafe { - self.entry == other.entry || - self.exit == other.exit || - self.seccomp == other.seccomp - } - } - } - - #[cfg(libc_union)] - impl Eq for __c_anonymous_ptrace_syscall_info_data {} - - #[cfg(libc_union)] - impl ::fmt::Debug for __c_anonymous_ptrace_syscall_info_data { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - unsafe { - f.debug_struct("__c_anonymous_ptrace_syscall_info_data") - .field("entry", &self.entry) - .field("exit", &self.exit) - .field("seccomp", &self.seccomp) - .finish() - } - } - } - - #[cfg(libc_union)] - impl ::hash::Hash for __c_anonymous_ptrace_syscall_info_data { - fn hash(&self, state: &mut H) { - unsafe { - self.entry.hash(state); - self.exit.hash(state); - self.seccomp.hash(state); - } - } - } - } -} - -// include/uapi/asm-generic/hugetlb_encode.h -pub const HUGETLB_FLAG_ENCODE_SHIFT: ::c_int = 26; -pub const HUGETLB_FLAG_ENCODE_MASK: ::c_int = 0x3f; - -pub const HUGETLB_FLAG_ENCODE_64KB: ::c_int = 16 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_512KB: ::c_int = 19 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_1MB: ::c_int = 20 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_2MB: ::c_int = 21 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_8MB: ::c_int = 23 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_16MB: ::c_int = 24 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_32MB: ::c_int = 25 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_256MB: ::c_int = 28 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_512MB: ::c_int = 29 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_1GB: ::c_int = 30 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_2GB: ::c_int = 31 << HUGETLB_FLAG_ENCODE_SHIFT; -pub const HUGETLB_FLAG_ENCODE_16GB: ::c_int = 34 << HUGETLB_FLAG_ENCODE_SHIFT; - -// include/uapi/linux/mman.h -/* - * Huge page size encoding when MAP_HUGETLB is specified, and a huge page - * size other than the default is desired. See hugetlb_encode.h. - * All known huge page size encodings are provided here. It is the - * responsibility of the application to know which sizes are supported on - * the running system. See mmap(2) man page for details. - */ -pub const MAP_HUGE_SHIFT: ::c_int = HUGETLB_FLAG_ENCODE_SHIFT; -pub const MAP_HUGE_MASK: ::c_int = HUGETLB_FLAG_ENCODE_MASK; - -pub const MAP_HUGE_64KB: ::c_int = HUGETLB_FLAG_ENCODE_64KB; -pub const MAP_HUGE_512KB: ::c_int = HUGETLB_FLAG_ENCODE_512KB; -pub const MAP_HUGE_1MB: ::c_int = HUGETLB_FLAG_ENCODE_1MB; -pub const MAP_HUGE_2MB: ::c_int = HUGETLB_FLAG_ENCODE_2MB; -pub const MAP_HUGE_8MB: ::c_int = HUGETLB_FLAG_ENCODE_8MB; -pub const MAP_HUGE_16MB: ::c_int = HUGETLB_FLAG_ENCODE_16MB; -pub const MAP_HUGE_32MB: ::c_int = HUGETLB_FLAG_ENCODE_32MB; -pub const MAP_HUGE_256MB: ::c_int = HUGETLB_FLAG_ENCODE_256MB; -pub const MAP_HUGE_512MB: ::c_int = HUGETLB_FLAG_ENCODE_512MB; -pub const MAP_HUGE_1GB: ::c_int = HUGETLB_FLAG_ENCODE_1GB; -pub const MAP_HUGE_2GB: ::c_int = HUGETLB_FLAG_ENCODE_2GB; -pub const MAP_HUGE_16GB: ::c_int = HUGETLB_FLAG_ENCODE_16GB; - -pub const PRIO_PROCESS: ::__priority_which_t = 0; -pub const PRIO_PGRP: ::__priority_which_t = 1; -pub const PRIO_USER: ::__priority_which_t = 2; - -pub const MS_RMT_MASK: ::c_ulong = 0x02800051; - -pub const __UT_LINESIZE: usize = 32; -pub const __UT_NAMESIZE: usize = 32; -pub const __UT_HOSTSIZE: usize = 256; -pub const EMPTY: ::c_short = 0; -pub const RUN_LVL: ::c_short = 1; -pub const BOOT_TIME: ::c_short = 2; -pub const NEW_TIME: ::c_short = 3; -pub const OLD_TIME: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const USER_PROCESS: ::c_short = 7; -pub const DEAD_PROCESS: ::c_short = 8; -pub const ACCOUNTING: ::c_short = 9; - -// dlfcn.h -pub const LM_ID_BASE: ::c_long = 0; -pub const LM_ID_NEWLM: ::c_long = -1; - -pub const RTLD_DI_LMID: ::c_int = 1; -pub const RTLD_DI_LINKMAP: ::c_int = 2; -pub const RTLD_DI_CONFIGADDR: ::c_int = 3; -pub const RTLD_DI_SERINFO: ::c_int = 4; -pub const RTLD_DI_SERINFOSIZE: ::c_int = 5; -pub const RTLD_DI_ORIGIN: ::c_int = 6; -pub const RTLD_DI_PROFILENAME: ::c_int = 7; -pub const RTLD_DI_PROFILEOUT: ::c_int = 8; -pub const RTLD_DI_TLS_MODID: ::c_int = 9; -pub const RTLD_DI_TLS_DATA: ::c_int = 10; - -pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK; -pub const PIDFD_NONBLOCK: ::c_uint = O_NONBLOCK as ::c_uint; - -pub const SOL_RXRPC: ::c_int = 272; -pub const SOL_PPPOL2TP: ::c_int = 273; -pub const SOL_PNPIPE: ::c_int = 275; -pub const SOL_RDS: ::c_int = 276; -pub const SOL_IUCV: ::c_int = 277; -pub const SOL_CAIF: ::c_int = 278; -pub const SOL_NFC: ::c_int = 280; -pub const SOL_XDP: ::c_int = 283; - -pub const MSG_TRYHARD: ::c_int = 4; - -pub const LC_PAPER: ::c_int = 7; -pub const LC_NAME: ::c_int = 8; -pub const LC_ADDRESS: ::c_int = 9; -pub const LC_TELEPHONE: ::c_int = 10; -pub const LC_MEASUREMENT: ::c_int = 11; -pub const LC_IDENTIFICATION: ::c_int = 12; -pub const LC_PAPER_MASK: ::c_int = 1 << LC_PAPER; -pub const LC_NAME_MASK: ::c_int = 1 << LC_NAME; -pub const LC_ADDRESS_MASK: ::c_int = 1 << LC_ADDRESS; -pub const LC_TELEPHONE_MASK: ::c_int = 1 << LC_TELEPHONE; -pub const LC_MEASUREMENT_MASK: ::c_int = 1 << LC_MEASUREMENT; -pub const LC_IDENTIFICATION_MASK: ::c_int = 1 << LC_IDENTIFICATION; -pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK - | ::LC_NUMERIC_MASK - | ::LC_TIME_MASK - | ::LC_COLLATE_MASK - | ::LC_MONETARY_MASK - | ::LC_MESSAGES_MASK - | LC_PAPER_MASK - | LC_NAME_MASK - | LC_ADDRESS_MASK - | LC_TELEPHONE_MASK - | LC_MEASUREMENT_MASK - | LC_IDENTIFICATION_MASK; - -pub const ENOTSUP: ::c_int = EOPNOTSUPP; - -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_DCCP: ::c_int = 6; -pub const SOCK_PACKET: ::c_int = 10; - -pub const FAN_MARK_INODE: ::c_uint = 0x0000_0000; -pub const FAN_MARK_MOUNT: ::c_uint = 0x0000_0010; -// NOTE: FAN_MARK_FILESYSTEM requires Linux Kernel >= 4.20.0 -pub const FAN_MARK_FILESYSTEM: ::c_uint = 0x0000_0100; - -pub const AF_IB: ::c_int = 27; -pub const AF_MPLS: ::c_int = 28; -pub const AF_NFC: ::c_int = 39; -pub const AF_VSOCK: ::c_int = 40; -pub const AF_XDP: ::c_int = 44; -pub const PF_IB: ::c_int = AF_IB; -pub const PF_MPLS: ::c_int = AF_MPLS; -pub const PF_NFC: ::c_int = AF_NFC; -pub const PF_VSOCK: ::c_int = AF_VSOCK; -pub const PF_XDP: ::c_int = AF_XDP; - -pub const SIGEV_THREAD_ID: ::c_int = 4; - -pub const BUFSIZ: ::c_uint = 8192; -pub const TMP_MAX: ::c_uint = 238328; -pub const FOPEN_MAX: ::c_uint = 16; -pub const FILENAME_MAX: ::c_uint = 4096; -pub const POSIX_MADV_DONTNEED: ::c_int = 4; -pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41; -pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45; -pub const _SC_PII: ::c_int = 53; -pub const _SC_PII_XTI: ::c_int = 54; -pub const _SC_PII_SOCKET: ::c_int = 55; -pub const _SC_PII_INTERNET: ::c_int = 56; -pub const _SC_PII_OSI: ::c_int = 57; -pub const _SC_POLL: ::c_int = 58; -pub const _SC_SELECT: ::c_int = 59; -pub const _SC_PII_INTERNET_STREAM: ::c_int = 61; -pub const _SC_PII_INTERNET_DGRAM: ::c_int = 62; -pub const _SC_PII_OSI_COTS: ::c_int = 63; -pub const _SC_PII_OSI_CLTS: ::c_int = 64; -pub const _SC_PII_OSI_M: ::c_int = 65; -pub const _SC_T_IOV_MAX: ::c_int = 66; -pub const _SC_2_C_VERSION: ::c_int = 96; -pub const _SC_CHAR_BIT: ::c_int = 101; -pub const _SC_CHAR_MAX: ::c_int = 102; -pub const _SC_CHAR_MIN: ::c_int = 103; -pub const _SC_INT_MAX: ::c_int = 104; -pub const _SC_INT_MIN: ::c_int = 105; -pub const _SC_LONG_BIT: ::c_int = 106; -pub const _SC_WORD_BIT: ::c_int = 107; -pub const _SC_MB_LEN_MAX: ::c_int = 108; -pub const _SC_SSIZE_MAX: ::c_int = 110; -pub const _SC_SCHAR_MAX: ::c_int = 111; -pub const _SC_SCHAR_MIN: ::c_int = 112; -pub const _SC_SHRT_MAX: ::c_int = 113; -pub const _SC_SHRT_MIN: ::c_int = 114; -pub const _SC_UCHAR_MAX: ::c_int = 115; -pub const _SC_UINT_MAX: ::c_int = 116; -pub const _SC_ULONG_MAX: ::c_int = 117; -pub const _SC_USHRT_MAX: ::c_int = 118; -pub const _SC_NL_ARGMAX: ::c_int = 119; -pub const _SC_NL_LANGMAX: ::c_int = 120; -pub const _SC_NL_MSGMAX: ::c_int = 121; -pub const _SC_NL_NMAX: ::c_int = 122; -pub const _SC_NL_SETMAX: ::c_int = 123; -pub const _SC_NL_TEXTMAX: ::c_int = 124; -pub const _SC_BASE: ::c_int = 134; -pub const _SC_C_LANG_SUPPORT: ::c_int = 135; -pub const _SC_C_LANG_SUPPORT_R: ::c_int = 136; -pub const _SC_DEVICE_IO: ::c_int = 140; -pub const _SC_DEVICE_SPECIFIC: ::c_int = 141; -pub const _SC_DEVICE_SPECIFIC_R: ::c_int = 142; -pub const _SC_FD_MGMT: ::c_int = 143; -pub const _SC_FIFO: ::c_int = 144; -pub const _SC_PIPE: ::c_int = 145; -pub const _SC_FILE_ATTRIBUTES: ::c_int = 146; -pub const _SC_FILE_LOCKING: ::c_int = 147; -pub const _SC_FILE_SYSTEM: ::c_int = 148; -pub const _SC_MULTI_PROCESS: ::c_int = 150; -pub const _SC_SINGLE_PROCESS: ::c_int = 151; -pub const _SC_NETWORKING: ::c_int = 152; -pub const _SC_REGEX_VERSION: ::c_int = 156; -pub const _SC_SIGNALS: ::c_int = 158; -pub const _SC_SYSTEM_DATABASE: ::c_int = 162; -pub const _SC_SYSTEM_DATABASE_R: ::c_int = 163; -pub const _SC_USER_GROUPS: ::c_int = 166; -pub const _SC_USER_GROUPS_R: ::c_int = 167; -pub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 190; -pub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 193; -pub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 196; -pub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 199; -pub const O_ACCMODE: ::c_int = 3; -pub const ST_RELATIME: ::c_ulong = 4096; -pub const NI_MAXHOST: ::socklen_t = 1025; - -// Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the -// following are only available on newer Linux versions than the versions -// currently used in CI in some configurations, so we define them here. -cfg_if! { - if #[cfg(not(target_arch = "s390x"))] { - pub const BINDERFS_SUPER_MAGIC: ::c_long = 0x6c6f6f70; - pub const XFS_SUPER_MAGIC: ::c_long = 0x58465342; - } else if #[cfg(target_arch = "s390x")] { - pub const BINDERFS_SUPER_MAGIC: ::c_uint = 0x6c6f6f70; - pub const XFS_SUPER_MAGIC: ::c_uint = 0x58465342; - } -} - -pub const CPU_SETSIZE: ::c_int = 0x400; - -pub const PTRACE_TRACEME: ::c_uint = 0; -pub const PTRACE_PEEKTEXT: ::c_uint = 1; -pub const PTRACE_PEEKDATA: ::c_uint = 2; -pub const PTRACE_PEEKUSER: ::c_uint = 3; -pub const PTRACE_POKETEXT: ::c_uint = 4; -pub const PTRACE_POKEDATA: ::c_uint = 5; -pub const PTRACE_POKEUSER: ::c_uint = 6; -pub const PTRACE_CONT: ::c_uint = 7; -pub const PTRACE_KILL: ::c_uint = 8; -pub const PTRACE_SINGLESTEP: ::c_uint = 9; -pub const PTRACE_ATTACH: ::c_uint = 16; -pub const PTRACE_SYSCALL: ::c_uint = 24; -pub const PTRACE_SETOPTIONS: ::c_uint = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_uint = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_uint = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_uint = 0x4203; -pub const PTRACE_GETREGSET: ::c_uint = 0x4204; -pub const PTRACE_SETREGSET: ::c_uint = 0x4205; -pub const PTRACE_SEIZE: ::c_uint = 0x4206; -pub const PTRACE_INTERRUPT: ::c_uint = 0x4207; -pub const PTRACE_LISTEN: ::c_uint = 0x4208; -pub const PTRACE_PEEKSIGINFO: ::c_uint = 0x4209; -pub const PTRACE_GET_SYSCALL_INFO: ::c_uint = 0x420e; -pub const PTRACE_SYSCALL_INFO_NONE: ::__u8 = 0; -pub const PTRACE_SYSCALL_INFO_ENTRY: ::__u8 = 1; -pub const PTRACE_SYSCALL_INFO_EXIT: ::__u8 = 2; -pub const PTRACE_SYSCALL_INFO_SECCOMP: ::__u8 = 3; - -// linux/fs.h - -// Flags for preadv2/pwritev2 -pub const RWF_HIPRI: ::c_int = 0x00000001; -pub const RWF_DSYNC: ::c_int = 0x00000002; -pub const RWF_SYNC: ::c_int = 0x00000004; -pub const RWF_NOWAIT: ::c_int = 0x00000008; -pub const RWF_APPEND: ::c_int = 0x00000010; - -// linux/rtnetlink.h -pub const TCA_PAD: ::c_ushort = 9; -pub const TCA_DUMP_INVISIBLE: ::c_ushort = 10; -pub const TCA_CHAIN: ::c_ushort = 11; -pub const TCA_HW_OFFLOAD: ::c_ushort = 12; - -pub const RTM_DELNETCONF: u16 = 81; -pub const RTM_NEWSTATS: u16 = 92; -pub const RTM_GETSTATS: u16 = 94; -pub const RTM_NEWCACHEREPORT: u16 = 96; - -pub const RTM_F_LOOKUP_TABLE: ::c_uint = 0x1000; -pub const RTM_F_FIB_MATCH: ::c_uint = 0x2000; - -pub const RTA_VIA: ::c_ushort = 18; -pub const RTA_NEWDST: ::c_ushort = 19; -pub const RTA_PREF: ::c_ushort = 20; -pub const RTA_ENCAP_TYPE: ::c_ushort = 21; -pub const RTA_ENCAP: ::c_ushort = 22; -pub const RTA_EXPIRES: ::c_ushort = 23; -pub const RTA_PAD: ::c_ushort = 24; -pub const RTA_UID: ::c_ushort = 25; -pub const RTA_TTL_PROPAGATE: ::c_ushort = 26; - -// linux/neighbor.h -pub const NTF_EXT_LEARNED: u8 = 0x10; -pub const NTF_OFFLOADED: u8 = 0x20; - -pub const NDA_MASTER: ::c_ushort = 9; -pub const NDA_LINK_NETNSID: ::c_ushort = 10; -pub const NDA_SRC_VNI: ::c_ushort = 11; - -// linux/personality.h -pub const UNAME26: ::c_int = 0x0020000; -pub const FDPIC_FUNCPTRS: ::c_int = 0x0080000; - -// linux/if_addr.h -pub const IFA_FLAGS: ::c_ushort = 8; - -pub const IFA_F_MANAGETEMPADDR: u32 = 0x100; -pub const IFA_F_NOPREFIXROUTE: u32 = 0x200; -pub const IFA_F_MCAUTOJOIN: u32 = 0x400; -pub const IFA_F_STABLE_PRIVACY: u32 = 0x800; - -pub const MAX_LINKS: ::c_int = 32; - -pub const GENL_UNS_ADMIN_PERM: ::c_int = 0x10; - -pub const GENL_ID_VFS_DQUOT: ::c_int = ::NLMSG_MIN_TYPE + 1; -pub const GENL_ID_PMCRAID: ::c_int = ::NLMSG_MIN_TYPE + 2; - -// elf.h -pub const NT_PRSTATUS: ::c_int = 1; -pub const NT_PRFPREG: ::c_int = 2; -pub const NT_FPREGSET: ::c_int = 2; -pub const NT_PRPSINFO: ::c_int = 3; -pub const NT_PRXREG: ::c_int = 4; -pub const NT_TASKSTRUCT: ::c_int = 4; -pub const NT_PLATFORM: ::c_int = 5; -pub const NT_AUXV: ::c_int = 6; -pub const NT_GWINDOWS: ::c_int = 7; -pub const NT_ASRS: ::c_int = 8; -pub const NT_PSTATUS: ::c_int = 10; -pub const NT_PSINFO: ::c_int = 13; -pub const NT_PRCRED: ::c_int = 14; -pub const NT_UTSNAME: ::c_int = 15; -pub const NT_LWPSTATUS: ::c_int = 16; -pub const NT_LWPSINFO: ::c_int = 17; -pub const NT_PRFPXREG: ::c_int = 20; - -pub const ELFOSABI_ARM_AEABI: u8 = 64; - -// linux/keyctl.h -pub const KEYCTL_DH_COMPUTE: u32 = 23; -pub const KEYCTL_PKEY_QUERY: u32 = 24; -pub const KEYCTL_PKEY_ENCRYPT: u32 = 25; -pub const KEYCTL_PKEY_DECRYPT: u32 = 26; -pub const KEYCTL_PKEY_SIGN: u32 = 27; -pub const KEYCTL_PKEY_VERIFY: u32 = 28; -pub const KEYCTL_RESTRICT_KEYRING: u32 = 29; - -pub const KEYCTL_SUPPORTS_ENCRYPT: u32 = 0x01; -pub const KEYCTL_SUPPORTS_DECRYPT: u32 = 0x02; -pub const KEYCTL_SUPPORTS_SIGN: u32 = 0x04; -pub const KEYCTL_SUPPORTS_VERIFY: u32 = 0x08; -cfg_if! { - if #[cfg(not(any(target_arch="mips", target_arch="mips64")))] { - pub const KEYCTL_MOVE: u32 = 30; - pub const KEYCTL_CAPABILITIES: u32 = 31; - - pub const KEYCTL_CAPS0_CAPABILITIES: u32 = 0x01; - pub const KEYCTL_CAPS0_PERSISTENT_KEYRINGS: u32 = 0x02; - pub const KEYCTL_CAPS0_DIFFIE_HELLMAN: u32 = 0x04; - pub const KEYCTL_CAPS0_PUBLIC_KEY: u32 = 0x08; - pub const KEYCTL_CAPS0_BIG_KEY: u32 = 0x10; - pub const KEYCTL_CAPS0_INVALIDATE: u32 = 0x20; - pub const KEYCTL_CAPS0_RESTRICT_KEYRING: u32 = 0x40; - pub const KEYCTL_CAPS0_MOVE: u32 = 0x80; - pub const KEYCTL_CAPS1_NS_KEYRING_NAME: u32 = 0x01; - pub const KEYCTL_CAPS1_NS_KEY_TAG: u32 = 0x02; - } -} - -pub const M_MXFAST: ::c_int = 1; -pub const M_NLBLKS: ::c_int = 2; -pub const M_GRAIN: ::c_int = 3; -pub const M_KEEP: ::c_int = 4; -pub const M_TRIM_THRESHOLD: ::c_int = -1; -pub const M_TOP_PAD: ::c_int = -2; -pub const M_MMAP_THRESHOLD: ::c_int = -3; -pub const M_MMAP_MAX: ::c_int = -4; -pub const M_CHECK_ACTION: ::c_int = -5; -pub const M_PERTURB: ::c_int = -6; -pub const M_ARENA_TEST: ::c_int = -7; -pub const M_ARENA_MAX: ::c_int = -8; - -pub const AT_STATX_SYNC_TYPE: ::c_int = 0x6000; -pub const AT_STATX_SYNC_AS_STAT: ::c_int = 0x0000; -pub const AT_STATX_FORCE_SYNC: ::c_int = 0x2000; -pub const AT_STATX_DONT_SYNC: ::c_int = 0x4000; -pub const STATX_TYPE: ::c_uint = 0x0001; -pub const STATX_MODE: ::c_uint = 0x0002; -pub const STATX_NLINK: ::c_uint = 0x0004; -pub const STATX_UID: ::c_uint = 0x0008; -pub const STATX_GID: ::c_uint = 0x0010; -pub const STATX_ATIME: ::c_uint = 0x0020; -pub const STATX_MTIME: ::c_uint = 0x0040; -pub const STATX_CTIME: ::c_uint = 0x0080; -pub const STATX_INO: ::c_uint = 0x0100; -pub const STATX_SIZE: ::c_uint = 0x0200; -pub const STATX_BLOCKS: ::c_uint = 0x0400; -pub const STATX_BASIC_STATS: ::c_uint = 0x07ff; -pub const STATX_BTIME: ::c_uint = 0x0800; -pub const STATX_MNT_ID: ::c_uint = 0x1000; -pub const STATX_DIOALIGN: ::c_uint = 0x2000; -pub const STATX_ALL: ::c_uint = 0x0fff; -pub const STATX__RESERVED: ::c_int = 0x80000000; -pub const STATX_ATTR_COMPRESSED: ::c_int = 0x0004; -pub const STATX_ATTR_IMMUTABLE: ::c_int = 0x0010; -pub const STATX_ATTR_APPEND: ::c_int = 0x0020; -pub const STATX_ATTR_NODUMP: ::c_int = 0x0040; -pub const STATX_ATTR_ENCRYPTED: ::c_int = 0x0800; -pub const STATX_ATTR_AUTOMOUNT: ::c_int = 0x1000; -pub const STATX_ATTR_MOUNT_ROOT: ::c_int = 0x2000; -pub const STATX_ATTR_VERITY: ::c_int = 0x00100000; -pub const STATX_ATTR_DAX: ::c_int = 0x00200000; - -pub const SOMAXCONN: ::c_int = 4096; - -//sys/timex.h -pub const ADJ_OFFSET: ::c_uint = 0x0001; -pub const ADJ_FREQUENCY: ::c_uint = 0x0002; -pub const ADJ_MAXERROR: ::c_uint = 0x0004; -pub const ADJ_ESTERROR: ::c_uint = 0x0008; -pub const ADJ_STATUS: ::c_uint = 0x0010; -pub const ADJ_TIMECONST: ::c_uint = 0x0020; -pub const ADJ_TAI: ::c_uint = 0x0080; -pub const ADJ_SETOFFSET: ::c_uint = 0x0100; -pub const ADJ_MICRO: ::c_uint = 0x1000; -pub const ADJ_NANO: ::c_uint = 0x2000; -pub const ADJ_TICK: ::c_uint = 0x4000; -pub const ADJ_OFFSET_SINGLESHOT: ::c_uint = 0x8001; -pub const ADJ_OFFSET_SS_READ: ::c_uint = 0xa001; -pub const MOD_OFFSET: ::c_uint = ADJ_OFFSET; -pub const MOD_FREQUENCY: ::c_uint = ADJ_FREQUENCY; -pub const MOD_MAXERROR: ::c_uint = ADJ_MAXERROR; -pub const MOD_ESTERROR: ::c_uint = ADJ_ESTERROR; -pub const MOD_STATUS: ::c_uint = ADJ_STATUS; -pub const MOD_TIMECONST: ::c_uint = ADJ_TIMECONST; -pub const MOD_CLKB: ::c_uint = ADJ_TICK; -pub const MOD_CLKA: ::c_uint = ADJ_OFFSET_SINGLESHOT; -pub const MOD_TAI: ::c_uint = ADJ_TAI; -pub const MOD_MICRO: ::c_uint = ADJ_MICRO; -pub const MOD_NANO: ::c_uint = ADJ_NANO; -pub const STA_PLL: ::c_int = 0x0001; -pub const STA_PPSFREQ: ::c_int = 0x0002; -pub const STA_PPSTIME: ::c_int = 0x0004; -pub const STA_FLL: ::c_int = 0x0008; -pub const STA_INS: ::c_int = 0x0010; -pub const STA_DEL: ::c_int = 0x0020; -pub const STA_UNSYNC: ::c_int = 0x0040; -pub const STA_FREQHOLD: ::c_int = 0x0080; -pub const STA_PPSSIGNAL: ::c_int = 0x0100; -pub const STA_PPSJITTER: ::c_int = 0x0200; -pub const STA_PPSWANDER: ::c_int = 0x0400; -pub const STA_PPSERROR: ::c_int = 0x0800; -pub const STA_CLOCKERR: ::c_int = 0x1000; -pub const STA_NANO: ::c_int = 0x2000; -pub const STA_MODE: ::c_int = 0x4000; -pub const STA_CLK: ::c_int = 0x8000; -pub const STA_RONLY: ::c_int = STA_PPSSIGNAL - | STA_PPSJITTER - | STA_PPSWANDER - | STA_PPSERROR - | STA_CLOCKERR - | STA_NANO - | STA_MODE - | STA_CLK; -pub const NTP_API: ::c_int = 4; -pub const TIME_OK: ::c_int = 0; -pub const TIME_INS: ::c_int = 1; -pub const TIME_DEL: ::c_int = 2; -pub const TIME_OOP: ::c_int = 3; -pub const TIME_WAIT: ::c_int = 4; -pub const TIME_ERROR: ::c_int = 5; -pub const TIME_BAD: ::c_int = TIME_ERROR; -pub const MAXTC: ::c_long = 6; - -cfg_if! { - if #[cfg(any( - target_arch = "arm", - target_arch = "x86", - target_arch = "x86_64", - target_arch = "s390x", - target_arch = "riscv64", - target_arch = "riscv32" - ))] { - pub const PTHREAD_STACK_MIN: ::size_t = 16384; - } else if #[cfg(any( - target_arch = "sparc", - target_arch = "sparc64" - ))] { - pub const PTHREAD_STACK_MIN: ::size_t = 0x6000; - } else { - pub const PTHREAD_STACK_MIN: ::size_t = 131072; - } -} -pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 3; - -pub const REG_STARTEND: ::c_int = 4; - -pub const REG_EEND: ::c_int = 14; -pub const REG_ESIZE: ::c_int = 15; -pub const REG_ERPAREN: ::c_int = 16; - -extern "C" { - pub fn fgetspent_r( - fp: *mut ::FILE, - spbuf: *mut ::spwd, - buf: *mut ::c_char, - buflen: ::size_t, - spbufp: *mut *mut ::spwd, - ) -> ::c_int; - pub fn sgetspent_r( - s: *const ::c_char, - spbuf: *mut ::spwd, - buf: *mut ::c_char, - buflen: ::size_t, - spbufp: *mut *mut ::spwd, - ) -> ::c_int; - pub fn getspent_r( - spbuf: *mut ::spwd, - buf: *mut ::c_char, - buflen: ::size_t, - spbufp: *mut *mut ::spwd, - ) -> ::c_int; - pub fn qsort_r( - base: *mut ::c_void, - num: ::size_t, - size: ::size_t, - compar: ::Option< - unsafe extern "C" fn(*const ::c_void, *const ::c_void, *mut ::c_void) -> ::c_int, - >, - arg: *mut ::c_void, - ); - pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - ) -> ::c_int; - pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - timeout: *mut ::timespec, - ) -> ::c_int; - - pub fn getrlimit64(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::__rlimit_resource_t, rlim: *const ::rlimit64) -> ::c_int; - pub fn getrlimit(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::__rlimit_resource_t, rlim: *const ::rlimit) -> ::c_int; - pub fn prlimit( - pid: ::pid_t, - resource: ::__rlimit_resource_t, - new_limit: *const ::rlimit, - old_limit: *mut ::rlimit, - ) -> ::c_int; - pub fn prlimit64( - pid: ::pid_t, - resource: ::__rlimit_resource_t, - new_limit: *const ::rlimit64, - old_limit: *mut ::rlimit64, - ) -> ::c_int; - pub fn utmpname(file: *const ::c_char) -> ::c_int; - pub fn utmpxname(file: *const ::c_char) -> ::c_int; - pub fn getutxent() -> *mut utmpx; - pub fn getutxid(ut: *const utmpx) -> *mut utmpx; - pub fn getutxline(ut: *const utmpx) -> *mut utmpx; - pub fn pututxline(ut: *const utmpx) -> *mut utmpx; - pub fn setutxent(); - pub fn endutxent(); - pub fn getpt() -> ::c_int; - pub fn mallopt(param: ::c_int, value: ::c_int) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; - pub fn statx( - dirfd: ::c_int, - pathname: *const c_char, - flags: ::c_int, - mask: ::c_uint, - statxbuf: *mut statx, - ) -> ::c_int; - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; - pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; - - pub fn adjtimex(buf: *mut timex) -> ::c_int; - pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; - #[link_name = "ntp_gettimex"] - pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; - pub fn clock_adjtime(clk_id: ::clockid_t, buf: *mut ::timex) -> ::c_int; - - pub fn fanotify_mark( - fd: ::c_int, - flags: ::c_uint, - mask: u64, - dirfd: ::c_int, - path: *const ::c_char, - ) -> ::c_int; - pub fn preadv2( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t, - flags: ::c_int, - ) -> ::ssize_t; - pub fn pwritev2( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t, - flags: ::c_int, - ) -> ::ssize_t; - pub fn preadv64v2( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - flags: ::c_int, - ) -> ::ssize_t; - pub fn pwritev64v2( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - flags: ::c_int, - ) -> ::ssize_t; - pub fn renameat2( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - flags: ::c_uint, - ) -> ::c_int; - - // Added in `glibc` 2.25 - pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t); - // Added in `glibc` 2.29 - pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; - - pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; - pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int; - pub fn glob64( - pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut glob64_t, - ) -> ::c_int; - pub fn globfree64(pglob: *mut glob64_t); - pub fn ptrace(request: ::c_uint, ...) -> ::c_long; - pub fn pthread_attr_getaffinity_np( - attr: *const ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t, - ) -> ::c_int; - pub fn pthread_attr_setaffinity_np( - attr: *mut ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t, - ) -> ::c_int; - pub fn getpriority(which: ::__priority_which_t, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::__priority_which_t, who: ::id_t, prio: ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_getkind_np( - attr: *const ::pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_setkind_np( - attr: *mut ::pthread_rwlockattr_t, - val: ::c_int, - ) -> ::c_int; - pub fn pthread_sigqueue(thread: ::pthread_t, sig: ::c_int, value: ::sigval) -> ::c_int; - pub fn mallinfo() -> ::mallinfo; - pub fn mallinfo2() -> ::mallinfo2; - pub fn malloc_info(options: ::c_int, stream: *mut ::FILE) -> ::c_int; - pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t; - pub fn getpwent_r( - pwd: *mut ::passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::passwd, - ) -> ::c_int; - pub fn getgrent_r( - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn fgetpwent_r( - stream: *mut ::FILE, - pwd: *mut ::passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::passwd, - ) -> ::c_int; - pub fn fgetgrent_r( - stream: *mut ::FILE, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - - pub fn putpwent(p: *const ::passwd, stream: *mut ::FILE) -> ::c_int; - pub fn putgrent(grp: *const ::group, stream: *mut ::FILE) -> ::c_int; - - pub fn sethostid(hostid: ::c_long) -> ::c_int; - - pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int; - pub fn mlock2(addr: *const ::c_void, len: ::size_t, flags: ::c_uint) -> ::c_int; - - pub fn euidaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; - pub fn eaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; - - pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; - pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char; - - pub fn strftime( - s: *mut ::c_char, - max: ::size_t, - format: *const ::c_char, - tm: *const ::tm, - ) -> ::size_t; - pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; - - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; - /// POSIX version of `basename(3)`, defined in `libgen.h`. - #[link_name = "__xpg_basename"] - pub fn posix_basename(path: *mut ::c_char) -> *mut ::c_char; - /// GNU version of `basename(3)`, defined in `string.h`. - #[link_name = "basename"] - pub fn gnu_basename(path: *const ::c_char) -> *mut ::c_char; - pub fn dlmopen(lmid: Lmid_t, filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; - pub fn dlinfo(handle: *mut ::c_void, request: ::c_int, info: *mut ::c_void) -> ::c_int; - pub fn dladdr1( - addr: *const ::c_void, - info: *mut ::Dl_info, - extra_info: *mut *mut ::c_void, - flags: ::c_int, - ) -> ::c_int; - pub fn malloc_trim(__pad: ::size_t) -> ::c_int; - pub fn gnu_get_libc_release() -> *const ::c_char; - pub fn gnu_get_libc_version() -> *const ::c_char; - - // posix/spawn.h - // Added in `glibc` 2.29 - pub fn posix_spawn_file_actions_addchdir_np( - actions: *mut ::posix_spawn_file_actions_t, - path: *const ::c_char, - ) -> ::c_int; - // Added in `glibc` 2.29 - pub fn posix_spawn_file_actions_addfchdir_np( - actions: *mut ::posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; - // Added in `glibc` 2.34 - pub fn posix_spawn_file_actions_addclosefrom_np( - actions: *mut ::posix_spawn_file_actions_t, - from: ::c_int, - ) -> ::c_int; - // Added in `glibc` 2.35 - pub fn posix_spawn_file_actions_addtcsetpgrp_np( - actions: *mut ::posix_spawn_file_actions_t, - tcfd: ::c_int, - ) -> ::c_int; - - // mntent.h - pub fn getmntent_r( - stream: *mut ::FILE, - mntbuf: *mut ::mntent, - buf: *mut ::c_char, - buflen: ::c_int, - ) -> *mut ::mntent; -} - -cfg_if! { - if #[cfg(any(target_arch = "x86", - target_arch = "arm", - target_arch = "m68k", - target_arch = "mips", - target_arch = "powerpc", - target_arch = "sparc", - target_arch = "riscv32"))] { - mod b32; - pub use self::b32::*; - } else if #[cfg(any(target_arch = "x86_64", - target_arch = "aarch64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "riscv64", - target_arch = "loongarch64"))] { - mod b64; - pub use self::b64::*; - } else { - // Unknown target_arch - } -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } else { - mod no_align; - pub use self::no_align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/no_align.rs deleted file mode 100644 index e32bf673d..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/gnu/no_align.rs +++ /dev/null @@ -1,10 +0,0 @@ -s! { - // FIXME this is actually a union - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - __align: [::c_long; 0], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/mod.rs deleted file mode 100644 index e52b3d3a8..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/mod.rs +++ /dev/null @@ -1,4921 +0,0 @@ -//! Linux-specific definitions for linux-like values - -pub type useconds_t = u32; -pub type dev_t = u64; -pub type socklen_t = u32; -pub type mode_t = u32; -pub type ino64_t = u64; -pub type off64_t = i64; -pub type blkcnt64_t = i64; -pub type rlim64_t = u64; -pub type mqd_t = ::c_int; -pub type nfds_t = ::c_ulong; -pub type nl_item = ::c_int; -pub type idtype_t = ::c_uint; -pub type loff_t = ::c_longlong; -pub type pthread_key_t = ::c_uint; -pub type pthread_spinlock_t = ::c_int; - -pub type __u8 = ::c_uchar; -pub type __u16 = ::c_ushort; -pub type __s16 = ::c_short; -pub type __u32 = ::c_uint; -pub type __s32 = ::c_int; - -pub type Elf32_Half = u16; -pub type Elf32_Word = u32; -pub type Elf32_Off = u32; -pub type Elf32_Addr = u32; - -pub type Elf64_Half = u16; -pub type Elf64_Word = u32; -pub type Elf64_Off = u64; -pub type Elf64_Addr = u64; -pub type Elf64_Xword = u64; -pub type Elf64_Sxword = i64; - -pub type Elf32_Section = u16; -pub type Elf64_Section = u16; - -// linux/can.h -pub type canid_t = u32; - -// linux/can/j1939.h -pub type can_err_mask_t = u32; -pub type pgn_t = u32; -pub type priority_t = u8; -pub type name_t = u64; - -pub type iconv_t = *mut ::c_void; - -// linux/sctp.h -pub type sctp_assoc_t = ::__s32; - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos64_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos64_t {} -impl ::Clone for fpos64_t { - fn clone(&self) -> fpos64_t { - *self - } -} - -s! { - pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - } - - pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - } - - pub struct spwd { - pub sp_namp: *mut ::c_char, - pub sp_pwdp: *mut ::c_char, - pub sp_lstchg: ::c_long, - pub sp_min: ::c_long, - pub sp_max: ::c_long, - pub sp_warn: ::c_long, - pub sp_inact: ::c_long, - pub sp_expire: ::c_long, - pub sp_flag: ::c_ulong, - } - - pub struct dqblk { - pub dqb_bhardlimit: u64, - pub dqb_bsoftlimit: u64, - pub dqb_curspace: u64, - pub dqb_ihardlimit: u64, - pub dqb_isoftlimit: u64, - pub dqb_curinodes: u64, - pub dqb_btime: u64, - pub dqb_itime: u64, - pub dqb_valid: u32, - } - - pub struct signalfd_siginfo { - pub ssi_signo: u32, - pub ssi_errno: i32, - pub ssi_code: i32, - pub ssi_pid: u32, - pub ssi_uid: u32, - pub ssi_fd: i32, - pub ssi_tid: u32, - pub ssi_band: u32, - pub ssi_overrun: u32, - pub ssi_trapno: u32, - pub ssi_status: i32, - pub ssi_int: i32, - pub ssi_ptr: u64, - pub ssi_utime: u64, - pub ssi_stime: u64, - pub ssi_addr: u64, - pub ssi_addr_lsb: u16, - _pad2: u16, - pub ssi_syscall: i32, - pub ssi_call_addr: u64, - pub ssi_arch: u32, - _pad: [u8; 28], - } - - pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, - } - - pub struct fsid_t { - __val: [::c_int; 2], - } - - pub struct packet_mreq { - pub mr_ifindex: ::c_int, - pub mr_type: ::c_ushort, - pub mr_alen: ::c_ushort, - pub mr_address: [::c_uchar; 8], - } - - pub struct cpu_set_t { - #[cfg(all(target_pointer_width = "32", - not(target_arch = "x86_64")))] - bits: [u32; 32], - #[cfg(not(all(target_pointer_width = "32", - not(target_arch = "x86_64"))))] - bits: [u64; 16], - } - - pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, - } - - // System V IPC - pub struct msginfo { - pub msgpool: ::c_int, - pub msgmap: ::c_int, - pub msgmax: ::c_int, - pub msgmnb: ::c_int, - pub msgmni: ::c_int, - pub msgssz: ::c_int, - pub msgtql: ::c_int, - pub msgseg: ::c_ushort, - } - - pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, - } - - pub struct input_event { - pub time: ::timeval, - pub type_: ::__u16, - pub code: ::__u16, - pub value: ::__s32, - } - - pub struct input_id { - pub bustype: ::__u16, - pub vendor: ::__u16, - pub product: ::__u16, - pub version: ::__u16, - } - - pub struct input_absinfo { - pub value: ::__s32, - pub minimum: ::__s32, - pub maximum: ::__s32, - pub fuzz: ::__s32, - pub flat: ::__s32, - pub resolution: ::__s32, - } - - pub struct input_keymap_entry { - pub flags: ::__u8, - pub len: ::__u8, - pub index: ::__u16, - pub keycode: ::__u32, - pub scancode: [::__u8; 32], - } - - pub struct input_mask { - pub type_: ::__u32, - pub codes_size: ::__u32, - pub codes_ptr: ::__u64, - } - - pub struct ff_replay { - pub length: ::__u16, - pub delay: ::__u16, - } - - pub struct ff_trigger { - pub button: ::__u16, - pub interval: ::__u16, - } - - pub struct ff_envelope { - pub attack_length: ::__u16, - pub attack_level: ::__u16, - pub fade_length: ::__u16, - pub fade_level: ::__u16, - } - - pub struct ff_constant_effect { - pub level: ::__s16, - pub envelope: ff_envelope, - } - - pub struct ff_ramp_effect { - pub start_level: ::__s16, - pub end_level: ::__s16, - pub envelope: ff_envelope, - } - - pub struct ff_condition_effect { - pub right_saturation: ::__u16, - pub left_saturation: ::__u16, - - pub right_coeff: ::__s16, - pub left_coeff: ::__s16, - - pub deadband: ::__u16, - pub center: ::__s16, - } - - pub struct ff_periodic_effect { - pub waveform: ::__u16, - pub period: ::__u16, - pub magnitude: ::__s16, - pub offset: ::__s16, - pub phase: ::__u16, - - pub envelope: ff_envelope, - - pub custom_len: ::__u32, - pub custom_data: *mut ::__s16, - } - - pub struct ff_rumble_effect { - pub strong_magnitude: ::__u16, - pub weak_magnitude: ::__u16, - } - - pub struct ff_effect { - pub type_: ::__u16, - pub id: ::__s16, - pub direction: ::__u16, - pub trigger: ff_trigger, - pub replay: ff_replay, - // FIXME this is actually a union - #[cfg(target_pointer_width = "64")] - pub u: [u64; 4], - #[cfg(target_pointer_width = "32")] - pub u: [u32; 7], - } - - pub struct uinput_ff_upload { - pub request_id: ::__u32, - pub retval: ::__s32, - pub effect: ff_effect, - pub old: ff_effect, - } - - pub struct uinput_ff_erase { - pub request_id: ::__u32, - pub retval: ::__s32, - pub effect_id: ::__u32, - } - - pub struct uinput_abs_setup { - pub code: ::__u16, - pub absinfo: input_absinfo, - } - - pub struct dl_phdr_info { - #[cfg(target_pointer_width = "64")] - pub dlpi_addr: Elf64_Addr, - #[cfg(target_pointer_width = "32")] - pub dlpi_addr: Elf32_Addr, - - pub dlpi_name: *const ::c_char, - - #[cfg(target_pointer_width = "64")] - pub dlpi_phdr: *const Elf64_Phdr, - #[cfg(target_pointer_width = "32")] - pub dlpi_phdr: *const Elf32_Phdr, - - #[cfg(target_pointer_width = "64")] - pub dlpi_phnum: Elf64_Half, - #[cfg(target_pointer_width = "32")] - pub dlpi_phnum: Elf32_Half, - - // As of uClibc 1.0.36, the following fields are - // gated behind a "#if 0" block which always evaluates - // to false. So I'm just removing these, and if uClibc changes - // the #if block in the future to include the following fields, these - // will probably need including here. tsidea, skrap - #[cfg(not(target_env = "uclibc"))] - pub dlpi_adds: ::c_ulonglong, - #[cfg(not(target_env = "uclibc"))] - pub dlpi_subs: ::c_ulonglong, - #[cfg(not(target_env = "uclibc"))] - pub dlpi_tls_modid: ::size_t, - #[cfg(not(target_env = "uclibc"))] - pub dlpi_tls_data: *mut ::c_void, - } - - pub struct Elf32_Ehdr { - pub e_ident: [::c_uchar; 16], - pub e_type: Elf32_Half, - pub e_machine: Elf32_Half, - pub e_version: Elf32_Word, - pub e_entry: Elf32_Addr, - pub e_phoff: Elf32_Off, - pub e_shoff: Elf32_Off, - pub e_flags: Elf32_Word, - pub e_ehsize: Elf32_Half, - pub e_phentsize: Elf32_Half, - pub e_phnum: Elf32_Half, - pub e_shentsize: Elf32_Half, - pub e_shnum: Elf32_Half, - pub e_shstrndx: Elf32_Half, - } - - pub struct Elf64_Ehdr { - pub e_ident: [::c_uchar; 16], - pub e_type: Elf64_Half, - pub e_machine: Elf64_Half, - pub e_version: Elf64_Word, - pub e_entry: Elf64_Addr, - pub e_phoff: Elf64_Off, - pub e_shoff: Elf64_Off, - pub e_flags: Elf64_Word, - pub e_ehsize: Elf64_Half, - pub e_phentsize: Elf64_Half, - pub e_phnum: Elf64_Half, - pub e_shentsize: Elf64_Half, - pub e_shnum: Elf64_Half, - pub e_shstrndx: Elf64_Half, - } - - pub struct Elf32_Sym { - pub st_name: Elf32_Word, - pub st_value: Elf32_Addr, - pub st_size: Elf32_Word, - pub st_info: ::c_uchar, - pub st_other: ::c_uchar, - pub st_shndx: Elf32_Section, - } - - pub struct Elf64_Sym { - pub st_name: Elf64_Word, - pub st_info: ::c_uchar, - pub st_other: ::c_uchar, - pub st_shndx: Elf64_Section, - pub st_value: Elf64_Addr, - pub st_size: Elf64_Xword, - } - - pub struct Elf32_Phdr { - pub p_type: Elf32_Word, - pub p_offset: Elf32_Off, - pub p_vaddr: Elf32_Addr, - pub p_paddr: Elf32_Addr, - pub p_filesz: Elf32_Word, - pub p_memsz: Elf32_Word, - pub p_flags: Elf32_Word, - pub p_align: Elf32_Word, - } - - pub struct Elf64_Phdr { - pub p_type: Elf64_Word, - pub p_flags: Elf64_Word, - pub p_offset: Elf64_Off, - pub p_vaddr: Elf64_Addr, - pub p_paddr: Elf64_Addr, - pub p_filesz: Elf64_Xword, - pub p_memsz: Elf64_Xword, - pub p_align: Elf64_Xword, - } - - pub struct Elf32_Shdr { - pub sh_name: Elf32_Word, - pub sh_type: Elf32_Word, - pub sh_flags: Elf32_Word, - pub sh_addr: Elf32_Addr, - pub sh_offset: Elf32_Off, - pub sh_size: Elf32_Word, - pub sh_link: Elf32_Word, - pub sh_info: Elf32_Word, - pub sh_addralign: Elf32_Word, - pub sh_entsize: Elf32_Word, - } - - pub struct Elf64_Shdr { - pub sh_name: Elf64_Word, - pub sh_type: Elf64_Word, - pub sh_flags: Elf64_Xword, - pub sh_addr: Elf64_Addr, - pub sh_offset: Elf64_Off, - pub sh_size: Elf64_Xword, - pub sh_link: Elf64_Word, - pub sh_info: Elf64_Word, - pub sh_addralign: Elf64_Xword, - pub sh_entsize: Elf64_Xword, - } - - pub struct ucred { - pub pid: ::pid_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - } - - pub struct mntent { - pub mnt_fsname: *mut ::c_char, - pub mnt_dir: *mut ::c_char, - pub mnt_type: *mut ::c_char, - pub mnt_opts: *mut ::c_char, - pub mnt_freq: ::c_int, - pub mnt_passno: ::c_int, - } - - pub struct posix_spawn_file_actions_t { - __allocated: ::c_int, - __used: ::c_int, - __actions: *mut ::c_int, - __pad: [::c_int; 16], - } - - pub struct posix_spawnattr_t { - __flags: ::c_short, - __pgrp: ::pid_t, - __sd: ::sigset_t, - __ss: ::sigset_t, - #[cfg(any(target_env = "musl", target_env = "ohos"))] - __prio: ::c_int, - #[cfg(not(any(target_env = "musl", target_env = "ohos")))] - __sp: ::sched_param, - __policy: ::c_int, - __pad: [::c_int; 16], - } - - pub struct genlmsghdr { - pub cmd: u8, - pub version: u8, - pub reserved: u16, - } - - pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_uint, - } - - pub struct arpd_request { - pub req: ::c_ushort, - pub ip: u32, - pub dev: ::c_ulong, - pub stamp: ::c_ulong, - pub updated: ::c_ulong, - pub ha: [::c_uchar; ::MAX_ADDR_LEN], - } - - pub struct inotify_event { - pub wd: ::c_int, - pub mask: u32, - pub cookie: u32, - pub len: u32 - } - - pub struct fanotify_response { - pub fd: ::c_int, - pub response: __u32, - } - - pub struct sockaddr_vm { - pub svm_family: ::sa_family_t, - pub svm_reserved1: ::c_ushort, - pub svm_port: ::c_uint, - pub svm_cid: ::c_uint, - pub svm_zero: [u8; 4] - } - - pub struct regmatch_t { - pub rm_so: regoff_t, - pub rm_eo: regoff_t, - } - - pub struct sock_extended_err { - pub ee_errno: u32, - pub ee_origin: u8, - pub ee_type: u8, - pub ee_code: u8, - pub ee_pad: u8, - pub ee_info: u32, - pub ee_data: u32, - } - - // linux/can.h - pub struct __c_anonymous_sockaddr_can_tp { - pub rx_id: canid_t, - pub tx_id: canid_t, - } - - pub struct __c_anonymous_sockaddr_can_j1939 { - pub name: u64, - pub pgn: u32, - pub addr: u8, - } - - pub struct can_filter { - pub can_id: canid_t, - pub can_mask: canid_t, - } - - // linux/can/j1939.h - pub struct j1939_filter { - pub name: name_t, - pub name_mask: name_t, - pub pgn: pgn_t, - pub pgn_mask: pgn_t, - pub addr: u8, - pub addr_mask: u8, - } - - // linux/filter.h - pub struct sock_filter { - pub code: ::__u16, - pub jt: ::__u8, - pub jf: ::__u8, - pub k: ::__u32, - } - - pub struct sock_fprog { - pub len: ::c_ushort, - pub filter: *mut sock_filter, - } - - // linux/seccomp.h - pub struct seccomp_data { - pub nr: ::c_int, - pub arch: ::__u32, - pub instruction_pointer: ::__u64, - pub args: [::__u64; 6], - } - - pub struct nlmsghdr { - pub nlmsg_len: u32, - pub nlmsg_type: u16, - pub nlmsg_flags: u16, - pub nlmsg_seq: u32, - pub nlmsg_pid: u32, - } - - pub struct nlmsgerr { - pub error: ::c_int, - pub msg: nlmsghdr, - } - - pub struct nlattr { - pub nla_len: u16, - pub nla_type: u16, - } - - pub struct file_clone_range { - pub src_fd: ::__s64, - pub src_offset: ::__u64, - pub src_length: ::__u64, - pub dest_offset: ::__u64, - } - - pub struct __c_anonymous_ifru_map { - pub mem_start: ::c_ulong, - pub mem_end: ::c_ulong, - pub base_addr: ::c_ushort, - pub irq: ::c_uchar, - pub dma: ::c_uchar, - pub port: ::c_uchar, - } - - pub struct in6_ifreq { - pub ifr6_addr: ::in6_addr, - pub ifr6_prefixlen: u32, - pub ifr6_ifindex: ::c_int, - } - - pub struct option { - pub name: *const ::c_char, - pub has_arg: ::c_int, - pub flag: *mut ::c_int, - pub val: ::c_int, - } - - // linux/sctp.h - - pub struct sctp_initmsg { - pub sinit_num_ostreams: ::__u16, - pub sinit_max_instreams: ::__u16, - pub sinit_max_attempts: ::__u16, - pub sinit_max_init_timeo: ::__u16, - } - - pub struct sctp_sndrcvinfo { - pub sinfo_stream: ::__u16, - pub sinfo_ssn: ::__u16, - pub sinfo_flags: ::__u16, - pub sinfo_ppid: ::__u32, - pub sinfo_context: ::__u32, - pub sinfo_timetolive: ::__u32, - pub sinfo_tsn: ::__u32, - pub sinfo_cumtsn: ::__u32, - pub sinfo_assoc_id: ::sctp_assoc_t, - } - - pub struct sctp_sndinfo { - pub snd_sid: ::__u16, - pub snd_flags: ::__u16, - pub snd_ppid: ::__u32, - pub snd_context: ::__u32, - pub snd_assoc_id: ::sctp_assoc_t, - } - - pub struct sctp_rcvinfo { - pub rcv_sid: ::__u16, - pub rcv_ssn: ::__u16, - pub rcv_flags: ::__u16, - pub rcv_ppid: ::__u32, - pub rcv_tsn: ::__u32, - pub rcv_cumtsn: ::__u32, - pub rcv_context: ::__u32, - pub rcv_assoc_id: ::sctp_assoc_t, - } - - pub struct sctp_nxtinfo { - pub nxt_sid: ::__u16, - pub nxt_flags: ::__u16, - pub nxt_ppid: ::__u32, - pub nxt_length: ::__u32, - pub nxt_assoc_id: ::sctp_assoc_t, - } - - pub struct sctp_prinfo { - pub pr_policy: ::__u16, - pub pr_value: ::__u32, - } - - pub struct sctp_authinfo { - pub auth_keynumber: ::__u16, - } - - pub struct rlimit64 { - pub rlim_cur: rlim64_t, - pub rlim_max: rlim64_t, - } -} - -s_no_extra_traits! { - pub struct sockaddr_nl { - pub nl_family: ::sa_family_t, - nl_pad: ::c_ushort, - pub nl_pid: u32, - pub nl_groups: u32 - } - - pub struct dirent { - pub d_ino: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], - } - - pub struct sockaddr_alg { - pub salg_family: ::sa_family_t, - pub salg_type: [::c_uchar; 14], - pub salg_feat: u32, - pub salg_mask: u32, - pub salg_name: [::c_uchar; 64], - } - - pub struct uinput_setup { - pub id: input_id, - pub name: [::c_char; UINPUT_MAX_NAME_SIZE], - pub ff_effects_max: ::__u32, - } - - pub struct uinput_user_dev { - pub name: [::c_char; UINPUT_MAX_NAME_SIZE], - pub id: input_id, - pub ff_effects_max: ::__u32, - pub absmax: [::__s32; ABS_CNT], - pub absmin: [::__s32; ABS_CNT], - pub absfuzz: [::__s32; ABS_CNT], - pub absflat: [::__s32; ABS_CNT], - } - - /// WARNING: The `PartialEq`, `Eq` and `Hash` implementations of this - /// type are unsound and will be removed in the future. - #[deprecated( - note = "this struct has unsafe trait implementations that will be \ - removed in the future", - since = "0.2.80" - )] - pub struct af_alg_iv { - pub ivlen: u32, - pub iv: [::c_uchar; 0], - } - - // x32 compatibility - // See https://sourceware.org/bugzilla/show_bug.cgi?id=21279 - pub struct mq_attr { - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub mq_flags: i64, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub mq_maxmsg: i64, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub mq_msgsize: i64, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub mq_curmsgs: i64, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pad: [i64; 4], - - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_flags: ::c_long, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_maxmsg: ::c_long, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_msgsize: ::c_long, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub mq_curmsgs: ::c_long, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pad: [::c_long; 4], - } - - #[cfg(libc_union)] - pub union __c_anonymous_ifr_ifru { - pub ifru_addr: ::sockaddr, - pub ifru_dstaddr: ::sockaddr, - pub ifru_broadaddr: ::sockaddr, - pub ifru_netmask: ::sockaddr, - pub ifru_hwaddr: ::sockaddr, - pub ifru_flags: ::c_short, - pub ifru_ifindex: ::c_int, - pub ifru_metric: ::c_int, - pub ifru_mtu: ::c_int, - pub ifru_map: __c_anonymous_ifru_map, - pub ifru_slave: [::c_char; ::IFNAMSIZ], - pub ifru_newname: [::c_char; ::IFNAMSIZ], - pub ifru_data: *mut ::c_char, - } - - pub struct ifreq { - /// interface name, e.g. "en0" - pub ifr_name: [::c_char; ::IFNAMSIZ], - #[cfg(libc_union)] - pub ifr_ifru: __c_anonymous_ifr_ifru, - #[cfg(not(libc_union))] - pub ifr_ifru: ::sockaddr, - } - - pub struct hwtstamp_config { - pub flags: ::c_int, - pub tx_type: ::c_int, - pub rx_filter: ::c_int, - } - - pub struct dirent64 { - pub d_ino: ::ino64_t, - pub d_off: ::off64_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], - } -} - -s_no_extra_traits! { - // linux/net_tstamp.h - #[allow(missing_debug_implementations)] - pub struct sock_txtime { - pub clockid: ::clockid_t, - pub flags: ::__u32, - } -} - -cfg_if! { - if #[cfg(libc_union)] { - s_no_extra_traits! { - // linux/can.h - #[allow(missing_debug_implementations)] - pub union __c_anonymous_sockaddr_can_can_addr { - pub tp: __c_anonymous_sockaddr_can_tp, - pub j1939: __c_anonymous_sockaddr_can_j1939, - } - - #[allow(missing_debug_implementations)] - pub struct sockaddr_can { - pub can_family: ::sa_family_t, - pub can_ifindex: ::c_int, - pub can_addr: __c_anonymous_sockaddr_can_can_addr, - } - } - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for sockaddr_nl { - fn eq(&self, other: &sockaddr_nl) -> bool { - self.nl_family == other.nl_family && - self.nl_pid == other.nl_pid && - self.nl_groups == other.nl_groups - } - } - impl Eq for sockaddr_nl {} - impl ::fmt::Debug for sockaddr_nl { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_nl") - .field("nl_family", &self.nl_family) - .field("nl_pid", &self.nl_pid) - .field("nl_groups", &self.nl_groups) - .finish() - } - } - impl ::hash::Hash for sockaddr_nl { - fn hash(&self, state: &mut H) { - self.nl_family.hash(state); - self.nl_pid.hash(state); - self.nl_groups.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for dirent {} - - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for dirent64 { - fn eq(&self, other: &dirent64) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for dirent64 {} - - impl ::fmt::Debug for dirent64 { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent64") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - - impl ::hash::Hash for dirent64 { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for pthread_cond_t { - fn eq(&self, other: &pthread_cond_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b) - } - } - - impl Eq for pthread_cond_t {} - - impl ::fmt::Debug for pthread_cond_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_cond_t") - // FIXME: .field("size", &self.size) - .finish() - } - } - - impl ::hash::Hash for pthread_cond_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for pthread_mutex_t { - fn eq(&self, other: &pthread_mutex_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b) - } - } - - impl Eq for pthread_mutex_t {} - - impl ::fmt::Debug for pthread_mutex_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_mutex_t") - // FIXME: .field("size", &self.size) - .finish() - } - } - - impl ::hash::Hash for pthread_mutex_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for pthread_rwlock_t { - fn eq(&self, other: &pthread_rwlock_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b) - } - } - - impl Eq for pthread_rwlock_t {} - - impl ::fmt::Debug for pthread_rwlock_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_rwlock_t") - // FIXME: .field("size", &self.size) - .finish() - } - } - - impl ::hash::Hash for pthread_rwlock_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for pthread_barrier_t { - fn eq(&self, other: &pthread_barrier_t) -> bool { - self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b) - } - } - - impl Eq for pthread_barrier_t {} - - impl ::fmt::Debug for pthread_barrier_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("pthread_barrier_t") - .field("size", &self.size) - .finish() - } - } - - impl ::hash::Hash for pthread_barrier_t { - fn hash(&self, state: &mut H) { - self.size.hash(state); - } - } - - impl PartialEq for sockaddr_alg { - fn eq(&self, other: &sockaddr_alg) -> bool { - self.salg_family == other.salg_family - && self - .salg_type - .iter() - .zip(other.salg_type.iter()) - .all(|(a, b)| a == b) - && self.salg_feat == other.salg_feat - && self.salg_mask == other.salg_mask - && self - .salg_name - .iter() - .zip(other.salg_name.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_alg {} - - impl ::fmt::Debug for sockaddr_alg { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_alg") - .field("salg_family", &self.salg_family) - .field("salg_type", &self.salg_type) - .field("salg_feat", &self.salg_feat) - .field("salg_mask", &self.salg_mask) - .field("salg_name", &&self.salg_name[..]) - .finish() - } - } - - impl ::hash::Hash for sockaddr_alg { - fn hash(&self, state: &mut H) { - self.salg_family.hash(state); - self.salg_type.hash(state); - self.salg_feat.hash(state); - self.salg_mask.hash(state); - self.salg_name.hash(state); - } - } - - impl PartialEq for uinput_setup { - fn eq(&self, other: &uinput_setup) -> bool { - self.id == other.id - && self.name[..] == other.name[..] - && self.ff_effects_max == other.ff_effects_max - } - } - impl Eq for uinput_setup {} - - impl ::fmt::Debug for uinput_setup { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uinput_setup") - .field("id", &self.id) - .field("name", &&self.name[..]) - .field("ff_effects_max", &self.ff_effects_max) - .finish() - } - } - - impl ::hash::Hash for uinput_setup { - fn hash(&self, state: &mut H) { - self.id.hash(state); - self.name.hash(state); - self.ff_effects_max.hash(state); - } - } - - impl PartialEq for uinput_user_dev { - fn eq(&self, other: &uinput_user_dev) -> bool { - self.name[..] == other.name[..] - && self.id == other.id - && self.ff_effects_max == other.ff_effects_max - && self.absmax[..] == other.absmax[..] - && self.absmin[..] == other.absmin[..] - && self.absfuzz[..] == other.absfuzz[..] - && self.absflat[..] == other.absflat[..] - } - } - impl Eq for uinput_user_dev {} - - impl ::fmt::Debug for uinput_user_dev { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("uinput_setup") - .field("name", &&self.name[..]) - .field("id", &self.id) - .field("ff_effects_max", &self.ff_effects_max) - .field("absmax", &&self.absmax[..]) - .field("absmin", &&self.absmin[..]) - .field("absfuzz", &&self.absfuzz[..]) - .field("absflat", &&self.absflat[..]) - .finish() - } - } - - impl ::hash::Hash for uinput_user_dev { - fn hash(&self, state: &mut H) { - self.name.hash(state); - self.id.hash(state); - self.ff_effects_max.hash(state); - self.absmax.hash(state); - self.absmin.hash(state); - self.absfuzz.hash(state); - self.absflat.hash(state); - } - } - - #[allow(deprecated)] - impl af_alg_iv { - fn as_slice(&self) -> &[u8] { - unsafe { - ::core::slice::from_raw_parts( - self.iv.as_ptr(), - self.ivlen as usize - ) - } - } - } - - #[allow(deprecated)] - impl PartialEq for af_alg_iv { - fn eq(&self, other: &af_alg_iv) -> bool { - *self.as_slice() == *other.as_slice() - } - } - - #[allow(deprecated)] - impl Eq for af_alg_iv {} - - #[allow(deprecated)] - impl ::fmt::Debug for af_alg_iv { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("af_alg_iv") - .field("ivlen", &self.ivlen) - .finish() - } - } - - #[allow(deprecated)] - impl ::hash::Hash for af_alg_iv { - fn hash(&self, state: &mut H) { - self.as_slice().hash(state); - } - } - - impl PartialEq for mq_attr { - fn eq(&self, other: &mq_attr) -> bool { - self.mq_flags == other.mq_flags && - self.mq_maxmsg == other.mq_maxmsg && - self.mq_msgsize == other.mq_msgsize && - self.mq_curmsgs == other.mq_curmsgs - } - } - impl Eq for mq_attr {} - impl ::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mq_attr") - .field("mq_flags", &self.mq_flags) - .field("mq_maxmsg", &self.mq_maxmsg) - .field("mq_msgsize", &self.mq_msgsize) - .field("mq_curmsgs", &self.mq_curmsgs) - .finish() - } - } - impl ::hash::Hash for mq_attr { - fn hash(&self, state: &mut H) { - self.mq_flags.hash(state); - self.mq_maxmsg.hash(state); - self.mq_msgsize.hash(state); - self.mq_curmsgs.hash(state); - } - } - #[cfg(libc_union)] - impl ::fmt::Debug for __c_anonymous_ifr_ifru { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ifr_ifru") - .field("ifru_addr", unsafe { &self.ifru_addr }) - .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr }) - .field("ifru_broadaddr", unsafe { &self.ifru_broadaddr }) - .field("ifru_netmask", unsafe { &self.ifru_netmask }) - .field("ifru_hwaddr", unsafe { &self.ifru_hwaddr }) - .field("ifru_flags", unsafe { &self.ifru_flags }) - .field("ifru_ifindex", unsafe { &self.ifru_ifindex }) - .field("ifru_metric", unsafe { &self.ifru_metric }) - .field("ifru_mtu", unsafe { &self.ifru_mtu }) - .field("ifru_map", unsafe { &self.ifru_map }) - .field("ifru_slave", unsafe { &self.ifru_slave }) - .field("ifru_newname", unsafe { &self.ifru_newname }) - .field("ifru_data", unsafe { &self.ifru_data }) - .finish() - } - } - impl ::fmt::Debug for ifreq { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ifreq") - .field("ifr_name", &self.ifr_name) - .field("ifr_ifru", &self.ifr_ifru) - .finish() - } - } - - impl ::fmt::Debug for hwtstamp_config { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("hwtstamp_config") - .field("flags", &self.flags) - .field("tx_type", &self.tx_type) - .field("rx_filter", &self.rx_filter) - .finish() - } - } - impl PartialEq for hwtstamp_config { - fn eq(&self, other: &hwtstamp_config) -> bool { - self.flags == other.flags && - self.tx_type == other.tx_type && - self.rx_filter == other.rx_filter - } - } - impl Eq for hwtstamp_config {} - impl ::hash::Hash for hwtstamp_config { - fn hash(&self, state: &mut H) { - self.flags.hash(state); - self.tx_type.hash(state); - self.rx_filter.hash(state); - } - } - } -} - -cfg_if! { - if #[cfg(any(target_env = "gnu", target_env = "musl", target_env = "ohos"))] { - pub const ABDAY_1: ::nl_item = 0x20000; - pub const ABDAY_2: ::nl_item = 0x20001; - pub const ABDAY_3: ::nl_item = 0x20002; - pub const ABDAY_4: ::nl_item = 0x20003; - pub const ABDAY_5: ::nl_item = 0x20004; - pub const ABDAY_6: ::nl_item = 0x20005; - pub const ABDAY_7: ::nl_item = 0x20006; - - pub const DAY_1: ::nl_item = 0x20007; - pub const DAY_2: ::nl_item = 0x20008; - pub const DAY_3: ::nl_item = 0x20009; - pub const DAY_4: ::nl_item = 0x2000A; - pub const DAY_5: ::nl_item = 0x2000B; - pub const DAY_6: ::nl_item = 0x2000C; - pub const DAY_7: ::nl_item = 0x2000D; - - pub const ABMON_1: ::nl_item = 0x2000E; - pub const ABMON_2: ::nl_item = 0x2000F; - pub const ABMON_3: ::nl_item = 0x20010; - pub const ABMON_4: ::nl_item = 0x20011; - pub const ABMON_5: ::nl_item = 0x20012; - pub const ABMON_6: ::nl_item = 0x20013; - pub const ABMON_7: ::nl_item = 0x20014; - pub const ABMON_8: ::nl_item = 0x20015; - pub const ABMON_9: ::nl_item = 0x20016; - pub const ABMON_10: ::nl_item = 0x20017; - pub const ABMON_11: ::nl_item = 0x20018; - pub const ABMON_12: ::nl_item = 0x20019; - - pub const MON_1: ::nl_item = 0x2001A; - pub const MON_2: ::nl_item = 0x2001B; - pub const MON_3: ::nl_item = 0x2001C; - pub const MON_4: ::nl_item = 0x2001D; - pub const MON_5: ::nl_item = 0x2001E; - pub const MON_6: ::nl_item = 0x2001F; - pub const MON_7: ::nl_item = 0x20020; - pub const MON_8: ::nl_item = 0x20021; - pub const MON_9: ::nl_item = 0x20022; - pub const MON_10: ::nl_item = 0x20023; - pub const MON_11: ::nl_item = 0x20024; - pub const MON_12: ::nl_item = 0x20025; - - pub const AM_STR: ::nl_item = 0x20026; - pub const PM_STR: ::nl_item = 0x20027; - - pub const D_T_FMT: ::nl_item = 0x20028; - pub const D_FMT: ::nl_item = 0x20029; - pub const T_FMT: ::nl_item = 0x2002A; - pub const T_FMT_AMPM: ::nl_item = 0x2002B; - - pub const ERA: ::nl_item = 0x2002C; - pub const ERA_D_FMT: ::nl_item = 0x2002E; - pub const ALT_DIGITS: ::nl_item = 0x2002F; - pub const ERA_D_T_FMT: ::nl_item = 0x20030; - pub const ERA_T_FMT: ::nl_item = 0x20031; - - pub const CODESET: ::nl_item = 14; - pub const CRNCYSTR: ::nl_item = 0x4000F; - pub const RADIXCHAR: ::nl_item = 0x10000; - pub const THOUSEP: ::nl_item = 0x10001; - pub const YESEXPR: ::nl_item = 0x50000; - pub const NOEXPR: ::nl_item = 0x50001; - pub const YESSTR: ::nl_item = 0x50002; - pub const NOSTR: ::nl_item = 0x50003; - } -} - -pub const RUSAGE_CHILDREN: ::c_int = -1; -pub const L_tmpnam: ::c_uint = 20; -pub const _PC_LINK_MAX: ::c_int = 0; -pub const _PC_MAX_CANON: ::c_int = 1; -pub const _PC_MAX_INPUT: ::c_int = 2; -pub const _PC_NAME_MAX: ::c_int = 3; -pub const _PC_PATH_MAX: ::c_int = 4; -pub const _PC_PIPE_BUF: ::c_int = 5; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; -pub const _PC_NO_TRUNC: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_SYNC_IO: ::c_int = 9; -pub const _PC_ASYNC_IO: ::c_int = 10; -pub const _PC_PRIO_IO: ::c_int = 11; -pub const _PC_SOCK_MAXBUF: ::c_int = 12; -pub const _PC_FILESIZEBITS: ::c_int = 13; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_XFER_ALIGN: ::c_int = 17; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; -pub const _PC_SYMLINK_MAX: ::c_int = 19; -pub const _PC_2_SYMLINKS: ::c_int = 20; - -pub const MS_NOUSER: ::c_ulong = 0xffffffff80000000; - -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_CHILD_MAX: ::c_int = 1; -pub const _SC_CLK_TCK: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 3; -pub const _SC_OPEN_MAX: ::c_int = 4; -pub const _SC_STREAM_MAX: ::c_int = 5; -pub const _SC_TZNAME_MAX: ::c_int = 6; -pub const _SC_JOB_CONTROL: ::c_int = 7; -pub const _SC_SAVED_IDS: ::c_int = 8; -pub const _SC_REALTIME_SIGNALS: ::c_int = 9; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 10; -pub const _SC_TIMERS: ::c_int = 11; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 12; -pub const _SC_PRIORITIZED_IO: ::c_int = 13; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 14; -pub const _SC_FSYNC: ::c_int = 15; -pub const _SC_MAPPED_FILES: ::c_int = 16; -pub const _SC_MEMLOCK: ::c_int = 17; -pub const _SC_MEMLOCK_RANGE: ::c_int = 18; -pub const _SC_MEMORY_PROTECTION: ::c_int = 19; -pub const _SC_MESSAGE_PASSING: ::c_int = 20; -pub const _SC_SEMAPHORES: ::c_int = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 22; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 23; -pub const _SC_AIO_MAX: ::c_int = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 25; -pub const _SC_DELAYTIMER_MAX: ::c_int = 26; -pub const _SC_MQ_OPEN_MAX: ::c_int = 27; -pub const _SC_MQ_PRIO_MAX: ::c_int = 28; -pub const _SC_VERSION: ::c_int = 29; -pub const _SC_PAGESIZE: ::c_int = 30; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_RTSIG_MAX: ::c_int = 31; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 32; -pub const _SC_SEM_VALUE_MAX: ::c_int = 33; -pub const _SC_SIGQUEUE_MAX: ::c_int = 34; -pub const _SC_TIMER_MAX: ::c_int = 35; -pub const _SC_BC_BASE_MAX: ::c_int = 36; -pub const _SC_BC_DIM_MAX: ::c_int = 37; -pub const _SC_BC_SCALE_MAX: ::c_int = 38; -pub const _SC_BC_STRING_MAX: ::c_int = 39; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 40; -pub const _SC_EXPR_NEST_MAX: ::c_int = 42; -pub const _SC_LINE_MAX: ::c_int = 43; -pub const _SC_RE_DUP_MAX: ::c_int = 44; -pub const _SC_2_VERSION: ::c_int = 46; -pub const _SC_2_C_BIND: ::c_int = 47; -pub const _SC_2_C_DEV: ::c_int = 48; -pub const _SC_2_FORT_DEV: ::c_int = 49; -pub const _SC_2_FORT_RUN: ::c_int = 50; -pub const _SC_2_SW_DEV: ::c_int = 51; -pub const _SC_2_LOCALEDEF: ::c_int = 52; -pub const _SC_UIO_MAXIOV: ::c_int = 60; -pub const _SC_IOV_MAX: ::c_int = 60; -pub const _SC_THREADS: ::c_int = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 68; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 69; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 70; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; -pub const _SC_TTY_NAME_MAX: ::c_int = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 73; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 74; -pub const _SC_THREAD_STACK_MIN: ::c_int = 75; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 76; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 82; -pub const _SC_NPROCESSORS_CONF: ::c_int = 83; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 84; -pub const _SC_PHYS_PAGES: ::c_int = 85; -pub const _SC_AVPHYS_PAGES: ::c_int = 86; -pub const _SC_ATEXIT_MAX: ::c_int = 87; -pub const _SC_PASS_MAX: ::c_int = 88; -pub const _SC_XOPEN_VERSION: ::c_int = 89; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 90; -pub const _SC_XOPEN_UNIX: ::c_int = 91; -pub const _SC_XOPEN_CRYPT: ::c_int = 92; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 93; -pub const _SC_XOPEN_SHM: ::c_int = 94; -pub const _SC_2_CHAR_TERM: ::c_int = 95; -pub const _SC_2_UPE: ::c_int = 97; -pub const _SC_XOPEN_XPG2: ::c_int = 98; -pub const _SC_XOPEN_XPG3: ::c_int = 99; -pub const _SC_XOPEN_XPG4: ::c_int = 100; -pub const _SC_NZERO: ::c_int = 109; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 125; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 126; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 128; -pub const _SC_XOPEN_LEGACY: ::c_int = 129; -pub const _SC_XOPEN_REALTIME: ::c_int = 130; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 131; -pub const _SC_ADVISORY_INFO: ::c_int = 132; -pub const _SC_BARRIERS: ::c_int = 133; -pub const _SC_CLOCK_SELECTION: ::c_int = 137; -pub const _SC_CPUTIME: ::c_int = 138; -pub const _SC_THREAD_CPUTIME: ::c_int = 139; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 149; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 153; -pub const _SC_SPIN_LOCKS: ::c_int = 154; -pub const _SC_REGEXP: ::c_int = 155; -pub const _SC_SHELL: ::c_int = 157; -pub const _SC_SPAWN: ::c_int = 159; -pub const _SC_SPORADIC_SERVER: ::c_int = 160; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 161; -pub const _SC_TIMEOUTS: ::c_int = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 165; -pub const _SC_2_PBS: ::c_int = 168; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 169; -pub const _SC_2_PBS_LOCATE: ::c_int = 170; -pub const _SC_2_PBS_MESSAGE: ::c_int = 171; -pub const _SC_2_PBS_TRACK: ::c_int = 172; -pub const _SC_SYMLOOP_MAX: ::c_int = 173; -pub const _SC_STREAMS: ::c_int = 174; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 175; -pub const _SC_V6_ILP32_OFF32: ::c_int = 176; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 177; -pub const _SC_V6_LP64_OFF64: ::c_int = 178; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 179; -pub const _SC_HOST_NAME_MAX: ::c_int = 180; -pub const _SC_TRACE: ::c_int = 181; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 182; -pub const _SC_TRACE_INHERIT: ::c_int = 183; -pub const _SC_TRACE_LOG: ::c_int = 184; -pub const _SC_IPV6: ::c_int = 235; -pub const _SC_RAW_SOCKETS: ::c_int = 236; -pub const _SC_V7_ILP32_OFF32: ::c_int = 237; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 238; -pub const _SC_V7_LP64_OFF64: ::c_int = 239; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 240; -pub const _SC_SS_REPL_MAX: ::c_int = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 242; -pub const _SC_TRACE_NAME_MAX: ::c_int = 243; -pub const _SC_TRACE_SYS_MAX: ::c_int = 244; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 245; -pub const _SC_XOPEN_STREAMS: ::c_int = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248; - -pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY; -pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY; - -// elf.h - Fields in the e_ident array. -pub const EI_NIDENT: usize = 16; - -pub const EI_MAG0: usize = 0; -pub const ELFMAG0: u8 = 0x7f; -pub const EI_MAG1: usize = 1; -pub const ELFMAG1: u8 = b'E'; -pub const EI_MAG2: usize = 2; -pub const ELFMAG2: u8 = b'L'; -pub const EI_MAG3: usize = 3; -pub const ELFMAG3: u8 = b'F'; -pub const SELFMAG: usize = 4; - -pub const EI_CLASS: usize = 4; -pub const ELFCLASSNONE: u8 = 0; -pub const ELFCLASS32: u8 = 1; -pub const ELFCLASS64: u8 = 2; -pub const ELFCLASSNUM: usize = 3; - -pub const EI_DATA: usize = 5; -pub const ELFDATANONE: u8 = 0; -pub const ELFDATA2LSB: u8 = 1; -pub const ELFDATA2MSB: u8 = 2; -pub const ELFDATANUM: usize = 3; - -pub const EI_VERSION: usize = 6; - -pub const EI_OSABI: usize = 7; -pub const ELFOSABI_NONE: u8 = 0; -pub const ELFOSABI_SYSV: u8 = 0; -pub const ELFOSABI_HPUX: u8 = 1; -pub const ELFOSABI_NETBSD: u8 = 2; -pub const ELFOSABI_GNU: u8 = 3; -pub const ELFOSABI_LINUX: u8 = ELFOSABI_GNU; -pub const ELFOSABI_SOLARIS: u8 = 6; -pub const ELFOSABI_AIX: u8 = 7; -pub const ELFOSABI_IRIX: u8 = 8; -pub const ELFOSABI_FREEBSD: u8 = 9; -pub const ELFOSABI_TRU64: u8 = 10; -pub const ELFOSABI_MODESTO: u8 = 11; -pub const ELFOSABI_OPENBSD: u8 = 12; -pub const ELFOSABI_ARM: u8 = 97; -pub const ELFOSABI_STANDALONE: u8 = 255; - -pub const EI_ABIVERSION: usize = 8; - -pub const EI_PAD: usize = 9; - -// elf.h - Legal values for e_type (object file type). -pub const ET_NONE: u16 = 0; -pub const ET_REL: u16 = 1; -pub const ET_EXEC: u16 = 2; -pub const ET_DYN: u16 = 3; -pub const ET_CORE: u16 = 4; -pub const ET_NUM: u16 = 5; -pub const ET_LOOS: u16 = 0xfe00; -pub const ET_HIOS: u16 = 0xfeff; -pub const ET_LOPROC: u16 = 0xff00; -pub const ET_HIPROC: u16 = 0xffff; - -// elf.h - Legal values for e_machine (architecture). -pub const EM_NONE: u16 = 0; -pub const EM_M32: u16 = 1; -pub const EM_SPARC: u16 = 2; -pub const EM_386: u16 = 3; -pub const EM_68K: u16 = 4; -pub const EM_88K: u16 = 5; -pub const EM_860: u16 = 7; -pub const EM_MIPS: u16 = 8; -pub const EM_S370: u16 = 9; -pub const EM_MIPS_RS3_LE: u16 = 10; -pub const EM_PARISC: u16 = 15; -pub const EM_VPP500: u16 = 17; -pub const EM_SPARC32PLUS: u16 = 18; -pub const EM_960: u16 = 19; -pub const EM_PPC: u16 = 20; -pub const EM_PPC64: u16 = 21; -pub const EM_S390: u16 = 22; -pub const EM_V800: u16 = 36; -pub const EM_FR20: u16 = 37; -pub const EM_RH32: u16 = 38; -pub const EM_RCE: u16 = 39; -pub const EM_ARM: u16 = 40; -pub const EM_FAKE_ALPHA: u16 = 41; -pub const EM_SH: u16 = 42; -pub const EM_SPARCV9: u16 = 43; -pub const EM_TRICORE: u16 = 44; -pub const EM_ARC: u16 = 45; -pub const EM_H8_300: u16 = 46; -pub const EM_H8_300H: u16 = 47; -pub const EM_H8S: u16 = 48; -pub const EM_H8_500: u16 = 49; -pub const EM_IA_64: u16 = 50; -pub const EM_MIPS_X: u16 = 51; -pub const EM_COLDFIRE: u16 = 52; -pub const EM_68HC12: u16 = 53; -pub const EM_MMA: u16 = 54; -pub const EM_PCP: u16 = 55; -pub const EM_NCPU: u16 = 56; -pub const EM_NDR1: u16 = 57; -pub const EM_STARCORE: u16 = 58; -pub const EM_ME16: u16 = 59; -pub const EM_ST100: u16 = 60; -pub const EM_TINYJ: u16 = 61; -pub const EM_X86_64: u16 = 62; -pub const EM_PDSP: u16 = 63; -pub const EM_FX66: u16 = 66; -pub const EM_ST9PLUS: u16 = 67; -pub const EM_ST7: u16 = 68; -pub const EM_68HC16: u16 = 69; -pub const EM_68HC11: u16 = 70; -pub const EM_68HC08: u16 = 71; -pub const EM_68HC05: u16 = 72; -pub const EM_SVX: u16 = 73; -pub const EM_ST19: u16 = 74; -pub const EM_VAX: u16 = 75; -pub const EM_CRIS: u16 = 76; -pub const EM_JAVELIN: u16 = 77; -pub const EM_FIREPATH: u16 = 78; -pub const EM_ZSP: u16 = 79; -pub const EM_MMIX: u16 = 80; -pub const EM_HUANY: u16 = 81; -pub const EM_PRISM: u16 = 82; -pub const EM_AVR: u16 = 83; -pub const EM_FR30: u16 = 84; -pub const EM_D10V: u16 = 85; -pub const EM_D30V: u16 = 86; -pub const EM_V850: u16 = 87; -pub const EM_M32R: u16 = 88; -pub const EM_MN10300: u16 = 89; -pub const EM_MN10200: u16 = 90; -pub const EM_PJ: u16 = 91; -pub const EM_OPENRISC: u16 = 92; -pub const EM_ARC_A5: u16 = 93; -pub const EM_XTENSA: u16 = 94; -pub const EM_AARCH64: u16 = 183; -pub const EM_TILEPRO: u16 = 188; -pub const EM_TILEGX: u16 = 191; -pub const EM_ALPHA: u16 = 0x9026; - -// elf.h - Legal values for e_version (version). -pub const EV_NONE: u32 = 0; -pub const EV_CURRENT: u32 = 1; -pub const EV_NUM: u32 = 2; - -// elf.h - Legal values for p_type (segment type). -pub const PT_NULL: u32 = 0; -pub const PT_LOAD: u32 = 1; -pub const PT_DYNAMIC: u32 = 2; -pub const PT_INTERP: u32 = 3; -pub const PT_NOTE: u32 = 4; -pub const PT_SHLIB: u32 = 5; -pub const PT_PHDR: u32 = 6; -pub const PT_TLS: u32 = 7; -pub const PT_NUM: u32 = 8; -pub const PT_LOOS: u32 = 0x60000000; -pub const PT_GNU_EH_FRAME: u32 = 0x6474e550; -pub const PT_GNU_STACK: u32 = 0x6474e551; -pub const PT_GNU_RELRO: u32 = 0x6474e552; -pub const PT_LOSUNW: u32 = 0x6ffffffa; -pub const PT_SUNWBSS: u32 = 0x6ffffffa; -pub const PT_SUNWSTACK: u32 = 0x6ffffffb; -pub const PT_HISUNW: u32 = 0x6fffffff; -pub const PT_HIOS: u32 = 0x6fffffff; -pub const PT_LOPROC: u32 = 0x70000000; -pub const PT_HIPROC: u32 = 0x7fffffff; - -// Legal values for p_flags (segment flags). -pub const PF_X: u32 = 1 << 0; -pub const PF_W: u32 = 1 << 1; -pub const PF_R: u32 = 1 << 2; -pub const PF_MASKOS: u32 = 0x0ff00000; -pub const PF_MASKPROC: u32 = 0xf0000000; - -// elf.h - Legal values for a_type (entry type). -pub const AT_NULL: ::c_ulong = 0; -pub const AT_IGNORE: ::c_ulong = 1; -pub const AT_EXECFD: ::c_ulong = 2; -pub const AT_PHDR: ::c_ulong = 3; -pub const AT_PHENT: ::c_ulong = 4; -pub const AT_PHNUM: ::c_ulong = 5; -pub const AT_PAGESZ: ::c_ulong = 6; -pub const AT_BASE: ::c_ulong = 7; -pub const AT_FLAGS: ::c_ulong = 8; -pub const AT_ENTRY: ::c_ulong = 9; -pub const AT_NOTELF: ::c_ulong = 10; -pub const AT_UID: ::c_ulong = 11; -pub const AT_EUID: ::c_ulong = 12; -pub const AT_GID: ::c_ulong = 13; -pub const AT_EGID: ::c_ulong = 14; -pub const AT_PLATFORM: ::c_ulong = 15; -pub const AT_HWCAP: ::c_ulong = 16; -pub const AT_CLKTCK: ::c_ulong = 17; - -pub const AT_SECURE: ::c_ulong = 23; -pub const AT_BASE_PLATFORM: ::c_ulong = 24; -pub const AT_RANDOM: ::c_ulong = 25; -pub const AT_HWCAP2: ::c_ulong = 26; - -pub const AT_EXECFN: ::c_ulong = 31; - -// defined in arch//include/uapi/asm/auxvec.h but has the same value -// wherever it is defined. -pub const AT_SYSINFO_EHDR: ::c_ulong = 33; - -pub const GLOB_ERR: ::c_int = 1 << 0; -pub const GLOB_MARK: ::c_int = 1 << 1; -pub const GLOB_NOSORT: ::c_int = 1 << 2; -pub const GLOB_DOOFFS: ::c_int = 1 << 3; -pub const GLOB_NOCHECK: ::c_int = 1 << 4; -pub const GLOB_APPEND: ::c_int = 1 << 5; -pub const GLOB_NOESCAPE: ::c_int = 1 << 6; - -pub const GLOB_NOSPACE: ::c_int = 1; -pub const GLOB_ABORTED: ::c_int = 2; -pub const GLOB_NOMATCH: ::c_int = 3; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_MADV_WILLNEED: ::c_int = 3; -pub const POSIX_SPAWN_USEVFORK: ::c_int = 64; -pub const POSIX_SPAWN_SETSID: ::c_int = 128; - -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; - -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; - -pub const F_SEAL_FUTURE_WRITE: ::c_int = 0x0010; - -pub const IFF_LOWER_UP: ::c_int = 0x10000; -pub const IFF_DORMANT: ::c_int = 0x20000; -pub const IFF_ECHO: ::c_int = 0x40000; - -// linux/if_addr.h -pub const IFA_UNSPEC: ::c_ushort = 0; -pub const IFA_ADDRESS: ::c_ushort = 1; -pub const IFA_LOCAL: ::c_ushort = 2; -pub const IFA_LABEL: ::c_ushort = 3; -pub const IFA_BROADCAST: ::c_ushort = 4; -pub const IFA_ANYCAST: ::c_ushort = 5; -pub const IFA_CACHEINFO: ::c_ushort = 6; -pub const IFA_MULTICAST: ::c_ushort = 7; - -pub const IFA_F_SECONDARY: u32 = 0x01; -pub const IFA_F_TEMPORARY: u32 = 0x01; -pub const IFA_F_NODAD: u32 = 0x02; -pub const IFA_F_OPTIMISTIC: u32 = 0x04; -pub const IFA_F_DADFAILED: u32 = 0x08; -pub const IFA_F_HOMEADDRESS: u32 = 0x10; -pub const IFA_F_DEPRECATED: u32 = 0x20; -pub const IFA_F_TENTATIVE: u32 = 0x40; -pub const IFA_F_PERMANENT: u32 = 0x80; - -// linux/if_link.h -pub const IFLA_UNSPEC: ::c_ushort = 0; -pub const IFLA_ADDRESS: ::c_ushort = 1; -pub const IFLA_BROADCAST: ::c_ushort = 2; -pub const IFLA_IFNAME: ::c_ushort = 3; -pub const IFLA_MTU: ::c_ushort = 4; -pub const IFLA_LINK: ::c_ushort = 5; -pub const IFLA_QDISC: ::c_ushort = 6; -pub const IFLA_STATS: ::c_ushort = 7; -pub const IFLA_COST: ::c_ushort = 8; -pub const IFLA_PRIORITY: ::c_ushort = 9; -pub const IFLA_MASTER: ::c_ushort = 10; -pub const IFLA_WIRELESS: ::c_ushort = 11; -pub const IFLA_PROTINFO: ::c_ushort = 12; -pub const IFLA_TXQLEN: ::c_ushort = 13; -pub const IFLA_MAP: ::c_ushort = 14; -pub const IFLA_WEIGHT: ::c_ushort = 15; -pub const IFLA_OPERSTATE: ::c_ushort = 16; -pub const IFLA_LINKMODE: ::c_ushort = 17; -pub const IFLA_LINKINFO: ::c_ushort = 18; -pub const IFLA_NET_NS_PID: ::c_ushort = 19; -pub const IFLA_IFALIAS: ::c_ushort = 20; -pub const IFLA_NUM_VF: ::c_ushort = 21; -pub const IFLA_VFINFO_LIST: ::c_ushort = 22; -pub const IFLA_STATS64: ::c_ushort = 23; -pub const IFLA_VF_PORTS: ::c_ushort = 24; -pub const IFLA_PORT_SELF: ::c_ushort = 25; -pub const IFLA_AF_SPEC: ::c_ushort = 26; -pub const IFLA_GROUP: ::c_ushort = 27; -pub const IFLA_NET_NS_FD: ::c_ushort = 28; -pub const IFLA_EXT_MASK: ::c_ushort = 29; -pub const IFLA_PROMISCUITY: ::c_ushort = 30; -pub const IFLA_NUM_TX_QUEUES: ::c_ushort = 31; -pub const IFLA_NUM_RX_QUEUES: ::c_ushort = 32; -pub const IFLA_CARRIER: ::c_ushort = 33; -pub const IFLA_PHYS_PORT_ID: ::c_ushort = 34; -pub const IFLA_CARRIER_CHANGES: ::c_ushort = 35; -pub const IFLA_PHYS_SWITCH_ID: ::c_ushort = 36; -pub const IFLA_LINK_NETNSID: ::c_ushort = 37; -pub const IFLA_PHYS_PORT_NAME: ::c_ushort = 38; -pub const IFLA_PROTO_DOWN: ::c_ushort = 39; -pub const IFLA_GSO_MAX_SEGS: ::c_ushort = 40; -pub const IFLA_GSO_MAX_SIZE: ::c_ushort = 41; -pub const IFLA_PAD: ::c_ushort = 42; -pub const IFLA_XDP: ::c_ushort = 43; -pub const IFLA_EVENT: ::c_ushort = 44; -pub const IFLA_NEW_NETNSID: ::c_ushort = 45; -pub const IFLA_IF_NETNSID: ::c_ushort = 46; -pub const IFLA_TARGET_NETNSID: ::c_ushort = IFLA_IF_NETNSID; -pub const IFLA_CARRIER_UP_COUNT: ::c_ushort = 47; -pub const IFLA_CARRIER_DOWN_COUNT: ::c_ushort = 48; -pub const IFLA_NEW_IFINDEX: ::c_ushort = 49; -pub const IFLA_MIN_MTU: ::c_ushort = 50; -pub const IFLA_MAX_MTU: ::c_ushort = 51; -pub const IFLA_PROP_LIST: ::c_ushort = 52; -pub const IFLA_ALT_IFNAME: ::c_ushort = 53; -pub const IFLA_PERM_ADDRESS: ::c_ushort = 54; -pub const IFLA_PROTO_DOWN_REASON: ::c_ushort = 55; -pub const IFLA_PARENT_DEV_NAME: ::c_ushort = 56; -pub const IFLA_PARENT_DEV_BUS_NAME: ::c_ushort = 57; -pub const IFLA_GRO_MAX_SIZE: ::c_ushort = 58; -pub const IFLA_TSO_MAX_SIZE: ::c_ushort = 59; -pub const IFLA_TSO_MAX_SEGS: ::c_ushort = 60; -pub const IFLA_ALLMULTI: ::c_ushort = 61; - -pub const IFLA_INFO_UNSPEC: ::c_ushort = 0; -pub const IFLA_INFO_KIND: ::c_ushort = 1; -pub const IFLA_INFO_DATA: ::c_ushort = 2; -pub const IFLA_INFO_XSTATS: ::c_ushort = 3; -pub const IFLA_INFO_SLAVE_KIND: ::c_ushort = 4; -pub const IFLA_INFO_SLAVE_DATA: ::c_ushort = 5; - -// linux/if_tun.h -pub const IFF_TUN: ::c_int = 0x0001; -pub const IFF_TAP: ::c_int = 0x0002; -pub const IFF_NO_PI: ::c_int = 0x1000; -// Read queue size -pub const TUN_READQ_SIZE: ::c_short = 500; -// TUN device type flags: deprecated. Use IFF_TUN/IFF_TAP instead. -pub const TUN_TUN_DEV: ::c_short = ::IFF_TUN as ::c_short; -pub const TUN_TAP_DEV: ::c_short = ::IFF_TAP as ::c_short; -pub const TUN_TYPE_MASK: ::c_short = 0x000f; -// This flag has no real effect -pub const IFF_ONE_QUEUE: ::c_int = 0x2000; -pub const IFF_VNET_HDR: ::c_int = 0x4000; -pub const IFF_TUN_EXCL: ::c_int = 0x8000; -pub const IFF_MULTI_QUEUE: ::c_int = 0x0100; -pub const IFF_ATTACH_QUEUE: ::c_int = 0x0200; -pub const IFF_DETACH_QUEUE: ::c_int = 0x0400; -// read-only flag -pub const IFF_PERSIST: ::c_int = 0x0800; -pub const IFF_NOFILTER: ::c_int = 0x1000; - -// Since Linux 3.1 -pub const SEEK_DATA: ::c_int = 3; -pub const SEEK_HOLE: ::c_int = 4; - -pub const ST_RDONLY: ::c_ulong = 1; -pub const ST_NOSUID: ::c_ulong = 2; -pub const ST_NODEV: ::c_ulong = 4; -pub const ST_NOEXEC: ::c_ulong = 8; -pub const ST_SYNCHRONOUS: ::c_ulong = 16; -pub const ST_MANDLOCK: ::c_ulong = 64; -pub const ST_WRITE: ::c_ulong = 128; -pub const ST_APPEND: ::c_ulong = 256; -pub const ST_IMMUTABLE: ::c_ulong = 512; -pub const ST_NOATIME: ::c_ulong = 1024; -pub const ST_NODIRATIME: ::c_ulong = 2048; - -pub const RTLD_NEXT: *mut ::c_void = -1i64 as *mut ::c_void; -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; -pub const RTLD_NODELETE: ::c_int = 0x1000; -pub const RTLD_NOW: ::c_int = 0x2; - -pub const AT_EACCESS: ::c_int = 0x200; - -// linux/mempolicy.h -pub const MPOL_DEFAULT: ::c_int = 0; -pub const MPOL_PREFERRED: ::c_int = 1; -pub const MPOL_BIND: ::c_int = 2; -pub const MPOL_INTERLEAVE: ::c_int = 3; -pub const MPOL_LOCAL: ::c_int = 4; -pub const MPOL_F_NUMA_BALANCING: ::c_int = 1 << 13; -pub const MPOL_F_RELATIVE_NODES: ::c_int = 1 << 14; -pub const MPOL_F_STATIC_NODES: ::c_int = 1 << 15; - -// linux/membarrier.h -pub const MEMBARRIER_CMD_QUERY: ::c_int = 0; -pub const MEMBARRIER_CMD_GLOBAL: ::c_int = 1 << 0; -pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: ::c_int = 1 << 1; -pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: ::c_int = 1 << 2; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: ::c_int = 1 << 3; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: ::c_int = 1 << 4; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 5; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 6; -pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 7; -pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 8; - -align_const! { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - size: [0; __SIZEOF_PTHREAD_MUTEX_T], - }; - pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - size: [0; __SIZEOF_PTHREAD_COND_T], - }; - pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - size: [0; __SIZEOF_PTHREAD_RWLOCK_T], - }; -} -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; -pub const PTHREAD_MUTEX_STALLED: ::c_int = 0; -pub const PTHREAD_MUTEX_ROBUST: ::c_int = 1; -pub const PTHREAD_PRIO_NONE: ::c_int = 0; -pub const PTHREAD_PRIO_INHERIT: ::c_int = 1; -pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; -pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; -pub const __SIZEOF_PTHREAD_COND_T: usize = 48; - -pub const RENAME_NOREPLACE: ::c_uint = 1; -pub const RENAME_EXCHANGE: ::c_uint = 2; -pub const RENAME_WHITEOUT: ::c_uint = 4; - -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; -pub const SCHED_BATCH: ::c_int = 3; -pub const SCHED_IDLE: ::c_int = 5; - -pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000; - -pub const CLONE_PIDFD: ::c_int = 0x1000; - -// netinet/in.h -// NOTE: These are in addition to the constants defined in src/unix/mod.rs - -#[deprecated( - since = "0.2.80", - note = "This value was increased in the newer kernel \ - and we'll change this following upstream in the future release. \ - See #1896 for more info." -)] -pub const IPPROTO_MAX: ::c_int = 256; - -// System V IPC -pub const IPC_PRIVATE: ::key_t = 0; - -pub const IPC_CREAT: ::c_int = 0o1000; -pub const IPC_EXCL: ::c_int = 0o2000; -pub const IPC_NOWAIT: ::c_int = 0o4000; - -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; -pub const IPC_INFO: ::c_int = 3; -pub const MSG_STAT: ::c_int = 11; -pub const MSG_INFO: ::c_int = 12; -pub const MSG_NOTIFICATION: ::c_int = 0x8000; - -pub const MSG_NOERROR: ::c_int = 0o10000; -pub const MSG_EXCEPT: ::c_int = 0o20000; -pub const MSG_ZEROCOPY: ::c_int = 0x4000000; - -pub const SHM_R: ::c_int = 0o400; -pub const SHM_W: ::c_int = 0o200; - -pub const SHM_RDONLY: ::c_int = 0o10000; -pub const SHM_RND: ::c_int = 0o20000; -pub const SHM_REMAP: ::c_int = 0o40000; - -pub const SHM_LOCK: ::c_int = 11; -pub const SHM_UNLOCK: ::c_int = 12; - -pub const SHM_HUGETLB: ::c_int = 0o4000; -#[cfg(not(all(target_env = "uclibc", target_arch = "mips")))] -pub const SHM_NORESERVE: ::c_int = 0o10000; - -pub const QFMT_VFS_OLD: ::c_int = 1; -pub const QFMT_VFS_V0: ::c_int = 2; -pub const QFMT_VFS_V1: ::c_int = 4; - -pub const EFD_SEMAPHORE: ::c_int = 0x1; - -pub const LOG_NFACILITIES: ::c_int = 24; - -pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t; - -pub const RB_AUTOBOOT: ::c_int = 0x01234567u32 as i32; -pub const RB_HALT_SYSTEM: ::c_int = 0xcdef0123u32 as i32; -pub const RB_ENABLE_CAD: ::c_int = 0x89abcdefu32 as i32; -pub const RB_DISABLE_CAD: ::c_int = 0x00000000u32 as i32; -pub const RB_POWER_OFF: ::c_int = 0x4321fedcu32 as i32; -pub const RB_SW_SUSPEND: ::c_int = 0xd000fce2u32 as i32; -pub const RB_KEXEC: ::c_int = 0x45584543u32 as i32; - -pub const AI_PASSIVE: ::c_int = 0x0001; -pub const AI_CANONNAME: ::c_int = 0x0002; -pub const AI_NUMERICHOST: ::c_int = 0x0004; -pub const AI_V4MAPPED: ::c_int = 0x0008; -pub const AI_ALL: ::c_int = 0x0010; -pub const AI_ADDRCONFIG: ::c_int = 0x0020; - -pub const AI_NUMERICSERV: ::c_int = 0x0400; - -pub const EAI_BADFLAGS: ::c_int = -1; -pub const EAI_NONAME: ::c_int = -2; -pub const EAI_AGAIN: ::c_int = -3; -pub const EAI_FAIL: ::c_int = -4; -pub const EAI_NODATA: ::c_int = -5; -pub const EAI_FAMILY: ::c_int = -6; -pub const EAI_SOCKTYPE: ::c_int = -7; -pub const EAI_SERVICE: ::c_int = -8; -pub const EAI_MEMORY: ::c_int = -10; -pub const EAI_SYSTEM: ::c_int = -11; -pub const EAI_OVERFLOW: ::c_int = -12; - -pub const NI_NUMERICHOST: ::c_int = 1; -pub const NI_NUMERICSERV: ::c_int = 2; -pub const NI_NOFQDN: ::c_int = 4; -pub const NI_NAMEREQD: ::c_int = 8; -pub const NI_DGRAM: ::c_int = 16; - -pub const SYNC_FILE_RANGE_WAIT_BEFORE: ::c_uint = 1; -pub const SYNC_FILE_RANGE_WRITE: ::c_uint = 2; -pub const SYNC_FILE_RANGE_WAIT_AFTER: ::c_uint = 4; - -cfg_if! { - if #[cfg(not(target_env = "uclibc"))] { - pub const AIO_CANCELED: ::c_int = 0; - pub const AIO_NOTCANCELED: ::c_int = 1; - pub const AIO_ALLDONE: ::c_int = 2; - pub const LIO_READ: ::c_int = 0; - pub const LIO_WRITE: ::c_int = 1; - pub const LIO_NOP: ::c_int = 2; - pub const LIO_WAIT: ::c_int = 0; - pub const LIO_NOWAIT: ::c_int = 1; - pub const RUSAGE_THREAD: ::c_int = 1; - pub const MSG_COPY: ::c_int = 0o40000; - pub const SHM_EXEC: ::c_int = 0o100000; - pub const IPV6_MULTICAST_ALL: ::c_int = 29; - pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; - pub const PACKET_MR_UNICAST: ::c_int = 3; - pub const PTRACE_EVENT_STOP: ::c_int = 128; - pub const UDP_SEGMENT: ::c_int = 103; - pub const UDP_GRO: ::c_int = 104; - } -} - -pub const MREMAP_MAYMOVE: ::c_int = 1; -pub const MREMAP_FIXED: ::c_int = 2; -pub const MREMAP_DONTUNMAP: ::c_int = 4; - -pub const PR_SET_PDEATHSIG: ::c_int = 1; -pub const PR_GET_PDEATHSIG: ::c_int = 2; - -pub const PR_GET_DUMPABLE: ::c_int = 3; -pub const PR_SET_DUMPABLE: ::c_int = 4; - -pub const PR_GET_UNALIGN: ::c_int = 5; -pub const PR_SET_UNALIGN: ::c_int = 6; -pub const PR_UNALIGN_NOPRINT: ::c_int = 1; -pub const PR_UNALIGN_SIGBUS: ::c_int = 2; - -pub const PR_GET_KEEPCAPS: ::c_int = 7; -pub const PR_SET_KEEPCAPS: ::c_int = 8; - -pub const PR_GET_FPEMU: ::c_int = 9; -pub const PR_SET_FPEMU: ::c_int = 10; -pub const PR_FPEMU_NOPRINT: ::c_int = 1; -pub const PR_FPEMU_SIGFPE: ::c_int = 2; - -pub const PR_GET_FPEXC: ::c_int = 11; -pub const PR_SET_FPEXC: ::c_int = 12; -pub const PR_FP_EXC_SW_ENABLE: ::c_int = 0x80; -pub const PR_FP_EXC_DIV: ::c_int = 0x010000; -pub const PR_FP_EXC_OVF: ::c_int = 0x020000; -pub const PR_FP_EXC_UND: ::c_int = 0x040000; -pub const PR_FP_EXC_RES: ::c_int = 0x080000; -pub const PR_FP_EXC_INV: ::c_int = 0x100000; -pub const PR_FP_EXC_DISABLED: ::c_int = 0; -pub const PR_FP_EXC_NONRECOV: ::c_int = 1; -pub const PR_FP_EXC_ASYNC: ::c_int = 2; -pub const PR_FP_EXC_PRECISE: ::c_int = 3; - -pub const PR_GET_TIMING: ::c_int = 13; -pub const PR_SET_TIMING: ::c_int = 14; -pub const PR_TIMING_STATISTICAL: ::c_int = 0; -pub const PR_TIMING_TIMESTAMP: ::c_int = 1; - -pub const PR_SET_NAME: ::c_int = 15; -pub const PR_GET_NAME: ::c_int = 16; - -pub const PR_GET_ENDIAN: ::c_int = 19; -pub const PR_SET_ENDIAN: ::c_int = 20; -pub const PR_ENDIAN_BIG: ::c_int = 0; -pub const PR_ENDIAN_LITTLE: ::c_int = 1; -pub const PR_ENDIAN_PPC_LITTLE: ::c_int = 2; - -pub const PR_GET_SECCOMP: ::c_int = 21; -pub const PR_SET_SECCOMP: ::c_int = 22; - -pub const PR_CAPBSET_READ: ::c_int = 23; -pub const PR_CAPBSET_DROP: ::c_int = 24; - -pub const PR_GET_TSC: ::c_int = 25; -pub const PR_SET_TSC: ::c_int = 26; -pub const PR_TSC_ENABLE: ::c_int = 1; -pub const PR_TSC_SIGSEGV: ::c_int = 2; - -pub const PR_GET_SECUREBITS: ::c_int = 27; -pub const PR_SET_SECUREBITS: ::c_int = 28; - -pub const PR_SET_TIMERSLACK: ::c_int = 29; -pub const PR_GET_TIMERSLACK: ::c_int = 30; - -pub const PR_TASK_PERF_EVENTS_DISABLE: ::c_int = 31; -pub const PR_TASK_PERF_EVENTS_ENABLE: ::c_int = 32; - -pub const PR_MCE_KILL: ::c_int = 33; -pub const PR_MCE_KILL_CLEAR: ::c_int = 0; -pub const PR_MCE_KILL_SET: ::c_int = 1; - -pub const PR_MCE_KILL_LATE: ::c_int = 0; -pub const PR_MCE_KILL_EARLY: ::c_int = 1; -pub const PR_MCE_KILL_DEFAULT: ::c_int = 2; - -pub const PR_MCE_KILL_GET: ::c_int = 34; - -pub const PR_SET_MM: ::c_int = 35; -pub const PR_SET_MM_START_CODE: ::c_int = 1; -pub const PR_SET_MM_END_CODE: ::c_int = 2; -pub const PR_SET_MM_START_DATA: ::c_int = 3; -pub const PR_SET_MM_END_DATA: ::c_int = 4; -pub const PR_SET_MM_START_STACK: ::c_int = 5; -pub const PR_SET_MM_START_BRK: ::c_int = 6; -pub const PR_SET_MM_BRK: ::c_int = 7; -pub const PR_SET_MM_ARG_START: ::c_int = 8; -pub const PR_SET_MM_ARG_END: ::c_int = 9; -pub const PR_SET_MM_ENV_START: ::c_int = 10; -pub const PR_SET_MM_ENV_END: ::c_int = 11; -pub const PR_SET_MM_AUXV: ::c_int = 12; -pub const PR_SET_MM_EXE_FILE: ::c_int = 13; -pub const PR_SET_MM_MAP: ::c_int = 14; -pub const PR_SET_MM_MAP_SIZE: ::c_int = 15; - -pub const PR_SET_PTRACER: ::c_int = 0x59616d61; -pub const PR_SET_PTRACER_ANY: ::c_ulong = 0xffffffffffffffff; - -pub const PR_SET_CHILD_SUBREAPER: ::c_int = 36; -pub const PR_GET_CHILD_SUBREAPER: ::c_int = 37; - -pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38; -pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39; - -pub const PR_GET_TID_ADDRESS: ::c_int = 40; - -pub const PR_SET_THP_DISABLE: ::c_int = 41; -pub const PR_GET_THP_DISABLE: ::c_int = 42; - -pub const PR_MPX_ENABLE_MANAGEMENT: ::c_int = 43; -pub const PR_MPX_DISABLE_MANAGEMENT: ::c_int = 44; - -pub const PR_SET_FP_MODE: ::c_int = 45; -pub const PR_GET_FP_MODE: ::c_int = 46; -pub const PR_FP_MODE_FR: ::c_int = 1 << 0; -pub const PR_FP_MODE_FRE: ::c_int = 1 << 1; - -pub const PR_CAP_AMBIENT: ::c_int = 47; -pub const PR_CAP_AMBIENT_IS_SET: ::c_int = 1; -pub const PR_CAP_AMBIENT_RAISE: ::c_int = 2; -pub const PR_CAP_AMBIENT_LOWER: ::c_int = 3; -pub const PR_CAP_AMBIENT_CLEAR_ALL: ::c_int = 4; - -pub const PR_SET_VMA: ::c_int = 0x53564d41; -pub const PR_SET_VMA_ANON_NAME: ::c_int = 0; - -pub const PR_SCHED_CORE: ::c_int = 62; -pub const PR_SCHED_CORE_GET: ::c_int = 0; -pub const PR_SCHED_CORE_CREATE: ::c_int = 1; -pub const PR_SCHED_CORE_SHARE_TO: ::c_int = 2; -pub const PR_SCHED_CORE_SHARE_FROM: ::c_int = 3; -pub const PR_SCHED_CORE_MAX: ::c_int = 4; -pub const PR_SCHED_CORE_SCOPE_THREAD: ::c_int = 0; -pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: ::c_int = 1; -pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: ::c_int = 2; - -pub const GRND_NONBLOCK: ::c_uint = 0x0001; -pub const GRND_RANDOM: ::c_uint = 0x0002; -pub const GRND_INSECURE: ::c_uint = 0x0004; - -pub const SECCOMP_MODE_DISABLED: ::c_uint = 0; -pub const SECCOMP_MODE_STRICT: ::c_uint = 1; -pub const SECCOMP_MODE_FILTER: ::c_uint = 2; - -pub const SECCOMP_FILTER_FLAG_TSYNC: ::c_ulong = 1; -pub const SECCOMP_FILTER_FLAG_LOG: ::c_ulong = 2; -pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: ::c_ulong = 4; - -pub const SECCOMP_RET_KILL_PROCESS: ::c_uint = 0x80000000; -pub const SECCOMP_RET_KILL_THREAD: ::c_uint = 0x00000000; -pub const SECCOMP_RET_KILL: ::c_uint = SECCOMP_RET_KILL_THREAD; -pub const SECCOMP_RET_TRAP: ::c_uint = 0x00030000; -pub const SECCOMP_RET_ERRNO: ::c_uint = 0x00050000; -pub const SECCOMP_RET_TRACE: ::c_uint = 0x7ff00000; -pub const SECCOMP_RET_LOG: ::c_uint = 0x7ffc0000; -pub const SECCOMP_RET_ALLOW: ::c_uint = 0x7fff0000; - -pub const SECCOMP_RET_ACTION_FULL: ::c_uint = 0xffff0000; -pub const SECCOMP_RET_ACTION: ::c_uint = 0x7fff0000; -pub const SECCOMP_RET_DATA: ::c_uint = 0x0000ffff; - -pub const ITIMER_REAL: ::c_int = 0; -pub const ITIMER_VIRTUAL: ::c_int = 1; -pub const ITIMER_PROF: ::c_int = 2; - -pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC; -pub const TFD_NONBLOCK: ::c_int = O_NONBLOCK; -pub const TFD_TIMER_ABSTIME: ::c_int = 1; -pub const TFD_TIMER_CANCEL_ON_SET: ::c_int = 2; - -pub const _POSIX_VDISABLE: ::cc_t = 0; - -pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01; -pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02; -pub const FALLOC_FL_COLLAPSE_RANGE: ::c_int = 0x08; -pub const FALLOC_FL_ZERO_RANGE: ::c_int = 0x10; -pub const FALLOC_FL_INSERT_RANGE: ::c_int = 0x20; -pub const FALLOC_FL_UNSHARE_RANGE: ::c_int = 0x40; - -#[deprecated( - since = "0.2.55", - note = "ENOATTR is not available on Linux; use ENODATA instead" -)] -pub const ENOATTR: ::c_int = ::ENODATA; - -pub const SO_ORIGINAL_DST: ::c_int = 80; - -pub const IP_RECVFRAGSIZE: ::c_int = 25; - -pub const IPV6_FLOWINFO: ::c_int = 11; -pub const IPV6_FLOWLABEL_MGR: ::c_int = 32; -pub const IPV6_FLOWINFO_SEND: ::c_int = 33; -pub const IPV6_RECVFRAGSIZE: ::c_int = 77; -pub const IPV6_FREEBIND: ::c_int = 78; -pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff; -pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000; - -pub const IPV6_RTHDR_LOOSE: ::c_int = 0; -pub const IPV6_RTHDR_STRICT: ::c_int = 1; - -// SO_MEMINFO offsets -pub const SK_MEMINFO_RMEM_ALLOC: ::c_int = 0; -pub const SK_MEMINFO_RCVBUF: ::c_int = 1; -pub const SK_MEMINFO_WMEM_ALLOC: ::c_int = 2; -pub const SK_MEMINFO_SNDBUF: ::c_int = 3; -pub const SK_MEMINFO_FWD_ALLOC: ::c_int = 4; -pub const SK_MEMINFO_WMEM_QUEUED: ::c_int = 5; -pub const SK_MEMINFO_OPTMEM: ::c_int = 6; -pub const SK_MEMINFO_BACKLOG: ::c_int = 7; -pub const SK_MEMINFO_DROPS: ::c_int = 8; - -pub const IUTF8: ::tcflag_t = 0x00004000; -#[cfg(not(all(target_env = "uclibc", target_arch = "mips")))] -pub const CMSPAR: ::tcflag_t = 0o10000000000; - -pub const MFD_CLOEXEC: ::c_uint = 0x0001; -pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; -pub const MFD_HUGETLB: ::c_uint = 0x0004; -pub const MFD_HUGE_64KB: ::c_uint = 0x40000000; -pub const MFD_HUGE_512KB: ::c_uint = 0x4c000000; -pub const MFD_HUGE_1MB: ::c_uint = 0x50000000; -pub const MFD_HUGE_2MB: ::c_uint = 0x54000000; -pub const MFD_HUGE_8MB: ::c_uint = 0x5c000000; -pub const MFD_HUGE_16MB: ::c_uint = 0x60000000; -pub const MFD_HUGE_32MB: ::c_uint = 0x64000000; -pub const MFD_HUGE_256MB: ::c_uint = 0x70000000; -pub const MFD_HUGE_512MB: ::c_uint = 0x74000000; -pub const MFD_HUGE_1GB: ::c_uint = 0x78000000; -pub const MFD_HUGE_2GB: ::c_uint = 0x7c000000; -pub const MFD_HUGE_16GB: ::c_uint = 0x88000000; -pub const MFD_HUGE_MASK: ::c_uint = 63; -pub const MFD_HUGE_SHIFT: ::c_uint = 26; - -// linux/close_range.h -pub const CLOSE_RANGE_UNSHARE: ::c_uint = 1 << 1; -pub const CLOSE_RANGE_CLOEXEC: ::c_uint = 1 << 2; - -// linux/filter.h -pub const SKF_AD_OFF: ::c_int = -0x1000; -pub const SKF_AD_PROTOCOL: ::c_int = 0; -pub const SKF_AD_PKTTYPE: ::c_int = 4; -pub const SKF_AD_IFINDEX: ::c_int = 8; -pub const SKF_AD_NLATTR: ::c_int = 12; -pub const SKF_AD_NLATTR_NEST: ::c_int = 16; -pub const SKF_AD_MARK: ::c_int = 20; -pub const SKF_AD_QUEUE: ::c_int = 24; -pub const SKF_AD_HATYPE: ::c_int = 28; -pub const SKF_AD_RXHASH: ::c_int = 32; -pub const SKF_AD_CPU: ::c_int = 36; -pub const SKF_AD_ALU_XOR_X: ::c_int = 40; -pub const SKF_AD_VLAN_TAG: ::c_int = 44; -pub const SKF_AD_VLAN_TAG_PRESENT: ::c_int = 48; -pub const SKF_AD_PAY_OFFSET: ::c_int = 52; -pub const SKF_AD_RANDOM: ::c_int = 56; -pub const SKF_AD_VLAN_TPID: ::c_int = 60; -pub const SKF_AD_MAX: ::c_int = 64; -pub const SKF_NET_OFF: ::c_int = -0x100000; -pub const SKF_LL_OFF: ::c_int = -0x200000; -pub const BPF_NET_OFF: ::c_int = SKF_NET_OFF; -pub const BPF_LL_OFF: ::c_int = SKF_LL_OFF; -pub const BPF_MEMWORDS: ::c_int = 16; -pub const BPF_MAXINSNS: ::c_int = 4096; - -// linux/bpf_common.h -pub const BPF_LD: ::__u32 = 0x00; -pub const BPF_LDX: ::__u32 = 0x01; -pub const BPF_ST: ::__u32 = 0x02; -pub const BPF_STX: ::__u32 = 0x03; -pub const BPF_ALU: ::__u32 = 0x04; -pub const BPF_JMP: ::__u32 = 0x05; -pub const BPF_RET: ::__u32 = 0x06; -pub const BPF_MISC: ::__u32 = 0x07; -pub const BPF_W: ::__u32 = 0x00; -pub const BPF_H: ::__u32 = 0x08; -pub const BPF_B: ::__u32 = 0x10; -pub const BPF_IMM: ::__u32 = 0x00; -pub const BPF_ABS: ::__u32 = 0x20; -pub const BPF_IND: ::__u32 = 0x40; -pub const BPF_MEM: ::__u32 = 0x60; -pub const BPF_LEN: ::__u32 = 0x80; -pub const BPF_MSH: ::__u32 = 0xa0; -pub const BPF_ADD: ::__u32 = 0x00; -pub const BPF_SUB: ::__u32 = 0x10; -pub const BPF_MUL: ::__u32 = 0x20; -pub const BPF_DIV: ::__u32 = 0x30; -pub const BPF_OR: ::__u32 = 0x40; -pub const BPF_AND: ::__u32 = 0x50; -pub const BPF_LSH: ::__u32 = 0x60; -pub const BPF_RSH: ::__u32 = 0x70; -pub const BPF_NEG: ::__u32 = 0x80; -pub const BPF_MOD: ::__u32 = 0x90; -pub const BPF_XOR: ::__u32 = 0xa0; -pub const BPF_JA: ::__u32 = 0x00; -pub const BPF_JEQ: ::__u32 = 0x10; -pub const BPF_JGT: ::__u32 = 0x20; -pub const BPF_JGE: ::__u32 = 0x30; -pub const BPF_JSET: ::__u32 = 0x40; -pub const BPF_K: ::__u32 = 0x00; -pub const BPF_X: ::__u32 = 0x08; - -// linux/openat2.h -pub const RESOLVE_NO_XDEV: ::__u64 = 0x01; -pub const RESOLVE_NO_MAGICLINKS: ::__u64 = 0x02; -pub const RESOLVE_NO_SYMLINKS: ::__u64 = 0x04; -pub const RESOLVE_BENEATH: ::__u64 = 0x08; -pub const RESOLVE_IN_ROOT: ::__u64 = 0x10; -pub const RESOLVE_CACHED: ::__u64 = 0x20; - -// linux/if_ether.h -pub const ETH_ALEN: ::c_int = 6; -pub const ETH_HLEN: ::c_int = 14; -pub const ETH_ZLEN: ::c_int = 60; -pub const ETH_DATA_LEN: ::c_int = 1500; -pub const ETH_FRAME_LEN: ::c_int = 1514; -pub const ETH_FCS_LEN: ::c_int = 4; - -// These are the defined Ethernet Protocol ID's. -pub const ETH_P_LOOP: ::c_int = 0x0060; -pub const ETH_P_PUP: ::c_int = 0x0200; -pub const ETH_P_PUPAT: ::c_int = 0x0201; -pub const ETH_P_IP: ::c_int = 0x0800; -pub const ETH_P_X25: ::c_int = 0x0805; -pub const ETH_P_ARP: ::c_int = 0x0806; -pub const ETH_P_BPQ: ::c_int = 0x08FF; -pub const ETH_P_IEEEPUP: ::c_int = 0x0a00; -pub const ETH_P_IEEEPUPAT: ::c_int = 0x0a01; -pub const ETH_P_BATMAN: ::c_int = 0x4305; -pub const ETH_P_DEC: ::c_int = 0x6000; -pub const ETH_P_DNA_DL: ::c_int = 0x6001; -pub const ETH_P_DNA_RC: ::c_int = 0x6002; -pub const ETH_P_DNA_RT: ::c_int = 0x6003; -pub const ETH_P_LAT: ::c_int = 0x6004; -pub const ETH_P_DIAG: ::c_int = 0x6005; -pub const ETH_P_CUST: ::c_int = 0x6006; -pub const ETH_P_SCA: ::c_int = 0x6007; -pub const ETH_P_TEB: ::c_int = 0x6558; -pub const ETH_P_RARP: ::c_int = 0x8035; -pub const ETH_P_ATALK: ::c_int = 0x809B; -pub const ETH_P_AARP: ::c_int = 0x80F3; -pub const ETH_P_8021Q: ::c_int = 0x8100; -pub const ETH_P_IPX: ::c_int = 0x8137; -pub const ETH_P_IPV6: ::c_int = 0x86DD; -pub const ETH_P_PAUSE: ::c_int = 0x8808; -pub const ETH_P_SLOW: ::c_int = 0x8809; -pub const ETH_P_WCCP: ::c_int = 0x883E; -pub const ETH_P_MPLS_UC: ::c_int = 0x8847; -pub const ETH_P_MPLS_MC: ::c_int = 0x8848; -pub const ETH_P_ATMMPOA: ::c_int = 0x884c; -pub const ETH_P_PPP_DISC: ::c_int = 0x8863; -pub const ETH_P_PPP_SES: ::c_int = 0x8864; -pub const ETH_P_LINK_CTL: ::c_int = 0x886c; -pub const ETH_P_ATMFATE: ::c_int = 0x8884; -pub const ETH_P_PAE: ::c_int = 0x888E; -pub const ETH_P_AOE: ::c_int = 0x88A2; -pub const ETH_P_8021AD: ::c_int = 0x88A8; -pub const ETH_P_802_EX1: ::c_int = 0x88B5; -pub const ETH_P_TIPC: ::c_int = 0x88CA; -pub const ETH_P_MACSEC: ::c_int = 0x88E5; -pub const ETH_P_8021AH: ::c_int = 0x88E7; -pub const ETH_P_MVRP: ::c_int = 0x88F5; -pub const ETH_P_1588: ::c_int = 0x88F7; -pub const ETH_P_PRP: ::c_int = 0x88FB; -pub const ETH_P_FCOE: ::c_int = 0x8906; -pub const ETH_P_TDLS: ::c_int = 0x890D; -pub const ETH_P_FIP: ::c_int = 0x8914; -pub const ETH_P_80221: ::c_int = 0x8917; -pub const ETH_P_LOOPBACK: ::c_int = 0x9000; -pub const ETH_P_QINQ1: ::c_int = 0x9100; -pub const ETH_P_QINQ2: ::c_int = 0x9200; -pub const ETH_P_QINQ3: ::c_int = 0x9300; -pub const ETH_P_EDSA: ::c_int = 0xDADA; -pub const ETH_P_AF_IUCV: ::c_int = 0xFBFB; - -pub const ETH_P_802_3_MIN: ::c_int = 0x0600; - -// Non DIX types. Won't clash for 1500 types. -pub const ETH_P_802_3: ::c_int = 0x0001; -pub const ETH_P_AX25: ::c_int = 0x0002; -pub const ETH_P_ALL: ::c_int = 0x0003; -pub const ETH_P_802_2: ::c_int = 0x0004; -pub const ETH_P_SNAP: ::c_int = 0x0005; -pub const ETH_P_DDCMP: ::c_int = 0x0006; -pub const ETH_P_WAN_PPP: ::c_int = 0x0007; -pub const ETH_P_PPP_MP: ::c_int = 0x0008; -pub const ETH_P_LOCALTALK: ::c_int = 0x0009; -pub const ETH_P_CANFD: ::c_int = 0x000D; -pub const ETH_P_PPPTALK: ::c_int = 0x0010; -pub const ETH_P_TR_802_2: ::c_int = 0x0011; -pub const ETH_P_MOBITEX: ::c_int = 0x0015; -pub const ETH_P_CONTROL: ::c_int = 0x0016; -pub const ETH_P_IRDA: ::c_int = 0x0017; -pub const ETH_P_ECONET: ::c_int = 0x0018; -pub const ETH_P_HDLC: ::c_int = 0x0019; -pub const ETH_P_ARCNET: ::c_int = 0x001A; -pub const ETH_P_DSA: ::c_int = 0x001B; -pub const ETH_P_TRAILER: ::c_int = 0x001C; -pub const ETH_P_PHONET: ::c_int = 0x00F5; -pub const ETH_P_IEEE802154: ::c_int = 0x00F6; -pub const ETH_P_CAIF: ::c_int = 0x00F7; - -pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; -pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; -pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x04; -pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x08; -pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x10; -pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x20; - -pub const NLMSG_NOOP: ::c_int = 0x1; -pub const NLMSG_ERROR: ::c_int = 0x2; -pub const NLMSG_DONE: ::c_int = 0x3; -pub const NLMSG_OVERRUN: ::c_int = 0x4; -pub const NLMSG_MIN_TYPE: ::c_int = 0x10; - -// linux/netfilter/nfnetlink.h -pub const NFNLGRP_NONE: ::c_int = 0; -pub const NFNLGRP_CONNTRACK_NEW: ::c_int = 1; -pub const NFNLGRP_CONNTRACK_UPDATE: ::c_int = 2; -pub const NFNLGRP_CONNTRACK_DESTROY: ::c_int = 3; -pub const NFNLGRP_CONNTRACK_EXP_NEW: ::c_int = 4; -pub const NFNLGRP_CONNTRACK_EXP_UPDATE: ::c_int = 5; -pub const NFNLGRP_CONNTRACK_EXP_DESTROY: ::c_int = 6; -pub const NFNLGRP_NFTABLES: ::c_int = 7; -pub const NFNLGRP_ACCT_QUOTA: ::c_int = 8; -pub const NFNLGRP_NFTRACE: ::c_int = 9; - -pub const NFNETLINK_V0: ::c_int = 0; - -pub const NFNL_SUBSYS_NONE: ::c_int = 0; -pub const NFNL_SUBSYS_CTNETLINK: ::c_int = 1; -pub const NFNL_SUBSYS_CTNETLINK_EXP: ::c_int = 2; -pub const NFNL_SUBSYS_QUEUE: ::c_int = 3; -pub const NFNL_SUBSYS_ULOG: ::c_int = 4; -pub const NFNL_SUBSYS_OSF: ::c_int = 5; -pub const NFNL_SUBSYS_IPSET: ::c_int = 6; -pub const NFNL_SUBSYS_ACCT: ::c_int = 7; -pub const NFNL_SUBSYS_CTNETLINK_TIMEOUT: ::c_int = 8; -pub const NFNL_SUBSYS_CTHELPER: ::c_int = 9; -pub const NFNL_SUBSYS_NFTABLES: ::c_int = 10; -pub const NFNL_SUBSYS_NFT_COMPAT: ::c_int = 11; -pub const NFNL_SUBSYS_HOOK: ::c_int = 12; -pub const NFNL_SUBSYS_COUNT: ::c_int = 13; - -pub const NFNL_MSG_BATCH_BEGIN: ::c_int = NLMSG_MIN_TYPE; -pub const NFNL_MSG_BATCH_END: ::c_int = NLMSG_MIN_TYPE + 1; - -pub const NFNL_BATCH_UNSPEC: ::c_int = 0; -pub const NFNL_BATCH_GENID: ::c_int = 1; - -// linux/netfilter/nfnetlink_log.h -pub const NFULNL_MSG_PACKET: ::c_int = 0; -pub const NFULNL_MSG_CONFIG: ::c_int = 1; - -pub const NFULA_VLAN_UNSPEC: ::c_int = 0; -pub const NFULA_VLAN_PROTO: ::c_int = 1; -pub const NFULA_VLAN_TCI: ::c_int = 2; - -pub const NFULA_UNSPEC: ::c_int = 0; -pub const NFULA_PACKET_HDR: ::c_int = 1; -pub const NFULA_MARK: ::c_int = 2; -pub const NFULA_TIMESTAMP: ::c_int = 3; -pub const NFULA_IFINDEX_INDEV: ::c_int = 4; -pub const NFULA_IFINDEX_OUTDEV: ::c_int = 5; -pub const NFULA_IFINDEX_PHYSINDEV: ::c_int = 6; -pub const NFULA_IFINDEX_PHYSOUTDEV: ::c_int = 7; -pub const NFULA_HWADDR: ::c_int = 8; -pub const NFULA_PAYLOAD: ::c_int = 9; -pub const NFULA_PREFIX: ::c_int = 10; -pub const NFULA_UID: ::c_int = 11; -pub const NFULA_SEQ: ::c_int = 12; -pub const NFULA_SEQ_GLOBAL: ::c_int = 13; -pub const NFULA_GID: ::c_int = 14; -pub const NFULA_HWTYPE: ::c_int = 15; -pub const NFULA_HWHEADER: ::c_int = 16; -pub const NFULA_HWLEN: ::c_int = 17; -pub const NFULA_CT: ::c_int = 18; -pub const NFULA_CT_INFO: ::c_int = 19; -pub const NFULA_VLAN: ::c_int = 20; -pub const NFULA_L2HDR: ::c_int = 21; - -pub const NFULNL_CFG_CMD_NONE: ::c_int = 0; -pub const NFULNL_CFG_CMD_BIND: ::c_int = 1; -pub const NFULNL_CFG_CMD_UNBIND: ::c_int = 2; -pub const NFULNL_CFG_CMD_PF_BIND: ::c_int = 3; -pub const NFULNL_CFG_CMD_PF_UNBIND: ::c_int = 4; - -pub const NFULA_CFG_UNSPEC: ::c_int = 0; -pub const NFULA_CFG_CMD: ::c_int = 1; -pub const NFULA_CFG_MODE: ::c_int = 2; -pub const NFULA_CFG_NLBUFSIZ: ::c_int = 3; -pub const NFULA_CFG_TIMEOUT: ::c_int = 4; -pub const NFULA_CFG_QTHRESH: ::c_int = 5; -pub const NFULA_CFG_FLAGS: ::c_int = 6; - -pub const NFULNL_COPY_NONE: ::c_int = 0x00; -pub const NFULNL_COPY_META: ::c_int = 0x01; -pub const NFULNL_COPY_PACKET: ::c_int = 0x02; - -pub const NFULNL_CFG_F_SEQ: ::c_int = 0x0001; -pub const NFULNL_CFG_F_SEQ_GLOBAL: ::c_int = 0x0002; -pub const NFULNL_CFG_F_CONNTRACK: ::c_int = 0x0004; - -// linux/netfilter/nfnetlink_queue.h -pub const NFQNL_MSG_PACKET: ::c_int = 0; -pub const NFQNL_MSG_VERDICT: ::c_int = 1; -pub const NFQNL_MSG_CONFIG: ::c_int = 2; -pub const NFQNL_MSG_VERDICT_BATCH: ::c_int = 3; - -pub const NFQA_UNSPEC: ::c_int = 0; -pub const NFQA_PACKET_HDR: ::c_int = 1; -pub const NFQA_VERDICT_HDR: ::c_int = 2; -pub const NFQA_MARK: ::c_int = 3; -pub const NFQA_TIMESTAMP: ::c_int = 4; -pub const NFQA_IFINDEX_INDEV: ::c_int = 5; -pub const NFQA_IFINDEX_OUTDEV: ::c_int = 6; -pub const NFQA_IFINDEX_PHYSINDEV: ::c_int = 7; -pub const NFQA_IFINDEX_PHYSOUTDEV: ::c_int = 8; -pub const NFQA_HWADDR: ::c_int = 9; -pub const NFQA_PAYLOAD: ::c_int = 10; -pub const NFQA_CT: ::c_int = 11; -pub const NFQA_CT_INFO: ::c_int = 12; -pub const NFQA_CAP_LEN: ::c_int = 13; -pub const NFQA_SKB_INFO: ::c_int = 14; -pub const NFQA_EXP: ::c_int = 15; -pub const NFQA_UID: ::c_int = 16; -pub const NFQA_GID: ::c_int = 17; -pub const NFQA_SECCTX: ::c_int = 18; -pub const NFQA_VLAN: ::c_int = 19; -pub const NFQA_L2HDR: ::c_int = 20; -pub const NFQA_PRIORITY: ::c_int = 21; - -pub const NFQA_VLAN_UNSPEC: ::c_int = 0; -pub const NFQA_VLAN_PROTO: ::c_int = 1; -pub const NFQA_VLAN_TCI: ::c_int = 2; - -pub const NFQNL_CFG_CMD_NONE: ::c_int = 0; -pub const NFQNL_CFG_CMD_BIND: ::c_int = 1; -pub const NFQNL_CFG_CMD_UNBIND: ::c_int = 2; -pub const NFQNL_CFG_CMD_PF_BIND: ::c_int = 3; -pub const NFQNL_CFG_CMD_PF_UNBIND: ::c_int = 4; - -pub const NFQNL_COPY_NONE: ::c_int = 0; -pub const NFQNL_COPY_META: ::c_int = 1; -pub const NFQNL_COPY_PACKET: ::c_int = 2; - -pub const NFQA_CFG_UNSPEC: ::c_int = 0; -pub const NFQA_CFG_CMD: ::c_int = 1; -pub const NFQA_CFG_PARAMS: ::c_int = 2; -pub const NFQA_CFG_QUEUE_MAXLEN: ::c_int = 3; -pub const NFQA_CFG_MASK: ::c_int = 4; -pub const NFQA_CFG_FLAGS: ::c_int = 5; - -pub const NFQA_CFG_F_FAIL_OPEN: ::c_int = 0x0001; -pub const NFQA_CFG_F_CONNTRACK: ::c_int = 0x0002; -pub const NFQA_CFG_F_GSO: ::c_int = 0x0004; -pub const NFQA_CFG_F_UID_GID: ::c_int = 0x0008; -pub const NFQA_CFG_F_SECCTX: ::c_int = 0x0010; -pub const NFQA_CFG_F_MAX: ::c_int = 0x0020; - -pub const NFQA_SKB_CSUMNOTREADY: ::c_int = 0x0001; -pub const NFQA_SKB_GSO: ::c_int = 0x0002; -pub const NFQA_SKB_CSUM_NOTVERIFIED: ::c_int = 0x0004; - -// linux/genetlink.h - -pub const GENL_NAMSIZ: ::c_int = 16; - -pub const GENL_MIN_ID: ::c_int = NLMSG_MIN_TYPE; -pub const GENL_MAX_ID: ::c_int = 1023; - -pub const GENL_ADMIN_PERM: ::c_int = 0x01; -pub const GENL_CMD_CAP_DO: ::c_int = 0x02; -pub const GENL_CMD_CAP_DUMP: ::c_int = 0x04; -pub const GENL_CMD_CAP_HASPOL: ::c_int = 0x08; - -pub const GENL_ID_CTRL: ::c_int = NLMSG_MIN_TYPE; - -pub const CTRL_CMD_UNSPEC: ::c_int = 0; -pub const CTRL_CMD_NEWFAMILY: ::c_int = 1; -pub const CTRL_CMD_DELFAMILY: ::c_int = 2; -pub const CTRL_CMD_GETFAMILY: ::c_int = 3; -pub const CTRL_CMD_NEWOPS: ::c_int = 4; -pub const CTRL_CMD_DELOPS: ::c_int = 5; -pub const CTRL_CMD_GETOPS: ::c_int = 6; -pub const CTRL_CMD_NEWMCAST_GRP: ::c_int = 7; -pub const CTRL_CMD_DELMCAST_GRP: ::c_int = 8; -pub const CTRL_CMD_GETMCAST_GRP: ::c_int = 9; - -pub const CTRL_ATTR_UNSPEC: ::c_int = 0; -pub const CTRL_ATTR_FAMILY_ID: ::c_int = 1; -pub const CTRL_ATTR_FAMILY_NAME: ::c_int = 2; -pub const CTRL_ATTR_VERSION: ::c_int = 3; -pub const CTRL_ATTR_HDRSIZE: ::c_int = 4; -pub const CTRL_ATTR_MAXATTR: ::c_int = 5; -pub const CTRL_ATTR_OPS: ::c_int = 6; -pub const CTRL_ATTR_MCAST_GROUPS: ::c_int = 7; - -pub const CTRL_ATTR_OP_UNSPEC: ::c_int = 0; -pub const CTRL_ATTR_OP_ID: ::c_int = 1; -pub const CTRL_ATTR_OP_FLAGS: ::c_int = 2; - -pub const CTRL_ATTR_MCAST_GRP_UNSPEC: ::c_int = 0; -pub const CTRL_ATTR_MCAST_GRP_NAME: ::c_int = 1; -pub const CTRL_ATTR_MCAST_GRP_ID: ::c_int = 2; - -// linux/if_packet.h -pub const PACKET_ADD_MEMBERSHIP: ::c_int = 1; -pub const PACKET_DROP_MEMBERSHIP: ::c_int = 2; - -pub const PACKET_MR_MULTICAST: ::c_int = 0; -pub const PACKET_MR_PROMISC: ::c_int = 1; -pub const PACKET_MR_ALLMULTI: ::c_int = 2; - -// linux/netfilter.h -pub const NF_DROP: ::c_int = 0; -pub const NF_ACCEPT: ::c_int = 1; -pub const NF_STOLEN: ::c_int = 2; -pub const NF_QUEUE: ::c_int = 3; -pub const NF_REPEAT: ::c_int = 4; -pub const NF_STOP: ::c_int = 5; -pub const NF_MAX_VERDICT: ::c_int = NF_STOP; - -pub const NF_VERDICT_MASK: ::c_int = 0x000000ff; -pub const NF_VERDICT_FLAG_QUEUE_BYPASS: ::c_int = 0x00008000; - -pub const NF_VERDICT_QMASK: ::c_int = 0xffff0000; -pub const NF_VERDICT_QBITS: ::c_int = 16; - -pub const NF_VERDICT_BITS: ::c_int = 16; - -pub const NF_INET_PRE_ROUTING: ::c_int = 0; -pub const NF_INET_LOCAL_IN: ::c_int = 1; -pub const NF_INET_FORWARD: ::c_int = 2; -pub const NF_INET_LOCAL_OUT: ::c_int = 3; -pub const NF_INET_POST_ROUTING: ::c_int = 4; -pub const NF_INET_NUMHOOKS: ::c_int = 5; - -// Some NFPROTO are not compatible with musl and are defined in submodules. -pub const NFPROTO_UNSPEC: ::c_int = 0; -pub const NFPROTO_IPV4: ::c_int = 2; -pub const NFPROTO_ARP: ::c_int = 3; -pub const NFPROTO_BRIDGE: ::c_int = 7; -pub const NFPROTO_IPV6: ::c_int = 10; -pub const NFPROTO_DECNET: ::c_int = 12; -pub const NFPROTO_NUMPROTO: ::c_int = 13; -pub const NFPROTO_INET: ::c_int = 1; -pub const NFPROTO_NETDEV: ::c_int = 5; - -pub const NF_NETDEV_INGRESS: ::c_int = 0; -pub const NF_NETDEV_NUMHOOKS: ::c_int = 1; - -// linux/netfilter_ipv4.h -pub const NF_IP_PRE_ROUTING: ::c_int = 0; -pub const NF_IP_LOCAL_IN: ::c_int = 1; -pub const NF_IP_FORWARD: ::c_int = 2; -pub const NF_IP_LOCAL_OUT: ::c_int = 3; -pub const NF_IP_POST_ROUTING: ::c_int = 4; -pub const NF_IP_NUMHOOKS: ::c_int = 5; - -pub const NF_IP_PRI_FIRST: ::c_int = ::INT_MIN; -pub const NF_IP_PRI_CONNTRACK_DEFRAG: ::c_int = -400; -pub const NF_IP_PRI_RAW: ::c_int = -300; -pub const NF_IP_PRI_SELINUX_FIRST: ::c_int = -225; -pub const NF_IP_PRI_CONNTRACK: ::c_int = -200; -pub const NF_IP_PRI_MANGLE: ::c_int = -150; -pub const NF_IP_PRI_NAT_DST: ::c_int = -100; -pub const NF_IP_PRI_FILTER: ::c_int = 0; -pub const NF_IP_PRI_SECURITY: ::c_int = 50; -pub const NF_IP_PRI_NAT_SRC: ::c_int = 100; -pub const NF_IP_PRI_SELINUX_LAST: ::c_int = 225; -pub const NF_IP_PRI_CONNTRACK_HELPER: ::c_int = 300; -pub const NF_IP_PRI_CONNTRACK_CONFIRM: ::c_int = ::INT_MAX; -pub const NF_IP_PRI_LAST: ::c_int = ::INT_MAX; - -// linux/netfilter_ipv6.h -pub const NF_IP6_PRE_ROUTING: ::c_int = 0; -pub const NF_IP6_LOCAL_IN: ::c_int = 1; -pub const NF_IP6_FORWARD: ::c_int = 2; -pub const NF_IP6_LOCAL_OUT: ::c_int = 3; -pub const NF_IP6_POST_ROUTING: ::c_int = 4; -pub const NF_IP6_NUMHOOKS: ::c_int = 5; - -pub const NF_IP6_PRI_FIRST: ::c_int = ::INT_MIN; -pub const NF_IP6_PRI_CONNTRACK_DEFRAG: ::c_int = -400; -pub const NF_IP6_PRI_RAW: ::c_int = -300; -pub const NF_IP6_PRI_SELINUX_FIRST: ::c_int = -225; -pub const NF_IP6_PRI_CONNTRACK: ::c_int = -200; -pub const NF_IP6_PRI_MANGLE: ::c_int = -150; -pub const NF_IP6_PRI_NAT_DST: ::c_int = -100; -pub const NF_IP6_PRI_FILTER: ::c_int = 0; -pub const NF_IP6_PRI_SECURITY: ::c_int = 50; -pub const NF_IP6_PRI_NAT_SRC: ::c_int = 100; -pub const NF_IP6_PRI_SELINUX_LAST: ::c_int = 225; -pub const NF_IP6_PRI_CONNTRACK_HELPER: ::c_int = 300; -pub const NF_IP6_PRI_LAST: ::c_int = ::INT_MAX; - -// linux/netfilter_ipv6/ip6_tables.h -pub const IP6T_SO_ORIGINAL_DST: ::c_int = 80; - -pub const SIOCADDRT: ::c_ulong = 0x0000890B; -pub const SIOCDELRT: ::c_ulong = 0x0000890C; -pub const SIOCGIFNAME: ::c_ulong = 0x00008910; -pub const SIOCSIFLINK: ::c_ulong = 0x00008911; -pub const SIOCGIFCONF: ::c_ulong = 0x00008912; -pub const SIOCGIFFLAGS: ::c_ulong = 0x00008913; -pub const SIOCSIFFLAGS: ::c_ulong = 0x00008914; -pub const SIOCGIFADDR: ::c_ulong = 0x00008915; -pub const SIOCSIFADDR: ::c_ulong = 0x00008916; -pub const SIOCGIFDSTADDR: ::c_ulong = 0x00008917; -pub const SIOCSIFDSTADDR: ::c_ulong = 0x00008918; -pub const SIOCGIFBRDADDR: ::c_ulong = 0x00008919; -pub const SIOCSIFBRDADDR: ::c_ulong = 0x0000891A; -pub const SIOCGIFNETMASK: ::c_ulong = 0x0000891B; -pub const SIOCSIFNETMASK: ::c_ulong = 0x0000891C; -pub const SIOCGIFMETRIC: ::c_ulong = 0x0000891D; -pub const SIOCSIFMETRIC: ::c_ulong = 0x0000891E; -pub const SIOCGIFMEM: ::c_ulong = 0x0000891F; -pub const SIOCSIFMEM: ::c_ulong = 0x00008920; -pub const SIOCGIFMTU: ::c_ulong = 0x00008921; -pub const SIOCSIFMTU: ::c_ulong = 0x00008922; -pub const SIOCSIFHWADDR: ::c_ulong = 0x00008924; -pub const SIOCGIFENCAP: ::c_ulong = 0x00008925; -pub const SIOCSIFENCAP: ::c_ulong = 0x00008926; -pub const SIOCGIFHWADDR: ::c_ulong = 0x00008927; -pub const SIOCGIFSLAVE: ::c_ulong = 0x00008929; -pub const SIOCSIFSLAVE: ::c_ulong = 0x00008930; -pub const SIOCADDMULTI: ::c_ulong = 0x00008931; -pub const SIOCDELMULTI: ::c_ulong = 0x00008932; -pub const SIOCGIFINDEX: ::c_ulong = 0x00008933; -pub const SIOGIFINDEX: ::c_ulong = SIOCGIFINDEX; -pub const SIOCSIFPFLAGS: ::c_ulong = 0x00008934; -pub const SIOCGIFPFLAGS: ::c_ulong = 0x00008935; -pub const SIOCDIFADDR: ::c_ulong = 0x00008936; -pub const SIOCSIFHWBROADCAST: ::c_ulong = 0x00008937; -pub const SIOCGIFCOUNT: ::c_ulong = 0x00008938; -pub const SIOCGIFBR: ::c_ulong = 0x00008940; -pub const SIOCSIFBR: ::c_ulong = 0x00008941; -pub const SIOCGIFTXQLEN: ::c_ulong = 0x00008942; -pub const SIOCSIFTXQLEN: ::c_ulong = 0x00008943; -pub const SIOCETHTOOL: ::c_ulong = 0x00008946; -pub const SIOCGMIIPHY: ::c_ulong = 0x00008947; -pub const SIOCGMIIREG: ::c_ulong = 0x00008948; -pub const SIOCSMIIREG: ::c_ulong = 0x00008949; -pub const SIOCWANDEV: ::c_ulong = 0x0000894A; -pub const SIOCOUTQNSD: ::c_ulong = 0x0000894B; -pub const SIOCGSKNS: ::c_ulong = 0x0000894C; -pub const SIOCDARP: ::c_ulong = 0x00008953; -pub const SIOCGARP: ::c_ulong = 0x00008954; -pub const SIOCSARP: ::c_ulong = 0x00008955; -pub const SIOCDRARP: ::c_ulong = 0x00008960; -pub const SIOCGRARP: ::c_ulong = 0x00008961; -pub const SIOCSRARP: ::c_ulong = 0x00008962; -pub const SIOCGIFMAP: ::c_ulong = 0x00008970; -pub const SIOCSIFMAP: ::c_ulong = 0x00008971; -pub const SIOCSHWTSTAMP: ::c_ulong = 0x000089b0; -pub const SIOCGHWTSTAMP: ::c_ulong = 0x000089b1; - -pub const IPTOS_TOS_MASK: u8 = 0x1E; -pub const IPTOS_PREC_MASK: u8 = 0xE0; - -pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; - -pub const RTF_UP: ::c_ushort = 0x0001; -pub const RTF_GATEWAY: ::c_ushort = 0x0002; - -pub const RTF_HOST: ::c_ushort = 0x0004; -pub const RTF_REINSTATE: ::c_ushort = 0x0008; -pub const RTF_DYNAMIC: ::c_ushort = 0x0010; -pub const RTF_MODIFIED: ::c_ushort = 0x0020; -pub const RTF_MTU: ::c_ushort = 0x0040; -pub const RTF_MSS: ::c_ushort = RTF_MTU; -pub const RTF_WINDOW: ::c_ushort = 0x0080; -pub const RTF_IRTT: ::c_ushort = 0x0100; -pub const RTF_REJECT: ::c_ushort = 0x0200; -pub const RTF_STATIC: ::c_ushort = 0x0400; -pub const RTF_XRESOLVE: ::c_ushort = 0x0800; -pub const RTF_NOFORWARD: ::c_ushort = 0x1000; -pub const RTF_THROW: ::c_ushort = 0x2000; -pub const RTF_NOPMTUDISC: ::c_ushort = 0x4000; - -pub const RTF_DEFAULT: u32 = 0x00010000; -pub const RTF_ALLONLINK: u32 = 0x00020000; -pub const RTF_ADDRCONF: u32 = 0x00040000; -pub const RTF_LINKRT: u32 = 0x00100000; -pub const RTF_NONEXTHOP: u32 = 0x00200000; -pub const RTF_CACHE: u32 = 0x01000000; -pub const RTF_FLOW: u32 = 0x02000000; -pub const RTF_POLICY: u32 = 0x04000000; - -pub const RTCF_VALVE: u32 = 0x00200000; -pub const RTCF_MASQ: u32 = 0x00400000; -pub const RTCF_NAT: u32 = 0x00800000; -pub const RTCF_DOREDIRECT: u32 = 0x01000000; -pub const RTCF_LOG: u32 = 0x02000000; -pub const RTCF_DIRECTSRC: u32 = 0x04000000; - -pub const RTF_LOCAL: u32 = 0x80000000; -pub const RTF_INTERFACE: u32 = 0x40000000; -pub const RTF_MULTICAST: u32 = 0x20000000; -pub const RTF_BROADCAST: u32 = 0x10000000; -pub const RTF_NAT: u32 = 0x08000000; -pub const RTF_ADDRCLASSMASK: u32 = 0xF8000000; - -pub const RT_CLASS_UNSPEC: u8 = 0; -pub const RT_CLASS_DEFAULT: u8 = 253; -pub const RT_CLASS_MAIN: u8 = 254; -pub const RT_CLASS_LOCAL: u8 = 255; -pub const RT_CLASS_MAX: u8 = 255; - -// linux/neighbor.h -pub const NUD_NONE: u16 = 0x00; -pub const NUD_INCOMPLETE: u16 = 0x01; -pub const NUD_REACHABLE: u16 = 0x02; -pub const NUD_STALE: u16 = 0x04; -pub const NUD_DELAY: u16 = 0x08; -pub const NUD_PROBE: u16 = 0x10; -pub const NUD_FAILED: u16 = 0x20; -pub const NUD_NOARP: u16 = 0x40; -pub const NUD_PERMANENT: u16 = 0x80; - -pub const NTF_USE: u8 = 0x01; -pub const NTF_SELF: u8 = 0x02; -pub const NTF_MASTER: u8 = 0x04; -pub const NTF_PROXY: u8 = 0x08; -pub const NTF_ROUTER: u8 = 0x80; - -pub const NDA_UNSPEC: ::c_ushort = 0; -pub const NDA_DST: ::c_ushort = 1; -pub const NDA_LLADDR: ::c_ushort = 2; -pub const NDA_CACHEINFO: ::c_ushort = 3; -pub const NDA_PROBES: ::c_ushort = 4; -pub const NDA_VLAN: ::c_ushort = 5; -pub const NDA_PORT: ::c_ushort = 6; -pub const NDA_VNI: ::c_ushort = 7; -pub const NDA_IFINDEX: ::c_ushort = 8; - -// linux/netlink.h -pub const NLA_ALIGNTO: ::c_int = 4; - -pub const NETLINK_ROUTE: ::c_int = 0; -pub const NETLINK_UNUSED: ::c_int = 1; -pub const NETLINK_USERSOCK: ::c_int = 2; -pub const NETLINK_FIREWALL: ::c_int = 3; -pub const NETLINK_SOCK_DIAG: ::c_int = 4; -pub const NETLINK_NFLOG: ::c_int = 5; -pub const NETLINK_XFRM: ::c_int = 6; -pub const NETLINK_SELINUX: ::c_int = 7; -pub const NETLINK_ISCSI: ::c_int = 8; -pub const NETLINK_AUDIT: ::c_int = 9; -pub const NETLINK_FIB_LOOKUP: ::c_int = 10; -pub const NETLINK_CONNECTOR: ::c_int = 11; -pub const NETLINK_NETFILTER: ::c_int = 12; -pub const NETLINK_IP6_FW: ::c_int = 13; -pub const NETLINK_DNRTMSG: ::c_int = 14; -pub const NETLINK_KOBJECT_UEVENT: ::c_int = 15; -pub const NETLINK_GENERIC: ::c_int = 16; -pub const NETLINK_SCSITRANSPORT: ::c_int = 18; -pub const NETLINK_ECRYPTFS: ::c_int = 19; -pub const NETLINK_RDMA: ::c_int = 20; -pub const NETLINK_CRYPTO: ::c_int = 21; -pub const NETLINK_INET_DIAG: ::c_int = NETLINK_SOCK_DIAG; - -pub const NLM_F_REQUEST: ::c_int = 1; -pub const NLM_F_MULTI: ::c_int = 2; -pub const NLM_F_ACK: ::c_int = 4; -pub const NLM_F_ECHO: ::c_int = 8; -pub const NLM_F_DUMP_INTR: ::c_int = 16; -pub const NLM_F_DUMP_FILTERED: ::c_int = 32; - -pub const NLM_F_ROOT: ::c_int = 0x100; -pub const NLM_F_MATCH: ::c_int = 0x200; -pub const NLM_F_ATOMIC: ::c_int = 0x400; -pub const NLM_F_DUMP: ::c_int = NLM_F_ROOT | NLM_F_MATCH; - -pub const NLM_F_REPLACE: ::c_int = 0x100; -pub const NLM_F_EXCL: ::c_int = 0x200; -pub const NLM_F_CREATE: ::c_int = 0x400; -pub const NLM_F_APPEND: ::c_int = 0x800; - -pub const NETLINK_ADD_MEMBERSHIP: ::c_int = 1; -pub const NETLINK_DROP_MEMBERSHIP: ::c_int = 2; -pub const NETLINK_PKTINFO: ::c_int = 3; -pub const NETLINK_BROADCAST_ERROR: ::c_int = 4; -pub const NETLINK_NO_ENOBUFS: ::c_int = 5; -pub const NETLINK_RX_RING: ::c_int = 6; -pub const NETLINK_TX_RING: ::c_int = 7; -pub const NETLINK_LISTEN_ALL_NSID: ::c_int = 8; -pub const NETLINK_LIST_MEMBERSHIPS: ::c_int = 9; -pub const NETLINK_CAP_ACK: ::c_int = 10; -pub const NETLINK_EXT_ACK: ::c_int = 11; -pub const NETLINK_GET_STRICT_CHK: ::c_int = 12; - -pub const NLA_F_NESTED: ::c_int = 1 << 15; -pub const NLA_F_NET_BYTEORDER: ::c_int = 1 << 14; -pub const NLA_TYPE_MASK: ::c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); - -// linux/rtnetlink.h -pub const TCA_UNSPEC: ::c_ushort = 0; -pub const TCA_KIND: ::c_ushort = 1; -pub const TCA_OPTIONS: ::c_ushort = 2; -pub const TCA_STATS: ::c_ushort = 3; -pub const TCA_XSTATS: ::c_ushort = 4; -pub const TCA_RATE: ::c_ushort = 5; -pub const TCA_FCNT: ::c_ushort = 6; -pub const TCA_STATS2: ::c_ushort = 7; -pub const TCA_STAB: ::c_ushort = 8; - -pub const RTM_NEWLINK: u16 = 16; -pub const RTM_DELLINK: u16 = 17; -pub const RTM_GETLINK: u16 = 18; -pub const RTM_SETLINK: u16 = 19; -pub const RTM_NEWADDR: u16 = 20; -pub const RTM_DELADDR: u16 = 21; -pub const RTM_GETADDR: u16 = 22; -pub const RTM_NEWROUTE: u16 = 24; -pub const RTM_DELROUTE: u16 = 25; -pub const RTM_GETROUTE: u16 = 26; -pub const RTM_NEWNEIGH: u16 = 28; -pub const RTM_DELNEIGH: u16 = 29; -pub const RTM_GETNEIGH: u16 = 30; -pub const RTM_NEWRULE: u16 = 32; -pub const RTM_DELRULE: u16 = 33; -pub const RTM_GETRULE: u16 = 34; -pub const RTM_NEWQDISC: u16 = 36; -pub const RTM_DELQDISC: u16 = 37; -pub const RTM_GETQDISC: u16 = 38; -pub const RTM_NEWTCLASS: u16 = 40; -pub const RTM_DELTCLASS: u16 = 41; -pub const RTM_GETTCLASS: u16 = 42; -pub const RTM_NEWTFILTER: u16 = 44; -pub const RTM_DELTFILTER: u16 = 45; -pub const RTM_GETTFILTER: u16 = 46; -pub const RTM_NEWACTION: u16 = 48; -pub const RTM_DELACTION: u16 = 49; -pub const RTM_GETACTION: u16 = 50; -pub const RTM_NEWPREFIX: u16 = 52; -pub const RTM_GETMULTICAST: u16 = 58; -pub const RTM_GETANYCAST: u16 = 62; -pub const RTM_NEWNEIGHTBL: u16 = 64; -pub const RTM_GETNEIGHTBL: u16 = 66; -pub const RTM_SETNEIGHTBL: u16 = 67; -pub const RTM_NEWNDUSEROPT: u16 = 68; -pub const RTM_NEWADDRLABEL: u16 = 72; -pub const RTM_DELADDRLABEL: u16 = 73; -pub const RTM_GETADDRLABEL: u16 = 74; -pub const RTM_GETDCB: u16 = 78; -pub const RTM_SETDCB: u16 = 79; -pub const RTM_NEWNETCONF: u16 = 80; -pub const RTM_GETNETCONF: u16 = 82; -pub const RTM_NEWMDB: u16 = 84; -pub const RTM_DELMDB: u16 = 85; -pub const RTM_GETMDB: u16 = 86; -pub const RTM_NEWNSID: u16 = 88; -pub const RTM_DELNSID: u16 = 89; -pub const RTM_GETNSID: u16 = 90; - -pub const RTM_F_NOTIFY: ::c_uint = 0x100; -pub const RTM_F_CLONED: ::c_uint = 0x200; -pub const RTM_F_EQUALIZE: ::c_uint = 0x400; -pub const RTM_F_PREFIX: ::c_uint = 0x800; - -pub const RTA_UNSPEC: ::c_ushort = 0; -pub const RTA_DST: ::c_ushort = 1; -pub const RTA_SRC: ::c_ushort = 2; -pub const RTA_IIF: ::c_ushort = 3; -pub const RTA_OIF: ::c_ushort = 4; -pub const RTA_GATEWAY: ::c_ushort = 5; -pub const RTA_PRIORITY: ::c_ushort = 6; -pub const RTA_PREFSRC: ::c_ushort = 7; -pub const RTA_METRICS: ::c_ushort = 8; -pub const RTA_MULTIPATH: ::c_ushort = 9; -pub const RTA_PROTOINFO: ::c_ushort = 10; // No longer used -pub const RTA_FLOW: ::c_ushort = 11; -pub const RTA_CACHEINFO: ::c_ushort = 12; -pub const RTA_SESSION: ::c_ushort = 13; // No longer used -pub const RTA_MP_ALGO: ::c_ushort = 14; // No longer used -pub const RTA_TABLE: ::c_ushort = 15; -pub const RTA_MARK: ::c_ushort = 16; -pub const RTA_MFC_STATS: ::c_ushort = 17; - -pub const RTN_UNSPEC: ::c_uchar = 0; -pub const RTN_UNICAST: ::c_uchar = 1; -pub const RTN_LOCAL: ::c_uchar = 2; -pub const RTN_BROADCAST: ::c_uchar = 3; -pub const RTN_ANYCAST: ::c_uchar = 4; -pub const RTN_MULTICAST: ::c_uchar = 5; -pub const RTN_BLACKHOLE: ::c_uchar = 6; -pub const RTN_UNREACHABLE: ::c_uchar = 7; -pub const RTN_PROHIBIT: ::c_uchar = 8; -pub const RTN_THROW: ::c_uchar = 9; -pub const RTN_NAT: ::c_uchar = 10; -pub const RTN_XRESOLVE: ::c_uchar = 11; - -pub const RTPROT_UNSPEC: ::c_uchar = 0; -pub const RTPROT_REDIRECT: ::c_uchar = 1; -pub const RTPROT_KERNEL: ::c_uchar = 2; -pub const RTPROT_BOOT: ::c_uchar = 3; -pub const RTPROT_STATIC: ::c_uchar = 4; - -pub const RT_SCOPE_UNIVERSE: ::c_uchar = 0; -pub const RT_SCOPE_SITE: ::c_uchar = 200; -pub const RT_SCOPE_LINK: ::c_uchar = 253; -pub const RT_SCOPE_HOST: ::c_uchar = 254; -pub const RT_SCOPE_NOWHERE: ::c_uchar = 255; - -pub const RT_TABLE_UNSPEC: ::c_uchar = 0; -pub const RT_TABLE_COMPAT: ::c_uchar = 252; -pub const RT_TABLE_DEFAULT: ::c_uchar = 253; -pub const RT_TABLE_MAIN: ::c_uchar = 254; -pub const RT_TABLE_LOCAL: ::c_uchar = 255; - -pub const RTMSG_OVERRUN: u32 = ::NLMSG_OVERRUN as u32; -pub const RTMSG_NEWDEVICE: u32 = 0x11; -pub const RTMSG_DELDEVICE: u32 = 0x12; -pub const RTMSG_NEWROUTE: u32 = 0x21; -pub const RTMSG_DELROUTE: u32 = 0x22; -pub const RTMSG_NEWRULE: u32 = 0x31; -pub const RTMSG_DELRULE: u32 = 0x32; -pub const RTMSG_CONTROL: u32 = 0x40; -pub const RTMSG_AR_FAILED: u32 = 0x51; - -pub const MAX_ADDR_LEN: usize = 7; -pub const ARPD_UPDATE: ::c_ushort = 0x01; -pub const ARPD_LOOKUP: ::c_ushort = 0x02; -pub const ARPD_FLUSH: ::c_ushort = 0x03; -pub const ATF_MAGIC: ::c_int = 0x80; - -pub const RTEXT_FILTER_VF: ::c_int = 1 << 0; -pub const RTEXT_FILTER_BRVLAN: ::c_int = 1 << 1; -pub const RTEXT_FILTER_BRVLAN_COMPRESSED: ::c_int = 1 << 2; -pub const RTEXT_FILTER_SKIP_STATS: ::c_int = 1 << 3; -pub const RTEXT_FILTER_MRP: ::c_int = 1 << 4; -pub const RTEXT_FILTER_CFM_CONFIG: ::c_int = 1 << 5; -pub const RTEXT_FILTER_CFM_STATUS: ::c_int = 1 << 6; - -// userspace compat definitions for RTNLGRP_* -pub const RTMGRP_LINK: ::c_int = 0x00001; -pub const RTMGRP_NOTIFY: ::c_int = 0x00002; -pub const RTMGRP_NEIGH: ::c_int = 0x00004; -pub const RTMGRP_TC: ::c_int = 0x00008; -pub const RTMGRP_IPV4_IFADDR: ::c_int = 0x00010; -pub const RTMGRP_IPV4_MROUTE: ::c_int = 0x00020; -pub const RTMGRP_IPV4_ROUTE: ::c_int = 0x00040; -pub const RTMGRP_IPV4_RULE: ::c_int = 0x00080; -pub const RTMGRP_IPV6_IFADDR: ::c_int = 0x00100; -pub const RTMGRP_IPV6_MROUTE: ::c_int = 0x00200; -pub const RTMGRP_IPV6_ROUTE: ::c_int = 0x00400; -pub const RTMGRP_IPV6_IFINFO: ::c_int = 0x00800; -pub const RTMGRP_DECnet_IFADDR: ::c_int = 0x01000; -pub const RTMGRP_DECnet_ROUTE: ::c_int = 0x04000; -pub const RTMGRP_IPV6_PREFIX: ::c_int = 0x20000; - -// enum rtnetlink_groups -pub const RTNLGRP_NONE: ::c_uint = 0x00; -pub const RTNLGRP_LINK: ::c_uint = 0x01; -pub const RTNLGRP_NOTIFY: ::c_uint = 0x02; -pub const RTNLGRP_NEIGH: ::c_uint = 0x03; -pub const RTNLGRP_TC: ::c_uint = 0x04; -pub const RTNLGRP_IPV4_IFADDR: ::c_uint = 0x05; -pub const RTNLGRP_IPV4_MROUTE: ::c_uint = 0x06; -pub const RTNLGRP_IPV4_ROUTE: ::c_uint = 0x07; -pub const RTNLGRP_IPV4_RULE: ::c_uint = 0x08; -pub const RTNLGRP_IPV6_IFADDR: ::c_uint = 0x09; -pub const RTNLGRP_IPV6_MROUTE: ::c_uint = 0x0a; -pub const RTNLGRP_IPV6_ROUTE: ::c_uint = 0x0b; -pub const RTNLGRP_IPV6_IFINFO: ::c_uint = 0x0c; -pub const RTNLGRP_DECnet_IFADDR: ::c_uint = 0x0d; -pub const RTNLGRP_NOP2: ::c_uint = 0x0e; -pub const RTNLGRP_DECnet_ROUTE: ::c_uint = 0x0f; -pub const RTNLGRP_DECnet_RULE: ::c_uint = 0x10; -pub const RTNLGRP_NOP4: ::c_uint = 0x11; -pub const RTNLGRP_IPV6_PREFIX: ::c_uint = 0x12; -pub const RTNLGRP_IPV6_RULE: ::c_uint = 0x13; -pub const RTNLGRP_ND_USEROPT: ::c_uint = 0x14; -pub const RTNLGRP_PHONET_IFADDR: ::c_uint = 0x15; -pub const RTNLGRP_PHONET_ROUTE: ::c_uint = 0x16; -pub const RTNLGRP_DCB: ::c_uint = 0x17; -pub const RTNLGRP_IPV4_NETCONF: ::c_uint = 0x18; -pub const RTNLGRP_IPV6_NETCONF: ::c_uint = 0x19; -pub const RTNLGRP_MDB: ::c_uint = 0x1a; -pub const RTNLGRP_MPLS_ROUTE: ::c_uint = 0x1b; -pub const RTNLGRP_NSID: ::c_uint = 0x1c; -pub const RTNLGRP_MPLS_NETCONF: ::c_uint = 0x1d; -pub const RTNLGRP_IPV4_MROUTE_R: ::c_uint = 0x1e; -pub const RTNLGRP_IPV6_MROUTE_R: ::c_uint = 0x1f; -pub const RTNLGRP_NEXTHOP: ::c_uint = 0x20; -pub const RTNLGRP_BRVLAN: ::c_uint = 0x21; -pub const RTNLGRP_MCTP_IFADDR: ::c_uint = 0x22; -pub const RTNLGRP_TUNNEL: ::c_uint = 0x23; -pub const RTNLGRP_STATS: ::c_uint = 0x24; - -// linux/module.h -pub const MODULE_INIT_IGNORE_MODVERSIONS: ::c_uint = 0x0001; -pub const MODULE_INIT_IGNORE_VERMAGIC: ::c_uint = 0x0002; - -// linux/net_tstamp.h -pub const SOF_TIMESTAMPING_TX_HARDWARE: ::c_uint = 1 << 0; -pub const SOF_TIMESTAMPING_TX_SOFTWARE: ::c_uint = 1 << 1; -pub const SOF_TIMESTAMPING_RX_HARDWARE: ::c_uint = 1 << 2; -pub const SOF_TIMESTAMPING_RX_SOFTWARE: ::c_uint = 1 << 3; -pub const SOF_TIMESTAMPING_SOFTWARE: ::c_uint = 1 << 4; -pub const SOF_TIMESTAMPING_SYS_HARDWARE: ::c_uint = 1 << 5; -pub const SOF_TIMESTAMPING_RAW_HARDWARE: ::c_uint = 1 << 6; -pub const SOF_TIMESTAMPING_OPT_ID: ::c_uint = 1 << 7; -pub const SOF_TIMESTAMPING_TX_SCHED: ::c_uint = 1 << 8; -pub const SOF_TIMESTAMPING_TX_ACK: ::c_uint = 1 << 9; -pub const SOF_TIMESTAMPING_OPT_CMSG: ::c_uint = 1 << 10; -pub const SOF_TIMESTAMPING_OPT_TSONLY: ::c_uint = 1 << 11; -pub const SOF_TIMESTAMPING_OPT_STATS: ::c_uint = 1 << 12; -pub const SOF_TIMESTAMPING_OPT_PKTINFO: ::c_uint = 1 << 13; -pub const SOF_TIMESTAMPING_OPT_TX_SWHW: ::c_uint = 1 << 14; -pub const SOF_TXTIME_DEADLINE_MODE: u32 = 1 << 0; -pub const SOF_TXTIME_REPORT_ERRORS: u32 = 1 << 1; - -pub const HWTSTAMP_TX_OFF: ::c_uint = 0; -pub const HWTSTAMP_TX_ON: ::c_uint = 1; -pub const HWTSTAMP_TX_ONESTEP_SYNC: ::c_uint = 2; -pub const HWTSTAMP_TX_ONESTEP_P2P: ::c_uint = 3; - -pub const HWTSTAMP_FILTER_NONE: ::c_uint = 0; -pub const HWTSTAMP_FILTER_ALL: ::c_uint = 1; -pub const HWTSTAMP_FILTER_SOME: ::c_uint = 2; -pub const HWTSTAMP_FILTER_PTP_V1_L4_EVENT: ::c_uint = 3; -pub const HWTSTAMP_FILTER_PTP_V1_L4_SYNC: ::c_uint = 4; -pub const HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ: ::c_uint = 5; -pub const HWTSTAMP_FILTER_PTP_V2_L4_EVENT: ::c_uint = 6; -pub const HWTSTAMP_FILTER_PTP_V2_L4_SYNC: ::c_uint = 7; -pub const HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ: ::c_uint = 8; -pub const HWTSTAMP_FILTER_PTP_V2_L2_EVENT: ::c_uint = 9; -pub const HWTSTAMP_FILTER_PTP_V2_L2_SYNC: ::c_uint = 10; -pub const HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ: ::c_uint = 11; -pub const HWTSTAMP_FILTER_PTP_V2_EVENT: ::c_uint = 12; -pub const HWTSTAMP_FILTER_PTP_V2_SYNC: ::c_uint = 13; -pub const HWTSTAMP_FILTER_PTP_V2_DELAY_REQ: ::c_uint = 14; -pub const HWTSTAMP_FILTER_NTP_ALL: ::c_uint = 15; - -// linux/if_alg.h -pub const ALG_SET_KEY: ::c_int = 1; -pub const ALG_SET_IV: ::c_int = 2; -pub const ALG_SET_OP: ::c_int = 3; -pub const ALG_SET_AEAD_ASSOCLEN: ::c_int = 4; -pub const ALG_SET_AEAD_AUTHSIZE: ::c_int = 5; - -pub const ALG_OP_DECRYPT: ::c_int = 0; -pub const ALG_OP_ENCRYPT: ::c_int = 1; - -// include/uapi/linux/if.h -pub const IF_OPER_UNKNOWN: ::c_int = 0; -pub const IF_OPER_NOTPRESENT: ::c_int = 1; -pub const IF_OPER_DOWN: ::c_int = 2; -pub const IF_OPER_LOWERLAYERDOWN: ::c_int = 3; -pub const IF_OPER_TESTING: ::c_int = 4; -pub const IF_OPER_DORMANT: ::c_int = 5; -pub const IF_OPER_UP: ::c_int = 6; - -pub const IF_LINK_MODE_DEFAULT: ::c_int = 0; -pub const IF_LINK_MODE_DORMANT: ::c_int = 1; -pub const IF_LINK_MODE_TESTING: ::c_int = 2; - -// include/uapi/linux/udp.h -pub const UDP_CORK: ::c_int = 1; -pub const UDP_ENCAP: ::c_int = 100; -pub const UDP_NO_CHECK6_TX: ::c_int = 101; -pub const UDP_NO_CHECK6_RX: ::c_int = 102; - -// include/uapi/linux/mman.h -pub const MAP_SHARED_VALIDATE: ::c_int = 0x3; - -// include/uapi/asm-generic/mman-common.h -pub const MAP_FIXED_NOREPLACE: ::c_int = 0x100000; -pub const MLOCK_ONFAULT: ::c_uint = 0x01; - -// uapi/linux/vm_sockets.h -pub const VMADDR_CID_ANY: ::c_uint = 0xFFFFFFFF; -pub const VMADDR_CID_HYPERVISOR: ::c_uint = 0; -#[deprecated( - since = "0.2.74", - note = "VMADDR_CID_RESERVED is removed since Linux v5.6 and \ - replaced with VMADDR_CID_LOCAL" -)] -pub const VMADDR_CID_RESERVED: ::c_uint = 1; -pub const VMADDR_CID_LOCAL: ::c_uint = 1; -pub const VMADDR_CID_HOST: ::c_uint = 2; -pub const VMADDR_PORT_ANY: ::c_uint = 0xFFFFFFFF; - -// uapi/linux/inotify.h -pub const IN_ACCESS: u32 = 0x0000_0001; -pub const IN_MODIFY: u32 = 0x0000_0002; -pub const IN_ATTRIB: u32 = 0x0000_0004; -pub const IN_CLOSE_WRITE: u32 = 0x0000_0008; -pub const IN_CLOSE_NOWRITE: u32 = 0x0000_0010; -pub const IN_CLOSE: u32 = IN_CLOSE_WRITE | IN_CLOSE_NOWRITE; -pub const IN_OPEN: u32 = 0x0000_0020; -pub const IN_MOVED_FROM: u32 = 0x0000_0040; -pub const IN_MOVED_TO: u32 = 0x0000_0080; -pub const IN_MOVE: u32 = IN_MOVED_FROM | IN_MOVED_TO; -pub const IN_CREATE: u32 = 0x0000_0100; -pub const IN_DELETE: u32 = 0x0000_0200; -pub const IN_DELETE_SELF: u32 = 0x0000_0400; -pub const IN_MOVE_SELF: u32 = 0x0000_0800; -pub const IN_UNMOUNT: u32 = 0x0000_2000; -pub const IN_Q_OVERFLOW: u32 = 0x0000_4000; -pub const IN_IGNORED: u32 = 0x0000_8000; -pub const IN_ONLYDIR: u32 = 0x0100_0000; -pub const IN_DONT_FOLLOW: u32 = 0x0200_0000; -pub const IN_EXCL_UNLINK: u32 = 0x0400_0000; - -// linux/keyctl.h -pub const KEY_SPEC_THREAD_KEYRING: i32 = -1; -pub const KEY_SPEC_PROCESS_KEYRING: i32 = -2; -pub const KEY_SPEC_SESSION_KEYRING: i32 = -3; -pub const KEY_SPEC_USER_KEYRING: i32 = -4; -pub const KEY_SPEC_USER_SESSION_KEYRING: i32 = -5; -pub const KEY_SPEC_GROUP_KEYRING: i32 = -6; -pub const KEY_SPEC_REQKEY_AUTH_KEY: i32 = -7; -pub const KEY_SPEC_REQUESTOR_KEYRING: i32 = -8; - -pub const KEY_REQKEY_DEFL_NO_CHANGE: i32 = -1; -pub const KEY_REQKEY_DEFL_DEFAULT: i32 = 0; -pub const KEY_REQKEY_DEFL_THREAD_KEYRING: i32 = 1; -pub const KEY_REQKEY_DEFL_PROCESS_KEYRING: i32 = 2; -pub const KEY_REQKEY_DEFL_SESSION_KEYRING: i32 = 3; -pub const KEY_REQKEY_DEFL_USER_KEYRING: i32 = 4; -pub const KEY_REQKEY_DEFL_USER_SESSION_KEYRING: i32 = 5; -pub const KEY_REQKEY_DEFL_GROUP_KEYRING: i32 = 6; -pub const KEY_REQKEY_DEFL_REQUESTOR_KEYRING: i32 = 7; - -pub const KEYCTL_GET_KEYRING_ID: u32 = 0; -pub const KEYCTL_JOIN_SESSION_KEYRING: u32 = 1; -pub const KEYCTL_UPDATE: u32 = 2; -pub const KEYCTL_REVOKE: u32 = 3; -pub const KEYCTL_CHOWN: u32 = 4; -pub const KEYCTL_SETPERM: u32 = 5; -pub const KEYCTL_DESCRIBE: u32 = 6; -pub const KEYCTL_CLEAR: u32 = 7; -pub const KEYCTL_LINK: u32 = 8; -pub const KEYCTL_UNLINK: u32 = 9; -pub const KEYCTL_SEARCH: u32 = 10; -pub const KEYCTL_READ: u32 = 11; -pub const KEYCTL_INSTANTIATE: u32 = 12; -pub const KEYCTL_NEGATE: u32 = 13; -pub const KEYCTL_SET_REQKEY_KEYRING: u32 = 14; -pub const KEYCTL_SET_TIMEOUT: u32 = 15; -pub const KEYCTL_ASSUME_AUTHORITY: u32 = 16; -pub const KEYCTL_GET_SECURITY: u32 = 17; -pub const KEYCTL_SESSION_TO_PARENT: u32 = 18; -pub const KEYCTL_REJECT: u32 = 19; -pub const KEYCTL_INSTANTIATE_IOV: u32 = 20; -pub const KEYCTL_INVALIDATE: u32 = 21; -pub const KEYCTL_GET_PERSISTENT: u32 = 22; - -pub const IN_MASK_CREATE: u32 = 0x1000_0000; -pub const IN_MASK_ADD: u32 = 0x2000_0000; -pub const IN_ISDIR: u32 = 0x4000_0000; -pub const IN_ONESHOT: u32 = 0x8000_0000; - -pub const IN_ALL_EVENTS: u32 = IN_ACCESS - | IN_MODIFY - | IN_ATTRIB - | IN_CLOSE_WRITE - | IN_CLOSE_NOWRITE - | IN_OPEN - | IN_MOVED_FROM - | IN_MOVED_TO - | IN_DELETE - | IN_CREATE - | IN_DELETE_SELF - | IN_MOVE_SELF; - -pub const IN_CLOEXEC: ::c_int = O_CLOEXEC; -pub const IN_NONBLOCK: ::c_int = O_NONBLOCK; - -// uapi/linux/mount.h -pub const OPEN_TREE_CLONE: ::c_uint = 0x01; -pub const OPEN_TREE_CLOEXEC: ::c_uint = O_CLOEXEC as ::c_uint; - -// uapi/linux/netfilter/nf_tables.h -pub const NFT_TABLE_MAXNAMELEN: ::c_int = 256; -pub const NFT_CHAIN_MAXNAMELEN: ::c_int = 256; -pub const NFT_SET_MAXNAMELEN: ::c_int = 256; -pub const NFT_OBJ_MAXNAMELEN: ::c_int = 256; -pub const NFT_USERDATA_MAXLEN: ::c_int = 256; - -pub const NFT_REG_VERDICT: ::c_int = 0; -pub const NFT_REG_1: ::c_int = 1; -pub const NFT_REG_2: ::c_int = 2; -pub const NFT_REG_3: ::c_int = 3; -pub const NFT_REG_4: ::c_int = 4; -pub const __NFT_REG_MAX: ::c_int = 5; -pub const NFT_REG32_00: ::c_int = 8; -pub const NFT_REG32_01: ::c_int = 9; -pub const NFT_REG32_02: ::c_int = 10; -pub const NFT_REG32_03: ::c_int = 11; -pub const NFT_REG32_04: ::c_int = 12; -pub const NFT_REG32_05: ::c_int = 13; -pub const NFT_REG32_06: ::c_int = 14; -pub const NFT_REG32_07: ::c_int = 15; -pub const NFT_REG32_08: ::c_int = 16; -pub const NFT_REG32_09: ::c_int = 17; -pub const NFT_REG32_10: ::c_int = 18; -pub const NFT_REG32_11: ::c_int = 19; -pub const NFT_REG32_12: ::c_int = 20; -pub const NFT_REG32_13: ::c_int = 21; -pub const NFT_REG32_14: ::c_int = 22; -pub const NFT_REG32_15: ::c_int = 23; - -pub const NFT_REG_SIZE: ::c_int = 16; -pub const NFT_REG32_SIZE: ::c_int = 4; - -pub const NFT_CONTINUE: ::c_int = -1; -pub const NFT_BREAK: ::c_int = -2; -pub const NFT_JUMP: ::c_int = -3; -pub const NFT_GOTO: ::c_int = -4; -pub const NFT_RETURN: ::c_int = -5; - -pub const NFT_MSG_NEWTABLE: ::c_int = 0; -pub const NFT_MSG_GETTABLE: ::c_int = 1; -pub const NFT_MSG_DELTABLE: ::c_int = 2; -pub const NFT_MSG_NEWCHAIN: ::c_int = 3; -pub const NFT_MSG_GETCHAIN: ::c_int = 4; -pub const NFT_MSG_DELCHAIN: ::c_int = 5; -pub const NFT_MSG_NEWRULE: ::c_int = 6; -pub const NFT_MSG_GETRULE: ::c_int = 7; -pub const NFT_MSG_DELRULE: ::c_int = 8; -pub const NFT_MSG_NEWSET: ::c_int = 9; -pub const NFT_MSG_GETSET: ::c_int = 10; -pub const NFT_MSG_DELSET: ::c_int = 11; -pub const NFT_MSG_NEWSETELEM: ::c_int = 12; -pub const NFT_MSG_GETSETELEM: ::c_int = 13; -pub const NFT_MSG_DELSETELEM: ::c_int = 14; -pub const NFT_MSG_NEWGEN: ::c_int = 15; -pub const NFT_MSG_GETGEN: ::c_int = 16; -pub const NFT_MSG_TRACE: ::c_int = 17; -cfg_if! { - if #[cfg(not(target_arch = "sparc64"))] { - pub const NFT_MSG_NEWOBJ: ::c_int = 18; - pub const NFT_MSG_GETOBJ: ::c_int = 19; - pub const NFT_MSG_DELOBJ: ::c_int = 20; - pub const NFT_MSG_GETOBJ_RESET: ::c_int = 21; - } -} -pub const NFT_MSG_MAX: ::c_int = 25; - -pub const NFT_SET_ANONYMOUS: ::c_int = 0x1; -pub const NFT_SET_CONSTANT: ::c_int = 0x2; -pub const NFT_SET_INTERVAL: ::c_int = 0x4; -pub const NFT_SET_MAP: ::c_int = 0x8; -pub const NFT_SET_TIMEOUT: ::c_int = 0x10; -pub const NFT_SET_EVAL: ::c_int = 0x20; - -pub const NFT_SET_POL_PERFORMANCE: ::c_int = 0; -pub const NFT_SET_POL_MEMORY: ::c_int = 1; - -pub const NFT_SET_ELEM_INTERVAL_END: ::c_int = 0x1; - -pub const NFT_DATA_VALUE: ::c_uint = 0; -pub const NFT_DATA_VERDICT: ::c_uint = 0xffffff00; - -pub const NFT_DATA_RESERVED_MASK: ::c_uint = 0xffffff00; - -pub const NFT_DATA_VALUE_MAXLEN: ::c_int = 64; - -pub const NFT_BYTEORDER_NTOH: ::c_int = 0; -pub const NFT_BYTEORDER_HTON: ::c_int = 1; - -pub const NFT_CMP_EQ: ::c_int = 0; -pub const NFT_CMP_NEQ: ::c_int = 1; -pub const NFT_CMP_LT: ::c_int = 2; -pub const NFT_CMP_LTE: ::c_int = 3; -pub const NFT_CMP_GT: ::c_int = 4; -pub const NFT_CMP_GTE: ::c_int = 5; - -pub const NFT_RANGE_EQ: ::c_int = 0; -pub const NFT_RANGE_NEQ: ::c_int = 1; - -pub const NFT_LOOKUP_F_INV: ::c_int = 1 << 0; - -pub const NFT_DYNSET_OP_ADD: ::c_int = 0; -pub const NFT_DYNSET_OP_UPDATE: ::c_int = 1; - -pub const NFT_DYNSET_F_INV: ::c_int = 1 << 0; - -pub const NFT_PAYLOAD_LL_HEADER: ::c_int = 0; -pub const NFT_PAYLOAD_NETWORK_HEADER: ::c_int = 1; -pub const NFT_PAYLOAD_TRANSPORT_HEADER: ::c_int = 2; - -pub const NFT_PAYLOAD_CSUM_NONE: ::c_int = 0; -pub const NFT_PAYLOAD_CSUM_INET: ::c_int = 1; - -pub const NFT_META_LEN: ::c_int = 0; -pub const NFT_META_PROTOCOL: ::c_int = 1; -pub const NFT_META_PRIORITY: ::c_int = 2; -pub const NFT_META_MARK: ::c_int = 3; -pub const NFT_META_IIF: ::c_int = 4; -pub const NFT_META_OIF: ::c_int = 5; -pub const NFT_META_IIFNAME: ::c_int = 6; -pub const NFT_META_OIFNAME: ::c_int = 7; -pub const NFT_META_IIFTYPE: ::c_int = 8; -pub const NFT_META_OIFTYPE: ::c_int = 9; -pub const NFT_META_SKUID: ::c_int = 10; -pub const NFT_META_SKGID: ::c_int = 11; -pub const NFT_META_NFTRACE: ::c_int = 12; -pub const NFT_META_RTCLASSID: ::c_int = 13; -pub const NFT_META_SECMARK: ::c_int = 14; -pub const NFT_META_NFPROTO: ::c_int = 15; -pub const NFT_META_L4PROTO: ::c_int = 16; -pub const NFT_META_BRI_IIFNAME: ::c_int = 17; -pub const NFT_META_BRI_OIFNAME: ::c_int = 18; -pub const NFT_META_PKTTYPE: ::c_int = 19; -pub const NFT_META_CPU: ::c_int = 20; -pub const NFT_META_IIFGROUP: ::c_int = 21; -pub const NFT_META_OIFGROUP: ::c_int = 22; -pub const NFT_META_CGROUP: ::c_int = 23; -pub const NFT_META_PRANDOM: ::c_int = 24; - -pub const NFT_CT_STATE: ::c_int = 0; -pub const NFT_CT_DIRECTION: ::c_int = 1; -pub const NFT_CT_STATUS: ::c_int = 2; -pub const NFT_CT_MARK: ::c_int = 3; -pub const NFT_CT_SECMARK: ::c_int = 4; -pub const NFT_CT_EXPIRATION: ::c_int = 5; -pub const NFT_CT_HELPER: ::c_int = 6; -pub const NFT_CT_L3PROTOCOL: ::c_int = 7; -pub const NFT_CT_SRC: ::c_int = 8; -pub const NFT_CT_DST: ::c_int = 9; -pub const NFT_CT_PROTOCOL: ::c_int = 10; -pub const NFT_CT_PROTO_SRC: ::c_int = 11; -pub const NFT_CT_PROTO_DST: ::c_int = 12; -pub const NFT_CT_LABELS: ::c_int = 13; -pub const NFT_CT_PKTS: ::c_int = 14; -pub const NFT_CT_BYTES: ::c_int = 15; - -pub const NFT_LIMIT_PKTS: ::c_int = 0; -pub const NFT_LIMIT_PKT_BYTES: ::c_int = 1; - -pub const NFT_LIMIT_F_INV: ::c_int = 1 << 0; - -pub const NFT_QUEUE_FLAG_BYPASS: ::c_int = 0x01; -pub const NFT_QUEUE_FLAG_CPU_FANOUT: ::c_int = 0x02; -pub const NFT_QUEUE_FLAG_MASK: ::c_int = 0x03; - -pub const NFT_QUOTA_F_INV: ::c_int = 1 << 0; - -pub const NFT_REJECT_ICMP_UNREACH: ::c_int = 0; -pub const NFT_REJECT_TCP_RST: ::c_int = 1; -pub const NFT_REJECT_ICMPX_UNREACH: ::c_int = 2; - -pub const NFT_REJECT_ICMPX_NO_ROUTE: ::c_int = 0; -pub const NFT_REJECT_ICMPX_PORT_UNREACH: ::c_int = 1; -pub const NFT_REJECT_ICMPX_HOST_UNREACH: ::c_int = 2; -pub const NFT_REJECT_ICMPX_ADMIN_PROHIBITED: ::c_int = 3; - -pub const NFT_NAT_SNAT: ::c_int = 0; -pub const NFT_NAT_DNAT: ::c_int = 1; - -pub const NFT_TRACETYPE_UNSPEC: ::c_int = 0; -pub const NFT_TRACETYPE_POLICY: ::c_int = 1; -pub const NFT_TRACETYPE_RETURN: ::c_int = 2; -pub const NFT_TRACETYPE_RULE: ::c_int = 3; - -pub const NFT_NG_INCREMENTAL: ::c_int = 0; -pub const NFT_NG_RANDOM: ::c_int = 1; - -// linux/input.h -pub const FF_MAX: ::__u16 = 0x7f; -pub const FF_CNT: usize = FF_MAX as usize + 1; - -// linux/input-event-codes.h -pub const INPUT_PROP_MAX: ::__u16 = 0x1f; -pub const INPUT_PROP_CNT: usize = INPUT_PROP_MAX as usize + 1; -pub const EV_MAX: ::__u16 = 0x1f; -pub const EV_CNT: usize = EV_MAX as usize + 1; -pub const SYN_MAX: ::__u16 = 0xf; -pub const SYN_CNT: usize = SYN_MAX as usize + 1; -pub const KEY_MAX: ::__u16 = 0x2ff; -pub const KEY_CNT: usize = KEY_MAX as usize + 1; -pub const REL_MAX: ::__u16 = 0x0f; -pub const REL_CNT: usize = REL_MAX as usize + 1; -pub const ABS_MAX: ::__u16 = 0x3f; -pub const ABS_CNT: usize = ABS_MAX as usize + 1; -pub const SW_MAX: ::__u16 = 0x10; -pub const SW_CNT: usize = SW_MAX as usize + 1; -pub const MSC_MAX: ::__u16 = 0x07; -pub const MSC_CNT: usize = MSC_MAX as usize + 1; -pub const LED_MAX: ::__u16 = 0x0f; -pub const LED_CNT: usize = LED_MAX as usize + 1; -pub const REP_MAX: ::__u16 = 0x01; -pub const REP_CNT: usize = REP_MAX as usize + 1; -pub const SND_MAX: ::__u16 = 0x07; -pub const SND_CNT: usize = SND_MAX as usize + 1; - -// linux/uinput.h -pub const UINPUT_VERSION: ::c_uint = 5; -pub const UINPUT_MAX_NAME_SIZE: usize = 80; - -// uapi/linux/fanotify.h -pub const FAN_ACCESS: u64 = 0x0000_0001; -pub const FAN_MODIFY: u64 = 0x0000_0002; -pub const FAN_CLOSE_WRITE: u64 = 0x0000_0008; -pub const FAN_CLOSE_NOWRITE: u64 = 0x0000_0010; -pub const FAN_OPEN: u64 = 0x0000_0020; - -pub const FAN_Q_OVERFLOW: u64 = 0x0000_4000; - -pub const FAN_OPEN_PERM: u64 = 0x0001_0000; -pub const FAN_ACCESS_PERM: u64 = 0x0002_0000; - -pub const FAN_ONDIR: u64 = 0x4000_0000; - -pub const FAN_EVENT_ON_CHILD: u64 = 0x0800_0000; - -pub const FAN_CLOSE: u64 = FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE; - -pub const FAN_CLOEXEC: ::c_uint = 0x0000_0001; -pub const FAN_NONBLOCK: ::c_uint = 0x0000_0002; - -pub const FAN_CLASS_NOTIF: ::c_uint = 0x0000_0000; -pub const FAN_CLASS_CONTENT: ::c_uint = 0x0000_0004; -pub const FAN_CLASS_PRE_CONTENT: ::c_uint = 0x0000_0008; - -pub const FAN_UNLIMITED_QUEUE: ::c_uint = 0x0000_0010; -pub const FAN_UNLIMITED_MARKS: ::c_uint = 0x0000_0020; - -pub const FAN_MARK_ADD: ::c_uint = 0x0000_0001; -pub const FAN_MARK_REMOVE: ::c_uint = 0x0000_0002; -pub const FAN_MARK_DONT_FOLLOW: ::c_uint = 0x0000_0004; -pub const FAN_MARK_ONLYDIR: ::c_uint = 0x0000_0008; -pub const FAN_MARK_IGNORED_MASK: ::c_uint = 0x0000_0020; -pub const FAN_MARK_IGNORED_SURV_MODIFY: ::c_uint = 0x0000_0040; -pub const FAN_MARK_FLUSH: ::c_uint = 0x0000_0080; - -pub const FANOTIFY_METADATA_VERSION: u8 = 3; - -pub const FAN_ALLOW: u32 = 0x01; -pub const FAN_DENY: u32 = 0x02; - -pub const FAN_NOFD: ::c_int = -1; - -pub const FUTEX_WAIT: ::c_int = 0; -pub const FUTEX_WAKE: ::c_int = 1; -pub const FUTEX_FD: ::c_int = 2; -pub const FUTEX_REQUEUE: ::c_int = 3; -pub const FUTEX_CMP_REQUEUE: ::c_int = 4; -pub const FUTEX_WAKE_OP: ::c_int = 5; -pub const FUTEX_LOCK_PI: ::c_int = 6; -pub const FUTEX_UNLOCK_PI: ::c_int = 7; -pub const FUTEX_TRYLOCK_PI: ::c_int = 8; -pub const FUTEX_WAIT_BITSET: ::c_int = 9; -pub const FUTEX_WAKE_BITSET: ::c_int = 10; -pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11; -pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12; -pub const FUTEX_LOCK_PI2: ::c_int = 13; - -pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; -pub const FUTEX_CLOCK_REALTIME: ::c_int = 256; -pub const FUTEX_CMD_MASK: ::c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); - -pub const FUTEX_BITSET_MATCH_ANY: ::c_int = 0xffffffff; - -pub const FUTEX_OP_SET: ::c_int = 0; -pub const FUTEX_OP_ADD: ::c_int = 1; -pub const FUTEX_OP_OR: ::c_int = 2; -pub const FUTEX_OP_ANDN: ::c_int = 3; -pub const FUTEX_OP_XOR: ::c_int = 4; - -pub const FUTEX_OP_OPARG_SHIFT: ::c_int = 8; - -pub const FUTEX_OP_CMP_EQ: ::c_int = 0; -pub const FUTEX_OP_CMP_NE: ::c_int = 1; -pub const FUTEX_OP_CMP_LT: ::c_int = 2; -pub const FUTEX_OP_CMP_LE: ::c_int = 3; -pub const FUTEX_OP_CMP_GT: ::c_int = 4; -pub const FUTEX_OP_CMP_GE: ::c_int = 5; - -pub fn FUTEX_OP(op: ::c_int, oparg: ::c_int, cmp: ::c_int, cmparg: ::c_int) -> ::c_int { - ((op & 0xf) << 28) | ((cmp & 0xf) << 24) | ((oparg & 0xfff) << 12) | (cmparg & 0xfff) -} - -// linux/kexec.h -pub const KEXEC_ON_CRASH: ::c_int = 0x00000001; -pub const KEXEC_PRESERVE_CONTEXT: ::c_int = 0x00000002; -pub const KEXEC_ARCH_MASK: ::c_int = 0xffff0000; -pub const KEXEC_FILE_UNLOAD: ::c_int = 0x00000001; -pub const KEXEC_FILE_ON_CRASH: ::c_int = 0x00000002; -pub const KEXEC_FILE_NO_INITRAMFS: ::c_int = 0x00000004; - -// linux/reboot.h -pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead; -pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793; -pub const LINUX_REBOOT_MAGIC2A: ::c_int = 85072278; -pub const LINUX_REBOOT_MAGIC2B: ::c_int = 369367448; -pub const LINUX_REBOOT_MAGIC2C: ::c_int = 537993216; - -pub const LINUX_REBOOT_CMD_RESTART: ::c_int = 0x01234567; -pub const LINUX_REBOOT_CMD_HALT: ::c_int = 0xCDEF0123; -pub const LINUX_REBOOT_CMD_CAD_ON: ::c_int = 0x89ABCDEF; -pub const LINUX_REBOOT_CMD_CAD_OFF: ::c_int = 0x00000000; -pub const LINUX_REBOOT_CMD_POWER_OFF: ::c_int = 0x4321FEDC; -pub const LINUX_REBOOT_CMD_RESTART2: ::c_int = 0xA1B2C3D4; -pub const LINUX_REBOOT_CMD_SW_SUSPEND: ::c_int = 0xD000FCE2; -pub const LINUX_REBOOT_CMD_KEXEC: ::c_int = 0x45584543; - -pub const REG_EXTENDED: ::c_int = 1; -pub const REG_ICASE: ::c_int = 2; -pub const REG_NEWLINE: ::c_int = 4; -pub const REG_NOSUB: ::c_int = 8; - -pub const REG_NOTBOL: ::c_int = 1; -pub const REG_NOTEOL: ::c_int = 2; - -pub const REG_ENOSYS: ::c_int = -1; -pub const REG_NOMATCH: ::c_int = 1; -pub const REG_BADPAT: ::c_int = 2; -pub const REG_ECOLLATE: ::c_int = 3; -pub const REG_ECTYPE: ::c_int = 4; -pub const REG_EESCAPE: ::c_int = 5; -pub const REG_ESUBREG: ::c_int = 6; -pub const REG_EBRACK: ::c_int = 7; -pub const REG_EPAREN: ::c_int = 8; -pub const REG_EBRACE: ::c_int = 9; -pub const REG_BADBR: ::c_int = 10; -pub const REG_ERANGE: ::c_int = 11; -pub const REG_ESPACE: ::c_int = 12; -pub const REG_BADRPT: ::c_int = 13; - -// linux/errqueue.h -pub const SO_EE_ORIGIN_NONE: u8 = 0; -pub const SO_EE_ORIGIN_LOCAL: u8 = 1; -pub const SO_EE_ORIGIN_ICMP: u8 = 2; -pub const SO_EE_ORIGIN_ICMP6: u8 = 3; -pub const SO_EE_ORIGIN_TXSTATUS: u8 = 4; -pub const SO_EE_ORIGIN_TIMESTAMPING: u8 = SO_EE_ORIGIN_TXSTATUS; - -// errno.h -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EWOULDBLOCK: ::c_int = EAGAIN; - -// linux/can.h -pub const CAN_EFF_FLAG: canid_t = 0x80000000; -pub const CAN_RTR_FLAG: canid_t = 0x40000000; -pub const CAN_ERR_FLAG: canid_t = 0x20000000; -pub const CAN_SFF_MASK: canid_t = 0x000007FF; -pub const CAN_EFF_MASK: canid_t = 0x1FFFFFFF; -pub const CAN_ERR_MASK: canid_t = 0x1FFFFFFF; -pub const CANXL_PRIO_MASK: ::canid_t = CAN_SFF_MASK; - -pub const CAN_SFF_ID_BITS: ::c_int = 11; -pub const CAN_EFF_ID_BITS: ::c_int = 29; -pub const CANXL_PRIO_BITS: ::c_int = CAN_SFF_ID_BITS; - -pub const CAN_MAX_DLC: ::c_int = 8; -pub const CAN_MAX_DLEN: usize = 8; -pub const CANFD_MAX_DLC: ::c_int = 15; -pub const CANFD_MAX_DLEN: usize = 64; - -pub const CANFD_BRS: ::c_int = 0x01; -pub const CANFD_ESI: ::c_int = 0x02; - -pub const CANXL_MIN_DLC: ::c_int = 0; -pub const CANXL_MAX_DLC: ::c_int = 2047; -pub const CANXL_MAX_DLC_MASK: ::c_int = 0x07FF; -pub const CANXL_MIN_DLEN: usize = 1; -pub const CANXL_MAX_DLEN: usize = 2048; - -pub const CANXL_XLF: ::c_int = 0x80; -pub const CANXL_SEC: ::c_int = 0x01; - -cfg_if! { - if #[cfg(libc_align)] { - pub const CAN_MTU: usize = ::mem::size_of::(); - pub const CANFD_MTU: usize = ::mem::size_of::(); - pub const CANXL_MTU: usize = ::mem::size_of::(); - // FIXME: use `core::mem::offset_of!` once that is available - // https://github.com/rust-lang/rfcs/pull/3308 - // pub const CANXL_HDR_SIZE: usize = core::mem::offset_of!(canxl_frame, data); - pub const CANXL_HDR_SIZE: usize = 12; - pub const CANXL_MIN_MTU: usize = CANXL_HDR_SIZE + 64; - pub const CANXL_MAX_MTU: usize = CANXL_MTU; - } -} - -pub const CAN_RAW: ::c_int = 1; -pub const CAN_BCM: ::c_int = 2; -pub const CAN_TP16: ::c_int = 3; -pub const CAN_TP20: ::c_int = 4; -pub const CAN_MCNET: ::c_int = 5; -pub const CAN_ISOTP: ::c_int = 6; -pub const CAN_J1939: ::c_int = 7; -pub const CAN_NPROTO: ::c_int = 8; - -pub const SOL_CAN_BASE: ::c_int = 100; - -pub const CAN_INV_FILTER: canid_t = 0x20000000; -pub const CAN_RAW_FILTER_MAX: ::c_int = 512; - -// linux/can/raw.h -pub const SOL_CAN_RAW: ::c_int = SOL_CAN_BASE + CAN_RAW; -pub const CAN_RAW_FILTER: ::c_int = 1; -pub const CAN_RAW_ERR_FILTER: ::c_int = 2; -pub const CAN_RAW_LOOPBACK: ::c_int = 3; -pub const CAN_RAW_RECV_OWN_MSGS: ::c_int = 4; -pub const CAN_RAW_FD_FRAMES: ::c_int = 5; -pub const CAN_RAW_JOIN_FILTERS: ::c_int = 6; -pub const CAN_RAW_XL_FRAMES: ::c_int = 7; - -// linux/can/j1939.h -pub const SOL_CAN_J1939: ::c_int = SOL_CAN_BASE + CAN_J1939; - -pub const J1939_MAX_UNICAST_ADDR: ::c_uchar = 0xfd; -pub const J1939_IDLE_ADDR: ::c_uchar = 0xfe; -pub const J1939_NO_ADDR: ::c_uchar = 0xff; -pub const J1939_NO_NAME: ::c_ulong = 0; -pub const J1939_PGN_REQUEST: ::c_uint = 0x0ea00; -pub const J1939_PGN_ADDRESS_CLAIMED: ::c_uint = 0x0ee00; -pub const J1939_PGN_ADDRESS_COMMANDED: ::c_uint = 0x0fed8; -pub const J1939_PGN_PDU1_MAX: ::c_uint = 0x3ff00; -pub const J1939_PGN_MAX: ::c_uint = 0x3ffff; -pub const J1939_NO_PGN: ::c_uint = 0x40000; - -pub const SO_J1939_FILTER: ::c_int = 1; -pub const SO_J1939_PROMISC: ::c_int = 2; -pub const SO_J1939_SEND_PRIO: ::c_int = 3; -pub const SO_J1939_ERRQUEUE: ::c_int = 4; - -pub const SCM_J1939_DEST_ADDR: ::c_int = 1; -pub const SCM_J1939_DEST_NAME: ::c_int = 2; -pub const SCM_J1939_PRIO: ::c_int = 3; -pub const SCM_J1939_ERRQUEUE: ::c_int = 4; - -pub const J1939_NLA_PAD: ::c_int = 0; -pub const J1939_NLA_BYTES_ACKED: ::c_int = 1; -pub const J1939_NLA_TOTAL_SIZE: ::c_int = 2; -pub const J1939_NLA_PGN: ::c_int = 3; -pub const J1939_NLA_SRC_NAME: ::c_int = 4; -pub const J1939_NLA_DEST_NAME: ::c_int = 5; -pub const J1939_NLA_SRC_ADDR: ::c_int = 6; -pub const J1939_NLA_DEST_ADDR: ::c_int = 7; - -pub const J1939_EE_INFO_NONE: ::c_int = 0; -pub const J1939_EE_INFO_TX_ABORT: ::c_int = 1; -pub const J1939_EE_INFO_RX_RTS: ::c_int = 2; -pub const J1939_EE_INFO_RX_DPO: ::c_int = 3; -pub const J1939_EE_INFO_RX_ABORT: ::c_int = 4; - -pub const J1939_FILTER_MAX: ::c_int = 512; - -// linux/sctp.h -pub const SCTP_FUTURE_ASSOC: ::c_int = 0; -pub const SCTP_CURRENT_ASSOC: ::c_int = 1; -pub const SCTP_ALL_ASSOC: ::c_int = 2; -pub const SCTP_RTOINFO: ::c_int = 0; -pub const SCTP_ASSOCINFO: ::c_int = 1; -pub const SCTP_INITMSG: ::c_int = 2; -pub const SCTP_NODELAY: ::c_int = 3; -pub const SCTP_AUTOCLOSE: ::c_int = 4; -pub const SCTP_SET_PEER_PRIMARY_ADDR: ::c_int = 5; -pub const SCTP_PRIMARY_ADDR: ::c_int = 6; -pub const SCTP_ADAPTATION_LAYER: ::c_int = 7; -pub const SCTP_DISABLE_FRAGMENTS: ::c_int = 8; -pub const SCTP_PEER_ADDR_PARAMS: ::c_int = 9; -pub const SCTP_DEFAULT_SEND_PARAM: ::c_int = 10; -pub const SCTP_EVENTS: ::c_int = 11; -pub const SCTP_I_WANT_MAPPED_V4_ADDR: ::c_int = 12; -pub const SCTP_MAXSEG: ::c_int = 13; -pub const SCTP_STATUS: ::c_int = 14; -pub const SCTP_GET_PEER_ADDR_INFO: ::c_int = 15; -pub const SCTP_DELAYED_ACK_TIME: ::c_int = 16; -pub const SCTP_DELAYED_ACK: ::c_int = SCTP_DELAYED_ACK_TIME; -pub const SCTP_DELAYED_SACK: ::c_int = SCTP_DELAYED_ACK_TIME; -pub const SCTP_CONTEXT: ::c_int = 17; -pub const SCTP_FRAGMENT_INTERLEAVE: ::c_int = 18; -pub const SCTP_PARTIAL_DELIVERY_POINT: ::c_int = 19; -pub const SCTP_MAX_BURST: ::c_int = 20; -pub const SCTP_AUTH_CHUNK: ::c_int = 21; -pub const SCTP_HMAC_IDENT: ::c_int = 22; -pub const SCTP_AUTH_KEY: ::c_int = 23; -pub const SCTP_AUTH_ACTIVE_KEY: ::c_int = 24; -pub const SCTP_AUTH_DELETE_KEY: ::c_int = 25; -pub const SCTP_PEER_AUTH_CHUNKS: ::c_int = 26; -pub const SCTP_LOCAL_AUTH_CHUNKS: ::c_int = 27; -pub const SCTP_GET_ASSOC_NUMBER: ::c_int = 28; -pub const SCTP_GET_ASSOC_ID_LIST: ::c_int = 29; -pub const SCTP_AUTO_ASCONF: ::c_int = 30; -pub const SCTP_PEER_ADDR_THLDS: ::c_int = 31; -pub const SCTP_RECVRCVINFO: ::c_int = 32; -pub const SCTP_RECVNXTINFO: ::c_int = 33; -pub const SCTP_DEFAULT_SNDINFO: ::c_int = 34; -pub const SCTP_AUTH_DEACTIVATE_KEY: ::c_int = 35; -pub const SCTP_REUSE_PORT: ::c_int = 36; -pub const SCTP_PEER_ADDR_THLDS_V2: ::c_int = 37; -pub const SCTP_PR_SCTP_NONE: ::c_int = 0x0000; -pub const SCTP_PR_SCTP_TTL: ::c_int = 0x0010; -pub const SCTP_PR_SCTP_RTX: ::c_int = 0x0020; -pub const SCTP_PR_SCTP_PRIO: ::c_int = 0x0030; -pub const SCTP_PR_SCTP_MAX: ::c_int = SCTP_PR_SCTP_PRIO; -pub const SCTP_PR_SCTP_MASK: ::c_int = 0x0030; -pub const SCTP_ENABLE_RESET_STREAM_REQ: ::c_int = 0x01; -pub const SCTP_ENABLE_RESET_ASSOC_REQ: ::c_int = 0x02; -pub const SCTP_ENABLE_CHANGE_ASSOC_REQ: ::c_int = 0x04; -pub const SCTP_ENABLE_STRRESET_MASK: ::c_int = 0x07; -pub const SCTP_STREAM_RESET_INCOMING: ::c_int = 0x01; -pub const SCTP_STREAM_RESET_OUTGOING: ::c_int = 0x02; - -pub const SCTP_INIT: ::c_int = 0; -pub const SCTP_SNDRCV: ::c_int = 1; -pub const SCTP_SNDINFO: ::c_int = 2; -pub const SCTP_RCVINFO: ::c_int = 3; -pub const SCTP_NXTINFO: ::c_int = 4; -pub const SCTP_PRINFO: ::c_int = 5; -pub const SCTP_AUTHINFO: ::c_int = 6; -pub const SCTP_DSTADDRV4: ::c_int = 7; -pub const SCTP_DSTADDRV6: ::c_int = 8; - -pub const SCTP_UNORDERED: ::c_int = 1 << 0; -pub const SCTP_ADDR_OVER: ::c_int = 1 << 1; -pub const SCTP_ABORT: ::c_int = 1 << 2; -pub const SCTP_SACK_IMMEDIATELY: ::c_int = 1 << 3; -pub const SCTP_SENDALL: ::c_int = 1 << 6; -pub const SCTP_PR_SCTP_ALL: ::c_int = 1 << 7; -pub const SCTP_NOTIFICATION: ::c_int = MSG_NOTIFICATION; -pub const SCTP_EOF: ::c_int = ::MSG_FIN; - -/* DCCP socket options */ -pub const DCCP_SOCKOPT_PACKET_SIZE: ::c_int = 1; -pub const DCCP_SOCKOPT_SERVICE: ::c_int = 2; -pub const DCCP_SOCKOPT_CHANGE_L: ::c_int = 3; -pub const DCCP_SOCKOPT_CHANGE_R: ::c_int = 4; -pub const DCCP_SOCKOPT_GET_CUR_MPS: ::c_int = 5; -pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: ::c_int = 6; -pub const DCCP_SOCKOPT_SEND_CSCOV: ::c_int = 10; -pub const DCCP_SOCKOPT_RECV_CSCOV: ::c_int = 11; -pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: ::c_int = 12; -pub const DCCP_SOCKOPT_CCID: ::c_int = 13; -pub const DCCP_SOCKOPT_TX_CCID: ::c_int = 14; -pub const DCCP_SOCKOPT_RX_CCID: ::c_int = 15; -pub const DCCP_SOCKOPT_QPOLICY_ID: ::c_int = 16; -pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: ::c_int = 17; -pub const DCCP_SOCKOPT_CCID_RX_INFO: ::c_int = 128; -pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192; - -/// maximum number of services provided on the same listening port -pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32; - -f! { - pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { - return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1) - } - - pub fn CMSG_NXTHDR(mhdr: *const msghdr, - cmsg: *const cmsghdr) -> *mut cmsghdr { - if ((*cmsg).cmsg_len as usize) < ::mem::size_of::() { - return 0 as *mut cmsghdr; - }; - let next = (cmsg as usize + - super::CMSG_ALIGN((*cmsg).cmsg_len as usize)) - as *mut cmsghdr; - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; - if (next.offset(1)) as usize > max || - next as usize + super::CMSG_ALIGN((*next).cmsg_len as usize) > max - { - 0 as *mut cmsghdr - } else { - next as *mut cmsghdr - } - } - - pub fn CPU_ALLOC_SIZE(count: ::c_int) -> ::size_t { - let _dummy: cpu_set_t = ::mem::zeroed(); - let size_in_bits = 8 * ::mem::size_of_val(&_dummy.bits[0]); - ((count as ::size_t + size_in_bits - 1) / 8) as ::size_t - } - - pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { - for slot in cpuset.bits.iter_mut() { - *slot = 0; - } - } - - pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - cpuset.bits[idx] |= 1 << offset; - () - } - - pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { - let size_in_bits - = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - cpuset.bits[idx] &= !(1 << offset); - () - } - - pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { - let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]); - let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); - 0 != (cpuset.bits[idx] & (1 << offset)) - } - - pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> ::c_int { - let mut s: u32 = 0; - let size_of_mask = ::mem::size_of_val(&cpuset.bits[0]); - for i in cpuset.bits[..(size / size_of_mask)].iter() { - s += i.count_ones(); - }; - s as ::c_int - } - - pub fn CPU_COUNT(cpuset: &cpu_set_t) -> ::c_int { - CPU_COUNT_S(::mem::size_of::(), cpuset) - } - - pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { - set1.bits == set2.bits - } - - pub fn SCTP_PR_INDEX(policy: ::c_int) -> ::c_int { - policy >> 4 - 1 - } - - pub fn SCTP_PR_POLICY(policy: ::c_int) -> ::c_int { - policy & SCTP_PR_SCTP_MASK - } - - pub fn SCTP_PR_SET_POLICY(flags: &mut ::c_int, policy: ::c_int) -> () { - *flags &= !SCTP_PR_SCTP_MASK; - *flags |= policy; - () - } - - pub fn major(dev: ::dev_t) -> ::c_uint { - let mut major = 0; - major |= (dev & 0x00000000000fff00) >> 8; - major |= (dev & 0xfffff00000000000) >> 32; - major as ::c_uint - } - - pub fn minor(dev: ::dev_t) -> ::c_uint { - let mut minor = 0; - minor |= (dev & 0x00000000000000ff) >> 0; - minor |= (dev & 0x00000ffffff00000) >> 12; - minor as ::c_uint - } - - pub fn IPTOS_TOS(tos: u8) -> u8 { - tos & IPTOS_TOS_MASK - } - - pub fn IPTOS_PREC(tos: u8) -> u8 { - tos & IPTOS_PREC_MASK - } - - pub fn RT_TOS(tos: u8) -> u8 { - tos & ::IPTOS_TOS_MASK - } - - pub fn RT_ADDRCLASS(flags: u32) -> u32 { - flags >> 23 - } - - pub fn RT_LOCALADDR(flags: u32) -> bool { - (flags & RTF_ADDRCLASSMASK) == (RTF_LOCAL | RTF_INTERFACE) - } - - pub fn SO_EE_OFFENDER(ee: *const ::sock_extended_err) -> *mut ::sockaddr { - ee.offset(1) as *mut ::sockaddr - } - - pub fn BPF_RVAL(code: ::__u32) -> ::__u32 { - code & 0x18 - } - - pub fn BPF_MISCOP(code: ::__u32) -> ::__u32 { - code & 0xf8 - } - - pub fn BPF_STMT(code: ::__u16, k: ::__u32) -> sock_filter { - sock_filter{code: code, jt: 0, jf: 0, k: k} - } - - pub fn BPF_JUMP(code: ::__u16, k: ::__u32, jt: ::__u8, jf: ::__u8) -> sock_filter { - sock_filter{code: code, jt: jt, jf: jf, k: k} - } -} - -safe_f! { - pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { - let major = major as ::dev_t; - let minor = minor as ::dev_t; - let mut dev = 0; - dev |= (major & 0x00000fff) << 8; - dev |= (major & 0xfffff000) << 32; - dev |= (minor & 0x000000ff) << 0; - dev |= (minor & 0xffffff00) << 12; - dev - } - - pub {const} fn SCTP_PR_TTL_ENABLED(policy: ::c_int) -> bool { - policy == SCTP_PR_SCTP_TTL - } - - pub {const} fn SCTP_PR_RTX_ENABLED(policy: ::c_int) -> bool { - policy == SCTP_PR_SCTP_RTX - } - - pub {const} fn SCTP_PR_PRIO_ENABLED(policy: ::c_int) -> bool { - policy == SCTP_PR_SCTP_PRIO - } -} - -cfg_if! { - if #[cfg(all(not(target_env = "uclibc"), not(target_env = "ohos")))] { - extern "C" { - pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; - pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; - pub fn aio_suspend( - aiocb_list: *const *const aiocb, - nitems: ::c_int, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn lio_listio( - mode: ::c_int, - aiocb_list: *const *mut aiocb, - nitems: ::c_int, - sevp: *mut ::sigevent, - ) -> ::c_int; - } - } -} - -cfg_if! { - if #[cfg(not(target_env = "uclibc"))] { - extern "C" { - pub fn pwritev( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t, - ) -> ::ssize_t; - pub fn preadv( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t, - ) -> ::ssize_t; - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn getloadavg( - loadavg: *mut ::c_double, - nelem: ::c_int - ) -> ::c_int; - pub fn process_vm_readv( - pid: ::pid_t, - local_iov: *const ::iovec, - liovcnt: ::c_ulong, - remote_iov: *const ::iovec, - riovcnt: ::c_ulong, - flags: ::c_ulong, - ) -> isize; - pub fn process_vm_writev( - pid: ::pid_t, - local_iov: *const ::iovec, - liovcnt: ::c_ulong, - remote_iov: *const ::iovec, - riovcnt: ::c_ulong, - flags: ::c_ulong, - ) -> isize; - pub fn futimes( - fd: ::c_int, - times: *const ::timeval - ) -> ::c_int; - } - } -} - -// These functions are not available on OpenHarmony -cfg_if! { - if #[cfg(not(target_env = "ohos"))] { - extern "C" { - // Only `getspnam_r` is implemented for musl, out of all of the reenterant - // functions from `shadow.h`. - // https://git.musl-libc.org/cgit/musl/tree/include/shadow.h - pub fn getspnam_r( - name: *const ::c_char, - spbuf: *mut spwd, - buf: *mut ::c_char, - buflen: ::size_t, - spbufp: *mut *mut spwd, - ) -> ::c_int; - - pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; - - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::c_int; - pub fn mq_receive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - ) -> ::ssize_t; - pub fn mq_timedreceive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::ssize_t; - pub fn mq_send( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - ) -> ::c_int; - pub fn mq_timedsend( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_setattr( - mqd: ::mqd_t, - newattr: *const ::mq_attr, - oldattr: *mut ::mq_attr - ) -> ::c_int; - - pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; - pub fn pthread_mutexattr_getrobust( - attr: *const pthread_mutexattr_t, - robustness: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setrobust( - attr: *mut pthread_mutexattr_t, - robustness: ::c_int, - ) -> ::c_int; - } - } -} - -extern "C" { - #[cfg_attr( - not(any(target_env = "musl", target_env = "ohos")), - link_name = "__xpg_strerror_r" - )] - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); - - pub fn drand48() -> ::c_double; - pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double; - pub fn lrand48() -> ::c_long; - pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn mrand48() -> ::c_long; - pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long; - pub fn srand48(seed: ::c_long); - pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort; - pub fn lcong48(p: *mut ::c_ushort); - - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; - - pub fn setpwent(); - pub fn endpwent(); - pub fn getpwent() -> *mut passwd; - pub fn setgrent(); - pub fn endgrent(); - pub fn getgrent() -> *mut ::group; - pub fn setspent(); - pub fn endspent(); - pub fn getspent() -> *mut spwd; - - pub fn getspnam(name: *const ::c_char) -> *mut spwd; - - // System V IPC - pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; - pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; - pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; - pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; - pub fn semget(key: ::key_t, nsems: ::c_int, semflag: ::c_int) -> ::c_int; - pub fn semop(semid: ::c_int, sops: *mut ::sembuf, nsops: ::size_t) -> ::c_int; - pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; - pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; - pub fn msgrcv( - msqid: ::c_int, - msgp: *mut ::c_void, - msgsz: ::size_t, - msgtyp: ::c_long, - msgflg: ::c_int, - ) -> ::ssize_t; - pub fn msgsnd( - msqid: ::c_int, - msgp: *const ::c_void, - msgsz: ::size_t, - msgflg: ::c_int, - ) -> ::c_int; - - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn __errno_location() -> *mut ::c_int; - - pub fn fallocate(fd: ::c_int, mode: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn readahead(fd: ::c_int, offset: ::off64_t, count: ::size_t) -> ::ssize_t; - pub fn getxattr( - path: *const c_char, - name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; - pub fn lgetxattr( - path: *const c_char, - name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; - pub fn fgetxattr( - filedes: ::c_int, - name: *const c_char, - value: *mut ::c_void, - size: ::size_t, - ) -> ::ssize_t; - pub fn setxattr( - path: *const c_char, - name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn lsetxattr( - path: *const c_char, - name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn fsetxattr( - filedes: ::c_int, - name: *const c_char, - value: *const ::c_void, - size: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn listxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn llistxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn flistxattr(filedes: ::c_int, list: *mut c_char, size: ::size_t) -> ::ssize_t; - pub fn removexattr(path: *const c_char, name: *const c_char) -> ::c_int; - pub fn lremovexattr(path: *const c_char, name: *const c_char) -> ::c_int; - pub fn fremovexattr(filedes: ::c_int, name: *const c_char) -> ::c_int; - pub fn signalfd(fd: ::c_int, mask: *const ::sigset_t, flags: ::c_int) -> ::c_int; - pub fn timerfd_create(clockid: ::clockid_t, flags: ::c_int) -> ::c_int; - pub fn timerfd_gettime(fd: ::c_int, curr_value: *mut itimerspec) -> ::c_int; - pub fn timerfd_settime( - fd: ::c_int, - flags: ::c_int, - new_value: *const itimerspec, - old_value: *mut itimerspec, - ) -> ::c_int; - pub fn quotactl( - cmd: ::c_int, - special: *const ::c_char, - id: ::c_int, - data: *mut ::c_char, - ) -> ::c_int; - pub fn epoll_pwait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - sigmask: *const ::sigset_t, - ) -> ::c_int; - pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; - pub fn sigtimedwait( - set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; - pub fn accept4( - fd: ::c_int, - addr: *mut ::sockaddr, - len: *mut ::socklen_t, - flg: ::c_int, - ) -> ::c_int; - pub fn pthread_getaffinity_np( - thread: ::pthread_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t, - ) -> ::c_int; - pub fn pthread_setaffinity_np( - thread: ::pthread_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t, - ) -> ::c_int; - pub fn pthread_setschedprio(native: ::pthread_t, priority: ::c_int) -> ::c_int; - pub fn reboot(how_to: ::c_int) -> ::c_int; - pub fn setfsgid(gid: ::gid_t) -> ::c_int; - pub fn setfsuid(uid: ::uid_t) -> ::c_int; - - // Not available now on Android - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn if_nameindex() -> *mut if_nameindex; - pub fn if_freenameindex(ptr: *mut if_nameindex); - pub fn sync_file_range( - fd: ::c_int, - offset: ::off64_t, - nbytes: ::off64_t, - flags: ::c_uint, - ) -> ::c_int; - pub fn mremap( - addr: *mut ::c_void, - len: ::size_t, - new_len: ::size_t, - flags: ::c_int, - ... - ) -> *mut ::c_void; - - pub fn glob( - pattern: *const c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - pub fn globfree(pglob: *mut ::glob_t); - - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - pub fn remap_file_pages( - addr: *mut ::c_void, - size: ::size_t, - prot: ::c_int, - pgoff: ::size_t, - flags: ::c_int, - ) -> ::c_int; - pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - - pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn vhangup() -> ::c_int; - pub fn sync(); - pub fn syncfs(fd: ::c_int) -> ::c_int; - pub fn syscall(num: ::c_long, ...) -> ::c_long; - pub fn sched_getaffinity(pid: ::pid_t, cpusetsize: ::size_t, cpuset: *mut cpu_set_t) - -> ::c_int; - pub fn sched_setaffinity( - pid: ::pid_t, - cpusetsize: ::size_t, - cpuset: *const cpu_set_t, - ) -> ::c_int; - pub fn epoll_create(size: ::c_int) -> ::c_int; - pub fn epoll_create1(flags: ::c_int) -> ::c_int; - pub fn epoll_wait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - ) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) - -> ::c_int; - pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param, - ) -> ::c_int; - pub fn unshare(flags: ::c_int) -> ::c_int; - pub fn umount(target: *const ::c_char) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn tee(fd_in: ::c_int, fd_out: ::c_int, len: ::size_t, flags: ::c_uint) -> ::ssize_t; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; - pub fn splice( - fd_in: ::c_int, - off_in: *mut ::loff_t, - fd_out: ::c_int, - off_out: *mut ::loff_t, - len: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; - pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; - pub fn setns(fd: ::c_int, nstype: ::c_int) -> ::c_int; - pub fn swapoff(path: *const ::c_char) -> ::c_int; - pub fn vmsplice( - fd: ::c_int, - iov: *const ::iovec, - nr_segs: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; - pub fn mount( - src: *const ::c_char, - target: *const ::c_char, - fstype: *const ::c_char, - flags: ::c_ulong, - data: *const ::c_void, - ) -> ::c_int; - pub fn personality(persona: ::c_ulong) -> ::c_int; - pub fn prctl(option: ::c_int, ...) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; - pub fn ppoll( - fds: *mut ::pollfd, - nfds: nfds_t, - timeout: *const ::timespec, - sigmask: *const sigset_t, - ) -> ::c_int; - pub fn pthread_mutexattr_getprotocol( - attr: *const pthread_mutexattr_t, - protocol: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setprotocol( - attr: *mut pthread_mutexattr_t, - protocol: ::c_int, - ) -> ::c_int; - - pub fn pthread_mutex_timedlock( - lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_getpshared( - attr: *const ::pthread_barrierattr_t, - shared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_barrierattr_setpshared( - attr: *mut ::pthread_barrierattr_t, - shared: ::c_int, - ) -> ::c_int; - pub fn pthread_barrier_init( - barrier: *mut pthread_barrier_t, - attr: *const ::pthread_barrierattr_t, - count: ::c_uint, - ) -> ::c_int; - pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int; - pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn clone( - cb: extern "C" fn(*mut ::c_void) -> ::c_int, - child_stack: *mut ::c_void, - flags: ::c_int, - arg: *mut ::c_void, - ... - ) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; - pub fn pthread_attr_getguardsize( - attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t, - ) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; - pub fn pthread_condattr_getpshared( - attr: *const pthread_condattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn sysinfo(info: *mut ::sysinfo) -> ::c_int; - pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; - pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; - pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sendfile( - out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut off_t, - count: ::size_t, - ) -> ::ssize_t; - pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; - pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn getdtablesize() -> ::c_int; - pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - pub fn getpwnam_r( - name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn getpwuid_r( - uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - pub fn getgrouplist( - user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_getpshared( - attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; - pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut ::dl_phdr_info, - size: ::size_t, - data: *mut ::c_void, - ) -> ::c_int, - >, - data: *mut ::c_void, - ) -> ::c_int; - - pub fn setmntent(filename: *const ::c_char, ty: *const ::c_char) -> *mut ::FILE; - pub fn getmntent(stream: *mut ::FILE) -> *mut ::mntent; - pub fn addmntent(stream: *mut ::FILE, mnt: *const ::mntent) -> ::c_int; - pub fn endmntent(streamp: *mut ::FILE) -> ::c_int; - pub fn hasmntopt(mnt: *const ::mntent, opt: *const ::c_char) -> *mut ::c_char; - - pub fn posix_spawn( - pid: *mut ::pid_t, - path: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawnp( - pid: *mut ::pid_t, - file: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_getsigdefault( - attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigdefault( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getsigmask( - attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigmask( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getflags( - attr: *const posix_spawnattr_t, - flags: *mut ::c_short, - ) -> ::c_int; - pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; - pub fn posix_spawnattr_getpgroup( - attr: *const posix_spawnattr_t, - flags: *mut ::pid_t, - ) -> ::c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; - pub fn posix_spawnattr_getschedpolicy( - attr: *const posix_spawnattr_t, - flags: *mut ::c_int, - ) -> ::c_int; - pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; - pub fn posix_spawnattr_getschedparam( - attr: *const posix_spawnattr_t, - param: *mut ::sched_param, - ) -> ::c_int; - pub fn posix_spawnattr_setschedparam( - attr: *mut posix_spawnattr_t, - param: *const ::sched_param, - ) -> ::c_int; - - pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_addopen( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - path: *const ::c_char, - oflag: ::c_int, - mode: ::mode_t, - ) -> ::c_int; - pub fn posix_spawn_file_actions_addclose( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; - pub fn posix_spawn_file_actions_adddup2( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - newfd: ::c_int, - ) -> ::c_int; - pub fn fread_unlocked( - ptr: *mut ::c_void, - size: ::size_t, - nobj: ::size_t, - stream: *mut ::FILE, - ) -> ::size_t; - pub fn inotify_rm_watch(fd: ::c_int, wd: ::c_int) -> ::c_int; - pub fn inotify_init() -> ::c_int; - pub fn inotify_init1(flags: ::c_int) -> ::c_int; - pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int; - pub fn fanotify_init(flags: ::c_uint, event_f_flags: ::c_uint) -> ::c_int; - - pub fn regcomp(preg: *mut ::regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int; - - pub fn regexec( - preg: *const ::regex_t, - input: *const ::c_char, - nmatch: ::size_t, - pmatch: *mut regmatch_t, - eflags: ::c_int, - ) -> ::c_int; - - pub fn regerror( - errcode: ::c_int, - preg: *const ::regex_t, - errbuf: *mut ::c_char, - errbuf_size: ::size_t, - ) -> ::size_t; - - pub fn regfree(preg: *mut ::regex_t); - - pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t; - pub fn iconv( - cd: iconv_t, - inbuf: *mut *mut ::c_char, - inbytesleft: *mut ::size_t, - outbuf: *mut *mut ::c_char, - outbytesleft: *mut ::size_t, - ) -> ::size_t; - pub fn iconv_close(cd: iconv_t) -> ::c_int; - - pub fn gettid() -> ::pid_t; - - pub fn timer_create( - clockid: ::clockid_t, - sevp: *mut ::sigevent, - timerid: *mut ::timer_t, - ) -> ::c_int; - pub fn timer_delete(timerid: ::timer_t) -> ::c_int; - pub fn timer_getoverrun(timerid: ::timer_t) -> ::c_int; - pub fn timer_gettime(timerid: ::timer_t, curr_value: *mut ::itimerspec) -> ::c_int; - pub fn timer_settime( - timerid: ::timer_t, - flags: ::c_int, - new_value: *const ::itimerspec, - old_value: *mut ::itimerspec, - ) -> ::c_int; - - pub fn gethostid() -> ::c_long; - - pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; - pub fn memmem( - haystack: *const ::c_void, - haystacklen: ::size_t, - needle: *const ::c_void, - needlelen: ::size_t, - ) -> *mut ::c_void; - pub fn sched_getcpu() -> ::c_int; - - pub fn pthread_getname_np(thread: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int; - pub fn getopt_long( - argc: ::c_int, - argv: *const *mut c_char, - optstring: *const c_char, - longopts: *const option, - longindex: *mut ::c_int, - ) -> ::c_int; - - pub fn copy_file_range( - fd_in: ::c_int, - off_in: *mut ::off64_t, - fd_out: ::c_int, - off_out: *mut ::off64_t, - len: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; -} - -// LFS64 extensions -// -// * musl has 64-bit versions only so aliases the LFS64 symbols to the standard ones -cfg_if! { - if #[cfg(not(target_env = "musl"))] { - extern "C" { - pub fn fallocate64( - fd: ::c_int, - mode: ::c_int, - offset: ::off64_t, - len: ::off64_t - ) -> ::c_int; - pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; - pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn freopen64( - filename: *const c_char, - mode: *const c_char, - file: *mut ::FILE, - ) -> *mut ::FILE; - pub fn fseeko64(stream: *mut ::FILE, offset: ::off64_t, whence: ::c_int) -> ::c_int; - pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; - pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; - pub fn posix_fallocate64(fd: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int; - pub fn sendfile64( - out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut off64_t, - count: ::size_t, - ) -> ::ssize_t; - pub fn tmpfile64() -> *mut ::FILE; - } - } -} - -cfg_if! { - if #[cfg(target_env = "uclibc")] { - mod uclibc; - pub use self::uclibc::*; - } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { - mod musl; - pub use self::musl::*; - } else if #[cfg(target_env = "gnu")] { - mod gnu; - pub use self::gnu::*; - } -} - -mod arch; -pub use self::arch::*; - -cfg_if! { - if #[cfg(libc_align)] { - #[macro_use] - mod align; - } else { - #[macro_use] - mod no_align; - } -} -expand_align!(); - -cfg_if! { - if #[cfg(libc_non_exhaustive)] { - mod non_exhaustive; - pub use self::non_exhaustive::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/align.rs deleted file mode 100644 index aedbf7a99..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: (i64, i64) - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/mod.rs deleted file mode 100644 index c47fa2c4c..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ /dev/null @@ -1,858 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = u32; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - __st_dev_padding: ::c_int, - __st_ino_truncated: ::c_long, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_int, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::ino_t, - } - - pub struct stat64 { - pub st_dev: ::dev_t, - __st_dev_padding: ::c_int, - __st_ino_truncated: ::c_long, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_int, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::ino_t, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_int, - __unused1: ::c_long, - __unused2: ::c_long - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_int, - pub shm_dtime: ::time_t, - __unused2: ::c_int, - pub shm_ctime: ::time_t, - __unused3: ::c_int, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __unused1: ::c_int, - pub msg_rtime: ::time_t, - __unused2: ::c_int, - pub msg_ctime: ::time_t, - __unused3: ::c_int, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct mcontext_t { - pub trap_no: ::c_ulong, - pub error_code: ::c_ulong, - pub oldmask: ::c_ulong, - pub arm_r0: ::c_ulong, - pub arm_r1: ::c_ulong, - pub arm_r2: ::c_ulong, - pub arm_r3: ::c_ulong, - pub arm_r4: ::c_ulong, - pub arm_r5: ::c_ulong, - pub arm_r6: ::c_ulong, - pub arm_r7: ::c_ulong, - pub arm_r8: ::c_ulong, - pub arm_r9: ::c_ulong, - pub arm_r10: ::c_ulong, - pub arm_fp: ::c_ulong, - pub arm_ip: ::c_ulong, - pub arm_sp: ::c_ulong, - pub arm_lr: ::c_ulong, - pub arm_pc: ::c_ulong, - pub arm_cpsr: ::c_ulong, - pub fault_address: ::c_ulong, - } -} - -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_regspace: [::c_ulonglong; 64], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - } - } - impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_link) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - .finish() - } - } - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - } - } - } -} - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; - -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_LARGEFILE: ::c_int = 0o400000; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; - -pub const SOCK_NONBLOCK: ::c_int = 2048; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_SEQPACKET: ::c_int = 5; - -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const EXTPROC: ::tcflag_t = 0x00010000; - -pub const MAP_HUGETLB: ::c_int = 0x040000; - -pub const F_GETLK: ::c_int = 12; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 13; -pub const F_SETLKW: ::c_int = 14; -pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const VEOF: usize = 4; -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -// Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_pause: ::c_long = 29; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_pivot_root: ::c_long = 218; -pub const SYS_mincore: ::c_long = 219; -pub const SYS_madvise: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_io_setup: ::c_long = 243; -pub const SYS_io_destroy: ::c_long = 244; -pub const SYS_io_getevents: ::c_long = 245; -pub const SYS_io_submit: ::c_long = 246; -pub const SYS_io_cancel: ::c_long = 247; -pub const SYS_exit_group: ::c_long = 248; -pub const SYS_lookup_dcookie: ::c_long = 249; -pub const SYS_epoll_create: ::c_long = 250; -pub const SYS_epoll_ctl: ::c_long = 251; -pub const SYS_epoll_wait: ::c_long = 252; -pub const SYS_remap_file_pages: ::c_long = 253; -pub const SYS_set_tid_address: ::c_long = 256; -pub const SYS_timer_create: ::c_long = 257; -pub const SYS_timer_settime: ::c_long = 258; -pub const SYS_timer_gettime: ::c_long = 259; -pub const SYS_timer_getoverrun: ::c_long = 260; -pub const SYS_timer_delete: ::c_long = 261; -pub const SYS_clock_settime: ::c_long = 262; -pub const SYS_clock_gettime: ::c_long = 263; -pub const SYS_clock_getres: ::c_long = 264; -pub const SYS_clock_nanosleep: ::c_long = 265; -pub const SYS_statfs64: ::c_long = 266; -pub const SYS_fstatfs64: ::c_long = 267; -pub const SYS_tgkill: ::c_long = 268; -pub const SYS_utimes: ::c_long = 269; -pub const SYS_pciconfig_iobase: ::c_long = 271; -pub const SYS_pciconfig_read: ::c_long = 272; -pub const SYS_pciconfig_write: ::c_long = 273; -pub const SYS_mq_open: ::c_long = 274; -pub const SYS_mq_unlink: ::c_long = 275; -pub const SYS_mq_timedsend: ::c_long = 276; -pub const SYS_mq_timedreceive: ::c_long = 277; -pub const SYS_mq_notify: ::c_long = 278; -pub const SYS_mq_getsetattr: ::c_long = 279; -pub const SYS_waitid: ::c_long = 280; -pub const SYS_socket: ::c_long = 281; -pub const SYS_bind: ::c_long = 282; -pub const SYS_connect: ::c_long = 283; -pub const SYS_listen: ::c_long = 284; -pub const SYS_accept: ::c_long = 285; -pub const SYS_getsockname: ::c_long = 286; -pub const SYS_getpeername: ::c_long = 287; -pub const SYS_socketpair: ::c_long = 288; -pub const SYS_send: ::c_long = 289; -pub const SYS_sendto: ::c_long = 290; -pub const SYS_recv: ::c_long = 291; -pub const SYS_recvfrom: ::c_long = 292; -pub const SYS_shutdown: ::c_long = 293; -pub const SYS_setsockopt: ::c_long = 294; -pub const SYS_getsockopt: ::c_long = 295; -pub const SYS_sendmsg: ::c_long = 296; -pub const SYS_recvmsg: ::c_long = 297; -pub const SYS_semop: ::c_long = 298; -pub const SYS_semget: ::c_long = 299; -pub const SYS_semctl: ::c_long = 300; -pub const SYS_msgsnd: ::c_long = 301; -pub const SYS_msgrcv: ::c_long = 302; -pub const SYS_msgget: ::c_long = 303; -pub const SYS_msgctl: ::c_long = 304; -pub const SYS_shmat: ::c_long = 305; -pub const SYS_shmdt: ::c_long = 306; -pub const SYS_shmget: ::c_long = 307; -pub const SYS_shmctl: ::c_long = 308; -pub const SYS_add_key: ::c_long = 309; -pub const SYS_request_key: ::c_long = 310; -pub const SYS_keyctl: ::c_long = 311; -pub const SYS_semtimedop: ::c_long = 312; -pub const SYS_vserver: ::c_long = 313; -pub const SYS_ioprio_set: ::c_long = 314; -pub const SYS_ioprio_get: ::c_long = 315; -pub const SYS_inotify_init: ::c_long = 316; -pub const SYS_inotify_add_watch: ::c_long = 317; -pub const SYS_inotify_rm_watch: ::c_long = 318; -pub const SYS_mbind: ::c_long = 319; -pub const SYS_get_mempolicy: ::c_long = 320; -pub const SYS_set_mempolicy: ::c_long = 321; -pub const SYS_openat: ::c_long = 322; -pub const SYS_mkdirat: ::c_long = 323; -pub const SYS_mknodat: ::c_long = 324; -pub const SYS_fchownat: ::c_long = 325; -pub const SYS_futimesat: ::c_long = 326; -pub const SYS_fstatat64: ::c_long = 327; -pub const SYS_unlinkat: ::c_long = 328; -pub const SYS_renameat: ::c_long = 329; -pub const SYS_linkat: ::c_long = 330; -pub const SYS_symlinkat: ::c_long = 331; -pub const SYS_readlinkat: ::c_long = 332; -pub const SYS_fchmodat: ::c_long = 333; -pub const SYS_faccessat: ::c_long = 334; -pub const SYS_pselect6: ::c_long = 335; -pub const SYS_ppoll: ::c_long = 336; -pub const SYS_unshare: ::c_long = 337; -pub const SYS_set_robust_list: ::c_long = 338; -pub const SYS_get_robust_list: ::c_long = 339; -pub const SYS_splice: ::c_long = 340; -pub const SYS_tee: ::c_long = 342; -pub const SYS_vmsplice: ::c_long = 343; -pub const SYS_move_pages: ::c_long = 344; -pub const SYS_getcpu: ::c_long = 345; -pub const SYS_epoll_pwait: ::c_long = 346; -pub const SYS_kexec_load: ::c_long = 347; -pub const SYS_utimensat: ::c_long = 348; -pub const SYS_signalfd: ::c_long = 349; -pub const SYS_timerfd_create: ::c_long = 350; -pub const SYS_eventfd: ::c_long = 351; -pub const SYS_fallocate: ::c_long = 352; -pub const SYS_timerfd_settime: ::c_long = 353; -pub const SYS_timerfd_gettime: ::c_long = 354; -pub const SYS_signalfd4: ::c_long = 355; -pub const SYS_eventfd2: ::c_long = 356; -pub const SYS_epoll_create1: ::c_long = 357; -pub const SYS_dup3: ::c_long = 358; -pub const SYS_pipe2: ::c_long = 359; -pub const SYS_inotify_init1: ::c_long = 360; -pub const SYS_preadv: ::c_long = 361; -pub const SYS_pwritev: ::c_long = 362; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 363; -pub const SYS_perf_event_open: ::c_long = 364; -pub const SYS_recvmmsg: ::c_long = 365; -pub const SYS_accept4: ::c_long = 366; -pub const SYS_fanotify_init: ::c_long = 367; -pub const SYS_fanotify_mark: ::c_long = 368; -pub const SYS_prlimit64: ::c_long = 369; -pub const SYS_name_to_handle_at: ::c_long = 370; -pub const SYS_open_by_handle_at: ::c_long = 371; -pub const SYS_clock_adjtime: ::c_long = 372; -pub const SYS_syncfs: ::c_long = 373; -pub const SYS_sendmmsg: ::c_long = 374; -pub const SYS_setns: ::c_long = 375; -pub const SYS_process_vm_readv: ::c_long = 376; -pub const SYS_process_vm_writev: ::c_long = 377; -pub const SYS_kcmp: ::c_long = 378; -pub const SYS_finit_module: ::c_long = 379; -pub const SYS_sched_setattr: ::c_long = 380; -pub const SYS_sched_getattr: ::c_long = 381; -pub const SYS_renameat2: ::c_long = 382; -pub const SYS_seccomp: ::c_long = 383; -pub const SYS_getrandom: ::c_long = 384; -pub const SYS_memfd_create: ::c_long = 385; -pub const SYS_bpf: ::c_long = 386; -pub const SYS_execveat: ::c_long = 387; -pub const SYS_userfaultfd: ::c_long = 388; -pub const SYS_membarrier: ::c_long = 389; -pub const SYS_mlock2: ::c_long = 390; -pub const SYS_copy_file_range: ::c_long = 391; -pub const SYS_preadv2: ::c_long = 392; -pub const SYS_pwritev2: ::c_long = 393; -pub const SYS_pkey_mprotect: ::c_long = 394; -pub const SYS_pkey_alloc: ::c_long = 395; -pub const SYS_pkey_free: ::c_long = 396; -pub const SYS_statx: ::c_long = 397; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -extern "C" { - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/hexagon.rs deleted file mode 100644 index f83d208d5..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ /dev/null @@ -1,673 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = u32; -pub type stat64 = ::stat; - -s! { - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::c_ulonglong, - pub st_mode: ::c_uint, - pub st_nlink: ::c_uint, - pub st_uid: ::c_uint, - pub st_gid: ::c_uint, - pub st_rdev: ::c_ulonglong, - __st_rdev_padding: ::c_ulong, - pub st_size: ::c_longlong, - pub st_blksize: ::blksize_t, - __st_blksize_padding: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - - __unused: [::c_int;2], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_ushort, - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_int, - pub shm_dtime: ::time_t, - __unused2: ::c_int, - pub shm_ctime: ::time_t, - __unused3: ::c_int, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __unused1: ::c_int, - pub msg_rtime: ::time_t, - __unused2: ::c_int, - pub msg_ctime: ::time_t, - __unused3: ::c_int, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } -} - -pub const AF_FILE: ::c_int = 1; -pub const AF_KCM: ::c_int = 41; -pub const AF_MAX: ::c_int = 43; -pub const AF_QIPCRTR: ::c_int = 42; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EALREADY: ::c_int = 114; -pub const EBADE: ::c_int = 52; -pub const EBADMSG: ::c_int = 74; -pub const EBADR: ::c_int = 53; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const ECANCELED: ::c_int = 125; -pub const ECHRNG: ::c_int = 44; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNREFUSED: ::c_int = 111; -pub const ECONNRESET: ::c_int = 104; -pub const EDEADLK: ::c_int = 35; -pub const EDEADLOCK: ::c_int = 35; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EDQUOT: ::c_int = 122; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EHWPOISON: ::c_int = 133; -pub const EIDRM: ::c_int = 43; -pub const EILSEQ: ::c_int = 84; -pub const EINPROGRESS: ::c_int = 115; -pub const EISCONN: ::c_int = 106; -pub const EISNAM: ::c_int = 120; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREJECTED: ::c_int = 129; -pub const EKEYREVOKED: ::c_int = 128; -pub const EL2HLT: ::c_int = 51; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBEXEC: ::c_int = 83; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBSCN: ::c_int = 81; -pub const ELNRNG: ::c_int = 48; -pub const ELOOP: ::c_int = 40; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const EMSGSIZE: ::c_int = 90; -pub const EMULTIHOP: ::c_int = 72; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENAVAIL: ::c_int = 119; -pub const ENETDOWN: ::c_int = 100; -pub const ENETRESET: ::c_int = 102; -pub const ENETUNREACH: ::c_int = 101; -pub const ENOANO: ::c_int = 55; -pub const ENOBUFS: ::c_int = 105; -pub const ENOCSI: ::c_int = 50; -pub const ENOKEY: ::c_int = 126; -pub const ENOLCK: ::c_int = 37; -pub const ENOMEDIUM: ::c_int = 123; -pub const ENOMSG: ::c_int = 42; -pub const ENOPROTOOPT: ::c_int = 92; -pub const ENOSYS: ::c_int = 38; -pub const ENOTCONN: ::c_int = 107; -pub const ENOTEMPTY: ::c_int = 39; -pub const ENOTNAM: ::c_int = 118; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ENOTSOCK: ::c_int = 88; -pub const ENOTSUP: ::c_int = 95; -pub const ENOTUNIQ: ::c_int = 76; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EOVERFLOW: ::c_int = 75; -pub const EOWNERDEAD: ::c_int = 130; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EREMCHG: ::c_int = 78; -pub const ERESTART: ::c_int = 85; -pub const ERFKILL: ::c_int = 132; -pub const ESHUTDOWN: ::c_int = 108; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const ESTALE: ::c_int = 116; -pub const ESTRPIPE: ::c_int = 86; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const EUCLEAN: ::c_int = 117; -pub const EUNATCH: ::c_int = 49; -pub const EUSERS: ::c_int = 87; -pub const EXFULL: ::c_int = 54; -pub const EXTPROC: ::c_int = 65536; -pub const F_EXLCK: ::c_int = 4; -pub const F_GETLK: ::c_int = 12; -pub const F_GETOWN: ::c_int = 9; -pub const F_GETOWNER_UIDS: ::c_int = 17; -pub const F_GETOWN_EX: ::c_int = 16; -pub const F_GETSIG: ::c_int = 11; -pub const F_LINUX_SPECIFIC_BASE: ::c_int = 1024; -pub const FLUSHO: ::c_int = 4096; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; -pub const F_OWNER_PGRP: ::c_int = 2; -pub const F_OWNER_PID: ::c_int = 1; -pub const F_OWNER_TID: ::c_int = 0; -pub const F_SETLK: ::c_int = 13; -pub const F_SETLKW: ::c_int = 14; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETOWN_EX: ::c_int = 15; -pub const F_SETSIG: ::c_int = 10; -pub const F_SHLCK: ::c_int = 8; -pub const IEXTEN: ::c_int = 32768; -pub const MAP_ANON: ::c_int = 32; -pub const MAP_DENYWRITE: ::c_int = 2048; -pub const MAP_EXECUTABLE: ::c_int = 4096; -pub const MAP_GROWSDOWN: ::c_int = 256; -pub const MAP_HUGETLB: ::c_int = 262144; -pub const MAP_LOCKED: ::c_int = 8192; -pub const MAP_NONBLOCK: ::c_int = 65536; -pub const MAP_NORESERVE: ::c_int = 16384; -pub const MAP_POPULATE: ::c_int = 32768; -pub const MAP_STACK: ::c_int = 131072; -pub const MAP_UNINITIALIZED: ::c_int = 0; -pub const O_APPEND: ::c_int = 1024; -pub const O_ASYNC: ::c_int = 8192; -pub const O_CREAT: ::c_int = 64; -pub const O_DIRECT: ::c_int = 16384; -pub const O_DIRECTORY: ::c_int = 65536; -pub const O_DSYNC: ::c_int = 4096; -pub const O_EXCL: ::c_int = 128; -pub const O_LARGEFILE: ::c_int = 32768; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NOFOLLOW: ::c_int = 131072; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const PF_FILE: ::c_int = 1; -pub const PF_KCM: ::c_int = 41; -pub const PF_MAX: ::c_int = 43; -pub const PF_QIPCRTR: ::c_int = 42; -#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; -pub const SIGBUS: ::c_int = 7; -pub const SIGCHLD: ::c_int = 17; -pub const SIGCONT: ::c_int = 18; -pub const SIGIO: ::c_int = 29; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPROF: ::c_int = 27; -pub const SIGPWR: ::c_int = 30; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const SIGSTOP: ::c_int = 19; -pub const SIGSYS: ::c_int = 31; -pub const SIGTSTP: ::c_int = 20; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGURG: ::c_int = 23; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGWINCH: ::c_int = 28; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIG_SETMASK: ::c_int = 2; // FIXME check these -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_NONBLOCK: ::c_int = 2048; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOL_CAIF: ::c_int = 278; -pub const SOL_IUCV: ::c_int = 277; -pub const SOL_KCM: ::c_int = 281; -pub const SOL_NFC: ::c_int = 280; -pub const SOL_PNPIPE: ::c_int = 275; -pub const SOL_PPPOL2TP: ::c_int = 273; -pub const SOL_RDS: ::c_int = 276; -pub const SOL_RXRPC: ::c_int = 272; - -pub const SYS3264_fadvise64: ::c_int = 223; -pub const SYS3264_fcntl: ::c_int = 25; -pub const SYS3264_fstatat: ::c_int = 79; -pub const SYS3264_fstat: ::c_int = 80; -pub const SYS3264_fstatfs: ::c_int = 44; -pub const SYS3264_ftruncate: ::c_int = 46; -pub const SYS3264_lseek: ::c_int = 62; -pub const SYS3264_lstat: ::c_int = 1039; -pub const SYS3264_mmap: ::c_int = 222; -pub const SYS3264_sendfile: ::c_int = 71; -pub const SYS3264_stat: ::c_int = 1038; -pub const SYS3264_statfs: ::c_int = 43; -pub const SYS3264_truncate: ::c_int = 45; -pub const SYS_accept4: ::c_int = 242; -pub const SYS_accept: ::c_int = 202; -pub const SYS_access: ::c_int = 1033; -pub const SYS_acct: ::c_int = 89; -pub const SYS_add_key: ::c_int = 217; -pub const SYS_adjtimex: ::c_int = 171; -pub const SYS_alarm: ::c_int = 1059; -pub const SYS_arch_specific_syscall: ::c_int = 244; -pub const SYS_bdflush: ::c_int = 1075; -pub const SYS_bind: ::c_int = 200; -pub const SYS_bpf: ::c_int = 280; -pub const SYS_brk: ::c_int = 214; -pub const SYS_capget: ::c_int = 90; -pub const SYS_capset: ::c_int = 91; -pub const SYS_chdir: ::c_int = 49; -pub const SYS_chmod: ::c_int = 1028; -pub const SYS_chown: ::c_int = 1029; -pub const SYS_chroot: ::c_int = 51; -pub const SYS_clock_adjtime: ::c_int = 266; -pub const SYS_clock_getres: ::c_int = 114; -pub const SYS_clock_gettime: ::c_int = 113; -pub const SYS_clock_nanosleep: ::c_int = 115; -pub const SYS_clock_settime: ::c_int = 112; -pub const SYS_clone: ::c_int = 220; -pub const SYS_close: ::c_int = 57; -pub const SYS_connect: ::c_int = 203; -pub const SYS_copy_file_range: ::c_int = -1; // FIXME -pub const SYS_creat: ::c_int = 1064; -pub const SYS_delete_module: ::c_int = 106; -pub const SYS_dup2: ::c_int = 1041; -pub const SYS_dup3: ::c_int = 24; -pub const SYS_dup: ::c_int = 23; -pub const SYS_epoll_create1: ::c_int = 20; -pub const SYS_epoll_create: ::c_int = 1042; -pub const SYS_epoll_ctl: ::c_int = 21; -pub const SYS_epoll_pwait: ::c_int = 22; -pub const SYS_epoll_wait: ::c_int = 1069; -pub const SYS_eventfd2: ::c_int = 19; -pub const SYS_eventfd: ::c_int = 1044; -pub const SYS_execveat: ::c_int = 281; -pub const SYS_execve: ::c_int = 221; -pub const SYS_exit: ::c_int = 93; -pub const SYS_exit_group: ::c_int = 94; -pub const SYS_faccessat: ::c_int = 48; -pub const SYS_fadvise64_64: ::c_int = 223; -pub const SYS_fallocate: ::c_int = 47; -pub const SYS_fanotify_init: ::c_int = 262; -pub const SYS_fanotify_mark: ::c_int = 263; -pub const SYS_fchdir: ::c_int = 50; -pub const SYS_fchmodat: ::c_int = 53; -pub const SYS_fchmod: ::c_int = 52; -pub const SYS_fchownat: ::c_int = 54; -pub const SYS_fchown: ::c_int = 55; -pub const SYS_fcntl64: ::c_int = 25; -pub const SYS_fcntl: ::c_int = 25; -pub const SYS_fdatasync: ::c_int = 83; -pub const SYS_fgetxattr: ::c_int = 10; -pub const SYS_finit_module: ::c_int = 273; -pub const SYS_flistxattr: ::c_int = 13; -pub const SYS_flock: ::c_int = 32; -pub const SYS_fork: ::c_int = 1079; -pub const SYS_fremovexattr: ::c_int = 16; -pub const SYS_fsetxattr: ::c_int = 7; -pub const SYS_fstat64: ::c_int = 80; -pub const SYS_fstatat64: ::c_int = 79; -pub const SYS_fstatfs64: ::c_int = 44; -pub const SYS_fstatfs: ::c_int = 44; -pub const SYS_fsync: ::c_int = 82; -pub const SYS_ftruncate64: ::c_int = 46; -pub const SYS_ftruncate: ::c_int = 46; -pub const SYS_futex: ::c_int = 98; -pub const SYS_futimesat: ::c_int = 1066; -pub const SYS_getcpu: ::c_int = 168; -pub const SYS_getcwd: ::c_int = 17; -pub const SYS_getdents64: ::c_int = 61; -pub const SYS_getdents: ::c_int = 1065; -pub const SYS_getegid: ::c_int = 177; -pub const SYS_geteuid: ::c_int = 175; -pub const SYS_getgid: ::c_int = 176; -pub const SYS_getgroups: ::c_int = 158; -pub const SYS_getitimer: ::c_int = 102; -pub const SYS_get_mempolicy: ::c_int = 236; -pub const SYS_getpeername: ::c_int = 205; -pub const SYS_getpgid: ::c_int = 155; -pub const SYS_getpgrp: ::c_int = 1060; -pub const SYS_getpid: ::c_int = 172; -pub const SYS_getppid: ::c_int = 173; -pub const SYS_getpriority: ::c_int = 141; -pub const SYS_getrandom: ::c_int = 278; -pub const SYS_getresgid: ::c_int = 150; -pub const SYS_getresuid: ::c_int = 148; -pub const SYS_getrlimit: ::c_int = 163; -pub const SYS_get_robust_list: ::c_int = 100; -pub const SYS_getrusage: ::c_int = 165; -pub const SYS_getsid: ::c_int = 156; -pub const SYS_getsockname: ::c_int = 204; -pub const SYS_getsockopt: ::c_int = 209; -pub const SYS_gettid: ::c_int = 178; -pub const SYS_gettimeofday: ::c_int = 169; -pub const SYS_getuid: ::c_int = 174; -pub const SYS_getxattr: ::c_int = 8; -pub const SYS_init_module: ::c_int = 105; -pub const SYS_inotify_add_watch: ::c_int = 27; -pub const SYS_inotify_init1: ::c_int = 26; -pub const SYS_inotify_init: ::c_int = 1043; -pub const SYS_inotify_rm_watch: ::c_int = 28; -pub const SYS_io_cancel: ::c_int = 3; -pub const SYS_ioctl: ::c_int = 29; -pub const SYS_io_destroy: ::c_int = 1; -pub const SYS_io_getevents: ::c_int = 4; -pub const SYS_ioprio_get: ::c_int = 31; -pub const SYS_ioprio_set: ::c_int = 30; -pub const SYS_io_setup: ::c_int = 0; -pub const SYS_io_submit: ::c_int = 2; -pub const SYS_kcmp: ::c_int = 272; -pub const SYS_kexec_load: ::c_int = 104; -pub const SYS_keyctl: ::c_int = 219; -pub const SYS_kill: ::c_int = 129; -pub const SYS_lchown: ::c_int = 1032; -pub const SYS_lgetxattr: ::c_int = 9; -pub const SYS_linkat: ::c_int = 37; -pub const SYS_link: ::c_int = 1025; -pub const SYS_listen: ::c_int = 201; -pub const SYS_listxattr: ::c_int = 11; -pub const SYS_llistxattr: ::c_int = 12; -pub const SYS__llseek: ::c_int = 62; -pub const SYS_lookup_dcookie: ::c_int = 18; -pub const SYS_lremovexattr: ::c_int = 15; -pub const SYS_lseek: ::c_int = 62; -pub const SYS_lsetxattr: ::c_int = 6; -pub const SYS_lstat64: ::c_int = 1039; -pub const SYS_lstat: ::c_int = 1039; -pub const SYS_madvise: ::c_int = 233; -pub const SYS_mbind: ::c_int = 235; -pub const SYS_memfd_create: ::c_int = 279; -pub const SYS_migrate_pages: ::c_int = 238; -pub const SYS_mincore: ::c_int = 232; -pub const SYS_mkdirat: ::c_int = 34; -pub const SYS_mkdir: ::c_int = 1030; -pub const SYS_mknodat: ::c_int = 33; -pub const SYS_mknod: ::c_int = 1027; -pub const SYS_mlockall: ::c_int = 230; -pub const SYS_mlock: ::c_int = 228; -pub const SYS_mmap2: ::c_int = 222; -pub const SYS_mount: ::c_int = 40; -pub const SYS_move_pages: ::c_int = 239; -pub const SYS_mprotect: ::c_int = 226; -pub const SYS_mq_getsetattr: ::c_int = 185; -pub const SYS_mq_notify: ::c_int = 184; -pub const SYS_mq_open: ::c_int = 180; -pub const SYS_mq_timedreceive: ::c_int = 183; -pub const SYS_mq_timedsend: ::c_int = 182; -pub const SYS_mq_unlink: ::c_int = 181; -pub const SYS_mremap: ::c_int = 216; -pub const SYS_msgctl: ::c_int = 187; -pub const SYS_msgget: ::c_int = 186; -pub const SYS_msgrcv: ::c_int = 188; -pub const SYS_msgsnd: ::c_int = 189; -pub const SYS_msync: ::c_int = 227; -pub const SYS_munlockall: ::c_int = 231; -pub const SYS_munlock: ::c_int = 229; -pub const SYS_munmap: ::c_int = 215; -pub const SYS_name_to_handle_at: ::c_int = 264; -pub const SYS_nanosleep: ::c_int = 101; -pub const SYS_newfstatat: ::c_int = 79; -pub const SYS_nfsservctl: ::c_int = 42; -pub const SYS_oldwait4: ::c_int = 1072; -pub const SYS_openat: ::c_int = 56; -pub const SYS_open_by_handle_at: ::c_int = 265; -pub const SYS_open: ::c_int = 1024; -pub const SYS_pause: ::c_int = 1061; -pub const SYS_perf_event_open: ::c_int = 241; -pub const SYS_personality: ::c_int = 92; -pub const SYS_pipe2: ::c_int = 59; -pub const SYS_pipe: ::c_int = 1040; -pub const SYS_pivot_root: ::c_int = 41; -pub const SYS_poll: ::c_int = 1068; -pub const SYS_ppoll: ::c_int = 73; -pub const SYS_prctl: ::c_int = 167; -pub const SYS_pread64: ::c_int = 67; -pub const SYS_preadv: ::c_int = 69; -pub const SYS_prlimit64: ::c_int = 261; -pub const SYS_process_vm_readv: ::c_int = 270; -pub const SYS_process_vm_writev: ::c_int = 271; -pub const SYS_pselect6: ::c_int = 72; -pub const SYS_ptrace: ::c_int = 117; -pub const SYS_pwrite64: ::c_int = 68; -pub const SYS_pwritev: ::c_int = 70; -pub const SYS_quotactl: ::c_int = 60; -pub const SYS_readahead: ::c_int = 213; -pub const SYS_read: ::c_int = 63; -pub const SYS_readlinkat: ::c_int = 78; -pub const SYS_readlink: ::c_int = 1035; -pub const SYS_readv: ::c_int = 65; -pub const SYS_reboot: ::c_int = 142; -pub const SYS_recv: ::c_int = 1073; -pub const SYS_recvfrom: ::c_int = 207; -pub const SYS_recvmmsg: ::c_int = 243; -pub const SYS_recvmsg: ::c_int = 212; -pub const SYS_remap_file_pages: ::c_int = 234; -pub const SYS_removexattr: ::c_int = 14; -pub const SYS_renameat2: ::c_int = 276; -pub const SYS_renameat: ::c_int = 38; -pub const SYS_rename: ::c_int = 1034; -pub const SYS_request_key: ::c_int = 218; -pub const SYS_restart_syscall: ::c_int = 128; -pub const SYS_rmdir: ::c_int = 1031; -pub const SYS_rt_sigaction: ::c_int = 134; -pub const SYS_rt_sigpending: ::c_int = 136; -pub const SYS_rt_sigprocmask: ::c_int = 135; -pub const SYS_rt_sigqueueinfo: ::c_int = 138; -pub const SYS_rt_sigreturn: ::c_int = 139; -pub const SYS_rt_sigsuspend: ::c_int = 133; -pub const SYS_rt_sigtimedwait: ::c_int = 137; -pub const SYS_rt_tgsigqueueinfo: ::c_int = 240; -pub const SYS_sched_getaffinity: ::c_int = 123; -pub const SYS_sched_getattr: ::c_int = 275; -pub const SYS_sched_getparam: ::c_int = 121; -pub const SYS_sched_get_priority_max: ::c_int = 125; -pub const SYS_sched_get_priority_min: ::c_int = 126; -pub const SYS_sched_getscheduler: ::c_int = 120; -pub const SYS_sched_rr_get_interval: ::c_int = 127; -pub const SYS_sched_setaffinity: ::c_int = 122; -pub const SYS_sched_setattr: ::c_int = 274; -pub const SYS_sched_setparam: ::c_int = 118; -pub const SYS_sched_setscheduler: ::c_int = 119; -pub const SYS_sched_yield: ::c_int = 124; -pub const SYS_seccomp: ::c_int = 277; -pub const SYS_select: ::c_int = 1067; -pub const SYS_semctl: ::c_int = 191; -pub const SYS_semget: ::c_int = 190; -pub const SYS_semop: ::c_int = 193; -pub const SYS_semtimedop: ::c_int = 192; -pub const SYS_send: ::c_int = 1074; -pub const SYS_sendfile64: ::c_int = 71; -pub const SYS_sendfile: ::c_int = 71; -pub const SYS_sendmmsg: ::c_int = 269; -pub const SYS_sendmsg: ::c_int = 211; -pub const SYS_sendto: ::c_int = 206; -pub const SYS_setdomainname: ::c_int = 162; -pub const SYS_setfsgid: ::c_int = 152; -pub const SYS_setfsuid: ::c_int = 151; -pub const SYS_setgid: ::c_int = 144; -pub const SYS_setgroups: ::c_int = 159; -pub const SYS_sethostname: ::c_int = 161; -pub const SYS_setitimer: ::c_int = 103; -pub const SYS_set_mempolicy: ::c_int = 237; -pub const SYS_setns: ::c_int = 268; -pub const SYS_setpgid: ::c_int = 154; -pub const SYS_setpriority: ::c_int = 140; -pub const SYS_setregid: ::c_int = 143; -pub const SYS_setresgid: ::c_int = 149; -pub const SYS_setresuid: ::c_int = 147; -pub const SYS_setreuid: ::c_int = 145; -pub const SYS_setrlimit: ::c_int = 164; -pub const SYS_set_robust_list: ::c_int = 99; -pub const SYS_setsid: ::c_int = 157; -pub const SYS_setsockopt: ::c_int = 208; -pub const SYS_set_tid_address: ::c_int = 96; -pub const SYS_settimeofday: ::c_int = 170; -pub const SYS_setuid: ::c_int = 146; -pub const SYS_setxattr: ::c_int = 5; -pub const SYS_shmat: ::c_int = 196; -pub const SYS_shmctl: ::c_int = 195; -pub const SYS_shmdt: ::c_int = 197; -pub const SYS_shmget: ::c_int = 194; -pub const SYS_shutdown: ::c_int = 210; -pub const SYS_sigaltstack: ::c_int = 132; -pub const SYS_signalfd4: ::c_int = 74; -pub const SYS_signalfd: ::c_int = 1045; -pub const SYS_socket: ::c_int = 198; -pub const SYS_socketpair: ::c_int = 199; -pub const SYS_splice: ::c_int = 76; -pub const SYS_stat64: ::c_int = 1038; -pub const SYS_stat: ::c_int = 1038; -pub const SYS_statfs64: ::c_int = 43; -pub const SYS_swapoff: ::c_int = 225; -pub const SYS_swapon: ::c_int = 224; -pub const SYS_symlinkat: ::c_int = 36; -pub const SYS_symlink: ::c_int = 1036; -pub const SYS_sync: ::c_int = 81; -pub const SYS_sync_file_range2: ::c_int = 84; -pub const SYS_sync_file_range: ::c_int = 84; -pub const SYS_syncfs: ::c_int = 267; -pub const SYS_syscalls: ::c_int = 1080; -pub const SYS__sysctl: ::c_int = 1078; -pub const SYS_sysinfo: ::c_int = 179; -pub const SYS_syslog: ::c_int = 116; -pub const SYS_tee: ::c_int = 77; -pub const SYS_tgkill: ::c_int = 131; -pub const SYS_time: ::c_int = 1062; -pub const SYS_timer_create: ::c_int = 107; -pub const SYS_timer_delete: ::c_int = 111; -pub const SYS_timerfd_create: ::c_int = 85; -pub const SYS_timerfd_gettime: ::c_int = 87; -pub const SYS_timerfd_settime: ::c_int = 86; -pub const SYS_timer_getoverrun: ::c_int = 109; -pub const SYS_timer_gettime: ::c_int = 108; -pub const SYS_timer_settime: ::c_int = 110; -pub const SYS_times: ::c_int = 153; -pub const SYS_tkill: ::c_int = 130; -pub const SYS_truncate64: ::c_int = 45; -pub const SYS_truncate: ::c_int = 45; -pub const SYS_umask: ::c_int = 166; -pub const SYS_umount2: ::c_int = 39; -pub const SYS_umount: ::c_int = 1076; -pub const SYS_uname: ::c_int = 160; -pub const SYS_unlinkat: ::c_int = 35; -pub const SYS_unlink: ::c_int = 1026; -pub const SYS_unshare: ::c_int = 97; -pub const SYS_uselib: ::c_int = 1077; -pub const SYS_ustat: ::c_int = 1070; -pub const SYS_utime: ::c_int = 1063; -pub const SYS_utimensat: ::c_int = 88; -pub const SYS_utimes: ::c_int = 1037; -pub const SYS_vfork: ::c_int = 1071; -pub const SYS_vhangup: ::c_int = 58; -pub const SYS_vmsplice: ::c_int = 75; -pub const SYS_wait4: ::c_int = 260; -pub const SYS_waitid: ::c_int = 95; -pub const SYS_write: ::c_int = 64; -pub const SYS_writev: ::c_int = 66; -pub const SYS_statx: ::c_int = 291; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const TIOCM_LOOP: ::c_int = 32768; -pub const TIOCM_OUT1: ::c_int = 8192; -pub const TIOCM_OUT2: ::c_int = 16384; -pub const TIOCSER_TEMT: ::c_int = 1; -pub const TOSTOP: ::c_int = 256; -pub const VEOF: ::c_int = 4; -pub const VEOL2: ::c_int = 16; -pub const VEOL: ::c_int = 11; -pub const VMIN: ::c_int = 6; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/align.rs deleted file mode 100644 index 8c228ebab..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [f32; 4] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/mod.rs deleted file mode 100644 index d09b8278e..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ /dev/null @@ -1,793 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = ::c_int; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - __st_padding1: [::c_long; 2], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_padding2: [::c_long; 2], - pub st_size: ::off_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - __st_padding3: ::c_long, - pub st_blocks: ::blkcnt_t, - __st_padding4: [::c_long; 14], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - __st_padding1: [::c_long; 2], - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_padding2: [::c_long; 2], - pub st_size: ::off_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - __st_padding3: ::c_long, - pub st_blocks: ::blkcnt64_t, - __st_padding4: [::c_long; 14], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - } - - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_int, - __unused1: ::c_long, - __unused2: ::c_long - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - #[cfg(target_endian = "big")] - __unused1: ::c_int, - pub msg_stime: ::time_t, - #[cfg(target_endian = "little")] - __unused1: ::c_int, - #[cfg(target_endian = "big")] - __unused2: ::c_int, - pub msg_rtime: ::time_t, - #[cfg(target_endian = "little")] - __unused2: ::c_int, - #[cfg(target_endian = "big")] - __unused3: ::c_int, - pub msg_ctime: ::time_t, - #[cfg(target_endian = "little")] - __unused3: ::c_int, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 5], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 5], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - #[cfg(target_endian = "little")] - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - #[cfg(target_endian = "big")] - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } -} - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; - -pub const O_DIRECT: ::c_int = 0o100000; -pub const O_DIRECTORY: ::c_int = 0o200000; -pub const O_NOFOLLOW: ::c_int = 0o400000; -pub const O_ASYNC: ::c_int = 0o10000; -pub const O_LARGEFILE: ::c_int = 0x2000; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const O_APPEND: ::c_int = 0o010; -pub const O_CREAT: ::c_int = 0o400; -pub const O_EXCL: ::c_int = 0o2000; -pub const O_NOCTTY: ::c_int = 0o4000; -pub const O_NONBLOCK: ::c_int = 0o200; -pub const O_SYNC: ::c_int = 0o40020; -pub const O_RSYNC: ::c_int = 0o40020; -pub const O_DSYNC: ::c_int = 0o020; - -pub const SOCK_NONBLOCK: ::c_int = 0o200; - -pub const MAP_ANON: ::c_int = 0x800; -pub const MAP_GROWSDOWN: ::c_int = 0x1000; -pub const MAP_DENYWRITE: ::c_int = 0x2000; -pub const MAP_EXECUTABLE: ::c_int = 0x4000; -pub const MAP_LOCKED: ::c_int = 0x8000; -pub const MAP_NORESERVE: ::c_int = 0x0400; -pub const MAP_POPULATE: ::c_int = 0x10000; -pub const MAP_NONBLOCK: ::c_int = 0x20000; -pub const MAP_STACK: ::c_int = 0x40000; -pub const MAP_HUGETLB: ::c_int = 0x80000; - -pub const EDEADLK: ::c_int = 45; -pub const ENAMETOOLONG: ::c_int = 78; -pub const ENOLCK: ::c_int = 46; -pub const ENOSYS: ::c_int = 89; -pub const ENOTEMPTY: ::c_int = 93; -pub const ELOOP: ::c_int = 90; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EDEADLOCK: ::c_int = 56; -pub const EMULTIHOP: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EBADMSG: ::c_int = 77; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const EUSERS: ::c_int = 94; -pub const ENOTSOCK: ::c_int = 95; -pub const EDESTADDRREQ: ::c_int = 96; -pub const EMSGSIZE: ::c_int = 97; -pub const EPROTOTYPE: ::c_int = 98; -pub const ENOPROTOOPT: ::c_int = 99; -pub const EPROTONOSUPPORT: ::c_int = 120; -pub const ESOCKTNOSUPPORT: ::c_int = 121; -pub const EOPNOTSUPP: ::c_int = 122; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 123; -pub const EAFNOSUPPORT: ::c_int = 124; -pub const EADDRINUSE: ::c_int = 125; -pub const EADDRNOTAVAIL: ::c_int = 126; -pub const ENETDOWN: ::c_int = 127; -pub const ENETUNREACH: ::c_int = 128; -pub const ENETRESET: ::c_int = 129; -pub const ECONNABORTED: ::c_int = 130; -pub const ECONNRESET: ::c_int = 131; -pub const ENOBUFS: ::c_int = 132; -pub const EISCONN: ::c_int = 133; -pub const ENOTCONN: ::c_int = 134; -pub const ESHUTDOWN: ::c_int = 143; -pub const ETOOMANYREFS: ::c_int = 144; -pub const ETIMEDOUT: ::c_int = 145; -pub const ECONNREFUSED: ::c_int = 146; -pub const EHOSTDOWN: ::c_int = 147; -pub const EHOSTUNREACH: ::c_int = 148; -pub const EALREADY: ::c_int = 149; -pub const EINPROGRESS: ::c_int = 150; -pub const ESTALE: ::c_int = 151; -pub const EUCLEAN: ::c_int = 135; -pub const ENOTNAM: ::c_int = 137; -pub const ENAVAIL: ::c_int = 138; -pub const EISNAM: ::c_int = 139; -pub const EREMOTEIO: ::c_int = 140; -pub const EDQUOT: ::c_int = 1133; -pub const ENOMEDIUM: ::c_int = 159; -pub const EMEDIUMTYPE: ::c_int = 160; -pub const ECANCELED: ::c_int = 158; -pub const ENOKEY: ::c_int = 161; -pub const EKEYEXPIRED: ::c_int = 162; -pub const EKEYREVOKED: ::c_int = 163; -pub const EKEYREJECTED: ::c_int = 164; -pub const EOWNERDEAD: ::c_int = 165; -pub const ENOTRECOVERABLE: ::c_int = 166; -pub const EHWPOISON: ::c_int = 168; -pub const ERFKILL: ::c_int = 167; - -pub const SOCK_STREAM: ::c_int = 2; -pub const SOCK_DGRAM: ::c_int = 1; -pub const SOCK_SEQPACKET: ::c_int = 5; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 8; -pub const SA_NOCLDWAIT: ::c_int = 0x10000; - -pub const SIGCHLD: ::c_int = 18; -pub const SIGBUS: ::c_int = 10; -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGWINCH: ::c_int = 20; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGCONT: ::c_int = 25; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGURG: ::c_int = 21; -pub const SIGIO: ::c_int = 22; -pub const SIGSYS: ::c_int = 12; -pub const SIGSTKFLT: ::c_int = 7; -pub const SIGPOLL: ::c_int = ::SIGIO; -pub const SIGPWR: ::c_int = 19; -pub const SIG_SETMASK: ::c_int = 3; -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; - -pub const EXTPROC: ::tcflag_t = 0o200000; - -pub const F_GETLK: ::c_int = 33; -pub const F_GETOWN: ::c_int = 23; -pub const F_SETLK: ::c_int = 34; -pub const F_SETLKW: ::c_int = 35; -pub const F_SETOWN: ::c_int = 24; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const VEOF: usize = 16; -pub const VEOL: usize = 17; -pub const VEOL2: usize = 6; -pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0o000400; -pub const TOSTOP: ::tcflag_t = 0o100000; -pub const FLUSHO: ::tcflag_t = 0o020000; - -pub const POLLWRNORM: ::c_short = 0x4; -pub const POLLWRBAND: ::c_short = 0x100; - -pub const SYS_syscall: ::c_long = 4000 + 0; -pub const SYS_exit: ::c_long = 4000 + 1; -pub const SYS_fork: ::c_long = 4000 + 2; -pub const SYS_read: ::c_long = 4000 + 3; -pub const SYS_write: ::c_long = 4000 + 4; -pub const SYS_open: ::c_long = 4000 + 5; -pub const SYS_close: ::c_long = 4000 + 6; -pub const SYS_waitpid: ::c_long = 4000 + 7; -pub const SYS_creat: ::c_long = 4000 + 8; -pub const SYS_link: ::c_long = 4000 + 9; -pub const SYS_unlink: ::c_long = 4000 + 10; -pub const SYS_execve: ::c_long = 4000 + 11; -pub const SYS_chdir: ::c_long = 4000 + 12; -pub const SYS_time: ::c_long = 4000 + 13; -pub const SYS_mknod: ::c_long = 4000 + 14; -pub const SYS_chmod: ::c_long = 4000 + 15; -pub const SYS_lchown: ::c_long = 4000 + 16; -pub const SYS_break: ::c_long = 4000 + 17; -pub const SYS_lseek: ::c_long = 4000 + 19; -pub const SYS_getpid: ::c_long = 4000 + 20; -pub const SYS_mount: ::c_long = 4000 + 21; -pub const SYS_umount: ::c_long = 4000 + 22; -pub const SYS_setuid: ::c_long = 4000 + 23; -pub const SYS_getuid: ::c_long = 4000 + 24; -pub const SYS_stime: ::c_long = 4000 + 25; -pub const SYS_ptrace: ::c_long = 4000 + 26; -pub const SYS_alarm: ::c_long = 4000 + 27; -pub const SYS_pause: ::c_long = 4000 + 29; -pub const SYS_utime: ::c_long = 4000 + 30; -pub const SYS_stty: ::c_long = 4000 + 31; -pub const SYS_gtty: ::c_long = 4000 + 32; -pub const SYS_access: ::c_long = 4000 + 33; -pub const SYS_nice: ::c_long = 4000 + 34; -pub const SYS_ftime: ::c_long = 4000 + 35; -pub const SYS_sync: ::c_long = 4000 + 36; -pub const SYS_kill: ::c_long = 4000 + 37; -pub const SYS_rename: ::c_long = 4000 + 38; -pub const SYS_mkdir: ::c_long = 4000 + 39; -pub const SYS_rmdir: ::c_long = 4000 + 40; -pub const SYS_dup: ::c_long = 4000 + 41; -pub const SYS_pipe: ::c_long = 4000 + 42; -pub const SYS_times: ::c_long = 4000 + 43; -pub const SYS_prof: ::c_long = 4000 + 44; -pub const SYS_brk: ::c_long = 4000 + 45; -pub const SYS_setgid: ::c_long = 4000 + 46; -pub const SYS_getgid: ::c_long = 4000 + 47; -pub const SYS_signal: ::c_long = 4000 + 48; -pub const SYS_geteuid: ::c_long = 4000 + 49; -pub const SYS_getegid: ::c_long = 4000 + 50; -pub const SYS_acct: ::c_long = 4000 + 51; -pub const SYS_umount2: ::c_long = 4000 + 52; -pub const SYS_lock: ::c_long = 4000 + 53; -pub const SYS_ioctl: ::c_long = 4000 + 54; -pub const SYS_fcntl: ::c_long = 4000 + 55; -pub const SYS_mpx: ::c_long = 4000 + 56; -pub const SYS_setpgid: ::c_long = 4000 + 57; -pub const SYS_ulimit: ::c_long = 4000 + 58; -pub const SYS_umask: ::c_long = 4000 + 60; -pub const SYS_chroot: ::c_long = 4000 + 61; -pub const SYS_ustat: ::c_long = 4000 + 62; -pub const SYS_dup2: ::c_long = 4000 + 63; -pub const SYS_getppid: ::c_long = 4000 + 64; -pub const SYS_getpgrp: ::c_long = 4000 + 65; -pub const SYS_setsid: ::c_long = 4000 + 66; -pub const SYS_sigaction: ::c_long = 4000 + 67; -pub const SYS_sgetmask: ::c_long = 4000 + 68; -pub const SYS_ssetmask: ::c_long = 4000 + 69; -pub const SYS_setreuid: ::c_long = 4000 + 70; -pub const SYS_setregid: ::c_long = 4000 + 71; -pub const SYS_sigsuspend: ::c_long = 4000 + 72; -pub const SYS_sigpending: ::c_long = 4000 + 73; -pub const SYS_sethostname: ::c_long = 4000 + 74; -pub const SYS_setrlimit: ::c_long = 4000 + 75; -pub const SYS_getrlimit: ::c_long = 4000 + 76; -pub const SYS_getrusage: ::c_long = 4000 + 77; -pub const SYS_gettimeofday: ::c_long = 4000 + 78; -pub const SYS_settimeofday: ::c_long = 4000 + 79; -pub const SYS_getgroups: ::c_long = 4000 + 80; -pub const SYS_setgroups: ::c_long = 4000 + 81; -pub const SYS_symlink: ::c_long = 4000 + 83; -pub const SYS_readlink: ::c_long = 4000 + 85; -pub const SYS_uselib: ::c_long = 4000 + 86; -pub const SYS_swapon: ::c_long = 4000 + 87; -pub const SYS_reboot: ::c_long = 4000 + 88; -pub const SYS_readdir: ::c_long = 4000 + 89; -pub const SYS_mmap: ::c_long = 4000 + 90; -pub const SYS_munmap: ::c_long = 4000 + 91; -pub const SYS_truncate: ::c_long = 4000 + 92; -pub const SYS_ftruncate: ::c_long = 4000 + 93; -pub const SYS_fchmod: ::c_long = 4000 + 94; -pub const SYS_fchown: ::c_long = 4000 + 95; -pub const SYS_getpriority: ::c_long = 4000 + 96; -pub const SYS_setpriority: ::c_long = 4000 + 97; -pub const SYS_profil: ::c_long = 4000 + 98; -pub const SYS_statfs: ::c_long = 4000 + 99; -pub const SYS_fstatfs: ::c_long = 4000 + 100; -pub const SYS_ioperm: ::c_long = 4000 + 101; -pub const SYS_socketcall: ::c_long = 4000 + 102; -pub const SYS_syslog: ::c_long = 4000 + 103; -pub const SYS_setitimer: ::c_long = 4000 + 104; -pub const SYS_getitimer: ::c_long = 4000 + 105; -pub const SYS_stat: ::c_long = 4000 + 106; -pub const SYS_lstat: ::c_long = 4000 + 107; -pub const SYS_fstat: ::c_long = 4000 + 108; -pub const SYS_iopl: ::c_long = 4000 + 110; -pub const SYS_vhangup: ::c_long = 4000 + 111; -pub const SYS_idle: ::c_long = 4000 + 112; -pub const SYS_vm86: ::c_long = 4000 + 113; -pub const SYS_wait4: ::c_long = 4000 + 114; -pub const SYS_swapoff: ::c_long = 4000 + 115; -pub const SYS_sysinfo: ::c_long = 4000 + 116; -pub const SYS_ipc: ::c_long = 4000 + 117; -pub const SYS_fsync: ::c_long = 4000 + 118; -pub const SYS_sigreturn: ::c_long = 4000 + 119; -pub const SYS_clone: ::c_long = 4000 + 120; -pub const SYS_setdomainname: ::c_long = 4000 + 121; -pub const SYS_uname: ::c_long = 4000 + 122; -pub const SYS_modify_ldt: ::c_long = 4000 + 123; -pub const SYS_adjtimex: ::c_long = 4000 + 124; -pub const SYS_mprotect: ::c_long = 4000 + 125; -pub const SYS_sigprocmask: ::c_long = 4000 + 126; -pub const SYS_create_module: ::c_long = 4000 + 127; -pub const SYS_init_module: ::c_long = 4000 + 128; -pub const SYS_delete_module: ::c_long = 4000 + 129; -pub const SYS_get_kernel_syms: ::c_long = 4000 + 130; -pub const SYS_quotactl: ::c_long = 4000 + 131; -pub const SYS_getpgid: ::c_long = 4000 + 132; -pub const SYS_fchdir: ::c_long = 4000 + 133; -pub const SYS_bdflush: ::c_long = 4000 + 134; -pub const SYS_sysfs: ::c_long = 4000 + 135; -pub const SYS_personality: ::c_long = 4000 + 136; -pub const SYS_afs_syscall: ::c_long = 4000 + 137; -pub const SYS_setfsuid: ::c_long = 4000 + 138; -pub const SYS_setfsgid: ::c_long = 4000 + 139; -pub const SYS__llseek: ::c_long = 4000 + 140; -pub const SYS_getdents: ::c_long = 4000 + 141; -pub const SYS_flock: ::c_long = 4000 + 143; -pub const SYS_msync: ::c_long = 4000 + 144; -pub const SYS_readv: ::c_long = 4000 + 145; -pub const SYS_writev: ::c_long = 4000 + 146; -pub const SYS_cacheflush: ::c_long = 4000 + 147; -pub const SYS_cachectl: ::c_long = 4000 + 148; -pub const SYS_sysmips: ::c_long = 4000 + 149; -pub const SYS_getsid: ::c_long = 4000 + 151; -pub const SYS_fdatasync: ::c_long = 4000 + 152; -pub const SYS__sysctl: ::c_long = 4000 + 153; -pub const SYS_mlock: ::c_long = 4000 + 154; -pub const SYS_munlock: ::c_long = 4000 + 155; -pub const SYS_mlockall: ::c_long = 4000 + 156; -pub const SYS_munlockall: ::c_long = 4000 + 157; -pub const SYS_sched_setparam: ::c_long = 4000 + 158; -pub const SYS_sched_getparam: ::c_long = 4000 + 159; -pub const SYS_sched_setscheduler: ::c_long = 4000 + 160; -pub const SYS_sched_getscheduler: ::c_long = 4000 + 161; -pub const SYS_sched_yield: ::c_long = 4000 + 162; -pub const SYS_sched_get_priority_max: ::c_long = 4000 + 163; -pub const SYS_sched_get_priority_min: ::c_long = 4000 + 164; -pub const SYS_sched_rr_get_interval: ::c_long = 4000 + 165; -pub const SYS_nanosleep: ::c_long = 4000 + 166; -pub const SYS_mremap: ::c_long = 4000 + 167; -pub const SYS_accept: ::c_long = 4000 + 168; -pub const SYS_bind: ::c_long = 4000 + 169; -pub const SYS_connect: ::c_long = 4000 + 170; -pub const SYS_getpeername: ::c_long = 4000 + 171; -pub const SYS_getsockname: ::c_long = 4000 + 172; -pub const SYS_getsockopt: ::c_long = 4000 + 173; -pub const SYS_listen: ::c_long = 4000 + 174; -pub const SYS_recv: ::c_long = 4000 + 175; -pub const SYS_recvfrom: ::c_long = 4000 + 176; -pub const SYS_recvmsg: ::c_long = 4000 + 177; -pub const SYS_send: ::c_long = 4000 + 178; -pub const SYS_sendmsg: ::c_long = 4000 + 179; -pub const SYS_sendto: ::c_long = 4000 + 180; -pub const SYS_setsockopt: ::c_long = 4000 + 181; -pub const SYS_shutdown: ::c_long = 4000 + 182; -pub const SYS_socket: ::c_long = 4000 + 183; -pub const SYS_socketpair: ::c_long = 4000 + 184; -pub const SYS_setresuid: ::c_long = 4000 + 185; -pub const SYS_getresuid: ::c_long = 4000 + 186; -pub const SYS_query_module: ::c_long = 4000 + 187; -pub const SYS_poll: ::c_long = 4000 + 188; -pub const SYS_nfsservctl: ::c_long = 4000 + 189; -pub const SYS_setresgid: ::c_long = 4000 + 190; -pub const SYS_getresgid: ::c_long = 4000 + 191; -pub const SYS_prctl: ::c_long = 4000 + 192; -pub const SYS_rt_sigreturn: ::c_long = 4000 + 193; -pub const SYS_rt_sigaction: ::c_long = 4000 + 194; -pub const SYS_rt_sigprocmask: ::c_long = 4000 + 195; -pub const SYS_rt_sigpending: ::c_long = 4000 + 196; -pub const SYS_rt_sigtimedwait: ::c_long = 4000 + 197; -pub const SYS_rt_sigqueueinfo: ::c_long = 4000 + 198; -pub const SYS_rt_sigsuspend: ::c_long = 4000 + 199; -pub const SYS_chown: ::c_long = 4000 + 202; -pub const SYS_getcwd: ::c_long = 4000 + 203; -pub const SYS_capget: ::c_long = 4000 + 204; -pub const SYS_capset: ::c_long = 4000 + 205; -pub const SYS_sigaltstack: ::c_long = 4000 + 206; -pub const SYS_sendfile: ::c_long = 4000 + 207; -pub const SYS_getpmsg: ::c_long = 4000 + 208; -pub const SYS_putpmsg: ::c_long = 4000 + 209; -pub const SYS_mmap2: ::c_long = 4000 + 210; -pub const SYS_truncate64: ::c_long = 4000 + 211; -pub const SYS_ftruncate64: ::c_long = 4000 + 212; -pub const SYS_stat64: ::c_long = 4000 + 213; -pub const SYS_lstat64: ::c_long = 4000 + 214; -pub const SYS_fstat64: ::c_long = 4000 + 215; -pub const SYS_pivot_root: ::c_long = 4000 + 216; -pub const SYS_mincore: ::c_long = 4000 + 217; -pub const SYS_madvise: ::c_long = 4000 + 218; -pub const SYS_getdents64: ::c_long = 4000 + 219; -pub const SYS_fcntl64: ::c_long = 4000 + 220; -pub const SYS_gettid: ::c_long = 4000 + 222; -pub const SYS_readahead: ::c_long = 4000 + 223; -pub const SYS_setxattr: ::c_long = 4000 + 224; -pub const SYS_lsetxattr: ::c_long = 4000 + 225; -pub const SYS_fsetxattr: ::c_long = 4000 + 226; -pub const SYS_getxattr: ::c_long = 4000 + 227; -pub const SYS_lgetxattr: ::c_long = 4000 + 228; -pub const SYS_fgetxattr: ::c_long = 4000 + 229; -pub const SYS_listxattr: ::c_long = 4000 + 230; -pub const SYS_llistxattr: ::c_long = 4000 + 231; -pub const SYS_flistxattr: ::c_long = 4000 + 232; -pub const SYS_removexattr: ::c_long = 4000 + 233; -pub const SYS_lremovexattr: ::c_long = 4000 + 234; -pub const SYS_fremovexattr: ::c_long = 4000 + 235; -pub const SYS_tkill: ::c_long = 4000 + 236; -pub const SYS_sendfile64: ::c_long = 4000 + 237; -pub const SYS_futex: ::c_long = 4000 + 238; -pub const SYS_sched_setaffinity: ::c_long = 4000 + 239; -pub const SYS_sched_getaffinity: ::c_long = 4000 + 240; -pub const SYS_io_setup: ::c_long = 4000 + 241; -pub const SYS_io_destroy: ::c_long = 4000 + 242; -pub const SYS_io_getevents: ::c_long = 4000 + 243; -pub const SYS_io_submit: ::c_long = 4000 + 244; -pub const SYS_io_cancel: ::c_long = 4000 + 245; -pub const SYS_exit_group: ::c_long = 4000 + 246; -pub const SYS_lookup_dcookie: ::c_long = 4000 + 247; -pub const SYS_epoll_create: ::c_long = 4000 + 248; -pub const SYS_epoll_ctl: ::c_long = 4000 + 249; -pub const SYS_epoll_wait: ::c_long = 4000 + 250; -pub const SYS_remap_file_pages: ::c_long = 4000 + 251; -pub const SYS_set_tid_address: ::c_long = 4000 + 252; -pub const SYS_restart_syscall: ::c_long = 4000 + 253; -pub const SYS_statfs64: ::c_long = 4000 + 255; -pub const SYS_fstatfs64: ::c_long = 4000 + 256; -pub const SYS_timer_create: ::c_long = 4000 + 257; -pub const SYS_timer_settime: ::c_long = 4000 + 258; -pub const SYS_timer_gettime: ::c_long = 4000 + 259; -pub const SYS_timer_getoverrun: ::c_long = 4000 + 260; -pub const SYS_timer_delete: ::c_long = 4000 + 261; -pub const SYS_clock_settime: ::c_long = 4000 + 262; -pub const SYS_clock_gettime: ::c_long = 4000 + 263; -pub const SYS_clock_getres: ::c_long = 4000 + 264; -pub const SYS_clock_nanosleep: ::c_long = 4000 + 265; -pub const SYS_tgkill: ::c_long = 4000 + 266; -pub const SYS_utimes: ::c_long = 4000 + 267; -pub const SYS_mbind: ::c_long = 4000 + 268; -pub const SYS_get_mempolicy: ::c_long = 4000 + 269; -pub const SYS_set_mempolicy: ::c_long = 4000 + 270; -pub const SYS_mq_open: ::c_long = 4000 + 271; -pub const SYS_mq_unlink: ::c_long = 4000 + 272; -pub const SYS_mq_timedsend: ::c_long = 4000 + 273; -pub const SYS_mq_timedreceive: ::c_long = 4000 + 274; -pub const SYS_mq_notify: ::c_long = 4000 + 275; -pub const SYS_mq_getsetattr: ::c_long = 4000 + 276; -pub const SYS_vserver: ::c_long = 4000 + 277; -pub const SYS_waitid: ::c_long = 4000 + 278; -/* pub const SYS_sys_setaltroot: ::c_long = 4000 + 279; */ -pub const SYS_add_key: ::c_long = 4000 + 280; -pub const SYS_request_key: ::c_long = 4000 + 281; -pub const SYS_keyctl: ::c_long = 4000 + 282; -pub const SYS_set_thread_area: ::c_long = 4000 + 283; -pub const SYS_inotify_init: ::c_long = 4000 + 284; -pub const SYS_inotify_add_watch: ::c_long = 4000 + 285; -pub const SYS_inotify_rm_watch: ::c_long = 4000 + 286; -pub const SYS_migrate_pages: ::c_long = 4000 + 287; -pub const SYS_openat: ::c_long = 4000 + 288; -pub const SYS_mkdirat: ::c_long = 4000 + 289; -pub const SYS_mknodat: ::c_long = 4000 + 290; -pub const SYS_fchownat: ::c_long = 4000 + 291; -pub const SYS_futimesat: ::c_long = 4000 + 292; -pub const SYS_unlinkat: ::c_long = 4000 + 294; -pub const SYS_renameat: ::c_long = 4000 + 295; -pub const SYS_linkat: ::c_long = 4000 + 296; -pub const SYS_symlinkat: ::c_long = 4000 + 297; -pub const SYS_readlinkat: ::c_long = 4000 + 298; -pub const SYS_fchmodat: ::c_long = 4000 + 299; -pub const SYS_faccessat: ::c_long = 4000 + 300; -pub const SYS_pselect6: ::c_long = 4000 + 301; -pub const SYS_ppoll: ::c_long = 4000 + 302; -pub const SYS_unshare: ::c_long = 4000 + 303; -pub const SYS_splice: ::c_long = 4000 + 304; -pub const SYS_sync_file_range: ::c_long = 4000 + 305; -pub const SYS_tee: ::c_long = 4000 + 306; -pub const SYS_vmsplice: ::c_long = 4000 + 307; -pub const SYS_move_pages: ::c_long = 4000 + 308; -pub const SYS_set_robust_list: ::c_long = 4000 + 309; -pub const SYS_get_robust_list: ::c_long = 4000 + 310; -pub const SYS_kexec_load: ::c_long = 4000 + 311; -pub const SYS_getcpu: ::c_long = 4000 + 312; -pub const SYS_epoll_pwait: ::c_long = 4000 + 313; -pub const SYS_ioprio_set: ::c_long = 4000 + 314; -pub const SYS_ioprio_get: ::c_long = 4000 + 315; -pub const SYS_utimensat: ::c_long = 4000 + 316; -pub const SYS_signalfd: ::c_long = 4000 + 317; -pub const SYS_timerfd: ::c_long = 4000 + 318; -pub const SYS_eventfd: ::c_long = 4000 + 319; -pub const SYS_fallocate: ::c_long = 4000 + 320; -pub const SYS_timerfd_create: ::c_long = 4000 + 321; -pub const SYS_timerfd_gettime: ::c_long = 4000 + 322; -pub const SYS_timerfd_settime: ::c_long = 4000 + 323; -pub const SYS_signalfd4: ::c_long = 4000 + 324; -pub const SYS_eventfd2: ::c_long = 4000 + 325; -pub const SYS_epoll_create1: ::c_long = 4000 + 326; -pub const SYS_dup3: ::c_long = 4000 + 327; -pub const SYS_pipe2: ::c_long = 4000 + 328; -pub const SYS_inotify_init1: ::c_long = 4000 + 329; -pub const SYS_preadv: ::c_long = 4000 + 330; -pub const SYS_pwritev: ::c_long = 4000 + 331; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 4000 + 332; -pub const SYS_perf_event_open: ::c_long = 4000 + 333; -pub const SYS_accept4: ::c_long = 4000 + 334; -pub const SYS_recvmmsg: ::c_long = 4000 + 335; -pub const SYS_fanotify_init: ::c_long = 4000 + 336; -pub const SYS_fanotify_mark: ::c_long = 4000 + 337; -pub const SYS_prlimit64: ::c_long = 4000 + 338; -pub const SYS_name_to_handle_at: ::c_long = 4000 + 339; -pub const SYS_open_by_handle_at: ::c_long = 4000 + 340; -pub const SYS_clock_adjtime: ::c_long = 4000 + 341; -pub const SYS_syncfs: ::c_long = 4000 + 342; -pub const SYS_sendmmsg: ::c_long = 4000 + 343; -pub const SYS_setns: ::c_long = 4000 + 344; -pub const SYS_process_vm_readv: ::c_long = 4000 + 345; -pub const SYS_process_vm_writev: ::c_long = 4000 + 346; -pub const SYS_kcmp: ::c_long = 4000 + 347; -pub const SYS_finit_module: ::c_long = 4000 + 348; -pub const SYS_sched_setattr: ::c_long = 4000 + 349; -pub const SYS_sched_getattr: ::c_long = 4000 + 350; -pub const SYS_renameat2: ::c_long = 4000 + 351; -pub const SYS_seccomp: ::c_long = 4000 + 352; -pub const SYS_getrandom: ::c_long = 4000 + 353; -pub const SYS_memfd_create: ::c_long = 4000 + 354; -pub const SYS_bpf: ::c_long = 4000 + 355; -pub const SYS_execveat: ::c_long = 4000 + 356; -pub const SYS_userfaultfd: ::c_long = 4000 + 357; -pub const SYS_membarrier: ::c_long = 4000 + 358; -pub const SYS_mlock2: ::c_long = 4000 + 359; -pub const SYS_copy_file_range: ::c_long = 4000 + 360; -pub const SYS_preadv2: ::c_long = 4000 + 361; -pub const SYS_pwritev2: ::c_long = 4000 + 362; -pub const SYS_pkey_mprotect: ::c_long = 4000 + 363; -pub const SYS_pkey_alloc: ::c_long = 4000 + 364; -pub const SYS_pkey_free: ::c_long = 4000 + 365; -pub const SYS_statx: ::c_long = 4000 + 366; -pub const SYS_pidfd_send_signal: ::c_long = 4000 + 424; -pub const SYS_io_uring_setup: ::c_long = 4000 + 425; -pub const SYS_io_uring_enter: ::c_long = 4000 + 426; -pub const SYS_io_uring_register: ::c_long = 4000 + 427; -pub const SYS_open_tree: ::c_long = 4000 + 428; -pub const SYS_move_mount: ::c_long = 4000 + 429; -pub const SYS_fsopen: ::c_long = 4000 + 430; -pub const SYS_fsconfig: ::c_long = 4000 + 431; -pub const SYS_fsmount: ::c_long = 4000 + 432; -pub const SYS_fspick: ::c_long = 4000 + 433; -pub const SYS_pidfd_open: ::c_long = 4000 + 434; -pub const SYS_clone3: ::c_long = 4000 + 435; -pub const SYS_close_range: ::c_long = 4000 + 436; -pub const SYS_openat2: ::c_long = 4000 + 437; -pub const SYS_pidfd_getfd: ::c_long = 4000 + 438; -pub const SYS_faccessat2: ::c_long = 4000 + 439; -pub const SYS_process_madvise: ::c_long = 4000 + 440; -pub const SYS_epoll_pwait2: ::c_long = 4000 + 441; -pub const SYS_mount_setattr: ::c_long = 4000 + 442; -pub const SYS_quotactl_fd: ::c_long = 4000 + 443; -pub const SYS_landlock_create_ruleset: ::c_long = 4000 + 444; -pub const SYS_landlock_add_rule: ::c_long = 4000 + 445; -pub const SYS_landlock_restrict_self: ::c_long = 4000 + 446; -pub const SYS_memfd_secret: ::c_long = 4000 + 447; -pub const SYS_process_mrelease: ::c_long = 4000 + 448; -pub const SYS_futex_waitv: ::c_long = 4000 + 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 4000 + 450; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mod.rs deleted file mode 100644 index cecd6dcab..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/mod.rs +++ /dev/null @@ -1,65 +0,0 @@ -pub type c_long = i32; -pub type c_ulong = u32; -pub type nlink_t = u32; -pub type blksize_t = ::c_long; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; -pub type regoff_t = ::c_int; - -s! { - pub struct pthread_attr_t { - __size: [u32; 9] - } - - pub struct sigset_t { - __val: [::c_ulong; 32], - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct sem_t { - __val: [::c_int; 4], - } -} - -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; - -cfg_if! { - if #[cfg(any(target_arch = "x86"))] { - mod x86; - pub use self::x86::*; - } else if #[cfg(any(target_arch = "mips"))] { - mod mips; - pub use self::mips::*; - } else if #[cfg(any(target_arch = "arm"))] { - mod arm; - pub use self::arm::*; - } else if #[cfg(any(target_arch = "powerpc"))] { - mod powerpc; - pub use self::powerpc::*; - } else if #[cfg(any(target_arch = "hexagon"))] { - mod hexagon; - pub use self::hexagon::*; - } else if #[cfg(any(target_arch = "riscv32"))] { - mod riscv32; - pub use self::riscv32::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/powerpc.rs deleted file mode 100644 index b1669ade7..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ /dev/null @@ -1,809 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = i32; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_short, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_long; 2], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_short, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_long; 2], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_int, - __pad1: ::c_int, - __pad2: ::c_longlong, - __pad3: ::c_longlong - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - __unused1: ::c_int, - pub shm_atime: ::time_t, - __unused2: ::c_int, - pub shm_dtime: ::time_t, - __unused3: ::c_int, - pub shm_ctime: ::time_t, - __unused4: ::c_int, - pub shm_segsz: ::size_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - __unused1: ::c_int, - pub msg_stime: ::time_t, - __unused2: ::c_int, - pub msg_rtime: ::time_t, - __unused3: ::c_int, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - #[cfg(target_endian = "little")] - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - #[cfg(target_endian = "big")] - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } -} - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const SIGSTKSZ: ::size_t = 10240; -pub const MINSIGSTKSZ: ::size_t = 4096; - -pub const O_DIRECT: ::c_int = 0x20000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_LARGEFILE: ::c_int = 0x10000; - -pub const MCL_CURRENT: ::c_int = 0x2000; -pub const MCL_FUTURE: ::c_int = 0x4000; -pub const CBAUD: ::tcflag_t = 0o0000377; -pub const TAB1: ::c_int = 0x00000400; -pub const TAB2: ::c_int = 0x00000800; -pub const TAB3: ::c_int = 0x00000C00; -pub const CR1: ::c_int = 0x00001000; -pub const CR2: ::c_int = 0x00002000; -pub const CR3: ::c_int = 0x00003000; -pub const FF1: ::c_int = 0x00004000; -pub const BS1: ::c_int = 0x00008000; -pub const VT1: ::c_int = 0x00010000; -pub const VWERASE: usize = 10; -pub const VREPRINT: usize = 11; -pub const VSUSP: usize = 12; -pub const VSTART: usize = 13; -pub const VSTOP: usize = 14; -pub const VDISCARD: usize = 16; -pub const VTIME: usize = 7; -pub const IXON: ::tcflag_t = 0x00000200; -pub const IXOFF: ::tcflag_t = 0x00000400; -pub const ONLCR: ::tcflag_t = 0x00000002; -pub const CSIZE: ::tcflag_t = 0x00000300; -pub const CS6: ::tcflag_t = 0x00000100; -pub const CS7: ::tcflag_t = 0x00000200; -pub const CS8: ::tcflag_t = 0x00000300; -pub const CSTOPB: ::tcflag_t = 0x00000400; -pub const CREAD: ::tcflag_t = 0x00000800; -pub const PARENB: ::tcflag_t = 0x00001000; -pub const PARODD: ::tcflag_t = 0x00002000; -pub const HUPCL: ::tcflag_t = 0x00004000; -pub const CLOCAL: ::tcflag_t = 0x00008000; -pub const ECHOKE: ::tcflag_t = 0x00000001; -pub const ECHOE: ::tcflag_t = 0x00000002; -pub const ECHOK: ::tcflag_t = 0x00000004; -pub const ECHONL: ::tcflag_t = 0x00000010; -pub const ECHOPRT: ::tcflag_t = 0x00000020; -pub const ECHOCTL: ::tcflag_t = 0x00000040; -pub const ISIG: ::tcflag_t = 0x00000080; -pub const ICANON: ::tcflag_t = 0x00000100; -pub const PENDIN: ::tcflag_t = 0x20000000; -pub const NOFLSH: ::tcflag_t = 0x80000000; -pub const CIBAUD: ::tcflag_t = 0o00077600000; -pub const CBAUDEX: ::tcflag_t = 0o000020; -pub const VSWTC: usize = 9; -pub const OLCUC: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o001400; -pub const CRDLY: ::tcflag_t = 0o030000; -pub const TABDLY: ::tcflag_t = 0o006000; -pub const BSDLY: ::tcflag_t = 0o100000; -pub const FFDLY: ::tcflag_t = 0o040000; -pub const VTDLY: ::tcflag_t = 0o200000; -pub const XTABS: ::tcflag_t = 0o006000; -pub const B57600: ::speed_t = 0o000020; -pub const B115200: ::speed_t = 0o000021; -pub const B230400: ::speed_t = 0o000022; -pub const B460800: ::speed_t = 0o000023; -pub const B500000: ::speed_t = 0o000024; -pub const B576000: ::speed_t = 0o000025; -pub const B921600: ::speed_t = 0o000026; -pub const B1000000: ::speed_t = 0o000027; -pub const B1152000: ::speed_t = 0o000030; -pub const B1500000: ::speed_t = 0o000031; -pub const B2000000: ::speed_t = 0o000032; -pub const B2500000: ::speed_t = 0o000033; -pub const B3000000: ::speed_t = 0o000034; -pub const B3500000: ::speed_t = 0o000035; -pub const B4000000: ::speed_t = 0o000036; - -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; - -pub const SOCK_NONBLOCK: ::c_int = 2048; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x00080; -pub const MAP_NORESERVE: ::c_int = 0x00040; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const PTRACE_SYSEMU: ::c_int = 0x1d; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 0x1e; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_SEQPACKET: ::c_int = 5; - -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EDEADLOCK: ::c_int = 58; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const EXTPROC: ::tcflag_t = 0x10000000; - -pub const MAP_HUGETLB: ::c_int = 0x040000; - -pub const F_GETLK: ::c_int = 12; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 13; -pub const F_SETLKW: ::c_int = 14; -pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const VEOF: usize = 4; -pub const VEOL: usize = 6; -pub const VEOL2: usize = 8; -pub const VMIN: usize = 5; -pub const IEXTEN: ::tcflag_t = 0x00000400; -pub const TOSTOP: ::tcflag_t = 0x00400000; -pub const FLUSHO: ::tcflag_t = 0x00800000; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -// Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_query_module: ::c_long = 166; -pub const SYS_poll: ::c_long = 167; -pub const SYS_nfsservctl: ::c_long = 168; -pub const SYS_setresgid: ::c_long = 169; -pub const SYS_getresgid: ::c_long = 170; -pub const SYS_prctl: ::c_long = 171; -pub const SYS_rt_sigreturn: ::c_long = 172; -pub const SYS_rt_sigaction: ::c_long = 173; -pub const SYS_rt_sigprocmask: ::c_long = 174; -pub const SYS_rt_sigpending: ::c_long = 175; -pub const SYS_rt_sigtimedwait: ::c_long = 176; -pub const SYS_rt_sigqueueinfo: ::c_long = 177; -pub const SYS_rt_sigsuspend: ::c_long = 178; -pub const SYS_pread64: ::c_long = 179; -pub const SYS_pwrite64: ::c_long = 180; -pub const SYS_chown: ::c_long = 181; -pub const SYS_getcwd: ::c_long = 182; -pub const SYS_capget: ::c_long = 183; -pub const SYS_capset: ::c_long = 184; -pub const SYS_sigaltstack: ::c_long = 185; -pub const SYS_sendfile: ::c_long = 186; -pub const SYS_getpmsg: ::c_long = 187; -pub const SYS_putpmsg: ::c_long = 188; -pub const SYS_vfork: ::c_long = 189; -pub const SYS_ugetrlimit: ::c_long = 190; -pub const SYS_readahead: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_pciconfig_read: ::c_long = 198; -pub const SYS_pciconfig_write: ::c_long = 199; -pub const SYS_pciconfig_iobase: ::c_long = 200; -pub const SYS_multiplexer: ::c_long = 201; -pub const SYS_getdents64: ::c_long = 202; -pub const SYS_pivot_root: ::c_long = 203; -pub const SYS_fcntl64: ::c_long = 204; -pub const SYS_madvise: ::c_long = 205; -pub const SYS_mincore: ::c_long = 206; -pub const SYS_gettid: ::c_long = 207; -pub const SYS_tkill: ::c_long = 208; -pub const SYS_setxattr: ::c_long = 209; -pub const SYS_lsetxattr: ::c_long = 210; -pub const SYS_fsetxattr: ::c_long = 211; -pub const SYS_getxattr: ::c_long = 212; -pub const SYS_lgetxattr: ::c_long = 213; -pub const SYS_fgetxattr: ::c_long = 214; -pub const SYS_listxattr: ::c_long = 215; -pub const SYS_llistxattr: ::c_long = 216; -pub const SYS_flistxattr: ::c_long = 217; -pub const SYS_removexattr: ::c_long = 218; -pub const SYS_lremovexattr: ::c_long = 219; -pub const SYS_fremovexattr: ::c_long = 220; -pub const SYS_futex: ::c_long = 221; -pub const SYS_sched_setaffinity: ::c_long = 222; -pub const SYS_sched_getaffinity: ::c_long = 223; -pub const SYS_tuxcall: ::c_long = 225; -pub const SYS_sendfile64: ::c_long = 226; -pub const SYS_io_setup: ::c_long = 227; -pub const SYS_io_destroy: ::c_long = 228; -pub const SYS_io_getevents: ::c_long = 229; -pub const SYS_io_submit: ::c_long = 230; -pub const SYS_io_cancel: ::c_long = 231; -pub const SYS_set_tid_address: ::c_long = 232; -pub const SYS_fadvise64: ::c_long = 233; -pub const SYS_exit_group: ::c_long = 234; -pub const SYS_lookup_dcookie: ::c_long = 235; -pub const SYS_epoll_create: ::c_long = 236; -pub const SYS_epoll_ctl: ::c_long = 237; -pub const SYS_epoll_wait: ::c_long = 238; -pub const SYS_remap_file_pages: ::c_long = 239; -pub const SYS_timer_create: ::c_long = 240; -pub const SYS_timer_settime: ::c_long = 241; -pub const SYS_timer_gettime: ::c_long = 242; -pub const SYS_timer_getoverrun: ::c_long = 243; -pub const SYS_timer_delete: ::c_long = 244; -pub const SYS_clock_settime: ::c_long = 245; -pub const SYS_clock_gettime: ::c_long = 246; -pub const SYS_clock_getres: ::c_long = 247; -pub const SYS_clock_nanosleep: ::c_long = 248; -pub const SYS_swapcontext: ::c_long = 249; -pub const SYS_tgkill: ::c_long = 250; -pub const SYS_utimes: ::c_long = 251; -pub const SYS_statfs64: ::c_long = 252; -pub const SYS_fstatfs64: ::c_long = 253; -pub const SYS_fadvise64_64: ::c_long = 254; -pub const SYS_rtas: ::c_long = 255; -pub const SYS_sys_debug_setcontext: ::c_long = 256; -pub const SYS_migrate_pages: ::c_long = 258; -pub const SYS_mbind: ::c_long = 259; -pub const SYS_get_mempolicy: ::c_long = 260; -pub const SYS_set_mempolicy: ::c_long = 261; -pub const SYS_mq_open: ::c_long = 262; -pub const SYS_mq_unlink: ::c_long = 263; -pub const SYS_mq_timedsend: ::c_long = 264; -pub const SYS_mq_timedreceive: ::c_long = 265; -pub const SYS_mq_notify: ::c_long = 266; -pub const SYS_mq_getsetattr: ::c_long = 267; -pub const SYS_kexec_load: ::c_long = 268; -pub const SYS_add_key: ::c_long = 269; -pub const SYS_request_key: ::c_long = 270; -pub const SYS_keyctl: ::c_long = 271; -pub const SYS_waitid: ::c_long = 272; -pub const SYS_ioprio_set: ::c_long = 273; -pub const SYS_ioprio_get: ::c_long = 274; -pub const SYS_inotify_init: ::c_long = 275; -pub const SYS_inotify_add_watch: ::c_long = 276; -pub const SYS_inotify_rm_watch: ::c_long = 277; -pub const SYS_spu_run: ::c_long = 278; -pub const SYS_spu_create: ::c_long = 279; -pub const SYS_pselect6: ::c_long = 280; -pub const SYS_ppoll: ::c_long = 281; -pub const SYS_unshare: ::c_long = 282; -pub const SYS_splice: ::c_long = 283; -pub const SYS_tee: ::c_long = 284; -pub const SYS_vmsplice: ::c_long = 285; -pub const SYS_openat: ::c_long = 286; -pub const SYS_mkdirat: ::c_long = 287; -pub const SYS_mknodat: ::c_long = 288; -pub const SYS_fchownat: ::c_long = 289; -pub const SYS_futimesat: ::c_long = 290; -pub const SYS_fstatat64: ::c_long = 291; -pub const SYS_unlinkat: ::c_long = 292; -pub const SYS_renameat: ::c_long = 293; -pub const SYS_linkat: ::c_long = 294; -pub const SYS_symlinkat: ::c_long = 295; -pub const SYS_readlinkat: ::c_long = 296; -pub const SYS_fchmodat: ::c_long = 297; -pub const SYS_faccessat: ::c_long = 298; -pub const SYS_get_robust_list: ::c_long = 299; -pub const SYS_set_robust_list: ::c_long = 300; -pub const SYS_move_pages: ::c_long = 301; -pub const SYS_getcpu: ::c_long = 302; -pub const SYS_epoll_pwait: ::c_long = 303; -pub const SYS_utimensat: ::c_long = 304; -pub const SYS_signalfd: ::c_long = 305; -pub const SYS_timerfd_create: ::c_long = 306; -pub const SYS_eventfd: ::c_long = 307; -pub const SYS_sync_file_range2: ::c_long = 308; -pub const SYS_fallocate: ::c_long = 309; -pub const SYS_subpage_prot: ::c_long = 310; -pub const SYS_timerfd_settime: ::c_long = 311; -pub const SYS_timerfd_gettime: ::c_long = 312; -pub const SYS_signalfd4: ::c_long = 313; -pub const SYS_eventfd2: ::c_long = 314; -pub const SYS_epoll_create1: ::c_long = 315; -pub const SYS_dup3: ::c_long = 316; -pub const SYS_pipe2: ::c_long = 317; -pub const SYS_inotify_init1: ::c_long = 318; -pub const SYS_perf_event_open: ::c_long = 319; -pub const SYS_preadv: ::c_long = 320; -pub const SYS_pwritev: ::c_long = 321; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; -pub const SYS_fanotify_init: ::c_long = 323; -pub const SYS_fanotify_mark: ::c_long = 324; -pub const SYS_prlimit64: ::c_long = 325; -pub const SYS_socket: ::c_long = 326; -pub const SYS_bind: ::c_long = 327; -pub const SYS_connect: ::c_long = 328; -pub const SYS_listen: ::c_long = 329; -pub const SYS_accept: ::c_long = 330; -pub const SYS_getsockname: ::c_long = 331; -pub const SYS_getpeername: ::c_long = 332; -pub const SYS_socketpair: ::c_long = 333; -pub const SYS_send: ::c_long = 334; -pub const SYS_sendto: ::c_long = 335; -pub const SYS_recv: ::c_long = 336; -pub const SYS_recvfrom: ::c_long = 337; -pub const SYS_shutdown: ::c_long = 338; -pub const SYS_setsockopt: ::c_long = 339; -pub const SYS_getsockopt: ::c_long = 340; -pub const SYS_sendmsg: ::c_long = 341; -pub const SYS_recvmsg: ::c_long = 342; -pub const SYS_recvmmsg: ::c_long = 343; -pub const SYS_accept4: ::c_long = 344; -pub const SYS_name_to_handle_at: ::c_long = 345; -pub const SYS_open_by_handle_at: ::c_long = 346; -pub const SYS_clock_adjtime: ::c_long = 347; -pub const SYS_syncfs: ::c_long = 348; -pub const SYS_sendmmsg: ::c_long = 349; -pub const SYS_setns: ::c_long = 350; -pub const SYS_process_vm_readv: ::c_long = 351; -pub const SYS_process_vm_writev: ::c_long = 352; -pub const SYS_finit_module: ::c_long = 353; -pub const SYS_kcmp: ::c_long = 354; -pub const SYS_sched_setattr: ::c_long = 355; -pub const SYS_sched_getattr: ::c_long = 356; -pub const SYS_renameat2: ::c_long = 357; -pub const SYS_seccomp: ::c_long = 358; -pub const SYS_getrandom: ::c_long = 359; -pub const SYS_memfd_create: ::c_long = 360; -pub const SYS_bpf: ::c_long = 361; -pub const SYS_execveat: ::c_long = 362; -pub const SYS_switch_endian: ::c_long = 363; -pub const SYS_userfaultfd: ::c_long = 364; -pub const SYS_membarrier: ::c_long = 365; -pub const SYS_mlock2: ::c_long = 378; -pub const SYS_copy_file_range: ::c_long = 379; -pub const SYS_preadv2: ::c_long = 380; -pub const SYS_pwritev2: ::c_long = 381; -pub const SYS_kexec_file_load: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_pkey_alloc: ::c_long = 384; -pub const SYS_pkey_free: ::c_long = 385; -pub const SYS_pkey_mprotect: ::c_long = 386; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -extern "C" { - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/align.rs deleted file mode 100644 index 048268c96..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: (i64, f64) - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs deleted file mode 100644 index bf7a4f59c..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ /dev/null @@ -1,794 +0,0 @@ -//! RISC-V-specific definitions for 32-bit linux-like values - -pub type c_char = u8; -pub type wchar_t = ::c_int; - -s! { - pub struct pthread_attr_t { - __size: [::c_ulong; 7], - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_int; 2usize], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_int; 2], - } - - pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [u64; 0], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused5: ::c_ulong, - __unused6: ::c_ulong, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __unused1: ::c_int, - pub msg_rtime: ::time_t, - __unused2: ::c_int, - pub msg_ctime: ::time_t, - __unused3: ::c_int, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } -} - -//pub const RLIM_INFINITY: ::rlim_t = !0; -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const TIOCGSOFTCAR: ::c_ulong = 21529; -pub const TIOCSSOFTCAR: ::c_ulong = 21530; -pub const TIOCGRS485: ::c_int = 21550; -pub const TIOCSRS485: ::c_int = 21551; -//pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; -//pub const RLIMIT_AS: ::__rlimit_resource_t = 9; -//pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; -//pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; -//pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 1052672; -pub const MAP_GROWSDOWN: ::c_int = 256; -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SA_ONSTACK: ::c_int = 8; -pub const SA_SIGINFO: ::c_int = 4; -pub const SA_NOCLDWAIT: ::c_int = 2; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; -pub const POLLWRNORM: ::c_short = 256; -pub const POLLWRBAND: ::c_short = 512; -pub const O_ASYNC: ::c_int = 8192; -pub const O_NDELAY: ::c_int = 2048; -pub const EFD_NONBLOCK: ::c_int = 2048; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const SFD_NONBLOCK: ::c_int = 2048; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; -pub const TIOCLINUX: ::c_ulong = 21532; -pub const TIOCGSERIAL: ::c_ulong = 21534; -pub const TIOCEXCL: ::c_ulong = 21516; -pub const TIOCNXCL: ::c_ulong = 21517; -pub const TIOCSCTTY: ::c_ulong = 21518; -pub const TIOCSTI: ::c_ulong = 21522; -pub const TIOCMGET: ::c_ulong = 21525; -pub const TIOCMBIS: ::c_ulong = 21526; -pub const TIOCMBIC: ::c_ulong = 21527; -pub const TIOCMSET: ::c_ulong = 21528; -pub const TIOCCONS: ::c_ulong = 21533; -pub const TIOCM_ST: ::c_int = 8; -pub const TIOCM_SR: ::c_int = 16; -pub const TIOCM_CTS: ::c_int = 32; -pub const TIOCM_CAR: ::c_int = 64; -pub const TIOCM_RNG: ::c_int = 128; -pub const TIOCM_DSR: ::c_int = 256; - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const O_DIRECT: ::c_int = 16384; -pub const O_DIRECTORY: ::c_int = 65536; -pub const O_NOFOLLOW: ::c_int = 131072; -pub const MAP_HUGETLB: ::c_int = 262144; -pub const MAP_LOCKED: ::c_int = 8192; -pub const MAP_NORESERVE: ::c_int = 16384; -pub const MAP_ANON: ::c_int = 32; -pub const MAP_ANONYMOUS: ::c_int = 32; -pub const MAP_DENYWRITE: ::c_int = 2048; -pub const MAP_EXECUTABLE: ::c_int = 4096; -pub const MAP_POPULATE: ::c_int = 32768; -pub const MAP_NONBLOCK: ::c_int = 65536; -pub const MAP_STACK: ::c_int = 131072; -pub const MAP_SYNC: ::c_int = 0x080000; -pub const EDEADLOCK: ::c_int = 35; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const FIOCLEX: ::c_int = 21585; -pub const FIONCLEX: ::c_int = 21584; -pub const FIONBIO: ::c_int = 21537; -pub const MCL_CURRENT: ::c_int = 1; -pub const MCL_FUTURE: ::c_int = 2; -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 4111; -pub const TAB1: ::tcflag_t = 2048; -pub const TAB2: ::tcflag_t = 4096; -pub const TAB3: ::tcflag_t = 6144; -pub const CR1: ::tcflag_t = 512; -pub const CR2: ::tcflag_t = 1024; -pub const CR3: ::tcflag_t = 1536; -pub const FF1: ::tcflag_t = 32768; -pub const BS1: ::tcflag_t = 8192; -pub const VT1: ::tcflag_t = 16384; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 1024; -pub const IXOFF: ::tcflag_t = 4096; -pub const ONLCR: ::tcflag_t = 4; -pub const CSIZE: ::tcflag_t = 48; -pub const CS6: ::tcflag_t = 16; -pub const CS7: ::tcflag_t = 32; -pub const CS8: ::tcflag_t = 48; -pub const CSTOPB: ::tcflag_t = 64; -pub const CREAD: ::tcflag_t = 128; -pub const PARENB: ::tcflag_t = 256; -pub const PARODD: ::tcflag_t = 512; -pub const HUPCL: ::tcflag_t = 1024; -pub const CLOCAL: ::tcflag_t = 2048; -pub const ECHOKE: ::tcflag_t = 2048; -pub const ECHOE: ::tcflag_t = 16; -pub const ECHOK: ::tcflag_t = 32; -pub const ECHONL: ::tcflag_t = 64; -pub const ECHOPRT: ::tcflag_t = 1024; -pub const ECHOCTL: ::tcflag_t = 512; -pub const ISIG: ::tcflag_t = 1; -pub const ICANON: ::tcflag_t = 2; -pub const PENDIN: ::tcflag_t = 16384; -pub const NOFLSH: ::tcflag_t = 128; -pub const CIBAUD: ::tcflag_t = 269418496; -pub const CBAUDEX: ::tcflag_t = 4096; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 2; -pub const NLDLY: ::tcflag_t = 256; -pub const CRDLY: ::tcflag_t = 1536; -pub const TABDLY: ::tcflag_t = 6144; -pub const BSDLY: ::tcflag_t = 8192; -pub const FFDLY: ::tcflag_t = 32768; -pub const VTDLY: ::tcflag_t = 16384; -pub const XTABS: ::tcflag_t = 6144; -pub const B0: ::speed_t = 0; -pub const B50: ::speed_t = 1; -pub const B75: ::speed_t = 2; -pub const B110: ::speed_t = 3; -pub const B134: ::speed_t = 4; -pub const B150: ::speed_t = 5; -pub const B200: ::speed_t = 6; -pub const B300: ::speed_t = 7; -pub const B600: ::speed_t = 8; -pub const B1200: ::speed_t = 9; -pub const B1800: ::speed_t = 10; -pub const B2400: ::speed_t = 11; -pub const B4800: ::speed_t = 12; -pub const B9600: ::speed_t = 13; -pub const B19200: ::speed_t = 14; -pub const B38400: ::speed_t = 15; -pub const EXTA: ::speed_t = 14; -pub const EXTB: ::speed_t = 15; -pub const B57600: ::speed_t = 4097; -pub const B115200: ::speed_t = 4098; -pub const B230400: ::speed_t = 4099; -pub const B460800: ::speed_t = 4100; -pub const B500000: ::speed_t = 4101; -pub const B576000: ::speed_t = 4102; -pub const B921600: ::speed_t = 4103; -pub const B1000000: ::speed_t = 4104; -pub const B1152000: ::speed_t = 4105; -pub const B1500000: ::speed_t = 4106; -pub const B2000000: ::speed_t = 4107; -pub const B2500000: ::speed_t = 4108; -pub const B3000000: ::speed_t = 4109; -pub const B3500000: ::speed_t = 4110; -pub const B4000000: ::speed_t = 4111; -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 32768; -pub const TOSTOP: ::tcflag_t = 256; -pub const FLUSHO: ::tcflag_t = 4096; -pub const EXTPROC: ::tcflag_t = 65536; -pub const TCGETS: ::c_int = 21505; -pub const TCSETS: ::c_int = 21506; -pub const TCSETSW: ::c_int = 21507; -pub const TCSETSF: ::c_int = 21508; -pub const TCGETA: ::c_int = 21509; -pub const TCSETA: ::c_int = 21510; -pub const TCSETAW: ::c_int = 21511; -pub const TCSETAF: ::c_int = 21512; -pub const TCSBRK: ::c_int = 21513; -pub const TCXONC: ::c_int = 21514; -pub const TCFLSH: ::c_int = 21515; -pub const TIOCINQ: ::c_int = 21531; -pub const TIOCGPGRP: ::c_int = 21519; -pub const TIOCSPGRP: ::c_int = 21520; -pub const TIOCOUTQ: ::c_int = 21521; -pub const TIOCGWINSZ: ::c_int = 21523; -pub const TIOCSWINSZ: ::c_int = 21524; -pub const FIONREAD: ::c_int = 21531; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; - -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_close: ::c_long = 57; -pub const SYS_fstat: ::c_long = 80; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_brk: ::c_long = 214; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_dup: ::c_long = 23; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_sendfile: ::c_long = 71; -pub const SYS_socket: ::c_long = 198; -pub const SYS_connect: ::c_long = 203; -pub const SYS_accept: ::c_long = 202; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_exit: ::c_long = 93; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_kill: ::c_long = 129; -pub const SYS_uname: ::c_long = 160; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semop: ::c_long = 193; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_flock: ::c_long = 32; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_umask: ::c_long = 166; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_times: ::c_long = 153; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_personality: ::c_long = 92; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_sync: ::c_long = 81; -pub const SYS_acct: ::c_long = 89; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_mount: ::c_long = 40; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_futex: ::c_long = 98; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_fadvise64: ::c_long = 223; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_openat: ::c_long = 56; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_newfstatat: ::c_long = 79; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_setns: ::c_long = 268; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/align.rs deleted file mode 100644 index 79544176a..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(8))] - pub struct max_align_t { - priv_: [f64; 3] - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/mod.rs deleted file mode 100644 index aaca917fa..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ /dev/null @@ -1,899 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - __st_dev_padding: ::c_int, - __st_ino_truncated: ::c_long, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_int, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::ino_t, - } - - pub struct stat64 { - pub st_dev: ::dev_t, - __st_dev_padding: ::c_int, - __st_ino_truncated: ::c_long, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __st_rdev_padding: ::c_int, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::ino_t, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_int, - __unused1: ::c_long, - __unused2: ::c_long - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_int, - pub shm_dtime: ::time_t, - __unused2: ::c_int, - pub shm_ctime: ::time_t, - __unused3: ::c_int, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __unused1: ::c_int, - pub msg_rtime: ::time_t, - __unused2: ::c_int, - pub msg_ctime: ::time_t, - __unused3: ::c_int, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct mcontext_t { - __private: [u32; 22] - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } -} - -s_no_extra_traits! { - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, - __private: [u8; 112], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - && self - .__private - .iter() - .zip(other.__private.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for ucontext_t {} - - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - // Ignore __private field - .finish() - } - } - - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - self.__private.hash(state); - } - } - } -} - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; - -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_LARGEFILE: ::c_int = 0o0100000; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; - -pub const SOCK_NONBLOCK: ::c_int = 2048; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_SEQPACKET: ::c_int = 5; - -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const EXTPROC: ::tcflag_t = 0x00010000; - -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_32BIT: ::c_int = 0x0040; - -pub const F_GETLK: ::c_int = 12; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 13; -pub const F_SETLKW: ::c_int = 14; -pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const VEOF: usize = 4; -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const PTRACE_SYSEMU: ::c_int = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 32; - -// Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86old: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_vm86: ::c_long = 166; -pub const SYS_query_module: ::c_long = 167; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_getpmsg: ::c_long = 188; -pub const SYS_putpmsg: ::c_long = 189; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_pivot_root: ::c_long = 217; -pub const SYS_mincore: ::c_long = 218; -pub const SYS_madvise: ::c_long = 219; -pub const SYS_getdents64: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_set_thread_area: ::c_long = 243; -pub const SYS_get_thread_area: ::c_long = 244; -pub const SYS_io_setup: ::c_long = 245; -pub const SYS_io_destroy: ::c_long = 246; -pub const SYS_io_getevents: ::c_long = 247; -pub const SYS_io_submit: ::c_long = 248; -pub const SYS_io_cancel: ::c_long = 249; -pub const SYS_fadvise64: ::c_long = 250; -pub const SYS_exit_group: ::c_long = 252; -pub const SYS_lookup_dcookie: ::c_long = 253; -pub const SYS_epoll_create: ::c_long = 254; -pub const SYS_epoll_ctl: ::c_long = 255; -pub const SYS_epoll_wait: ::c_long = 256; -pub const SYS_remap_file_pages: ::c_long = 257; -pub const SYS_set_tid_address: ::c_long = 258; -pub const SYS_timer_create: ::c_long = 259; -pub const SYS_timer_settime: ::c_long = 260; -pub const SYS_timer_gettime: ::c_long = 261; -pub const SYS_timer_getoverrun: ::c_long = 262; -pub const SYS_timer_delete: ::c_long = 263; -pub const SYS_clock_settime: ::c_long = 264; -pub const SYS_clock_gettime: ::c_long = 265; -pub const SYS_clock_getres: ::c_long = 266; -pub const SYS_clock_nanosleep: ::c_long = 267; -pub const SYS_statfs64: ::c_long = 268; -pub const SYS_fstatfs64: ::c_long = 269; -pub const SYS_tgkill: ::c_long = 270; -pub const SYS_utimes: ::c_long = 271; -pub const SYS_fadvise64_64: ::c_long = 272; -pub const SYS_vserver: ::c_long = 273; -pub const SYS_mbind: ::c_long = 274; -pub const SYS_get_mempolicy: ::c_long = 275; -pub const SYS_set_mempolicy: ::c_long = 276; -pub const SYS_mq_open: ::c_long = 277; -pub const SYS_mq_unlink: ::c_long = 278; -pub const SYS_mq_timedsend: ::c_long = 279; -pub const SYS_mq_timedreceive: ::c_long = 280; -pub const SYS_mq_notify: ::c_long = 281; -pub const SYS_mq_getsetattr: ::c_long = 282; -pub const SYS_kexec_load: ::c_long = 283; -pub const SYS_waitid: ::c_long = 284; -pub const SYS_add_key: ::c_long = 286; -pub const SYS_request_key: ::c_long = 287; -pub const SYS_keyctl: ::c_long = 288; -pub const SYS_ioprio_set: ::c_long = 289; -pub const SYS_ioprio_get: ::c_long = 290; -pub const SYS_inotify_init: ::c_long = 291; -pub const SYS_inotify_add_watch: ::c_long = 292; -pub const SYS_inotify_rm_watch: ::c_long = 293; -pub const SYS_migrate_pages: ::c_long = 294; -pub const SYS_openat: ::c_long = 295; -pub const SYS_mkdirat: ::c_long = 296; -pub const SYS_mknodat: ::c_long = 297; -pub const SYS_fchownat: ::c_long = 298; -pub const SYS_futimesat: ::c_long = 299; -pub const SYS_fstatat64: ::c_long = 300; -pub const SYS_unlinkat: ::c_long = 301; -pub const SYS_renameat: ::c_long = 302; -pub const SYS_linkat: ::c_long = 303; -pub const SYS_symlinkat: ::c_long = 304; -pub const SYS_readlinkat: ::c_long = 305; -pub const SYS_fchmodat: ::c_long = 306; -pub const SYS_faccessat: ::c_long = 307; -pub const SYS_pselect6: ::c_long = 308; -pub const SYS_ppoll: ::c_long = 309; -pub const SYS_unshare: ::c_long = 310; -pub const SYS_set_robust_list: ::c_long = 311; -pub const SYS_get_robust_list: ::c_long = 312; -pub const SYS_splice: ::c_long = 313; -pub const SYS_sync_file_range: ::c_long = 314; -pub const SYS_tee: ::c_long = 315; -pub const SYS_vmsplice: ::c_long = 316; -pub const SYS_move_pages: ::c_long = 317; -pub const SYS_getcpu: ::c_long = 318; -pub const SYS_epoll_pwait: ::c_long = 319; -pub const SYS_utimensat: ::c_long = 320; -pub const SYS_signalfd: ::c_long = 321; -pub const SYS_timerfd_create: ::c_long = 322; -pub const SYS_eventfd: ::c_long = 323; -pub const SYS_fallocate: ::c_long = 324; -pub const SYS_timerfd_settime: ::c_long = 325; -pub const SYS_timerfd_gettime: ::c_long = 326; -pub const SYS_signalfd4: ::c_long = 327; -pub const SYS_eventfd2: ::c_long = 328; -pub const SYS_epoll_create1: ::c_long = 329; -pub const SYS_dup3: ::c_long = 330; -pub const SYS_pipe2: ::c_long = 331; -pub const SYS_inotify_init1: ::c_long = 332; -pub const SYS_preadv: ::c_long = 333; -pub const SYS_pwritev: ::c_long = 334; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 335; -pub const SYS_perf_event_open: ::c_long = 336; -pub const SYS_recvmmsg: ::c_long = 337; -pub const SYS_fanotify_init: ::c_long = 338; -pub const SYS_fanotify_mark: ::c_long = 339; -pub const SYS_prlimit64: ::c_long = 340; -pub const SYS_name_to_handle_at: ::c_long = 341; -pub const SYS_open_by_handle_at: ::c_long = 342; -pub const SYS_clock_adjtime: ::c_long = 343; -pub const SYS_syncfs: ::c_long = 344; -pub const SYS_sendmmsg: ::c_long = 345; -pub const SYS_setns: ::c_long = 346; -pub const SYS_process_vm_readv: ::c_long = 347; -pub const SYS_process_vm_writev: ::c_long = 348; -pub const SYS_kcmp: ::c_long = 349; -pub const SYS_finit_module: ::c_long = 350; -pub const SYS_sched_setattr: ::c_long = 351; -pub const SYS_sched_getattr: ::c_long = 352; -pub const SYS_renameat2: ::c_long = 353; -pub const SYS_seccomp: ::c_long = 354; -pub const SYS_getrandom: ::c_long = 355; -pub const SYS_memfd_create: ::c_long = 356; -pub const SYS_bpf: ::c_long = 357; -pub const SYS_execveat: ::c_long = 358; -pub const SYS_socket: ::c_long = 359; -pub const SYS_socketpair: ::c_long = 360; -pub const SYS_bind: ::c_long = 361; -pub const SYS_connect: ::c_long = 362; -pub const SYS_listen: ::c_long = 363; -pub const SYS_accept4: ::c_long = 364; -pub const SYS_getsockopt: ::c_long = 365; -pub const SYS_setsockopt: ::c_long = 366; -pub const SYS_getsockname: ::c_long = 367; -pub const SYS_getpeername: ::c_long = 368; -pub const SYS_sendto: ::c_long = 369; -pub const SYS_sendmsg: ::c_long = 370; -pub const SYS_recvfrom: ::c_long = 371; -pub const SYS_recvmsg: ::c_long = 372; -pub const SYS_shutdown: ::c_long = 373; -pub const SYS_userfaultfd: ::c_long = 374; -pub const SYS_membarrier: ::c_long = 375; -pub const SYS_mlock2: ::c_long = 376; -pub const SYS_copy_file_range: ::c_long = 377; -pub const SYS_preadv2: ::c_long = 378; -pub const SYS_pwritev2: ::c_long = 379; -pub const SYS_pkey_mprotect: ::c_long = 380; -pub const SYS_pkey_alloc: ::c_long = 381; -pub const SYS_pkey_free: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -// offsets in user_regs_structs, from sys/reg.h -pub const EBX: ::c_int = 0; -pub const ECX: ::c_int = 1; -pub const EDX: ::c_int = 2; -pub const ESI: ::c_int = 3; -pub const EDI: ::c_int = 4; -pub const EBP: ::c_int = 5; -pub const EAX: ::c_int = 6; -pub const DS: ::c_int = 7; -pub const ES: ::c_int = 8; -pub const FS: ::c_int = 9; -pub const GS: ::c_int = 10; -pub const ORIG_EAX: ::c_int = 11; -pub const EIP: ::c_int = 12; -pub const CS: ::c_int = 13; -pub const EFL: ::c_int = 14; -pub const UESP: ::c_int = 15; -pub const SS: ::c_int = 16; - -extern "C" { - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/align.rs deleted file mode 100644 index a4bf9bff4..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/align.rs +++ /dev/null @@ -1,42 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f32; 8] - } -} - -s! { - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[repr(align(16))] - pub struct mcontext_t { - pub fault_address: ::c_ulong, - pub regs: [::c_ulong; 31], - pub sp: ::c_ulong, - pub pc: ::c_ulong, - pub pstate: ::c_ulong, - __reserved: [[u64; 32]; 16], - } - - #[repr(align(8))] - pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs deleted file mode 100644 index 4535e73ee..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs +++ /dev/null @@ -1,7 +0,0 @@ -s! { - pub struct user_fpsimd_struct { - pub vregs: [::__uint128_t; 32], - pub fpsr: u32, - pub fpcr: u32, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs deleted file mode 100644 index 14b4bc6d6..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ /dev/null @@ -1,660 +0,0 @@ -pub type c_char = u8; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; -pub type wchar_t = u32; -pub type nlink_t = u32; -pub type blksize_t = ::c_int; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad0: ::c_ulong, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - __pad1: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_uint; 2], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad0: ::c_ulong, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - __pad1: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_uint; 2], - } - - pub struct user_regs_struct { - pub regs: [::c_ulonglong; 31], - pub sp: ::c_ulonglong, - pub pc: ::c_ulonglong, - pub pstate: ::c_ulonglong, - } - - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, - } -} - -pub const O_APPEND: ::c_int = 1024; -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_LARGEFILE: ::c_int = 0x20000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_ASYNC: ::c_int = 0x2000; - -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -// bits/hwcap.h -pub const HWCAP_FP: ::c_ulong = 1 << 0; -pub const HWCAP_ASIMD: ::c_ulong = 1 << 1; -pub const HWCAP_EVTSTRM: ::c_ulong = 1 << 2; -pub const HWCAP_AES: ::c_ulong = 1 << 3; -pub const HWCAP_PMULL: ::c_ulong = 1 << 4; -pub const HWCAP_SHA1: ::c_ulong = 1 << 5; -pub const HWCAP_SHA2: ::c_ulong = 1 << 6; -pub const HWCAP_CRC32: ::c_ulong = 1 << 7; -pub const HWCAP_ATOMICS: ::c_ulong = 1 << 8; -pub const HWCAP_FPHP: ::c_ulong = 1 << 9; -pub const HWCAP_ASIMDHP: ::c_ulong = 1 << 10; -pub const HWCAP_CPUID: ::c_ulong = 1 << 11; -pub const HWCAP_ASIMDRDM: ::c_ulong = 1 << 12; -pub const HWCAP_JSCVT: ::c_ulong = 1 << 13; -pub const HWCAP_FCMA: ::c_ulong = 1 << 14; -pub const HWCAP_LRCPC: ::c_ulong = 1 << 15; -pub const HWCAP_DCPOP: ::c_ulong = 1 << 16; -pub const HWCAP_SHA3: ::c_ulong = 1 << 17; -pub const HWCAP_SM3: ::c_ulong = 1 << 18; -pub const HWCAP_SM4: ::c_ulong = 1 << 19; -pub const HWCAP_ASIMDDP: ::c_ulong = 1 << 20; -pub const HWCAP_SHA512: ::c_ulong = 1 << 21; -pub const HWCAP_SVE: ::c_ulong = 1 << 22; -pub const HWCAP_ASIMDFHM: ::c_ulong = 1 << 23; -pub const HWCAP_DIT: ::c_ulong = 1 << 24; -pub const HWCAP_USCAT: ::c_ulong = 1 << 25; -pub const HWCAP_ILRCPC: ::c_ulong = 1 << 26; -pub const HWCAP_FLAGM: ::c_ulong = 1 << 27; -pub const HWCAP_SSBS: ::c_ulong = 1 << 28; -pub const HWCAP_SB: ::c_ulong = 1 << 29; -pub const HWCAP_PACA: ::c_ulong = 1 << 30; -pub const HWCAP_PACG: ::c_ulong = 1 << 31; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const VEOF: usize = 4; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const MINSIGSTKSZ: ::size_t = 6144; -pub const SIGSTKSZ: ::size_t = 12288; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_dup: ::c_long = 23; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_flock: ::c_long = 32; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_renameat: ::c_long = 38; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_mount: ::c_long = 40; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_openat: ::c_long = 56; -pub const SYS_close: ::c_long = 57; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_newfstatat: ::c_long = 79; -pub const SYS_fstat: ::c_long = 80; -pub const SYS_sync: ::c_long = 81; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_acct: ::c_long = 89; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_personality: ::c_long = 92; -pub const SYS_exit: ::c_long = 93; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_futex: ::c_long = 98; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_kill: ::c_long = 129; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_times: ::c_long = 153; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_uname: ::c_long = 160; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_umask: ::c_long = 166; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_semop: ::c_long = 193; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_socket: ::c_long = 198; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_accept: ::c_long = 202; -pub const SYS_connect: ::c_long = 203; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_brk: ::c_long = 214; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_setns: ::c_long = 268; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const EDEADLK: ::c_int = 35; -pub const EDEADLOCK: ::c_int = EDEADLK; - -pub const EXTPROC: ::tcflag_t = 0x00010000; -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} - -cfg_if! { - if #[cfg(libc_int128)] { - mod int128; - pub use self::int128::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mips64.rs deleted file mode 100644 index 22ac91690..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mips64.rs +++ /dev/null @@ -1,690 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; -pub type __u64 = ::c_ulong; -pub type __s64 = ::c_long; -pub type nlink_t = u64; -pub type blksize_t = i64; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - __pad1: [::c_int; 3], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: [::c_uint; 2], - pub st_size: ::off_t, - __pad3: ::c_int, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - __pad4: ::c_uint, - pub st_blocks: ::blkcnt_t, - __pad5: [::c_int; 14], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - __pad1: [::c_int; 3], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - __pad2: [::c_uint; 2], - pub st_size: ::off_t, - __pad3: ::c_int, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - __pad4: ::c_uint, - pub st_blocks: ::blkcnt_t, - __pad5: [::c_int; 14], - } - - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 5], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 5], - } - - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_int, - __pad1: ::c_int, - __unused1: ::c_ulong, - __unused2: ::c_ulong - } -} - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; - -pub const SYS_read: ::c_long = 5000 + 0; -pub const SYS_write: ::c_long = 5000 + 1; -pub const SYS_open: ::c_long = 5000 + 2; -pub const SYS_close: ::c_long = 5000 + 3; -pub const SYS_stat: ::c_long = 5000 + 4; -pub const SYS_fstat: ::c_long = 5000 + 5; -pub const SYS_lstat: ::c_long = 5000 + 6; -pub const SYS_poll: ::c_long = 5000 + 7; -pub const SYS_lseek: ::c_long = 5000 + 8; -pub const SYS_mmap: ::c_long = 5000 + 9; -pub const SYS_mprotect: ::c_long = 5000 + 10; -pub const SYS_munmap: ::c_long = 5000 + 11; -pub const SYS_brk: ::c_long = 5000 + 12; -pub const SYS_rt_sigaction: ::c_long = 5000 + 13; -pub const SYS_rt_sigprocmask: ::c_long = 5000 + 14; -pub const SYS_ioctl: ::c_long = 5000 + 15; -pub const SYS_pread64: ::c_long = 5000 + 16; -pub const SYS_pwrite64: ::c_long = 5000 + 17; -pub const SYS_readv: ::c_long = 5000 + 18; -pub const SYS_writev: ::c_long = 5000 + 19; -pub const SYS_access: ::c_long = 5000 + 20; -pub const SYS_pipe: ::c_long = 5000 + 21; -pub const SYS__newselect: ::c_long = 5000 + 22; -pub const SYS_sched_yield: ::c_long = 5000 + 23; -pub const SYS_mremap: ::c_long = 5000 + 24; -pub const SYS_msync: ::c_long = 5000 + 25; -pub const SYS_mincore: ::c_long = 5000 + 26; -pub const SYS_madvise: ::c_long = 5000 + 27; -pub const SYS_shmget: ::c_long = 5000 + 28; -pub const SYS_shmat: ::c_long = 5000 + 29; -pub const SYS_shmctl: ::c_long = 5000 + 30; -pub const SYS_dup: ::c_long = 5000 + 31; -pub const SYS_dup2: ::c_long = 5000 + 32; -pub const SYS_pause: ::c_long = 5000 + 33; -pub const SYS_nanosleep: ::c_long = 5000 + 34; -pub const SYS_getitimer: ::c_long = 5000 + 35; -pub const SYS_setitimer: ::c_long = 5000 + 36; -pub const SYS_alarm: ::c_long = 5000 + 37; -pub const SYS_getpid: ::c_long = 5000 + 38; -pub const SYS_sendfile: ::c_long = 5000 + 39; -pub const SYS_socket: ::c_long = 5000 + 40; -pub const SYS_connect: ::c_long = 5000 + 41; -pub const SYS_accept: ::c_long = 5000 + 42; -pub const SYS_sendto: ::c_long = 5000 + 43; -pub const SYS_recvfrom: ::c_long = 5000 + 44; -pub const SYS_sendmsg: ::c_long = 5000 + 45; -pub const SYS_recvmsg: ::c_long = 5000 + 46; -pub const SYS_shutdown: ::c_long = 5000 + 47; -pub const SYS_bind: ::c_long = 5000 + 48; -pub const SYS_listen: ::c_long = 5000 + 49; -pub const SYS_getsockname: ::c_long = 5000 + 50; -pub const SYS_getpeername: ::c_long = 5000 + 51; -pub const SYS_socketpair: ::c_long = 5000 + 52; -pub const SYS_setsockopt: ::c_long = 5000 + 53; -pub const SYS_getsockopt: ::c_long = 5000 + 54; -pub const SYS_clone: ::c_long = 5000 + 55; -pub const SYS_fork: ::c_long = 5000 + 56; -pub const SYS_execve: ::c_long = 5000 + 57; -pub const SYS_exit: ::c_long = 5000 + 58; -pub const SYS_wait4: ::c_long = 5000 + 59; -pub const SYS_kill: ::c_long = 5000 + 60; -pub const SYS_uname: ::c_long = 5000 + 61; -pub const SYS_semget: ::c_long = 5000 + 62; -pub const SYS_semop: ::c_long = 5000 + 63; -pub const SYS_semctl: ::c_long = 5000 + 64; -pub const SYS_shmdt: ::c_long = 5000 + 65; -pub const SYS_msgget: ::c_long = 5000 + 66; -pub const SYS_msgsnd: ::c_long = 5000 + 67; -pub const SYS_msgrcv: ::c_long = 5000 + 68; -pub const SYS_msgctl: ::c_long = 5000 + 69; -pub const SYS_fcntl: ::c_long = 5000 + 70; -pub const SYS_flock: ::c_long = 5000 + 71; -pub const SYS_fsync: ::c_long = 5000 + 72; -pub const SYS_fdatasync: ::c_long = 5000 + 73; -pub const SYS_truncate: ::c_long = 5000 + 74; -pub const SYS_ftruncate: ::c_long = 5000 + 75; -pub const SYS_getdents: ::c_long = 5000 + 76; -pub const SYS_getcwd: ::c_long = 5000 + 77; -pub const SYS_chdir: ::c_long = 5000 + 78; -pub const SYS_fchdir: ::c_long = 5000 + 79; -pub const SYS_rename: ::c_long = 5000 + 80; -pub const SYS_mkdir: ::c_long = 5000 + 81; -pub const SYS_rmdir: ::c_long = 5000 + 82; -pub const SYS_creat: ::c_long = 5000 + 83; -pub const SYS_link: ::c_long = 5000 + 84; -pub const SYS_unlink: ::c_long = 5000 + 85; -pub const SYS_symlink: ::c_long = 5000 + 86; -pub const SYS_readlink: ::c_long = 5000 + 87; -pub const SYS_chmod: ::c_long = 5000 + 88; -pub const SYS_fchmod: ::c_long = 5000 + 89; -pub const SYS_chown: ::c_long = 5000 + 90; -pub const SYS_fchown: ::c_long = 5000 + 91; -pub const SYS_lchown: ::c_long = 5000 + 92; -pub const SYS_umask: ::c_long = 5000 + 93; -pub const SYS_gettimeofday: ::c_long = 5000 + 94; -pub const SYS_getrlimit: ::c_long = 5000 + 95; -pub const SYS_getrusage: ::c_long = 5000 + 96; -pub const SYS_sysinfo: ::c_long = 5000 + 97; -pub const SYS_times: ::c_long = 5000 + 98; -pub const SYS_ptrace: ::c_long = 5000 + 99; -pub const SYS_getuid: ::c_long = 5000 + 100; -pub const SYS_syslog: ::c_long = 5000 + 101; -pub const SYS_getgid: ::c_long = 5000 + 102; -pub const SYS_setuid: ::c_long = 5000 + 103; -pub const SYS_setgid: ::c_long = 5000 + 104; -pub const SYS_geteuid: ::c_long = 5000 + 105; -pub const SYS_getegid: ::c_long = 5000 + 106; -pub const SYS_setpgid: ::c_long = 5000 + 107; -pub const SYS_getppid: ::c_long = 5000 + 108; -pub const SYS_getpgrp: ::c_long = 5000 + 109; -pub const SYS_setsid: ::c_long = 5000 + 110; -pub const SYS_setreuid: ::c_long = 5000 + 111; -pub const SYS_setregid: ::c_long = 5000 + 112; -pub const SYS_getgroups: ::c_long = 5000 + 113; -pub const SYS_setgroups: ::c_long = 5000 + 114; -pub const SYS_setresuid: ::c_long = 5000 + 115; -pub const SYS_getresuid: ::c_long = 5000 + 116; -pub const SYS_setresgid: ::c_long = 5000 + 117; -pub const SYS_getresgid: ::c_long = 5000 + 118; -pub const SYS_getpgid: ::c_long = 5000 + 119; -pub const SYS_setfsuid: ::c_long = 5000 + 120; -pub const SYS_setfsgid: ::c_long = 5000 + 121; -pub const SYS_getsid: ::c_long = 5000 + 122; -pub const SYS_capget: ::c_long = 5000 + 123; -pub const SYS_capset: ::c_long = 5000 + 124; -pub const SYS_rt_sigpending: ::c_long = 5000 + 125; -pub const SYS_rt_sigtimedwait: ::c_long = 5000 + 126; -pub const SYS_rt_sigqueueinfo: ::c_long = 5000 + 127; -pub const SYS_rt_sigsuspend: ::c_long = 5000 + 128; -pub const SYS_sigaltstack: ::c_long = 5000 + 129; -pub const SYS_utime: ::c_long = 5000 + 130; -pub const SYS_mknod: ::c_long = 5000 + 131; -pub const SYS_personality: ::c_long = 5000 + 132; -pub const SYS_ustat: ::c_long = 5000 + 133; -pub const SYS_statfs: ::c_long = 5000 + 134; -pub const SYS_fstatfs: ::c_long = 5000 + 135; -pub const SYS_sysfs: ::c_long = 5000 + 136; -pub const SYS_getpriority: ::c_long = 5000 + 137; -pub const SYS_setpriority: ::c_long = 5000 + 138; -pub const SYS_sched_setparam: ::c_long = 5000 + 139; -pub const SYS_sched_getparam: ::c_long = 5000 + 140; -pub const SYS_sched_setscheduler: ::c_long = 5000 + 141; -pub const SYS_sched_getscheduler: ::c_long = 5000 + 142; -pub const SYS_sched_get_priority_max: ::c_long = 5000 + 143; -pub const SYS_sched_get_priority_min: ::c_long = 5000 + 144; -pub const SYS_sched_rr_get_interval: ::c_long = 5000 + 145; -pub const SYS_mlock: ::c_long = 5000 + 146; -pub const SYS_munlock: ::c_long = 5000 + 147; -pub const SYS_mlockall: ::c_long = 5000 + 148; -pub const SYS_munlockall: ::c_long = 5000 + 149; -pub const SYS_vhangup: ::c_long = 5000 + 150; -pub const SYS_pivot_root: ::c_long = 5000 + 151; -pub const SYS__sysctl: ::c_long = 5000 + 152; -pub const SYS_prctl: ::c_long = 5000 + 153; -pub const SYS_adjtimex: ::c_long = 5000 + 154; -pub const SYS_setrlimit: ::c_long = 5000 + 155; -pub const SYS_chroot: ::c_long = 5000 + 156; -pub const SYS_sync: ::c_long = 5000 + 157; -pub const SYS_acct: ::c_long = 5000 + 158; -pub const SYS_settimeofday: ::c_long = 5000 + 159; -pub const SYS_mount: ::c_long = 5000 + 160; -pub const SYS_umount2: ::c_long = 5000 + 161; -pub const SYS_swapon: ::c_long = 5000 + 162; -pub const SYS_swapoff: ::c_long = 5000 + 163; -pub const SYS_reboot: ::c_long = 5000 + 164; -pub const SYS_sethostname: ::c_long = 5000 + 165; -pub const SYS_setdomainname: ::c_long = 5000 + 166; -pub const SYS_create_module: ::c_long = 5000 + 167; -pub const SYS_init_module: ::c_long = 5000 + 168; -pub const SYS_delete_module: ::c_long = 5000 + 169; -pub const SYS_get_kernel_syms: ::c_long = 5000 + 170; -pub const SYS_query_module: ::c_long = 5000 + 171; -pub const SYS_quotactl: ::c_long = 5000 + 172; -pub const SYS_nfsservctl: ::c_long = 5000 + 173; -pub const SYS_getpmsg: ::c_long = 5000 + 174; -pub const SYS_putpmsg: ::c_long = 5000 + 175; -pub const SYS_afs_syscall: ::c_long = 5000 + 176; -pub const SYS_gettid: ::c_long = 5000 + 178; -pub const SYS_readahead: ::c_long = 5000 + 179; -pub const SYS_setxattr: ::c_long = 5000 + 180; -pub const SYS_lsetxattr: ::c_long = 5000 + 181; -pub const SYS_fsetxattr: ::c_long = 5000 + 182; -pub const SYS_getxattr: ::c_long = 5000 + 183; -pub const SYS_lgetxattr: ::c_long = 5000 + 184; -pub const SYS_fgetxattr: ::c_long = 5000 + 185; -pub const SYS_listxattr: ::c_long = 5000 + 186; -pub const SYS_llistxattr: ::c_long = 5000 + 187; -pub const SYS_flistxattr: ::c_long = 5000 + 188; -pub const SYS_removexattr: ::c_long = 5000 + 189; -pub const SYS_lremovexattr: ::c_long = 5000 + 190; -pub const SYS_fremovexattr: ::c_long = 5000 + 191; -pub const SYS_tkill: ::c_long = 5000 + 192; -pub const SYS_futex: ::c_long = 5000 + 194; -pub const SYS_sched_setaffinity: ::c_long = 5000 + 195; -pub const SYS_sched_getaffinity: ::c_long = 5000 + 196; -pub const SYS_cacheflush: ::c_long = 5000 + 197; -pub const SYS_cachectl: ::c_long = 5000 + 198; -pub const SYS_sysmips: ::c_long = 5000 + 199; -pub const SYS_io_setup: ::c_long = 5000 + 200; -pub const SYS_io_destroy: ::c_long = 5000 + 201; -pub const SYS_io_getevents: ::c_long = 5000 + 202; -pub const SYS_io_submit: ::c_long = 5000 + 203; -pub const SYS_io_cancel: ::c_long = 5000 + 204; -pub const SYS_exit_group: ::c_long = 5000 + 205; -pub const SYS_lookup_dcookie: ::c_long = 5000 + 206; -pub const SYS_epoll_create: ::c_long = 5000 + 207; -pub const SYS_epoll_ctl: ::c_long = 5000 + 208; -pub const SYS_epoll_wait: ::c_long = 5000 + 209; -pub const SYS_remap_file_pages: ::c_long = 5000 + 210; -pub const SYS_rt_sigreturn: ::c_long = 5000 + 211; -pub const SYS_set_tid_address: ::c_long = 5000 + 212; -pub const SYS_restart_syscall: ::c_long = 5000 + 213; -pub const SYS_semtimedop: ::c_long = 5000 + 214; -pub const SYS_fadvise64: ::c_long = 5000 + 215; -pub const SYS_timer_create: ::c_long = 5000 + 216; -pub const SYS_timer_settime: ::c_long = 5000 + 217; -pub const SYS_timer_gettime: ::c_long = 5000 + 218; -pub const SYS_timer_getoverrun: ::c_long = 5000 + 219; -pub const SYS_timer_delete: ::c_long = 5000 + 220; -pub const SYS_clock_settime: ::c_long = 5000 + 221; -pub const SYS_clock_gettime: ::c_long = 5000 + 222; -pub const SYS_clock_getres: ::c_long = 5000 + 223; -pub const SYS_clock_nanosleep: ::c_long = 5000 + 224; -pub const SYS_tgkill: ::c_long = 5000 + 225; -pub const SYS_utimes: ::c_long = 5000 + 226; -pub const SYS_mbind: ::c_long = 5000 + 227; -pub const SYS_get_mempolicy: ::c_long = 5000 + 228; -pub const SYS_set_mempolicy: ::c_long = 5000 + 229; -pub const SYS_mq_open: ::c_long = 5000 + 230; -pub const SYS_mq_unlink: ::c_long = 5000 + 231; -pub const SYS_mq_timedsend: ::c_long = 5000 + 232; -pub const SYS_mq_timedreceive: ::c_long = 5000 + 233; -pub const SYS_mq_notify: ::c_long = 5000 + 234; -pub const SYS_mq_getsetattr: ::c_long = 5000 + 235; -pub const SYS_vserver: ::c_long = 5000 + 236; -pub const SYS_waitid: ::c_long = 5000 + 237; -/* pub const SYS_sys_setaltroot: ::c_long = 5000 + 238; */ -pub const SYS_add_key: ::c_long = 5000 + 239; -pub const SYS_request_key: ::c_long = 5000 + 240; -pub const SYS_keyctl: ::c_long = 5000 + 241; -pub const SYS_set_thread_area: ::c_long = 5000 + 242; -pub const SYS_inotify_init: ::c_long = 5000 + 243; -pub const SYS_inotify_add_watch: ::c_long = 5000 + 244; -pub const SYS_inotify_rm_watch: ::c_long = 5000 + 245; -pub const SYS_migrate_pages: ::c_long = 5000 + 246; -pub const SYS_openat: ::c_long = 5000 + 247; -pub const SYS_mkdirat: ::c_long = 5000 + 248; -pub const SYS_mknodat: ::c_long = 5000 + 249; -pub const SYS_fchownat: ::c_long = 5000 + 250; -pub const SYS_futimesat: ::c_long = 5000 + 251; -pub const SYS_newfstatat: ::c_long = 5000 + 252; -pub const SYS_unlinkat: ::c_long = 5000 + 253; -pub const SYS_renameat: ::c_long = 5000 + 254; -pub const SYS_linkat: ::c_long = 5000 + 255; -pub const SYS_symlinkat: ::c_long = 5000 + 256; -pub const SYS_readlinkat: ::c_long = 5000 + 257; -pub const SYS_fchmodat: ::c_long = 5000 + 258; -pub const SYS_faccessat: ::c_long = 5000 + 259; -pub const SYS_pselect6: ::c_long = 5000 + 260; -pub const SYS_ppoll: ::c_long = 5000 + 261; -pub const SYS_unshare: ::c_long = 5000 + 262; -pub const SYS_splice: ::c_long = 5000 + 263; -pub const SYS_sync_file_range: ::c_long = 5000 + 264; -pub const SYS_tee: ::c_long = 5000 + 265; -pub const SYS_vmsplice: ::c_long = 5000 + 266; -pub const SYS_move_pages: ::c_long = 5000 + 267; -pub const SYS_set_robust_list: ::c_long = 5000 + 268; -pub const SYS_get_robust_list: ::c_long = 5000 + 269; -pub const SYS_kexec_load: ::c_long = 5000 + 270; -pub const SYS_getcpu: ::c_long = 5000 + 271; -pub const SYS_epoll_pwait: ::c_long = 5000 + 272; -pub const SYS_ioprio_set: ::c_long = 5000 + 273; -pub const SYS_ioprio_get: ::c_long = 5000 + 274; -pub const SYS_utimensat: ::c_long = 5000 + 275; -pub const SYS_signalfd: ::c_long = 5000 + 276; -pub const SYS_timerfd: ::c_long = 5000 + 277; -pub const SYS_eventfd: ::c_long = 5000 + 278; -pub const SYS_fallocate: ::c_long = 5000 + 279; -pub const SYS_timerfd_create: ::c_long = 5000 + 280; -pub const SYS_timerfd_gettime: ::c_long = 5000 + 281; -pub const SYS_timerfd_settime: ::c_long = 5000 + 282; -pub const SYS_signalfd4: ::c_long = 5000 + 283; -pub const SYS_eventfd2: ::c_long = 5000 + 284; -pub const SYS_epoll_create1: ::c_long = 5000 + 285; -pub const SYS_dup3: ::c_long = 5000 + 286; -pub const SYS_pipe2: ::c_long = 5000 + 287; -pub const SYS_inotify_init1: ::c_long = 5000 + 288; -pub const SYS_preadv: ::c_long = 5000 + 289; -pub const SYS_pwritev: ::c_long = 5000 + 290; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 5000 + 291; -pub const SYS_perf_event_open: ::c_long = 5000 + 292; -pub const SYS_accept4: ::c_long = 5000 + 293; -pub const SYS_recvmmsg: ::c_long = 5000 + 294; -pub const SYS_fanotify_init: ::c_long = 5000 + 295; -pub const SYS_fanotify_mark: ::c_long = 5000 + 296; -pub const SYS_prlimit64: ::c_long = 5000 + 297; -pub const SYS_name_to_handle_at: ::c_long = 5000 + 298; -pub const SYS_open_by_handle_at: ::c_long = 5000 + 299; -pub const SYS_clock_adjtime: ::c_long = 5000 + 300; -pub const SYS_syncfs: ::c_long = 5000 + 301; -pub const SYS_sendmmsg: ::c_long = 5000 + 302; -pub const SYS_setns: ::c_long = 5000 + 303; -pub const SYS_process_vm_readv: ::c_long = 5000 + 304; -pub const SYS_process_vm_writev: ::c_long = 5000 + 305; -pub const SYS_kcmp: ::c_long = 5000 + 306; -pub const SYS_finit_module: ::c_long = 5000 + 307; -pub const SYS_getdents64: ::c_long = 5000 + 308; -pub const SYS_sched_setattr: ::c_long = 5000 + 309; -pub const SYS_sched_getattr: ::c_long = 5000 + 310; -pub const SYS_renameat2: ::c_long = 5000 + 311; -pub const SYS_seccomp: ::c_long = 5000 + 312; -pub const SYS_getrandom: ::c_long = 5000 + 313; -pub const SYS_memfd_create: ::c_long = 5000 + 314; -pub const SYS_bpf: ::c_long = 5000 + 315; -pub const SYS_execveat: ::c_long = 5000 + 316; -pub const SYS_userfaultfd: ::c_long = 5000 + 317; -pub const SYS_membarrier: ::c_long = 5000 + 318; -pub const SYS_mlock2: ::c_long = 5000 + 319; -pub const SYS_copy_file_range: ::c_long = 5000 + 320; -pub const SYS_preadv2: ::c_long = 5000 + 321; -pub const SYS_pwritev2: ::c_long = 5000 + 322; -pub const SYS_pkey_mprotect: ::c_long = 5000 + 323; -pub const SYS_pkey_alloc: ::c_long = 5000 + 324; -pub const SYS_pkey_free: ::c_long = 5000 + 325; -pub const SYS_statx: ::c_long = 5000 + 326; -pub const SYS_pidfd_send_signal: ::c_long = 5000 + 424; -pub const SYS_io_uring_setup: ::c_long = 5000 + 425; -pub const SYS_io_uring_enter: ::c_long = 5000 + 426; -pub const SYS_io_uring_register: ::c_long = 5000 + 427; -pub const SYS_open_tree: ::c_long = 5000 + 428; -pub const SYS_move_mount: ::c_long = 5000 + 429; -pub const SYS_fsopen: ::c_long = 5000 + 430; -pub const SYS_fsconfig: ::c_long = 5000 + 431; -pub const SYS_fsmount: ::c_long = 5000 + 432; -pub const SYS_fspick: ::c_long = 5000 + 433; -pub const SYS_pidfd_open: ::c_long = 5000 + 434; -pub const SYS_clone3: ::c_long = 5000 + 435; -pub const SYS_close_range: ::c_long = 5000 + 436; -pub const SYS_openat2: ::c_long = 5000 + 437; -pub const SYS_pidfd_getfd: ::c_long = 5000 + 438; -pub const SYS_faccessat2: ::c_long = 5000 + 439; -pub const SYS_process_madvise: ::c_long = 5000 + 440; -pub const SYS_epoll_pwait2: ::c_long = 5000 + 441; -pub const SYS_mount_setattr: ::c_long = 5000 + 442; -pub const SYS_quotactl_fd: ::c_long = 5000 + 443; -pub const SYS_landlock_create_ruleset: ::c_long = 5000 + 444; -pub const SYS_landlock_add_rule: ::c_long = 5000 + 445; -pub const SYS_landlock_restrict_self: ::c_long = 5000 + 446; -pub const SYS_memfd_secret: ::c_long = 5000 + 447; -pub const SYS_process_mrelease: ::c_long = 5000 + 448; -pub const SYS_futex_waitv: ::c_long = 5000 + 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 5000 + 450; - -pub const O_DIRECT: ::c_int = 0x8000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; - -pub const O_APPEND: ::c_int = 8; -pub const O_CREAT: ::c_int = 256; -pub const O_EXCL: ::c_int = 1024; -pub const O_NOCTTY: ::c_int = 2048; -pub const O_NONBLOCK: ::c_int = 128; -pub const O_SYNC: ::c_int = 0x4010; -pub const O_RSYNC: ::c_int = 0x4010; -pub const O_DSYNC: ::c_int = 0x10; -pub const O_ASYNC: ::c_int = 0x1000; -pub const O_LARGEFILE: ::c_int = 0x2000; - -pub const EDEADLK: ::c_int = 45; -pub const ENAMETOOLONG: ::c_int = 78; -pub const ENOLCK: ::c_int = 46; -pub const ENOSYS: ::c_int = 89; -pub const ENOTEMPTY: ::c_int = 93; -pub const ELOOP: ::c_int = 90; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EDEADLOCK: ::c_int = 56; -pub const EMULTIHOP: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EBADMSG: ::c_int = 77; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const EUSERS: ::c_int = 94; -pub const ENOTSOCK: ::c_int = 95; -pub const EDESTADDRREQ: ::c_int = 96; -pub const EMSGSIZE: ::c_int = 97; -pub const EPROTOTYPE: ::c_int = 98; -pub const ENOPROTOOPT: ::c_int = 99; -pub const EPROTONOSUPPORT: ::c_int = 120; -pub const ESOCKTNOSUPPORT: ::c_int = 121; -pub const EOPNOTSUPP: ::c_int = 122; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 123; -pub const EAFNOSUPPORT: ::c_int = 124; -pub const EADDRINUSE: ::c_int = 125; -pub const EADDRNOTAVAIL: ::c_int = 126; -pub const ENETDOWN: ::c_int = 127; -pub const ENETUNREACH: ::c_int = 128; -pub const ENETRESET: ::c_int = 129; -pub const ECONNABORTED: ::c_int = 130; -pub const ECONNRESET: ::c_int = 131; -pub const ENOBUFS: ::c_int = 132; -pub const EISCONN: ::c_int = 133; -pub const ENOTCONN: ::c_int = 134; -pub const ESHUTDOWN: ::c_int = 143; -pub const ETOOMANYREFS: ::c_int = 144; -pub const ETIMEDOUT: ::c_int = 145; -pub const ECONNREFUSED: ::c_int = 146; -pub const EHOSTDOWN: ::c_int = 147; -pub const EHOSTUNREACH: ::c_int = 148; -pub const EALREADY: ::c_int = 149; -pub const EINPROGRESS: ::c_int = 150; -pub const ESTALE: ::c_int = 151; -pub const EUCLEAN: ::c_int = 135; -pub const ENOTNAM: ::c_int = 137; -pub const ENAVAIL: ::c_int = 138; -pub const EISNAM: ::c_int = 139; -pub const EREMOTEIO: ::c_int = 140; -pub const EDQUOT: ::c_int = 1133; -pub const ENOMEDIUM: ::c_int = 159; -pub const EMEDIUMTYPE: ::c_int = 160; -pub const ECANCELED: ::c_int = 158; -pub const ENOKEY: ::c_int = 161; -pub const EKEYEXPIRED: ::c_int = 162; -pub const EKEYREVOKED: ::c_int = 163; -pub const EKEYREJECTED: ::c_int = 164; -pub const EOWNERDEAD: ::c_int = 165; -pub const ENOTRECOVERABLE: ::c_int = 166; -pub const ERFKILL: ::c_int = 167; - -pub const MAP_ANON: ::c_int = 0x800; -pub const MAP_GROWSDOWN: ::c_int = 0x1000; -pub const MAP_DENYWRITE: ::c_int = 0x2000; -pub const MAP_EXECUTABLE: ::c_int = 0x4000; -pub const MAP_LOCKED: ::c_int = 0x8000; -pub const MAP_NORESERVE: ::c_int = 0x400; -pub const MAP_POPULATE: ::c_int = 0x10000; -pub const MAP_NONBLOCK: ::c_int = 0x20000; -pub const MAP_STACK: ::c_int = 0x40000; -pub const MAP_HUGETLB: ::c_int = 0x080000; - -pub const SOCK_STREAM: ::c_int = 2; -pub const SOCK_DGRAM: ::c_int = 1; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000008; -pub const SA_NOCLDWAIT: ::c_int = 0x00010000; - -pub const SIGCHLD: ::c_int = 18; -pub const SIGBUS: ::c_int = 10; -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGWINCH: ::c_int = 20; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGCONT: ::c_int = 25; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGURG: ::c_int = 21; -pub const SIGIO: ::c_int = 22; -pub const SIGSYS: ::c_int = 12; -pub const SIGPOLL: ::c_int = 22; -pub const SIGPWR: ::c_int = 19; -pub const SIG_SETMASK: ::c_int = 3; -pub const SIG_BLOCK: ::c_int = 0x1; -pub const SIG_UNBLOCK: ::c_int = 0x2; - -pub const POLLWRNORM: ::c_short = 0x004; -pub const POLLWRBAND: ::c_short = 0x100; - -pub const VEOF: usize = 16; -pub const VEOL: usize = 17; -pub const VEOL2: usize = 6; -pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0x00000100; -pub const TOSTOP: ::tcflag_t = 0x00008000; -pub const FLUSHO: ::tcflag_t = 0x00002000; -pub const EXTPROC: ::tcflag_t = 0o200000; - -pub const F_GETLK: ::c_int = 14; -pub const F_GETOWN: ::c_int = 23; -pub const F_SETOWN: ::c_int = 24; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const EHWPOISON: ::c_int = 168; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mod.rs deleted file mode 100644 index f437355d9..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/mod.rs +++ /dev/null @@ -1,167 +0,0 @@ -pub type c_long = i64; -pub type c_ulong = u64; -pub type regoff_t = ::c_long; - -s! { - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct pthread_attr_t { - __size: [u64; 7] - } - - pub struct sigset_t { - __val: [::c_ulong; 16], - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::c_ulong, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __pad1: ::c_ulong, - __pad2: ::c_ulong, - } - - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - #[cfg(target_endian = "big")] - __pad1: ::c_int, - pub msg_iovlen: ::c_int, - #[cfg(target_endian = "little")] - __pad1: ::c_int, - pub msg_control: *mut ::c_void, - #[cfg(target_endian = "big")] - __pad2: ::c_int, - pub msg_controllen: ::socklen_t, - #[cfg(target_endian = "little")] - __pad2: ::c_int, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - #[cfg(target_endian = "big")] - pub __pad1: ::c_int, - pub cmsg_len: ::socklen_t, - #[cfg(target_endian = "little")] - pub __pad1: ::c_int, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct sem_t { - __val: [::c_int; 8], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - _align: [usize; 0], - } -} - -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; - -pub const SOCK_NONBLOCK: ::c_int = 2048; - -pub const SOCK_SEQPACKET: ::c_int = 5; - -extern "C" { - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; -} - -cfg_if! { - if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else if #[cfg(target_arch = "mips64")] { - mod mips64; - pub use self::mips64::*; - } else if #[cfg(any(target_arch = "powerpc64"))] { - mod powerpc64; - pub use self::powerpc64::*; - } else if #[cfg(any(target_arch = "s390x"))] { - mod s390x; - pub use self::s390x::*; - } else if #[cfg(any(target_arch = "x86_64"))] { - mod x86_64; - pub use self::x86_64::*; - } else if #[cfg(any(target_arch = "riscv64"))] { - mod riscv64; - pub use self::riscv64::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/powerpc64.rs deleted file mode 100644 index c9bd94135..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ /dev/null @@ -1,697 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = i32; -pub type __u64 = ::c_ulong; -pub type __s64 = ::c_long; -pub type nlink_t = u64; -pub type blksize_t = ::c_long; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - __pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_long; 3], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - __pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __reserved: [::c_long; 3], - } - - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_int, - __unused1: ::c_long, - __unused2: ::c_long - } -} - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_32BIT: ::c_int = 0x0040; -pub const O_APPEND: ::c_int = 1024; -pub const O_DIRECT: ::c_int = 0x20000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_LARGEFILE: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_ASYNC: ::c_int = 0x2000; - -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const PTRACE_SYSEMU: ::c_int = 0x1d; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 0x1e; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const VEOF: usize = 4; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const SIGSTKSZ: ::size_t = 10240; -pub const MINSIGSTKSZ: ::size_t = 4096; - -// Syscall table -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_waitpid: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_time: ::c_long = 13; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_break: ::c_long = 17; -pub const SYS_oldstat: ::c_long = 18; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_stime: ::c_long = 25; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_oldfstat: ::c_long = 28; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_stty: ::c_long = 31; -pub const SYS_gtty: ::c_long = 32; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_ftime: ::c_long = 35; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_prof: ::c_long = 44; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_signal: ::c_long = 48; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_lock: ::c_long = 53; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_mpx: ::c_long = 56; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_ulimit: ::c_long = 58; -pub const SYS_oldolduname: ::c_long = 59; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sgetmask: ::c_long = 68; -pub const SYS_ssetmask: ::c_long = 69; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrlimit: ::c_long = 76; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_select: ::c_long = 82; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_oldlstat: ::c_long = 84; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_profil: ::c_long = 98; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_ioperm: ::c_long = 101; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_olduname: ::c_long = 109; -pub const SYS_iopl: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_vm86: ::c_long = 113; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_modify_ldt: ::c_long = 123; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_query_module: ::c_long = 166; -pub const SYS_poll: ::c_long = 167; -pub const SYS_nfsservctl: ::c_long = 168; -pub const SYS_setresgid: ::c_long = 169; -pub const SYS_getresgid: ::c_long = 170; -pub const SYS_prctl: ::c_long = 171; -pub const SYS_rt_sigreturn: ::c_long = 172; -pub const SYS_rt_sigaction: ::c_long = 173; -pub const SYS_rt_sigprocmask: ::c_long = 174; -pub const SYS_rt_sigpending: ::c_long = 175; -pub const SYS_rt_sigtimedwait: ::c_long = 176; -pub const SYS_rt_sigqueueinfo: ::c_long = 177; -pub const SYS_rt_sigsuspend: ::c_long = 178; -pub const SYS_pread64: ::c_long = 179; -pub const SYS_pwrite64: ::c_long = 180; -pub const SYS_chown: ::c_long = 181; -pub const SYS_getcwd: ::c_long = 182; -pub const SYS_capget: ::c_long = 183; -pub const SYS_capset: ::c_long = 184; -pub const SYS_sigaltstack: ::c_long = 185; -pub const SYS_sendfile: ::c_long = 186; -pub const SYS_getpmsg: ::c_long = 187; /* some people actually want streams */ -pub const SYS_putpmsg: ::c_long = 188; /* some people actually want streams */ -pub const SYS_vfork: ::c_long = 189; -pub const SYS_ugetrlimit: ::c_long = 190; /* SuS compliant getrlimit */ -pub const SYS_readahead: ::c_long = 191; -pub const SYS_pciconfig_read: ::c_long = 198; -pub const SYS_pciconfig_write: ::c_long = 199; -pub const SYS_pciconfig_iobase: ::c_long = 200; -pub const SYS_multiplexer: ::c_long = 201; -pub const SYS_getdents64: ::c_long = 202; -pub const SYS_pivot_root: ::c_long = 203; -pub const SYS_madvise: ::c_long = 205; -pub const SYS_mincore: ::c_long = 206; -pub const SYS_gettid: ::c_long = 207; -pub const SYS_tkill: ::c_long = 208; -pub const SYS_setxattr: ::c_long = 209; -pub const SYS_lsetxattr: ::c_long = 210; -pub const SYS_fsetxattr: ::c_long = 211; -pub const SYS_getxattr: ::c_long = 212; -pub const SYS_lgetxattr: ::c_long = 213; -pub const SYS_fgetxattr: ::c_long = 214; -pub const SYS_listxattr: ::c_long = 215; -pub const SYS_llistxattr: ::c_long = 216; -pub const SYS_flistxattr: ::c_long = 217; -pub const SYS_removexattr: ::c_long = 218; -pub const SYS_lremovexattr: ::c_long = 219; -pub const SYS_fremovexattr: ::c_long = 220; -pub const SYS_futex: ::c_long = 221; -pub const SYS_sched_setaffinity: ::c_long = 222; -pub const SYS_sched_getaffinity: ::c_long = 223; -pub const SYS_tuxcall: ::c_long = 225; -pub const SYS_io_setup: ::c_long = 227; -pub const SYS_io_destroy: ::c_long = 228; -pub const SYS_io_getevents: ::c_long = 229; -pub const SYS_io_submit: ::c_long = 230; -pub const SYS_io_cancel: ::c_long = 231; -pub const SYS_set_tid_address: ::c_long = 232; -pub const SYS_exit_group: ::c_long = 234; -pub const SYS_lookup_dcookie: ::c_long = 235; -pub const SYS_epoll_create: ::c_long = 236; -pub const SYS_epoll_ctl: ::c_long = 237; -pub const SYS_epoll_wait: ::c_long = 238; -pub const SYS_remap_file_pages: ::c_long = 239; -pub const SYS_timer_create: ::c_long = 240; -pub const SYS_timer_settime: ::c_long = 241; -pub const SYS_timer_gettime: ::c_long = 242; -pub const SYS_timer_getoverrun: ::c_long = 243; -pub const SYS_timer_delete: ::c_long = 244; -pub const SYS_clock_settime: ::c_long = 245; -pub const SYS_clock_gettime: ::c_long = 246; -pub const SYS_clock_getres: ::c_long = 247; -pub const SYS_clock_nanosleep: ::c_long = 248; -pub const SYS_swapcontext: ::c_long = 249; -pub const SYS_tgkill: ::c_long = 250; -pub const SYS_utimes: ::c_long = 251; -pub const SYS_statfs64: ::c_long = 252; -pub const SYS_fstatfs64: ::c_long = 253; -pub const SYS_rtas: ::c_long = 255; -pub const SYS_sys_debug_setcontext: ::c_long = 256; -pub const SYS_migrate_pages: ::c_long = 258; -pub const SYS_mbind: ::c_long = 259; -pub const SYS_get_mempolicy: ::c_long = 260; -pub const SYS_set_mempolicy: ::c_long = 261; -pub const SYS_mq_open: ::c_long = 262; -pub const SYS_mq_unlink: ::c_long = 263; -pub const SYS_mq_timedsend: ::c_long = 264; -pub const SYS_mq_timedreceive: ::c_long = 265; -pub const SYS_mq_notify: ::c_long = 266; -pub const SYS_mq_getsetattr: ::c_long = 267; -pub const SYS_kexec_load: ::c_long = 268; -pub const SYS_add_key: ::c_long = 269; -pub const SYS_request_key: ::c_long = 270; -pub const SYS_keyctl: ::c_long = 271; -pub const SYS_waitid: ::c_long = 272; -pub const SYS_ioprio_set: ::c_long = 273; -pub const SYS_ioprio_get: ::c_long = 274; -pub const SYS_inotify_init: ::c_long = 275; -pub const SYS_inotify_add_watch: ::c_long = 276; -pub const SYS_inotify_rm_watch: ::c_long = 277; -pub const SYS_spu_run: ::c_long = 278; -pub const SYS_spu_create: ::c_long = 279; -pub const SYS_pselect6: ::c_long = 280; -pub const SYS_ppoll: ::c_long = 281; -pub const SYS_unshare: ::c_long = 282; -pub const SYS_splice: ::c_long = 283; -pub const SYS_tee: ::c_long = 284; -pub const SYS_vmsplice: ::c_long = 285; -pub const SYS_openat: ::c_long = 286; -pub const SYS_mkdirat: ::c_long = 287; -pub const SYS_mknodat: ::c_long = 288; -pub const SYS_fchownat: ::c_long = 289; -pub const SYS_futimesat: ::c_long = 290; -pub const SYS_newfstatat: ::c_long = 291; -pub const SYS_unlinkat: ::c_long = 292; -pub const SYS_renameat: ::c_long = 293; -pub const SYS_linkat: ::c_long = 294; -pub const SYS_symlinkat: ::c_long = 295; -pub const SYS_readlinkat: ::c_long = 296; -pub const SYS_fchmodat: ::c_long = 297; -pub const SYS_faccessat: ::c_long = 298; -pub const SYS_get_robust_list: ::c_long = 299; -pub const SYS_set_robust_list: ::c_long = 300; -pub const SYS_move_pages: ::c_long = 301; -pub const SYS_getcpu: ::c_long = 302; -pub const SYS_epoll_pwait: ::c_long = 303; -pub const SYS_utimensat: ::c_long = 304; -pub const SYS_signalfd: ::c_long = 305; -pub const SYS_timerfd_create: ::c_long = 306; -pub const SYS_eventfd: ::c_long = 307; -pub const SYS_sync_file_range2: ::c_long = 308; -pub const SYS_fallocate: ::c_long = 309; -pub const SYS_subpage_prot: ::c_long = 310; -pub const SYS_timerfd_settime: ::c_long = 311; -pub const SYS_timerfd_gettime: ::c_long = 312; -pub const SYS_signalfd4: ::c_long = 313; -pub const SYS_eventfd2: ::c_long = 314; -pub const SYS_epoll_create1: ::c_long = 315; -pub const SYS_dup3: ::c_long = 316; -pub const SYS_pipe2: ::c_long = 317; -pub const SYS_inotify_init1: ::c_long = 318; -pub const SYS_perf_event_open: ::c_long = 319; -pub const SYS_preadv: ::c_long = 320; -pub const SYS_pwritev: ::c_long = 321; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; -pub const SYS_fanotify_init: ::c_long = 323; -pub const SYS_fanotify_mark: ::c_long = 324; -pub const SYS_prlimit64: ::c_long = 325; -pub const SYS_socket: ::c_long = 326; -pub const SYS_bind: ::c_long = 327; -pub const SYS_connect: ::c_long = 328; -pub const SYS_listen: ::c_long = 329; -pub const SYS_accept: ::c_long = 330; -pub const SYS_getsockname: ::c_long = 331; -pub const SYS_getpeername: ::c_long = 332; -pub const SYS_socketpair: ::c_long = 333; -pub const SYS_send: ::c_long = 334; -pub const SYS_sendto: ::c_long = 335; -pub const SYS_recv: ::c_long = 336; -pub const SYS_recvfrom: ::c_long = 337; -pub const SYS_shutdown: ::c_long = 338; -pub const SYS_setsockopt: ::c_long = 339; -pub const SYS_getsockopt: ::c_long = 340; -pub const SYS_sendmsg: ::c_long = 341; -pub const SYS_recvmsg: ::c_long = 342; -pub const SYS_recvmmsg: ::c_long = 343; -pub const SYS_accept4: ::c_long = 344; -pub const SYS_name_to_handle_at: ::c_long = 345; -pub const SYS_open_by_handle_at: ::c_long = 346; -pub const SYS_clock_adjtime: ::c_long = 347; -pub const SYS_syncfs: ::c_long = 348; -pub const SYS_sendmmsg: ::c_long = 349; -pub const SYS_setns: ::c_long = 350; -pub const SYS_process_vm_readv: ::c_long = 351; -pub const SYS_process_vm_writev: ::c_long = 352; -pub const SYS_finit_module: ::c_long = 353; -pub const SYS_kcmp: ::c_long = 354; -pub const SYS_sched_setattr: ::c_long = 355; -pub const SYS_sched_getattr: ::c_long = 356; -pub const SYS_renameat2: ::c_long = 357; -pub const SYS_seccomp: ::c_long = 358; -pub const SYS_getrandom: ::c_long = 359; -pub const SYS_memfd_create: ::c_long = 360; -pub const SYS_bpf: ::c_long = 361; -pub const SYS_execveat: ::c_long = 362; -pub const SYS_switch_endian: ::c_long = 363; -pub const SYS_userfaultfd: ::c_long = 364; -pub const SYS_membarrier: ::c_long = 365; -pub const SYS_mlock2: ::c_long = 378; -pub const SYS_copy_file_range: ::c_long = 379; -pub const SYS_preadv2: ::c_long = 380; -pub const SYS_pwritev2: ::c_long = 381; -pub const SYS_kexec_file_load: ::c_long = 382; -pub const SYS_statx: ::c_long = 383; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -pub const EDEADLK: ::c_int = 58; -pub const EDEADLOCK: ::c_int = EDEADLK; - -pub const EXTPROC: ::tcflag_t = 0x10000000; -pub const VEOL: usize = 6; -pub const VEOL2: usize = 8; -pub const VMIN: usize = 5; -pub const IEXTEN: ::tcflag_t = 0x00000400; -pub const TOSTOP: ::tcflag_t = 0x00400000; -pub const FLUSHO: ::tcflag_t = 0x00800000; - -pub const MCL_CURRENT: ::c_int = 0x2000; -pub const MCL_FUTURE: ::c_int = 0x4000; -pub const CBAUD: ::tcflag_t = 0xff; -pub const TAB1: ::c_int = 0x400; -pub const TAB2: ::c_int = 0x800; -pub const TAB3: ::c_int = 0xc00; -pub const CR1: ::c_int = 0x1000; -pub const CR2: ::c_int = 0x2000; -pub const CR3: ::c_int = 0x3000; -pub const FF1: ::c_int = 0x4000; -pub const BS1: ::c_int = 0x8000; -pub const VT1: ::c_int = 0x10000; -pub const VWERASE: usize = 10; -pub const VREPRINT: usize = 11; -pub const VSUSP: usize = 12; -pub const VSTART: usize = 13; -pub const VSTOP: usize = 14; -pub const VDISCARD: usize = 16; -pub const VTIME: usize = 7; -pub const IXON: ::tcflag_t = 0x00000200; -pub const IXOFF: ::tcflag_t = 0x00000400; -pub const ONLCR: ::tcflag_t = 0x2; -pub const CSIZE: ::tcflag_t = 0x00000300; - -pub const CS6: ::tcflag_t = 0x00000100; -pub const CS7: ::tcflag_t = 0x00000200; -pub const CS8: ::tcflag_t = 0x00000300; -pub const CSTOPB: ::tcflag_t = 0x00000400; -pub const CREAD: ::tcflag_t = 0x00000800; -pub const PARENB: ::tcflag_t = 0x00001000; -pub const PARODD: ::tcflag_t = 0x00002000; -pub const HUPCL: ::tcflag_t = 0x00004000; -pub const CLOCAL: ::tcflag_t = 0x00008000; -pub const ECHOKE: ::tcflag_t = 0x00000001; -pub const ECHOE: ::tcflag_t = 0x00000002; -pub const ECHOK: ::tcflag_t = 0x00000004; -pub const ECHONL: ::tcflag_t = 0x00000010; -pub const ECHOPRT: ::tcflag_t = 0x00000020; -pub const ECHOCTL: ::tcflag_t = 0x00000040; -pub const ISIG: ::tcflag_t = 0x00000080; -pub const ICANON: ::tcflag_t = 0x00000100; -pub const PENDIN: ::tcflag_t = 0x20000000; -pub const NOFLSH: ::tcflag_t = 0x80000000; - -pub const CIBAUD: ::tcflag_t = 0o77600000; -pub const CBAUDEX: ::tcflag_t = 0o0000020; -pub const VSWTC: usize = 9; -pub const OLCUC: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o0001400; -pub const CRDLY: ::tcflag_t = 0o0030000; -pub const TABDLY: ::tcflag_t = 0o0006000; -pub const BSDLY: ::tcflag_t = 0o0100000; -pub const FFDLY: ::tcflag_t = 0o0040000; -pub const VTDLY: ::tcflag_t = 0o0200000; -pub const XTABS: ::tcflag_t = 0o00006000; - -pub const B57600: ::speed_t = 0o00020; -pub const B115200: ::speed_t = 0o00021; -pub const B230400: ::speed_t = 0o00022; -pub const B460800: ::speed_t = 0o00023; -pub const B500000: ::speed_t = 0o00024; -pub const B576000: ::speed_t = 0o00025; -pub const B921600: ::speed_t = 0o00026; -pub const B1000000: ::speed_t = 0o00027; -pub const B1152000: ::speed_t = 0o00030; -pub const B1500000: ::speed_t = 0o00031; -pub const B2000000: ::speed_t = 0o00032; -pub const B2500000: ::speed_t = 0o00033; -pub const B3000000: ::speed_t = 0o00034; -pub const B3500000: ::speed_t = 0o00035; -pub const B4000000: ::speed_t = 0o00036; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/align.rs deleted file mode 100644 index 48d152a57..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/align.rs +++ /dev/null @@ -1,44 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - pub struct ucontext_t { - pub __uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_sigmask: ::sigset_t, - pub uc_mcontext: mcontext_t, - } - - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct mcontext_t { - pub __gregs: [::c_ulong; 32], - pub __fpregs: __riscv_mc_fp_state, - } - - #[allow(missing_debug_implementations)] - pub union __riscv_mc_fp_state { - pub __f: __riscv_mc_f_ext_state, - pub __d: __riscv_mc_d_ext_state, - pub __q: __riscv_mc_q_ext_state, - } - - #[allow(missing_debug_implementations)] - pub struct __riscv_mc_f_ext_state { - pub __f: [::c_uint; 32], - pub __fcsr: ::c_uint, - } - - #[allow(missing_debug_implementations)] - pub struct __riscv_mc_d_ext_state { - pub __f: [::c_ulonglong; 32], - pub __fcsr: ::c_uint, - } - - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct __riscv_mc_q_ext_state { - pub __f: [::c_ulonglong; 64], - pub __fcsr: ::c_uint, - pub __glibc_reserved: [::c_uint; 3], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs deleted file mode 100644 index 9e9dbf6c8..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ /dev/null @@ -1,726 +0,0 @@ -//! RISC-V-specific definitions for 64-bit linux-like values - -pub type c_char = u8; -pub type wchar_t = ::c_int; - -pub type nlink_t = ::c_uint; -pub type blksize_t = ::c_int; -pub type fsblkcnt64_t = ::c_ulong; -pub type fsfilcnt64_t = ::c_ulong; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; - -s! { - pub struct pthread_attr_t { - __size: [::c_ulong; 7], - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_int; 2usize], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub __pad1: ::dev_t, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub __pad2: ::c_int, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_int; 2], - } - - pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], - } - - pub struct statfs64 { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_frsize: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 4], - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_favail: ::fsfilcnt64_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [u64; 0], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused5: ::c_ulong, - __unused6: ::c_ulong, - } -} - -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_close: ::c_long = 57; -pub const SYS_fstat: ::c_long = 80; -pub const SYS_lseek: ::c_long = 62; -pub const SYS_mmap: ::c_long = 222; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_brk: ::c_long = 214; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_dup: ::c_long = 23; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_sendfile: ::c_long = 71; -pub const SYS_socket: ::c_long = 198; -pub const SYS_connect: ::c_long = 203; -pub const SYS_accept: ::c_long = 202; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_exit: ::c_long = 93; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_kill: ::c_long = 129; -pub const SYS_uname: ::c_long = 160; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semop: ::c_long = 193; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_fcntl: ::c_long = 25; -pub const SYS_flock: ::c_long = 32; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_truncate: ::c_long = 45; -pub const SYS_ftruncate: ::c_long = 46; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_umask: ::c_long = 166; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_times: ::c_long = 153; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_personality: ::c_long = 92; -pub const SYS_statfs: ::c_long = 43; -pub const SYS_fstatfs: ::c_long = 44; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_sync: ::c_long = 81; -pub const SYS_acct: ::c_long = 89; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_mount: ::c_long = 40; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_futex: ::c_long = 98; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_fadvise64: ::c_long = 223; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_openat: ::c_long = 56; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_newfstatat: ::c_long = 79; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_setns: ::c_long = 268; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; -pub const SYS_statx: ::c_long = 291; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; - -pub const O_APPEND: ::c_int = 1024; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_LARGEFILE: ::c_int = 0; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_ASYNC: ::c_int = 0x2000; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; - -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const VEOF: usize = 4; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const EDEADLK: ::c_int = 35; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const EXTPROC: ::tcflag_t = 0x00010000; -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; - -pub const NGREG: usize = 32; -pub const REG_PC: usize = 0; -pub const REG_RA: usize = 1; -pub const REG_SP: usize = 2; -pub const REG_TP: usize = 4; -pub const REG_S0: usize = 8; -pub const REG_S1: usize = 9; -pub const REG_A0: usize = 10; -pub const REG_S2: usize = 18; -pub const REG_NARGS: usize = 8; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/s390x.rs deleted file mode 100644 index f338dcc54..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/s390x.rs +++ /dev/null @@ -1,726 +0,0 @@ -pub type blksize_t = i64; -pub type c_char = u8; -pub type nlink_t = u64; -pub type wchar_t = i32; -pub type greg_t = u64; -pub type __u64 = u64; -pub type __s64 = i64; - -s! { - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_int, - __pad1: ::c_long, - __pad2: ::c_long, - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - __unused: [::c_long; 3], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - __unused: [::c_long; 3], - } - - pub struct statfs { - pub f_type: ::c_uint, - pub f_bsize: ::c_uint, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_uint, - pub f_frsize: ::c_uint, - pub f_flags: ::c_uint, - pub f_spare: [::c_uint; 4], - } - - pub struct statfs64 { - pub f_type: ::c_uint, - pub f_bsize: ::c_uint, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_uint, - pub f_frsize: ::c_uint, - pub f_flags: ::c_uint, - pub f_spare: [::c_uint; 4], - } -} - -s_no_extra_traits! { - // FIXME: This is actually a union. - pub struct fpreg_t { - pub d: ::c_double, - // f: ::c_float, - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for fpreg_t { - fn eq(&self, other: &fpreg_t) -> bool { - self.d == other.d - } - } - - impl Eq for fpreg_t {} - - impl ::fmt::Debug for fpreg_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("fpreg_t") - .field("d", &self.d) - .finish() - } - } - - impl ::hash::Hash for fpreg_t { - fn hash(&self, state: &mut H) { - let d: u64 = unsafe { ::mem::transmute(self.d) }; - d.hash(state); - } - } - } -} - -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; - -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNREFUSED: ::c_int = 111; -pub const ECONNRESET: ::c_int = 104; -pub const EDEADLK: ::c_int = 35; -pub const ENOSYS: ::c_int = 38; -pub const ENOTCONN: ::c_int = 107; -pub const ETIMEDOUT: ::c_int = 110; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_LARGEFILE: ::c_int = 0x8000; -pub const O_NONBLOCK: ::c_int = 2048; -pub const SA_NOCLDWAIT: ::c_int = 2; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 4; -pub const SIGBUS: ::c_int = 7; -pub const SIGSTKSZ: ::size_t = 0x2000; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const SIG_SETMASK: ::c_int = 2; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const O_NOCTTY: ::c_int = 256; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const PTRACE_SYSEMU: ::c_int = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 32; - -pub const EDEADLOCK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGCHLD: ::c_int = 17; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const O_ASYNC: ::c_int = 0x2000; - -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; - -pub const EXTPROC: ::tcflag_t = 0x00010000; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const VTIME: usize = 5; -pub const VSWTC: usize = 7; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VSUSP: usize = 10; -pub const VREPRINT: usize = 12; -pub const VDISCARD: usize = 13; -pub const VWERASE: usize = 14; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const ONLCR: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const FF1: ::tcflag_t = 0x00008000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const CBAUD: ::speed_t = 0o010017; -pub const CSIZE: ::tcflag_t = 0o000060; -pub const CS6: ::tcflag_t = 0o000020; -pub const CS7: ::tcflag_t = 0o000040; -pub const CS8: ::tcflag_t = 0o000060; -pub const CSTOPB: ::tcflag_t = 0o000100; -pub const CREAD: ::tcflag_t = 0o000200; -pub const PARENB: ::tcflag_t = 0o000400; -pub const PARODD: ::tcflag_t = 0o001000; -pub const HUPCL: ::tcflag_t = 0o002000; -pub const CLOCAL: ::tcflag_t = 0o004000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; -pub const CIBAUD: ::tcflag_t = 0o02003600000; - -pub const ISIG: ::tcflag_t = 0o000001; -pub const ICANON: ::tcflag_t = 0o000002; -pub const XCASE: ::tcflag_t = 0o000004; -pub const ECHOE: ::tcflag_t = 0o000020; -pub const ECHOK: ::tcflag_t = 0o000040; -pub const ECHONL: ::tcflag_t = 0o000100; -pub const NOFLSH: ::tcflag_t = 0o000200; -pub const ECHOCTL: ::tcflag_t = 0o001000; -pub const ECHOPRT: ::tcflag_t = 0o002000; -pub const ECHOKE: ::tcflag_t = 0o004000; -pub const PENDIN: ::tcflag_t = 0o040000; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const IXON: ::tcflag_t = 0o002000; -pub const IXOFF: ::tcflag_t = 0o010000; - -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_restart_syscall: ::c_long = 7; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_umount: ::c_long = 22; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_alarm: ::c_long = 27; -pub const SYS_pause: ::c_long = 29; -pub const SYS_utime: ::c_long = 30; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_signal: ::c_long = 48; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_readdir: ::c_long = 89; -pub const SYS_mmap: ::c_long = 90; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_socketcall: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_lookup_dcookie: ::c_long = 110; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_idle: ::c_long = 112; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_ipc: ::c_long = 117; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_create_module: ::c_long = 127; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_get_kernel_syms: ::c_long = 130; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_afs_syscall: ::c_long = 137; /* Syscall for Andrew File System */ -pub const SYS_getdents: ::c_long = 141; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_query_module: ::c_long = 167; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_getpmsg: ::c_long = 188; -pub const SYS_putpmsg: ::c_long = 189; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_pivot_root: ::c_long = 217; -pub const SYS_mincore: ::c_long = 218; -pub const SYS_madvise: ::c_long = 219; -pub const SYS_getdents64: ::c_long = 220; -pub const SYS_readahead: ::c_long = 222; -pub const SYS_setxattr: ::c_long = 224; -pub const SYS_lsetxattr: ::c_long = 225; -pub const SYS_fsetxattr: ::c_long = 226; -pub const SYS_getxattr: ::c_long = 227; -pub const SYS_lgetxattr: ::c_long = 228; -pub const SYS_fgetxattr: ::c_long = 229; -pub const SYS_listxattr: ::c_long = 230; -pub const SYS_llistxattr: ::c_long = 231; -pub const SYS_flistxattr: ::c_long = 232; -pub const SYS_removexattr: ::c_long = 233; -pub const SYS_lremovexattr: ::c_long = 234; -pub const SYS_fremovexattr: ::c_long = 235; -pub const SYS_gettid: ::c_long = 236; -pub const SYS_tkill: ::c_long = 237; -pub const SYS_futex: ::c_long = 238; -pub const SYS_sched_setaffinity: ::c_long = 239; -pub const SYS_sched_getaffinity: ::c_long = 240; -pub const SYS_tgkill: ::c_long = 241; -pub const SYS_io_setup: ::c_long = 243; -pub const SYS_io_destroy: ::c_long = 244; -pub const SYS_io_getevents: ::c_long = 245; -pub const SYS_io_submit: ::c_long = 246; -pub const SYS_io_cancel: ::c_long = 247; -pub const SYS_exit_group: ::c_long = 248; -pub const SYS_epoll_create: ::c_long = 249; -pub const SYS_epoll_ctl: ::c_long = 250; -pub const SYS_epoll_wait: ::c_long = 251; -pub const SYS_set_tid_address: ::c_long = 252; -pub const SYS_fadvise64: ::c_long = 253; -pub const SYS_timer_create: ::c_long = 254; -pub const SYS_timer_settime: ::c_long = 255; -pub const SYS_timer_gettime: ::c_long = 256; -pub const SYS_timer_getoverrun: ::c_long = 257; -pub const SYS_timer_delete: ::c_long = 258; -pub const SYS_clock_settime: ::c_long = 259; -pub const SYS_clock_gettime: ::c_long = 260; -pub const SYS_clock_getres: ::c_long = 261; -pub const SYS_clock_nanosleep: ::c_long = 262; -pub const SYS_statfs64: ::c_long = 265; -pub const SYS_fstatfs64: ::c_long = 266; -pub const SYS_remap_file_pages: ::c_long = 267; -pub const SYS_mbind: ::c_long = 268; -pub const SYS_get_mempolicy: ::c_long = 269; -pub const SYS_set_mempolicy: ::c_long = 270; -pub const SYS_mq_open: ::c_long = 271; -pub const SYS_mq_unlink: ::c_long = 272; -pub const SYS_mq_timedsend: ::c_long = 273; -pub const SYS_mq_timedreceive: ::c_long = 274; -pub const SYS_mq_notify: ::c_long = 275; -pub const SYS_mq_getsetattr: ::c_long = 276; -pub const SYS_kexec_load: ::c_long = 277; -pub const SYS_add_key: ::c_long = 278; -pub const SYS_request_key: ::c_long = 279; -pub const SYS_keyctl: ::c_long = 280; -pub const SYS_waitid: ::c_long = 281; -pub const SYS_ioprio_set: ::c_long = 282; -pub const SYS_ioprio_get: ::c_long = 283; -pub const SYS_inotify_init: ::c_long = 284; -pub const SYS_inotify_add_watch: ::c_long = 285; -pub const SYS_inotify_rm_watch: ::c_long = 286; -pub const SYS_migrate_pages: ::c_long = 287; -pub const SYS_openat: ::c_long = 288; -pub const SYS_mkdirat: ::c_long = 289; -pub const SYS_mknodat: ::c_long = 290; -pub const SYS_fchownat: ::c_long = 291; -pub const SYS_futimesat: ::c_long = 292; -pub const SYS_unlinkat: ::c_long = 294; -pub const SYS_renameat: ::c_long = 295; -pub const SYS_linkat: ::c_long = 296; -pub const SYS_symlinkat: ::c_long = 297; -pub const SYS_readlinkat: ::c_long = 298; -pub const SYS_fchmodat: ::c_long = 299; -pub const SYS_faccessat: ::c_long = 300; -pub const SYS_pselect6: ::c_long = 301; -pub const SYS_ppoll: ::c_long = 302; -pub const SYS_unshare: ::c_long = 303; -pub const SYS_set_robust_list: ::c_long = 304; -pub const SYS_get_robust_list: ::c_long = 305; -pub const SYS_splice: ::c_long = 306; -pub const SYS_sync_file_range: ::c_long = 307; -pub const SYS_tee: ::c_long = 308; -pub const SYS_vmsplice: ::c_long = 309; -pub const SYS_move_pages: ::c_long = 310; -pub const SYS_getcpu: ::c_long = 311; -pub const SYS_epoll_pwait: ::c_long = 312; -pub const SYS_utimes: ::c_long = 313; -pub const SYS_fallocate: ::c_long = 314; -pub const SYS_utimensat: ::c_long = 315; -pub const SYS_signalfd: ::c_long = 316; -pub const SYS_timerfd: ::c_long = 317; -pub const SYS_eventfd: ::c_long = 318; -pub const SYS_timerfd_create: ::c_long = 319; -pub const SYS_timerfd_settime: ::c_long = 320; -pub const SYS_timerfd_gettime: ::c_long = 321; -pub const SYS_signalfd4: ::c_long = 322; -pub const SYS_eventfd2: ::c_long = 323; -pub const SYS_inotify_init1: ::c_long = 324; -pub const SYS_pipe2: ::c_long = 325; -pub const SYS_dup3: ::c_long = 326; -pub const SYS_epoll_create1: ::c_long = 327; -pub const SYS_preadv: ::c_long = 328; -pub const SYS_pwritev: ::c_long = 329; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 330; -pub const SYS_perf_event_open: ::c_long = 331; -pub const SYS_fanotify_init: ::c_long = 332; -pub const SYS_fanotify_mark: ::c_long = 333; -pub const SYS_prlimit64: ::c_long = 334; -pub const SYS_name_to_handle_at: ::c_long = 335; -pub const SYS_open_by_handle_at: ::c_long = 336; -pub const SYS_clock_adjtime: ::c_long = 337; -pub const SYS_syncfs: ::c_long = 338; -pub const SYS_setns: ::c_long = 339; -pub const SYS_process_vm_readv: ::c_long = 340; -pub const SYS_process_vm_writev: ::c_long = 341; -pub const SYS_s390_runtime_instr: ::c_long = 342; -pub const SYS_kcmp: ::c_long = 343; -pub const SYS_finit_module: ::c_long = 344; -pub const SYS_sched_setattr: ::c_long = 345; -pub const SYS_sched_getattr: ::c_long = 346; -pub const SYS_renameat2: ::c_long = 347; -pub const SYS_seccomp: ::c_long = 348; -pub const SYS_getrandom: ::c_long = 349; -pub const SYS_memfd_create: ::c_long = 350; -pub const SYS_bpf: ::c_long = 351; -pub const SYS_s390_pci_mmio_write: ::c_long = 352; -pub const SYS_s390_pci_mmio_read: ::c_long = 353; -pub const SYS_execveat: ::c_long = 354; -pub const SYS_userfaultfd: ::c_long = 355; -pub const SYS_membarrier: ::c_long = 356; -pub const SYS_recvmmsg: ::c_long = 357; -pub const SYS_sendmmsg: ::c_long = 358; -pub const SYS_socket: ::c_long = 359; -pub const SYS_socketpair: ::c_long = 360; -pub const SYS_bind: ::c_long = 361; -pub const SYS_connect: ::c_long = 362; -pub const SYS_listen: ::c_long = 363; -pub const SYS_accept4: ::c_long = 364; -pub const SYS_getsockopt: ::c_long = 365; -pub const SYS_setsockopt: ::c_long = 366; -pub const SYS_getsockname: ::c_long = 367; -pub const SYS_getpeername: ::c_long = 368; -pub const SYS_sendto: ::c_long = 369; -pub const SYS_sendmsg: ::c_long = 370; -pub const SYS_recvfrom: ::c_long = 371; -pub const SYS_recvmsg: ::c_long = 372; -pub const SYS_shutdown: ::c_long = 373; -pub const SYS_mlock2: ::c_long = 374; -pub const SYS_copy_file_range: ::c_long = 375; -pub const SYS_preadv2: ::c_long = 376; -pub const SYS_pwritev2: ::c_long = 377; -pub const SYS_lchown: ::c_long = 198; -pub const SYS_setuid: ::c_long = 213; -pub const SYS_getuid: ::c_long = 199; -pub const SYS_setgid: ::c_long = 214; -pub const SYS_getgid: ::c_long = 200; -pub const SYS_geteuid: ::c_long = 201; -pub const SYS_setreuid: ::c_long = 203; -pub const SYS_setregid: ::c_long = 204; -pub const SYS_getrlimit: ::c_long = 191; -pub const SYS_getgroups: ::c_long = 205; -pub const SYS_fchown: ::c_long = 207; -pub const SYS_setresuid: ::c_long = 208; -pub const SYS_setresgid: ::c_long = 210; -pub const SYS_getresgid: ::c_long = 211; -pub const SYS_select: ::c_long = 142; -pub const SYS_getegid: ::c_long = 202; -pub const SYS_setgroups: ::c_long = 206; -pub const SYS_getresuid: ::c_long = 209; -pub const SYS_chown: ::c_long = 212; -pub const SYS_setfsuid: ::c_long = 215; -pub const SYS_setfsgid: ::c_long = 216; -pub const SYS_newfstatat: ::c_long = 293; -pub const SYS_statx: ::c_long = 379; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/align.rs deleted file mode 100644 index 94391a01a..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/align.rs +++ /dev/null @@ -1,25 +0,0 @@ -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } - -} - -s! { - #[repr(align(8))] - pub struct clone_args { - pub flags: ::c_ulonglong, - pub pidfd: ::c_ulonglong, - pub child_tid: ::c_ulonglong, - pub parent_tid: ::c_ulonglong, - pub exit_signal: ::c_ulonglong, - pub stack: ::c_ulonglong, - pub stack_size: ::c_ulonglong, - pub tls: ::c_ulonglong, - pub set_tid: ::c_ulonglong, - pub set_tid_size: ::c_ulonglong, - pub cgroup: ::c_ulonglong, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs deleted file mode 100644 index 9decf91bc..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ /dev/null @@ -1,917 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; -pub type nlink_t = u64; -pub type blksize_t = ::c_long; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; -pub type greg_t = i64; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - __pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused: [::c_long; 3], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - pub st_ino: ::ino64_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - __pad0: ::c_int, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __reserved: [::c_long; 3], - } - - pub struct user_regs_struct { - pub r15: ::c_ulong, - pub r14: ::c_ulong, - pub r13: ::c_ulong, - pub r12: ::c_ulong, - pub rbp: ::c_ulong, - pub rbx: ::c_ulong, - pub r11: ::c_ulong, - pub r10: ::c_ulong, - pub r9: ::c_ulong, - pub r8: ::c_ulong, - pub rax: ::c_ulong, - pub rcx: ::c_ulong, - pub rdx: ::c_ulong, - pub rsi: ::c_ulong, - pub rdi: ::c_ulong, - pub orig_rax: ::c_ulong, - pub rip: ::c_ulong, - pub cs: ::c_ulong, - pub eflags: ::c_ulong, - pub rsp: ::c_ulong, - pub ss: ::c_ulong, - pub fs_base: ::c_ulong, - pub gs_base: ::c_ulong, - pub ds: ::c_ulong, - pub es: ::c_ulong, - pub fs: ::c_ulong, - pub gs: ::c_ulong, - } - - pub struct user { - pub regs: user_regs_struct, - pub u_fpvalid: ::c_int, - pub i387: user_fpregs_struct, - pub u_tsize: ::c_ulong, - pub u_dsize: ::c_ulong, - pub u_ssize: ::c_ulong, - pub start_code: ::c_ulong, - pub start_stack: ::c_ulong, - pub signal: ::c_long, - __reserved: ::c_int, - #[cfg(target_pointer_width = "32")] - __pad1: u32, - pub u_ar0: *mut user_regs_struct, - #[cfg(target_pointer_width = "32")] - __pad2: u32, - pub u_fpstate: *mut user_fpregs_struct, - pub magic: ::c_ulong, - pub u_comm: [::c_char; 32], - pub u_debugreg: [::c_ulong; 8], - } - - // GitHub repo: ifduyue/musl/ - // commit: b4b1e10364c8737a632be61582e05a8d3acf5690 - // file: arch/x86_64/bits/signal.h#L80-L84 - pub struct mcontext_t { - pub gregs: [greg_t; 23], - __private: [u64; 9], - } - - pub struct ipc_perm { - pub __ipc_perm_key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub __seq: ::c_int, - __unused1: ::c_long, - __unused2: ::c_long - } -} - -s_no_extra_traits! { - pub struct user_fpregs_struct { - pub cwd: ::c_ushort, - pub swd: ::c_ushort, - pub ftw: ::c_ushort, - pub fop: ::c_ushort, - pub rip: ::c_ulong, - pub rdp: ::c_ulong, - pub mxcsr: ::c_uint, - pub mxcr_mask: ::c_uint, - pub st_space: [::c_uint; 32], - pub xmm_space: [::c_uint; 64], - padding: [::c_uint; 24], - } - - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - pub uc_sigmask: ::sigset_t, - __private: [u8; 512], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for user_fpregs_struct { - fn eq(&self, other: &user_fpregs_struct) -> bool { - self.cwd == other.cwd - && self.swd == other.swd - && self.ftw == other.ftw - && self.fop == other.fop - && self.rip == other.rip - && self.rdp == other.rdp - && self.mxcsr == other.mxcsr - && self.mxcr_mask == other.mxcr_mask - && self.st_space == other.st_space - && self - .xmm_space - .iter() - .zip(other.xmm_space.iter()) - .all(|(a,b)| a == b) - // Ignore padding field - } - } - - impl Eq for user_fpregs_struct {} - - impl ::fmt::Debug for user_fpregs_struct { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("user_fpregs_struct") - .field("cwd", &self.cwd) - .field("ftw", &self.ftw) - .field("fop", &self.fop) - .field("rip", &self.rip) - .field("rdp", &self.rdp) - .field("mxcsr", &self.mxcsr) - .field("mxcr_mask", &self.mxcr_mask) - .field("st_space", &self.st_space) - // FIXME: .field("xmm_space", &self.xmm_space) - // Ignore padding field - .finish() - } - } - - impl ::hash::Hash for user_fpregs_struct { - fn hash(&self, state: &mut H) { - self.cwd.hash(state); - self.ftw.hash(state); - self.fop.hash(state); - self.rip.hash(state); - self.rdp.hash(state); - self.mxcsr.hash(state); - self.mxcr_mask.hash(state); - self.st_space.hash(state); - self.xmm_space.hash(state); - // Ignore padding field - } - } - - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_sigmask == other.uc_sigmask - && self - .__private - .iter() - .zip(other.__private.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for ucontext_t {} - - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_sigmask", &self.uc_sigmask) - // Ignore __private field - .finish() - } - } - - impl ::hash::Hash for ucontext_t { - fn hash(&self, state: &mut H) { - self.uc_flags.hash(state); - self.uc_link.hash(state); - self.uc_stack.hash(state); - self.uc_mcontext.hash(state); - self.uc_sigmask.hash(state); - self.__private.hash(state); - } - } - } -} - -// Syscall table - -pub const SYS_read: ::c_long = 0; -pub const SYS_write: ::c_long = 1; -pub const SYS_open: ::c_long = 2; -pub const SYS_close: ::c_long = 3; -pub const SYS_stat: ::c_long = 4; -pub const SYS_fstat: ::c_long = 5; -pub const SYS_lstat: ::c_long = 6; -pub const SYS_poll: ::c_long = 7; -pub const SYS_lseek: ::c_long = 8; -pub const SYS_mmap: ::c_long = 9; -pub const SYS_mprotect: ::c_long = 10; -pub const SYS_munmap: ::c_long = 11; -pub const SYS_brk: ::c_long = 12; -pub const SYS_rt_sigaction: ::c_long = 13; -pub const SYS_rt_sigprocmask: ::c_long = 14; -pub const SYS_rt_sigreturn: ::c_long = 15; -pub const SYS_ioctl: ::c_long = 16; -pub const SYS_pread64: ::c_long = 17; -pub const SYS_pwrite64: ::c_long = 18; -pub const SYS_readv: ::c_long = 19; -pub const SYS_writev: ::c_long = 20; -pub const SYS_access: ::c_long = 21; -pub const SYS_pipe: ::c_long = 22; -pub const SYS_select: ::c_long = 23; -pub const SYS_sched_yield: ::c_long = 24; -pub const SYS_mremap: ::c_long = 25; -pub const SYS_msync: ::c_long = 26; -pub const SYS_mincore: ::c_long = 27; -pub const SYS_madvise: ::c_long = 28; -pub const SYS_shmget: ::c_long = 29; -pub const SYS_shmat: ::c_long = 30; -pub const SYS_shmctl: ::c_long = 31; -pub const SYS_dup: ::c_long = 32; -pub const SYS_dup2: ::c_long = 33; -pub const SYS_pause: ::c_long = 34; -pub const SYS_nanosleep: ::c_long = 35; -pub const SYS_getitimer: ::c_long = 36; -pub const SYS_alarm: ::c_long = 37; -pub const SYS_setitimer: ::c_long = 38; -pub const SYS_getpid: ::c_long = 39; -pub const SYS_sendfile: ::c_long = 40; -pub const SYS_socket: ::c_long = 41; -pub const SYS_connect: ::c_long = 42; -pub const SYS_accept: ::c_long = 43; -pub const SYS_sendto: ::c_long = 44; -pub const SYS_recvfrom: ::c_long = 45; -pub const SYS_sendmsg: ::c_long = 46; -pub const SYS_recvmsg: ::c_long = 47; -pub const SYS_shutdown: ::c_long = 48; -pub const SYS_bind: ::c_long = 49; -pub const SYS_listen: ::c_long = 50; -pub const SYS_getsockname: ::c_long = 51; -pub const SYS_getpeername: ::c_long = 52; -pub const SYS_socketpair: ::c_long = 53; -pub const SYS_setsockopt: ::c_long = 54; -pub const SYS_getsockopt: ::c_long = 55; -pub const SYS_clone: ::c_long = 56; -pub const SYS_fork: ::c_long = 57; -pub const SYS_vfork: ::c_long = 58; -pub const SYS_execve: ::c_long = 59; -pub const SYS_exit: ::c_long = 60; -pub const SYS_wait4: ::c_long = 61; -pub const SYS_kill: ::c_long = 62; -pub const SYS_uname: ::c_long = 63; -pub const SYS_semget: ::c_long = 64; -pub const SYS_semop: ::c_long = 65; -pub const SYS_semctl: ::c_long = 66; -pub const SYS_shmdt: ::c_long = 67; -pub const SYS_msgget: ::c_long = 68; -pub const SYS_msgsnd: ::c_long = 69; -pub const SYS_msgrcv: ::c_long = 70; -pub const SYS_msgctl: ::c_long = 71; -pub const SYS_fcntl: ::c_long = 72; -pub const SYS_flock: ::c_long = 73; -pub const SYS_fsync: ::c_long = 74; -pub const SYS_fdatasync: ::c_long = 75; -pub const SYS_truncate: ::c_long = 76; -pub const SYS_ftruncate: ::c_long = 77; -pub const SYS_getdents: ::c_long = 78; -pub const SYS_getcwd: ::c_long = 79; -pub const SYS_chdir: ::c_long = 80; -pub const SYS_fchdir: ::c_long = 81; -pub const SYS_rename: ::c_long = 82; -pub const SYS_mkdir: ::c_long = 83; -pub const SYS_rmdir: ::c_long = 84; -pub const SYS_creat: ::c_long = 85; -pub const SYS_link: ::c_long = 86; -pub const SYS_unlink: ::c_long = 87; -pub const SYS_symlink: ::c_long = 88; -pub const SYS_readlink: ::c_long = 89; -pub const SYS_chmod: ::c_long = 90; -pub const SYS_fchmod: ::c_long = 91; -pub const SYS_chown: ::c_long = 92; -pub const SYS_fchown: ::c_long = 93; -pub const SYS_lchown: ::c_long = 94; -pub const SYS_umask: ::c_long = 95; -pub const SYS_gettimeofday: ::c_long = 96; -pub const SYS_getrlimit: ::c_long = 97; -pub const SYS_getrusage: ::c_long = 98; -pub const SYS_sysinfo: ::c_long = 99; -pub const SYS_times: ::c_long = 100; -pub const SYS_ptrace: ::c_long = 101; -pub const SYS_getuid: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_getgid: ::c_long = 104; -pub const SYS_setuid: ::c_long = 105; -pub const SYS_setgid: ::c_long = 106; -pub const SYS_geteuid: ::c_long = 107; -pub const SYS_getegid: ::c_long = 108; -pub const SYS_setpgid: ::c_long = 109; -pub const SYS_getppid: ::c_long = 110; -pub const SYS_getpgrp: ::c_long = 111; -pub const SYS_setsid: ::c_long = 112; -pub const SYS_setreuid: ::c_long = 113; -pub const SYS_setregid: ::c_long = 114; -pub const SYS_getgroups: ::c_long = 115; -pub const SYS_setgroups: ::c_long = 116; -pub const SYS_setresuid: ::c_long = 117; -pub const SYS_getresuid: ::c_long = 118; -pub const SYS_setresgid: ::c_long = 119; -pub const SYS_getresgid: ::c_long = 120; -pub const SYS_getpgid: ::c_long = 121; -pub const SYS_setfsuid: ::c_long = 122; -pub const SYS_setfsgid: ::c_long = 123; -pub const SYS_getsid: ::c_long = 124; -pub const SYS_capget: ::c_long = 125; -pub const SYS_capset: ::c_long = 126; -pub const SYS_rt_sigpending: ::c_long = 127; -pub const SYS_rt_sigtimedwait: ::c_long = 128; -pub const SYS_rt_sigqueueinfo: ::c_long = 129; -pub const SYS_rt_sigsuspend: ::c_long = 130; -pub const SYS_sigaltstack: ::c_long = 131; -pub const SYS_utime: ::c_long = 132; -pub const SYS_mknod: ::c_long = 133; -pub const SYS_uselib: ::c_long = 134; -pub const SYS_personality: ::c_long = 135; -pub const SYS_ustat: ::c_long = 136; -pub const SYS_statfs: ::c_long = 137; -pub const SYS_fstatfs: ::c_long = 138; -pub const SYS_sysfs: ::c_long = 139; -pub const SYS_getpriority: ::c_long = 140; -pub const SYS_setpriority: ::c_long = 141; -pub const SYS_sched_setparam: ::c_long = 142; -pub const SYS_sched_getparam: ::c_long = 143; -pub const SYS_sched_setscheduler: ::c_long = 144; -pub const SYS_sched_getscheduler: ::c_long = 145; -pub const SYS_sched_get_priority_max: ::c_long = 146; -pub const SYS_sched_get_priority_min: ::c_long = 147; -pub const SYS_sched_rr_get_interval: ::c_long = 148; -pub const SYS_mlock: ::c_long = 149; -pub const SYS_munlock: ::c_long = 150; -pub const SYS_mlockall: ::c_long = 151; -pub const SYS_munlockall: ::c_long = 152; -pub const SYS_vhangup: ::c_long = 153; -pub const SYS_modify_ldt: ::c_long = 154; -pub const SYS_pivot_root: ::c_long = 155; -pub const SYS__sysctl: ::c_long = 156; -pub const SYS_prctl: ::c_long = 157; -pub const SYS_arch_prctl: ::c_long = 158; -pub const SYS_adjtimex: ::c_long = 159; -pub const SYS_setrlimit: ::c_long = 160; -pub const SYS_chroot: ::c_long = 161; -pub const SYS_sync: ::c_long = 162; -pub const SYS_acct: ::c_long = 163; -pub const SYS_settimeofday: ::c_long = 164; -pub const SYS_mount: ::c_long = 165; -pub const SYS_umount2: ::c_long = 166; -pub const SYS_swapon: ::c_long = 167; -pub const SYS_swapoff: ::c_long = 168; -pub const SYS_reboot: ::c_long = 169; -pub const SYS_sethostname: ::c_long = 170; -pub const SYS_setdomainname: ::c_long = 171; -pub const SYS_iopl: ::c_long = 172; -pub const SYS_ioperm: ::c_long = 173; -pub const SYS_create_module: ::c_long = 174; -pub const SYS_init_module: ::c_long = 175; -pub const SYS_delete_module: ::c_long = 176; -pub const SYS_get_kernel_syms: ::c_long = 177; -pub const SYS_query_module: ::c_long = 178; -pub const SYS_quotactl: ::c_long = 179; -pub const SYS_nfsservctl: ::c_long = 180; -pub const SYS_getpmsg: ::c_long = 181; -pub const SYS_putpmsg: ::c_long = 182; -pub const SYS_afs_syscall: ::c_long = 183; -pub const SYS_tuxcall: ::c_long = 184; -pub const SYS_security: ::c_long = 185; -pub const SYS_gettid: ::c_long = 186; -pub const SYS_readahead: ::c_long = 187; -pub const SYS_setxattr: ::c_long = 188; -pub const SYS_lsetxattr: ::c_long = 189; -pub const SYS_fsetxattr: ::c_long = 190; -pub const SYS_getxattr: ::c_long = 191; -pub const SYS_lgetxattr: ::c_long = 192; -pub const SYS_fgetxattr: ::c_long = 193; -pub const SYS_listxattr: ::c_long = 194; -pub const SYS_llistxattr: ::c_long = 195; -pub const SYS_flistxattr: ::c_long = 196; -pub const SYS_removexattr: ::c_long = 197; -pub const SYS_lremovexattr: ::c_long = 198; -pub const SYS_fremovexattr: ::c_long = 199; -pub const SYS_tkill: ::c_long = 200; -pub const SYS_time: ::c_long = 201; -pub const SYS_futex: ::c_long = 202; -pub const SYS_sched_setaffinity: ::c_long = 203; -pub const SYS_sched_getaffinity: ::c_long = 204; -pub const SYS_set_thread_area: ::c_long = 205; -pub const SYS_io_setup: ::c_long = 206; -pub const SYS_io_destroy: ::c_long = 207; -pub const SYS_io_getevents: ::c_long = 208; -pub const SYS_io_submit: ::c_long = 209; -pub const SYS_io_cancel: ::c_long = 210; -pub const SYS_get_thread_area: ::c_long = 211; -pub const SYS_lookup_dcookie: ::c_long = 212; -pub const SYS_epoll_create: ::c_long = 213; -pub const SYS_epoll_ctl_old: ::c_long = 214; -pub const SYS_epoll_wait_old: ::c_long = 215; -pub const SYS_remap_file_pages: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_set_tid_address: ::c_long = 218; -pub const SYS_restart_syscall: ::c_long = 219; -pub const SYS_semtimedop: ::c_long = 220; -pub const SYS_fadvise64: ::c_long = 221; -pub const SYS_timer_create: ::c_long = 222; -pub const SYS_timer_settime: ::c_long = 223; -pub const SYS_timer_gettime: ::c_long = 224; -pub const SYS_timer_getoverrun: ::c_long = 225; -pub const SYS_timer_delete: ::c_long = 226; -pub const SYS_clock_settime: ::c_long = 227; -pub const SYS_clock_gettime: ::c_long = 228; -pub const SYS_clock_getres: ::c_long = 229; -pub const SYS_clock_nanosleep: ::c_long = 230; -pub const SYS_exit_group: ::c_long = 231; -pub const SYS_epoll_wait: ::c_long = 232; -pub const SYS_epoll_ctl: ::c_long = 233; -pub const SYS_tgkill: ::c_long = 234; -pub const SYS_utimes: ::c_long = 235; -pub const SYS_vserver: ::c_long = 236; -pub const SYS_mbind: ::c_long = 237; -pub const SYS_set_mempolicy: ::c_long = 238; -pub const SYS_get_mempolicy: ::c_long = 239; -pub const SYS_mq_open: ::c_long = 240; -pub const SYS_mq_unlink: ::c_long = 241; -pub const SYS_mq_timedsend: ::c_long = 242; -pub const SYS_mq_timedreceive: ::c_long = 243; -pub const SYS_mq_notify: ::c_long = 244; -pub const SYS_mq_getsetattr: ::c_long = 245; -pub const SYS_kexec_load: ::c_long = 246; -pub const SYS_waitid: ::c_long = 247; -pub const SYS_add_key: ::c_long = 248; -pub const SYS_request_key: ::c_long = 249; -pub const SYS_keyctl: ::c_long = 250; -pub const SYS_ioprio_set: ::c_long = 251; -pub const SYS_ioprio_get: ::c_long = 252; -pub const SYS_inotify_init: ::c_long = 253; -pub const SYS_inotify_add_watch: ::c_long = 254; -pub const SYS_inotify_rm_watch: ::c_long = 255; -pub const SYS_migrate_pages: ::c_long = 256; -pub const SYS_openat: ::c_long = 257; -pub const SYS_mkdirat: ::c_long = 258; -pub const SYS_mknodat: ::c_long = 259; -pub const SYS_fchownat: ::c_long = 260; -pub const SYS_futimesat: ::c_long = 261; -pub const SYS_newfstatat: ::c_long = 262; -pub const SYS_unlinkat: ::c_long = 263; -pub const SYS_renameat: ::c_long = 264; -pub const SYS_linkat: ::c_long = 265; -pub const SYS_symlinkat: ::c_long = 266; -pub const SYS_readlinkat: ::c_long = 267; -pub const SYS_fchmodat: ::c_long = 268; -pub const SYS_faccessat: ::c_long = 269; -pub const SYS_pselect6: ::c_long = 270; -pub const SYS_ppoll: ::c_long = 271; -pub const SYS_unshare: ::c_long = 272; -pub const SYS_set_robust_list: ::c_long = 273; -pub const SYS_get_robust_list: ::c_long = 274; -pub const SYS_splice: ::c_long = 275; -pub const SYS_tee: ::c_long = 276; -pub const SYS_sync_file_range: ::c_long = 277; -pub const SYS_vmsplice: ::c_long = 278; -pub const SYS_move_pages: ::c_long = 279; -pub const SYS_utimensat: ::c_long = 280; -pub const SYS_epoll_pwait: ::c_long = 281; -pub const SYS_signalfd: ::c_long = 282; -pub const SYS_timerfd_create: ::c_long = 283; -pub const SYS_eventfd: ::c_long = 284; -pub const SYS_fallocate: ::c_long = 285; -pub const SYS_timerfd_settime: ::c_long = 286; -pub const SYS_timerfd_gettime: ::c_long = 287; -pub const SYS_accept4: ::c_long = 288; -pub const SYS_signalfd4: ::c_long = 289; -pub const SYS_eventfd2: ::c_long = 290; -pub const SYS_epoll_create1: ::c_long = 291; -pub const SYS_dup3: ::c_long = 292; -pub const SYS_pipe2: ::c_long = 293; -pub const SYS_inotify_init1: ::c_long = 294; -pub const SYS_preadv: ::c_long = 295; -pub const SYS_pwritev: ::c_long = 296; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 297; -pub const SYS_perf_event_open: ::c_long = 298; -pub const SYS_recvmmsg: ::c_long = 299; -pub const SYS_fanotify_init: ::c_long = 300; -pub const SYS_fanotify_mark: ::c_long = 301; -pub const SYS_prlimit64: ::c_long = 302; -pub const SYS_name_to_handle_at: ::c_long = 303; -pub const SYS_open_by_handle_at: ::c_long = 304; -pub const SYS_clock_adjtime: ::c_long = 305; -pub const SYS_syncfs: ::c_long = 306; -pub const SYS_sendmmsg: ::c_long = 307; -pub const SYS_setns: ::c_long = 308; -pub const SYS_getcpu: ::c_long = 309; -pub const SYS_process_vm_readv: ::c_long = 310; -pub const SYS_process_vm_writev: ::c_long = 311; -pub const SYS_kcmp: ::c_long = 312; -pub const SYS_finit_module: ::c_long = 313; -pub const SYS_sched_setattr: ::c_long = 314; -pub const SYS_sched_getattr: ::c_long = 315; -pub const SYS_renameat2: ::c_long = 316; -pub const SYS_seccomp: ::c_long = 317; -pub const SYS_getrandom: ::c_long = 318; -pub const SYS_memfd_create: ::c_long = 319; -pub const SYS_kexec_file_load: ::c_long = 320; -pub const SYS_bpf: ::c_long = 321; -pub const SYS_execveat: ::c_long = 322; -pub const SYS_userfaultfd: ::c_long = 323; -pub const SYS_membarrier: ::c_long = 324; -pub const SYS_mlock2: ::c_long = 325; -pub const SYS_copy_file_range: ::c_long = 326; -pub const SYS_preadv2: ::c_long = 327; -pub const SYS_pwritev2: ::c_long = 328; -pub const SYS_pkey_mprotect: ::c_long = 329; -pub const SYS_pkey_alloc: ::c_long = 330; -pub const SYS_pkey_free: ::c_long = 331; -pub const SYS_statx: ::c_long = 332; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -// offsets in user_regs_structs, from sys/reg.h -pub const R15: ::c_int = 0; -pub const R14: ::c_int = 1; -pub const R13: ::c_int = 2; -pub const R12: ::c_int = 3; -pub const RBP: ::c_int = 4; -pub const RBX: ::c_int = 5; -pub const R11: ::c_int = 6; -pub const R10: ::c_int = 7; -pub const R9: ::c_int = 8; -pub const R8: ::c_int = 9; -pub const RAX: ::c_int = 10; -pub const RCX: ::c_int = 11; -pub const RDX: ::c_int = 12; -pub const RSI: ::c_int = 13; -pub const RDI: ::c_int = 14; -pub const ORIG_RAX: ::c_int = 15; -pub const RIP: ::c_int = 16; -pub const CS: ::c_int = 17; -pub const EFLAGS: ::c_int = 18; -pub const RSP: ::c_int = 19; -pub const SS: ::c_int = 20; -pub const FS_BASE: ::c_int = 21; -pub const GS_BASE: ::c_int = 22; -pub const DS: ::c_int = 23; -pub const ES: ::c_int = 24; -pub const FS: ::c_int = 25; -pub const GS: ::c_int = 26; - -// offsets in mcontext_t.gregs from bits/signal.h -// GitHub repo: ifduyue/musl/ -// commit: b4b1e10364c8737a632be61582e05a8d3acf5690 -// file: arch/x86_64/bits/signal.h#L9-L56 -pub const REG_R8: ::c_int = 0; -pub const REG_R9: ::c_int = 1; -pub const REG_R10: ::c_int = 2; -pub const REG_R11: ::c_int = 3; -pub const REG_R12: ::c_int = 4; -pub const REG_R13: ::c_int = 5; -pub const REG_R14: ::c_int = 6; -pub const REG_R15: ::c_int = 7; -pub const REG_RDI: ::c_int = 8; -pub const REG_RSI: ::c_int = 9; -pub const REG_RBP: ::c_int = 10; -pub const REG_RBX: ::c_int = 11; -pub const REG_RDX: ::c_int = 12; -pub const REG_RAX: ::c_int = 13; -pub const REG_RCX: ::c_int = 14; -pub const REG_RSP: ::c_int = 15; -pub const REG_RIP: ::c_int = 16; -pub const REG_EFL: ::c_int = 17; -pub const REG_CSGSFS: ::c_int = 18; -pub const REG_ERR: ::c_int = 19; -pub const REG_TRAPNO: ::c_int = 20; -pub const REG_OLDMASK: ::c_int = 21; -pub const REG_CR2: ::c_int = 22; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_32BIT: ::c_int = 0x0040; -pub const O_APPEND: ::c_int = 1024; -pub const O_DIRECT: ::c_int = 0x4000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_LARGEFILE: ::c_int = 0; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_ASYNC: ::c_int = 0x2000; - -pub const PTRACE_SYSEMU: ::c_int = 31; -pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 32; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; - -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; - -pub const VEOF: usize = 4; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const MAP_SYNC: ::c_int = 0x080000; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::c_int = 0x00000800; -pub const TAB2: ::c_int = 0x00001000; -pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const EDEADLK: ::c_int = 35; -pub const EDEADLOCK: ::c_int = EDEADLK; - -pub const EXTPROC: ::tcflag_t = 0x00010000; -pub const VEOL: usize = 11; -pub const VEOL2: usize = 16; -pub const VMIN: usize = 6; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const FLUSHO: ::tcflag_t = 0x00001000; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/lfs64.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/lfs64.rs deleted file mode 100644 index 27c1d2583..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/lfs64.rs +++ /dev/null @@ -1,241 +0,0 @@ -#[inline] -pub unsafe extern "C" fn creat64(path: *const ::c_char, mode: ::mode_t) -> ::c_int { - ::creat(path, mode) -} - -#[inline] -pub unsafe extern "C" fn fallocate64( - fd: ::c_int, - mode: ::c_int, - offset: ::off64_t, - len: ::off64_t, -) -> ::c_int { - ::fallocate(fd, mode, offset, len) -} - -#[inline] -pub unsafe extern "C" fn fgetpos64(stream: *mut ::FILE, pos: *mut ::fpos64_t) -> ::c_int { - ::fgetpos(stream, pos as *mut _) -} - -#[inline] -pub unsafe extern "C" fn fopen64(pathname: *const ::c_char, mode: *const ::c_char) -> *mut ::FILE { - ::fopen(pathname, mode) -} - -#[inline] -pub unsafe extern "C" fn freopen64( - pathname: *const ::c_char, - mode: *const ::c_char, - stream: *mut ::FILE, -) -> *mut ::FILE { - ::freopen(pathname, mode, stream) -} - -#[inline] -pub unsafe extern "C" fn fseeko64( - stream: *mut ::FILE, - offset: ::off64_t, - whence: ::c_int, -) -> ::c_int { - ::fseeko(stream, offset, whence) -} - -#[inline] -pub unsafe extern "C" fn fsetpos64(stream: *mut ::FILE, pos: *const ::fpos64_t) -> ::c_int { - ::fsetpos(stream, pos as *mut _) -} - -#[inline] -pub unsafe extern "C" fn fstat64(fildes: ::c_int, buf: *mut ::stat64) -> ::c_int { - ::fstat(fildes, buf as *mut _) -} - -#[inline] -pub unsafe extern "C" fn fstatat64( - fd: ::c_int, - path: *const ::c_char, - buf: *mut ::stat64, - flag: ::c_int, -) -> ::c_int { - ::fstatat(fd, path, buf as *mut _, flag) -} - -#[inline] -pub unsafe extern "C" fn fstatfs64(fd: ::c_int, buf: *mut ::statfs64) -> ::c_int { - ::fstatfs(fd, buf as *mut _) -} - -#[inline] -pub unsafe extern "C" fn fstatvfs64(fd: ::c_int, buf: *mut ::statvfs64) -> ::c_int { - ::fstatvfs(fd, buf as *mut _) -} - -#[inline] -pub unsafe extern "C" fn ftello64(stream: *mut ::FILE) -> ::off64_t { - ::ftello(stream) -} - -#[inline] -pub unsafe extern "C" fn ftruncate64(fd: ::c_int, length: ::off64_t) -> ::c_int { - ::ftruncate(fd, length) -} - -#[inline] -pub unsafe extern "C" fn getrlimit64(resource: ::c_int, rlim: *mut ::rlimit64) -> ::c_int { - ::getrlimit(resource, rlim as *mut _) -} - -#[inline] -pub unsafe extern "C" fn lseek64(fd: ::c_int, offset: ::off64_t, whence: ::c_int) -> ::off64_t { - ::lseek(fd, offset, whence) -} - -#[inline] -pub unsafe extern "C" fn lstat64(path: *const ::c_char, buf: *mut ::stat64) -> ::c_int { - ::lstat(path, buf as *mut _) -} - -#[inline] -pub unsafe extern "C" fn mmap64( - addr: *mut ::c_void, - length: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, - offset: ::off64_t, -) -> *mut ::c_void { - ::mmap(addr, length, prot, flags, fd, offset) -} - -// These functions are variadic in the C ABI since the `mode` argument is "optional". Variadic -// `extern "C"` functions are unstable in Rust so we cannot write a shim function for these -// entrypoints. See https://github.com/rust-lang/rust/issues/44930. -// -// These aliases are mostly fine though, neither function takes a LFS64-namespaced type as an -// argument, nor do their names clash with any declared types. -pub use open as open64; -pub use openat as openat64; - -#[inline] -pub unsafe extern "C" fn posix_fadvise64( - fd: ::c_int, - offset: ::off64_t, - len: ::off64_t, - advice: ::c_int, -) -> ::c_int { - ::posix_fadvise(fd, offset, len, advice) -} - -#[inline] -pub unsafe extern "C" fn posix_fallocate64( - fd: ::c_int, - offset: ::off64_t, - len: ::off64_t, -) -> ::c_int { - ::posix_fallocate(fd, offset, len) -} - -#[inline] -pub unsafe extern "C" fn pread64( - fd: ::c_int, - buf: *mut ::c_void, - count: ::size_t, - offset: ::off64_t, -) -> ::ssize_t { - ::pread(fd, buf, count, offset) -} - -#[inline] -pub unsafe extern "C" fn preadv64( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, -) -> ::ssize_t { - ::preadv(fd, iov, iovcnt, offset) -} - -#[inline] -pub unsafe extern "C" fn prlimit64( - pid: ::pid_t, - resource: ::c_int, - new_limit: *const ::rlimit64, - old_limit: *mut ::rlimit64, -) -> ::c_int { - ::prlimit(pid, resource, new_limit as *mut _, old_limit as *mut _) -} - -#[inline] -pub unsafe extern "C" fn pwrite64( - fd: ::c_int, - buf: *const ::c_void, - count: ::size_t, - offset: ::off64_t, -) -> ::ssize_t { - ::pwrite(fd, buf, count, offset) -} - -#[inline] -pub unsafe extern "C" fn pwritev64( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, -) -> ::ssize_t { - ::pwritev(fd, iov, iovcnt, offset) -} - -#[inline] -pub unsafe extern "C" fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64 { - ::readdir(dirp) as *mut _ -} - -#[inline] -pub unsafe extern "C" fn readdir64_r( - dirp: *mut ::DIR, - entry: *mut ::dirent64, - result: *mut *mut ::dirent64, -) -> ::c_int { - ::readdir_r(dirp, entry as *mut _, result as *mut _) -} - -#[inline] -pub unsafe extern "C" fn sendfile64( - out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut ::off64_t, - count: ::size_t, -) -> ::ssize_t { - ::sendfile(out_fd, in_fd, offset, count) -} - -#[inline] -pub unsafe extern "C" fn setrlimit64(resource: ::c_int, rlim: *const ::rlimit64) -> ::c_int { - ::setrlimit(resource, rlim as *mut _) -} - -#[inline] -pub unsafe extern "C" fn stat64(pathname: *const ::c_char, statbuf: *mut ::stat64) -> ::c_int { - ::stat(pathname, statbuf as *mut _) -} - -#[inline] -pub unsafe extern "C" fn statfs64(pathname: *const ::c_char, buf: *mut ::statfs64) -> ::c_int { - ::statfs(pathname, buf as *mut _) -} - -#[inline] -pub unsafe extern "C" fn statvfs64(path: *const ::c_char, buf: *mut ::statvfs64) -> ::c_int { - ::statvfs(path, buf as *mut _) -} - -#[inline] -pub unsafe extern "C" fn tmpfile64() -> *mut ::FILE { - ::tmpfile() -} - -#[inline] -pub unsafe extern "C" fn truncate64(path: *const ::c_char, length: ::off64_t) -> ::c_int { - ::truncate(path, length) -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/mod.rs deleted file mode 100644 index 4c6053389..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/musl/mod.rs +++ /dev/null @@ -1,806 +0,0 @@ -pub type pthread_t = *mut ::c_void; -pub type clock_t = c_long; -#[cfg_attr( - not(feature = "rustc-dep-of-std"), - deprecated( - since = "0.2.80", - note = "This type is changed to 64-bit in musl 1.2.0, \ - we'll follow that change in the future release. \ - See #1848 for more info." - ) -)] -pub type time_t = c_long; -pub type suseconds_t = c_long; -pub type ino_t = u64; -pub type off_t = i64; -pub type blkcnt_t = i64; - -pub type shmatt_t = ::c_ulong; -pub type msgqnum_t = ::c_ulong; -pub type msglen_t = ::c_ulong; -pub type fsblkcnt_t = ::c_ulonglong; -pub type fsfilcnt_t = ::c_ulonglong; -pub type rlim_t = ::c_ulonglong; - -cfg_if! { - if #[cfg(doc)] { - // Used in `linux::arch` to define ioctl constants. - pub(crate) type Ioctl = ::c_int; - } else { - #[doc(hidden)] - pub type Ioctl = ::c_int; - } -} - -impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { - #[repr(C)] - struct siginfo_sigfault { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - si_addr: *mut ::c_void, - } - (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr - } - - pub unsafe fn si_value(&self) -> ::sigval { - #[repr(C)] - struct siginfo_si_value { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - _si_timerid: ::c_int, - _si_overrun: ::c_int, - si_value: ::sigval, - } - (*(self as *const siginfo_t as *const siginfo_si_value)).si_value - } -} - -cfg_if! { - if #[cfg(libc_union)] { - // Internal, for casts to access union fields - #[repr(C)] - struct sifields_sigchld { - si_pid: ::pid_t, - si_uid: ::uid_t, - si_status: ::c_int, - si_utime: ::c_long, - si_stime: ::c_long, - } - impl ::Copy for sifields_sigchld {} - impl ::Clone for sifields_sigchld { - fn clone(&self) -> sifields_sigchld { - *self - } - } - - // Internal, for casts to access union fields - #[repr(C)] - union sifields { - _align_pointer: *mut ::c_void, - sigchld: sifields_sigchld, - } - - // Internal, for casts to access union fields. Note that some variants - // of sifields start with a pointer, which makes the alignment of - // sifields vary on 32-bit and 64-bit architectures. - #[repr(C)] - struct siginfo_f { - _siginfo_base: [::c_int; 3], - sifields: sifields, - } - - impl siginfo_t { - unsafe fn sifields(&self) -> &sifields { - &(*(self as *const siginfo_t as *const siginfo_f)).sifields - } - - pub unsafe fn si_pid(&self) -> ::pid_t { - self.sifields().sigchld.si_pid - } - - pub unsafe fn si_uid(&self) -> ::uid_t { - self.sifields().sigchld.si_uid - } - - pub unsafe fn si_status(&self) -> ::c_int { - self.sifields().sigchld.si_status - } - - pub unsafe fn si_utime(&self) -> ::c_long { - self.sifields().sigchld.si_utime - } - - pub unsafe fn si_stime(&self) -> ::c_long { - self.sifields().sigchld.si_stime - } - } - } -} - -s! { - pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, - __td: *mut ::c_void, - __lock: [::c_int; 2], - __err: ::c_int, - __ret: ::ssize_t, - pub aio_offset: off_t, - __next: *mut ::c_void, - __prev: *mut ::c_void, - #[cfg(target_pointer_width = "32")] - __dummy4: [::c_char; 24], - #[cfg(target_pointer_width = "64")] - __dummy4: [::c_char; 16], - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - #[cfg(target_endian = "little")] - pub f_fsid: ::c_ulong, - #[cfg(target_pointer_width = "32")] - __f_unused: ::c_int, - #[cfg(target_endian = "big")] - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - pub __c_ispeed: ::speed_t, - pub __c_ospeed: ::speed_t, - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct flock64 { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off64_t, - pub l_len: ::off64_t, - pub l_pid: ::pid_t, - } - - pub struct regex_t { - __re_nsub: ::size_t, - __opaque: *mut ::c_void, - __padding: [*mut ::c_void; 4usize], - __nsub2: ::size_t, - __padding2: ::c_char, - } - - pub struct rtentry { - pub rt_pad1: ::c_ulong, - pub rt_dst: ::sockaddr, - pub rt_gateway: ::sockaddr, - pub rt_genmask: ::sockaddr, - pub rt_flags: ::c_ushort, - pub rt_pad2: ::c_short, - pub rt_pad3: ::c_ulong, - pub rt_tos: ::c_uchar, - pub rt_class: ::c_uchar, - #[cfg(target_pointer_width = "64")] - pub rt_pad4: [::c_short; 3usize], - #[cfg(not(target_pointer_width = "64"))] - pub rt_pad4: [::c_short; 1usize], - pub rt_metric: ::c_short, - pub rt_dev: *mut ::c_char, - pub rt_mtu: ::c_ulong, - pub rt_window: ::c_ulong, - pub rt_irtt: ::c_ushort, - } - - pub struct __exit_status { - pub e_termination: ::c_short, - pub e_exit: ::c_short, - } - - pub struct Elf64_Chdr { - pub ch_type: ::Elf64_Word, - pub ch_reserved: ::Elf64_Word, - pub ch_size: ::Elf64_Xword, - pub ch_addralign: ::Elf64_Xword, - } - - pub struct Elf32_Chdr { - pub ch_type: ::Elf32_Word, - pub ch_size: ::Elf32_Word, - pub ch_addralign: ::Elf32_Word, - } - - pub struct timex { - pub modes: ::c_uint, - pub offset: ::c_long, - pub freq: ::c_long, - pub maxerror: ::c_long, - pub esterror: ::c_long, - pub status: ::c_int, - pub constant: ::c_long, - pub precision: ::c_long, - pub tolerance: ::c_long, - pub time: ::timeval, - pub tick: ::c_long, - pub ppsfreq: ::c_long, - pub jitter: ::c_long, - pub shift: ::c_int, - pub stabil: ::c_long, - pub jitcnt: ::c_long, - pub calcnt: ::c_long, - pub errcnt: ::c_long, - pub stbcnt: ::c_long, - pub tai: ::c_int, - pub __padding: [::c_int; 11], - } - - pub struct ntptimeval { - pub time: ::timeval, - pub maxerror: ::c_long, - pub esterror: ::c_long, - } -} - -s_no_extra_traits! { - pub struct sysinfo { - pub uptime: ::c_ulong, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub __reserved: [::c_char; 256], - } - - // FIXME: musl added paddings and adjusted - // layout in 1.2.0 but our CI is still 1.1.24. - // So, I'm leaving some fields as cfg for now. - // ref. https://github.com/bminor/musl/commit/ - // 1e7f0fcd7ff2096904fd93a2ee6d12a2392be392 - // - // OpenHarmony uses the musl 1.2 layout. - pub struct utmpx { - pub ut_type: ::c_short, - __ut_pad1: ::c_short, - pub ut_pid: ::pid_t, - pub ut_line: [::c_char; 32], - pub ut_id: [::c_char; 4], - pub ut_user: [::c_char; 32], - pub ut_host: [::c_char; 256], - pub ut_exit: __exit_status, - - #[cfg(target_env = "musl")] - pub ut_session: ::c_long, - - #[cfg(target_env = "ohos")] - #[cfg(target_endian = "little")] - pub ut_session: ::c_int, - #[cfg(target_env = "ohos")] - #[cfg(target_endian = "little")] - __ut_pad2: ::c_int, - - #[cfg(target_env = "ohos")] - #[cfg(not(target_endian = "little"))] - __ut_pad2: ::c_int, - #[cfg(target_env = "ohos")] - #[cfg(not(target_endian = "little"))] - pub ut_session: ::c_int, - - pub ut_tv: ::timeval, - pub ut_addr_v6: [::c_uint; 4], - __unused: [::c_char; 20], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for sysinfo { - fn eq(&self, other: &sysinfo) -> bool { - self.uptime == other.uptime - && self.loads == other.loads - && self.totalram == other.totalram - && self.freeram == other.freeram - && self.sharedram == other.sharedram - && self.bufferram == other.bufferram - && self.totalswap == other.totalswap - && self.freeswap == other.freeswap - && self.procs == other.procs - && self.pad == other.pad - && self.totalhigh == other.totalhigh - && self.freehigh == other.freehigh - && self.mem_unit == other.mem_unit - && self - .__reserved - .iter() - .zip(other.__reserved.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for sysinfo {} - - impl ::fmt::Debug for sysinfo { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sysinfo") - .field("uptime", &self.uptime) - .field("loads", &self.loads) - .field("totalram", &self.totalram) - .field("freeram", &self.freeram) - .field("sharedram", &self.sharedram) - .field("bufferram", &self.bufferram) - .field("totalswap", &self.totalswap) - .field("freeswap", &self.freeswap) - .field("procs", &self.procs) - .field("pad", &self.pad) - .field("totalhigh", &self.totalhigh) - .field("freehigh", &self.freehigh) - .field("mem_unit", &self.mem_unit) - // FIXME: .field("__reserved", &self.__reserved) - .finish() - } - } - - impl ::hash::Hash for sysinfo { - fn hash(&self, state: &mut H) { - self.uptime.hash(state); - self.loads.hash(state); - self.totalram.hash(state); - self.freeram.hash(state); - self.sharedram.hash(state); - self.bufferram.hash(state); - self.totalswap.hash(state); - self.freeswap.hash(state); - self.procs.hash(state); - self.pad.hash(state); - self.totalhigh.hash(state); - self.freehigh.hash(state); - self.mem_unit.hash(state); - self.__reserved.hash(state); - } - } - - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - //&& self.__ut_pad1 == other.__ut_pad1 - && self.ut_pid == other.ut_pid - && self.ut_line == other.ut_line - && self.ut_id == other.ut_id - && self.ut_user == other.ut_user - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) - && self.ut_exit == other.ut_exit - && self.ut_session == other.ut_session - //&& self.__ut_pad2 == other.__ut_pad2 - && self.ut_tv == other.ut_tv - && self.ut_addr_v6 == other.ut_addr_v6 - && self.__unused == other.__unused - } - } - - impl Eq for utmpx {} - - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utmpx") - .field("ut_type", &self.ut_type) - //.field("__ut_pad1", &self.__ut_pad1) - .field("ut_pid", &self.ut_pid) - .field("ut_line", &self.ut_line) - .field("ut_id", &self.ut_id) - .field("ut_user", &self.ut_user) - //FIXME: .field("ut_host", &self.ut_host) - .field("ut_exit", &self.ut_exit) - .field("ut_session", &self.ut_session) - //.field("__ut_pad2", &self.__ut_pad2) - .field("ut_tv", &self.ut_tv) - .field("ut_addr_v6", &self.ut_addr_v6) - .field("__unused", &self.__unused) - .finish() - } - } - - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_type.hash(state); - //self.__ut_pad1.hash(state); - self.ut_pid.hash(state); - self.ut_line.hash(state); - self.ut_id.hash(state); - self.ut_user.hash(state); - self.ut_host.hash(state); - self.ut_exit.hash(state); - self.ut_session.hash(state); - //self.__ut_pad2.hash(state); - self.ut_tv.hash(state); - self.ut_addr_v6.hash(state); - self.__unused.hash(state); - } - } - } -} - -// include/sys/mman.h -/* - * Huge page size encoding when MAP_HUGETLB is specified, and a huge page - * size other than the default is desired. See hugetlb_encode.h. - * All known huge page size encodings are provided here. It is the - * responsibility of the application to know which sizes are supported on - * the running system. See mmap(2) man page for details. - */ -pub const MAP_HUGE_SHIFT: ::c_int = 26; -pub const MAP_HUGE_MASK: ::c_int = 0x3f; - -pub const MAP_HUGE_64KB: ::c_int = 16 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_512KB: ::c_int = 19 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_1MB: ::c_int = 20 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_2MB: ::c_int = 21 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_8MB: ::c_int = 23 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_16MB: ::c_int = 24 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_32MB: ::c_int = 25 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_256MB: ::c_int = 28 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_512MB: ::c_int = 29 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_1GB: ::c_int = 30 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_2GB: ::c_int = 31 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_16GB: ::c_int = 34 << MAP_HUGE_SHIFT; - -pub const MS_RMT_MASK: ::c_ulong = 0x02800051; - -pub const SFD_CLOEXEC: ::c_int = 0x080000; - -pub const NCCS: usize = 32; - -pub const O_TRUNC: ::c_int = 512; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_CLOEXEC: ::c_int = 0x80000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const BUFSIZ: ::c_uint = 1024; -pub const TMP_MAX: ::c_uint = 10000; -pub const FOPEN_MAX: ::c_uint = 1000; -pub const FILENAME_MAX: ::c_uint = 4096; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_EXEC: ::c_int = 0o10000000; -pub const O_SEARCH: ::c_int = 0o10000000; -pub const O_ACCMODE: ::c_int = 0o10000003; -pub const O_NDELAY: ::c_int = O_NONBLOCK; -pub const NI_MAXHOST: ::socklen_t = 255; -pub const PTHREAD_STACK_MIN: ::size_t = 2048; - -pub const POSIX_MADV_DONTNEED: ::c_int = 4; - -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; - -pub const SOCK_DCCP: ::c_int = 6; -pub const SOCK_PACKET: ::c_int = 10; - -pub const SOMAXCONN: ::c_int = 128; - -#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] -pub const SIGUNUSED: ::c_int = ::SIGSYS; - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; - -pub const CPU_SETSIZE: ::c_int = 128; - -pub const PTRACE_TRACEME: ::c_int = 0; -pub const PTRACE_PEEKTEXT: ::c_int = 1; -pub const PTRACE_PEEKDATA: ::c_int = 2; -pub const PTRACE_PEEKUSER: ::c_int = 3; -pub const PTRACE_POKETEXT: ::c_int = 4; -pub const PTRACE_POKEDATA: ::c_int = 5; -pub const PTRACE_POKEUSER: ::c_int = 6; -pub const PTRACE_CONT: ::c_int = 7; -pub const PTRACE_KILL: ::c_int = 8; -pub const PTRACE_SINGLESTEP: ::c_int = 9; -pub const PTRACE_GETREGS: ::c_int = 12; -pub const PTRACE_SETREGS: ::c_int = 13; -pub const PTRACE_GETFPREGS: ::c_int = 14; -pub const PTRACE_SETFPREGS: ::c_int = 15; -pub const PTRACE_ATTACH: ::c_int = 16; -pub const PTRACE_DETACH: ::c_int = 17; -pub const PTRACE_GETFPXREGS: ::c_int = 18; -pub const PTRACE_SETFPXREGS: ::c_int = 19; -pub const PTRACE_SYSCALL: ::c_int = 24; -pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; -pub const PTRACE_GETREGSET: ::c_int = 0x4204; -pub const PTRACE_SETREGSET: ::c_int = 0x4205; -pub const PTRACE_SEIZE: ::c_int = 0x4206; -pub const PTRACE_INTERRUPT: ::c_int = 0x4207; -pub const PTRACE_LISTEN: ::c_int = 0x4208; -pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; - -pub const FAN_MARK_INODE: ::c_uint = 0x0000_0000; -pub const FAN_MARK_MOUNT: ::c_uint = 0x0000_0010; -// NOTE: FAN_MARK_FILESYSTEM requires Linux Kernel >= 4.20.0 -pub const FAN_MARK_FILESYSTEM: ::c_uint = 0x0000_0100; - -pub const AF_IB: ::c_int = 27; -pub const AF_MPLS: ::c_int = 28; -pub const AF_NFC: ::c_int = 39; -pub const AF_VSOCK: ::c_int = 40; -pub const AF_XDP: ::c_int = 44; -pub const PF_IB: ::c_int = AF_IB; -pub const PF_MPLS: ::c_int = AF_MPLS; -pub const PF_NFC: ::c_int = AF_NFC; -pub const PF_VSOCK: ::c_int = AF_VSOCK; -pub const PF_XDP: ::c_int = AF_XDP; - -pub const EFD_NONBLOCK: ::c_int = ::O_NONBLOCK; - -pub const SFD_NONBLOCK: ::c_int = ::O_NONBLOCK; - -pub const PIDFD_NONBLOCK: ::c_uint = O_NONBLOCK as ::c_uint; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const CLOCK_SGI_CYCLE: ::clockid_t = 10; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; - -pub const REG_OK: ::c_int = 0; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -pub const ADJ_OFFSET: ::c_uint = 0x0001; -pub const ADJ_FREQUENCY: ::c_uint = 0x0002; -pub const ADJ_MAXERROR: ::c_uint = 0x0004; -pub const ADJ_ESTERROR: ::c_uint = 0x0008; -pub const ADJ_STATUS: ::c_uint = 0x0010; -pub const ADJ_TIMECONST: ::c_uint = 0x0020; -pub const ADJ_TAI: ::c_uint = 0x0080; -pub const ADJ_SETOFFSET: ::c_uint = 0x0100; -pub const ADJ_MICRO: ::c_uint = 0x1000; -pub const ADJ_NANO: ::c_uint = 0x2000; -pub const ADJ_TICK: ::c_uint = 0x4000; -pub const ADJ_OFFSET_SINGLESHOT: ::c_uint = 0x8001; -pub const ADJ_OFFSET_SS_READ: ::c_uint = 0xa001; -pub const MOD_OFFSET: ::c_uint = ADJ_OFFSET; -pub const MOD_FREQUENCY: ::c_uint = ADJ_FREQUENCY; -pub const MOD_MAXERROR: ::c_uint = ADJ_MAXERROR; -pub const MOD_ESTERROR: ::c_uint = ADJ_ESTERROR; -pub const MOD_STATUS: ::c_uint = ADJ_STATUS; -pub const MOD_TIMECONST: ::c_uint = ADJ_TIMECONST; -pub const MOD_CLKB: ::c_uint = ADJ_TICK; -pub const MOD_CLKA: ::c_uint = ADJ_OFFSET_SINGLESHOT; -pub const MOD_TAI: ::c_uint = ADJ_TAI; -pub const MOD_MICRO: ::c_uint = ADJ_MICRO; -pub const MOD_NANO: ::c_uint = ADJ_NANO; -pub const STA_PLL: ::c_int = 0x0001; -pub const STA_PPSFREQ: ::c_int = 0x0002; -pub const STA_PPSTIME: ::c_int = 0x0004; -pub const STA_FLL: ::c_int = 0x0008; -pub const STA_INS: ::c_int = 0x0010; -pub const STA_DEL: ::c_int = 0x0020; -pub const STA_UNSYNC: ::c_int = 0x0040; -pub const STA_FREQHOLD: ::c_int = 0x0080; -pub const STA_PPSSIGNAL: ::c_int = 0x0100; -pub const STA_PPSJITTER: ::c_int = 0x0200; -pub const STA_PPSWANDER: ::c_int = 0x0400; -pub const STA_PPSERROR: ::c_int = 0x0800; -pub const STA_CLOCKERR: ::c_int = 0x1000; -pub const STA_NANO: ::c_int = 0x2000; -pub const STA_MODE: ::c_int = 0x4000; -pub const STA_CLK: ::c_int = 0x8000; -pub const STA_RONLY: ::c_int = STA_PPSSIGNAL - | STA_PPSJITTER - | STA_PPSWANDER - | STA_PPSERROR - | STA_CLOCKERR - | STA_NANO - | STA_MODE - | STA_CLK; - -pub const TIME_OK: ::c_int = 0; -pub const TIME_INS: ::c_int = 1; -pub const TIME_DEL: ::c_int = 2; -pub const TIME_OOP: ::c_int = 3; -pub const TIME_WAIT: ::c_int = 4; -pub const TIME_ERROR: ::c_int = 5; -pub const TIME_BAD: ::c_int = TIME_ERROR; -pub const MAXTC: ::c_long = 6; - -cfg_if! { - if #[cfg(target_arch = "s390x")] { - pub const POSIX_FADV_DONTNEED: ::c_int = 6; - pub const POSIX_FADV_NOREUSE: ::c_int = 7; - } else { - pub const POSIX_FADV_DONTNEED: ::c_int = 4; - pub const POSIX_FADV_NOREUSE: ::c_int = 5; - } -} - -extern "C" { - pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_uint, - ) -> ::c_int; - pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_uint, - timeout: *mut ::timespec, - ) -> ::c_int; - - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn prlimit( - pid: ::pid_t, - resource: ::c_int, - new_limit: *const ::rlimit, - old_limit: *mut ::rlimit, - ) -> ::c_int; - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn ptrace(request: ::c_int, ...) -> ::c_long; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - // Musl targets need the `mask` argument of `fanotify_mark` be specified - // `::c_ulonglong` instead of `u64` or there will be a type mismatch between - // `long long unsigned int` and the expected `uint64_t`. - pub fn fanotify_mark( - fd: ::c_int, - flags: ::c_uint, - mask: ::c_ulonglong, - dirfd: ::c_int, - path: *const ::c_char, - ) -> ::c_int; - pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; - - // Added in `musl` 1.1.20 - pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t); - // Added in `musl` 1.2.2 - pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; - - pub fn adjtimex(buf: *mut ::timex) -> ::c_int; - pub fn clock_adjtime(clk_id: ::clockid_t, buf: *mut ::timex) -> ::c_int; - - pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; - - pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int; - pub fn mlock2(addr: *const ::c_void, len: ::size_t, flags: ::c_uint) -> ::c_int; - pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t; - - pub fn euidaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; - pub fn eaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int; - - pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char; - - pub fn strftime( - s: *mut ::c_char, - max: ::size_t, - format: *const ::c_char, - tm: *const ::tm, - ) -> ::size_t; - pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char; - - pub fn dirname(path: *mut ::c_char) -> *mut ::c_char; - pub fn basename(path: *mut ::c_char) -> *mut ::c_char; -} - -// Alias to 64 to mimic glibc's LFS64 support -mod lfs64; -pub use self::lfs64::*; - -cfg_if! { - if #[cfg(any(target_arch = "x86_64", - target_arch = "aarch64", - target_arch = "mips64", - target_arch = "powerpc64", - target_arch = "s390x", - target_arch = "riscv64"))] { - mod b64; - pub use self::b64::*; - } else if #[cfg(any(target_arch = "x86", - target_arch = "mips", - target_arch = "powerpc", - target_arch = "hexagon", - target_arch = "riscv32", - target_arch = "arm"))] { - mod b32; - pub use self::b32::*; - } else { } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/no_align.rs deleted file mode 100644 index 6f5f2f7c0..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/no_align.rs +++ /dev/null @@ -1,130 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - pub struct pthread_mutexattr_t { - #[cfg(any(target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "loongarch64", - all(target_arch = "aarch64", - any(target_env = "musl", target_env = "ohos"))))] - __align: [::c_int; 0], - #[cfg(not(any(target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64", - target_arch = "riscv64", - target_arch = "riscv32", - target_arch = "loongarch64", - all(target_arch = "aarch64", - any(target_env = "musl", target_env = "ohos")))))] - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - pub struct pthread_rwlockattr_t { - #[cfg(any(target_env = "musl", target_env = "ohos"))] - __align: [::c_int; 0], - #[cfg(not(any(target_env = "musl", target_env = "ohos")))] - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T], - } - - pub struct pthread_condattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - - pub struct pthread_barrierattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T], - } - - pub struct fanotify_event_metadata { - __align: [::c_long; 0], - pub event_len: __u32, - pub vers: __u8, - pub reserved: __u8, - pub metadata_len: __u16, - pub mask: __u64, - pub fd: ::c_int, - pub pid: ::c_int, - } - } - - s_no_extra_traits! { - pub struct pthread_cond_t { - #[cfg(any(target_env = "musl", target_env = "ohos"))] - __align: [*const ::c_void; 0], - #[cfg(not(any(target_env = "musl", target_env = "ohos")))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - - pub struct pthread_mutex_t { - #[cfg(any(target_arch = "mips", - target_arch = "arm", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - all(target_arch = "x86_64", - target_pointer_width = "32")))] - __align: [::c_long; 0], - #[cfg(not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - all(target_arch = "x86_64", - target_pointer_width = "32"))))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - pub struct pthread_rwlock_t { - #[cfg(any(target_arch = "mips", - target_arch = "arm", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - all(target_arch = "x86_64", - target_pointer_width = "32")))] - __align: [::c_long; 0], - #[cfg(not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - all(target_arch = "x86_64", - target_pointer_width = "32"))))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - pub struct pthread_barrier_t { - #[cfg(any(target_arch = "mips", - target_arch = "arm", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - all(target_arch = "x86_64", - target_pointer_width = "32")))] - __align: [::c_long; 0], - #[cfg(not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "m68k", - target_arch = "powerpc", - target_arch = "sparc", - all(target_arch = "x86_64", - target_pointer_width = "32"))))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_BARRIER_T], - } - } - }; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/non_exhaustive.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/non_exhaustive.rs deleted file mode 100644 index e2e2cb847..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/non_exhaustive.rs +++ /dev/null @@ -1,9 +0,0 @@ -s! { - // linux/openat2.h - #[non_exhaustive] - pub struct open_how { - pub flags: ::__u64, - pub mode: ::__u64, - pub resolve: ::__u64, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/align.rs deleted file mode 100644 index e6610bb7b..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/align.rs +++ /dev/null @@ -1,28 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - #[cfg_attr(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64"), - repr(align(4)))] - #[cfg_attr(not(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64")), - repr(align(8)))] - pub struct pthread_mutexattr_t { - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - #[repr(align(4))] - pub struct pthread_condattr_t { - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - }; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/align.rs deleted file mode 100644 index 4a0e07460..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/align.rs +++ /dev/null @@ -1,13 +0,0 @@ -s! { - // FIXME this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/mod.rs deleted file mode 100644 index cff82f005..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ /dev/null @@ -1,925 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = ::c_uint; -pub type c_long = i32; -pub type c_ulong = u32; -pub type time_t = ::c_long; - -pub type clock_t = ::c_long; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type ino_t = ::c_ulong; -pub type off_t = ::c_long; -pub type pthread_t = ::c_ulong; -pub type suseconds_t = ::c_long; - -pub type nlink_t = ::c_uint; -pub type blksize_t = ::c_long; -pub type blkcnt_t = ::c_long; - -pub type fsblkcnt64_t = u64; -pub type fsfilcnt64_t = u64; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; - -s! { - pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, - } - - pub struct pthread_attr_t { - __size: [::c_long; 9], - } - - pub struct stat { - pub st_dev: ::c_ulonglong, - __pad1: ::c_ushort, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulonglong, - __pad2: ::c_ushort, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - __unused4: ::c_ulong, - __unused5: ::c_ulong, - } - - pub struct stat64 - { - pub st_dev: ::c_ulonglong, - pub __pad1: ::c_uint, - pub __st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulonglong, - pub __pad2: ::c_uint, - pub st_size: ::off64_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_ino: ::ino64_t, - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 8], - } - - pub struct statfs { - pub f_type: ::c_int, - pub f_bsize: ::c_int, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_int, - pub f_frsize: ::c_int, - pub f_flags: ::c_int, - pub f_spare: [::c_int; 4], - } - - pub struct statfs64 { - pub f_type: ::c_int, - pub f_bsize: ::c_int, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_int, - pub f_frsize: ::c_int, - pub f_flags: ::c_int, - pub f_spare: [::c_int; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct sigset_t { - __val: [::c_ulong; 2], - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_flags: ::c_ulong, - pub sa_restorer: ::Option, - pub sa_mask: sigset_t, - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong, - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - __unused1: ::c_ulong, - pub msg_rtime: ::time_t, - __unused2: ::c_ulong, - pub msg_ctime: ::time_t, - __unused3: ::c_ulong, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - __unused1: ::c_ulong, - pub shm_dtime: ::time_t, - __unused2: ::c_ulong, - pub shm_ctime: ::time_t, - __unused3: ::c_ulong, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong, - } -} - -pub const O_CLOEXEC: ::c_int = 0o2000000; -pub const __SIZEOF_PTHREAD_ATTR_T: usize = 36; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_COND_COMPAT_T: usize = 12; -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const NCCS: usize = 32; - -// I wasn't able to find those constants -// in uclibc build environment for armv7 -pub const MAP_HUGETLB: ::c_int = 0x040000; // from linux/other/mod.rs - -// autogenerated constants with hand tuned types -pub const B0: ::speed_t = 0; -pub const B1000000: ::speed_t = 0x1008; -pub const B110: ::speed_t = 0x3; -pub const B115200: ::speed_t = 0x1002; -pub const B1152000: ::speed_t = 0x1009; -pub const B1200: ::speed_t = 0x9; -pub const B134: ::speed_t = 0x4; -pub const B150: ::speed_t = 0x5; -pub const B1500000: ::speed_t = 0x100a; -pub const B1800: ::speed_t = 0xa; -pub const B19200: ::speed_t = 0xe; -pub const B200: ::speed_t = 0x6; -pub const B2000000: ::speed_t = 0x100b; -pub const B230400: ::speed_t = 0x1003; -pub const B2400: ::speed_t = 0xb; -pub const B2500000: ::speed_t = 0x100c; -pub const B300: ::speed_t = 0x7; -pub const B3000000: ::speed_t = 0x100d; -pub const B3500000: ::speed_t = 0x100e; -pub const B38400: ::speed_t = 0xf; -pub const B4000000: ::speed_t = 0x100f; -pub const B460800: ::speed_t = 0x1004; -pub const B4800: ::speed_t = 0xc; -pub const B50: ::speed_t = 0x1; -pub const B500000: ::speed_t = 0x1005; -pub const B57600: ::speed_t = 0x1001; -pub const B576000: ::speed_t = 0x1006; -pub const B600: ::speed_t = 0x8; -pub const B75: ::speed_t = 0x2; -pub const B921600: ::speed_t = 0x1007; -pub const B9600: ::speed_t = 0xd; -pub const BS1: ::c_int = 0x2000; -pub const BSDLY: ::c_int = 0x2000; -pub const CBAUD: ::tcflag_t = 0x100f; -pub const CBAUDEX: ::tcflag_t = 0x1000; -pub const CIBAUD: ::tcflag_t = 0x100f0000; -pub const CLOCAL: ::tcflag_t = 0x800; -pub const CPU_SETSIZE: ::c_int = 0x400; -pub const CR1: ::c_int = 0x200; -pub const CR2: ::c_int = 0x400; -pub const CR3: ::c_int = 0x600; -pub const CRDLY: ::c_int = 0x600; -pub const CREAD: ::tcflag_t = 0x80; -pub const CS6: ::tcflag_t = 0x10; -pub const CS7: ::tcflag_t = 0x20; -pub const CS8: ::tcflag_t = 0x30; -pub const CSIZE: ::tcflag_t = 0x30; -pub const CSTOPB: ::tcflag_t = 0x40; -pub const EADDRINUSE: ::c_int = 0x62; -pub const EADDRNOTAVAIL: ::c_int = 0x63; -pub const EADV: ::c_int = 0x44; -pub const EAFNOSUPPORT: ::c_int = 0x61; -pub const EALREADY: ::c_int = 0x72; -pub const EBADE: ::c_int = 0x34; -pub const EBADFD: ::c_int = 0x4d; -pub const EBADMSG: ::c_int = 0x4a; -pub const EBADR: ::c_int = 0x35; -pub const EBADRQC: ::c_int = 0x38; -pub const EBADSLT: ::c_int = 0x39; -pub const EBFONT: ::c_int = 0x3b; -pub const ECANCELED: ::c_int = 0x7d; -pub const ECHOCTL: ::tcflag_t = 0x200; -pub const ECHOE: ::tcflag_t = 0x10; -pub const ECHOK: ::tcflag_t = 0x20; -pub const ECHOKE: ::tcflag_t = 0x800; -pub const ECHONL: ::tcflag_t = 0x40; -pub const ECHOPRT: ::tcflag_t = 0x400; -pub const ECHRNG: ::c_int = 0x2c; -pub const ECOMM: ::c_int = 0x46; -pub const ECONNABORTED: ::c_int = 0x67; -pub const ECONNREFUSED: ::c_int = 0x6f; -pub const ECONNRESET: ::c_int = 0x68; -pub const EDEADLK: ::c_int = 0x23; -pub const EDESTADDRREQ: ::c_int = 0x59; -pub const EDOTDOT: ::c_int = 0x49; -pub const EDQUOT: ::c_int = 0x7a; -pub const EFD_CLOEXEC: ::c_int = 0x80000; -pub const EFD_NONBLOCK: ::c_int = 0x800; -pub const EHOSTDOWN: ::c_int = 0x70; -pub const EHOSTUNREACH: ::c_int = 0x71; -pub const EHWPOISON: ::c_int = 0x85; -pub const EIDRM: ::c_int = 0x2b; -pub const EILSEQ: ::c_int = 0x54; -pub const EINPROGRESS: ::c_int = 0x73; -pub const EISCONN: ::c_int = 0x6a; -pub const EISNAM: ::c_int = 0x78; -pub const EKEYEXPIRED: ::c_int = 0x7f; -pub const EKEYREJECTED: ::c_int = 0x81; -pub const EKEYREVOKED: ::c_int = 0x80; -pub const EL2HLT: ::c_int = 0x33; -pub const EL2NSYNC: ::c_int = 0x2d; -pub const EL3HLT: ::c_int = 0x2e; -pub const EL3RST: ::c_int = 0x2f; -pub const ELIBACC: ::c_int = 0x4f; -pub const ELIBBAD: ::c_int = 0x50; -pub const ELIBEXEC: ::c_int = 0x53; -pub const ELIBMAX: ::c_int = 0x52; -pub const ELIBSCN: ::c_int = 0x51; -pub const ELNRNG: ::c_int = 0x30; -pub const ELOOP: ::c_int = 0x28; -pub const EMEDIUMTYPE: ::c_int = 0x7c; -pub const EMSGSIZE: ::c_int = 0x5a; -pub const EMULTIHOP: ::c_int = 0x48; -pub const ENAMETOOLONG: ::c_int = 0x24; -pub const ENAVAIL: ::c_int = 0x77; -pub const ENETDOWN: ::c_int = 0x64; -pub const ENETRESET: ::c_int = 0x66; -pub const ENETUNREACH: ::c_int = 0x65; -pub const ENOANO: ::c_int = 0x37; -pub const ENOBUFS: ::c_int = 0x69; -pub const ENOCSI: ::c_int = 0x32; -pub const ENODATA: ::c_int = 0x3d; -pub const ENOKEY: ::c_int = 0x7e; -pub const ENOLCK: ::c_int = 0x25; -pub const ENOLINK: ::c_int = 0x43; -pub const ENOMEDIUM: ::c_int = 0x7b; -pub const ENOMSG: ::c_int = 0x2a; -pub const ENONET: ::c_int = 0x40; -pub const ENOPKG: ::c_int = 0x41; -pub const ENOPROTOOPT: ::c_int = 0x5c; -pub const ENOSR: ::c_int = 0x3f; -pub const ENOSTR: ::c_int = 0x3c; -pub const ENOSYS: ::c_int = 0x26; -pub const ENOTCONN: ::c_int = 0x6b; -pub const ENOTEMPTY: ::c_int = 0x27; -pub const ENOTNAM: ::c_int = 0x76; -pub const ENOTRECOVERABLE: ::c_int = 0x83; -pub const ENOTSOCK: ::c_int = 0x58; -pub const ENOTUNIQ: ::c_int = 0x4c; -pub const EOPNOTSUPP: ::c_int = 0x5f; -pub const EOVERFLOW: ::c_int = 0x4b; -pub const EOWNERDEAD: ::c_int = 0x82; -pub const EPFNOSUPPORT: ::c_int = 0x60; -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; -pub const EPROTO: ::c_int = 0x47; -pub const EPROTONOSUPPORT: ::c_int = 0x5d; -pub const EPROTOTYPE: ::c_int = 0x5b; -pub const EREMCHG: ::c_int = 0x4e; -pub const EREMOTE: ::c_int = 0x42; -pub const EREMOTEIO: ::c_int = 0x79; -pub const ERESTART: ::c_int = 0x55; -pub const ERFKILL: ::c_int = 0x84; -pub const ESHUTDOWN: ::c_int = 0x6c; -pub const ESOCKTNOSUPPORT: ::c_int = 0x5e; -pub const ESRMNT: ::c_int = 0x45; -pub const ESTALE: ::c_int = 0x74; -pub const ESTRPIPE: ::c_int = 0x56; -pub const ETIME: ::c_int = 0x3e; -pub const ETIMEDOUT: ::c_int = 0x6e; -pub const ETOOMANYREFS: ::c_int = 0x6d; -pub const EUCLEAN: ::c_int = 0x75; -pub const EUNATCH: ::c_int = 0x31; -pub const EUSERS: ::c_int = 0x57; -pub const EXFULL: ::c_int = 0x36; -pub const FF1: ::c_int = 0x8000; -pub const FFDLY: ::c_int = 0x8000; -pub const FLUSHO: ::tcflag_t = 0x1000; -pub const F_GETLK: ::c_int = 0x5; -pub const F_SETLK: ::c_int = 0x6; -pub const F_SETLKW: ::c_int = 0x7; -pub const HUPCL: ::tcflag_t = 0x400; -pub const ICANON: ::tcflag_t = 0x2; -pub const IEXTEN: ::tcflag_t = 0x8000; -pub const ISIG: ::tcflag_t = 0x1; -pub const IXOFF: ::tcflag_t = 0x1000; -pub const IXON: ::tcflag_t = 0x400; -pub const MAP_ANON: ::c_int = 0x20; -pub const MAP_ANONYMOUS: ::c_int = 0x20; -pub const MAP_DENYWRITE: ::c_int = 0x800; -pub const MAP_EXECUTABLE: ::c_int = 0x1000; -pub const MAP_GROWSDOWN: ::c_int = 0x100; -pub const MAP_LOCKED: ::c_int = 0x2000; -pub const MAP_NONBLOCK: ::c_int = 0x10000; -pub const MAP_NORESERVE: ::c_int = 0x4000; -pub const MAP_POPULATE: ::c_int = 0x8000; -pub const MAP_STACK: ::c_int = 0x20000; -pub const NLDLY: ::tcflag_t = 0x100; -pub const NOFLSH: ::tcflag_t = 0x80; -pub const OLCUC: ::tcflag_t = 0x2; -pub const ONLCR: ::tcflag_t = 0x4; -pub const O_ACCMODE: ::c_int = 0x3; -pub const O_APPEND: ::c_int = 0x400; -pub const O_ASYNC: ::c_int = 0o20000; -pub const O_CREAT: ::c_int = 0x40; -pub const O_DIRECT: ::c_int = 0x10000; -pub const O_DIRECTORY: ::c_int = 0x4000; -pub const O_DSYNC: ::c_int = O_SYNC; -pub const O_EXCL: ::c_int = 0x80; -pub const O_FSYNC: ::c_int = O_SYNC; -pub const O_LARGEFILE: ::c_int = 0o400000; -pub const O_NDELAY: ::c_int = O_NONBLOCK; -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_NOCTTY: ::c_int = 0x100; -pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const O_NONBLOCK: ::c_int = 0x800; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_RSYNC: ::c_int = O_SYNC; -pub const O_SYNC: ::c_int = 0o10000; -pub const O_TRUNC: ::c_int = 0x200; -pub const PARENB: ::tcflag_t = 0x100; -pub const PARODD: ::tcflag_t = 0x200; -pub const PENDIN: ::tcflag_t = 0x4000; -pub const POLLWRBAND: ::c_short = 0x200; -pub const POLLWRNORM: ::c_short = 0x100; -pub const PTHREAD_STACK_MIN: ::size_t = 16384; -pub const RTLD_GLOBAL: ::c_int = 0x00100; -pub const PIDFD_NONBLOCK: ::c_int = 0x800; - -// These are typed unsigned to match sigaction -pub const SA_NOCLDSTOP: ::c_ulong = 0x1; -pub const SA_NOCLDWAIT: ::c_ulong = 0x2; -pub const SA_SIGINFO: ::c_ulong = 0x4; -pub const SA_NODEFER: ::c_ulong = 0x40000000; -pub const SA_ONSTACK: ::c_ulong = 0x8000000; -pub const SA_RESETHAND: ::c_ulong = 0x80000000; -pub const SA_RESTART: ::c_ulong = 0x10000000; - -pub const SFD_CLOEXEC: ::c_int = 0x80000; -pub const SFD_NONBLOCK: ::c_int = 0x800; -pub const SIGBUS: ::c_int = 0x7; -pub const SIGCHLD: ::c_int = 0x11; -pub const SIGCONT: ::c_int = 0x12; -pub const SIGIO: ::c_int = 0x1d; -pub const SIGPROF: ::c_int = 0x1b; -pub const SIGPWR: ::c_int = 0x1e; -pub const SIGSTKFLT: ::c_int = 0x10; -pub const SIGSTKSZ: ::size_t = 8192; -pub const SIGSTOP: ::c_int = 0x13; -pub const SIGSYS: ::c_int = 0x1f; -pub const SIGTSTP: ::c_int = 0x14; -pub const SIGTTIN: ::c_int = 0x15; -pub const SIGTTOU: ::c_int = 0x16; -pub const SIGURG: ::c_int = 0x17; -pub const SIGUSR1: ::c_int = 0xa; -pub const SIGUSR2: ::c_int = 0xc; -pub const SIGVTALRM: ::c_int = 0x1a; -pub const SIGWINCH: ::c_int = 0x1c; -pub const SIGXCPU: ::c_int = 0x18; -pub const SIGXFSZ: ::c_int = 0x19; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_SETMASK: ::c_int = 0x2; -pub const SIG_UNBLOCK: ::c_int = 0x1; -pub const SOCK_DGRAM: ::c_int = 0x2; -pub const SOCK_NONBLOCK: ::c_int = 0o0004000; -pub const SOCK_SEQPACKET: ::c_int = 0x5; -pub const SOCK_STREAM: ::c_int = 0x1; - -pub const TAB1: ::c_int = 0x800; -pub const TAB2: ::c_int = 0x1000; -pub const TAB3: ::c_int = 0x1800; -pub const TABDLY: ::c_int = 0x1800; -pub const TCSADRAIN: ::c_int = 0x1; -pub const TCSAFLUSH: ::c_int = 0x2; -pub const TCSANOW: ::c_int = 0; -pub const TOSTOP: ::tcflag_t = 0x100; -pub const VDISCARD: usize = 0xd; -pub const VEOF: usize = 0x4; -pub const VEOL: usize = 0xb; -pub const VEOL2: usize = 0x10; -pub const VMIN: usize = 0x6; -pub const VREPRINT: usize = 0xc; -pub const VSTART: usize = 0x8; -pub const VSTOP: usize = 0x9; -pub const VSUSP: usize = 0xa; -pub const VSWTC: usize = 0x7; -pub const VT1: ::c_int = 0x4000; -pub const VTDLY: ::c_int = 0x4000; -pub const VTIME: usize = 0x5; -pub const VWERASE: usize = 0xe; -pub const XTABS: ::tcflag_t = 0x1800; - -pub const MADV_SOFT_OFFLINE: ::c_int = 101; - -// Syscall table is copied from src/unix/notbsd/linux/musl/b32/arm.rs -pub const SYS_restart_syscall: ::c_long = 0; -pub const SYS_exit: ::c_long = 1; -pub const SYS_fork: ::c_long = 2; -pub const SYS_read: ::c_long = 3; -pub const SYS_write: ::c_long = 4; -pub const SYS_open: ::c_long = 5; -pub const SYS_close: ::c_long = 6; -pub const SYS_creat: ::c_long = 8; -pub const SYS_link: ::c_long = 9; -pub const SYS_unlink: ::c_long = 10; -pub const SYS_execve: ::c_long = 11; -pub const SYS_chdir: ::c_long = 12; -pub const SYS_mknod: ::c_long = 14; -pub const SYS_chmod: ::c_long = 15; -pub const SYS_lchown: ::c_long = 16; -pub const SYS_lseek: ::c_long = 19; -pub const SYS_getpid: ::c_long = 20; -pub const SYS_mount: ::c_long = 21; -pub const SYS_setuid: ::c_long = 23; -pub const SYS_getuid: ::c_long = 24; -pub const SYS_ptrace: ::c_long = 26; -pub const SYS_pause: ::c_long = 29; -pub const SYS_access: ::c_long = 33; -pub const SYS_nice: ::c_long = 34; -pub const SYS_sync: ::c_long = 36; -pub const SYS_kill: ::c_long = 37; -pub const SYS_rename: ::c_long = 38; -pub const SYS_mkdir: ::c_long = 39; -pub const SYS_rmdir: ::c_long = 40; -pub const SYS_dup: ::c_long = 41; -pub const SYS_pipe: ::c_long = 42; -pub const SYS_times: ::c_long = 43; -pub const SYS_brk: ::c_long = 45; -pub const SYS_setgid: ::c_long = 46; -pub const SYS_getgid: ::c_long = 47; -pub const SYS_geteuid: ::c_long = 49; -pub const SYS_getegid: ::c_long = 50; -pub const SYS_acct: ::c_long = 51; -pub const SYS_umount2: ::c_long = 52; -pub const SYS_ioctl: ::c_long = 54; -pub const SYS_fcntl: ::c_long = 55; -pub const SYS_setpgid: ::c_long = 57; -pub const SYS_umask: ::c_long = 60; -pub const SYS_chroot: ::c_long = 61; -pub const SYS_ustat: ::c_long = 62; -pub const SYS_dup2: ::c_long = 63; -pub const SYS_getppid: ::c_long = 64; -pub const SYS_getpgrp: ::c_long = 65; -pub const SYS_setsid: ::c_long = 66; -pub const SYS_sigaction: ::c_long = 67; -pub const SYS_setreuid: ::c_long = 70; -pub const SYS_setregid: ::c_long = 71; -pub const SYS_sigsuspend: ::c_long = 72; -pub const SYS_sigpending: ::c_long = 73; -pub const SYS_sethostname: ::c_long = 74; -pub const SYS_setrlimit: ::c_long = 75; -pub const SYS_getrusage: ::c_long = 77; -pub const SYS_gettimeofday: ::c_long = 78; -pub const SYS_settimeofday: ::c_long = 79; -pub const SYS_getgroups: ::c_long = 80; -pub const SYS_setgroups: ::c_long = 81; -pub const SYS_symlink: ::c_long = 83; -pub const SYS_readlink: ::c_long = 85; -pub const SYS_uselib: ::c_long = 86; -pub const SYS_swapon: ::c_long = 87; -pub const SYS_reboot: ::c_long = 88; -pub const SYS_munmap: ::c_long = 91; -pub const SYS_truncate: ::c_long = 92; -pub const SYS_ftruncate: ::c_long = 93; -pub const SYS_fchmod: ::c_long = 94; -pub const SYS_fchown: ::c_long = 95; -pub const SYS_getpriority: ::c_long = 96; -pub const SYS_setpriority: ::c_long = 97; -pub const SYS_statfs: ::c_long = 99; -pub const SYS_fstatfs: ::c_long = 100; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_setitimer: ::c_long = 104; -pub const SYS_getitimer: ::c_long = 105; -pub const SYS_stat: ::c_long = 106; -pub const SYS_lstat: ::c_long = 107; -pub const SYS_fstat: ::c_long = 108; -pub const SYS_vhangup: ::c_long = 111; -pub const SYS_wait4: ::c_long = 114; -pub const SYS_swapoff: ::c_long = 115; -pub const SYS_sysinfo: ::c_long = 116; -pub const SYS_fsync: ::c_long = 118; -pub const SYS_sigreturn: ::c_long = 119; -pub const SYS_clone: ::c_long = 120; -pub const SYS_setdomainname: ::c_long = 121; -pub const SYS_uname: ::c_long = 122; -pub const SYS_adjtimex: ::c_long = 124; -pub const SYS_mprotect: ::c_long = 125; -pub const SYS_sigprocmask: ::c_long = 126; -pub const SYS_init_module: ::c_long = 128; -pub const SYS_delete_module: ::c_long = 129; -pub const SYS_quotactl: ::c_long = 131; -pub const SYS_getpgid: ::c_long = 132; -pub const SYS_fchdir: ::c_long = 133; -pub const SYS_bdflush: ::c_long = 134; -pub const SYS_sysfs: ::c_long = 135; -pub const SYS_personality: ::c_long = 136; -pub const SYS_setfsuid: ::c_long = 138; -pub const SYS_setfsgid: ::c_long = 139; -pub const SYS__llseek: ::c_long = 140; -pub const SYS_getdents: ::c_long = 141; -pub const SYS__newselect: ::c_long = 142; -pub const SYS_flock: ::c_long = 143; -pub const SYS_msync: ::c_long = 144; -pub const SYS_readv: ::c_long = 145; -pub const SYS_writev: ::c_long = 146; -pub const SYS_getsid: ::c_long = 147; -pub const SYS_fdatasync: ::c_long = 148; -pub const SYS__sysctl: ::c_long = 149; -pub const SYS_mlock: ::c_long = 150; -pub const SYS_munlock: ::c_long = 151; -pub const SYS_mlockall: ::c_long = 152; -pub const SYS_munlockall: ::c_long = 153; -pub const SYS_sched_setparam: ::c_long = 154; -pub const SYS_sched_getparam: ::c_long = 155; -pub const SYS_sched_setscheduler: ::c_long = 156; -pub const SYS_sched_getscheduler: ::c_long = 157; -pub const SYS_sched_yield: ::c_long = 158; -pub const SYS_sched_get_priority_max: ::c_long = 159; -pub const SYS_sched_get_priority_min: ::c_long = 160; -pub const SYS_sched_rr_get_interval: ::c_long = 161; -pub const SYS_nanosleep: ::c_long = 162; -pub const SYS_mremap: ::c_long = 163; -pub const SYS_setresuid: ::c_long = 164; -pub const SYS_getresuid: ::c_long = 165; -pub const SYS_poll: ::c_long = 168; -pub const SYS_nfsservctl: ::c_long = 169; -pub const SYS_setresgid: ::c_long = 170; -pub const SYS_getresgid: ::c_long = 171; -pub const SYS_prctl: ::c_long = 172; -pub const SYS_rt_sigreturn: ::c_long = 173; -pub const SYS_rt_sigaction: ::c_long = 174; -pub const SYS_rt_sigprocmask: ::c_long = 175; -pub const SYS_rt_sigpending: ::c_long = 176; -pub const SYS_rt_sigtimedwait: ::c_long = 177; -pub const SYS_rt_sigqueueinfo: ::c_long = 178; -pub const SYS_rt_sigsuspend: ::c_long = 179; -pub const SYS_pread64: ::c_long = 180; -pub const SYS_pwrite64: ::c_long = 181; -pub const SYS_chown: ::c_long = 182; -pub const SYS_getcwd: ::c_long = 183; -pub const SYS_capget: ::c_long = 184; -pub const SYS_capset: ::c_long = 185; -pub const SYS_sigaltstack: ::c_long = 186; -pub const SYS_sendfile: ::c_long = 187; -pub const SYS_vfork: ::c_long = 190; -pub const SYS_ugetrlimit: ::c_long = 191; -pub const SYS_mmap2: ::c_long = 192; -pub const SYS_truncate64: ::c_long = 193; -pub const SYS_ftruncate64: ::c_long = 194; -pub const SYS_stat64: ::c_long = 195; -pub const SYS_lstat64: ::c_long = 196; -pub const SYS_fstat64: ::c_long = 197; -pub const SYS_lchown32: ::c_long = 198; -pub const SYS_getuid32: ::c_long = 199; -pub const SYS_getgid32: ::c_long = 200; -pub const SYS_geteuid32: ::c_long = 201; -pub const SYS_getegid32: ::c_long = 202; -pub const SYS_setreuid32: ::c_long = 203; -pub const SYS_setregid32: ::c_long = 204; -pub const SYS_getgroups32: ::c_long = 205; -pub const SYS_setgroups32: ::c_long = 206; -pub const SYS_fchown32: ::c_long = 207; -pub const SYS_setresuid32: ::c_long = 208; -pub const SYS_getresuid32: ::c_long = 209; -pub const SYS_setresgid32: ::c_long = 210; -pub const SYS_getresgid32: ::c_long = 211; -pub const SYS_chown32: ::c_long = 212; -pub const SYS_setuid32: ::c_long = 213; -pub const SYS_setgid32: ::c_long = 214; -pub const SYS_setfsuid32: ::c_long = 215; -pub const SYS_setfsgid32: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_pivot_root: ::c_long = 218; -pub const SYS_mincore: ::c_long = 219; -pub const SYS_madvise: ::c_long = 220; -pub const SYS_fcntl64: ::c_long = 221; -pub const SYS_gettid: ::c_long = 224; -pub const SYS_readahead: ::c_long = 225; -pub const SYS_setxattr: ::c_long = 226; -pub const SYS_lsetxattr: ::c_long = 227; -pub const SYS_fsetxattr: ::c_long = 228; -pub const SYS_getxattr: ::c_long = 229; -pub const SYS_lgetxattr: ::c_long = 230; -pub const SYS_fgetxattr: ::c_long = 231; -pub const SYS_listxattr: ::c_long = 232; -pub const SYS_llistxattr: ::c_long = 233; -pub const SYS_flistxattr: ::c_long = 234; -pub const SYS_removexattr: ::c_long = 235; -pub const SYS_lremovexattr: ::c_long = 236; -pub const SYS_fremovexattr: ::c_long = 237; -pub const SYS_tkill: ::c_long = 238; -pub const SYS_sendfile64: ::c_long = 239; -pub const SYS_futex: ::c_long = 240; -pub const SYS_sched_setaffinity: ::c_long = 241; -pub const SYS_sched_getaffinity: ::c_long = 242; -pub const SYS_io_setup: ::c_long = 243; -pub const SYS_io_destroy: ::c_long = 244; -pub const SYS_io_getevents: ::c_long = 245; -pub const SYS_io_submit: ::c_long = 246; -pub const SYS_io_cancel: ::c_long = 247; -pub const SYS_exit_group: ::c_long = 248; -pub const SYS_lookup_dcookie: ::c_long = 249; -pub const SYS_epoll_create: ::c_long = 250; -pub const SYS_epoll_ctl: ::c_long = 251; -pub const SYS_epoll_wait: ::c_long = 252; -pub const SYS_remap_file_pages: ::c_long = 253; -pub const SYS_set_tid_address: ::c_long = 256; -pub const SYS_timer_create: ::c_long = 257; -pub const SYS_timer_settime: ::c_long = 258; -pub const SYS_timer_gettime: ::c_long = 259; -pub const SYS_timer_getoverrun: ::c_long = 260; -pub const SYS_timer_delete: ::c_long = 261; -pub const SYS_clock_settime: ::c_long = 262; -pub const SYS_clock_gettime: ::c_long = 263; -pub const SYS_clock_getres: ::c_long = 264; -pub const SYS_clock_nanosleep: ::c_long = 265; -pub const SYS_statfs64: ::c_long = 266; -pub const SYS_fstatfs64: ::c_long = 267; -pub const SYS_tgkill: ::c_long = 268; -pub const SYS_utimes: ::c_long = 269; -pub const SYS_pciconfig_iobase: ::c_long = 271; -pub const SYS_pciconfig_read: ::c_long = 272; -pub const SYS_pciconfig_write: ::c_long = 273; -pub const SYS_mq_open: ::c_long = 274; -pub const SYS_mq_unlink: ::c_long = 275; -pub const SYS_mq_timedsend: ::c_long = 276; -pub const SYS_mq_timedreceive: ::c_long = 277; -pub const SYS_mq_notify: ::c_long = 278; -pub const SYS_mq_getsetattr: ::c_long = 279; -pub const SYS_waitid: ::c_long = 280; -pub const SYS_socket: ::c_long = 281; -pub const SYS_bind: ::c_long = 282; -pub const SYS_connect: ::c_long = 283; -pub const SYS_listen: ::c_long = 284; -pub const SYS_accept: ::c_long = 285; -pub const SYS_getsockname: ::c_long = 286; -pub const SYS_getpeername: ::c_long = 287; -pub const SYS_socketpair: ::c_long = 288; -pub const SYS_send: ::c_long = 289; -pub const SYS_sendto: ::c_long = 290; -pub const SYS_recv: ::c_long = 291; -pub const SYS_recvfrom: ::c_long = 292; -pub const SYS_shutdown: ::c_long = 293; -pub const SYS_setsockopt: ::c_long = 294; -pub const SYS_getsockopt: ::c_long = 295; -pub const SYS_sendmsg: ::c_long = 296; -pub const SYS_recvmsg: ::c_long = 297; -pub const SYS_semop: ::c_long = 298; -pub const SYS_semget: ::c_long = 299; -pub const SYS_semctl: ::c_long = 300; -pub const SYS_msgsnd: ::c_long = 301; -pub const SYS_msgrcv: ::c_long = 302; -pub const SYS_msgget: ::c_long = 303; -pub const SYS_msgctl: ::c_long = 304; -pub const SYS_shmat: ::c_long = 305; -pub const SYS_shmdt: ::c_long = 306; -pub const SYS_shmget: ::c_long = 307; -pub const SYS_shmctl: ::c_long = 308; -pub const SYS_add_key: ::c_long = 309; -pub const SYS_request_key: ::c_long = 310; -pub const SYS_keyctl: ::c_long = 311; -pub const SYS_semtimedop: ::c_long = 312; -pub const SYS_vserver: ::c_long = 313; -pub const SYS_ioprio_set: ::c_long = 314; -pub const SYS_ioprio_get: ::c_long = 315; -pub const SYS_inotify_init: ::c_long = 316; -pub const SYS_inotify_add_watch: ::c_long = 317; -pub const SYS_inotify_rm_watch: ::c_long = 318; -pub const SYS_mbind: ::c_long = 319; -pub const SYS_get_mempolicy: ::c_long = 320; -pub const SYS_set_mempolicy: ::c_long = 321; -pub const SYS_openat: ::c_long = 322; -pub const SYS_mkdirat: ::c_long = 323; -pub const SYS_mknodat: ::c_long = 324; -pub const SYS_fchownat: ::c_long = 325; -pub const SYS_futimesat: ::c_long = 326; -pub const SYS_fstatat64: ::c_long = 327; -pub const SYS_unlinkat: ::c_long = 328; -pub const SYS_renameat: ::c_long = 329; -pub const SYS_linkat: ::c_long = 330; -pub const SYS_symlinkat: ::c_long = 331; -pub const SYS_readlinkat: ::c_long = 332; -pub const SYS_fchmodat: ::c_long = 333; -pub const SYS_faccessat: ::c_long = 334; -pub const SYS_pselect6: ::c_long = 335; -pub const SYS_ppoll: ::c_long = 336; -pub const SYS_unshare: ::c_long = 337; -pub const SYS_set_robust_list: ::c_long = 338; -pub const SYS_get_robust_list: ::c_long = 339; -pub const SYS_splice: ::c_long = 340; -pub const SYS_tee: ::c_long = 342; -pub const SYS_vmsplice: ::c_long = 343; -pub const SYS_move_pages: ::c_long = 344; -pub const SYS_getcpu: ::c_long = 345; -pub const SYS_epoll_pwait: ::c_long = 346; -pub const SYS_kexec_load: ::c_long = 347; -pub const SYS_utimensat: ::c_long = 348; -pub const SYS_signalfd: ::c_long = 349; -pub const SYS_timerfd_create: ::c_long = 350; -pub const SYS_eventfd: ::c_long = 351; -pub const SYS_fallocate: ::c_long = 352; -pub const SYS_timerfd_settime: ::c_long = 353; -pub const SYS_timerfd_gettime: ::c_long = 354; -pub const SYS_signalfd4: ::c_long = 355; -pub const SYS_eventfd2: ::c_long = 356; -pub const SYS_epoll_create1: ::c_long = 357; -pub const SYS_dup3: ::c_long = 358; -pub const SYS_pipe2: ::c_long = 359; -pub const SYS_inotify_init1: ::c_long = 360; -pub const SYS_preadv: ::c_long = 361; -pub const SYS_pwritev: ::c_long = 362; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 363; -pub const SYS_perf_event_open: ::c_long = 364; -pub const SYS_recvmmsg: ::c_long = 365; -pub const SYS_accept4: ::c_long = 366; -pub const SYS_fanotify_init: ::c_long = 367; -pub const SYS_fanotify_mark: ::c_long = 368; -pub const SYS_prlimit64: ::c_long = 369; -pub const SYS_name_to_handle_at: ::c_long = 370; -pub const SYS_open_by_handle_at: ::c_long = 371; -pub const SYS_clock_adjtime: ::c_long = 372; -pub const SYS_syncfs: ::c_long = 373; -pub const SYS_sendmmsg: ::c_long = 374; -pub const SYS_setns: ::c_long = 375; -pub const SYS_process_vm_readv: ::c_long = 376; -pub const SYS_process_vm_writev: ::c_long = 377; -pub const SYS_kcmp: ::c_long = 378; -pub const SYS_finit_module: ::c_long = 379; -pub const SYS_sched_setattr: ::c_long = 380; -pub const SYS_sched_getattr: ::c_long = 381; -pub const SYS_renameat2: ::c_long = 382; -pub const SYS_seccomp: ::c_long = 383; -pub const SYS_getrandom: ::c_long = 384; -pub const SYS_memfd_create: ::c_long = 385; -pub const SYS_bpf: ::c_long = 386; -pub const SYS_execveat: ::c_long = 387; -pub const SYS_userfaultfd: ::c_long = 388; -pub const SYS_membarrier: ::c_long = 389; -pub const SYS_mlock2: ::c_long = 390; -pub const SYS_copy_file_range: ::c_long = 391; -pub const SYS_preadv2: ::c_long = 392; -pub const SYS_pwritev2: ::c_long = 393; -pub const SYS_pkey_mprotect: ::c_long = 394; -pub const SYS_pkey_alloc: ::c_long = 395; -pub const SYS_pkey_free: ::c_long = 396; -// FIXME: should be a `c_long` too, but a bug slipped in. -pub const SYS_statx: ::c_int = 397; -pub const SYS_pidfd_send_signal: ::c_long = 424; -pub const SYS_io_uring_setup: ::c_long = 425; -pub const SYS_io_uring_enter: ::c_long = 426; -pub const SYS_io_uring_register: ::c_long = 427; -pub const SYS_open_tree: ::c_long = 428; -pub const SYS_move_mount: ::c_long = 429; -pub const SYS_fsopen: ::c_long = 430; -pub const SYS_fsconfig: ::c_long = 431; -pub const SYS_fsmount: ::c_long = 432; -pub const SYS_fspick: ::c_long = 433; -pub const SYS_pidfd_open: ::c_long = 434; -pub const SYS_clone3: ::c_long = 435; -pub const SYS_close_range: ::c_long = 436; -pub const SYS_openat2: ::c_long = 437; -pub const SYS_pidfd_getfd: ::c_long = 438; -pub const SYS_faccessat2: ::c_long = 439; -pub const SYS_process_madvise: ::c_long = 440; -pub const SYS_epoll_pwait2: ::c_long = 441; -pub const SYS_mount_setattr: ::c_long = 442; -pub const SYS_quotactl_fd: ::c_long = 443; -pub const SYS_landlock_create_ruleset: ::c_long = 444; -pub const SYS_landlock_add_rule: ::c_long = 445; -pub const SYS_landlock_restrict_self: ::c_long = 446; -pub const SYS_memfd_secret: ::c_long = 447; -pub const SYS_process_mrelease: ::c_long = 448; -pub const SYS_futex_waitv: ::c_long = 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 450; - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } else { - mod no_align; - pub use self::no_align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/no_align.rs deleted file mode 100644 index e32bf673d..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/arm/no_align.rs +++ /dev/null @@ -1,10 +0,0 @@ -s! { - // FIXME this is actually a union - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - __align: [::c_long; 0], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs deleted file mode 100644 index 4a0e07460..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs +++ /dev/null @@ -1,13 +0,0 @@ -s! { - // FIXME this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs deleted file mode 100644 index a5aca85a3..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ /dev/null @@ -1,692 +0,0 @@ -pub type c_char = i8; -pub type c_long = i32; -pub type c_ulong = u32; -pub type clock_t = i32; -pub type time_t = i32; -pub type suseconds_t = i32; -pub type wchar_t = i32; -pub type off_t = i32; -pub type ino_t = u32; -pub type blkcnt_t = i32; -pub type blksize_t = i32; -pub type nlink_t = u32; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type __u64 = ::c_ulonglong; -pub type __s64 = ::c_longlong; -pub type fsblkcnt64_t = u64; -pub type fsfilcnt64_t = u64; - -s! { - pub struct stat { - pub st_dev: ::dev_t, - st_pad1: [::c_long; 2], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_pad2: [::c_long; 1], - pub st_size: ::off_t, - st_pad3: ::c_long, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - st_pad5: [::c_long; 14], - } - - pub struct stat64 { - pub st_dev: ::dev_t, - st_pad1: [::c_long; 2], - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - st_pad2: [::c_long; 2], - pub st_size: ::off64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - st_pad3: ::c_long, - pub st_blocks: ::blkcnt64_t, - st_pad5: [::c_long; 14], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_favail: ::fsfilcnt64_t, - pub f_fsid: ::c_ulong, - pub __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub __f_spare: [::c_int; 6], - } - - pub struct pthread_attr_t { - __size: [u32; 9] - } - - pub struct sigaction { - pub sa_flags: ::c_uint, - pub sa_sigaction: ::sighandler_t, - pub sa_mask: sigset_t, - _restorer: *mut ::c_void, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - } - - pub struct sigset_t { - __val: [::c_ulong; 4], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - pub _pad: [::c_int; 29], - } - - pub struct glob64_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut ::c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_uint, - pub __seq: ::c_ushort, - __pad1: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - #[cfg(target_endian = "big")] - __glibc_reserved1: ::c_ulong, - pub msg_stime: ::time_t, - #[cfg(target_endian = "little")] - __glibc_reserved1: ::c_ulong, - #[cfg(target_endian = "big")] - __glibc_reserved2: ::c_ulong, - pub msg_rtime: ::time_t, - #[cfg(target_endian = "little")] - __glibc_reserved2: ::c_ulong, - #[cfg(target_endian = "big")] - __glibc_reserved3: ::c_ulong, - pub msg_ctime: ::time_t, - #[cfg(target_endian = "little")] - __glibc_reserved3: ::c_ulong, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, - } - - pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsblkcnt_t, - pub f_ffree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::c_long, - f_spare: [::c_long; 6], - } - - pub struct statfs64 { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_files: ::fsblkcnt64_t, - pub f_ffree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_long, - pub f_flags: ::c_long, - pub f_spare: [::c_long; 5], - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::size_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_sysid: ::c_long, - pub l_pid: ::pid_t, - pad: [::c_long; 4], - } - - pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 8], - } -} - -pub const __SIZEOF_PTHREAD_ATTR_T: usize = 36; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; - -pub const SYS_syscall: ::c_long = 4000 + 0; -pub const SYS_exit: ::c_long = 4000 + 1; -pub const SYS_fork: ::c_long = 4000 + 2; -pub const SYS_read: ::c_long = 4000 + 3; -pub const SYS_write: ::c_long = 4000 + 4; -pub const SYS_open: ::c_long = 4000 + 5; -pub const SYS_close: ::c_long = 4000 + 6; -pub const SYS_waitpid: ::c_long = 4000 + 7; -pub const SYS_creat: ::c_long = 4000 + 8; -pub const SYS_link: ::c_long = 4000 + 9; -pub const SYS_unlink: ::c_long = 4000 + 10; -pub const SYS_execve: ::c_long = 4000 + 11; -pub const SYS_chdir: ::c_long = 4000 + 12; -pub const SYS_time: ::c_long = 4000 + 13; -pub const SYS_mknod: ::c_long = 4000 + 14; -pub const SYS_chmod: ::c_long = 4000 + 15; -pub const SYS_lchown: ::c_long = 4000 + 16; -pub const SYS_break: ::c_long = 4000 + 17; -pub const SYS_lseek: ::c_long = 4000 + 19; -pub const SYS_getpid: ::c_long = 4000 + 20; -pub const SYS_mount: ::c_long = 4000 + 21; -pub const SYS_umount: ::c_long = 4000 + 22; -pub const SYS_setuid: ::c_long = 4000 + 23; -pub const SYS_getuid: ::c_long = 4000 + 24; -pub const SYS_stime: ::c_long = 4000 + 25; -pub const SYS_ptrace: ::c_long = 4000 + 26; -pub const SYS_alarm: ::c_long = 4000 + 27; -pub const SYS_pause: ::c_long = 4000 + 29; -pub const SYS_utime: ::c_long = 4000 + 30; -pub const SYS_stty: ::c_long = 4000 + 31; -pub const SYS_gtty: ::c_long = 4000 + 32; -pub const SYS_access: ::c_long = 4000 + 33; -pub const SYS_nice: ::c_long = 4000 + 34; -pub const SYS_ftime: ::c_long = 4000 + 35; -pub const SYS_sync: ::c_long = 4000 + 36; -pub const SYS_kill: ::c_long = 4000 + 37; -pub const SYS_rename: ::c_long = 4000 + 38; -pub const SYS_mkdir: ::c_long = 4000 + 39; -pub const SYS_rmdir: ::c_long = 4000 + 40; -pub const SYS_dup: ::c_long = 4000 + 41; -pub const SYS_pipe: ::c_long = 4000 + 42; -pub const SYS_times: ::c_long = 4000 + 43; -pub const SYS_prof: ::c_long = 4000 + 44; -pub const SYS_brk: ::c_long = 4000 + 45; -pub const SYS_setgid: ::c_long = 4000 + 46; -pub const SYS_getgid: ::c_long = 4000 + 47; -pub const SYS_signal: ::c_long = 4000 + 48; -pub const SYS_geteuid: ::c_long = 4000 + 49; -pub const SYS_getegid: ::c_long = 4000 + 50; -pub const SYS_acct: ::c_long = 4000 + 51; -pub const SYS_umount2: ::c_long = 4000 + 52; -pub const SYS_lock: ::c_long = 4000 + 53; -pub const SYS_ioctl: ::c_long = 4000 + 54; -pub const SYS_fcntl: ::c_long = 4000 + 55; -pub const SYS_mpx: ::c_long = 4000 + 56; -pub const SYS_setpgid: ::c_long = 4000 + 57; -pub const SYS_ulimit: ::c_long = 4000 + 58; -pub const SYS_umask: ::c_long = 4000 + 60; -pub const SYS_chroot: ::c_long = 4000 + 61; -pub const SYS_ustat: ::c_long = 4000 + 62; -pub const SYS_dup2: ::c_long = 4000 + 63; -pub const SYS_getppid: ::c_long = 4000 + 64; -pub const SYS_getpgrp: ::c_long = 4000 + 65; -pub const SYS_setsid: ::c_long = 4000 + 66; -pub const SYS_sigaction: ::c_long = 4000 + 67; -pub const SYS_sgetmask: ::c_long = 4000 + 68; -pub const SYS_ssetmask: ::c_long = 4000 + 69; -pub const SYS_setreuid: ::c_long = 4000 + 70; -pub const SYS_setregid: ::c_long = 4000 + 71; -pub const SYS_sigsuspend: ::c_long = 4000 + 72; -pub const SYS_sigpending: ::c_long = 4000 + 73; -pub const SYS_sethostname: ::c_long = 4000 + 74; -pub const SYS_setrlimit: ::c_long = 4000 + 75; -pub const SYS_getrlimit: ::c_long = 4000 + 76; -pub const SYS_getrusage: ::c_long = 4000 + 77; -pub const SYS_gettimeofday: ::c_long = 4000 + 78; -pub const SYS_settimeofday: ::c_long = 4000 + 79; -pub const SYS_getgroups: ::c_long = 4000 + 80; -pub const SYS_setgroups: ::c_long = 4000 + 81; -pub const SYS_symlink: ::c_long = 4000 + 83; -pub const SYS_readlink: ::c_long = 4000 + 85; -pub const SYS_uselib: ::c_long = 4000 + 86; -pub const SYS_swapon: ::c_long = 4000 + 87; -pub const SYS_reboot: ::c_long = 4000 + 88; -pub const SYS_readdir: ::c_long = 4000 + 89; -pub const SYS_mmap: ::c_long = 4000 + 90; -pub const SYS_munmap: ::c_long = 4000 + 91; -pub const SYS_truncate: ::c_long = 4000 + 92; -pub const SYS_ftruncate: ::c_long = 4000 + 93; -pub const SYS_fchmod: ::c_long = 4000 + 94; -pub const SYS_fchown: ::c_long = 4000 + 95; -pub const SYS_getpriority: ::c_long = 4000 + 96; -pub const SYS_setpriority: ::c_long = 4000 + 97; -pub const SYS_profil: ::c_long = 4000 + 98; -pub const SYS_statfs: ::c_long = 4000 + 99; -pub const SYS_fstatfs: ::c_long = 4000 + 100; -pub const SYS_ioperm: ::c_long = 4000 + 101; -pub const SYS_socketcall: ::c_long = 4000 + 102; -pub const SYS_syslog: ::c_long = 4000 + 103; -pub const SYS_setitimer: ::c_long = 4000 + 104; -pub const SYS_getitimer: ::c_long = 4000 + 105; -pub const SYS_stat: ::c_long = 4000 + 106; -pub const SYS_lstat: ::c_long = 4000 + 107; -pub const SYS_fstat: ::c_long = 4000 + 108; -pub const SYS_iopl: ::c_long = 4000 + 110; -pub const SYS_vhangup: ::c_long = 4000 + 111; -pub const SYS_idle: ::c_long = 4000 + 112; -pub const SYS_vm86: ::c_long = 4000 + 113; -pub const SYS_wait4: ::c_long = 4000 + 114; -pub const SYS_swapoff: ::c_long = 4000 + 115; -pub const SYS_sysinfo: ::c_long = 4000 + 116; -pub const SYS_ipc: ::c_long = 4000 + 117; -pub const SYS_fsync: ::c_long = 4000 + 118; -pub const SYS_sigreturn: ::c_long = 4000 + 119; -pub const SYS_clone: ::c_long = 4000 + 120; -pub const SYS_setdomainname: ::c_long = 4000 + 121; -pub const SYS_uname: ::c_long = 4000 + 122; -pub const SYS_modify_ldt: ::c_long = 4000 + 123; -pub const SYS_adjtimex: ::c_long = 4000 + 124; -pub const SYS_mprotect: ::c_long = 4000 + 125; -pub const SYS_sigprocmask: ::c_long = 4000 + 126; -pub const SYS_create_module: ::c_long = 4000 + 127; -pub const SYS_init_module: ::c_long = 4000 + 128; -pub const SYS_delete_module: ::c_long = 4000 + 129; -pub const SYS_get_kernel_syms: ::c_long = 4000 + 130; -pub const SYS_quotactl: ::c_long = 4000 + 131; -pub const SYS_getpgid: ::c_long = 4000 + 132; -pub const SYS_fchdir: ::c_long = 4000 + 133; -pub const SYS_bdflush: ::c_long = 4000 + 134; -pub const SYS_sysfs: ::c_long = 4000 + 135; -pub const SYS_personality: ::c_long = 4000 + 136; -pub const SYS_afs_syscall: ::c_long = 4000 + 137; -pub const SYS_setfsuid: ::c_long = 4000 + 138; -pub const SYS_setfsgid: ::c_long = 4000 + 139; -pub const SYS__llseek: ::c_long = 4000 + 140; -pub const SYS_getdents: ::c_long = 4000 + 141; -pub const SYS__newselect: ::c_long = 4000 + 142; -pub const SYS_flock: ::c_long = 4000 + 143; -pub const SYS_msync: ::c_long = 4000 + 144; -pub const SYS_readv: ::c_long = 4000 + 145; -pub const SYS_writev: ::c_long = 4000 + 146; -pub const SYS_cacheflush: ::c_long = 4000 + 147; -pub const SYS_cachectl: ::c_long = 4000 + 148; -pub const SYS_sysmips: ::c_long = 4000 + 149; -pub const SYS_getsid: ::c_long = 4000 + 151; -pub const SYS_fdatasync: ::c_long = 4000 + 152; -pub const SYS__sysctl: ::c_long = 4000 + 153; -pub const SYS_mlock: ::c_long = 4000 + 154; -pub const SYS_munlock: ::c_long = 4000 + 155; -pub const SYS_mlockall: ::c_long = 4000 + 156; -pub const SYS_munlockall: ::c_long = 4000 + 157; -pub const SYS_sched_setparam: ::c_long = 4000 + 158; -pub const SYS_sched_getparam: ::c_long = 4000 + 159; -pub const SYS_sched_setscheduler: ::c_long = 4000 + 160; -pub const SYS_sched_getscheduler: ::c_long = 4000 + 161; -pub const SYS_sched_yield: ::c_long = 4000 + 162; -pub const SYS_sched_get_priority_max: ::c_long = 4000 + 163; -pub const SYS_sched_get_priority_min: ::c_long = 4000 + 164; -pub const SYS_sched_rr_get_interval: ::c_long = 4000 + 165; -pub const SYS_nanosleep: ::c_long = 4000 + 166; -pub const SYS_mremap: ::c_long = 4000 + 167; -pub const SYS_accept: ::c_long = 4000 + 168; -pub const SYS_bind: ::c_long = 4000 + 169; -pub const SYS_connect: ::c_long = 4000 + 170; -pub const SYS_getpeername: ::c_long = 4000 + 171; -pub const SYS_getsockname: ::c_long = 4000 + 172; -pub const SYS_getsockopt: ::c_long = 4000 + 173; -pub const SYS_listen: ::c_long = 4000 + 174; -pub const SYS_recv: ::c_long = 4000 + 175; -pub const SYS_recvfrom: ::c_long = 4000 + 176; -pub const SYS_recvmsg: ::c_long = 4000 + 177; -pub const SYS_send: ::c_long = 4000 + 178; -pub const SYS_sendmsg: ::c_long = 4000 + 179; -pub const SYS_sendto: ::c_long = 4000 + 180; -pub const SYS_setsockopt: ::c_long = 4000 + 181; -pub const SYS_shutdown: ::c_long = 4000 + 182; -pub const SYS_socket: ::c_long = 4000 + 183; -pub const SYS_socketpair: ::c_long = 4000 + 184; -pub const SYS_setresuid: ::c_long = 4000 + 185; -pub const SYS_getresuid: ::c_long = 4000 + 186; -pub const SYS_query_module: ::c_long = 4000 + 187; -pub const SYS_poll: ::c_long = 4000 + 188; -pub const SYS_nfsservctl: ::c_long = 4000 + 189; -pub const SYS_setresgid: ::c_long = 4000 + 190; -pub const SYS_getresgid: ::c_long = 4000 + 191; -pub const SYS_prctl: ::c_long = 4000 + 192; -pub const SYS_rt_sigreturn: ::c_long = 4000 + 193; -pub const SYS_rt_sigaction: ::c_long = 4000 + 194; -pub const SYS_rt_sigprocmask: ::c_long = 4000 + 195; -pub const SYS_rt_sigpending: ::c_long = 4000 + 196; -pub const SYS_rt_sigtimedwait: ::c_long = 4000 + 197; -pub const SYS_rt_sigqueueinfo: ::c_long = 4000 + 198; -pub const SYS_rt_sigsuspend: ::c_long = 4000 + 199; -pub const SYS_pread64: ::c_long = 4000 + 200; -pub const SYS_pwrite64: ::c_long = 4000 + 201; -pub const SYS_chown: ::c_long = 4000 + 202; -pub const SYS_getcwd: ::c_long = 4000 + 203; -pub const SYS_capget: ::c_long = 4000 + 204; -pub const SYS_capset: ::c_long = 4000 + 205; -pub const SYS_sigaltstack: ::c_long = 4000 + 206; -pub const SYS_sendfile: ::c_long = 4000 + 207; -pub const SYS_getpmsg: ::c_long = 4000 + 208; -pub const SYS_putpmsg: ::c_long = 4000 + 209; -pub const SYS_mmap2: ::c_long = 4000 + 210; -pub const SYS_truncate64: ::c_long = 4000 + 211; -pub const SYS_ftruncate64: ::c_long = 4000 + 212; -pub const SYS_stat64: ::c_long = 4000 + 213; -pub const SYS_lstat64: ::c_long = 4000 + 214; -pub const SYS_fstat64: ::c_long = 4000 + 215; -pub const SYS_pivot_root: ::c_long = 4000 + 216; -pub const SYS_mincore: ::c_long = 4000 + 217; -pub const SYS_madvise: ::c_long = 4000 + 218; -pub const SYS_getdents64: ::c_long = 4000 + 219; -pub const SYS_fcntl64: ::c_long = 4000 + 220; -pub const SYS_gettid: ::c_long = 4000 + 222; -pub const SYS_readahead: ::c_long = 4000 + 223; -pub const SYS_setxattr: ::c_long = 4000 + 224; -pub const SYS_lsetxattr: ::c_long = 4000 + 225; -pub const SYS_fsetxattr: ::c_long = 4000 + 226; -pub const SYS_getxattr: ::c_long = 4000 + 227; -pub const SYS_lgetxattr: ::c_long = 4000 + 228; -pub const SYS_fgetxattr: ::c_long = 4000 + 229; -pub const SYS_listxattr: ::c_long = 4000 + 230; -pub const SYS_llistxattr: ::c_long = 4000 + 231; -pub const SYS_flistxattr: ::c_long = 4000 + 232; -pub const SYS_removexattr: ::c_long = 4000 + 233; -pub const SYS_lremovexattr: ::c_long = 4000 + 234; -pub const SYS_fremovexattr: ::c_long = 4000 + 235; -pub const SYS_tkill: ::c_long = 4000 + 236; -pub const SYS_sendfile64: ::c_long = 4000 + 237; -pub const SYS_futex: ::c_long = 4000 + 238; -pub const SYS_sched_setaffinity: ::c_long = 4000 + 239; -pub const SYS_sched_getaffinity: ::c_long = 4000 + 240; -pub const SYS_io_setup: ::c_long = 4000 + 241; -pub const SYS_io_destroy: ::c_long = 4000 + 242; -pub const SYS_io_getevents: ::c_long = 4000 + 243; -pub const SYS_io_submit: ::c_long = 4000 + 244; -pub const SYS_io_cancel: ::c_long = 4000 + 245; -pub const SYS_exit_group: ::c_long = 4000 + 246; -pub const SYS_lookup_dcookie: ::c_long = 4000 + 247; -pub const SYS_epoll_create: ::c_long = 4000 + 248; -pub const SYS_epoll_ctl: ::c_long = 4000 + 249; -pub const SYS_epoll_wait: ::c_long = 4000 + 250; -pub const SYS_remap_file_pages: ::c_long = 4000 + 251; -pub const SYS_set_tid_address: ::c_long = 4000 + 252; -pub const SYS_restart_syscall: ::c_long = 4000 + 253; -pub const SYS_fadvise64: ::c_long = 4000 + 254; -pub const SYS_statfs64: ::c_long = 4000 + 255; -pub const SYS_fstatfs64: ::c_long = 4000 + 256; -pub const SYS_timer_create: ::c_long = 4000 + 257; -pub const SYS_timer_settime: ::c_long = 4000 + 258; -pub const SYS_timer_gettime: ::c_long = 4000 + 259; -pub const SYS_timer_getoverrun: ::c_long = 4000 + 260; -pub const SYS_timer_delete: ::c_long = 4000 + 261; -pub const SYS_clock_settime: ::c_long = 4000 + 262; -pub const SYS_clock_gettime: ::c_long = 4000 + 263; -pub const SYS_clock_getres: ::c_long = 4000 + 264; -pub const SYS_clock_nanosleep: ::c_long = 4000 + 265; -pub const SYS_tgkill: ::c_long = 4000 + 266; -pub const SYS_utimes: ::c_long = 4000 + 267; -pub const SYS_mbind: ::c_long = 4000 + 268; -pub const SYS_get_mempolicy: ::c_long = 4000 + 269; -pub const SYS_set_mempolicy: ::c_long = 4000 + 270; -pub const SYS_mq_open: ::c_long = 4000 + 271; -pub const SYS_mq_unlink: ::c_long = 4000 + 272; -pub const SYS_mq_timedsend: ::c_long = 4000 + 273; -pub const SYS_mq_timedreceive: ::c_long = 4000 + 274; -pub const SYS_mq_notify: ::c_long = 4000 + 275; -pub const SYS_mq_getsetattr: ::c_long = 4000 + 276; -pub const SYS_vserver: ::c_long = 4000 + 277; -pub const SYS_waitid: ::c_long = 4000 + 278; -/* pub const SYS_sys_setaltroot: ::c_long = 4000 + 279; */ -pub const SYS_add_key: ::c_long = 4000 + 280; -pub const SYS_request_key: ::c_long = 4000 + 281; -pub const SYS_keyctl: ::c_long = 4000 + 282; -pub const SYS_set_thread_area: ::c_long = 4000 + 283; -pub const SYS_inotify_init: ::c_long = 4000 + 284; -pub const SYS_inotify_add_watch: ::c_long = 4000 + 285; -pub const SYS_inotify_rm_watch: ::c_long = 4000 + 286; -pub const SYS_migrate_pages: ::c_long = 4000 + 287; -pub const SYS_openat: ::c_long = 4000 + 288; -pub const SYS_mkdirat: ::c_long = 4000 + 289; -pub const SYS_mknodat: ::c_long = 4000 + 290; -pub const SYS_fchownat: ::c_long = 4000 + 291; -pub const SYS_futimesat: ::c_long = 4000 + 292; -pub const SYS_fstatat64: ::c_long = 4000 + 293; -pub const SYS_unlinkat: ::c_long = 4000 + 294; -pub const SYS_renameat: ::c_long = 4000 + 295; -pub const SYS_linkat: ::c_long = 4000 + 296; -pub const SYS_symlinkat: ::c_long = 4000 + 297; -pub const SYS_readlinkat: ::c_long = 4000 + 298; -pub const SYS_fchmodat: ::c_long = 4000 + 299; -pub const SYS_faccessat: ::c_long = 4000 + 300; -pub const SYS_pselect6: ::c_long = 4000 + 301; -pub const SYS_ppoll: ::c_long = 4000 + 302; -pub const SYS_unshare: ::c_long = 4000 + 303; -pub const SYS_splice: ::c_long = 4000 + 304; -pub const SYS_sync_file_range: ::c_long = 4000 + 305; -pub const SYS_tee: ::c_long = 4000 + 306; -pub const SYS_vmsplice: ::c_long = 4000 + 307; -pub const SYS_move_pages: ::c_long = 4000 + 308; -pub const SYS_set_robust_list: ::c_long = 4000 + 309; -pub const SYS_get_robust_list: ::c_long = 4000 + 310; -pub const SYS_kexec_load: ::c_long = 4000 + 311; -pub const SYS_getcpu: ::c_long = 4000 + 312; -pub const SYS_epoll_pwait: ::c_long = 4000 + 313; -pub const SYS_ioprio_set: ::c_long = 4000 + 314; -pub const SYS_ioprio_get: ::c_long = 4000 + 315; -pub const SYS_utimensat: ::c_long = 4000 + 316; -pub const SYS_signalfd: ::c_long = 4000 + 317; -pub const SYS_timerfd: ::c_long = 4000 + 318; -pub const SYS_eventfd: ::c_long = 4000 + 319; -pub const SYS_fallocate: ::c_long = 4000 + 320; -pub const SYS_timerfd_create: ::c_long = 4000 + 321; -pub const SYS_timerfd_gettime: ::c_long = 4000 + 322; -pub const SYS_timerfd_settime: ::c_long = 4000 + 323; -pub const SYS_signalfd4: ::c_long = 4000 + 324; -pub const SYS_eventfd2: ::c_long = 4000 + 325; -pub const SYS_epoll_create1: ::c_long = 4000 + 326; -pub const SYS_dup3: ::c_long = 4000 + 327; -pub const SYS_pipe2: ::c_long = 4000 + 328; -pub const SYS_inotify_init1: ::c_long = 4000 + 329; -pub const SYS_preadv: ::c_long = 4000 + 330; -pub const SYS_pwritev: ::c_long = 4000 + 331; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 4000 + 332; -pub const SYS_perf_event_open: ::c_long = 4000 + 333; -pub const SYS_accept4: ::c_long = 4000 + 334; -pub const SYS_recvmmsg: ::c_long = 4000 + 335; -pub const SYS_fanotify_init: ::c_long = 4000 + 336; -pub const SYS_fanotify_mark: ::c_long = 4000 + 337; -pub const SYS_prlimit64: ::c_long = 4000 + 338; -pub const SYS_name_to_handle_at: ::c_long = 4000 + 339; -pub const SYS_open_by_handle_at: ::c_long = 4000 + 340; -pub const SYS_clock_adjtime: ::c_long = 4000 + 341; -pub const SYS_syncfs: ::c_long = 4000 + 342; -pub const SYS_sendmmsg: ::c_long = 4000 + 343; -pub const SYS_setns: ::c_long = 4000 + 344; -pub const SYS_process_vm_readv: ::c_long = 4000 + 345; -pub const SYS_process_vm_writev: ::c_long = 4000 + 346; -pub const SYS_kcmp: ::c_long = 4000 + 347; -pub const SYS_finit_module: ::c_long = 4000 + 348; -pub const SYS_sched_setattr: ::c_long = 4000 + 349; -pub const SYS_sched_getattr: ::c_long = 4000 + 350; -pub const SYS_renameat2: ::c_long = 4000 + 351; -pub const SYS_seccomp: ::c_long = 4000 + 352; -pub const SYS_getrandom: ::c_long = 4000 + 353; -pub const SYS_memfd_create: ::c_long = 4000 + 354; -pub const SYS_bpf: ::c_long = 4000 + 355; -pub const SYS_execveat: ::c_long = 4000 + 356; -pub const SYS_userfaultfd: ::c_long = 4000 + 357; -pub const SYS_membarrier: ::c_long = 4000 + 358; -pub const SYS_mlock2: ::c_long = 4000 + 359; -pub const SYS_copy_file_range: ::c_long = 4000 + 360; -pub const SYS_preadv2: ::c_long = 4000 + 361; -pub const SYS_pwritev2: ::c_long = 4000 + 362; -pub const SYS_pkey_mprotect: ::c_long = 4000 + 363; -pub const SYS_pkey_alloc: ::c_long = 4000 + 364; -pub const SYS_pkey_free: ::c_long = 4000 + 365; -pub const SYS_statx: ::c_long = 4000 + 366; -pub const SYS_pidfd_send_signal: ::c_long = 4000 + 424; -pub const SYS_io_uring_setup: ::c_long = 4000 + 425; -pub const SYS_io_uring_enter: ::c_long = 4000 + 426; -pub const SYS_io_uring_register: ::c_long = 4000 + 427; -pub const SYS_open_tree: ::c_long = 4000 + 428; -pub const SYS_move_mount: ::c_long = 4000 + 429; -pub const SYS_fsopen: ::c_long = 4000 + 430; -pub const SYS_fsconfig: ::c_long = 4000 + 431; -pub const SYS_fsmount: ::c_long = 4000 + 432; -pub const SYS_fspick: ::c_long = 4000 + 433; -pub const SYS_pidfd_open: ::c_long = 4000 + 434; -pub const SYS_clone3: ::c_long = 4000 + 435; -pub const SYS_close_range: ::c_long = 4000 + 436; -pub const SYS_openat2: ::c_long = 4000 + 437; -pub const SYS_pidfd_getfd: ::c_long = 4000 + 438; -pub const SYS_faccessat2: ::c_long = 4000 + 439; -pub const SYS_process_madvise: ::c_long = 4000 + 440; -pub const SYS_epoll_pwait2: ::c_long = 4000 + 441; -pub const SYS_mount_setattr: ::c_long = 4000 + 442; -pub const SYS_quotactl_fd: ::c_long = 4000 + 443; -pub const SYS_landlock_create_ruleset: ::c_long = 4000 + 444; -pub const SYS_landlock_add_rule: ::c_long = 4000 + 445; -pub const SYS_landlock_restrict_self: ::c_long = 4000 + 446; -pub const SYS_memfd_secret: ::c_long = 4000 + 447; -pub const SYS_process_mrelease: ::c_long = 4000 + 448; -pub const SYS_futex_waitv: ::c_long = 4000 + 449; -pub const SYS_set_mempolicy_home_node: ::c_long = 4000 + 450; - -#[link(name = "util")] -extern "C" { - pub fn sysctl( - name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t, - ) -> ::c_int; - pub fn glob64( - pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut glob64_t, - ) -> ::c_int; - pub fn globfree64(pglob: *mut glob64_t); - pub fn pthread_attr_getaffinity_np( - attr: *const ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t, - ) -> ::c_int; - pub fn pthread_attr_setaffinity_np( - attr: *mut ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t, - ) -> ::c_int; -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } else { - mod no_align; - pub use self::no_align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs deleted file mode 100644 index e32bf673d..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs +++ /dev/null @@ -1,10 +0,0 @@ -s! { - // FIXME this is actually a union - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - __align: [::c_long; 0], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs deleted file mode 100644 index 21e21907d..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs +++ /dev/null @@ -1,10 +0,0 @@ -s! { - // FIXME this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct sem_t { - __size: [::c_char; 32], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs deleted file mode 100644 index 8ca100fcd..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs +++ /dev/null @@ -1,207 +0,0 @@ -pub type blkcnt_t = i64; -pub type blksize_t = i64; -pub type c_char = i8; -pub type c_long = i64; -pub type c_ulong = u64; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type ino_t = u64; -pub type nlink_t = u64; -pub type off_t = i64; -pub type suseconds_t = i64; -pub type time_t = i64; -pub type wchar_t = i32; - -s! { - pub struct stat { - pub st_dev: ::c_ulong, - st_pad1: [::c_long; 2], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulong, - st_pad2: [::c_ulong; 1], - pub st_size: ::off_t, - st_pad3: ::c_long, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - st_pad4: ::c_long, - pub st_blocks: ::blkcnt_t, - st_pad5: [::c_long; 7], - } - - pub struct stat64 { - pub st_dev: ::c_ulong, - st_pad1: [::c_long; 2], - pub st_ino: ::ino64_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulong, - st_pad2: [::c_long; 2], - pub st_size: ::off64_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - st_pad3: ::c_long, - pub st_blocks: ::blkcnt64_t, - st_pad5: [::c_long; 7], - } - - pub struct pthread_attr_t { - __size: [::c_ulong; 7] - } - - pub struct sigaction { - pub sa_flags: ::c_int, - pub sa_sigaction: ::sighandler_t, - pub sa_mask: sigset_t, - _restorer: *mut ::c_void, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - } - - pub struct sigset_t { - __size: [::c_ulong; 16], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - _pad: ::c_int, - _pad2: [::c_long; 14], - } - - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_uint, - pub __seq: ::c_ushort, - __pad1: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused4: ::c_ulong, - __unused5: ::c_ulong - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, - } - - pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsblkcnt_t, - pub f_ffree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::c_long, - f_spare: [::c_long; 6], - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::size_t, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::size_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - } - - pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 0], - } -} - -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; - -pub const SYS_gettid: ::c_long = 5178; // Valid for n64 - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } else { - mod no_align; - pub use self::no_align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs deleted file mode 100644 index 8909114cd..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s! { - // FIXME this is actually a union - pub struct sem_t { - __size: [::c_char; 32], - __align: [::c_long; 0], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mod.rs deleted file mode 100644 index 56bfcc5d3..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mips/mod.rs +++ /dev/null @@ -1,310 +0,0 @@ -pub type pthread_t = ::c_ulong; - -pub const SFD_CLOEXEC: ::c_int = 0x080000; - -pub const NCCS: usize = 32; - -pub const O_TRUNC: ::c_int = 512; - -pub const O_CLOEXEC: ::c_int = 0x80000; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const TMP_MAX: ::c_uint = 238328; -pub const _SC_2_C_VERSION: ::c_int = 96; -pub const O_ACCMODE: ::c_int = 3; -pub const O_DIRECT: ::c_int = 0x8000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_NOATIME: ::c_int = 0x40000; -pub const O_PATH: ::c_int = 0o010000000; - -pub const O_APPEND: ::c_int = 8; -pub const O_CREAT: ::c_int = 256; -pub const O_EXCL: ::c_int = 1024; -pub const O_NOCTTY: ::c_int = 2048; -pub const O_NONBLOCK: ::c_int = 128; -pub const O_SYNC: ::c_int = 0x10; -pub const O_RSYNC: ::c_int = 0x10; -pub const O_DSYNC: ::c_int = 0x10; -pub const O_FSYNC: ::c_int = 0x10; -pub const O_ASYNC: ::c_int = 0x1000; -pub const O_LARGEFILE: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x80; - -pub const SOCK_NONBLOCK: ::c_int = 128; -pub const PIDFD_NONBLOCK: ::c_int = 128; - -pub const EDEADLK: ::c_int = 45; -pub const ENAMETOOLONG: ::c_int = 78; -pub const ENOLCK: ::c_int = 46; -pub const ENOSYS: ::c_int = 89; -pub const ENOTEMPTY: ::c_int = 93; -pub const ELOOP: ::c_int = 90; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const FFDLY: ::c_int = 0o0100000; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EMULTIHOP: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EBADMSG: ::c_int = 77; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const EUSERS: ::c_int = 94; -pub const ENOTSOCK: ::c_int = 95; -pub const EDESTADDRREQ: ::c_int = 96; -pub const EMSGSIZE: ::c_int = 97; -pub const EPROTOTYPE: ::c_int = 98; -pub const ENOPROTOOPT: ::c_int = 99; -pub const EPROTONOSUPPORT: ::c_int = 120; -pub const ESOCKTNOSUPPORT: ::c_int = 121; -pub const EOPNOTSUPP: ::c_int = 122; -pub const EPFNOSUPPORT: ::c_int = 123; -pub const EAFNOSUPPORT: ::c_int = 124; -pub const EADDRINUSE: ::c_int = 125; -pub const EADDRNOTAVAIL: ::c_int = 126; -pub const ENETDOWN: ::c_int = 127; -pub const ENETUNREACH: ::c_int = 128; -pub const ENETRESET: ::c_int = 129; -pub const ECONNABORTED: ::c_int = 130; -pub const ECONNRESET: ::c_int = 131; -pub const ENOBUFS: ::c_int = 132; -pub const EISCONN: ::c_int = 133; -pub const ENOTCONN: ::c_int = 134; -pub const ESHUTDOWN: ::c_int = 143; -pub const ETOOMANYREFS: ::c_int = 144; -pub const ETIMEDOUT: ::c_int = 145; -pub const ECONNREFUSED: ::c_int = 146; -pub const EHOSTDOWN: ::c_int = 147; -pub const EHOSTUNREACH: ::c_int = 148; -pub const EALREADY: ::c_int = 149; -pub const EINPROGRESS: ::c_int = 150; -pub const ESTALE: ::c_int = 151; -pub const EUCLEAN: ::c_int = 135; -pub const ENOTNAM: ::c_int = 137; -pub const ENAVAIL: ::c_int = 138; -pub const EISNAM: ::c_int = 139; -pub const EREMOTEIO: ::c_int = 140; -pub const EDQUOT: ::c_int = 1133; -pub const ENOMEDIUM: ::c_int = 159; -pub const EMEDIUMTYPE: ::c_int = 160; -pub const ECANCELED: ::c_int = 158; -pub const ENOKEY: ::c_int = 161; -pub const EKEYEXPIRED: ::c_int = 162; -pub const EKEYREVOKED: ::c_int = 163; -pub const EKEYREJECTED: ::c_int = 164; -pub const EOWNERDEAD: ::c_int = 165; -pub const ENOTRECOVERABLE: ::c_int = 166; -pub const ERFKILL: ::c_int = 167; - -pub const MAP_NORESERVE: ::c_int = 0x400; -pub const MAP_ANON: ::c_int = 0x800; -pub const MAP_ANONYMOUS: ::c_int = 0x800; -pub const MAP_GROWSDOWN: ::c_int = 0x1000; -pub const MAP_DENYWRITE: ::c_int = 0x2000; -pub const MAP_EXECUTABLE: ::c_int = 0x4000; -pub const MAP_LOCKED: ::c_int = 0x8000; -pub const MAP_POPULATE: ::c_int = 0x10000; -pub const MAP_NONBLOCK: ::c_int = 0x20000; -pub const MAP_STACK: ::c_int = 0x40000; - -pub const NLDLY: ::tcflag_t = 0o0000400; - -pub const SOCK_STREAM: ::c_int = 2; -pub const SOCK_DGRAM: ::c_int = 1; -pub const SOCK_SEQPACKET: ::c_int = 5; - -pub const SA_ONSTACK: ::c_uint = 0x08000000; -pub const SA_SIGINFO: ::c_uint = 0x00000008; -pub const SA_NOCLDWAIT: ::c_int = 0x00010000; - -pub const SIGCHLD: ::c_int = 18; -pub const SIGBUS: ::c_int = 10; -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGWINCH: ::c_int = 20; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGCONT: ::c_int = 25; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGURG: ::c_int = 21; -pub const SIGIO: ::c_int = 22; -pub const SIGSYS: ::c_int = 12; -pub const SIGPWR: ::c_int = 19; -pub const SIG_SETMASK: ::c_int = 3; -pub const SIG_BLOCK: ::c_int = 0x1; -pub const SIG_UNBLOCK: ::c_int = 0x2; - -pub const POLLWRNORM: ::c_short = 0x004; -pub const POLLWRBAND: ::c_short = 0x100; - -pub const PTHREAD_STACK_MIN: ::size_t = 16384; - -pub const VEOF: usize = 16; -pub const VEOL: usize = 17; -pub const VEOL2: usize = 6; -pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0x00000100; -pub const TOSTOP: ::tcflag_t = 0x00008000; -pub const FLUSHO: ::tcflag_t = 0x00002000; -pub const TCSANOW: ::c_int = 0x540e; -pub const TCSADRAIN: ::c_int = 0x540f; -pub const TCSAFLUSH: ::c_int = 0x5410; - -pub const CPU_SETSIZE: ::c_int = 0x400; - -pub const EFD_NONBLOCK: ::c_int = 0x80; - -pub const F_GETLK: ::c_int = 14; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; - -pub const SFD_NONBLOCK: ::c_int = 0x80; - -pub const RTLD_GLOBAL: ::c_int = 0x4; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const CBAUDEX: ::tcflag_t = 0o0010000; -pub const CIBAUD: ::tcflag_t = 0o002003600000; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const TABDLY: ::tcflag_t = 0o0014000; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const BSDLY: ::tcflag_t = 0o0020000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const VWERASE: usize = 14; -pub const XTABS: ::tcflag_t = 0o0014000; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSWTC: usize = 7; -pub const VTDLY: ::c_int = 0o0040000; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const OLCUC: ::tcflag_t = 0o0000002; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CRDLY: ::c_int = 0o0003000; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; - -pub const MAP_HUGETLB: ::c_int = 0x80000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -cfg_if! { - if #[cfg(target_arch = "mips")] { - mod mips32; - pub use self::mips32::*; - } else if #[cfg(target_arch = "mips64")] { - mod mips64; - pub use self::mips64::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mod.rs deleted file mode 100644 index 4a01e0cd8..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/mod.rs +++ /dev/null @@ -1,392 +0,0 @@ -pub type shmatt_t = ::c_ulong; -pub type msgqnum_t = ::c_ulong; -pub type msglen_t = ::c_ulong; -pub type regoff_t = ::c_int; -pub type rlim_t = ::c_ulong; -pub type __rlimit_resource_t = ::c_ulong; -pub type __priority_which_t = ::c_uint; - -cfg_if! { - if #[cfg(doc)] { - // Used in `linux::arch` to define ioctl constants. - pub(crate) type Ioctl = ::c_ulong; - } else { - #[doc(hidden)] - pub type Ioctl = ::c_ulong; - } -} - -s! { - pub struct statvfs { // Different than GNU! - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - #[cfg(target_endian = "little")] - pub f_fsid: ::c_ulong, - #[cfg(target_pointer_width = "32")] - __f_unused: ::c_int, - #[cfg(target_endian = "big")] - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct regex_t { - __buffer: *mut ::c_void, - __allocated: ::size_t, - __used: ::size_t, - __syntax: ::c_ulong, - __fastmap: *mut ::c_char, - __translate: *mut ::c_char, - __re_nsub: ::size_t, - __bitfield: u8, - } - - pub struct rtentry { - pub rt_pad1: ::c_ulong, - pub rt_dst: ::sockaddr, - pub rt_gateway: ::sockaddr, - pub rt_genmask: ::sockaddr, - pub rt_flags: ::c_ushort, - pub rt_pad2: ::c_short, - pub rt_pad3: ::c_ulong, - pub rt_tos: ::c_uchar, - pub rt_class: ::c_uchar, - #[cfg(target_pointer_width = "64")] - pub rt_pad4: [::c_short; 3usize], - #[cfg(not(target_pointer_width = "64"))] - pub rt_pad4: ::c_short, - pub rt_metric: ::c_short, - pub rt_dev: *mut ::c_char, - pub rt_mtu: ::c_ulong, - pub rt_window: ::c_ulong, - pub rt_irtt: ::c_ushort, - } - - pub struct __exit_status { - pub e_termination: ::c_short, - pub e_exit: ::c_short, - } - - pub struct ptrace_peeksiginfo_args { - pub off: ::__u64, - pub flags: ::__u32, - pub nr: ::__s32, - } -} - -impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { - #[repr(C)] - struct siginfo_sigfault { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - si_addr: *mut ::c_void, - } - (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr - } - - pub unsafe fn si_value(&self) -> ::sigval { - #[repr(C)] - struct siginfo_si_value { - _si_signo: ::c_int, - _si_errno: ::c_int, - _si_code: ::c_int, - _si_timerid: ::c_int, - _si_overrun: ::c_int, - si_value: ::sigval, - } - (*(self as *const siginfo_t as *const siginfo_si_value)).si_value - } -} - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const SIGEV_THREAD_ID: ::c_int = 4; - -pub const AF_VSOCK: ::c_int = 40; - -// Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the -// following are only available on newer Linux versions than the versions -// currently used in CI in some configurations, so we define them here. -pub const BINDERFS_SUPER_MAGIC: ::c_long = 0x6c6f6f70; -pub const XFS_SUPER_MAGIC: ::c_long = 0x58465342; - -pub const PTRACE_TRACEME: ::c_int = 0; -pub const PTRACE_PEEKTEXT: ::c_int = 1; -pub const PTRACE_PEEKDATA: ::c_int = 2; -pub const PTRACE_PEEKUSER: ::c_int = 3; -pub const PTRACE_POKETEXT: ::c_int = 4; -pub const PTRACE_POKEDATA: ::c_int = 5; -pub const PTRACE_POKEUSER: ::c_int = 6; -pub const PTRACE_CONT: ::c_int = 7; -pub const PTRACE_KILL: ::c_int = 8; -pub const PTRACE_SINGLESTEP: ::c_int = 9; -pub const PTRACE_GETREGS: ::c_int = 12; -pub const PTRACE_SETREGS: ::c_int = 13; -pub const PTRACE_GETFPREGS: ::c_int = 14; -pub const PTRACE_SETFPREGS: ::c_int = 15; -pub const PTRACE_ATTACH: ::c_int = 16; -pub const PTRACE_DETACH: ::c_int = 17; -pub const PTRACE_GETFPXREGS: ::c_int = 18; -pub const PTRACE_SETFPXREGS: ::c_int = 19; -pub const PTRACE_SYSCALL: ::c_int = 24; -pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; -pub const PTRACE_GETREGSET: ::c_int = 0x4204; -pub const PTRACE_SETREGSET: ::c_int = 0x4205; -pub const PTRACE_SEIZE: ::c_int = 0x4206; -pub const PTRACE_INTERRUPT: ::c_int = 0x4207; -pub const PTRACE_LISTEN: ::c_int = 0x4208; - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -// These are different than GNU! -pub const LC_CTYPE: ::c_int = 0; -pub const LC_NUMERIC: ::c_int = 1; -pub const LC_TIME: ::c_int = 3; -pub const LC_COLLATE: ::c_int = 4; -pub const LC_MONETARY: ::c_int = 2; -pub const LC_MESSAGES: ::c_int = 5; -pub const LC_ALL: ::c_int = 6; -// end different section - -// MS_ flags for mount(2) -pub const MS_RMT_MASK: ::c_ulong = ::MS_RDONLY | ::MS_SYNCHRONOUS | ::MS_MANDLOCK | ::MS_I_VERSION; - -pub const ENOTSUP: ::c_int = EOPNOTSUPP; - -pub const IPV6_JOIN_GROUP: ::c_int = 20; -pub const IPV6_LEAVE_GROUP: ::c_int = 21; - -// These are different from GNU -pub const ABDAY_1: ::nl_item = 0x300; -pub const ABDAY_2: ::nl_item = 0x301; -pub const ABDAY_3: ::nl_item = 0x302; -pub const ABDAY_4: ::nl_item = 0x303; -pub const ABDAY_5: ::nl_item = 0x304; -pub const ABDAY_6: ::nl_item = 0x305; -pub const ABDAY_7: ::nl_item = 0x306; -pub const DAY_1: ::nl_item = 0x307; -pub const DAY_2: ::nl_item = 0x308; -pub const DAY_3: ::nl_item = 0x309; -pub const DAY_4: ::nl_item = 0x30A; -pub const DAY_5: ::nl_item = 0x30B; -pub const DAY_6: ::nl_item = 0x30C; -pub const DAY_7: ::nl_item = 0x30D; -pub const ABMON_1: ::nl_item = 0x30E; -pub const ABMON_2: ::nl_item = 0x30F; -pub const ABMON_3: ::nl_item = 0x310; -pub const ABMON_4: ::nl_item = 0x311; -pub const ABMON_5: ::nl_item = 0x312; -pub const ABMON_6: ::nl_item = 0x313; -pub const ABMON_7: ::nl_item = 0x314; -pub const ABMON_8: ::nl_item = 0x315; -pub const ABMON_9: ::nl_item = 0x316; -pub const ABMON_10: ::nl_item = 0x317; -pub const ABMON_11: ::nl_item = 0x318; -pub const ABMON_12: ::nl_item = 0x319; -pub const MON_1: ::nl_item = 0x31A; -pub const MON_2: ::nl_item = 0x31B; -pub const MON_3: ::nl_item = 0x31C; -pub const MON_4: ::nl_item = 0x31D; -pub const MON_5: ::nl_item = 0x31E; -pub const MON_6: ::nl_item = 0x31F; -pub const MON_7: ::nl_item = 0x320; -pub const MON_8: ::nl_item = 0x321; -pub const MON_9: ::nl_item = 0x322; -pub const MON_10: ::nl_item = 0x323; -pub const MON_11: ::nl_item = 0x324; -pub const MON_12: ::nl_item = 0x325; -pub const AM_STR: ::nl_item = 0x326; -pub const PM_STR: ::nl_item = 0x327; -pub const D_T_FMT: ::nl_item = 0x328; -pub const D_FMT: ::nl_item = 0x329; -pub const T_FMT: ::nl_item = 0x32A; -pub const T_FMT_AMPM: ::nl_item = 0x32B; -pub const ERA: ::nl_item = 0x32C; -pub const ERA_D_FMT: ::nl_item = 0x32E; -pub const ALT_DIGITS: ::nl_item = 0x32F; -pub const ERA_D_T_FMT: ::nl_item = 0x330; -pub const ERA_T_FMT: ::nl_item = 0x331; -pub const CODESET: ::nl_item = 10; -pub const CRNCYSTR: ::nl_item = 0x215; -pub const RADIXCHAR: ::nl_item = 0x100; -pub const THOUSEP: ::nl_item = 0x101; -pub const NOEXPR: ::nl_item = 0x501; -pub const YESSTR: ::nl_item = 0x502; -pub const NOSTR: ::nl_item = 0x503; - -// Different than Gnu. -pub const FILENAME_MAX: ::c_uint = 4095; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -pub const SOMAXCONN: ::c_int = 128; - -pub const ST_RELATIME: ::c_ulong = 4096; - -pub const AF_NFC: ::c_int = PF_NFC; -pub const BUFSIZ: ::c_int = 4096; -pub const EDEADLOCK: ::c_int = EDEADLK; -pub const EXTA: ::c_uint = B19200; -pub const EXTB: ::c_uint = B38400; -pub const EXTPROC: ::tcflag_t = 0200000; -pub const FAN_MARK_FILESYSTEM: ::c_int = 0x00000100; -pub const FAN_MARK_INODE: ::c_int = 0x00000000; -pub const FAN_MARK_MOUNT: ::c_int = 0x10; -pub const FOPEN_MAX: ::c_int = 16; -pub const F_GETOWN: ::c_int = 9; -pub const F_OFD_GETLK: ::c_int = 36; -pub const F_OFD_SETLK: ::c_int = 37; -pub const F_OFD_SETLKW: ::c_int = 38; -pub const F_RDLCK: ::c_int = 0; -pub const F_SETOWN: ::c_int = 8; -pub const F_UNLCK: ::c_int = 2; -pub const F_WRLCK: ::c_int = 1; -pub const IPV6_MULTICAST_ALL: ::c_int = 29; -pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; -pub const MAP_HUGE_SHIFT: ::c_int = 26; -pub const MAP_HUGE_MASK: ::c_int = 0x3f; -pub const MAP_HUGE_64KB: ::c_int = 16 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_512KB: ::c_int = 19 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_1MB: ::c_int = 20 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_2MB: ::c_int = 21 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_8MB: ::c_int = 23 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_16MB: ::c_int = 24 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_32MB: ::c_int = 25 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_256MB: ::c_int = 28 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_512MB: ::c_int = 29 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_1GB: ::c_int = 30 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_2GB: ::c_int = 31 << MAP_HUGE_SHIFT; -pub const MAP_HUGE_16GB: ::c_int = 34 << MAP_HUGE_SHIFT; -pub const MINSIGSTKSZ: ::c_int = 2048; -pub const MSG_COPY: ::c_int = 040000; -pub const NI_MAXHOST: ::socklen_t = 1025; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; -pub const PACKET_MR_UNICAST: ::c_int = 3; -pub const PF_NFC: ::c_int = 39; -pub const PF_VSOCK: ::c_int = 40; -pub const POSIX_MADV_DONTNEED: ::c_int = 4; -pub const PTRACE_EVENT_STOP: ::c_int = 128; -pub const PTRACE_PEEKSIGINFO: ::c_int = 0x4209; -pub const RTLD_NOLOAD: ::c_int = 0x00004; -pub const RUSAGE_THREAD: ::c_int = 1; -pub const SHM_EXEC: ::c_int = 0100000; -pub const SIGPOLL: ::c_int = SIGIO; -pub const SOCK_DCCP: ::c_int = 6; -pub const SOCK_PACKET: ::c_int = 10; -pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15; -pub const UDP_GRO: ::c_int = 104; -pub const UDP_SEGMENT: ::c_int = 103; -pub const YESEXPR: ::c_int = ((5) << 8) | (0); - -extern "C" { - pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; - - pub fn pthread_rwlockattr_getkind_np( - attr: *const ::pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_setkind_np( - attr: *mut ::pthread_rwlockattr_t, - val: ::c_int, - ) -> ::c_int; - - pub fn ptrace(request: ::c_uint, ...) -> ::c_long; - - pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - ) -> ::c_int; - pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_int, - timeout: *mut ::timespec, - ) -> ::c_int; - - pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize, - ) -> ::c_int; - pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize, - ) -> ::pid_t; - - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - - pub fn pwritev( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - ) -> ::ssize_t; - pub fn preadv( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - ) -> ::ssize_t; - - pub fn sethostid(hostid: ::c_long) -> ::c_int; - pub fn fanotify_mark( - fd: ::c_int, - flags: ::c_uint, - mask: u64, - dirfd: ::c_int, - path: *const ::c_char, - ) -> ::c_int; - pub fn getrlimit64(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::__rlimit_resource_t, rlim: *const ::rlimit64) -> ::c_int; - pub fn getrlimit(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::__rlimit_resource_t, rlim: *const ::rlimit) -> ::c_int; - pub fn getpriority(which: ::__priority_which_t, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::__priority_which_t, who: ::id_t, prio: ::c_int) -> ::c_int; -} - -cfg_if! { - if #[cfg(any(target_arch = "mips", target_arch = "mips64"))] { - mod mips; - pub use self::mips::*; - } else if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } else if #[cfg(target_arch = "arm")] { - mod arm; - pub use self::arm::*; - } else { - pub use unsupported_target; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/no_align.rs deleted file mode 100644 index a73dbded5..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/no_align.rs +++ /dev/null @@ -1,53 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - pub struct pthread_mutex_t { - #[cfg(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))] - __align: [::c_long; 0], - #[cfg(any(libc_align, - target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - pub struct pthread_rwlock_t { - #[cfg(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))] - __align: [::c_long; 0], - #[cfg(not(any( - target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc")))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - pub struct pthread_mutexattr_t { - #[cfg(any(target_arch = "x86_64", target_arch = "powerpc64", - target_arch = "mips64", target_arch = "s390x", - target_arch = "sparc64"))] - __align: [::c_int; 0], - #[cfg(not(any(target_arch = "x86_64", target_arch = "powerpc64", - target_arch = "mips64", target_arch = "s390x", - target_arch = "sparc64")))] - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - pub struct pthread_cond_t { - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - - pub struct pthread_condattr_t { - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs deleted file mode 100644 index c7cbafa16..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs +++ /dev/null @@ -1,53 +0,0 @@ -/// L4Re specifics -/// This module contains definitions required by various L4Re libc backends. -/// Some of them are formally not part of the libc, but are a dependency of the -/// libc and hence we should provide them here. - -pub type l4_umword_t = ::c_ulong; // Unsigned machine word. -pub type pthread_t = *mut ::c_void; - -s! { - /// CPU sets. - pub struct l4_sched_cpu_set_t { - // from the L4Re docs - /// Combination of granularity and offset. - /// - /// The granularity defines how many CPUs each bit in map describes. - /// The offset is the numer of the first CPU described by the first - /// bit in the bitmap. - /// offset must be a multiple of 2^graularity. - /// - /// | MSB | LSB | - /// | ---------------- | ------------------- | - /// | 8bit granularity | 24bit offset .. | - gran_offset: l4_umword_t , - /// Bitmap of CPUs. - map: l4_umword_t , - } -} - -#[cfg(target_os = "l4re")] -#[allow(missing_debug_implementations)] -pub struct pthread_attr_t { - pub __detachstate: ::c_int, - pub __schedpolicy: ::c_int, - pub __schedparam: super::__sched_param, - pub __inheritsched: ::c_int, - pub __scope: ::c_int, - pub __guardsize: ::size_t, - pub __stackaddr_set: ::c_int, - pub __stackaddr: *mut ::c_void, // better don't use it - pub __stacksize: ::size_t, - // L4Re specifics - pub affinity: l4_sched_cpu_set_t, - pub create_flags: ::c_uint, -} - -// L4Re requires a min stack size of 64k; that isn't defined in uClibc, but -// somewhere in the core libraries. uClibc wants 16k, but that's not enough. -pub const PTHREAD_STACK_MIN: usize = 65536; - -// Misc other constants required for building. -pub const SIGIO: ::c_int = 29; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/mod.rs deleted file mode 100644 index 390119e3b..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ /dev/null @@ -1,345 +0,0 @@ -//! Definitions for uclibc on 64bit systems -pub type blkcnt_t = i64; -pub type blksize_t = i64; -pub type clock_t = i64; -pub type c_char = u8; -pub type c_long = i64; -pub type c_ulong = u64; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type fsword_t = ::c_long; -pub type ino_t = ::c_ulong; -pub type nlink_t = ::c_uint; -pub type off_t = ::c_long; -// [uClibc docs] Note stat64 has the same shape as stat for x86-64. -pub type stat64 = stat; -pub type suseconds_t = ::c_long; -pub type time_t = ::c_int; -pub type wchar_t = ::c_int; - -pub type fsblkcnt64_t = u64; -pub type fsfilcnt64_t = u64; -pub type __u64 = ::c_ulong; -pub type __s64 = ::c_long; - -s! { - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::c_ushort, // read / write - __pad1: ::c_ushort, - pub __seq: ::c_ushort, - __pad2: ::c_ushort, - __unused1: ::c_ulong, - __unused2: ::c_ulong - } - - #[cfg(not(target_os = "l4re"))] - pub struct pthread_attr_t { - __detachstate: ::c_int, - __schedpolicy: ::c_int, - __schedparam: __sched_param, - __inheritsched: ::c_int, - __scope: ::c_int, - __guardsize: ::size_t, - __stackaddr_set: ::c_int, - __stackaddr: *mut ::c_void, // better don't use it - __stacksize: ::size_t, - } - - pub struct __sched_param { - __sched_priority: ::c_int, - } - - pub struct siginfo_t { - si_signo: ::c_int, // signal number - si_errno: ::c_int, // if not zero: error value of signal, see errno.h - si_code: ::c_int, // signal code - pub _pad: [::c_int; 28], // unported union - _align: [usize; 0], - } - - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, // segment size in bytes - pub shm_atime: ::time_t, // time of last shmat() - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_cpid: ::pid_t, - pub shm_lpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - __unused1: ::c_ulong, - __unused2: ::c_ulong - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __ignored1: ::c_ulong, - __ignored2: ::c_ulong, - } - - pub struct sockaddr { - pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_in { - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [u8; 8], - } - - pub struct sockaddr_in6 { - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - } - - // ------------------------------------------------------------ - // definitions below are *unverified* and might **break** the software -// pub struct in_addr { -// pub s_addr: in_addr_t, -// } -// -// pub struct in6_addr { -// pub s6_addr: [u8; 16], -// #[cfg(not(libc_align))] -// __align: [u32; 0], -// } - - pub struct stat { - pub st_dev: ::c_ulong, - pub st_ino: ::ino_t, - // According to uclibc/libc/sysdeps/linux/x86_64/bits/stat.h, order of - // nlink and mode are swapped on 64 bit systems. - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulong, // dev_t - pub st_size: off_t, // file size - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_ulong, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_ulong, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_ulong, - st_pad4: [::c_long; 3] - } - - pub struct sigaction { - pub sa_handler: ::sighandler_t, - pub sa_flags: ::c_ulong, - pub sa_restorer: ::Option, - pub sa_mask: ::sigset_t, - } - - pub struct stack_t { // FIXME - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct statfs { // FIXME - pub f_type: fsword_t, - pub f_bsize: fsword_t, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: fsword_t, - pub f_frsize: fsword_t, - f_spare: [fsword_t; 5], - } - - pub struct statfs64 { - pub f_type: ::c_int, - pub f_bsize: ::c_int, - pub f_blocks: ::fsblkcnt64_t, - pub f_bfree: ::fsblkcnt64_t, - pub f_bavail: ::fsblkcnt64_t, - pub f_files: ::fsfilcnt64_t, - pub f_ffree: ::fsfilcnt64_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_int, - pub f_frsize: ::c_int, - pub f_flags: ::c_int, - pub f_spare: [::c_int; 4], - } - - pub struct statvfs64 { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: u64, - pub f_bfree: u64, - pub f_bavail: u64, - pub f_files: u64, - pub f_ffree: u64, - pub f_favail: u64, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - - pub struct msghdr { // FIXME - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::size_t, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::size_t, - pub msg_flags: ::c_int, - } - - pub struct termios { // FIXME - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - } - - pub struct sigset_t { // FIXME - __val: [::c_ulong; 16], - } - - pub struct sysinfo { // FIXME - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 0], - } - - pub struct glob_t { // FIXME - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - } - - pub struct cpu_set_t { // FIXME - #[cfg(target_pointer_width = "32")] - bits: [u32; 32], - #[cfg(target_pointer_width = "64")] - bits: [u64; 16], - } - - pub struct fsid_t { // FIXME - __val: [::c_int; 2], - } - - // FIXME this is actually a union - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - __align: [::c_long; 0], - } - - pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } -} - -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - pub struct dirent { - pub d_ino: ::ino64_t, - pub d_off: ::off64_t, - pub d_reclen: u16, - pub d_type: u8, - pub d_name: [::c_char; 256], - } -} - -// constants -pub const ENAMETOOLONG: ::c_int = 36; // File name too long -pub const ENOTEMPTY: ::c_int = 39; // Directory not empty -pub const ELOOP: ::c_int = 40; // Too many symbolic links encountered -pub const EADDRINUSE: ::c_int = 98; // Address already in use -pub const EADDRNOTAVAIL: ::c_int = 99; // Cannot assign requested address -pub const ENETDOWN: ::c_int = 100; // Network is down -pub const ENETUNREACH: ::c_int = 101; // Network is unreachable -pub const ECONNABORTED: ::c_int = 103; // Software caused connection abort -pub const ECONNREFUSED: ::c_int = 111; // Connection refused -pub const ECONNRESET: ::c_int = 104; // Connection reset by peer -pub const EDEADLK: ::c_int = 35; // Resource deadlock would occur -pub const ENOSYS: ::c_int = 38; // Function not implemented -pub const ENOTCONN: ::c_int = 107; // Transport endpoint is not connected -pub const ETIMEDOUT: ::c_int = 110; // connection timed out -pub const ESTALE: ::c_int = 116; // Stale file handle -pub const EHOSTUNREACH: ::c_int = 113; // No route to host -pub const EDQUOT: ::c_int = 122; // Quota exceeded -pub const EOPNOTSUPP: ::c_int = 0x5f; -pub const ENODATA: ::c_int = 0x3d; -pub const O_APPEND: ::c_int = 02000; -pub const O_ACCMODE: ::c_int = 0003; -pub const O_CLOEXEC: ::c_int = 0x80000; -pub const O_CREAT: ::c_int = 0100; -pub const O_DIRECTORY: ::c_int = 0200000; -pub const O_EXCL: ::c_int = 0200; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_NONBLOCK: ::c_int = 04000; -pub const O_TRUNC: ::c_int = 01000; -pub const NCCS: usize = 32; -pub const SIG_SETMASK: ::c_int = 2; // Set the set of blocked signals -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const SOCK_DGRAM: ::c_int = 2; // connectionless, unreliable datagrams -pub const SOCK_STREAM: ::c_int = 1; // …/common/bits/socket_type.h -pub const __SIZEOF_PTHREAD_COND_T: usize = 48; -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; -pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const PIDFD_NONBLOCK: ::c_int = 04000; - -cfg_if! { - if #[cfg(target_os = "l4re")] { - mod l4re; - pub use self::l4re::*; - } else { - mod other; - pub use other::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/other.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/other.rs deleted file mode 100644 index 481577cfc..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/linux/uclibc/x86_64/other.rs +++ /dev/null @@ -1,5 +0,0 @@ -// Thestyle checker discourages the use of #[cfg], so this has to go into a -// separate module -pub type pthread_t = ::c_ulong; - -pub const PTHREAD_STACK_MIN: usize = 16384; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/linux_like/mod.rs deleted file mode 100644 index 764f3ae79..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/linux_like/mod.rs +++ /dev/null @@ -1,1901 +0,0 @@ -pub type sa_family_t = u16; -pub type speed_t = ::c_uint; -pub type tcflag_t = ::c_uint; -pub type clockid_t = ::c_int; -pub type timer_t = *mut ::c_void; -pub type key_t = ::c_int; -pub type id_t = ::c_uint; - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { - fn clone(&self) -> timezone { - *self - } -} - -s! { - pub struct in_addr { - pub s_addr: ::in_addr_t, - } - - pub struct ip_mreq { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct ip_mreqn { - pub imr_multiaddr: in_addr, - pub imr_address: in_addr, - pub imr_ifindex: ::c_int, - } - - pub struct ip_mreq_source { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - pub imr_sourceaddr: in_addr, - } - - pub struct sockaddr { - pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_in { - pub sin_family: sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [u8; 8], - } - - pub struct sockaddr_in6 { - pub sin6_family: sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - } - - // The order of the `ai_addr` field in this struct is crucial - // for converting between the Rust and C types. - pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: socklen_t, - - #[cfg(any(target_os = "linux", - target_os = "emscripten"))] - pub ai_addr: *mut ::sockaddr, - - pub ai_canonname: *mut c_char, - - #[cfg(target_os = "android")] - pub ai_addr: *mut ::sockaddr, - - pub ai_next: *mut addrinfo, - } - - pub struct sockaddr_ll { - pub sll_family: ::c_ushort, - pub sll_protocol: ::c_ushort, - pub sll_ifindex: ::c_int, - pub sll_hatype: ::c_ushort, - pub sll_pkttype: ::c_uchar, - pub sll_halen: ::c_uchar, - pub sll_addr: [::c_uchar; 8] - } - - pub struct fd_set { - fds_bits: [::c_ulong; FD_SETSIZE / ULONG_SIZE], - } - - pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - pub tm_gmtoff: ::c_long, - pub tm_zone: *const ::c_char, - } - - pub struct sched_param { - pub sched_priority: ::c_int, - #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] - pub sched_ss_low_priority: ::c_int, - #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] - pub sched_ss_repl_period: ::timespec, - #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] - pub sched_ss_init_budget: ::timespec, - #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))] - pub sched_ss_max_repl: ::c_int, - } - - pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, - } - - pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, - } - - pub struct in_pktinfo { - pub ipi_ifindex: ::c_int, - pub ipi_spec_dst: ::in_addr, - pub ipi_addr: ::in_addr, - } - - pub struct ifaddrs { - pub ifa_next: *mut ifaddrs, - pub ifa_name: *mut c_char, - pub ifa_flags: ::c_uint, - pub ifa_addr: *mut ::sockaddr, - pub ifa_netmask: *mut ::sockaddr, - pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union - pub ifa_data: *mut ::c_void - } - - pub struct in6_rtmsg { - rtmsg_dst: ::in6_addr, - rtmsg_src: ::in6_addr, - rtmsg_gateway: ::in6_addr, - rtmsg_type: u32, - rtmsg_dst_len: u16, - rtmsg_src_len: u16, - rtmsg_metric: u32, - rtmsg_info: ::c_ulong, - rtmsg_flags: u32, - rtmsg_ifindex: ::c_int, - } - - pub struct arpreq { - pub arp_pa: ::sockaddr, - pub arp_ha: ::sockaddr, - pub arp_flags: ::c_int, - pub arp_netmask: ::sockaddr, - pub arp_dev: [::c_char; 16], - } - - pub struct arpreq_old { - pub arp_pa: ::sockaddr, - pub arp_ha: ::sockaddr, - pub arp_flags: ::c_int, - pub arp_netmask: ::sockaddr, - } - - pub struct arphdr { - pub ar_hrd: u16, - pub ar_pro: u16, - pub ar_hln: u8, - pub ar_pln: u8, - pub ar_op: u16, - } - - pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::c_uint, - } -} - -s_no_extra_traits! { - #[cfg_attr( - any( - all( - target_arch = "x86", - not(target_env = "musl"), - not(target_os = "android")), - target_arch = "x86_64"), - repr(packed))] - pub struct epoll_event { - pub events: u32, - pub u64: u64, - } - - pub struct sockaddr_un { - pub sun_family: sa_family_t, - pub sun_path: [::c_char; 108] - } - - pub struct sockaddr_storage { - pub ss_family: sa_family_t, - #[cfg(target_pointer_width = "32")] - __ss_pad2: [u8; 128 - 2 - 4], - #[cfg(target_pointer_width = "64")] - __ss_pad2: [u8; 128 - 2 - 8], - __ss_align: ::size_t, - } - - pub struct utsname { - pub sysname: [::c_char; 65], - pub nodename: [::c_char; 65], - pub release: [::c_char; 65], - pub version: [::c_char; 65], - pub machine: [::c_char; 65], - pub domainname: [::c_char; 65] - } - - pub struct sigevent { - pub sigev_value: ::sigval, - pub sigev_signo: ::c_int, - pub sigev_notify: ::c_int, - // Actually a union. We only expose sigev_notify_thread_id because it's - // the most useful member - pub sigev_notify_thread_id: ::c_int, - #[cfg(target_pointer_width = "64")] - __unused1: [::c_int; 11], - #[cfg(target_pointer_width = "32")] - __unused1: [::c_int; 12] - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for epoll_event { - fn eq(&self, other: &epoll_event) -> bool { - self.events == other.events - && self.u64 == other.u64 - } - } - impl Eq for epoll_event {} - impl ::fmt::Debug for epoll_event { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let events = self.events; - let u64 = self.u64; - f.debug_struct("epoll_event") - .field("events", &events) - .field("u64", &u64) - .finish() - } - } - impl ::hash::Hash for epoll_event { - fn hash(&self, state: &mut H) { - let events = self.events; - let u64 = self.u64; - events.hash(state); - u64.hash(state); - } - } - - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_un {} - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) - .finish() - } - } - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_family == other.ss_family - && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_storage {} - - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_family", &self.ss_family) - .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_pad2", &self.__ss_pad2) - .finish() - } - } - - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_family.hash(state); - self.__ss_pad2.hash(state); - } - } - - impl PartialEq for utsname { - fn eq(&self, other: &utsname) -> bool { - self.sysname - .iter() - .zip(other.sysname.iter()) - .all(|(a, b)| a == b) - && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a, b)| a == b) - && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a, b)| a == b) - && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a, b)| a == b) - && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a, b)| a == b) - && self - .domainname - .iter() - .zip(other.domainname.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for utsname {} - - impl ::fmt::Debug for utsname { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) - // FIXME: .field("domainname", &self.domainname) - .finish() - } - } - - impl ::hash::Hash for utsname { - fn hash(&self, state: &mut H) { - self.sysname.hash(state); - self.nodename.hash(state); - self.release.hash(state); - self.version.hash(state); - self.machine.hash(state); - self.domainname.hash(state); - } - } - - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_value == other.sigev_value - && self.sigev_signo == other.sigev_signo - && self.sigev_notify == other.sigev_notify - && self.sigev_notify_thread_id - == other.sigev_notify_thread_id - } - } - impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sigevent") - .field("sigev_value", &self.sigev_value) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_notify", &self.sigev_notify) - .field("sigev_notify_thread_id", - &self.sigev_notify_thread_id) - .finish() - } - } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_value.hash(state); - self.sigev_signo.hash(state); - self.sigev_notify.hash(state); - self.sigev_notify_thread_id.hash(state); - } - } - } -} - -// intentionally not public, only used for fd_set -cfg_if! { - if #[cfg(target_pointer_width = "32")] { - const ULONG_SIZE: usize = 32; - } else if #[cfg(target_pointer_width = "64")] { - const ULONG_SIZE: usize = 64; - } else { - // Unknown target_pointer_width - } -} - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 2147483647; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; - -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; - -// Linux-specific fcntls -pub const F_SETLEASE: ::c_int = 1024; -pub const F_GETLEASE: ::c_int = 1025; -pub const F_NOTIFY: ::c_int = 1026; -pub const F_CANCELLK: ::c_int = 1029; -pub const F_DUPFD_CLOEXEC: ::c_int = 1030; -pub const F_SETPIPE_SZ: ::c_int = 1031; -pub const F_GETPIPE_SZ: ::c_int = 1032; -pub const F_ADD_SEALS: ::c_int = 1033; -pub const F_GET_SEALS: ::c_int = 1034; - -pub const F_SEAL_SEAL: ::c_int = 0x0001; -pub const F_SEAL_SHRINK: ::c_int = 0x0002; -pub const F_SEAL_GROW: ::c_int = 0x0004; -pub const F_SEAL_WRITE: ::c_int = 0x0008; - -// FIXME(#235): Include file sealing fcntls once we have a way to verify them. - -pub const SIGTRAP: ::c_int = 5; - -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; - -pub const CLOCK_REALTIME: ::clockid_t = 0; -pub const CLOCK_MONOTONIC: ::clockid_t = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 3; -pub const CLOCK_MONOTONIC_RAW: ::clockid_t = 4; -pub const CLOCK_REALTIME_COARSE: ::clockid_t = 5; -pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = 6; -pub const CLOCK_BOOTTIME: ::clockid_t = 7; -pub const CLOCK_REALTIME_ALARM: ::clockid_t = 8; -pub const CLOCK_BOOTTIME_ALARM: ::clockid_t = 9; -pub const CLOCK_TAI: ::clockid_t = 11; -pub const TIMER_ABSTIME: ::c_int = 1; - -pub const RUSAGE_SELF: ::c_int = 0; - -pub const O_RDONLY: ::c_int = 0; -pub const O_WRONLY: ::c_int = 1; -pub const O_RDWR: ::c_int = 2; - -pub const SOCK_CLOEXEC: ::c_int = O_CLOEXEC; - -pub const S_IFIFO: ::mode_t = 4096; -pub const S_IFCHR: ::mode_t = 8192; -pub const S_IFBLK: ::mode_t = 24576; -pub const S_IFDIR: ::mode_t = 16384; -pub const S_IFREG: ::mode_t = 32768; -pub const S_IFLNK: ::mode_t = 40960; -pub const S_IFSOCK: ::mode_t = 49152; -pub const S_IFMT: ::mode_t = 61440; -pub const S_IRWXU: ::mode_t = 448; -pub const S_IXUSR: ::mode_t = 64; -pub const S_IWUSR: ::mode_t = 128; -pub const S_IRUSR: ::mode_t = 256; -pub const S_IRWXG: ::mode_t = 56; -pub const S_IXGRP: ::mode_t = 8; -pub const S_IWGRP: ::mode_t = 16; -pub const S_IRGRP: ::mode_t = 32; -pub const S_IRWXO: ::mode_t = 7; -pub const S_IXOTH: ::mode_t = 1; -pub const S_IWOTH: ::mode_t = 2; -pub const S_IROTH: ::mode_t = 4; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const XATTR_CREATE: ::c_int = 0x1; -pub const XATTR_REPLACE: ::c_int = 0x2; - -cfg_if! { - if #[cfg(target_os = "android")] { - pub const RLIM64_INFINITY: ::c_ulonglong = !0; - } else { - pub const RLIM64_INFINITY: ::rlim64_t = !0; - } -} - -cfg_if! { - if #[cfg(target_env = "ohos")] { - pub const LC_CTYPE: ::c_int = 0; - pub const LC_NUMERIC: ::c_int = 1; - pub const LC_TIME: ::c_int = 2; - pub const LC_COLLATE: ::c_int = 3; - pub const LC_MONETARY: ::c_int = 4; - pub const LC_MESSAGES: ::c_int = 5; - pub const LC_PAPER: ::c_int = 6; - pub const LC_NAME: ::c_int = 7; - pub const LC_ADDRESS: ::c_int = 8; - pub const LC_TELEPHONE: ::c_int = 9; - pub const LC_MEASUREMENT: ::c_int = 10; - pub const LC_IDENTIFICATION: ::c_int = 11; - pub const LC_ALL: ::c_int = 12; - } else if #[cfg(not(target_env = "uclibc"))] { - pub const LC_CTYPE: ::c_int = 0; - pub const LC_NUMERIC: ::c_int = 1; - pub const LC_TIME: ::c_int = 2; - pub const LC_COLLATE: ::c_int = 3; - pub const LC_MONETARY: ::c_int = 4; - pub const LC_MESSAGES: ::c_int = 5; - pub const LC_ALL: ::c_int = 6; - } -} - -pub const LC_CTYPE_MASK: ::c_int = 1 << LC_CTYPE; -pub const LC_NUMERIC_MASK: ::c_int = 1 << LC_NUMERIC; -pub const LC_TIME_MASK: ::c_int = 1 << LC_TIME; -pub const LC_COLLATE_MASK: ::c_int = 1 << LC_COLLATE; -pub const LC_MONETARY_MASK: ::c_int = 1 << LC_MONETARY; -pub const LC_MESSAGES_MASK: ::c_int = 1 << LC_MESSAGES; -// LC_ALL_MASK defined per platform - -pub const MAP_FILE: ::c_int = 0x0000; -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_FIXED: ::c_int = 0x0010; - -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -// MS_ flags for msync(2) -pub const MS_ASYNC: ::c_int = 0x0001; -pub const MS_INVALIDATE: ::c_int = 0x0002; -pub const MS_SYNC: ::c_int = 0x0004; - -// MS_ flags for mount(2) -pub const MS_RDONLY: ::c_ulong = 0x01; -pub const MS_NOSUID: ::c_ulong = 0x02; -pub const MS_NODEV: ::c_ulong = 0x04; -pub const MS_NOEXEC: ::c_ulong = 0x08; -pub const MS_SYNCHRONOUS: ::c_ulong = 0x10; -pub const MS_REMOUNT: ::c_ulong = 0x20; -pub const MS_MANDLOCK: ::c_ulong = 0x40; -pub const MS_DIRSYNC: ::c_ulong = 0x80; -pub const MS_NOATIME: ::c_ulong = 0x0400; -pub const MS_NODIRATIME: ::c_ulong = 0x0800; -pub const MS_BIND: ::c_ulong = 0x1000; -pub const MS_MOVE: ::c_ulong = 0x2000; -pub const MS_REC: ::c_ulong = 0x4000; -pub const MS_SILENT: ::c_ulong = 0x8000; -pub const MS_POSIXACL: ::c_ulong = 0x010000; -pub const MS_UNBINDABLE: ::c_ulong = 0x020000; -pub const MS_PRIVATE: ::c_ulong = 0x040000; -pub const MS_SLAVE: ::c_ulong = 0x080000; -pub const MS_SHARED: ::c_ulong = 0x100000; -pub const MS_RELATIME: ::c_ulong = 0x200000; -pub const MS_KERNMOUNT: ::c_ulong = 0x400000; -pub const MS_I_VERSION: ::c_ulong = 0x800000; -pub const MS_STRICTATIME: ::c_ulong = 0x1000000; -pub const MS_LAZYTIME: ::c_ulong = 0x2000000; -pub const MS_ACTIVE: ::c_ulong = 0x40000000; -pub const MS_MGC_VAL: ::c_ulong = 0xc0ed0000; -pub const MS_MGC_MSK: ::c_ulong = 0xffff0000; - -pub const SCM_RIGHTS: ::c_int = 0x01; -pub const SCM_CREDENTIALS: ::c_int = 0x02; - -pub const PROT_GROWSDOWN: ::c_int = 0x1000000; -pub const PROT_GROWSUP: ::c_int = 0x2000000; - -pub const MAP_TYPE: ::c_int = 0x000f; - -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; -pub const MADV_FREE: ::c_int = 8; -pub const MADV_REMOVE: ::c_int = 9; -pub const MADV_DONTFORK: ::c_int = 10; -pub const MADV_DOFORK: ::c_int = 11; -pub const MADV_MERGEABLE: ::c_int = 12; -pub const MADV_UNMERGEABLE: ::c_int = 13; -pub const MADV_HUGEPAGE: ::c_int = 14; -pub const MADV_NOHUGEPAGE: ::c_int = 15; -pub const MADV_DONTDUMP: ::c_int = 16; -pub const MADV_DODUMP: ::c_int = 17; -pub const MADV_WIPEONFORK: ::c_int = 18; -pub const MADV_KEEPONFORK: ::c_int = 19; -pub const MADV_COLD: ::c_int = 20; -pub const MADV_PAGEOUT: ::c_int = 21; -pub const MADV_HWPOISON: ::c_int = 100; -cfg_if! { - if #[cfg(not(target_os = "emscripten"))] { - pub const MADV_POPULATE_READ: ::c_int = 22; - pub const MADV_POPULATE_WRITE: ::c_int = 23; - pub const MADV_DONTNEED_LOCKED: ::c_int = 24; - } -} - -pub const IFF_UP: ::c_int = 0x1; -pub const IFF_BROADCAST: ::c_int = 0x2; -pub const IFF_DEBUG: ::c_int = 0x4; -pub const IFF_LOOPBACK: ::c_int = 0x8; -pub const IFF_POINTOPOINT: ::c_int = 0x10; -pub const IFF_NOTRAILERS: ::c_int = 0x20; -pub const IFF_RUNNING: ::c_int = 0x40; -pub const IFF_NOARP: ::c_int = 0x80; -pub const IFF_PROMISC: ::c_int = 0x100; -pub const IFF_ALLMULTI: ::c_int = 0x200; -pub const IFF_MASTER: ::c_int = 0x400; -pub const IFF_SLAVE: ::c_int = 0x800; -pub const IFF_MULTICAST: ::c_int = 0x1000; -pub const IFF_PORTSEL: ::c_int = 0x2000; -pub const IFF_AUTOMEDIA: ::c_int = 0x4000; -pub const IFF_DYNAMIC: ::c_int = 0x8000; - -pub const SOL_IP: ::c_int = 0; -pub const SOL_TCP: ::c_int = 6; -pub const SOL_UDP: ::c_int = 17; -pub const SOL_IPV6: ::c_int = 41; -pub const SOL_ICMPV6: ::c_int = 58; -pub const SOL_RAW: ::c_int = 255; -pub const SOL_DECNET: ::c_int = 261; -pub const SOL_X25: ::c_int = 262; -pub const SOL_PACKET: ::c_int = 263; -pub const SOL_ATM: ::c_int = 264; -pub const SOL_AAL: ::c_int = 265; -pub const SOL_IRDA: ::c_int = 266; -pub const SOL_NETBEUI: ::c_int = 267; -pub const SOL_LLC: ::c_int = 268; -pub const SOL_DCCP: ::c_int = 269; -pub const SOL_NETLINK: ::c_int = 270; -pub const SOL_TIPC: ::c_int = 271; -pub const SOL_BLUETOOTH: ::c_int = 274; -pub const SOL_ALG: ::c_int = 279; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_UNIX: ::c_int = 1; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_INET: ::c_int = 2; -pub const AF_AX25: ::c_int = 3; -pub const AF_IPX: ::c_int = 4; -pub const AF_APPLETALK: ::c_int = 5; -pub const AF_NETROM: ::c_int = 6; -pub const AF_BRIDGE: ::c_int = 7; -pub const AF_ATMPVC: ::c_int = 8; -pub const AF_X25: ::c_int = 9; -pub const AF_INET6: ::c_int = 10; -pub const AF_ROSE: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_NETBEUI: ::c_int = 13; -pub const AF_SECURITY: ::c_int = 14; -pub const AF_KEY: ::c_int = 15; -pub const AF_NETLINK: ::c_int = 16; -pub const AF_ROUTE: ::c_int = AF_NETLINK; -pub const AF_PACKET: ::c_int = 17; -pub const AF_ASH: ::c_int = 18; -pub const AF_ECONET: ::c_int = 19; -pub const AF_ATMSVC: ::c_int = 20; -pub const AF_RDS: ::c_int = 21; -pub const AF_SNA: ::c_int = 22; -pub const AF_IRDA: ::c_int = 23; -pub const AF_PPPOX: ::c_int = 24; -pub const AF_WANPIPE: ::c_int = 25; -pub const AF_LLC: ::c_int = 26; -pub const AF_CAN: ::c_int = 29; -pub const AF_TIPC: ::c_int = 30; -pub const AF_BLUETOOTH: ::c_int = 31; -pub const AF_IUCV: ::c_int = 32; -pub const AF_RXRPC: ::c_int = 33; -pub const AF_ISDN: ::c_int = 34; -pub const AF_PHONET: ::c_int = 35; -pub const AF_IEEE802154: ::c_int = 36; -pub const AF_CAIF: ::c_int = 37; -pub const AF_ALG: ::c_int = 38; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_UNIX: ::c_int = AF_UNIX; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_AX25: ::c_int = AF_AX25; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_NETROM: ::c_int = AF_NETROM; -pub const PF_BRIDGE: ::c_int = AF_BRIDGE; -pub const PF_ATMPVC: ::c_int = AF_ATMPVC; -pub const PF_X25: ::c_int = AF_X25; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_ROSE: ::c_int = AF_ROSE; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_NETBEUI: ::c_int = AF_NETBEUI; -pub const PF_SECURITY: ::c_int = AF_SECURITY; -pub const PF_KEY: ::c_int = AF_KEY; -pub const PF_NETLINK: ::c_int = AF_NETLINK; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_PACKET: ::c_int = AF_PACKET; -pub const PF_ASH: ::c_int = AF_ASH; -pub const PF_ECONET: ::c_int = AF_ECONET; -pub const PF_ATMSVC: ::c_int = AF_ATMSVC; -pub const PF_RDS: ::c_int = AF_RDS; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_IRDA: ::c_int = AF_IRDA; -pub const PF_PPPOX: ::c_int = AF_PPPOX; -pub const PF_WANPIPE: ::c_int = AF_WANPIPE; -pub const PF_LLC: ::c_int = AF_LLC; -pub const PF_CAN: ::c_int = AF_CAN; -pub const PF_TIPC: ::c_int = AF_TIPC; -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -pub const PF_IUCV: ::c_int = AF_IUCV; -pub const PF_RXRPC: ::c_int = AF_RXRPC; -pub const PF_ISDN: ::c_int = AF_ISDN; -pub const PF_PHONET: ::c_int = AF_PHONET; -pub const PF_IEEE802154: ::c_int = AF_IEEE802154; -pub const PF_CAIF: ::c_int = AF_CAIF; -pub const PF_ALG: ::c_int = AF_ALG; - -pub const MSG_OOB: ::c_int = 1; -pub const MSG_PEEK: ::c_int = 2; -pub const MSG_DONTROUTE: ::c_int = 4; -pub const MSG_CTRUNC: ::c_int = 8; -pub const MSG_TRUNC: ::c_int = 0x20; -pub const MSG_DONTWAIT: ::c_int = 0x40; -pub const MSG_EOR: ::c_int = 0x80; -pub const MSG_WAITALL: ::c_int = 0x100; -pub const MSG_FIN: ::c_int = 0x200; -pub const MSG_SYN: ::c_int = 0x400; -pub const MSG_CONFIRM: ::c_int = 0x800; -pub const MSG_RST: ::c_int = 0x1000; -pub const MSG_ERRQUEUE: ::c_int = 0x2000; -pub const MSG_NOSIGNAL: ::c_int = 0x4000; -pub const MSG_MORE: ::c_int = 0x8000; -pub const MSG_WAITFORONE: ::c_int = 0x10000; -pub const MSG_FASTOPEN: ::c_int = 0x20000000; -pub const MSG_CMSG_CLOEXEC: ::c_int = 0x40000000; - -pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; - -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const IP_TOS: ::c_int = 1; -pub const IP_TTL: ::c_int = 2; -pub const IP_HDRINCL: ::c_int = 3; -pub const IP_OPTIONS: ::c_int = 4; -pub const IP_ROUTER_ALERT: ::c_int = 5; -pub const IP_RECVOPTS: ::c_int = 6; -pub const IP_RETOPTS: ::c_int = 7; -pub const IP_PKTINFO: ::c_int = 8; -pub const IP_PKTOPTIONS: ::c_int = 9; -pub const IP_MTU_DISCOVER: ::c_int = 10; -pub const IP_RECVERR: ::c_int = 11; -pub const IP_RECVTTL: ::c_int = 12; -pub const IP_RECVTOS: ::c_int = 13; -pub const IP_MTU: ::c_int = 14; -pub const IP_FREEBIND: ::c_int = 15; -pub const IP_IPSEC_POLICY: ::c_int = 16; -pub const IP_XFRM_POLICY: ::c_int = 17; -pub const IP_PASSSEC: ::c_int = 18; -pub const IP_TRANSPARENT: ::c_int = 19; -pub const IP_ORIGDSTADDR: ::c_int = 20; -pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR; -pub const IP_MINTTL: ::c_int = 21; -pub const IP_NODEFRAG: ::c_int = 22; -pub const IP_CHECKSUM: ::c_int = 23; -pub const IP_BIND_ADDRESS_NO_PORT: ::c_int = 24; -pub const IP_MULTICAST_IF: ::c_int = 32; -pub const IP_MULTICAST_TTL: ::c_int = 33; -pub const IP_MULTICAST_LOOP: ::c_int = 34; -pub const IP_ADD_MEMBERSHIP: ::c_int = 35; -pub const IP_DROP_MEMBERSHIP: ::c_int = 36; -pub const IP_UNBLOCK_SOURCE: ::c_int = 37; -pub const IP_BLOCK_SOURCE: ::c_int = 38; -pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 39; -pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 40; -pub const IP_MSFILTER: ::c_int = 41; -pub const IP_MULTICAST_ALL: ::c_int = 49; -pub const IP_UNICAST_IF: ::c_int = 50; - -pub const IP_DEFAULT_MULTICAST_TTL: ::c_int = 1; -pub const IP_DEFAULT_MULTICAST_LOOP: ::c_int = 1; - -pub const IP_PMTUDISC_DONT: ::c_int = 0; -pub const IP_PMTUDISC_WANT: ::c_int = 1; -pub const IP_PMTUDISC_DO: ::c_int = 2; -pub const IP_PMTUDISC_PROBE: ::c_int = 3; -pub const IP_PMTUDISC_INTERFACE: ::c_int = 4; -pub const IP_PMTUDISC_OMIT: ::c_int = 5; - -// IPPROTO_IP defined in src/unix/mod.rs -/// Hop-by-hop option header -pub const IPPROTO_HOPOPTS: ::c_int = 0; -// IPPROTO_ICMP defined in src/unix/mod.rs -/// group mgmt protocol -pub const IPPROTO_IGMP: ::c_int = 2; -/// for compatibility -pub const IPPROTO_IPIP: ::c_int = 4; -// IPPROTO_TCP defined in src/unix/mod.rs -/// exterior gateway protocol -pub const IPPROTO_EGP: ::c_int = 8; -/// pup -pub const IPPROTO_PUP: ::c_int = 12; -// IPPROTO_UDP defined in src/unix/mod.rs -/// xns idp -pub const IPPROTO_IDP: ::c_int = 22; -/// tp-4 w/ class negotiation -pub const IPPROTO_TP: ::c_int = 29; -/// DCCP -pub const IPPROTO_DCCP: ::c_int = 33; -// IPPROTO_IPV6 defined in src/unix/mod.rs -/// IP6 routing header -pub const IPPROTO_ROUTING: ::c_int = 43; -/// IP6 fragmentation header -pub const IPPROTO_FRAGMENT: ::c_int = 44; -/// resource reservation -pub const IPPROTO_RSVP: ::c_int = 46; -/// General Routing Encap. -pub const IPPROTO_GRE: ::c_int = 47; -/// IP6 Encap Sec. Payload -pub const IPPROTO_ESP: ::c_int = 50; -/// IP6 Auth Header -pub const IPPROTO_AH: ::c_int = 51; -// IPPROTO_ICMPV6 defined in src/unix/mod.rs -/// IP6 no next header -pub const IPPROTO_NONE: ::c_int = 59; -/// IP6 destination option -pub const IPPROTO_DSTOPTS: ::c_int = 60; -pub const IPPROTO_MTP: ::c_int = 92; -/// encapsulation header -pub const IPPROTO_ENCAP: ::c_int = 98; -/// Protocol indep. multicast -pub const IPPROTO_PIM: ::c_int = 103; -/// IP Payload Comp. Protocol -pub const IPPROTO_COMP: ::c_int = 108; -/// SCTP -pub const IPPROTO_SCTP: ::c_int = 132; -pub const IPPROTO_MH: ::c_int = 135; -pub const IPPROTO_UDPLITE: ::c_int = 136; -/// raw IP packet -pub const IPPROTO_RAW: ::c_int = 255; -pub const IPPROTO_BEETPH: ::c_int = 94; -pub const IPPROTO_MPLS: ::c_int = 137; -/// Multipath TCP -pub const IPPROTO_MPTCP: ::c_int = 262; - -pub const MCAST_EXCLUDE: ::c_int = 0; -pub const MCAST_INCLUDE: ::c_int = 1; -pub const MCAST_JOIN_GROUP: ::c_int = 42; -pub const MCAST_BLOCK_SOURCE: ::c_int = 43; -pub const MCAST_UNBLOCK_SOURCE: ::c_int = 44; -pub const MCAST_LEAVE_GROUP: ::c_int = 45; -pub const MCAST_JOIN_SOURCE_GROUP: ::c_int = 46; -pub const MCAST_LEAVE_SOURCE_GROUP: ::c_int = 47; -pub const MCAST_MSFILTER: ::c_int = 48; - -pub const IPV6_ADDRFORM: ::c_int = 1; -pub const IPV6_2292PKTINFO: ::c_int = 2; -pub const IPV6_2292HOPOPTS: ::c_int = 3; -pub const IPV6_2292DSTOPTS: ::c_int = 4; -pub const IPV6_2292RTHDR: ::c_int = 5; -pub const IPV6_2292PKTOPTIONS: ::c_int = 6; -pub const IPV6_CHECKSUM: ::c_int = 7; -pub const IPV6_2292HOPLIMIT: ::c_int = 8; -pub const IPV6_NEXTHOP: ::c_int = 9; -pub const IPV6_AUTHHDR: ::c_int = 10; -pub const IPV6_UNICAST_HOPS: ::c_int = 16; -pub const IPV6_MULTICAST_IF: ::c_int = 17; -pub const IPV6_MULTICAST_HOPS: ::c_int = 18; -pub const IPV6_MULTICAST_LOOP: ::c_int = 19; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; -pub const IPV6_ROUTER_ALERT: ::c_int = 22; -pub const IPV6_MTU_DISCOVER: ::c_int = 23; -pub const IPV6_MTU: ::c_int = 24; -pub const IPV6_RECVERR: ::c_int = 25; -pub const IPV6_V6ONLY: ::c_int = 26; -pub const IPV6_JOIN_ANYCAST: ::c_int = 27; -pub const IPV6_LEAVE_ANYCAST: ::c_int = 28; -pub const IPV6_IPSEC_POLICY: ::c_int = 34; -pub const IPV6_XFRM_POLICY: ::c_int = 35; -pub const IPV6_HDRINCL: ::c_int = 36; -pub const IPV6_RECVPKTINFO: ::c_int = 49; -pub const IPV6_PKTINFO: ::c_int = 50; -pub const IPV6_RECVHOPLIMIT: ::c_int = 51; -pub const IPV6_HOPLIMIT: ::c_int = 52; -pub const IPV6_RECVHOPOPTS: ::c_int = 53; -pub const IPV6_HOPOPTS: ::c_int = 54; -pub const IPV6_RTHDRDSTOPTS: ::c_int = 55; -pub const IPV6_RECVRTHDR: ::c_int = 56; -pub const IPV6_RTHDR: ::c_int = 57; -pub const IPV6_RECVDSTOPTS: ::c_int = 58; -pub const IPV6_DSTOPTS: ::c_int = 59; -pub const IPV6_RECVPATHMTU: ::c_int = 60; -pub const IPV6_PATHMTU: ::c_int = 61; -pub const IPV6_DONTFRAG: ::c_int = 62; -pub const IPV6_RECVTCLASS: ::c_int = 66; -pub const IPV6_TCLASS: ::c_int = 67; -pub const IPV6_AUTOFLOWLABEL: ::c_int = 70; -pub const IPV6_ADDR_PREFERENCES: ::c_int = 72; -pub const IPV6_MINHOPCOUNT: ::c_int = 73; -pub const IPV6_ORIGDSTADDR: ::c_int = 74; -pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR; -pub const IPV6_TRANSPARENT: ::c_int = 75; -pub const IPV6_UNICAST_IF: ::c_int = 76; -pub const IPV6_PREFER_SRC_TMP: ::c_int = 0x0001; -pub const IPV6_PREFER_SRC_PUBLIC: ::c_int = 0x0002; -pub const IPV6_PREFER_SRC_PUBTMP_DEFAULT: ::c_int = 0x0100; -pub const IPV6_PREFER_SRC_COA: ::c_int = 0x0004; -pub const IPV6_PREFER_SRC_HOME: ::c_int = 0x0400; -pub const IPV6_PREFER_SRC_CGA: ::c_int = 0x0008; -pub const IPV6_PREFER_SRC_NONCGA: ::c_int = 0x0800; - -pub const IPV6_PMTUDISC_DONT: ::c_int = 0; -pub const IPV6_PMTUDISC_WANT: ::c_int = 1; -pub const IPV6_PMTUDISC_DO: ::c_int = 2; -pub const IPV6_PMTUDISC_PROBE: ::c_int = 3; -pub const IPV6_PMTUDISC_INTERFACE: ::c_int = 4; -pub const IPV6_PMTUDISC_OMIT: ::c_int = 5; - -pub const TCP_NODELAY: ::c_int = 1; -pub const TCP_MAXSEG: ::c_int = 2; -pub const TCP_CORK: ::c_int = 3; -pub const TCP_KEEPIDLE: ::c_int = 4; -pub const TCP_KEEPINTVL: ::c_int = 5; -pub const TCP_KEEPCNT: ::c_int = 6; -pub const TCP_SYNCNT: ::c_int = 7; -pub const TCP_LINGER2: ::c_int = 8; -pub const TCP_DEFER_ACCEPT: ::c_int = 9; -pub const TCP_WINDOW_CLAMP: ::c_int = 10; -pub const TCP_INFO: ::c_int = 11; -pub const TCP_QUICKACK: ::c_int = 12; -pub const TCP_CONGESTION: ::c_int = 13; -pub const TCP_MD5SIG: ::c_int = 14; -cfg_if! { - if #[cfg(all(target_os = "linux", any( - target_env = "gnu", - target_env = "musl", - target_env = "ohos" - )))] { - // WARN: deprecated - pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15; - } -} -pub const TCP_THIN_LINEAR_TIMEOUTS: ::c_int = 16; -pub const TCP_THIN_DUPACK: ::c_int = 17; -pub const TCP_USER_TIMEOUT: ::c_int = 18; -pub const TCP_REPAIR: ::c_int = 19; -pub const TCP_REPAIR_QUEUE: ::c_int = 20; -pub const TCP_QUEUE_SEQ: ::c_int = 21; -pub const TCP_REPAIR_OPTIONS: ::c_int = 22; -pub const TCP_FASTOPEN: ::c_int = 23; -pub const TCP_TIMESTAMP: ::c_int = 24; -pub const TCP_NOTSENT_LOWAT: ::c_int = 25; -pub const TCP_CC_INFO: ::c_int = 26; -pub const TCP_SAVE_SYN: ::c_int = 27; -pub const TCP_SAVED_SYN: ::c_int = 28; -cfg_if! { - if #[cfg(not(target_os = "emscripten"))] { - // NOTE: emscripten doesn't support these options yet. - - pub const TCP_REPAIR_WINDOW: ::c_int = 29; - pub const TCP_FASTOPEN_CONNECT: ::c_int = 30; - pub const TCP_ULP: ::c_int = 31; - pub const TCP_MD5SIG_EXT: ::c_int = 32; - pub const TCP_FASTOPEN_KEY: ::c_int = 33; - pub const TCP_FASTOPEN_NO_COOKIE: ::c_int = 34; - pub const TCP_ZEROCOPY_RECEIVE: ::c_int = 35; - pub const TCP_INQ: ::c_int = 36; - pub const TCP_CM_INQ: ::c_int = TCP_INQ; - // NOTE: Some CI images doesn't have this option yet. - // pub const TCP_TX_DELAY: ::c_int = 37; - pub const TCP_MD5SIG_MAXKEYLEN: usize = 80; - } -} - -pub const SO_DEBUG: ::c_int = 1; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; - -pub const SS_ONSTACK: ::c_int = 1; -pub const SS_DISABLE: ::c_int = 2; - -pub const PATH_MAX: ::c_int = 4096; - -pub const UIO_MAXIOV: ::c_int = 1024; - -pub const FD_SETSIZE: usize = 1024; - -pub const EPOLLIN: ::c_int = 0x1; -pub const EPOLLPRI: ::c_int = 0x2; -pub const EPOLLOUT: ::c_int = 0x4; -pub const EPOLLERR: ::c_int = 0x8; -pub const EPOLLHUP: ::c_int = 0x10; -pub const EPOLLRDNORM: ::c_int = 0x40; -pub const EPOLLRDBAND: ::c_int = 0x80; -pub const EPOLLWRNORM: ::c_int = 0x100; -pub const EPOLLWRBAND: ::c_int = 0x200; -pub const EPOLLMSG: ::c_int = 0x400; -pub const EPOLLRDHUP: ::c_int = 0x2000; -pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000; -pub const EPOLLWAKEUP: ::c_int = 0x20000000; -pub const EPOLLONESHOT: ::c_int = 0x40000000; -pub const EPOLLET: ::c_int = 0x80000000; - -pub const EPOLL_CTL_ADD: ::c_int = 1; -pub const EPOLL_CTL_MOD: ::c_int = 3; -pub const EPOLL_CTL_DEL: ::c_int = 2; - -pub const MNT_FORCE: ::c_int = 0x1; -pub const MNT_DETACH: ::c_int = 0x2; -pub const MNT_EXPIRE: ::c_int = 0x4; -pub const UMOUNT_NOFOLLOW: ::c_int = 0x8; - -pub const Q_GETFMT: ::c_int = 0x800004; -pub const Q_GETINFO: ::c_int = 0x800005; -pub const Q_SETINFO: ::c_int = 0x800006; -pub const QIF_BLIMITS: u32 = 1; -pub const QIF_SPACE: u32 = 2; -pub const QIF_ILIMITS: u32 = 4; -pub const QIF_INODES: u32 = 8; -pub const QIF_BTIME: u32 = 16; -pub const QIF_ITIME: u32 = 32; -pub const QIF_LIMITS: u32 = 5; -pub const QIF_USAGE: u32 = 10; -pub const QIF_TIMES: u32 = 48; -pub const QIF_ALL: u32 = 63; - -pub const Q_SYNC: ::c_int = 0x800001; -pub const Q_QUOTAON: ::c_int = 0x800002; -pub const Q_QUOTAOFF: ::c_int = 0x800003; -pub const Q_GETQUOTA: ::c_int = 0x800007; -pub const Q_SETQUOTA: ::c_int = 0x800008; - -pub const TCIOFF: ::c_int = 2; -pub const TCION: ::c_int = 3; -pub const TCOOFF: ::c_int = 0; -pub const TCOON: ::c_int = 1; -pub const TCIFLUSH: ::c_int = 0; -pub const TCOFLUSH: ::c_int = 1; -pub const TCIOFLUSH: ::c_int = 2; -pub const NL0: ::tcflag_t = 0x00000000; -pub const NL1: ::tcflag_t = 0x00000100; -pub const TAB0: ::tcflag_t = 0x00000000; -pub const CR0: ::tcflag_t = 0x00000000; -pub const FF0: ::tcflag_t = 0x00000000; -pub const BS0: ::tcflag_t = 0x00000000; -pub const VT0: ::tcflag_t = 0x00000000; -pub const VERASE: usize = 2; -pub const VKILL: usize = 3; -pub const VINTR: usize = 0; -pub const VQUIT: usize = 1; -pub const VLNEXT: usize = 15; -pub const IGNBRK: ::tcflag_t = 0x00000001; -pub const BRKINT: ::tcflag_t = 0x00000002; -pub const IGNPAR: ::tcflag_t = 0x00000004; -pub const PARMRK: ::tcflag_t = 0x00000008; -pub const INPCK: ::tcflag_t = 0x00000010; -pub const ISTRIP: ::tcflag_t = 0x00000020; -pub const INLCR: ::tcflag_t = 0x00000040; -pub const IGNCR: ::tcflag_t = 0x00000080; -pub const ICRNL: ::tcflag_t = 0x00000100; -pub const IXANY: ::tcflag_t = 0x00000800; -pub const IMAXBEL: ::tcflag_t = 0x00002000; -pub const OPOST: ::tcflag_t = 0x1; -pub const CS5: ::tcflag_t = 0x00000000; -pub const CRTSCTS: ::tcflag_t = 0x80000000; -pub const ECHO: ::tcflag_t = 0x00000008; -pub const OCRNL: ::tcflag_t = 0o000010; -pub const ONOCR: ::tcflag_t = 0o000020; -pub const ONLRET: ::tcflag_t = 0o000040; -pub const OFILL: ::tcflag_t = 0o000100; -pub const OFDEL: ::tcflag_t = 0o000200; - -pub const CLONE_VM: ::c_int = 0x100; -pub const CLONE_FS: ::c_int = 0x200; -pub const CLONE_FILES: ::c_int = 0x400; -pub const CLONE_SIGHAND: ::c_int = 0x800; -pub const CLONE_PTRACE: ::c_int = 0x2000; -pub const CLONE_VFORK: ::c_int = 0x4000; -pub const CLONE_PARENT: ::c_int = 0x8000; -pub const CLONE_THREAD: ::c_int = 0x10000; -pub const CLONE_NEWNS: ::c_int = 0x20000; -pub const CLONE_SYSVSEM: ::c_int = 0x40000; -pub const CLONE_SETTLS: ::c_int = 0x80000; -pub const CLONE_PARENT_SETTID: ::c_int = 0x100000; -pub const CLONE_CHILD_CLEARTID: ::c_int = 0x200000; -pub const CLONE_DETACHED: ::c_int = 0x400000; -pub const CLONE_UNTRACED: ::c_int = 0x800000; -pub const CLONE_CHILD_SETTID: ::c_int = 0x01000000; -pub const CLONE_NEWCGROUP: ::c_int = 0x02000000; -pub const CLONE_NEWUTS: ::c_int = 0x04000000; -pub const CLONE_NEWIPC: ::c_int = 0x08000000; -pub const CLONE_NEWUSER: ::c_int = 0x10000000; -pub const CLONE_NEWPID: ::c_int = 0x20000000; -pub const CLONE_NEWNET: ::c_int = 0x40000000; -pub const CLONE_IO: ::c_int = 0x80000000; - -pub const WNOHANG: ::c_int = 0x00000001; -pub const WUNTRACED: ::c_int = 0x00000002; -pub const WSTOPPED: ::c_int = WUNTRACED; -pub const WEXITED: ::c_int = 0x00000004; -pub const WCONTINUED: ::c_int = 0x00000008; -pub const WNOWAIT: ::c_int = 0x01000000; - -// Options for personality(2). -pub const ADDR_NO_RANDOMIZE: ::c_int = 0x0040000; -pub const MMAP_PAGE_ZERO: ::c_int = 0x0100000; -pub const ADDR_COMPAT_LAYOUT: ::c_int = 0x0200000; -pub const READ_IMPLIES_EXEC: ::c_int = 0x0400000; -pub const ADDR_LIMIT_32BIT: ::c_int = 0x0800000; -pub const SHORT_INODE: ::c_int = 0x1000000; -pub const WHOLE_SECONDS: ::c_int = 0x2000000; -pub const STICKY_TIMEOUTS: ::c_int = 0x4000000; -pub const ADDR_LIMIT_3GB: ::c_int = 0x8000000; - -// Options set using PTRACE_SETOPTIONS. -pub const PTRACE_O_TRACESYSGOOD: ::c_int = 0x00000001; -pub const PTRACE_O_TRACEFORK: ::c_int = 0x00000002; -pub const PTRACE_O_TRACEVFORK: ::c_int = 0x00000004; -pub const PTRACE_O_TRACECLONE: ::c_int = 0x00000008; -pub const PTRACE_O_TRACEEXEC: ::c_int = 0x00000010; -pub const PTRACE_O_TRACEVFORKDONE: ::c_int = 0x00000020; -pub const PTRACE_O_TRACEEXIT: ::c_int = 0x00000040; -pub const PTRACE_O_TRACESECCOMP: ::c_int = 0x00000080; -pub const PTRACE_O_SUSPEND_SECCOMP: ::c_int = 0x00200000; -pub const PTRACE_O_EXITKILL: ::c_int = 0x00100000; -pub const PTRACE_O_MASK: ::c_int = 0x003000ff; - -// Wait extended result codes for the above trace options. -pub const PTRACE_EVENT_FORK: ::c_int = 1; -pub const PTRACE_EVENT_VFORK: ::c_int = 2; -pub const PTRACE_EVENT_CLONE: ::c_int = 3; -pub const PTRACE_EVENT_EXEC: ::c_int = 4; -pub const PTRACE_EVENT_VFORK_DONE: ::c_int = 5; -pub const PTRACE_EVENT_EXIT: ::c_int = 6; -pub const PTRACE_EVENT_SECCOMP: ::c_int = 7; - -pub const __WNOTHREAD: ::c_int = 0x20000000; -pub const __WALL: ::c_int = 0x40000000; -pub const __WCLONE: ::c_int = 0x80000000; - -pub const SPLICE_F_MOVE: ::c_uint = 0x01; -pub const SPLICE_F_NONBLOCK: ::c_uint = 0x02; -pub const SPLICE_F_MORE: ::c_uint = 0x04; -pub const SPLICE_F_GIFT: ::c_uint = 0x08; - -pub const RTLD_LOCAL: ::c_int = 0; -pub const RTLD_LAZY: ::c_int = 1; - -pub const POSIX_FADV_NORMAL: ::c_int = 0; -pub const POSIX_FADV_RANDOM: ::c_int = 1; -pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_FADV_WILLNEED: ::c_int = 3; - -pub const AT_FDCWD: ::c_int = -100; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x100; -pub const AT_REMOVEDIR: ::c_int = 0x200; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; -pub const AT_NO_AUTOMOUNT: ::c_int = 0x800; -pub const AT_EMPTY_PATH: ::c_int = 0x1000; -pub const AT_RECURSIVE: ::c_int = 0x8000; - -pub const LOG_CRON: ::c_int = 9 << 3; -pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -pub const LOG_FTP: ::c_int = 11 << 3; -pub const LOG_PERROR: ::c_int = 0x20; - -pub const PIPE_BUF: usize = 4096; - -pub const SI_LOAD_SHIFT: ::c_uint = 16; - -// si_code values for SIGBUS signal -pub const BUS_ADRALN: ::c_int = 1; -pub const BUS_ADRERR: ::c_int = 2; -pub const BUS_OBJERR: ::c_int = 3; -// Linux-specific si_code values for SIGBUS signal -pub const BUS_MCEERR_AR: ::c_int = 4; -pub const BUS_MCEERR_AO: ::c_int = 5; - -// si_code values for SIGCHLD signal -pub const CLD_EXITED: ::c_int = 1; -pub const CLD_KILLED: ::c_int = 2; -pub const CLD_DUMPED: ::c_int = 3; -pub const CLD_TRAPPED: ::c_int = 4; -pub const CLD_STOPPED: ::c_int = 5; -pub const CLD_CONTINUED: ::c_int = 6; - -pub const SIGEV_SIGNAL: ::c_int = 0; -pub const SIGEV_NONE: ::c_int = 1; -pub const SIGEV_THREAD: ::c_int = 2; - -pub const P_ALL: idtype_t = 0; -pub const P_PID: idtype_t = 1; -pub const P_PGID: idtype_t = 2; -cfg_if! { - if #[cfg(not(target_os = "emscripten"))] { - pub const P_PIDFD: idtype_t = 3; - } -} - -pub const UTIME_OMIT: c_long = 1073741822; -pub const UTIME_NOW: c_long = 1073741823; - -pub const POLLIN: ::c_short = 0x1; -pub const POLLPRI: ::c_short = 0x2; -pub const POLLOUT: ::c_short = 0x4; -pub const POLLERR: ::c_short = 0x8; -pub const POLLHUP: ::c_short = 0x10; -pub const POLLNVAL: ::c_short = 0x20; -pub const POLLRDNORM: ::c_short = 0x040; -pub const POLLRDBAND: ::c_short = 0x080; -#[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))] -pub const POLLRDHUP: ::c_short = 0x2000; -#[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] -pub const POLLRDHUP: ::c_short = 0x800; - -pub const IPTOS_LOWDELAY: u8 = 0x10; -pub const IPTOS_THROUGHPUT: u8 = 0x08; -pub const IPTOS_RELIABILITY: u8 = 0x04; -pub const IPTOS_MINCOST: u8 = 0x02; - -pub const IPTOS_PREC_NETCONTROL: u8 = 0xe0; -pub const IPTOS_PREC_INTERNETCONTROL: u8 = 0xc0; -pub const IPTOS_PREC_CRITIC_ECP: u8 = 0xa0; -pub const IPTOS_PREC_FLASHOVERRIDE: u8 = 0x80; -pub const IPTOS_PREC_FLASH: u8 = 0x60; -pub const IPTOS_PREC_IMMEDIATE: u8 = 0x40; -pub const IPTOS_PREC_PRIORITY: u8 = 0x20; -pub const IPTOS_PREC_ROUTINE: u8 = 0x00; - -pub const IPTOS_ECN_MASK: u8 = 0x03; -pub const IPTOS_ECN_ECT1: u8 = 0x01; -pub const IPTOS_ECN_ECT0: u8 = 0x02; -pub const IPTOS_ECN_CE: u8 = 0x03; - -pub const IPOPT_COPY: u8 = 0x80; -pub const IPOPT_CLASS_MASK: u8 = 0x60; -pub const IPOPT_NUMBER_MASK: u8 = 0x1f; - -pub const IPOPT_CONTROL: u8 = 0x00; -pub const IPOPT_RESERVED1: u8 = 0x20; -pub const IPOPT_MEASUREMENT: u8 = 0x40; -pub const IPOPT_RESERVED2: u8 = 0x60; -pub const IPOPT_END: u8 = 0 | IPOPT_CONTROL; -pub const IPOPT_NOOP: u8 = 1 | IPOPT_CONTROL; -pub const IPOPT_SEC: u8 = 2 | IPOPT_CONTROL | IPOPT_COPY; -pub const IPOPT_LSRR: u8 = 3 | IPOPT_CONTROL | IPOPT_COPY; -pub const IPOPT_TIMESTAMP: u8 = 4 | IPOPT_MEASUREMENT; -pub const IPOPT_RR: u8 = 7 | IPOPT_CONTROL; -pub const IPOPT_SID: u8 = 8 | IPOPT_CONTROL | IPOPT_COPY; -pub const IPOPT_SSRR: u8 = 9 | IPOPT_CONTROL | IPOPT_COPY; -pub const IPOPT_RA: u8 = 20 | IPOPT_CONTROL | IPOPT_COPY; -pub const IPVERSION: u8 = 4; -pub const MAXTTL: u8 = 255; -pub const IPDEFTTL: u8 = 64; -pub const IPOPT_OPTVAL: u8 = 0; -pub const IPOPT_OLEN: u8 = 1; -pub const IPOPT_OFFSET: u8 = 2; -pub const IPOPT_MINOFF: u8 = 4; -pub const MAX_IPOPTLEN: u8 = 40; -pub const IPOPT_NOP: u8 = IPOPT_NOOP; -pub const IPOPT_EOL: u8 = IPOPT_END; -pub const IPOPT_TS: u8 = IPOPT_TIMESTAMP; -pub const IPOPT_TS_TSONLY: u8 = 0; -pub const IPOPT_TS_TSANDADDR: u8 = 1; -pub const IPOPT_TS_PRESPEC: u8 = 3; - -pub const ARPOP_RREQUEST: u16 = 3; -pub const ARPOP_RREPLY: u16 = 4; -pub const ARPOP_InREQUEST: u16 = 8; -pub const ARPOP_InREPLY: u16 = 9; -pub const ARPOP_NAK: u16 = 10; - -pub const ATF_NETMASK: ::c_int = 0x20; -pub const ATF_DONTPUB: ::c_int = 0x40; - -pub const ARPHRD_NETROM: u16 = 0; -pub const ARPHRD_ETHER: u16 = 1; -pub const ARPHRD_EETHER: u16 = 2; -pub const ARPHRD_AX25: u16 = 3; -pub const ARPHRD_PRONET: u16 = 4; -pub const ARPHRD_CHAOS: u16 = 5; -pub const ARPHRD_IEEE802: u16 = 6; -pub const ARPHRD_ARCNET: u16 = 7; -pub const ARPHRD_APPLETLK: u16 = 8; -pub const ARPHRD_DLCI: u16 = 15; -pub const ARPHRD_ATM: u16 = 19; -pub const ARPHRD_METRICOM: u16 = 23; -pub const ARPHRD_IEEE1394: u16 = 24; -pub const ARPHRD_EUI64: u16 = 27; -pub const ARPHRD_INFINIBAND: u16 = 32; - -pub const ARPHRD_SLIP: u16 = 256; -pub const ARPHRD_CSLIP: u16 = 257; -pub const ARPHRD_SLIP6: u16 = 258; -pub const ARPHRD_CSLIP6: u16 = 259; -pub const ARPHRD_RSRVD: u16 = 260; -pub const ARPHRD_ADAPT: u16 = 264; -pub const ARPHRD_ROSE: u16 = 270; -pub const ARPHRD_X25: u16 = 271; -pub const ARPHRD_HWX25: u16 = 272; -pub const ARPHRD_CAN: u16 = 280; -pub const ARPHRD_PPP: u16 = 512; -pub const ARPHRD_CISCO: u16 = 513; -pub const ARPHRD_HDLC: u16 = ARPHRD_CISCO; -pub const ARPHRD_LAPB: u16 = 516; -pub const ARPHRD_DDCMP: u16 = 517; -pub const ARPHRD_RAWHDLC: u16 = 518; - -pub const ARPHRD_TUNNEL: u16 = 768; -pub const ARPHRD_TUNNEL6: u16 = 769; -pub const ARPHRD_FRAD: u16 = 770; -pub const ARPHRD_SKIP: u16 = 771; -pub const ARPHRD_LOOPBACK: u16 = 772; -pub const ARPHRD_LOCALTLK: u16 = 773; -pub const ARPHRD_FDDI: u16 = 774; -pub const ARPHRD_BIF: u16 = 775; -pub const ARPHRD_SIT: u16 = 776; -pub const ARPHRD_IPDDP: u16 = 777; -pub const ARPHRD_IPGRE: u16 = 778; -pub const ARPHRD_PIMREG: u16 = 779; -pub const ARPHRD_HIPPI: u16 = 780; -pub const ARPHRD_ASH: u16 = 781; -pub const ARPHRD_ECONET: u16 = 782; -pub const ARPHRD_IRDA: u16 = 783; -pub const ARPHRD_FCPP: u16 = 784; -pub const ARPHRD_FCAL: u16 = 785; -pub const ARPHRD_FCPL: u16 = 786; -pub const ARPHRD_FCFABRIC: u16 = 787; -pub const ARPHRD_IEEE802_TR: u16 = 800; -pub const ARPHRD_IEEE80211: u16 = 801; -pub const ARPHRD_IEEE80211_PRISM: u16 = 802; -pub const ARPHRD_IEEE80211_RADIOTAP: u16 = 803; -pub const ARPHRD_IEEE802154: u16 = 804; - -pub const ARPHRD_VOID: u16 = 0xFFFF; -pub const ARPHRD_NONE: u16 = 0xFFFE; - -cfg_if! { - if #[cfg(target_os = "emscripten")] { - // Emscripten does not define any `*_SUPER_MAGIC` constants. - } else if #[cfg(not(target_arch = "s390x"))] { - pub const ADFS_SUPER_MAGIC: ::c_long = 0x0000adf5; - pub const AFFS_SUPER_MAGIC: ::c_long = 0x0000adff; - pub const AFS_SUPER_MAGIC: ::c_long = 0x5346414f; - pub const AUTOFS_SUPER_MAGIC: ::c_long = 0x0187; - pub const BPF_FS_MAGIC: ::c_long = 0xcafe4a11; - pub const BTRFS_SUPER_MAGIC: ::c_long = 0x9123683e; - pub const CGROUP2_SUPER_MAGIC: ::c_long = 0x63677270; - pub const CGROUP_SUPER_MAGIC: ::c_long = 0x27e0eb; - pub const CODA_SUPER_MAGIC: ::c_long = 0x73757245; - pub const CRAMFS_MAGIC: ::c_long = 0x28cd3d45; - pub const DEBUGFS_MAGIC: ::c_long = 0x64626720; - pub const DEVPTS_SUPER_MAGIC: ::c_long = 0x1cd1; - pub const ECRYPTFS_SUPER_MAGIC: ::c_long = 0xf15f; - pub const EFS_SUPER_MAGIC: ::c_long = 0x00414a53; - pub const EXT2_SUPER_MAGIC: ::c_long = 0x0000ef53; - pub const EXT3_SUPER_MAGIC: ::c_long = 0x0000ef53; - pub const EXT4_SUPER_MAGIC: ::c_long = 0x0000ef53; - pub const F2FS_SUPER_MAGIC: ::c_long = 0xf2f52010; - pub const FUSE_SUPER_MAGIC: ::c_long = 0x65735546; - pub const FUTEXFS_SUPER_MAGIC: ::c_long = 0xbad1dea; - pub const HOSTFS_SUPER_MAGIC: ::c_long = 0x00c0ffee; - pub const HPFS_SUPER_MAGIC: ::c_long = 0xf995e849; - pub const HUGETLBFS_MAGIC: ::c_long = 0x958458f6; - pub const ISOFS_SUPER_MAGIC: ::c_long = 0x00009660; - pub const JFFS2_SUPER_MAGIC: ::c_long = 0x000072b6; - pub const MINIX2_SUPER_MAGIC2: ::c_long = 0x00002478; - pub const MINIX2_SUPER_MAGIC: ::c_long = 0x00002468; - pub const MINIX3_SUPER_MAGIC: ::c_long = 0x4d5a; - pub const MINIX_SUPER_MAGIC2: ::c_long = 0x0000138f; - pub const MINIX_SUPER_MAGIC: ::c_long = 0x0000137f; - pub const MSDOS_SUPER_MAGIC: ::c_long = 0x00004d44; - pub const NCP_SUPER_MAGIC: ::c_long = 0x0000564c; - pub const NFS_SUPER_MAGIC: ::c_long = 0x00006969; - pub const NILFS_SUPER_MAGIC: ::c_long = 0x3434; - pub const OCFS2_SUPER_MAGIC: ::c_long = 0x7461636f; - pub const OPENPROM_SUPER_MAGIC: ::c_long = 0x00009fa1; - pub const OVERLAYFS_SUPER_MAGIC: ::c_long = 0x794c7630; - pub const PROC_SUPER_MAGIC: ::c_long = 0x00009fa0; - pub const QNX4_SUPER_MAGIC: ::c_long = 0x0000002f; - pub const QNX6_SUPER_MAGIC: ::c_long = 0x68191122; - pub const RDTGROUP_SUPER_MAGIC: ::c_long = 0x7655821; - pub const REISERFS_SUPER_MAGIC: ::c_long = 0x52654973; - pub const SECURITYFS_MAGIC: ::c_long = 0x73636673; - pub const SELINUX_MAGIC: ::c_long = 0xf97cff8c; - pub const SMACK_MAGIC: ::c_long = 0x43415d53; - pub const SMB_SUPER_MAGIC: ::c_long = 0x0000517b; - pub const SYSFS_MAGIC: ::c_long = 0x62656572; - pub const TMPFS_MAGIC: ::c_long = 0x01021994; - pub const TRACEFS_MAGIC: ::c_long = 0x74726163; - pub const UDF_SUPER_MAGIC: ::c_long = 0x15013346; - pub const USBDEVICE_SUPER_MAGIC: ::c_long = 0x00009fa2; - pub const XENFS_SUPER_MAGIC: ::c_long = 0xabba1974; - pub const NSFS_MAGIC: ::c_long = 0x6e736673; - } else if #[cfg(target_arch = "s390x")] { - pub const ADFS_SUPER_MAGIC: ::c_uint = 0x0000adf5; - pub const AFFS_SUPER_MAGIC: ::c_uint = 0x0000adff; - pub const AFS_SUPER_MAGIC: ::c_uint = 0x5346414f; - pub const AUTOFS_SUPER_MAGIC: ::c_uint = 0x0187; - pub const BPF_FS_MAGIC: ::c_uint = 0xcafe4a11; - pub const BTRFS_SUPER_MAGIC: ::c_uint = 0x9123683e; - pub const CGROUP2_SUPER_MAGIC: ::c_uint = 0x63677270; - pub const CGROUP_SUPER_MAGIC: ::c_uint = 0x27e0eb; - pub const CODA_SUPER_MAGIC: ::c_uint = 0x73757245; - pub const CRAMFS_MAGIC: ::c_uint = 0x28cd3d45; - pub const DEBUGFS_MAGIC: ::c_uint = 0x64626720; - pub const DEVPTS_SUPER_MAGIC: ::c_uint = 0x1cd1; - pub const ECRYPTFS_SUPER_MAGIC: ::c_uint = 0xf15f; - pub const EFS_SUPER_MAGIC: ::c_uint = 0x00414a53; - pub const EXT2_SUPER_MAGIC: ::c_uint = 0x0000ef53; - pub const EXT3_SUPER_MAGIC: ::c_uint = 0x0000ef53; - pub const EXT4_SUPER_MAGIC: ::c_uint = 0x0000ef53; - pub const F2FS_SUPER_MAGIC: ::c_uint = 0xf2f52010; - pub const FUSE_SUPER_MAGIC: ::c_uint = 0x65735546; - pub const FUTEXFS_SUPER_MAGIC: ::c_uint = 0xbad1dea; - pub const HOSTFS_SUPER_MAGIC: ::c_uint = 0x00c0ffee; - pub const HPFS_SUPER_MAGIC: ::c_uint = 0xf995e849; - pub const HUGETLBFS_MAGIC: ::c_uint = 0x958458f6; - pub const ISOFS_SUPER_MAGIC: ::c_uint = 0x00009660; - pub const JFFS2_SUPER_MAGIC: ::c_uint = 0x000072b6; - pub const MINIX2_SUPER_MAGIC2: ::c_uint = 0x00002478; - pub const MINIX2_SUPER_MAGIC: ::c_uint = 0x00002468; - pub const MINIX3_SUPER_MAGIC: ::c_uint = 0x4d5a; - pub const MINIX_SUPER_MAGIC2: ::c_uint = 0x0000138f; - pub const MINIX_SUPER_MAGIC: ::c_uint = 0x0000137f; - pub const MSDOS_SUPER_MAGIC: ::c_uint = 0x00004d44; - pub const NCP_SUPER_MAGIC: ::c_uint = 0x0000564c; - pub const NFS_SUPER_MAGIC: ::c_uint = 0x00006969; - pub const NILFS_SUPER_MAGIC: ::c_uint = 0x3434; - pub const OCFS2_SUPER_MAGIC: ::c_uint = 0x7461636f; - pub const OPENPROM_SUPER_MAGIC: ::c_uint = 0x00009fa1; - pub const OVERLAYFS_SUPER_MAGIC: ::c_uint = 0x794c7630; - pub const PROC_SUPER_MAGIC: ::c_uint = 0x00009fa0; - pub const QNX4_SUPER_MAGIC: ::c_uint = 0x0000002f; - pub const QNX6_SUPER_MAGIC: ::c_uint = 0x68191122; - pub const RDTGROUP_SUPER_MAGIC: ::c_uint = 0x7655821; - pub const REISERFS_SUPER_MAGIC: ::c_uint = 0x52654973; - pub const SECURITYFS_MAGIC: ::c_uint = 0x73636673; - pub const SELINUX_MAGIC: ::c_uint = 0xf97cff8c; - pub const SMACK_MAGIC: ::c_uint = 0x43415d53; - pub const SMB_SUPER_MAGIC: ::c_uint = 0x0000517b; - pub const SYSFS_MAGIC: ::c_uint = 0x62656572; - pub const TMPFS_MAGIC: ::c_uint = 0x01021994; - pub const TRACEFS_MAGIC: ::c_uint = 0x74726163; - pub const UDF_SUPER_MAGIC: ::c_uint = 0x15013346; - pub const USBDEVICE_SUPER_MAGIC: ::c_uint = 0x00009fa2; - pub const XENFS_SUPER_MAGIC: ::c_uint = 0xabba1974; - pub const NSFS_MAGIC: ::c_uint = 0x6e736673; - } -} - -const_fn! { - {const} fn CMSG_ALIGN(len: usize) -> usize { - len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) - } -} - -f! { - pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { - (*mhdr).msg_control as *mut cmsghdr - } else { - 0 as *mut cmsghdr - } - } - - pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut ::c_uchar { - cmsg.offset(1) as *mut ::c_uchar - } - - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) - as ::c_uint - } - - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length - } - - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - (*set).fds_bits[fd / size] &= !(1 << (fd % size)); - return - } - - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 - } - - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - (*set).fds_bits[fd / size] |= 1 << (fd % size); - return - } - - pub fn FD_ZERO(set: *mut fd_set) -> () { - for slot in (*set).fds_bits.iter_mut() { - *slot = 0; - } - } -} - -safe_f! { - pub fn SIGRTMAX() -> ::c_int { - unsafe { __libc_current_sigrtmax() } - } - - pub fn SIGRTMIN() -> ::c_int { - unsafe { __libc_current_sigrtmin() } - } - - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { - (status & 0xff) == 0x7f - } - - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { - (status >> 8) & 0xff - } - - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { - status == 0xffff - } - - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { - ((status & 0x7f) + 1) as i8 >= 2 - } - - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { - status & 0x7f - } - - pub {const} fn WIFEXITED(status: ::c_int) -> bool { - (status & 0x7f) == 0 - } - - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { - (status >> 8) & 0xff - } - - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { - (status & 0x80) != 0 - } - - pub {const} fn W_EXITCODE(ret: ::c_int, sig: ::c_int) -> ::c_int { - (ret << 8) | sig - } - - pub {const} fn W_STOPCODE(sig: ::c_int) -> ::c_int { - (sig << 8) | 0x7f - } - - pub {const} fn QCMD(cmd: ::c_int, type_: ::c_int) -> ::c_int { - (cmd << 8) | (type_ & 0x00ff) - } - - pub {const} fn IPOPT_COPIED(o: u8) -> u8 { - o & IPOPT_COPY - } - - pub {const} fn IPOPT_CLASS(o: u8) -> u8 { - o & IPOPT_CLASS_MASK - } - - pub {const} fn IPOPT_NUMBER(o: u8) -> u8 { - o & IPOPT_NUMBER_MASK - } - - pub {const} fn IPTOS_ECN(x: u8) -> u8 { - x & ::IPTOS_ECN_MASK - } - - #[allow(ellipsis_inclusive_range_patterns)] - pub {const} fn KERNEL_VERSION(a: u32, b: u32, c: u32) -> u32 { - ((a << 16) + (b << 8)) + match c { - 0 ... 255 => c, - _ => 255, - } - } -} - -extern "C" { - #[doc(hidden)] - pub fn __libc_current_sigrtmax() -> ::c_int; - #[doc(hidden)] - pub fn __libc_current_sigrtmin() -> ::c_int; - - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn mincore(addr: *mut ::c_void, len: ::size_t, vec: *mut ::c_uchar) -> ::c_int; - - pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; - - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - - pub fn pthread_getattr_np(native: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn setgroups(ngroups: ::size_t, ptr: *const ::gid_t) -> ::c_int; - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: dev_t, - ) -> ::c_int; - pub fn pthread_condattr_getclock( - attr: *const pthread_condattr_t, - clock_id: *mut clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_setclock( - attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_mutexattr_setpshared( - attr: *mut pthread_mutexattr_t, - pshared: ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_getpshared( - attr: *const pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; - pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> ::c_int; - pub fn clearenv() -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; - pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int; - pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int; - pub fn acct(filename: *const ::c_char) -> ::c_int; - pub fn brk(addr: *mut ::c_void) -> ::c_int; - pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; - #[deprecated( - since = "0.2.66", - note = "causes memory corruption, see rust-lang/libc#1596" - )] - pub fn vfork() -> ::pid_t; - pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; - pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; - pub fn wait4( - pid: ::pid_t, - status: *mut ::c_int, - options: ::c_int, - rusage: *mut ::rusage, - ) -> ::pid_t; - pub fn login_tty(fd: ::c_int) -> ::c_int; - pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - pub fn fexecve( - fd: ::c_int, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; - pub fn freeifaddrs(ifa: *mut ::ifaddrs); - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; - - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - - pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn uname(buf: *mut ::utsname) -> ::c_int; - - pub fn strchrnul(s: *const ::c_char, c: ::c_int) -> *mut ::c_char; -} - -// LFS64 extensions -// -// * musl has 64-bit versions only so aliases the LFS64 symbols to the standard ones -// * ulibc doesn't have preadv64/pwritev64 -cfg_if! { - if #[cfg(not(target_env = "musl"))] { - extern "C" { - pub fn fstatfs64(fd: ::c_int, buf: *mut statfs64) -> ::c_int; - pub fn statvfs64(path: *const ::c_char, buf: *mut statvfs64) -> ::c_int; - pub fn fstatvfs64(fd: ::c_int, buf: *mut statvfs64) -> ::c_int; - pub fn statfs64(path: *const ::c_char, buf: *mut statfs64) -> ::c_int; - pub fn creat64(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn fstat64(fildes: ::c_int, buf: *mut stat64) -> ::c_int; - pub fn fstatat64( - dirfd: ::c_int, - pathname: *const c_char, - buf: *mut stat64, - flags: ::c_int, - ) -> ::c_int; - pub fn ftruncate64(fd: ::c_int, length: off64_t) -> ::c_int; - pub fn lseek64(fd: ::c_int, offset: off64_t, whence: ::c_int) -> off64_t; - pub fn lstat64(path: *const c_char, buf: *mut stat64) -> ::c_int; - pub fn mmap64( - addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, - offset: off64_t, - ) -> *mut ::c_void; - pub fn open64(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn openat64(fd: ::c_int, path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn posix_fadvise64( - fd: ::c_int, - offset: ::off64_t, - len: ::off64_t, - advise: ::c_int, - ) -> ::c_int; - pub fn pread64( - fd: ::c_int, - buf: *mut ::c_void, - count: ::size_t, - offset: off64_t - ) -> ::ssize_t; - pub fn pwrite64( - fd: ::c_int, - buf: *const ::c_void, - count: ::size_t, - offset: off64_t, - ) -> ::ssize_t; - pub fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64; - pub fn readdir64_r( - dirp: *mut ::DIR, - entry: *mut ::dirent64, - result: *mut *mut ::dirent64, - ) -> ::c_int; - pub fn stat64(path: *const c_char, buf: *mut stat64) -> ::c_int; - pub fn truncate64(path: *const c_char, length: off64_t) -> ::c_int; - } - } -} - -cfg_if! { - if #[cfg(not(any(target_env = "uclibc", target_env = "musl")))] { - extern "C" { - pub fn preadv64( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - ) -> ::ssize_t; - pub fn pwritev64( - fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t, - ) -> ::ssize_t; - } - } -} - -cfg_if! { - if #[cfg(not(target_env = "uclibc"))] { - extern "C" { - // uclibc has separate non-const version of this function - pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *const termios, - winp: *const ::winsize, - ) -> ::pid_t; - // uclibc has separate non-const version of this function - pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *const termios, - winp: *const ::winsize, - ) -> ::c_int; - } - } -} - -cfg_if! { - if #[cfg(target_os = "emscripten")] { - mod emscripten; - pub use self::emscripten::*; - } else if #[cfg(target_os = "linux")] { - mod linux; - pub use self::linux::*; - } else if #[cfg(target_os = "l4re")] { - mod linux; - pub use self::linux::*; - } else if #[cfg(target_os = "android")] { - mod android; - pub use self::android::*; - } else { - // Unknown target_os - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/mod.rs deleted file mode 100644 index 762470a7f..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/mod.rs +++ /dev/null @@ -1,1625 +0,0 @@ -//! Definitions found commonly among almost all Unix derivatives -//! -//! More functions and definitions can be found in the more specific modules -//! according to the platform in question. - -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; -pub type intmax_t = i64; -pub type uintmax_t = u64; - -pub type size_t = usize; -pub type ptrdiff_t = isize; -pub type intptr_t = isize; -pub type uintptr_t = usize; -pub type ssize_t = isize; - -pub type pid_t = i32; -pub type in_addr_t = u32; -pub type in_port_t = u16; -pub type sighandler_t = ::size_t; -pub type cc_t = ::c_uchar; - -cfg_if! { - if #[cfg(any(target_os = "espidf", target_os = "horizon", target_os = "vita"))] { - pub type uid_t = ::c_ushort; - pub type gid_t = ::c_ushort; - } else if #[cfg(target_os = "nto")] { - pub type uid_t = i32; - pub type gid_t = i32; - } else { - pub type uid_t = u32; - pub type gid_t = u32; - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum DIR {} -impl ::Copy for DIR {} -impl ::Clone for DIR { - fn clone(&self) -> DIR { - *self - } -} -pub type locale_t = *mut ::c_void; - -s! { - pub struct group { - pub gr_name: *mut ::c_char, - pub gr_passwd: *mut ::c_char, - pub gr_gid: ::gid_t, - pub gr_mem: *mut *mut ::c_char, - } - - pub struct utimbuf { - pub actime: time_t, - pub modtime: time_t, - } - - pub struct timeval { - pub tv_sec: time_t, - pub tv_usec: suseconds_t, - } - - // linux x32 compatibility - // See https://sourceware.org/bugzilla/show_bug.cgi?id=16437 - pub struct timespec { - pub tv_sec: time_t, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - pub tv_nsec: i64, - #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] - pub tv_nsec: ::c_long, - } - - pub struct rlimit { - pub rlim_cur: rlim_t, - pub rlim_max: rlim_t, - } - - pub struct rusage { - pub ru_utime: timeval, - pub ru_stime: timeval, - pub ru_maxrss: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad1: u32, - pub ru_ixrss: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad2: u32, - pub ru_idrss: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad3: u32, - pub ru_isrss: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad4: u32, - pub ru_minflt: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad5: u32, - pub ru_majflt: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad6: u32, - pub ru_nswap: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad7: u32, - pub ru_inblock: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad8: u32, - pub ru_oublock: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad9: u32, - pub ru_msgsnd: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad10: u32, - pub ru_msgrcv: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad11: u32, - pub ru_nsignals: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad12: u32, - pub ru_nvcsw: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad13: u32, - pub ru_nivcsw: c_long, - #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] - __pad14: u32, - - #[cfg(any(target_env = "musl", target_env = "ohos", target_os = "emscripten"))] - __reserved: [c_long; 16], - } - - pub struct ipv6_mreq { - pub ipv6mr_multiaddr: in6_addr, - #[cfg(target_os = "android")] - pub ipv6mr_interface: ::c_int, - #[cfg(not(target_os = "android"))] - pub ipv6mr_interface: ::c_uint, - } - - pub struct hostent { - pub h_name: *mut ::c_char, - pub h_aliases: *mut *mut ::c_char, - pub h_addrtype: ::c_int, - pub h_length: ::c_int, - pub h_addr_list: *mut *mut ::c_char, - } - - pub struct iovec { - pub iov_base: *mut ::c_void, - pub iov_len: ::size_t, - } - - pub struct pollfd { - pub fd: ::c_int, - pub events: ::c_short, - pub revents: ::c_short, - } - - pub struct winsize { - pub ws_row: ::c_ushort, - pub ws_col: ::c_ushort, - pub ws_xpixel: ::c_ushort, - pub ws_ypixel: ::c_ushort, - } - - pub struct linger { - pub l_onoff: ::c_int, - pub l_linger: ::c_int, - } - - pub struct sigval { - // Actually a union of an int and a void* - pub sival_ptr: *mut ::c_void - } - - // - pub struct itimerval { - pub it_interval: ::timeval, - pub it_value: ::timeval, - } - - // - pub struct tms { - pub tms_utime: ::clock_t, - pub tms_stime: ::clock_t, - pub tms_cutime: ::clock_t, - pub tms_cstime: ::clock_t, - } - - pub struct servent { - pub s_name: *mut ::c_char, - pub s_aliases: *mut *mut ::c_char, - pub s_port: ::c_int, - pub s_proto: *mut ::c_char, - } - - pub struct protoent { - pub p_name: *mut ::c_char, - pub p_aliases: *mut *mut ::c_char, - pub p_proto: ::c_int, - } -} - -pub const INT_MIN: c_int = -2147483648; -pub const INT_MAX: c_int = 2147483647; - -pub const SIG_DFL: sighandler_t = 0 as sighandler_t; -pub const SIG_IGN: sighandler_t = 1 as sighandler_t; -pub const SIG_ERR: sighandler_t = !0 as sighandler_t; -cfg_if! { - if #[cfg(not(target_os = "nto"))] { - pub const DT_UNKNOWN: u8 = 0; - pub const DT_FIFO: u8 = 1; - pub const DT_CHR: u8 = 2; - pub const DT_DIR: u8 = 4; - pub const DT_BLK: u8 = 6; - pub const DT_REG: u8 = 8; - pub const DT_LNK: u8 = 10; - pub const DT_SOCK: u8 = 12; - } -} -cfg_if! { - if #[cfg(not(target_os = "redox"))] { - pub const FD_CLOEXEC: ::c_int = 0x1; - } -} - -cfg_if! { - if #[cfg(not(target_os = "nto"))] - { - pub const USRQUOTA: ::c_int = 0; - pub const GRPQUOTA: ::c_int = 1; - } -} -pub const SIGIOT: ::c_int = 6; - -pub const S_ISUID: ::mode_t = 0x800; -pub const S_ISGID: ::mode_t = 0x400; -pub const S_ISVTX: ::mode_t = 0x200; - -cfg_if! { - if #[cfg(not(any(target_os = "haiku", target_os = "illumos", - target_os = "solaris")))] { - pub const IF_NAMESIZE: ::size_t = 16; - pub const IFNAMSIZ: ::size_t = IF_NAMESIZE; - } -} - -pub const LOG_EMERG: ::c_int = 0; -pub const LOG_ALERT: ::c_int = 1; -pub const LOG_CRIT: ::c_int = 2; -pub const LOG_ERR: ::c_int = 3; -pub const LOG_WARNING: ::c_int = 4; -pub const LOG_NOTICE: ::c_int = 5; -pub const LOG_INFO: ::c_int = 6; -pub const LOG_DEBUG: ::c_int = 7; - -pub const LOG_KERN: ::c_int = 0; -pub const LOG_USER: ::c_int = 1 << 3; -pub const LOG_MAIL: ::c_int = 2 << 3; -pub const LOG_DAEMON: ::c_int = 3 << 3; -pub const LOG_AUTH: ::c_int = 4 << 3; -pub const LOG_SYSLOG: ::c_int = 5 << 3; -pub const LOG_LPR: ::c_int = 6 << 3; -pub const LOG_NEWS: ::c_int = 7 << 3; -pub const LOG_UUCP: ::c_int = 8 << 3; -pub const LOG_LOCAL0: ::c_int = 16 << 3; -pub const LOG_LOCAL1: ::c_int = 17 << 3; -pub const LOG_LOCAL2: ::c_int = 18 << 3; -pub const LOG_LOCAL3: ::c_int = 19 << 3; -pub const LOG_LOCAL4: ::c_int = 20 << 3; -pub const LOG_LOCAL5: ::c_int = 21 << 3; -pub const LOG_LOCAL6: ::c_int = 22 << 3; -pub const LOG_LOCAL7: ::c_int = 23 << 3; - -cfg_if! { - if #[cfg(not(target_os = "haiku"))] { - pub const LOG_PID: ::c_int = 0x01; - pub const LOG_CONS: ::c_int = 0x02; - pub const LOG_ODELAY: ::c_int = 0x04; - pub const LOG_NDELAY: ::c_int = 0x08; - pub const LOG_NOWAIT: ::c_int = 0x10; - } -} -pub const LOG_PRIMASK: ::c_int = 7; -pub const LOG_FACMASK: ::c_int = 0x3f8; - -cfg_if! { - if #[cfg(not(target_os = "nto"))] - { - pub const PRIO_MIN: ::c_int = -20; - pub const PRIO_MAX: ::c_int = 20; - } -} -pub const IPPROTO_ICMP: ::c_int = 1; -pub const IPPROTO_ICMPV6: ::c_int = 58; -pub const IPPROTO_TCP: ::c_int = 6; -pub const IPPROTO_UDP: ::c_int = 17; -pub const IPPROTO_IP: ::c_int = 0; -pub const IPPROTO_IPV6: ::c_int = 41; - -pub const INADDR_LOOPBACK: in_addr_t = 2130706433; -pub const INADDR_ANY: in_addr_t = 0; -pub const INADDR_BROADCAST: in_addr_t = 4294967295; -pub const INADDR_NONE: in_addr_t = 4294967295; - -pub const ARPOP_REQUEST: u16 = 1; -pub const ARPOP_REPLY: u16 = 2; - -pub const ATF_COM: ::c_int = 0x02; -pub const ATF_PERM: ::c_int = 0x04; -pub const ATF_PUBL: ::c_int = 0x08; -pub const ATF_USETRAILERS: ::c_int = 0x10; - -cfg_if! { - if #[cfg(any(target_os = "l4re", target_os = "espidf"))] { - // required libraries for L4Re and the ESP-IDF framework are linked externally, ATM - } else if #[cfg(feature = "std")] { - // cargo build, don't pull in anything extra as the libstd dep - // already pulls in all libs. - } else if #[cfg(all(target_os = "linux", - any(target_env = "gnu", target_env = "uclibc"), - feature = "rustc-dep-of-std"))] { - #[link(name = "util", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "rt", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "pthread", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "m", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "dl", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "c", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "gcc_eh", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "gcc", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "c", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "util", cfg(not(target_feature = "crt-static")))] - #[link(name = "rt", cfg(not(target_feature = "crt-static")))] - #[link(name = "pthread", cfg(not(target_feature = "crt-static")))] - #[link(name = "m", cfg(not(target_feature = "crt-static")))] - #[link(name = "dl", cfg(not(target_feature = "crt-static")))] - #[link(name = "c", cfg(not(target_feature = "crt-static")))] - extern {} - } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { - #[cfg_attr(feature = "rustc-dep-of-std", - link(name = "c", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static")))] - #[cfg_attr(feature = "rustc-dep-of-std", - link(name = "c", cfg(not(target_feature = "crt-static"))))] - extern {} - } else if #[cfg(target_os = "emscripten")] { - #[link(name = "c")] - extern {} - } else if #[cfg(all(target_os = "android", feature = "rustc-dep-of-std"))] { - #[link(name = "c", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "m", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static"))] - #[link(name = "m", cfg(not(target_feature = "crt-static")))] - #[link(name = "c", cfg(not(target_feature = "crt-static")))] - extern {} - } else if #[cfg(any(target_os = "macos", - target_os = "ios", - target_os = "tvos", - target_os = "watchos", - target_os = "android", - target_os = "openbsd", - target_os = "nto", - ))] { - #[link(name = "c")] - #[link(name = "m")] - extern {} - } else if #[cfg(target_os = "haiku")] { - #[link(name = "root")] - #[link(name = "network")] - extern {} - } else if #[cfg(target_env = "newlib")] { - #[link(name = "c")] - #[link(name = "m")] - extern {} - } else if #[cfg(target_os = "hermit")] { - // no_default_libraries is set to false for HermitCore, so only a link - // to "pthread" needs to be added. - #[link(name = "pthread")] - extern {} - } else if #[cfg(target_env = "illumos")] { - #[link(name = "c")] - #[link(name = "m")] - extern {} - } else if #[cfg(target_os = "redox")] { - #[cfg_attr(feature = "rustc-dep-of-std", - link(name = "c", kind = "static", modifiers = "-bundle", - cfg(target_feature = "crt-static")))] - #[cfg_attr(feature = "rustc-dep-of-std", - link(name = "c", cfg(not(target_feature = "crt-static"))))] - extern {} - } else if #[cfg(target_env = "aix")] { - #[link(name = "c")] - #[link(name = "m")] - #[link(name = "bsd")] - #[link(name = "pthread")] - extern {} - } else { - #[link(name = "c")] - #[link(name = "m")] - #[link(name = "rt")] - #[link(name = "pthread")] - extern {} - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum FILE {} -impl ::Copy for FILE {} -impl ::Clone for FILE { - fn clone(&self) -> FILE { - *self - } -} -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos_t {} -impl ::Clone for fpos_t { - fn clone(&self) -> fpos_t { - *self - } -} - -extern "C" { - pub fn isalnum(c: c_int) -> c_int; - pub fn isalpha(c: c_int) -> c_int; - pub fn iscntrl(c: c_int) -> c_int; - pub fn isdigit(c: c_int) -> c_int; - pub fn isgraph(c: c_int) -> c_int; - pub fn islower(c: c_int) -> c_int; - pub fn isprint(c: c_int) -> c_int; - pub fn ispunct(c: c_int) -> c_int; - pub fn isspace(c: c_int) -> c_int; - pub fn isupper(c: c_int) -> c_int; - pub fn isxdigit(c: c_int) -> c_int; - pub fn isblank(c: c_int) -> c_int; - pub fn tolower(c: c_int) -> c_int; - pub fn toupper(c: c_int) -> c_int; - pub fn qsort( - base: *mut c_void, - num: size_t, - size: size_t, - compar: ::Option c_int>, - ); - pub fn bsearch( - key: *const c_void, - base: *const c_void, - num: size_t, - size: size_t, - compar: ::Option c_int>, - ) -> *mut c_void; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "fopen$UNIX2003" - )] - pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "freopen$UNIX2003" - )] - pub fn freopen(filename: *const c_char, mode: *const c_char, file: *mut FILE) -> *mut FILE; - - pub fn fflush(file: *mut FILE) -> c_int; - pub fn fclose(file: *mut FILE) -> c_int; - pub fn remove(filename: *const c_char) -> c_int; - pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; - pub fn tmpfile() -> *mut FILE; - pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int; - pub fn setbuf(stream: *mut FILE, buf: *mut c_char); - pub fn getchar() -> c_int; - pub fn putchar(c: c_int) -> c_int; - pub fn fgetc(stream: *mut FILE) -> c_int; - pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; - pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "fputs$UNIX2003" - )] - pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; - pub fn puts(s: *const c_char) -> c_int; - pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; - pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "fwrite$UNIX2003" - )] - pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; - pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; - pub fn ftell(stream: *mut FILE) -> c_long; - pub fn rewind(stream: *mut FILE); - #[cfg_attr(target_os = "netbsd", link_name = "__fgetpos50")] - pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__fsetpos50")] - pub fn fsetpos(stream: *mut FILE, ptr: *const fpos_t) -> c_int; - pub fn feof(stream: *mut FILE) -> c_int; - pub fn ferror(stream: *mut FILE) -> c_int; - pub fn clearerr(stream: *mut FILE); - pub fn perror(s: *const c_char); - pub fn atof(s: *const c_char) -> c_double; - pub fn atoi(s: *const c_char) -> c_int; - pub fn atol(s: *const c_char) -> c_long; - pub fn atoll(s: *const c_char) -> c_longlong; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "strtod$UNIX2003" - )] - pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; - pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float; - pub fn strtol(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_long; - pub fn strtoll(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_longlong; - pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulong; - pub fn strtoull(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulonglong; - pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; - pub fn malloc(size: size_t) -> *mut c_void; - pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; - pub fn free(p: *mut c_void); - pub fn abort() -> !; - pub fn exit(status: c_int) -> !; - pub fn _exit(status: c_int) -> !; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "system$UNIX2003" - )] - pub fn system(s: *const c_char) -> c_int; - pub fn getenv(s: *const c_char) -> *mut c_char; - - pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; - pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; - pub fn stpcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; - pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; - pub fn strncat(s: *mut c_char, ct: *const c_char, n: size_t) -> *mut c_char; - pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; - pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; - pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; - pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char; - pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char; - pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t; - pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t; - pub fn strdup(cs: *const c_char) -> *mut c_char; - pub fn strndup(cs: *const c_char, n: size_t) -> *mut c_char; - pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; - pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; - pub fn strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; - pub fn strncasecmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; - pub fn strlen(cs: *const c_char) -> size_t; - pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "strerror$UNIX2003" - )] - pub fn strerror(n: c_int) -> *mut c_char; - pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; - pub fn strtok_r(s: *mut c_char, t: *const c_char, p: *mut *mut c_char) -> *mut c_char; - pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; - pub fn strsignal(sig: c_int) -> *mut c_char; - pub fn wcslen(buf: *const wchar_t) -> size_t; - pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; - - pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; - pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t; - pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; - pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; - pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; - pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; -} - -extern "C" { - #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam50")] - pub fn getpwnam(name: *const ::c_char) -> *mut passwd; - #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid50")] - pub fn getpwuid(uid: ::uid_t) -> *mut passwd; - - pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn printf(format: *const ::c_char, ...) -> ::c_int; - pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int; - pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; - #[cfg_attr( - all(target_os = "linux", not(target_env = "uclibc")), - link_name = "__isoc99_fscanf" - )] - pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - #[cfg_attr( - all(target_os = "linux", not(target_env = "uclibc")), - link_name = "__isoc99_scanf" - )] - pub fn scanf(format: *const ::c_char, ...) -> ::c_int; - #[cfg_attr( - all(target_os = "linux", not(target_env = "uclibc")), - link_name = "__isoc99_sscanf" - )] - pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn getchar_unlocked() -> ::c_int; - pub fn putchar_unlocked(c: ::c_int) -> ::c_int; - - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] - #[cfg_attr(target_os = "netbsd", link_name = "__socket30")] - #[cfg_attr(target_os = "illumos", link_name = "__xnet_socket")] - #[cfg_attr(target_os = "espidf", link_name = "lwip_socket")] - pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "connect$UNIX2003" - )] - #[cfg_attr(target_os = "illumos", link_name = "__xnet_connect")] - #[cfg_attr(target_os = "espidf", link_name = "lwip_connect")] - pub fn connect(socket: ::c_int, address: *const sockaddr, len: socklen_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "listen$UNIX2003" - )] - #[cfg_attr(target_os = "espidf", link_name = "lwip_listen")] - pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "accept$UNIX2003" - )] - #[cfg_attr(target_os = "espidf", link_name = "lwip_accept")] - pub fn accept(socket: ::c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "getpeername$UNIX2003" - )] - #[cfg_attr(target_os = "espidf", link_name = "lwip_getpeername")] - pub fn getpeername( - socket: ::c_int, - address: *mut sockaddr, - address_len: *mut socklen_t, - ) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "getsockname$UNIX2003" - )] - #[cfg_attr(target_os = "espidf", link_name = "lwip_getsockname")] - pub fn getsockname( - socket: ::c_int, - address: *mut sockaddr, - address_len: *mut socklen_t, - ) -> ::c_int; - #[cfg_attr(target_os = "espidf", link_name = "lwip_setsockopt")] - pub fn setsockopt( - socket: ::c_int, - level: ::c_int, - name: ::c_int, - value: *const ::c_void, - option_len: socklen_t, - ) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "socketpair$UNIX2003" - )] - #[cfg_attr(target_os = "illumos", link_name = "__xnet_socketpair")] - pub fn socketpair( - domain: ::c_int, - type_: ::c_int, - protocol: ::c_int, - socket_vector: *mut ::c_int, - ) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "sendto$UNIX2003" - )] - #[cfg_attr(target_os = "illumos", link_name = "__xnet_sendto")] - #[cfg_attr(target_os = "espidf", link_name = "lwip_sendto")] - pub fn sendto( - socket: ::c_int, - buf: *const ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *const sockaddr, - addrlen: socklen_t, - ) -> ::ssize_t; - #[cfg_attr(target_os = "espidf", link_name = "lwip_shutdown")] - pub fn shutdown(socket: ::c_int, how: ::c_int) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "chmod$UNIX2003" - )] - pub fn chmod(path: *const c_char, mode: mode_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "fchmod$UNIX2003" - )] - pub fn fchmod(fd: ::c_int, mode: mode_t) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", not(target_arch = "aarch64")), - link_name = "fstat$INODE64" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__fstat50")] - #[cfg_attr( - all(target_os = "freebsd", any(freebsd11, freebsd10)), - link_name = "fstat@FBSD_1.0" - )] - pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; - - pub fn mkdir(path: *const c_char, mode: mode_t) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", not(target_arch = "aarch64")), - link_name = "stat$INODE64" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__stat50")] - #[cfg_attr( - all(target_os = "freebsd", any(freebsd11, freebsd10)), - link_name = "stat@FBSD_1.0" - )] - pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; - - pub fn pclose(stream: *mut ::FILE) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "fdopen$UNIX2003" - )] - pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; - pub fn fileno(stream: *mut ::FILE) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "open$UNIX2003" - )] - pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "creat$UNIX2003" - )] - pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "fcntl$UNIX2003" - )] - pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86_64"), - link_name = "opendir$INODE64" - )] - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "opendir$INODE64$UNIX2003" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__opendir30")] - pub fn opendir(dirname: *const c_char) -> *mut ::DIR; - - #[cfg_attr( - all(target_os = "macos", not(target_arch = "aarch64")), - link_name = "readdir$INODE64" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__readdir30")] - #[cfg_attr( - all(target_os = "freebsd", any(freebsd11, freebsd10)), - link_name = "readdir@FBSD_1.0" - )] - pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "closedir$UNIX2003" - )] - pub fn closedir(dirp: *mut ::DIR) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86_64"), - link_name = "rewinddir$INODE64" - )] - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "rewinddir$INODE64$UNIX2003" - )] - pub fn rewinddir(dirp: *mut ::DIR); - - pub fn fchmodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - flags: ::c_int, - ) -> ::c_int; - pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; - pub fn fchownat( - dirfd: ::c_int, - pathname: *const ::c_char, - owner: ::uid_t, - group: ::gid_t, - flags: ::c_int, - ) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", not(target_arch = "aarch64")), - link_name = "fstatat$INODE64" - )] - #[cfg_attr( - all(target_os = "freebsd", any(freebsd11, freebsd10)), - link_name = "fstatat@FBSD_1.1" - )] - pub fn fstatat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut stat, - flags: ::c_int, - ) -> ::c_int; - pub fn linkat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - flags: ::c_int, - ) -> ::c_int; - pub fn renameat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - ) -> ::c_int; - pub fn symlinkat( - target: *const ::c_char, - newdirfd: ::c_int, - linkpath: *const ::c_char, - ) -> ::c_int; - pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int) -> ::c_int; - - pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; - pub fn alarm(seconds: ::c_uint) -> ::c_uint; - pub fn chdir(dir: *const c_char) -> ::c_int; - pub fn fchdir(dirfd: ::c_int) -> ::c_int; - pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "lchown$UNIX2003" - )] - pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "close$NOCANCEL$UNIX2003" - )] - #[cfg_attr( - all(target_os = "macos", target_arch = "x86_64"), - link_name = "close$NOCANCEL" - )] - pub fn close(fd: ::c_int) -> ::c_int; - pub fn dup(fd: ::c_int) -> ::c_int; - pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; - pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; - pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; - pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; - pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; - pub fn execve( - prog: *const c_char, - argv: *const *const c_char, - envp: *const *const c_char, - ) -> ::c_int; - pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; - pub fn fork() -> pid_t; - pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; - pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; - pub fn getegid() -> gid_t; - pub fn geteuid() -> uid_t; - pub fn getgid() -> gid_t; - pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int; - #[cfg_attr(target_os = "illumos", link_name = "getloginx")] - pub fn getlogin() -> *mut c_char; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "getopt$UNIX2003" - )] - pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int; - pub fn getpgid(pid: pid_t) -> pid_t; - pub fn getpgrp() -> pid_t; - pub fn getpid() -> pid_t; - pub fn getppid() -> pid_t; - pub fn getuid() -> uid_t; - pub fn isatty(fd: ::c_int) -> ::c_int; - pub fn link(src: *const c_char, dst: *const c_char) -> ::c_int; - pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; - pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; - pub fn pipe(fds: *mut ::c_int) -> ::c_int; - pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "read$UNIX2003" - )] - pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) -> ::ssize_t; - pub fn rmdir(path: *const c_char) -> ::c_int; - pub fn seteuid(uid: uid_t) -> ::c_int; - pub fn setegid(gid: gid_t) -> ::c_int; - pub fn setgid(gid: gid_t) -> ::c_int; - pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int; - pub fn setsid() -> pid_t; - pub fn setuid(uid: uid_t) -> ::c_int; - pub fn setreuid(ruid: uid_t, euid: uid_t) -> ::c_int; - pub fn setregid(rgid: gid_t, egid: gid_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "sleep$UNIX2003" - )] - pub fn sleep(secs: ::c_uint) -> ::c_uint; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "nanosleep$UNIX2003" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__nanosleep50")] - pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> ::c_int; - pub fn tcgetpgrp(fd: ::c_int) -> pid_t; - pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; - pub fn ttyname(fd: ::c_int) -> *mut c_char; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "ttyname_r$UNIX2003" - )] - #[cfg_attr(target_os = "illumos", link_name = "__posix_ttyname_r")] - pub fn ttyname_r(fd: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - pub fn unlink(c: *const c_char) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "wait$UNIX2003" - )] - pub fn wait(status: *mut ::c_int) -> pid_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "waitpid$UNIX2003" - )] - pub fn waitpid(pid: pid_t, status: *mut ::c_int, options: ::c_int) -> pid_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "write$UNIX2003" - )] - pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pread$UNIX2003" - )] - pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pwrite$UNIX2003" - )] - pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; - pub fn umask(mask: mode_t) -> mode_t; - - #[cfg_attr(target_os = "netbsd", link_name = "__utime50")] - pub fn utime(file: *const c_char, buf: *const utimbuf) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "kill$UNIX2003" - )] - pub fn kill(pid: pid_t, sig: ::c_int) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "killpg$UNIX2003" - )] - pub fn killpg(pgrp: pid_t, sig: ::c_int) -> ::c_int; - - pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn munlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn mlockall(flags: ::c_int) -> ::c_int; - pub fn munlockall() -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "mmap$UNIX2003" - )] - pub fn mmap( - addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, - offset: off_t, - ) -> *mut ::c_void; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "munmap$UNIX2003" - )] - pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; - - pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint; - pub fn if_indextoname(ifindex: ::c_uint, ifname: *mut ::c_char) -> *mut ::c_char; - - #[cfg_attr( - all(target_os = "macos", not(target_arch = "aarch64")), - link_name = "lstat$INODE64" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__lstat50")] - #[cfg_attr( - all(target_os = "freebsd", any(freebsd11, freebsd10)), - link_name = "lstat@FBSD_1.0" - )] - pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "fsync$UNIX2003" - )] - pub fn fsync(fd: ::c_int) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "setenv$UNIX2003" - )] - pub fn setenv(name: *const c_char, val: *const c_char, overwrite: ::c_int) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "unsetenv$UNIX2003" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__unsetenv13")] - pub fn unsetenv(name: *const c_char) -> ::c_int; - - pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; - - pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; - pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; - - pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; - - #[cfg_attr(target_os = "netbsd", link_name = "__getrusage50")] - pub fn getrusage(resource: ::c_int, usage: *mut rusage) -> ::c_int; - - #[cfg_attr( - any( - target_os = "macos", - target_os = "ios", - target_os = "tvos", - target_os = "watchos" - ), - link_name = "realpath$DARWIN_EXTSN" - )] - pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) -> *mut ::c_char; - - pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; - - #[cfg_attr(target_os = "netbsd", link_name = "__times13")] - pub fn times(buf: *mut ::tms) -> ::clock_t; - - pub fn pthread_self() -> ::pthread_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_join$UNIX2003" - )] - pub fn pthread_join(native: ::pthread_t, value: *mut *mut ::c_void) -> ::c_int; - pub fn pthread_exit(value: *mut ::c_void) -> !; - pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, stack_size: ::size_t) -> ::c_int; - pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, state: ::c_int) -> ::c_int; - pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__libc_thr_yield")] - pub fn sched_yield() -> ::c_int; - pub fn pthread_key_create( - key: *mut pthread_key_t, - dtor: ::Option, - ) -> ::c_int; - pub fn pthread_key_delete(key: pthread_key_t) -> ::c_int; - pub fn pthread_getspecific(key: pthread_key_t) -> *mut ::c_void; - pub fn pthread_setspecific(key: pthread_key_t, value: *const ::c_void) -> ::c_int; - pub fn pthread_mutex_init( - lock: *mut pthread_mutex_t, - attr: *const pthread_mutexattr_t, - ) -> ::c_int; - pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> ::c_int; - - pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_mutexattr_destroy$UNIX2003" - )] - pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> ::c_int; - pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, _type: ::c_int) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_cond_init$UNIX2003" - )] - pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) - -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_cond_wait$UNIX2003" - )] - pub fn pthread_cond_wait(cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_cond_timedwait$UNIX2003" - )] - pub fn pthread_cond_timedwait( - cond: *mut pthread_cond_t, - lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> ::c_int; - pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> ::c_int; - pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int; - pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> ::c_int; - pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_init$UNIX2003" - )] - pub fn pthread_rwlock_init( - lock: *mut pthread_rwlock_t, - attr: *const pthread_rwlockattr_t, - ) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_destroy$UNIX2003" - )] - pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_rdlock$UNIX2003" - )] - pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_tryrdlock$UNIX2003" - )] - pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_wrlock$UNIX2003" - )] - pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_trywrlock$UNIX2003" - )] - pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_unlock$UNIX2003" - )] - pub fn pthread_rwlock_unlock(lock: *mut pthread_rwlock_t) -> ::c_int; - pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) -> ::c_int; - pub fn pthread_rwlockattr_destroy(attr: *mut pthread_rwlockattr_t) -> ::c_int; - - #[cfg_attr(target_os = "illumos", link_name = "__xnet_getsockopt")] - #[cfg_attr(target_os = "espidf", link_name = "lwip_getsockopt")] - pub fn getsockopt( - sockfd: ::c_int, - level: ::c_int, - optname: ::c_int, - optval: *mut ::c_void, - optlen: *mut ::socklen_t, - ) -> ::c_int; - pub fn raise(signum: ::c_int) -> ::c_int; - - #[cfg_attr(target_os = "netbsd", link_name = "__utimes50")] - pub fn utimes(filename: *const ::c_char, times: *const ::timeval) -> ::c_int; - pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; - pub fn dlerror() -> *mut ::c_char; - pub fn dlsym(handle: *mut ::c_void, symbol: *const ::c_char) -> *mut ::c_void; - pub fn dlclose(handle: *mut ::c_void) -> ::c_int; - - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] - #[cfg_attr(target_os = "illumos", link_name = "__xnet_getaddrinfo")] - #[cfg_attr(target_os = "espidf", link_name = "lwip_getaddrinfo")] - pub fn getaddrinfo( - node: *const c_char, - service: *const c_char, - hints: *const addrinfo, - res: *mut *mut addrinfo, - ) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] - #[cfg_attr(target_os = "espidf", link_name = "lwip_freeaddrinfo")] - pub fn freeaddrinfo(res: *mut addrinfo); - pub fn hstrerror(errcode: ::c_int) -> *const ::c_char; - pub fn gai_strerror(errcode: ::c_int) -> *const ::c_char; - #[cfg_attr( - any( - all( - target_os = "linux", - not(any(target_env = "musl", target_env = "ohos")) - ), - target_os = "freebsd", - target_os = "dragonfly", - target_os = "haiku" - ), - link_name = "__res_init" - )] - #[cfg_attr( - any( - target_os = "macos", - target_os = "ios", - target_os = "tvos", - target_os = "watchos" - ), - link_name = "res_9_init" - )] - pub fn res_init() -> ::c_int; - - #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` - pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; - #[cfg_attr(target_os = "netbsd", link_name = "__localtime_r50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` - pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "mktime$UNIX2003" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__mktime50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` - pub fn mktime(tm: *mut tm) -> time_t; - #[cfg_attr(target_os = "netbsd", link_name = "__time50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` - pub fn time(time: *mut time_t) -> time_t; - #[cfg_attr(target_os = "netbsd", link_name = "__gmtime50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` - pub fn gmtime(time_p: *const time_t) -> *mut tm; - #[cfg_attr(target_os = "netbsd", link_name = "__locatime50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` - pub fn localtime(time_p: *const time_t) -> *mut tm; - #[cfg_attr(target_os = "netbsd", link_name = "__difftime50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` - pub fn difftime(time1: time_t, time0: time_t) -> ::c_double; - #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")] - #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] - // FIXME: for `time_t` - pub fn timegm(tm: *mut ::tm) -> time_t; - - #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] - #[cfg_attr( - all(target_os = "freebsd", any(freebsd11, freebsd10)), - link_name = "mknod@FBSD_1.0" - )] - pub fn mknod(pathname: *const ::c_char, mode: ::mode_t, dev: ::dev_t) -> ::c_int; - pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn endservent(); - pub fn getservbyname(name: *const ::c_char, proto: *const ::c_char) -> *mut servent; - pub fn getservbyport(port: ::c_int, proto: *const ::c_char) -> *mut servent; - pub fn getservent() -> *mut servent; - pub fn setservent(stayopen: ::c_int); - pub fn getprotobyname(name: *const ::c_char) -> *mut protoent; - pub fn getprotobynumber(proto: ::c_int) -> *mut protoent; - pub fn chroot(name: *const ::c_char) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "usleep$UNIX2003" - )] - pub fn usleep(secs: ::c_uint) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "send$UNIX2003" - )] - #[cfg_attr(target_os = "espidf", link_name = "lwip_send")] - pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "recv$UNIX2003" - )] - #[cfg_attr(target_os = "espidf", link_name = "lwip_recv")] - pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "putenv$UNIX2003" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__putenv50")] - pub fn putenv(string: *mut c_char) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "poll$UNIX2003" - )] - pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86_64"), - link_name = "select$1050" - )] - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "select$UNIX2003" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__select50")] - pub fn select( - nfds: ::c_int, - readfds: *mut fd_set, - writefds: *mut fd_set, - errorfds: *mut fd_set, - timeout: *mut timeval, - ) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__setlocale50")] - pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char; - pub fn localeconv() -> *mut lconv; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "sem_wait$UNIX2003" - )] - pub fn sem_wait(sem: *mut sem_t) -> ::c_int; - pub fn sem_trywait(sem: *mut sem_t) -> ::c_int; - pub fn sem_post(sem: *mut sem_t) -> ::c_int; - pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> ::c_int; - pub fn fstatvfs(fd: ::c_int, buf: *mut statvfs) -> ::c_int; - - #[cfg_attr(target_os = "netbsd", link_name = "__sigemptyset14")] - pub fn sigemptyset(set: *mut sigset_t) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__sigaddset14")] - pub fn sigaddset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__sigfillset14")] - pub fn sigfillset(set: *mut sigset_t) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__sigdelset14")] - pub fn sigdelset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__sigismember14")] - pub fn sigismember(set: *const sigset_t, signum: ::c_int) -> ::c_int; - - #[cfg_attr(target_os = "netbsd", link_name = "__sigprocmask14")] - pub fn sigprocmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__sigpending14")] - pub fn sigpending(set: *mut sigset_t) -> ::c_int; - - pub fn sysconf(name: ::c_int) -> ::c_long; - - pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; - - pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int; - pub fn ftello(stream: *mut ::FILE) -> ::off_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "tcdrain$UNIX2003" - )] - pub fn tcdrain(fd: ::c_int) -> ::c_int; - pub fn cfgetispeed(termios: *const ::termios) -> ::speed_t; - pub fn cfgetospeed(termios: *const ::termios) -> ::speed_t; - pub fn cfsetispeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; - pub fn cfsetospeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; - pub fn tcgetattr(fd: ::c_int, termios: *mut ::termios) -> ::c_int; - pub fn tcsetattr(fd: ::c_int, optional_actions: ::c_int, termios: *const ::termios) -> ::c_int; - pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int; - pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int; - pub fn tcgetsid(fd: ::c_int) -> ::pid_t; - pub fn tcsendbreak(fd: ::c_int, duration: ::c_int) -> ::c_int; - pub fn mkstemp(template: *mut ::c_char) -> ::c_int; - pub fn mkdtemp(template: *mut ::c_char) -> *mut ::c_char; - - pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char; - - pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int); - pub fn closelog(); - pub fn setlogmask(maskpri: ::c_int) -> ::c_int; - #[cfg_attr(target_os = "macos", link_name = "syslog$DARWIN_EXTSN")] - pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "nice$UNIX2003" - )] - pub fn nice(incr: ::c_int) -> ::c_int; - - pub fn grantpt(fd: ::c_int) -> ::c_int; - pub fn posix_openpt(flags: ::c_int) -> ::c_int; - pub fn ptsname(fd: ::c_int) -> *mut ::c_char; - pub fn unlockpt(fd: ::c_int) -> ::c_int; - - pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char; - pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t; - - pub fn lockf(fd: ::c_int, cmd: ::c_int, len: ::off_t) -> ::c_int; - -} -cfg_if! { - if #[cfg(not(any(target_os = "emscripten", - target_os = "android", - target_os = "haiku", - target_os = "nto")))] { - extern "C" { - pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> ::c_int; - pub fn stpncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; - } - } -} - -cfg_if! { - if #[cfg(not(target_os = "aix"))] { - extern "C" { - pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; - } - } -} - -cfg_if! { - if #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] { - extern "C" { - pub fn open_wmemstream( - ptr: *mut *mut wchar_t, - sizeloc: *mut size_t, - ) -> *mut FILE; - } - } -} - -cfg_if! { - if #[cfg(not(target_os = "redox"))] { - extern { - pub fn getsid(pid: pid_t) -> pid_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pause$UNIX2003")] - pub fn pause() -> ::c_int; - - pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t) -> ::c_int; - pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, - flags: ::c_int, ...) -> ::c_int; - - #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), - link_name = "fdopendir$INODE64")] - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "fdopendir$INODE64$UNIX2003")] - pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; - - #[cfg_attr(all(target_os = "macos", not(target_arch = "aarch64")), - link_name = "readdir_r$INODE64")] - #[cfg_attr(target_os = "netbsd", link_name = "__readdir_r30")] - #[cfg_attr( - all(target_os = "freebsd", any(freebsd11, freebsd10)), - link_name = "readdir_r@FBSD_1.0" - )] - #[allow(non_autolinks)] // FIXME: `<>` breaks line length limit. - /// The 64-bit libc on Solaris and illumos only has readdir_r. If a - /// 32-bit Solaris or illumos target is ever created, it should use - /// __posix_readdir_r. See libc(3LIB) on Solaris or illumos: - /// https://illumos.org/man/3lib/libc - /// https://docs.oracle.com/cd/E36784_01/html/E36873/libc-3lib.html - /// https://www.unix.com/man-page/opensolaris/3LIB/libc/ - pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, - result: *mut *mut ::dirent) -> ::c_int; - } - } -} - -cfg_if! { - if #[cfg(target_os = "nto")] { - extern { - pub fn readlinkat(dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut ::c_char, - bufsiz: ::size_t) -> ::c_int; - pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::c_int; - pub fn pselect( - nfds: ::c_int, - readfds: *mut fd_set, - writefds: *mut fd_set, - errorfds: *mut fd_set, - timeout: *mut timespec, - sigmask: *const sigset_t, - ) -> ::c_int; - } - } else { - extern { - pub fn readlinkat(dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut ::c_char, - bufsiz: ::size_t) -> ::ssize_t; - pub fn fmemopen(buf: *mut c_void, size: size_t, mode: *const c_char) -> *mut FILE; - pub fn open_memstream(ptr: *mut *mut c_char, sizeloc: *mut size_t) -> *mut FILE; - pub fn atexit(cb: extern "C" fn()) -> c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__sigaction14")] - pub fn sigaction( - signum: ::c_int, - act: *const sigaction, - oldact: *mut sigaction - ) -> ::c_int; - pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::ssize_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86_64"), - link_name = "pselect$1050" - )] - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "pselect$UNIX2003" - )] - #[cfg_attr(target_os = "netbsd", link_name = "__pselect50")] - pub fn pselect( - nfds: ::c_int, - readfds: *mut fd_set, - writefds: *mut fd_set, - errorfds: *mut fd_set, - timeout: *const timespec, - sigmask: *const sigset_t, - ) -> ::c_int; - } - } -} - -cfg_if! { - if #[cfg(not(any(target_os = "solaris", - target_os = "illumos", - target_os = "nto", - )))] { - extern { - pub fn cfmakeraw(termios: *mut ::termios); - pub fn cfsetspeed(termios: *mut ::termios, - speed: ::speed_t) -> ::c_int; - } - } -} - -cfg_if! { - if #[cfg(target_env = "newlib")] { - mod newlib; - pub use self::newlib::*; - } else if #[cfg(any(target_os = "linux", - target_os = "l4re", - target_os = "android", - target_os = "emscripten"))] { - mod linux_like; - pub use self::linux_like::*; - } else if #[cfg(any(target_os = "macos", - target_os = "ios", - target_os = "tvos", - target_os = "watchos", - target_os = "freebsd", - target_os = "dragonfly", - target_os = "openbsd", - target_os = "netbsd"))] { - mod bsd; - pub use self::bsd::*; - } else if #[cfg(any(target_os = "solaris", - target_os = "illumos"))] { - mod solarish; - pub use self::solarish::*; - } else if #[cfg(target_os = "haiku")] { - mod haiku; - pub use self::haiku::*; - } else if #[cfg(target_os = "hermit")] { - mod hermit; - pub use self::hermit::*; - } else if #[cfg(target_os = "redox")] { - mod redox; - pub use self::redox::*; - } else if #[cfg(target_os = "nto")] { - mod nto; - pub use self::nto::*; - } else if #[cfg(target_os = "aix")] { - mod aix; - pub use self::aix::*; - } else { - // Unknown target_os - } -} - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } else { - mod no_align; - pub use self::no_align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/aarch64/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/aarch64/mod.rs deleted file mode 100644 index d686b3692..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/newlib/aarch64/mod.rs +++ /dev/null @@ -1,54 +0,0 @@ -pub type clock_t = ::c_long; -pub type c_char = u8; -pub type wchar_t = u32; - -pub type c_long = i64; -pub type c_ulong = u64; - -s! { - pub struct sockaddr { - pub sa_len: u8, - pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_in6 { - pub sin6_len: u8, - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - } - - pub struct sockaddr_in { - pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], - } -} - -pub const AF_INET6: ::c_int = 23; - -pub const FIONBIO: ::c_ulong = 1; - -pub const POLLIN: ::c_short = 0x1; -pub const POLLPRI: ::c_short = 0x2; -pub const POLLOUT: ::c_short = 0x4; -pub const POLLERR: ::c_short = 0x8; -pub const POLLHUP: ::c_short = 0x10; -pub const POLLNVAL: ::c_short = 0x20; - -pub const SOL_SOCKET: ::c_int = 65535; - -pub const MSG_OOB: ::c_int = 1; -pub const MSG_PEEK: ::c_int = 2; -pub const MSG_DONTWAIT: ::c_int = 4; -pub const MSG_DONTROUTE: ::c_int = 0; -pub const MSG_WAITALL: ::c_int = 0; -pub const MSG_MORE: ::c_int = 0; -pub const MSG_NOSIGNAL: ::c_int = 0; - -pub use crate::unix::newlib::generic::{sigset_t, stat}; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/align.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/align.rs deleted file mode 100644 index db9beb835..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/newlib/align.rs +++ /dev/null @@ -1,61 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))), - repr(align(8)))] - pub struct pthread_mutex_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - #[cfg_attr(all(target_pointer_width = "32", - any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc")), - repr(align(4)))] - #[cfg_attr(any(target_pointer_width = "64", - not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))), - repr(align(8)))] - pub struct pthread_rwlock_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - #[cfg_attr(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64"), - repr(align(4)))] - #[cfg_attr(not(any(target_pointer_width = "32", - target_arch = "x86_64", - target_arch = "powerpc64", - target_arch = "mips64", - target_arch = "s390x", - target_arch = "sparc64")), - repr(align(8)))] - pub struct pthread_mutexattr_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - #[repr(align(8))] - pub struct pthread_cond_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - - #[repr(align(4))] - pub struct pthread_condattr_t { // Unverified - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - }; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/arm/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/arm/mod.rs deleted file mode 100644 index f644349cb..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/newlib/arm/mod.rs +++ /dev/null @@ -1,56 +0,0 @@ -pub type clock_t = ::c_long; -pub type c_char = u8; -pub type wchar_t = u32; - -pub type c_long = i32; -pub type c_ulong = u32; - -s! { - pub struct sockaddr { - pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_in6 { - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - } - - pub struct sockaddr_in { - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [u8; 8], - } - - pub struct sockaddr_storage { - pub ss_family: ::sa_family_t, - pub __ss_padding: [u8; 26], - } -} - -pub const AF_INET6: ::c_int = 23; - -pub const FIONBIO: ::c_ulong = 1; - -pub const POLLIN: ::c_short = 0x1; -pub const POLLPRI: ::c_short = 0x2; -pub const POLLHUP: ::c_short = 0x4; -pub const POLLERR: ::c_short = 0x8; -pub const POLLOUT: ::c_short = 0x10; -pub const POLLNVAL: ::c_short = 0x20; - -pub const SOL_SOCKET: ::c_int = 65535; - -pub const MSG_OOB: ::c_int = 1; -pub const MSG_PEEK: ::c_int = 2; -pub const MSG_DONTWAIT: ::c_int = 4; -pub const MSG_DONTROUTE: ::c_int = 0; -pub const MSG_WAITALL: ::c_int = 0; -pub const MSG_MORE: ::c_int = 0; -pub const MSG_NOSIGNAL: ::c_int = 0; - -pub use crate::unix::newlib::generic::{sigset_t, stat}; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/espidf/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/espidf/mod.rs deleted file mode 100644 index 804cd6645..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/newlib/espidf/mod.rs +++ /dev/null @@ -1,110 +0,0 @@ -pub type clock_t = ::c_ulong; -pub type c_char = i8; -pub type wchar_t = u32; - -pub type c_long = i32; -pub type c_ulong = u32; - -s! { - pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, - } - - pub struct sockaddr_un { - pub sun_family: ::sa_family_t, - pub sun_path: [::c_char; 108], - } - - pub struct sockaddr { - pub sa_len: u8, - pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_in6 { - pub sin6_len: u8, - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - } - - pub struct sockaddr_in { - pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], - } - - pub struct sockaddr_storage { - pub s2_len: u8, - pub ss_family: ::sa_family_t, - pub s2_data1: [::c_char; 2], - pub s2_data2: [u32; 3], - pub s2_data3: [u32; 3], - } -} - -pub const AF_UNIX: ::c_int = 1; -pub const AF_INET6: ::c_int = 10; - -pub const FIONBIO: ::c_ulong = 2147772030; - -pub const POLLIN: ::c_short = 1 << 0; -pub const POLLRDNORM: ::c_short = 1 << 1; -pub const POLLRDBAND: ::c_short = 1 << 2; -pub const POLLPRI: ::c_short = POLLRDBAND; -pub const POLLOUT: ::c_short = 1 << 3; -pub const POLLWRNORM: ::c_short = POLLOUT; -pub const POLLWRBAND: ::c_short = 1 << 4; -pub const POLLERR: ::c_short = 1 << 5; -pub const POLLHUP: ::c_short = 1 << 6; - -pub const SOL_SOCKET: ::c_int = 0xfff; - -pub const MSG_OOB: ::c_int = 0x04; -pub const MSG_PEEK: ::c_int = 0x01; -pub const MSG_DONTWAIT: ::c_int = 0x08; -pub const MSG_DONTROUTE: ::c_int = 0x4; -pub const MSG_WAITALL: ::c_int = 0x02; -pub const MSG_MORE: ::c_int = 0x10; -pub const MSG_NOSIGNAL: ::c_int = 0x20; -pub const MSG_TRUNC: ::c_int = 0x04; -pub const MSG_CTRUNC: ::c_int = 0x08; -pub const MSG_EOR: ::c_int = 0x08; - -pub const PTHREAD_STACK_MIN: ::size_t = 768; - -extern "C" { - pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(_: *mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; - - #[link_name = "lwip_sendmsg"] - pub fn sendmsg(s: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - #[link_name = "lwip_recvmsg"] - pub fn recvmsg(s: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; - - pub fn eventfd(initval: ::c_uint, flags: ::c_int) -> ::c_int; -} - -pub use crate::unix::newlib::generic::{sigset_t, stat}; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/generic.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/generic.rs deleted file mode 100644 index db7797f17..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/newlib/generic.rs +++ /dev/null @@ -1,27 +0,0 @@ -//! Common types used by most newlib platforms - -s! { - pub struct sigset_t { - __val: [::c_ulong; 16], - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_atime: ::time_t, - pub st_spare1: ::c_long, - pub st_mtime: ::time_t, - pub st_spare2: ::c_long, - pub st_ctime: ::time_t, - pub st_spare3: ::c_long, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_spare4: [::c_long; 2usize], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/horizon/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/horizon/mod.rs deleted file mode 100644 index bcb93ad9d..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/newlib/horizon/mod.rs +++ /dev/null @@ -1,268 +0,0 @@ -//! ARMv6K Nintendo 3DS C Newlib definitions - -pub type c_char = u8; -pub type c_long = i32; -pub type c_ulong = u32; - -pub type wchar_t = ::c_uint; - -pub type u_register_t = ::c_uint; -pub type u_char = ::c_uchar; -pub type u_short = ::c_ushort; -pub type u_int = ::c_uint; -pub type u_long = c_ulong; -pub type ushort = ::c_ushort; -pub type uint = ::c_uint; -pub type ulong = c_ulong; -pub type clock_t = c_ulong; -pub type daddr_t = c_long; -pub type caddr_t = *mut c_char; -pub type sbintime_t = ::c_longlong; -pub type sigset_t = ::c_ulong; - -s! { - pub struct sockaddr { - pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 26usize], - } - - pub struct sockaddr_storage { - pub ss_family: ::sa_family_t, - pub __ss_padding: [::c_char; 26usize], - } - - pub struct sockaddr_in { - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - } - - pub struct sockaddr_in6 { - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - } - - pub struct sockaddr_un { - pub sun_len: ::c_uchar, - pub sun_family: ::sa_family_t, - pub sun_path: [::c_char; 104usize], - } - - pub struct sched_param { - pub sched_priority: ::c_int, - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_atim: ::timespec, - pub st_mtim: ::timespec, - pub st_ctim: ::timespec, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_spare4: [::c_long; 2usize], - } -} - -pub const SIGEV_NONE: ::c_int = 1; -pub const SIGEV_SIGNAL: ::c_int = 2; -pub const SIGEV_THREAD: ::c_int = 3; -pub const SA_NOCLDSTOP: ::c_int = 1; -pub const MINSIGSTKSZ: ::c_int = 2048; -pub const SIGSTKSZ: ::c_int = 8192; -pub const SS_ONSTACK: ::c_int = 1; -pub const SS_DISABLE: ::c_int = 2; -pub const SIG_SETMASK: ::c_int = 0; -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGTRAP: ::c_int = 5; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGBUS: ::c_int = 10; -pub const SIGSEGV: ::c_int = 11; -pub const SIGSYS: ::c_int = 12; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; -pub const SIGURG: ::c_int = 16; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGCONT: ::c_int = 19; -pub const SIGCHLD: ::c_int = 20; -pub const SIGCLD: ::c_int = 20; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGIO: ::c_int = 23; -pub const SIGPOLL: ::c_int = 23; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGLOST: ::c_int = 29; -pub const SIGUSR1: ::c_int = 30; -pub const SIGUSR2: ::c_int = 31; -pub const NSIG: ::c_int = 32; -pub const CLOCK_ENABLED: ::c_uint = 1; -pub const CLOCK_DISABLED: ::c_uint = 0; -pub const CLOCK_ALLOWED: ::c_uint = 1; -pub const CLOCK_DISALLOWED: ::c_uint = 0; -pub const TIMER_ABSTIME: ::c_uint = 4; -pub const SOL_SOCKET: ::c_int = 65535; -pub const MSG_OOB: ::c_int = 1; -pub const MSG_PEEK: ::c_int = 2; -pub const MSG_DONTWAIT: ::c_int = 4; -pub const MSG_DONTROUTE: ::c_int = 0; -pub const MSG_WAITALL: ::c_int = 0; -pub const MSG_MORE: ::c_int = 0; -pub const MSG_NOSIGNAL: ::c_int = 0; -pub const SOL_CONFIG: ::c_uint = 65534; - -pub const _SC_PAGESIZE: ::c_int = 8; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 51; - -pub const PTHREAD_STACK_MIN: ::size_t = 4096; -pub const WNOHANG: ::c_int = 1; - -pub const POLLIN: ::c_short = 0x0001; -pub const POLLPRI: ::c_short = 0x0002; -pub const POLLOUT: ::c_short = 0x0004; -pub const POLLRDNORM: ::c_short = 0x0040; -pub const POLLWRNORM: ::c_short = POLLOUT; -pub const POLLRDBAND: ::c_short = 0x0080; -pub const POLLWRBAND: ::c_short = 0x0100; -pub const POLLERR: ::c_short = 0x0008; -pub const POLLHUP: ::c_short = 0x0010; -pub const POLLNVAL: ::c_short = 0x0020; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_BADHINTS: ::c_int = 12; -pub const EAI_PROTOCOL: ::c_int = 13; -pub const EAI_OVERFLOW: ::c_int = 14; -pub const EAI_MAX: ::c_int = 15; - -pub const AF_UNIX: ::c_int = 1; -pub const AF_INET6: ::c_int = 23; - -pub const FIONBIO: ::c_ulong = 1; - -pub const RTLD_DEFAULT: *mut ::c_void = 0 as *mut ::c_void; - -// For pthread get/setschedparam -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; - -// For getrandom() -pub const GRND_NONBLOCK: ::c_uint = 0x1; -pub const GRND_RANDOM: ::c_uint = 0x2; - -// Horizon OS works doesn't or can't hold any of this information -safe_f! { - pub {const} fn WIFSTOPPED(_status: ::c_int) -> bool { - false - } - - pub {const} fn WSTOPSIG(_status: ::c_int) -> ::c_int { - 0 - } - - pub {const} fn WIFCONTINUED(_status: ::c_int) -> bool { - true - } - - pub {const} fn WIFSIGNALED(_status: ::c_int) -> bool { - false - } - - pub {const} fn WTERMSIG(_status: ::c_int) -> ::c_int { - 0 - } - - pub {const} fn WIFEXITED(_status: ::c_int) -> bool { - true - } - - pub {const} fn WEXITSTATUS(_status: ::c_int) -> ::c_int { - 0 - } - - pub {const} fn WCOREDUMP(_status: ::c_int) -> bool { - false - } -} - -extern "C" { - pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(_: *mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - - pub fn pthread_attr_getschedparam( - attr: *const ::pthread_attr_t, - param: *mut sched_param, - ) -> ::c_int; - - pub fn pthread_attr_setschedparam( - attr: *mut ::pthread_attr_t, - param: *const sched_param, - ) -> ::c_int; - - pub fn pthread_attr_getprocessorid_np( - attr: *const ::pthread_attr_t, - processor_id: *mut ::c_int, - ) -> ::c_int; - - pub fn pthread_attr_setprocessorid_np( - attr: *mut ::pthread_attr_t, - processor_id: ::c_int, - ) -> ::c_int; - - pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param, - ) -> ::c_int; - - pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - - pub fn pthread_condattr_getclock( - attr: *const ::pthread_condattr_t, - clock_id: *mut ::clockid_t, - ) -> ::c_int; - - pub fn pthread_condattr_setclock( - attr: *mut ::pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - - pub fn pthread_getprocessorid_np() -> ::c_int; - - pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; - - pub fn gethostid() -> ::c_long; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/mod.rs deleted file mode 100644 index ce84f1421..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/newlib/mod.rs +++ /dev/null @@ -1,789 +0,0 @@ -pub type blkcnt_t = i32; -pub type blksize_t = i32; - -cfg_if! { - if #[cfg(target_os = "vita")] { - pub type clockid_t = ::c_uint; - } else { - pub type clockid_t = ::c_ulong; - } -} - -cfg_if! { - if #[cfg(any(target_os = "espidf"))] { - pub type dev_t = ::c_short; - pub type ino_t = ::c_ushort; - pub type off_t = ::c_long; - } else if #[cfg(any(target_os = "vita"))] { - pub type dev_t = ::c_short; - pub type ino_t = ::c_ushort; - pub type off_t = ::c_int; - } else { - pub type dev_t = u32; - pub type ino_t = u32; - pub type off_t = i64; - } -} - -pub type fsblkcnt_t = u64; -pub type fsfilcnt_t = u32; -pub type id_t = u32; -pub type key_t = ::c_int; -pub type loff_t = ::c_longlong; -pub type mode_t = ::c_uint; -pub type nfds_t = u32; -pub type nlink_t = ::c_ushort; -pub type pthread_t = ::c_ulong; -pub type pthread_key_t = ::c_uint; -pub type rlim_t = u32; - -cfg_if! { - if #[cfg(target_os = "horizon")] { - pub type sa_family_t = u16; - } else { - pub type sa_family_t = u8; - } -} - -pub type socklen_t = u32; -pub type speed_t = u32; -pub type suseconds_t = i32; -pub type tcflag_t = ::c_uint; -pub type useconds_t = u32; - -cfg_if! { - if #[cfg(any(target_os = "horizon", all(target_os = "espidf", espidf_time64)))] { - pub type time_t = ::c_longlong; - } else { - pub type time_t = i32; - } -} - -s! { - // The order of the `ai_addr` field in this struct is crucial - // for converting between the Rust and C types. - pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: socklen_t, - - #[cfg(target_os = "espidf")] - pub ai_addr: *mut sockaddr, - - pub ai_canonname: *mut ::c_char, - - #[cfg(not(any( - target_os = "espidf", - all(libc_cfg_target_vendor, target_arch = "powerpc", target_vendor = "nintendo"))))] - pub ai_addr: *mut sockaddr, - - pub ai_next: *mut addrinfo, - } - - pub struct ip_mreq { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct linger { - pub l_onoff: ::c_int, - pub l_linger: ::c_int, - } - - pub struct in_addr { - pub s_addr: ::in_addr_t, - } - - pub struct hostent { - pub h_name: *mut ::c_char, - pub h_aliases: *mut *mut ::c_char, - pub h_addrtype: ::c_int, - pub h_length: ::c_int, - pub h_addr_list: *mut *mut ::c_char, - pub h_addr: *mut ::c_char, - } - - pub struct pollfd { - pub fd: ::c_int, - pub events: ::c_int, - pub revents: ::c_int, - } - - pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - } - - pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: fsblkcnt_t, - pub f_bfree: fsblkcnt_t, - pub f_bavail: fsblkcnt_t, - pub f_files: fsfilcnt_t, - pub f_ffree: fsfilcnt_t, - pub f_favail: fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - } - - pub struct sigaction { - pub sa_handler: extern fn(arg1: ::c_int), - pub sa_mask: sigset_t, - pub sa_flags: ::c_int, - } - - pub struct dirent { - #[cfg(not(target_os = "vita"))] - pub d_ino: ino_t, - #[cfg(not(target_os = "vita"))] - pub d_type: ::c_uchar, - #[cfg(target_os = "vita")] - __offset: [u8; 88], - pub d_name: [::c_char; 256usize], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: usize, - } - - pub struct fd_set { // Unverified - fds_bits: [::c_ulong; FD_SETSIZE / ULONG_SIZE], - } - - pub struct passwd { // Unverified - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - } - - pub struct termios { // Unverified - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - } - - pub struct sem_t { // Unverified - __size: [::c_char; 16], - } - - pub struct Dl_info { // Unverified - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, - } - - pub struct utsname { // Unverified - pub sysname: [::c_char; 65], - pub nodename: [::c_char; 65], - pub release: [::c_char; 65], - pub version: [::c_char; 65], - pub machine: [::c_char; 65], - pub domainname: [::c_char; 65] - } - - pub struct cpu_set_t { // Unverified - bits: [u32; 32], - } - - pub struct pthread_attr_t { // Unverified - __size: [u8; __SIZEOF_PTHREAD_ATTR_T] - } - - pub struct pthread_rwlockattr_t { // Unverified - __size: [u8; __SIZEOF_PTHREAD_RWLOCKATTR_T] - } -} - -// unverified constants -align_const! { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - size: [__PTHREAD_INITIALIZER_BYTE; __SIZEOF_PTHREAD_MUTEX_T], - }; - pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - size: [__PTHREAD_INITIALIZER_BYTE; __SIZEOF_PTHREAD_COND_T], - }; - pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - size: [__PTHREAD_INITIALIZER_BYTE; __SIZEOF_PTHREAD_RWLOCK_T], - }; -} -pub const NCCS: usize = 32; - -cfg_if! { - if #[cfg(target_os = "espidf")] { - const __PTHREAD_INITIALIZER_BYTE: u8 = 0xff; - pub const __SIZEOF_PTHREAD_ATTR_T: usize = 32; - pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 4; - pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 12; - pub const __SIZEOF_PTHREAD_COND_T: usize = 4; - pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 8; - pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 4; - pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 12; - pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; - } else if #[cfg(target_os = "vita")] { - const __PTHREAD_INITIALIZER_BYTE: u8 = 0xff; - pub const __SIZEOF_PTHREAD_ATTR_T: usize = 4; - pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 4; - pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; - pub const __SIZEOF_PTHREAD_COND_T: usize = 4; - pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; - pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 4; - pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 4; - pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 4; - } else { - const __PTHREAD_INITIALIZER_BYTE: u8 = 0; - pub const __SIZEOF_PTHREAD_ATTR_T: usize = 56; - pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; - pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; - pub const __SIZEOF_PTHREAD_COND_T: usize = 48; - pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; - pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; - pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; - pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; - } -} - -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; -pub const __PTHREAD_MUTEX_HAVE_PREV: usize = 1; -pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: usize = 1; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; - -cfg_if! { - if #[cfg(any(target_os = "horizon", target_os = "espidf"))] { - pub const FD_SETSIZE: usize = 64; - } else if #[cfg(target_os = "vita")] { - pub const FD_SETSIZE: usize = 256; - } else { - pub const FD_SETSIZE: usize = 1024; - } -} -// intentionally not public, only used for fd_set -const ULONG_SIZE: usize = 32; - -// Other constants -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const EDEADLK: ::c_int = 45; -pub const ENOLCK: ::c_int = 46; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENOLINK: ::c_int = 67; -pub const EPROTO: ::c_int = 71; -pub const EMULTIHOP: ::c_int = 74; -pub const EBADMSG: ::c_int = 77; -pub const EFTYPE: ::c_int = 79; -pub const ENOSYS: ::c_int = 88; -pub const ENOTEMPTY: ::c_int = 90; -pub const ENAMETOOLONG: ::c_int = 91; -pub const ELOOP: ::c_int = 92; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EAFNOSUPPORT: ::c_int = 106; -pub const EPROTOTYPE: ::c_int = 107; -pub const ENOTSOCK: ::c_int = 108; -pub const ENOPROTOOPT: ::c_int = 109; -pub const ECONNREFUSED: ::c_int = 111; -pub const EADDRINUSE: ::c_int = 112; -pub const ECONNABORTED: ::c_int = 113; -pub const ENETUNREACH: ::c_int = 114; -pub const ENETDOWN: ::c_int = 115; -pub const ETIMEDOUT: ::c_int = 116; -pub const EHOSTDOWN: ::c_int = 117; -pub const EHOSTUNREACH: ::c_int = 118; -pub const EINPROGRESS: ::c_int = 119; -pub const EALREADY: ::c_int = 120; -pub const EDESTADDRREQ: ::c_int = 121; -pub const EMSGSIZE: ::c_int = 122; -pub const EPROTONOSUPPORT: ::c_int = 123; -pub const EADDRNOTAVAIL: ::c_int = 125; -pub const ENETRESET: ::c_int = 126; -pub const EISCONN: ::c_int = 127; -pub const ENOTCONN: ::c_int = 128; -pub const ETOOMANYREFS: ::c_int = 129; -pub const EDQUOT: ::c_int = 132; -pub const ESTALE: ::c_int = 133; -pub const ENOTSUP: ::c_int = 134; -pub const EILSEQ: ::c_int = 138; -pub const EOVERFLOW: ::c_int = 139; -pub const ECANCELED: ::c_int = 140; -pub const ENOTRECOVERABLE: ::c_int = 141; -pub const EOWNERDEAD: ::c_int = 142; -pub const EWOULDBLOCK: ::c_int = 11; - -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; -pub const F_GETOWN: ::c_int = 5; -pub const F_SETOWN: ::c_int = 6; -pub const F_GETLK: ::c_int = 7; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const F_RGETLK: ::c_int = 10; -pub const F_RSETLK: ::c_int = 11; -pub const F_CNVT: ::c_int = 12; -pub const F_RSETLKW: ::c_int = 13; -pub const F_DUPFD_CLOEXEC: ::c_int = 14; - -pub const O_RDONLY: ::c_int = 0; -pub const O_WRONLY: ::c_int = 1; -pub const O_RDWR: ::c_int = 2; -pub const O_APPEND: ::c_int = 8; -pub const O_CREAT: ::c_int = 512; -pub const O_TRUNC: ::c_int = 1024; -pub const O_EXCL: ::c_int = 2048; -pub const O_SYNC: ::c_int = 8192; -pub const O_NONBLOCK: ::c_int = 16384; - -pub const O_ACCMODE: ::c_int = 3; -pub const O_CLOEXEC: ::c_int = 0x80000; - -pub const RTLD_LAZY: ::c_int = 0x1; - -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; - -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; - -pub const FIOCLEX: ::c_ulong = 0x20006601; -pub const FIONCLEX: ::c_ulong = 0x20006602; - -pub const S_BLKSIZE: ::mode_t = 1024; -pub const S_IREAD: ::mode_t = 256; -pub const S_IWRITE: ::mode_t = 128; -pub const S_IEXEC: ::mode_t = 64; -pub const S_ENFMT: ::mode_t = 1024; -pub const S_IFMT: ::mode_t = 61440; -pub const S_IFDIR: ::mode_t = 16384; -pub const S_IFCHR: ::mode_t = 8192; -pub const S_IFBLK: ::mode_t = 24576; -pub const S_IFREG: ::mode_t = 32768; -pub const S_IFLNK: ::mode_t = 40960; -pub const S_IFSOCK: ::mode_t = 49152; -pub const S_IFIFO: ::mode_t = 4096; -pub const S_IRUSR: ::mode_t = 256; -pub const S_IWUSR: ::mode_t = 128; -pub const S_IXUSR: ::mode_t = 64; -pub const S_IRGRP: ::mode_t = 32; -pub const S_IWGRP: ::mode_t = 16; -pub const S_IXGRP: ::mode_t = 8; -pub const S_IROTH: ::mode_t = 4; -pub const S_IWOTH: ::mode_t = 2; -pub const S_IXOTH: ::mode_t = 1; - -pub const SOL_TCP: ::c_int = 6; - -pub const PF_UNSPEC: ::c_int = 0; -pub const PF_INET: ::c_int = 2; -pub const PF_INET6: ::c_int = 23; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_INET: ::c_int = 2; - -pub const CLOCK_REALTIME: ::clockid_t = 1; -pub const CLOCK_MONOTONIC: ::clockid_t = 4; -pub const CLOCK_BOOTTIME: ::clockid_t = 4; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const SO_BINTIME: ::c_int = 0x2000; -pub const SO_NO_OFFLOAD: ::c_int = 0x4000; -pub const SO_NO_DDP: ::c_int = 0x8000; -pub const SO_REUSEPORT_LB: ::c_int = 0x10000; -pub const SO_LABEL: ::c_int = 0x1009; -pub const SO_PEERLABEL: ::c_int = 0x1010; -pub const SO_LISTENQLIMIT: ::c_int = 0x1011; -pub const SO_LISTENQLEN: ::c_int = 0x1012; -pub const SO_LISTENINCQLEN: ::c_int = 0x1013; -pub const SO_SETFIB: ::c_int = 0x1014; -pub const SO_USER_COOKIE: ::c_int = 0x1015; -pub const SO_PROTOCOL: ::c_int = 0x1016; -pub const SO_PROTOTYPE: ::c_int = SO_PROTOCOL; -pub const SO_VENDOR: ::c_int = 0x80000000; -pub const SO_DEBUG: ::c_int = 0x01; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_TIMESTAMP: ::c_int = 0x0400; -pub const SO_NOSIGPIPE: ::c_int = 0x0800; -pub const SO_ACCEPTFILTER: ::c_int = 0x1000; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -cfg_if! { - if #[cfg(target_os = "horizon")] { - pub const SO_ERROR: ::c_int = 0x1009; - } else { - pub const SO_ERROR: ::c_int = 0x1007; - } -} -pub const SO_TYPE: ::c_int = 0x1008; - -pub const SOCK_CLOEXEC: ::c_int = O_CLOEXEC; - -pub const INET_ADDRSTRLEN: ::c_int = 16; - -// https://github.com/bminor/newlib/blob/HEAD/newlib/libc/sys/linux/include/net/if.h#L121 -pub const IFF_UP: ::c_int = 0x1; // interface is up -pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid -pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging -pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net -pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link -pub const IFF_NOTRAILERS: ::c_int = 0x20; // avoid use of trailers -pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated -pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol -pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets -pub const IFF_OACTIVE: ::c_int = 0x400; // transmission in progress -pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions -pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit -pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit -pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit -pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection -pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast - -pub const TCP_NODELAY: ::c_int = 8193; -pub const TCP_MAXSEG: ::c_int = 8194; -pub const TCP_NOPUSH: ::c_int = 4; -pub const TCP_NOOPT: ::c_int = 8; -pub const TCP_KEEPIDLE: ::c_int = 256; -pub const TCP_KEEPINTVL: ::c_int = 512; -pub const TCP_KEEPCNT: ::c_int = 1024; - -cfg_if! { - if #[cfg(target_os = "horizon")] { - pub const IP_TOS: ::c_int = 7; - } else { - pub const IP_TOS: ::c_int = 3; - } -} -pub const IP_TTL: ::c_int = 8; -pub const IP_MULTICAST_IF: ::c_int = 9; -pub const IP_MULTICAST_TTL: ::c_int = 10; -pub const IP_MULTICAST_LOOP: ::c_int = 11; -pub const IP_ADD_MEMBERSHIP: ::c_int = 11; -pub const IP_DROP_MEMBERSHIP: ::c_int = 12; - -pub const IPV6_UNICAST_HOPS: ::c_int = 4; -pub const IPV6_MULTICAST_IF: ::c_int = 9; -pub const IPV6_MULTICAST_HOPS: ::c_int = 10; -pub const IPV6_MULTICAST_LOOP: ::c_int = 11; -pub const IPV6_V6ONLY: ::c_int = 27; -pub const IPV6_JOIN_GROUP: ::c_int = 12; -pub const IPV6_LEAVE_GROUP: ::c_int = 13; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 12; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 13; - -pub const HOST_NOT_FOUND: ::c_int = 1; -pub const NO_DATA: ::c_int = 2; -pub const NO_ADDRESS: ::c_int = 2; -pub const NO_RECOVERY: ::c_int = 3; -pub const TRY_AGAIN: ::c_int = 4; - -pub const AI_PASSIVE: ::c_int = 1; -pub const AI_CANONNAME: ::c_int = 2; -pub const AI_NUMERICHOST: ::c_int = 4; -pub const AI_NUMERICSERV: ::c_int = 0; -pub const AI_ADDRCONFIG: ::c_int = 0; - -pub const NI_MAXHOST: ::c_int = 1025; -pub const NI_MAXSERV: ::c_int = 32; -pub const NI_NOFQDN: ::c_int = 1; -pub const NI_NUMERICHOST: ::c_int = 2; -pub const NI_NAMEREQD: ::c_int = 4; -pub const NI_NUMERICSERV: ::c_int = 0; -pub const NI_DGRAM: ::c_int = 0; - -pub const EAI_FAMILY: ::c_int = -303; -pub const EAI_MEMORY: ::c_int = -304; -pub const EAI_NONAME: ::c_int = -305; -pub const EAI_SOCKTYPE: ::c_int = -307; - -pub const EXIT_SUCCESS: ::c_int = 0; -pub const EXIT_FAILURE: ::c_int = 1; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -f! { - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - let fd = fd as usize; - (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); - return - } - - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - let fd = fd as usize; - return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0 - } - - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - let fd = fd as usize; - (*set).fds_bits[fd / bits] |= 1 << (fd % bits); - return - } - - pub fn FD_ZERO(set: *mut fd_set) -> () { - for slot in (*set).fds_bits.iter_mut() { - *slot = 0; - } - } -} - -extern "C" { - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - - #[cfg_attr(target_os = "linux", link_name = "__xpg_strerror_r")] - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); - - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] - #[cfg_attr(target_os = "espidf", link_name = "lwip_bind")] - pub fn bind(fd: ::c_int, addr: *const sockaddr, len: socklen_t) -> ::c_int; - pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - pub fn clock_gettime(clock_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_getres(clock_id: ::clockid_t, res: *mut ::timespec) -> ::c_int; - #[cfg_attr(target_os = "espidf", link_name = "lwip_close")] - pub fn closesocket(sockfd: ::c_int) -> ::c_int; - pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] - #[cfg_attr(target_os = "espidf", link_name = "lwip_recvfrom")] - pub fn recvfrom( - fd: ::c_int, - buf: *mut ::c_void, - n: usize, - flags: ::c_int, - addr: *mut sockaddr, - addr_len: *mut socklen_t, - ) -> isize; - #[cfg(not(all( - libc_cfg_target_vendor, - target_arch = "powerpc", - target_vendor = "nintendo" - )))] - pub fn getnameinfo( - sa: *const sockaddr, - salen: socklen_t, - host: *mut ::c_char, - hostlen: socklen_t, - serv: *mut ::c_char, - servlen: socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn fexecve( - fd: ::c_int, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn getdtablesize() -> ::c_int; - pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - pub fn getpwnam_r( - name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn getpwuid_r( - uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn uname(buf: *mut ::utsname) -> ::c_int; -} - -mod generic; - -cfg_if! { - if #[cfg(target_os = "espidf")] { - mod espidf; - pub use self::espidf::*; - } else if #[cfg(target_os = "horizon")] { - mod horizon; - pub use self::horizon::*; - } else if #[cfg(target_os = "vita")] { - mod vita; - pub use self::vita::*; - } else if #[cfg(target_arch = "arm")] { - mod arm; - pub use self::arm::*; - } else if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else if #[cfg(target_arch = "powerpc")] { - mod powerpc; - pub use self::powerpc::*; - } else { - // Only tested on ARM so far. Other platforms might have different - // definitions for types and constants. - pub use target_arch_not_implemented; - } -} - -cfg_if! { - if #[cfg(libc_align)] { - #[macro_use] - mod align; - } else { - #[macro_use] - mod no_align; - } -} -expand_align!(); diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/no_align.rs deleted file mode 100644 index ce3aca4ed..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/newlib/no_align.rs +++ /dev/null @@ -1,51 +0,0 @@ -macro_rules! expand_align { - () => { - s! { - pub struct pthread_mutex_t { // Unverified - #[cfg(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))] - __align: [::c_long; 0], - #[cfg(not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc")))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], - } - - pub struct pthread_rwlock_t { // Unverified - #[cfg(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))] - __align: [::c_long; 0], - #[cfg(not(any(target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc")))] - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], - } - - pub struct pthread_mutexattr_t { // Unverified - #[cfg(any(target_arch = "x86_64", target_arch = "powerpc64", - target_arch = "mips64", target_arch = "s390x", - target_arch = "sparc64"))] - __align: [::c_int; 0], - #[cfg(not(any(target_arch = "x86_64", target_arch = "powerpc64", - target_arch = "mips64", target_arch = "s390x", - target_arch = "sparc64")))] - __align: [::c_long; 0], - size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T], - } - - pub struct pthread_cond_t { // Unverified - __align: [::c_longlong; 0], - size: [u8; ::__SIZEOF_PTHREAD_COND_T], - } - - pub struct pthread_condattr_t { // Unverified - __align: [::c_int; 0], - size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], - } - } - }; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/powerpc/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/powerpc/mod.rs deleted file mode 100644 index 6bed1ce27..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/newlib/powerpc/mod.rs +++ /dev/null @@ -1,16 +0,0 @@ -pub type clock_t = ::c_ulong; -pub type c_char = u8; -pub type wchar_t = ::c_int; - -pub type c_long = i32; -pub type c_ulong = u32; - -pub use crate::unix::newlib::generic::{sigset_t, stat}; - -// the newlib shipped with devkitPPC does not support the following components: -// - sockaddr -// - AF_INET6 -// - FIONBIO -// - POLL* -// - SOL_SOCKET -// - MSG_* diff --git a/src/rust/vendor/libc-0.2.146/src/unix/newlib/vita/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/newlib/vita/mod.rs deleted file mode 100644 index 6e2e4d3eb..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/newlib/vita/mod.rs +++ /dev/null @@ -1,201 +0,0 @@ -pub type clock_t = ::c_long; - -pub type c_char = i8; -pub type wchar_t = u32; - -pub type c_long = i32; -pub type c_ulong = u32; - -pub type sigset_t = ::c_ulong; - -s! { - pub struct sockaddr { - pub sa_len: u8, - pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_in6 { - pub sin6_len: u8, - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_vport: ::in_port_t, - pub sin6_scope_id: u32, - } - - pub struct sockaddr_in { - pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_vport: ::in_port_t, - pub sin_zero: [u8; 6], - } - - pub struct sockaddr_un { - pub sun_family: ::sa_family_t, - pub sun_path: [::c_char; 108usize], - } - - pub struct sockaddr_storage { - pub ss_len: u8, - pub ss_family: ::sa_family_t, - pub __ss_pad1: [u8; 4], - pub __ss_align: i64, - pub __ss_pad2: [u8; 4], - } - - pub struct sched_param { - pub sched_priority: ::c_int, - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_atime: ::time_t, - pub st_mtime: ::time_t, - pub st_ctime: ::time_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_spare4: [::c_long; 2usize], - } -} - -pub const AF_UNIX: ::c_int = 1; -pub const AF_INET6: ::c_int = 24; - -pub const FIONBIO: ::c_ulong = 1; - -pub const POLLIN: ::c_short = 0x0001; -pub const POLLPRI: ::c_short = POLLIN; -pub const POLLOUT: ::c_short = 0x0004; -pub const POLLERR: ::c_short = 0x0008; -pub const POLLHUP: ::c_short = 0x0010; -pub const POLLNVAL: ::c_short = 0x0020; - -pub const RTLD_DEFAULT: *mut ::c_void = 0 as *mut ::c_void; - -pub const SOL_SOCKET: ::c_int = 0xffff; -pub const SO_NONBLOCK: ::c_int = 0x1100; - -pub const MSG_OOB: ::c_int = 0x1; -pub const MSG_PEEK: ::c_int = 0x2; -pub const MSG_DONTROUTE: ::c_int = 0x4; -pub const MSG_EOR: ::c_int = 0x8; -pub const MSG_TRUNC: ::c_int = 0x10; -pub const MSG_CTRUNC: ::c_int = 0x20; -pub const MSG_WAITALL: ::c_int = 0x40; -pub const MSG_DONTWAIT: ::c_int = 0x80; -pub const MSG_BCAST: ::c_int = 0x100; -pub const MSG_MCAST: ::c_int = 0x200; - -pub const UTIME_OMIT: c_long = -1; -pub const AT_FDCWD: ::c_int = -2; - -pub const O_DIRECTORY: ::c_int = 0x200000; -pub const O_NOFOLLOW: ::c_int = 0x100000; - -pub const AT_EACCESS: ::c_int = 1; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 2; -pub const AT_SYMLINK_FOLLOW: ::c_int = 4; -pub const AT_REMOVEDIR: ::c_int = 8; - -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGTRAP: ::c_int = 5; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGBUS: ::c_int = 10; -pub const SIGSEGV: ::c_int = 11; -pub const SIGSYS: ::c_int = 12; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const EAI_BADFLAGS: ::c_int = -1; -pub const EAI_NONAME: ::c_int = -2; -pub const EAI_AGAIN: ::c_int = -3; -pub const EAI_FAIL: ::c_int = -4; -pub const EAI_NODATA: ::c_int = -5; -pub const EAI_FAMILY: ::c_int = -6; -pub const EAI_SOCKTYPE: ::c_int = -7; -pub const EAI_SERVICE: ::c_int = -8; -pub const EAI_ADDRFAMILY: ::c_int = -9; -pub const EAI_MEMORY: ::c_int = -10; -pub const EAI_SYSTEM: ::c_int = -11; -pub const EAI_OVERFLOW: ::c_int = -12; - -pub const _SC_PAGESIZE: ::c_int = 8; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 51; -pub const PTHREAD_STACK_MIN: ::size_t = 32 * 1024; - -extern "C" { - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - - pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(_: *mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - - pub fn pthread_attr_getschedparam( - attr: *const ::pthread_attr_t, - param: *mut sched_param, - ) -> ::c_int; - - pub fn pthread_attr_setschedparam( - attr: *mut ::pthread_attr_t, - param: *const sched_param, - ) -> ::c_int; - - pub fn pthread_attr_getprocessorid_np( - attr: *const ::pthread_attr_t, - processor_id: *mut ::c_int, - ) -> ::c_int; - - pub fn pthread_attr_setprocessorid_np( - attr: *mut ::pthread_attr_t, - processor_id: ::c_int, - ) -> ::c_int; - - pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param, - ) -> ::c_int; - - pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - - pub fn pthread_condattr_getclock( - attr: *const ::pthread_condattr_t, - clock_id: *mut ::clockid_t, - ) -> ::c_int; - - pub fn pthread_condattr_setclock( - attr: *mut ::pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - - pub fn pthread_getprocessorid_np() -> ::c_int; - - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/no_align.rs b/src/rust/vendor/libc-0.2.146/src/unix/no_align.rs deleted file mode 100644 index f6b9f4c12..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/no_align.rs +++ /dev/null @@ -1,6 +0,0 @@ -s! { - pub struct in6_addr { - pub s6_addr: [u8; 16], - __align: [u32; 0], - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/nto/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/unix/nto/aarch64.rs deleted file mode 100644 index 6faf8159c..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/nto/aarch64.rs +++ /dev/null @@ -1,36 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = u32; -pub type c_long = i64; -pub type c_ulong = u64; -pub type time_t = i64; - -s! { - pub struct aarch64_qreg_t { - pub qlo: u64, - pub qhi: u64, - } - - pub struct aarch64_fpu_registers { - pub reg: [::aarch64_qreg_t; 32], - pub fpsr: u32, - pub fpcr: u32, - } - - pub struct aarch64_cpu_registers { - pub gpr: [u64; 32], - pub elr: u64, - pub pstate: u64, - } - - #[repr(align(16))] - pub struct mcontext_t { - pub cpu: ::aarch64_cpu_registers, - pub fpu: ::aarch64_fpu_registers, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/nto/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/nto/mod.rs deleted file mode 100644 index 5d13568e4..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/nto/mod.rs +++ /dev/null @@ -1,3285 +0,0 @@ -pub type clock_t = u32; - -pub type sa_family_t = u8; -pub type speed_t = ::c_uint; -pub type tcflag_t = ::c_uint; -pub type clockid_t = ::c_int; -pub type timer_t = ::c_int; -pub type key_t = ::c_uint; -pub type id_t = ::c_int; - -pub type useconds_t = u32; -pub type dev_t = u32; -pub type socklen_t = u32; -pub type mode_t = u32; -pub type rlim64_t = u64; -pub type mqd_t = ::c_int; -pub type nfds_t = ::c_uint; -pub type idtype_t = ::c_uint; -pub type errno_t = ::c_int; -pub type rsize_t = c_ulong; - -pub type Elf32_Half = u16; -pub type Elf32_Word = u32; -pub type Elf32_Off = u32; -pub type Elf32_Addr = u32; -pub type Elf32_Lword = u64; -pub type Elf32_Sword = i32; - -pub type Elf64_Half = u16; -pub type Elf64_Word = u32; -pub type Elf64_Off = u64; -pub type Elf64_Addr = u64; -pub type Elf64_Xword = u64; -pub type Elf64_Sxword = i64; -pub type Elf64_Lword = u64; -pub type Elf64_Sword = i32; - -pub type Elf32_Section = u16; -pub type Elf64_Section = u16; - -pub type _Time32t = u32; - -pub type pthread_t = ::c_int; -pub type regoff_t = ::ssize_t; - -pub type nlink_t = u32; -pub type blksize_t = u32; -pub type suseconds_t = i32; - -pub type ino_t = u64; -pub type off_t = i64; -pub type blkcnt_t = u64; -pub type msgqnum_t = u64; -pub type msglen_t = u64; -pub type fsblkcnt_t = u64; -pub type fsfilcnt_t = u64; -pub type rlim_t = u64; -pub type posix_spawn_file_actions_t = *mut ::c_void; -pub type posix_spawnattr_t = ::uintptr_t; - -pub type pthread_mutex_t = ::sync_t; -pub type pthread_mutexattr_t = ::_sync_attr; -pub type pthread_cond_t = ::sync_t; -pub type pthread_condattr_t = ::_sync_attr; -pub type pthread_rwlockattr_t = ::_sync_attr; -pub type pthread_key_t = ::c_int; -pub type pthread_spinlock_t = sync_t; -pub type pthread_barrierattr_t = _sync_attr; -pub type sem_t = sync_t; - -pub type nl_item = ::c_int; - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { - fn clone(&self) -> timezone { - *self - } -} - -s! { - pub struct ip_mreq { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - } - - #[repr(packed)] - pub struct in_addr { - pub s_addr: ::in_addr_t, - } - - pub struct sockaddr { - pub sa_len: u8, - pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_in { - pub sin_len: u8, - pub sin_family: sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [i8; 8], - } - - pub struct sockaddr_in6 { - pub sin6_len: u8, - pub sin6_family: sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - } - - // The order of the `ai_addr` field in this struct is crucial - // for converting between the Rust and C types. - pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: socklen_t, - pub ai_canonname: *mut c_char, - pub ai_addr: *mut ::sockaddr, - pub ai_next: *mut addrinfo, - } - - pub struct fd_set { - fds_bits: [::c_uint; 2 * FD_SETSIZE / ULONG_SIZE], - } - - pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - pub tm_gmtoff: ::c_long, - pub tm_zone: *const ::c_char, - } - - #[repr(align(8))] - pub struct sched_param { - pub sched_priority: ::c_int, - pub sched_curpriority: ::c_int, - pub reserved: [::c_int; 10], - } - - #[repr(align(8))] - pub struct __sched_param { - pub __sched_priority: ::c_int, - pub __sched_curpriority: ::c_int, - pub reserved: [::c_int; 10], - } - - pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, - } - - pub struct lconv { - pub currency_symbol: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub frac_digits: ::c_char, - pub int_frac_digits: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub n_sign_posn: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - - pub decimal_point: *mut ::c_char, - pub grouping: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - - pub _Frac_grouping: *mut ::c_char, - pub _Frac_sep: *mut ::c_char, - pub _False: *mut ::c_char, - pub _True: *mut ::c_char, - - pub _No: *mut ::c_char, - pub _Yes: *mut ::c_char, - pub _Nostr: *mut ::c_char, - pub _Yesstr: *mut ::c_char, - pub _Reserved: [*mut ::c_char; 8], - } - - pub struct in_pktinfo { - pub ipi_addr: ::in_addr, - pub ipi_ifindex: ::c_uint, - } - - pub struct ifaddrs { - pub ifa_next: *mut ifaddrs, - pub ifa_name: *mut c_char, - pub ifa_flags: ::c_uint, - pub ifa_addr: *mut ::sockaddr, - pub ifa_netmask: *mut ::sockaddr, - pub ifa_dstaddr: *mut ::sockaddr, - pub ifa_data: *mut ::c_void - } - - pub struct arpreq { - pub arp_pa: ::sockaddr, - pub arp_ha: ::sockaddr, - pub arp_flags: ::c_int, - } - - #[repr(packed)] - pub struct arphdr { - pub ar_hrd: u16, - pub ar_pro: u16, - pub ar_hln: u8, - pub ar_pln: u8, - pub ar_op: u16, - } - - pub struct mmsghdr { - pub msg_hdr: ::msghdr, - pub msg_len: ::c_uint, - } - - #[repr(align(8))] - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - __data: [u8; 36], // union - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_flags: ::c_int, - pub sa_mask: ::sigset_t, - } - - pub struct _sync { - _union: ::c_uint, - __owner: ::c_uint, - } - pub struct rlimit64 { - pub rlim_cur: rlim64_t, - pub rlim_max: rlim64_t, - } - - pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_matchc: ::c_int, - pub gl_pathv: *mut *mut c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - pub gl_errfunc: extern "C" fn(*const ::c_char, ::c_int) -> ::c_int, - - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - } - - pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_age: *mut ::c_char, - pub pw_comment: *mut ::c_char, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - } - - pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, - } - - pub struct sembuf { - pub sem_num: ::c_ushort, - pub sem_op: ::c_short, - pub sem_flg: ::c_short, - } - - pub struct Elf32_Ehdr { - pub e_ident: [::c_uchar; 16], - pub e_type: Elf32_Half, - pub e_machine: Elf32_Half, - pub e_version: Elf32_Word, - pub e_entry: Elf32_Addr, - pub e_phoff: Elf32_Off, - pub e_shoff: Elf32_Off, - pub e_flags: Elf32_Word, - pub e_ehsize: Elf32_Half, - pub e_phentsize: Elf32_Half, - pub e_phnum: Elf32_Half, - pub e_shentsize: Elf32_Half, - pub e_shnum: Elf32_Half, - pub e_shstrndx: Elf32_Half, - } - - pub struct Elf64_Ehdr { - pub e_ident: [::c_uchar; 16], - pub e_type: Elf64_Half, - pub e_machine: Elf64_Half, - pub e_version: Elf64_Word, - pub e_entry: Elf64_Addr, - pub e_phoff: Elf64_Off, - pub e_shoff: Elf64_Off, - pub e_flags: Elf64_Word, - pub e_ehsize: Elf64_Half, - pub e_phentsize: Elf64_Half, - pub e_phnum: Elf64_Half, - pub e_shentsize: Elf64_Half, - pub e_shnum: Elf64_Half, - pub e_shstrndx: Elf64_Half, - } - - pub struct Elf32_Sym { - pub st_name: Elf32_Word, - pub st_value: Elf32_Addr, - pub st_size: Elf32_Word, - pub st_info: ::c_uchar, - pub st_other: ::c_uchar, - pub st_shndx: Elf32_Section, - } - - pub struct Elf64_Sym { - pub st_name: Elf64_Word, - pub st_info: ::c_uchar, - pub st_other: ::c_uchar, - pub st_shndx: Elf64_Section, - pub st_value: Elf64_Addr, - pub st_size: Elf64_Xword, - } - - pub struct Elf32_Phdr { - pub p_type: Elf32_Word, - pub p_offset: Elf32_Off, - pub p_vaddr: Elf32_Addr, - pub p_paddr: Elf32_Addr, - pub p_filesz: Elf32_Word, - pub p_memsz: Elf32_Word, - pub p_flags: Elf32_Word, - pub p_align: Elf32_Word, - } - - pub struct Elf64_Phdr { - pub p_type: Elf64_Word, - pub p_flags: Elf64_Word, - pub p_offset: Elf64_Off, - pub p_vaddr: Elf64_Addr, - pub p_paddr: Elf64_Addr, - pub p_filesz: Elf64_Xword, - pub p_memsz: Elf64_Xword, - pub p_align: Elf64_Xword, - } - - pub struct Elf32_Shdr { - pub sh_name: Elf32_Word, - pub sh_type: Elf32_Word, - pub sh_flags: Elf32_Word, - pub sh_addr: Elf32_Addr, - pub sh_offset: Elf32_Off, - pub sh_size: Elf32_Word, - pub sh_link: Elf32_Word, - pub sh_info: Elf32_Word, - pub sh_addralign: Elf32_Word, - pub sh_entsize: Elf32_Word, - } - - pub struct Elf64_Shdr { - pub sh_name: Elf64_Word, - pub sh_type: Elf64_Word, - pub sh_flags: Elf64_Xword, - pub sh_addr: Elf64_Addr, - pub sh_offset: Elf64_Off, - pub sh_size: Elf64_Xword, - pub sh_link: Elf64_Word, - pub sh_info: Elf64_Word, - pub sh_addralign: Elf64_Xword, - pub sh_entsize: Elf64_Xword, - } - - pub struct in6_pktinfo { - pub ipi6_addr: ::in6_addr, - pub ipi6_ifindex: ::c_uint, - } - - pub struct inotify_event { - pub wd: ::c_int, - pub mask: u32, - pub cookie: u32, - pub len: u32 - } - - pub struct regmatch_t { - pub rm_so: regoff_t, - pub rm_eo: regoff_t, - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS], - __reserved: [::c_uint; 3], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - } - - pub struct mallinfo { - pub arena: ::c_int, - pub ordblks: ::c_int, - pub smblks: ::c_int, - pub hblks: ::c_int, - pub hblkhd: ::c_int, - pub usmblks: ::c_int, - pub fsmblks: ::c_int, - pub uordblks: ::c_int, - pub fordblks: ::c_int, - pub keepcost: ::c_int, - } - - pub struct flock { - pub l_type: i16, - pub l_whence: i16, - pub l_zero1: i32, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - pub l_sysid: u32, - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_basetype: [::c_char; 16], - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - f_filler: [::c_uint; 21], - } - - pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_offset: off_t, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, - pub aio_lio_opcode: ::c_int, - pub _aio_lio_state: *mut ::c_void, - _aio_pad: [::c_int; 3], - pub _aio_next: *mut ::aiocb, - pub _aio_flag: ::c_uint, - pub _aio_iotype: ::c_uint, - pub _aio_result: ::ssize_t, - pub _aio_error: ::c_uint, - pub _aio_suspend: *mut ::c_void, - pub _aio_plist: *mut ::c_void, - pub _aio_policy: ::c_int, - pub _aio_param: ::__sched_param, - } - - pub struct pthread_attr_t { - __data1: ::c_long, - __data2: [u8; 96] - } - - pub struct ipc_perm { - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub seq: ::c_uint, - pub key: ::key_t, - _reserved: [::c_int; 4], - } - - pub struct regex_t { - re_magic: ::c_int, - re_nsub: ::size_t, - re_endp: *const ::c_char, - re_g: *mut ::c_void, - } - - pub struct _thread_attr { - pub __flags: ::c_int, - pub __stacksize: ::size_t, - pub __stackaddr: *mut ::c_void, - pub __exitfunc: ::Option, - pub __policy: ::c_int, - pub __param: ::__sched_param, - pub __guardsize: ::c_uint, - pub __prealloc: ::c_uint, - __spare: [::c_int; 2], - } - - pub struct _sync_attr { - pub __protocol: ::c_int, - pub __flags: ::c_int, - pub __prioceiling: ::c_int, - pub __clockid: ::c_int, - pub __count: ::c_int, - __reserved: [::c_int; 3], - } - - pub struct sockcred { - pub sc_uid: ::uid_t, - pub sc_euid: ::uid_t, - pub sc_gid: ::gid_t, - pub sc_egid: ::gid_t, - pub sc_ngroups: ::c_int, - pub sc_groups: [::gid_t; 1], - } - - pub struct bpf_program { - pub bf_len: ::c_uint, - pub bf_insns: *mut ::bpf_insn, - } - - pub struct bpf_stat { - pub bs_recv: u64, - pub bs_drop: u64, - pub bs_capt: u64, - bs_padding: [u64; 13], - } - - pub struct bpf_version { - pub bv_major: ::c_ushort, - pub bv_minor: ::c_ushort, - } - - pub struct bpf_hdr { - pub bh_tstamp: ::timeval, - pub bh_caplen: u32, - pub bh_datalen: u32, - pub bh_hdrlen: u16, - } - - pub struct bpf_insn { - pub code: u16, - pub jt: ::c_uchar, - pub jf: ::c_uchar, - pub k: u32, - } - - pub struct bpf_dltlist { - pub bfl_len: ::c_uint, - pub bfl_list: *mut ::c_uint, - } - - pub struct unpcbid { - pub unp_pid: ::pid_t, - pub unp_euid: ::uid_t, - pub unp_egid: ::gid_t, - } - - pub struct dl_phdr_info { - pub dlpi_addr: ::Elf64_Addr, - pub dlpi_name: *const ::c_char, - pub dlpi_phdr: *const ::Elf64_Phdr, - pub dlpi_phnum: ::Elf64_Half, - } - - #[repr(align(8))] - pub struct ucontext_t { - pub uc_link: *mut ucontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_stack: stack_t, - pub uc_mcontext: mcontext_t, - } -} - -s_no_extra_traits! { - pub struct sockaddr_un { - pub sun_len: u8, - pub sun_family: sa_family_t, - pub sun_path: [::c_char; 104] - } - - pub struct sockaddr_storage { - pub ss_len: u8, - pub ss_family: sa_family_t, - __ss_pad1: [::c_char; 6], - __ss_align: i64, - __ss_pad2: [::c_char; 112], - } - - pub struct utsname { - pub sysname: [::c_char; _SYSNAME_SIZE], - pub nodename: [::c_char; _SYSNAME_SIZE], - pub release: [::c_char; _SYSNAME_SIZE], - pub version: [::c_char; _SYSNAME_SIZE], - pub machine: [::c_char; _SYSNAME_SIZE], - } - - pub struct sigevent { - pub sigev_notify: ::c_int, - __sigev_un1: usize, // union - pub sigev_value: ::sigval, - __sigev_un2: usize, // union - - } - pub struct dirent { - pub d_ino: ::ino_t, - pub d_offset: ::off_t, - pub d_reclen: ::c_short, - pub d_namelen: ::c_short, - pub d_name: [::c_char; 1], // flex array - } - - pub struct dirent_extra { - pub d_datalen: u16, - pub d_type: u16, - pub d_reserved: u32, - } - - pub struct stat { - pub st_ino: ::ino_t, - pub st_size: ::off_t, - pub st_dev: ::dev_t, - pub st_rdev: ::dev_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub __old_st_mtime: ::_Time32t, - pub __old_st_atime: ::_Time32t, - pub __old_st_ctime: ::_Time32t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_blocksize: ::blksize_t, - pub st_nblocks: i32, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_mtim: ::timespec, - pub st_atim: ::timespec, - pub st_ctim: ::timespec, - } - - pub struct sigset_t { - __val: [u32; 2], - } - - pub struct mq_attr { - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_flags: ::c_long, - pub mq_curmsgs: ::c_long, - pub mq_sendwait: ::c_long, - pub mq_recvwait: ::c_long, - } - - pub struct msg { - pub msg_next: *mut ::msg, - pub msg_type: ::c_long, - pub msg_ts: ::c_ushort, - pub msg_spot: ::c_short, - _pad: [u8; 4], - } - - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_first: *mut ::msg, - pub msg_last: *mut ::msg, - pub msg_cbytes: ::msglen_t, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - pub msg_stime: ::time_t, - msg_pad1: ::c_long, - pub msg_rtime: ::time_t, - msg_pad2: ::c_long, - pub msg_ctime: ::time_t, - msg_pad3: ::c_long, - msg_pad4: [::c_long; 4], - } - - pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::sa_family_t, - pub sdl_index: u16, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 12], - } - - pub struct sync_t { - __u: ::c_uint, // union - pub __owner: ::c_uint, - } - - #[repr(align(4))] - pub struct pthread_barrier_t { // union - __pad: [u8; 28], // union - } - - pub struct pthread_rwlock_t { - pub __active: ::c_int, - pub __blockedwriters: ::c_int, - pub __blockedreaders: ::c_int, - pub __heavy: ::c_int, - pub __lock: ::pthread_mutex_t, // union - pub __rcond: ::pthread_cond_t, // union - pub __wcond: ::pthread_cond_t, // union - pub __owner: ::c_uint, - pub __spare: ::c_uint, - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_len == other.sun_len - && self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for sockaddr_un {} - - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_len", &self.sun_len) - .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) - .finish() - } - } - - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_len.hash(state); - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for utsname { - fn eq(&self, other: &utsname) -> bool { - self.sysname - .iter() - .zip(other.sysname.iter()) - .all(|(a,b)| a == b) - && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a,b)| a == b) - && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a,b)| a == b) - && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a,b)| a == b) - && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for utsname {} - - impl ::fmt::Debug for utsname { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) - .finish() - } - } - - impl ::hash::Hash for utsname { - fn hash(&self, state: &mut H) { - self.sysname.hash(state); - self.nodename.hash(state); - self.release.hash(state); - self.version.hash(state); - self.machine.hash(state); - } - } - - impl PartialEq for mq_attr { - fn eq(&self, other: &mq_attr) -> bool { - self.mq_maxmsg == other.mq_maxmsg && - self.mq_msgsize == other.mq_msgsize && - self.mq_flags == other.mq_flags && - self.mq_curmsgs == other.mq_curmsgs && - self.mq_msgsize == other.mq_msgsize && - self.mq_sendwait == other.mq_sendwait && - self.mq_recvwait == other.mq_recvwait - } - } - - impl Eq for mq_attr {} - - impl ::fmt::Debug for mq_attr { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mq_attr") - .field("mq_maxmsg", &self.mq_maxmsg) - .field("mq_msgsize", &self.mq_msgsize) - .field("mq_flags", &self.mq_flags) - .field("mq_curmsgs", &self.mq_curmsgs) - .field("mq_msgsize", &self.mq_msgsize) - .field("mq_sendwait", &self.mq_sendwait) - .field("mq_recvwait", &self.mq_recvwait) - .finish() - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_len == other.ss_len - && self.ss_family == other.ss_family - && self.__ss_pad1 == other.__ss_pad1 - && self.__ss_align == other.__ss_align - && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for sockaddr_storage {} - - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &self.__ss_pad1) - .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_pad2", &self.__ss_pad2) - .finish() - } - } - - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_len.hash(state); - self.ss_family.hash(state); - self.__ss_pad1.hash(state); - self.__ss_align.hash(state); - self.__ss_pad2.hash(state); - } - } - - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_offset == other.d_offset - && self.d_reclen == other.d_reclen - && self.d_namelen == other.d_namelen - && self - .d_name[..self.d_namelen as _] - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for dirent {} - - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_offset", &self.d_offset) - .field("d_reclen", &self.d_reclen) - .field("d_namelen", &self.d_namelen) - .field("d_name", &&self.d_name[..self.d_namelen as _]) - .finish() - } - } - - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_offset.hash(state); - self.d_reclen.hash(state); - self.d_namelen.hash(state); - self.d_name[..self.d_namelen as _].hash(state); - } - } - } -} - -pub const _SYSNAME_SIZE: usize = 256 + 1; -pub const RLIM_INFINITY: ::rlim_t = 0xfffffffffffffffd; -pub const O_LARGEFILE: ::c_int = 0o0100000; - -// intentionally not public, only used for fd_set -cfg_if! { - if #[cfg(target_pointer_width = "32")] { - const ULONG_SIZE: usize = 32; - } else if #[cfg(target_pointer_width = "64")] { - const ULONG_SIZE: usize = 64; - } else { - // Unknown target_pointer_width - } -} - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 32767; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 2; -pub const _IOLBF: ::c_int = 1; - -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; - -pub const F_DUPFD_CLOEXEC: ::c_int = 5; - -pub const SIGTRAP: ::c_int = 5; - -pub const CLOCK_REALTIME: ::clockid_t = 0; -pub const CLOCK_MONOTONIC: ::clockid_t = 2; -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 3; -pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 4; -pub const TIMER_ABSTIME: ::c_uint = 0x80000000; - -pub const RUSAGE_SELF: ::c_int = 0; - -pub const F_OK: ::c_int = 0; -pub const X_OK: ::c_int = 1; -pub const W_OK: ::c_int = 2; -pub const R_OK: ::c_int = 4; - -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; - -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; - -pub const PROT_NONE: ::c_int = 0x00000000; -pub const PROT_READ: ::c_int = 0x00000100; -pub const PROT_WRITE: ::c_int = 0x00000200; -pub const PROT_EXEC: ::c_int = 0x00000400; - -pub const MAP_FILE: ::c_int = 0; -pub const MAP_SHARED: ::c_int = 1; -pub const MAP_PRIVATE: ::c_int = 2; -pub const MAP_FIXED: ::c_int = 0x10; - -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -pub const MS_ASYNC: ::c_int = 1; -pub const MS_INVALIDATE: ::c_int = 4; -pub const MS_SYNC: ::c_int = 2; - -pub const SCM_RIGHTS: ::c_int = 0x01; -pub const SCM_TIMESTAMP: ::c_int = 0x02; -pub const SCM_CREDS: ::c_int = 0x04; - -pub const MAP_TYPE: ::c_int = 0x3; - -pub const IFF_UP: ::c_int = 0x00000001; -pub const IFF_BROADCAST: ::c_int = 0x00000002; -pub const IFF_DEBUG: ::c_int = 0x00000004; -pub const IFF_LOOPBACK: ::c_int = 0x00000008; -pub const IFF_POINTOPOINT: ::c_int = 0x00000010; -pub const IFF_NOTRAILERS: ::c_int = 0x00000020; -pub const IFF_RUNNING: ::c_int = 0x00000040; -pub const IFF_NOARP: ::c_int = 0x00000080; -pub const IFF_PROMISC: ::c_int = 0x00000100; -pub const IFF_ALLMULTI: ::c_int = 0x00000200; -pub const IFF_MULTICAST: ::c_int = 0x00008000; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_UNIX: ::c_int = AF_LOCAL; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_INET: ::c_int = 2; -pub const AF_IPX: ::c_int = 23; -pub const AF_APPLETALK: ::c_int = 16; -pub const AF_INET6: ::c_int = 24; -pub const AF_ROUTE: ::c_int = 17; -pub const AF_SNA: ::c_int = 11; -pub const AF_BLUETOOTH: ::c_int = 31; -pub const AF_ISDN: ::c_int = 26; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_UNIX: ::c_int = PF_LOCAL; -pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_INET6: ::c_int = AF_INET6; -pub const pseudo_AF_KEY: ::c_int = 29; -pub const PF_KEY: ::c_int = pseudo_AF_KEY; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_SNA: ::c_int = AF_SNA; - -pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -pub const PF_ISDN: ::c_int = AF_ISDN; - -pub const SOMAXCONN: ::c_int = 128; - -pub const MSG_OOB: ::c_int = 0x0001; -pub const MSG_PEEK: ::c_int = 0x0002; -pub const MSG_DONTROUTE: ::c_int = 0x0004; -pub const MSG_CTRUNC: ::c_int = 0x0020; -pub const MSG_TRUNC: ::c_int = 0x0010; -pub const MSG_DONTWAIT: ::c_int = 0x0080; -pub const MSG_EOR: ::c_int = 0x0008; -pub const MSG_WAITALL: ::c_int = 0x0040; -pub const MSG_NOSIGNAL: ::c_int = 0x0800; -pub const MSG_WAITFORONE: ::c_int = 0x2000; - -pub const IP_TOS: ::c_int = 3; -pub const IP_TTL: ::c_int = 4; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_OPTIONS: ::c_int = 1; -pub const IP_RECVOPTS: ::c_int = 5; -pub const IP_RETOPTS: ::c_int = 8; -pub const IP_PKTINFO: ::c_int = 25; -pub const IP_IPSEC_POLICY_COMPAT: ::c_int = 22; -pub const IP_MULTICAST_IF: ::c_int = 9; -pub const IP_MULTICAST_TTL: ::c_int = 10; -pub const IP_MULTICAST_LOOP: ::c_int = 11; -pub const IP_ADD_MEMBERSHIP: ::c_int = 12; -pub const IP_DROP_MEMBERSHIP: ::c_int = 13; -pub const IP_DEFAULT_MULTICAST_TTL: ::c_int = 1; -pub const IP_DEFAULT_MULTICAST_LOOP: ::c_int = 1; - -pub const IPPROTO_HOPOPTS: ::c_int = 0; -pub const IPPROTO_IGMP: ::c_int = 2; -pub const IPPROTO_IPIP: ::c_int = 4; -pub const IPPROTO_EGP: ::c_int = 8; -pub const IPPROTO_PUP: ::c_int = 12; -pub const IPPROTO_IDP: ::c_int = 22; -pub const IPPROTO_TP: ::c_int = 29; -pub const IPPROTO_ROUTING: ::c_int = 43; -pub const IPPROTO_FRAGMENT: ::c_int = 44; -pub const IPPROTO_RSVP: ::c_int = 46; -pub const IPPROTO_GRE: ::c_int = 47; -pub const IPPROTO_ESP: ::c_int = 50; -pub const IPPROTO_AH: ::c_int = 51; -pub const IPPROTO_NONE: ::c_int = 59; -pub const IPPROTO_DSTOPTS: ::c_int = 60; -pub const IPPROTO_ENCAP: ::c_int = 98; -pub const IPPROTO_PIM: ::c_int = 103; -pub const IPPROTO_SCTP: ::c_int = 132; -pub const IPPROTO_RAW: ::c_int = 255; -pub const IPPROTO_MAX: ::c_int = 256; -pub const IPPROTO_CARP: ::c_int = 112; -pub const IPPROTO_DIVERT: ::c_int = 259; -pub const IPPROTO_DONE: ::c_int = 257; -pub const IPPROTO_EON: ::c_int = 80; -pub const IPPROTO_ETHERIP: ::c_int = 97; -pub const IPPROTO_GGP: ::c_int = 3; -pub const IPPROTO_IPCOMP: ::c_int = 108; -pub const IPPROTO_MOBILE: ::c_int = 55; - -pub const IPV6_RTHDR_LOOSE: ::c_int = 0; -pub const IPV6_RTHDR_STRICT: ::c_int = 1; -pub const IPV6_UNICAST_HOPS: ::c_int = 4; -pub const IPV6_MULTICAST_IF: ::c_int = 9; -pub const IPV6_MULTICAST_HOPS: ::c_int = 10; -pub const IPV6_MULTICAST_LOOP: ::c_int = 11; -pub const IPV6_JOIN_GROUP: ::c_int = 12; -pub const IPV6_LEAVE_GROUP: ::c_int = 13; -pub const IPV6_CHECKSUM: ::c_int = 26; -pub const IPV6_V6ONLY: ::c_int = 27; -pub const IPV6_IPSEC_POLICY_COMPAT: ::c_int = 28; -pub const IPV6_RTHDRDSTOPTS: ::c_int = 35; -pub const IPV6_RECVPKTINFO: ::c_int = 36; -pub const IPV6_RECVHOPLIMIT: ::c_int = 37; -pub const IPV6_RECVRTHDR: ::c_int = 38; -pub const IPV6_RECVHOPOPTS: ::c_int = 39; -pub const IPV6_RECVDSTOPTS: ::c_int = 40; -pub const IPV6_RECVPATHMTU: ::c_int = 43; -pub const IPV6_PATHMTU: ::c_int = 44; -pub const IPV6_PKTINFO: ::c_int = 46; -pub const IPV6_HOPLIMIT: ::c_int = 47; -pub const IPV6_NEXTHOP: ::c_int = 48; -pub const IPV6_HOPOPTS: ::c_int = 49; -pub const IPV6_DSTOPTS: ::c_int = 50; -pub const IPV6_RECVTCLASS: ::c_int = 57; -pub const IPV6_TCLASS: ::c_int = 61; -pub const IPV6_DONTFRAG: ::c_int = 62; - -pub const TCP_NODELAY: ::c_int = 0x01; -pub const TCP_MAXSEG: ::c_int = 0x02; -pub const TCP_MD5SIG: ::c_int = 0x10; -pub const TCP_KEEPALIVE: ::c_int = 0x04; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const LOCK_SH: ::c_int = 0x1; -pub const LOCK_EX: ::c_int = 0x2; -pub const LOCK_NB: ::c_int = 0x4; -pub const LOCK_UN: ::c_int = 0x8; - -pub const SS_ONSTACK: ::c_int = 1; -pub const SS_DISABLE: ::c_int = 2; - -pub const PATH_MAX: ::c_int = 1024; - -pub const UIO_MAXIOV: ::c_int = 1024; - -pub const FD_SETSIZE: usize = 256; - -pub const TCIOFF: ::c_int = 0x0002; -pub const TCION: ::c_int = 0x0003; -pub const TCOOFF: ::c_int = 0x0000; -pub const TCOON: ::c_int = 0x0001; -pub const TCIFLUSH: ::c_int = 0; -pub const TCOFLUSH: ::c_int = 1; -pub const TCIOFLUSH: ::c_int = 2; -pub const NL0: ::tcflag_t = 0x000; -pub const NL1: ::tcflag_t = 0x100; -pub const TAB0: ::tcflag_t = 0x0000; -pub const CR0: ::tcflag_t = 0x000; -pub const FF0: ::tcflag_t = 0x0000; -pub const BS0: ::tcflag_t = 0x0000; -pub const VT0: ::tcflag_t = 0x0000; -pub const VERASE: usize = 2; -pub const VKILL: usize = 3; -pub const VINTR: usize = 0; -pub const VQUIT: usize = 1; -pub const VLNEXT: usize = 15; -pub const IGNBRK: ::tcflag_t = 0x00000001; -pub const BRKINT: ::tcflag_t = 0x00000002; -pub const IGNPAR: ::tcflag_t = 0x00000004; -pub const PARMRK: ::tcflag_t = 0x00000008; -pub const INPCK: ::tcflag_t = 0x00000010; -pub const ISTRIP: ::tcflag_t = 0x00000020; -pub const INLCR: ::tcflag_t = 0x00000040; -pub const IGNCR: ::tcflag_t = 0x00000080; -pub const ICRNL: ::tcflag_t = 0x00000100; -pub const IXANY: ::tcflag_t = 0x00000800; -pub const IMAXBEL: ::tcflag_t = 0x00002000; -pub const OPOST: ::tcflag_t = 0x00000001; -pub const CS5: ::tcflag_t = 0x00; -pub const ECHO: ::tcflag_t = 0x00000008; -pub const OCRNL: ::tcflag_t = 0x00000008; -pub const ONOCR: ::tcflag_t = 0x00000010; -pub const ONLRET: ::tcflag_t = 0x00000020; -pub const OFILL: ::tcflag_t = 0x00000040; -pub const OFDEL: ::tcflag_t = 0x00000080; - -pub const WNOHANG: ::c_int = 0x0040; -pub const WUNTRACED: ::c_int = 0x0004; -pub const WSTOPPED: ::c_int = WUNTRACED; -pub const WEXITED: ::c_int = 0x0001; -pub const WCONTINUED: ::c_int = 0x0008; -pub const WNOWAIT: ::c_int = 0x0080; -pub const WTRAPPED: ::c_int = 0x0002; - -pub const RTLD_LOCAL: ::c_int = 0x0200; -pub const RTLD_LAZY: ::c_int = 0x0001; - -pub const POSIX_FADV_NORMAL: ::c_int = 0; -pub const POSIX_FADV_RANDOM: ::c_int = 2; -pub const POSIX_FADV_SEQUENTIAL: ::c_int = 1; -pub const POSIX_FADV_WILLNEED: ::c_int = 3; - -pub const AT_FDCWD: ::c_int = -100; -pub const AT_EACCESS: ::c_int = 0x0001; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x0002; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x0004; -pub const AT_REMOVEDIR: ::c_int = 0x0008; - -pub const LOG_CRON: ::c_int = 9 << 3; -pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -pub const LOG_FTP: ::c_int = 11 << 3; -pub const LOG_PERROR: ::c_int = 0x20; - -pub const PIPE_BUF: usize = 5120; - -pub const CLD_EXITED: ::c_int = 1; -pub const CLD_KILLED: ::c_int = 2; -pub const CLD_DUMPED: ::c_int = 3; -pub const CLD_TRAPPED: ::c_int = 4; -pub const CLD_STOPPED: ::c_int = 5; -pub const CLD_CONTINUED: ::c_int = 6; - -pub const UTIME_OMIT: c_long = 0x40000002; -pub const UTIME_NOW: c_long = 0x40000001; - -pub const POLLIN: ::c_short = POLLRDNORM | POLLRDBAND; -pub const POLLPRI: ::c_short = 0x0008; -pub const POLLOUT: ::c_short = 0x0002; -pub const POLLERR: ::c_short = 0x0020; -pub const POLLHUP: ::c_short = 0x0040; -pub const POLLNVAL: ::c_short = 0x1000; -pub const POLLRDNORM: ::c_short = 0x0001; -pub const POLLRDBAND: ::c_short = 0x0004; - -pub const IPTOS_LOWDELAY: u8 = 0x10; -pub const IPTOS_THROUGHPUT: u8 = 0x08; -pub const IPTOS_RELIABILITY: u8 = 0x04; -pub const IPTOS_MINCOST: u8 = 0x02; - -pub const IPTOS_PREC_NETCONTROL: u8 = 0xe0; -pub const IPTOS_PREC_INTERNETCONTROL: u8 = 0xc0; -pub const IPTOS_PREC_CRITIC_ECP: u8 = 0xa0; -pub const IPTOS_PREC_FLASHOVERRIDE: u8 = 0x80; -pub const IPTOS_PREC_FLASH: u8 = 0x60; -pub const IPTOS_PREC_IMMEDIATE: u8 = 0x40; -pub const IPTOS_PREC_PRIORITY: u8 = 0x20; -pub const IPTOS_PREC_ROUTINE: u8 = 0x00; - -pub const IPTOS_ECN_MASK: u8 = 0x03; -pub const IPTOS_ECN_ECT1: u8 = 0x01; -pub const IPTOS_ECN_ECT0: u8 = 0x02; -pub const IPTOS_ECN_CE: u8 = 0x03; - -pub const IPOPT_CONTROL: u8 = 0x00; -pub const IPOPT_RESERVED1: u8 = 0x20; -pub const IPOPT_RESERVED2: u8 = 0x60; -pub const IPOPT_LSRR: u8 = 131; -pub const IPOPT_RR: u8 = 7; -pub const IPOPT_SSRR: u8 = 137; -pub const IPDEFTTL: u8 = 64; -pub const IPOPT_OPTVAL: u8 = 0; -pub const IPOPT_OLEN: u8 = 1; -pub const IPOPT_OFFSET: u8 = 2; -pub const IPOPT_MINOFF: u8 = 4; -pub const IPOPT_NOP: u8 = 1; -pub const IPOPT_EOL: u8 = 0; -pub const IPOPT_TS: u8 = 68; -pub const IPOPT_TS_TSONLY: u8 = 0; -pub const IPOPT_TS_TSANDADDR: u8 = 1; -pub const IPOPT_TS_PRESPEC: u8 = 3; - -pub const MAX_IPOPTLEN: u8 = 40; -pub const IPVERSION: u8 = 4; -pub const MAXTTL: u8 = 255; - -pub const ARPHRD_ETHER: u16 = 1; -pub const ARPHRD_IEEE802: u16 = 6; -pub const ARPHRD_ARCNET: u16 = 7; -pub const ARPHRD_IEEE1394: u16 = 24; - -pub const SOL_SOCKET: ::c_int = 0xffff; - -pub const SO_DEBUG: ::c_int = 0x0001; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_BINDTODEVICE: ::c_int = 0x0800; -pub const SO_TIMESTAMP: ::c_int = 0x0400; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; - -pub const TIOCM_LE: ::c_int = 0x0100; -pub const TIOCM_DTR: ::c_int = 0x0001; -pub const TIOCM_RTS: ::c_int = 0x0002; -pub const TIOCM_ST: ::c_int = 0x0200; -pub const TIOCM_SR: ::c_int = 0x0400; -pub const TIOCM_CTS: ::c_int = 0x1000; -pub const TIOCM_CAR: ::c_int = TIOCM_CD; -pub const TIOCM_CD: ::c_int = 0x8000; -pub const TIOCM_RNG: ::c_int = TIOCM_RI; -pub const TIOCM_RI: ::c_int = 0x4000; -pub const TIOCM_DSR: ::c_int = 0x2000; - -pub const SCHED_OTHER: ::c_int = 3; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; - -pub const IPC_PRIVATE: ::key_t = 0; - -pub const IPC_CREAT: ::c_int = 0o001000; -pub const IPC_EXCL: ::c_int = 0o002000; -pub const IPC_NOWAIT: ::c_int = 0o004000; - -pub const IPC_RMID: ::c_int = 0; -pub const IPC_SET: ::c_int = 1; -pub const IPC_STAT: ::c_int = 2; - -pub const MSG_NOERROR: ::c_int = 0o010000; - -pub const LOG_NFACILITIES: ::c_int = 24; - -pub const SEM_FAILED: *mut ::sem_t = 0xFFFFFFFFFFFFFFFF as *mut sem_t; - -pub const AI_PASSIVE: ::c_int = 0x00000001; -pub const AI_CANONNAME: ::c_int = 0x00000002; -pub const AI_NUMERICHOST: ::c_int = 0x00000004; - -pub const AI_NUMERICSERV: ::c_int = 0x00000008; - -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 14; - -pub const NI_NUMERICHOST: ::c_int = 0x00000002; -pub const NI_NUMERICSERV: ::c_int = 0x00000008; -pub const NI_NOFQDN: ::c_int = 0x00000001; -pub const NI_NAMEREQD: ::c_int = 0x00000004; -pub const NI_DGRAM: ::c_int = 0x00000010; - -pub const AIO_CANCELED: ::c_int = 0; -pub const AIO_NOTCANCELED: ::c_int = 2; -pub const AIO_ALLDONE: ::c_int = 1; -pub const LIO_READ: ::c_int = 1; -pub const LIO_WRITE: ::c_int = 2; -pub const LIO_NOP: ::c_int = 0; -pub const LIO_WAIT: ::c_int = 1; -pub const LIO_NOWAIT: ::c_int = 0; - -pub const ITIMER_REAL: ::c_int = 0; -pub const ITIMER_VIRTUAL: ::c_int = 1; -pub const ITIMER_PROF: ::c_int = 2; - -pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x00000010; -pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x00000001; -pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x00000004; -pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x00000002; -pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x00000400; -pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x00000040; - -pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; - -pub const RTF_UP: ::c_ushort = 0x0001; -pub const RTF_GATEWAY: ::c_ushort = 0x0002; - -pub const RTF_HOST: ::c_ushort = 0x0004; -pub const RTF_DYNAMIC: ::c_ushort = 0x0010; -pub const RTF_MODIFIED: ::c_ushort = 0x0020; -pub const RTF_REJECT: ::c_ushort = 0x0008; -pub const RTF_STATIC: ::c_ushort = 0x0800; -pub const RTF_XRESOLVE: ::c_ushort = 0x0200; -pub const RTF_BROADCAST: u32 = 0x80000; -pub const RTM_NEWADDR: u16 = 0xc; -pub const RTM_DELADDR: u16 = 0xd; -pub const RTA_DST: ::c_ushort = 0x1; -pub const RTA_GATEWAY: ::c_ushort = 0x2; - -pub const UDP_ENCAP: ::c_int = 100; - -pub const IN_ACCESS: u32 = 0x00000001; -pub const IN_MODIFY: u32 = 0x00000002; -pub const IN_ATTRIB: u32 = 0x00000004; -pub const IN_CLOSE_WRITE: u32 = 0x00000008; -pub const IN_CLOSE_NOWRITE: u32 = 0x00000010; -pub const IN_CLOSE: u32 = IN_CLOSE_WRITE | IN_CLOSE_NOWRITE; -pub const IN_OPEN: u32 = 0x00000020; -pub const IN_MOVED_FROM: u32 = 0x00000040; -pub const IN_MOVED_TO: u32 = 0x00000080; -pub const IN_MOVE: u32 = IN_MOVED_FROM | IN_MOVED_TO; -pub const IN_CREATE: u32 = 0x00000100; -pub const IN_DELETE: u32 = 0x00000200; -pub const IN_DELETE_SELF: u32 = 0x00000400; -pub const IN_MOVE_SELF: u32 = 0x00000800; -pub const IN_UNMOUNT: u32 = 0x00002000; -pub const IN_Q_OVERFLOW: u32 = 0x00004000; -pub const IN_IGNORED: u32 = 0x00008000; -pub const IN_ONLYDIR: u32 = 0x01000000; -pub const IN_DONT_FOLLOW: u32 = 0x02000000; - -pub const IN_ISDIR: u32 = 0x40000000; -pub const IN_ONESHOT: u32 = 0x80000000; - -pub const REG_EXTENDED: ::c_int = 0o0001; -pub const REG_ICASE: ::c_int = 0o0002; -pub const REG_NEWLINE: ::c_int = 0o0010; -pub const REG_NOSUB: ::c_int = 0o0004; - -pub const REG_NOTBOL: ::c_int = 0o00001; -pub const REG_NOTEOL: ::c_int = 0o00002; - -pub const REG_ENOSYS: ::c_int = 17; -pub const REG_NOMATCH: ::c_int = 1; -pub const REG_BADPAT: ::c_int = 2; -pub const REG_ECOLLATE: ::c_int = 3; -pub const REG_ECTYPE: ::c_int = 4; -pub const REG_EESCAPE: ::c_int = 5; -pub const REG_ESUBREG: ::c_int = 6; -pub const REG_EBRACK: ::c_int = 7; -pub const REG_EPAREN: ::c_int = 8; -pub const REG_EBRACE: ::c_int = 9; -pub const REG_BADBR: ::c_int = 10; -pub const REG_ERANGE: ::c_int = 11; -pub const REG_ESPACE: ::c_int = 12; -pub const REG_BADRPT: ::c_int = 13; - -// errno.h -pub const EOK: ::c_int = 0; -pub const EWOULDBLOCK: ::c_int = EAGAIN; -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EDEADLK: ::c_int = 45; -pub const ENOLCK: ::c_int = 46; -pub const ECANCELED: ::c_int = 47; -pub const EDQUOT: ::c_int = 49; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EDEADLOCK: ::c_int = 56; -pub const EBFONT: ::c_int = 57; -pub const EOWNERDEAD: ::c_int = 58; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EMULTIHOP: ::c_int = 74; -pub const EBADMSG: ::c_int = 77; -pub const ENAMETOOLONG: ::c_int = 78; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ENOSYS: ::c_int = 89; -pub const ELOOP: ::c_int = 90; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const ENOTEMPTY: ::c_int = 93; -pub const EUSERS: ::c_int = 94; -pub const ENOTRECOVERABLE: ::c_int = 95; -pub const EOPNOTSUPP: ::c_int = 103; -pub const EFPOS: ::c_int = 110; -pub const ESTALE: ::c_int = 122; -pub const EINPROGRESS: ::c_int = 236; -pub const EALREADY: ::c_int = 237; -pub const ENOTSOCK: ::c_int = 238; -pub const EDESTADDRREQ: ::c_int = 239; -pub const EMSGSIZE: ::c_int = 240; -pub const EPROTOTYPE: ::c_int = 241; -pub const ENOPROTOOPT: ::c_int = 242; -pub const EPROTONOSUPPORT: ::c_int = 243; -pub const ESOCKTNOSUPPORT: ::c_int = 244; -pub const EPFNOSUPPORT: ::c_int = 246; -pub const EAFNOSUPPORT: ::c_int = 247; -pub const EADDRINUSE: ::c_int = 248; -pub const EADDRNOTAVAIL: ::c_int = 249; -pub const ENETDOWN: ::c_int = 250; -pub const ENETUNREACH: ::c_int = 251; -pub const ENETRESET: ::c_int = 252; -pub const ECONNABORTED: ::c_int = 253; -pub const ECONNRESET: ::c_int = 254; -pub const ENOBUFS: ::c_int = 255; -pub const EISCONN: ::c_int = 256; -pub const ENOTCONN: ::c_int = 257; -pub const ESHUTDOWN: ::c_int = 258; -pub const ETOOMANYREFS: ::c_int = 259; -pub const ETIMEDOUT: ::c_int = 260; -pub const ECONNREFUSED: ::c_int = 261; -pub const EHOSTDOWN: ::c_int = 264; -pub const EHOSTUNREACH: ::c_int = 265; -pub const EBADRPC: ::c_int = 272; -pub const ERPCMISMATCH: ::c_int = 273; -pub const EPROGUNAVAIL: ::c_int = 274; -pub const EPROGMISMATCH: ::c_int = 275; -pub const EPROCUNAVAIL: ::c_int = 276; -pub const ENOREMOTE: ::c_int = 300; -pub const ENONDP: ::c_int = 301; -pub const EBADFSYS: ::c_int = 302; -pub const EMORE: ::c_int = 309; -pub const ECTRLTERM: ::c_int = 310; -pub const ENOLIC: ::c_int = 311; -pub const ESRVRFAULT: ::c_int = 312; -pub const EENDIAN: ::c_int = 313; -pub const ESECTYPEINVAL: ::c_int = 314; - -pub const RUSAGE_CHILDREN: ::c_int = -1; -pub const L_tmpnam: ::c_uint = 255; - -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 9; -pub const _PC_NO_TRUNC: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_SYNC_IO: ::c_int = 14; -pub const _PC_ASYNC_IO: ::c_int = 12; -pub const _PC_PRIO_IO: ::c_int = 13; -pub const _PC_SOCK_MAXBUF: ::c_int = 15; -pub const _PC_FILESIZEBITS: ::c_int = 16; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 22; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 23; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 24; -pub const _PC_REC_XFER_ALIGN: ::c_int = 25; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 21; -pub const _PC_SYMLINK_MAX: ::c_int = 17; -pub const _PC_2_SYMLINKS: ::c_int = 20; - -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_ARG_MAX: ::c_int = 1; -pub const _SC_CHILD_MAX: ::c_int = 2; -pub const _SC_CLK_TCK: ::c_int = 3; -pub const _SC_NGROUPS_MAX: ::c_int = 4; -pub const _SC_OPEN_MAX: ::c_int = 5; -pub const _SC_JOB_CONTROL: ::c_int = 6; -pub const _SC_SAVED_IDS: ::c_int = 7; -pub const _SC_VERSION: ::c_int = 8; -pub const _SC_PASS_MAX: ::c_int = 9; -pub const _SC_PAGESIZE: ::c_int = 11; -pub const _SC_XOPEN_VERSION: ::c_int = 12; -pub const _SC_STREAM_MAX: ::c_int = 13; -pub const _SC_TZNAME_MAX: ::c_int = 14; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 15; -pub const _SC_AIO_MAX: ::c_int = 16; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 17; -pub const _SC_DELAYTIMER_MAX: ::c_int = 18; -pub const _SC_MQ_OPEN_MAX: ::c_int = 19; -pub const _SC_MQ_PRIO_MAX: ::c_int = 20; -pub const _SC_RTSIG_MAX: ::c_int = 21; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 22; -pub const _SC_SEM_VALUE_MAX: ::c_int = 23; -pub const _SC_SIGQUEUE_MAX: ::c_int = 24; -pub const _SC_TIMER_MAX: ::c_int = 25; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 26; -pub const _SC_FSYNC: ::c_int = 27; -pub const _SC_MAPPED_FILES: ::c_int = 28; -pub const _SC_MEMLOCK: ::c_int = 29; -pub const _SC_MEMLOCK_RANGE: ::c_int = 30; -pub const _SC_MEMORY_PROTECTION: ::c_int = 31; -pub const _SC_MESSAGE_PASSING: ::c_int = 32; -pub const _SC_PRIORITIZED_IO: ::c_int = 33; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 34; -pub const _SC_REALTIME_SIGNALS: ::c_int = 35; -pub const _SC_SEMAPHORES: ::c_int = 36; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 37; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 38; -pub const _SC_TIMERS: ::c_int = 39; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 40; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 41; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 42; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 43; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 44; -pub const _SC_THREAD_STACK_MIN: ::c_int = 45; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 46; -pub const _SC_TTY_NAME_MAX: ::c_int = 47; -pub const _SC_THREADS: ::c_int = 48; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 49; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 50; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 51; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 52; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 53; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 54; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 55; -pub const _SC_2_CHAR_TERM: ::c_int = 56; -pub const _SC_2_C_BIND: ::c_int = 57; -pub const _SC_2_C_DEV: ::c_int = 58; -pub const _SC_2_C_VERSION: ::c_int = 59; -pub const _SC_2_FORT_DEV: ::c_int = 60; -pub const _SC_2_FORT_RUN: ::c_int = 61; -pub const _SC_2_LOCALEDEF: ::c_int = 62; -pub const _SC_2_SW_DEV: ::c_int = 63; -pub const _SC_2_UPE: ::c_int = 64; -pub const _SC_2_VERSION: ::c_int = 65; -pub const _SC_ATEXIT_MAX: ::c_int = 66; -pub const _SC_AVPHYS_PAGES: ::c_int = 67; -pub const _SC_BC_BASE_MAX: ::c_int = 68; -pub const _SC_BC_DIM_MAX: ::c_int = 69; -pub const _SC_BC_SCALE_MAX: ::c_int = 70; -pub const _SC_BC_STRING_MAX: ::c_int = 71; -pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 72; -pub const _SC_CHAR_BIT: ::c_int = 73; -pub const _SC_CHAR_MAX: ::c_int = 74; -pub const _SC_CHAR_MIN: ::c_int = 75; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 76; -pub const _SC_EQUIV_CLASS_MAX: ::c_int = 77; -pub const _SC_EXPR_NEST_MAX: ::c_int = 78; -pub const _SC_INT_MAX: ::c_int = 79; -pub const _SC_INT_MIN: ::c_int = 80; -pub const _SC_LINE_MAX: ::c_int = 81; -pub const _SC_LONG_BIT: ::c_int = 82; -pub const _SC_MB_LEN_MAX: ::c_int = 83; -pub const _SC_NL_ARGMAX: ::c_int = 84; -pub const _SC_NL_LANGMAX: ::c_int = 85; -pub const _SC_NL_MSGMAX: ::c_int = 86; -pub const _SC_NL_NMAX: ::c_int = 87; -pub const _SC_NL_SETMAX: ::c_int = 88; -pub const _SC_NL_TEXTMAX: ::c_int = 89; -pub const _SC_NPROCESSORS_CONF: ::c_int = 90; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 91; -pub const _SC_NZERO: ::c_int = 92; -pub const _SC_PHYS_PAGES: ::c_int = 93; -pub const _SC_PII: ::c_int = 94; -pub const _SC_PII_INTERNET: ::c_int = 95; -pub const _SC_PII_INTERNET_DGRAM: ::c_int = 96; -pub const _SC_PII_INTERNET_STREAM: ::c_int = 97; -pub const _SC_PII_OSI: ::c_int = 98; -pub const _SC_PII_OSI_CLTS: ::c_int = 99; -pub const _SC_PII_OSI_COTS: ::c_int = 100; -pub const _SC_PII_OSI_M: ::c_int = 101; -pub const _SC_PII_SOCKET: ::c_int = 102; -pub const _SC_PII_XTI: ::c_int = 103; -pub const _SC_POLL: ::c_int = 104; -pub const _SC_RE_DUP_MAX: ::c_int = 105; -pub const _SC_SCHAR_MAX: ::c_int = 106; -pub const _SC_SCHAR_MIN: ::c_int = 107; -pub const _SC_SELECT: ::c_int = 108; -pub const _SC_SHRT_MAX: ::c_int = 109; -pub const _SC_SHRT_MIN: ::c_int = 110; -pub const _SC_SSIZE_MAX: ::c_int = 111; -pub const _SC_T_IOV_MAX: ::c_int = 112; -pub const _SC_UCHAR_MAX: ::c_int = 113; -pub const _SC_UINT_MAX: ::c_int = 114; -pub const _SC_UIO_MAXIOV: ::c_int = 115; -pub const _SC_ULONG_MAX: ::c_int = 116; -pub const _SC_USHRT_MAX: ::c_int = 117; -pub const _SC_WORD_BIT: ::c_int = 118; -pub const _SC_XOPEN_CRYPT: ::c_int = 119; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 120; -pub const _SC_XOPEN_SHM: ::c_int = 121; -pub const _SC_XOPEN_UNIX: ::c_int = 122; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 123; -pub const _SC_XOPEN_XPG2: ::c_int = 124; -pub const _SC_XOPEN_XPG3: ::c_int = 125; -pub const _SC_XOPEN_XPG4: ::c_int = 126; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 127; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 128; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 129; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 130; -pub const _SC_ADVISORY_INFO: ::c_int = 131; -pub const _SC_CPUTIME: ::c_int = 132; -pub const _SC_SPAWN: ::c_int = 133; -pub const _SC_SPORADIC_SERVER: ::c_int = 134; -pub const _SC_THREAD_CPUTIME: ::c_int = 135; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 136; -pub const _SC_TIMEOUTS: ::c_int = 137; -pub const _SC_BARRIERS: ::c_int = 138; -pub const _SC_CLOCK_SELECTION: ::c_int = 139; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 140; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 141; -pub const _SC_SPIN_LOCKS: ::c_int = 142; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 143; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 144; -pub const _SC_TRACE: ::c_int = 145; -pub const _SC_TRACE_INHERIT: ::c_int = 146; -pub const _SC_TRACE_LOG: ::c_int = 147; -pub const _SC_2_PBS: ::c_int = 148; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 149; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 150; -pub const _SC_2_PBS_LOCATE: ::c_int = 151; -pub const _SC_2_PBS_MESSAGE: ::c_int = 152; -pub const _SC_2_PBS_TRACK: ::c_int = 153; -pub const _SC_HOST_NAME_MAX: ::c_int = 154; -pub const _SC_IOV_MAX: ::c_int = 155; -pub const _SC_IPV6: ::c_int = 156; -pub const _SC_RAW_SOCKETS: ::c_int = 157; -pub const _SC_REGEXP: ::c_int = 158; -pub const _SC_SHELL: ::c_int = 159; -pub const _SC_SS_REPL_MAX: ::c_int = 160; -pub const _SC_SYMLOOP_MAX: ::c_int = 161; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 162; -pub const _SC_TRACE_NAME_MAX: ::c_int = 163; -pub const _SC_TRACE_SYS_MAX: ::c_int = 164; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 165; -pub const _SC_V6_ILP32_OFF32: ::c_int = 166; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 167; -pub const _SC_V6_LP64_OFF64: ::c_int = 168; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 169; -pub const _SC_XOPEN_REALTIME: ::c_int = 170; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 171; -pub const _SC_XOPEN_LEGACY: ::c_int = 172; -pub const _SC_XOPEN_STREAMS: ::c_int = 173; -pub const _SC_V7_ILP32_OFF32: ::c_int = 176; -pub const _SC_V7_ILP32_OFFBIG: ::c_int = 177; -pub const _SC_V7_LP64_OFF64: ::c_int = 178; -pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 179; - -pub const GLOB_ERR: ::c_int = 0x0001; -pub const GLOB_MARK: ::c_int = 0x0002; -pub const GLOB_NOSORT: ::c_int = 0x0004; -pub const GLOB_DOOFFS: ::c_int = 0x0008; -pub const GLOB_NOCHECK: ::c_int = 0x0010; -pub const GLOB_APPEND: ::c_int = 0x0020; -pub const GLOB_NOESCAPE: ::c_int = 0x0040; - -pub const GLOB_NOSPACE: ::c_int = 1; -pub const GLOB_ABORTED: ::c_int = 2; -pub const GLOB_NOMATCH: ::c_int = 3; - -pub const S_IEXEC: mode_t = ::S_IXUSR; -pub const S_IWRITE: mode_t = ::S_IWUSR; -pub const S_IREAD: mode_t = ::S_IRUSR; - -pub const S_IFIFO: ::mode_t = 0x1000; -pub const S_IFCHR: ::mode_t = 0x2000; -pub const S_IFDIR: ::mode_t = 0x4000; -pub const S_IFBLK: ::mode_t = 0x6000; -pub const S_IFREG: ::mode_t = 0x8000; -pub const S_IFLNK: ::mode_t = 0xA000; -pub const S_IFSOCK: ::mode_t = 0xC000; -pub const S_IFMT: ::mode_t = 0xF000; - -pub const S_IXOTH: ::mode_t = 0o000001; -pub const S_IWOTH: ::mode_t = 0o000002; -pub const S_IROTH: ::mode_t = 0o000004; -pub const S_IRWXO: ::mode_t = 0o000007; -pub const S_IXGRP: ::mode_t = 0o000010; -pub const S_IWGRP: ::mode_t = 0o000020; -pub const S_IRGRP: ::mode_t = 0o000040; -pub const S_IRWXG: ::mode_t = 0o000070; -pub const S_IXUSR: ::mode_t = 0o000100; -pub const S_IWUSR: ::mode_t = 0o000200; -pub const S_IRUSR: ::mode_t = 0o000400; -pub const S_IRWXU: ::mode_t = 0o000700; - -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; - -pub const ST_RDONLY: ::c_ulong = 0x01; -pub const ST_NOSUID: ::c_ulong = 0x04; -pub const ST_NOEXEC: ::c_ulong = 0x02; -pub const ST_NOATIME: ::c_ulong = 0x20; - -pub const RTLD_NEXT: *mut ::c_void = -3i64 as *mut ::c_void; -pub const RTLD_DEFAULT: *mut ::c_void = -2i64 as *mut ::c_void; -pub const RTLD_NODELETE: ::c_int = 0x1000; -pub const RTLD_NOW: ::c_int = 0x0002; - -pub const EMPTY: ::c_short = 0; -pub const RUN_LVL: ::c_short = 1; -pub const BOOT_TIME: ::c_short = 2; -pub const NEW_TIME: ::c_short = 4; -pub const OLD_TIME: ::c_short = 3; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const USER_PROCESS: ::c_short = 7; -pub const DEAD_PROCESS: ::c_short = 8; -pub const ACCOUNTING: ::c_short = 9; - -pub const ENOTSUP: ::c_int = 48; - -pub const BUFSIZ: ::c_uint = 1024; -pub const TMP_MAX: ::c_uint = 26 * 26 * 26; -pub const FOPEN_MAX: ::c_uint = 16; -pub const FILENAME_MAX: ::c_uint = 255; - -pub const NI_MAXHOST: ::socklen_t = 1025; -pub const M_KEEP: ::c_int = 4; -pub const REG_STARTEND: ::c_int = 0o00004; -pub const VEOF: usize = 4; - -pub const RTLD_GLOBAL: ::c_int = 0x0100; -pub const RTLD_NOLOAD: ::c_int = 0x0004; - -pub const O_RDONLY: ::c_int = 0o000000; -pub const O_WRONLY: ::c_int = 0o000001; -pub const O_RDWR: ::c_int = 0o000002; - -pub const O_EXEC: ::c_int = 0o00003; -pub const O_ASYNC: ::c_int = 0o0200000; -pub const O_NDELAY: ::c_int = O_NONBLOCK; -pub const O_TRUNC: ::c_int = 0o001000; -pub const O_CLOEXEC: ::c_int = 0o020000; -pub const O_DIRECTORY: ::c_int = 0o4000000; -pub const O_ACCMODE: ::c_int = 0o000007; -pub const O_APPEND: ::c_int = 0o000010; -pub const O_CREAT: ::c_int = 0o000400; -pub const O_EXCL: ::c_int = 0o002000; -pub const O_NOCTTY: ::c_int = 0o004000; -pub const O_NONBLOCK: ::c_int = 0o000200; -pub const O_SYNC: ::c_int = 0o000040; -pub const O_RSYNC: ::c_int = 0o000100; -pub const O_DSYNC: ::c_int = 0o000020; -pub const O_NOFOLLOW: ::c_int = 0o010000; - -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; - -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_CLOEXEC: ::c_int = 0x10000000; - -pub const SA_SIGINFO: ::c_int = 0x0002; -pub const SA_NOCLDWAIT: ::c_int = 0x0020; -pub const SA_NODEFER: ::c_int = 0x0010; -pub const SA_RESETHAND: ::c_int = 0x0004; -pub const SA_NOCLDSTOP: ::c_int = 0x0001; - -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGWINCH: ::c_int = 20; -pub const SIGCHLD: ::c_int = 18; -pub const SIGBUS: ::c_int = 10; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGCONT: ::c_int = 25; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGURG: ::c_int = 21; -pub const SIGIO: ::c_int = SIGPOLL; -pub const SIGSYS: ::c_int = 12; -pub const SIGPOLL: ::c_int = 22; -pub const SIGPWR: ::c_int = 19; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; - -pub const POLLWRNORM: ::c_short = ::POLLOUT; -pub const POLLWRBAND: ::c_short = 0x0010; - -pub const F_SETLK: ::c_int = 106; -pub const F_SETLKW: ::c_int = 107; -pub const F_ALLOCSP: ::c_int = 110; -pub const F_FREESP: ::c_int = 111; -pub const F_GETLK: ::c_int = 114; - -pub const F_RDLCK: ::c_int = 1; -pub const F_WRLCK: ::c_int = 2; -pub const F_UNLCK: ::c_int = 3; - -pub const NCCS: usize = 40; - -pub const MAP_ANON: ::c_int = MAP_ANONYMOUS; -pub const MAP_ANONYMOUS: ::c_int = 0x00080000; - -pub const MCL_CURRENT: ::c_int = 0x000000001; -pub const MCL_FUTURE: ::c_int = 0x000000002; - -pub const _TIO_CBAUD: ::tcflag_t = 15; -pub const CBAUD: ::tcflag_t = _TIO_CBAUD; -pub const TAB1: ::tcflag_t = 0x0800; -pub const TAB2: ::tcflag_t = 0x1000; -pub const TAB3: ::tcflag_t = 0x1800; -pub const CR1: ::tcflag_t = 0x200; -pub const CR2: ::tcflag_t = 0x400; -pub const CR3: ::tcflag_t = 0x600; -pub const FF1: ::tcflag_t = 0x8000; -pub const BS1: ::tcflag_t = 0x2000; -pub const VT1: ::tcflag_t = 0x4000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 17; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x00000004; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x10; -pub const CS7: ::tcflag_t = 0x20; -pub const CS8: ::tcflag_t = 0x30; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const OLCUC: ::tcflag_t = 0x00000002; -pub const NLDLY: ::tcflag_t = 0x00000100; -pub const CRDLY: ::tcflag_t = 0x00000600; -pub const TABDLY: ::tcflag_t = 0x00001800; -pub const BSDLY: ::tcflag_t = 0x00002000; -pub const FFDLY: ::tcflag_t = 0x00008000; -pub const VTDLY: ::tcflag_t = 0x00004000; -pub const XTABS: ::tcflag_t = 0x1800; - -pub const B0: ::speed_t = 0; -pub const B50: ::speed_t = 1; -pub const B75: ::speed_t = 2; -pub const B110: ::speed_t = 3; -pub const B134: ::speed_t = 4; -pub const B150: ::speed_t = 5; -pub const B200: ::speed_t = 6; -pub const B300: ::speed_t = 7; -pub const B600: ::speed_t = 8; -pub const B1200: ::speed_t = 9; -pub const B1800: ::speed_t = 10; -pub const B2400: ::speed_t = 11; -pub const B4800: ::speed_t = 12; -pub const B9600: ::speed_t = 13; -pub const B19200: ::speed_t = 14; -pub const B38400: ::speed_t = 15; -pub const EXTA: ::speed_t = 14; -pub const EXTB: ::speed_t = 15; -pub const B57600: ::speed_t = 57600; -pub const B115200: ::speed_t = 115200; - -pub const VEOL: usize = 5; -pub const VEOL2: usize = 6; -pub const VMIN: usize = 16; -pub const IEXTEN: ::tcflag_t = 0x00008000; -pub const TOSTOP: ::tcflag_t = 0x00000100; - -pub const TCSANOW: ::c_int = 0x0001; -pub const TCSADRAIN: ::c_int = 0x0002; -pub const TCSAFLUSH: ::c_int = 0x0004; - -pub const HW_MACHINE: ::c_int = 1; -pub const HW_MODEL: ::c_int = 2; -pub const HW_NCPU: ::c_int = 3; -pub const HW_BYTEORDER: ::c_int = 4; -pub const HW_PHYSMEM: ::c_int = 5; -pub const HW_USERMEM: ::c_int = 6; -pub const HW_PAGESIZE: ::c_int = 7; -pub const HW_DISKNAMES: ::c_int = 8; -pub const HW_IOSTATS: ::c_int = 9; -pub const HW_MACHINE_ARCH: ::c_int = 10; -pub const HW_ALIGNBYTES: ::c_int = 11; -pub const HW_CNMAGIC: ::c_int = 12; -pub const HW_PHYSMEM64: ::c_int = 13; -pub const HW_USERMEM64: ::c_int = 14; -pub const HW_IOSTATNAMES: ::c_int = 15; -pub const HW_MAXID: ::c_int = 15; - -pub const CTL_UNSPEC: ::c_int = 0; -pub const CTL_KERN: ::c_int = 1; -pub const CTL_VM: ::c_int = 2; -pub const CTL_VFS: ::c_int = 3; -pub const CTL_NET: ::c_int = 4; -pub const CTL_DEBUG: ::c_int = 5; -pub const CTL_HW: ::c_int = 6; -pub const CTL_MACHDEP: ::c_int = 7; -pub const CTL_USER: ::c_int = 8; -pub const CTL_QNX: ::c_int = 9; -pub const CTL_PROC: ::c_int = 10; -pub const CTL_VENDOR: ::c_int = 11; -pub const CTL_EMUL: ::c_int = 12; -pub const CTL_SECURITY: ::c_int = 13; -pub const CTL_MAXID: ::c_int = 14; - -pub const DAY_1: ::nl_item = 8; -pub const DAY_2: ::nl_item = 9; -pub const DAY_3: ::nl_item = 10; -pub const DAY_4: ::nl_item = 11; -pub const DAY_5: ::nl_item = 12; -pub const DAY_6: ::nl_item = 13; -pub const DAY_7: ::nl_item = 14; - -pub const MON_1: ::nl_item = 22; -pub const MON_2: ::nl_item = 23; -pub const MON_3: ::nl_item = 24; -pub const MON_4: ::nl_item = 25; -pub const MON_5: ::nl_item = 26; -pub const MON_6: ::nl_item = 27; -pub const MON_7: ::nl_item = 28; -pub const MON_8: ::nl_item = 29; -pub const MON_9: ::nl_item = 30; -pub const MON_10: ::nl_item = 31; -pub const MON_11: ::nl_item = 32; -pub const MON_12: ::nl_item = 33; - -pub const ABDAY_1: ::nl_item = 15; -pub const ABDAY_2: ::nl_item = 16; -pub const ABDAY_3: ::nl_item = 17; -pub const ABDAY_4: ::nl_item = 18; -pub const ABDAY_5: ::nl_item = 19; -pub const ABDAY_6: ::nl_item = 20; -pub const ABDAY_7: ::nl_item = 21; - -pub const ABMON_1: ::nl_item = 34; -pub const ABMON_2: ::nl_item = 35; -pub const ABMON_3: ::nl_item = 36; -pub const ABMON_4: ::nl_item = 37; -pub const ABMON_5: ::nl_item = 38; -pub const ABMON_6: ::nl_item = 39; -pub const ABMON_7: ::nl_item = 40; -pub const ABMON_8: ::nl_item = 41; -pub const ABMON_9: ::nl_item = 42; -pub const ABMON_10: ::nl_item = 43; -pub const ABMON_11: ::nl_item = 44; -pub const ABMON_12: ::nl_item = 45; - -pub const AF_ARP: ::c_int = 28; -pub const AF_CCITT: ::c_int = 10; -pub const AF_CHAOS: ::c_int = 5; -pub const AF_CNT: ::c_int = 21; -pub const AF_COIP: ::c_int = 20; -pub const AF_DATAKIT: ::c_int = 9; -pub const AF_DECnet: ::c_int = 12; -pub const AF_DLI: ::c_int = 13; -pub const AF_E164: ::c_int = 26; -pub const AF_ECMA: ::c_int = 8; -pub const AF_HYLINK: ::c_int = 15; -pub const AF_IEEE80211: ::c_int = 32; -pub const AF_IMPLINK: ::c_int = 3; -pub const AF_ISO: ::c_int = 7; -pub const AF_LAT: ::c_int = 14; -pub const AF_LINK: ::c_int = 18; -pub const AF_NATM: ::c_int = 27; -pub const AF_NS: ::c_int = 6; -pub const AF_OSI: ::c_int = 7; -pub const AF_PUP: ::c_int = 4; -pub const ALT_DIGITS: ::nl_item = 50; -pub const AM_STR: ::nl_item = 6; -pub const B76800: ::speed_t = 76800; - -pub const BIOCFLUSH: ::c_int = 17000; -pub const BIOCGBLEN: ::c_int = 1074020966; -pub const BIOCGDLT: ::c_int = 1074020970; -pub const BIOCGDLTLIST: ::c_int = -1072676233; -pub const BIOCGETIF: ::c_int = 1083196011; -pub const BIOCGHDRCMPLT: ::c_int = 1074020980; -pub const BIOCGRTIMEOUT: ::c_int = 1074807406; -pub const BIOCGSEESENT: ::c_int = 1074020984; -pub const BIOCGSTATS: ::c_int = 1082147439; -pub const BIOCIMMEDIATE: ::c_int = -2147204496; -pub const BIOCPROMISC: ::c_int = 17001; -pub const BIOCSBLEN: ::c_int = -1073462682; -pub const BIOCSDLT: ::c_int = -2147204490; -pub const BIOCSETF: ::c_int = -2146418073; -pub const BIOCSETIF: ::c_int = -2138029460; -pub const BIOCSHDRCMPLT: ::c_int = -2147204491; -pub const BIOCSRTIMEOUT: ::c_int = -2146418067; -pub const BIOCSSEESENT: ::c_int = -2147204487; -pub const BIOCVERSION: ::c_int = 1074020977; - -pub const BPF_ALIGNMENT: usize = ::mem::size_of::<::c_long>(); -pub const CHAR_BIT: usize = 8; -pub const CODESET: ::nl_item = 1; -pub const CRNCYSTR: ::nl_item = 55; - -pub const D_FLAG_FILTER: ::c_int = 0x00000001; -pub const D_FLAG_STAT: ::c_int = 0x00000002; -pub const D_FLAG_STAT_FORM_MASK: ::c_int = 0x000000f0; -pub const D_FLAG_STAT_FORM_T32_2001: ::c_int = 0x00000010; -pub const D_FLAG_STAT_FORM_T32_2008: ::c_int = 0x00000020; -pub const D_FLAG_STAT_FORM_T64_2008: ::c_int = 0x00000030; -pub const D_FLAG_STAT_FORM_UNSET: ::c_int = 0x00000000; - -pub const D_FMT: ::nl_item = 3; -pub const D_GETFLAG: ::c_int = 1; -pub const D_SETFLAG: ::c_int = 2; -pub const D_T_FMT: ::nl_item = 2; -pub const ERA: ::nl_item = 46; -pub const ERA_D_FMT: ::nl_item = 47; -pub const ERA_D_T_FMT: ::nl_item = 48; -pub const ERA_T_FMT: ::nl_item = 49; -pub const RADIXCHAR: ::nl_item = 51; -pub const THOUSEP: ::nl_item = 52; -pub const YESEXPR: ::nl_item = 53; -pub const NOEXPR: ::nl_item = 54; -pub const F_GETOWN: ::c_int = 35; - -pub const FIONBIO: ::c_int = -2147195266; -pub const FIOASYNC: ::c_int = -2147195267; -pub const FIOCLEX: ::c_int = 26113; -pub const FIOGETOWN: ::c_int = 1074030203; -pub const FIONCLEX: ::c_int = 26114; -pub const FIONREAD: ::c_int = 1074030207; -pub const FIONSPACE: ::c_int = 1074030200; -pub const FIONWRITE: ::c_int = 1074030201; -pub const FIOSETOWN: ::c_int = -2147195268; - -pub const F_SETOWN: ::c_int = 36; -pub const IFF_ACCEPTRTADV: ::c_int = 0x40000000; -pub const IFF_IP6FORWARDING: ::c_int = 0x20000000; -pub const IFF_LINK0: ::c_int = 0x00001000; -pub const IFF_LINK1: ::c_int = 0x00002000; -pub const IFF_LINK2: ::c_int = 0x00004000; -pub const IFF_OACTIVE: ::c_int = 0x00000400; -pub const IFF_SHIM: ::c_int = 0x80000000; -pub const IFF_SIMPLEX: ::c_int = 0x00000800; -pub const IHFLOW: tcflag_t = 0x00000001; -pub const IIDLE: tcflag_t = 0x00000008; -pub const IP_RECVDSTADDR: ::c_int = 7; -pub const IP_RECVIF: ::c_int = 20; -pub const IPTOS_ECN_NOTECT: u8 = 0x00; -pub const IUCLC: tcflag_t = 0x00000200; -pub const IUTF8: tcflag_t = 0x0004000; - -pub const KERN_ARGMAX: ::c_int = 8; -pub const KERN_ARND: ::c_int = 81; -pub const KERN_BOOTTIME: ::c_int = 21; -pub const KERN_CLOCKRATE: ::c_int = 12; -pub const KERN_FILE: ::c_int = 15; -pub const KERN_HOSTID: ::c_int = 11; -pub const KERN_HOSTNAME: ::c_int = 10; -pub const KERN_IOV_MAX: ::c_int = 38; -pub const KERN_JOB_CONTROL: ::c_int = 19; -pub const KERN_LOGSIGEXIT: ::c_int = 46; -pub const KERN_MAXFILES: ::c_int = 7; -pub const KERN_MAXID: ::c_int = 83; -pub const KERN_MAXPROC: ::c_int = 6; -pub const KERN_MAXVNODES: ::c_int = 5; -pub const KERN_NGROUPS: ::c_int = 18; -pub const KERN_OSRELEASE: ::c_int = 2; -pub const KERN_OSREV: ::c_int = 3; -pub const KERN_OSTYPE: ::c_int = 1; -pub const KERN_POSIX1: ::c_int = 17; -pub const KERN_PROC: ::c_int = 14; -pub const KERN_PROC_ALL: ::c_int = 0; -pub const KERN_PROC_ARGS: ::c_int = 48; -pub const KERN_PROC_ENV: ::c_int = 3; -pub const KERN_PROC_GID: ::c_int = 7; -pub const KERN_PROC_PGRP: ::c_int = 2; -pub const KERN_PROC_PID: ::c_int = 1; -pub const KERN_PROC_RGID: ::c_int = 8; -pub const KERN_PROC_RUID: ::c_int = 6; -pub const KERN_PROC_SESSION: ::c_int = 3; -pub const KERN_PROC_TTY: ::c_int = 4; -pub const KERN_PROC_UID: ::c_int = 5; -pub const KERN_PROF: ::c_int = 16; -pub const KERN_SAVED_IDS: ::c_int = 20; -pub const KERN_SECURELVL: ::c_int = 9; -pub const KERN_VERSION: ::c_int = 4; -pub const KERN_VNODE: ::c_int = 13; - -pub const LC_ALL: ::c_int = 63; -pub const LC_COLLATE: ::c_int = 1; -pub const LC_CTYPE: ::c_int = 2; -pub const LC_MESSAGES: ::c_int = 32; -pub const LC_MONETARY: ::c_int = 4; -pub const LC_NUMERIC: ::c_int = 8; -pub const LC_TIME: ::c_int = 16; - -pub const LOCAL_CONNWAIT: ::c_int = 0x0002; -pub const LOCAL_CREDS: ::c_int = 0x0001; -pub const LOCAL_PEEREID: ::c_int = 0x0003; - -pub const MAP_STACK: ::c_int = 0x00001000; -pub const MNT_NOEXEC: ::c_int = 0x02; -pub const MNT_NOSUID: ::c_int = 0x04; -pub const MNT_RDONLY: ::c_int = 0x01; - -pub const MSG_NOTIFICATION: ::c_int = 0x0400; - -pub const NET_RT_DUMP: ::c_int = 1; -pub const NET_RT_FLAGS: ::c_int = 2; -pub const NET_RT_IFLIST: ::c_int = 4; -pub const NI_NUMERICSCOPE: ::c_int = 0x00000040; -pub const OHFLOW: tcflag_t = 0x00000002; -pub const P_ALL: idtype_t = 0; -pub const PARSTK: tcflag_t = 0x00000004; -pub const PF_ARP: ::c_int = 28; -pub const PF_CCITT: ::c_int = 10; -pub const PF_CHAOS: ::c_int = 5; -pub const PF_CNT: ::c_int = 21; -pub const PF_COIP: ::c_int = 20; -pub const PF_DATAKIT: ::c_int = 9; -pub const PF_DECnet: ::c_int = 12; -pub const PF_DLI: ::c_int = 13; -pub const PF_ECMA: ::c_int = 8; -pub const PF_HYLINK: ::c_int = 15; -pub const PF_IMPLINK: ::c_int = 3; -pub const PF_ISO: ::c_int = 7; -pub const PF_LAT: ::c_int = 14; -pub const PF_LINK: ::c_int = 18; -pub const PF_NATM: ::c_int = 27; -pub const PF_OSI: ::c_int = 7; -pub const PF_PIP: ::c_int = 25; -pub const PF_PUP: ::c_int = 4; -pub const PF_RTIP: ::c_int = 22; -pub const PF_XTP: ::c_int = 19; -pub const PM_STR: ::nl_item = 7; -pub const POSIX_MADV_DONTNEED: ::c_int = 4; -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 2; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 1; -pub const POSIX_MADV_WILLNEED: ::c_int = 3; -pub const _POSIX_VDISABLE: ::c_int = 0; -pub const P_PGID: idtype_t = 2; -pub const P_PID: idtype_t = 1; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_USER: ::c_int = 2; -pub const pseudo_AF_HDRCMPLT: ::c_int = 30; -pub const pseudo_AF_PIP: ::c_int = 25; -pub const pseudo_AF_RTIP: ::c_int = 22; -pub const pseudo_AF_XTP: ::c_int = 19; -pub const REG_ASSERT: ::c_int = 15; -pub const REG_ATOI: ::c_int = 255; -pub const REG_BACKR: ::c_int = 0x400; -pub const REG_BASIC: ::c_int = 0x00; -pub const REG_DUMP: ::c_int = 0x80; -pub const REG_EMPTY: ::c_int = 14; -pub const REG_INVARG: ::c_int = 16; -pub const REG_ITOA: ::c_int = 0o400; -pub const REG_LARGE: ::c_int = 0x200; -pub const REG_NOSPEC: ::c_int = 0x10; -pub const REG_OK: ::c_int = 0; -pub const REG_PEND: ::c_int = 0x20; -pub const REG_TRACE: ::c_int = 0x100; - -pub const RLIMIT_AS: ::c_int = 6; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_MEMLOCK: ::c_int = 7; -pub const RLIMIT_NOFILE: ::c_int = 5; -pub const RLIMIT_NPROC: ::c_int = 8; -pub const RLIMIT_RSS: ::c_int = 6; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_VMEM: ::c_int = 6; -pub const RLIM_NLIMITS: ::c_int = 14; - -pub const SCHED_ADJTOHEAD: ::c_int = 5; -pub const SCHED_ADJTOTAIL: ::c_int = 6; -pub const SCHED_MAXPOLICY: ::c_int = 7; -pub const SCHED_SETPRIO: ::c_int = 7; -pub const SCHED_SPORADIC: ::c_int = 4; - -pub const SHM_ANON: *mut ::c_char = -1isize as *mut ::c_char; -pub const SIGCLD: ::c_int = SIGCHLD; -pub const SIGDEADLK: ::c_int = 7; -pub const SIGEMT: ::c_int = 7; -pub const SIGEV_NONE: ::c_int = 0; -pub const SIGEV_SIGNAL: ::c_int = 129; -pub const SIGEV_THREAD: ::c_int = 135; -pub const SIOCGIFADDR: ::c_int = -1064277727; -pub const SO_FIB: ::c_int = 0x100a; -pub const SO_OVERFLOWED: ::c_int = 0x1009; -pub const SO_SETFIB: ::c_int = 0x100a; -pub const SO_TXPRIO: ::c_int = 0x100b; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_VLANPRIO: ::c_int = 0x100c; -pub const _SS_ALIGNSIZE: usize = ::mem::size_of::(); -pub const _SS_MAXSIZE: usize = 128; -pub const _SS_PAD1SIZE: usize = _SS_ALIGNSIZE - 2; -pub const _SS_PAD2SIZE: usize = _SS_MAXSIZE - 2 - _SS_PAD1SIZE - _SS_ALIGNSIZE; -pub const TC_CPOSIX: tcflag_t = CLOCAL | CREAD | CSIZE | CSTOPB | HUPCL | PARENB | PARODD; -pub const TCGETS: ::c_int = 0x404c540d; -pub const TC_IPOSIX: tcflag_t = - BRKINT | ICRNL | IGNBRK | IGNPAR | INLCR | INPCK | ISTRIP | IXOFF | IXON | PARMRK; -pub const TC_LPOSIX: tcflag_t = - ECHO | ECHOE | ECHOK | ECHONL | ICANON | IEXTEN | ISIG | NOFLSH | TOSTOP; -pub const TC_OPOSIX: tcflag_t = OPOST; -pub const T_FMT_AMPM: ::nl_item = 5; - -pub const TIOCCBRK: ::c_int = 29818; -pub const TIOCCDTR: ::c_int = 29816; -pub const TIOCDRAIN: ::c_int = 29790; -pub const TIOCEXCL: ::c_int = 29709; -pub const TIOCFLUSH: ::c_int = -2147191792; -pub const TIOCGETA: ::c_int = 1078752275; -pub const TIOCGPGRP: ::c_int = 1074033783; -pub const TIOCGWINSZ: ::c_int = 1074295912; -pub const TIOCMBIC: ::c_int = -2147191701; -pub const TIOCMBIS: ::c_int = -2147191700; -pub const TIOCMGET: ::c_int = 1074033770; -pub const TIOCMSET: ::c_int = -2147191699; -pub const TIOCNOTTY: ::c_int = 29809; -pub const TIOCNXCL: ::c_int = 29710; -pub const TIOCOUTQ: ::c_int = 1074033779; -pub const TIOCPKT: ::c_int = -2147191696; -pub const TIOCPKT_DATA: ::c_int = 0x00; -pub const TIOCPKT_DOSTOP: ::c_int = 0x20; -pub const TIOCPKT_FLUSHREAD: ::c_int = 0x01; -pub const TIOCPKT_FLUSHWRITE: ::c_int = 0x02; -pub const TIOCPKT_IOCTL: ::c_int = 0x40; -pub const TIOCPKT_NOSTOP: ::c_int = 0x10; -pub const TIOCPKT_START: ::c_int = 0x08; -pub const TIOCPKT_STOP: ::c_int = 0x04; -pub const TIOCSBRK: ::c_int = 29819; -pub const TIOCSCTTY: ::c_int = 29793; -pub const TIOCSDTR: ::c_int = 29817; -pub const TIOCSETA: ::c_int = -2142473196; -pub const TIOCSETAF: ::c_int = -2142473194; -pub const TIOCSETAW: ::c_int = -2142473195; -pub const TIOCSPGRP: ::c_int = -2147191690; -pub const TIOCSTART: ::c_int = 29806; -pub const TIOCSTI: ::c_int = -2147388302; -pub const TIOCSTOP: ::c_int = 29807; -pub const TIOCSWINSZ: ::c_int = -2146929561; - -pub const USER_CS_PATH: ::c_int = 1; -pub const USER_BC_BASE_MAX: ::c_int = 2; -pub const USER_BC_DIM_MAX: ::c_int = 3; -pub const USER_BC_SCALE_MAX: ::c_int = 4; -pub const USER_BC_STRING_MAX: ::c_int = 5; -pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6; -pub const USER_EXPR_NEST_MAX: ::c_int = 7; -pub const USER_LINE_MAX: ::c_int = 8; -pub const USER_RE_DUP_MAX: ::c_int = 9; -pub const USER_POSIX2_VERSION: ::c_int = 10; -pub const USER_POSIX2_C_BIND: ::c_int = 11; -pub const USER_POSIX2_C_DEV: ::c_int = 12; -pub const USER_POSIX2_CHAR_TERM: ::c_int = 13; -pub const USER_POSIX2_FORT_DEV: ::c_int = 14; -pub const USER_POSIX2_FORT_RUN: ::c_int = 15; -pub const USER_POSIX2_LOCALEDEF: ::c_int = 16; -pub const USER_POSIX2_SW_DEV: ::c_int = 17; -pub const USER_POSIX2_UPE: ::c_int = 18; -pub const USER_STREAM_MAX: ::c_int = 19; -pub const USER_TZNAME_MAX: ::c_int = 20; -pub const USER_ATEXIT_MAX: ::c_int = 21; -pub const USER_MAXID: ::c_int = 22; - -pub const VDOWN: usize = 31; -pub const VINS: usize = 32; -pub const VDEL: usize = 33; -pub const VRUB: usize = 34; -pub const VCAN: usize = 35; -pub const VHOME: usize = 36; -pub const VEND: usize = 37; -pub const VSPARE3: usize = 38; -pub const VSPARE4: usize = 39; -pub const VSWTCH: usize = 7; -pub const VDSUSP: usize = 11; -pub const VFWD: usize = 18; -pub const VLOGIN: usize = 19; -pub const VPREFIX: usize = 20; -pub const VSUFFIX: usize = 24; -pub const VLEFT: usize = 28; -pub const VRIGHT: usize = 29; -pub const VUP: usize = 30; -pub const XCASE: tcflag_t = 0x00000004; - -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0x00; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 0x01; - -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3; -pub const PTHREAD_STACK_MIN: ::size_t = 256; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = 0; -pub const PTHREAD_MUTEX_STALLED: ::c_int = 0x00; -pub const PTHREAD_MUTEX_ROBUST: ::c_int = 0x10; -pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0x00; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 0x01; - -pub const PTHREAD_KEYS_MAX: usize = 128; - -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - __u: 0x80000000, - __owner: 0xffffffff, -}; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - __u: CLOCK_REALTIME as u32, - __owner: 0xfffffffb, -}; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - __active: 0, - __blockedwriters: 0, - __blockedreaders: 0, - __heavy: 0, - __lock: PTHREAD_MUTEX_INITIALIZER, - __rcond: PTHREAD_COND_INITIALIZER, - __wcond: PTHREAD_COND_INITIALIZER, - __owner: -2i32 as ::c_uint, - __spare: 0, -}; - -const_fn! { - {const} fn _CMSG_ALIGN(len: usize) -> usize { - len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) - } - - {const} fn _ALIGN(p: usize, b: usize) -> usize { - (p + b - 1) & !(b-1) - } -} - -f! { - pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize >= ::mem::size_of::() { - (*mhdr).msg_control as *mut cmsghdr - } else { - 0 as *mut cmsghdr - } - } - - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) - -> *mut ::cmsghdr - { - let msg = _CMSG_ALIGN((*cmsg).cmsg_len as usize); - let next = cmsg as usize + msg + _CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); - if next > (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize { - 0 as *mut ::cmsghdr - } else { - (cmsg as usize + msg) as *mut ::cmsghdr - } - } - - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) - } - - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - _CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length - } - - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (_CMSG_ALIGN(::mem::size_of::()) + _CMSG_ALIGN(length as usize) ) - as ::c_uint - } - - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - (*set).fds_bits[fd / size] &= !(1 << (fd % size)); - return - } - - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 - } - - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - (*set).fds_bits[fd / size] |= 1 << (fd % size); - return - } - - pub fn FD_ZERO(set: *mut fd_set) -> () { - for slot in (*set).fds_bits.iter_mut() { - *slot = 0; - } - } - - pub fn _DEXTRA_FIRST(_d: *const dirent) -> *mut ::dirent_extra { - let _f = &((*(_d)).d_name) as *const _; - let _s = _d as usize; - - _ALIGN(_s + _f as usize - _s + (*_d).d_namelen as usize + 1, 8) as *mut ::dirent_extra - } - - pub fn _DEXTRA_VALID(_x: *const ::dirent_extra, _d: *const dirent) -> bool { - let sz = _x as usize - _d as usize + ::mem::size_of::<::dirent_extra>(); - let rsz = (*_d).d_reclen as usize; - - if sz > rsz || sz + (*_x).d_datalen as usize > rsz { - false - } else { - true - } - } - - pub fn _DEXTRA_NEXT(_x: *const ::dirent_extra) -> *mut ::dirent_extra { - _ALIGN( - _x as usize + ::mem::size_of::<::dirent_extra>() + (*_x).d_datalen as usize, 8 - ) as *mut ::dirent_extra - } - - pub fn SOCKCREDSIZE(ngrps: usize) -> usize { - let ngrps = if ngrps > 0 { - ngrps - 1 - } else { - 0 - }; - ::mem::size_of::() + ::mem::size_of::<::gid_t>() * ngrps - } -} - -safe_f! { - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { - (status & 0xff) == 0x7f - } - - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { - (status >> 8) & 0xff - } - - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { - status == 0xffff - } - - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { - ((status & 0x7f) + 1) as i8 >= 2 - } - - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { - status & 0x7f - } - - pub {const} fn WIFEXITED(status: ::c_int) -> bool { - (status & 0x7f) == 0 - } - - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { - (status >> 8) & 0xff - } - - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { - (status & 0x80) != 0 - } - - pub {const} fn IPTOS_ECN(x: u8) -> u8 { - x & ::IPTOS_ECN_MASK - } -} - -// Network related functions are provided by libsocket and regex -// functions are provided by libregex. -#[link(name = "socket")] -#[link(name = "regex")] - -extern "C" { - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - - pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int; - - pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; - - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - - pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - - pub fn pthread_condattr_getclock( - attr: *const pthread_condattr_t, - clock_id: *mut clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_setclock( - attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_mutexattr_setpshared( - attr: *mut pthread_mutexattr_t, - pshared: ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_getpshared( - attr: *const pthread_rwlockattr_t, - val: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int; - pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> *mut ::c_char; - pub fn clearenv() -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; - pub fn wait4( - pid: ::pid_t, - status: *mut ::c_int, - options: ::c_int, - rusage: *mut ::rusage, - ) -> ::pid_t; - pub fn execvpe( - file: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - - pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; - pub fn freeifaddrs(ifa: *mut ::ifaddrs); - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; - - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - - pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn openpty( - amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize, - ) -> ::c_int; - pub fn forkpty( - amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize, - ) -> ::pid_t; - pub fn login_tty(fd: ::c_int) -> ::c_int; - - pub fn uname(buf: *mut ::utsname) -> ::c_int; - - pub fn getpeereid(socket: ::c_int, euid: *mut ::uid_t, egid: *mut ::gid_t) -> ::c_int; - - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - - pub fn abs(i: ::c_int) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); - - pub fn setpwent(); - pub fn endpwent(); - pub fn getpwent() -> *mut passwd; - pub fn setgrent(); - pub fn endgrent(); - pub fn getgrent() -> *mut ::group; - pub fn setspent(); - pub fn endspent(); - - pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; - - pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int; - pub fn sigtimedwait( - set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; - pub fn pthread_setschedprio(native: ::pthread_t, priority: ::c_int) -> ::c_int; - - pub fn if_nameindex() -> *mut if_nameindex; - pub fn if_freenameindex(ptr: *mut if_nameindex); - - pub fn glob( - pattern: *const c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - pub fn globfree(pglob: *mut ::glob_t); - - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; - - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - - pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - - pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn sync(); - pub fn pthread_getschedparam( - native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param, - ) -> ::c_int; - pub fn umount(target: *const ::c_char, flags: ::c_int) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::c_void) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; - pub fn mount( - special_device: *const ::c_char, - mount_directory: *const ::c_char, - flags: ::c_int, - mount_type: *const ::c_char, - mount_data: *const ::c_void, - mount_datalen: ::c_int, - ) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; - pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_mutex_timedlock( - lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int; - pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int; - pub fn pthread_barrierattr_init(__attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_destroy(__attr: *mut ::pthread_barrierattr_t) -> ::c_int; - pub fn pthread_barrierattr_getpshared( - __attr: *const ::pthread_barrierattr_t, - __pshared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_barrierattr_setpshared( - __attr: *mut ::pthread_barrierattr_t, - __pshared: ::c_int, - ) -> ::c_int; - pub fn pthread_barrier_init( - __barrier: *mut ::pthread_barrier_t, - __attr: *const ::pthread_barrierattr_t, - __count: ::c_uint, - ) -> ::c_int; - pub fn pthread_barrier_destroy(__barrier: *mut ::pthread_barrier_t) -> ::c_int; - pub fn pthread_barrier_wait(__barrier: *mut ::pthread_barrier_t) -> ::c_int; - - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; - pub fn pthread_attr_getguardsize( - attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t, - ) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; - pub fn pthread_condattr_getpshared( - attr: *const pthread_condattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_setschedparam( - native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; - pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn getdtablesize() -> ::c_int; - pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - pub fn getpwnam_r( - name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn getpwuid_r( - uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - pub fn getgrouplist( - user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_getpshared( - attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_getrobust( - attr: *const pthread_mutexattr_t, - robustness: *mut ::c_int, - ) -> ::c_int; - pub fn pthread_mutexattr_setrobust( - attr: *mut pthread_mutexattr_t, - robustness: ::c_int, - ) -> ::c_int; - pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int; - pub fn setitimer( - which: ::c_int, - value: *const ::itimerval, - ovalue: *mut ::itimerval, - ) -> ::c_int; - pub fn posix_spawn( - pid: *mut ::pid_t, - path: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawnp( - pid: *mut ::pid_t, - file: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char, - ) -> ::c_int; - pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_getsigdefault( - attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigdefault( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getsigmask( - attr: *const posix_spawnattr_t, - default: *mut ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_setsigmask( - attr: *mut posix_spawnattr_t, - default: *const ::sigset_t, - ) -> ::c_int; - pub fn posix_spawnattr_getflags( - attr: *const posix_spawnattr_t, - flags: *mut ::c_short, - ) -> ::c_int; - pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int; - pub fn posix_spawnattr_getpgroup( - attr: *const posix_spawnattr_t, - flags: *mut ::pid_t, - ) -> ::c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int; - pub fn posix_spawnattr_getschedpolicy( - attr: *const posix_spawnattr_t, - flags: *mut ::c_int, - ) -> ::c_int; - pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int; - pub fn posix_spawnattr_getschedparam( - attr: *const posix_spawnattr_t, - param: *mut ::sched_param, - ) -> ::c_int; - pub fn posix_spawnattr_setschedparam( - attr: *mut posix_spawnattr_t, - param: *const ::sched_param, - ) -> ::c_int; - - pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int; - pub fn posix_spawn_file_actions_addopen( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - path: *const ::c_char, - oflag: ::c_int, - mode: ::mode_t, - ) -> ::c_int; - pub fn posix_spawn_file_actions_addclose( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - ) -> ::c_int; - pub fn posix_spawn_file_actions_adddup2( - actions: *mut posix_spawn_file_actions_t, - fd: ::c_int, - newfd: ::c_int, - ) -> ::c_int; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; - pub fn inotify_rm_watch(fd: ::c_int, wd: ::c_int) -> ::c_int; - pub fn inotify_init() -> ::c_int; - pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int; - - pub fn gettid() -> ::pid_t; - - pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int; - - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - - pub fn sendmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_uint, - ) -> ::c_int; - pub fn recvmmsg( - sockfd: ::c_int, - msgvec: *mut ::mmsghdr, - vlen: ::c_uint, - flags: ::c_uint, - timeout: *mut ::timespec, - ) -> ::c_int; - - pub fn mallopt(param: ::c_int, value: i64) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - - pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char; - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - - pub fn mallinfo() -> ::mallinfo; - pub fn getpwent_r( - pwd: *mut ::passwd, - buf: *mut ::c_char, - __bufsize: ::c_int, - __result: *mut *mut ::passwd, - ) -> ::c_int; - pub fn pthread_getname_np(thread: ::pthread_t, name: *mut ::c_char, len: ::c_int) -> ::c_int; - pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int; - - pub fn sysctl( - _: *const ::c_int, - _: ::c_uint, - _: *mut ::c_void, - _: *mut ::size_t, - _: *const ::c_void, - _: ::size_t, - ) -> ::c_int; - - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlp: *const ::rlimit) -> ::c_int; - - pub fn lio_listio( - __mode: ::c_int, - __list: *const *mut aiocb, - __nent: ::c_int, - __sig: *mut sigevent, - ) -> ::c_int; - - pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *const dl_phdr_info, - size: ::size_t, - data: *mut ::c_void, - ) -> ::c_int, - >, - data: *mut ::c_void, - ) -> ::c_int; - - pub fn memset_s(s: *mut ::c_void, smax: ::size_t, c: ::c_int, n: ::size_t) -> ::c_int; - - pub fn regcomp( - __preg: *mut ::regex_t, - __pattern: *const ::c_char, - __cflags: ::c_int, - ) -> ::c_int; - pub fn regexec( - __preg: *const ::regex_t, - __str: *const ::c_char, - __nmatch: ::size_t, - __pmatch: *mut ::regmatch_t, - __eflags: ::c_int, - ) -> ::c_int; - pub fn regerror( - __errcode: ::c_int, - __preg: *const ::regex_t, - __errbuf: *mut ::c_char, - __errbuf_size: ::size_t, - ) -> ::size_t; - pub fn regfree(__preg: *mut ::regex_t); - pub fn dirfd(__dirp: *mut ::DIR) -> ::c_int; - pub fn dircntl(dir: *mut ::DIR, cmd: ::c_int, ...) -> ::c_int; - - pub fn aio_cancel(__fd: ::c_int, __aiocbp: *mut ::aiocb) -> ::c_int; - pub fn aio_error(__aiocbp: *const ::aiocb) -> ::c_int; - pub fn aio_fsync(__operation: ::c_int, __aiocbp: *mut ::aiocb) -> ::c_int; - pub fn aio_read(__aiocbp: *mut ::aiocb) -> ::c_int; - pub fn aio_return(__aiocpb: *mut ::aiocb) -> ::ssize_t; - pub fn aio_suspend( - __list: *const *const ::aiocb, - __nent: ::c_int, - __timeout: *const ::timespec, - ) -> ::c_int; - pub fn aio_write(__aiocpb: *mut ::aiocb) -> ::c_int; - - pub fn mq_close(__mqdes: ::mqd_t) -> ::c_int; - pub fn mq_getattr(__mqdes: ::mqd_t, __mqstat: *mut ::mq_attr) -> ::c_int; - pub fn mq_notify(__mqdes: ::mqd_t, __notification: *const ::sigevent) -> ::c_int; - pub fn mq_open(__name: *const ::c_char, __oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_receive( - __mqdes: ::mqd_t, - __msg_ptr: *mut ::c_char, - __msg_len: ::size_t, - __msg_prio: *mut ::c_uint, - ) -> ::ssize_t; - pub fn mq_send( - __mqdes: ::mqd_t, - __msg_ptr: *const ::c_char, - __msg_len: ::size_t, - __msg_prio: ::c_uint, - ) -> ::c_int; - pub fn mq_setattr( - __mqdes: ::mqd_t, - __mqstat: *const mq_attr, - __omqstat: *mut mq_attr, - ) -> ::c_int; - pub fn mq_timedreceive( - __mqdes: ::mqd_t, - __msg_ptr: *mut ::c_char, - __msg_len: ::size_t, - __msg_prio: *mut ::c_uint, - __abs_timeout: *const ::timespec, - ) -> ::ssize_t; - pub fn mq_timedsend( - __mqdes: ::mqd_t, - __msg_ptr: *const ::c_char, - __msg_len: ::size_t, - __msg_prio: ::c_uint, - __abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_unlink(__name: *const ::c_char) -> ::c_int; - pub fn __get_errno_ptr() -> *mut ::c_int; - - // System page, see https://www.qnx.com/developers/docs/7.1#com.qnx.doc.neutrino.building/topic/syspage/syspage_about.html - pub static mut _syspage_ptr: *mut syspage_entry; - - // Function on the stack after a call to pthread_create(). This is used - // as a sentinel to work around an infitnite loop in the unwinding code. - pub fn __my_thread_exit(value_ptr: *mut *const ::c_void); -} - -// Models the implementation in stdlib.h. Ctest will fail if trying to use the -// default symbol from libc -pub unsafe fn atexit(cb: extern "C" fn()) -> ::c_int { - extern "C" { - static __dso_handle: *mut ::c_void; - pub fn __cxa_atexit( - cb: extern "C" fn(), - __arg: *mut ::c_void, - __dso: *mut ::c_void, - ) -> ::c_int; - } - __cxa_atexit(cb, 0 as *mut ::c_void, __dso_handle) -} - -impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { - #[repr(C)] - struct siginfo_si_addr { - _pad: [u8; 32], - si_addr: *mut ::c_void, - } - (*(self as *const siginfo_t as *const siginfo_si_addr)).si_addr - } - - pub unsafe fn si_value(&self) -> ::sigval { - #[repr(C)] - struct siginfo_si_value { - _pad: [u8; 32], - si_value: ::sigval, - } - (*(self as *const siginfo_t as *const siginfo_si_value)).si_value - } - - pub unsafe fn si_pid(&self) -> ::pid_t { - #[repr(C)] - struct siginfo_si_pid { - _pad: [u8; 16], - si_pid: ::pid_t, - } - (*(self as *const siginfo_t as *const siginfo_si_pid)).si_pid - } - - pub unsafe fn si_uid(&self) -> ::uid_t { - #[repr(C)] - struct siginfo_si_uid { - _pad: [u8; 24], - si_uid: ::uid_t, - } - (*(self as *const siginfo_t as *const siginfo_si_uid)).si_uid - } - - pub unsafe fn si_status(&self) -> ::c_int { - #[repr(C)] - struct siginfo_si_status { - _pad: [u8; 28], - si_status: ::c_int, - } - (*(self as *const siginfo_t as *const siginfo_si_status)).si_status - } -} - -cfg_if! { - if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } - else if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } - else { - panic!("Unsupported arch"); - } -} - -mod neutrino; -pub use self::neutrino::*; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/nto/neutrino.rs b/src/rust/vendor/libc-0.2.146/src/unix/nto/neutrino.rs deleted file mode 100644 index cedd21659..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/nto/neutrino.rs +++ /dev/null @@ -1,1288 +0,0 @@ -pub type nto_job_t = ::sync_t; - -s! { - pub struct intrspin { - pub value: ::c_uint, // volatile - } - - pub struct iov_t { - pub iov_base: *mut ::c_void, // union - pub iov_len: ::size_t, - } - - pub struct _itimer { - pub nsec: u64, - pub interval_nsec: u64, - } - - pub struct _msg_info64 { - pub nd: u32, - pub srcnd: u32, - pub pid: ::pid_t, - pub tid: i32, - pub chid: i32, - pub scoid: i32, - pub coid: i32, - pub priority: i16, - pub flags: i16, - pub msglen: isize, - pub srcmsglen: isize, - pub dstmsglen: isize, - pub type_id: u32, - reserved: u32, - } - - pub struct _cred_info { - pub ruid: ::uid_t, - pub euid: ::uid_t, - pub suid: ::uid_t, - pub rgid: ::gid_t, - pub egid: ::gid_t, - pub sgid: ::gid_t, - pub ngroups: u32, - pub grouplist: [::gid_t; 8], - } - - pub struct _client_info { - pub nd: u32, - pub pid: ::pid_t, - pub sid: ::pid_t, - pub flags: u32, - pub cred: ::_cred_info, - } - - pub struct _client_able { - pub ability: u32, - pub flags: u32, - pub range_lo: u64, - pub range_hi: u64, - } - - pub struct nto_channel_config { - pub event: ::sigevent, - pub num_pulses: ::c_uint, - pub rearm_threshold: ::c_uint, - pub options: ::c_uint, - reserved: [::c_uint; 3], - } - - // TODO: The following structures are defined in a header file which doesn't - // appear as part of the default headers found in a standard installation - // of Neutrino 7.1 SDP. Commented out for now. - //pub struct _asyncmsg_put_header { - // pub err: ::c_int, - // pub iov: *mut ::iov_t, - // pub parts: ::c_int, - // pub handle: ::c_uint, - // pub cb: ::Option< - // unsafe extern "C" fn( - // err: ::c_int, - // buf: *mut ::c_void, - // handle: ::c_uint, - // ) -> ::c_int>, - // pub put_hdr_flags: ::c_uint, - //} - - //pub struct _asyncmsg_connection_attr { - // pub call_back: ::Option< - // unsafe extern "C" fn( - // err: ::c_int, - // buff: *mut ::c_void, - // handle: ::c_uint, - // ) -> ::c_int>, - // pub buffer_size: ::size_t, - // pub max_num_buffer: ::c_uint, - // pub trigger_num_msg: ::c_uint, - // pub trigger_time: ::_itimer, - // reserve: ::c_uint, - //} - - //pub struct _asyncmsg_connection_descriptor { - // pub flags: ::c_uint, - // pub sendq_size: ::c_uint, - // pub sendq_head: ::c_uint, - // pub sendq_tail: ::c_uint, - // pub sendq_free: ::c_uint, - // pub err: ::c_int, - // pub ev: ::sigevent, - // pub num_curmsg: ::c_uint, - // pub ttimer: ::timer_t, - // pub block_con: ::pthread_cond_t, - // pub mu: ::pthread_mutex_t, - // reserved: ::c_uint, - // pub attr: ::_asyncmsg_connection_attr, - // pub reserves: [::c_uint; 3], - // pub sendq: [::_asyncmsg_put_header; 1], // flexarray - //} - - pub struct __c_anonymous_struct_ev { - pub event: ::sigevent, - pub coid: ::c_int, - } - - pub struct _channel_connect_attr { // union - pub ev: ::__c_anonymous_struct_ev, - } - - pub struct _sighandler_info { - pub siginfo: ::siginfo_t, - pub handler: ::Option, - pub context: *mut ::c_void, - } - - pub struct __c_anonymous_struct_time { - pub length: ::c_uint, - pub scale: ::c_uint, - } - - pub struct _idle_hook { - pub hook_size: ::c_uint, - pub cmd: ::c_uint, - pub mode: ::c_uint, - pub latency: ::c_uint, - pub next_fire: u64, - pub curr_time: u64, - pub tod_adjust: u64, - pub resp: ::c_uint, - pub time: __c_anonymous_struct_time, - pub trigger: ::sigevent, - pub intrs: *mut ::c_uint, - pub block_stack_size: ::c_uint, - } - - pub struct _clockadjust { - pub tick_count: u32, - pub tick_nsec_inc: i32, - } - - pub struct qtime_entry { - pub cycles_per_sec: u64, - pub nsec_tod_adjust: u64, // volatile - pub nsec: u64, // volatile - pub nsec_inc: u32, - pub boot_time: u32, - pub adjust: _clockadjust, - pub timer_rate: u32, - pub timer_scale: i32, - pub timer_load: u32, - pub intr: i32, - pub epoch: u32, - pub flags: u32, - pub rr_interval_mul: u32, - pub timer_load_hi: u32, - pub nsec_stable: u64, // volatile - pub timer_load_max: u64, - pub timer_prog_time: u32, - spare: [u32; 7], - } - - pub struct _sched_info { - pub priority_min: ::c_int, - pub priority_max: ::c_int, - pub interval: u64, - pub priority_priv: ::c_int, - reserved: [::c_int; 11], - } - - pub struct _timer_info { - pub itime: ::_itimer, - pub otime: ::_itimer, - pub flags: u32, - pub tid: i32, - pub notify: i32, - pub clockid: ::clockid_t, - pub overruns: u32, - pub event: ::sigevent, // union - } - - pub struct _clockperiod { - pub nsec: u32, - pub fract: i32, - } -} - -s_no_extra_traits! { - pub struct syspage_entry_info { - pub entry_off: u16, - pub entry_size: u16, - } - - pub struct syspage_array_info { - entry_off: u16, - entry_size: u16, - element_size: u16, - } - - #[repr(align(8))] - pub struct syspage_entry { - pub size: u16, - pub total_size: u16, - pub type_: u16, - pub num_cpu: u16, - pub system_private: syspage_entry_info, - pub old_asinfo: syspage_entry_info, - pub __mangle_name_to_cause_compilation_errs_meminfo: syspage_entry_info, - pub hwinfo: syspage_entry_info, - pub old_cpuinfo: syspage_entry_info, - pub old_cacheattr: syspage_entry_info, - pub qtime: syspage_entry_info, - pub callout: syspage_entry_info, - pub callin: syspage_entry_info, - pub typed_strings: syspage_entry_info, - pub strings: syspage_entry_info, - pub old_intrinfo: syspage_entry_info, - pub smp: syspage_entry_info, - pub pminfo: syspage_entry_info, - pub old_mdriver: syspage_entry_info, - spare0: [u32; 1], - __reserved: [u8; 160], // anonymous union with architecture dependent structs - pub new_asinfo: syspage_array_info, - pub new_cpuinfo: syspage_array_info, - pub new_cacheattr: syspage_array_info, - pub new_intrinfo: syspage_array_info, - pub new_mdriver: syspage_array_info, - } -} - -pub const SYSMGR_PID: u32 = 1; -pub const SYSMGR_CHID: u32 = 1; -pub const SYSMGR_COID: u32 = _NTO_SIDE_CHANNEL; -pub const SYSMGR_HANDLE: u32 = 0; - -pub const STATE_DEAD: ::c_int = 0x00; -pub const STATE_RUNNING: ::c_int = 0x01; -pub const STATE_READY: ::c_int = 0x02; -pub const STATE_STOPPED: ::c_int = 0x03; -pub const STATE_SEND: ::c_int = 0x04; -pub const STATE_RECEIVE: ::c_int = 0x05; -pub const STATE_REPLY: ::c_int = 0x06; -pub const STATE_STACK: ::c_int = 0x07; -pub const STATE_WAITTHREAD: ::c_int = 0x08; -pub const STATE_WAITPAGE: ::c_int = 0x09; -pub const STATE_SIGSUSPEND: ::c_int = 0x0a; -pub const STATE_SIGWAITINFO: ::c_int = 0x0b; -pub const STATE_NANOSLEEP: ::c_int = 0x0c; -pub const STATE_MUTEX: ::c_int = 0x0d; -pub const STATE_CONDVAR: ::c_int = 0x0e; -pub const STATE_JOIN: ::c_int = 0x0f; -pub const STATE_INTR: ::c_int = 0x10; -pub const STATE_SEM: ::c_int = 0x11; -pub const STATE_WAITCTX: ::c_int = 0x12; -pub const STATE_NET_SEND: ::c_int = 0x13; -pub const STATE_NET_REPLY: ::c_int = 0x14; -pub const STATE_MAX: ::c_int = 0x18; - -pub const _NTO_TIMEOUT_RECEIVE: i32 = 1 << STATE_RECEIVE; -pub const _NTO_TIMEOUT_SEND: i32 = 1 << STATE_SEND; -pub const _NTO_TIMEOUT_REPLY: i32 = 1 << STATE_REPLY; -pub const _NTO_TIMEOUT_SIGSUSPEND: i32 = 1 << STATE_SIGSUSPEND; -pub const _NTO_TIMEOUT_SIGWAITINFO: i32 = 1 << STATE_SIGWAITINFO; -pub const _NTO_TIMEOUT_NANOSLEEP: i32 = 1 << STATE_NANOSLEEP; -pub const _NTO_TIMEOUT_MUTEX: i32 = 1 << STATE_MUTEX; -pub const _NTO_TIMEOUT_CONDVAR: i32 = 1 << STATE_CONDVAR; -pub const _NTO_TIMEOUT_JOIN: i32 = 1 << STATE_JOIN; -pub const _NTO_TIMEOUT_INTR: i32 = 1 << STATE_INTR; -pub const _NTO_TIMEOUT_SEM: i32 = 1 << STATE_SEM; - -pub const _NTO_MI_ENDIAN_BIG: u32 = 1; -pub const _NTO_MI_ENDIAN_DIFF: u32 = 2; -pub const _NTO_MI_UNBLOCK_REQ: u32 = 256; -pub const _NTO_MI_NET_CRED_DIRTY: u32 = 512; -pub const _NTO_MI_CONSTRAINED: u32 = 1024; -pub const _NTO_MI_CHROOT: u32 = 2048; -pub const _NTO_MI_BITS_64: u32 = 4096; -pub const _NTO_MI_BITS_DIFF: u32 = 8192; -pub const _NTO_MI_SANDBOX: u32 = 16384; - -pub const _NTO_CI_ENDIAN_BIG: u32 = 1; -pub const _NTO_CI_BKGND_PGRP: u32 = 4; -pub const _NTO_CI_ORPHAN_PGRP: u32 = 8; -pub const _NTO_CI_STOPPED: u32 = 128; -pub const _NTO_CI_UNABLE: u32 = 256; -pub const _NTO_CI_TYPE_ID: u32 = 512; -pub const _NTO_CI_CHROOT: u32 = 2048; -pub const _NTO_CI_BITS_64: u32 = 4096; -pub const _NTO_CI_SANDBOX: u32 = 16384; -pub const _NTO_CI_LOADER: u32 = 32768; -pub const _NTO_CI_FULL_GROUPS: u32 = 2147483648; - -pub const _NTO_TI_ACTIVE: u32 = 1; -pub const _NTO_TI_ABSOLUTE: u32 = 2; -pub const _NTO_TI_EXPIRED: u32 = 4; -pub const _NTO_TI_TOD_BASED: u32 = 8; -pub const _NTO_TI_TARGET_PROCESS: u32 = 16; -pub const _NTO_TI_REPORT_TOLERANCE: u32 = 32; -pub const _NTO_TI_PRECISE: u32 = 64; -pub const _NTO_TI_TOLERANT: u32 = 128; -pub const _NTO_TI_WAKEUP: u32 = 256; -pub const _NTO_TI_PROCESS_TOLERANT: u32 = 512; -pub const _NTO_TI_HIGH_RESOLUTION: u32 = 1024; - -pub const _PULSE_TYPE: u32 = 0; -pub const _PULSE_SUBTYPE: u32 = 0; -pub const _PULSE_CODE_UNBLOCK: i32 = -32; -pub const _PULSE_CODE_DISCONNECT: i32 = -33; -pub const _PULSE_CODE_THREADDEATH: i32 = -34; -pub const _PULSE_CODE_COIDDEATH: i32 = -35; -pub const _PULSE_CODE_NET_ACK: i32 = -36; -pub const _PULSE_CODE_NET_UNBLOCK: i32 = -37; -pub const _PULSE_CODE_NET_DETACH: i32 = -38; -pub const _PULSE_CODE_RESTART: i32 = -39; -pub const _PULSE_CODE_NORESTART: i32 = -40; -pub const _PULSE_CODE_UNBLOCK_RESTART: i32 = -41; -pub const _PULSE_CODE_UNBLOCK_TIMER: i32 = -42; -pub const _PULSE_CODE_MINAVAIL: u32 = 0; -pub const _PULSE_CODE_MAXAVAIL: u32 = 127; - -pub const _NTO_HARD_FLAGS_END: u32 = 1; - -pub const _NTO_PULSE_IF_UNIQUE: u32 = 4096; -pub const _NTO_PULSE_REPLACE: u32 = 8192; - -pub const _NTO_PF_NOCLDSTOP: u32 = 1; -pub const _NTO_PF_LOADING: u32 = 2; -pub const _NTO_PF_TERMING: u32 = 4; -pub const _NTO_PF_ZOMBIE: u32 = 8; -pub const _NTO_PF_NOZOMBIE: u32 = 16; -pub const _NTO_PF_FORKED: u32 = 32; -pub const _NTO_PF_ORPHAN_PGRP: u32 = 64; -pub const _NTO_PF_STOPPED: u32 = 128; -pub const _NTO_PF_DEBUG_STOPPED: u32 = 256; -pub const _NTO_PF_BKGND_PGRP: u32 = 512; -pub const _NTO_PF_NOISYNC: u32 = 1024; -pub const _NTO_PF_CONTINUED: u32 = 2048; -pub const _NTO_PF_CHECK_INTR: u32 = 4096; -pub const _NTO_PF_COREDUMP: u32 = 8192; -pub const _NTO_PF_RING0: u32 = 32768; -pub const _NTO_PF_SLEADER: u32 = 65536; -pub const _NTO_PF_WAITINFO: u32 = 131072; -pub const _NTO_PF_DESTROYALL: u32 = 524288; -pub const _NTO_PF_NOCOREDUMP: u32 = 1048576; -pub const _NTO_PF_WAITDONE: u32 = 4194304; -pub const _NTO_PF_TERM_WAITING: u32 = 8388608; -pub const _NTO_PF_ASLR: u32 = 16777216; -pub const _NTO_PF_EXECED: u32 = 33554432; -pub const _NTO_PF_APP_STOPPED: u32 = 67108864; -pub const _NTO_PF_64BIT: u32 = 134217728; -pub const _NTO_PF_NET: u32 = 268435456; -pub const _NTO_PF_NOLAZYSTACK: u32 = 536870912; -pub const _NTO_PF_NOEXEC_STACK: u32 = 1073741824; -pub const _NTO_PF_LOADER_PERMS: u32 = 2147483648; - -pub const _NTO_TF_INTR_PENDING: u32 = 65536; -pub const _NTO_TF_DETACHED: u32 = 131072; -pub const _NTO_TF_SHR_MUTEX: u32 = 262144; -pub const _NTO_TF_SHR_MUTEX_EUID: u32 = 524288; -pub const _NTO_TF_THREADS_HOLD: u32 = 1048576; -pub const _NTO_TF_UNBLOCK_REQ: u32 = 4194304; -pub const _NTO_TF_ALIGN_FAULT: u32 = 16777216; -pub const _NTO_TF_SSTEP: u32 = 33554432; -pub const _NTO_TF_ALLOCED_STACK: u32 = 67108864; -pub const _NTO_TF_NOMULTISIG: u32 = 134217728; -pub const _NTO_TF_LOW_LATENCY: u32 = 268435456; -pub const _NTO_TF_IOPRIV: u32 = 2147483648; - -pub const _NTO_TCTL_IO_PRIV: u32 = 1; -pub const _NTO_TCTL_THREADS_HOLD: u32 = 2; -pub const _NTO_TCTL_THREADS_CONT: u32 = 3; -pub const _NTO_TCTL_RUNMASK: u32 = 4; -pub const _NTO_TCTL_ALIGN_FAULT: u32 = 5; -pub const _NTO_TCTL_RUNMASK_GET_AND_SET: u32 = 6; -pub const _NTO_TCTL_PERFCOUNT: u32 = 7; -pub const _NTO_TCTL_ONE_THREAD_HOLD: u32 = 8; -pub const _NTO_TCTL_ONE_THREAD_CONT: u32 = 9; -pub const _NTO_TCTL_RUNMASK_GET_AND_SET_INHERIT: u32 = 10; -pub const _NTO_TCTL_NAME: u32 = 11; -pub const _NTO_TCTL_RCM_GET_AND_SET: u32 = 12; -pub const _NTO_TCTL_SHR_MUTEX: u32 = 13; -pub const _NTO_TCTL_IO: u32 = 14; -pub const _NTO_TCTL_NET_KIF_GET_AND_SET: u32 = 15; -pub const _NTO_TCTL_LOW_LATENCY: u32 = 16; -pub const _NTO_TCTL_ADD_EXIT_EVENT: u32 = 17; -pub const _NTO_TCTL_DEL_EXIT_EVENT: u32 = 18; -pub const _NTO_TCTL_IO_LEVEL: u32 = 19; -pub const _NTO_TCTL_RESERVED: u32 = 2147483648; -pub const _NTO_TCTL_IO_LEVEL_INHERIT: u32 = 1073741824; -pub const _NTO_IO_LEVEL_NONE: u32 = 1; -pub const _NTO_IO_LEVEL_1: u32 = 2; -pub const _NTO_IO_LEVEL_2: u32 = 3; - -pub const _NTO_THREAD_NAME_MAX: u32 = 100; - -pub const _NTO_CHF_FIXED_PRIORITY: u32 = 1; -pub const _NTO_CHF_UNBLOCK: u32 = 2; -pub const _NTO_CHF_THREAD_DEATH: u32 = 4; -pub const _NTO_CHF_DISCONNECT: u32 = 8; -pub const _NTO_CHF_NET_MSG: u32 = 16; -pub const _NTO_CHF_SENDER_LEN: u32 = 32; -pub const _NTO_CHF_COID_DISCONNECT: u32 = 64; -pub const _NTO_CHF_REPLY_LEN: u32 = 128; -pub const _NTO_CHF_PULSE_POOL: u32 = 256; -pub const _NTO_CHF_ASYNC_NONBLOCK: u32 = 512; -pub const _NTO_CHF_ASYNC: u32 = 1024; -pub const _NTO_CHF_GLOBAL: u32 = 2048; -pub const _NTO_CHF_PRIVATE: u32 = 4096; -pub const _NTO_CHF_MSG_PAUSING: u32 = 8192; -pub const _NTO_CHF_INHERIT_RUNMASK: u32 = 16384; -pub const _NTO_CHF_UNBLOCK_TIMER: u32 = 32768; - -pub const _NTO_CHO_CUSTOM_EVENT: u32 = 1; - -pub const _NTO_COF_CLOEXEC: u32 = 1; -pub const _NTO_COF_DEAD: u32 = 2; -pub const _NTO_COF_NOSHARE: u32 = 64; -pub const _NTO_COF_NETCON: u32 = 128; -pub const _NTO_COF_NONBLOCK: u32 = 256; -pub const _NTO_COF_ASYNC: u32 = 512; -pub const _NTO_COF_GLOBAL: u32 = 1024; -pub const _NTO_COF_NOEVENT: u32 = 2048; -pub const _NTO_COF_INSECURE: u32 = 4096; -pub const _NTO_COF_REG_EVENTS: u32 = 8192; -pub const _NTO_COF_UNREG_EVENTS: u32 = 16384; -pub const _NTO_COF_MASK: u32 = 65535; - -pub const _NTO_SIDE_CHANNEL: u32 = 1073741824; - -pub const _NTO_CONNECTION_SCOID: u32 = 65536; -pub const _NTO_GLOBAL_CHANNEL: u32 = 1073741824; - -pub const _NTO_TIMEOUT_MASK: u32 = (1 << STATE_MAX) - 1; -pub const _NTO_TIMEOUT_ACTIVE: u32 = 1 << STATE_MAX; -pub const _NTO_TIMEOUT_IMMEDIATE: u32 = 1 << (STATE_MAX + 1); - -pub const _NTO_IC_LATENCY: u32 = 0; - -pub const _NTO_INTR_FLAGS_END: u32 = 1; -pub const _NTO_INTR_FLAGS_NO_UNMASK: u32 = 2; -pub const _NTO_INTR_FLAGS_PROCESS: u32 = 4; -pub const _NTO_INTR_FLAGS_TRK_MSK: u32 = 8; -pub const _NTO_INTR_FLAGS_ARRAY: u32 = 16; -pub const _NTO_INTR_FLAGS_EXCLUSIVE: u32 = 32; -pub const _NTO_INTR_FLAGS_FPU: u32 = 64; - -pub const _NTO_INTR_CLASS_EXTERNAL: u32 = 0; -pub const _NTO_INTR_CLASS_SYNTHETIC: u32 = 2147418112; - -pub const _NTO_INTR_SPARE: u32 = 2147483647; - -pub const _NTO_HOOK_IDLE: u32 = 2147418113; -pub const _NTO_HOOK_OVERDRIVE: u32 = 2147418114; -pub const _NTO_HOOK_LAST: u32 = 2147418114; -pub const _NTO_HOOK_IDLE2_FLAG: u32 = 32768; - -pub const _NTO_IH_CMD_SLEEP_SETUP: u32 = 1; -pub const _NTO_IH_CMD_SLEEP_BLOCK: u32 = 2; -pub const _NTO_IH_CMD_SLEEP_WAKEUP: u32 = 4; -pub const _NTO_IH_CMD_SLEEP_ONLINE: u32 = 8; -pub const _NTO_IH_RESP_NEEDS_BLOCK: u32 = 1; -pub const _NTO_IH_RESP_NEEDS_WAKEUP: u32 = 2; -pub const _NTO_IH_RESP_NEEDS_ONLINE: u32 = 4; -pub const _NTO_IH_RESP_SYNC_TIME: u32 = 16; -pub const _NTO_IH_RESP_SYNC_TLB: u32 = 32; -pub const _NTO_IH_RESP_SUGGEST_OFFLINE: u32 = 256; -pub const _NTO_IH_RESP_SLEEP_MODE_REACHED: u32 = 512; -pub const _NTO_IH_RESP_DELIVER_INTRS: u32 = 1024; - -pub const _NTO_READIOV_SEND: u32 = 0; -pub const _NTO_READIOV_REPLY: u32 = 1; - -pub const _NTO_KEYDATA_VTID: u32 = 2147483648; - -pub const _NTO_KEYDATA_PATHSIGN: u32 = 32768; -pub const _NTO_KEYDATA_OP_MASK: u32 = 255; -pub const _NTO_KEYDATA_VERIFY: u32 = 0; -pub const _NTO_KEYDATA_CALCULATE: u32 = 1; -pub const _NTO_KEYDATA_CALCULATE_REUSE: u32 = 2; -pub const _NTO_KEYDATA_PATHSIGN_VERIFY: u32 = 32768; -pub const _NTO_KEYDATA_PATHSIGN_CALCULATE: u32 = 32769; -pub const _NTO_KEYDATA_PATHSIGN_CALCULATE_REUSE: u32 = 32770; - -pub const _NTO_SCTL_SETPRIOCEILING: u32 = 1; -pub const _NTO_SCTL_GETPRIOCEILING: u32 = 2; -pub const _NTO_SCTL_SETEVENT: u32 = 3; -pub const _NTO_SCTL_MUTEX_WAKEUP: u32 = 4; -pub const _NTO_SCTL_MUTEX_CONSISTENT: u32 = 5; -pub const _NTO_SCTL_SEM_VALUE: u32 = 6; - -pub const _NTO_CLIENTINFO_GETGROUPS: u32 = 1; -pub const _NTO_CLIENTINFO_GETTYPEID: u32 = 2; - -extern "C" { - pub fn ChannelCreate(__flags: ::c_uint) -> ::c_int; - pub fn ChannelCreate_r(__flags: ::c_uint) -> ::c_int; - pub fn ChannelCreatePulsePool( - __flags: ::c_uint, - __config: *const nto_channel_config, - ) -> ::c_int; - pub fn ChannelCreateExt( - __flags: ::c_uint, - __mode: ::mode_t, - __bufsize: usize, - __maxnumbuf: ::c_uint, - __ev: *const ::sigevent, - __cred: *mut _cred_info, - ) -> ::c_int; - pub fn ChannelDestroy(__chid: ::c_int) -> ::c_int; - pub fn ChannelDestroy_r(__chid: ::c_int) -> ::c_int; - pub fn ConnectAttach( - __nd: u32, - __pid: ::pid_t, - __chid: ::c_int, - __index: ::c_uint, - __flags: ::c_int, - ) -> ::c_int; - pub fn ConnectAttach_r( - __nd: u32, - __pid: ::pid_t, - __chid: ::c_int, - __index: ::c_uint, - __flags: ::c_int, - ) -> ::c_int; - - // TODO: The following function uses a structure defined in a header file - // which doesn't appear as part of the default headers found in a - // standard installation of Neutrino 7.1 SDP. Commented out for now. - //pub fn ConnectAttachExt( - // __nd: u32, - // __pid: ::pid_t, - // __chid: ::c_int, - // __index: ::c_uint, - // __flags: ::c_int, - // __cd: *mut _asyncmsg_connection_descriptor, - //) -> ::c_int; - pub fn ConnectDetach(__coid: ::c_int) -> ::c_int; - pub fn ConnectDetach_r(__coid: ::c_int) -> ::c_int; - pub fn ConnectServerInfo(__pid: ::pid_t, __coid: ::c_int, __info: *mut _msg_info64) -> ::c_int; - pub fn ConnectServerInfo_r( - __pid: ::pid_t, - __coid: ::c_int, - __info: *mut _msg_info64, - ) -> ::c_int; - pub fn ConnectClientInfoExtraArgs( - __scoid: ::c_int, - __info_pp: *mut _client_info, - __ngroups: ::c_int, - __abilities: *mut _client_able, - __nable: ::c_int, - __type_id: *mut ::c_uint, - ) -> ::c_int; - pub fn ConnectClientInfoExtraArgs_r( - __scoid: ::c_int, - __info_pp: *mut _client_info, - __ngroups: ::c_int, - __abilities: *mut _client_able, - __nable: ::c_int, - __type_id: *mut ::c_uint, - ) -> ::c_int; - pub fn ConnectClientInfo( - __scoid: ::c_int, - __info: *mut _client_info, - __ngroups: ::c_int, - ) -> ::c_int; - pub fn ConnectClientInfo_r( - __scoid: ::c_int, - __info: *mut _client_info, - __ngroups: ::c_int, - ) -> ::c_int; - pub fn ConnectClientInfoExt( - __scoid: ::c_int, - __info_pp: *mut *mut _client_info, - flags: ::c_int, - ) -> ::c_int; - pub fn ClientInfoExtFree(__info_pp: *mut *mut _client_info) -> ::c_int; - pub fn ConnectClientInfoAble( - __scoid: ::c_int, - __info_pp: *mut *mut _client_info, - flags: ::c_int, - abilities: *mut _client_able, - nable: ::c_int, - ) -> ::c_int; - pub fn ConnectFlags( - __pid: ::pid_t, - __coid: ::c_int, - __mask: ::c_uint, - __bits: ::c_uint, - ) -> ::c_int; - pub fn ConnectFlags_r( - __pid: ::pid_t, - __coid: ::c_int, - __mask: ::c_uint, - __bits: ::c_uint, - ) -> ::c_int; - pub fn ChannelConnectAttr( - __id: ::c_uint, - __old_attr: *mut _channel_connect_attr, - __new_attr: *mut _channel_connect_attr, - __flags: ::c_uint, - ) -> ::c_int; - pub fn MsgSend( - __coid: ::c_int, - __smsg: *const ::c_void, - __sbytes: usize, - __rmsg: *mut ::c_void, - __rbytes: usize, - ) -> ::c_long; - pub fn MsgSend_r( - __coid: ::c_int, - __smsg: *const ::c_void, - __sbytes: usize, - __rmsg: *mut ::c_void, - __rbytes: usize, - ) -> ::c_long; - pub fn MsgSendnc( - __coid: ::c_int, - __smsg: *const ::c_void, - __sbytes: usize, - __rmsg: *mut ::c_void, - __rbytes: usize, - ) -> ::c_long; - pub fn MsgSendnc_r( - __coid: ::c_int, - __smsg: *const ::c_void, - __sbytes: usize, - __rmsg: *mut ::c_void, - __rbytes: usize, - ) -> ::c_long; - pub fn MsgSendsv( - __coid: ::c_int, - __smsg: *const ::c_void, - __sbytes: usize, - __riov: *const ::iovec, - __rparts: usize, - ) -> ::c_long; - pub fn MsgSendsv_r( - __coid: ::c_int, - __smsg: *const ::c_void, - __sbytes: usize, - __riov: *const ::iovec, - __rparts: usize, - ) -> ::c_long; - pub fn MsgSendsvnc( - __coid: ::c_int, - __smsg: *const ::c_void, - __sbytes: usize, - __riov: *const ::iovec, - __rparts: usize, - ) -> ::c_long; - pub fn MsgSendsvnc_r( - __coid: ::c_int, - __smsg: *const ::c_void, - __sbytes: usize, - __riov: *const ::iovec, - __rparts: usize, - ) -> ::c_long; - pub fn MsgSendvs( - __coid: ::c_int, - __siov: *const ::iovec, - __sparts: usize, - __rmsg: *mut ::c_void, - __rbytes: usize, - ) -> ::c_long; - pub fn MsgSendvs_r( - __coid: ::c_int, - __siov: *const ::iovec, - __sparts: usize, - __rmsg: *mut ::c_void, - __rbytes: usize, - ) -> ::c_long; - pub fn MsgSendvsnc( - __coid: ::c_int, - __siov: *const ::iovec, - __sparts: usize, - __rmsg: *mut ::c_void, - __rbytes: usize, - ) -> ::c_long; - pub fn MsgSendvsnc_r( - __coid: ::c_int, - __siov: *const ::iovec, - __sparts: usize, - __rmsg: *mut ::c_void, - __rbytes: usize, - ) -> ::c_long; - pub fn MsgSendv( - __coid: ::c_int, - __siov: *const ::iovec, - __sparts: usize, - __riov: *const ::iovec, - __rparts: usize, - ) -> ::c_long; - pub fn MsgSendv_r( - __coid: ::c_int, - __siov: *const ::iovec, - __sparts: usize, - __riov: *const ::iovec, - __rparts: usize, - ) -> ::c_long; - pub fn MsgSendvnc( - __coid: ::c_int, - __siov: *const ::iovec, - __sparts: usize, - __riov: *const ::iovec, - __rparts: usize, - ) -> ::c_long; - pub fn MsgSendvnc_r( - __coid: ::c_int, - __siov: *const ::iovec, - __sparts: usize, - __riov: *const ::iovec, - __rparts: usize, - ) -> ::c_long; - pub fn MsgReceive( - __chid: ::c_int, - __msg: *mut ::c_void, - __bytes: usize, - __info: *mut _msg_info64, - ) -> ::c_int; - pub fn MsgReceive_r( - __chid: ::c_int, - __msg: *mut ::c_void, - __bytes: usize, - __info: *mut _msg_info64, - ) -> ::c_int; - pub fn MsgReceivev( - __chid: ::c_int, - __iov: *const ::iovec, - __parts: usize, - __info: *mut _msg_info64, - ) -> ::c_int; - pub fn MsgReceivev_r( - __chid: ::c_int, - __iov: *const ::iovec, - __parts: usize, - __info: *mut _msg_info64, - ) -> ::c_int; - pub fn MsgReceivePulse( - __chid: ::c_int, - __pulse: *mut ::c_void, - __bytes: usize, - __info: *mut _msg_info64, - ) -> ::c_int; - pub fn MsgReceivePulse_r( - __chid: ::c_int, - __pulse: *mut ::c_void, - __bytes: usize, - __info: *mut _msg_info64, - ) -> ::c_int; - pub fn MsgReceivePulsev( - __chid: ::c_int, - __iov: *const ::iovec, - __parts: usize, - __info: *mut _msg_info64, - ) -> ::c_int; - pub fn MsgReceivePulsev_r( - __chid: ::c_int, - __iov: *const ::iovec, - __parts: usize, - __info: *mut _msg_info64, - ) -> ::c_int; - pub fn MsgReply( - __rcvid: ::c_int, - __status: ::c_long, - __msg: *const ::c_void, - __bytes: usize, - ) -> ::c_int; - pub fn MsgReply_r( - __rcvid: ::c_int, - __status: ::c_long, - __msg: *const ::c_void, - __bytes: usize, - ) -> ::c_int; - pub fn MsgReplyv( - __rcvid: ::c_int, - __status: ::c_long, - __iov: *const ::iovec, - __parts: usize, - ) -> ::c_int; - pub fn MsgReplyv_r( - __rcvid: ::c_int, - __status: ::c_long, - __iov: *const ::iovec, - __parts: usize, - ) -> ::c_int; - pub fn MsgReadiov( - __rcvid: ::c_int, - __iov: *const ::iovec, - __parts: usize, - __offset: usize, - __flags: ::c_int, - ) -> isize; - pub fn MsgReadiov_r( - __rcvid: ::c_int, - __iov: *const ::iovec, - __parts: usize, - __offset: usize, - __flags: ::c_int, - ) -> isize; - pub fn MsgRead( - __rcvid: ::c_int, - __msg: *mut ::c_void, - __bytes: usize, - __offset: usize, - ) -> isize; - pub fn MsgRead_r( - __rcvid: ::c_int, - __msg: *mut ::c_void, - __bytes: usize, - __offset: usize, - ) -> isize; - pub fn MsgReadv( - __rcvid: ::c_int, - __iov: *const ::iovec, - __parts: usize, - __offset: usize, - ) -> isize; - pub fn MsgReadv_r( - __rcvid: ::c_int, - __iov: *const ::iovec, - __parts: usize, - __offset: usize, - ) -> isize; - pub fn MsgWrite( - __rcvid: ::c_int, - __msg: *const ::c_void, - __bytes: usize, - __offset: usize, - ) -> isize; - pub fn MsgWrite_r( - __rcvid: ::c_int, - __msg: *const ::c_void, - __bytes: usize, - __offset: usize, - ) -> isize; - pub fn MsgWritev( - __rcvid: ::c_int, - __iov: *const ::iovec, - __parts: usize, - __offset: usize, - ) -> isize; - pub fn MsgWritev_r( - __rcvid: ::c_int, - __iov: *const ::iovec, - __parts: usize, - __offset: usize, - ) -> isize; - pub fn MsgSendPulse( - __coid: ::c_int, - __priority: ::c_int, - __code: ::c_int, - __value: ::c_int, - ) -> ::c_int; - pub fn MsgSendPulse_r( - __coid: ::c_int, - __priority: ::c_int, - __code: ::c_int, - __value: ::c_int, - ) -> ::c_int; - pub fn MsgSendPulsePtr( - __coid: ::c_int, - __priority: ::c_int, - __code: ::c_int, - __value: *mut ::c_void, - ) -> ::c_int; - pub fn MsgSendPulsePtr_r( - __coid: ::c_int, - __priority: ::c_int, - __code: ::c_int, - __value: *mut ::c_void, - ) -> ::c_int; - pub fn MsgDeliverEvent(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int; - pub fn MsgDeliverEvent_r(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int; - pub fn MsgVerifyEvent(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int; - pub fn MsgVerifyEvent_r(__rcvid: ::c_int, __event: *const ::sigevent) -> ::c_int; - pub fn MsgRegisterEvent(__event: *mut ::sigevent, __coid: ::c_int) -> ::c_int; - pub fn MsgRegisterEvent_r(__event: *mut ::sigevent, __coid: ::c_int) -> ::c_int; - pub fn MsgUnregisterEvent(__event: *const ::sigevent) -> ::c_int; - pub fn MsgUnregisterEvent_r(__event: *const ::sigevent) -> ::c_int; - pub fn MsgInfo(__rcvid: ::c_int, __info: *mut _msg_info64) -> ::c_int; - pub fn MsgInfo_r(__rcvid: ::c_int, __info: *mut _msg_info64) -> ::c_int; - pub fn MsgKeyData( - __rcvid: ::c_int, - __oper: ::c_int, - __key: u32, - __newkey: *mut u32, - __iov: *const ::iovec, - __parts: ::c_int, - ) -> ::c_int; - pub fn MsgKeyData_r( - __rcvid: ::c_int, - __oper: ::c_int, - __key: u32, - __newkey: *mut u32, - __iov: *const ::iovec, - __parts: ::c_int, - ) -> ::c_int; - pub fn MsgError(__rcvid: ::c_int, __err: ::c_int) -> ::c_int; - pub fn MsgError_r(__rcvid: ::c_int, __err: ::c_int) -> ::c_int; - pub fn MsgCurrent(__rcvid: ::c_int) -> ::c_int; - pub fn MsgCurrent_r(__rcvid: ::c_int) -> ::c_int; - pub fn MsgSendAsyncGbl( - __coid: ::c_int, - __smsg: *const ::c_void, - __sbytes: usize, - __msg_prio: ::c_uint, - ) -> ::c_int; - pub fn MsgSendAsync(__coid: ::c_int) -> ::c_int; - pub fn MsgReceiveAsyncGbl( - __chid: ::c_int, - __rmsg: *mut ::c_void, - __rbytes: usize, - __info: *mut _msg_info64, - __coid: ::c_int, - ) -> ::c_int; - pub fn MsgReceiveAsync(__chid: ::c_int, __iov: *const ::iovec, __parts: ::c_uint) -> ::c_int; - pub fn MsgPause(__rcvid: ::c_int, __cookie: ::c_uint) -> ::c_int; - pub fn MsgPause_r(__rcvid: ::c_int, __cookie: ::c_uint) -> ::c_int; - - pub fn SignalKill( - __nd: u32, - __pid: ::pid_t, - __tid: ::c_int, - __signo: ::c_int, - __code: ::c_int, - __value: ::c_int, - ) -> ::c_int; - pub fn SignalKill_r( - __nd: u32, - __pid: ::pid_t, - __tid: ::c_int, - __signo: ::c_int, - __code: ::c_int, - __value: ::c_int, - ) -> ::c_int; - pub fn SignalKillSigval( - __nd: u32, - __pid: ::pid_t, - __tid: ::c_int, - __signo: ::c_int, - __code: ::c_int, - __value: *const ::sigval, - ) -> ::c_int; - pub fn SignalKillSigval_r( - __nd: u32, - __pid: ::pid_t, - __tid: ::c_int, - __signo: ::c_int, - __code: ::c_int, - __value: *const ::sigval, - ) -> ::c_int; - pub fn SignalReturn(__info: *mut _sighandler_info) -> ::c_int; - pub fn SignalFault(__sigcode: ::c_uint, __regs: *mut ::c_void, __refaddr: usize) -> ::c_int; - pub fn SignalAction( - __pid: ::pid_t, - __sigstub: unsafe extern "C" fn(), - __signo: ::c_int, - __act: *const ::sigaction, - __oact: *mut ::sigaction, - ) -> ::c_int; - pub fn SignalAction_r( - __pid: ::pid_t, - __sigstub: unsafe extern "C" fn(), - __signo: ::c_int, - __act: *const ::sigaction, - __oact: *mut ::sigaction, - ) -> ::c_int; - pub fn SignalProcmask( - __pid: ::pid_t, - __tid: ::c_int, - __how: ::c_int, - __set: *const ::sigset_t, - __oldset: *mut ::sigset_t, - ) -> ::c_int; - pub fn SignalProcmask_r( - __pid: ::pid_t, - __tid: ::c_int, - __how: ::c_int, - __set: *const ::sigset_t, - __oldset: *mut ::sigset_t, - ) -> ::c_int; - pub fn SignalSuspend(__set: *const ::sigset_t) -> ::c_int; - pub fn SignalSuspend_r(__set: *const ::sigset_t) -> ::c_int; - pub fn SignalWaitinfo(__set: *const ::sigset_t, __info: *mut ::siginfo_t) -> ::c_int; - pub fn SignalWaitinfo_r(__set: *const ::sigset_t, __info: *mut ::siginfo_t) -> ::c_int; - pub fn SignalWaitinfoMask( - __set: *const ::sigset_t, - __info: *mut ::siginfo_t, - __mask: *const ::sigset_t, - ) -> ::c_int; - pub fn SignalWaitinfoMask_r( - __set: *const ::sigset_t, - __info: *mut ::siginfo_t, - __mask: *const ::sigset_t, - ) -> ::c_int; - pub fn ThreadCreate( - __pid: ::pid_t, - __func: unsafe extern "C" fn(__arg: *mut ::c_void) -> *mut ::c_void, - __arg: *mut ::c_void, - __attr: *const ::_thread_attr, - ) -> ::c_int; - pub fn ThreadCreate_r( - __pid: ::pid_t, - __func: unsafe extern "C" fn(__arg: *mut ::c_void) -> *mut ::c_void, - __arg: *mut ::c_void, - __attr: *const ::_thread_attr, - ) -> ::c_int; - - pub fn ThreadDestroy(__tid: ::c_int, __priority: ::c_int, __status: *mut ::c_void) -> ::c_int; - pub fn ThreadDestroy_r(__tid: ::c_int, __priority: ::c_int, __status: *mut ::c_void) - -> ::c_int; - pub fn ThreadDetach(__tid: ::c_int) -> ::c_int; - pub fn ThreadDetach_r(__tid: ::c_int) -> ::c_int; - pub fn ThreadJoin(__tid: ::c_int, __status: *mut *mut ::c_void) -> ::c_int; - pub fn ThreadJoin_r(__tid: ::c_int, __status: *mut *mut ::c_void) -> ::c_int; - pub fn ThreadCancel(__tid: ::c_int, __canstub: unsafe extern "C" fn()) -> ::c_int; - pub fn ThreadCancel_r(__tid: ::c_int, __canstub: unsafe extern "C" fn()) -> ::c_int; - pub fn ThreadCtl(__cmd: ::c_int, __data: *mut ::c_void) -> ::c_int; - pub fn ThreadCtl_r(__cmd: ::c_int, __data: *mut ::c_void) -> ::c_int; - pub fn ThreadCtlExt( - __pid: ::pid_t, - __tid: ::c_int, - __cmd: ::c_int, - __data: *mut ::c_void, - ) -> ::c_int; - pub fn ThreadCtlExt_r( - __pid: ::pid_t, - __tid: ::c_int, - __cmd: ::c_int, - __data: *mut ::c_void, - ) -> ::c_int; - - pub fn InterruptHookTrace( - __handler: ::Option *const ::sigevent>, - __flags: ::c_uint, - ) -> ::c_int; - pub fn InterruptHookIdle( - __handler: ::Option, - __flags: ::c_uint, - ) -> ::c_int; - pub fn InterruptHookIdle2( - __handler: ::Option< - unsafe extern "C" fn(arg1: ::c_uint, arg2: *mut syspage_entry, arg3: *mut _idle_hook), - >, - __flags: ::c_uint, - ) -> ::c_int; - pub fn InterruptHookOverdriveEvent(__event: *const ::sigevent, __flags: ::c_uint) -> ::c_int; - pub fn InterruptAttachEvent( - __intr: ::c_int, - __event: *const ::sigevent, - __flags: ::c_uint, - ) -> ::c_int; - pub fn InterruptAttachEvent_r( - __intr: ::c_int, - __event: *const ::sigevent, - __flags: ::c_uint, - ) -> ::c_int; - pub fn InterruptAttach( - __intr: ::c_int, - __handler: ::Option< - unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const ::sigevent, - >, - __area: *const ::c_void, - __size: ::c_int, - __flags: ::c_uint, - ) -> ::c_int; - pub fn InterruptAttach_r( - __intr: ::c_int, - __handler: ::Option< - unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const ::sigevent, - >, - __area: *const ::c_void, - __size: ::c_int, - __flags: ::c_uint, - ) -> ::c_int; - pub fn InterruptAttachArray( - __intr: ::c_int, - __handler: ::Option< - unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const *const ::sigevent, - >, - __area: *const ::c_void, - __size: ::c_int, - __flags: ::c_uint, - ) -> ::c_int; - pub fn InterruptAttachArray_r( - __intr: ::c_int, - __handler: ::Option< - unsafe extern "C" fn(__area: *mut ::c_void, __id: ::c_int) -> *const *const ::sigevent, - >, - __area: *const ::c_void, - __size: ::c_int, - __flags: ::c_uint, - ) -> ::c_int; - pub fn InterruptDetach(__id: ::c_int) -> ::c_int; - pub fn InterruptDetach_r(__id: ::c_int) -> ::c_int; - pub fn InterruptWait(__flags: ::c_int, __timeout: *const u64) -> ::c_int; - pub fn InterruptWait_r(__flags: ::c_int, __timeout: *const u64) -> ::c_int; - pub fn InterruptCharacteristic( - __type: ::c_int, - __id: ::c_int, - __new: *mut ::c_uint, - __old: *mut ::c_uint, - ) -> ::c_int; - pub fn InterruptCharacteristic_r( - __type: ::c_int, - __id: ::c_int, - __new: *mut ::c_uint, - __old: *mut ::c_uint, - ) -> ::c_int; - - pub fn SchedGet(__pid: ::pid_t, __tid: ::c_int, __param: *mut ::sched_param) -> ::c_int; - pub fn SchedGet_r(__pid: ::pid_t, __tid: ::c_int, __param: *mut ::sched_param) -> ::c_int; - pub fn SchedGetCpuNum() -> ::c_uint; - pub fn SchedSet( - __pid: ::pid_t, - __tid: ::c_int, - __algorithm: ::c_int, - __param: *const ::sched_param, - ) -> ::c_int; - pub fn SchedSet_r( - __pid: ::pid_t, - __tid: ::c_int, - __algorithm: ::c_int, - __param: *const ::sched_param, - ) -> ::c_int; - pub fn SchedInfo(__pid: ::pid_t, __algorithm: ::c_int, __info: *mut ::_sched_info) -> ::c_int; - pub fn SchedInfo_r(__pid: ::pid_t, __algorithm: ::c_int, __info: *mut ::_sched_info) - -> ::c_int; - pub fn SchedYield() -> ::c_int; - pub fn SchedYield_r() -> ::c_int; - pub fn SchedCtl(__cmd: ::c_int, __data: *mut ::c_void, __length: usize) -> ::c_int; - pub fn SchedCtl_r(__cmd: ::c_int, __data: *mut ::c_void, __length: usize) -> ::c_int; - pub fn SchedJobCreate(__job: *mut nto_job_t) -> ::c_int; - pub fn SchedJobCreate_r(__job: *mut nto_job_t) -> ::c_int; - pub fn SchedJobDestroy(__job: *mut nto_job_t) -> ::c_int; - pub fn SchedJobDestroy_r(__job: *mut nto_job_t) -> ::c_int; - pub fn SchedWaypoint( - __job: *mut nto_job_t, - __new: *const i64, - __max: *const i64, - __old: *mut i64, - ) -> ::c_int; - pub fn SchedWaypoint_r( - __job: *mut nto_job_t, - __new: *const i64, - __max: *const i64, - __old: *mut i64, - ) -> ::c_int; - - pub fn TimerCreate(__id: ::clockid_t, __notify: *const ::sigevent) -> ::c_int; - pub fn TimerCreate_r(__id: ::clockid_t, __notify: *const ::sigevent) -> ::c_int; - pub fn TimerDestroy(__id: ::timer_t) -> ::c_int; - pub fn TimerDestroy_r(__id: ::timer_t) -> ::c_int; - pub fn TimerSettime( - __id: ::timer_t, - __flags: ::c_int, - __itime: *const ::_itimer, - __oitime: *mut ::_itimer, - ) -> ::c_int; - pub fn TimerSettime_r( - __id: ::timer_t, - __flags: ::c_int, - __itime: *const ::_itimer, - __oitime: *mut ::_itimer, - ) -> ::c_int; - pub fn TimerInfo( - __pid: ::pid_t, - __id: ::timer_t, - __flags: ::c_int, - __info: *mut ::_timer_info, - ) -> ::c_int; - pub fn TimerInfo_r( - __pid: ::pid_t, - __id: ::timer_t, - __flags: ::c_int, - __info: *mut ::_timer_info, - ) -> ::c_int; - pub fn TimerAlarm( - __id: ::clockid_t, - __itime: *const ::_itimer, - __otime: *mut ::_itimer, - ) -> ::c_int; - pub fn TimerAlarm_r( - __id: ::clockid_t, - __itime: *const ::_itimer, - __otime: *mut ::_itimer, - ) -> ::c_int; - pub fn TimerTimeout( - __id: ::clockid_t, - __flags: ::c_int, - __notify: *const ::sigevent, - __ntime: *const u64, - __otime: *mut u64, - ) -> ::c_int; - pub fn TimerTimeout_r( - __id: ::clockid_t, - __flags: ::c_int, - __notify: *const ::sigevent, - __ntime: *const u64, - __otime: *mut u64, - ) -> ::c_int; - - pub fn SyncTypeCreate( - __type: ::c_uint, - __sync: *mut ::sync_t, - __attr: *const ::_sync_attr, - ) -> ::c_int; - pub fn SyncTypeCreate_r( - __type: ::c_uint, - __sync: *mut ::sync_t, - __attr: *const ::_sync_attr, - ) -> ::c_int; - pub fn SyncDestroy(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncDestroy_r(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncCtl(__cmd: ::c_int, __sync: *mut ::sync_t, __data: *mut ::c_void) -> ::c_int; - pub fn SyncCtl_r(__cmd: ::c_int, __sync: *mut ::sync_t, __data: *mut ::c_void) -> ::c_int; - pub fn SyncMutexEvent(__sync: *mut ::sync_t, event: *const ::sigevent) -> ::c_int; - pub fn SyncMutexEvent_r(__sync: *mut ::sync_t, event: *const ::sigevent) -> ::c_int; - pub fn SyncMutexLock(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncMutexLock_r(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncMutexUnlock(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncMutexUnlock_r(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncMutexRevive(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncMutexRevive_r(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncCondvarWait(__sync: *mut ::sync_t, __mutex: *mut ::sync_t) -> ::c_int; - pub fn SyncCondvarWait_r(__sync: *mut ::sync_t, __mutex: *mut ::sync_t) -> ::c_int; - pub fn SyncCondvarSignal(__sync: *mut ::sync_t, __all: ::c_int) -> ::c_int; - pub fn SyncCondvarSignal_r(__sync: *mut ::sync_t, __all: ::c_int) -> ::c_int; - pub fn SyncSemPost(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncSemPost_r(__sync: *mut ::sync_t) -> ::c_int; - pub fn SyncSemWait(__sync: *mut ::sync_t, __tryto: ::c_int) -> ::c_int; - pub fn SyncSemWait_r(__sync: *mut ::sync_t, __tryto: ::c_int) -> ::c_int; - - pub fn ClockTime(__id: ::clockid_t, _new: *const u64, __old: *mut u64) -> ::c_int; - pub fn ClockTime_r(__id: ::clockid_t, _new: *const u64, __old: *mut u64) -> ::c_int; - pub fn ClockAdjust( - __id: ::clockid_t, - _new: *const ::_clockadjust, - __old: *mut ::_clockadjust, - ) -> ::c_int; - pub fn ClockAdjust_r( - __id: ::clockid_t, - _new: *const ::_clockadjust, - __old: *mut ::_clockadjust, - ) -> ::c_int; - pub fn ClockPeriod( - __id: ::clockid_t, - _new: *const ::_clockperiod, - __old: *mut ::_clockperiod, - __reserved: ::c_int, - ) -> ::c_int; - pub fn ClockPeriod_r( - __id: ::clockid_t, - _new: *const ::_clockperiod, - __old: *mut ::_clockperiod, - __reserved: ::c_int, - ) -> ::c_int; - pub fn ClockId(__pid: ::pid_t, __tid: ::c_int) -> ::c_int; - pub fn ClockId_r(__pid: ::pid_t, __tid: ::c_int) -> ::c_int; - - // - //TODO: The following commented out functions are implemented in assembly. - // We can implmement them either via a C stub or rust's inline assembly. - // - //pub fn InterruptEnable(); - //pub fn InterruptDisable(); - pub fn InterruptMask(__intr: ::c_int, __id: ::c_int) -> ::c_int; - pub fn InterruptUnmask(__intr: ::c_int, __id: ::c_int) -> ::c_int; - //pub fn InterruptLock(__spin: *mut ::intrspin); - //pub fn InterruptUnlock(__spin: *mut ::intrspin); - //pub fn InterruptStatus() -> ::c_uint; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/nto/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/nto/x86_64.rs deleted file mode 100644 index 3a1d230bb..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/nto/x86_64.rs +++ /dev/null @@ -1,132 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = u32; -pub type c_long = i64; -pub type c_ulong = u64; -pub type time_t = i64; - -s! { - #[repr(align(8))] - pub struct x86_64_cpu_registers { - pub rdi: u64, - pub rsi: u64, - pub rdx: u64, - pub r10: u64, - pub r8: u64, - pub r9: u64, - pub rax: u64, - pub rbx: u64, - pub rbp: u64, - pub rcx: u64, - pub r11: u64, - pub r12: u64, - pub r13: u64, - pub r14: u64, - pub r15: u64, - pub rip: u64, - pub cs: u32, - rsvd1: u32, - pub rflags: u64, - pub rsp: u64, - pub ss: u32, - rsvd2: u32, - } - - #[repr(align(8))] - pub struct mcontext_t { - pub cpu: x86_64_cpu_registers, - #[cfg(libc_union)] - pub fpu: x86_64_fpu_registers, - #[cfg(not(libc_union))] - __reserved: [u8; 1024], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - } - - pub struct fsave_area_64 { - pub fpu_control_word: u32, - pub fpu_status_word: u32, - pub fpu_tag_word: u32, - pub fpu_ip: u32, - pub fpu_cs: u32, - pub fpu_op: u32, - pub fpu_ds: u32, - pub st_regs: [u8; 80], - } - - pub struct fxsave_area_64 { - pub fpu_control_word: u16, - pub fpu_status_word: u16, - pub fpu_tag_word: u16, - pub fpu_operand: u16, - pub fpu_rip: u64, - pub fpu_rdp: u64, - pub mxcsr: u32, - pub mxcsr_mask: u32, - pub st_regs: [u8; 128], - pub xmm_regs: [u8; 128], - reserved2: [u8; 224], - } - - pub struct fpu_extention_savearea_64 { - pub other: [u8; 512], - pub xstate_bv: u64, - pub xstate_undef: [u64; 7], - pub xstate_info: [u8; 224], - } -} - -s_no_extra_traits! { - #[cfg(libc_union)] - pub union x86_64_fpu_registers { - pub fsave_area: fsave_area_64, - pub fxsave_area: fxsave_area_64, - pub xsave_area: fpu_extention_savearea_64, - pub data: [u8; 1024], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - #[cfg(libc_union)] - impl Eq for x86_64_fpu_registers {} - - #[cfg(libc_union)] - impl PartialEq for x86_64_fpu_registers { - fn eq(&self, other: &x86_64_fpu_registers) -> bool { - unsafe { - self.fsave_area == other.fsave_area - || self.fxsave_area == other.fxsave_area - || self.xsave_area == other.xsave_area - } - } - } - - #[cfg(libc_union)] - impl ::fmt::Debug for x86_64_fpu_registers { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - unsafe { - f.debug_struct("x86_64_fpu_registers") - .field("fsave_area", &self.fsave_area) - .field("fxsave_area", &self.fxsave_area) - .field("xsave_area", &self.xsave_area) - .finish() - } - } - } - - #[cfg(libc_union)] - impl ::hash::Hash for x86_64_fpu_registers { - fn hash(&self, state: &mut H) { - unsafe { - self.fsave_area.hash(state); - self.fxsave_area.hash(state); - self.xsave_area.hash(state); - } - } - } - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/redox/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/redox/mod.rs deleted file mode 100644 index 5003cda0a..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/redox/mod.rs +++ /dev/null @@ -1,1335 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; - -cfg_if! { - if #[cfg(target_pointer_width = "32")] { - pub type c_long = i32; - pub type c_ulong = u32; - } -} - -cfg_if! { - if #[cfg(target_pointer_width = "64")] { - pub type c_long = i64; - pub type c_ulong = u64; - } -} - -pub type blkcnt_t = ::c_ulong; -pub type blksize_t = ::c_long; -pub type clock_t = ::c_long; -pub type clockid_t = ::c_int; -pub type dev_t = ::c_long; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type ino_t = ::c_ulong; -pub type mode_t = ::c_int; -pub type nfds_t = ::c_ulong; -pub type nlink_t = ::c_ulong; -pub type off_t = ::c_longlong; -pub type pthread_t = *mut ::c_void; -pub type pthread_attr_t = *mut ::c_void; -pub type pthread_cond_t = *mut ::c_void; -pub type pthread_condattr_t = *mut ::c_void; -// Must be usize due to libstd/sys_common/thread_local.rs, -// should technically be *mut ::c_void -pub type pthread_key_t = usize; -pub type pthread_mutex_t = *mut ::c_void; -pub type pthread_mutexattr_t = *mut ::c_void; -pub type pthread_rwlock_t = *mut ::c_void; -pub type pthread_rwlockattr_t = *mut ::c_void; -pub type rlim_t = ::c_ulonglong; -pub type sa_family_t = u16; -pub type sem_t = *mut ::c_void; -pub type sigset_t = ::c_ulong; -pub type socklen_t = u32; -pub type speed_t = u32; -pub type suseconds_t = ::c_int; -pub type tcflag_t = u32; -pub type time_t = ::c_longlong; -pub type id_t = ::c_uint; -pub type pid_t = usize; -pub type uid_t = u32; -pub type gid_t = u32; - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { - fn clone(&self) -> timezone { - *self - } -} - -s_no_extra_traits! { - #[repr(C)] - pub struct utsname { - pub sysname: [::c_char; UTSLENGTH], - pub nodename: [::c_char; UTSLENGTH], - pub release: [::c_char; UTSLENGTH], - pub version: [::c_char; UTSLENGTH], - pub machine: [::c_char; UTSLENGTH], - pub domainname: [::c_char; UTSLENGTH], - } - - pub struct dirent { - pub d_ino: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], - } - - pub struct sockaddr_un { - pub sun_family: ::sa_family_t, - pub sun_path: [::c_char; 108] - } - - pub struct sockaddr_storage { - pub ss_family: ::sa_family_t, - __ss_padding: [ - u8; - 128 - - ::core::mem::size_of::() - - ::core::mem::size_of::() - ], - __ss_align: ::c_ulong, - } -} - -s! { - pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - pub ai_addrlen: ::size_t, - pub ai_canonname: *mut ::c_char, - pub ai_addr: *mut ::sockaddr, - pub ai_next: *mut ::addrinfo, - } - - pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, - } - - pub struct epoll_event { - pub events: u32, - pub u64: u64, - pub _pad: u64, - } - - pub struct fd_set { - fds_bits: [::c_ulong; ::FD_SETSIZE / ULONG_SIZE], - } - - pub struct in_addr { - pub s_addr: ::in_addr_t, - } - - pub struct ip_mreq { - pub imr_multiaddr: ::in_addr, - pub imr_interface: ::in_addr, - } - - pub struct lconv { - pub currency_symbol: *const ::c_char, - pub decimal_point: *const ::c_char, - pub frac_digits: ::c_char, - pub grouping: *const ::c_char, - pub int_curr_symbol: *const ::c_char, - pub int_frac_digits: ::c_char, - pub mon_decimal_point: *const ::c_char, - pub mon_grouping: *const ::c_char, - pub mon_thousands_sep: *const ::c_char, - pub negative_sign: *const ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub n_sign_posn: ::c_char, - pub positive_sign: *const ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub thousands_sep: *const ::c_char, - } - - pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - } - - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_flags: ::c_ulong, - pub sa_restorer: ::Option, - pub sa_mask: ::sigset_t, - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct sockaddr { - pub sa_family: ::sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_in { - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], - } - - pub struct sockaddr_in6 { - pub sin6_family: ::sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_nlink: ::nlink_t, - pub st_mode: ::mode_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - _pad: [::c_char; 24], - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - } - - pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - pub tm_gmtoff: ::c_long, - pub tm_zone: *const ::c_char, - } - - pub struct ucred { - pub pid: pid_t, - pub uid: uid_t, - pub gid: gid_t, - } -} - -pub const UTSLENGTH: usize = 65; - -// intentionally not public, only used for fd_set -cfg_if! { - if #[cfg(target_pointer_width = "32")] { - const ULONG_SIZE: usize = 32; - } else if #[cfg(target_pointer_width = "64")] { - const ULONG_SIZE: usize = 64; - } else { - // Unknown target_pointer_width - } -} - -// limits.h -pub const PATH_MAX: ::c_int = 4096; - -// fcntl.h -pub const F_GETLK: ::c_int = 5; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_ULOCK: ::c_int = 0; -pub const F_LOCK: ::c_int = 1; -pub const F_TLOCK: ::c_int = 2; -pub const F_TEST: ::c_int = 3; - -// FIXME: relibc { -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; -// } - -// dlfcn.h -pub const RTLD_LAZY: ::c_int = 0x0001; -pub const RTLD_NOW: ::c_int = 0x0002; -pub const RTLD_GLOBAL: ::c_int = 0x0100; -pub const RTLD_LOCAL: ::c_int = 0x0000; - -// errno.h -pub const EPERM: ::c_int = 1; /* Operation not permitted */ -pub const ENOENT: ::c_int = 2; /* No such file or directory */ -pub const ESRCH: ::c_int = 3; /* No such process */ -pub const EINTR: ::c_int = 4; /* Interrupted system call */ -pub const EIO: ::c_int = 5; /* I/O error */ -pub const ENXIO: ::c_int = 6; /* No such device or address */ -pub const E2BIG: ::c_int = 7; /* Argument list too long */ -pub const ENOEXEC: ::c_int = 8; /* Exec format error */ -pub const EBADF: ::c_int = 9; /* Bad file number */ -pub const ECHILD: ::c_int = 10; /* No child processes */ -pub const EAGAIN: ::c_int = 11; /* Try again */ -pub const ENOMEM: ::c_int = 12; /* Out of memory */ -pub const EACCES: ::c_int = 13; /* Permission denied */ -pub const EFAULT: ::c_int = 14; /* Bad address */ -pub const ENOTBLK: ::c_int = 15; /* Block device required */ -pub const EBUSY: ::c_int = 16; /* Device or resource busy */ -pub const EEXIST: ::c_int = 17; /* File exists */ -pub const EXDEV: ::c_int = 18; /* Cross-device link */ -pub const ENODEV: ::c_int = 19; /* No such device */ -pub const ENOTDIR: ::c_int = 20; /* Not a directory */ -pub const EISDIR: ::c_int = 21; /* Is a directory */ -pub const EINVAL: ::c_int = 22; /* Invalid argument */ -pub const ENFILE: ::c_int = 23; /* File table overflow */ -pub const EMFILE: ::c_int = 24; /* Too many open files */ -pub const ENOTTY: ::c_int = 25; /* Not a typewriter */ -pub const ETXTBSY: ::c_int = 26; /* Text file busy */ -pub const EFBIG: ::c_int = 27; /* File too large */ -pub const ENOSPC: ::c_int = 28; /* No space left on device */ -pub const ESPIPE: ::c_int = 29; /* Illegal seek */ -pub const EROFS: ::c_int = 30; /* Read-only file system */ -pub const EMLINK: ::c_int = 31; /* Too many links */ -pub const EPIPE: ::c_int = 32; /* Broken pipe */ -pub const EDOM: ::c_int = 33; /* Math argument out of domain of func */ -pub const ERANGE: ::c_int = 34; /* Math result not representable */ -pub const EDEADLK: ::c_int = 35; /* Resource deadlock would occur */ -pub const ENAMETOOLONG: ::c_int = 36; /* File name too long */ -pub const ENOLCK: ::c_int = 37; /* No record locks available */ -pub const ENOSYS: ::c_int = 38; /* Function not implemented */ -pub const ENOTEMPTY: ::c_int = 39; /* Directory not empty */ -pub const ELOOP: ::c_int = 40; /* Too many symbolic links encountered */ -pub const EWOULDBLOCK: ::c_int = 41; /* Operation would block */ -pub const ENOMSG: ::c_int = 42; /* No message of desired type */ -pub const EIDRM: ::c_int = 43; /* Identifier removed */ -pub const ECHRNG: ::c_int = 44; /* Channel number out of range */ -pub const EL2NSYNC: ::c_int = 45; /* Level 2 not synchronized */ -pub const EL3HLT: ::c_int = 46; /* Level 3 halted */ -pub const EL3RST: ::c_int = 47; /* Level 3 reset */ -pub const ELNRNG: ::c_int = 48; /* Link number out of range */ -pub const EUNATCH: ::c_int = 49; /* Protocol driver not attached */ -pub const ENOCSI: ::c_int = 50; /* No CSI structure available */ -pub const EL2HLT: ::c_int = 51; /* Level 2 halted */ -pub const EBADE: ::c_int = 52; /* Invalid exchange */ -pub const EBADR: ::c_int = 53; /* Invalid request descriptor */ -pub const EXFULL: ::c_int = 54; /* Exchange full */ -pub const ENOANO: ::c_int = 55; /* No anode */ -pub const EBADRQC: ::c_int = 56; /* Invalid request code */ -pub const EBADSLT: ::c_int = 57; /* Invalid slot */ -pub const EDEADLOCK: ::c_int = 58; /* Resource deadlock would occur */ -pub const EBFONT: ::c_int = 59; /* Bad font file format */ -pub const ENOSTR: ::c_int = 60; /* Device not a stream */ -pub const ENODATA: ::c_int = 61; /* No data available */ -pub const ETIME: ::c_int = 62; /* Timer expired */ -pub const ENOSR: ::c_int = 63; /* Out of streams resources */ -pub const ENONET: ::c_int = 64; /* Machine is not on the network */ -pub const ENOPKG: ::c_int = 65; /* Package not installed */ -pub const EREMOTE: ::c_int = 66; /* Object is remote */ -pub const ENOLINK: ::c_int = 67; /* Link has been severed */ -pub const EADV: ::c_int = 68; /* Advertise error */ -pub const ESRMNT: ::c_int = 69; /* Srmount error */ -pub const ECOMM: ::c_int = 70; /* Communication error on send */ -pub const EPROTO: ::c_int = 71; /* Protocol error */ -pub const EMULTIHOP: ::c_int = 72; /* Multihop attempted */ -pub const EDOTDOT: ::c_int = 73; /* RFS specific error */ -pub const EBADMSG: ::c_int = 74; /* Not a data message */ -pub const EOVERFLOW: ::c_int = 75; /* Value too large for defined data type */ -pub const ENOTUNIQ: ::c_int = 76; /* Name not unique on network */ -pub const EBADFD: ::c_int = 77; /* File descriptor in bad state */ -pub const EREMCHG: ::c_int = 78; /* Remote address changed */ -pub const ELIBACC: ::c_int = 79; /* Can not access a needed shared library */ -pub const ELIBBAD: ::c_int = 80; /* Accessing a corrupted shared library */ -pub const ELIBSCN: ::c_int = 81; /* .lib section in a.out corrupted */ -/* Attempting to link in too many shared libraries */ -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; /* Cannot exec a shared library directly */ -pub const EILSEQ: ::c_int = 84; /* Illegal byte sequence */ -/* Interrupted system call should be restarted */ -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; /* Streams pipe error */ -pub const EUSERS: ::c_int = 87; /* Too many users */ -pub const ENOTSOCK: ::c_int = 88; /* Socket operation on non-socket */ -pub const EDESTADDRREQ: ::c_int = 89; /* Destination address required */ -pub const EMSGSIZE: ::c_int = 90; /* Message too long */ -pub const EPROTOTYPE: ::c_int = 91; /* Protocol wrong type for socket */ -pub const ENOPROTOOPT: ::c_int = 92; /* Protocol not available */ -pub const EPROTONOSUPPORT: ::c_int = 93; /* Protocol not supported */ -pub const ESOCKTNOSUPPORT: ::c_int = 94; /* Socket type not supported */ -/* Operation not supported on transport endpoint */ -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; /* Protocol family not supported */ -/* Address family not supported by protocol */ -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; /* Address already in use */ -pub const EADDRNOTAVAIL: ::c_int = 99; /* Cannot assign requested address */ -pub const ENETDOWN: ::c_int = 100; /* Network is down */ -pub const ENETUNREACH: ::c_int = 101; /* Network is unreachable */ -/* Network dropped connection because of reset */ -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; /* Software caused connection abort */ -pub const ECONNRESET: ::c_int = 104; /* Connection reset by peer */ -pub const ENOBUFS: ::c_int = 105; /* No buffer space available */ -pub const EISCONN: ::c_int = 106; /* Transport endpoint is already connected */ -pub const ENOTCONN: ::c_int = 107; /* Transport endpoint is not connected */ -/* Cannot send after transport endpoint shutdown */ -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; /* Too many references: cannot splice */ -pub const ETIMEDOUT: ::c_int = 110; /* Connection timed out */ -pub const ECONNREFUSED: ::c_int = 111; /* Connection refused */ -pub const EHOSTDOWN: ::c_int = 112; /* Host is down */ -pub const EHOSTUNREACH: ::c_int = 113; /* No route to host */ -pub const EALREADY: ::c_int = 114; /* Operation already in progress */ -pub const EINPROGRESS: ::c_int = 115; /* Operation now in progress */ -pub const ESTALE: ::c_int = 116; /* Stale NFS file handle */ -pub const EUCLEAN: ::c_int = 117; /* Structure needs cleaning */ -pub const ENOTNAM: ::c_int = 118; /* Not a XENIX named type file */ -pub const ENAVAIL: ::c_int = 119; /* No XENIX semaphores available */ -pub const EISNAM: ::c_int = 120; /* Is a named type file */ -pub const EREMOTEIO: ::c_int = 121; /* Remote I/O error */ -pub const EDQUOT: ::c_int = 122; /* Quota exceeded */ -pub const ENOMEDIUM: ::c_int = 123; /* No medium found */ -pub const EMEDIUMTYPE: ::c_int = 124; /* Wrong medium type */ -pub const ECANCELED: ::c_int = 125; /* Operation Canceled */ -pub const ENOKEY: ::c_int = 126; /* Required key not available */ -pub const EKEYEXPIRED: ::c_int = 127; /* Key has expired */ -pub const EKEYREVOKED: ::c_int = 128; /* Key has been revoked */ -pub const EKEYREJECTED: ::c_int = 129; /* Key was rejected by service */ -pub const EOWNERDEAD: ::c_int = 130; /* Owner died */ -pub const ENOTRECOVERABLE: ::c_int = 131; /* State not recoverable */ - -// fcntl.h -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; -// FIXME: relibc { -pub const F_DUPFD_CLOEXEC: ::c_int = ::F_DUPFD; -// } -pub const FD_CLOEXEC: ::c_int = 0x0100_0000; -pub const O_RDONLY: ::c_int = 0x0001_0000; -pub const O_WRONLY: ::c_int = 0x0002_0000; -pub const O_RDWR: ::c_int = 0x0003_0000; -pub const O_ACCMODE: ::c_int = 0x0003_0000; -pub const O_NONBLOCK: ::c_int = 0x0004_0000; -pub const O_APPEND: ::c_int = 0x0008_0000; -pub const O_SHLOCK: ::c_int = 0x0010_0000; -pub const O_EXLOCK: ::c_int = 0x0020_0000; -pub const O_ASYNC: ::c_int = 0x0040_0000; -pub const O_FSYNC: ::c_int = 0x0080_0000; -pub const O_CLOEXEC: ::c_int = 0x0100_0000; -pub const O_CREAT: ::c_int = 0x0200_0000; -pub const O_TRUNC: ::c_int = 0x0400_0000; -pub const O_EXCL: ::c_int = 0x0800_0000; -pub const O_DIRECTORY: ::c_int = 0x1000_0000; -pub const O_PATH: ::c_int = 0x2000_0000; -pub const O_SYMLINK: ::c_int = 0x4000_0000; -// Negative to allow it to be used as int -// FIXME: Fix negative values missing from includes -pub const O_NOFOLLOW: ::c_int = -0x8000_0000; - -// locale.h -pub const LC_ALL: ::c_int = 0; -pub const LC_COLLATE: ::c_int = 1; -pub const LC_CTYPE: ::c_int = 2; -pub const LC_MESSAGES: ::c_int = 3; -pub const LC_MONETARY: ::c_int = 4; -pub const LC_NUMERIC: ::c_int = 5; -pub const LC_TIME: ::c_int = 6; - -// netdb.h -pub const AI_PASSIVE: ::c_int = 0x0001; -pub const AI_CANONNAME: ::c_int = 0x0002; -pub const AI_NUMERICHOST: ::c_int = 0x0004; -pub const AI_V4MAPPED: ::c_int = 0x0008; -pub const AI_ALL: ::c_int = 0x0010; -pub const AI_ADDRCONFIG: ::c_int = 0x0020; -pub const AI_NUMERICSERV: ::c_int = 0x0400; -pub const EAI_BADFLAGS: ::c_int = -1; -pub const EAI_NONAME: ::c_int = -2; -pub const EAI_AGAIN: ::c_int = -3; -pub const EAI_FAIL: ::c_int = -4; -pub const EAI_NODATA: ::c_int = -5; -pub const EAI_FAMILY: ::c_int = -6; -pub const EAI_SOCKTYPE: ::c_int = -7; -pub const EAI_SERVICE: ::c_int = -8; -pub const EAI_ADDRFAMILY: ::c_int = -9; -pub const EAI_MEMORY: ::c_int = -10; -pub const EAI_SYSTEM: ::c_int = -11; -pub const EAI_OVERFLOW: ::c_int = -12; -pub const NI_MAXHOST: ::c_int = 1025; -pub const NI_MAXSERV: ::c_int = 32; -pub const NI_NUMERICHOST: ::c_int = 0x0001; -pub const NI_NUMERICSERV: ::c_int = 0x0002; -pub const NI_NOFQDN: ::c_int = 0x0004; -pub const NI_NAMEREQD: ::c_int = 0x0008; -pub const NI_DGRAM: ::c_int = 0x0010; - -// netinet/in.h -// FIXME: relibc { -pub const IP_TTL: ::c_int = 2; -pub const IPV6_UNICAST_HOPS: ::c_int = 16; -pub const IPV6_MULTICAST_IF: ::c_int = 17; -pub const IPV6_MULTICAST_HOPS: ::c_int = 18; -pub const IPV6_MULTICAST_LOOP: ::c_int = 19; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; -pub const IPV6_V6ONLY: ::c_int = 26; -pub const IP_MULTICAST_IF: ::c_int = 32; -pub const IP_MULTICAST_TTL: ::c_int = 33; -pub const IP_MULTICAST_LOOP: ::c_int = 34; -pub const IP_ADD_MEMBERSHIP: ::c_int = 35; -pub const IP_DROP_MEMBERSHIP: ::c_int = 36; -pub const IPPROTO_RAW: ::c_int = 255; -// } - -// netinet/tcp.h -pub const TCP_NODELAY: ::c_int = 1; -// FIXME: relibc { -pub const TCP_KEEPIDLE: ::c_int = 1; -// } - -// poll.h -pub const POLLIN: ::c_short = 0x001; -pub const POLLPRI: ::c_short = 0x002; -pub const POLLOUT: ::c_short = 0x004; -pub const POLLERR: ::c_short = 0x008; -pub const POLLHUP: ::c_short = 0x010; -pub const POLLNVAL: ::c_short = 0x020; -pub const POLLRDNORM: ::c_short = 0x040; -pub const POLLRDBAND: ::c_short = 0x080; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -// pthread.h -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -pub const PTHREAD_MUTEX_INITIALIZER: ::pthread_mutex_t = -1isize as *mut _; -pub const PTHREAD_COND_INITIALIZER: ::pthread_cond_t = -1isize as *mut _; -pub const PTHREAD_RWLOCK_INITIALIZER: ::pthread_rwlock_t = -1isize as *mut _; -pub const PTHREAD_STACK_MIN: ::size_t = 4096; - -// signal.h -pub const SIG_BLOCK: ::c_int = 0; -pub const SIG_UNBLOCK: ::c_int = 1; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGTRAP: ::c_int = 5; -pub const SIGABRT: ::c_int = 6; -pub const SIGBUS: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGUSR1: ::c_int = 10; -pub const SIGSEGV: ::c_int = 11; -pub const SIGUSR2: ::c_int = 12; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGCHLD: ::c_int = 17; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGURG: ::c_int = 23; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGIO: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIGSYS: ::c_int = 31; -pub const NSIG: ::c_int = 32; - -pub const SA_NOCLDSTOP: ::c_ulong = 0x00000001; -pub const SA_NOCLDWAIT: ::c_ulong = 0x00000002; -pub const SA_SIGINFO: ::c_ulong = 0x00000004; -pub const SA_RESTORER: ::c_ulong = 0x04000000; -pub const SA_ONSTACK: ::c_ulong = 0x08000000; -pub const SA_RESTART: ::c_ulong = 0x10000000; -pub const SA_NODEFER: ::c_ulong = 0x40000000; -pub const SA_RESETHAND: ::c_ulong = 0x80000000; - -// sys/file.h -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; - -// sys/epoll.h -pub const EPOLL_CLOEXEC: ::c_int = 0x0100_0000; -pub const EPOLL_CTL_ADD: ::c_int = 1; -pub const EPOLL_CTL_DEL: ::c_int = 2; -pub const EPOLL_CTL_MOD: ::c_int = 3; -pub const EPOLLIN: ::c_int = 1; -pub const EPOLLPRI: ::c_int = 0; -pub const EPOLLOUT: ::c_int = 2; -pub const EPOLLRDNORM: ::c_int = 0; -pub const EPOLLNVAL: ::c_int = 0; -pub const EPOLLRDBAND: ::c_int = 0; -pub const EPOLLWRNORM: ::c_int = 0; -pub const EPOLLWRBAND: ::c_int = 0; -pub const EPOLLMSG: ::c_int = 0; -pub const EPOLLERR: ::c_int = 0; -pub const EPOLLHUP: ::c_int = 0; -pub const EPOLLRDHUP: ::c_int = 0; -pub const EPOLLEXCLUSIVE: ::c_int = 0; -pub const EPOLLWAKEUP: ::c_int = 0; -pub const EPOLLONESHOT: ::c_int = 0; -pub const EPOLLET: ::c_int = 0; - -// sys/stat.h -pub const S_IFMT: ::c_int = 0o0_170_000; -pub const S_IFDIR: ::c_int = 0o040_000; -pub const S_IFCHR: ::c_int = 0o020_000; -pub const S_IFBLK: ::c_int = 0o060_000; -pub const S_IFREG: ::c_int = 0o100_000; -pub const S_IFIFO: ::c_int = 0o010_000; -pub const S_IFLNK: ::c_int = 0o120_000; -pub const S_IFSOCK: ::c_int = 0o140_000; -pub const S_IRWXU: ::c_int = 0o0_700; -pub const S_IRUSR: ::c_int = 0o0_400; -pub const S_IWUSR: ::c_int = 0o0_200; -pub const S_IXUSR: ::c_int = 0o0_100; -pub const S_IRWXG: ::c_int = 0o0_070; -pub const S_IRGRP: ::c_int = 0o0_040; -pub const S_IWGRP: ::c_int = 0o0_020; -pub const S_IXGRP: ::c_int = 0o0_010; -pub const S_IRWXO: ::c_int = 0o0_007; -pub const S_IROTH: ::c_int = 0o0_004; -pub const S_IWOTH: ::c_int = 0o0_002; -pub const S_IXOTH: ::c_int = 0o0_001; - -// stdlib.h -pub const EXIT_SUCCESS: ::c_int = 0; -pub const EXIT_FAILURE: ::c_int = 1; - -// sys/ioctl.h -// FIXME: relibc { -pub const FIONREAD: ::c_ulong = 0x541B; -pub const FIONBIO: ::c_ulong = 0x5421; -pub const FIOCLEX: ::c_ulong = 0x5451; -// } -pub const TCGETS: ::c_ulong = 0x5401; -pub const TCSETS: ::c_ulong = 0x5402; -pub const TCFLSH: ::c_ulong = 0x540B; -pub const TIOCGPGRP: ::c_ulong = 0x540F; -pub const TIOCSPGRP: ::c_ulong = 0x5410; -pub const TIOCGWINSZ: ::c_ulong = 0x5413; -pub const TIOCSWINSZ: ::c_ulong = 0x5414; - -// sys/mman.h -pub const PROT_NONE: ::c_int = 0x0000; -pub const PROT_READ: ::c_int = 0x0004; -pub const PROT_WRITE: ::c_int = 0x0002; -pub const PROT_EXEC: ::c_int = 0x0001; - -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; - -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; -pub const MAP_FIXED: ::c_int = 0x0010; -pub const MAP_FAILED: *mut ::c_void = !0 as _; - -pub const MS_ASYNC: ::c_int = 0x0001; -pub const MS_INVALIDATE: ::c_int = 0x0002; -pub const MS_SYNC: ::c_int = 0x0004; - -// sys/select.h -pub const FD_SETSIZE: usize = 1024; - -// sys/socket.h -pub const AF_INET: ::c_int = 2; -pub const AF_INET6: ::c_int = 10; -pub const AF_UNIX: ::c_int = 1; -pub const AF_UNSPEC: ::c_int = 0; -pub const PF_INET: ::c_int = 2; -pub const PF_INET6: ::c_int = 10; -pub const PF_UNIX: ::c_int = 1; -pub const PF_UNSPEC: ::c_int = 0; -pub const MSG_CTRUNC: ::c_int = 8; -pub const MSG_DONTROUTE: ::c_int = 4; -pub const MSG_EOR: ::c_int = 128; -pub const MSG_OOB: ::c_int = 1; -pub const MSG_PEEK: ::c_int = 2; -pub const MSG_TRUNC: ::c_int = 32; -pub const MSG_DONTWAIT: ::c_int = 64; -pub const MSG_WAITALL: ::c_int = 256; -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; -pub const SO_DEBUG: ::c_int = 1; -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_PASSCRED: ::c_int = 16; -pub const SO_PEERCRED: ::c_int = 17; -pub const SO_RCVLOWAT: ::c_int = 18; -pub const SO_SNDLOWAT: ::c_int = 19; -pub const SO_RCVTIMEO: ::c_int = 20; -pub const SO_SNDTIMEO: ::c_int = 21; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_PEERSEC: ::c_int = 31; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_NONBLOCK: ::c_int = 0o4_000; -pub const SOCK_CLOEXEC: ::c_int = 0o2_000_000; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOL_SOCKET: ::c_int = 1; - -// sys/termios.h -pub const VEOF: usize = 0; -pub const VEOL: usize = 1; -pub const VEOL2: usize = 2; -pub const VERASE: usize = 3; -pub const VWERASE: usize = 4; -pub const VKILL: usize = 5; -pub const VREPRINT: usize = 6; -pub const VSWTC: usize = 7; -pub const VINTR: usize = 8; -pub const VQUIT: usize = 9; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 12; -pub const VSTOP: usize = 13; -pub const VLNEXT: usize = 14; -pub const VDISCARD: usize = 15; -pub const VMIN: usize = 16; -pub const VTIME: usize = 17; -pub const NCCS: usize = 32; - -pub const IGNBRK: ::tcflag_t = 0o000_001; -pub const BRKINT: ::tcflag_t = 0o000_002; -pub const IGNPAR: ::tcflag_t = 0o000_004; -pub const PARMRK: ::tcflag_t = 0o000_010; -pub const INPCK: ::tcflag_t = 0o000_020; -pub const ISTRIP: ::tcflag_t = 0o000_040; -pub const INLCR: ::tcflag_t = 0o000_100; -pub const IGNCR: ::tcflag_t = 0o000_200; -pub const ICRNL: ::tcflag_t = 0o000_400; -pub const IXON: ::tcflag_t = 0o001_000; -pub const IXOFF: ::tcflag_t = 0o002_000; - -pub const OPOST: ::tcflag_t = 0o000_001; -pub const ONLCR: ::tcflag_t = 0o000_002; -pub const OLCUC: ::tcflag_t = 0o000_004; -pub const OCRNL: ::tcflag_t = 0o000_010; -pub const ONOCR: ::tcflag_t = 0o000_020; -pub const ONLRET: ::tcflag_t = 0o000_040; -pub const OFILL: ::tcflag_t = 0o0000_100; -pub const OFDEL: ::tcflag_t = 0o0000_200; - -pub const B0: speed_t = 0o000_000; -pub const B50: speed_t = 0o000_001; -pub const B75: speed_t = 0o000_002; -pub const B110: speed_t = 0o000_003; -pub const B134: speed_t = 0o000_004; -pub const B150: speed_t = 0o000_005; -pub const B200: speed_t = 0o000_006; -pub const B300: speed_t = 0o000_007; -pub const B600: speed_t = 0o000_010; -pub const B1200: speed_t = 0o000_011; -pub const B1800: speed_t = 0o000_012; -pub const B2400: speed_t = 0o000_013; -pub const B4800: speed_t = 0o000_014; -pub const B9600: speed_t = 0o000_015; -pub const B19200: speed_t = 0o000_016; -pub const B38400: speed_t = 0o000_017; - -pub const B57600: speed_t = 0o0_020; -pub const B115200: speed_t = 0o0_021; -pub const B230400: speed_t = 0o0_022; -pub const B460800: speed_t = 0o0_023; -pub const B500000: speed_t = 0o0_024; -pub const B576000: speed_t = 0o0_025; -pub const B921600: speed_t = 0o0_026; -pub const B1000000: speed_t = 0o0_027; -pub const B1152000: speed_t = 0o0_030; -pub const B1500000: speed_t = 0o0_031; -pub const B2000000: speed_t = 0o0_032; -pub const B2500000: speed_t = 0o0_033; -pub const B3000000: speed_t = 0o0_034; -pub const B3500000: speed_t = 0o0_035; -pub const B4000000: speed_t = 0o0_036; - -pub const CSIZE: ::tcflag_t = 0o001_400; -pub const CS5: ::tcflag_t = 0o000_000; -pub const CS6: ::tcflag_t = 0o000_400; -pub const CS7: ::tcflag_t = 0o001_000; -pub const CS8: ::tcflag_t = 0o001_400; - -pub const CSTOPB: ::tcflag_t = 0o002_000; -pub const CREAD: ::tcflag_t = 0o004_000; -pub const PARENB: ::tcflag_t = 0o010_000; -pub const PARODD: ::tcflag_t = 0o020_000; -pub const HUPCL: ::tcflag_t = 0o040_000; - -pub const CLOCAL: ::tcflag_t = 0o0100000; - -pub const ISIG: ::tcflag_t = 0x0000_0080; -pub const ICANON: ::tcflag_t = 0x0000_0100; -pub const ECHO: ::tcflag_t = 0x0000_0008; -pub const ECHOE: ::tcflag_t = 0x0000_0002; -pub const ECHOK: ::tcflag_t = 0x0000_0004; -pub const ECHONL: ::tcflag_t = 0x0000_0010; -pub const NOFLSH: ::tcflag_t = 0x8000_0000; -pub const TOSTOP: ::tcflag_t = 0x0040_0000; -pub const IEXTEN: ::tcflag_t = 0x0000_0400; - -pub const TCOOFF: ::c_int = 0; -pub const TCOON: ::c_int = 1; -pub const TCIOFF: ::c_int = 2; -pub const TCION: ::c_int = 3; - -pub const TCIFLUSH: ::c_int = 0; -pub const TCOFLUSH: ::c_int = 1; -pub const TCIOFLUSH: ::c_int = 2; - -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -// sys/wait.h -pub const WNOHANG: ::c_int = 1; -pub const WUNTRACED: ::c_int = 2; - -pub const WSTOPPED: ::c_int = 2; -pub const WEXITED: ::c_int = 4; -pub const WCONTINUED: ::c_int = 8; -pub const WNOWAIT: ::c_int = 0x0100_0000; - -pub const __WNOTHREAD: ::c_int = 0x2000_0000; -pub const __WALL: ::c_int = 0x4000_0000; -#[allow(overflowing_literals)] -pub const __WCLONE: ::c_int = 0x8000_0000; - -// time.h -pub const CLOCK_REALTIME: ::c_int = 1; -pub const CLOCK_MONOTONIC: ::c_int = 4; -pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2; -pub const CLOCKS_PER_SEC: ::clock_t = 1_000_000; - -// unistd.h -// POSIX.1 { -pub const _SC_ARG_MAX: ::c_int = 0; -pub const _SC_CHILD_MAX: ::c_int = 1; -pub const _SC_CLK_TCK: ::c_int = 2; -pub const _SC_NGROUPS_MAX: ::c_int = 3; -pub const _SC_OPEN_MAX: ::c_int = 4; -pub const _SC_STREAM_MAX: ::c_int = 5; -pub const _SC_TZNAME_MAX: ::c_int = 6; -// ... -pub const _SC_VERSION: ::c_int = 29; -pub const _SC_PAGESIZE: ::c_int = 30; -pub const _SC_PAGE_SIZE: ::c_int = 30; -// ... -pub const _SC_RE_DUP_MAX: ::c_int = 44; -// ... -pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; -pub const _SC_TTY_NAME_MAX: ::c_int = 72; -// ... -pub const _SC_SYMLOOP_MAX: ::c_int = 173; -// ... -pub const _SC_HOST_NAME_MAX: ::c_int = 180; -// } POSIX.1 - -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; - -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; - -pub const _PC_LINK_MAX: ::c_int = 0; -pub const _PC_MAX_CANON: ::c_int = 1; -pub const _PC_MAX_INPUT: ::c_int = 2; -pub const _PC_NAME_MAX: ::c_int = 3; -pub const _PC_PATH_MAX: ::c_int = 4; -pub const _PC_PIPE_BUF: ::c_int = 5; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; -pub const _PC_NO_TRUNC: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_SYNC_IO: ::c_int = 9; -pub const _PC_ASYNC_IO: ::c_int = 10; -pub const _PC_PRIO_IO: ::c_int = 11; -pub const _PC_SOCK_MAXBUF: ::c_int = 12; -pub const _PC_FILESIZEBITS: ::c_int = 13; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_XFER_ALIGN: ::c_int = 17; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; -pub const _PC_SYMLINK_MAX: ::c_int = 19; -pub const _PC_2_SYMLINKS: ::c_int = 20; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -// wait.h -f! { - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - (*set).fds_bits[fd / size] &= !(1 << (fd % size)); - return - } - - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 - } - - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { - let fd = fd as usize; - let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - (*set).fds_bits[fd / size] |= 1 << (fd % size); - return - } - - pub fn FD_ZERO(set: *mut fd_set) -> () { - for slot in (*set).fds_bits.iter_mut() { - *slot = 0; - } - } -} - -safe_f! { - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { - (status & 0xff) == 0x7f - } - - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { - (status >> 8) & 0xff - } - - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { - status == 0xffff - } - - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { - ((status & 0x7f) + 1) as i8 >= 2 - } - - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { - status & 0x7f - } - - pub {const} fn WIFEXITED(status: ::c_int) -> bool { - (status & 0x7f) == 0 - } - - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { - (status >> 8) & 0xff - } - - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { - (status & 0x80) != 0 - } -} - -extern "C" { - // errno.h - pub fn __errno_location() -> *mut ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - - // unistd.h - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - pub fn getdtablesize() -> ::c_int; - - // grp.h - pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn getgrouplist( - user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; - - // malloc.h - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - - // netdb.h - pub fn getnameinfo( - addr: *const ::sockaddr, - addrlen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - servlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - - // pthread.h - pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn pthread_create( - tid: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - start: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - arg: *mut ::c_void, - ) -> ::c_int; - pub fn pthread_condattr_setclock( - attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - - // pwd.h - pub fn getpwent() -> *mut passwd; - pub fn setpwent(); - pub fn endpwent(); - pub fn getpwnam_r( - name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - pub fn getpwuid_r( - uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - - // signal.h - pub fn pthread_sigmask( - how: ::c_int, - set: *const ::sigset_t, - oldset: *mut ::sigset_t, - ) -> ::c_int; - pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sigtimedwait( - set: *const sigset_t, - sig: *mut siginfo_t, - timeout: *const ::timespec, - ) -> ::c_int; - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; - - // stdlib.h - pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void; - - // string.h - pub fn strlcat(dst: *mut ::c_char, src: *const ::c_char, siz: ::size_t) -> ::size_t; - pub fn strlcpy(dst: *mut ::c_char, src: *const ::c_char, siz: ::size_t) -> ::size_t; - - // sys/epoll.h - pub fn epoll_create(size: ::c_int) -> ::c_int; - pub fn epoll_create1(flags: ::c_int) -> ::c_int; - pub fn epoll_wait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - ) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) - -> ::c_int; - - // sys/ioctl.h - pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - - // sys/mman.h - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; - - // sys/resource.h - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - - // sys/socket.h - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; - pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - - // sys/stat.h - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - - // sys/uio.h - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - - // sys/utsname.h - pub fn uname(utsname: *mut utsname) -> ::c_int; - - // time.h - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; - pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - - // strings.h - pub fn explicit_bzero(p: *mut ::c_void, len: ::size_t); - - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - - pub fn getsubopt( - optionp: *mut *mut c_char, - tokens: *const *mut c_char, - valuep: *mut *mut c_char, - ) -> ::c_int; -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for dirent { - fn eq(&self, other: &dirent) -> bool { - self.d_ino == other.d_ino - && self.d_off == other.d_off - && self.d_reclen == other.d_reclen - && self.d_type == other.d_type - && self - .d_name - .iter() - .zip(other.d_name.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for dirent {} - - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_off", &self.d_off) - .field("d_reclen", &self.d_reclen) - .field("d_type", &self.d_type) - // FIXME: .field("d_name", &self.d_name) - .finish() - } - } - - impl ::hash::Hash for dirent { - fn hash(&self, state: &mut H) { - self.d_ino.hash(state); - self.d_off.hash(state); - self.d_reclen.hash(state); - self.d_type.hash(state); - self.d_name.hash(state); - } - } - - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for sockaddr_un {} - - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) - .finish() - } - } - - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_family == other.ss_family - && self.__ss_align == self.__ss_align - && self - .__ss_padding - .iter() - .zip(other.__ss_padding.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for sockaddr_storage {} - - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_family", &self.ss_family) - .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_padding", &self.__ss_padding) - .finish() - } - } - - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_family.hash(state); - self.__ss_padding.hash(state); - self.__ss_align.hash(state); - } - } - - impl PartialEq for utsname { - fn eq(&self, other: &utsname) -> bool { - self.sysname - .iter() - .zip(other.sysname.iter()) - .all(|(a, b)| a == b) - && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a, b)| a == b) - && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a, b)| a == b) - && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a, b)| a == b) - && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a, b)| a == b) - && self - .domainname - .iter() - .zip(other.domainname.iter()) - .all(|(a, b)| a == b) - } - } - - impl Eq for utsname {} - - impl ::fmt::Debug for utsname { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) - // FIXME: .field("domainname", &self.domainname) - .finish() - } - } - - impl ::hash::Hash for utsname { - fn hash(&self, state: &mut H) { - self.sysname.hash(state); - self.nodename.hash(state); - self.release.hash(state); - self.version.hash(state); - self.machine.hash(state); - self.domainname.hash(state); - } - } - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/compat.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/compat.rs deleted file mode 100644 index cbf955a31..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/solarish/compat.rs +++ /dev/null @@ -1,220 +0,0 @@ -// Common functions that are unfortunately missing on illumos and -// Solaris, but often needed by other crates. - -use core::cmp::min; -use unix::solarish::*; - -const PTEM: &[u8] = b"ptem\0"; -const LDTERM: &[u8] = b"ldterm\0"; - -pub unsafe fn cfmakeraw(termios: *mut ::termios) { - (*termios).c_iflag &= - !(IMAXBEL | IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); - (*termios).c_oflag &= !OPOST; - (*termios).c_lflag &= !(ECHO | ECHONL | ICANON | ISIG | IEXTEN); - (*termios).c_cflag &= !(CSIZE | PARENB); - (*termios).c_cflag |= CS8; - - // By default, most software expects a pending read to block until at - // least one byte becomes available. As per termio(7I), this requires - // setting the MIN and TIME parameters appropriately. - // - // As a somewhat unfortunate artefact of history, the MIN and TIME slots - // in the control character array overlap with the EOF and EOL slots used - // for canonical mode processing. Because the EOF character needs to be - // the ASCII EOT value (aka Control-D), it has the byte value 4. When - // switching to raw mode, this is interpreted as a MIN value of 4; i.e., - // reads will block until at least four bytes have been input. - // - // Other platforms with a distinct MIN slot like Linux and FreeBSD appear - // to default to a MIN value of 1, so we'll force that value here: - (*termios).c_cc[VMIN] = 1; - (*termios).c_cc[VTIME] = 0; -} - -pub unsafe fn cfsetspeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int { - // Neither of these functions on illumos or Solaris actually ever - // return an error - ::cfsetispeed(termios, speed); - ::cfsetospeed(termios, speed); - 0 -} - -unsafe fn bail(fdm: ::c_int, fds: ::c_int) -> ::c_int { - let e = *___errno(); - if fds >= 0 { - ::close(fds); - } - if fdm >= 0 { - ::close(fdm); - } - *___errno() = e; - return -1; -} - -pub unsafe fn openpty( - amain: *mut ::c_int, - asubord: *mut ::c_int, - name: *mut ::c_char, - termp: *const termios, - winp: *const ::winsize, -) -> ::c_int { - // Open the main pseudo-terminal device, making sure not to set it as the - // controlling terminal for this process: - let fdm = ::posix_openpt(O_RDWR | O_NOCTTY); - if fdm < 0 { - return -1; - } - - // Set permissions and ownership on the subordinate device and unlock it: - if ::grantpt(fdm) < 0 || ::unlockpt(fdm) < 0 { - return bail(fdm, -1); - } - - // Get the path name of the subordinate device: - let subordpath = ::ptsname(fdm); - if subordpath.is_null() { - return bail(fdm, -1); - } - - // Open the subordinate device without setting it as the controlling - // terminal for this process: - let fds = ::open(subordpath, O_RDWR | O_NOCTTY); - if fds < 0 { - return bail(fdm, -1); - } - - // Check if the STREAMS modules are already pushed: - let setup = ::ioctl(fds, I_FIND, LDTERM.as_ptr()); - if setup < 0 { - return bail(fdm, fds); - } else if setup == 0 { - // The line discipline is not present, so push the appropriate STREAMS - // modules for the subordinate device: - if ::ioctl(fds, I_PUSH, PTEM.as_ptr()) < 0 || ::ioctl(fds, I_PUSH, LDTERM.as_ptr()) < 0 { - return bail(fdm, fds); - } - } - - // If provided, set the terminal parameters: - if !termp.is_null() && ::tcsetattr(fds, TCSAFLUSH, termp) != 0 { - return bail(fdm, fds); - } - - // If provided, set the window size: - if !winp.is_null() && ::ioctl(fds, TIOCSWINSZ, winp) < 0 { - return bail(fdm, fds); - } - - // If the caller wants the name of the subordinate device, copy it out. - // - // Note that this is a terrible interface: there appears to be no standard - // upper bound on the copy length for this pointer. Nobody should pass - // anything but NULL here, preferring instead to use ptsname(3C) directly. - if !name.is_null() { - ::strcpy(name, subordpath); - } - - *amain = fdm; - *asubord = fds; - 0 -} - -pub unsafe fn forkpty( - amain: *mut ::c_int, - name: *mut ::c_char, - termp: *const termios, - winp: *const ::winsize, -) -> ::pid_t { - let mut fds = -1; - - if openpty(amain, &mut fds, name, termp, winp) != 0 { - return -1; - } - - let pid = ::fork(); - if pid < 0 { - return bail(*amain, fds); - } else if pid > 0 { - // In the parent process, we close the subordinate device and return the - // process ID of the new child: - ::close(fds); - return pid; - } - - // The rest of this function executes in the child process. - - // Close the main side of the pseudo-terminal pair: - ::close(*amain); - - // Use TIOCSCTTY to set the subordinate device as our controlling - // terminal. This will fail (with ENOTTY) if we are not the leader in - // our own session, so we call setsid() first. Finally, arrange for - // the pseudo-terminal to occupy the standard I/O descriptors. - if ::setsid() < 0 - || ::ioctl(fds, TIOCSCTTY, 0) < 0 - || ::dup2(fds, 0) < 0 - || ::dup2(fds, 1) < 0 - || ::dup2(fds, 2) < 0 - { - // At this stage there are no particularly good ways to handle failure. - // Exit as abruptly as possible, using _exit() to avoid messing with any - // state still shared with the parent process. - ::_exit(EXIT_FAILURE); - } - // Close the inherited descriptor, taking care to avoid closing the standard - // descriptors by mistake: - if fds > 2 { - ::close(fds); - } - - 0 -} - -pub unsafe fn getpwent_r( - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, -) -> ::c_int { - let old_errno = *::___errno(); - *::___errno() = 0; - *result = native_getpwent_r( - pwd, - buf, - min(buflen, ::c_int::max_value() as ::size_t) as ::c_int, - ); - - let ret = if (*result).is_null() { - *::___errno() - } else { - 0 - }; - *::___errno() = old_errno; - - ret -} - -pub unsafe fn getgrent_r( - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, -) -> ::c_int { - let old_errno = *::___errno(); - *::___errno() = 0; - *result = native_getgrent_r( - grp, - buf, - min(buflen, ::c_int::max_value() as ::size_t) as ::c_int, - ); - - let ret = if (*result).is_null() { - *::___errno() - } else { - 0 - }; - *::___errno() = old_errno; - - ret -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/illumos.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/illumos.rs deleted file mode 100644 index 404f013da..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/solarish/illumos.rs +++ /dev/null @@ -1,88 +0,0 @@ -s! { - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_amp: *mut ::c_void, - pub shm_lkcnt: ::c_ushort, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - pub shm_cnattch: ::c_ulong, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_pad4: [i64; 4], - } - - pub struct fil_info { - pub fi_flags: ::c_int, - pub fi_pos: ::c_int, - pub fi_name: [::c_char; ::FILNAME_MAX as usize], - } -} - -pub const AF_LOCAL: ::c_int = 1; // AF_UNIX -pub const AF_FILE: ::c_int = 1; // AF_UNIX - -pub const EFD_SEMAPHORE: ::c_int = 0x1; -pub const EFD_NONBLOCK: ::c_int = 0x800; -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const TCP_KEEPIDLE: ::c_int = 34; -pub const TCP_KEEPCNT: ::c_int = 35; -pub const TCP_KEEPINTVL: ::c_int = 36; -pub const TCP_CONGESTION: ::c_int = 37; - -// These constants are correct for 64-bit programs or 32-bit programs that are -// not using large-file mode. If Rust ever supports anything other than 64-bit -// compilation on illumos, this may require adjustment: -pub const F_OFD_GETLK: ::c_int = 47; -pub const F_OFD_SETLK: ::c_int = 48; -pub const F_OFD_SETLKW: ::c_int = 49; -pub const F_FLOCK: ::c_int = 53; -pub const F_FLOCKW: ::c_int = 54; - -pub const F_DUPFD_CLOEXEC: ::c_int = 37; -pub const F_DUP2FD_CLOEXEC: ::c_int = 36; - -pub const FIL_ATTACH: ::c_int = 0x1; -pub const FIL_DETACH: ::c_int = 0x2; -pub const FIL_LIST: ::c_int = 0x3; -pub const FILNAME_MAX: ::c_int = 32; -pub const FILF_PROG: ::c_int = 0x1; -pub const FILF_AUTO: ::c_int = 0x2; -pub const FILF_BYPASS: ::c_int = 0x4; -pub const SOL_FILTER: ::c_int = 0xfffc; - -pub const MADV_PURGE: ::c_int = 9; - -pub const B1000000: ::speed_t = 24; -pub const B1152000: ::speed_t = 25; -pub const B1500000: ::speed_t = 26; -pub const B2000000: ::speed_t = 27; -pub const B2500000: ::speed_t = 28; -pub const B3000000: ::speed_t = 29; -pub const B3500000: ::speed_t = 30; -pub const B4000000: ::speed_t = 31; - -// sys/systeminfo.h -pub const SI_ADDRESS_WIDTH: ::c_int = 520; - -extern "C" { - pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - - pub fn mincore(addr: ::caddr_t, len: ::size_t, vec: *mut ::c_char) -> ::c_int; - - pub fn pset_bind_lwp( - pset: ::psetid_t, - id: ::id_t, - pid: ::pid_t, - opset: *mut ::psetid_t, - ) -> ::c_int; - pub fn pset_getloadavg(pset: ::psetid_t, load: *mut ::c_double, num: ::c_int) -> ::c_int; - - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - pub fn getpagesizes2(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/mod.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/mod.rs deleted file mode 100644 index 400de8a26..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/solarish/mod.rs +++ /dev/null @@ -1,3302 +0,0 @@ -pub type c_char = i8; -pub type c_long = i64; -pub type c_ulong = u64; -pub type caddr_t = *mut ::c_char; - -pub type clockid_t = ::c_int; -pub type blkcnt_t = ::c_long; -pub type clock_t = ::c_long; -pub type daddr_t = ::c_long; -pub type dev_t = ::c_ulong; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type ino_t = ::c_ulong; -pub type key_t = ::c_int; -pub type major_t = ::c_uint; -pub type minor_t = ::c_uint; -pub type mode_t = ::c_uint; -pub type nlink_t = ::c_uint; -pub type rlim_t = ::c_ulong; -pub type speed_t = ::c_uint; -pub type tcflag_t = ::c_uint; -pub type time_t = ::c_long; -pub type timer_t = ::c_int; -pub type wchar_t = ::c_int; -pub type nfds_t = ::c_ulong; -pub type projid_t = ::c_int; -pub type zoneid_t = ::c_int; -pub type psetid_t = ::c_int; -pub type processorid_t = ::c_int; -pub type chipid_t = ::c_int; -pub type ctid_t = ::id_t; - -pub type suseconds_t = ::c_long; -pub type off_t = ::c_long; -pub type useconds_t = ::c_uint; -pub type socklen_t = ::c_uint; -pub type sa_family_t = u16; -pub type pthread_t = ::c_uint; -pub type pthread_key_t = ::c_uint; -pub type thread_t = ::c_uint; -pub type blksize_t = ::c_int; -pub type nl_item = ::c_int; -pub type mqd_t = *mut ::c_void; -pub type id_t = ::c_int; -pub type idtype_t = ::c_uint; -pub type shmatt_t = ::c_ulong; - -pub type lgrp_rsrc_t = ::c_int; -pub type lgrp_affinity_t = ::c_int; -pub type lgrp_id_t = ::id_t; -pub type lgrp_mem_size_t = ::c_longlong; -pub type lgrp_cookie_t = ::uintptr_t; -pub type lgrp_content_t = ::c_uint; -pub type lgrp_lat_between_t = ::c_uint; -pub type lgrp_mem_size_flag_t = ::c_uint; -pub type lgrp_view_t = ::c_uint; - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { - fn clone(&self) -> timezone { - *self - } -} - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum ucred_t {} -impl ::Copy for ucred_t {} -impl ::Clone for ucred_t { - fn clone(&self) -> ucred_t { - *self - } -} - -s! { - pub struct in_addr { - pub s_addr: ::in_addr_t, - } - - pub struct ip_mreq { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct ip_mreq_source { - pub imr_multiaddr: in_addr, - pub imr_sourceaddr: in_addr, - pub imr_interface: in_addr, - } - - pub struct ipc_perm { - pub uid: ::uid_t, - pub gid: ::gid_t, - pub cuid: ::uid_t, - pub cgid: ::gid_t, - pub mode: ::mode_t, - pub seq: ::c_uint, - pub key: ::key_t, - } - - pub struct sockaddr { - pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_in { - pub sin_family: sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8] - } - - pub struct sockaddr_in6 { - pub sin6_family: sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - pub __sin6_src_id: u32 - } - - pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_passwd: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_age: *mut ::c_char, - pub pw_comment: *mut ::c_char, - pub pw_gecos: *mut ::c_char, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char - } - - pub struct ifaddrs { - pub ifa_next: *mut ifaddrs, - pub ifa_name: *mut ::c_char, - pub ifa_flags: ::c_ulong, - pub ifa_addr: *mut ::sockaddr, - pub ifa_netmask: *mut ::sockaddr, - pub ifa_dstaddr: *mut ::sockaddr, - pub ifa_data: *mut ::c_void - } - - pub struct itimerspec { - pub it_interval: ::timespec, - pub it_value: ::timespec, - } - - pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::socklen_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: ::socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct pthread_attr_t { - __pthread_attrp: *mut ::c_void - } - - pub struct pthread_mutex_t { - __pthread_mutex_flag1: u16, - __pthread_mutex_flag2: u8, - __pthread_mutex_ceiling: u8, - __pthread_mutex_type: u16, - __pthread_mutex_magic: u16, - __pthread_mutex_lock: u64, - __pthread_mutex_data: u64 - } - - pub struct pthread_mutexattr_t { - __pthread_mutexattrp: *mut ::c_void - } - - pub struct pthread_cond_t { - __pthread_cond_flag: [u8; 4], - __pthread_cond_type: u16, - __pthread_cond_magic: u16, - __pthread_cond_data: u64 - } - - pub struct pthread_condattr_t { - __pthread_condattrp: *mut ::c_void, - } - - pub struct pthread_rwlock_t { - __pthread_rwlock_readers: i32, - __pthread_rwlock_type: u16, - __pthread_rwlock_magic: u16, - __pthread_rwlock_mutex: ::pthread_mutex_t, - __pthread_rwlock_readercv: ::pthread_cond_t, - __pthread_rwlock_writercv: ::pthread_cond_t - } - - pub struct pthread_rwlockattr_t { - __pthread_rwlockattrp: *mut ::c_void, - } - - pub struct dirent { - pub d_ino: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: u16, - pub d_name: [::c_char; 3] - } - - pub struct glob_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut ::c_char, - pub gl_offs: ::size_t, - __unused1: *mut ::c_void, - __unused2: ::c_int, - __unused3: ::c_int, - __unused4: ::c_int, - __unused5: *mut ::c_void, - __unused6: *mut ::c_void, - __unused7: *mut ::c_void, - __unused8: *mut ::c_void, - __unused9: *mut ::c_void, - __unused10: *mut ::c_void, - } - - pub struct addrinfo { - pub ai_flags: ::c_int, - pub ai_family: ::c_int, - pub ai_socktype: ::c_int, - pub ai_protocol: ::c_int, - #[cfg(target_arch = "sparc64")] - __sparcv9_pad: ::c_int, - pub ai_addrlen: ::socklen_t, - pub ai_canonname: *mut ::c_char, - pub ai_addr: *mut ::sockaddr, - pub ai_next: *mut addrinfo, - } - - pub struct sigset_t { - bits: [u32; 4], - } - - pub struct sigaction { - pub sa_flags: ::c_int, - pub sa_sigaction: ::sighandler_t, - pub sa_mask: sigset_t, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_size: ::size_t, - pub ss_flags: ::c_int, - } - - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - pub f_basetype: [::c_char; 16], - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - pub f_fstr: [::c_char; 32] - } - - pub struct sendfilevec_t { - pub sfv_fd: ::c_int, - pub sfv_flag: ::c_uint, - pub sfv_off: ::off_t, - pub sfv_len: ::size_t, - } - - pub struct sched_param { - pub sched_priority: ::c_int, - sched_pad: [::c_int; 8] - } - - pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, - } - - pub struct stat { - pub st_dev: ::dev_t, - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::dev_t, - pub st_size: ::off_t, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - __unused: [::c_char; 16] - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_cc: [::cc_t; ::NCCS] - } - - pub struct lconv { - pub decimal_point: *mut ::c_char, - pub thousands_sep: *mut ::c_char, - pub grouping: *mut ::c_char, - pub int_curr_symbol: *mut ::c_char, - pub currency_symbol: *mut ::c_char, - pub mon_decimal_point: *mut ::c_char, - pub mon_thousands_sep: *mut ::c_char, - pub mon_grouping: *mut ::c_char, - pub positive_sign: *mut ::c_char, - pub negative_sign: *mut ::c_char, - pub int_frac_digits: ::c_char, - pub frac_digits: ::c_char, - pub p_cs_precedes: ::c_char, - pub p_sep_by_space: ::c_char, - pub n_cs_precedes: ::c_char, - pub n_sep_by_space: ::c_char, - pub p_sign_posn: ::c_char, - pub n_sign_posn: ::c_char, - pub int_p_cs_precedes: ::c_char, - pub int_p_sep_by_space: ::c_char, - pub int_n_cs_precedes: ::c_char, - pub int_n_sep_by_space: ::c_char, - pub int_p_sign_posn: ::c_char, - pub int_n_sign_posn: ::c_char, - } - - pub struct sem_t { - pub sem_count: u32, - pub sem_type: u16, - pub sem_magic: u16, - pub sem_pad1: [u64; 3], - pub sem_pad2: [u64; 2] - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_sysid: ::c_int, - pub l_pid: ::pid_t, - pub l_pad: [::c_long; 4] - } - - pub struct if_nameindex { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, - } - - pub struct mq_attr { - pub mq_flags: ::c_long, - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_curmsgs: ::c_long, - _pad: [::c_int; 12] - } - - pub struct port_event { - pub portev_events: ::c_int, - pub portev_source: ::c_ushort, - pub portev_pad: ::c_ushort, - pub portev_object: ::uintptr_t, - pub portev_user: *mut ::c_void, - } - - pub struct port_notify { - pub portnfy_port: ::c_int, - pub portnfy_user: *mut ::c_void, - } - - pub struct exit_status { - e_termination: ::c_short, - e_exit: ::c_short, - } - - pub struct utmp { - pub ut_user: [::c_char; 8], - pub ut_id: [::c_char; 4], - pub ut_line: [::c_char; 12], - pub ut_pid: ::c_short, - pub ut_type: ::c_short, - pub ut_exit: exit_status, - pub ut_time: ::time_t, - } - - pub struct timex { - pub modes: u32, - pub offset: i32, - pub freq: i32, - pub maxerror: i32, - pub esterror: i32, - pub status: i32, - pub constant: i32, - pub precision: i32, - pub tolerance: i32, - pub ppsfreq: i32, - pub jitter: i32, - pub shift: i32, - pub stabil: i32, - pub jitcnt: i32, - pub calcnt: i32, - pub errcnt: i32, - pub stbcnt: i32, - } - - pub struct ntptimeval { - pub time: ::timeval, - pub maxerror: i32, - pub esterror: i32, - } - - pub struct mmapobj_result_t { - pub mr_addr: ::caddr_t, - pub mr_msize: ::size_t, - pub mr_fsize: ::size_t, - pub mr_offset: ::size_t, - pub mr_prot: ::c_uint, - pub mr_flags: ::c_uint, - } - - pub struct lgrp_affinity_args { - pub idtype: ::idtype_t, - pub id: ::id_t, - pub lgrp: ::lgrp_id_t, - pub aff: ::lgrp_affinity_t, - } - - pub struct processor_info_t { - pub pi_state: ::c_int, - pub pi_processor_type: [::c_char; PI_TYPELEN as usize], - pub pi_fputypes: [::c_char; PI_FPUTYPE as usize], - pub pi_clock: ::c_int, - } - - pub struct option { - pub name: *const ::c_char, - pub has_arg: ::c_int, - pub flag: *mut ::c_int, - pub val: ::c_int, - } -} - -s_no_extra_traits! { - #[cfg_attr(all( - any(target_arch = "x86", target_arch = "x86_64"), - libc_packedN - ), repr(packed(4)))] - #[cfg_attr(all( - any(target_arch = "x86", target_arch = "x86_64"), - not(libc_packedN) - ), repr(packed))] - pub struct epoll_event { - pub events: u32, - pub u64: u64, - } - - pub struct utmpx { - pub ut_user: [::c_char; _UTX_USERSIZE], - pub ut_id: [::c_char; _UTX_IDSIZE], - pub ut_line: [::c_char; _UTX_LINESIZE], - pub ut_pid: ::pid_t, - pub ut_type: ::c_short, - pub ut_exit: exit_status, - pub ut_tv: ::timeval, - pub ut_session: ::c_int, - pub ut_pad: [::c_int; _UTX_PADSIZE], - pub ut_syslen: ::c_short, - pub ut_host: [::c_char; _UTX_HOSTSIZE], - } - - pub struct sockaddr_un { - pub sun_family: sa_family_t, - pub sun_path: [c_char; 108] - } - - pub struct utsname { - pub sysname: [::c_char; 257], - pub nodename: [::c_char; 257], - pub release: [::c_char; 257], - pub version: [::c_char; 257], - pub machine: [::c_char; 257], - } - - pub struct fd_set { - #[cfg(target_pointer_width = "64")] - fds_bits: [i64; FD_SETSIZE / 64], - #[cfg(target_pointer_width = "32")] - fds_bits: [i32; FD_SETSIZE / 32], - } - - pub struct sockaddr_storage { - pub ss_family: ::sa_family_t, - __ss_pad1: [u8; 6], - __ss_align: i64, - __ss_pad2: [u8; 240], - } - - #[cfg_attr(all(target_pointer_width = "64", libc_align), repr(align(8)))] - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_code: ::c_int, - pub si_errno: ::c_int, - #[cfg(target_pointer_width = "64")] - pub si_pad: ::c_int, - - __data_pad: [::c_int; SIGINFO_DATA_SIZE], - } - - pub struct sockaddr_dl { - pub sdl_family: ::c_ushort, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 244], - } - - pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - pub ss_sp: *mut ::c_void, - pub sigev_notify_attributes: *const ::pthread_attr_t, - __sigev_pad2: ::c_int, - } - - #[cfg(libc_union)] - #[cfg_attr(libc_align, repr(align(16)))] - pub union pad128_t { - // pub _q in this structure would be a "long double", of 16 bytes - pub _l: [i32; 4], - } - - #[cfg(libc_union)] - #[cfg_attr(libc_align, repr(align(16)))] - pub union upad128_t { - // pub _q in this structure would be a "long double", of 16 bytes - pub _l: [u32; 4], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl PartialEq for utmpx { - fn eq(&self, other: &utmpx) -> bool { - self.ut_type == other.ut_type - && self.ut_pid == other.ut_pid - && self.ut_user == other.ut_user - && self.ut_line == other.ut_line - && self.ut_id == other.ut_id - && self.ut_exit == other.ut_exit - && self.ut_session == other.ut_session - && self.ut_tv == other.ut_tv - && self.ut_syslen == other.ut_syslen - && self.ut_pad == other.ut_pad - && self - .ut_host - .iter() - .zip(other.ut_host.iter()) - .all(|(a,b)| a == b) - } - } - - impl Eq for utmpx {} - - impl ::fmt::Debug for utmpx { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utmpx") - .field("ut_user", &self.ut_user) - .field("ut_id", &self.ut_id) - .field("ut_line", &self.ut_line) - .field("ut_pid", &self.ut_pid) - .field("ut_type", &self.ut_type) - .field("ut_exit", &self.ut_exit) - .field("ut_tv", &self.ut_tv) - .field("ut_session", &self.ut_session) - .field("ut_pad", &self.ut_pad) - .field("ut_syslen", &self.ut_syslen) - .field("ut_host", &&self.ut_host[..]) - .finish() - } - } - - impl ::hash::Hash for utmpx { - fn hash(&self, state: &mut H) { - self.ut_user.hash(state); - self.ut_type.hash(state); - self.ut_pid.hash(state); - self.ut_line.hash(state); - self.ut_id.hash(state); - self.ut_host.hash(state); - self.ut_exit.hash(state); - self.ut_session.hash(state); - self.ut_tv.hash(state); - self.ut_syslen.hash(state); - self.ut_pad.hash(state); - } - } - - impl PartialEq for epoll_event { - fn eq(&self, other: &epoll_event) -> bool { - self.events == other.events - && self.u64 == other.u64 - } - } - impl Eq for epoll_event {} - impl ::fmt::Debug for epoll_event { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - let events = self.events; - let u64 = self.u64; - f.debug_struct("epoll_event") - .field("events", &events) - .field("u64", &u64) - .finish() - } - } - impl ::hash::Hash for epoll_event { - fn hash(&self, state: &mut H) { - let events = self.events; - let u64 = self.u64; - events.hash(state); - u64.hash(state); - } - } - - impl PartialEq for sockaddr_un { - fn eq(&self, other: &sockaddr_un) -> bool { - self.sun_family == other.sun_family - && self - .sun_path - .iter() - .zip(other.sun_path.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_un {} - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_family", &self.sun_family) - // FIXME: .field("sun_path", &self.sun_path) - .finish() - } - } - impl ::hash::Hash for sockaddr_un { - fn hash(&self, state: &mut H) { - self.sun_family.hash(state); - self.sun_path.hash(state); - } - } - - impl PartialEq for utsname { - fn eq(&self, other: &utsname) -> bool { - self.sysname - .iter() - .zip(other.sysname.iter()) - .all(|(a, b)| a == b) - && self - .nodename - .iter() - .zip(other.nodename.iter()) - .all(|(a, b)| a == b) - && self - .release - .iter() - .zip(other.release.iter()) - .all(|(a, b)| a == b) - && self - .version - .iter() - .zip(other.version.iter()) - .all(|(a, b)| a == b) - && self - .machine - .iter() - .zip(other.machine.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for utsname {} - impl ::fmt::Debug for utsname { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("utsname") - // FIXME: .field("sysname", &self.sysname) - // FIXME: .field("nodename", &self.nodename) - // FIXME: .field("release", &self.release) - // FIXME: .field("version", &self.version) - // FIXME: .field("machine", &self.machine) - .finish() - } - } - impl ::hash::Hash for utsname { - fn hash(&self, state: &mut H) { - self.sysname.hash(state); - self.nodename.hash(state); - self.release.hash(state); - self.version.hash(state); - self.machine.hash(state); - } - } - - impl PartialEq for fd_set { - fn eq(&self, other: &fd_set) -> bool { - self.fds_bits - .iter() - .zip(other.fds_bits.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for fd_set {} - impl ::fmt::Debug for fd_set { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("fd_set") - // FIXME: .field("fds_bits", &self.fds_bits) - .finish() - } - } - impl ::hash::Hash for fd_set { - fn hash(&self, state: &mut H) { - self.fds_bits.hash(state); - } - } - - impl PartialEq for sockaddr_storage { - fn eq(&self, other: &sockaddr_storage) -> bool { - self.ss_family == other.ss_family - && self.__ss_pad1 == other.__ss_pad1 - && self.__ss_align == other.__ss_align - && self - .__ss_pad2 - .iter() - .zip(other.__ss_pad2.iter()) - .all(|(a, b)| a == b) - } - } - impl Eq for sockaddr_storage {} - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &self.__ss_pad1) - .field("__ss_align", &self.__ss_align) - // FIXME: .field("__ss_pad2", &self.__ss_pad2) - .finish() - } - } - impl ::hash::Hash for sockaddr_storage { - fn hash(&self, state: &mut H) { - self.ss_family.hash(state); - self.__ss_pad1.hash(state); - self.__ss_align.hash(state); - self.__ss_pad2.hash(state); - } - } - - impl siginfo_t { - /// The siginfo_t will have differing contents based on the delivered signal. Based on - /// `si_signo`, this determines how many of the `c_int` pad fields contain valid data - /// exposed by the C unions. - /// - /// It is not yet exhausitive for the OS-defined types, and defaults to assuming the - /// entire data pad area is "valid" for otherwise unrecognized signal numbers. - fn data_field_count(&self) -> usize { - match self.si_signo { - ::SIGSEGV | ::SIGBUS | ::SIGILL | ::SIGTRAP | ::SIGFPE => { - ::mem::size_of::() / ::mem::size_of::<::c_int>() - } - ::SIGCLD => ::mem::size_of::() / ::mem::size_of::<::c_int>(), - ::SIGHUP - | ::SIGINT - | ::SIGQUIT - | ::SIGABRT - | ::SIGSYS - | ::SIGPIPE - | ::SIGALRM - | ::SIGTERM - | ::SIGUSR1 - | ::SIGUSR2 - | ::SIGPWR - | ::SIGWINCH - | ::SIGURG => ::mem::size_of::() / ::mem::size_of::<::c_int>(), - _ => SIGINFO_DATA_SIZE, - } - } - } - impl PartialEq for siginfo_t { - fn eq(&self, other: &siginfo_t) -> bool { - if self.si_signo == other.si_signo - && self.si_code == other.si_code - && self.si_errno == other.si_errno { - // FIXME: The `si_pad` field in the 64-bit version of the struct is ignored - // (for now) when doing comparisons. - - let field_count = self.data_field_count(); - self.__data_pad[..field_count] - .iter() - .zip(other.__data_pad[..field_count].iter()) - .all(|(a, b)| a == b) - } else { - false - } - } - } - impl Eq for siginfo_t {} - impl ::fmt::Debug for siginfo_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("siginfo_t") - .field("si_signo", &self.si_signo) - .field("si_code", &self.si_code) - .field("si_errno", &self.si_errno) - // FIXME: .field("__pad", &self.__pad) - .finish() - } - } - impl ::hash::Hash for siginfo_t { - fn hash(&self, state: &mut H) { - self.si_signo.hash(state); - self.si_code.hash(state); - self.si_errno.hash(state); - - // FIXME: The `si_pad` field in the 64-bit version of the struct is ignored - // (for now) when doing hashing. - - let field_count = self.data_field_count(); - self.__data_pad[..field_count].hash(state) - } - } - - impl PartialEq for sockaddr_dl { - fn eq(&self, other: &sockaddr_dl) -> bool { - self.sdl_family == other.sdl_family - && self.sdl_index == other.sdl_index - && self.sdl_type == other.sdl_type - && self.sdl_nlen == other.sdl_nlen - && self.sdl_alen == other.sdl_alen - && self.sdl_slen == other.sdl_slen - && self - .sdl_data - .iter() - .zip(other.sdl_data.iter()) - .all(|(a,b)| a == b) - } - } - impl Eq for sockaddr_dl {} - impl ::fmt::Debug for sockaddr_dl { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_dl") - .field("sdl_family", &self.sdl_family) - .field("sdl_index", &self.sdl_index) - .field("sdl_type", &self.sdl_type) - .field("sdl_nlen", &self.sdl_nlen) - .field("sdl_alen", &self.sdl_alen) - .field("sdl_slen", &self.sdl_slen) - // FIXME: .field("sdl_data", &self.sdl_data) - .finish() - } - } - impl ::hash::Hash for sockaddr_dl { - fn hash(&self, state: &mut H) { - self.sdl_family.hash(state); - self.sdl_index.hash(state); - self.sdl_type.hash(state); - self.sdl_nlen.hash(state); - self.sdl_alen.hash(state); - self.sdl_slen.hash(state); - self.sdl_data.hash(state); - } - } - - impl PartialEq for sigevent { - fn eq(&self, other: &sigevent) -> bool { - self.sigev_notify == other.sigev_notify - && self.sigev_signo == other.sigev_signo - && self.sigev_value == other.sigev_value - && self.ss_sp == other.ss_sp - && self.sigev_notify_attributes - == other.sigev_notify_attributes - } - } - impl Eq for sigevent {} - impl ::fmt::Debug for sigevent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sigevent") - .field("sigev_notify", &self.sigev_notify) - .field("sigev_signo", &self.sigev_signo) - .field("sigev_value", &self.sigev_value) - .field("ss_sp", &self.ss_sp) - .field("sigev_notify_attributes", - &self.sigev_notify_attributes) - .finish() - } - } - impl ::hash::Hash for sigevent { - fn hash(&self, state: &mut H) { - self.sigev_notify.hash(state); - self.sigev_signo.hash(state); - self.sigev_value.hash(state); - self.ss_sp.hash(state); - self.sigev_notify_attributes.hash(state); - } - } - - #[cfg(libc_union)] - impl PartialEq for pad128_t { - fn eq(&self, other: &pad128_t) -> bool { - unsafe { - // FIXME: self._q == other._q || - self._l == other._l - } - } - } - #[cfg(libc_union)] - impl Eq for pad128_t {} - #[cfg(libc_union)] - impl ::fmt::Debug for pad128_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - unsafe { - f.debug_struct("pad128_t") - // FIXME: .field("_q", &{self._q}) - .field("_l", &{self._l}) - .finish() - } - } - } - #[cfg(libc_union)] - impl ::hash::Hash for pad128_t { - fn hash(&self, state: &mut H) { - unsafe { - // FIXME: state.write_i64(self._q as i64); - self._l.hash(state); - } - } - } - #[cfg(libc_union)] - impl PartialEq for upad128_t { - fn eq(&self, other: &upad128_t) -> bool { - unsafe { - // FIXME: self._q == other._q || - self._l == other._l - } - } - } - #[cfg(libc_union)] - impl Eq for upad128_t {} - #[cfg(libc_union)] - impl ::fmt::Debug for upad128_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - unsafe { - f.debug_struct("upad128_t") - // FIXME: .field("_q", &{self._q}) - .field("_l", &{self._l}) - .finish() - } - } - } - #[cfg(libc_union)] - impl ::hash::Hash for upad128_t { - fn hash(&self, state: &mut H) { - unsafe { - // FIXME: state.write_i64(self._q as i64); - self._l.hash(state); - } - } - } - } -} - -cfg_if! { - if #[cfg(target_pointer_width = "64")] { - const SIGINFO_DATA_SIZE: usize = 60; - } else { - const SIGINFO_DATA_SIZE: usize = 29; - } -} - -#[repr(C)] -struct siginfo_fault { - addr: *mut ::c_void, - trapno: ::c_int, - pc: *mut ::caddr_t, -} -impl ::Copy for siginfo_fault {} -impl ::Clone for siginfo_fault { - fn clone(&self) -> Self { - *self - } -} - -#[repr(C)] -struct siginfo_cldval { - utime: ::clock_t, - status: ::c_int, - stime: ::clock_t, -} -impl ::Copy for siginfo_cldval {} -impl ::Clone for siginfo_cldval { - fn clone(&self) -> Self { - *self - } -} - -#[repr(C)] -struct siginfo_killval { - uid: ::uid_t, - value: ::sigval, - // Pad out to match the SIGCLD value size - _pad: *mut ::c_void, -} -impl ::Copy for siginfo_killval {} -impl ::Clone for siginfo_killval { - fn clone(&self) -> Self { - *self - } -} - -#[repr(C)] -struct siginfo_sigcld { - pid: ::pid_t, - val: siginfo_cldval, - ctid: ::ctid_t, - zoneid: ::zoneid_t, -} -impl ::Copy for siginfo_sigcld {} -impl ::Clone for siginfo_sigcld { - fn clone(&self) -> Self { - *self - } -} - -#[repr(C)] -struct siginfo_kill { - pid: ::pid_t, - val: siginfo_killval, - ctid: ::ctid_t, - zoneid: ::zoneid_t, -} -impl ::Copy for siginfo_kill {} -impl ::Clone for siginfo_kill { - fn clone(&self) -> Self { - *self - } -} - -impl siginfo_t { - unsafe fn sidata(&self) -> T { - *((&self.__data_pad) as *const ::c_int as *const T) - } - pub unsafe fn si_addr(&self) -> *mut ::c_void { - let sifault: siginfo_fault = self.sidata(); - sifault.addr - } - pub unsafe fn si_uid(&self) -> ::uid_t { - let kill: siginfo_kill = self.sidata(); - kill.val.uid - } - pub unsafe fn si_value(&self) -> ::sigval { - let kill: siginfo_kill = self.sidata(); - kill.val.value - } - pub unsafe fn si_pid(&self) -> ::pid_t { - let sigcld: siginfo_sigcld = self.sidata(); - sigcld.pid - } - pub unsafe fn si_status(&self) -> ::c_int { - let sigcld: siginfo_sigcld = self.sidata(); - sigcld.val.status - } - pub unsafe fn si_utime(&self) -> ::c_long { - let sigcld: siginfo_sigcld = self.sidata(); - sigcld.val.utime - } - pub unsafe fn si_stime(&self) -> ::c_long { - let sigcld: siginfo_sigcld = self.sidata(); - sigcld.val.stime - } -} - -pub const LC_CTYPE: ::c_int = 0; -pub const LC_NUMERIC: ::c_int = 1; -pub const LC_TIME: ::c_int = 2; -pub const LC_COLLATE: ::c_int = 3; -pub const LC_MONETARY: ::c_int = 4; -pub const LC_MESSAGES: ::c_int = 5; -pub const LC_ALL: ::c_int = 6; -pub const LC_CTYPE_MASK: ::c_int = 1 << LC_CTYPE; -pub const LC_NUMERIC_MASK: ::c_int = 1 << LC_NUMERIC; -pub const LC_TIME_MASK: ::c_int = 1 << LC_TIME; -pub const LC_COLLATE_MASK: ::c_int = 1 << LC_COLLATE; -pub const LC_MONETARY_MASK: ::c_int = 1 << LC_MONETARY; -pub const LC_MESSAGES_MASK: ::c_int = 1 << LC_MESSAGES; -pub const LC_ALL_MASK: ::c_int = LC_CTYPE_MASK - | LC_NUMERIC_MASK - | LC_TIME_MASK - | LC_COLLATE_MASK - | LC_MONETARY_MASK - | LC_MESSAGES_MASK; - -pub const DAY_1: ::nl_item = 1; -pub const DAY_2: ::nl_item = 2; -pub const DAY_3: ::nl_item = 3; -pub const DAY_4: ::nl_item = 4; -pub const DAY_5: ::nl_item = 5; -pub const DAY_6: ::nl_item = 6; -pub const DAY_7: ::nl_item = 7; - -pub const ABDAY_1: ::nl_item = 8; -pub const ABDAY_2: ::nl_item = 9; -pub const ABDAY_3: ::nl_item = 10; -pub const ABDAY_4: ::nl_item = 11; -pub const ABDAY_5: ::nl_item = 12; -pub const ABDAY_6: ::nl_item = 13; -pub const ABDAY_7: ::nl_item = 14; - -pub const MON_1: ::nl_item = 15; -pub const MON_2: ::nl_item = 16; -pub const MON_3: ::nl_item = 17; -pub const MON_4: ::nl_item = 18; -pub const MON_5: ::nl_item = 19; -pub const MON_6: ::nl_item = 20; -pub const MON_7: ::nl_item = 21; -pub const MON_8: ::nl_item = 22; -pub const MON_9: ::nl_item = 23; -pub const MON_10: ::nl_item = 24; -pub const MON_11: ::nl_item = 25; -pub const MON_12: ::nl_item = 26; - -pub const ABMON_1: ::nl_item = 27; -pub const ABMON_2: ::nl_item = 28; -pub const ABMON_3: ::nl_item = 29; -pub const ABMON_4: ::nl_item = 30; -pub const ABMON_5: ::nl_item = 31; -pub const ABMON_6: ::nl_item = 32; -pub const ABMON_7: ::nl_item = 33; -pub const ABMON_8: ::nl_item = 34; -pub const ABMON_9: ::nl_item = 35; -pub const ABMON_10: ::nl_item = 36; -pub const ABMON_11: ::nl_item = 37; -pub const ABMON_12: ::nl_item = 38; - -pub const RADIXCHAR: ::nl_item = 39; -pub const THOUSEP: ::nl_item = 40; -pub const YESSTR: ::nl_item = 41; -pub const NOSTR: ::nl_item = 42; -pub const CRNCYSTR: ::nl_item = 43; - -pub const D_T_FMT: ::nl_item = 44; -pub const D_FMT: ::nl_item = 45; -pub const T_FMT: ::nl_item = 46; -pub const AM_STR: ::nl_item = 47; -pub const PM_STR: ::nl_item = 48; - -pub const CODESET: ::nl_item = 49; -pub const T_FMT_AMPM: ::nl_item = 50; -pub const ERA: ::nl_item = 51; -pub const ERA_D_FMT: ::nl_item = 52; -pub const ERA_D_T_FMT: ::nl_item = 53; -pub const ERA_T_FMT: ::nl_item = 54; -pub const ALT_DIGITS: ::nl_item = 55; -pub const YESEXPR: ::nl_item = 56; -pub const NOEXPR: ::nl_item = 57; -pub const _DATE_FMT: ::nl_item = 58; -pub const MAXSTRMSG: ::nl_item = 58; - -pub const PATH_MAX: ::c_int = 1024; - -pub const SA_ONSTACK: ::c_int = 0x00000001; -pub const SA_RESETHAND: ::c_int = 0x00000002; -pub const SA_RESTART: ::c_int = 0x00000004; -pub const SA_SIGINFO: ::c_int = 0x00000008; -pub const SA_NODEFER: ::c_int = 0x00000010; -pub const SA_NOCLDWAIT: ::c_int = 0x00010000; -pub const SA_NOCLDSTOP: ::c_int = 0x00020000; - -pub const SS_ONSTACK: ::c_int = 1; -pub const SS_DISABLE: ::c_int = 2; - -pub const FIOCLEX: ::c_int = 0x20006601; -pub const FIONCLEX: ::c_int = 0x20006602; -pub const FIONREAD: ::c_int = 0x4004667f; -pub const FIONBIO: ::c_int = 0x8004667e; -pub const FIOASYNC: ::c_int = 0x8004667d; -pub const FIOSETOWN: ::c_int = 0x8004667c; -pub const FIOGETOWN: ::c_int = 0x4004667b; - -pub const SIGCHLD: ::c_int = 18; -pub const SIGCLD: ::c_int = ::SIGCHLD; -pub const SIGBUS: ::c_int = 10; -pub const SIGINFO: ::c_int = 41; -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; -pub const SIG_SETMASK: ::c_int = 3; - -pub const SIGEV_NONE: ::c_int = 1; -pub const SIGEV_SIGNAL: ::c_int = 2; -pub const SIGEV_THREAD: ::c_int = 3; - -pub const CLD_EXITED: ::c_int = 1; -pub const CLD_KILLED: ::c_int = 2; -pub const CLD_DUMPED: ::c_int = 3; -pub const CLD_TRAPPED: ::c_int = 4; -pub const CLD_STOPPED: ::c_int = 5; -pub const CLD_CONTINUED: ::c_int = 6; - -pub const IP_RECVDSTADDR: ::c_int = 0x7; -pub const IP_SEC_OPT: ::c_int = 0x22; - -pub const IPV6_UNICAST_HOPS: ::c_int = 0x5; -pub const IPV6_MULTICAST_IF: ::c_int = 0x6; -pub const IPV6_MULTICAST_HOPS: ::c_int = 0x7; -pub const IPV6_MULTICAST_LOOP: ::c_int = 0x8; -pub const IPV6_RECVPKTINFO: ::c_int = 0x12; -pub const IPV6_SEC_OPT: ::c_int = 0x22; -pub const IPV6_V6ONLY: ::c_int = 0x27; - -cfg_if! { - if #[cfg(target_pointer_width = "64")] { - pub const FD_SETSIZE: usize = 65536; - } else { - pub const FD_SETSIZE: usize = 1024; - } -} - -pub const ST_RDONLY: ::c_ulong = 1; -pub const ST_NOSUID: ::c_ulong = 2; - -pub const NI_MAXHOST: ::socklen_t = 1025; -pub const NI_MAXSERV: ::socklen_t = 32; - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 32767; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const SEEK_DATA: ::c_int = 3; -pub const SEEK_HOLE: ::c_int = 4; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 4; -pub const _IOLBF: ::c_int = 64; -pub const BUFSIZ: ::c_uint = 1024; -pub const FOPEN_MAX: ::c_uint = 20; -pub const FILENAME_MAX: ::c_uint = 1024; -pub const L_tmpnam: ::c_uint = 25; -pub const TMP_MAX: ::c_uint = 17576; - -pub const GRND_NONBLOCK: ::c_uint = 0x0001; -pub const GRND_RANDOM: ::c_uint = 0x0002; - -pub const O_RDONLY: ::c_int = 0; -pub const O_WRONLY: ::c_int = 1; -pub const O_RDWR: ::c_int = 2; -pub const O_NDELAY: ::c_int = 0x04; -pub const O_APPEND: ::c_int = 8; -pub const O_DSYNC: ::c_int = 0x40; -pub const O_CREAT: ::c_int = 256; -pub const O_EXCL: ::c_int = 1024; -pub const O_NOCTTY: ::c_int = 2048; -pub const O_TRUNC: ::c_int = 512; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const O_DIRECTORY: ::c_int = 0x1000000; -pub const O_SEARCH: ::c_int = 0x200000; -pub const O_EXEC: ::c_int = 0x400000; -pub const O_CLOEXEC: ::c_int = 0x800000; -pub const O_ACCMODE: ::c_int = 0x600003; -pub const O_XATTR: ::c_int = 0x4000; -pub const S_IFIFO: mode_t = 4096; -pub const S_IFCHR: mode_t = 8192; -pub const S_IFBLK: mode_t = 24576; -pub const S_IFDIR: mode_t = 16384; -pub const S_IFREG: mode_t = 32768; -pub const S_IFLNK: mode_t = 40960; -pub const S_IFSOCK: mode_t = 49152; -pub const S_IFMT: mode_t = 61440; -pub const S_IEXEC: mode_t = 64; -pub const S_IWRITE: mode_t = 128; -pub const S_IREAD: mode_t = 256; -pub const S_IRWXU: mode_t = 448; -pub const S_IXUSR: mode_t = 64; -pub const S_IWUSR: mode_t = 128; -pub const S_IRUSR: mode_t = 256; -pub const S_IRWXG: mode_t = 56; -pub const S_IXGRP: mode_t = 8; -pub const S_IWGRP: mode_t = 16; -pub const S_IRGRP: mode_t = 32; -pub const S_IRWXO: mode_t = 7; -pub const S_IXOTH: mode_t = 1; -pub const S_IWOTH: mode_t = 2; -pub const S_IROTH: mode_t = 4; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; -pub const F_LOCK: ::c_int = 1; -pub const F_TEST: ::c_int = 3; -pub const F_TLOCK: ::c_int = 2; -pub const F_ULOCK: ::c_int = 0; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_GETLK: ::c_int = 14; -pub const F_ALLOCSP: ::c_int = 10; -pub const F_FREESP: ::c_int = 11; -pub const F_BLOCKS: ::c_int = 18; -pub const F_BLKSIZE: ::c_int = 19; -pub const F_SHARE: ::c_int = 40; -pub const F_UNSHARE: ::c_int = 41; -pub const F_ISSTREAM: ::c_int = 13; -pub const F_PRIV: ::c_int = 15; -pub const F_NPRIV: ::c_int = 16; -pub const F_QUOTACTL: ::c_int = 17; -pub const F_GETOWN: ::c_int = 23; -pub const F_SETOWN: ::c_int = 24; -pub const F_REVOKE: ::c_int = 25; -pub const F_HASREMOTELOCKS: ::c_int = 26; -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGSEGV: ::c_int = 11; -pub const SIGSYS: ::c_int = 12; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGPWR: ::c_int = 19; -pub const SIGWINCH: ::c_int = 20; -pub const SIGURG: ::c_int = 21; -pub const SIGPOLL: ::c_int = 22; -pub const SIGIO: ::c_int = SIGPOLL; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGCONT: ::c_int = 25; -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; - -pub const WNOHANG: ::c_int = 0x40; -pub const WUNTRACED: ::c_int = 0x04; - -pub const WEXITED: ::c_int = 0x01; -pub const WTRAPPED: ::c_int = 0x02; -pub const WSTOPPED: ::c_int = WUNTRACED; -pub const WCONTINUED: ::c_int = 0x08; -pub const WNOWAIT: ::c_int = 0x80; - -pub const AT_FDCWD: ::c_int = 0xffd19553; -pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x1000; -pub const AT_SYMLINK_FOLLOW: ::c_int = 0x2000; -pub const AT_REMOVEDIR: ::c_int = 0x1; -pub const _AT_TRIGGER: ::c_int = 0x2; -pub const AT_EACCESS: ::c_int = 0x4; - -pub const P_PID: idtype_t = 0; -pub const P_PPID: idtype_t = 1; -pub const P_PGID: idtype_t = 2; -pub const P_SID: idtype_t = 3; -pub const P_CID: idtype_t = 4; -pub const P_UID: idtype_t = 5; -pub const P_GID: idtype_t = 6; -pub const P_ALL: idtype_t = 7; -pub const P_LWPID: idtype_t = 8; -pub const P_TASKID: idtype_t = 9; -pub const P_PROJID: idtype_t = 10; -pub const P_POOLID: idtype_t = 11; -pub const P_ZONEID: idtype_t = 12; -pub const P_CTID: idtype_t = 13; -pub const P_CPUID: idtype_t = 14; -pub const P_PSETID: idtype_t = 15; - -pub const PBIND_NONE: ::processorid_t = -1; -pub const PBIND_QUERY: ::processorid_t = -2; -pub const PBIND_HARD: ::processorid_t = -3; -pub const PBIND_SOFT: ::processorid_t = -4; - -pub const PS_NONE: ::c_int = -1; -pub const PS_QUERY: ::c_int = -2; -pub const PS_MYID: ::c_int = -3; -pub const PS_SOFT: ::c_int = -4; -pub const PS_HARD: ::c_int = -5; -pub const PS_QUERY_TYPE: ::c_int = -6; -pub const PS_SYSTEM: ::c_int = 1; -pub const PS_PRIVATE: ::c_int = 2; - -pub const UTIME_OMIT: c_long = -2; -pub const UTIME_NOW: c_long = -1; - -pub const PROT_NONE: ::c_int = 0; -pub const PROT_READ: ::c_int = 1; -pub const PROT_WRITE: ::c_int = 2; -pub const PROT_EXEC: ::c_int = 4; - -pub const MAP_FILE: ::c_int = 0; -pub const MAP_SHARED: ::c_int = 0x0001; -pub const MAP_PRIVATE: ::c_int = 0x0002; -pub const MAP_FIXED: ::c_int = 0x0010; -pub const MAP_NORESERVE: ::c_int = 0x40; -pub const MAP_ANON: ::c_int = 0x0100; -pub const MAP_ANONYMOUS: ::c_int = 0x0100; -pub const MAP_RENAME: ::c_int = 0x20; -pub const MAP_ALIGN: ::c_int = 0x200; -pub const MAP_TEXT: ::c_int = 0x400; -pub const MAP_INITDATA: ::c_int = 0x800; -pub const MAP_32BIT: ::c_int = 0x80; -pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const MS_SYNC: ::c_int = 0x0004; -pub const MS_ASYNC: ::c_int = 0x0001; -pub const MS_INVALIDATE: ::c_int = 0x0002; - -pub const MMOBJ_PADDING: ::c_uint = 0x10000; -pub const MMOBJ_INTERPRET: ::c_uint = 0x20000; -pub const MR_PADDING: ::c_uint = 0x1; -pub const MR_HDR_ELF: ::c_uint = 0x2; - -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EDEADLK: ::c_int = 45; -pub const ENOLCK: ::c_int = 46; -pub const ECANCELED: ::c_int = 47; -pub const ENOTSUP: ::c_int = 48; -pub const EDQUOT: ::c_int = 49; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EDEADLOCK: ::c_int = 56; -pub const EBFONT: ::c_int = 57; -pub const EOWNERDEAD: ::c_int = 58; -pub const ENOTRECOVERABLE: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const ELOCKUNMAPPED: ::c_int = 72; -pub const ENOTACTIVE: ::c_int = 73; -pub const EMULTIHOP: ::c_int = 74; -pub const EADI: ::c_int = 75; -pub const EBADMSG: ::c_int = 77; -pub const ENAMETOOLONG: ::c_int = 78; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ENOSYS: ::c_int = 89; -pub const ELOOP: ::c_int = 90; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const ENOTEMPTY: ::c_int = 93; -pub const EUSERS: ::c_int = 94; -pub const ENOTSOCK: ::c_int = 95; -pub const EDESTADDRREQ: ::c_int = 96; -pub const EMSGSIZE: ::c_int = 97; -pub const EPROTOTYPE: ::c_int = 98; -pub const ENOPROTOOPT: ::c_int = 99; -pub const EPROTONOSUPPORT: ::c_int = 120; -pub const ESOCKTNOSUPPORT: ::c_int = 121; -pub const EOPNOTSUPP: ::c_int = 122; -pub const EPFNOSUPPORT: ::c_int = 123; -pub const EAFNOSUPPORT: ::c_int = 124; -pub const EADDRINUSE: ::c_int = 125; -pub const EADDRNOTAVAIL: ::c_int = 126; -pub const ENETDOWN: ::c_int = 127; -pub const ENETUNREACH: ::c_int = 128; -pub const ENETRESET: ::c_int = 129; -pub const ECONNABORTED: ::c_int = 130; -pub const ECONNRESET: ::c_int = 131; -pub const ENOBUFS: ::c_int = 132; -pub const EISCONN: ::c_int = 133; -pub const ENOTCONN: ::c_int = 134; -pub const ESHUTDOWN: ::c_int = 143; -pub const ETOOMANYREFS: ::c_int = 144; -pub const ETIMEDOUT: ::c_int = 145; -pub const ECONNREFUSED: ::c_int = 146; -pub const EHOSTDOWN: ::c_int = 147; -pub const EHOSTUNREACH: ::c_int = 148; -pub const EWOULDBLOCK: ::c_int = EAGAIN; -pub const EALREADY: ::c_int = 149; -pub const EINPROGRESS: ::c_int = 150; -pub const ESTALE: ::c_int = 151; - -pub const EAI_AGAIN: ::c_int = 2; -pub const EAI_BADFLAGS: ::c_int = 3; -pub const EAI_FAIL: ::c_int = 4; -pub const EAI_FAMILY: ::c_int = 5; -pub const EAI_MEMORY: ::c_int = 6; -pub const EAI_NODATA: ::c_int = 7; -pub const EAI_NONAME: ::c_int = 8; -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; -pub const EAI_OVERFLOW: ::c_int = 12; - -pub const NI_NOFQDN: ::c_uint = 0x0001; -pub const NI_NUMERICHOST: ::c_uint = 0x0002; -pub const NI_NAMEREQD: ::c_uint = 0x0004; -pub const NI_NUMERICSERV: ::c_uint = 0x0008; -pub const NI_DGRAM: ::c_uint = 0x0010; -pub const NI_WITHSCOPEID: ::c_uint = 0x0020; -pub const NI_NUMERICSCOPE: ::c_uint = 0x0040; - -pub const F_DUPFD: ::c_int = 0; -pub const F_DUP2FD: ::c_int = 9; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; -pub const F_GETXFL: ::c_int = 45; - -pub const SIGTRAP: ::c_int = 5; - -pub const GLOB_APPEND: ::c_int = 32; -pub const GLOB_DOOFFS: ::c_int = 16; -pub const GLOB_ERR: ::c_int = 1; -pub const GLOB_MARK: ::c_int = 2; -pub const GLOB_NOCHECK: ::c_int = 8; -pub const GLOB_NOSORT: ::c_int = 4; -pub const GLOB_NOESCAPE: ::c_int = 64; - -pub const GLOB_NOSPACE: ::c_int = -2; -pub const GLOB_ABORTED: ::c_int = -1; -pub const GLOB_NOMATCH: ::c_int = -3; - -pub const POLLIN: ::c_short = 0x1; -pub const POLLPRI: ::c_short = 0x2; -pub const POLLOUT: ::c_short = 0x4; -pub const POLLERR: ::c_short = 0x8; -pub const POLLHUP: ::c_short = 0x10; -pub const POLLNVAL: ::c_short = 0x20; -pub const POLLNORM: ::c_short = 0x0040; -pub const POLLRDNORM: ::c_short = 0x0040; -pub const POLLWRNORM: ::c_short = 0x4; /* POLLOUT */ -pub const POLLRDBAND: ::c_short = 0x0080; -pub const POLLWRBAND: ::c_short = 0x0100; - -pub const POSIX_MADV_NORMAL: ::c_int = 0; -pub const POSIX_MADV_RANDOM: ::c_int = 1; -pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -pub const POSIX_MADV_WILLNEED: ::c_int = 3; -pub const POSIX_MADV_DONTNEED: ::c_int = 4; - -pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED: ::c_int = 0x40; -pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; -pub const PTHREAD_PROCESS_PRIVATE: ::c_ushort = 0; -pub const PTHREAD_STACK_MIN: ::size_t = 4096; - -pub const SIGSTKSZ: ::size_t = 8192; - -// https://illumos.org/man/3c/clock_gettime -// https://github.com/illumos/illumos-gate/ -// blob/HEAD/usr/src/lib/libc/amd64/sys/__clock_gettime.s -// clock_gettime(3c) doesn't seem to accept anything other than CLOCK_REALTIME -// or __CLOCK_REALTIME0 -// -// https://github.com/illumos/illumos-gate/ -// blob/HEAD/usr/src/uts/common/sys/time_impl.h -// Confusing! CLOCK_HIGHRES==CLOCK_MONOTONIC==4 -// __CLOCK_REALTIME0==0 is an obsoleted version of CLOCK_REALTIME==3 -pub const CLOCK_REALTIME: ::clockid_t = 3; -pub const CLOCK_MONOTONIC: ::clockid_t = 4; -pub const TIMER_RELTIME: ::c_int = 0; -pub const TIMER_ABSTIME: ::c_int = 1; - -pub const RLIMIT_CPU: ::c_int = 0; -pub const RLIMIT_FSIZE: ::c_int = 1; -pub const RLIMIT_DATA: ::c_int = 2; -pub const RLIMIT_STACK: ::c_int = 3; -pub const RLIMIT_CORE: ::c_int = 4; -pub const RLIMIT_NOFILE: ::c_int = 5; -pub const RLIMIT_VMEM: ::c_int = 6; -pub const RLIMIT_AS: ::c_int = RLIMIT_VMEM; - -#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] -pub const RLIM_NLIMITS: rlim_t = 7; -pub const RLIM_INFINITY: rlim_t = 0xfffffffffffffffd; - -pub const RUSAGE_SELF: ::c_int = 0; -pub const RUSAGE_CHILDREN: ::c_int = -1; - -pub const MADV_NORMAL: ::c_int = 0; -pub const MADV_RANDOM: ::c_int = 1; -pub const MADV_SEQUENTIAL: ::c_int = 2; -pub const MADV_WILLNEED: ::c_int = 3; -pub const MADV_DONTNEED: ::c_int = 4; -pub const MADV_FREE: ::c_int = 5; -pub const MADV_ACCESS_DEFAULT: ::c_int = 6; -pub const MADV_ACCESS_LWP: ::c_int = 7; -pub const MADV_ACCESS_MANY: ::c_int = 8; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_UNIX: ::c_int = 1; -pub const AF_INET: ::c_int = 2; -pub const AF_IMPLINK: ::c_int = 3; -pub const AF_PUP: ::c_int = 4; -pub const AF_CHAOS: ::c_int = 5; -pub const AF_NS: ::c_int = 6; -pub const AF_NBS: ::c_int = 7; -pub const AF_ECMA: ::c_int = 8; -pub const AF_DATAKIT: ::c_int = 9; -pub const AF_CCITT: ::c_int = 10; -pub const AF_SNA: ::c_int = 11; -pub const AF_DECnet: ::c_int = 12; -pub const AF_DLI: ::c_int = 13; -pub const AF_LAT: ::c_int = 14; -pub const AF_HYLINK: ::c_int = 15; -pub const AF_APPLETALK: ::c_int = 16; -pub const AF_NIT: ::c_int = 17; -pub const AF_802: ::c_int = 18; -pub const AF_OSI: ::c_int = 19; -pub const AF_X25: ::c_int = 20; -pub const AF_OSINET: ::c_int = 21; -pub const AF_GOSIP: ::c_int = 22; -pub const AF_IPX: ::c_int = 23; -pub const AF_ROUTE: ::c_int = 24; -pub const AF_LINK: ::c_int = 25; -pub const AF_INET6: ::c_int = 26; -pub const AF_KEY: ::c_int = 27; -pub const AF_NCA: ::c_int = 28; -pub const AF_POLICY: ::c_int = 29; -pub const AF_INET_OFFLOAD: ::c_int = 30; -pub const AF_TRILL: ::c_int = 31; -pub const AF_PACKET: ::c_int = 32; - -pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -pub const PF_UNIX: ::c_int = AF_UNIX; -pub const PF_LOCAL: ::c_int = PF_UNIX; -pub const PF_FILE: ::c_int = PF_UNIX; -pub const PF_INET: ::c_int = AF_INET; -pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -pub const PF_PUP: ::c_int = AF_PUP; -pub const PF_CHAOS: ::c_int = AF_CHAOS; -pub const PF_NS: ::c_int = AF_NS; -pub const PF_NBS: ::c_int = AF_NBS; -pub const PF_ECMA: ::c_int = AF_ECMA; -pub const PF_DATAKIT: ::c_int = AF_DATAKIT; -pub const PF_CCITT: ::c_int = AF_CCITT; -pub const PF_SNA: ::c_int = AF_SNA; -pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_DLI: ::c_int = AF_DLI; -pub const PF_LAT: ::c_int = AF_LAT; -pub const PF_HYLINK: ::c_int = AF_HYLINK; -pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -pub const PF_NIT: ::c_int = AF_NIT; -pub const PF_802: ::c_int = AF_802; -pub const PF_OSI: ::c_int = AF_OSI; -pub const PF_X25: ::c_int = AF_X25; -pub const PF_OSINET: ::c_int = AF_OSINET; -pub const PF_GOSIP: ::c_int = AF_GOSIP; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_LINK: ::c_int = AF_LINK; -pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_KEY: ::c_int = AF_KEY; -pub const PF_NCA: ::c_int = AF_NCA; -pub const PF_POLICY: ::c_int = AF_POLICY; -pub const PF_INET_OFFLOAD: ::c_int = AF_INET_OFFLOAD; -pub const PF_TRILL: ::c_int = AF_TRILL; -pub const PF_PACKET: ::c_int = AF_PACKET; - -pub const SOCK_DGRAM: ::c_int = 1; -pub const SOCK_STREAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 4; -pub const SOCK_RDM: ::c_int = 5; -pub const SOCK_SEQPACKET: ::c_int = 6; -pub const IP_MULTICAST_IF: ::c_int = 16; -pub const IP_MULTICAST_TTL: ::c_int = 17; -pub const IP_MULTICAST_LOOP: ::c_int = 18; -pub const IP_TTL: ::c_int = 4; -pub const IP_HDRINCL: ::c_int = 2; -pub const IP_ADD_MEMBERSHIP: ::c_int = 19; -pub const IP_DROP_MEMBERSHIP: ::c_int = 20; -pub const IPV6_JOIN_GROUP: ::c_int = 9; -pub const IPV6_LEAVE_GROUP: ::c_int = 10; -pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 23; -pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 24; -pub const IP_BLOCK_SOURCE: ::c_int = 21; -pub const IP_UNBLOCK_SOURCE: ::c_int = 22; - -// These TCP socket options are common between illumos and Solaris, while higher -// numbers have generally diverged: -pub const TCP_NODELAY: ::c_int = 0x1; -pub const TCP_MAXSEG: ::c_int = 0x2; -pub const TCP_KEEPALIVE: ::c_int = 0x8; -pub const TCP_NOTIFY_THRESHOLD: ::c_int = 0x10; -pub const TCP_ABORT_THRESHOLD: ::c_int = 0x11; -pub const TCP_CONN_NOTIFY_THRESHOLD: ::c_int = 0x12; -pub const TCP_CONN_ABORT_THRESHOLD: ::c_int = 0x13; -pub const TCP_RECVDSTADDR: ::c_int = 0x14; -pub const TCP_INIT_CWND: ::c_int = 0x15; -pub const TCP_KEEPALIVE_THRESHOLD: ::c_int = 0x16; -pub const TCP_KEEPALIVE_ABORT_THRESHOLD: ::c_int = 0x17; -pub const TCP_CORK: ::c_int = 0x18; -pub const TCP_RTO_INITIAL: ::c_int = 0x19; -pub const TCP_RTO_MIN: ::c_int = 0x1a; -pub const TCP_RTO_MAX: ::c_int = 0x1b; -pub const TCP_LINGER2: ::c_int = 0x1c; - -pub const UDP_NAT_T_ENDPOINT: ::c_int = 0x0103; - -pub const SOMAXCONN: ::c_int = 128; - -pub const SOL_SOCKET: ::c_int = 0xffff; -pub const SO_DEBUG: ::c_int = 0x01; -pub const SO_ACCEPTCONN: ::c_int = 0x0002; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SO_TIMESTAMP: ::c_int = 0x1013; - -pub const SCM_RIGHTS: ::c_int = 0x1010; -pub const SCM_UCRED: ::c_int = 0x1012; -pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; - -pub const MSG_OOB: ::c_int = 0x1; -pub const MSG_PEEK: ::c_int = 0x2; -pub const MSG_DONTROUTE: ::c_int = 0x4; -pub const MSG_EOR: ::c_int = 0x8; -pub const MSG_CTRUNC: ::c_int = 0x10; -pub const MSG_TRUNC: ::c_int = 0x20; -pub const MSG_WAITALL: ::c_int = 0x40; -pub const MSG_DONTWAIT: ::c_int = 0x80; -pub const MSG_NOTIFICATION: ::c_int = 0x100; -pub const MSG_NOSIGNAL: ::c_int = 0x200; -pub const MSG_DUPCTRL: ::c_int = 0x800; -pub const MSG_XPG4_2: ::c_int = 0x8000; -pub const MSG_MAXIOVLEN: ::c_int = 16; - -pub const IF_NAMESIZE: ::size_t = 32; -pub const IFNAMSIZ: ::size_t = 16; - -// https://docs.oracle.com/cd/E23824_01/html/821-1475/if-7p.html -pub const IFF_UP: ::c_int = 0x0000000001; // Address is up -pub const IFF_BROADCAST: ::c_int = 0x0000000002; // Broadcast address valid -pub const IFF_DEBUG: ::c_int = 0x0000000004; // Turn on debugging -pub const IFF_LOOPBACK: ::c_int = 0x0000000008; // Loopback net -pub const IFF_POINTOPOINT: ::c_int = 0x0000000010; // Interface is p-to-p -pub const IFF_NOTRAILERS: ::c_int = 0x0000000020; // Avoid use of trailers -pub const IFF_RUNNING: ::c_int = 0x0000000040; // Resources allocated -pub const IFF_NOARP: ::c_int = 0x0000000080; // No address res. protocol -pub const IFF_PROMISC: ::c_int = 0x0000000100; // Receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x0000000200; // Receive all multicast pkts -pub const IFF_INTELLIGENT: ::c_int = 0x0000000400; // Protocol code on board -pub const IFF_MULTICAST: ::c_int = 0x0000000800; // Supports multicast - -// Multicast using broadcst. add. -pub const IFF_MULTI_BCAST: ::c_int = 0x0000001000; -pub const IFF_UNNUMBERED: ::c_int = 0x0000002000; // Non-unique address -pub const IFF_DHCPRUNNING: ::c_int = 0x0000004000; // DHCP controls interface -pub const IFF_PRIVATE: ::c_int = 0x0000008000; // Do not advertise -pub const IFF_NOXMIT: ::c_int = 0x0000010000; // Do not transmit pkts - -// No address - just on-link subnet -pub const IFF_NOLOCAL: ::c_int = 0x0000020000; -pub const IFF_DEPRECATED: ::c_int = 0x0000040000; // Address is deprecated -pub const IFF_ADDRCONF: ::c_int = 0x0000080000; // Addr. from stateless addrconf -pub const IFF_ROUTER: ::c_int = 0x0000100000; // Router on interface -pub const IFF_NONUD: ::c_int = 0x0000200000; // No NUD on interface -pub const IFF_ANYCAST: ::c_int = 0x0000400000; // Anycast address -pub const IFF_NORTEXCH: ::c_int = 0x0000800000; // Don't xchange rout. info -pub const IFF_IPV4: ::c_int = 0x0001000000; // IPv4 interface -pub const IFF_IPV6: ::c_int = 0x0002000000; // IPv6 interface -pub const IFF_NOFAILOVER: ::c_int = 0x0008000000; // in.mpathd test address -pub const IFF_FAILED: ::c_int = 0x0010000000; // Interface has failed -pub const IFF_STANDBY: ::c_int = 0x0020000000; // Interface is a hot-spare -pub const IFF_INACTIVE: ::c_int = 0x0040000000; // Functioning but not used -pub const IFF_OFFLINE: ::c_int = 0x0080000000; // Interface is offline - // If CoS marking is supported -pub const IFF_COS_ENABLED: ::c_longlong = 0x0200000000; -pub const IFF_PREFERRED: ::c_longlong = 0x0400000000; // Prefer as source addr. -pub const IFF_TEMPORARY: ::c_longlong = 0x0800000000; // RFC3041 -pub const IFF_FIXEDMTU: ::c_longlong = 0x1000000000; // MTU set with SIOCSLIFMTU -pub const IFF_VIRTUAL: ::c_longlong = 0x2000000000; // Cannot send/receive pkts -pub const IFF_DUPLICATE: ::c_longlong = 0x4000000000; // Local address in use -pub const IFF_IPMP: ::c_longlong = 0x8000000000; // IPMP IP interface - -// sys/ipc.h: -pub const IPC_ALLOC: ::c_int = 0x8000; -pub const IPC_CREAT: ::c_int = 0x200; -pub const IPC_EXCL: ::c_int = 0x400; -pub const IPC_NOWAIT: ::c_int = 0x800; -pub const IPC_PRIVATE: key_t = 0; -pub const IPC_RMID: ::c_int = 10; -pub const IPC_SET: ::c_int = 11; -pub const IPC_SEAT: ::c_int = 12; - -// sys/shm.h -pub const SHM_R: ::c_int = 0o400; -pub const SHM_W: ::c_int = 0o200; -pub const SHM_RDONLY: ::c_int = 0o10000; -pub const SHM_RND: ::c_int = 0o20000; -pub const SHM_SHARE_MMU: ::c_int = 0o40000; -pub const SHM_PAGEABLE: ::c_int = 0o100000; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const LOCK_SH: ::c_int = 1; -pub const LOCK_EX: ::c_int = 2; -pub const LOCK_NB: ::c_int = 4; -pub const LOCK_UN: ::c_int = 8; - -pub const F_RDLCK: ::c_short = 1; -pub const F_WRLCK: ::c_short = 2; -pub const F_UNLCK: ::c_short = 3; - -pub const O_SYNC: ::c_int = 16; -pub const O_NONBLOCK: ::c_int = 128; - -pub const IPPROTO_RAW: ::c_int = 255; - -pub const _PC_LINK_MAX: ::c_int = 1; -pub const _PC_MAX_CANON: ::c_int = 2; -pub const _PC_MAX_INPUT: ::c_int = 3; -pub const _PC_NAME_MAX: ::c_int = 4; -pub const _PC_PATH_MAX: ::c_int = 5; -pub const _PC_PIPE_BUF: ::c_int = 6; -pub const _PC_NO_TRUNC: ::c_int = 7; -pub const _PC_VDISABLE: ::c_int = 8; -pub const _PC_CHOWN_RESTRICTED: ::c_int = 9; -pub const _PC_ASYNC_IO: ::c_int = 10; -pub const _PC_PRIO_IO: ::c_int = 11; -pub const _PC_SYNC_IO: ::c_int = 12; -pub const _PC_ALLOC_SIZE_MIN: ::c_int = 13; -pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; -pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; -pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; -pub const _PC_REC_XFER_ALIGN: ::c_int = 17; -pub const _PC_SYMLINK_MAX: ::c_int = 18; -pub const _PC_2_SYMLINKS: ::c_int = 19; -pub const _PC_ACL_ENABLED: ::c_int = 20; -pub const _PC_MIN_HOLE_SIZE: ::c_int = 21; -pub const _PC_CASE_BEHAVIOR: ::c_int = 22; -pub const _PC_SATTR_ENABLED: ::c_int = 23; -pub const _PC_SATTR_EXISTS: ::c_int = 24; -pub const _PC_ACCESS_FILTERING: ::c_int = 25; -pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 26; -pub const _PC_FILESIZEBITS: ::c_int = 67; -pub const _PC_XATTR_ENABLED: ::c_int = 100; -pub const _PC_LAST: ::c_int = 101; -pub const _PC_XATTR_EXISTS: ::c_int = 101; - -pub const _SC_ARG_MAX: ::c_int = 1; -pub const _SC_CHILD_MAX: ::c_int = 2; -pub const _SC_CLK_TCK: ::c_int = 3; -pub const _SC_NGROUPS_MAX: ::c_int = 4; -pub const _SC_OPEN_MAX: ::c_int = 5; -pub const _SC_JOB_CONTROL: ::c_int = 6; -pub const _SC_SAVED_IDS: ::c_int = 7; -pub const _SC_VERSION: ::c_int = 8; -pub const _SC_PASS_MAX: ::c_int = 9; -pub const _SC_LOGNAME_MAX: ::c_int = 10; -pub const _SC_PAGESIZE: ::c_int = 11; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_XOPEN_VERSION: ::c_int = 12; -pub const _SC_NPROCESSORS_CONF: ::c_int = 14; -pub const _SC_NPROCESSORS_ONLN: ::c_int = 15; -pub const _SC_STREAM_MAX: ::c_int = 16; -pub const _SC_TZNAME_MAX: ::c_int = 17; -pub const _SC_AIO_LISTIO_MAX: ::c_int = 18; -pub const _SC_AIO_MAX: ::c_int = 19; -pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 20; -pub const _SC_ASYNCHRONOUS_IO: ::c_int = 21; -pub const _SC_DELAYTIMER_MAX: ::c_int = 22; -pub const _SC_FSYNC: ::c_int = 23; -pub const _SC_MAPPED_FILES: ::c_int = 24; -pub const _SC_MEMLOCK: ::c_int = 25; -pub const _SC_MEMLOCK_RANGE: ::c_int = 26; -pub const _SC_MEMORY_PROTECTION: ::c_int = 27; -pub const _SC_MESSAGE_PASSING: ::c_int = 28; -pub const _SC_MQ_OPEN_MAX: ::c_int = 29; -pub const _SC_MQ_PRIO_MAX: ::c_int = 30; -pub const _SC_PRIORITIZED_IO: ::c_int = 31; -pub const _SC_PRIORITY_SCHEDULING: ::c_int = 32; -pub const _SC_REALTIME_SIGNALS: ::c_int = 33; -pub const _SC_RTSIG_MAX: ::c_int = 34; -pub const _SC_SEMAPHORES: ::c_int = 35; -pub const _SC_SEM_NSEMS_MAX: ::c_int = 36; -pub const _SC_SEM_VALUE_MAX: ::c_int = 37; -pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 38; -pub const _SC_SIGQUEUE_MAX: ::c_int = 39; -pub const _SC_SIGRT_MIN: ::c_int = 40; -pub const _SC_SIGRT_MAX: ::c_int = 41; -pub const _SC_SYNCHRONIZED_IO: ::c_int = 42; -pub const _SC_TIMERS: ::c_int = 43; -pub const _SC_TIMER_MAX: ::c_int = 44; -pub const _SC_2_C_BIND: ::c_int = 45; -pub const _SC_2_C_DEV: ::c_int = 46; -pub const _SC_2_C_VERSION: ::c_int = 47; -pub const _SC_2_FORT_DEV: ::c_int = 48; -pub const _SC_2_FORT_RUN: ::c_int = 49; -pub const _SC_2_LOCALEDEF: ::c_int = 50; -pub const _SC_2_SW_DEV: ::c_int = 51; -pub const _SC_2_UPE: ::c_int = 52; -pub const _SC_2_VERSION: ::c_int = 53; -pub const _SC_BC_BASE_MAX: ::c_int = 54; -pub const _SC_BC_DIM_MAX: ::c_int = 55; -pub const _SC_BC_SCALE_MAX: ::c_int = 56; -pub const _SC_BC_STRING_MAX: ::c_int = 57; -pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 58; -pub const _SC_EXPR_NEST_MAX: ::c_int = 59; -pub const _SC_LINE_MAX: ::c_int = 60; -pub const _SC_RE_DUP_MAX: ::c_int = 61; -pub const _SC_XOPEN_CRYPT: ::c_int = 62; -pub const _SC_XOPEN_ENH_I18N: ::c_int = 63; -pub const _SC_XOPEN_SHM: ::c_int = 64; -pub const _SC_2_CHAR_TERM: ::c_int = 66; -pub const _SC_XOPEN_XCU_VERSION: ::c_int = 67; -pub const _SC_ATEXIT_MAX: ::c_int = 76; -pub const _SC_IOV_MAX: ::c_int = 77; -pub const _SC_XOPEN_UNIX: ::c_int = 78; -pub const _SC_T_IOV_MAX: ::c_int = 79; -pub const _SC_PHYS_PAGES: ::c_int = 500; -pub const _SC_AVPHYS_PAGES: ::c_int = 501; -pub const _SC_COHER_BLKSZ: ::c_int = 503; -pub const _SC_SPLIT_CACHE: ::c_int = 504; -pub const _SC_ICACHE_SZ: ::c_int = 505; -pub const _SC_DCACHE_SZ: ::c_int = 506; -pub const _SC_ICACHE_LINESZ: ::c_int = 507; -pub const _SC_DCACHE_LINESZ: ::c_int = 508; -pub const _SC_ICACHE_BLKSZ: ::c_int = 509; -pub const _SC_DCACHE_BLKSZ: ::c_int = 510; -pub const _SC_DCACHE_TBLKSZ: ::c_int = 511; -pub const _SC_ICACHE_ASSOC: ::c_int = 512; -pub const _SC_DCACHE_ASSOC: ::c_int = 513; -pub const _SC_MAXPID: ::c_int = 514; -pub const _SC_STACK_PROT: ::c_int = 515; -pub const _SC_NPROCESSORS_MAX: ::c_int = 516; -pub const _SC_CPUID_MAX: ::c_int = 517; -pub const _SC_EPHID_MAX: ::c_int = 518; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 568; -pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 569; -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 570; -pub const _SC_LOGIN_NAME_MAX: ::c_int = 571; -pub const _SC_THREAD_KEYS_MAX: ::c_int = 572; -pub const _SC_THREAD_STACK_MIN: ::c_int = 573; -pub const _SC_THREAD_THREADS_MAX: ::c_int = 574; -pub const _SC_TTY_NAME_MAX: ::c_int = 575; -pub const _SC_THREADS: ::c_int = 576; -pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 577; -pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 578; -pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 579; -pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 580; -pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 581; -pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 582; -pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 583; -pub const _SC_XOPEN_LEGACY: ::c_int = 717; -pub const _SC_XOPEN_REALTIME: ::c_int = 718; -pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 719; -pub const _SC_XBS5_ILP32_OFF32: ::c_int = 720; -pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 721; -pub const _SC_XBS5_LP64_OFF64: ::c_int = 722; -pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 723; -pub const _SC_2_PBS: ::c_int = 724; -pub const _SC_2_PBS_ACCOUNTING: ::c_int = 725; -pub const _SC_2_PBS_CHECKPOINT: ::c_int = 726; -pub const _SC_2_PBS_LOCATE: ::c_int = 728; -pub const _SC_2_PBS_MESSAGE: ::c_int = 729; -pub const _SC_2_PBS_TRACK: ::c_int = 730; -pub const _SC_ADVISORY_INFO: ::c_int = 731; -pub const _SC_BARRIERS: ::c_int = 732; -pub const _SC_CLOCK_SELECTION: ::c_int = 733; -pub const _SC_CPUTIME: ::c_int = 734; -pub const _SC_HOST_NAME_MAX: ::c_int = 735; -pub const _SC_MONOTONIC_CLOCK: ::c_int = 736; -pub const _SC_READER_WRITER_LOCKS: ::c_int = 737; -pub const _SC_REGEXP: ::c_int = 738; -pub const _SC_SHELL: ::c_int = 739; -pub const _SC_SPAWN: ::c_int = 740; -pub const _SC_SPIN_LOCKS: ::c_int = 741; -pub const _SC_SPORADIC_SERVER: ::c_int = 742; -pub const _SC_SS_REPL_MAX: ::c_int = 743; -pub const _SC_SYMLOOP_MAX: ::c_int = 744; -pub const _SC_THREAD_CPUTIME: ::c_int = 745; -pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 746; -pub const _SC_TIMEOUTS: ::c_int = 747; -pub const _SC_TRACE: ::c_int = 748; -pub const _SC_TRACE_EVENT_FILTER: ::c_int = 749; -pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 750; -pub const _SC_TRACE_INHERIT: ::c_int = 751; -pub const _SC_TRACE_LOG: ::c_int = 752; -pub const _SC_TRACE_NAME_MAX: ::c_int = 753; -pub const _SC_TRACE_SYS_MAX: ::c_int = 754; -pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 755; -pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 756; -pub const _SC_V6_ILP32_OFF32: ::c_int = 757; -pub const _SC_V6_ILP32_OFFBIG: ::c_int = 758; -pub const _SC_V6_LP64_OFF64: ::c_int = 759; -pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 760; -pub const _SC_XOPEN_STREAMS: ::c_int = 761; -pub const _SC_IPV6: ::c_int = 762; -pub const _SC_RAW_SOCKETS: ::c_int = 763; - -pub const _MUTEX_MAGIC: u16 = 0x4d58; // MX -pub const _COND_MAGIC: u16 = 0x4356; // CV -pub const _RWL_MAGIC: u16 = 0x5257; // RW - -pub const NCCS: usize = 19; - -pub const LOG_CRON: ::c_int = 15 << 3; - -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - __pthread_mutex_flag1: 0, - __pthread_mutex_flag2: 0, - __pthread_mutex_ceiling: 0, - __pthread_mutex_type: PTHREAD_PROCESS_PRIVATE, - __pthread_mutex_magic: _MUTEX_MAGIC, - __pthread_mutex_lock: 0, - __pthread_mutex_data: 0, -}; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - __pthread_cond_flag: [0; 4], - __pthread_cond_type: PTHREAD_PROCESS_PRIVATE, - __pthread_cond_magic: _COND_MAGIC, - __pthread_cond_data: 0, -}; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - __pthread_rwlock_readers: 0, - __pthread_rwlock_type: PTHREAD_PROCESS_PRIVATE, - __pthread_rwlock_magic: _RWL_MAGIC, - __pthread_rwlock_mutex: PTHREAD_MUTEX_INITIALIZER, - __pthread_rwlock_readercv: PTHREAD_COND_INITIALIZER, - __pthread_rwlock_writercv: PTHREAD_COND_INITIALIZER, -}; -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 4; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; - -pub const RTLD_NEXT: *mut ::c_void = -1isize as *mut ::c_void; -pub const RTLD_DEFAULT: *mut ::c_void = -2isize as *mut ::c_void; -pub const RTLD_SELF: *mut ::c_void = -3isize as *mut ::c_void; -pub const RTLD_PROBE: *mut ::c_void = -4isize as *mut ::c_void; - -pub const RTLD_LAZY: ::c_int = 0x1; -pub const RTLD_NOW: ::c_int = 0x2; -pub const RTLD_NOLOAD: ::c_int = 0x4; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_LOCAL: ::c_int = 0x0; -pub const RTLD_PARENT: ::c_int = 0x200; -pub const RTLD_GROUP: ::c_int = 0x400; -pub const RTLD_WORLD: ::c_int = 0x800; -pub const RTLD_NODELETE: ::c_int = 0x1000; -pub const RTLD_FIRST: ::c_int = 0x2000; -pub const RTLD_CONFGEN: ::c_int = 0x10000; - -pub const PORT_SOURCE_AIO: ::c_int = 1; -pub const PORT_SOURCE_TIMER: ::c_int = 2; -pub const PORT_SOURCE_USER: ::c_int = 3; -pub const PORT_SOURCE_FD: ::c_int = 4; -pub const PORT_SOURCE_ALERT: ::c_int = 5; -pub const PORT_SOURCE_MQ: ::c_int = 6; -pub const PORT_SOURCE_FILE: ::c_int = 7; - -pub const NONROOT_USR: ::c_short = 2; -pub const _UTX_USERSIZE: usize = 32; -pub const _UTX_LINESIZE: usize = 32; -pub const _UTX_PADSIZE: usize = 5; -pub const _UTX_IDSIZE: usize = 4; -pub const _UTX_HOSTSIZE: usize = 257; -pub const EMPTY: ::c_short = 0; -pub const RUN_LVL: ::c_short = 1; -pub const BOOT_TIME: ::c_short = 2; -pub const OLD_TIME: ::c_short = 3; -pub const NEW_TIME: ::c_short = 4; -pub const INIT_PROCESS: ::c_short = 5; -pub const LOGIN_PROCESS: ::c_short = 6; -pub const USER_PROCESS: ::c_short = 7; -pub const DEAD_PROCESS: ::c_short = 8; -pub const ACCOUNTING: ::c_short = 9; -pub const DOWN_TIME: ::c_short = 10; - -const _TIOC: ::c_int = ('T' as i32) << 8; -const tIOC: ::c_int = ('t' as i32) << 8; -pub const TCGETA: ::c_int = _TIOC | 1; -pub const TCSETA: ::c_int = _TIOC | 2; -pub const TCSETAW: ::c_int = _TIOC | 3; -pub const TCSETAF: ::c_int = _TIOC | 4; -pub const TCSBRK: ::c_int = _TIOC | 5; -pub const TCXONC: ::c_int = _TIOC | 6; -pub const TCFLSH: ::c_int = _TIOC | 7; -pub const TCDSET: ::c_int = _TIOC | 32; -pub const TCGETS: ::c_int = _TIOC | 13; -pub const TCSETS: ::c_int = _TIOC | 14; -pub const TCSANOW: ::c_int = _TIOC | 14; -pub const TCSETSW: ::c_int = _TIOC | 15; -pub const TCSADRAIN: ::c_int = _TIOC | 15; -pub const TCSETSF: ::c_int = _TIOC | 16; -pub const TCSAFLUSH: ::c_int = _TIOC | 16; -pub const TCIFLUSH: ::c_int = 0; -pub const TCOFLUSH: ::c_int = 1; -pub const TCIOFLUSH: ::c_int = 2; -pub const TCOOFF: ::c_int = 0; -pub const TCOON: ::c_int = 1; -pub const TCIOFF: ::c_int = 2; -pub const TCION: ::c_int = 3; -pub const TIOC: ::c_int = _TIOC; -pub const TIOCKBON: ::c_int = _TIOC | 8; -pub const TIOCKBOF: ::c_int = _TIOC | 9; -pub const TIOCGWINSZ: ::c_int = _TIOC | 104; -pub const TIOCSWINSZ: ::c_int = _TIOC | 103; -pub const TIOCGSOFTCAR: ::c_int = _TIOC | 105; -pub const TIOCSSOFTCAR: ::c_int = _TIOC | 106; -pub const TIOCGPPS: ::c_int = _TIOC | 125; -pub const TIOCSPPS: ::c_int = _TIOC | 126; -pub const TIOCGPPSEV: ::c_int = _TIOC | 127; -pub const TIOCGETD: ::c_int = tIOC | 0; -pub const TIOCSETD: ::c_int = tIOC | 1; -pub const TIOCHPCL: ::c_int = tIOC | 2; -pub const TIOCGETP: ::c_int = tIOC | 8; -pub const TIOCSETP: ::c_int = tIOC | 9; -pub const TIOCSETN: ::c_int = tIOC | 10; -pub const TIOCEXCL: ::c_int = tIOC | 13; -pub const TIOCNXCL: ::c_int = tIOC | 14; -pub const TIOCFLUSH: ::c_int = tIOC | 16; -pub const TIOCSETC: ::c_int = tIOC | 17; -pub const TIOCGETC: ::c_int = tIOC | 18; -pub const TIOCLBIS: ::c_int = tIOC | 127; -pub const TIOCLBIC: ::c_int = tIOC | 126; -pub const TIOCLSET: ::c_int = tIOC | 125; -pub const TIOCLGET: ::c_int = tIOC | 124; -pub const TIOCSBRK: ::c_int = tIOC | 123; -pub const TIOCCBRK: ::c_int = tIOC | 122; -pub const TIOCSDTR: ::c_int = tIOC | 121; -pub const TIOCCDTR: ::c_int = tIOC | 120; -pub const TIOCSLTC: ::c_int = tIOC | 117; -pub const TIOCGLTC: ::c_int = tIOC | 116; -pub const TIOCOUTQ: ::c_int = tIOC | 115; -pub const TIOCNOTTY: ::c_int = tIOC | 113; -pub const TIOCSCTTY: ::c_int = tIOC | 132; -pub const TIOCSTOP: ::c_int = tIOC | 111; -pub const TIOCSTART: ::c_int = tIOC | 110; -pub const TIOCSILOOP: ::c_int = tIOC | 109; -pub const TIOCCILOOP: ::c_int = tIOC | 108; -pub const TIOCGPGRP: ::c_int = tIOC | 20; -pub const TIOCSPGRP: ::c_int = tIOC | 21; -pub const TIOCGSID: ::c_int = tIOC | 22; -pub const TIOCSTI: ::c_int = tIOC | 23; -pub const TIOCMSET: ::c_int = tIOC | 26; -pub const TIOCMBIS: ::c_int = tIOC | 27; -pub const TIOCMBIC: ::c_int = tIOC | 28; -pub const TIOCMGET: ::c_int = tIOC | 29; -pub const TIOCREMOTE: ::c_int = tIOC | 30; -pub const TIOCSIGNAL: ::c_int = tIOC | 31; - -pub const TIOCM_LE: ::c_int = 0o0001; -pub const TIOCM_DTR: ::c_int = 0o0002; -pub const TIOCM_RTS: ::c_int = 0o0004; -pub const TIOCM_ST: ::c_int = 0o0010; -pub const TIOCM_SR: ::c_int = 0o0020; -pub const TIOCM_CTS: ::c_int = 0o0040; -pub const TIOCM_CAR: ::c_int = 0o0100; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RNG: ::c_int = 0o0200; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const TIOCM_DSR: ::c_int = 0o0400; - -pub const EPOLLIN: ::c_int = 0x1; -pub const EPOLLPRI: ::c_int = 0x2; -pub const EPOLLOUT: ::c_int = 0x4; -pub const EPOLLRDNORM: ::c_int = 0x40; -pub const EPOLLRDBAND: ::c_int = 0x80; -pub const EPOLLWRNORM: ::c_int = 0x100; -pub const EPOLLWRBAND: ::c_int = 0x200; -pub const EPOLLMSG: ::c_int = 0x400; -pub const EPOLLERR: ::c_int = 0x8; -pub const EPOLLHUP: ::c_int = 0x10; -pub const EPOLLET: ::c_int = 0x80000000; -pub const EPOLLRDHUP: ::c_int = 0x2000; -pub const EPOLLONESHOT: ::c_int = 0x40000000; -pub const EPOLLWAKEUP: ::c_int = 0x20000000; -pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000; -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; -pub const EPOLL_CTL_ADD: ::c_int = 1; -pub const EPOLL_CTL_MOD: ::c_int = 3; -pub const EPOLL_CTL_DEL: ::c_int = 2; - -/* termios */ -pub const B0: speed_t = 0; -pub const B50: speed_t = 1; -pub const B75: speed_t = 2; -pub const B110: speed_t = 3; -pub const B134: speed_t = 4; -pub const B150: speed_t = 5; -pub const B200: speed_t = 6; -pub const B300: speed_t = 7; -pub const B600: speed_t = 8; -pub const B1200: speed_t = 9; -pub const B1800: speed_t = 10; -pub const B2400: speed_t = 11; -pub const B4800: speed_t = 12; -pub const B9600: speed_t = 13; -pub const B19200: speed_t = 14; -pub const B38400: speed_t = 15; -pub const B57600: speed_t = 16; -pub const B76800: speed_t = 17; -pub const B115200: speed_t = 18; -pub const B153600: speed_t = 19; -pub const B230400: speed_t = 20; -pub const B307200: speed_t = 21; -pub const B460800: speed_t = 22; -pub const B921600: speed_t = 23; -pub const CSTART: ::tcflag_t = 0o21; -pub const CSTOP: ::tcflag_t = 0o23; -pub const CSWTCH: ::tcflag_t = 0o32; -pub const CBAUD: ::tcflag_t = 0o17; -pub const CIBAUD: ::tcflag_t = 0o3600000; -pub const CBAUDEXT: ::tcflag_t = 0o10000000; -pub const CIBAUDEXT: ::tcflag_t = 0o20000000; -pub const CSIZE: ::tcflag_t = 0o000060; -pub const CS5: ::tcflag_t = 0; -pub const CS6: ::tcflag_t = 0o000020; -pub const CS7: ::tcflag_t = 0o000040; -pub const CS8: ::tcflag_t = 0o000060; -pub const CSTOPB: ::tcflag_t = 0o000100; -pub const ECHO: ::tcflag_t = 0o000010; -pub const ECHOE: ::tcflag_t = 0o000020; -pub const ECHOK: ::tcflag_t = 0o000040; -pub const ECHONL: ::tcflag_t = 0o000100; -pub const ECHOCTL: ::tcflag_t = 0o001000; -pub const ECHOPRT: ::tcflag_t = 0o002000; -pub const ECHOKE: ::tcflag_t = 0o004000; -pub const EXTPROC: ::tcflag_t = 0o200000; -pub const IGNBRK: ::tcflag_t = 0o000001; -pub const BRKINT: ::tcflag_t = 0o000002; -pub const IGNPAR: ::tcflag_t = 0o000004; -pub const PARMRK: ::tcflag_t = 0o000010; -pub const INPCK: ::tcflag_t = 0o000020; -pub const ISTRIP: ::tcflag_t = 0o000040; -pub const INLCR: ::tcflag_t = 0o000100; -pub const IGNCR: ::tcflag_t = 0o000200; -pub const ICRNL: ::tcflag_t = 0o000400; -pub const IUCLC: ::tcflag_t = 0o001000; -pub const IXON: ::tcflag_t = 0o002000; -pub const IXOFF: ::tcflag_t = 0o010000; -pub const IXANY: ::tcflag_t = 0o004000; -pub const IMAXBEL: ::tcflag_t = 0o020000; -pub const DOSMODE: ::tcflag_t = 0o100000; -pub const OPOST: ::tcflag_t = 0o000001; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const ONLCR: ::tcflag_t = 0o000004; -pub const OCRNL: ::tcflag_t = 0o000010; -pub const ONOCR: ::tcflag_t = 0o000020; -pub const ONLRET: ::tcflag_t = 0o000040; -pub const OFILL: ::tcflag_t = 0o0000100; -pub const OFDEL: ::tcflag_t = 0o0000200; -pub const CREAD: ::tcflag_t = 0o000200; -pub const PARENB: ::tcflag_t = 0o000400; -pub const PARODD: ::tcflag_t = 0o001000; -pub const HUPCL: ::tcflag_t = 0o002000; -pub const CLOCAL: ::tcflag_t = 0o004000; -pub const CRTSXOFF: ::tcflag_t = 0o10000000000; -pub const CRTSCTS: ::tcflag_t = 0o20000000000; -pub const ISIG: ::tcflag_t = 0o000001; -pub const ICANON: ::tcflag_t = 0o000002; -pub const IEXTEN: ::tcflag_t = 0o100000; -pub const TOSTOP: ::tcflag_t = 0o000400; -pub const FLUSHO: ::tcflag_t = 0o020000; -pub const PENDIN: ::tcflag_t = 0o040000; -pub const NOFLSH: ::tcflag_t = 0o000200; -pub const VINTR: usize = 0; -pub const VQUIT: usize = 1; -pub const VERASE: usize = 2; -pub const VKILL: usize = 3; -pub const VEOF: usize = 4; -pub const VEOL: usize = 5; -pub const VEOL2: usize = 6; -pub const VMIN: usize = 4; -pub const VTIME: usize = 5; -pub const VSWTCH: usize = 7; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VSUSP: usize = 10; -pub const VDSUSP: usize = 11; -pub const VREPRINT: usize = 12; -pub const VDISCARD: usize = 13; -pub const VWERASE: usize = 14; -pub const VLNEXT: usize = 15; -pub const VSTATUS: usize = 16; -pub const VERASE2: usize = 17; - -// -const STR: ::c_int = (b'S' as ::c_int) << 8; -pub const I_NREAD: ::c_int = STR | 0o1; -pub const I_PUSH: ::c_int = STR | 0o2; -pub const I_POP: ::c_int = STR | 0o3; -pub const I_LOOK: ::c_int = STR | 0o4; -pub const I_FLUSH: ::c_int = STR | 0o5; -pub const I_SRDOPT: ::c_int = STR | 0o6; -pub const I_GRDOPT: ::c_int = STR | 0o7; -pub const I_STR: ::c_int = STR | 0o10; -pub const I_SETSIG: ::c_int = STR | 0o11; -pub const I_GETSIG: ::c_int = STR | 0o12; -pub const I_FIND: ::c_int = STR | 0o13; -pub const I_LINK: ::c_int = STR | 0o14; -pub const I_UNLINK: ::c_int = STR | 0o15; -pub const I_PEEK: ::c_int = STR | 0o17; -pub const I_FDINSERT: ::c_int = STR | 0o20; -pub const I_SENDFD: ::c_int = STR | 0o21; -pub const I_RECVFD: ::c_int = STR | 0o16; -pub const I_SWROPT: ::c_int = STR | 0o23; -pub const I_GWROPT: ::c_int = STR | 0o24; -pub const I_LIST: ::c_int = STR | 0o25; -pub const I_PLINK: ::c_int = STR | 0o26; -pub const I_PUNLINK: ::c_int = STR | 0o27; -pub const I_ANCHOR: ::c_int = STR | 0o30; -pub const I_FLUSHBAND: ::c_int = STR | 0o34; -pub const I_CKBAND: ::c_int = STR | 0o35; -pub const I_GETBAND: ::c_int = STR | 0o36; -pub const I_ATMARK: ::c_int = STR | 0o37; -pub const I_SETCLTIME: ::c_int = STR | 0o40; -pub const I_GETCLTIME: ::c_int = STR | 0o41; -pub const I_CANPUT: ::c_int = STR | 0o42; -pub const I_SERROPT: ::c_int = STR | 0o43; -pub const I_GERROPT: ::c_int = STR | 0o44; -pub const I_ESETSIG: ::c_int = STR | 0o45; -pub const I_EGETSIG: ::c_int = STR | 0o46; -pub const __I_PUSH_NOCTTY: ::c_int = STR | 0o47; - -// 3SOCKET flags -pub const SOCK_CLOEXEC: ::c_int = 0x080000; -pub const SOCK_NONBLOCK: ::c_int = 0x100000; -pub const SOCK_NDELAY: ::c_int = 0x200000; - -// -pub const SCALE_KG: ::c_int = 1 << 6; -pub const SCALE_KF: ::c_int = 1 << 16; -pub const SCALE_KH: ::c_int = 1 << 2; -pub const MAXTC: ::c_int = 1 << 6; -pub const SCALE_PHASE: ::c_int = 1 << 22; -pub const SCALE_USEC: ::c_int = 1 << 16; -pub const SCALE_UPDATE: ::c_int = SCALE_KG * MAXTC; -pub const FINEUSEC: ::c_int = 1 << 22; -pub const MAXPHASE: ::c_int = 512000; -pub const MAXFREQ: ::c_int = 512 * SCALE_USEC; -pub const MAXTIME: ::c_int = 200 << PPS_AVG; -pub const MINSEC: ::c_int = 16; -pub const MAXSEC: ::c_int = 1200; -pub const PPS_AVG: ::c_int = 2; -pub const PPS_SHIFT: ::c_int = 2; -pub const PPS_SHIFTMAX: ::c_int = 8; -pub const PPS_VALID: ::c_int = 120; -pub const MAXGLITCH: ::c_int = 30; -pub const MOD_OFFSET: u32 = 0x0001; -pub const MOD_FREQUENCY: u32 = 0x0002; -pub const MOD_MAXERROR: u32 = 0x0004; -pub const MOD_ESTERROR: u32 = 0x0008; -pub const MOD_STATUS: u32 = 0x0010; -pub const MOD_TIMECONST: u32 = 0x0020; -pub const MOD_CLKB: u32 = 0x4000; -pub const MOD_CLKA: u32 = 0x8000; -pub const STA_PLL: u32 = 0x0001; -pub const STA_PPSFREQ: i32 = 0x0002; -pub const STA_PPSTIME: i32 = 0x0004; -pub const STA_FLL: i32 = 0x0008; -pub const STA_INS: i32 = 0x0010; -pub const STA_DEL: i32 = 0x0020; -pub const STA_UNSYNC: i32 = 0x0040; -pub const STA_FREQHOLD: i32 = 0x0080; -pub const STA_PPSSIGNAL: i32 = 0x0100; -pub const STA_PPSJITTER: i32 = 0x0200; -pub const STA_PPSWANDER: i32 = 0x0400; -pub const STA_PPSERROR: i32 = 0x0800; -pub const STA_CLOCKERR: i32 = 0x1000; -pub const STA_RONLY: i32 = - STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR | STA_CLOCKERR; -pub const TIME_OK: i32 = 0; -pub const TIME_INS: i32 = 1; -pub const TIME_DEL: i32 = 2; -pub const TIME_OOP: i32 = 3; -pub const TIME_WAIT: i32 = 4; -pub const TIME_ERROR: i32 = 5; - -pub const PRIO_PROCESS: ::c_int = 0; -pub const PRIO_PGRP: ::c_int = 1; -pub const PRIO_USER: ::c_int = 2; - -pub const SCHED_OTHER: ::c_int = 0; -pub const SCHED_FIFO: ::c_int = 1; -pub const SCHED_RR: ::c_int = 2; -pub const SCHED_SYS: ::c_int = 3; -pub const SCHED_IA: ::c_int = 4; -pub const SCHED_FSS: ::c_int = 5; -pub const SCHED_FX: ::c_int = 6; - -// sys/priv.h -pub const PRIV_DEBUG: ::c_uint = 0x0001; -pub const PRIV_AWARE: ::c_uint = 0x0002; -pub const PRIV_AWARE_INHERIT: ::c_uint = 0x0004; -pub const __PROC_PROTECT: ::c_uint = 0x0008; -pub const NET_MAC_AWARE: ::c_uint = 0x0010; -pub const NET_MAC_AWARE_INHERIT: ::c_uint = 0x0020; -pub const PRIV_AWARE_RESET: ::c_uint = 0x0040; -pub const PRIV_XPOLICY: ::c_uint = 0x0080; -pub const PRIV_PFEXEC: ::c_uint = 0x0100; -pub const PRIV_USER: ::c_uint = PRIV_DEBUG - | NET_MAC_AWARE - | NET_MAC_AWARE_INHERIT - | PRIV_XPOLICY - | PRIV_AWARE_RESET - | PRIV_PFEXEC; - -// sys/systeminfo.h -pub const SI_SYSNAME: ::c_int = 1; -pub const SI_HOSTNAME: ::c_int = 2; -pub const SI_RELEASE: ::c_int = 3; -pub const SI_VERSION: ::c_int = 4; -pub const SI_MACHINE: ::c_int = 5; -pub const SI_ARCHITECTURE: ::c_int = 6; -pub const SI_HW_SERIAL: ::c_int = 7; -pub const SI_HW_PROVIDER: ::c_int = 8; -pub const SI_SET_HOSTNAME: ::c_int = 258; -pub const SI_SET_SRPC_DOMAIN: ::c_int = 265; -pub const SI_PLATFORM: ::c_int = 513; -pub const SI_ISALIST: ::c_int = 514; -pub const SI_DHCP_CACHE: ::c_int = 515; -pub const SI_ARCHITECTURE_32: ::c_int = 516; -pub const SI_ARCHITECTURE_64: ::c_int = 517; -pub const SI_ARCHITECTURE_K: ::c_int = 518; -pub const SI_ARCHITECTURE_NATIVE: ::c_int = 519; - -// sys/lgrp_user.h -pub const LGRP_COOKIE_NONE: ::lgrp_cookie_t = 0; -pub const LGRP_AFF_NONE: ::lgrp_affinity_t = 0x0; -pub const LGRP_AFF_WEAK: ::lgrp_affinity_t = 0x10; -pub const LGRP_AFF_STRONG: ::lgrp_affinity_t = 0x100; -pub const LGRP_RSRC_COUNT: ::lgrp_rsrc_t = 2; -pub const LGRP_RSRC_CPU: ::lgrp_rsrc_t = 0; -pub const LGRP_RSRC_MEM: ::lgrp_rsrc_t = 1; -pub const LGRP_CONTENT_ALL: ::lgrp_content_t = 0; -pub const LGRP_CONTENT_HIERARCHY: ::lgrp_content_t = LGRP_CONTENT_ALL; -pub const LGRP_CONTENT_DIRECT: ::lgrp_content_t = 1; -pub const LGRP_LAT_CPU_TO_MEM: ::lgrp_lat_between_t = 0; -pub const LGRP_MEM_SZ_FREE: ::lgrp_mem_size_flag_t = 0; -pub const LGRP_MEM_SZ_INSTALLED: ::lgrp_mem_size_flag_t = 1; -pub const LGRP_VIEW_CALLER: ::lgrp_view_t = 0; -pub const LGRP_VIEW_OS: ::lgrp_view_t = 1; - -// sys/processor.h - -pub const P_OFFLINE: ::c_int = 0x001; -pub const P_ONLINE: ::c_int = 0x002; -pub const P_STATUS: ::c_int = 0x003; -pub const P_FAULTED: ::c_int = 0x004; -pub const P_POWEROFF: ::c_int = 0x005; -pub const P_NOINTR: ::c_int = 0x006; -pub const P_SPARE: ::c_int = 0x007; -pub const P_DISABLED: ::c_int = 0x008; -pub const P_FORCED: ::c_int = 0x10000000; -pub const PI_TYPELEN: ::c_int = 16; -pub const PI_FPUTYPE: ::c_int = 32; - -// sys/auxv.h -pub const AT_SUN_HWCAP: ::c_uint = 2009; -pub const AT_SUN_HWCAP2: ::c_uint = 2023; -pub const AT_SUN_FPTYPE: ::c_uint = 2027; - -// As per sys/socket.h, header alignment must be 8 bytes on SPARC -// and 4 bytes everywhere else: -#[cfg(target_arch = "sparc64")] -const _CMSG_HDR_ALIGNMENT: usize = 8; -#[cfg(not(target_arch = "sparc64"))] -const _CMSG_HDR_ALIGNMENT: usize = 4; - -const _CMSG_DATA_ALIGNMENT: usize = ::mem::size_of::<::c_int>(); - -const NEWDEV: ::c_int = 1; - -const_fn! { - {const} fn _CMSG_HDR_ALIGN(p: usize) -> usize { - (p + _CMSG_HDR_ALIGNMENT - 1) & !(_CMSG_HDR_ALIGNMENT - 1) - } - - {const} fn _CMSG_DATA_ALIGN(p: usize) -> usize { - (p + _CMSG_DATA_ALIGNMENT - 1) & !(_CMSG_DATA_ALIGNMENT - 1) - } -} - -f! { - pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { - _CMSG_DATA_ALIGN(cmsg.offset(1) as usize) as *mut ::c_uchar - } - - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - _CMSG_DATA_ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length - } - - pub fn CMSG_FIRSTHDR(mhdr: *const ::msghdr) -> *mut ::cmsghdr { - if ((*mhdr).msg_controllen as usize) < ::mem::size_of::<::cmsghdr>() { - 0 as *mut ::cmsghdr - } else { - (*mhdr).msg_control as *mut ::cmsghdr - } - } - - pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) - -> *mut ::cmsghdr - { - if cmsg.is_null() { - return ::CMSG_FIRSTHDR(mhdr); - }; - let next = _CMSG_HDR_ALIGN(cmsg as usize + (*cmsg).cmsg_len as usize - + ::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; - if next > max { - 0 as *mut ::cmsghdr - } else { - _CMSG_HDR_ALIGN(cmsg as usize + (*cmsg).cmsg_len as usize) - as *mut ::cmsghdr - } - } - - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - _CMSG_HDR_ALIGN(::mem::size_of::<::cmsghdr>() as usize - + length as usize) as ::c_uint - } - - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - let fd = fd as usize; - (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); - return - } - - pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - let fd = fd as usize; - return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0 - } - - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { - let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; - let fd = fd as usize; - (*set).fds_bits[fd / bits] |= 1 << (fd % bits); - return - } - - pub fn FD_ZERO(set: *mut fd_set) -> () { - for slot in (*set).fds_bits.iter_mut() { - *slot = 0; - } - } -} - -safe_f! { - pub {const} fn WIFEXITED(status: ::c_int) -> bool { - (status & 0xFF) == 0 - } - - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { - (status >> 8) & 0xFF - } - - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { - status & 0x7F - } - - pub {const} fn WIFCONTINUED(status: ::c_int) -> bool { - (status & 0xffff) == 0xffff - } - - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { - (status & 0xff00) >> 8 - } - - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { - ((status & 0xff) > 0) && (status & 0xff00 == 0) - } - - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { - ((status & 0xff) == 0x7f) && ((status & 0xff00) != 0) - } - - pub {const} fn WCOREDUMP(status: ::c_int) -> bool { - (status & 0x80) != 0 - } - - pub {const} fn MR_GET_TYPE(flags: ::c_uint) -> ::c_uint { - flags & 0x0000ffff - } -} - -extern "C" { - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; - - pub fn abs(i: ::c_int) -> ::c_int; - pub fn acct(filename: *const ::c_char) -> ::c_int; - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn labs(i: ::c_long) -> ::c_long; - pub fn rand() -> ::c_int; - pub fn srand(seed: ::c_uint); - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; - pub fn getrandom(bbuf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t; - - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn settimeofday(tp: *const ::timeval, tz: *const ::c_void) -> ::c_int; - pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; - pub fn freeifaddrs(ifa: *mut ::ifaddrs); - - pub fn stack_getbounds(sp: *mut ::stack_t) -> ::c_int; - pub fn getgrouplist( - name: *const ::c_char, - basegid: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int, - ) -> ::c_int; - pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; - pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; - pub fn ioctl(fildes: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; - pub fn ___errno() -> *mut ::c_int; - pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_nanosleep( - clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - pub fn getnameinfo( - sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int, - ) -> ::c_int; - pub fn setpwent(); - pub fn endpwent(); - pub fn getpwent() -> *mut passwd; - pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn getprogname() -> *const ::c_char; - pub fn setprogname(name: *const ::c_char); - pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; - pub fn getpriority(which: ::c_int, who: ::c_int) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::c_int, prio: ::c_int) -> ::c_int; - - pub fn mknodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - dev: dev_t, - ) -> ::c_int; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn if_nameindex() -> *mut if_nameindex; - pub fn if_freenameindex(ptr: *mut if_nameindex); - pub fn pthread_create( - native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - pub fn pthread_attr_getstack( - attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t, - ) -> ::c_int; - pub fn pthread_condattr_getclock( - attr: *const pthread_condattr_t, - clock_id: *mut clockid_t, - ) -> ::c_int; - pub fn pthread_condattr_setclock( - attr: *mut pthread_condattr_t, - clock_id: ::clockid_t, - ) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; - pub fn pthread_mutex_timedlock( - lock: *mut pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - pub fn pthread_getname_np(tid: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn pthread_setname_np(tid: ::pthread_t, name: *const ::c_char) -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int) - -> ::c_int; - - #[cfg_attr(target_os = "illumos", link_name = "_glob_ext")] - pub fn glob( - pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t, - ) -> ::c_int; - - #[cfg_attr(target_os = "illumos", link_name = "_globfree_ext")] - pub fn globfree(pglob: *mut ::glob_t); - - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - - pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; - - pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; - - pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; - - pub fn shmget(key: key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int; - pub fn shm_unlink(name: *const ::c_char) -> ::c_int; - - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int; - - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - - pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - - pub fn recvfrom( - socket: ::c_int, - buf: *mut ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - ) -> ::ssize_t; - pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - pub fn futimesat(fd: ::c_int, path: *const ::c_char, times: *const ::timeval) -> ::c_int; - pub fn futimens(dirfd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - - #[cfg_attr(target_os = "illumos", link_name = "__xnet_bind")] - pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; - - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - - #[cfg_attr(target_os = "illumos", link_name = "__xnet_sendmsg")] - pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - #[cfg_attr(target_os = "illumos", link_name = "__xnet_recvmsg")] - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; - pub fn accept4( - fd: ::c_int, - address: *mut sockaddr, - address_len: *mut socklen_t, - flags: ::c_int, - ) -> ::c_int; - - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::c_int; - pub fn mq_receive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - ) -> ::ssize_t; - pub fn mq_timedreceive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::ssize_t; - pub fn mq_send( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - ) -> ::c_int; - pub fn mq_timedsend( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; - pub fn port_create() -> ::c_int; - pub fn port_associate( - port: ::c_int, - source: ::c_int, - object: ::uintptr_t, - events: ::c_int, - user: *mut ::c_void, - ) -> ::c_int; - pub fn port_dissociate(port: ::c_int, source: ::c_int, object: ::uintptr_t) -> ::c_int; - pub fn port_get(port: ::c_int, pe: *mut port_event, timeout: *mut ::timespec) -> ::c_int; - pub fn port_getn( - port: ::c_int, - pe_list: *mut port_event, - max: ::c_uint, - nget: *mut ::c_uint, - timeout: *mut ::timespec, - ) -> ::c_int; - pub fn port_send(port: ::c_int, events: ::c_int, user: *mut ::c_void) -> ::c_int; - pub fn port_sendn( - port_list: *mut ::c_int, - error_list: *mut ::c_int, - nent: ::c_uint, - events: ::c_int, - user: *mut ::c_void, - ) -> ::c_int; - #[cfg_attr( - any(target_os = "solaris", target_os = "illumos"), - link_name = "__posix_getgrgid_r" - )] - pub fn getgrgid_r( - gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; - pub fn sem_close(sem: *mut sem_t) -> ::c_int; - pub fn getdtablesize() -> ::c_int; - - // The epoll functions are actually only present on illumos. However, - // there are things using epoll on illumos (built using the - // x86_64-pc-solaris target) which would break until the illumos target is - // present in rustc. - pub fn epoll_pwait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - sigmask: *const ::sigset_t, - ) -> ::c_int; - - pub fn epoll_create(size: ::c_int) -> ::c_int; - pub fn epoll_create1(flags: ::c_int) -> ::c_int; - pub fn epoll_wait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - ) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event) - -> ::c_int; - - #[cfg_attr( - any(target_os = "solaris", target_os = "illumos"), - link_name = "__posix_getgrnam_r" - )] - pub fn getgrnam_r( - name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group, - ) -> ::c_int; - pub fn thr_self() -> ::thread_t; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; - pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; - pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn sched_getparam(pid: ::pid_t, param: *mut sched_param) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const sched_param) -> ::c_int; - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn sched_setscheduler( - pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param, - ) -> ::c_int; - pub fn sem_unlink(name: *const ::c_char) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - #[cfg_attr( - any(target_os = "solaris", target_os = "illumos"), - link_name = "__posix_getpwnam_r" - )] - pub fn getpwnam_r( - name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - #[cfg_attr( - any(target_os = "solaris", target_os = "illumos"), - link_name = "__posix_getpwuid_r" - )] - pub fn getpwuid_r( - uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd, - ) -> ::c_int; - #[cfg_attr( - any(target_os = "solaris", target_os = "illumos"), - link_name = "getpwent_r" - )] - fn native_getpwent_r(pwd: *mut passwd, buf: *mut ::c_char, buflen: ::c_int) -> *mut passwd; - #[cfg_attr( - any(target_os = "solaris", target_os = "illumos"), - link_name = "getgrent_r" - )] - fn native_getgrent_r(grp: *mut ::group, buf: *mut ::c_char, buflen: ::c_int) -> *mut ::group; - #[cfg_attr( - any(target_os = "solaris", target_os = "illumos"), - link_name = "__posix_sigwait" - )] - pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - pub fn setgrent(); - pub fn endgrent(); - pub fn getgrent() -> *mut ::group; - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - - pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; - pub fn uname(buf: *mut ::utsname) -> ::c_int; - pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - - pub fn makeutx(ux: *const utmpx) -> *mut utmpx; - pub fn modutx(ux: *const utmpx) -> *mut utmpx; - pub fn updwtmpx(file: *const ::c_char, ut: *const utmpx) -> ::c_int; - pub fn utmpxname(file: *const ::c_char) -> ::c_int; - pub fn getutxent() -> *mut utmpx; - pub fn getutxid(ut: *const utmpx) -> *mut utmpx; - pub fn getutxline(ut: *const utmpx) -> *mut utmpx; - pub fn pututxline(ut: *const utmpx) -> *mut utmpx; - pub fn setutxent(); - pub fn endutxent(); - - pub fn endutent(); - pub fn getutent() -> *mut utmp; - pub fn getutid(u: *const utmp) -> *mut utmp; - pub fn getutline(u: *const utmp) -> *mut utmp; - pub fn pututline(u: *const utmp) -> *mut utmp; - pub fn setutent(); - pub fn utmpname(file: *const ::c_char) -> ::c_int; - - pub fn getutmp(ux: *const utmpx, u: *mut utmp); - pub fn getutmpx(u: *const utmp, ux: *mut utmpx); - pub fn updwtmp(file: *const ::c_char, u: *mut utmp); - - pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; - pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; - - pub fn timer_create(clock_id: clockid_t, evp: *mut sigevent, timerid: *mut timer_t) -> ::c_int; - pub fn timer_delete(timerid: timer_t) -> ::c_int; - pub fn timer_getoverrun(timerid: timer_t) -> ::c_int; - pub fn timer_gettime(timerid: timer_t, value: *mut itimerspec) -> ::c_int; - pub fn timer_settime( - timerid: timer_t, - flags: ::c_int, - value: *const itimerspec, - ovalue: *mut itimerspec, - ) -> ::c_int; - - pub fn ucred_get(pid: ::pid_t) -> *mut ucred_t; - pub fn getpeerucred(fd: ::c_int, ucred: *mut *mut ucred_t) -> ::c_int; - - pub fn ucred_free(ucred: *mut ucred_t); - - pub fn ucred_geteuid(ucred: *const ucred_t) -> ::uid_t; - pub fn ucred_getruid(ucred: *const ucred_t) -> ::uid_t; - pub fn ucred_getsuid(ucred: *const ucred_t) -> ::uid_t; - pub fn ucred_getegid(ucred: *const ucred_t) -> ::gid_t; - pub fn ucred_getrgid(ucred: *const ucred_t) -> ::gid_t; - pub fn ucred_getsgid(ucred: *const ucred_t) -> ::gid_t; - pub fn ucred_getgroups(ucred: *const ucred_t, groups: *mut *const ::gid_t) -> ::c_int; - pub fn ucred_getpid(ucred: *const ucred_t) -> ::pid_t; - pub fn ucred_getprojid(ucred: *const ucred_t) -> projid_t; - pub fn ucred_getzoneid(ucred: *const ucred_t) -> zoneid_t; - pub fn ucred_getpflags(ucred: *const ucred_t, flags: ::c_uint) -> ::c_uint; - - pub fn ucred_size() -> ::size_t; - - pub fn pset_create(newpset: *mut ::psetid_t) -> ::c_int; - pub fn pset_destroy(pset: ::psetid_t) -> ::c_int; - pub fn pset_assign(pset: ::psetid_t, cpu: ::processorid_t, opset: *mut psetid_t) -> ::c_int; - pub fn pset_info( - pset: ::psetid_t, - tpe: *mut ::c_int, - numcpus: *mut ::c_uint, - cpulist: *mut processorid_t, - ) -> ::c_int; - pub fn pset_bind( - pset: ::psetid_t, - idtype: ::idtype_t, - id: ::id_t, - opset: *mut psetid_t, - ) -> ::c_int; - pub fn pset_list(pset: *mut psetid_t, numpsets: *mut ::c_uint) -> ::c_int; - pub fn pset_setattr(pset: psetid_t, attr: ::c_uint) -> ::c_int; - pub fn pset_getattr(pset: psetid_t, attr: *mut ::c_uint) -> ::c_int; - pub fn processor_bind( - idtype: ::idtype_t, - id: ::id_t, - new_binding: ::processorid_t, - old_binding: *mut processorid_t, - ) -> ::c_int; - pub fn p_online(processorid: ::processorid_t, flag: ::c_int) -> ::c_int; - pub fn processor_info(processorid: ::processorid_t, infop: *mut processor_info_t) -> ::c_int; - - pub fn getexecname() -> *const ::c_char; - - pub fn gethostid() -> ::c_long; - - pub fn getpflags(flags: ::c_uint) -> ::c_uint; - pub fn setpflags(flags: ::c_uint, value: ::c_uint) -> ::c_int; - - pub fn sysinfo(command: ::c_int, buf: *mut ::c_char, count: ::c_long) -> ::c_int; - - pub fn faccessat(fd: ::c_int, path: *const ::c_char, amode: ::c_int, flag: ::c_int) -> ::c_int; - - // #include - #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] - pub fn dl_iterate_phdr( - callback: ::Option< - unsafe extern "C" fn( - info: *mut dl_phdr_info, - size: usize, - data: *mut ::c_void, - ) -> ::c_int, - >, - data: *mut ::c_void, - ) -> ::c_int; - pub fn getpagesize() -> ::c_int; - pub fn getpagesizes(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int; - pub fn mmapobj( - fd: ::c_int, - flags: ::c_uint, - storage: *mut mmapobj_result_t, - elements: *mut ::c_uint, - arg: *mut ::c_void, - ) -> ::c_int; - pub fn meminfo( - inaddr: *const u64, - addr_count: ::c_int, - info_req: *const ::c_uint, - info_count: ::c_int, - outdata: *mut u64, - validity: *mut ::c_uint, - ) -> ::c_int; - - pub fn strcasecmp_l(s1: *const ::c_char, s2: *const ::c_char, loc: ::locale_t) -> ::c_int; - pub fn strncasecmp_l( - s1: *const ::c_char, - s2: *const ::c_char, - n: ::size_t, - loc: ::locale_t, - ) -> ::c_int; - pub fn strsep(string: *mut *mut ::c_char, delim: *const ::c_char) -> *mut ::c_char; - - pub fn getisax(array: *mut u32, n: ::c_uint) -> ::c_uint; - - pub fn backtrace(buffer: *mut *mut ::c_void, size: ::c_int) -> ::c_int; - pub fn backtrace_symbols(buffer: *const *mut ::c_void, size: ::c_int) -> *mut *mut ::c_char; - pub fn backtrace_symbols_fd(buffer: *const *mut ::c_void, size: ::c_int, fd: ::c_int); - - pub fn getopt_long( - argc: ::c_int, - argv: *const *mut c_char, - optstring: *const c_char, - longopts: *const option, - longindex: *mut ::c_int, - ) -> ::c_int; - - pub fn sync(); - - fn __major(version: ::c_int, devnum: ::dev_t) -> ::major_t; - fn __minor(version: ::c_int, devnum: ::dev_t) -> ::minor_t; - fn __makedev(version: ::c_int, majdev: ::major_t, mindev: ::minor_t) -> ::dev_t; -} - -#[link(name = "sendfile")] -extern "C" { - pub fn sendfile(out_fd: ::c_int, in_fd: ::c_int, off: *mut ::off_t, len: ::size_t) - -> ::ssize_t; - pub fn sendfilev( - fildes: ::c_int, - vec: *const sendfilevec_t, - sfvcnt: ::c_int, - xferred: *mut ::size_t, - ) -> ::ssize_t; -} - -#[link(name = "lgrp")] -extern "C" { - pub fn lgrp_init(view: lgrp_view_t) -> lgrp_cookie_t; - pub fn lgrp_fini(cookie: lgrp_cookie_t) -> ::c_int; - pub fn lgrp_affinity_get( - idtype: ::idtype_t, - id: ::id_t, - lgrp: ::lgrp_id_t, - ) -> ::lgrp_affinity_t; - pub fn lgrp_affinity_set( - idtype: ::idtype_t, - id: ::id_t, - lgrp: ::lgrp_id_t, - aff: lgrp_affinity_t, - ) -> ::lgrp_affinity_t; - pub fn lgrp_cpus( - cookie: ::lgrp_cookie_t, - lgrp: ::lgrp_id_t, - cpuids: *mut ::processorid_t, - count: ::c_uint, - content: ::lgrp_content_t, - ) -> ::c_int; - pub fn lgrp_mem_size( - cookie: ::lgrp_cookie_t, - lgrp: ::lgrp_id_t, - tpe: ::lgrp_mem_size_flag_t, - content: ::lgrp_content_t, - ) -> ::lgrp_mem_size_t; - pub fn lgrp_nlgrps(cookie: ::lgrp_cookie_t) -> ::c_int; - pub fn lgrp_view(cookie: ::lgrp_cookie_t) -> ::lgrp_view_t; - pub fn lgrp_home(idtype: ::idtype_t, id: ::id_t) -> ::lgrp_id_t; - pub fn lgrp_version(version: ::c_int) -> ::c_int; - pub fn lgrp_resources( - cookie: ::lgrp_cookie_t, - lgrp: ::lgrp_id_t, - lgrps: *mut ::lgrp_id_t, - count: ::c_uint, - tpe: ::lgrp_rsrc_t, - ) -> ::c_int; - pub fn lgrp_root(cookie: ::lgrp_cookie_t) -> ::lgrp_id_t; -} - -pub unsafe fn major(device: ::dev_t) -> ::major_t { - __major(NEWDEV, device) -} - -pub unsafe fn minor(device: ::dev_t) -> ::minor_t { - __minor(NEWDEV, device) -} - -pub unsafe fn makedev(maj: ::major_t, min: ::minor_t) -> ::dev_t { - __makedev(NEWDEV, maj, min) -} - -mod compat; -pub use self::compat::*; - -cfg_if! { - if #[cfg(target_os = "illumos")] { - mod illumos; - pub use self::illumos::*; - } else if #[cfg(target_os = "solaris")] { - mod solaris; - pub use self::solaris::*; - } else { - // Unknown target_os - } -} - -cfg_if! { - if #[cfg(target_arch = "x86_64")] { - mod x86_64; - mod x86_common; - pub use self::x86_64::*; - pub use self::x86_common::*; - } else if #[cfg(target_arch = "x86")] { - mod x86; - mod x86_common; - pub use self::x86::*; - pub use self::x86_common::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/solaris.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/solaris.rs deleted file mode 100644 index 80bad281e..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/solarish/solaris.rs +++ /dev/null @@ -1,101 +0,0 @@ -pub type door_attr_t = ::c_uint; -pub type door_id_t = ::c_ulonglong; - -s! { - pub struct shmid_ds { - pub shm_perm: ::ipc_perm, - pub shm_segsz: ::size_t, - pub shm_flags: ::uintptr_t, - pub shm_lkcnt: ::c_ushort, - pub shm_lpid: ::pid_t, - pub shm_cpid: ::pid_t, - pub shm_nattch: ::shmatt_t, - pub shm_cnattch: ::c_ulong, - pub shm_atime: ::time_t, - pub shm_dtime: ::time_t, - pub shm_ctime: ::time_t, - pub shm_amp: *mut ::c_void, - pub shm_gransize: u64, - pub shm_allocated: u64, - pub shm_pad4: [i64; 1], - } - - pub struct door_desc_t__d_data__d_desc { - pub d_descriptor: ::c_int, - pub d_id: ::door_id_t - } -} - -s_no_extra_traits! { - #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] - pub union door_desc_t__d_data { - pub d_desc: door_desc_t__d_data__d_desc, - d_resv: [::c_int; 5], /* Check out /usr/include/sys/door.h */ - } - - #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] - pub struct door_desc_t { - pub d_attributes: door_attr_t, - pub d_data: door_desc_t__d_data, - } - - #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))] - pub struct door_arg_t { - pub data_ptr: *const ::c_char, - pub data_size: ::size_t, - pub desc_ptr: *const door_desc_t, - pub dec_num: ::c_uint, - pub rbuf: *const ::c_char, - pub rsize: ::size_t, - } -} - -pub const PORT_SOURCE_POSTWAIT: ::c_int = 8; -pub const PORT_SOURCE_SIGNAL: ::c_int = 9; - -pub const AF_LOCAL: ::c_int = 0; -pub const AF_FILE: ::c_int = 0; - -pub const TCP_KEEPIDLE: ::c_int = 0x1d; -pub const TCP_KEEPINTVL: ::c_int = 0x1e; -pub const TCP_KEEPCNT: ::c_int = 0x1f; - -pub const F_DUPFD_CLOEXEC: ::c_int = 47; -pub const F_DUPFD_CLOFORK: ::c_int = 49; -pub const F_DUP2FD_CLOEXEC: ::c_int = 48; -pub const F_DUP2FD_CLOFORK: ::c_int = 50; - -extern "C" { - pub fn fexecve( - fd: ::c_int, - argv: *const *const ::c_char, - envp: *const *const ::c_char, - ) -> ::c_int; - - pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int; - - pub fn door_call(d: ::c_int, params: *const door_arg_t) -> ::c_int; - pub fn door_return( - data_ptr: *const ::c_char, - data_size: ::size_t, - desc_ptr: *const door_desc_t, - num_desc: ::c_uint, - ); - pub fn door_create( - server_procedure: extern "C" fn( - cookie: *const ::c_void, - argp: *const ::c_char, - arg_size: ::size_t, - dp: *const door_desc_t, - n_desc: ::c_uint, - ), - cookie: *const ::c_void, - attributes: door_attr_t, - ) -> ::c_int; - - pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; - - pub fn pthread_getattr_np(thread: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int; - - pub fn euidaccess(path: *const ::c_char, amode: ::c_int) -> ::c_int; -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86.rs deleted file mode 100644 index 23f52ad3c..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86.rs +++ /dev/null @@ -1,29 +0,0 @@ -pub type Elf32_Addr = ::c_ulong; -pub type Elf32_Half = ::c_ushort; -pub type Elf32_Off = ::c_ulong; -pub type Elf32_Sword = ::c_long; -pub type Elf32_Word = ::c_ulong; -pub type Elf32_Lword = ::c_ulonglong; -pub type Elf32_Phdr = __c_anonymous_Elf32_Phdr; - -s! { - pub struct __c_anonymous_Elf32_Phdr { - pub p_type: ::Elf32_Word, - pub p_offset: ::Elf32_Off, - pub p_vaddr: ::Elf32_Addr, - pub p_paddr: ::Elf32_Addr, - pub p_filesz: ::Elf32_Word, - pub p_memsz: ::Elf32_Word, - pub p_flags: ::Elf32_Word, - pub p_align: ::Elf32_Word, - } - - pub struct dl_phdr_info { - pub dlpi_addr: ::Elf32_Addr, - pub dlpi_name: *const ::c_char, - pub dlpi_phdr: *const ::Elf32_Phdr, - pub dlpi_phnum: ::Elf32_Half, - pub dlpi_adds: ::c_ulonglong, - pub dlpi_subs: ::c_ulonglong, - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_64.rs deleted file mode 100644 index bca552f37..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_64.rs +++ /dev/null @@ -1,190 +0,0 @@ -pub type greg_t = ::c_long; - -pub type Elf64_Addr = ::c_ulong; -pub type Elf64_Half = ::c_ushort; -pub type Elf64_Off = ::c_ulong; -pub type Elf64_Sword = ::c_int; -pub type Elf64_Sxword = ::c_long; -pub type Elf64_Word = ::c_uint; -pub type Elf64_Xword = ::c_ulong; -pub type Elf64_Lword = ::c_ulong; -pub type Elf64_Phdr = __c_anonymous_Elf64_Phdr; - -s! { - pub struct __c_anonymous_fpchip_state { - pub cw: u16, - pub sw: u16, - pub fctw: u8, - pub __fx_rsvd: u8, - pub fop: u16, - pub rip: u64, - pub rdp: u64, - pub mxcsr: u32, - pub mxcsr_mask: u32, - pub st: [::upad128_t; 8], - pub xmm: [::upad128_t; 16], - pub __fx_ign: [::upad128_t; 6], - pub status: u32, - pub xstatus: u32, - } - - pub struct __c_anonymous_Elf64_Phdr { - pub p_type: ::Elf64_Word, - pub p_flags: ::Elf64_Word, - pub p_offset: ::Elf64_Off, - pub p_vaddr: ::Elf64_Addr, - pub p_paddr: ::Elf64_Addr, - pub p_filesz: ::Elf64_Xword, - pub p_memsz: ::Elf64_Xword, - pub p_align: ::Elf64_Xword, - } - - pub struct dl_phdr_info { - pub dlpi_addr: ::Elf64_Addr, - pub dlpi_name: *const ::c_char, - pub dlpi_phdr: *const ::Elf64_Phdr, - pub dlpi_phnum: ::Elf64_Half, - pub dlpi_adds: ::c_ulonglong, - pub dlpi_subs: ::c_ulonglong, - } -} - -s_no_extra_traits! { - #[cfg(libc_union)] - pub union __c_anonymous_fp_reg_set { - pub fpchip_state: __c_anonymous_fpchip_state, - pub f_fpregs: [[u32; 13]; 10], - } - - pub struct fpregset_t { - pub fp_reg_set: __c_anonymous_fp_reg_set, - } - - pub struct mcontext_t { - pub gregs: [::greg_t; 28], - pub fpregs: fpregset_t, - } - - pub struct ucontext_t { - pub uc_flags: ::c_ulong, - pub uc_link: *mut ucontext_t, - pub uc_sigmask: ::sigset_t, - pub uc_stack: ::stack_t, - pub uc_mcontext: mcontext_t, - pub uc_filler: [::c_long; 5], - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - #[cfg(libc_union)] - impl PartialEq for __c_anonymous_fp_reg_set { - fn eq(&self, other: &__c_anonymous_fp_reg_set) -> bool { - unsafe { - self.fpchip_state == other.fpchip_state || - self. - f_fpregs. - iter(). - zip(other.f_fpregs.iter()). - all(|(a, b)| a == b) - } - } - } - #[cfg(libc_union)] - impl Eq for __c_anonymous_fp_reg_set {} - #[cfg(libc_union)] - impl ::fmt::Debug for __c_anonymous_fp_reg_set { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - unsafe { - f.debug_struct("__c_anonymous_fp_reg_set") - .field("fpchip_state", &{self.fpchip_state}) - .field("f_fpregs", &{self.f_fpregs}) - .finish() - } - } - } - impl PartialEq for fpregset_t { - fn eq(&self, other: &fpregset_t) -> bool { - self.fp_reg_set == other.fp_reg_set - } - } - impl Eq for fpregset_t {} - impl ::fmt::Debug for fpregset_t { - fn fmt(&self, f:&mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("fpregset_t") - .field("fp_reg_set", &self.fp_reg_set) - .finish() - } - } - impl PartialEq for mcontext_t { - fn eq(&self, other: &mcontext_t) -> bool { - self.gregs == other.gregs && - self.fpregs == other.fpregs - } - } - impl Eq for mcontext_t {} - impl ::fmt::Debug for mcontext_t { - fn fmt(&self, f:&mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("mcontext_t") - .field("gregs", &self.gregs) - .field("fpregs", &self.fpregs) - .finish() - } - } - impl PartialEq for ucontext_t { - fn eq(&self, other: &ucontext_t) -> bool { - self.uc_flags == other.uc_flags - && self.uc_link == other.uc_link - && self.uc_sigmask == other.uc_sigmask - && self.uc_stack == other.uc_stack - && self.uc_mcontext == other.uc_mcontext - && self.uc_filler == other.uc_filler - } - } - impl Eq for ucontext_t {} - impl ::fmt::Debug for ucontext_t { - fn fmt(&self, f:&mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("ucontext_t") - .field("uc_flags", &self.uc_flags) - .field("uc_link", &self.uc_link) - .field("uc_sigmask", &self.uc_sigmask) - .field("uc_stack", &self.uc_stack) - .field("uc_mcontext", &self.uc_mcontext) - .field("uc_filler", &self.uc_filler) - .finish() - } - } - - } -} - -// sys/regset.h - -pub const REG_GSBASE: ::c_int = 27; -pub const REG_FSBASE: ::c_int = 26; -pub const REG_DS: ::c_int = 25; -pub const REG_ES: ::c_int = 24; -pub const REG_GS: ::c_int = 23; -pub const REG_FS: ::c_int = 22; -pub const REG_SS: ::c_int = 21; -pub const REG_RSP: ::c_int = 20; -pub const REG_RFL: ::c_int = 19; -pub const REG_CS: ::c_int = 18; -pub const REG_RIP: ::c_int = 17; -pub const REG_ERR: ::c_int = 16; -pub const REG_TRAPNO: ::c_int = 15; -pub const REG_RAX: ::c_int = 14; -pub const REG_RCX: ::c_int = 13; -pub const REG_RDX: ::c_int = 12; -pub const REG_RBX: ::c_int = 11; -pub const REG_RBP: ::c_int = 10; -pub const REG_RSI: ::c_int = 9; -pub const REG_RDI: ::c_int = 8; -pub const REG_R8: ::c_int = 7; -pub const REG_R9: ::c_int = 6; -pub const REG_R10: ::c_int = 5; -pub const REG_R11: ::c_int = 4; -pub const REG_R12: ::c_int = 3; -pub const REG_R13: ::c_int = 2; -pub const REG_R14: ::c_int = 1; -pub const REG_R15: ::c_int = 0; diff --git a/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_common.rs b/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_common.rs deleted file mode 100644 index 515f23490..000000000 --- a/src/rust/vendor/libc-0.2.146/src/unix/solarish/x86_common.rs +++ /dev/null @@ -1,65 +0,0 @@ -// AT_SUN_HWCAP -pub const AV_386_FPU: u32 = 0x00001; -pub const AV_386_TSC: u32 = 0x00002; -pub const AV_386_CX8: u32 = 0x00004; -pub const AV_386_SEP: u32 = 0x00008; -pub const AV_386_AMD_SYSC: u32 = 0x00010; -pub const AV_386_CMOV: u32 = 0x00020; -pub const AV_386_MMX: u32 = 0x00040; -pub const AV_386_AMD_MMX: u32 = 0x00080; -pub const AV_386_AMD_3DNow: u32 = 0x00100; -pub const AV_386_AMD_3DNowx: u32 = 0x00200; -pub const AV_386_FXSR: u32 = 0x00400; -pub const AV_386_SSE: u32 = 0x00800; -pub const AV_386_SSE2: u32 = 0x01000; -pub const AV_386_CX16: u32 = 0x10000; -pub const AV_386_AHF: u32 = 0x20000; -pub const AV_386_TSCP: u32 = 0x40000; -pub const AV_386_AMD_SSE4A: u32 = 0x80000; -pub const AV_386_POPCNT: u32 = 0x100000; -pub const AV_386_AMD_LZCNT: u32 = 0x200000; -pub const AV_386_SSSE3: u32 = 0x400000; -pub const AV_386_SSE4_1: u32 = 0x800000; -pub const AV_386_SSE4_2: u32 = 0x1000000; -pub const AV_386_MOVBE: u32 = 0x2000000; -pub const AV_386_AES: u32 = 0x4000000; -pub const AV_386_PCLMULQDQ: u32 = 0x8000000; -pub const AV_386_XSAVE: u32 = 0x10000000; -pub const AV_386_AVX: u32 = 0x20000000; -pub const AV_386_VMX: u32 = 0x40000000; -pub const AV_386_AMD_SVM: u32 = 0x80000000; -// AT_SUN_HWCAP2 -pub const AV_386_2_F16C: u32 = 0x00000001; -pub const AV_386_2_RDRAND: u32 = 0x00000002; -pub const AV_386_2_BMI1: u32 = 0x00000004; -pub const AV_386_2_BMI2: u32 = 0x00000008; -pub const AV_386_2_FMA: u32 = 0x00000010; -pub const AV_386_2_AVX2: u32 = 0x00000020; -pub const AV_386_2_ADX: u32 = 0x00000040; -pub const AV_386_2_RDSEED: u32 = 0x00000080; -pub const AV_386_2_AVX512F: u32 = 0x00000100; -pub const AV_386_2_AVX512DQ: u32 = 0x00000200; -pub const AV_386_2_AVX512IFMA: u32 = 0x00000400; -pub const AV_386_2_AVX512PF: u32 = 0x00000800; -pub const AV_386_2_AVX512ER: u32 = 0x00001000; -pub const AV_386_2_AVX512CD: u32 = 0x00002000; -pub const AV_386_2_AVX512BW: u32 = 0x00004000; -pub const AV_386_2_AVX512VL: u32 = 0x00008000; -pub const AV_386_2_AVX512VBMI: u32 = 0x00010000; -pub const AV_386_2_AVX512VPOPCDQ: u32 = 0x00020000; -pub const AV_386_2_AVX512_4NNIW: u32 = 0x00040000; -pub const AV_386_2_AVX512_4FMAPS: u32 = 0x00080000; -pub const AV_386_2_SHA: u32 = 0x00100000; -pub const AV_386_2_FSGSBASE: u32 = 0x00200000; -pub const AV_386_2_CLFLUSHOPT: u32 = 0x00400000; -pub const AV_386_2_CLWB: u32 = 0x00800000; -pub const AV_386_2_MONITORX: u32 = 0x01000000; -pub const AV_386_2_CLZERO: u32 = 0x02000000; -pub const AV_386_2_AVX512_VNNI: u32 = 0x04000000; -pub const AV_386_2_VPCLMULQDQ: u32 = 0x08000000; -pub const AV_386_2_VAES: u32 = 0x10000000; -// AT_SUN_FPTYPE -pub const AT_386_FPINFO_NONE: u32 = 0; -pub const AT_386_FPINFO_FXSAVE: u32 = 1; -pub const AT_386_FPINFO_XSAVE: u32 = 2; -pub const AT_386_FPINFO_XSAVE_AMD: u32 = 3; diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/aarch64.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/aarch64.rs deleted file mode 100644 index 4032488b6..000000000 --- a/src/rust/vendor/libc-0.2.146/src/vxworks/aarch64.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = u32; -pub type c_long = i64; -pub type c_ulong = u64; diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/arm.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/arm.rs deleted file mode 100644 index 55240068a..000000000 --- a/src/rust/vendor/libc-0.2.146/src/vxworks/arm.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = u32; -pub type c_long = i32; -pub type c_ulong = u32; diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/mod.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/mod.rs deleted file mode 100644 index c337a8279..000000000 --- a/src/rust/vendor/libc-0.2.146/src/vxworks/mod.rs +++ /dev/null @@ -1,1930 +0,0 @@ -//! Interface to VxWorks C library - -use core::mem::size_of; -use core::ptr::null_mut; - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum DIR {} -impl ::Copy for DIR {} -impl ::Clone for DIR { - fn clone(&self) -> DIR { - *self - } -} - -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; -pub type intmax_t = i64; -pub type uintmax_t = u64; - -pub type uintptr_t = usize; -pub type intptr_t = isize; -pub type ptrdiff_t = isize; -pub type size_t = ::uintptr_t; -pub type ssize_t = ::intptr_t; - -pub type pid_t = ::c_int; -pub type in_addr_t = u32; -pub type sighandler_t = ::size_t; -pub type cpuset_t = u32; - -pub type blkcnt_t = ::c_long; -pub type blksize_t = ::c_long; -pub type ino_t = ::c_ulong; - -pub type rlim_t = ::c_ulong; -pub type suseconds_t = ::c_long; -pub type time_t = ::c_long; - -pub type errno_t = ::c_int; - -pub type useconds_t = ::c_ulong; - -pub type socklen_t = ::c_uint; - -pub type pthread_t = ::c_ulong; - -pub type clockid_t = ::c_int; - -//defined for the structs -pub type dev_t = ::c_ulong; -pub type mode_t = ::c_int; -pub type nlink_t = ::c_ulong; -pub type uid_t = ::c_ushort; -pub type gid_t = ::c_ushort; -pub type sigset_t = ::c_ulonglong; -pub type key_t = ::c_long; - -pub type nfds_t = ::c_uint; -pub type stat64 = ::stat; - -pub type pthread_key_t = ::c_ulong; - -// From b_off_t.h -pub type off_t = ::c_longlong; -pub type off64_t = off_t; - -// From b_BOOL.h -pub type BOOL = ::c_int; - -// From vxWind.h .. -pub type _Vx_OBJ_HANDLE = ::c_int; -pub type _Vx_TASK_ID = ::_Vx_OBJ_HANDLE; -pub type _Vx_MSG_Q_ID = ::_Vx_OBJ_HANDLE; -pub type _Vx_SEM_ID_KERNEL = ::_Vx_OBJ_HANDLE; -pub type _Vx_RTP_ID = ::_Vx_OBJ_HANDLE; -pub type _Vx_SD_ID = ::_Vx_OBJ_HANDLE; -pub type _Vx_CONDVAR_ID = ::_Vx_OBJ_HANDLE; -pub type _Vx_SEM_ID = *mut ::_Vx_semaphore; -pub type OBJ_HANDLE = ::_Vx_OBJ_HANDLE; -pub type TASK_ID = ::OBJ_HANDLE; -pub type MSG_Q_ID = ::OBJ_HANDLE; -pub type SEM_ID_KERNEL = ::OBJ_HANDLE; -pub type RTP_ID = ::OBJ_HANDLE; -pub type SD_ID = ::OBJ_HANDLE; -pub type CONDVAR_ID = ::OBJ_HANDLE; - -// From vxTypes.h -pub type _Vx_usr_arg_t = isize; -pub type _Vx_exit_code_t = isize; -pub type _Vx_ticks_t = ::c_uint; -pub type _Vx_ticks64_t = ::c_ulonglong; - -pub type sa_family_t = ::c_uchar; - -// mqueue.h -pub type mqd_t = ::c_int; - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum _Vx_semaphore {} -impl ::Copy for _Vx_semaphore {} -impl ::Clone for _Vx_semaphore { - fn clone(&self) -> _Vx_semaphore { - *self - } -} - -impl siginfo_t { - pub unsafe fn si_addr(&self) -> *mut ::c_void { - self.si_addr - } - - pub unsafe fn si_value(&self) -> ::sigval { - self.si_value - } - - pub unsafe fn si_pid(&self) -> ::pid_t { - self.si_pid - } - - pub unsafe fn si_uid(&self) -> ::uid_t { - self.si_uid - } - - pub unsafe fn si_status(&self) -> ::c_int { - self.si_status - } -} - -s! { - // b_pthread_condattr_t.h - pub struct pthread_condattr_t { - pub condAttrStatus: ::c_int, - pub condAttrPshared: ::c_int, - pub condAttrClockId: ::clockid_t, - } - - // b_pthread_cond_t.h - pub struct pthread_cond_t{ - pub condSemId: ::_Vx_SEM_ID, - pub condValid: ::c_int, - pub condInitted: ::c_int, - pub condRefCount: ::c_int, - pub condMutex: *mut ::pthread_mutex_t, - pub condAttr: ::pthread_condattr_t, - pub condSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX] - } - - // b_pthread_rwlockattr_t.h - pub struct pthread_rwlockattr_t { - pub rwlockAttrStatus: ::c_int, - pub rwlockAttrPshared: ::c_int, - pub rwlockAttrMaxReaders: ::c_uint, - pub rwlockAttrConformOpt: ::c_uint, - } - - // b_pthread_rwlock_t.h - pub struct pthread_rwlock_t { - pub rwlockSemId: :: _Vx_SEM_ID, - pub rwlockReadersRefCount: ::c_uint, - pub rwlockValid: ::c_int, - pub rwlockInitted: ::c_int, - pub rwlockAttr: ::pthread_rwlockattr_t, - pub rwlockSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX] - } - - // b_struct_timeval.h - pub struct timeval { - pub tv_sec: ::time_t, - pub tv_usec: ::suseconds_t, - } - - // socket.h - pub struct linger { - pub l_onoff: ::c_int, - pub l_linger: ::c_int, - } - - pub struct sockaddr { - pub sa_len : ::c_uchar, - pub sa_family : sa_family_t, - pub sa_data : [::c_char; 14], - } - - pub struct iovec { - pub iov_base: *mut ::c_void, - pub iov_len: ::size_t, - } - - pub struct msghdr { - pub msg_name: *mut c_void, - pub msg_namelen: socklen_t, - pub msg_iov: *mut iovec, - pub msg_iovlen: ::c_int, - pub msg_control: *mut c_void, - pub msg_controllen: socklen_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: socklen_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - // poll.h - pub struct pollfd { - pub fd : ::c_int, - pub events : ::c_short, - pub revents : ::c_short, - } - - // resource.h - pub struct rlimit { - pub rlim_cur : ::rlim_t, - pub rlim_max : ::rlim_t, - } - - // stat.h - pub struct stat { - pub st_dev : ::dev_t, - pub st_ino : ::ino_t, - pub st_mode : ::mode_t, - pub st_nlink : ::nlink_t, - pub st_uid : ::uid_t, - pub st_gid : ::gid_t, - pub st_rdev : ::dev_t, - pub st_size : ::off_t, - pub st_atime : ::time_t, - pub st_mtime : ::time_t, - pub st_ctime : ::time_t, - pub st_blksize : ::blksize_t, - pub st_blocks : ::blkcnt_t, - pub st_attrib : ::c_uchar, - pub st_reserved1 : ::c_int, - pub st_reserved2 : ::c_int, - pub st_reserved3 : ::c_int, - pub st_reserved4 : ::c_int, - } - - //b_struct__Timespec.h - pub struct _Timespec { - pub tv_sec : ::time_t, - pub tv_nsec : ::c_long, - } - - // b_struct__Sched_param.h - pub struct _Sched_param { - pub sched_priority: ::c_int, /* scheduling priority */ - pub sched_ss_low_priority: ::c_int, /* low scheduling priority */ - pub sched_ss_repl_period: ::_Timespec, /* replenishment period */ - pub sched_ss_init_budget: ::_Timespec, /* initial budget */ - pub sched_ss_max_repl: ::c_int, /* max pending replenishment */ - - } - - // b_pthread_attr_t.h - pub struct pthread_attr_t { - pub threadAttrStatus : ::c_int, - pub threadAttrStacksize : ::size_t, - pub threadAttrStackaddr : *mut ::c_void, - pub threadAttrGuardsize : ::size_t, - pub threadAttrDetachstate : ::c_int, - pub threadAttrContentionscope : ::c_int, - pub threadAttrInheritsched : ::c_int, - pub threadAttrSchedpolicy : ::c_int, - pub threadAttrName : *mut ::c_char, - pub threadAttrOptions : ::c_int, - pub threadAttrSchedparam : ::_Sched_param, - } - - // signal.h - - pub struct sigaction { - pub sa_u : ::sa_u_t, - pub sa_mask : ::sigset_t, - pub sa_flags : ::c_int, - } - - // b_stack_t.h - pub struct stack_t { - pub ss_sp : *mut ::c_void, - pub ss_size : ::size_t, - pub ss_flags : ::c_int, - } - - // signal.h - pub struct siginfo_t { - pub si_signo : ::c_int, - pub si_code : ::c_int, - pub si_value : ::sigval, - pub si_errno : ::c_int, - pub si_status: ::c_int, - pub si_addr: *mut ::c_void, - pub si_uid: ::uid_t, - pub si_pid: ::pid_t, - } - - // pthread.h (krnl) - // b_pthread_mutexattr_t.h (usr) - pub struct pthread_mutexattr_t { - mutexAttrStatus : ::c_int, - mutexAttrPshared : ::c_int, - mutexAttrProtocol : ::c_int, - mutexAttrPrioceiling : ::c_int, - mutexAttrType : ::c_int, - } - - // pthread.h (krnl) - // b_pthread_mutex_t.h (usr) - pub struct pthread_mutex_t { - pub mutexSemId: ::_Vx_SEM_ID, /*_Vx_SEM_ID ..*/ - pub mutexValid: ::c_int, - pub mutexInitted: ::c_int, - pub mutexCondRefCount: ::c_int, - pub mutexSavPriority: ::c_int, - pub mutexAttr: ::pthread_mutexattr_t, - pub mutexSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX], - } - - // b_struct_timespec.h - pub struct timespec { - pub tv_sec: ::time_t, - pub tv_nsec: ::c_long, - } - - // time.h - pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - } - - // in.h - pub struct in_addr { - pub s_addr: in_addr_t, - } - - // in.h - pub struct ip_mreq { - pub imr_multiaddr: in_addr, - pub imr_interface: in_addr, - } - - // in6.h - #[repr(align(4))] - pub struct in6_addr { - pub s6_addr: [u8; 16], - } - - // in6.h - pub struct ipv6_mreq { - pub ipv6mr_multiaddr: in6_addr, - pub ipv6mr_interface: ::c_uint, - } - - // netdb.h - pub struct addrinfo { - pub ai_flags : ::c_int, - pub ai_family : ::c_int, - pub ai_socktype : ::c_int, - pub ai_protocol : ::c_int, - pub ai_addrlen : ::size_t, - pub ai_canonname: *mut ::c_char, - pub ai_addr : *mut ::sockaddr, - pub ai_next : *mut ::addrinfo, - } - - // in.h - pub struct sockaddr_in { - pub sin_len : u8, - pub sin_family: u8, - pub sin_port : u16, - pub sin_addr : ::in_addr, - pub sin_zero : [::c_char; 8], - } - - // in6.h - pub struct sockaddr_in6 { - pub sin6_len : u8, - pub sin6_family : u8, - pub sin6_port : u16, - pub sin6_flowinfo: u32, - pub sin6_addr : ::in6_addr, - pub sin6_scope_id: u32, - } - - pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, - } - - pub struct mq_attr { - pub mq_maxmsg: ::c_long, - pub mq_msgsize: ::c_long, - pub mq_flags: ::c_long, - pub mq_curmsgs: ::c_long, - } -} - -s_no_extra_traits! { - // dirent.h - pub struct dirent { - pub d_ino : ::ino_t, - pub d_name : [::c_char; _PARM_NAME_MAX as usize + 1], - } - - pub struct sockaddr_un { - pub sun_len: u8, - pub sun_family: sa_family_t, - pub sun_path: [::c_char; 104] - } - - // rtpLibCommon.h - pub struct RTP_DESC { - pub status : ::c_int, - pub options : u32, - pub entrAddr : *mut ::c_void, - pub initTaskId: ::TASK_ID, - pub parentId : ::RTP_ID, - pub pathName : [::c_char; VX_RTP_NAME_LENGTH as usize + 1], - pub taskCnt : ::c_int, - pub textStart : *mut ::c_void, - pub textEnd : *mut ::c_void, - } - // socket.h - pub struct sockaddr_storage { - pub ss_len : ::c_uchar, - pub ss_family : ::sa_family_t, - pub __ss_pad1 : [::c_char; _SS_PAD1SIZE], - pub __ss_align : i32, - pub __ss_pad2 : [::c_char; _SS_PAD2SIZE], - } - - pub union sa_u_t { - pub sa_handler : ::Option !>, - pub sa_sigaction: ::Option !>, - } - - pub union sigval { - pub sival_int : ::c_int, - pub sival_ptr : *mut ::c_void, - } -} - -cfg_if! { - if #[cfg(feature = "extra_traits")] { - impl ::fmt::Debug for dirent { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("dirent") - .field("d_ino", &self.d_ino) - .field("d_name", &&self.d_name[..]) - .finish() - } - } - - impl ::fmt::Debug for sockaddr_un { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_un") - .field("sun_len", &self.sun_len) - .field("sun_family", &self.sun_family) - .field("sun_path", &&self.sun_path[..]) - .finish() - } - } - - impl ::fmt::Debug for RTP_DESC { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("RTP_DESC") - .field("status", &self.status) - .field("options", &self.options) - .field("entrAddr", &self.entrAddr) - .field("initTaskId", &self.initTaskId) - .field("parentId", &self.parentId) - .field("pathName", &&self.pathName[..]) - .field("taskCnt", &self.taskCnt) - .field("textStart", &self.textStart) - .field("textEnd", &self.textEnd) - .finish() - } - } - impl ::fmt::Debug for sockaddr_storage { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sockaddr_storage") - .field("ss_len", &self.ss_len) - .field("ss_family", &self.ss_family) - .field("__ss_pad1", &&self.__ss_pad1[..]) - .field("__ss_align", &self.__ss_align) - .field("__ss_pad2", &&self.__ss_pad2[..]) - .finish() - } - } - - impl PartialEq for sa_u_t { - fn eq(&self, other: &sa_u_t) -> bool { - unsafe { - let h1 = match self.sa_handler { - Some(handler) => handler as usize, - None => 0 as usize, - }; - let h2 = match other.sa_handler { - Some(handler) => handler as usize, - None => 0 as usize, - }; - h1 == h2 - } - } - } - impl Eq for sa_u_t {} - impl ::fmt::Debug for sa_u_t { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - unsafe { - let h = match self.sa_handler { - Some(handler) => handler as usize, - None => 0 as usize, - }; - - f.debug_struct("sa_u_t") - .field("sa_handler", &h) - .finish() - } - } - } - impl ::hash::Hash for sa_u_t { - fn hash(&self, state: &mut H) { - unsafe { - let h = match self.sa_handler { - Some(handler) => handler as usize, - None => 0 as usize, - }; - h.hash(state) - } - } - } - - impl PartialEq for sigval { - fn eq(&self, other: &sigval) -> bool { - unsafe { self.sival_ptr as usize == other.sival_ptr as usize } - } - } - impl Eq for sigval {} - impl ::fmt::Debug for sigval { - fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { - f.debug_struct("sigval") - .field("sival_ptr", unsafe { &(self.sival_ptr as usize) }) - .finish() - } - } - impl ::hash::Hash for sigval { - fn hash(&self, state: &mut H) { - unsafe { (self.sival_ptr as usize).hash(state) }; - } - } - } -} - -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; - -pub const EXIT_SUCCESS: ::c_int = 0; -pub const EXIT_FAILURE: ::c_int = 1; - -pub const EAI_SERVICE: ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM: ::c_int = 11; - -// This is not defined in vxWorks, but we have to define it here -// to make the building pass for getrandom and libstd, FIXME -pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; - -//Clock Lib Stuff -pub const CLOCK_REALTIME: ::c_int = 0x0; -pub const CLOCK_MONOTONIC: ::c_int = 0x1; -pub const CLOCK_PROCESS_CPUTIME_ID: ::c_int = 0x2; -pub const CLOCK_THREAD_CPUTIME_ID: ::c_int = 0x3; -pub const TIMER_ABSTIME: ::c_int = 0x1; -pub const TIMER_RELTIME: ::c_int = 0x0; - -// PTHREAD STUFF -pub const PTHREAD_INITIALIZED_OBJ: ::c_int = 0xF70990EF; -pub const PTHREAD_DESTROYED_OBJ: ::c_int = -1; -pub const PTHREAD_VALID_OBJ: ::c_int = 0xEC542A37; -pub const PTHREAD_INVALID_OBJ: ::c_int = -1; -pub const PTHREAD_UNUSED_YET_OBJ: ::c_int = -1; - -pub const PTHREAD_PRIO_NONE: ::c_int = 0; -pub const PTHREAD_PRIO_INHERIT: ::c_int = 1; -pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; - -pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; -pub const PTHREAD_STACK_MIN: usize = 4096; -pub const _PTHREAD_SHARED_SEM_NAME_MAX: usize = 30; - -// ERRNO STUFF -pub const OK: ::c_int = 0; -pub const EPERM: ::c_int = 1; /* Not owner */ -pub const ENOENT: ::c_int = 2; /* No such file or directory */ -pub const ESRCH: ::c_int = 3; /* No such process */ -pub const EINTR: ::c_int = 4; /* Interrupted system call */ -pub const EIO: ::c_int = 5; /* I/O error */ -pub const ENXIO: ::c_int = 6; /* No such device or address */ -pub const E2BIG: ::c_int = 7; /* Arg list too long */ -pub const ENOEXEC: ::c_int = 8; /* Exec format error */ -pub const EBADF: ::c_int = 9; /* Bad file number */ -pub const ECHILD: ::c_int = 10; /* No children */ -pub const EAGAIN: ::c_int = 11; /* No more processes */ -pub const ENOMEM: ::c_int = 12; /* Not enough core */ -pub const EACCES: ::c_int = 13; /* Permission denied */ -pub const EFAULT: ::c_int = 14; -pub const ENOTEMPTY: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENAMETOOLONG: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDEADLK: ::c_int = 33; -pub const ERANGE: ::c_int = 38; -pub const EDESTADDRREQ: ::c_int = 40; -pub const EPROTOTYPE: ::c_int = 41; -pub const ENOPROTOOPT: ::c_int = 42; -pub const EPROTONOSUPPORT: ::c_int = 43; -pub const ESOCKTNOSUPPORT: ::c_int = 44; -pub const EOPNOTSUPP: ::c_int = 45; -pub const EPFNOSUPPORT: ::c_int = 46; -pub const EAFNOSUPPORT: ::c_int = 47; -pub const EADDRINUSE: ::c_int = 48; -pub const EADDRNOTAVAIL: ::c_int = 49; -pub const ENOTSOCK: ::c_int = 50; -pub const ENETUNREACH: ::c_int = 51; -pub const ENETRESET: ::c_int = 52; -pub const ECONNABORTED: ::c_int = 53; -pub const ECONNRESET: ::c_int = 54; -pub const ENOBUFS: ::c_int = 55; -pub const EISCONN: ::c_int = 56; -pub const ENOTCONN: ::c_int = 57; -pub const ESHUTDOWN: ::c_int = 58; -pub const ETOOMANYREFS: ::c_int = 59; -pub const ETIMEDOUT: ::c_int = 60; -pub const ECONNREFUSED: ::c_int = 61; -pub const ENETDOWN: ::c_int = 62; -pub const ETXTBSY: ::c_int = 63; -pub const ELOOP: ::c_int = 64; -pub const EHOSTUNREACH: ::c_int = 65; -pub const EINPROGRESS: ::c_int = 68; -pub const EALREADY: ::c_int = 69; -pub const EWOULDBLOCK: ::c_int = 70; -pub const ENOSYS: ::c_int = 71; -pub const EDQUOT: ::c_int = 83; -pub const ESTALE: ::c_int = 88; - -// NFS errnos: Refer to pkgs_v2/storage/fs/nfs/h/nfs/nfsCommon.h -const M_nfsStat: ::c_int = 48 << 16; -enum nfsstat { - NFSERR_REMOTE = 71, - NFSERR_WFLUSH = 99, - NFSERR_BADHANDLE = 10001, - NFSERR_NOT_SYNC = 10002, - NFSERR_BAD_COOKIE = 10003, - NFSERR_TOOSMALL = 10005, - NFSERR_BADTYPE = 10007, - NFSERR_JUKEBOX = 10008, -} - -pub const S_nfsLib_NFS_OK: ::c_int = OK; -pub const S_nfsLib_NFSERR_PERM: ::c_int = EPERM; -pub const S_nfsLib_NFSERR_NOENT: ::c_int = ENOENT; -pub const S_nfsLib_NFSERR_IO: ::c_int = EIO; -pub const S_nfsLib_NFSERR_NXIO: ::c_int = ENXIO; -pub const S_nfsLib_NFSERR_ACCESS: ::c_int = EACCES; -pub const S_nfsLib_NFSERR_EXIST: ::c_int = EEXIST; -pub const S_nfsLib_NFSERR_ENODEV: ::c_int = ENODEV; -pub const S_nfsLib_NFSERR_NOTDIR: ::c_int = ENOTDIR; -pub const S_nfsLib_NFSERR_ISDIR: ::c_int = EISDIR; -pub const S_nfsLib_NFSERR_INVAL: ::c_int = EINVAL; -pub const S_nfsLib_NFSERR_FBIG: ::c_int = EFBIG; -pub const S_nfsLib_NFSERR_NOSPC: ::c_int = ENOSPC; -pub const S_nfsLib_NFSERR_ROFS: ::c_int = EROFS; -pub const S_nfsLib_NFSERR_NAMETOOLONG: ::c_int = ENAMETOOLONG; -pub const S_nfsLib_NFSERR_NOTEMPTY: ::c_int = ENOTEMPTY; -pub const S_nfsLib_NFSERR_DQUOT: ::c_int = EDQUOT; -pub const S_nfsLib_NFSERR_STALE: ::c_int = ESTALE; -pub const S_nfsLib_NFSERR_WFLUSH: ::c_int = M_nfsStat | nfsstat::NFSERR_WFLUSH as ::c_int; -pub const S_nfsLib_NFSERR_REMOTE: ::c_int = M_nfsStat | nfsstat::NFSERR_REMOTE as ::c_int; -pub const S_nfsLib_NFSERR_BADHANDLE: ::c_int = M_nfsStat | nfsstat::NFSERR_BADHANDLE as ::c_int; -pub const S_nfsLib_NFSERR_NOT_SYNC: ::c_int = M_nfsStat | nfsstat::NFSERR_NOT_SYNC as ::c_int; -pub const S_nfsLib_NFSERR_BAD_COOKIE: ::c_int = M_nfsStat | nfsstat::NFSERR_BAD_COOKIE as ::c_int; -pub const S_nfsLib_NFSERR_NOTSUPP: ::c_int = EOPNOTSUPP; -pub const S_nfsLib_NFSERR_TOOSMALL: ::c_int = M_nfsStat | nfsstat::NFSERR_TOOSMALL as ::c_int; -pub const S_nfsLib_NFSERR_SERVERFAULT: ::c_int = EIO; -pub const S_nfsLib_NFSERR_BADTYPE: ::c_int = M_nfsStat | nfsstat::NFSERR_BADTYPE as ::c_int; -pub const S_nfsLib_NFSERR_JUKEBOX: ::c_int = M_nfsStat | nfsstat::NFSERR_JUKEBOX as ::c_int; - -// in.h -pub const IPPROTO_IP: ::c_int = 0; -pub const IPPROTO_IPV6: ::c_int = 41; - -pub const IP_TTL: ::c_int = 4; -pub const IP_MULTICAST_IF: ::c_int = 9; -pub const IP_MULTICAST_TTL: ::c_int = 10; -pub const IP_MULTICAST_LOOP: ::c_int = 11; -pub const IP_ADD_MEMBERSHIP: ::c_int = 12; -pub const IP_DROP_MEMBERSHIP: ::c_int = 13; - -// in6.h -pub const IPV6_V6ONLY: ::c_int = 1; -pub const IPV6_UNICAST_HOPS: ::c_int = 4; -pub const IPV6_MULTICAST_IF: ::c_int = 9; -pub const IPV6_MULTICAST_HOPS: ::c_int = 10; -pub const IPV6_MULTICAST_LOOP: ::c_int = 11; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 12; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 13; - -// STAT Stuff -pub const S_IFMT: ::c_int = 0xf000; -pub const S_IFIFO: ::c_int = 0x1000; -pub const S_IFCHR: ::c_int = 0x2000; -pub const S_IFDIR: ::c_int = 0x4000; -pub const S_IFBLK: ::c_int = 0x6000; -pub const S_IFREG: ::c_int = 0x8000; -pub const S_IFLNK: ::c_int = 0xa000; -pub const S_IFSHM: ::c_int = 0xb000; -pub const S_IFSOCK: ::c_int = 0xc000; -pub const S_ISUID: ::c_int = 0x0800; -pub const S_ISGID: ::c_int = 0x0400; -pub const S_ISTXT: ::c_int = 0x0200; -pub const S_IRUSR: ::c_int = 0x0100; -pub const S_IWUSR: ::c_int = 0x0080; -pub const S_IXUSR: ::c_int = 0x0040; -pub const S_IRWXU: ::c_int = 0x01c0; -pub const S_IRGRP: ::c_int = 0x0020; -pub const S_IWGRP: ::c_int = 0x0010; -pub const S_IXGRP: ::c_int = 0x0008; -pub const S_IRWXG: ::c_int = 0x0038; -pub const S_IROTH: ::c_int = 0x0004; -pub const S_IWOTH: ::c_int = 0x0002; -pub const S_IXOTH: ::c_int = 0x0001; -pub const S_IRWXO: ::c_int = 0x0007; - -// socket.h -pub const SOL_SOCKET: ::c_int = 0xffff; - -pub const SO_DEBUG: ::c_int = 0x0001; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_RCVLOWAT: ::c_int = 0x0012; -pub const SO_SNDLOWAT: ::c_int = 0x0013; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_ACCEPTCONN: ::c_int = 0x001e; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_REUSEPORT: ::c_int = 0x0200; - -pub const SO_VLAN: ::c_int = 0x8000; - -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SO_BINDTODEVICE: ::c_int = 0x1010; -pub const SO_OOBINLINE: ::c_int = 0x1011; -pub const SO_CONNTIMEO: ::c_int = 0x100a; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_RAW: ::c_int = 3; -pub const SOCK_RDM: ::c_int = 4; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_PACKET: ::c_int = 10; - -pub const _SS_MAXSIZE: usize = 128; -pub const _SS_ALIGNSIZE: usize = size_of::(); -pub const _SS_PAD1SIZE: usize = _SS_ALIGNSIZE - size_of::<::c_uchar>() - size_of::<::sa_family_t>(); -pub const _SS_PAD2SIZE: usize = _SS_MAXSIZE - - size_of::<::c_uchar>() - - size_of::<::sa_family_t>() - - _SS_PAD1SIZE - - _SS_ALIGNSIZE; - -pub const MSG_OOB: ::c_int = 0x0001; -pub const MSG_PEEK: ::c_int = 0x0002; -pub const MSG_DONTROUTE: ::c_int = 0x0004; -pub const MSG_EOR: ::c_int = 0x0008; -pub const MSG_TRUNC: ::c_int = 0x0010; -pub const MSG_CTRUNC: ::c_int = 0x0020; -pub const MSG_WAITALL: ::c_int = 0x0040; -pub const MSG_DONTWAIT: ::c_int = 0x0080; -pub const MSG_EOF: ::c_int = 0x0100; -pub const MSG_EXP: ::c_int = 0x0200; -pub const MSG_MBUF: ::c_int = 0x0400; -pub const MSG_NOTIFICATION: ::c_int = 0x0800; -pub const MSG_COMPAT: ::c_int = 0x8000; - -pub const AF_UNSPEC: ::c_int = 0; -pub const AF_LOCAL: ::c_int = 1; -pub const AF_UNIX: ::c_int = AF_LOCAL; -pub const AF_INET: ::c_int = 2; -pub const AF_NETLINK: ::c_int = 16; -pub const AF_ROUTE: ::c_int = 17; -pub const AF_LINK: ::c_int = 18; -pub const AF_PACKET: ::c_int = 19; -pub const pseudo_AF_KEY: ::c_int = 27; -pub const AF_KEY: ::c_int = pseudo_AF_KEY; -pub const AF_INET6: ::c_int = 28; -pub const AF_SOCKDEV: ::c_int = 31; -pub const AF_TIPC: ::c_int = 33; -pub const AF_MIPC: ::c_int = 34; -pub const AF_MIPC_SAFE: ::c_int = 35; -pub const AF_MAX: ::c_int = 37; - -pub const SHUT_RD: ::c_int = 0; -pub const SHUT_WR: ::c_int = 1; -pub const SHUT_RDWR: ::c_int = 2; - -pub const IPPROTO_TCP: ::c_int = 6; -pub const TCP_NODELAY: ::c_int = 1; -pub const TCP_MAXSEG: ::c_int = 2; -pub const TCP_NOPUSH: ::c_int = 3; -pub const TCP_KEEPIDLE: ::c_int = 4; -pub const TCP_KEEPINTVL: ::c_int = 5; -pub const TCP_KEEPCNT: ::c_int = 6; - -// ioLib.h -pub const FIONREAD: ::c_int = 0x40040001; -pub const FIOFLUSH: ::c_int = 2; -pub const FIOOPTIONS: ::c_int = 3; -pub const FIOBAUDRATE: ::c_int = 4; -pub const FIODISKFORMAT: ::c_int = 5; -pub const FIODISKINIT: ::c_int = 6; -pub const FIOSEEK: ::c_int = 7; -pub const FIOWHERE: ::c_int = 8; -pub const FIODIRENTRY: ::c_int = 9; -pub const FIORENAME: ::c_int = 10; -pub const FIOREADYCHANGE: ::c_int = 11; -pub const FIODISKCHANGE: ::c_int = 13; -pub const FIOCANCEL: ::c_int = 14; -pub const FIOSQUEEZE: ::c_int = 15; -pub const FIOGETNAME: ::c_int = 18; -pub const FIONBIO: ::c_int = 0x90040010; - -// limits.h -pub const PATH_MAX: ::c_int = _PARM_PATH_MAX; -pub const _POSIX_PATH_MAX: ::c_int = 256; - -// Some poll stuff -pub const POLLIN: ::c_short = 0x0001; -pub const POLLPRI: ::c_short = 0x0002; -pub const POLLOUT: ::c_short = 0x0004; -pub const POLLRDNORM: ::c_short = 0x0040; -pub const POLLWRNORM: ::c_short = POLLOUT; -pub const POLLRDBAND: ::c_short = 0x0080; -pub const POLLWRBAND: ::c_short = 0x0100; -pub const POLLERR: ::c_short = 0x0008; -pub const POLLHUP: ::c_short = 0x0010; -pub const POLLNVAL: ::c_short = 0x0020; - -// fnctlcom.h -pub const FD_CLOEXEC: ::c_int = 1; -pub const F_DUPFD: ::c_int = 0; -pub const F_GETFD: ::c_int = 1; -pub const F_SETFD: ::c_int = 2; -pub const F_GETFL: ::c_int = 3; -pub const F_SETFL: ::c_int = 4; -pub const F_GETOWN: ::c_int = 5; -pub const F_SETOWN: ::c_int = 6; -pub const F_GETLK: ::c_int = 7; -pub const F_SETLK: ::c_int = 8; -pub const F_SETLKW: ::c_int = 9; -pub const F_DUPFD_CLOEXEC: ::c_int = 14; - -// signal.h -pub const SIG_DFL: sighandler_t = 0 as sighandler_t; -pub const SIG_IGN: sighandler_t = 1 as sighandler_t; -pub const SIG_ERR: sighandler_t = -1 as isize as sighandler_t; - -pub const SIGHUP: ::c_int = 1; -pub const SIGINT: ::c_int = 2; -pub const SIGQUIT: ::c_int = 3; -pub const SIGILL: ::c_int = 4; -pub const SIGTRAP: ::c_int = 5; -pub const SIGABRT: ::c_int = 6; -pub const SIGEMT: ::c_int = 7; -pub const SIGFPE: ::c_int = 8; -pub const SIGKILL: ::c_int = 9; -pub const SIGBUS: ::c_int = 10; -pub const SIGSEGV: ::c_int = 11; -pub const SIGFMT: ::c_int = 12; -pub const SIGPIPE: ::c_int = 13; -pub const SIGALRM: ::c_int = 14; -pub const SIGTERM: ::c_int = 15; -pub const SIGCNCL: ::c_int = 16; -pub const SIGSTOP: ::c_int = 17; -pub const SIGTSTP: ::c_int = 18; -pub const SIGCONT: ::c_int = 19; -pub const SIGCHLD: ::c_int = 20; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; - -pub const SIG_BLOCK: ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; -pub const SIG_SETMASK: ::c_int = 3; - -pub const SI_SYNC: ::c_int = 0; -pub const SI_USER: ::c_int = -1; -pub const SI_QUEUE: ::c_int = -2; -pub const SI_TIMER: ::c_int = -3; -pub const SI_ASYNCIO: ::c_int = -4; -pub const SI_MESGQ: ::c_int = -5; -pub const SI_CHILD: ::c_int = -6; -pub const SI_KILL: ::c_int = SI_USER; - -// vxParams.h definitions -pub const _PARM_NAME_MAX: ::c_int = 255; -pub const _PARM_PATH_MAX: ::c_int = 1024; - -// WAIT STUFF -pub const WNOHANG: ::c_int = 0x01; -pub const WUNTRACED: ::c_int = 0x02; - -const PTHREAD_MUTEXATTR_INITIALIZER: pthread_mutexattr_t = pthread_mutexattr_t { - mutexAttrStatus: PTHREAD_INITIALIZED_OBJ, - mutexAttrProtocol: PTHREAD_PRIO_NONE, - mutexAttrPrioceiling: 0, - mutexAttrType: PTHREAD_MUTEX_DEFAULT, - mutexAttrPshared: 1, -}; -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - mutexSemId: null_mut(), - mutexValid: PTHREAD_VALID_OBJ, - mutexInitted: PTHREAD_UNUSED_YET_OBJ, - mutexCondRefCount: 0, - mutexSavPriority: -1, - mutexAttr: PTHREAD_MUTEXATTR_INITIALIZER, - mutexSemName: [0; _PTHREAD_SHARED_SEM_NAME_MAX], -}; - -const PTHREAD_CONDATTR_INITIALIZER: pthread_condattr_t = pthread_condattr_t { - condAttrStatus: 0xf70990ef, - condAttrPshared: 1, - condAttrClockId: CLOCK_REALTIME, -}; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - condSemId: null_mut(), - condValid: PTHREAD_VALID_OBJ, - condInitted: PTHREAD_UNUSED_YET_OBJ, - condRefCount: 0, - condMutex: null_mut(), - condAttr: PTHREAD_CONDATTR_INITIALIZER, - condSemName: [0; _PTHREAD_SHARED_SEM_NAME_MAX], -}; - -const PTHREAD_RWLOCKATTR_INITIALIZER: pthread_rwlockattr_t = pthread_rwlockattr_t { - rwlockAttrStatus: PTHREAD_INITIALIZED_OBJ, - rwlockAttrPshared: 1, - rwlockAttrMaxReaders: 0, - rwlockAttrConformOpt: 1, -}; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - rwlockSemId: null_mut(), - rwlockReadersRefCount: 0, - rwlockValid: PTHREAD_VALID_OBJ, - rwlockInitted: PTHREAD_UNUSED_YET_OBJ, - rwlockAttr: PTHREAD_RWLOCKATTR_INITIALIZER, - rwlockSemName: [0; _PTHREAD_SHARED_SEM_NAME_MAX], -}; - -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; - -// rtpLibCommon.h -pub const VX_RTP_NAME_LENGTH: ::c_int = 255; -pub const RTP_ID_ERROR: ::RTP_ID = -1; - -// h/public/unistd.h -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 21; // Via unistd.h -pub const _SC_PAGESIZE: ::c_int = 39; -pub const O_ACCMODE: ::c_int = 3; -pub const O_CLOEXEC: ::c_int = 0x100000; // fcntlcom -pub const O_EXCL: ::c_int = 0x0800; -pub const O_CREAT: ::c_int = 0x0200; -pub const O_TRUNC: ::c_int = 0x0400; -pub const O_APPEND: ::c_int = 0x0008; -pub const O_RDWR: ::c_int = 0x0002; -pub const O_WRONLY: ::c_int = 0x0001; -pub const O_RDONLY: ::c_int = 0; -pub const O_NONBLOCK: ::c_int = 0x4000; - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum FILE {} -impl ::Copy for FILE {} -impl ::Clone for FILE { - fn clone(&self) -> FILE { - *self - } -} -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos_t {} -impl ::Clone for fpos_t { - fn clone(&self) -> fpos_t { - *self - } -} - -f! { - pub {const} fn CMSG_ALIGN(len: usize) -> usize { - len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) - } - - pub fn CMSG_NXTHDR(mhdr: *const msghdr, - cmsg: *const cmsghdr) -> *mut cmsghdr { - let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) - + CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); - let max = (*mhdr).msg_control as usize - + (*mhdr).msg_controllen as usize; - if next <= max { - (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) - as *mut ::cmsghdr - } else { - 0 as *mut ::cmsghdr - } - } - - pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { - if (*mhdr).msg_controllen as usize > 0 { - (*mhdr).msg_control as *mut cmsghdr - } else { - 0 as *mut cmsghdr - } - } - - pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut ::c_uchar { - (cmsg as *mut ::c_uchar) - .offset(CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) - } - - pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { - (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) - as ::c_uint - } - - pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint { - CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length - } -} - -extern "C" { - pub fn isalnum(c: c_int) -> c_int; - pub fn isalpha(c: c_int) -> c_int; - pub fn iscntrl(c: c_int) -> c_int; - pub fn isdigit(c: c_int) -> c_int; - pub fn isgraph(c: c_int) -> c_int; - pub fn islower(c: c_int) -> c_int; - pub fn isprint(c: c_int) -> c_int; - pub fn ispunct(c: c_int) -> c_int; - pub fn isspace(c: c_int) -> c_int; - pub fn isupper(c: c_int) -> c_int; - pub fn isxdigit(c: c_int) -> c_int; - pub fn isblank(c: c_int) -> c_int; - pub fn tolower(c: c_int) -> c_int; - pub fn toupper(c: c_int) -> c_int; - pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; - pub fn freopen(filename: *const c_char, mode: *const c_char, file: *mut FILE) -> *mut FILE; - pub fn fflush(file: *mut FILE) -> c_int; - pub fn fclose(file: *mut FILE) -> c_int; - pub fn remove(filename: *const c_char) -> c_int; - pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; - pub fn tmpfile() -> *mut FILE; - pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int; - pub fn setbuf(stream: *mut FILE, buf: *mut c_char); - pub fn getchar() -> c_int; - pub fn putchar(c: c_int) -> c_int; - pub fn fgetc(stream: *mut FILE) -> c_int; - pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; - pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; - pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; - pub fn puts(s: *const c_char) -> c_int; - pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; - pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; - pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; - pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; - pub fn ftell(stream: *mut FILE) -> c_long; - pub fn rewind(stream: *mut FILE); - pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int; - pub fn fsetpos(stream: *mut FILE, ptr: *const fpos_t) -> c_int; - pub fn feof(stream: *mut FILE) -> c_int; - pub fn ferror(stream: *mut FILE) -> c_int; - pub fn perror(s: *const c_char); - pub fn atof(s: *const c_char) -> c_double; - pub fn atoi(s: *const c_char) -> c_int; - pub fn atol(s: *const c_char) -> c_long; - pub fn atoll(s: *const c_char) -> c_longlong; - pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; - pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float; - pub fn strtol(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_long; - pub fn strtoll(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_longlong; - pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulong; - pub fn strtoull(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulonglong; - pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; - pub fn malloc(size: size_t) -> *mut c_void; - pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; - pub fn free(p: *mut c_void); - pub fn abort() -> !; - pub fn exit(status: c_int) -> !; - pub fn atexit(cb: extern "C" fn()) -> c_int; - pub fn system(s: *const c_char) -> c_int; - pub fn getenv(s: *const c_char) -> *mut c_char; - - pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; - pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; - pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; - pub fn strncat(s: *mut c_char, ct: *const c_char, n: size_t) -> *mut c_char; - pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; - pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; - pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; - pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char; - pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char; - pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t; - pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t; - pub fn strdup(cs: *const c_char) -> *mut c_char; - pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; - pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; - pub fn strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; - pub fn strncasecmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; - pub fn strlen(cs: *const c_char) -> size_t; - pub fn strerror(n: c_int) -> *mut c_char; - pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; - pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; - pub fn wcslen(buf: *const wchar_t) -> size_t; - pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; - - pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; - pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t; - pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; - pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; - pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; - pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; -} - -extern "C" { - pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn printf(format: *const ::c_char, ...) -> ::c_int; - pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int; - pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn scanf(format: *const ::c_char, ...) -> ::c_int; - pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn getchar_unlocked() -> ::c_int; - pub fn putchar_unlocked(c: ::c_int) -> ::c_int; - pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; - pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; - pub fn fileno(stream: *mut ::FILE) -> ::c_int; - pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn rewinddir(dirp: *mut ::DIR); - pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; - pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; - pub fn alarm(seconds: ::c_uint) -> ::c_uint; - pub fn fchdir(dirfd: ::c_int) -> ::c_int; - pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; - pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; - pub fn getegid() -> gid_t; - pub fn geteuid() -> uid_t; - pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int; - pub fn getlogin() -> *mut c_char; - pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int; - pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; - pub fn pause() -> ::c_int; - pub fn seteuid(uid: uid_t) -> ::c_int; - pub fn setegid(gid: gid_t) -> ::c_int; - pub fn sleep(secs: ::c_uint) -> ::c_uint; - pub fn ttyname(fd: ::c_int) -> *mut c_char; - pub fn wait(status: *mut ::c_int) -> pid_t; - pub fn umask(mask: mode_t) -> mode_t; - pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn mlockall(flags: ::c_int) -> ::c_int; - pub fn munlockall() -> ::c_int; - - pub fn mmap( - addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, - offset: off_t, - ) -> *mut ::c_void; - pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; - pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; - - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn pthread_exit(value: *mut ::c_void) -> !; - pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, state: ::c_int) -> ::c_int; - - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - - pub fn sigaddset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; - - pub fn sigaction(signum: ::c_int, act: *const sigaction, oldact: *mut sigaction) -> ::c_int; - - pub fn utimes(filename: *const ::c_char, times: *const ::timeval) -> ::c_int; - - #[link_name = "_rtld_dlopen"] - pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; - - #[link_name = "_rtld_dlerror"] - pub fn dlerror() -> *mut ::c_char; - - #[link_name = "_rtld_dlsym"] - pub fn dlsym(handle: *mut ::c_void, symbol: *const ::c_char) -> *mut ::c_void; - - #[link_name = "_rtld_dlclose"] - pub fn dlclose(handle: *mut ::c_void) -> ::c_int; - - #[link_name = "_rtld_dladdr"] - pub fn dladdr(addr: *mut ::c_void, info: *mut Dl_info) -> ::c_int; - - // time.h - pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; - pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; - pub fn mktime(tm: *mut tm) -> time_t; - pub fn time(time: *mut time_t) -> time_t; - pub fn gmtime(time_p: *const time_t) -> *mut tm; - pub fn localtime(time_p: *const time_t) -> *mut tm; - pub fn timegm(tm: *mut tm) -> time_t; - pub fn difftime(time1: time_t, time0: time_t) -> ::c_double; - pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn usleep(secs: ::useconds_t) -> ::c_int; - pub fn putenv(string: *mut c_char) -> ::c_int; - pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char; - - pub fn sigprocmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; - pub fn sigpending(set: *mut sigset_t) -> ::c_int; - - pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; - - pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int; - pub fn ftello(stream: *mut ::FILE) -> ::off_t; - pub fn mkstemp(template: *mut ::c_char) -> ::c_int; - - pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char; - - pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int); - pub fn closelog(); - pub fn setlogmask(maskpri: ::c_int) -> ::c_int; - pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); - pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t; - -} - -extern "C" { - // stdlib.h - pub fn memalign(block_size: ::size_t, size_arg: ::size_t) -> *mut ::c_void; - - // ioLib.h - pub fn getcwd(buf: *mut ::c_char, size: ::size_t) -> *mut ::c_char; - - // ioLib.h - pub fn chdir(attr: *const ::c_char) -> ::c_int; - - // pthread.h - pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int; - - // pthread.h - pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> ::c_int; - - // pthread.h - pub fn pthread_mutexattr_settype(pAttr: *mut ::pthread_mutexattr_t, pType: ::c_int) -> ::c_int; - - // pthread.h - pub fn pthread_mutex_init( - mutex: *mut pthread_mutex_t, - attr: *const pthread_mutexattr_t, - ) -> ::c_int; - - // pthread.h - pub fn pthread_mutex_destroy(mutex: *mut pthread_mutex_t) -> ::c_int; - - // pthread.h - pub fn pthread_mutex_lock(mutex: *mut pthread_mutex_t) -> ::c_int; - - // pthread.h - pub fn pthread_mutex_trylock(mutex: *mut pthread_mutex_t) -> ::c_int; - - // pthread.h - pub fn pthread_mutex_timedlock(attr: *mut pthread_mutex_t, spec: *const timespec) -> ::c_int; - - // pthread.h - pub fn pthread_mutex_unlock(mutex: *mut pthread_mutex_t) -> ::c_int; - - // pthread.h - pub fn pthread_attr_setname(pAttr: *mut ::pthread_attr_t, name: *mut ::c_char) -> ::c_int; - - // pthread.h - pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, stacksize: ::size_t) -> ::c_int; - - // pthread.h - pub fn pthread_attr_getstacksize(attr: *const ::pthread_attr_t, size: *mut ::size_t) - -> ::c_int; - - // pthread.h - pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; - - // pthread.h - pub fn pthread_create( - pThread: *mut ::pthread_t, - pAttr: *const ::pthread_attr_t, - start_routine: extern "C" fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void, - ) -> ::c_int; - - // pthread.h - pub fn pthread_attr_destroy(thread: *mut ::pthread_attr_t) -> ::c_int; - - // pthread.h - pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; - - // int pthread_atfork (void (*)(void), void (*)(void), void (*)(void)); - pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, - ) -> ::c_int; - // stat.h - pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; - - // stat.h - pub fn lstat(path: *const ::c_char, buf: *mut stat) -> ::c_int; - - // unistd.h - pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; - - // dirent.h - pub fn readdir_r(pDir: *mut ::DIR, entry: *mut ::dirent, result: *mut *mut ::dirent) - -> ::c_int; - - // dirent.h - pub fn readdir(pDir: *mut ::DIR) -> *mut ::dirent; - - // fcntl.h or - // ioLib.h - pub fn open(path: *const ::c_char, oflag: ::c_int, ...) -> ::c_int; - - // poll.h - pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; - - // pthread.h - pub fn pthread_condattr_init(attr: *mut ::pthread_condattr_t) -> ::c_int; - - // pthread.h - pub fn pthread_condattr_destroy(attr: *mut ::pthread_condattr_t) -> ::c_int; - - // pthread.h - pub fn pthread_condattr_getclock( - pAttr: *const ::pthread_condattr_t, - pClockId: *mut ::clockid_t, - ) -> ::c_int; - - // pthread.h - pub fn pthread_condattr_setclock( - pAttr: *mut ::pthread_condattr_t, - clockId: ::clockid_t, - ) -> ::c_int; - - // pthread.h - pub fn pthread_cond_init( - cond: *mut ::pthread_cond_t, - attr: *const ::pthread_condattr_t, - ) -> ::c_int; - - // pthread.h - pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int; - - // pthread.h - pub fn pthread_cond_signal(cond: *mut ::pthread_cond_t) -> ::c_int; - - // pthread.h - pub fn pthread_cond_broadcast(cond: *mut ::pthread_cond_t) -> ::c_int; - - // pthread.h - pub fn pthread_cond_wait(cond: *mut ::pthread_cond_t, mutex: *mut ::pthread_mutex_t) - -> ::c_int; - - // pthread.h - pub fn pthread_rwlockattr_init(attr: *mut ::pthread_rwlockattr_t) -> ::c_int; - - // pthread.h - pub fn pthread_rwlockattr_destroy(attr: *mut ::pthread_rwlockattr_t) -> ::c_int; - - // pthread.h - pub fn pthread_rwlockattr_setmaxreaders( - attr: *mut ::pthread_rwlockattr_t, - attr2: ::c_uint, - ) -> ::c_int; - - // pthread.h - pub fn pthread_rwlock_init( - attr: *mut ::pthread_rwlock_t, - host: *const ::pthread_rwlockattr_t, - ) -> ::c_int; - - // pthread.h - pub fn pthread_rwlock_destroy(attr: *mut ::pthread_rwlock_t) -> ::c_int; - - // pthread.h - pub fn pthread_rwlock_rdlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; - - // pthread.h - pub fn pthread_rwlock_tryrdlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; - - // pthread.h - pub fn pthread_rwlock_timedrdlock( - attr: *mut ::pthread_rwlock_t, - host: *const ::timespec, - ) -> ::c_int; - - // pthread.h - pub fn pthread_rwlock_wrlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; - - // pthread.h - pub fn pthread_rwlock_trywrlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; - - // pthread.h - pub fn pthread_rwlock_timedwrlock( - attr: *mut ::pthread_rwlock_t, - host: *const ::timespec, - ) -> ::c_int; - - // pthread.h - pub fn pthread_rwlock_unlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; - - // pthread.h - pub fn pthread_key_create( - key: *mut ::pthread_key_t, - dtor: ::Option, - ) -> ::c_int; - - // pthread.h - pub fn pthread_key_delete(key: ::pthread_key_t) -> ::c_int; - - // pthread.h - pub fn pthread_setspecific(key: ::pthread_key_t, value: *const ::c_void) -> ::c_int; - - // pthread.h - pub fn pthread_getspecific(key: ::pthread_key_t) -> *mut ::c_void; - - // pthread.h - pub fn pthread_cond_timedwait( - cond: *mut ::pthread_cond_t, - mutex: *mut ::pthread_mutex_t, - abstime: *const ::timespec, - ) -> ::c_int; - - // pthread.h - pub fn pthread_attr_getname(attr: *mut ::pthread_attr_t, name: *mut *mut ::c_char) -> ::c_int; - - // pthread.h - pub fn pthread_join(thread: ::pthread_t, status: *mut *mut ::c_void) -> ::c_int; - - // pthread.h - pub fn pthread_self() -> ::pthread_t; - - // clockLib.h - pub fn clock_gettime(clock_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - - // clockLib.h - pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - - // clockLib.h - pub fn clock_getres(clock_id: ::clockid_t, res: *mut ::timespec) -> ::c_int; - - // clockLib.h - pub fn clock_nanosleep( - clock_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec, - ) -> ::c_int; - - // timerLib.h - pub fn nanosleep(rqtp: *const ::timespec, rmtp: *mut ::timespec) -> ::c_int; - - // socket.h - pub fn accept(s: ::c_int, addr: *mut ::sockaddr, addrlen: *mut ::socklen_t) -> ::c_int; - - // socket.h - pub fn bind(fd: ::c_int, addr: *const sockaddr, len: socklen_t) -> ::c_int; - - // socket.h - pub fn connect(s: ::c_int, name: *const ::sockaddr, namelen: ::socklen_t) -> ::c_int; - - // socket.h - pub fn getpeername(s: ::c_int, name: *mut ::sockaddr, namelen: *mut ::socklen_t) -> ::c_int; - - // socket.h - pub fn getsockname( - socket: ::c_int, - address: *mut sockaddr, - address_len: *mut socklen_t, - ) -> ::c_int; - - // socket.h - pub fn getsockopt( - sockfd: ::c_int, - level: ::c_int, - optname: ::c_int, - optval: *mut ::c_void, - optlen: *mut ::socklen_t, - ) -> ::c_int; - - // socket.h - pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; - - // socket.h - pub fn recv(s: ::c_int, buf: *mut ::c_void, bufLen: ::size_t, flags: ::c_int) -> ::ssize_t; - - // socket.h - pub fn recvfrom( - s: ::c_int, - buf: *mut ::c_void, - bufLen: ::size_t, - flags: ::c_int, - from: *mut ::sockaddr, - pFromLen: *mut ::socklen_t, - ) -> ::ssize_t; - - pub fn recvmsg(socket: ::c_int, mp: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; - - // socket.h - pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; - - pub fn sendmsg(socket: ::c_int, mp: *const ::msghdr, flags: ::c_int) -> ::ssize_t; - - // socket.h - pub fn sendto( - socket: ::c_int, - buf: *const ::c_void, - len: ::size_t, - flags: ::c_int, - addr: *const sockaddr, - addrlen: socklen_t, - ) -> ::ssize_t; - - // socket.h - pub fn setsockopt( - socket: ::c_int, - level: ::c_int, - name: ::c_int, - value: *const ::c_void, - option_len: socklen_t, - ) -> ::c_int; - - // socket.h - pub fn shutdown(s: ::c_int, how: ::c_int) -> ::c_int; - - // socket.h - pub fn socket(domain: ::c_int, _type: ::c_int, protocol: ::c_int) -> ::c_int; - - // icotl.h - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - - // fcntl.h - pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; - - // ntp_rfc2553.h for kernel - // netdb.h for user - pub fn gai_strerror(errcode: ::c_int) -> *mut ::c_char; - - // ioLib.h or - // unistd.h - pub fn close(fd: ::c_int) -> ::c_int; - - // ioLib.h or - // unistd.h - pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) -> ::ssize_t; - - // ioLib.h or - // unistd.h - pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t; - - // ioLib.h or - // unistd.h - pub fn isatty(fd: ::c_int) -> ::c_int; - - // ioLib.h or - // unistd.h - pub fn dup(src: ::c_int) -> ::c_int; - - // ioLib.h or - // unistd.h - pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; - - // ioLib.h or - // unistd.h - pub fn pipe(fds: *mut ::c_int) -> ::c_int; - - // ioLib.h or - // unistd.h - pub fn unlink(pathname: *const ::c_char) -> ::c_int; - - // unistd.h and - // ioLib.h - pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; - - // netdb.h - pub fn getaddrinfo( - node: *const ::c_char, - service: *const ::c_char, - hints: *const addrinfo, - res: *mut *mut addrinfo, - ) -> ::c_int; - - // netdb.h - pub fn freeaddrinfo(res: *mut addrinfo); - - // signal.h - pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; - - // unistd.h - pub fn getpid() -> pid_t; - - // unistd.h - pub fn getppid() -> pid_t; - - // wait.h - pub fn waitpid(pid: pid_t, status: *mut ::c_int, optons: ::c_int) -> pid_t; - - // unistd.h - pub fn sysconf(attr: ::c_int) -> ::c_long; - - // stdlib.h - pub fn setenv( - // setenv.c - envVarName: *const ::c_char, - envVarValue: *const ::c_char, - overwrite: ::c_int, - ) -> ::c_int; - - // stdlib.h - pub fn unsetenv( - // setenv.c - envVarName: *const ::c_char, - ) -> ::c_int; - - // stdlib.h - pub fn realpath(fileName: *const ::c_char, resolvedName: *mut ::c_char) -> *mut ::c_char; - - // unistd.h - pub fn link(src: *const ::c_char, dst: *const ::c_char) -> ::c_int; - - // unistd.h - pub fn readlink(path: *const ::c_char, buf: *mut ::c_char, bufsize: ::size_t) -> ::ssize_t; - - // unistd.h - pub fn symlink(path1: *const ::c_char, path2: *const ::c_char) -> ::c_int; - - // dirent.h - pub fn opendir(name: *const ::c_char) -> *mut ::DIR; - - // unistd.h - pub fn rmdir(path: *const ::c_char) -> ::c_int; - - // stat.h - pub fn mkdir(dirName: *const ::c_char, mode: ::mode_t) -> ::c_int; - - // stat.h - pub fn chmod(path: *const ::c_char, mode: ::mode_t) -> ::c_int; - - // stat.h - pub fn fchmod(attr1: ::c_int, attr2: ::mode_t) -> ::c_int; - - // unistd.h - pub fn fsync(fd: ::c_int) -> ::c_int; - - // dirent.h - pub fn closedir(ptr: *mut ::DIR) -> ::c_int; - - // sched.h - pub fn sched_yield() -> ::c_int; - - // errnoLib.h - pub fn errnoSet(err: ::c_int) -> ::c_int; - - // errnoLib.h - pub fn errnoGet() -> ::c_int; - - // unistd.h - pub fn _exit(status: ::c_int) -> !; - - // unistd.h - pub fn setgid(gid: ::gid_t) -> ::c_int; - - // unistd.h - pub fn getgid() -> ::gid_t; - - // unistd.h - pub fn setuid(uid: ::uid_t) -> ::c_int; - - // unistd.h - pub fn getuid() -> ::uid_t; - - // signal.h - pub fn sigemptyset(__set: *mut sigset_t) -> ::c_int; - - // pthread.h for kernel - // signal.h for user - pub fn pthread_sigmask( - __how: ::c_int, - __set: *const sigset_t, - __oset: *mut sigset_t, - ) -> ::c_int; - - // signal.h for user - pub fn kill(__pid: pid_t, __signo: ::c_int) -> ::c_int; - - // signal.h for user - pub fn sigqueue(__pid: pid_t, __signo: ::c_int, __value: ::sigval) -> ::c_int; - - // signal.h for user - pub fn _sigqueue( - rtpId: ::RTP_ID, - signo: ::c_int, - pValue: *const ::sigval, - sigCode: ::c_int, - ) -> ::c_int; - - // signal.h - pub fn taskKill(taskId: ::TASK_ID, signo: ::c_int) -> ::c_int; - - // signal.h - pub fn raise(__signo: ::c_int) -> ::c_int; - - // taskLibCommon.h - pub fn taskIdSelf() -> ::TASK_ID; - pub fn taskDelay(ticks: ::_Vx_ticks_t) -> ::c_int; - - // rtpLibCommon.h - pub fn rtpInfoGet(rtpId: ::RTP_ID, rtpStruct: *mut ::RTP_DESC) -> ::c_int; - pub fn rtpSpawn( - pubrtpFileName: *const ::c_char, - argv: *mut *const ::c_char, - envp: *mut *const ::c_char, - priority: ::c_int, - uStackSize: ::size_t, - options: ::c_int, - taskOptions: ::c_int, - ) -> RTP_ID; - - // ioLib.h - pub fn _realpath(fileName: *const ::c_char, resolvedName: *mut ::c_char) -> *mut ::c_char; - - // pathLib.h - pub fn _pathIsAbsolute(filepath: *const ::c_char, pNameTail: *mut *const ::c_char) -> BOOL; - - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - - // randomNumGen.h - pub fn randBytes(buf: *mut c_uchar, length: c_int) -> c_int; - pub fn randABytes(buf: *mut c_uchar, length: c_int) -> c_int; - pub fn randUBytes(buf: *mut c_uchar, length: c_int) -> c_int; - pub fn randSecure() -> c_int; - - // mqueue.h - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::c_int; - pub fn mq_receive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - ) -> ::ssize_t; - pub fn mq_timedreceive( - mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msg_prio: *mut ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::ssize_t; - pub fn mq_send( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - ) -> ::c_int; - pub fn mq_timedsend( - mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msg_prio: ::c_uint, - abs_timeout: *const ::timespec, - ) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int; -} - -//Dummy functions, these don't really exist in VxWorks. - -// wait.h macros -safe_f! { - pub {const} fn WIFEXITED(status: ::c_int) -> bool { - (status & 0xFF00) == 0 - } - pub {const} fn WIFSIGNALED(status: ::c_int) -> bool { - (status & 0xFF00) != 0 - } - pub {const} fn WIFSTOPPED(status: ::c_int) -> bool { - (status & 0xFF0000) != 0 - } - pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { - status & 0xFF - } - pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { - (status >> 8) & 0xFF - } - pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int { - (status >> 16) & 0xFF - } -} - -pub fn pread(_fd: ::c_int, _buf: *mut ::c_void, _count: ::size_t, _offset: off64_t) -> ::ssize_t { - -1 -} - -pub fn pwrite( - _fd: ::c_int, - _buf: *const ::c_void, - _count: ::size_t, - _offset: off64_t, -) -> ::ssize_t { - -1 -} -pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int { - // check to see if align is a power of 2 and if align is a multiple - // of sizeof(void *) - if (align & align - 1 != 0) || (align as usize % size_of::<::size_t>() != 0) { - return ::EINVAL; - } - - unsafe { - // posix_memalign should not set errno - let e = ::errnoGet(); - - let temp = memalign(align, size); - ::errnoSet(e as ::c_int); - - if temp.is_null() { - ::ENOMEM - } else { - *memptr = temp; - 0 - } - } -} - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} - -cfg_if! { - if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::*; - } else if #[cfg(any(target_arch = "arm"))] { - mod arm; - pub use self::arm::*; - } else if #[cfg(any(target_arch = "x86"))] { - mod x86; - pub use self::x86::*; - } else if #[cfg(any(target_arch = "x86_64"))] { - mod x86_64; - pub use self::x86_64::*; - } else if #[cfg(any(target_arch = "powerpc"))] { - mod powerpc; - pub use self::powerpc::*; - } else if #[cfg(any(target_arch = "powerpc64"))] { - mod powerpc64; - pub use self::powerpc64::*; - } else { - // Unknown target_arch - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/powerpc.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/powerpc.rs deleted file mode 100644 index 55240068a..000000000 --- a/src/rust/vendor/libc-0.2.146/src/vxworks/powerpc.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = u32; -pub type c_long = i32; -pub type c_ulong = u32; diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/powerpc64.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/powerpc64.rs deleted file mode 100644 index 4032488b6..000000000 --- a/src/rust/vendor/libc-0.2.146/src/vxworks/powerpc64.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub type c_char = u8; -pub type wchar_t = u32; -pub type c_long = i64; -pub type c_ulong = u64; diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/x86.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/x86.rs deleted file mode 100644 index e617bb83c..000000000 --- a/src/rust/vendor/libc-0.2.146/src/vxworks/x86.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; -pub type c_long = i32; -pub type c_ulong = u32; diff --git a/src/rust/vendor/libc-0.2.146/src/vxworks/x86_64.rs b/src/rust/vendor/libc-0.2.146/src/vxworks/x86_64.rs deleted file mode 100644 index 5e95ea256..000000000 --- a/src/rust/vendor/libc-0.2.146/src/vxworks/x86_64.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub type c_char = i8; -pub type wchar_t = i32; -pub type c_long = i64; -pub type c_ulong = u64; diff --git a/src/rust/vendor/libc-0.2.146/src/wasi.rs b/src/rust/vendor/libc-0.2.146/src/wasi.rs deleted file mode 100644 index 1a855e0e0..000000000 --- a/src/rust/vendor/libc-0.2.146/src/wasi.rs +++ /dev/null @@ -1,830 +0,0 @@ -use super::{Send, Sync}; - -pub use ffi::c_void; - -pub type c_char = i8; -pub type c_uchar = u8; -pub type c_schar = i8; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_long = i32; -pub type c_ulong = u32; -pub type c_longlong = i64; -pub type c_ulonglong = u64; -pub type intmax_t = i64; -pub type uintmax_t = u64; -pub type size_t = usize; -pub type ssize_t = isize; -pub type ptrdiff_t = isize; -pub type intptr_t = isize; -pub type uintptr_t = usize; -pub type off_t = i64; -pub type pid_t = i32; -pub type clock_t = c_longlong; -pub type time_t = c_longlong; -pub type c_double = f64; -pub type c_float = f32; -pub type ino_t = u64; -pub type sigset_t = c_uchar; -pub type suseconds_t = c_longlong; -pub type mode_t = u32; -pub type dev_t = u64; -pub type uid_t = u32; -pub type gid_t = u32; -pub type nlink_t = u64; -pub type blksize_t = c_long; -pub type blkcnt_t = i64; -pub type nfds_t = c_ulong; -pub type wchar_t = i32; -pub type nl_item = c_int; -pub type __wasi_rights_t = u64; - -s_no_extra_traits! { - #[repr(align(16))] - #[allow(missing_debug_implementations)] - pub struct max_align_t { - priv_: [f64; 4] - } -} - -#[allow(missing_copy_implementations)] -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum FILE {} -#[allow(missing_copy_implementations)] -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum DIR {} -#[allow(missing_copy_implementations)] -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum __locale_struct {} - -pub type locale_t = *mut __locale_struct; - -s_paren! { - // in wasi-libc clockid_t is const struct __clockid* (where __clockid is an opaque struct), - // but that's an implementation detail that we don't want to have to deal with - #[repr(transparent)] - pub struct clockid_t(*const u8); -} - -unsafe impl Send for clockid_t {} -unsafe impl Sync for clockid_t {} - -s! { - #[repr(align(8))] - pub struct fpos_t { - data: [u8; 16], - } - - pub struct tm { - pub tm_sec: c_int, - pub tm_min: c_int, - pub tm_hour: c_int, - pub tm_mday: c_int, - pub tm_mon: c_int, - pub tm_year: c_int, - pub tm_wday: c_int, - pub tm_yday: c_int, - pub tm_isdst: c_int, - pub __tm_gmtoff: c_int, - pub __tm_zone: *const c_char, - pub __tm_nsec: c_int, - } - - pub struct timeval { - pub tv_sec: time_t, - pub tv_usec: suseconds_t, - } - - pub struct timespec { - pub tv_sec: time_t, - pub tv_nsec: c_long, - } - - pub struct tms { - pub tms_utime: clock_t, - pub tms_stime: clock_t, - pub tms_cutime: clock_t, - pub tms_cstime: clock_t, - } - - pub struct itimerspec { - pub it_interval: timespec, - pub it_value: timespec, - } - - pub struct iovec { - pub iov_base: *mut c_void, - pub iov_len: size_t, - } - - pub struct lconv { - pub decimal_point: *mut c_char, - pub thousands_sep: *mut c_char, - pub grouping: *mut c_char, - pub int_curr_symbol: *mut c_char, - pub currency_symbol: *mut c_char, - pub mon_decimal_point: *mut c_char, - pub mon_thousands_sep: *mut c_char, - pub mon_grouping: *mut c_char, - pub positive_sign: *mut c_char, - pub negative_sign: *mut c_char, - pub int_frac_digits: c_char, - pub frac_digits: c_char, - pub p_cs_precedes: c_char, - pub p_sep_by_space: c_char, - pub n_cs_precedes: c_char, - pub n_sep_by_space: c_char, - pub p_sign_posn: c_char, - pub n_sign_posn: c_char, - pub int_p_cs_precedes: c_char, - pub int_p_sep_by_space: c_char, - pub int_n_cs_precedes: c_char, - pub int_n_sep_by_space: c_char, - pub int_p_sign_posn: c_char, - pub int_n_sign_posn: c_char, - } - - pub struct pollfd { - pub fd: c_int, - pub events: c_short, - pub revents: c_short, - } - - pub struct rusage { - pub ru_utime: timeval, - pub ru_stime: timeval, - } - - pub struct stat { - pub st_dev: dev_t, - pub st_ino: ino_t, - pub st_nlink: nlink_t, - pub st_mode: mode_t, - pub st_uid: uid_t, - pub st_gid: gid_t, - __pad0: c_uint, - pub st_rdev: dev_t, - pub st_size: off_t, - pub st_blksize: blksize_t, - pub st_blocks: blkcnt_t, - pub st_atim: timespec, - pub st_mtim: timespec, - pub st_ctim: timespec, - __reserved: [c_longlong; 3], - } -} - -// Declare dirent outside of s! so that it doesn't implement Copy, Eq, Hash, -// etc., since it contains a flexible array member with a dynamic size. -#[repr(C)] -#[allow(missing_copy_implementations)] -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub struct dirent { - pub d_ino: ino_t, - pub d_type: c_uchar, - /// d_name is declared in WASI libc as a flexible array member, which - /// can't be directly expressed in Rust. As an imperfect workaround, - /// declare it as a zero-length array instead. - pub d_name: [c_char; 0], -} - -pub const EXIT_SUCCESS: c_int = 0; -pub const EXIT_FAILURE: c_int = 1; -pub const STDIN_FILENO: c_int = 0; -pub const STDOUT_FILENO: c_int = 1; -pub const STDERR_FILENO: c_int = 2; -pub const SEEK_SET: c_int = 0; -pub const SEEK_CUR: c_int = 1; -pub const SEEK_END: c_int = 2; -pub const _IOFBF: c_int = 0; -pub const _IONBF: c_int = 2; -pub const _IOLBF: c_int = 1; -pub const F_GETFD: c_int = 1; -pub const F_SETFD: c_int = 2; -pub const F_GETFL: c_int = 3; -pub const F_SETFL: c_int = 4; -pub const FD_CLOEXEC: c_int = 1; -pub const FD_SETSIZE: size_t = 1024; -pub const O_APPEND: c_int = 0x0001; -pub const O_DSYNC: c_int = 0x0002; -pub const O_NONBLOCK: c_int = 0x0004; -pub const O_RSYNC: c_int = 0x0008; -pub const O_SYNC: c_int = 0x0010; -pub const O_CREAT: c_int = 0x0001 << 12; -pub const O_DIRECTORY: c_int = 0x0002 << 12; -pub const O_EXCL: c_int = 0x0004 << 12; -pub const O_TRUNC: c_int = 0x0008 << 12; -pub const O_NOFOLLOW: c_int = 0x01000000; -pub const O_EXEC: c_int = 0x02000000; -pub const O_RDONLY: c_int = 0x04000000; -pub const O_SEARCH: c_int = 0x08000000; -pub const O_WRONLY: c_int = 0x10000000; -pub const O_CLOEXEC: c_int = 0x0; -pub const O_RDWR: c_int = O_WRONLY | O_RDONLY; -pub const O_ACCMODE: c_int = O_EXEC | O_RDWR | O_SEARCH; -pub const O_NOCTTY: c_int = 0x0; -pub const POSIX_FADV_DONTNEED: c_int = 4; -pub const POSIX_FADV_NOREUSE: c_int = 5; -pub const POSIX_FADV_NORMAL: c_int = 0; -pub const POSIX_FADV_RANDOM: c_int = 2; -pub const POSIX_FADV_SEQUENTIAL: c_int = 1; -pub const POSIX_FADV_WILLNEED: c_int = 3; -pub const AT_FDCWD: ::c_int = -2; -pub const AT_EACCESS: c_int = 0x0; -pub const AT_SYMLINK_NOFOLLOW: c_int = 0x1; -pub const AT_SYMLINK_FOLLOW: c_int = 0x2; -pub const AT_REMOVEDIR: c_int = 0x4; -pub const UTIME_OMIT: c_long = 0xfffffffe; -pub const UTIME_NOW: c_long = 0xffffffff; -pub const S_IFIFO: mode_t = 49152; -pub const S_IFCHR: mode_t = 8192; -pub const S_IFBLK: mode_t = 24576; -pub const S_IFDIR: mode_t = 16384; -pub const S_IFREG: mode_t = 32768; -pub const S_IFLNK: mode_t = 40960; -pub const S_IFSOCK: mode_t = 49152; -pub const S_IFMT: mode_t = 57344; -pub const S_IRWXO: mode_t = 0x7; -pub const S_IXOTH: mode_t = 0x1; -pub const S_IWOTH: mode_t = 0x2; -pub const S_IROTH: mode_t = 0x4; -pub const S_IRWXG: mode_t = 0x38; -pub const S_IXGRP: mode_t = 0x8; -pub const S_IWGRP: mode_t = 0x10; -pub const S_IRGRP: mode_t = 0x20; -pub const S_IRWXU: mode_t = 0x1c0; -pub const S_IXUSR: mode_t = 0x40; -pub const S_IWUSR: mode_t = 0x80; -pub const S_IRUSR: mode_t = 0x100; -pub const S_ISVTX: mode_t = 0x200; -pub const S_ISGID: mode_t = 0x400; -pub const S_ISUID: mode_t = 0x800; -pub const DT_UNKNOWN: u8 = 0; -pub const DT_BLK: u8 = 1; -pub const DT_CHR: u8 = 2; -pub const DT_DIR: u8 = 3; -pub const DT_REG: u8 = 4; -pub const DT_LNK: u8 = 7; -pub const FIONREAD: c_int = 1; -pub const FIONBIO: c_int = 2; -pub const F_OK: ::c_int = 0; -pub const R_OK: ::c_int = 4; -pub const W_OK: ::c_int = 2; -pub const X_OK: ::c_int = 1; -pub const POLLIN: ::c_short = 0x1; -pub const POLLOUT: ::c_short = 0x2; -pub const POLLERR: ::c_short = 0x1000; -pub const POLLHUP: ::c_short = 0x2000; -pub const POLLNVAL: ::c_short = 0x4000; -pub const POLLRDNORM: ::c_short = 0x1; -pub const POLLWRNORM: ::c_short = 0x2; - -pub const E2BIG: c_int = 1; -pub const EACCES: c_int = 2; -pub const EADDRINUSE: c_int = 3; -pub const EADDRNOTAVAIL: c_int = 4; -pub const EAFNOSUPPORT: c_int = 5; -pub const EAGAIN: c_int = 6; -pub const EALREADY: c_int = 7; -pub const EBADF: c_int = 8; -pub const EBADMSG: c_int = 9; -pub const EBUSY: c_int = 10; -pub const ECANCELED: c_int = 11; -pub const ECHILD: c_int = 12; -pub const ECONNABORTED: c_int = 13; -pub const ECONNREFUSED: c_int = 14; -pub const ECONNRESET: c_int = 15; -pub const EDEADLK: c_int = 16; -pub const EDESTADDRREQ: c_int = 17; -pub const EDOM: c_int = 18; -pub const EDQUOT: c_int = 19; -pub const EEXIST: c_int = 20; -pub const EFAULT: c_int = 21; -pub const EFBIG: c_int = 22; -pub const EHOSTUNREACH: c_int = 23; -pub const EIDRM: c_int = 24; -pub const EILSEQ: c_int = 25; -pub const EINPROGRESS: c_int = 26; -pub const EINTR: c_int = 27; -pub const EINVAL: c_int = 28; -pub const EIO: c_int = 29; -pub const EISCONN: c_int = 30; -pub const EISDIR: c_int = 31; -pub const ELOOP: c_int = 32; -pub const EMFILE: c_int = 33; -pub const EMLINK: c_int = 34; -pub const EMSGSIZE: c_int = 35; -pub const EMULTIHOP: c_int = 36; -pub const ENAMETOOLONG: c_int = 37; -pub const ENETDOWN: c_int = 38; -pub const ENETRESET: c_int = 39; -pub const ENETUNREACH: c_int = 40; -pub const ENFILE: c_int = 41; -pub const ENOBUFS: c_int = 42; -pub const ENODEV: c_int = 43; -pub const ENOENT: c_int = 44; -pub const ENOEXEC: c_int = 45; -pub const ENOLCK: c_int = 46; -pub const ENOLINK: c_int = 47; -pub const ENOMEM: c_int = 48; -pub const ENOMSG: c_int = 49; -pub const ENOPROTOOPT: c_int = 50; -pub const ENOSPC: c_int = 51; -pub const ENOSYS: c_int = 52; -pub const ENOTCONN: c_int = 53; -pub const ENOTDIR: c_int = 54; -pub const ENOTEMPTY: c_int = 55; -pub const ENOTRECOVERABLE: c_int = 56; -pub const ENOTSOCK: c_int = 57; -pub const ENOTSUP: c_int = 58; -pub const ENOTTY: c_int = 59; -pub const ENXIO: c_int = 60; -pub const EOVERFLOW: c_int = 61; -pub const EOWNERDEAD: c_int = 62; -pub const EPERM: c_int = 63; -pub const EPIPE: c_int = 64; -pub const EPROTO: c_int = 65; -pub const EPROTONOSUPPORT: c_int = 66; -pub const EPROTOTYPE: c_int = 67; -pub const ERANGE: c_int = 68; -pub const EROFS: c_int = 69; -pub const ESPIPE: c_int = 70; -pub const ESRCH: c_int = 71; -pub const ESTALE: c_int = 72; -pub const ETIMEDOUT: c_int = 73; -pub const ETXTBSY: c_int = 74; -pub const EXDEV: c_int = 75; -pub const ENOTCAPABLE: c_int = 76; -pub const EOPNOTSUPP: c_int = ENOTSUP; -pub const EWOULDBLOCK: c_int = EAGAIN; - -pub const _SC_PAGESIZE: c_int = 30; -pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_IOV_MAX: c_int = 60; -pub const _SC_SYMLOOP_MAX: c_int = 173; - -pub static CLOCK_MONOTONIC: clockid_t = unsafe { clockid_t(ptr_addr_of!(_CLOCK_MONOTONIC)) }; -pub static CLOCK_PROCESS_CPUTIME_ID: clockid_t = - unsafe { clockid_t(ptr_addr_of!(_CLOCK_PROCESS_CPUTIME_ID)) }; -pub static CLOCK_REALTIME: clockid_t = unsafe { clockid_t(ptr_addr_of!(_CLOCK_REALTIME)) }; -pub static CLOCK_THREAD_CPUTIME_ID: clockid_t = - unsafe { clockid_t(ptr_addr_of!(_CLOCK_THREAD_CPUTIME_ID)) }; - -pub const ABDAY_1: ::nl_item = 0x20000; -pub const ABDAY_2: ::nl_item = 0x20001; -pub const ABDAY_3: ::nl_item = 0x20002; -pub const ABDAY_4: ::nl_item = 0x20003; -pub const ABDAY_5: ::nl_item = 0x20004; -pub const ABDAY_6: ::nl_item = 0x20005; -pub const ABDAY_7: ::nl_item = 0x20006; - -pub const DAY_1: ::nl_item = 0x20007; -pub const DAY_2: ::nl_item = 0x20008; -pub const DAY_3: ::nl_item = 0x20009; -pub const DAY_4: ::nl_item = 0x2000A; -pub const DAY_5: ::nl_item = 0x2000B; -pub const DAY_6: ::nl_item = 0x2000C; -pub const DAY_7: ::nl_item = 0x2000D; - -pub const ABMON_1: ::nl_item = 0x2000E; -pub const ABMON_2: ::nl_item = 0x2000F; -pub const ABMON_3: ::nl_item = 0x20010; -pub const ABMON_4: ::nl_item = 0x20011; -pub const ABMON_5: ::nl_item = 0x20012; -pub const ABMON_6: ::nl_item = 0x20013; -pub const ABMON_7: ::nl_item = 0x20014; -pub const ABMON_8: ::nl_item = 0x20015; -pub const ABMON_9: ::nl_item = 0x20016; -pub const ABMON_10: ::nl_item = 0x20017; -pub const ABMON_11: ::nl_item = 0x20018; -pub const ABMON_12: ::nl_item = 0x20019; - -pub const MON_1: ::nl_item = 0x2001A; -pub const MON_2: ::nl_item = 0x2001B; -pub const MON_3: ::nl_item = 0x2001C; -pub const MON_4: ::nl_item = 0x2001D; -pub const MON_5: ::nl_item = 0x2001E; -pub const MON_6: ::nl_item = 0x2001F; -pub const MON_7: ::nl_item = 0x20020; -pub const MON_8: ::nl_item = 0x20021; -pub const MON_9: ::nl_item = 0x20022; -pub const MON_10: ::nl_item = 0x20023; -pub const MON_11: ::nl_item = 0x20024; -pub const MON_12: ::nl_item = 0x20025; - -pub const AM_STR: ::nl_item = 0x20026; -pub const PM_STR: ::nl_item = 0x20027; - -pub const D_T_FMT: ::nl_item = 0x20028; -pub const D_FMT: ::nl_item = 0x20029; -pub const T_FMT: ::nl_item = 0x2002A; -pub const T_FMT_AMPM: ::nl_item = 0x2002B; - -pub const ERA: ::nl_item = 0x2002C; -pub const ERA_D_FMT: ::nl_item = 0x2002E; -pub const ALT_DIGITS: ::nl_item = 0x2002F; -pub const ERA_D_T_FMT: ::nl_item = 0x20030; -pub const ERA_T_FMT: ::nl_item = 0x20031; - -pub const CODESET: ::nl_item = 14; -pub const CRNCYSTR: ::nl_item = 0x4000F; -pub const RADIXCHAR: ::nl_item = 0x10000; -pub const THOUSEP: ::nl_item = 0x10001; -pub const YESEXPR: ::nl_item = 0x50000; -pub const NOEXPR: ::nl_item = 0x50001; -pub const YESSTR: ::nl_item = 0x50002; -pub const NOSTR: ::nl_item = 0x50003; - -#[cfg_attr( - feature = "rustc-dep-of-std", - link( - name = "c", - kind = "static", - modifiers = "-bundle", - cfg(target_feature = "crt-static") - ) -)] -#[cfg_attr( - feature = "rustc-dep-of-std", - link(name = "c", cfg(not(target_feature = "crt-static"))) -)] -extern "C" { - pub fn _Exit(code: c_int) -> !; - pub fn _exit(code: c_int) -> !; - pub fn abort() -> !; - pub fn aligned_alloc(a: size_t, b: size_t) -> *mut c_void; - pub fn calloc(amt: size_t, amt2: size_t) -> *mut c_void; - pub fn exit(code: c_int) -> !; - pub fn free(ptr: *mut c_void); - pub fn getenv(s: *const c_char) -> *mut c_char; - pub fn malloc(amt: size_t) -> *mut c_void; - pub fn malloc_usable_size(ptr: *mut c_void) -> size_t; - pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; - pub fn rand() -> c_int; - pub fn read(fd: c_int, ptr: *mut c_void, size: size_t) -> ssize_t; - pub fn realloc(ptr: *mut c_void, amt: size_t) -> *mut c_void; - pub fn setenv(k: *const c_char, v: *const c_char, a: c_int) -> c_int; - pub fn unsetenv(k: *const c_char) -> c_int; - pub fn clearenv() -> ::c_int; - pub fn write(fd: c_int, ptr: *const c_void, size: size_t) -> ssize_t; - pub static mut environ: *mut *mut c_char; - pub fn fopen(a: *const c_char, b: *const c_char) -> *mut FILE; - pub fn freopen(a: *const c_char, b: *const c_char, f: *mut FILE) -> *mut FILE; - pub fn fclose(f: *mut FILE) -> c_int; - pub fn remove(a: *const c_char) -> c_int; - pub fn rename(a: *const c_char, b: *const c_char) -> c_int; - pub fn feof(f: *mut FILE) -> c_int; - pub fn ferror(f: *mut FILE) -> c_int; - pub fn fflush(f: *mut FILE) -> c_int; - pub fn clearerr(f: *mut FILE); - pub fn fseek(f: *mut FILE, b: c_long, c: c_int) -> c_int; - pub fn ftell(f: *mut FILE) -> c_long; - pub fn rewind(f: *mut FILE); - pub fn fgetpos(f: *mut FILE, pos: *mut fpos_t) -> c_int; - pub fn fsetpos(f: *mut FILE, pos: *const fpos_t) -> c_int; - pub fn fread(buf: *mut c_void, a: size_t, b: size_t, f: *mut FILE) -> size_t; - pub fn fwrite(buf: *const c_void, a: size_t, b: size_t, f: *mut FILE) -> size_t; - pub fn fgetc(f: *mut FILE) -> c_int; - pub fn getc(f: *mut FILE) -> c_int; - pub fn getchar() -> c_int; - pub fn ungetc(a: c_int, f: *mut FILE) -> c_int; - pub fn fputc(a: c_int, f: *mut FILE) -> c_int; - pub fn putc(a: c_int, f: *mut FILE) -> c_int; - pub fn putchar(a: c_int) -> c_int; - pub fn fputs(a: *const c_char, f: *mut FILE) -> c_int; - pub fn puts(a: *const c_char) -> c_int; - pub fn perror(a: *const c_char); - pub fn srand(a: c_uint); - pub fn atexit(a: extern "C" fn()) -> c_int; - pub fn at_quick_exit(a: extern "C" fn()) -> c_int; - pub fn quick_exit(a: c_int) -> !; - pub fn posix_memalign(a: *mut *mut c_void, b: size_t, c: size_t) -> c_int; - pub fn rand_r(a: *mut c_uint) -> c_int; - pub fn random() -> c_long; - pub fn srandom(a: c_uint); - pub fn putenv(a: *mut c_char) -> c_int; - pub fn clock() -> clock_t; - pub fn time(a: *mut time_t) -> time_t; - pub fn difftime(a: time_t, b: time_t) -> c_double; - pub fn mktime(a: *mut tm) -> time_t; - pub fn strftime(a: *mut c_char, b: size_t, c: *const c_char, d: *const tm) -> size_t; - pub fn gmtime(a: *const time_t) -> *mut tm; - pub fn gmtime_r(a: *const time_t, b: *mut tm) -> *mut tm; - pub fn localtime(a: *const time_t) -> *mut tm; - pub fn localtime_r(a: *const time_t, b: *mut tm) -> *mut tm; - pub fn asctime_r(a: *const tm, b: *mut c_char) -> *mut c_char; - pub fn ctime_r(a: *const time_t, b: *mut c_char) -> *mut c_char; - - static _CLOCK_MONOTONIC: u8; - static _CLOCK_PROCESS_CPUTIME_ID: u8; - static _CLOCK_REALTIME: u8; - static _CLOCK_THREAD_CPUTIME_ID: u8; - pub fn nanosleep(a: *const timespec, b: *mut timespec) -> c_int; - pub fn clock_getres(a: clockid_t, b: *mut timespec) -> c_int; - pub fn clock_gettime(a: clockid_t, b: *mut timespec) -> c_int; - pub fn clock_nanosleep(a: clockid_t, a2: c_int, b: *const timespec, c: *mut timespec) -> c_int; - - pub fn isalnum(c: c_int) -> c_int; - pub fn isalpha(c: c_int) -> c_int; - pub fn iscntrl(c: c_int) -> c_int; - pub fn isdigit(c: c_int) -> c_int; - pub fn isgraph(c: c_int) -> c_int; - pub fn islower(c: c_int) -> c_int; - pub fn isprint(c: c_int) -> c_int; - pub fn ispunct(c: c_int) -> c_int; - pub fn isspace(c: c_int) -> c_int; - pub fn isupper(c: c_int) -> c_int; - pub fn isxdigit(c: c_int) -> c_int; - pub fn isblank(c: c_int) -> c_int; - pub fn tolower(c: c_int) -> c_int; - pub fn toupper(c: c_int) -> c_int; - pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int; - pub fn setbuf(stream: *mut FILE, buf: *mut c_char); - pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; - pub fn atof(s: *const c_char) -> c_double; - pub fn atoi(s: *const c_char) -> c_int; - pub fn atol(s: *const c_char) -> c_long; - pub fn atoll(s: *const c_char) -> c_longlong; - pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; - pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float; - pub fn strtol(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_long; - pub fn strtoll(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_longlong; - pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulong; - pub fn strtoull(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulonglong; - - pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; - pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; - pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; - pub fn strncat(s: *mut c_char, ct: *const c_char, n: size_t) -> *mut c_char; - pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; - pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; - pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; - pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char; - pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char; - pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t; - pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t; - pub fn strdup(cs: *const c_char) -> *mut c_char; - pub fn strndup(cs: *const c_char, n: size_t) -> *mut c_char; - pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; - pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; - pub fn strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; - pub fn strncasecmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; - pub fn strlen(cs: *const c_char) -> size_t; - pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; - pub fn strerror(n: c_int) -> *mut c_char; - pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; - pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; - - pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; - pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; - pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; - pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; - pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; - - pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn printf(format: *const ::c_char, ...) -> ::c_int; - pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int; - pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; - pub fn scanf(format: *const ::c_char, ...) -> ::c_int; - pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn getchar_unlocked() -> ::c_int; - pub fn putchar_unlocked(c: ::c_int) -> ::c_int; - - pub fn shutdown(socket: ::c_int, how: ::c_int) -> ::c_int; - pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; - pub fn mkdir(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; - pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; - pub fn fileno(stream: *mut ::FILE) -> ::c_int; - pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn opendir(dirname: *const c_char) -> *mut ::DIR; - pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; - pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; - pub fn closedir(dirp: *mut ::DIR) -> ::c_int; - pub fn rewinddir(dirp: *mut ::DIR); - pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - - pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int, ...) -> ::c_int; - pub fn fstatat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut stat, - flags: ::c_int, - ) -> ::c_int; - pub fn linkat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - flags: ::c_int, - ) -> ::c_int; - pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; - pub fn readlinkat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut ::c_char, - bufsiz: ::size_t, - ) -> ::ssize_t; - pub fn renameat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - ) -> ::c_int; - pub fn symlinkat( - target: *const ::c_char, - newdirfd: ::c_int, - linkpath: *const ::c_char, - ) -> ::c_int; - pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int) -> ::c_int; - - pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; - pub fn close(fd: ::c_int) -> ::c_int; - pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; - pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int; - pub fn isatty(fd: ::c_int) -> ::c_int; - pub fn link(src: *const c_char, dst: *const c_char) -> ::c_int; - pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; - pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; - pub fn rmdir(path: *const c_char) -> ::c_int; - pub fn sleep(secs: ::c_uint) -> ::c_uint; - pub fn unlink(c: *const c_char) -> ::c_int; - pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; - pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; - - pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; - - pub fn fsync(fd: ::c_int) -> ::c_int; - pub fn fdatasync(fd: ::c_int) -> ::c_int; - - pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; - - pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; - pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; - - pub fn getrusage(resource: ::c_int, usage: *mut rusage) -> ::c_int; - - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn times(buf: *mut ::tms) -> ::clock_t; - - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - - pub fn usleep(secs: ::c_uint) -> ::c_int; - pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; - pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; - pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; - pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char; - pub fn localeconv() -> *mut lconv; - - pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::ssize_t; - - pub fn timegm(tm: *mut ::tm) -> time_t; - - pub fn sysconf(name: ::c_int) -> ::c_long; - - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - - pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int; - pub fn ftello(stream: *mut ::FILE) -> ::off_t; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; - - pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char; - pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t; - - pub fn faccessat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::c_int, - flags: ::c_int, - ) -> ::c_int; - pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t; - pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) - -> ::ssize_t; - pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int; - pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn utimensat( - dirfd: ::c_int, - path: *const ::c_char, - times: *const ::timespec, - flag: ::c_int, - ) -> ::c_int; - pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; - pub fn abs(i: c_int) -> c_int; - pub fn labs(i: c_long) -> c_long; - pub fn duplocale(base: ::locale_t) -> ::locale_t; - pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn sched_yield() -> ::c_int; - pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; - pub fn chdir(dir: *const c_char) -> ::c_int; - - pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - pub fn nl_langinfo_l(item: ::nl_item, loc: ::locale_t) -> *mut ::c_char; - - pub fn __wasilibc_register_preopened_fd(fd: c_int, path: *const c_char) -> c_int; - pub fn __wasilibc_fd_renumber(fd: c_int, newfd: c_int) -> c_int; - pub fn __wasilibc_unlinkat(fd: c_int, path: *const c_char) -> c_int; - pub fn __wasilibc_rmdirat(fd: c_int, path: *const c_char) -> c_int; - pub fn __wasilibc_find_relpath( - path: *const c_char, - abs_prefix: *mut *const c_char, - relative_path: *mut *mut c_char, - relative_path_len: usize, - ) -> c_int; - pub fn __wasilibc_tell(fd: c_int) -> ::off_t; - pub fn __wasilibc_nocwd___wasilibc_unlinkat(dirfd: c_int, path: *const c_char) -> c_int; - pub fn __wasilibc_nocwd___wasilibc_rmdirat(dirfd: c_int, path: *const c_char) -> c_int; - pub fn __wasilibc_nocwd_linkat( - olddirfd: c_int, - oldpath: *const c_char, - newdirfd: c_int, - newpath: *const c_char, - flags: c_int, - ) -> c_int; - pub fn __wasilibc_nocwd_symlinkat( - target: *const c_char, - dirfd: c_int, - path: *const c_char, - ) -> c_int; - pub fn __wasilibc_nocwd_readlinkat( - dirfd: c_int, - path: *const c_char, - buf: *mut c_char, - bufsize: usize, - ) -> isize; - pub fn __wasilibc_nocwd_faccessat( - dirfd: c_int, - path: *const c_char, - mode: c_int, - flags: c_int, - ) -> c_int; - pub fn __wasilibc_nocwd_renameat( - olddirfd: c_int, - oldpath: *const c_char, - newdirfd: c_int, - newpath: *const c_char, - ) -> c_int; - pub fn __wasilibc_nocwd_openat_nomode(dirfd: c_int, path: *const c_char, flags: c_int) - -> c_int; - pub fn __wasilibc_nocwd_fstatat( - dirfd: c_int, - path: *const c_char, - buf: *mut stat, - flags: c_int, - ) -> c_int; - pub fn __wasilibc_nocwd_mkdirat_nomode(dirfd: c_int, path: *const c_char) -> c_int; - pub fn __wasilibc_nocwd_utimensat( - dirfd: c_int, - path: *const c_char, - times: *const ::timespec, - flags: c_int, - ) -> c_int; - pub fn __wasilibc_nocwd_opendirat(dirfd: c_int, path: *const c_char) -> *mut ::DIR; - pub fn __wasilibc_access(pathname: *const c_char, mode: c_int, flags: c_int) -> c_int; - pub fn __wasilibc_stat(pathname: *const c_char, buf: *mut stat, flags: c_int) -> c_int; - pub fn __wasilibc_utimens( - pathname: *const c_char, - times: *const ::timespec, - flags: c_int, - ) -> c_int; - pub fn __wasilibc_link(oldpath: *const c_char, newpath: *const c_char, flags: c_int) -> c_int; - pub fn __wasilibc_link_oldat( - olddirfd: c_int, - oldpath: *const c_char, - newpath: *const c_char, - flags: c_int, - ) -> c_int; - pub fn __wasilibc_link_newat( - oldpath: *const c_char, - newdirfd: c_int, - newpath: *const c_char, - flags: c_int, - ) -> c_int; - pub fn __wasilibc_rename_oldat( - olddirfd: c_int, - oldpath: *const c_char, - newpath: *const c_char, - ) -> c_int; - pub fn __wasilibc_rename_newat( - oldpath: *const c_char, - newdirfd: c_int, - newpath: *const c_char, - ) -> c_int; - - pub fn arc4random() -> u32; - pub fn arc4random_buf(a: *mut c_void, b: size_t); - pub fn arc4random_uniform(a: u32) -> u32; - - pub fn __errno_location() -> *mut ::c_int; -} diff --git a/src/rust/vendor/libc-0.2.146/src/windows/gnu/align.rs b/src/rust/vendor/libc-0.2.146/src/windows/gnu/align.rs deleted file mode 100644 index 3af99e3ca..000000000 --- a/src/rust/vendor/libc-0.2.146/src/windows/gnu/align.rs +++ /dev/null @@ -1,19 +0,0 @@ -cfg_if! { - if #[cfg(target_pointer_width = "64")] { - s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [f64; 4] - } - } - } else if #[cfg(target_pointer_width = "32")] { - s_no_extra_traits! { - #[allow(missing_debug_implementations)] - #[repr(align(16))] - pub struct max_align_t { - priv_: [i64; 6] - } - } - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/windows/gnu/mod.rs b/src/rust/vendor/libc-0.2.146/src/windows/gnu/mod.rs deleted file mode 100644 index 3e7d38b8e..000000000 --- a/src/rust/vendor/libc-0.2.146/src/windows/gnu/mod.rs +++ /dev/null @@ -1,23 +0,0 @@ -pub const L_tmpnam: ::c_uint = 14; -pub const TMP_MAX: ::c_uint = 0x7fff; - -// stdio file descriptor numbers -pub const STDIN_FILENO: ::c_int = 0; -pub const STDOUT_FILENO: ::c_int = 1; -pub const STDERR_FILENO: ::c_int = 2; - -extern "C" { - pub fn strcasecmp(s1: *const ::c_char, s2: *const ::c_char) -> ::c_int; - pub fn strncasecmp(s1: *const ::c_char, s2: *const ::c_char, n: ::size_t) -> ::c_int; - - // NOTE: For MSVC target, `wmemchr` is only a inline function in `` - // header file. We cannot find a way to link to that symbol from Rust. - pub fn wmemchr(cx: *const ::wchar_t, c: ::wchar_t, n: ::size_t) -> *mut ::wchar_t; -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/windows/mod.rs b/src/rust/vendor/libc-0.2.146/src/windows/mod.rs deleted file mode 100644 index 26bff7f7a..000000000 --- a/src/rust/vendor/libc-0.2.146/src/windows/mod.rs +++ /dev/null @@ -1,600 +0,0 @@ -//! Windows CRT definitions - -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; -pub type intmax_t = i64; -pub type uintmax_t = u64; - -pub type size_t = usize; -pub type ptrdiff_t = isize; -pub type intptr_t = isize; -pub type uintptr_t = usize; -pub type ssize_t = isize; -pub type sighandler_t = usize; - -pub type c_char = i8; -pub type c_long = i32; -pub type c_ulong = u32; -pub type wchar_t = u16; - -pub type clock_t = i32; - -pub type errno_t = ::c_int; - -cfg_if! { - if #[cfg(all(target_arch = "x86", target_env = "gnu"))] { - pub type time_t = i32; - } else { - pub type time_t = i64; - } -} - -pub type off_t = i32; -pub type dev_t = u32; -pub type ino_t = u16; -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum timezone {} -impl ::Copy for timezone {} -impl ::Clone for timezone { - fn clone(&self) -> timezone { - *self - } -} -pub type time64_t = i64; - -pub type SOCKET = ::uintptr_t; - -s! { - // note this is the struct called stat64 in Windows. Not stat, nor stati64. - pub struct stat { - pub st_dev: dev_t, - pub st_ino: ino_t, - pub st_mode: u16, - pub st_nlink: ::c_short, - pub st_uid: ::c_short, - pub st_gid: ::c_short, - pub st_rdev: dev_t, - pub st_size: i64, - pub st_atime: time64_t, - pub st_mtime: time64_t, - pub st_ctime: time64_t, - } - - // note that this is called utimbuf64 in Windows - pub struct utimbuf { - pub actime: time64_t, - pub modtime: time64_t, - } - - pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, - } - - pub struct timeval { - pub tv_sec: c_long, - pub tv_usec: c_long, - } - - pub struct timespec { - pub tv_sec: time_t, - pub tv_nsec: c_long, - } - - pub struct sockaddr { - pub sa_family: c_ushort, - pub sa_data: [c_char; 14], - } -} - -pub const INT_MIN: c_int = -2147483648; -pub const INT_MAX: c_int = 2147483647; - -pub const EXIT_FAILURE: ::c_int = 1; -pub const EXIT_SUCCESS: ::c_int = 0; -pub const RAND_MAX: ::c_int = 32767; -pub const EOF: ::c_int = -1; -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; -pub const _IOFBF: ::c_int = 0; -pub const _IONBF: ::c_int = 4; -pub const _IOLBF: ::c_int = 64; -pub const BUFSIZ: ::c_uint = 512; -pub const FOPEN_MAX: ::c_uint = 20; -pub const FILENAME_MAX: ::c_uint = 260; - -// fcntl.h -pub const O_RDONLY: ::c_int = 0x0000; -pub const O_WRONLY: ::c_int = 0x0001; -pub const O_RDWR: ::c_int = 0x0002; -pub const O_APPEND: ::c_int = 0x0008; -pub const O_CREAT: ::c_int = 0x0100; -pub const O_TRUNC: ::c_int = 0x0200; -pub const O_EXCL: ::c_int = 0x0400; -pub const O_TEXT: ::c_int = 0x4000; -pub const O_BINARY: ::c_int = 0x8000; -pub const _O_WTEXT: ::c_int = 0x10000; -pub const _O_U16TEXT: ::c_int = 0x20000; -pub const _O_U8TEXT: ::c_int = 0x40000; -pub const O_RAW: ::c_int = O_BINARY; -pub const O_NOINHERIT: ::c_int = 0x0080; -pub const O_TEMPORARY: ::c_int = 0x0040; -pub const _O_SHORT_LIVED: ::c_int = 0x1000; -pub const _O_OBTAIN_DIR: ::c_int = 0x2000; -pub const O_SEQUENTIAL: ::c_int = 0x0020; -pub const O_RANDOM: ::c_int = 0x0010; - -pub const S_IFCHR: ::c_int = 8192; -pub const S_IFDIR: ::c_int = 16384; -pub const S_IFREG: ::c_int = 32768; -pub const S_IFMT: ::c_int = 61440; -pub const S_IEXEC: ::c_int = 64; -pub const S_IWRITE: ::c_int = 128; -pub const S_IREAD: ::c_int = 256; - -pub const LC_ALL: ::c_int = 0; -pub const LC_COLLATE: ::c_int = 1; -pub const LC_CTYPE: ::c_int = 2; -pub const LC_MONETARY: ::c_int = 3; -pub const LC_NUMERIC: ::c_int = 4; -pub const LC_TIME: ::c_int = 5; - -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EDEADLK: ::c_int = 36; -pub const EDEADLOCK: ::c_int = 36; -pub const ENAMETOOLONG: ::c_int = 38; -pub const ENOLCK: ::c_int = 39; -pub const ENOSYS: ::c_int = 40; -pub const ENOTEMPTY: ::c_int = 41; -pub const EILSEQ: ::c_int = 42; -pub const STRUNCATE: ::c_int = 80; - -// POSIX Supplement (from errno.h) -pub const EADDRINUSE: ::c_int = 100; -pub const EADDRNOTAVAIL: ::c_int = 101; -pub const EAFNOSUPPORT: ::c_int = 102; -pub const EALREADY: ::c_int = 103; -pub const EBADMSG: ::c_int = 104; -pub const ECANCELED: ::c_int = 105; -pub const ECONNABORTED: ::c_int = 106; -pub const ECONNREFUSED: ::c_int = 107; -pub const ECONNRESET: ::c_int = 108; -pub const EDESTADDRREQ: ::c_int = 109; -pub const EHOSTUNREACH: ::c_int = 110; -pub const EIDRM: ::c_int = 111; -pub const EINPROGRESS: ::c_int = 112; -pub const EISCONN: ::c_int = 113; -pub const ELOOP: ::c_int = 114; -pub const EMSGSIZE: ::c_int = 115; -pub const ENETDOWN: ::c_int = 116; -pub const ENETRESET: ::c_int = 117; -pub const ENETUNREACH: ::c_int = 118; -pub const ENOBUFS: ::c_int = 119; -pub const ENODATA: ::c_int = 120; -pub const ENOLINK: ::c_int = 121; -pub const ENOMSG: ::c_int = 122; -pub const ENOPROTOOPT: ::c_int = 123; -pub const ENOSR: ::c_int = 124; -pub const ENOSTR: ::c_int = 125; -pub const ENOTCONN: ::c_int = 126; -pub const ENOTRECOVERABLE: ::c_int = 127; -pub const ENOTSOCK: ::c_int = 128; -pub const ENOTSUP: ::c_int = 129; -pub const EOPNOTSUPP: ::c_int = 130; -pub const EOVERFLOW: ::c_int = 132; -pub const EOWNERDEAD: ::c_int = 133; -pub const EPROTO: ::c_int = 134; -pub const EPROTONOSUPPORT: ::c_int = 135; -pub const EPROTOTYPE: ::c_int = 136; -pub const ETIME: ::c_int = 137; -pub const ETIMEDOUT: ::c_int = 138; -pub const ETXTBSY: ::c_int = 139; -pub const EWOULDBLOCK: ::c_int = 140; - -// signal codes -pub const SIGINT: ::c_int = 2; -pub const SIGILL: ::c_int = 4; -pub const SIGFPE: ::c_int = 8; -pub const SIGSEGV: ::c_int = 11; -pub const SIGTERM: ::c_int = 15; -pub const SIGABRT: ::c_int = 22; -pub const NSIG: ::c_int = 23; - -pub const SIG_ERR: ::c_int = -1; -pub const SIG_DFL: ::sighandler_t = 0; -pub const SIG_IGN: ::sighandler_t = 1; -pub const SIG_GET: ::sighandler_t = 2; -pub const SIG_SGE: ::sighandler_t = 3; -pub const SIG_ACK: ::sighandler_t = 4; - -// inline comment below appeases style checker -#[cfg(all(target_env = "msvc", feature = "rustc-dep-of-std"))] // " if " -#[link(name = "msvcrt", cfg(not(target_feature = "crt-static")))] -#[link(name = "libcmt", cfg(target_feature = "crt-static"))] -extern "C" {} - -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum FILE {} -impl ::Copy for FILE {} -impl ::Clone for FILE { - fn clone(&self) -> FILE { - *self - } -} -#[cfg_attr(feature = "extra_traits", derive(Debug))] -pub enum fpos_t {} // FIXME: fill this out with a struct -impl ::Copy for fpos_t {} -impl ::Clone for fpos_t { - fn clone(&self) -> fpos_t { - *self - } -} - -// Special handling for all print and scan type functions because of https://github.com/rust-lang/libc/issues/2860 -cfg_if! { - if #[cfg(not(feature = "rustc-dep-of-std"))] { - #[cfg_attr( - all(windows, target_env = "msvc"), - link(name = "legacy_stdio_definitions") - )] - extern "C" { - pub fn printf(format: *const c_char, ...) -> ::c_int; - pub fn fprintf(stream: *mut FILE, format: *const c_char, ...) -> ::c_int; - } - } -} - -extern "C" { - pub fn isalnum(c: c_int) -> c_int; - pub fn isalpha(c: c_int) -> c_int; - pub fn iscntrl(c: c_int) -> c_int; - pub fn isdigit(c: c_int) -> c_int; - pub fn isgraph(c: c_int) -> c_int; - pub fn islower(c: c_int) -> c_int; - pub fn isprint(c: c_int) -> c_int; - pub fn ispunct(c: c_int) -> c_int; - pub fn isspace(c: c_int) -> c_int; - pub fn isupper(c: c_int) -> c_int; - pub fn isxdigit(c: c_int) -> c_int; - pub fn isblank(c: c_int) -> c_int; - pub fn tolower(c: c_int) -> c_int; - pub fn toupper(c: c_int) -> c_int; - pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; - pub fn freopen(filename: *const c_char, mode: *const c_char, file: *mut FILE) -> *mut FILE; - pub fn fflush(file: *mut FILE) -> c_int; - pub fn fclose(file: *mut FILE) -> c_int; - pub fn remove(filename: *const c_char) -> c_int; - pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; - pub fn tmpfile() -> *mut FILE; - pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int; - pub fn setbuf(stream: *mut FILE, buf: *mut c_char); - pub fn getchar() -> c_int; - pub fn putchar(c: c_int) -> c_int; - pub fn fgetc(stream: *mut FILE) -> c_int; - pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; - pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; - pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; - pub fn puts(s: *const c_char) -> c_int; - pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; - pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; - pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; - pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; - pub fn ftell(stream: *mut FILE) -> c_long; - pub fn rewind(stream: *mut FILE); - pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int; - pub fn fsetpos(stream: *mut FILE, ptr: *const fpos_t) -> c_int; - pub fn feof(stream: *mut FILE) -> c_int; - pub fn ferror(stream: *mut FILE) -> c_int; - pub fn perror(s: *const c_char); - pub fn atof(s: *const c_char) -> c_double; - pub fn atoi(s: *const c_char) -> c_int; - pub fn atol(s: *const c_char) -> c_long; - pub fn atoll(s: *const c_char) -> c_longlong; - pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; - pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float; - pub fn strtol(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_long; - pub fn strtoll(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_longlong; - pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulong; - pub fn strtoull(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulonglong; - pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; - pub fn malloc(size: size_t) -> *mut c_void; - pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; - pub fn free(p: *mut c_void); - pub fn abort() -> !; - pub fn exit(status: c_int) -> !; - pub fn _exit(status: c_int) -> !; - pub fn atexit(cb: extern "C" fn()) -> c_int; - pub fn system(s: *const c_char) -> c_int; - pub fn getenv(s: *const c_char) -> *mut c_char; - - pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; - pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; - pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; - pub fn strncat(s: *mut c_char, ct: *const c_char, n: size_t) -> *mut c_char; - pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; - pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; - pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; - pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char; - pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char; - pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t; - pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t; - pub fn strdup(cs: *const c_char) -> *mut c_char; - pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; - pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; - pub fn strlen(cs: *const c_char) -> size_t; - pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; - pub fn strerror(n: c_int) -> *mut c_char; - pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; - pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; - pub fn wcslen(buf: *const wchar_t) -> size_t; - pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; - - pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; - pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; - pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; - pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; - pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; - - pub fn abs(i: c_int) -> c_int; - pub fn labs(i: c_long) -> c_long; - pub fn rand() -> c_int; - pub fn srand(seed: c_uint); - - pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t; - pub fn raise(signum: c_int) -> c_int; - - #[link_name = "_gmtime64_s"] - pub fn gmtime_s(destTime: *mut tm, srcTime: *const time_t) -> ::c_int; - #[link_name = "_localtime64_s"] - pub fn localtime_s(tmDest: *mut tm, sourceTime: *const time_t) -> ::errno_t; - #[link_name = "_time64"] - pub fn time(destTime: *mut time_t) -> time_t; - #[link_name = "_chmod"] - pub fn chmod(path: *const c_char, mode: ::c_int) -> ::c_int; - #[link_name = "_wchmod"] - pub fn wchmod(path: *const wchar_t, mode: ::c_int) -> ::c_int; - #[link_name = "_mkdir"] - pub fn mkdir(path: *const c_char) -> ::c_int; - #[link_name = "_wrmdir"] - pub fn wrmdir(path: *const wchar_t) -> ::c_int; - #[link_name = "_fstat64"] - pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; - #[link_name = "_stat64"] - pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; - #[link_name = "_wstat64"] - pub fn wstat(path: *const wchar_t, buf: *mut stat) -> ::c_int; - #[link_name = "_wutime64"] - pub fn wutime(file: *const wchar_t, buf: *mut utimbuf) -> ::c_int; - #[link_name = "_popen"] - pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; - #[link_name = "_pclose"] - pub fn pclose(stream: *mut ::FILE) -> ::c_int; - #[link_name = "_fdopen"] - pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; - #[link_name = "_fileno"] - pub fn fileno(stream: *mut ::FILE) -> ::c_int; - #[link_name = "_open"] - pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - #[link_name = "_wopen"] - pub fn wopen(path: *const wchar_t, oflag: ::c_int, ...) -> ::c_int; - #[link_name = "_creat"] - pub fn creat(path: *const c_char, mode: ::c_int) -> ::c_int; - #[link_name = "_access"] - pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; - #[link_name = "_chdir"] - pub fn chdir(dir: *const c_char) -> ::c_int; - #[link_name = "_close"] - pub fn close(fd: ::c_int) -> ::c_int; - #[link_name = "_dup"] - pub fn dup(fd: ::c_int) -> ::c_int; - #[link_name = "_dup2"] - pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; - #[link_name = "_execl"] - pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> intptr_t; - #[link_name = "_wexecl"] - pub fn wexecl(path: *const wchar_t, arg0: *const wchar_t, ...) -> intptr_t; - #[link_name = "_execle"] - pub fn execle(path: *const c_char, arg0: *const c_char, ...) -> intptr_t; - #[link_name = "_wexecle"] - pub fn wexecle(path: *const wchar_t, arg0: *const wchar_t, ...) -> intptr_t; - #[link_name = "_execlp"] - pub fn execlp(path: *const c_char, arg0: *const c_char, ...) -> intptr_t; - #[link_name = "_wexeclp"] - pub fn wexeclp(path: *const wchar_t, arg0: *const wchar_t, ...) -> intptr_t; - #[link_name = "_execlpe"] - pub fn execlpe(path: *const c_char, arg0: *const c_char, ...) -> intptr_t; - #[link_name = "_wexeclpe"] - pub fn wexeclpe(path: *const wchar_t, arg0: *const wchar_t, ...) -> intptr_t; - #[link_name = "_execv"] - pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::intptr_t; - #[link_name = "_execve"] - pub fn execve( - prog: *const c_char, - argv: *const *const c_char, - envp: *const *const c_char, - ) -> ::c_int; - #[link_name = "_execvp"] - pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; - #[link_name = "_execvpe"] - pub fn execvpe( - c: *const c_char, - argv: *const *const c_char, - envp: *const *const c_char, - ) -> ::c_int; - #[link_name = "_wexecv"] - pub fn wexecv(prog: *const wchar_t, argv: *const *const wchar_t) -> ::intptr_t; - #[link_name = "_wexecve"] - pub fn wexecve( - prog: *const wchar_t, - argv: *const *const wchar_t, - envp: *const *const wchar_t, - ) -> ::intptr_t; - #[link_name = "_wexecvp"] - pub fn wexecvp(c: *const wchar_t, argv: *const *const wchar_t) -> ::intptr_t; - #[link_name = "_wexecvpe"] - pub fn wexecvpe( - c: *const wchar_t, - argv: *const *const wchar_t, - envp: *const *const wchar_t, - ) -> ::intptr_t; - #[link_name = "_getcwd"] - pub fn getcwd(buf: *mut c_char, size: ::c_int) -> *mut c_char; - #[link_name = "_getpid"] - pub fn getpid() -> ::c_int; - #[link_name = "_isatty"] - pub fn isatty(fd: ::c_int) -> ::c_int; - #[link_name = "_lseek"] - pub fn lseek(fd: ::c_int, offset: c_long, origin: ::c_int) -> c_long; - #[link_name = "_lseeki64"] - pub fn lseek64(fd: ::c_int, offset: c_longlong, origin: ::c_int) -> c_longlong; - #[link_name = "_pipe"] - pub fn pipe(fds: *mut ::c_int, psize: ::c_uint, textmode: ::c_int) -> ::c_int; - #[link_name = "_read"] - pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::c_uint) -> ::c_int; - #[link_name = "_rmdir"] - pub fn rmdir(path: *const c_char) -> ::c_int; - #[link_name = "_unlink"] - pub fn unlink(c: *const c_char) -> ::c_int; - #[link_name = "_write"] - pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::c_uint) -> ::c_int; - #[link_name = "_commit"] - pub fn commit(fd: ::c_int) -> ::c_int; - #[link_name = "_get_osfhandle"] - pub fn get_osfhandle(fd: ::c_int) -> ::intptr_t; - #[link_name = "_open_osfhandle"] - pub fn open_osfhandle(osfhandle: ::intptr_t, flags: ::c_int) -> ::c_int; - pub fn setlocale(category: ::c_int, locale: *const c_char) -> *mut c_char; - #[link_name = "_wsetlocale"] - pub fn wsetlocale(category: ::c_int, locale: *const wchar_t) -> *mut wchar_t; - #[link_name = "_aligned_malloc"] - pub fn aligned_malloc(size: size_t, alignment: size_t) -> *mut c_void; - #[link_name = "_aligned_free"] - pub fn aligned_free(ptr: *mut ::c_void); - #[link_name = "_putenv"] - pub fn putenv(envstring: *const ::c_char) -> ::c_int; - #[link_name = "_wputenv"] - pub fn wputenv(envstring: *const ::wchar_t) -> ::c_int; - #[link_name = "_putenv_s"] - pub fn putenv_s(envstring: *const ::c_char, value_string: *const ::c_char) -> ::errno_t; - #[link_name = "_wputenv_s"] - pub fn wputenv_s(envstring: *const ::wchar_t, value_string: *const ::wchar_t) -> ::errno_t; -} - -extern "system" { - pub fn listen(s: SOCKET, backlog: ::c_int) -> ::c_int; - pub fn accept(s: SOCKET, addr: *mut ::sockaddr, addrlen: *mut ::c_int) -> SOCKET; - pub fn bind(s: SOCKET, name: *const ::sockaddr, namelen: ::c_int) -> ::c_int; - pub fn connect(s: SOCKET, name: *const ::sockaddr, namelen: ::c_int) -> ::c_int; - pub fn getpeername(s: SOCKET, name: *mut ::sockaddr, nameln: *mut ::c_int) -> ::c_int; - pub fn getsockname(s: SOCKET, name: *mut ::sockaddr, nameln: *mut ::c_int) -> ::c_int; - pub fn getsockopt( - s: SOCKET, - level: ::c_int, - optname: ::c_int, - optval: *mut ::c_char, - optlen: *mut ::c_int, - ) -> ::c_int; - pub fn recvfrom( - s: SOCKET, - buf: *mut ::c_char, - len: ::c_int, - flags: ::c_int, - from: *mut ::sockaddr, - fromlen: *mut ::c_int, - ) -> ::c_int; - pub fn sendto( - s: SOCKET, - buf: *const ::c_char, - len: ::c_int, - flags: ::c_int, - to: *const ::sockaddr, - tolen: ::c_int, - ) -> ::c_int; - pub fn setsockopt( - s: SOCKET, - level: ::c_int, - optname: ::c_int, - optval: *const ::c_char, - optlen: ::c_int, - ) -> ::c_int; - pub fn socket(af: ::c_int, socket_type: ::c_int, protocol: ::c_int) -> SOCKET; -} - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} - -cfg_if! { - if #[cfg(all(target_env = "gnu"))] { - mod gnu; - pub use self::gnu::*; - } else if #[cfg(all(target_env = "msvc"))] { - mod msvc; - pub use self::msvc::*; - } else { - // Unknown target_env - } -} diff --git a/src/rust/vendor/libc-0.2.146/src/windows/msvc/mod.rs b/src/rust/vendor/libc-0.2.146/src/windows/msvc/mod.rs deleted file mode 100644 index f5a1d95f3..000000000 --- a/src/rust/vendor/libc-0.2.146/src/windows/msvc/mod.rs +++ /dev/null @@ -1,20 +0,0 @@ -pub const L_tmpnam: ::c_uint = 260; -pub const TMP_MAX: ::c_uint = 0x7fff_ffff; - -// POSIX Supplement (from errno.h) -// This particular error code is only currently available in msvc toolchain -pub const EOTHER: ::c_int = 131; - -extern "C" { - #[link_name = "_stricmp"] - pub fn stricmp(s1: *const ::c_char, s2: *const ::c_char) -> ::c_int; - #[link_name = "_strnicmp"] - pub fn strnicmp(s1: *const ::c_char, s2: *const ::c_char, n: ::size_t) -> ::c_int; - #[link_name = "_memccpy"] - pub fn memccpy( - dest: *mut ::c_void, - src: *const ::c_void, - c: ::c_int, - count: ::size_t, - ) -> *mut ::c_void; -} diff --git a/src/rust/vendor/libc-0.2.146/src/xous.rs b/src/rust/vendor/libc-0.2.146/src/xous.rs deleted file mode 100644 index e6c0c2573..000000000 --- a/src/rust/vendor/libc-0.2.146/src/xous.rs +++ /dev/null @@ -1,49 +0,0 @@ -//! Xous C type definitions - -pub type c_schar = i8; -pub type c_uchar = u8; -pub type c_short = i16; -pub type c_ushort = u16; -pub type c_int = i32; -pub type c_uint = u32; -pub type c_float = f32; -pub type c_double = f64; -pub type c_longlong = i64; -pub type c_ulonglong = u64; -pub type intmax_t = i64; -pub type uintmax_t = u64; - -pub type size_t = usize; -pub type ptrdiff_t = isize; -pub type intptr_t = isize; -pub type uintptr_t = usize; -pub type ssize_t = isize; - -pub type off_t = i64; -pub type c_char = u8; -pub type c_long = i64; -pub type c_ulong = u64; -pub type wchar_t = u32; - -pub const INT_MIN: c_int = -2147483648; -pub const INT_MAX: c_int = 2147483647; - -cfg_if! { - if #[cfg(libc_core_cvoid)] { - pub use ::ffi::c_void; - } else { - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help - // enable more optimization opportunities around it recognizing things - // like malloc/free. - #[repr(u8)] - #[allow(missing_copy_implementations)] - #[allow(missing_debug_implementations)] - pub enum c_void { - // Two dummy variants so the #[repr] attribute can be used. - #[doc(hidden)] - __variant1, - #[doc(hidden)] - __variant2, - } - } -} diff --git a/src/rust/vendor/libc-0.2.146/tests/const_fn.rs b/src/rust/vendor/libc-0.2.146/tests/const_fn.rs deleted file mode 100644 index 0e7e1864b..000000000 --- a/src/rust/vendor/libc-0.2.146/tests/const_fn.rs +++ /dev/null @@ -1,5 +0,0 @@ -#![cfg(libc_const_extern_fn)] // If this does not hold, the file is empty - -#[cfg(target_os = "linux")] -const _FOO: libc::c_uint = unsafe { libc::CMSG_SPACE(1) }; -//^ if CMSG_SPACE is not const, this will fail to compile diff --git a/src/rust/vendor/version_check/.cargo-checksum.json b/src/rust/vendor/version_check/.cargo-checksum.json index 99887bda2..3ddd5f75e 100644 --- a/src/rust/vendor/version_check/.cargo-checksum.json +++ b/src/rust/vendor/version_check/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"d4b465b354ce74e417516ecc4d14e9551ff99fe116a2296db459dff725881801","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"b7e650f3fce5c53249d1cdc608b54df156a97edd636cf9d23498d0cfe7aec63e","README.md":"d45a7a97623a56bf9cb7766976c3807312f7d4ac0cfaf4563ff76bc4d6ad1835","src/channel.rs":"f916ece9beeb7f3d512b423ae6da05d45f284bf42ddf7c14f80b77398d52dac7","src/date.rs":"d31e158a2b49f81da512150c5c93194655dac4114825e285fe2f688c09b001a4","src/lib.rs":"a15eb43cec1acfb0db42e8f93bdf70246ebceb1684ac39496bd28184722e4480","src/version.rs":"81503116d2d65968edeec37a0e9797a569ac5cafec13ca61bd631b11948ab7ac"},"package":"b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"} \ No newline at end of file +{"files":{"Cargo.toml":"399ea74400a173c02eabe91cb9487d0cf351117857a5d2ebc6231f0efde67681","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"b7e650f3fce5c53249d1cdc608b54df156a97edd636cf9d23498d0cfe7aec63e","README.md":"ac2a0a360812436bd5798f5fe2affe7d6ed9eb7f15d6e4d73931e95b437560f2","src/channel.rs":"bb3eae79aaf224591f1e9dddedcabbea3fc01bc6c06eafedcd87d7b770a35aca","src/date.rs":"09580a0a2008fad2ccbc43fb42a88f42221b98b01692702022a296dc9c86bf37","src/lib.rs":"01bb86088ba281d511ae002aa939bb30b747f47ace5ea13a46de554a3117806e","src/version.rs":"dba18a25983ec6e37b952f4cdc5219c9e5abba2c3a76cef87465e1fba6f8ac89"},"package":"0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"} \ No newline at end of file diff --git a/src/rust/vendor/version_check/Cargo.toml b/src/rust/vendor/version_check/Cargo.toml index 8c656fd10..338862410 100644 --- a/src/rust/vendor/version_check/Cargo.toml +++ b/src/rust/vendor/version_check/Cargo.toml @@ -3,22 +3,36 @@ # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies -# to registry (e.g., crates.io) dependencies +# to registry (e.g., crates.io) dependencies. # -# If you believe there's an error in this file please file an -# issue against the rust-lang/cargo repository. If you're -# editing this file be aware that the upstream Cargo.toml -# will likely look very different (and much more reasonable) +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. [package] name = "version_check" -version = "0.9.2" +version = "0.9.5" authors = ["Sergio Benitez "] +build = false +exclude = ["static"] +autobins = false +autoexamples = false +autotests = false +autobenches = false description = "Tiny crate to check the version of the installed/running rustc." documentation = "https://docs.rs/version_check/" readme = "README.md" -keywords = ["version", "rustc", "minimum", "check"] +keywords = [ + "version", + "rustc", + "minimum", + "check", +] license = "MIT/Apache-2.0" repository = "https://github.com/SergioBenitez/version_check" +[lib] +name = "version_check" +path = "src/lib.rs" + [dependencies] diff --git a/src/rust/vendor/version_check/README.md b/src/rust/vendor/version_check/README.md index 9d4c169ce..8637d2ab1 100644 --- a/src/rust/vendor/version_check/README.md +++ b/src/rust/vendor/version_check/README.md @@ -1,6 +1,6 @@ # version\_check -[![Build Status](https://travis-ci.com/SergioBenitez/version_check.svg?branch=master)](https://travis-ci.com/SergioBenitez/version_check) +[![Build Status](https://github.com/SergioBenitez/version_check/workflows/CI/badge.svg)](https://github.com/SergioBenitez/version_check/actions) [![Current Crates.io Version](https://img.shields.io/crates/v/version_check.svg)](https://crates.io/crates/version_check) [![rustdocs on docs.rs](https://docs.rs/version_check/badge.svg)](https://docs.rs/version_check) @@ -63,10 +63,14 @@ documentation. ## Alternatives -This crate is dead simple with no dependencies. If you need something more -and don't care about panicking if the version cannot be obtained, or if you -don't mind adding dependencies, see -[rustc_version](https://crates.io/crates/rustc_version). +This crate is dead simple with no dependencies. If you need something more and +don't care about panicking if the version cannot be obtained, or if you don't +mind adding dependencies, see [rustc_version]. If you'd instead prefer a feature +detection library that works by dynamically invoking `rustc` with a +representative code sample, see [autocfg]. + +[rustc_version]: https://crates.io/crates/rustc_version +[autocfg]: https://crates.io/crates/autocfg ## License diff --git a/src/rust/vendor/version_check/src/channel.rs b/src/rust/vendor/version_check/src/channel.rs index 2332a014c..e36b274c9 100644 --- a/src/rust/vendor/version_check/src/channel.rs +++ b/src/rust/vendor/version_check/src/channel.rs @@ -54,11 +54,12 @@ impl Channel { /// assert!(stable.is_stable()); /// ``` pub fn parse(version: &str) -> Option { - if version.contains("-dev") { + let version = version.trim(); + if version.contains("-dev") || version == "dev" { Some(Channel(Kind::Dev)) - } else if version.contains("-nightly") { + } else if version.contains("-nightly") || version == "nightly" { Some(Channel(Kind::Nightly)) - } else if version.contains("-beta") { + } else if version.contains("-beta") || version == "beta" { Some(Channel(Kind::Beta)) } else if !version.contains("-") { Some(Channel(Kind::Stable)) @@ -80,6 +81,8 @@ impl Channel { /// Returns `true` if this channel supports feature flags. In other words, /// returns `true` if the channel is either `dev` or `nightly`. /// + /// **Please see the note on [feature detection](crate#feature-detection).** + /// /// # Example /// /// ```rust diff --git a/src/rust/vendor/version_check/src/date.rs b/src/rust/vendor/version_check/src/date.rs index 55d9b2431..de0b2d05d 100644 --- a/src/rust/vendor/version_check/src/date.rs +++ b/src/rust/vendor/version_check/src/date.rs @@ -25,14 +25,6 @@ impl Date { .and_then(|date| Date::parse(&date)) } - /// Return the original (YYYY, MM, DD). - fn to_ymd(&self) -> (u16, u8, u8) { - let y = self.0 >> 9; - let m = (self.0 << 23) >> 28; - let d = (self.0 << 27) >> 27; - (y as u16, m as u8, d as u8) - } - /// Parse a release date of the form `%Y-%m-%d`. Returns `None` if `date` is /// not in `%Y-%m-%d` format. /// @@ -47,20 +39,63 @@ impl Date { /// assert!(date.at_most("2016-04-20")); /// assert!(date.exactly("2016-04-20")); /// + /// assert!(Date::parse("2021-12-31").unwrap().exactly("2021-12-31")); + /// /// assert!(Date::parse("March 13, 2018").is_none()); /// assert!(Date::parse("1-2-3-4-5").is_none()); + /// assert!(Date::parse("2020-300-23120").is_none()); + /// assert!(Date::parse("2020-12-12 1").is_none()); + /// assert!(Date::parse("2020-10").is_none()); + /// assert!(Date::parse("2020").is_none()); /// ``` pub fn parse(date: &str) -> Option { - let ymd: Vec = date.split("-") - .filter_map(|s| s.parse::().ok()) - .collect(); + let mut ymd = [0u16; 3]; + for (i, split) in date.split('-').map(|s| s.parse::()).enumerate() { + ymd[i] = match (i, split) { + (3, _) | (_, Err(_)) => return None, + (_, Ok(v)) => v, + }; + } - if ymd.len() != 3 { - return None + let (year, month, day) = (ymd[0], ymd[1], ymd[2]); + if year == 0 || month == 0 || month > 12 || day == 0 || day > 31 { + return None; } - let (y, m, d) = (ymd[0], ymd[1], ymd[2]); - Some(Date((y << 9) | ((m & 0xF) << 5) | (d & 0x1F))) + Some(Date::from_ymd(year, month as u8, day as u8)) + } + + /// Creates a `Date` from `(year, month, day)` date components. + /// + /// Does not check the validity of `year`, `month`, or `day`, but `year` is + /// truncated to 23 bits (% 8,388,608), `month` to 4 bits (% 16), and `day` + /// to 5 bits (% 32). + /// + /// # Example + /// + /// ```rust + /// use version_check::Date; + /// + /// assert!(Date::from_ymd(2021, 7, 30).exactly("2021-07-30")); + /// assert!(Date::from_ymd(2010, 3, 23).exactly("2010-03-23")); + /// assert!(Date::from_ymd(2090, 1, 31).exactly("2090-01-31")); + /// + /// // Truncation: 33 % 32 == 0x21 & 0x1F == 1. + /// assert!(Date::from_ymd(2090, 1, 33).exactly("2090-01-01")); + /// ``` + pub fn from_ymd(year: u16, month: u8, day: u8) -> Date { + let year = (year as u32) << 9; + let month = ((month as u32) & 0xF) << 5; + let day = (day as u32) & 0x1F; + Date(year | month | day) + } + + /// Return the original (YYYY, MM, DD). + fn to_ymd(&self) -> (u16, u8, u8) { + let y = self.0 >> 9; + let m = (self.0 >> 5) & 0xF; + let d = self.0 & 0x1F; + (y as u16, m as u8, d as u8) } /// Returns `true` if `self` occurs on or after `date`. @@ -163,5 +198,6 @@ mod tests { reflexive_display!("2000-12-31"); reflexive_display!("2090-12-31"); reflexive_display!("1999-02-19"); + reflexive_display!("9999-12-31"); } } diff --git a/src/rust/vendor/version_check/src/lib.rs b/src/rust/vendor/version_check/src/lib.rs index 6df728e25..2bc38ce1b 100644 --- a/src/rust/vendor/version_check/src/lib.rs +++ b/src/rust/vendor/version_check/src/lib.rs @@ -6,63 +6,104 @@ //! //! # Examples //! -//! Set a `cfg` flag in `build.rs` if the running compiler was determined to be -//! at least version `1.13.0`: +//! **Note:** Please see [feature detection] for a note on enabling unstable +//! features based on detection via this crate. //! -//! ```rust -//! extern crate version_check as rustc; +//! [feature detection]: crate#feature-detection //! -//! if rustc::is_min_version("1.13.0").unwrap_or(false) { -//! println!("cargo:rustc-cfg=question_mark_operator"); -//! } -//! ``` +//! * Set a `cfg` flag in `build.rs` if the running compiler was determined to +//! be at least version `1.13.0`: //! -//! See [`is_max_version`] or [`is_exact_version`] to check if the compiler -//! is _at most_ or _exactly_ a certain version. +//! ```rust +//! extern crate version_check as rustc; //! -//! Check that the running compiler was released on or after `2018-12-18`: +//! if rustc::is_min_version("1.13.0").unwrap_or(false) { +//! println!("cargo:rustc-cfg=question_mark_operator"); +//! } +//! ``` //! -//! ```rust -//! extern crate version_check as rustc; +//! See [`is_max_version`] or [`is_exact_version`] to check if the compiler +//! is _at most_ or _exactly_ a certain version. +//!

    //! -//! match rustc::is_min_date("2018-12-18") { -//! Some(true) => "Yep! It's recent!", -//! Some(false) => "No, it's older.", -//! None => "Couldn't determine the rustc version." -//! }; -//! ``` +//! * Check that the running compiler was released on or after `2018-12-18`: //! -//! See [`is_max_date`] or [`is_exact_date`] to check if the compiler was -//! released _prior to_ or _exactly on_ a certain date. +//! ```rust +//! extern crate version_check as rustc; //! -//! Check that the running compiler supports feature flags: +//! match rustc::is_min_date("2018-12-18") { +//! Some(true) => "Yep! It's recent!", +//! Some(false) => "No, it's older.", +//! None => "Couldn't determine the rustc version." +//! }; +//! ``` //! -//! ```rust -//! extern crate version_check as rustc; +//! See [`is_max_date`] or [`is_exact_date`] to check if the compiler was +//! released _prior to_ or _exactly on_ a certain date. +//!

    //! -//! match rustc::is_feature_flaggable() { -//! Some(true) => "Yes! It's a dev or nightly release!", -//! Some(false) => "No, it's stable or beta.", -//! None => "Couldn't determine the rustc version." -//! }; -//! ``` +//! * Check that the running compiler supports feature flags: //! -//! Check that the running compiler is on the stable channel: +//! ```rust +//! extern crate version_check as rustc; //! -//! ```rust -//! extern crate version_check as rustc; +//! match rustc::is_feature_flaggable() { +//! Some(true) => "Yes! It's a dev or nightly release!", +//! Some(false) => "No, it's stable or beta.", +//! None => "Couldn't determine the rustc version." +//! }; +//! ``` //! -//! match rustc::Channel::read() { -//! Some(c) if c.is_stable() => format!("Yes! It's stable."), -//! Some(c) => format!("No, the channel {} is not stable.", c), -//! None => format!("Couldn't determine the rustc version.") -//! }; -//! ``` +//! Please see the note on [feature detection]. +//!

    +//! +//! * Check that the running compiler supports a specific feature: +//! +//! ```rust +//! extern crate version_check as rustc; +//! +//! if let Some(true) = rustc::supports_feature("doc_cfg") { +//! println!("cargo:rustc-cfg=has_doc_cfg"); +//! } +//! ``` +//! +//! Please see the note on [feature detection]. +//!

    +//! +//! * Check that the running compiler is on the stable channel: +//! +//! ```rust +//! extern crate version_check as rustc; +//! +//! match rustc::Channel::read() { +//! Some(c) if c.is_stable() => format!("Yes! It's stable."), +//! Some(c) => format!("No, the channel {} is not stable.", c), +//! None => format!("Couldn't determine the rustc version.") +//! }; +//! ``` //! //! To interact with the version, release date, and release channel as structs, //! use [`Version`], [`Date`], and [`Channel`], respectively. The [`triple()`] //! function returns all three values efficiently. //! +//! # Feature Detection +//! +//! While this crate can be used to determine if the current compiler supports +//! an unstable feature, no crate can determine whether that feature will work +//! in a way that you expect ad infinitum. If the feature changes in an +//! incompatible way, then your crate, as well as all of its transitive +//! dependents, will fail to build. As a result, great care should be taken when +//! enabling nightly features even when they're supported by the compiler. +//! +//! One common mitigation used in practice is to make using unstable features +//! transitively opt-in via a crate feature or `cfg` so that broken builds only +//! affect those that explicitly asked for the feature. Another complementary +//! approach is to probe `rustc` at build-time by asking it to compile a small +//! but exemplary program that determines whether the feature works as expected, +//! enabling the feature only if the probe succeeds. Finally, eschewing these +//! recommendations, you should track the `nightly` channel closely to minimize +//! the total impact of a nightly breakages. +//! //! # Alternatives //! //! This crate is dead simple with no dependencies. If you need something more @@ -93,13 +134,33 @@ fn version_and_date_from_rustc_version(s: &str) -> (Option, Option (Option, Option) { + let (mut version, mut date) = (None, None); + for line in s.lines() { + let split = |s: &str| s.splitn(2, ":").nth(1).map(|s| s.trim().to_string()); + match line.trim().split(" ").nth(0) { + Some("rustc") => { + let (v, d) = version_and_date_from_rustc_version(line); + version = version.or(v); + date = date.or(d); + }, + Some("release:") => version = split(line), + Some("commit-date:") if line.ends_with("unknown") => date = None, + Some("commit-date:") => date = split(line), + _ => continue + } + } + + (version, date) +} + /// Returns (version, date) as available from `rustc --version`. fn get_version_and_date() -> Option<(Option, Option)> { - env::var("RUSTC").ok() - .and_then(|rustc| Command::new(rustc).arg("--version").output().ok()) - .or_else(|| Command::new("rustc").arg("--version").output().ok()) + let rustc = env::var("RUSTC").unwrap_or_else(|_| "rustc".to_string()); + Command::new(rustc).arg("--verbose").arg("--version").output().ok() .and_then(|output| String::from_utf8(output.stdout).ok()) - .map(|s| version_and_date_from_rustc_version(&s)) + .map(|s| version_and_date_from_rustc_verbose_version(&s)) } /// Reads the triple of [`Version`], [`Channel`], and [`Date`] of the installed @@ -226,7 +287,15 @@ pub fn is_exact_version(version: &str) -> Option { /// Checks whether the running or installed `rustc` supports feature flags. /// -/// In other words, if the channel is either "nightly" or "dev". +/// Returns true if the channel is either "nightly" or "dev". +/// +/// **Please see the note on [feature detection](crate#feature-detection).** +/// +/// Note that support for specific `rustc` features can be enabled or disabled +/// via the `allow-features` compiler flag, which this function _does not_ +/// check. That is, this function _does not_ check whether a _specific_ feature +/// is supported, but instead whether features are supported at all. To check +/// for support for a specific feature, use [`supports_feature()`]. /// /// If the version could not be determined, returns `None`. Otherwise returns /// `true` if the running version supports feature flags and `false` otherwise. @@ -234,55 +303,226 @@ pub fn is_feature_flaggable() -> Option { Channel::read().map(|c| c.supports_features()) } +/// Checks whether the running or installed `rustc` supports `feature`. +/// +/// **Please see the note on [feature detection](crate#feature-detection).** +/// +/// Returns _true_ _iff_ [`is_feature_flaggable()`] returns `true` _and_ the +/// feature is not disabled via exclusion in `allow-features` via `RUSTFLAGS` or +/// `CARGO_ENCODED_RUSTFLAGS`. If the version could not be determined, returns +/// `None`. +/// +/// # Example +/// +/// ```rust +/// use version_check as rustc; +/// +/// if let Some(true) = rustc::supports_feature("doc_cfg") { +/// println!("cargo:rustc-cfg=has_doc_cfg"); +/// } +/// ``` +pub fn supports_feature(feature: &str) -> Option { + match is_feature_flaggable() { + Some(true) => { /* continue */ } + Some(false) => return Some(false), + None => return None, + } + + let env_flags = env::var_os("CARGO_ENCODED_RUSTFLAGS") + .map(|flags| (flags, '\x1f')) + .or_else(|| env::var_os("RUSTFLAGS").map(|flags| (flags, ' '))); + + if let Some((flags, delim)) = env_flags { + const ALLOW_FEATURES: &'static str = "allow-features="; + + let rustflags = flags.to_string_lossy(); + let allow_features = rustflags.split(delim) + .map(|flag| flag.trim_left_matches("-Z").trim()) + .filter(|flag| flag.starts_with(ALLOW_FEATURES)) + .map(|flag| &flag[ALLOW_FEATURES.len()..]); + + if let Some(allow_features) = allow_features.last() { + return Some(allow_features.split(',').any(|f| f.trim() == feature)); + } + } + + // If there are no `RUSTFLAGS` or `CARGO_ENCODED_RUSTFLAGS` or they don't + // contain an `allow-features` flag, assume compiler allows all features. + Some(true) +} + #[cfg(test)] mod tests { + use std::{env, fs}; + use super::version_and_date_from_rustc_version; + use super::version_and_date_from_rustc_verbose_version; macro_rules! check_parse { - ($s:expr => $v:expr, $d:expr) => ( - if let (Some(v), d) = version_and_date_from_rustc_version($s) { + (@ $f:expr, $s:expr => $v:expr, $d:expr) => ({ + if let (Some(v), d) = $f(&$s) { let e_d: Option<&str> = $d.into(); - assert_eq!((v, d), ($v.into(), e_d.map(|s| s.into()))); + assert_eq!((v, d), ($v.to_string(), e_d.map(|s| s.into()))); } else { panic!("{:?} didn't parse for version testing.", $s); } - ) + }); + ($f:expr, $s:expr => $v:expr, $d:expr) => ({ + let warn = "warning: invalid logging spec 'warning', ignoring it"; + let warn2 = "warning: sorry, something went wrong :(sad)"; + check_parse!(@ $f, $s => $v, $d); + check_parse!(@ $f, &format!("{}\n{}", warn, $s) => $v, $d); + check_parse!(@ $f, &format!("{}\n{}", warn2, $s) => $v, $d); + check_parse!(@ $f, &format!("{}\n{}\n{}", warn, warn2, $s) => $v, $d); + check_parse!(@ $f, &format!("{}\n{}\n{}", warn2, warn, $s) => $v, $d); + }) + } + + macro_rules! check_terse_parse { + ($($s:expr => $v:expr, $d:expr,)+) => {$( + check_parse!(version_and_date_from_rustc_version, $s => $v, $d); + )+} + } + + macro_rules! check_verbose_parse { + ($($s:expr => $v:expr, $d:expr,)+) => {$( + check_parse!(version_and_date_from_rustc_verbose_version, $s => $v, $d); + )+} } #[test] fn test_version_parse() { - check_parse!("rustc 1.18.0" => "1.18.0", None); - check_parse!("rustc 1.8.0" => "1.8.0", None); - check_parse!("rustc 1.20.0-nightly" => "1.20.0-nightly", None); - check_parse!("rustc 1.20" => "1.20", None); - check_parse!("rustc 1.3" => "1.3", None); - check_parse!("rustc 1" => "1", None); - check_parse!("rustc 1.5.1-beta" => "1.5.1-beta", None); - - // Because of 1.0.0, we can't use Option: From. - check_parse!("rustc 1.20.0 (2017-07-09)" - => "1.20.0", Some("2017-07-09")); - - check_parse!("rustc 1.20.0-dev (2017-07-09)" - => "1.20.0-dev", Some("2017-07-09")); - - check_parse!("rustc 1.20.0-nightly (d84693b93 2017-07-09)" - => "1.20.0-nightly", Some("2017-07-09")); - - check_parse!("rustc 1.20.0 (d84693b93 2017-07-09)" - => "1.20.0", Some("2017-07-09")); - - check_parse!("warning: invalid logging spec 'warning', ignoring it - rustc 1.30.0-nightly (3bc2ca7e4 2018-09-20)" - => "1.30.0-nightly", Some("2018-09-20")); - - check_parse!("warning: invalid logging spec 'warning', ignoring it\n - rustc 1.30.0-nightly (3bc2ca7e4 2018-09-20)" - => "1.30.0-nightly", Some("2018-09-20")); - - check_parse!("warning: invalid logging spec 'warning', ignoring it - warning: something else went wrong - rustc 1.30.0-nightly (3bc2ca7e4 2018-09-20)" - => "1.30.0-nightly", Some("2018-09-20")); + check_terse_parse! { + "rustc 1.18.0" => "1.18.0", None, + "rustc 1.8.0" => "1.8.0", None, + "rustc 1.20.0-nightly" => "1.20.0-nightly", None, + "rustc 1.20" => "1.20", None, + "rustc 1.3" => "1.3", None, + "rustc 1" => "1", None, + "rustc 1.5.1-beta" => "1.5.1-beta", None, + "rustc 1.20.0 (2017-07-09)" => "1.20.0", Some("2017-07-09"), + "rustc 1.20.0-dev (2017-07-09)" => "1.20.0-dev", Some("2017-07-09"), + "rustc 1.20.0-nightly (d84693b93 2017-07-09)" => "1.20.0-nightly", Some("2017-07-09"), + "rustc 1.20.0 (d84693b93 2017-07-09)" => "1.20.0", Some("2017-07-09"), + "rustc 1.30.0-nightly (3bc2ca7e4 2018-09-20)" => "1.30.0-nightly", Some("2018-09-20"), + }; + } + + #[test] + fn test_verbose_version_parse() { + check_verbose_parse! { + "rustc 1.0.0 (a59de37e9 2015-05-13) (built 2015-05-14)\n\ + binary: rustc\n\ + commit-hash: a59de37e99060162a2674e3ff45409ac73595c0e\n\ + commit-date: 2015-05-13\n\ + build-date: 2015-05-14\n\ + host: x86_64-unknown-linux-gnu\n\ + release: 1.0.0" => "1.0.0", Some("2015-05-13"), + + "rustc 1.0.0 (a59de37e9 2015-05-13) (built 2015-05-14)\n\ + commit-hash: a59de37e99060162a2674e3ff45409ac73595c0e\n\ + commit-date: 2015-05-13\n\ + build-date: 2015-05-14\n\ + host: x86_64-unknown-linux-gnu\n\ + release: 1.0.0" => "1.0.0", Some("2015-05-13"), + + "rustc 1.50.0 (cb75ad5db 2021-02-10)\n\ + binary: rustc\n\ + commit-hash: cb75ad5db02783e8b0222fee363c5f63f7e2cf5b\n\ + commit-date: 2021-02-10\n\ + host: x86_64-unknown-linux-gnu\n\ + release: 1.50.0" => "1.50.0", Some("2021-02-10"), + + "rustc 1.52.0-nightly (234781afe 2021-03-07)\n\ + binary: rustc\n\ + commit-hash: 234781afe33d3f339b002f85f948046d8476cfc9\n\ + commit-date: 2021-03-07\n\ + host: x86_64-unknown-linux-gnu\n\ + release: 1.52.0-nightly\n\ + LLVM version: 12.0.0" => "1.52.0-nightly", Some("2021-03-07"), + + "rustc 1.41.1\n\ + binary: rustc\n\ + commit-hash: unknown\n\ + commit-date: unknown\n\ + host: x86_64-unknown-linux-gnu\n\ + release: 1.41.1\n\ + LLVM version: 7.0" => "1.41.1", None, + + "rustc 1.49.0\n\ + binary: rustc\n\ + commit-hash: unknown\n\ + commit-date: unknown\n\ + host: x86_64-unknown-linux-gnu\n\ + release: 1.49.0" => "1.49.0", None, + + "rustc 1.50.0 (Fedora 1.50.0-1.fc33)\n\ + binary: rustc\n\ + commit-hash: unknown\n\ + commit-date: unknown\n\ + host: x86_64-unknown-linux-gnu\n\ + release: 1.50.0" => "1.50.0", None, + }; + } + + fn read_static(verbose: bool, channel: &str, minor: usize) -> String { + use std::fs::File; + use std::path::Path; + use std::io::{BufReader, Read}; + + let subdir = if verbose { "verbose" } else { "terse" }; + let path = Path::new(STATIC_PATH) + .join(channel) + .join(subdir) + .join(format!("rustc-1.{}.0", minor)); + + let file = File::open(path).unwrap(); + let mut buf_reader = BufReader::new(file); + let mut contents = String::new(); + buf_reader.read_to_string(&mut contents).unwrap(); + contents + } + + static STATIC_PATH: &'static str = concat!(env!("CARGO_MANIFEST_DIR"), "/static"); + + static DATES: [&'static str; 51] = [ + "2015-05-13", "2015-06-19", "2015-08-03", "2015-09-15", "2015-10-27", + "2015-12-04", "2016-01-19", "2016-02-29", "2016-04-11", "2016-05-18", + "2016-07-03", "2016-08-15", "2016-09-23", "2016-11-07", "2016-12-16", + "2017-01-19", "2017-03-10", "2017-04-24", "2017-06-06", "2017-07-17", + "2017-08-27", "2017-10-09", "2017-11-20", "2018-01-01", "2018-02-12", + "2018-03-25", "2018-05-07", "2018-06-19", "2018-07-30", "2018-09-11", + "2018-10-24", "2018-12-04", "2019-01-16", "2019-02-28", "2019-04-10", + "2019-05-20", "2019-07-03", "2019-08-13", "2019-09-23", "2019-11-04", + "2019-12-16", "2020-01-27", "2020-03-09", "2020-04-20", "2020-06-01", + "2020-07-13", "2020-08-24", "2020-10-07", "2020-11-16", "2020-12-29", + "2021-02-10", + ]; + + #[test] + fn test_stable_compatibility() { + if env::var_os("FORCE_STATIC").is_none() && fs::metadata(STATIC_PATH).is_err() { + // We exclude `/static` when we package `version_check`, so don't + // run if static files aren't present unless we know they should be. + return; + } + + // Ensure we can parse all output from all Linux stable releases. + for v in 0..DATES.len() { + let (version, date) = (&format!("1.{}.0", v), Some(DATES[v])); + check_terse_parse!(read_static(false, "stable", v) => version, date,); + check_verbose_parse!(read_static(true, "stable", v) => version, date,); + } + } + + #[test] + fn test_parse_current() { + let (version, channel) = (::Version::read(), ::Channel::read()); + assert!(version.is_some()); + assert!(channel.is_some()); + + if let Ok(known_channel) = env::var("KNOWN_CHANNEL") { + assert_eq!(channel, ::Channel::parse(&known_channel)); + } } } diff --git a/src/rust/vendor/version_check/src/version.rs b/src/rust/vendor/version_check/src/version.rs index a37d8d6d5..2bc18aae2 100644 --- a/src/rust/vendor/version_check/src/version.rs +++ b/src/rust/vendor/version_check/src/version.rs @@ -59,13 +59,13 @@ impl Version { .nth(0) .unwrap_or("") .split('.') - .map(|s| s.parse::().ok()); + .map(|s| s.parse::()); let mut mmp = [0u16; 3]; for (i, split) in splits.enumerate() { mmp[i] = match (i, split) { - (3, _) | (_, None) => return None, - (_, Some(v)) => v, + (3, _) | (_, Err(_)) => return None, + (_, Ok(v)) => v, }; } @@ -103,8 +103,8 @@ impl Version { /// ``` pub fn to_mmp(&self) -> (u16, u16, u16) { let major = self.0 >> 32; - let minor = (self.0 << 32) >> 48; - let patch = (self.0 << 48) >> 48; + let minor = self.0 >> 16; + let patch = self.0; (major as u16, minor as u16, patch as u16) }

    10$!eIs;rzn zL7m=zDvHfXI#ap@^X?ldYQ%RP_IdfJci&vY(p?{vEz5{yAEp^JCc4a6aSYsZHfQOc zIgQuVVx$OVLl18YQ#^qI;nPFfDTSivg{;}-N{Qy0g93eX7Klv``AXVcA>|e3UZ>S+ z-N8(f=q{$GY84`wU?A*N&0Qh3YP!gsvLlp2<^41w8U)HS$cU=3xw36Ahz1Zd@It?>2=2{`+Y@ zFEhvopH=f(I8R3AEexhCW}v+Ucuho?^(X3Gk$K@1H@TdoeIG=F*@j?=4Ht**!1ZvT zI4#>EM%ObD4~%2qczNEJ#ZQZe!ZD8Q6Za|-xBS%Bia&)51=YJ&WW(rNp~vqFs<9Qj zT=~-VvmVzooop2H?lCC1h_ILobMa(8r$@Uk*G;CH?)PZXdaN7h=Rrd@t>%qtAhM8r zU5!|@zYKMC15>W2bXE@Og&`1e2M*n*he&uGO=nkQSkwqthv^B#gZ14-EAszn-xhJ! zl^lt*-HWV)H!SK^_j>(wpEsZ#umMM)myztkpBcT}iU+7_;f|oz5{V=2CQXIAT9wb& zS%*QhC6Q~#$cz&rLF29D6_r#BQMV&yAr&3tbRd!z!(z>zpYH2Ypa&8Cv)L^~TKY=P z)c~?%XTX37Lg-$1o^Rn|ky)8dtj)v3zFo-L?|?c28foPb4cxsil!N#8@EQ(`dO5{r zE>DxR5o2%p{S~=S>?XXPvXi=oM}Df!=2*VusLX4RxS^PQBq}Rzkb>uN+0vr?#vbQD zy?;I0IJafe=>|=7(aeFf7uen;C$_~A?YG_(^0H_z@~V)%uo=0@e$VweL^+G3`xsUf ziSFY_^l3ZSkXs5ves+^AE@WWFvbbc16=?&!1KUABl=G6z!t}I>_gALaTc9XBPJ6Mp zfaBVvJ=-EcliH#r4eV;84yVxH=&u0fTiF!r*VSP-!pBL7d{z(mPGJbe)(on;1ey*= z!q|u0Yidy>)|SjdYZUYXSCC#>Z3d zc9Qo$$o#kE>Pg;qQhj_C(Z@e`?){#+0qqU!+zS`2^Z6P%+pb@)kx#*p;M)mO-ARdA zdc=GV9g9OblzYn4Plhs(+lIsV{EYZMc1p|YO|LV+PPw*{^+}650#-s^0^}$1QWNb9 zVz|eBNVc%$M&>a!2NCh?Y1IwGDtx4bD6r?B5te|iL{2t2ye&7^jskWU2@qdJyt}{h zZP^CmHgmS86Axb4!S6y3Q+OAq*=#^Ou+2t9q0Odakgn+7FQ3BJAGW4MteD-oz3^~u z@)q84wZQ=wjkYcZZ7KB3$nFtKmuH~&V8skYh!e1njYdcL1`S3JKv2i6swnR+uZVWo z+>B~qQe`mV#|i~T@?mufm-YdeZTO~^C)lhk^2TLvg%;c zn@_ev??-n27|eb!)}HX#7?FJAADX**S>)vc9@2s5BB0wxwu2|)8QZL&hvkvQ)=API z_ON7@kUV3Xmlc~H(u+e3jJBI5d&U6&$N z1Re||1ch6{A|9Hp7Z{4_wYvm?PZQO@+~cShZ7l29Rw9y}u)Wwl%0*p0SP(ufi9EZy z{|#)i65u3K;|*EtjT&ihE$Q!}Y>E~%8avT;=NdWHj5wYlWosFg{RITrv5sa=xWkO> z3FwjV4!Xv>Pxg{9b;mwHQWkDkplb@x$Ys@hFmhZTl3B|E>jE0TzE#LpDY$54k9D!A zvVD6E3Zu;K^YXSno=v7xOAhOhF(3yx12b*3G>P;hM8B6s`?%^3?5+n%oC6#XH!4ejsuj#E6Zx^Ug?PSkMHJt-Q32v8>$pRyG0;h;ucjlw;$ z{*K&h=S{H!1F{%LVx%WHV2(p$#MWEy4DsIMw#%y92FN|-WV~NOT!*o^pR8q{Z8Apo zaHRDe(&sd2L3xbJJ#rq?$LT8ux3!qQh?ZE7z~IVk2^CMeC}2;787|Ut^_qw@1q@`% zjkH`n7L;7Jl>hkJPtsP;-)8f9zUnpx{@Jue@?Lgt2;64@7OwL6?)LWDx~Oc-NbS*9 zzZK?UaZx}c-7~ys(q#`rO9&T@%mX0WJgaJWwnDv!urpm`)j}bSGzpfXBVezLg4||; z*d?MPb|w(%0zX_n=R*xC|d3?Nx=6lu=G{2|M-6vo{xw509 zQIDtQfbWc#WVHqwy<^9wEyeN=STp6F?@Sp}Thw}Kr`?6EEvcM@8T*&vQQ&ft_K>xf zAl8P8@F^pGJBy|XbJwx#6U~q|xCeVf+j_Y9Xc1r1RO->OEOwG?b|{41^gTBe`f~Z%B{k8AZOd$b6taU9cHkG~Y=_?;0mCyL@^Q zy^qk~vZWL8;cQPAN~dUViibydKky=7O8PcZEZ|d76;JS@S{SmhIY{R=fijG2t;>D# zER3fko{s0^BVum`2ZPI&T8ef+c|z)&Cf$&LGm>3T(Z#Md_mvxtv9%*9N&>9>A)7w~ zdDemABc*7CLGl!ks})K2h<#h~LRoj0G&Wwu=Gw_Kv>gGSM|?=jD3dS8$k}saPs3M@Jj-FNLDtm*?nbgoe`>1X4z-tg)~@yXwb?VQ z@p{@_rje83o<&3H>sq~VTy$$m)t{rY*V!s>W^k+TOdq)y&~R0he^2ol6c^#n8;6Tz zX7#CsdHFGRg^{!=q;*&SYF&5vF^mj!O}%;?M8-aSWPbx93MceaF(mW(WS1n;A*^eW zaRp*n`)H35UnUXjWcSk`j_3>}NkqDzCSvWZAAnTA8Pzs@cWxy~WsJQUR7L~oc^{}4 zTlPtM{N5K0_pbjcqF?s*ds=t6K76j%%-^qzaxs1C|IiAGi%P~RKB~~>@X;jJhkPr{ zr)>$9#kWHaBWJ?S==pde z>r2kf`B-2h55`Bp67n$;x7Z$x3P!KLKyL}AA}m>KX;HRVqe#1RD1Gly>L+l-^6RV^ z0uuJwB0WEi1!rnfKixzAt$LW0Sv#bs_=pin*$C4j!mOSm(I3%a%PftXK;g!K4xcuv z{$^==eLmTM<5EUOSq|E%94(Te{r4tzb75$h<+nuw}2i>^GOfu+J5(-?(^Yqz=Z2FJiacAU#3a zfUN_est3+#r2a*Zp%BPMj9B);2N?LMXgl9{h=R}0 z2@;=>(gjFovjsjVUS*-M$=oItpf5jK4N=q2YxRte8o-9LvoG{(L|Y} zr2E%T4zqcdbe0rGc$KhEZHnd7Nd85_riu3aKr#-}#zn$LOtKRS(KqT`9;Q=vTW>Y$ ze9BVpf5;=s&r=c)0qG#N7H~$hwJFvQ@D5`A0B0QQN7muc`i)VCi`aD6pI!!oncP#A zVgq{&;mlo1B(m(o1F^kLh!QN8(Bh_?U4sP{&|dLeNs+Urpmj@i>4HaVHa$avL|S!z z6{#2f%<-4vxVVM+tZ4)tOk{7Qr8`hizP*o7YAa(3Y5PbhSDIuOnuGN%Trp*-cFLRe zVUlV{gi2czcaUF$x9H*Sti5EF+CjaogN1B-Nk(Fdp*FXEYM)!7?Ifp>fF?wN!0$BI zdkOYCYdGL};|pBfOgV8qT{qdH_-K`aEhoC3q&WyLrj`$N1GePJSvtt3D^l07lR7>B zyugJ|Q^ePIGb_kFM6u2OC@;a8ChP1DWhc*`aYS%J!>ij2&BoIc^^6jIpIA`xNhO#ZR& zy|~eDQ9Owzt;kNY2;v=v9M(W`IZJxyF6wPo2;R1d*hX9P4v~Dq*b*e?@HC#ZH!ebz zwfGiA(i2DKsx*q*2DC4J0miE@t-A41sEAWjvMeMWO_Ze_FdS0YCx^0q0}491mSt?5 zG!0vp?!ptcT*%l@Qv)~QIf&-EsUILpY2nGf@;-CQ$b8(0tX`Pd&*ENY-TZL_kj+i% zezbV7By#@l0!NRm=-AYeo{UBFj5r@B5^>qMa=?N2(0roU98A-D&=lW*vvJb&{-LSY zL+dY}b5sVl=NzJ_H3e1~xb%D#L9(-14$|xO(|z9H(xi#!O0zMkNMS3c2f0^{$~1(m zX>01B1M9e&KSFR(aDWug8tag-L2dF!0|UAju?L@SY7aY-$JZ^ z_ShB*sWh?6R4yXfDHhU)h@(i8>}(v6 zMQ1Xh%3Z>qt9&8+_e>w}$i`*@CjjpVnjnsIK9`{C1@YsX#1bv4LK{^*P$yY&|PN8%r=tNKQ?^Mr%!0$>q zyC5U*RiI(PTi(sqg|8x5_DwTARrL10$+LIuN#1?P^Xek+0C*4<8fu30g`{nb%x=2O81KM4iJxFpU5nkH9j2;OL{7fdbRJ|{tgS&OcWVn(deZiih?GNg3(a1Ql z&9i3yD4e-WMOk9Uhc)tST1Z{cw7|Z}vi<3vbJ2M3K$Q)Ft( zZa?TXLIo+ipV-8k3#`HcZ!SPP@XZB?;+rc~3jymub{3EhW@iCQWM^MSqU3*NI-LOE zZMGQJAoEWYmCx@HMBUmE47*p6>C-|+vs}eAd+uO(NgA>lPH7=DN$u0wODnQEx zUIDp!?>zd*rX|5^1-{|Ba3>wiN1-YMiW)#Eb8kHeSDVwcz~Z>q1fQmeHE_H;9}^F?zL+m*nEumCiX>Zt$|uv{$;ygs%Ev*V8*73 zs{6WB1(!P;E9ExIvA28AHy+Gt=8`u<>1;r!I$Yd`SNEd>kgkEu-ji@+Lc|VvUI`%0 zpsiRxL*lD9R}bh~7A|!c4h#=)x%8iRS;e>o zBF9&`t*@N409PZDZlzZ80(}|+yzgb1#-$;l(%!wr7sO876?1Hqlt|2=V2k4Z>5-wN z*n%8X(72MoQ{?)7ZsvEc*jLcv?n(9vt+R~KT&cJ^&RvM9Pq?< zU@|Ye;Ns)+GR<-UZ6jK)$bB&MHbTeTDroj*Q$|h&w+cmML+H$x#Rwh)WuLCdoi=pC zC?x#FeI%RDH43MLR#4Tz@$w6&g@cbnS$K`(g#c`xrD8Y%02hPotI%}RD@ipZa&y=j zMUAnBjW|{JQV?rW=ThMWff_pF04`3(y4BB;*t2W?KP)Qr7P+_v^5;EbifhMyAa%D!w(h8|)_2k9bNAQ$d z;OfqJpf8fPJ=QRA}J+V!U0JrsiZrkUlwf@f@_b+ zcPEvUz%?Gn&L(*)faW}k!lj6|u*+}ym(NhcXW248sTYIm!o?$V6dmBCyn7$09@`GmUReVV80onJdo}J6#R;z2C}i~s&Jog5ud895@$__1 za5f@2bFL9V!)Gd8I&)e}*rzE$%Yiz;x~qyg%xz6it-#n=3EBr(=yJ;VN5&sYVhX2% zDG-TvBx<^Hqb=k38j)c0fOELdwuRj}7Kkk&@(xs-Lz`EWE)buhG+pTG8+?n|62!+L z^GS*#b)t4hp?%r`1?r2?hX`3RXPG-!PGqfETL|^5gBOI1TvXZv9HSt@vs{BIUz`O_EhpABm4*ZNOh^@|iA{k8h8U9NLnk_46-`c}Hm>y+=pa@IU>PmDWr37w`*8 z>wh!f^uMFDf4*m=^&He8e zN53$dW~GV$u5|wqe2xDu_#^f0CVf%Su<4^_T&8EoZClR^*b#pF2n%`^Z;I~mHoJF~ z;E0V%i(Ws~!(15Zo*Q)?)T#@X+IbSDfJCz?cXmYw} zq|?02yAe3}%9z_1|M4eBNB{M|f{ycc5TC^FhC~RI5cgpk(U+_|It!=QA zi$(3IoSuEFoT%LH7HQ9*EF;hq`s@KB4A^(DpfX=vf-674=T@bs!5HH}mZl!0=)~eh zj@66vx?JQ9%tXM>Du-158I1VDe{3}fXtk&p^@s0%Il1#79r&bkNbBshx^9a1aPYNj z46Am|Dx?|Kb~vOuUnk+xdNge<@<~&FXw{A%2_h-cY3r#Gd^3mF+C4J)5;YfNphtgX zB^sdK-CW2JsV!R5vx^LpRgWPMSAw)%y@Z+@8l1oY@Oel|?gsP%9&9};b5K-halEd} zV(wp1Y*hO8y~!W+l?Y3cr8H8xk?9$rK|(|&g99+GDfqL8+kTBX*{zw%Iz4TZm?>z z$NIw+wp+saKZQB-8dh;S!egICDq9Ks1VqErF%apS@fMQG_^x};Ua&i3+>F$_Qq!|L zn;ZyFNxXjRrf zT_+6wSN)Cp^+!jy@cY(;LH`ls(e*zT{Xf}A8T`cjO{&B`tDJ!&8*~9FZTq>s3 z;~MiDixu#vA1@XY*pgQ)i#fz(LPYY8L&UQRpP&RV2R9(qr8`Nol-Gi|AYKPicR$Mb z8|kAmul^}z@=>*LgGZ?{ zE##pHl!`=%Po1J{}XNmY1R=+@S|lNdy3RO<@cGmJyh6PWBZSG=uy(U z3Ka-+=-_`}>u=PrKRS91zi&@D!sq+sT?l`_VQz~jo}50fn~?e0ZBqSn$u(j$0=dR* zf`OCDqmHsd)2Aofo`g#QVNM4uU5_z*r7RwOUa2hL7Bpqccg3S_dBD@*)w;>S@L_0d zpxB&bVqs9cS1i?VwJ9<_UBvy4JXBcI%gMwc%91ypZfKlYz3iZvd|zh`=AaA{?N^C- zR2&R+o#IZX`gxOyY^+GEXy&K}tbmDZX;Jy00V%>pHX?P`BO8a4yHFXrgv8kJ=8GJ!_Ss81`1P2^fh?dt)_A)0Ng zsGEhzLhgVkvy#M|1JVcMnX6nx6*cW*QDn4G{`=F@w|S*XEtk-Erh~2B^)SLYv&|4_ z!dgdGEpQAVzkmiG5f7;dc?+I;1Hc6>%&|+f|GQ$kVq|0T`Rc;)?MY-F|AmSQu*Txa z@eP!f>kp0rW79{}26{Zmt<-IS&35PDQo2IqQ@9JFjHi*i+~j>XXoNTy8hvC`?uIF& zGvfEzeqyaVgDl0`li*39)j32IqH%Bz5|lJFZ|qZ%b_#1XciH2)qGRJFo(Y2o?-zIY zHmNb7nBnZNj#OJ}8+QEZ1@nT!RO!lTzRcET2aegBO60kx+=U%D@9If+V5sQqk-fY< zZ5GWH9h;L0Q6%W*x9eg7w=O(DCy^QxOGZ~jCv8uw;^KETMs^aK5#0XR|bsmiq0dqkV5hXE`QUoVn$9+0+?wKp^v4k~lpk|EQ>MA|HxND~t^T(vs88)^+V(+xyX$?~A5`hxmkcIYC>dRSWa~r8o~8(H1AyHXw=QMeP^` z>koryUeb%L6I2~nVcbponBP@-wl)y;RUgS^92+ST1)Dv?fP}XgTxOCJOjU6Q6c>g~ z3+>muuCcHx)q_YhW~%H!%}tI@209xK+t~C(@}8yxPT}Z{DsQCuz=Ye%HR`U)@y`)8 z=ZyS=r>WsJ5OI8&5HZ}qwq7VMY&o`k%4qM&M-%Ze;f{jFMVlEE=L8b!8HhJzAr6sI z+C-G`G;(7(86_X_Fd3z7m@+yeHq6N=`IraOp7AmvboV^GAkoR=+yvVRIOBNwX=i>s zzce92Qv;g^s{_x9r*#Q+jt#M~Z&%t|!07|I?-My`j<;ZOMBV~@_c#NmVt;{)=36V6 z@tQ-+K(;DWhnY=T+D=~mCw2qYHzsX6^!@xlP&bkGmf;4gktSMwiu#(4`fU&W)_N{S z|8(79_P^_I)UQ7}`ZfH%wZm-ql%MJ|8~)X1x7qM_Ns{}ly3M$s{grXR2d(>ICtGot z`5%jcj1BSp#QDo4`A{=$6ZI%x^StWn@1Vqtqo4ykB81=nlsd~)WeIwR5ib0>;rC*k zGuU%D3JwvgpEr4aTff6M*oB}CYZlbgimNrx^P6}_Zl}#fRBLa=UOPCPOTG$IE#0!s6wRtQa0XQC99I0ctk1zkP} zHCw^Rh?q)BM`p!CHI6n?ePH&OouDhcK^R+8s7@b?r_^OTC|75w`0RVIm&@lEKi}2& zznQ}+QP(LsXZG@I;}{PqD{%)9r~`Dj$WN~7T$!w(fyOkg#<59ohOQ%B{i!Z89N zS|o>L_NVn|aq`&Gqweb-F{YesJnHT|gXKrnJJkdqijIv%)fd1shR13LW_L16s9YuBsP^Ab z^||y=UJKyhXj{Z77Ll5=jjh(;1{O1M98_+;HcCIlCjSMZ18F=w z;x1B$BKTnYe7t1mU8Ma-{8TL5|C5bSi!HIwDiU^NgKgkcZQ*m>MH&+h_cT!!7NXPX zHT(ig)WP;S%=5lU;UpCY>laI=*E%TGZFL@q_e~0-U2+uMT7TIe${um4R-tv-(+aF1 ztP3?!u}dsl=c%lu#=b1>U2?zhNc6r*q4(>EKli1jch%u41laSS_7Hss+2s#elTVtu zZ7mZ#Snr#Z&p_=B1s22Hm1^nAnhqZY!|U$0p27|8GTi-UKe$ssMQkB%B-irihUc1I z%k$&1$RO2ou>s81utZKsjI`d?isQbJ_s(mLe0c5BxQgRa zig)65KP==PWInHVMuvur(oE$#dV4)xz5ntuYu^F6dG&yg8Hwmk zMAcYuIrQj4RJ-aa@CU4|R*P5^?F};@>UC#iw%Vn%|Id`uKd@thNZ4uTK$<|Eb6EnMxJ* zhxIxu8eyE0W+gDsHMW(Yko9YX`>;<`1wkW60ztl9Be^y+DbS;Nwn=t&C~LS4QED$J zYiKYJV+}(zDRq=J(s)0dH4O0&Z4G<;5v^gGb=ZepA}hpt0o-N2D6&~z;p6fm?~uw# z=~BZ@4I7*rAIil|@scRJcV4dB$LR`=C_LGVoysD*D2ouF1xM7yPN6Lk4WB06LL3*3 zfUfa8MSbLTrQrhVtVxzAQHoA5q8XaW11Sg$$;!JEo z9YIqmD+8$5?_v+5&ssK(kqq~XJ|YOwaJ{fdZ-^7$aNZO^WBEK?Zn+@Y zJS8$sK;d-$w89Z-Nc|M^;Ii5WM}54|%&`%vt`wwjxh18;W=f9MzHHAj!EG z>5ek5ZzwF#j`_PWv_DB!TY&Z=D}{3qS!pD(tZeg8U?0C4?jP%`9M3zLdbEY{Nw&)F zixM{5hVCf)ynP+XfT^cJj?@gK{S@Xp#P`}%lS1@ka3!2@8`@71y`cECM>?eSizYtp zrbA&LGDz@TE%lp00hiZbNBo{|w&@!fc=HW9qJ0*Nb z{vBr9*tc)!A26?BDDNpqP`E5l$}vSecxT4(_4?^PZ>}Kw()St%kZcNHMRGoWF?f(y zAK-t-BiyeEUcE&M0th}YBUZ?~ z{-UWG+%x|wV{2%{&c7IJ9#A%*h0Y)wkBC_OVdY%6cEMbVv0WI zO}?nHBi2`teNcth(G~`BsY=Ks0n(t0K4EM$TJt@$189DL7bpo|auL7LY>xv=0*G4# z$3{x<7NJq@v}kl%ASZ-va92c#bHGh7+k9RVzV&p~KU*@&1U`B00jTD7&10~#zRMx(1+Ty=HD;_Ze+7Oeu16JFddm9hEej~{ZA%Ya z?3BD9)mPX*m9(FI3lV#4BK{tGC>?Gin0n^*9V?1;#T%3%$j~WlNaafR1QE0YgBlo?@=wB~S z3anZ5MH9dsY4=W~`^fCU+r)(iVPWq)Wtpy*{e-rmRwz{(ub+V&36IL-T`x7>Mg1V9 zjL0cmFJ1p(tb7#p*46bAHyO&Qqp}Fs%bWZjPDO79q`Zvy`=)k@XixR~T%+l5J1Dxa z?-1JFxR@m>{Xf(o6imrL<1XT-*t>AdUZ zEi}+xgHxRcDQGTNX-jigd3M|vBAbg;SA%&*(<;r-HyT}N#-=&qlf3BtFj#X@m+v7Z z0N#NL%Y}X)Wfgk7*Ey`jy~icPvN(z8Kms(_WDIYHk2T>O!832z0Hgn?kBqst}D86}t5r)(}J>E(bX&Wcm-jVtPI zZ!dg-acxP0HjdnxN_8s&U46ViUbiBZ>j%sqr2EO@j@|tf@xo1(1911zjTDJ=Otl?Q zq0eLti$+z904YpXZGq*U70R~VRe6P3!7=v4P}2s(Gr0Du*nisR5qITXEi*~MGVxo6!zqG}Y&vv7`Ls1{_sNeSRzS+(j-TRODsg3Ua zKiRU;-JvhV=l!fUx^qAKD>HmMXxk6_wi$L({$mjnj`@q!(?p$I$f!?euV*vZN(n8^ zNA8dJzDdyo78b0kbwuTTlY&M0Mv5*lJj3N35cd-oem{r-iG0LJJ<;@M8yYb`aGNy` z;3z>uCA6=3+=MsP97ZQmx+AWb-iVK4vayz4T&*$J6pLxy0aHvT&EKIFVmbpYKF#05 zdtG8$cf=Lb8>w@do^g=tO|~f3un%qoD@1iU1ZV+q+_OSW$4tsRYqm-g>Ilxc5*-(r6up&?+_fw=;hn;bSoTlW8RWGD+`pYv6PK8u5(S)=m@Kn>L`raV< z{JLJ`{d#>@iS{7N?YKgE6L$W&8jCOLN##k{d80l389_wM61mLf-=oI047SUd&Bj|W zg?vrbBYk%|IUFH(cg8&sz3>7zj(0f(`=WK_oMHp1d?OSwi%MzmNM1^$LS(kvhj;;7 z`I<}P!MO zq&pp=V%nH^B`lTH!C{c1nd-F;a+&DS1Lmfi05h+RZG>h4|m^|AcxKGT`&VO`Itmj z$;=GDZRACK%G|FJQytHpo{gHynmy}0nuDtrhQ0@9Nxbn(QN&C74fmm zOrE1(8`x(b0~2y!^nmSr^oYeaZ`OW_b}2Ts9mc`d-sQC_K8WSLE3TN{2(Qhq^bLCD zl(G?}G^U;7!E8BxmY7-zwv=wFTT;u`^|eO1p@>eO?Wj^(sa|O`k}6ML{dQg8Tb6sx zaT>InJX_$(>^W@q^C4aQq}*HN7JSjSVho6QCta+opwPm`Bm4~LXHv)H+opyQW=vDT zBif5!<^h>(+fP*>4DMm-9RXUPq+Fi9iku8HiDJ==!#Mfw_>t41@{Vsg??>L}#y@#9f1*C2M(aQGm-zp}|Lnif&q}C2!9UmA{_!jQIggHh zrN8O_U;ww^uiBiBJB?p1)7hywM8CmHOw@3CRBJ-XeB&BS z#wS0kI#T@47pbEEt^IuP%JdvAiD_j%;~RaXosXLI(ca|^+&wS9NbRls{5zFhih6db z-}Ye4cI{L)AMq1b%lwlK^Yjz*H>nc)oa__(vwxnQ%7%;$;h4Wjl?@f6AI~vf&1W}n zF6#NavyXFljTatdI&yK2*cw4~BKfG=A@(6%{FL~W?2^WJrf?C|yqk0%WmsST3|uw! zpT7xSyIns%Qk56L!a4ZtA^*N;x-~9ygZ^4vh74ByV<-Cr)(s4Lp#Dv7j=;e`?&_!G zgP^>Tp->Sy&;mSzJ1{>kiwuGmS2etEQuKt0CZvtZ8UbymWvO?h){r&wNMoP6uOo5E z%Rwt}bn2mjY|%w_pO?4w2`mC%WXU51d5?8XN*%wS~f&#>vaPy z-d)!e_YnCW&!v`)%5eaFv*{_#SXa_XdK>ZA{&o zRNcueXuNCl=KAruh39$7Yq&I94~g%AP<4?gF1)Ie39+euf#VhI!NgMvt;&$^EEvWKe1CzbsVz?TGr2l~x(yZ2Xd;r1C`9(T$1zDcn)NF5Tm!BwI9gk;X14ZFTa`}0lUu{S>P*PVG@MzU3;jlFTcoDv z4TL{|p<#3GWn^3A@AcmJNuIA{dO+#>Ne;6xcPl9Oz*7u;lyh)IVRTHLFty*WM)#=9 z)rCDubU~f4lXX!-T=DdDIyniF4QxFjDRi-5Kn30(hY28Yjw7O-=6w{8!U0t%O%7iJ zC_Z0_XjoA=t#9CdKZk_oBl@~~J{>4Yji?Na9FfXsVyum~-Qv1f!4SK9(Rkma+;uFh zKzJ^23KkXXnjFGq_I$IhF6z)ZXX8aYW3%sJl2!A()MF2CVB0RvbCv#y{f`{=Mk$SdFM7 ziB(;fA)rfc5`~dC*6hjX@xVkkzgp+(9F295aN^UL#ML)hp?2?&fk;{DNnWg`?bQle zIHr}SCHxaW!|s_Lw= z640g{IHBwlNcv6+v(48F2%A*R)FaFLCWS^S$D=qpT*2PY=gW`k=nT+s2~f3OsSa@| za^yVx%$^63Dz>hSf5vZ$y>1HD@u4>pCAr{g1{%j2_@ zPa_ktZUUpqM~viw%{~z{-f%3J#RDYW%lbj=1u*fX_djV3AX5WV8W{Sb#t7v{-iI1Z zKamu$lB=DGlxeK+qUY-gb^2V&t{SLMWx@&tiAWd#l7rvUX(I|f( z+O4obKslsm@5R2TZ5Isu{l79dMO{IC2TS!>rN?7%ThE@`E`QoQ5^P#Yy;0bw`7&FV z@Z<}W(t|^|C&cpteBj$!Ul=lZCh~V+>22-sT82&K+(C0uwwlb_T2U=Tq~eS%h@tu6 z%9QlS>(w(*y4j@2wsX|$Rue$N%i;^4iF?BdE(tzPBtvAjy&HOPKHilI-xE%e5pwSA zV_>Y=G*SCf3{AI9R<+q2(n3<&_=r*(Q}s}c6S2>KVDE<2^Tn@6s0>81KjvL*{pO$U zv6M=S%onO&B8?^GAJr?S>Dp{rmD0E??qTQ!Ta3-mGZ@g#tNsx;nROvOG$m8pl^n3w z#ZHQCDG$v@+c2Jc#|y;B#Urz#K7CO`dN5oey-e*9qNUlNvua*u;;9v?D^}Yd6+{Tn z1R0Mhol!{Q^T5KAN-N^en)e|c4oZmJ=S;G*{BiCw-uw1O6)V2Qo0MK@Z7Pb zDaDKEsjbRezD6%rzQ*o=8IZ}wBqKgcrx+>H5A*L#l%kNng8}r5qIwsoD4VV{-`b#! zD8mSqw(G~Ea=<+-cco}wC0T%}(?f~t`MpBSXS2_m+RpBC~#gevE6dZ#+qX}ty710jcQ=qhC zk2?aWY^27A=3&`+qvo*nX%8D=0#UMU%xQ{JgJ8AxG6=W zdWV#@%$}d_agKY8IEk9%)K=6*9AcKh(6G;<1Uq0f8#~SNxO5)|@itq*{+^~QaPZ8( zAlWpgMHQo1xujE~k#J_hCyZ<1sGS2^X9qO5ZBmAuW_g5-+DqFRWwJ^Jo<{jTXwZm{Nu4eby%h%XQ-00`P0aYvQ)+Qsi1|{jNH$fF#mu$o& zDm_HGx3vpqa8a`9r6aRfRdiOcOOjG2m=vCEwZ+6$XU|dEy@Jmql4#Rc9Z?a}88I z`V>~oEb{BRfELbu&!=iE-HbaDB54DbMU|h{t$C-;Jp$h0Na{`Ep$Y99eG*{L1uQG9 zpFBdmZ<44Ye2&u`aW?ztJRt9zBvit?(x?;IzJfd6V0GXakyQlKbmVHxQMy19kzl8q z$2orQFBNMTnqbIgyq??$b*9R`4Kp|lZ2L)7ya!Av5|!W3NNA_EV`|rhj^GnhF|x)s zdlUK{!6#YM6ru5U4PDZCByAg7fg#%Q)s~GG@upt%T?LxX0Zp7;P14u_PkrT+$ktdY zs?szbI;yg$V@6ex4s)~BKx67RO)g=fVy7;DvE|zdb^q1@w!y6P4Y5vPrfc6j^t6+M z{To%+gy}lI{!$)m(PsB>tvo_D3z~oK8(0ht!&Rk}N~%lc)Wroeyo3!7(yc$#E^NeX z+j?HWl-^|BG%y&b>BeqABzkj=F`wT=1Pz~I4sBNbet6vv;hQM76(;Hyi1^9zOE!&E z_xowpeh1q{E7*VnlX@`NitkThK|e4STuRA%HHIthj@X&vz)*21CjCN)iR{QJwzuMy z=c^N2x>VoL=~{0#?e}jB(a1Av(9#n!Y>Hn+Y^2$vt5=KmF+HqFg6dFK{vAFQpP$24 zWmtzUww8ovqd$Q*RuN;#rkctrz^z2S!LkXW`viM;q$O!-OK4K-jeo7P?UE5%GWp+=?{0*d9CaBF#Za#`{b z56#m9;^B)Ohm@hhJE#nM#6$B`ikG0JI=-4Awr;Dcy7 zecV8W__)dZ-R^9$`J3P~_jIb=ZEYB2?VrMcrECg+w*6&Pvw;^i2-A`y#XJcSor5Ol zCXc!U@bYeIPDFSJ_aQk4O-LKHk?X9Jl~osSOXV1}@t{v88lV^@j7T%SzbEf_f#TlY=FuD{{mC z+rA4%(KSL3C{+tI<-gk+J0<(7pwI?T-7f>C@|MiEQdA19lhb_Al9Q9U$e-zm`^oghz3P(R-6klG#M~=j# ze_?JA&`!u`z+>Q#Pz}gkk z6Y?=xg2+eA7Yz;MLS$-=$)gjIrFca4&%+z2lQsZ8&l-> zI{&!E5%9_6>P-?y0e8z~%=UJu&ML*x9&5|B!N%jz7APhkD^k@kdo~SiTTR;D(6*X1 zHX4;LGqe#V?O?cvlBK3sik1?6^excs$#ehJdG=J4!Lyfa{-&G{(@_yzi+rqv^I@r-NT;iNtXV?^R9mL{|^W8i)niNnq7-REU{T$c4*c-KZM znE%>D`(=9$&wltIe2GOS3e1!=(DH5GeV>)<10cahgfWoFY;?J9ANw@zw1O<{L0(Qd zM^to-G@7v6gv^d2+O%rBX02+MlMI^Pg}OrKDG{?TD!zeP{&6TJJ!?e$zQ{jZEs?uI z8mYSJd0j5F#T4Ih)XB3*(p!Mc{irT;D5=4|!VIUD?%KS;(TH*yB-GjQLL@6%GHQo zn$2rSUypPQJq06mFi`JTI;d|R@xgjMX?&Bz=wKziFCx|FKQi6~P^_nn?RI`4kEzX; zNUibVeJJi}B=15%LX&p=_}t=t8P(P5L$Y<1x(mO}tGt2Yx@phonsS5}X1|Qo41T|t zBDiYDlWU(eHaCg0j~MROvAUVymIoh{%}?r%+C)|TrCXrc^hUh-7Y{aJuDxyBJ*{|N3wCp6ARVv8*)S|<#WkayG# zjJ(4DbTKO)Dmc#<`TIOrFwN#8n77tP^B3kURF0=NX5Q*xwFh~&F zKjB`Ib#SrnLqCCwkP}+vurEIxv0|V3g!>ewrdF=_tmINgWu1CX;s{B-?gBRQ=_2YK zJsLE4!+R3prMhRd;E=P?sI45Dwp9a3pd6aW;5F;wA3_qj(xYA(+lo1KtO&gpA$q`Y zF6}$Q%q zbfynH#eq5_MWOcWh(D^@bJjakrWvw(s>y zgdPZ&jh>Ko>rakPyBIgw0>XCJwr)0)I_z65!e_H1eb6r0vbrj>=gq})eC{UO!E?x6 zqf;%5h*EMq+79+ZsGDqM)0mKJ>@{eUp==pOa*d`YILPp-DIOrhS>6_%eCA{~)ZmD) zX-(E0J;o@uzRBmKZyyjsATmz8{&rPJ1%lcMpU2B z8NBkL+JZL8WuMWMjHpH(<-A0sy6I~wH0e1>MtcMO{q+Z-g-tk>Y90CfSvSr|eauM3 z!}J88#q;n&1?B4sm%;`UrjMQY!JD3}CMa-AJNZH!UrE{~Zu=8FGA+|lc1}gK_{D|>X|zzF+>@HlSB(dS&iT8G;;9fvY?Eu zLkY3{(6=GwCd`#Lq&<|o=*B|m` zO9KEOk-j}3nfDIcm}jeO9+s^6cnK7`cpGKS10af}$mFRQkIt^443+%Q(ZbgjVE!dI zAY3b+P`lZN8W77yrEkX5vK%cU;-Lv?qh@BovpQ|yA?z(Jr|eU~!3xM?V1CVbgg z5wFMW5$R9MW*Z7yXA=B#m9=m~jW!+lI0NKY1> z6FG-ksX17|f#O=+l)KYG8_zF_Q0eqlxl|6gfiSuBCiwC$t`Lpd0|fUOKH~*<8m;arhs{Dn!chV6Ya)19+rRjxU?nIuP(CYLA_{qSyaW-`pE}m)0p5j zD@0hwuG`;qi`W<*P$b*q%=%wsZKpC4K9O9mCg`Sm&|}j9Vk1Rzb; zs^(_BD?D^;JxTER2ejbeaVbma0KKRma0iY`m+M7lVH$!>;cln_seIJPJ>+zP zy0iw(9bC>PY;Eb$`VMA2R?rueWT!BpukaJtp#pO$Pq=q4>gwTeUX6=3co)Gn%%w8H zo7#>Ws4*9p$z3U0#L7A|4wtZ}17^%sCCw%(W%`@ogg%lb;q61)0 z>Ihq;66#!+nU5M5_u+ zoOPLFUS^D}J{M1VYUrCr)2Dq}p(RSl{<>%zDT2L8Pg8gH@vz(!q9tSt;aP_7^QMIw zyKm;$=P<#}4Oro|%tlMdYvEa2To>?)X<6hIc7WNX2!WCw7(EawA3ajF{PV%$1+@3J zK5WoD0P+kPi$S-<$O&CVmS%laRTo?!Xts5T+%1mBunjd3FdLP&xE6KOW#FPEMDiAG z29+<^Bsx<6HXnI3ZKAskUqglOeXbuJ-()iTj$bcqMR=Q!E5f{9W3YiX6A zpo9%p8;FOa5`ws*dp;zU1EQG9h)r~IX24mP4;p8_IO3%_^H(lfNF3iD@Te2|COxL&UXz)ay5pJ-<4;6mN{6{gW$j z#L8^7$`{a(1OqNUS!|vrOtplFa*d^LuzuLpd7Wdr5K1tiI%h_E)x%-v{QAu0>P&*~ zXArjz6Lawr>Q+5o7?!b-A`*1!RtD)1{aihkyq_zv^%BkaSvZeRu%G#@ik=XG|z`Is}k6h}&H!tJ~j7tc={fOBOl!VVbD#ZHKfw$dHI z^5q<{!A_1Uz=a0<>Osiq6btE{B3*3{h-LG52U_6;xF3L4Ko!!O&^duo=ka2J%cF%B zIMP$&?B(bq+~egE`iHvb5i$w1kK1FOo?Tzp@H~n14cCOecZ1jujjz`51PhWX9niG2BdaVW5 zL^<{+b=^vH80q$X_PFj~VPSQhHQ;r2Vi~8~1ndmt56W$vm!cE4 zgurPS@B;GKXCNVt|J6EQ=L>8oDs$XUf~_XuV^VC~gj2sAH#B%`@Pt5u56~>8S8F1jW94)cJOjXPy7dYzYLKX4bC!oDfiiOWm=I<4u9C{E zL<34LZo=)WaU)4AHXhxN(&OnA*2QFcDvMte`cZsD2qC4I$99&2BUamZbOx9gH2ammwGFc|{+-o{F zLnt;+Q#>10roDhvB!nAvwHVLxrCK7plQeXZxwbE%=SXvwPH3??ovcYW`2#fYHqXCW z*IjlXO&THcPsrG5-XhlV;y3HIdxD_~pFloW=?aB|+M;C`f!5?xgIJ(T^Pe>8utnH{f;|5m@m$wOdO07+A>JP8J9E;i=QKhufS(w{w1q&ax zC%D-sH6gN8cy$X!4EZcs#4b4RlOx(Fd6$F;>^6T|q3uBjGYHYyI!Z@iE}BqF5_}Ov z!-U5d0bzU%NsyVr3drJPMSMx8Dr)Eo$l}T?A;)2m0;0G`DSG(WCVgS!FS-em-J5_%FefAyo3P*pl$&)GI)Va$=tV@)rd& zQnb;cNqxoyKLfBn`LG06OHyu(O-vBv-{)E5D-HWBBvh)0b2mbMHNoqEiT$Aw0B85r zh@+6s1Reu!pBhtFWYqoO^O)}6y@L(tedPs~b8ePh_?WbR?qH5k)1tjP7jJ}$RzjA@ zMXX^-p-MOSio`vuJk;Un$WRk*ETk3px(aKP2|Y82v zkF(Jnz&?c>tl;8eVrWY+ZT+sR( zn3b=(>$<2qF~1`jL1+8>C-J59C-i1${77RP_pGw<0s^^s37b)U`dTaG5i;3AbRq2t za~vaAwRS)h(wJb6-@s6G{wC|@kN%a-wv7q)*ncK&a{!QyNk&R#eV>&u;CS5CPk}Mw zo)t2??qY3RrF%w`>Pcj}&~9OHX_I0_q67QVjm9d=dM?yRQu`GW#$MT6+=oC_Zp>}U9~L4 z)-aL>w*3%265Pr{oliSk`{y0b@xS~6+IGcL!_;l8kubA63L4?74QRLyR;Yi(iPBgj z;1G8{;*4S;h&vx~#_y&RfT~xQK(zj}IU|=y9ZwjY; z%PFjx!cgaSb0mkY71VSCVqI19`~-$KD*UDZ(fvbU-1(?PR>7e5_2U4JYon;n6oYp5 zF`vWp>qxHeUhwIQXy%LF4jaT6L%9@E)xH4-T4Wch5B>YBDaOzrqEpR7?lv5^y>M2m zXx|JRtXJo9mg;kG=!1kazM$9dt`KU_*Ac$HbTp`^)5kro7PD1RZE1R9^O~Vm{$~h- zYc?{~%`$NPteThEd+B+l>VX3u_Rs1zwqx@O8U{c@X{T5yE$tbi!4)d*8jk3f*}*6o%5O4Y<1yyt5E*wj_=4{G7pN!Bz)9<)bsPcb!j)vxY7yEwj_V}8p)-bow_b65E_GJ zQ%g(Ma`+l>@$@KaLlecNm&%n*+Y_8efww+7q3%-kIfeAy`XRpos~|_C>;lq-XsW)t z0mqhK5+6sQjLK#yKI)AkKvqyx<r6#o^O-0v&qQ zB5QE8ezUceebR`$;IutGnaludaq=w9I?-p%#gf_((#vU2^ZWI~gKE=jN0=#(MCNAp zYTEYR6z;g0tye49Y?TL&23LBtw!qVe&@l^7%P#cc^RGWH9(~I7^JU*ZE?|a5?6*;I zUi%u;Y#1?*LLIF!{e0J?cgTHa^6d(F_IkW&^|$rC55|=o8ELh4cI_PU%j*Ug5R7pu zBDT})f}Zx>kPUZ3Qx|E=-xuESUapWnY6@}Ms+AbuuA$b{KY>2d%}Dk5^~k-^ z^T}ju4C#$3DtoLTWyY5waV!4vk zxJSGO>w?=cT4^-F#goPpRNlhS*KcQ6kGM;_$*4-iR?N@^=j$p_iSSXydxs*{)Vxm( zXwb&yD(XqrZdmdQl8PyJ=SrNQ`s$cK?`PqS{A9f8wSM5fQrn|AUD1I6Jb%jRx^w*=?L zqKSP7YJU?@HPS+-ycxw zRnQp9ri8>et*d~L@iEYF_}3g8BXYBvxwMO4U#;>Ay_P_s`C68Y6et-ViIfeN4266n zF=lx#>@EC~JT2-844)7-x2XIG)Xv`Lred(QeTl1cUq|}hzcS}@3*wu{yn@PMc@IyG z+~kno45lP2YzEW^0qWZcJr+-?wE$ap^{avo3P21OB*!_ zqCB!K!!2wak|OZ@whp&&k*IiEQG^#I7RhdF^OaCyRP+#_s&9wY?>;z};v^Yv85L&Z zMD7DK`>bi)7_#AOKjnd7l(21(mXDM|5s(!)2z;Cr?cX|J!Ndm~ zs0(!H`oiPuNF+aR`X2%L`y&5vwcJz`J{D0+_pm~BVWUwVWPtX1{UnWJ67*)^<#_}9 zhgQ;e<03dcw@?L^;|_WFA)X_P^nb%Qm+oOvP#5h);wt&v|wZUE!UUDoea(?byC z@^J`%#Ncd%xO+sB@{T;sJ@0OttZHF-Q@)ULk&h^)F;zdLI8+_j=*OF)dxWCP12l`a zVs1us($v_uVM^(wa^08f^0avGU!dHZo79qZ*%jDce_OvP7CDsZq&GIzA^JLph5zfO zfv$J^92L~eU_=*JQcC40Ll;Yw@E~l@__l_4wsoW49e7>Cyxa4z;aJyTW%@+rLa(k) z&PJN;CVCC8mdm{PzJO<>vr?C{g_IF-0@hO0p7TIOxhIm!%vhX28QC}y{+aD3rZyzx z8sP~Ul#}PFuxdj^!v+cbW|)$G5K4)OCY2T8yCQ8chH-WOn|$60DWhr(9+s4@gfn#s ziy1yjX-dTr(nC$MAn*FDKlav~JfE-265ERWL&mrCgmF#1dQfrAm-524 zVFv7F(@AZQ)0p)f96ljOQ%=Dwf67*mbrZ6ZZHW_3x5Wxr$i_-I33?{TXCN1c>P|vQ zy~&CW7m=vRBjE{W;|cjl;;p;Y8v40migT2nAvT_nKI&b7-in=PPeu8RHU;xRV_CCE zPQ%RQZN(1V2exgY?3qFBEjH47D9q_%MD9`@8arWsVPaEC^`wS) z!NFzYQQd`zhr(T47b~gXLG9qUuGU)#QJVYSH$HxJCJY}G!7>m%5B5ii`#1rNBe>7lH)I`GHyZqj`O&!qz$X@&O$Rcmk%rAS2GMj@T% zt8SD%ev}?+v>J9q;aUS}e8NKu7|GTWDq>KyVIIL;@;H2{Vo{kz*%>z=n0xxDI9Jg- zU6ioWNTn_7X7W7ODKVd5KBptM;$QZ6#wU>Fy-ShvVs=7m>|qnVtz8Id{yO5ved*C$ z-#{K5mjpL;>C7=lJ_K9hkzD*=yPrW9Bu%@YD#Z4Q4j~7qPIkq4XP8=T3l?|bQFV_H z6q=}Jm!*oR&(V{Ma`OKeX7Sg(@A$M z(Az;75E48!WX}Q?v#E@5*hDIdN?kCB5V=Q0pmbT3VsDe`32|t|MQM=0n!j`GhOb6! z9Zots@UppP@_4vOH{xA&U%(!kg<9g&Cx!fojE__wk-|F9it;>byOA)d=;$WL3gTu{ z_t@Hq)5Lu>AaJy~NL0?iK{`m?A;b$DUA`TQ_+BsiyV$|IQpHgrKPmgQiD%aK%T5F3 z(Qn{l&m?yAHUYtG4)2b9aM=cc+_OU65e|=qNR+>fNdF&q@7^5Ak=zMF6wP*zl5BN) zYhP-OM$+oBGbFp&B(+*;(0Gs#8{HrZ&7PB;Z7Wfg0CKvjvL>slyD|UpKYfJ#Z};@D z-CH}m`wseMbMEnu$c*yvjI07QG#k7cgJ1YFJUrYzOc|;gQgie!0A)*(iXFR9b1|uI zD#RSXpGM+E-CwOy!XqYILn0?kJ!M_v4AW(l;=9!`qpQ@EuOE@fMOQ!|buu0_A@Bfm z45-t^c?mDBRI?4&fLtj)j!5w%vu9kxvkl-mZ6N?G0$L@STRkwscjjzP)4NE=3YM#) z39gjcloQ#Rb9i+NDTg-~q(%*xBcS&YiH-GHPHS-*Ks{vyhZA^g2gU&BqDJ&sXGIj(73v5A!0gu)A~T8pz44TiPF<4f z6Uf#o(l7gH!)q3GgM41jU>h)zSrA&Y>5XvrKN#+MXwfFUo#6(-AQzX(-CQ*CWGJ{h zg>JS65|?%O;3=0nDxW8H2gY4NJ%`*}4~p?kIaEYJ?(9hIH-b>Ci-T=$zAoixlI-5P zh+ne%tBY+?HJ#vGuG4$oVhU{sc*MxGRt8e8=0^Bw{k)(Fid9#l-U1$h&5R4FeoR&I zC$D~A7O%^7(1Oq3K}i~aj1`m;>nU8Fw61N~ni4^@XT)W>8lv(cvWwX>BH)O(u{y@F z^7$CCdtHSDmwoUU(AlzFPimD>^fzffB9U{(>&5At(vE@2#G~HI1Uzuwr9PNK(I|BB zPHcZ^c25q`O9=SzPLG85N#$xNX@#rl{$z5zo{urRKFDj#lq^?MRe?BA+)VAsAzpAn z!saMZ!FF!&#P!+}xMG7SD|b>I8Rq~h6sALX-j%jt(-_fD{mL59cnF8gRk=ZNxR_+D zvw{)_$X86K9_T=^4tX=Qnm(=T*XxA_7q5S2+9qu&XJa{|4`0j8uWg|5HeI$2@6}gR zXzh#n+iD)9U)Xd}75@e&ObxS<60BaOBDx4;TOe_E9F3vO2;7Y5D1vXw za{gqEvk5YzU@CJN#m$U~DLIay>t=j2#H@~Vq<|#8#zeAcdb$e~tcoMzWK>;ab@S8m zO*!@57#}mDH#(yuFy(WqSoD#pEtE|JXaPgHHbI@x5DhAhpEP9=jFe;}MQ%!T4~#+r z^Si2oqI9;zXnhn^ofgZ0C_YjolF;*z6;%)_<-U7MRsSj^Ec>a~tK0}aMGGMwgNYB# z05!i<6fbErXh-ip4%D74H>yvtg_vvAL=@k`3kc*|8&iInXjK1+piXS7aA^ZceRp&9 zoimrtB>yFl56<$Cs7e4!&b%WbaCY8kLFGL)se<_`}ht(1i zdAIGNV7>=Ph$Lhv_$A!$LaMvXTs9_E3uw99CXj0x)ZMYgf`O#)e)01w+~|w>WEr?R zHkJL612@D*PV(x)8_2@8T%VBc_gs&MiWDB5*wT%}r1~DrO4mhh5A5dRQn$Dk_X6ga z?spgR@#Pw!){VfWtzJ~C>|2YZy;EqBKns+X&Cy7XUEf?-j=qGWef_rWhPa3+_Nm^c zS1-+sU=Ew;Kk+vgz8oWG09`GGw90{!>J)wqmu{h{@KF;u9E`CHTp*XjDf@PSn5#wf zZgyB+6)+#jH&A&re^WK}d8JS>3=zT-m@>)mDogTX!EvB9IS# z9^-Ab9HZvegX6J2NX>FNP2MI+TXi<+C%0YCX>oC>NiRybPU`1S^go5s&E@1AUy9DN z-Gqz@%K5CW=8%fc!%Fl@3M)L8u=$zhb4M_?cGZz$XX`E18KdN9@B#y6<0ag|pyb+Z z%50=WxqVYit4X{0hATI!jzjRVnZ1Qlm5!JvH`1aiyEdcezr&J?pQ}}Q+|NZ%@J7Jj5hHnq1ML4*hE6Ie6jB3=?^MKmr z8eGhTlUaZ{*bE|~<{b1^As-%{b&UgJOEaBTofuxMh4n07XP!_JP70bBw zJdZ*h-K{=x8+=B72k&j~b+GsYPlsb$17<8XhH>} z#FP&Lw97&HvWuM7oO)XOZhEG_N$_$OYk%^i^>T&RXt}7gHQ=iQG1tcDD1EjNc%37= z*=Pwnv}}-zhrfKx$XVN|qmh^x8A1JyFF^L*7}=Md$`*-sST4s+HN^Zo+FwgVah7j8 zP&S1T8+7Vf6y7`NVb^b}1SxU86lwn^QNL*F^+KyprYut_J(-m7P`w_J?1S;k#i?>`;lk+fY}|y3 z5eFB_;xg|A67G5eyl{)-ayH>M*dk(bJ5zfT&PP68NFaNkN%6f@K_i>13GpXtie<*GrkIMqz-CMS=>DXFBO}YS! zSTC@V!Dl5KhuoE5h(Ixw16B9ulL7WY(yzeesrm}473($J3;E=6CHF95>A$M|^t3Fq zXOdC(0f+(Fq=}firt8fQMtPJ`FL8`IQDMlZ56jk29TY@?-< z+$smsW3De}l>>-(EIuQ-nn_Lg9j%w}W`r7??L)D-Nn*XN;Kf`VLj+B*xmXcv__ta= z6qXd8560yoDK&A$fkCDmv6Np^MAqIph!;N@Ey{6qRgFc$stwMTBUyR489m=BiP-+4 zY-ZIQ#(YEyasNbTsl4aXGq`6|N4qkISCK$ozmi(X)udG5n;^`6QOUNpD+ z;~%eKWc23Y?p$2zR=S1THQt@iTO#KIs4zPbpRb0H7ixJ`3%$=`HY%yR&Fv@%(*~Lx zN$vU_J3YMiZZ_jwx+C2FzV;67IKxHH-u0>Tnn|zyA5}RG1~0PpITAhU+N!jq8W)v% zzwN~wwyf7!D&vcijYI6i7AF)M8!2+`)%mm+^I5U@rYhfdHI}n2lk)8WT1Xrl@6*Ws z|4>=Pi+Q77q}k$IJds#f_nAi4upHnuo=CKy-|V%>+jx(M^ah6a?Nkw0i>YdSODST7 zYQ;r+9I?*twX_P+hJNvf+R0@VK5S@^6eya*;`aH~%d!lT5Nu1LvPcpY<3M>v7;2gk zb=H!&ItLh}!`W2w&~h_ml-7PzHcz1|csg9b3AfmEltuiKTV_ zi9$SuVSE+Lh>_RJ!S>CyKC0)k8#5%8jhe>W0pBI1x+WBzE@DU|Tb`s{N{y9=1gwBO zsderxQ>s+%O;Kx+MNL@*oKH7Vsog@yA4I^pnnhKKx3S?;dLV3Se?e@MsSl24Tsm1; znGrDUBVLyfD4GL|uGa9kH7#A$GQ2}3 zieOB8OeS9=k%{g-0vZkSVj*tf57)EodY?#cRd?h#s0YvmSkF$&RWT`6!LftSXUZ2@ zYQ@vRlTy9L{RFeud7P#)C=Si-G&!46s&3gqlXsH?P)OBQIGE>9rU^AArmh#7=+@!Y z0Gs9ndxgx(Aofb@kxi@)ZLzfNIM~D4EOmDX(zUq5T5Ti})>&l_d2qWWPZ}=WLs)Jk z@1yVUJZgut-H29wq%!v&>Q=0m%8S0NCglNC8C=xj$n)ejde{@Q&sw&}_QNhz)6l_(>i+ zAa-lFinB3EALU`n*2TJkLW?kB;tVgE$i4!F z*;o9fZ*NWuE)7MSwB7lZYI4+J1Camz(rSA zDK?kCRM(7>>jvZ50b(vsBYxJ4610QpG8VRfAWwkk2R+1qL^fj5zJ=4eW<}VnHaON_ z*Rx9~!-0$0gVnptsOM3{@BEtDBVUQ}G(HGdBdIRNS2u4_UOot)Ys4A-)pR_qmped# zc|JiQ#TICpF7xXVN!d?p=!*2k!j?UyUsD`^l!-w~eh~eNoDY6OS;};|YG4$1W*k8E zbSad;ow22oLd$Hi3tDE2Tv{T#kB;&M$7YKvAck*~i8ui{e4G^7EOOucOVYE&Z9oiL z&r*1{xSj7rHh>e5vlZDu&3Hf#n`;Rg04M=5Y?R1diSAQf7jIuF+sQ?W+#KtwVh5=T zp!gC>q-p^EMQ-+fOYH|p)!XrMe3RMjNcBr;oW*VCE=p9|Dx7MZeW#yD5r}9f6g4do zDXqIKmgV;*)9Lpgm>}lC1NF81$zw&z!%y|4*x!6G`P=t|2K*2B_%Fm)dwbujuq5HT z@`)Mv8AjI=_}@GA?>`Tpf3WxAKdIk)tbV-rui%USs=ra6f3Wx9pMoEWZ+{U!A~OCh z`SIuXei^=cUwkLMgQf_7L;M4N{yF&Hd)^Z9CpY>hVlna$tK~hy{}=vee&-YUJ^lp$ z`#t?Fe3s1kbMGfVgzsLxIypUietz-l@Mv^!esXs4{QQ+&B>eNU7f+wIe`oJo`%Cgy zF1~#6?5kIY`xpCrY`J~(v35-;Hza#+?+pGYzcO-@t#0shl$%Qmd@JOJpS%7;-s69g z#n=xRrHj9I(?Vr+Zl$mgQwht6=3m0kQ0LtLez5lgt#d}G_k8u5YGJ!JX7P5aG+MDjrA~DBbAo1WT03RE~rf=X8AW8i3dOF3b z#I8jtzukK^RHxi|Iji4nLkbZt=sO_jwLie)Jq`W3yd5{?WOm)8>H0s19mJ(bsfGA- zuXYf<$hfBk7o~rxYX{N)mL|9RwSzF%eqVPGO-4&RR&r_5p?cT9D$$-{<5*S2^t716 zR?=XDmp^7*F9$I(#&Exh)Uinw<+D&1H)w8>e(6J-y0rzM zr*-`r9v>NxajvhNk(_}S@lw)U-ro!HMipFPSU9$pQ}>w$?`1iiel>^p)p8N3{4XG$ z7O%_E*)x|gOJkb#Qkfo$f~7H*f%eNp93pq+;(Y7^u_a|pIyfKd6T)Z-Hx1))xmW?F zP=0kl+h5+!p+LAljV4$NkacalL>6PuY)rG1Z>b4z$V%TKIwW@cqf=EBNV`0k2};eG zxIbcwoMkRxG_agWUk9{ejJiuo5wBaRwk=hNge9THbc!M98bZ(vsp@oJU_*Mk8|u-? z9J=O;Da^(0lB{P$eD9Hs@0k%BKgEvDOL);lF5Z>wd-f%(a`w8LMe`8{^|G1H||P$%dM;@)eHdJ%ui$ z;^KAz#Z^Z1&X;LgKy}agNCz0^I~b6OFwkjuR0XQUQ!_Kps`)XL`q$0v3B2QqdyrNW z=gTx)noh`c%+(v|hvl0JpJlLcY&xl2`d83ICKCJSr3fA;X6&3tCLfpRPW);)f{6I0 zsps{2De1(xt*NIjxv!UNcwk3n`+in(JDMWlhqveX`{#CWfg2q^{z8}E*OaAM!u|65 z%(a^X!hP}kD!0=q8m<*leI{Qm)oBaI%NO7l!DKc6&=c#g)AWFv8`eU@BfN%izDz@- zx^*<#fgI#uf!K7>d#B{0K+2+#Y->mZR!AvGlsG6DzdrU5GukN1Q1|#i%$z}r$cDBXxpZhduO%h0qu_;t|wjp4Hf`m4)D(ZDF3 zS$1?qo%bx-Fd9mAb8jGxtua(CMPYRl#zv!ZDd*5_`+PoyC&P9Tsj4lp8;nm|q~q#4 zD%MeG8(a(93L>6G&pcI#j&tcScs`v(Om|++q3(V&D3?;|d~;q;rb^yzIsDAqAt>o7PC9t4kcmqpH7^HgysDeGMKf_=htO3jLWaA2E5@NCJpSrw6P*m3j}&5-+RO&C$C>B|A0tT5FO$D_o9KeKYVnGIlhVb{%KN z1Y>KM*2M%mO0M)BiS{k_R$uQ`DW<^!(8?vsyUuiXSP_r=HHN&8z(MoT#QA5yJ}sseff zvHf~+2KFg^OmlltQkGMCQ&$k{X#9nuhRLpez4D$;RN&pK4e)ho=1Q~Lpxd4q_1R5n;Hx4*n- z;4P4H60ms(hyi=Kh^Ck{$ocEp;P~v@)^tj5w>_`}ve{mOlC63f7i>vP900!*nh=-M zJrDyTA*On0j3GgPAAY8#F!t1ES%w1bn>AHd4>e=?}~ zOZ_c;esAx;z{jqj##`rx$j1A<)(*;*-+hX1*lX|Thq&7l6pje`cC&!+^u)3-YF^A~ zaSa!12T(EA99>;ucEnqN(0DE;)s-hPaaPK53{6z?fzgQ!ScooCQjiFo4MBP2tok2? z4Zpu9u}^@-Wrr zIk5FcFm*?-#Joe_0Tf&GA*D-I5J}4K(02gk;=PtlM6)e8!FK@e9r+G}yi?y{P&YA} zZOb~)4o)&M-V}QSj+7bQ!WnS}m1;}qUzoMFBsOYfFV?rypwlnr*jg)_i#rf!#iIJz zsv)-&scl(&+CqM`Z?BVF;Knlq%A|F8_`p(@R?T;xP7mz0n^Hu3a=qKrgXndVWVA%X zrH;x_K3P}O3B0l3&rTDUNL4o0FTJ-7N$%r7_v8NFClQx}R$ z5mh^WST^M~ME7Mgn7ksV8eRD>A7C5|jgZ*!(T~@KnDM!E*~pg|p@qk&6Ihx7)r6sX zaAii>m%^H_ifX97Kepcc3Gg9E`*kde%73XE`e-4c7FzqGEF|Qn{<&ITbif z{Wg!9hY>CRRTU&0uVAw8u}277GBgIf4SV?3WfmKQde`Q7B``8kXiA=y*IVb-XnmQ9 zL1o;JSJ%3{A>!b;+DujcK{8OzI=~(9`TS(Gy3W!EYQMm${&{%?cYtLvJAjte1?0xE z5UGCLFB`BVNLs9CbI)YCoTPdOTpXC>X8*kNWnvT&@eO(h1SIS^-=DmxmL-(Cy><}z z(HPZ-@nwU7U$GkBxUDuGEBRi7@a11NpeN7g**hVXLHn`+g|8b>LA;=qO6fAw3NcY~ zL|pb|^Yt3Kqd-YAN4J?p8=PWkjU(bjV04lE43L zwF^I8K$X`qB(n3PBtkPz_s>pb)Q*mSn>vU{7{feS!~G8?eau15ewn82lyxBz*s&Vp za|$Ic^*9HQ^7M#@3Gr+WMmipJFV!hbb(LOYggcl^65kUNdV!ry-CHwPT2#M}M(Q{Q z^Qj_i7_p?ceLlys7?*`?x)L~OLyjz@1gb1jW(+`hrn3c{s)q4Q5f87=RnpxqZcm}4 zDTjMh41a!cjKi>82)5o)(e7w`P%mIo3d~qkB_5e^3~~0Ac*wy#9Lm!o4vu_|5yrMD zLMIeni!d$@b)O43Vp0GMMT4&LrD*a#fk$q<@S3e9)IKsAA3_-@3a#`G;9Tmc6T@hX zyVdCsSvpfV=vM;hPSp{N28a5CGk6gl1Kk(T4qP+i(nV|Ic?nzn4z*F>YUi+sy2(-F*w>RGZ0mS|7j207@QtEZ8{l#K>EB1WZEsk1`N0rm3d+pWe z3R;$)d>Y9($T8)%=TVLb#(u|OIkAPXHP$@h8q^Kxcd}m0^?h%zwb5 zKcEA--VmdN!MvelhipCFfh$BC(EmwSxUav3&+qMB!pDd!bXU6B54ykEa)Mx8EGgbI zAIMv~X#&14J`ks_pby+ABD8uIom2%s+yIHWZjS$xZD#0q+@)ym$3u_g)jkxO{r+AQ z9aC%r;8Xrz za9@YK!Hy#zZGM06L=DE5q(iyU1ouC?pw30GE#Onr#^z^G9w{9>Sz1I_2zV3www!b> zf^CJ7oUiUCfi+BKFWw>fP#3pfOg4eDIbhnO0y%u7IH37&_kGKePV(6+FwKF%3S_X~ z6$RN9yjVhW&Hnx&&FWSp{`Mr0`Xp;7QmmB9 zES?@q#D`y;iPxoMsh2byE^Vn;`v(v6v55LLP1pY6#i#|wwk2xXr$HMX)8;rWuPFoX>UkNYi&TA2+uP zn1>~d63={dZ1!7<04`hvo6GjH$Il*xmU4W0cJ#%ge7}&oPoJLUM{}w1RX1r|c_vea z&#jtL)qcAs)vc*@=XCwf4ZXLf9nWBT8`%1+Je#hs;gvecJLu>T=M{)34wd z{>u5Y<>YAorh+$R@t%5rJO=4%RpM$=sx<su2^RTI&Xk<{;(59ZAi0VGnmNKePp7>h#m&F|VZ8Dc|2q2@X7SwRF%8oAwHIXc*9tH;$CT})U4GaRH!PeR=xL zK!|iE>1e*5xu-}I;P7=Ok`crjF&TA0?S&||gSW(b`Wve9{`43y)ZFIY7?E6!uD_NT zV%nD_gv~ALhD4yCRik@W?_c6B+ncJ0M=_n4$GE$Vs_S_lF;roIk%5kJtr z|4mU%apV)q(Y3QNl)PiPS6Z*|L$d&TYxwtIVYxTbzW{$@s2gcb5nBEhAJ6GMr|k+C zxbbEhf1&GkT2q!LtNV33&0M=VEL%Oh+uLb5r%lMNC7PM|ak>>fjzr12Qc~~5BELB) zCkJp>-4rL#m;#fYs_`j!WtawLK%FnsG{Za)5}XF~YhwgHx(_W*_!6eciSCg!?0*g( zL{oHcJqRvvqX)rXXsId037WDrS=}!W!d&}(^&p+1;Yx9- z{yI$)=!^_>IKoRQRXwT3b~w60>46xDbZi`lWwY>LcnKjl%%Oc*H?LtT&l-bNO?czmo*!Py>=aGT121h zpFm;!Tq>^|D3U{Il%hdX) zr%)g~zIArB=X15kwB0?IR`Pu=RoepRHq#;TT+N?!m6wehsUryMvbu2nLmC&EddXPt zZ!R*cRs+TpbPhslwWDVO9g9V?V;MT$7rT;!-NACU zq!Yb{KozdT6)+dgq&|bQcT1y@p{9u1sW31b0T-Fh@HmnUMakFWNF1);7&i8!6$iCQ zB}FSgc;jP7_F0?X2`EME^K#)d>$oCj<0qW0lpc2n<6Oxm`zoli7Sr0ggJeFPsrIUI zg$aeK#ilkfvcQ^hL9NV!WJxsDYP)NcU1%<~snN1Eov1rz%Qv+Kvdv&Fm8lg_vU>)O zll4>{c&W4}y01JHMGa;JgHpYiK*(l!*fO{SjaM6D6N z!Q2%(@KF=A+ow#z!ZqchKo@hmD_7nLLqBHFVx= zEIPJ2n!{{p`S{|%cd)cY1NPQ#faz1dDJrUpQI6}jp#d9}mN1~Ic_}u@t)7d1I>Is68R(B9Uc`2c0y;F>oq{LH z%jeVG%YY=i2$9;R#`;LJ8QCw>A})F_0yOZ0(0~HYS(Psg5)07XlZd=tEb0cE;31a9 zldgC9&ekD1zH~8VYjYkV?SBzbbU9$S?uv3d)FDcv%h#Z<`0m=>a|xVNRyS)mr@859YEJILd4lDG9~y(pHiMbC^O zmaR*4eF2;X79uQl1i}Z=H`*E;ByZE;+B&V94w9dC^W z66-@ftSq|dSXZau!1ju%y%Mv7WlRvnuK3#kZd&4(}ZZgsc`Y=c~i0n&db$b)I((IBRxD}W+pkhDUP3|^2d`vd(6dkkMwZW} zxg{`s(_(XrdRG&;1u3lXAk4L3I&*ZPopGLA$UW8Ih>gw#CvM;;aIEBu)P&saLj4o68wh@U6Y~RH`=*mVnP8c=!ONnL-V>%% zcv#@DdgHp#nH#K-sc{u(}aKh9-VxzT>jZ*^#j z`8VNoDaqY08)mNETqaqqyW4qaSV;x1br~{R;(@5b{9}@QQoGV{tnN#+SC~x$E$(<< ztLFN9c(65l-+!Od5920-`#O6+EFFoD|Kc2;5BHJ6?@46yJaK@m-x}0?Ou91xD~`pD zxaoroA#w5%kNVUO&~Ocs|9alHhZ!!4|+7idxNm$y0KQr^}G5O|Rs|NBe% zjrjQ9-hYA5-Jac9=SJV|{9em_aOHQOygPgC=FwiOdw1*I@gxV{eUpIjHCdL0nJp~v za<(2qTDP2bsmeG{VKjn#jlx-rP<}RkYPW~Pe?A^h*Z8&&q-5b78(qe>xNu&=<#q+P zB*na(zARR7ebInJ&E`V#E-QSEXzam<4hEy2zL8cwUf_R$zOI98HrLJO@4xKS>WUMn zP${jR@eA3_#id?QHaokE>y2N@T>*Uy=>zKIx?$B zzkhyue6sW~v4GlCRCg=@BB^CFUd~^OAl5_=B9Q2gB+O%G)|>w$_|x1-;+NoW3>HZk zir|lKGl-B47Xm~D5q~DX5g*^%yMWJ;AVMs0bNnEFr4>4`C3c@;2d=h#WP)a^ZFd_x z;Os+;9lC|1{~^_yQoFYIzd3P_g4Sfwq>Z*?|A*NM%-8-&fWFs~p6liQH%Af34`$c1 zRk5fvktF6rvr$+n{sZta*Ju19{EdNphNTGp<~Ci%1M&Ce2YK%J-22HneAnqR^dbvQ zr(A*)p{@W_XwR#OC}#4&9N;u*MWzer7tl1;qJ$Sa9ip7C({R$Hg^$pbOK6I8p!gb? z#y<$^FKS?-2j&1L(M8omDE^@eKCPB8(9uV;TcHS?DKGWVY{J${{Ws9S-2D*${{!uZ zf+DnvExs`$Oek)vfart1 zowda>V^U^}Ch(`GF5~3Y{$eq$;MD|3Y`wy!7?`6CRiod0v?sA(cbZMgH%{nETI&5j z?K%_*yLn%H+}lDOL+{hBTH+?FRlm|!2>{S|!f+;SJqChJ`^EyLwX=w8_^Q@cJgY3Td1=i-c#Z$Shtv9K+NtQ&x_ z^zcr`3Jz#+sWq2_)uH(XI~Vb}4tPjHX*O3Qa*<#5MyBT9y?h4abtV%_@5lYA){URdbC5j9%ax)oVHtfXvt#RIaPt&!m?zsv8b0X5bHp`EM#1YV`96(%c0MN zBmRA?emAL$J}Ww|pQLgZU1*j#E*e!mF3>RjD7&zF`hKe7U!WM>ID~UveQn(RcJw1a z`^XAxH+WWLY`he19#+e-Byktq4AHjD%@$q`H%;N4Z{7b|#L(~Wp>Cq`^VmMk_0nMjr>E)taoL#+Us z;Nx2y&j6GA@PP|RiCN;pTp%S?%S3aHpg`HRB%J_ z8%|`PQ7kcRl!zU>@yBRqdzy=sK@)M;i@FAiW-~5ZKEeA~8FVGYRUVdAKE94~u`F4L z<=l!Tz0JlO6wIu5iH2)MRP=DVX!a+wYA&B-I2IFejiF+?gT+g-W?i9KCwnk0 ziv~MHU?8>ubG{U%HRRnJS>xKm)u|&z9v?BXL+VIZ^VL#{h*)YP2Z~2;}^yft-()tKxE6EpHC%Sy9c;izQ4j6YqRkC9_IC zto?#!i5v<(9WWQ!*xvRViK8C`)B@t!;lThDCi)9glAzQnOMj>-GfIaoCUhUKJhNe2 zEtSR5-ojuWmeVp5(`?{@=9<3qkWOhZ9nO)fw>^>JKoh!UE^?|@wtP0pcUPtO@};Kz zhP)2l5*yK!+XvD$ZKSU656;%F$Z6S3Anu@Cj$C!si;c?ll0(>V1k=p84=IH=$(!333!KgcNj|7e$)T97 z-QYX!OuKz-U%~jc#no;^A4-Rka<7ydo(`GDNGzJD8WXISd6|))RNSQ;2&KA z`8-YBha9})s==Es)lBq1qY|FhU6#!$Jn>juXJ(}mcgv_V*qR60r58uI7zAPDd9W31j z9x(E%y58OCOX3|@Q)p`KU@2RIbX@5ob}*HVNZW=)1nQ2P3gUz5Emk{b=_!2=XfVH6 zSCeeKR2ofErtRpq##e(mz)3n)dkki7+@6r@lae%uphmHTGT$H2r@uCO`@)2eOV@<7 zakJwuKCi(&499CW%^l8(&FO@@-hk64ZU_?iT>DM9BZ?u1M#ZO^&SA%}!MxfE&Za%$ zFP+=D4fvs=v(Y2x4CnqghTgus;Pbve?Hvlwr9I(PCux_*fG5THHBK6~iAgrS2^nS= z5x&M*04}6OPs=MM+*7!S-N~$N(>X*e7tti=zSE^sA^Jx;Hg8iS0I5GGbEqqWk^C0M z`7%+OJjC-7UU*pEI55taTSA25j3zH$<YZLd?{iR7|tQ?l4L=m^+M;4Q9BZ zTXRX&*wi@HAa-u!e4m#Zv$?q8_Pqnt4ufH%Qr*X=iv}rsf-ge`p&=hD5})Y_pf1*N zHP5@}rnBgVE>R>U-z?0D2qHOGJ>|lst{rf3ZG$5>&=Y635Yxg~of6cPT}4^jt?@M^ z62s#BCLFz~klN0SkCdj1hif@OF>4=8xDiBMluEH5#1%hoR_@3*rq!Qc-$)f4zUWJS$c=7xl3iBOz0)3I#kX z6OZ%^Uq6A4owj$<##77J9-rpoj*MkQ_EnB#!t^;YMIbQaAxQd`%#6GAhSwc-rw6j`J%~wWXDT%{}s6*stMaa9WISpwkWpq%6v2Rbknv2Gn1q zY9CD>;5~=y{AsaRloMTgui@DAnN2;YgfZ2zNZ(mgy@5LagL<}rqF52Ot4TMOP&P8z z*N4bLDTm-I?GH7Y)*VY4TZSf-^5<5WcpWLzFfA2jqeblQf$<}4G|WqAmC;`$YbZ&b z%y)NhWNb8&I*~Gi`KQC+(R+ME0hyu1H^D~-xd>N7Z^J)DC z_Dxm)*B>V$rC&FG0w?C=MgjDGi9s#~w*%QLso`hq=DG~X;%YcGAMo_+^Kx9m=&6>N zxJYCdMS%3=_9^tptQRMaL9sC-nqlhw0rMIkV`&aByb(?PPJq1yjmN6j7Ax5}bc6x< zs~tud8clEg*0Il;*>b(WE;o6mG+S&e7xSr3VB3@O{{TDA&BgpH_!|S|VmykJixHo; zFd0ZTZOFeahwcBl{6>6yZ|{fjxiceU7P%=eV}7Y4J7fMWO>XxpJHuVO8AW1s?ryU) z4?wKnTGMHX$Np2Abf|l9dG3cJmzXwtGM|+1@G)hNkC4^yzW+WwwTHM9I)wMVn)+74 zsRJJzFg=tWsF5tS?rc}61hM`qXj-W*4?!fklaZPhzu!ykP|QxT$AnP5Gv(*Gov~92To0n+F4} zWe|P*EOHX~3kF|CSj^#iwopb9b5U&6h<`9yK!ZAjgwtt6w4rFE_H*E@oAl4z=Mr=X z(lH=LBvIs5=c|~zXG@c+#cE*O5Cnurv&(WaDJMht5He@2Fo)0|vaZ{~+F!3~m@hbm zOaRQ<4mS}lXFrWpW_)V>w&1J|UQn4EsPh2+5l z`G>_vnLJ2*Ctj{_Q|3VaM*Cc9X%i`SEejBqIxWhd=*pXWl{Mh5-L!33O}pEyfqW-E zBAO3oO!}zIFxcfG+@6BBnoMBixc%$y*GXEyL4twfIY^Q7q<$&h&?L$_JSaB*s2r`q zIxNBKPnUT-;i37&vE@elV2OslBUfr1ET1gC%p$kl^2u}IK_p!l#dW9Hc7d2nqY3Ez z%%DE`gMAws+v4MDO0pFIM-j~@j*CW}_>neIzq&Jj;-LAY@iiquZUU`SF}a*fk(-O= z6URlPx;l*9+6u|$BMZwXi;tDC;|MN}*4Ni?ljd#QY&5DH*l=;D-b>JD5i>cOte484 z_?r(`FS%$waa^>7h!Qf0-#}JNl#b=ZU6FlGS9gP^oR;u@!x(Zo4h&l(6Ko9Z~DY%Rg&G@|}9}C}@U6g3G!EJk$7PS-_*4JJJ%!H)2a) zmPXR2UP+(qi*%qI*rd}aRj*+<`C`7<$jcwOO^YT7h-Bj)n&FW)qjm3cr)qG!N zIDZa4zqj|j3TE~f-xZ@S@h3O>C!&iDGoU}OfAUEEAMNjaVt;~PJ<#96XJ+mcSGYNM zioem7JJqx$>Bv3Ho$}UxZ*!-eqQSk3MIZHg3pA|$Red|(ACJq$>dATuH$OP)L~YF) z3TmIYxRGqxcZ4>-zo&4;jtQ`Oe2+yz2dUwcw2-Qb)`*h8iyBZ}4EO6KJZkUMc%qRl z1mpA5xXkYJu0q3;#nBshkS32dszXYnA<_t*Rl?agR$N=t7F7U_RW>0*9rz)ohegtD zRbfkyiXgu}ICzCm6RwvRqLnU-myt}9e!H)jPJaXz|Ejoz*B5Y`dNo#$apj;IHyYfv z>bH|(sISV|LZ*7PvGcWux>t{4U#+oS-yz%iI!TMn!?6L?-&bBPhI|DYJX>BD4ZJMp zz_ay=s@B+q|8AB?J5>$S#-7M3TaRRi{4|b7&U|q_yM{|Gt?C{$o7 zTGm&qw{XaSrn`)6CQS!Y!X#NChaiM9WbHo{u9v6Z$2q4Y<|y93rT|%((pSWo0)-Ga1aoQ&nr79B{mhNMo4| zhE0DT8=uvaatbGpOPND6;C!u%+%)KpgHGD-et%Vch2=#1*-RVg<8Ra&)=gei$B$^M zr7(LFV`T1fk<&{&qE`4Y;tr~1e}YZ#S$kY0v#M)G+Zw3woASr&3Lb;?;GLx;?KJ$D zx>~*gvNKU5R;PQa+B8D~8%Co9uxx8LN#0h~7v$84?8u56Sx<2s2=w3#lb_|rH3of% ztQ|FR#oK4AaXo)Eo|Z-4Nrt?+cJts8bAUWJD}ocKL-3as#|Tu&jR2cLzjAMGBJq0X zZG%P*O^I*E5ns}o2^6Sc$Ai$z%D)E4B5LhO`?Gg&HqU|je4a;cAUiWcNO^tvqb}FQ zrIxMRh}&gUd@YM~yZ>=lz8@)GH1)gNL1^aOa#-YHsP2ai4h0vIxj%DuDN8qCcU`V* zRnyG=ILPfON7D>)m$nMwY6r0 zw-C0Cvm%p$JQ^!98P1z={5PVm=Yz&hGBFt5v6@CF2 zcLzw0qusS&`Wo&~%E_{X^L*)uL61$3{=BPJz*379GF3ZfbnDH{-rO zdC#}l9qAco1!+|ok(cTubZH^W9{_!%wV1|A%G1KzG%!T2kP zWQSTcK$dQ~f^H>ah)=tXA+E(+qYu zbS%^Qx}L+=_~cZEZKrmSwD4!eYV03pc1AmFZmVjUU*(&cq4H_Jtmd$0!Y@PT#673!bC;u*v zwAXTZyK0I#gn^lI`Ya-+A0({m?M+?H7Sj?9clm0dyhJ3kx!-?1nYpXflX4(8tT%XF z-umEwwtu$@Ux{8p)W2H16?LT6l}$a-yH7l51I%&^@YNT=f>g=Ez4MYV-6b z3E%@x_@sAtjMZMnTX?qso?@LuX5O=W!)>6(T{Oy^7RKg>T!y3uD;1yME3J(6=oYuG&iOt06~WQb0l#Oz5+7rM7swx8%1`2!aWe&*g1sbmPN zDO&VHd{e$#RMK(h>0)Z zyN1TjdFEW2)G7&I|9@0hJE|XU37=KJn`0n>5*oQZ@}j4;*tDiSZ5OI3;6Q^ZYBGjZkuvi7Za@?9{Fs&=od%IVu1Fw zup^12+nm0B3yUGtW;!cdLvgsP=*t69gq9u2_ls%dErLqmX3vuC=N-Z|w1X?QBqAO& zoM7NvBNS;&3Mi0)mn$LlmS+!rrLh|Fl;4*N(`x=2&$lpkG?NRxGEN`|X9fA%&@Tsy z1(`C=9%koEozoWRB%UxmA#iP>U!0AnOAnU4BlL^n*7HGYW%LC~Ft=#){pNbEHpcqi@JCZ?;k0)$hC-S&47dY|qcw zakQNbQ|lkOVGFxn9Q*7XKf%>YMm?;wN36v)w@IE!uzAghZ91^ci~v7<&RzxM7R9b& z21CQ@Nmnv}j~}taa2Boch$sOM-&c9A22iiIJG;B0U)JO502AU&xJ_DS&wWnqJ+*v@ ztpgHQ4Kze~%E{$QYFC7_ngOZ|Q+om|>JYV4jA&PBKsl>caIFt_nyU(?D1aSY=ia78 z{9i|9V|xv^gRCHu(+;PFSl+{}uAW_CT_WZ}e1qhBgvd(5&J=GY@QrPl@Km3T&(}iW zM0O6S7iz1)n{DTjC_e1Evb=`d%K@ra`MZvE`SAML^!61z>5;2rk$AKt=d0|^#V;HG z0*%XcM$Web9UGt5JEtFVD%#qwriGtkOHU1a>f8@qPeXgdbuuxU-SFb{Qry)-pv z<>C&po2K>*ySU&#$FP^eHnywUgaAEKoW+%O>McTmK2&dCBx4)Cpb?-iiskZc-T23d z9Z|k$sy8sj;j7Yb3}K`9qa3<;o1N|3F4u7n&C3k;u`Bic zl)r|EuM6h_#@3)RQ@*ojui~@FD*m$N8Pw!G&t4}Jy^8xHnITS)sZm#_WXd1=DOt8e zviuip7(+=SHB;Tm1#cbTOrc=soo6mwAC~1mywyN2>^gT+f9gDoC~ul;$BwS*Mn86z z$D>F_HLO>Tttw$jY;FE55_yC(EfUtGd6bzGOTDA!tmxw`xqTkt(N`%x7+m0-V>lr_f?BFM?^*A~db4PsL ziBwdDGlyfACOPGsJC{58`kNo=rQQR?_|QsT@g))QFyYMf*b3||Xr?!b=xS2T3zn>- z&Ae4)#k|fcA_mNsPOksgT-k~ZNA5MkDPl3r(Q`Hy^|Z>J5RhxjL!1p#>*qW90d0AX zj65aYsb7P246!d~om6mcxv8!2Si!cR)C#MZOtk%Et|Di*gQYb!PO$LPZ)~kdtS{;0 zMCX-1dj&aMkV^R~JVJBVkacoZYXCPNaqsNaL_BC%LER~nuGMrMr`b01StL7om=ZO1 zt*YZ#&E`}jN=Z5^I%|rC)@&|)9?|A6nOt&L)FnPHr#_ElQ@_YqSBC)E{7S8d@6>he zhV$(|=Y(cfF`Ng;l2-S6x|E15t*k6o_qsZih^yPFb@H7$1Q(HTvW^8=yX8=8EwO_& zn?sSRwy-xS#-SK{xa&xrkC3pA7;D%POYJ&OSd-2-dSM}#M_Fe(&>%-vgXi|L;v`s` z+;W{2=5Z>L8%WAyb*<*!=#+MqgK;VnCne>Jfm0pp8H`t{bDH!_gH7#4Tw6=Mw`*a8 zVBq+bd6U{39Rdwpk!L(?ztiSS z5Fx9koNHv^!@1Wx~;{cs#sWU%asji&e}{HxO{v>O&1~e<4h;txyFz>wXQTF@*M#dk*KZl* zwyxmV`o*^_*%OrA`;~fY;>fru$7S`VEa#I2jFD_Nz40Z^w=U5F*5O##*r^?N4*f9i zYmzzrtcQ-PR^woFFPq*z$T;+EmHk#l59EPn^!C`PSGSAZ%#+i4RV^&Tsbcacv7R)u*>E&lU_(>fUB;GdB|u!y^-3< z-;Z#5Rd)>9XQL*c7?;<;TWE-GircQE>el$|;=)Tl_}W>fUZwKcMTTJe4p2e4@=#NA zVKbLjKz&tTU4`Im38zL}9`-A*<#c}aiT%L^Ci155;CSruU z4?<5RxjU{Geqxi&)5vY=cOrQ0rgko3>ihIsiUJV^B~4%?j&HJDQU8k32Q(q}w z#Nxcq3XD%vp*GGCK>JSw3qASFP z{LV*@JvOubN$PYx$HD|^2f=LYJ{V0C;@!e7U_|aX+`0=A5DDL4w z2Fjf#XSA$#b#E7J4eQ~%Iu4{<-_-+k-F6^c)E*vFqIM`37rQ6Lfdk>9_N2JefpD>V zQXDuCE^1GTI~@oYyT=}Z`t{k)J*GhIP-?#Sh}4{i^ZuM2`Aq@SM02w{JtBRDI|SAI zePU9LS6zn;wubS}$PjlyC5)$DY(#dXCoeKRP_|z2_d__oNMQfq!bWDE%z?wL3m!gZ zq|Wxc-I))-d{a!g3;goWRa)aDKI2)gNS`(D7n()zKHoqhBY&c`qrCOkNkj%yILGkW$ z5Xk4d%0X!Cz)Vq^$;JkN4ai{atOH#n_8}XhpDvSqTb2rX_(56#ItyP2{pqoGk1t8sZ{P7%$?Q)7*xnR zF|vFy}N3_V1CR?OkOu?DM}oM#0*=Ck!b zb-DsPdNqSOX6UVgm#43)>vbb~GdBr?y_U}+HSB*L`7nyQI-;%2_id@(q6Vo1u0R5A0kEW%}RWtTc%F}A8{QDyc` zej3RVgs-YaRsc2Z($@3qt5atiMpgo`L=n8$o9Ay*=W)c>Ge+@@i-k!1<3oJjg1EZ! zc_fqdEWzi1odbVb>%pf&@wtEkotb9d6YVJFwUcD0&NV{%0FiEc@oj2aDp1W4rlWSn*Z3miJX$c$w2Wnfgh@_ps_j6 z%JRLCUdO7OEnuE?=6zr4%i5}AG|b!KIJMIENZ*5TA?rW;lP z^|IACx0)d*5(NKJ&Ec`c=~U}XrtU_3aQIS5geQ6}Mqe^LZ)A>1I1@3l8qJb;u*KGy z%t%?UNE`Mbk#g!Q?-4FZQyOF?sqa+8R-(HLwMcH-4Xb3uVQpePu!;%y=y%~#^@27I!-%5!0JL5c-7RiceA`M zo1DB3SUT*V4Xz9FP5EcgOmDniOd#Ov4AQwiCo{g0E9o$K?mANM!WM9GzbVDW#*M@> z;rsv(w=12--g#29yfBOK-K~9g9PD&_0}ngq?KF{-Sy-*o#)cxWvbie8{&9oL^<=GU z(QfcxUEaRRpE(rqRN;(}fDhRn!>M)HA?^U3!;!l8k3!$hWps=Zk@M;|o3JbA560siUO@2H#I7@Hx=W zBLD|lqu==0y``_+fyaC{et$op@!RId)qvC&iQ5){l_b>|+~X`S9!R}$?^=Plg3Zhd z_qT!dy!!FF%>ce0M6y`n`(ptID#-nc^T^T|W2QbvyixcjbGQ!kIuB+YX5WC2b>NOQ>hOKFFIvsWtVXRF=?g6_^H}?#PYF_clk2vl5>L#M!r5 zT9AAT;A??Je>Fr`UvkcpSjDS(Ev9yQEMZF|by7;84GvGbmcg~p3TAibqw@Y_t_N+b1cvA|AjUGbJI zCAFWtsn=kx)x65}R*9Kzi-%8-$l6xV9N0FQI+;KsFK^bXN&VJ0K{jS;bfRD1b?ys= zB0x20cFkkz>tFFT!21m#e0>`>sji{!C{Grt78zetehxY{rjM>+kX&$TMNNDaLL8lC z2wWePT74B=OF14dHWo&3SCo2N8eh?X6}yq#NLb+$T?<5dj(x*T?yjokHmzvbihz$k z)K^)5^TFQUPk*|%H~CvUpq~Y&bk>RntO-bcNpI8ohO3ZGJVp2Hre_uTQ#Ak{x9mr-^SS9DdG{rZ0RPBbrdbIqm0xXWpo`w*Fr|-U;IU? z7tm@n$gY;!3lrszUX51jK~|N$?+;iDnH{ALQS%o$BZi$hQ7H{q^%uz`JxSGGr*h1U z81Wn-+s`E4hD3RT%g|b!wUX=|YtZ_&Y#SP~f-P4@!_}}Q<|6gmH<*W;cQ@j*ccRq% zbBNt_l;T=R>Z~}0T`yM4SL2!AXvxNmWIx0CogQZU=*s7_4znNladucS=Hd>)Q{(QT=?m_n;oO;XBnk#J@YeL-f1S zJB2-84xx8E$s?k^Lh8C!+d=j8Rz0v9x z&Oul3zHJFJ3!uK@vKYT!qQZ}}-*`*yMVG5UZELOM)vSOLoEz9`C$H-H)W1NQEyuIv z_a@Wn_aBJ=%w`JT$*<+d$B*QAy@$r}|IG)JzkN^e;_u+&zYt&T?R~F;Mu_6OAFFTo zeht2u!2jN42>((13_t%I{O>()b@-DT{S&bc`8Ua|6(8ZOP-uQ`dB*)loQe_Gmr8sBd3SrAK(MZNzO3QKap~>-}zr5ukk<0SG2$= zMc`+cYd51at&Xh}7Gf$18F~Cm_!;V$``-`texP;CND_Z<>i!aZjlUQCNPO$l_ix~5 z5y7yjqbkStm&k=>}&U zJ=@e(mHo-&uv)?Zf?KUgvU;K~H>o}_7yFBHrLYg>Ob<(`{VI`WYLZ5{r96WY_lx=jUOj)8!SzH$0dr9s;2gw=cY2^{6gd%rbkP*^TjYr8)&?h&ur`7zm+Tn6I8u7$`;BoX6^DYX^Fg62~^b~?l1$YeY(ogGa zA=S|Wnl*DInunYv+epRI?LFc@3WZqrx%}weKL(`|! zUm;!;*aoaY%~z>=W#o+V-EJz;&3p+@{7iG=KH3(f)+jo^gfvdssDH4EoHu_kY<2j77#B$#2 zLwH#YXCjJW?plTTbVlO%-?uu{LOy{R4&oiV{-~r!HT25(qiG7v1ZqI@RidR(r$XTG zXa%NGG!q;2DABrZZl}GDF9?AC#H7Hw(R8$k7W=A#Degt@TvL9{2b;Y)!m)z@f;?zbt)3i>H5qlX257J?k7Z^!^1T>fB{b8v`&G1 z;l}W+Z1CPtS*^Q?@%5NEEds5ZjyJo&%k%b;U0P2l1o|+byepdl>|t#tL3b_YZgm%M zht*vwYYwuFhkK~GFuP@Y#Ol|~Xf<0~^bZgR<<_rZP1<1fYnmbzpNUUfs9<{_ z|FHNdE7)X*k^J#{d*|>)q=F4s7_a!kQYrk6t|~T7o5(X#(z<6=Y`nFbjoxb7-Bz(- zm0nadY)hgd(}SnyDl)~?sLEkz4q`l^zfRHw%1eOnpB}I0B7r};5pQD|08s_RLZfmf z2h&E9O^OI#C#&D*BE@F_D4eQy7U#C39vfCbFbTRUji*pPvsw8)cJ#gk>#VP<)#t&VGP(UKUfde<%%x zTRU;mG>XEL9$lo|2!O^K zzlQj65dEY)8ra|Abo%gP6qQK87z_OV!w)|)>^Em+(E`@p_hm-n*wf7a4e>?px%q#G zzcJXkd380bp&PGmFdcx=&lcOiWI2xj*^`H7InqV{(B8O+Q%*`ig^J}eR^aot& z-KTRjd+jC|vzm9e=V4 zwZw0<92Qqv_sL(e*M48~e%+#hnAGT9S|%NjTJ5+tMSV{WoyDFEbH|T3w3>5&au@RB)1qr&{+RxbrKo+Y-YVF+*Y|p!9Kc zJg>7RE!E)bU^c5%7OGRk}=TL zTwqrM7SjZoK7)beD~7|l56%W;ah1NeH6)Q>wZl@ z0Jn$jV)jqt-IBsfMWJ?FfpT%XC^2Q;n-&^Hw`k;`5K%dB%$E7);1E0PDa=S%+@6+` zszAo&AVsuH_v-+XD16-w76d5J***jowZER$hwH_(8bhgP7aU*9Nr_=l*#%{EKGmK` zB+M&Ckeb=g+8!<`y1#pPGuym}H?!7O0UE)Q(>>e6d27G7dw7Rn&?~U0qrA}J`RV>x zT=wrz-c-xFkxyGI5V6;?@J!Gh?uBDyDTqCcu-ZAy=!nTt<;^S z#a5WOYf0+tSE)Xb+U=3AtLjZAMbvH&C=CR6?Tdm}SOTFboR7(Md=-e5V<8>p4Bx@+PjV0*a!L%%z{pnP& zP(+zM^^VNz09`nc?r8p|YU=q6$_LHl3QeHV`c!!lSvce+Vzz*`!%09oTVJ-oxKt(R zyrAmqb=llzqfvPz&BGDY?Z~RKzS5$43J|G=Qr%_^-PQOGC5-6?FLiJO(_^hE^F2R# zw+Xl+kbhFI=R^1`q5>1?6nF>I3ap^bShjYWKq1)M^sEtscr-6Ar%=v<^DPhIrPbR7 z)GFlgwiogdymXq4OjSs?Xg-5Fo^iD(urO1rFq_lVyM+cd2qJPYlX9s-NkKf!E7oMb|^#Tjv@?$*LEYueWpffbW{yHLY~bfXujHY zax_07GQ+&Hm>k$velFhH)>iFMk9xfO0U?r0a57Vur*TvJ=&v(pf6s6_W}J0K-jwk)qyB^C|ZHu z6w?dYn5Ri%qa~c@ktRP^7Ldr5TbfM-m_y{}=sW_@dJ0bl2d@9Sqcj!nsU~NXX70g_!@$M53lbN!oN)Qq^T;T_TOT7xPOewKhn!81bX} z1w5&(5!^7CVf(m*+!I)(k3K-e7>R2B*z-PJs3E~z9ZvJmr-_!-$x`1n zPI8bE?ut*AFJUr8{T4Q+6`ahs(NzVnFd}3zhn^=2iZ6*|BLJ zzl0yYxA#}@vAfy4+F0XPbyWEABy_(j{FrMuB@tG;?zT!FqipCbZ;J(XejaU9oN>CW zps)|iJfLc(sV7kMfqg?#nb~MmgxG<0^lsO9*f-RZz8>7nL5pNcOy#>HyOBsyT2?9& zRn$a#SZc>`B`2{gVO%UK$AwtfJS<-7TZmV`#y92C635p|BEF9xS`yia)GHYp5neQd zDQOuR8KF$S`r+Z^&_mqB1I`n8U}P>vv=(CgVh&Y&v>e)qN(!J&RQf@ErYthRu)41Y zq2=Y*O7_K}eFx0-#urpD+krV8D=tOckiH|pvch6x(V7A0<*Vu%8eor0(+As^i+nUo z8sBFy&~~y{8%`>;ZSU1>yxnp$2Q6|ZrDrRk4-wU-=TLLjU|LM7Bv=1Us2bE~{Gm7$ zyuW8~gd@f`gGcMx45qaCCeGH)EZhvfQk9-SFJ1;;7Ryq^42Ep$&iJ%OGOGG^IEtA; zCw0T?-7S%pO}{WOTmw>wBj?-q5Fa~@!0WpL1>2m;H{^->O9`dQfyWl>yB-urS; zEwOCWbPW}^{1tkDugcr37`iW}C6jH54E;Ho?M_!ERt8-RtvOj(F`mJ8iMsGoR_%{!w6!WFb;TR}3RrGmCyx=B!@0_rNjYIo<2gg0YZW}2>BUrra zkCTwC7rd(>w3A|6kduF35J&9ae?#^qxURwU}s^>s>5R0=aoVmzcA zn$rAMD^z6bd&I8w97)AHh2tvVwvjCJ*hnniW#FV~gG%^j>0O#NX(U%n+p=7XWf{oF z;&CtoiK-e>dVXHwT%3s}E@SVC#Jdk{ZW(=hfM*Hh>O9rQiS$7W)f%Ty)bmN@A5C_F zmO)zrFW;>ih_Z#7`r+wQJi>2Rc5S@=^ilPCAUk;aW>!E^8{T(V!nR>=E|MjQj}*y3 z=x%eM39_kpM1E81go`;KZ3)c;r=TV|bpi>oH_+yxWqIUYcw3j9M_&e7g6DF%Dci;#BNtimq=U`vLE)LA2$B z{aot$BKD_|npvc1gl87NESAm|%B75l)1MxyyTsCCCjFyTW31(+?z!~k;r6FD(SO-z zGOg)t%P(6jOBNrCuJi+6`Lvi{uc2YHe;k<>i##ostD~l=o6P#7hmjchSM3=Qs5+Hn zgk(^_=UfECkHf{e313gejf$csW|1;zqVEVn zLk8&QVd3_vGEdO14W5q>3aD|2a#NkCfq(oQFC_DJY36WF1=W{Zn7(xZ z^cmRT;at*d@d|0r%0vd%2%g=U=k%Gfu`)D~KFdiSo-CiOr}#+Umic#H7Ep8sqj6^2 z$AX!sJJSoml4SMYUlO8cDJz4Op%b0~ zS<<$OruMNN(WcOHXroX4=jE(^(;hs*-NlmjO9#mk#YT$km%ncBfd-f@kuZTlqgYbd zx|eV_0@gd&If9PXT4%&f zpH3gVz|ywXU-uI#mjNlWa+!{<0Rwi&pk$3LAr?-CCM0=6TiasImrW59sXt8#S$ zrm|`5#nTMDNW|z=4p|CC?g(a7TM_bgCepL=yH12EN*&QQG@dKMT_IYQ@)7&+GzTwI z+5h`do(|%1`lII1%CShHKRfk04x%NJ?E^TR#d#StkWk#JD^!m-TeL^=`{3s_SsM)F#|_Zos`8E@z-7U(5`yCcOCr%^5o9W!TB4En)VO#c?-_ zZ6oc9cR4tbIO^ZnXk5Nlh$sHhq8QujaX$CxoQA~OMb)u~WEse{<%HV>oOUkWFv`&I z$T`$`)e2FL-j&c$m?NRcSSfg=C;bJfD+M zRcK-!L`JqC!4J7eR_XYb6v?~jce_uQ6(T|MR=zW8Y8GbK4?i|9jhaml8g1m)^5bLG zDEshJ{Tucj$bSI8ko(H$FT&p#?3GbXk@8pK(-vMDeIWm^_$Xf*{oMP>IeZs+X%ttu z`L$8}jjk6*HErVc6)g+wit3WqJ$rGKxAw={!C6ha+ZRXC7vYPeouWZ|Wzk1PLi^Lj zP4Q$}&c#Dm`cLoiaR^`cMN>>Fm|PAGmEw*n1Br+mM5ElIXaMZVR6Ne)VlD7>j6ypi zO0yq++SZPL1o`CppOP^g!T!Jp-r#CJ$jc* zv38Tei*Ne2Dnyn?;T&428k0662EAE`5$@_6zz{JTFLGwp^AX^Xf<|(N_G0D_;u*pr z()}jIVoWd;$nj5<26bX;v+<$X*4h(Ws&FPYHUFZM?m)n7UTbF`@cK^`ub<%{$tiRN zpp@aZ!xywqFc+K3bY7G&$PXX>7NEm;V@keVm|C@RJ#s(nVZ3r5UI(hBZE2jk)BdxG zTLnc*;l-!>7q^b-xOE(jTazVr598MKwcqQwwJjXwEtBb^ZrtQ^(!y1GVXIVbHX3mY z9-uwB4ct^eRO&W5hH68{ez;U8Wq|7hjyu9LuDBCPlIhpS(*B---C@&kII_bsm19l@Wj7D7Q zZI;Y7{By`t8;X=H#HTH6vk&AS79V+eYO%u2yDUnjwaId&baMVu17JlmB>Emz zVbx2#L(QOxnn^5h@P2dMV1^tC6R&9Gp*|vR1qCWj+wx!>Leu0G+1>Q*tw4b{(aK^u zfOe3P32G!1Ai@b<&tD6uYv3J-`L*6mOdw#g*zza#&Qq(1web6P*I+3UZvH;rHOM7y z+)d=KbonexUrM&@e(fjBwcpn>TSPdsC67L8s?WKw&HXXX5IZdARXLH<(ZGZ)koQfB zMo@8R4E19V33oEPh!kAv^cKa%0N6r#-=yI7r8j_O)0-&W$>gGjG$zb7D<`80UQ_Z2 z^u9@=Hgdbv?I5i$4qTyQS#f z#_w{88{>ERD_!xsr7uMj?^pcJT>E{E-y_1A!Ltz@Yoh8FNATA~)iihr`|mZ#ZUoSC^R-FslC627l_W4V~Uor@dEM9maAg3<#mM-uleH` z&zo^sIy{Pu0+?W0pTMi(x&@xbC4nx!@s3$U(tr2JSK8^NS(bD&XMRD z%b|yetrZSzFS0MgBZ{vX#({KKVp+5WAVBNwJn+9po$JtW>Xfq-_iZriZVFpiOLfzG&Wt-`QISbc%rmG z&euuaFcAljuUR{B+G$P>+S{4K*EHSK48Ak_0)`$1HeB?VE^aI!O0BXkn1!nE*8}jp|B##$3>%cuf;sR z?vXN5bGAKI;8H?O?KwG+5Ab>*Y+7i3wE|Bz1{DXM9EdG{Js;zI#yomxuE{4TGEpKO zxBA7{lY5D5FjZNSTip9`3k$PDN*J#CBNC#iVY# zP7h9A&L^_tCNK8nAmv43)QyRx=^PR#ODMsD0{I|Z;_{HH!~X_e2(4jDd|AyW_1h)P zGFx_7_uFMXw%0T!m^8Nl@+Y?PS^tL3p8o^vSh=?}Lr!}#6sf&be7aX%G-8Dt^Q_`G zI`XWBwxlTIe&t!2Yrn5~)^5?jp3I|<+9$Cjbph|?z;0sxFlIc>H%S^m?ff`?8WK*c zdR$MJ=xEKK-!c}u+6*izcMLJQX5a|?TQQl4Q877)+VKVF0^J>oh=2kS$CF!3DEQ2D zh)t3k6|;wEK0CQ+l$HP*lJw;E;&u@bHn>K5SUy>NEaHp`SfjFeQ;h?n*!)Yz@d;w% zM0$7i99EzQCDf&WeBN=ee6sjh1pgpuyc0QD9G@VzoQUkSn0q&?#899-KS*`+y&Ubs z^Ji~@ZDh83H<{Ve9Qt8zsM;J&kqGv-cegIRy#P_AIiJdJ#K-@i zyLao7BT3E!q2Zh(ZBsf&N6U-2B6nL7C6Ux}IDH||q_lgcP*rFofx1j(7I3y-hEbVO zRWZoS$d1S?RPlvx{0Vy9)#{J%pK(8P507w<2rqMkdsa8M52tZy5MP+Nxw+l#C(lmt z<7jCPecxjiAN}{Cy=SOWZ^l2ex*X}ZwOU})jE*vW zX}PodG5KiXZ~t-D(s_ z4%jAAevXV4ZIDphl=m3AH>|3-i^pOtTus-pKA0#Da#2--v|Al4Z_29J-mYpJP%Ilv zW}(Bwc|{>{ozWfA6zT*f0j|LvV!DWAbVOM{4SR1mU%x@Ur@m8ogBv^~E6nAJqB+dYr=r;ux}D2~H}s*k^mSI>+Js3t8A#U_=KV_7Cw2&*pzAzV zw%Hck(528wAI!=|dTbKK_l29NGeo^yZ?vNrh1&+odiTWa4tN9?ao{LEx513@x_le? za`?t!`f3!pmW3SiC#mOz|Rk&Poq&kakkx6&JljLUR-Az zwJ0p?41fGxy&XkA)<~pc`D2kt^#?{Gk;1e3QAHx9-~Jx&jZmo-xg>~)ZUMQNwL_s3|KnIS+3U1|edj#Esfr|$jpK7ZfmS7Stq@jP`I|LzeyGBI0)WBoKt z_XKklMXglWm4r&p&t6<(;ONcTqw?gE!{aqOdK=gR0pE_LVmvnDySS#pA#58^-EeVO zT&!|&eUWdnq8d9mP*&7Gs~>7DD}24fSMBrB)eQXKkj>a?%U!(e0Z*Zq5l1oXK(T2SXl~v-lLXfF&yPDKBXU*T`7~WFWLdCorL|cRVmcr z^0#zu1B2hlTIlWJI!#UiaxnjXS5)~07LdG0ZY@X0(+4OB&BXR6!HAxSt(nTJ5SPnx z4tM?}UzOFvd*t(G*-eW?)~xIV*<3IFK5aZxYc;a=hB!Hr=e0C5ABeicC5nX4(Ugwd zxdAdi3Fe{)r+bwNN15nNMe?g`RV*VAgLtSB4>K$cHWYorX|eAI(T0>o(?v7QHZf=( zd2BNX>cox^dhH#VST@+$wnA#MYE+E>Zr+S9d{vdJ8DcKP*a`AapDZ<=y!IceC*r5i zPSqFSSuR(wRtb%o+Ndt!(=oZ31{(7u`;fb0V~7mB5xkc}Qll5$6VflsX-Aa!EO~p1 z&`h2pPC|Jvm9Su$LRzkin;i`^rbOPSN(nblMxPk)Xg)*-Bj=$<8cqME!dV@V!;iP% z-MoV`q=m{x5C>OAE62+`?*rq+bk4)k&hf}>_KI$}MjpT3@>66ZMTB^iXDQB+%ke1c zoR?w9QZa>m)J9Q=(p}o^tJ$jJ8dNG^E}w=Hqc*2Cj;=IcoW=2J$SG`su>0B~rI2Peenir2-s2&lRHnjikMk}M zLH8s}lm})Muo#)^$Uaq4Y*_{gs15Pr4$A{I#aT_oz}f>{s)3K8U`u;zLp4Q^Rafe; zeay=phI51^VsREiko8znh-}0Rm&*tnsm2{_EbpULrqbKj`}a%B&4a0m{8YIJk^b&| zo-LG1^D?so3Sw@C$Ouht($R!g)Z3qg%6y0>`!>h;d04CDD;C+Z$;d_70UmGI?1&|O z0=YB`0;`f%WMMQG4fXBrwcHC2c@xKQH#@zc(7Y3JWVUKiQ+!eGu&*y~^mlujpMV!& zX@OG8;b84pw#^QfsEg2LU!QtULSz=0W?o0jO!JdqnGMi1lM}oQ<-DMPTd^*v$TfnS z&pq7ynH6K0oS0N~LAQifGUn8QZQiC1UP^C>=QTMw0#a(^5KC@yf-`-IQ7jZ)X*N?B z3gvPeMyrofm81LA*WaU)%x2G1T#F9(_)b?NG+<)=9-?^@!IW$hUl;8by zxec*DIvQi6)FH3*$w3o@*Ltu2c#8SiCQ*9c-5*(cVHESAeppAue%N|foMWSodTcc} zGgQ}x#LZ4rpzdvHiHew$A+g7k!_mN*94jC?4y>V}FGmW{DL@(zB+1dj=o&f}VkEZ1 zOUd8LIE0Qn`sw;4=!U~3Y=d&f-RL0Ylm|hdC+FVY^*q>l-U9Z_tx!u~*Aoee1AOE-h>Y3}{n}yp-J? z{r-gH0LVPkmT1>%f$RB65fX0N!ztZ+!ds>ACxXzt2838fLbT^ewwaXE4JwLaZh+@i zu)W_C)sA$q$Tk?MXj}+4yd{>-5PR%|OijAy=Ys?hjYE{b{2^pner$6GKH*wt;HF7wj6iA3CSZVIBJE89e7n?vGRln-!{=x7>!iBj`LP6e%>>c56~KI6!) z5;I>A{E~YzJ!XnI@s)60#!68_>|0(zi%~r2;W8;NxoLo>xb=AWB2hx@P5<+{Cz^VXxERG_6WO(!ph=;`L{9^Gx7)zd8>arG zRE0?T^a0bzX$G*BJL=Sj6fqxw(;&41l9E{-QTO{GT#h|U}?VE)7!aOfs{r>+z)H$|8QPhOP)en2<649er^xv+#ME+9$LjC(E&t~{>v`eJ<#K$^Cnm;mVO89JT(MQ%R zcVa)PZV~CXw?pkZY5QTjMQC2_-ecfMVI>@4n|}6;tJ@hB7@a z4ON8HBWhnr`Th2ZXadsH(4@+^U6r;c?h#TXO`Jd8NCdr0hscG{%-6{C`UJ#C8oA0e zMI*M7OntzmIS$qK>Rjvbsk6cJ5;RFT)XM+ z3dD^(5>JBJ6DT>RCp+|c^U6?=VYokp(Pko%($LHKwI zIjf#1Tr3WjsO-QDM74!^ho94RkEPR-XJ}_PC}gwjYCfm(5*O0ubBIOH+15nsGN;n9 zqK>7Gt(>v3D2);)GXcEZ6uPU)6g0b#Hhu^%xz~_*X%N-EcpJch4np(z4{aB)g@%l5 zQ?l*AIKK$O4A3-&!YO(;902DRA!s48xmy(2v65$)%n~InA#V_2QEuCXvT;*VrSd8+ zlvr;DP^B|P(A6%Km@2M@OO5oy3<@COwz**YqYLkW3nitCt*@|06()GgIsfPsconVn zK}z>ZyNjmr{%pBjy@W*Ho% zXhdE|YQ*VwF(gnbpKR@jqHideQk*b8;&LA@3#4X;Mws~I0&W8M2*g)3EOd(yXI^3C z_6~E%kb$-z1N#?=G_*!eKxKe_(OBc8$+>D0-o0o+yR}To3%CmDWY{Xl_C#QQ-uRWL zEwL6w?^+CWAf>R!VKaO(4|u!_i@axM)Be188GVQo7i!zWJ7r zFz0TWq5Y>l#HJI-Hgn`B$<)q3T7jKddid9|!OX6f`PpTxz7DwiYQx1K)g$I+h=kHE z4IojPBJvi7(ltmd?Ts!VrJ##{71VhRm9_Ndg`OA0aj2}tTnw-q6kR|gF80KJU$iB% zczL@)(FU{xv<3Jr6SNgoG{p&N++oT}e0BkO0aB7W{U3R+1LOol@3ZB&(vr$afT!!A zVf4XOUv-HwJ(+4#oq9^Sev3kl*}D+pGZgW4pftradbF68E9+7G?Lg%O&-z%L!d@?#uP>F+Vlg^w^(ShKqSTUWv z#5Rbko~mC0B$rqb-az%p@tA6=Q#v}uQKD~nCB^*Yy$B0$^h%0p42b`<`AQRaN@EMK z6BP2TYW5#`Y>`sSzbFd#F~diEvYyOoJMkt*dBUpfDw3ML^s#SBfcLF&XJw@7hLM$K9=t)48PZUM!%7vl3~d3;Y3 zUyq6^-Ww0_5*)+?dY6B(9mE8hH$;LguBOqwTn&H!EMbmeN0%L_vVRej8xztwY7U9t zm;m3%InT@WGMdtW_%UIQ9;BG7VRv$}dg?pbB0kxjY!RRAPPT}nM=6)pFx}IlCb*Nl zJwlS&B0k~m7`^_|+Yw-4UgY2J&^B~-eZ9m(siQv>2Xd92_$=AoZ1h$tQrl@Dk_*-b1qR5^010p2DuoD{K(R z5>#1+$V`X#G-uf1B{)M*Et%;=KBamN;-_&pM}r6AoA@cH1LlfRLuCg}?uQ|3#TqXl zzOH$j04pF4tg%L~p_r3=W<;YUd9wmKr8JrvEKd` zr8K}F=utWpSF!wr-9%)%n$E~b+atjLAR2-9l(darMfv#!^K#UP65|DFHS9qv*YUC$ zbZ!dkiOx-7B|0}g3JLAmv|!t>Z|q(0=$LjJGhTd}2OqCPLnMWe4sY{*C`B%nfm9`s zNzcn*btEhP0V)1H2)NtCL10a{#r#9BVMESEkN0a;+$-7=+_nH;g(xGWG18#U^XsYy<4HN-RraQOX)dYg@2{Jo)#3Xd2qAXBVpYlAcc^F%7IV#Mh8C_tCGG(OGCq%g-H zLNQN07N1qS(W0f1(tz5H7BP*avU`8>?Nw2Zyn*$t8CD%IOZ=<0+^Cz!{r|vjj-CGg z8UBuB)892kjWw@+*u&^|ngeeB(WBpAm|x<@pFBIozdfVh>)XfYzSp;7bHzpH^dp=3 zF8lU2aox$-4?FXn;ypC;edJ*1MG;ZQdATRqc7975c9vnSt@+E%aOFP#By4yvjFv5emYZt4tR@H()JsR6rG=dpHe;`00Av4tD=!iac+H zi4G`~rW!cre7G0F#-U;EF!WKZ5QE6oq?(;jl!w8zVGBxpQcQ%_Aid6)8{LcJoL0VE znkT7EKDP3qf9HAQtbg^7VH-((+fdY8J@vyLo}`FvBT#V_-v9!H(^NF4j z47JoOK{0-M2MQ_txXAB}*5G&IeANy{?re*VZ*)fg0wg)KXJG}2qd zWgd=-rVc@`0f$9lxJQIu%m|dX$z=&PYQWmCPepGgW^xJ==cER}3Kyiw05!YdiB*{6dMz8>2LjTI< zw5z5KJG5ZWq_|w)iSEB|plJd$!fR>2fb*dAAnL@Jj0bgu4xg&T;0nRzyt%9w?!8C0rE5Oocv$d zUtpg)hRN?LwHfN^rQxL9)%p9|JYNQ~Ln@JN+MqY5`HwqpG(n5hcY*6jha65(m4{Ar z`!IBn_0zT8b5E4@Pdj>N*(Q+La@q65$^YC!ud;Q$RN}U`uVAzg4xF|iX~myI6YN3f zw?V<4+?j1+%{Mf%SOARpiNAug0q_++ zpbemEJAP0bKz)II?mw6ffG^p*4Zyv`_=fZ1u4Jx4rv<`1QO@!pRGltKZFz7u0FZw` z8-URFZv$`@bJK0Pd0h3aXuXZBz1{31jKxcV1` zgRuR)T%gXzI;3ao?V>A536Qpb1XYrTqCG2zPp*=r?|V!$(0?DO1?f5csI-DP5p8nt z8m%=tek@u+S4oZ@%xBV*`N|Vp`=1+mJ-WJ41#;chL`GT2L9U+AU{GtX`K#q9T%Dgm zxyZM>%4~-|j6wXmeGJ{*#=m9r4x4OH;n$MY{wz@XIDZpV=^3K=)$RtHN#KB}2$%&a zKCb{y!r(kgh{(Md$J>v`cUawbyrxYL=s)~)etIIgZ533r&Rg}*BinjFi&YPnS%pQ| zEvT5IT*TtkMt%7(d)Va3u({~L2sVNkyXE#Rnwyh-#W$WR>Hnj-E8$=9^5J#1UQmVZ zr=JIx=f~G9e!Z)k9=xV_yM=3kL+`Msm$#im-k?Fz-eI@UOv_JMlxlral&1g6Qw#sET3KoqL47hcoTm$FmSvrvUHv+rZ%0)` z%gI0)3E&^<`ms+M@5vGgKI^E&+K8**0d)%Nc)f%QSV8Z`pz(K2qp1Lf&QM!$Vm^B8 znLp@cL#-%ILmSs)0!}J4l6i|L@rebUj%SyX&XBa45|+8SCqEVSXl$z{cpt^D`x4L~C+G{_^$ zOOENuO?_@*(j>4+NyR5sx$IpC={fS+@@Tg~w>MJ3{ijq;n@6LxlkK~;mDWLO?poJE zjLSu9PH7P#%>6!rQeLvtIJd8syZTmVcI)`po4NGOR+xVzX zI4!ruHOVD(re9f$WrfSeoNh5(8Joh&HEzVgx?Df3P$Uv7Ih#*8m3$!43+u6eDUof#`@VdE==9ouvJdd_)cabUS z&{ZDQgZ11+aFpE>-(V)QY*~AgcsjdR^YbwCW zZj^;PaxJ8EhR98e_bNl2B`Q0>-g%vDDJq0L5HQ`poixOAo(Q>CW1|BK(bAzWA9Ndd z#0_CR=sxDC5|GpCsa9>LQR(%27Om0e$=XkSO5-ikwrHhS9crqgPX|=`9Z&J?6ibt~ ztD@dzHk;DtajX@`>)HWg5*w=>ozOekKWn3EkKiV-xA>^D!Z&U(<{s|I7q$*pDo?x@ zrw|9hH7O4NW-FXu?#gZER}W%THcF~c5$N7k#r7ed%COrxeW8bU5V&5@7 zvUdURI2MKHCZU|Imk){T0Z+Y-uAL)~?joO;m}xNzCzek3_BCk!=U6T;9*?fwJY^_+ z)G?P*%D+>lF9_Doww#ws^d(p57PBPQQUhYDzxL?W-)Y}Ty{0zqZQ^6Y8s$;e%4zdx zfG(eHrk0F2TVk|;8`;cA8NDK6Jl?W0)ID{~(coIAX^E)#hIl0OPdW(&U!lG~X4S%i z92#*_WL|1f%4glfH0R38k&7DrlCYZH#f#Gf?MR89UEZChi{@AG;?rb3S{FHix8;%C z&s)juA?iV=pKjB!FIW#Rji=>#t4)XZ>DG%nyrO&1f-btxycA0l8?69tY9A=%rl#|N zJek$5+7}cix1RZ!BTE_Fj3b z?mfKZyhoPw4sa2N^XvOp1%_@_`E_9zt?mJ5vPSs=bw|ed#9ZAT=)tH!G)l))aRX%i-u{gCrpEU@q9BXxJY+O1Vd>5P66bAF5^L6kK`@aS^r zF5k3>$slna%_FGJK}vbd-Fpl7b)Icv`0DXUO+6$bt?OdCt?Y(1w1lh;t+It8cnydT`tQt*1CK$9#=us z;U&=a9(`!~13N6|p^2a_z|w5E=^)w%D3(z!GuTi`c>&#P5JMkR$D^>&h=MZ6*I9kr zH#Nnyanpe`9x_Ylnx;OOSJ|pqVnoq(nd0UCbKW9DivyvJWc*qUdJUG|ex^QB;xH%HUy=wjy2LH7x zc~2P6zmCD+qG^hboVsY{%P1Vroi%yA7AJ{*;_@*=G{+egpHzsHt47OMUo=3<70$Rx zET$_UlA&8VO#~Ywq32bxL9M7IEbSEty~_cXmZGvL^mSE~6z#c3GR?H*R#tS~&@g(A zLC{X?v7E~uOWo9MwqKA;dvRIP7O_daAnI4{*7TfO$10~Yz^26zigI;$-oDzW7NGQG zxx56ZB)?>}Nn?ZY)b-IEr6ZhC^0!30rsdUBYi-<8hL z43h8}8&b^^U~3$&7qpld3tOmQImun*rW1ftpyCt}HcO7}vC^$P3b5bj*@x7~LA=(C z&W{lf!f3Gs(V&3aV+hSty`%x2$tY&zE9$WuEMH+1^=l38+nVYW{_yz7kh_z=xboKaq40_XLAFksfr8poSr?4VXJnw<^ zzG{^CY^%o#wQ>szDcK9aS0)^9Z}SQpew#vh6D7vNzczf<{wy?#@X4rH^!F5~+JwLa zYTX?0M6~u$V`vSqu8;3G7+#s?mGNYrO>HCTo%=27Ar8x`QUy^koK)Mgb)0fN<3Y9Z z-9V+p${_47#tL{xQT?~H48p+}OEG4E&qDQpCLbM@5ex8H94wS6xdjn>rS4+4j-oE0 z5=v8tL7FvYs3AE`6<=@j_085c>Ra8DPR|kU+pONc#DXO1xB#iKH7x;_rb5jDJ1uV3 zY6{qzE=kO743wa^FzUhM5i-RR#O+;#)*(7i%16i)pQuOYSelM7PxE^!KlU7`n9>0M zo=|ZkafnejCGZp*Bxr%Yu*zxk*zH#K=~YqDt%OfBr9se9Qp$VT%9DRgkxONU>(L=O zrRc!`^CF|WVv#FF4zR>&z+qP-8H44qT&>C}!s-Q}q!e*;0Em}Bu~->9aUtXt2I5)1 zijO-5yqvxIWouOVwya+*z!LW2DLPxkO!R(`NU2F4(as>dc$y$I^1m@6)7>FJ@GgzKLdKn2u~PE=PN-7v&#te z4G;Of;cIOOk=9HucJnQ5YKb_@fQXSo)1@{SWf^6Mhe^)aN96X?N>0!XJ;!4MMK??V^6FrR1R0GXa~&V)y$Covd+p?>=Nb4O3WY=d0P5Q|4O3&J(!)*D{|qn7U3B@$ zv<2wx$$DO?%B;tN{o=FZeO79lO%llns7-XSqAIWgZXTf>qDSi-i*%yv+yb)mglBT) zo}v%&`FZYy)n`elg8+aSC*UTuI8o;oP_@@k#Fw#%sSLXfX(Bkh6-sn=SW#RJybbBz zA>OK2)Y|kb3k-0yviFh&dXh z5j?oA_=xYQNBjNfu5MUQ=oz8-)eg(LTR{1aK9#oSc5@Pa^IhsCEEwPOYAxKJl#^-cB){vPrOWse1d0uWt zQ_14<utbXhN&C_z+fy{G>kE6etnz3+ zTR;Kz1QQH~D|c!uM18(Q^~UW}OahqHb~NF5wb{n?kp{daL&QkGh_A<))N0F4Q=&5c zu#52mL!!|d?-Cv`wls{wif!2tnWgm1+x#Y59-U3UIYRwb44p4LbyZ(mR(p-&0VOnT zH`)blbgc99vRH4Mxvthnh^h8`!{_cdR4X<3ml`nRy3s=Hy;`kGMlaatC6!Vb5|bZ6 zq`A$n(F+qb<259Tz)GgOv);J`LM+;Zql>%fG9C_ z0nzIrVy{SBs`&$QmZxQ7A3ds!#nc95x;o^(VJ1f7HYX!ujx{r=ecaWv@~Etjt1514 z9N#rJ#5*l#`BjuQ<|E~&yVX@*IbNIgP@}4%J>G?tRrBLU>VyE>MPr{`r|BE!b1wtD z$yznGSw}0qry;jRo$T3lik?W`4>vS6Xz>&V#5j7GYRdHaHg47uf0}KdTdU=x{ltKZ z0-&~dajy#RwVc&Q`DR%@&~Q2BHCcix*0cd$OEU(guhgY?BH)GANXcra0&byNK?`(2TRHxQW~$641{ILt#P|;koWjKjyCEN77c)w+0(?wdva|I(f0^GD>#o)?LcfK`ipC_3P6KBxFtMxzczO+m z$M^Ysx6O%I3sB5a-o9$^Mwuz6kAI`#sF&+Sja88I{ENSM@$*?pp~e^*rI_C&!1UY- ztH#aVHi%l5W(#4|-ob#5DR?{ywk~-*_225O9_?90oLazajTF8jA9)5!`X2j$zAWIT z@5BznP2a~GkWU4@&D4ZIlTE7YUU+ofSB})~*J=#dbrL<#Iv~!hV*oT&g{G@S+|q#U zMZiKw)$+k~sHL2i>+!y<8tv)ss%=L-94=mv%20qcU?aw68u1+p>u;@!K6C8T1jBj7EWVaQ$VL_N=|_`i1gg)Es@MZR1hPQQPv zrb*HE>?w~H)vW>f zhtY3HqU{27tj+O6x+g%#x~Q!_urG~V0}178Rz~Xt52CgE`f{_$tJu9k0p5VZiN7%c zc8E&aT&T(ScX`^%p@6)RLQjhtkXO;DPVuNzrw4T8H|a18BTcwjAfRT|;5P49yc7jg z?qIA~asAK?7wZ*`i*J6w+x$LTe!zCZRgSw@tgUBLdX53rsWk6oKQSFXTK^ui#q5#M z@fGBJoJC$KaJz(FIGR3Zb;P$8x{LoS1C z=u5UkQxD1=2$cRa#Ze;p6M$m?bCcks+-PY@r z_kXuFPTbw*-)oHm2XmLZP-4#UdPHwsm>@HP?zj^BvK;j&)g%1l;kt-mU z6AzVUyV!Rh)eO3qyX$L=m*|PVoHiyqFhp~l7%?7~^Jws5B_)h1$2p6!vG_NQmSFkd z#1i81KF#cO@UTv!9l0pjcOS7j;IyQf_j=)k-|&%33j2n>EwjZ@g|$w$IU>jL$jWcG z{w|vRKSbX%CcgIF$CKfkUStN zi~WG^<(5*$TL@>He4WtyWZzQ4OXPccq{M6_{O+T|qHY#TT}e5}>tI5Om3XdKM$-}} z3%qYjlmNqdw50svwR?kNtd2O()*}O-xB6&+7DXNJ_Yq!GmmDE=T((HdLxZENQim+D zP72c#{s&7cC1HFVDqATIm+8}doIb3s%4IQsTdY3}9uqk)SqqqCMAwZEk4{Qq*sYF@ zLvYzd%|~;kBcl+W`737o+W;#?41%=)&dZN^MM+uA2k8Zm45R%U!w6tSj2PDq>XDZ&5rnMSby9hUwZz4Phyb ze6~Q*m>>$wdrKOrsJ6RoIVflm%VwZPe^)MdtK2U%Vq88Jfx!@JDz@c%icxrO63W?{ z%K4Jifw2D41zOS&xEzI(N+s_RHfa8*NzPG^HQZIYG?XLymXQT^#EYB7q( z$}sib-+crlw^(%V!iagu*R@=fdN@%MkID1Kbsm~Q8x=}1b$tBA;8`MKU2^HEag%Iu zYTzcE-H%zdupo!#gA|#MbWXFop0J29Jg;jP8E!BfM`;fz`8L{1;&na-A@s|unIK>3dcJOg=WDbsd8Q1_wUw+ zpDmV4y)w5|;h%s0x&FES_wy#S_f;Fn{OivafA+)e?DM}jKevDU=lBI7)8D24 z{Tt8zC4Tl(^()0eMG^g1^_%qLKf(Wg;(Q+c&aL?!^&$E%Z9YwJfwKS1pW_$mpIh~B z?N;jF(Tw;;|3dxyC(q9DtsyDqfX{{>x_SO*Z(oEi?A?Ho5yVX)npzra06qb&J>0+k?Afz__y_3JzoV-`F9SWLNA=5My>LmA@{jWc zG{(z^$-3TByYJJYxeS!j#%0emZL@MRoqZcemjo%2rXZP!#PH-=Oy`j18yT?Zyp5DU zt}4#OiloaJV4u79$#f}oSkukg6^K3PCAz!BLtr&alp{0+Q+wx7c6{%$QBIqLkC9lM zN2Mu4xB>wg3jCBi6{~1jDb*QV{ml{9CKo7&r|t=y9NgepR^7ll%qyfkeY?ske zY+i#MR@hoXglnz(51QB7S^N978mdz${Gr7lp7qwv#l)80XfZ-o%eB~Fay$=H70>K$F* zPXhY#;jpY@{TVS{9DRH&xucJ)V#+tQj*R#Y^4^+WQg~Er{q0@|3pyxHE=7yuWH{QG zS+PIbG+G>Oe6)mCJz^RP(j0MTCP9j$iK{$3svDXRl&N7aHPmj&3 zL6~k2XE{K0NfaaUk-^J#e7!;_ic5_6yqKEXqgvIZ9?a)zzh!i`n15M&crJN3t7V2F z;I%10Yn7s>D(I^hMj*SYp#K5CDz^UYU*PXZRe#n|)HrX4`Y+jRljU+Q0| zfB)p!3_p$+py^M1v;s~4kwFQX_{4r(HE7-0kUPjp+ZSz8y_2>dwg!#jBd9_19FF-9 zp|^>%cuvpZoWYk_>%oU#!{F%{==>sto19&6dam~}bbwzv7*vPW!3QC>2kh3(m?+cf zISlX)?kg8gipFKnduZo*bxi}MP@5Kq%k9fnxIoh$>GrbD&o(s0iela!@p0e4?NCt> zp@YrFRO7)cs`aF>?nFP~e9dFfi}0IVkg-ZEV3$m>L~&<4f;dX5ShhUx`X4J*|I=rv zi^#WF7-Lb|;8Gny6ptB87v)P9=wW^LYMI^iK-b%{{!p!#Kg;j)kbC=&;g#y;ON`;YaN_Z*J&HgOS~!}&pt=*eNZd7$Ag&=(#5 zNGEr{3XudZJ9jw8D?d?QK_pV!AkfqP|GBx4Kq^sdK|xqG2>xKbINzb<@i0T#QzSMw zp^C7_*eT|wNBf!y<{ge||Lcy*p)b+7fua=W#%;;aG%2J$QDSN2I;1SD_gIsmK}ytb2kl#pG)44(G438YXoT+4tn8 z&3=atYlN9%N#U|AKwIwW+Y#j<<{?WL)%Rgu*~2+@B9SR&U28F2yp#ZqdX#mH@>Nx? zUe2#vQ2Pr)?m+vX_B8YV-fHFnW;5>jd|UMh7GrxN-DX1K;ruad1fyNj<^1;a@tX<8 z8lOZdUtkbJv1nQ{qt4hf_2J*O{GO}}Dk{d#N+rN3u5ihea+#N^A!1*dOEGz=n$!(- zYMGc(e5W~Ts(WUQ6r1bjIGj)F85tYu-VTpcjK`m74=`*Q;4SF<=H8L*d4)Rtu@YF+fa8*{+>l1^<%cDUXC(lL?(dayN=fxTVvdL5EGhRl3 z_9QaWOb<8Aj6F3^6vs>!Je)UpATNbY!$n+y*E&Sa0~|>q?-!w3E89d{7$G>DVjYdc zbC8M@7rQ0W*xBOXHr{{cW|SVz2Z(*uFV@NY%Sutc#R4`&xz3jAk?qE^yCNgiEYCgu z($8AkxJh$Wz?OSr5Rq*xmrE*k6QF>E33^Mw!>Y8=Hy2+$h{s?R4xPQLygsX ztc}o8dyy}5%wM!9j>Tqeq7^v&5*1DMxN4WpaxKJp;Dl)oxXbbG^Pa9ucG=}6gXA*n(Y)=ffh(Fea+F`~^vFoV>PT9dn{vGUXcYT|s)=YBc_bq9q5%;TS?`Jk z?TyH;ma)-4&N={|5g(T@`3W)+0wCc8sYjt(MQ5oTF&>wT1K#DjYOY2kZCnK`uttI& z(!0*R{stvhmvR1$!I@%v+4{z1os=fdzcE;9<~Wjzk!alQx<8nIzbmSoQhg^_%tnJ? zEg`gj5fWSE>?jPG>fv3k>+Cu*lgagHx2Wex)zD(=qn#c$E78h6IeJ$lX5uMMy@%|l>0)t(yAKWe;@4jJZS`H}YbZreTI z5mMa_O6}!9^+@BNKJ(-1@EVq{MDm=g3k~^#zR*eUcJM8`=yN|B*<+QM9CS;)mbB?M z!yL3$;v=Qq6CpCYB6`@3JM019pTtk$@H?6Ve!!(=0L1AFXzsW*JrxxzI+*R{@ zXs$~+$;KlZ#1t|cf>k3}^)O_lTnj}`+Hy-VH81^mt8&X^Dp7*fx8;;l5 zDqKO8=%pU7ifToU;*3NmHhRqKmE(Jiv{`&t##WKH%YS;lac42p*q82Q7(5!T7>aKr z8za0Y{Nc41YctPznw?(9El#YJ%2hjdNMtj{TTy%r3)!(&YtS`;lA)0UktfGh3mxAB z*W8NZ^<7bw>lJd$?@*XPcf^I4o+r;`3w`#m>A{KRGzbqRgLg%_t1;at8jqFf~Avm5{Z^WKhy+7H3G z1dFA&9o5m(@_N}8#U&oW?v#J*S9o;ri}sxl`ig!yQp^qBN9evI!3*oL`^@ZH;yqL{ zLNXt)2xYN&OS>TGw{D`dM;^P%)HgcFK7&HcT|Uk{!9>yZ?mC-qF?V}?L)tP)ZkW$( zOzLJmC@KNr1@0=W3q`wr{9EYZbZ13PFpp4sW{o|MBvRx24pobs=N=u}Mc9Yk=sDDr;#dMCIm_3@_2UTGG;RD-t?$F0*(Fd0nJ1sq}FR>+}R6hh=f24CF{^`B;iVMwTtU%IUf1Men@i z3p{0}-!ZlC_`-wU*%ObVC$np~4lu}9(uy`dM{toB9oLgZ1ViXl^`=i&jndS&ws=od zjnbeRXQX||`-Z7hEApOv4_QCqeOR%64qbi??}pm%FjbNWH~p4SHYE*5nTj zC^6?fnxxBq^{|JKVy=hWVs)DswJD{Q&kq?|`%b7&VT!-N;}Lz``holx^o3sf4ZN4) z`-W&_HviBd4{9^q3nrzQuR-$R(jbbbstW0SgVt~^;qsg2$#s0ump8+4jp`>``~?9o zr@m~aMZDK!C_U={>F(jBy4yUZYTcHK=U5b(U3=xn=lF<8*B#o2G3x4i7%T6zmcYk(0 zFaUg)Rm@wy#;FUV%*r;p;$9#zDsOMjuw`8rnj4ke8rkV;^*rxzR~0<`3jHwnK0zvR z{Q2Vxno=2!Jm5y;N$}^7FPN46qW@S_Pqebj_;igfX`*U;jPeqjS9Pt9OPusf`REH8 z6cH_)?goYY;(NsB?wg{BfdXl)ESFR<{tHh$_Agqyios8($C&BEuj-5K@?id9U4BFd z+D(2u?+x7&)6V(o4We$&!Dxk6e?{_~vv)M^V(}7fzbEr6loVCHAplZ|=Ax%#i2X-j zjLG=p22teQsOLQ}6Uq(dINZJ{oRza3rhw={FR`-YxvwUFVkmSl`$s9~YY=Kv zCVr5cs9GegoNm;#HmJybR#{W2iNPH!)KT^t_rz3x<9XwL(db4NpS;hvW%(hi(K|~U zUtNYs<&Eo1V83Vh31Xgbvjd!OprI)+I6t^#?-$efO|h7s_}1sn*;n}~B&|OFewRh| z+HiRg%~zBr(p1D|(#Kgfq5is?3Mntc>e#A9uENFn4l)gp{7;1)%7b^vU#@a$G28Ao zn3hj#57h<+6M2a}drt?DnJcGw@G`?1fVrAe7Rz%ks;BUDbHS3T?i!2iWVhTF8#8IP z_YqRv!uc_tZS36(bdW!mbOB?#6;0XdR?Z9rHAv8^%;&1E|+6@YCV77ev4^HdV+Zu zLGPb7Gn)~g&<9ijGM#6=f*LWMTqH;HR8RSOnQiB{W7k8D8gxH2>KNdD?uU){I#O0& zc;rW~cl+rx#aG>WHReSmwBUoJOMeOGeUbZ+&~s#J#4Ij&L8WKS<;NRLGZE)Y+$wHHO3mQR4U+Cbwl?6Ja!yD#OI( zV!1fXszr}bv3?51CNdLa2So_giVj*!-dKlZp}Fjq)9jHYGi62Hn?7!W*N@Bmwz!vT zvVbudz$H|CPebBLL}!cl@&Ss`1r>8QNIP_>+Q*5+43gqk#Tq5$$>Uf-(O<%ztdnVe zZVHu_q(0`8*xuBPm@Y=?vG&c@EKMg6_i(O3@lm373_C?EFeFYw_$ELUdxtz0jG1k& zcuiwOwei@riM%Z{3@#j!E7nyWbTc#Bpd&9uU}U^as$PmpjOlp?oP36AlGKC0T?UKM zJa)2~cWEd*&F{DAa#LI_j*U7d$dNRAVm~I2ZKIEiv6#!AiV;)&V83EJ`wk1qkTigW{^1lsL_{-3 z26l-p8?Ki_p-@nUG^(JA3_Mx8eiFx3O+ZyA$OSW9zJ(jQOM{lI={@uin{cuw z^z&RTz@b1F%y9RB<=pn1uw$(_xR0z6kfVG2M>EB^k*|hoO#aTZRT{dvJ!BfW{_4w@ z#kO%HBRL%uubtFK*}blAaN)!^HzckGG(>AB>*M)j0l=79EDA3%>lk$r8D^FuN8g@r0tB~-H1VuY0wMM;M zUvB0o0!C1H{EA9B%vF0g96l}A$E(fu0UPX;YyN;`R#{b};R_r4Xd3Xx{t6JebOmyM zTdNrdU;w@(9@X>WIF(%(Fq7Rh^G3j-(UgW(6F7hu3iQ{x%kdW&^ zF)R=AIPrUw@wc=uXS6*=%<&+9K+~NHF+^8t#HaW89NeTHpNDGGEvxL07Txjq)POx~ zOLmpE{G>y4XcH1Qg+X|&B2j}Z+XgiOn&&-q>LnYr*f?ZR^b=UBIK|6Qsg?-JES>B& zNbs0~vdMxRz+owrSb~DOaC+ESFh}TQbc_|Oi@zbr(>|r8c1vW{P8%cI6=EsRgQAbk z7(Kn5AQCUc%XaVvnFug93<5?I@~hkF7-FK&~nN>-oBH& zYp{3AWm>vDUYQdI?64D39h4>3$X(2N`mmnIayy)2dpUOk~L>@_Y zA}TsFq&D=%*766vLN;EnxkfCzA@OAkZ&o6B78_Xzxi16E*!#jw$5*zwMtxP!w^g(y z9um>E@%jXc@5gfwUw>}L&^00q$Ak5Ql2|=}sVZr(tb0MFvJ|8lH2wsU{CYbn6V;{! z=|Y37$J8Y0ZVZZ%X&vf#kgZ5M4tBk}yh8FpD+Bd{HJ!a*9C&{JZDc(fRi zjtG8k9I<#GGmKIfwSR%7_eX*`D=+e0Jsc7v#tf;z#Xh?`%%r3Kk4X9PSm932tw~6a zm$HcI3(>-Ac(@w$vv{|N*883qkW>Gv5Upy^VYptb{ez@O;p$YuaW({%a`%PjJfGVy zj>0_2?u*rK6;u`~{t8b#+01HHFS{9UO+=e*SjxlA^pd^Ew=XD8WWFI;A7IeCH-Z|g zse)emQQV%nDwpyQebtN(ibr}4Ro-D{gKwCXoW_tBPoo}{+nOS8=h^nwRn215 zpb9aKx`%4Z!23g-Hr`}{EL>1tMAQ6~c@d5H^m!2nH)&qP<3&3Wuom6Pi$qFwkk^M2 z_1vUbWAQw1(dYJysPK#!yMWTSFR0fO!)K3R!sS&nSjL4EYldW2rb@cSlph%+5SLt%b8Oj-}D%YFGCXsdR+W0-vd79!%ocTbUlI5jBj^| z7T+h%x@b|~)D?`28WRPOhdqHS9Xkt}vo0P(j*W|O)_9ApeI0s@`jBEya~4gD`EGMH zez;PJ=6rP^no-G%Y|~Vcpg7qTDKRSZ{&lEL)%CKkBBh9&e(n&pccndM)fSVY+lYAw zJ9MS6P>DSf5D`lgro)T(D=#@R`fjyrwmynS5(E61?ZsWhD@)EQu{ZP z1r%U$UBpT)S3%Hmb$oTH^pZIm$)#T?%KVrc|YRU2^5f zo?1xLr~3% zKSrn=lZgmGX4Fv3V*No?6pevOxy#!P3R7j&5$vXjmQ_UHGFgo6q1Q~GYv?uDIx>(B z-E%|DM9>x;O`VU4mXvDVT2dTOcEW)-*23!>zETRgy<*_3Zf6*%BPmjVZU9nsfIE6e zmf#|d9q92QOudb!uXptK{D%vQ#9jDVn zk>V?5LitBXv9iH+Fhd#@{|IY}xeDm@(8s0&G_Nt_!DXx5HsE!R`T{$OJkn?)$MyK2 zCevmp*AWGxf2s$f9W2b0@;bmiP?9x$ zSY4G^4D}Y~rz^}-#9&$*x2*UZwTx;+oTbR&v?4jM8Z#E8hpX=p%QJd#qwK-n)0u`j=IV7w`fQbu{fP-qQ4V3ubO~!^sA#PnuL}f+*7& zop{Q4%dY-jW6_xEcs%wcJId#k8mIdv&o>84l#!{Fd#rS_bm}!Rsd72|8EU)~_8qU+ zG?rhrq?gd6JXvho6Wub?;U*>Q*7>9Ehgi4pp5+K;|JsXD`FQy88jBh$szgy^rnIq@ zVCpMZu`nrH(p1crm(1Gjvg6Y8_NzsMCD=v8+BI?@|?4 zyKUY}@ko*ROcr*beMCVdw5}DTUPebZ+1HGgOr+9;T+RCgqdc%ugT{HK$|-yDE5F;u z!wGTll!@Im=hwGQ%|Jb%ygZUgn4~kV4ytm=H{Gi_ zjv61a;HLU0$-?7xUEJ(oDj_}RC0fpF)_Vcf^l)NdUyg0!*EBMUJ|XsuLvEA1rYRCJ z=r(C7)^~~)ppcB?PPx$1+r)b_;IT$dG$)FG$6G|D9j~)_4#za>nSWww;_cocE}GRh zh-f^}irh#(hrC3Z&n?xl6!W%VOED(;WT)k#r<%n)4$_XcHXbc)63cMNebuPuK;6TX z)5%tFwVXAGLlKgrhSNDK-{loDBe8S_NiAMF`%EJ-`8X=^c9k9I>f=bXF#V_6D--EI zKHoz0Da1!hj-|IG=q2xx9pC17Q;YdYw%K5scr2Gg?o09$yZLbc-T<~RWuv}CD%f1mXa{3Tvml`V2-`c){E$Q6V!|g;b zaxIXBi9OX2-PgyAKGz`4pr?p+wh4W!aF|~Z$71U0PWf?2AA$p#0P$`dXI*8Xr`(>U;Z!P}S)TKr4GYV{7!-}ow)T2FPDnan#WJJeZ$G;ORFU~6DIyfnEGKL0#f z-(dp28ik+|(CX=gJ>63XatUHzuRd~;ifWG>nNE3}XtjBrq4~-x<%Zdruc_U3_OR&% zr^FJ)>cI(CCSG|~CQ8wGZyQ5$+X~Lf%^K~K>lMS6PUu4Ui-~gmNsQC`R+-e!86Lq*jes zxIT1GcRlqW#S73&8jrS-d|PGLwEjKG%o5(doz(9aD?~O)BOKge?OPVV`J9iEpJX3$ zbQ_m*h;L5iA+GqyrIz(V2Z+(HIG_EX&PeTPxA6>J|5H6+y0uHPRHpco?a;lTaz3-~ zoI+Kh)^w;}d$jMrZtG#-b|Z1uZ;_Yslz(9;^^n~_X1j`tS)%TIR`03`E-g;zPn}oA zW|)|jQp{(U6e>NdM`f+ShbxoBsBE07MfIkj#h9#y(3sd|qca5wCd3AE*P`*|Lp*nR ze^F67Qr0!aZm2k|#OuVzu=^@me8ypSC~+q)x5;}_g63VW4VS@FC#8}1j1}6rLnYVu ztk3A6^$$>v$J&7xSyAV&QB$f4E+eJY6Q}CtSSU2>er8J#w4728c2{3U?-`XmO)--N zHfa1dUe7Dq^`sJ_8eTyU%WP-}N@bOsdpp5ShCX6ngv6Mvp1;WFB}$U*bebzh;4axSwO0?p+MYD-a>L>EvhOMC^Z#+zl;jcFc8Vq1CW zG@HQ4wj$mRaqZ!bakPh6v)|L?NX_WuU*iTxA_i!vK4M?}i%&Sfg0?W#!Il?cFu~uDBE2tsJY$HSqLPI7 zuUcF`vGNmUE#ek6QTGk634z#I!>Wix8RUZ!66wkEaeITTN=RHaB#|sSo4V2cF1;aop{ub^(3ui+njmZsJsTl+hKAO8!va#t~&>W>^#CPh9yid>Vgz5 zTg4Qz5ekJ!osuti^}%9Mp_$Kxl*L!9?J5^Fp2K_(!w@k6cUftAe=;#kb1@@-OXYTxMbDs)94U$YjwHJT0~^toXjLwyL4lMI9$v ziq2~$pgRS@`Zg*~xv@Y+h|aFNP2&ym7KBE2c^yYBUuWQ8VlZ$dUWgn|cQ-dE z2Qo4|RJ~G3;&Zd0Qbl1#miWl;Dr@<^FSfVE8u7I8aW!&8)@sni`A67GIm*|wDa4T; z#7OyJqd*GxF(X^fUDgsD!Ho8w_}K4tx`?Gm=XLp|>!uC|_2{aIE$$RK3*pT|*FK)5 z=zwM{gg4ZKN3C#2`4#D%=&3kNe&@~Nc#0Liw#=ZsHrX(5pI(Z+B?s%oiuHYVRX4xqR;^<|XE4#cxFSXjs!9)gn){T312g z#T0X3-$u{q;yRNa$3EB|ZRToFnag~sq;Z{ykADSKi*M#}U%Kfx?uv_4 zA94BW4ySL5iIF@v@!yy?HrGvwDKgePRkWMD8gWykRK4&-GX6_PRk^;yCWnLFeSuvP z)q~n{m{&+4=hZds4M9k*`91e2#S$9)Ekop4+5f)CZ{fV~H!u{@cB|ubG)CdJik?fv zMd}FCLV89>|mqU&6>8D#eRXu|7c@I$R5$$SUPLF4XZA5 zB)$BbXQB3k6ml9p-0i%(4sFDYm*aUXDN~p6#yU-ZC{C(5xV({#ipXEq7g{l%fU7AY zjr?2Foni_ZN&28BqcqEq`Hu7O%CW&N9?!We{u=V6gZ)6G|o|}$r-wlNq z|CV}U@qgO-72Qd?0kngv%6fx}<#H6DfiMGLs~RG_YF(@mJXW`vuSi@bR4<^M&Hx=m zi1bvZ&Tq|F4ptjQ!SM*-tSd3Lod9~w)5LXd6TYJn~%#WY$eqP*VhGH z&{%3&Pg@~UZ!e7xZBiNN3FsEHN8T(xqp823xWW5|io!%uov{1dj;$jb6g44p%-xQp z_jwq{-I^;4#1w7Jy{YD@Qs3Kb)J ze7LSI#irLq?yFEKHlMXp*d*5a#TviX^7qPPQTfuo-7Ko|sZBAe=MHxjD2lhF zrrTwVt}sav`8qm{SZ=fB;lq5H6ZRN`#b?TAoE7rr`l`V2bU;!EgYS%Mt#AxgdZF%Vl&WaH|Z=Bh8 z`$lcUQnEsKvsbh%Mq~X>-DX2uCK6Vkcxde2@fJ00?Fsvm_HmO|p0KemgPySN#B;u8 z&H_o3-XhYOELd=GgTl7u@(NuluIiQRh5(w?w0nPoN{q?Bam}=Q8}o^3#T(>()QWrV z)R(Po{22CF39(d{yztzvZ^FI+S$2dU64a~n@!pmbNvp;AY;%K~haE%}Vj+ zdbCIvooukwi|c8A5Z_}y)7+q@dU->sOj>u(dmegIM%o-2H~WX)1=?8AN1a?_#8PB* zj?a>6?1cF{Ha4UYQIl9bcwwdbkk8_2)DbgPepfu&-?kd*JQY@a_Qw%+&DfP^LBC?myYca(&+Mw+t!BW*L@BfrS04PaJYBDrls zcw@l;>CFhyK0f6B@rtoMTHdyZJ8UN@F-E#vx;(n*_q)3TM+>XPM%03sR?j`{qSI3( zX+wldip=NOFi7Dg0zGNthOD;%)Wb4cV#zXf;*L1b^7HgW2+RiSH#sm<=n7VDfwRwy zmM4n#pIW&E{$!C`*_|Z!g|`9;cSWmgs4Xe_ZR5QM;8_Lz(~sFk_jSAKSbSqV8S$>F z3Akx*OUQ}pi1%a4UwmVD{~VN#;r3O(9NBYMyPR2z%qo8I`Fiee=R*NoFJo$7`GGKt zDdsbEqo~oG=6gX2H$HyJ+iC`CwSzw%Maxd*s$k zoqdzr$cD?QW=HV7O$fZwG^9tG52Y0I5f$3wiioEfR;DNZ^$NVisI2YTpz0xB8q*bK zv3BR?slU0_TkZ!fYGNcVW^=N_gog9mhnmWJP7pe(dO;#FB6m|2;=8;mu8X{yZcxOO zEoZm8^@rGVWb7~pcMMQWDffmE;vLzxCyU4$;Q*eZHFb_OG|k5?Zg%Ca9y?6w-Qctz zDD>dQzS=K59rrJl=+gna{*_r!e%7j+r?4pme%a-F3-;B<0_ zeUfd^ada~}#$SpWF7GaCtkiMQ4~yCbEdrgC(+##JyT>cmBb;B=q0*_+`iYtz!Nsyq zt{9o~GHhgwaX?SUVoa^bahW%_!?mc5Tt?1? z;w^x~a`P~DWu&LbS&X2q%0bY;)DUx#^Xgipf@YJtq9Ub=za2*xr%Z(xS6`%BE12C&R zwYBQW(3lBDpmPK>oxR9aKWlu~Vu?Ii_8ldPp<+|M-5$%_C&_E%HC5hGQ zM5B!tExW8INi$Z+8p0I5s<^_KRQDLgI+v@}KUobB`$UQ{d8-qcO<#iAq@=YUEgy`f zmOW7*o0vore}cDjEkylXtA^s<e-bYn>%(_QQ`J zv6$DqeUCGKS5(_wMs}y6Jyw>P`kj;2#B8=xtBhPYsV?N>F_T&^M4awwgw`lnYC>&s z$h;R}kQLs;U^%<^Ji}>i5nn!xijtJeyf&UFo3yb9b*G%mUNN=Y^cs?*Cfbk$kB=!$ zYU7$UDP6svF@Y5GcG9HAIIUe(7kBxje3fA#i_2c|iLx)wq@LXt^}+gddr)h7BN15} zVp5x%sjCorM!sBvJl3z7Ds{4=x#qBw)F^ulCmVHVq@3k%sfF4gzI@OtjN&-V``)m$ zM+0SP5hVksgf6bOvtA%A)pSn$N&8o*db7Gi2vSFy zUDCz(0MOZ zd{->;5);`sn8xhFiBFHW_CV#kBL9ev9c&dw*d|4!p0{mBQTs%co^K=mu zx{v5-D5`vHy}6V=t_uHTg>LEV9OGj~o)o#PvX&3Z#x(ehi;2LL8hi+W4l~T*=z6KL-nBy_HuyR`2+li{H z>On)Mh)%H@NO%93078oF4)0y7&J}%{5TJPPn)ksjFiK*Z8!AcBy9X(jA2wDE_h47$ zO^9ZUt#a96YIjdoBbfasOpeOtKT+G-L@HF6@uXZ(HB_tz$XoNk#Xb(K0l~}pSO8mk zwtRMyF6PHIme;wL>t*NXPSWM=xURsHRf`<`qVXQ*<$9IKyXE>ch%R6y^Evsq zOW{50>`CR5*RKjQrGLWefCe$Ohr(LzHg0FPN9uM~&!Sp5xpwDnqOKcv>`{_Zc^uF*|KwmYHipQ}jax%+q+yfTV&uNLXD`Z!Y zCd6O{gf+?Eb^)a{b2nDuX+Enbd@y=aOd+Rp&#v@z>ahZFF?CGV2w1glRT~ptF&ble zon4(|AM#mFy?9s}Hb$VBn_Ld%?26XOYp9nG=Vd`#g2diUdwk}c*se~){oJx#E=*ApKzwF?8933HTODYyAo$4uQa zW43w;7&(7E=WDu4iB>fYNZ+MIZykTCm+Rz|dMqf@6M1%ZJuso%2SIw8oUb^BI4VZ+ zQ}sx&iSPoscWvS*<#lo&FAbfX&2&Ehh&TuACe`8}Nh4!30ZWwj@XUpD*(gWyXdJT}7f6@usu?aAi{*)>{x6N^a$b@iO_Af^G&hi-MyvDkV_sd* zWd6EWQX=Lf7eNK05)eP6RG)E?6N5Orr5GP}bB>TH#$>eid8s|zr=(INrlgX~ke!#u z>xG^#HXNfSmmJ0)J1<||t0FJe&k3)L!nKh%k=x!&n1|(RL(vLNs5;Tp5{nJL-ysp% z3r8{#T zSlprR*IBe|b5;@fuaKx-qUyKUiEpt7&CGwM({AWeYe*L;Y0}!nWv>|56V*1IJ%p4>mz()o(-{MeMHWWanNb|tB>t+ZNm65Hgb}44$vls&#)RdwOM*( z+;R7q<@7RH8%-~bEVJIod=Y<(J#?EW0O2Bc+ltm(SO$aDQhTA+Mny^v1$+r`S)0ID zRPUhCizLS`pqNsw(pDkvFhp&)rRk^d%j&}f6{wM@T(tkZY~O+Wu9)X&bfSBUX;dj{ z-MH?U4qaJ0xWtrT8GnStH^*aZm`$r4c2n|3Wm=Kk=DLpvQw0+gxsxh-=Ns##fTda~ zkiQ*Wk;Ur<;Jq%c5F4T$8hhs^&=e;}Lp0(W8bqBI)D*Jf@d3=l^79hZc|}ut8-i#{ zrq#K;h(#N{A!E;$`1E+s5&Udk65aZDh*2pCa>$-@?0mTn_dG)j1-1f@0ZUJm*EKMG zj7^dv+Qz<^3hy+(*LN~ryYX*VXZh^m{a}5G4&8fA#Zt_5o zO^S)tnf#j>Os-fdRTeL}={#FIBM{XXZln!87+st@LVJ6)EsmL(@Q8WYAw zJ5;*-kjKWa0yqrSbF;>vaFmsm>x|;EvmvmQ!)#2Y#%vFa_#hU~$|kIoW-dBs`_u@G zRyT+bmdju6P=xP_lK5t_zOTV+`eMdmrTk^{akb8lSt1-ur^nkh^#$h!Q5C(89i@~; zZVSkHZ51?d0xUmQE>>luWB&XKrF|n8M~>@>#hN~IhidQfih1pM#m(M%LN)jG6~+!F zy|Jt|Mo%ks)jMbGinEkn{{GO^qm-JMwS8+sv<`Im@cU)Z(b42ai__@a$}fOE*gi+O%ph`_#00p8}qZ!wEpcMrudc!Qq}{6ej-VE<=R= zvQrB#vHQgIsRJ=)&|5iffQYfUzBpxJX{<&AxeOJ{YRK(y@S<;r$MZ7#&0Go*rP=n> zkDRCBa@uJjm#tzO%nz4Eg4$1yJ!kr9fQatgD!>#GODiio8riE{ z#plS@nbwoqi4D+vsBsfrj?MGg#WrJi2FV;TpV`7lUA#?^1j^22V^JR)eB z9S?_yX=S}xjjQQ>`JjJ{eN*^&2z4Y|TA}rl;!c+95I(O}^~?-W_vPWkT-SjmdAE7J z)TWL)^*^5K5bGtjf(O%9o5=+!-5yJ{tuAcv-7^D%~t z9Ahov2IG_)m(69cn8twnqjt(q~;M_1ypHPIY?@uiC`L3eiw}$t+CvvIt=#@Van`IDwoU60ySE;x9>uVPn1P`UuBzv&HR1&@%h(Ub3`I~w1t_bbg^AhCsc)M zfWwi+!E&B5mKN}i@_B>!a);Dzb$lQB4srDz4rUrEJukoMF>?@KRoM+S0Y&RTF1Mmk z>p8Y)<%-Hk$zfy_Xs?R(;#E=A+l$>=jf8j-#LIOtr`@epeqG#0A~G5lG=7^SD+VQS zxJ2FdpMSe6dI>V|4dHxTU`~*%!X|Hwc}+MU*6~V_1I||mX%cdqtM37|&0OJ;$40Cb11M|_{BM`#Rkl3B+NDS>!E3}RER+Jx zwd%!5Aw!&f4X!$9vvRWDKL6S!RL)(`%`tVxKz&y(cdMogYgQhWb$rDnS35Ax59U;c zdU%`9Kg3eVoTYkn}JeY@WS)9{dwd619kE1UA@)3Rb--9sNr;p z@o^OjeYU+aF|kB(@7?%UU{!d%eVbk7d)9{r{jouhQoeKEKQK2K!@EG*=MGD@qxXq% z);{o5H_!MO%RNx%pv6itXBmPz8nychb4d=Xhs_p^u*>T$Ce8H(S4=14xiz?yTY6ip zKd9Jo{PZd=dgVb?gC(nMUBg@(e1w#8E^FF+!>q$ox+BSCDK1joU?cT^uzsKg$;Wqa zm}{axN&e@Bry}6XPG>fQoqhPR^3LVFIu3N?yHBF{ygk0HnX@#8=w-P4eem2flN({s z`|OtEGxb9*{#m7MN-cJAeCK)uJ7l9|QlN4>AbqImPMouBr}<&FLBcbi?yi1~hK|vT zEk0+iAlijF&@il zJ-am}r+M9_F|B0?2g|JL4JeXQ%6l~9sE?XQa!ulqGLsFO=EvKQY7oMklfyf0p~Sru zynlRrpP?o)pJwx((hyU}W9fx6DPp0#=R)1D$^0abKWt*XQ>&FYO$|6#88?C${oe35 z6HCPq(J-Z~w5u&Xg2P*_w94$U2VJZSJTaBOY<2xfR(*I|-e3taLPzk5@Wh&wG=8N@ zOz_;s`%B+=e1`w}318AbekoVD=;$=>HUKHVIfYjCWRA_ItZ~e=I+?5QvcCaxpq~jJ z1H?L$mw=AzBj}H^LM#CuX*5;)(@vj`gj1zxT&81+4p;1ng@t(wKfSqbld(ja6q)xT z6!K(!U1Bc3XMm0Pr1{v0LN$inQBGNQ1f?qa4%Y|}WAk^r!8V;WBTuxL%bwVPnTyz* zZ`+1C0x74{6A>^q6Qh`Y#VJPR{bEzauIj3hmc{m1{d|m%pcH=rZ{3x!@`y6M3)snBxd0y%{j4 z4q?gNlvSh$$<^mhQ8s9&iBzdeF+a&Rn?VznSi`VZIbl=K6>}0Wn`KarAU=U)#>T{l4i7diSq@tK9`ZMj=6Of*X80WXT1+bw1gl`B1cTtNDgq(vDpgo`&FS9RK)MQ=AzaH?RdR}^_O5*0rTz~JS)u{%TG_H z@AF2YfT(uIrJ|6lT$rt_NtGRF^duo}*7IzoClMI8rB^5+*OV+@F~!3=#^^qFPyF5V zz|K}(S+oVKmu$q=vU;?m@rQw3TbO!uc&yxd=r#F<*$Ty^_`eNCs8L2Qfi7U)J{z$U zT$fDg%g#&fqa@0umeoHEo{vB|A}c$H$#1e76|5RRNI7Nzl`ZBgl+?%Dg{-vFH1f0c z^1;VgvE;BcUZ9Z(UB*5@IafWo2U8_GTQ!Icl4rMF0arNGOiq?baFX6$Ww!t zj6zle8bs?%U8c%qm(>nU%;7ex5!$4JqgX`d^?X+^wV|mz287lU)NFFO0buH!S4vDq zUf;$7MI7Z^W}rcT{Za9{jTTeV z%g+M&O=4a>`U=$QT^Bc~-Ai}so_W4sG+vuRReqa8eoDGMkqDEIqA#$>r9q;@mJuM!Mo9U4WGc}ODpo>6|Cr~Y3!{>?aqh%}^g^MN_ zT}7Ni2XPi6A>#g{@i4E}nN|Xk_buSo8~rj_V`kJj%GVmzm#(6V%K{VKx{cP-`!3;f zsq(xsrVnBiGoe&-@fVFxx$owkjiuKk&1N#v052h}oQFr)m+N_QTjqtwGx)}`WxAJZ zkMhk~a;rj>62S|b=iYp1xwx8t_2thN%jKVaPXDxOvHiLJo#$WcOZ`<{(Rir@P!{BME(-8cXJH}K;xp8fpqn?I)w0sP)?;(!0G z`7`E+Up)K#@6FHcAOAUiLCExX>3{#mvww-7{Z##`qlo^i`c3-rpWuH#aXycJ=hpm= z`Vjq>HlOx2{eRIv?Vr&-x9WH3_w`U6`kDTmXV0_-jFgtkmSw~seS$*-PQAc!EMDDX^ z^ild}?OEv(Py9Zem9BTiPnv(|tjy2*KN7#`AI;i7z|Xui$-liVO6=rp+h7r9b4cxx z{4@L>$(jAnFP{Cv$XR=s^yilLAHvV+&-H#w{nDlH_wjqaqmiBrr>D=3ULLA^%ftJu z*djBz%b#@^a!ClmgULCo65+A^2fuu))-b};TvMzjhPJOgZ_w{HXE<%Jj@Nf_I3B%k zcI_A(?LgU39d%*%mYc=lB2Bjo8%%uD8pRHM|JR>Ad-f0ifP3_J#JYdomo_461G|qN{rUz}i)!J%t z?D!|Y(OeDJ2%f{v4m<3weFC1tP$}Nmyd9wV87GmvRoI|7%o9sTfc4qn{D0iNTXP&q zaxMtQ&X!hu`W(@*hvyO0^Dxf*LFFnbs1W?05WldHU zNz6;X%}>zd+L2`Yu&?_I=AX^FM`T1sL}tL9Qb(X4^00vccX-NVDf!(*BphvPYP z+t9)KemQkrVlNU(&onp^QYZsRNZ}+(h(pf`is)-kIC4#(qc9H3)0?$vHbh5Z2PsiX zBCJG7F*vBs{J~`1#MKCcsv4<(4%S$S9HhOGKKb$rYWr~DC&?Q{`c3|z&TwI5H`IC4 zD+vs$VBA}d7fXg@{WzuJJ*hvGwi8K zvL;*L_p3cv`>odZYC9|mgI@V6j6}IGQ4*y>d!OTX`SfUBCf70Ps8l0)tP}el36jS? zF%sFGivL_VK$74C~Bi&-2anHc7W>`$@;3<)bhr(-L|+lc-@J6=e=nuAmV( z&0Eu%5De8YNS=DjGh`8#r{Hod1_xpMQ5P8lZA&<4DcI%^+Y;^X5T%Q1A{|!|Dcp9D zONh>WV5`lfSx{1R4N8ngo%e(4jgRK3x>Q_jf>?8t0s}D88R$SRAMYTx>R&Q$EBm=@+vxY!?yNS zC@nxr;~$*?)HJ1WkEen2>}D_xG+1dIfN zX`21Abp82usm@(_OOu}BhZ_D?J3NOvrk|zrUGNi#;wgii8a9rn3UVBl)?xY{Dnrdg zCg)hXV2~2IC&EhPAj|I|UCm@#%tMy6aO6(1p0hY;kcNyC zsRiV`Wa>NJ!*&J@N^kPX&(f+tbS$(uiE6I2$RkM}J?J%CHM+wwALk|0lIU1ip(N@z8z)h_X&(e#NOxIzKR~_K zK}zHv9WflNG!8Plxzteg861DE8h0G6ldnS=-Blr;$ILp6@HBo0JddGLJaU%bk4`Lo zi5`Qa`^7Xz$@vY2VwxmKY20IY!EJiwiuO+9;;p(tHA&YQRX;dnGGL|MM@zG-$iAPQ z$o``fA1z5Q7+$JIYc3AN(U{>iLcBC?M)cmP?1y+s{A5(x5zkh?T{94S4|>1J!}1s@ zmK@XOEM*=WyrvAxhlv)>ZF23dwrm((Vi#QiO8;?bIt{E zinQp@^N6}5qLcLrodW<>rskC7FIYBZkUTY)%ZgsLR#Y{EirA(YesGmf=h>o@Jev`p zJv7hlN@-*4yH7kcPi#^&MvjexLSUlre41uuj9s%DDT#w3q$KV!WObRna^}^0ER@QM z;im#LkBwrBmg9NM6yxpF-d@q?F;R{Z$q$_!eU0KVPbw?MNhFQpu}q9Y$6+%l(G4St zXRoF!JDS5fxY%S4dj&~7G2!2!QzmsX2Tt4g7u9i7f7yL9M@5nPQ~rDfcXCMTXpTqq zqr%V+{HG_*>yJO$8^ep(XbyP7_#6v000MraF`NUnLL#jXZ8nGK+3gi5wWht_*&KK} zJt`WpB{5dR>YVfOa(g$)@uDv6?J6EBE0*w+n$V?tRnGEv8$_%Qr@JWbYgHzsd<7$F z;PA5;fpU&UqK4BscrstU&S!8HQnn~=*4nQdhW3xAJ^apij8(X%uT5RV)KPH@$oTeE zW*XfMQBn^@MS6t-qcmLQ)AjKRk)?^$`B_An7K`g@_J|=y&NCtkS2&AYx2*P!v#Q!- zcE=(11S@*rSbCaoqNc-WoaF{iB6y0>hql2;PCe>jcdkYJkf~K5H8~te@ko*D8c{ny zlp8pR(o}0P*N8kBk>=pYeRtXyitj|lC`4rpX}N<2iw(rVMENj~U>NZXoQ}^pxhC+D zeCElK82(@lN1$Muj>kN)lo-0b?nbv6NN-_IYTgi2A2b;xUrb^o!d_>uR^jjlA-e7^RZfLzJPAOz4~uMo-O1ewPvVr@V=M&PdhJpdPZf7fTE}T2jtX{OdKMc zH#h+~a;}j$`a+Im93oFRA8VXy5~!8^4thXjz~^IJ^e59p@(ocspoZAbIv+zzJrHBA zb#xTkdCAl{B6cgR21#PgCh|Cq0u?89xUyCRF%Gdir*Y=xW}7XZFR~k0Mb=<)J0ht% z&C8n{y_^SBV|FDY81A?Xov9Rs+EF?m8<3t;3rN80Nod!tm&Rc$dfqz8fx^}#$4V5NH?(la1RXP$wU((QILE8ap~ zZg(4c5~1mLs)fP%7`C-bC@a(upA?JS9gNRd4;d#{?~43S`1`5*Z!na(tNk}aQAM@- z*27?Y-4m(*y54=$_fDHn&frDs?i)VeL#rYDd1EmomD2~c7BUji;f>U>&+YY*wT`{t zoj05_{GAd(Loi|sqSh!lQ2Vr4&R@eNJXY%UD<%)A=zVxHx_Ev*K0Ubn7Oti#aRy0^ zQNQA%Mf}?%WegwhwV*xSuTkn(T)aqh{gZaQ)2v+IW>C5}iU=zT^OB1gS-Y6qlmiMY zM2|>0rrqH5r;>;Q8z|M`G2L^O}Qo;iB8gabdxQjByVn)~qrj#^BQP_Z1TF0jLs z$>`{LS-|Dka6{FRqoz`xQXSv{(($_#EFzb-SQD6EzPw35qB<203%I*;oL}p0XLS%~ z4GSz|;q@!7ty5Z3;I$raAwk4pUN>d2UCv&D*Tzi;3o6zUsy_m#L{zJjFrX9l#(}ip zOggEK%fsT?cD|T>W7grj(?-?*4hwxrz+r}y-V$&kamaMk0Zy^H2Mu`#1wad9UorVc z-N^+gs{V&T_3{??*z#Ew5Rzg#gNq9H>+Kx+6)bsTO{DI%G4zd=>kZ!Rkc1UkvzVJW zLM+c^i7BIPOiRvChEDllwQ>lwY-Q>SRVzL$j^NhCS)QtsWWI+uWqy}0H>Z~eS8KS7 zFo7!S4richzQ%TAG-z$w3w7B@3MQ2eA?8%iEQZr}dIQ}Wfmm*&Ue;*muhdoC7Gj6& z(k!Zj`%S)Y^4a33Si`~h{BjPL$QRG&3-v06n^Znq94`q0imi{f1w+`G7fLN-nKnmT zxxu+~`I^8@sx$7ez*qqB`(*yA%*r{|f30fv!AC&TP$_Ya&byGRtL1i`&)NvHBz7ma zCY~1%q=>ZKU}xoE1w}J-oH$`6Np6w6(%fQnSOA*xm<{(O*O7>Qn|bmUD=#m-BvOt< z)P^f0yaTG?D8=$(ad45X*A1wi=+ct9EM8+vr8Q~$imUk%9{zXh|4}oxWeHjcw;0c- z*+M6lBRA0#qmmJ|M(to##X&pDuQN4ECN+N3z6)q`(>x3bDH4pVhJWBn(8U`~Hbt41 zh0%Gsq7iPqp5`k+bI220!xxc!=+AxnEEZ@CW<#!zL1P-OQ%Vyn zs%n&GqAr(Hq!w&$MpbgUm>e$FX{%!DG>O824YuVhE6sA>Q4Bd@RfUrxtJbGUt6`FVC&l!&4r_Q3OSw$jaip`mDlK>c zlfWQnPSO3R5ik6i)yoQN1bKN`Ej{ohCS9XtBiWML1)VXt_z0RrZN$?5!cwcczz(*X zTL=NL*upy=aC2!s^$IsqDrt|VaCPK)w#eY9Xp&Uvc&G4G>A49frY^EJw|lF_IKP4E z9eH^G)2!bproy5N-lxctUgsIq!`lq*vs=6YG0fpSuD1Bph8u8=XYT8>xlThH#bi)C?6@kL~Esu(>QI`Qq9UofwIuDQ}>z=}_jtiS?4)AgV9*fnxc1I(`z}A%&@LP09IES1Szx0b`2*RW{yg_#wONDGVV;?&SAhr`<9Fp zjkfH|Z2kH)zk_W;ucRopY*j&k=+qU2JG_z;^tDm2Vd z4`y%X>-A7OSb%$Wzsc9<%NJiSidS9%PD&+@qa)Z7>42kDCZgyACsO9u9iUNpmPT9T z5i^i-l8gun@1mGvMX^bq+|H>=l){^AW{|huK=E`vg5o+<`4V@?SzOhn(k}Fqs(c+y zi@U1k1u6OqeMygFgif;aTxRbDaf&6@5rByaIzi<@ zfKxeQ><6j+vjZunjq)ZwW@BqYjz`!v;ElISNY!t2lBb60Is}UCEYeBzhgF67#lhj> z@ktk__NWLKAbE$N#8eTPo`Y4@3LO^8Wk%R_6U`$|j7Q~p4qoCZJ%P;9Pw4TvXqR+J zQj2&;lb<_Ww0Mbfi)0F>BlpF#(dFsEMVqn7b%e5j04t3$s=Dh^)-*V&byK-W3z|os z6pyMrxp;xW^(wc9$%)YfF`$!&HQq7<`$_)RK?Taa=blc)`&+2)KT@fpK!##_YCMznAeSLEN z?4UJilxsT`#{w*mFfke##~ieD`y#z>6U`$}Y-0ksCEJ-mZt1or;iR>J6nl%Tcuk+o z3rBJmFHLro-x?jBpLG+-C@t}jJfg(*M*2vL)q%B9J~G7eNE6!{TVBbQ#+FwHcE;wR z)%p}GBWfWpti&u@zcM>LKD!#m#yljCsP1jdVhvzpA(ls4=Qd{1dbcqT$s)xsi zTB-(8yW}p8N0L}pT>f>U>txPq=(1=Yah=O+q$iU?8%5d-Ps)Zz>w_sw2*PVWy*8|_ zrFHuH0>;SZFuZNG$nKN-hlr|U)yxJxkaxxM0-E>c?_SO~w@#>((nr-*D?~U31qUqO z$@@lv2frhuW4A zCy62|(t8wjp@|U=njO?uyfg}ly(vt2FlcuF3G8Zk8t@Be(UUEjh0n$@cUrr0^G6VnypoH;iRbV1{MyO_jS zL@hvLbwL$1zbin(wcarvYFd?WoDgr7>z$*cX|X)NR)1nJWO^|D4#7{br zyB^YzKoi6NkJiYoH%8Lg|6BMw<&{xN(M4nT7t#P&toG9q9+X&ko^V?`p0 z>DmRZ;VI7!_{La^p5~kE8Zy(1`E-NSp~Az6*^}&5?p{+OrID)f0gY!c`cEGx`eweK z!$k^?_{17Qo!13CJ$OtlLR-=TIbx*3U}g;(L`;%9!J{)t7<+`b@xmN{yKHm3NtxNp zSOZjOaCOcrchG=XQ&@C?D?Wv*FEFdyrl2wM1E34g@W!}c7`~LUCy@yAzt))**m#Q8 zGyEc6jp{&1X<+C9BEYDoa2T~1iT1#7#&@u63daj|kRvi8G9tl<{R~E+&a^*FkQc-6 z0$z736~=n(vdoriDAng3?S9aiaAc^ASR)A}JX)`}j*@RFBlh2%qu{V=$K&CSiijf@ zwH|X$gCD}AxwL8~%|mnY9Iq{N$P!B{QvEh(uEuajnOZaW$HC>?b(R zaVnLnNUSoaM9oCSPUatwSk?6gH>de*zD?sIk!!=GL7d3f!BhvT?{kbd-yGaPstwmT z=5Wi2H{iExZJ(SyYik#gYdgU|7bkI-p70a~so5?f<{gn~1V|oPVl2X27_6XGq&GPs zjz^FjiOD_NypiD3DVs9fvsfN!Vp$O$cXIjl>G9F%>a-KfqB6B6nn#>iZd4}falv zmSj4Y+EKgF9EL1M>x#FjbW&AnpwnV?L*3Je5C62PK?34AjGI1K-!G??`GZM%;&qf) z9FeKjgGTSdN_a@k3kk&*!q6Aw=up<^V0Gq8X&+#M;z_=|+1wtio1sz8*T}hRbFV#U zDg=ML96G7~AF&5Bc}_Qh<9L;Jf ze({m=zyAtfe_g%W+xrx6M9Y5gxO%&Xce2gkzjxIK--GX8?S1yk>i3>jAMgDJy!aRM zruzQX-lJazAE~#$311Nz|Cavxy}jRtS0Af)HAVPS^&x)$HTdr%@A2@HTl0x}5dBB1 zN888$3;)^Q`9iadr03-yR)Y9;mzOMY8(*u`4SicTYW(er09#MEwB1psfDM zys5sUtb&j1TjV$X)2ziA^--G8kIJ6iZu-}HwyCfXvl5aO$$x^+P|w_dU+sNm^vntq ze{bRb61>LW3qDeBefqE;Dkd5!bzd041Sc6xehPa`&{r_OhUMCJdaH)-XK)o)p|)8o zKFalhfeNvyYS_5i%olKZC~j4&rPS`I)}{R9lfAuP{R-st3uLdkGYV*h!Oqw@adh1-ZQTV`P0@Bqm7@~t@S3wVtuNswfI_uF z8e+TVuwI12%&|v9$t}FzaR`6P1)2_Iy zM5z;hfHwv$xy;{fJa$SoM}XroP>e&YqJSRd)*1wfEs(k?$VKu|3v+L{YB@p|KNRc3GZULEIwj9^HV7k{z`j3Yv{x1PD$)T%V$N; zZX42TZF|4@EaqQv;Yh8CswX{z)4$$^qqS9?$4Yof)sj6dy^oWCMy;rIU}C9Jc>HZb*NbK9aM zQjStO0%#G3B}Jlc^aG@EJ}t@_`bG>lUvKBLzy!pYk=3s0zi42#2Liba3EzD3B3s{n zlP$EJPwoRU<#fJmJ{XS={?ACVE|z4(OaDMEFF)RELrl$! zsA_D8*_yb^Wl8941T`d9jvMje-;Z#(naKAo)3$V8j49-Rm1CZNRkutNL#uKc5DB}$kuSz^b;w}Zs?_QSfCfrx?dJB z4`Hq6G1f{f)+5U202&%-B~f32#FDh--u8WAA1ibQVl*Pt^3hC(WX(!39ubwBc*9bN z<0cd3M{^X>5CQEp@e`c9q|+ohU+vb(-e*_126xVigrmcsF! z4Qylj1d64|j=*?wFcFKLD_(5M^J}Om8~FgO2_VJR7l#V`Yfv2kd5G8fV%0)YTIDT%oDI zDNM0-u(^7*gtbko^;3Jez|4;Ja7nuE*9U5Cs1FYMf|GNRsJp|y=>e_{+rXsuM{0?O z_3VC=!(q=v`lx;opT2ZFG9ultpO<;w#!j*9s4fPeZJc)}Ju12fXz9FU(WhcV8#~3? zNv)Lb;Y>c>*VL+*QZ&+^7_(eBYw4ZEdmU5Ek#^b<~#;*_k!B-?SixM9MW)Aj1y&F$6N~ zq!&ZLQQHrZYKugr%ax+VOqL^c9~7)O5A@jRdPyd=2oA<9u~NXnNUcUtSqkv#Sy3#o zL-0_|fvQ<1wl6B5b+BMnkX#Xn!~xSs;-ck=y~YyCpgA|ussu6{eLf&o&>Ak+kBGN0 zJ@1ahM*9QO^~2$?#sktdPNs`*VURETOceWDKGs#J^u1yQO5ZD1pd7to1rHu>1r2R|;oJpISBw+sWHl$bD|#?aV!ZT~y%$di+#4(^S6Bl@WrH?ER5n<{ zMCA%CbWnZj$0%@6yNK~$LW00s^VGR-~Emok2Vh_y704!FZh`nM3 ziYUg4R2_b|>Qjcuk{%@)7|9VbQqTB(hmQO7bvFwodF9PPIZWmlog*FI14`%;#2Ut- z=K1`cpR|Zk=+)cd{c!n_#_A$tiR_}9shwz_ims#Ne1*$FJmBjKOCJ3q)j)F(prtB3 zS79Rs0is8mg7DBIQV<;aLrTw4xN-{Jk(?&3MNN{c23(}{Oo)#ZsJYnB@{s~H?-40b zb1@PpLcu^y-|6*&a=Hx`?_v~AR0ou>gxMR;5VAST)zIa7bD$S$#_8Rc`y5T1Y=e<1 zVruAW5oRXCWkUuneGi9Tg&C~$e2CA*E;1rI`!bZJ=R^XmAY90!tpFWYqs79LTO;_XMejLa>nNL@Z{l#t|}gNG9qk$S>ul#%2(^vVtR)>254Be6JlG=JkK z>OJ8!N>*|lhM&l%?P;1=yXkcsNU3d0PmIK-3eDFSRgYMWqLmnn&A~81>k%n6Qt@d@ zjZ=K2#3)5|G;2SOnjR)*{mCgz%fv{G3{YEdBPo-6B{o(gDeDz0Q1xE10%h+ND^Pbi z7AqaCo}HC1~IWrsB>QsjWiC-;(}|8rm0=dY&=Z9n&Wci^hNk+CIVRcFyLOoP~c_i z{8L7^v*zg8_U=_U2uMy}MBmL#RF*y%(l>34I}mFn9eYQgw=W39lu`2=fijJiUbW>? z)m#wBsiN~tO;vh*m`zn<=^>|zj#Zkf^nN=wQgV*OMoP|*xJcoGpg%c<3j#S3SI-*@ z0N-(_6Lj|3Tu$qp^yfO9U5zh*rAbzi5&`Skl3M-0`u*~qidwVsQN=1Bz7p828kUC zX^_~VkOqkz6;hylVn569=oQicv7!Am+S4D>5LFb-y>$OdXAT-^h@9IX1X^NbbbY@?Te>li0>W3}u@_kU#!6XKH z-Pvf!mr_FAcmVYQ)e#L>mg$aVuvoa)!C&mkJrRBW4(zpkLqkJ=VBFAjV9tArPUlVA*PG=eHC3{GSMSa|Nh+26eJTp(v<4Y*>Vb#iT-E`m%L&m zwoNtC7P(Eav98klgv4)8v8mm#*>`z*uarKBaL=;i{8=w~m>Q}hN zA0&z>q(P#HMhe`LSR*(dP$3NzMHJRRQKZ5OR9)`b**v@oRZxz_i6W|$I?!4~VGR;R z6w*LZL}LvTMKsnhQAA-45=AspU|M4D#90k%q*Oo1MjFJoE1CvbAtsfYxmffY!CZuZDun=Nnh%llP8l2|jopr`%#c;Qf1F(PA!Ng=}Z>xsN%bhIg?VwF0hX`j|YgEUIM zVVCX`MXb?szVTI2EU7OdRGFL4VYd^J^abxn#Tu=-IejapwZpGYey z!F;+YO0~zjZn;Hdwz&Cpwpje#Bm8IGgng|)dAhILmY+N|B>v=+*)Kj)bp0!Q{dM(f zZ|~FjEZby1cwD{R!}Aj}`0riy!S~?%S9_oRviiNJ)yI3k0Wbc=ys5r_wfE?k!AI)t zZ^BnZ#=oV%esAx$;nm0L9muSr2!Eg1&P^S$r% zFX$g%zPLL3=WmY=E)Vw521K&@{IM%5BzJEQA4#-wQrc zZ+-gkuI!j-q>`bg#+@(ntI@%1_Dx>CI?b2c1N0C^tHr#OqPErn!>h2PY;t?Z7`66=0<~jIdnU3d7s(?@j${HzV9VwfdWCd6n{Q6$%h&5fszg|6bg?vJv|OW2zxpYp zPabK7^~F42B}Vgz6Qf1Wmwn&$S(>VgvRDC$^V}ERAc$!+a{S0ew%+8ERX&|(i~i;3 zq9xHrW%J7BKyr7h%@rtU5@kZHG`b?O)Z7}c=(<|L@*(fSn+VZ7(mwgSC!amB#Ra<( z!u63^A!!9PtD^nSO%ScK)&CFdEp=6d@xG%~(Q=mGWy=|43(K5h?N1zEV|-V%{~wKolvKJO(mG1~>|Yu~s5SHbuA}}I z2QLHz*+}q*vd>NUcp_l$2@0~A?ly`vVf-@5vX#0OL$4L|qJc3*@ zk^JuOE1sBV80R;02;Ajav6)}br`cv+EIWP@V-i7D`;WnsTrK6#0twafX7S{)si@gR zB@#KFd}-oLZJ+-R&ygBAehdCaN0Gy!sA7=%)JcA` z4b`tSg25+JiG4`XK>X}ajbo~{?fpgrT={=z$Y==1{D5ms`w>59W(D0W4yIEaeB$b~ zSOch)KAp%mmZ6A=OU$Ofy7U?isEKVR|_f3((fy!!{HjqBzP;cL+p%C3H zHw%T*;*MPESh~PNIxH5rzwZ*|zUdI@C|_-E2SI}U==@zG66x)foF*H%4Qake#3HTs za4}z9EV3o6MqEM3Ba}%h1FJQ+$Ab2uIy`}^-P3SPIuYPF-a+HQ9b7Ju`-Y`?OnP9j zoeLx98dK=fP>M9=j=^vnmM2ggCWir~KKQs0te5mVpRsq`>$wt+(s^Nsd!${%cB z1qAhGsoOy1dZQ>*x&9~$l&&|5LZy>a#Pizwfzruwc-p-mDxH{fOnL^2Li+8{K6$`R7Mzbji>jr=msj2fgiq)!d3UnDy04o>)hy6A}%? zkVG*eqh7dOES|&WYntTt$(rs_zR0naWW5PgQcM%AB^t{V;u9$&{go=Pby3^pA$8#y zN&lf}8sovBMD9gwtgd{)%o)Ak?>a=ePDFAU(`9$FsBoa92iqi*4LJQo%4i;z*;}uPwA!FDP&{SWk#T=yW%m9hu5j$5Y#2EV#s%j4i z7|jhkISv_tkKbgF(G=zE^JJPxKjB~n%I9*EV^wr!QDY@nMg(*vS4a5rdOV=K9w%3^ z1au83ugA&qBC|8p!_$0y3-i9xJO&%-aVip-Ss+a+S_MS86tb+Cj}#CkMWR;+&+~lt zDx1FUBx52YOj z$H3a)_^CWwChIntqd?bqq;W;eL(*#l)={yAe*J(fF%m;7HpgX|+%rYm6HxSgQDmEd zpnh}$PaWLkWil2=PABu5+fC?N#d2aJg|1JG#LjzDhj6gAxX`?eq;G{uoZ1qX?U4|BJ!%5NTRW;J4_o`C86TR!9uom|> z#d5NluU2^atLGIIAi{_@b)QNa5-0LQmT|m%ldO*{nQ5$aOJmXnIaKI?>vZ4+h+|h#`q$#C>utu1|!z&P&QidjCK*^mnn}NUm8FQtP&em@2X&qp*UKsu(4r zgLPG3qXY&f*8?6ksZ|*sHKDuci<;ER43C<08|BF+b)S?+O_&hMWy8Y>n*rrG-f64dD(-k z)(~FtSZ!jSMCZ_|OmbSx@y2_~{;}iP3XW2S%MPez@ z-l525Bb*>G-@s7mq)eZd6ktJ7u$;e3ju-;0WDiTr3h2_~dy@D^`-kFYK0Ob{2*`Dh z+~nH-$vHTeq976KjiU7Z6D~!8()C7BdYzC-mP8A<3T?2Vo6S!&oKMzt&vApP-@!^Vhf}00=Ze#boHMh)>uIT z&?{Zxva3&d1@5U=y28}AN4lN_WsE-QdJ>j0`lM?>`+72C)*d9%a8MH*2(#77Luwt1Pm0% zF0w*7hKmc6y+vegVs3MVtPoLB^IR4!$q|@EOLFXG(UR;HShOVj0~RfTBFi&A7A-^g z0Ju+}Y!=PLmPyt`#s$s;OSVlWPXBf@nPzY&s$WVHbB)vjg%S`WMj?4Nnae7{Mr7VoU6j$qbV4px7w3h@Zh(re^o~0+KY;3G>(DH* zrjz`uk%I6o*LFTtsrJjKDh%X(QWb>r9%U7V^ggKy0(*~Cg~7c?s=@+re^fO_oApW6 zV0P6QY}O}LgW1*N0qyGXV0QI*K)VVHzx~-&qwL$G20j_gt{O$(KB*eat{NrZKB*ea zt{Mg39;pfozWv!%qukpkRfE}8quARgRfE}8qtx3cRfE}8qtGj+ite;AtDcVfM9F#r z;NdVHf8i~ri=HW7;RH)LvA1B-6DWFb^n__yFZAG0p&{hcGQ6lSdIr%qpeI~p_eIYj z`qnapNlXu?64H9POMgh=r7mJ5vIi7=j~zvns(Ew|sE3y7??kkvYN3p_WZ%c3t+Ts^ z_9bYcO3LF0ZD-i7zG!Zeb6kqT zaMd40fvXVf0+*uDN%Tii>MDRsQF_gasddQ}D<(x9)T_7@4P-|h)T+1?4P-|h)Ty`> z4P-|h)To#gC0D4JcGN+Aic8TzcGN*_ic8TzcGN*#ic8Tzc9dR|qBCQiZ*^3WqWL$^ z->!->IIJhmP>2qfxB7C?L%1yjCh7U*6)6_AZbGawhg`oKw1_|Y)9O5yMLWsv^Rg9E zoP{wc)R&C5!io7wQ+SlGr*QBwS2SKMvSsS2)h{A?X-@C~S7D6u;kGPc0$C?iQg-Jd z9v%8BDwkkn{rl&&)&PB)ozN|}+2qGdI9i%M4K&iD`QJR;i?Wy=%w}c24&0`gPU@T( zaP>5MomYbNnJU)P$lCh{HEqziy?`^HE?*NdX*o{%kRx@f8~6%sd}TK`8b_-9W}-P_ zz0FpNsk%ckRcpSWC5ebQuxJkVF|>k;wI|Y1`l!~Pt9AYy0@Snl<}O>U4-z#;iuW=R zkCtLZ-}!d4fN_-}fnwXICJ%$&1c(8NfOz-rRq^iA*dxA)ud>SOiJp$LDhKE?092LFBJJs*B@Yd%p= zqW^03Z2S0s;XnI3U+DMv3I2PezUnXdf9~!5y?&#i+lzN55)kL+9IIR3-G_tD-T!`CQHVom$}sWGQo(>4_rd^2*hGWk#N z8ETsQ@2kD9jHX#>;_ofoUxL^8d%;KQZIiyJXvFkU8Rq%L>5suO^%(CLM~4@#^xfAi zyQMrug$5ZBLgDr3TMRK)-S))vJvENvk$;=yUsRlJLp)f{F7H>E+19|T$1CfdSRTq= zN>c01{|%U_9t!oQ8xK`c)S_Xo_e7hro@WQ|^k3EA*I%@EvZewbezf;L;A@+Af~SjH z@ptgkhF6kG=tJ^K;%EQDq@%TVyjar{w4C|NS9UxS)N7SD{&ArJVhOSl`#Q z9%jpFzEH$wn|ZOckaGS;{O|wXp!9H2tn(Myat8OV8F7j!By#PV!n$nY3Q~;6)*g*# zM0f<*sU=d*Q(|o&QhEOBr*NihcRZVH2R5S9Yu84Om)pAoxH)e=RcbTNZ(vA$sa}tk z*M)rqF`wC*8$7|reukNP-u60n7cfJS$IY zXCRj#pQG=v@*M^fF-O@nLV^osa*}PA(_7Cl#56uNi9leRpEvxg#w1Ns`~>`X4NnlV zSd2#1i)-HpXvRp?D6vYK#v!Qn3MZ4NdWU_)H&CWd^X}A&#lx#Z^f+IyiX~hJvNN4T zCEmlmfRb?zIfAFWz1quUezTk}&sUg^)NV+wKWv}Sp6ZEdH06W9KL4a)pBm4otQDi2 zLUwil&6#VpH|C~5ay+)z`_VQp?<)_GW+QfS9dNaoKacZkP}N(*Ru5JzOLo?-6Q8_v zav>{FF)CYQ4eBvEq22M=egHN+3}2HxEVXx3dmcaxl36h~CDe7|<)|GThq~MCW>&mS zSZz@gUL7puPOXxNt)7||>LV4~-Sts`w8_fNc4di@>IOgZLVL8{2RHhkz304Vt8i#*~Q{7C54HK1!a(xfQ&g(VIi7t$`SxCFgkf`6<}388AfPgEVk4}cU4J#5S`R$={gySbdA_LTCcY` zG^eY3m9s@{op6f3|4M9RL=Xd#KakZSkfjE~f@U0c6oX!Yx!)LY^F2#6HBi+QG zhLply2`q&TcMrCkTPT=Td)Ag*u^w@$oxrx{^fo!VbLwKsS|<5&<}F=&q^z6R7m?#1 zhH{*Q1yd{S&RWO4UEcC=ulVIru!|rr(sQX!g1)zVPcfx5O5_JT{qgC^?(|8pbZWgj zmV}qEKiCN`IXJ`m)76PiROr9(#-^UMb>$4MN=dB!V=pwW6uC_8i|lxPK-L3Lc&BST?d)`3)3z! z{}`1Gq^eGRcGn3`ceTP&`-@r!TXy4a%4~IOj+)p+DtZpi6in-L0RIkIa_T9Q--5r< z*(noCQI)={Z#^7@(?w$a*Y#18f6#B#*N^rt;d|t$iF(9`&zq=UX&gF1JG1m*OCcq( z5A4*5?Af0hv#qu5{hm6(Qv`VGq+K}X2V867WTjuDd3yVqmWAj#>>G|QaAKpvvwNEM z&x^6F=z@LCzfs0f?LH%I(S6O`v3WIL#IE-?cSqyoH=3(lDmL40TUPDNM-UaFfhwF-bvX^jcP^jh(<6R%(%K4}gT86*Jv+l7MF%YG9TA zegRkp;yD$=1Vpwp8@qHhsMtz4>#48N`?zg3DR_~*+05$EHGRN?MUJ;OI1r}S7R)v$E9R;Iuik-8ppWYX zn){+PsMrgzW912)8r1uUDQFQI-LA;5(dU>w%LFVtBqH$Re;w*eZ09lsJ7ORHt{2d0 zwh~(Q_iA{t=0?yP)@h0^wt;v6%*IYz0%m0Y#^1{XF1x#JHJsR1I6dKCqxM3{6BChx z4NMJtwcQMskpQka9^oxUyf>Ux5U0LtDDBL@v!&_mFeXToy#jIyUNxN5CVBhdpgRxj zHSUhi>*7%8Wp$XL3!lKv_`*HMnozloMtonx^L_)v=w@)J0QQw~7-U#AL#w8r8h$mi zWj{QYN>-AdSVq^?m=A2ijHalHf$CciWxt&#%*<{ds`$-r8^u1Ugg&TRpHRC#w~g?% zcD>(PpPn$&B9>32a@jXU^B`NZXIN%f;Zuh&;GorB_2=PSiI9gPoR_=fkkLiabG*D+ z%-2w3gR>@6e#TiCX*VxpLzc4Nt(WB0peg$cMgKL)S_^T!7aXWk zIJ$FjM~WD}D#SW|w=-qrN(T5BQ1)`Zxz$a!yHXg*LGAh*G4H@R8g0b#5tLWvQ%FB| z#ANuaYA5G3o8H2N+1ibW?M;l8VA~9zr5pMtKRUV0UM+BP?#?`9Sb^G~vRE}?V&6ey z;r;@+4lE`>n`FOq1y~7mMb>=wMD0xNn^a2Z5GB{bh?UunWFILdZVHhG<6aFU=N?c0 z^kfg*8gWD=)^)0nNlVJXa)c$POpZ1vA8Rl%A0zubw!_WkV~V_ZHe8LLOOllgsb-yA zD@44jfuu5GWH->L4HGr1MD!xt-0mK+c0o&^jjGUs{wdmC&KI-8tepA8iDgFa{I}sb z>L`|7B-ega=krbaUJT678cxp7&r}f;zWD1EJNI>V`@AUcGU(UtVs%9A_04dnzcK^d zlCI4_Oc^61^|AWpVvU9Ch-d0V^^SQx*|rAD&i24W5FMx17iSw(I*v__xg%$5VTw5$sUO=Z z6(MJJ_EL+oe;PHSBT6xiQm$5rgLAb86myk4FQVnRSinVmYc<`ca;#z`a>~3y(gAUk zn|$q{EVKI*t%*cM+qoG>P2eh{3I;JNq&2ZRO0Sv$6AB#9=Zky-7lYa0A+-yh&gfFg z*H@z>3nbSWIs*opps;KrMXI*!f|sHvbcX2Bm#85TTd>_=v)j>n47bK%QsWo6<&vX) z=Sfk#-mWmtkCwCi-7|Icvo>|9R+5viX1A?~wfK5P#G2x>dqwF$G&+d8)5xd?t2+(# z&YZshmGV=Ll|Wa-@|?XS>{A3Mw!5_U*%%3QMAp#GeihQ8tT}-a0ZP3n5zAkIlE5*# zURezVSDVegN{js<+3!2M4bf`S#AuBAR5ih8y}|2k&_(R76}zC-#EG?ouAoEgnn5xE zMr#_noxDi~J9BP4y^+tQRJODsWh z=Gp94_mU>XNk-k-qTu4?5UOvBetSGDUakIONkwW;&d#jqiA{|$bYAZw9luNQAX2QF zfpYDWaWDlbvRZL=`k?+XzrKe~grjFQ`@}jS!l?;b!K|DabgXbsaXX$TBOA`?mCx1)it_gvcKs81tV{%2-S*hAHKbROWXq_E00lVn`7-KXJjn#>@5d~7#` zK0lPUPq-BK%SdE++DWmTV3K z!!D4f^zat@2+oSl{MydpO?#5aTJay{Pm;_Pu3w+zB`93?e*Mdc-aQF;QQ%*zER03odLKP46Q(VE3I;8==*u`8YE9C~&9<_HJzm!I@%4^WfKyMdJOxu?coerZ+ zJzr7~@rt+Qsw}Sm1JykoiYm9KzI{k_kLnR0s(Vzw(o*+u=;OqM5324VefAHu?hzBt zN=P5o#RP{u7iXJ`;w=pFc1s-&%$^uCk|UXpO~?$d)_M7|oNw}rx8-Ddo8$EyF61Zf zJB|)g{!$MT>-sk-XRRU5e^BkO}lRiFe^VCZ4C%3jSEbA7j%3)lmdfCt&|>&Xh{E5NPPs?$GJ zUkML4S|7~r=1Z)*lyewrrR3T>CJ_2!4j20^!7vUM3-IYs$#t14mu94*X}bMKYqX9k z;cbO<@mX3+)Os}Hb`3sf)(R-5k*xJ#Y=n>nr8DSjfI*P6`J4G{n=PsqgbVz6Cozny z+^Q#m>LG;9V!fWj$!+k4oB0w(CAeaC->`U2*sP+kIx*e}UZjp=>xW3E4%ox-^$1qy zCD?3!0V6MP&u3gLg76~cD|xG`rn3bXDX;f&PP{`%$(R<0jS? zc%yO>eQdi?^uf5^&AKCt{b6J+@qbkHh6~Nv8`u=hOW3qHzP^S=e5|tI4^Cm?w7Xd! zlz7B^CwE8Pr~%mXSJawrB-f+)WJ{$>cKkT# z_1a)P4eJsJhBV z*<@F}50Pxu?3ODB`=F9a^@Z~5+NBdpD%KoouTP`4tLds-Zr-fyAz1o$Alvd@pG*8V z(3sSl!G9C}Mn^Y;*A!KntiJWo4Ejj_VfFPR^;Mro(I0=bH-;Cj7lZ33e5e;x|3;$~ zR4T0xsuQ%93zp4DP5a!2w_4NQ?+IA+jNervXo%($sca~#y|`4Zif}a@w71|!O3gp_ zHH(*IJ@^vN1VD2XjPZDbHQ3AIqMR=`m-FfC9BS=DAUlAUMfDg-$W+9+xWwK!B-8JH zbBGnolspMyF?9!JcgSRh9Uz;HI;iwI1Us)g(yP<-2-+Wf+b7ZAB|yX63l@fcZ*GD2 zDnV}XpopYYk`=D(u2>A$31r;wcgobXA|~K%dEe5rzECyxhQfgZa%8>alKBs9;wUO z^X%nMPqXqhXd2`vkcb_up+kO}-xdqKN=&zEG6OAt3M?--mJjO0LzDed8zcAh5w}=T zuyPBd^-a$%L}eRYpXK=so4T6>i;=0CHu!HkaVXaj$ z)fUss$Vl3-TfG_Zf3?0}n`7)`J?TkH&iA2JE-gisEY!Ci78{TBA68#wl}q)653e#% zDvjlZR9YX>>O%bN*2L=7?fYF_RFz95yoP9?LSgleRVkp(`>4eJ0{-YXSvk*OdLP~( zf&S9itNWUV7|BG;84ZQl85-3SF@k!e2Fxq(#7N4msrv)3sFiwE>h!*2U zRxh6_Z~XDz1GrsK9oZ8#r#V{C@w%CVHOwoj(!8B@%(}%$=Fx&ZT5djn+CsM2s&>PE z^7#E>Ki%&F+YT)bc>YCP+b(L)t)Jj{k>7bLFXw*5f18zLi{#A)g$FFPHL5<*f(v>M zbFz|9sUG2WRIsjtb&JTQH1FV3wQav2?5miG4?s6!x0?7s*sUfm#wO|ofwpNWW6p9> z+qtLiy;ygZoH@Bt2U%exmVMvxZ7yyHSyF`8W}+?f+CkL0N|R7Ahp9S2fZI);LR3W} zm>p2d$;=!scb1=UqJ@L299NTEsr|}PpFDmas89DhK#kkX$oqb9+f;Z6dfSv(jLXTe96wRLRE%z<(qeBxtkW+hhecjap@R!X zBo#}TC$mt^--!{P+RdHlaYP5RY=!4~tLy?A%I=|JuXp|IvQf-$TeuC@Fm{rCg$|pm z*?m4cg|n=4nC|-y6P)%(kaC@hNWk?H$3W@Um=19xJIc0JZ*Xan#a!poY^c?v)|>7` z%^rLyXa2A*n{ z@fa+oF~VQ7W-*wCxlQLSMWpQ*Hq%FUpt9o}ntyV*!V(yqj!T_|xR@X=POPfjw4TVX zx{s_1iDgRFyJDy>=g@zoe0Yl+5kCcscI=9ABc&SJ1-z&>HRaWGI!*$|5p`x*?!tHB zw^(!=aK~?WCMD)JRohiEZ$Z_!W2a%0cVM8Fw_u;Z02JiDPX5!Lf!eR~=%++3=DtYg zpyT)esDx=WlV>|!zU#?&9^k4rG}dkr9h)3EH=U=Lt7N~~q`G+Bcb*;W$x$aeFD6Ev zpJg}S>V`&-wPISylNuf(p1FK>ett4I=Hzmmh#AQ)P4&a)EYf-O@_g)Xv5NIJvU0O? z3>v(}a#|vtWRBx%5Yh>yG!L?WDo@VOzV;yHT1&3PLn<%MM`xF*db=CyB#lPQ7vqGBS35}fCjJ|z=a$7JYwaj zVn29!ze>ze=#`hT5{#ti2d~gAHC&TemxvCcrev>{ua_{2-(#^DRb;8E&9f24hrkTO zxENF9ffb$2FfP|$Id>a@TuiCRW)!7iARmIxf$c>%C^tj7n7bk?tx^3@E=8r+$`{p& z0)3K3tv(1txm>n#%V`GlAyAv)T#hQYoiL!wG36T75?aL?Mb@et8r2@=pJ4x57p?X{9>s!NYeLg%bqLcP&CR{!MD(7xQpX_ZU6PQe706VC( z(45uca|>soD_lvdNu=i1Ln{rbEdrJEmRe;19o2TV-b`vF!D31yJDB#aXa^Ba!qebk-c6!B7o602DWI1+BnZ(%CSyE5B zCXq;zFIkm!Ic*SI9EQ|x$X)t4ZU-`^Zb_cW2+B@MjyAz5>XYt>%&@7kqFl&S*tuwO@LZH?I3ULDa9QX}I2Mo0T}MCM;(cC=R}!E4!45!;0X zuVphujK|g*o$zcpqPoC?MQn??=8~-rW zoa7xJX0}-EMtDTYdB}_U6;@M4rCg-;Ags((5*1NUIh7HsH+L=js4)eV(khW-P=t|F zD3D{@z#u7Y5;<0Q9mGVoe*^7_7hR;ZO5_-nTY8ma+W;mhZ4xTnFyRvgBSmLDa6iKj>JLtKb>~4ohh}amDF1JK(%&2HY#HMM8b(HA9vyn=p#zK{t zTDJD+rLkugVj8)!)L6}=LrfhzZa9bo%2K1gA6W*8N3XJMOFa6OWi<5=)5*0(4%t3i7eykhnQMwucf)Yf_Deo?la%#uCvwL-q%Cl z0R6;**Y~LWPguF8-V*u={Ed!o2{jZ|>uL3^hx>YTbwK}heP7R)`i=Vf(cT$+Z@nB8 zpYNgDdhq9s3t?7mO(nzX)#l?#3r2T=ihL86U>jLH( zVhL@1Q2%+DsAn+yKzf;k6!GtPa}(a=sc0&TX}(^=1?^iPECr3~;%%bgsZ7JX9rzeI zcluwN)OmziNT$4~Nn&u|(^bM}aGN!bqD#_|9Wj%%MTm)pFf^S8Gl@=WpAO`Cnyps( z%%CMnQjFF+ZOYO+(NYd=9$FG@lz&0FDKsOu<9A7t+W~JF`tasV99cXsV7O9(|0JRV z@be-s6%>r`)z@|Ij>hmVkm6$~Qe%US4AUeSiRoreAyU|a*|!ucOg+~~ob!sh)H(l6HI8+#zEd6r*QeVn#71SCAGs;t0?T@y3 zIZRd?AbHGOt#9+$f3VeVMNy@%>e~mk+J)zPaJ36RZ!D^$a{91VyD}a7{6k&swh0DS zYclG{Gp_jeREgYP)d4}d!l++$Qa#U@7J%GNK`ylNTao$a{cl)&yJTF z^ya`7<(9a9cxlH!Ew(pvOmKGPB{_o$|MKL1IlV36PMe>@jG%nFt&*ypF^TR2#Z_kv zQ%K{_wpqFPdF|kBW6vW~G1H$s-PeoXCr`~WwYt*uui!#ctC_z6f1{gfW=&Dg4qlJ) z(&0mwGxY^4=93F}(N@mX5BPwG*T2wk@t@R`X_KR5^&$Cq@w3}w>9wA{--;&oDSj6b zjg&g7ujSwrvfJabEXvFL-R5Ag{`-4kEs$Zo46q;vt)0UoO5;BKy^fz@R*e)XEB#p8 z>IanlspospH^B2ZT!W>G8H+zG&mhyW4>bEzB4`K(tW`!Gb&BBGd^sCIt)jZ0&Rln6 zVbDJa5s3_tG&J1 zFA%`g>KznV?^+u6e)cwdlmEx^c!r{izv|nE@a=Ie? zGiT<3uE_?<3zua!#omm=#T*Uz63zB6Prgkyfdm5nXw1Ub2x_czYghl@Nb4~yk8pJHJY z+{Xs4n4C}7doGyw29qetj;YG5K|Yx;Uw4H`P3S~SOQ?!xaLqXqec+Mjz2VThGww?d z%6r4XrFKz~UX_bn+!o9HRZ+Y?UT(_!L~3_LO{A5|S%Fr4rDPk4VxJ~M3rG{AQ8UUc zZIkV*Hu6egj1}Vr1WNI!`UBDjyZwoJ$wWz{h2htZXY)Z^JrDDWX8W~;< zWvV+}lj)P84MZEd&w09*GHI*OQfZ^kErV`izrb;}x`GK}qglS(%r{|}ms^C{b`EmK zKdU`J3u-d0w6BAWy1?xOPRI2?tUPKL%z#iaW~5?e`W8W^4xPF&BOp^Q(H$@YGUb?& z%F_31Epq6*$ja<4AXCg)IbuL$KZsT6z{Sosbgly+Cep}QT)3L5 zyvIh{RP7<^UD__yRahD?k*`ep%3OK%Y>})vJo;+9RQgyx=Wx5;6qroj!sM$g5TV@X z?0^}NDaT~-wF=QKM2bCt6fYo9jK_+R52ql5U=BkkdK+A`s(_VjlRVz~n8VSD$FgAv zZZmD}NuEe&jhRX(&rY!MtD0@%FJQ$qO7T+ZV`V#CR#~Z2B4d@gUL3Bc*FG!dK9%Li zK~;XLYu7E|UyjMLMIRH|SzI;o-mummJJ1=Zjhs#vrYSh;ee+@BvX7ZeCtXj1{Lx_6 zZYP=69dT3XrMj@dIzgB>SF3SLd1Ybu`KCa3J_t7bGWs!kC#dx9fJ{X=(TYJGays0t1LMVx;6$H9lU@* zv7XX7BjWk%x5W6%^XCEPaCAl!sUCS-W2Vv>$pf6dPmt$($r)R519Ii|N$*5nt!B_> zT9wXNw!teMNUcefVcLfu|Kk)rO4v)Q1cXLt-=+S{YAV|zNK8{C_7>8b?+kU7}NIhfubmeO}{J&Tm z|NR;Cv6_GSwf<^P-hcSL=nh3a`|q85(W^&%$b(nE(r^@?Ku?)SVjq+bmp=Ok+KV0& zj#M_(%{l6T*5LwHyLow7-mh?O*PHn)FZWy|@ajUo(zwu$F`HG$FY;`$xqY5(7n?*} zs$&8Hv2{UH?BGJ@y+fk+hEv6~sX)-TWqSS*P#=D3LVIA|8xAtn8IE{3G#2E0n@?X~ z=H=ad2`Rn@WFElqJIjE``-UIO7u+WILQjHcNPp-ejTB!vQH>6w@l4C|P z2h+7xW3D4)y7(Nvei^9|?N?z95z#T=X_aSixNW<_4x=3A!cA^7r~rObEZ{7pPqy?K zs9D6-GaThpbWej|9WOh;vT01<5x($w3(iP$5m(#5SpDX-fYz#uVh+a$U4HK1ha*{{ zxtFTqu6>G&Y;%iG;={Vnz|ku^xGbRkFMZlaYlJ&r#+6BILr)`Bq|bfii!xt<0=vM# zd#&O=>Eb7#=9*#quCc3hjixG+4w@6}d=k5sZab#FWW~jjYcmyP>j{<>hr6RW(wF^r zm0mrB+y&)Sls{kPOINGf(>Ry=EIW=wd2>T(3^fdeV%*5NZsR}3`T7dhl#oDPEnhE- zx68T;?W?xfda3-eLe?kzj^-uwz!c^ECD^nNETx#-m(~;?ZC78H#dhU`iK(QtsiG3l z)E;IIIl!|8Os4Q*r8JUVx0Xi0FSg}0k*Aa=uBp^bXo=KCbXJ#O;p~>C4$t~15e5qm zxeSS%xPccMr5KU&z7FCATpIz2V$3W{Cr{@1A+o=q=4}j8Of5Cd!l4#kDs>G+DyEX! z(X6Soh@nu$n31?<&l|O3KK4yT%-g4t)z#lt(G#l`Ut-%QtfvBzl)GH`-1E zHjB}z+C+u^97d4AP_WGQ#oi}U{bhvLfA3R`xJNm}b8N6Uny+6QVXM1XPVx7ZeW>p`#F&xwwe8ZVF&|1D#hhm9GSo3(WO&71 zI6L7JD@P@&CzUP(>O+A-%;QLOw5L=xk1Z-RZES;7SxhN&-2<4WVuZ_(%llOTET%Q$ znaymin!^?DXqG5bF{R^Tk*l(&4=knBZZriovA^+s1#-A3O@#=^?;^8g`l$$Za*oND zF;L#g`Zkhj1z9c7dlXM^#5TlSF&NYqvlZ)9BmxBS2N0bAfVTjj<(m$wyu3&c=np40 zQmUz%Cm0Q`9soC<)`&5AaSt#bOlrhB#mt!jmsoO(k@?yj3%61pe;LuI#|;lzBf|Z) zIK5!l3YFrvI-VJ%=u(QAD^Ujzb}8V3vgEub;x~fK(ZQX-JsxTCkFQTZLZ94)cZ}?A znmzg2Prxe`X3esDnkZLl7wRG8XZMGTY@I6MFC(kYCk({*3hu z>G6s0Puh5Z_#q2QVcn9S^EIC!75mG`Dnj2yZR^os<01BDbWu$fLqD6UiTr47o+DlI z{CwBN?9BSbdXE&>=&6$Dd)inbq!j8ob)zS6xyr~UKW}mDV$Z_dNz(f)$8f96A~AMF zBFQ7)lj(j2AaEWmQl2ol1d3cU)a(QO1 z3wT}k`td1M4m@P6*tWQoqE-dEp6E@OdtPwM-s(YMu`cn}O^90=wNI!Nk7>#F^h5;; zj$2)K52-ege*~9iy1?EWPPZB}UVf98aJLf~uH8prp+~Cdre_x@#4OC9>ww)7vc$L% zSqIftjSCOqx^j=j-Wv|Z%ypbb?nKX+(YZpr-EL;kqddv3le2fuu&XX4CQ%f0flDJHP)UyHtv2keq&ea?1)o1HlE%}4L z)4rxiSyO-4R_{C)MX~%L3s%3-P>)Y)$}pnQvihK`SEy&7+k*lhiuLNbDD9$=N`^YG zI{J3Jnx5ey^Jm-ZYqVO+KIbJ*3#ePNE39!gU&CJIG+*JpY7PpVu(RMyM4Jw@pX;s= zC(xZf&Zqett~9P8oR>T_s@|{A#yMWi-DIYiHVO^oHo6|ozENko@DQUz&kmf7?7-Xe zK&T~18Qd5O)ybmVz#JVbtsU?pRSa`_9H~9+`KyA;N5!n#lSk6H&}l z4^FHxRFrmkI=Vv{KFe?Bc(Y*wjgdN#?agtx>R@_=*6>We3Uo(f9>Lv)NmPmv&+>P$ zy*LbCPvF+Z?P^$AI+%mWQezG&OO2Q;OCn0Sb~(ux;Lwvahw5K;Eb?lZcj3zgKENO* zd-L5e({yzQ&U%1ykIq3j3bE7Vs-D&=D zkyffA)}%FbcXCSQn4!ZHV={7ASaaZ+9DN~gn$Akm(qza-JAG9`XW~$_X|y!jSUIwi z8=$osVx97In9GHT9+6_iNaY`EW_x?EbBQ+SAch7g#^d;K2M>)eO=qZect{~4dMp*& zJK5pr@>KU~c_fN?Dv_ba^9U5!=qu8yVzM4B zlStpMIFQ|gf49JxaZqn)j zoE05n0$T?}>xMQ?)e3qLu3`K`Czc_`OVk$u-tl6SoWYTOI~W@)ermi#`Z)Gb<8_n8 z?S|xawf;|ZXRL>x!g{e9%JPhfQ++UQCxE5tDS(yMF%;`G0Dk$Zx^l=%`P`p$Jzdur$&Ceht2TwD&3Ae3Jb@oi@f#Zp|mE z4-|VnzGpts^KsqZ(NkU3C-7x&=eh0GBR;&ttmM+V$1IZA2e!v7dv<%Yvevfu+aZFJ zufH=!(-4mN0oR(S>=w3{kKb*eEd(}vq0J1xVTs%FQ0*VucUU=~?3bFB2#7Go0cMZ2 z!nxQiG$LnsvDvIFffvx9nMfVAYma!Eye1gXR&M^I_1RPup|k4I4<_{4zym()1>qMO zW`>bjB&!e12g;uPgYC0v6OB|dl*JywaYVd89MbJeQ{b!EhrU9@NgZo%E7V$^hyu8N|b>($7%{xG*s^1oQ44bssx&^YP zn^*m&?nzf2MKB_+n5ru<61YmOLN(I*emOmO1&twx86GPb1P_W9x-yf5N7;m;ud2=- z7AsFhYdU#SqpIB=mby>m?7}5ZibtKMbn!GRFN*^dWe0qvrlPpm;M)!ta~K1A33qKT z4>p@}{%X6yv4*uG)h~Ixme3CPNB7I@ZazI;&Q^FGg{o#6*C&p)Y1p3Im19RTPBVu! z;QI-9h=peU#puXoxEwjM>tOE=z>d+%l7Qo4F!OTN*8^^=QaDFA7cDwBH`&rFtsNe}M%WS#EK0ZC! zGQrAZ+V&D|5*W?!UY%urlO}CyQmRMsT5Gscc30419hafvA*{SiN2Sg+y0k)6tj^k< z+cs(A$i#Xbsm_|Yi!SbEfx|=RQ$4%9GIP(BNzwNs{^XCU#hgM{cQ&0uuz*{sYBd(i zm6ZkPO^XItjmwKntSrE`x$D)sOPmyMKVqZ5=kn3?fg4qkbC4q~M5#O6cgAAnq=X2N&WJbxzJREbQUx;ZsrxH<#{X~VTuLHyNDi+aUE?g3wk?3sBPbtKUY>Ow~ zV8voizU{6<916#9Q7zPt+QX+*lKT-vb0fK;&^cviNR#5Q;uzq-)Lo2W#dh;Nn=iJd zYUnYbV%uQFv2p&hZN7#%S;={7L|eRE4o@w*Dk-NaVtaVL6t_{7#DcSthJjM4QIi-e zEL=#bi+%M<4hCyLk!YH14FYsHpN=8yfy7+QXO=(Li%7^#4%X{p3V{svKvOF<5iRm+ zL>d?JlWIur;cd3O$)BtJS0ijO#da$v$QQgCjYZbQsbaaT9>G;=v7VW>jR4u)jpXPV z(2T7qn;c3*ZO~$>1#&j|U|VrUjLXW-G`GiapcC&vhT6>AteidHE*r)r<~U!=AVum@ z%cx0|j;z&eGh_jb{dCn!%xmh_GZ%CFYCVM#H{OE`US$ee2FH`mAWOZ*?6~T2*xAOu zjCk*V@Vz&B)Cu_{k6ornHQ>ugUGyKDPja{#C*f9uSdV!b%RTt=J542)_$RA;iq7R_QNrc6^`cCU&e>zA6hkcQ?-J4cij0p1a;SY}lfQ=>M? zl*=))CNsBmS=`ZbTIP5sX;u~en&46%Q#l}DA1{$+*pqdc-2pO9wMKqEf0tLISYj*} zQ_aQhf#X!S2yk4JnY;@?t-%4QL0`j&#M;cTTF9%hSfj)X=j`x$z1j`dFL~aG>LEQl z8Xs1^zS;;&LW|_lrb6VPnLTwEPR`B9O3B<+=-^!~@2Xw=G(?)hNyX1@D2#LpJgV|i zpfJQs%7dxhhZa1X!dok7A2Ku)b|u4ze=~EL92#rHG_DdSTv`!R`ATWdtbDq!TBvlL zDr|?VWytUdAKd(|uQU#E2AETM!RYd;W<1g)_uFnih9MbJk)`HrrRJvfPjO z)&Fd~&a4DRcF?gI$xzChcvdo0{-VRHr>`SMbykosc3 z6pu>VMTnf9O-1S_<`(J}YCDOKJ8-%7>8^OYk6W`+b^M%fy$cBvqL847*#F&w)quH;m`KU456-JCoWsXLAqvaf$0I&$-GFGmibUfCa zt?|zCw=SfZLZY&Ue1%K97Wun_vdr$g@^%cqI;iQMj`prDm2CfKDD6U*6j)osGGPVC2>K7n~jzf+q)GWY! zFPeq8??gtBWZ&y4iK6R!< z(~m7CdONo+LL^lnIIB3PttNHVxF5m$eb2g}do8K+f>DhJ8%7kb=qHX5Z{T3n zLiNamfkCVxoE5M|>qtN79RP>Ii!ANDgdK<#^zoX`6|@00IzewZ*fS}3!94EbBv}Go z{j)npbo&t9Rcm^KR;yeA<<4%Jm`i&V!l zNHxUl#Md!uEe+h(kSV5k2jq_Y9yJXDcnxRyVGHfVt%s>7t>-?MvmK#8Z`CwqenHh z9q3V{DrinVp|!aD)rbL^V*WDrCOuS0>{IPUNT)_jrZW=dY!|xXZg+Z1_4I3LdU&2o z5bJAXW#p{1L5?1t=MJQJ)WoTpzI4lAtb;1rG?vFmu|-JHJT}VFBDHuktDxp%y5;dH z(^y0CQKKdDG2&Isw6&U#m_jB}Cc;Xii%~B;E0*lW7@g744L3sORX1hI8i|oDoUJ>W$itxOd;zPI=1~=?wK8`404X#NDGDP3 zTx2D7hmUTSMVafJn{IYB7!jZayUj5BrrK4DL(PwEW2rdaQ`1!;&vG$Crpoam+3cUz*{sIXqv^V# zktazQ(Sg(O+8|4N8jp9znc+c)%WUdns@@V;OcPy|sF8q)NtQr+vKk9iH1T{m-CWJaf-hujV;)mnys)2Qu@V{$6Fa;@3sz$1AyuqX?ZL zIPEvx)L9s-9S1Wsd@+R)PCBbO2dzyp#fT!Fwi~?^lTlT6sI1MRYMXZhm)zfo=xsMd zDZPyT4EGFIyW+|zrDK+h8mg`wkM?jbUYqjDG3n^xVRo}OAe3jj63J<$HTTDN^UZlV z&Q}N3FwwBdN36N@3edp}RY;6Rdp`%QO@YLSBA#~R{TRJ>4wdc7Bc+q-FBq?;YI0Xc zH?0y{W6%z>Kgq9+Ns9&4qRz_9j8Yw!w{?dG=H+DW06stVRT_Arm%C2@FX)c3*P zG)yA1Y48`_X&P^d%%&AFRi3+H4$s*%L^}T0_IaAU!z5ts8mBz-CsuNvESuMM_KerK z3|Ndu-N#$g*TF=0qF!EO>9RS-6zyPL5th)%{p|gRAAM#B~Q_MODR(Z{X6dLLEF#@i`2y zsu$q;%3K#p?!hDbt$$qglK>xGti)OQ)b1mq!FZLg^JQMbFbTM|emR}5vPJqmxhcq= zqRKfO$*s&y;Xw28$}GmyGDo70>mi*LP;Fdf)7*m;Q%Ch&wPOy*Q4gw=Mt?eDpzPMg z;!R$;fHZ52RK?AS8^z75Wm(VmIyR%{WscdzpD{92=W3!A>^JSno7 zf)9&~az7LCqUOGFw2ZPWU<+l9cdHL7%}MqqAC^jWMQK-5(l!4FE;trzPQ>e&`zt_> zSa!sfR8h`vQ;CT%zVm>nRxCSEXPd0~?vhN6XdUFT92b-Wrvjwm>&z9Sj z3o7O>El-8HI$mr*d7eRD;9bTo#-sBc7Y}YS^~QXNrO8-Xxp){ey>wMfpNyY~*LVJ? z>FX$`WAYPJ1t!E?&hPSKn>06yVU0*1;8kZXaI6!okx%kBx!2$>)*Qwfxk3iFI`fhp zF&3l3QDN!Iqgu8$maJl3r8B#B)Fh4N^A)$p6ZuN#bc#Ya#fmqRpWtouOV}Jt@~DwK zz;q#xS5w5S%A7U@dG5JYxdzcI^9r>pwlqysj>+?NKxsF=fakkdI$7)xhd}(VQeteG+G(^1A2!C zR2L^WxrQQ*)QtWejRn3I;1XjAn=(L4rHq=K2|nEzh28l`vxtkiv_ zNOUwaet@ewDnhCQqZBv!B%f}}`Q{#5JYGQ_k|a|`4AJOd{FQrcwt0#<%vkG%s9w4* z^>Wk+Nz3D!%C#?6F=9lAoLZr!5CwU#flcjK+fD8#A#%>{jGN|(7^`VZuU${W4rzLf zPC-tinbD1EX&!klNvcf@&uft2is)rAZ!w(UIDQeYhyr9H3i){YFVzN?b+He$DrLM^KCyloY!-mr6t8t;j# zJYqaL%lCC>bnT}SVvbTX39SSt+gIx;q!Bsn`<)e=`SpC-XbTXdv-RgPU&GlWJY40n zSB}T!Z@ur3s<9ETYvvMJ{;F3X)rHJIj-rXraNS)61&G+XuS znq~(xlGDK%4o-htl*Z~*XdK=}jiol!`vSKXs#Ek3dqckJ*~qlUJ6XjcdZHAon`RSn z_dVu)m~rd&Hk{o%V&qw@Eol6>ZyLu}`_@;A7`_e6{c|=BQSR%a@PhOG|CXhTxYNR( z)%ibIG4w4Ks~qv2lVppdt&ps%K8n;mQY*#^S&46t5k(gHo$l`%qI)hRKe#>ikDL^* zh}?3nzP_Wu`Ix~!Bb?1x6$ znYzJ^tn&eA42WcICm(PnmY+x|U%9&nFKEc@Af6?}+RNI&PxIM3>`^V&W%fSKpM_NV zZPdw4QlwG7I*871#jBM=dbNPutwc{Hb#P$xeD+W2Aimq<+srLZN?Z5rOUrma6A<;% zJqtAldk*JFtv+N8B*eiyTY&dQXWZVsH(?G&V}SQA2ln0pCy|`Pv9x83ZJ3?s683@I z8Z#==4)NkPCWgz#QW;>A8;DUfhGY{8k^D`R1Vu=3G(^HZn`I32e|03MR}D)R`Hp9p+%ac->ebBBWSQ0 zD5lI4DVQvX@J_y2yC8CH@I*o8j4PqE^Pn7~-7%J9wsI`bIlAAgt%>M*nUpuXme9D2 z)w>W4Hxncx<-_;>h`+$-h8p3J0%+CH?Q?4&+1XiPo5hm^wUT4Uwoou z^1tx?H`S}r=zG~bsgm!0UcViY)aLl_WBtK*@bin&_kUUc-n07S(Z9uue>QLGpI?j~ z|FZLudi&e>PRR7P^!M+Keh05URqqOmBKmjrG5!1v{P&6Tfb_|Y`9wX6{`9@n4)zrg-<}&G_v6^~Lnf@yX=qVthV*eeuRTBL4B!<>~3> zZ;XC!entPn^yTHNAHO+1m>!HCnSTkD*k_*`M?n%Jl1HO+{HI?v5__Wl0pCbse{bH@ zKS^SpkD9l{b^4;e_sNL5J-t-PpS`(Ytkt%v#=;LHx<)L&h0jRa?5{6IUl?s`1WLcR zuzv}!>GwJxskbhDe}d2a!jZ~`^AH!em>TdRTcD|EWdCis7O)-2w|cw$Xk8Ro0jEic zUQXMR#Ij=}Jro}2le8>VJFX37_wb2gj`M7q|bAXUkp&ie<%XhiO=$Asy>tmZAmL7MU24?Y_Ugz^Ll?X`k}j z$U*wSN(@w0xTi3dCQsgGZUMNso!qRedHw;1;B4mEZ-VIY^lq7ZnSn#p^r{9Hd$Vw0 zg%4Qon`2t72mT+>_Sp5FJn%s4y{3pvaED91=B)z3Do0<wZ9-{xouK%NG*veTPie}*sQ%mL zCpiK2)%*#()34oVoSPbjBbx{yR9`Mew_|Eed6TWwc{BrsNJ1zxt_Kg8$EjH^&Zy5O zpXJD>YcrMOdAyyu-$~)oS(JOplv2snbbzXY3i$4`t5$$w>bP~##i`GV*Q}J%^u)u- z|Gm~ojb)P~MF`^>5L`m!T=P_P{=lJx#!f_0!$e@3Uo}c3MO>9xV;O6Dy=52Sw;{NG~xJrjpEE-klv^^r1ivV#*-{{d$ z)5WULFg~YD8-02G0Rwz!8Q7l209~CX@9u+?>MB=}zNl!OBVBo!w}gpNJiBPkgh_>R zfmtuoy(57AKd?kvUlE}FWsrN@8nsYL5y&!;2s4I8_3Om@6_{|qcF zkdGfM=cnoNy1JR>I6Pl}*gS&R?!%vaOfheNZLG+QIkN>mEFfh1GGNa>_#FRn*g6k?-Jy`qmcRl%P9xxWB1mO+}f( zQp56Z=yH4a%+t2I;)!3HT4Qzl0zMEnU=fHOth%kg3b1M5Xhn=f;x)fPij5w)+f$+W3Tv$zrCTwH*UTV|AlF+fdJ84j zK4z!1rAax(2qd;YN^|ccj!T~<)$E3}FvB=ewH>mhzu@j_t*L7;6^&ba#-=pf@r%Wwr0pISm2#hsR>%0F9*M9DU1< z9E;~BVa3Pdp4``T55iXw&hBMK5+lwHEi=!GYUSD&=~ap@lv%1%?bZ#8Er4G~jnj|K z5OEb4Y=1;%I$z(acVqL9%pfrWAUES!ivz7V44Pq4ETtv zrfG37(FTbogZVf>CKuvIl-?^>=_sPukMLPz%|(UPDxz59+0#+g?d1wBwkfLg zmrL3sa2JB2T36YkY+kVVPk3*ikNS!GW!&eY?Fr zv?qgJpMKH6a%J>!dz7d7wYuC0o&N1#wqFNnKqv~j{CAA#rEgv4twnADEVWejqqG%it(Cd+wJtEvm(^#>GD#IQ?iVG*JzQn z1=+jd<^Js5MU14;QziIrul(rR3iKP$P^=g!ZiN{~r_AQ#u-K}Ev3XM!aoH*MXJR~; zJTV@(3pFh;_ze8}dg_`DZ9$sxu5cMXS4Pus1^r{vJ8{G=cNK>J#tnL`TH8S^pkbErlWWbmi;q`UsbynS+ogGakHkJ14Ac~vqpH4@X9^gVJL~8u@zJYdbpE`VUP~I(ZYhAfsP?5HUv|a~M z_{>vVXztDdB98LyNTc{3zYpIaH6Z3HgH<|wv`9+YHEoF&%k`P3>et-S1gbZ15zFIl zVs$#8g|;3ejNhL6-(OfZyn##;R>pLka(mnmP1cQMy-r!oVZN8(!#6aOq!DctbzF{l z0eMm*)cGQ*s8iGdlhfw0nWhFB!|~9#kf64_w<#MX&lhtDZE6ncD88hc)M_rl{6x z^ywWad=gH1Qj4O4G7{^05a#6=s1qE*nc-5}Vt()~ zV0KswI&lndnJz;0=Hbu%wkdkBURX2zUN5YFWy8?L5_?!)Sf*_c)(d-tW9wd!r(!B7 zlX7u{2C{cY=-1XaXQ%KPEf2|0weLa@n`N!D&tq~cAmX@Qb6-}AJE?HU+69+lbJZJQ zpWLphyQ2g}BXW){Y0jGvIz?FI6eF;>zGl!xt^Hmh+TbCyv1?7a_%g+GKb#J`NS5>b z_AtZn92-ThH{1#i8WA$66_p0Lci?R7APPMd0CT!Pqn#xmv)lFUkJGye?sjtt+zlf3 zm@y=8JV(1YZ5G)eqcWY{VEl(!NZBam;h(s(DBAHt`dDW&>bvB`UHydjt)p5h8_TFg z8!03!tp~M=3N`JshuN7@i(o@EkEF8UdM769x8cS<0VaT|D{x*UOg}iXN^np(niGm(Xu)C@gfx&=#aG56qXyp8di4l3vk}FA>ql zb$%VpX6Xu7YT&OT0x3(0;R zq=U^iM<);9P!TG(^x3b2P`Ria{eu>raTLn1;^^Ws0MIq5RpuP&Tyh;NJ!UU(6EBj! zrsURtvhiTGS}0>E^2HPbtCqHA*sp`Mgv)P^kgI`%vsu1gR_ACK!=^D6(=5f5+db12 z(~IdcRgTGUmG1DQVZ#S&n!z2-RVJq*!^5bj@+MhKlj1tnBYSM7TCc<8=-Cl6y;OvF zxx5_|lbZx~oX(27Rdt48l(51`onbht2OS&3A7rgywA4lHbv1G=-3Bw#GB_!oEC-aL z=bVk1MM-lYR4v5_vSw=;>v6WljpQvC;hcP2<#cJ-fDsPk=Tvbl$3)SO)#3UIBi|ge z6nh=UDivBcn2JMWEChuya^*C7(u zt96`r;PN{{&asU?t1g#SvBo5zxdUjqrXbJ9W#_X@ebU_Zf7 zs7)}WKzVeSz6r#d3)FfbkB%!@^?IN0WhUW@7iOUAluf%XM1=QvuR) z7KhZ7=Q?$rzpksU3MqfLUhTq4n0yb|<^aTCI?L7mEzI+Lks6dm3O9I>%2q_Hg&N6WCMUf} z>F&J_i*5U~Ux(QZ!`(?zE_Se&!K|%>+Jq1YS+250*FlKaRxZQn#dO6f$K?99K&Q&U zRZ-*hN?qn-sj57J2%!>)HBW2BbxlQ1Wq>p{F!#V&-G6g+HxQKpvg{y6(#XYVq_LEv z?jm=K!j7byn}I9sgeX}!qVO1nk$ z5TL@`f~$xf^iK0j^vzNg-yu@0zn)ztGkt}4I(F2imTF|Jj?2FZ7t=cu z)dL4M*g3 zd9rMChuK#+NOOhL3H{Z#Wtpt9U#lM9hN1`Ce1gl`Th@^jk$pHF;9MELfTem{$F^3*!#nN7k^`z`@@L5 zyeQQbKJV4hiXA&C-9V;5M*2|G7y6C*{>kX4_}O=jnERlNuWBjUa9Ls*J|v$d)xXc0 zjks3-zTL?x)aCkfSC$(hl2Z9YV`QD(-T$go>eJCtzM$a(bO4jCCN`sS^{zQ?3d8{@ zT~t)Y-s%noAtSNAG%W8tjhPwSd77gfC6cA-F<$gNf|MW6J(0^%cxt@ET%g-D02*dHF3935QVmdQA)?$RyNB*vLqal8p4`(Ay zfY71;%YNOMP%EN2HaS0lQ+tmck+eLd4uh)(Hn`ez&l9{@I(M8f|t~X=oI<{!eJdDdPF{=nQHZU0HfCzdRUVCiKOt~MI80OHxy0rH_ zfSBK&c)?6WckxN@(3WxMBVUTnS=hLoD1C0--XJu4ViR*CJy8j+zsQzz{D74o=6P>$ zCbuk4ozbj#8_37`8X-|1(Q<50@50~Keq{q20h!mS$#_$j_b*f-KdtSJ)x;fy+6*1^VRz6Quh{m!mVjbc5@l z{Sx5{ZXO;&=FCd6fleRPLBt^VQVaJoUaaj>uj*&IT;?LKqX%SYt_Ns*Eo3ZY)Gdl= zwQjzP_i)_$O~lf`v{V&esN6Axrg2pk7d51`Al5i$P0>+H8?E6P4tkATu5X_G(Z8!# zag(Sj8P`>=`Z}mS*30o3TkFB6Hi};Ck}j9GHvF2s@*K*k?&SGClCb5T9KNmlHlLkMO`njHWT#H~sI8yq!-qZ22tZ;VlWwyMU z=n6VDPq*@?o~!m9ZNG8$D@UZ=z7|7{$W=Kf^w%*Orlz%~bDAG#<-5rW_f)Gr1NR~9 zCkml@kZ0&HLi!BPm?**UA&3EDxyPY*NEf4XF^ZvmSgCJ`+96gdXSO%3*7s>X$=5}% zddvCi(Jga(R?FWOvqPpF(^Dfg)w&ww0PNa0odPE64-kK*DWC8@`&I(b^i~fjXGc8q3srG*4+??iz=TzrM|A zp9bRW52b8<3W+JWeK7{TL%bB7y9cgDU)>Gji)3gW(&Qe#31Z!z0gAo#ojv4emY^d&k)$GCTkSmrYcY0juDGm+ccog>a%GU+S zmAq19W$rzF+>cVO0g3D!B(izw0d^X&D?#XS2{0A>ADhH{X4{p zJ*B6@WqQCosGG~6Sf_$&UB_7?+nQcN-Y_LG)t<=Csk8a8JA#&C2UWy3u_IAKSAR#l z(7k+x&7Y2n$tCT{w@oK+ua4E&!&o%eOUyq(hy8LMu>ArEJGxS@c@T@uoiMDa*BRom z@uF_XC)V;XAKGBn*6o7Ixg1iBJjQ?&x;z1tD%6_G^(@br=+EQ9O%HRI&o;W&bC-N6 z&jWKQI>L%fStl2_xa(lkneP_aFupH!-7)fzd7Q_h^#$B?tGTl1<0AQRmMydKET_9q zEcFs=chH`~F-Fp?Z(9~eVg^RLHfC*4bo3;OT8}N8J3?yyD&$72ou$ftf{^`$Ku_sn zcHFZRGcXRK*11`=P8MgFv$Vi@0Cku%lHMrnSh_tcMBBlq?5Cl->B*>@R63-Kttl`j z@ZxU-q2Iz2bVMM3f=C%eGYAOp2p;kMe_WHrXk>>pj{BDT4(tjFMD#l$UC*%31eK-%W1Pv?`+|9*G}If56;H$~;<) zd*3BlYF&Y=sExRx+HkpRu853ZlEv64yN42K2ED7TXa-z&*;&7 z_rxciT@I{bhIZ9y(7Tw3tt|$-L%0|_IBu}$#^jRmzV?P)jw|F2$#P8-^Sdt7VZvY1 zS<1xx4)*JY-=^f=XJmUu?=W79{@kN$X1>>?S<^bS8`nNWBoVgnU};^=fAb8HJP6!( zXz&f}Ch1b{2lgdwAa@9sTU&5Wucgj}GJD65rr)FWovs1mdsCVpXhq!`Ihy8h4_njx zt*oY-*d4;9HWqZoLe(5zet>0Pp>O;}k)_M|;%4XW~=(fkdr)4I6PT=uL{n-%G=vwup8`8n#tksJ;~tm~A0 z$}5(sC)?=s1=xtuo*{5Y!^P|fQ%t9vvwKAx!af6Qpfz7R8B}D}8t5Agw(<*fD6Ru5 z_k>|`J2L->yG6}#K3Bu zjflad`Xqo0Ew!q^{?!ZgCnrU{ClM>xz>|PF3_k?2x+D~3tM`$#hUIh`S8J0CD7K(L zP11;TTDeQ27%}in$)xVyt0Sr2?WMh9NBgRZ zU3(vTEbX2MtFwa&bh9Arz2@7G9ZR<-&g*n)SlG>uo|+l^Kx12JJw#W7TJs$HYL@muqeM5xx;8FauA>C1XVi) zuIw1^Ze-iR?2swP42kgR?vxijT=dCkcASxxI(zVh`n?{H|#{6lJ!g+dTh^W1fs$+S4vudHhNHO?!hzn7fpy7 zg-177>Vbl|baaSGB_8c{aKN=uoeEmX`{|BE4ywG@$a;=qePwBceu*(( zERyR^kx(pM&;FRxn-4mn#JZhrQsqT@nj>a|YIj_fc+Cr%3hzblh**psbUIL@)8;32 z_jCxBa(fHJ4v}KSko8^D=wE{5oZSkwL#iA#WFJG*dX6jgvhpUK_q6Hl4L6!zPc7D& zQ>^IKOQ5^liZ#iz4mdFz&?qWByi+GH_hc;=Vuz(-8a*p~H=-a!6;Q-dD8-AVFC?d_ zWjIAz(;-i88A7}cd2&3@YUXr%fW9+KKh7rqqyoce8n?iVr86|fe?`$J%F_wmjhxc- zlsF#{v_}s9>a>$&<@zGipxPrEvCe&zJL+UyWtv!j2 z++xLu(KH6GW0R`Lme+kQLcFTT5j#YR5d*n8O^Rz=N10SN(fTSz?2ste9M3+T(+dk- zrTgHMIc_zX=I_$Z7&0kegLeJtYV_lDbJD%*dd2hxgf~ukM`aNf}Xxh zZ+40mOP6QG|35l(4YBS9-H8Vt5>|&Sv3CfHpQy9_V1;kEj8_8TTmU-*duaBoKobVeR8x_-mWT8OZRGZNR|7ZkZ9jQ z?2sr&46zW6c#*!%^U75tFo8a<(Ma?Tv!&=k_e&|-$=$+5 zL{clpi=;28=A!7U-8+7GT505Z<*^)RVzCFiL$(+@D3&+auZ!#&eKiXb@qqLX@eHwi z2)8Z}{#9C(b<52_-Bg~n*U99K6gJU2#EWe^WN%5KdmH7%dKc8g+QICQDaH({ZEDOF zF6FsMzgcHRI)A-X?!4pB_KY4&d(hp+pnZ)U=hc4h_iE6viw{1}y6Lf)!$H~425Ky4 zgZil&)L|-rTVZwxm3j%826e#Xvh;XFXWvC}wcZ5jQClg6;as&aJA{fcLt@yPPP$Sl z)(Zulgt71j(pOI%$+>xN6LrtL?ZC-(HdvMy=@R#4?oXB)Z{M@sotPJypPE)w4DL&6#e9yz?vO3V_H;Hn_fxlYdxKvw zzqiHh5G=)g?y1xM$gc2ddYc_2bq5w*>^rE`hkKF^OT;?x+#`$6H+fRKPmUR4sl-1) zhY8Xr2&!yrx7xSSBj&jjuS1?3&r@Gt%NG3A_%L=3t&51ef_whk89CRt*i`FxR7RF;g@-}oo!ut09J zf!fvZV2D#n9#8DV1K|7M{mve5;naVDYotq^l&{~XMUl;;bBLh$%Yz*)V-MY~Up9T- zJqM%YS|vt|rZG^D_ufA`O$%IsGkE`KP+ga>v5!!h2F}=hIgeBw`?*|ZOEo&^Rr+CZ zhiXxlQvXBeV53~4LTcv?Him)$GuAr?@wkH-t;Zf7JGP3QiR=o8vWDp@5hF&^7*fCa zy2z@OPAzS;LCAF{#5dS@D*ASfrL@krhny}Cs{h%TkS3i&>!4oEzBgYi2vB`B3n$*` z*ZTXjr#g6g(!l=o(fk*msNCv*;QMc?SEJGQvUyS^-_=PMKKniVH^+Y;>wo_aett3f z{x9p_dscru`YpWpXY;21`Nin*FFPNpx4(_=giL=+fB(+tckt>{^{&(u(LbqA=;v?X zzfYWJqfc(kC+aEmU#y?&Dg9sc)%?y6^n3b*zI5N5{!DYB`2~FV$><;O{mq;4+4<{> z>6_z|$0WzH|qllZ5^r|Jh$8A^W}knz&3~nx}t^S6+G^iJ!e0wA5->RbvrmEuDtd zq&1{n_SYAqFN}6IQl#Ho*uR9=^n0C;)LWOn|A5bW#UiGS?H;^9a8@@fo#)w-HqmNT z-aQr^?zUKLf5+7fr)p^E4H|eVbzK34`VF8|M_4{y&Bi4mG;j@+oR1#A-gMFt7OrO6 zgc4Kb>7@IES|=x0E4?PWyt|p_v-ckw56*h;rbyP>*S`QE)_apj9>{yQ6xEcgA3N~i zkM$o`-?azV)l>cPC!-6z==I?G3H@I0=cWFQO;6s^rq)|dS`W&TOP{?-M_Wz%c0D<* zR9?|Ms$~{zNl!i50<9MmcO2*En8cUN?v5ANBkPZk#7Nv(f${AsFW_4h8kUd>r%;g# zweqrG2k9N#eUV>PAJAcYxk9X$o~31pt5FVf92vAgL1(&HJo!ABqfh=7_@;)UTFUCj zgYr%43Geky>Nk3PQ$t&jjyx>iBz*RV>YMsSBeo>YV;q!aK0CrGXOwO7LR~3BH?_3( zYQGNB2F_zBL_~r5Uc>VB6#}Le;wBr2JflpGT=nD#Rk0WOVxAUf>2m!>Q~Y@(rsv$? zpVuDYXncHnj10I&qb z!Me&Pvm#$CBC$NZ66S0gVI3FAHTp8rf=;GegjuhHG?nXp>tID{3wIL7pq-}4dt^j0 zbaC-W&BHTXjo|=^tuBOv2t!C<<6CuSnnjiv?FUVe{L@FH(XW1meE%0@YG!5?ad2{z zf9Qv^I2xoKTrPW@pDf>JMZUaEm(^tbRtHznsV1;S3}GRP{Kh&B8?DLqZcf3iM5gSiZ+%js@-9!Vo@Xy znd*aTo1fmTT-PDiKBk&-Y({MBJJl>fNs+k7;N)XPGp56sYiKlw-yDdey#K0j&jPaD!yLvm$fwA}( zW=A0?G-7hcDC6?vn|0zAAjGt={%u_1CO&v|hZwPBxNhn3DP1c}P8+i%)8w{O>JZ~` zvBmgQ9}yTrvw5ruN*vQ%Qx?fbPjq3f=5RY47-4M?SRRB2IJQW0Y3L*q+e%r zT%$}D`3E;C7t1LaC(f2Q&rbB5CGS$Sa(=T`p?Rc~0_ge)mPPb%IzYSNA6l03MW?7N z#o^{a694`irtU5C>IPZVJ~^4q-cdl9$cw#-eAsxjd_21E4d<)0Z}rKu!G?17YOP9TlgknjMCxytQ-Twr>1JtcBdp|)tN z$`<=@%$f$Y#eS-@)S5_FjbmVQPAx6l+X7dyagaJeu!S3BckImvFA*ZvrzctsIlM!S zFN(&dk+qY%ntkF4;Zmqipp%<4t$;YhKC!2UV)n}v?liwhXGmv`^I7B`j|a_EY=E{{ z>3*6*KdD@ zmSu;zJHr}+qg*5kx>P|JYNUnf2H0ZS#CUF?EyweCoYub`oleHbbrA)vkdEl2t4DL# zrQ^j-rD5{&=q6cSr?2uVyP|uEVTf;V+1O13OF?kQkhV)OspBf7+}rYCnZ4 z6bS0HSC2$wy40XSx!#XZV@Z~?$msZ)C*Nr9Ien?o%tk-VQ!^N&+@se_o>sNm#Xg^3VKlCp zzY&MV+o+2c-EqKW%&^feV(gmD`+9{)+t!x)#G>-PUZLV*hg%94hVXx(I%_Zy@s)^C zXs

  2. 6UbJx+%R-dcpJp>8a^|*x#(x|BL;}rlha;VCiT&lKzzcX#HUA z5N;oCYieU^ZE9s|X=)c<4ko9=>BjUjvC^>?rcxPg!)?N?!>z(C!!5$i!%#Yy{@&Uw zY)C(7t*XT1s&JgUpn9m;%ctz)Vdeq?=U zod!$=s)kp2YMW}AYMN@8O2*P-c+3{F#!AGB$BM;n4-NJ9;H}L%Mb^IExg{K)3 z;j8!+{4#zCzldMJGOcRq&!_7qs!4P#h2hhm=AN|^Qlo&o@sMrQ)Dr|2w#XVz~|%ha5k)( zDuZV+n&)4JY@^$#yd@a5vUxTmCSL3Vl`Mky__&6Wq zqkJB(@(M5W5nke}@L^u$bNLYe|HF#sd5&lK$~?p8@Bu!Xuf$j6X`bT!JjrMA75MUe zIo`*6d4l)wW%*3r&Aa$Ad}-dvXYdZ*&X?j#^65Oz+juKqf-lY&TJj@$;hzEHCujc_iiP!P}xWC*V?l<>~`^o*_zH{HWuiO{z zGxv%6$bI16bMLsf+#BvS_lkSTz2Kg6&$y@D6YeqhhGR+sWBh(%ebZ75^gcK zh+D`l;O2Alxc|7h+#GH;H;bFe&ETeU)3~YJ6mBv%iJQnx;Kp;~xUt+AZZtQF8_A8} zhI7NXq1+H|FgJ)B$PM87bN#r!TpzAC*Nf}P_29a5-MFq?7w$NJj6cdB;h*r2`A7Ui z{sDiV_Xo+~J^n6#hri9=;&1Xd`0G3orVJs&Kh+biW~ge&H)w{0A#U&+f(F?TF}#7x zhDn29$TIMT%yCG zb6e)t%mI$sct&^@J`2rFWgwx|J>&$ezol~^Q+9YkFHbEP& zjnl?zW3hkj4G9en4GIkmtqQFStq3g- zEekCTEeS0SEeb6REePFVZ?m`9o9qqtI(v=1%3fg`IvP0YJASa=*?Nv|?1oTX$5-|X z`QhazS6v8zh3BVA)`1&>eII%LGdY zoxzNtBWMqn3YH9}2l1dSXbqMK77rE+77eBaiv$Y?EkSe86f6`h7%UJ>4Wc@I&}6d=tJ3Uxd%XC*h;;L3l5`6W$7M zgxA6=;id2z7EQUPWIyaT`a`Cm$)=x*>+}y+Qr7;A(z#2R4rv3git ztPWNitA*9XYGBo|YFJe)AJeb|7RO>(6wAX@Ou=LkysX10V|J{!+e+*BQOtE7R$ukm{(IgfU3yKBAR53-wL{vn?WDypPA|!sv{ha$L_hasd-1oWf za^L2@$$g#sD)(jXi`?hA&vKvUKFNKY`zZHe?t|R>x%YDK=HAJ@oqH>Heq>+j+yNO-JE@Ee~lh{%0Ahs9ViEYI;Vr#LL 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

    KIn0IbbP0gk|C$!%C5XXI02)2#Pf}UD0oO@TPYx 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 z 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